From 279039e09f4b32ca5dec7784e325c57cc6fd2122 Mon Sep 17 00:00:00 2001 From: Kieran Haberstock Date: Mon, 4 May 2026 16:35:29 -0700 Subject: [PATCH 1/3] WIP --- .../b2c-cli/src/commands/mrt/bundle/save.ts | 145 + packages/mrt-reference-app/.c8rc.json | 11 + packages/mrt-reference-app/.gitignore | 4 + packages/mrt-reference-app/.mocharc.json | 6 + packages/mrt-reference-app/build/loader.js | 1 + packages/mrt-reference-app/build/package.json | 80 + .../build/request-processor.js | 2 + packages/mrt-reference-app/build/ssr.js | 187 ++ .../build/static/example.css | 1 + .../build/static/example.eot | 1 + .../build/static/example.gif | 1 + .../build/static/example.jpe | 1 + .../build/static/example.jpeg | 1 + .../build/static/example.jpg | 1 + .../mrt-reference-app/build/static/example.js | 1 + .../build/static/example.json | 3 + .../build/static/example.mjs | 1 + .../build/static/example.otf | 1 + .../build/static/example.png | 1 + .../build/static/example.svg | 1 + .../build/static/example.ttf | 1 + .../build/static/example.txt | 7 + .../build/static/example.woff | 1 + .../build/static/example.woff2 | 1 + .../build/static/favicon.ico | Bin 0 -> 5430 bytes .../mrt-reference-app/build/static/robots.txt | 2 + .../mrt-reference-app/build/static/saturn.jpg | Bin 0 -> 2305089 bytes packages/mrt-reference-app/eslint.config.mjs | 45 + packages/mrt-reference-app/package.json | 81 + packages/mrt-reference-app/scripts/build.mjs | 121 + .../mrt-reference-app/src/app/server.test.ts | 310 ++ packages/mrt-reference-app/src/app/server.ts | 162 + .../mrt-reference-app/src/dev/node-local.js | 21 + .../mrt-reference-app/src/dev/tsx-local.ts | 16 + .../src/request-processor.test.ts | 153 + .../src/request-processor.ts | 40 + packages/mrt-reference-app/src/ssr.test.ts | 325 ++ packages/mrt-reference-app/src/ssr.ts | 71 + .../mrt-reference-app/src/static/example.css | 1 + .../mrt-reference-app/src/static/example.eot | 1 + .../mrt-reference-app/src/static/example.gif | 1 + .../mrt-reference-app/src/static/example.jpe | 1 + .../mrt-reference-app/src/static/example.jpeg | 1 + .../mrt-reference-app/src/static/example.jpg | 1 + .../mrt-reference-app/src/static/example.js | 1 + .../mrt-reference-app/src/static/example.json | 3 + .../mrt-reference-app/src/static/example.mjs | 1 + .../mrt-reference-app/src/static/example.otf | 1 + .../mrt-reference-app/src/static/example.png | 1 + .../mrt-reference-app/src/static/example.svg | 1 + .../mrt-reference-app/src/static/example.ttf | 1 + .../mrt-reference-app/src/static/example.txt | 7 + .../mrt-reference-app/src/static/example.woff | 1 + .../src/static/example.woff2 | 1 + .../mrt-reference-app/src/static/favicon.ico | Bin 0 -> 5430 bytes .../mrt-reference-app/src/static/robots.txt | 2 + .../mrt-reference-app/src/static/saturn.jpg | Bin 0 -> 2305089 bytes .../src/streamingHandler.test.ts | 243 ++ .../mrt-reference-app/src/streamingHandler.ts | 27 + .../src/utils/isolation-actions.test.ts | 356 +++ .../src/utils/isolation-actions.ts | 121 + .../src/utils/reference-routes.test.ts | 907 ++++++ .../src/utils/reference-routes.ts | 522 ++++ packages/mrt-reference-app/test/tsconfig.json | 13 + packages/mrt-reference-app/tsconfig.json | 16 + packages/mrt-welcome-app/.c8rc.json | 11 + packages/mrt-welcome-app/.gitignore | 4 + packages/mrt-welcome-app/.mocharc.json | 6 + packages/mrt-welcome-app/eslint.config.mjs | 45 + packages/mrt-welcome-app/package.json | 69 + packages/mrt-welcome-app/scripts/build.mjs | 93 + .../mrt-welcome-app/src/app/server.test.ts | 81 + packages/mrt-welcome-app/src/app/server.ts | 40 + packages/mrt-welcome-app/src/dev/tsx-local.ts | 16 + packages/mrt-welcome-app/src/ssr.test.ts | 188 ++ packages/mrt-welcome-app/src/ssr.ts | 60 + .../src/utils/welcome-routes.test.ts | 91 + .../src/utils/welcome-routes.ts | 76 + .../mrt-welcome-app/src/views/layout.html | 121 + packages/mrt-welcome-app/test/tsconfig.json | 12 + packages/mrt-welcome-app/tsconfig.json | 15 + pnpm-lock.yaml | 2650 ++++++++++++++--- 82 files changed, 7276 insertions(+), 340 deletions(-) create mode 100644 packages/b2c-cli/src/commands/mrt/bundle/save.ts create mode 100644 packages/mrt-reference-app/.c8rc.json create mode 100644 packages/mrt-reference-app/.gitignore create mode 100644 packages/mrt-reference-app/.mocharc.json create mode 100644 packages/mrt-reference-app/build/loader.js create mode 100644 packages/mrt-reference-app/build/package.json create mode 100644 packages/mrt-reference-app/build/request-processor.js create mode 100644 packages/mrt-reference-app/build/ssr.js create mode 100644 packages/mrt-reference-app/build/static/example.css create mode 100644 packages/mrt-reference-app/build/static/example.eot create mode 100644 packages/mrt-reference-app/build/static/example.gif create mode 100644 packages/mrt-reference-app/build/static/example.jpe create mode 100644 packages/mrt-reference-app/build/static/example.jpeg create mode 100644 packages/mrt-reference-app/build/static/example.jpg create mode 100644 packages/mrt-reference-app/build/static/example.js create mode 100644 packages/mrt-reference-app/build/static/example.json create mode 100644 packages/mrt-reference-app/build/static/example.mjs create mode 100644 packages/mrt-reference-app/build/static/example.otf create mode 100644 packages/mrt-reference-app/build/static/example.png create mode 100644 packages/mrt-reference-app/build/static/example.svg create mode 100644 packages/mrt-reference-app/build/static/example.ttf create mode 100644 packages/mrt-reference-app/build/static/example.txt create mode 100644 packages/mrt-reference-app/build/static/example.woff create mode 100644 packages/mrt-reference-app/build/static/example.woff2 create mode 100644 packages/mrt-reference-app/build/static/favicon.ico create mode 100644 packages/mrt-reference-app/build/static/robots.txt create mode 100644 packages/mrt-reference-app/build/static/saturn.jpg create mode 100644 packages/mrt-reference-app/eslint.config.mjs create mode 100644 packages/mrt-reference-app/package.json create mode 100644 packages/mrt-reference-app/scripts/build.mjs create mode 100644 packages/mrt-reference-app/src/app/server.test.ts create mode 100644 packages/mrt-reference-app/src/app/server.ts create mode 100644 packages/mrt-reference-app/src/dev/node-local.js create mode 100644 packages/mrt-reference-app/src/dev/tsx-local.ts create mode 100644 packages/mrt-reference-app/src/request-processor.test.ts create mode 100644 packages/mrt-reference-app/src/request-processor.ts create mode 100644 packages/mrt-reference-app/src/ssr.test.ts create mode 100644 packages/mrt-reference-app/src/ssr.ts create mode 100644 packages/mrt-reference-app/src/static/example.css create mode 100644 packages/mrt-reference-app/src/static/example.eot create mode 100644 packages/mrt-reference-app/src/static/example.gif create mode 100644 packages/mrt-reference-app/src/static/example.jpe create mode 100644 packages/mrt-reference-app/src/static/example.jpeg create mode 100644 packages/mrt-reference-app/src/static/example.jpg create mode 100644 packages/mrt-reference-app/src/static/example.js create mode 100644 packages/mrt-reference-app/src/static/example.json create mode 100644 packages/mrt-reference-app/src/static/example.mjs create mode 100644 packages/mrt-reference-app/src/static/example.otf create mode 100644 packages/mrt-reference-app/src/static/example.png create mode 100644 packages/mrt-reference-app/src/static/example.svg create mode 100644 packages/mrt-reference-app/src/static/example.ttf create mode 100644 packages/mrt-reference-app/src/static/example.txt create mode 100644 packages/mrt-reference-app/src/static/example.woff create mode 100644 packages/mrt-reference-app/src/static/example.woff2 create mode 100644 packages/mrt-reference-app/src/static/favicon.ico create mode 100644 packages/mrt-reference-app/src/static/robots.txt create mode 100644 packages/mrt-reference-app/src/static/saturn.jpg create mode 100644 packages/mrt-reference-app/src/streamingHandler.test.ts create mode 100644 packages/mrt-reference-app/src/streamingHandler.ts create mode 100644 packages/mrt-reference-app/src/utils/isolation-actions.test.ts create mode 100644 packages/mrt-reference-app/src/utils/isolation-actions.ts create mode 100644 packages/mrt-reference-app/src/utils/reference-routes.test.ts create mode 100644 packages/mrt-reference-app/src/utils/reference-routes.ts create mode 100644 packages/mrt-reference-app/test/tsconfig.json create mode 100644 packages/mrt-reference-app/tsconfig.json create mode 100644 packages/mrt-welcome-app/.c8rc.json create mode 100644 packages/mrt-welcome-app/.gitignore create mode 100644 packages/mrt-welcome-app/.mocharc.json create mode 100644 packages/mrt-welcome-app/eslint.config.mjs create mode 100644 packages/mrt-welcome-app/package.json create mode 100644 packages/mrt-welcome-app/scripts/build.mjs create mode 100644 packages/mrt-welcome-app/src/app/server.test.ts create mode 100644 packages/mrt-welcome-app/src/app/server.ts create mode 100644 packages/mrt-welcome-app/src/dev/tsx-local.ts create mode 100644 packages/mrt-welcome-app/src/ssr.test.ts create mode 100644 packages/mrt-welcome-app/src/ssr.ts create mode 100644 packages/mrt-welcome-app/src/utils/welcome-routes.test.ts create mode 100644 packages/mrt-welcome-app/src/utils/welcome-routes.ts create mode 100644 packages/mrt-welcome-app/src/views/layout.html create mode 100644 packages/mrt-welcome-app/test/tsconfig.json create mode 100644 packages/mrt-welcome-app/tsconfig.json diff --git a/packages/b2c-cli/src/commands/mrt/bundle/save.ts b/packages/b2c-cli/src/commands/mrt/bundle/save.ts new file mode 100644 index 000000000..5ca61999f --- /dev/null +++ b/packages/b2c-cli/src/commands/mrt/bundle/save.ts @@ -0,0 +1,145 @@ +/* + * Copyright (c) 2025, Salesforce, Inc. + * SPDX-License-Identifier: Apache-2 + * For full license text, see the license.txt file in the repo root or http://www.apache.org/licenses/LICENSE-2.0 + */ +import {writeFileSync} from 'node:fs'; +import {gzipSync} from 'node:zlib'; +import path from 'node:path'; +import {Flags} from '@oclif/core'; +import {BaseCommand} from '@salesforce/b2c-tooling-sdk/cli'; +import {createBundle, getDefaultMessage, DEFAULT_SSR_PARAMETERS} from '@salesforce/b2c-tooling-sdk/operations/mrt'; +import {t, withDocs} from '../../../i18n/index.js'; + +export interface SaveBundleResult { + filePath: string; + projectSlug: string; + message: string; + ssrOnlyCount: number; + ssrSharedCount: number; +} + +/** + * Save a bundle to a local directory without uploading it to Managed Runtime. + */ +export default class MrtBundleSave extends BaseCommand { + static description = withDocs( + t('commands.mrt.bundle.save.description', 'Save a Managed Runtime bundle to a local directory'), + '/cli/mrt.html#b2c-mrt-bundle-save', + ); + + static enableJsonFlag = true; + + static examples = [ + '<%= config.bin %> <%= command.id %> --project my-storefront --save-dir ./artifacts', + '<%= config.bin %> <%= command.id %> --project my-storefront --save-dir ./artifacts --gzip', + '<%= config.bin %> <%= command.id %> --project my-storefront --save-dir ./artifacts --build-dir ./dist', + '<%= config.bin %> <%= command.id %> --project my-storefront --save-dir ./artifacts --json', + ]; + + static flags = { + ...BaseCommand.baseFlags, + project: Flags.string({ + char: 'p', + description: 'MRT project slug (or set MRT_PROJECT env var)', + env: 'MRT_PROJECT', + default: async () => process.env.SFCC_MRT_PROJECT || undefined, + }), + 'save-dir': Flags.string({ + char: 's', + description: 'Directory to save the bundle to', + required: true, + }), + 'build-dir': Flags.string({ + char: 'b', + description: 'Path to the build directory', + default: 'build', + }), + 'ssr-only': Flags.string({ + description: 'Glob patterns for server-only files (comma-separated or JSON array)', + default: 'ssr.js,ssr.mjs,server/**/*', + }), + 'ssr-shared': Flags.string({ + description: 'Glob patterns for shared files (comma-separated or JSON array)', + default: 'static/**/*,client/**/*', + }), + 'node-version': Flags.string({ + char: 'n', + description: `Node.js version for SSR runtime (default: ${DEFAULT_SSR_PARAMETERS.SSRFunctionNodeVersion})`, + }), + gzip: Flags.boolean({ + char: 'g', + description: 'Gzip the bundle (saves as bundle.tgz instead of bundle.tar)', + default: false, + }), + }; + + async run(): Promise { + const project = this.flags.project; + + if (!project) { + this.error('MRT project is required. Provide --project flag or set MRT_PROJECT.'); + } + + const saveDir = this.flags['save-dir']; + const buildDir = this.flags['build-dir']; + const ssrOnly = parseGlobPatterns(this.flags['ssr-only']); + const ssrShared = parseGlobPatterns(this.flags['ssr-shared']); + const ssrParameters: Record = {}; + + if (this.flags['node-version']) { + ssrParameters.SSRFunctionNodeVersion = this.flags['node-version']; + } + + const message = getDefaultMessage(); + + this.log(t('commands.mrt.bundle.save.creating', 'Creating bundle for {{project}}...', {project})); + + const bundle = await createBundle({ + projectSlug: project, + buildDirectory: buildDir, + message, + ssrOnly, + ssrShared, + ssrParameters, + }); + + const gzip = this.flags.gzip; + const fileName = gzip ? 'bundle.tgz' : 'bundle.tar'; + const filePath = path.resolve(saveDir, fileName); + + let data = Buffer.from(bundle.data, 'base64'); + if (gzip) { + data = gzipSync(data); + } + + writeFileSync(filePath, data); + + if (!this.jsonEnabled()) { + this.log(t('commands.mrt.bundle.save.success', 'Bundle saved to {{filePath}}', {filePath})); + } + + return { + filePath, + projectSlug: project, + message: bundle.message, + ssrOnlyCount: bundle.ssr_only.length, + ssrSharedCount: bundle.ssr_shared.length, + }; + } +} + +function parseGlobPatterns(value: string): string[] { + const trimmed = value.trim(); + if (trimmed.startsWith('[')) { + const parsed: unknown = JSON.parse(trimmed); + if (!Array.isArray(parsed) || !parsed.every((item) => typeof item === 'string')) { + throw new Error(`Invalid glob pattern array: expected an array of strings`); + } + return parsed.map((s: string) => s.trim()).filter(Boolean); + } + return trimmed + .split(',') + .map((s) => s.trim()) + .filter(Boolean); +} diff --git a/packages/mrt-reference-app/.c8rc.json b/packages/mrt-reference-app/.c8rc.json new file mode 100644 index 000000000..a6caf3554 --- /dev/null +++ b/packages/mrt-reference-app/.c8rc.json @@ -0,0 +1,11 @@ +{ + "all": true, + "src": ["src"], + "exclude": [ + "src/**/*.test.ts", + "src/dev/**", + "**/*.d.ts" + ], + "reporter": ["text", "text-summary", "html", "lcov"], + "report-dir": "coverage" +} diff --git a/packages/mrt-reference-app/.gitignore b/packages/mrt-reference-app/.gitignore new file mode 100644 index 000000000..c19bb02d7 --- /dev/null +++ b/packages/mrt-reference-app/.gitignore @@ -0,0 +1,4 @@ +node_modules/ +dist/ +coverage/ +*.tsbuildinfo diff --git a/packages/mrt-reference-app/.mocharc.json b/packages/mrt-reference-app/.mocharc.json new file mode 100644 index 000000000..39a989444 --- /dev/null +++ b/packages/mrt-reference-app/.mocharc.json @@ -0,0 +1,6 @@ +{ + "node-option": ["import=tsx", "conditions=development"], + "timeout": 30000, + "recursive": true, + "extension": ["ts"] +} diff --git a/packages/mrt-reference-app/build/loader.js b/packages/mrt-reference-app/build/loader.js new file mode 100644 index 000000000..d826a0470 --- /dev/null +++ b/packages/mrt-reference-app/build/loader.js @@ -0,0 +1 @@ +// This file is intentionally empty diff --git a/packages/mrt-reference-app/build/package.json b/packages/mrt-reference-app/build/package.json new file mode 100644 index 000000000..555c607d4 --- /dev/null +++ b/packages/mrt-reference-app/build/package.json @@ -0,0 +1,80 @@ +{ + "name": "@salesforce/mrt-reference-app", + "version": "0.0.1", + "description": "Reference application demonstrating MRT features", + "author": "Salesforce", + "license": "Apache-2.0", + "repository": "SalesforceCommerceCloud/b2c-developer-tooling", + "private": true, + "scripts": { + "dev:tsx": "RP_EXTENSION=1 tsx ./src/dev/tsx-local.ts", + "dev:node": "pnpm build && node ./src/dev/node-local.js", + "build": "node scripts/build.mjs", + "clean": "shx rm -rf build", + "lint": "eslint", + "lint:agent": "eslint --quiet", + "typecheck:agent": "tsc --noEmit --pretty false", + "format": "prettier --write .", + "format:check": "prettier --check .", + "pretest": "tsc --noEmit -p test", + "test": "c8 mocha --forbid-only \"src/**/*.test.ts\"", + "test:ci": "c8 mocha --forbid-only --reporter json --reporter-option output=test-results.json \"src/**/*.test.ts\"", + "test:agent": "mocha --forbid-only --reporter min \"src/**/*.test.ts\"", + "test:watch": "mocha --watch \"src/**/*.test.ts\"", + "coverage": "c8 report", + "push": "pnpm build && b2c mrt bundle deploy", + "deploy": "pnpm build && b2c mrt bundle deploy", + "tail-logs": "b2c mrt tail-logs", + "save-bundle": "pnpm build && b2c mrt bundle save", + "save-credentials": "b2c mrt save-credentials" + }, + "dependencies": { + "@aws-sdk/client-cloudwatch-logs": "3.952.0", + "@aws-sdk/client-dynamodb": "3.980.0", + "@aws-sdk/client-lambda": "3.952.0", + "@aws-sdk/client-s3": "3.952.0", + "@aws-sdk/client-secrets-manager": "3.1004.0", + "@aws-sdk/lib-dynamodb": "3.980.0", + "@h4ad/serverless-adapter": "4.4.0", + "@salesforce/mrt-utilities": "workspace:*", + "compressible": "2.0.18", + "express": "5.1.0", + "express-basic-auth": "1.2.1", + "negotiator": "1.0.0", + "winston": "3.19.0" + }, + "devDependencies": { + "@salesforce/b2c-cli": "workspace:*", + "@salesforce/dev-config": "catalog:", + "@serverless/event-mocks": "1.1.1", + "@smithy/smithy-client": "4.9.1", + "@types/aws-lambda": "8.10.160", + "@types/chai": "catalog:", + "@types/compressible": "2.0.3", + "@types/express": "5.0.4", + "@types/mocha": "catalog:", + "@types/negotiator": "0.6.4", + "@types/node": "catalog:", + "@types/sinon": "catalog:", + "@types/supertest": "6.0.3", + "aws-sdk-client-mock": "4.1.0", + "c8": "catalog:", + "chai": "catalog:", + "esbuild": "0.25.0", + "eslint": "catalog:", + "eslint-config-prettier": "catalog:", + "eslint-plugin-header": "catalog:", + "eslint-plugin-prettier": "catalog:", + "mocha": "catalog:", + "prettier": "catalog:", + "shx": "catalog:", + "sinon": "catalog:", + "supertest": "7.1.4", + "tsx": "catalog:", + "typescript": "catalog:", + "typescript-eslint": "catalog:" + }, + "engines": { + "node": ">=22.16.0" + } +} diff --git a/packages/mrt-reference-app/build/request-processor.js b/packages/mrt-reference-app/build/request-processor.js new file mode 100644 index 000000000..57cc66405 --- /dev/null +++ b/packages/mrt-reference-app/build/request-processor.js @@ -0,0 +1,2 @@ +"use strict";var n=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var m=(r,e)=>{for(var t in e)n(r,t,{get:e[t],enumerable:!0})},p=(r,e,t,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of i(e))!c.call(r,s)&&s!==t&&n(r,s,{get:()=>e[s],enumerable:!(o=a(e,s))||o.enumerable});return r};var g=r=>p(n({},"__esModule",{value:!0}),r);var l={};m(l,{processRequest:()=>P});module.exports=g(l);var f=["removeme"],P=({path:r,querystring:e,parameters:t})=>{console.assert(t,"Missing parameters");let o=new URLSearchParams(e);for(let s of f)o.delete(s);return e=o.toString(),{path:r,querystring:e}};0&&(module.exports={processRequest}); +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL3JlcXVlc3QtcHJvY2Vzc29yLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDI1LCBTYWxlc2ZvcmNlLCBJbmMuXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTJcbiAqIEZvciBmdWxsIGxpY2Vuc2UgdGV4dCwgc2VlIHRoZSBsaWNlbnNlLnR4dCBmaWxlIGluIHRoZSByZXBvIHJvb3Qgb3IgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKi9cbmltcG9ydCB0eXBlIHtQcm94eUNvbmZpZ30gZnJvbSAnQHNhbGVzZm9yY2UvbXJ0LXV0aWxpdGllcyc7XG5cbmNvbnN0IGV4Y2x1c2lvbnMgPSBbJ3JlbW92ZW1lJ107XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvY2Vzc1JlcXVlc3RQYXJhbWV0ZXJzIHtcbiAgYXBwSG9zdG5hbWU6IHN0cmluZztcbiAgcHJveHlDb25maWdzOiBQcm94eUNvbmZpZ1tdO1xuICBlbnZpcm9ubWVudDogc3RyaW5nO1xuICBkZXBsb3lUYXJnZXQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IHByb2Nlc3NSZXF1ZXN0ID0gKHtcbiAgcGF0aCxcbiAgcXVlcnlzdHJpbmcsXG4gIHBhcmFtZXRlcnMsXG59OiB7XG4gIHBhdGg6IHN0cmluZztcbiAgcXVlcnlzdHJpbmc6IHN0cmluZztcbiAgcGFyYW1ldGVyczogUHJvY2Vzc1JlcXVlc3RQYXJhbWV0ZXJzO1xufSkgPT4ge1xuICBjb25zb2xlLmFzc2VydChwYXJhbWV0ZXJzLCAnTWlzc2luZyBwYXJhbWV0ZXJzJyk7XG5cbiAgY29uc3QgcXVlcnlQYXJhbWV0ZXJzID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhxdWVyeXN0cmluZyk7XG5cbiAgZm9yIChjb25zdCBleGNsdXNpb24gb2YgZXhjbHVzaW9ucykge1xuICAgIHF1ZXJ5UGFyYW1ldGVycy5kZWxldGUoZXhjbHVzaW9uKTtcbiAgfVxuXG4gIHF1ZXJ5c3RyaW5nID0gcXVlcnlQYXJhbWV0ZXJzLnRvU3RyaW5nKCk7XG5cbiAgcmV0dXJuIHtcbiAgICBwYXRoLFxuICAgIHF1ZXJ5c3RyaW5nLFxuICB9O1xufTtcbiJdLAogICJtYXBwaW5ncyI6ICJ5YUFBQSxJQUFBQSxFQUFBLEdBQUFDLEVBQUFELEVBQUEsb0JBQUFFLElBQUEsZUFBQUMsRUFBQUgsR0FPQSxJQUFNSSxFQUFhLENBQUMsVUFBVSxFQVNqQkYsRUFBaUIsQ0FBQyxDQUM3QixLQUFBRyxFQUNBLFlBQUFDLEVBQ0EsV0FBQUMsQ0FDRixJQUlNLENBQ0osUUFBUSxPQUFPQSxFQUFZLG9CQUFvQixFQUUvQyxJQUFNQyxFQUFrQixJQUFJLGdCQUFnQkYsQ0FBVyxFQUV2RCxRQUFXRyxLQUFhTCxFQUN0QkksRUFBZ0IsT0FBT0MsQ0FBUyxFQUdsQyxPQUFBSCxFQUFjRSxFQUFnQixTQUFTLEVBRWhDLENBQ0wsS0FBQUgsRUFDQSxZQUFBQyxDQUNGLENBQ0YiLAogICJuYW1lcyI6IFsicmVxdWVzdF9wcm9jZXNzb3JfZXhwb3J0cyIsICJfX2V4cG9ydCIsICJwcm9jZXNzUmVxdWVzdCIsICJfX3RvQ29tbW9uSlMiLCAiZXhjbHVzaW9ucyIsICJwYXRoIiwgInF1ZXJ5c3RyaW5nIiwgInBhcmFtZXRlcnMiLCAicXVlcnlQYXJhbWV0ZXJzIiwgImV4Y2x1c2lvbiJdCn0K diff --git a/packages/mrt-reference-app/build/ssr.js b/packages/mrt-reference-app/build/ssr.js new file mode 100644 index 000000000..aad08be4c --- /dev/null +++ b/packages/mrt-reference-app/build/ssr.js @@ -0,0 +1,187 @@ +"use strict";var u6e=Object.create;var $v=Object.defineProperty;var l6e=Object.getOwnPropertyDescriptor;var d6e=Object.getOwnPropertyNames;var p6e=Object.getPrototypeOf,m6e=Object.prototype.hasOwnProperty;var _=(t,e)=>()=>(t&&(e=t(t=0)),e);var b=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),wt=(t,e)=>{for(var r in e)$v(t,r,{get:e[r],enumerable:!0})},gJ=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of d6e(e))!m6e.call(t,s)&&s!==r&&$v(t,s,{get:()=>e[s],enumerable:!(n=l6e(e,s))||n.enumerable});return t};var O=(t,e,r)=>(r=t!=null?u6e(p6e(t)):{},gJ(e||!t||!t.__esModule?$v(r,"default",{value:t,enumerable:!0}):r,t)),ue=t=>gJ($v({},"__esModule",{value:!0}),t);var yJ=b((U3r,EJ)=>{"use strict";var Gv=require("debug")("express:view"),bS=require("node:path"),g6e=require("node:fs"),f6e=bS.dirname,SJ=bS.basename,h6e=bS.extname,fJ=bS.join,S6e=bS.resolve;EJ.exports=jv;function jv(t,e){var r=e||{};if(this.defaultEngine=r.defaultEngine,this.ext=h6e(t),this.name=t,this.root=r.root,!this.ext&&!this.defaultEngine)throw new Error("No default engine was specified and no extension was provided.");var n=t;if(this.ext||(this.ext=this.defaultEngine[0]!=="."?"."+this.defaultEngine:this.defaultEngine,n+=this.ext),!r.engines[this.ext]){var s=this.ext.slice(1);Gv('require "%s"',s);var o=require(s).__express;if(typeof o!="function")throw new Error('Module "'+s+'" does not provide a view engine.');r.engines[this.ext]=o}this.engine=r.engines[this.ext],this.path=this.lookup(n)}jv.prototype.lookup=function(e){var r,n=[].concat(this.root);Gv('lookup "%s"',e);for(var s=0;s{"use strict";var{METHODS:E6e}=require("node:http"),_J=require("content-type"),y6e=require("etag"),_6e=require("mime-types"),C6e=require("proxy-addr"),R6e=require("qs"),v6e=require("querystring");Us.methods=E6e.map(t=>t.toLowerCase());Us.etag=CJ({weak:!1});Us.wetag=CJ({weak:!0});Us.normalizeType=function(t){return~t.indexOf("/")?x6e(t):{value:_6e.lookup(t)||"application/octet-stream",params:{}}};Us.normalizeTypes=function(t){return t.map(Us.normalizeType)};function x6e(t){for(var e=t.length,r=t.indexOf(";"),n=r===-1?e:r,s={value:t.slice(0,n).trim(),quality:1,params:{}};ni){n=t.lastIndexOf(";",o-1)+1;continue}var a=t.slice(n,o).trim(),c=t.slice(o+1,i).trim();a==="q"?s.quality=parseFloat(c):s.params[a]=c,n=i+1}return s}Us.compileETag=function(t){var e;if(typeof t=="function")return t;switch(t){case!0:case"weak":e=Us.wetag;break;case!1:break;case"strong":e=Us.etag;break;default:throw new TypeError("unknown value for etag function: "+t)}return e};Us.compileQueryParser=function(e){var r;if(typeof e=="function")return e;switch(e){case!0:case"simple":r=v6e.parse;break;case!1:break;case"extended":r=P6e;break;default:throw new TypeError("unknown value for query parser function: "+e)}return r};Us.compileTrust=function(t){return typeof t=="function"?t:t===!0?function(){return!0}:typeof t=="number"?function(e,r){return r{"use strict";var b6e=require("finalhandler"),L$=require("debug")("express:application"),I6e=yJ(),A6e=require("node:http"),k$=_u().methods,T6e=_u().compileETag,w6e=_u().compileQueryParser,D6e=_u().compileTrust,O6e=require("node:path").resolve,k6e=require("once"),N6e=require("router"),M$=Array.prototype.slice,L6e=Array.prototype.flat,sn=RJ=vJ.exports={},N$="@@symbol:trust_proxy_default";sn.init=function(){var e=null;this.cache=Object.create(null),this.engines=Object.create(null),this.settings=Object.create(null),this.defaultConfiguration(),Object.defineProperty(this,"router",{configurable:!0,enumerable:!0,get:function(){return e===null&&(e=new N6e({caseSensitive:this.enabled("case sensitive routing"),strict:this.enabled("strict routing")})),e}})};sn.defaultConfiguration=function(){var e="production";this.enable("x-powered-by"),this.set("etag","weak"),this.set("env",e),this.set("query parser","simple"),this.set("subdomain offset",2),this.set("trust proxy",!1),Object.defineProperty(this.settings,N$,{configurable:!0,value:!0}),L$("booting in %s mode",e),this.on("mount",function(n){this.settings[N$]===!0&&typeof n.settings["trust proxy fn"]=="function"&&(delete this.settings["trust proxy"],delete this.settings["trust proxy fn"]),Object.setPrototypeOf(this.request,n.request),Object.setPrototypeOf(this.response,n.response),Object.setPrototypeOf(this.engines,n.engines),Object.setPrototypeOf(this.settings,n.settings)}),this.locals=Object.create(null),this.mountpath="/",this.locals.settings=this.settings,this.set("view",I6e),this.set("views",O6e("views")),this.set("jsonp callback name","callback"),e==="production"&&this.enable("view cache")};sn.handle=function(e,r,n){var s=n||b6e(e,r,{env:this.get("env"),onerror:M6e.bind(this)});this.enabled("x-powered-by")&&r.setHeader("X-Powered-By","Express"),e.res=r,r.req=e,Object.setPrototypeOf(e,this.request),Object.setPrototypeOf(r,this.response),r.locals||(r.locals=Object.create(null)),this.router.handle(e,r,s)};sn.use=function(e){var r=0,n="/";if(typeof e!="function"){for(var s=e;Array.isArray(s)&&s.length!==0;)s=s[0];typeof s!="function"&&(r=1,n=e)}var o=L6e.call(M$.call(arguments,r),1/0);if(o.length===0)throw new TypeError("app.use() requires a middleware function");var i=this.router;return o.forEach(function(a){if(!a||!a.handle||!a.set)return i.use(n,a);L$(".use app under %s",n),a.mountpath=n,a.parent=this,i.use(n,function(u,l,d){var p=u.app;a.handle(u,l,function(g){Object.setPrototypeOf(u,p.request),Object.setPrototypeOf(l,p.response),d(g)})}),a.emit("mount",this)},this),this};sn.route=function(e){return this.router.route(e)};sn.engine=function(e,r){if(typeof r!="function")throw new Error("callback function required");var n=e[0]!=="."?"."+e:e;return this.engines[n]=r,this};sn.param=function(e,r){if(Array.isArray(e)){for(var n=0;n1?'directories "'+c.root.slice(0,-1).join('", "')+'" or "'+c.root[c.root.length-1]+'"':'directory "'+c.root+'"',p=new Error('Failed to lookup view "'+e+'" in views '+d);return p.view=c,o(p)}u.cache&&(s[e]=c)}F6e(c,u,o)};sn.listen=function(){var e=A6e.createServer(this),r=Array.prototype.slice.call(arguments);if(typeof r[r.length-1]=="function"){var n=r[r.length-1]=k6e(r[r.length-1]);e.once("error",n)}return e.listen.apply(e,r)};function M6e(t){this.get("env")!=="test"&&console.error(t.stack||t.toString())}function F6e(t,e,r){try{t.render(e,r)}catch(n){r(n)}}});var AJ=b(($3r,IJ)=>{"use strict";var Vv=require("accepts"),B6e=require("node:net").isIP,U6e=require("type-is"),q6e=require("node:http"),$6e=require("fresh"),G6e=require("range-parser"),PJ=require("parseurl"),bJ=require("proxy-addr"),hr=Object.create(q6e.IncomingMessage.prototype);IJ.exports=hr;hr.get=hr.header=function(e){if(!e)throw new TypeError("name argument is required to req.get");if(typeof e!="string")throw new TypeError("name must be a string to req.get");var r=e.toLowerCase();switch(r){case"referer":case"referrer":return this.headers.referrer||this.headers.referer;default:return this.headers[r]}};hr.accepts=function(){var t=Vv(this);return t.types.apply(t,arguments)};hr.acceptsEncodings=function(){var t=Vv(this);return t.encodings.apply(t,arguments)};hr.acceptsCharsets=function(){var t=Vv(this);return t.charsets.apply(t,arguments)};hr.acceptsLanguages=function(){var t=Vv(this);return t.languages.apply(t,arguments)};hr.range=function(e,r){var n=this.get("Range");if(n)return G6e(e,n,r)};Co(hr,"query",function(){var e=this.app.get("query parser fn");if(!e)return Object.create(null);var r=PJ(this).query;return e(r)});hr.is=function(e){var r=e;if(!Array.isArray(e)){r=new Array(arguments.length);for(var n=0;n=200&&r<300||r===304?$6e(this.headers,{etag:e.get("ETag"),"last-modified":e.get("Last-Modified")}):!1});Co(hr,"stale",function(){return!this.fresh});Co(hr,"xhr",function(){var e=this.get("X-Requested-With")||"";return e.toLowerCase()==="xmlhttprequest"});function Co(t,e,r){Object.defineProperty(t,e,{configurable:!0,enumerable:!0,get:r})}});var NJ=b((G3r,kJ)=>{"use strict";var TJ=require("content-disposition"),j6e=require("http-errors"),V6e=require("encodeurl"),H6e=require("escape-html"),z6e=require("node:http"),W6e=require("on-finished"),wJ=require("mime-types"),DJ=require("node:path"),K6e=require("node:path").isAbsolute,F$=require("statuses"),Q6e=require("cookie-signature").sign,X6e=_u().normalizeType,J6e=_u().normalizeTypes,Y6e=_u().setCharset,Z6e=require("cookie"),e9e=require("send"),t9e=DJ.extname,r9e=DJ.resolve,n9e=require("vary"),rr=Object.create(z6e.ServerResponse.prototype);kJ.exports=rr;rr.status=function(e){if(!Number.isInteger(e))throw new TypeError(`Invalid status code: ${JSON.stringify(e)}. Status code must be an integer.`);if(e<100||e>999)throw new RangeError(`Invalid status code: ${JSON.stringify(e)}. Status code must be greater than 99 and less than 1000.`);return this.statusCode=e,this};rr.links=function(t){var e=this.get("Link")||"";return e&&(e+=", "),this.set("Link",e+Object.keys(t).map(function(r){return Array.isArray(t[r])?t[r].map(function(n){return`<${n}>; rel="${r}"`}).join(", "):`<${t[r]}>; rel="${r}"`}).join(", "))};rr.send=function(e){var r=e,n,s=this.req,o,i=this.app;switch(typeof r){case"string":this.get("Content-Type")||this.type("html");break;case"boolean":case"number":case"object":if(r===null)r="";else if(ArrayBuffer.isView(r))this.get("Content-Type")||this.type("bin");else return this.json(r);break}typeof r=="string"&&(n="utf8",o=this.get("Content-Type"),typeof o=="string"&&this.set("Content-Type",Y6e(o,"utf-8")));var a=i.get("etag fn"),c=!this.get("ETag")&&typeof a=="function",u;r!==void 0&&(Buffer.isBuffer(r)?u=r.length:!c&&r.length<1e3?u=Buffer.byteLength(r,n):(r=Buffer.from(r,n),n=void 0,u=r.length),this.set("Content-Length",u));var l;return c&&u!==void 0&&(l=a(r,n))&&this.set("ETag",l),s.fresh&&this.status(304),(this.statusCode===204||this.statusCode===304)&&(this.removeHeader("Content-Type"),this.removeHeader("Content-Length"),this.removeHeader("Transfer-Encoding"),r=""),this.statusCode===205&&(this.set("Content-Length","0"),this.removeHeader("Transfer-Encoding"),r=""),s.method==="HEAD"?this.end():this.end(r,n),this};rr.json=function(e){var r=this.app,n=r.get("json escape"),s=r.get("json replacer"),o=r.get("json spaces"),i=OJ(e,s,o,n);return this.get("Content-Type")||this.set("Content-Type","application/json"),this.send(i)};rr.jsonp=function(e){var r=this.app,n=r.get("json escape"),s=r.get("json replacer"),o=r.get("json spaces"),i=OJ(e,s,o,n),a=this.req.query[r.get("jsonp callback name")];return this.get("Content-Type")||(this.set("X-Content-Type-Options","nosniff"),this.set("Content-Type","application/json")),Array.isArray(a)&&(a=a[0]),typeof a=="string"&&a.length!==0&&(this.set("X-Content-Type-Options","nosniff"),this.set("Content-Type","text/javascript"),a=a.replace(/[^\[\]\w$.]/g,""),i===void 0?i="":typeof i=="string"&&(i=i.replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")),i="/**/ typeof "+a+" === 'function' && "+a+"("+i+");"),this.send(i)};rr.sendStatus=function(e){var r=F$.message[e]||String(e);return this.status(e),this.type("txt"),this.send(r)};rr.sendFile=function(e,r,n){var s=n,o=this.req,i=this,a=o.next,c=r||{};if(!e)throw new TypeError("path argument is required to res.sendFile");if(typeof e!="string")throw new TypeError("path must be a string to res.sendFile");if(typeof r=="function"&&(s=r,c={}),!c.root&&!K6e(e))throw new TypeError("path must be absolute or specify root to res.sendFile");var u=encodeURI(e);c.etag=this.app.enabled("etag");var l=e9e(o,u,c);s9e(i,l,c,function(d){if(s)return s(d);if(d&&d.code==="EISDIR")return a();d&&d.code!=="ECONNABORTED"&&d.syscall!=="write"&&a(d)})};rr.download=function(e,r,n,s){var o=s,i=r,a=n||null;typeof r=="function"?(o=r,i=null,a=null):typeof n=="function"&&(o=n,a=null),typeof r=="object"&&(typeof n=="function"||n===void 0)&&(i=null,a=r);var c={"Content-Disposition":TJ(i||e)};if(a&&a.headers)for(var u=Object.keys(a.headers),l=0;l0?e.accepts(n):!1;return this.vary("Accept"),s?(this.set("Content-Type",X6e(s).value),t[s](e,this,r)):t.default?t.default(e,this,r):r(j6e(406,{types:J6e(n).map(function(o){return o.value})})),this};rr.attachment=function(e){return e&&this.type(t9e(e)),this.set("Content-Disposition",TJ(e)),this};rr.append=function(e,r){var n=this.get(e),s=r;return n&&(s=Array.isArray(n)?n.concat(r):Array.isArray(r)?[n].concat(r):[n,r]),this.set(e,s)};rr.set=rr.header=function(e,r){if(arguments.length===2){var n=Array.isArray(r)?r.map(String):String(r);if(e.toLowerCase()==="content-type"){if(Array.isArray(n))throw new TypeError("Content-Type cannot be set to an Array");n=wJ.contentType(n)}this.setHeader(e,n)}else for(var s in e)this.set(s,e[s]);return this};rr.get=function(t){return this.getHeader(t)};rr.clearCookie=function(e,r){let n={path:"/",...r,expires:new Date(1)};return delete n.maxAge,this.cookie(e,"",n)};rr.cookie=function(t,e,r){var n={...r},s=this.req.secret,o=n.signed;if(o&&!s)throw new Error('cookieParser("secret") required for signed cookies');var i=typeof e=="object"?"j:"+JSON.stringify(e):String(e);if(o&&(i="s:"+Q6e(i,s)),n.maxAge!=null){var a=n.maxAge-0;isNaN(a)||(n.expires=new Date(Date.now()+a),n.maxAge=Math.floor(a/1e3))}return n.path==null&&(n.path="/"),this.append("Set-Cookie",Z6e.serialize(t,String(i),n)),this};rr.location=function(e){return this.set("Location",V6e(e))};rr.redirect=function(e){var r=e,n,s=302;arguments.length===2&&(s=arguments[0],r=arguments[1]),r=this.location(r).get("Location"),this.format({text:function(){n=F$.message[s]+". Redirecting to "+r},html:function(){var o=H6e(r);n="

"+F$.message[s]+". Redirecting to "+o+"

"},default:function(){n=""}}),this.status(s),this.set("Content-Length",Buffer.byteLength(n)),this.req.method==="HEAD"?this.end():this.end(n)};rr.vary=function(t){return n9e(this,t),this};rr.render=function(e,r,n){var s=this.req.app,o=n,i=r||{},a=this.req,c=this;typeof r=="function"&&(o=r,i={}),i._locals=c.locals,o=o||function(u,l){if(u)return a.next(u);c.send(l)},s.render(e,i,o)};function s9e(t,e,r,n){var s=!1,o;function i(){if(!s){s=!0;var g=new Error("Request aborted");g.code="ECONNABORTED",n(g)}}function a(){if(!s){s=!0;var g=new Error("EISDIR, read");g.code="EISDIR",n(g)}}function c(g){s||(s=!0,n(g))}function u(){s||(s=!0,n())}function l(){o=!1}function d(g){if(g&&g.code==="ECONNRESET")return i();if(g)return c(g);s||setImmediate(function(){if(o!==!1&&!s){i();return}s||(s=!0,n())})}function p(){o=!0}e.on("directory",a),e.on("end",u),e.on("error",c),e.on("file",l),e.on("stream",p),W6e(t,d),r.headers&&e.on("headers",function(y){for(var R=r.headers,D=Object.keys(R),B=0;B&]/g,function(o){switch(o.charCodeAt(0)){case 60:return"\\u003c";case 62:return"\\u003e";case 38:return"\\u0026";default:return o}})),s}});var $J=b((Ro,qJ)=>{"use strict";var Hv=require("body-parser"),o9e=require("node:events").EventEmitter,LJ=require("merge-descriptors"),MJ=xJ(),FJ=require("router"),BJ=AJ(),UJ=NJ();Ro=qJ.exports=i9e;function i9e(){var t=function(e,r,n){t.handle(e,r,n)};return LJ(t,o9e.prototype,!1),LJ(t,MJ,!1),t.request=Object.create(BJ,{app:{configurable:!0,enumerable:!0,writable:!0,value:t}}),t.response=Object.create(UJ,{app:{configurable:!0,enumerable:!0,writable:!0,value:t}}),t.init(),t}Ro.application=MJ;Ro.request=BJ;Ro.response=UJ;Ro.Route=FJ.Route;Ro.Router=FJ;Ro.json=Hv.json;Ro.raw=Hv.raw;Ro.static=require("serve-static");Ro.text=Hv.text;Ro.urlencoded=Hv.urlencoded});var B$=b((j3r,GJ)=>{"use strict";GJ.exports=$J()});var zJ=b((V3r,HJ)=>{var a9e=require("basic-auth"),U$=require("assert"),c9e=require("crypto").timingSafeEqual;function q$(t,e){let r=Buffer.byteLength(t),n=Buffer.byteLength(e),s=Buffer.alloc(r,0,"utf8");s.write(t);let o=Buffer.alloc(r,0,"utf8");return o.write(e),!!(c9e(s,o)&r===n)}function jJ(t,e){return t==null?function(){return e}:typeof t!="function"?function(){return t}:t}function VJ(t){var e=t.challenge!=null?!!t.challenge:!1,r=t.users||{},n=t.authorizer||a,s=t.authorizeAsync!=null?!!t.authorizeAsync:!1,o=jJ(t.unauthorizedResponse,""),i=jJ(t.realm);U$(typeof r=="object","Expected an object for the basic auth users, found "+typeof r+" instead"),U$(typeof n=="function","Expected a function for the basic auth authorizer, found "+typeof n+" instead");function a(c,u){for(var l in r)if(q$(c,l)&q$(u,r[l]))return!0;return!1}return function(u,l,d){var p=a9e(u);if(!p)return g();if(u.auth={user:p.name,password:p.pass},s)return n(p.name,p.pass,y);if(!n(p.name,p.pass))return g();return d();function g(){if(e){var R="Basic",D=i(u);D&&(R+=' realm="'+D+'"'),l.set("WWW-Authenticate",R)}let B=o(u);return typeof B=="string"?l.status(401).send(B):l.status(401).json(B)}function y(R,D){return U$.ifError(R),D?d():g()}}}VJ.safeCompare=q$;HJ.exports=VJ});function mm(t){return WJ.includes(t)}var IS,WJ,zv=_(()=>{IS="preferred",WJ=["disabled","preferred","required"]});var KJ,u9e,QJ=_(()=>{KJ=require("@smithy/util-middleware");zv();u9e=t=>{let{accountIdEndpointMode:e}=t,r=(0,KJ.normalizeProvider)(e??IS);return Object.assign(t,{accountIdEndpointMode:async()=>{let n=await r();if(!mm(n))throw new Error(`Invalid value for accountIdEndpointMode: ${n}. Valid values are: "required", "preferred", "disabled".`);return n}})}});var XJ,JJ,YJ,ZJ,l9e,eY=_(()=>{zv();XJ="Invalid AccountIdEndpointMode value",JJ=t=>{throw new Error(t)},YJ="AWS_ACCOUNT_ID_ENDPOINT_MODE",ZJ="account_id_endpoint_mode",l9e={environmentVariableSelector:t=>{let e=t[YJ];return e&&!mm(e)&&JJ(XJ),e},configFileSelector:t=>{let e=t[ZJ];return e&&!mm(e)&&JJ(XJ),e},default:IS}});var $$={};wt($$,{ACCOUNT_ID_ENDPOINT_MODE_VALUES:()=>WJ,CONFIG_ACCOUNT_ID_ENDPOINT_MODE:()=>ZJ,DEFAULT_ACCOUNT_ID_ENDPOINT_MODE:()=>IS,ENV_ACCOUNT_ID_ENDPOINT_MODE:()=>YJ,NODE_ACCOUNT_ID_ENDPOINT_MODE_CONFIG_OPTIONS:()=>l9e,resolveAccountIdEndpointModeConfig:()=>u9e,validateAccountIdEndpointMode:()=>mm});var G$=_(()=>{QJ();zv();eY()});var rY=b(tY=>{"use strict";var d9e=require("mnemonist/lru-cache"),j$=class{cache;constructor(e){this.cache=new d9e(e)}getEndpoint(e){let r=this.get(e);if(!r||r.length===0)return;let n=r.map(s=>s.Address);return n[Math.floor(Math.random()*n.length)]}get(e){if(!this.has(e))return;let r=this.cache.get(e);if(!r)return;let n=Date.now(),s=r.filter(o=>n({Address:s,Expires:n+o*60*1e3})))}delete(e){this.cache.set(e,[])}has(e){if(!this.cache.has(e))return!1;let r=this.cache.peek(e);return r?r.length>0:!1}clear(){this.cache.clear()}};tY.EndpointCache=j$});var z$=b(Ed=>{"use strict";var p9e=require("@smithy/protocol-http"),m9e=rY(),nY=["AWS_ENABLE_ENDPOINT_DISCOVERY","AWS_ENDPOINT_DISCOVERY_ENABLED"],V$="endpoint_discovery_enabled",sY=t=>["false","0"].indexOf(t)>=0,g9e={environmentVariableSelector:t=>{for(let e=0;e{if(V$ in t){let e=t[V$];if(e===void 0)throw Error(`Shared config entry ${V$} can't be undefined, got "${e}"`);return!sY(e)}},default:void 0},f9e=async(t,e,r)=>{let{accessKeyId:n}=await e.credentials(),{identifiers:s}=r;return JSON.stringify({...n&&{accessKeyId:n},...s&&{commandName:t,identifiers:Object.entries(s).sort().reduce((o,[i,a])=>({...o,[i]:a}),{})}})},ac={},oY=async(t,e)=>new Promise((r,n)=>{let{endpointCache:s}=t,{cacheKey:o,commandName:i,identifiers:a}=e,c=s.get(o);if(c&&c.length===1&&c[0].Address==="")e.isDiscoveredEndpointRequired?(ac[o]||(ac[o]=[]),ac[o].push({resolve:r,reject:n})):r();else if(c&&c.length>0)r();else{let u=[{Address:"",CachePeriodInMinutes:1}];s.set(o,u);let l=new e.endpointDiscoveryCommandCtor({Operation:i.slice(0,-7),Identifiers:a});l.resolveMiddleware(e.clientStack,t,e.options)(l).then(p=>{s.set(o,p.output.Endpoints),ac[o]&&(ac[o].forEach(({resolve:g})=>{g()}),delete ac[o]),r()}).catch(p=>{s.delete(o);let g=Object.assign(new Error("The operation to discover endpoint failed. Please retry, or provide a custom endpoint and disable endpoint discovery to proceed."),{reason:p});ac[o]&&(ac[o].forEach(({reject:y})=>{y(g)}),delete ac[o]),e.isDiscoveredEndpointRequired?n(g):(s.set(o,u),r())})}}),H$=(t,e)=>(r,n)=>async s=>{if(t.isCustomEndpoint){if(t.isClientEndpointDiscoveryEnabled)throw new Error("Custom endpoint is supplied; endpointDiscoveryEnabled must not be true.");return r(s)}let{endpointDiscoveryCommandCtor:o}=t,{isDiscoveredEndpointRequired:i,identifiers:a}=e,c=n.clientName,u=n.commandName,l=await t.endpointDiscoveryEnabled(),d=await f9e(u,t,{identifiers:a});if(i){if(l===!1)throw new Error(`Endpoint Discovery is disabled but ${u} on ${c} requires it. Please check your configurations.`);await oY(t,{...e,commandName:u,cacheKey:d,endpointDiscoveryCommandCtor:o})}else l&&oY(t,{...e,commandName:u,cacheKey:d,endpointDiscoveryCommandCtor:o});let{request:p}=s;if(d&&p9e.HttpRequest.isInstance(p)){let g=t.endpointCache.getEndpoint(d);g&&(p.hostname=g)}return r(s)},Wv={name:"endpointDiscoveryMiddleware",step:"build",tags:["ENDPOINT_DISCOVERY"],override:!0},h9e=(t,e)=>({applyToStack:r=>{r.add(H$(t,e),Wv)}}),S9e=(t,e)=>({applyToStack:r=>{r.add(H$(t,{...e,isDiscoveredEndpointRequired:!0}),Wv)}}),E9e=(t,e)=>({applyToStack:r=>{r.add(H$(t,{...e,isDiscoveredEndpointRequired:!1}),Wv)}}),y9e=(t,{endpointDiscoveryCommandCtor:e})=>{let{endpointCacheSize:r,endpointDiscoveryEnabled:n,endpointDiscoveryEnabledProvider:s}=t;return Object.assign(t,{endpointDiscoveryCommandCtor:e,endpointCache:new m9e.EndpointCache(r??1e3),endpointDiscoveryEnabled:n!==void 0?()=>Promise.resolve(n):s,isClientEndpointDiscoveryEnabled:n!==void 0})};Ed.NODE_ENDPOINT_DISCOVERY_CONFIG_OPTIONS=g9e;Ed.endpointDiscoveryMiddlewareOptions=Wv;Ed.getEndpointDiscoveryOptionalPlugin=E9e;Ed.getEndpointDiscoveryPlugin=h9e;Ed.getEndpointDiscoveryRequiredPlugin=S9e;Ed.resolveEndpointDiscoveryConfig=y9e});var gm=b(AS=>{"use strict";var _9e=require("@smithy/protocol-http");function C9e(t){return t}var iY=t=>e=>async r=>{if(!_9e.HttpRequest.isInstance(r.request))return e(r);let{request:n}=r,{handlerProtocol:s=""}=t.requestHandler.metadata||{};if(s.indexOf("h2")>=0&&!n.headers[":authority"])delete n.headers.host,n.headers[":authority"]=n.hostname+(n.port?":"+n.port:"");else if(!n.headers.host){let o=n.hostname;n.port!=null&&(o+=`:${n.port}`),n.headers.host=o}return e(r)},aY={name:"hostHeaderMiddleware",step:"build",priority:"low",tags:["HOST"],override:!0},R9e=t=>({applyToStack:e=>{e.add(iY(t),aY)}});AS.getHostHeaderPlugin=R9e;AS.hostHeaderMiddleware=iY;AS.hostHeaderMiddlewareOptions=aY;AS.resolveHostHeaderConfig=C9e});var fm=b(Kv=>{"use strict";var cY=()=>(t,e)=>async r=>{try{let n=await t(r),{clientName:s,commandName:o,logger:i,dynamoDbDocumentClientOptions:a={}}=e,{overrideInputFilterSensitiveLog:c,overrideOutputFilterSensitiveLog:u}=a,l=c??e.inputFilterSensitiveLog,d=u??e.outputFilterSensitiveLog,{$metadata:p,...g}=n.output;return i?.info?.({clientName:s,commandName:o,input:l(r.input),output:d(g),metadata:p}),n}catch(n){let{clientName:s,commandName:o,logger:i,dynamoDbDocumentClientOptions:a={}}=e,{overrideInputFilterSensitiveLog:c}=a,u=c??e.inputFilterSensitiveLog;throw i?.error?.({clientName:s,commandName:o,input:u(r.input),error:n,metadata:n.$metadata}),n}},uY={name:"loggerMiddleware",tags:["LOGGER"],step:"initialize",override:!0},v9e=t=>({applyToStack:e=>{e.add(cY(),uY)}});Kv.getLoggerPlugin=v9e;Kv.loggerMiddleware=cY;Kv.loggerMiddlewareOptions=uY});var lY=b(Qv=>{"use strict";Object.defineProperty(Qv,"__esModule",{value:!0});Qv.recursionDetectionMiddleware=void 0;var x9e=require("@aws/lambda-invoke-store"),P9e=require("@smithy/protocol-http"),W$="X-Amzn-Trace-Id",b9e="AWS_LAMBDA_FUNCTION_NAME",I9e="_X_AMZN_TRACE_ID",A9e=()=>t=>async e=>{let{request:r}=e;if(!P9e.HttpRequest.isInstance(r))return t(e);let n=Object.keys(r.headers??{}).find(l=>l.toLowerCase()===W$.toLowerCase())??W$;if(r.headers.hasOwnProperty(n))return t(e);let s=process.env[b9e],o=process.env[I9e],c=(await x9e.InvokeStore.getInstanceAsync())?.getXRayTraceId()??o,u=l=>typeof l=="string"&&l.length>0;return u(s)&&u(c)&&(r.headers[W$]=c),t({...e,request:r})};Qv.recursionDetectionMiddleware=A9e});var hm=b(Xv=>{"use strict";var K$=lY(),T9e={step:"build",tags:["RECURSION_DETECTION"],name:"recursionDetectionMiddleware",override:!0,priority:"low"},w9e=t=>({applyToStack:e=>{e.add(K$.recursionDetectionMiddleware(),T9e)}});Xv.getRecursionDetectionPlugin=w9e;Object.keys(K$).forEach(function(t){t!=="default"&&!Object.prototype.hasOwnProperty.call(Xv,t)&&Object.defineProperty(Xv,t,{enumerable:!0,get:function(){return K$[t]}})})});var _Y=b(Si=>{"use strict";var Sm=require("@smithy/util-endpoints"),D9e=require("@smithy/url-parser"),pY=(t,e=!1)=>{if(e){for(let r of t.split("."))if(!pY(r))return!1;return!0}return!(!Sm.isValidHostLabel(t)||t.length<3||t.length>63||t!==t.toLowerCase()||Sm.isIpAddress(t))},dY=":",O9e="/",k9e=t=>{let e=t.split(dY);if(e.length<6)return null;let[r,n,s,o,i,...a]=e;if(r!=="arn"||n===""||s===""||a.join(dY)==="")return null;let c=a.map(u=>u.split(O9e)).flat();return{partition:n,service:s,region:o,accountId:i,resourceId:c}},N9e=[{id:"aws",outputs:{dnsSuffix:"amazonaws.com",dualStackDnsSuffix:"api.aws",implicitGlobalRegion:"us-east-1",name:"aws",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^(us|eu|ap|sa|ca|me|af|il|mx)\\-\\w+\\-\\d+$",regions:{"af-south-1":{description:"Africa (Cape Town)"},"ap-east-1":{description:"Asia Pacific (Hong Kong)"},"ap-east-2":{description:"Asia Pacific (Taipei)"},"ap-northeast-1":{description:"Asia Pacific (Tokyo)"},"ap-northeast-2":{description:"Asia Pacific (Seoul)"},"ap-northeast-3":{description:"Asia Pacific (Osaka)"},"ap-south-1":{description:"Asia Pacific (Mumbai)"},"ap-south-2":{description:"Asia Pacific (Hyderabad)"},"ap-southeast-1":{description:"Asia Pacific (Singapore)"},"ap-southeast-2":{description:"Asia Pacific (Sydney)"},"ap-southeast-3":{description:"Asia Pacific (Jakarta)"},"ap-southeast-4":{description:"Asia Pacific (Melbourne)"},"ap-southeast-5":{description:"Asia Pacific (Malaysia)"},"ap-southeast-6":{description:"Asia Pacific (New Zealand)"},"ap-southeast-7":{description:"Asia Pacific (Thailand)"},"aws-global":{description:"aws global region"},"ca-central-1":{description:"Canada (Central)"},"ca-west-1":{description:"Canada West (Calgary)"},"eu-central-1":{description:"Europe (Frankfurt)"},"eu-central-2":{description:"Europe (Zurich)"},"eu-north-1":{description:"Europe (Stockholm)"},"eu-south-1":{description:"Europe (Milan)"},"eu-south-2":{description:"Europe (Spain)"},"eu-west-1":{description:"Europe (Ireland)"},"eu-west-2":{description:"Europe (London)"},"eu-west-3":{description:"Europe (Paris)"},"il-central-1":{description:"Israel (Tel Aviv)"},"me-central-1":{description:"Middle East (UAE)"},"me-south-1":{description:"Middle East (Bahrain)"},"mx-central-1":{description:"Mexico (Central)"},"sa-east-1":{description:"South America (Sao Paulo)"},"us-east-1":{description:"US East (N. Virginia)"},"us-east-2":{description:"US East (Ohio)"},"us-west-1":{description:"US West (N. California)"},"us-west-2":{description:"US West (Oregon)"}}},{id:"aws-cn",outputs:{dnsSuffix:"amazonaws.com.cn",dualStackDnsSuffix:"api.amazonwebservices.com.cn",implicitGlobalRegion:"cn-northwest-1",name:"aws-cn",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^cn\\-\\w+\\-\\d+$",regions:{"aws-cn-global":{description:"aws-cn global region"},"cn-north-1":{description:"China (Beijing)"},"cn-northwest-1":{description:"China (Ningxia)"}}},{id:"aws-eusc",outputs:{dnsSuffix:"amazonaws.eu",dualStackDnsSuffix:"api.amazonwebservices.eu",implicitGlobalRegion:"eusc-de-east-1",name:"aws-eusc",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^eusc\\-(de)\\-\\w+\\-\\d+$",regions:{"eusc-de-east-1":{description:"AWS European Sovereign Cloud (Germany)"}}},{id:"aws-iso",outputs:{dnsSuffix:"c2s.ic.gov",dualStackDnsSuffix:"api.aws.ic.gov",implicitGlobalRegion:"us-iso-east-1",name:"aws-iso",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^us\\-iso\\-\\w+\\-\\d+$",regions:{"aws-iso-global":{description:"aws-iso global region"},"us-iso-east-1":{description:"US ISO East"},"us-iso-west-1":{description:"US ISO WEST"}}},{id:"aws-iso-b",outputs:{dnsSuffix:"sc2s.sgov.gov",dualStackDnsSuffix:"api.aws.scloud",implicitGlobalRegion:"us-isob-east-1",name:"aws-iso-b",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^us\\-isob\\-\\w+\\-\\d+$",regions:{"aws-iso-b-global":{description:"aws-iso-b global region"},"us-isob-east-1":{description:"US ISOB East (Ohio)"},"us-isob-west-1":{description:"US ISOB West"}}},{id:"aws-iso-e",outputs:{dnsSuffix:"cloud.adc-e.uk",dualStackDnsSuffix:"api.cloud-aws.adc-e.uk",implicitGlobalRegion:"eu-isoe-west-1",name:"aws-iso-e",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^eu\\-isoe\\-\\w+\\-\\d+$",regions:{"aws-iso-e-global":{description:"aws-iso-e global region"},"eu-isoe-west-1":{description:"EU ISOE West"}}},{id:"aws-iso-f",outputs:{dnsSuffix:"csp.hci.ic.gov",dualStackDnsSuffix:"api.aws.hci.ic.gov",implicitGlobalRegion:"us-isof-south-1",name:"aws-iso-f",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^us\\-isof\\-\\w+\\-\\d+$",regions:{"aws-iso-f-global":{description:"aws-iso-f global region"},"us-isof-east-1":{description:"US ISOF EAST"},"us-isof-south-1":{description:"US ISOF SOUTH"}}},{id:"aws-us-gov",outputs:{dnsSuffix:"amazonaws.com",dualStackDnsSuffix:"api.aws",implicitGlobalRegion:"us-gov-west-1",name:"aws-us-gov",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^us\\-gov\\-\\w+\\-\\d+$",regions:{"aws-us-gov-global":{description:"aws-us-gov global region"},"us-gov-east-1":{description:"AWS GovCloud (US-East)"},"us-gov-west-1":{description:"AWS GovCloud (US-West)"}}}],L9e="1.1",mY={partitions:N9e,version:L9e},gY=mY,fY="",hY=t=>{let{partitions:e}=gY;for(let n of e){let{regions:s,outputs:o}=n;for(let[i,a]of Object.entries(s))if(i===t)return{...o,...a}}for(let n of e){let{regionRegex:s,outputs:o}=n;if(new RegExp(s).test(t))return{...o}}let r=e.find(n=>n.id==="aws");if(!r)throw new Error("Provided region was not found in the partition array or regex, and default partition with id 'aws' doesn't exist.");return{...r.outputs}},SY=(t,e="")=>{gY=t,fY=e},M9e=()=>{SY(mY,"")},F9e=()=>fY,EY={isVirtualHostableS3Bucket:pY,parseArn:k9e,partition:hY};Sm.customEndpointFunctions.aws=EY;var B9e=t=>{if(typeof t.endpointProvider!="function")throw new Error("@aws-sdk/util-endpoint - endpointProvider and endpoint missing in config for this client.");let{endpoint:e}=t;return e===void 0&&(t.endpoint=async()=>yY(t.endpointProvider({Region:typeof t.region=="function"?await t.region():t.region,UseDualStack:typeof t.useDualstackEndpoint=="function"?await t.useDualstackEndpoint():t.useDualstackEndpoint,UseFIPS:typeof t.useFipsEndpoint=="function"?await t.useFipsEndpoint():t.useFipsEndpoint,Endpoint:void 0},{logger:t.logger}))),t},yY=t=>D9e.parseUrl(t.url);Si.EndpointError=Sm.EndpointError;Si.isIpAddress=Sm.isIpAddress;Si.resolveEndpoint=Sm.resolveEndpoint;Si.awsEndpointFunctions=EY;Si.getUserAgentPrefix=F9e;Si.partition=hY;Si.resolveDefaultAwsRegionalEndpointsConfig=B9e;Si.setPartitionInfo=SY;Si.toEndpointV1=yY;Si.useDefaultPartitionInfo=M9e});var Jv,Cu,CY=_(()=>{Jv={warningEmitted:!1},Cu=t=>{t&&!Jv.warningEmitted&&parseInt(t.substring(1,t.indexOf(".")))<20&&(Jv.warningEmitted=!0,process.emitWarning(`NodeDeprecationWarning: The AWS SDK for JavaScript (v3) will +no longer support Node.js ${t} in January 2026. + +To continue receiving updates to AWS services, bug fixes, and security +updates please upgrade to a supported Node.js LTS version. + +More information can be found at: https://a.co/c895JFp`))}});function Ru(t,e,r){return t.$source||(t.$source={}),t.$source[e]=r,t}var RY=_(()=>{});function vY(t,e,r){t.__aws_sdk_context?t.__aws_sdk_context.features||(t.__aws_sdk_context.features={}):t.__aws_sdk_context={features:{}},t.__aws_sdk_context.features[e]=r}var xY=_(()=>{});function PY(t,e,r){return t.$source||(t.$source={}),t.$source[e]=r,t}var bY=_(()=>{});var cc={};wt(cc,{emitWarningIfUnsupportedVersion:()=>Cu,setCredentialFeature:()=>Ru,setFeature:()=>vY,setTokenFeature:()=>PY,state:()=>Jv});var vo=_(()=>{CY();RY();xY();bY()});var IY,Q$,AY=_(()=>{IY=require("@smithy/protocol-http"),Q$=t=>IY.HttpResponse.isInstance(t)?t.headers?.date??t.headers?.Date:void 0});var Em,X$=_(()=>{Em=t=>new Date(Date.now()+t)});var TY,wY=_(()=>{X$();TY=(t,e)=>Math.abs(Em(e).getTime()-t)>=3e5});var J$,DY=_(()=>{wY();J$=(t,e)=>{let r=Date.parse(t);return TY(r,e)?r-Date.now():e}});var Y$=_(()=>{AY();X$();DY()});var OY,TS,ym,En,Z$,eG=_(()=>{OY=require("@smithy/protocol-http");Y$();TS=(t,e)=>{if(!e)throw new Error(`Property \`${t}\` is not resolved for AWS SDK SigV4Auth`);return e},ym=async t=>{let e=TS("context",t.context),r=TS("config",t.config),n=e.endpointV2?.properties?.authSchemes?.[0],o=await TS("signer",r.signer)(n),i=t?.signingRegion,a=t?.signingRegionSet,c=t?.signingName;return{config:r,signer:o,signingRegion:i,signingRegionSet:a,signingName:c}},En=class{async sign(e,r,n){if(!OY.HttpRequest.isInstance(e))throw new Error("The request is not an instance of `HttpRequest` and cannot be signed");let s=await ym(n),{config:o,signer:i}=s,{signingRegion:a,signingName:c}=s,u=n.context;if(u?.authSchemes?.length??!1){let[d,p]=u.authSchemes;d?.name==="sigv4a"&&p?.name==="sigv4"&&(a=p?.signingRegion??a,c=p?.signingName??c)}return await i.sign(e,{signingDate:Em(o.systemClockOffset),signingRegion:a,signingService:c})}errorHandler(e){return r=>{let n=r.ServerTime??Q$(r.$response);if(n){let s=TS("config",e.config),o=s.systemClockOffset;s.systemClockOffset=J$(n,s.systemClockOffset),s.systemClockOffset!==o&&r.$metadata&&(r.$metadata.clockSkewCorrected=!0)}throw r}}successHandler(e,r){let n=Q$(e);if(n){let s=TS("config",r.config);s.systemClockOffset=J$(n,s.systemClockOffset)}}},Z$=En});var kY,wS,NY=_(()=>{kY=require("@smithy/protocol-http");Y$();eG();wS=class extends En{async sign(e,r,n){if(!kY.HttpRequest.isInstance(e))throw new Error("The request is not an instance of `HttpRequest` and cannot be signed");let{config:s,signer:o,signingRegion:i,signingRegionSet:a,signingName:c}=await ym(n),l=(await s.sigv4aSigningRegionSet?.()??a??[i]).join(",");return await o.sign(e,{signingDate:Em(s.systemClockOffset),signingRegion:l,signingService:c})}}});var tG,LY=_(()=>{tG=t=>typeof t=="string"&&t.length>0?t.split(",").map(e=>e.trim()):[]});var Yv,rG=_(()=>{Yv=t=>`AWS_BEARER_TOKEN_${t.replace(/[\s-]/g,"_").toUpperCase()}`});var MY,FY,vu,BY=_(()=>{LY();rG();MY="AWS_AUTH_SCHEME_PREFERENCE",FY="auth_scheme_preference",vu={environmentVariableSelector:(t,e)=>{if(e?.signingName&&Yv(e.signingName)in t)return["httpBearerAuth"];if(MY in t)return tG(t[MY])},configFileSelector:t=>{if(FY in t)return tG(t[FY])},default:[]}});var UY,nG,qY,$Y,GY=_(()=>{UY=require("@smithy/core"),nG=require("@smithy/property-provider"),qY=t=>(t.sigv4aSigningRegionSet=(0,UY.normalizeProvider)(t.sigv4aSigningRegionSet),t),$Y={environmentVariableSelector(t){if(t.AWS_SIGV4A_SIGNING_REGION_SET)return t.AWS_SIGV4A_SIGNING_REGION_SET.split(",").map(e=>e.trim());throw new nG.ProviderError("AWS_SIGV4A_SIGNING_REGION_SET not set in env.",{tryNextLink:!0})},configFileSelector(t){if(t.sigv4a_signing_region_set)return(t.sigv4a_signing_region_set??"").split(",").map(e=>e.trim());throw new nG.ProviderError("sigv4a_signing_region_set not set in profile.",{tryNextLink:!0})},default:void 0}});function U9e(t,{credentials:e,credentialDefaultProvider:r}){let n;return e?e?.memoized?n=e:n=(0,Ei.memoizeIdentityProvider)(e,Ei.isIdentityExpired,Ei.doesIdentityRequireRefresh):r?n=(0,Ei.normalizeProvider)(r(Object.assign({},t,{parentClientConfig:t}))):n=async()=>{throw new Error("@aws-sdk/core::resolveAwsSdkSigV4Config - `credentials` not provided and no credentialDefaultProvider was configured.")},n.memoized=!0,n}function q9e(t,e){if(e.configBound)return e;let r=async n=>e({...n,callerClientConfig:t});return r.memoized=e.memoized,r.configBound=!0,r}var Ei,sG,uc,jY,VY=_(()=>{vo();Ei=require("@smithy/core"),sG=require("@smithy/signature-v4"),uc=t=>{let e=t.credentials,r=!!t.credentials,n;Object.defineProperty(t,"credentials",{set(u){u&&u!==e&&u!==n&&(r=!0),e=u;let l=U9e(t,{credentials:e,credentialDefaultProvider:t.credentialDefaultProvider}),d=q9e(t,l);if(r&&!d.attributed){let p=typeof e=="object"&&e!==null;n=async g=>{let R=await d(g);return p&&(!R.$source||Object.keys(R.$source).length===0)?Ru(R,"CREDENTIALS_CODE","e"):R},n.memoized=d.memoized,n.configBound=d.configBound,n.attributed=!0}else n=d},get(){return n},enumerable:!0,configurable:!0}),t.credentials=e;let{signingEscapePath:s=!0,systemClockOffset:o=t.systemClockOffset||0,sha256:i}=t,a;return t.signer?a=(0,Ei.normalizeProvider)(t.signer):t.regionInfoProvider?a=()=>(0,Ei.normalizeProvider)(t.region)().then(async u=>[await t.regionInfoProvider(u,{useFipsEndpoint:await t.useFipsEndpoint(),useDualstackEndpoint:await t.useDualstackEndpoint()})||{},u]).then(([u,l])=>{let{signingRegion:d,signingService:p}=u;t.signingRegion=t.signingRegion||d||l,t.signingName=t.signingName||p||t.serviceId;let g={...t,credentials:t.credentials,region:t.signingRegion,service:t.signingName,sha256:i,uriEscapePath:s},y=t.signerConstructor||sG.SignatureV4;return new y(g)}):a=async u=>{u=Object.assign({},{name:"sigv4",signingName:t.signingName||t.defaultSigningName,signingRegion:await(0,Ei.normalizeProvider)(t.region)(),properties:{}},u);let l=u.signingRegion,d=u.signingName;t.signingRegion=t.signingRegion||l,t.signingName=t.signingName||d||t.serviceId;let p={...t,credentials:t.credentials,region:t.signingRegion,service:t.signingName,sha256:i,uriEscapePath:s},g=t.signerConstructor||sG.SignatureV4;return new g(p)},Object.assign(t,{systemClockOffset:o,signingEscapePath:s,signer:a})},jY=uc});var HY=_(()=>{eG();NY();BY();GY();VY()});var zY={};wt(zY,{AWSSDKSigV4Signer:()=>Z$,AwsSdkSigV4ASigner:()=>wS,AwsSdkSigV4Signer:()=>En,NODE_AUTH_SCHEME_PREFERENCE_OPTIONS:()=>vu,NODE_SIGV4A_CONFIG_OPTIONS:()=>$Y,getBearerTokenEnvKey:()=>Yv,resolveAWSSDKSigV4Config:()=>jY,resolveAwsSdkSigV4AConfig:()=>qY,resolveAwsSdkSigV4Config:()=>uc,validateSigningProperties:()=>ym});var oG=_(()=>{HY();rG()});var DS,iG,xo,_m=_(()=>{DS=require("@smithy/core/schema"),iG=require("@smithy/smithy-client"),xo=class{queryCompat;constructor(e=!1){this.queryCompat=e}resolveRestContentType(e,r){let n=r.getMemberSchemas(),s=Object.values(n).find(o=>!!o.getMergedTraits().httpPayload);if(s){let o=s.getMergedTraits().mediaType;return o||(s.isStringSchema()?"text/plain":s.isBlobSchema()?"application/octet-stream":e)}else if(!r.isUnitSchema()&&Object.values(n).find(i=>{let{httpQuery:a,httpQueryParams:c,httpHeader:u,httpLabel:l,httpPrefixHeaders:d}=i.getMergedTraits();return!a&&!c&&!u&&!l&&d===void 0}))return e}async getErrorSchemaOrThrowBaseException(e,r,n,s,o,i){let a=r,c=e;e.includes("#")&&([a,c]=e.split("#"));let u={$metadata:o,$fault:n.statusCode<500?"client":"server"},l=DS.TypeRegistry.for(a);try{return{errorSchema:i?.(l,c)??l.getSchema(e),errorMetadata:u}}catch{s.message=s.message??s.Message??"UnknownError";let p=DS.TypeRegistry.for("smithy.ts.sdk.synthetic."+a),g=p.getBaseException();if(g){let y=p.getErrorCtor(g)??Error;throw this.decorateServiceException(Object.assign(new y({name:c}),u),s)}throw this.decorateServiceException(Object.assign(new Error(c),u),s)}}decorateServiceException(e,r={}){if(this.queryCompat){let n=e.Message??r.Message,s=(0,iG.decorateServiceException)(e,r);n&&(s.message=n),s.Error={...s.Error,Type:s.Error?.Type,Code:s.Error?.Code,Message:s.Error?.message??s.Error?.Message??n};let o=s.$metadata.requestId;return o&&(s.RequestId=o),s}return(0,iG.decorateServiceException)(e,r)}setQueryCompatError(e,r){let n=r.headers?.["x-amzn-query-error"];if(e!==void 0&&n!=null){let[s,o]=n.split(";"),i=Object.entries(e),a={Code:s,Type:o};Object.assign(e,a);for(let[c,u]of i)a[c==="message"?"Message":c]=u;delete a.__type,e.Error=a}}queryCompatOutput(e,r){e.Error&&(r.Error=e.Error),e.Type&&(r.Type=e.Type),e.Code&&(r.Code=e.Code)}findQueryCompatibleError(e,r){try{return e.getSchema(r)}catch{return e.find(s=>DS.NormalizedSchema.of(s).getMergedTraits().awsQueryError?.[0]===r)}}}});var ex,tx,Zv,WY=_(()=>{ex=require("@smithy/core/cbor"),tx=require("@smithy/core/schema");_m();Zv=class extends ex.SmithyRpcV2CborProtocol{awsQueryCompatible;mixin;constructor({defaultNamespace:e,awsQueryCompatible:r}){super({defaultNamespace:e}),this.awsQueryCompatible=!!r,this.mixin=new xo(this.awsQueryCompatible)}async serializeRequest(e,r,n){let s=await super.serializeRequest(e,r,n);return this.awsQueryCompatible&&(s.headers["x-amzn-query-mode"]="true"),s}async handleError(e,r,n,s,o){this.awsQueryCompatible&&this.mixin.setQueryCompatError(s,n);let i=(()=>{let y=n.headers["x-amzn-query-error"];return y&&this.awsQueryCompatible?y.split(";")[0]:(0,ex.loadSmithyRpcV2CborErrorCode)(n,s)??"Unknown"})(),{errorSchema:a,errorMetadata:c}=await this.mixin.getErrorSchemaOrThrowBaseException(i,this.options.defaultNamespace,n,s,o,this.awsQueryCompatible?this.mixin.findQueryCompatibleError:void 0),u=tx.NormalizedSchema.of(a),l=s.message??s.Message??"Unknown",d=tx.TypeRegistry.for(a[1]).getErrorCtor(a)??Error,p=new d(l),g={};for(let[y,R]of u.structIterator())s[y]!=null&&(g[y]=this.deserializer.readValue(R,s[y]));throw this.awsQueryCompatible&&this.mixin.queryCompatOutput(s,g),this.mixin.decorateServiceException(Object.assign(p,c,{$fault:u.getMergedTraits().error,message:l},g),s)}}});var KY,QY,XY,JY=_(()=>{KY=t=>{if(t==null)return t;if(typeof t=="number"||typeof t=="bigint"){let e=new Error(`Received number ${t} where a string was expected.`);return e.name="Warning",console.warn(e),String(t)}if(typeof t=="boolean"){let e=new Error(`Received boolean ${t} where a string was expected.`);return e.name="Warning",console.warn(e),String(t)}return t},QY=t=>{if(t==null)return t;if(typeof t=="string"){let e=t.toLowerCase();if(t!==""&&e!=="false"&&e!=="true"){let r=new Error(`Received string "${t}" where a boolean was expected.`);r.name="Warning",console.warn(r)}return t!==""&&e!=="false"}return t},XY=t=>{if(t==null)return t;if(typeof t=="string"){let e=Number(t);if(e.toString()!==t){let r=new Error(`Received string "${t}" where a number was expected.`);return r.name="Warning",console.warn(r),t}return e}return t}});var yn,xu=_(()=>{yn=class{serdeContext;setSerdeContext(e){this.serdeContext=e}}});var Cm,aG=_(()=>{Cm=class{from;to;keys;constructor(e,r){this.from=e,this.to=r,this.keys=new Set(Object.keys(this.from).filter(n=>n!=="__type"))}mark(e){this.keys.delete(e)}hasUnknown(){return this.keys.size===1&&Object.keys(this.to).length===0}writeUnknown(){if(this.hasUnknown()){let e=this.keys.values().next().value,r=this.from[e];this.to.$unknown=[e,r]}}}});function ZY(t,e,r){if(r?.source){let n=r.source;if(typeof e=="number"&&(e>Number.MAX_SAFE_INTEGER||e{YY=require("@smithy/core/serde")});var t7,r7,rx,cG=_(()=>{t7=require("@smithy/smithy-client"),r7=require("@smithy/util-utf8"),rx=(t,e)=>(0,t7.collectBody)(t,e).then(r=>(e?.utf8Encoder??r7.toUtf8)(r))});var OS,n7,Rm,kS=_(()=>{cG();OS=(t,e)=>rx(t,e).then(r=>{if(r.length)try{return JSON.parse(r)}catch(n){throw n?.name==="SyntaxError"&&Object.defineProperty(n,"$responseBodyText",{value:r}),n}return{}}),n7=async(t,e)=>{let r=await OS(t,e);return r.message=r.message??r.Message,r},Rm=(t,e)=>{let r=(o,i)=>Object.keys(o).find(a=>a.toLowerCase()===i.toLowerCase()),n=o=>{let i=o;return typeof i=="number"&&(i=i.toString()),i.indexOf(",")>=0&&(i=i.split(",")[0]),i.indexOf(":")>=0&&(i=i.split(":")[0]),i.indexOf("#")>=0&&(i=i.split("#")[1]),i},s=r(t.headers,"x-amzn-errortype");if(s!==void 0)return n(t.headers[s]);if(e&&typeof e=="object"){let o=r(e,"code");if(o&&e[o]!==void 0)return n(e[o]);if(e.__type!==void 0)return n(e.__type)}}});var s7,o7,qs,i7,vm,uG=_(()=>{s7=require("@smithy/core/protocols"),o7=require("@smithy/core/schema"),qs=require("@smithy/core/serde"),i7=require("@smithy/util-base64");xu();aG();e7();kS();vm=class extends yn{settings;constructor(e){super(),this.settings=e}async read(e,r){return this._read(e,typeof r=="string"?JSON.parse(r,ZY):await OS(r,this.serdeContext))}readObject(e,r){return this._read(e,r)}_read(e,r){let n=r!==null&&typeof r=="object",s=o7.NormalizedSchema.of(e);if(n){if(s.isStructSchema()){let i=r,a=s.isUnionSchema(),c={},u,{jsonName:l}=this.settings;l&&(u={});let d;a&&(d=new Cm(i,c));for(let[p,g]of s.structIterator()){let y=p;l&&(y=g.getMergedTraits().jsonName??y,u[y]=p),a&&d.mark(y),i[y]!=null&&(c[p]=this._read(g,i[y]))}if(a)d.writeUnknown();else if(typeof i.__type=="string")for(let[p,g]of Object.entries(i)){let y=l?u[p]??p:p;y in c||(c[y]=g)}return c}if(Array.isArray(r)&&s.isListSchema()){let i=s.getValueSchema(),a=[],c=!!s.getMergedTraits().sparse;for(let u of r)(c||u!=null)&&a.push(this._read(i,u));return a}if(s.isMapSchema()){let i=s.getValueSchema(),a={},c=!!s.getMergedTraits().sparse;for(let[u,l]of Object.entries(r))(c||l!=null)&&(a[u]=this._read(i,l));return a}}if(s.isBlobSchema()&&typeof r=="string")return(0,i7.fromBase64)(r);let o=s.getMergedTraits().mediaType;if(s.isStringSchema()&&typeof r=="string"&&o)return o==="application/json"||o.endsWith("+json")?qs.LazyJsonString.from(r):r;if(s.isTimestampSchema()&&r!=null)switch((0,s7.determineTimestampFormat)(s,this.settings)){case 5:return(0,qs.parseRfc3339DateTimeWithOffset)(r);case 6:return(0,qs.parseRfc7231DateTime)(r);case 7:return(0,qs.parseEpochTimestamp)(r);default:return console.warn("Missing timestamp format, parsing value with Date constructor:",r),new Date(r)}if(s.isBigIntegerSchema()&&(typeof r=="number"||typeof r=="string"))return BigInt(r);if(s.isBigDecimalSchema()&&r!=null){if(r instanceof qs.NumericValue)return r;let i=r;return i.type==="bigDecimal"&&"string"in i?new qs.NumericValue(i.string,i.type):new qs.NumericValue(String(r),"bigDecimal")}if(s.isNumericSchema()&&typeof r=="string"){switch(r){case"Infinity":return 1/0;case"-Infinity":return-1/0;case"NaN":return NaN}return r}if(s.isDocumentSchema())if(n){let i=Array.isArray(r)?[]:{};for(let[a,c]of Object.entries(r))c instanceof qs.NumericValue?i[a]=c:i[a]=this._read(s,c);return i}else return structuredClone(r);return r}}});var c7,a7,nx,u7=_(()=>{c7=require("@smithy/core/serde"),a7="\u039D",nx=class{values=new Map;counter=0;stage=0;createReplacer(){if(this.stage===1)throw new Error("@aws-sdk/core/protocols - JsonReplacer already created.");if(this.stage===2)throw new Error("@aws-sdk/core/protocols - JsonReplacer exhausted.");return this.stage=1,(e,r)=>{if(r instanceof c7.NumericValue){let n=`${a7+"nv"+this.counter++}_`+r.string;return this.values.set(`"${n}"`,r.string),n}if(typeof r=="bigint"){let n=r.toString(),s=`${a7+"b"+this.counter++}_`+n;return this.values.set(`"${s}"`,n),s}return r}}replaceInJson(e){if(this.stage===0)throw new Error("@aws-sdk/core/protocols - JsonReplacer not created yet.");if(this.stage===2)throw new Error("@aws-sdk/core/protocols - JsonReplacer exhausted.");if(this.stage=2,this.counter===0)return e;for(let[r,n]of this.values)e=e.replace(r,n);return e}}});var l7,sx,lc,lG,xm,dG=_(()=>{l7=require("@smithy/core/protocols"),sx=require("@smithy/core/schema"),lc=require("@smithy/core/serde"),lG=require("@smithy/util-base64");xu();u7();xm=class extends yn{settings;buffer;useReplacer=!1;rootSchema;constructor(e){super(),this.settings=e}write(e,r){this.rootSchema=sx.NormalizedSchema.of(e),this.buffer=this._write(this.rootSchema,r)}writeDiscriminatedDocument(e,r){this.write(e,r),typeof this.buffer=="object"&&(this.buffer.__type=sx.NormalizedSchema.of(e).getName(!0))}flush(){let{rootSchema:e,useReplacer:r}=this;if(this.rootSchema=void 0,this.useReplacer=!1,e?.isStructSchema()||e?.isDocumentSchema()){if(!r)return JSON.stringify(this.buffer);let n=new nx;return n.replaceInJson(JSON.stringify(this.buffer,n.createReplacer(),0))}return this.buffer}_write(e,r,n){let s=r!==null&&typeof r=="object",o=sx.NormalizedSchema.of(e);if(s){if(o.isStructSchema()){let i=r,a={},{jsonName:c}=this.settings,u;c&&(u={});for(let[l,d]of o.structIterator()){let p=this._write(d,i[l],o);if(p!==void 0){let g=l;c&&(g=d.getMergedTraits().jsonName??l,u[l]=g),a[g]=p}}if(o.isUnionSchema()&&Object.keys(a).length===0){let{$unknown:l}=i;if(Array.isArray(l)){let[d,p]=l;a[d]=this._write(15,p)}}else if(typeof i.__type=="string")for(let[l,d]of Object.entries(i)){let p=c?u[l]??l:l;p in a||(a[p]=this._write(15,d))}return a}if(Array.isArray(r)&&o.isListSchema()){let i=o.getValueSchema(),a=[],c=!!o.getMergedTraits().sparse;for(let u of r)(c||u!=null)&&a.push(this._write(i,u));return a}if(o.isMapSchema()){let i=o.getValueSchema(),a={},c=!!o.getMergedTraits().sparse;for(let[u,l]of Object.entries(r))(c||l!=null)&&(a[u]=this._write(i,l));return a}if(r instanceof Uint8Array&&(o.isBlobSchema()||o.isDocumentSchema()))return o===this.rootSchema?r:(this.serdeContext?.base64Encoder??lG.toBase64)(r);if(r instanceof Date&&(o.isTimestampSchema()||o.isDocumentSchema()))switch((0,l7.determineTimestampFormat)(o,this.settings)){case 5:return r.toISOString().replace(".000Z","Z");case 6:return(0,lc.dateToUtcString)(r);case 7:return r.getTime()/1e3;default:return console.warn("Missing timestamp format, using epoch seconds",r),r.getTime()/1e3}r instanceof lc.NumericValue&&(this.useReplacer=!0)}if(!(r===null&&n?.isStructSchema())){if(o.isStringSchema()){if(typeof r>"u"&&o.isIdempotencyToken())return(0,lc.generateIdempotencyToken)();let i=o.getMergedTraits().mediaType;return r!=null&&i&&(i==="application/json"||i.endsWith("+json"))?lc.LazyJsonString.from(r):r}if(typeof r=="number"&&o.isNumericSchema())return Math.abs(r)===1/0||isNaN(r)?String(r):r;if(typeof r=="string"&&o.isBlobSchema())return o===this.rootSchema?r:(this.serdeContext?.base64Encoder??lG.toBase64)(r);if(typeof r=="bigint"&&(this.useReplacer=!0),o.isDocumentSchema())if(s){let i=Array.isArray(r)?[]:{};for(let[a,c]of Object.entries(r))c instanceof lc.NumericValue?(this.useReplacer=!0,i[a]=c):i[a]=this._write(o,c);return i}else return structuredClone(r);return r}}}});var Pu,ox=_(()=>{xu();uG();dG();Pu=class extends yn{settings;constructor(e){super(),this.settings=e}createSerializer(){let e=new xm(this.settings);return e.setSerdeContext(this.serdeContext),e}createDeserializer(){let e=new vm(this.settings);return e.setSerdeContext(this.serdeContext),e}}});var d7,Pm,bu,ix=_(()=>{d7=require("@smithy/core/protocols"),Pm=require("@smithy/core/schema");_m();ox();kS();bu=class extends d7.RpcProtocol{serializer;deserializer;serviceTarget;codec;mixin;awsQueryCompatible;constructor({defaultNamespace:e,serviceTarget:r,awsQueryCompatible:n,jsonCodec:s}){super({defaultNamespace:e}),this.serviceTarget=r,this.codec=s??new Pu({timestampFormat:{useTrait:!0,default:7},jsonName:!1}),this.serializer=this.codec.createSerializer(),this.deserializer=this.codec.createDeserializer(),this.awsQueryCompatible=!!n,this.mixin=new xo(this.awsQueryCompatible)}async serializeRequest(e,r,n){let s=await super.serializeRequest(e,r,n);return s.path.endsWith("/")||(s.path+="/"),Object.assign(s.headers,{"content-type":`application/x-amz-json-${this.getJsonRpcVersion()}`,"x-amz-target":`${this.serviceTarget}.${e.name}`}),this.awsQueryCompatible&&(s.headers["x-amzn-query-mode"]="true"),((0,Pm.deref)(e.input)==="unit"||!s.body)&&(s.body="{}"),s}getPayloadCodec(){return this.codec}async handleError(e,r,n,s,o){this.awsQueryCompatible&&this.mixin.setQueryCompatError(s,n);let i=Rm(n,s)??"Unknown",{errorSchema:a,errorMetadata:c}=await this.mixin.getErrorSchemaOrThrowBaseException(i,this.options.defaultNamespace,n,s,o,this.awsQueryCompatible?this.mixin.findQueryCompatibleError:void 0),u=Pm.NormalizedSchema.of(a),l=s.message??s.Message??"Unknown",d=Pm.TypeRegistry.for(a[1]).getErrorCtor(a)??Error,p=new d(l),g={};for(let[y,R]of u.structIterator())s[y]!=null&&(g[y]=this.codec.createDeserializer().readObject(R,s[y]));throw this.awsQueryCompatible&&this.mixin.queryCompatOutput(s,g),this.mixin.decorateServiceException(Object.assign(p,c,{$fault:u.getMergedTraits().error,message:l},g),s)}}});var ax,p7=_(()=>{ix();ax=class extends bu{constructor({defaultNamespace:e,serviceTarget:r,awsQueryCompatible:n,jsonCodec:s}){super({defaultNamespace:e,serviceTarget:r,awsQueryCompatible:n,jsonCodec:s})}getShapeId(){return"aws.protocols#awsJson1_0"}getJsonRpcVersion(){return"1.0"}getDefaultContentType(){return"application/x-amz-json-1.0"}}});var cx,m7=_(()=>{ix();cx=class extends bu{constructor({defaultNamespace:e,serviceTarget:r,awsQueryCompatible:n,jsonCodec:s}){super({defaultNamespace:e,serviceTarget:r,awsQueryCompatible:n,jsonCodec:s})}getShapeId(){return"aws.protocols#awsJson1_1"}getJsonRpcVersion(){return"1.1"}getDefaultContentType(){return"application/x-amz-json-1.1"}}});var Im,bm,Iu,g7=_(()=>{Im=require("@smithy/core/protocols"),bm=require("@smithy/core/schema");_m();ox();kS();Iu=class extends Im.HttpBindingProtocol{serializer;deserializer;codec;mixin=new xo;constructor({defaultNamespace:e}){super({defaultNamespace:e});let r={timestampFormat:{useTrait:!0,default:7},httpBindings:!0,jsonName:!0};this.codec=new Pu(r),this.serializer=new Im.HttpInterceptingShapeSerializer(this.codec.createSerializer(),r),this.deserializer=new Im.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(),r)}getShapeId(){return"aws.protocols#restJson1"}getPayloadCodec(){return this.codec}setSerdeContext(e){this.codec.setSerdeContext(e),super.setSerdeContext(e)}async serializeRequest(e,r,n){let s=await super.serializeRequest(e,r,n),o=bm.NormalizedSchema.of(e.input);if(!s.headers["content-type"]){let i=this.mixin.resolveRestContentType(this.getDefaultContentType(),o);i&&(s.headers["content-type"]=i)}return s.body==null&&s.headers["content-type"]===this.getDefaultContentType()&&(s.body="{}"),s}async deserializeResponse(e,r,n){let s=await super.deserializeResponse(e,r,n),o=bm.NormalizedSchema.of(e.output);for(let[i,a]of o.structIterator())a.getMemberTraits().httpPayload&&!(i in s)&&(s[i]=null);return s}async handleError(e,r,n,s,o){let i=Rm(n,s)??"Unknown",{errorSchema:a,errorMetadata:c}=await this.mixin.getErrorSchemaOrThrowBaseException(i,this.options.defaultNamespace,n,s,o),u=bm.NormalizedSchema.of(a),l=s.message??s.Message??"Unknown",d=bm.TypeRegistry.for(a[1]).getErrorCtor(a)??Error,p=new d(l);await this.deserializeHttpMessage(a,r,n,s);let g={};for(let[y,R]of u.structIterator()){let D=R.getMergedTraits().jsonName??y;g[y]=this.codec.createDeserializer().readObject(R,s[D])}throw this.mixin.decorateServiceException(Object.assign(p,c,{$fault:u.getMergedTraits().error,message:l},g),s)}getDefaultContentType(){return"application/json"}}});var f7,h7,S7=_(()=>{f7=require("@smithy/smithy-client"),h7=t=>{if(t!=null)return typeof t=="object"&&"__type"in t&&delete t.__type,(0,f7.expectUnion)(t)}});var E7=b(mG=>{"use strict";Object.defineProperty(mG,"__esModule",{value:!0});mG.parseXML=G9e;var $9e=require("fast-xml-parser"),pG=new $9e.XMLParser({attributeNamePrefix:"",htmlEntities:!0,ignoreAttributes:!1,ignoreDeclaration:!0,parseTagValue:!1,trimValues:!1,tagValueProcessor:(t,e)=>e.trim()===""&&e.includes(` +`)?"":void 0});pG.addEntity("#xD","\r");pG.addEntity("#10",` +`);function G9e(t){return pG.parse(t,!0)}});var dx=b(lx=>{"use strict";var j9e=E7();function V9e(t){return t.replace(/&/g,"&").replace(//g,">").replace(/"/g,""")}function H9e(t){return t.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">").replace(/\r/g," ").replace(/\n/g," ").replace(/\u0085/g,"…").replace(/\u2028/,"
")}var ux=class{value;constructor(e){this.value=e}toString(){return H9e(""+this.value)}},gG=class t{name;children;attributes={};static of(e,r,n){let s=new t(e);return r!==void 0&&s.addChildNode(new ux(r)),n!==void 0&&s.withName(n),s}constructor(e,r=[]){this.name=e,this.children=r}withName(e){return this.name=e,this}addAttribute(e,r){return this.attributes[e]=r,this}addChildNode(e){return this.children.push(e),this}removeAttribute(e){return delete this.attributes[e],this}n(e){return this.name=e,this}c(e){return this.children.push(e),this}a(e,r){return r!=null&&(this.attributes[e]=r),this}cc(e,r,n=r){if(e[r]!=null){let s=t.of(r,e[r]).withName(n);this.c(s)}}l(e,r,n,s){e[r]!=null&&s().map(i=>{i.withName(n),this.c(i)})}lc(e,r,n,s){if(e[r]!=null){let o=s(),i=new t(n);o.map(a=>{i.c(a)}),this.c(i)}}toString(){let e=!!this.children.length,r=`<${this.name}`,n=this.attributes;for(let s of Object.keys(n)){let o=n[s];o!=null&&(r+=` ${s}="${V9e(""+o)}"`)}return r+=e?`>${this.children.map(s=>s.toString()).join("")}`:"/>"}};Object.defineProperty(lx,"parseXML",{enumerable:!0,get:function(){return j9e.parseXML}});lx.XmlNode=gG;lx.XmlText=ux});var y7,_7,fG,C7,R7,Au,px=_(()=>{y7=O(dx()),_7=require("@smithy/core/protocols"),fG=require("@smithy/core/schema"),C7=require("@smithy/smithy-client"),R7=require("@smithy/util-utf8");xu();aG();Au=class extends yn{settings;stringDeserializer;constructor(e){super(),this.settings=e,this.stringDeserializer=new _7.FromStringShapeDeserializer(e)}setSerdeContext(e){this.serdeContext=e,this.stringDeserializer.setSerdeContext(e)}read(e,r,n){let s=fG.NormalizedSchema.of(e),o=s.getMemberSchemas();if(s.isStructSchema()&&s.isMemberSchema()&&!!Object.values(o).find(u=>!!u.getMemberTraits().eventPayload)){let u={},l=Object.keys(o)[0];return o[l].isBlobSchema()?u[l]=r:u[l]=this.read(o[l],r),u}let a=(this.serdeContext?.utf8Encoder??R7.toUtf8)(r),c=this.parseXml(a);return this.readSchema(e,n?c[n]:c)}readSchema(e,r){let n=fG.NormalizedSchema.of(e);if(n.isUnitSchema())return;let s=n.getMergedTraits();if(n.isListSchema()&&!Array.isArray(r))return this.readSchema(n,[r]);if(r==null)return r;if(typeof r=="object"){let o=!!s.sparse,i=!!s.xmlFlattened;if(n.isListSchema()){let c=n.getValueSchema(),u=[],l=c.getMergedTraits().xmlName??"member",d=i?r:(r[0]??r)[l],p=Array.isArray(d)?d:[d];for(let g of p)(g!=null||o)&&u.push(this.readSchema(c,g));return u}let a={};if(n.isMapSchema()){let c=n.getKeySchema(),u=n.getValueSchema(),l;i?l=Array.isArray(r)?r:[r]:l=Array.isArray(r.entry)?r.entry:[r.entry];let d=c.getMergedTraits().xmlName??"key",p=u.getMergedTraits().xmlName??"value";for(let g of l){let y=g[d],R=g[p];(R!=null||o)&&(a[y]=this.readSchema(u,R))}return a}if(n.isStructSchema()){let c=n.isUnionSchema(),u;c&&(u=new Cm(r,a));for(let[l,d]of n.structIterator()){let p=d.getMergedTraits(),g=p.httpPayload?p.xmlName??d.getName():d.getMemberTraits().xmlName??l;c&&u.mark(g),r[g]!=null&&(a[l]=this.readSchema(d,r[g]))}return c&&u.writeUnknown(),a}if(n.isDocumentSchema())return r;throw new Error(`@aws-sdk/core/protocols - xml deserializer unhandled schema type for ${n.getName(!0)}`)}return n.isListSchema()?[]:n.isMapSchema()||n.isStructSchema()?{}:this.stringDeserializer.read(n,r)}parseXml(e){if(e.length){let r;try{r=(0,y7.parseXML)(e)}catch(i){throw i&&typeof i=="object"&&Object.defineProperty(i,"$responseBodyText",{value:e}),i}let n="#text",s=Object.keys(r)[0],o=r[s];return o[n]&&(o[s]=o[n],delete o[n]),(0,C7.getValueFromTextNode)(o)}return{}}}});var NS,v7,gx,x7,P7,mx,b7=_(()=>{NS=require("@smithy/core/protocols"),v7=require("@smithy/core/schema"),gx=require("@smithy/core/serde"),x7=require("@smithy/smithy-client"),P7=require("@smithy/util-base64");xu();mx=class extends yn{settings;buffer;constructor(e){super(),this.settings=e}write(e,r,n=""){this.buffer===void 0&&(this.buffer="");let s=v7.NormalizedSchema.of(e);if(n&&!n.endsWith(".")&&(n+="."),s.isBlobSchema())(typeof r=="string"||r instanceof Uint8Array)&&(this.writeKey(n),this.writeValue((this.serdeContext?.base64Encoder??P7.toBase64)(r)));else if(s.isBooleanSchema()||s.isNumericSchema()||s.isStringSchema())r!=null?(this.writeKey(n),this.writeValue(String(r))):s.isIdempotencyToken()&&(this.writeKey(n),this.writeValue((0,gx.generateIdempotencyToken)()));else if(s.isBigIntegerSchema())r!=null&&(this.writeKey(n),this.writeValue(String(r)));else if(s.isBigDecimalSchema())r!=null&&(this.writeKey(n),this.writeValue(r instanceof gx.NumericValue?r.string:String(r)));else if(s.isTimestampSchema()){if(r instanceof Date)switch(this.writeKey(n),(0,NS.determineTimestampFormat)(s,this.settings)){case 5:this.writeValue(r.toISOString().replace(".000Z","Z"));break;case 6:this.writeValue((0,x7.dateToUtcString)(r));break;case 7:this.writeValue(String(r.getTime()/1e3));break}}else if(s.isDocumentSchema())Array.isArray(r)?this.write(79,r,n):r instanceof Date?this.write(4,r,n):r instanceof Uint8Array?this.write(21,r,n):r&&typeof r=="object"?this.write(143,r,n):(this.writeKey(n),this.writeValue(String(r)));else if(s.isListSchema()){if(Array.isArray(r))if(r.length===0)this.settings.serializeEmptyLists&&(this.writeKey(n),this.writeValue(""));else{let o=s.getValueSchema(),i=this.settings.flattenLists||s.getMergedTraits().xmlFlattened,a=1;for(let c of r){if(c==null)continue;let u=o.getMergedTraits(),l=this.getKey("member",u.xmlName,u.ec2QueryName),d=i?`${n}${a}`:`${n}${l}.${a}`;this.write(o,c,d),++a}}}else if(s.isMapSchema()){if(r&&typeof r=="object"){let o=s.getKeySchema(),i=s.getValueSchema(),a=s.getMergedTraits().xmlFlattened,c=1;for(let[u,l]of Object.entries(r)){if(l==null)continue;let d=o.getMergedTraits(),p=this.getKey("key",d.xmlName,d.ec2QueryName),g=a?`${n}${c}.${p}`:`${n}entry.${c}.${p}`,y=i.getMergedTraits(),R=this.getKey("value",y.xmlName,y.ec2QueryName),D=a?`${n}${c}.${R}`:`${n}entry.${c}.${R}`;this.write(o,u,g),this.write(i,l,D),++c}}}else if(s.isStructSchema()){if(r&&typeof r=="object"){let o=!1;for(let[i,a]of s.structIterator()){if(r[i]==null&&!a.isIdempotencyToken())continue;let c=a.getMergedTraits(),u=this.getKey(i,c.xmlName,c.ec2QueryName,"struct"),l=`${n}${u}`;this.write(a,r[i],l),o=!0}if(!o&&s.isUnionSchema()){let{$unknown:i}=r;if(Array.isArray(i)){let[a,c]=i,u=`${n}${a}`;this.write(15,c,u)}}}}else if(!s.isUnitSchema())throw new Error(`@aws-sdk/core/protocols - QuerySerializer unrecognized schema type ${s.getName(!0)}`)}flush(){if(this.buffer===void 0)throw new Error("@aws-sdk/core/protocols - QuerySerializer cannot flush with nothing written to buffer.");let e=this.buffer;return delete this.buffer,e}getKey(e,r,n,s){let{ec2:o,capitalizeKeys:i}=this.settings;if(o&&n)return n;let a=r??e;return i&&s==="struct"?a[0].toUpperCase()+a.slice(1):a}writeKey(e){e.endsWith(".")&&(e=e.slice(0,e.length-1)),this.buffer+=`&${(0,NS.extendedEncodeURIComponent)(e)}=`}writeValue(e){this.buffer+=(0,NS.extendedEncodeURIComponent)(e)}}});var LS,yd,Tu,hG=_(()=>{LS=require("@smithy/core/protocols"),yd=require("@smithy/core/schema");_m();px();b7();Tu=class extends LS.RpcProtocol{options;serializer;deserializer;mixin=new xo;constructor(e){super({defaultNamespace:e.defaultNamespace}),this.options=e;let r={timestampFormat:{useTrait:!0,default:5},httpBindings:!1,xmlNamespace:e.xmlNamespace,serviceNamespace:e.defaultNamespace,serializeEmptyLists:!0};this.serializer=new mx(r),this.deserializer=new Au(r)}getShapeId(){return"aws.protocols#awsQuery"}setSerdeContext(e){this.serializer.setSerdeContext(e),this.deserializer.setSerdeContext(e)}getPayloadCodec(){throw new Error("AWSQuery protocol has no payload codec.")}async serializeRequest(e,r,n){let s=await super.serializeRequest(e,r,n);s.path.endsWith("/")||(s.path+="/"),Object.assign(s.headers,{"content-type":"application/x-www-form-urlencoded"}),((0,yd.deref)(e.input)==="unit"||!s.body)&&(s.body="");let o=e.name.split("#")[1]??e.name;return s.body=`Action=${o}&Version=${this.options.version}`+s.body,s.body.endsWith("&")&&(s.body=s.body.slice(-1)),s}async deserializeResponse(e,r,n){let s=this.deserializer,o=yd.NormalizedSchema.of(e.output),i={};if(n.statusCode>=300){let d=await(0,LS.collectBody)(n.body,r);d.byteLength>0&&Object.assign(i,await s.read(15,d)),await this.handleError(e,r,n,i,this.deserializeMetadata(n))}for(let d in n.headers){let p=n.headers[d];delete n.headers[d],n.headers[d.toLowerCase()]=p}let a=e.name.split("#")[1]??e.name,c=o.isStructSchema()&&this.useNestedResult()?a+"Result":void 0,u=await(0,LS.collectBody)(n.body,r);return u.byteLength>0&&Object.assign(i,await s.read(o,u,c)),{$metadata:this.deserializeMetadata(n),...i}}useNestedResult(){return!0}async handleError(e,r,n,s,o){let i=this.loadQueryErrorCode(n,s)??"Unknown",a=this.loadQueryError(s)??{},c=this.loadQueryErrorMessage(s);a.message=c,a.Error={Type:a.Type,Code:a.Code,Message:c};let{errorSchema:u,errorMetadata:l}=await this.mixin.getErrorSchemaOrThrowBaseException(i,this.options.defaultNamespace,n,a,o,this.mixin.findQueryCompatibleError),d=yd.NormalizedSchema.of(u),p=yd.TypeRegistry.for(u[1]).getErrorCtor(u)??Error,g=new p(c),y={Type:a.Error.Type,Code:a.Error.Code,Error:a.Error};for(let[R,D]of d.structIterator()){let B=D.getMergedTraits().xmlName??R,M=a[B]??s[B];y[R]=this.deserializer.readSchema(D,M)}throw this.mixin.decorateServiceException(Object.assign(g,l,{$fault:d.getMergedTraits().error,message:c},y),s)}loadQueryErrorCode(e,r){let n=(r.Errors?.[0]?.Error??r.Errors?.Error??r.Error)?.Code;if(n!==void 0)return n;if(e.statusCode==404)return"NotFound"}loadQueryError(e){return e.Errors?.[0]?.Error??e.Errors?.Error??e.Error}loadQueryErrorMessage(e){let r=this.loadQueryError(e);return r?.message??r?.Message??e.message??e.Message??"Unknown"}getDefaultContentType(){return"application/x-www-form-urlencoded"}}});var fx,I7=_(()=>{hG();fx=class extends Tu{options;constructor(e){super(e),this.options=e;let r={capitalizeKeys:!0,flattenLists:!0,serializeEmptyLists:!1,ec2:!0};Object.assign(this.serializer.settings,r)}useNestedResult(){return!1}}});var A7,T7,SG,w7,hx,EG=_(()=>{A7=O(dx()),T7=require("@smithy/smithy-client");cG();SG=(t,e)=>rx(t,e).then(r=>{if(r.length){let n;try{n=(0,A7.parseXML)(r)}catch(a){throw a&&typeof a=="object"&&Object.defineProperty(a,"$responseBodyText",{value:r}),a}let s="#text",o=Object.keys(n)[0],i=n[o];return i[s]&&(i[o]=i[s],delete i[s]),(0,T7.getValueFromTextNode)(i)}return{}}),w7=async(t,e)=>{let r=await SG(t,e);return r.Error&&(r.Error.message=r.Error.message??r.Error.Message),r},hx=(t,e)=>{if(e?.Error?.Code!==void 0)return e.Error.Code;if(e?.Code!==void 0)return e.Code;if(t.statusCode==404)return"NotFound"}});var Wn,D7,Sx,Ex,yG,yx,Am,_G=_(()=>{Wn=O(dx()),D7=require("@smithy/core/protocols"),Sx=require("@smithy/core/schema"),Ex=require("@smithy/core/serde"),yG=require("@smithy/smithy-client"),yx=require("@smithy/util-base64");xu();Am=class extends yn{settings;stringBuffer;byteBuffer;buffer;constructor(e){super(),this.settings=e}write(e,r){let n=Sx.NormalizedSchema.of(e);if(n.isStringSchema()&&typeof r=="string")this.stringBuffer=r;else if(n.isBlobSchema())this.byteBuffer="byteLength"in r?r:(this.serdeContext?.base64Decoder??yx.fromBase64)(r);else{this.buffer=this.writeStruct(n,r,void 0);let s=n.getMergedTraits();s.httpPayload&&!s.xmlName&&this.buffer.withName(n.getName())}}flush(){if(this.byteBuffer!==void 0){let r=this.byteBuffer;return delete this.byteBuffer,r}if(this.stringBuffer!==void 0){let r=this.stringBuffer;return delete this.stringBuffer,r}let e=this.buffer;return this.settings.xmlNamespace&&(e?.attributes?.xmlns||e.addAttribute("xmlns",this.settings.xmlNamespace)),delete this.buffer,e.toString()}writeStruct(e,r,n){let s=e.getMergedTraits(),o=e.isMemberSchema()&&!s.httpPayload?e.getMemberTraits().xmlName??e.getMemberName():s.xmlName??e.getName();if(!o||!e.isStructSchema())throw new Error(`@aws-sdk/core/protocols - xml serializer, cannot write struct with empty name or non-struct, schema=${e.getName(!0)}.`);let i=Wn.XmlNode.of(o),[a,c]=this.getXmlnsAttribute(e,n);for(let[l,d]of e.structIterator()){let p=r[l];if(p!=null||d.isIdempotencyToken()){if(d.getMergedTraits().xmlAttribute){i.addAttribute(d.getMergedTraits().xmlName??l,this.writeSimple(d,p));continue}if(d.isListSchema())this.writeList(d,p,i,c);else if(d.isMapSchema())this.writeMap(d,p,i,c);else if(d.isStructSchema())i.addChildNode(this.writeStruct(d,p,c));else{let g=Wn.XmlNode.of(d.getMergedTraits().xmlName??d.getMemberName());this.writeSimpleInto(d,p,g,c),i.addChildNode(g)}}}let{$unknown:u}=r;if(u&&e.isUnionSchema()&&Array.isArray(u)&&Object.keys(r).length===1){let[l,d]=u,p=Wn.XmlNode.of(l);if(typeof d!="string")if(r instanceof Wn.XmlNode||r instanceof Wn.XmlText)i.addChildNode(r);else throw new Error("@aws-sdk - $unknown union member in XML requires value of type string, @aws-sdk/xml-builder::XmlNode or XmlText.");this.writeSimpleInto(0,d,p,c),i.addChildNode(p)}return c&&i.addAttribute(a,c),i}writeList(e,r,n,s){if(!e.isMemberSchema())throw new Error(`@aws-sdk/core/protocols - xml serializer, cannot write non-member list: ${e.getName(!0)}`);let o=e.getMergedTraits(),i=e.getValueSchema(),a=i.getMergedTraits(),c=!!a.sparse,u=!!o.xmlFlattened,[l,d]=this.getXmlnsAttribute(e,s),p=(g,y)=>{if(i.isListSchema())this.writeList(i,Array.isArray(y)?y:[y],g,d);else if(i.isMapSchema())this.writeMap(i,y,g,d);else if(i.isStructSchema()){let R=this.writeStruct(i,y,d);g.addChildNode(R.withName(u?o.xmlName??e.getMemberName():a.xmlName??"member"))}else{let R=Wn.XmlNode.of(u?o.xmlName??e.getMemberName():a.xmlName??"member");this.writeSimpleInto(i,y,R,d),g.addChildNode(R)}};if(u)for(let g of r)(c||g!=null)&&p(n,g);else{let g=Wn.XmlNode.of(o.xmlName??e.getMemberName());d&&g.addAttribute(l,d);for(let y of r)(c||y!=null)&&p(g,y);n.addChildNode(g)}}writeMap(e,r,n,s,o=!1){if(!e.isMemberSchema())throw new Error(`@aws-sdk/core/protocols - xml serializer, cannot write non-member map: ${e.getName(!0)}`);let i=e.getMergedTraits(),a=e.getKeySchema(),u=a.getMergedTraits().xmlName??"key",l=e.getValueSchema(),d=l.getMergedTraits(),p=d.xmlName??"value",g=!!d.sparse,y=!!i.xmlFlattened,[R,D]=this.getXmlnsAttribute(e,s),B=(M,ge,Y)=>{let Te=Wn.XmlNode.of(u,ge),[Ht,Tt]=this.getXmlnsAttribute(a,D);Tt&&Te.addAttribute(Ht,Tt),M.addChildNode(Te);let Ne=Wn.XmlNode.of(p);l.isListSchema()?this.writeList(l,Y,Ne,D):l.isMapSchema()?this.writeMap(l,Y,Ne,D,!0):l.isStructSchema()?Ne=this.writeStruct(l,Y,D):this.writeSimpleInto(l,Y,Ne,D),M.addChildNode(Ne)};if(y){for(let[M,ge]of Object.entries(r))if(g||ge!=null){let Y=Wn.XmlNode.of(i.xmlName??e.getMemberName());B(Y,M,ge),n.addChildNode(Y)}}else{let M;o||(M=Wn.XmlNode.of(i.xmlName??e.getMemberName()),D&&M.addAttribute(R,D),n.addChildNode(M));for(let[ge,Y]of Object.entries(r))if(g||Y!=null){let Te=Wn.XmlNode.of("entry");B(Te,ge,Y),(o?n:M).addChildNode(Te)}}}writeSimple(e,r){if(r===null)throw new Error("@aws-sdk/core/protocols - (XML serializer) cannot write null value.");let n=Sx.NormalizedSchema.of(e),s=null;if(r&&typeof r=="object")if(n.isBlobSchema())s=(this.serdeContext?.base64Encoder??yx.toBase64)(r);else if(n.isTimestampSchema()&&r instanceof Date)switch((0,D7.determineTimestampFormat)(n,this.settings)){case 5:s=r.toISOString().replace(".000Z","Z");break;case 6:s=(0,yG.dateToUtcString)(r);break;case 7:s=String(r.getTime()/1e3);break;default:console.warn("Missing timestamp format, using http date",r),s=(0,yG.dateToUtcString)(r);break}else{if(n.isBigDecimalSchema()&&r)return r instanceof Ex.NumericValue?r.string:String(r);throw n.isMapSchema()||n.isListSchema()?new Error("@aws-sdk/core/protocols - xml serializer, cannot call _write() on List/Map schema, call writeList or writeMap() instead."):new Error(`@aws-sdk/core/protocols - xml serializer, unhandled schema type for object value and schema: ${n.getName(!0)}`)}if((n.isBooleanSchema()||n.isNumericSchema()||n.isBigIntegerSchema()||n.isBigDecimalSchema())&&(s=String(r)),n.isStringSchema()&&(r===void 0&&n.isIdempotencyToken()?s=(0,Ex.generateIdempotencyToken)():s=String(r)),s===null)throw new Error(`Unhandled schema-value pair ${n.getName(!0)}=${r}`);return s}writeSimpleInto(e,r,n,s){let o=this.writeSimple(e,r),i=Sx.NormalizedSchema.of(e),a=new Wn.XmlText(o),[c,u]=this.getXmlnsAttribute(i,s);u&&n.addAttribute(c,u),n.addChildNode(a)}getXmlnsAttribute(e,r){let n=e.getMergedTraits(),[s,o]=n.xmlNamespace??[];return o&&o!==r?[s?`xmlns:${s}`:"xmlns",o]:[void 0,void 0]}}});var Tm,CG=_(()=>{xu();px();_G();Tm=class extends yn{settings;constructor(e){super(),this.settings=e}createSerializer(){let e=new Am(this.settings);return e.setSerdeContext(this.serdeContext),e}createDeserializer(){let e=new Au(this.settings);return e.setSerdeContext(this.serdeContext),e}}});var wm,MS,_x,O7=_(()=>{wm=require("@smithy/core/protocols"),MS=require("@smithy/core/schema");_m();EG();CG();_x=class extends wm.HttpBindingProtocol{codec;serializer;deserializer;mixin=new xo;constructor(e){super(e);let r={timestampFormat:{useTrait:!0,default:5},httpBindings:!0,xmlNamespace:e.xmlNamespace,serviceNamespace:e.defaultNamespace};this.codec=new Tm(r),this.serializer=new wm.HttpInterceptingShapeSerializer(this.codec.createSerializer(),r),this.deserializer=new wm.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(),r)}getPayloadCodec(){return this.codec}getShapeId(){return"aws.protocols#restXml"}async serializeRequest(e,r,n){let s=await super.serializeRequest(e,r,n),o=MS.NormalizedSchema.of(e.input);if(!s.headers["content-type"]){let i=this.mixin.resolveRestContentType(this.getDefaultContentType(),o);i&&(s.headers["content-type"]=i)}return typeof s.body=="string"&&s.headers["content-type"]===this.getDefaultContentType()&&!s.body.startsWith("'+s.body),s}async deserializeResponse(e,r,n){return super.deserializeResponse(e,r,n)}async handleError(e,r,n,s,o){let i=hx(n,s)??"Unknown";if(s.Error&&typeof s.Error=="object")for(let y of Object.keys(s.Error))s[y]=s.Error[y],y.toLowerCase()==="message"&&(s.message=s.Error[y]);s.RequestId&&!o.requestId&&(o.requestId=s.RequestId);let{errorSchema:a,errorMetadata:c}=await this.mixin.getErrorSchemaOrThrowBaseException(i,this.options.defaultNamespace,n,s,o),u=MS.NormalizedSchema.of(a),l=s.Error?.message??s.Error?.Message??s.message??s.Message??"Unknown",d=MS.TypeRegistry.for(a[1]).getErrorCtor(a)??Error,p=new d(l);await this.deserializeHttpMessage(a,r,n,s);let g={};for(let[y,R]of u.structIterator()){let D=R.getMergedTraits().xmlName??y,B=s.Error?.[D]??s[D];g[y]=this.codec.createDeserializer().readSchema(R,B)}throw this.mixin.decorateServiceException(Object.assign(p,c,{$fault:u.getMergedTraits().error,message:l},g),s)}getDefaultContentType(){return"application/xml"}hasUnstructuredPayloadBinding(e){for(let[,r]of e.structIterator())if(r.getMergedTraits().httpPayload)return!(r.isStructSchema()||r.isMapSchema()||r.isListSchema());return!1}}});var RG={};wt(RG,{AwsEc2QueryProtocol:()=>fx,AwsJson1_0Protocol:()=>ax,AwsJson1_1Protocol:()=>cx,AwsJsonRpcProtocol:()=>bu,AwsQueryProtocol:()=>Tu,AwsRestJsonProtocol:()=>Iu,AwsRestXmlProtocol:()=>_x,AwsSmithyRpcV2CborProtocol:()=>Zv,JsonCodec:()=>Pu,JsonShapeDeserializer:()=>vm,JsonShapeSerializer:()=>xm,XmlCodec:()=>Tm,XmlShapeDeserializer:()=>Au,XmlShapeSerializer:()=>Am,_toBool:()=>QY,_toNum:()=>XY,_toStr:()=>KY,awsExpectUnion:()=>h7,loadRestJsonErrorCode:()=>Rm,loadRestXmlErrorCode:()=>hx,parseJsonBody:()=>OS,parseJsonErrorBody:()=>n7,parseXmlBody:()=>SG,parseXmlErrorBody:()=>w7});var _d=_(()=>{WY();JY();p7();m7();ix();g7();ox();uG();dG();S7();kS();I7();hG();O7();CG();px();_G();EG()});var wu={};wt(wu,{AWSSDKSigV4Signer:()=>Z$,AwsEc2QueryProtocol:()=>fx,AwsJson1_0Protocol:()=>ax,AwsJson1_1Protocol:()=>cx,AwsJsonRpcProtocol:()=>bu,AwsQueryProtocol:()=>Tu,AwsRestJsonProtocol:()=>Iu,AwsRestXmlProtocol:()=>_x,AwsSdkSigV4ASigner:()=>wS,AwsSdkSigV4Signer:()=>En,AwsSmithyRpcV2CborProtocol:()=>Zv,JsonCodec:()=>Pu,JsonShapeDeserializer:()=>vm,JsonShapeSerializer:()=>xm,NODE_AUTH_SCHEME_PREFERENCE_OPTIONS:()=>vu,NODE_SIGV4A_CONFIG_OPTIONS:()=>$Y,XmlCodec:()=>Tm,XmlShapeDeserializer:()=>Au,XmlShapeSerializer:()=>Am,_toBool:()=>QY,_toNum:()=>XY,_toStr:()=>KY,awsExpectUnion:()=>h7,emitWarningIfUnsupportedVersion:()=>Cu,getBearerTokenEnvKey:()=>Yv,loadRestJsonErrorCode:()=>Rm,loadRestXmlErrorCode:()=>hx,parseJsonBody:()=>OS,parseJsonErrorBody:()=>n7,parseXmlBody:()=>SG,parseXmlErrorBody:()=>w7,resolveAWSSDKSigV4Config:()=>jY,resolveAwsSdkSigV4AConfig:()=>qY,resolveAwsSdkSigV4Config:()=>uc,setCredentialFeature:()=>Ru,setFeature:()=>vY,setTokenFeature:()=>PY,state:()=>Jv,validateSigningProperties:()=>ym});var on=_(()=>{vo();oG();_d()});var Cd=b(Dm=>{"use strict";var z9e=require("@smithy/core"),W9e=_Y(),K9e=require("@smithy/protocol-http"),da=(on(),ue(wu)),M7=void 0;function Q9e(t){return t===void 0?!0:typeof t=="string"&&t.length<=50}function X9e(t){let e=z9e.normalizeProvider(t.userAgentAppId??M7),{customUserAgent:r}=t;return Object.assign(t,{customUserAgent:typeof r=="string"?[[r]]:r,userAgentAppId:async()=>{let n=await e();if(!Q9e(n)){let s=t.logger?.constructor?.name==="NoOpLogger"||!t.logger?console:t.logger;typeof n!="string"?s?.warn("userAgentAppId must be a string or undefined."):n.length>50&&s?.warn("The provided userAgentAppId exceeds the maximum length of 50 characters.")}return n}})}var J9e=/\d{12}\.ddb/;async function Y9e(t,e,r){if(r.request?.headers?.["smithy-protocol"]==="rpc-v2-cbor"&&da.setFeature(t,"PROTOCOL_RPC_V2_CBOR","M"),typeof e.retryStrategy=="function"){let o=await e.retryStrategy();typeof o.acquireInitialRetryToken=="function"?o.constructor?.name?.includes("Adaptive")?da.setFeature(t,"RETRY_MODE_ADAPTIVE","F"):da.setFeature(t,"RETRY_MODE_STANDARD","E"):da.setFeature(t,"RETRY_MODE_LEGACY","D")}if(typeof e.accountIdEndpointMode=="function"){let o=t.endpointV2;switch(String(o?.url?.hostname).match(J9e)&&da.setFeature(t,"ACCOUNT_ID_ENDPOINT","O"),await e.accountIdEndpointMode?.()){case"disabled":da.setFeature(t,"ACCOUNT_ID_MODE_DISABLED","Q");break;case"preferred":da.setFeature(t,"ACCOUNT_ID_MODE_PREFERRED","P");break;case"required":da.setFeature(t,"ACCOUNT_ID_MODE_REQUIRED","R");break}}let s=t.__smithy_context?.selectedHttpAuthScheme?.identity;if(s?.$source){let o=s;o.accountId&&da.setFeature(t,"RESOLVED_ACCOUNT_ID","T");for(let[i,a]of Object.entries(o.$source??{}))da.setFeature(t,i,a)}}var k7="user-agent",vG="x-amz-user-agent",N7=" ",xG="/",Z9e=/[^!$%&'*+\-.^_`|~\w]/g,e8e=/[^!$%&'*+\-.^_`|~\w#]/g,L7="-",t8e=1024;function r8e(t){let e="";for(let r in t){let n=t[r];if(e.length+n.length+1<=t8e){e.length?e+=","+n:e+=n;continue}break}return e}var F7=t=>(e,r)=>async n=>{let{request:s}=n;if(!K9e.HttpRequest.isInstance(s))return e(n);let{headers:o}=s,i=r?.userAgent?.map(Cx)||[],a=(await t.defaultUserAgentProvider()).map(Cx);await Y9e(r,t,n);let c=r;a.push(`m/${r8e(Object.assign({},r.__smithy_context?.features,c.__aws_sdk_context?.features))}`);let u=t?.customUserAgent?.map(Cx)||[],l=await t.userAgentAppId();l&&a.push(Cx(["app",`${l}`]));let d=W9e.getUserAgentPrefix(),p=(d?[d]:[]).concat([...a,...i,...u]).join(N7),g=[...a.filter(y=>y.startsWith("aws-sdk-")),...u].join(N7);return t.runtime!=="browser"?(g&&(o[vG]=o[vG]?`${o[k7]} ${g}`:g),o[k7]=p):o[vG]=p,e({...n,request:s})},Cx=t=>{let e=t[0].split(xG).map(i=>i.replace(Z9e,L7)).join(xG),r=t[1]?.replace(e8e,L7),n=e.indexOf(xG),s=e.substring(0,n),o=e.substring(n+1);return s==="api"&&(o=o.toLowerCase()),[s,o,r].filter(i=>i&&i.length>0).reduce((i,a,c)=>{switch(c){case 0:return a;case 1:return`${i}/${a}`;default:return`${i}#${a}`}},"")},B7={name:"getUserAgentMiddleware",step:"build",priority:"low",tags:["SET_USER_AGENT","USER_AGENT"],override:!0},n8e=t=>({applyToStack:e=>{e.add(F7(t),B7)}});Dm.DEFAULT_UA_APP_ID=M7;Dm.getUserAgentMiddlewareOptions=B7;Dm.getUserAgentPlugin=n8e;Dm.resolveUserAgentConfig=X9e;Dm.userAgentMiddleware=F7});var bG=b(Du=>{"use strict";Object.defineProperty(Du,"__esModule",{value:!0});Du.resolveHttpAuthSchemeConfig=Du.defaultDynamoDBHttpAuthSchemeProvider=Du.defaultDynamoDBHttpAuthSchemeParametersProvider=void 0;var s8e=(on(),ue(wu)),PG=require("@smithy/util-middleware"),o8e=async(t,e,r)=>({operation:(0,PG.getSmithyContext)(e).operation,region:await(0,PG.normalizeProvider)(t.region)()||(()=>{throw new Error("expected `region` to be configured for `aws.auth#sigv4`")})()});Du.defaultDynamoDBHttpAuthSchemeParametersProvider=o8e;function i8e(t){return{schemeId:"aws.auth#sigv4",signingProperties:{name:"dynamodb",region:t.region},propertiesExtractor:(e,r)=>({signingProperties:{config:e,context:r}})}}var a8e=t=>{let e=[];switch(t.operation){default:e.push(i8e(t))}return e};Du.defaultDynamoDBHttpAuthSchemeProvider=a8e;var c8e=t=>{let e=(0,s8e.resolveAwsSdkSigV4Config)(t);return Object.assign(e,{authSchemePreference:(0,PG.normalizeProvider)(t.authSchemePreference??[])})};Du.resolveHttpAuthSchemeConfig=c8e});var U7=b((Cqr,u8e)=>{u8e.exports={name:"@aws-sdk/client-dynamodb",description:"AWS SDK for JavaScript Dynamodb Client for Node.js, Browser and React Native",version:"3.980.0",scripts:{build:"concurrently 'yarn:build:types' 'yarn:build:es' && yarn build:cjs","build:cjs":"node ../../scripts/compilation/inline client-dynamodb","build:es":"tsc -p tsconfig.es.json","build:include:deps":'yarn g:turbo run build -F="$npm_package_name"',"build:types":"tsc -p tsconfig.types.json","build:types:downlevel":"downlevel-dts dist-types dist-types/ts3.4",clean:"premove dist-cjs dist-es dist-types tsconfig.cjs.tsbuildinfo tsconfig.es.tsbuildinfo tsconfig.types.tsbuildinfo","extract:docs":"api-extractor run --local","generate:client":"node ../../scripts/generate-clients/single-service --solo dynamodb","test:e2e":"yarn g:vitest run -c vitest.config.e2e.mts","test:e2e:watch":"yarn g:vitest watch -c vitest.config.e2e.mts","test:index":"tsc --noEmit ./test/index-types.ts && node ./test/index-objects.spec.mjs"},main:"./dist-cjs/index.js",types:"./dist-types/index.d.ts",module:"./dist-es/index.js",sideEffects:!1,dependencies:{"@aws-crypto/sha256-browser":"5.2.0","@aws-crypto/sha256-js":"5.2.0","@aws-sdk/core":"^3.973.5","@aws-sdk/credential-provider-node":"^3.972.4","@aws-sdk/dynamodb-codec":"^3.972.5","@aws-sdk/middleware-endpoint-discovery":"^3.972.3","@aws-sdk/middleware-host-header":"^3.972.3","@aws-sdk/middleware-logger":"^3.972.3","@aws-sdk/middleware-recursion-detection":"^3.972.3","@aws-sdk/middleware-user-agent":"^3.972.5","@aws-sdk/region-config-resolver":"^3.972.3","@aws-sdk/types":"^3.973.1","@aws-sdk/util-endpoints":"3.980.0","@aws-sdk/util-user-agent-browser":"^3.972.3","@aws-sdk/util-user-agent-node":"^3.972.3","@smithy/config-resolver":"^4.4.6","@smithy/core":"^3.22.0","@smithy/fetch-http-handler":"^5.3.9","@smithy/hash-node":"^4.2.8","@smithy/invalid-dependency":"^4.2.8","@smithy/middleware-content-length":"^4.2.8","@smithy/middleware-endpoint":"^4.4.12","@smithy/middleware-retry":"^4.4.29","@smithy/middleware-serde":"^4.2.9","@smithy/middleware-stack":"^4.2.8","@smithy/node-config-provider":"^4.3.8","@smithy/node-http-handler":"^4.4.8","@smithy/protocol-http":"^5.3.8","@smithy/smithy-client":"^4.11.1","@smithy/types":"^4.12.0","@smithy/url-parser":"^4.2.8","@smithy/util-base64":"^4.3.0","@smithy/util-body-length-browser":"^4.2.0","@smithy/util-body-length-node":"^4.2.1","@smithy/util-defaults-mode-browser":"^4.3.28","@smithy/util-defaults-mode-node":"^4.2.31","@smithy/util-endpoints":"^3.2.8","@smithy/util-middleware":"^4.2.8","@smithy/util-retry":"^4.2.8","@smithy/util-utf8":"^4.2.0","@smithy/util-waiter":"^4.2.8",tslib:"^2.6.2"},devDependencies:{"@tsconfig/node20":"20.1.8","@types/node":"^20.14.8",concurrently:"7.0.0","downlevel-dts":"0.10.1",premove:"4.0.0",typescript:"~5.8.3"},engines:{node:">=20.0.0"},typesVersions:{"<4.0":{"dist-types/*":["dist-types/ts3.4/*"]}},files:["dist-*/**"],author:{name:"AWS SDK for JavaScript Team",url:"https://aws.amazon.com/javascript/"},license:"Apache-2.0",browser:{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.browser"},"react-native":{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.native"},homepage:"https://github.com/aws/aws-sdk-js-v3/tree/main/clients/client-dynamodb",repository:{type:"git",url:"https://github.com/aws/aws-sdk-js-v3.git",directory:"clients/client-dynamodb"}}});var IG=b(Ou=>{"use strict";var l8e=(vo(),ue(cc)),d8e=require("@smithy/property-provider"),q7="AWS_ACCESS_KEY_ID",$7="AWS_SECRET_ACCESS_KEY",G7="AWS_SESSION_TOKEN",j7="AWS_CREDENTIAL_EXPIRATION",V7="AWS_CREDENTIAL_SCOPE",H7="AWS_ACCOUNT_ID",p8e=t=>async()=>{t?.logger?.debug("@aws-sdk/credential-provider-env - fromEnv");let e=process.env[q7],r=process.env[$7],n=process.env[G7],s=process.env[j7],o=process.env[V7],i=process.env[H7];if(e&&r){let a={accessKeyId:e,secretAccessKey:r,...n&&{sessionToken:n},...s&&{expiration:new Date(s)},...o&&{credentialScope:o},...i&&{accountId:i}};return l8e.setCredentialFeature(a,"CREDENTIALS_ENV_VARS","g"),a}throw new d8e.CredentialsProviderError("Unable to find environment variable credentials.",{logger:t?.logger})};Ou.ENV_ACCOUNT_ID=H7;Ou.ENV_CREDENTIAL_SCOPE=V7;Ou.ENV_EXPIRATION=j7;Ou.ENV_KEY=q7;Ou.ENV_SECRET=$7;Ou.ENV_SESSION=G7;Ou.fromEnv=p8e});var z7=b(Rx=>{"use strict";Object.defineProperty(Rx,"__esModule",{value:!0});Rx.checkUrl=void 0;var m8e=require("@smithy/property-provider"),g8e="169.254.170.2",f8e="169.254.170.23",h8e="[fd00:ec2::23]",S8e=(t,e)=>{if(t.protocol!=="https:"&&!(t.hostname===g8e||t.hostname===f8e||t.hostname===h8e)){if(t.hostname.includes("[")){if(t.hostname==="[::1]"||t.hostname==="[0000:0000:0000:0000:0000:0000:0000:0001]")return}else{if(t.hostname==="localhost")return;let r=t.hostname.split("."),n=s=>{let o=parseInt(s,10);return 0<=o&&o<=255};if(r[0]==="127"&&n(r[1])&&n(r[2])&&n(r[3])&&r.length===4)return}throw new m8e.CredentialsProviderError(`URL not accepted. It must either be HTTPS or match one of the following: + - loopback CIDR 127.0.0.0/8 or [::1/128] + - ECS container host 169.254.170.2 + - EKS container host 169.254.170.23 or [fd00:ec2::23]`,{logger:e})}};Rx.checkUrl=S8e});var W7=b(vx=>{"use strict";Object.defineProperty(vx,"__esModule",{value:!0});vx.createGetRequest=C8e;vx.getCredentials=R8e;var AG=require("@smithy/property-provider"),E8e=require("@smithy/protocol-http"),y8e=require("@smithy/smithy-client"),_8e=require("@smithy/util-stream");function C8e(t){return new E8e.HttpRequest({protocol:t.protocol,hostname:t.hostname,port:Number(t.port),path:t.pathname,query:Array.from(t.searchParams.entries()).reduce((e,[r,n])=>(e[r]=n,e),{}),fragment:t.hash})}async function R8e(t,e){let n=await(0,_8e.sdkStreamMixin)(t.body).transformToString();if(t.statusCode===200){let s=JSON.parse(n);if(typeof s.AccessKeyId!="string"||typeof s.SecretAccessKey!="string"||typeof s.Token!="string"||typeof s.Expiration!="string")throw new AG.CredentialsProviderError("HTTP credential provider response not of the required format, an object matching: { AccessKeyId: string, SecretAccessKey: string, Token: string, Expiration: string(rfc3339) }",{logger:e});return{accessKeyId:s.AccessKeyId,secretAccessKey:s.SecretAccessKey,sessionToken:s.Token,expiration:(0,y8e.parseRfc3339DateTime)(s.Expiration)}}if(t.statusCode>=400&&t.statusCode<500){let s={};try{s=JSON.parse(n)}catch{}throw Object.assign(new AG.CredentialsProviderError(`Server responded with status: ${t.statusCode}`,{logger:e}),{Code:s.Code,Message:s.Message})}throw new AG.CredentialsProviderError(`Server responded with status: ${t.statusCode}`,{logger:e})}});var K7=b(xx=>{"use strict";Object.defineProperty(xx,"__esModule",{value:!0});xx.retryWrapper=void 0;var v8e=(t,e,r)=>async()=>{for(let n=0;nsetTimeout(o,r))}return await t()};xx.retryWrapper=v8e});var J7=b(Px=>{"use strict";Object.defineProperty(Px,"__esModule",{value:!0});Px.fromHttp=void 0;var x8e=require("tslib"),P8e=(vo(),ue(cc)),b8e=require("@smithy/node-http-handler"),Q7=require("@smithy/property-provider"),I8e=x8e.__importDefault(require("fs/promises")),A8e=z7(),X7=W7(),T8e=K7(),w8e="AWS_CONTAINER_CREDENTIALS_RELATIVE_URI",D8e="http://169.254.170.2",O8e="AWS_CONTAINER_CREDENTIALS_FULL_URI",k8e="AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE",N8e="AWS_CONTAINER_AUTHORIZATION_TOKEN",L8e=(t={})=>{t.logger?.debug("@aws-sdk/credential-provider-http - fromHttp");let e,r=t.awsContainerCredentialsRelativeUri??process.env[w8e],n=t.awsContainerCredentialsFullUri??process.env[O8e],s=t.awsContainerAuthorizationToken??process.env[N8e],o=t.awsContainerAuthorizationTokenFile??process.env[k8e],i=t.logger?.constructor?.name==="NoOpLogger"||!t.logger?.warn?console.warn:t.logger.warn.bind(t.logger);if(r&&n&&(i("@aws-sdk/credential-provider-http: you have set both awsContainerCredentialsRelativeUri and awsContainerCredentialsFullUri."),i("awsContainerCredentialsFullUri will take precedence.")),s&&o&&(i("@aws-sdk/credential-provider-http: you have set both awsContainerAuthorizationToken and awsContainerAuthorizationTokenFile."),i("awsContainerAuthorizationToken will take precedence.")),n)e=n;else if(r)e=`${D8e}${r}`;else throw new Q7.CredentialsProviderError(`No HTTP credential provider host provided. +Set AWS_CONTAINER_CREDENTIALS_FULL_URI or AWS_CONTAINER_CREDENTIALS_RELATIVE_URI.`,{logger:t.logger});let a=new URL(e);(0,A8e.checkUrl)(a,t.logger);let c=b8e.NodeHttpHandler.create({requestTimeout:t.timeout??1e3,connectionTimeout:t.timeout??1e3});return(0,T8e.retryWrapper)(async()=>{let u=(0,X7.createGetRequest)(a);s?u.headers.Authorization=s:o&&(u.headers.Authorization=(await I8e.default.readFile(o)).toString());try{let l=await c.handle(u);return(0,X7.getCredentials)(l.response).then(d=>(0,P8e.setCredentialFeature)(d,"CREDENTIALS_HTTP","z"))}catch(l){throw new Q7.CredentialsProviderError(String(l),{logger:t.logger})}},t.maxRetries??3,t.timeout??1e3)};Px.fromHttp=L8e});var TG=b(bx=>{"use strict";Object.defineProperty(bx,"__esModule",{value:!0});bx.fromHttp=void 0;var M8e=J7();Object.defineProperty(bx,"fromHttp",{enumerable:!0,get:function(){return M8e.fromHttp}})});function F8e(t){return{schemeId:"aws.auth#sigv4",signingProperties:{name:"sso-oauth",region:t.region},propertiesExtractor:(e,r)=>({signingProperties:{config:e,context:r}})}}function B8e(t){return{schemeId:"smithy.api#noAuth"}}var FS,Y7,Z7,eZ,wG=_(()=>{on();FS=require("@smithy/util-middleware"),Y7=async(t,e,r)=>({operation:(0,FS.getSmithyContext)(e).operation,region:await(0,FS.normalizeProvider)(t.region)()||(()=>{throw new Error("expected `region` to be configured for `aws.auth#sigv4`")})()});Z7=t=>{let e=[];switch(t.operation){case"CreateToken":{e.push(B8e(t));break}default:e.push(F8e(t))}return e},eZ=t=>{let e=uc(t);return Object.assign(e,{authSchemePreference:(0,FS.normalizeProvider)(t.authSchemePreference??[])})}});var tZ,rZ,DG=_(()=>{tZ=t=>Object.assign(t,{useDualstackEndpoint:t.useDualstackEndpoint??!1,useFipsEndpoint:t.useFipsEndpoint??!1,defaultSigningName:"sso-oauth"}),rZ={UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}});var Om,Ix=_(()=>{Om={name:"@aws-sdk/nested-clients",version:"3.996.0",description:"Nested clients for AWS SDK packages.",main:"./dist-cjs/index.js",module:"./dist-es/index.js",types:"./dist-types/index.d.ts",scripts:{build:"yarn lint && concurrently 'yarn:build:types' 'yarn:build:es' && yarn build:cjs","build:cjs":"node ../../scripts/compilation/inline nested-clients","build:es":"tsc -p tsconfig.es.json","build:include:deps":'yarn g:turbo run build -F="$npm_package_name"',"build:types":"tsc -p tsconfig.types.json","build:types:downlevel":"downlevel-dts dist-types dist-types/ts3.4",clean:"premove dist-cjs dist-es dist-types tsconfig.cjs.tsbuildinfo tsconfig.es.tsbuildinfo tsconfig.types.tsbuildinfo",lint:"node ../../scripts/validation/submodules-linter.js --pkg nested-clients",test:"yarn g:vitest run","test:watch":"yarn g:vitest watch"},engines:{node:">=20.0.0"},sideEffects:!1,author:{name:"AWS SDK for JavaScript Team",url:"https://aws.amazon.com/javascript/"},license:"Apache-2.0",dependencies:{"@aws-crypto/sha256-browser":"5.2.0","@aws-crypto/sha256-js":"5.2.0","@aws-sdk/core":"^3.973.12","@aws-sdk/middleware-host-header":"^3.972.3","@aws-sdk/middleware-logger":"^3.972.3","@aws-sdk/middleware-recursion-detection":"^3.972.3","@aws-sdk/middleware-user-agent":"^3.972.12","@aws-sdk/region-config-resolver":"^3.972.3","@aws-sdk/types":"^3.973.1","@aws-sdk/util-endpoints":"3.996.0","@aws-sdk/util-user-agent-browser":"^3.972.3","@aws-sdk/util-user-agent-node":"^3.972.11","@smithy/config-resolver":"^4.4.6","@smithy/core":"^3.23.2","@smithy/fetch-http-handler":"^5.3.9","@smithy/hash-node":"^4.2.8","@smithy/invalid-dependency":"^4.2.8","@smithy/middleware-content-length":"^4.2.8","@smithy/middleware-endpoint":"^4.4.16","@smithy/middleware-retry":"^4.4.33","@smithy/middleware-serde":"^4.2.9","@smithy/middleware-stack":"^4.2.8","@smithy/node-config-provider":"^4.3.8","@smithy/node-http-handler":"^4.4.10","@smithy/protocol-http":"^5.3.8","@smithy/smithy-client":"^4.11.5","@smithy/types":"^4.12.0","@smithy/url-parser":"^4.2.8","@smithy/util-base64":"^4.3.0","@smithy/util-body-length-browser":"^4.2.0","@smithy/util-body-length-node":"^4.2.1","@smithy/util-defaults-mode-browser":"^4.3.32","@smithy/util-defaults-mode-node":"^4.2.35","@smithy/util-endpoints":"^3.2.8","@smithy/util-middleware":"^4.2.8","@smithy/util-retry":"^4.2.8","@smithy/util-utf8":"^4.2.0",tslib:"^2.6.2"},devDependencies:{concurrently:"7.0.0","downlevel-dts":"0.10.1",premove:"4.0.0",typescript:"~5.8.3"},typesVersions:{"<4.0":{"dist-types/*":["dist-types/ts3.4/*"]}},files:["./signin.d.ts","./signin.js","./sso-oidc.d.ts","./sso-oidc.js","./sts.d.ts","./sts.js","dist-*/**"],browser:{"./dist-es/submodules/signin/runtimeConfig":"./dist-es/submodules/signin/runtimeConfig.browser","./dist-es/submodules/sso-oidc/runtimeConfig":"./dist-es/submodules/sso-oidc/runtimeConfig.browser","./dist-es/submodules/sts/runtimeConfig":"./dist-es/submodules/sts/runtimeConfig.browser"},"react-native":{},homepage:"https://github.com/aws/aws-sdk-js-v3/tree/main/packages/nested-clients",repository:{type:"git",url:"https://github.com/aws/aws-sdk-js-v3.git",directory:"packages/nested-clients"},exports:{"./package.json":"./package.json","./sso-oidc":{types:"./dist-types/submodules/sso-oidc/index.d.ts",module:"./dist-es/submodules/sso-oidc/index.js",node:"./dist-cjs/submodules/sso-oidc/index.js",import:"./dist-es/submodules/sso-oidc/index.js",require:"./dist-cjs/submodules/sso-oidc/index.js"},"./sts":{types:"./dist-types/submodules/sts/index.d.ts",module:"./dist-es/submodules/sts/index.js",node:"./dist-cjs/submodules/sts/index.js",import:"./dist-es/submodules/sts/index.js",require:"./dist-cjs/submodules/sts/index.js"},"./signin":{types:"./dist-types/submodules/signin/index.d.ts",module:"./dist-es/submodules/signin/index.js",node:"./dist-cjs/submodules/signin/index.js",import:"./dist-es/submodules/signin/index.js",require:"./dist-cjs/submodules/signin/index.js"}}}});var km=b(Rd=>{"use strict";var nZ=require("os"),BS=require("process"),q8e=Cd(),$8e=()=>{let t=["deno","bun","llrt"];for(let e of t)if(BS.versions[e])return[`md/${e}`,BS.versions[e]];return["md/nodejs",BS.versions.node]},sZ={isCrtAvailable:!1},G8e=()=>sZ.isCrtAvailable?["md/crt-avail"]:null,oZ=({serviceId:t,clientVersion:e})=>{let r=$8e();return async n=>{let s=[["aws-sdk-js",e],["ua","2.1"],[`os/${nZ.platform()}`,nZ.release()],["lang/js"],r],o=G8e();o&&s.push(o),t&&s.push([`api/${t}`,e]),BS.env.AWS_EXECUTION_ENV&&s.push([`exec-env/${BS.env.AWS_EXECUTION_ENV}`]);let i=await n?.userAgentAppId?.();return i?[...s,[`app/${i}`]]:[...s]}},j8e=oZ,iZ="AWS_SDK_UA_APP_ID",aZ="sdk_ua_app_id",V8e="sdk-ua-app-id",H8e={environmentVariableSelector:t=>t[iZ],configFileSelector:t=>t[aZ]??t[V8e],default:q8e.DEFAULT_UA_APP_ID};Rd.NODE_APP_ID_CONFIG_OPTIONS=H8e;Rd.UA_APP_ID_ENV_NAME=iZ;Rd.UA_APP_ID_INI_NAME=aZ;Rd.createDefaultUserAgentProvider=oZ;Rd.crtAvailability=sZ;Rd.defaultUserAgent=j8e});var Ax=b(yi=>{"use strict";var Nm=require("@smithy/util-endpoints"),z8e=require("@smithy/url-parser"),uZ=(t,e=!1)=>{if(e){for(let r of t.split("."))if(!uZ(r))return!1;return!0}return!(!Nm.isValidHostLabel(t)||t.length<3||t.length>63||t!==t.toLowerCase()||Nm.isIpAddress(t))},cZ=":",W8e="/",K8e=t=>{let e=t.split(cZ);if(e.length<6)return null;let[r,n,s,o,i,...a]=e;if(r!=="arn"||n===""||s===""||a.join(cZ)==="")return null;let c=a.map(u=>u.split(W8e)).flat();return{partition:n,service:s,region:o,accountId:i,resourceId:c}},Q8e=[{id:"aws",outputs:{dnsSuffix:"amazonaws.com",dualStackDnsSuffix:"api.aws",implicitGlobalRegion:"us-east-1",name:"aws",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^(us|eu|ap|sa|ca|me|af|il|mx)\\-\\w+\\-\\d+$",regions:{"af-south-1":{description:"Africa (Cape Town)"},"ap-east-1":{description:"Asia Pacific (Hong Kong)"},"ap-east-2":{description:"Asia Pacific (Taipei)"},"ap-northeast-1":{description:"Asia Pacific (Tokyo)"},"ap-northeast-2":{description:"Asia Pacific (Seoul)"},"ap-northeast-3":{description:"Asia Pacific (Osaka)"},"ap-south-1":{description:"Asia Pacific (Mumbai)"},"ap-south-2":{description:"Asia Pacific (Hyderabad)"},"ap-southeast-1":{description:"Asia Pacific (Singapore)"},"ap-southeast-2":{description:"Asia Pacific (Sydney)"},"ap-southeast-3":{description:"Asia Pacific (Jakarta)"},"ap-southeast-4":{description:"Asia Pacific (Melbourne)"},"ap-southeast-5":{description:"Asia Pacific (Malaysia)"},"ap-southeast-6":{description:"Asia Pacific (New Zealand)"},"ap-southeast-7":{description:"Asia Pacific (Thailand)"},"aws-global":{description:"aws global region"},"ca-central-1":{description:"Canada (Central)"},"ca-west-1":{description:"Canada West (Calgary)"},"eu-central-1":{description:"Europe (Frankfurt)"},"eu-central-2":{description:"Europe (Zurich)"},"eu-north-1":{description:"Europe (Stockholm)"},"eu-south-1":{description:"Europe (Milan)"},"eu-south-2":{description:"Europe (Spain)"},"eu-west-1":{description:"Europe (Ireland)"},"eu-west-2":{description:"Europe (London)"},"eu-west-3":{description:"Europe (Paris)"},"il-central-1":{description:"Israel (Tel Aviv)"},"me-central-1":{description:"Middle East (UAE)"},"me-south-1":{description:"Middle East (Bahrain)"},"mx-central-1":{description:"Mexico (Central)"},"sa-east-1":{description:"South America (Sao Paulo)"},"us-east-1":{description:"US East (N. Virginia)"},"us-east-2":{description:"US East (Ohio)"},"us-west-1":{description:"US West (N. California)"},"us-west-2":{description:"US West (Oregon)"}}},{id:"aws-cn",outputs:{dnsSuffix:"amazonaws.com.cn",dualStackDnsSuffix:"api.amazonwebservices.com.cn",implicitGlobalRegion:"cn-northwest-1",name:"aws-cn",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^cn\\-\\w+\\-\\d+$",regions:{"aws-cn-global":{description:"aws-cn global region"},"cn-north-1":{description:"China (Beijing)"},"cn-northwest-1":{description:"China (Ningxia)"}}},{id:"aws-eusc",outputs:{dnsSuffix:"amazonaws.eu",dualStackDnsSuffix:"api.amazonwebservices.eu",implicitGlobalRegion:"eusc-de-east-1",name:"aws-eusc",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^eusc\\-(de)\\-\\w+\\-\\d+$",regions:{"eusc-de-east-1":{description:"AWS European Sovereign Cloud (Germany)"}}},{id:"aws-iso",outputs:{dnsSuffix:"c2s.ic.gov",dualStackDnsSuffix:"api.aws.ic.gov",implicitGlobalRegion:"us-iso-east-1",name:"aws-iso",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^us\\-iso\\-\\w+\\-\\d+$",regions:{"aws-iso-global":{description:"aws-iso global region"},"us-iso-east-1":{description:"US ISO East"},"us-iso-west-1":{description:"US ISO WEST"}}},{id:"aws-iso-b",outputs:{dnsSuffix:"sc2s.sgov.gov",dualStackDnsSuffix:"api.aws.scloud",implicitGlobalRegion:"us-isob-east-1",name:"aws-iso-b",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^us\\-isob\\-\\w+\\-\\d+$",regions:{"aws-iso-b-global":{description:"aws-iso-b global region"},"us-isob-east-1":{description:"US ISOB East (Ohio)"},"us-isob-west-1":{description:"US ISOB West"}}},{id:"aws-iso-e",outputs:{dnsSuffix:"cloud.adc-e.uk",dualStackDnsSuffix:"api.cloud-aws.adc-e.uk",implicitGlobalRegion:"eu-isoe-west-1",name:"aws-iso-e",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^eu\\-isoe\\-\\w+\\-\\d+$",regions:{"aws-iso-e-global":{description:"aws-iso-e global region"},"eu-isoe-west-1":{description:"EU ISOE West"}}},{id:"aws-iso-f",outputs:{dnsSuffix:"csp.hci.ic.gov",dualStackDnsSuffix:"api.aws.hci.ic.gov",implicitGlobalRegion:"us-isof-south-1",name:"aws-iso-f",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^us\\-isof\\-\\w+\\-\\d+$",regions:{"aws-iso-f-global":{description:"aws-iso-f global region"},"us-isof-east-1":{description:"US ISOF EAST"},"us-isof-south-1":{description:"US ISOF SOUTH"}}},{id:"aws-us-gov",outputs:{dnsSuffix:"amazonaws.com",dualStackDnsSuffix:"api.aws",implicitGlobalRegion:"us-gov-west-1",name:"aws-us-gov",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^us\\-gov\\-\\w+\\-\\d+$",regions:{"aws-us-gov-global":{description:"aws-us-gov global region"},"us-gov-east-1":{description:"AWS GovCloud (US-East)"},"us-gov-west-1":{description:"AWS GovCloud (US-West)"}}}],X8e="1.1",lZ={partitions:Q8e,version:X8e},dZ=lZ,pZ="",mZ=t=>{let{partitions:e}=dZ;for(let n of e){let{regions:s,outputs:o}=n;for(let[i,a]of Object.entries(s))if(i===t)return{...o,...a}}for(let n of e){let{regionRegex:s,outputs:o}=n;if(new RegExp(s).test(t))return{...o}}let r=e.find(n=>n.id==="aws");if(!r)throw new Error("Provided region was not found in the partition array or regex, and default partition with id 'aws' doesn't exist.");return{...r.outputs}},gZ=(t,e="")=>{dZ=t,pZ=e},J8e=()=>{gZ(lZ,"")},Y8e=()=>pZ,fZ={isVirtualHostableS3Bucket:uZ,parseArn:K8e,partition:mZ};Nm.customEndpointFunctions.aws=fZ;var Z8e=t=>{if(typeof t.endpointProvider!="function")throw new Error("@aws-sdk/util-endpoint - endpointProvider and endpoint missing in config for this client.");let{endpoint:e}=t;return e===void 0&&(t.endpoint=async()=>hZ(t.endpointProvider({Region:typeof t.region=="function"?await t.region():t.region,UseDualStack:typeof t.useDualstackEndpoint=="function"?await t.useDualstackEndpoint():t.useDualstackEndpoint,UseFIPS:typeof t.useFipsEndpoint=="function"?await t.useFipsEndpoint():t.useFipsEndpoint,Endpoint:void 0},{logger:t.logger}))),t},hZ=t=>z8e.parseUrl(t.url);yi.EndpointError=Nm.EndpointError;yi.isIpAddress=Nm.isIpAddress;yi.resolveEndpoint=Nm.resolveEndpoint;yi.awsEndpointFunctions=fZ;yi.getUserAgentPrefix=Y8e;yi.partition=mZ;yi.resolveDefaultAwsRegionalEndpointsConfig=Z8e;yi.setPartitionInfo=gZ;yi.toEndpointV1=hZ;yi.useDefaultPartitionInfo=J8e});var bZ,bo,Io,Fm,SZ,US,Lm,Mm,dc,OG,kG,EZ,yZ,_Z,IZ,AZ,Po,CZ,TZ,RZ,vZ,xZ,PZ,e5e,wZ,DZ=_(()=>{bZ="required",bo="fn",Io="argv",Fm="ref",SZ="isSet",US="booleanEquals",Lm="error",Mm="endpoint",dc="tree",OG="PartitionResult",kG="getAttr",EZ={[bZ]:!1,type:"string"},yZ={[bZ]:!0,default:!1,type:"boolean"},_Z={[Fm]:"Endpoint"},IZ={[bo]:US,[Io]:[{[Fm]:"UseFIPS"},!0]},AZ={[bo]:US,[Io]:[{[Fm]:"UseDualStack"},!0]},Po={},CZ={[bo]:kG,[Io]:[{[Fm]:OG},"supportsFIPS"]},TZ={[Fm]:OG},RZ={[bo]:US,[Io]:[!0,{[bo]:kG,[Io]:[TZ,"supportsDualStack"]}]},vZ=[IZ],xZ=[AZ],PZ=[{[Fm]:"Region"}],e5e={version:"1.0",parameters:{Region:EZ,UseDualStack:yZ,UseFIPS:yZ,Endpoint:EZ},rules:[{conditions:[{[bo]:SZ,[Io]:[_Z]}],rules:[{conditions:vZ,error:"Invalid Configuration: FIPS and custom endpoint are not supported",type:Lm},{conditions:xZ,error:"Invalid Configuration: Dualstack and custom endpoint are not supported",type:Lm},{endpoint:{url:_Z,properties:Po,headers:Po},type:Mm}],type:dc},{conditions:[{[bo]:SZ,[Io]:PZ}],rules:[{conditions:[{[bo]:"aws.partition",[Io]:PZ,assign:OG}],rules:[{conditions:[IZ,AZ],rules:[{conditions:[{[bo]:US,[Io]:[!0,CZ]},RZ],rules:[{endpoint:{url:"https://oidc-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:Po,headers:Po},type:Mm}],type:dc},{error:"FIPS and DualStack are enabled, but this partition does not support one or both",type:Lm}],type:dc},{conditions:vZ,rules:[{conditions:[{[bo]:US,[Io]:[CZ,!0]}],rules:[{conditions:[{[bo]:"stringEquals",[Io]:[{[bo]:kG,[Io]:[TZ,"name"]},"aws-us-gov"]}],endpoint:{url:"https://oidc.{Region}.amazonaws.com",properties:Po,headers:Po},type:Mm},{endpoint:{url:"https://oidc-fips.{Region}.{PartitionResult#dnsSuffix}",properties:Po,headers:Po},type:Mm}],type:dc},{error:"FIPS is enabled but this partition does not support FIPS",type:Lm}],type:dc},{conditions:xZ,rules:[{conditions:[RZ],rules:[{endpoint:{url:"https://oidc.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:Po,headers:Po},type:Mm}],type:dc},{error:"DualStack is enabled but this partition does not support DualStack",type:Lm}],type:dc},{endpoint:{url:"https://oidc.{Region}.{PartitionResult#dnsSuffix}",properties:Po,headers:Po},type:Mm}],type:dc}],type:dc},{error:"Invalid Configuration: Missing Region",type:Lm}]},wZ=e5e});var OZ,Bm,t5e,kZ,NZ=_(()=>{OZ=O(Ax()),Bm=require("@smithy/util-endpoints");DZ();t5e=new Bm.EndpointCache({size:50,params:["Endpoint","Region","UseDualStack","UseFIPS"]}),kZ=(t,e={})=>t5e.get(t,()=>(0,Bm.resolveEndpoint)(wZ,{endpointParams:t,logger:e.logger}));Bm.customEndpointFunctions.aws=OZ.awsEndpointFunctions});var LZ,Wr,Tx=_(()=>{LZ=require("@smithy/smithy-client"),Wr=class t extends LZ.ServiceException{constructor(e){super(e),Object.setPrototypeOf(this,t.prototype)}}});var qS,$S,GS,jS,VS,HS,zS,WS,KS,QS,XS,NG=_(()=>{Tx();qS=class t extends Wr{name="AccessDeniedException";$fault="client";error;reason;error_description;constructor(e){super({name:"AccessDeniedException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error,this.reason=e.reason,this.error_description=e.error_description}},$S=class t extends Wr{name="AuthorizationPendingException";$fault="client";error;error_description;constructor(e){super({name:"AuthorizationPendingException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error,this.error_description=e.error_description}},GS=class t extends Wr{name="ExpiredTokenException";$fault="client";error;error_description;constructor(e){super({name:"ExpiredTokenException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error,this.error_description=e.error_description}},jS=class t extends Wr{name="InternalServerException";$fault="server";error;error_description;constructor(e){super({name:"InternalServerException",$fault:"server",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error,this.error_description=e.error_description}},VS=class t extends Wr{name="InvalidClientException";$fault="client";error;error_description;constructor(e){super({name:"InvalidClientException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error,this.error_description=e.error_description}},HS=class t extends Wr{name="InvalidGrantException";$fault="client";error;error_description;constructor(e){super({name:"InvalidGrantException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error,this.error_description=e.error_description}},zS=class t extends Wr{name="InvalidRequestException";$fault="client";error;reason;error_description;constructor(e){super({name:"InvalidRequestException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error,this.reason=e.reason,this.error_description=e.error_description}},WS=class t extends Wr{name="InvalidScopeException";$fault="client";error;error_description;constructor(e){super({name:"InvalidScopeException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error,this.error_description=e.error_description}},KS=class t extends Wr{name="SlowDownException";$fault="client";error;error_description;constructor(e){super({name:"SlowDownException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error,this.error_description=e.error_description}},QS=class t extends Wr{name="UnauthorizedClientException";$fault="client";error;error_description;constructor(e){super({name:"UnauthorizedClientException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error,this.error_description=e.error_description}},XS=class t extends Wr{name="UnsupportedGrantTypeException";$fault="client";error;error_description;constructor(e){super({name:"UnsupportedGrantTypeException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error,this.error_description=e.error_description}}});var LG,r5e,n5e,s5e,o5e,i5e,a5e,c5e,u5e,l5e,d5e,p5e,m5e,g5e,f5e,h5e,S5e,E5e,y5e,_5e,C5e,pa,R5e,v5e,x5e,P5e,b5e,lr,I5e,_i,A5e,T5e,Ci,w5e,MZ,FZ,D5e,BZ,O5e,k5e,N5e,Pr,UZ,qZ,Ao,$Z,GZ,jZ,VZ,HZ,zZ,WZ,KZ,QZ,XZ,JZ,MG,L5e,M5e,F5e,B5e,YZ,ZZ,eee,FG,wx=_(()=>{LG=require("@smithy/core/schema");NG();Tx();r5e="AccessDeniedException",n5e="AuthorizationPendingException",s5e="AccessToken",o5e="ClientSecret",i5e="CreateToken",a5e="CreateTokenRequest",c5e="CreateTokenResponse",u5e="CodeVerifier",l5e="ExpiredTokenException",d5e="InvalidClientException",p5e="InvalidGrantException",m5e="InvalidRequestException",g5e="InternalServerException",f5e="InvalidScopeException",h5e="IdToken",S5e="RefreshToken",E5e="SlowDownException",y5e="UnauthorizedClientException",_5e="UnsupportedGrantTypeException",C5e="accessToken",pa="client",R5e="clientId",v5e="clientSecret",x5e="codeVerifier",P5e="code",b5e="deviceCode",lr="error",I5e="expiresIn",_i="error_description",A5e="grantType",T5e="http",Ci="httpError",w5e="idToken",MZ="reason",FZ="refreshToken",D5e="redirectUri",BZ="smithy.ts.sdk.synthetic.com.amazonaws.ssooidc",O5e="scope",k5e="server",N5e="tokenType",Pr="com.amazonaws.ssooidc",UZ=LG.TypeRegistry.for(BZ),qZ=[-3,BZ,"SSOOIDCServiceException",0,[],[]];UZ.registerError(qZ,Wr);Ao=LG.TypeRegistry.for(Pr),$Z=[-3,Pr,r5e,{[lr]:pa,[Ci]:400},[lr,MZ,_i],[0,0,0]];Ao.registerError($Z,qS);GZ=[-3,Pr,n5e,{[lr]:pa,[Ci]:400},[lr,_i],[0,0]];Ao.registerError(GZ,$S);jZ=[-3,Pr,l5e,{[lr]:pa,[Ci]:400},[lr,_i],[0,0]];Ao.registerError(jZ,GS);VZ=[-3,Pr,g5e,{[lr]:k5e,[Ci]:500},[lr,_i],[0,0]];Ao.registerError(VZ,jS);HZ=[-3,Pr,d5e,{[lr]:pa,[Ci]:401},[lr,_i],[0,0]];Ao.registerError(HZ,VS);zZ=[-3,Pr,p5e,{[lr]:pa,[Ci]:400},[lr,_i],[0,0]];Ao.registerError(zZ,HS);WZ=[-3,Pr,m5e,{[lr]:pa,[Ci]:400},[lr,MZ,_i],[0,0,0]];Ao.registerError(WZ,zS);KZ=[-3,Pr,f5e,{[lr]:pa,[Ci]:400},[lr,_i],[0,0]];Ao.registerError(KZ,WS);QZ=[-3,Pr,E5e,{[lr]:pa,[Ci]:400},[lr,_i],[0,0]];Ao.registerError(QZ,KS);XZ=[-3,Pr,y5e,{[lr]:pa,[Ci]:400},[lr,_i],[0,0]];Ao.registerError(XZ,QS);JZ=[-3,Pr,_5e,{[lr]:pa,[Ci]:400},[lr,_i],[0,0]];Ao.registerError(JZ,XS);MG=[UZ,Ao],L5e=[0,Pr,s5e,8,0],M5e=[0,Pr,o5e,8,0],F5e=[0,Pr,u5e,8,0],B5e=[0,Pr,h5e,8,0],YZ=[0,Pr,S5e,8,0],ZZ=[3,Pr,a5e,0,[R5e,v5e,A5e,b5e,P5e,FZ,O5e,D5e,x5e],[0,[()=>M5e,0],0,0,0,[()=>YZ,0],64,0,[()=>F5e,0]],3],eee=[3,Pr,c5e,0,[C5e,N5e,I5e,FZ,w5e],[[()=>L5e,0],0,1,[()=>YZ,0],[()=>B5e,0]]],FG=[9,Pr,i5e,{[T5e]:["POST","/token",200]},()=>ZZ,()=>eee]});var tee,ree,nee,Dx,Ox,see,oee=_(()=>{on();_d();tee=require("@smithy/core"),ree=require("@smithy/smithy-client"),nee=require("@smithy/url-parser"),Dx=require("@smithy/util-base64"),Ox=require("@smithy/util-utf8");wG();NZ();wx();see=t=>({apiVersion:"2019-06-10",base64Decoder:t?.base64Decoder??Dx.fromBase64,base64Encoder:t?.base64Encoder??Dx.toBase64,disableHostPrefix:t?.disableHostPrefix??!1,endpointProvider:t?.endpointProvider??kZ,extensions:t?.extensions??[],httpAuthSchemeProvider:t?.httpAuthSchemeProvider??Z7,httpAuthSchemes:t?.httpAuthSchemes??[{schemeId:"aws.auth#sigv4",identityProvider:e=>e.getIdentityProvider("aws.auth#sigv4"),signer:new En},{schemeId:"smithy.api#noAuth",identityProvider:e=>e.getIdentityProvider("smithy.api#noAuth")||(async()=>({})),signer:new tee.NoAuthSigner}],logger:t?.logger??new ree.NoOpLogger,protocol:t?.protocol??Iu,protocolSettings:t?.protocolSettings??{defaultNamespace:"com.amazonaws.ssooidc",errorTypeRegistries:MG,version:"2019-06-10",serviceTarget:"AWSSSOOIDCService"},serviceId:t?.serviceId??"SSO OIDC",urlParser:t?.urlParser??nee.parseUrl,utf8Decoder:t?.utf8Decoder??Ox.fromUtf8,utf8Encoder:t?.utf8Encoder??Ox.toUtf8})});var kx,Nu,iee,Nx,ku,Lx,Mx,aee,cee,uee,lee,dee=_(()=>{Ix();on();kx=O(km()),Nu=require("@smithy/config-resolver"),iee=require("@smithy/hash-node"),Nx=require("@smithy/middleware-retry"),ku=require("@smithy/node-config-provider"),Lx=require("@smithy/node-http-handler"),Mx=require("@smithy/smithy-client"),aee=require("@smithy/util-body-length-node"),cee=require("@smithy/util-defaults-mode-node"),uee=require("@smithy/util-retry");oee();lee=t=>{(0,Mx.emitWarningIfUnsupportedVersion)(process.version);let e=(0,cee.resolveDefaultsModeConfig)(t),r=()=>e().then(Mx.loadConfigsForDefaultMode),n=see(t);Cu(process.version);let s={profile:t?.profile,logger:n.logger};return{...n,...t,runtime:"node",defaultsMode:e,authSchemePreference:t?.authSchemePreference??(0,ku.loadConfig)(vu,s),bodyLengthChecker:t?.bodyLengthChecker??aee.calculateBodyLength,defaultUserAgentProvider:t?.defaultUserAgentProvider??(0,kx.createDefaultUserAgentProvider)({serviceId:n.serviceId,clientVersion:Om.version}),maxAttempts:t?.maxAttempts??(0,ku.loadConfig)(Nx.NODE_MAX_ATTEMPT_CONFIG_OPTIONS,t),region:t?.region??(0,ku.loadConfig)(Nu.NODE_REGION_CONFIG_OPTIONS,{...Nu.NODE_REGION_CONFIG_FILE_OPTIONS,...s}),requestHandler:Lx.NodeHttpHandler.create(t?.requestHandler??r),retryMode:t?.retryMode??(0,ku.loadConfig)({...Nx.NODE_RETRY_MODE_CONFIG_OPTIONS,default:async()=>(await r()).retryMode||uee.DEFAULT_RETRY_MODE},t),sha256:t?.sha256??iee.Hash.bind(null,"sha256"),streamCollector:t?.streamCollector??Lx.streamCollector,useDualstackEndpoint:t?.useDualstackEndpoint??(0,ku.loadConfig)(Nu.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS,s),useFipsEndpoint:t?.useFipsEndpoint??(0,ku.loadConfig)(Nu.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS,s),userAgentAppId:t?.userAgentAppId??(0,ku.loadConfig)(kx.NODE_APP_ID_CONFIG_OPTIONS,s)}}});var mee=b(Um=>{"use strict";Object.defineProperty(Um,"__esModule",{value:!0});Um.warning=void 0;Um.stsRegionDefaultResolver=q5e;var pee=require("@smithy/config-resolver"),U5e=require("@smithy/node-config-provider");function q5e(t={}){return(0,U5e.loadConfig)({...pee.NODE_REGION_CONFIG_OPTIONS,async default(){return Um.warning.silence||console.warn("@aws-sdk - WARN - default STS region of us-east-1 used. See @aws-sdk/credential-providers README and set a region explicitly."),"us-east-1"}},{...pee.NODE_REGION_CONFIG_FILE_OPTIONS,...t})}Um.warning={silence:!1}});var vd=b(ma=>{"use strict";var gee=mee(),JS=require("@smithy/config-resolver"),$5e=t=>({setRegion(e){t.region=e},region(){return t.region}}),G5e=t=>({region:t.region()});Object.defineProperty(ma,"NODE_REGION_CONFIG_FILE_OPTIONS",{enumerable:!0,get:function(){return JS.NODE_REGION_CONFIG_FILE_OPTIONS}});Object.defineProperty(ma,"NODE_REGION_CONFIG_OPTIONS",{enumerable:!0,get:function(){return JS.NODE_REGION_CONFIG_OPTIONS}});Object.defineProperty(ma,"REGION_ENV_NAME",{enumerable:!0,get:function(){return JS.REGION_ENV_NAME}});Object.defineProperty(ma,"REGION_INI_NAME",{enumerable:!0,get:function(){return JS.REGION_INI_NAME}});Object.defineProperty(ma,"resolveRegionConfig",{enumerable:!0,get:function(){return JS.resolveRegionConfig}});ma.getAwsRegionExtensionConfiguration=$5e;ma.resolveAwsRegionExtensionConfiguration=G5e;Object.keys(gee).forEach(function(t){t!=="default"&&!Object.prototype.hasOwnProperty.call(ma,t)&&Object.defineProperty(ma,t,{enumerable:!0,get:function(){return gee[t]}})})});var fee,hee,See=_(()=>{fee=t=>{let e=t.httpAuthSchemes,r=t.httpAuthSchemeProvider,n=t.credentials;return{setHttpAuthScheme(s){let o=e.findIndex(i=>i.schemeId===s.schemeId);o===-1?e.push(s):e.splice(o,1,s)},httpAuthSchemes(){return e},setHttpAuthSchemeProvider(s){r=s},httpAuthSchemeProvider(){return r},setCredentials(s){n=s},credentials(){return n}}},hee=t=>({httpAuthSchemes:t.httpAuthSchemes(),httpAuthSchemeProvider:t.httpAuthSchemeProvider(),credentials:t.credentials()})});var Fx,Bx,Ux,Eee,yee=_(()=>{Fx=O(vd()),Bx=require("@smithy/protocol-http"),Ux=require("@smithy/smithy-client");See();Eee=(t,e)=>{let r=Object.assign((0,Fx.getAwsRegionExtensionConfiguration)(t),(0,Ux.getDefaultExtensionConfiguration)(t),(0,Bx.getHttpHandlerExtensionConfiguration)(t),fee(t));return e.forEach(n=>n.configure(r)),Object.assign(t,(0,Fx.resolveAwsRegionExtensionConfiguration)(r),(0,Ux.resolveDefaultRuntimeConfig)(r),(0,Bx.resolveHttpHandlerRuntimeConfig)(r),hee(r))}});var qx,_ee,Cee,$x,Ree,qm,vee,xee,Pee,Gx,BG,YS,UG=_(()=>{qx=O(gm()),_ee=O(fm()),Cee=O(hm()),$x=O(Cd()),Ree=require("@smithy/config-resolver"),qm=require("@smithy/core"),vee=require("@smithy/core/schema"),xee=require("@smithy/middleware-content-length"),Pee=require("@smithy/middleware-endpoint"),Gx=require("@smithy/middleware-retry"),BG=require("@smithy/smithy-client");wG();DG();dee();yee();YS=class extends BG.Client{config;constructor(...[e]){let r=lee(e||{});super(r),this.initConfig=r;let n=tZ(r),s=(0,$x.resolveUserAgentConfig)(n),o=(0,Gx.resolveRetryConfig)(s),i=(0,Ree.resolveRegionConfig)(o),a=(0,qx.resolveHostHeaderConfig)(i),c=(0,Pee.resolveEndpointConfig)(a),u=eZ(c),l=Eee(u,e?.extensions||[]);this.config=l,this.middlewareStack.use((0,vee.getSchemaSerdePlugin)(this.config)),this.middlewareStack.use((0,$x.getUserAgentPlugin)(this.config)),this.middlewareStack.use((0,Gx.getRetryPlugin)(this.config)),this.middlewareStack.use((0,xee.getContentLengthPlugin)(this.config)),this.middlewareStack.use((0,qx.getHostHeaderPlugin)(this.config)),this.middlewareStack.use((0,_ee.getLoggerPlugin)(this.config)),this.middlewareStack.use((0,Cee.getRecursionDetectionPlugin)(this.config)),this.middlewareStack.use((0,qm.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config,{httpAuthSchemeParametersProvider:Y7,identityProviderConfigProvider:async d=>new qm.DefaultIdentityProviderConfig({"aws.auth#sigv4":d.credentials})})),this.middlewareStack.use((0,qm.getHttpSigningPlugin)(this.config))}destroy(){super.destroy()}}});var bee,qG,ZS,$G=_(()=>{bee=require("@smithy/middleware-endpoint"),qG=require("@smithy/smithy-client");DG();wx();ZS=class extends qG.Command.classBuilder().ep(rZ).m(function(e,r,n,s){return[(0,bee.getEndpointPlugin)(n,e.getEndpointParameterInstructions())]}).s("AWSSSOOIDCService","CreateToken",{}).n("SSOOIDCClient","CreateTokenCommand").sc(FG).build(){}});var Iee,j5e,jx,Aee=_(()=>{Iee=require("@smithy/smithy-client");$G();UG();j5e={CreateTokenCommand:ZS},jx=class extends YS{};(0,Iee.createAggregatedClient)(j5e,jx)});var Tee=_(()=>{$G()});var V5e,H5e,wee=_(()=>{V5e={KMS_ACCESS_DENIED:"KMS_AccessDeniedException"},H5e={KMS_DISABLED_KEY:"KMS_DisabledException",KMS_INVALID_KEY_USAGE:"KMS_InvalidKeyUsageException",KMS_INVALID_STATE:"KMS_InvalidStateException",KMS_KEY_NOT_FOUND:"KMS_NotFoundException"}});var Dee=_(()=>{});var GG={};wt(GG,{$Command:()=>qG.Command,AccessDeniedException:()=>qS,AccessDeniedException$:()=>$Z,AccessDeniedExceptionReason:()=>V5e,AuthorizationPendingException:()=>$S,AuthorizationPendingException$:()=>GZ,CreateToken$:()=>FG,CreateTokenCommand:()=>ZS,CreateTokenRequest$:()=>ZZ,CreateTokenResponse$:()=>eee,ExpiredTokenException:()=>GS,ExpiredTokenException$:()=>jZ,InternalServerException:()=>jS,InternalServerException$:()=>VZ,InvalidClientException:()=>VS,InvalidClientException$:()=>HZ,InvalidGrantException:()=>HS,InvalidGrantException$:()=>zZ,InvalidRequestException:()=>zS,InvalidRequestException$:()=>WZ,InvalidRequestExceptionReason:()=>H5e,InvalidScopeException:()=>WS,InvalidScopeException$:()=>KZ,SSOOIDC:()=>jx,SSOOIDCClient:()=>YS,SSOOIDCServiceException:()=>Wr,SSOOIDCServiceException$:()=>qZ,SlowDownException:()=>KS,SlowDownException$:()=>QZ,UnauthorizedClientException:()=>QS,UnauthorizedClientException$:()=>XZ,UnsupportedGrantTypeException:()=>XS,UnsupportedGrantTypeException$:()=>JZ,__Client:()=>BG.Client,errorTypeRegistries:()=>MG});var jG=_(()=>{UG();Aee();Tee();wx();wee();NG();Dee();Tx()});var Lee=b(tE=>{"use strict";var z5e=(vo(),ue(cc)),W5e=(oG(),ue(zY)),$s=require("@smithy/property-provider"),eE=require("@smithy/shared-ini-file-loader"),K5e=require("fs"),Q5e=({logger:t,signingName:e}={})=>async()=>{if(t?.debug?.("@aws-sdk/token-providers - fromEnvSigningName"),!e)throw new $s.TokenProviderError("Please pass 'signingName' to compute environment variable key",{logger:t});let r=W5e.getBearerTokenEnvKey(e);if(!(r in process.env))throw new $s.TokenProviderError(`Token not present in '${r}' environment variable`,{logger:t});let n={token:process.env[r]};return z5e.setTokenFeature(n,"BEARER_SERVICE_ENV_VARS","3"),n},X5e=5*60*1e3,VG="To refresh this SSO session run 'aws sso login' with the corresponding profile.",J5e=async(t,e={},r)=>{let{SSOOIDCClient:n}=await Promise.resolve().then(()=>(jG(),GG)),s=i=>e.clientConfig?.[i]??e.parentClientConfig?.[i]??r?.[i];return new n(Object.assign({},e.clientConfig??{},{region:t??e.clientConfig?.region,logger:s("logger"),userAgentAppId:s("userAgentAppId")}))},Y5e=async(t,e,r={},n)=>{let{CreateTokenCommand:s}=await Promise.resolve().then(()=>(jG(),GG));return(await J5e(e,r,n)).send(new s({clientId:t.clientId,clientSecret:t.clientSecret,refreshToken:t.refreshToken,grantType:"refresh_token"}))},Oee=t=>{if(t.expiration&&t.expiration.getTime(){if(typeof e>"u")throw new $s.TokenProviderError(`Value not present for '${t}' in SSO Token${r?". Cannot refresh":""}. ${VG}`,!1)},{writeFile:Z5e}=K5e.promises,eQe=(t,e)=>{let r=eE.getSSOTokenFilepath(t),n=JSON.stringify(e,null,2);return Z5e(r,n)},kee=new Date(0),Nee=(t={})=>async({callerClientConfig:e}={})=>{t.logger?.debug("@aws-sdk/token-providers - fromSso");let r=await eE.parseKnownFiles(t),n=eE.getProfileName({profile:t.profile??e?.profile}),s=r[n];if(s){if(!s.sso_session)throw new $s.TokenProviderError(`Profile '${n}' is missing required property 'sso_session'.`)}else throw new $s.TokenProviderError(`Profile '${n}' could not be found in shared credentials file.`,!1);let o=s.sso_session,a=(await eE.loadSsoSessionData(t))[o];if(!a)throw new $s.TokenProviderError(`Sso session '${o}' could not be found in shared credentials file.`,!1);for(let g of["sso_start_url","sso_region"])if(!a[g])throw new $s.TokenProviderError(`Sso session '${o}' is missing required property '${g}'.`,!1);a.sso_start_url;let c=a.sso_region,u;try{u=await eE.getSSOTokenFromFile(o)}catch{throw new $s.TokenProviderError(`The SSO session token associated with profile=${n} was not found or is invalid. ${VG}`,!1)}xd("accessToken",u.accessToken),xd("expiresAt",u.expiresAt);let{accessToken:l,expiresAt:d}=u,p={token:l,expiration:new Date(d)};if(p.expiration.getTime()-Date.now()>X5e)return p;if(Date.now()-kee.getTime()<30*1e3)return Oee(p),p;xd("clientId",u.clientId,!0),xd("clientSecret",u.clientSecret,!0),xd("refreshToken",u.refreshToken,!0);try{kee.setTime(Date.now());let g=await Y5e(u,c,t,e);xd("accessToken",g.accessToken),xd("expiresIn",g.expiresIn);let y=new Date(Date.now()+g.expiresIn*1e3);try{await eQe(o,{...u,accessToken:g.accessToken,expiresAt:y.toISOString(),refreshToken:g.refreshToken})}catch{}return{token:g.accessToken,expiration:y}}catch{return Oee(p),p}},tQe=({token:t,logger:e})=>async()=>{if(e?.debug("@aws-sdk/token-providers - fromStatic"),!t||!t.token)throw new $s.TokenProviderError("Please pass a valid token to fromStatic",!1);return t},rQe=(t={})=>$s.memoize($s.chain(Nee(t),async()=>{throw new $s.TokenProviderError("Could not load token from any providers",!1)}),e=>e.expiration!==void 0&&e.expiration.getTime()-Date.now()<3e5,e=>e.expiration!==void 0);tE.fromEnvSigningName=Q5e;tE.fromSso=Nee;tE.fromStatic=tQe;tE.nodeProvider=rQe});var zG=b(Lu=>{"use strict";Object.defineProperty(Lu,"__esModule",{value:!0});Lu.resolveHttpAuthSchemeConfig=Lu.defaultSSOHttpAuthSchemeProvider=Lu.defaultSSOHttpAuthSchemeParametersProvider=void 0;var nQe=(on(),ue(wu)),HG=require("@smithy/util-middleware"),sQe=async(t,e,r)=>({operation:(0,HG.getSmithyContext)(e).operation,region:await(0,HG.normalizeProvider)(t.region)()||(()=>{throw new Error("expected `region` to be configured for `aws.auth#sigv4`")})()});Lu.defaultSSOHttpAuthSchemeParametersProvider=sQe;function oQe(t){return{schemeId:"aws.auth#sigv4",signingProperties:{name:"awsssoportal",region:t.region},propertiesExtractor:(e,r)=>({signingProperties:{config:e,context:r}})}}function Vx(t){return{schemeId:"smithy.api#noAuth"}}var iQe=t=>{let e=[];switch(t.operation){case"GetRoleCredentials":{e.push(Vx(t));break}case"ListAccountRoles":{e.push(Vx(t));break}case"ListAccounts":{e.push(Vx(t));break}case"Logout":{e.push(Vx(t));break}default:e.push(oQe(t))}return e};Lu.defaultSSOHttpAuthSchemeProvider=iQe;var aQe=t=>{let e=(0,nQe.resolveAwsSdkSigV4Config)(t);return Object.assign(e,{authSchemePreference:(0,HG.normalizeProvider)(t.authSchemePreference??[])})};Lu.resolveHttpAuthSchemeConfig=aQe});var Mee=b((A$r,cQe)=>{cQe.exports={name:"@aws-sdk/client-sso",description:"AWS SDK for JavaScript Sso Client for Node.js, Browser and React Native",version:"3.996.0",scripts:{build:"concurrently 'yarn:build:types' 'yarn:build:es' && yarn build:cjs","build:cjs":"node ../../scripts/compilation/inline client-sso","build:es":"tsc -p tsconfig.es.json","build:include:deps":'yarn g:turbo run build -F="$npm_package_name"',"build:types":"tsc -p tsconfig.types.json","build:types:downlevel":"downlevel-dts dist-types dist-types/ts3.4",clean:"premove dist-cjs dist-es dist-types tsconfig.cjs.tsbuildinfo tsconfig.es.tsbuildinfo tsconfig.types.tsbuildinfo","extract:docs":"api-extractor run --local","generate:client":"node ../../scripts/generate-clients/single-service --solo sso","test:index":"tsc --noEmit ./test/index-types.ts && node ./test/index-objects.spec.mjs"},main:"./dist-cjs/index.js",types:"./dist-types/index.d.ts",module:"./dist-es/index.js",sideEffects:!1,dependencies:{"@aws-crypto/sha256-browser":"5.2.0","@aws-crypto/sha256-js":"5.2.0","@aws-sdk/core":"^3.973.12","@aws-sdk/middleware-host-header":"^3.972.3","@aws-sdk/middleware-logger":"^3.972.3","@aws-sdk/middleware-recursion-detection":"^3.972.3","@aws-sdk/middleware-user-agent":"^3.972.12","@aws-sdk/region-config-resolver":"^3.972.3","@aws-sdk/types":"^3.973.1","@aws-sdk/util-endpoints":"3.996.0","@aws-sdk/util-user-agent-browser":"^3.972.3","@aws-sdk/util-user-agent-node":"^3.972.11","@smithy/config-resolver":"^4.4.6","@smithy/core":"^3.23.2","@smithy/fetch-http-handler":"^5.3.9","@smithy/hash-node":"^4.2.8","@smithy/invalid-dependency":"^4.2.8","@smithy/middleware-content-length":"^4.2.8","@smithy/middleware-endpoint":"^4.4.16","@smithy/middleware-retry":"^4.4.33","@smithy/middleware-serde":"^4.2.9","@smithy/middleware-stack":"^4.2.8","@smithy/node-config-provider":"^4.3.8","@smithy/node-http-handler":"^4.4.10","@smithy/protocol-http":"^5.3.8","@smithy/smithy-client":"^4.11.5","@smithy/types":"^4.12.0","@smithy/url-parser":"^4.2.8","@smithy/util-base64":"^4.3.0","@smithy/util-body-length-browser":"^4.2.0","@smithy/util-body-length-node":"^4.2.1","@smithy/util-defaults-mode-browser":"^4.3.32","@smithy/util-defaults-mode-node":"^4.2.35","@smithy/util-endpoints":"^3.2.8","@smithy/util-middleware":"^4.2.8","@smithy/util-retry":"^4.2.8","@smithy/util-utf8":"^4.2.0",tslib:"^2.6.2"},devDependencies:{"@tsconfig/node20":"20.1.8","@types/node":"^20.14.8",concurrently:"7.0.0","downlevel-dts":"0.10.1",premove:"4.0.0",typescript:"~5.8.3"},engines:{node:">=20.0.0"},typesVersions:{"<4.0":{"dist-types/*":["dist-types/ts3.4/*"]}},files:["dist-*/**"],author:{name:"AWS SDK for JavaScript Team",url:"https://aws.amazon.com/javascript/"},license:"Apache-2.0",browser:{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.browser"},"react-native":{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.native"},homepage:"https://github.com/aws/aws-sdk-js-v3/tree/main/clients/client-sso",repository:{type:"git",url:"https://github.com/aws/aws-sdk-js-v3.git",directory:"clients/client-sso"}}});var zee=b(Ri=>{"use strict";var $m=require("@smithy/util-endpoints"),uQe=require("@smithy/url-parser"),Bee=(t,e=!1)=>{if(e){for(let r of t.split("."))if(!Bee(r))return!1;return!0}return!(!$m.isValidHostLabel(t)||t.length<3||t.length>63||t!==t.toLowerCase()||$m.isIpAddress(t))},Fee=":",lQe="/",dQe=t=>{let e=t.split(Fee);if(e.length<6)return null;let[r,n,s,o,i,...a]=e;if(r!=="arn"||n===""||s===""||a.join(Fee)==="")return null;let c=a.map(u=>u.split(lQe)).flat();return{partition:n,service:s,region:o,accountId:i,resourceId:c}},pQe=[{id:"aws",outputs:{dnsSuffix:"amazonaws.com",dualStackDnsSuffix:"api.aws",implicitGlobalRegion:"us-east-1",name:"aws",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^(us|eu|ap|sa|ca|me|af|il|mx)\\-\\w+\\-\\d+$",regions:{"af-south-1":{description:"Africa (Cape Town)"},"ap-east-1":{description:"Asia Pacific (Hong Kong)"},"ap-east-2":{description:"Asia Pacific (Taipei)"},"ap-northeast-1":{description:"Asia Pacific (Tokyo)"},"ap-northeast-2":{description:"Asia Pacific (Seoul)"},"ap-northeast-3":{description:"Asia Pacific (Osaka)"},"ap-south-1":{description:"Asia Pacific (Mumbai)"},"ap-south-2":{description:"Asia Pacific (Hyderabad)"},"ap-southeast-1":{description:"Asia Pacific (Singapore)"},"ap-southeast-2":{description:"Asia Pacific (Sydney)"},"ap-southeast-3":{description:"Asia Pacific (Jakarta)"},"ap-southeast-4":{description:"Asia Pacific (Melbourne)"},"ap-southeast-5":{description:"Asia Pacific (Malaysia)"},"ap-southeast-6":{description:"Asia Pacific (New Zealand)"},"ap-southeast-7":{description:"Asia Pacific (Thailand)"},"aws-global":{description:"aws global region"},"ca-central-1":{description:"Canada (Central)"},"ca-west-1":{description:"Canada West (Calgary)"},"eu-central-1":{description:"Europe (Frankfurt)"},"eu-central-2":{description:"Europe (Zurich)"},"eu-north-1":{description:"Europe (Stockholm)"},"eu-south-1":{description:"Europe (Milan)"},"eu-south-2":{description:"Europe (Spain)"},"eu-west-1":{description:"Europe (Ireland)"},"eu-west-2":{description:"Europe (London)"},"eu-west-3":{description:"Europe (Paris)"},"il-central-1":{description:"Israel (Tel Aviv)"},"me-central-1":{description:"Middle East (UAE)"},"me-south-1":{description:"Middle East (Bahrain)"},"mx-central-1":{description:"Mexico (Central)"},"sa-east-1":{description:"South America (Sao Paulo)"},"us-east-1":{description:"US East (N. Virginia)"},"us-east-2":{description:"US East (Ohio)"},"us-west-1":{description:"US West (N. California)"},"us-west-2":{description:"US West (Oregon)"}}},{id:"aws-cn",outputs:{dnsSuffix:"amazonaws.com.cn",dualStackDnsSuffix:"api.amazonwebservices.com.cn",implicitGlobalRegion:"cn-northwest-1",name:"aws-cn",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^cn\\-\\w+\\-\\d+$",regions:{"aws-cn-global":{description:"aws-cn global region"},"cn-north-1":{description:"China (Beijing)"},"cn-northwest-1":{description:"China (Ningxia)"}}},{id:"aws-eusc",outputs:{dnsSuffix:"amazonaws.eu",dualStackDnsSuffix:"api.amazonwebservices.eu",implicitGlobalRegion:"eusc-de-east-1",name:"aws-eusc",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^eusc\\-(de)\\-\\w+\\-\\d+$",regions:{"eusc-de-east-1":{description:"AWS European Sovereign Cloud (Germany)"}}},{id:"aws-iso",outputs:{dnsSuffix:"c2s.ic.gov",dualStackDnsSuffix:"api.aws.ic.gov",implicitGlobalRegion:"us-iso-east-1",name:"aws-iso",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^us\\-iso\\-\\w+\\-\\d+$",regions:{"aws-iso-global":{description:"aws-iso global region"},"us-iso-east-1":{description:"US ISO East"},"us-iso-west-1":{description:"US ISO WEST"}}},{id:"aws-iso-b",outputs:{dnsSuffix:"sc2s.sgov.gov",dualStackDnsSuffix:"api.aws.scloud",implicitGlobalRegion:"us-isob-east-1",name:"aws-iso-b",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^us\\-isob\\-\\w+\\-\\d+$",regions:{"aws-iso-b-global":{description:"aws-iso-b global region"},"us-isob-east-1":{description:"US ISOB East (Ohio)"},"us-isob-west-1":{description:"US ISOB West"}}},{id:"aws-iso-e",outputs:{dnsSuffix:"cloud.adc-e.uk",dualStackDnsSuffix:"api.cloud-aws.adc-e.uk",implicitGlobalRegion:"eu-isoe-west-1",name:"aws-iso-e",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^eu\\-isoe\\-\\w+\\-\\d+$",regions:{"aws-iso-e-global":{description:"aws-iso-e global region"},"eu-isoe-west-1":{description:"EU ISOE West"}}},{id:"aws-iso-f",outputs:{dnsSuffix:"csp.hci.ic.gov",dualStackDnsSuffix:"api.aws.hci.ic.gov",implicitGlobalRegion:"us-isof-south-1",name:"aws-iso-f",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^us\\-isof\\-\\w+\\-\\d+$",regions:{"aws-iso-f-global":{description:"aws-iso-f global region"},"us-isof-east-1":{description:"US ISOF EAST"},"us-isof-south-1":{description:"US ISOF SOUTH"}}},{id:"aws-us-gov",outputs:{dnsSuffix:"amazonaws.com",dualStackDnsSuffix:"api.aws",implicitGlobalRegion:"us-gov-west-1",name:"aws-us-gov",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^us\\-gov\\-\\w+\\-\\d+$",regions:{"aws-us-gov-global":{description:"aws-us-gov global region"},"us-gov-east-1":{description:"AWS GovCloud (US-East)"},"us-gov-west-1":{description:"AWS GovCloud (US-West)"}}}],mQe="1.1",Uee={partitions:pQe,version:mQe},qee=Uee,$ee="",Gee=t=>{let{partitions:e}=qee;for(let n of e){let{regions:s,outputs:o}=n;for(let[i,a]of Object.entries(s))if(i===t)return{...o,...a}}for(let n of e){let{regionRegex:s,outputs:o}=n;if(new RegExp(s).test(t))return{...o}}let r=e.find(n=>n.id==="aws");if(!r)throw new Error("Provided region was not found in the partition array or regex, and default partition with id 'aws' doesn't exist.");return{...r.outputs}},jee=(t,e="")=>{qee=t,$ee=e},gQe=()=>{jee(Uee,"")},fQe=()=>$ee,Vee={isVirtualHostableS3Bucket:Bee,parseArn:dQe,partition:Gee};$m.customEndpointFunctions.aws=Vee;var hQe=t=>{if(typeof t.endpointProvider!="function")throw new Error("@aws-sdk/util-endpoint - endpointProvider and endpoint missing in config for this client.");let{endpoint:e}=t;return e===void 0&&(t.endpoint=async()=>Hee(t.endpointProvider({Region:typeof t.region=="function"?await t.region():t.region,UseDualStack:typeof t.useDualstackEndpoint=="function"?await t.useDualstackEndpoint():t.useDualstackEndpoint,UseFIPS:typeof t.useFipsEndpoint=="function"?await t.useFipsEndpoint():t.useFipsEndpoint,Endpoint:void 0},{logger:t.logger}))),t},Hee=t=>uQe.parseUrl(t.url);Ri.EndpointError=$m.EndpointError;Ri.isIpAddress=$m.isIpAddress;Ri.resolveEndpoint=$m.resolveEndpoint;Ri.awsEndpointFunctions=Vee;Ri.getUserAgentPrefix=fQe;Ri.partition=Gee;Ri.resolveDefaultAwsRegionalEndpointsConfig=hQe;Ri.setPartitionInfo=jee;Ri.toEndpointV1=Hee;Ri.useDefaultPartitionInfo=gQe});var ate=b(Hx=>{"use strict";Object.defineProperty(Hx,"__esModule",{value:!0});Hx.ruleSet=void 0;var nte="required",wo="fn",Do="argv",Vm="ref",Wee=!0,Kee="isSet",rE="booleanEquals",Gm="error",jm="endpoint",pc="tree",WG="PartitionResult",KG="getAttr",Qee={[nte]:!1,type:"string"},Xee={[nte]:!0,default:!1,type:"boolean"},Jee={[Vm]:"Endpoint"},ste={[wo]:rE,[Do]:[{[Vm]:"UseFIPS"},!0]},ote={[wo]:rE,[Do]:[{[Vm]:"UseDualStack"},!0]},To={},Yee={[wo]:KG,[Do]:[{[Vm]:WG},"supportsFIPS"]},ite={[Vm]:WG},Zee={[wo]:rE,[Do]:[!0,{[wo]:KG,[Do]:[ite,"supportsDualStack"]}]},ete=[ste],tte=[ote],rte=[{[Vm]:"Region"}],SQe={version:"1.0",parameters:{Region:Qee,UseDualStack:Xee,UseFIPS:Xee,Endpoint:Qee},rules:[{conditions:[{[wo]:Kee,[Do]:[Jee]}],rules:[{conditions:ete,error:"Invalid Configuration: FIPS and custom endpoint are not supported",type:Gm},{conditions:tte,error:"Invalid Configuration: Dualstack and custom endpoint are not supported",type:Gm},{endpoint:{url:Jee,properties:To,headers:To},type:jm}],type:pc},{conditions:[{[wo]:Kee,[Do]:rte}],rules:[{conditions:[{[wo]:"aws.partition",[Do]:rte,assign:WG}],rules:[{conditions:[ste,ote],rules:[{conditions:[{[wo]:rE,[Do]:[Wee,Yee]},Zee],rules:[{endpoint:{url:"https://portal.sso-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:To,headers:To},type:jm}],type:pc},{error:"FIPS and DualStack are enabled, but this partition does not support one or both",type:Gm}],type:pc},{conditions:ete,rules:[{conditions:[{[wo]:rE,[Do]:[Yee,Wee]}],rules:[{conditions:[{[wo]:"stringEquals",[Do]:[{[wo]:KG,[Do]:[ite,"name"]},"aws-us-gov"]}],endpoint:{url:"https://portal.sso.{Region}.amazonaws.com",properties:To,headers:To},type:jm},{endpoint:{url:"https://portal.sso-fips.{Region}.{PartitionResult#dnsSuffix}",properties:To,headers:To},type:jm}],type:pc},{error:"FIPS is enabled but this partition does not support FIPS",type:Gm}],type:pc},{conditions:tte,rules:[{conditions:[Zee],rules:[{endpoint:{url:"https://portal.sso.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:To,headers:To},type:jm}],type:pc},{error:"DualStack is enabled but this partition does not support DualStack",type:Gm}],type:pc},{endpoint:{url:"https://portal.sso.{Region}.{PartitionResult#dnsSuffix}",properties:To,headers:To},type:jm}],type:pc}],type:pc},{error:"Invalid Configuration: Missing Region",type:Gm}]};Hx.ruleSet=SQe});var cte=b(zx=>{"use strict";Object.defineProperty(zx,"__esModule",{value:!0});zx.defaultEndpointResolver=void 0;var EQe=zee(),QG=require("@smithy/util-endpoints"),yQe=ate(),_Qe=new QG.EndpointCache({size:50,params:["Endpoint","Region","UseDualStack","UseFIPS"]}),CQe=(t,e={})=>_Qe.get(t,()=>(0,QG.resolveEndpoint)(yQe.ruleSet,{endpointParams:t,logger:e.logger}));zx.defaultEndpointResolver=CQe;QG.customEndpointFunctions.aws=EQe.awsEndpointFunctions});var Wx=b(Hm=>{"use strict";Object.defineProperty(Hm,"__esModule",{value:!0});Hm.SSOServiceException=Hm.__ServiceException=void 0;var ute=require("@smithy/smithy-client");Object.defineProperty(Hm,"__ServiceException",{enumerable:!0,get:function(){return ute.ServiceException}});var XG=class t extends ute.ServiceException{constructor(e){super(e),Object.setPrototypeOf(this,t.prototype)}};Hm.SSOServiceException=XG});var t2=b(ga=>{"use strict";Object.defineProperty(ga,"__esModule",{value:!0});ga.UnauthorizedException=ga.TooManyRequestsException=ga.ResourceNotFoundException=ga.InvalidRequestException=void 0;var Kx=Wx(),JG=class t extends Kx.SSOServiceException{name="InvalidRequestException";$fault="client";constructor(e){super({name:"InvalidRequestException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}};ga.InvalidRequestException=JG;var YG=class t extends Kx.SSOServiceException{name="ResourceNotFoundException";$fault="client";constructor(e){super({name:"ResourceNotFoundException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}};ga.ResourceNotFoundException=YG;var ZG=class t extends Kx.SSOServiceException{name="TooManyRequestsException";$fault="client";constructor(e){super({name:"TooManyRequestsException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}};ga.TooManyRequestsException=ZG;var e2=class t extends Kx.SSOServiceException{name="UnauthorizedException";$fault="client";constructor(e){super({name:"UnauthorizedException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}};ga.UnauthorizedException=e2});var r2=b(ye=>{"use strict";Object.defineProperty(ye,"__esModule",{value:!0});ye.Logout$=ye.ListAccounts$=ye.ListAccountRoles$=ye.GetRoleCredentials$=ye.RoleInfo$=ye.RoleCredentials$=ye.LogoutRequest$=ye.ListAccountsResponse$=ye.ListAccountsRequest$=ye.ListAccountRolesResponse$=ye.ListAccountRolesRequest$=ye.GetRoleCredentialsResponse$=ye.GetRoleCredentialsRequest$=ye.AccountInfo$=ye.errorTypeRegistries=ye.UnauthorizedException$=ye.TooManyRequestsException$=ye.ResourceNotFoundException$=ye.InvalidRequestException$=ye.SSOServiceException$=void 0;var RQe="AccountInfo",vQe="AccountListType",xQe="AccessTokenType",PQe="GetRoleCredentials",bQe="GetRoleCredentialsRequest",IQe="GetRoleCredentialsResponse",AQe="InvalidRequestException",TQe="Logout",wQe="ListAccounts",DQe="ListAccountsRequest",OQe="ListAccountRolesRequest",kQe="ListAccountRolesResponse",NQe="ListAccountsResponse",LQe="ListAccountRoles",MQe="LogoutRequest",FQe="RoleCredentials",BQe="RoleInfo",UQe="RoleListType",qQe="ResourceNotFoundException",$Qe="SecretAccessKeyType",GQe="SessionTokenType",jQe="TooManyRequestsException",VQe="UnauthorizedException",Qx="accountId",HQe="accessKeyId",zQe="accountList",WQe="accountName",Xx="accessToken",lte="account_id",Jx="client",Yx="error",KQe="emailAddress",QQe="expiration",Zx="http",eP="httpError",tP="httpHeader",Pd="httpQuery",rP="message",dte="maxResults",pte="max_result",nP="nextToken",mte="next_token",XQe="roleCredentials",JQe="roleList",gte="roleName",YQe="role_name",fte="smithy.ts.sdk.synthetic.com.amazonaws.sso",ZQe="secretAccessKey",eXe="sessionToken",sP="x-amz-sso_bearer_token",zt="com.amazonaws.sso",hte=require("@smithy/core/schema"),oP=t2(),tXe=Wx(),Ste=hte.TypeRegistry.for(fte);ye.SSOServiceException$=[-3,fte,"SSOServiceException",0,[],[]];Ste.registerError(ye.SSOServiceException$,tXe.SSOServiceException);var nE=hte.TypeRegistry.for(zt);ye.InvalidRequestException$=[-3,zt,AQe,{[Yx]:Jx,[eP]:400},[rP],[0]];nE.registerError(ye.InvalidRequestException$,oP.InvalidRequestException);ye.ResourceNotFoundException$=[-3,zt,qQe,{[Yx]:Jx,[eP]:404},[rP],[0]];nE.registerError(ye.ResourceNotFoundException$,oP.ResourceNotFoundException);ye.TooManyRequestsException$=[-3,zt,jQe,{[Yx]:Jx,[eP]:429},[rP],[0]];nE.registerError(ye.TooManyRequestsException$,oP.TooManyRequestsException);ye.UnauthorizedException$=[-3,zt,VQe,{[Yx]:Jx,[eP]:401},[rP],[0]];nE.registerError(ye.UnauthorizedException$,oP.UnauthorizedException);ye.errorTypeRegistries=[Ste,nE];var iP=[0,zt,xQe,8,0],rXe=[0,zt,$Qe,8,0],nXe=[0,zt,GQe,8,0];ye.AccountInfo$=[3,zt,RQe,0,[Qx,WQe,KQe],[0,0,0]];ye.GetRoleCredentialsRequest$=[3,zt,bQe,0,[gte,Qx,Xx],[[0,{[Pd]:YQe}],[0,{[Pd]:lte}],[()=>iP,{[tP]:sP}]],3];ye.GetRoleCredentialsResponse$=[3,zt,IQe,0,[XQe],[[()=>ye.RoleCredentials$,0]]];ye.ListAccountRolesRequest$=[3,zt,OQe,0,[Xx,Qx,nP,dte],[[()=>iP,{[tP]:sP}],[0,{[Pd]:lte}],[0,{[Pd]:mte}],[1,{[Pd]:pte}]],2];ye.ListAccountRolesResponse$=[3,zt,kQe,0,[nP,JQe],[0,()=>iXe]];ye.ListAccountsRequest$=[3,zt,DQe,0,[Xx,nP,dte],[[()=>iP,{[tP]:sP}],[0,{[Pd]:mte}],[1,{[Pd]:pte}]],1];ye.ListAccountsResponse$=[3,zt,NQe,0,[nP,zQe],[0,()=>oXe]];ye.LogoutRequest$=[3,zt,MQe,0,[Xx],[[()=>iP,{[tP]:sP}]],1];ye.RoleCredentials$=[3,zt,FQe,0,[HQe,ZQe,eXe,QQe],[0,[()=>rXe,0],[()=>nXe,0],1]];ye.RoleInfo$=[3,zt,BQe,0,[gte,Qx],[0,0]];var sXe="unit",oXe=[1,zt,vQe,0,()=>ye.AccountInfo$],iXe=[1,zt,UQe,0,()=>ye.RoleInfo$];ye.GetRoleCredentials$=[9,zt,PQe,{[Zx]:["GET","/federation/credentials",200]},()=>ye.GetRoleCredentialsRequest$,()=>ye.GetRoleCredentialsResponse$];ye.ListAccountRoles$=[9,zt,LQe,{[Zx]:["GET","/assignment/roles",200]},()=>ye.ListAccountRolesRequest$,()=>ye.ListAccountRolesResponse$];ye.ListAccounts$=[9,zt,wQe,{[Zx]:["GET","/assignment/accounts",200]},()=>ye.ListAccountsRequest$,()=>ye.ListAccountsResponse$];ye.Logout$=[9,zt,TQe,{[Zx]:["POST","/logout",200]},()=>ye.LogoutRequest$,()=>sXe]});var _te=b(aP=>{"use strict";Object.defineProperty(aP,"__esModule",{value:!0});aP.getRuntimeConfig=void 0;var aXe=(on(),ue(wu)),cXe=(_d(),ue(RG)),uXe=require("@smithy/core"),lXe=require("@smithy/smithy-client"),dXe=require("@smithy/url-parser"),Ete=require("@smithy/util-base64"),yte=require("@smithy/util-utf8"),pXe=zG(),mXe=cte(),gXe=r2(),fXe=t=>({apiVersion:"2019-06-10",base64Decoder:t?.base64Decoder??Ete.fromBase64,base64Encoder:t?.base64Encoder??Ete.toBase64,disableHostPrefix:t?.disableHostPrefix??!1,endpointProvider:t?.endpointProvider??mXe.defaultEndpointResolver,extensions:t?.extensions??[],httpAuthSchemeProvider:t?.httpAuthSchemeProvider??pXe.defaultSSOHttpAuthSchemeProvider,httpAuthSchemes:t?.httpAuthSchemes??[{schemeId:"aws.auth#sigv4",identityProvider:e=>e.getIdentityProvider("aws.auth#sigv4"),signer:new aXe.AwsSdkSigV4Signer},{schemeId:"smithy.api#noAuth",identityProvider:e=>e.getIdentityProvider("smithy.api#noAuth")||(async()=>({})),signer:new uXe.NoAuthSigner}],logger:t?.logger??new lXe.NoOpLogger,protocol:t?.protocol??cXe.AwsRestJsonProtocol,protocolSettings:t?.protocolSettings??{defaultNamespace:"com.amazonaws.sso",errorTypeRegistries:gXe.errorTypeRegistries,version:"2019-06-10",serviceTarget:"SWBPortalService"},serviceId:t?.serviceId??"SSO",urlParser:t?.urlParser??dXe.parseUrl,utf8Decoder:t?.utf8Decoder??yte.fromUtf8,utf8Encoder:t?.utf8Encoder??yte.toUtf8});aP.getRuntimeConfig=fXe});var bte=b(uP=>{"use strict";Object.defineProperty(uP,"__esModule",{value:!0});uP.getRuntimeConfig=void 0;var hXe=require("tslib"),SXe=hXe.__importDefault(Mee()),Cte=(on(),ue(wu)),Rte=km(),cP=require("@smithy/config-resolver"),EXe=require("@smithy/hash-node"),vte=require("@smithy/middleware-retry"),bd=require("@smithy/node-config-provider"),xte=require("@smithy/node-http-handler"),Pte=require("@smithy/smithy-client"),yXe=require("@smithy/util-body-length-node"),_Xe=require("@smithy/util-defaults-mode-node"),CXe=require("@smithy/util-retry"),RXe=_te(),vXe=t=>{(0,Pte.emitWarningIfUnsupportedVersion)(process.version);let e=(0,_Xe.resolveDefaultsModeConfig)(t),r=()=>e().then(Pte.loadConfigsForDefaultMode),n=(0,RXe.getRuntimeConfig)(t);(0,Cte.emitWarningIfUnsupportedVersion)(process.version);let s={profile:t?.profile,logger:n.logger};return{...n,...t,runtime:"node",defaultsMode:e,authSchemePreference:t?.authSchemePreference??(0,bd.loadConfig)(Cte.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS,s),bodyLengthChecker:t?.bodyLengthChecker??yXe.calculateBodyLength,defaultUserAgentProvider:t?.defaultUserAgentProvider??(0,Rte.createDefaultUserAgentProvider)({serviceId:n.serviceId,clientVersion:SXe.default.version}),maxAttempts:t?.maxAttempts??(0,bd.loadConfig)(vte.NODE_MAX_ATTEMPT_CONFIG_OPTIONS,t),region:t?.region??(0,bd.loadConfig)(cP.NODE_REGION_CONFIG_OPTIONS,{...cP.NODE_REGION_CONFIG_FILE_OPTIONS,...s}),requestHandler:xte.NodeHttpHandler.create(t?.requestHandler??r),retryMode:t?.retryMode??(0,bd.loadConfig)({...vte.NODE_RETRY_MODE_CONFIG_OPTIONS,default:async()=>(await r()).retryMode||CXe.DEFAULT_RETRY_MODE},t),sha256:t?.sha256??EXe.Hash.bind(null,"sha256"),streamCollector:t?.streamCollector??xte.streamCollector,useDualstackEndpoint:t?.useDualstackEndpoint??(0,bd.loadConfig)(cP.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS,s),useFipsEndpoint:t?.useFipsEndpoint??(0,bd.loadConfig)(cP.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS,s),userAgentAppId:t?.userAgentAppId??(0,bd.loadConfig)(Rte.NODE_APP_ID_CONFIG_OPTIONS,s)}};uP.getRuntimeConfig=vXe});var Lte=b(br=>{"use strict";var Ite=gm(),xXe=fm(),PXe=hm(),Ate=Cd(),bXe=require("@smithy/config-resolver"),sE=require("@smithy/core"),IXe=require("@smithy/core/schema"),AXe=require("@smithy/middleware-content-length"),aE=require("@smithy/middleware-endpoint"),Tte=require("@smithy/middleware-retry"),fa=require("@smithy/smithy-client"),wte=zG(),TXe=bte(),Dte=vd(),Ote=require("@smithy/protocol-http"),Mu=r2(),lP=t2(),wXe=Wx(),DXe=t=>Object.assign(t,{useDualstackEndpoint:t.useDualstackEndpoint??!1,useFipsEndpoint:t.useFipsEndpoint??!1,defaultSigningName:"awsssoportal"}),gP={UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}},OXe=t=>{let e=t.httpAuthSchemes,r=t.httpAuthSchemeProvider,n=t.credentials;return{setHttpAuthScheme(s){let o=e.findIndex(i=>i.schemeId===s.schemeId);o===-1?e.push(s):e.splice(o,1,s)},httpAuthSchemes(){return e},setHttpAuthSchemeProvider(s){r=s},httpAuthSchemeProvider(){return r},setCredentials(s){n=s},credentials(){return n}}},kXe=t=>({httpAuthSchemes:t.httpAuthSchemes(),httpAuthSchemeProvider:t.httpAuthSchemeProvider(),credentials:t.credentials()}),NXe=(t,e)=>{let r=Object.assign(Dte.getAwsRegionExtensionConfiguration(t),fa.getDefaultExtensionConfiguration(t),Ote.getHttpHandlerExtensionConfiguration(t),OXe(t));return e.forEach(n=>n.configure(r)),Object.assign(t,Dte.resolveAwsRegionExtensionConfiguration(r),fa.resolveDefaultRuntimeConfig(r),Ote.resolveHttpHandlerRuntimeConfig(r),kXe(r))},zm=class extends fa.Client{config;constructor(...[e]){let r=TXe.getRuntimeConfig(e||{});super(r),this.initConfig=r;let n=DXe(r),s=Ate.resolveUserAgentConfig(n),o=Tte.resolveRetryConfig(s),i=bXe.resolveRegionConfig(o),a=Ite.resolveHostHeaderConfig(i),c=aE.resolveEndpointConfig(a),u=wte.resolveHttpAuthSchemeConfig(c),l=NXe(u,e?.extensions||[]);this.config=l,this.middlewareStack.use(IXe.getSchemaSerdePlugin(this.config)),this.middlewareStack.use(Ate.getUserAgentPlugin(this.config)),this.middlewareStack.use(Tte.getRetryPlugin(this.config)),this.middlewareStack.use(AXe.getContentLengthPlugin(this.config)),this.middlewareStack.use(Ite.getHostHeaderPlugin(this.config)),this.middlewareStack.use(xXe.getLoggerPlugin(this.config)),this.middlewareStack.use(PXe.getRecursionDetectionPlugin(this.config)),this.middlewareStack.use(sE.getHttpAuthSchemeEndpointRuleSetPlugin(this.config,{httpAuthSchemeParametersProvider:wte.defaultSSOHttpAuthSchemeParametersProvider,identityProviderConfigProvider:async d=>new sE.DefaultIdentityProviderConfig({"aws.auth#sigv4":d.credentials})})),this.middlewareStack.use(sE.getHttpSigningPlugin(this.config))}destroy(){super.destroy()}},dP=class extends fa.Command.classBuilder().ep(gP).m(function(e,r,n,s){return[aE.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("SWBPortalService","GetRoleCredentials",{}).n("SSOClient","GetRoleCredentialsCommand").sc(Mu.GetRoleCredentials$).build(){},oE=class extends fa.Command.classBuilder().ep(gP).m(function(e,r,n,s){return[aE.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("SWBPortalService","ListAccountRoles",{}).n("SSOClient","ListAccountRolesCommand").sc(Mu.ListAccountRoles$).build(){},iE=class extends fa.Command.classBuilder().ep(gP).m(function(e,r,n,s){return[aE.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("SWBPortalService","ListAccounts",{}).n("SSOClient","ListAccountsCommand").sc(Mu.ListAccounts$).build(){},pP=class extends fa.Command.classBuilder().ep(gP).m(function(e,r,n,s){return[aE.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("SWBPortalService","Logout",{}).n("SSOClient","LogoutCommand").sc(Mu.Logout$).build(){},kte=sE.createPaginator(zm,oE,"nextToken","nextToken","maxResults"),Nte=sE.createPaginator(zm,iE,"nextToken","nextToken","maxResults"),LXe={GetRoleCredentialsCommand:dP,ListAccountRolesCommand:oE,ListAccountsCommand:iE,LogoutCommand:pP},MXe={paginateListAccountRoles:kte,paginateListAccounts:Nte},mP=class extends zm{};fa.createAggregatedClient(LXe,mP,{paginators:MXe});br.$Command=fa.Command;br.__Client=fa.Client;br.SSOServiceException=wXe.SSOServiceException;br.GetRoleCredentialsCommand=dP;br.ListAccountRolesCommand=oE;br.ListAccountsCommand=iE;br.LogoutCommand=pP;br.SSO=mP;br.SSOClient=zm;br.paginateListAccountRoles=kte;br.paginateListAccounts=Nte;Object.prototype.hasOwnProperty.call(Mu,"__proto__")&&!Object.prototype.hasOwnProperty.call(br,"__proto__")&&Object.defineProperty(br,"__proto__",{enumerable:!0,value:Mu.__proto__});Object.keys(Mu).forEach(function(t){t!=="default"&&!Object.prototype.hasOwnProperty.call(br,t)&&(br[t]=Mu[t])});Object.prototype.hasOwnProperty.call(lP,"__proto__")&&!Object.prototype.hasOwnProperty.call(br,"__proto__")&&Object.defineProperty(br,"__proto__",{enumerable:!0,value:lP.__proto__});Object.keys(lP).forEach(function(t){t!=="default"&&!Object.prototype.hasOwnProperty.call(br,t)&&(br[t]=lP[t])})});var Fte=b(n2=>{"use strict";var Mte=Lte();n2.GetRoleCredentialsCommand=Mte.GetRoleCredentialsCommand;n2.SSOClient=Mte.SSOClient});var s2=b(hP=>{"use strict";var vi=require("@smithy/property-provider"),fP=require("@smithy/shared-ini-file-loader"),Bte=(vo(),ue(cc)),FXe=Lee(),qte=t=>t&&(typeof t.sso_start_url=="string"||typeof t.sso_account_id=="string"||typeof t.sso_session=="string"||typeof t.sso_region=="string"||typeof t.sso_role_name=="string"),cE=!1,Ute=async({ssoStartUrl:t,ssoSession:e,ssoAccountId:r,ssoRegion:n,ssoRoleName:s,ssoClient:o,clientConfig:i,parentClientConfig:a,callerClientConfig:c,profile:u,filepath:l,configFilepath:d,ignoreCache:p,logger:g})=>{let y,R="To refresh this SSO session run aws sso login with the corresponding profile.";if(e)try{let tr=await FXe.fromSso({profile:u,filepath:l,configFilepath:d,ignoreCache:p})();y={accessToken:tr.token,expiresAt:new Date(tr.expiration).toISOString()}}catch(tr){throw new vi.CredentialsProviderError(tr.message,{tryNextLink:cE,logger:g})}else try{y=await fP.getSSOTokenFromFile(t)}catch{throw new vi.CredentialsProviderError(`The SSO session associated with this profile is invalid. ${R}`,{tryNextLink:cE,logger:g})}if(new Date(y.expiresAt).getTime()-Date.now()<=0)throw new vi.CredentialsProviderError(`The SSO session associated with this profile has expired. ${R}`,{tryNextLink:cE,logger:g});let{accessToken:D}=y,{SSOClient:B,GetRoleCredentialsCommand:M}=await Promise.resolve().then(function(){return Fte()}),ge=o||new B(Object.assign({},i??{},{logger:i?.logger??c?.logger??a?.logger,region:i?.region??n,userAgentAppId:i?.userAgentAppId??c?.userAgentAppId??a?.userAgentAppId})),Y;try{Y=await ge.send(new M({accountId:r,roleName:s,accessToken:D}))}catch(tr){throw new vi.CredentialsProviderError(tr,{tryNextLink:cE,logger:g})}let{roleCredentials:{accessKeyId:Te,secretAccessKey:Ht,sessionToken:Tt,expiration:Ne,credentialScope:Eu,accountId:yu}={}}=Y;if(!Te||!Ht||!Tt||!Ne)throw new vi.CredentialsProviderError("SSO returns an invalid temporary credential.",{tryNextLink:cE,logger:g});let hi={accessKeyId:Te,secretAccessKey:Ht,sessionToken:Tt,expiration:new Date(Ne),...Eu&&{credentialScope:Eu},...yu&&{accountId:yu}};return e?Bte.setCredentialFeature(hi,"CREDENTIALS_SSO","s"):Bte.setCredentialFeature(hi,"CREDENTIALS_SSO_LEGACY","u"),hi},$te=(t,e)=>{let{sso_start_url:r,sso_account_id:n,sso_region:s,sso_role_name:o}=t;if(!r||!n||!s||!o)throw new vi.CredentialsProviderError(`Profile is configured with invalid SSO credentials. Required parameters "sso_account_id", "sso_region", "sso_role_name", "sso_start_url". Got ${Object.keys(t).join(", ")} +Reference: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html`,{tryNextLink:!1,logger:e});return t},BXe=(t={})=>async({callerClientConfig:e}={})=>{t.logger?.debug("@aws-sdk/credential-provider-sso - fromSSO");let{ssoStartUrl:r,ssoAccountId:n,ssoRegion:s,ssoRoleName:o,ssoSession:i}=t,{ssoClient:a}=t,c=fP.getProfileName({profile:t.profile??e?.profile});if(!r&&!n&&!s&&!o&&!i){let l=(await fP.parseKnownFiles(t))[c];if(!l)throw new vi.CredentialsProviderError(`Profile ${c} was not found.`,{logger:t.logger});if(!qte(l))throw new vi.CredentialsProviderError(`Profile ${c} is not configured with SSO credentials.`,{logger:t.logger});if(l?.sso_session){let B=(await fP.loadSsoSessionData(t))[l.sso_session],M=` configurations in profile ${c} and sso-session ${l.sso_session}`;if(s&&s!==B.sso_region)throw new vi.CredentialsProviderError("Conflicting SSO region"+M,{tryNextLink:!1,logger:t.logger});if(r&&r!==B.sso_start_url)throw new vi.CredentialsProviderError("Conflicting SSO start_url"+M,{tryNextLink:!1,logger:t.logger});l.sso_region=B.sso_region,l.sso_start_url=B.sso_start_url}let{sso_start_url:d,sso_account_id:p,sso_region:g,sso_role_name:y,sso_session:R}=$te(l,t.logger);return Ute({ssoStartUrl:d,ssoSession:R,ssoAccountId:p,ssoRegion:g,ssoRoleName:y,ssoClient:a,clientConfig:t.clientConfig,parentClientConfig:t.parentClientConfig,callerClientConfig:t.callerClientConfig,profile:c,filepath:t.filepath,configFilepath:t.configFilepath,ignoreCache:t.ignoreCache,logger:t.logger})}else{if(!r||!n||!s||!o)throw new vi.CredentialsProviderError('Incomplete configuration. The fromSSO() argument hash must include "ssoStartUrl", "ssoAccountId", "ssoRegion", "ssoRoleName"',{tryNextLink:!1,logger:t.logger});return Ute({ssoStartUrl:r,ssoSession:i,ssoAccountId:n,ssoRegion:s,ssoRoleName:o,ssoClient:a,clientConfig:t.clientConfig,parentClientConfig:t.parentClientConfig,callerClientConfig:t.callerClientConfig,profile:c,filepath:t.filepath,configFilepath:t.configFilepath,ignoreCache:t.ignoreCache,logger:t.logger})}};hP.fromSSO=BXe;hP.isSsoProfile=qte;hP.validateSsoProfile=$te});function UXe(t){return{schemeId:"aws.auth#sigv4",signingProperties:{name:"signin",region:t.region},propertiesExtractor:(e,r)=>({signingProperties:{config:e,context:r}})}}function qXe(t){return{schemeId:"smithy.api#noAuth"}}var uE,Gte,jte,Vte,o2=_(()=>{on();uE=require("@smithy/util-middleware"),Gte=async(t,e,r)=>({operation:(0,uE.getSmithyContext)(e).operation,region:await(0,uE.normalizeProvider)(t.region)()||(()=>{throw new Error("expected `region` to be configured for `aws.auth#sigv4`")})()});jte=t=>{let e=[];switch(t.operation){case"CreateOAuth2Token":{e.push(qXe(t));break}default:e.push(UXe(t))}return e},Vte=t=>{let e=uc(t);return Object.assign(e,{authSchemePreference:(0,uE.normalizeProvider)(t.authSchemePreference??[])})}});var Hte,zte,i2=_(()=>{Hte=t=>Object.assign(t,{useDualstackEndpoint:t.useDualstackEndpoint??!1,useFipsEndpoint:t.useFipsEndpoint??!1,defaultSigningName:"signin"}),zte={UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}});var ere,Cn,Rn,mc,Wte,Id,Wm,Fu,xi,yP,a2,Kte,Qte,Xte,c2,u2,_n,l2,SP,EP,Jte,Yte,Zte,$Xe,tre,rre=_(()=>{ere="required",Cn="fn",Rn="argv",mc="ref",Wte="isSet",Id="booleanEquals",Wm="error",Fu="endpoint",xi="tree",yP="PartitionResult",a2="stringEquals",Kte={[ere]:!0,default:!1,type:"boolean"},Qte={[ere]:!1,type:"string"},Xte={[mc]:"Endpoint"},c2={[Cn]:Id,[Rn]:[{[mc]:"UseFIPS"},!0]},u2={[Cn]:Id,[Rn]:[{[mc]:"UseDualStack"},!0]},_n={},l2={[Cn]:"getAttr",[Rn]:[{[mc]:yP},"name"]},SP={[Cn]:Id,[Rn]:[{[mc]:"UseFIPS"},!1]},EP={[Cn]:Id,[Rn]:[{[mc]:"UseDualStack"},!1]},Jte={[Cn]:"getAttr",[Rn]:[{[mc]:yP},"supportsFIPS"]},Yte={[Cn]:Id,[Rn]:[!0,{[Cn]:"getAttr",[Rn]:[{[mc]:yP},"supportsDualStack"]}]},Zte=[{[mc]:"Region"}],$Xe={version:"1.0",parameters:{UseDualStack:Kte,UseFIPS:Kte,Endpoint:Qte,Region:Qte},rules:[{conditions:[{[Cn]:Wte,[Rn]:[Xte]}],rules:[{conditions:[c2],error:"Invalid Configuration: FIPS and custom endpoint are not supported",type:Wm},{rules:[{conditions:[u2],error:"Invalid Configuration: Dualstack and custom endpoint are not supported",type:Wm},{endpoint:{url:Xte,properties:_n,headers:_n},type:Fu}],type:xi}],type:xi},{rules:[{conditions:[{[Cn]:Wte,[Rn]:Zte}],rules:[{conditions:[{[Cn]:"aws.partition",[Rn]:Zte,assign:yP}],rules:[{conditions:[{[Cn]:a2,[Rn]:[l2,"aws"]},SP,EP],endpoint:{url:"https://{Region}.signin.aws.amazon.com",properties:_n,headers:_n},type:Fu},{conditions:[{[Cn]:a2,[Rn]:[l2,"aws-cn"]},SP,EP],endpoint:{url:"https://{Region}.signin.amazonaws.cn",properties:_n,headers:_n},type:Fu},{conditions:[{[Cn]:a2,[Rn]:[l2,"aws-us-gov"]},SP,EP],endpoint:{url:"https://{Region}.signin.amazonaws-us-gov.com",properties:_n,headers:_n},type:Fu},{conditions:[c2,u2],rules:[{conditions:[{[Cn]:Id,[Rn]:[!0,Jte]},Yte],rules:[{endpoint:{url:"https://signin-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:_n,headers:_n},type:Fu}],type:xi},{error:"FIPS and DualStack are enabled, but this partition does not support one or both",type:Wm}],type:xi},{conditions:[c2,EP],rules:[{conditions:[{[Cn]:Id,[Rn]:[Jte,!0]}],rules:[{endpoint:{url:"https://signin-fips.{Region}.{PartitionResult#dnsSuffix}",properties:_n,headers:_n},type:Fu}],type:xi},{error:"FIPS is enabled but this partition does not support FIPS",type:Wm}],type:xi},{conditions:[SP,u2],rules:[{conditions:[Yte],rules:[{endpoint:{url:"https://signin.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:_n,headers:_n},type:Fu}],type:xi},{error:"DualStack is enabled but this partition does not support DualStack",type:Wm}],type:xi},{endpoint:{url:"https://signin.{Region}.{PartitionResult#dnsSuffix}",properties:_n,headers:_n},type:Fu}],type:xi}],type:xi},{error:"Invalid Configuration: Missing Region",type:Wm}],type:xi}]},tre=$Xe});var nre,Km,GXe,sre,ore=_(()=>{nre=O(Ax()),Km=require("@smithy/util-endpoints");rre();GXe=new Km.EndpointCache({size:50,params:["Endpoint","Region","UseDualStack","UseFIPS"]}),sre=(t,e={})=>GXe.get(t,()=>(0,Km.resolveEndpoint)(tre,{endpointParams:t,logger:e.logger}));Km.customEndpointFunctions.aws=nre.awsEndpointFunctions});var ire,Pi,_P=_(()=>{ire=require("@smithy/smithy-client"),Pi=class t extends ire.ServiceException{constructor(e){super(e),Object.setPrototypeOf(this,t.prototype)}}});var lE,dE,pE,mE,d2=_(()=>{_P();lE=class t extends Pi{name="AccessDeniedException";$fault="client";error;constructor(e){super({name:"AccessDeniedException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error}},dE=class t extends Pi{name="InternalServerException";$fault="server";error;constructor(e){super({name:"InternalServerException",$fault:"server",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error}},pE=class t extends Pi{name="TooManyRequestsError";$fault="client";error;constructor(e){super({name:"TooManyRequestsError",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error}},mE=class t extends Pi{name="ValidationException";$fault="client";error;constructor(e){super({name:"ValidationException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error}}});var g2,jXe,VXe,HXe,zXe,WXe,KXe,QXe,XXe,JXe,YXe,ZXe,are,cre,p2,ure,lre,eJe,Bu,dre,pre,tJe,m2,mre,Gs,RP,CP,gre,Ere,fre,hre,rJe,nJe,sJe,Sre,Oo,yre,_re,gE,Cre,Rre,vre,xre,f2,Pre,bre,Ire,Are,Tre,wre,h2,vP=_(()=>{g2=require("@smithy/core/schema");d2();_P();jXe="AccessDeniedException",VXe="AccessToken",HXe="CreateOAuth2Token",zXe="CreateOAuth2TokenRequest",WXe="CreateOAuth2TokenRequestBody",KXe="CreateOAuth2TokenResponseBody",QXe="CreateOAuth2TokenResponse",XXe="InternalServerException",JXe="RefreshToken",YXe="TooManyRequestsError",ZXe="ValidationException",are="accessKeyId",cre="accessToken",p2="client",ure="clientId",lre="codeVerifier",eJe="code",Bu="error",dre="expiresIn",pre="grantType",tJe="http",m2="httpError",mre="idToken",Gs="jsonName",RP="message",CP="refreshToken",gre="redirectUri",Ere="smithy.ts.sdk.synthetic.com.amazonaws.signin",fre="secretAccessKey",hre="sessionToken",rJe="server",nJe="tokenInput",sJe="tokenOutput",Sre="tokenType",Oo="com.amazonaws.signin",yre=g2.TypeRegistry.for(Ere),_re=[-3,Ere,"SigninServiceException",0,[],[]];yre.registerError(_re,Pi);gE=g2.TypeRegistry.for(Oo),Cre=[-3,Oo,jXe,{[Bu]:p2},[Bu,RP],[0,0],2];gE.registerError(Cre,lE);Rre=[-3,Oo,XXe,{[Bu]:rJe,[m2]:500},[Bu,RP],[0,0],2];gE.registerError(Rre,dE);vre=[-3,Oo,YXe,{[Bu]:p2,[m2]:429},[Bu,RP],[0,0],2];gE.registerError(vre,pE);xre=[-3,Oo,ZXe,{[Bu]:p2,[m2]:400},[Bu,RP],[0,0],2];gE.registerError(xre,mE);f2=[yre,gE],Pre=[0,Oo,JXe,8,0],bre=[3,Oo,VXe,8,[are,fre,hre],[[0,{[Gs]:are}],[0,{[Gs]:fre}],[0,{[Gs]:hre}]],3],Ire=[3,Oo,zXe,0,[nJe],[[()=>Are,16]],1],Are=[3,Oo,WXe,0,[ure,pre,eJe,gre,lre,CP],[[0,{[Gs]:ure}],[0,{[Gs]:pre}],0,[0,{[Gs]:gre}],[0,{[Gs]:lre}],[()=>Pre,{[Gs]:CP}]],2],Tre=[3,Oo,QXe,0,[sJe],[[()=>wre,16]],1],wre=[3,Oo,KXe,0,[cre,Sre,dre,CP,mre],[[()=>bre,{[Gs]:cre}],[0,{[Gs]:Sre}],[1,{[Gs]:dre}],[()=>Pre,{[Gs]:CP}],[0,{[Gs]:mre}]],4],h2=[9,Oo,HXe,{[tJe]:["POST","/v1/token",200]},()=>Ire,()=>Tre]});var Dre,Ore,kre,xP,PP,Nre,Lre=_(()=>{on();_d();Dre=require("@smithy/core"),Ore=require("@smithy/smithy-client"),kre=require("@smithy/url-parser"),xP=require("@smithy/util-base64"),PP=require("@smithy/util-utf8");o2();ore();vP();Nre=t=>({apiVersion:"2023-01-01",base64Decoder:t?.base64Decoder??xP.fromBase64,base64Encoder:t?.base64Encoder??xP.toBase64,disableHostPrefix:t?.disableHostPrefix??!1,endpointProvider:t?.endpointProvider??sre,extensions:t?.extensions??[],httpAuthSchemeProvider:t?.httpAuthSchemeProvider??jte,httpAuthSchemes:t?.httpAuthSchemes??[{schemeId:"aws.auth#sigv4",identityProvider:e=>e.getIdentityProvider("aws.auth#sigv4"),signer:new En},{schemeId:"smithy.api#noAuth",identityProvider:e=>e.getIdentityProvider("smithy.api#noAuth")||(async()=>({})),signer:new Dre.NoAuthSigner}],logger:t?.logger??new Ore.NoOpLogger,protocol:t?.protocol??Iu,protocolSettings:t?.protocolSettings??{defaultNamespace:"com.amazonaws.signin",errorTypeRegistries:f2,version:"2023-01-01",serviceTarget:"Signin"},serviceId:t?.serviceId??"Signin",urlParser:t?.urlParser??kre.parseUrl,utf8Decoder:t?.utf8Decoder??PP.fromUtf8,utf8Encoder:t?.utf8Encoder??PP.toUtf8})});var bP,qu,Mre,IP,Uu,AP,TP,Fre,Bre,Ure,qre,$re=_(()=>{Ix();on();bP=O(km()),qu=require("@smithy/config-resolver"),Mre=require("@smithy/hash-node"),IP=require("@smithy/middleware-retry"),Uu=require("@smithy/node-config-provider"),AP=require("@smithy/node-http-handler"),TP=require("@smithy/smithy-client"),Fre=require("@smithy/util-body-length-node"),Bre=require("@smithy/util-defaults-mode-node"),Ure=require("@smithy/util-retry");Lre();qre=t=>{(0,TP.emitWarningIfUnsupportedVersion)(process.version);let e=(0,Bre.resolveDefaultsModeConfig)(t),r=()=>e().then(TP.loadConfigsForDefaultMode),n=Nre(t);Cu(process.version);let s={profile:t?.profile,logger:n.logger};return{...n,...t,runtime:"node",defaultsMode:e,authSchemePreference:t?.authSchemePreference??(0,Uu.loadConfig)(vu,s),bodyLengthChecker:t?.bodyLengthChecker??Fre.calculateBodyLength,defaultUserAgentProvider:t?.defaultUserAgentProvider??(0,bP.createDefaultUserAgentProvider)({serviceId:n.serviceId,clientVersion:Om.version}),maxAttempts:t?.maxAttempts??(0,Uu.loadConfig)(IP.NODE_MAX_ATTEMPT_CONFIG_OPTIONS,t),region:t?.region??(0,Uu.loadConfig)(qu.NODE_REGION_CONFIG_OPTIONS,{...qu.NODE_REGION_CONFIG_FILE_OPTIONS,...s}),requestHandler:AP.NodeHttpHandler.create(t?.requestHandler??r),retryMode:t?.retryMode??(0,Uu.loadConfig)({...IP.NODE_RETRY_MODE_CONFIG_OPTIONS,default:async()=>(await r()).retryMode||Ure.DEFAULT_RETRY_MODE},t),sha256:t?.sha256??Mre.Hash.bind(null,"sha256"),streamCollector:t?.streamCollector??AP.streamCollector,useDualstackEndpoint:t?.useDualstackEndpoint??(0,Uu.loadConfig)(qu.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS,s),useFipsEndpoint:t?.useFipsEndpoint??(0,Uu.loadConfig)(qu.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS,s),userAgentAppId:t?.userAgentAppId??(0,Uu.loadConfig)(bP.NODE_APP_ID_CONFIG_OPTIONS,s)}}});var Gre,jre,Vre=_(()=>{Gre=t=>{let e=t.httpAuthSchemes,r=t.httpAuthSchemeProvider,n=t.credentials;return{setHttpAuthScheme(s){let o=e.findIndex(i=>i.schemeId===s.schemeId);o===-1?e.push(s):e.splice(o,1,s)},httpAuthSchemes(){return e},setHttpAuthSchemeProvider(s){r=s},httpAuthSchemeProvider(){return r},setCredentials(s){n=s},credentials(){return n}}},jre=t=>({httpAuthSchemes:t.httpAuthSchemes(),httpAuthSchemeProvider:t.httpAuthSchemeProvider(),credentials:t.credentials()})});var wP,DP,OP,Hre,zre=_(()=>{wP=O(vd()),DP=require("@smithy/protocol-http"),OP=require("@smithy/smithy-client");Vre();Hre=(t,e)=>{let r=Object.assign((0,wP.getAwsRegionExtensionConfiguration)(t),(0,OP.getDefaultExtensionConfiguration)(t),(0,DP.getHttpHandlerExtensionConfiguration)(t),Gre(t));return e.forEach(n=>n.configure(r)),Object.assign(t,(0,wP.resolveAwsRegionExtensionConfiguration)(r),(0,OP.resolveDefaultRuntimeConfig)(r),(0,DP.resolveHttpHandlerRuntimeConfig)(r),jre(r))}});var kP,Wre,Kre,NP,Qre,Qm,Xre,Jre,Yre,LP,S2,fE,E2=_(()=>{kP=O(gm()),Wre=O(fm()),Kre=O(hm()),NP=O(Cd()),Qre=require("@smithy/config-resolver"),Qm=require("@smithy/core"),Xre=require("@smithy/core/schema"),Jre=require("@smithy/middleware-content-length"),Yre=require("@smithy/middleware-endpoint"),LP=require("@smithy/middleware-retry"),S2=require("@smithy/smithy-client");o2();i2();$re();zre();fE=class extends S2.Client{config;constructor(...[e]){let r=qre(e||{});super(r),this.initConfig=r;let n=Hte(r),s=(0,NP.resolveUserAgentConfig)(n),o=(0,LP.resolveRetryConfig)(s),i=(0,Qre.resolveRegionConfig)(o),a=(0,kP.resolveHostHeaderConfig)(i),c=(0,Yre.resolveEndpointConfig)(a),u=Vte(c),l=Hre(u,e?.extensions||[]);this.config=l,this.middlewareStack.use((0,Xre.getSchemaSerdePlugin)(this.config)),this.middlewareStack.use((0,NP.getUserAgentPlugin)(this.config)),this.middlewareStack.use((0,LP.getRetryPlugin)(this.config)),this.middlewareStack.use((0,Jre.getContentLengthPlugin)(this.config)),this.middlewareStack.use((0,kP.getHostHeaderPlugin)(this.config)),this.middlewareStack.use((0,Wre.getLoggerPlugin)(this.config)),this.middlewareStack.use((0,Kre.getRecursionDetectionPlugin)(this.config)),this.middlewareStack.use((0,Qm.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config,{httpAuthSchemeParametersProvider:Gte,identityProviderConfigProvider:async d=>new Qm.DefaultIdentityProviderConfig({"aws.auth#sigv4":d.credentials})})),this.middlewareStack.use((0,Qm.getHttpSigningPlugin)(this.config))}destroy(){super.destroy()}}});var Zre,y2,hE,_2=_(()=>{Zre=require("@smithy/middleware-endpoint"),y2=require("@smithy/smithy-client");i2();vP();hE=class extends y2.Command.classBuilder().ep(zte).m(function(e,r,n,s){return[(0,Zre.getEndpointPlugin)(n,e.getEndpointParameterInstructions())]}).s("Signin","CreateOAuth2Token",{}).n("SigninClient","CreateOAuth2TokenCommand").sc(h2).build(){}});var ene,oJe,MP,tne=_(()=>{ene=require("@smithy/smithy-client");_2();E2();oJe={CreateOAuth2TokenCommand:hE},MP=class extends fE{};(0,ene.createAggregatedClient)(oJe,MP)});var rne=_(()=>{_2()});var iJe,nne=_(()=>{iJe={AUTHCODE_EXPIRED:"AUTHCODE_EXPIRED",INSUFFICIENT_PERMISSIONS:"INSUFFICIENT_PERMISSIONS",INVALID_REQUEST:"INVALID_REQUEST",SERVER_ERROR:"server_error",TOKEN_EXPIRED:"TOKEN_EXPIRED",USER_CREDENTIALS_CHANGED:"USER_CREDENTIALS_CHANGED"}});var sne=_(()=>{});var one={};wt(one,{$Command:()=>y2.Command,AccessDeniedException:()=>lE,AccessDeniedException$:()=>Cre,AccessToken$:()=>bre,CreateOAuth2Token$:()=>h2,CreateOAuth2TokenCommand:()=>hE,CreateOAuth2TokenRequest$:()=>Ire,CreateOAuth2TokenRequestBody$:()=>Are,CreateOAuth2TokenResponse$:()=>Tre,CreateOAuth2TokenResponseBody$:()=>wre,InternalServerException:()=>dE,InternalServerException$:()=>Rre,OAuth2ErrorCode:()=>iJe,Signin:()=>MP,SigninClient:()=>fE,SigninServiceException:()=>Pi,SigninServiceException$:()=>_re,TooManyRequestsError:()=>pE,TooManyRequestsError$:()=>vre,ValidationException:()=>mE,ValidationException$:()=>xre,__Client:()=>S2.Client,errorTypeRegistries:()=>f2});var ine=_(()=>{E2();tne();rne();vP();nne();d2();sne();_P()});var cne=b(ane=>{"use strict";var aJe=(vo(),ue(cc)),$u=require("@smithy/property-provider"),v2=require("@smithy/shared-ini-file-loader"),cJe=require("@smithy/protocol-http"),FP=require("node:crypto"),C2=require("node:fs"),uJe=require("node:os"),R2=require("node:path"),x2=class t{profileData;init;callerClientConfig;static REFRESH_THRESHOLD=5*60*1e3;constructor(e,r,n){this.profileData=e,this.init=r,this.callerClientConfig=n}async loadCredentials(){let e=await this.loadToken();if(!e)throw new $u.CredentialsProviderError(`Failed to load a token for session ${this.loginSession}, please re-authenticate using aws login`,{tryNextLink:!1,logger:this.logger});let r=e.accessToken,n=Date.now();return new Date(r.expiresAt).getTime()-n<=t.REFRESH_THRESHOLD?this.refresh(e):{accessKeyId:r.accessKeyId,secretAccessKey:r.secretAccessKey,sessionToken:r.sessionToken,accountId:r.accountId,expiration:new Date(r.expiresAt)}}get logger(){return this.init?.logger}get loginSession(){return this.profileData.login_session}async refresh(e){let{SigninClient:r,CreateOAuth2TokenCommand:n}=await Promise.resolve().then(()=>(ine(),one)),{logger:s,userAgentAppId:o}=this.callerClientConfig??{},a=(d=>d?.metadata?.handlerProtocol==="h2")(this.callerClientConfig?.requestHandler)?void 0:this.callerClientConfig?.requestHandler,c=this.profileData.region??await this.callerClientConfig?.region?.()??process.env.AWS_REGION,u=new r({credentials:{accessKeyId:"",secretAccessKey:""},region:c,requestHandler:a,logger:s,userAgentAppId:o,...this.init?.clientConfig});this.createDPoPInterceptor(u.middlewareStack);let l={tokenInput:{clientId:e.clientId,refreshToken:e.refreshToken,grantType:"refresh_token"}};try{let d=await u.send(new n(l)),{accessKeyId:p,secretAccessKey:g,sessionToken:y}=d.tokenOutput?.accessToken??{},{refreshToken:R,expiresIn:D}=d.tokenOutput??{};if(!p||!g||!y||!R)throw new $u.CredentialsProviderError("Token refresh response missing required fields",{logger:this.logger,tryNextLink:!1});let B=(D??900)*1e3,M=new Date(Date.now()+B),ge={...e,accessToken:{...e.accessToken,accessKeyId:p,secretAccessKey:g,sessionToken:y,expiresAt:M.toISOString()},refreshToken:R};await this.saveToken(ge);let Y=ge.accessToken;return{accessKeyId:Y.accessKeyId,secretAccessKey:Y.secretAccessKey,sessionToken:Y.sessionToken,accountId:Y.accountId,expiration:M}}catch(d){if(d.name==="AccessDeniedException"){let p=d.error,g;switch(p){case"TOKEN_EXPIRED":g="Your session has expired. Please reauthenticate.";break;case"USER_CREDENTIALS_CHANGED":g="Unable to refresh credentials because of a change in your password. Please reauthenticate with your new password.";break;case"INSUFFICIENT_PERMISSIONS":g="Unable to refresh credentials due to insufficient permissions. You may be missing permission for the 'CreateOAuth2Token' action.";break;default:g=`Failed to refresh token: ${String(d)}. Please re-authenticate using \`aws login\``}throw new $u.CredentialsProviderError(g,{logger:this.logger,tryNextLink:!1})}throw new $u.CredentialsProviderError(`Failed to refresh token: ${String(d)}. Please re-authenticate using aws login`,{logger:this.logger})}}async loadToken(){let e=this.getTokenFilePath();try{let r;try{r=await v2.readFile(e,{ignoreCache:this.init?.ignoreCache})}catch{r=await C2.promises.readFile(e,"utf8")}let n=JSON.parse(r),s=["accessToken","clientId","refreshToken","dpopKey"].filter(o=>!n[o]);if(n.accessToken?.accountId||s.push("accountId"),s.length>0)throw new $u.CredentialsProviderError(`Token validation failed, missing fields: ${s.join(", ")}`,{logger:this.logger,tryNextLink:!1});return n}catch(r){throw new $u.CredentialsProviderError(`Failed to load token from ${e}: ${String(r)}`,{logger:this.logger,tryNextLink:!1})}}async saveToken(e){let r=this.getTokenFilePath(),n=R2.dirname(r);try{await C2.promises.mkdir(n,{recursive:!0})}catch{}await C2.promises.writeFile(r,JSON.stringify(e,null,2),"utf8")}getTokenFilePath(){let e=process.env.AWS_LOGIN_CACHE_DIRECTORY??R2.join(uJe.homedir(),".aws","login","cache"),r=Buffer.from(this.loginSession,"utf8"),n=FP.createHash("sha256").update(r).digest("hex");return R2.join(e,`${n}.json`)}derToRawSignature(e){let r=2;if(e[r]!==2)throw new Error("Invalid DER signature");r++;let n=e[r++],s=e.subarray(r,r+n);if(r+=n,e[r]!==2)throw new Error("Invalid DER signature");r++;let o=e[r++],i=e.subarray(r,r+o);s=s[0]===0?s.subarray(1):s,i=i[0]===0?i.subarray(1):i;let a=Buffer.concat([Buffer.alloc(32-s.length),s]),c=Buffer.concat([Buffer.alloc(32-i.length),i]);return Buffer.concat([a,c])}createDPoPInterceptor(e){e.add(r=>async n=>{if(cJe.HttpRequest.isInstance(n.request)){let s=n.request,o=`${s.protocol}//${s.hostname}${s.port?`:${s.port}`:""}${s.path}`,i=await this.generateDpop(s.method,o);s.headers={...s.headers,DPoP:i}}return r(n)},{step:"finalizeRequest",name:"dpopInterceptor",override:!0})}async generateDpop(e="POST",r){let n=await this.loadToken();try{let s=FP.createPrivateKey({key:n.dpopKey,format:"pem",type:"sec1"}),i=FP.createPublicKey(s).export({format:"der",type:"spki"}),a=-1;for(let M=0;Masync({callerClientConfig:e}={})=>{t?.logger?.debug?.("@aws-sdk/credential-providers - fromLoginCredentials");let r=await v2.parseKnownFiles(t||{}),n=v2.getProfileName({profile:t?.profile??e?.profile}),s=r[n];if(!s?.login_session)throw new $u.CredentialsProviderError(`Profile ${n} does not contain login_session.`,{tryNextLink:!0,logger:t?.logger});let i=await new x2(s,t,e).loadCredentials();return aJe.setCredentialFeature(i,"CREDENTIALS_LOGIN","AD")};ane.fromLoginCredentials=lJe});function dJe(t){return{schemeId:"aws.auth#sigv4",signingProperties:{name:"sts",region:t.region},propertiesExtractor:(e,r)=>({signingProperties:{config:e,context:r}})}}function pJe(t){return{schemeId:"smithy.api#noAuth"}}var SE,une,lne,mJe,dne,P2=_(()=>{on();SE=require("@smithy/util-middleware");EE();une=async(t,e,r)=>({operation:(0,SE.getSmithyContext)(e).operation,region:await(0,SE.normalizeProvider)(t.region)()||(()=>{throw new Error("expected `region` to be configured for `aws.auth#sigv4`")})()});lne=t=>{let e=[];switch(t.operation){case"AssumeRoleWithWebIdentity":{e.push(pJe(t));break}default:e.push(dJe(t))}return e},mJe=t=>Object.assign(t,{stsClientCtor:ha}),dne=t=>{let e=mJe(t),r=uc(e);return Object.assign(r,{authSchemePreference:(0,SE.normalizeProvider)(t.authSchemePreference??[])})}});var pne,BP,UP=_(()=>{pne=t=>Object.assign(t,{useDualstackEndpoint:t.useDualstackEndpoint??!1,useFipsEndpoint:t.useFipsEndpoint??!1,useGlobalEndpoint:t.useGlobalEndpoint??!1,defaultSigningName:"sts"}),BP={UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}});var vne,$e,ct,ut,ju,Gu,an,xne,Pne,bne,Wt,mne,Sa,Xm,I2,gne,b2,Ine,fne,cn,hne,Ane,Tne,vn,js,Sne,wne,Dne,Ene,One,yne,_ne,Cne,Rne,gJe,kne,Nne=_(()=>{vne="required",$e="type",ct="fn",ut="argv",ju="ref",Gu="booleanEquals",an="stringEquals",xne="sigv4",Pne="sts",bne="us-east-1",Wt="endpoint",mne="https://sts.{Region}.{PartitionResult#dnsSuffix}",Sa="tree",Xm="error",I2="getAttr",gne={[vne]:!1,[$e]:"string"},b2={[vne]:!0,default:!1,[$e]:"boolean"},Ine={[ju]:"Endpoint"},fne={[ct]:"isSet",[ut]:[{[ju]:"Region"}]},cn={[ju]:"Region"},hne={[ct]:"aws.partition",[ut]:[cn],assign:"PartitionResult"},Ane={[ju]:"UseFIPS"},Tne={[ju]:"UseDualStack"},vn={url:"https://sts.amazonaws.com",properties:{authSchemes:[{name:xne,signingName:Pne,signingRegion:bne}]},headers:{}},js={},Sne={conditions:[{[ct]:an,[ut]:[cn,"aws-global"]}],[Wt]:vn,[$e]:Wt},wne={[ct]:Gu,[ut]:[Ane,!0]},Dne={[ct]:Gu,[ut]:[Tne,!0]},Ene={[ct]:I2,[ut]:[{[ju]:"PartitionResult"},"supportsFIPS"]},One={[ju]:"PartitionResult"},yne={[ct]:Gu,[ut]:[!0,{[ct]:I2,[ut]:[One,"supportsDualStack"]}]},_ne=[{[ct]:"isSet",[ut]:[Ine]}],Cne=[wne],Rne=[Dne],gJe={version:"1.0",parameters:{Region:gne,UseDualStack:b2,UseFIPS:b2,Endpoint:gne,UseGlobalEndpoint:b2},rules:[{conditions:[{[ct]:Gu,[ut]:[{[ju]:"UseGlobalEndpoint"},!0]},{[ct]:"not",[ut]:_ne},fne,hne,{[ct]:Gu,[ut]:[Ane,!1]},{[ct]:Gu,[ut]:[Tne,!1]}],rules:[{conditions:[{[ct]:an,[ut]:[cn,"ap-northeast-1"]}],endpoint:vn,[$e]:Wt},{conditions:[{[ct]:an,[ut]:[cn,"ap-south-1"]}],endpoint:vn,[$e]:Wt},{conditions:[{[ct]:an,[ut]:[cn,"ap-southeast-1"]}],endpoint:vn,[$e]:Wt},{conditions:[{[ct]:an,[ut]:[cn,"ap-southeast-2"]}],endpoint:vn,[$e]:Wt},Sne,{conditions:[{[ct]:an,[ut]:[cn,"ca-central-1"]}],endpoint:vn,[$e]:Wt},{conditions:[{[ct]:an,[ut]:[cn,"eu-central-1"]}],endpoint:vn,[$e]:Wt},{conditions:[{[ct]:an,[ut]:[cn,"eu-north-1"]}],endpoint:vn,[$e]:Wt},{conditions:[{[ct]:an,[ut]:[cn,"eu-west-1"]}],endpoint:vn,[$e]:Wt},{conditions:[{[ct]:an,[ut]:[cn,"eu-west-2"]}],endpoint:vn,[$e]:Wt},{conditions:[{[ct]:an,[ut]:[cn,"eu-west-3"]}],endpoint:vn,[$e]:Wt},{conditions:[{[ct]:an,[ut]:[cn,"sa-east-1"]}],endpoint:vn,[$e]:Wt},{conditions:[{[ct]:an,[ut]:[cn,bne]}],endpoint:vn,[$e]:Wt},{conditions:[{[ct]:an,[ut]:[cn,"us-east-2"]}],endpoint:vn,[$e]:Wt},{conditions:[{[ct]:an,[ut]:[cn,"us-west-1"]}],endpoint:vn,[$e]:Wt},{conditions:[{[ct]:an,[ut]:[cn,"us-west-2"]}],endpoint:vn,[$e]:Wt},{endpoint:{url:mne,properties:{authSchemes:[{name:xne,signingName:Pne,signingRegion:"{Region}"}]},headers:js},[$e]:Wt}],[$e]:Sa},{conditions:_ne,rules:[{conditions:Cne,error:"Invalid Configuration: FIPS and custom endpoint are not supported",[$e]:Xm},{conditions:Rne,error:"Invalid Configuration: Dualstack and custom endpoint are not supported",[$e]:Xm},{endpoint:{url:Ine,properties:js,headers:js},[$e]:Wt}],[$e]:Sa},{conditions:[fne],rules:[{conditions:[hne],rules:[{conditions:[wne,Dne],rules:[{conditions:[{[ct]:Gu,[ut]:[!0,Ene]},yne],rules:[{endpoint:{url:"https://sts-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:js,headers:js},[$e]:Wt}],[$e]:Sa},{error:"FIPS and DualStack are enabled, but this partition does not support one or both",[$e]:Xm}],[$e]:Sa},{conditions:Cne,rules:[{conditions:[{[ct]:Gu,[ut]:[Ene,!0]}],rules:[{conditions:[{[ct]:an,[ut]:[{[ct]:I2,[ut]:[One,"name"]},"aws-us-gov"]}],endpoint:{url:"https://sts.{Region}.amazonaws.com",properties:js,headers:js},[$e]:Wt},{endpoint:{url:"https://sts-fips.{Region}.{PartitionResult#dnsSuffix}",properties:js,headers:js},[$e]:Wt}],[$e]:Sa},{error:"FIPS is enabled but this partition does not support FIPS",[$e]:Xm}],[$e]:Sa},{conditions:Rne,rules:[{conditions:[yne],rules:[{endpoint:{url:"https://sts.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:js,headers:js},[$e]:Wt}],[$e]:Sa},{error:"DualStack is enabled but this partition does not support DualStack",[$e]:Xm}],[$e]:Sa},Sne,{endpoint:{url:mne,properties:js,headers:js},[$e]:Wt}],[$e]:Sa}],[$e]:Sa},{error:"Invalid Configuration: Missing Region",[$e]:Xm}]},kne=gJe});var Lne,Jm,fJe,Mne,Fne=_(()=>{Lne=O(Ax()),Jm=require("@smithy/util-endpoints");Nne();fJe=new Jm.EndpointCache({size:50,params:["Endpoint","Region","UseDualStack","UseFIPS","UseGlobalEndpoint"]}),Mne=(t,e={})=>fJe.get(t,()=>(0,Jm.resolveEndpoint)(kne,{endpointParams:t,logger:e.logger}));Jm.customEndpointFunctions.aws=Lne.awsEndpointFunctions});var Bne,ds,qP=_(()=>{Bne=require("@smithy/smithy-client"),ds=class t extends Bne.ServiceException{constructor(e){super(e),Object.setPrototypeOf(this,t.prototype)}}});var yE,_E,CE,RE,vE,xE,PE,A2=_(()=>{qP();yE=class t extends ds{name="ExpiredTokenException";$fault="client";constructor(e){super({name:"ExpiredTokenException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},_E=class t extends ds{name="MalformedPolicyDocumentException";$fault="client";constructor(e){super({name:"MalformedPolicyDocumentException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},CE=class t extends ds{name="PackedPolicyTooLargeException";$fault="client";constructor(e){super({name:"PackedPolicyTooLargeException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},RE=class t extends ds{name="RegionDisabledException";$fault="client";constructor(e){super({name:"RegionDisabledException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},vE=class t extends ds{name="IDPRejectedClaimException";$fault="client";constructor(e){super({name:"IDPRejectedClaimException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},xE=class t extends ds{name="InvalidIdentityTokenException";$fault="client";constructor(e){super({name:"InvalidIdentityTokenException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},PE=class t extends ds{name="IDPCommunicationErrorException";$fault="client";constructor(e){super({name:"IDPCommunicationErrorException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}}});var O2,hJe,SJe,EJe,yJe,_Je,CJe,T2,RJe,vJe,xJe,PJe,w2,bJe,Une,IJe,AJe,TJe,wJe,DJe,OJe,kJe,NJe,qne,$ne,LJe,MJe,FJe,BJe,UJe,qJe,Gne,$Je,GJe,jne,jJe,Vne,VJe,HJe,D2,zJe,WJe,KJe,QJe,XJe,JJe,YJe,ZJe,eYe,tYe,Ad,Td,rYe,wd,Dd,Od,nYe,Hne,sYe,Kt,zne,Wne,Vu,Kne,Qne,Xne,Jne,Yne,Zne,ese,k2,oYe,iYe,N2,tse,rse,nse,sse,L2,ose,ise,ase,cse,aYe,cYe,M2,F2,bE=_(()=>{O2=require("@smithy/core/schema");A2();qP();hJe="Arn",SJe="AccessKeyId",EJe="AssumeRole",yJe="AssumedRoleId",_Je="AssumeRoleRequest",CJe="AssumeRoleResponse",T2="AssumedRoleUser",RJe="AssumeRoleWithWebIdentity",vJe="AssumeRoleWithWebIdentityRequest",xJe="AssumeRoleWithWebIdentityResponse",PJe="Audience",w2="Credentials",bJe="ContextAssertion",Une="DurationSeconds",IJe="Expiration",AJe="ExternalId",TJe="ExpiredTokenException",wJe="IDPCommunicationErrorException",DJe="IDPRejectedClaimException",OJe="InvalidIdentityTokenException",kJe="Key",NJe="MalformedPolicyDocumentException",qne="Policy",$ne="PolicyArns",LJe="ProviderArn",MJe="ProvidedContexts",FJe="ProvidedContextsListType",BJe="ProvidedContext",UJe="PolicyDescriptorType",qJe="ProviderId",Gne="PackedPolicySize",$Je="PackedPolicyTooLargeException",GJe="Provider",jne="RoleArn",jJe="RegionDisabledException",Vne="RoleSessionName",VJe="SecretAccessKey",HJe="SubjectFromWebIdentityToken",D2="SourceIdentity",zJe="SerialNumber",WJe="SessionToken",KJe="Tags",QJe="TokenCode",XJe="TransitiveTagKeys",JJe="Tag",YJe="Value",ZJe="WebIdentityToken",eYe="arn",tYe="accessKeySecretType",Ad="awsQueryError",Td="client",rYe="clientTokenType",wd="error",Dd="httpError",Od="message",nYe="policyDescriptorListType",Hne="smithy.ts.sdk.synthetic.com.amazonaws.sts",sYe="tagListType",Kt="com.amazonaws.sts",zne=O2.TypeRegistry.for(Hne),Wne=[-3,Hne,"STSServiceException",0,[],[]];zne.registerError(Wne,ds);Vu=O2.TypeRegistry.for(Kt),Kne=[-3,Kt,TJe,{[Ad]:["ExpiredTokenException",400],[wd]:Td,[Dd]:400},[Od],[0]];Vu.registerError(Kne,yE);Qne=[-3,Kt,wJe,{[Ad]:["IDPCommunicationError",400],[wd]:Td,[Dd]:400},[Od],[0]];Vu.registerError(Qne,PE);Xne=[-3,Kt,DJe,{[Ad]:["IDPRejectedClaim",403],[wd]:Td,[Dd]:403},[Od],[0]];Vu.registerError(Xne,vE);Jne=[-3,Kt,OJe,{[Ad]:["InvalidIdentityToken",400],[wd]:Td,[Dd]:400},[Od],[0]];Vu.registerError(Jne,xE);Yne=[-3,Kt,NJe,{[Ad]:["MalformedPolicyDocument",400],[wd]:Td,[Dd]:400},[Od],[0]];Vu.registerError(Yne,_E);Zne=[-3,Kt,$Je,{[Ad]:["PackedPolicyTooLarge",400],[wd]:Td,[Dd]:400},[Od],[0]];Vu.registerError(Zne,CE);ese=[-3,Kt,jJe,{[Ad]:["RegionDisabledException",403],[wd]:Td,[Dd]:403},[Od],[0]];Vu.registerError(ese,RE);k2=[zne,Vu],oYe=[0,Kt,tYe,8,0],iYe=[0,Kt,rYe,8,0],N2=[3,Kt,T2,0,[yJe,hJe],[0,0],2],tse=[3,Kt,_Je,0,[jne,Vne,$ne,qne,Une,KJe,XJe,AJe,zJe,QJe,D2,MJe],[0,0,()=>cse,0,1,()=>cYe,64,0,0,0,0,()=>aYe],2],rse=[3,Kt,CJe,0,[w2,T2,Gne,D2],[[()=>L2,0],()=>N2,1,0]],nse=[3,Kt,vJe,0,[jne,Vne,ZJe,qJe,$ne,qne,Une],[0,0,[()=>iYe,0],0,()=>cse,0,1],3],sse=[3,Kt,xJe,0,[w2,HJe,T2,Gne,GJe,PJe,D2],[[()=>L2,0],0,()=>N2,1,0,0,0]],L2=[3,Kt,w2,0,[SJe,VJe,WJe,IJe],[0,[()=>oYe,0],0,4],4],ose=[3,Kt,UJe,0,[eYe],[0]],ise=[3,Kt,BJe,0,[LJe,bJe],[0,0]],ase=[3,Kt,JJe,0,[kJe,YJe],[0,0],2],cse=[1,Kt,nYe,0,()=>ose],aYe=[1,Kt,FJe,0,()=>ise],cYe=[1,Kt,sYe,0,()=>ase],M2=[9,Kt,EJe,0,()=>tse,()=>rse],F2=[9,Kt,RJe,0,()=>nse,()=>sse]});var use,lse,dse,$P,GP,pse,mse=_(()=>{on();_d();use=require("@smithy/core"),lse=require("@smithy/smithy-client"),dse=require("@smithy/url-parser"),$P=require("@smithy/util-base64"),GP=require("@smithy/util-utf8");P2();Fne();bE();pse=t=>({apiVersion:"2011-06-15",base64Decoder:t?.base64Decoder??$P.fromBase64,base64Encoder:t?.base64Encoder??$P.toBase64,disableHostPrefix:t?.disableHostPrefix??!1,endpointProvider:t?.endpointProvider??Mne,extensions:t?.extensions??[],httpAuthSchemeProvider:t?.httpAuthSchemeProvider??lne,httpAuthSchemes:t?.httpAuthSchemes??[{schemeId:"aws.auth#sigv4",identityProvider:e=>e.getIdentityProvider("aws.auth#sigv4"),signer:new En},{schemeId:"smithy.api#noAuth",identityProvider:e=>e.getIdentityProvider("smithy.api#noAuth")||(async()=>({})),signer:new use.NoAuthSigner}],logger:t?.logger??new lse.NoOpLogger,protocol:t?.protocol??Tu,protocolSettings:t?.protocolSettings??{defaultNamespace:"com.amazonaws.sts",errorTypeRegistries:k2,xmlNamespace:"https://sts.amazonaws.com/doc/2011-06-15/",version:"2011-06-15",serviceTarget:"AWSSecurityTokenServiceV20110615"},serviceId:t?.serviceId??"STS",urlParser:t?.urlParser??dse.parseUrl,utf8Decoder:t?.utf8Decoder??GP.fromUtf8,utf8Encoder:t?.utf8Encoder??GP.toUtf8})});var jP,zu,gse,fse,VP,Hu,HP,zP,hse,Sse,Ese,yse,_se=_(()=>{Ix();on();jP=O(km()),zu=require("@smithy/config-resolver"),gse=require("@smithy/core"),fse=require("@smithy/hash-node"),VP=require("@smithy/middleware-retry"),Hu=require("@smithy/node-config-provider"),HP=require("@smithy/node-http-handler"),zP=require("@smithy/smithy-client"),hse=require("@smithy/util-body-length-node"),Sse=require("@smithy/util-defaults-mode-node"),Ese=require("@smithy/util-retry");mse();yse=t=>{(0,zP.emitWarningIfUnsupportedVersion)(process.version);let e=(0,Sse.resolveDefaultsModeConfig)(t),r=()=>e().then(zP.loadConfigsForDefaultMode),n=pse(t);Cu(process.version);let s={profile:t?.profile,logger:n.logger};return{...n,...t,runtime:"node",defaultsMode:e,authSchemePreference:t?.authSchemePreference??(0,Hu.loadConfig)(vu,s),bodyLengthChecker:t?.bodyLengthChecker??hse.calculateBodyLength,defaultUserAgentProvider:t?.defaultUserAgentProvider??(0,jP.createDefaultUserAgentProvider)({serviceId:n.serviceId,clientVersion:Om.version}),httpAuthSchemes:t?.httpAuthSchemes??[{schemeId:"aws.auth#sigv4",identityProvider:o=>o.getIdentityProvider("aws.auth#sigv4")||(async i=>await t.credentialDefaultProvider(i?.__config||{})()),signer:new En},{schemeId:"smithy.api#noAuth",identityProvider:o=>o.getIdentityProvider("smithy.api#noAuth")||(async()=>({})),signer:new gse.NoAuthSigner}],maxAttempts:t?.maxAttempts??(0,Hu.loadConfig)(VP.NODE_MAX_ATTEMPT_CONFIG_OPTIONS,t),region:t?.region??(0,Hu.loadConfig)(zu.NODE_REGION_CONFIG_OPTIONS,{...zu.NODE_REGION_CONFIG_FILE_OPTIONS,...s}),requestHandler:HP.NodeHttpHandler.create(t?.requestHandler??r),retryMode:t?.retryMode??(0,Hu.loadConfig)({...VP.NODE_RETRY_MODE_CONFIG_OPTIONS,default:async()=>(await r()).retryMode||Ese.DEFAULT_RETRY_MODE},t),sha256:t?.sha256??fse.Hash.bind(null,"sha256"),streamCollector:t?.streamCollector??HP.streamCollector,useDualstackEndpoint:t?.useDualstackEndpoint??(0,Hu.loadConfig)(zu.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS,s),useFipsEndpoint:t?.useFipsEndpoint??(0,Hu.loadConfig)(zu.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS,s),userAgentAppId:t?.userAgentAppId??(0,Hu.loadConfig)(jP.NODE_APP_ID_CONFIG_OPTIONS,s)}}});var Cse,Rse,vse=_(()=>{Cse=t=>{let e=t.httpAuthSchemes,r=t.httpAuthSchemeProvider,n=t.credentials;return{setHttpAuthScheme(s){let o=e.findIndex(i=>i.schemeId===s.schemeId);o===-1?e.push(s):e.splice(o,1,s)},httpAuthSchemes(){return e},setHttpAuthSchemeProvider(s){r=s},httpAuthSchemeProvider(){return r},setCredentials(s){n=s},credentials(){return n}}},Rse=t=>({httpAuthSchemes:t.httpAuthSchemes(),httpAuthSchemeProvider:t.httpAuthSchemeProvider(),credentials:t.credentials()})});var WP,KP,QP,xse,Pse=_(()=>{WP=O(vd()),KP=require("@smithy/protocol-http"),QP=require("@smithy/smithy-client");vse();xse=(t,e)=>{let r=Object.assign((0,WP.getAwsRegionExtensionConfiguration)(t),(0,QP.getDefaultExtensionConfiguration)(t),(0,KP.getHttpHandlerExtensionConfiguration)(t),Cse(t));return e.forEach(n=>n.configure(r)),Object.assign(t,(0,WP.resolveAwsRegionExtensionConfiguration)(r),(0,QP.resolveDefaultRuntimeConfig)(r),(0,KP.resolveHttpHandlerRuntimeConfig)(r),Rse(r))}});var XP,bse,Ise,JP,Ase,Ym,Tse,wse,Dse,YP,B2,ha,EE=_(()=>{XP=O(gm()),bse=O(fm()),Ise=O(hm()),JP=O(Cd()),Ase=require("@smithy/config-resolver"),Ym=require("@smithy/core"),Tse=require("@smithy/core/schema"),wse=require("@smithy/middleware-content-length"),Dse=require("@smithy/middleware-endpoint"),YP=require("@smithy/middleware-retry"),B2=require("@smithy/smithy-client");P2();UP();_se();Pse();ha=class extends B2.Client{config;constructor(...[e]){let r=yse(e||{});super(r),this.initConfig=r;let n=pne(r),s=(0,JP.resolveUserAgentConfig)(n),o=(0,YP.resolveRetryConfig)(s),i=(0,Ase.resolveRegionConfig)(o),a=(0,XP.resolveHostHeaderConfig)(i),c=(0,Dse.resolveEndpointConfig)(a),u=dne(c),l=xse(u,e?.extensions||[]);this.config=l,this.middlewareStack.use((0,Tse.getSchemaSerdePlugin)(this.config)),this.middlewareStack.use((0,JP.getUserAgentPlugin)(this.config)),this.middlewareStack.use((0,YP.getRetryPlugin)(this.config)),this.middlewareStack.use((0,wse.getContentLengthPlugin)(this.config)),this.middlewareStack.use((0,XP.getHostHeaderPlugin)(this.config)),this.middlewareStack.use((0,bse.getLoggerPlugin)(this.config)),this.middlewareStack.use((0,Ise.getRecursionDetectionPlugin)(this.config)),this.middlewareStack.use((0,Ym.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config,{httpAuthSchemeParametersProvider:une,identityProviderConfigProvider:async d=>new Ym.DefaultIdentityProviderConfig({"aws.auth#sigv4":d.credentials})})),this.middlewareStack.use((0,Ym.getHttpSigningPlugin)(this.config))}destroy(){super.destroy()}}});var Ose,kse,kd,ZP=_(()=>{Ose=require("@smithy/middleware-endpoint"),kse=require("@smithy/smithy-client");UP();bE();kd=class extends kse.Command.classBuilder().ep(BP).m(function(e,r,n,s){return[(0,Ose.getEndpointPlugin)(n,e.getEndpointParameterInstructions())]}).s("AWSSecurityTokenServiceV20110615","AssumeRole",{}).n("STSClient","AssumeRoleCommand").sc(M2).build(){}});var Nse,Lse,Nd,eb=_(()=>{Nse=require("@smithy/middleware-endpoint"),Lse=require("@smithy/smithy-client");UP();bE();Nd=class extends Lse.Command.classBuilder().ep(BP).m(function(e,r,n,s){return[(0,Nse.getEndpointPlugin)(n,e.getEndpointParameterInstructions())]}).s("AWSSecurityTokenServiceV20110615","AssumeRoleWithWebIdentity",{}).n("STSClient","AssumeRoleWithWebIdentityCommand").sc(F2).build(){}});var Mse,uYe,tb,Fse=_(()=>{Mse=require("@smithy/smithy-client");ZP();eb();EE();uYe={AssumeRoleCommand:kd,AssumeRoleWithWebIdentityCommand:Nd},tb=class extends ha{};(0,Mse.createAggregatedClient)(uYe,tb)});var Bse=_(()=>{ZP();eb()});var Use=_(()=>{});var qse,$se,Gse,jse,Vse,Hse,zse=_(()=>{vo();qse=O(vd());ZP();eb();$se=t=>{if(typeof t?.Arn=="string"){let e=t.Arn.split(":");if(e.length>4&&e[4]!=="")return e[4]}},Gse=async(t,e,r,n={})=>{let s=typeof t=="function"?await t():t,o=typeof e=="function"?await e():e,i="",a=s??o??(i=await(0,qse.stsRegionDefaultResolver)(n)());return r?.debug?.("@aws-sdk/client-sts::resolveRegion","accepting first of:",`${s} (credential provider clientConfig)`,`${o} (contextual client)`,`${i} (STS default: AWS_REGION, profile region, or us-east-1)`),a},jse=(t,e)=>{let r,n;return async(s,o)=>{if(n=s,!r){let{logger:l=t?.parentClientConfig?.logger,profile:d=t?.parentClientConfig?.profile,region:p,requestHandler:g=t?.parentClientConfig?.requestHandler,credentialProviderLogger:y,userAgentAppId:R=t?.parentClientConfig?.userAgentAppId}=t,D=await Gse(p,t?.parentClientConfig?.region,y,{logger:l,profile:d}),B=!Hse(g);r=new e({...t,userAgentAppId:R,profile:d,credentialDefaultProvider:()=>async()=>n,region:D,requestHandler:B?g:void 0,logger:l})}let{Credentials:i,AssumedRoleUser:a}=await r.send(new kd(o));if(!i||!i.AccessKeyId||!i.SecretAccessKey)throw new Error(`Invalid response from STS.assumeRole call with role ${o.RoleArn}`);let c=$se(a),u={accessKeyId:i.AccessKeyId,secretAccessKey:i.SecretAccessKey,sessionToken:i.SessionToken,expiration:i.Expiration,...i.CredentialScope&&{credentialScope:i.CredentialScope},...c&&{accountId:c}};return Ru(u,"CREDENTIALS_STS_ASSUME_ROLE","i"),u}},Vse=(t,e)=>{let r;return async n=>{if(!r){let{logger:c=t?.parentClientConfig?.logger,profile:u=t?.parentClientConfig?.profile,region:l,requestHandler:d=t?.parentClientConfig?.requestHandler,credentialProviderLogger:p,userAgentAppId:g=t?.parentClientConfig?.userAgentAppId}=t,y=await Gse(l,t?.parentClientConfig?.region,p,{logger:c,profile:u}),R=!Hse(d);r=new e({...t,userAgentAppId:g,profile:u,region:y,requestHandler:R?d:void 0,logger:c})}let{Credentials:s,AssumedRoleUser:o}=await r.send(new Nd(n));if(!s||!s.AccessKeyId||!s.SecretAccessKey)throw new Error(`Invalid response from STS.assumeRoleWithWebIdentity call with role ${n.RoleArn}`);let i=$se(o),a={accessKeyId:s.AccessKeyId,secretAccessKey:s.SecretAccessKey,sessionToken:s.SessionToken,expiration:s.Expiration,...s.CredentialScope&&{credentialScope:s.CredentialScope},...i&&{accountId:i}};return i&&Ru(a,"RESOLVED_ACCOUNT_ID","T"),Ru(a,"CREDENTIALS_STS_ASSUME_ROLE_WEB_ID","k"),a}},Hse=t=>t?.metadata?.handlerProtocol==="h2"});var Wse,Kse,Qse,lYe,Xse=_(()=>{zse();EE();Wse=(t,e)=>e?class extends t{constructor(n){super(n);for(let s of e)this.middlewareStack.use(s)}}:t,Kse=(t={},e)=>jse(t,Wse(ha,e)),Qse=(t={},e)=>Vse(t,Wse(ha,e)),lYe=t=>e=>t({roleAssumer:Kse(e),roleAssumerWithWebIdentity:Qse(e),...e})});var U2={};wt(U2,{AssumeRole$:()=>M2,AssumeRoleCommand:()=>kd,AssumeRoleRequest$:()=>tse,AssumeRoleResponse$:()=>rse,AssumeRoleWithWebIdentity$:()=>F2,AssumeRoleWithWebIdentityCommand:()=>Nd,AssumeRoleWithWebIdentityRequest$:()=>nse,AssumeRoleWithWebIdentityResponse$:()=>sse,AssumedRoleUser$:()=>N2,Credentials$:()=>L2,ExpiredTokenException:()=>yE,ExpiredTokenException$:()=>Kne,IDPCommunicationErrorException:()=>PE,IDPCommunicationErrorException$:()=>Qne,IDPRejectedClaimException:()=>vE,IDPRejectedClaimException$:()=>Xne,InvalidIdentityTokenException:()=>xE,InvalidIdentityTokenException$:()=>Jne,MalformedPolicyDocumentException:()=>_E,MalformedPolicyDocumentException$:()=>Yne,PackedPolicyTooLargeException:()=>CE,PackedPolicyTooLargeException$:()=>Zne,PolicyDescriptorType$:()=>ose,ProvidedContext$:()=>ise,RegionDisabledException:()=>RE,RegionDisabledException$:()=>ese,STS:()=>tb,STSClient:()=>ha,STSServiceException:()=>ds,STSServiceException$:()=>Wne,Tag$:()=>ase,__Client:()=>B2.Client,decorateDefaultCredentialProvider:()=>lYe,errorTypeRegistries:()=>k2,getDefaultRoleAssumer:()=>Kse,getDefaultRoleAssumerWithWebIdentity:()=>Qse});var q2=_(()=>{EE();Fse();Bse();bE();A2();Use();Xse();qP()});var j2=b(Jse=>{"use strict";var G2=require("@smithy/shared-ini-file-loader"),$2=require("@smithy/property-provider"),dYe=require("child_process"),pYe=require("util"),mYe=(vo(),ue(cc)),gYe=(t,e,r)=>{if(e.Version!==1)throw Error(`Profile ${t} credential_process did not return Version 1.`);if(e.AccessKeyId===void 0||e.SecretAccessKey===void 0)throw Error(`Profile ${t} credential_process returned invalid credentials.`);if(e.Expiration){let o=new Date;if(new Date(e.Expiration){let n=e[t];if(e[t]){let s=n.credential_process;if(s!==void 0){let o=pYe.promisify(G2.externalDataInterceptor?.getTokenRecord?.().exec??dYe.exec);try{let{stdout:i}=await o(s),a;try{a=JSON.parse(i.trim())}catch{throw Error(`Profile ${t} credential_process returned invalid JSON.`)}return gYe(t,a,e)}catch(i){throw new $2.CredentialsProviderError(i.message,{logger:r})}}else throw new $2.CredentialsProviderError(`Profile ${t} did not contain credential_process.`,{logger:r})}else throw new $2.CredentialsProviderError(`Profile ${t} could not be found in shared credentials file.`,{logger:r})},hYe=(t={})=>async({callerClientConfig:e}={})=>{t.logger?.debug("@aws-sdk/credential-provider-process - fromProcess");let r=await G2.parseKnownFiles(t);return fYe(G2.getProfileName({profile:t.profile??e?.profile}),r,t.logger)};Jse.fromProcess=hYe});var V2=b(Ea=>{"use strict";var SYe=Ea&&Ea.__createBinding||(Object.create?function(t,e,r,n){n===void 0&&(n=r);var s=Object.getOwnPropertyDescriptor(e,r);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,n,s)}:function(t,e,r,n){n===void 0&&(n=r),t[n]=e[r]}),EYe=Ea&&Ea.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),yYe=Ea&&Ea.__importStar||function(){var t=function(e){return t=Object.getOwnPropertyNames||function(r){var n=[];for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(n[n.length]=s);return n},t(e)};return function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var n=t(e),s=0;sasync e=>{t.logger?.debug("@aws-sdk/credential-provider-web-identity - fromWebToken");let{roleArn:r,roleSessionName:n,webIdentityToken:s,providerId:o,policyArns:i,policy:a,durationSeconds:c}=t,{roleAssumerWithWebIdentity:u}=t;if(!u){let{getDefaultRoleAssumerWithWebIdentity:l}=await Promise.resolve().then(()=>yYe((q2(),ue(U2))));u=l({...t.clientConfig,credentialProviderLogger:t.logger,parentClientConfig:{...e?.callerClientConfig,...t.parentClientConfig}},t.clientPlugins)}return u({RoleArn:r,RoleSessionName:n??`aws-sdk-js-session-${Date.now()}`,WebIdentityToken:s,ProviderId:o,PolicyArns:i,Policy:a,DurationSeconds:c})};Ea.fromWebToken=_Ye});var Zse=b(rb=>{"use strict";Object.defineProperty(rb,"__esModule",{value:!0});rb.fromTokenFile=void 0;var CYe=(vo(),ue(cc)),RYe=require("@smithy/property-provider"),vYe=require("@smithy/shared-ini-file-loader"),xYe=require("fs"),PYe=V2(),Yse="AWS_WEB_IDENTITY_TOKEN_FILE",bYe="AWS_ROLE_ARN",IYe="AWS_ROLE_SESSION_NAME",AYe=(t={})=>async e=>{t.logger?.debug("@aws-sdk/credential-provider-web-identity - fromTokenFile");let r=t?.webIdentityTokenFile??process.env[Yse],n=t?.roleArn??process.env[bYe],s=t?.roleSessionName??process.env[IYe];if(!r||!n)throw new RYe.CredentialsProviderError("Web identity configuration not specified",{logger:t.logger});let o=await(0,PYe.fromWebToken)({...t,webIdentityToken:vYe.externalDataInterceptor?.getTokenRecord?.()[r]??(0,xYe.readFileSync)(r,{encoding:"ascii"}),roleArn:n,roleSessionName:s})(e);return r===process.env[Yse]&&(0,CYe.setCredentialFeature)(o,"CREDENTIALS_ENV_VARS_STS_WEB_ID_TOKEN","h"),o};rb.fromTokenFile=AYe});var H2=b(gc=>{"use strict";var nb=Zse(),sb=V2();Object.prototype.hasOwnProperty.call(nb,"__proto__")&&!Object.prototype.hasOwnProperty.call(gc,"__proto__")&&Object.defineProperty(gc,"__proto__",{enumerable:!0,value:nb.__proto__});Object.keys(nb).forEach(function(t){t!=="default"&&!Object.prototype.hasOwnProperty.call(gc,t)&&(gc[t]=nb[t])});Object.prototype.hasOwnProperty.call(sb,"__proto__")&&!Object.prototype.hasOwnProperty.call(gc,"__proto__")&&Object.defineProperty(gc,"__proto__",{enumerable:!0,value:sb.__proto__});Object.keys(sb).forEach(function(t){t!=="default"&&!Object.prototype.hasOwnProperty.call(gc,t)&&(gc[t]=sb[t])})});var ooe=b(soe=>{"use strict";var W2=require("@smithy/shared-ini-file-loader"),IE=require("@smithy/property-provider"),fc=(vo(),ue(cc)),TYe=cne(),wYe=(t,e,r)=>{let n={EcsContainer:async s=>{let{fromHttp:o}=await Promise.resolve().then(()=>O(TG())),{fromContainerMetadata:i}=await import("@smithy/credential-provider-imds");return r?.debug("@aws-sdk/credential-provider-ini - credential_source is EcsContainer"),async()=>IE.chain(o(s??{}),i(s))().then(z2)},Ec2InstanceMetadata:async s=>{r?.debug("@aws-sdk/credential-provider-ini - credential_source is Ec2InstanceMetadata");let{fromInstanceMetadata:o}=await import("@smithy/credential-provider-imds");return async()=>o(s)().then(z2)},Environment:async s=>{r?.debug("@aws-sdk/credential-provider-ini - credential_source is Environment");let{fromEnv:o}=await Promise.resolve().then(()=>O(IG()));return async()=>o(s)().then(z2)}};if(t in n)return n[t];throw new IE.CredentialsProviderError(`Unsupported credential source in profile ${e}. Got ${t}, expected EcsContainer or Ec2InstanceMetadata or Environment.`,{logger:r})},z2=t=>fc.setCredentialFeature(t,"CREDENTIALS_PROFILE_NAMED_PROVIDER","p"),DYe=(t,{profile:e="default",logger:r}={})=>!!t&&typeof t=="object"&&typeof t.role_arn=="string"&&["undefined","string"].indexOf(typeof t.role_session_name)>-1&&["undefined","string"].indexOf(typeof t.external_id)>-1&&["undefined","string"].indexOf(typeof t.mfa_serial)>-1&&(OYe(t,{profile:e,logger:r})||kYe(t,{profile:e,logger:r})),OYe=(t,{profile:e,logger:r})=>{let n=typeof t.source_profile=="string"&&typeof t.credential_source>"u";return n&&r?.debug?.(` ${e} isAssumeRoleWithSourceProfile source_profile=${t.source_profile}`),n},kYe=(t,{profile:e,logger:r})=>{let n=typeof t.credential_source=="string"&&typeof t.source_profile>"u";return n&&r?.debug?.(` ${e} isCredentialSourceProfile credential_source=${t.credential_source}`),n},NYe=async(t,e,r,n,s={},o)=>{r.logger?.debug("@aws-sdk/credential-provider-ini - resolveAssumeRoleCredentials (STS)");let i=e[t],{source_profile:a,region:c}=i;if(!r.roleAssumer){let{getDefaultRoleAssumer:l}=await Promise.resolve().then(()=>(q2(),U2));r.roleAssumer=l({...r.clientConfig,credentialProviderLogger:r.logger,parentClientConfig:{...n,...r?.parentClientConfig,region:c??r?.parentClientConfig?.region??n?.region}},r.clientPlugins)}if(a&&a in s)throw new IE.CredentialsProviderError(`Detected a cycle attempting to resolve credentials for profile ${W2.getProfileName(r)}. Profiles visited: `+Object.keys(s).join(", "),{logger:r.logger});r.logger?.debug(`@aws-sdk/credential-provider-ini - finding credential resolver using ${a?`source_profile=[${a}]`:`profile=[${t}]`}`);let u=a?o(a,e,r,n,{...s,[a]:!0},eoe(e[a]??{})):(await wYe(i.credential_source,t,r.logger)(r))();if(eoe(i))return u.then(l=>fc.setCredentialFeature(l,"CREDENTIALS_PROFILE_SOURCE_PROFILE","o"));{let l={RoleArn:i.role_arn,RoleSessionName:i.role_session_name||`aws-sdk-js-${Date.now()}`,ExternalId:i.external_id,DurationSeconds:parseInt(i.duration_seconds||"3600",10)},{mfa_serial:d}=i;if(d){if(!r.mfaCodeProvider)throw new IE.CredentialsProviderError(`Profile ${t} requires multi-factor authentication, but no MFA code callback was provided.`,{logger:r.logger,tryNextLink:!1});l.SerialNumber=d,l.TokenCode=await r.mfaCodeProvider(d)}let p=await u;return r.roleAssumer(p,l).then(g=>fc.setCredentialFeature(g,"CREDENTIALS_PROFILE_SOURCE_PROFILE","o"))}},eoe=t=>!t.role_arn&&!!t.credential_source,LYe=t=>!!(t&&t.login_session),MYe=async(t,e,r)=>{let n=await TYe.fromLoginCredentials({...e,profile:t})({callerClientConfig:r});return fc.setCredentialFeature(n,"CREDENTIALS_PROFILE_LOGIN","AC")},FYe=t=>!!t&&typeof t=="object"&&typeof t.credential_process=="string",BYe=async(t,e)=>Promise.resolve().then(()=>O(j2())).then(({fromProcess:r})=>r({...t,profile:e})().then(n=>fc.setCredentialFeature(n,"CREDENTIALS_PROFILE_PROCESS","v"))),UYe=async(t,e,r={},n)=>{let{fromSSO:s}=await Promise.resolve().then(()=>O(s2()));return s({profile:t,logger:r.logger,parentClientConfig:r.parentClientConfig,clientConfig:r.clientConfig})({callerClientConfig:n}).then(o=>e.sso_session?fc.setCredentialFeature(o,"CREDENTIALS_PROFILE_SSO","r"):fc.setCredentialFeature(o,"CREDENTIALS_PROFILE_SSO_LEGACY","t"))},qYe=t=>t&&(typeof t.sso_start_url=="string"||typeof t.sso_account_id=="string"||typeof t.sso_session=="string"||typeof t.sso_region=="string"||typeof t.sso_role_name=="string"),toe=t=>!!t&&typeof t=="object"&&typeof t.aws_access_key_id=="string"&&typeof t.aws_secret_access_key=="string"&&["undefined","string"].indexOf(typeof t.aws_session_token)>-1&&["undefined","string"].indexOf(typeof t.aws_account_id)>-1,roe=async(t,e)=>{e?.logger?.debug("@aws-sdk/credential-provider-ini - resolveStaticCredentials");let r={accessKeyId:t.aws_access_key_id,secretAccessKey:t.aws_secret_access_key,sessionToken:t.aws_session_token,...t.aws_credential_scope&&{credentialScope:t.aws_credential_scope},...t.aws_account_id&&{accountId:t.aws_account_id}};return fc.setCredentialFeature(r,"CREDENTIALS_PROFILE","n")},$Ye=t=>!!t&&typeof t=="object"&&typeof t.web_identity_token_file=="string"&&typeof t.role_arn=="string"&&["undefined","string"].indexOf(typeof t.role_session_name)>-1,GYe=async(t,e,r)=>Promise.resolve().then(()=>O(H2())).then(({fromTokenFile:n})=>n({webIdentityTokenFile:t.web_identity_token_file,roleArn:t.role_arn,roleSessionName:t.role_session_name,roleAssumerWithWebIdentity:e.roleAssumerWithWebIdentity,logger:e.logger,parentClientConfig:e.parentClientConfig})({callerClientConfig:r}).then(s=>fc.setCredentialFeature(s,"CREDENTIALS_PROFILE_STS_WEB_ID_TOKEN","q"))),noe=async(t,e,r,n,s={},o=!1)=>{let i=e[t];if(Object.keys(s).length>0&&toe(i))return roe(i,r);if(o||DYe(i,{profile:t,logger:r.logger}))return NYe(t,e,r,n,s,noe);if(toe(i))return roe(i,r);if($Ye(i))return GYe(i,r,n);if(FYe(i))return BYe(r,t);if(qYe(i))return await UYe(t,i,r,n);if(LYe(i))return MYe(t,r,n);throw new IE.CredentialsProviderError(`Could not resolve credentials using profile: [${t}] in configuration/credentials file(s).`,{logger:r.logger})},jYe=(t={})=>async({callerClientConfig:e}={})=>{t.logger?.debug("@aws-sdk/credential-provider-ini - fromIni");let r=await W2.parseKnownFiles(t);return noe(W2.getProfileName({profile:t.profile??e?.profile}),r,t,e)};soe.fromIni=jYe});var uoe=b(ob=>{"use strict";var K2=IG(),AE=require("@smithy/property-provider"),VYe=require("@smithy/shared-ini-file-loader"),ioe="AWS_EC2_METADATA_DISABLED",HYe=async t=>{let{ENV_CMDS_FULL_URI:e,ENV_CMDS_RELATIVE_URI:r,fromContainerMetadata:n,fromInstanceMetadata:s}=await import("@smithy/credential-provider-imds");if(process.env[r]||process.env[e]){t.logger?.debug("@aws-sdk/credential-provider-node - remoteProvider::fromHttp/fromContainerMetadata");let{fromHttp:o}=await Promise.resolve().then(()=>O(TG()));return AE.chain(o(t),n(t))}return process.env[ioe]&&process.env[ioe]!=="false"?async()=>{throw new AE.CredentialsProviderError("EC2 Instance Metadata Service access disabled",{logger:t.logger})}:(t.logger?.debug("@aws-sdk/credential-provider-node - remoteProvider::fromInstanceMetadata"),s(t))};function zYe(t,e){let r=WYe(t),n,s,o,i=async a=>{if(a?.forceRefresh)return await r(a);if(o?.expiration&&o?.expiration?.getTime(){o=c}).finally(()=>{s=void 0}));else return n=r(a).then(c=>{o=c}).finally(()=>{n=void 0}),i(a);return o};return i}var WYe=t=>async e=>{let r;for(let n of t)try{return await n(e)}catch(s){if(r=s,s?.tryNextLink)continue;throw s}throw r},aoe=!1,KYe=(t={})=>zYe([async()=>{if(t.profile??process.env[VYe.ENV_PROFILE])throw process.env[K2.ENV_KEY]&&process.env[K2.ENV_SECRET]&&(aoe||((t.logger?.warn&&t.logger?.constructor?.name!=="NoOpLogger"?t.logger.warn.bind(t.logger):console.warn)(`@aws-sdk/credential-provider-node - defaultProvider::fromEnv WARNING: + Multiple credential sources detected: + Both AWS_PROFILE and the pair AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY static credentials are set. + This SDK will proceed with the AWS_PROFILE value. + + However, a future version may change this behavior to prefer the ENV static credentials. + Please ensure that your environment only sets either the AWS_PROFILE or the + AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY pair. +`),aoe=!0)),new AE.CredentialsProviderError("AWS_PROFILE is set, skipping fromEnv provider.",{logger:t.logger,tryNextLink:!0});return t.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromEnv"),K2.fromEnv(t)()},async e=>{t.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromSSO");let{ssoStartUrl:r,ssoAccountId:n,ssoRegion:s,ssoRoleName:o,ssoSession:i}=t;if(!r&&!n&&!s&&!o&&!i)throw new AE.CredentialsProviderError("Skipping SSO provider in default chain (inputs do not include SSO fields).",{logger:t.logger});let{fromSSO:a}=await Promise.resolve().then(()=>O(s2()));return a(t)(e)},async e=>{t.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromIni");let{fromIni:r}=await Promise.resolve().then(()=>O(ooe()));return r(t)(e)},async e=>{t.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromProcess");let{fromProcess:r}=await Promise.resolve().then(()=>O(j2()));return r(t)(e)},async e=>{t.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromTokenFile");let{fromTokenFile:r}=await Promise.resolve().then(()=>O(H2()));return r(t)(e)},async()=>(t.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::remoteProvider"),(await HYe(t))()),async()=>{throw new AE.CredentialsProviderError("Could not load credentials from any providers",{tryNextLink:!1,logger:t.logger})}],coe),QYe=t=>t?.expiration!==void 0,coe=t=>t?.expiration!==void 0&&t.expiration.getTime()-Date.now()<3e5;ob.credentialsTreatedAsExpired=coe;ob.credentialsWillNeedRefresh=QYe;ob.defaultProvider=KYe});var TE,Q2,ko,Zm=_(()=>{TE=require("@smithy/core/schema"),Q2=require("@smithy/smithy-client"),ko=class{queryCompat;constructor(e=!1){this.queryCompat=e}resolveRestContentType(e,r){let n=r.getMemberSchemas(),s=Object.values(n).find(o=>!!o.getMergedTraits().httpPayload);if(s){let o=s.getMergedTraits().mediaType;return o||(s.isStringSchema()?"text/plain":s.isBlobSchema()?"application/octet-stream":e)}else if(!r.isUnitSchema()&&Object.values(n).find(i=>{let{httpQuery:a,httpQueryParams:c,httpHeader:u,httpLabel:l,httpPrefixHeaders:d}=i.getMergedTraits();return!a&&!c&&!u&&!l&&d===void 0}))return e}async getErrorSchemaOrThrowBaseException(e,r,n,s,o,i){let a=r,c=e;e.includes("#")&&([a,c]=e.split("#"));let u={$metadata:o,$fault:n.statusCode<500?"client":"server"},l=TE.TypeRegistry.for(a);try{return{errorSchema:i?.(l,c)??l.getSchema(e),errorMetadata:u}}catch{s.message=s.message??s.Message??"UnknownError";let p=TE.TypeRegistry.for("smithy.ts.sdk.synthetic."+a),g=p.getBaseException();if(g){let y=p.getErrorCtor(g)??Error;throw this.decorateServiceException(Object.assign(new y({name:c}),u),s)}throw this.decorateServiceException(Object.assign(new Error(c),u),s)}}decorateServiceException(e,r={}){if(this.queryCompat){let n=e.Message??r.Message,s=(0,Q2.decorateServiceException)(e,r);n&&(s.message=n),s.Error={...s.Error,Type:s.Error?.Type,Code:s.Error?.Code,Message:s.Error?.message??s.Error?.Message??n};let o=s.$metadata.requestId;return o&&(s.RequestId=o),s}return(0,Q2.decorateServiceException)(e,r)}setQueryCompatError(e,r){let n=r.headers?.["x-amzn-query-error"];if(e!==void 0&&n!=null){let[s,o]=n.split(";"),i=Object.entries(e),a={Code:s,Type:o};Object.assign(e,a);for(let[c,u]of i)a[c==="message"?"Message":c]=u;delete a.__type,e.Error=a}}queryCompatOutput(e,r){e.Error&&(r.Error=e.Error),e.Type&&(r.Type=e.Type),e.Code&&(r.Code=e.Code)}findQueryCompatibleError(e,r){try{return e.getSchema(r)}catch{return e.find(s=>TE.NormalizedSchema.of(s).getMergedTraits().awsQueryError?.[0]===r)}}}});var ib,ab,X2,loe=_(()=>{ib=require("@smithy/core/cbor"),ab=require("@smithy/core/schema");Zm();X2=class extends ib.SmithyRpcV2CborProtocol{awsQueryCompatible;mixin;constructor({defaultNamespace:e,awsQueryCompatible:r}){super({defaultNamespace:e}),this.awsQueryCompatible=!!r,this.mixin=new ko(this.awsQueryCompatible)}async serializeRequest(e,r,n){let s=await super.serializeRequest(e,r,n);return this.awsQueryCompatible&&(s.headers["x-amzn-query-mode"]="true"),s}async handleError(e,r,n,s,o){this.awsQueryCompatible&&this.mixin.setQueryCompatError(s,n);let i=(()=>{let y=n.headers["x-amzn-query-error"];return y&&this.awsQueryCompatible?y.split(";")[0]:(0,ib.loadSmithyRpcV2CborErrorCode)(n,s)??"Unknown"})(),{errorSchema:a,errorMetadata:c}=await this.mixin.getErrorSchemaOrThrowBaseException(i,this.options.defaultNamespace,n,s,o,this.awsQueryCompatible?this.mixin.findQueryCompatibleError:void 0),u=ab.NormalizedSchema.of(a),l=s.message??s.Message??"Unknown",d=ab.TypeRegistry.for(a[1]).getErrorCtor(a)??Error,p=new d(l),g={};for(let[y,R]of u.structIterator())s[y]!=null&&(g[y]=this.deserializer.readValue(R,s[y]));throw this.awsQueryCompatible&&this.mixin.queryCompatOutput(s,g),this.mixin.decorateServiceException(Object.assign(p,c,{$fault:u.getMergedTraits().error,message:l},g),s)}}});var XYe,JYe,YYe,doe=_(()=>{XYe=t=>{if(t==null)return t;if(typeof t=="number"||typeof t=="bigint"){let e=new Error(`Received number ${t} where a string was expected.`);return e.name="Warning",console.warn(e),String(t)}if(typeof t=="boolean"){let e=new Error(`Received boolean ${t} where a string was expected.`);return e.name="Warning",console.warn(e),String(t)}return t},JYe=t=>{if(t==null)return t;if(typeof t=="string"){let e=t.toLowerCase();if(t!==""&&e!=="false"&&e!=="true"){let r=new Error(`Received string "${t}" where a boolean was expected.`);r.name="Warning",console.warn(r)}return t!==""&&e!=="false"}return t},YYe=t=>{if(t==null)return t;if(typeof t=="string"){let e=Number(t);if(e.toString()!==t){let r=new Error(`Received string "${t}" where a number was expected.`);return r.name="Warning",console.warn(r),t}return e}return t}});var xn,Wu=_(()=>{xn=class{serdeContext;setSerdeContext(e){this.serdeContext=e}}});var eg,J2=_(()=>{eg=class{from;to;keys;constructor(e,r){this.from=e,this.to=r,this.keys=new Set(Object.keys(this.from).filter(n=>n!=="__type"))}mark(e){this.keys.delete(e)}hasUnknown(){return this.keys.size===1&&Object.keys(this.to).length===0}writeUnknown(){if(this.hasUnknown()){let e=this.keys.values().next().value,r=this.from[e];this.to.$unknown=[e,r]}}}});function moe(t,e,r){if(r?.source){let n=r.source;if(typeof e=="number"&&(e>Number.MAX_SAFE_INTEGER||e{poe=require("@smithy/core/serde")});var foe,hoe,cb,Y2=_(()=>{foe=require("@smithy/smithy-client"),hoe=require("@smithy/util-utf8"),cb=(t,e)=>(0,foe.collectBody)(t,e).then(r=>(e?.utf8Encoder??hoe.toUtf8)(r))});var ub,ZYe,wE,DE=_(()=>{Y2();ub=(t,e)=>cb(t,e).then(r=>{if(r.length)try{return JSON.parse(r)}catch(n){throw n?.name==="SyntaxError"&&Object.defineProperty(n,"$responseBodyText",{value:r}),n}return{}}),ZYe=async(t,e)=>{let r=await ub(t,e);return r.message=r.message??r.Message,r},wE=(t,e)=>{let r=(o,i)=>Object.keys(o).find(a=>a.toLowerCase()===i.toLowerCase()),n=o=>{let i=o;return typeof i=="number"&&(i=i.toString()),i.indexOf(",")>=0&&(i=i.split(",")[0]),i.indexOf(":")>=0&&(i=i.split(":")[0]),i.indexOf("#")>=0&&(i=i.split("#")[1]),i},s=r(t.headers,"x-amzn-errortype");if(s!==void 0)return n(t.headers[s]);if(e&&typeof e=="object"){let o=r(e,"code");if(o&&e[o]!==void 0)return n(e[o]);if(e.__type!==void 0)return n(e.__type)}}});var Soe,Eoe,Vs,yoe,OE,Z2=_(()=>{Soe=require("@smithy/core/protocols"),Eoe=require("@smithy/core/schema"),Vs=require("@smithy/core/serde"),yoe=require("@smithy/util-base64");Wu();J2();goe();DE();OE=class extends xn{settings;constructor(e){super(),this.settings=e}async read(e,r){return this._read(e,typeof r=="string"?JSON.parse(r,moe):await ub(r,this.serdeContext))}readObject(e,r){return this._read(e,r)}_read(e,r){let n=r!==null&&typeof r=="object",s=Eoe.NormalizedSchema.of(e);if(n){if(s.isStructSchema()){let i=r,a=s.isUnionSchema(),c={},u,{jsonName:l}=this.settings;l&&(u={});let d;a&&(d=new eg(i,c));for(let[p,g]of s.structIterator()){let y=p;l&&(y=g.getMergedTraits().jsonName??y,u[y]=p),a&&d.mark(y),i[y]!=null&&(c[p]=this._read(g,i[y]))}if(a)d.writeUnknown();else if(typeof i.__type=="string")for(let[p,g]of Object.entries(i)){let y=l?u[p]??p:p;y in c||(c[y]=g)}return c}if(Array.isArray(r)&&s.isListSchema()){let i=s.getValueSchema(),a=[],c=!!s.getMergedTraits().sparse;for(let u of r)(c||u!=null)&&a.push(this._read(i,u));return a}if(s.isMapSchema()){let i=s.getValueSchema(),a={},c=!!s.getMergedTraits().sparse;for(let[u,l]of Object.entries(r))(c||l!=null)&&(a[u]=this._read(i,l));return a}}if(s.isBlobSchema()&&typeof r=="string")return(0,yoe.fromBase64)(r);let o=s.getMergedTraits().mediaType;if(s.isStringSchema()&&typeof r=="string"&&o)return o==="application/json"||o.endsWith("+json")?Vs.LazyJsonString.from(r):r;if(s.isTimestampSchema()&&r!=null)switch((0,Soe.determineTimestampFormat)(s,this.settings)){case 5:return(0,Vs.parseRfc3339DateTimeWithOffset)(r);case 6:return(0,Vs.parseRfc7231DateTime)(r);case 7:return(0,Vs.parseEpochTimestamp)(r);default:return console.warn("Missing timestamp format, parsing value with Date constructor:",r),new Date(r)}if(s.isBigIntegerSchema()&&(typeof r=="number"||typeof r=="string"))return BigInt(r);if(s.isBigDecimalSchema()&&r!=null){if(r instanceof Vs.NumericValue)return r;let i=r;return i.type==="bigDecimal"&&"string"in i?new Vs.NumericValue(i.string,i.type):new Vs.NumericValue(String(r),"bigDecimal")}if(s.isNumericSchema()&&typeof r=="string"){switch(r){case"Infinity":return 1/0;case"-Infinity":return-1/0;case"NaN":return NaN}return r}if(s.isDocumentSchema())if(n){let i=Array.isArray(r)?[]:{};for(let[a,c]of Object.entries(r))c instanceof Vs.NumericValue?i[a]=c:i[a]=this._read(s,c);return i}else return structuredClone(r);return r}}});var Coe,_oe,lb,Roe=_(()=>{Coe=require("@smithy/core/serde"),_oe="\u039D",lb=class{values=new Map;counter=0;stage=0;createReplacer(){if(this.stage===1)throw new Error("@aws-sdk/core/protocols - JsonReplacer already created.");if(this.stage===2)throw new Error("@aws-sdk/core/protocols - JsonReplacer exhausted.");return this.stage=1,(e,r)=>{if(r instanceof Coe.NumericValue){let n=`${_oe+"nv"+this.counter++}_`+r.string;return this.values.set(`"${n}"`,r.string),n}if(typeof r=="bigint"){let n=r.toString(),s=`${_oe+"b"+this.counter++}_`+n;return this.values.set(`"${s}"`,n),s}return r}}replaceInJson(e){if(this.stage===0)throw new Error("@aws-sdk/core/protocols - JsonReplacer not created yet.");if(this.stage===2)throw new Error("@aws-sdk/core/protocols - JsonReplacer exhausted.");if(this.stage=2,this.counter===0)return e;for(let[r,n]of this.values)e=e.replace(r,n);return e}}});var voe,db,hc,ej,kE,tj=_(()=>{voe=require("@smithy/core/protocols"),db=require("@smithy/core/schema"),hc=require("@smithy/core/serde"),ej=require("@smithy/util-base64");Wu();Roe();kE=class extends xn{settings;buffer;useReplacer=!1;rootSchema;constructor(e){super(),this.settings=e}write(e,r){this.rootSchema=db.NormalizedSchema.of(e),this.buffer=this._write(this.rootSchema,r)}writeDiscriminatedDocument(e,r){this.write(e,r),typeof this.buffer=="object"&&(this.buffer.__type=db.NormalizedSchema.of(e).getName(!0))}flush(){let{rootSchema:e,useReplacer:r}=this;if(this.rootSchema=void 0,this.useReplacer=!1,e?.isStructSchema()||e?.isDocumentSchema()){if(!r)return JSON.stringify(this.buffer);let n=new lb;return n.replaceInJson(JSON.stringify(this.buffer,n.createReplacer(),0))}return this.buffer}_write(e,r,n){let s=r!==null&&typeof r=="object",o=db.NormalizedSchema.of(e);if(s){if(o.isStructSchema()){let i=r,a={},{jsonName:c}=this.settings,u;c&&(u={});for(let[l,d]of o.structIterator()){let p=this._write(d,i[l],o);if(p!==void 0){let g=l;c&&(g=d.getMergedTraits().jsonName??l,u[l]=g),a[g]=p}}if(o.isUnionSchema()&&Object.keys(a).length===0){let{$unknown:l}=i;if(Array.isArray(l)){let[d,p]=l;a[d]=this._write(15,p)}}else if(typeof i.__type=="string")for(let[l,d]of Object.entries(i)){let p=c?u[l]??l:l;p in a||(a[p]=this._write(15,d))}return a}if(Array.isArray(r)&&o.isListSchema()){let i=o.getValueSchema(),a=[],c=!!o.getMergedTraits().sparse;for(let u of r)(c||u!=null)&&a.push(this._write(i,u));return a}if(o.isMapSchema()){let i=o.getValueSchema(),a={},c=!!o.getMergedTraits().sparse;for(let[u,l]of Object.entries(r))(c||l!=null)&&(a[u]=this._write(i,l));return a}if(r instanceof Uint8Array&&(o.isBlobSchema()||o.isDocumentSchema()))return o===this.rootSchema?r:(this.serdeContext?.base64Encoder??ej.toBase64)(r);if(r instanceof Date&&(o.isTimestampSchema()||o.isDocumentSchema()))switch((0,voe.determineTimestampFormat)(o,this.settings)){case 5:return r.toISOString().replace(".000Z","Z");case 6:return(0,hc.dateToUtcString)(r);case 7:return r.getTime()/1e3;default:return console.warn("Missing timestamp format, using epoch seconds",r),r.getTime()/1e3}r instanceof hc.NumericValue&&(this.useReplacer=!0)}if(!(r===null&&n?.isStructSchema())){if(o.isStringSchema()){if(typeof r>"u"&&o.isIdempotencyToken())return(0,hc.generateIdempotencyToken)();let i=o.getMergedTraits().mediaType;return r!=null&&i&&(i==="application/json"||i.endsWith("+json"))?hc.LazyJsonString.from(r):r}if(typeof r=="number"&&o.isNumericSchema())return Math.abs(r)===1/0||isNaN(r)?String(r):r;if(typeof r=="string"&&o.isBlobSchema())return o===this.rootSchema?r:(this.serdeContext?.base64Encoder??ej.toBase64)(r);if(typeof r=="bigint"&&(this.useReplacer=!0),o.isDocumentSchema())if(s){let i=Array.isArray(r)?[]:{};for(let[a,c]of Object.entries(r))c instanceof hc.NumericValue?(this.useReplacer=!0,i[a]=c):i[a]=this._write(o,c);return i}else return structuredClone(r);return r}}}});var Ld,pb=_(()=>{Wu();Z2();tj();Ld=class extends xn{settings;constructor(e){super(),this.settings=e}createSerializer(){let e=new kE(this.settings);return e.setSerdeContext(this.serdeContext),e}createDeserializer(){let e=new OE(this.settings);return e.setSerdeContext(this.serdeContext),e}}});var xoe,tg,Md,mb=_(()=>{xoe=require("@smithy/core/protocols"),tg=require("@smithy/core/schema");Zm();pb();DE();Md=class extends xoe.RpcProtocol{serializer;deserializer;serviceTarget;codec;mixin;awsQueryCompatible;constructor({defaultNamespace:e,serviceTarget:r,awsQueryCompatible:n,jsonCodec:s}){super({defaultNamespace:e}),this.serviceTarget=r,this.codec=s??new Ld({timestampFormat:{useTrait:!0,default:7},jsonName:!1}),this.serializer=this.codec.createSerializer(),this.deserializer=this.codec.createDeserializer(),this.awsQueryCompatible=!!n,this.mixin=new ko(this.awsQueryCompatible)}async serializeRequest(e,r,n){let s=await super.serializeRequest(e,r,n);return s.path.endsWith("/")||(s.path+="/"),Object.assign(s.headers,{"content-type":`application/x-amz-json-${this.getJsonRpcVersion()}`,"x-amz-target":`${this.serviceTarget}.${e.name}`}),this.awsQueryCompatible&&(s.headers["x-amzn-query-mode"]="true"),((0,tg.deref)(e.input)==="unit"||!s.body)&&(s.body="{}"),s}getPayloadCodec(){return this.codec}async handleError(e,r,n,s,o){this.awsQueryCompatible&&this.mixin.setQueryCompatError(s,n);let i=wE(n,s)??"Unknown",{errorSchema:a,errorMetadata:c}=await this.mixin.getErrorSchemaOrThrowBaseException(i,this.options.defaultNamespace,n,s,o,this.awsQueryCompatible?this.mixin.findQueryCompatibleError:void 0),u=tg.NormalizedSchema.of(a),l=s.message??s.Message??"Unknown",d=tg.TypeRegistry.for(a[1]).getErrorCtor(a)??Error,p=new d(l),g={};for(let[y,R]of u.structIterator())s[y]!=null&&(g[y]=this.codec.createDeserializer().readObject(R,s[y]));throw this.awsQueryCompatible&&this.mixin.queryCompatOutput(s,g),this.mixin.decorateServiceException(Object.assign(p,c,{$fault:u.getMergedTraits().error,message:l},g),s)}}});var rj,Poe=_(()=>{mb();rj=class extends Md{constructor({defaultNamespace:e,serviceTarget:r,awsQueryCompatible:n,jsonCodec:s}){super({defaultNamespace:e,serviceTarget:r,awsQueryCompatible:n,jsonCodec:s})}getShapeId(){return"aws.protocols#awsJson1_0"}getJsonRpcVersion(){return"1.0"}getDefaultContentType(){return"application/x-amz-json-1.0"}}});var nj,boe=_(()=>{mb();nj=class extends Md{constructor({defaultNamespace:e,serviceTarget:r,awsQueryCompatible:n,jsonCodec:s}){super({defaultNamespace:e,serviceTarget:r,awsQueryCompatible:n,jsonCodec:s})}getShapeId(){return"aws.protocols#awsJson1_1"}getJsonRpcVersion(){return"1.1"}getDefaultContentType(){return"application/x-amz-json-1.1"}}});var ng,rg,sj,Ioe=_(()=>{ng=require("@smithy/core/protocols"),rg=require("@smithy/core/schema");Zm();pb();DE();sj=class extends ng.HttpBindingProtocol{serializer;deserializer;codec;mixin=new ko;constructor({defaultNamespace:e}){super({defaultNamespace:e});let r={timestampFormat:{useTrait:!0,default:7},httpBindings:!0,jsonName:!0};this.codec=new Ld(r),this.serializer=new ng.HttpInterceptingShapeSerializer(this.codec.createSerializer(),r),this.deserializer=new ng.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(),r)}getShapeId(){return"aws.protocols#restJson1"}getPayloadCodec(){return this.codec}setSerdeContext(e){this.codec.setSerdeContext(e),super.setSerdeContext(e)}async serializeRequest(e,r,n){let s=await super.serializeRequest(e,r,n),o=rg.NormalizedSchema.of(e.input);if(!s.headers["content-type"]){let i=this.mixin.resolveRestContentType(this.getDefaultContentType(),o);i&&(s.headers["content-type"]=i)}return s.body==null&&s.headers["content-type"]===this.getDefaultContentType()&&(s.body="{}"),s}async deserializeResponse(e,r,n){let s=await super.deserializeResponse(e,r,n),o=rg.NormalizedSchema.of(e.output);for(let[i,a]of o.structIterator())a.getMemberTraits().httpPayload&&!(i in s)&&(s[i]=null);return s}async handleError(e,r,n,s,o){let i=wE(n,s)??"Unknown",{errorSchema:a,errorMetadata:c}=await this.mixin.getErrorSchemaOrThrowBaseException(i,this.options.defaultNamespace,n,s,o),u=rg.NormalizedSchema.of(a),l=s.message??s.Message??"Unknown",d=rg.TypeRegistry.for(a[1]).getErrorCtor(a)??Error,p=new d(l);await this.deserializeHttpMessage(a,r,n,s);let g={};for(let[y,R]of u.structIterator()){let D=R.getMergedTraits().jsonName??y;g[y]=this.codec.createDeserializer().readObject(R,s[D])}throw this.mixin.decorateServiceException(Object.assign(p,c,{$fault:u.getMergedTraits().error,message:l},g),s)}getDefaultContentType(){return"application/json"}}});var Aoe,e7e,Toe=_(()=>{Aoe=require("@smithy/smithy-client"),e7e=t=>{if(t!=null)return typeof t=="object"&&"__type"in t&&delete t.__type,(0,Aoe.expectUnion)(t)}});var woe=b(ij=>{"use strict";Object.defineProperty(ij,"__esModule",{value:!0});ij.parseXML=r7e;var t7e=require("fast-xml-parser"),oj=new t7e.XMLParser({attributeNamePrefix:"",htmlEntities:!0,ignoreAttributes:!1,ignoreDeclaration:!0,parseTagValue:!1,trimValues:!1,tagValueProcessor:(t,e)=>e.trim()===""&&e.includes(` +`)?"":void 0});oj.addEntity("#xD","\r");oj.addEntity("#10",` +`);function r7e(t){return oj.parse(t,!0)}});var hb=b(fb=>{"use strict";var n7e=woe();function s7e(t){return t.replace(/&/g,"&").replace(//g,">").replace(/"/g,""")}function o7e(t){return t.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">").replace(/\r/g," ").replace(/\n/g," ").replace(/\u0085/g,"…").replace(/\u2028/,"
")}var gb=class{value;constructor(e){this.value=e}toString(){return o7e(""+this.value)}},aj=class t{name;children;attributes={};static of(e,r,n){let s=new t(e);return r!==void 0&&s.addChildNode(new gb(r)),n!==void 0&&s.withName(n),s}constructor(e,r=[]){this.name=e,this.children=r}withName(e){return this.name=e,this}addAttribute(e,r){return this.attributes[e]=r,this}addChildNode(e){return this.children.push(e),this}removeAttribute(e){return delete this.attributes[e],this}n(e){return this.name=e,this}c(e){return this.children.push(e),this}a(e,r){return r!=null&&(this.attributes[e]=r),this}cc(e,r,n=r){if(e[r]!=null){let s=t.of(r,e[r]).withName(n);this.c(s)}}l(e,r,n,s){e[r]!=null&&s().map(i=>{i.withName(n),this.c(i)})}lc(e,r,n,s){if(e[r]!=null){let o=s(),i=new t(n);o.map(a=>{i.c(a)}),this.c(i)}}toString(){let e=!!this.children.length,r=`<${this.name}`,n=this.attributes;for(let s of Object.keys(n)){let o=n[s];o!=null&&(r+=` ${s}="${s7e(""+o)}"`)}return r+=e?`>${this.children.map(s=>s.toString()).join("")}`:"/>"}};Object.defineProperty(fb,"parseXML",{enumerable:!0,get:function(){return n7e.parseXML}});fb.XmlNode=aj;fb.XmlText=gb});var Doe,Ooe,cj,koe,Noe,Fd,Sb=_(()=>{Doe=O(hb()),Ooe=require("@smithy/core/protocols"),cj=require("@smithy/core/schema"),koe=require("@smithy/smithy-client"),Noe=require("@smithy/util-utf8");Wu();J2();Fd=class extends xn{settings;stringDeserializer;constructor(e){super(),this.settings=e,this.stringDeserializer=new Ooe.FromStringShapeDeserializer(e)}setSerdeContext(e){this.serdeContext=e,this.stringDeserializer.setSerdeContext(e)}read(e,r,n){let s=cj.NormalizedSchema.of(e),o=s.getMemberSchemas();if(s.isStructSchema()&&s.isMemberSchema()&&!!Object.values(o).find(u=>!!u.getMemberTraits().eventPayload)){let u={},l=Object.keys(o)[0];return o[l].isBlobSchema()?u[l]=r:u[l]=this.read(o[l],r),u}let a=(this.serdeContext?.utf8Encoder??Noe.toUtf8)(r),c=this.parseXml(a);return this.readSchema(e,n?c[n]:c)}readSchema(e,r){let n=cj.NormalizedSchema.of(e);if(n.isUnitSchema())return;let s=n.getMergedTraits();if(n.isListSchema()&&!Array.isArray(r))return this.readSchema(n,[r]);if(r==null)return r;if(typeof r=="object"){let o=!!s.sparse,i=!!s.xmlFlattened;if(n.isListSchema()){let c=n.getValueSchema(),u=[],l=c.getMergedTraits().xmlName??"member",d=i?r:(r[0]??r)[l],p=Array.isArray(d)?d:[d];for(let g of p)(g!=null||o)&&u.push(this.readSchema(c,g));return u}let a={};if(n.isMapSchema()){let c=n.getKeySchema(),u=n.getValueSchema(),l;i?l=Array.isArray(r)?r:[r]:l=Array.isArray(r.entry)?r.entry:[r.entry];let d=c.getMergedTraits().xmlName??"key",p=u.getMergedTraits().xmlName??"value";for(let g of l){let y=g[d],R=g[p];(R!=null||o)&&(a[y]=this.readSchema(u,R))}return a}if(n.isStructSchema()){let c=n.isUnionSchema(),u;c&&(u=new eg(r,a));for(let[l,d]of n.structIterator()){let p=d.getMergedTraits(),g=p.httpPayload?p.xmlName??d.getName():d.getMemberTraits().xmlName??l;c&&u.mark(g),r[g]!=null&&(a[l]=this.readSchema(d,r[g]))}return c&&u.writeUnknown(),a}if(n.isDocumentSchema())return r;throw new Error(`@aws-sdk/core/protocols - xml deserializer unhandled schema type for ${n.getName(!0)}`)}return n.isListSchema()?[]:n.isMapSchema()||n.isStructSchema()?{}:this.stringDeserializer.read(n,r)}parseXml(e){if(e.length){let r;try{r=(0,Doe.parseXML)(e)}catch(i){throw i&&typeof i=="object"&&Object.defineProperty(i,"$responseBodyText",{value:e}),i}let n="#text",s=Object.keys(r)[0],o=r[s];return o[n]&&(o[s]=o[n],delete o[n]),(0,koe.getValueFromTextNode)(o)}return{}}}});var NE,Loe,yb,Moe,Foe,Eb,Boe=_(()=>{NE=require("@smithy/core/protocols"),Loe=require("@smithy/core/schema"),yb=require("@smithy/core/serde"),Moe=require("@smithy/smithy-client"),Foe=require("@smithy/util-base64");Wu();Eb=class extends xn{settings;buffer;constructor(e){super(),this.settings=e}write(e,r,n=""){this.buffer===void 0&&(this.buffer="");let s=Loe.NormalizedSchema.of(e);if(n&&!n.endsWith(".")&&(n+="."),s.isBlobSchema())(typeof r=="string"||r instanceof Uint8Array)&&(this.writeKey(n),this.writeValue((this.serdeContext?.base64Encoder??Foe.toBase64)(r)));else if(s.isBooleanSchema()||s.isNumericSchema()||s.isStringSchema())r!=null?(this.writeKey(n),this.writeValue(String(r))):s.isIdempotencyToken()&&(this.writeKey(n),this.writeValue((0,yb.generateIdempotencyToken)()));else if(s.isBigIntegerSchema())r!=null&&(this.writeKey(n),this.writeValue(String(r)));else if(s.isBigDecimalSchema())r!=null&&(this.writeKey(n),this.writeValue(r instanceof yb.NumericValue?r.string:String(r)));else if(s.isTimestampSchema()){if(r instanceof Date)switch(this.writeKey(n),(0,NE.determineTimestampFormat)(s,this.settings)){case 5:this.writeValue(r.toISOString().replace(".000Z","Z"));break;case 6:this.writeValue((0,Moe.dateToUtcString)(r));break;case 7:this.writeValue(String(r.getTime()/1e3));break}}else if(s.isDocumentSchema())Array.isArray(r)?this.write(79,r,n):r instanceof Date?this.write(4,r,n):r instanceof Uint8Array?this.write(21,r,n):r&&typeof r=="object"?this.write(143,r,n):(this.writeKey(n),this.writeValue(String(r)));else if(s.isListSchema()){if(Array.isArray(r))if(r.length===0)this.settings.serializeEmptyLists&&(this.writeKey(n),this.writeValue(""));else{let o=s.getValueSchema(),i=this.settings.flattenLists||s.getMergedTraits().xmlFlattened,a=1;for(let c of r){if(c==null)continue;let u=o.getMergedTraits(),l=this.getKey("member",u.xmlName,u.ec2QueryName),d=i?`${n}${a}`:`${n}${l}.${a}`;this.write(o,c,d),++a}}}else if(s.isMapSchema()){if(r&&typeof r=="object"){let o=s.getKeySchema(),i=s.getValueSchema(),a=s.getMergedTraits().xmlFlattened,c=1;for(let[u,l]of Object.entries(r)){if(l==null)continue;let d=o.getMergedTraits(),p=this.getKey("key",d.xmlName,d.ec2QueryName),g=a?`${n}${c}.${p}`:`${n}entry.${c}.${p}`,y=i.getMergedTraits(),R=this.getKey("value",y.xmlName,y.ec2QueryName),D=a?`${n}${c}.${R}`:`${n}entry.${c}.${R}`;this.write(o,u,g),this.write(i,l,D),++c}}}else if(s.isStructSchema()){if(r&&typeof r=="object"){let o=!1;for(let[i,a]of s.structIterator()){if(r[i]==null&&!a.isIdempotencyToken())continue;let c=a.getMergedTraits(),u=this.getKey(i,c.xmlName,c.ec2QueryName,"struct"),l=`${n}${u}`;this.write(a,r[i],l),o=!0}if(!o&&s.isUnionSchema()){let{$unknown:i}=r;if(Array.isArray(i)){let[a,c]=i,u=`${n}${a}`;this.write(15,c,u)}}}}else if(!s.isUnitSchema())throw new Error(`@aws-sdk/core/protocols - QuerySerializer unrecognized schema type ${s.getName(!0)}`)}flush(){if(this.buffer===void 0)throw new Error("@aws-sdk/core/protocols - QuerySerializer cannot flush with nothing written to buffer.");let e=this.buffer;return delete this.buffer,e}getKey(e,r,n,s){let{ec2:o,capitalizeKeys:i}=this.settings;if(o&&n)return n;let a=r??e;return i&&s==="struct"?a[0].toUpperCase()+a.slice(1):a}writeKey(e){e.endsWith(".")&&(e=e.slice(0,e.length-1)),this.buffer+=`&${(0,NE.extendedEncodeURIComponent)(e)}=`}writeValue(e){this.buffer+=(0,NE.extendedEncodeURIComponent)(e)}}});var LE,Bd,ME,uj=_(()=>{LE=require("@smithy/core/protocols"),Bd=require("@smithy/core/schema");Zm();Sb();Boe();ME=class extends LE.RpcProtocol{options;serializer;deserializer;mixin=new ko;constructor(e){super({defaultNamespace:e.defaultNamespace}),this.options=e;let r={timestampFormat:{useTrait:!0,default:5},httpBindings:!1,xmlNamespace:e.xmlNamespace,serviceNamespace:e.defaultNamespace,serializeEmptyLists:!0};this.serializer=new Eb(r),this.deserializer=new Fd(r)}getShapeId(){return"aws.protocols#awsQuery"}setSerdeContext(e){this.serializer.setSerdeContext(e),this.deserializer.setSerdeContext(e)}getPayloadCodec(){throw new Error("AWSQuery protocol has no payload codec.")}async serializeRequest(e,r,n){let s=await super.serializeRequest(e,r,n);s.path.endsWith("/")||(s.path+="/"),Object.assign(s.headers,{"content-type":"application/x-www-form-urlencoded"}),((0,Bd.deref)(e.input)==="unit"||!s.body)&&(s.body="");let o=e.name.split("#")[1]??e.name;return s.body=`Action=${o}&Version=${this.options.version}`+s.body,s.body.endsWith("&")&&(s.body=s.body.slice(-1)),s}async deserializeResponse(e,r,n){let s=this.deserializer,o=Bd.NormalizedSchema.of(e.output),i={};if(n.statusCode>=300){let d=await(0,LE.collectBody)(n.body,r);d.byteLength>0&&Object.assign(i,await s.read(15,d)),await this.handleError(e,r,n,i,this.deserializeMetadata(n))}for(let d in n.headers){let p=n.headers[d];delete n.headers[d],n.headers[d.toLowerCase()]=p}let a=e.name.split("#")[1]??e.name,c=o.isStructSchema()&&this.useNestedResult()?a+"Result":void 0,u=await(0,LE.collectBody)(n.body,r);return u.byteLength>0&&Object.assign(i,await s.read(o,u,c)),{$metadata:this.deserializeMetadata(n),...i}}useNestedResult(){return!0}async handleError(e,r,n,s,o){let i=this.loadQueryErrorCode(n,s)??"Unknown",a=this.loadQueryError(s)??{},c=this.loadQueryErrorMessage(s);a.message=c,a.Error={Type:a.Type,Code:a.Code,Message:c};let{errorSchema:u,errorMetadata:l}=await this.mixin.getErrorSchemaOrThrowBaseException(i,this.options.defaultNamespace,n,a,o,this.mixin.findQueryCompatibleError),d=Bd.NormalizedSchema.of(u),p=Bd.TypeRegistry.for(u[1]).getErrorCtor(u)??Error,g=new p(c),y={Type:a.Error.Type,Code:a.Error.Code,Error:a.Error};for(let[R,D]of d.structIterator()){let B=D.getMergedTraits().xmlName??R,M=a[B]??s[B];y[R]=this.deserializer.readSchema(D,M)}throw this.mixin.decorateServiceException(Object.assign(g,l,{$fault:d.getMergedTraits().error,message:c},y),s)}loadQueryErrorCode(e,r){let n=(r.Errors?.[0]?.Error??r.Errors?.Error??r.Error)?.Code;if(n!==void 0)return n;if(e.statusCode==404)return"NotFound"}loadQueryError(e){return e.Errors?.[0]?.Error??e.Errors?.Error??e.Error}loadQueryErrorMessage(e){let r=this.loadQueryError(e);return r?.message??r?.Message??e.message??e.Message??"Unknown"}getDefaultContentType(){return"application/x-www-form-urlencoded"}}});var lj,Uoe=_(()=>{uj();lj=class extends ME{options;constructor(e){super(e),this.options=e;let r={capitalizeKeys:!0,flattenLists:!0,serializeEmptyLists:!1,ec2:!0};Object.assign(this.serializer.settings,r)}useNestedResult(){return!1}}});var qoe,$oe,Goe,i7e,dj,pj=_(()=>{qoe=O(hb()),$oe=require("@smithy/smithy-client");Y2();Goe=(t,e)=>cb(t,e).then(r=>{if(r.length){let n;try{n=(0,qoe.parseXML)(r)}catch(a){throw a&&typeof a=="object"&&Object.defineProperty(a,"$responseBodyText",{value:r}),a}let s="#text",o=Object.keys(n)[0],i=n[o];return i[s]&&(i[o]=i[s],delete i[s]),(0,$oe.getValueFromTextNode)(i)}return{}}),i7e=async(t,e)=>{let r=await Goe(t,e);return r.Error&&(r.Error.message=r.Error.message??r.Error.Message),r},dj=(t,e)=>{if(e?.Error?.Code!==void 0)return e.Error.Code;if(e?.Code!==void 0)return e.Code;if(t.statusCode==404)return"NotFound"}});var Kn,joe,_b,Cb,mj,Rb,FE,gj=_(()=>{Kn=O(hb()),joe=require("@smithy/core/protocols"),_b=require("@smithy/core/schema"),Cb=require("@smithy/core/serde"),mj=require("@smithy/smithy-client"),Rb=require("@smithy/util-base64");Wu();FE=class extends xn{settings;stringBuffer;byteBuffer;buffer;constructor(e){super(),this.settings=e}write(e,r){let n=_b.NormalizedSchema.of(e);if(n.isStringSchema()&&typeof r=="string")this.stringBuffer=r;else if(n.isBlobSchema())this.byteBuffer="byteLength"in r?r:(this.serdeContext?.base64Decoder??Rb.fromBase64)(r);else{this.buffer=this.writeStruct(n,r,void 0);let s=n.getMergedTraits();s.httpPayload&&!s.xmlName&&this.buffer.withName(n.getName())}}flush(){if(this.byteBuffer!==void 0){let r=this.byteBuffer;return delete this.byteBuffer,r}if(this.stringBuffer!==void 0){let r=this.stringBuffer;return delete this.stringBuffer,r}let e=this.buffer;return this.settings.xmlNamespace&&(e?.attributes?.xmlns||e.addAttribute("xmlns",this.settings.xmlNamespace)),delete this.buffer,e.toString()}writeStruct(e,r,n){let s=e.getMergedTraits(),o=e.isMemberSchema()&&!s.httpPayload?e.getMemberTraits().xmlName??e.getMemberName():s.xmlName??e.getName();if(!o||!e.isStructSchema())throw new Error(`@aws-sdk/core/protocols - xml serializer, cannot write struct with empty name or non-struct, schema=${e.getName(!0)}.`);let i=Kn.XmlNode.of(o),[a,c]=this.getXmlnsAttribute(e,n);for(let[l,d]of e.structIterator()){let p=r[l];if(p!=null||d.isIdempotencyToken()){if(d.getMergedTraits().xmlAttribute){i.addAttribute(d.getMergedTraits().xmlName??l,this.writeSimple(d,p));continue}if(d.isListSchema())this.writeList(d,p,i,c);else if(d.isMapSchema())this.writeMap(d,p,i,c);else if(d.isStructSchema())i.addChildNode(this.writeStruct(d,p,c));else{let g=Kn.XmlNode.of(d.getMergedTraits().xmlName??d.getMemberName());this.writeSimpleInto(d,p,g,c),i.addChildNode(g)}}}let{$unknown:u}=r;if(u&&e.isUnionSchema()&&Array.isArray(u)&&Object.keys(r).length===1){let[l,d]=u,p=Kn.XmlNode.of(l);if(typeof d!="string")if(r instanceof Kn.XmlNode||r instanceof Kn.XmlText)i.addChildNode(r);else throw new Error("@aws-sdk - $unknown union member in XML requires value of type string, @aws-sdk/xml-builder::XmlNode or XmlText.");this.writeSimpleInto(0,d,p,c),i.addChildNode(p)}return c&&i.addAttribute(a,c),i}writeList(e,r,n,s){if(!e.isMemberSchema())throw new Error(`@aws-sdk/core/protocols - xml serializer, cannot write non-member list: ${e.getName(!0)}`);let o=e.getMergedTraits(),i=e.getValueSchema(),a=i.getMergedTraits(),c=!!a.sparse,u=!!o.xmlFlattened,[l,d]=this.getXmlnsAttribute(e,s),p=(g,y)=>{if(i.isListSchema())this.writeList(i,Array.isArray(y)?y:[y],g,d);else if(i.isMapSchema())this.writeMap(i,y,g,d);else if(i.isStructSchema()){let R=this.writeStruct(i,y,d);g.addChildNode(R.withName(u?o.xmlName??e.getMemberName():a.xmlName??"member"))}else{let R=Kn.XmlNode.of(u?o.xmlName??e.getMemberName():a.xmlName??"member");this.writeSimpleInto(i,y,R,d),g.addChildNode(R)}};if(u)for(let g of r)(c||g!=null)&&p(n,g);else{let g=Kn.XmlNode.of(o.xmlName??e.getMemberName());d&&g.addAttribute(l,d);for(let y of r)(c||y!=null)&&p(g,y);n.addChildNode(g)}}writeMap(e,r,n,s,o=!1){if(!e.isMemberSchema())throw new Error(`@aws-sdk/core/protocols - xml serializer, cannot write non-member map: ${e.getName(!0)}`);let i=e.getMergedTraits(),a=e.getKeySchema(),u=a.getMergedTraits().xmlName??"key",l=e.getValueSchema(),d=l.getMergedTraits(),p=d.xmlName??"value",g=!!d.sparse,y=!!i.xmlFlattened,[R,D]=this.getXmlnsAttribute(e,s),B=(M,ge,Y)=>{let Te=Kn.XmlNode.of(u,ge),[Ht,Tt]=this.getXmlnsAttribute(a,D);Tt&&Te.addAttribute(Ht,Tt),M.addChildNode(Te);let Ne=Kn.XmlNode.of(p);l.isListSchema()?this.writeList(l,Y,Ne,D):l.isMapSchema()?this.writeMap(l,Y,Ne,D,!0):l.isStructSchema()?Ne=this.writeStruct(l,Y,D):this.writeSimpleInto(l,Y,Ne,D),M.addChildNode(Ne)};if(y){for(let[M,ge]of Object.entries(r))if(g||ge!=null){let Y=Kn.XmlNode.of(i.xmlName??e.getMemberName());B(Y,M,ge),n.addChildNode(Y)}}else{let M;o||(M=Kn.XmlNode.of(i.xmlName??e.getMemberName()),D&&M.addAttribute(R,D),n.addChildNode(M));for(let[ge,Y]of Object.entries(r))if(g||Y!=null){let Te=Kn.XmlNode.of("entry");B(Te,ge,Y),(o?n:M).addChildNode(Te)}}}writeSimple(e,r){if(r===null)throw new Error("@aws-sdk/core/protocols - (XML serializer) cannot write null value.");let n=_b.NormalizedSchema.of(e),s=null;if(r&&typeof r=="object")if(n.isBlobSchema())s=(this.serdeContext?.base64Encoder??Rb.toBase64)(r);else if(n.isTimestampSchema()&&r instanceof Date)switch((0,joe.determineTimestampFormat)(n,this.settings)){case 5:s=r.toISOString().replace(".000Z","Z");break;case 6:s=(0,mj.dateToUtcString)(r);break;case 7:s=String(r.getTime()/1e3);break;default:console.warn("Missing timestamp format, using http date",r),s=(0,mj.dateToUtcString)(r);break}else{if(n.isBigDecimalSchema()&&r)return r instanceof Cb.NumericValue?r.string:String(r);throw n.isMapSchema()||n.isListSchema()?new Error("@aws-sdk/core/protocols - xml serializer, cannot call _write() on List/Map schema, call writeList or writeMap() instead."):new Error(`@aws-sdk/core/protocols - xml serializer, unhandled schema type for object value and schema: ${n.getName(!0)}`)}if((n.isBooleanSchema()||n.isNumericSchema()||n.isBigIntegerSchema()||n.isBigDecimalSchema())&&(s=String(r)),n.isStringSchema()&&(r===void 0&&n.isIdempotencyToken()?s=(0,Cb.generateIdempotencyToken)():s=String(r)),s===null)throw new Error(`Unhandled schema-value pair ${n.getName(!0)}=${r}`);return s}writeSimpleInto(e,r,n,s){let o=this.writeSimple(e,r),i=_b.NormalizedSchema.of(e),a=new Kn.XmlText(o),[c,u]=this.getXmlnsAttribute(i,s);u&&n.addAttribute(c,u),n.addChildNode(a)}getXmlnsAttribute(e,r){let n=e.getMergedTraits(),[s,o]=n.xmlNamespace??[];return o&&o!==r?[s?`xmlns:${s}`:"xmlns",o]:[void 0,void 0]}}});var BE,fj=_(()=>{Wu();Sb();gj();BE=class extends xn{settings;constructor(e){super(),this.settings=e}createSerializer(){let e=new FE(this.settings);return e.setSerdeContext(this.serdeContext),e}createDeserializer(){let e=new Fd(this.settings);return e.setSerdeContext(this.serdeContext),e}}});var sg,UE,hj,Voe=_(()=>{sg=require("@smithy/core/protocols"),UE=require("@smithy/core/schema");Zm();pj();fj();hj=class extends sg.HttpBindingProtocol{codec;serializer;deserializer;mixin=new ko;constructor(e){super(e);let r={timestampFormat:{useTrait:!0,default:5},httpBindings:!0,xmlNamespace:e.xmlNamespace,serviceNamespace:e.defaultNamespace};this.codec=new BE(r),this.serializer=new sg.HttpInterceptingShapeSerializer(this.codec.createSerializer(),r),this.deserializer=new sg.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(),r)}getPayloadCodec(){return this.codec}getShapeId(){return"aws.protocols#restXml"}async serializeRequest(e,r,n){let s=await super.serializeRequest(e,r,n),o=UE.NormalizedSchema.of(e.input);if(!s.headers["content-type"]){let i=this.mixin.resolveRestContentType(this.getDefaultContentType(),o);i&&(s.headers["content-type"]=i)}return typeof s.body=="string"&&s.headers["content-type"]===this.getDefaultContentType()&&!s.body.startsWith("'+s.body),s}async deserializeResponse(e,r,n){return super.deserializeResponse(e,r,n)}async handleError(e,r,n,s,o){let i=dj(n,s)??"Unknown";if(s.Error&&typeof s.Error=="object")for(let y of Object.keys(s.Error))s[y]=s.Error[y],y.toLowerCase()==="message"&&(s.message=s.Error[y]);s.RequestId&&!o.requestId&&(o.requestId=s.RequestId);let{errorSchema:a,errorMetadata:c}=await this.mixin.getErrorSchemaOrThrowBaseException(i,this.options.defaultNamespace,n,s,o),u=UE.NormalizedSchema.of(a),l=s.Error?.message??s.Error?.Message??s.message??s.Message??"Unknown",d=UE.TypeRegistry.for(a[1]).getErrorCtor(a)??Error,p=new d(l);await this.deserializeHttpMessage(a,r,n,s);let g={};for(let[y,R]of u.structIterator()){let D=R.getMergedTraits().xmlName??y,B=s.Error?.[D]??s[D];g[y]=this.codec.createDeserializer().readSchema(R,B)}throw this.mixin.decorateServiceException(Object.assign(p,c,{$fault:u.getMergedTraits().error,message:l},g),s)}getDefaultContentType(){return"application/xml"}hasUnstructuredPayloadBinding(e){for(let[,r]of e.structIterator())if(r.getMergedTraits().httpPayload)return!(r.isStructSchema()||r.isMapSchema()||r.isListSchema());return!1}}});var Hoe={};wt(Hoe,{AwsEc2QueryProtocol:()=>lj,AwsJson1_0Protocol:()=>rj,AwsJson1_1Protocol:()=>nj,AwsJsonRpcProtocol:()=>Md,AwsQueryProtocol:()=>ME,AwsRestJsonProtocol:()=>sj,AwsRestXmlProtocol:()=>hj,AwsSmithyRpcV2CborProtocol:()=>X2,JsonCodec:()=>Ld,JsonShapeDeserializer:()=>OE,JsonShapeSerializer:()=>kE,XmlCodec:()=>BE,XmlShapeDeserializer:()=>Fd,XmlShapeSerializer:()=>FE,_toBool:()=>JYe,_toNum:()=>YYe,_toStr:()=>XYe,awsExpectUnion:()=>e7e,loadRestJsonErrorCode:()=>wE,loadRestXmlErrorCode:()=>dj,parseJsonBody:()=>ub,parseJsonErrorBody:()=>ZYe,parseXmlBody:()=>Goe,parseXmlErrorBody:()=>i7e});var zoe=_(()=>{loe();doe();Poe();boe();mb();Ioe();pb();Z2();tj();Toe();DE();Uoe();uj();Voe();fj();Sb();gj();pj()});var Yoe=b(Joe=>{"use strict";var _j=(zoe(),ue(Hoe)),Woe=require("@smithy/core/schema"),Koe=require("@smithy/smithy-client"),Qoe=require("@smithy/util-base64"),Sj=class extends _j.JsonCodec{constructor(){super({timestampFormat:{useTrait:!0,default:7},jsonName:!1})}createSerializer(){let e=new Ej(this.settings);return e.setSerdeContext(this.serdeContext),e}createDeserializer(){let e=new yj(this.settings);return e.setSerdeContext(this.serdeContext),e}},Xoe="com.amazonaws.dynamodb#AttributeValue",Ej=class extends _j.JsonShapeSerializer{_write(e,r,n){let s=Woe.NormalizedSchema.of(e);if(s.isStructSchema()&&s.getName(!0)===Xoe&&r&&typeof r=="object"){let o=r,i=Koe._json(o),a=this.serdeContext?.base64Encoder??Qoe.toBase64;if(o.B instanceof Uint8Array&&(i.B=a(o.B)),Array.isArray(o.BS)&&(i.BS=o.BS.map(a)),Array.isArray(o.L)&&(i.L=o.L.filter(c=>c!=null).map(c=>this._write(s,c,n))),o.M&&typeof o.M=="object"){i.M={};for(let[c,u]of Object.entries(o.M))u!=null&&(i.M[c]=this._write(s,u,n))}return i}return super._write(s,r,n)}},yj=class extends _j.JsonShapeDeserializer{_read(e,r){let n=Woe.NormalizedSchema.of(e);if(n.isStructSchema()&&n.getName(!0)===Xoe&&r&&typeof r=="object"){let s=r,o=Koe._json(s),i=this.serdeContext?.base64Decoder??Qoe.fromBase64;if(typeof s.B=="string"&&(o.B=i(s.B)),Array.isArray(s.BS)&&(o.BS=s.BS.map(i)),Array.isArray(s.L)&&(o.L=s.L.map(a=>this._read(n,a))),s.M&&typeof s.M=="object"){o.M={};for(let[a,c]of Object.entries(s.M))o.M[a]=this._read(n,c)}return o}return super._read(n,r)}};Joe.DynamoDBJsonCodec=Sj});var cie=b(bi=>{"use strict";var og=require("@smithy/util-endpoints"),a7e=require("@smithy/url-parser"),eie=(t,e=!1)=>{if(e){for(let r of t.split("."))if(!eie(r))return!1;return!0}return!(!og.isValidHostLabel(t)||t.length<3||t.length>63||t!==t.toLowerCase()||og.isIpAddress(t))},Zoe=":",c7e="/",u7e=t=>{let e=t.split(Zoe);if(e.length<6)return null;let[r,n,s,o,i,...a]=e;if(r!=="arn"||n===""||s===""||a.join(Zoe)==="")return null;let c=a.map(u=>u.split(c7e)).flat();return{partition:n,service:s,region:o,accountId:i,resourceId:c}},l7e=[{id:"aws",outputs:{dnsSuffix:"amazonaws.com",dualStackDnsSuffix:"api.aws",implicitGlobalRegion:"us-east-1",name:"aws",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^(us|eu|ap|sa|ca|me|af|il|mx)\\-\\w+\\-\\d+$",regions:{"af-south-1":{description:"Africa (Cape Town)"},"ap-east-1":{description:"Asia Pacific (Hong Kong)"},"ap-east-2":{description:"Asia Pacific (Taipei)"},"ap-northeast-1":{description:"Asia Pacific (Tokyo)"},"ap-northeast-2":{description:"Asia Pacific (Seoul)"},"ap-northeast-3":{description:"Asia Pacific (Osaka)"},"ap-south-1":{description:"Asia Pacific (Mumbai)"},"ap-south-2":{description:"Asia Pacific (Hyderabad)"},"ap-southeast-1":{description:"Asia Pacific (Singapore)"},"ap-southeast-2":{description:"Asia Pacific (Sydney)"},"ap-southeast-3":{description:"Asia Pacific (Jakarta)"},"ap-southeast-4":{description:"Asia Pacific (Melbourne)"},"ap-southeast-5":{description:"Asia Pacific (Malaysia)"},"ap-southeast-6":{description:"Asia Pacific (New Zealand)"},"ap-southeast-7":{description:"Asia Pacific (Thailand)"},"aws-global":{description:"aws global region"},"ca-central-1":{description:"Canada (Central)"},"ca-west-1":{description:"Canada West (Calgary)"},"eu-central-1":{description:"Europe (Frankfurt)"},"eu-central-2":{description:"Europe (Zurich)"},"eu-north-1":{description:"Europe (Stockholm)"},"eu-south-1":{description:"Europe (Milan)"},"eu-south-2":{description:"Europe (Spain)"},"eu-west-1":{description:"Europe (Ireland)"},"eu-west-2":{description:"Europe (London)"},"eu-west-3":{description:"Europe (Paris)"},"il-central-1":{description:"Israel (Tel Aviv)"},"me-central-1":{description:"Middle East (UAE)"},"me-south-1":{description:"Middle East (Bahrain)"},"mx-central-1":{description:"Mexico (Central)"},"sa-east-1":{description:"South America (Sao Paulo)"},"us-east-1":{description:"US East (N. Virginia)"},"us-east-2":{description:"US East (Ohio)"},"us-west-1":{description:"US West (N. California)"},"us-west-2":{description:"US West (Oregon)"}}},{id:"aws-cn",outputs:{dnsSuffix:"amazonaws.com.cn",dualStackDnsSuffix:"api.amazonwebservices.com.cn",implicitGlobalRegion:"cn-northwest-1",name:"aws-cn",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^cn\\-\\w+\\-\\d+$",regions:{"aws-cn-global":{description:"aws-cn global region"},"cn-north-1":{description:"China (Beijing)"},"cn-northwest-1":{description:"China (Ningxia)"}}},{id:"aws-eusc",outputs:{dnsSuffix:"amazonaws.eu",dualStackDnsSuffix:"api.amazonwebservices.eu",implicitGlobalRegion:"eusc-de-east-1",name:"aws-eusc",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^eusc\\-(de)\\-\\w+\\-\\d+$",regions:{"eusc-de-east-1":{description:"AWS European Sovereign Cloud (Germany)"}}},{id:"aws-iso",outputs:{dnsSuffix:"c2s.ic.gov",dualStackDnsSuffix:"api.aws.ic.gov",implicitGlobalRegion:"us-iso-east-1",name:"aws-iso",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^us\\-iso\\-\\w+\\-\\d+$",regions:{"aws-iso-global":{description:"aws-iso global region"},"us-iso-east-1":{description:"US ISO East"},"us-iso-west-1":{description:"US ISO WEST"}}},{id:"aws-iso-b",outputs:{dnsSuffix:"sc2s.sgov.gov",dualStackDnsSuffix:"api.aws.scloud",implicitGlobalRegion:"us-isob-east-1",name:"aws-iso-b",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^us\\-isob\\-\\w+\\-\\d+$",regions:{"aws-iso-b-global":{description:"aws-iso-b global region"},"us-isob-east-1":{description:"US ISOB East (Ohio)"},"us-isob-west-1":{description:"US ISOB West"}}},{id:"aws-iso-e",outputs:{dnsSuffix:"cloud.adc-e.uk",dualStackDnsSuffix:"api.cloud-aws.adc-e.uk",implicitGlobalRegion:"eu-isoe-west-1",name:"aws-iso-e",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^eu\\-isoe\\-\\w+\\-\\d+$",regions:{"aws-iso-e-global":{description:"aws-iso-e global region"},"eu-isoe-west-1":{description:"EU ISOE West"}}},{id:"aws-iso-f",outputs:{dnsSuffix:"csp.hci.ic.gov",dualStackDnsSuffix:"api.aws.hci.ic.gov",implicitGlobalRegion:"us-isof-south-1",name:"aws-iso-f",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^us\\-isof\\-\\w+\\-\\d+$",regions:{"aws-iso-f-global":{description:"aws-iso-f global region"},"us-isof-east-1":{description:"US ISOF EAST"},"us-isof-south-1":{description:"US ISOF SOUTH"}}},{id:"aws-us-gov",outputs:{dnsSuffix:"amazonaws.com",dualStackDnsSuffix:"api.aws",implicitGlobalRegion:"us-gov-west-1",name:"aws-us-gov",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^us\\-gov\\-\\w+\\-\\d+$",regions:{"aws-us-gov-global":{description:"aws-us-gov global region"},"us-gov-east-1":{description:"AWS GovCloud (US-East)"},"us-gov-west-1":{description:"AWS GovCloud (US-West)"}}}],d7e="1.1",tie={partitions:l7e,version:d7e},rie=tie,nie="",sie=t=>{let{partitions:e}=rie;for(let n of e){let{regions:s,outputs:o}=n;for(let[i,a]of Object.entries(s))if(i===t)return{...o,...a}}for(let n of e){let{regionRegex:s,outputs:o}=n;if(new RegExp(s).test(t))return{...o}}let r=e.find(n=>n.id==="aws");if(!r)throw new Error("Provided region was not found in the partition array or regex, and default partition with id 'aws' doesn't exist.");return{...r.outputs}},oie=(t,e="")=>{rie=t,nie=e},p7e=()=>{oie(tie,"")},m7e=()=>nie,iie={isVirtualHostableS3Bucket:eie,parseArn:u7e,partition:sie};og.customEndpointFunctions.aws=iie;var g7e=t=>{if(typeof t.endpointProvider!="function")throw new Error("@aws-sdk/util-endpoint - endpointProvider and endpoint missing in config for this client.");let{endpoint:e}=t;return e===void 0&&(t.endpoint=async()=>aie(t.endpointProvider({Region:typeof t.region=="function"?await t.region():t.region,UseDualStack:typeof t.useDualstackEndpoint=="function"?await t.useDualstackEndpoint():t.useDualstackEndpoint,UseFIPS:typeof t.useFipsEndpoint=="function"?await t.useFipsEndpoint():t.useFipsEndpoint,Endpoint:void 0},{logger:t.logger}))),t},aie=t=>a7e.parseUrl(t.url);Object.defineProperty(bi,"EndpointError",{enumerable:!0,get:function(){return og.EndpointError}});Object.defineProperty(bi,"isIpAddress",{enumerable:!0,get:function(){return og.isIpAddress}});Object.defineProperty(bi,"resolveEndpoint",{enumerable:!0,get:function(){return og.resolveEndpoint}});bi.awsEndpointFunctions=iie;bi.getUserAgentPrefix=m7e;bi.partition=sie;bi.resolveDefaultAwsRegionalEndpointsConfig=g7e;bi.setPartitionInfo=oie;bi.toEndpointV1=aie;bi.useDefaultPartitionInfo=p7e});var kie=b(xb=>{"use strict";Object.defineProperty(xb,"__esModule",{value:!0});xb.ruleSet=void 0;var vj="required",ve="type",Sr="rules",xt="conditions",fe="fn",he="argv",Ye="ref",vb="assign",ya="url",_a="properties",Ca="headers",wie="metricValues",f7e=!1,Er="error",Pn="stringEquals",uie="https://dynamodb.{Region}.{PartitionResult#dualStackDnsSuffix}",ps="endpoint",Ir="tree",xj="dynamodb",qE={[vj]:!1,[ve]:"string"},lie={[vj]:!0,default:!1,[ve]:"boolean"},die={[fe]:"isSet",[he]:[{[Ye]:"Endpoint"}]},h7e={[Ye]:"Endpoint"},pie={[fe]:"isSet",[he]:[{[Ye]:"Region"}]},Die={[Ye]:"Region"},mie={[fe]:"aws.partition",[he]:[Die],[vb]:"PartitionResult"},gie={[xt]:[{[fe]:"booleanEquals",[he]:[{[Ye]:"UseFIPS"},!0]}],[Er]:"Invalid Configuration: FIPS and custom endpoint are not supported",[ve]:Er},ig={[fe]:"booleanEquals",[he]:[{[Ye]:"UseFIPS"},!0]},fie={[xt]:[{[fe]:"booleanEquals",[he]:[{[Ye]:"UseDualStack"},!0]}],[Er]:"Invalid Configuration: Dualstack and custom endpoint are not supported",[ve]:Er},Oie={[fe]:"booleanEquals",[he]:[{[Ye]:"UseDualStack"},!0]},hie={[ps]:{[ya]:"{Endpoint}",[_a]:{},[Ca]:{}},[ve]:ps},Sc={},Sie={[fe]:"booleanEquals",[he]:[{[fe]:"getAttr",[he]:[{[Ye]:"PartitionResult"},"supportsFIPS"]},!0]},Eie={[fe]:"booleanEquals",[he]:[{[fe]:"getAttr",[he]:[{[Ye]:"PartitionResult"},"supportsDualStack"]},!0]},Cj={[xt]:[{[fe]:"isSet",[he]:[{[Ye]:"AccountIdEndpointMode"}]},{[fe]:Pn,[he]:[{[Ye]:"AccountIdEndpointMode"},"required"]}],[Sr]:[{[Er]:"Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported",[ve]:Er}],[ve]:Ir},$E={[fe]:"getAttr",[he]:[{[Ye]:"PartitionResult"},"name"]},yie={[ps]:{[ya]:"https://dynamodb.{Region}.{PartitionResult#dnsSuffix}",[_a]:{},[Ca]:{}},[ve]:ps},_ie={[ya]:"https://{ParsedArn#accountId}.ddb.{Region}.{PartitionResult#dualStackDnsSuffix}",[_a]:{[wie]:["O"]},[Ca]:{}},Rj={[wie]:["O"]},Cie={[Er]:"Credentials-sourced account ID parameter is invalid",[ve]:Er},Rie={[xt]:[{[fe]:"isSet",[he]:[{[Ye]:"AccountIdEndpointMode"}]},{[fe]:Pn,[he]:[{[Ye]:"AccountIdEndpointMode"},"required"]}],[Sr]:[{[xt]:[{[fe]:"not",[he]:[ig]}],[Sr]:[{[xt]:[{[fe]:Pn,[he]:[$E,"aws"]}],[Sr]:[{[Er]:"AccountIdEndpointMode is required but no AccountID was provided or able to be loaded",[ve]:Er}],[ve]:Ir},{[Er]:"Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition",[ve]:Er}],[ve]:Ir},{[Er]:"Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported",[ve]:Er}],[ve]:Ir},vie={[ya]:"https://{ParsedArn#accountId}.ddb.{Region}.{PartitionResult#dnsSuffix}",[_a]:Rj,[Ca]:{}},xie=[ig],Pie=[Oie],bie=[{[fe]:"isSet",[he]:[{[Ye]:"AccountIdEndpointMode"}]},{[fe]:"not",[he]:[{[fe]:Pn,[he]:[{[Ye]:"AccountIdEndpointMode"},"disabled"]}]},{[fe]:Pn,[he]:[$E,"aws"]},{[fe]:"not",[he]:[ig]},{[fe]:"isSet",[he]:[{[Ye]:"ResourceArn"}]},{[fe]:"aws.parseArn",[he]:[{[Ye]:"ResourceArn"}],[vb]:"ParsedArn"},{[fe]:Pn,[he]:[{[fe]:"getAttr",[he]:[{[Ye]:"ParsedArn"},"service"]},xj]},{[fe]:"isValidHostLabel",[he]:[{[fe]:"getAttr",[he]:[{[Ye]:"ParsedArn"},"region"]},!1]},{[fe]:Pn,[he]:[{[fe]:"getAttr",[he]:[{[Ye]:"ParsedArn"},"region"]},"{Region}"]},{[fe]:"isValidHostLabel",[he]:[{[fe]:"getAttr",[he]:[{[Ye]:"ParsedArn"},"accountId"]},!1]}],Iie=[{[fe]:"isSet",[he]:[{[Ye]:"AccountIdEndpointMode"}]},{[fe]:"not",[he]:[{[fe]:Pn,[he]:[{[Ye]:"AccountIdEndpointMode"},"disabled"]}]},{[fe]:Pn,[he]:[$E,"aws"]},{[fe]:"not",[he]:[ig]},{[fe]:"isSet",[he]:[{[Ye]:"ResourceArnList"}]},{[fe]:"getAttr",[he]:[{[Ye]:"ResourceArnList"},"[0]"],[vb]:"FirstArn"},{[fe]:"aws.parseArn",[he]:[{[Ye]:"FirstArn"}],[vb]:"ParsedArn"},{[fe]:Pn,[he]:[{[fe]:"getAttr",[he]:[{[Ye]:"ParsedArn"},"service"]},xj]},{[fe]:"isValidHostLabel",[he]:[{[fe]:"getAttr",[he]:[{[Ye]:"ParsedArn"},"region"]},!1]},{[fe]:Pn,[he]:[{[fe]:"getAttr",[he]:[{[Ye]:"ParsedArn"},"region"]},"{Region}"]},{[fe]:"isValidHostLabel",[he]:[{[fe]:"getAttr",[he]:[{[Ye]:"ParsedArn"},"accountId"]},!1]}],Aie=[{[fe]:"isSet",[he]:[{[Ye]:"AccountIdEndpointMode"}]},{[fe]:"not",[he]:[{[fe]:Pn,[he]:[{[Ye]:"AccountIdEndpointMode"},"disabled"]}]},{[fe]:Pn,[he]:[$E,"aws"]},{[fe]:"not",[he]:[ig]},{[fe]:"isSet",[he]:[{[Ye]:"AccountId"}]}],Tie=[{[fe]:"isValidHostLabel",[he]:[{[Ye]:"AccountId"},!1]}],S7e={version:"1.0",parameters:{Region:qE,UseDualStack:lie,UseFIPS:lie,Endpoint:qE,AccountId:qE,AccountIdEndpointMode:qE,ResourceArn:qE,ResourceArnList:{[vj]:f7e,[ve]:"stringArray"}},[Sr]:[{[xt]:[die,pie,mie],[Sr]:[gie,fie,{[xt]:[{[fe]:Pn,[he]:[h7e,uie]}],error:"Endpoint override is not supported for dual-stack endpoints. Please enable dual-stack functionality by enabling the configuration. For more details, see: https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html",[ve]:Er},hie],[ve]:Ir},{[xt]:[die],[Sr]:[gie,fie,hie],[ve]:Ir},{[xt]:[pie],[Sr]:[{[xt]:[mie],[Sr]:[{[xt]:[{[fe]:Pn,[he]:[Die,"local"]}],[Sr]:[{[xt]:xie,error:"Invalid Configuration: FIPS and local endpoint are not supported",[ve]:Er},{[xt]:Pie,error:"Invalid Configuration: Dualstack and local endpoint are not supported",[ve]:Er},{endpoint:{[ya]:"http://localhost:8000",[_a]:{authSchemes:[{name:"sigv4",signingRegion:"us-east-1",signingName:xj}]},[Ca]:Sc},[ve]:ps}],[ve]:Ir},{[xt]:[ig,Oie],[Sr]:[{[xt]:[Sie,Eie],[Sr]:[Cj,{endpoint:{[ya]:"https://dynamodb-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",[_a]:Sc,[Ca]:Sc},[ve]:ps}],[ve]:Ir},{error:"FIPS and DualStack are enabled, but this partition does not support one or both",[ve]:Er}],[ve]:Ir},{[xt]:xie,[Sr]:[{[xt]:[Sie],[Sr]:[{[xt]:[{[fe]:Pn,[he]:[$E,"aws-us-gov"]}],[Sr]:[Cj,yie],[ve]:Ir},Cj,{endpoint:{[ya]:"https://dynamodb-fips.{Region}.{PartitionResult#dnsSuffix}",[_a]:Sc,[Ca]:Sc},[ve]:ps}],[ve]:Ir},{error:"FIPS is enabled but this partition does not support FIPS",[ve]:Er}],[ve]:Ir},{[xt]:Pie,[Sr]:[{[xt]:[Eie],[Sr]:[{[xt]:bie,endpoint:_ie,[ve]:ps},{[xt]:Iie,endpoint:_ie,[ve]:ps},{[xt]:Aie,[Sr]:[{[xt]:Tie,[Sr]:[{endpoint:{[ya]:"https://{AccountId}.ddb.{Region}.{PartitionResult#dualStackDnsSuffix}",[_a]:Rj,[Ca]:Sc},[ve]:ps}],[ve]:Ir},Cie],[ve]:Ir},Rie,{endpoint:{[ya]:uie,[_a]:Sc,[Ca]:Sc},[ve]:ps}],[ve]:Ir},{error:"DualStack is enabled but this partition does not support DualStack",[ve]:Er}],[ve]:Ir},{[xt]:bie,endpoint:vie,[ve]:ps},{[xt]:Iie,endpoint:vie,[ve]:ps},{[xt]:Aie,[Sr]:[{[xt]:Tie,[Sr]:[{endpoint:{[ya]:"https://{AccountId}.ddb.{Region}.{PartitionResult#dnsSuffix}",[_a]:Rj,[Ca]:Sc},[ve]:ps}],[ve]:Ir},Cie],[ve]:Ir},Rie,yie],[ve]:Ir}],[ve]:Ir},{error:"Invalid Configuration: Missing Region",[ve]:Er}]};xb.ruleSet=S7e});var Nie=b(Pb=>{"use strict";Object.defineProperty(Pb,"__esModule",{value:!0});Pb.defaultEndpointResolver=void 0;var E7e=cie(),Pj=require("@smithy/util-endpoints"),y7e=kie(),_7e=new Pj.EndpointCache({size:50,params:["AccountId","AccountIdEndpointMode","Endpoint","Region","ResourceArn","ResourceArnList","UseDualStack","UseFIPS"]}),C7e=(t,e={})=>_7e.get(t,()=>(0,Pj.resolveEndpoint)(y7e.ruleSet,{endpointParams:t,logger:e.logger}));Pb.defaultEndpointResolver=C7e;Pj.customEndpointFunctions.aws=E7e.awsEndpointFunctions});var Fie=b(bb=>{"use strict";Object.defineProperty(bb,"__esModule",{value:!0});bb.getRuntimeConfig=void 0;var R7e=(on(),ue(wu)),v7e=(_d(),ue(RG)),x7e=Yoe(),P7e=require("@smithy/smithy-client"),b7e=require("@smithy/url-parser"),Lie=require("@smithy/util-base64"),Mie=require("@smithy/util-utf8"),I7e=bG(),A7e=Nie(),T7e=t=>({apiVersion:"2012-08-10",base64Decoder:t?.base64Decoder??Lie.fromBase64,base64Encoder:t?.base64Encoder??Lie.toBase64,disableHostPrefix:t?.disableHostPrefix??!1,endpointProvider:t?.endpointProvider??A7e.defaultEndpointResolver,extensions:t?.extensions??[],httpAuthSchemeProvider:t?.httpAuthSchemeProvider??I7e.defaultDynamoDBHttpAuthSchemeProvider,httpAuthSchemes:t?.httpAuthSchemes??[{schemeId:"aws.auth#sigv4",identityProvider:e=>e.getIdentityProvider("aws.auth#sigv4"),signer:new R7e.AwsSdkSigV4Signer}],logger:t?.logger??new P7e.NoOpLogger,protocol:t?.protocol??v7e.AwsJson1_0Protocol,protocolSettings:t?.protocolSettings??{defaultNamespace:"com.amazonaws.dynamodb",xmlNamespace:"http://dynamodb.amazonaws.com/doc/2012-08-10/",version:"2012-08-10",serviceTarget:"DynamoDB_20120810",jsonCodec:new x7e.DynamoDBJsonCodec},serviceId:t?.serviceId??"DynamoDB",urlParser:t?.urlParser??b7e.parseUrl,utf8Decoder:t?.utf8Decoder??Mie.fromUtf8,utf8Encoder:t?.utf8Encoder??Mie.toUtf8});bb.getRuntimeConfig=T7e});var jie=b(Ab=>{"use strict";Object.defineProperty(Ab,"__esModule",{value:!0});Ab.getRuntimeConfig=void 0;var w7e=require("tslib"),D7e=w7e.__importDefault(U7()),Bie=(on(),ue(wu)),O7e=(G$(),ue($$)),k7e=uoe(),N7e=z$(),Uie=km(),Ib=require("@smithy/config-resolver"),L7e=require("@smithy/hash-node"),qie=require("@smithy/middleware-retry"),Ec=require("@smithy/node-config-provider"),$ie=require("@smithy/node-http-handler"),Gie=require("@smithy/smithy-client"),M7e=require("@smithy/util-body-length-node"),F7e=require("@smithy/util-defaults-mode-node"),B7e=require("@smithy/util-retry"),U7e=Fie(),q7e=t=>{(0,Gie.emitWarningIfUnsupportedVersion)(process.version);let e=(0,F7e.resolveDefaultsModeConfig)(t),r=()=>e().then(Gie.loadConfigsForDefaultMode),n=(0,U7e.getRuntimeConfig)(t);(0,Bie.emitWarningIfUnsupportedVersion)(process.version);let s={profile:t?.profile,logger:n.logger};return{...n,...t,runtime:"node",defaultsMode:e,accountIdEndpointMode:t?.accountIdEndpointMode??(0,Ec.loadConfig)(O7e.NODE_ACCOUNT_ID_ENDPOINT_MODE_CONFIG_OPTIONS,s),authSchemePreference:t?.authSchemePreference??(0,Ec.loadConfig)(Bie.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS,s),bodyLengthChecker:t?.bodyLengthChecker??M7e.calculateBodyLength,credentialDefaultProvider:t?.credentialDefaultProvider??k7e.defaultProvider,defaultUserAgentProvider:t?.defaultUserAgentProvider??(0,Uie.createDefaultUserAgentProvider)({serviceId:n.serviceId,clientVersion:D7e.default.version}),endpointDiscoveryEnabledProvider:t?.endpointDiscoveryEnabledProvider??(0,Ec.loadConfig)(N7e.NODE_ENDPOINT_DISCOVERY_CONFIG_OPTIONS,s),maxAttempts:t?.maxAttempts??(0,Ec.loadConfig)(qie.NODE_MAX_ATTEMPT_CONFIG_OPTIONS,t),region:t?.region??(0,Ec.loadConfig)(Ib.NODE_REGION_CONFIG_OPTIONS,{...Ib.NODE_REGION_CONFIG_FILE_OPTIONS,...s}),requestHandler:$ie.NodeHttpHandler.create(t?.requestHandler??r),retryMode:t?.retryMode??(0,Ec.loadConfig)({...qie.NODE_RETRY_MODE_CONFIG_OPTIONS,default:async()=>(await r()).retryMode||B7e.DEFAULT_RETRY_MODE},t),sha256:t?.sha256??L7e.Hash.bind(null,"sha256"),streamCollector:t?.streamCollector??$ie.streamCollector,useDualstackEndpoint:t?.useDualstackEndpoint??(0,Ec.loadConfig)(Ib.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS,s),useFipsEndpoint:t?.useFipsEndpoint??(0,Ec.loadConfig)(Ib.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS,s),userAgentAppId:t?.userAgentAppId??(0,Ec.loadConfig)(Uie.NODE_APP_ID_CONFIG_OPTIONS,s)}};Ab.getRuntimeConfig=q7e});var CA=b(S=>{"use strict";var $7e=(G$(),ue($$)),G7e=z$(),Vie=gm(),j7e=fm(),V7e=hm(),Hie=Cd(),H7e=require("@smithy/config-resolver"),yc=require("@smithy/core"),Xe=require("@smithy/core/schema"),z7e=require("@smithy/middleware-content-length"),Se=require("@smithy/middleware-endpoint"),zie=require("@smithy/middleware-retry"),pe=require("@smithy/smithy-client"),Wie=bG(),W7e=jie(),Kie=vd(),Qie=require("@smithy/protocol-http"),Ze=require("@smithy/util-waiter"),K7e=t=>Object.assign(t,{useDualstackEndpoint:t.useDualstackEndpoint??!1,useFipsEndpoint:t.useFipsEndpoint??!1,defaultSigningName:"dynamodb"}),_e={UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},AccountId:{type:"builtInParams",name:"accountId"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"},AccountIdEndpointMode:{type:"builtInParams",name:"accountIdEndpointMode"}},We=class t extends pe.ServiceException{constructor(e){super(e),Object.setPrototypeOf(this,t.prototype)}},Tb=class t extends We{name="BackupInUseException";$fault="client";constructor(e){super({name:"BackupInUseException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},wb=class t extends We{name="BackupNotFoundException";$fault="client";constructor(e){super({name:"BackupNotFoundException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},Db=class t extends We{name="InternalServerError";$fault="server";constructor(e){super({name:"InternalServerError",$fault:"server",...e}),Object.setPrototypeOf(this,t.prototype)}},Ob=class t extends We{name="RequestLimitExceeded";$fault="client";ThrottlingReasons;constructor(e){super({name:"RequestLimitExceeded",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.ThrottlingReasons=e.ThrottlingReasons}},kb=class t extends We{name="ThrottlingException";$fault="client";throttlingReasons;constructor(e){super({name:"ThrottlingException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.throttlingReasons=e.throttlingReasons}},Nb=class t extends We{name="InvalidEndpointException";$fault="client";Message;constructor(e){super({name:"InvalidEndpointException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.Message=e.Message}},Lb=class t extends We{name="ProvisionedThroughputExceededException";$fault="client";ThrottlingReasons;constructor(e){super({name:"ProvisionedThroughputExceededException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.ThrottlingReasons=e.ThrottlingReasons}},Mb=class t extends We{name="ResourceNotFoundException";$fault="client";constructor(e){super({name:"ResourceNotFoundException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},Fb=class t extends We{name="ItemCollectionSizeLimitExceededException";$fault="client";constructor(e){super({name:"ItemCollectionSizeLimitExceededException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},Bb=class t extends We{name="ReplicatedWriteConflictException";$fault="client";$retryable={};constructor(e){super({name:"ReplicatedWriteConflictException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},Ub=class t extends We{name="ContinuousBackupsUnavailableException";$fault="client";constructor(e){super({name:"ContinuousBackupsUnavailableException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},qb=class t extends We{name="LimitExceededException";$fault="client";constructor(e){super({name:"LimitExceededException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},$b=class t extends We{name="TableInUseException";$fault="client";constructor(e){super({name:"TableInUseException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},Gb=class t extends We{name="TableNotFoundException";$fault="client";constructor(e){super({name:"TableNotFoundException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},jb=class t extends We{name="GlobalTableAlreadyExistsException";$fault="client";constructor(e){super({name:"GlobalTableAlreadyExistsException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},Vb=class t extends We{name="ResourceInUseException";$fault="client";constructor(e){super({name:"ResourceInUseException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},Hb=class t extends We{name="TransactionConflictException";$fault="client";constructor(e){super({name:"TransactionConflictException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},zb=class t extends We{name="PolicyNotFoundException";$fault="client";constructor(e){super({name:"PolicyNotFoundException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},Wb=class t extends We{name="ExportNotFoundException";$fault="client";constructor(e){super({name:"ExportNotFoundException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},Kb=class t extends We{name="GlobalTableNotFoundException";$fault="client";constructor(e){super({name:"GlobalTableNotFoundException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},Qb=class t extends We{name="ImportNotFoundException";$fault="client";constructor(e){super({name:"ImportNotFoundException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},Xb=class t extends We{name="DuplicateItemException";$fault="client";constructor(e){super({name:"DuplicateItemException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},Jb=class t extends We{name="IdempotentParameterMismatchException";$fault="client";Message;constructor(e){super({name:"IdempotentParameterMismatchException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.Message=e.Message}},Yb=class t extends We{name="TransactionInProgressException";$fault="client";Message;constructor(e){super({name:"TransactionInProgressException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.Message=e.Message}},Zb=class t extends We{name="ExportConflictException";$fault="client";constructor(e){super({name:"ExportConflictException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},eI=class t extends We{name="InvalidExportTimeException";$fault="client";constructor(e){super({name:"InvalidExportTimeException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},tI=class t extends We{name="PointInTimeRecoveryUnavailableException";$fault="client";constructor(e){super({name:"PointInTimeRecoveryUnavailableException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},rI=class t extends We{name="ImportConflictException";$fault="client";constructor(e){super({name:"ImportConflictException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},nI=class t extends We{name="TableAlreadyExistsException";$fault="client";constructor(e){super({name:"TableAlreadyExistsException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},sI=class t extends We{name="InvalidRestoreTimeException";$fault="client";constructor(e){super({name:"InvalidRestoreTimeException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},oI=class t extends We{name="ReplicaAlreadyExistsException";$fault="client";constructor(e){super({name:"ReplicaAlreadyExistsException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},iI=class t extends We{name="ReplicaNotFoundException";$fault="client";constructor(e){super({name:"ReplicaNotFoundException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},aI=class t extends We{name="IndexNotFoundException";$fault="client";constructor(e){super({name:"IndexNotFoundException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},cI=class t extends We{name="ConditionalCheckFailedException";$fault="client";Item;constructor(e){super({name:"ConditionalCheckFailedException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.Item=e.Item}},uI=class t extends We{name="TransactionCanceledException";$fault="client";Message;CancellationReasons;constructor(e){super({name:"TransactionCanceledException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.Message=e.Message,this.CancellationReasons=e.CancellationReasons}},Q7e="Action",X7e="ArchivalBackupArn",bj="ApproximateCreationDateTimePrecision",J7e="AttributeDefinition",Y7e="ArchivalDateTime",ZE="AttributeDefinitions",Z7e="AttributeMap",eZe="AccountMaxReadCapacityUnits",tZe="AccountMaxWriteCapacityUnits",rA="AttributeName",rZe="ArchivalReason",Jie="ArchivalSummary",Yie="AutoScalingDisabled",nZe="AutoScalingPolicyDescription",sZe="AutoScalingPolicyDescriptionList",oZe="AutoScalingPolicyUpdate",Zie="AutoScalingRoleArn",iZe="AutoScalingSettingsDescription",aZe="AutoScalingSettingsUpdate",cZe="AutoScalingTargetTrackingScalingPolicyConfigurationDescription",uZe="AutoScalingTargetTrackingScalingPolicyConfigurationUpdate",lZe="AttributeType",nA="AttributesToGet",eae="AttributeUpdates",dZe="AttributeValue",Ij="AttributeValueList",pZe="AttributeValueUpdate",mZe="Address",Aj="Attributes",gZe="Backfilling",ey="BackupArn",tae="BackupCreationDateTime",Tj="BackupDescription",wj="BackupDetails",rae="BackupExpiryDateTime",fZe="BatchExecuteStatement",hZe="BatchExecuteStatementInput",SZe="BatchExecuteStatementOutput",EZe="BatchGetItem",yZe="BatchGetItemInput",_Ze="BatchGetItemOutput",CZe="BatchGetResponseMap",RZe="BatchGetRequestMap",vZe="BackupInUseException",ty="BillingMode",nae="BillingModeOverride",sae="BillingModeSummary",Dj="BackupName",xZe="BackupNotFoundException",PZe="BOOL",oae="BackupStatus",iae="BackupSizeBytes",bZe="BilledSizeBytes",IZe="BatchStatementError",AZe="BatchStatementRequest",TZe="BatchStatementResponse",wZe="BS",DZe="BackupSummary",aae="BackupSummaries",Oj="BackupType",OZe="BatchWriteItem",kZe="BatchWriteItemInput",NZe="BatchWriteItemOutput",LZe="BatchWriteItemRequestMap",MZe="B",cae="Code",FZe="CreateBackup",kj="ContinuousBackupsDescription",BZe="CreateBackupInput",UZe="CreateBackupOutput",qZe="ContinuousBackupsStatus",$Ze="ContinuousBackupsUnavailableException",ms="ConsumedCapacity",GZe="ConditionalCheckFailedException",jZe="ConsumedCapacityMultiple",uae="ConditionCheck",lae="CreationDateTime",Ud="ConditionExpression",VZe="CreateGlobalSecondaryIndexAction",HZe="CreateGlobalTable",zZe="CreateGlobalTableInput",WZe="CreateGlobalTableOutput",KZe="CreateGlobalTableWitnessGroupMemberAction",QZe="ContributorInsightsAction",sA="ContributorInsightsMode",XZe="ContributorInsightsRuleList",JZe="ContributorInsightsSummary",Nj="ContributorInsightsStatus",dae="ContributorInsightsSummaries",pae="ComparisonOperator",ry="ConditionalOperator",YZe="CsvOptions",ZZe="CachePeriodInMinutes",cg="ConsistentRead",eet="CreateReplicaAction",tet="CreateReplicationGroupMemberAction",ret="CancellationReasonList",net="ConfirmRemoveSelfResourceAccess",mae="ClientRequestToken",set="CancellationReason",oet="CancellationReasons",oA="ClientToken",iet="CreateTableInput",aet="CreateTableOutput",cet="CreateTable",gae="CapacityUnits",fae="CloudWatchLogGroupArn",uet="Capacity",det="Condition",hae="Count",iA="Create",pet="Csv",met="Delimiter",get="DeleteBackup",fet="DeleteBackupInput",het="DescribeBackupInput",Eet="DeleteBackupOutput",yet="DescribeBackupOutput",_et="DescribeBackup",Cet="DescribeContinuousBackups",Ret="DescribeContinuousBackupsInput",vet="DescribeContinuousBackupsOutput",xet="DescribeContributorInsights",Pet="DescribeContributorInsightsInput",bet="DescribeContributorInsightsOutput",Iet="DescribeEndpoints",Aet="DescribeExportInput",Tet="DescribeExportOutput",wet="DescribeEndpointsRequest",Det="DescribeEndpointsResponse",Oet="DescribeExport",ket="DeleteGlobalSecondaryIndexAction",Net="DescribeGlobalTable",Let="DescribeGlobalTableInput",Met="DescribeGlobalTableOutput",Fet="DescribeGlobalTableSettings",Bet="DescribeGlobalTableSettingsInput",Uet="DescribeGlobalTableSettingsOutput",qet="DeleteGlobalTableWitnessGroupMemberAction",$et="DeleteItem",Get="DuplicateItemException",jet="DeleteItemInput",Vet="DescribeImportInput",Het="DeleteItemOutput",zet="DescribeImportOutput",Wet="DescribeImport",Ket="DescribeKinesisStreamingDestination",Qet="DescribeKinesisStreamingDestinationInput",Xet="DescribeKinesisStreamingDestinationOutput",Jet="DisableKinesisStreamingDestination",Yet="DescribeLimits",Zet="DescribeLimitsInput",ett="DescribeLimitsOutput",Lj="DeletionProtectionEnabled",Sae="DeleteRequest",ttt="DeleteReplicaAction",rtt="DeleteReplicationGroupMemberAction",ntt="DeleteResourcePolicy",stt="DeleteResourcePolicyInput",ott="DeleteResourcePolicyOutput",Mj="DestinationStatus",itt="DestinationStatusDescription",Eae="DisableScaleIn",att="DeleteTable",ctt="DeleteTableInput",utt="DescribeTableInput",ltt="DeleteTableOutput",dtt="DescribeTableOutput",ptt="DescribeTableReplicaAutoScaling",mtt="DescribeTableReplicaAutoScalingInput",gtt="DescribeTableReplicaAutoScalingOutput",ftt="DescribeTimeToLive",htt="DescribeTimeToLiveInput",Stt="DescribeTimeToLiveOutput",Ett="DescribeTable",ug="Delete",ytt="Error",Fj="ExportArn",_tt="ExpectedAttributeMap",No="ExpressionAttributeNames",Cc="ExpressionAttributeValues",Ctt="ExpressionAttributeValueMap",Rtt="ExpectedAttributeValue",vtt="ErrorCount",xtt="ExportConflictException",Bj="ExportDescription",Ptt="ExceptionDescription",yae="ExportFormat",btt="ExportFromTime",Uj="EnableKinesisStreamingConfiguration",Itt="EnableKinesisStreamingDestination",Att="ExportManifest",Ttt="ExceptionName",wtt="ExportNotFoundException",Dtt="EarliestRestorableDateTime",_ae="ExpectedRevisionId",Cae="ExportStatus",Ott="ExclusiveStartBackupArn",ktt="ExclusiveStartGlobalTableName",Ntt="ExecuteStatementInput",Rae="ExclusiveStartKey",Ltt="ExecuteStatementOutput",Mtt="ExclusiveStartTableName",Ftt="ExportSummary",Btt="ExecuteStatement",vae="ExportSummaries",qj="EndTime",Utt="ExecuteTransactionInput",qtt="ExecuteTransactionOutput",$tt="ExportToTime",Gtt="ExportTableToPointInTime",jtt="ExportTableToPointInTimeInput",Vtt="ExportTableToPointInTimeOutput",xae="ExportTime",Htt="ExecuteTransaction",$j="ExportType",ztt="ExportViewType",Pae="Endpoints",bae="Enabled",Wtt="Endpoint",Gj="Expected",Ktt="Exists",Iae="FailureCode",Qtt="FilterConditionMap",Aae="FailureException",Tae="FilterExpression",wae="FailureMessage",Dae="Get",Xtt="GetItem",Jtt="GetItemInput",Ytt="GetItemOutput",Ztt="GetResourcePolicy",ert="GetResourcePolicyInput",trt="GetResourcePolicyOutput",va="GlobalSecondaryIndexes",rrt="GlobalSecondaryIndexAutoScalingUpdate",nrt="GlobalSecondaryIndexAutoScalingUpdateList",srt="GlobalSecondaryIndexDescription",ort="GlobalSecondaryIndexDescriptionList",irt="GlobalSecondaryIndexInfo",art="GlobalSecondaryIndexList",Oae="GlobalSecondaryIndexOverride",crt="GlobalSecondaryIndexUpdate",urt="GlobalSecondaryIndexUpdateList",kae="GlobalSecondaryIndexUpdates",lrt="GlobalSecondaryIndexWarmThroughputDescription",drt="GlobalSecondaryIndex",prt="GlobalTable",mrt="GlobalTableArn",grt="GlobalTableAlreadyExistsException",frt="GlobalTableBillingMode",aA="GlobalTableDescription",Nae="GlobalTableGlobalSecondaryIndexSettingsUpdate",hrt="GlobalTableGlobalSecondaryIndexSettingsUpdateList",Srt="GlobalTableList",Rc="GlobalTableName",Ert="GlobalTableNotFoundException",yrt="GlobalTableProvisionedWriteCapacityAutoScalingSettingsUpdate",_rt="GlobalTableProvisionedWriteCapacityUnits",Crt="GlobalTableStatus",Rrt="GlobalTableVersion",vrt="GlobalTableWitnesses",xrt="GlobalTableWitnessDescription",Prt="GlobalTableWitnessDescriptionList",brt="GlobalTableWitnessGroupUpdate",Irt="GlobalTableWitnessGroupUpdateList",Art="GlobalTableWitnessUpdates",Trt="GlobalTables",wrt="HeaderList",vc="Item",jj="ImportArn",Lae="IndexArn",ny="ItemCount",Drt="ImportConflictException",Ort="ItemCollectionKey",krt="ItemCollectionKeyAttributeMap",lg="ItemCollectionMetrics",Nrt="ItemCollectionMetricsMultiple",Lrt="ItemCollectionMetricsPerTable",Mrt="ItemCollectionSizeLimitExceededException",Mae="InputCompressionType",Frt="InaccessibleEncryptionDateTime",Brt="InvalidEndpointException",Vj="IncrementalExportSpecification",Urt="InvalidExportTimeException",Hj="InputFormat",zj="InputFormatOptions",qrt="ImportedItemCount",$rt="ItemList",Qt="IndexName",Grt="ImportNotFoundException",jrt="IndexNotFoundException",Vrt="IdempotentParameterMismatchException",Hrt="ItemResponse",zrt="ItemResponseList",Wrt="InvalidRestoreTimeException",Wj="IndexStatus",Fae="IndexSizeBytes",Krt="InternalServerError",Bae="ImportSummaryList",Qrt="ImportSummary",Uae="ImportStatus",Xrt="ImportTable",Kj="ImportTableDescription",Jrt="ImportTableInput",Yrt="ImportTableOutput",Qj="Items",xa="Key",Zrt="KeysAndAttributes",qae="KeyConditions",ent="KeyConditionExpression",$ae="KinesisDataStreamDestinations",tnt="KinesisDataStreamDestination",rnt="KeyList",nnt="KMSMasterKeyArn",cA="KMSMasterKeyId",Lo="KeySchema",snt="KinesisStreamingDestinationInput",ont="KinesisStreamingDestinationOutput",int="KeySchemaElement",ant="KeyType",cnt="Keys",dg="Limit",unt="ListAttributeValue",lnt="ListBackups",dnt="ListBackupsInput",pnt="ListBackupsOutput",mnt="ListContributorInsights",gnt="ListContributorInsightsInput",fnt="ListContributorInsightsOutput",hnt="LastDecreaseDateTime",Snt="ListExports",Ent="LastEvaluatedBackupArn",ynt="LimitExceededException",_nt="LastEvaluatedGlobalTableName",Cnt="ListExportsInput",Xj="LastEvaluatedKey",Rnt="ListExportsOutput",vnt="LastEvaluatedTableName",xnt="ListGlobalTables",Pnt="ListGlobalTablesInput",bnt="ListGlobalTablesOutput",Int="ListImports",Ant="LastIncreaseDateTime",Tnt="ListImportsInput",wnt="ListImportsOutput",Dnt="LatestRestorableDateTime",Ont="LatestStreamArn",sy="LocalSecondaryIndexes",knt="LocalSecondaryIndexDescription",Nnt="LocalSecondaryIndexDescriptionList",Lnt="LocalSecondaryIndexInfo",Mnt="LocalSecondaryIndexList",Gae="LocalSecondaryIndexOverride",Fnt="LocalSecondaryIndex",Bnt="LatestStreamLabel",Unt="ListTables",qnt="ListTablesInput",$nt="ListTablesOutput",Gnt="ListTagsOfResource",jnt="ListTagsOfResourceInput",Vnt="ListTagsOfResourceOutput",jae="LastUpdateDateTime",Hnt="LastUpdateToPayPerRequestDateTime",znt="L",pg="Message",Wnt="MapAttributeValue",Vae="MaxResults",Hae="MultiRegionConsistency",zae="MaxReadRequestUnits",Wae="MinimumUnits",Kae="MaximumUnits",Knt="MaxWriteRequestUnits",Qnt="M",Xnt="N",Jnt="NonKeyAttributes",Ynt="NumberOfDecreasesToday",Znt="NS",Pa="NextToken",est="NULL",Ii="OnDemandThroughput",Ku="OnDemandThroughputOverride",Jj="Parameters",oy="ProjectionExpression",tst="PutItem",rst="ProcessedItemCount",nst="PutItemInput",sst="PutItemInputAttributeMap",ost="PutItemOutput",Qae="PointInTimeRecoveryDescription",ist="PointInTimeRecoveryEnabled",ast="PointInTimeRecoveryStatus",Xae="PointInTimeRecoverySpecification",cst="PointInTimeRecoveryUnavailableException",Jae="PolicyName",ust="PolicyNotFoundException",lst="PartiQLBatchRequest",dst="PartiQLBatchResponse",Yae="PutRequest",Zae="ProvisionedReadCapacityAutoScalingSettings",pst="ProvisionedReadCapacityAutoScalingSettingsUpdate",mst="ProvisionedReadCapacityAutoScalingUpdate",ece="ProvisionedReadCapacityUnits",gst="PutResourcePolicy",fst="PutResourcePolicyInput",hst="PutResourcePolicyOutput",Sst="PageSize",Est="ProcessedSizeBytes",yst="PreparedStatementParameters",_st="ParameterizedStatement",Cst="ParameterizedStatements",Ai="ProvisionedThroughput",Rst="ProvisionedThroughputDescription",vst="ProvisionedThroughputExceededException",Qu="ProvisionedThroughputOverride",xst="ProjectionType",tce="ProvisionedWriteCapacityAutoScalingSettings",Pst="ProvisionedWriteCapacityAutoScalingSettingsUpdate",rce="ProvisionedWriteCapacityAutoScalingUpdate",nce="ProvisionedWriteCapacityUnits",sce="Policy",Xu="Projection",oce="Put",bst="Query",Ist="QueryFilter",Ast="QueryInput",Tst="QueryOutput",uA="Responses",mg="ResourceArn",wst="ReplicaAlreadyExistsException",Dst="ReplicaAutoScalingDescription",Ost="ReplicaAutoScalingDescriptionList",kst="ReplicaAutoScalingUpdate",Nst="ReplicaAutoScalingUpdateList",Lst="ReplicaBillingModeSummary",Hs="ReturnConsumedCapacity",iy="ReadCapacityUnits",Mst="ReplicaDescription",Fst="ReplicaDescriptionList",ice="RestoreDateTime",Yj="ReplicationGroup",Bst="ReplicaGlobalSecondaryIndex",Ust="ReplicaGlobalSecondaryIndexAutoScalingDescription",qst="ReplicaGlobalSecondaryIndexAutoScalingDescriptionList",$st="ReplicaGlobalSecondaryIndexAutoScalingUpdate",Gst="ReplicaGlobalSecondaryIndexAutoScalingUpdateList",jst="ReplicaGlobalSecondaryIndexDescription",Vst="ReplicaGlobalSecondaryIndexDescriptionList",Hst="ReplicaGlobalSecondaryIndexList",zst="ReplicaGlobalSecondaryIndexSettings",Wst="ReplicaGlobalSecondaryIndexSettingsDescription",Kst="ReplicaGlobalSecondaryIndexSettingsDescriptionList",ace="ReplicaGlobalSecondaryIndexSettingsUpdate",Qst="ReplicaGlobalSecondaryIndexSettingsUpdateList",Xst="ReplicaGlobalSecondaryIndexUpdates",Jst="ReplicationGroupUpdate",Yst="ReplicationGroupUpdateList",cce="RequestItems",ay="ReturnItemCollectionMetrics",Zst="ReplicaInaccessibleDateTime",eot="RestoreInProgress",tot="ResourceInUseException",Zj="RevisionId",rot="ReplicaList",not="RequestLimitExceeded",Qn="RegionName",sot="ReplicaNotFoundException",oot="ResourceNotFoundException",iot="ResourcePolicy",uce="RecoveryPeriodInDays",lce="ReplicaProvisionedReadCapacityAutoScalingSettings",aot="ReplicaProvisionedReadCapacityAutoScalingSettingsUpdate",cot="ReplicaProvisionedReadCapacityAutoScalingUpdate",dce="ReplicaProvisionedReadCapacityUnits",pce="ReplicaProvisionedWriteCapacityAutoScalingSettings",uot="ReplicaProvisionedWriteCapacityUnits",mce="ReplicaSettings",lot="ReplicaStatusDescription",dot="ReplicaSettingsDescriptionList",pot="ReplicaSettingsDescription",mot="ReplicaStatusPercentProgress",gce="ReplicaSettingsUpdate",got="ReplicaSettingsUpdateList",e4="ReplicaStatus",fce="RestoreSummary",fot="ReplicaTableClass",hce="ReplicaTableClassSummary",hot="RestoreTableFromBackup",Sot="RestoreTableFromBackupInput",Eot="RestoreTableFromBackupOutput",yot="RestoreTableToPointInTime",_ot="RestoreTableToPointInTimeInput",Cot="RestoreTableToPointInTimeOutput",Rot="ReplicaUpdate",vot="ReplicaUpdateList",t4="ReadUnitsPerSecond",r4="ReplicaUpdates",n4="ReturnValues",ba="ReturnValuesOnConditionCheckFailure",xot="ReplicatedWriteConflictException",Pot="Replica",Sce="Replicas",bot="Statements",cy="StreamArn",s4="S3Bucket",Iot="SourceBackupArn",o4="S3BucketOwner",lA="S3BucketSource",Ece="ScannedCount",Aot="StreamDescription",Tot="StreamEnabled",wot="SizeEstimateRangeGB",Dot="ScanFilter",Oot="ScanInput",yce="ScaleInCooldown",kot="SecondaryIndexesCapacityMap",Not="ScanIndexForward",Lot="S3KeyPrefix",Mot="ScanOutput",_ce="ScaleOutCooldown",Fot="ScalingPolicies",Bot="ScalingPolicyUpdate",Cce="S3Prefix",dA="StreamSpecification",Rce="S3SseAlgorithm",i4="SSEDescription",pA="SSESpecification",vce="SSESpecificationOverride",xce="SSEType",Pce="S3SseKmsKeyId",Uot="SS",a4="StartTime",bce="SourceTableArn",Ice="SourceTableDetails",Ace="SourceTableFeatureDetails",qot="SourceTableName",$ot="StreamViewType",Got="S",jot="Scan",Tce="Select",Vot="Segment",c4="Statement",u4="Status",wce="Table",xc="TableArn",Hot="TableAlreadyExistsException",l4="TableAutoScalingDescription",d4="TableClass",zot="TableCreationDateTime",Wot="TransactionCanceledException",Kot="TransactionConflictException",Dce="TableClassOverride",p4="TableCreationParameters",Oce="TableClassSummary",gg="TableDescription",Qot="ThrottlingException",Xot="TransactGetItem",Jot="TransactGetItemsInput",Yot="TransactGetItemList",Zot="TransactGetItemsOutput",eit="TransactGetItems",uy="TableId",tit="TransactionInProgressException",rit="TableInUseException",kce="TransactItems",nit="TagKeys",sit="TagList",oit="TableMaxReadCapacityUnits",iit="TableMaxWriteCapacityUnits",Ue="TableName",ait="TableNotFoundException",cit="TableNames",Nce="ThrottlingReasons",uit="TagResourceInput",lit="ThrottlingReasonList",dit="TimeRangeLowerBound",pit="TimeRangeUpperBound",mit="TagResource",git="ThrottlingReason",fit="TransactStatements",Lce="TableSizeBytes",Mce="TableStatus",hit="TotalSegments",m4="TimeToLiveDescription",Sit="TimeToLiveStatus",g4="TimeToLiveSpecification",Fce="TargetTableName",Bce="TargetTrackingScalingPolicyConfiguration",Uce="TargetValue",Eit="TransactWriteItem",yit="TransactWriteItemsInput",_it="TransactWriteItemList",Cit="TransactWriteItemsOutput",Rit="TransactWriteItems",vit="TableWarmThroughputDescription",f4="Tags",xit="Tag",mA="Update",Pit="UpdateContinuousBackups",bit="UpdateContinuousBackupsInput",Iit="UpdateContinuousBackupsOutput",Ait="UpdateContributorInsights",Tit="UpdateContributorInsightsInput",wit="UpdateContributorInsightsOutput",qce="UpdateExpression",Dit="UpdateGlobalSecondaryIndexAction",Oit="UpdateGlobalTable",kit="UpdateGlobalTableInput",Nit="UpdateGlobalTableOutput",Lit="UpdateGlobalTableSettings",Mit="UpdateGlobalTableSettingsInput",Fit="UpdateGlobalTableSettingsOutput",Bit="UnprocessedItems",Uit="UpdateItemInput",qit="UpdateItemOutput",$it="UpdateItem",Git="UnprocessedKeys",h4="UpdateKinesisStreamingConfiguration",jit="UpdateKinesisStreamingDestination",Vit="UpdateKinesisStreamingDestinationInput",Hit="UpdateKinesisStreamingDestinationOutput",zit="UseLatestRestorableTime",Wit="UntagResource",Kit="UpdateReplicationGroupMemberAction",Qit="UntagResourceInput",Xit="UpdateTable",Jit="UpdateTableInput",Yit="UpdateTableOutput",Zit="UpdateTableReplicaAutoScaling",eat="UpdateTableReplicaAutoScalingInput",tat="UpdateTableReplicaAutoScalingOutput",rat="UpdateTimeToLive",nat="UpdateTimeToLiveInput",sat="UpdateTimeToLiveOutput",S4="Value",gA="WriteCapacityUnits",oat="WriteRequest",iat="WriteRequests",aat="WitnessStatus",Ia="WarmThroughput",E4="WriteUnitsPerSecond",cat="awsQueryError",ot="client",tt="error",$ce="httpError",uat="httpHeader",ft="message",lat="reason",dat="resource",pat="server",Gce="smithy.ts.sdk.synthetic.com.amazonaws.dynamodb",mat="throttlingReasons",gat="x-amz-confirm-remove-self-resource-access",C="com.amazonaws.dynamodb",jce=[3,C,Jie,0,[Y7e,rZe,X7e],[4,0,0]],Vce=[3,C,J7e,0,[rA,lZe],[0,0],2],Hce=[3,C,pZe,0,[S4,Q7e],[()=>Mo,0]],zce=[3,C,nZe,0,[Jae,Bce],[0,()=>Kce]],Wce=[3,C,oZe,0,[Bce,Jae],[()=>Qce,0],1],_c=[3,C,iZe,0,[Wae,Kae,Yie,Zie,Fot],[1,1,2,0,()=>fat]],Pc=[3,C,aZe,0,[Wae,Kae,Yie,Zie,Bot],[1,1,2,0,()=>Wce]],Kce=[3,C,cZe,0,[Uce,Eae,yce,_ce],[1,2,1,1],1],Qce=[3,C,uZe,0,[Uce,Eae,yce,_ce],[1,2,1,1],1],y4=[3,C,Tj,0,[wj,Ice,Ace],[()=>_4,()=>ipe,()=>ape]],_4=[3,C,wj,0,[ey,Dj,oae,Oj,tae,iae,rae],[0,0,0,0,4,1,4],5],Xce=[-3,C,vZe,{[tt]:ot},[ft],[0]];Xe.TypeRegistry.for(C).registerError(Xce,Tb);var Jce=[-3,C,xZe,{[tt]:ot},[ft],[0]];Xe.TypeRegistry.for(C).registerError(Jce,wb);var Yce=[3,C,DZe,0,[Ue,uy,xc,ey,Dj,tae,rae,oae,Oj,iae],[0,0,0,0,0,4,4,0,0,1]],Zce=[3,C,hZe,0,[bot,Hs],[()=>Fat,0],1],eue=[3,C,SZe,0,[uA,ms],[()=>Bat,()=>yg]],tue=[3,C,yZe,0,[cce,Hs],[()=>tme,0],1],rue=[3,C,_Ze,0,[uA,Git,ms],[()=>Zat,()=>tme,()=>yg]],nue=[3,C,IZe,0,[cae,pg,vc],[0,0,()=>Aa]],sue=[3,C,AZe,0,[c4,Jj,cg,ba],[0,()=>G4,2,0],1],oue=[3,C,TZe,0,[ytt,Ue,vc],[()=>nue,0,()=>Aa]],iue=[3,C,kZe,0,[cce,Hs,ay],[()=>rme,0,0],1],aue=[3,C,NZe,0,[Bit,lg,ms],[()=>rme,()=>sme,()=>yg]],C4=[3,C,sae,0,[ty,Hnt],[0,4]],cue=[3,C,set,0,[vc,cae,pg],[()=>Aa,0,0]],R4=[3,C,uet,0,[iy,gA,gae],[1,1,1]],v4=[3,C,det,0,[pae,Ij],[0,()=>Qpe],1],uue=[-3,C,GZe,{[tt]:ot},[ft,vc],[0,()=>Aa]];Xe.TypeRegistry.for(C).registerError(uue,cI);var lue=[3,C,uae,0,[xa,Ue,Ud,No,Cc,ba],[()=>gs,0,0,128,()=>Ic,0],3],bc=[3,C,ms,0,[Ue,gae,iy,gA,wce,sy,va],[0,1,1,1,()=>R4,()=>Xie,()=>Xie]],x4=[3,C,kj,0,[qZe,Qae],[0,()=>_de],1],due=[-3,C,$Ze,{[tt]:ot},[ft],[0]];Xe.TypeRegistry.for(C).registerError(due,Ub);var pue=[3,C,JZe,0,[Ue,Qt,Nj,sA],[0,0,0,0]],mue=[3,C,BZe,0,[Ue,Dj],[0,0],2],gue=[3,C,UZe,0,[wj],[()=>_4]],fue=[3,C,VZe,0,[Qt,Lo,Xu,Ai,Ii,Ia],[0,()=>wi,()=>Ju,()=>Ti,()=>zs,()=>Eg],3],hue=[3,C,zZe,0,[Rc,Yj],[0,()=>Zpe],2],Sue=[3,C,WZe,0,[aA],[()=>fA]],Eue=[3,C,KZe,0,[Qn],[0],1],yue=[3,C,eet,0,[Qn],[0],1],_ue=[3,C,tet,0,[Qn,cA,Qu,Ku,va,Dce],[0,0,()=>hg,()=>fg,()=>Ype,0],1],Cue=[3,C,iet,0,[ZE,Ue,Lo,sy,va,ty,Ai,dA,pA,f4,d4,Lj,Ia,iot,Ii],[()=>EA,0,()=>wi,()=>$4,()=>yA,0,()=>Ti,()=>dy,()=>Sg,()=>j4,0,2,()=>Eg,0,()=>zs],3],Rue=[3,C,aet,0,[gg],[()=>qd]],vue=[3,C,YZe,0,[met,wrt],[0,64]],xue=[3,C,ug,0,[xa,Ue,Ud,No,Cc,ba],[()=>gs,0,0,128,()=>Ic,0],2],Pue=[3,C,fet,0,[ey],[0],1],bue=[3,C,Eet,0,[Tj],[()=>y4]],Iue=[3,C,ket,0,[Qt],[0],1],Aue=[3,C,qet,0,[Qn],[0],1],Tue=[3,C,jet,0,[Ue,xa,Gj,ry,n4,Hs,ay,Ud,No,Cc,ba],[0,()=>gs,()=>H4,0,0,0,0,0,128,()=>Ic,0],2],wue=[3,C,Het,0,[Aj,ms,lg],[()=>Aa,()=>bc,()=>ly]],Due=[3,C,ttt,0,[Qn],[0],1],Oue=[3,C,rtt,0,[Qn],[0],1],kue=[3,C,Sae,0,[xa],[()=>gs],1],Nue=[3,C,stt,0,[mg,_ae],[0,0],1],Lue=[3,C,ott,0,[Zj],[0]],Mue=[3,C,ctt,0,[Ue],[0],1],Fue=[3,C,ltt,0,[gg],[()=>qd]],Bue=[3,C,het,0,[ey],[0],1],Uue=[3,C,yet,0,[Tj],[()=>y4]],que=[3,C,Ret,0,[Ue],[0],1],$ue=[3,C,vet,0,[kj],[()=>x4]],Gue=[3,C,Pet,0,[Ue,Qt],[0,0],1],jue=[3,C,bet,0,[Ue,Qt,XZe,Nj,jae,Aae,sA],[0,0,64,0,4,()=>Rle,0]],Vue=[3,C,wet,0,[],[]],Hue=[3,C,Det,0,[Pae],[()=>yat],1],zue=[3,C,Aet,0,[Fj],[0],1],Wue=[3,C,Tet,0,[Bj],[()=>b4]],Kue=[3,C,Let,0,[Rc],[0],1],Que=[3,C,Met,0,[aA],[()=>fA]],Xue=[3,C,Bet,0,[Rc],[0],1],Jue=[3,C,Uet,0,[Rc,mce],[0,()=>eme]],Yue=[3,C,Vet,0,[jj],[0],1],Zue=[3,C,zet,0,[Kj],[()=>A4],1],ele=[3,C,Qet,0,[Ue],[0],1],tle=[3,C,Xet,0,[Ue,$ae],[0,()=>Oat]],rle=[3,C,Zet,0,[],[]],nle=[3,C,ett,0,[eZe,tZe,oit,iit],[1,1,1,1]],sle=[3,C,utt,0,[Ue],[0],1],ole=[3,C,dtt,0,[wce],[()=>qd]],ile=[3,C,mtt,0,[Ue],[0],1],ale=[3,C,gtt,0,[l4],[()=>L4]],cle=[3,C,htt,0,[Ue],[0],1],ule=[3,C,Stt,0,[m4],[()=>B4]],lle=[-3,C,Get,{[tt]:ot},[ft],[0]];Xe.TypeRegistry.for(C).registerError(lle,Xb);var P4=[3,C,Uj,0,[bj],[0]],dle=[3,C,Wtt,0,[mZe,ZZe],[0,1],2],ple=[3,C,Ntt,0,[c4,Jj,cg,Pa,Hs,dg,ba],[0,()=>G4,2,0,0,1,0],1],mle=[3,C,Ltt,0,[Qj,Pa,ms,Xj],[()=>_A,0,()=>bc,()=>gs]],gle=[3,C,Utt,0,[fit,mae,Hs],[()=>Mat,[0,4],0],1],fle=[3,C,qtt,0,[uA,ms],[()=>Xpe,()=>yg]],hle=[3,C,Rtt,0,[S4,Ktt,pae,Ij],[()=>Mo,2,0,()=>Qpe]],Sle=[-3,C,xtt,{[tt]:ot},[ft],[0]];Xe.TypeRegistry.for(C).registerError(Sle,Zb);var b4=[3,C,Bj,0,[Fj,Cae,a4,qj,Att,xc,uy,xae,oA,s4,o4,Cce,Rce,Pce,Iae,wae,yae,bZe,ny,$j,Vj],[0,0,4,4,0,0,0,4,0,0,0,0,0,0,0,0,0,1,1,0,()=>T4]],Ele=[-3,C,wtt,{[tt]:ot},[ft],[0]];Xe.TypeRegistry.for(C).registerError(Ele,Wb);var yle=[3,C,Ftt,0,[Fj,Cae,$j],[0,0,0]],_le=[3,C,jtt,0,[xc,s4,xae,oA,o4,Cce,Rce,Pce,yae,$j,Vj],[0,0,4,[0,4],0,0,0,0,0,0,()=>T4],2],Cle=[3,C,Vtt,0,[Bj],[()=>b4]],Rle=[3,C,Aae,0,[Ttt,Ptt],[0,0]],vle=[3,C,Dae,0,[xa,Ue,oy,No],[()=>gs,0,0,128],2],xle=[3,C,Jtt,0,[Ue,xa,nA,cg,Hs,oy,No],[0,()=>gs,64,2,0,0,128],2],Ple=[3,C,Ytt,0,[vc,ms],[()=>Aa,()=>bc]],ble=[3,C,ert,0,[mg],[0],1],Ile=[3,C,trt,0,[sce,Zj],[0,0]],Ale=[3,C,drt,0,[Qt,Lo,Xu,Ai,Ii,Ia],[0,()=>wi,()=>Ju,()=>Ti,()=>zs,()=>Eg],3],Tle=[3,C,rrt,0,[Qt,rce],[0,()=>Pc]],wle=[3,C,srt,0,[Qt,Lo,Xu,Wj,gZe,Ai,Fae,ny,Lae,Ii,Ia],[0,()=>wi,()=>Ju,0,2,()=>k4,1,1,0,()=>zs,()=>I4]],Dle=[3,C,irt,0,[Qt,Lo,Xu,Ai,Ii],[0,()=>wi,()=>Ju,()=>Ti,()=>zs]],Ole=[3,C,crt,0,[mA,iA,ug],[()=>wpe,()=>fue,()=>Iue]],I4=[3,C,lrt,0,[t4,E4,u4],[1,1,0]],kle=[3,C,prt,0,[Rc,Yj],[0,()=>Zpe]],Nle=[-3,C,grt,{[tt]:ot},[ft],[0]];Xe.TypeRegistry.for(C).registerError(Nle,jb);var fA=[3,C,aA,0,[Yj,mrt,lae,Crt,Rc],[()=>Jpe,0,4,0,0]],Lle=[3,C,Nae,0,[Qt,nce,Pst],[0,1,()=>Pc],1],Mle=[-3,C,Ert,{[tt]:ot},[ft],[0]];Xe.TypeRegistry.for(C).registerError(Mle,Kb);var Fle=[3,C,xrt,0,[Qn,aat],[0,0]],Ble=[3,C,brt,0,[iA,ug],[()=>Eue,()=>Aue]],Ule=[-3,C,Vrt,{[tt]:ot},[pg],[0]];Xe.TypeRegistry.for(C).registerError(Ule,Jb);var qle=[-3,C,Drt,{[tt]:ot},[ft],[0]];Xe.TypeRegistry.for(C).registerError(qle,rI);var $le=[-3,C,Grt,{[tt]:ot},[ft],[0]];Xe.TypeRegistry.for(C).registerError($le,Qb);var Gle=[3,C,Qrt,0,[jj,Uae,xc,lA,fae,Hj,a4,qj],[0,0,0,()=>hA,0,0,4,4]],A4=[3,C,Kj,0,[jj,Uae,xc,uy,oA,lA,vtt,fae,Hj,zj,Mae,p4,a4,qj,Est,rst,qrt,Iae,wae],[0,0,0,0,0,()=>hA,1,0,0,()=>w4,0,()=>M4,4,4,1,1,1,0,0]],jle=[3,C,Jrt,0,[lA,Hj,p4,oA,zj,Mae],[()=>hA,0,()=>M4,[0,4],()=>w4,0],3],Vle=[3,C,Yrt,0,[Kj],[()=>A4],1],T4=[3,C,Vj,0,[btt,$tt,ztt],[4,4,0]],Hle=[-3,C,jrt,{[tt]:ot},[ft],[0]];Xe.TypeRegistry.for(C).registerError(Hle,aI);var w4=[3,C,zj,0,[pet],[()=>vue]],zle=[-3,C,Krt,{[tt]:pat},[ft],[0]];Xe.TypeRegistry.for(C).registerError(zle,Db);var Wle=[-3,C,Brt,{[tt]:ot,[$ce]:421},[pg],[0]];Xe.TypeRegistry.for(C).registerError(Wle,Nb);var Kle=[-3,C,Urt,{[tt]:ot},[ft],[0]];Xe.TypeRegistry.for(C).registerError(Kle,eI);var Qle=[-3,C,Wrt,{[tt]:ot},[ft],[0]];Xe.TypeRegistry.for(C).registerError(Qle,sI);var ly=[3,C,lg,0,[Ort,wot],[()=>ect,65]],Xle=[-3,C,Mrt,{[tt]:ot},[ft],[0]];Xe.TypeRegistry.for(C).registerError(Xle,Fb);var Jle=[3,C,Hrt,0,[vc],[()=>Aa]],Yle=[3,C,Zrt,0,[cnt,nA,cg,oy,No],[()=>Dat,64,2,0,128],1],Zle=[3,C,int,0,[rA,ant],[0,0],2],ede=[3,C,tnt,0,[cy,Mj,itt,bj],[0,0,0,0]],D4=[3,C,snt,0,[Ue,cy,Uj],[0,0,()=>P4],2],O4=[3,C,ont,0,[Ue,cy,Mj,Uj],[0,0,0,()=>P4]],tde=[-3,C,ynt,{[tt]:ot},[ft],[0]];Xe.TypeRegistry.for(C).registerError(tde,qb);var rde=[3,C,dnt,0,[Ue,dg,dit,pit,Ott,Oj],[0,1,4,4,0,0]],nde=[3,C,pnt,0,[aae,Ent],[()=>hat,0]],sde=[3,C,gnt,0,[Ue,Pa,Vae],[0,0,1]],ode=[3,C,fnt,0,[dae,Pa],[()=>Eat,0]],ide=[3,C,Cnt,0,[xc,Vae,Pa],[0,1,0]],ade=[3,C,Rnt,0,[vae,Pa],[()=>_at,0]],cde=[3,C,Pnt,0,[ktt,dg,Qn],[0,1,0]],ude=[3,C,bnt,0,[Trt,_nt],[()=>bat,0]],lde=[3,C,Tnt,0,[xc,Sst,Pa],[0,1,0]],dde=[3,C,wnt,0,[Bae,Pa],[()=>Tat,0]],pde=[3,C,qnt,0,[Mtt,dg],[0,1]],mde=[3,C,$nt,0,[cit,vnt],[64,0]],gde=[3,C,jnt,0,[mg,Pa],[0,0],1],fde=[3,C,Vnt,0,[f4,Pa],[()=>j4,0]],hde=[3,C,Fnt,0,[Qt,Lo,Xu],[0,()=>wi,()=>Ju],3],Sde=[3,C,knt,0,[Qt,Lo,Xu,Fae,ny,Lae],[0,()=>wi,()=>Ju,1,1,0]],Ede=[3,C,Lnt,0,[Qt,Lo,Xu],[0,()=>wi,()=>Ju]],zs=[3,C,Ii,0,[zae,Knt],[1,1]],fg=[3,C,Ku,0,[zae],[1]],yde=[3,C,_st,0,[c4,Jj,ba],[0,()=>G4,0],1],_de=[3,C,Qae,0,[ast,uce,Dtt,Dnt],[0,1,4,4]],Cde=[3,C,Xae,0,[ist,uce],[2,1],1],Rde=[-3,C,cst,{[tt]:ot},[ft],[0]];Xe.TypeRegistry.for(C).registerError(Rde,tI);var vde=[-3,C,ust,{[tt]:ot},[ft],[0]];Xe.TypeRegistry.for(C).registerError(vde,zb);var Ju=[3,C,Xu,0,[xst,Jnt],[0,64]],Ti=[3,C,Ai,0,[iy,gA],[1,1],2],k4=[3,C,Rst,0,[Ant,hnt,Ynt,iy,gA],[4,4,1,1,1]],xde=[-3,C,vst,{[tt]:ot},[ft,Nce],[0,()=>V4]];Xe.TypeRegistry.for(C).registerError(xde,Lb);var hg=[3,C,Qu,0,[iy],[1]],Pde=[3,C,oce,0,[vc,Ue,Ud,No,Cc,ba],[()=>z4,0,0,128,()=>Ic,0],2],bde=[3,C,nst,0,[Ue,vc,Gj,n4,Hs,ay,ry,Ud,No,Cc,ba],[0,()=>z4,()=>H4,0,0,0,0,0,128,()=>Ic,0],2],Ide=[3,C,ost,0,[Aj,ms,lg],[()=>Aa,()=>bc,()=>ly]],Ade=[3,C,Yae,0,[vc],[()=>z4],1],Tde=[3,C,fst,0,[mg,sce,_ae,net],[0,0,0,[2,{[uat]:gat}]],2],wde=[3,C,hst,0,[Zj],[0]],Dde=[3,C,Ast,0,[Ue,Qt,Tce,nA,dg,cg,qae,Ist,ry,Not,Rae,Hs,oy,Tae,ent,No,Cc],[0,0,0,64,1,2,()=>tct,()=>nme,0,2,()=>gs,0,0,0,0,128,()=>Ic],1],Ode=[3,C,Tst,0,[Qj,hae,Ece,Xj,ms],[()=>_A,1,1,()=>gs,()=>bc]],kde=[3,C,Pot,0,[Qn],[0]],Nde=[-3,C,wst,{[tt]:ot},[ft],[0]];Xe.TypeRegistry.for(C).registerError(Nde,oI);var Lde=[3,C,Dst,0,[Qn,va,lce,pce,e4],[0,()=>$at,()=>_c,()=>_c,0]],Mde=[3,C,kst,0,[Qn,Xst,cot],[0,()=>Gat,()=>Pc],1],Fde=[3,C,Mst,0,[Qn,e4,lot,mot,cA,Qu,Ku,Ia,va,Zst,hce],[0,0,0,0,0,()=>hg,()=>fg,()=>F4,()=>jat,4,()=>SA]],Bde=[3,C,Bst,0,[Qt,Qu,Ku],[0,()=>hg,()=>fg],1],Ude=[3,C,Ust,0,[Qt,Wj,Zae,tce],[0,0,()=>_c,()=>_c]],qde=[3,C,$st,0,[Qt,mst],[0,()=>Pc]],$de=[3,C,jst,0,[Qt,Qu,Ku,Ia],[0,()=>hg,()=>fg,()=>I4]],Gde=[3,C,Wst,0,[Qt,Wj,ece,Zae,nce,tce],[0,0,1,()=>_c,1,()=>_c],1],jde=[3,C,ace,0,[Qt,ece,pst],[0,1,()=>Pc],1],Vde=[-3,C,sot,{[tt]:ot},[ft],[0]];Xe.TypeRegistry.for(C).registerError(Vde,iI);var Hde=[3,C,pot,0,[Qn,e4,Lst,dce,lce,uot,pce,zst,hce],[0,0,()=>C4,1,()=>_c,1,()=>_c,()=>Vat,()=>SA],1],zde=[3,C,gce,0,[Qn,dce,aot,ace,fot],[0,1,()=>Pc,()=>Hat,0],1],Wde=[-3,C,xot,{[tt]:ot},[ft],[0]];Xe.TypeRegistry.for(C).registerError(Wde,Bb);var Kde=[3,C,Jst,0,[iA,mA,ug],[()=>_ue,()=>Upe,()=>Oue]],Qde=[3,C,Rot,0,[iA,ug],[()=>yue,()=>Due]],Xde=[-3,C,not,{[tt]:ot},[ft,Nce],[0,()=>V4]];Xe.TypeRegistry.for(C).registerError(Xde,Ob);var Jde=[-3,C,tot,{[tt]:ot},[ft],[0]];Xe.TypeRegistry.for(C).registerError(Jde,Vb);var Yde=[-3,C,oot,{[tt]:ot},[ft],[0]];Xe.TypeRegistry.for(C).registerError(Yde,Mb);var Zde=[3,C,fce,0,[ice,eot,Iot,bce],[4,2,0,0],2],epe=[3,C,Sot,0,[Fce,ey,nae,Oae,Gae,Qu,Ku,vce],[0,0,0,()=>yA,()=>$4,()=>Ti,()=>zs,()=>Sg],2],tpe=[3,C,Eot,0,[gg],[()=>qd]],rpe=[3,C,_ot,0,[Fce,bce,qot,zit,ice,nae,Oae,Gae,Qu,Ku,vce],[0,0,0,2,4,0,()=>yA,()=>$4,()=>Ti,()=>zs,()=>Sg],1],npe=[3,C,Cot,0,[gg],[()=>qd]],hA=[3,C,lA,0,[s4,o4,Lot],[0,0,0],1],spe=[3,C,Oot,0,[Ue,Qt,nA,dg,Tce,Dot,ry,Rae,Hs,hit,Vot,oy,Tae,No,Cc,cg],[0,0,64,1,0,()=>nme,0,()=>gs,0,1,1,0,0,128,()=>Ic,2],1],ope=[3,C,Mot,0,[Qj,hae,Ece,Xj,ms],[()=>_A,1,1,()=>gs,()=>bc]],ipe=[3,C,Ice,0,[Ue,uy,Lo,zot,Ai,xc,Lce,Ii,ny,ty],[0,0,()=>wi,4,()=>Ti,0,1,()=>zs,1,0],5],ape=[3,C,Ace,0,[sy,va,Aot,m4,i4],[()=>Lat,()=>vat,()=>dy,()=>B4,()=>N4]],N4=[3,C,i4,0,[u4,xce,nnt,Frt],[0,0,0,4]],Sg=[3,C,pA,0,[bae,xce,cA],[2,0,0]],dy=[3,C,dA,0,[Tot,$ot],[2,0],1],cpe=[-3,C,Hot,{[tt]:ot},[ft],[0]];Xe.TypeRegistry.for(C).registerError(cpe,nI);var L4=[3,C,l4,0,[Ue,Mce,Sce],[0,0,()=>Uat]],SA=[3,C,Oce,0,[d4,jae],[0,4]],M4=[3,C,p4,0,[Ue,ZE,Lo,ty,Ai,Ii,pA,va],[0,()=>EA,()=>wi,0,()=>Ti,()=>zs,()=>Sg,()=>yA],3],qd=[3,C,gg,0,[ZE,Ue,Lo,Mce,lae,Ai,Lce,ny,xc,uy,sae,sy,va,dA,Bnt,Ont,Rrt,Sce,vrt,fce,i4,Jie,Oce,Lj,Ii,Ia,Hae],[()=>EA,0,()=>wi,0,4,()=>k4,1,1,0,0,()=>C4,()=>Nat,()=>Rat,()=>dy,0,0,0,()=>Jpe,()=>Iat,()=>Zde,()=>N4,()=>jce,()=>SA,2,()=>zs,()=>F4,0]],upe=[-3,C,rit,{[tt]:ot},[ft],[0]];Xe.TypeRegistry.for(C).registerError(upe,$b);var lpe=[-3,C,ait,{[tt]:ot},[ft],[0]];Xe.TypeRegistry.for(C).registerError(lpe,Gb);var F4=[3,C,vit,0,[t4,E4,u4],[1,1,0]],dpe=[3,C,xit,0,[xa,S4],[0,0],2],ppe=[3,C,uit,0,[mg,f4],[0,()=>j4],2],mpe=[-3,C,Qot,{[cat]:["Throttling",400],[tt]:ot,[$ce]:400},[ft,mat],[0,()=>V4]];Xe.TypeRegistry.for(C).registerError(mpe,kb);var gpe=[3,C,git,0,[lat,dat],[0,0]],B4=[3,C,m4,0,[Sit,rA],[0,0]],U4=[3,C,g4,0,[bae,rA],[2,0],2],fpe=[3,C,Xot,0,[Dae],[()=>vle],1],hpe=[3,C,Jot,0,[kce,Hs],[()=>Qat,0],1],Spe=[3,C,Zot,0,[ms,uA],[()=>yg,()=>Xpe]],Epe=[-3,C,Wot,{[tt]:ot},[pg,oet],[0,()=>Sat]];Xe.TypeRegistry.for(C).registerError(Epe,uI);var ype=[-3,C,Kot,{[tt]:ot},[ft],[0]];Xe.TypeRegistry.for(C).registerError(ype,Hb);var _pe=[-3,C,tit,{[tt]:ot},[pg],[0]];Xe.TypeRegistry.for(C).registerError(_pe,Yb);var Cpe=[3,C,Eit,0,[uae,oce,ug,mA],[()=>lue,()=>Pde,()=>xue,()=>Ppe]],Rpe=[3,C,yit,0,[kce,Hs,ay,mae],[()=>Xat,0,0,[0,4]],1],vpe=[3,C,Cit,0,[ms,lg],[()=>yg,()=>sme]],xpe=[3,C,Qit,0,[mg,nit],[0,64],2],Ppe=[3,C,mA,0,[xa,qce,Ue,Ud,No,Cc,ba],[()=>gs,0,0,0,128,()=>Ic,0],3],bpe=[3,C,bit,0,[Ue,Xae],[0,()=>Cde],2],Ipe=[3,C,Iit,0,[kj],[()=>x4]],Ape=[3,C,Tit,0,[Ue,QZe,Qt,sA],[0,0,0,0],2],Tpe=[3,C,wit,0,[Ue,Qt,Nj,sA],[0,0,0,0]],wpe=[3,C,Dit,0,[Qt,Ai,Ii,Ia],[0,()=>Ti,()=>zs,()=>Eg],1],Dpe=[3,C,kit,0,[Rc,r4],[0,()=>Kat],2],Ope=[3,C,Nit,0,[aA],[()=>fA]],kpe=[3,C,Mit,0,[Rc,frt,_rt,yrt,Nae,gce],[0,0,1,()=>Pc,()=>Pat,()=>zat],1],Npe=[3,C,Fit,0,[Rc,mce],[0,()=>eme]],Lpe=[3,C,Uit,0,[Ue,xa,eae,Gj,ry,n4,Hs,ay,qce,Ud,No,Cc,ba],[0,()=>gs,()=>Yat,()=>H4,0,0,0,0,0,0,128,()=>Ic,0],2],Mpe=[3,C,qit,0,[Aj,ms,lg],[()=>Aa,()=>bc,()=>ly]],q4=[3,C,h4,0,[bj],[0]],Fpe=[3,C,Vit,0,[Ue,cy,h4],[0,0,()=>q4],2],Bpe=[3,C,Hit,0,[Ue,cy,Mj,h4],[0,0,0,()=>q4]],Upe=[3,C,Kit,0,[Qn,cA,Qu,Ku,va,Dce],[0,0,()=>hg,()=>fg,()=>Ype,0],1],qpe=[3,C,Jit,0,[Ue,ZE,ty,Ai,kae,dA,pA,r4,d4,Lj,Hae,Art,Ii,Ia],[0,()=>EA,0,()=>Ti,()=>xat,()=>dy,()=>Sg,()=>Wat,0,2,0,()=>Aat,()=>zs,()=>Eg],1],$pe=[3,C,Yit,0,[gg],[()=>qd]],Gpe=[3,C,eat,0,[Ue,kae,rce,r4],[0,()=>Cat,()=>Pc,()=>qat],1],jpe=[3,C,tat,0,[l4],[()=>L4]],Vpe=[3,C,nat,0,[Ue,g4],[0,()=>U4],2],Hpe=[3,C,sat,0,[g4],[()=>U4]],Eg=[3,C,Ia,0,[t4,E4],[1,1]],zpe=[3,C,oat,0,[Yae,Sae],[()=>Ade,()=>kue]],Wpe="unit",Kpe=[-3,Gce,"DynamoDBServiceException",0,[],[]];Xe.TypeRegistry.for(Gce).registerError(Kpe,We);var EA=[1,C,ZE,0,()=>Vce],Qpe=[1,C,Ij,0,()=>Mo],fat=[1,C,sZe,0,()=>zce],hat=[1,C,aae,0,()=>Yce],Sat=[1,C,ret,0,()=>cue],yg=[1,C,jZe,0,()=>bc],Eat=[1,C,dae,0,()=>pue],yat=[1,C,Pae,0,()=>dle],_at=[1,C,vae,0,()=>yle],Cat=[1,C,nrt,0,()=>Tle],Rat=[1,C,ort,0,()=>wle],vat=[1,C,va,0,()=>Dle],yA=[1,C,art,0,()=>Ale],xat=[1,C,urt,0,()=>Ole],Pat=[1,C,hrt,0,()=>Lle],bat=[1,C,Srt,0,()=>kle],Iat=[1,C,Prt,0,()=>Fle],Aat=[1,C,Irt,0,()=>Ble],Tat=[1,C,Bae,0,()=>Gle],wat=[1,C,Nrt,0,()=>ly],_A=[1,C,$rt,0,()=>Aa],Xpe=[1,C,zrt,0,()=>Jle],Dat=[1,C,rnt,0,()=>gs],wi=[1,C,Lo,0,()=>Zle],Oat=[1,C,$ae,0,()=>ede],kat=[1,C,unt,0,()=>Mo],Nat=[1,C,Nnt,0,()=>Sde],Lat=[1,C,sy,0,()=>Ede],$4=[1,C,Mnt,0,()=>hde],Mat=[1,C,Cst,0,()=>yde],Fat=[1,C,lst,0,()=>sue],Bat=[1,C,dst,0,()=>oue],G4=[1,C,yst,0,()=>Mo],Uat=[1,C,Ost,0,()=>Lde],qat=[1,C,Nst,0,()=>Mde],Jpe=[1,C,Fst,0,()=>Fde],$at=[1,C,qst,0,()=>Ude],Gat=[1,C,Gst,0,()=>qde],jat=[1,C,Vst,0,()=>$de],Ype=[1,C,Hst,0,()=>Bde],Vat=[1,C,Kst,0,()=>Gde],Hat=[1,C,Qst,0,()=>jde],Zpe=[1,C,rot,0,()=>kde],eme=[1,C,dot,0,()=>Hde],zat=[1,C,got,0,()=>zde],Wat=[1,C,Yst,0,()=>Kde],Kat=[1,C,vot,0,()=>Qde],j4=[1,C,sit,0,()=>dpe],V4=[1,C,lit,0,()=>gpe],Qat=[1,C,Yot,0,()=>fpe],Xat=[1,C,_it,0,()=>Cpe],Jat=[1,C,iat,0,()=>zpe],Aa=[2,C,Z7e,0,0,()=>Mo],Yat=[2,C,eae,0,0,()=>Hce],tme=[2,C,RZe,0,0,()=>Yle],Zat=[2,C,CZe,0,0,()=>_A],rme=[2,C,LZe,0,0,()=>Jat],H4=[2,C,_tt,0,0,()=>hle],Ic=[2,C,Ctt,0,0,()=>Mo],nme=[2,C,Qtt,0,0,()=>v4],ect=[2,C,krt,0,0,()=>Mo],sme=[2,C,Lrt,0,0,()=>wat],gs=[2,C,xa,0,0,()=>Mo],tct=[2,C,qae,0,0,()=>v4],rct=[2,C,Wnt,0,0,()=>Mo],z4=[2,C,sst,0,0,()=>Mo],Xie=[2,C,kot,0,0,()=>R4],Mo=[4,C,dZe,0,[Got,Xnt,MZe,Uot,Znt,wZe,Qnt,znt,est,PZe],[0,0,21,64,64,85,()=>rct,()=>kat,2,2]],ome=[9,C,fZe,0,()=>Zce,()=>eue],ime=[9,C,EZe,0,()=>tue,()=>rue],ame=[9,C,OZe,0,()=>iue,()=>aue],cme=[9,C,FZe,0,()=>mue,()=>gue],ume=[9,C,HZe,0,()=>hue,()=>Sue],lme=[9,C,cet,0,()=>Cue,()=>Rue],dme=[9,C,get,0,()=>Pue,()=>bue],pme=[9,C,$et,0,()=>Tue,()=>wue],mme=[9,C,ntt,0,()=>Nue,()=>Lue],gme=[9,C,att,0,()=>Mue,()=>Fue],fme=[9,C,_et,0,()=>Bue,()=>Uue],hme=[9,C,Cet,0,()=>que,()=>$ue],Sme=[9,C,xet,0,()=>Gue,()=>jue],Eme=[9,C,Iet,0,()=>Vue,()=>Hue],yme=[9,C,Oet,0,()=>zue,()=>Wue],_me=[9,C,Net,0,()=>Kue,()=>Que],Cme=[9,C,Fet,0,()=>Xue,()=>Jue],Rme=[9,C,Wet,0,()=>Yue,()=>Zue],vme=[9,C,Ket,0,()=>ele,()=>tle],xme=[9,C,Yet,0,()=>rle,()=>nle],Pme=[9,C,Ett,0,()=>sle,()=>ole],bme=[9,C,ptt,0,()=>ile,()=>ale],Ime=[9,C,ftt,0,()=>cle,()=>ule],Ame=[9,C,Jet,0,()=>D4,()=>O4],Tme=[9,C,Itt,0,()=>D4,()=>O4],wme=[9,C,Btt,0,()=>ple,()=>mle],Dme=[9,C,Htt,0,()=>gle,()=>fle],Ome=[9,C,Gtt,0,()=>_le,()=>Cle],kme=[9,C,Xtt,0,()=>xle,()=>Ple],Nme=[9,C,Ztt,0,()=>ble,()=>Ile],Lme=[9,C,Xrt,0,()=>jle,()=>Vle],Mme=[9,C,lnt,0,()=>rde,()=>nde],Fme=[9,C,mnt,0,()=>sde,()=>ode],Bme=[9,C,Snt,0,()=>ide,()=>ade],Ume=[9,C,xnt,0,()=>cde,()=>ude],qme=[9,C,Int,0,()=>lde,()=>dde],$me=[9,C,Unt,0,()=>pde,()=>mde],Gme=[9,C,Gnt,0,()=>gde,()=>fde],jme=[9,C,tst,0,()=>bde,()=>Ide],Vme=[9,C,gst,0,()=>Tde,()=>wde],Hme=[9,C,bst,0,()=>Dde,()=>Ode],zme=[9,C,hot,0,()=>epe,()=>tpe],Wme=[9,C,yot,0,()=>rpe,()=>npe],Kme=[9,C,jot,0,()=>spe,()=>ope],Qme=[9,C,mit,0,()=>ppe,()=>Wpe],Xme=[9,C,eit,0,()=>hpe,()=>Spe],Jme=[9,C,Rit,0,()=>Rpe,()=>vpe],Yme=[9,C,Wit,0,()=>xpe,()=>Wpe],Zme=[9,C,Pit,0,()=>bpe,()=>Ipe],ege=[9,C,Ait,0,()=>Ape,()=>Tpe],tge=[9,C,Oit,0,()=>Dpe,()=>Ope],rge=[9,C,Lit,0,()=>kpe,()=>Npe],nge=[9,C,$it,0,()=>Lpe,()=>Mpe],sge=[9,C,jit,0,()=>Fpe,()=>Bpe],oge=[9,C,Xit,0,()=>qpe,()=>$pe],ige=[9,C,Zit,0,()=>Gpe,()=>jpe],age=[9,C,rat,0,()=>Vpe,()=>Hpe],GE=class extends pe.Command.classBuilder().ep(_e).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","DescribeEndpoints",{}).n("DynamoDBClient","DescribeEndpointsCommand").sc(Eme).build(){},nct=t=>{let e=t.httpAuthSchemes,r=t.httpAuthSchemeProvider,n=t.credentials;return{setHttpAuthScheme(s){let o=e.findIndex(i=>i.schemeId===s.schemeId);o===-1?e.push(s):e.splice(o,1,s)},httpAuthSchemes(){return e},setHttpAuthSchemeProvider(s){r=s},httpAuthSchemeProvider(){return r},setCredentials(s){n=s},credentials(){return n}}},sct=t=>({httpAuthSchemes:t.httpAuthSchemes(),httpAuthSchemeProvider:t.httpAuthSchemeProvider(),credentials:t.credentials()}),oct=(t,e)=>{let r=Object.assign(Kie.getAwsRegionExtensionConfiguration(t),pe.getDefaultExtensionConfiguration(t),Qie.getHttpHandlerExtensionConfiguration(t),nct(t));return e.forEach(n=>n.configure(r)),Object.assign(t,Kie.resolveAwsRegionExtensionConfiguration(r),pe.resolveDefaultRuntimeConfig(r),Qie.resolveHttpHandlerRuntimeConfig(r),sct(r))},Ra=class extends pe.Client{config;constructor(...[e]){let r=W7e.getRuntimeConfig(e||{});super(r),this.initConfig=r;let n=K7e(r),s=$7e.resolveAccountIdEndpointModeConfig(n),o=Hie.resolveUserAgentConfig(s),i=zie.resolveRetryConfig(o),a=H7e.resolveRegionConfig(i),c=Vie.resolveHostHeaderConfig(a),u=Se.resolveEndpointConfig(c),l=Wie.resolveHttpAuthSchemeConfig(u),d=G7e.resolveEndpointDiscoveryConfig(l,{endpointDiscoveryCommandCtor:GE}),p=oct(d,e?.extensions||[]);this.config=p,this.middlewareStack.use(Xe.getSchemaSerdePlugin(this.config)),this.middlewareStack.use(Hie.getUserAgentPlugin(this.config)),this.middlewareStack.use(zie.getRetryPlugin(this.config)),this.middlewareStack.use(z7e.getContentLengthPlugin(this.config)),this.middlewareStack.use(Vie.getHostHeaderPlugin(this.config)),this.middlewareStack.use(j7e.getLoggerPlugin(this.config)),this.middlewareStack.use(V7e.getRecursionDetectionPlugin(this.config)),this.middlewareStack.use(yc.getHttpAuthSchemeEndpointRuleSetPlugin(this.config,{httpAuthSchemeParametersProvider:Wie.defaultDynamoDBHttpAuthSchemeParametersProvider,identityProviderConfigProvider:async g=>new yc.DefaultIdentityProviderConfig({"aws.auth#sigv4":g.credentials})})),this.middlewareStack.use(yc.getHttpSigningPlugin(this.config))}destroy(){super.destroy()}},lI=class extends pe.Command.classBuilder().ep(_e).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","BatchExecuteStatement",{}).n("DynamoDBClient","BatchExecuteStatementCommand").sc(ome).build(){},dI=class extends pe.Command.classBuilder().ep({..._e,ResourceArnList:{type:"operationContextParams",get:e=>Object.keys(e?.RequestItems??{})}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","BatchGetItem",{}).n("DynamoDBClient","BatchGetItemCommand").sc(ime).build(){},pI=class extends pe.Command.classBuilder().ep({..._e,ResourceArnList:{type:"operationContextParams",get:e=>Object.keys(e?.RequestItems??{})}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","BatchWriteItem",{}).n("DynamoDBClient","BatchWriteItemCommand").sc(ame).build(){},mI=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"TableName"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","CreateBackup",{}).n("DynamoDBClient","CreateBackupCommand").sc(cme).build(){},gI=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"GlobalTableName"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","CreateGlobalTable",{}).n("DynamoDBClient","CreateGlobalTableCommand").sc(ume).build(){},fI=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"TableName"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","CreateTable",{}).n("DynamoDBClient","CreateTableCommand").sc(lme).build(){},hI=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"BackupArn"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","DeleteBackup",{}).n("DynamoDBClient","DeleteBackupCommand").sc(dme).build(){},SI=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"TableName"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","DeleteItem",{}).n("DynamoDBClient","DeleteItemCommand").sc(pme).build(){},EI=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"ResourceArn"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","DeleteResourcePolicy",{}).n("DynamoDBClient","DeleteResourcePolicyCommand").sc(mme).build(){},yI=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"TableName"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","DeleteTable",{}).n("DynamoDBClient","DeleteTableCommand").sc(gme).build(){},_I=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"BackupArn"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","DescribeBackup",{}).n("DynamoDBClient","DescribeBackupCommand").sc(fme).build(){},CI=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"TableName"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","DescribeContinuousBackups",{}).n("DynamoDBClient","DescribeContinuousBackupsCommand").sc(hme).build(){},jE=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"TableName"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","DescribeContributorInsights",{}).n("DynamoDBClient","DescribeContributorInsightsCommand").sc(Sme).build(){},VE=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"ExportArn"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","DescribeExport",{}).n("DynamoDBClient","DescribeExportCommand").sc(yme).build(){},RI=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"GlobalTableName"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","DescribeGlobalTable",{}).n("DynamoDBClient","DescribeGlobalTableCommand").sc(_me).build(){},vI=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"GlobalTableName"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","DescribeGlobalTableSettings",{}).n("DynamoDBClient","DescribeGlobalTableSettingsCommand").sc(Cme).build(){},HE=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"ImportArn"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","DescribeImport",{}).n("DynamoDBClient","DescribeImportCommand").sc(Rme).build(){},zE=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"TableName"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","DescribeKinesisStreamingDestination",{}).n("DynamoDBClient","DescribeKinesisStreamingDestinationCommand").sc(vme).build(){},xI=class extends pe.Command.classBuilder().ep(_e).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","DescribeLimits",{}).n("DynamoDBClient","DescribeLimitsCommand").sc(xme).build(){},ag=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"TableName"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","DescribeTable",{}).n("DynamoDBClient","DescribeTableCommand").sc(Pme).build(){},PI=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"TableName"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","DescribeTableReplicaAutoScaling",{}).n("DynamoDBClient","DescribeTableReplicaAutoScalingCommand").sc(bme).build(){},bI=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"TableName"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","DescribeTimeToLive",{}).n("DynamoDBClient","DescribeTimeToLiveCommand").sc(Ime).build(){},II=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"TableName"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","DisableKinesisStreamingDestination",{}).n("DynamoDBClient","DisableKinesisStreamingDestinationCommand").sc(Ame).build(){},AI=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"TableName"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","EnableKinesisStreamingDestination",{}).n("DynamoDBClient","EnableKinesisStreamingDestinationCommand").sc(Tme).build(){},TI=class extends pe.Command.classBuilder().ep(_e).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","ExecuteStatement",{}).n("DynamoDBClient","ExecuteStatementCommand").sc(wme).build(){},wI=class extends pe.Command.classBuilder().ep(_e).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","ExecuteTransaction",{}).n("DynamoDBClient","ExecuteTransactionCommand").sc(Dme).build(){},DI=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"TableArn"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","ExportTableToPointInTime",{}).n("DynamoDBClient","ExportTableToPointInTimeCommand").sc(Ome).build(){},OI=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"TableName"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","GetItem",{}).n("DynamoDBClient","GetItemCommand").sc(kme).build(){},kI=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"ResourceArn"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","GetResourcePolicy",{}).n("DynamoDBClient","GetResourcePolicyCommand").sc(Nme).build(){},NI=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"operationContextParams",get:e=>e?.TableCreationParameters?.TableName}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","ImportTable",{}).n("DynamoDBClient","ImportTableCommand").sc(Lme).build(){},LI=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"TableName"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","ListBackups",{}).n("DynamoDBClient","ListBackupsCommand").sc(Mme).build(){},WE=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"TableName"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","ListContributorInsights",{}).n("DynamoDBClient","ListContributorInsightsCommand").sc(Fme).build(){},KE=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"TableArn"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","ListExports",{}).n("DynamoDBClient","ListExportsCommand").sc(Bme).build(){},MI=class extends pe.Command.classBuilder().ep(_e).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","ListGlobalTables",{}).n("DynamoDBClient","ListGlobalTablesCommand").sc(Ume).build(){},QE=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"TableArn"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","ListImports",{}).n("DynamoDBClient","ListImportsCommand").sc(qme).build(){},XE=class extends pe.Command.classBuilder().ep(_e).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","ListTables",{}).n("DynamoDBClient","ListTablesCommand").sc($me).build(){},FI=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"ResourceArn"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","ListTagsOfResource",{}).n("DynamoDBClient","ListTagsOfResourceCommand").sc(Gme).build(){},BI=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"TableName"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","PutItem",{}).n("DynamoDBClient","PutItemCommand").sc(jme).build(){},UI=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"ResourceArn"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","PutResourcePolicy",{}).n("DynamoDBClient","PutResourcePolicyCommand").sc(Vme).build(){},JE=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"TableName"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","Query",{}).n("DynamoDBClient","QueryCommand").sc(Hme).build(){},qI=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"TargetTableName"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","RestoreTableFromBackup",{}).n("DynamoDBClient","RestoreTableFromBackupCommand").sc(zme).build(){},$I=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"TargetTableName"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","RestoreTableToPointInTime",{}).n("DynamoDBClient","RestoreTableToPointInTimeCommand").sc(Wme).build(){},YE=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"TableName"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","Scan",{}).n("DynamoDBClient","ScanCommand").sc(Kme).build(){},GI=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"ResourceArn"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","TagResource",{}).n("DynamoDBClient","TagResourceCommand").sc(Qme).build(){},jI=class extends pe.Command.classBuilder().ep({..._e,ResourceArnList:{type:"operationContextParams",get:e=>e?.TransactItems?.map(r=>r?.Get?.TableName)}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","TransactGetItems",{}).n("DynamoDBClient","TransactGetItemsCommand").sc(Xme).build(){},VI=class extends pe.Command.classBuilder().ep({..._e,ResourceArnList:{type:"operationContextParams",get:e=>e?.TransactItems?.map(r=>[r?.ConditionCheck?.TableName,r?.Put?.TableName,r?.Delete?.TableName,r?.Update?.TableName].filter(n=>n)).flat()}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","TransactWriteItems",{}).n("DynamoDBClient","TransactWriteItemsCommand").sc(Jme).build(){},HI=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"ResourceArn"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","UntagResource",{}).n("DynamoDBClient","UntagResourceCommand").sc(Yme).build(){},zI=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"TableName"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","UpdateContinuousBackups",{}).n("DynamoDBClient","UpdateContinuousBackupsCommand").sc(Zme).build(){},WI=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"TableName"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","UpdateContributorInsights",{}).n("DynamoDBClient","UpdateContributorInsightsCommand").sc(ege).build(){},KI=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"GlobalTableName"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","UpdateGlobalTable",{}).n("DynamoDBClient","UpdateGlobalTableCommand").sc(tge).build(){},QI=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"GlobalTableName"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","UpdateGlobalTableSettings",{}).n("DynamoDBClient","UpdateGlobalTableSettingsCommand").sc(rge).build(){},XI=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"TableName"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","UpdateItem",{}).n("DynamoDBClient","UpdateItemCommand").sc(nge).build(){},JI=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"TableName"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","UpdateKinesisStreamingDestination",{}).n("DynamoDBClient","UpdateKinesisStreamingDestinationCommand").sc(sge).build(){},YI=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"TableName"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","UpdateTable",{}).n("DynamoDBClient","UpdateTableCommand").sc(oge).build(){},ZI=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"TableName"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","UpdateTableReplicaAutoScaling",{}).n("DynamoDBClient","UpdateTableReplicaAutoScalingCommand").sc(ige).build(){},eA=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"TableName"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","UpdateTimeToLive",{}).n("DynamoDBClient","UpdateTimeToLiveCommand").sc(age).build(){},cge=yc.createPaginator(Ra,WE,"NextToken","NextToken","MaxResults"),uge=yc.createPaginator(Ra,KE,"NextToken","NextToken","MaxResults"),lge=yc.createPaginator(Ra,QE,"NextToken","NextToken","PageSize"),dge=yc.createPaginator(Ra,XE,"ExclusiveStartTableName","LastEvaluatedTableName","Limit"),pge=yc.createPaginator(Ra,JE,"ExclusiveStartKey","LastEvaluatedKey","Limit"),mge=yc.createPaginator(Ra,YE,"ExclusiveStartKey","LastEvaluatedKey","Limit"),gge=async(t,e)=>{let r;try{let n=await t.send(new jE(e));r=n;try{if(n.ContributorInsightsStatus==="ENABLED")return{state:Ze.WaiterState.SUCCESS,reason:r}}catch{}try{if(n.ContributorInsightsStatus==="FAILED")return{state:Ze.WaiterState.FAILURE,reason:r}}catch{}}catch(n){r=n}return{state:Ze.WaiterState.RETRY,reason:r}},ict=async(t,e)=>{let r={minDelay:20,maxDelay:120};return Ze.createWaiter({...r,...t},e,gge)},fge=async(t,e)=>{let r={minDelay:20,maxDelay:120},n=await Ze.createWaiter({...r,...t},e,gge);return Ze.checkExceptions(n)},hge=async(t,e)=>{let r;try{let n=await t.send(new VE(e));r=n;try{if(n.ExportDescription.ExportStatus==="COMPLETED")return{state:Ze.WaiterState.SUCCESS,reason:r}}catch{}try{if(n.ExportDescription.ExportStatus==="FAILED")return{state:Ze.WaiterState.FAILURE,reason:r}}catch{}}catch(n){r=n}return{state:Ze.WaiterState.RETRY,reason:r}},act=async(t,e)=>{let r={minDelay:20,maxDelay:120};return Ze.createWaiter({...r,...t},e,hge)},Sge=async(t,e)=>{let r={minDelay:20,maxDelay:120},n=await Ze.createWaiter({...r,...t},e,hge);return Ze.checkExceptions(n)},Ege=async(t,e)=>{let r;try{let n=await t.send(new HE(e));r=n;try{if(n.ImportTableDescription.ImportStatus==="COMPLETED")return{state:Ze.WaiterState.SUCCESS,reason:r}}catch{}try{if(n.ImportTableDescription.ImportStatus==="FAILED")return{state:Ze.WaiterState.FAILURE,reason:r}}catch{}try{if(n.ImportTableDescription.ImportStatus==="CANCELLED")return{state:Ze.WaiterState.FAILURE,reason:r}}catch{}}catch(n){r=n}return{state:Ze.WaiterState.RETRY,reason:r}},cct=async(t,e)=>{let r={minDelay:20,maxDelay:120};return Ze.createWaiter({...r,...t},e,Ege)},yge=async(t,e)=>{let r={minDelay:20,maxDelay:120},n=await Ze.createWaiter({...r,...t},e,Ege);return Ze.checkExceptions(n)},_ge=async(t,e)=>{let r;try{let n=await t.send(new zE(e));r=n;try{let s=()=>[].concat(...n.KinesisDataStreamDestinations).map(a=>a.DestinationStatus);for(let o of s())if(o=="ACTIVE")return{state:Ze.WaiterState.SUCCESS,reason:r}}catch{}try{if((()=>{let o=n.KinesisDataStreamDestinations.filter(i=>(i.DestinationStatus=="DISABLED"||i.DestinationStatus=="ENABLE_FAILED")&&(i.DestinationStatus=="ENABLE_FAILED"||i.DestinationStatus=="DISABLED"));return n.KinesisDataStreamDestinations.length>0&&o.length==n.KinesisDataStreamDestinations.length})()==!0)return{state:Ze.WaiterState.FAILURE,reason:r}}catch{}}catch(n){r=n}return{state:Ze.WaiterState.RETRY,reason:r}},uct=async(t,e)=>{let r={minDelay:20,maxDelay:120};return Ze.createWaiter({...r,...t},e,_ge)},Cge=async(t,e)=>{let r={minDelay:20,maxDelay:120},n=await Ze.createWaiter({...r,...t},e,_ge);return Ze.checkExceptions(n)},Rge=async(t,e)=>{let r;try{let n=await t.send(new ag(e));r=n;try{if(n.Table.TableStatus==="ACTIVE")return{state:Ze.WaiterState.SUCCESS,reason:r}}catch{}}catch(n){if(r=n,n.name&&n.name=="ResourceNotFoundException")return{state:Ze.WaiterState.RETRY,reason:r}}return{state:Ze.WaiterState.RETRY,reason:r}},lct=async(t,e)=>{let r={minDelay:20,maxDelay:120};return Ze.createWaiter({...r,...t},e,Rge)},vge=async(t,e)=>{let r={minDelay:20,maxDelay:120},n=await Ze.createWaiter({...r,...t},e,Rge);return Ze.checkExceptions(n)},xge=async(t,e)=>{let r;try{r=await t.send(new ag(e))}catch(n){if(r=n,n.name&&n.name=="ResourceNotFoundException")return{state:Ze.WaiterState.SUCCESS,reason:r}}return{state:Ze.WaiterState.RETRY,reason:r}},dct=async(t,e)=>{let r={minDelay:20,maxDelay:120};return Ze.createWaiter({...r,...t},e,xge)},Pge=async(t,e)=>{let r={minDelay:20,maxDelay:120},n=await Ze.createWaiter({...r,...t},e,xge);return Ze.checkExceptions(n)},pct={BatchExecuteStatementCommand:lI,BatchGetItemCommand:dI,BatchWriteItemCommand:pI,CreateBackupCommand:mI,CreateGlobalTableCommand:gI,CreateTableCommand:fI,DeleteBackupCommand:hI,DeleteItemCommand:SI,DeleteResourcePolicyCommand:EI,DeleteTableCommand:yI,DescribeBackupCommand:_I,DescribeContinuousBackupsCommand:CI,DescribeContributorInsightsCommand:jE,DescribeEndpointsCommand:GE,DescribeExportCommand:VE,DescribeGlobalTableCommand:RI,DescribeGlobalTableSettingsCommand:vI,DescribeImportCommand:HE,DescribeKinesisStreamingDestinationCommand:zE,DescribeLimitsCommand:xI,DescribeTableCommand:ag,DescribeTableReplicaAutoScalingCommand:PI,DescribeTimeToLiveCommand:bI,DisableKinesisStreamingDestinationCommand:II,EnableKinesisStreamingDestinationCommand:AI,ExecuteStatementCommand:TI,ExecuteTransactionCommand:wI,ExportTableToPointInTimeCommand:DI,GetItemCommand:OI,GetResourcePolicyCommand:kI,ImportTableCommand:NI,ListBackupsCommand:LI,ListContributorInsightsCommand:WE,ListExportsCommand:KE,ListGlobalTablesCommand:MI,ListImportsCommand:QE,ListTablesCommand:XE,ListTagsOfResourceCommand:FI,PutItemCommand:BI,PutResourcePolicyCommand:UI,QueryCommand:JE,RestoreTableFromBackupCommand:qI,RestoreTableToPointInTimeCommand:$I,ScanCommand:YE,TagResourceCommand:GI,TransactGetItemsCommand:jI,TransactWriteItemsCommand:VI,UntagResourceCommand:HI,UpdateContinuousBackupsCommand:zI,UpdateContributorInsightsCommand:WI,UpdateGlobalTableCommand:KI,UpdateGlobalTableSettingsCommand:QI,UpdateItemCommand:XI,UpdateKinesisStreamingDestinationCommand:JI,UpdateTableCommand:YI,UpdateTableReplicaAutoScalingCommand:ZI,UpdateTimeToLiveCommand:eA},mct={paginateListContributorInsights:cge,paginateListExports:uge,paginateListImports:lge,paginateListTables:dge,paginateQuery:pge,paginateScan:mge},gct={waitUntilContributorInsightsEnabled:fge,waitUntilExportCompleted:Sge,waitUntilImportCompleted:yge,waitUntilKinesisStreamingDestinationActive:Cge,waitUntilTableExists:vge,waitUntilTableNotExists:Pge},tA=class extends Ra{};pe.createAggregatedClient(pct,tA,{paginators:mct,waiters:gct});var fct={MICROSECOND:"MICROSECOND",MILLISECOND:"MILLISECOND"},hct={ADD:"ADD",DELETE:"DELETE",PUT:"PUT"},Sct={B:"B",N:"N",S:"S"},Ect={AVAILABLE:"AVAILABLE",CREATING:"CREATING",DELETED:"DELETED"},yct={AWS_BACKUP:"AWS_BACKUP",SYSTEM:"SYSTEM",USER:"USER"},_ct={PAY_PER_REQUEST:"PAY_PER_REQUEST",PROVISIONED:"PROVISIONED"},Cct={HASH:"HASH",RANGE:"RANGE"},Rct={ALL:"ALL",INCLUDE:"INCLUDE",KEYS_ONLY:"KEYS_ONLY"},vct={AES256:"AES256",KMS:"KMS"},xct={DISABLED:"DISABLED",DISABLING:"DISABLING",ENABLED:"ENABLED",ENABLING:"ENABLING",UPDATING:"UPDATING"},Pct={KEYS_ONLY:"KEYS_ONLY",NEW_AND_OLD_IMAGES:"NEW_AND_OLD_IMAGES",NEW_IMAGE:"NEW_IMAGE",OLD_IMAGE:"OLD_IMAGE"},bct={DISABLED:"DISABLED",DISABLING:"DISABLING",ENABLED:"ENABLED",ENABLING:"ENABLING"},Ict={ALL:"ALL",AWS_BACKUP:"AWS_BACKUP",SYSTEM:"SYSTEM",USER:"USER"},Act={INDEXES:"INDEXES",NONE:"NONE",TOTAL:"TOTAL"},Tct={ALL_OLD:"ALL_OLD",NONE:"NONE"},wct={AccessDenied:"AccessDenied",ConditionalCheckFailed:"ConditionalCheckFailed",DuplicateItem:"DuplicateItem",InternalServerError:"InternalServerError",ItemCollectionSizeLimitExceeded:"ItemCollectionSizeLimitExceeded",ProvisionedThroughputExceeded:"ProvisionedThroughputExceeded",RequestLimitExceeded:"RequestLimitExceeded",ResourceNotFound:"ResourceNotFound",ThrottlingError:"ThrottlingError",TransactionConflict:"TransactionConflict",ValidationError:"ValidationError"},Dct={NONE:"NONE",SIZE:"SIZE"},Oct={BEGINS_WITH:"BEGINS_WITH",BETWEEN:"BETWEEN",CONTAINS:"CONTAINS",EQ:"EQ",GE:"GE",GT:"GT",IN:"IN",LE:"LE",LT:"LT",NE:"NE",NOT_CONTAINS:"NOT_CONTAINS",NOT_NULL:"NOT_NULL",NULL:"NULL"},kct={AND:"AND",OR:"OR"},Nct={DISABLED:"DISABLED",ENABLED:"ENABLED"},Lct={DISABLED:"DISABLED",ENABLED:"ENABLED"},Mct={DISABLE:"DISABLE",ENABLE:"ENABLE"},Fct={ACCESSED_AND_THROTTLED_KEYS:"ACCESSED_AND_THROTTLED_KEYS",THROTTLED_KEYS:"THROTTLED_KEYS"},Bct={DISABLED:"DISABLED",DISABLING:"DISABLING",ENABLED:"ENABLED",ENABLING:"ENABLING",FAILED:"FAILED"},Uct={ACTIVE:"ACTIVE",CREATING:"CREATING",DELETING:"DELETING",UPDATING:"UPDATING"},qct={ACTIVE:"ACTIVE",CREATING:"CREATING",DELETING:"DELETING",UPDATING:"UPDATING"},$ct={ACTIVE:"ACTIVE",ARCHIVED:"ARCHIVED",ARCHIVING:"ARCHIVING",CREATING:"CREATING",CREATION_FAILED:"CREATION_FAILED",DELETING:"DELETING",INACCESSIBLE_ENCRYPTION_CREDENTIALS:"INACCESSIBLE_ENCRYPTION_CREDENTIALS",REGION_DISABLED:"REGION_DISABLED",REPLICATION_NOT_AUTHORIZED:"REPLICATION_NOT_AUTHORIZED",UPDATING:"UPDATING"},Gct={STANDARD:"STANDARD",STANDARD_INFREQUENT_ACCESS:"STANDARD_INFREQUENT_ACCESS"},jct={ACTIVE:"ACTIVE",ARCHIVED:"ARCHIVED",ARCHIVING:"ARCHIVING",CREATING:"CREATING",DELETING:"DELETING",INACCESSIBLE_ENCRYPTION_CREDENTIALS:"INACCESSIBLE_ENCRYPTION_CREDENTIALS",REPLICATION_NOT_AUTHORIZED:"REPLICATION_NOT_AUTHORIZED",UPDATING:"UPDATING"},Vct={ACTIVE:"ACTIVE",CREATING:"CREATING",DELETING:"DELETING"},Hct={EVENTUAL:"EVENTUAL",STRONG:"STRONG"},zct={ALL_NEW:"ALL_NEW",ALL_OLD:"ALL_OLD",NONE:"NONE",UPDATED_NEW:"UPDATED_NEW",UPDATED_OLD:"UPDATED_OLD"},Wct={DYNAMODB_JSON:"DYNAMODB_JSON",ION:"ION"},Kct={COMPLETED:"COMPLETED",FAILED:"FAILED",IN_PROGRESS:"IN_PROGRESS"},Qct={FULL_EXPORT:"FULL_EXPORT",INCREMENTAL_EXPORT:"INCREMENTAL_EXPORT"},Xct={NEW_AND_OLD_IMAGES:"NEW_AND_OLD_IMAGES",NEW_IMAGE:"NEW_IMAGE"},Jct={AES256:"AES256",KMS:"KMS"},Yct={CANCELLED:"CANCELLED",CANCELLING:"CANCELLING",COMPLETED:"COMPLETED",FAILED:"FAILED",IN_PROGRESS:"IN_PROGRESS"},Zct={GZIP:"GZIP",NONE:"NONE",ZSTD:"ZSTD"},eut={CSV:"CSV",DYNAMODB_JSON:"DYNAMODB_JSON",ION:"ION"},tut={ACTIVE:"ACTIVE",DISABLED:"DISABLED",DISABLING:"DISABLING",ENABLE_FAILED:"ENABLE_FAILED",ENABLING:"ENABLING",UPDATING:"UPDATING"},rut={ALL_ATTRIBUTES:"ALL_ATTRIBUTES",ALL_PROJECTED_ATTRIBUTES:"ALL_PROJECTED_ATTRIBUTES",COUNT:"COUNT",SPECIFIC_ATTRIBUTES:"SPECIFIC_ATTRIBUTES"};Object.defineProperty(S,"$Command",{enumerable:!0,get:function(){return pe.Command}});Object.defineProperty(S,"__Client",{enumerable:!0,get:function(){return pe.Client}});S.ApproximateCreationDateTimePrecision=fct;S.ArchivalSummary$=jce;S.AttributeAction=hct;S.AttributeDefinition$=Vce;S.AttributeValue$=Mo;S.AttributeValueUpdate$=Hce;S.AutoScalingPolicyDescription$=zce;S.AutoScalingPolicyUpdate$=Wce;S.AutoScalingSettingsDescription$=_c;S.AutoScalingSettingsUpdate$=Pc;S.AutoScalingTargetTrackingScalingPolicyConfigurationDescription$=Kce;S.AutoScalingTargetTrackingScalingPolicyConfigurationUpdate$=Qce;S.BackupDescription$=y4;S.BackupDetails$=_4;S.BackupInUseException=Tb;S.BackupInUseException$=Xce;S.BackupNotFoundException=wb;S.BackupNotFoundException$=Jce;S.BackupStatus=Ect;S.BackupSummary$=Yce;S.BackupType=yct;S.BackupTypeFilter=Ict;S.BatchExecuteStatement$=ome;S.BatchExecuteStatementCommand=lI;S.BatchExecuteStatementInput$=Zce;S.BatchExecuteStatementOutput$=eue;S.BatchGetItem$=ime;S.BatchGetItemCommand=dI;S.BatchGetItemInput$=tue;S.BatchGetItemOutput$=rue;S.BatchStatementError$=nue;S.BatchStatementErrorCodeEnum=wct;S.BatchStatementRequest$=sue;S.BatchStatementResponse$=oue;S.BatchWriteItem$=ame;S.BatchWriteItemCommand=pI;S.BatchWriteItemInput$=iue;S.BatchWriteItemOutput$=aue;S.BillingMode=_ct;S.BillingModeSummary$=C4;S.CancellationReason$=cue;S.Capacity$=R4;S.ComparisonOperator=Oct;S.Condition$=v4;S.ConditionCheck$=lue;S.ConditionalCheckFailedException=cI;S.ConditionalCheckFailedException$=uue;S.ConditionalOperator=kct;S.ConsumedCapacity$=bc;S.ContinuousBackupsDescription$=x4;S.ContinuousBackupsStatus=Nct;S.ContinuousBackupsUnavailableException=Ub;S.ContinuousBackupsUnavailableException$=due;S.ContributorInsightsAction=Mct;S.ContributorInsightsMode=Fct;S.ContributorInsightsStatus=Bct;S.ContributorInsightsSummary$=pue;S.CreateBackup$=cme;S.CreateBackupCommand=mI;S.CreateBackupInput$=mue;S.CreateBackupOutput$=gue;S.CreateGlobalSecondaryIndexAction$=fue;S.CreateGlobalTable$=ume;S.CreateGlobalTableCommand=gI;S.CreateGlobalTableInput$=hue;S.CreateGlobalTableOutput$=Sue;S.CreateGlobalTableWitnessGroupMemberAction$=Eue;S.CreateReplicaAction$=yue;S.CreateReplicationGroupMemberAction$=_ue;S.CreateTable$=lme;S.CreateTableCommand=fI;S.CreateTableInput$=Cue;S.CreateTableOutput$=Rue;S.CsvOptions$=vue;S.Delete$=xue;S.DeleteBackup$=dme;S.DeleteBackupCommand=hI;S.DeleteBackupInput$=Pue;S.DeleteBackupOutput$=bue;S.DeleteGlobalSecondaryIndexAction$=Iue;S.DeleteGlobalTableWitnessGroupMemberAction$=Aue;S.DeleteItem$=pme;S.DeleteItemCommand=SI;S.DeleteItemInput$=Tue;S.DeleteItemOutput$=wue;S.DeleteReplicaAction$=Due;S.DeleteReplicationGroupMemberAction$=Oue;S.DeleteRequest$=kue;S.DeleteResourcePolicy$=mme;S.DeleteResourcePolicyCommand=EI;S.DeleteResourcePolicyInput$=Nue;S.DeleteResourcePolicyOutput$=Lue;S.DeleteTable$=gme;S.DeleteTableCommand=yI;S.DeleteTableInput$=Mue;S.DeleteTableOutput$=Fue;S.DescribeBackup$=fme;S.DescribeBackupCommand=_I;S.DescribeBackupInput$=Bue;S.DescribeBackupOutput$=Uue;S.DescribeContinuousBackups$=hme;S.DescribeContinuousBackupsCommand=CI;S.DescribeContinuousBackupsInput$=que;S.DescribeContinuousBackupsOutput$=$ue;S.DescribeContributorInsights$=Sme;S.DescribeContributorInsightsCommand=jE;S.DescribeContributorInsightsInput$=Gue;S.DescribeContributorInsightsOutput$=jue;S.DescribeEndpoints$=Eme;S.DescribeEndpointsCommand=GE;S.DescribeEndpointsRequest$=Vue;S.DescribeEndpointsResponse$=Hue;S.DescribeExport$=yme;S.DescribeExportCommand=VE;S.DescribeExportInput$=zue;S.DescribeExportOutput$=Wue;S.DescribeGlobalTable$=_me;S.DescribeGlobalTableCommand=RI;S.DescribeGlobalTableInput$=Kue;S.DescribeGlobalTableOutput$=Que;S.DescribeGlobalTableSettings$=Cme;S.DescribeGlobalTableSettingsCommand=vI;S.DescribeGlobalTableSettingsInput$=Xue;S.DescribeGlobalTableSettingsOutput$=Jue;S.DescribeImport$=Rme;S.DescribeImportCommand=HE;S.DescribeImportInput$=Yue;S.DescribeImportOutput$=Zue;S.DescribeKinesisStreamingDestination$=vme;S.DescribeKinesisStreamingDestinationCommand=zE;S.DescribeKinesisStreamingDestinationInput$=ele;S.DescribeKinesisStreamingDestinationOutput$=tle;S.DescribeLimits$=xme;S.DescribeLimitsCommand=xI;S.DescribeLimitsInput$=rle;S.DescribeLimitsOutput$=nle;S.DescribeTable$=Pme;S.DescribeTableCommand=ag;S.DescribeTableInput$=sle;S.DescribeTableOutput$=ole;S.DescribeTableReplicaAutoScaling$=bme;S.DescribeTableReplicaAutoScalingCommand=PI;S.DescribeTableReplicaAutoScalingInput$=ile;S.DescribeTableReplicaAutoScalingOutput$=ale;S.DescribeTimeToLive$=Ime;S.DescribeTimeToLiveCommand=bI;S.DescribeTimeToLiveInput$=cle;S.DescribeTimeToLiveOutput$=ule;S.DestinationStatus=tut;S.DisableKinesisStreamingDestination$=Ame;S.DisableKinesisStreamingDestinationCommand=II;S.DuplicateItemException=Xb;S.DuplicateItemException$=lle;S.DynamoDB=tA;S.DynamoDBClient=Ra;S.DynamoDBServiceException=We;S.DynamoDBServiceException$=Kpe;S.EnableKinesisStreamingConfiguration$=P4;S.EnableKinesisStreamingDestination$=Tme;S.EnableKinesisStreamingDestinationCommand=AI;S.Endpoint$=dle;S.ExecuteStatement$=wme;S.ExecuteStatementCommand=TI;S.ExecuteStatementInput$=ple;S.ExecuteStatementOutput$=mle;S.ExecuteTransaction$=Dme;S.ExecuteTransactionCommand=wI;S.ExecuteTransactionInput$=gle;S.ExecuteTransactionOutput$=fle;S.ExpectedAttributeValue$=hle;S.ExportConflictException=Zb;S.ExportConflictException$=Sle;S.ExportDescription$=b4;S.ExportFormat=Wct;S.ExportNotFoundException=Wb;S.ExportNotFoundException$=Ele;S.ExportStatus=Kct;S.ExportSummary$=yle;S.ExportTableToPointInTime$=Ome;S.ExportTableToPointInTimeCommand=DI;S.ExportTableToPointInTimeInput$=_le;S.ExportTableToPointInTimeOutput$=Cle;S.ExportType=Qct;S.ExportViewType=Xct;S.FailureException$=Rle;S.Get$=vle;S.GetItem$=kme;S.GetItemCommand=OI;S.GetItemInput$=xle;S.GetItemOutput$=Ple;S.GetResourcePolicy$=Nme;S.GetResourcePolicyCommand=kI;S.GetResourcePolicyInput$=ble;S.GetResourcePolicyOutput$=Ile;S.GlobalSecondaryIndex$=Ale;S.GlobalSecondaryIndexAutoScalingUpdate$=Tle;S.GlobalSecondaryIndexDescription$=wle;S.GlobalSecondaryIndexInfo$=Dle;S.GlobalSecondaryIndexUpdate$=Ole;S.GlobalSecondaryIndexWarmThroughputDescription$=I4;S.GlobalTable$=kle;S.GlobalTableAlreadyExistsException=jb;S.GlobalTableAlreadyExistsException$=Nle;S.GlobalTableDescription$=fA;S.GlobalTableGlobalSecondaryIndexSettingsUpdate$=Lle;S.GlobalTableNotFoundException=Kb;S.GlobalTableNotFoundException$=Mle;S.GlobalTableStatus=Uct;S.GlobalTableWitnessDescription$=Fle;S.GlobalTableWitnessGroupUpdate$=Ble;S.IdempotentParameterMismatchException=Jb;S.IdempotentParameterMismatchException$=Ule;S.ImportConflictException=rI;S.ImportConflictException$=qle;S.ImportNotFoundException=Qb;S.ImportNotFoundException$=$le;S.ImportStatus=Yct;S.ImportSummary$=Gle;S.ImportTable$=Lme;S.ImportTableCommand=NI;S.ImportTableDescription$=A4;S.ImportTableInput$=jle;S.ImportTableOutput$=Vle;S.IncrementalExportSpecification$=T4;S.IndexNotFoundException=aI;S.IndexNotFoundException$=Hle;S.IndexStatus=qct;S.InputCompressionType=Zct;S.InputFormat=eut;S.InputFormatOptions$=w4;S.InternalServerError=Db;S.InternalServerError$=zle;S.InvalidEndpointException=Nb;S.InvalidEndpointException$=Wle;S.InvalidExportTimeException=eI;S.InvalidExportTimeException$=Kle;S.InvalidRestoreTimeException=sI;S.InvalidRestoreTimeException$=Qle;S.ItemCollectionMetrics$=ly;S.ItemCollectionSizeLimitExceededException=Fb;S.ItemCollectionSizeLimitExceededException$=Xle;S.ItemResponse$=Jle;S.KeySchemaElement$=Zle;S.KeyType=Cct;S.KeysAndAttributes$=Yle;S.KinesisDataStreamDestination$=ede;S.KinesisStreamingDestinationInput$=D4;S.KinesisStreamingDestinationOutput$=O4;S.LimitExceededException=qb;S.LimitExceededException$=tde;S.ListBackups$=Mme;S.ListBackupsCommand=LI;S.ListBackupsInput$=rde;S.ListBackupsOutput$=nde;S.ListContributorInsights$=Fme;S.ListContributorInsightsCommand=WE;S.ListContributorInsightsInput$=sde;S.ListContributorInsightsOutput$=ode;S.ListExports$=Bme;S.ListExportsCommand=KE;S.ListExportsInput$=ide;S.ListExportsOutput$=ade;S.ListGlobalTables$=Ume;S.ListGlobalTablesCommand=MI;S.ListGlobalTablesInput$=cde;S.ListGlobalTablesOutput$=ude;S.ListImports$=qme;S.ListImportsCommand=QE;S.ListImportsInput$=lde;S.ListImportsOutput$=dde;S.ListTables$=$me;S.ListTablesCommand=XE;S.ListTablesInput$=pde;S.ListTablesOutput$=mde;S.ListTagsOfResource$=Gme;S.ListTagsOfResourceCommand=FI;S.ListTagsOfResourceInput$=gde;S.ListTagsOfResourceOutput$=fde;S.LocalSecondaryIndex$=hde;S.LocalSecondaryIndexDescription$=Sde;S.LocalSecondaryIndexInfo$=Ede;S.MultiRegionConsistency=Hct;S.OnDemandThroughput$=zs;S.OnDemandThroughputOverride$=fg;S.ParameterizedStatement$=yde;S.PointInTimeRecoveryDescription$=_de;S.PointInTimeRecoverySpecification$=Cde;S.PointInTimeRecoveryStatus=Lct;S.PointInTimeRecoveryUnavailableException=tI;S.PointInTimeRecoveryUnavailableException$=Rde;S.PolicyNotFoundException=zb;S.PolicyNotFoundException$=vde;S.Projection$=Ju;S.ProjectionType=Rct;S.ProvisionedThroughput$=Ti;S.ProvisionedThroughputDescription$=k4;S.ProvisionedThroughputExceededException=Lb;S.ProvisionedThroughputExceededException$=xde;S.ProvisionedThroughputOverride$=hg;S.Put$=Pde;S.PutItem$=jme;S.PutItemCommand=BI;S.PutItemInput$=bde;S.PutItemOutput$=Ide;S.PutRequest$=Ade;S.PutResourcePolicy$=Vme;S.PutResourcePolicyCommand=UI;S.PutResourcePolicyInput$=Tde;S.PutResourcePolicyOutput$=wde;S.Query$=Hme;S.QueryCommand=JE;S.QueryInput$=Dde;S.QueryOutput$=Ode;S.Replica$=kde;S.ReplicaAlreadyExistsException=oI;S.ReplicaAlreadyExistsException$=Nde;S.ReplicaAutoScalingDescription$=Lde;S.ReplicaAutoScalingUpdate$=Mde;S.ReplicaDescription$=Fde;S.ReplicaGlobalSecondaryIndex$=Bde;S.ReplicaGlobalSecondaryIndexAutoScalingDescription$=Ude;S.ReplicaGlobalSecondaryIndexAutoScalingUpdate$=qde;S.ReplicaGlobalSecondaryIndexDescription$=$de;S.ReplicaGlobalSecondaryIndexSettingsDescription$=Gde;S.ReplicaGlobalSecondaryIndexSettingsUpdate$=jde;S.ReplicaNotFoundException=iI;S.ReplicaNotFoundException$=Vde;S.ReplicaSettingsDescription$=Hde;S.ReplicaSettingsUpdate$=zde;S.ReplicaStatus=$ct;S.ReplicaUpdate$=Qde;S.ReplicatedWriteConflictException=Bb;S.ReplicatedWriteConflictException$=Wde;S.ReplicationGroupUpdate$=Kde;S.RequestLimitExceeded=Ob;S.RequestLimitExceeded$=Xde;S.ResourceInUseException=Vb;S.ResourceInUseException$=Jde;S.ResourceNotFoundException=Mb;S.ResourceNotFoundException$=Yde;S.RestoreSummary$=Zde;S.RestoreTableFromBackup$=zme;S.RestoreTableFromBackupCommand=qI;S.RestoreTableFromBackupInput$=epe;S.RestoreTableFromBackupOutput$=tpe;S.RestoreTableToPointInTime$=Wme;S.RestoreTableToPointInTimeCommand=$I;S.RestoreTableToPointInTimeInput$=rpe;S.RestoreTableToPointInTimeOutput$=npe;S.ReturnConsumedCapacity=Act;S.ReturnItemCollectionMetrics=Dct;S.ReturnValue=zct;S.ReturnValuesOnConditionCheckFailure=Tct;S.S3BucketSource$=hA;S.S3SseAlgorithm=Jct;S.SSEDescription$=N4;S.SSESpecification$=Sg;S.SSEStatus=xct;S.SSEType=vct;S.ScalarAttributeType=Sct;S.Scan$=Kme;S.ScanCommand=YE;S.ScanInput$=spe;S.ScanOutput$=ope;S.Select=rut;S.SourceTableDetails$=ipe;S.SourceTableFeatureDetails$=ape;S.StreamSpecification$=dy;S.StreamViewType=Pct;S.TableAlreadyExistsException=nI;S.TableAlreadyExistsException$=cpe;S.TableAutoScalingDescription$=L4;S.TableClass=Gct;S.TableClassSummary$=SA;S.TableCreationParameters$=M4;S.TableDescription$=qd;S.TableInUseException=$b;S.TableInUseException$=upe;S.TableNotFoundException=Gb;S.TableNotFoundException$=lpe;S.TableStatus=jct;S.TableWarmThroughputDescription$=F4;S.Tag$=dpe;S.TagResource$=Qme;S.TagResourceCommand=GI;S.TagResourceInput$=ppe;S.ThrottlingException=kb;S.ThrottlingException$=mpe;S.ThrottlingReason$=gpe;S.TimeToLiveDescription$=B4;S.TimeToLiveSpecification$=U4;S.TimeToLiveStatus=bct;S.TransactGetItem$=fpe;S.TransactGetItems$=Xme;S.TransactGetItemsCommand=jI;S.TransactGetItemsInput$=hpe;S.TransactGetItemsOutput$=Spe;S.TransactWriteItem$=Cpe;S.TransactWriteItems$=Jme;S.TransactWriteItemsCommand=VI;S.TransactWriteItemsInput$=Rpe;S.TransactWriteItemsOutput$=vpe;S.TransactionCanceledException=uI;S.TransactionCanceledException$=Epe;S.TransactionConflictException=Hb;S.TransactionConflictException$=ype;S.TransactionInProgressException=Yb;S.TransactionInProgressException$=_pe;S.UntagResource$=Yme;S.UntagResourceCommand=HI;S.UntagResourceInput$=xpe;S.Update$=Ppe;S.UpdateContinuousBackups$=Zme;S.UpdateContinuousBackupsCommand=zI;S.UpdateContinuousBackupsInput$=bpe;S.UpdateContinuousBackupsOutput$=Ipe;S.UpdateContributorInsights$=ege;S.UpdateContributorInsightsCommand=WI;S.UpdateContributorInsightsInput$=Ape;S.UpdateContributorInsightsOutput$=Tpe;S.UpdateGlobalSecondaryIndexAction$=wpe;S.UpdateGlobalTable$=tge;S.UpdateGlobalTableCommand=KI;S.UpdateGlobalTableInput$=Dpe;S.UpdateGlobalTableOutput$=Ope;S.UpdateGlobalTableSettings$=rge;S.UpdateGlobalTableSettingsCommand=QI;S.UpdateGlobalTableSettingsInput$=kpe;S.UpdateGlobalTableSettingsOutput$=Npe;S.UpdateItem$=nge;S.UpdateItemCommand=XI;S.UpdateItemInput$=Lpe;S.UpdateItemOutput$=Mpe;S.UpdateKinesisStreamingConfiguration$=q4;S.UpdateKinesisStreamingDestination$=sge;S.UpdateKinesisStreamingDestinationCommand=JI;S.UpdateKinesisStreamingDestinationInput$=Fpe;S.UpdateKinesisStreamingDestinationOutput$=Bpe;S.UpdateReplicationGroupMemberAction$=Upe;S.UpdateTable$=oge;S.UpdateTableCommand=YI;S.UpdateTableInput$=qpe;S.UpdateTableOutput$=$pe;S.UpdateTableReplicaAutoScaling$=ige;S.UpdateTableReplicaAutoScalingCommand=ZI;S.UpdateTableReplicaAutoScalingInput$=Gpe;S.UpdateTableReplicaAutoScalingOutput$=jpe;S.UpdateTimeToLive$=age;S.UpdateTimeToLiveCommand=eA;S.UpdateTimeToLiveInput$=Vpe;S.UpdateTimeToLiveOutput$=Hpe;S.WarmThroughput$=Eg;S.WitnessStatus=Vct;S.WriteRequest$=zpe;S.paginateListContributorInsights=cge;S.paginateListExports=uge;S.paginateListImports=lge;S.paginateListTables=dge;S.paginateQuery=pge;S.paginateScan=mge;S.waitForContributorInsightsEnabled=ict;S.waitForExportCompleted=act;S.waitForImportCompleted=cct;S.waitForKinesisStreamingDestinationActive=uct;S.waitForTableExists=lct;S.waitForTableNotExists=dct;S.waitUntilContributorInsightsEnabled=fge;S.waitUntilExportCompleted=Sge;S.waitUntilImportCompleted=yge;S.waitUntilKinesisStreamingDestinationActive=Cge;S.waitUntilTableExists=vge;S.waitUntilTableNotExists=Pge});var W4,nut,bge=_(()=>{W4={warningEmitted:!1},nut=t=>{t&&!W4.warningEmitted&&parseInt(t.substring(1,t.indexOf(".")))<20&&(W4.warningEmitted=!0,process.emitWarning(`NodeDeprecationWarning: The AWS SDK for JavaScript (v3) will +no longer support Node.js ${t} in January 2026. + +To continue receiving updates to AWS services, bug fixes, and security +updates please upgrade to a supported Node.js LTS version. + +More information can be found at: https://a.co/c895JFp`))}});function K4(t,e,r){return t.$source||(t.$source={}),t.$source[e]=r,t}var Ige=_(()=>{});function sut(t,e,r){t.__aws_sdk_context?t.__aws_sdk_context.features||(t.__aws_sdk_context.features={}):t.__aws_sdk_context={features:{}},t.__aws_sdk_context.features[e]=r}var Age=_(()=>{});function out(t,e,r){return t.$source||(t.$source={}),t.$source[e]=r,t}var Tge=_(()=>{});var Q4=_(()=>{bge();Ige();Age();Tge()});var wge,X4,Dge=_(()=>{wge=require("@smithy/protocol-http"),X4=t=>wge.HttpResponse.isInstance(t)?t.headers?.date??t.headers?.Date:void 0});var _g,J4=_(()=>{_g=t=>new Date(Date.now()+t)});var Oge,kge=_(()=>{J4();Oge=(t,e)=>Math.abs(_g(e).getTime()-t)>=3e5});var Y4,Nge=_(()=>{kge();Y4=(t,e)=>{let r=Date.parse(t);return Oge(r,e)?r-Date.now():e}});var Z4=_(()=>{Dge();J4();Nge()});var Lge,py,my,$d,Mge,eV=_(()=>{Lge=require("@smithy/protocol-http");Z4();py=(t,e)=>{if(!e)throw new Error(`Property \`${t}\` is not resolved for AWS SDK SigV4Auth`);return e},my=async t=>{let e=py("context",t.context),r=py("config",t.config),n=e.endpointV2?.properties?.authSchemes?.[0],o=await py("signer",r.signer)(n),i=t?.signingRegion,a=t?.signingRegionSet,c=t?.signingName;return{config:r,signer:o,signingRegion:i,signingRegionSet:a,signingName:c}},$d=class{async sign(e,r,n){if(!Lge.HttpRequest.isInstance(e))throw new Error("The request is not an instance of `HttpRequest` and cannot be signed");let s=await my(n),{config:o,signer:i}=s,{signingRegion:a,signingName:c}=s,u=n.context;if(u?.authSchemes?.length??!1){let[d,p]=u.authSchemes;d?.name==="sigv4a"&&p?.name==="sigv4"&&(a=p?.signingRegion??a,c=p?.signingName??c)}return await i.sign(e,{signingDate:_g(o.systemClockOffset),signingRegion:a,signingService:c})}errorHandler(e){return r=>{let n=r.ServerTime??X4(r.$response);if(n){let s=py("config",e.config),o=s.systemClockOffset;s.systemClockOffset=Y4(n,s.systemClockOffset),s.systemClockOffset!==o&&r.$metadata&&(r.$metadata.clockSkewCorrected=!0)}throw r}}successHandler(e,r){let n=X4(e);if(n){let s=py("config",r.config);s.systemClockOffset=Y4(n,s.systemClockOffset)}}},Mge=$d});var Fge,RA,Bge=_(()=>{Fge=require("@smithy/protocol-http");Z4();eV();RA=class extends $d{async sign(e,r,n){if(!Fge.HttpRequest.isInstance(e))throw new Error("The request is not an instance of `HttpRequest` and cannot be signed");let{config:s,signer:o,signingRegion:i,signingRegionSet:a,signingName:c}=await my(n),l=(await s.sigv4aSigningRegionSet?.()??a??[i]).join(",");return await o.sign(e,{signingDate:_g(s.systemClockOffset),signingRegion:l,signingService:c})}}});var tV,Uge=_(()=>{tV=t=>typeof t=="string"&&t.length>0?t.split(",").map(e=>e.trim()):[]});var rV,nV=_(()=>{rV=t=>`AWS_BEARER_TOKEN_${t.replace(/[\s-]/g,"_").toUpperCase()}`});var qge,$ge,iut,Gge=_(()=>{Uge();nV();qge="AWS_AUTH_SCHEME_PREFERENCE",$ge="auth_scheme_preference",iut={environmentVariableSelector:(t,e)=>{if(e?.signingName&&rV(e.signingName)in t)return["httpBearerAuth"];if(qge in t)return tV(t[qge])},configFileSelector:t=>{if($ge in t)return tV(t[$ge])},default:[]}});var jge,sV,aut,cut,Vge=_(()=>{jge=require("@smithy/core"),sV=require("@smithy/property-provider"),aut=t=>(t.sigv4aSigningRegionSet=(0,jge.normalizeProvider)(t.sigv4aSigningRegionSet),t),cut={environmentVariableSelector(t){if(t.AWS_SIGV4A_SIGNING_REGION_SET)return t.AWS_SIGV4A_SIGNING_REGION_SET.split(",").map(e=>e.trim());throw new sV.ProviderError("AWS_SIGV4A_SIGNING_REGION_SET not set in env.",{tryNextLink:!0})},configFileSelector(t){if(t.sigv4a_signing_region_set)return(t.sigv4a_signing_region_set??"").split(",").map(e=>e.trim());throw new sV.ProviderError("sigv4a_signing_region_set not set in profile.",{tryNextLink:!0})},default:void 0}});function lut(t,{credentials:e,credentialDefaultProvider:r}){let n;return e?e?.memoized?n=e:n=(0,Di.memoizeIdentityProvider)(e,Di.isIdentityExpired,Di.doesIdentityRequireRefresh):r?n=(0,Di.normalizeProvider)(r(Object.assign({},t,{parentClientConfig:t}))):n=async()=>{throw new Error("@aws-sdk/core::resolveAwsSdkSigV4Config - `credentials` not provided and no credentialDefaultProvider was configured.")},n.memoized=!0,n}function dut(t,e){if(e.configBound)return e;let r=async n=>e({...n,callerClientConfig:t});return r.memoized=e.memoized,r.configBound=!0,r}var Di,oV,Hge,uut,zge=_(()=>{Q4();Di=require("@smithy/core"),oV=require("@smithy/signature-v4"),Hge=t=>{let e=t.credentials,r=!!t.credentials,n;Object.defineProperty(t,"credentials",{set(u){u&&u!==e&&u!==n&&(r=!0),e=u;let l=lut(t,{credentials:e,credentialDefaultProvider:t.credentialDefaultProvider}),d=dut(t,l);if(r&&!d.attributed){let p=typeof e=="object"&&e!==null;n=async g=>{let R=await d(g);return p&&(!R.$source||Object.keys(R.$source).length===0)?K4(R,"CREDENTIALS_CODE","e"):R},n.memoized=d.memoized,n.configBound=d.configBound,n.attributed=!0}else n=d},get(){return n},enumerable:!0,configurable:!0}),t.credentials=e;let{signingEscapePath:s=!0,systemClockOffset:o=t.systemClockOffset||0,sha256:i}=t,a;return t.signer?a=(0,Di.normalizeProvider)(t.signer):t.regionInfoProvider?a=()=>(0,Di.normalizeProvider)(t.region)().then(async u=>[await t.regionInfoProvider(u,{useFipsEndpoint:await t.useFipsEndpoint(),useDualstackEndpoint:await t.useDualstackEndpoint()})||{},u]).then(([u,l])=>{let{signingRegion:d,signingService:p}=u;t.signingRegion=t.signingRegion||d||l,t.signingName=t.signingName||p||t.serviceId;let g={...t,credentials:t.credentials,region:t.signingRegion,service:t.signingName,sha256:i,uriEscapePath:s},y=t.signerConstructor||oV.SignatureV4;return new y(g)}):a=async u=>{u=Object.assign({},{name:"sigv4",signingName:t.signingName||t.defaultSigningName,signingRegion:await(0,Di.normalizeProvider)(t.region)(),properties:{}},u);let l=u.signingRegion,d=u.signingName;t.signingRegion=t.signingRegion||l,t.signingName=t.signingName||d||t.serviceId;let p={...t,credentials:t.credentials,region:t.signingRegion,service:t.signingName,sha256:i,uriEscapePath:s},g=t.signerConstructor||oV.SignatureV4;return new g(p)},Object.assign(t,{systemClockOffset:o,signingEscapePath:s,signer:a})},uut=Hge});var Wge=_(()=>{eV();Bge();Gge();Vge();zge()});var Kge=_(()=>{Wge();nV()});var gy,iV,Fo,Cg=_(()=>{gy=require("@smithy/core/schema"),iV=require("@smithy/smithy-client"),Fo=class{queryCompat;constructor(e=!1){this.queryCompat=e}resolveRestContentType(e,r){let n=r.getMemberSchemas(),s=Object.values(n).find(o=>!!o.getMergedTraits().httpPayload);if(s){let o=s.getMergedTraits().mediaType;return o||(s.isStringSchema()?"text/plain":s.isBlobSchema()?"application/octet-stream":e)}else if(!r.isUnitSchema()&&Object.values(n).find(i=>{let{httpQuery:a,httpQueryParams:c,httpHeader:u,httpLabel:l,httpPrefixHeaders:d}=i.getMergedTraits();return!a&&!c&&!u&&!l&&d===void 0}))return e}async getErrorSchemaOrThrowBaseException(e,r,n,s,o,i){let a=r,c=e;e.includes("#")&&([a,c]=e.split("#"));let u={$metadata:o,$fault:n.statusCode<500?"client":"server"},l=gy.TypeRegistry.for(a);try{return{errorSchema:i?.(l,c)??l.getSchema(e),errorMetadata:u}}catch{s.message=s.message??s.Message??"UnknownError";let p=gy.TypeRegistry.for("smithy.ts.sdk.synthetic."+a),g=p.getBaseException();if(g){let y=p.getErrorCtor(g)??Error;throw this.decorateServiceException(Object.assign(new y({name:c}),u),s)}throw this.decorateServiceException(Object.assign(new Error(c),u),s)}}decorateServiceException(e,r={}){if(this.queryCompat){let n=e.Message??r.Message,s=(0,iV.decorateServiceException)(e,r);n&&(s.message=n),s.Error={...s.Error,Type:s.Error?.Type,Code:s.Error?.Code,Message:s.Error?.message??s.Error?.Message??n};let o=s.$metadata.requestId;return o&&(s.RequestId=o),s}return(0,iV.decorateServiceException)(e,r)}setQueryCompatError(e,r){let n=r.headers?.["x-amzn-query-error"];if(e!==void 0&&n!=null){let[s,o]=n.split(";"),i=Object.entries(e),a={Code:s,Type:o};Object.assign(e,a);for(let[c,u]of i)a[c==="message"?"Message":c]=u;delete a.__type,e.Error=a}}queryCompatOutput(e,r){e.Error&&(r.Error=e.Error),e.Type&&(r.Type=e.Type),e.Code&&(r.Code=e.Code)}findQueryCompatibleError(e,r){try{return e.getSchema(r)}catch{return e.find(s=>gy.NormalizedSchema.of(s).getMergedTraits().awsQueryError?.[0]===r)}}}});var vA,xA,aV,Qge=_(()=>{vA=require("@smithy/core/cbor"),xA=require("@smithy/core/schema");Cg();aV=class extends vA.SmithyRpcV2CborProtocol{awsQueryCompatible;mixin;constructor({defaultNamespace:e,awsQueryCompatible:r}){super({defaultNamespace:e}),this.awsQueryCompatible=!!r,this.mixin=new Fo(this.awsQueryCompatible)}async serializeRequest(e,r,n){let s=await super.serializeRequest(e,r,n);return this.awsQueryCompatible&&(s.headers["x-amzn-query-mode"]="true"),s}async handleError(e,r,n,s,o){this.awsQueryCompatible&&this.mixin.setQueryCompatError(s,n);let i=(()=>{let y=n.headers["x-amzn-query-error"];return y&&this.awsQueryCompatible?y.split(";")[0]:(0,vA.loadSmithyRpcV2CborErrorCode)(n,s)??"Unknown"})(),{errorSchema:a,errorMetadata:c}=await this.mixin.getErrorSchemaOrThrowBaseException(i,this.options.defaultNamespace,n,s,o,this.awsQueryCompatible?this.mixin.findQueryCompatibleError:void 0),u=xA.NormalizedSchema.of(a),l=s.message??s.Message??"Unknown",d=xA.TypeRegistry.for(a[1]).getErrorCtor(a)??Error,p=new d(l),g={};for(let[y,R]of u.structIterator())s[y]!=null&&(g[y]=this.deserializer.readValue(R,s[y]));throw this.awsQueryCompatible&&this.mixin.queryCompatOutput(s,g),this.mixin.decorateServiceException(Object.assign(p,c,{$fault:u.getMergedTraits().error,message:l},g),s)}}});var put,mut,gut,Xge=_(()=>{put=t=>{if(t==null)return t;if(typeof t=="number"||typeof t=="bigint"){let e=new Error(`Received number ${t} where a string was expected.`);return e.name="Warning",console.warn(e),String(t)}if(typeof t=="boolean"){let e=new Error(`Received boolean ${t} where a string was expected.`);return e.name="Warning",console.warn(e),String(t)}return t},mut=t=>{if(t==null)return t;if(typeof t=="string"){let e=t.toLowerCase();if(t!==""&&e!=="false"&&e!=="true"){let r=new Error(`Received string "${t}" where a boolean was expected.`);r.name="Warning",console.warn(r)}return t!==""&&e!=="false"}return t},gut=t=>{if(t==null)return t;if(typeof t=="string"){let e=Number(t);if(e.toString()!==t){let r=new Error(`Received string "${t}" where a number was expected.`);return r.name="Warning",console.warn(r),t}return e}return t}});var bn,Yu=_(()=>{bn=class{serdeContext;setSerdeContext(e){this.serdeContext=e}}});var Rg,cV=_(()=>{Rg=class{from;to;keys;constructor(e,r){this.from=e,this.to=r,this.keys=new Set(Object.keys(this.from).filter(n=>n!=="__type"))}mark(e){this.keys.delete(e)}hasUnknown(){return this.keys.size===1&&Object.keys(this.to).length===0}writeUnknown(){if(this.hasUnknown()){let e=this.keys.values().next().value,r=this.from[e];this.to.$unknown=[e,r]}}}});function Yge(t,e,r){if(r?.source){let n=r.source;if(typeof e=="number"&&(e>Number.MAX_SAFE_INTEGER||e{Jge=require("@smithy/core/serde")});var efe,tfe,PA,uV=_(()=>{efe=require("@smithy/smithy-client"),tfe=require("@smithy/util-utf8"),PA=(t,e)=>(0,efe.collectBody)(t,e).then(r=>(e?.utf8Encoder??tfe.toUtf8)(r))});var bA,fut,fy,hy=_(()=>{uV();bA=(t,e)=>PA(t,e).then(r=>{if(r.length)try{return JSON.parse(r)}catch(n){throw n?.name==="SyntaxError"&&Object.defineProperty(n,"$responseBodyText",{value:r}),n}return{}}),fut=async(t,e)=>{let r=await bA(t,e);return r.message=r.message??r.Message,r},fy=(t,e)=>{let r=(o,i)=>Object.keys(o).find(a=>a.toLowerCase()===i.toLowerCase()),n=o=>{let i=o;return typeof i=="number"&&(i=i.toString()),i.indexOf(",")>=0&&(i=i.split(",")[0]),i.indexOf(":")>=0&&(i=i.split(":")[0]),i.indexOf("#")>=0&&(i=i.split("#")[1]),i},s=r(t.headers,"x-amzn-errortype");if(s!==void 0)return n(t.headers[s]);if(e&&typeof e=="object"){let o=r(e,"code");if(o&&e[o]!==void 0)return n(e[o]);if(e.__type!==void 0)return n(e.__type)}}});var rfe,nfe,Ws,sfe,Sy,lV=_(()=>{rfe=require("@smithy/core/protocols"),nfe=require("@smithy/core/schema"),Ws=require("@smithy/core/serde"),sfe=require("@smithy/util-base64");Yu();cV();Zge();hy();Sy=class extends bn{settings;constructor(e){super(),this.settings=e}async read(e,r){return this._read(e,typeof r=="string"?JSON.parse(r,Yge):await bA(r,this.serdeContext))}readObject(e,r){return this._read(e,r)}_read(e,r){let n=r!==null&&typeof r=="object",s=nfe.NormalizedSchema.of(e);if(n){if(s.isStructSchema()){let i=r,a=s.isUnionSchema(),c={},u,{jsonName:l}=this.settings;l&&(u={});let d;a&&(d=new Rg(i,c));for(let[p,g]of s.structIterator()){let y=p;l&&(y=g.getMergedTraits().jsonName??y,u[y]=p),a&&d.mark(y),i[y]!=null&&(c[p]=this._read(g,i[y]))}if(a)d.writeUnknown();else if(typeof i.__type=="string")for(let[p,g]of Object.entries(i)){let y=l?u[p]??p:p;y in c||(c[y]=g)}return c}if(Array.isArray(r)&&s.isListSchema()){let i=s.getValueSchema(),a=[],c=!!s.getMergedTraits().sparse;for(let u of r)(c||u!=null)&&a.push(this._read(i,u));return a}if(s.isMapSchema()){let i=s.getValueSchema(),a={},c=!!s.getMergedTraits().sparse;for(let[u,l]of Object.entries(r))(c||l!=null)&&(a[u]=this._read(i,l));return a}}if(s.isBlobSchema()&&typeof r=="string")return(0,sfe.fromBase64)(r);let o=s.getMergedTraits().mediaType;if(s.isStringSchema()&&typeof r=="string"&&o)return o==="application/json"||o.endsWith("+json")?Ws.LazyJsonString.from(r):r;if(s.isTimestampSchema()&&r!=null)switch((0,rfe.determineTimestampFormat)(s,this.settings)){case 5:return(0,Ws.parseRfc3339DateTimeWithOffset)(r);case 6:return(0,Ws.parseRfc7231DateTime)(r);case 7:return(0,Ws.parseEpochTimestamp)(r);default:return console.warn("Missing timestamp format, parsing value with Date constructor:",r),new Date(r)}if(s.isBigIntegerSchema()&&(typeof r=="number"||typeof r=="string"))return BigInt(r);if(s.isBigDecimalSchema()&&r!=null){if(r instanceof Ws.NumericValue)return r;let i=r;return i.type==="bigDecimal"&&"string"in i?new Ws.NumericValue(i.string,i.type):new Ws.NumericValue(String(r),"bigDecimal")}if(s.isNumericSchema()&&typeof r=="string"){switch(r){case"Infinity":return 1/0;case"-Infinity":return-1/0;case"NaN":return NaN}return r}if(s.isDocumentSchema())if(n){let i=Array.isArray(r)?[]:{};for(let[a,c]of Object.entries(r))c instanceof Ws.NumericValue?i[a]=c:i[a]=this._read(s,c);return i}else return structuredClone(r);return r}}});var ife,ofe,IA,afe=_(()=>{ife=require("@smithy/core/serde"),ofe="\u039D",IA=class{values=new Map;counter=0;stage=0;createReplacer(){if(this.stage===1)throw new Error("@aws-sdk/core/protocols - JsonReplacer already created.");if(this.stage===2)throw new Error("@aws-sdk/core/protocols - JsonReplacer exhausted.");return this.stage=1,(e,r)=>{if(r instanceof ife.NumericValue){let n=`${ofe+"nv"+this.counter++}_`+r.string;return this.values.set(`"${n}"`,r.string),n}if(typeof r=="bigint"){let n=r.toString(),s=`${ofe+"b"+this.counter++}_`+n;return this.values.set(`"${s}"`,n),s}return r}}replaceInJson(e){if(this.stage===0)throw new Error("@aws-sdk/core/protocols - JsonReplacer not created yet.");if(this.stage===2)throw new Error("@aws-sdk/core/protocols - JsonReplacer exhausted.");if(this.stage=2,this.counter===0)return e;for(let[r,n]of this.values)e=e.replace(r,n);return e}}});var cfe,AA,Ac,dV,Ey,pV=_(()=>{cfe=require("@smithy/core/protocols"),AA=require("@smithy/core/schema"),Ac=require("@smithy/core/serde"),dV=require("@smithy/util-base64");Yu();afe();Ey=class extends bn{settings;buffer;useReplacer=!1;rootSchema;constructor(e){super(),this.settings=e}write(e,r){this.rootSchema=AA.NormalizedSchema.of(e),this.buffer=this._write(this.rootSchema,r)}writeDiscriminatedDocument(e,r){this.write(e,r),typeof this.buffer=="object"&&(this.buffer.__type=AA.NormalizedSchema.of(e).getName(!0))}flush(){let{rootSchema:e,useReplacer:r}=this;if(this.rootSchema=void 0,this.useReplacer=!1,e?.isStructSchema()||e?.isDocumentSchema()){if(!r)return JSON.stringify(this.buffer);let n=new IA;return n.replaceInJson(JSON.stringify(this.buffer,n.createReplacer(),0))}return this.buffer}_write(e,r,n){let s=r!==null&&typeof r=="object",o=AA.NormalizedSchema.of(e);if(s){if(o.isStructSchema()){let i=r,a={},{jsonName:c}=this.settings,u;c&&(u={});for(let[l,d]of o.structIterator()){let p=this._write(d,i[l],o);if(p!==void 0){let g=l;c&&(g=d.getMergedTraits().jsonName??l,u[l]=g),a[g]=p}}if(o.isUnionSchema()&&Object.keys(a).length===0){let{$unknown:l}=i;if(Array.isArray(l)){let[d,p]=l;a[d]=this._write(15,p)}}else if(typeof i.__type=="string")for(let[l,d]of Object.entries(i)){let p=c?u[l]??l:l;p in a||(a[p]=this._write(15,d))}return a}if(Array.isArray(r)&&o.isListSchema()){let i=o.getValueSchema(),a=[],c=!!o.getMergedTraits().sparse;for(let u of r)(c||u!=null)&&a.push(this._write(i,u));return a}if(o.isMapSchema()){let i=o.getValueSchema(),a={},c=!!o.getMergedTraits().sparse;for(let[u,l]of Object.entries(r))(c||l!=null)&&(a[u]=this._write(i,l));return a}if(r instanceof Uint8Array&&(o.isBlobSchema()||o.isDocumentSchema()))return o===this.rootSchema?r:(this.serdeContext?.base64Encoder??dV.toBase64)(r);if(r instanceof Date&&(o.isTimestampSchema()||o.isDocumentSchema()))switch((0,cfe.determineTimestampFormat)(o,this.settings)){case 5:return r.toISOString().replace(".000Z","Z");case 6:return(0,Ac.dateToUtcString)(r);case 7:return r.getTime()/1e3;default:return console.warn("Missing timestamp format, using epoch seconds",r),r.getTime()/1e3}r instanceof Ac.NumericValue&&(this.useReplacer=!0)}if(!(r===null&&n?.isStructSchema())){if(o.isStringSchema()){if(typeof r>"u"&&o.isIdempotencyToken())return(0,Ac.generateIdempotencyToken)();let i=o.getMergedTraits().mediaType;return r!=null&&i&&(i==="application/json"||i.endsWith("+json"))?Ac.LazyJsonString.from(r):r}if(typeof r=="number"&&o.isNumericSchema())return Math.abs(r)===1/0||isNaN(r)?String(r):r;if(typeof r=="string"&&o.isBlobSchema())return o===this.rootSchema?r:(this.serdeContext?.base64Encoder??dV.toBase64)(r);if(typeof r=="bigint"&&(this.useReplacer=!0),o.isDocumentSchema())if(s){let i=Array.isArray(r)?[]:{};for(let[a,c]of Object.entries(r))c instanceof Ac.NumericValue?(this.useReplacer=!0,i[a]=c):i[a]=this._write(o,c);return i}else return structuredClone(r);return r}}}});var Gd,TA=_(()=>{Yu();lV();pV();Gd=class extends bn{settings;constructor(e){super(),this.settings=e}createSerializer(){let e=new Ey(this.settings);return e.setSerdeContext(this.serdeContext),e}createDeserializer(){let e=new Sy(this.settings);return e.setSerdeContext(this.serdeContext),e}}});var ufe,vg,jd,wA=_(()=>{ufe=require("@smithy/core/protocols"),vg=require("@smithy/core/schema");Cg();TA();hy();jd=class extends ufe.RpcProtocol{serializer;deserializer;serviceTarget;codec;mixin;awsQueryCompatible;constructor({defaultNamespace:e,serviceTarget:r,awsQueryCompatible:n,jsonCodec:s}){super({defaultNamespace:e}),this.serviceTarget=r,this.codec=s??new Gd({timestampFormat:{useTrait:!0,default:7},jsonName:!1}),this.serializer=this.codec.createSerializer(),this.deserializer=this.codec.createDeserializer(),this.awsQueryCompatible=!!n,this.mixin=new Fo(this.awsQueryCompatible)}async serializeRequest(e,r,n){let s=await super.serializeRequest(e,r,n);return s.path.endsWith("/")||(s.path+="/"),Object.assign(s.headers,{"content-type":`application/x-amz-json-${this.getJsonRpcVersion()}`,"x-amz-target":`${this.serviceTarget}.${e.name}`}),this.awsQueryCompatible&&(s.headers["x-amzn-query-mode"]="true"),((0,vg.deref)(e.input)==="unit"||!s.body)&&(s.body="{}"),s}getPayloadCodec(){return this.codec}async handleError(e,r,n,s,o){this.awsQueryCompatible&&this.mixin.setQueryCompatError(s,n);let i=fy(n,s)??"Unknown",{errorSchema:a,errorMetadata:c}=await this.mixin.getErrorSchemaOrThrowBaseException(i,this.options.defaultNamespace,n,s,o,this.awsQueryCompatible?this.mixin.findQueryCompatibleError:void 0),u=vg.NormalizedSchema.of(a),l=s.message??s.Message??"Unknown",d=vg.TypeRegistry.for(a[1]).getErrorCtor(a)??Error,p=new d(l),g={};for(let[y,R]of u.structIterator())s[y]!=null&&(g[y]=this.codec.createDeserializer().readObject(R,s[y]));throw this.awsQueryCompatible&&this.mixin.queryCompatOutput(s,g),this.mixin.decorateServiceException(Object.assign(p,c,{$fault:u.getMergedTraits().error,message:l},g),s)}}});var mV,lfe=_(()=>{wA();mV=class extends jd{constructor({defaultNamespace:e,serviceTarget:r,awsQueryCompatible:n,jsonCodec:s}){super({defaultNamespace:e,serviceTarget:r,awsQueryCompatible:n,jsonCodec:s})}getShapeId(){return"aws.protocols#awsJson1_0"}getJsonRpcVersion(){return"1.0"}getDefaultContentType(){return"application/x-amz-json-1.0"}}});var gV,dfe=_(()=>{wA();gV=class extends jd{constructor({defaultNamespace:e,serviceTarget:r,awsQueryCompatible:n,jsonCodec:s}){super({defaultNamespace:e,serviceTarget:r,awsQueryCompatible:n,jsonCodec:s})}getShapeId(){return"aws.protocols#awsJson1_1"}getJsonRpcVersion(){return"1.1"}getDefaultContentType(){return"application/x-amz-json-1.1"}}});var Pg,xg,fV,pfe=_(()=>{Pg=require("@smithy/core/protocols"),xg=require("@smithy/core/schema");Cg();TA();hy();fV=class extends Pg.HttpBindingProtocol{serializer;deserializer;codec;mixin=new Fo;constructor({defaultNamespace:e}){super({defaultNamespace:e});let r={timestampFormat:{useTrait:!0,default:7},httpBindings:!0,jsonName:!0};this.codec=new Gd(r),this.serializer=new Pg.HttpInterceptingShapeSerializer(this.codec.createSerializer(),r),this.deserializer=new Pg.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(),r)}getShapeId(){return"aws.protocols#restJson1"}getPayloadCodec(){return this.codec}setSerdeContext(e){this.codec.setSerdeContext(e),super.setSerdeContext(e)}async serializeRequest(e,r,n){let s=await super.serializeRequest(e,r,n),o=xg.NormalizedSchema.of(e.input);if(!s.headers["content-type"]){let i=this.mixin.resolveRestContentType(this.getDefaultContentType(),o);i&&(s.headers["content-type"]=i)}return s.body==null&&s.headers["content-type"]===this.getDefaultContentType()&&(s.body="{}"),s}async deserializeResponse(e,r,n){let s=await super.deserializeResponse(e,r,n),o=xg.NormalizedSchema.of(e.output);for(let[i,a]of o.structIterator())a.getMemberTraits().httpPayload&&!(i in s)&&(s[i]=null);return s}async handleError(e,r,n,s,o){let i=fy(n,s)??"Unknown",{errorSchema:a,errorMetadata:c}=await this.mixin.getErrorSchemaOrThrowBaseException(i,this.options.defaultNamespace,n,s,o),u=xg.NormalizedSchema.of(a),l=s.message??s.Message??"Unknown",d=xg.TypeRegistry.for(a[1]).getErrorCtor(a)??Error,p=new d(l);await this.deserializeHttpMessage(a,r,n,s);let g={};for(let[y,R]of u.structIterator()){let D=R.getMergedTraits().jsonName??y;g[y]=this.codec.createDeserializer().readObject(R,s[D])}throw this.mixin.decorateServiceException(Object.assign(p,c,{$fault:u.getMergedTraits().error,message:l},g),s)}getDefaultContentType(){return"application/json"}}});var mfe,hut,gfe=_(()=>{mfe=require("@smithy/smithy-client"),hut=t=>{if(t!=null)return typeof t=="object"&&"__type"in t&&delete t.__type,(0,mfe.expectUnion)(t)}});var ffe=b(SV=>{"use strict";Object.defineProperty(SV,"__esModule",{value:!0});SV.parseXML=Eut;var Sut=require("fast-xml-parser"),hV=new Sut.XMLParser({attributeNamePrefix:"",htmlEntities:!0,ignoreAttributes:!1,ignoreDeclaration:!0,parseTagValue:!1,trimValues:!1,tagValueProcessor:(t,e)=>e.trim()===""&&e.includes(` +`)?"":void 0});hV.addEntity("#xD","\r");hV.addEntity("#10",` +`);function Eut(t){return hV.parse(t,!0)}});var kA=b(OA=>{"use strict";var yut=ffe();function _ut(t){return t.replace(/&/g,"&").replace(//g,">").replace(/"/g,""")}function Cut(t){return t.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">").replace(/\r/g," ").replace(/\n/g," ").replace(/\u0085/g,"…").replace(/\u2028/,"
")}var DA=class{value;constructor(e){this.value=e}toString(){return Cut(""+this.value)}},EV=class t{name;children;attributes={};static of(e,r,n){let s=new t(e);return r!==void 0&&s.addChildNode(new DA(r)),n!==void 0&&s.withName(n),s}constructor(e,r=[]){this.name=e,this.children=r}withName(e){return this.name=e,this}addAttribute(e,r){return this.attributes[e]=r,this}addChildNode(e){return this.children.push(e),this}removeAttribute(e){return delete this.attributes[e],this}n(e){return this.name=e,this}c(e){return this.children.push(e),this}a(e,r){return r!=null&&(this.attributes[e]=r),this}cc(e,r,n=r){if(e[r]!=null){let s=t.of(r,e[r]).withName(n);this.c(s)}}l(e,r,n,s){e[r]!=null&&s().map(i=>{i.withName(n),this.c(i)})}lc(e,r,n,s){if(e[r]!=null){let o=s(),i=new t(n);o.map(a=>{i.c(a)}),this.c(i)}}toString(){let e=!!this.children.length,r=`<${this.name}`,n=this.attributes;for(let s of Object.keys(n)){let o=n[s];o!=null&&(r+=` ${s}="${_ut(""+o)}"`)}return r+=e?`>${this.children.map(s=>s.toString()).join("")}`:"/>"}};Object.defineProperty(OA,"parseXML",{enumerable:!0,get:function(){return yut.parseXML}});OA.XmlNode=EV;OA.XmlText=DA});var hfe,Sfe,yV,Efe,yfe,Vd,NA=_(()=>{hfe=O(kA()),Sfe=require("@smithy/core/protocols"),yV=require("@smithy/core/schema"),Efe=require("@smithy/smithy-client"),yfe=require("@smithy/util-utf8");Yu();cV();Vd=class extends bn{settings;stringDeserializer;constructor(e){super(),this.settings=e,this.stringDeserializer=new Sfe.FromStringShapeDeserializer(e)}setSerdeContext(e){this.serdeContext=e,this.stringDeserializer.setSerdeContext(e)}read(e,r,n){let s=yV.NormalizedSchema.of(e),o=s.getMemberSchemas();if(s.isStructSchema()&&s.isMemberSchema()&&!!Object.values(o).find(u=>!!u.getMemberTraits().eventPayload)){let u={},l=Object.keys(o)[0];return o[l].isBlobSchema()?u[l]=r:u[l]=this.read(o[l],r),u}let a=(this.serdeContext?.utf8Encoder??yfe.toUtf8)(r),c=this.parseXml(a);return this.readSchema(e,n?c[n]:c)}readSchema(e,r){let n=yV.NormalizedSchema.of(e);if(n.isUnitSchema())return;let s=n.getMergedTraits();if(n.isListSchema()&&!Array.isArray(r))return this.readSchema(n,[r]);if(r==null)return r;if(typeof r=="object"){let o=!!s.sparse,i=!!s.xmlFlattened;if(n.isListSchema()){let c=n.getValueSchema(),u=[],l=c.getMergedTraits().xmlName??"member",d=i?r:(r[0]??r)[l],p=Array.isArray(d)?d:[d];for(let g of p)(g!=null||o)&&u.push(this.readSchema(c,g));return u}let a={};if(n.isMapSchema()){let c=n.getKeySchema(),u=n.getValueSchema(),l;i?l=Array.isArray(r)?r:[r]:l=Array.isArray(r.entry)?r.entry:[r.entry];let d=c.getMergedTraits().xmlName??"key",p=u.getMergedTraits().xmlName??"value";for(let g of l){let y=g[d],R=g[p];(R!=null||o)&&(a[y]=this.readSchema(u,R))}return a}if(n.isStructSchema()){let c=n.isUnionSchema(),u;c&&(u=new Rg(r,a));for(let[l,d]of n.structIterator()){let p=d.getMergedTraits(),g=p.httpPayload?p.xmlName??d.getName():d.getMemberTraits().xmlName??l;c&&u.mark(g),r[g]!=null&&(a[l]=this.readSchema(d,r[g]))}return c&&u.writeUnknown(),a}if(n.isDocumentSchema())return r;throw new Error(`@aws-sdk/core/protocols - xml deserializer unhandled schema type for ${n.getName(!0)}`)}return n.isListSchema()?[]:n.isMapSchema()||n.isStructSchema()?{}:this.stringDeserializer.read(n,r)}parseXml(e){if(e.length){let r;try{r=(0,hfe.parseXML)(e)}catch(i){throw i&&typeof i=="object"&&Object.defineProperty(i,"$responseBodyText",{value:e}),i}let n="#text",s=Object.keys(r)[0],o=r[s];return o[n]&&(o[s]=o[n],delete o[n]),(0,Efe.getValueFromTextNode)(o)}return{}}}});var yy,_fe,MA,Cfe,Rfe,LA,vfe=_(()=>{yy=require("@smithy/core/protocols"),_fe=require("@smithy/core/schema"),MA=require("@smithy/core/serde"),Cfe=require("@smithy/smithy-client"),Rfe=require("@smithy/util-base64");Yu();LA=class extends bn{settings;buffer;constructor(e){super(),this.settings=e}write(e,r,n=""){this.buffer===void 0&&(this.buffer="");let s=_fe.NormalizedSchema.of(e);if(n&&!n.endsWith(".")&&(n+="."),s.isBlobSchema())(typeof r=="string"||r instanceof Uint8Array)&&(this.writeKey(n),this.writeValue((this.serdeContext?.base64Encoder??Rfe.toBase64)(r)));else if(s.isBooleanSchema()||s.isNumericSchema()||s.isStringSchema())r!=null?(this.writeKey(n),this.writeValue(String(r))):s.isIdempotencyToken()&&(this.writeKey(n),this.writeValue((0,MA.generateIdempotencyToken)()));else if(s.isBigIntegerSchema())r!=null&&(this.writeKey(n),this.writeValue(String(r)));else if(s.isBigDecimalSchema())r!=null&&(this.writeKey(n),this.writeValue(r instanceof MA.NumericValue?r.string:String(r)));else if(s.isTimestampSchema()){if(r instanceof Date)switch(this.writeKey(n),(0,yy.determineTimestampFormat)(s,this.settings)){case 5:this.writeValue(r.toISOString().replace(".000Z","Z"));break;case 6:this.writeValue((0,Cfe.dateToUtcString)(r));break;case 7:this.writeValue(String(r.getTime()/1e3));break}}else if(s.isDocumentSchema())Array.isArray(r)?this.write(79,r,n):r instanceof Date?this.write(4,r,n):r instanceof Uint8Array?this.write(21,r,n):r&&typeof r=="object"?this.write(143,r,n):(this.writeKey(n),this.writeValue(String(r)));else if(s.isListSchema()){if(Array.isArray(r))if(r.length===0)this.settings.serializeEmptyLists&&(this.writeKey(n),this.writeValue(""));else{let o=s.getValueSchema(),i=this.settings.flattenLists||s.getMergedTraits().xmlFlattened,a=1;for(let c of r){if(c==null)continue;let u=o.getMergedTraits(),l=this.getKey("member",u.xmlName,u.ec2QueryName),d=i?`${n}${a}`:`${n}${l}.${a}`;this.write(o,c,d),++a}}}else if(s.isMapSchema()){if(r&&typeof r=="object"){let o=s.getKeySchema(),i=s.getValueSchema(),a=s.getMergedTraits().xmlFlattened,c=1;for(let[u,l]of Object.entries(r)){if(l==null)continue;let d=o.getMergedTraits(),p=this.getKey("key",d.xmlName,d.ec2QueryName),g=a?`${n}${c}.${p}`:`${n}entry.${c}.${p}`,y=i.getMergedTraits(),R=this.getKey("value",y.xmlName,y.ec2QueryName),D=a?`${n}${c}.${R}`:`${n}entry.${c}.${R}`;this.write(o,u,g),this.write(i,l,D),++c}}}else if(s.isStructSchema()){if(r&&typeof r=="object"){let o=!1;for(let[i,a]of s.structIterator()){if(r[i]==null&&!a.isIdempotencyToken())continue;let c=a.getMergedTraits(),u=this.getKey(i,c.xmlName,c.ec2QueryName,"struct"),l=`${n}${u}`;this.write(a,r[i],l),o=!0}if(!o&&s.isUnionSchema()){let{$unknown:i}=r;if(Array.isArray(i)){let[a,c]=i,u=`${n}${a}`;this.write(15,c,u)}}}}else if(!s.isUnitSchema())throw new Error(`@aws-sdk/core/protocols - QuerySerializer unrecognized schema type ${s.getName(!0)}`)}flush(){if(this.buffer===void 0)throw new Error("@aws-sdk/core/protocols - QuerySerializer cannot flush with nothing written to buffer.");let e=this.buffer;return delete this.buffer,e}getKey(e,r,n,s){let{ec2:o,capitalizeKeys:i}=this.settings;if(o&&n)return n;let a=r??e;return i&&s==="struct"?a[0].toUpperCase()+a.slice(1):a}writeKey(e){e.endsWith(".")&&(e=e.slice(0,e.length-1)),this.buffer+=`&${(0,yy.extendedEncodeURIComponent)(e)}=`}writeValue(e){this.buffer+=(0,yy.extendedEncodeURIComponent)(e)}}});var _y,Hd,Cy,_V=_(()=>{_y=require("@smithy/core/protocols"),Hd=require("@smithy/core/schema");Cg();NA();vfe();Cy=class extends _y.RpcProtocol{options;serializer;deserializer;mixin=new Fo;constructor(e){super({defaultNamespace:e.defaultNamespace}),this.options=e;let r={timestampFormat:{useTrait:!0,default:5},httpBindings:!1,xmlNamespace:e.xmlNamespace,serviceNamespace:e.defaultNamespace,serializeEmptyLists:!0};this.serializer=new LA(r),this.deserializer=new Vd(r)}getShapeId(){return"aws.protocols#awsQuery"}setSerdeContext(e){this.serializer.setSerdeContext(e),this.deserializer.setSerdeContext(e)}getPayloadCodec(){throw new Error("AWSQuery protocol has no payload codec.")}async serializeRequest(e,r,n){let s=await super.serializeRequest(e,r,n);s.path.endsWith("/")||(s.path+="/"),Object.assign(s.headers,{"content-type":"application/x-www-form-urlencoded"}),((0,Hd.deref)(e.input)==="unit"||!s.body)&&(s.body="");let o=e.name.split("#")[1]??e.name;return s.body=`Action=${o}&Version=${this.options.version}`+s.body,s.body.endsWith("&")&&(s.body=s.body.slice(-1)),s}async deserializeResponse(e,r,n){let s=this.deserializer,o=Hd.NormalizedSchema.of(e.output),i={};if(n.statusCode>=300){let d=await(0,_y.collectBody)(n.body,r);d.byteLength>0&&Object.assign(i,await s.read(15,d)),await this.handleError(e,r,n,i,this.deserializeMetadata(n))}for(let d in n.headers){let p=n.headers[d];delete n.headers[d],n.headers[d.toLowerCase()]=p}let a=e.name.split("#")[1]??e.name,c=o.isStructSchema()&&this.useNestedResult()?a+"Result":void 0,u=await(0,_y.collectBody)(n.body,r);return u.byteLength>0&&Object.assign(i,await s.read(o,u,c)),{$metadata:this.deserializeMetadata(n),...i}}useNestedResult(){return!0}async handleError(e,r,n,s,o){let i=this.loadQueryErrorCode(n,s)??"Unknown",a=this.loadQueryError(s)??{},c=this.loadQueryErrorMessage(s);a.message=c,a.Error={Type:a.Type,Code:a.Code,Message:c};let{errorSchema:u,errorMetadata:l}=await this.mixin.getErrorSchemaOrThrowBaseException(i,this.options.defaultNamespace,n,a,o,this.mixin.findQueryCompatibleError),d=Hd.NormalizedSchema.of(u),p=Hd.TypeRegistry.for(u[1]).getErrorCtor(u)??Error,g=new p(c),y={Type:a.Error.Type,Code:a.Error.Code,Error:a.Error};for(let[R,D]of d.structIterator()){let B=D.getMergedTraits().xmlName??R,M=a[B]??s[B];y[R]=this.deserializer.readSchema(D,M)}throw this.mixin.decorateServiceException(Object.assign(g,l,{$fault:d.getMergedTraits().error,message:c},y),s)}loadQueryErrorCode(e,r){let n=(r.Errors?.[0]?.Error??r.Errors?.Error??r.Error)?.Code;if(n!==void 0)return n;if(e.statusCode==404)return"NotFound"}loadQueryError(e){return e.Errors?.[0]?.Error??e.Errors?.Error??e.Error}loadQueryErrorMessage(e){let r=this.loadQueryError(e);return r?.message??r?.Message??e.message??e.Message??"Unknown"}getDefaultContentType(){return"application/x-www-form-urlencoded"}}});var CV,xfe=_(()=>{_V();CV=class extends Cy{options;constructor(e){super(e),this.options=e;let r={capitalizeKeys:!0,flattenLists:!0,serializeEmptyLists:!1,ec2:!0};Object.assign(this.serializer.settings,r)}useNestedResult(){return!1}}});var Pfe,bfe,Ife,Rut,RV,vV=_(()=>{Pfe=O(kA()),bfe=require("@smithy/smithy-client");uV();Ife=(t,e)=>PA(t,e).then(r=>{if(r.length){let n;try{n=(0,Pfe.parseXML)(r)}catch(a){throw a&&typeof a=="object"&&Object.defineProperty(a,"$responseBodyText",{value:r}),a}let s="#text",o=Object.keys(n)[0],i=n[o];return i[s]&&(i[o]=i[s],delete i[s]),(0,bfe.getValueFromTextNode)(i)}return{}}),Rut=async(t,e)=>{let r=await Ife(t,e);return r.Error&&(r.Error.message=r.Error.message??r.Error.Message),r},RV=(t,e)=>{if(e?.Error?.Code!==void 0)return e.Error.Code;if(e?.Code!==void 0)return e.Code;if(t.statusCode==404)return"NotFound"}});var Xn,Afe,FA,BA,xV,UA,Ry,PV=_(()=>{Xn=O(kA()),Afe=require("@smithy/core/protocols"),FA=require("@smithy/core/schema"),BA=require("@smithy/core/serde"),xV=require("@smithy/smithy-client"),UA=require("@smithy/util-base64");Yu();Ry=class extends bn{settings;stringBuffer;byteBuffer;buffer;constructor(e){super(),this.settings=e}write(e,r){let n=FA.NormalizedSchema.of(e);if(n.isStringSchema()&&typeof r=="string")this.stringBuffer=r;else if(n.isBlobSchema())this.byteBuffer="byteLength"in r?r:(this.serdeContext?.base64Decoder??UA.fromBase64)(r);else{this.buffer=this.writeStruct(n,r,void 0);let s=n.getMergedTraits();s.httpPayload&&!s.xmlName&&this.buffer.withName(n.getName())}}flush(){if(this.byteBuffer!==void 0){let r=this.byteBuffer;return delete this.byteBuffer,r}if(this.stringBuffer!==void 0){let r=this.stringBuffer;return delete this.stringBuffer,r}let e=this.buffer;return this.settings.xmlNamespace&&(e?.attributes?.xmlns||e.addAttribute("xmlns",this.settings.xmlNamespace)),delete this.buffer,e.toString()}writeStruct(e,r,n){let s=e.getMergedTraits(),o=e.isMemberSchema()&&!s.httpPayload?e.getMemberTraits().xmlName??e.getMemberName():s.xmlName??e.getName();if(!o||!e.isStructSchema())throw new Error(`@aws-sdk/core/protocols - xml serializer, cannot write struct with empty name or non-struct, schema=${e.getName(!0)}.`);let i=Xn.XmlNode.of(o),[a,c]=this.getXmlnsAttribute(e,n);for(let[l,d]of e.structIterator()){let p=r[l];if(p!=null||d.isIdempotencyToken()){if(d.getMergedTraits().xmlAttribute){i.addAttribute(d.getMergedTraits().xmlName??l,this.writeSimple(d,p));continue}if(d.isListSchema())this.writeList(d,p,i,c);else if(d.isMapSchema())this.writeMap(d,p,i,c);else if(d.isStructSchema())i.addChildNode(this.writeStruct(d,p,c));else{let g=Xn.XmlNode.of(d.getMergedTraits().xmlName??d.getMemberName());this.writeSimpleInto(d,p,g,c),i.addChildNode(g)}}}let{$unknown:u}=r;if(u&&e.isUnionSchema()&&Array.isArray(u)&&Object.keys(r).length===1){let[l,d]=u,p=Xn.XmlNode.of(l);if(typeof d!="string")if(r instanceof Xn.XmlNode||r instanceof Xn.XmlText)i.addChildNode(r);else throw new Error("@aws-sdk - $unknown union member in XML requires value of type string, @aws-sdk/xml-builder::XmlNode or XmlText.");this.writeSimpleInto(0,d,p,c),i.addChildNode(p)}return c&&i.addAttribute(a,c),i}writeList(e,r,n,s){if(!e.isMemberSchema())throw new Error(`@aws-sdk/core/protocols - xml serializer, cannot write non-member list: ${e.getName(!0)}`);let o=e.getMergedTraits(),i=e.getValueSchema(),a=i.getMergedTraits(),c=!!a.sparse,u=!!o.xmlFlattened,[l,d]=this.getXmlnsAttribute(e,s),p=(g,y)=>{if(i.isListSchema())this.writeList(i,Array.isArray(y)?y:[y],g,d);else if(i.isMapSchema())this.writeMap(i,y,g,d);else if(i.isStructSchema()){let R=this.writeStruct(i,y,d);g.addChildNode(R.withName(u?o.xmlName??e.getMemberName():a.xmlName??"member"))}else{let R=Xn.XmlNode.of(u?o.xmlName??e.getMemberName():a.xmlName??"member");this.writeSimpleInto(i,y,R,d),g.addChildNode(R)}};if(u)for(let g of r)(c||g!=null)&&p(n,g);else{let g=Xn.XmlNode.of(o.xmlName??e.getMemberName());d&&g.addAttribute(l,d);for(let y of r)(c||y!=null)&&p(g,y);n.addChildNode(g)}}writeMap(e,r,n,s,o=!1){if(!e.isMemberSchema())throw new Error(`@aws-sdk/core/protocols - xml serializer, cannot write non-member map: ${e.getName(!0)}`);let i=e.getMergedTraits(),a=e.getKeySchema(),u=a.getMergedTraits().xmlName??"key",l=e.getValueSchema(),d=l.getMergedTraits(),p=d.xmlName??"value",g=!!d.sparse,y=!!i.xmlFlattened,[R,D]=this.getXmlnsAttribute(e,s),B=(M,ge,Y)=>{let Te=Xn.XmlNode.of(u,ge),[Ht,Tt]=this.getXmlnsAttribute(a,D);Tt&&Te.addAttribute(Ht,Tt),M.addChildNode(Te);let Ne=Xn.XmlNode.of(p);l.isListSchema()?this.writeList(l,Y,Ne,D):l.isMapSchema()?this.writeMap(l,Y,Ne,D,!0):l.isStructSchema()?Ne=this.writeStruct(l,Y,D):this.writeSimpleInto(l,Y,Ne,D),M.addChildNode(Ne)};if(y){for(let[M,ge]of Object.entries(r))if(g||ge!=null){let Y=Xn.XmlNode.of(i.xmlName??e.getMemberName());B(Y,M,ge),n.addChildNode(Y)}}else{let M;o||(M=Xn.XmlNode.of(i.xmlName??e.getMemberName()),D&&M.addAttribute(R,D),n.addChildNode(M));for(let[ge,Y]of Object.entries(r))if(g||Y!=null){let Te=Xn.XmlNode.of("entry");B(Te,ge,Y),(o?n:M).addChildNode(Te)}}}writeSimple(e,r){if(r===null)throw new Error("@aws-sdk/core/protocols - (XML serializer) cannot write null value.");let n=FA.NormalizedSchema.of(e),s=null;if(r&&typeof r=="object")if(n.isBlobSchema())s=(this.serdeContext?.base64Encoder??UA.toBase64)(r);else if(n.isTimestampSchema()&&r instanceof Date)switch((0,Afe.determineTimestampFormat)(n,this.settings)){case 5:s=r.toISOString().replace(".000Z","Z");break;case 6:s=(0,xV.dateToUtcString)(r);break;case 7:s=String(r.getTime()/1e3);break;default:console.warn("Missing timestamp format, using http date",r),s=(0,xV.dateToUtcString)(r);break}else{if(n.isBigDecimalSchema()&&r)return r instanceof BA.NumericValue?r.string:String(r);throw n.isMapSchema()||n.isListSchema()?new Error("@aws-sdk/core/protocols - xml serializer, cannot call _write() on List/Map schema, call writeList or writeMap() instead."):new Error(`@aws-sdk/core/protocols - xml serializer, unhandled schema type for object value and schema: ${n.getName(!0)}`)}if((n.isBooleanSchema()||n.isNumericSchema()||n.isBigIntegerSchema()||n.isBigDecimalSchema())&&(s=String(r)),n.isStringSchema()&&(r===void 0&&n.isIdempotencyToken()?s=(0,BA.generateIdempotencyToken)():s=String(r)),s===null)throw new Error(`Unhandled schema-value pair ${n.getName(!0)}=${r}`);return s}writeSimpleInto(e,r,n,s){let o=this.writeSimple(e,r),i=FA.NormalizedSchema.of(e),a=new Xn.XmlText(o),[c,u]=this.getXmlnsAttribute(i,s);u&&n.addAttribute(c,u),n.addChildNode(a)}getXmlnsAttribute(e,r){let n=e.getMergedTraits(),[s,o]=n.xmlNamespace??[];return o&&o!==r?[s?`xmlns:${s}`:"xmlns",o]:[void 0,void 0]}}});var vy,bV=_(()=>{Yu();NA();PV();vy=class extends bn{settings;constructor(e){super(),this.settings=e}createSerializer(){let e=new Ry(this.settings);return e.setSerdeContext(this.serdeContext),e}createDeserializer(){let e=new Vd(this.settings);return e.setSerdeContext(this.serdeContext),e}}});var bg,xy,IV,Tfe=_(()=>{bg=require("@smithy/core/protocols"),xy=require("@smithy/core/schema");Cg();vV();bV();IV=class extends bg.HttpBindingProtocol{codec;serializer;deserializer;mixin=new Fo;constructor(e){super(e);let r={timestampFormat:{useTrait:!0,default:5},httpBindings:!0,xmlNamespace:e.xmlNamespace,serviceNamespace:e.defaultNamespace};this.codec=new vy(r),this.serializer=new bg.HttpInterceptingShapeSerializer(this.codec.createSerializer(),r),this.deserializer=new bg.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(),r)}getPayloadCodec(){return this.codec}getShapeId(){return"aws.protocols#restXml"}async serializeRequest(e,r,n){let s=await super.serializeRequest(e,r,n),o=xy.NormalizedSchema.of(e.input);if(!s.headers["content-type"]){let i=this.mixin.resolveRestContentType(this.getDefaultContentType(),o);i&&(s.headers["content-type"]=i)}return typeof s.body=="string"&&s.headers["content-type"]===this.getDefaultContentType()&&!s.body.startsWith("'+s.body),s}async deserializeResponse(e,r,n){return super.deserializeResponse(e,r,n)}async handleError(e,r,n,s,o){let i=RV(n,s)??"Unknown";if(s.Error&&typeof s.Error=="object")for(let y of Object.keys(s.Error))s[y]=s.Error[y],y.toLowerCase()==="message"&&(s.message=s.Error[y]);s.RequestId&&!o.requestId&&(o.requestId=s.RequestId);let{errorSchema:a,errorMetadata:c}=await this.mixin.getErrorSchemaOrThrowBaseException(i,this.options.defaultNamespace,n,s,o),u=xy.NormalizedSchema.of(a),l=s.Error?.message??s.Error?.Message??s.message??s.Message??"Unknown",d=xy.TypeRegistry.for(a[1]).getErrorCtor(a)??Error,p=new d(l);await this.deserializeHttpMessage(a,r,n,s);let g={};for(let[y,R]of u.structIterator()){let D=R.getMergedTraits().xmlName??y,B=s.Error?.[D]??s[D];g[y]=this.codec.createDeserializer().readSchema(R,B)}throw this.mixin.decorateServiceException(Object.assign(p,c,{$fault:u.getMergedTraits().error,message:l},g),s)}getDefaultContentType(){return"application/xml"}hasUnstructuredPayloadBinding(e){for(let[,r]of e.structIterator())if(r.getMergedTraits().httpPayload)return!(r.isStructSchema()||r.isMapSchema()||r.isListSchema());return!1}}});var wfe=_(()=>{Qge();Xge();lfe();dfe();wA();pfe();TA();lV();pV();gfe();hy();xfe();_V();Tfe();bV();NA();PV();vV()});var Dfe={};wt(Dfe,{AWSSDKSigV4Signer:()=>Mge,AwsEc2QueryProtocol:()=>CV,AwsJson1_0Protocol:()=>mV,AwsJson1_1Protocol:()=>gV,AwsJsonRpcProtocol:()=>jd,AwsQueryProtocol:()=>Cy,AwsRestJsonProtocol:()=>fV,AwsRestXmlProtocol:()=>IV,AwsSdkSigV4ASigner:()=>RA,AwsSdkSigV4Signer:()=>$d,AwsSmithyRpcV2CborProtocol:()=>aV,JsonCodec:()=>Gd,JsonShapeDeserializer:()=>Sy,JsonShapeSerializer:()=>Ey,NODE_AUTH_SCHEME_PREFERENCE_OPTIONS:()=>iut,NODE_SIGV4A_CONFIG_OPTIONS:()=>cut,XmlCodec:()=>vy,XmlShapeDeserializer:()=>Vd,XmlShapeSerializer:()=>Ry,_toBool:()=>mut,_toNum:()=>gut,_toStr:()=>put,awsExpectUnion:()=>hut,emitWarningIfUnsupportedVersion:()=>nut,getBearerTokenEnvKey:()=>rV,loadRestJsonErrorCode:()=>fy,loadRestXmlErrorCode:()=>RV,parseJsonBody:()=>bA,parseJsonErrorBody:()=>fut,parseXmlBody:()=>Ife,parseXmlErrorBody:()=>Rut,resolveAWSSDKSigV4Config:()=>uut,resolveAwsSdkSigV4AConfig:()=>aut,resolveAwsSdkSigV4Config:()=>Hge,setCredentialFeature:()=>K4,setFeature:()=>sut,setTokenFeature:()=>out,state:()=>W4,validateSigningProperties:()=>my});var Ofe=_(()=>{Q4();Kge();wfe()});var jfe=b(Ag=>{"use strict";var Ig=class t{value;constructor(e){typeof e=="object"&&"N"in e?this.value=String(e.N):this.value=String(e);let r=typeof e.valueOf()=="number"?e.valueOf():0;if(r>Number.MAX_SAFE_INTEGER||r{if(t===void 0)throw new Error("Pass options.removeUndefinedValues=true to remove undefined values from map/array/set.");if(t===null&&typeof t=="object")return qA();if(Array.isArray(t))return vut(t,e);if(t?.constructor?.name==="Set")return xut(t,e);if(t?.constructor?.name==="Map")return Put(t,e);if(t?.constructor?.name==="Object"||!t.constructor&&typeof t=="object")return kfe(t,e);if(Gfe(t))return t.length===0&&e?.convertEmptyValues?qA():Bfe(t);if(typeof t=="boolean"||t?.constructor?.name==="Boolean")return{BOOL:t.valueOf()};if(typeof t=="number"||t?.constructor?.name==="Number")return $fe(t,e);if(t instanceof Ig)return t.toAttributeValue();if(typeof t=="bigint")return qfe(t);if(typeof t=="string"||t?.constructor?.name==="String")return t.length===0&&e?.convertEmptyValues?qA():Ufe(t);if(e?.convertClassInstanceToMap&&typeof t=="object")return kfe(t,e);throw new Error(`Unsupported type passed: ${t}. Pass options.convertClassInstanceToMap=true to marshall typeof object as map attribute.`)},vut=(t,e)=>({L:t.filter(r=>typeof r!="function"&&(!e?.removeUndefinedValues||e?.removeUndefinedValues&&r!==void 0)).map(r=>by(r,e))}),xut=(t,e)=>{let r=e?.removeUndefinedValues?new Set([...t].filter(s=>s!==void 0)):t;if(!e?.removeUndefinedValues&&r.has(void 0))throw new Error("Pass options.removeUndefinedValues=true to remove undefined values from map/array/set.");if(r.size===0){if(e?.convertEmptyValues)return qA();throw new Error("Pass a non-empty set, or options.convertEmptyValues=true.")}let n=r.values().next().value;if(n instanceof Ig)return{NS:Array.from(r).map(s=>s.toString())};if(typeof n=="number")return{NS:Array.from(r).map(s=>$fe(s,e)).map(s=>s.N)};if(typeof n=="bigint")return{NS:Array.from(r).map(qfe).map(s=>s.N)};if(typeof n=="string")return{SS:Array.from(r).map(Ufe).map(s=>s.S)};if(Gfe(n))return{BS:Array.from(r).map(Bfe).map(s=>s.B)};throw new Error("Only Number Set (NS), Binary Set (BS) or String Set (SS) are allowed.")},Put=(t,e)=>({M:(r=>{let n={};for(let[s,o]of r)typeof o!="function"&&(o!==void 0||!e?.removeUndefinedValues)&&(n[s]=by(o,e));return n})(t)}),kfe=(t,e)=>({M:(r=>{let n={};for(let s in r){let o=r[s];typeof o!="function"&&(o!==void 0||!e?.removeUndefinedValues)&&(n[s]=by(o,e))}return n})(t)}),qA=()=>({NULL:!0}),Bfe=t=>({B:t}),Ufe=t=>({S:t.toString()}),qfe=t=>({N:t.toString()}),Nfe=t=>{throw new Error(`${t} Use NumberValue from @aws-sdk/lib-dynamodb.`)},$fe=(t,e)=>{if([Number.NaN,Number.POSITIVE_INFINITY,Number.NEGATIVE_INFINITY].map(r=>r.toString()).includes(t.toString()))throw new Error(`Special numeric value ${t.toString()} is not allowed`);return e?.allowImpreciseNumbers||(Number(t)>Number.MAX_SAFE_INTEGER?Nfe(`Number ${t.toString()} is greater than Number.MAX_SAFE_INTEGER.`):Number(t){let e=["ArrayBuffer","Blob","Buffer","DataView","File","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array"];return t?.constructor?e.includes(t.constructor.name):!1},Py=(t,e)=>{for(let[r,n]of Object.entries(t))if(n!==void 0)switch(r){case"NULL":return null;case"BOOL":return!!n;case"N":return Lfe(n,e);case"B":return Ffe(n);case"S":return Mfe(n);case"L":return but(n,e);case"M":return Iut(n,e);case"NS":return new Set(n.map(s=>Lfe(s,e)));case"BS":return new Set(n.map(Ffe));case"SS":return new Set(n.map(Mfe));default:throw new Error(`Unsupported type passed: ${r}`)}throw new Error(`No value defined: ${JSON.stringify(t)}`)},Lfe=(t,e)=>{if(typeof e?.wrapNumbers=="function")return e?.wrapNumbers(t);if(e?.wrapNumbers)return Ig.from(t);let r=Number(t),n=[Number.POSITIVE_INFINITY,Number.NEGATIVE_INFINITY];if((r>Number.MAX_SAFE_INTEGER||rt,Ffe=t=>t,but=(t,e)=>t.map(r=>Py(r,e)),Iut=(t,e)=>Object.entries(t).reduce((r,[n,s])=>(r[n]=Py(s,e),r),{});function Aut(t,e){let r=by(t,e),[n,s]=Object.entries(r)[0];switch(n){case"M":case"L":return e?.convertTopLevelContainer?r:s;case"SS":case"NS":case"BS":case"S":case"N":case"B":case"NULL":case"BOOL":case"$unknown":default:return r}}var Tut=(t,e)=>e?.convertWithoutMapWrapper?Py(t,e):Py({M:t},e);Ag.NumberValueImpl=Ig;Ag.convertToAttr=by;Ag.convertToNative=Py;Ag.marshall=Aut;Ag.unmarshall=Tut});var DV=b(dr=>{"use strict";var ZA=require("@smithy/smithy-client"),wut=(Ofe(),ue(Dfe)),TV=jfe(),Ks=CA(),Hfe=require("@smithy/core"),Iy=null,we={},Tc=[],Vfe="*",$A=(t,e,r)=>{if(t!==void 0){if(r==null)return e(t);{let n=Object.keys(r),s=n.length===1&&n[0]===Vfe,o=n.length>=1&&!s,i=n.length===0;if(o)return wV(t,e,r);if(i)return Dut(t,e,Iy);if(s)return Object.entries(t??{}).reduce((a,[c,u])=>(typeof u!="function"&&(a[c]=$A(u,e,r[Vfe])),a),Array.isArray(t)?[]:{})}}},wV=(t,e,r)=>{let n;if(Array.isArray(t))n=t.filter(s=>typeof s!="function");else{n={};for(let[s,o]of Object.entries(t))typeof o!="function"&&(n[s]=o)}for(let[s,o]of Object.entries(r)){if(typeof t[s]=="function")continue;let i=$A(t[s],e,o);i!==void 0&&typeof i!="function"&&(n[s]=i)}return n},Dut=(t,e,r)=>Array.isArray(t)?t.filter(n=>typeof n!="function").map(n=>$A(n,e,r)):Object.entries(t).reduce((n,[s,o])=>{if(typeof o=="function")return n;let i=$A(o,e,r);return i!==void 0&&typeof i!="function"&&(n[s]=i),n},{}),Out=(t,e,r)=>wV(t,s=>TV.marshall(s,r),e),kut=(t,e,r)=>wV(t,s=>TV.unmarshall(s,r),e),In=class extends ZA.Command{addMarshallingMiddleware(e){let{marshallOptions:r={},unmarshallOptions:n={}}=e.translateConfig||{};r.convertTopLevelContainer=r.convertTopLevelContainer??!0,n.convertWithoutMapWrapper=n.convertWithoutMapWrapper??!0,this.clientCommand.middlewareStack.addRelativeTo((s,o)=>async i=>(wut.setFeature(o,"DDB_MAPPER","d"),s({...i,input:Out(i.input,this.inputKeyNodes,r)})),{name:"DocumentMarshall",relation:"before",toMiddleware:"serializerMiddleware",override:!0}),this.clientCommand.middlewareStack.addRelativeTo((s,o)=>async i=>{let a=await s(i);return a.output=kut(a.output,this.outputKeyNodes,n),a},{name:"DocumentUnmarshall",relation:"before",toMiddleware:"deserializerMiddleware",override:!0})}},GA=class extends In{input;inputKeyNodes={Statements:{"*":{Parameters:Tc}}};outputKeyNodes={Responses:{"*":{Error:{Item:we},Item:we}}};clientCommand;middlewareStack;constructor(e){super(),this.input=e,this.clientCommand=new Ks.BatchExecuteStatementCommand(this.input),this.middlewareStack=this.clientCommand.middlewareStack}resolveMiddleware(e,r,n){this.addMarshallingMiddleware(r);let s=e.concat(this.middlewareStack),o=this.clientCommand.resolveMiddleware(s,r,n);return async()=>o(this.clientCommand)}},jA=class extends In{input;inputKeyNodes={RequestItems:{"*":{Keys:{"*":we}}}};outputKeyNodes={Responses:{"*":{"*":we}},UnprocessedKeys:{"*":{Keys:{"*":we}}}};clientCommand;middlewareStack;constructor(e){super(),this.input=e,this.clientCommand=new Ks.BatchGetItemCommand(this.input),this.middlewareStack=this.clientCommand.middlewareStack}resolveMiddleware(e,r,n){this.addMarshallingMiddleware(r);let s=e.concat(this.middlewareStack),o=this.clientCommand.resolveMiddleware(s,r,n);return async()=>o(this.clientCommand)}},VA=class extends In{input;inputKeyNodes={RequestItems:{"*":{"*":{PutRequest:{Item:we},DeleteRequest:{Key:we}}}}};outputKeyNodes={UnprocessedItems:{"*":{"*":{PutRequest:{Item:we},DeleteRequest:{Key:we}}}},ItemCollectionMetrics:{"*":{"*":{ItemCollectionKey:we}}}};clientCommand;middlewareStack;constructor(e){super(),this.input=e,this.clientCommand=new Ks.BatchWriteItemCommand(this.input),this.middlewareStack=this.clientCommand.middlewareStack}resolveMiddleware(e,r,n){this.addMarshallingMiddleware(r);let s=e.concat(this.middlewareStack),o=this.clientCommand.resolveMiddleware(s,r,n);return async()=>o(this.clientCommand)}},HA=class extends In{input;inputKeyNodes={Key:we,Expected:{"*":{Value:Iy,AttributeValueList:Tc}},ExpressionAttributeValues:we};outputKeyNodes={Attributes:we,ItemCollectionMetrics:{ItemCollectionKey:we}};clientCommand;middlewareStack;constructor(e){super(),this.input=e,this.clientCommand=new Ks.DeleteItemCommand(this.input),this.middlewareStack=this.clientCommand.middlewareStack}resolveMiddleware(e,r,n){this.addMarshallingMiddleware(r);let s=e.concat(this.middlewareStack),o=this.clientCommand.resolveMiddleware(s,r,n);return async()=>o(this.clientCommand)}},zA=class extends In{input;inputKeyNodes={Parameters:Tc};outputKeyNodes={Items:{"*":we},LastEvaluatedKey:we};clientCommand;middlewareStack;constructor(e){super(),this.input=e,this.clientCommand=new Ks.ExecuteStatementCommand(this.input),this.middlewareStack=this.clientCommand.middlewareStack}resolveMiddleware(e,r,n){this.addMarshallingMiddleware(r);let s=e.concat(this.middlewareStack),o=this.clientCommand.resolveMiddleware(s,r,n);return async()=>o(this.clientCommand)}},WA=class extends In{input;inputKeyNodes={TransactStatements:{"*":{Parameters:Tc}}};outputKeyNodes={Responses:{"*":{Item:we}}};clientCommand;middlewareStack;constructor(e){super(),this.input=e,this.clientCommand=new Ks.ExecuteTransactionCommand(this.input),this.middlewareStack=this.clientCommand.middlewareStack}resolveMiddleware(e,r,n){this.addMarshallingMiddleware(r);let s=e.concat(this.middlewareStack),o=this.clientCommand.resolveMiddleware(s,r,n);return async()=>o(this.clientCommand)}},KA=class extends In{input;inputKeyNodes={Key:we};outputKeyNodes={Item:we};clientCommand;middlewareStack;constructor(e){super(),this.input=e,this.clientCommand=new Ks.GetItemCommand(this.input),this.middlewareStack=this.clientCommand.middlewareStack}resolveMiddleware(e,r,n){this.addMarshallingMiddleware(r);let s=e.concat(this.middlewareStack),o=this.clientCommand.resolveMiddleware(s,r,n);return async()=>o(this.clientCommand)}},QA=class extends In{input;inputKeyNodes={Item:we,Expected:{"*":{Value:Iy,AttributeValueList:Tc}},ExpressionAttributeValues:we};outputKeyNodes={Attributes:we,ItemCollectionMetrics:{ItemCollectionKey:we}};clientCommand;middlewareStack;constructor(e){super(),this.input=e,this.clientCommand=new Ks.PutItemCommand(this.input),this.middlewareStack=this.clientCommand.middlewareStack}resolveMiddleware(e,r,n){this.addMarshallingMiddleware(r);let s=e.concat(this.middlewareStack),o=this.clientCommand.resolveMiddleware(s,r,n);return async()=>o(this.clientCommand)}},Ay=class extends In{input;inputKeyNodes={KeyConditions:{"*":{AttributeValueList:Tc}},QueryFilter:{"*":{AttributeValueList:Tc}},ExclusiveStartKey:we,ExpressionAttributeValues:we};outputKeyNodes={Items:{"*":we},LastEvaluatedKey:we};clientCommand;middlewareStack;constructor(e){super(),this.input=e,this.clientCommand=new Ks.QueryCommand(this.input),this.middlewareStack=this.clientCommand.middlewareStack}resolveMiddleware(e,r,n){this.addMarshallingMiddleware(r);let s=e.concat(this.middlewareStack),o=this.clientCommand.resolveMiddleware(s,r,n);return async()=>o(this.clientCommand)}},Ty=class extends In{input;inputKeyNodes={ScanFilter:{"*":{AttributeValueList:Tc}},ExclusiveStartKey:we,ExpressionAttributeValues:we};outputKeyNodes={Items:{"*":we},LastEvaluatedKey:we};clientCommand;middlewareStack;constructor(e){super(),this.input=e,this.clientCommand=new Ks.ScanCommand(this.input),this.middlewareStack=this.clientCommand.middlewareStack}resolveMiddleware(e,r,n){this.addMarshallingMiddleware(r);let s=e.concat(this.middlewareStack),o=this.clientCommand.resolveMiddleware(s,r,n);return async()=>o(this.clientCommand)}},XA=class extends In{input;inputKeyNodes={TransactItems:{"*":{Get:{Key:we}}}};outputKeyNodes={Responses:{"*":{Item:we}}};clientCommand;middlewareStack;constructor(e){super(),this.input=e,this.clientCommand=new Ks.TransactGetItemsCommand(this.input),this.middlewareStack=this.clientCommand.middlewareStack}resolveMiddleware(e,r,n){this.addMarshallingMiddleware(r);let s=e.concat(this.middlewareStack),o=this.clientCommand.resolveMiddleware(s,r,n);return async()=>o(this.clientCommand)}},JA=class extends In{input;inputKeyNodes={TransactItems:{"*":{ConditionCheck:{Key:we,ExpressionAttributeValues:we},Put:{Item:we,ExpressionAttributeValues:we},Delete:{Key:we,ExpressionAttributeValues:we},Update:{Key:we,ExpressionAttributeValues:we}}}};outputKeyNodes={ItemCollectionMetrics:{"*":{"*":{ItemCollectionKey:we}}}};clientCommand;middlewareStack;constructor(e){super(),this.input=e,this.clientCommand=new Ks.TransactWriteItemsCommand(this.input),this.middlewareStack=this.clientCommand.middlewareStack}resolveMiddleware(e,r,n){this.addMarshallingMiddleware(r);let s=e.concat(this.middlewareStack),o=this.clientCommand.resolveMiddleware(s,r,n);return async()=>o(this.clientCommand)}},YA=class extends In{input;inputKeyNodes={Key:we,AttributeUpdates:{"*":{Value:Iy}},Expected:{"*":{Value:Iy,AttributeValueList:Tc}},ExpressionAttributeValues:we};outputKeyNodes={Attributes:we,ItemCollectionMetrics:{ItemCollectionKey:we}};clientCommand;middlewareStack;constructor(e){super(),this.input=e,this.clientCommand=new Ks.UpdateItemCommand(this.input),this.middlewareStack=this.clientCommand.middlewareStack}resolveMiddleware(e,r,n){this.addMarshallingMiddleware(r);let s=e.concat(this.middlewareStack),o=this.clientCommand.resolveMiddleware(s,r,n);return async()=>o(this.clientCommand)}},Tg=class t extends ZA.Client{config;constructor(e,r){if(super(e.config),this.config=e.config,this.config.translateConfig=r,this.middlewareStack=e.middlewareStack,this.config?.cacheMiddleware)throw new Error("@aws-sdk/lib-dynamodb - cacheMiddleware=true is not compatible with the DynamoDBDocumentClient. This option must be set to false.")}static from(e,r){return new t(e,r)}destroy(){}},Nut=Hfe.createPaginator(Tg,Ay,"ExclusiveStartKey","LastEvaluatedKey","Limit"),Lut=Hfe.createPaginator(Tg,Ty,"ExclusiveStartKey","LastEvaluatedKey","Limit"),AV=class t extends Tg{static from(e,r){return new t(e,r)}batchExecuteStatement(e,r,n){let s=new GA(e);if(typeof r=="function")this.send(s,r);else if(typeof n=="function"){if(typeof r!="object")throw new Error(`Expect http options but get ${typeof r}`);this.send(s,r||{},n)}else return this.send(s,r)}batchGet(e,r,n){let s=new jA(e);if(typeof r=="function")this.send(s,r);else if(typeof n=="function"){if(typeof r!="object")throw new Error(`Expect http options but get ${typeof r}`);this.send(s,r||{},n)}else return this.send(s,r)}batchWrite(e,r,n){let s=new VA(e);if(typeof r=="function")this.send(s,r);else if(typeof n=="function"){if(typeof r!="object")throw new Error(`Expect http options but get ${typeof r}`);this.send(s,r||{},n)}else return this.send(s,r)}delete(e,r,n){let s=new HA(e);if(typeof r=="function")this.send(s,r);else if(typeof n=="function"){if(typeof r!="object")throw new Error(`Expect http options but get ${typeof r}`);this.send(s,r||{},n)}else return this.send(s,r)}executeStatement(e,r,n){let s=new zA(e);if(typeof r=="function")this.send(s,r);else if(typeof n=="function"){if(typeof r!="object")throw new Error(`Expect http options but get ${typeof r}`);this.send(s,r||{},n)}else return this.send(s,r)}executeTransaction(e,r,n){let s=new WA(e);if(typeof r=="function")this.send(s,r);else if(typeof n=="function"){if(typeof r!="object")throw new Error(`Expect http options but get ${typeof r}`);this.send(s,r||{},n)}else return this.send(s,r)}get(e,r,n){let s=new KA(e);if(typeof r=="function")this.send(s,r);else if(typeof n=="function"){if(typeof r!="object")throw new Error(`Expect http options but get ${typeof r}`);this.send(s,r||{},n)}else return this.send(s,r)}put(e,r,n){let s=new QA(e);if(typeof r=="function")this.send(s,r);else if(typeof n=="function"){if(typeof r!="object")throw new Error(`Expect http options but get ${typeof r}`);this.send(s,r||{},n)}else return this.send(s,r)}query(e,r,n){let s=new Ay(e);if(typeof r=="function")this.send(s,r);else if(typeof n=="function"){if(typeof r!="object")throw new Error(`Expect http options but get ${typeof r}`);this.send(s,r||{},n)}else return this.send(s,r)}scan(e,r,n){let s=new Ty(e);if(typeof r=="function")this.send(s,r);else if(typeof n=="function"){if(typeof r!="object")throw new Error(`Expect http options but get ${typeof r}`);this.send(s,r||{},n)}else return this.send(s,r)}transactGet(e,r,n){let s=new XA(e);if(typeof r=="function")this.send(s,r);else if(typeof n=="function"){if(typeof r!="object")throw new Error(`Expect http options but get ${typeof r}`);this.send(s,r||{},n)}else return this.send(s,r)}transactWrite(e,r,n){let s=new JA(e);if(typeof r=="function")this.send(s,r);else if(typeof n=="function"){if(typeof r!="object")throw new Error(`Expect http options but get ${typeof r}`);this.send(s,r||{},n)}else return this.send(s,r)}update(e,r,n){let s=new YA(e);if(typeof r=="function")this.send(s,r);else if(typeof n=="function"){if(typeof r!="object")throw new Error(`Expect http options but get ${typeof r}`);this.send(s,r||{},n)}else return this.send(s,r)}};Object.defineProperty(dr,"$Command",{enumerable:!0,get:function(){return ZA.Command}});Object.defineProperty(dr,"__Client",{enumerable:!0,get:function(){return ZA.Client}});Object.defineProperty(dr,"NumberValue",{enumerable:!0,get:function(){return TV.NumberValueImpl}});dr.BatchExecuteStatementCommand=GA;dr.BatchGetCommand=jA;dr.BatchWriteCommand=VA;dr.DeleteCommand=HA;dr.DynamoDBDocument=AV;dr.DynamoDBDocumentClient=Tg;dr.DynamoDBDocumentClientCommand=In;dr.ExecuteStatementCommand=zA;dr.ExecuteTransactionCommand=WA;dr.GetCommand=KA;dr.PutCommand=QA;dr.QueryCommand=Ay;dr.ScanCommand=Ty;dr.TransactGetCommand=XA;dr.TransactWriteCommand=JA;dr.UpdateCommand=YA;dr.paginateQuery=Nut;dr.paginateScan=Lut});var wc=b(ky=>{"use strict";var alt=require("@smithy/protocol-http");function clt(t){return t}var Che=t=>e=>async r=>{if(!alt.HttpRequest.isInstance(r.request))return e(r);let{request:n}=r,{handlerProtocol:s=""}=t.requestHandler.metadata||{};if(s.indexOf("h2")>=0&&!n.headers[":authority"])delete n.headers.host,n.headers[":authority"]=n.hostname+(n.port?":"+n.port:"");else if(!n.headers.host){let o=n.hostname;n.port!=null&&(o+=`:${n.port}`),n.headers.host=o}return e(r)},Rhe={name:"hostHeaderMiddleware",step:"build",priority:"low",tags:["HOST"],override:!0},ult=t=>({applyToStack:e=>{e.add(Che(t),Rhe)}});ky.getHostHeaderPlugin=ult;ky.hostHeaderMiddleware=Che;ky.hostHeaderMiddlewareOptions=Rhe;ky.resolveHostHeaderConfig=clt});var Dc=b(sT=>{"use strict";var vhe=()=>(t,e)=>async r=>{try{let n=await t(r),{clientName:s,commandName:o,logger:i,dynamoDbDocumentClientOptions:a={}}=e,{overrideInputFilterSensitiveLog:c,overrideOutputFilterSensitiveLog:u}=a,l=c??e.inputFilterSensitiveLog,d=u??e.outputFilterSensitiveLog,{$metadata:p,...g}=n.output;return i?.info?.({clientName:s,commandName:o,input:l(r.input),output:d(g),metadata:p}),n}catch(n){let{clientName:s,commandName:o,logger:i,dynamoDbDocumentClientOptions:a={}}=e,{overrideInputFilterSensitiveLog:c}=a,u=c??e.inputFilterSensitiveLog;throw i?.error?.({clientName:s,commandName:o,input:u(r.input),error:n,metadata:n.$metadata}),n}},xhe={name:"loggerMiddleware",tags:["LOGGER"],step:"initialize",override:!0},llt=t=>({applyToStack:e=>{e.add(vhe(),xhe)}});sT.getLoggerPlugin=llt;sT.loggerMiddleware=vhe;sT.loggerMiddlewareOptions=xhe});var Phe=b(oT=>{"use strict";Object.defineProperty(oT,"__esModule",{value:!0});oT.recursionDetectionMiddleware=void 0;var dlt=require("@aws/lambda-invoke-store"),plt=require("@smithy/protocol-http"),qV="X-Amzn-Trace-Id",mlt="AWS_LAMBDA_FUNCTION_NAME",glt="_X_AMZN_TRACE_ID",flt=()=>t=>async e=>{let{request:r}=e;if(!plt.HttpRequest.isInstance(r))return t(e);let n=Object.keys(r.headers??{}).find(l=>l.toLowerCase()===qV.toLowerCase())??qV;if(r.headers.hasOwnProperty(n))return t(e);let s=process.env[mlt],o=process.env[glt],c=(await dlt.InvokeStore.getInstanceAsync())?.getXRayTraceId()??o,u=l=>typeof l=="string"&&l.length>0;return u(s)&&u(c)&&(r.headers[qV]=c),t({...e,request:r})};oT.recursionDetectionMiddleware=flt});var Oc=b(iT=>{"use strict";var $V=Phe(),hlt={step:"build",tags:["RECURSION_DETECTION"],name:"recursionDetectionMiddleware",override:!0,priority:"low"},Slt=t=>({applyToStack:e=>{e.add($V.recursionDetectionMiddleware(),hlt)}});iT.getRecursionDetectionPlugin=Slt;Object.keys($V).forEach(function(t){t!=="default"&&!Object.prototype.hasOwnProperty.call(iT,t)&&Object.defineProperty(iT,t,{enumerable:!0,get:function(){return $V[t]}})})});var Ta=b(Oi=>{"use strict";var kg=require("@smithy/util-endpoints"),Elt=require("@smithy/url-parser"),Ihe=(t,e=!1)=>{if(e){for(let r of t.split("."))if(!Ihe(r))return!1;return!0}return!(!kg.isValidHostLabel(t)||t.length<3||t.length>63||t!==t.toLowerCase()||kg.isIpAddress(t))},bhe=":",ylt="/",_lt=t=>{let e=t.split(bhe);if(e.length<6)return null;let[r,n,s,o,i,...a]=e;if(r!=="arn"||n===""||s===""||a.join(bhe)==="")return null;let c=a.map(u=>u.split(ylt)).flat();return{partition:n,service:s,region:o,accountId:i,resourceId:c}},Clt=[{id:"aws",outputs:{dnsSuffix:"amazonaws.com",dualStackDnsSuffix:"api.aws",implicitGlobalRegion:"us-east-1",name:"aws",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^(us|eu|ap|sa|ca|me|af|il|mx)\\-\\w+\\-\\d+$",regions:{"af-south-1":{description:"Africa (Cape Town)"},"ap-east-1":{description:"Asia Pacific (Hong Kong)"},"ap-east-2":{description:"Asia Pacific (Taipei)"},"ap-northeast-1":{description:"Asia Pacific (Tokyo)"},"ap-northeast-2":{description:"Asia Pacific (Seoul)"},"ap-northeast-3":{description:"Asia Pacific (Osaka)"},"ap-south-1":{description:"Asia Pacific (Mumbai)"},"ap-south-2":{description:"Asia Pacific (Hyderabad)"},"ap-southeast-1":{description:"Asia Pacific (Singapore)"},"ap-southeast-2":{description:"Asia Pacific (Sydney)"},"ap-southeast-3":{description:"Asia Pacific (Jakarta)"},"ap-southeast-4":{description:"Asia Pacific (Melbourne)"},"ap-southeast-5":{description:"Asia Pacific (Malaysia)"},"ap-southeast-6":{description:"Asia Pacific (New Zealand)"},"ap-southeast-7":{description:"Asia Pacific (Thailand)"},"aws-global":{description:"aws global region"},"ca-central-1":{description:"Canada (Central)"},"ca-west-1":{description:"Canada West (Calgary)"},"eu-central-1":{description:"Europe (Frankfurt)"},"eu-central-2":{description:"Europe (Zurich)"},"eu-north-1":{description:"Europe (Stockholm)"},"eu-south-1":{description:"Europe (Milan)"},"eu-south-2":{description:"Europe (Spain)"},"eu-west-1":{description:"Europe (Ireland)"},"eu-west-2":{description:"Europe (London)"},"eu-west-3":{description:"Europe (Paris)"},"il-central-1":{description:"Israel (Tel Aviv)"},"me-central-1":{description:"Middle East (UAE)"},"me-south-1":{description:"Middle East (Bahrain)"},"mx-central-1":{description:"Mexico (Central)"},"sa-east-1":{description:"South America (Sao Paulo)"},"us-east-1":{description:"US East (N. Virginia)"},"us-east-2":{description:"US East (Ohio)"},"us-west-1":{description:"US West (N. California)"},"us-west-2":{description:"US West (Oregon)"}}},{id:"aws-cn",outputs:{dnsSuffix:"amazonaws.com.cn",dualStackDnsSuffix:"api.amazonwebservices.com.cn",implicitGlobalRegion:"cn-northwest-1",name:"aws-cn",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^cn\\-\\w+\\-\\d+$",regions:{"aws-cn-global":{description:"aws-cn global region"},"cn-north-1":{description:"China (Beijing)"},"cn-northwest-1":{description:"China (Ningxia)"}}},{id:"aws-eusc",outputs:{dnsSuffix:"amazonaws.eu",dualStackDnsSuffix:"api.amazonwebservices.eu",implicitGlobalRegion:"eusc-de-east-1",name:"aws-eusc",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^eusc\\-(de)\\-\\w+\\-\\d+$",regions:{"eusc-de-east-1":{description:"EU (Germany)"}}},{id:"aws-iso",outputs:{dnsSuffix:"c2s.ic.gov",dualStackDnsSuffix:"api.aws.ic.gov",implicitGlobalRegion:"us-iso-east-1",name:"aws-iso",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^us\\-iso\\-\\w+\\-\\d+$",regions:{"aws-iso-global":{description:"aws-iso global region"},"us-iso-east-1":{description:"US ISO East"},"us-iso-west-1":{description:"US ISO WEST"}}},{id:"aws-iso-b",outputs:{dnsSuffix:"sc2s.sgov.gov",dualStackDnsSuffix:"api.aws.scloud",implicitGlobalRegion:"us-isob-east-1",name:"aws-iso-b",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^us\\-isob\\-\\w+\\-\\d+$",regions:{"aws-iso-b-global":{description:"aws-iso-b global region"},"us-isob-east-1":{description:"US ISOB East (Ohio)"},"us-isob-west-1":{description:"US ISOB West"}}},{id:"aws-iso-e",outputs:{dnsSuffix:"cloud.adc-e.uk",dualStackDnsSuffix:"api.cloud-aws.adc-e.uk",implicitGlobalRegion:"eu-isoe-west-1",name:"aws-iso-e",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^eu\\-isoe\\-\\w+\\-\\d+$",regions:{"aws-iso-e-global":{description:"aws-iso-e global region"},"eu-isoe-west-1":{description:"EU ISOE West"}}},{id:"aws-iso-f",outputs:{dnsSuffix:"csp.hci.ic.gov",dualStackDnsSuffix:"api.aws.hci.ic.gov",implicitGlobalRegion:"us-isof-south-1",name:"aws-iso-f",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^us\\-isof\\-\\w+\\-\\d+$",regions:{"aws-iso-f-global":{description:"aws-iso-f global region"},"us-isof-east-1":{description:"US ISOF EAST"},"us-isof-south-1":{description:"US ISOF SOUTH"}}},{id:"aws-us-gov",outputs:{dnsSuffix:"amazonaws.com",dualStackDnsSuffix:"api.aws",implicitGlobalRegion:"us-gov-west-1",name:"aws-us-gov",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^us\\-gov\\-\\w+\\-\\d+$",regions:{"aws-us-gov-global":{description:"aws-us-gov global region"},"us-gov-east-1":{description:"AWS GovCloud (US-East)"},"us-gov-west-1":{description:"AWS GovCloud (US-West)"}}}],Rlt="1.1",Ahe={partitions:Clt,version:Rlt},The=Ahe,whe="",Dhe=t=>{let{partitions:e}=The;for(let n of e){let{regions:s,outputs:o}=n;for(let[i,a]of Object.entries(s))if(i===t)return{...o,...a}}for(let n of e){let{regionRegex:s,outputs:o}=n;if(new RegExp(s).test(t))return{...o}}let r=e.find(n=>n.id==="aws");if(!r)throw new Error("Provided region was not found in the partition array or regex, and default partition with id 'aws' doesn't exist.");return{...r.outputs}},Ohe=(t,e="")=>{The=t,whe=e},vlt=()=>{Ohe(Ahe,"")},xlt=()=>whe,khe={isVirtualHostableS3Bucket:Ihe,parseArn:_lt,partition:Dhe};kg.customEndpointFunctions.aws=khe;var Plt=t=>{if(typeof t.endpointProvider!="function")throw new Error("@aws-sdk/util-endpoint - endpointProvider and endpoint missing in config for this client.");let{endpoint:e}=t;return e===void 0&&(t.endpoint=async()=>Nhe(t.endpointProvider({Region:typeof t.region=="function"?await t.region():t.region,UseDualStack:typeof t.useDualstackEndpoint=="function"?await t.useDualstackEndpoint():t.useDualstackEndpoint,UseFIPS:typeof t.useFipsEndpoint=="function"?await t.useFipsEndpoint():t.useFipsEndpoint,Endpoint:void 0},{logger:t.logger}))),t},Nhe=t=>Elt.parseUrl(t.url);Object.defineProperty(Oi,"EndpointError",{enumerable:!0,get:function(){return kg.EndpointError}});Object.defineProperty(Oi,"isIpAddress",{enumerable:!0,get:function(){return kg.isIpAddress}});Object.defineProperty(Oi,"resolveEndpoint",{enumerable:!0,get:function(){return kg.resolveEndpoint}});Oi.awsEndpointFunctions=khe;Oi.getUserAgentPrefix=xlt;Oi.partition=Dhe;Oi.resolveDefaultAwsRegionalEndpointsConfig=Plt;Oi.setPartitionInfo=Ohe;Oi.toEndpointV1=Nhe;Oi.useDefaultPartitionInfo=vlt});var aT,Zu,Lhe=_(()=>{aT={warningEmitted:!1},Zu=t=>{t&&!aT.warningEmitted&&parseInt(t.substring(1,t.indexOf(".")))<20&&(aT.warningEmitted=!0,process.emitWarning(`NodeDeprecationWarning: The AWS SDK for JavaScript (v3) will +no longer support Node.js ${t} in January 2026. + +To continue receiving updates to AWS services, bug fixes, and security +updates please upgrade to a supported Node.js LTS version. + +More information can be found at: https://a.co/c895JFp`))}});function el(t,e,r){return t.$source||(t.$source={}),t.$source[e]=r,t}var Mhe=_(()=>{});function Fhe(t,e,r){t.__aws_sdk_context?t.__aws_sdk_context.features||(t.__aws_sdk_context.features={}):t.__aws_sdk_context={features:{}},t.__aws_sdk_context.features[e]=r}var Bhe=_(()=>{});function Uhe(t,e,r){return t.$source||(t.$source={}),t.$source[e]=r,t}var qhe=_(()=>{});var kc={};wt(kc,{emitWarningIfUnsupportedVersion:()=>Zu,setCredentialFeature:()=>el,setFeature:()=>Fhe,setTokenFeature:()=>Uhe,state:()=>aT});var Bo=_(()=>{Lhe();Mhe();Bhe();qhe()});var $he,GV,Ghe=_(()=>{$he=require("@smithy/protocol-http"),GV=t=>$he.HttpResponse.isInstance(t)?t.headers?.date??t.headers?.Date:void 0});var Ng,jV=_(()=>{Ng=t=>new Date(Date.now()+t)});var jhe,Vhe=_(()=>{jV();jhe=(t,e)=>Math.abs(Ng(e).getTime()-t)>=3e5});var VV,Hhe=_(()=>{Vhe();VV=(t,e)=>{let r=Date.parse(t);return jhe(r,e)?r-Date.now():e}});var HV=_(()=>{Ghe();jV();Hhe()});var zhe,Ny,Lg,An,zV,WV=_(()=>{zhe=require("@smithy/protocol-http");HV();Ny=(t,e)=>{if(!e)throw new Error(`Property \`${t}\` is not resolved for AWS SDK SigV4Auth`);return e},Lg=async t=>{let e=Ny("context",t.context),r=Ny("config",t.config),n=e.endpointV2?.properties?.authSchemes?.[0],o=await Ny("signer",r.signer)(n),i=t?.signingRegion,a=t?.signingRegionSet,c=t?.signingName;return{config:r,signer:o,signingRegion:i,signingRegionSet:a,signingName:c}},An=class{async sign(e,r,n){if(!zhe.HttpRequest.isInstance(e))throw new Error("The request is not an instance of `HttpRequest` and cannot be signed");let s=await Lg(n),{config:o,signer:i}=s,{signingRegion:a,signingName:c}=s,u=n.context;if(u?.authSchemes?.length??!1){let[d,p]=u.authSchemes;d?.name==="sigv4a"&&p?.name==="sigv4"&&(a=p?.signingRegion??a,c=p?.signingName??c)}return await i.sign(e,{signingDate:Ng(o.systemClockOffset),signingRegion:a,signingService:c})}errorHandler(e){return r=>{let n=r.ServerTime??GV(r.$response);if(n){let s=Ny("config",e.config),o=s.systemClockOffset;s.systemClockOffset=VV(n,s.systemClockOffset),s.systemClockOffset!==o&&r.$metadata&&(r.$metadata.clockSkewCorrected=!0)}throw r}}successHandler(e,r){let n=GV(e);if(n){let s=Ny("config",r.config);s.systemClockOffset=VV(n,s.systemClockOffset)}}},zV=An});var Whe,Ly,Khe=_(()=>{Whe=require("@smithy/protocol-http");HV();WV();Ly=class extends An{async sign(e,r,n){if(!Whe.HttpRequest.isInstance(e))throw new Error("The request is not an instance of `HttpRequest` and cannot be signed");let{config:s,signer:o,signingRegion:i,signingRegionSet:a,signingName:c}=await Lg(n),l=(await s.sigv4aSigningRegionSet?.()??a??[i]).join(",");return await o.sign(e,{signingDate:Ng(s.systemClockOffset),signingRegion:l,signingService:c})}}});var KV,Qhe=_(()=>{KV=t=>typeof t=="string"&&t.length>0?t.split(",").map(e=>e.trim()):[]});var cT,QV=_(()=>{cT=t=>`AWS_BEARER_TOKEN_${t.replace(/[\s-]/g,"_").toUpperCase()}`});var Xhe,Jhe,tl,Yhe=_(()=>{Qhe();QV();Xhe="AWS_AUTH_SCHEME_PREFERENCE",Jhe="auth_scheme_preference",tl={environmentVariableSelector:(t,e)=>{if(e?.signingName&&cT(e.signingName)in t)return["httpBearerAuth"];if(Xhe in t)return KV(t[Xhe])},configFileSelector:t=>{if(Jhe in t)return KV(t[Jhe])},default:[]}});var Zhe,XV,eSe,tSe,rSe=_(()=>{Zhe=require("@smithy/core"),XV=require("@smithy/property-provider"),eSe=t=>(t.sigv4aSigningRegionSet=(0,Zhe.normalizeProvider)(t.sigv4aSigningRegionSet),t),tSe={environmentVariableSelector(t){if(t.AWS_SIGV4A_SIGNING_REGION_SET)return t.AWS_SIGV4A_SIGNING_REGION_SET.split(",").map(e=>e.trim());throw new XV.ProviderError("AWS_SIGV4A_SIGNING_REGION_SET not set in env.",{tryNextLink:!0})},configFileSelector(t){if(t.sigv4a_signing_region_set)return(t.sigv4a_signing_region_set??"").split(",").map(e=>e.trim());throw new XV.ProviderError("sigv4a_signing_region_set not set in profile.",{tryNextLink:!0})},default:void 0}});function blt(t,{credentials:e,credentialDefaultProvider:r}){let n;return e?e?.memoized?n=e:n=(0,ki.memoizeIdentityProvider)(e,ki.isIdentityExpired,ki.doesIdentityRequireRefresh):r?n=(0,ki.normalizeProvider)(r(Object.assign({},t,{parentClientConfig:t}))):n=async()=>{throw new Error("@aws-sdk/core::resolveAwsSdkSigV4Config - `credentials` not provided and no credentialDefaultProvider was configured.")},n.memoized=!0,n}function Ilt(t,e){if(e.configBound)return e;let r=async n=>e({...n,callerClientConfig:t});return r.memoized=e.memoized,r.configBound=!0,r}var ki,JV,Nc,nSe,sSe=_(()=>{Bo();ki=require("@smithy/core"),JV=require("@smithy/signature-v4"),Nc=t=>{let e=t.credentials,r=!!t.credentials,n;Object.defineProperty(t,"credentials",{set(u){u&&u!==e&&u!==n&&(r=!0),e=u;let l=blt(t,{credentials:e,credentialDefaultProvider:t.credentialDefaultProvider}),d=Ilt(t,l);r&&!d.attributed?(n=async p=>d(p).then(g=>el(g,"CREDENTIALS_CODE","e")),n.memoized=d.memoized,n.configBound=d.configBound,n.attributed=!0):n=d},get(){return n},enumerable:!0,configurable:!0}),t.credentials=e;let{signingEscapePath:s=!0,systemClockOffset:o=t.systemClockOffset||0,sha256:i}=t,a;return t.signer?a=(0,ki.normalizeProvider)(t.signer):t.regionInfoProvider?a=()=>(0,ki.normalizeProvider)(t.region)().then(async u=>[await t.regionInfoProvider(u,{useFipsEndpoint:await t.useFipsEndpoint(),useDualstackEndpoint:await t.useDualstackEndpoint()})||{},u]).then(([u,l])=>{let{signingRegion:d,signingService:p}=u;t.signingRegion=t.signingRegion||d||l,t.signingName=t.signingName||p||t.serviceId;let g={...t,credentials:t.credentials,region:t.signingRegion,service:t.signingName,sha256:i,uriEscapePath:s},y=t.signerConstructor||JV.SignatureV4;return new y(g)}):a=async u=>{u=Object.assign({},{name:"sigv4",signingName:t.signingName||t.defaultSigningName,signingRegion:await(0,ki.normalizeProvider)(t.region)(),properties:{}},u);let l=u.signingRegion,d=u.signingName;t.signingRegion=t.signingRegion||l,t.signingName=t.signingName||d||t.serviceId;let p={...t,credentials:t.credentials,region:t.signingRegion,service:t.signingName,sha256:i,uriEscapePath:s},g=t.signerConstructor||JV.SignatureV4;return new g(p)},Object.assign(t,{systemClockOffset:o,signingEscapePath:s,signer:a})},nSe=Nc});var oSe=_(()=>{WV();Khe();Yhe();rSe();sSe()});var iSe={};wt(iSe,{AWSSDKSigV4Signer:()=>zV,AwsSdkSigV4ASigner:()=>Ly,AwsSdkSigV4Signer:()=>An,NODE_AUTH_SCHEME_PREFERENCE_OPTIONS:()=>tl,NODE_SIGV4A_CONFIG_OPTIONS:()=>tSe,getBearerTokenEnvKey:()=>cT,resolveAWSSDKSigV4Config:()=>nSe,resolveAwsSdkSigV4AConfig:()=>eSe,resolveAwsSdkSigV4Config:()=>Nc,validateSigningProperties:()=>Lg});var YV=_(()=>{oSe();QV()});var My,ZV,Uo,Mg=_(()=>{My=require("@smithy/core/schema"),ZV=require("@smithy/smithy-client"),Uo=class{queryCompat;constructor(e=!1){this.queryCompat=e}resolveRestContentType(e,r){let n=r.getMemberSchemas(),s=Object.values(n).find(o=>!!o.getMergedTraits().httpPayload);if(s){let o=s.getMergedTraits().mediaType;return o||(s.isStringSchema()?"text/plain":s.isBlobSchema()?"application/octet-stream":e)}else if(!r.isUnitSchema()&&Object.values(n).find(i=>{let{httpQuery:a,httpQueryParams:c,httpHeader:u,httpLabel:l,httpPrefixHeaders:d}=i.getMergedTraits();return!a&&!c&&!u&&!l&&d===void 0}))return e}async getErrorSchemaOrThrowBaseException(e,r,n,s,o,i){let a=r,c=e;e.includes("#")&&([a,c]=e.split("#"));let u={$metadata:o,$fault:n.statusCode<500?"client":"server"},l=My.TypeRegistry.for(a);try{return{errorSchema:i?.(l,c)??l.getSchema(e),errorMetadata:u}}catch{s.message=s.message??s.Message??"UnknownError";let p=My.TypeRegistry.for("smithy.ts.sdk.synthetic."+a),g=p.getBaseException();if(g){let y=p.getErrorCtor(g)??Error;throw this.decorateServiceException(Object.assign(new y({name:c}),u),s)}throw this.decorateServiceException(Object.assign(new Error(c),u),s)}}decorateServiceException(e,r={}){if(this.queryCompat){let n=e.Message??r.Message,s=(0,ZV.decorateServiceException)(e,r);n&&(s.message=n),s.Error={...s.Error,Type:s.Error.Type,Code:s.Error.Code,Message:s.Error.message??s.Error.Message??n};let o=s.$metadata.requestId;return o&&(s.RequestId=o),s}return(0,ZV.decorateServiceException)(e,r)}setQueryCompatError(e,r){let n=r.headers?.["x-amzn-query-error"];if(e!==void 0&&n!=null){let[s,o]=n.split(";"),i=Object.entries(e),a={Code:s,Type:o};Object.assign(e,a);for(let[c,u]of i)a[c==="message"?"Message":c]=u;delete a.__type,e.Error=a}}queryCompatOutput(e,r){e.Error&&(r.Error=e.Error),e.Type&&(r.Type=e.Type),e.Code&&(r.Code=e.Code)}findQueryCompatibleError(e,r){try{return e.getSchema(r)}catch{return e.find(s=>My.NormalizedSchema.of(s).getMergedTraits().awsQueryError?.[0]===r)}}}});var lT,dT,uT,aSe=_(()=>{lT=require("@smithy/core/cbor"),dT=require("@smithy/core/schema");Mg();uT=class extends lT.SmithyRpcV2CborProtocol{awsQueryCompatible;mixin;constructor({defaultNamespace:e,awsQueryCompatible:r}){super({defaultNamespace:e}),this.awsQueryCompatible=!!r,this.mixin=new Uo(this.awsQueryCompatible)}async serializeRequest(e,r,n){let s=await super.serializeRequest(e,r,n);return this.awsQueryCompatible&&(s.headers["x-amzn-query-mode"]="true"),s}async handleError(e,r,n,s,o){this.awsQueryCompatible&&this.mixin.setQueryCompatError(s,n);let i=(()=>{let y=n.headers["x-amzn-query-error"];return y&&this.awsQueryCompatible?y.split(";")[0]:(0,lT.loadSmithyRpcV2CborErrorCode)(n,s)??"Unknown"})(),{errorSchema:a,errorMetadata:c}=await this.mixin.getErrorSchemaOrThrowBaseException(i,this.options.defaultNamespace,n,s,o,this.awsQueryCompatible?this.mixin.findQueryCompatibleError:void 0),u=dT.NormalizedSchema.of(a),l=s.message??s.Message??"Unknown",d=dT.TypeRegistry.for(a[1]).getErrorCtor(a)??Error,p=new d(l),g={};for(let[y,R]of u.structIterator())s[y]!=null&&(g[y]=this.deserializer.readValue(R,s[y]));throw this.awsQueryCompatible&&this.mixin.queryCompatOutput(s,g),this.mixin.decorateServiceException(Object.assign(p,c,{$fault:u.getMergedTraits().error,message:l},g),s)}}});var cSe,uSe,lSe,dSe=_(()=>{cSe=t=>{if(t==null)return t;if(typeof t=="number"||typeof t=="bigint"){let e=new Error(`Received number ${t} where a string was expected.`);return e.name="Warning",console.warn(e),String(t)}if(typeof t=="boolean"){let e=new Error(`Received boolean ${t} where a string was expected.`);return e.name="Warning",console.warn(e),String(t)}return t},uSe=t=>{if(t==null)return t;if(typeof t=="string"){let e=t.toLowerCase();if(t!==""&&e!=="false"&&e!=="true"){let r=new Error(`Received string "${t}" where a boolean was expected.`);r.name="Warning",console.warn(r)}return t!==""&&e!=="false"}return t},lSe=t=>{if(t==null)return t;if(typeof t=="string"){let e=Number(t);if(e.toString()!==t){let r=new Error(`Received string "${t}" where a number was expected.`);return r.name="Warning",console.warn(r),t}return e}return t}});var Tn,rl=_(()=>{Tn=class{serdeContext;setSerdeContext(e){this.serdeContext=e}}});function*Fg(t,e){if(t.isUnitSchema())return;let r=t.getSchema();for(let n=0;no!=="__type").length;for(let o=0;o{eH=require("@smithy/core/schema")});function gSe(t,e,r){if(r?.source){let n=r.source;if(typeof e=="number"&&(e>Number.MAX_SAFE_INTEGER||e{mSe=require("@smithy/core/serde")});var hSe,SSe,pT,tH=_(()=>{hSe=require("@smithy/smithy-client"),SSe=require("@smithy/util-utf8"),pT=(t,e)=>(0,hSe.collectBody)(t,e).then(r=>(e?.utf8Encoder??SSe.toUtf8)(r))});var By,ESe,Bg,Uy=_(()=>{tH();By=(t,e)=>pT(t,e).then(r=>{if(r.length)try{return JSON.parse(r)}catch(n){throw n?.name==="SyntaxError"&&Object.defineProperty(n,"$responseBodyText",{value:r}),n}return{}}),ESe=async(t,e)=>{let r=await By(t,e);return r.message=r.message??r.Message,r},Bg=(t,e)=>{let r=(o,i)=>Object.keys(o).find(a=>a.toLowerCase()===i.toLowerCase()),n=o=>{let i=o;return typeof i=="number"&&(i=i.toString()),i.indexOf(",")>=0&&(i=i.split(",")[0]),i.indexOf(":")>=0&&(i=i.split(":")[0]),i.indexOf("#")>=0&&(i=i.split("#")[1]),i},s=r(t.headers,"x-amzn-errortype");if(s!==void 0)return n(t.headers[s]);if(e&&typeof e=="object"){let o=r(e,"code");if(o&&e[o]!==void 0)return n(e[o]);if(e.__type!==void 0)return n(e.__type)}}});var ySe,_Se,Qs,CSe,Ug,rH=_(()=>{ySe=require("@smithy/core/protocols"),_Se=require("@smithy/core/schema"),Qs=require("@smithy/core/serde"),CSe=require("@smithy/util-base64");rl();Fy();fSe();Uy();Ug=class extends Tn{settings;constructor(e){super(),this.settings=e}async read(e,r){return this._read(e,typeof r=="string"?JSON.parse(r,gSe):await By(r,this.serdeContext))}readObject(e,r){return this._read(e,r)}_read(e,r){let n=r!==null&&typeof r=="object",s=_Se.NormalizedSchema.of(e);if(n){if(s.isStructSchema()){let i={};for(let[a,c]of pSe(s,r,this.settings.jsonName?"jsonName":!1)){let u=this.settings.jsonName?c.getMergedTraits().jsonName??a:a,l=this._read(c,r[u]);l!=null&&(i[a]=l)}return i}if(Array.isArray(r)&&s.isListSchema()){let i=s.getValueSchema(),a=[],c=!!s.getMergedTraits().sparse;for(let u of r)(c||u!=null)&&a.push(this._read(i,u));return a}if(s.isMapSchema()){let i=s.getValueSchema(),a={},c=!!s.getMergedTraits().sparse;for(let[u,l]of Object.entries(r))(c||l!=null)&&(a[u]=this._read(i,l));return a}}if(s.isBlobSchema()&&typeof r=="string")return(0,CSe.fromBase64)(r);let o=s.getMergedTraits().mediaType;if(s.isStringSchema()&&typeof r=="string"&&o)return o==="application/json"||o.endsWith("+json")?Qs.LazyJsonString.from(r):r;if(s.isTimestampSchema()&&r!=null)switch((0,ySe.determineTimestampFormat)(s,this.settings)){case 5:return(0,Qs.parseRfc3339DateTimeWithOffset)(r);case 6:return(0,Qs.parseRfc7231DateTime)(r);case 7:return(0,Qs.parseEpochTimestamp)(r);default:return console.warn("Missing timestamp format, parsing value with Date constructor:",r),new Date(r)}if(s.isBigIntegerSchema()&&(typeof r=="number"||typeof r=="string"))return BigInt(r);if(s.isBigDecimalSchema()&&r!=null){if(r instanceof Qs.NumericValue)return r;let i=r;return i.type==="bigDecimal"&&"string"in i?new Qs.NumericValue(i.string,i.type):new Qs.NumericValue(String(r),"bigDecimal")}if(s.isNumericSchema()&&typeof r=="string"){switch(r){case"Infinity":return 1/0;case"-Infinity":return-1/0;case"NaN":return NaN}return r}if(s.isDocumentSchema())if(n){let i=Array.isArray(r)?[]:{};for(let[a,c]of Object.entries(r))c instanceof Qs.NumericValue?i[a]=c:i[a]=this._read(s,c);return i}else return structuredClone(r);return r}}});var vSe,RSe,mT,xSe=_(()=>{vSe=require("@smithy/core/serde"),RSe="\u039D",mT=class{values=new Map;counter=0;stage=0;createReplacer(){if(this.stage===1)throw new Error("@aws-sdk/core/protocols - JsonReplacer already created.");if(this.stage===2)throw new Error("@aws-sdk/core/protocols - JsonReplacer exhausted.");return this.stage=1,(e,r)=>{if(r instanceof vSe.NumericValue){let n=`${RSe+"nv"+this.counter++}_`+r.string;return this.values.set(`"${n}"`,r.string),n}if(typeof r=="bigint"){let n=r.toString(),s=`${RSe+"b"+this.counter++}_`+n;return this.values.set(`"${s}"`,n),s}return r}}replaceInJson(e){if(this.stage===0)throw new Error("@aws-sdk/core/protocols - JsonReplacer not created yet.");if(this.stage===2)throw new Error("@aws-sdk/core/protocols - JsonReplacer exhausted.");if(this.stage=2,this.counter===0)return e;for(let[r,n]of this.values)e=e.replace(r,n);return e}}});var PSe,gT,Lc,nH,qg,sH=_(()=>{PSe=require("@smithy/core/protocols"),gT=require("@smithy/core/schema"),Lc=require("@smithy/core/serde"),nH=require("@smithy/util-base64");rl();Fy();xSe();qg=class extends Tn{settings;buffer;useReplacer=!1;rootSchema;constructor(e){super(),this.settings=e}write(e,r){this.rootSchema=gT.NormalizedSchema.of(e),this.buffer=this._write(this.rootSchema,r)}writeDiscriminatedDocument(e,r){this.write(e,r),typeof this.buffer=="object"&&(this.buffer.__type=gT.NormalizedSchema.of(e).getName(!0))}flush(){let{rootSchema:e,useReplacer:r}=this;if(this.rootSchema=void 0,this.useReplacer=!1,e?.isStructSchema()||e?.isDocumentSchema()){if(!r)return JSON.stringify(this.buffer);let n=new mT;return n.replaceInJson(JSON.stringify(this.buffer,n.createReplacer(),0))}return this.buffer}_write(e,r,n){let s=r!==null&&typeof r=="object",o=gT.NormalizedSchema.of(e);if(s){if(o.isStructSchema()){let i={};for(let[a,c]of Fg(o,r)){let u=this._write(c,r[a],o);if(u!==void 0){let l=c.getMergedTraits().jsonName,d=this.settings.jsonName?l??a:a;i[d]=u}}return i}if(Array.isArray(r)&&o.isListSchema()){let i=o.getValueSchema(),a=[],c=!!o.getMergedTraits().sparse;for(let u of r)(c||u!=null)&&a.push(this._write(i,u));return a}if(o.isMapSchema()){let i=o.getValueSchema(),a={},c=!!o.getMergedTraits().sparse;for(let[u,l]of Object.entries(r))(c||l!=null)&&(a[u]=this._write(i,l));return a}if(r instanceof Uint8Array&&(o.isBlobSchema()||o.isDocumentSchema()))return o===this.rootSchema?r:(this.serdeContext?.base64Encoder??nH.toBase64)(r);if(r instanceof Date&&(o.isTimestampSchema()||o.isDocumentSchema()))switch((0,PSe.determineTimestampFormat)(o,this.settings)){case 5:return r.toISOString().replace(".000Z","Z");case 6:return(0,Lc.dateToUtcString)(r);case 7:return r.getTime()/1e3;default:return console.warn("Missing timestamp format, using epoch seconds",r),r.getTime()/1e3}r instanceof Lc.NumericValue&&(this.useReplacer=!0)}if(!(r===null&&n?.isStructSchema())){if(o.isStringSchema()){if(typeof r>"u"&&o.isIdempotencyToken())return(0,Lc.generateIdempotencyToken)();let i=o.getMergedTraits().mediaType;return r!=null&&i&&(i==="application/json"||i.endsWith("+json"))?Lc.LazyJsonString.from(r):r}if(typeof r=="number"&&o.isNumericSchema())return Math.abs(r)===1/0||isNaN(r)?String(r):r;if(typeof r=="string"&&o.isBlobSchema())return o===this.rootSchema?r:(this.serdeContext?.base64Encoder??nH.toBase64)(r);if(typeof r=="bigint"&&(this.useReplacer=!0),o.isDocumentSchema())if(s){let i=Array.isArray(r)?[]:{};for(let[a,c]of Object.entries(r))c instanceof Lc.NumericValue?(this.useReplacer=!0,i[a]=c):i[a]=this._write(o,c);return i}else return structuredClone(r);return r}}}});var nl,fT=_(()=>{rl();rH();sH();nl=class extends Tn{settings;constructor(e){super(),this.settings=e}createSerializer(){let e=new qg(this.settings);return e.setSerdeContext(this.serdeContext),e}createDeserializer(){let e=new Ug(this.settings);return e.setSerdeContext(this.serdeContext),e}}});var bSe,$g,sl,hT=_(()=>{bSe=require("@smithy/core/protocols"),$g=require("@smithy/core/schema");Mg();fT();Uy();sl=class extends bSe.RpcProtocol{serializer;deserializer;serviceTarget;codec;mixin;awsQueryCompatible;constructor({defaultNamespace:e,serviceTarget:r,awsQueryCompatible:n,jsonCodec:s}){super({defaultNamespace:e}),this.serviceTarget=r,this.codec=s??new nl({timestampFormat:{useTrait:!0,default:7},jsonName:!1}),this.serializer=this.codec.createSerializer(),this.deserializer=this.codec.createDeserializer(),this.awsQueryCompatible=!!n,this.mixin=new Uo(this.awsQueryCompatible)}async serializeRequest(e,r,n){let s=await super.serializeRequest(e,r,n);return s.path.endsWith("/")||(s.path+="/"),Object.assign(s.headers,{"content-type":`application/x-amz-json-${this.getJsonRpcVersion()}`,"x-amz-target":`${this.serviceTarget}.${e.name}`}),this.awsQueryCompatible&&(s.headers["x-amzn-query-mode"]="true"),((0,$g.deref)(e.input)==="unit"||!s.body)&&(s.body="{}"),s}getPayloadCodec(){return this.codec}async handleError(e,r,n,s,o){this.awsQueryCompatible&&this.mixin.setQueryCompatError(s,n);let i=Bg(n,s)??"Unknown",{errorSchema:a,errorMetadata:c}=await this.mixin.getErrorSchemaOrThrowBaseException(i,this.options.defaultNamespace,n,s,o,this.awsQueryCompatible?this.mixin.findQueryCompatibleError:void 0),u=$g.NormalizedSchema.of(a),l=s.message??s.Message??"Unknown",d=$g.TypeRegistry.for(a[1]).getErrorCtor(a)??Error,p=new d(l),g={};for(let[y,R]of u.structIterator())s[y]!=null&&(g[y]=this.codec.createDeserializer().readObject(R,s[y]));throw this.awsQueryCompatible&&this.mixin.queryCompatOutput(s,g),this.mixin.decorateServiceException(Object.assign(p,c,{$fault:u.getMergedTraits().error,message:l},g),s)}}});var ST,ISe=_(()=>{hT();ST=class extends sl{constructor({defaultNamespace:e,serviceTarget:r,awsQueryCompatible:n,jsonCodec:s}){super({defaultNamespace:e,serviceTarget:r,awsQueryCompatible:n,jsonCodec:s})}getShapeId(){return"aws.protocols#awsJson1_0"}getJsonRpcVersion(){return"1.0"}getDefaultContentType(){return"application/x-amz-json-1.0"}}});var ET,ASe=_(()=>{hT();ET=class extends sl{constructor({defaultNamespace:e,serviceTarget:r,awsQueryCompatible:n,jsonCodec:s}){super({defaultNamespace:e,serviceTarget:r,awsQueryCompatible:n,jsonCodec:s})}getShapeId(){return"aws.protocols#awsJson1_1"}getJsonRpcVersion(){return"1.1"}getDefaultContentType(){return"application/x-amz-json-1.1"}}});var jg,Gg,ol,TSe=_(()=>{jg=require("@smithy/core/protocols"),Gg=require("@smithy/core/schema");Mg();fT();Uy();ol=class extends jg.HttpBindingProtocol{serializer;deserializer;codec;mixin=new Uo;constructor({defaultNamespace:e}){super({defaultNamespace:e});let r={timestampFormat:{useTrait:!0,default:7},httpBindings:!0,jsonName:!0};this.codec=new nl(r),this.serializer=new jg.HttpInterceptingShapeSerializer(this.codec.createSerializer(),r),this.deserializer=new jg.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(),r)}getShapeId(){return"aws.protocols#restJson1"}getPayloadCodec(){return this.codec}setSerdeContext(e){this.codec.setSerdeContext(e),super.setSerdeContext(e)}async serializeRequest(e,r,n){let s=await super.serializeRequest(e,r,n),o=Gg.NormalizedSchema.of(e.input);if(!s.headers["content-type"]){let i=this.mixin.resolveRestContentType(this.getDefaultContentType(),o);i&&(s.headers["content-type"]=i)}return s.body==null&&s.headers["content-type"]===this.getDefaultContentType()&&(s.body="{}"),s}async deserializeResponse(e,r,n){let s=await super.deserializeResponse(e,r,n),o=Gg.NormalizedSchema.of(e.output);for(let[i,a]of o.structIterator())a.getMemberTraits().httpPayload&&!(i in s)&&(s[i]=null);return s}async handleError(e,r,n,s,o){let i=Bg(n,s)??"Unknown",{errorSchema:a,errorMetadata:c}=await this.mixin.getErrorSchemaOrThrowBaseException(i,this.options.defaultNamespace,n,s,o),u=Gg.NormalizedSchema.of(a),l=s.message??s.Message??"Unknown",d=Gg.TypeRegistry.for(a[1]).getErrorCtor(a)??Error,p=new d(l);await this.deserializeHttpMessage(a,r,n,s);let g={};for(let[y,R]of u.structIterator()){let D=R.getMergedTraits().jsonName??y;g[y]=this.codec.createDeserializer().readObject(R,s[D])}throw this.mixin.decorateServiceException(Object.assign(p,c,{$fault:u.getMergedTraits().error,message:l},g),s)}getDefaultContentType(){return"application/json"}}});var wSe,DSe,OSe=_(()=>{wSe=require("@smithy/smithy-client"),DSe=t=>{if(t!=null)return typeof t=="object"&&"__type"in t&&delete t.__type,(0,wSe.expectUnion)(t)}});var kSe=b(iH=>{"use strict";Object.defineProperty(iH,"__esModule",{value:!0});iH.parseXML=Tlt;var Alt=require("fast-xml-parser"),oH=new Alt.XMLParser({attributeNamePrefix:"",htmlEntities:!0,ignoreAttributes:!1,ignoreDeclaration:!0,parseTagValue:!1,trimValues:!1,tagValueProcessor:(t,e)=>e.trim()===""&&e.includes(` +`)?"":void 0});oH.addEntity("#xD","\r");oH.addEntity("#10",` +`);function Tlt(t){return oH.parse(t,!0)}});var CT=b(_T=>{"use strict";var wlt=kSe();function Dlt(t){return t.replace(/&/g,"&").replace(//g,">").replace(/"/g,""")}function Olt(t){return t.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">").replace(/\r/g," ").replace(/\n/g," ").replace(/\u0085/g,"…").replace(/\u2028/,"
")}var yT=class{value;constructor(e){this.value=e}toString(){return Olt(""+this.value)}},aH=class t{name;children;attributes={};static of(e,r,n){let s=new t(e);return r!==void 0&&s.addChildNode(new yT(r)),n!==void 0&&s.withName(n),s}constructor(e,r=[]){this.name=e,this.children=r}withName(e){return this.name=e,this}addAttribute(e,r){return this.attributes[e]=r,this}addChildNode(e){return this.children.push(e),this}removeAttribute(e){return delete this.attributes[e],this}n(e){return this.name=e,this}c(e){return this.children.push(e),this}a(e,r){return r!=null&&(this.attributes[e]=r),this}cc(e,r,n=r){if(e[r]!=null){let s=t.of(r,e[r]).withName(n);this.c(s)}}l(e,r,n,s){e[r]!=null&&s().map(i=>{i.withName(n),this.c(i)})}lc(e,r,n,s){if(e[r]!=null){let o=s(),i=new t(n);o.map(a=>{i.c(a)}),this.c(i)}}toString(){let e=!!this.children.length,r=`<${this.name}`,n=this.attributes;for(let s of Object.keys(n)){let o=n[s];o!=null&&(r+=` ${s}="${Dlt(""+o)}"`)}return r+=e?`>${this.children.map(s=>s.toString()).join("")}`:"/>"}};Object.defineProperty(_T,"parseXML",{enumerable:!0,get:function(){return wlt.parseXML}});_T.XmlNode=aH;_T.XmlText=yT});var NSe,LSe,cH,MSe,FSe,il,RT=_(()=>{NSe=O(CT()),LSe=require("@smithy/core/protocols"),cH=require("@smithy/core/schema"),MSe=require("@smithy/smithy-client"),FSe=require("@smithy/util-utf8");rl();il=class extends Tn{settings;stringDeserializer;constructor(e){super(),this.settings=e,this.stringDeserializer=new LSe.FromStringShapeDeserializer(e)}setSerdeContext(e){this.serdeContext=e,this.stringDeserializer.setSerdeContext(e)}read(e,r,n){let s=cH.NormalizedSchema.of(e),o=s.getMemberSchemas();if(s.isStructSchema()&&s.isMemberSchema()&&!!Object.values(o).find(u=>!!u.getMemberTraits().eventPayload)){let u={},l=Object.keys(o)[0];return o[l].isBlobSchema()?u[l]=r:u[l]=this.read(o[l],r),u}let a=(this.serdeContext?.utf8Encoder??FSe.toUtf8)(r),c=this.parseXml(a);return this.readSchema(e,n?c[n]:c)}readSchema(e,r){let n=cH.NormalizedSchema.of(e);if(n.isUnitSchema())return;let s=n.getMergedTraits();if(n.isListSchema()&&!Array.isArray(r))return this.readSchema(n,[r]);if(r==null)return r;if(typeof r=="object"){let o=!!s.sparse,i=!!s.xmlFlattened;if(n.isListSchema()){let c=n.getValueSchema(),u=[],l=c.getMergedTraits().xmlName??"member",d=i?r:(r[0]??r)[l],p=Array.isArray(d)?d:[d];for(let g of p)(g!=null||o)&&u.push(this.readSchema(c,g));return u}let a={};if(n.isMapSchema()){let c=n.getKeySchema(),u=n.getValueSchema(),l;i?l=Array.isArray(r)?r:[r]:l=Array.isArray(r.entry)?r.entry:[r.entry];let d=c.getMergedTraits().xmlName??"key",p=u.getMergedTraits().xmlName??"value";for(let g of l){let y=g[d],R=g[p];(R!=null||o)&&(a[y]=this.readSchema(u,R))}return a}if(n.isStructSchema()){for(let[c,u]of n.structIterator()){let l=u.getMergedTraits(),d=l.httpPayload?l.xmlName??u.getName():u.getMemberTraits().xmlName??c;r[d]!=null&&(a[c]=this.readSchema(u,r[d]))}return a}if(n.isDocumentSchema())return r;throw new Error(`@aws-sdk/core/protocols - xml deserializer unhandled schema type for ${n.getName(!0)}`)}return n.isListSchema()?[]:n.isMapSchema()||n.isStructSchema()?{}:this.stringDeserializer.read(n,r)}parseXml(e){if(e.length){let r;try{r=(0,NSe.parseXML)(e)}catch(i){throw i&&typeof i=="object"&&Object.defineProperty(i,"$responseBodyText",{value:e}),i}let n="#text",s=Object.keys(r)[0],o=r[s];return o[n]&&(o[s]=o[n],delete o[n]),(0,MSe.getValueFromTextNode)(o)}return{}}}});var qy,BSe,xT,USe,qSe,vT,$Se=_(()=>{qy=require("@smithy/core/protocols"),BSe=require("@smithy/core/schema"),xT=require("@smithy/core/serde"),USe=require("@smithy/smithy-client"),qSe=require("@smithy/util-base64");rl();Fy();vT=class extends Tn{settings;buffer;constructor(e){super(),this.settings=e}write(e,r,n=""){this.buffer===void 0&&(this.buffer="");let s=BSe.NormalizedSchema.of(e);if(n&&!n.endsWith(".")&&(n+="."),s.isBlobSchema())(typeof r=="string"||r instanceof Uint8Array)&&(this.writeKey(n),this.writeValue((this.serdeContext?.base64Encoder??qSe.toBase64)(r)));else if(s.isBooleanSchema()||s.isNumericSchema()||s.isStringSchema())r!=null?(this.writeKey(n),this.writeValue(String(r))):s.isIdempotencyToken()&&(this.writeKey(n),this.writeValue((0,xT.generateIdempotencyToken)()));else if(s.isBigIntegerSchema())r!=null&&(this.writeKey(n),this.writeValue(String(r)));else if(s.isBigDecimalSchema())r!=null&&(this.writeKey(n),this.writeValue(r instanceof xT.NumericValue?r.string:String(r)));else if(s.isTimestampSchema()){if(r instanceof Date)switch(this.writeKey(n),(0,qy.determineTimestampFormat)(s,this.settings)){case 5:this.writeValue(r.toISOString().replace(".000Z","Z"));break;case 6:this.writeValue((0,USe.dateToUtcString)(r));break;case 7:this.writeValue(String(r.getTime()/1e3));break}}else{if(s.isDocumentSchema())throw new Error(`@aws-sdk/core/protocols - QuerySerializer unsupported document type ${s.getName(!0)}`);if(s.isListSchema()){if(Array.isArray(r))if(r.length===0)this.settings.serializeEmptyLists&&(this.writeKey(n),this.writeValue(""));else{let o=s.getValueSchema(),i=this.settings.flattenLists||s.getMergedTraits().xmlFlattened,a=1;for(let c of r){if(c==null)continue;let u=this.getKey("member",o.getMergedTraits().xmlName),l=i?`${n}${a}`:`${n}${u}.${a}`;this.write(o,c,l),++a}}}else if(s.isMapSchema()){if(r&&typeof r=="object"){let o=s.getKeySchema(),i=s.getValueSchema(),a=s.getMergedTraits().xmlFlattened,c=1;for(let[u,l]of Object.entries(r)){if(l==null)continue;let d=this.getKey("key",o.getMergedTraits().xmlName),p=a?`${n}${c}.${d}`:`${n}entry.${c}.${d}`,g=this.getKey("value",i.getMergedTraits().xmlName),y=a?`${n}${c}.${g}`:`${n}entry.${c}.${g}`;this.write(o,u,p),this.write(i,l,y),++c}}}else if(s.isStructSchema()){if(r&&typeof r=="object")for(let[o,i]of Fg(s,r)){if(r[o]==null&&!i.isIdempotencyToken())continue;let a=this.getKey(o,i.getMergedTraits().xmlName),c=`${n}${a}`;this.write(i,r[o],c)}}else if(!s.isUnitSchema())throw new Error(`@aws-sdk/core/protocols - QuerySerializer unrecognized schema type ${s.getName(!0)}`)}}flush(){if(this.buffer===void 0)throw new Error("@aws-sdk/core/protocols - QuerySerializer cannot flush with nothing written to buffer.");let e=this.buffer;return delete this.buffer,e}getKey(e,r){let n=r??e;return this.settings.capitalizeKeys?n[0].toUpperCase()+n.slice(1):n}writeKey(e){e.endsWith(".")&&(e=e.slice(0,e.length-1)),this.buffer+=`&${(0,qy.extendedEncodeURIComponent)(e)}=`}writeValue(e){this.buffer+=(0,qy.extendedEncodeURIComponent)(e)}}});var $y,zd,al,uH=_(()=>{$y=require("@smithy/core/protocols"),zd=require("@smithy/core/schema");Mg();RT();$Se();al=class extends $y.RpcProtocol{options;serializer;deserializer;mixin=new Uo;constructor(e){super({defaultNamespace:e.defaultNamespace}),this.options=e;let r={timestampFormat:{useTrait:!0,default:5},httpBindings:!1,xmlNamespace:e.xmlNamespace,serviceNamespace:e.defaultNamespace,serializeEmptyLists:!0};this.serializer=new vT(r),this.deserializer=new il(r)}getShapeId(){return"aws.protocols#awsQuery"}setSerdeContext(e){this.serializer.setSerdeContext(e),this.deserializer.setSerdeContext(e)}getPayloadCodec(){throw new Error("AWSQuery protocol has no payload codec.")}async serializeRequest(e,r,n){let s=await super.serializeRequest(e,r,n);s.path.endsWith("/")||(s.path+="/"),Object.assign(s.headers,{"content-type":"application/x-www-form-urlencoded"}),((0,zd.deref)(e.input)==="unit"||!s.body)&&(s.body="");let o=e.name.split("#")[1]??e.name;return s.body=`Action=${o}&Version=${this.options.version}`+s.body,s.body.endsWith("&")&&(s.body=s.body.slice(-1)),s}async deserializeResponse(e,r,n){let s=this.deserializer,o=zd.NormalizedSchema.of(e.output),i={};if(n.statusCode>=300){let d=await(0,$y.collectBody)(n.body,r);d.byteLength>0&&Object.assign(i,await s.read(15,d)),await this.handleError(e,r,n,i,this.deserializeMetadata(n))}for(let d in n.headers){let p=n.headers[d];delete n.headers[d],n.headers[d.toLowerCase()]=p}let a=e.name.split("#")[1]??e.name,c=o.isStructSchema()&&this.useNestedResult()?a+"Result":void 0,u=await(0,$y.collectBody)(n.body,r);return u.byteLength>0&&Object.assign(i,await s.read(o,u,c)),{$metadata:this.deserializeMetadata(n),...i}}useNestedResult(){return!0}async handleError(e,r,n,s,o){let i=this.loadQueryErrorCode(n,s)??"Unknown",a=this.loadQueryError(s),c=this.loadQueryErrorMessage(s);a.message=c,a.Error={Type:a.Type,Code:a.Code,Message:c};let{errorSchema:u,errorMetadata:l}=await this.mixin.getErrorSchemaOrThrowBaseException(i,this.options.defaultNamespace,n,a,o,this.mixin.findQueryCompatibleError),d=zd.NormalizedSchema.of(u),p=zd.TypeRegistry.for(u[1]).getErrorCtor(u)??Error,g=new p(c),y={Type:a.Error.Type,Code:a.Error.Code,Error:a.Error};for(let[R,D]of d.structIterator()){let B=D.getMergedTraits().xmlName??R,M=a[B]??s[B];y[R]=this.deserializer.readSchema(D,M)}throw this.mixin.decorateServiceException(Object.assign(g,l,{$fault:d.getMergedTraits().error,message:c},y),s)}loadQueryErrorCode(e,r){let n=(r.Errors?.[0]?.Error??r.Errors?.Error??r.Error)?.Code;if(n!==void 0)return n;if(e.statusCode==404)return"NotFound"}loadQueryError(e){return e.Errors?.[0]?.Error??e.Errors?.Error??e.Error}loadQueryErrorMessage(e){let r=this.loadQueryError(e);return r?.message??r?.Message??e.message??e.Message??"Unknown"}getDefaultContentType(){return"application/x-www-form-urlencoded"}}});var PT,GSe=_(()=>{uH();PT=class extends al{options;constructor(e){super(e),this.options=e;let r={capitalizeKeys:!0,flattenLists:!0,serializeEmptyLists:!1};Object.assign(this.serializer.settings,r)}useNestedResult(){return!1}}});var jSe,VSe,lH,HSe,bT,dH=_(()=>{jSe=O(CT()),VSe=require("@smithy/smithy-client");tH();lH=(t,e)=>pT(t,e).then(r=>{if(r.length){let n;try{n=(0,jSe.parseXML)(r)}catch(a){throw a&&typeof a=="object"&&Object.defineProperty(a,"$responseBodyText",{value:r}),a}let s="#text",o=Object.keys(n)[0],i=n[o];return i[s]&&(i[o]=i[s],delete i[s]),(0,VSe.getValueFromTextNode)(i)}return{}}),HSe=async(t,e)=>{let r=await lH(t,e);return r.Error&&(r.Error.message=r.Error.message??r.Error.Message),r},bT=(t,e)=>{if(e?.Error?.Code!==void 0)return e.Error.Code;if(e?.Code!==void 0)return e.Code;if(t.statusCode==404)return"NotFound"}});var qo,zSe,IT,AT,pH,TT,Vg,mH=_(()=>{qo=O(CT()),zSe=require("@smithy/core/protocols"),IT=require("@smithy/core/schema"),AT=require("@smithy/core/serde"),pH=require("@smithy/smithy-client"),TT=require("@smithy/util-base64");rl();Fy();Vg=class extends Tn{settings;stringBuffer;byteBuffer;buffer;constructor(e){super(),this.settings=e}write(e,r){let n=IT.NormalizedSchema.of(e);if(n.isStringSchema()&&typeof r=="string")this.stringBuffer=r;else if(n.isBlobSchema())this.byteBuffer="byteLength"in r?r:(this.serdeContext?.base64Decoder??TT.fromBase64)(r);else{this.buffer=this.writeStruct(n,r,void 0);let s=n.getMergedTraits();s.httpPayload&&!s.xmlName&&this.buffer.withName(n.getName())}}flush(){if(this.byteBuffer!==void 0){let r=this.byteBuffer;return delete this.byteBuffer,r}if(this.stringBuffer!==void 0){let r=this.stringBuffer;return delete this.stringBuffer,r}let e=this.buffer;return this.settings.xmlNamespace&&(e?.attributes?.xmlns||e.addAttribute("xmlns",this.settings.xmlNamespace)),delete this.buffer,e.toString()}writeStruct(e,r,n){let s=e.getMergedTraits(),o=e.isMemberSchema()&&!s.httpPayload?e.getMemberTraits().xmlName??e.getMemberName():s.xmlName??e.getName();if(!o||!e.isStructSchema())throw new Error(`@aws-sdk/core/protocols - xml serializer, cannot write struct with empty name or non-struct, schema=${e.getName(!0)}.`);let i=qo.XmlNode.of(o),[a,c]=this.getXmlnsAttribute(e,n);for(let[u,l]of Fg(e,r)){let d=r[u];if(d!=null||l.isIdempotencyToken()){if(l.getMergedTraits().xmlAttribute){i.addAttribute(l.getMergedTraits().xmlName??u,this.writeSimple(l,d));continue}if(l.isListSchema())this.writeList(l,d,i,c);else if(l.isMapSchema())this.writeMap(l,d,i,c);else if(l.isStructSchema())i.addChildNode(this.writeStruct(l,d,c));else{let p=qo.XmlNode.of(l.getMergedTraits().xmlName??l.getMemberName());this.writeSimpleInto(l,d,p,c),i.addChildNode(p)}}}return c&&i.addAttribute(a,c),i}writeList(e,r,n,s){if(!e.isMemberSchema())throw new Error(`@aws-sdk/core/protocols - xml serializer, cannot write non-member list: ${e.getName(!0)}`);let o=e.getMergedTraits(),i=e.getValueSchema(),a=i.getMergedTraits(),c=!!a.sparse,u=!!o.xmlFlattened,[l,d]=this.getXmlnsAttribute(e,s),p=(g,y)=>{if(i.isListSchema())this.writeList(i,Array.isArray(y)?y:[y],g,d);else if(i.isMapSchema())this.writeMap(i,y,g,d);else if(i.isStructSchema()){let R=this.writeStruct(i,y,d);g.addChildNode(R.withName(u?o.xmlName??e.getMemberName():a.xmlName??"member"))}else{let R=qo.XmlNode.of(u?o.xmlName??e.getMemberName():a.xmlName??"member");this.writeSimpleInto(i,y,R,d),g.addChildNode(R)}};if(u)for(let g of r)(c||g!=null)&&p(n,g);else{let g=qo.XmlNode.of(o.xmlName??e.getMemberName());d&&g.addAttribute(l,d);for(let y of r)(c||y!=null)&&p(g,y);n.addChildNode(g)}}writeMap(e,r,n,s,o=!1){if(!e.isMemberSchema())throw new Error(`@aws-sdk/core/protocols - xml serializer, cannot write non-member map: ${e.getName(!0)}`);let i=e.getMergedTraits(),a=e.getKeySchema(),u=a.getMergedTraits().xmlName??"key",l=e.getValueSchema(),d=l.getMergedTraits(),p=d.xmlName??"value",g=!!d.sparse,y=!!i.xmlFlattened,[R,D]=this.getXmlnsAttribute(e,s),B=(M,ge,Y)=>{let Te=qo.XmlNode.of(u,ge),[Ht,Tt]=this.getXmlnsAttribute(a,D);Tt&&Te.addAttribute(Ht,Tt),M.addChildNode(Te);let Ne=qo.XmlNode.of(p);l.isListSchema()?this.writeList(l,Y,Ne,D):l.isMapSchema()?this.writeMap(l,Y,Ne,D,!0):l.isStructSchema()?Ne=this.writeStruct(l,Y,D):this.writeSimpleInto(l,Y,Ne,D),M.addChildNode(Ne)};if(y){for(let[M,ge]of Object.entries(r))if(g||ge!=null){let Y=qo.XmlNode.of(i.xmlName??e.getMemberName());B(Y,M,ge),n.addChildNode(Y)}}else{let M;o||(M=qo.XmlNode.of(i.xmlName??e.getMemberName()),D&&M.addAttribute(R,D),n.addChildNode(M));for(let[ge,Y]of Object.entries(r))if(g||Y!=null){let Te=qo.XmlNode.of("entry");B(Te,ge,Y),(o?n:M).addChildNode(Te)}}}writeSimple(e,r){if(r===null)throw new Error("@aws-sdk/core/protocols - (XML serializer) cannot write null value.");let n=IT.NormalizedSchema.of(e),s=null;if(r&&typeof r=="object")if(n.isBlobSchema())s=(this.serdeContext?.base64Encoder??TT.toBase64)(r);else if(n.isTimestampSchema()&&r instanceof Date)switch((0,zSe.determineTimestampFormat)(n,this.settings)){case 5:s=r.toISOString().replace(".000Z","Z");break;case 6:s=(0,pH.dateToUtcString)(r);break;case 7:s=String(r.getTime()/1e3);break;default:console.warn("Missing timestamp format, using http date",r),s=(0,pH.dateToUtcString)(r);break}else{if(n.isBigDecimalSchema()&&r)return r instanceof AT.NumericValue?r.string:String(r);throw n.isMapSchema()||n.isListSchema()?new Error("@aws-sdk/core/protocols - xml serializer, cannot call _write() on List/Map schema, call writeList or writeMap() instead."):new Error(`@aws-sdk/core/protocols - xml serializer, unhandled schema type for object value and schema: ${n.getName(!0)}`)}if((n.isBooleanSchema()||n.isNumericSchema()||n.isBigIntegerSchema()||n.isBigDecimalSchema())&&(s=String(r)),n.isStringSchema()&&(r===void 0&&n.isIdempotencyToken()?s=(0,AT.generateIdempotencyToken)():s=String(r)),s===null)throw new Error(`Unhandled schema-value pair ${n.getName(!0)}=${r}`);return s}writeSimpleInto(e,r,n,s){let o=this.writeSimple(e,r),i=IT.NormalizedSchema.of(e),a=new qo.XmlText(o),[c,u]=this.getXmlnsAttribute(i,s);u&&n.addAttribute(c,u),n.addChildNode(a)}getXmlnsAttribute(e,r){let n=e.getMergedTraits(),[s,o]=n.xmlNamespace??[];return o&&o!==r?[s?`xmlns:${s}`:"xmlns",o]:[void 0,void 0]}}});var Hg,gH=_(()=>{rl();RT();mH();Hg=class extends Tn{settings;constructor(e){super(),this.settings=e}createSerializer(){let e=new Vg(this.settings);return e.setSerdeContext(this.serdeContext),e}createDeserializer(){let e=new il(this.settings);return e.setSerdeContext(this.serdeContext),e}}});var zg,Gy,wT,WSe=_(()=>{zg=require("@smithy/core/protocols"),Gy=require("@smithy/core/schema");Mg();dH();gH();wT=class extends zg.HttpBindingProtocol{codec;serializer;deserializer;mixin=new Uo;constructor(e){super(e);let r={timestampFormat:{useTrait:!0,default:5},httpBindings:!0,xmlNamespace:e.xmlNamespace,serviceNamespace:e.defaultNamespace};this.codec=new Hg(r),this.serializer=new zg.HttpInterceptingShapeSerializer(this.codec.createSerializer(),r),this.deserializer=new zg.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(),r)}getPayloadCodec(){return this.codec}getShapeId(){return"aws.protocols#restXml"}async serializeRequest(e,r,n){let s=await super.serializeRequest(e,r,n),o=Gy.NormalizedSchema.of(e.input);if(!s.headers["content-type"]){let i=this.mixin.resolveRestContentType(this.getDefaultContentType(),o);i&&(s.headers["content-type"]=i)}return typeof s.body=="string"&&s.headers["content-type"]===this.getDefaultContentType()&&!s.body.startsWith("'+s.body),s}async deserializeResponse(e,r,n){return super.deserializeResponse(e,r,n)}async handleError(e,r,n,s,o){let i=bT(n,s)??"Unknown",{errorSchema:a,errorMetadata:c}=await this.mixin.getErrorSchemaOrThrowBaseException(i,this.options.defaultNamespace,n,s,o),u=Gy.NormalizedSchema.of(a),l=s.Error?.message??s.Error?.Message??s.message??s.Message??"Unknown",d=Gy.TypeRegistry.for(a[1]).getErrorCtor(a)??Error,p=new d(l);await this.deserializeHttpMessage(a,r,n,s);let g={};for(let[y,R]of u.structIterator()){let D=R.getMergedTraits().xmlName??y,B=s.Error?.[D]??s[D];g[y]=this.codec.createDeserializer().readSchema(R,B)}throw this.mixin.decorateServiceException(Object.assign(p,c,{$fault:u.getMergedTraits().error,message:l},g),s)}getDefaultContentType(){return"application/xml"}hasUnstructuredPayloadBinding(e){for(let[,r]of e.structIterator())if(r.getMergedTraits().httpPayload)return!(r.isStructSchema()||r.isMapSchema()||r.isListSchema());return!1}}});var Wg={};wt(Wg,{AwsEc2QueryProtocol:()=>PT,AwsJson1_0Protocol:()=>ST,AwsJson1_1Protocol:()=>ET,AwsJsonRpcProtocol:()=>sl,AwsQueryProtocol:()=>al,AwsRestJsonProtocol:()=>ol,AwsRestXmlProtocol:()=>wT,AwsSmithyRpcV2CborProtocol:()=>uT,JsonCodec:()=>nl,JsonShapeDeserializer:()=>Ug,JsonShapeSerializer:()=>qg,XmlCodec:()=>Hg,XmlShapeDeserializer:()=>il,XmlShapeSerializer:()=>Vg,_toBool:()=>uSe,_toNum:()=>lSe,_toStr:()=>cSe,awsExpectUnion:()=>DSe,loadRestJsonErrorCode:()=>Bg,loadRestXmlErrorCode:()=>bT,parseJsonBody:()=>By,parseJsonErrorBody:()=>ESe,parseXmlBody:()=>lH,parseXmlErrorBody:()=>HSe});var wa=_(()=>{aSe();dSe();ISe();ASe();hT();TSe();fT();rH();sH();OSe();Uy();GSe();uH();WSe();gH();RT();mH();dH()});var Fr={};wt(Fr,{AWSSDKSigV4Signer:()=>zV,AwsEc2QueryProtocol:()=>PT,AwsJson1_0Protocol:()=>ST,AwsJson1_1Protocol:()=>ET,AwsJsonRpcProtocol:()=>sl,AwsQueryProtocol:()=>al,AwsRestJsonProtocol:()=>ol,AwsRestXmlProtocol:()=>wT,AwsSdkSigV4ASigner:()=>Ly,AwsSdkSigV4Signer:()=>An,AwsSmithyRpcV2CborProtocol:()=>uT,JsonCodec:()=>nl,JsonShapeDeserializer:()=>Ug,JsonShapeSerializer:()=>qg,NODE_AUTH_SCHEME_PREFERENCE_OPTIONS:()=>tl,NODE_SIGV4A_CONFIG_OPTIONS:()=>tSe,XmlCodec:()=>Hg,XmlShapeDeserializer:()=>il,XmlShapeSerializer:()=>Vg,_toBool:()=>uSe,_toNum:()=>lSe,_toStr:()=>cSe,awsExpectUnion:()=>DSe,emitWarningIfUnsupportedVersion:()=>Zu,getBearerTokenEnvKey:()=>cT,loadRestJsonErrorCode:()=>Bg,loadRestXmlErrorCode:()=>bT,parseJsonBody:()=>By,parseJsonErrorBody:()=>ESe,parseXmlBody:()=>lH,parseXmlErrorBody:()=>HSe,resolveAWSSDKSigV4Config:()=>nSe,resolveAwsSdkSigV4AConfig:()=>eSe,resolveAwsSdkSigV4Config:()=>Nc,setCredentialFeature:()=>el,setFeature:()=>Fhe,setTokenFeature:()=>Uhe,state:()=>aT,validateSigningProperties:()=>Lg});var Dt=_(()=>{Bo();YV();wa()});var Oa=b(Kg=>{"use strict";var klt=require("@smithy/core"),Nlt=Ta(),Llt=require("@smithy/protocol-http"),Da=(Dt(),ue(Fr)),JSe=void 0;function Mlt(t){return t===void 0?!0:typeof t=="string"&&t.length<=50}function Flt(t){let e=klt.normalizeProvider(t.userAgentAppId??JSe),{customUserAgent:r}=t;return Object.assign(t,{customUserAgent:typeof r=="string"?[[r]]:r,userAgentAppId:async()=>{let n=await e();if(!Mlt(n)){let s=t.logger?.constructor?.name==="NoOpLogger"||!t.logger?console:t.logger;typeof n!="string"?s?.warn("userAgentAppId must be a string or undefined."):n.length>50&&s?.warn("The provided userAgentAppId exceeds the maximum length of 50 characters.")}return n}})}var Blt=/\d{12}\.ddb/;async function Ult(t,e,r){if(r.request?.headers?.["smithy-protocol"]==="rpc-v2-cbor"&&Da.setFeature(t,"PROTOCOL_RPC_V2_CBOR","M"),typeof e.retryStrategy=="function"){let o=await e.retryStrategy();typeof o.acquireInitialRetryToken=="function"?o.constructor?.name?.includes("Adaptive")?Da.setFeature(t,"RETRY_MODE_ADAPTIVE","F"):Da.setFeature(t,"RETRY_MODE_STANDARD","E"):Da.setFeature(t,"RETRY_MODE_LEGACY","D")}if(typeof e.accountIdEndpointMode=="function"){let o=t.endpointV2;switch(String(o?.url?.hostname).match(Blt)&&Da.setFeature(t,"ACCOUNT_ID_ENDPOINT","O"),await e.accountIdEndpointMode?.()){case"disabled":Da.setFeature(t,"ACCOUNT_ID_MODE_DISABLED","Q");break;case"preferred":Da.setFeature(t,"ACCOUNT_ID_MODE_PREFERRED","P");break;case"required":Da.setFeature(t,"ACCOUNT_ID_MODE_REQUIRED","R");break}}let s=t.__smithy_context?.selectedHttpAuthScheme?.identity;if(s?.$source){let o=s;o.accountId&&Da.setFeature(t,"RESOLVED_ACCOUNT_ID","T");for(let[i,a]of Object.entries(o.$source??{}))Da.setFeature(t,i,a)}}var KSe="user-agent",fH="x-amz-user-agent",QSe=" ",hH="/",qlt=/[^!$%&'*+\-.^_`|~\w]/g,$lt=/[^!$%&'*+\-.^_`|~\w#]/g,XSe="-",Glt=1024;function jlt(t){let e="";for(let r in t){let n=t[r];if(e.length+n.length+1<=Glt){e.length?e+=","+n:e+=n;continue}break}return e}var YSe=t=>(e,r)=>async n=>{let{request:s}=n;if(!Llt.HttpRequest.isInstance(s))return e(n);let{headers:o}=s,i=r?.userAgent?.map(DT)||[],a=(await t.defaultUserAgentProvider()).map(DT);await Ult(r,t,n);let c=r;a.push(`m/${jlt(Object.assign({},r.__smithy_context?.features,c.__aws_sdk_context?.features))}`);let u=t?.customUserAgent?.map(DT)||[],l=await t.userAgentAppId();l&&a.push(DT(["app",`${l}`]));let d=Nlt.getUserAgentPrefix(),p=(d?[d]:[]).concat([...a,...i,...u]).join(QSe),g=[...a.filter(y=>y.startsWith("aws-sdk-")),...u].join(QSe);return t.runtime!=="browser"?(g&&(o[fH]=o[fH]?`${o[KSe]} ${g}`:g),o[KSe]=p):o[fH]=p,e({...n,request:s})},DT=t=>{let e=t[0].split(hH).map(i=>i.replace(qlt,XSe)).join(hH),r=t[1]?.replace($lt,XSe),n=e.indexOf(hH),s=e.substring(0,n),o=e.substring(n+1);return s==="api"&&(o=o.toLowerCase()),[s,o,r].filter(i=>i&&i.length>0).reduce((i,a,c)=>{switch(c){case 0:return a;case 1:return`${i}/${a}`;default:return`${i}#${a}`}},"")},ZSe={name:"getUserAgentMiddleware",step:"build",priority:"low",tags:["SET_USER_AGENT","USER_AGENT"],override:!0},Vlt=t=>({applyToStack:e=>{e.add(YSe(t),ZSe)}});Kg.DEFAULT_UA_APP_ID=JSe;Kg.getUserAgentMiddlewareOptions=ZSe;Kg.getUserAgentPlugin=Vlt;Kg.resolveUserAgentConfig=Flt;Kg.userAgentMiddleware=YSe});var EH=b(cl=>{"use strict";Object.defineProperty(cl,"__esModule",{value:!0});cl.resolveHttpAuthSchemeConfig=cl.defaultCloudWatchHttpAuthSchemeProvider=cl.defaultCloudWatchHttpAuthSchemeParametersProvider=void 0;var Hlt=(Dt(),ue(Fr)),SH=require("@smithy/util-middleware"),zlt=async(t,e,r)=>({operation:(0,SH.getSmithyContext)(e).operation,region:await(0,SH.normalizeProvider)(t.region)()||(()=>{throw new Error("expected `region` to be configured for `aws.auth#sigv4`")})()});cl.defaultCloudWatchHttpAuthSchemeParametersProvider=zlt;function Wlt(t){return{schemeId:"aws.auth#sigv4",signingProperties:{name:"monitoring",region:t.region},propertiesExtractor:(e,r)=>({signingProperties:{config:e,context:r}})}}var Klt=t=>{let e=[];switch(t.operation){default:e.push(Wlt(t))}return e};cl.defaultCloudWatchHttpAuthSchemeProvider=Klt;var Qlt=t=>{let e=(0,Hlt.resolveAwsSdkSigV4Config)(t);return Object.assign(e,{authSchemePreference:(0,SH.normalizeProvider)(t.authSchemePreference??[])})};cl.resolveHttpAuthSchemeConfig=Qlt});var eEe=b((vKr,Xlt)=>{Xlt.exports={name:"@aws-sdk/client-cloudwatch",description:"AWS SDK for JavaScript Cloudwatch Client for Node.js, Browser and React Native",version:"3.952.0",scripts:{build:"concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types'","build:cjs":"node ../../scripts/compilation/inline client-cloudwatch","build:es":"tsc -p tsconfig.es.json","build:include:deps":"lerna run --scope $npm_package_name --include-dependencies build","build:types":"tsc -p tsconfig.types.json","build:types:downlevel":"downlevel-dts dist-types dist-types/ts3.4",clean:"rimraf ./dist-* && rimraf *.tsbuildinfo","extract:docs":"api-extractor run --local","generate:client":"node ../../scripts/generate-clients/single-service --solo cloudwatch","test:e2e":"yarn g:vitest run -c vitest.config.e2e.mts","test:e2e:watch":"yarn g:vitest watch -c vitest.config.e2e.mts","test:index":"tsc --noEmit ./test/index-types.ts && node ./test/index-objects.spec.mjs"},main:"./dist-cjs/index.js",types:"./dist-types/index.d.ts",module:"./dist-es/index.js",sideEffects:!1,dependencies:{"@aws-crypto/sha256-browser":"5.2.0","@aws-crypto/sha256-js":"5.2.0","@aws-sdk/core":"3.947.0","@aws-sdk/credential-provider-node":"3.952.0","@aws-sdk/middleware-host-header":"3.936.0","@aws-sdk/middleware-logger":"3.936.0","@aws-sdk/middleware-recursion-detection":"3.948.0","@aws-sdk/middleware-user-agent":"3.947.0","@aws-sdk/region-config-resolver":"3.936.0","@aws-sdk/types":"3.936.0","@aws-sdk/util-endpoints":"3.936.0","@aws-sdk/util-user-agent-browser":"3.936.0","@aws-sdk/util-user-agent-node":"3.947.0","@smithy/config-resolver":"^4.4.3","@smithy/core":"^3.18.7","@smithy/fetch-http-handler":"^5.3.6","@smithy/hash-node":"^4.2.5","@smithy/invalid-dependency":"^4.2.5","@smithy/middleware-compression":"^4.3.14","@smithy/middleware-content-length":"^4.2.5","@smithy/middleware-endpoint":"^4.3.14","@smithy/middleware-retry":"^4.4.14","@smithy/middleware-serde":"^4.2.6","@smithy/middleware-stack":"^4.2.5","@smithy/node-config-provider":"^4.3.5","@smithy/node-http-handler":"^4.4.5","@smithy/protocol-http":"^5.3.5","@smithy/smithy-client":"^4.9.10","@smithy/types":"^4.9.0","@smithy/url-parser":"^4.2.5","@smithy/util-base64":"^4.3.0","@smithy/util-body-length-browser":"^4.2.0","@smithy/util-body-length-node":"^4.2.1","@smithy/util-defaults-mode-browser":"^4.3.13","@smithy/util-defaults-mode-node":"^4.2.16","@smithy/util-endpoints":"^3.2.5","@smithy/util-middleware":"^4.2.5","@smithy/util-retry":"^4.2.5","@smithy/util-utf8":"^4.2.0","@smithy/util-waiter":"^4.2.5",tslib:"^2.6.2"},devDependencies:{"@tsconfig/node18":"18.2.4","@types/node":"^18.19.69",concurrently:"7.0.0","downlevel-dts":"0.10.1",rimraf:"3.0.2",typescript:"~5.8.3"},engines:{node:">=18.0.0"},typesVersions:{"<4.0":{"dist-types/*":["dist-types/ts3.4/*"]}},files:["dist-*/**"],author:{name:"AWS SDK for JavaScript Team",url:"https://aws.amazon.com/javascript/"},license:"Apache-2.0",browser:{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.browser"},"react-native":{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.native"},homepage:"https://github.com/aws/aws-sdk-js-v3/tree/main/clients/client-cloudwatch",repository:{type:"git",url:"https://github.com/aws/aws-sdk-js-v3.git",directory:"clients/client-cloudwatch"}}});var yH=b(ul=>{"use strict";var Jlt=(Bo(),ue(kc)),Ylt=require("@smithy/property-provider"),tEe="AWS_ACCESS_KEY_ID",rEe="AWS_SECRET_ACCESS_KEY",nEe="AWS_SESSION_TOKEN",sEe="AWS_CREDENTIAL_EXPIRATION",oEe="AWS_CREDENTIAL_SCOPE",iEe="AWS_ACCOUNT_ID",Zlt=t=>async()=>{t?.logger?.debug("@aws-sdk/credential-provider-env - fromEnv");let e=process.env[tEe],r=process.env[rEe],n=process.env[nEe],s=process.env[sEe],o=process.env[oEe],i=process.env[iEe];if(e&&r){let a={accessKeyId:e,secretAccessKey:r,...n&&{sessionToken:n},...s&&{expiration:new Date(s)},...o&&{credentialScope:o},...i&&{accountId:i}};return Jlt.setCredentialFeature(a,"CREDENTIALS_ENV_VARS","g"),a}throw new Ylt.CredentialsProviderError("Unable to find environment variable credentials.",{logger:t?.logger})};ul.ENV_ACCOUNT_ID=iEe;ul.ENV_CREDENTIAL_SCOPE=oEe;ul.ENV_EXPIRATION=sEe;ul.ENV_KEY=tEe;ul.ENV_SECRET=rEe;ul.ENV_SESSION=nEe;ul.fromEnv=Zlt});var aEe=b(OT=>{"use strict";Object.defineProperty(OT,"__esModule",{value:!0});OT.checkUrl=void 0;var edt=require("@smithy/property-provider"),tdt="169.254.170.2",rdt="169.254.170.23",ndt="[fd00:ec2::23]",sdt=(t,e)=>{if(t.protocol!=="https:"&&!(t.hostname===tdt||t.hostname===rdt||t.hostname===ndt)){if(t.hostname.includes("[")){if(t.hostname==="[::1]"||t.hostname==="[0000:0000:0000:0000:0000:0000:0000:0001]")return}else{if(t.hostname==="localhost")return;let r=t.hostname.split("."),n=s=>{let o=parseInt(s,10);return 0<=o&&o<=255};if(r[0]==="127"&&n(r[1])&&n(r[2])&&n(r[3])&&r.length===4)return}throw new edt.CredentialsProviderError(`URL not accepted. It must either be HTTPS or match one of the following: + - loopback CIDR 127.0.0.0/8 or [::1/128] + - ECS container host 169.254.170.2 + - EKS container host 169.254.170.23 or [fd00:ec2::23]`,{logger:e})}};OT.checkUrl=sdt});var cEe=b(kT=>{"use strict";Object.defineProperty(kT,"__esModule",{value:!0});kT.createGetRequest=cdt;kT.getCredentials=udt;var _H=require("@smithy/property-provider"),odt=require("@smithy/protocol-http"),idt=require("@smithy/smithy-client"),adt=require("@smithy/util-stream");function cdt(t){return new odt.HttpRequest({protocol:t.protocol,hostname:t.hostname,port:Number(t.port),path:t.pathname,query:Array.from(t.searchParams.entries()).reduce((e,[r,n])=>(e[r]=n,e),{}),fragment:t.hash})}async function udt(t,e){let n=await(0,adt.sdkStreamMixin)(t.body).transformToString();if(t.statusCode===200){let s=JSON.parse(n);if(typeof s.AccessKeyId!="string"||typeof s.SecretAccessKey!="string"||typeof s.Token!="string"||typeof s.Expiration!="string")throw new _H.CredentialsProviderError("HTTP credential provider response not of the required format, an object matching: { AccessKeyId: string, SecretAccessKey: string, Token: string, Expiration: string(rfc3339) }",{logger:e});return{accessKeyId:s.AccessKeyId,secretAccessKey:s.SecretAccessKey,sessionToken:s.Token,expiration:(0,idt.parseRfc3339DateTime)(s.Expiration)}}if(t.statusCode>=400&&t.statusCode<500){let s={};try{s=JSON.parse(n)}catch{}throw Object.assign(new _H.CredentialsProviderError(`Server responded with status: ${t.statusCode}`,{logger:e}),{Code:s.Code,Message:s.Message})}throw new _H.CredentialsProviderError(`Server responded with status: ${t.statusCode}`,{logger:e})}});var uEe=b(NT=>{"use strict";Object.defineProperty(NT,"__esModule",{value:!0});NT.retryWrapper=void 0;var ldt=(t,e,r)=>async()=>{for(let n=0;nsetTimeout(o,r))}return await t()};NT.retryWrapper=ldt});var pEe=b(LT=>{"use strict";Object.defineProperty(LT,"__esModule",{value:!0});LT.fromHttp=void 0;var ddt=require("tslib"),pdt=(Bo(),ue(kc)),mdt=require("@smithy/node-http-handler"),lEe=require("@smithy/property-provider"),gdt=ddt.__importDefault(require("fs/promises")),fdt=aEe(),dEe=cEe(),hdt=uEe(),Sdt="AWS_CONTAINER_CREDENTIALS_RELATIVE_URI",Edt="http://169.254.170.2",ydt="AWS_CONTAINER_CREDENTIALS_FULL_URI",_dt="AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE",Cdt="AWS_CONTAINER_AUTHORIZATION_TOKEN",Rdt=(t={})=>{t.logger?.debug("@aws-sdk/credential-provider-http - fromHttp");let e,r=t.awsContainerCredentialsRelativeUri??process.env[Sdt],n=t.awsContainerCredentialsFullUri??process.env[ydt],s=t.awsContainerAuthorizationToken??process.env[Cdt],o=t.awsContainerAuthorizationTokenFile??process.env[_dt],i=t.logger?.constructor?.name==="NoOpLogger"||!t.logger?.warn?console.warn:t.logger.warn.bind(t.logger);if(r&&n&&(i("@aws-sdk/credential-provider-http: you have set both awsContainerCredentialsRelativeUri and awsContainerCredentialsFullUri."),i("awsContainerCredentialsFullUri will take precedence.")),s&&o&&(i("@aws-sdk/credential-provider-http: you have set both awsContainerAuthorizationToken and awsContainerAuthorizationTokenFile."),i("awsContainerAuthorizationToken will take precedence.")),n)e=n;else if(r)e=`${Edt}${r}`;else throw new lEe.CredentialsProviderError(`No HTTP credential provider host provided. +Set AWS_CONTAINER_CREDENTIALS_FULL_URI or AWS_CONTAINER_CREDENTIALS_RELATIVE_URI.`,{logger:t.logger});let a=new URL(e);(0,fdt.checkUrl)(a,t.logger);let c=mdt.NodeHttpHandler.create({requestTimeout:t.timeout??1e3,connectionTimeout:t.timeout??1e3});return(0,hdt.retryWrapper)(async()=>{let u=(0,dEe.createGetRequest)(a);s?u.headers.Authorization=s:o&&(u.headers.Authorization=(await gdt.default.readFile(o)).toString());try{let l=await c.handle(u);return(0,dEe.getCredentials)(l.response).then(d=>(0,pdt.setCredentialFeature)(d,"CREDENTIALS_HTTP","z"))}catch(l){throw new lEe.CredentialsProviderError(String(l),{logger:t.logger})}},t.maxRetries??3,t.timeout??1e3)};LT.fromHttp=Rdt});var CH=b(MT=>{"use strict";Object.defineProperty(MT,"__esModule",{value:!0});MT.fromHttp=void 0;var vdt=pEe();Object.defineProperty(MT,"fromHttp",{enumerable:!0,get:function(){return vdt.fromHttp}})});function xdt(t){return{schemeId:"aws.auth#sigv4",signingProperties:{name:"sso-oauth",region:t.region},propertiesExtractor:(e,r)=>({signingProperties:{config:e,context:r}})}}function Pdt(t){return{schemeId:"smithy.api#noAuth"}}var jy,mEe,gEe,fEe,RH=_(()=>{Dt();jy=require("@smithy/util-middleware"),mEe=async(t,e,r)=>({operation:(0,jy.getSmithyContext)(e).operation,region:await(0,jy.normalizeProvider)(t.region)()||(()=>{throw new Error("expected `region` to be configured for `aws.auth#sigv4`")})()});gEe=t=>{let e=[];switch(t.operation){case"CreateToken":{e.push(Pdt(t));break}default:e.push(xdt(t))}return e},fEe=t=>{let e=Nc(t);return Object.assign(e,{authSchemePreference:(0,jy.normalizeProvider)(t.authSchemePreference??[])})}});var hEe,SEe,vH=_(()=>{hEe=t=>Object.assign(t,{useDualstackEndpoint:t.useDualstackEndpoint??!1,useFipsEndpoint:t.useFipsEndpoint??!1,defaultSigningName:"sso-oauth"}),SEe={UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}});var FT,xH=_(()=>{FT={name:"@aws-sdk/nested-clients",version:"3.952.0",description:"Nested clients for AWS SDK packages.",main:"./dist-cjs/index.js",module:"./dist-es/index.js",types:"./dist-types/index.d.ts",scripts:{build:"yarn lint && concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types'","build:cjs":"node ../../scripts/compilation/inline nested-clients","build:es":"tsc -p tsconfig.es.json","build:include:deps":"lerna run --scope $npm_package_name --include-dependencies build","build:types":"tsc -p tsconfig.types.json","build:types:downlevel":"downlevel-dts dist-types dist-types/ts3.4",clean:"rimraf ./dist-* && rimraf *.tsbuildinfo",lint:"node ../../scripts/validation/submodules-linter.js --pkg nested-clients",test:"yarn g:vitest run","test:watch":"yarn g:vitest watch"},engines:{node:">=18.0.0"},sideEffects:!1,author:{name:"AWS SDK for JavaScript Team",url:"https://aws.amazon.com/javascript/"},license:"Apache-2.0",dependencies:{"@aws-crypto/sha256-browser":"5.2.0","@aws-crypto/sha256-js":"5.2.0","@aws-sdk/core":"3.947.0","@aws-sdk/middleware-host-header":"3.936.0","@aws-sdk/middleware-logger":"3.936.0","@aws-sdk/middleware-recursion-detection":"3.948.0","@aws-sdk/middleware-user-agent":"3.947.0","@aws-sdk/region-config-resolver":"3.936.0","@aws-sdk/types":"3.936.0","@aws-sdk/util-endpoints":"3.936.0","@aws-sdk/util-user-agent-browser":"3.936.0","@aws-sdk/util-user-agent-node":"3.947.0","@smithy/config-resolver":"^4.4.3","@smithy/core":"^3.18.7","@smithy/fetch-http-handler":"^5.3.6","@smithy/hash-node":"^4.2.5","@smithy/invalid-dependency":"^4.2.5","@smithy/middleware-content-length":"^4.2.5","@smithy/middleware-endpoint":"^4.3.14","@smithy/middleware-retry":"^4.4.14","@smithy/middleware-serde":"^4.2.6","@smithy/middleware-stack":"^4.2.5","@smithy/node-config-provider":"^4.3.5","@smithy/node-http-handler":"^4.4.5","@smithy/protocol-http":"^5.3.5","@smithy/smithy-client":"^4.9.10","@smithy/types":"^4.9.0","@smithy/url-parser":"^4.2.5","@smithy/util-base64":"^4.3.0","@smithy/util-body-length-browser":"^4.2.0","@smithy/util-body-length-node":"^4.2.1","@smithy/util-defaults-mode-browser":"^4.3.13","@smithy/util-defaults-mode-node":"^4.2.16","@smithy/util-endpoints":"^3.2.5","@smithy/util-middleware":"^4.2.5","@smithy/util-retry":"^4.2.5","@smithy/util-utf8":"^4.2.0",tslib:"^2.6.2"},devDependencies:{concurrently:"7.0.0","downlevel-dts":"0.10.1",rimraf:"3.0.2",typescript:"~5.8.3"},typesVersions:{"<4.0":{"dist-types/*":["dist-types/ts3.4/*"]}},files:["./signin.d.ts","./signin.js","./sso-oidc.d.ts","./sso-oidc.js","./sts.d.ts","./sts.js","dist-*/**"],browser:{"./dist-es/submodules/signin/runtimeConfig":"./dist-es/submodules/signin/runtimeConfig.browser","./dist-es/submodules/sso-oidc/runtimeConfig":"./dist-es/submodules/sso-oidc/runtimeConfig.browser","./dist-es/submodules/sts/runtimeConfig":"./dist-es/submodules/sts/runtimeConfig.browser"},"react-native":{},homepage:"https://github.com/aws/aws-sdk-js-v3/tree/main/packages/nested-clients",repository:{type:"git",url:"https://github.com/aws/aws-sdk-js-v3.git",directory:"packages/nested-clients"},exports:{"./package.json":"./package.json","./sso-oidc":{types:"./dist-types/submodules/sso-oidc/index.d.ts",module:"./dist-es/submodules/sso-oidc/index.js",node:"./dist-cjs/submodules/sso-oidc/index.js",import:"./dist-es/submodules/sso-oidc/index.js",require:"./dist-cjs/submodules/sso-oidc/index.js"},"./sts":{types:"./dist-types/submodules/sts/index.d.ts",module:"./dist-es/submodules/sts/index.js",node:"./dist-cjs/submodules/sts/index.js",import:"./dist-es/submodules/sts/index.js",require:"./dist-cjs/submodules/sts/index.js"},"./signin":{types:"./dist-types/submodules/signin/index.d.ts",module:"./dist-es/submodules/signin/index.js",node:"./dist-cjs/submodules/signin/index.js",import:"./dist-es/submodules/signin/index.js",require:"./dist-cjs/submodules/signin/index.js"}}}});var Mc=b(Wd=>{"use strict";var EEe=require("os"),PH=require("process"),Idt=Oa(),yEe={isCrtAvailable:!1},Adt=()=>yEe.isCrtAvailable?["md/crt-avail"]:null,_Ee=({serviceId:t,clientVersion:e})=>async r=>{let n=[["aws-sdk-js",e],["ua","2.1"],[`os/${EEe.platform()}`,EEe.release()],["lang/js"],["md/nodejs",`${PH.versions.node}`]],s=Adt();s&&n.push(s),t&&n.push([`api/${t}`,e]),PH.env.AWS_EXECUTION_ENV&&n.push([`exec-env/${PH.env.AWS_EXECUTION_ENV}`]);let o=await r?.userAgentAppId?.();return o?[...n,[`app/${o}`]]:[...n]},Tdt=_Ee,CEe="AWS_SDK_UA_APP_ID",REe="sdk_ua_app_id",wdt="sdk-ua-app-id",Ddt={environmentVariableSelector:t=>t[CEe],configFileSelector:t=>t[REe]??t[wdt],default:Idt.DEFAULT_UA_APP_ID};Wd.NODE_APP_ID_CONFIG_OPTIONS=Ddt;Wd.UA_APP_ID_ENV_NAME=CEe;Wd.UA_APP_ID_INI_NAME=REe;Wd.createDefaultUserAgentProvider=_Ee;Wd.crtAvailability=yEe;Wd.defaultUserAgent=Tdt});var OEe,Go,jo,Jg,vEe,Vy,Qg,Xg,Fc,bH,IH,xEe,PEe,bEe,kEe,NEe,$o,IEe,LEe,AEe,TEe,wEe,DEe,Odt,MEe,FEe=_(()=>{OEe="required",Go="fn",jo="argv",Jg="ref",vEe="isSet",Vy="booleanEquals",Qg="error",Xg="endpoint",Fc="tree",bH="PartitionResult",IH="getAttr",xEe={[OEe]:!1,type:"string"},PEe={[OEe]:!0,default:!1,type:"boolean"},bEe={[Jg]:"Endpoint"},kEe={[Go]:Vy,[jo]:[{[Jg]:"UseFIPS"},!0]},NEe={[Go]:Vy,[jo]:[{[Jg]:"UseDualStack"},!0]},$o={},IEe={[Go]:IH,[jo]:[{[Jg]:bH},"supportsFIPS"]},LEe={[Jg]:bH},AEe={[Go]:Vy,[jo]:[!0,{[Go]:IH,[jo]:[LEe,"supportsDualStack"]}]},TEe=[kEe],wEe=[NEe],DEe=[{[Jg]:"Region"}],Odt={version:"1.0",parameters:{Region:xEe,UseDualStack:PEe,UseFIPS:PEe,Endpoint:xEe},rules:[{conditions:[{[Go]:vEe,[jo]:[bEe]}],rules:[{conditions:TEe,error:"Invalid Configuration: FIPS and custom endpoint are not supported",type:Qg},{conditions:wEe,error:"Invalid Configuration: Dualstack and custom endpoint are not supported",type:Qg},{endpoint:{url:bEe,properties:$o,headers:$o},type:Xg}],type:Fc},{conditions:[{[Go]:vEe,[jo]:DEe}],rules:[{conditions:[{[Go]:"aws.partition",[jo]:DEe,assign:bH}],rules:[{conditions:[kEe,NEe],rules:[{conditions:[{[Go]:Vy,[jo]:[!0,IEe]},AEe],rules:[{endpoint:{url:"https://oidc-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:$o,headers:$o},type:Xg}],type:Fc},{error:"FIPS and DualStack are enabled, but this partition does not support one or both",type:Qg}],type:Fc},{conditions:TEe,rules:[{conditions:[{[Go]:Vy,[jo]:[IEe,!0]}],rules:[{conditions:[{[Go]:"stringEquals",[jo]:[{[Go]:IH,[jo]:[LEe,"name"]},"aws-us-gov"]}],endpoint:{url:"https://oidc.{Region}.amazonaws.com",properties:$o,headers:$o},type:Xg},{endpoint:{url:"https://oidc-fips.{Region}.{PartitionResult#dnsSuffix}",properties:$o,headers:$o},type:Xg}],type:Fc},{error:"FIPS is enabled but this partition does not support FIPS",type:Qg}],type:Fc},{conditions:wEe,rules:[{conditions:[AEe],rules:[{endpoint:{url:"https://oidc.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:$o,headers:$o},type:Xg}],type:Fc},{error:"DualStack is enabled but this partition does not support DualStack",type:Qg}],type:Fc},{endpoint:{url:"https://oidc.{Region}.{PartitionResult#dnsSuffix}",properties:$o,headers:$o},type:Xg}],type:Fc}],type:Fc},{error:"Invalid Configuration: Missing Region",type:Qg}]},MEe=Odt});var BEe,Yg,kdt,UEe,qEe=_(()=>{BEe=O(Ta()),Yg=require("@smithy/util-endpoints");FEe();kdt=new Yg.EndpointCache({size:50,params:["Endpoint","Region","UseDualStack","UseFIPS"]}),UEe=(t,e={})=>kdt.get(t,()=>(0,Yg.resolveEndpoint)(MEe,{endpointParams:t,logger:e.logger}));Yg.customEndpointFunctions.aws=BEe.awsEndpointFunctions});var $Ee,GEe,jEe,BT,UT,VEe,HEe=_(()=>{Dt();wa();$Ee=require("@smithy/core"),GEe=require("@smithy/smithy-client"),jEe=require("@smithy/url-parser"),BT=require("@smithy/util-base64"),UT=require("@smithy/util-utf8");RH();qEe();VEe=t=>({apiVersion:"2019-06-10",base64Decoder:t?.base64Decoder??BT.fromBase64,base64Encoder:t?.base64Encoder??BT.toBase64,disableHostPrefix:t?.disableHostPrefix??!1,endpointProvider:t?.endpointProvider??UEe,extensions:t?.extensions??[],httpAuthSchemeProvider:t?.httpAuthSchemeProvider??gEe,httpAuthSchemes:t?.httpAuthSchemes??[{schemeId:"aws.auth#sigv4",identityProvider:e=>e.getIdentityProvider("aws.auth#sigv4"),signer:new An},{schemeId:"smithy.api#noAuth",identityProvider:e=>e.getIdentityProvider("smithy.api#noAuth")||(async()=>({})),signer:new $Ee.NoAuthSigner}],logger:t?.logger??new GEe.NoOpLogger,protocol:t?.protocol??new ol({defaultNamespace:"com.amazonaws.ssooidc"}),serviceId:t?.serviceId??"SSO OIDC",urlParser:t?.urlParser??jEe.parseUrl,utf8Decoder:t?.utf8Decoder??UT.fromUtf8,utf8Encoder:t?.utf8Encoder??UT.toUtf8})});var qT,dl,zEe,$T,ll,GT,jT,WEe,KEe,QEe,XEe,JEe=_(()=>{xH();Dt();qT=O(Mc()),dl=require("@smithy/config-resolver"),zEe=require("@smithy/hash-node"),$T=require("@smithy/middleware-retry"),ll=require("@smithy/node-config-provider"),GT=require("@smithy/node-http-handler"),jT=require("@smithy/smithy-client"),WEe=require("@smithy/util-body-length-node"),KEe=require("@smithy/util-defaults-mode-node"),QEe=require("@smithy/util-retry");HEe();XEe=t=>{(0,jT.emitWarningIfUnsupportedVersion)(process.version);let e=(0,KEe.resolveDefaultsModeConfig)(t),r=()=>e().then(jT.loadConfigsForDefaultMode),n=VEe(t);Zu(process.version);let s={profile:t?.profile,logger:n.logger};return{...n,...t,runtime:"node",defaultsMode:e,authSchemePreference:t?.authSchemePreference??(0,ll.loadConfig)(tl,s),bodyLengthChecker:t?.bodyLengthChecker??WEe.calculateBodyLength,defaultUserAgentProvider:t?.defaultUserAgentProvider??(0,qT.createDefaultUserAgentProvider)({serviceId:n.serviceId,clientVersion:FT.version}),maxAttempts:t?.maxAttempts??(0,ll.loadConfig)($T.NODE_MAX_ATTEMPT_CONFIG_OPTIONS,t),region:t?.region??(0,ll.loadConfig)(dl.NODE_REGION_CONFIG_OPTIONS,{...dl.NODE_REGION_CONFIG_FILE_OPTIONS,...s}),requestHandler:GT.NodeHttpHandler.create(t?.requestHandler??r),retryMode:t?.retryMode??(0,ll.loadConfig)({...$T.NODE_RETRY_MODE_CONFIG_OPTIONS,default:async()=>(await r()).retryMode||QEe.DEFAULT_RETRY_MODE},t),sha256:t?.sha256??zEe.Hash.bind(null,"sha256"),streamCollector:t?.streamCollector??GT.streamCollector,useDualstackEndpoint:t?.useDualstackEndpoint??(0,ll.loadConfig)(dl.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS,s),useFipsEndpoint:t?.useFipsEndpoint??(0,ll.loadConfig)(dl.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS,s),userAgentAppId:t?.userAgentAppId??(0,ll.loadConfig)(qT.NODE_APP_ID_CONFIG_OPTIONS,s)}}});var ZEe=b(Zg=>{"use strict";Object.defineProperty(Zg,"__esModule",{value:!0});Zg.warning=void 0;Zg.stsRegionDefaultResolver=Ldt;var YEe=require("@smithy/config-resolver"),Ndt=require("@smithy/node-config-provider");function Ldt(t={}){return(0,Ndt.loadConfig)({...YEe.NODE_REGION_CONFIG_OPTIONS,async default(){return Zg.warning.silence||console.warn("@aws-sdk - WARN - default STS region of us-east-1 used. See @aws-sdk/credential-providers README and set a region explicitly."),"us-east-1"}},{...YEe.NODE_REGION_CONFIG_FILE_OPTIONS,...t})}Zg.warning={silence:!1}});var Na=b(ka=>{"use strict";var Hy=require("@smithy/config-resolver"),eye=ZEe(),Mdt=t=>({setRegion(e){t.region=e},region(){return t.region}}),Fdt=t=>({region:t.region()});Object.defineProperty(ka,"NODE_REGION_CONFIG_FILE_OPTIONS",{enumerable:!0,get:function(){return Hy.NODE_REGION_CONFIG_FILE_OPTIONS}});Object.defineProperty(ka,"NODE_REGION_CONFIG_OPTIONS",{enumerable:!0,get:function(){return Hy.NODE_REGION_CONFIG_OPTIONS}});Object.defineProperty(ka,"REGION_ENV_NAME",{enumerable:!0,get:function(){return Hy.REGION_ENV_NAME}});Object.defineProperty(ka,"REGION_INI_NAME",{enumerable:!0,get:function(){return Hy.REGION_INI_NAME}});Object.defineProperty(ka,"resolveRegionConfig",{enumerable:!0,get:function(){return Hy.resolveRegionConfig}});ka.getAwsRegionExtensionConfiguration=Mdt;ka.resolveAwsRegionExtensionConfiguration=Fdt;Object.keys(eye).forEach(function(t){t!=="default"&&!Object.prototype.hasOwnProperty.call(ka,t)&&Object.defineProperty(ka,t,{enumerable:!0,get:function(){return eye[t]}})})});var tye,rye,nye=_(()=>{tye=t=>{let e=t.httpAuthSchemes,r=t.httpAuthSchemeProvider,n=t.credentials;return{setHttpAuthScheme(s){let o=e.findIndex(i=>i.schemeId===s.schemeId);o===-1?e.push(s):e.splice(o,1,s)},httpAuthSchemes(){return e},setHttpAuthSchemeProvider(s){r=s},httpAuthSchemeProvider(){return r},setCredentials(s){n=s},credentials(){return n}}},rye=t=>({httpAuthSchemes:t.httpAuthSchemes(),httpAuthSchemeProvider:t.httpAuthSchemeProvider(),credentials:t.credentials()})});var VT,HT,zT,sye,oye=_(()=>{VT=O(Na()),HT=require("@smithy/protocol-http"),zT=require("@smithy/smithy-client");nye();sye=(t,e)=>{let r=Object.assign((0,VT.getAwsRegionExtensionConfiguration)(t),(0,zT.getDefaultExtensionConfiguration)(t),(0,HT.getHttpHandlerExtensionConfiguration)(t),tye(t));return e.forEach(n=>n.configure(r)),Object.assign(t,(0,VT.resolveAwsRegionExtensionConfiguration)(r),(0,zT.resolveDefaultRuntimeConfig)(r),(0,HT.resolveHttpHandlerRuntimeConfig)(r),rye(r))}});var WT,iye,aye,KT,cye,ef,uye,lye,dye,QT,AH,zy,TH=_(()=>{WT=O(wc()),iye=O(Dc()),aye=O(Oc()),KT=O(Oa()),cye=require("@smithy/config-resolver"),ef=require("@smithy/core"),uye=require("@smithy/core/schema"),lye=require("@smithy/middleware-content-length"),dye=require("@smithy/middleware-endpoint"),QT=require("@smithy/middleware-retry"),AH=require("@smithy/smithy-client");RH();vH();JEe();oye();zy=class extends AH.Client{config;constructor(...[e]){let r=XEe(e||{});super(r),this.initConfig=r;let n=hEe(r),s=(0,KT.resolveUserAgentConfig)(n),o=(0,QT.resolveRetryConfig)(s),i=(0,cye.resolveRegionConfig)(o),a=(0,WT.resolveHostHeaderConfig)(i),c=(0,dye.resolveEndpointConfig)(a),u=fEe(c),l=sye(u,e?.extensions||[]);this.config=l,this.middlewareStack.use((0,uye.getSchemaSerdePlugin)(this.config)),this.middlewareStack.use((0,KT.getUserAgentPlugin)(this.config)),this.middlewareStack.use((0,QT.getRetryPlugin)(this.config)),this.middlewareStack.use((0,lye.getContentLengthPlugin)(this.config)),this.middlewareStack.use((0,WT.getHostHeaderPlugin)(this.config)),this.middlewareStack.use((0,iye.getLoggerPlugin)(this.config)),this.middlewareStack.use((0,aye.getRecursionDetectionPlugin)(this.config)),this.middlewareStack.use((0,ef.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config,{httpAuthSchemeParametersProvider:mEe,identityProviderConfigProvider:async d=>new ef.DefaultIdentityProviderConfig({"aws.auth#sigv4":d.credentials})})),this.middlewareStack.use((0,ef.getHttpSigningPlugin)(this.config))}destroy(){super.destroy()}}});var pye,Kr,XT=_(()=>{pye=require("@smithy/smithy-client"),Kr=class t extends pye.ServiceException{constructor(e){super(e),Object.setPrototypeOf(this,t.prototype)}}});var Wy,Ky,Qy,Xy,Jy,Yy,Zy,e_,t_,r_,n_,wH=_(()=>{XT();Wy=class t extends Kr{name="AccessDeniedException";$fault="client";error;reason;error_description;constructor(e){super({name:"AccessDeniedException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error,this.reason=e.reason,this.error_description=e.error_description}},Ky=class t extends Kr{name="AuthorizationPendingException";$fault="client";error;error_description;constructor(e){super({name:"AuthorizationPendingException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error,this.error_description=e.error_description}},Qy=class t extends Kr{name="ExpiredTokenException";$fault="client";error;error_description;constructor(e){super({name:"ExpiredTokenException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error,this.error_description=e.error_description}},Xy=class t extends Kr{name="InternalServerException";$fault="server";error;error_description;constructor(e){super({name:"InternalServerException",$fault:"server",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error,this.error_description=e.error_description}},Jy=class t extends Kr{name="InvalidClientException";$fault="client";error;error_description;constructor(e){super({name:"InvalidClientException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error,this.error_description=e.error_description}},Yy=class t extends Kr{name="InvalidGrantException";$fault="client";error;error_description;constructor(e){super({name:"InvalidGrantException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error,this.error_description=e.error_description}},Zy=class t extends Kr{name="InvalidRequestException";$fault="client";error;reason;error_description;constructor(e){super({name:"InvalidRequestException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error,this.reason=e.reason,this.error_description=e.error_description}},e_=class t extends Kr{name="InvalidScopeException";$fault="client";error;error_description;constructor(e){super({name:"InvalidScopeException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error,this.error_description=e.error_description}},t_=class t extends Kr{name="SlowDownException";$fault="client";error;error_description;constructor(e){super({name:"SlowDownException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error,this.error_description=e.error_description}},r_=class t extends Kr{name="UnauthorizedClientException";$fault="client";error;error_description;constructor(e){super({name:"UnauthorizedClientException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error,this.error_description=e.error_description}},n_=class t extends Kr{name="UnsupportedGrantTypeException";$fault="client";error;error_description;constructor(e){super({name:"UnsupportedGrantTypeException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error,this.error_description=e.error_description}}});var Xs,Bdt,Udt,qdt,$dt,Gdt,jdt,Vdt,Hdt,zdt,Wdt,Kdt,Qdt,Xdt,Jdt,Ydt,Zdt,ept,tpt,rpt,npt,La,spt,opt,ipt,apt,cpt,pr,upt,Ni,lpt,dpt,Li,ppt,mye,gye,mpt,gpt,fpt,fye,hpt,yt,Spt,Ept,ypt,_pt,hye,Cpt,Rpt,vpt,xpt,Ppt,bpt,Ipt,Apt,Tpt,wpt,Dpt,Opt,kpt,Npt,Sye,Eye=_(()=>{Xs=require("@smithy/core/schema");wH();XT();Bdt="AccessDeniedException",Udt="AuthorizationPendingException",qdt="AccessToken",$dt="ClientSecret",Gdt="CreateToken",jdt="CreateTokenRequest",Vdt="CreateTokenResponse",Hdt="CodeVerifier",zdt="ExpiredTokenException",Wdt="InvalidClientException",Kdt="InvalidGrantException",Qdt="InvalidRequestException",Xdt="InternalServerException",Jdt="InvalidScopeException",Ydt="IdToken",Zdt="RefreshToken",ept="SlowDownException",tpt="UnauthorizedClientException",rpt="UnsupportedGrantTypeException",npt="accessToken",La="client",spt="clientId",opt="clientSecret",ipt="codeVerifier",apt="code",cpt="deviceCode",pr="error",upt="expiresIn",Ni="error_description",lpt="grantType",dpt="http",Li="httpError",ppt="idToken",mye="reason",gye="refreshToken",mpt="redirectUri",gpt="scope",fpt="server",fye="smithy.ts.sdk.synthetic.com.amazonaws.ssooidc",hpt="tokenType",yt="com.amazonaws.ssooidc",Spt=[0,yt,qdt,8,0],Ept=[0,yt,$dt,8,0],ypt=[0,yt,Hdt,8,0],_pt=[0,yt,Ydt,8,0],hye=[0,yt,Zdt,8,0],Cpt=[-3,yt,Bdt,{[pr]:La,[Li]:400},[pr,mye,Ni],[0,0,0]];Xs.TypeRegistry.for(yt).registerError(Cpt,Wy);Rpt=[-3,yt,Udt,{[pr]:La,[Li]:400},[pr,Ni],[0,0]];Xs.TypeRegistry.for(yt).registerError(Rpt,Ky);vpt=[3,yt,jdt,0,[spt,opt,lpt,cpt,apt,gye,gpt,mpt,ipt],[0,[()=>Ept,0],0,0,0,[()=>hye,0],64,0,[()=>ypt,0]]],xpt=[3,yt,Vdt,0,[npt,hpt,upt,gye,ppt],[[()=>Spt,0],0,1,[()=>hye,0],[()=>_pt,0]]],Ppt=[-3,yt,zdt,{[pr]:La,[Li]:400},[pr,Ni],[0,0]];Xs.TypeRegistry.for(yt).registerError(Ppt,Qy);bpt=[-3,yt,Xdt,{[pr]:fpt,[Li]:500},[pr,Ni],[0,0]];Xs.TypeRegistry.for(yt).registerError(bpt,Xy);Ipt=[-3,yt,Wdt,{[pr]:La,[Li]:401},[pr,Ni],[0,0]];Xs.TypeRegistry.for(yt).registerError(Ipt,Jy);Apt=[-3,yt,Kdt,{[pr]:La,[Li]:400},[pr,Ni],[0,0]];Xs.TypeRegistry.for(yt).registerError(Apt,Yy);Tpt=[-3,yt,Qdt,{[pr]:La,[Li]:400},[pr,mye,Ni],[0,0,0]];Xs.TypeRegistry.for(yt).registerError(Tpt,Zy);wpt=[-3,yt,Jdt,{[pr]:La,[Li]:400},[pr,Ni],[0,0]];Xs.TypeRegistry.for(yt).registerError(wpt,e_);Dpt=[-3,yt,ept,{[pr]:La,[Li]:400},[pr,Ni],[0,0]];Xs.TypeRegistry.for(yt).registerError(Dpt,t_);Opt=[-3,yt,tpt,{[pr]:La,[Li]:400},[pr,Ni],[0,0]];Xs.TypeRegistry.for(yt).registerError(Opt,r_);kpt=[-3,yt,rpt,{[pr]:La,[Li]:400},[pr,Ni],[0,0]];Xs.TypeRegistry.for(yt).registerError(kpt,n_);Npt=[-3,fye,"SSOOIDCServiceException",0,[],[]];Xs.TypeRegistry.for(fye).registerError(Npt,Kr);Sye=[9,yt,Gdt,{[dpt]:["POST","/token",200]},()=>vpt,()=>xpt]});var yye,DH,s_,OH=_(()=>{yye=require("@smithy/middleware-endpoint"),DH=require("@smithy/smithy-client");vH();Eye();s_=class extends DH.Command.classBuilder().ep(SEe).m(function(e,r,n,s){return[(0,yye.getEndpointPlugin)(n,e.getEndpointParameterInstructions())]}).s("AWSSSOOIDCService","CreateToken",{}).n("SSOOIDCClient","CreateTokenCommand").sc(Sye).build(){}});var _ye,Lpt,JT,Cye=_(()=>{_ye=require("@smithy/smithy-client");OH();TH();Lpt={CreateTokenCommand:s_},JT=class extends zy{};(0,_ye.createAggregatedClient)(Lpt,JT)});var Rye=_(()=>{OH()});var Mpt,Fpt,vye=_(()=>{Mpt={KMS_ACCESS_DENIED:"KMS_AccessDeniedException"},Fpt={KMS_DISABLED_KEY:"KMS_DisabledException",KMS_INVALID_KEY_USAGE:"KMS_InvalidKeyUsageException",KMS_INVALID_STATE:"KMS_InvalidStateException",KMS_KEY_NOT_FOUND:"KMS_NotFoundException"}});var kH={};wt(kH,{$Command:()=>DH.Command,AccessDeniedException:()=>Wy,AccessDeniedExceptionReason:()=>Mpt,AuthorizationPendingException:()=>Ky,CreateTokenCommand:()=>s_,ExpiredTokenException:()=>Qy,InternalServerException:()=>Xy,InvalidClientException:()=>Jy,InvalidGrantException:()=>Yy,InvalidRequestException:()=>Zy,InvalidRequestExceptionReason:()=>Fpt,InvalidScopeException:()=>e_,SSOOIDC:()=>JT,SSOOIDCClient:()=>zy,SSOOIDCServiceException:()=>Kr,SlowDownException:()=>t_,UnauthorizedClientException:()=>r_,UnsupportedGrantTypeException:()=>n_,__Client:()=>AH.Client});var NH=_(()=>{TH();Cye();Rye();vye();wH();XT()});var Iye=b(i_=>{"use strict";var Bpt=(Bo(),ue(kc)),Upt=(YV(),ue(iSe)),Js=require("@smithy/property-provider"),o_=require("@smithy/shared-ini-file-loader"),qpt=require("fs"),$pt=({logger:t,signingName:e}={})=>async()=>{if(t?.debug?.("@aws-sdk/token-providers - fromEnvSigningName"),!e)throw new Js.TokenProviderError("Please pass 'signingName' to compute environment variable key",{logger:t});let r=Upt.getBearerTokenEnvKey(e);if(!(r in process.env))throw new Js.TokenProviderError(`Token not present in '${r}' environment variable`,{logger:t});let n={token:process.env[r]};return Bpt.setTokenFeature(n,"BEARER_SERVICE_ENV_VARS","3"),n},Gpt=5*60*1e3,LH="To refresh this SSO session run 'aws sso login' with the corresponding profile.",jpt=async(t,e={},r)=>{let{SSOOIDCClient:n}=await Promise.resolve().then(()=>(NH(),kH)),s=i=>e.clientConfig?.[i]??e.parentClientConfig?.[i]??r?.[i];return new n(Object.assign({},e.clientConfig??{},{region:t??e.clientConfig?.region,logger:s("logger"),userAgentAppId:s("userAgentAppId")}))},Vpt=async(t,e,r={},n)=>{let{CreateTokenCommand:s}=await Promise.resolve().then(()=>(NH(),kH));return(await jpt(e,r,n)).send(new s({clientId:t.clientId,clientSecret:t.clientSecret,refreshToken:t.refreshToken,grantType:"refresh_token"}))},xye=t=>{if(t.expiration&&t.expiration.getTime(){if(typeof e>"u")throw new Js.TokenProviderError(`Value not present for '${t}' in SSO Token${r?". Cannot refresh":""}. ${LH}`,!1)},{writeFile:Hpt}=qpt.promises,zpt=(t,e)=>{let r=o_.getSSOTokenFilepath(t),n=JSON.stringify(e,null,2);return Hpt(r,n)},Pye=new Date(0),bye=(t={})=>async({callerClientConfig:e}={})=>{t.logger?.debug("@aws-sdk/token-providers - fromSso");let r=await o_.parseKnownFiles(t),n=o_.getProfileName({profile:t.profile??e?.profile}),s=r[n];if(s){if(!s.sso_session)throw new Js.TokenProviderError(`Profile '${n}' is missing required property 'sso_session'.`)}else throw new Js.TokenProviderError(`Profile '${n}' could not be found in shared credentials file.`,!1);let o=s.sso_session,a=(await o_.loadSsoSessionData(t))[o];if(!a)throw new Js.TokenProviderError(`Sso session '${o}' could not be found in shared credentials file.`,!1);for(let g of["sso_start_url","sso_region"])if(!a[g])throw new Js.TokenProviderError(`Sso session '${o}' is missing required property '${g}'.`,!1);a.sso_start_url;let c=a.sso_region,u;try{u=await o_.getSSOTokenFromFile(o)}catch{throw new Js.TokenProviderError(`The SSO session token associated with profile=${n} was not found or is invalid. ${LH}`,!1)}Kd("accessToken",u.accessToken),Kd("expiresAt",u.expiresAt);let{accessToken:l,expiresAt:d}=u,p={token:l,expiration:new Date(d)};if(p.expiration.getTime()-Date.now()>Gpt)return p;if(Date.now()-Pye.getTime()<30*1e3)return xye(p),p;Kd("clientId",u.clientId,!0),Kd("clientSecret",u.clientSecret,!0),Kd("refreshToken",u.refreshToken,!0);try{Pye.setTime(Date.now());let g=await Vpt(u,c,t,e);Kd("accessToken",g.accessToken),Kd("expiresIn",g.expiresIn);let y=new Date(Date.now()+g.expiresIn*1e3);try{await zpt(o,{...u,accessToken:g.accessToken,expiresAt:y.toISOString(),refreshToken:g.refreshToken})}catch{}return{token:g.accessToken,expiration:y}}catch{return xye(p),p}},Wpt=({token:t,logger:e})=>async()=>{if(e?.debug("@aws-sdk/token-providers - fromStatic"),!t||!t.token)throw new Js.TokenProviderError("Please pass a valid token to fromStatic",!1);return t},Kpt=(t={})=>Js.memoize(Js.chain(bye(t),async()=>{throw new Js.TokenProviderError("Could not load token from any providers",!1)}),e=>e.expiration!==void 0&&e.expiration.getTime()-Date.now()<3e5,e=>e.expiration!==void 0);i_.fromEnvSigningName=$pt;i_.fromSso=bye;i_.fromStatic=Wpt;i_.nodeProvider=Kpt});var FH=b(pl=>{"use strict";Object.defineProperty(pl,"__esModule",{value:!0});pl.resolveHttpAuthSchemeConfig=pl.defaultSSOHttpAuthSchemeProvider=pl.defaultSSOHttpAuthSchemeParametersProvider=void 0;var Qpt=(Dt(),ue(Fr)),MH=require("@smithy/util-middleware"),Xpt=async(t,e,r)=>({operation:(0,MH.getSmithyContext)(e).operation,region:await(0,MH.normalizeProvider)(t.region)()||(()=>{throw new Error("expected `region` to be configured for `aws.auth#sigv4`")})()});pl.defaultSSOHttpAuthSchemeParametersProvider=Xpt;function Jpt(t){return{schemeId:"aws.auth#sigv4",signingProperties:{name:"awsssoportal",region:t.region},propertiesExtractor:(e,r)=>({signingProperties:{config:e,context:r}})}}function YT(t){return{schemeId:"smithy.api#noAuth"}}var Ypt=t=>{let e=[];switch(t.operation){case"GetRoleCredentials":{e.push(YT(t));break}case"ListAccountRoles":{e.push(YT(t));break}case"ListAccounts":{e.push(YT(t));break}case"Logout":{e.push(YT(t));break}default:e.push(Jpt(t))}return e};pl.defaultSSOHttpAuthSchemeProvider=Ypt;var Zpt=t=>{let e=(0,Qpt.resolveAwsSdkSigV4Config)(t);return Object.assign(e,{authSchemePreference:(0,MH.normalizeProvider)(t.authSchemePreference??[])})};pl.resolveHttpAuthSchemeConfig=Zpt});var Aye=b((b6r,emt)=>{emt.exports={name:"@aws-sdk/client-sso",description:"AWS SDK for JavaScript Sso Client for Node.js, Browser and React Native",version:"3.948.0",scripts:{build:"concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types'","build:cjs":"node ../../scripts/compilation/inline client-sso","build:es":"tsc -p tsconfig.es.json","build:include:deps":"lerna run --scope $npm_package_name --include-dependencies build","build:types":"tsc -p tsconfig.types.json","build:types:downlevel":"downlevel-dts dist-types dist-types/ts3.4",clean:"rimraf ./dist-* && rimraf *.tsbuildinfo","extract:docs":"api-extractor run --local","generate:client":"node ../../scripts/generate-clients/single-service --solo sso","test:index":"tsc --noEmit ./test/index-types.ts && node ./test/index-objects.spec.mjs"},main:"./dist-cjs/index.js",types:"./dist-types/index.d.ts",module:"./dist-es/index.js",sideEffects:!1,dependencies:{"@aws-crypto/sha256-browser":"5.2.0","@aws-crypto/sha256-js":"5.2.0","@aws-sdk/core":"3.947.0","@aws-sdk/middleware-host-header":"3.936.0","@aws-sdk/middleware-logger":"3.936.0","@aws-sdk/middleware-recursion-detection":"3.948.0","@aws-sdk/middleware-user-agent":"3.947.0","@aws-sdk/region-config-resolver":"3.936.0","@aws-sdk/types":"3.936.0","@aws-sdk/util-endpoints":"3.936.0","@aws-sdk/util-user-agent-browser":"3.936.0","@aws-sdk/util-user-agent-node":"3.947.0","@smithy/config-resolver":"^4.4.3","@smithy/core":"^3.18.7","@smithy/fetch-http-handler":"^5.3.6","@smithy/hash-node":"^4.2.5","@smithy/invalid-dependency":"^4.2.5","@smithy/middleware-content-length":"^4.2.5","@smithy/middleware-endpoint":"^4.3.14","@smithy/middleware-retry":"^4.4.14","@smithy/middleware-serde":"^4.2.6","@smithy/middleware-stack":"^4.2.5","@smithy/node-config-provider":"^4.3.5","@smithy/node-http-handler":"^4.4.5","@smithy/protocol-http":"^5.3.5","@smithy/smithy-client":"^4.9.10","@smithy/types":"^4.9.0","@smithy/url-parser":"^4.2.5","@smithy/util-base64":"^4.3.0","@smithy/util-body-length-browser":"^4.2.0","@smithy/util-body-length-node":"^4.2.1","@smithy/util-defaults-mode-browser":"^4.3.13","@smithy/util-defaults-mode-node":"^4.2.16","@smithy/util-endpoints":"^3.2.5","@smithy/util-middleware":"^4.2.5","@smithy/util-retry":"^4.2.5","@smithy/util-utf8":"^4.2.0",tslib:"^2.6.2"},devDependencies:{"@tsconfig/node18":"18.2.4","@types/node":"^18.19.69",concurrently:"7.0.0","downlevel-dts":"0.10.1",rimraf:"3.0.2",typescript:"~5.8.3"},engines:{node:">=18.0.0"},typesVersions:{"<4.0":{"dist-types/*":["dist-types/ts3.4/*"]}},files:["dist-*/**"],author:{name:"AWS SDK for JavaScript Team",url:"https://aws.amazon.com/javascript/"},license:"Apache-2.0",browser:{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.browser"},"react-native":{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.native"},homepage:"https://github.com/aws/aws-sdk-js-v3/tree/main/clients/client-sso",repository:{type:"git",url:"https://github.com/aws/aws-sdk-js-v3.git",directory:"clients/client-sso"}}});var jye=b(ZT=>{"use strict";Object.defineProperty(ZT,"__esModule",{value:!0});ZT.ruleSet=void 0;var Uye="required",Ho="fn",zo="argv",nf="ref",Tye=!0,wye="isSet",a_="booleanEquals",tf="error",rf="endpoint",Bc="tree",BH="PartitionResult",UH="getAttr",Dye={[Uye]:!1,type:"string"},Oye={[Uye]:!0,default:!1,type:"boolean"},kye={[nf]:"Endpoint"},qye={[Ho]:a_,[zo]:[{[nf]:"UseFIPS"},!0]},$ye={[Ho]:a_,[zo]:[{[nf]:"UseDualStack"},!0]},Vo={},Nye={[Ho]:UH,[zo]:[{[nf]:BH},"supportsFIPS"]},Gye={[nf]:BH},Lye={[Ho]:a_,[zo]:[!0,{[Ho]:UH,[zo]:[Gye,"supportsDualStack"]}]},Mye=[qye],Fye=[$ye],Bye=[{[nf]:"Region"}],tmt={version:"1.0",parameters:{Region:Dye,UseDualStack:Oye,UseFIPS:Oye,Endpoint:Dye},rules:[{conditions:[{[Ho]:wye,[zo]:[kye]}],rules:[{conditions:Mye,error:"Invalid Configuration: FIPS and custom endpoint are not supported",type:tf},{conditions:Fye,error:"Invalid Configuration: Dualstack and custom endpoint are not supported",type:tf},{endpoint:{url:kye,properties:Vo,headers:Vo},type:rf}],type:Bc},{conditions:[{[Ho]:wye,[zo]:Bye}],rules:[{conditions:[{[Ho]:"aws.partition",[zo]:Bye,assign:BH}],rules:[{conditions:[qye,$ye],rules:[{conditions:[{[Ho]:a_,[zo]:[Tye,Nye]},Lye],rules:[{endpoint:{url:"https://portal.sso-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:Vo,headers:Vo},type:rf}],type:Bc},{error:"FIPS and DualStack are enabled, but this partition does not support one or both",type:tf}],type:Bc},{conditions:Mye,rules:[{conditions:[{[Ho]:a_,[zo]:[Nye,Tye]}],rules:[{conditions:[{[Ho]:"stringEquals",[zo]:[{[Ho]:UH,[zo]:[Gye,"name"]},"aws-us-gov"]}],endpoint:{url:"https://portal.sso.{Region}.amazonaws.com",properties:Vo,headers:Vo},type:rf},{endpoint:{url:"https://portal.sso-fips.{Region}.{PartitionResult#dnsSuffix}",properties:Vo,headers:Vo},type:rf}],type:Bc},{error:"FIPS is enabled but this partition does not support FIPS",type:tf}],type:Bc},{conditions:Fye,rules:[{conditions:[Lye],rules:[{endpoint:{url:"https://portal.sso.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:Vo,headers:Vo},type:rf}],type:Bc},{error:"DualStack is enabled but this partition does not support DualStack",type:tf}],type:Bc},{endpoint:{url:"https://portal.sso.{Region}.{PartitionResult#dnsSuffix}",properties:Vo,headers:Vo},type:rf}],type:Bc}],type:Bc},{error:"Invalid Configuration: Missing Region",type:tf}]};ZT.ruleSet=tmt});var Vye=b(ew=>{"use strict";Object.defineProperty(ew,"__esModule",{value:!0});ew.defaultEndpointResolver=void 0;var rmt=Ta(),qH=require("@smithy/util-endpoints"),nmt=jye(),smt=new qH.EndpointCache({size:50,params:["Endpoint","Region","UseDualStack","UseFIPS"]}),omt=(t,e={})=>smt.get(t,()=>(0,qH.resolveEndpoint)(nmt.ruleSet,{endpointParams:t,logger:e.logger}));ew.defaultEndpointResolver=omt;qH.customEndpointFunctions.aws=rmt.awsEndpointFunctions});var Wye=b(tw=>{"use strict";Object.defineProperty(tw,"__esModule",{value:!0});tw.getRuntimeConfig=void 0;var imt=(Dt(),ue(Fr)),amt=(wa(),ue(Wg)),cmt=require("@smithy/core"),umt=require("@smithy/smithy-client"),lmt=require("@smithy/url-parser"),Hye=require("@smithy/util-base64"),zye=require("@smithy/util-utf8"),dmt=FH(),pmt=Vye(),mmt=t=>({apiVersion:"2019-06-10",base64Decoder:t?.base64Decoder??Hye.fromBase64,base64Encoder:t?.base64Encoder??Hye.toBase64,disableHostPrefix:t?.disableHostPrefix??!1,endpointProvider:t?.endpointProvider??pmt.defaultEndpointResolver,extensions:t?.extensions??[],httpAuthSchemeProvider:t?.httpAuthSchemeProvider??dmt.defaultSSOHttpAuthSchemeProvider,httpAuthSchemes:t?.httpAuthSchemes??[{schemeId:"aws.auth#sigv4",identityProvider:e=>e.getIdentityProvider("aws.auth#sigv4"),signer:new imt.AwsSdkSigV4Signer},{schemeId:"smithy.api#noAuth",identityProvider:e=>e.getIdentityProvider("smithy.api#noAuth")||(async()=>({})),signer:new cmt.NoAuthSigner}],logger:t?.logger??new umt.NoOpLogger,protocol:t?.protocol??new amt.AwsRestJsonProtocol({defaultNamespace:"com.amazonaws.sso"}),serviceId:t?.serviceId??"SSO",urlParser:t?.urlParser??lmt.parseUrl,utf8Decoder:t?.utf8Decoder??zye.fromUtf8,utf8Encoder:t?.utf8Encoder??zye.toUtf8});tw.getRuntimeConfig=mmt});var Zye=b(nw=>{"use strict";Object.defineProperty(nw,"__esModule",{value:!0});nw.getRuntimeConfig=void 0;var gmt=require("tslib"),fmt=gmt.__importDefault(Aye()),Kye=(Dt(),ue(Fr)),Qye=Mc(),rw=require("@smithy/config-resolver"),hmt=require("@smithy/hash-node"),Xye=require("@smithy/middleware-retry"),Qd=require("@smithy/node-config-provider"),Jye=require("@smithy/node-http-handler"),Yye=require("@smithy/smithy-client"),Smt=require("@smithy/util-body-length-node"),Emt=require("@smithy/util-defaults-mode-node"),ymt=require("@smithy/util-retry"),_mt=Wye(),Cmt=t=>{(0,Yye.emitWarningIfUnsupportedVersion)(process.version);let e=(0,Emt.resolveDefaultsModeConfig)(t),r=()=>e().then(Yye.loadConfigsForDefaultMode),n=(0,_mt.getRuntimeConfig)(t);(0,Kye.emitWarningIfUnsupportedVersion)(process.version);let s={profile:t?.profile,logger:n.logger};return{...n,...t,runtime:"node",defaultsMode:e,authSchemePreference:t?.authSchemePreference??(0,Qd.loadConfig)(Kye.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS,s),bodyLengthChecker:t?.bodyLengthChecker??Smt.calculateBodyLength,defaultUserAgentProvider:t?.defaultUserAgentProvider??(0,Qye.createDefaultUserAgentProvider)({serviceId:n.serviceId,clientVersion:fmt.default.version}),maxAttempts:t?.maxAttempts??(0,Qd.loadConfig)(Xye.NODE_MAX_ATTEMPT_CONFIG_OPTIONS,t),region:t?.region??(0,Qd.loadConfig)(rw.NODE_REGION_CONFIG_OPTIONS,{...rw.NODE_REGION_CONFIG_FILE_OPTIONS,...s}),requestHandler:Jye.NodeHttpHandler.create(t?.requestHandler??r),retryMode:t?.retryMode??(0,Qd.loadConfig)({...Xye.NODE_RETRY_MODE_CONFIG_OPTIONS,default:async()=>(await r()).retryMode||ymt.DEFAULT_RETRY_MODE},t),sha256:t?.sha256??hmt.Hash.bind(null,"sha256"),streamCollector:t?.streamCollector??Jye.streamCollector,useDualstackEndpoint:t?.useDualstackEndpoint??(0,Qd.loadConfig)(rw.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS,s),useFipsEndpoint:t?.useFipsEndpoint??(0,Qd.loadConfig)(rw.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS,s),userAgentAppId:t?.userAgentAppId??(0,Qd.loadConfig)(Qye.NODE_APP_ID_CONFIG_OPTIONS,s)}};nw.getRuntimeConfig=Cmt});var C_e=b(wn=>{"use strict";var e_e=wc(),Rmt=Dc(),vmt=Oc(),t_e=Oa(),xmt=require("@smithy/config-resolver"),c_=require("@smithy/core"),of=require("@smithy/core/schema"),Pmt=require("@smithy/middleware-content-length"),d_=require("@smithy/middleware-endpoint"),r_e=require("@smithy/middleware-retry"),Mi=require("@smithy/smithy-client"),n_e=FH(),bmt=Zye(),s_e=Na(),o_e=require("@smithy/protocol-http"),Imt=t=>Object.assign(t,{useDualstackEndpoint:t.useDualstackEndpoint??!1,useFipsEndpoint:t.useFipsEndpoint??!1,defaultSigningName:"awsssoportal"}),aw={UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}},Amt=t=>{let e=t.httpAuthSchemes,r=t.httpAuthSchemeProvider,n=t.credentials;return{setHttpAuthScheme(s){let o=e.findIndex(i=>i.schemeId===s.schemeId);o===-1?e.push(s):e.splice(o,1,s)},httpAuthSchemes(){return e},setHttpAuthSchemeProvider(s){r=s},httpAuthSchemeProvider(){return r},setCredentials(s){n=s},credentials(){return n}}},Tmt=t=>({httpAuthSchemes:t.httpAuthSchemes(),httpAuthSchemeProvider:t.httpAuthSchemeProvider(),credentials:t.credentials()}),wmt=(t,e)=>{let r=Object.assign(s_e.getAwsRegionExtensionConfiguration(t),Mi.getDefaultExtensionConfiguration(t),o_e.getHttpHandlerExtensionConfiguration(t),Amt(t));return e.forEach(n=>n.configure(r)),Object.assign(t,s_e.resolveAwsRegionExtensionConfiguration(r),Mi.resolveDefaultRuntimeConfig(r),o_e.resolveHttpHandlerRuntimeConfig(r),Tmt(r))},sf=class extends Mi.Client{config;constructor(...[e]){let r=bmt.getRuntimeConfig(e||{});super(r),this.initConfig=r;let n=Imt(r),s=t_e.resolveUserAgentConfig(n),o=r_e.resolveRetryConfig(s),i=xmt.resolveRegionConfig(o),a=e_e.resolveHostHeaderConfig(i),c=d_.resolveEndpointConfig(a),u=n_e.resolveHttpAuthSchemeConfig(c),l=wmt(u,e?.extensions||[]);this.config=l,this.middlewareStack.use(of.getSchemaSerdePlugin(this.config)),this.middlewareStack.use(t_e.getUserAgentPlugin(this.config)),this.middlewareStack.use(r_e.getRetryPlugin(this.config)),this.middlewareStack.use(Pmt.getContentLengthPlugin(this.config)),this.middlewareStack.use(e_e.getHostHeaderPlugin(this.config)),this.middlewareStack.use(Rmt.getLoggerPlugin(this.config)),this.middlewareStack.use(vmt.getRecursionDetectionPlugin(this.config)),this.middlewareStack.use(c_.getHttpAuthSchemeEndpointRuleSetPlugin(this.config,{httpAuthSchemeParametersProvider:n_e.defaultSSOHttpAuthSchemeParametersProvider,identityProviderConfigProvider:async d=>new c_.DefaultIdentityProviderConfig({"aws.auth#sigv4":d.credentials})})),this.middlewareStack.use(c_.getHttpSigningPlugin(this.config))}destroy(){super.destroy()}},af=class i_e extends Mi.ServiceException{constructor(e){super(e),Object.setPrototypeOf(this,i_e.prototype)}},a_e=class c_e extends af{name="InvalidRequestException";$fault="client";constructor(e){super({name:"InvalidRequestException",$fault:"client",...e}),Object.setPrototypeOf(this,c_e.prototype)}},u_e=class l_e extends af{name="ResourceNotFoundException";$fault="client";constructor(e){super({name:"ResourceNotFoundException",$fault:"client",...e}),Object.setPrototypeOf(this,l_e.prototype)}},d_e=class p_e extends af{name="TooManyRequestsException";$fault="client";constructor(e){super({name:"TooManyRequestsException",$fault:"client",...e}),Object.setPrototypeOf(this,p_e.prototype)}},m_e=class g_e extends af{name="UnauthorizedException";$fault="client";constructor(e){super({name:"UnauthorizedException",$fault:"client",...e}),Object.setPrototypeOf(this,g_e.prototype)}},Dmt="AccountInfo",Omt="AccountListType",kmt="AccessTokenType",Nmt="GetRoleCredentials",Lmt="GetRoleCredentialsRequest",Mmt="GetRoleCredentialsResponse",Fmt="InvalidRequestException",Bmt="Logout",Umt="ListAccounts",qmt="ListAccountsRequest",$mt="ListAccountRolesRequest",Gmt="ListAccountRolesResponse",jmt="ListAccountsResponse",Vmt="ListAccountRoles",Hmt="LogoutRequest",zmt="RoleCredentials",Wmt="RoleInfo",Kmt="RoleListType",Qmt="ResourceNotFoundException",Xmt="SecretAccessKeyType",Jmt="SessionTokenType",Ymt="TooManyRequestsException",Zmt="UnauthorizedException",cw="accountId",egt="accessKeyId",tgt="accountList",rgt="accountName",uw="accessToken",f_e="account_id",lw="client",dw="error",ngt="emailAddress",sgt="expiration",pw="http",mw="httpError",gw="httpHeader",Xd="httpQuery",fw="message",h_e="maxResults",S_e="max_result",hw="nextToken",E_e="next_token",ogt="roleCredentials",igt="roleList",y_e="roleName",agt="role_name",__e="smithy.ts.sdk.synthetic.com.amazonaws.sso",cgt="secretAccessKey",ugt="sessionToken",Sw="x-amz-sso_bearer_token",Mt="com.amazonaws.sso",Ew=[0,Mt,kmt,8,0],lgt=[0,Mt,Xmt,8,0],dgt=[0,Mt,Jmt,8,0],pgt=[3,Mt,Dmt,0,[cw,rgt,ngt],[0,0,0]],mgt=[3,Mt,Lmt,0,[y_e,cw,uw],[[0,{[Xd]:agt}],[0,{[Xd]:f_e}],[()=>Ew,{[gw]:Sw}]]],ggt=[3,Mt,Mmt,0,[ogt],[[()=>Rgt,0]]],fgt=[-3,Mt,Fmt,{[dw]:lw,[mw]:400},[fw],[0]];of.TypeRegistry.for(Mt).registerError(fgt,a_e);var hgt=[3,Mt,$mt,0,[hw,h_e,uw,cw],[[0,{[Xd]:E_e}],[1,{[Xd]:S_e}],[()=>Ew,{[gw]:Sw}],[0,{[Xd]:f_e}]]],Sgt=[3,Mt,Gmt,0,[hw,igt],[0,()=>Tgt]],Egt=[3,Mt,qmt,0,[hw,h_e,uw],[[0,{[Xd]:E_e}],[1,{[Xd]:S_e}],[()=>Ew,{[gw]:Sw}]]],ygt=[3,Mt,jmt,0,[hw,tgt],[0,()=>Agt]],_gt=[3,Mt,Hmt,0,[uw],[[()=>Ew,{[gw]:Sw}]]],Cgt=[-3,Mt,Qmt,{[dw]:lw,[mw]:404},[fw],[0]];of.TypeRegistry.for(Mt).registerError(Cgt,u_e);var Rgt=[3,Mt,zmt,0,[egt,cgt,ugt,sgt],[0,[()=>lgt,0],[()=>dgt,0],1]],vgt=[3,Mt,Wmt,0,[y_e,cw],[0,0]],xgt=[-3,Mt,Ymt,{[dw]:lw,[mw]:429},[fw],[0]];of.TypeRegistry.for(Mt).registerError(xgt,d_e);var Pgt=[-3,Mt,Zmt,{[dw]:lw,[mw]:401},[fw],[0]];of.TypeRegistry.for(Mt).registerError(Pgt,m_e);var bgt="unit",Igt=[-3,__e,"SSOServiceException",0,[],[]];of.TypeRegistry.for(__e).registerError(Igt,af);var Agt=[1,Mt,Omt,0,()=>pgt],Tgt=[1,Mt,Kmt,0,()=>vgt],wgt=[9,Mt,Nmt,{[pw]:["GET","/federation/credentials",200]},()=>mgt,()=>ggt],Dgt=[9,Mt,Vmt,{[pw]:["GET","/assignment/roles",200]},()=>hgt,()=>Sgt],Ogt=[9,Mt,Umt,{[pw]:["GET","/assignment/accounts",200]},()=>Egt,()=>ygt],kgt=[9,Mt,Bmt,{[pw]:["POST","/logout",200]},()=>_gt,()=>bgt],sw=class extends Mi.Command.classBuilder().ep(aw).m(function(e,r,n,s){return[d_.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("SWBPortalService","GetRoleCredentials",{}).n("SSOClient","GetRoleCredentialsCommand").sc(wgt).build(){},u_=class extends Mi.Command.classBuilder().ep(aw).m(function(e,r,n,s){return[d_.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("SWBPortalService","ListAccountRoles",{}).n("SSOClient","ListAccountRolesCommand").sc(Dgt).build(){},l_=class extends Mi.Command.classBuilder().ep(aw).m(function(e,r,n,s){return[d_.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("SWBPortalService","ListAccounts",{}).n("SSOClient","ListAccountsCommand").sc(Ogt).build(){},ow=class extends Mi.Command.classBuilder().ep(aw).m(function(e,r,n,s){return[d_.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("SWBPortalService","Logout",{}).n("SSOClient","LogoutCommand").sc(kgt).build(){},Ngt={GetRoleCredentialsCommand:sw,ListAccountRolesCommand:u_,ListAccountsCommand:l_,LogoutCommand:ow},iw=class extends sf{};Mi.createAggregatedClient(Ngt,iw);var Lgt=c_.createPaginator(sf,u_,"nextToken","nextToken","maxResults"),Mgt=c_.createPaginator(sf,l_,"nextToken","nextToken","maxResults");Object.defineProperty(wn,"$Command",{enumerable:!0,get:function(){return Mi.Command}});Object.defineProperty(wn,"__Client",{enumerable:!0,get:function(){return Mi.Client}});wn.GetRoleCredentialsCommand=sw;wn.InvalidRequestException=a_e;wn.ListAccountRolesCommand=u_;wn.ListAccountsCommand=l_;wn.LogoutCommand=ow;wn.ResourceNotFoundException=u_e;wn.SSO=iw;wn.SSOClient=sf;wn.SSOServiceException=af;wn.TooManyRequestsException=d_e;wn.UnauthorizedException=m_e;wn.paginateListAccountRoles=Lgt;wn.paginateListAccounts=Mgt});var v_e=b($H=>{"use strict";var R_e=C_e();Object.defineProperty($H,"GetRoleCredentialsCommand",{enumerable:!0,get:function(){return R_e.GetRoleCredentialsCommand}});Object.defineProperty($H,"SSOClient",{enumerable:!0,get:function(){return R_e.SSOClient}})});var GH=b(_w=>{"use strict";var Fi=require("@smithy/property-provider"),yw=require("@smithy/shared-ini-file-loader"),x_e=(Bo(),ue(kc)),Fgt=Iye(),b_e=t=>t&&(typeof t.sso_start_url=="string"||typeof t.sso_account_id=="string"||typeof t.sso_session=="string"||typeof t.sso_region=="string"||typeof t.sso_role_name=="string"),p_=!1,P_e=async({ssoStartUrl:t,ssoSession:e,ssoAccountId:r,ssoRegion:n,ssoRoleName:s,ssoClient:o,clientConfig:i,parentClientConfig:a,callerClientConfig:c,profile:u,filepath:l,configFilepath:d,ignoreCache:p,logger:g})=>{let y,R="To refresh this SSO session run aws sso login with the corresponding profile.";if(e)try{let tr=await Fgt.fromSso({profile:u,filepath:l,configFilepath:d,ignoreCache:p})();y={accessToken:tr.token,expiresAt:new Date(tr.expiration).toISOString()}}catch(tr){throw new Fi.CredentialsProviderError(tr.message,{tryNextLink:p_,logger:g})}else try{y=await yw.getSSOTokenFromFile(t)}catch{throw new Fi.CredentialsProviderError(`The SSO session associated with this profile is invalid. ${R}`,{tryNextLink:p_,logger:g})}if(new Date(y.expiresAt).getTime()-Date.now()<=0)throw new Fi.CredentialsProviderError(`The SSO session associated with this profile has expired. ${R}`,{tryNextLink:p_,logger:g});let{accessToken:D}=y,{SSOClient:B,GetRoleCredentialsCommand:M}=await Promise.resolve().then(function(){return v_e()}),ge=o||new B(Object.assign({},i??{},{logger:i?.logger??c?.logger??a?.logger,region:i?.region??n,userAgentAppId:i?.userAgentAppId??c?.userAgentAppId??a?.userAgentAppId})),Y;try{Y=await ge.send(new M({accountId:r,roleName:s,accessToken:D}))}catch(tr){throw new Fi.CredentialsProviderError(tr,{tryNextLink:p_,logger:g})}let{roleCredentials:{accessKeyId:Te,secretAccessKey:Ht,sessionToken:Tt,expiration:Ne,credentialScope:Eu,accountId:yu}={}}=Y;if(!Te||!Ht||!Tt||!Ne)throw new Fi.CredentialsProviderError("SSO returns an invalid temporary credential.",{tryNextLink:p_,logger:g});let hi={accessKeyId:Te,secretAccessKey:Ht,sessionToken:Tt,expiration:new Date(Ne),...Eu&&{credentialScope:Eu},...yu&&{accountId:yu}};return e?x_e.setCredentialFeature(hi,"CREDENTIALS_SSO","s"):x_e.setCredentialFeature(hi,"CREDENTIALS_SSO_LEGACY","u"),hi},I_e=(t,e)=>{let{sso_start_url:r,sso_account_id:n,sso_region:s,sso_role_name:o}=t;if(!r||!n||!s||!o)throw new Fi.CredentialsProviderError(`Profile is configured with invalid SSO credentials. Required parameters "sso_account_id", "sso_region", "sso_role_name", "sso_start_url". Got ${Object.keys(t).join(", ")} +Reference: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html`,{tryNextLink:!1,logger:e});return t},Bgt=(t={})=>async({callerClientConfig:e}={})=>{t.logger?.debug("@aws-sdk/credential-provider-sso - fromSSO");let{ssoStartUrl:r,ssoAccountId:n,ssoRegion:s,ssoRoleName:o,ssoSession:i}=t,{ssoClient:a}=t,c=yw.getProfileName({profile:t.profile??e?.profile});if(!r&&!n&&!s&&!o&&!i){let l=(await yw.parseKnownFiles(t))[c];if(!l)throw new Fi.CredentialsProviderError(`Profile ${c} was not found.`,{logger:t.logger});if(!b_e(l))throw new Fi.CredentialsProviderError(`Profile ${c} is not configured with SSO credentials.`,{logger:t.logger});if(l?.sso_session){let B=(await yw.loadSsoSessionData(t))[l.sso_session],M=` configurations in profile ${c} and sso-session ${l.sso_session}`;if(s&&s!==B.sso_region)throw new Fi.CredentialsProviderError("Conflicting SSO region"+M,{tryNextLink:!1,logger:t.logger});if(r&&r!==B.sso_start_url)throw new Fi.CredentialsProviderError("Conflicting SSO start_url"+M,{tryNextLink:!1,logger:t.logger});l.sso_region=B.sso_region,l.sso_start_url=B.sso_start_url}let{sso_start_url:d,sso_account_id:p,sso_region:g,sso_role_name:y,sso_session:R}=I_e(l,t.logger);return P_e({ssoStartUrl:d,ssoSession:R,ssoAccountId:p,ssoRegion:g,ssoRoleName:y,ssoClient:a,clientConfig:t.clientConfig,parentClientConfig:t.parentClientConfig,callerClientConfig:t.callerClientConfig,profile:c,filepath:t.filepath,configFilepath:t.configFilepath,ignoreCache:t.ignoreCache,logger:t.logger})}else{if(!r||!n||!s||!o)throw new Fi.CredentialsProviderError('Incomplete configuration. The fromSSO() argument hash must include "ssoStartUrl", "ssoAccountId", "ssoRegion", "ssoRoleName"',{tryNextLink:!1,logger:t.logger});return P_e({ssoStartUrl:r,ssoSession:i,ssoAccountId:n,ssoRegion:s,ssoRoleName:o,ssoClient:a,clientConfig:t.clientConfig,parentClientConfig:t.parentClientConfig,callerClientConfig:t.callerClientConfig,profile:c,filepath:t.filepath,configFilepath:t.configFilepath,ignoreCache:t.ignoreCache,logger:t.logger})}};_w.fromSSO=Bgt;_w.isSsoProfile=b_e;_w.validateSsoProfile=I_e});function Ugt(t){return{schemeId:"aws.auth#sigv4",signingProperties:{name:"signin",region:t.region},propertiesExtractor:(e,r)=>({signingProperties:{config:e,context:r}})}}function qgt(t){return{schemeId:"smithy.api#noAuth"}}var m_,A_e,T_e,w_e,jH=_(()=>{Dt();m_=require("@smithy/util-middleware"),A_e=async(t,e,r)=>({operation:(0,m_.getSmithyContext)(e).operation,region:await(0,m_.normalizeProvider)(t.region)()||(()=>{throw new Error("expected `region` to be configured for `aws.auth#sigv4`")})()});T_e=t=>{let e=[];switch(t.operation){case"CreateOAuth2Token":{e.push(qgt(t));break}default:e.push(Ugt(t))}return e},w_e=t=>{let e=Nc(t);return Object.assign(e,{authSchemePreference:(0,m_.normalizeProvider)(t.authSchemePreference??[])})}});var D_e,O_e,VH=_(()=>{D_e=t=>Object.assign(t,{useDualstackEndpoint:t.useDualstackEndpoint??!1,useFipsEndpoint:t.useFipsEndpoint??!1,defaultSigningName:"signin"}),O_e={UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}});var N_e,k_e=_(()=>{N_e={name:"@aws-sdk/nested-clients",version:"3.952.0",description:"Nested clients for AWS SDK packages.",main:"./dist-cjs/index.js",module:"./dist-es/index.js",types:"./dist-types/index.d.ts",scripts:{build:"yarn lint && concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types'","build:cjs":"node ../../scripts/compilation/inline nested-clients","build:es":"tsc -p tsconfig.es.json","build:include:deps":"lerna run --scope $npm_package_name --include-dependencies build","build:types":"tsc -p tsconfig.types.json","build:types:downlevel":"downlevel-dts dist-types dist-types/ts3.4",clean:"rimraf ./dist-* && rimraf *.tsbuildinfo",lint:"node ../../scripts/validation/submodules-linter.js --pkg nested-clients",test:"yarn g:vitest run","test:watch":"yarn g:vitest watch"},engines:{node:">=18.0.0"},sideEffects:!1,author:{name:"AWS SDK for JavaScript Team",url:"https://aws.amazon.com/javascript/"},license:"Apache-2.0",dependencies:{"@aws-crypto/sha256-browser":"5.2.0","@aws-crypto/sha256-js":"5.2.0","@aws-sdk/core":"3.947.0","@aws-sdk/middleware-host-header":"3.936.0","@aws-sdk/middleware-logger":"3.936.0","@aws-sdk/middleware-recursion-detection":"3.948.0","@aws-sdk/middleware-user-agent":"3.947.0","@aws-sdk/region-config-resolver":"3.936.0","@aws-sdk/types":"3.936.0","@aws-sdk/util-endpoints":"3.936.0","@aws-sdk/util-user-agent-browser":"3.936.0","@aws-sdk/util-user-agent-node":"3.947.0","@smithy/config-resolver":"^4.4.3","@smithy/core":"^3.18.7","@smithy/fetch-http-handler":"^5.3.6","@smithy/hash-node":"^4.2.5","@smithy/invalid-dependency":"^4.2.5","@smithy/middleware-content-length":"^4.2.5","@smithy/middleware-endpoint":"^4.3.14","@smithy/middleware-retry":"^4.4.14","@smithy/middleware-serde":"^4.2.6","@smithy/middleware-stack":"^4.2.5","@smithy/node-config-provider":"^4.3.5","@smithy/node-http-handler":"^4.4.5","@smithy/protocol-http":"^5.3.5","@smithy/smithy-client":"^4.9.10","@smithy/types":"^4.9.0","@smithy/url-parser":"^4.2.5","@smithy/util-base64":"^4.3.0","@smithy/util-body-length-browser":"^4.2.0","@smithy/util-body-length-node":"^4.2.1","@smithy/util-defaults-mode-browser":"^4.3.13","@smithy/util-defaults-mode-node":"^4.2.16","@smithy/util-endpoints":"^3.2.5","@smithy/util-middleware":"^4.2.5","@smithy/util-retry":"^4.2.5","@smithy/util-utf8":"^4.2.0",tslib:"^2.6.2"},devDependencies:{concurrently:"7.0.0","downlevel-dts":"0.10.1",rimraf:"3.0.2",typescript:"~5.8.3"},typesVersions:{"<4.0":{"dist-types/*":["dist-types/ts3.4/*"]}},files:["./signin.d.ts","./signin.js","./sso-oidc.d.ts","./sso-oidc.js","./sts.d.ts","./sts.js","dist-*/**"],browser:{"./dist-es/submodules/signin/runtimeConfig":"./dist-es/submodules/signin/runtimeConfig.browser","./dist-es/submodules/sso-oidc/runtimeConfig":"./dist-es/submodules/sso-oidc/runtimeConfig.browser","./dist-es/submodules/sts/runtimeConfig":"./dist-es/submodules/sts/runtimeConfig.browser"},"react-native":{},homepage:"https://github.com/aws/aws-sdk-js-v3/tree/main/packages/nested-clients",repository:{type:"git",url:"https://github.com/aws/aws-sdk-js-v3.git",directory:"packages/nested-clients"},exports:{"./package.json":"./package.json","./sso-oidc":{types:"./dist-types/submodules/sso-oidc/index.d.ts",module:"./dist-es/submodules/sso-oidc/index.js",node:"./dist-cjs/submodules/sso-oidc/index.js",import:"./dist-es/submodules/sso-oidc/index.js",require:"./dist-cjs/submodules/sso-oidc/index.js"},"./sts":{types:"./dist-types/submodules/sts/index.d.ts",module:"./dist-es/submodules/sts/index.js",node:"./dist-cjs/submodules/sts/index.js",import:"./dist-es/submodules/sts/index.js",require:"./dist-cjs/submodules/sts/index.js"},"./signin":{types:"./dist-types/submodules/signin/index.d.ts",module:"./dist-es/submodules/signin/index.js",node:"./dist-cjs/submodules/signin/index.js",import:"./dist-es/submodules/signin/index.js",require:"./dist-cjs/submodules/signin/index.js"}}}});var G_e,On,kn,Uc,L_e,Jd,cf,ml,Bi,vw,HH,M_e,F_e,B_e,zH,WH,Dn,KH,Cw,Rw,U_e,q_e,$_e,Ggt,j_e,V_e=_(()=>{G_e="required",On="fn",kn="argv",Uc="ref",L_e="isSet",Jd="booleanEquals",cf="error",ml="endpoint",Bi="tree",vw="PartitionResult",HH="stringEquals",M_e={[G_e]:!0,default:!1,type:"boolean"},F_e={[G_e]:!1,type:"string"},B_e={[Uc]:"Endpoint"},zH={[On]:Jd,[kn]:[{[Uc]:"UseFIPS"},!0]},WH={[On]:Jd,[kn]:[{[Uc]:"UseDualStack"},!0]},Dn={},KH={[On]:"getAttr",[kn]:[{[Uc]:vw},"name"]},Cw={[On]:Jd,[kn]:[{[Uc]:"UseFIPS"},!1]},Rw={[On]:Jd,[kn]:[{[Uc]:"UseDualStack"},!1]},U_e={[On]:"getAttr",[kn]:[{[Uc]:vw},"supportsFIPS"]},q_e={[On]:Jd,[kn]:[!0,{[On]:"getAttr",[kn]:[{[Uc]:vw},"supportsDualStack"]}]},$_e=[{[Uc]:"Region"}],Ggt={version:"1.0",parameters:{UseDualStack:M_e,UseFIPS:M_e,Endpoint:F_e,Region:F_e},rules:[{conditions:[{[On]:L_e,[kn]:[B_e]}],rules:[{conditions:[zH],error:"Invalid Configuration: FIPS and custom endpoint are not supported",type:cf},{rules:[{conditions:[WH],error:"Invalid Configuration: Dualstack and custom endpoint are not supported",type:cf},{endpoint:{url:B_e,properties:Dn,headers:Dn},type:ml}],type:Bi}],type:Bi},{rules:[{conditions:[{[On]:L_e,[kn]:$_e}],rules:[{conditions:[{[On]:"aws.partition",[kn]:$_e,assign:vw}],rules:[{conditions:[{[On]:HH,[kn]:[KH,"aws"]},Cw,Rw],endpoint:{url:"https://{Region}.signin.aws.amazon.com",properties:Dn,headers:Dn},type:ml},{conditions:[{[On]:HH,[kn]:[KH,"aws-cn"]},Cw,Rw],endpoint:{url:"https://{Region}.signin.amazonaws.cn",properties:Dn,headers:Dn},type:ml},{conditions:[{[On]:HH,[kn]:[KH,"aws-us-gov"]},Cw,Rw],endpoint:{url:"https://{Region}.signin.amazonaws-us-gov.com",properties:Dn,headers:Dn},type:ml},{conditions:[zH,WH],rules:[{conditions:[{[On]:Jd,[kn]:[!0,U_e]},q_e],rules:[{endpoint:{url:"https://signin-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:Dn,headers:Dn},type:ml}],type:Bi},{error:"FIPS and DualStack are enabled, but this partition does not support one or both",type:cf}],type:Bi},{conditions:[zH,Rw],rules:[{conditions:[{[On]:Jd,[kn]:[U_e,!0]}],rules:[{endpoint:{url:"https://signin-fips.{Region}.{PartitionResult#dnsSuffix}",properties:Dn,headers:Dn},type:ml}],type:Bi},{error:"FIPS is enabled but this partition does not support FIPS",type:cf}],type:Bi},{conditions:[Cw,WH],rules:[{conditions:[q_e],rules:[{endpoint:{url:"https://signin.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:Dn,headers:Dn},type:ml}],type:Bi},{error:"DualStack is enabled but this partition does not support DualStack",type:cf}],type:Bi},{endpoint:{url:"https://signin.{Region}.{PartitionResult#dnsSuffix}",properties:Dn,headers:Dn},type:ml}],type:Bi}],type:Bi},{error:"Invalid Configuration: Missing Region",type:cf}],type:Bi}]},j_e=Ggt});var H_e,uf,jgt,z_e,W_e=_(()=>{H_e=O(Ta()),uf=require("@smithy/util-endpoints");V_e();jgt=new uf.EndpointCache({size:50,params:["Endpoint","Region","UseDualStack","UseFIPS"]}),z_e=(t,e={})=>jgt.get(t,()=>(0,uf.resolveEndpoint)(j_e,{endpointParams:t,logger:e.logger}));uf.customEndpointFunctions.aws=H_e.awsEndpointFunctions});var K_e,Q_e,X_e,xw,Pw,J_e,Y_e=_(()=>{Dt();wa();K_e=require("@smithy/core"),Q_e=require("@smithy/smithy-client"),X_e=require("@smithy/url-parser"),xw=require("@smithy/util-base64"),Pw=require("@smithy/util-utf8");jH();W_e();J_e=t=>({apiVersion:"2023-01-01",base64Decoder:t?.base64Decoder??xw.fromBase64,base64Encoder:t?.base64Encoder??xw.toBase64,disableHostPrefix:t?.disableHostPrefix??!1,endpointProvider:t?.endpointProvider??z_e,extensions:t?.extensions??[],httpAuthSchemeProvider:t?.httpAuthSchemeProvider??T_e,httpAuthSchemes:t?.httpAuthSchemes??[{schemeId:"aws.auth#sigv4",identityProvider:e=>e.getIdentityProvider("aws.auth#sigv4"),signer:new An},{schemeId:"smithy.api#noAuth",identityProvider:e=>e.getIdentityProvider("smithy.api#noAuth")||(async()=>({})),signer:new K_e.NoAuthSigner}],logger:t?.logger??new Q_e.NoOpLogger,protocol:t?.protocol??new ol({defaultNamespace:"com.amazonaws.signin"}),serviceId:t?.serviceId??"Signin",urlParser:t?.urlParser??X_e.parseUrl,utf8Decoder:t?.utf8Decoder??Pw.fromUtf8,utf8Encoder:t?.utf8Encoder??Pw.toUtf8})});var bw,fl,Z_e,Iw,gl,Aw,Tw,eCe,tCe,rCe,nCe,sCe=_(()=>{k_e();Dt();bw=O(Mc()),fl=require("@smithy/config-resolver"),Z_e=require("@smithy/hash-node"),Iw=require("@smithy/middleware-retry"),gl=require("@smithy/node-config-provider"),Aw=require("@smithy/node-http-handler"),Tw=require("@smithy/smithy-client"),eCe=require("@smithy/util-body-length-node"),tCe=require("@smithy/util-defaults-mode-node"),rCe=require("@smithy/util-retry");Y_e();nCe=t=>{(0,Tw.emitWarningIfUnsupportedVersion)(process.version);let e=(0,tCe.resolveDefaultsModeConfig)(t),r=()=>e().then(Tw.loadConfigsForDefaultMode),n=J_e(t);Zu(process.version);let s={profile:t?.profile,logger:n.logger};return{...n,...t,runtime:"node",defaultsMode:e,authSchemePreference:t?.authSchemePreference??(0,gl.loadConfig)(tl,s),bodyLengthChecker:t?.bodyLengthChecker??eCe.calculateBodyLength,defaultUserAgentProvider:t?.defaultUserAgentProvider??(0,bw.createDefaultUserAgentProvider)({serviceId:n.serviceId,clientVersion:N_e.version}),maxAttempts:t?.maxAttempts??(0,gl.loadConfig)(Iw.NODE_MAX_ATTEMPT_CONFIG_OPTIONS,t),region:t?.region??(0,gl.loadConfig)(fl.NODE_REGION_CONFIG_OPTIONS,{...fl.NODE_REGION_CONFIG_FILE_OPTIONS,...s}),requestHandler:Aw.NodeHttpHandler.create(t?.requestHandler??r),retryMode:t?.retryMode??(0,gl.loadConfig)({...Iw.NODE_RETRY_MODE_CONFIG_OPTIONS,default:async()=>(await r()).retryMode||rCe.DEFAULT_RETRY_MODE},t),sha256:t?.sha256??Z_e.Hash.bind(null,"sha256"),streamCollector:t?.streamCollector??Aw.streamCollector,useDualstackEndpoint:t?.useDualstackEndpoint??(0,gl.loadConfig)(fl.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS,s),useFipsEndpoint:t?.useFipsEndpoint??(0,gl.loadConfig)(fl.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS,s),userAgentAppId:t?.userAgentAppId??(0,gl.loadConfig)(bw.NODE_APP_ID_CONFIG_OPTIONS,s)}}});var oCe,iCe,aCe=_(()=>{oCe=t=>{let e=t.httpAuthSchemes,r=t.httpAuthSchemeProvider,n=t.credentials;return{setHttpAuthScheme(s){let o=e.findIndex(i=>i.schemeId===s.schemeId);o===-1?e.push(s):e.splice(o,1,s)},httpAuthSchemes(){return e},setHttpAuthSchemeProvider(s){r=s},httpAuthSchemeProvider(){return r},setCredentials(s){n=s},credentials(){return n}}},iCe=t=>({httpAuthSchemes:t.httpAuthSchemes(),httpAuthSchemeProvider:t.httpAuthSchemeProvider(),credentials:t.credentials()})});var ww,Dw,Ow,cCe,uCe=_(()=>{ww=O(Na()),Dw=require("@smithy/protocol-http"),Ow=require("@smithy/smithy-client");aCe();cCe=(t,e)=>{let r=Object.assign((0,ww.getAwsRegionExtensionConfiguration)(t),(0,Ow.getDefaultExtensionConfiguration)(t),(0,Dw.getHttpHandlerExtensionConfiguration)(t),oCe(t));return e.forEach(n=>n.configure(r)),Object.assign(t,(0,ww.resolveAwsRegionExtensionConfiguration)(r),(0,Ow.resolveDefaultRuntimeConfig)(r),(0,Dw.resolveHttpHandlerRuntimeConfig)(r),iCe(r))}});var kw,lCe,dCe,Nw,pCe,lf,mCe,gCe,fCe,Lw,QH,g_,XH=_(()=>{kw=O(wc()),lCe=O(Dc()),dCe=O(Oc()),Nw=O(Oa()),pCe=require("@smithy/config-resolver"),lf=require("@smithy/core"),mCe=require("@smithy/core/schema"),gCe=require("@smithy/middleware-content-length"),fCe=require("@smithy/middleware-endpoint"),Lw=require("@smithy/middleware-retry"),QH=require("@smithy/smithy-client");jH();VH();sCe();uCe();g_=class extends QH.Client{config;constructor(...[e]){let r=nCe(e||{});super(r),this.initConfig=r;let n=D_e(r),s=(0,Nw.resolveUserAgentConfig)(n),o=(0,Lw.resolveRetryConfig)(s),i=(0,pCe.resolveRegionConfig)(o),a=(0,kw.resolveHostHeaderConfig)(i),c=(0,fCe.resolveEndpointConfig)(a),u=w_e(c),l=cCe(u,e?.extensions||[]);this.config=l,this.middlewareStack.use((0,mCe.getSchemaSerdePlugin)(this.config)),this.middlewareStack.use((0,Nw.getUserAgentPlugin)(this.config)),this.middlewareStack.use((0,Lw.getRetryPlugin)(this.config)),this.middlewareStack.use((0,gCe.getContentLengthPlugin)(this.config)),this.middlewareStack.use((0,kw.getHostHeaderPlugin)(this.config)),this.middlewareStack.use((0,lCe.getLoggerPlugin)(this.config)),this.middlewareStack.use((0,dCe.getRecursionDetectionPlugin)(this.config)),this.middlewareStack.use((0,lf.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config,{httpAuthSchemeParametersProvider:A_e,identityProviderConfigProvider:async d=>new lf.DefaultIdentityProviderConfig({"aws.auth#sigv4":d.credentials})})),this.middlewareStack.use((0,lf.getHttpSigningPlugin)(this.config))}destroy(){super.destroy()}}});var hCe,Ui,Mw=_(()=>{hCe=require("@smithy/smithy-client"),Ui=class t extends hCe.ServiceException{constructor(e){super(e),Object.setPrototypeOf(this,t.prototype)}}});var f_,h_,S_,E_,JH=_(()=>{Mw();f_=class t extends Ui{name="AccessDeniedException";$fault="client";error;constructor(e){super({name:"AccessDeniedException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error}},h_=class t extends Ui{name="InternalServerException";$fault="server";error;constructor(e){super({name:"InternalServerException",$fault:"server",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error}},S_=class t extends Ui{name="TooManyRequestsError";$fault="client";error;constructor(e){super({name:"TooManyRequestsError",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error}},E_=class t extends Ui{name="ValidationException";$fault="client";error;constructor(e){super({name:"ValidationException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error}}});var df,Vgt,Hgt,zgt,Wgt,Kgt,Qgt,Xgt,Jgt,Ygt,Zgt,eft,SCe,ECe,YH,yCe,_Ce,tft,hl,CCe,RCe,rft,ZH,vCe,Ys,Bw,Fw,xCe,nft,PCe,bCe,ACe,sft,oft,ICe,Jn,TCe,ift,aft,cft,uft,lft,dft,pft,mft,gft,fft,wCe,DCe=_(()=>{df=require("@smithy/core/schema");JH();Mw();Vgt="AccessDeniedException",Hgt="AccessToken",zgt="CreateOAuth2Token",Wgt="CreateOAuth2TokenRequest",Kgt="CreateOAuth2TokenRequestBody",Qgt="CreateOAuth2TokenResponseBody",Xgt="CreateOAuth2TokenResponse",Jgt="InternalServerException",Ygt="RefreshToken",Zgt="TooManyRequestsError",eft="ValidationException",SCe="accessKeyId",ECe="accessToken",YH="client",yCe="clientId",_Ce="codeVerifier",tft="code",hl="error",CCe="expiresIn",RCe="grantType",rft="http",ZH="httpError",vCe="idToken",Ys="jsonName",Bw="message",Fw="refreshToken",xCe="redirectUri",nft="server",PCe="secretAccessKey",bCe="sessionToken",ACe="smithy.ts.sdk.synthetic.com.amazonaws.signin",sft="tokenInput",oft="tokenOutput",ICe="tokenType",Jn="com.amazonaws.signin",TCe=[0,Jn,Ygt,8,0],ift=[-3,Jn,Vgt,{[hl]:YH},[hl,Bw],[0,0]];df.TypeRegistry.for(Jn).registerError(ift,f_);aft=[3,Jn,Hgt,8,[SCe,PCe,bCe],[[0,{[Ys]:SCe}],[0,{[Ys]:PCe}],[0,{[Ys]:bCe}]]],cft=[3,Jn,Wgt,0,[sft],[[()=>uft,16]]],uft=[3,Jn,Kgt,0,[yCe,RCe,tft,xCe,_Ce,Fw],[[0,{[Ys]:yCe}],[0,{[Ys]:RCe}],0,[0,{[Ys]:xCe}],[0,{[Ys]:_Ce}],[()=>TCe,{[Ys]:Fw}]]],lft=[3,Jn,Xgt,0,[oft],[[()=>dft,16]]],dft=[3,Jn,Qgt,0,[ECe,ICe,CCe,Fw,vCe],[[()=>aft,{[Ys]:ECe}],[0,{[Ys]:ICe}],[1,{[Ys]:CCe}],[()=>TCe,{[Ys]:Fw}],[0,{[Ys]:vCe}]]],pft=[-3,Jn,Jgt,{[hl]:nft,[ZH]:500},[hl,Bw],[0,0]];df.TypeRegistry.for(Jn).registerError(pft,h_);mft=[-3,Jn,Zgt,{[hl]:YH,[ZH]:429},[hl,Bw],[0,0]];df.TypeRegistry.for(Jn).registerError(mft,S_);gft=[-3,Jn,eft,{[hl]:YH,[ZH]:400},[hl,Bw],[0,0]];df.TypeRegistry.for(Jn).registerError(gft,E_);fft=[-3,ACe,"SigninServiceException",0,[],[]];df.TypeRegistry.for(ACe).registerError(fft,Ui);wCe=[9,Jn,zgt,{[rft]:["POST","/v1/token",200]},()=>cft,()=>lft]});var OCe,ez,y_,tz=_(()=>{OCe=require("@smithy/middleware-endpoint"),ez=require("@smithy/smithy-client");VH();DCe();y_=class extends ez.Command.classBuilder().ep(O_e).m(function(e,r,n,s){return[(0,OCe.getEndpointPlugin)(n,e.getEndpointParameterInstructions())]}).s("Signin","CreateOAuth2Token",{}).n("SigninClient","CreateOAuth2TokenCommand").sc(wCe).build(){}});var kCe,hft,Uw,NCe=_(()=>{kCe=require("@smithy/smithy-client");tz();XH();hft={CreateOAuth2TokenCommand:y_},Uw=class extends g_{};(0,kCe.createAggregatedClient)(hft,Uw)});var LCe=_(()=>{tz()});var Sft,MCe=_(()=>{Sft={AUTHCODE_EXPIRED:"AUTHCODE_EXPIRED",INSUFFICIENT_PERMISSIONS:"INSUFFICIENT_PERMISSIONS",INVALID_REQUEST:"INVALID_REQUEST",SERVER_ERROR:"server_error",TOKEN_EXPIRED:"TOKEN_EXPIRED",USER_CREDENTIALS_CHANGED:"USER_CREDENTIALS_CHANGED"}});var FCe={};wt(FCe,{$Command:()=>ez.Command,AccessDeniedException:()=>f_,CreateOAuth2TokenCommand:()=>y_,InternalServerException:()=>h_,OAuth2ErrorCode:()=>Sft,Signin:()=>Uw,SigninClient:()=>g_,SigninServiceException:()=>Ui,TooManyRequestsError:()=>S_,ValidationException:()=>E_,__Client:()=>QH.Client});var BCe=_(()=>{XH();NCe();LCe();MCe();JH();Mw()});var qCe=b(UCe=>{"use strict";var Eft=(Bo(),ue(kc)),Sl=require("@smithy/property-provider"),sz=require("@smithy/shared-ini-file-loader"),yft=require("@smithy/protocol-http"),qw=require("node:crypto"),rz=require("node:fs"),_ft=require("node:os"),nz=require("node:path"),oz=class t{profileData;init;callerClientConfig;static REFRESH_THRESHOLD=5*60*1e3;constructor(e,r,n){this.profileData=e,this.init=r,this.callerClientConfig=n}async loadCredentials(){let e=await this.loadToken();if(!e)throw new Sl.CredentialsProviderError(`Failed to load a token for session ${this.loginSession}, please re-authenticate using aws login`,{tryNextLink:!1,logger:this.logger});let r=e.accessToken,n=Date.now();return new Date(r.expiresAt).getTime()-n<=t.REFRESH_THRESHOLD?this.refresh(e):{accessKeyId:r.accessKeyId,secretAccessKey:r.secretAccessKey,sessionToken:r.sessionToken,accountId:r.accountId,expiration:new Date(r.expiresAt)}}get logger(){return this.init?.logger}get loginSession(){return this.profileData.login_session}async refresh(e){let{SigninClient:r,CreateOAuth2TokenCommand:n}=await Promise.resolve().then(()=>(BCe(),FCe)),{logger:s,userAgentAppId:o}=this.callerClientConfig??{},a=(d=>d?.metadata?.handlerProtocol==="h2")(this.callerClientConfig?.requestHandler)?void 0:this.callerClientConfig?.requestHandler,c=this.profileData.region??await this.callerClientConfig?.region?.()??process.env.AWS_REGION,u=new r({credentials:{accessKeyId:"",secretAccessKey:""},region:c,requestHandler:a,logger:s,userAgentAppId:o,...this.init?.clientConfig});this.createDPoPInterceptor(u.middlewareStack);let l={tokenInput:{clientId:e.clientId,refreshToken:e.refreshToken,grantType:"refresh_token"}};try{let d=await u.send(new n(l)),{accessKeyId:p,secretAccessKey:g,sessionToken:y}=d.tokenOutput?.accessToken??{},{refreshToken:R,expiresIn:D}=d.tokenOutput??{};if(!p||!g||!y||!R)throw new Sl.CredentialsProviderError("Token refresh response missing required fields",{logger:this.logger,tryNextLink:!1});let B=(D??900)*1e3,M=new Date(Date.now()+B),ge={...e,accessToken:{...e.accessToken,accessKeyId:p,secretAccessKey:g,sessionToken:y,expiresAt:M.toISOString()},refreshToken:R};await this.saveToken(ge);let Y=ge.accessToken;return{accessKeyId:Y.accessKeyId,secretAccessKey:Y.secretAccessKey,sessionToken:Y.sessionToken,accountId:Y.accountId,expiration:M}}catch(d){if(d.name==="AccessDeniedException"){let p=d.error,g;switch(p){case"TOKEN_EXPIRED":g="Your session has expired. Please reauthenticate.";break;case"USER_CREDENTIALS_CHANGED":g="Unable to refresh credentials because of a change in your password. Please reauthenticate with your new password.";break;case"INSUFFICIENT_PERMISSIONS":g="Unable to refresh credentials due to insufficient permissions. You may be missing permission for the 'CreateOAuth2Token' action.";break;default:g=`Failed to refresh token: ${String(d)}. Please re-authenticate using \`aws login\``}throw new Sl.CredentialsProviderError(g,{logger:this.logger,tryNextLink:!1})}throw new Sl.CredentialsProviderError(`Failed to refresh token: ${String(d)}. Please re-authenticate using aws login`,{logger:this.logger})}}async loadToken(){let e=this.getTokenFilePath();try{let r;try{r=await sz.readFile(e,{ignoreCache:this.init?.ignoreCache})}catch{r=await rz.promises.readFile(e,"utf8")}let n=JSON.parse(r),s=["accessToken","clientId","refreshToken","dpopKey"].filter(o=>!n[o]);if(n.accessToken?.accountId||s.push("accountId"),s.length>0)throw new Sl.CredentialsProviderError(`Token validation failed, missing fields: ${s.join(", ")}`,{logger:this.logger,tryNextLink:!1});return n}catch(r){throw new Sl.CredentialsProviderError(`Failed to load token from ${e}: ${String(r)}`,{logger:this.logger,tryNextLink:!1})}}async saveToken(e){let r=this.getTokenFilePath(),n=nz.dirname(r);try{await rz.promises.mkdir(n,{recursive:!0})}catch{}await rz.promises.writeFile(r,JSON.stringify(e,null,2),"utf8")}getTokenFilePath(){let e=process.env.AWS_LOGIN_CACHE_DIRECTORY??nz.join(_ft.homedir(),".aws","login","cache"),r=Buffer.from(this.loginSession,"utf8"),n=qw.createHash("sha256").update(r).digest("hex");return nz.join(e,`${n}.json`)}derToRawSignature(e){let r=2;if(e[r]!==2)throw new Error("Invalid DER signature");r++;let n=e[r++],s=e.subarray(r,r+n);if(r+=n,e[r]!==2)throw new Error("Invalid DER signature");r++;let o=e[r++],i=e.subarray(r,r+o);s=s[0]===0?s.subarray(1):s,i=i[0]===0?i.subarray(1):i;let a=Buffer.concat([Buffer.alloc(32-s.length),s]),c=Buffer.concat([Buffer.alloc(32-i.length),i]);return Buffer.concat([a,c])}createDPoPInterceptor(e){e.add(r=>async n=>{if(yft.HttpRequest.isInstance(n.request)){let s=n.request,o=`${s.protocol}//${s.hostname}${s.port?`:${s.port}`:""}${s.path}`,i=await this.generateDpop(s.method,o);s.headers={...s.headers,DPoP:i}}return r(n)},{step:"finalizeRequest",name:"dpopInterceptor",override:!0})}async generateDpop(e="POST",r){let n=await this.loadToken();try{let s=qw.createPrivateKey({key:n.dpopKey,format:"pem",type:"sec1"}),i=qw.createPublicKey(s).export({format:"der",type:"spki"}),a=-1;for(let M=0;Masync({callerClientConfig:e}={})=>{t?.logger?.debug?.("@aws-sdk/credential-providers - fromLoginCredentials");let r=await sz.parseKnownFiles(t||{}),n=sz.getProfileName({profile:t?.profile??e?.profile}),s=r[n];if(!s?.login_session)throw new Sl.CredentialsProviderError(`Profile ${n} does not contain login_session.`,{tryNextLink:!0,logger:t?.logger});let i=await new oz(s,t,e).loadCredentials();return Eft.setCredentialFeature(i,"CREDENTIALS_LOGIN","AD")};UCe.fromLoginCredentials=Cft});function Rft(t){return{schemeId:"aws.auth#sigv4",signingProperties:{name:"sts",region:t.region},propertiesExtractor:(e,r)=>({signingProperties:{config:e,context:r}})}}function vft(t){return{schemeId:"smithy.api#noAuth"}}var __,$Ce,GCe,xft,jCe,iz=_(()=>{Dt();__=require("@smithy/util-middleware");C_();$Ce=async(t,e,r)=>({operation:(0,__.getSmithyContext)(e).operation,region:await(0,__.normalizeProvider)(t.region)()||(()=>{throw new Error("expected `region` to be configured for `aws.auth#sigv4`")})()});GCe=t=>{let e=[];switch(t.operation){case"AssumeRoleWithWebIdentity":{e.push(vft(t));break}default:e.push(Rft(t))}return e},xft=t=>Object.assign(t,{stsClientCtor:Ma}),jCe=t=>{let e=xft(t),r=Nc(e);return Object.assign(r,{authSchemePreference:(0,__.normalizeProvider)(t.authSchemePreference??[])})}});var VCe,$w,Gw=_(()=>{VCe=t=>Object.assign(t,{useDualstackEndpoint:t.useDualstackEndpoint??!1,useFipsEndpoint:t.useFipsEndpoint??!1,useGlobalEndpoint:t.useGlobalEndpoint??!1,defaultSigningName:"sts"}),$w={UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}});var t0e,Ge,lt,dt,yl,El,un,r0e,n0e,s0e,Xt,HCe,Fa,pf,cz,zCe,az,o0e,WCe,ln,KCe,i0e,a0e,Nn,Zs,QCe,c0e,u0e,XCe,l0e,JCe,YCe,ZCe,e0e,Pft,d0e,p0e=_(()=>{t0e="required",Ge="type",lt="fn",dt="argv",yl="ref",El="booleanEquals",un="stringEquals",r0e="sigv4",n0e="sts",s0e="us-east-1",Xt="endpoint",HCe="https://sts.{Region}.{PartitionResult#dnsSuffix}",Fa="tree",pf="error",cz="getAttr",zCe={[t0e]:!1,[Ge]:"string"},az={[t0e]:!0,default:!1,[Ge]:"boolean"},o0e={[yl]:"Endpoint"},WCe={[lt]:"isSet",[dt]:[{[yl]:"Region"}]},ln={[yl]:"Region"},KCe={[lt]:"aws.partition",[dt]:[ln],assign:"PartitionResult"},i0e={[yl]:"UseFIPS"},a0e={[yl]:"UseDualStack"},Nn={url:"https://sts.amazonaws.com",properties:{authSchemes:[{name:r0e,signingName:n0e,signingRegion:s0e}]},headers:{}},Zs={},QCe={conditions:[{[lt]:un,[dt]:[ln,"aws-global"]}],[Xt]:Nn,[Ge]:Xt},c0e={[lt]:El,[dt]:[i0e,!0]},u0e={[lt]:El,[dt]:[a0e,!0]},XCe={[lt]:cz,[dt]:[{[yl]:"PartitionResult"},"supportsFIPS"]},l0e={[yl]:"PartitionResult"},JCe={[lt]:El,[dt]:[!0,{[lt]:cz,[dt]:[l0e,"supportsDualStack"]}]},YCe=[{[lt]:"isSet",[dt]:[o0e]}],ZCe=[c0e],e0e=[u0e],Pft={version:"1.0",parameters:{Region:zCe,UseDualStack:az,UseFIPS:az,Endpoint:zCe,UseGlobalEndpoint:az},rules:[{conditions:[{[lt]:El,[dt]:[{[yl]:"UseGlobalEndpoint"},!0]},{[lt]:"not",[dt]:YCe},WCe,KCe,{[lt]:El,[dt]:[i0e,!1]},{[lt]:El,[dt]:[a0e,!1]}],rules:[{conditions:[{[lt]:un,[dt]:[ln,"ap-northeast-1"]}],endpoint:Nn,[Ge]:Xt},{conditions:[{[lt]:un,[dt]:[ln,"ap-south-1"]}],endpoint:Nn,[Ge]:Xt},{conditions:[{[lt]:un,[dt]:[ln,"ap-southeast-1"]}],endpoint:Nn,[Ge]:Xt},{conditions:[{[lt]:un,[dt]:[ln,"ap-southeast-2"]}],endpoint:Nn,[Ge]:Xt},QCe,{conditions:[{[lt]:un,[dt]:[ln,"ca-central-1"]}],endpoint:Nn,[Ge]:Xt},{conditions:[{[lt]:un,[dt]:[ln,"eu-central-1"]}],endpoint:Nn,[Ge]:Xt},{conditions:[{[lt]:un,[dt]:[ln,"eu-north-1"]}],endpoint:Nn,[Ge]:Xt},{conditions:[{[lt]:un,[dt]:[ln,"eu-west-1"]}],endpoint:Nn,[Ge]:Xt},{conditions:[{[lt]:un,[dt]:[ln,"eu-west-2"]}],endpoint:Nn,[Ge]:Xt},{conditions:[{[lt]:un,[dt]:[ln,"eu-west-3"]}],endpoint:Nn,[Ge]:Xt},{conditions:[{[lt]:un,[dt]:[ln,"sa-east-1"]}],endpoint:Nn,[Ge]:Xt},{conditions:[{[lt]:un,[dt]:[ln,s0e]}],endpoint:Nn,[Ge]:Xt},{conditions:[{[lt]:un,[dt]:[ln,"us-east-2"]}],endpoint:Nn,[Ge]:Xt},{conditions:[{[lt]:un,[dt]:[ln,"us-west-1"]}],endpoint:Nn,[Ge]:Xt},{conditions:[{[lt]:un,[dt]:[ln,"us-west-2"]}],endpoint:Nn,[Ge]:Xt},{endpoint:{url:HCe,properties:{authSchemes:[{name:r0e,signingName:n0e,signingRegion:"{Region}"}]},headers:Zs},[Ge]:Xt}],[Ge]:Fa},{conditions:YCe,rules:[{conditions:ZCe,error:"Invalid Configuration: FIPS and custom endpoint are not supported",[Ge]:pf},{conditions:e0e,error:"Invalid Configuration: Dualstack and custom endpoint are not supported",[Ge]:pf},{endpoint:{url:o0e,properties:Zs,headers:Zs},[Ge]:Xt}],[Ge]:Fa},{conditions:[WCe],rules:[{conditions:[KCe],rules:[{conditions:[c0e,u0e],rules:[{conditions:[{[lt]:El,[dt]:[!0,XCe]},JCe],rules:[{endpoint:{url:"https://sts-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:Zs,headers:Zs},[Ge]:Xt}],[Ge]:Fa},{error:"FIPS and DualStack are enabled, but this partition does not support one or both",[Ge]:pf}],[Ge]:Fa},{conditions:ZCe,rules:[{conditions:[{[lt]:El,[dt]:[XCe,!0]}],rules:[{conditions:[{[lt]:un,[dt]:[{[lt]:cz,[dt]:[l0e,"name"]},"aws-us-gov"]}],endpoint:{url:"https://sts.{Region}.amazonaws.com",properties:Zs,headers:Zs},[Ge]:Xt},{endpoint:{url:"https://sts-fips.{Region}.{PartitionResult#dnsSuffix}",properties:Zs,headers:Zs},[Ge]:Xt}],[Ge]:Fa},{error:"FIPS is enabled but this partition does not support FIPS",[Ge]:pf}],[Ge]:Fa},{conditions:e0e,rules:[{conditions:[JCe],rules:[{endpoint:{url:"https://sts.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:Zs,headers:Zs},[Ge]:Xt}],[Ge]:Fa},{error:"DualStack is enabled but this partition does not support DualStack",[Ge]:pf}],[Ge]:Fa},QCe,{endpoint:{url:HCe,properties:Zs,headers:Zs},[Ge]:Xt}],[Ge]:Fa}],[Ge]:Fa},{error:"Invalid Configuration: Missing Region",[Ge]:pf}]},d0e=Pft});var m0e,mf,bft,g0e,f0e=_(()=>{m0e=O(Ta()),mf=require("@smithy/util-endpoints");p0e();bft=new mf.EndpointCache({size:50,params:["Endpoint","Region","UseDualStack","UseFIPS","UseGlobalEndpoint"]}),g0e=(t,e={})=>bft.get(t,()=>(0,mf.resolveEndpoint)(d0e,{endpointParams:t,logger:e.logger}));mf.customEndpointFunctions.aws=m0e.awsEndpointFunctions});var h0e,S0e,E0e,jw,Vw,y0e,_0e=_(()=>{Dt();wa();h0e=require("@smithy/core"),S0e=require("@smithy/smithy-client"),E0e=require("@smithy/url-parser"),jw=require("@smithy/util-base64"),Vw=require("@smithy/util-utf8");iz();f0e();y0e=t=>({apiVersion:"2011-06-15",base64Decoder:t?.base64Decoder??jw.fromBase64,base64Encoder:t?.base64Encoder??jw.toBase64,disableHostPrefix:t?.disableHostPrefix??!1,endpointProvider:t?.endpointProvider??g0e,extensions:t?.extensions??[],httpAuthSchemeProvider:t?.httpAuthSchemeProvider??GCe,httpAuthSchemes:t?.httpAuthSchemes??[{schemeId:"aws.auth#sigv4",identityProvider:e=>e.getIdentityProvider("aws.auth#sigv4"),signer:new An},{schemeId:"smithy.api#noAuth",identityProvider:e=>e.getIdentityProvider("smithy.api#noAuth")||(async()=>({})),signer:new h0e.NoAuthSigner}],logger:t?.logger??new S0e.NoOpLogger,protocol:t?.protocol??new al({defaultNamespace:"com.amazonaws.sts",xmlNamespace:"https://sts.amazonaws.com/doc/2011-06-15/",version:"2011-06-15"}),serviceId:t?.serviceId??"STS",urlParser:t?.urlParser??E0e.parseUrl,utf8Decoder:t?.utf8Decoder??Vw.fromUtf8,utf8Encoder:t?.utf8Encoder??Vw.toUtf8})});var Hw,Cl,C0e,R0e,zw,_l,Ww,Kw,v0e,x0e,P0e,b0e,I0e=_(()=>{xH();Dt();Hw=O(Mc()),Cl=require("@smithy/config-resolver"),C0e=require("@smithy/core"),R0e=require("@smithy/hash-node"),zw=require("@smithy/middleware-retry"),_l=require("@smithy/node-config-provider"),Ww=require("@smithy/node-http-handler"),Kw=require("@smithy/smithy-client"),v0e=require("@smithy/util-body-length-node"),x0e=require("@smithy/util-defaults-mode-node"),P0e=require("@smithy/util-retry");_0e();b0e=t=>{(0,Kw.emitWarningIfUnsupportedVersion)(process.version);let e=(0,x0e.resolveDefaultsModeConfig)(t),r=()=>e().then(Kw.loadConfigsForDefaultMode),n=y0e(t);Zu(process.version);let s={profile:t?.profile,logger:n.logger};return{...n,...t,runtime:"node",defaultsMode:e,authSchemePreference:t?.authSchemePreference??(0,_l.loadConfig)(tl,s),bodyLengthChecker:t?.bodyLengthChecker??v0e.calculateBodyLength,defaultUserAgentProvider:t?.defaultUserAgentProvider??(0,Hw.createDefaultUserAgentProvider)({serviceId:n.serviceId,clientVersion:FT.version}),httpAuthSchemes:t?.httpAuthSchemes??[{schemeId:"aws.auth#sigv4",identityProvider:o=>o.getIdentityProvider("aws.auth#sigv4")||(async i=>await t.credentialDefaultProvider(i?.__config||{})()),signer:new An},{schemeId:"smithy.api#noAuth",identityProvider:o=>o.getIdentityProvider("smithy.api#noAuth")||(async()=>({})),signer:new C0e.NoAuthSigner}],maxAttempts:t?.maxAttempts??(0,_l.loadConfig)(zw.NODE_MAX_ATTEMPT_CONFIG_OPTIONS,t),region:t?.region??(0,_l.loadConfig)(Cl.NODE_REGION_CONFIG_OPTIONS,{...Cl.NODE_REGION_CONFIG_FILE_OPTIONS,...s}),requestHandler:Ww.NodeHttpHandler.create(t?.requestHandler??r),retryMode:t?.retryMode??(0,_l.loadConfig)({...zw.NODE_RETRY_MODE_CONFIG_OPTIONS,default:async()=>(await r()).retryMode||P0e.DEFAULT_RETRY_MODE},t),sha256:t?.sha256??R0e.Hash.bind(null,"sha256"),streamCollector:t?.streamCollector??Ww.streamCollector,useDualstackEndpoint:t?.useDualstackEndpoint??(0,_l.loadConfig)(Cl.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS,s),useFipsEndpoint:t?.useFipsEndpoint??(0,_l.loadConfig)(Cl.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS,s),userAgentAppId:t?.userAgentAppId??(0,_l.loadConfig)(Hw.NODE_APP_ID_CONFIG_OPTIONS,s)}}});var A0e,T0e,w0e=_(()=>{A0e=t=>{let e=t.httpAuthSchemes,r=t.httpAuthSchemeProvider,n=t.credentials;return{setHttpAuthScheme(s){let o=e.findIndex(i=>i.schemeId===s.schemeId);o===-1?e.push(s):e.splice(o,1,s)},httpAuthSchemes(){return e},setHttpAuthSchemeProvider(s){r=s},httpAuthSchemeProvider(){return r},setCredentials(s){n=s},credentials(){return n}}},T0e=t=>({httpAuthSchemes:t.httpAuthSchemes(),httpAuthSchemeProvider:t.httpAuthSchemeProvider(),credentials:t.credentials()})});var Qw,Xw,Jw,D0e,O0e=_(()=>{Qw=O(Na()),Xw=require("@smithy/protocol-http"),Jw=require("@smithy/smithy-client");w0e();D0e=(t,e)=>{let r=Object.assign((0,Qw.getAwsRegionExtensionConfiguration)(t),(0,Jw.getDefaultExtensionConfiguration)(t),(0,Xw.getHttpHandlerExtensionConfiguration)(t),A0e(t));return e.forEach(n=>n.configure(r)),Object.assign(t,(0,Qw.resolveAwsRegionExtensionConfiguration)(r),(0,Jw.resolveDefaultRuntimeConfig)(r),(0,Xw.resolveHttpHandlerRuntimeConfig)(r),T0e(r))}});var Yw,k0e,N0e,Zw,L0e,gf,M0e,F0e,B0e,eD,uz,Ma,C_=_(()=>{Yw=O(wc()),k0e=O(Dc()),N0e=O(Oc()),Zw=O(Oa()),L0e=require("@smithy/config-resolver"),gf=require("@smithy/core"),M0e=require("@smithy/core/schema"),F0e=require("@smithy/middleware-content-length"),B0e=require("@smithy/middleware-endpoint"),eD=require("@smithy/middleware-retry"),uz=require("@smithy/smithy-client");iz();Gw();I0e();O0e();Ma=class extends uz.Client{config;constructor(...[e]){let r=b0e(e||{});super(r),this.initConfig=r;let n=VCe(r),s=(0,Zw.resolveUserAgentConfig)(n),o=(0,eD.resolveRetryConfig)(s),i=(0,L0e.resolveRegionConfig)(o),a=(0,Yw.resolveHostHeaderConfig)(i),c=(0,B0e.resolveEndpointConfig)(a),u=jCe(c),l=D0e(u,e?.extensions||[]);this.config=l,this.middlewareStack.use((0,M0e.getSchemaSerdePlugin)(this.config)),this.middlewareStack.use((0,Zw.getUserAgentPlugin)(this.config)),this.middlewareStack.use((0,eD.getRetryPlugin)(this.config)),this.middlewareStack.use((0,F0e.getContentLengthPlugin)(this.config)),this.middlewareStack.use((0,Yw.getHostHeaderPlugin)(this.config)),this.middlewareStack.use((0,k0e.getLoggerPlugin)(this.config)),this.middlewareStack.use((0,N0e.getRecursionDetectionPlugin)(this.config)),this.middlewareStack.use((0,gf.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config,{httpAuthSchemeParametersProvider:$Ce,identityProviderConfigProvider:async d=>new gf.DefaultIdentityProviderConfig({"aws.auth#sigv4":d.credentials})})),this.middlewareStack.use((0,gf.getHttpSigningPlugin)(this.config))}destroy(){super.destroy()}}});var U0e,fs,tD=_(()=>{U0e=require("@smithy/smithy-client"),fs=class t extends U0e.ServiceException{constructor(e){super(e),Object.setPrototypeOf(this,t.prototype)}}});var R_,v_,x_,P_,b_,I_,A_,lz=_(()=>{tD();R_=class t extends fs{name="ExpiredTokenException";$fault="client";constructor(e){super({name:"ExpiredTokenException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},v_=class t extends fs{name="MalformedPolicyDocumentException";$fault="client";constructor(e){super({name:"MalformedPolicyDocumentException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},x_=class t extends fs{name="PackedPolicyTooLargeException";$fault="client";constructor(e){super({name:"PackedPolicyTooLargeException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},P_=class t extends fs{name="RegionDisabledException";$fault="client";constructor(e){super({name:"RegionDisabledException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},b_=class t extends fs{name="IDPRejectedClaimException";$fault="client";constructor(e){super({name:"IDPRejectedClaimException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},I_=class t extends fs{name="InvalidIdentityTokenException";$fault="client";constructor(e){super({name:"InvalidIdentityTokenException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},A_=class t extends fs{name="IDPCommunicationErrorException";$fault="client";constructor(e){super({name:"IDPCommunicationErrorException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}}});var qc,Ift,Aft,Tft,wft,Dft,Oft,dz,kft,Nft,Lft,Mft,pz,Fft,q0e,Bft,Uft,qft,$ft,Gft,jft,Vft,Hft,$0e,G0e,zft,Wft,Kft,Qft,Xft,Jft,j0e,Yft,Zft,V0e,eht,H0e,tht,rht,mz,nht,sht,oht,iht,aht,cht,uht,lht,dht,pht,Yd,Zd,mht,ep,tp,rp,ght,z0e,fht,_t,hht,Sht,W0e,Eht,yht,_ht,Cht,K0e,Rht,vht,xht,Pht,bht,Iht,Aht,Tht,wht,Dht,Oht,Q0e,kht,Nht,X0e,J0e,gz=_(()=>{qc=require("@smithy/core/schema");lz();tD();Ift="Arn",Aft="AccessKeyId",Tft="AssumeRole",wft="AssumedRoleId",Dft="AssumeRoleRequest",Oft="AssumeRoleResponse",dz="AssumedRoleUser",kft="AssumeRoleWithWebIdentity",Nft="AssumeRoleWithWebIdentityRequest",Lft="AssumeRoleWithWebIdentityResponse",Mft="Audience",pz="Credentials",Fft="ContextAssertion",q0e="DurationSeconds",Bft="Expiration",Uft="ExternalId",qft="ExpiredTokenException",$ft="IDPCommunicationErrorException",Gft="IDPRejectedClaimException",jft="InvalidIdentityTokenException",Vft="Key",Hft="MalformedPolicyDocumentException",$0e="Policy",G0e="PolicyArns",zft="ProviderArn",Wft="ProvidedContexts",Kft="ProvidedContextsListType",Qft="ProvidedContext",Xft="PolicyDescriptorType",Jft="ProviderId",j0e="PackedPolicySize",Yft="PackedPolicyTooLargeException",Zft="Provider",V0e="RoleArn",eht="RegionDisabledException",H0e="RoleSessionName",tht="SecretAccessKey",rht="SubjectFromWebIdentityToken",mz="SourceIdentity",nht="SerialNumber",sht="SessionToken",oht="Tags",iht="TokenCode",aht="TransitiveTagKeys",cht="Tag",uht="Value",lht="WebIdentityToken",dht="arn",pht="accessKeySecretType",Yd="awsQueryError",Zd="client",mht="clientTokenType",ep="error",tp="httpError",rp="message",ght="policyDescriptorListType",z0e="smithy.ts.sdk.synthetic.com.amazonaws.sts",fht="tagListType",_t="com.amazonaws.sts",hht=[0,_t,pht,8,0],Sht=[0,_t,mht,8,0],W0e=[3,_t,dz,0,[wft,Ift],[0,0]],Eht=[3,_t,Dft,0,[V0e,H0e,G0e,$0e,q0e,oht,aht,Uft,nht,iht,mz,Wft],[0,0,()=>Q0e,0,1,()=>Nht,64,0,0,0,0,()=>kht]],yht=[3,_t,Oft,0,[pz,dz,j0e,mz],[[()=>K0e,0],()=>W0e,1,0]],_ht=[3,_t,Nft,0,[V0e,H0e,lht,Jft,G0e,$0e,q0e],[0,0,[()=>Sht,0],0,()=>Q0e,0,1]],Cht=[3,_t,Lft,0,[pz,rht,dz,j0e,Zft,Mft,mz],[[()=>K0e,0],0,()=>W0e,1,0,0,0]],K0e=[3,_t,pz,0,[Aft,tht,sht,Bft],[0,[()=>hht,0],0,4]],Rht=[-3,_t,qft,{[ep]:Zd,[tp]:400,[Yd]:["ExpiredTokenException",400]},[rp],[0]];qc.TypeRegistry.for(_t).registerError(Rht,R_);vht=[-3,_t,$ft,{[ep]:Zd,[tp]:400,[Yd]:["IDPCommunicationError",400]},[rp],[0]];qc.TypeRegistry.for(_t).registerError(vht,A_);xht=[-3,_t,Gft,{[ep]:Zd,[tp]:403,[Yd]:["IDPRejectedClaim",403]},[rp],[0]];qc.TypeRegistry.for(_t).registerError(xht,b_);Pht=[-3,_t,jft,{[ep]:Zd,[tp]:400,[Yd]:["InvalidIdentityToken",400]},[rp],[0]];qc.TypeRegistry.for(_t).registerError(Pht,I_);bht=[-3,_t,Hft,{[ep]:Zd,[tp]:400,[Yd]:["MalformedPolicyDocument",400]},[rp],[0]];qc.TypeRegistry.for(_t).registerError(bht,v_);Iht=[-3,_t,Yft,{[ep]:Zd,[tp]:400,[Yd]:["PackedPolicyTooLarge",400]},[rp],[0]];qc.TypeRegistry.for(_t).registerError(Iht,x_);Aht=[3,_t,Xft,0,[dht],[0]],Tht=[3,_t,Qft,0,[zft,Fft],[0,0]],wht=[-3,_t,eht,{[ep]:Zd,[tp]:403,[Yd]:["RegionDisabledException",403]},[rp],[0]];qc.TypeRegistry.for(_t).registerError(wht,P_);Dht=[3,_t,cht,0,[Vft,uht],[0,0]],Oht=[-3,z0e,"STSServiceException",0,[],[]];qc.TypeRegistry.for(z0e).registerError(Oht,fs);Q0e=[1,_t,ght,0,()=>Aht],kht=[1,_t,Kft,0,()=>Tht],Nht=[1,_t,fht,0,()=>Dht],X0e=[9,_t,Tft,0,()=>Eht,()=>yht],J0e=[9,_t,kft,0,()=>_ht,()=>Cht]});var Y0e,Z0e,np,rD=_(()=>{Y0e=require("@smithy/middleware-endpoint"),Z0e=require("@smithy/smithy-client");Gw();gz();np=class extends Z0e.Command.classBuilder().ep($w).m(function(e,r,n,s){return[(0,Y0e.getEndpointPlugin)(n,e.getEndpointParameterInstructions())]}).s("AWSSecurityTokenServiceV20110615","AssumeRole",{}).n("STSClient","AssumeRoleCommand").sc(X0e).build(){}});var eRe,tRe,sp,nD=_(()=>{eRe=require("@smithy/middleware-endpoint"),tRe=require("@smithy/smithy-client");Gw();gz();sp=class extends tRe.Command.classBuilder().ep($w).m(function(e,r,n,s){return[(0,eRe.getEndpointPlugin)(n,e.getEndpointParameterInstructions())]}).s("AWSSecurityTokenServiceV20110615","AssumeRoleWithWebIdentity",{}).n("STSClient","AssumeRoleWithWebIdentityCommand").sc(J0e).build(){}});var rRe,Lht,sD,nRe=_(()=>{rRe=require("@smithy/smithy-client");rD();nD();C_();Lht={AssumeRoleCommand:np,AssumeRoleWithWebIdentityCommand:sp},sD=class extends Ma{};(0,rRe.createAggregatedClient)(Lht,sD)});var sRe=_(()=>{rD();nD()});var oRe,iRe,aRe,cRe,uRe,lRe,dRe=_(()=>{Bo();oRe=O(Na());rD();nD();iRe=t=>{if(typeof t?.Arn=="string"){let e=t.Arn.split(":");if(e.length>4&&e[4]!=="")return e[4]}},aRe=async(t,e,r,n={})=>{let s=typeof t=="function"?await t():t,o=typeof e=="function"?await e():e,i="",a=s??o??(i=await(0,oRe.stsRegionDefaultResolver)(n)());return r?.debug?.("@aws-sdk/client-sts::resolveRegion","accepting first of:",`${s} (credential provider clientConfig)`,`${o} (contextual client)`,`${i} (STS default: AWS_REGION, profile region, or us-east-1)`),a},cRe=(t,e)=>{let r,n;return async(s,o)=>{if(n=s,!r){let{logger:l=t?.parentClientConfig?.logger,profile:d=t?.parentClientConfig?.profile,region:p,requestHandler:g=t?.parentClientConfig?.requestHandler,credentialProviderLogger:y,userAgentAppId:R=t?.parentClientConfig?.userAgentAppId}=t,D=await aRe(p,t?.parentClientConfig?.region,y,{logger:l,profile:d}),B=!lRe(g);r=new e({...t,userAgentAppId:R,profile:d,credentialDefaultProvider:()=>async()=>n,region:D,requestHandler:B?g:void 0,logger:l})}let{Credentials:i,AssumedRoleUser:a}=await r.send(new np(o));if(!i||!i.AccessKeyId||!i.SecretAccessKey)throw new Error(`Invalid response from STS.assumeRole call with role ${o.RoleArn}`);let c=iRe(a),u={accessKeyId:i.AccessKeyId,secretAccessKey:i.SecretAccessKey,sessionToken:i.SessionToken,expiration:i.Expiration,...i.CredentialScope&&{credentialScope:i.CredentialScope},...c&&{accountId:c}};return el(u,"CREDENTIALS_STS_ASSUME_ROLE","i"),u}},uRe=(t,e)=>{let r;return async n=>{if(!r){let{logger:c=t?.parentClientConfig?.logger,profile:u=t?.parentClientConfig?.profile,region:l,requestHandler:d=t?.parentClientConfig?.requestHandler,credentialProviderLogger:p,userAgentAppId:g=t?.parentClientConfig?.userAgentAppId}=t,y=await aRe(l,t?.parentClientConfig?.region,p,{logger:c,profile:u}),R=!lRe(d);r=new e({...t,userAgentAppId:g,profile:u,region:y,requestHandler:R?d:void 0,logger:c})}let{Credentials:s,AssumedRoleUser:o}=await r.send(new sp(n));if(!s||!s.AccessKeyId||!s.SecretAccessKey)throw new Error(`Invalid response from STS.assumeRoleWithWebIdentity call with role ${n.RoleArn}`);let i=iRe(o),a={accessKeyId:s.AccessKeyId,secretAccessKey:s.SecretAccessKey,sessionToken:s.SessionToken,expiration:s.Expiration,...s.CredentialScope&&{credentialScope:s.CredentialScope},...i&&{accountId:i}};return i&&el(a,"RESOLVED_ACCOUNT_ID","T"),el(a,"CREDENTIALS_STS_ASSUME_ROLE_WEB_ID","k"),a}},lRe=t=>t?.metadata?.handlerProtocol==="h2"});var pRe,mRe,gRe,Mht,fRe=_(()=>{dRe();C_();pRe=(t,e)=>e?class extends t{constructor(n){super(n);for(let s of e)this.middlewareStack.use(s)}}:t,mRe=(t={},e)=>cRe(t,pRe(Ma,e)),gRe=(t={},e)=>uRe(t,pRe(Ma,e)),Mht=t=>e=>t({roleAssumer:mRe(e),roleAssumerWithWebIdentity:gRe(e),...e})});var fz={};wt(fz,{AssumeRoleCommand:()=>np,AssumeRoleWithWebIdentityCommand:()=>sp,ExpiredTokenException:()=>R_,IDPCommunicationErrorException:()=>A_,IDPRejectedClaimException:()=>b_,InvalidIdentityTokenException:()=>I_,MalformedPolicyDocumentException:()=>v_,PackedPolicyTooLargeException:()=>x_,RegionDisabledException:()=>P_,STS:()=>sD,STSClient:()=>Ma,STSServiceException:()=>fs,__Client:()=>uz.Client,decorateDefaultCredentialProvider:()=>Mht,getDefaultRoleAssumer:()=>mRe,getDefaultRoleAssumerWithWebIdentity:()=>gRe});var hz=_(()=>{C_();nRe();sRe();lz();fRe();tD()});var yz=b(hRe=>{"use strict";var Ez=require("@smithy/shared-ini-file-loader"),Sz=require("@smithy/property-provider"),Fht=require("child_process"),Bht=require("util"),Uht=(Bo(),ue(kc)),qht=(t,e,r)=>{if(e.Version!==1)throw Error(`Profile ${t} credential_process did not return Version 1.`);if(e.AccessKeyId===void 0||e.SecretAccessKey===void 0)throw Error(`Profile ${t} credential_process returned invalid credentials.`);if(e.Expiration){let o=new Date;if(new Date(e.Expiration){let n=e[t];if(e[t]){let s=n.credential_process;if(s!==void 0){let o=Bht.promisify(Ez.externalDataInterceptor?.getTokenRecord?.().exec??Fht.exec);try{let{stdout:i}=await o(s),a;try{a=JSON.parse(i.trim())}catch{throw Error(`Profile ${t} credential_process returned invalid JSON.`)}return qht(t,a,e)}catch(i){throw new Sz.CredentialsProviderError(i.message,{logger:r})}}else throw new Sz.CredentialsProviderError(`Profile ${t} did not contain credential_process.`,{logger:r})}else throw new Sz.CredentialsProviderError(`Profile ${t} could not be found in shared credentials file.`,{logger:r})},Ght=(t={})=>async({callerClientConfig:e}={})=>{t.logger?.debug("@aws-sdk/credential-provider-process - fromProcess");let r=await Ez.parseKnownFiles(t);return $ht(Ez.getProfileName({profile:t.profile??e?.profile}),r,t.logger)};hRe.fromProcess=Ght});var _z=b(Ba=>{"use strict";var jht=Ba&&Ba.__createBinding||(Object.create?function(t,e,r,n){n===void 0&&(n=r);var s=Object.getOwnPropertyDescriptor(e,r);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,n,s)}:function(t,e,r,n){n===void 0&&(n=r),t[n]=e[r]}),Vht=Ba&&Ba.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Hht=Ba&&Ba.__importStar||function(){var t=function(e){return t=Object.getOwnPropertyNames||function(r){var n=[];for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(n[n.length]=s);return n},t(e)};return function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var n=t(e),s=0;sasync e=>{t.logger?.debug("@aws-sdk/credential-provider-web-identity - fromWebToken");let{roleArn:r,roleSessionName:n,webIdentityToken:s,providerId:o,policyArns:i,policy:a,durationSeconds:c}=t,{roleAssumerWithWebIdentity:u}=t;if(!u){let{getDefaultRoleAssumerWithWebIdentity:l}=await Promise.resolve().then(()=>Hht((hz(),ue(fz))));u=l({...t.clientConfig,credentialProviderLogger:t.logger,parentClientConfig:{...e?.callerClientConfig,...t.parentClientConfig}},t.clientPlugins)}return u({RoleArn:r,RoleSessionName:n??`aws-sdk-js-session-${Date.now()}`,WebIdentityToken:s,ProviderId:o,PolicyArns:i,Policy:a,DurationSeconds:c})};Ba.fromWebToken=zht});var ERe=b(oD=>{"use strict";Object.defineProperty(oD,"__esModule",{value:!0});oD.fromTokenFile=void 0;var Wht=(Bo(),ue(kc)),Kht=require("@smithy/property-provider"),Qht=require("@smithy/shared-ini-file-loader"),Xht=require("fs"),Jht=_z(),SRe="AWS_WEB_IDENTITY_TOKEN_FILE",Yht="AWS_ROLE_ARN",Zht="AWS_ROLE_SESSION_NAME",eSt=(t={})=>async e=>{t.logger?.debug("@aws-sdk/credential-provider-web-identity - fromTokenFile");let r=t?.webIdentityTokenFile??process.env[SRe],n=t?.roleArn??process.env[Yht],s=t?.roleSessionName??process.env[Zht];if(!r||!n)throw new Kht.CredentialsProviderError("Web identity configuration not specified",{logger:t.logger});let o=await(0,Jht.fromWebToken)({...t,webIdentityToken:Qht.externalDataInterceptor?.getTokenRecord?.()[r]??(0,Xht.readFileSync)(r,{encoding:"ascii"}),roleArn:n,roleSessionName:s})(e);return r===process.env[SRe]&&(0,Wht.setCredentialFeature)(o,"CREDENTIALS_ENV_VARS_STS_WEB_ID_TOKEN","h"),o};oD.fromTokenFile=eSt});var Cz=b(T_=>{"use strict";var yRe=ERe(),_Re=_z();Object.keys(yRe).forEach(function(t){t!=="default"&&!Object.prototype.hasOwnProperty.call(T_,t)&&Object.defineProperty(T_,t,{enumerable:!0,get:function(){return yRe[t]}})});Object.keys(_Re).forEach(function(t){t!=="default"&&!Object.prototype.hasOwnProperty.call(T_,t)&&Object.defineProperty(T_,t,{enumerable:!0,get:function(){return _Re[t]}})})});var bRe=b(PRe=>{"use strict";var vz=require("@smithy/shared-ini-file-loader"),w_=require("@smithy/property-provider"),$c=(Bo(),ue(kc)),tSt=qCe(),rSt=(t,e,r)=>{let n={EcsContainer:async s=>{let{fromHttp:o}=await Promise.resolve().then(()=>O(CH())),{fromContainerMetadata:i}=await import("@smithy/credential-provider-imds");return r?.debug("@aws-sdk/credential-provider-ini - credential_source is EcsContainer"),async()=>w_.chain(o(s??{}),i(s))().then(Rz)},Ec2InstanceMetadata:async s=>{r?.debug("@aws-sdk/credential-provider-ini - credential_source is Ec2InstanceMetadata");let{fromInstanceMetadata:o}=await import("@smithy/credential-provider-imds");return async()=>o(s)().then(Rz)},Environment:async s=>{r?.debug("@aws-sdk/credential-provider-ini - credential_source is Environment");let{fromEnv:o}=await Promise.resolve().then(()=>O(yH()));return async()=>o(s)().then(Rz)}};if(t in n)return n[t];throw new w_.CredentialsProviderError(`Unsupported credential source in profile ${e}. Got ${t}, expected EcsContainer or Ec2InstanceMetadata or Environment.`,{logger:r})},Rz=t=>$c.setCredentialFeature(t,"CREDENTIALS_PROFILE_NAMED_PROVIDER","p"),nSt=(t,{profile:e="default",logger:r}={})=>!!t&&typeof t=="object"&&typeof t.role_arn=="string"&&["undefined","string"].indexOf(typeof t.role_session_name)>-1&&["undefined","string"].indexOf(typeof t.external_id)>-1&&["undefined","string"].indexOf(typeof t.mfa_serial)>-1&&(sSt(t,{profile:e,logger:r})||oSt(t,{profile:e,logger:r})),sSt=(t,{profile:e,logger:r})=>{let n=typeof t.source_profile=="string"&&typeof t.credential_source>"u";return n&&r?.debug?.(` ${e} isAssumeRoleWithSourceProfile source_profile=${t.source_profile}`),n},oSt=(t,{profile:e,logger:r})=>{let n=typeof t.credential_source=="string"&&typeof t.source_profile>"u";return n&&r?.debug?.(` ${e} isCredentialSourceProfile credential_source=${t.credential_source}`),n},iSt=async(t,e,r,n,s={},o)=>{r.logger?.debug("@aws-sdk/credential-provider-ini - resolveAssumeRoleCredentials (STS)");let i=e[t],{source_profile:a,region:c}=i;if(!r.roleAssumer){let{getDefaultRoleAssumer:l}=await Promise.resolve().then(()=>(hz(),fz));r.roleAssumer=l({...r.clientConfig,credentialProviderLogger:r.logger,parentClientConfig:{...n,...r?.parentClientConfig,region:c??r?.parentClientConfig?.region??n?.region}},r.clientPlugins)}if(a&&a in s)throw new w_.CredentialsProviderError(`Detected a cycle attempting to resolve credentials for profile ${vz.getProfileName(r)}. Profiles visited: `+Object.keys(s).join(", "),{logger:r.logger});r.logger?.debug(`@aws-sdk/credential-provider-ini - finding credential resolver using ${a?`source_profile=[${a}]`:`profile=[${t}]`}`);let u=a?o(a,e,r,n,{...s,[a]:!0},CRe(e[a]??{})):(await rSt(i.credential_source,t,r.logger)(r))();if(CRe(i))return u.then(l=>$c.setCredentialFeature(l,"CREDENTIALS_PROFILE_SOURCE_PROFILE","o"));{let l={RoleArn:i.role_arn,RoleSessionName:i.role_session_name||`aws-sdk-js-${Date.now()}`,ExternalId:i.external_id,DurationSeconds:parseInt(i.duration_seconds||"3600",10)},{mfa_serial:d}=i;if(d){if(!r.mfaCodeProvider)throw new w_.CredentialsProviderError(`Profile ${t} requires multi-factor authentication, but no MFA code callback was provided.`,{logger:r.logger,tryNextLink:!1});l.SerialNumber=d,l.TokenCode=await r.mfaCodeProvider(d)}let p=await u;return r.roleAssumer(p,l).then(g=>$c.setCredentialFeature(g,"CREDENTIALS_PROFILE_SOURCE_PROFILE","o"))}},CRe=t=>!t.role_arn&&!!t.credential_source,aSt=t=>!!(t&&t.login_session),cSt=async(t,e,r)=>{let n=await tSt.fromLoginCredentials({...e,profile:t})({callerClientConfig:r});return $c.setCredentialFeature(n,"CREDENTIALS_PROFILE_LOGIN","AC")},uSt=t=>!!t&&typeof t=="object"&&typeof t.credential_process=="string",lSt=async(t,e)=>Promise.resolve().then(()=>O(yz())).then(({fromProcess:r})=>r({...t,profile:e})().then(n=>$c.setCredentialFeature(n,"CREDENTIALS_PROFILE_PROCESS","v"))),dSt=async(t,e,r={},n)=>{let{fromSSO:s}=await Promise.resolve().then(()=>O(GH()));return s({profile:t,logger:r.logger,parentClientConfig:r.parentClientConfig,clientConfig:r.clientConfig})({callerClientConfig:n}).then(o=>e.sso_session?$c.setCredentialFeature(o,"CREDENTIALS_PROFILE_SSO","r"):$c.setCredentialFeature(o,"CREDENTIALS_PROFILE_SSO_LEGACY","t"))},pSt=t=>t&&(typeof t.sso_start_url=="string"||typeof t.sso_account_id=="string"||typeof t.sso_session=="string"||typeof t.sso_region=="string"||typeof t.sso_role_name=="string"),RRe=t=>!!t&&typeof t=="object"&&typeof t.aws_access_key_id=="string"&&typeof t.aws_secret_access_key=="string"&&["undefined","string"].indexOf(typeof t.aws_session_token)>-1&&["undefined","string"].indexOf(typeof t.aws_account_id)>-1,vRe=async(t,e)=>{e?.logger?.debug("@aws-sdk/credential-provider-ini - resolveStaticCredentials");let r={accessKeyId:t.aws_access_key_id,secretAccessKey:t.aws_secret_access_key,sessionToken:t.aws_session_token,...t.aws_credential_scope&&{credentialScope:t.aws_credential_scope},...t.aws_account_id&&{accountId:t.aws_account_id}};return $c.setCredentialFeature(r,"CREDENTIALS_PROFILE","n")},mSt=t=>!!t&&typeof t=="object"&&typeof t.web_identity_token_file=="string"&&typeof t.role_arn=="string"&&["undefined","string"].indexOf(typeof t.role_session_name)>-1,gSt=async(t,e,r)=>Promise.resolve().then(()=>O(Cz())).then(({fromTokenFile:n})=>n({webIdentityTokenFile:t.web_identity_token_file,roleArn:t.role_arn,roleSessionName:t.role_session_name,roleAssumerWithWebIdentity:e.roleAssumerWithWebIdentity,logger:e.logger,parentClientConfig:e.parentClientConfig})({callerClientConfig:r}).then(s=>$c.setCredentialFeature(s,"CREDENTIALS_PROFILE_STS_WEB_ID_TOKEN","q"))),xRe=async(t,e,r,n,s={},o=!1)=>{let i=e[t];if(Object.keys(s).length>0&&RRe(i))return vRe(i,r);if(o||nSt(i,{profile:t,logger:r.logger}))return iSt(t,e,r,n,s,xRe);if(RRe(i))return vRe(i,r);if(mSt(i))return gSt(i,r,n);if(uSt(i))return lSt(r,t);if(pSt(i))return await dSt(t,i,r,n);if(aSt(i))return cSt(t,r,n);throw new w_.CredentialsProviderError(`Could not resolve credentials using profile: [${t}] in configuration/credentials file(s).`,{logger:r.logger})},fSt=(t={})=>async({callerClientConfig:e}={})=>{t.logger?.debug("@aws-sdk/credential-provider-ini - fromIni");let r=await vz.parseKnownFiles(t);return xRe(vz.getProfileName({profile:t.profile??e?.profile}),r,t,e)};PRe.fromIni=fSt});var O_=b(iD=>{"use strict";var xz=yH(),D_=require("@smithy/property-provider"),hSt=require("@smithy/shared-ini-file-loader"),IRe="AWS_EC2_METADATA_DISABLED",SSt=async t=>{let{ENV_CMDS_FULL_URI:e,ENV_CMDS_RELATIVE_URI:r,fromContainerMetadata:n,fromInstanceMetadata:s}=await import("@smithy/credential-provider-imds");if(process.env[r]||process.env[e]){t.logger?.debug("@aws-sdk/credential-provider-node - remoteProvider::fromHttp/fromContainerMetadata");let{fromHttp:o}=await Promise.resolve().then(()=>O(CH()));return D_.chain(o(t),n(t))}return process.env[IRe]&&process.env[IRe]!=="false"?async()=>{throw new D_.CredentialsProviderError("EC2 Instance Metadata Service access disabled",{logger:t.logger})}:(t.logger?.debug("@aws-sdk/credential-provider-node - remoteProvider::fromInstanceMetadata"),s(t))};function ESt(t,e){let r=ySt(t),n,s,o,i=async a=>{if(a?.forceRefresh)return await r(a);if(o?.expiration&&o?.expiration?.getTime(){o=c,s=void 0}));else return n=r(a).then(c=>{o=c,n=void 0}),i(a);return o};return i}var ySt=t=>async e=>{let r;for(let n of t)try{return await n(e)}catch(s){if(r=s,s?.tryNextLink)continue;throw s}throw r},ARe=!1,_St=(t={})=>ESt([async()=>{if(t.profile??process.env[hSt.ENV_PROFILE])throw process.env[xz.ENV_KEY]&&process.env[xz.ENV_SECRET]&&(ARe||((t.logger?.warn&&t.logger?.constructor?.name!=="NoOpLogger"?t.logger.warn.bind(t.logger):console.warn)(`@aws-sdk/credential-provider-node - defaultProvider::fromEnv WARNING: + Multiple credential sources detected: + Both AWS_PROFILE and the pair AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY static credentials are set. + This SDK will proceed with the AWS_PROFILE value. + + However, a future version may change this behavior to prefer the ENV static credentials. + Please ensure that your environment only sets either the AWS_PROFILE or the + AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY pair. +`),ARe=!0)),new D_.CredentialsProviderError("AWS_PROFILE is set, skipping fromEnv provider.",{logger:t.logger,tryNextLink:!0});return t.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromEnv"),xz.fromEnv(t)()},async e=>{t.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromSSO");let{ssoStartUrl:r,ssoAccountId:n,ssoRegion:s,ssoRoleName:o,ssoSession:i}=t;if(!r&&!n&&!s&&!o&&!i)throw new D_.CredentialsProviderError("Skipping SSO provider in default chain (inputs do not include SSO fields).",{logger:t.logger});let{fromSSO:a}=await Promise.resolve().then(()=>O(GH()));return a(t)(e)},async e=>{t.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromIni");let{fromIni:r}=await Promise.resolve().then(()=>O(bRe()));return r(t)(e)},async e=>{t.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromProcess");let{fromProcess:r}=await Promise.resolve().then(()=>O(yz()));return r(t)(e)},async e=>{t.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromTokenFile");let{fromTokenFile:r}=await Promise.resolve().then(()=>O(Cz()));return r(t)(e)},async()=>(t.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::remoteProvider"),(await SSt(t))()),async()=>{throw new D_.CredentialsProviderError("Could not load credentials from any providers",{tryNextLink:!1,logger:t.logger})}],TRe),CSt=t=>t?.expiration!==void 0,TRe=t=>t?.expiration!==void 0&&t.expiration.getTime()-Date.now()<3e5;iD.credentialsTreatedAsExpired=TRe;iD.credentialsWillNeedRefresh=CSt;iD.defaultProvider=_St});var jRe=b(uD=>{"use strict";Object.defineProperty(uD,"__esModule",{value:!0});uD.ruleSet=void 0;var GRe="required",hs="fn",Ss="argv",Gc="ref",N_="properties",L_="headers",wRe=!0,RSt=!1,DRe="isSet",ip="booleanEquals",ff="error",op="endpoint",qi="tree",cD="PartitionResult",ORe={[GRe]:!0,default:!1,type:"boolean"},kRe={[GRe]:!1,type:"string"},NRe={[Gc]:"Endpoint"},k_={[hs]:ip,[Ss]:[{[Gc]:"UseFIPS"},!0]},vSt={[Gc]:"UseFIPS"},aD={[hs]:ip,[Ss]:[{[Gc]:"UseDualStack"},!0]},hf={},LRe={[hs]:"stringEquals",[Ss]:[{[hs]:"getAttr",[Ss]:[{[Gc]:cD},"name"]},"aws-us-gov"]},MRe={[hs]:ip,[Ss]:[{[Gc]:"UseDualStack"},!1]},FRe={url:"https://monitoring.{Region}.{PartitionResult#dnsSuffix}",[N_]:{},[L_]:{}},BRe={url:"https://monitoring.{Region}.{PartitionResult#dualStackDnsSuffix}",[N_]:{},[L_]:{}},URe={[hs]:"getAttr",[Ss]:[{[Gc]:cD},"supportsFIPS"]},qRe={[hs]:ip,[Ss]:[!0,{[hs]:"getAttr",[Ss]:[{[Gc]:cD},"supportsDualStack"]}]},$Re=[{[Gc]:"Region"}],xSt={version:"1.0",parameters:{UseDualStack:ORe,UseFIPS:ORe,Endpoint:kRe,Region:kRe},rules:[{conditions:[{[hs]:DRe,[Ss]:[NRe]}],rules:[{conditions:[k_],error:"Invalid Configuration: FIPS and custom endpoint are not supported",type:ff},{rules:[{conditions:[aD],error:"Invalid Configuration: Dualstack and custom endpoint are not supported",type:ff},{endpoint:{url:NRe,[N_]:hf,[L_]:hf},type:op}],type:qi}],type:qi},{rules:[{conditions:[{[hs]:DRe,[Ss]:$Re}],rules:[{conditions:[{[hs]:"aws.partition",[Ss]:$Re,assign:cD}],rules:[{conditions:[LRe,k_,MRe],endpoint:FRe,type:op},{conditions:[LRe,k_,aD],endpoint:BRe,type:op},{conditions:[k_,aD],rules:[{conditions:[{[hs]:ip,[Ss]:[wRe,URe]},qRe],rules:[{endpoint:{url:"https://monitoring-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",[N_]:hf,[L_]:hf},type:op}],type:qi},{error:"FIPS and DualStack are enabled, but this partition does not support one or both",type:ff}],type:qi},{conditions:[k_,MRe],rules:[{conditions:[{[hs]:ip,[Ss]:[URe,wRe]}],rules:[{endpoint:{url:"https://monitoring-fips.{Region}.{PartitionResult#dnsSuffix}",[N_]:hf,[L_]:hf},type:op}],type:qi},{error:"FIPS is enabled but this partition does not support FIPS",type:ff}],type:qi},{conditions:[{[hs]:ip,[Ss]:[vSt,RSt]},aD],rules:[{conditions:[qRe],rules:[{endpoint:BRe,type:op}],type:qi},{error:"DualStack is enabled but this partition does not support DualStack",type:ff}],type:qi},{endpoint:FRe,type:op}],type:qi}],type:qi},{error:"Invalid Configuration: Missing Region",type:ff}],type:qi}]};uD.ruleSet=xSt});var VRe=b(lD=>{"use strict";Object.defineProperty(lD,"__esModule",{value:!0});lD.defaultEndpointResolver=void 0;var PSt=Ta(),Pz=require("@smithy/util-endpoints"),bSt=jRe(),ISt=new Pz.EndpointCache({size:50,params:["Endpoint","Region","UseDualStack","UseFIPS"]}),ASt=(t,e={})=>ISt.get(t,()=>(0,Pz.resolveEndpoint)(bSt.ruleSet,{endpointParams:t,logger:e.logger}));lD.defaultEndpointResolver=ASt;Pz.customEndpointFunctions.aws=PSt.awsEndpointFunctions});var WRe=b(dD=>{"use strict";Object.defineProperty(dD,"__esModule",{value:!0});dD.getRuntimeConfig=void 0;var TSt=(Dt(),ue(Fr)),wSt=(wa(),ue(Wg)),DSt=require("@smithy/smithy-client"),OSt=require("@smithy/url-parser"),HRe=require("@smithy/util-base64"),zRe=require("@smithy/util-utf8"),kSt=EH(),NSt=VRe(),LSt=t=>({apiVersion:"2010-08-01",base64Decoder:t?.base64Decoder??HRe.fromBase64,base64Encoder:t?.base64Encoder??HRe.toBase64,disableHostPrefix:t?.disableHostPrefix??!1,endpointProvider:t?.endpointProvider??NSt.defaultEndpointResolver,extensions:t?.extensions??[],httpAuthSchemeProvider:t?.httpAuthSchemeProvider??kSt.defaultCloudWatchHttpAuthSchemeProvider,httpAuthSchemes:t?.httpAuthSchemes??[{schemeId:"aws.auth#sigv4",identityProvider:e=>e.getIdentityProvider("aws.auth#sigv4"),signer:new TSt.AwsSdkSigV4Signer}],logger:t?.logger??new DSt.NoOpLogger,protocol:t?.protocol??new wSt.AwsJson1_0Protocol({defaultNamespace:"com.amazonaws.cloudwatch",serviceTarget:"GraniteServiceVersion20100801",awsQueryCompatible:!0}),serviceId:t?.serviceId??"CloudWatch",urlParser:t?.urlParser??OSt.parseUrl,utf8Decoder:t?.utf8Decoder??zRe.fromUtf8,utf8Encoder:t?.utf8Encoder??zRe.toUtf8});dD.getRuntimeConfig=LSt});var eve=b(mD=>{"use strict";Object.defineProperty(mD,"__esModule",{value:!0});mD.getRuntimeConfig=void 0;var MSt=require("tslib"),FSt=MSt.__importDefault(eEe()),KRe=(Dt(),ue(Fr)),BSt=O_(),QRe=Mc(),pD=require("@smithy/config-resolver"),USt=require("@smithy/hash-node"),XRe=require("@smithy/middleware-compression"),JRe=require("@smithy/middleware-retry"),jc=require("@smithy/node-config-provider"),YRe=require("@smithy/node-http-handler"),ZRe=require("@smithy/smithy-client"),qSt=require("@smithy/util-body-length-node"),$St=require("@smithy/util-defaults-mode-node"),GSt=require("@smithy/util-retry"),jSt=WRe(),VSt=t=>{(0,ZRe.emitWarningIfUnsupportedVersion)(process.version);let e=(0,$St.resolveDefaultsModeConfig)(t),r=()=>e().then(ZRe.loadConfigsForDefaultMode),n=(0,jSt.getRuntimeConfig)(t);(0,KRe.emitWarningIfUnsupportedVersion)(process.version);let s={profile:t?.profile,logger:n.logger};return{...n,...t,runtime:"node",defaultsMode:e,authSchemePreference:t?.authSchemePreference??(0,jc.loadConfig)(KRe.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS,s),bodyLengthChecker:t?.bodyLengthChecker??qSt.calculateBodyLength,credentialDefaultProvider:t?.credentialDefaultProvider??BSt.defaultProvider,defaultUserAgentProvider:t?.defaultUserAgentProvider??(0,QRe.createDefaultUserAgentProvider)({serviceId:n.serviceId,clientVersion:FSt.default.version}),disableRequestCompression:t?.disableRequestCompression??(0,jc.loadConfig)(XRe.NODE_DISABLE_REQUEST_COMPRESSION_CONFIG_OPTIONS,t),maxAttempts:t?.maxAttempts??(0,jc.loadConfig)(JRe.NODE_MAX_ATTEMPT_CONFIG_OPTIONS,t),region:t?.region??(0,jc.loadConfig)(pD.NODE_REGION_CONFIG_OPTIONS,{...pD.NODE_REGION_CONFIG_FILE_OPTIONS,...s}),requestHandler:YRe.NodeHttpHandler.create(t?.requestHandler??r),requestMinCompressionSizeBytes:t?.requestMinCompressionSizeBytes??(0,jc.loadConfig)(XRe.NODE_REQUEST_MIN_COMPRESSION_SIZE_BYTES_CONFIG_OPTIONS,t),retryMode:t?.retryMode??(0,jc.loadConfig)({...JRe.NODE_RETRY_MODE_CONFIG_OPTIONS,default:async()=>(await r()).retryMode||GSt.DEFAULT_RETRY_MODE},t),sha256:t?.sha256??USt.Hash.bind(null,"sha256"),streamCollector:t?.streamCollector??YRe.streamCollector,useDualstackEndpoint:t?.useDualstackEndpoint??(0,jc.loadConfig)(pD.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS,s),useFipsEndpoint:t?.useFipsEndpoint??(0,jc.loadConfig)(pD.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS,s),userAgentAppId:t?.userAgentAppId??(0,jc.loadConfig)(QRe.NODE_APP_ID_CONFIG_OPTIONS,s)}};mD.getRuntimeConfig=VSt});var Wxe=b(ee=>{"use strict";var tve=wc(),HSt=Dc(),zSt=Oc(),rve=Oa(),WSt=require("@smithy/config-resolver"),Wo=require("@smithy/core"),Ln=require("@smithy/core/schema"),ave=require("@smithy/middleware-compression"),KSt=require("@smithy/middleware-content-length"),Ve=require("@smithy/middleware-endpoint"),nve=require("@smithy/middleware-retry"),De=require("@smithy/smithy-client"),sve=EH(),QSt=eve(),ove=Na(),ive=require("@smithy/protocol-http"),Ua=require("@smithy/util-waiter"),XSt=t=>Object.assign(t,{useDualstackEndpoint:t.useDualstackEndpoint??!1,useFipsEndpoint:t.useFipsEndpoint??!1,defaultSigningName:"monitoring"}),Ke={UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}},JSt=t=>{let e=t.httpAuthSchemes,r=t.httpAuthSchemeProvider,n=t.credentials;return{setHttpAuthScheme(s){let o=e.findIndex(i=>i.schemeId===s.schemeId);o===-1?e.push(s):e.splice(o,1,s)},httpAuthSchemes(){return e},setHttpAuthSchemeProvider(s){r=s},httpAuthSchemeProvider(){return r},setCredentials(s){n=s},credentials(){return n}}},YSt=t=>({httpAuthSchemes:t.httpAuthSchemes(),httpAuthSchemeProvider:t.httpAuthSchemeProvider(),credentials:t.credentials()}),ZSt=(t,e)=>{let r=Object.assign(ove.getAwsRegionExtensionConfiguration(t),De.getDefaultExtensionConfiguration(t),ive.getHttpHandlerExtensionConfiguration(t),JSt(t));return e.forEach(n=>n.configure(r)),Object.assign(t,ove.resolveAwsRegionExtensionConfiguration(r),De.resolveDefaultRuntimeConfig(r),ive.resolveHttpHandlerRuntimeConfig(r),YSt(r))},eo=class extends De.Client{config;constructor(...[e]){let r=QSt.getRuntimeConfig(e||{});super(r),this.initConfig=r;let n=XSt(r),s=rve.resolveUserAgentConfig(n),o=nve.resolveRetryConfig(s),i=WSt.resolveRegionConfig(o),a=tve.resolveHostHeaderConfig(i),c=Ve.resolveEndpointConfig(a),u=sve.resolveHttpAuthSchemeConfig(c),l=ave.resolveCompressionConfig(u),d=ZSt(l,e?.extensions||[]);this.config=d,this.middlewareStack.use(Ln.getSchemaSerdePlugin(this.config)),this.middlewareStack.use(rve.getUserAgentPlugin(this.config)),this.middlewareStack.use(nve.getRetryPlugin(this.config)),this.middlewareStack.use(KSt.getContentLengthPlugin(this.config)),this.middlewareStack.use(tve.getHostHeaderPlugin(this.config)),this.middlewareStack.use(HSt.getLoggerPlugin(this.config)),this.middlewareStack.use(zSt.getRecursionDetectionPlugin(this.config)),this.middlewareStack.use(Wo.getHttpAuthSchemeEndpointRuleSetPlugin(this.config,{httpAuthSchemeParametersProvider:sve.defaultCloudWatchHttpAuthSchemeParametersProvider,identityProviderConfigProvider:async p=>new Wo.DefaultIdentityProviderConfig({"aws.auth#sigv4":p.credentials})})),this.middlewareStack.use(Wo.getHttpSigningPlugin(this.config))}destroy(){super.destroy()}},Mn=class cve extends De.ServiceException{constructor(e){super(e),Object.setPrototypeOf(this,cve.prototype)}},uve=class lve extends Mn{name="ConcurrentModificationException";$fault="client";Message;constructor(e){super({name:"ConcurrentModificationException",$fault:"client",...e}),Object.setPrototypeOf(this,lve.prototype),this.Message=e.Message}},dve=class pve extends Mn{name="ConflictException";$fault="client";Message;constructor(e){super({name:"ConflictException",$fault:"client",...e}),Object.setPrototypeOf(this,pve.prototype),this.Message=e.Message}},mve=class gve extends Mn{name="DashboardInvalidInputError";$fault="client";dashboardValidationMessages;constructor(e){super({name:"DashboardInvalidInputError",$fault:"client",...e}),Object.setPrototypeOf(this,gve.prototype),this.dashboardValidationMessages=e.dashboardValidationMessages}},fve=class hve extends Mn{name="DashboardNotFoundError";$fault="client";constructor(e){super({name:"DashboardNotFoundError",$fault:"client",...e}),Object.setPrototypeOf(this,hve.prototype)}},Sve=class Eve extends Mn{name="ResourceNotFound";$fault="client";constructor(e){super({name:"ResourceNotFound",$fault:"client",...e}),Object.setPrototypeOf(this,Eve.prototype)}},yve=class _ve extends Mn{name="InternalServiceFault";$fault="server";Message;constructor(e){super({name:"InternalServiceFault",$fault:"server",...e}),Object.setPrototypeOf(this,_ve.prototype),this.Message=e.Message}},Cve=class Rve extends Mn{name="InvalidParameterCombinationException";$fault="client";constructor(e){super({name:"InvalidParameterCombinationException",$fault:"client",...e}),Object.setPrototypeOf(this,Rve.prototype)}},vve=class xve extends Mn{name="InvalidParameterValueException";$fault="client";constructor(e){super({name:"InvalidParameterValueException",$fault:"client",...e}),Object.setPrototypeOf(this,xve.prototype)}},Pve=class bve extends Mn{name="MissingRequiredParameterException";$fault="client";constructor(e){super({name:"MissingRequiredParameterException",$fault:"client",...e}),Object.setPrototypeOf(this,bve.prototype)}},Ive=class Ave extends Mn{name="ResourceNotFoundException";$fault="client";ResourceType;ResourceId;Message;constructor(e){super({name:"ResourceNotFoundException",$fault:"client",...e}),Object.setPrototypeOf(this,Ave.prototype),this.ResourceType=e.ResourceType,this.ResourceId=e.ResourceId,this.Message=e.Message}},Tve=class wve extends Mn{name="InvalidNextToken";$fault="client";constructor(e){super({name:"InvalidNextToken",$fault:"client",...e}),Object.setPrototypeOf(this,wve.prototype)}},Dve=class Ove extends Mn{name="LimitExceededException";$fault="client";Message;constructor(e){super({name:"LimitExceededException",$fault:"client",...e}),Object.setPrototypeOf(this,Ove.prototype),this.Message=e.Message}},kve=class Nve extends Mn{name="LimitExceededFault";$fault="client";constructor(e){super({name:"LimitExceededFault",$fault:"client",...e}),Object.setPrototypeOf(this,Nve.prototype)}},Lve=class Mve extends Mn{name="InvalidFormatFault";$fault="client";constructor(e){super({name:"InvalidFormatFault",$fault:"client",...e}),Object.setPrototypeOf(this,Mve.prototype)}},Fve="Average",zD="AlarmActions",eEt="ApproximateAggregateValue",Bve="AlarmArn",tEt="AlarmContributor",rEt="AlarmContributorAttributes",Uve="AlarmContributorId",qve="AlarmConfigurationUpdatedTimestamp",$ve="AlarmContributors",nEt="AnomalyDetector",sEt="AnomalyDetectorConfiguration",oEt="AnomalyDetectorExcludedTimeRanges",iEt="AnomalyDetectorTypes",WD="AlarmDescription",Gve="AnomalyDetectors",KD="ActionsEnabled",aEt="AlarmHistoryItem",jve="AlarmHistoryItems",Vve="AccountId",Rl="AlarmName",cEt="AlarmNamePrefix",QD="AlarmNames",Hve="ApplyOnTransformedLogs",uEt="ActionPrefix",zve="AlarmRule",Wve="ActionsSuppressor",lEt="ActionsSuppressedBy",Kve="ActionsSuppressorExtensionPeriod",dEt="ActionsSuppressedReason",Qve="ActionsSuppressorWaitPeriod",pEt="AdditionalStatistics",mEt="AggregationStatistic",gEt="AlarmType",Xve="AlarmTypes",fEt="ApproximateUniqueCount",hEt="AggregateValue",SEt="ApproximateValue",bz="Arn",EEt="Attributes",yEt="BatchFailures",Jve="Configuration",_Et="ContributorAttributes",CEt="CompositeAlarm",Yve="CompositeAlarms",Zve="CreationDate",REt="ConflictException",vEt="ContributorId",xEt="ConcurrentModificationException",exe="ComparisonOperator",PEt="ChildrenOfAlarmName",bEt="Contributors",IEt="Code",AEt="Counts",to="Dimensions",txe="DashboardArn",TEt="DisableAlarmActions",wEt="DisableAlarmActionsInput",DEt="DescribeAlarmContributors",OEt="DescribeAlarmContributorsInput",kEt="DescribeAlarmContributorsOutput",NEt="DeleteAnomalyDetector",LEt="DeleteAnomalyDetectorInput",MEt="DescribeAnomalyDetectorsInput",FEt="DeleteAnomalyDetectorOutput",BEt="DescribeAnomalyDetectorsOutput",UEt="DescribeAnomalyDetectors",qEt="DescribeAlarmsForMetric",$Et="DescribeAlarmsForMetricInput",GEt="DescribeAlarmsForMetricOutput",jEt="DescribeAlarmHistory",VEt="DescribeAlarmHistoryInput",HEt="DescribeAlarmHistoryOutput",zEt="DeleteAlarmsInput",WEt="DescribeAlarmsInput",KEt="DescribeAlarmsOutput",QEt="DeleteAlarms",XEt="DescribeAlarms",rxe="DashboardBody",JEt="DeleteDashboards",YEt="DeleteDashboardsInput",ZEt="DeleteDashboardsOutput",eyt="DashboardEntry",nxe="DashboardEntries",tyt="DimensionFilter",ryt="DimensionFilters",nyt="DashboardInvalidInputError",syt="DeleteInsightRules",oyt="DeleteInsightRulesInput",iyt="DescribeInsightRulesInput",ayt="DisableInsightRulesInput",cyt="DeleteInsightRulesOutput",uyt="DescribeInsightRulesOutput",lyt="DisableInsightRulesOutput",dyt="DescribeInsightRules",pyt="DisableInsightRules",myt="DeleteMetricStream",gyt="DeleteMetricStreamInput",fyt="DeleteMetricStreamOutput",XD="DashboardName",hyt="DashboardNotFoundError",Syt="DashboardNamePrefix",Eyt="DashboardNames",yyt="DataPath",sxe="DatapointsToAlarm",_yt="DashboardValidationMessage",oxe="DashboardValidationMessages",Cyt="Datapoint",Iz="Datapoints",Ryt="Definition",vyt="Dimension",ixe="Entity",xyt="EnableAlarmActions",Pyt="EnableAlarmActionsInput",byt="EndDate",axe="ExcludeFilters",Iyt="EnableInsightRules",Ayt="EnableInsightRulesInput",Tyt="EnableInsightRulesOutput",cxe="EvaluateLowSampleCountPercentile",uxe="EntityMetricData",wyt="EntityMetricDataList",lxe="EvaluationPeriods",dxe="ExtendedStatistics",Dyt="EvaluationState",Az="ExtendedStatistic",JD="EndTime",Oyt="ExcludedTimeRanges",kyt="ExceptionType",Nyt="Entries",Lyt="Expression",YD="Failures",Tz="FirehoseArn",Myt="FailureCode",Fyt="FailureDescription",Byt="FailureResource",Uyt="GetDashboard",qyt="GetDashboardInput",$yt="GetDashboardOutput",Gyt="GetInsightRuleReport",jyt="GetInsightRuleReportInput",Vyt="GetInsightRuleReportOutput",Hyt="GetMetricData",zyt="GetMetricDataInput",Wyt="GetMetricDataOutput",Kyt="GetMetricStatistics",Qyt="GetMetricStatisticsInput",Xyt="GetMetricStreamInput",Jyt="GetMetricStatisticsOutput",Yyt="GetMetricStreamOutput",Zyt="GetMetricStream",e_t="GetMetricWidgetImage",t_t="GetMetricWidgetImageInput",r_t="GetMetricWidgetImageOutput",n_t="HistoryData",pxe="HistoryItemType",s_t="HistorySummary",mxe="Id",ZD="InsufficientDataActions",gxe="IncludeFilters",o_t="InvalidFormatFault",i_t="IncludeLinkedAccounts",fxe="IncludeLinkedAccountsMetrics",a_t="IncludeMetrics",c_t="InvalidNextToken",u_t="InvalidParameterCombinationException",l_t="InvalidParameterValueException",hxe="InsightRules",d_t="InsightRuleContributor",p_t="InsightRuleContributorDatapoint",m_t="InsightRuleContributorDatapoints",g_t="InsightRuleContributors",f_t="InsightRuleMetricDatapoint",h_t="InsightRuleMetricDatapoints",S_t="InsightRule",E_t="InternalServiceFault",y_t="Keys",__t="KeyAttributes",C_t="KeyLabels",R_t="Key",wz="Label",v_t="ListDashboards",x_t="ListDashboardsInput",P_t="ListDashboardsOutput",b_t="LimitExceededException",I_t="LimitExceededFault",A_t="LastModified",T_t="ListMetricsInput",w_t="ListManagedInsightRules",D_t="ListManagedInsightRulesInput",O_t="ListManagedInsightRulesOutput",k_t="ListMetricsOutput",N_t="ListMetricStreams",L_t="ListMetricStreamsInput",M_t="ListMetricStreamsOutput",F_t="ListMetrics",Sxe="LabelOptions",B_t="ListTagsForResource",U_t="ListTagsForResourceInput",q_t="ListTagsForResourceOutput",Exe="LastUpdateDate",Sf="Message",Dz="MetricAlarms",$_t="MetricAlarm",Oz="MetricCharacteristics",G_t="MaxContributorCount",j_t="MaxContributorValue",kz="MetricData",Nz="MetricDataQueries",V_t="MetricDataQuery",yxe="MetricDataResults",H_t="MetricDataResultMessages",z_t="MetricDataResult",W_t="MaxDatapoints",K_t="MetricDatapoints",Q_t="MessageData",X_t="MetricDatum",eO="MetricMathAnomalyDetector",ro="MetricName",J_t="MetricNames",_xe="MaxRecords",Y_t="ManagedRuleDescription",Z_t="ManagedRuleDescriptions",eCt="MissingRequiredParameterException",tCt="ManagedRuleState",tO="MaxResults",Cxe="ManagedRule",Lz="ManagedRules",Rxe="MetricStat",rCt="MetricStreamEntry",nCt="MetricStreamEntries",sCt="MetricStreamFilter",oCt="MetricStreamFilters",iCt="MetricStreamStatisticsConfiguration",aCt="MetricStreamStatisticsConfigurations",cCt="MetricStreamStatisticsIncludeMetrics",uCt="MetricStreamStatisticsMetric",lCt="MetricTimezone",dCt="MetricWidget",pCt="MetricWidgetImage",Mz="Maximum",V_="Metrics",vxe="Messages",xxe="Metric",Fz="Minimum",Es="Namespace",Ar="NextToken",vl="Name",Pxe="Names",mCt="OwningAccount",gCt="OwningAccounts",fCt="OrderBy",rO="OutputFormat",nO="OKActions",cp="Period",hCt="PutAnomalyDetector",SCt="PutAnomalyDetectorInput",ECt="PutAnomalyDetectorOutput",yCt="PutCompositeAlarm",_Ct="PutCompositeAlarmInput",CCt="PutDashboard",RCt="PutDashboardInput",vCt="PutDashboardOutput",xCt="PartialFailure",PCt="PutInsightRule",bCt="PutInsightRuleInput",ICt="PutInsightRuleOutput",ACt="PutMetricAlarm",TCt="PutMetricAlarmInput",wCt="PutMetricData",DCt="PutMetricDataInput",OCt="PutManagedInsightRules",kCt="PutManagedInsightRulesInput",NCt="PutManagedInsightRulesOutput",LCt="PutMetricStream",MCt="PutMetricStreamInput",FCt="PutMetricStreamOutput",BCt="ParentsOfAlarmName",UCt="PeriodicSpikes",qCt="Range",bxe="RoleArn",Ef="ResourceARN",$Ct="RecentlyActive",GCt="ReturnData",jCt="RuleDefinition",VCt="ResourceId",Bz="RuleNames",HCt="ResourceNotFound",zCt="ResourceNotFoundException",Uz="RuleName",Ixe="RuleState",WCt="ResourceType",H_="Stat",KCt="SetAlarmState",QCt="SetAlarmStateInput",Axe="ScanBy",qz="SampleCount",Txe="StatisticsConfigurations",XCt="StatusCode",JCt="StartDate",YCt="StrictEntityValidation",sO="SingleMetricAnomalyDetector",ZCt="StartMetricStreams",e0t="StartMetricStreamsInput",t0t="StopMetricStreamsInput",r0t="StartMetricStreamsOutput",n0t="StopMetricStreamsOutput",s0t="StopMetricStreams",oO="StateReason",$z="StateReasonData",o0t="StorageResolution",i0t="StatisticSet",iO="StartTime",Gz="StateTransitionedTimestamp",wxe="StateUpdatedTimestamp",z_="StateValue",a0t="StatisticValues",c0t="Schema",u0t="Size",jz="Statistic",l0t="Statistics",aO="State",Vz="Sum",W_="Timestamp",d0t="TagKeys",p0t="TagList",Dxe="TreatMissingData",Oxe="ThresholdMetricId",kxe="TemplateName",m0t="TagResource",g0t="TagResourceInput",f0t="TagResourceOutput",up="Tags",h0t="Tag",Nxe="Threshold",S0t="Timezone",E0t="Timestamps",lp="Unit",y0t="UniqueContributors",_0t="UntagResource",C0t="UntagResourceInput",R0t="UntagResourceOutput",K_="Value",Lxe="Values",no="awsQueryError",so="client",v0t="dashboardValidationMessages",ys="error",_s="httpError",Vc="message",x0t="server",Mxe="smithy.ts.sdk.synthetic.com.amazonaws.cloudwatch",T="com.amazonaws.cloudwatch",P0t=[3,T,tEt,0,[vEt,_Et,oO,Gz],[0,128,0,4]],b0t=[3,T,aEt,0,[Rl,Uve,gEt,W_,pxe,s_t,n_t,rEt],[0,0,0,4,0,0,0,128]],I0t=[3,T,nEt,0,[Es,ro,to,H_,Jve,z_,Oz,sO,eO],[0,0,()=>$i,0,()=>Fxe,0,()=>Uxe,()=>zz,()=>Hz]],Fxe=[3,T,sEt,0,[Oyt,lCt],[()=>Bvt,0]],A0t=[3,T,CEt,0,[KD,zD,Bve,qve,WD,Rl,zve,ZD,nO,oO,$z,wxe,z_,Gz,lEt,dEt,Wve,Qve,Kve],[2,64,0,4,0,0,0,64,64,0,0,4,0,4,0,0,0,1,1]],T0t=[-3,T,xEt,{[ys]:so,[_s]:429,[no]:["ConcurrentModificationException",429]},[Sf],[0]];Ln.TypeRegistry.for(T).registerError(T0t,uve);var w0t=[-3,T,REt,{[ys]:so,[_s]:409},[Sf],[0]];Ln.TypeRegistry.for(T).registerError(w0t,dve);var D0t=[3,T,eyt,0,[XD,txe,A_t,u0t],[0,0,4,1]],O0t=[-3,T,nyt,{[ys]:so,[_s]:400,[no]:["InvalidParameterInput",400]},[Vc,v0t],[0,()=>qxe]];Ln.TypeRegistry.for(T).registerError(O0t,mve);var k0t=[-3,T,hyt,{[ys]:so,[_s]:404,[no]:["ResourceNotFound",404]},[Vc],[0]];Ln.TypeRegistry.for(T).registerError(k0t,fve);var N0t=[3,T,_yt,0,[yyt,Sf],[0,0]],L0t=[3,T,Cyt,0,[W_,qz,Fve,Vz,Fz,Mz,lp,dxe],[4,1,1,1,1,1,0,129]],M0t=[3,T,zEt,0,[QD],[64]],F0t=[3,T,LEt,0,[Es,ro,to,H_,sO,eO],[0,0,()=>$i,0,()=>zz,()=>Hz]],B0t=[3,T,FEt,0,[],[]],U0t=[3,T,YEt,0,[Eyt],[64]],q0t=[3,T,ZEt,0,[],[]],$0t=[3,T,oyt,0,[Bz],[64]],G0t=[3,T,cyt,0,[YD],[()=>cO]],j0t=[3,T,gyt,0,[vl],[0]],V0t=[3,T,fyt,0,[],[]],H0t=[3,T,OEt,0,[Rl,Ar],[0,0]],z0t=[3,T,kEt,0,[$ve,Ar],[()=>Mvt,0]],W0t=[3,T,VEt,0,[Rl,Uve,Xve,pxe,JCt,byt,_xe,Ar,Axe],[0,0,64,0,4,4,1,0,0]],K0t=[3,T,HEt,0,[jve,Ar],[()=>Fvt,0]],Q0t=[3,T,$Et,0,[ro,Es,jz,Az,to,cp,lp],[0,0,0,0,()=>$i,1,0]],X0t=[3,T,GEt,0,[Dz],[()=>$xe]],J0t=[3,T,WEt,0,[QD,cEt,Xve,PEt,BCt,z_,uEt,_xe,Ar],[64,0,64,0,0,0,0,1,0]],Y0t=[3,T,KEt,0,[Yve,Dz,Ar],[()=>qvt,()=>$xe,0]],Z0t=[3,T,MEt,0,[Ar,tO,Es,ro,to,iEt],[0,1,0,0,()=>$i,64]],eRt=[3,T,BEt,0,[Gve,Ar],[()=>Uvt,0]],tRt=[3,T,iyt,0,[Ar,tO],[0,1]],rRt=[3,T,uyt,0,[Ar,hxe],[0,()=>Kvt]],nRt=[3,T,vyt,0,[vl,K_],[0,0]],sRt=[3,T,tyt,0,[vl,K_],[0,0]],oRt=[3,T,wEt,0,[QD],[64]],iRt=[3,T,ayt,0,[Bz],[64]],aRt=[3,T,lyt,0,[YD],[()=>cO]],cRt=[3,T,Pyt,0,[QD],[64]],uRt=[3,T,Ayt,0,[Bz],[64]],lRt=[3,T,Tyt,0,[YD],[()=>cO]],dRt=[3,T,ixe,0,[__t,EEt],[128,128]],pRt=[3,T,uxe,0,[ixe,kz],[()=>dRt,()=>Gxe]],mRt=[3,T,qyt,0,[XD],[0]],gRt=[3,T,$yt,0,[txe,rxe,XD],[0,0,0]],fRt=[3,T,jyt,0,[Uz,iO,JD,cp,G_t,V_,fCt],[0,4,4,1,1,64,0]],hRt=[3,T,Vyt,0,[C_t,mEt,hEt,fEt,bEt,K_t],[64,0,1,1,()=>zvt,()=>Wvt]],SRt=[3,T,zyt,0,[Nz,iO,JD,Ar,Axe,W_t,Sxe],[()=>uO,4,4,0,0,1,()=>NRt]],ERt=[3,T,Wyt,0,[yxe,Ar,vxe],[()=>Jvt,0,()=>jxe]],yRt=[3,T,Qyt,0,[Es,ro,to,iO,JD,cp,l0t,dxe,lp],[0,0,()=>$i,4,4,1,64,64,0]],_Rt=[3,T,Jyt,0,[wz,Iz],[0,()=>Gvt]],CRt=[3,T,Xyt,0,[vl],[0]],RRt=[3,T,Yyt,0,[bz,vl,gxe,axe,Tz,bxe,aO,Zve,Exe,rO,Txe,fxe],[0,0,()=>gD,()=>gD,0,0,0,4,4,0,()=>Vxe,2]],vRt=[3,T,t_t,0,[dCt,rO],[0,0]],xRt=[3,T,r_t,0,[pCt],[21]],PRt=[3,T,S_t,0,[vl,aO,c0t,Ryt,Cxe,Hve],[0,0,0,0,2,2]],bRt=[3,T,d_t,0,[y_t,eEt,Iz],[64,1,()=>Hvt]],IRt=[3,T,p_t,0,[W_,SEt],[4,1]],ARt=[3,T,f_t,0,[W_,y0t,j_t,qz,Fve,Vz,Fz,Mz],[4,1,1,1,1,1,1,1]],TRt=[-3,T,E_t,{[ys]:x0t,[_s]:500,[no]:["InternalServiceError",500]},[Sf],[0]];Ln.TypeRegistry.for(T).registerError(TRt,yve);var wRt=[-3,T,o_t,{[ys]:so,[_s]:400,[no]:["InvalidFormat",400]},[Vc],[0]];Ln.TypeRegistry.for(T).registerError(wRt,Lve);var DRt=[-3,T,c_t,{[ys]:so,[_s]:400,[no]:["InvalidNextToken",400]},[Vc],[0]];Ln.TypeRegistry.for(T).registerError(DRt,Tve);var ORt=[-3,T,u_t,{[ys]:so,[_s]:400,[no]:["InvalidParameterCombination",400]},[Vc],[0]];Ln.TypeRegistry.for(T).registerError(ORt,Cve);var kRt=[-3,T,l_t,{[ys]:so,[_s]:400,[no]:["InvalidParameterValue",400]},[Vc],[0]];Ln.TypeRegistry.for(T).registerError(kRt,vve);var NRt=[3,T,Sxe,0,[S0t],[0]],LRt=[-3,T,b_t,{[ys]:so,[_s]:400,[no]:["LimitExceededException",400]},[Sf],[0]];Ln.TypeRegistry.for(T).registerError(LRt,Dve);var MRt=[-3,T,I_t,{[ys]:so,[_s]:400,[no]:["LimitExceeded",400]},[Vc],[0]];Ln.TypeRegistry.for(T).registerError(MRt,kve);var FRt=[3,T,x_t,0,[Syt,Ar],[0,0]],BRt=[3,T,P_t,0,[nxe,Ar],[()=>$vt,0]],URt=[3,T,D_t,0,[Ef,Ar,tO],[0,0,1]],qRt=[3,T,O_t,0,[Lz,Ar],[()=>Qvt,0]],$Rt=[3,T,T_t,0,[Es,ro,to,Ar,$Ct,i_t,mCt],[0,0,()=>jvt,0,0,2,0]],GRt=[3,T,k_t,0,[V_,Ar,gCt],[()=>Yvt,0,64]],jRt=[3,T,L_t,0,[Ar,tO],[0,1]],VRt=[3,T,M_t,0,[Ar,Nyt],[0,()=>Zvt]],HRt=[3,T,U_t,0,[Ef],[0]],zRt=[3,T,q_t,0,[up],[()=>pp]],WRt=[3,T,Cxe,0,[kxe,Ef,up],[0,0,()=>pp]],KRt=[3,T,Y_t,0,[kxe,Ef,Ixe],[0,0,()=>QRt]],QRt=[3,T,tCt,0,[Uz,aO],[0,0]],XRt=[3,T,Q_t,0,[IEt,K_],[0,0]],Bxe=[3,T,xxe,0,[Es,ro,to],[0,0,()=>$i]],JRt=[3,T,$_t,0,[Rl,Bve,WD,qve,KD,nO,zD,ZD,z_,oO,$z,wxe,ro,Es,jz,Az,to,cp,lp,lxe,sxe,Nxe,exe,Dxe,cxe,V_,Oxe,Dyt,Gz],[0,0,0,4,2,64,64,64,0,0,0,4,0,0,0,0,()=>$i,1,0,1,1,1,0,0,0,()=>uO,0,0,4]],Uxe=[3,T,Oz,0,[UCt],[2]],YRt=[3,T,V_t,0,[mxe,Rxe,Lyt,wz,GCt,cp,Vve],[0,()=>tvt,0,0,2,1,0]],ZRt=[3,T,z_t,0,[mxe,wz,E0t,Lxe,XCt,vxe],[0,0,68,65,0,()=>jxe]],evt=[3,T,X_t,0,[ro,to,W_,K_,a0t,Lxe,AEt,lp,o0t],[0,()=>$i,4,1,()=>Ivt,65,65,0,1]],Hz=[3,T,eO,0,[Nz],[()=>uO]],tvt=[3,T,Rxe,0,[xxe,cp,H_,lp],[()=>Bxe,1,0,0]],rvt=[3,T,rCt,0,[bz,Zve,Exe,vl,Tz,aO,rO],[0,4,4,0,0,0,0]],nvt=[3,T,sCt,0,[Es,J_t],[0,64]],svt=[3,T,iCt,0,[a_t,pEt],[()=>ext,64]],ovt=[3,T,uCt,0,[Es,ro],[0,0]],ivt=[-3,T,eCt,{[ys]:so,[_s]:400,[no]:["MissingParameter",400]},[Vc],[0]];Ln.TypeRegistry.for(T).registerError(ivt,Pve);var avt=[3,T,xCt,0,[Byt,kyt,Myt,Fyt],[0,0,0,0]],cvt=[3,T,SCt,0,[Es,ro,to,H_,Jve,Oz,sO,eO],[0,0,()=>$i,0,()=>Fxe,()=>Uxe,()=>zz,()=>Hz]],uvt=[3,T,ECt,0,[],[]],lvt=[3,T,_Ct,0,[KD,zD,WD,Rl,zve,ZD,nO,up,Wve,Qve,Kve],[2,64,0,0,0,64,64,()=>pp,0,1,1]],dvt=[3,T,RCt,0,[XD,rxe],[0,0]],pvt=[3,T,vCt,0,[oxe],[()=>qxe]],mvt=[3,T,bCt,0,[Uz,Ixe,jCt,up,Hve],[0,0,0,()=>pp,2]],gvt=[3,T,ICt,0,[],[]],fvt=[3,T,kCt,0,[Lz],[()=>Xvt]],hvt=[3,T,NCt,0,[YD],[()=>cO]],Svt=[3,T,TCt,0,[Rl,WD,KD,nO,zD,ZD,ro,Es,jz,Az,to,cp,lp,lxe,sxe,Nxe,exe,Dxe,cxe,V_,up,Oxe],[0,0,2,64,64,64,0,0,0,0,()=>$i,1,0,1,1,1,0,0,0,()=>uO,()=>pp,0]],Evt=[3,T,DCt,0,[Es,kz,uxe,YCt],[0,()=>Gxe,()=>Vvt,2]],yvt=[3,T,MCt,0,[vl,gxe,axe,Tz,bxe,rO,up,Txe,fxe],[0,()=>gD,()=>gD,0,0,0,()=>pp,()=>Vxe,2]],_vt=[3,T,FCt,0,[bz],[0]],Cvt=[3,T,qCt,0,[iO,JD],[4,4]],Rvt=[-3,T,HCt,{[ys]:so,[_s]:404,[no]:["ResourceNotFound",404]},[Vc],[0]];Ln.TypeRegistry.for(T).registerError(Rvt,Sve);var vvt=[-3,T,zCt,{[ys]:so,[_s]:404,[no]:["ResourceNotFoundException",404]},[WCt,VCt,Sf],[0,0,0]];Ln.TypeRegistry.for(T).registerError(vvt,Ive);var xvt=[3,T,QCt,0,[Rl,z_,oO,$z],[0,0,0,0]],zz=[3,T,sO,0,[Vve,Es,ro,to,H_],[0,0,0,()=>$i,0]],Pvt=[3,T,e0t,0,[Pxe],[64]],bvt=[3,T,r0t,0,[],[]],Ivt=[3,T,i0t,0,[qz,Vz,Fz,Mz],[1,1,1,1]],Avt=[3,T,t0t,0,[Pxe],[64]],Tvt=[3,T,n0t,0,[],[]],wvt=[3,T,h0t,0,[R_t,K_],[0,0]],Dvt=[3,T,g0t,0,[Ef,up],[0,()=>pp]],Ovt=[3,T,f0t,0,[],[]],kvt=[3,T,C0t,0,[Ef,d0t],[0,64]],Nvt=[3,T,R0t,0,[],[]],dp="unit",Lvt=[-3,Mxe,"CloudWatchServiceException",0,[],[]];Ln.TypeRegistry.for(Mxe).registerError(Lvt,Mn);var Mvt=[1,T,$ve,0,()=>P0t],Fvt=[1,T,jve,0,()=>b0t],Bvt=[1,T,oEt,0,()=>Cvt],Uvt=[1,T,Gve,0,()=>I0t],cO=[1,T,yEt,0,()=>avt],qvt=[1,T,Yve,0,()=>A0t],$vt=[1,T,nxe,0,()=>D0t],qxe=[1,T,oxe,0,()=>N0t],Gvt=[1,T,Iz,0,()=>L0t],jvt=[1,T,ryt,0,()=>sRt],$i=[1,T,to,0,()=>nRt],Vvt=[1,T,wyt,0,()=>pRt],Hvt=[1,T,m_t,0,()=>IRt],zvt=[1,T,g_t,0,()=>bRt],Wvt=[1,T,h_t,0,()=>ARt],Kvt=[1,T,hxe,0,()=>PRt],Qvt=[1,T,Z_t,0,()=>KRt],Xvt=[1,T,Lz,0,()=>WRt],$xe=[1,T,Dz,0,()=>JRt],Gxe=[1,T,kz,0,()=>evt],uO=[1,T,Nz,0,()=>YRt],jxe=[1,T,H_t,0,()=>XRt],Jvt=[1,T,yxe,0,()=>ZRt],Yvt=[1,T,V_,0,()=>Bxe],Zvt=[1,T,nCt,0,()=>rvt],gD=[1,T,oCt,0,()=>nvt],Vxe=[1,T,aCt,0,()=>svt],ext=[1,T,cCt,0,()=>ovt],pp=[1,T,p0t,0,()=>wvt],txt=[9,T,QEt,0,()=>M0t,()=>dp],rxt=[9,T,NEt,0,()=>F0t,()=>B0t],nxt=[9,T,JEt,0,()=>U0t,()=>q0t],sxt=[9,T,syt,0,()=>$0t,()=>G0t],oxt=[9,T,myt,0,()=>j0t,()=>V0t],ixt=[9,T,DEt,0,()=>H0t,()=>z0t],axt=[9,T,jEt,0,()=>W0t,()=>K0t],cxt=[9,T,XEt,0,()=>J0t,()=>Y0t],uxt=[9,T,qEt,0,()=>Q0t,()=>X0t],lxt=[9,T,UEt,0,()=>Z0t,()=>eRt],dxt=[9,T,dyt,0,()=>tRt,()=>rRt],pxt=[9,T,TEt,0,()=>oRt,()=>dp],mxt=[9,T,pyt,0,()=>iRt,()=>aRt],gxt=[9,T,xyt,0,()=>cRt,()=>dp],fxt=[9,T,Iyt,0,()=>uRt,()=>lRt],hxt=[9,T,Uyt,0,()=>mRt,()=>gRt],Sxt=[9,T,Gyt,0,()=>fRt,()=>hRt],Ext=[9,T,Hyt,0,()=>SRt,()=>ERt],yxt=[9,T,Kyt,0,()=>yRt,()=>_Rt],_xt=[9,T,Zyt,0,()=>CRt,()=>RRt],Cxt=[9,T,e_t,0,()=>vRt,()=>xRt],Rxt=[9,T,v_t,0,()=>FRt,()=>BRt],vxt=[9,T,w_t,0,()=>URt,()=>qRt],xxt=[9,T,F_t,0,()=>$Rt,()=>GRt],Pxt=[9,T,N_t,0,()=>jRt,()=>VRt],bxt=[9,T,B_t,0,()=>HRt,()=>zRt],Ixt=[9,T,hCt,0,()=>cvt,()=>uvt],Axt=[9,T,yCt,0,()=>lvt,()=>dp],Txt=[9,T,CCt,0,()=>dvt,()=>pvt],wxt=[9,T,PCt,0,()=>mvt,()=>gvt],Dxt=[9,T,OCt,0,()=>fvt,()=>hvt],Oxt=[9,T,ACt,0,()=>Svt,()=>dp],kxt=[9,T,wCt,0,()=>Evt,()=>dp],Nxt=[9,T,LCt,0,()=>yvt,()=>_vt],Lxt=[9,T,KCt,0,()=>xvt,()=>dp],Mxt=[9,T,ZCt,0,()=>Pvt,()=>bvt],Fxt=[9,T,s0t,0,()=>Avt,()=>Tvt],Bxt=[9,T,m0t,0,()=>Dvt,()=>Ovt],Uxt=[9,T,_0t,0,()=>kvt,()=>Nvt],fD=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","DeleteAlarms",{}).n("CloudWatchClient","DeleteAlarmsCommand").sc(txt).build(){},hD=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","DeleteAnomalyDetector",{}).n("CloudWatchClient","DeleteAnomalyDetectorCommand").sc(rxt).build(){},SD=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","DeleteDashboards",{}).n("CloudWatchClient","DeleteDashboardsCommand").sc(nxt).build(){},ED=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","DeleteInsightRules",{}).n("CloudWatchClient","DeleteInsightRulesCommand").sc(sxt).build(){},yD=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","DeleteMetricStream",{}).n("CloudWatchClient","DeleteMetricStreamCommand").sc(oxt).build(){},_D=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","DescribeAlarmContributors",{}).n("CloudWatchClient","DescribeAlarmContributorsCommand").sc(ixt).build(){},M_=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","DescribeAlarmHistory",{}).n("CloudWatchClient","DescribeAlarmHistoryCommand").sc(axt).build(){},ap=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","DescribeAlarms",{}).n("CloudWatchClient","DescribeAlarmsCommand").sc(cxt).build(){},CD=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","DescribeAlarmsForMetric",{}).n("CloudWatchClient","DescribeAlarmsForMetricCommand").sc(uxt).build(){},F_=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","DescribeAnomalyDetectors",{}).n("CloudWatchClient","DescribeAnomalyDetectorsCommand").sc(lxt).build(){},B_=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","DescribeInsightRules",{}).n("CloudWatchClient","DescribeInsightRulesCommand").sc(dxt).build(){},RD=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","DisableAlarmActions",{}).n("CloudWatchClient","DisableAlarmActionsCommand").sc(pxt).build(){},vD=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","DisableInsightRules",{}).n("CloudWatchClient","DisableInsightRulesCommand").sc(mxt).build(){},xD=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","EnableAlarmActions",{}).n("CloudWatchClient","EnableAlarmActionsCommand").sc(gxt).build(){},PD=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","EnableInsightRules",{}).n("CloudWatchClient","EnableInsightRulesCommand").sc(fxt).build(){},bD=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","GetDashboard",{}).n("CloudWatchClient","GetDashboardCommand").sc(hxt).build(){},ID=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","GetInsightRuleReport",{}).n("CloudWatchClient","GetInsightRuleReportCommand").sc(Sxt).build(){},U_=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","GetMetricData",{}).n("CloudWatchClient","GetMetricDataCommand").sc(Ext).build(){},AD=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","GetMetricStatistics",{}).n("CloudWatchClient","GetMetricStatisticsCommand").sc(yxt).build(){},TD=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","GetMetricStream",{}).n("CloudWatchClient","GetMetricStreamCommand").sc(_xt).build(){},wD=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","GetMetricWidgetImage",{}).n("CloudWatchClient","GetMetricWidgetImageCommand").sc(Cxt).build(){},q_=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","ListDashboards",{}).n("CloudWatchClient","ListDashboardsCommand").sc(Rxt).build(){},$_=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","ListManagedInsightRules",{}).n("CloudWatchClient","ListManagedInsightRulesCommand").sc(vxt).build(){},G_=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","ListMetrics",{}).n("CloudWatchClient","ListMetricsCommand").sc(xxt).build(){},j_=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","ListMetricStreams",{}).n("CloudWatchClient","ListMetricStreamsCommand").sc(Pxt).build(){},DD=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","ListTagsForResource",{}).n("CloudWatchClient","ListTagsForResourceCommand").sc(bxt).build(){},OD=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","PutAnomalyDetector",{}).n("CloudWatchClient","PutAnomalyDetectorCommand").sc(Ixt).build(){},kD=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","PutCompositeAlarm",{}).n("CloudWatchClient","PutCompositeAlarmCommand").sc(Axt).build(){},ND=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","PutDashboard",{}).n("CloudWatchClient","PutDashboardCommand").sc(Txt).build(){},LD=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","PutInsightRule",{}).n("CloudWatchClient","PutInsightRuleCommand").sc(wxt).build(){},MD=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","PutManagedInsightRules",{}).n("CloudWatchClient","PutManagedInsightRulesCommand").sc(Dxt).build(){},FD=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","PutMetricAlarm",{}).n("CloudWatchClient","PutMetricAlarmCommand").sc(Oxt).build(){},BD=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions()),ave.getCompressionPlugin(n,{encodings:["gzip"]})]}).s("GraniteServiceVersion20100801","PutMetricData",{}).n("CloudWatchClient","PutMetricDataCommand").sc(kxt).build(){},UD=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","PutMetricStream",{}).n("CloudWatchClient","PutMetricStreamCommand").sc(Nxt).build(){},qD=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","SetAlarmState",{}).n("CloudWatchClient","SetAlarmStateCommand").sc(Lxt).build(){},$D=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","StartMetricStreams",{}).n("CloudWatchClient","StartMetricStreamsCommand").sc(Mxt).build(){},GD=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","StopMetricStreams",{}).n("CloudWatchClient","StopMetricStreamsCommand").sc(Fxt).build(){},jD=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","TagResource",{}).n("CloudWatchClient","TagResourceCommand").sc(Bxt).build(){},VD=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","UntagResource",{}).n("CloudWatchClient","UntagResourceCommand").sc(Uxt).build(){},qxt={DeleteAlarmsCommand:fD,DeleteAnomalyDetectorCommand:hD,DeleteDashboardsCommand:SD,DeleteInsightRulesCommand:ED,DeleteMetricStreamCommand:yD,DescribeAlarmContributorsCommand:_D,DescribeAlarmHistoryCommand:M_,DescribeAlarmsCommand:ap,DescribeAlarmsForMetricCommand:CD,DescribeAnomalyDetectorsCommand:F_,DescribeInsightRulesCommand:B_,DisableAlarmActionsCommand:RD,DisableInsightRulesCommand:vD,EnableAlarmActionsCommand:xD,EnableInsightRulesCommand:PD,GetDashboardCommand:bD,GetInsightRuleReportCommand:ID,GetMetricDataCommand:U_,GetMetricStatisticsCommand:AD,GetMetricStreamCommand:TD,GetMetricWidgetImageCommand:wD,ListDashboardsCommand:q_,ListManagedInsightRulesCommand:$_,ListMetricsCommand:G_,ListMetricStreamsCommand:j_,ListTagsForResourceCommand:DD,PutAnomalyDetectorCommand:OD,PutCompositeAlarmCommand:kD,PutDashboardCommand:ND,PutInsightRuleCommand:LD,PutManagedInsightRulesCommand:MD,PutMetricAlarmCommand:FD,PutMetricDataCommand:BD,PutMetricStreamCommand:UD,SetAlarmStateCommand:qD,StartMetricStreamsCommand:$D,StopMetricStreamsCommand:GD,TagResourceCommand:jD,UntagResourceCommand:VD},HD=class extends eo{};De.createAggregatedClient(qxt,HD);var $xt=Wo.createPaginator(eo,M_,"NextToken","NextToken","MaxRecords"),Gxt=Wo.createPaginator(eo,ap,"NextToken","NextToken","MaxRecords"),jxt=Wo.createPaginator(eo,F_,"NextToken","NextToken","MaxResults"),Vxt=Wo.createPaginator(eo,B_,"NextToken","NextToken","MaxResults"),Hxt=Wo.createPaginator(eo,U_,"NextToken","NextToken","MaxDatapoints"),zxt=Wo.createPaginator(eo,q_,"NextToken","NextToken",""),Wxt=Wo.createPaginator(eo,$_,"NextToken","NextToken","MaxResults"),Kxt=Wo.createPaginator(eo,j_,"NextToken","NextToken","MaxResults"),Qxt=Wo.createPaginator(eo,G_,"NextToken","NextToken",""),Hxe=async(t,e)=>{let r;try{let n=await t.send(new ap(e));r=n;try{if([].concat(...n.MetricAlarms).length>0==!0)return{state:Ua.WaiterState.SUCCESS,reason:r}}catch{}}catch(n){r=n}return{state:Ua.WaiterState.RETRY,reason:r}},Xxt=async(t,e)=>{let r={minDelay:5,maxDelay:120};return Ua.createWaiter({...r,...t},e,Hxe)},Jxt=async(t,e)=>{let r={minDelay:5,maxDelay:120},n=await Ua.createWaiter({...r,...t},e,Hxe);return Ua.checkExceptions(n)},zxe=async(t,e)=>{let r;try{let n=await t.send(new ap(e));r=n;try{if([].concat(...n.CompositeAlarms).length>0==!0)return{state:Ua.WaiterState.SUCCESS,reason:r}}catch{}}catch(n){r=n}return{state:Ua.WaiterState.RETRY,reason:r}},Yxt=async(t,e)=>{let r={minDelay:5,maxDelay:120};return Ua.createWaiter({...r,...t},e,zxe)},Zxt=async(t,e)=>{let r={minDelay:5,maxDelay:120},n=await Ua.createWaiter({...r,...t},e,zxe);return Ua.checkExceptions(n)},ePt={Alarm:"Alarm",ExtensionPeriod:"ExtensionPeriod",WaitPeriod:"WaitPeriod"},tPt={CompositeAlarm:"CompositeAlarm",MetricAlarm:"MetricAlarm"},rPt={Action:"Action",AlarmContributorAction:"AlarmContributorAction",AlarmContributorStateUpdate:"AlarmContributorStateUpdate",ConfigurationUpdate:"ConfigurationUpdate",StateUpdate:"StateUpdate"},nPt={Bits:"Bits",Bits_Second:"Bits/Second",Bytes:"Bytes",Bytes_Second:"Bytes/Second",Count:"Count",Count_Second:"Count/Second",Gigabits:"Gigabits",Gigabits_Second:"Gigabits/Second",Gigabytes:"Gigabytes",Gigabytes_Second:"Gigabytes/Second",Kilobits:"Kilobits",Kilobits_Second:"Kilobits/Second",Kilobytes:"Kilobytes",Kilobytes_Second:"Kilobytes/Second",Megabits:"Megabits",Megabits_Second:"Megabits/Second",Megabytes:"Megabytes",Megabytes_Second:"Megabytes/Second",Microseconds:"Microseconds",Milliseconds:"Milliseconds",None:"None",Percent:"Percent",Seconds:"Seconds",Terabits:"Terabits",Terabits_Second:"Terabits/Second",Terabytes:"Terabytes",Terabytes_Second:"Terabytes/Second"},sPt={PENDING_TRAINING:"PENDING_TRAINING",TRAINED:"TRAINED",TRAINED_INSUFFICIENT_DATA:"TRAINED_INSUFFICIENT_DATA"},oPt={METRIC_MATH:"METRIC_MATH",SINGLE_METRIC:"SINGLE_METRIC"},iPt={GreaterThanOrEqualToThreshold:"GreaterThanOrEqualToThreshold",GreaterThanThreshold:"GreaterThanThreshold",GreaterThanUpperThreshold:"GreaterThanUpperThreshold",LessThanLowerOrGreaterThanUpperThreshold:"LessThanLowerOrGreaterThanUpperThreshold",LessThanLowerThreshold:"LessThanLowerThreshold",LessThanOrEqualToThreshold:"LessThanOrEqualToThreshold",LessThanThreshold:"LessThanThreshold"},aPt={ALARM:"ALARM",INSUFFICIENT_DATA:"INSUFFICIENT_DATA",OK:"OK"},cPt={TIMESTAMP_ASCENDING:"TimestampAscending",TIMESTAMP_DESCENDING:"TimestampDescending"},uPt={PARTIAL_DATA:"PARTIAL_DATA"},lPt={Average:"Average",Maximum:"Maximum",Minimum:"Minimum",SampleCount:"SampleCount",Sum:"Sum"},dPt={COMPLETE:"Complete",FORBIDDEN:"Forbidden",INTERNAL_ERROR:"InternalError",PARTIAL_DATA:"PartialData"},pPt={JSON:"json",OPEN_TELEMETRY_0_7:"opentelemetry0.7",OPEN_TELEMETRY_1_0:"opentelemetry1.0"},mPt={PT3H:"PT3H"};Object.defineProperty(ee,"$Command",{enumerable:!0,get:function(){return De.Command}});Object.defineProperty(ee,"__Client",{enumerable:!0,get:function(){return De.Client}});ee.ActionsSuppressedBy=ePt;ee.AlarmType=tPt;ee.AnomalyDetectorStateValue=sPt;ee.AnomalyDetectorType=oPt;ee.CloudWatch=HD;ee.CloudWatchClient=eo;ee.CloudWatchServiceException=Mn;ee.ComparisonOperator=iPt;ee.ConcurrentModificationException=uve;ee.ConflictException=dve;ee.DashboardInvalidInputError=mve;ee.DashboardNotFoundError=fve;ee.DeleteAlarmsCommand=fD;ee.DeleteAnomalyDetectorCommand=hD;ee.DeleteDashboardsCommand=SD;ee.DeleteInsightRulesCommand=ED;ee.DeleteMetricStreamCommand=yD;ee.DescribeAlarmContributorsCommand=_D;ee.DescribeAlarmHistoryCommand=M_;ee.DescribeAlarmsCommand=ap;ee.DescribeAlarmsForMetricCommand=CD;ee.DescribeAnomalyDetectorsCommand=F_;ee.DescribeInsightRulesCommand=B_;ee.DisableAlarmActionsCommand=RD;ee.DisableInsightRulesCommand=vD;ee.EnableAlarmActionsCommand=xD;ee.EnableInsightRulesCommand=PD;ee.EvaluationState=uPt;ee.GetDashboardCommand=bD;ee.GetInsightRuleReportCommand=ID;ee.GetMetricDataCommand=U_;ee.GetMetricStatisticsCommand=AD;ee.GetMetricStreamCommand=TD;ee.GetMetricWidgetImageCommand=wD;ee.HistoryItemType=rPt;ee.InternalServiceFault=yve;ee.InvalidFormatFault=Lve;ee.InvalidNextToken=Tve;ee.InvalidParameterCombinationException=Cve;ee.InvalidParameterValueException=vve;ee.LimitExceededException=Dve;ee.LimitExceededFault=kve;ee.ListDashboardsCommand=q_;ee.ListManagedInsightRulesCommand=$_;ee.ListMetricStreamsCommand=j_;ee.ListMetricsCommand=G_;ee.ListTagsForResourceCommand=DD;ee.MetricStreamOutputFormat=pPt;ee.MissingRequiredParameterException=Pve;ee.PutAnomalyDetectorCommand=OD;ee.PutCompositeAlarmCommand=kD;ee.PutDashboardCommand=ND;ee.PutInsightRuleCommand=LD;ee.PutManagedInsightRulesCommand=MD;ee.PutMetricAlarmCommand=FD;ee.PutMetricDataCommand=BD;ee.PutMetricStreamCommand=UD;ee.RecentlyActive=mPt;ee.ResourceNotFound=Sve;ee.ResourceNotFoundException=Ive;ee.ScanBy=cPt;ee.SetAlarmStateCommand=qD;ee.StandardUnit=nPt;ee.StartMetricStreamsCommand=$D;ee.StateValue=aPt;ee.Statistic=lPt;ee.StatusCode=dPt;ee.StopMetricStreamsCommand=GD;ee.TagResourceCommand=jD;ee.UntagResourceCommand=VD;ee.paginateDescribeAlarmHistory=$xt;ee.paginateDescribeAlarms=Gxt;ee.paginateDescribeAnomalyDetectors=jxt;ee.paginateDescribeInsightRules=Vxt;ee.paginateGetMetricData=Hxt;ee.paginateListDashboards=zxt;ee.paginateListManagedInsightRules=Wxt;ee.paginateListMetricStreams=Kxt;ee.paginateListMetrics=Qxt;ee.waitForAlarmExists=Xxt;ee.waitForCompositeAlarmExists=Yxt;ee.waitUntilAlarmExists=Jxt;ee.waitUntilCompositeAlarmExists=Zxt});var Jxe=b((V8r,Kz)=>{"use strict";Kz.exports=Xxe;Kz.exports.preferredCharsets=Xxe;var hPt=/^\s*([^\s;]+)\s*(?:;(.*))?$/;function SPt(t){for(var e=t.split(","),r=0,n=0;r0}});var tPe=b((H8r,Qz)=>{"use strict";Qz.exports=ePe;Qz.exports.preferredEncodings=ePe;var RPt=/^\s*([^\s;]+)\s*(?:;(.*))?$/;function vPt(t){for(var e=t.split(","),r=!1,n=1,s=0,o=0;s0}});var iPe=b((z8r,Xz)=>{"use strict";Xz.exports=oPe;Xz.exports.preferredLanguages=oPe;var APt=/^\s*([^\s\-;]+)(?:-([^\s;]+))?\s*(?:;(.*))?$/;function TPt(t){for(var e=t.split(","),r=0,n=0;r0}});var pPe=b((W8r,Jz)=>{"use strict";Jz.exports=lPe;Jz.exports.preferredMediaTypes=lPe;var kPt=/^\s*([^\s\/;]+)\/([^;\s]+)\s*(?:;(.*))?$/;function NPt(t){for(var e=UPt(t),r=0,n=0;r0)if(o.every(function(i){return e.params[i]=="*"||(e.params[i]||"").toLowerCase()==(n.params[i]||"").toLowerCase()}))s|=1;else return null;return{i:r,o:e.i,q:e.q,s}}function lPe(t,e){var r=NPt(t===void 0?"*/*":t||"");if(!e)return r.filter(cPe).sort(aPe).map(FPt);var n=e.map(function(o,i){return LPt(o,r,i)});return n.filter(cPe).sort(aPe).map(function(o){return e[n.indexOf(o)]})}function aPe(t,e){return e.q-t.q||e.s-t.s||t.o-e.o||t.i-e.i||0}function FPt(t){return t.type+"/"+t.subtype}function cPe(t){return t.q>0}function dPe(t){for(var e=0,r=0;(r=t.indexOf('"',r))!==-1;)e++,r++;return e}function BPt(t){var e=t.indexOf("="),r,n;return e===-1?r=t:(r=t.slice(0,e),n=t.slice(e+1)),[r,n]}function UPt(t){for(var e=t.split(","),r=1,n=0;r{"use strict";var $Pt=Jxe(),GPt=tPe(),jPt=iPe(),VPt=pPe();Yz.exports=Ot;Yz.exports.Negotiator=Ot;function Ot(t){if(!(this instanceof Ot))return new Ot(t);this.request=t}Ot.prototype.charset=function(e){var r=this.charsets(e);return r&&r[0]};Ot.prototype.charsets=function(e){return $Pt(this.request.headers["accept-charset"],e)};Ot.prototype.encoding=function(e,r){var n=this.encodings(e,r);return n&&n[0]};Ot.prototype.encodings=function(e,r){var n=r||{};return GPt(this.request.headers["accept-encoding"],e,n.preferred)};Ot.prototype.language=function(e){var r=this.languages(e);return r&&r[0]};Ot.prototype.languages=function(e){return jPt(this.request.headers["accept-language"],e)};Ot.prototype.mediaType=function(e){var r=this.mediaTypes(e);return r&&r[0]};Ot.prototype.mediaTypes=function(e){return VPt(this.request.headers.accept,e)};Ot.prototype.preferredCharset=Ot.prototype.charset;Ot.prototype.preferredCharsets=Ot.prototype.charsets;Ot.prototype.preferredEncoding=Ot.prototype.encoding;Ot.prototype.preferredEncodings=Ot.prototype.encodings;Ot.prototype.preferredLanguage=Ot.prototype.language;Ot.prototype.preferredLanguages=Ot.prototype.languages;Ot.prototype.preferredMediaType=Ot.prototype.mediaType;Ot.prototype.preferredMediaTypes=Ot.prototype.mediaTypes});var fPe=b((Q8r,gPe)=>{"use strict";var HPt=require("mime-db"),zPt=/^text\/|\+(?:json|text|xml)$/i,WPt=/^\s*([^;\s]*)(?:;|\s|$)/;gPe.exports=KPt;function KPt(t){if(!t||typeof t!="string")return!1;var e=WPt.exec(t),r=e&&e[1].toLowerCase(),n=HPt[r];return n&&n.compressible!==void 0?n.compressible:zPt.test(r)||void 0}});var lW=b(yO=>{"use strict";var{format:TPe}=require("util");yO.warn={deprecated(t){return()=>{throw new Error(TPe("{ %s } was removed in winston@3.0.0.",t))}},useFormat(t){return()=>{throw new Error([TPe("{ %s } was removed in winston@3.0.0.",t),"Use a custom winston.format = winston.format(function) instead."].join(` +`))}},forFunctions(t,e,r){r.forEach(n=>{t[n]=yO.warn[e](n)})},forProperties(t,e,r){r.forEach(n=>{let s=yO.warn[e](n);Object.defineProperty(t,n,{get:s,set:s})})}}});var wPe=b((y5r,dbt)=>{dbt.exports={name:"winston",description:"A logger for just about everything.",version:"3.19.0",author:"Charlie Robbins ",maintainers:["David Hyde "],repository:{type:"git",url:"https://github.com/winstonjs/winston.git"},keywords:["winston","logger","logging","logs","sysadmin","bunyan","pino","loglevel","tools","json","stream"],dependencies:{"@dabh/diagnostics":"^2.0.8","@colors/colors":"^1.6.0",async:"^3.2.3","is-stream":"^2.0.0",logform:"^2.7.0","one-time":"^1.0.0","readable-stream":"^3.4.0","safe-stable-stringify":"^2.3.1","stack-trace":"0.0.x","triple-beam":"^1.3.0","winston-transport":"^4.9.0"},devDependencies:{"@babel/cli":"^7.23.9","@babel/core":"^7.24.0","@babel/preset-env":"^7.24.0","@dabh/eslint-config-populist":"^4.4.0","@types/node":"^20.11.24","abstract-winston-transport":"^0.5.1",assume:"^2.2.0","cross-spawn-async":"^2.2.5",eslint:"^8.57.0",hock:"^1.4.1",jest:"^29.7.0",rimraf:"5.0.10",split2:"^4.1.0","std-mocks":"^2.0.0",through2:"^4.0.2","winston-compat":"^0.1.5"},main:"./lib/winston.js",browser:"./dist/winston",types:"./index.d.ts",scripts:{lint:"eslint lib/*.js lib/winston/*.js lib/winston/**/*.js --resolve-plugins-relative-to ./node_modules/@dabh/eslint-config-populist",test:"jest","test:unit":"jest -c test/jest.config.unit.js","test:integration":"jest -c test/jest.config.integration.js","test:typescript":"npx --package typescript tsc --project test",build:"babel lib -d dist",prebuild:"rimraf dist",prepublishOnly:"npm run build"},engines:{node:">= 12.0.0"},license:"MIT"}});var kPe=b((C5r,OPe)=>{"use strict";var pbt=require("os"),{LEVEL:DPe,MESSAGE:_f}=require("triple-beam"),mbt=require("winston-transport");OPe.exports=class extends mbt{constructor(e={}){super(e),this.name=e.name||"console",this.stderrLevels=this._stringArrayToSet(e.stderrLevels),this.consoleWarnLevels=this._stringArrayToSet(e.consoleWarnLevels),this.eol=typeof e.eol=="string"?e.eol:pbt.EOL,this.forceConsole=e.forceConsole||!1,this._consoleLog=console.log.bind(console),this._consoleWarn=console.warn.bind(console),this._consoleError=console.error.bind(console),this.setMaxListeners(30)}log(e,r){if(setImmediate(()=>this.emit("logged",e)),this.stderrLevels[e[DPe]]){console._stderr&&!this.forceConsole?console._stderr.write(`${e[_f]}${this.eol}`):this._consoleError(e[_f]),r&&r();return}else if(this.consoleWarnLevels[e[DPe]]){console._stderr&&!this.forceConsole?console._stderr.write(`${e[_f]}${this.eol}`):this._consoleWarn(e[_f]),r&&r();return}console._stdout&&!this.forceConsole?console._stdout.write(`${e[_f]}${this.eol}`):this._consoleLog(e[_f]),r&&r()}_stringArrayToSet(e,r){if(!e)return{};if(r=r||"Cannot make set from type other than Array of string elements",!Array.isArray(e))throw new Error(r);return e.reduce((n,s)=>{if(typeof s!="string")throw new Error(r);return n[s]=!0,n},{})}}});var LPe=b((R5r,NPe)=>{"use strict";var dW=require("fs"),{StringDecoder:gbt}=require("string_decoder"),{Stream:fbt}=require("readable-stream");function hbt(){}NPe.exports=(t,e)=>{let r=Buffer.alloc(65536),n=new gbt("utf8"),s=new fbt,o="",i=0,a=0;return t.start===-1&&delete t.start,s.readable=!0,s.destroy=()=>{s.destroyed=!0,s.emit("end"),s.emit("close")},dW.open(t.file,"a+","0644",(c,u)=>{if(c){e?e(c):s.emit("error",c),s.destroy();return}(function l(){if(s.destroyed){dW.close(u,hbt);return}return dW.read(u,r,0,r.length,i,(d,p)=>{if(d){e?e(d):s.emit("error",d),s.destroy();return}if(!p)return o&&((t.start==null||a>t.start)&&(e?e(null,o):s.emit("line",o)),a++,o=""),setTimeout(l,1e3);let g=n.write(r.slice(0,p));e||s.emit("data",g),g=(o+g).split(/\n+/);let y=g.length-1,R=0;for(;Rt.start)&&(e?e(null,g[R]):s.emit("line",g[R])),a++;return o=g[y],i+=p,l()})})()}),e?s.destroy:s}});var UPe=b((x5r,BPe)=>{"use strict";var Cs=require("fs"),Qr=require("path"),MPe=require("async/series"),Sbt=require("zlib"),{MESSAGE:Ebt}=require("triple-beam"),{Stream:ybt,PassThrough:FPe}=require("readable-stream"),_bt=require("winston-transport"),Gi=require("@dabh/diagnostics")("winston:file"),Cbt=require("os"),Rbt=LPe();BPe.exports=class extends _bt{constructor(e={}){super(e),this.name=e.name||"file";function r(n,...s){s.slice(1).forEach(o=>{if(e[o])throw new Error(`Cannot set ${o} and ${n} together`)})}if(this._stream=new FPe,this._stream.setMaxListeners(30),this._onError=this._onError.bind(this),e.filename||e.dirname)r("filename or dirname","stream"),this._basename=this.filename=e.filename?Qr.basename(e.filename):"winston.log",this.dirname=e.dirname||Qr.dirname(e.filename),this.options=e.options||{flags:"a"};else if(e.stream)console.warn("options.stream will be removed in winston@4. Use winston.transports.Stream"),r("stream","filename","maxsize"),this._dest=this._stream.pipe(this._setupStream(e.stream)),this.dirname=Qr.dirname(this._dest.path);else throw new Error("Cannot log to file without filename or stream.");this.maxsize=e.maxsize||null,this.rotationFormat=e.rotationFormat||!1,this.zippedArchive=e.zippedArchive||!1,this.maxFiles=e.maxFiles||null,this.eol=typeof e.eol=="string"?e.eol:Cbt.EOL,this.tailable=e.tailable||!1,this.lazy=e.lazy||!1,this._size=0,this._pendingSize=0,this._created=0,this._drain=!1,this._opening=!1,this._ending=!1,this._fileExist=!1,this.dirname&&this._createLogDirIfNotExist(this.dirname),this.lazy||this.open()}finishIfEnding(){this._ending&&(this._opening?this.once("open",()=>{this._stream.once("finish",()=>this.emit("finish")),setImmediate(()=>this._stream.end())}):(this._stream.once("finish",()=>this.emit("finish")),setImmediate(()=>this._stream.end())))}_final(e){if(this._opening){this.once("open",()=>this._final(e));return}if(this._stream.end(),!this._dest||this._dest.writableFinished)return e();this._dest.once("finish",e),this._dest.once("error",e)}log(e,r=()=>{}){if(this.silent)return r(),!0;if(this._drain){this._stream.once("drain",()=>{this._drain=!1,this.log(e,r)});return}if(this._rotate){this._stream.once("rotate",()=>{this._rotate=!1,this.log(e,r)});return}if(this.lazy){if(!this._fileExist){this._opening||this.open(),this.once("open",()=>{this._fileExist=!0,this.log(e,r)});return}if(this._needsNewFile(this._pendingSize)){this._dest.once("close",()=>{this._opening||this.open(),this.once("open",()=>{this.log(e,r)})});return}}let n=`${e[Ebt]}${this.eol}`,s=Buffer.byteLength(n);function o(){if(this._size+=s,this._pendingSize-=s,Gi("logged %s %s",this._size,n),this.emit("logged",e),!this._rotate&&!this._opening&&this._needsNewFile()){if(this.lazy){this._endStream(()=>{this.emit("fileclosed")});return}this._rotate=!0,this._endStream(()=>this._rotateFile())}}this._pendingSize+=s,this._opening&&!this.rotatedWhileOpening&&this._needsNewFile(this._size+this._pendingSize)&&(this.rotatedWhileOpening=!0);let i=this._stream.write(n,o.bind(this));return i?r():(this._drain=!0,this._stream.once("drain",()=>{this._drain=!1,r()})),Gi("written",i,this._drain),this.finishIfEnding(),i}query(e,r){typeof e=="function"&&(r=e,e={}),e=d(e);let n=Qr.join(this.dirname,this.filename),s="",o=[],i=0,a=Cs.createReadStream(n,{encoding:"utf8"});a.on("error",p=>{if(a.readable&&a.destroy(),!!r)return p.code!=="ENOENT"?r(p):r(null,o)}),a.on("data",p=>{p=(s+p).split(/\n+/);let g=p.length-1,y=0;for(;y=e.start)&&c(p[y]),i++;s=p[g]}),a.on("close",()=>{s&&c(s,!0),e.order==="desc"&&(o=o.reverse()),r&&r(null,o)});function c(p,g){try{let y=JSON.parse(p);l(y)&&u(y)}catch(y){g||a.emit("error",y)}}function u(p){if(e.rows&&o.length>=e.rows&&e.order!=="desc"){a.readable&&a.destroy();return}e.fields&&(p=e.fields.reduce((g,y)=>(g[y]=p[y],g),{})),e.order==="desc"&&o.length>=e.rows&&o.shift(),o.push(p)}function l(p){if(!p||typeof p!="object")return;let g=new Date(p.timestamp);if(!(e.from&&ge.until||e.level&&e.level!==p.level))return!0}function d(p){return p=p||{},p.rows=p.rows||p.limit||10,p.start=p.start||0,p.until=p.until||new Date,typeof p.until!="object"&&(p.until=new Date(p.until)),p.from=p.from||p.until-24*60*60*1e3,typeof p.from!="object"&&(p.from=new Date(p.from)),p.order=p.order||"desc",p}}stream(e={}){let r=Qr.join(this.dirname,this.filename),n=new ybt,s={file:r,start:e.start};return n.destroy=Rbt(s,(o,i)=>{if(o)return n.emit("error",o);try{n.emit("data",i),i=JSON.parse(i),n.emit("log",i)}catch(a){n.emit("error",a)}}),n}open(){this.filename&&(this._opening||(this._opening=!0,this.stat((e,r)=>{if(e)return this.emit("error",e);Gi("stat done: %s { size: %s }",this.filename,r),this._size=r,this._dest=this._createStream(this._stream),this._opening=!1,this.once("open",()=>{this._stream.emit("rotate")||(this._rotate=!1)})})))}stat(e){let r=this._getFile(),n=Qr.join(this.dirname,r);Cs.stat(n,(s,o)=>{if(s&&s.code==="ENOENT")return Gi("ENOENT\xA0ok",n),this.filename=r,e(null,0);if(s)return Gi(`err ${s.code} ${n}`),e(s);if(!o||this._needsNewFile(o.size))return this._incFile(()=>this.stat(e));this.filename=r,e(null,o.size)})}close(e){this._stream&&this._stream.end(()=>{e&&e(),this.emit("flush"),this.emit("closed")})}_needsNewFile(e){return e=e||this._size,this.maxsize&&e>=this.maxsize}_onError(e){this.emit("error",e)}_setupStream(e){return e.on("error",this._onError),e}_cleanupStream(e){return e.removeListener("error",this._onError),e.destroy(),e}_rotateFile(){this._incFile(()=>this.open())}_endStream(e=()=>{}){this._dest?(this._stream.unpipe(this._dest),this._dest.end(()=>{this._cleanupStream(this._dest),e()})):e()}_createStream(e){let r=Qr.join(this.dirname,this.filename);Gi("create stream start",r,this.options);let n=Cs.createWriteStream(r,this.options).on("error",s=>Gi(s)).on("close",()=>Gi("close",n.path,n.bytesWritten)).on("open",()=>{Gi("file open ok",r),this.emit("open",r),e.pipe(n),this.rotatedWhileOpening&&(this._stream=new FPe,this._stream.setMaxListeners(30),this._rotateFile(),this.rotatedWhileOpening=!1,this._cleanupStream(n),e.end())});return Gi("create stream ok",r),n}_incFile(e){Gi("_incFile",this.filename);let r=Qr.extname(this._basename),n=Qr.basename(this._basename,r),s=[];this.zippedArchive&&s.push(function(o){let i=this._created>0&&!this.tailable?this._created:"";this._compressFile(Qr.join(this.dirname,`${n}${i}${r}`),Qr.join(this.dirname,`${n}${i}${r}.gz`),o)}.bind(this)),s.push(function(o){this.tailable?this._checkMaxFilesTailable(r,n,o):(this._created+=1,this._checkMaxFilesIncrementing(r,n,o))}.bind(this)),MPe(s,e)}_getFile(){let e=Qr.extname(this._basename),r=Qr.basename(this._basename,e),n=this.rotationFormat?this.rotationFormat():this._created;return!this.tailable&&this._created?`${r}${n}${e}`:`${r}${e}`}_checkMaxFilesIncrementing(e,r,n){if(!this.maxFiles||this._created1;i--)s.push(function(a,c){let u=`${r}${a-1}${e}${o}`,l=Qr.join(this.dirname,u);Cs.exists(l,d=>{if(!d)return c(null);u=`${r}${a}${e}${o}`,Cs.rename(l,Qr.join(this.dirname,u),c)})}.bind(this,i));MPe(s,()=>{Cs.rename(Qr.join(this.dirname,`${r}${e}${o}`),Qr.join(this.dirname,`${r}1${e}${o}`),n)})}_compressFile(e,r,n){Cs.access(e,Cs.F_OK,s=>{if(s)return n();var o=Sbt.createGzip(),i=Cs.createReadStream(e),a=Cs.createWriteStream(r);a.on("finish",()=>{Cs.unlink(e,n)}),i.pipe(o).pipe(a)})}_createLogDirIfNotExist(e){Cs.existsSync(e)||Cs.mkdirSync(e,{recursive:!0})}}});var $Pe=b((b5r,qPe)=>{"use strict";var vbt=require("http"),xbt=require("https"),{Stream:Pbt}=require("readable-stream"),bbt=require("winston-transport"),{configure:Ibt}=require("safe-stable-stringify");qPe.exports=class extends bbt{constructor(e={}){super(e),this.options=e,this.name=e.name||"http",this.ssl=!!e.ssl,this.host=e.host||"localhost",this.port=e.port,this.auth=e.auth,this.path=e.path||"",this.maximumDepth=e.maximumDepth,this.agent=e.agent,this.headers=e.headers||{},this.headers["content-type"]="application/json",this.batch=e.batch||!1,this.batchInterval=e.batchInterval||5e3,this.batchCount=e.batchCount||10,this.batchOptions=[],this.batchTimeoutID=-1,this.batchCallback={},this.port||(this.port=this.ssl?443:80)}log(e,r){this._request(e,null,null,(n,s)=>{s&&s.statusCode!==200&&(n=new Error(`Invalid HTTP Status Code: ${s.statusCode}`)),n?this.emit("warn",n):this.emit("logged",e)}),r&&setImmediate(r)}query(e,r){typeof e=="function"&&(r=e,e={}),e={method:"query",params:this.normalizeQuery(e)};let n=e.params.auth||null;delete e.params.auth;let s=e.params.path||null;delete e.params.path,this._request(e,n,s,(o,i,a)=>{if(i&&i.statusCode!==200&&(o=new Error(`Invalid HTTP Status Code: ${i.statusCode}`)),o)return r(o);if(typeof a=="string")try{a=JSON.parse(a)}catch(c){return r(c)}r(null,a)})}stream(e={}){let r=new Pbt;e={method:"stream",params:e};let n=e.params.path||null;delete e.params.path;let s=e.params.auth||null;delete e.params.auth;let o="",i=this._request(e,s,n);return r.destroy=()=>i.destroy(),i.on("data",a=>{a=(o+a).split(/\n+/);let c=a.length-1,u=0;for(;ur.emit("error",a)),r}_request(e,r,n,s){e=e||{},r=r||this.auth,n=n||this.path||"",this.batch?this._doBatch(e,s,r,n):this._doRequest(e,s,r,n)}_doBatch(e,r,n,s){if(this.batchOptions.push(e),this.batchOptions.length===1){let o=this;this.batchCallback=r,this.batchTimeoutID=setTimeout(function(){o.batchTimeoutID=-1,o._doBatchRequest(o.batchCallback,n,s)},this.batchInterval)}this.batchOptions.length===this.batchCount&&this._doBatchRequest(this.batchCallback,n,s)}_doBatchRequest(e,r,n){this.batchTimeoutID>0&&(clearTimeout(this.batchTimeoutID),this.batchTimeoutID=-1);let s=this.batchOptions.slice();this.batchOptions=[],this._doRequest(s,e,r,n)}_doRequest(e,r,n,s){let o=Object.assign({},this.headers);n&&n.bearer&&(o.Authorization=`Bearer ${n.bearer}`);let i=(this.ssl?xbt:vbt).request({...this.options,method:"POST",host:this.host,port:this.port,path:`/${s.replace(/^\//,"")}`,headers:o,auth:n&&n.username&&n.password?`${n.username}:${n.password}`:"",agent:this.agent});i.on("error",r),i.on("response",c=>c.on("end",()=>r(null,c)).resume());let a=Ibt({...this.maximumDepth&&{maximumDepth:this.maximumDepth}});i.end(Buffer.from(a(e,this.options.replacer),"utf8"))}}});var jPe=b((A5r,GPe)=>{"use strict";var Abt=require("is-stream"),{MESSAGE:Tbt}=require("triple-beam"),wbt=require("os"),Dbt=require("winston-transport");GPe.exports=class extends Dbt{constructor(e={}){if(super(e),!e.stream||!Abt(e.stream))throw new Error("options.stream is required.");this._stream=e.stream,this._stream.setMaxListeners(1/0),this.isObjectMode=e.stream._writableState.objectMode,this.eol=typeof e.eol=="string"?e.eol:wbt.EOL}log(e,r){if(setImmediate(()=>this.emit("logged",e)),this.isObjectMode){this._stream.write(e),r&&r();return}this._stream.write(`${e[Tbt]}${this.eol}`),r&&r()}}});var VPe=b(Z_=>{"use strict";Object.defineProperty(Z_,"Console",{configurable:!0,enumerable:!0,get(){return kPe()}});Object.defineProperty(Z_,"File",{configurable:!0,enumerable:!0,get(){return UPe()}});Object.defineProperty(Z_,"Http",{configurable:!0,enumerable:!0,get(){return $Pe()}});Object.defineProperty(Z_,"Stream",{configurable:!0,enumerable:!0,get(){return jPe()}})});var CO=b(eC=>{"use strict";var _O=require("logform"),{configs:pW}=require("triple-beam");eC.cli=_O.levels(pW.cli);eC.npm=_O.levels(pW.npm);eC.syslog=_O.levels(pW.syslog);eC.addColors=_O.levels});var zPe=b((O5r,HPe)=>{"use strict";var{Writable:Obt}=require("readable-stream");HPe.exports=class extends Obt{constructor(e){if(super({objectMode:!0}),!e)throw new Error("ExceptionStream requires a TransportStream instance.");this.handleExceptions=!0,this.transport=e}_write(e,r,n){return e.exception?this.transport.log(e,n):(n(),!0)}}});var gW=b((N5r,QPe)=>{"use strict";var WPe=require("os"),kbt=require("async/forEach"),mW=require("@dabh/diagnostics")("winston:exception"),Nbt=require("one-time"),KPe=require("stack-trace"),Lbt=zPe();QPe.exports=class{constructor(e){if(!e)throw new Error("Logger is required to handle exceptions");this.logger=e,this.handlers=new Map}handle(...e){e.forEach(r=>{if(Array.isArray(r))return r.forEach(n=>this._addHandler(n));this._addHandler(r)}),this.catcher||(this.catcher=this._uncaughtException.bind(this),process.on("uncaughtException",this.catcher))}unhandle(){this.catcher&&(process.removeListener("uncaughtException",this.catcher),this.catcher=!1,Array.from(this.handlers.values()).forEach(e=>this.logger.unpipe(e)))}getAllInfo(e){let r=null;return e&&(r=typeof e=="string"?e:e.message),{error:e,level:"error",message:[`uncaughtException: ${r||"(no error message)"}`,e&&e.stack||" No stack trace"].join(` +`),stack:e&&e.stack,exception:!0,date:new Date().toString(),process:this.getProcessInfo(),os:this.getOsInfo(),trace:this.getTrace(e)}}getProcessInfo(){return{pid:process.pid,uid:process.getuid?process.getuid():null,gid:process.getgid?process.getgid():null,cwd:process.cwd(),execPath:process.execPath,version:process.version,argv:process.argv,memoryUsage:process.memoryUsage()}}getOsInfo(){return{loadavg:WPe.loadavg(),uptime:WPe.uptime()}}getTrace(e){return(e?KPe.parse(e):KPe.get()).map(n=>({column:n.getColumnNumber(),file:n.getFileName(),function:n.getFunctionName(),line:n.getLineNumber(),method:n.getMethodName(),native:n.isNative()}))}_addHandler(e){if(!this.handlers.has(e)){e.handleExceptions=!0;let r=new Lbt(e);this.handlers.set(e,r),this.logger.pipe(r)}}_uncaughtException(e){let r=this.getAllInfo(e),n=this._getExceptionHandlers(),s=typeof this.logger.exitOnError=="function"?this.logger.exitOnError(e):this.logger.exitOnError,o;!n.length&&s&&(console.warn("winston: exitOnError cannot be true with no exception handlers."),console.warn("winston: not exiting process."),s=!1);function i(){mW("doExit",s),mW("process._exiting",process._exiting),s&&!process._exiting&&(o&&clearTimeout(o),process.exit(1))}if(!n||n.length===0)return process.nextTick(i);kbt(n,(a,c)=>{let u=Nbt(c),l=a.transport||a;function d(p){return()=>{mW(p),u()}}l._ending=!0,l.once("finish",d("finished")),l.once("error",d("error"))},()=>s&&i()),this.logger.log(r),s&&(o=setTimeout(i,3e3))}_getExceptionHandlers(){return this.logger.transports.filter(e=>(e.transport||e).handleExceptions)}}});var JPe=b((M5r,XPe)=>{"use strict";var{Writable:Mbt}=require("readable-stream");XPe.exports=class extends Mbt{constructor(e){if(super({objectMode:!0}),!e)throw new Error("RejectionStream requires a TransportStream instance.");this.handleRejections=!0,this.transport=e}_write(e,r,n){return e.rejection?this.transport.log(e,n):(n(),!0)}}});var hW=b((B5r,ebe)=>{"use strict";var YPe=require("os"),Fbt=require("async/forEach"),fW=require("@dabh/diagnostics")("winston:rejection"),Bbt=require("one-time"),ZPe=require("stack-trace"),Ubt=JPe();ebe.exports=class{constructor(e){if(!e)throw new Error("Logger is required to handle rejections");this.logger=e,this.handlers=new Map}handle(...e){e.forEach(r=>{if(Array.isArray(r))return r.forEach(n=>this._addHandler(n));this._addHandler(r)}),this.catcher||(this.catcher=this._unhandledRejection.bind(this),process.on("unhandledRejection",this.catcher))}unhandle(){this.catcher&&(process.removeListener("unhandledRejection",this.catcher),this.catcher=!1,Array.from(this.handlers.values()).forEach(e=>this.logger.unpipe(e)))}getAllInfo(e){let r=null;return e&&(r=typeof e=="string"?e:e.message),{error:e,level:"error",message:[`unhandledRejection: ${r||"(no error message)"}`,e&&e.stack||" No stack trace"].join(` +`),stack:e&&e.stack,rejection:!0,date:new Date().toString(),process:this.getProcessInfo(),os:this.getOsInfo(),trace:this.getTrace(e)}}getProcessInfo(){return{pid:process.pid,uid:process.getuid?process.getuid():null,gid:process.getgid?process.getgid():null,cwd:process.cwd(),execPath:process.execPath,version:process.version,argv:process.argv,memoryUsage:process.memoryUsage()}}getOsInfo(){return{loadavg:YPe.loadavg(),uptime:YPe.uptime()}}getTrace(e){return(e?ZPe.parse(e):ZPe.get()).map(n=>({column:n.getColumnNumber(),file:n.getFileName(),function:n.getFunctionName(),line:n.getLineNumber(),method:n.getMethodName(),native:n.isNative()}))}_addHandler(e){if(!this.handlers.has(e)){e.handleRejections=!0;let r=new Ubt(e);this.handlers.set(e,r),this.logger.pipe(r)}}_unhandledRejection(e){let r=this.getAllInfo(e),n=this._getRejectionHandlers(),s=typeof this.logger.exitOnError=="function"?this.logger.exitOnError(e):this.logger.exitOnError,o;!n.length&&s&&(console.warn("winston: exitOnError cannot be true with no rejection handlers."),console.warn("winston: not exiting process."),s=!1);function i(){fW("doExit",s),fW("process._exiting",process._exiting),s&&!process._exiting&&(o&&clearTimeout(o),process.exit(1))}if(!n||n.length===0)return process.nextTick(i);Fbt(n,(a,c)=>{let u=Bbt(c),l=a.transport||a;function d(p){return()=>{fW(p),u()}}l._ending=!0,l.once("finish",d("finished")),l.once("error",d("error"))},()=>s&&i()),this.logger.log(r),s&&(o=setTimeout(i,3e3))}_getRejectionHandlers(){return this.logger.transports.filter(e=>(e.transport||e).handleRejections)}}});var rbe=b((U5r,tbe)=>{"use strict";var SW=class{constructor(e){let r=RO();if(typeof e!="object"||Array.isArray(e)||!(e instanceof r))throw new Error("Logger is required for profiling");this.logger=e,this.start=Date.now()}done(...e){typeof e[e.length-1]=="function"&&(console.warn("Callback function no longer supported as of winston@3.0.0"),e.pop());let r=typeof e[e.length-1]=="object"?e.pop():{};return r.level=r.level||"info",r.durationMs=Date.now()-this.start,this.logger.write(r)}};tbe.exports=SW});var RO=b((q5r,ibe)=>{"use strict";var{Stream:qbt,Transform:$bt}=require("readable-stream"),nbe=require("async/forEach"),{LEVEL:qa,SPLAT:sbe}=require("triple-beam"),obe=require("is-stream"),Gbt=gW(),jbt=hW(),Vbt=require("winston-transport/legacy"),Hbt=rbe(),{warn:zbt}=lW(),Wbt=CO(),Kbt=/%[scdjifoO%]/g,vO=class extends $bt{constructor(e){super({objectMode:!0}),this.configure(e)}child(e){let r=this;return Object.create(r,{write:{value:function(n){let s=Object.assign({},e,n);n instanceof Error&&(s.stack=n.stack,s.message=n.message,s.cause=n.cause),r.write(s)}}})}configure({silent:e,format:r,defaultMeta:n,levels:s,level:o="info",exitOnError:i=!0,transports:a,colors:c,emitErrs:u,formatters:l,padLevels:d,rewriters:p,stripColors:g,exceptionHandlers:y,rejectionHandlers:R}={}){if(this.transports.length&&this.clear(),this.silent=e,this.format=r||this.format||require("logform/json")(),this.defaultMeta=n||null,this.levels=s||this.levels||Wbt.npm.levels,this.level=o,this.exceptions&&this.exceptions.unhandle(),this.rejections&&this.rejections.unhandle(),this.exceptions=new Gbt(this),this.rejections=new jbt(this),this.profilers={},this.exitOnError=i,a&&(a=Array.isArray(a)?a:[a],a.forEach(D=>this.add(D))),c||u||l||d||p||g)throw new Error(["{ colors, emitErrs, formatters, padLevels, rewriters, stripColors } were removed in winston@3.0.0.","Use a custom winston.format(function) instead.","See: https://github.com/winstonjs/winston/tree/master/UPGRADE-3.0.md"].join(` +`));y&&this.exceptions.handle(y),R&&this.rejections.handle(R)}getHighestLogLevel(){let e=tC(this.levels,this.level);return!this.transports||this.transports.length===0?e:this.transports.reduce((r,n)=>{let s=tC(this.levels,n.level);return s!==null&&s>r?s:r},e)}isLevelEnabled(e){let r=tC(this.levels,e);if(r===null)return!1;let n=tC(this.levels,this.level);return n===null?!1:!this.transports||this.transports.length===0?n>=r:this.transports.findIndex(o=>{let i=tC(this.levels,o.level);return i===null&&(i=n),i>=r})!==-1}log(e,r,...n){if(arguments.length===1)return e[qa]=e.level,this._addDefaultMeta(e),this.write(e),this;if(arguments.length===2)return r&&typeof r=="object"?(r[qa]=r.level=e,this._addDefaultMeta(r),this.write(r),this):(r={[qa]:e,level:e,message:r},this._addDefaultMeta(r),this.write(r),this);let[s]=n;if(typeof s=="object"&&s!==null&&!(r&&r.match&&r.match(Kbt))){let i=Object.assign({},this.defaultMeta,s,{[qa]:e,[sbe]:n,level:e,message:r});return s.message&&(i.message=`${i.message} ${s.message}`),s.stack&&(i.stack=s.stack),s.cause&&(i.cause=s.cause),this.write(i),this}return this.write(Object.assign({},this.defaultMeta,{[qa]:e,[sbe]:n,level:e,message:r})),this}_transform(e,r,n){if(this.silent)return n();e[qa]||(e[qa]=e.level),!this.levels[e[qa]]&&this.levels[e[qa]]!==0&&console.error("[winston] Unknown logger level: %s",e[qa]),this._readableState.pipes||console.error("[winston] Attempt to write logs with no transports, which can increase memory usage: %j",e);try{this.push(this.format.transform(e,this.format.options))}finally{this._writableState.sync=!1,n()}}_final(e){let r=this.transports.slice();nbe(r,(n,s)=>{if(!n||n.finished)return setImmediate(s);n.once("finish",s),n.end()},e)}add(e){let r=!obe(e)||e.log.length>2?new Vbt({transport:e}):e;if(!r._writableState||!r._writableState.objectMode)throw new Error("Transports must WritableStreams in objectMode. Set { objectMode: true }.");return this._onEvent("error",r),this._onEvent("warn",r),this.pipe(r),e.handleExceptions&&this.exceptions.handle(),e.handleRejections&&this.rejections.handle(),this}remove(e){if(!e)return this;let r=e;return(!obe(e)||e.log.length>2)&&(r=this.transports.filter(n=>n.transport===e)[0]),r&&this.unpipe(r),this}clear(){return this.unpipe(),this}close(){return this.exceptions.unhandle(),this.rejections.unhandle(),this.clear(),this.emit("close"),this}setLevels(){zbt.deprecated("setLevels")}query(e,r){typeof e=="function"&&(r=e,e={}),e=e||{};let n={},s=Object.assign({},e.query||{});function o(a,c){e.query&&typeof a.formatQuery=="function"&&(e.query=a.formatQuery(s)),a.query(e,(u,l)=>{if(u)return c(u);typeof a.formatResults=="function"&&(l=a.formatResults(l,e.format)),c(null,l)})}function i(a,c){o(a,(u,l)=>{c&&(l=u||l,l&&(n[a.name]=l),c()),c=null})}nbe(this.transports.filter(a=>!!a.query),i,()=>r(null,n))}stream(e={}){let r=new qbt,n=[];return r._streams=n,r.destroy=()=>{let s=n.length;for(;s--;)n[s].destroy()},this.transports.filter(s=>!!s.stream).forEach(s=>{let o=s.stream(e);o&&(n.push(o),o.on("log",i=>{i.transport=i.transport||[],i.transport.push(s.name),r.emit("log",i)}),o.on("error",i=>{i.transport=i.transport||[],i.transport.push(s.name),r.emit("error",i)}))}),r}startTimer(){return new Hbt(this)}profile(e,...r){let n=Date.now();if(this.profilers[e]){let s=this.profilers[e];delete this.profilers[e],typeof r[r.length-2]=="function"&&(console.warn("Callback function no longer supported as of winston@3.0.0"),r.pop());let o=typeof r[r.length-1]=="object"?r.pop():{};return o.level=o.level||"info",o.durationMs=n-s,o.message=o.message||e,this.write(o)}return this.profilers[e]=n,this}handleExceptions(...e){console.warn("Deprecated: .handleExceptions() will be removed in winston@4. Use .exceptions.handle()"),this.exceptions.handle(...e)}unhandleExceptions(...e){console.warn("Deprecated: .unhandleExceptions() will be removed in winston@4. Use .exceptions.unhandle()"),this.exceptions.unhandle(...e)}cli(){throw new Error(["Logger.cli() was removed in winston@3.0.0","Use a custom winston.formats.cli() instead.","See: https://github.com/winstonjs/winston/tree/master/UPGRADE-3.0.md"].join(` +`))}_onEvent(e,r){function n(s){e==="error"&&!this.transports.includes(r)&&this.add(r),this.emit(e,s,r)}r["__winston"+e]||(r["__winston"+e]=n.bind(this),r.on(e,r["__winston"+e]))}_addDefaultMeta(e){this.defaultMeta&&Object.assign(e,this.defaultMeta)}};function tC(t,e){let r=t[e];return!r&&r!==0?null:r}Object.defineProperty(vO.prototype,"transports",{configurable:!1,enumerable:!0,get(){let{pipes:t}=this._readableState;return Array.isArray(t)?t:[t].filter(Boolean)}});ibe.exports=vO});var EW=b(($5r,abe)=>{"use strict";var{LEVEL:Qbt}=require("triple-beam"),Xbt=CO(),Jbt=RO(),Ybt=require("@dabh/diagnostics")("winston:create-logger");function Zbt(t){return"is"+t.charAt(0).toUpperCase()+t.slice(1)+"Enabled"}abe.exports=function(t={}){t.levels=t.levels||Xbt.npm.levels;class e extends Jbt{constructor(s){super(s)}}let r=new e(t);return Object.keys(t.levels).forEach(function(n){if(Ybt('Define prototype method for "%s"',n),n==="log"){console.warn('Level "log" not defined: conflicts with the method "log". Use a different level name.');return}e.prototype[n]=function(...s){let o=this||r;if(s.length===1){let[i]=s,a=i&&i.message&&i||{message:i};return a.level=a[Qbt]=n,o._addDefaultMeta(a),o.write(a),this||r}return s.length===0?(o.log(n,""),o):o.log(n,...s)},e.prototype[Zbt(n)]=function(){return(this||r).isLevelEnabled(n)}}),r}});var ube=b((j5r,cbe)=>{"use strict";var eIt=EW();cbe.exports=class{constructor(e={}){this.loggers=new Map,this.options=e}add(e,r){if(!this.loggers.has(e)){r=Object.assign({},r||this.options);let n=r.transports||this.options.transports;n?r.transports=Array.isArray(n)?n.slice():[n]:r.transports=[];let s=eIt(r);s.on("close",()=>this._delete(e)),this.loggers.set(e,s)}return this.loggers.get(e)}get(e,r){return this.add(e,r)}has(e){return!!this.loggers.has(e)}close(e){if(e)return this._removeLogger(e);this.loggers.forEach((r,n)=>this._removeLogger(n))}_removeLogger(e){if(!this.loggers.has(e))return;this.loggers.get(e).close(),this._delete(e)}_delete(e){this.loggers.delete(e)}}});var dbe=b(Ft=>{"use strict";var lbe=require("logform"),{warn:rC}=lW();Ft.version=wPe().version;Ft.transports=VPe();Ft.config=CO();Ft.addColors=lbe.levels;Ft.format=lbe.format;Ft.createLogger=EW();Ft.Logger=RO();Ft.ExceptionHandler=gW();Ft.RejectionHandler=hW();Ft.Container=ube();Ft.Transport=require("winston-transport");Ft.loggers=new Ft.Container;var $a=Ft.createLogger();Object.keys(Ft.config.npm.levels).concat(["log","query","stream","add","remove","clear","profile","startTimer","handleExceptions","unhandleExceptions","handleRejections","unhandleRejections","configure","child"]).forEach(t=>Ft[t]=(...e)=>$a[t](...e));Object.defineProperty(Ft,"level",{get(){return $a.level},set(t){$a.level=t}});Object.defineProperty(Ft,"exceptions",{get(){return $a.exceptions}});Object.defineProperty(Ft,"rejections",{get(){return $a.rejections}});["exitOnError"].forEach(t=>{Object.defineProperty(Ft,t,{get(){return $a[t]},set(e){$a[t]=e}})});Object.defineProperty(Ft,"default",{get(){return{exceptionHandlers:$a.exceptionHandlers,rejectionHandlers:$a.rejectionHandlers,transports:$a.transports}}});rC.deprecated(Ft,"setLevels");rC.forFunctions(Ft,"useFormat",["cli"]);rC.forProperties(Ft,"useFormat",["padLevels","stripColors"]);rC.forFunctions(Ft,"deprecated",["addRewriter","addFilter","clone","extend"]);rC.forProperties(Ft,"deprecated",["emitErrs","levelLength"])});var gbe=b(nC=>{"use strict";var tIt=require("@smithy/protocol-http");function rIt(t){return t}var pbe=t=>e=>async r=>{if(!tIt.HttpRequest.isInstance(r.request))return e(r);let{request:n}=r,{handlerProtocol:s=""}=t.requestHandler.metadata||{};if(s.indexOf("h2")>=0&&!n.headers[":authority"])delete n.headers.host,n.headers[":authority"]=n.hostname+(n.port?":"+n.port:"");else if(!n.headers.host){let o=n.hostname;n.port!=null&&(o+=`:${n.port}`),n.headers.host=o}return e(r)},mbe={name:"hostHeaderMiddleware",step:"build",priority:"low",tags:["HOST"],override:!0},nIt=t=>({applyToStack:e=>{e.add(pbe(t),mbe)}});nC.getHostHeaderPlugin=nIt;nC.hostHeaderMiddleware=pbe;nC.hostHeaderMiddlewareOptions=mbe;nC.resolveHostHeaderConfig=rIt});var Sbe=b(xO=>{"use strict";var fbe=()=>(t,e)=>async r=>{try{let n=await t(r),{clientName:s,commandName:o,logger:i,dynamoDbDocumentClientOptions:a={}}=e,{overrideInputFilterSensitiveLog:c,overrideOutputFilterSensitiveLog:u}=a,l=c??e.inputFilterSensitiveLog,d=u??e.outputFilterSensitiveLog,{$metadata:p,...g}=n.output;return i?.info?.({clientName:s,commandName:o,input:l(r.input),output:d(g),metadata:p}),n}catch(n){let{clientName:s,commandName:o,logger:i,dynamoDbDocumentClientOptions:a={}}=e,{overrideInputFilterSensitiveLog:c}=a,u=c??e.inputFilterSensitiveLog;throw i?.error?.({clientName:s,commandName:o,input:u(r.input),error:n,metadata:n.$metadata}),n}},hbe={name:"loggerMiddleware",tags:["LOGGER"],step:"initialize",override:!0},sIt=t=>({applyToStack:e=>{e.add(fbe(),hbe)}});xO.getLoggerPlugin=sIt;xO.loggerMiddleware=fbe;xO.loggerMiddlewareOptions=hbe});var Ebe=b(PO=>{"use strict";Object.defineProperty(PO,"__esModule",{value:!0});PO.recursionDetectionMiddleware=void 0;var oIt=require("@aws/lambda-invoke-store"),iIt=require("@smithy/protocol-http"),yW="X-Amzn-Trace-Id",aIt="AWS_LAMBDA_FUNCTION_NAME",cIt="_X_AMZN_TRACE_ID",uIt=()=>t=>async e=>{let{request:r}=e;if(!iIt.HttpRequest.isInstance(r))return t(e);let n=Object.keys(r.headers??{}).find(l=>l.toLowerCase()===yW.toLowerCase())??yW;if(r.headers.hasOwnProperty(n))return t(e);let s=process.env[aIt],o=process.env[cIt],c=(await oIt.InvokeStore.getInstanceAsync())?.getXRayTraceId()??o,u=l=>typeof l=="string"&&l.length>0;return u(s)&&u(c)&&(r.headers[yW]=c),t({...e,request:r})};PO.recursionDetectionMiddleware=uIt});var ybe=b(Cf=>{"use strict";var sC=Ebe(),lIt={step:"build",tags:["RECURSION_DETECTION"],name:"recursionDetectionMiddleware",override:!0,priority:"low"},dIt=t=>({applyToStack:e=>{e.add(sC.recursionDetectionMiddleware(),lIt)}});Cf.getRecursionDetectionPlugin=dIt;Object.prototype.hasOwnProperty.call(sC,"__proto__")&&!Object.prototype.hasOwnProperty.call(Cf,"__proto__")&&Object.defineProperty(Cf,"__proto__",{enumerable:!0,value:sC.__proto__});Object.keys(sC).forEach(function(t){t!=="default"&&!Object.prototype.hasOwnProperty.call(Cf,t)&&(Cf[t]=sC[t])})});var _W=b(ji=>{"use strict";var Rf=require("@smithy/util-endpoints"),pIt=require("@smithy/url-parser"),Cbe=(t,e=!1)=>{if(e){for(let r of t.split("."))if(!Cbe(r))return!1;return!0}return!(!Rf.isValidHostLabel(t)||t.length<3||t.length>63||t!==t.toLowerCase()||Rf.isIpAddress(t))},_be=":",mIt="/",gIt=t=>{let e=t.split(_be);if(e.length<6)return null;let[r,n,s,o,i,...a]=e;if(r!=="arn"||n===""||s===""||a.join(_be)==="")return null;let c=a.map(u=>u.split(mIt)).flat();return{partition:n,service:s,region:o,accountId:i,resourceId:c}},fIt=[{id:"aws",outputs:{dnsSuffix:"amazonaws.com",dualStackDnsSuffix:"api.aws",implicitGlobalRegion:"us-east-1",name:"aws",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^(us|eu|ap|sa|ca|me|af|il|mx)\\-\\w+\\-\\d+$",regions:{"af-south-1":{description:"Africa (Cape Town)"},"ap-east-1":{description:"Asia Pacific (Hong Kong)"},"ap-east-2":{description:"Asia Pacific (Taipei)"},"ap-northeast-1":{description:"Asia Pacific (Tokyo)"},"ap-northeast-2":{description:"Asia Pacific (Seoul)"},"ap-northeast-3":{description:"Asia Pacific (Osaka)"},"ap-south-1":{description:"Asia Pacific (Mumbai)"},"ap-south-2":{description:"Asia Pacific (Hyderabad)"},"ap-southeast-1":{description:"Asia Pacific (Singapore)"},"ap-southeast-2":{description:"Asia Pacific (Sydney)"},"ap-southeast-3":{description:"Asia Pacific (Jakarta)"},"ap-southeast-4":{description:"Asia Pacific (Melbourne)"},"ap-southeast-5":{description:"Asia Pacific (Malaysia)"},"ap-southeast-6":{description:"Asia Pacific (New Zealand)"},"ap-southeast-7":{description:"Asia Pacific (Thailand)"},"aws-global":{description:"aws global region"},"ca-central-1":{description:"Canada (Central)"},"ca-west-1":{description:"Canada West (Calgary)"},"eu-central-1":{description:"Europe (Frankfurt)"},"eu-central-2":{description:"Europe (Zurich)"},"eu-north-1":{description:"Europe (Stockholm)"},"eu-south-1":{description:"Europe (Milan)"},"eu-south-2":{description:"Europe (Spain)"},"eu-west-1":{description:"Europe (Ireland)"},"eu-west-2":{description:"Europe (London)"},"eu-west-3":{description:"Europe (Paris)"},"il-central-1":{description:"Israel (Tel Aviv)"},"me-central-1":{description:"Middle East (UAE)"},"me-south-1":{description:"Middle East (Bahrain)"},"mx-central-1":{description:"Mexico (Central)"},"sa-east-1":{description:"South America (Sao Paulo)"},"us-east-1":{description:"US East (N. Virginia)"},"us-east-2":{description:"US East (Ohio)"},"us-west-1":{description:"US West (N. California)"},"us-west-2":{description:"US West (Oregon)"}}},{id:"aws-cn",outputs:{dnsSuffix:"amazonaws.com.cn",dualStackDnsSuffix:"api.amazonwebservices.com.cn",implicitGlobalRegion:"cn-northwest-1",name:"aws-cn",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^cn\\-\\w+\\-\\d+$",regions:{"aws-cn-global":{description:"aws-cn global region"},"cn-north-1":{description:"China (Beijing)"},"cn-northwest-1":{description:"China (Ningxia)"}}},{id:"aws-eusc",outputs:{dnsSuffix:"amazonaws.eu",dualStackDnsSuffix:"api.amazonwebservices.eu",implicitGlobalRegion:"eusc-de-east-1",name:"aws-eusc",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^eusc\\-(de)\\-\\w+\\-\\d+$",regions:{"eusc-de-east-1":{description:"AWS European Sovereign Cloud (Germany)"}}},{id:"aws-iso",outputs:{dnsSuffix:"c2s.ic.gov",dualStackDnsSuffix:"api.aws.ic.gov",implicitGlobalRegion:"us-iso-east-1",name:"aws-iso",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^us\\-iso\\-\\w+\\-\\d+$",regions:{"aws-iso-global":{description:"aws-iso global region"},"us-iso-east-1":{description:"US ISO East"},"us-iso-west-1":{description:"US ISO WEST"}}},{id:"aws-iso-b",outputs:{dnsSuffix:"sc2s.sgov.gov",dualStackDnsSuffix:"api.aws.scloud",implicitGlobalRegion:"us-isob-east-1",name:"aws-iso-b",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^us\\-isob\\-\\w+\\-\\d+$",regions:{"aws-iso-b-global":{description:"aws-iso-b global region"},"us-isob-east-1":{description:"US ISOB East (Ohio)"},"us-isob-west-1":{description:"US ISOB West"}}},{id:"aws-iso-e",outputs:{dnsSuffix:"cloud.adc-e.uk",dualStackDnsSuffix:"api.cloud-aws.adc-e.uk",implicitGlobalRegion:"eu-isoe-west-1",name:"aws-iso-e",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^eu\\-isoe\\-\\w+\\-\\d+$",regions:{"aws-iso-e-global":{description:"aws-iso-e global region"},"eu-isoe-west-1":{description:"EU ISOE West"}}},{id:"aws-iso-f",outputs:{dnsSuffix:"csp.hci.ic.gov",dualStackDnsSuffix:"api.aws.hci.ic.gov",implicitGlobalRegion:"us-isof-south-1",name:"aws-iso-f",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^us\\-isof\\-\\w+\\-\\d+$",regions:{"aws-iso-f-global":{description:"aws-iso-f global region"},"us-isof-east-1":{description:"US ISOF EAST"},"us-isof-south-1":{description:"US ISOF SOUTH"}}},{id:"aws-us-gov",outputs:{dnsSuffix:"amazonaws.com",dualStackDnsSuffix:"api.aws",implicitGlobalRegion:"us-gov-west-1",name:"aws-us-gov",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^us\\-gov\\-\\w+\\-\\d+$",regions:{"aws-us-gov-global":{description:"aws-us-gov global region"},"us-gov-east-1":{description:"AWS GovCloud (US-East)"},"us-gov-west-1":{description:"AWS GovCloud (US-West)"}}}],hIt="1.1",Rbe={partitions:fIt,version:hIt},vbe=Rbe,xbe="",Pbe=t=>{let{partitions:e}=vbe;for(let n of e){let{regions:s,outputs:o}=n;for(let[i,a]of Object.entries(s))if(i===t)return{...o,...a}}for(let n of e){let{regionRegex:s,outputs:o}=n;if(new RegExp(s).test(t))return{...o}}let r=e.find(n=>n.id==="aws");if(!r)throw new Error("Provided region was not found in the partition array or regex, and default partition with id 'aws' doesn't exist.");return{...r.outputs}},bbe=(t,e="")=>{vbe=t,xbe=e},SIt=()=>{bbe(Rbe,"")},EIt=()=>xbe,Ibe={isVirtualHostableS3Bucket:Cbe,parseArn:gIt,partition:Pbe};Rf.customEndpointFunctions.aws=Ibe;var yIt=t=>{if(typeof t.endpointProvider!="function")throw new Error("@aws-sdk/util-endpoint - endpointProvider and endpoint missing in config for this client.");let{endpoint:e}=t;return e===void 0&&(t.endpoint=async()=>Abe(t.endpointProvider({Region:typeof t.region=="function"?await t.region():t.region,UseDualStack:typeof t.useDualstackEndpoint=="function"?await t.useDualstackEndpoint():t.useDualstackEndpoint,UseFIPS:typeof t.useFipsEndpoint=="function"?await t.useFipsEndpoint():t.useFipsEndpoint,Endpoint:void 0},{logger:t.logger}))),t},Abe=t=>pIt.parseUrl(t.url);ji.EndpointError=Rf.EndpointError;ji.isIpAddress=Rf.isIpAddress;ji.resolveEndpoint=Rf.resolveEndpoint;ji.awsEndpointFunctions=Ibe;ji.getUserAgentPrefix=EIt;ji.partition=Pbe;ji.resolveDefaultAwsRegionalEndpointsConfig=yIt;ji.setPartitionInfo=bbe;ji.toEndpointV1=Abe;ji.useDefaultPartitionInfo=SIt});var oC,Tbe,wbe=_(()=>{oC={warningEmitted:!1},Tbe=t=>{if(t&&!oC.warningEmitted){if(process.env.AWS_SDK_JS_NODE_VERSION_SUPPORT_WARNING_DISABLED==="true"){oC.warningEmitted=!0;return}let e=parseInt(t.substring(1,t.indexOf("."))),r=22;e=${r}. You are running node ${t}. + +To continue receiving updates to AWS services, bug fixes, +and security updates please upgrade to node >=${r}. + +More information can be found at: https://a.co/c895JFp`))}}});var _It,CIt,CW,Dbe=_(()=>{_It=()=>(t,e)=>async r=>(e.__retryLongPoll=!0,t(r)),CIt={name:"longPollMiddleware",tags:["RETRY"],step:"initialize",override:!0},CW=t=>({applyToStack:e=>{e.add(_It(),CIt)}})});function bO(t,e,r){return t.$source||(t.$source={}),t.$source[e]=r,t}var Obe=_(()=>{});function Nbe(t,e,r){t.__aws_sdk_context?t.__aws_sdk_context.features||(t.__aws_sdk_context.features={}):t.__aws_sdk_context={features:{}},t.__aws_sdk_context.features[e]=r}var kbe,Lbe=_(()=>{kbe=require("@smithy/util-retry");kbe.Retry.v2026||=typeof process=="object"&&process.env?.AWS_NEW_RETRIES_2026==="true"});function Mbe(t,e,r){return t.$source||(t.$source={}),t.$source[e]=r,t}var Fbe=_(()=>{});var Ga={};wt(Ga,{emitWarningIfUnsupportedVersion:()=>Tbe,getLongPollPlugin:()=>CW,setCredentialFeature:()=>bO,setFeature:()=>Nbe,setTokenFeature:()=>Mbe,state:()=>oC});var Ko=_(()=>{wbe();Dbe();Obe();Lbe();Fbe()});var xW=b(vf=>{"use strict";var RIt=require("@smithy/core"),vIt=_W(),xIt=require("@smithy/protocol-http"),zc=(Ko(),ue(Ga)),Bbe=require("@smithy/util-retry"),Gbe=void 0;function PIt(t){return t===void 0?!0:typeof t=="string"&&t.length<=50}function bIt(t){let e=RIt.normalizeProvider(t.userAgentAppId??Gbe),{customUserAgent:r}=t;return Object.assign(t,{customUserAgent:typeof r=="string"?[[r]]:r,userAgentAppId:async()=>{let n=await e();if(!PIt(n)){let s=t.logger?.constructor?.name==="NoOpLogger"||!t.logger?console:t.logger;typeof n!="string"?s?.warn("userAgentAppId must be a string or undefined."):n.length>50&&s?.warn("The provided userAgentAppId exceeds the maximum length of 50 characters.")}return n}})}var IIt=/\d{12}\.ddb/;async function AIt(t,e,r){if(r.request?.headers?.["smithy-protocol"]==="rpc-v2-cbor"&&zc.setFeature(t,"PROTOCOL_RPC_V2_CBOR","M"),typeof e.retryStrategy=="function"){let o=await e.retryStrategy();if(typeof o.mode=="string")switch(o.mode){case Bbe.RETRY_MODES.ADAPTIVE:zc.setFeature(t,"RETRY_MODE_ADAPTIVE","F");break;case Bbe.RETRY_MODES.STANDARD:zc.setFeature(t,"RETRY_MODE_STANDARD","E");break}}if(typeof e.accountIdEndpointMode=="function"){let o=t.endpointV2;switch(String(o?.url?.hostname).match(IIt)&&zc.setFeature(t,"ACCOUNT_ID_ENDPOINT","O"),await e.accountIdEndpointMode?.()){case"disabled":zc.setFeature(t,"ACCOUNT_ID_MODE_DISABLED","Q");break;case"preferred":zc.setFeature(t,"ACCOUNT_ID_MODE_PREFERRED","P");break;case"required":zc.setFeature(t,"ACCOUNT_ID_MODE_REQUIRED","R");break}}let s=t.__smithy_context?.selectedHttpAuthScheme?.identity;if(s?.$source){let o=s;o.accountId&&zc.setFeature(t,"RESOLVED_ACCOUNT_ID","T");for(let[i,a]of Object.entries(o.$source??{}))zc.setFeature(t,i,a)}}var Ube="user-agent",RW="x-amz-user-agent",qbe=" ",vW="/",TIt=/[^!$%&'*+\-.^_`|~\w]/g,wIt=/[^!$%&'*+\-.^_`|~\w#]/g,$be="-",DIt=1024;function OIt(t){let e="";for(let r in t){let n=t[r];if(e.length+n.length+1<=DIt){e.length?e+=","+n:e+=n;continue}break}return e}var jbe=t=>(e,r)=>async n=>{let{request:s}=n;if(!xIt.HttpRequest.isInstance(s))return e(n);let{headers:o}=s,i=r?.userAgent?.map(IO)||[],a=(await t.defaultUserAgentProvider()).map(IO);await AIt(r,t,n);let c=r;a.push(`m/${OIt(Object.assign({},r.__smithy_context?.features,c.__aws_sdk_context?.features))}`);let u=t?.customUserAgent?.map(IO)||[],l=await t.userAgentAppId();l&&a.push(IO(["app",`${l}`]));let d=vIt.getUserAgentPrefix(),p=(d?[d]:[]).concat([...a,...i,...u]).join(qbe),g=[...a.filter(y=>y.startsWith("aws-sdk-")),...u].join(qbe);return t.runtime!=="browser"?(g&&(o[RW]=o[RW]?`${o[Ube]} ${g}`:g),o[Ube]=p):o[RW]=p,e({...n,request:s})},IO=t=>{let e=t[0].split(vW).map(i=>i.replace(TIt,$be)).join(vW),r=t[1]?.replace(wIt,$be),n=e.indexOf(vW),s=e.substring(0,n),o=e.substring(n+1);return s==="api"&&(o=o.toLowerCase()),[s,o,r].filter(i=>i&&i.length>0).reduce((i,a,c)=>{switch(c){case 0:return a;case 1:return`${i}/${a}`;default:return`${i}#${a}`}},"")},Vbe={name:"getUserAgentMiddleware",step:"build",priority:"low",tags:["SET_USER_AGENT","USER_AGENT"],override:!0},kIt=t=>({applyToStack:e=>{e.add(jbe(t),Vbe)}});vf.DEFAULT_UA_APP_ID=Gbe;vf.getUserAgentMiddlewareOptions=Vbe;vf.getUserAgentPlugin=kIt;vf.resolveUserAgentConfig=bIt;vf.userAgentMiddleware=jbe});var Hbe,PW,zbe=_(()=>{Hbe=require("@smithy/protocol-http"),PW=t=>Hbe.HttpResponse.isInstance(t)?t.headers?.date??t.headers?.Date:void 0});var xf,bW=_(()=>{xf=t=>new Date(Date.now()+t)});var Wbe,Kbe=_(()=>{bW();Wbe=(t,e)=>Math.abs(xf(e).getTime()-t)>=3e5});var IW,Qbe=_(()=>{Kbe();IW=(t,e)=>{let r=Date.parse(t);return Wbe(r,e)?r-Date.now():e}});var AW=_(()=>{zbe();bW();Qbe()});var Xbe,iC,Pf,Pl,TW,wW=_(()=>{Xbe=require("@smithy/protocol-http");AW();iC=(t,e)=>{if(!e)throw new Error(`Property \`${t}\` is not resolved for AWS SDK SigV4Auth`);return e},Pf=async t=>{let e=iC("context",t.context),r=iC("config",t.config),n=e.endpointV2?.properties?.authSchemes?.[0],o=await iC("signer",r.signer)(n),i=t?.signingRegion,a=t?.signingRegionSet,c=t?.signingName;return{config:r,signer:o,signingRegion:i,signingRegionSet:a,signingName:c}},Pl=class{async sign(e,r,n){if(!Xbe.HttpRequest.isInstance(e))throw new Error("The request is not an instance of `HttpRequest` and cannot be signed");let s=await Pf(n),{config:o,signer:i}=s,{signingRegion:a,signingName:c}=s,u=n.context;if(u?.authSchemes?.length??!1){let[d,p]=u.authSchemes;d?.name==="sigv4a"&&p?.name==="sigv4"&&(a=p?.signingRegion??a,c=p?.signingName??c)}return await i.sign(e,{signingDate:xf(o.systemClockOffset),signingRegion:a,signingService:c})}errorHandler(e){return r=>{let n=r.ServerTime??PW(r.$response);if(n){let s=iC("config",e.config),o=s.systemClockOffset;s.systemClockOffset=IW(n,s.systemClockOffset),s.systemClockOffset!==o&&r.$metadata&&(r.$metadata.clockSkewCorrected=!0)}throw r}}successHandler(e,r){let n=PW(e);if(n){let s=iC("config",r.config);s.systemClockOffset=IW(n,s.systemClockOffset)}}},TW=Pl});var Jbe,aC,Ybe=_(()=>{Jbe=require("@smithy/protocol-http");AW();wW();aC=class extends Pl{async sign(e,r,n){if(!Jbe.HttpRequest.isInstance(e))throw new Error("The request is not an instance of `HttpRequest` and cannot be signed");let{config:s,signer:o,signingRegion:i,signingRegionSet:a,signingName:c}=await Pf(n),l=(await s.sigv4aSigningRegionSet?.()??a??[i]).join(",");return await o.sign(e,{signingDate:xf(s.systemClockOffset),signingRegion:l,signingService:c})}}});var DW,Zbe=_(()=>{DW=t=>typeof t=="string"&&t.length>0?t.split(",").map(e=>e.trim()):[]});var AO,OW=_(()=>{AO=t=>`AWS_BEARER_TOKEN_${t.replace(/[\s-]/g,"_").toUpperCase()}`});var eIe,tIe,rIe,nIe=_(()=>{Zbe();OW();eIe="AWS_AUTH_SCHEME_PREFERENCE",tIe="auth_scheme_preference",rIe={environmentVariableSelector:(t,e)=>{if(e?.signingName&&AO(e.signingName)in t)return["httpBearerAuth"];if(eIe in t)return DW(t[eIe])},configFileSelector:t=>{if(tIe in t)return DW(t[tIe])},default:[]}});var sIe,kW,oIe,iIe,aIe=_(()=>{sIe=require("@smithy/core"),kW=require("@smithy/property-provider"),oIe=t=>(t.sigv4aSigningRegionSet=(0,sIe.normalizeProvider)(t.sigv4aSigningRegionSet),t),iIe={environmentVariableSelector(t){if(t.AWS_SIGV4A_SIGNING_REGION_SET)return t.AWS_SIGV4A_SIGNING_REGION_SET.split(",").map(e=>e.trim());throw new kW.ProviderError("AWS_SIGV4A_SIGNING_REGION_SET not set in env.",{tryNextLink:!0})},configFileSelector(t){if(t.sigv4a_signing_region_set)return(t.sigv4a_signing_region_set??"").split(",").map(e=>e.trim());throw new kW.ProviderError("sigv4a_signing_region_set not set in profile.",{tryNextLink:!0})},default:void 0}});function NIt(t,{credentials:e,credentialDefaultProvider:r}){let n;return e?e?.memoized?n=e:n=(0,Vi.memoizeIdentityProvider)(e,Vi.isIdentityExpired,Vi.doesIdentityRequireRefresh):r?n=(0,Vi.normalizeProvider)(r(Object.assign({},t,{parentClientConfig:t}))):n=async()=>{throw new Error("@aws-sdk/core::resolveAwsSdkSigV4Config - `credentials` not provided and no credentialDefaultProvider was configured.")},n.memoized=!0,n}function LIt(t,e){if(e.configBound)return e;let r=async n=>e({...n,callerClientConfig:t});return r.memoized=e.memoized,r.configBound=!0,r}var Vi,NW,LW,cIe,uIe=_(()=>{Ko();Vi=require("@smithy/core"),NW=require("@smithy/signature-v4"),LW=t=>{let e=t.credentials,r=!!t.credentials,n;Object.defineProperty(t,"credentials",{set(u){u&&u!==e&&u!==n&&(r=!0),e=u;let l=NIt(t,{credentials:e,credentialDefaultProvider:t.credentialDefaultProvider}),d=LIt(t,l);if(r&&!d.attributed){let p=typeof e=="object"&&e!==null;n=async g=>{let R=await d(g);return p&&(!R.$source||Object.keys(R.$source).length===0)?bO(R,"CREDENTIALS_CODE","e"):R},n.memoized=d.memoized,n.configBound=d.configBound,n.attributed=!0}else n=d},get(){return n},enumerable:!0,configurable:!0}),t.credentials=e;let{signingEscapePath:s=!0,systemClockOffset:o=t.systemClockOffset||0,sha256:i}=t,a;return t.signer?a=(0,Vi.normalizeProvider)(t.signer):t.regionInfoProvider?a=()=>(0,Vi.normalizeProvider)(t.region)().then(async u=>[await t.regionInfoProvider(u,{useFipsEndpoint:await t.useFipsEndpoint(),useDualstackEndpoint:await t.useDualstackEndpoint()})||{},u]).then(([u,l])=>{let{signingRegion:d,signingService:p}=u;t.signingRegion=t.signingRegion||d||l,t.signingName=t.signingName||p||t.serviceId;let g={...t,credentials:t.credentials,region:t.signingRegion,service:t.signingName,sha256:i,uriEscapePath:s},y=t.signerConstructor||NW.SignatureV4;return new y(g)}):a=async u=>{u=Object.assign({},{name:"sigv4",signingName:t.signingName||t.defaultSigningName,signingRegion:await(0,Vi.normalizeProvider)(t.region)(),properties:{}},u);let l=u.signingRegion,d=u.signingName;t.signingRegion=t.signingRegion||l,t.signingName=t.signingName||d||t.serviceId;let p={...t,credentials:t.credentials,region:t.signingRegion,service:t.signingName,sha256:i,uriEscapePath:s},g=t.signerConstructor||NW.SignatureV4;return new g(p)},Object.assign(t,{systemClockOffset:o,signingEscapePath:s,signer:a})},cIe=LW});var lIe=_(()=>{wW();Ybe();nIe();aIe();uIe()});var dIe={};wt(dIe,{AWSSDKSigV4Signer:()=>TW,AwsSdkSigV4ASigner:()=>aC,AwsSdkSigV4Signer:()=>Pl,NODE_AUTH_SCHEME_PREFERENCE_OPTIONS:()=>rIe,NODE_SIGV4A_CONFIG_OPTIONS:()=>iIe,getBearerTokenEnvKey:()=>AO,resolveAWSSDKSigV4Config:()=>cIe,resolveAwsSdkSigV4AConfig:()=>oIe,resolveAwsSdkSigV4Config:()=>LW,validateSigningProperties:()=>Pf});var MW=_(()=>{lIe();OW()});var cC,FW,Qo,bf=_(()=>{cC=require("@smithy/core/schema"),FW=require("@smithy/smithy-client"),Qo=class{queryCompat;errorRegistry;constructor(e=!1){this.queryCompat=e}resolveRestContentType(e,r){let n=r.getMemberSchemas(),s=Object.values(n).find(o=>!!o.getMergedTraits().httpPayload);if(s){let o=s.getMergedTraits().mediaType;return o||(s.isStringSchema()?"text/plain":s.isBlobSchema()?"application/octet-stream":e)}else if(!r.isUnitSchema()&&Object.values(n).find(i=>{let{httpQuery:a,httpQueryParams:c,httpHeader:u,httpLabel:l,httpPrefixHeaders:d}=i.getMergedTraits();return!a&&!c&&!u&&!l&&d===void 0}))return e}async getErrorSchemaOrThrowBaseException(e,r,n,s,o,i){let a=e;e.includes("#")&&([,a]=e.split("#"));let c={$metadata:o,$fault:n.statusCode<500?"client":"server"};if(!this.errorRegistry)throw new Error("@aws-sdk/core/protocols - error handler not initialized.");try{return{errorSchema:i?.(this.errorRegistry,a)??this.errorRegistry.getSchema(e),errorMetadata:c}}catch{s.message=s.message??s.Message??"UnknownError";let l=this.errorRegistry,d=l.getBaseException();if(d){let y=l.getErrorCtor(d)??Error;throw this.decorateServiceException(Object.assign(new y({name:a}),c),s)}let p=s,g=p?.message??p?.Message??p?.Error?.Message??p?.Error?.message;throw this.decorateServiceException(Object.assign(new Error(g),{name:a},c),s)}}compose(e,r,n){let s=n;r.includes("#")&&([s]=r.split("#"));let o=cC.TypeRegistry.for(s),i=cC.TypeRegistry.for("smithy.ts.sdk.synthetic."+n);e.copyFrom(o),e.copyFrom(i),this.errorRegistry=e}decorateServiceException(e,r={}){if(this.queryCompat){let n=e.Message??r.Message,s=(0,FW.decorateServiceException)(e,r);n&&(s.message=n);let o=s.Error??{};o.Type=s.Error?.Type,o.Code=s.Error?.Code,o.Message=s.Error?.message??s.Error?.Message??n,s.Error=o;let i=s.$metadata.requestId;return i&&(s.RequestId=i),s}return(0,FW.decorateServiceException)(e,r)}setQueryCompatError(e,r){let n=r.headers?.["x-amzn-query-error"];if(e!==void 0&&n!=null){let[s,o]=n.split(";"),i=Object.keys(e),a={Code:s,Type:o};e.Code=s,e.Type=o;for(let c=0;ccC.NormalizedSchema.of(s).getMergedTraits().awsQueryError?.[0]===r)}}}});var wO,pIe,TO,mIe=_(()=>{wO=require("@smithy/core/cbor"),pIe=require("@smithy/core/schema");bf();TO=class extends wO.SmithyRpcV2CborProtocol{awsQueryCompatible;mixin;constructor({defaultNamespace:e,errorTypeRegistries:r,awsQueryCompatible:n}){super({defaultNamespace:e,errorTypeRegistries:r}),this.awsQueryCompatible=!!n,this.mixin=new Qo(this.awsQueryCompatible)}async serializeRequest(e,r,n){let s=await super.serializeRequest(e,r,n);return this.awsQueryCompatible&&(s.headers["x-amzn-query-mode"]="true"),s}async handleError(e,r,n,s,o){this.awsQueryCompatible&&this.mixin.setQueryCompatError(s,n);let i=(()=>{let y=n.headers["x-amzn-query-error"];return y&&this.awsQueryCompatible?y.split(";")[0]:(0,wO.loadSmithyRpcV2CborErrorCode)(n,s)??"Unknown"})();this.mixin.compose(this.compositeErrorRegistry,i,this.options.defaultNamespace);let{errorSchema:a,errorMetadata:c}=await this.mixin.getErrorSchemaOrThrowBaseException(i,this.options.defaultNamespace,n,s,o,this.awsQueryCompatible?this.mixin.findQueryCompatibleError:void 0),u=pIe.NormalizedSchema.of(a),l=s.message??s.Message??"UnknownError",d=this.compositeErrorRegistry.getErrorCtor(a)??Error,p=new d(l),g={};for(let[y,R]of u.structIterator())s[y]!=null&&(g[y]=this.deserializer.readValue(R,s[y]));throw this.awsQueryCompatible&&this.mixin.queryCompatOutput(s,g),this.mixin.decorateServiceException(Object.assign(p,c,{$fault:u.getMergedTraits().error,message:l},g),s)}}});var gIe,fIe,hIe,SIe=_(()=>{gIe=t=>{if(t==null)return t;if(typeof t=="number"||typeof t=="bigint"){let e=new Error(`Received number ${t} where a string was expected.`);return e.name="Warning",console.warn(e),String(t)}if(typeof t=="boolean"){let e=new Error(`Received boolean ${t} where a string was expected.`);return e.name="Warning",console.warn(e),String(t)}return t},fIe=t=>{if(t==null)return t;if(typeof t=="string"){let e=t.toLowerCase();if(t!==""&&e!=="false"&&e!=="true"){let r=new Error(`Received string "${t}" where a boolean was expected.`);r.name="Warning",console.warn(r)}return t!==""&&e!=="false"}return t},hIe=t=>{if(t==null)return t;if(typeof t=="string"){let e=Number(t);if(e.toString()!==t){let r=new Error(`Received string "${t}" where a number was expected.`);return r.name="Warning",console.warn(r),t}return e}return t}});var Fn,bl=_(()=>{Fn=class{serdeContext;setSerdeContext(e){this.serdeContext=e}}});var If,BW=_(()=>{If=class{from;to;keys;constructor(e,r){this.from=e,this.to=r;let n=Object.keys(this.from),s=new Set(n);s.delete("__type"),this.keys=s}mark(e){this.keys.delete(e)}hasUnknown(){return this.keys.size===1&&Object.keys(this.to).length===0}writeUnknown(){if(this.hasUnknown()){let e=this.keys.values().next().value,r=this.from[e];this.to.$unknown=[e,r]}}}});function yIe(t,e,r){if(r?.source){let n=r.source;if(typeof e=="number"&&(e>Number.MAX_SAFE_INTEGER||e{EIe=require("@smithy/core/serde")});var CIe,RIe,DO,UW=_(()=>{CIe=require("@smithy/smithy-client"),RIe=require("@smithy/util-utf8"),DO=(t,e)=>(0,CIe.collectBody)(t,e).then(r=>(e?.utf8Encoder??RIe.toUtf8)(r))});var uC,xIe,vIe,qW,Af,lC=_(()=>{UW();uC=(t,e)=>DO(t,e).then(r=>{if(r.length)try{return JSON.parse(r)}catch(n){throw n?.name==="SyntaxError"&&Object.defineProperty(n,"$responseBodyText",{value:r}),n}return{}}),xIe=async(t,e)=>{let r=await uC(t,e);return r.message=r.message??r.Message,r},vIe=(t,e)=>Object.keys(t).find(r=>r.toLowerCase()===e.toLowerCase()),qW=t=>{let e=t;return typeof e=="number"&&(e=e.toString()),e.indexOf(",")>=0&&(e=e.split(",")[0]),e.indexOf(":")>=0&&(e=e.split(":")[0]),e.indexOf("#")>=0&&(e=e.split("#")[1]),e},Af=(t,e)=>{let r=vIe(t.headers,"x-amzn-errortype");if(r!==void 0)return qW(t.headers[r]);if(e&&typeof e=="object"){let n=vIe(e,"code");if(n&&e[n]!==void 0)return qW(e[n]);if(e.__type!==void 0)return qW(e.__type)}}});var PIe,bIe,oo,IIe,Tf,$W=_(()=>{PIe=require("@smithy/core/protocols"),bIe=require("@smithy/core/schema"),oo=require("@smithy/core/serde"),IIe=require("@smithy/util-base64");bl();BW();_Ie();lC();Tf=class extends Fn{settings;constructor(e){super(),this.settings=e}async read(e,r){return this._read(e,typeof r=="string"?JSON.parse(r,yIe):await uC(r,this.serdeContext))}readObject(e,r){return this._read(e,r)}_read(e,r){let n=r!==null&&typeof r=="object",s=bIe.NormalizedSchema.of(e);if(n){if(s.isStructSchema()){let i=r,a=s.isUnionSchema(),c={},u,{jsonName:l}=this.settings;l&&(u={});let d;a&&(d=new If(i,c));for(let[p,g]of s.structIterator()){let y=p;l&&(y=g.getMergedTraits().jsonName??y,u[y]=p),a&&d.mark(y),i[y]!=null&&(c[p]=this._read(g,i[y]))}if(a)d.writeUnknown();else if(typeof i.__type=="string")for(let p in i){let g=i[p],y=l?u[p]??p:p;y in c||(c[y]=g)}return c}if(Array.isArray(r)&&s.isListSchema()){let i=s.getValueSchema(),a=[];for(let c of r)a.push(this._read(i,c));return a}if(s.isMapSchema()){let i=s.getValueSchema(),a={};for(let c in r)a[c]=this._read(i,r[c]);return a}}if(s.isBlobSchema()&&typeof r=="string")return(0,IIe.fromBase64)(r);let o=s.getMergedTraits().mediaType;if(s.isStringSchema()&&typeof r=="string"&&o)return o==="application/json"||o.endsWith("+json")?oo.LazyJsonString.from(r):r;if(s.isTimestampSchema()&&r!=null)switch((0,PIe.determineTimestampFormat)(s,this.settings)){case 5:return(0,oo.parseRfc3339DateTimeWithOffset)(r);case 6:return(0,oo.parseRfc7231DateTime)(r);case 7:return(0,oo.parseEpochTimestamp)(r);default:return console.warn("Missing timestamp format, parsing value with Date constructor:",r),new Date(r)}if(s.isBigIntegerSchema()&&(typeof r=="number"||typeof r=="string"))return BigInt(r);if(s.isBigDecimalSchema()&&r!=null){if(r instanceof oo.NumericValue)return r;let i=r;return i.type==="bigDecimal"&&"string"in i?new oo.NumericValue(i.string,i.type):new oo.NumericValue(String(r),"bigDecimal")}if(s.isNumericSchema()&&typeof r=="string"){switch(r){case"Infinity":return 1/0;case"-Infinity":return-1/0;case"NaN":return NaN}return r}if(s.isDocumentSchema())if(n){let i=Array.isArray(r)?[]:{};for(let a in r){let c=r[a];c instanceof oo.NumericValue?i[a]=c:i[a]=this._read(s,c)}return i}else return structuredClone(r);return r}}});var TIe,AIe,OO,wIe=_(()=>{TIe=require("@smithy/core/serde"),AIe="\u039D",OO=class{values=new Map;counter=0;stage=0;createReplacer(){if(this.stage===1)throw new Error("@aws-sdk/core/protocols - JsonReplacer already created.");if(this.stage===2)throw new Error("@aws-sdk/core/protocols - JsonReplacer exhausted.");return this.stage=1,(e,r)=>{if(r instanceof TIe.NumericValue){let n=`${AIe+"nv"+this.counter++}_`+r.string;return this.values.set(`"${n}"`,r.string),n}if(typeof r=="bigint"){let n=r.toString(),s=`${AIe+"b"+this.counter++}_`+n;return this.values.set(`"${s}"`,n),s}return r}}replaceInJson(e){if(this.stage===0)throw new Error("@aws-sdk/core/protocols - JsonReplacer not created yet.");if(this.stage===2)throw new Error("@aws-sdk/core/protocols - JsonReplacer exhausted.");if(this.stage=2,this.counter===0)return e;for(let[r,n]of this.values)e=e.replace(r,n);return e}}});var DIe,kO,Wc,GW,wf,jW=_(()=>{DIe=require("@smithy/core/protocols"),kO=require("@smithy/core/schema"),Wc=require("@smithy/core/serde"),GW=require("@smithy/util-base64");bl();wIe();wf=class extends Fn{settings;buffer;useReplacer=!1;rootSchema;constructor(e){super(),this.settings=e}write(e,r){this.rootSchema=kO.NormalizedSchema.of(e),this.buffer=this._write(this.rootSchema,r)}flush(){let{rootSchema:e,useReplacer:r}=this;if(this.rootSchema=void 0,this.useReplacer=!1,e?.isStructSchema()||e?.isDocumentSchema()){if(!r)return JSON.stringify(this.buffer);let n=new OO;return n.replaceInJson(JSON.stringify(this.buffer,n.createReplacer(),0))}return this.buffer}writeDiscriminatedDocument(e,r){this.write(e,r),typeof this.buffer=="object"&&(this.buffer.__type=kO.NormalizedSchema.of(e).getName(!0))}_write(e,r,n){let s=r!==null&&typeof r=="object",o=kO.NormalizedSchema.of(e);if(s){if(o.isStructSchema()){let i=r,a={},{jsonName:c}=this.settings,u;c&&(u={});let l=0;for(let[d,p]of o.structIterator()){let g=this._write(p,i[d],o);if(g!==void 0){let y=d;c&&(y=p.getMergedTraits().jsonName??d,u[d]=y),a[y]=g,l++}}if(o.isUnionSchema()&&l===0){let{$unknown:d}=i;if(Array.isArray(d)){let[p,g]=d;a[p]=this._write(15,g)}}else if(typeof i.__type=="string")for(let d in i){let p=i[d],g=c?u[d]??d:d;g in a||(a[g]=this._write(15,p))}return a}if(Array.isArray(r)&&o.isListSchema()){let i=o.getValueSchema(),a=[],c=!!o.getMergedTraits().sparse;for(let u of r)(c||u!=null)&&a.push(this._write(i,u));return a}if(o.isMapSchema()){let i=o.getValueSchema(),a={},c=!!o.getMergedTraits().sparse;for(let u in r){let l=r[u];(c||l!=null)&&(a[u]=this._write(i,l))}return a}if(r instanceof Uint8Array&&(o.isBlobSchema()||o.isDocumentSchema()))return o===this.rootSchema?r:(this.serdeContext?.base64Encoder??GW.toBase64)(r);if(r instanceof Date&&(o.isTimestampSchema()||o.isDocumentSchema()))switch((0,DIe.determineTimestampFormat)(o,this.settings)){case 5:return r.toISOString().replace(".000Z","Z");case 6:return(0,Wc.dateToUtcString)(r);case 7:return r.getTime()/1e3;default:return console.warn("Missing timestamp format, using epoch seconds",r),r.getTime()/1e3}r instanceof Wc.NumericValue&&(this.useReplacer=!0)}if(!(r===null&&n?.isStructSchema())){if(o.isStringSchema()){if(typeof r>"u"&&o.isIdempotencyToken())return(0,Wc.generateIdempotencyToken)();let i=o.getMergedTraits().mediaType;return r!=null&&i&&(i==="application/json"||i.endsWith("+json"))?Wc.LazyJsonString.from(r):r}if(typeof r=="number"&&o.isNumericSchema())return Math.abs(r)===1/0||isNaN(r)?String(r):r;if(typeof r=="string"&&o.isBlobSchema())return o===this.rootSchema?r:(this.serdeContext?.base64Encoder??GW.toBase64)(r);if(typeof r=="bigint"&&(this.useReplacer=!0),o.isDocumentSchema())if(s){let i=Array.isArray(r)?[]:{};for(let a in r){let c=r[a];c instanceof Wc.NumericValue?(this.useReplacer=!0,i[a]=c):i[a]=this._write(o,c)}return i}else return structuredClone(r);return r}}}});var Il,NO=_(()=>{bl();$W();jW();Il=class extends Fn{settings;constructor(e){super(),this.settings=e}createSerializer(){let e=new wf(this.settings);return e.setSerdeContext(this.serdeContext),e}createDeserializer(){let e=new Tf(this.settings);return e.setSerdeContext(this.serdeContext),e}}});var OIe,LO,Al,MO=_(()=>{OIe=require("@smithy/core/protocols"),LO=require("@smithy/core/schema");bf();NO();lC();Al=class extends OIe.RpcProtocol{serializer;deserializer;serviceTarget;codec;mixin;awsQueryCompatible;constructor({defaultNamespace:e,errorTypeRegistries:r,serviceTarget:n,awsQueryCompatible:s,jsonCodec:o}){super({defaultNamespace:e,errorTypeRegistries:r}),this.serviceTarget=n,this.codec=o??new Il({timestampFormat:{useTrait:!0,default:7},jsonName:!1}),this.serializer=this.codec.createSerializer(),this.deserializer=this.codec.createDeserializer(),this.awsQueryCompatible=!!s,this.mixin=new Qo(this.awsQueryCompatible)}async serializeRequest(e,r,n){let s=await super.serializeRequest(e,r,n);return s.path.endsWith("/")||(s.path+="/"),s.headers["content-type"]=`application/x-amz-json-${this.getJsonRpcVersion()}`,s.headers["x-amz-target"]=`${this.serviceTarget}.${e.name}`,this.awsQueryCompatible&&(s.headers["x-amzn-query-mode"]="true"),((0,LO.deref)(e.input)==="unit"||!s.body)&&(s.body="{}"),s}getPayloadCodec(){return this.codec}async handleError(e,r,n,s,o){this.awsQueryCompatible&&this.mixin.setQueryCompatError(s,n);let i=Af(n,s)??"Unknown";this.mixin.compose(this.compositeErrorRegistry,i,this.options.defaultNamespace);let{errorSchema:a,errorMetadata:c}=await this.mixin.getErrorSchemaOrThrowBaseException(i,this.options.defaultNamespace,n,s,o,this.awsQueryCompatible?this.mixin.findQueryCompatibleError:void 0),u=LO.NormalizedSchema.of(a),l=s.message??s.Message??"UnknownError",d=this.compositeErrorRegistry.getErrorCtor(a)??Error,p=new d(l),g={},y=this.codec.createDeserializer();for(let[R,D]of u.structIterator())s[R]!=null&&(g[R]=y.readObject(D,s[R]));throw this.awsQueryCompatible&&this.mixin.queryCompatOutput(s,g),this.mixin.decorateServiceException(Object.assign(p,c,{$fault:u.getMergedTraits().error,message:l},g),s)}}});var FO,kIe=_(()=>{MO();FO=class extends Al{constructor({defaultNamespace:e,errorTypeRegistries:r,serviceTarget:n,awsQueryCompatible:s,jsonCodec:o}){super({defaultNamespace:e,errorTypeRegistries:r,serviceTarget:n,awsQueryCompatible:s,jsonCodec:o})}getShapeId(){return"aws.protocols#awsJson1_0"}getJsonRpcVersion(){return"1.0"}getDefaultContentType(){return"application/x-amz-json-1.0"}}});var BO,NIe=_(()=>{MO();BO=class extends Al{constructor({defaultNamespace:e,errorTypeRegistries:r,serviceTarget:n,awsQueryCompatible:s,jsonCodec:o}){super({defaultNamespace:e,errorTypeRegistries:r,serviceTarget:n,awsQueryCompatible:s,jsonCodec:o})}getShapeId(){return"aws.protocols#awsJson1_1"}getJsonRpcVersion(){return"1.1"}getDefaultContentType(){return"application/x-amz-json-1.1"}}});var Df,UO,qO,LIe=_(()=>{Df=require("@smithy/core/protocols"),UO=require("@smithy/core/schema");bf();NO();lC();qO=class extends Df.HttpBindingProtocol{serializer;deserializer;codec;mixin=new Qo;constructor({defaultNamespace:e,errorTypeRegistries:r}){super({defaultNamespace:e,errorTypeRegistries:r});let n={timestampFormat:{useTrait:!0,default:7},httpBindings:!0,jsonName:!0};this.codec=new Il(n),this.serializer=new Df.HttpInterceptingShapeSerializer(this.codec.createSerializer(),n),this.deserializer=new Df.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(),n)}getShapeId(){return"aws.protocols#restJson1"}getPayloadCodec(){return this.codec}setSerdeContext(e){this.codec.setSerdeContext(e),super.setSerdeContext(e)}async serializeRequest(e,r,n){let s=await super.serializeRequest(e,r,n),o=UO.NormalizedSchema.of(e.input);if(!s.headers["content-type"]){let i=this.mixin.resolveRestContentType(this.getDefaultContentType(),o);i&&(s.headers["content-type"]=i)}return s.body==null&&s.headers["content-type"]===this.getDefaultContentType()&&(s.body="{}"),s}async deserializeResponse(e,r,n){let s=await super.deserializeResponse(e,r,n),o=UO.NormalizedSchema.of(e.output);for(let[i,a]of o.structIterator())a.getMemberTraits().httpPayload&&!(i in s)&&(s[i]=null);return s}async handleError(e,r,n,s,o){let i=Af(n,s)??"Unknown";this.mixin.compose(this.compositeErrorRegistry,i,this.options.defaultNamespace);let{errorSchema:a,errorMetadata:c}=await this.mixin.getErrorSchemaOrThrowBaseException(i,this.options.defaultNamespace,n,s,o),u=UO.NormalizedSchema.of(a),l=s.message??s.Message??"UnknownError",d=this.compositeErrorRegistry.getErrorCtor(a)??Error,p=new d(l);await this.deserializeHttpMessage(a,r,n,s);let g={},y=this.codec.createDeserializer();for(let[R,D]of u.structIterator()){let B=D.getMergedTraits().jsonName??R;g[R]=y.readObject(D,s[B])}throw this.mixin.decorateServiceException(Object.assign(p,c,{$fault:u.getMergedTraits().error,message:l},g),s)}getDefaultContentType(){return"application/json"}}});var MIe,FIe,BIe=_(()=>{MIe=require("@smithy/smithy-client"),FIe=t=>{if(t!=null)return typeof t=="object"&&"__type"in t&&delete t.__type,(0,MIe.expectUnion)(t)}});var qIe=b(Hi=>{"use strict";Object.defineProperty(Hi,"__esModule",{value:!0});Hi.EntityDecoderImpl=Hi.CURRENCY=Hi.COMMON_HTML=Hi.XML=void 0;Hi.XML={amp:"&",apos:"'",gt:">",lt:"<",quot:'"'};Hi.COMMON_HTML={nbsp:"\xA0",copy:"\xA9",reg:"\xAE",trade:"\u2122",mdash:"\u2014",ndash:"\u2013",hellip:"\u2026",laquo:"\xAB",raquo:"\xBB",lsquo:"\u2018",rsquo:"\u2019",ldquo:"\u201C",rdquo:"\u201D",bull:"\u2022",para:"\xB6",sect:"\xA7",deg:"\xB0",frac12:"\xBD",frac14:"\xBC",frac34:"\xBE"};Hi.CURRENCY={cent:"\xA2",pound:"\xA3",curren:"\xA4",yen:"\xA5",euro:"\u20AC",dollar:"$",fnof:"\u0192",inr:"\u20B9",af:"\u060B",birr:"\u1265\u122D",peso:"\u20B1",rub:"\u20BD",won:"\u20A9",yuan:"\xA5",cedil:"\xB8"};var MIt=new Set("!?\\/[]$%{}^&*()<>|+");function UIe(t){if(t[0]==="#")throw new Error(`[EntityReplacer] Invalid character '#' in entity name: "${t}"`);for(let e of t)if(MIt.has(e))throw new Error(`[EntityReplacer] Invalid character '${e}' in entity name: "${t}"`);return t}function VW(...t){let e=Object.create(null);for(let r of t)if(r)for(let n of Object.keys(r)){let s=r[n];if(typeof s=="string")e[n]=s;else if(s&&typeof s=="object"&&s.val!==void 0){let o=s.val;typeof o=="string"&&(e[n]=o)}}return e}var fp="external",$O="base",HW="all";function FIt(t){return!t||t===fp?new Set([fp]):t===HW?new Set([HW]):t===$O?new Set([$O]):Array.isArray(t)?new Set(t):new Set([fp])}var Rs=Object.freeze({allow:0,leave:1,remove:2,throw:3}),BIt=new Set([9,10,13]);function UIt(t){if(!t)return{xmlVersion:1,onLevel:Rs.allow,nullLevel:Rs.remove};let e=t.xmlVersion===1.1?1.1:1,r=Rs[t.onNCR??"allow"]??Rs.allow,n=Rs[t.nullNCR??"remove"]??Rs.remove,s=Math.max(n,Rs.remove);return{xmlVersion:e,onLevel:r,nullLevel:s}}var qIt=class{_limit;_maxTotalExpansions;_maxExpandedLength;_postCheck;_limitTiers;_numericAllowed;_baseMap;_externalMap;_inputMap;_totalExpansions;_expandedLength;_removeSet;_leaveSet;_ncrXmlVersion;_ncrOnLevel;_ncrNullLevel;constructor(e={}){this._limit=e.limit||{},this._maxTotalExpansions=this._limit.maxTotalExpansions||0,this._maxExpandedLength=this._limit.maxExpandedLength||0,this._postCheck=typeof e.postCheck=="function"?e.postCheck:n=>n,this._limitTiers=FIt(this._limit.applyLimitsTo??fp),this._numericAllowed=e.numericAllowed??!0,this._baseMap=VW(Hi.XML,e.namedEntities||null),this._externalMap=Object.create(null),this._inputMap=Object.create(null),this._totalExpansions=0,this._expandedLength=0,this._removeSet=new Set(e.remove&&Array.isArray(e.remove)?e.remove:[]),this._leaveSet=new Set(e.leave&&Array.isArray(e.leave)?e.leave:[]);let r=UIt(e.ncr);this._ncrXmlVersion=r.xmlVersion,this._ncrOnLevel=r.onLevel,this._ncrNullLevel=r.nullLevel}setExternalEntities(e){if(e)for(let r of Object.keys(e))UIe(r);this._externalMap=VW(e)}addExternalEntity(e,r){UIe(e),typeof r=="string"&&r.indexOf("&")===-1&&(this._externalMap[e]=r)}addInputEntities(e){this._totalExpansions=0,this._expandedLength=0,this._inputMap=VW(e)}reset(){return this._inputMap=Object.create(null),this._totalExpansions=0,this._expandedLength=0,this}setXmlVersion(e){this._ncrXmlVersion=e==="1.1"||e===1.1?1.1:1}decode(e){if(typeof e!="string"||e.length===0)return e;let r=e,n=[],s=e.length,o=0,i=0,a=this._maxTotalExpansions>0,c=this._maxExpandedLength>0,u=a||c;for(;i=s||e.charCodeAt(d)!==59){i++;continue}let p=e.slice(i+1,d);if(p.length===0){i++;continue}let g,y;if(this._removeSet.has(p))g="",y===void 0&&(y=fp);else if(this._leaveSet.has(p)){i++;continue}else if(p.charCodeAt(0)===35){let R=this._resolveNCR(p);if(R===void 0){i++;continue}g=R,y=$O}else{let R=this._resolveName(p);g=R?.value,y=R?.tier}if(g===void 0){i++;continue}if(i>o&&n.push(e.slice(o,i)),n.push(g),o=d+1,i=o,u&&this._tierCounts(y)){if(a&&(this._totalExpansions++,this._totalExpansions>this._maxTotalExpansions))throw new Error(`[EntityReplacer] Entity expansion count limit exceeded: ${this._totalExpansions} > ${this._maxTotalExpansions}`);if(c){let R=g.length-(p.length+2);if(R>0&&(this._expandedLength+=R,this._expandedLength>this._maxExpandedLength))throw new Error(`[EntityReplacer] Expanded content length limit exceeded: ${this._expandedLength} > ${this._maxExpandedLength}`)}}}o=55296&&e<=57343||this._ncrXmlVersion===1&&e>=1&&e<=31&&!BIt.has(e)?Rs.remove:-1}_applyNCRAction(e,r,n){switch(e){case Rs.allow:return String.fromCodePoint(n);case Rs.remove:return"";case Rs.leave:return;case Rs.throw:throw new Error(`[EntityDecoder] Prohibited numeric character reference &${r}; (U+${n.toString(16).toUpperCase().padStart(4,"0")})`);default:return String.fromCodePoint(n)}}_resolveNCR(e){let r=e.charCodeAt(1),n;if(r===120||r===88?n=parseInt(e.slice(2),16):n=parseInt(e.slice(1),10),Number.isNaN(n)||n<0||n>1114111)return;let s=this._classifyNCR(n);if(!this._numericAllowed&&s{"use strict";Object.defineProperty(zW,"__esModule",{value:!0});zW.parseXML=jIt;var $It=require("fast-xml-parser"),GO=qIe(),jO=new GO.EntityDecoderImpl({namedEntities:{...GO.XML,...GO.COMMON_HTML,...GO.CURRENCY},numericAllowed:!0,limit:{maxTotalExpansions:1/0},ncr:{xmlVersion:1.1}}),GIt=new $It.XMLParser({attributeNamePrefix:"",processEntities:{enabled:!0,maxTotalExpansions:1/0},htmlEntities:!0,entityDecoder:{setExternalEntities:t=>{jO.setExternalEntities(t)},addInputEntities:t=>{jO.addInputEntities(t)},reset:()=>{jO.reset()},decode:t=>jO.decode(t),setXmlVersion:t=>{}},ignoreAttributes:!1,ignoreDeclaration:!0,parseTagValue:!1,trimValues:!1,tagValueProcessor:(t,e)=>e.trim()===""&&e.includes(` +`)?"":void 0,maxNestedTags:1/0});function jIt(t){return GIt.parse(t,!0)}});var zO=b(HO=>{"use strict";var VIt=$Ie(),HIt=/[&<>"]/g,zIt={"&":"&","<":"<",">":">",'"':"""};function WIt(t){return t.replace(HIt,e=>zIt[e])}var KIt=/[&"'<>\r\n\u0085\u2028]/g,QIt={"&":"&",'"':""","'":"'","<":"<",">":">","\r":" ","\n":" ","\x85":"…","\u2028":"
"};function XIt(t){return t.replace(KIt,e=>QIt[e])}var VO=class{value;constructor(e){this.value=e}toString(){return XIt(""+this.value)}},WW=class t{name;children;attributes={};static of(e,r,n){let s=new t(e);return r!==void 0&&s.addChildNode(new VO(r)),n!==void 0&&s.withName(n),s}constructor(e,r=[]){this.name=e,this.children=r}withName(e){return this.name=e,this}addAttribute(e,r){return this.attributes[e]=r,this}addChildNode(e){return this.children.push(e),this}removeAttribute(e){return delete this.attributes[e],this}n(e){return this.name=e,this}c(e){return this.children.push(e),this}a(e,r){return r!=null&&(this.attributes[e]=r),this}cc(e,r,n=r){if(e[r]!=null){let s=t.of(r,e[r]).withName(n);this.c(s)}}l(e,r,n,s){e[r]!=null&&s().map(i=>{i.withName(n),this.c(i)})}lc(e,r,n,s){if(e[r]!=null){let o=s(),i=new t(n);o.map(a=>{i.c(a)}),this.c(i)}}toString(){let e=!!this.children.length,r=`<${this.name}`,n=this.attributes;for(let s of Object.keys(n)){let o=n[s];o!=null&&(r+=` ${s}="${WIt(""+o)}"`)}return r+=e?`>${this.children.map(s=>s.toString()).join("")}`:"/>"}};HO.parseXML=VIt.parseXML;HO.XmlNode=WW;HO.XmlText=VO});var GIe,jIe,KW,VIe,HIe,Tl,WO=_(()=>{GIe=O(zO()),jIe=require("@smithy/core/protocols"),KW=require("@smithy/core/schema"),VIe=require("@smithy/smithy-client"),HIe=require("@smithy/util-utf8");bl();BW();Tl=class extends Fn{settings;stringDeserializer;constructor(e){super(),this.settings=e,this.stringDeserializer=new jIe.FromStringShapeDeserializer(e)}setSerdeContext(e){this.serdeContext=e,this.stringDeserializer.setSerdeContext(e)}read(e,r,n){let s=KW.NormalizedSchema.of(e),o=s.getMemberSchemas();if(s.isStructSchema()&&s.isMemberSchema()&&!!Object.values(o).find(u=>!!u.getMemberTraits().eventPayload)){let u={},l=Object.keys(o)[0];return o[l].isBlobSchema()?u[l]=r:u[l]=this.read(o[l],r),u}let a=(this.serdeContext?.utf8Encoder??HIe.toUtf8)(r),c=this.parseXml(a);return this.readSchema(e,n?c[n]:c)}readSchema(e,r){let n=KW.NormalizedSchema.of(e);if(n.isUnitSchema())return;let s=n.getMergedTraits();if(n.isListSchema()&&!Array.isArray(r))return this.readSchema(n,[r]);if(r==null)return r;if(typeof r=="object"){let o=!!s.xmlFlattened;if(n.isListSchema()){let a=n.getValueSchema(),c=[],u=a.getMergedTraits().xmlName??"member",l=o?r:(r[0]??r)[u];if(l==null)return c;let d=Array.isArray(l)?l:[l];for(let p of d)c.push(this.readSchema(a,p));return c}let i={};if(n.isMapSchema()){let a=n.getKeySchema(),c=n.getValueSchema(),u;o?u=Array.isArray(r)?r:[r]:u=Array.isArray(r.entry)?r.entry:[r.entry];let l=a.getMergedTraits().xmlName??"key",d=c.getMergedTraits().xmlName??"value";for(let p of u){let g=p[l],y=p[d];i[g]=this.readSchema(c,y)}return i}if(n.isStructSchema()){let a=n.isUnionSchema(),c;a&&(c=new If(r,i));for(let[u,l]of n.structIterator()){let d=l.getMergedTraits(),p=d.httpPayload?d.xmlName??l.getName():l.getMemberTraits().xmlName??u;a&&c.mark(p),r[p]!=null&&(i[u]=this.readSchema(l,r[p]))}return a&&c.writeUnknown(),i}if(n.isDocumentSchema())return r;throw new Error(`@aws-sdk/core/protocols - xml deserializer unhandled schema type for ${n.getName(!0)}`)}return n.isListSchema()?[]:n.isMapSchema()||n.isStructSchema()?{}:this.stringDeserializer.read(n,r)}parseXml(e){if(e.length){let r;try{r=(0,GIe.parseXML)(e)}catch(i){throw i&&typeof i=="object"&&Object.defineProperty(i,"$responseBodyText",{value:e}),i}let n="#text",s=Object.keys(r)[0],o=r[s];return o[n]&&(o[s]=o[n],delete o[n]),(0,VIe.getValueFromTextNode)(o)}return{}}}});var dC,zIe,KO,WIe,KIe,Of,QW=_(()=>{dC=require("@smithy/core/protocols"),zIe=require("@smithy/core/schema"),KO=require("@smithy/core/serde"),WIe=require("@smithy/smithy-client"),KIe=require("@smithy/util-base64");bl();Of=class extends Fn{settings;buffer;constructor(e){super(),this.settings=e}write(e,r,n=""){this.buffer===void 0&&(this.buffer="");let s=zIe.NormalizedSchema.of(e);if(n&&!n.endsWith(".")&&(n+="."),s.isBlobSchema())(typeof r=="string"||r instanceof Uint8Array)&&(this.writeKey(n),this.writeValue((this.serdeContext?.base64Encoder??KIe.toBase64)(r)));else if(s.isBooleanSchema()||s.isNumericSchema()||s.isStringSchema())r!=null?(this.writeKey(n),this.writeValue(String(r))):s.isIdempotencyToken()&&(this.writeKey(n),this.writeValue((0,KO.generateIdempotencyToken)()));else if(s.isBigIntegerSchema())r!=null&&(this.writeKey(n),this.writeValue(String(r)));else if(s.isBigDecimalSchema())r!=null&&(this.writeKey(n),this.writeValue(r instanceof KO.NumericValue?r.string:String(r)));else if(s.isTimestampSchema()){if(r instanceof Date)switch(this.writeKey(n),(0,dC.determineTimestampFormat)(s,this.settings)){case 5:this.writeValue(r.toISOString().replace(".000Z","Z"));break;case 6:this.writeValue((0,WIe.dateToUtcString)(r));break;case 7:this.writeValue(String(r.getTime()/1e3));break}}else if(s.isDocumentSchema())Array.isArray(r)?this.write(79,r,n):r instanceof Date?this.write(4,r,n):r instanceof Uint8Array?this.write(21,r,n):r&&typeof r=="object"?this.write(143,r,n):(this.writeKey(n),this.writeValue(String(r)));else if(s.isListSchema()){if(Array.isArray(r))if(r.length===0)this.settings.serializeEmptyLists&&(this.writeKey(n),this.writeValue(""));else{let o=s.getValueSchema(),i=this.settings.flattenLists||s.getMergedTraits().xmlFlattened,a=1;for(let c of r){if(c==null)continue;let u=o.getMergedTraits(),l=this.getKey("member",u.xmlName,u.ec2QueryName),d=i?`${n}${a}`:`${n}${l}.${a}`;this.write(o,c,d),++a}}}else if(s.isMapSchema()){if(r&&typeof r=="object"){let o=s.getKeySchema(),i=s.getValueSchema(),a=s.getMergedTraits().xmlFlattened,c=1;for(let u in r){let l=r[u];if(l==null)continue;let d=o.getMergedTraits(),p=this.getKey("key",d.xmlName,d.ec2QueryName),g=a?`${n}${c}.${p}`:`${n}entry.${c}.${p}`,y=i.getMergedTraits(),R=this.getKey("value",y.xmlName,y.ec2QueryName),D=a?`${n}${c}.${R}`:`${n}entry.${c}.${R}`;this.write(o,u,g),this.write(i,l,D),++c}}}else if(s.isStructSchema()){if(r&&typeof r=="object"){let o=!1;for(let[i,a]of s.structIterator()){if(r[i]==null&&!a.isIdempotencyToken())continue;let c=a.getMergedTraits(),u=this.getKey(i,c.xmlName,c.ec2QueryName,"struct"),l=`${n}${u}`;this.write(a,r[i],l),o=!0}if(!o&&s.isUnionSchema()){let{$unknown:i}=r;if(Array.isArray(i)){let[a,c]=i,u=`${n}${a}`;this.write(15,c,u)}}}}else if(!s.isUnitSchema())throw new Error(`@aws-sdk/core/protocols - QuerySerializer unrecognized schema type ${s.getName(!0)}`)}flush(){if(this.buffer===void 0)throw new Error("@aws-sdk/core/protocols - QuerySerializer cannot flush with nothing written to buffer.");let e=this.buffer;return delete this.buffer,e}getKey(e,r,n,s){let{ec2:o,capitalizeKeys:i}=this.settings;if(o&&n)return n;let a=r??e;return i&&s==="struct"?a[0].toUpperCase()+a.slice(1):a}writeKey(e){e.endsWith(".")&&(e=e.slice(0,e.length-1)),this.buffer+=`&${(0,dC.extendedEncodeURIComponent)(e)}=`}writeValue(e){this.buffer+=(0,dC.extendedEncodeURIComponent)(e)}}});var pC,mC,kf,XW=_(()=>{pC=require("@smithy/core/protocols"),mC=require("@smithy/core/schema");bf();WO();QW();kf=class extends pC.RpcProtocol{options;serializer;deserializer;mixin=new Qo;constructor(e){super({defaultNamespace:e.defaultNamespace,errorTypeRegistries:e.errorTypeRegistries}),this.options=e;let r={timestampFormat:{useTrait:!0,default:5},httpBindings:!1,xmlNamespace:e.xmlNamespace,serviceNamespace:e.defaultNamespace,serializeEmptyLists:!0};this.serializer=new Of(r),this.deserializer=new Tl(r)}getShapeId(){return"aws.protocols#awsQuery"}setSerdeContext(e){this.serializer.setSerdeContext(e),this.deserializer.setSerdeContext(e)}getPayloadCodec(){throw new Error("AWSQuery protocol has no payload codec.")}async serializeRequest(e,r,n){let s=await super.serializeRequest(e,r,n);s.path.endsWith("/")||(s.path+="/"),s.headers["content-type"]="application/x-www-form-urlencoded",((0,mC.deref)(e.input)==="unit"||!s.body)&&(s.body="");let o=e.name.split("#")[1]??e.name;return s.body=`Action=${o}&Version=${this.options.version}`+s.body,s.body.endsWith("&")&&(s.body=s.body.slice(-1)),s}async deserializeResponse(e,r,n){let s=this.deserializer,o=mC.NormalizedSchema.of(e.output),i={};if(n.statusCode>=300){let l=await(0,pC.collectBody)(n.body,r);l.byteLength>0&&Object.assign(i,await s.read(15,l)),await this.handleError(e,r,n,i,this.deserializeMetadata(n))}for(let l in n.headers){let d=n.headers[l];delete n.headers[l],n.headers[l.toLowerCase()]=d}let a=e.name.split("#")[1]??e.name,c=o.isStructSchema()&&this.useNestedResult()?a+"Result":void 0,u=await(0,pC.collectBody)(n.body,r);return u.byteLength>0&&Object.assign(i,await s.read(o,u,c)),i.$metadata=this.deserializeMetadata(n),i}useNestedResult(){return!0}async handleError(e,r,n,s,o){let i=this.loadQueryErrorCode(n,s)??"Unknown";this.mixin.compose(this.compositeErrorRegistry,i,this.options.defaultNamespace);let a=this.loadQueryError(s)??{},c=this.loadQueryErrorMessage(s);a.message=c,a.Error={Type:a.Type,Code:a.Code,Message:c};let{errorSchema:u,errorMetadata:l}=await this.mixin.getErrorSchemaOrThrowBaseException(i,this.options.defaultNamespace,n,a,o,this.mixin.findQueryCompatibleError),d=mC.NormalizedSchema.of(u),p=this.compositeErrorRegistry.getErrorCtor(u)??Error,g=new p(c),y={Type:a.Error.Type,Code:a.Error.Code,Error:a.Error};for(let[R,D]of d.structIterator()){let B=D.getMergedTraits().xmlName??R,M=a[B]??s[B];y[R]=this.deserializer.readSchema(D,M)}throw this.mixin.decorateServiceException(Object.assign(g,l,{$fault:d.getMergedTraits().error,message:c},y),s)}loadQueryErrorCode(e,r){let n=(r.Errors?.[0]?.Error??r.Errors?.Error??r.Error)?.Code;if(n!==void 0)return n;if(e.statusCode==404)return"NotFound"}loadQueryError(e){return e.Errors?.[0]?.Error??e.Errors?.Error??e.Error}loadQueryErrorMessage(e){let r=this.loadQueryError(e);return r?.message??r?.Message??e.message??e.Message??"Unknown"}getDefaultContentType(){return"application/x-www-form-urlencoded"}}});var QO,QIe=_(()=>{XW();QO=class extends kf{options;constructor(e){super(e),this.options=e;let r={capitalizeKeys:!0,flattenLists:!0,serializeEmptyLists:!1,ec2:!0};Object.assign(this.serializer.settings,r)}getShapeId(){return"aws.protocols#ec2Query"}useNestedResult(){return!1}}});var XIe=_(()=>{});var JIe,YIe,JW,ZIe,XO,YW=_(()=>{JIe=O(zO()),YIe=require("@smithy/smithy-client");UW();JW=(t,e)=>DO(t,e).then(r=>{if(r.length){let n;try{n=(0,JIe.parseXML)(r)}catch(a){throw a&&typeof a=="object"&&Object.defineProperty(a,"$responseBodyText",{value:r}),a}let s="#text",o=Object.keys(n)[0],i=n[o];return i[s]&&(i[o]=i[s],delete i[s]),(0,YIe.getValueFromTextNode)(i)}return{}}),ZIe=async(t,e)=>{let r=await JW(t,e);return r.Error&&(r.Error.message=r.Error.message??r.Error.Message),r},XO=(t,e)=>{if(e?.Error?.Code!==void 0)return e.Error.Code;if(e?.Code!==void 0)return e.Code;if(t.statusCode==404)return"NotFound"}});var Yn,eAe,JO,YO,ZW,ZO,Nf,eK=_(()=>{Yn=O(zO()),eAe=require("@smithy/core/protocols"),JO=require("@smithy/core/schema"),YO=require("@smithy/core/serde"),ZW=require("@smithy/smithy-client"),ZO=require("@smithy/util-base64");bl();Nf=class extends Fn{settings;stringBuffer;byteBuffer;buffer;constructor(e){super(),this.settings=e}write(e,r){let n=JO.NormalizedSchema.of(e);if(n.isStringSchema()&&typeof r=="string")this.stringBuffer=r;else if(n.isBlobSchema())this.byteBuffer="byteLength"in r?r:(this.serdeContext?.base64Decoder??ZO.fromBase64)(r);else{this.buffer=this.writeStruct(n,r,void 0);let s=n.getMergedTraits();s.httpPayload&&!s.xmlName&&this.buffer.withName(n.getName())}}flush(){if(this.byteBuffer!==void 0){let r=this.byteBuffer;return delete this.byteBuffer,r}if(this.stringBuffer!==void 0){let r=this.stringBuffer;return delete this.stringBuffer,r}let e=this.buffer;return this.settings.xmlNamespace&&(e?.attributes?.xmlns||e.addAttribute("xmlns",this.settings.xmlNamespace)),delete this.buffer,e.toString()}writeStruct(e,r,n){let s=e.getMergedTraits(),o=e.isMemberSchema()&&!s.httpPayload?e.getMemberTraits().xmlName??e.getMemberName():s.xmlName??e.getName();if(!o||!e.isStructSchema())throw new Error(`@aws-sdk/core/protocols - xml serializer, cannot write struct with empty name or non-struct, schema=${e.getName(!0)}.`);let i=Yn.XmlNode.of(o),[a,c]=this.getXmlnsAttribute(e,n);for(let[l,d]of e.structIterator()){let p=r[l];if(p!=null||d.isIdempotencyToken()){if(d.getMergedTraits().xmlAttribute){i.addAttribute(d.getMergedTraits().xmlName??l,this.writeSimple(d,p));continue}if(d.isListSchema())this.writeList(d,p,i,c);else if(d.isMapSchema())this.writeMap(d,p,i,c);else if(d.isStructSchema())i.addChildNode(this.writeStruct(d,p,c));else{let g=Yn.XmlNode.of(d.getMergedTraits().xmlName??d.getMemberName());this.writeSimpleInto(d,p,g,c),i.addChildNode(g)}}}let{$unknown:u}=r;if(u&&e.isUnionSchema()&&Array.isArray(u)&&Object.keys(r).length===1){let[l,d]=u,p=Yn.XmlNode.of(l);if(typeof d!="string")if(r instanceof Yn.XmlNode||r instanceof Yn.XmlText)i.addChildNode(r);else throw new Error("@aws-sdk - $unknown union member in XML requires value of type string, @aws-sdk/xml-builder::XmlNode or XmlText.");this.writeSimpleInto(0,d,p,c),i.addChildNode(p)}return c&&i.addAttribute(a,c),i}writeList(e,r,n,s){if(!e.isMemberSchema())throw new Error(`@aws-sdk/core/protocols - xml serializer, cannot write non-member list: ${e.getName(!0)}`);let o=e.getMergedTraits(),i=e.getValueSchema(),a=i.getMergedTraits(),c=!!a.sparse,u=!!o.xmlFlattened,[l,d]=this.getXmlnsAttribute(e,s),p=(g,y)=>{if(i.isListSchema())this.writeList(i,Array.isArray(y)?y:[y],g,d);else if(i.isMapSchema())this.writeMap(i,y,g,d);else if(i.isStructSchema()){let R=this.writeStruct(i,y,d);g.addChildNode(R.withName(u?o.xmlName??e.getMemberName():a.xmlName??"member"))}else{let R=Yn.XmlNode.of(u?o.xmlName??e.getMemberName():a.xmlName??"member");this.writeSimpleInto(i,y,R,d),g.addChildNode(R)}};if(u)for(let g of r)(c||g!=null)&&p(n,g);else{let g=Yn.XmlNode.of(o.xmlName??e.getMemberName());d&&g.addAttribute(l,d);for(let y of r)(c||y!=null)&&p(g,y);n.addChildNode(g)}}writeMap(e,r,n,s,o=!1){if(!e.isMemberSchema())throw new Error(`@aws-sdk/core/protocols - xml serializer, cannot write non-member map: ${e.getName(!0)}`);let i=e.getMergedTraits(),a=e.getKeySchema(),u=a.getMergedTraits().xmlName??"key",l=e.getValueSchema(),d=l.getMergedTraits(),p=d.xmlName??"value",g=!!d.sparse,y=!!i.xmlFlattened,[R,D]=this.getXmlnsAttribute(e,s),B=(M,ge,Y)=>{let Te=Yn.XmlNode.of(u,ge),[Ht,Tt]=this.getXmlnsAttribute(a,D);Tt&&Te.addAttribute(Ht,Tt),M.addChildNode(Te);let Ne=Yn.XmlNode.of(p);l.isListSchema()?this.writeList(l,Y,Ne,D):l.isMapSchema()?this.writeMap(l,Y,Ne,D,!0):l.isStructSchema()?Ne=this.writeStruct(l,Y,D):this.writeSimpleInto(l,Y,Ne,D),M.addChildNode(Ne)};if(y)for(let M in r){let ge=r[M];if(g||ge!=null){let Y=Yn.XmlNode.of(i.xmlName??e.getMemberName());B(Y,M,ge),n.addChildNode(Y)}}else{let M;o||(M=Yn.XmlNode.of(i.xmlName??e.getMemberName()),D&&M.addAttribute(R,D),n.addChildNode(M));for(let ge in r){let Y=r[ge];if(g||Y!=null){let Te=Yn.XmlNode.of("entry");B(Te,ge,Y),(o?n:M).addChildNode(Te)}}}}writeSimple(e,r){if(r===null)throw new Error("@aws-sdk/core/protocols - (XML serializer) cannot write null value.");let n=JO.NormalizedSchema.of(e),s=null;if(r&&typeof r=="object")if(n.isBlobSchema())s=(this.serdeContext?.base64Encoder??ZO.toBase64)(r);else if(n.isTimestampSchema()&&r instanceof Date)switch((0,eAe.determineTimestampFormat)(n,this.settings)){case 5:s=r.toISOString().replace(".000Z","Z");break;case 6:s=(0,ZW.dateToUtcString)(r);break;case 7:s=String(r.getTime()/1e3);break;default:console.warn("Missing timestamp format, using http date",r),s=(0,ZW.dateToUtcString)(r);break}else{if(n.isBigDecimalSchema()&&r)return r instanceof YO.NumericValue?r.string:String(r);throw n.isMapSchema()||n.isListSchema()?new Error("@aws-sdk/core/protocols - xml serializer, cannot call _write() on List/Map schema, call writeList or writeMap() instead."):new Error(`@aws-sdk/core/protocols - xml serializer, unhandled schema type for object value and schema: ${n.getName(!0)}`)}if((n.isBooleanSchema()||n.isNumericSchema()||n.isBigIntegerSchema()||n.isBigDecimalSchema())&&(s=String(r)),n.isStringSchema()&&(r===void 0&&n.isIdempotencyToken()?s=(0,YO.generateIdempotencyToken)():s=String(r)),s===null)throw new Error(`Unhandled schema-value pair ${n.getName(!0)}=${r}`);return s}writeSimpleInto(e,r,n,s){let o=this.writeSimple(e,r),i=JO.NormalizedSchema.of(e),a=new Yn.XmlText(o),[c,u]=this.getXmlnsAttribute(i,s);u&&n.addAttribute(c,u),n.addChildNode(a)}getXmlnsAttribute(e,r){let n=e.getMergedTraits(),[s,o]=n.xmlNamespace??[];return o&&o!==r?[s?`xmlns:${s}`:"xmlns",o]:[void 0,void 0]}}});var Lf,tK=_(()=>{bl();WO();eK();Lf=class extends Fn{settings;constructor(e){super(),this.settings=e}createSerializer(){let e=new Nf(this.settings);return e.setSerdeContext(this.serdeContext),e}createDeserializer(){let e=new Tl(this.settings);return e.setSerdeContext(this.serdeContext),e}}});var Mf,rK,ek,tAe=_(()=>{Mf=require("@smithy/core/protocols"),rK=require("@smithy/core/schema");bf();YW();tK();ek=class extends Mf.HttpBindingProtocol{codec;serializer;deserializer;mixin=new Qo;constructor(e){super(e);let r={timestampFormat:{useTrait:!0,default:5},httpBindings:!0,xmlNamespace:e.xmlNamespace,serviceNamespace:e.defaultNamespace};this.codec=new Lf(r),this.serializer=new Mf.HttpInterceptingShapeSerializer(this.codec.createSerializer(),r),this.deserializer=new Mf.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(),r)}getPayloadCodec(){return this.codec}getShapeId(){return"aws.protocols#restXml"}async serializeRequest(e,r,n){let s=await super.serializeRequest(e,r,n),o=rK.NormalizedSchema.of(e.input);if(!s.headers["content-type"]){let i=this.mixin.resolveRestContentType(this.getDefaultContentType(),o);i&&(s.headers["content-type"]=i)}return typeof s.body=="string"&&s.headers["content-type"]===this.getDefaultContentType()&&!s.body.startsWith("'+s.body),s}async deserializeResponse(e,r,n){return super.deserializeResponse(e,r,n)}async handleError(e,r,n,s,o){let i=XO(n,s)??"Unknown";if(this.mixin.compose(this.compositeErrorRegistry,i,this.options.defaultNamespace),s.Error&&typeof s.Error=="object")for(let R of Object.keys(s.Error))s[R]=s.Error[R],R.toLowerCase()==="message"&&(s.message=s.Error[R]);s.RequestId&&!o.requestId&&(o.requestId=s.RequestId);let{errorSchema:a,errorMetadata:c}=await this.mixin.getErrorSchemaOrThrowBaseException(i,this.options.defaultNamespace,n,s,o),u=rK.NormalizedSchema.of(a),l=s.Error?.message??s.Error?.Message??s.message??s.Message??"UnknownError",d=this.compositeErrorRegistry.getErrorCtor(a)??Error,p=new d(l);await this.deserializeHttpMessage(a,r,n,s);let g={},y=this.codec.createDeserializer();for(let[R,D]of u.structIterator()){let B=D.getMergedTraits().xmlName??R,M=s.Error?.[B]??s[B];g[R]=y.readSchema(D,M)}throw this.mixin.decorateServiceException(Object.assign(p,c,{$fault:u.getMergedTraits().error,message:l},g),s)}getDefaultContentType(){return"application/xml"}hasUnstructuredPayloadBinding(e){for(let[,r]of e.structIterator())if(r.getMergedTraits().httpPayload)return!(r.isStructSchema()||r.isMapSchema()||r.isListSchema());return!1}}});var rAe={};wt(rAe,{AwsEc2QueryProtocol:()=>QO,AwsJson1_0Protocol:()=>FO,AwsJson1_1Protocol:()=>BO,AwsJsonRpcProtocol:()=>Al,AwsQueryProtocol:()=>kf,AwsRestJsonProtocol:()=>qO,AwsRestXmlProtocol:()=>ek,AwsSmithyRpcV2CborProtocol:()=>TO,JsonCodec:()=>Il,JsonShapeDeserializer:()=>Tf,JsonShapeSerializer:()=>wf,QueryShapeSerializer:()=>Of,XmlCodec:()=>Lf,XmlShapeDeserializer:()=>Tl,XmlShapeSerializer:()=>Nf,_toBool:()=>fIe,_toNum:()=>hIe,_toStr:()=>gIe,awsExpectUnion:()=>FIe,loadRestJsonErrorCode:()=>Af,loadRestXmlErrorCode:()=>XO,parseJsonBody:()=>uC,parseJsonErrorBody:()=>xIe,parseXmlBody:()=>JW,parseXmlErrorBody:()=>ZIe});var nK=_(()=>{mIe();SIe();kIe();NIe();MO();LIe();NO();$W();jW();BIe();lC();QIe();XW();XIe();QW();tAe();tK();WO();eK();YW()});var tk={};wt(tk,{AWSSDKSigV4Signer:()=>TW,AwsEc2QueryProtocol:()=>QO,AwsJson1_0Protocol:()=>FO,AwsJson1_1Protocol:()=>BO,AwsJsonRpcProtocol:()=>Al,AwsQueryProtocol:()=>kf,AwsRestJsonProtocol:()=>qO,AwsRestXmlProtocol:()=>ek,AwsSdkSigV4ASigner:()=>aC,AwsSdkSigV4Signer:()=>Pl,AwsSmithyRpcV2CborProtocol:()=>TO,JsonCodec:()=>Il,JsonShapeDeserializer:()=>Tf,JsonShapeSerializer:()=>wf,NODE_AUTH_SCHEME_PREFERENCE_OPTIONS:()=>rIe,NODE_SIGV4A_CONFIG_OPTIONS:()=>iIe,QueryShapeSerializer:()=>Of,XmlCodec:()=>Lf,XmlShapeDeserializer:()=>Tl,XmlShapeSerializer:()=>Nf,_toBool:()=>fIe,_toNum:()=>hIe,_toStr:()=>gIe,awsExpectUnion:()=>FIe,emitWarningIfUnsupportedVersion:()=>Tbe,getBearerTokenEnvKey:()=>AO,getLongPollPlugin:()=>CW,loadRestJsonErrorCode:()=>Af,loadRestXmlErrorCode:()=>XO,parseJsonBody:()=>uC,parseJsonErrorBody:()=>xIe,parseXmlBody:()=>JW,parseXmlErrorBody:()=>ZIe,resolveAWSSDKSigV4Config:()=>cIe,resolveAwsSdkSigV4AConfig:()=>oIe,resolveAwsSdkSigV4Config:()=>LW,setCredentialFeature:()=>bO,setFeature:()=>Nbe,setTokenFeature:()=>Mbe,state:()=>oC,validateSigningProperties:()=>Pf});var rk=_(()=>{Ko();MW();nK()});var oK=b(wl=>{"use strict";Object.defineProperty(wl,"__esModule",{value:!0});wl.resolveHttpAuthSchemeConfig=wl.defaultSecretsManagerHttpAuthSchemeProvider=wl.defaultSecretsManagerHttpAuthSchemeParametersProvider=void 0;var JIt=(rk(),ue(tk)),sK=require("@smithy/util-middleware"),YIt=async(t,e,r)=>({operation:(0,sK.getSmithyContext)(e).operation,region:await(0,sK.normalizeProvider)(t.region)()||(()=>{throw new Error("expected `region` to be configured for `aws.auth#sigv4`")})()});wl.defaultSecretsManagerHttpAuthSchemeParametersProvider=YIt;function ZIt(t){return{schemeId:"aws.auth#sigv4",signingProperties:{name:"secretsmanager",region:t.region},propertiesExtractor:(e,r)=>({signingProperties:{config:e,context:r}})}}var eAt=t=>{let e=[];switch(t.operation){default:e.push(ZIt(t))}return e};wl.defaultSecretsManagerHttpAuthSchemeProvider=eAt;var tAt=t=>{let e=(0,JIt.resolveAwsSdkSigV4Config)(t);return Object.assign(e,{authSchemePreference:(0,sK.normalizeProvider)(t.authSchemePreference??[])})};wl.resolveHttpAuthSchemeConfig=tAt});var nAe=b((SJr,rAt)=>{rAt.exports={name:"@aws-sdk/client-secrets-manager",description:"AWS SDK for JavaScript Secrets Manager Client for Node.js, Browser and React Native",version:"3.1004.0",scripts:{build:"concurrently 'yarn:build:types' 'yarn:build:es' && yarn build:cjs","build:cjs":"node ../../scripts/compilation/inline client-secrets-manager","build:es":"tsc -p tsconfig.es.json","build:include:deps":'yarn g:turbo run build -F="$npm_package_name"',"build:types":"tsc -p tsconfig.types.json","build:types:downlevel":"downlevel-dts dist-types dist-types/ts3.4",clean:"premove dist-cjs dist-es dist-types tsconfig.cjs.tsbuildinfo tsconfig.es.tsbuildinfo tsconfig.types.tsbuildinfo","extract:docs":"api-extractor run --local","generate:client":"node ../../scripts/generate-clients/single-service --solo secrets-manager",test:"yarn g:vitest run --passWithNoTests","test:index":"tsc --noEmit ./test/index-types.ts && node ./test/index-objects.spec.mjs","test:integration":"yarn g:vitest run --passWithNoTests -c vitest.config.integ.mts","test:integration:watch":"yarn g:vitest run --passWithNoTests -c vitest.config.integ.mts","test:watch":"yarn g:vitest watch --passWithNoTests"},main:"./dist-cjs/index.js",types:"./dist-types/index.d.ts",module:"./dist-es/index.js",sideEffects:!1,dependencies:{"@aws-crypto/sha256-browser":"5.2.0","@aws-crypto/sha256-js":"5.2.0","@aws-sdk/core":"^3.973.18","@aws-sdk/credential-provider-node":"^3.972.18","@aws-sdk/middleware-host-header":"^3.972.7","@aws-sdk/middleware-logger":"^3.972.7","@aws-sdk/middleware-recursion-detection":"^3.972.7","@aws-sdk/middleware-user-agent":"^3.972.19","@aws-sdk/region-config-resolver":"^3.972.7","@aws-sdk/types":"^3.973.5","@aws-sdk/util-endpoints":"^3.996.4","@aws-sdk/util-user-agent-browser":"^3.972.7","@aws-sdk/util-user-agent-node":"^3.973.4","@smithy/config-resolver":"^4.4.10","@smithy/core":"^3.23.8","@smithy/fetch-http-handler":"^5.3.13","@smithy/hash-node":"^4.2.11","@smithy/invalid-dependency":"^4.2.11","@smithy/middleware-content-length":"^4.2.11","@smithy/middleware-endpoint":"^4.4.22","@smithy/middleware-retry":"^4.4.39","@smithy/middleware-serde":"^4.2.12","@smithy/middleware-stack":"^4.2.11","@smithy/node-config-provider":"^4.3.11","@smithy/node-http-handler":"^4.4.14","@smithy/protocol-http":"^5.3.11","@smithy/smithy-client":"^4.12.2","@smithy/types":"^4.13.0","@smithy/url-parser":"^4.2.11","@smithy/util-base64":"^4.3.2","@smithy/util-body-length-browser":"^4.2.2","@smithy/util-body-length-node":"^4.2.3","@smithy/util-defaults-mode-browser":"^4.3.38","@smithy/util-defaults-mode-node":"^4.2.41","@smithy/util-endpoints":"^3.3.2","@smithy/util-middleware":"^4.2.11","@smithy/util-retry":"^4.2.11","@smithy/util-utf8":"^4.2.2",tslib:"^2.6.2"},devDependencies:{"@smithy/snapshot-testing":"^1.0.9","@tsconfig/node20":"20.1.8","@types/node":"^20.14.8",concurrently:"7.0.0","downlevel-dts":"0.10.1",premove:"4.0.0",typescript:"~5.8.3",vitest:"^4.0.17"},engines:{node:">=20.0.0"},typesVersions:{"<4.5":{"dist-types/*":["dist-types/ts3.4/*"]}},files:["dist-*/**"],author:{name:"AWS SDK for JavaScript Team",url:"https://aws.amazon.com/javascript/"},license:"Apache-2.0",browser:{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.browser"},"react-native":{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.native"},homepage:"https://github.com/aws/aws-sdk-js-v3/tree/main/clients/client-secrets-manager",repository:{type:"git",url:"https://github.com/aws/aws-sdk-js-v3.git",directory:"clients/client-secrets-manager"}}});var iK=b(Dl=>{"use strict";var nAt=(Ko(),ue(Ga)),sAt=require("@smithy/property-provider"),sAe="AWS_ACCESS_KEY_ID",oAe="AWS_SECRET_ACCESS_KEY",iAe="AWS_SESSION_TOKEN",aAe="AWS_CREDENTIAL_EXPIRATION",cAe="AWS_CREDENTIAL_SCOPE",uAe="AWS_ACCOUNT_ID",oAt=t=>async()=>{t?.logger?.debug("@aws-sdk/credential-provider-env - fromEnv");let e=process.env[sAe],r=process.env[oAe],n=process.env[iAe],s=process.env[aAe],o=process.env[cAe],i=process.env[uAe];if(e&&r){let a={accessKeyId:e,secretAccessKey:r,...n&&{sessionToken:n},...s&&{expiration:new Date(s)},...o&&{credentialScope:o},...i&&{accountId:i}};return nAt.setCredentialFeature(a,"CREDENTIALS_ENV_VARS","g"),a}throw new sAt.CredentialsProviderError("Unable to find environment variable credentials.",{logger:t?.logger})};Dl.ENV_ACCOUNT_ID=uAe;Dl.ENV_CREDENTIAL_SCOPE=cAe;Dl.ENV_EXPIRATION=aAe;Dl.ENV_KEY=sAe;Dl.ENV_SECRET=oAe;Dl.ENV_SESSION=iAe;Dl.fromEnv=oAt});var lAe=b(nk=>{"use strict";Object.defineProperty(nk,"__esModule",{value:!0});nk.checkUrl=void 0;var iAt=require("@smithy/property-provider"),aAt="169.254.170.2",cAt="169.254.170.23",uAt="[fd00:ec2::23]",lAt=(t,e)=>{if(t.protocol!=="https:"&&!(t.hostname===aAt||t.hostname===cAt||t.hostname===uAt)){if(t.hostname.includes("[")){if(t.hostname==="[::1]"||t.hostname==="[0000:0000:0000:0000:0000:0000:0000:0001]")return}else{if(t.hostname==="localhost")return;let r=t.hostname.split("."),n=s=>{let o=parseInt(s,10);return 0<=o&&o<=255};if(r[0]==="127"&&n(r[1])&&n(r[2])&&n(r[3])&&r.length===4)return}throw new iAt.CredentialsProviderError(`URL not accepted. It must either be HTTPS or match one of the following: + - loopback CIDR 127.0.0.0/8 or [::1/128] + - ECS container host 169.254.170.2 + - EKS container host 169.254.170.23 or [fd00:ec2::23]`,{logger:e})}};nk.checkUrl=lAt});var dAe=b(sk=>{"use strict";Object.defineProperty(sk,"__esModule",{value:!0});sk.createGetRequest=gAt;sk.getCredentials=fAt;var aK=require("@smithy/property-provider"),dAt=require("@smithy/protocol-http"),pAt=require("@smithy/smithy-client"),mAt=require("@smithy/util-stream");function gAt(t){return new dAt.HttpRequest({protocol:t.protocol,hostname:t.hostname,port:Number(t.port),path:t.pathname,query:Array.from(t.searchParams.entries()).reduce((e,[r,n])=>(e[r]=n,e),{}),fragment:t.hash})}async function fAt(t,e){let n=await(0,mAt.sdkStreamMixin)(t.body).transformToString();if(t.statusCode===200){let s=JSON.parse(n);if(typeof s.AccessKeyId!="string"||typeof s.SecretAccessKey!="string"||typeof s.Token!="string"||typeof s.Expiration!="string")throw new aK.CredentialsProviderError("HTTP credential provider response not of the required format, an object matching: { AccessKeyId: string, SecretAccessKey: string, Token: string, Expiration: string(rfc3339) }",{logger:e});return{accessKeyId:s.AccessKeyId,secretAccessKey:s.SecretAccessKey,sessionToken:s.Token,expiration:(0,pAt.parseRfc3339DateTime)(s.Expiration)}}if(t.statusCode>=400&&t.statusCode<500){let s={};try{s=JSON.parse(n)}catch{}throw Object.assign(new aK.CredentialsProviderError(`Server responded with status: ${t.statusCode}`,{logger:e}),{Code:s.Code,Message:s.Message})}throw new aK.CredentialsProviderError(`Server responded with status: ${t.statusCode}`,{logger:e})}});var pAe=b(ok=>{"use strict";Object.defineProperty(ok,"__esModule",{value:!0});ok.retryWrapper=void 0;var hAt=(t,e,r)=>async()=>{for(let n=0;nsetTimeout(o,r))}return await t()};ok.retryWrapper=hAt});var fAe=b(ik=>{"use strict";Object.defineProperty(ik,"__esModule",{value:!0});ik.fromHttp=void 0;var SAt=require("tslib"),EAt=(Ko(),ue(Ga)),yAt=require("@smithy/node-http-handler"),mAe=require("@smithy/property-provider"),_At=SAt.__importDefault(require("node:fs/promises")),CAt=lAe(),gAe=dAe(),RAt=pAe(),vAt="AWS_CONTAINER_CREDENTIALS_RELATIVE_URI",xAt="http://169.254.170.2",PAt="AWS_CONTAINER_CREDENTIALS_FULL_URI",bAt="AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE",IAt="AWS_CONTAINER_AUTHORIZATION_TOKEN",AAt=(t={})=>{t.logger?.debug("@aws-sdk/credential-provider-http - fromHttp");let e,r=t.awsContainerCredentialsRelativeUri??process.env[vAt],n=t.awsContainerCredentialsFullUri??process.env[PAt],s=t.awsContainerAuthorizationToken??process.env[IAt],o=t.awsContainerAuthorizationTokenFile??process.env[bAt],i=t.logger?.constructor?.name==="NoOpLogger"||!t.logger?.warn?console.warn:t.logger.warn.bind(t.logger);if(r&&n&&(i("@aws-sdk/credential-provider-http: you have set both awsContainerCredentialsRelativeUri and awsContainerCredentialsFullUri."),i("awsContainerCredentialsFullUri will take precedence.")),s&&o&&(i("@aws-sdk/credential-provider-http: you have set both awsContainerAuthorizationToken and awsContainerAuthorizationTokenFile."),i("awsContainerAuthorizationToken will take precedence.")),n)e=n;else if(r)e=`${xAt}${r}`;else throw new mAe.CredentialsProviderError(`No HTTP credential provider host provided. +Set AWS_CONTAINER_CREDENTIALS_FULL_URI or AWS_CONTAINER_CREDENTIALS_RELATIVE_URI.`,{logger:t.logger});let a=new URL(e);(0,CAt.checkUrl)(a,t.logger);let c=yAt.NodeHttpHandler.create({requestTimeout:t.timeout??1e3,connectionTimeout:t.timeout??1e3});return(0,RAt.retryWrapper)(async()=>{let u=(0,gAe.createGetRequest)(a);s?u.headers.Authorization=s:o&&(u.headers.Authorization=(await _At.default.readFile(o)).toString());try{let l=await c.handle(u);return(0,gAe.getCredentials)(l.response).then(d=>(0,EAt.setCredentialFeature)(d,"CREDENTIALS_HTTP","z"))}catch(l){throw new mAe.CredentialsProviderError(String(l),{logger:t.logger})}},t.maxRetries??3,t.timeout??1e3)};ik.fromHttp=AAt});var cK=b(ak=>{"use strict";Object.defineProperty(ak,"__esModule",{value:!0});ak.fromHttp=void 0;var TAt=fAe();Object.defineProperty(ak,"fromHttp",{enumerable:!0,get:function(){return TAt.fromHttp}})});var fC=b(gC=>{"use strict";var wAt=require("@smithy/protocol-http");function DAt(t){return t}var hAe=t=>e=>async r=>{if(!wAt.HttpRequest.isInstance(r.request))return e(r);let{request:n}=r,{handlerProtocol:s=""}=t.requestHandler.metadata||{};if(s.indexOf("h2")>=0&&!n.headers[":authority"])delete n.headers.host,n.headers[":authority"]=n.hostname+(n.port?":"+n.port:"");else if(!n.headers.host){let o=n.hostname;n.port!=null&&(o+=`:${n.port}`),n.headers.host=o}return e(r)},SAe={name:"hostHeaderMiddleware",step:"build",priority:"low",tags:["HOST"],override:!0},OAt=t=>({applyToStack:e=>{e.add(hAe(t),SAe)}});gC.getHostHeaderPlugin=OAt;gC.hostHeaderMiddleware=hAe;gC.hostHeaderMiddlewareOptions=SAe;gC.resolveHostHeaderConfig=DAt});var hC=b(ck=>{"use strict";var EAe=()=>(t,e)=>async r=>{try{let n=await t(r),{clientName:s,commandName:o,logger:i,dynamoDbDocumentClientOptions:a={}}=e,{overrideInputFilterSensitiveLog:c,overrideOutputFilterSensitiveLog:u}=a,l=c??e.inputFilterSensitiveLog,d=u??e.outputFilterSensitiveLog,{$metadata:p,...g}=n.output;return i?.info?.({clientName:s,commandName:o,input:l(r.input),output:d(g),metadata:p}),n}catch(n){let{clientName:s,commandName:o,logger:i,dynamoDbDocumentClientOptions:a={}}=e,{overrideInputFilterSensitiveLog:c}=a,u=c??e.inputFilterSensitiveLog;throw i?.error?.({clientName:s,commandName:o,input:u(r.input),error:n,metadata:n.$metadata}),n}},yAe={name:"loggerMiddleware",tags:["LOGGER"],step:"initialize",override:!0},kAt=t=>({applyToStack:e=>{e.add(EAe(),yAe)}});ck.getLoggerPlugin=kAt;ck.loggerMiddleware=EAe;ck.loggerMiddlewareOptions=yAe});var _Ae=b(uk=>{"use strict";Object.defineProperty(uk,"__esModule",{value:!0});uk.recursionDetectionMiddleware=void 0;var NAt=require("@aws/lambda-invoke-store"),LAt=require("@smithy/protocol-http"),uK="X-Amzn-Trace-Id",MAt="AWS_LAMBDA_FUNCTION_NAME",FAt="_X_AMZN_TRACE_ID",BAt=()=>t=>async e=>{let{request:r}=e;if(!LAt.HttpRequest.isInstance(r))return t(e);let n=Object.keys(r.headers??{}).find(l=>l.toLowerCase()===uK.toLowerCase())??uK;if(r.headers.hasOwnProperty(n))return t(e);let s=process.env[MAt],o=process.env[FAt],c=(await NAt.InvokeStore.getInstanceAsync())?.getXRayTraceId()??o,u=l=>typeof l=="string"&&l.length>0;return u(s)&&u(c)&&(r.headers[uK]=c),t({...e,request:r})};uk.recursionDetectionMiddleware=BAt});var EC=b(Ff=>{"use strict";var SC=_Ae(),UAt={step:"build",tags:["RECURSION_DETECTION"],name:"recursionDetectionMiddleware",override:!0,priority:"low"},qAt=t=>({applyToStack:e=>{e.add(SC.recursionDetectionMiddleware(),UAt)}});Ff.getRecursionDetectionPlugin=qAt;Object.prototype.hasOwnProperty.call(SC,"__proto__")&&!Object.prototype.hasOwnProperty.call(Ff,"__proto__")&&Object.defineProperty(Ff,"__proto__",{enumerable:!0,value:SC.__proto__});Object.keys(SC).forEach(function(t){t!=="default"&&!Object.prototype.hasOwnProperty.call(Ff,t)&&(Ff[t]=SC[t])})});var Uf=b(zi=>{"use strict";var Bf=require("@smithy/util-endpoints"),$At=require("@smithy/url-parser"),RAe=(t,e=!1)=>{if(e){for(let r of t.split("."))if(!RAe(r))return!1;return!0}return!(!Bf.isValidHostLabel(t)||t.length<3||t.length>63||t!==t.toLowerCase()||Bf.isIpAddress(t))},CAe=":",GAt="/",jAt=t=>{let e=t.split(CAe);if(e.length<6)return null;let[r,n,s,o,i,...a]=e;if(r!=="arn"||n===""||s===""||a.join(CAe)==="")return null;let c=a.map(u=>u.split(GAt)).flat();return{partition:n,service:s,region:o,accountId:i,resourceId:c}},VAt=[{id:"aws",outputs:{dnsSuffix:"amazonaws.com",dualStackDnsSuffix:"api.aws",implicitGlobalRegion:"us-east-1",name:"aws",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^(us|eu|ap|sa|ca|me|af|il|mx)\\-\\w+\\-\\d+$",regions:{"af-south-1":{description:"Africa (Cape Town)"},"ap-east-1":{description:"Asia Pacific (Hong Kong)"},"ap-east-2":{description:"Asia Pacific (Taipei)"},"ap-northeast-1":{description:"Asia Pacific (Tokyo)"},"ap-northeast-2":{description:"Asia Pacific (Seoul)"},"ap-northeast-3":{description:"Asia Pacific (Osaka)"},"ap-south-1":{description:"Asia Pacific (Mumbai)"},"ap-south-2":{description:"Asia Pacific (Hyderabad)"},"ap-southeast-1":{description:"Asia Pacific (Singapore)"},"ap-southeast-2":{description:"Asia Pacific (Sydney)"},"ap-southeast-3":{description:"Asia Pacific (Jakarta)"},"ap-southeast-4":{description:"Asia Pacific (Melbourne)"},"ap-southeast-5":{description:"Asia Pacific (Malaysia)"},"ap-southeast-6":{description:"Asia Pacific (New Zealand)"},"ap-southeast-7":{description:"Asia Pacific (Thailand)"},"aws-global":{description:"aws global region"},"ca-central-1":{description:"Canada (Central)"},"ca-west-1":{description:"Canada West (Calgary)"},"eu-central-1":{description:"Europe (Frankfurt)"},"eu-central-2":{description:"Europe (Zurich)"},"eu-north-1":{description:"Europe (Stockholm)"},"eu-south-1":{description:"Europe (Milan)"},"eu-south-2":{description:"Europe (Spain)"},"eu-west-1":{description:"Europe (Ireland)"},"eu-west-2":{description:"Europe (London)"},"eu-west-3":{description:"Europe (Paris)"},"il-central-1":{description:"Israel (Tel Aviv)"},"me-central-1":{description:"Middle East (UAE)"},"me-south-1":{description:"Middle East (Bahrain)"},"mx-central-1":{description:"Mexico (Central)"},"sa-east-1":{description:"South America (Sao Paulo)"},"us-east-1":{description:"US East (N. Virginia)"},"us-east-2":{description:"US East (Ohio)"},"us-west-1":{description:"US West (N. California)"},"us-west-2":{description:"US West (Oregon)"}}},{id:"aws-cn",outputs:{dnsSuffix:"amazonaws.com.cn",dualStackDnsSuffix:"api.amazonwebservices.com.cn",implicitGlobalRegion:"cn-northwest-1",name:"aws-cn",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^cn\\-\\w+\\-\\d+$",regions:{"aws-cn-global":{description:"aws-cn global region"},"cn-north-1":{description:"China (Beijing)"},"cn-northwest-1":{description:"China (Ningxia)"}}},{id:"aws-eusc",outputs:{dnsSuffix:"amazonaws.eu",dualStackDnsSuffix:"api.amazonwebservices.eu",implicitGlobalRegion:"eusc-de-east-1",name:"aws-eusc",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^eusc\\-(de)\\-\\w+\\-\\d+$",regions:{"eusc-de-east-1":{description:"AWS European Sovereign Cloud (Germany)"}}},{id:"aws-iso",outputs:{dnsSuffix:"c2s.ic.gov",dualStackDnsSuffix:"api.aws.ic.gov",implicitGlobalRegion:"us-iso-east-1",name:"aws-iso",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^us\\-iso\\-\\w+\\-\\d+$",regions:{"aws-iso-global":{description:"aws-iso global region"},"us-iso-east-1":{description:"US ISO East"},"us-iso-west-1":{description:"US ISO WEST"}}},{id:"aws-iso-b",outputs:{dnsSuffix:"sc2s.sgov.gov",dualStackDnsSuffix:"api.aws.scloud",implicitGlobalRegion:"us-isob-east-1",name:"aws-iso-b",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^us\\-isob\\-\\w+\\-\\d+$",regions:{"aws-iso-b-global":{description:"aws-iso-b global region"},"us-isob-east-1":{description:"US ISOB East (Ohio)"},"us-isob-west-1":{description:"US ISOB West"}}},{id:"aws-iso-e",outputs:{dnsSuffix:"cloud.adc-e.uk",dualStackDnsSuffix:"api.cloud-aws.adc-e.uk",implicitGlobalRegion:"eu-isoe-west-1",name:"aws-iso-e",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^eu\\-isoe\\-\\w+\\-\\d+$",regions:{"aws-iso-e-global":{description:"aws-iso-e global region"},"eu-isoe-west-1":{description:"EU ISOE West"}}},{id:"aws-iso-f",outputs:{dnsSuffix:"csp.hci.ic.gov",dualStackDnsSuffix:"api.aws.hci.ic.gov",implicitGlobalRegion:"us-isof-south-1",name:"aws-iso-f",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^us\\-isof\\-\\w+\\-\\d+$",regions:{"aws-iso-f-global":{description:"aws-iso-f global region"},"us-isof-east-1":{description:"US ISOF EAST"},"us-isof-south-1":{description:"US ISOF SOUTH"}}},{id:"aws-us-gov",outputs:{dnsSuffix:"amazonaws.com",dualStackDnsSuffix:"api.aws",implicitGlobalRegion:"us-gov-west-1",name:"aws-us-gov",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^us\\-gov\\-\\w+\\-\\d+$",regions:{"aws-us-gov-global":{description:"aws-us-gov global region"},"us-gov-east-1":{description:"AWS GovCloud (US-East)"},"us-gov-west-1":{description:"AWS GovCloud (US-West)"}}}],HAt="1.1",vAe={partitions:VAt,version:HAt},xAe=vAe,PAe="",bAe=t=>{let{partitions:e}=xAe;for(let n of e){let{regions:s,outputs:o}=n;for(let[i,a]of Object.entries(s))if(i===t)return{...o,...a}}for(let n of e){let{regionRegex:s,outputs:o}=n;if(new RegExp(s).test(t))return{...o}}let r=e.find(n=>n.id==="aws");if(!r)throw new Error("Provided region was not found in the partition array or regex, and default partition with id 'aws' doesn't exist.");return{...r.outputs}},IAe=(t,e="")=>{xAe=t,PAe=e},zAt=()=>{IAe(vAe,"")},WAt=()=>PAe,AAe={isVirtualHostableS3Bucket:RAe,parseArn:jAt,partition:bAe};Bf.customEndpointFunctions.aws=AAe;var KAt=t=>{if(typeof t.endpointProvider!="function")throw new Error("@aws-sdk/util-endpoint - endpointProvider and endpoint missing in config for this client.");let{endpoint:e}=t;return e===void 0&&(t.endpoint=async()=>TAe(t.endpointProvider({Region:typeof t.region=="function"?await t.region():t.region,UseDualStack:typeof t.useDualstackEndpoint=="function"?await t.useDualstackEndpoint():t.useDualstackEndpoint,UseFIPS:typeof t.useFipsEndpoint=="function"?await t.useFipsEndpoint():t.useFipsEndpoint,Endpoint:void 0},{logger:t.logger}))),t},TAe=t=>$At.parseUrl(t.url);zi.EndpointError=Bf.EndpointError;zi.isIpAddress=Bf.isIpAddress;zi.resolveEndpoint=Bf.resolveEndpoint;zi.awsEndpointFunctions=AAe;zi.getUserAgentPrefix=WAt;zi.partition=bAe;zi.resolveDefaultAwsRegionalEndpointsConfig=KAt;zi.setPartitionInfo=IAe;zi.toEndpointV1=TAe;zi.useDefaultPartitionInfo=zAt});var lk,Kc,wAe=_(()=>{lk={warningEmitted:!1},Kc=t=>{if(t&&!lk.warningEmitted){if(process.env.AWS_SDK_JS_NODE_VERSION_SUPPORT_WARNING_DISABLED==="true"){lk.warningEmitted=!0;return}let e=parseInt(t.substring(1,t.indexOf("."))),r=22;e=${r}. You are running node ${t}. + +To continue receiving updates to AWS services, bug fixes, +and security updates please upgrade to node >=${r}. + +More information can be found at: https://a.co/c895JFp`))}}});var QAt,XAt,DAe,OAe=_(()=>{QAt=()=>(t,e)=>async r=>(e.__retryLongPoll=!0,t(r)),XAt={name:"longPollMiddleware",tags:["RETRY"],step:"initialize",override:!0},DAe=t=>({applyToStack:e=>{e.add(QAt(),XAt)}})});function hp(t,e,r){return t.$source||(t.$source={}),t.$source[e]=r,t}var kAe=_(()=>{});function JAt(t,e,r){t.__aws_sdk_context?t.__aws_sdk_context.features||(t.__aws_sdk_context.features={}):t.__aws_sdk_context={features:{}},t.__aws_sdk_context.features[e]=r}var NAe,LAe=_(()=>{NAe=require("@smithy/util-retry");NAe.Retry.v2026||=typeof process=="object"&&process.env?.AWS_NEW_RETRIES_2026==="true"});function YAt(t,e,r){return t.$source||(t.$source={}),t.$source[e]=r,t}var MAe=_(()=>{});var lK={};wt(lK,{emitWarningIfUnsupportedVersion:()=>Kc,getLongPollPlugin:()=>DAe,setCredentialFeature:()=>hp,setFeature:()=>JAt,setTokenFeature:()=>YAt,state:()=>lk});var Qc=_(()=>{wAe();OAe();kAe();LAe();MAe()});var $f=b(qf=>{"use strict";var ZAt=require("@smithy/core"),eTt=Uf(),tTt=require("@smithy/protocol-http"),Xc=(Qc(),ue(lK)),FAe=require("@smithy/util-retry"),$Ae=void 0;function rTt(t){return t===void 0?!0:typeof t=="string"&&t.length<=50}function nTt(t){let e=ZAt.normalizeProvider(t.userAgentAppId??$Ae),{customUserAgent:r}=t;return Object.assign(t,{customUserAgent:typeof r=="string"?[[r]]:r,userAgentAppId:async()=>{let n=await e();if(!rTt(n)){let s=t.logger?.constructor?.name==="NoOpLogger"||!t.logger?console:t.logger;typeof n!="string"?s?.warn("userAgentAppId must be a string or undefined."):n.length>50&&s?.warn("The provided userAgentAppId exceeds the maximum length of 50 characters.")}return n}})}var sTt=/\d{12}\.ddb/;async function oTt(t,e,r){if(r.request?.headers?.["smithy-protocol"]==="rpc-v2-cbor"&&Xc.setFeature(t,"PROTOCOL_RPC_V2_CBOR","M"),typeof e.retryStrategy=="function"){let o=await e.retryStrategy();if(typeof o.mode=="string")switch(o.mode){case FAe.RETRY_MODES.ADAPTIVE:Xc.setFeature(t,"RETRY_MODE_ADAPTIVE","F");break;case FAe.RETRY_MODES.STANDARD:Xc.setFeature(t,"RETRY_MODE_STANDARD","E");break}}if(typeof e.accountIdEndpointMode=="function"){let o=t.endpointV2;switch(String(o?.url?.hostname).match(sTt)&&Xc.setFeature(t,"ACCOUNT_ID_ENDPOINT","O"),await e.accountIdEndpointMode?.()){case"disabled":Xc.setFeature(t,"ACCOUNT_ID_MODE_DISABLED","Q");break;case"preferred":Xc.setFeature(t,"ACCOUNT_ID_MODE_PREFERRED","P");break;case"required":Xc.setFeature(t,"ACCOUNT_ID_MODE_REQUIRED","R");break}}let s=t.__smithy_context?.selectedHttpAuthScheme?.identity;if(s?.$source){let o=s;o.accountId&&Xc.setFeature(t,"RESOLVED_ACCOUNT_ID","T");for(let[i,a]of Object.entries(o.$source??{}))Xc.setFeature(t,i,a)}}var BAe="user-agent",dK="x-amz-user-agent",UAe=" ",pK="/",iTt=/[^!$%&'*+\-.^_`|~\w]/g,aTt=/[^!$%&'*+\-.^_`|~\w#]/g,qAe="-",cTt=1024;function uTt(t){let e="";for(let r in t){let n=t[r];if(e.length+n.length+1<=cTt){e.length?e+=","+n:e+=n;continue}break}return e}var GAe=t=>(e,r)=>async n=>{let{request:s}=n;if(!tTt.HttpRequest.isInstance(s))return e(n);let{headers:o}=s,i=r?.userAgent?.map(dk)||[],a=(await t.defaultUserAgentProvider()).map(dk);await oTt(r,t,n);let c=r;a.push(`m/${uTt(Object.assign({},r.__smithy_context?.features,c.__aws_sdk_context?.features))}`);let u=t?.customUserAgent?.map(dk)||[],l=await t.userAgentAppId();l&&a.push(dk(["app",`${l}`]));let d=eTt.getUserAgentPrefix(),p=(d?[d]:[]).concat([...a,...i,...u]).join(UAe),g=[...a.filter(y=>y.startsWith("aws-sdk-")),...u].join(UAe);return t.runtime!=="browser"?(g&&(o[dK]=o[dK]?`${o[BAe]} ${g}`:g),o[BAe]=p):o[dK]=p,e({...n,request:s})},dk=t=>{let e=t[0].split(pK).map(i=>i.replace(iTt,qAe)).join(pK),r=t[1]?.replace(aTt,qAe),n=e.indexOf(pK),s=e.substring(0,n),o=e.substring(n+1);return s==="api"&&(o=o.toLowerCase()),[s,o,r].filter(i=>i&&i.length>0).reduce((i,a,c)=>{switch(c){case 0:return a;case 1:return`${i}/${a}`;default:return`${i}#${a}`}},"")},jAe={name:"getUserAgentMiddleware",step:"build",priority:"low",tags:["SET_USER_AGENT","USER_AGENT"],override:!0},lTt=t=>({applyToStack:e=>{e.add(GAe(t),jAe)}});qf.DEFAULT_UA_APP_ID=$Ae;qf.getUserAgentMiddlewareOptions=jAe;qf.getUserAgentPlugin=lTt;qf.resolveUserAgentConfig=nTt;qf.userAgentMiddleware=GAe});var VAe,mK,HAe=_(()=>{VAe=require("@smithy/protocol-http"),mK=t=>VAe.HttpResponse.isInstance(t)?t.headers?.date??t.headers?.Date:void 0});var Gf,gK=_(()=>{Gf=t=>new Date(Date.now()+t)});var zAe,WAe=_(()=>{gK();zAe=(t,e)=>Math.abs(Gf(e).getTime()-t)>=3e5});var fK,KAe=_(()=>{WAe();fK=(t,e)=>{let r=Date.parse(t);return zAe(r,e)?r-Date.now():e}});var hK=_(()=>{HAe();gK();KAe()});var QAe,yC,pk,Zn,SK=_(()=>{QAe=require("@smithy/protocol-http");hK();yC=(t,e)=>{if(!e)throw new Error(`Property \`${t}\` is not resolved for AWS SDK SigV4Auth`);return e},pk=async t=>{let e=yC("context",t.context),r=yC("config",t.config),n=e.endpointV2?.properties?.authSchemes?.[0],o=await yC("signer",r.signer)(n),i=t?.signingRegion,a=t?.signingRegionSet,c=t?.signingName;return{config:r,signer:o,signingRegion:i,signingRegionSet:a,signingName:c}},Zn=class{async sign(e,r,n){if(!QAe.HttpRequest.isInstance(e))throw new Error("The request is not an instance of `HttpRequest` and cannot be signed");let s=await pk(n),{config:o,signer:i}=s,{signingRegion:a,signingName:c}=s,u=n.context;if(u?.authSchemes?.length??!1){let[d,p]=u.authSchemes;d?.name==="sigv4a"&&p?.name==="sigv4"&&(a=p?.signingRegion??a,c=p?.signingName??c)}return await i.sign(e,{signingDate:Gf(o.systemClockOffset),signingRegion:a,signingService:c})}errorHandler(e){return r=>{let n=r.ServerTime??mK(r.$response);if(n){let s=yC("config",e.config),o=s.systemClockOffset;s.systemClockOffset=fK(n,s.systemClockOffset),s.systemClockOffset!==o&&r.$metadata&&(r.$metadata.clockSkewCorrected=!0)}throw r}}successHandler(e,r){let n=mK(e);if(n){let s=yC("config",r.config);s.systemClockOffset=fK(n,s.systemClockOffset)}}}});var XAe,Sp,JAe=_(()=>{XAe=require("@smithy/protocol-http");hK();SK();Sp=class extends Zn{async sign(e,r,n){if(!XAe.HttpRequest.isInstance(e))throw new Error("The request is not an instance of `HttpRequest` and cannot be signed");let{config:s,signer:o,signingRegion:i,signingRegionSet:a,signingName:c}=await pk(n),l=(await s.sigv4aSigningRegionSet?.()??a??[i]).join(",");return await o.sign(e,{signingDate:Gf(s.systemClockOffset),signingRegion:l,signingService:c})}}});var EK,YAe=_(()=>{EK=t=>typeof t=="string"&&t.length>0?t.split(",").map(e=>e.trim()):[]});var ZAe,yK=_(()=>{ZAe=t=>`AWS_BEARER_TOKEN_${t.replace(/[\s-]/g,"_").toUpperCase()}`});var eTe,tTe,Ol,rTe=_(()=>{YAe();yK();eTe="AWS_AUTH_SCHEME_PREFERENCE",tTe="auth_scheme_preference",Ol={environmentVariableSelector:(t,e)=>{if(e?.signingName&&ZAe(e.signingName)in t)return["httpBearerAuth"];if(eTe in t)return EK(t[eTe])},configFileSelector:t=>{if(tTe in t)return EK(t[tTe])},default:[]}});var nTe,_K,sTe,oTe,iTe=_(()=>{nTe=require("@smithy/core"),_K=require("@smithy/property-provider"),sTe=t=>(t.sigv4aSigningRegionSet=(0,nTe.normalizeProvider)(t.sigv4aSigningRegionSet),t),oTe={environmentVariableSelector(t){if(t.AWS_SIGV4A_SIGNING_REGION_SET)return t.AWS_SIGV4A_SIGNING_REGION_SET.split(",").map(e=>e.trim());throw new _K.ProviderError("AWS_SIGV4A_SIGNING_REGION_SET not set in env.",{tryNextLink:!0})},configFileSelector(t){if(t.sigv4a_signing_region_set)return(t.sigv4a_signing_region_set??"").split(",").map(e=>e.trim());throw new _K.ProviderError("sigv4a_signing_region_set not set in profile.",{tryNextLink:!0})},default:void 0}});function dTt(t,{credentials:e,credentialDefaultProvider:r}){let n;return e?e?.memoized?n=e:n=(0,Wi.memoizeIdentityProvider)(e,Wi.isIdentityExpired,Wi.doesIdentityRequireRefresh):r?n=(0,Wi.normalizeProvider)(r(Object.assign({},t,{parentClientConfig:t}))):n=async()=>{throw new Error("@aws-sdk/core::resolveAwsSdkSigV4Config - `credentials` not provided and no credentialDefaultProvider was configured.")},n.memoized=!0,n}function pTt(t,e){if(e.configBound)return e;let r=async n=>e({...n,callerClientConfig:t});return r.memoized=e.memoized,r.configBound=!0,r}var Wi,CK,kl,aTe=_(()=>{Qc();Wi=require("@smithy/core"),CK=require("@smithy/signature-v4"),kl=t=>{let e=t.credentials,r=!!t.credentials,n;Object.defineProperty(t,"credentials",{set(u){u&&u!==e&&u!==n&&(r=!0),e=u;let l=dTt(t,{credentials:e,credentialDefaultProvider:t.credentialDefaultProvider}),d=pTt(t,l);if(r&&!d.attributed){let p=typeof e=="object"&&e!==null;n=async g=>{let R=await d(g);return p&&(!R.$source||Object.keys(R.$source).length===0)?hp(R,"CREDENTIALS_CODE","e"):R},n.memoized=d.memoized,n.configBound=d.configBound,n.attributed=!0}else n=d},get(){return n},enumerable:!0,configurable:!0}),t.credentials=e;let{signingEscapePath:s=!0,systemClockOffset:o=t.systemClockOffset||0,sha256:i}=t,a;return t.signer?a=(0,Wi.normalizeProvider)(t.signer):t.regionInfoProvider?a=()=>(0,Wi.normalizeProvider)(t.region)().then(async u=>[await t.regionInfoProvider(u,{useFipsEndpoint:await t.useFipsEndpoint(),useDualstackEndpoint:await t.useDualstackEndpoint()})||{},u]).then(([u,l])=>{let{signingRegion:d,signingService:p}=u;t.signingRegion=t.signingRegion||d||l,t.signingName=t.signingName||p||t.serviceId;let g={...t,credentials:t.credentials,region:t.signingRegion,service:t.signingName,sha256:i,uriEscapePath:s},y=t.signerConstructor||CK.SignatureV4;return new y(g)}):a=async u=>{u=Object.assign({},{name:"sigv4",signingName:t.signingName||t.defaultSigningName,signingRegion:await(0,Wi.normalizeProvider)(t.region)(),properties:{}},u);let l=u.signingRegion,d=u.signingName;t.signingRegion=t.signingRegion||l,t.signingName=t.signingName||d||t.serviceId;let p={...t,credentials:t.credentials,region:t.signingRegion,service:t.signingName,sha256:i,uriEscapePath:s},g=t.signerConstructor||CK.SignatureV4;return new g(p)},Object.assign(t,{systemClockOffset:o,signingEscapePath:s,signer:a})}});var cTe=_(()=>{SK();JAe();rTe();iTe();aTe()});var io=_(()=>{cTe();yK()});function mTt(t){return{schemeId:"aws.auth#sigv4",signingProperties:{name:"sso-oauth",region:t.region},propertiesExtractor:(e,r)=>({signingProperties:{config:e,context:r}})}}function gTt(t){return{schemeId:"smithy.api#noAuth"}}var _C,uTe,lTe,dTe,RK=_(()=>{io();_C=require("@smithy/util-middleware"),uTe=async(t,e,r)=>({operation:(0,_C.getSmithyContext)(e).operation,region:await(0,_C.normalizeProvider)(t.region)()||(()=>{throw new Error("expected `region` to be configured for `aws.auth#sigv4`")})()});lTe=t=>{let e=[];switch(t.operation){case"CreateToken":{e.push(gTt(t));break}default:e.push(mTt(t))}return e},dTe=t=>{let e=kl(t);return Object.assign(e,{authSchemePreference:(0,_C.normalizeProvider)(t.authSchemePreference??[])})}});var pTe,mTe,vK=_(()=>{pTe=t=>Object.assign(t,{useDualstackEndpoint:t.useDualstackEndpoint??!1,useFipsEndpoint:t.useFipsEndpoint??!1,defaultSigningName:"sso-oauth"}),mTe={UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}});var Nl,CC=_(()=>{Nl={name:"@aws-sdk/nested-clients",version:"3.997.6",description:"Nested clients for AWS SDK packages.",main:"./dist-cjs/index.js",module:"./dist-es/index.js",types:"./dist-types/index.d.ts",scripts:{build:"yarn lint && concurrently 'yarn:build:types' 'yarn:build:es' && yarn build:cjs","build:cjs":"node ../../scripts/compilation/inline nested-clients","build:es":"tsc -p tsconfig.es.json","build:include:deps":'yarn g:turbo run build -F="$npm_package_name"',"build:types":"tsc -p tsconfig.types.json","build:types:downlevel":"downlevel-dts dist-types dist-types/ts3.4",clean:"premove dist-cjs dist-es dist-types tsconfig.cjs.tsbuildinfo tsconfig.es.tsbuildinfo tsconfig.types.tsbuildinfo",lint:"node ../../scripts/validation/submodules-linter.js --pkg nested-clients",test:"yarn g:vitest run","test:watch":"yarn g:vitest watch"},engines:{node:">=20.0.0"},sideEffects:!1,author:{name:"AWS SDK for JavaScript Team",url:"https://aws.amazon.com/javascript/"},license:"Apache-2.0",dependencies:{"@aws-crypto/sha256-browser":"5.2.0","@aws-crypto/sha256-js":"5.2.0","@aws-sdk/core":"^3.974.8","@aws-sdk/middleware-host-header":"^3.972.10","@aws-sdk/middleware-logger":"^3.972.10","@aws-sdk/middleware-recursion-detection":"^3.972.11","@aws-sdk/middleware-user-agent":"^3.972.38","@aws-sdk/region-config-resolver":"^3.972.13","@aws-sdk/signature-v4-multi-region":"^3.996.25","@aws-sdk/types":"^3.973.8","@aws-sdk/util-endpoints":"^3.996.8","@aws-sdk/util-user-agent-browser":"^3.972.10","@aws-sdk/util-user-agent-node":"^3.973.24","@smithy/config-resolver":"^4.4.17","@smithy/core":"^3.23.17","@smithy/fetch-http-handler":"^5.3.17","@smithy/hash-node":"^4.2.14","@smithy/invalid-dependency":"^4.2.14","@smithy/middleware-content-length":"^4.2.14","@smithy/middleware-endpoint":"^4.4.32","@smithy/middleware-retry":"^4.5.7","@smithy/middleware-serde":"^4.2.20","@smithy/middleware-stack":"^4.2.14","@smithy/node-config-provider":"^4.3.14","@smithy/node-http-handler":"^4.6.1","@smithy/protocol-http":"^5.3.14","@smithy/smithy-client":"^4.12.13","@smithy/types":"^4.14.1","@smithy/url-parser":"^4.2.14","@smithy/util-base64":"^4.3.2","@smithy/util-body-length-browser":"^4.2.2","@smithy/util-body-length-node":"^4.2.3","@smithy/util-defaults-mode-browser":"^4.3.49","@smithy/util-defaults-mode-node":"^4.2.54","@smithy/util-endpoints":"^3.4.2","@smithy/util-middleware":"^4.2.14","@smithy/util-retry":"^4.3.6","@smithy/util-utf8":"^4.2.2",tslib:"^2.6.2"},devDependencies:{concurrently:"7.0.0","downlevel-dts":"0.10.1",premove:"4.0.0",typescript:"~5.8.3"},typesVersions:{"<4.5":{"dist-types/*":["dist-types/ts3.4/*"]}},files:["./cognito-identity.d.ts","./cognito-identity.js","./signin.d.ts","./signin.js","./sso-oidc.d.ts","./sso-oidc.js","./sso.d.ts","./sso.js","./sts.d.ts","./sts.js","dist-*/**"],browser:{"./dist-es/submodules/cognito-identity/runtimeConfig":"./dist-es/submodules/cognito-identity/runtimeConfig.browser","./dist-es/submodules/signin/runtimeConfig":"./dist-es/submodules/signin/runtimeConfig.browser","./dist-es/submodules/sso-oidc/runtimeConfig":"./dist-es/submodules/sso-oidc/runtimeConfig.browser","./dist-es/submodules/sso/runtimeConfig":"./dist-es/submodules/sso/runtimeConfig.browser","./dist-es/submodules/sts/runtimeConfig":"./dist-es/submodules/sts/runtimeConfig.browser"},"react-native":{},homepage:"https://github.com/aws/aws-sdk-js-v3/tree/main/packages/nested-clients",repository:{type:"git",url:"https://github.com/aws/aws-sdk-js-v3.git",directory:"packages/nested-clients"},exports:{"./package.json":"./package.json","./sso-oidc":{types:"./dist-types/submodules/sso-oidc/index.d.ts",module:"./dist-es/submodules/sso-oidc/index.js",node:"./dist-cjs/submodules/sso-oidc/index.js",import:"./dist-es/submodules/sso-oidc/index.js",require:"./dist-cjs/submodules/sso-oidc/index.js"},"./sts":{types:"./dist-types/submodules/sts/index.d.ts",module:"./dist-es/submodules/sts/index.js",node:"./dist-cjs/submodules/sts/index.js",import:"./dist-es/submodules/sts/index.js",require:"./dist-cjs/submodules/sts/index.js"},"./signin":{types:"./dist-types/submodules/signin/index.d.ts",module:"./dist-es/submodules/signin/index.js",node:"./dist-cjs/submodules/signin/index.js",import:"./dist-es/submodules/signin/index.js",require:"./dist-cjs/submodules/signin/index.js"},"./cognito-identity":{types:"./dist-types/submodules/cognito-identity/index.d.ts",module:"./dist-es/submodules/cognito-identity/index.js",node:"./dist-cjs/submodules/cognito-identity/index.js",import:"./dist-es/submodules/cognito-identity/index.js",require:"./dist-cjs/submodules/cognito-identity/index.js"},"./sso":{types:"./dist-types/submodules/sso/index.d.ts",module:"./dist-es/submodules/sso/index.js",node:"./dist-cjs/submodules/sso/index.js",import:"./dist-es/submodules/sso/index.js",require:"./dist-cjs/submodules/sso/index.js"}}}});var vC=b(Ep=>{"use strict";var gTe=require("node:os"),RC=require("node:process"),fTe=require("@smithy/util-config-provider"),hTe=require("node:fs/promises"),jf=require("node:path"),hTt=$f(),STt=()=>{let t=["deno","bun","llrt"];for(let e of t)if(RC.versions[e])return[`md/${e}`,RC.versions[e]];return["md/nodejs",RC.versions.node]},ETt=t=>{let e=process.cwd();if(!t)return[e];let r=jf.normalize(t),n=r.split(jf.sep),s=n.indexOf("node_modules"),o=s!==-1?n.slice(0,s).join(jf.sep):r;return e===o?[e]:[o,e]},yTt=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*)?$/,STe=(t="")=>{let e=t.match(yTt);if(!e)return;let[r,n,s,o]=[e[1],e[2],e[3],e[4]];return o?`${r}.${n}.${s}-${o}`:`${r}.${n}.${s}`},_Tt=["^","~",">=","<=",">","<"],CTt=["latest","beta","dev","rc","insiders","next"],RTt=(t="")=>{if(CTt.includes(t))return t;let e=_Tt.find(n=>t.startsWith(n))??"",r=STe(t.slice(e.length));if(r)return`${e}${r}`},ja,vTt=jf.join("node_modules","typescript","package.json"),xTt=async()=>{if(ja===null)return;if(typeof ja=="string")return["md/tsc",ja];let t=!1;try{t=fTe.booleanSelector(process.env,"AWS_SDK_JS_TYPESCRIPT_DETECTION_DISABLED",fTe.SelectorType.ENV)||!1}catch{}if(t){ja=null;return}let r=ETt(typeof __dirname<"u"?__dirname:void 0),n;for(let i of r)try{let a=jf.join(i,"package.json"),c=await hTe.readFile(a,"utf-8"),{dependencies:u,devDependencies:l}=JSON.parse(c),d=l?.typescript??u?.typescript;if(typeof d!="string")continue;n=d;break}catch{}if(!n){ja=null;return}let s;for(let i of r)try{let a=jf.join(i,vTt),c=await hTe.readFile(a,"utf-8"),{version:u}=JSON.parse(c),l=STe(u);if(typeof l!="string")continue;s=l;break}catch{}if(s)return ja=s,["md/tsc",ja];let o=RTt(n);if(typeof o!="string"){ja=null;return}return ja=`dev_${o}`,["md/tsc",ja]},ETe={isCrtAvailable:!1},PTt=()=>ETe.isCrtAvailable?["md/crt-avail"]:null,yTe=({serviceId:t,clientVersion:e})=>{let r=STt();return async n=>{let s=[["aws-sdk-js",e],["ua","2.1"],[`os/${gTe.platform()}`,gTe.release()],["lang/js"],r],o=await xTt();o&&s.push(o);let i=PTt();i&&s.push(i),t&&s.push([`api/${t}`,e]),RC.env.AWS_EXECUTION_ENV&&s.push([`exec-env/${RC.env.AWS_EXECUTION_ENV}`]);let a=await n?.userAgentAppId?.();return a?[...s,[`app/${a}`]]:[...s]}},bTt=yTe,_Te="AWS_SDK_UA_APP_ID",CTe="sdk_ua_app_id",ITt="sdk-ua-app-id",ATt={environmentVariableSelector:t=>t[_Te],configFileSelector:t=>t[CTe]??t[ITt],default:hTt.DEFAULT_UA_APP_ID};Ep.NODE_APP_ID_CONFIG_OPTIONS=ATt;Ep.UA_APP_ID_ENV_NAME=_Te;Ep.UA_APP_ID_INI_NAME=CTe;Ep.createDefaultUserAgentProvider=yTe;Ep.crtAvailability=ETe;Ep.defaultUserAgent=bTt});var xC,xK,Xo,Vf=_(()=>{xC=require("@smithy/core/schema"),xK=require("@smithy/smithy-client"),Xo=class{queryCompat;errorRegistry;constructor(e=!1){this.queryCompat=e}resolveRestContentType(e,r){let n=r.getMemberSchemas(),s=Object.values(n).find(o=>!!o.getMergedTraits().httpPayload);if(s){let o=s.getMergedTraits().mediaType;return o||(s.isStringSchema()?"text/plain":s.isBlobSchema()?"application/octet-stream":e)}else if(!r.isUnitSchema()&&Object.values(n).find(i=>{let{httpQuery:a,httpQueryParams:c,httpHeader:u,httpLabel:l,httpPrefixHeaders:d}=i.getMergedTraits();return!a&&!c&&!u&&!l&&d===void 0}))return e}async getErrorSchemaOrThrowBaseException(e,r,n,s,o,i){let a=e;e.includes("#")&&([,a]=e.split("#"));let c={$metadata:o,$fault:n.statusCode<500?"client":"server"};if(!this.errorRegistry)throw new Error("@aws-sdk/core/protocols - error handler not initialized.");try{return{errorSchema:i?.(this.errorRegistry,a)??this.errorRegistry.getSchema(e),errorMetadata:c}}catch{s.message=s.message??s.Message??"UnknownError";let l=this.errorRegistry,d=l.getBaseException();if(d){let y=l.getErrorCtor(d)??Error;throw this.decorateServiceException(Object.assign(new y({name:a}),c),s)}let p=s,g=p?.message??p?.Message??p?.Error?.Message??p?.Error?.message;throw this.decorateServiceException(Object.assign(new Error(g),{name:a},c),s)}}compose(e,r,n){let s=n;r.includes("#")&&([s]=r.split("#"));let o=xC.TypeRegistry.for(s),i=xC.TypeRegistry.for("smithy.ts.sdk.synthetic."+n);e.copyFrom(o),e.copyFrom(i),this.errorRegistry=e}decorateServiceException(e,r={}){if(this.queryCompat){let n=e.Message??r.Message,s=(0,xK.decorateServiceException)(e,r);n&&(s.message=n);let o=s.Error??{};o.Type=s.Error?.Type,o.Code=s.Error?.Code,o.Message=s.Error?.message??s.Error?.Message??n,s.Error=o;let i=s.$metadata.requestId;return i&&(s.RequestId=i),s}return(0,xK.decorateServiceException)(e,r)}setQueryCompatError(e,r){let n=r.headers?.["x-amzn-query-error"];if(e!==void 0&&n!=null){let[s,o]=n.split(";"),i=Object.keys(e),a={Code:s,Type:o};e.Code=s,e.Type=o;for(let c=0;cxC.NormalizedSchema.of(s).getMergedTraits().awsQueryError?.[0]===r)}}}});var mk,RTe,PK,vTe=_(()=>{mk=require("@smithy/core/cbor"),RTe=require("@smithy/core/schema");Vf();PK=class extends mk.SmithyRpcV2CborProtocol{awsQueryCompatible;mixin;constructor({defaultNamespace:e,errorTypeRegistries:r,awsQueryCompatible:n}){super({defaultNamespace:e,errorTypeRegistries:r}),this.awsQueryCompatible=!!n,this.mixin=new Xo(this.awsQueryCompatible)}async serializeRequest(e,r,n){let s=await super.serializeRequest(e,r,n);return this.awsQueryCompatible&&(s.headers["x-amzn-query-mode"]="true"),s}async handleError(e,r,n,s,o){this.awsQueryCompatible&&this.mixin.setQueryCompatError(s,n);let i=(()=>{let y=n.headers["x-amzn-query-error"];return y&&this.awsQueryCompatible?y.split(";")[0]:(0,mk.loadSmithyRpcV2CborErrorCode)(n,s)??"Unknown"})();this.mixin.compose(this.compositeErrorRegistry,i,this.options.defaultNamespace);let{errorSchema:a,errorMetadata:c}=await this.mixin.getErrorSchemaOrThrowBaseException(i,this.options.defaultNamespace,n,s,o,this.awsQueryCompatible?this.mixin.findQueryCompatibleError:void 0),u=RTe.NormalizedSchema.of(a),l=s.message??s.Message??"UnknownError",d=this.compositeErrorRegistry.getErrorCtor(a)??Error,p=new d(l),g={};for(let[y,R]of u.structIterator())s[y]!=null&&(g[y]=this.deserializer.readValue(R,s[y]));throw this.awsQueryCompatible&&this.mixin.queryCompatOutput(s,g),this.mixin.decorateServiceException(Object.assign(p,c,{$fault:u.getMergedTraits().error,message:l},g),s)}}});var TTt,wTt,DTt,xTe=_(()=>{TTt=t=>{if(t==null)return t;if(typeof t=="number"||typeof t=="bigint"){let e=new Error(`Received number ${t} where a string was expected.`);return e.name="Warning",console.warn(e),String(t)}if(typeof t=="boolean"){let e=new Error(`Received boolean ${t} where a string was expected.`);return e.name="Warning",console.warn(e),String(t)}return t},wTt=t=>{if(t==null)return t;if(typeof t=="string"){let e=t.toLowerCase();if(t!==""&&e!=="false"&&e!=="true"){let r=new Error(`Received string "${t}" where a boolean was expected.`);r.name="Warning",console.warn(r)}return t!==""&&e!=="false"}return t},DTt=t=>{if(t==null)return t;if(typeof t=="string"){let e=Number(t);if(e.toString()!==t){let r=new Error(`Received string "${t}" where a number was expected.`);return r.name="Warning",console.warn(r),t}return e}return t}});var Bn,Ll=_(()=>{Bn=class{serdeContext;setSerdeContext(e){this.serdeContext=e}}});var Hf,bK=_(()=>{Hf=class{from;to;keys;constructor(e,r){this.from=e,this.to=r;let n=Object.keys(this.from),s=new Set(n);s.delete("__type"),this.keys=s}mark(e){this.keys.delete(e)}hasUnknown(){return this.keys.size===1&&Object.keys(this.to).length===0}writeUnknown(){if(this.hasUnknown()){let e=this.keys.values().next().value,r=this.from[e];this.to.$unknown=[e,r]}}}});function bTe(t,e,r){if(r?.source){let n=r.source;if(typeof e=="number"&&(e>Number.MAX_SAFE_INTEGER||e{PTe=require("@smithy/core/serde")});var ATe,TTe,gk,IK=_(()=>{ATe=require("@smithy/smithy-client"),TTe=require("@smithy/util-utf8"),gk=(t,e)=>(0,ATe.collectBody)(t,e).then(r=>(e?.utf8Encoder??TTe.toUtf8)(r))});var fk,OTt,wTe,AK,PC,bC=_(()=>{IK();fk=(t,e)=>gk(t,e).then(r=>{if(r.length)try{return JSON.parse(r)}catch(n){throw n?.name==="SyntaxError"&&Object.defineProperty(n,"$responseBodyText",{value:r}),n}return{}}),OTt=async(t,e)=>{let r=await fk(t,e);return r.message=r.message??r.Message,r},wTe=(t,e)=>Object.keys(t).find(r=>r.toLowerCase()===e.toLowerCase()),AK=t=>{let e=t;return typeof e=="number"&&(e=e.toString()),e.indexOf(",")>=0&&(e=e.split(",")[0]),e.indexOf(":")>=0&&(e=e.split(":")[0]),e.indexOf("#")>=0&&(e=e.split("#")[1]),e},PC=(t,e)=>{let r=wTe(t.headers,"x-amzn-errortype");if(r!==void 0)return AK(t.headers[r]);if(e&&typeof e=="object"){let n=wTe(e,"code");if(n&&e[n]!==void 0)return AK(e[n]);if(e.__type!==void 0)return AK(e.__type)}}});var DTe,OTe,ao,kTe,IC,TK=_(()=>{DTe=require("@smithy/core/protocols"),OTe=require("@smithy/core/schema"),ao=require("@smithy/core/serde"),kTe=require("@smithy/util-base64");Ll();bK();ITe();bC();IC=class extends Bn{settings;constructor(e){super(),this.settings=e}async read(e,r){return this._read(e,typeof r=="string"?JSON.parse(r,bTe):await fk(r,this.serdeContext))}readObject(e,r){return this._read(e,r)}_read(e,r){let n=r!==null&&typeof r=="object",s=OTe.NormalizedSchema.of(e);if(n){if(s.isStructSchema()){let i=r,a=s.isUnionSchema(),c={},u,{jsonName:l}=this.settings;l&&(u={});let d;a&&(d=new Hf(i,c));for(let[p,g]of s.structIterator()){let y=p;l&&(y=g.getMergedTraits().jsonName??y,u[y]=p),a&&d.mark(y),i[y]!=null&&(c[p]=this._read(g,i[y]))}if(a)d.writeUnknown();else if(typeof i.__type=="string")for(let p in i){let g=i[p],y=l?u[p]??p:p;y in c||(c[y]=g)}return c}if(Array.isArray(r)&&s.isListSchema()){let i=s.getValueSchema(),a=[];for(let c of r)a.push(this._read(i,c));return a}if(s.isMapSchema()){let i=s.getValueSchema(),a={};for(let c in r)a[c]=this._read(i,r[c]);return a}}if(s.isBlobSchema()&&typeof r=="string")return(0,kTe.fromBase64)(r);let o=s.getMergedTraits().mediaType;if(s.isStringSchema()&&typeof r=="string"&&o)return o==="application/json"||o.endsWith("+json")?ao.LazyJsonString.from(r):r;if(s.isTimestampSchema()&&r!=null)switch((0,DTe.determineTimestampFormat)(s,this.settings)){case 5:return(0,ao.parseRfc3339DateTimeWithOffset)(r);case 6:return(0,ao.parseRfc7231DateTime)(r);case 7:return(0,ao.parseEpochTimestamp)(r);default:return console.warn("Missing timestamp format, parsing value with Date constructor:",r),new Date(r)}if(s.isBigIntegerSchema()&&(typeof r=="number"||typeof r=="string"))return BigInt(r);if(s.isBigDecimalSchema()&&r!=null){if(r instanceof ao.NumericValue)return r;let i=r;return i.type==="bigDecimal"&&"string"in i?new ao.NumericValue(i.string,i.type):new ao.NumericValue(String(r),"bigDecimal")}if(s.isNumericSchema()&&typeof r=="string"){switch(r){case"Infinity":return 1/0;case"-Infinity":return-1/0;case"NaN":return NaN}return r}if(s.isDocumentSchema())if(n){let i=Array.isArray(r)?[]:{};for(let a in r){let c=r[a];c instanceof ao.NumericValue?i[a]=c:i[a]=this._read(s,c)}return i}else return structuredClone(r);return r}}});var LTe,NTe,hk,MTe=_(()=>{LTe=require("@smithy/core/serde"),NTe="\u039D",hk=class{values=new Map;counter=0;stage=0;createReplacer(){if(this.stage===1)throw new Error("@aws-sdk/core/protocols - JsonReplacer already created.");if(this.stage===2)throw new Error("@aws-sdk/core/protocols - JsonReplacer exhausted.");return this.stage=1,(e,r)=>{if(r instanceof LTe.NumericValue){let n=`${NTe+"nv"+this.counter++}_`+r.string;return this.values.set(`"${n}"`,r.string),n}if(typeof r=="bigint"){let n=r.toString(),s=`${NTe+"b"+this.counter++}_`+n;return this.values.set(`"${s}"`,n),s}return r}}replaceInJson(e){if(this.stage===0)throw new Error("@aws-sdk/core/protocols - JsonReplacer not created yet.");if(this.stage===2)throw new Error("@aws-sdk/core/protocols - JsonReplacer exhausted.");if(this.stage=2,this.counter===0)return e;for(let[r,n]of this.values)e=e.replace(r,n);return e}}});var FTe,Sk,Jc,wK,AC,DK=_(()=>{FTe=require("@smithy/core/protocols"),Sk=require("@smithy/core/schema"),Jc=require("@smithy/core/serde"),wK=require("@smithy/util-base64");Ll();MTe();AC=class extends Bn{settings;buffer;useReplacer=!1;rootSchema;constructor(e){super(),this.settings=e}write(e,r){this.rootSchema=Sk.NormalizedSchema.of(e),this.buffer=this._write(this.rootSchema,r)}flush(){let{rootSchema:e,useReplacer:r}=this;if(this.rootSchema=void 0,this.useReplacer=!1,e?.isStructSchema()||e?.isDocumentSchema()){if(!r)return JSON.stringify(this.buffer);let n=new hk;return n.replaceInJson(JSON.stringify(this.buffer,n.createReplacer(),0))}return this.buffer}writeDiscriminatedDocument(e,r){this.write(e,r),typeof this.buffer=="object"&&(this.buffer.__type=Sk.NormalizedSchema.of(e).getName(!0))}_write(e,r,n){let s=r!==null&&typeof r=="object",o=Sk.NormalizedSchema.of(e);if(s){if(o.isStructSchema()){let i=r,a={},{jsonName:c}=this.settings,u;c&&(u={});let l=0;for(let[d,p]of o.structIterator()){let g=this._write(p,i[d],o);if(g!==void 0){let y=d;c&&(y=p.getMergedTraits().jsonName??d,u[d]=y),a[y]=g,l++}}if(o.isUnionSchema()&&l===0){let{$unknown:d}=i;if(Array.isArray(d)){let[p,g]=d;a[p]=this._write(15,g)}}else if(typeof i.__type=="string")for(let d in i){let p=i[d],g=c?u[d]??d:d;g in a||(a[g]=this._write(15,p))}return a}if(Array.isArray(r)&&o.isListSchema()){let i=o.getValueSchema(),a=[],c=!!o.getMergedTraits().sparse;for(let u of r)(c||u!=null)&&a.push(this._write(i,u));return a}if(o.isMapSchema()){let i=o.getValueSchema(),a={},c=!!o.getMergedTraits().sparse;for(let u in r){let l=r[u];(c||l!=null)&&(a[u]=this._write(i,l))}return a}if(r instanceof Uint8Array&&(o.isBlobSchema()||o.isDocumentSchema()))return o===this.rootSchema?r:(this.serdeContext?.base64Encoder??wK.toBase64)(r);if(r instanceof Date&&(o.isTimestampSchema()||o.isDocumentSchema()))switch((0,FTe.determineTimestampFormat)(o,this.settings)){case 5:return r.toISOString().replace(".000Z","Z");case 6:return(0,Jc.dateToUtcString)(r);case 7:return r.getTime()/1e3;default:return console.warn("Missing timestamp format, using epoch seconds",r),r.getTime()/1e3}r instanceof Jc.NumericValue&&(this.useReplacer=!0)}if(!(r===null&&n?.isStructSchema())){if(o.isStringSchema()){if(typeof r>"u"&&o.isIdempotencyToken())return(0,Jc.generateIdempotencyToken)();let i=o.getMergedTraits().mediaType;return r!=null&&i&&(i==="application/json"||i.endsWith("+json"))?Jc.LazyJsonString.from(r):r}if(typeof r=="number"&&o.isNumericSchema())return Math.abs(r)===1/0||isNaN(r)?String(r):r;if(typeof r=="string"&&o.isBlobSchema())return o===this.rootSchema?r:(this.serdeContext?.base64Encoder??wK.toBase64)(r);if(typeof r=="bigint"&&(this.useReplacer=!0),o.isDocumentSchema())if(s){let i=Array.isArray(r)?[]:{};for(let a in r){let c=r[a];c instanceof Jc.NumericValue?(this.useReplacer=!0,i[a]=c):i[a]=this._write(o,c)}return i}else return structuredClone(r);return r}}}});var yp,Ek=_(()=>{Ll();TK();DK();yp=class extends Bn{settings;constructor(e){super(),this.settings=e}createSerializer(){let e=new AC(this.settings);return e.setSerdeContext(this.serdeContext),e}createDeserializer(){let e=new IC(this.settings);return e.setSerdeContext(this.serdeContext),e}}});var BTe,yk,_p,_k=_(()=>{BTe=require("@smithy/core/protocols"),yk=require("@smithy/core/schema");Vf();Ek();bC();_p=class extends BTe.RpcProtocol{serializer;deserializer;serviceTarget;codec;mixin;awsQueryCompatible;constructor({defaultNamespace:e,errorTypeRegistries:r,serviceTarget:n,awsQueryCompatible:s,jsonCodec:o}){super({defaultNamespace:e,errorTypeRegistries:r}),this.serviceTarget=n,this.codec=o??new yp({timestampFormat:{useTrait:!0,default:7},jsonName:!1}),this.serializer=this.codec.createSerializer(),this.deserializer=this.codec.createDeserializer(),this.awsQueryCompatible=!!s,this.mixin=new Xo(this.awsQueryCompatible)}async serializeRequest(e,r,n){let s=await super.serializeRequest(e,r,n);return s.path.endsWith("/")||(s.path+="/"),s.headers["content-type"]=`application/x-amz-json-${this.getJsonRpcVersion()}`,s.headers["x-amz-target"]=`${this.serviceTarget}.${e.name}`,this.awsQueryCompatible&&(s.headers["x-amzn-query-mode"]="true"),((0,yk.deref)(e.input)==="unit"||!s.body)&&(s.body="{}"),s}getPayloadCodec(){return this.codec}async handleError(e,r,n,s,o){this.awsQueryCompatible&&this.mixin.setQueryCompatError(s,n);let i=PC(n,s)??"Unknown";this.mixin.compose(this.compositeErrorRegistry,i,this.options.defaultNamespace);let{errorSchema:a,errorMetadata:c}=await this.mixin.getErrorSchemaOrThrowBaseException(i,this.options.defaultNamespace,n,s,o,this.awsQueryCompatible?this.mixin.findQueryCompatibleError:void 0),u=yk.NormalizedSchema.of(a),l=s.message??s.Message??"UnknownError",d=this.compositeErrorRegistry.getErrorCtor(a)??Error,p=new d(l),g={},y=this.codec.createDeserializer();for(let[R,D]of u.structIterator())s[R]!=null&&(g[R]=y.readObject(D,s[R]));throw this.awsQueryCompatible&&this.mixin.queryCompatOutput(s,g),this.mixin.decorateServiceException(Object.assign(p,c,{$fault:u.getMergedTraits().error,message:l},g),s)}}});var OK,UTe=_(()=>{_k();OK=class extends _p{constructor({defaultNamespace:e,errorTypeRegistries:r,serviceTarget:n,awsQueryCompatible:s,jsonCodec:o}){super({defaultNamespace:e,errorTypeRegistries:r,serviceTarget:n,awsQueryCompatible:s,jsonCodec:o})}getShapeId(){return"aws.protocols#awsJson1_0"}getJsonRpcVersion(){return"1.0"}getDefaultContentType(){return"application/x-amz-json-1.0"}}});var kK,qTe=_(()=>{_k();kK=class extends _p{constructor({defaultNamespace:e,errorTypeRegistries:r,serviceTarget:n,awsQueryCompatible:s,jsonCodec:o}){super({defaultNamespace:e,errorTypeRegistries:r,serviceTarget:n,awsQueryCompatible:s,jsonCodec:o})}getShapeId(){return"aws.protocols#awsJson1_1"}getJsonRpcVersion(){return"1.1"}getDefaultContentType(){return"application/x-amz-json-1.1"}}});var zf,Ck,Yc,$Te=_(()=>{zf=require("@smithy/core/protocols"),Ck=require("@smithy/core/schema");Vf();Ek();bC();Yc=class extends zf.HttpBindingProtocol{serializer;deserializer;codec;mixin=new Xo;constructor({defaultNamespace:e,errorTypeRegistries:r}){super({defaultNamespace:e,errorTypeRegistries:r});let n={timestampFormat:{useTrait:!0,default:7},httpBindings:!0,jsonName:!0};this.codec=new yp(n),this.serializer=new zf.HttpInterceptingShapeSerializer(this.codec.createSerializer(),n),this.deserializer=new zf.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(),n)}getShapeId(){return"aws.protocols#restJson1"}getPayloadCodec(){return this.codec}setSerdeContext(e){this.codec.setSerdeContext(e),super.setSerdeContext(e)}async serializeRequest(e,r,n){let s=await super.serializeRequest(e,r,n),o=Ck.NormalizedSchema.of(e.input);if(!s.headers["content-type"]){let i=this.mixin.resolveRestContentType(this.getDefaultContentType(),o);i&&(s.headers["content-type"]=i)}return s.body==null&&s.headers["content-type"]===this.getDefaultContentType()&&(s.body="{}"),s}async deserializeResponse(e,r,n){let s=await super.deserializeResponse(e,r,n),o=Ck.NormalizedSchema.of(e.output);for(let[i,a]of o.structIterator())a.getMemberTraits().httpPayload&&!(i in s)&&(s[i]=null);return s}async handleError(e,r,n,s,o){let i=PC(n,s)??"Unknown";this.mixin.compose(this.compositeErrorRegistry,i,this.options.defaultNamespace);let{errorSchema:a,errorMetadata:c}=await this.mixin.getErrorSchemaOrThrowBaseException(i,this.options.defaultNamespace,n,s,o),u=Ck.NormalizedSchema.of(a),l=s.message??s.Message??"UnknownError",d=this.compositeErrorRegistry.getErrorCtor(a)??Error,p=new d(l);await this.deserializeHttpMessage(a,r,n,s);let g={},y=this.codec.createDeserializer();for(let[R,D]of u.structIterator()){let B=D.getMergedTraits().jsonName??R;g[R]=y.readObject(D,s[B])}throw this.mixin.decorateServiceException(Object.assign(p,c,{$fault:u.getMergedTraits().error,message:l},g),s)}getDefaultContentType(){return"application/json"}}});var GTe,kTt,jTe=_(()=>{GTe=require("@smithy/smithy-client"),kTt=t=>{if(t!=null)return typeof t=="object"&&"__type"in t&&delete t.__type,(0,GTe.expectUnion)(t)}});var HTe=b(Ki=>{"use strict";Object.defineProperty(Ki,"__esModule",{value:!0});Ki.EntityDecoderImpl=Ki.CURRENCY=Ki.COMMON_HTML=Ki.XML=void 0;Ki.XML={amp:"&",apos:"'",gt:">",lt:"<",quot:'"'};Ki.COMMON_HTML={nbsp:"\xA0",copy:"\xA9",reg:"\xAE",trade:"\u2122",mdash:"\u2014",ndash:"\u2013",hellip:"\u2026",laquo:"\xAB",raquo:"\xBB",lsquo:"\u2018",rsquo:"\u2019",ldquo:"\u201C",rdquo:"\u201D",bull:"\u2022",para:"\xB6",sect:"\xA7",deg:"\xB0",frac12:"\xBD",frac14:"\xBC",frac34:"\xBE"};Ki.CURRENCY={cent:"\xA2",pound:"\xA3",curren:"\xA4",yen:"\xA5",euro:"\u20AC",dollar:"$",fnof:"\u0192",inr:"\u20B9",af:"\u060B",birr:"\u1265\u122D",peso:"\u20B1",rub:"\u20BD",won:"\u20A9",yuan:"\xA5",cedil:"\xB8"};var NTt=new Set("!?\\/[]$%{}^&*()<>|+");function VTe(t){if(t[0]==="#")throw new Error(`[EntityReplacer] Invalid character '#' in entity name: "${t}"`);for(let e of t)if(NTt.has(e))throw new Error(`[EntityReplacer] Invalid character '${e}' in entity name: "${t}"`);return t}function NK(...t){let e=Object.create(null);for(let r of t)if(r)for(let n of Object.keys(r)){let s=r[n];if(typeof s=="string")e[n]=s;else if(s&&typeof s=="object"&&s.val!==void 0){let o=s.val;typeof o=="string"&&(e[n]=o)}}return e}var Cp="external",Rk="base",LK="all";function LTt(t){return!t||t===Cp?new Set([Cp]):t===LK?new Set([LK]):t===Rk?new Set([Rk]):Array.isArray(t)?new Set(t):new Set([Cp])}var vs=Object.freeze({allow:0,leave:1,remove:2,throw:3}),MTt=new Set([9,10,13]);function FTt(t){if(!t)return{xmlVersion:1,onLevel:vs.allow,nullLevel:vs.remove};let e=t.xmlVersion===1.1?1.1:1,r=vs[t.onNCR??"allow"]??vs.allow,n=vs[t.nullNCR??"remove"]??vs.remove,s=Math.max(n,vs.remove);return{xmlVersion:e,onLevel:r,nullLevel:s}}var BTt=class{_limit;_maxTotalExpansions;_maxExpandedLength;_postCheck;_limitTiers;_numericAllowed;_baseMap;_externalMap;_inputMap;_totalExpansions;_expandedLength;_removeSet;_leaveSet;_ncrXmlVersion;_ncrOnLevel;_ncrNullLevel;constructor(e={}){this._limit=e.limit||{},this._maxTotalExpansions=this._limit.maxTotalExpansions||0,this._maxExpandedLength=this._limit.maxExpandedLength||0,this._postCheck=typeof e.postCheck=="function"?e.postCheck:n=>n,this._limitTiers=LTt(this._limit.applyLimitsTo??Cp),this._numericAllowed=e.numericAllowed??!0,this._baseMap=NK(Ki.XML,e.namedEntities||null),this._externalMap=Object.create(null),this._inputMap=Object.create(null),this._totalExpansions=0,this._expandedLength=0,this._removeSet=new Set(e.remove&&Array.isArray(e.remove)?e.remove:[]),this._leaveSet=new Set(e.leave&&Array.isArray(e.leave)?e.leave:[]);let r=FTt(e.ncr);this._ncrXmlVersion=r.xmlVersion,this._ncrOnLevel=r.onLevel,this._ncrNullLevel=r.nullLevel}setExternalEntities(e){if(e)for(let r of Object.keys(e))VTe(r);this._externalMap=NK(e)}addExternalEntity(e,r){VTe(e),typeof r=="string"&&r.indexOf("&")===-1&&(this._externalMap[e]=r)}addInputEntities(e){this._totalExpansions=0,this._expandedLength=0,this._inputMap=NK(e)}reset(){return this._inputMap=Object.create(null),this._totalExpansions=0,this._expandedLength=0,this}setXmlVersion(e){this._ncrXmlVersion=e==="1.1"||e===1.1?1.1:1}decode(e){if(typeof e!="string"||e.length===0)return e;let r=e,n=[],s=e.length,o=0,i=0,a=this._maxTotalExpansions>0,c=this._maxExpandedLength>0,u=a||c;for(;i=s||e.charCodeAt(d)!==59){i++;continue}let p=e.slice(i+1,d);if(p.length===0){i++;continue}let g,y;if(this._removeSet.has(p))g="",y===void 0&&(y=Cp);else if(this._leaveSet.has(p)){i++;continue}else if(p.charCodeAt(0)===35){let R=this._resolveNCR(p);if(R===void 0){i++;continue}g=R,y=Rk}else{let R=this._resolveName(p);g=R?.value,y=R?.tier}if(g===void 0){i++;continue}if(i>o&&n.push(e.slice(o,i)),n.push(g),o=d+1,i=o,u&&this._tierCounts(y)){if(a&&(this._totalExpansions++,this._totalExpansions>this._maxTotalExpansions))throw new Error(`[EntityReplacer] Entity expansion count limit exceeded: ${this._totalExpansions} > ${this._maxTotalExpansions}`);if(c){let R=g.length-(p.length+2);if(R>0&&(this._expandedLength+=R,this._expandedLength>this._maxExpandedLength))throw new Error(`[EntityReplacer] Expanded content length limit exceeded: ${this._expandedLength} > ${this._maxExpandedLength}`)}}}o=55296&&e<=57343||this._ncrXmlVersion===1&&e>=1&&e<=31&&!MTt.has(e)?vs.remove:-1}_applyNCRAction(e,r,n){switch(e){case vs.allow:return String.fromCodePoint(n);case vs.remove:return"";case vs.leave:return;case vs.throw:throw new Error(`[EntityDecoder] Prohibited numeric character reference &${r}; (U+${n.toString(16).toUpperCase().padStart(4,"0")})`);default:return String.fromCodePoint(n)}}_resolveNCR(e){let r=e.charCodeAt(1),n;if(r===120||r===88?n=parseInt(e.slice(2),16):n=parseInt(e.slice(1),10),Number.isNaN(n)||n<0||n>1114111)return;let s=this._classifyNCR(n);if(!this._numericAllowed&&s{"use strict";Object.defineProperty(MK,"__esModule",{value:!0});MK.parseXML=$Tt;var UTt=require("fast-xml-parser"),vk=HTe(),xk=new vk.EntityDecoderImpl({namedEntities:{...vk.XML,...vk.COMMON_HTML,...vk.CURRENCY},numericAllowed:!0,limit:{maxTotalExpansions:1/0},ncr:{xmlVersion:1.1}}),qTt=new UTt.XMLParser({attributeNamePrefix:"",processEntities:{enabled:!0,maxTotalExpansions:1/0},htmlEntities:!0,entityDecoder:{setExternalEntities:t=>{xk.setExternalEntities(t)},addInputEntities:t=>{xk.addInputEntities(t)},reset:()=>{xk.reset()},decode:t=>xk.decode(t),setXmlVersion:t=>{}},ignoreAttributes:!1,ignoreDeclaration:!0,parseTagValue:!1,trimValues:!1,tagValueProcessor:(t,e)=>e.trim()===""&&e.includes(` +`)?"":void 0,maxNestedTags:1/0});function $Tt(t){return qTt.parse(t,!0)}});var Ik=b(bk=>{"use strict";var GTt=zTe(),jTt=/[&<>"]/g,VTt={"&":"&","<":"<",">":">",'"':"""};function HTt(t){return t.replace(jTt,e=>VTt[e])}var zTt=/[&"'<>\r\n\u0085\u2028]/g,WTt={"&":"&",'"':""","'":"'","<":"<",">":">","\r":" ","\n":" ","\x85":"…","\u2028":"
"};function KTt(t){return t.replace(zTt,e=>WTt[e])}var Pk=class{value;constructor(e){this.value=e}toString(){return KTt(""+this.value)}},FK=class t{name;children;attributes={};static of(e,r,n){let s=new t(e);return r!==void 0&&s.addChildNode(new Pk(r)),n!==void 0&&s.withName(n),s}constructor(e,r=[]){this.name=e,this.children=r}withName(e){return this.name=e,this}addAttribute(e,r){return this.attributes[e]=r,this}addChildNode(e){return this.children.push(e),this}removeAttribute(e){return delete this.attributes[e],this}n(e){return this.name=e,this}c(e){return this.children.push(e),this}a(e,r){return r!=null&&(this.attributes[e]=r),this}cc(e,r,n=r){if(e[r]!=null){let s=t.of(r,e[r]).withName(n);this.c(s)}}l(e,r,n,s){e[r]!=null&&s().map(i=>{i.withName(n),this.c(i)})}lc(e,r,n,s){if(e[r]!=null){let o=s(),i=new t(n);o.map(a=>{i.c(a)}),this.c(i)}}toString(){let e=!!this.children.length,r=`<${this.name}`,n=this.attributes;for(let s of Object.keys(n)){let o=n[s];o!=null&&(r+=` ${s}="${HTt(""+o)}"`)}return r+=e?`>${this.children.map(s=>s.toString()).join("")}`:"/>"}};bk.parseXML=GTt.parseXML;bk.XmlNode=FK;bk.XmlText=Pk});var WTe,KTe,BK,QTe,XTe,Rp,Ak=_(()=>{WTe=O(Ik()),KTe=require("@smithy/core/protocols"),BK=require("@smithy/core/schema"),QTe=require("@smithy/smithy-client"),XTe=require("@smithy/util-utf8");Ll();bK();Rp=class extends Bn{settings;stringDeserializer;constructor(e){super(),this.settings=e,this.stringDeserializer=new KTe.FromStringShapeDeserializer(e)}setSerdeContext(e){this.serdeContext=e,this.stringDeserializer.setSerdeContext(e)}read(e,r,n){let s=BK.NormalizedSchema.of(e),o=s.getMemberSchemas();if(s.isStructSchema()&&s.isMemberSchema()&&!!Object.values(o).find(u=>!!u.getMemberTraits().eventPayload)){let u={},l=Object.keys(o)[0];return o[l].isBlobSchema()?u[l]=r:u[l]=this.read(o[l],r),u}let a=(this.serdeContext?.utf8Encoder??XTe.toUtf8)(r),c=this.parseXml(a);return this.readSchema(e,n?c[n]:c)}readSchema(e,r){let n=BK.NormalizedSchema.of(e);if(n.isUnitSchema())return;let s=n.getMergedTraits();if(n.isListSchema()&&!Array.isArray(r))return this.readSchema(n,[r]);if(r==null)return r;if(typeof r=="object"){let o=!!s.xmlFlattened;if(n.isListSchema()){let a=n.getValueSchema(),c=[],u=a.getMergedTraits().xmlName??"member",l=o?r:(r[0]??r)[u];if(l==null)return c;let d=Array.isArray(l)?l:[l];for(let p of d)c.push(this.readSchema(a,p));return c}let i={};if(n.isMapSchema()){let a=n.getKeySchema(),c=n.getValueSchema(),u;o?u=Array.isArray(r)?r:[r]:u=Array.isArray(r.entry)?r.entry:[r.entry];let l=a.getMergedTraits().xmlName??"key",d=c.getMergedTraits().xmlName??"value";for(let p of u){let g=p[l],y=p[d];i[g]=this.readSchema(c,y)}return i}if(n.isStructSchema()){let a=n.isUnionSchema(),c;a&&(c=new Hf(r,i));for(let[u,l]of n.structIterator()){let d=l.getMergedTraits(),p=d.httpPayload?d.xmlName??l.getName():l.getMemberTraits().xmlName??u;a&&c.mark(p),r[p]!=null&&(i[u]=this.readSchema(l,r[p]))}return a&&c.writeUnknown(),i}if(n.isDocumentSchema())return r;throw new Error(`@aws-sdk/core/protocols - xml deserializer unhandled schema type for ${n.getName(!0)}`)}return n.isListSchema()?[]:n.isMapSchema()||n.isStructSchema()?{}:this.stringDeserializer.read(n,r)}parseXml(e){if(e.length){let r;try{r=(0,WTe.parseXML)(e)}catch(i){throw i&&typeof i=="object"&&Object.defineProperty(i,"$responseBodyText",{value:e}),i}let n="#text",s=Object.keys(r)[0],o=r[s];return o[n]&&(o[s]=o[n],delete o[n]),(0,QTe.getValueFromTextNode)(o)}return{}}}});var TC,JTe,Tk,YTe,ZTe,wC,UK=_(()=>{TC=require("@smithy/core/protocols"),JTe=require("@smithy/core/schema"),Tk=require("@smithy/core/serde"),YTe=require("@smithy/smithy-client"),ZTe=require("@smithy/util-base64");Ll();wC=class extends Bn{settings;buffer;constructor(e){super(),this.settings=e}write(e,r,n=""){this.buffer===void 0&&(this.buffer="");let s=JTe.NormalizedSchema.of(e);if(n&&!n.endsWith(".")&&(n+="."),s.isBlobSchema())(typeof r=="string"||r instanceof Uint8Array)&&(this.writeKey(n),this.writeValue((this.serdeContext?.base64Encoder??ZTe.toBase64)(r)));else if(s.isBooleanSchema()||s.isNumericSchema()||s.isStringSchema())r!=null?(this.writeKey(n),this.writeValue(String(r))):s.isIdempotencyToken()&&(this.writeKey(n),this.writeValue((0,Tk.generateIdempotencyToken)()));else if(s.isBigIntegerSchema())r!=null&&(this.writeKey(n),this.writeValue(String(r)));else if(s.isBigDecimalSchema())r!=null&&(this.writeKey(n),this.writeValue(r instanceof Tk.NumericValue?r.string:String(r)));else if(s.isTimestampSchema()){if(r instanceof Date)switch(this.writeKey(n),(0,TC.determineTimestampFormat)(s,this.settings)){case 5:this.writeValue(r.toISOString().replace(".000Z","Z"));break;case 6:this.writeValue((0,YTe.dateToUtcString)(r));break;case 7:this.writeValue(String(r.getTime()/1e3));break}}else if(s.isDocumentSchema())Array.isArray(r)?this.write(79,r,n):r instanceof Date?this.write(4,r,n):r instanceof Uint8Array?this.write(21,r,n):r&&typeof r=="object"?this.write(143,r,n):(this.writeKey(n),this.writeValue(String(r)));else if(s.isListSchema()){if(Array.isArray(r))if(r.length===0)this.settings.serializeEmptyLists&&(this.writeKey(n),this.writeValue(""));else{let o=s.getValueSchema(),i=this.settings.flattenLists||s.getMergedTraits().xmlFlattened,a=1;for(let c of r){if(c==null)continue;let u=o.getMergedTraits(),l=this.getKey("member",u.xmlName,u.ec2QueryName),d=i?`${n}${a}`:`${n}${l}.${a}`;this.write(o,c,d),++a}}}else if(s.isMapSchema()){if(r&&typeof r=="object"){let o=s.getKeySchema(),i=s.getValueSchema(),a=s.getMergedTraits().xmlFlattened,c=1;for(let u in r){let l=r[u];if(l==null)continue;let d=o.getMergedTraits(),p=this.getKey("key",d.xmlName,d.ec2QueryName),g=a?`${n}${c}.${p}`:`${n}entry.${c}.${p}`,y=i.getMergedTraits(),R=this.getKey("value",y.xmlName,y.ec2QueryName),D=a?`${n}${c}.${R}`:`${n}entry.${c}.${R}`;this.write(o,u,g),this.write(i,l,D),++c}}}else if(s.isStructSchema()){if(r&&typeof r=="object"){let o=!1;for(let[i,a]of s.structIterator()){if(r[i]==null&&!a.isIdempotencyToken())continue;let c=a.getMergedTraits(),u=this.getKey(i,c.xmlName,c.ec2QueryName,"struct"),l=`${n}${u}`;this.write(a,r[i],l),o=!0}if(!o&&s.isUnionSchema()){let{$unknown:i}=r;if(Array.isArray(i)){let[a,c]=i,u=`${n}${a}`;this.write(15,c,u)}}}}else if(!s.isUnitSchema())throw new Error(`@aws-sdk/core/protocols - QuerySerializer unrecognized schema type ${s.getName(!0)}`)}flush(){if(this.buffer===void 0)throw new Error("@aws-sdk/core/protocols - QuerySerializer cannot flush with nothing written to buffer.");let e=this.buffer;return delete this.buffer,e}getKey(e,r,n,s){let{ec2:o,capitalizeKeys:i}=this.settings;if(o&&n)return n;let a=r??e;return i&&s==="struct"?a[0].toUpperCase()+a.slice(1):a}writeKey(e){e.endsWith(".")&&(e=e.slice(0,e.length-1)),this.buffer+=`&${(0,TC.extendedEncodeURIComponent)(e)}=`}writeValue(e){this.buffer+=(0,TC.extendedEncodeURIComponent)(e)}}});var DC,OC,vp,qK=_(()=>{DC=require("@smithy/core/protocols"),OC=require("@smithy/core/schema");Vf();Ak();UK();vp=class extends DC.RpcProtocol{options;serializer;deserializer;mixin=new Xo;constructor(e){super({defaultNamespace:e.defaultNamespace,errorTypeRegistries:e.errorTypeRegistries}),this.options=e;let r={timestampFormat:{useTrait:!0,default:5},httpBindings:!1,xmlNamespace:e.xmlNamespace,serviceNamespace:e.defaultNamespace,serializeEmptyLists:!0};this.serializer=new wC(r),this.deserializer=new Rp(r)}getShapeId(){return"aws.protocols#awsQuery"}setSerdeContext(e){this.serializer.setSerdeContext(e),this.deserializer.setSerdeContext(e)}getPayloadCodec(){throw new Error("AWSQuery protocol has no payload codec.")}async serializeRequest(e,r,n){let s=await super.serializeRequest(e,r,n);s.path.endsWith("/")||(s.path+="/"),s.headers["content-type"]="application/x-www-form-urlencoded",((0,OC.deref)(e.input)==="unit"||!s.body)&&(s.body="");let o=e.name.split("#")[1]??e.name;return s.body=`Action=${o}&Version=${this.options.version}`+s.body,s.body.endsWith("&")&&(s.body=s.body.slice(-1)),s}async deserializeResponse(e,r,n){let s=this.deserializer,o=OC.NormalizedSchema.of(e.output),i={};if(n.statusCode>=300){let l=await(0,DC.collectBody)(n.body,r);l.byteLength>0&&Object.assign(i,await s.read(15,l)),await this.handleError(e,r,n,i,this.deserializeMetadata(n))}for(let l in n.headers){let d=n.headers[l];delete n.headers[l],n.headers[l.toLowerCase()]=d}let a=e.name.split("#")[1]??e.name,c=o.isStructSchema()&&this.useNestedResult()?a+"Result":void 0,u=await(0,DC.collectBody)(n.body,r);return u.byteLength>0&&Object.assign(i,await s.read(o,u,c)),i.$metadata=this.deserializeMetadata(n),i}useNestedResult(){return!0}async handleError(e,r,n,s,o){let i=this.loadQueryErrorCode(n,s)??"Unknown";this.mixin.compose(this.compositeErrorRegistry,i,this.options.defaultNamespace);let a=this.loadQueryError(s)??{},c=this.loadQueryErrorMessage(s);a.message=c,a.Error={Type:a.Type,Code:a.Code,Message:c};let{errorSchema:u,errorMetadata:l}=await this.mixin.getErrorSchemaOrThrowBaseException(i,this.options.defaultNamespace,n,a,o,this.mixin.findQueryCompatibleError),d=OC.NormalizedSchema.of(u),p=this.compositeErrorRegistry.getErrorCtor(u)??Error,g=new p(c),y={Type:a.Error.Type,Code:a.Error.Code,Error:a.Error};for(let[R,D]of d.structIterator()){let B=D.getMergedTraits().xmlName??R,M=a[B]??s[B];y[R]=this.deserializer.readSchema(D,M)}throw this.mixin.decorateServiceException(Object.assign(g,l,{$fault:d.getMergedTraits().error,message:c},y),s)}loadQueryErrorCode(e,r){let n=(r.Errors?.[0]?.Error??r.Errors?.Error??r.Error)?.Code;if(n!==void 0)return n;if(e.statusCode==404)return"NotFound"}loadQueryError(e){return e.Errors?.[0]?.Error??e.Errors?.Error??e.Error}loadQueryErrorMessage(e){let r=this.loadQueryError(e);return r?.message??r?.Message??e.message??e.Message??"Unknown"}getDefaultContentType(){return"application/x-www-form-urlencoded"}}});var $K,ewe=_(()=>{qK();$K=class extends vp{options;constructor(e){super(e),this.options=e;let r={capitalizeKeys:!0,flattenLists:!0,serializeEmptyLists:!1,ec2:!0};Object.assign(this.serializer.settings,r)}getShapeId(){return"aws.protocols#ec2Query"}useNestedResult(){return!1}}});var twe=_(()=>{});var rwe,nwe,swe,QTt,GK,jK=_(()=>{rwe=O(Ik()),nwe=require("@smithy/smithy-client");IK();swe=(t,e)=>gk(t,e).then(r=>{if(r.length){let n;try{n=(0,rwe.parseXML)(r)}catch(a){throw a&&typeof a=="object"&&Object.defineProperty(a,"$responseBodyText",{value:r}),a}let s="#text",o=Object.keys(n)[0],i=n[o];return i[s]&&(i[o]=i[s],delete i[s]),(0,nwe.getValueFromTextNode)(i)}return{}}),QTt=async(t,e)=>{let r=await swe(t,e);return r.Error&&(r.Error.message=r.Error.message??r.Error.Message),r},GK=(t,e)=>{if(e?.Error?.Code!==void 0)return e.Error.Code;if(e?.Code!==void 0)return e.Code;if(t.statusCode==404)return"NotFound"}});var es,owe,wk,Dk,VK,Ok,kC,HK=_(()=>{es=O(Ik()),owe=require("@smithy/core/protocols"),wk=require("@smithy/core/schema"),Dk=require("@smithy/core/serde"),VK=require("@smithy/smithy-client"),Ok=require("@smithy/util-base64");Ll();kC=class extends Bn{settings;stringBuffer;byteBuffer;buffer;constructor(e){super(),this.settings=e}write(e,r){let n=wk.NormalizedSchema.of(e);if(n.isStringSchema()&&typeof r=="string")this.stringBuffer=r;else if(n.isBlobSchema())this.byteBuffer="byteLength"in r?r:(this.serdeContext?.base64Decoder??Ok.fromBase64)(r);else{this.buffer=this.writeStruct(n,r,void 0);let s=n.getMergedTraits();s.httpPayload&&!s.xmlName&&this.buffer.withName(n.getName())}}flush(){if(this.byteBuffer!==void 0){let r=this.byteBuffer;return delete this.byteBuffer,r}if(this.stringBuffer!==void 0){let r=this.stringBuffer;return delete this.stringBuffer,r}let e=this.buffer;return this.settings.xmlNamespace&&(e?.attributes?.xmlns||e.addAttribute("xmlns",this.settings.xmlNamespace)),delete this.buffer,e.toString()}writeStruct(e,r,n){let s=e.getMergedTraits(),o=e.isMemberSchema()&&!s.httpPayload?e.getMemberTraits().xmlName??e.getMemberName():s.xmlName??e.getName();if(!o||!e.isStructSchema())throw new Error(`@aws-sdk/core/protocols - xml serializer, cannot write struct with empty name or non-struct, schema=${e.getName(!0)}.`);let i=es.XmlNode.of(o),[a,c]=this.getXmlnsAttribute(e,n);for(let[l,d]of e.structIterator()){let p=r[l];if(p!=null||d.isIdempotencyToken()){if(d.getMergedTraits().xmlAttribute){i.addAttribute(d.getMergedTraits().xmlName??l,this.writeSimple(d,p));continue}if(d.isListSchema())this.writeList(d,p,i,c);else if(d.isMapSchema())this.writeMap(d,p,i,c);else if(d.isStructSchema())i.addChildNode(this.writeStruct(d,p,c));else{let g=es.XmlNode.of(d.getMergedTraits().xmlName??d.getMemberName());this.writeSimpleInto(d,p,g,c),i.addChildNode(g)}}}let{$unknown:u}=r;if(u&&e.isUnionSchema()&&Array.isArray(u)&&Object.keys(r).length===1){let[l,d]=u,p=es.XmlNode.of(l);if(typeof d!="string")if(r instanceof es.XmlNode||r instanceof es.XmlText)i.addChildNode(r);else throw new Error("@aws-sdk - $unknown union member in XML requires value of type string, @aws-sdk/xml-builder::XmlNode or XmlText.");this.writeSimpleInto(0,d,p,c),i.addChildNode(p)}return c&&i.addAttribute(a,c),i}writeList(e,r,n,s){if(!e.isMemberSchema())throw new Error(`@aws-sdk/core/protocols - xml serializer, cannot write non-member list: ${e.getName(!0)}`);let o=e.getMergedTraits(),i=e.getValueSchema(),a=i.getMergedTraits(),c=!!a.sparse,u=!!o.xmlFlattened,[l,d]=this.getXmlnsAttribute(e,s),p=(g,y)=>{if(i.isListSchema())this.writeList(i,Array.isArray(y)?y:[y],g,d);else if(i.isMapSchema())this.writeMap(i,y,g,d);else if(i.isStructSchema()){let R=this.writeStruct(i,y,d);g.addChildNode(R.withName(u?o.xmlName??e.getMemberName():a.xmlName??"member"))}else{let R=es.XmlNode.of(u?o.xmlName??e.getMemberName():a.xmlName??"member");this.writeSimpleInto(i,y,R,d),g.addChildNode(R)}};if(u)for(let g of r)(c||g!=null)&&p(n,g);else{let g=es.XmlNode.of(o.xmlName??e.getMemberName());d&&g.addAttribute(l,d);for(let y of r)(c||y!=null)&&p(g,y);n.addChildNode(g)}}writeMap(e,r,n,s,o=!1){if(!e.isMemberSchema())throw new Error(`@aws-sdk/core/protocols - xml serializer, cannot write non-member map: ${e.getName(!0)}`);let i=e.getMergedTraits(),a=e.getKeySchema(),u=a.getMergedTraits().xmlName??"key",l=e.getValueSchema(),d=l.getMergedTraits(),p=d.xmlName??"value",g=!!d.sparse,y=!!i.xmlFlattened,[R,D]=this.getXmlnsAttribute(e,s),B=(M,ge,Y)=>{let Te=es.XmlNode.of(u,ge),[Ht,Tt]=this.getXmlnsAttribute(a,D);Tt&&Te.addAttribute(Ht,Tt),M.addChildNode(Te);let Ne=es.XmlNode.of(p);l.isListSchema()?this.writeList(l,Y,Ne,D):l.isMapSchema()?this.writeMap(l,Y,Ne,D,!0):l.isStructSchema()?Ne=this.writeStruct(l,Y,D):this.writeSimpleInto(l,Y,Ne,D),M.addChildNode(Ne)};if(y)for(let M in r){let ge=r[M];if(g||ge!=null){let Y=es.XmlNode.of(i.xmlName??e.getMemberName());B(Y,M,ge),n.addChildNode(Y)}}else{let M;o||(M=es.XmlNode.of(i.xmlName??e.getMemberName()),D&&M.addAttribute(R,D),n.addChildNode(M));for(let ge in r){let Y=r[ge];if(g||Y!=null){let Te=es.XmlNode.of("entry");B(Te,ge,Y),(o?n:M).addChildNode(Te)}}}}writeSimple(e,r){if(r===null)throw new Error("@aws-sdk/core/protocols - (XML serializer) cannot write null value.");let n=wk.NormalizedSchema.of(e),s=null;if(r&&typeof r=="object")if(n.isBlobSchema())s=(this.serdeContext?.base64Encoder??Ok.toBase64)(r);else if(n.isTimestampSchema()&&r instanceof Date)switch((0,owe.determineTimestampFormat)(n,this.settings)){case 5:s=r.toISOString().replace(".000Z","Z");break;case 6:s=(0,VK.dateToUtcString)(r);break;case 7:s=String(r.getTime()/1e3);break;default:console.warn("Missing timestamp format, using http date",r),s=(0,VK.dateToUtcString)(r);break}else{if(n.isBigDecimalSchema()&&r)return r instanceof Dk.NumericValue?r.string:String(r);throw n.isMapSchema()||n.isListSchema()?new Error("@aws-sdk/core/protocols - xml serializer, cannot call _write() on List/Map schema, call writeList or writeMap() instead."):new Error(`@aws-sdk/core/protocols - xml serializer, unhandled schema type for object value and schema: ${n.getName(!0)}`)}if((n.isBooleanSchema()||n.isNumericSchema()||n.isBigIntegerSchema()||n.isBigDecimalSchema())&&(s=String(r)),n.isStringSchema()&&(r===void 0&&n.isIdempotencyToken()?s=(0,Dk.generateIdempotencyToken)():s=String(r)),s===null)throw new Error(`Unhandled schema-value pair ${n.getName(!0)}=${r}`);return s}writeSimpleInto(e,r,n,s){let o=this.writeSimple(e,r),i=wk.NormalizedSchema.of(e),a=new es.XmlText(o),[c,u]=this.getXmlnsAttribute(i,s);u&&n.addAttribute(c,u),n.addChildNode(a)}getXmlnsAttribute(e,r){let n=e.getMergedTraits(),[s,o]=n.xmlNamespace??[];return o&&o!==r?[s?`xmlns:${s}`:"xmlns",o]:[void 0,void 0]}}});var NC,zK=_(()=>{Ll();Ak();HK();NC=class extends Bn{settings;constructor(e){super(),this.settings=e}createSerializer(){let e=new kC(this.settings);return e.setSerdeContext(this.serdeContext),e}createDeserializer(){let e=new Rp(this.settings);return e.setSerdeContext(this.serdeContext),e}}});var Wf,WK,KK,iwe=_(()=>{Wf=require("@smithy/core/protocols"),WK=require("@smithy/core/schema");Vf();jK();zK();KK=class extends Wf.HttpBindingProtocol{codec;serializer;deserializer;mixin=new Xo;constructor(e){super(e);let r={timestampFormat:{useTrait:!0,default:5},httpBindings:!0,xmlNamespace:e.xmlNamespace,serviceNamespace:e.defaultNamespace};this.codec=new NC(r),this.serializer=new Wf.HttpInterceptingShapeSerializer(this.codec.createSerializer(),r),this.deserializer=new Wf.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(),r)}getPayloadCodec(){return this.codec}getShapeId(){return"aws.protocols#restXml"}async serializeRequest(e,r,n){let s=await super.serializeRequest(e,r,n),o=WK.NormalizedSchema.of(e.input);if(!s.headers["content-type"]){let i=this.mixin.resolveRestContentType(this.getDefaultContentType(),o);i&&(s.headers["content-type"]=i)}return typeof s.body=="string"&&s.headers["content-type"]===this.getDefaultContentType()&&!s.body.startsWith("'+s.body),s}async deserializeResponse(e,r,n){return super.deserializeResponse(e,r,n)}async handleError(e,r,n,s,o){let i=GK(n,s)??"Unknown";if(this.mixin.compose(this.compositeErrorRegistry,i,this.options.defaultNamespace),s.Error&&typeof s.Error=="object")for(let R of Object.keys(s.Error))s[R]=s.Error[R],R.toLowerCase()==="message"&&(s.message=s.Error[R]);s.RequestId&&!o.requestId&&(o.requestId=s.RequestId);let{errorSchema:a,errorMetadata:c}=await this.mixin.getErrorSchemaOrThrowBaseException(i,this.options.defaultNamespace,n,s,o),u=WK.NormalizedSchema.of(a),l=s.Error?.message??s.Error?.Message??s.message??s.Message??"UnknownError",d=this.compositeErrorRegistry.getErrorCtor(a)??Error,p=new d(l);await this.deserializeHttpMessage(a,r,n,s);let g={},y=this.codec.createDeserializer();for(let[R,D]of u.structIterator()){let B=D.getMergedTraits().xmlName??R,M=s.Error?.[B]??s[B];g[R]=y.readSchema(D,M)}throw this.mixin.decorateServiceException(Object.assign(p,c,{$fault:u.getMergedTraits().error,message:l},g),s)}getDefaultContentType(){return"application/xml"}hasUnstructuredPayloadBinding(e){for(let[,r]of e.structIterator())if(r.getMergedTraits().httpPayload)return!(r.isStructSchema()||r.isMapSchema()||r.isListSchema());return!1}}});var awe={};wt(awe,{AwsEc2QueryProtocol:()=>$K,AwsJson1_0Protocol:()=>OK,AwsJson1_1Protocol:()=>kK,AwsJsonRpcProtocol:()=>_p,AwsQueryProtocol:()=>vp,AwsRestJsonProtocol:()=>Yc,AwsRestXmlProtocol:()=>KK,AwsSmithyRpcV2CborProtocol:()=>PK,JsonCodec:()=>yp,JsonShapeDeserializer:()=>IC,JsonShapeSerializer:()=>AC,QueryShapeSerializer:()=>wC,XmlCodec:()=>NC,XmlShapeDeserializer:()=>Rp,XmlShapeSerializer:()=>kC,_toBool:()=>wTt,_toNum:()=>DTt,_toStr:()=>TTt,awsExpectUnion:()=>kTt,loadRestJsonErrorCode:()=>PC,loadRestXmlErrorCode:()=>GK,parseJsonBody:()=>fk,parseJsonErrorBody:()=>OTt,parseXmlBody:()=>swe,parseXmlErrorBody:()=>QTt});var Kf=_(()=>{vTe();xTe();UTe();qTe();_k();$Te();Ek();TK();DK();jTe();bC();ewe();qK();twe();UK();iwe();zK();Ak();HK();jK()});var pwe,LC,xp,kk,cwe,mwe,Nk,QK,uwe,XK,Qf,lwe,dwe,XTt,xs,JTt,gwe,fwe=_(()=>{pwe=require("@smithy/util-endpoints"),LC="ref",xp=-1,kk=!0,cwe="isSet",mwe="PartitionResult",Nk="booleanEquals",QK="getAttr",uwe={[LC]:"Endpoint"},XK={[LC]:mwe},Qf={},lwe=[{[LC]:"Region"}],dwe={conditions:[[cwe,[uwe]],[cwe,lwe],["aws.partition",lwe,mwe],[Nk,[{[LC]:"UseFIPS"},kk]],[Nk,[{[LC]:"UseDualStack"},kk]],[Nk,[{fn:QK,argv:[XK,"supportsDualStack"]},kk]],[Nk,[{fn:QK,argv:[XK,"supportsFIPS"]},kk]],["stringEquals",[{fn:QK,argv:[XK,"name"]},"aws-us-gov"]]],results:[[xp],[xp,"Invalid Configuration: FIPS and custom endpoint are not supported"],[xp,"Invalid Configuration: Dualstack and custom endpoint are not supported"],[uwe,Qf],["https://oidc-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",Qf],[xp,"FIPS and DualStack are enabled, but this partition does not support one or both"],["https://oidc.{Region}.amazonaws.com",Qf],["https://oidc-fips.{Region}.{PartitionResult#dnsSuffix}",Qf],[xp,"FIPS is enabled but this partition does not support FIPS"],["https://oidc.{Region}.{PartitionResult#dualStackDnsSuffix}",Qf],[xp,"DualStack is enabled but this partition does not support DualStack"],["https://oidc.{Region}.{PartitionResult#dnsSuffix}",Qf],[xp,"Invalid Configuration: Missing Region"]]},XTt=2,xs=1e8,JTt=new Int32Array([-1,1,-1,0,13,3,1,4,xs+12,2,5,xs+12,3,8,6,4,7,xs+11,5,xs+9,xs+10,4,11,9,6,10,xs+8,7,xs+6,xs+7,5,12,xs+5,6,xs+4,xs+5,3,xs+1,14,4,xs+2,xs+3]),gwe=pwe.BinaryDecisionDiagram.from(JTt,XTt,dwe.conditions,dwe.results)});var hwe,Xf,YTt,Swe,Ewe=_(()=>{hwe=O(Uf()),Xf=require("@smithy/util-endpoints");fwe();YTt=new Xf.EndpointCache({size:50,params:["Endpoint","Region","UseDualStack","UseFIPS"]}),Swe=(t,e={})=>YTt.get(t,()=>(0,Xf.decideEndpoint)(gwe,{endpointParams:t,logger:e.logger}));Xf.customEndpointFunctions.aws=hwe.awsEndpointFunctions});var ywe,Xr,Lk=_(()=>{ywe=require("@smithy/smithy-client"),Xr=class t extends ywe.ServiceException{constructor(e){super(e),Object.setPrototypeOf(this,t.prototype)}}});var MC,FC,BC,UC,qC,$C,GC,jC,VC,HC,zC,JK=_(()=>{Lk();MC=class t extends Xr{name="AccessDeniedException";$fault="client";error;reason;error_description;constructor(e){super({name:"AccessDeniedException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error,this.reason=e.reason,this.error_description=e.error_description}},FC=class t extends Xr{name="AuthorizationPendingException";$fault="client";error;error_description;constructor(e){super({name:"AuthorizationPendingException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error,this.error_description=e.error_description}},BC=class t extends Xr{name="ExpiredTokenException";$fault="client";error;error_description;constructor(e){super({name:"ExpiredTokenException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error,this.error_description=e.error_description}},UC=class t extends Xr{name="InternalServerException";$fault="server";error;error_description;constructor(e){super({name:"InternalServerException",$fault:"server",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error,this.error_description=e.error_description}},qC=class t extends Xr{name="InvalidClientException";$fault="client";error;error_description;constructor(e){super({name:"InvalidClientException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error,this.error_description=e.error_description}},$C=class t extends Xr{name="InvalidGrantException";$fault="client";error;error_description;constructor(e){super({name:"InvalidGrantException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error,this.error_description=e.error_description}},GC=class t extends Xr{name="InvalidRequestException";$fault="client";error;reason;error_description;constructor(e){super({name:"InvalidRequestException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error,this.reason=e.reason,this.error_description=e.error_description}},jC=class t extends Xr{name="InvalidScopeException";$fault="client";error;error_description;constructor(e){super({name:"InvalidScopeException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error,this.error_description=e.error_description}},VC=class t extends Xr{name="SlowDownException";$fault="client";error;error_description;constructor(e){super({name:"SlowDownException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error,this.error_description=e.error_description}},HC=class t extends Xr{name="UnauthorizedClientException";$fault="client";error;error_description;constructor(e){super({name:"UnauthorizedClientException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error,this.error_description=e.error_description}},zC=class t extends Xr{name="UnsupportedGrantTypeException";$fault="client";error;error_description;constructor(e){super({name:"UnsupportedGrantTypeException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error,this.error_description=e.error_description}}});var YK,ZTt,ewt,twt,rwt,nwt,swt,owt,iwt,awt,cwt,uwt,lwt,dwt,pwt,mwt,gwt,fwt,hwt,Swt,Ewt,Va,ywt,_wt,Cwt,Rwt,vwt,mr,xwt,Qi,Pwt,bwt,Xi,Iwt,_we,Cwe,Awt,Rwe,Twt,wwt,Dwt,Tr,vwe,xwe,Jo,Pwe,bwe,Iwe,Awe,Twe,wwe,Dwe,Owe,kwe,Nwe,Lwe,ZK,Owt,kwt,Nwt,Lwt,Mwe,Fwe,Bwe,e6,Mk=_(()=>{YK=require("@smithy/core/schema");JK();Lk();ZTt="AccessDeniedException",ewt="AuthorizationPendingException",twt="AccessToken",rwt="ClientSecret",nwt="CreateToken",swt="CreateTokenRequest",owt="CreateTokenResponse",iwt="CodeVerifier",awt="ExpiredTokenException",cwt="InvalidClientException",uwt="InvalidGrantException",lwt="InvalidRequestException",dwt="InternalServerException",pwt="InvalidScopeException",mwt="IdToken",gwt="RefreshToken",fwt="SlowDownException",hwt="UnauthorizedClientException",Swt="UnsupportedGrantTypeException",Ewt="accessToken",Va="client",ywt="clientId",_wt="clientSecret",Cwt="codeVerifier",Rwt="code",vwt="deviceCode",mr="error",xwt="expiresIn",Qi="error_description",Pwt="grantType",bwt="http",Xi="httpError",Iwt="idToken",_we="reason",Cwe="refreshToken",Awt="redirectUri",Rwe="smithy.ts.sdk.synthetic.com.amazonaws.ssooidc",Twt="scope",wwt="server",Dwt="tokenType",Tr="com.amazonaws.ssooidc",vwe=YK.TypeRegistry.for(Rwe),xwe=[-3,Rwe,"SSOOIDCServiceException",0,[],[]];vwe.registerError(xwe,Xr);Jo=YK.TypeRegistry.for(Tr),Pwe=[-3,Tr,ZTt,{[mr]:Va,[Xi]:400},[mr,_we,Qi],[0,0,0]];Jo.registerError(Pwe,MC);bwe=[-3,Tr,ewt,{[mr]:Va,[Xi]:400},[mr,Qi],[0,0]];Jo.registerError(bwe,FC);Iwe=[-3,Tr,awt,{[mr]:Va,[Xi]:400},[mr,Qi],[0,0]];Jo.registerError(Iwe,BC);Awe=[-3,Tr,dwt,{[mr]:wwt,[Xi]:500},[mr,Qi],[0,0]];Jo.registerError(Awe,UC);Twe=[-3,Tr,cwt,{[mr]:Va,[Xi]:401},[mr,Qi],[0,0]];Jo.registerError(Twe,qC);wwe=[-3,Tr,uwt,{[mr]:Va,[Xi]:400},[mr,Qi],[0,0]];Jo.registerError(wwe,$C);Dwe=[-3,Tr,lwt,{[mr]:Va,[Xi]:400},[mr,_we,Qi],[0,0,0]];Jo.registerError(Dwe,GC);Owe=[-3,Tr,pwt,{[mr]:Va,[Xi]:400},[mr,Qi],[0,0]];Jo.registerError(Owe,jC);kwe=[-3,Tr,fwt,{[mr]:Va,[Xi]:400},[mr,Qi],[0,0]];Jo.registerError(kwe,VC);Nwe=[-3,Tr,hwt,{[mr]:Va,[Xi]:400},[mr,Qi],[0,0]];Jo.registerError(Nwe,HC);Lwe=[-3,Tr,Swt,{[mr]:Va,[Xi]:400},[mr,Qi],[0,0]];Jo.registerError(Lwe,zC);ZK=[vwe,Jo],Owt=[0,Tr,twt,8,0],kwt=[0,Tr,rwt,8,0],Nwt=[0,Tr,iwt,8,0],Lwt=[0,Tr,mwt,8,0],Mwe=[0,Tr,gwt,8,0],Fwe=[3,Tr,swt,0,[ywt,_wt,Pwt,vwt,Rwt,Cwe,Twt,Awt,Cwt],[0,[()=>kwt,0],0,0,0,[()=>Mwe,0],64,0,[()=>Nwt,0]],3],Bwe=[3,Tr,owt,0,[Ewt,Dwt,xwt,Cwe,Iwt],[[()=>Owt,0],0,1,[()=>Mwe,0],[()=>Lwt,0]]],e6=[9,Tr,nwt,{[bwt]:["POST","/token",200]},()=>Fwe,()=>Bwe]});var Uwe,qwe,$we,Fk,Bk,Gwe,jwe=_(()=>{io();Kf();Uwe=require("@smithy/core"),qwe=require("@smithy/smithy-client"),$we=require("@smithy/url-parser"),Fk=require("@smithy/util-base64"),Bk=require("@smithy/util-utf8");RK();Ewe();Mk();Gwe=t=>({apiVersion:"2019-06-10",base64Decoder:t?.base64Decoder??Fk.fromBase64,base64Encoder:t?.base64Encoder??Fk.toBase64,disableHostPrefix:t?.disableHostPrefix??!1,endpointProvider:t?.endpointProvider??Swe,extensions:t?.extensions??[],httpAuthSchemeProvider:t?.httpAuthSchemeProvider??lTe,httpAuthSchemes:t?.httpAuthSchemes??[{schemeId:"aws.auth#sigv4",identityProvider:e=>e.getIdentityProvider("aws.auth#sigv4"),signer:new Zn},{schemeId:"smithy.api#noAuth",identityProvider:e=>e.getIdentityProvider("smithy.api#noAuth")||(async()=>({})),signer:new Uwe.NoAuthSigner}],logger:t?.logger??new qwe.NoOpLogger,protocol:t?.protocol??Yc,protocolSettings:t?.protocolSettings??{defaultNamespace:"com.amazonaws.ssooidc",errorTypeRegistries:ZK,version:"2019-06-10",serviceTarget:"AWSSSOOIDCService"},serviceId:t?.serviceId??"SSO OIDC",urlParser:t?.urlParser??$we.parseUrl,utf8Decoder:t?.utf8Decoder??Bk.fromUtf8,utf8Encoder:t?.utf8Encoder??Bk.toUtf8})});var Uk,Fl,Vwe,qk,Ml,$k,Gk,Hwe,zwe,Wwe,Kwe,Qwe=_(()=>{CC();Qc();io();Uk=O(vC()),Fl=require("@smithy/config-resolver"),Vwe=require("@smithy/hash-node"),qk=require("@smithy/middleware-retry"),Ml=require("@smithy/node-config-provider"),$k=require("@smithy/node-http-handler"),Gk=require("@smithy/smithy-client"),Hwe=require("@smithy/util-body-length-node"),zwe=require("@smithy/util-defaults-mode-node"),Wwe=require("@smithy/util-retry");jwe();Kwe=t=>{(0,Gk.emitWarningIfUnsupportedVersion)(process.version);let e=(0,zwe.resolveDefaultsModeConfig)(t),r=()=>e().then(Gk.loadConfigsForDefaultMode),n=Gwe(t);Kc(process.version);let s={profile:t?.profile,logger:n.logger};return{...n,...t,runtime:"node",defaultsMode:e,authSchemePreference:t?.authSchemePreference??(0,Ml.loadConfig)(Ol,s),bodyLengthChecker:t?.bodyLengthChecker??Hwe.calculateBodyLength,defaultUserAgentProvider:t?.defaultUserAgentProvider??(0,Uk.createDefaultUserAgentProvider)({serviceId:n.serviceId,clientVersion:Nl.version}),maxAttempts:t?.maxAttempts??(0,Ml.loadConfig)(qk.NODE_MAX_ATTEMPT_CONFIG_OPTIONS,t),region:t?.region??(0,Ml.loadConfig)(Fl.NODE_REGION_CONFIG_OPTIONS,{...Fl.NODE_REGION_CONFIG_FILE_OPTIONS,...s}),requestHandler:$k.NodeHttpHandler.create(t?.requestHandler??r),retryMode:t?.retryMode??(0,Ml.loadConfig)({...qk.NODE_RETRY_MODE_CONFIG_OPTIONS,default:async()=>(await r()).retryMode||Wwe.DEFAULT_RETRY_MODE},t),sha256:t?.sha256??Vwe.Hash.bind(null,"sha256"),streamCollector:t?.streamCollector??$k.streamCollector,useDualstackEndpoint:t?.useDualstackEndpoint??(0,Ml.loadConfig)(Fl.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS,s),useFipsEndpoint:t?.useFipsEndpoint??(0,Ml.loadConfig)(Fl.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS,s),userAgentAppId:t?.userAgentAppId??(0,Ml.loadConfig)(Uk.NODE_APP_ID_CONFIG_OPTIONS,s)}}});var Jwe=b(Jf=>{"use strict";Object.defineProperty(Jf,"__esModule",{value:!0});Jf.warning=void 0;Jf.stsRegionDefaultResolver=Fwt;var Xwe=require("@smithy/config-resolver"),Mwt=require("@smithy/node-config-provider");function Fwt(t={}){return(0,Mwt.loadConfig)({...Xwe.NODE_REGION_CONFIG_OPTIONS,async default(){return Jf.warning.silence||console.warn("@aws-sdk - WARN - default STS region of us-east-1 used. See @aws-sdk/credential-providers README and set a region explicitly."),"us-east-1"}},{...Xwe.NODE_REGION_CONFIG_FILE_OPTIONS,...t})}Jf.warning={silence:!1}});var Yf=b(Yo=>{"use strict";var jk=Jwe(),WC=require("@smithy/config-resolver"),Bwt=t=>({setRegion(e){t.region=e},region(){return t.region}}),Uwt=t=>({region:t.region()});Yo.NODE_REGION_CONFIG_FILE_OPTIONS=WC.NODE_REGION_CONFIG_FILE_OPTIONS;Yo.NODE_REGION_CONFIG_OPTIONS=WC.NODE_REGION_CONFIG_OPTIONS;Yo.REGION_ENV_NAME=WC.REGION_ENV_NAME;Yo.REGION_INI_NAME=WC.REGION_INI_NAME;Yo.resolveRegionConfig=WC.resolveRegionConfig;Yo.getAwsRegionExtensionConfiguration=Bwt;Yo.resolveAwsRegionExtensionConfiguration=Uwt;Object.prototype.hasOwnProperty.call(jk,"__proto__")&&!Object.prototype.hasOwnProperty.call(Yo,"__proto__")&&Object.defineProperty(Yo,"__proto__",{enumerable:!0,value:jk.__proto__});Object.keys(jk).forEach(function(t){t!=="default"&&!Object.prototype.hasOwnProperty.call(Yo,t)&&(Yo[t]=jk[t])})});var Ywe,Zwe,eDe=_(()=>{Ywe=t=>{let e=t.httpAuthSchemes,r=t.httpAuthSchemeProvider,n=t.credentials;return{setHttpAuthScheme(s){let o=e.findIndex(i=>i.schemeId===s.schemeId);o===-1?e.push(s):e.splice(o,1,s)},httpAuthSchemes(){return e},setHttpAuthSchemeProvider(s){r=s},httpAuthSchemeProvider(){return r},setCredentials(s){n=s},credentials(){return n}}},Zwe=t=>({httpAuthSchemes:t.httpAuthSchemes(),httpAuthSchemeProvider:t.httpAuthSchemeProvider(),credentials:t.credentials()})});var Vk,Hk,zk,tDe,rDe=_(()=>{Vk=O(Yf()),Hk=require("@smithy/protocol-http"),zk=require("@smithy/smithy-client");eDe();tDe=(t,e)=>{let r=Object.assign((0,Vk.getAwsRegionExtensionConfiguration)(t),(0,zk.getDefaultExtensionConfiguration)(t),(0,Hk.getHttpHandlerExtensionConfiguration)(t),Ywe(t));return e.forEach(n=>n.configure(r)),Object.assign(t,(0,Vk.resolveAwsRegionExtensionConfiguration)(r),(0,zk.resolveDefaultRuntimeConfig)(r),(0,Hk.resolveHttpHandlerRuntimeConfig)(r),Zwe(r))}});var Wk,nDe,sDe,Kk,oDe,Zf,iDe,aDe,cDe,Qk,t6,KC,r6=_(()=>{Wk=O(fC()),nDe=O(hC()),sDe=O(EC()),Kk=O($f()),oDe=require("@smithy/config-resolver"),Zf=require("@smithy/core"),iDe=require("@smithy/core/schema"),aDe=require("@smithy/middleware-content-length"),cDe=require("@smithy/middleware-endpoint"),Qk=require("@smithy/middleware-retry"),t6=require("@smithy/smithy-client");RK();vK();Qwe();rDe();KC=class extends t6.Client{config;constructor(...[e]){let r=Kwe(e||{});super(r),this.initConfig=r;let n=pTe(r),s=(0,Kk.resolveUserAgentConfig)(n),o=(0,Qk.resolveRetryConfig)(s),i=(0,oDe.resolveRegionConfig)(o),a=(0,Wk.resolveHostHeaderConfig)(i),c=(0,cDe.resolveEndpointConfig)(a),u=dTe(c),l=tDe(u,e?.extensions||[]);this.config=l,this.middlewareStack.use((0,iDe.getSchemaSerdePlugin)(this.config)),this.middlewareStack.use((0,Kk.getUserAgentPlugin)(this.config)),this.middlewareStack.use((0,Qk.getRetryPlugin)(this.config)),this.middlewareStack.use((0,aDe.getContentLengthPlugin)(this.config)),this.middlewareStack.use((0,Wk.getHostHeaderPlugin)(this.config)),this.middlewareStack.use((0,nDe.getLoggerPlugin)(this.config)),this.middlewareStack.use((0,sDe.getRecursionDetectionPlugin)(this.config)),this.middlewareStack.use((0,Zf.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config,{httpAuthSchemeParametersProvider:uTe,identityProviderConfigProvider:async d=>new Zf.DefaultIdentityProviderConfig({"aws.auth#sigv4":d.credentials})})),this.middlewareStack.use((0,Zf.getHttpSigningPlugin)(this.config))}destroy(){super.destroy()}}});var uDe,n6,QC,s6=_(()=>{uDe=require("@smithy/middleware-endpoint"),n6=require("@smithy/smithy-client");vK();Mk();QC=class extends n6.Command.classBuilder().ep(mTe).m(function(e,r,n,s){return[(0,uDe.getEndpointPlugin)(n,e.getEndpointParameterInstructions())]}).s("AWSSSOOIDCService","CreateToken",{}).n("SSOOIDCClient","CreateTokenCommand").sc(e6).build(){}});var lDe,qwt,Xk,dDe=_(()=>{lDe=require("@smithy/smithy-client");s6();r6();qwt={CreateTokenCommand:QC},Xk=class extends KC{};(0,lDe.createAggregatedClient)(qwt,Xk)});var pDe=_(()=>{s6()});var $wt,Gwt,mDe=_(()=>{$wt={KMS_ACCESS_DENIED:"KMS_AccessDeniedException"},Gwt={KMS_DISABLED_KEY:"KMS_DisabledException",KMS_INVALID_KEY_USAGE:"KMS_InvalidKeyUsageException",KMS_INVALID_STATE:"KMS_InvalidStateException",KMS_KEY_NOT_FOUND:"KMS_NotFoundException"}});var gDe=_(()=>{});var o6={};wt(o6,{$Command:()=>n6.Command,AccessDeniedException:()=>MC,AccessDeniedException$:()=>Pwe,AccessDeniedExceptionReason:()=>$wt,AuthorizationPendingException:()=>FC,AuthorizationPendingException$:()=>bwe,CreateToken$:()=>e6,CreateTokenCommand:()=>QC,CreateTokenRequest$:()=>Fwe,CreateTokenResponse$:()=>Bwe,ExpiredTokenException:()=>BC,ExpiredTokenException$:()=>Iwe,InternalServerException:()=>UC,InternalServerException$:()=>Awe,InvalidClientException:()=>qC,InvalidClientException$:()=>Twe,InvalidGrantException:()=>$C,InvalidGrantException$:()=>wwe,InvalidRequestException:()=>GC,InvalidRequestException$:()=>Dwe,InvalidRequestExceptionReason:()=>Gwt,InvalidScopeException:()=>jC,InvalidScopeException$:()=>Owe,SSOOIDC:()=>Xk,SSOOIDCClient:()=>KC,SSOOIDCServiceException:()=>Xr,SSOOIDCServiceException$:()=>xwe,SlowDownException:()=>VC,SlowDownException$:()=>kwe,UnauthorizedClientException:()=>HC,UnauthorizedClientException$:()=>Nwe,UnsupportedGrantTypeException:()=>zC,UnsupportedGrantTypeException$:()=>Lwe,__Client:()=>t6.Client,errorTypeRegistries:()=>ZK});var i6=_(()=>{r6();dDe();pDe();Mk();mDe();JK();gDe();Lk()});var EDe=b(JC=>{"use strict";var jwt=(Ko(),ue(Ga)),Vwt=(MW(),ue(dIe)),co=require("@smithy/property-provider"),XC=require("@smithy/shared-ini-file-loader"),Hwt=require("node:fs"),zwt=({logger:t,signingName:e}={})=>async()=>{if(t?.debug?.("@aws-sdk/token-providers - fromEnvSigningName"),!e)throw new co.TokenProviderError("Please pass 'signingName' to compute environment variable key",{logger:t});let r=Vwt.getBearerTokenEnvKey(e);if(!(r in process.env))throw new co.TokenProviderError(`Token not present in '${r}' environment variable`,{logger:t});let n={token:process.env[r]};return jwt.setTokenFeature(n,"BEARER_SERVICE_ENV_VARS","3"),n},Wwt=5*60*1e3,a6="To refresh this SSO session run 'aws sso login' with the corresponding profile.",Kwt=async(t,e={},r)=>{let{SSOOIDCClient:n}=await Promise.resolve().then(()=>(i6(),o6)),s=i=>e.clientConfig?.[i]??e.parentClientConfig?.[i]??r?.[i];return new n(Object.assign({},e.clientConfig??{},{region:t??e.clientConfig?.region,logger:s("logger"),userAgentAppId:s("userAgentAppId")}))},Qwt=async(t,e,r={},n)=>{let{CreateTokenCommand:s}=await Promise.resolve().then(()=>(i6(),o6));return(await Kwt(e,r,n)).send(new s({clientId:t.clientId,clientSecret:t.clientSecret,refreshToken:t.refreshToken,grantType:"refresh_token"}))},fDe=t=>{if(t.expiration&&t.expiration.getTime(){if(typeof e>"u")throw new co.TokenProviderError(`Value not present for '${t}' in SSO Token${r?". Cannot refresh":""}. ${a6}`,!1)},{writeFile:Xwt}=Hwt.promises,Jwt=(t,e)=>{let r=XC.getSSOTokenFilepath(t),n=JSON.stringify(e,null,2);return Xwt(r,n)},hDe=new Date(0),SDe=(t={})=>async({callerClientConfig:e}={})=>{t.logger?.debug("@aws-sdk/token-providers - fromSso");let r=await XC.parseKnownFiles(t),n=XC.getProfileName({profile:t.profile??e?.profile}),s=r[n];if(s){if(!s.sso_session)throw new co.TokenProviderError(`Profile '${n}' is missing required property 'sso_session'.`)}else throw new co.TokenProviderError(`Profile '${n}' could not be found in shared credentials file.`,!1);let o=s.sso_session,a=(await XC.loadSsoSessionData(t))[o];if(!a)throw new co.TokenProviderError(`Sso session '${o}' could not be found in shared credentials file.`,!1);for(let g of["sso_start_url","sso_region"])if(!a[g])throw new co.TokenProviderError(`Sso session '${o}' is missing required property '${g}'.`,!1);a.sso_start_url;let c=a.sso_region,u;try{u=await XC.getSSOTokenFromFile(o)}catch{throw new co.TokenProviderError(`The SSO session token associated with profile=${n} was not found or is invalid. ${a6}`,!1)}Pp("accessToken",u.accessToken),Pp("expiresAt",u.expiresAt);let{accessToken:l,expiresAt:d}=u,p={token:l,expiration:new Date(d)};if(p.expiration.getTime()-Date.now()>Wwt)return p;if(Date.now()-hDe.getTime()<30*1e3)return fDe(p),p;Pp("clientId",u.clientId,!0),Pp("clientSecret",u.clientSecret,!0),Pp("refreshToken",u.refreshToken,!0);try{hDe.setTime(Date.now());let g=await Qwt(u,c,t,e);Pp("accessToken",g.accessToken),Pp("expiresIn",g.expiresIn);let y=new Date(Date.now()+g.expiresIn*1e3);try{await Jwt(o,{...u,accessToken:g.accessToken,expiresAt:y.toISOString(),refreshToken:g.refreshToken})}catch{}return{token:g.accessToken,expiration:y}}catch{return fDe(p),p}},Ywt=({token:t,logger:e})=>async()=>{if(e?.debug("@aws-sdk/token-providers - fromStatic"),!t||!t.token)throw new co.TokenProviderError("Please pass a valid token to fromStatic",!1);return t},Zwt=(t={})=>co.memoize(co.chain(SDe(t),async()=>{throw new co.TokenProviderError("Could not load token from any providers",!1)}),e=>e.expiration!==void 0&&e.expiration.getTime()-Date.now()<3e5,e=>e.expiration!==void 0);JC.fromEnvSigningName=zwt;JC.fromSso=SDe;JC.fromStatic=Ywt;JC.nodeProvider=Zwt});function eDt(t){return{schemeId:"aws.auth#sigv4",signingProperties:{name:"awsssoportal",region:t.region},propertiesExtractor:(e,r)=>({signingProperties:{config:e,context:r}})}}function tDt(t){return{schemeId:"smithy.api#noAuth"}}var YC,yDe,_De,CDe,c6=_(()=>{io();YC=require("@smithy/util-middleware"),yDe=async(t,e,r)=>({operation:(0,YC.getSmithyContext)(e).operation,region:await(0,YC.normalizeProvider)(t.region)()||(()=>{throw new Error("expected `region` to be configured for `aws.auth#sigv4`")})()});_De=t=>{let e=[];switch(t.operation){case"GetRoleCredentials":{e.push(tDt(t));break}default:e.push(eDt(t))}return e},CDe=t=>{let e=kl(t);return Object.assign(e,{authSchemePreference:(0,YC.normalizeProvider)(t.authSchemePreference??[])})}});var RDe,vDe,u6=_(()=>{RDe=t=>Object.assign(t,{useDualstackEndpoint:t.useDualstackEndpoint??!1,useFipsEndpoint:t.useFipsEndpoint??!1,defaultSigningName:"awsssoportal"}),vDe={UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}});var ADe,ZC,bp,Jk,xDe,TDe,Yk,l6,PDe,d6,eh,bDe,IDe,rDt,Ps,nDt,wDe,DDe=_(()=>{ADe=require("@smithy/util-endpoints"),ZC="ref",bp=-1,Jk=!0,xDe="isSet",TDe="PartitionResult",Yk="booleanEquals",l6="getAttr",PDe={[ZC]:"Endpoint"},d6={[ZC]:TDe},eh={},bDe=[{[ZC]:"Region"}],IDe={conditions:[[xDe,[PDe]],[xDe,bDe],["aws.partition",bDe,TDe],[Yk,[{[ZC]:"UseFIPS"},Jk]],[Yk,[{[ZC]:"UseDualStack"},Jk]],[Yk,[{fn:l6,argv:[d6,"supportsDualStack"]},Jk]],[Yk,[{fn:l6,argv:[d6,"supportsFIPS"]},Jk]],["stringEquals",[{fn:l6,argv:[d6,"name"]},"aws-us-gov"]]],results:[[bp],[bp,"Invalid Configuration: FIPS and custom endpoint are not supported"],[bp,"Invalid Configuration: Dualstack and custom endpoint are not supported"],[PDe,eh],["https://portal.sso-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",eh],[bp,"FIPS and DualStack are enabled, but this partition does not support one or both"],["https://portal.sso.{Region}.amazonaws.com",eh],["https://portal.sso-fips.{Region}.{PartitionResult#dnsSuffix}",eh],[bp,"FIPS is enabled but this partition does not support FIPS"],["https://portal.sso.{Region}.{PartitionResult#dualStackDnsSuffix}",eh],[bp,"DualStack is enabled but this partition does not support DualStack"],["https://portal.sso.{Region}.{PartitionResult#dnsSuffix}",eh],[bp,"Invalid Configuration: Missing Region"]]},rDt=2,Ps=1e8,nDt=new Int32Array([-1,1,-1,0,13,3,1,4,Ps+12,2,5,Ps+12,3,8,6,4,7,Ps+11,5,Ps+9,Ps+10,4,11,9,6,10,Ps+8,7,Ps+6,Ps+7,5,12,Ps+5,6,Ps+4,Ps+5,3,Ps+1,14,4,Ps+2,Ps+3]),wDe=ADe.BinaryDecisionDiagram.from(nDt,rDt,IDe.conditions,IDe.results)});var ODe,th,sDt,kDe,NDe=_(()=>{ODe=O(Uf()),th=require("@smithy/util-endpoints");DDe();sDt=new th.EndpointCache({size:50,params:["Endpoint","Region","UseDualStack","UseFIPS"]}),kDe=(t,e={})=>sDt.get(t,()=>(0,th.decideEndpoint)(wDe,{endpointParams:t,logger:e.logger}));th.customEndpointFunctions.aws=ODe.awsEndpointFunctions});var LDe,Ji,Zk=_(()=>{LDe=require("@smithy/smithy-client"),Ji=class t extends LDe.ServiceException{constructor(e){super(e),Object.setPrototypeOf(this,t.prototype)}}});var e0,t0,r0,n0,p6=_(()=>{Zk();e0=class t extends Ji{name="InvalidRequestException";$fault="client";constructor(e){super({name:"InvalidRequestException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},t0=class t extends Ji{name="ResourceNotFoundException";$fault="client";constructor(e){super({name:"ResourceNotFoundException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},r0=class t extends Ji{name="TooManyRequestsException";$fault="client";constructor(e){super({name:"TooManyRequestsException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},n0=class t extends Ji{name="UnauthorizedException";$fault="client";constructor(e){super({name:"UnauthorizedException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}}});var m6,oDt,iDt,aDt,cDt,uDt,lDt,dDt,pDt,mDt,gDt,fDt,hDt,SDt,EDt,yDt,eN,tN,_Dt,CDt,rN,RDt,MDe,nN,vDt,xDt,PDt,FDe,bDt,IDt,ADt,Zo,BDe,UDe,s0,qDe,$De,GDe,jDe,g6,TDt,wDt,DDt,VDe,HDe,zDe,f6,sN=_(()=>{m6=require("@smithy/core/schema");p6();Zk();oDt="AccessTokenType",iDt="GetRoleCredentials",aDt="GetRoleCredentialsRequest",cDt="GetRoleCredentialsResponse",uDt="InvalidRequestException",lDt="RoleCredentials",dDt="ResourceNotFoundException",pDt="SecretAccessKeyType",mDt="SessionTokenType",gDt="TooManyRequestsException",fDt="UnauthorizedException",hDt="accountId",SDt="accessKeyId",EDt="accessToken",yDt="account_id",eN="client",tN="error",_Dt="expiration",CDt="http",rN="httpError",RDt="httpHeader",MDe="httpQuery",nN="message",vDt="roleCredentials",xDt="roleName",PDt="role_name",FDe="smithy.ts.sdk.synthetic.com.amazonaws.sso",bDt="secretAccessKey",IDt="sessionToken",ADt="x-amz-sso_bearer_token",Zo="com.amazonaws.sso",BDe=m6.TypeRegistry.for(FDe),UDe=[-3,FDe,"SSOServiceException",0,[],[]];BDe.registerError(UDe,Ji);s0=m6.TypeRegistry.for(Zo),qDe=[-3,Zo,uDt,{[tN]:eN,[rN]:400},[nN],[0]];s0.registerError(qDe,e0);$De=[-3,Zo,dDt,{[tN]:eN,[rN]:404},[nN],[0]];s0.registerError($De,t0);GDe=[-3,Zo,gDt,{[tN]:eN,[rN]:429},[nN],[0]];s0.registerError(GDe,r0);jDe=[-3,Zo,fDt,{[tN]:eN,[rN]:401},[nN],[0]];s0.registerError(jDe,n0);g6=[BDe,s0],TDt=[0,Zo,oDt,8,0],wDt=[0,Zo,pDt,8,0],DDt=[0,Zo,mDt,8,0],VDe=[3,Zo,aDt,0,[xDt,hDt,EDt],[[0,{[MDe]:PDt}],[0,{[MDe]:yDt}],[()=>TDt,{[RDt]:ADt}]],3],HDe=[3,Zo,cDt,0,[vDt],[[()=>zDe,0]]],zDe=[3,Zo,lDt,0,[SDt,bDt,IDt,_Dt],[0,[()=>wDt,0],[()=>DDt,0],1]],f6=[9,Zo,iDt,{[CDt]:["GET","/federation/credentials",200]},()=>VDe,()=>HDe]});var WDe,KDe,QDe,oN,iN,XDe,JDe=_(()=>{io();Kf();WDe=require("@smithy/core"),KDe=require("@smithy/smithy-client"),QDe=require("@smithy/url-parser"),oN=require("@smithy/util-base64"),iN=require("@smithy/util-utf8");c6();NDe();sN();XDe=t=>({apiVersion:"2019-06-10",base64Decoder:t?.base64Decoder??oN.fromBase64,base64Encoder:t?.base64Encoder??oN.toBase64,disableHostPrefix:t?.disableHostPrefix??!1,endpointProvider:t?.endpointProvider??kDe,extensions:t?.extensions??[],httpAuthSchemeProvider:t?.httpAuthSchemeProvider??_De,httpAuthSchemes:t?.httpAuthSchemes??[{schemeId:"aws.auth#sigv4",identityProvider:e=>e.getIdentityProvider("aws.auth#sigv4"),signer:new Zn},{schemeId:"smithy.api#noAuth",identityProvider:e=>e.getIdentityProvider("smithy.api#noAuth")||(async()=>({})),signer:new WDe.NoAuthSigner}],logger:t?.logger??new KDe.NoOpLogger,protocol:t?.protocol??Yc,protocolSettings:t?.protocolSettings??{defaultNamespace:"com.amazonaws.sso",errorTypeRegistries:g6,version:"2019-06-10",serviceTarget:"SWBPortalService"},serviceId:t?.serviceId??"SSO",urlParser:t?.urlParser??QDe.parseUrl,utf8Decoder:t?.utf8Decoder??iN.fromUtf8,utf8Encoder:t?.utf8Encoder??iN.toUtf8})});var aN,Ul,YDe,cN,Bl,uN,lN,ZDe,eOe,tOe,rOe,nOe=_(()=>{CC();Qc();io();aN=O(vC()),Ul=require("@smithy/config-resolver"),YDe=require("@smithy/hash-node"),cN=require("@smithy/middleware-retry"),Bl=require("@smithy/node-config-provider"),uN=require("@smithy/node-http-handler"),lN=require("@smithy/smithy-client"),ZDe=require("@smithy/util-body-length-node"),eOe=require("@smithy/util-defaults-mode-node"),tOe=require("@smithy/util-retry");JDe();rOe=t=>{(0,lN.emitWarningIfUnsupportedVersion)(process.version);let e=(0,eOe.resolveDefaultsModeConfig)(t),r=()=>e().then(lN.loadConfigsForDefaultMode),n=XDe(t);Kc(process.version);let s={profile:t?.profile,logger:n.logger};return{...n,...t,runtime:"node",defaultsMode:e,authSchemePreference:t?.authSchemePreference??(0,Bl.loadConfig)(Ol,s),bodyLengthChecker:t?.bodyLengthChecker??ZDe.calculateBodyLength,defaultUserAgentProvider:t?.defaultUserAgentProvider??(0,aN.createDefaultUserAgentProvider)({serviceId:n.serviceId,clientVersion:Nl.version}),maxAttempts:t?.maxAttempts??(0,Bl.loadConfig)(cN.NODE_MAX_ATTEMPT_CONFIG_OPTIONS,t),region:t?.region??(0,Bl.loadConfig)(Ul.NODE_REGION_CONFIG_OPTIONS,{...Ul.NODE_REGION_CONFIG_FILE_OPTIONS,...s}),requestHandler:uN.NodeHttpHandler.create(t?.requestHandler??r),retryMode:t?.retryMode??(0,Bl.loadConfig)({...cN.NODE_RETRY_MODE_CONFIG_OPTIONS,default:async()=>(await r()).retryMode||tOe.DEFAULT_RETRY_MODE},t),sha256:t?.sha256??YDe.Hash.bind(null,"sha256"),streamCollector:t?.streamCollector??uN.streamCollector,useDualstackEndpoint:t?.useDualstackEndpoint??(0,Bl.loadConfig)(Ul.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS,s),useFipsEndpoint:t?.useFipsEndpoint??(0,Bl.loadConfig)(Ul.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS,s),userAgentAppId:t?.userAgentAppId??(0,Bl.loadConfig)(aN.NODE_APP_ID_CONFIG_OPTIONS,s)}}});var sOe,oOe,iOe=_(()=>{sOe=t=>{let e=t.httpAuthSchemes,r=t.httpAuthSchemeProvider,n=t.credentials;return{setHttpAuthScheme(s){let o=e.findIndex(i=>i.schemeId===s.schemeId);o===-1?e.push(s):e.splice(o,1,s)},httpAuthSchemes(){return e},setHttpAuthSchemeProvider(s){r=s},httpAuthSchemeProvider(){return r},setCredentials(s){n=s},credentials(){return n}}},oOe=t=>({httpAuthSchemes:t.httpAuthSchemes(),httpAuthSchemeProvider:t.httpAuthSchemeProvider(),credentials:t.credentials()})});var dN,pN,mN,aOe,cOe=_(()=>{dN=O(Yf()),pN=require("@smithy/protocol-http"),mN=require("@smithy/smithy-client");iOe();aOe=(t,e)=>{let r=Object.assign((0,dN.getAwsRegionExtensionConfiguration)(t),(0,mN.getDefaultExtensionConfiguration)(t),(0,pN.getHttpHandlerExtensionConfiguration)(t),sOe(t));return e.forEach(n=>n.configure(r)),Object.assign(t,(0,dN.resolveAwsRegionExtensionConfiguration)(r),(0,mN.resolveDefaultRuntimeConfig)(r),(0,pN.resolveHttpHandlerRuntimeConfig)(r),oOe(r))}});var gN,uOe,lOe,fN,dOe,rh,pOe,mOe,gOe,hN,h6,o0,S6=_(()=>{gN=O(fC()),uOe=O(hC()),lOe=O(EC()),fN=O($f()),dOe=require("@smithy/config-resolver"),rh=require("@smithy/core"),pOe=require("@smithy/core/schema"),mOe=require("@smithy/middleware-content-length"),gOe=require("@smithy/middleware-endpoint"),hN=require("@smithy/middleware-retry"),h6=require("@smithy/smithy-client");c6();u6();nOe();cOe();o0=class extends h6.Client{config;constructor(...[e]){let r=rOe(e||{});super(r),this.initConfig=r;let n=RDe(r),s=(0,fN.resolveUserAgentConfig)(n),o=(0,hN.resolveRetryConfig)(s),i=(0,dOe.resolveRegionConfig)(o),a=(0,gN.resolveHostHeaderConfig)(i),c=(0,gOe.resolveEndpointConfig)(a),u=CDe(c),l=aOe(u,e?.extensions||[]);this.config=l,this.middlewareStack.use((0,pOe.getSchemaSerdePlugin)(this.config)),this.middlewareStack.use((0,fN.getUserAgentPlugin)(this.config)),this.middlewareStack.use((0,hN.getRetryPlugin)(this.config)),this.middlewareStack.use((0,mOe.getContentLengthPlugin)(this.config)),this.middlewareStack.use((0,gN.getHostHeaderPlugin)(this.config)),this.middlewareStack.use((0,uOe.getLoggerPlugin)(this.config)),this.middlewareStack.use((0,lOe.getRecursionDetectionPlugin)(this.config)),this.middlewareStack.use((0,rh.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config,{httpAuthSchemeParametersProvider:yDe,identityProviderConfigProvider:async d=>new rh.DefaultIdentityProviderConfig({"aws.auth#sigv4":d.credentials})})),this.middlewareStack.use((0,rh.getHttpSigningPlugin)(this.config))}destroy(){super.destroy()}}});var fOe,E6,i0,y6=_(()=>{fOe=require("@smithy/middleware-endpoint"),E6=require("@smithy/smithy-client");u6();sN();i0=class extends E6.Command.classBuilder().ep(vDe).m(function(e,r,n,s){return[(0,fOe.getEndpointPlugin)(n,e.getEndpointParameterInstructions())]}).s("SWBPortalService","GetRoleCredentials",{}).n("SSOClient","GetRoleCredentialsCommand").sc(f6).build(){}});var hOe,ODt,SN,SOe=_(()=>{hOe=require("@smithy/smithy-client");y6();S6();ODt={GetRoleCredentialsCommand:i0},SN=class extends o0{};(0,hOe.createAggregatedClient)(ODt,SN)});var EOe=_(()=>{y6()});var yOe=_(()=>{});var _Oe={};wt(_Oe,{$Command:()=>E6.Command,GetRoleCredentials$:()=>f6,GetRoleCredentialsCommand:()=>i0,GetRoleCredentialsRequest$:()=>VDe,GetRoleCredentialsResponse$:()=>HDe,InvalidRequestException:()=>e0,InvalidRequestException$:()=>qDe,ResourceNotFoundException:()=>t0,ResourceNotFoundException$:()=>$De,RoleCredentials$:()=>zDe,SSO:()=>SN,SSOClient:()=>o0,SSOServiceException:()=>Ji,SSOServiceException$:()=>UDe,TooManyRequestsException:()=>r0,TooManyRequestsException$:()=>GDe,UnauthorizedException:()=>n0,UnauthorizedException$:()=>jDe,__Client:()=>h6.Client,errorTypeRegistries:()=>g6});var COe=_(()=>{S6();SOe();EOe();sN();p6();yOe();Zk()});var vOe=b(_6=>{"use strict";var ROe=(COe(),ue(_Oe));_6.GetRoleCredentialsCommand=ROe.GetRoleCredentialsCommand;_6.SSOClient=ROe.SSOClient});var C6=b(yN=>{"use strict";var Yi=require("@smithy/property-provider"),EN=require("@smithy/shared-ini-file-loader"),xOe=(Ko(),ue(Ga)),kDt=EDe(),bOe=t=>t&&(typeof t.sso_start_url=="string"||typeof t.sso_account_id=="string"||typeof t.sso_session=="string"||typeof t.sso_region=="string"||typeof t.sso_role_name=="string"),a0=!1,POe=async({ssoStartUrl:t,ssoSession:e,ssoAccountId:r,ssoRegion:n,ssoRoleName:s,ssoClient:o,clientConfig:i,parentClientConfig:a,callerClientConfig:c,profile:u,filepath:l,configFilepath:d,ignoreCache:p,logger:g})=>{let y,R="To refresh this SSO session run aws sso login with the corresponding profile.";if(e)try{let tr=await kDt.fromSso({profile:u,filepath:l,configFilepath:d,ignoreCache:p})();y={accessToken:tr.token,expiresAt:new Date(tr.expiration).toISOString()}}catch(tr){throw new Yi.CredentialsProviderError(tr.message,{tryNextLink:a0,logger:g})}else try{y=await EN.getSSOTokenFromFile(t)}catch{throw new Yi.CredentialsProviderError(`The SSO session associated with this profile is invalid. ${R}`,{tryNextLink:a0,logger:g})}if(new Date(y.expiresAt).getTime()-Date.now()<=0)throw new Yi.CredentialsProviderError(`The SSO session associated with this profile has expired. ${R}`,{tryNextLink:a0,logger:g});let{accessToken:D}=y,{SSOClient:B,GetRoleCredentialsCommand:M}=await Promise.resolve().then(function(){return vOe()}),ge=o||new B(Object.assign({},i??{},{logger:i?.logger??c?.logger??a?.logger,region:i?.region??n,userAgentAppId:i?.userAgentAppId??c?.userAgentAppId??a?.userAgentAppId})),Y;try{Y=await ge.send(new M({accountId:r,roleName:s,accessToken:D}))}catch(tr){throw new Yi.CredentialsProviderError(tr,{tryNextLink:a0,logger:g})}let{roleCredentials:{accessKeyId:Te,secretAccessKey:Ht,sessionToken:Tt,expiration:Ne,credentialScope:Eu,accountId:yu}={}}=Y;if(!Te||!Ht||!Tt||!Ne)throw new Yi.CredentialsProviderError("SSO returns an invalid temporary credential.",{tryNextLink:a0,logger:g});let hi={accessKeyId:Te,secretAccessKey:Ht,sessionToken:Tt,expiration:new Date(Ne),...Eu&&{credentialScope:Eu},...yu&&{accountId:yu}};return e?xOe.setCredentialFeature(hi,"CREDENTIALS_SSO","s"):xOe.setCredentialFeature(hi,"CREDENTIALS_SSO_LEGACY","u"),hi},IOe=(t,e)=>{let{sso_start_url:r,sso_account_id:n,sso_region:s,sso_role_name:o}=t;if(!r||!n||!s||!o)throw new Yi.CredentialsProviderError(`Profile is configured with invalid SSO credentials. Required parameters "sso_account_id", "sso_region", "sso_role_name", "sso_start_url". Got ${Object.keys(t).join(", ")} +Reference: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html`,{tryNextLink:!1,logger:e});return t},NDt=(t={})=>async({callerClientConfig:e}={})=>{t.logger?.debug("@aws-sdk/credential-provider-sso - fromSSO");let{ssoStartUrl:r,ssoAccountId:n,ssoRegion:s,ssoRoleName:o,ssoSession:i}=t,{ssoClient:a}=t,c=EN.getProfileName({profile:t.profile??e?.profile});if(!r&&!n&&!s&&!o&&!i){let l=(await EN.parseKnownFiles(t))[c];if(!l)throw new Yi.CredentialsProviderError(`Profile ${c} was not found.`,{logger:t.logger});if(!bOe(l))throw new Yi.CredentialsProviderError(`Profile ${c} is not configured with SSO credentials.`,{logger:t.logger});if(l?.sso_session){let B=(await EN.loadSsoSessionData(t))[l.sso_session],M=` configurations in profile ${c} and sso-session ${l.sso_session}`;if(s&&s!==B.sso_region)throw new Yi.CredentialsProviderError("Conflicting SSO region"+M,{tryNextLink:!1,logger:t.logger});if(r&&r!==B.sso_start_url)throw new Yi.CredentialsProviderError("Conflicting SSO start_url"+M,{tryNextLink:!1,logger:t.logger});l.sso_region=B.sso_region,l.sso_start_url=B.sso_start_url}let{sso_start_url:d,sso_account_id:p,sso_region:g,sso_role_name:y,sso_session:R}=IOe(l,t.logger);return POe({ssoStartUrl:d,ssoSession:R,ssoAccountId:p,ssoRegion:g,ssoRoleName:y,ssoClient:a,clientConfig:t.clientConfig,parentClientConfig:t.parentClientConfig,callerClientConfig:t.callerClientConfig,profile:c,filepath:t.filepath,configFilepath:t.configFilepath,ignoreCache:t.ignoreCache,logger:t.logger})}else{if(!r||!n||!s||!o)throw new Yi.CredentialsProviderError('Incomplete configuration. The fromSSO() argument hash must include "ssoStartUrl", "ssoAccountId", "ssoRegion", "ssoRoleName"',{tryNextLink:!1,logger:t.logger});return POe({ssoStartUrl:r,ssoSession:i,ssoAccountId:n,ssoRegion:s,ssoRoleName:o,ssoClient:a,clientConfig:t.clientConfig,parentClientConfig:t.parentClientConfig,callerClientConfig:t.callerClientConfig,profile:c,filepath:t.filepath,configFilepath:t.configFilepath,ignoreCache:t.ignoreCache,logger:t.logger})}};yN.fromSSO=NDt;yN.isSsoProfile=bOe;yN.validateSsoProfile=IOe});function LDt(t){return{schemeId:"aws.auth#sigv4",signingProperties:{name:"signin",region:t.region},propertiesExtractor:(e,r)=>({signingProperties:{config:e,context:r}})}}function MDt(t){return{schemeId:"smithy.api#noAuth"}}var c0,AOe,TOe,wOe,R6=_(()=>{io();c0=require("@smithy/util-middleware"),AOe=async(t,e,r)=>({operation:(0,c0.getSmithyContext)(e).operation,region:await(0,c0.normalizeProvider)(t.region)()||(()=>{throw new Error("expected `region` to be configured for `aws.auth#sigv4`")})()});TOe=t=>{let e=[];switch(t.operation){case"CreateOAuth2Token":{e.push(MDt(t));break}default:e.push(LDt(t))}return e},wOe=t=>{let e=kl(t);return Object.assign(e,{authSchemePreference:(0,c0.normalizeProvider)(t.authSchemePreference??[])})}});var DOe,OOe,v6=_(()=>{DOe=t=>Object.assign(t,{useDualstackEndpoint:t.useDualstackEndpoint??!1,useFipsEndpoint:t.useFipsEndpoint??!1,defaultSigningName:"signin"}),OOe={UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}});var FOe,u0,Ip,_N,kOe,BOe,CN,b6,x6,NOe,I6,P6,ql,LOe,MOe,FDt,Un,BDt,UOe,qOe=_(()=>{FOe=require("@smithy/util-endpoints"),u0="ref",Ip=-1,_N=!0,kOe="isSet",BOe="PartitionResult",CN="booleanEquals",b6="getAttr",x6="stringEquals",NOe={[u0]:"Endpoint"},I6={[u0]:BOe},P6={fn:b6,argv:[I6,"name"]},ql={},LOe=[{[u0]:"Region"}],MOe={conditions:[[kOe,[NOe]],[kOe,LOe],["aws.partition",LOe,BOe],[CN,[{[u0]:"UseFIPS"},_N]],[CN,[{[u0]:"UseDualStack"},_N]],[CN,[{fn:b6,argv:[I6,"supportsDualStack"]},_N]],[CN,[{fn:b6,argv:[I6,"supportsFIPS"]},_N]],[x6,[P6,"aws"]],[x6,[P6,"aws-cn"]],[x6,[P6,"aws-us-gov"]]],results:[[Ip],[Ip,"Invalid Configuration: FIPS and custom endpoint are not supported"],[Ip,"Invalid Configuration: Dualstack and custom endpoint are not supported"],[NOe,ql],["https://{Region}.signin.aws.amazon.com",ql],["https://{Region}.signin.amazonaws.cn",ql],["https://{Region}.signin.amazonaws-us-gov.com",ql],["https://signin-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",ql],[Ip,"FIPS and DualStack are enabled, but this partition does not support one or both"],["https://signin-fips.{Region}.{PartitionResult#dnsSuffix}",ql],[Ip,"FIPS is enabled but this partition does not support FIPS"],["https://signin.{Region}.{PartitionResult#dualStackDnsSuffix}",ql],[Ip,"DualStack is enabled but this partition does not support DualStack"],["https://signin.{Region}.{PartitionResult#dnsSuffix}",ql],[Ip,"Invalid Configuration: Missing Region"]]},FDt=2,Un=1e8,BDt=new Int32Array([-1,1,-1,0,15,3,1,4,Un+14,2,5,Un+14,3,11,6,4,10,7,7,Un+4,8,8,Un+5,9,9,Un+6,Un+13,5,Un+11,Un+12,4,13,12,6,Un+9,Un+10,5,14,Un+8,6,Un+7,Un+8,3,Un+1,16,4,Un+2,Un+3]),UOe=FOe.BinaryDecisionDiagram.from(BDt,FDt,MOe.conditions,MOe.results)});var $Oe,nh,UDt,GOe,jOe=_(()=>{$Oe=O(Uf()),nh=require("@smithy/util-endpoints");qOe();UDt=new nh.EndpointCache({size:50,params:["Endpoint","Region","UseDualStack","UseFIPS"]}),GOe=(t,e={})=>UDt.get(t,()=>(0,nh.decideEndpoint)(UOe,{endpointParams:t,logger:e.logger}));nh.customEndpointFunctions.aws=$Oe.awsEndpointFunctions});var VOe,Zi,RN=_(()=>{VOe=require("@smithy/smithy-client"),Zi=class t extends VOe.ServiceException{constructor(e){super(e),Object.setPrototypeOf(this,t.prototype)}}});var l0,d0,p0,m0,A6=_(()=>{RN();l0=class t extends Zi{name="AccessDeniedException";$fault="client";error;constructor(e){super({name:"AccessDeniedException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error}},d0=class t extends Zi{name="InternalServerException";$fault="server";error;constructor(e){super({name:"InternalServerException",$fault:"server",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error}},p0=class t extends Zi{name="TooManyRequestsError";$fault="client";error;constructor(e){super({name:"TooManyRequestsError",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error}},m0=class t extends Zi{name="ValidationException";$fault="client";error;constructor(e){super({name:"ValidationException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error}}});var D6,qDt,$Dt,GDt,jDt,VDt,HDt,zDt,WDt,KDt,QDt,XDt,HOe,zOe,T6,WOe,KOe,JDt,$l,QOe,XOe,YDt,w6,JOe,uo,xN,vN,YOe,rke,ZOe,eke,ZDt,eOt,tOt,tke,ei,nke,ske,g0,oke,ike,ake,cke,O6,uke,lke,dke,pke,mke,gke,k6,PN=_(()=>{D6=require("@smithy/core/schema");A6();RN();qDt="AccessDeniedException",$Dt="AccessToken",GDt="CreateOAuth2Token",jDt="CreateOAuth2TokenRequest",VDt="CreateOAuth2TokenRequestBody",HDt="CreateOAuth2TokenResponseBody",zDt="CreateOAuth2TokenResponse",WDt="InternalServerException",KDt="RefreshToken",QDt="TooManyRequestsError",XDt="ValidationException",HOe="accessKeyId",zOe="accessToken",T6="client",WOe="clientId",KOe="codeVerifier",JDt="code",$l="error",QOe="expiresIn",XOe="grantType",YDt="http",w6="httpError",JOe="idToken",uo="jsonName",xN="message",vN="refreshToken",YOe="redirectUri",rke="smithy.ts.sdk.synthetic.com.amazonaws.signin",ZOe="secretAccessKey",eke="sessionToken",ZDt="server",eOt="tokenInput",tOt="tokenOutput",tke="tokenType",ei="com.amazonaws.signin",nke=D6.TypeRegistry.for(rke),ske=[-3,rke,"SigninServiceException",0,[],[]];nke.registerError(ske,Zi);g0=D6.TypeRegistry.for(ei),oke=[-3,ei,qDt,{[$l]:T6},[$l,xN],[0,0],2];g0.registerError(oke,l0);ike=[-3,ei,WDt,{[$l]:ZDt,[w6]:500},[$l,xN],[0,0],2];g0.registerError(ike,d0);ake=[-3,ei,QDt,{[$l]:T6,[w6]:429},[$l,xN],[0,0],2];g0.registerError(ake,p0);cke=[-3,ei,XDt,{[$l]:T6,[w6]:400},[$l,xN],[0,0],2];g0.registerError(cke,m0);O6=[nke,g0],uke=[0,ei,KDt,8,0],lke=[3,ei,$Dt,8,[HOe,ZOe,eke],[[0,{[uo]:HOe}],[0,{[uo]:ZOe}],[0,{[uo]:eke}]],3],dke=[3,ei,jDt,0,[eOt],[[()=>pke,16]],1],pke=[3,ei,VDt,0,[WOe,XOe,JDt,YOe,KOe,vN],[[0,{[uo]:WOe}],[0,{[uo]:XOe}],0,[0,{[uo]:YOe}],[0,{[uo]:KOe}],[()=>uke,{[uo]:vN}]],2],mke=[3,ei,zDt,0,[tOt],[[()=>gke,16]],1],gke=[3,ei,HDt,0,[zOe,tke,QOe,vN,JOe],[[()=>lke,{[uo]:zOe}],[0,{[uo]:tke}],[1,{[uo]:QOe}],[()=>uke,{[uo]:vN}],[0,{[uo]:JOe}]],4],k6=[9,ei,GDt,{[YDt]:["POST","/v1/token",200]},()=>dke,()=>mke]});var fke,hke,Ske,bN,IN,Eke,yke=_(()=>{io();Kf();fke=require("@smithy/core"),hke=require("@smithy/smithy-client"),Ske=require("@smithy/url-parser"),bN=require("@smithy/util-base64"),IN=require("@smithy/util-utf8");R6();jOe();PN();Eke=t=>({apiVersion:"2023-01-01",base64Decoder:t?.base64Decoder??bN.fromBase64,base64Encoder:t?.base64Encoder??bN.toBase64,disableHostPrefix:t?.disableHostPrefix??!1,endpointProvider:t?.endpointProvider??GOe,extensions:t?.extensions??[],httpAuthSchemeProvider:t?.httpAuthSchemeProvider??TOe,httpAuthSchemes:t?.httpAuthSchemes??[{schemeId:"aws.auth#sigv4",identityProvider:e=>e.getIdentityProvider("aws.auth#sigv4"),signer:new Zn},{schemeId:"smithy.api#noAuth",identityProvider:e=>e.getIdentityProvider("smithy.api#noAuth")||(async()=>({})),signer:new fke.NoAuthSigner}],logger:t?.logger??new hke.NoOpLogger,protocol:t?.protocol??Yc,protocolSettings:t?.protocolSettings??{defaultNamespace:"com.amazonaws.signin",errorTypeRegistries:O6,version:"2023-01-01",serviceTarget:"Signin"},serviceId:t?.serviceId??"Signin",urlParser:t?.urlParser??Ske.parseUrl,utf8Decoder:t?.utf8Decoder??IN.fromUtf8,utf8Encoder:t?.utf8Encoder??IN.toUtf8})});var AN,jl,_ke,TN,Gl,wN,DN,Cke,Rke,vke,xke,Pke=_(()=>{CC();Qc();io();AN=O(vC()),jl=require("@smithy/config-resolver"),_ke=require("@smithy/hash-node"),TN=require("@smithy/middleware-retry"),Gl=require("@smithy/node-config-provider"),wN=require("@smithy/node-http-handler"),DN=require("@smithy/smithy-client"),Cke=require("@smithy/util-body-length-node"),Rke=require("@smithy/util-defaults-mode-node"),vke=require("@smithy/util-retry");yke();xke=t=>{(0,DN.emitWarningIfUnsupportedVersion)(process.version);let e=(0,Rke.resolveDefaultsModeConfig)(t),r=()=>e().then(DN.loadConfigsForDefaultMode),n=Eke(t);Kc(process.version);let s={profile:t?.profile,logger:n.logger};return{...n,...t,runtime:"node",defaultsMode:e,authSchemePreference:t?.authSchemePreference??(0,Gl.loadConfig)(Ol,s),bodyLengthChecker:t?.bodyLengthChecker??Cke.calculateBodyLength,defaultUserAgentProvider:t?.defaultUserAgentProvider??(0,AN.createDefaultUserAgentProvider)({serviceId:n.serviceId,clientVersion:Nl.version}),maxAttempts:t?.maxAttempts??(0,Gl.loadConfig)(TN.NODE_MAX_ATTEMPT_CONFIG_OPTIONS,t),region:t?.region??(0,Gl.loadConfig)(jl.NODE_REGION_CONFIG_OPTIONS,{...jl.NODE_REGION_CONFIG_FILE_OPTIONS,...s}),requestHandler:wN.NodeHttpHandler.create(t?.requestHandler??r),retryMode:t?.retryMode??(0,Gl.loadConfig)({...TN.NODE_RETRY_MODE_CONFIG_OPTIONS,default:async()=>(await r()).retryMode||vke.DEFAULT_RETRY_MODE},t),sha256:t?.sha256??_ke.Hash.bind(null,"sha256"),streamCollector:t?.streamCollector??wN.streamCollector,useDualstackEndpoint:t?.useDualstackEndpoint??(0,Gl.loadConfig)(jl.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS,s),useFipsEndpoint:t?.useFipsEndpoint??(0,Gl.loadConfig)(jl.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS,s),userAgentAppId:t?.userAgentAppId??(0,Gl.loadConfig)(AN.NODE_APP_ID_CONFIG_OPTIONS,s)}}});var bke,Ike,Ake=_(()=>{bke=t=>{let e=t.httpAuthSchemes,r=t.httpAuthSchemeProvider,n=t.credentials;return{setHttpAuthScheme(s){let o=e.findIndex(i=>i.schemeId===s.schemeId);o===-1?e.push(s):e.splice(o,1,s)},httpAuthSchemes(){return e},setHttpAuthSchemeProvider(s){r=s},httpAuthSchemeProvider(){return r},setCredentials(s){n=s},credentials(){return n}}},Ike=t=>({httpAuthSchemes:t.httpAuthSchemes(),httpAuthSchemeProvider:t.httpAuthSchemeProvider(),credentials:t.credentials()})});var ON,kN,NN,Tke,wke=_(()=>{ON=O(Yf()),kN=require("@smithy/protocol-http"),NN=require("@smithy/smithy-client");Ake();Tke=(t,e)=>{let r=Object.assign((0,ON.getAwsRegionExtensionConfiguration)(t),(0,NN.getDefaultExtensionConfiguration)(t),(0,kN.getHttpHandlerExtensionConfiguration)(t),bke(t));return e.forEach(n=>n.configure(r)),Object.assign(t,(0,ON.resolveAwsRegionExtensionConfiguration)(r),(0,NN.resolveDefaultRuntimeConfig)(r),(0,kN.resolveHttpHandlerRuntimeConfig)(r),Ike(r))}});var LN,Dke,Oke,MN,kke,sh,Nke,Lke,Mke,FN,N6,f0,L6=_(()=>{LN=O(fC()),Dke=O(hC()),Oke=O(EC()),MN=O($f()),kke=require("@smithy/config-resolver"),sh=require("@smithy/core"),Nke=require("@smithy/core/schema"),Lke=require("@smithy/middleware-content-length"),Mke=require("@smithy/middleware-endpoint"),FN=require("@smithy/middleware-retry"),N6=require("@smithy/smithy-client");R6();v6();Pke();wke();f0=class extends N6.Client{config;constructor(...[e]){let r=xke(e||{});super(r),this.initConfig=r;let n=DOe(r),s=(0,MN.resolveUserAgentConfig)(n),o=(0,FN.resolveRetryConfig)(s),i=(0,kke.resolveRegionConfig)(o),a=(0,LN.resolveHostHeaderConfig)(i),c=(0,Mke.resolveEndpointConfig)(a),u=wOe(c),l=Tke(u,e?.extensions||[]);this.config=l,this.middlewareStack.use((0,Nke.getSchemaSerdePlugin)(this.config)),this.middlewareStack.use((0,MN.getUserAgentPlugin)(this.config)),this.middlewareStack.use((0,FN.getRetryPlugin)(this.config)),this.middlewareStack.use((0,Lke.getContentLengthPlugin)(this.config)),this.middlewareStack.use((0,LN.getHostHeaderPlugin)(this.config)),this.middlewareStack.use((0,Dke.getLoggerPlugin)(this.config)),this.middlewareStack.use((0,Oke.getRecursionDetectionPlugin)(this.config)),this.middlewareStack.use((0,sh.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config,{httpAuthSchemeParametersProvider:AOe,identityProviderConfigProvider:async d=>new sh.DefaultIdentityProviderConfig({"aws.auth#sigv4":d.credentials})})),this.middlewareStack.use((0,sh.getHttpSigningPlugin)(this.config))}destroy(){super.destroy()}}});var Fke,M6,h0,F6=_(()=>{Fke=require("@smithy/middleware-endpoint"),M6=require("@smithy/smithy-client");v6();PN();h0=class extends M6.Command.classBuilder().ep(OOe).m(function(e,r,n,s){return[(0,Fke.getEndpointPlugin)(n,e.getEndpointParameterInstructions())]}).s("Signin","CreateOAuth2Token",{}).n("SigninClient","CreateOAuth2TokenCommand").sc(k6).build(){}});var Bke,rOt,BN,Uke=_(()=>{Bke=require("@smithy/smithy-client");F6();L6();rOt={CreateOAuth2TokenCommand:h0},BN=class extends f0{};(0,Bke.createAggregatedClient)(rOt,BN)});var qke=_(()=>{F6()});var nOt,$ke=_(()=>{nOt={AUTHCODE_EXPIRED:"AUTHCODE_EXPIRED",INSUFFICIENT_PERMISSIONS:"INSUFFICIENT_PERMISSIONS",INVALID_REQUEST:"INVALID_REQUEST",SERVER_ERROR:"server_error",TOKEN_EXPIRED:"TOKEN_EXPIRED",USER_CREDENTIALS_CHANGED:"USER_CREDENTIALS_CHANGED"}});var Gke=_(()=>{});var jke={};wt(jke,{$Command:()=>M6.Command,AccessDeniedException:()=>l0,AccessDeniedException$:()=>oke,AccessToken$:()=>lke,CreateOAuth2Token$:()=>k6,CreateOAuth2TokenCommand:()=>h0,CreateOAuth2TokenRequest$:()=>dke,CreateOAuth2TokenRequestBody$:()=>pke,CreateOAuth2TokenResponse$:()=>mke,CreateOAuth2TokenResponseBody$:()=>gke,InternalServerException:()=>d0,InternalServerException$:()=>ike,OAuth2ErrorCode:()=>nOt,Signin:()=>BN,SigninClient:()=>f0,SigninServiceException:()=>Zi,SigninServiceException$:()=>ske,TooManyRequestsError:()=>p0,TooManyRequestsError$:()=>ake,ValidationException:()=>m0,ValidationException$:()=>cke,__Client:()=>N6.Client,errorTypeRegistries:()=>O6});var Vke=_(()=>{L6();Uke();qke();PN();$ke();A6();Gke();RN()});var zke=b(Hke=>{"use strict";var sOt=(Ko(),ue(Ga)),Vl=require("@smithy/property-provider"),q6=require("@smithy/shared-ini-file-loader"),oOt=require("@smithy/protocol-http"),UN=require("node:crypto"),B6=require("node:fs"),iOt=require("node:os"),U6=require("node:path"),$6=class t{profileData;init;callerClientConfig;static REFRESH_THRESHOLD=5*60*1e3;constructor(e,r,n){this.profileData=e,this.init=r,this.callerClientConfig=n}async loadCredentials(){let e=await this.loadToken();if(!e)throw new Vl.CredentialsProviderError(`Failed to load a token for session ${this.loginSession}, please re-authenticate using aws login`,{tryNextLink:!1,logger:this.logger});let r=e.accessToken,n=Date.now();return new Date(r.expiresAt).getTime()-n<=t.REFRESH_THRESHOLD?this.refresh(e):{accessKeyId:r.accessKeyId,secretAccessKey:r.secretAccessKey,sessionToken:r.sessionToken,accountId:r.accountId,expiration:new Date(r.expiresAt)}}get logger(){return this.init?.logger}get loginSession(){return this.profileData.login_session}async refresh(e){let{SigninClient:r,CreateOAuth2TokenCommand:n}=await Promise.resolve().then(()=>(Vke(),jke)),{logger:s,userAgentAppId:o}=this.callerClientConfig??{},a=(d=>d?.metadata?.handlerProtocol==="h2")(this.callerClientConfig?.requestHandler)?void 0:this.callerClientConfig?.requestHandler,c=this.profileData.region??await this.callerClientConfig?.region?.()??process.env.AWS_REGION,u=new r({credentials:{accessKeyId:"",secretAccessKey:""},region:c,requestHandler:a,logger:s,userAgentAppId:o,...this.init?.clientConfig});this.createDPoPInterceptor(u.middlewareStack);let l={tokenInput:{clientId:e.clientId,refreshToken:e.refreshToken,grantType:"refresh_token"}};try{let d=await u.send(new n(l)),{accessKeyId:p,secretAccessKey:g,sessionToken:y}=d.tokenOutput?.accessToken??{},{refreshToken:R,expiresIn:D}=d.tokenOutput??{};if(!p||!g||!y||!R)throw new Vl.CredentialsProviderError("Token refresh response missing required fields",{logger:this.logger,tryNextLink:!1});let B=(D??900)*1e3,M=new Date(Date.now()+B),ge={...e,accessToken:{...e.accessToken,accessKeyId:p,secretAccessKey:g,sessionToken:y,expiresAt:M.toISOString()},refreshToken:R};await this.saveToken(ge);let Y=ge.accessToken;return{accessKeyId:Y.accessKeyId,secretAccessKey:Y.secretAccessKey,sessionToken:Y.sessionToken,accountId:Y.accountId,expiration:M}}catch(d){if(d.name==="AccessDeniedException"){let p=d.error,g;switch(p){case"TOKEN_EXPIRED":g="Your session has expired. Please reauthenticate.";break;case"USER_CREDENTIALS_CHANGED":g="Unable to refresh credentials because of a change in your password. Please reauthenticate with your new password.";break;case"INSUFFICIENT_PERMISSIONS":g="Unable to refresh credentials due to insufficient permissions. You may be missing permission for the 'CreateOAuth2Token' action.";break;default:g=`Failed to refresh token: ${String(d)}. Please re-authenticate using \`aws login\``}throw new Vl.CredentialsProviderError(g,{logger:this.logger,tryNextLink:!1})}throw new Vl.CredentialsProviderError(`Failed to refresh token: ${String(d)}. Please re-authenticate using aws login`,{logger:this.logger})}}async loadToken(){let e=this.getTokenFilePath();try{let r;try{r=await q6.readFile(e,{ignoreCache:this.init?.ignoreCache})}catch{r=await B6.promises.readFile(e,"utf8")}let n=JSON.parse(r),s=["accessToken","clientId","refreshToken","dpopKey"].filter(o=>!n[o]);if(n.accessToken?.accountId||s.push("accountId"),s.length>0)throw new Vl.CredentialsProviderError(`Token validation failed, missing fields: ${s.join(", ")}`,{logger:this.logger,tryNextLink:!1});return n}catch(r){throw new Vl.CredentialsProviderError(`Failed to load token from ${e}: ${String(r)}`,{logger:this.logger,tryNextLink:!1})}}async saveToken(e){let r=this.getTokenFilePath(),n=U6.dirname(r);try{await B6.promises.mkdir(n,{recursive:!0})}catch{}await B6.promises.writeFile(r,JSON.stringify(e,null,2),"utf8")}getTokenFilePath(){let e=process.env.AWS_LOGIN_CACHE_DIRECTORY??U6.join(iOt.homedir(),".aws","login","cache"),r=Buffer.from(this.loginSession,"utf8"),n=UN.createHash("sha256").update(r).digest("hex");return U6.join(e,`${n}.json`)}derToRawSignature(e){let r=2;if(e[r]!==2)throw new Error("Invalid DER signature");r++;let n=e[r++],s=e.subarray(r,r+n);if(r+=n,e[r]!==2)throw new Error("Invalid DER signature");r++;let o=e[r++],i=e.subarray(r,r+o);s=s[0]===0?s.subarray(1):s,i=i[0]===0?i.subarray(1):i;let a=Buffer.concat([Buffer.alloc(32-s.length),s]),c=Buffer.concat([Buffer.alloc(32-i.length),i]);return Buffer.concat([a,c])}createDPoPInterceptor(e){e.add(r=>async n=>{if(oOt.HttpRequest.isInstance(n.request)){let s=n.request,o=`${s.protocol}//${s.hostname}${s.port?`:${s.port}`:""}${s.path}`,i=await this.generateDpop(s.method,o);s.headers={...s.headers,DPoP:i}}return r(n)},{step:"finalizeRequest",name:"dpopInterceptor",override:!0})}async generateDpop(e="POST",r){let n=await this.loadToken();try{let s=UN.createPrivateKey({key:n.dpopKey,format:"pem",type:"sec1"}),i=UN.createPublicKey(s).export({format:"der",type:"spki"}),a=-1;for(let M=0;Masync({callerClientConfig:e}={})=>{t?.logger?.debug?.("@aws-sdk/credential-providers - fromLoginCredentials");let r=await q6.parseKnownFiles(t||{}),n=q6.getProfileName({profile:t?.profile??e?.profile}),s=r[n];if(!s?.login_session)throw new Vl.CredentialsProviderError(`Profile ${n} does not contain login_session.`,{tryNextLink:!0,logger:t?.logger});let i=await new $6(s,t,e).loadCredentials();return sOt.setCredentialFeature(i,"CREDENTIALS_LOGIN","AD")};Hke.fromLoginCredentials=aOt});var Wke=b(G6=>{"use strict";Object.defineProperty(G6,"__esModule",{value:!0});G6.toStream=uOt;var cOt=require("node:stream");function uOt(t){return cOt.Readable.from(Buffer.from(t))}});var Kke=b(qN=>{"use strict";var lOt=t=>typeof t=="string"&&t.indexOf("arn:")===0&&t.split(":").length>=6,dOt=t=>{let e=t.split(":");if(e.length<6||e[0]!=="arn")throw new Error("Malformed ARN");let[,r,n,s,o,...i]=e;return{partition:r,service:n,region:s,accountId:o,resource:i.join(":")}},pOt=t=>{let{partition:e="aws",service:r,region:n,accountId:s,resource:o}=t;if([r,n,s,o].some(i=>typeof i!="string"))throw new Error("Input ARN object is invalid");return`arn:${e}:${r}:${n}:${s}:${o}`};qN.build=pOt;qN.parse=dOt;qN.validate=lOt});var gNe=b(ht=>{"use strict";var S0=require("@smithy/protocol-http"),Jke=require("@smithy/smithy-client"),mOt=Wke(),gOt=Kke(),fOt=(Kf(),ue(awe)),hOt=require("@smithy/core/schema"),SOt=require("@smithy/signature-v4"),$N=require("@smithy/util-config-provider"),EOt=(Qc(),ue(lK)),Yke=require("@smithy/core"),yOt=require("@smithy/util-middleware"),_Ot="content-length",COt="x-amz-decoded-content-length";function Zke(){return(t,e)=>async r=>{let{request:n}=r;if(S0.HttpRequest.isInstance(n)&&!(_Ot in n.headers)&&!(COt in n.headers)){let s="Are you using a Stream of unknown length as the Body of a PutObject request? Consider using Upload instead from @aws-sdk/lib-storage.";typeof e?.logger?.warn=="function"&&!(e.logger instanceof Jke.NoOpLogger)?e.logger.warn(s):console.warn(s)}return t({...r})}}var eNe={step:"finalizeRequest",tags:["CHECK_CONTENT_LENGTH_HEADER"],name:"getCheckContentLengthHeaderPlugin",override:!0},ROt=t=>({applyToStack:e=>{e.add(Zke(),eNe)}}),tNe=t=>(e,r)=>async n=>{let s=await t.region(),o=t.region,i=()=>{};r.__s3RegionRedirect&&(Object.defineProperty(t,"region",{writable:!1,value:async()=>r.__s3RegionRedirect}),i=()=>Object.defineProperty(t,"region",{writable:!0,value:o}));try{let a=await e(n);if(r.__s3RegionRedirect){i();let c=await t.region();if(s!==c)throw new Error("Region was not restored following S3 region redirect.")}return a}catch(a){throw i(),a}},rNe={tags:["REGION_REDIRECT","S3"],name:"regionRedirectEndpointMiddleware",override:!0,relation:"before",toMiddleware:"endpointV2Middleware"};function nNe(t){return(e,r)=>async n=>{try{return await e(n)}catch(s){if(t.followRegionRedirects){let o=s?.$metadata?.httpStatusCode,i=r.commandName==="HeadBucketCommand",a=s?.$response?.headers?.["x-amz-bucket-region"];if(a&&(o===301||o===400&&(s?.name==="IllegalLocationConstraintException"||i))){try{let c=a;r.logger?.debug(`Redirecting from ${await t.region()} to ${c}`),r.__s3RegionRedirect=c}catch(c){throw new Error("Region redirect failed: "+c)}return e(n)}}throw s}}}var sNe={step:"initialize",tags:["REGION_REDIRECT","S3"],name:"regionRedirectMiddleware",override:!0},vOt=t=>({applyToStack:e=>{e.add(nNe(t),sNe),e.addRelativeTo(tNe(t),rNe)}}),oNe=t=>(e,r)=>async n=>{let s=await e(n),{response:o}=s;if(S0.HttpResponse.isInstance(o)&&o.headers.expires){o.headers.expiresstring=o.headers.expires;try{Jke.parseRfc7231DateTime(o.headers.expires)}catch(i){r.logger?.warn(`AWS SDK Warning for ${r.clientName}::${r.commandName} response parsing (${o.headers.expires}): ${i}`),delete o.headers.expires}}return s},iNe={tags:["S3"],name:"s3ExpiresMiddleware",override:!0,relation:"after",toMiddleware:"deserializerMiddleware"},xOt=t=>({applyToStack:e=>{e.addRelativeTo(oNe(),iNe)}}),GN=class t{data;lastPurgeTime=Date.now();static EXPIRED_CREDENTIAL_PURGE_INTERVAL_MS=3e4;constructor(e={}){this.data=e}get(e){let r=this.data[e];if(r)return r}set(e,r){return this.data[e]=r,r}delete(e){delete this.data[e]}async purgeExpired(){let e=Date.now();if(!(this.lastPurgeTime+t.EXPIRED_CREDENTIAL_PURGE_INTERVAL_MS>e))for(let r in this.data){let n=this.data[r];if(!n.isRefreshing){let s=await n.identity;s.expiration&&s.expiration.getTime()(i.expiration?.getTime()??0){s.set(n,new oh(Promise.resolve(u)))})),i)):s.set(n,new oh(this.getIdentity(n))).identity}async getIdentity(e){await this.cache.purgeExpired().catch(s=>{console.warn(`Error while clearing expired entries in S3ExpressIdentityCache: +`+s)});let r=await this.createSessionFn(e);if(!r.Credentials?.AccessKeyId||!r.Credentials?.SecretAccessKey)throw new Error("s3#createSession response credential missing AccessKeyId or SecretAccessKey.");return{accessKeyId:r.Credentials.AccessKeyId,secretAccessKey:r.Credentials.SecretAccessKey,sessionToken:r.Credentials.SessionToken,expiration:r.Credentials.Expiration?new Date(r.Credentials.Expiration):void 0}}},POt="Directory",bOt="S3Express",IOt="sigv4-s3express",j6="X-Amz-S3session-Token",V6=j6.toLowerCase(),AOt="AWS_S3_DISABLE_EXPRESS_SESSION_AUTH",TOt="s3_disable_express_session_auth",wOt={environmentVariableSelector:t=>$N.booleanSelector(t,AOt,$N.SelectorType.ENV),configFileSelector:t=>$N.booleanSelector(t,TOt,$N.SelectorType.CONFIG),default:!1},H6=class extends SOt.SignatureV4{async signWithCredentials(e,r,n){let s=Qke(r);e.headers[V6]=r.sessionToken;let o=this;return Xke(o,s),o.signRequest(e,n??{})}async presignWithCredentials(e,r,n){let s=Qke(r);return delete e.headers[V6],e.headers[j6]=r.sessionToken,e.query=e.query??{},e.query[j6]=r.sessionToken,Xke(this,s),this.presign(e,n)}};function Qke(t){return{accessKeyId:t.accessKeyId,secretAccessKey:t.secretAccessKey,expiration:t.expiration}}function Xke(t,e){let r=setTimeout(()=>{throw new Error("SignatureV4S3Express credential override was created but not called.")},10),n=t.credentialProvider,s=()=>(clearTimeout(r),t.credentialProvider=n,Promise.resolve(e));t.credentialProvider=s}var aNe=t=>(e,r)=>async n=>{if(r.endpointV2){let s=r.endpointV2,o=s.properties?.authSchemes?.[0]?.name===IOt;if((s.properties?.backend===bOt||s.properties?.bucketType===POt)&&(EOt.setFeature(r,"S3_EXPRESS_BUCKET","J"),r.isS3ExpressBucket=!0),o){let a=n.input.Bucket;if(a){let c=await t.s3ExpressIdentityProvider.getS3ExpressIdentity(await t.credentials(),{Bucket:a});r.s3ExpressIdentity=c,S0.HttpRequest.isInstance(n.request)&&c.sessionToken&&(n.request.headers[V6]=c.sessionToken)}}}return e(n)},cNe={name:"s3ExpressMiddleware",step:"build",tags:["S3","S3_EXPRESS"],override:!0},DOt=t=>({applyToStack:e=>{e.add(aNe(t),cNe)}}),OOt=async(t,e,r,n)=>{let s=await n.signWithCredentials(r,t,{});if(s.headers["X-Amz-Security-Token"]||s.headers["x-amz-security-token"])throw new Error("X-Amz-Security-Token must not be set for s3-express requests.");return s},kOt=t=>e=>{throw e},NOt=(t,e)=>{},LOt=Yke.httpSigningMiddlewareOptions,uNe=t=>(e,r)=>async n=>{if(!S0.HttpRequest.isInstance(n.request))return e(n);let o=yOt.getSmithyContext(r).selectedHttpAuthScheme;if(!o)throw new Error("No HttpAuthScheme was selected: unable to sign request");let{httpAuthOption:{signingProperties:i={}},identity:a,signer:c}=o,u;r.s3ExpressIdentity?u=await OOt(r.s3ExpressIdentity,i,n.request,await t.signer()):u=await c.sign(n.request,a,i);let l=await e({...n,request:u}).catch((c.errorHandler||kOt)(i));return(c.successHandler||NOt)(l.response,i),l},MOt=t=>({applyToStack:e=>{e.addRelativeTo(uNe(t),Yke.httpSigningMiddlewareOptions)}}),FOt=(t,{session:e})=>{let[r,n]=e,{forcePathStyle:s,useAccelerateEndpoint:o,disableMultiregionAccessPoints:i,followRegionRedirects:a,s3ExpressIdentityProvider:c,bucketEndpoint:u,expectContinueHeader:l}=t;return Object.assign(t,{forcePathStyle:s??!1,useAccelerateEndpoint:o??!1,disableMultiregionAccessPoints:i??!1,followRegionRedirects:a??!1,s3ExpressIdentityProvider:c??new jN(async d=>r().send(new n({Bucket:d}))),bucketEndpoint:u??!1,expectContinueHeader:l??2097152})},BOt={CopyObjectCommand:!0,UploadPartCopyCommand:!0,CompleteMultipartUploadCommand:!0},lNe=t=>(e,r)=>async n=>{let s=await e(n),{response:o}=s;if(!S0.HttpResponse.isInstance(o))return s;let{statusCode:i,body:a}=o;if(i<200||i>=300)return s;let c=await UOt(a,t);if(o.body=mOt.toStream(c),c.length===0&&BOt[r.commandName]){let l=new Error("S3 aborted request");throw l.$metadata={httpStatusCode:503},l.name="InternalError",l}let u=t.utf8Encoder(c.subarray(c.length-16));return u&&u.endsWith("")&&(o.statusCode=503),s},UOt=(t=new Uint8Array,e)=>t instanceof Uint8Array?Promise.resolve(t):e.streamCollector(t)||Promise.resolve(new Uint8Array),dNe={relation:"after",toMiddleware:"deserializerMiddleware",tags:["THROW_200_EXCEPTIONS","S3"],name:"throw200ExceptionsMiddleware",override:!0},qOt=t=>({applyToStack:e=>{e.addRelativeTo(lNe(t),dNe)}});function $Ot(t){return(e,r)=>async n=>{if(t.bucketEndpoint){let s=r.endpointV2;if(s){let o=n.input.Bucket;if(typeof o=="string")try{let i=new URL(o);r.endpointV2={...s,url:i}}catch(i){let a=`@aws-sdk/middleware-sdk-s3: bucketEndpoint=true was set but Bucket=${o} could not be parsed as URL.`;throw r.logger?.constructor?.name==="NoOpLogger"?console.warn(a):r.logger?.warn?.(a),i}}}return e(n)}}var GOt={name:"bucketEndpointMiddleware",override:!0,relation:"after",toMiddleware:"endpointV2Middleware"};function pNe({bucketEndpoint:t}){return e=>async r=>{let{input:{Bucket:n}}=r;if(!t&&typeof n=="string"&&!gOt.validate(n)&&n.indexOf("/")>=0){let s=new Error(`Bucket name shouldn't contain '/', received '${n}'`);throw s.name="InvalidBucketName",s}return e({...r})}}var mNe={step:"initialize",tags:["VALIDATE_BUCKET_NAME"],name:"validateBucketNameMiddleware",override:!0},jOt=t=>({applyToStack:e=>{e.add(pNe(t),mNe),e.addRelativeTo($Ot(t),GOt)}}),z6=class extends fOt.AwsRestXmlProtocol{async serializeRequest(e,r,n){let s=await super.serializeRequest(e,r,n),o=hOt.NormalizedSchema.of(e.input),i=o.getSchema(),a=0,c=i[6]??0;if(r&&typeof r=="object")for(let[u,l]of o.structIterator()){if(++a>c)break;if(u==="Bucket"){if(!r.Bucket&&l.getMergedTraits().httpLabel)throw new Error("No value provided for input HTTP label: Bucket.");break}}return s}};ht.NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_OPTIONS=wOt;ht.S3ExpressIdentityCache=GN;ht.S3ExpressIdentityCacheEntry=oh;ht.S3ExpressIdentityProviderImpl=jN;ht.S3RestXmlProtocol=z6;ht.SignatureV4S3Express=H6;ht.checkContentLengthHeader=Zke;ht.checkContentLengthHeaderMiddlewareOptions=eNe;ht.getCheckContentLengthHeaderPlugin=ROt;ht.getRegionRedirectMiddlewarePlugin=vOt;ht.getS3ExpiresMiddlewarePlugin=xOt;ht.getS3ExpressHttpSigningPlugin=MOt;ht.getS3ExpressPlugin=DOt;ht.getThrow200ExceptionsPlugin=qOt;ht.getValidateBucketNamePlugin=jOt;ht.regionRedirectEndpointMiddleware=tNe;ht.regionRedirectEndpointMiddlewareOptions=rNe;ht.regionRedirectMiddleware=nNe;ht.regionRedirectMiddlewareOptions=sNe;ht.resolveS3Config=FOt;ht.s3ExpiresMiddleware=oNe;ht.s3ExpiresMiddlewareOptions=iNe;ht.s3ExpressHttpSigningMiddleware=uNe;ht.s3ExpressHttpSigningMiddlewareOptions=LOt;ht.s3ExpressMiddleware=aNe;ht.s3ExpressMiddlewareOptions=cNe;ht.throw200ExceptionsMiddleware=lNe;ht.throw200ExceptionsMiddlewareOptions=dNe;ht.validateBucketNameMiddleware=pNe;ht.validateBucketNameMiddlewareOptions=mNe});var Q6=b(K6=>{"use strict";var VOt=gNe(),fNe=require("@smithy/signature-v4"),E0={CrtSignerV4:null},W6=class{sigv4aSigner;sigv4Signer;signerOptions;static sigv4aDependency(){return typeof E0.CrtSignerV4=="function"?"crt":typeof fNe.signatureV4aContainer.SignatureV4a=="function"?"js":"none"}constructor(e){this.sigv4Signer=new VOt.SignatureV4S3Express(e),this.signerOptions=e}async sign(e,r={}){return r.signingRegion==="*"?this.getSigv4aSigner().sign(e,r):this.sigv4Signer.sign(e,r)}async signWithCredentials(e,r,n={}){if(n.signingRegion==="*"){let s=this.getSigv4aSigner(),o=E0.CrtSignerV4;if(o&&s instanceof o)return s.signWithCredentials(e,r,n);throw new Error(`signWithCredentials with signingRegion '*' is only supported when using the CRT dependency @aws-sdk/signature-v4-crt. Please check whether you have installed the "@aws-sdk/signature-v4-crt" package explicitly. You must also register the package by calling [require("@aws-sdk/signature-v4-crt");] or an ESM equivalent such as [import "@aws-sdk/signature-v4-crt";]. For more information please go to https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt`)}return this.sigv4Signer.signWithCredentials(e,r,n)}async presign(e,r={}){if(r.signingRegion==="*"){let n=this.getSigv4aSigner(),s=E0.CrtSignerV4;if(s&&n instanceof s)return n.presign(e,r);throw new Error(`presign with signingRegion '*' is only supported when using the CRT dependency @aws-sdk/signature-v4-crt. Please check whether you have installed the "@aws-sdk/signature-v4-crt" package explicitly. You must also register the package by calling [require("@aws-sdk/signature-v4-crt");] or an ESM equivalent such as [import "@aws-sdk/signature-v4-crt";]. For more information please go to https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt`)}return this.sigv4Signer.presign(e,r)}async presignWithCredentials(e,r,n={}){if(n.signingRegion==="*")throw new Error("Method presignWithCredentials is not supported for [signingRegion=*].");return this.sigv4Signer.presignWithCredentials(e,r,n)}getSigv4aSigner(){if(!this.sigv4aSigner){let e=E0.CrtSignerV4,r=fNe.signatureV4aContainer.SignatureV4a;if(this.signerOptions.runtime==="node"){if(!e&&!r)throw new Error("Neither CRT nor JS SigV4a implementation is available. Please load either @aws-sdk/signature-v4-crt or @aws-sdk/signature-v4a. For more information please go to https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt");if(e&&typeof e=="function")this.sigv4aSigner=new e({...this.signerOptions,signingAlgorithm:1});else if(r&&typeof r=="function")this.sigv4aSigner=new r({...this.signerOptions});else throw new Error("Available SigV4a implementation is not a valid constructor. Please ensure you've properly imported @aws-sdk/signature-v4-crt or @aws-sdk/signature-v4a.For more information please go to https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt")}else{if(!r||typeof r!="function")throw new Error("JS SigV4a implementation is not available or not a valid constructor. Please check whether you have installed the @aws-sdk/signature-v4a package explicitly. The CRT implementation is not available for browsers. You must also register the package by calling [require('@aws-sdk/signature-v4a');] or an ESM equivalent such as [import '@aws-sdk/signature-v4a';]. For more information please go to https://github.com/aws/aws-sdk-js-v3#using-javascript-non-crt-implementation-of-sigv4a");this.sigv4aSigner=new r({...this.signerOptions})}}return this.sigv4aSigner}};K6.SignatureV4MultiRegion=W6;K6.signatureV4CrtContainer=E0});var xNe,ah,Ap,y0,hNe,PNe,_0,dn,X6,SNe,ENe,yNe,_Ne,CNe,pn,J6,ih,RNe,vNe,HOt,St,zOt,bNe,INe=_(()=>{xNe=require("@smithy/util-endpoints"),ah="ref",Ap=-1,y0=!0,hNe="isSet",PNe="PartitionResult",_0="booleanEquals",dn="stringEquals",X6="getAttr",SNe="us-east-1",ENe="sigv4",yNe="sts",_Ne="https://sts.{Region}.{PartitionResult#dnsSuffix}",CNe={[ah]:"Endpoint"},pn={[ah]:"Region"},J6={[ah]:PNe},ih={},RNe=[pn],vNe={conditions:[[hNe,[CNe]],[hNe,RNe],["aws.partition",RNe,PNe],[_0,[{[ah]:"UseFIPS"},y0]],[_0,[{[ah]:"UseDualStack"},y0]],[dn,[pn,"aws-global"]],[_0,[{[ah]:"UseGlobalEndpoint"},y0]],[dn,[pn,"eu-central-1"]],[_0,[{fn:X6,argv:[J6,"supportsDualStack"]},y0]],[_0,[{fn:X6,argv:[J6,"supportsFIPS"]},y0]],[dn,[pn,"ap-south-1"]],[dn,[pn,"eu-north-1"]],[dn,[pn,"eu-west-1"]],[dn,[pn,"eu-west-2"]],[dn,[pn,"eu-west-3"]],[dn,[pn,"sa-east-1"]],[dn,[pn,SNe]],[dn,[pn,"us-east-2"]],[dn,[pn,"us-west-2"]],[dn,[pn,"us-west-1"]],[dn,[pn,"ca-central-1"]],[dn,[pn,"ap-southeast-1"]],[dn,[pn,"ap-northeast-1"]],[dn,[pn,"ap-southeast-2"]],[dn,[{fn:X6,argv:[J6,"name"]},"aws-us-gov"]]],results:[[Ap],["https://sts.amazonaws.com",{authSchemes:[{name:ENe,signingName:yNe,signingRegion:SNe}]}],[_Ne,{authSchemes:[{name:ENe,signingName:yNe,signingRegion:"{Region}"}]}],[Ap,"Invalid Configuration: FIPS and custom endpoint are not supported"],[Ap,"Invalid Configuration: Dualstack and custom endpoint are not supported"],[CNe,ih],["https://sts-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",ih],[Ap,"FIPS and DualStack are enabled, but this partition does not support one or both"],["https://sts.{Region}.amazonaws.com",ih],["https://sts-fips.{Region}.{PartitionResult#dnsSuffix}",ih],[Ap,"FIPS is enabled but this partition does not support FIPS"],["https://sts.{Region}.{PartitionResult#dualStackDnsSuffix}",ih],[Ap,"DualStack is enabled but this partition does not support DualStack"],[_Ne,ih],[Ap,"Invalid Configuration: Missing Region"]]},HOt=2,St=1e8,zOt=new Int32Array([-1,1,-1,0,30,3,1,4,St+14,2,5,St+14,3,25,6,4,24,7,5,St+1,8,6,9,St+13,7,St+1,10,10,St+1,11,11,St+1,12,12,St+1,13,13,St+1,14,14,St+1,15,15,St+1,16,16,St+1,17,17,St+1,18,18,St+1,19,19,St+1,20,20,St+1,21,21,St+1,22,22,St+1,23,23,St+1,St+2,8,St+11,St+12,4,28,26,9,27,St+10,24,St+8,St+9,8,29,St+7,9,St+6,St+7,3,St+3,31,4,St+4,St+5]),bNe=xNe.BinaryDecisionDiagram.from(zOt,HOt,vNe.conditions,vNe.results)});var ANe,ch,WOt,VN,Y6=_(()=>{ANe=O(Uf()),ch=require("@smithy/util-endpoints");INe();WOt=new ch.EndpointCache({size:50,params:["Endpoint","Region","UseDualStack","UseFIPS","UseGlobalEndpoint"]}),VN=(t,e={})=>WOt.get(t,()=>(0,ch.decideEndpoint)(bNe,{endpointParams:t,logger:e.logger}));ch.customEndpointFunctions.aws=ANe.awsEndpointFunctions});function ONe(t){return{schemeId:"aws.auth#sigv4",signingProperties:{name:"sts",region:t.region},propertiesExtractor:(e,r)=>({signingProperties:{config:e,context:r}})}}function Z6(t){return{schemeId:"aws.auth#sigv4a",signingProperties:{name:"sts",region:t.region},propertiesExtractor:(e,r)=>({signingProperties:{config:e,context:r}})}}function kNe(t){return{schemeId:"smithy.api#noAuth"}}var TNe,wNe,uh,KOt,QOt,DNe,XOt,JOt,NNe,YOt,LNe,e9=_(()=>{io();TNe=O(Q6()),wNe=require("@smithy/middleware-endpoint"),uh=require("@smithy/util-middleware");Y6();C0();KOt=t=>async(e,r,n)=>{if(!n)throw new Error("Could not find `input` for `defaultEndpointRuleSetHttpAuthSchemeParametersProvider`");let s=await t(e,r,n),o=(0,uh.getSmithyContext)(r)?.commandInstance?.constructor?.getEndpointParameterInstructions;if(!o)throw new Error(`getEndpointParameterInstructions() is not defined on '${r.commandName}'`);let i=await(0,wNe.resolveParams)(n,{getEndpointParameterInstructions:o},e);return Object.assign(s,i)},QOt=async(t,e,r)=>({operation:(0,uh.getSmithyContext)(e).operation,region:await(0,uh.normalizeProvider)(t.region)()||(()=>{throw new Error("expected `region` to be configured for `aws.auth#sigv4`")})()}),DNe=KOt(QOt);XOt=(t,e,r)=>s=>{let i=t(s).properties?.authSchemes;if(!i)return e(s);let a=[];for(let c of i){let{name:u,properties:l={},...d}=c,p=u.toLowerCase();u!==p&&console.warn(`HttpAuthScheme has been normalized with lowercasing: '${u}' to '${p}'`);let g;if(p==="sigv4a"){g="aws.auth#sigv4a";let D=i.find(B=>{let M=B.name.toLowerCase();return M!=="sigv4a"&&M.startsWith("sigv4")});if(TNe.SignatureV4MultiRegion.sigv4aDependency()==="none"&&D)continue}else if(p.startsWith("sigv4"))g="aws.auth#sigv4";else throw new Error(`Unknown HttpAuthScheme found in '@smithy.rules#endpointRuleSet': '${p}'`);let y=r[g];if(!y)throw new Error(`Could not find HttpAuthOption create function for '${g}'`);let R=y(s);R.schemeId=g,R.signingProperties={...R.signingProperties||{},...d,...l},a.push(R)}return a},JOt=t=>{let e=[];switch(t.operation){case"AssumeRoleWithWebIdentity":{e.push(kNe(t)),e.push(Z6(t));break}default:e.push(ONe(t)),e.push(Z6(t))}return e},NNe=XOt(VN,JOt,{"aws.auth#sigv4":ONe,"aws.auth#sigv4a":Z6,"smithy.api#noAuth":kNe}),YOt=t=>Object.assign(t,{stsClientCtor:Ha}),LNe=t=>{let e=YOt(t),r=kl(e),n=sTe(r);return Object.assign(n,{authSchemePreference:(0,uh.normalizeProvider)(t.authSchemePreference??[])})}});var MNe,HN,zN=_(()=>{MNe=t=>Object.assign(t,{useDualstackEndpoint:t.useDualstackEndpoint??!1,useFipsEndpoint:t.useFipsEndpoint??!1,useGlobalEndpoint:t.useGlobalEndpoint??!1,defaultSigningName:"sts"}),HN={UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}});var FNe,bs,WN=_(()=>{FNe=require("@smithy/smithy-client"),bs=class t extends FNe.ServiceException{constructor(e){super(e),Object.setPrototypeOf(this,t.prototype)}}});var R0,v0,x0,P0,b0,I0,A0,t9=_(()=>{WN();R0=class t extends bs{name="ExpiredTokenException";$fault="client";constructor(e){super({name:"ExpiredTokenException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},v0=class t extends bs{name="MalformedPolicyDocumentException";$fault="client";constructor(e){super({name:"MalformedPolicyDocumentException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},x0=class t extends bs{name="PackedPolicyTooLargeException";$fault="client";constructor(e){super({name:"PackedPolicyTooLargeException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},P0=class t extends bs{name="RegionDisabledException";$fault="client";constructor(e){super({name:"RegionDisabledException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},b0=class t extends bs{name="IDPRejectedClaimException";$fault="client";constructor(e){super({name:"IDPRejectedClaimException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},I0=class t extends bs{name="InvalidIdentityTokenException";$fault="client";constructor(e){super({name:"InvalidIdentityTokenException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},A0=class t extends bs{name="IDPCommunicationErrorException";$fault="client";$retryable={};constructor(e){super({name:"IDPCommunicationErrorException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}}});var o9,ZOt,ekt,tkt,rkt,nkt,skt,r9,okt,ikt,akt,ckt,n9,ukt,BNe,lkt,dkt,pkt,mkt,gkt,fkt,hkt,Skt,UNe,qNe,Ekt,ykt,_kt,Ckt,Rkt,vkt,$Ne,xkt,Pkt,GNe,bkt,jNe,Ikt,Akt,s9,Tkt,wkt,Dkt,Okt,kkt,Nkt,Lkt,Mkt,Fkt,Bkt,Tp,wp,Ukt,Dp,Op,kp,qkt,VNe,$kt,Jt,HNe,zNe,Hl,WNe,KNe,QNe,XNe,JNe,YNe,ZNe,i9,Gkt,jkt,a9,eLe,tLe,rLe,nLe,c9,sLe,oLe,iLe,aLe,Vkt,Hkt,u9,l9,T0=_(()=>{o9=require("@smithy/core/schema");t9();WN();ZOt="Arn",ekt="AccessKeyId",tkt="AssumeRole",rkt="AssumedRoleId",nkt="AssumeRoleRequest",skt="AssumeRoleResponse",r9="AssumedRoleUser",okt="AssumeRoleWithWebIdentity",ikt="AssumeRoleWithWebIdentityRequest",akt="AssumeRoleWithWebIdentityResponse",ckt="Audience",n9="Credentials",ukt="ContextAssertion",BNe="DurationSeconds",lkt="Expiration",dkt="ExternalId",pkt="ExpiredTokenException",mkt="IDPCommunicationErrorException",gkt="IDPRejectedClaimException",fkt="InvalidIdentityTokenException",hkt="Key",Skt="MalformedPolicyDocumentException",UNe="Policy",qNe="PolicyArns",Ekt="ProviderArn",ykt="ProvidedContexts",_kt="ProvidedContextsListType",Ckt="ProvidedContext",Rkt="PolicyDescriptorType",vkt="ProviderId",$Ne="PackedPolicySize",xkt="PackedPolicyTooLargeException",Pkt="Provider",GNe="RoleArn",bkt="RegionDisabledException",jNe="RoleSessionName",Ikt="SecretAccessKey",Akt="SubjectFromWebIdentityToken",s9="SourceIdentity",Tkt="SerialNumber",wkt="SessionToken",Dkt="Tags",Okt="TokenCode",kkt="TransitiveTagKeys",Nkt="Tag",Lkt="Value",Mkt="WebIdentityToken",Fkt="arn",Bkt="accessKeySecretType",Tp="awsQueryError",wp="client",Ukt="clientTokenType",Dp="error",Op="httpError",kp="message",qkt="policyDescriptorListType",VNe="smithy.ts.sdk.synthetic.com.amazonaws.sts",$kt="tagListType",Jt="com.amazonaws.sts",HNe=o9.TypeRegistry.for(VNe),zNe=[-3,VNe,"STSServiceException",0,[],[]];HNe.registerError(zNe,bs);Hl=o9.TypeRegistry.for(Jt),WNe=[-3,Jt,pkt,{[Tp]:["ExpiredTokenException",400],[Dp]:wp,[Op]:400},[kp],[0]];Hl.registerError(WNe,R0);KNe=[-3,Jt,mkt,{[Tp]:["IDPCommunicationError",400],[Dp]:wp,[Op]:400},[kp],[0]];Hl.registerError(KNe,A0);QNe=[-3,Jt,gkt,{[Tp]:["IDPRejectedClaim",403],[Dp]:wp,[Op]:403},[kp],[0]];Hl.registerError(QNe,b0);XNe=[-3,Jt,fkt,{[Tp]:["InvalidIdentityToken",400],[Dp]:wp,[Op]:400},[kp],[0]];Hl.registerError(XNe,I0);JNe=[-3,Jt,Skt,{[Tp]:["MalformedPolicyDocument",400],[Dp]:wp,[Op]:400},[kp],[0]];Hl.registerError(JNe,v0);YNe=[-3,Jt,xkt,{[Tp]:["PackedPolicyTooLarge",400],[Dp]:wp,[Op]:400},[kp],[0]];Hl.registerError(YNe,x0);ZNe=[-3,Jt,bkt,{[Tp]:["RegionDisabledException",403],[Dp]:wp,[Op]:403},[kp],[0]];Hl.registerError(ZNe,P0);i9=[HNe,Hl],Gkt=[0,Jt,Bkt,8,0],jkt=[0,Jt,Ukt,8,0],a9=[3,Jt,r9,0,[rkt,ZOt],[0,0],2],eLe=[3,Jt,nkt,0,[GNe,jNe,qNe,UNe,BNe,Dkt,kkt,dkt,Tkt,Okt,s9,ykt],[0,0,()=>aLe,0,1,()=>Hkt,64,0,0,0,0,()=>Vkt],2],tLe=[3,Jt,skt,0,[n9,r9,$Ne,s9],[[()=>c9,0],()=>a9,1,0]],rLe=[3,Jt,ikt,0,[GNe,jNe,Mkt,vkt,qNe,UNe,BNe],[0,0,[()=>jkt,0],0,()=>aLe,0,1],3],nLe=[3,Jt,akt,0,[n9,Akt,r9,$Ne,Pkt,ckt,s9],[[()=>c9,0],0,()=>a9,1,0,0,0]],c9=[3,Jt,n9,0,[ekt,Ikt,wkt,lkt],[0,[()=>Gkt,0],0,4],4],sLe=[3,Jt,Rkt,0,[Fkt],[0]],oLe=[3,Jt,Ckt,0,[Ekt,ukt],[0,0]],iLe=[3,Jt,Nkt,0,[hkt,Lkt],[0,0],2],aLe=[1,Jt,qkt,0,()=>sLe],Vkt=[1,Jt,_kt,0,()=>oLe],Hkt=[1,Jt,$kt,0,()=>iLe],u9=[9,Jt,tkt,0,()=>eLe,()=>tLe],l9=[9,Jt,okt,0,()=>rLe,()=>nLe]});var cLe,uLe,lLe,dLe,KN,QN,pLe,mLe=_(()=>{io();Kf();cLe=O(Q6()),uLe=require("@smithy/core"),lLe=require("@smithy/smithy-client"),dLe=require("@smithy/url-parser"),KN=require("@smithy/util-base64"),QN=require("@smithy/util-utf8");e9();Y6();T0();pLe=t=>({apiVersion:"2011-06-15",base64Decoder:t?.base64Decoder??KN.fromBase64,base64Encoder:t?.base64Encoder??KN.toBase64,disableHostPrefix:t?.disableHostPrefix??!1,endpointProvider:t?.endpointProvider??VN,extensions:t?.extensions??[],httpAuthSchemeProvider:t?.httpAuthSchemeProvider??NNe,httpAuthSchemes:t?.httpAuthSchemes??[{schemeId:"aws.auth#sigv4",identityProvider:e=>e.getIdentityProvider("aws.auth#sigv4"),signer:new Zn},{schemeId:"aws.auth#sigv4a",identityProvider:e=>e.getIdentityProvider("aws.auth#sigv4a"),signer:new Sp},{schemeId:"smithy.api#noAuth",identityProvider:e=>e.getIdentityProvider("smithy.api#noAuth")||(async()=>({})),signer:new uLe.NoAuthSigner}],logger:t?.logger??new lLe.NoOpLogger,protocol:t?.protocol??vp,protocolSettings:t?.protocolSettings??{defaultNamespace:"com.amazonaws.sts",errorTypeRegistries:i9,xmlNamespace:"https://sts.amazonaws.com/doc/2011-06-15/",version:"2011-06-15",serviceTarget:"AWSSecurityTokenServiceV20110615"},serviceId:t?.serviceId??"STS",signerConstructor:t?.signerConstructor??cLe.SignatureV4MultiRegion,urlParser:t?.urlParser??dLe.parseUrl,utf8Decoder:t?.utf8Decoder??QN.fromUtf8,utf8Encoder:t?.utf8Encoder??QN.toUtf8})});var XN,zl,gLe,fLe,JN,Zc,YN,ZN,hLe,SLe,ELe,yLe,_Le=_(()=>{CC();Qc();io();XN=O(vC()),zl=require("@smithy/config-resolver"),gLe=require("@smithy/core"),fLe=require("@smithy/hash-node"),JN=require("@smithy/middleware-retry"),Zc=require("@smithy/node-config-provider"),YN=require("@smithy/node-http-handler"),ZN=require("@smithy/smithy-client"),hLe=require("@smithy/util-body-length-node"),SLe=require("@smithy/util-defaults-mode-node"),ELe=require("@smithy/util-retry");mLe();yLe=t=>{(0,ZN.emitWarningIfUnsupportedVersion)(process.version);let e=(0,SLe.resolveDefaultsModeConfig)(t),r=()=>e().then(ZN.loadConfigsForDefaultMode),n=pLe(t);Kc(process.version);let s={profile:t?.profile,logger:n.logger};return{...n,...t,runtime:"node",defaultsMode:e,authSchemePreference:t?.authSchemePreference??(0,Zc.loadConfig)(Ol,s),bodyLengthChecker:t?.bodyLengthChecker??hLe.calculateBodyLength,defaultUserAgentProvider:t?.defaultUserAgentProvider??(0,XN.createDefaultUserAgentProvider)({serviceId:n.serviceId,clientVersion:Nl.version}),httpAuthSchemes:t?.httpAuthSchemes??[{schemeId:"aws.auth#sigv4",identityProvider:o=>o.getIdentityProvider("aws.auth#sigv4")||(async i=>await t.credentialDefaultProvider(i?.__config||{})()),signer:new Zn},{schemeId:"aws.auth#sigv4a",identityProvider:o=>o.getIdentityProvider("aws.auth#sigv4a"),signer:new Sp},{schemeId:"smithy.api#noAuth",identityProvider:o=>o.getIdentityProvider("smithy.api#noAuth")||(async()=>({})),signer:new gLe.NoAuthSigner}],maxAttempts:t?.maxAttempts??(0,Zc.loadConfig)(JN.NODE_MAX_ATTEMPT_CONFIG_OPTIONS,t),region:t?.region??(0,Zc.loadConfig)(zl.NODE_REGION_CONFIG_OPTIONS,{...zl.NODE_REGION_CONFIG_FILE_OPTIONS,...s}),requestHandler:YN.NodeHttpHandler.create(t?.requestHandler??r),retryMode:t?.retryMode??(0,Zc.loadConfig)({...JN.NODE_RETRY_MODE_CONFIG_OPTIONS,default:async()=>(await r()).retryMode||ELe.DEFAULT_RETRY_MODE},t),sha256:t?.sha256??fLe.Hash.bind(null,"sha256"),sigv4aSigningRegionSet:t?.sigv4aSigningRegionSet??(0,Zc.loadConfig)(oTe,s),streamCollector:t?.streamCollector??YN.streamCollector,useDualstackEndpoint:t?.useDualstackEndpoint??(0,Zc.loadConfig)(zl.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS,s),useFipsEndpoint:t?.useFipsEndpoint??(0,Zc.loadConfig)(zl.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS,s),userAgentAppId:t?.userAgentAppId??(0,Zc.loadConfig)(XN.NODE_APP_ID_CONFIG_OPTIONS,s)}}});var CLe,RLe,vLe=_(()=>{CLe=t=>{let e=t.httpAuthSchemes,r=t.httpAuthSchemeProvider,n=t.credentials;return{setHttpAuthScheme(s){let o=e.findIndex(i=>i.schemeId===s.schemeId);o===-1?e.push(s):e.splice(o,1,s)},httpAuthSchemes(){return e},setHttpAuthSchemeProvider(s){r=s},httpAuthSchemeProvider(){return r},setCredentials(s){n=s},credentials(){return n}}},RLe=t=>({httpAuthSchemes:t.httpAuthSchemes(),httpAuthSchemeProvider:t.httpAuthSchemeProvider(),credentials:t.credentials()})});var eL,tL,rL,xLe,PLe=_(()=>{eL=O(Yf()),tL=require("@smithy/protocol-http"),rL=require("@smithy/smithy-client");vLe();xLe=(t,e)=>{let r=Object.assign((0,eL.getAwsRegionExtensionConfiguration)(t),(0,rL.getDefaultExtensionConfiguration)(t),(0,tL.getHttpHandlerExtensionConfiguration)(t),CLe(t));return e.forEach(n=>n.configure(r)),Object.assign(t,(0,eL.resolveAwsRegionExtensionConfiguration)(r),(0,rL.resolveDefaultRuntimeConfig)(r),(0,tL.resolveHttpHandlerRuntimeConfig)(r),RLe(r))}});var nL,bLe,ILe,sL,ALe,lh,TLe,wLe,DLe,oL,d9,Ha,C0=_(()=>{nL=O(fC()),bLe=O(hC()),ILe=O(EC()),sL=O($f()),ALe=require("@smithy/config-resolver"),lh=require("@smithy/core"),TLe=require("@smithy/core/schema"),wLe=require("@smithy/middleware-content-length"),DLe=require("@smithy/middleware-endpoint"),oL=require("@smithy/middleware-retry"),d9=require("@smithy/smithy-client");e9();zN();_Le();PLe();Ha=class extends d9.Client{config;constructor(...[e]){let r=yLe(e||{});super(r),this.initConfig=r;let n=MNe(r),s=(0,sL.resolveUserAgentConfig)(n),o=(0,oL.resolveRetryConfig)(s),i=(0,ALe.resolveRegionConfig)(o),a=(0,nL.resolveHostHeaderConfig)(i),c=(0,DLe.resolveEndpointConfig)(a),u=LNe(c),l=xLe(u,e?.extensions||[]);this.config=l,this.middlewareStack.use((0,TLe.getSchemaSerdePlugin)(this.config)),this.middlewareStack.use((0,sL.getUserAgentPlugin)(this.config)),this.middlewareStack.use((0,oL.getRetryPlugin)(this.config)),this.middlewareStack.use((0,wLe.getContentLengthPlugin)(this.config)),this.middlewareStack.use((0,nL.getHostHeaderPlugin)(this.config)),this.middlewareStack.use((0,bLe.getLoggerPlugin)(this.config)),this.middlewareStack.use((0,ILe.getRecursionDetectionPlugin)(this.config)),this.middlewareStack.use((0,lh.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config,{httpAuthSchemeParametersProvider:DNe,identityProviderConfigProvider:async d=>new lh.DefaultIdentityProviderConfig({"aws.auth#sigv4":d.credentials,"aws.auth#sigv4a":d.credentials})})),this.middlewareStack.use((0,lh.getHttpSigningPlugin)(this.config))}destroy(){super.destroy()}}});var OLe,kLe,Np,iL=_(()=>{OLe=require("@smithy/middleware-endpoint"),kLe=require("@smithy/smithy-client");zN();T0();Np=class extends kLe.Command.classBuilder().ep(HN).m(function(e,r,n,s){return[(0,OLe.getEndpointPlugin)(n,e.getEndpointParameterInstructions())]}).s("AWSSecurityTokenServiceV20110615","AssumeRole",{}).n("STSClient","AssumeRoleCommand").sc(u9).build(){}});var NLe,LLe,Lp,aL=_(()=>{NLe=require("@smithy/middleware-endpoint"),LLe=require("@smithy/smithy-client");zN();T0();Lp=class extends LLe.Command.classBuilder().ep(HN).m(function(e,r,n,s){return[(0,NLe.getEndpointPlugin)(n,e.getEndpointParameterInstructions())]}).s("AWSSecurityTokenServiceV20110615","AssumeRoleWithWebIdentity",{}).n("STSClient","AssumeRoleWithWebIdentityCommand").sc(l9).build(){}});var MLe,zkt,cL,FLe=_(()=>{MLe=require("@smithy/smithy-client");iL();aL();C0();zkt={AssumeRoleCommand:Np,AssumeRoleWithWebIdentityCommand:Lp},cL=class extends Ha{};(0,MLe.createAggregatedClient)(zkt,cL)});var BLe=_(()=>{iL();aL()});var ULe=_(()=>{});var qLe,$Le,GLe,jLe,VLe,HLe,zLe=_(()=>{Qc();qLe=O(Yf());iL();aL();$Le=t=>{if(typeof t?.Arn=="string"){let e=t.Arn.split(":");if(e.length>4&&e[4]!=="")return e[4]}},GLe=async(t,e,r,n={})=>{let s=typeof t=="function"?await t():t,o=typeof e=="function"?await e():e,i="",a=s??o??(i=await(0,qLe.stsRegionDefaultResolver)(n)());return r?.debug?.("@aws-sdk/client-sts::resolveRegion","accepting first of:",`${s} (credential provider clientConfig)`,`${o} (contextual client)`,`${i} (STS default: AWS_REGION, profile region, or us-east-1)`),a},jLe=(t,e)=>{let r,n;return async(s,o)=>{if(n=s,!r){let{logger:l=t?.parentClientConfig?.logger,profile:d=t?.parentClientConfig?.profile,region:p,requestHandler:g=t?.parentClientConfig?.requestHandler,credentialProviderLogger:y,userAgentAppId:R=t?.parentClientConfig?.userAgentAppId}=t,D=await GLe(p,t?.parentClientConfig?.region,y,{logger:l,profile:d}),B=!HLe(g);r=new e({...t,userAgentAppId:R,profile:d,credentialDefaultProvider:()=>async()=>n,region:D,requestHandler:B?g:void 0,logger:l})}let{Credentials:i,AssumedRoleUser:a}=await r.send(new Np(o));if(!i||!i.AccessKeyId||!i.SecretAccessKey)throw new Error(`Invalid response from STS.assumeRole call with role ${o.RoleArn}`);let c=$Le(a),u={accessKeyId:i.AccessKeyId,secretAccessKey:i.SecretAccessKey,sessionToken:i.SessionToken,expiration:i.Expiration,...i.CredentialScope&&{credentialScope:i.CredentialScope},...c&&{accountId:c}};return hp(u,"CREDENTIALS_STS_ASSUME_ROLE","i"),u}},VLe=(t,e)=>{let r;return async n=>{if(!r){let{logger:c=t?.parentClientConfig?.logger,profile:u=t?.parentClientConfig?.profile,region:l,requestHandler:d=t?.parentClientConfig?.requestHandler,credentialProviderLogger:p,userAgentAppId:g=t?.parentClientConfig?.userAgentAppId}=t,y=await GLe(l,t?.parentClientConfig?.region,p,{logger:c,profile:u}),R=!HLe(d);r=new e({...t,userAgentAppId:g,profile:u,region:y,requestHandler:R?d:void 0,logger:c})}let{Credentials:s,AssumedRoleUser:o}=await r.send(new Lp(n));if(!s||!s.AccessKeyId||!s.SecretAccessKey)throw new Error(`Invalid response from STS.assumeRoleWithWebIdentity call with role ${n.RoleArn}`);let i=$Le(o),a={accessKeyId:s.AccessKeyId,secretAccessKey:s.SecretAccessKey,sessionToken:s.SessionToken,expiration:s.Expiration,...s.CredentialScope&&{credentialScope:s.CredentialScope},...i&&{accountId:i}};return i&&hp(a,"RESOLVED_ACCOUNT_ID","T"),hp(a,"CREDENTIALS_STS_ASSUME_ROLE_WEB_ID","k"),a}},HLe=t=>t?.metadata?.handlerProtocol==="h2"});var WLe,KLe,QLe,Wkt,XLe=_(()=>{zLe();C0();WLe=(t,e)=>e?class extends t{constructor(n){super(n);for(let s of e)this.middlewareStack.use(s)}}:t,KLe=(t={},e)=>jLe(t,WLe(Ha,e)),QLe=(t={},e)=>VLe(t,WLe(Ha,e)),Wkt=t=>e=>t({roleAssumer:KLe(e),roleAssumerWithWebIdentity:QLe(e),...e})});var p9={};wt(p9,{AssumeRole$:()=>u9,AssumeRoleCommand:()=>Np,AssumeRoleRequest$:()=>eLe,AssumeRoleResponse$:()=>tLe,AssumeRoleWithWebIdentity$:()=>l9,AssumeRoleWithWebIdentityCommand:()=>Lp,AssumeRoleWithWebIdentityRequest$:()=>rLe,AssumeRoleWithWebIdentityResponse$:()=>nLe,AssumedRoleUser$:()=>a9,Credentials$:()=>c9,ExpiredTokenException:()=>R0,ExpiredTokenException$:()=>WNe,IDPCommunicationErrorException:()=>A0,IDPCommunicationErrorException$:()=>KNe,IDPRejectedClaimException:()=>b0,IDPRejectedClaimException$:()=>QNe,InvalidIdentityTokenException:()=>I0,InvalidIdentityTokenException$:()=>XNe,MalformedPolicyDocumentException:()=>v0,MalformedPolicyDocumentException$:()=>JNe,PackedPolicyTooLargeException:()=>x0,PackedPolicyTooLargeException$:()=>YNe,PolicyDescriptorType$:()=>sLe,ProvidedContext$:()=>oLe,RegionDisabledException:()=>P0,RegionDisabledException$:()=>ZNe,STS:()=>cL,STSClient:()=>Ha,STSServiceException:()=>bs,STSServiceException$:()=>zNe,Tag$:()=>iLe,__Client:()=>d9.Client,decorateDefaultCredentialProvider:()=>Wkt,errorTypeRegistries:()=>i9,getDefaultRoleAssumer:()=>KLe,getDefaultRoleAssumerWithWebIdentity:()=>QLe});var m9=_(()=>{C0();FLe();BLe();T0();t9();ULe();XLe();WN()});var h9=b(JLe=>{"use strict";var f9=require("@smithy/shared-ini-file-loader"),g9=require("@smithy/property-provider"),Kkt=require("node:child_process"),Qkt=require("node:util"),Xkt=(Ko(),ue(Ga)),Jkt=(t,e,r)=>{if(e.Version!==1)throw Error(`Profile ${t} credential_process did not return Version 1.`);if(e.AccessKeyId===void 0||e.SecretAccessKey===void 0)throw Error(`Profile ${t} credential_process returned invalid credentials.`);if(e.Expiration){let o=new Date;if(new Date(e.Expiration){let n=e[t];if(e[t]){let s=n.credential_process;if(s!==void 0){let o=Qkt.promisify(f9.externalDataInterceptor?.getTokenRecord?.().exec??Kkt.exec);try{let{stdout:i}=await o(s),a;try{a=JSON.parse(i.trim())}catch{throw Error(`Profile ${t} credential_process returned invalid JSON.`)}return Jkt(t,a,e)}catch(i){throw new g9.CredentialsProviderError(i.message,{logger:r})}}else throw new g9.CredentialsProviderError(`Profile ${t} did not contain credential_process.`,{logger:r})}else throw new g9.CredentialsProviderError(`Profile ${t} could not be found in shared credentials file.`,{logger:r})},Zkt=(t={})=>async({callerClientConfig:e}={})=>{t.logger?.debug("@aws-sdk/credential-provider-process - fromProcess");let r=await f9.parseKnownFiles(t);return Ykt(f9.getProfileName({profile:t.profile??e?.profile}),r,t.logger)};JLe.fromProcess=Zkt});var S9=b(za=>{"use strict";var eNt=za&&za.__createBinding||(Object.create?function(t,e,r,n){n===void 0&&(n=r);var s=Object.getOwnPropertyDescriptor(e,r);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,n,s)}:function(t,e,r,n){n===void 0&&(n=r),t[n]=e[r]}),tNt=za&&za.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),rNt=za&&za.__importStar||function(){var t=function(e){return t=Object.getOwnPropertyNames||function(r){var n=[];for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(n[n.length]=s);return n},t(e)};return function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var n=t(e),s=0;sasync e=>{t.logger?.debug("@aws-sdk/credential-provider-web-identity - fromWebToken");let{roleArn:r,roleSessionName:n,webIdentityToken:s,providerId:o,policyArns:i,policy:a,durationSeconds:c}=t,{roleAssumerWithWebIdentity:u}=t;if(!u){let{getDefaultRoleAssumerWithWebIdentity:l}=await Promise.resolve().then(()=>rNt((m9(),ue(p9))));u=l({...t.clientConfig,credentialProviderLogger:t.logger,parentClientConfig:{...e?.callerClientConfig,...t.parentClientConfig}},t.clientPlugins)}return u({RoleArn:r,RoleSessionName:n??`aws-sdk-js-session-${Date.now()}`,WebIdentityToken:s,ProviderId:o,PolicyArns:i,Policy:a,DurationSeconds:c})};za.fromWebToken=nNt});var ZLe=b(uL=>{"use strict";Object.defineProperty(uL,"__esModule",{value:!0});uL.fromTokenFile=void 0;var sNt=(Ko(),ue(Ga)),oNt=require("@smithy/property-provider"),iNt=require("@smithy/shared-ini-file-loader"),aNt=require("node:fs"),cNt=S9(),YLe="AWS_WEB_IDENTITY_TOKEN_FILE",uNt="AWS_ROLE_ARN",lNt="AWS_ROLE_SESSION_NAME",dNt=(t={})=>async e=>{t.logger?.debug("@aws-sdk/credential-provider-web-identity - fromTokenFile");let r=t?.webIdentityTokenFile??process.env[YLe],n=t?.roleArn??process.env[uNt],s=t?.roleSessionName??process.env[lNt];if(!r||!n)throw new oNt.CredentialsProviderError("Web identity configuration not specified",{logger:t.logger});let o=await(0,cNt.fromWebToken)({...t,webIdentityToken:iNt.externalDataInterceptor?.getTokenRecord?.()[r]??(0,aNt.readFileSync)(r,{encoding:"ascii"}),roleArn:n,roleSessionName:s})(e);return r===process.env[YLe]&&(0,sNt.setCredentialFeature)(o,"CREDENTIALS_ENV_VARS_STS_WEB_ID_TOKEN","h"),o};uL.fromTokenFile=dNt});var E9=b(eu=>{"use strict";var lL=ZLe(),dL=S9();Object.prototype.hasOwnProperty.call(lL,"__proto__")&&!Object.prototype.hasOwnProperty.call(eu,"__proto__")&&Object.defineProperty(eu,"__proto__",{enumerable:!0,value:lL.__proto__});Object.keys(lL).forEach(function(t){t!=="default"&&!Object.prototype.hasOwnProperty.call(eu,t)&&(eu[t]=lL[t])});Object.prototype.hasOwnProperty.call(dL,"__proto__")&&!Object.prototype.hasOwnProperty.call(eu,"__proto__")&&Object.defineProperty(eu,"__proto__",{enumerable:!0,value:dL.__proto__});Object.keys(dL).forEach(function(t){t!=="default"&&!Object.prototype.hasOwnProperty.call(eu,t)&&(eu[t]=dL[t])})});var oMe=b(sMe=>{"use strict";var _9=require("@smithy/shared-ini-file-loader"),w0=require("@smithy/property-provider"),tu=(Ko(),ue(Ga)),pNt=zke(),mNt=(t,e,r)=>{let n={EcsContainer:async s=>{let{fromHttp:o}=await Promise.resolve().then(()=>O(cK())),{fromContainerMetadata:i}=await import("@smithy/credential-provider-imds");return r?.debug("@aws-sdk/credential-provider-ini - credential_source is EcsContainer"),async()=>w0.chain(o(s??{}),i(s))().then(y9)},Ec2InstanceMetadata:async s=>{r?.debug("@aws-sdk/credential-provider-ini - credential_source is Ec2InstanceMetadata");let{fromInstanceMetadata:o}=await import("@smithy/credential-provider-imds");return async()=>o(s)().then(y9)},Environment:async s=>{r?.debug("@aws-sdk/credential-provider-ini - credential_source is Environment");let{fromEnv:o}=await Promise.resolve().then(()=>O(iK()));return async()=>o(s)().then(y9)}};if(t in n)return n[t];throw new w0.CredentialsProviderError(`Unsupported credential source in profile ${e}. Got ${t}, expected EcsContainer or Ec2InstanceMetadata or Environment.`,{logger:r})},y9=t=>tu.setCredentialFeature(t,"CREDENTIALS_PROFILE_NAMED_PROVIDER","p"),gNt=(t,{profile:e="default",logger:r}={})=>!!t&&typeof t=="object"&&typeof t.role_arn=="string"&&["undefined","string"].indexOf(typeof t.role_session_name)>-1&&["undefined","string"].indexOf(typeof t.external_id)>-1&&["undefined","string"].indexOf(typeof t.mfa_serial)>-1&&(fNt(t,{profile:e,logger:r})||hNt(t,{profile:e,logger:r})),fNt=(t,{profile:e,logger:r})=>{let n=typeof t.source_profile=="string"&&typeof t.credential_source>"u";return n&&r?.debug?.(` ${e} isAssumeRoleWithSourceProfile source_profile=${t.source_profile}`),n},hNt=(t,{profile:e,logger:r})=>{let n=typeof t.credential_source=="string"&&typeof t.source_profile>"u";return n&&r?.debug?.(` ${e} isCredentialSourceProfile credential_source=${t.credential_source}`),n},SNt=async(t,e,r,n,s={},o)=>{r.logger?.debug("@aws-sdk/credential-provider-ini - resolveAssumeRoleCredentials (STS)");let i=e[t],{source_profile:a,region:c}=i;if(!r.roleAssumer){let{getDefaultRoleAssumer:l}=await Promise.resolve().then(()=>(m9(),p9));r.roleAssumer=l({...r.clientConfig,credentialProviderLogger:r.logger,parentClientConfig:{...n,...r?.parentClientConfig,region:c??r?.parentClientConfig?.region??n?.region}},r.clientPlugins)}if(a&&a in s)throw new w0.CredentialsProviderError(`Detected a cycle attempting to resolve credentials for profile ${_9.getProfileName(r)}. Profiles visited: `+Object.keys(s).join(", "),{logger:r.logger});r.logger?.debug(`@aws-sdk/credential-provider-ini - finding credential resolver using ${a?`source_profile=[${a}]`:`profile=[${t}]`}`);let u=a?o(a,e,r,n,{...s,[a]:!0},eMe(e[a]??{})):(await mNt(i.credential_source,t,r.logger)(r))();if(eMe(i))return u.then(l=>tu.setCredentialFeature(l,"CREDENTIALS_PROFILE_SOURCE_PROFILE","o"));{let l={RoleArn:i.role_arn,RoleSessionName:i.role_session_name||`aws-sdk-js-${Date.now()}`,ExternalId:i.external_id,DurationSeconds:parseInt(i.duration_seconds||"3600",10)},{mfa_serial:d}=i;if(d){if(!r.mfaCodeProvider)throw new w0.CredentialsProviderError(`Profile ${t} requires multi-factor authentication, but no MFA code callback was provided.`,{logger:r.logger,tryNextLink:!1});l.SerialNumber=d,l.TokenCode=await r.mfaCodeProvider(d)}let p=await u;return r.roleAssumer(p,l).then(g=>tu.setCredentialFeature(g,"CREDENTIALS_PROFILE_SOURCE_PROFILE","o"))}},eMe=t=>!t.role_arn&&!!t.credential_source,ENt=t=>!!(t&&t.login_session),yNt=async(t,e,r)=>{let n=await pNt.fromLoginCredentials({...e,profile:t})({callerClientConfig:r});return tu.setCredentialFeature(n,"CREDENTIALS_PROFILE_LOGIN","AC")},_Nt=t=>!!t&&typeof t=="object"&&typeof t.credential_process=="string",CNt=async(t,e)=>Promise.resolve().then(()=>O(h9())).then(({fromProcess:r})=>r({...t,profile:e})().then(n=>tu.setCredentialFeature(n,"CREDENTIALS_PROFILE_PROCESS","v"))),RNt=async(t,e,r={},n)=>{let{fromSSO:s}=await Promise.resolve().then(()=>O(C6()));return s({profile:t,logger:r.logger,parentClientConfig:r.parentClientConfig,clientConfig:r.clientConfig})({callerClientConfig:n}).then(o=>e.sso_session?tu.setCredentialFeature(o,"CREDENTIALS_PROFILE_SSO","r"):tu.setCredentialFeature(o,"CREDENTIALS_PROFILE_SSO_LEGACY","t"))},vNt=t=>t&&(typeof t.sso_start_url=="string"||typeof t.sso_account_id=="string"||typeof t.sso_session=="string"||typeof t.sso_region=="string"||typeof t.sso_role_name=="string"),tMe=t=>!!t&&typeof t=="object"&&typeof t.aws_access_key_id=="string"&&typeof t.aws_secret_access_key=="string"&&["undefined","string"].indexOf(typeof t.aws_session_token)>-1&&["undefined","string"].indexOf(typeof t.aws_account_id)>-1,rMe=async(t,e)=>{e?.logger?.debug("@aws-sdk/credential-provider-ini - resolveStaticCredentials");let r={accessKeyId:t.aws_access_key_id,secretAccessKey:t.aws_secret_access_key,sessionToken:t.aws_session_token,...t.aws_credential_scope&&{credentialScope:t.aws_credential_scope},...t.aws_account_id&&{accountId:t.aws_account_id}};return tu.setCredentialFeature(r,"CREDENTIALS_PROFILE","n")},xNt=t=>!!t&&typeof t=="object"&&typeof t.web_identity_token_file=="string"&&typeof t.role_arn=="string"&&["undefined","string"].indexOf(typeof t.role_session_name)>-1,PNt=async(t,e,r)=>Promise.resolve().then(()=>O(E9())).then(({fromTokenFile:n})=>n({webIdentityTokenFile:t.web_identity_token_file,roleArn:t.role_arn,roleSessionName:t.role_session_name,roleAssumerWithWebIdentity:e.roleAssumerWithWebIdentity,logger:e.logger,parentClientConfig:e.parentClientConfig})({callerClientConfig:r}).then(s=>tu.setCredentialFeature(s,"CREDENTIALS_PROFILE_STS_WEB_ID_TOKEN","q"))),nMe=async(t,e,r,n,s={},o=!1)=>{let i=e[t];if(Object.keys(s).length>0&&tMe(i))return rMe(i,r);if(o||gNt(i,{profile:t,logger:r.logger}))return SNt(t,e,r,n,s,nMe);if(tMe(i))return rMe(i,r);if(xNt(i))return PNt(i,r,n);if(_Nt(i))return CNt(r,t);if(vNt(i))return await RNt(t,i,r,n);if(ENt(i))return yNt(t,r,n);throw new w0.CredentialsProviderError(`Could not resolve credentials using profile: [${t}] in configuration/credentials file(s).`,{logger:r.logger})},bNt=(t={})=>async({callerClientConfig:e}={})=>{t.logger?.debug("@aws-sdk/credential-provider-ini - fromIni");let r=await _9.parseKnownFiles(t);return nMe(_9.getProfileName({profile:t.profile??e?.profile}),r,t,e)};sMe.fromIni=bNt});var uMe=b(pL=>{"use strict";var C9=iK(),D0=require("@smithy/property-provider"),INt=require("@smithy/shared-ini-file-loader"),iMe="AWS_EC2_METADATA_DISABLED",ANt=async t=>{let{ENV_CMDS_FULL_URI:e,ENV_CMDS_RELATIVE_URI:r,fromContainerMetadata:n,fromInstanceMetadata:s}=await import("@smithy/credential-provider-imds");if(process.env[r]||process.env[e]){t.logger?.debug("@aws-sdk/credential-provider-node - remoteProvider::fromHttp/fromContainerMetadata");let{fromHttp:o}=await Promise.resolve().then(()=>O(cK()));return D0.chain(o(t),n(t))}return process.env[iMe]&&process.env[iMe]!=="false"?async()=>{throw new D0.CredentialsProviderError("EC2 Instance Metadata Service access disabled",{logger:t.logger})}:(t.logger?.debug("@aws-sdk/credential-provider-node - remoteProvider::fromInstanceMetadata"),s(t))};function TNt(t,e){let r=wNt(t),n,s,o,i=async a=>{if(a?.forceRefresh)return await r(a);if(o?.expiration&&o?.expiration?.getTime(){o=c}).finally(()=>{s=void 0}));else return n=r(a).then(c=>{o=c}).finally(()=>{n=void 0}),i(a);return o};return i}var wNt=t=>async e=>{let r;for(let n of t)try{return await n(e)}catch(s){if(r=s,s?.tryNextLink)continue;throw s}throw r},aMe=!1,DNt=(t={})=>TNt([async()=>{if(t.profile??process.env[INt.ENV_PROFILE])throw process.env[C9.ENV_KEY]&&process.env[C9.ENV_SECRET]&&(aMe||((t.logger?.warn&&t.logger?.constructor?.name!=="NoOpLogger"?t.logger.warn.bind(t.logger):console.warn)(`@aws-sdk/credential-provider-node - defaultProvider::fromEnv WARNING: + Multiple credential sources detected: + Both AWS_PROFILE and the pair AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY static credentials are set. + This SDK will proceed with the AWS_PROFILE value. + + However, a future version may change this behavior to prefer the ENV static credentials. + Please ensure that your environment only sets either the AWS_PROFILE or the + AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY pair. +`),aMe=!0)),new D0.CredentialsProviderError("AWS_PROFILE is set, skipping fromEnv provider.",{logger:t.logger,tryNextLink:!0});return t.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromEnv"),C9.fromEnv(t)()},async e=>{t.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromSSO");let{ssoStartUrl:r,ssoAccountId:n,ssoRegion:s,ssoRoleName:o,ssoSession:i}=t;if(!r&&!n&&!s&&!o&&!i)throw new D0.CredentialsProviderError("Skipping SSO provider in default chain (inputs do not include SSO fields).",{logger:t.logger});let{fromSSO:a}=await Promise.resolve().then(()=>O(C6()));return a(t)(e)},async e=>{t.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromIni");let{fromIni:r}=await Promise.resolve().then(()=>O(oMe()));return r(t)(e)},async e=>{t.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromProcess");let{fromProcess:r}=await Promise.resolve().then(()=>O(h9()));return r(t)(e)},async e=>{t.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromTokenFile");let{fromTokenFile:r}=await Promise.resolve().then(()=>O(E9()));return r(t)(e)},async()=>(t.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::remoteProvider"),(await ANt(t))()),async()=>{throw new D0.CredentialsProviderError("Could not load credentials from any providers",{tryNextLink:!1,logger:t.logger})}],cMe),ONt=t=>t?.expiration!==void 0,cMe=t=>t?.expiration!==void 0&&t.expiration.getTime()-Date.now()<3e5;pL.credentialsTreatedAsExpired=cMe;pL.credentialsWillNeedRefresh=ONt;pL.defaultProvider=DNt});var EMe=b(Mp=>{"use strict";var lMe=require("node:os"),O0=require("node:process"),dMe=require("@smithy/util-config-provider"),pMe=require("node:fs/promises"),dh=require("node:path"),kNt=xW(),NNt=()=>{let t=["deno","bun","llrt"];for(let e of t)if(O0.versions[e])return[`md/${e}`,O0.versions[e]];return["md/nodejs",O0.versions.node]},LNt=t=>{let e=process.cwd();if(!t)return[e];let r=dh.normalize(t),n=r.split(dh.sep),s=n.indexOf("node_modules"),o=s!==-1?n.slice(0,s).join(dh.sep):r;return e===o?[e]:[o,e]},MNt=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*)?$/,mMe=(t="")=>{let e=t.match(MNt);if(!e)return;let[r,n,s,o]=[e[1],e[2],e[3],e[4]];return o?`${r}.${n}.${s}-${o}`:`${r}.${n}.${s}`},FNt=["^","~",">=","<=",">","<"],BNt=["latest","beta","dev","rc","insiders","next"],UNt=(t="")=>{if(BNt.includes(t))return t;let e=FNt.find(n=>t.startsWith(n))??"",r=mMe(t.slice(e.length));if(r)return`${e}${r}`},Wa,qNt=dh.join("node_modules","typescript","package.json"),$Nt=async()=>{if(Wa===null)return;if(typeof Wa=="string")return["md/tsc",Wa];let t=!1;try{t=dMe.booleanSelector(process.env,"AWS_SDK_JS_TYPESCRIPT_DETECTION_DISABLED",dMe.SelectorType.ENV)||!1}catch{}if(t){Wa=null;return}let r=LNt(typeof __dirname<"u"?__dirname:void 0),n;for(let i of r)try{let a=dh.join(i,"package.json"),c=await pMe.readFile(a,"utf-8"),{dependencies:u,devDependencies:l}=JSON.parse(c),d=l?.typescript??u?.typescript;if(typeof d!="string")continue;n=d;break}catch{}if(!n){Wa=null;return}let s;for(let i of r)try{let a=dh.join(i,qNt),c=await pMe.readFile(a,"utf-8"),{version:u}=JSON.parse(c),l=mMe(u);if(typeof l!="string")continue;s=l;break}catch{}if(s)return Wa=s,["md/tsc",Wa];let o=UNt(n);if(typeof o!="string"){Wa=null;return}return Wa=`dev_${o}`,["md/tsc",Wa]},gMe={isCrtAvailable:!1},GNt=()=>gMe.isCrtAvailable?["md/crt-avail"]:null,fMe=({serviceId:t,clientVersion:e})=>{let r=NNt();return async n=>{let s=[["aws-sdk-js",e],["ua","2.1"],[`os/${lMe.platform()}`,lMe.release()],["lang/js"],r],o=await $Nt();o&&s.push(o);let i=GNt();i&&s.push(i),t&&s.push([`api/${t}`,e]),O0.env.AWS_EXECUTION_ENV&&s.push([`exec-env/${O0.env.AWS_EXECUTION_ENV}`]);let a=await n?.userAgentAppId?.();return a?[...s,[`app/${a}`]]:[...s]}},jNt=fMe,hMe="AWS_SDK_UA_APP_ID",SMe="sdk_ua_app_id",VNt="sdk-ua-app-id",HNt={environmentVariableSelector:t=>t[hMe],configFileSelector:t=>t[SMe]??t[VNt],default:kNt.DEFAULT_UA_APP_ID};Mp.NODE_APP_ID_CONFIG_OPTIONS=HNt;Mp.UA_APP_ID_ENV_NAME=hMe;Mp.UA_APP_ID_INI_NAME=SMe;Mp.createDefaultUserAgentProvider=fMe;Mp.crtAvailability=gMe;Mp.defaultUserAgent=jNt});var MMe=b(gL=>{"use strict";Object.defineProperty(gL,"__esModule",{value:!0});gL.ruleSet=void 0;var kMe="required",Is="fn",As="argv",Fp="ref",Wl="properties",Kl="headers",yMe=!0,_Me="isSet",k0="booleanEquals",ph="error",Ka="endpoint",ru="tree",mL="PartitionResult",R9="stringEquals",CMe={[kMe]:!1,type:"string"},RMe={[kMe]:!0,default:!1,type:"boolean"},vMe={[Fp]:"Endpoint"},NMe={[Is]:k0,[As]:[{[Fp]:"UseFIPS"},!0]},LMe={[Is]:k0,[As]:[{[Fp]:"UseDualStack"},!0]},ti={},xMe={[Is]:"getAttr",[As]:[{[Fp]:mL},"supportsFIPS"]},PMe={[Is]:k0,[As]:[!0,{[Is]:"getAttr",[As]:[{[Fp]:mL},"supportsDualStack"]}]},v9={[Is]:"getAttr",[As]:[{[Fp]:mL},"name"]},bMe={url:"https://secretsmanager-fips.{Region}.amazonaws.com",[Wl]:{},[Kl]:{}},IMe={url:"https://secretsmanager.{Region}.amazonaws.com",[Wl]:{},[Kl]:{}},AMe=[NMe],TMe=[LMe],wMe=[{[Fp]:"Region"}],DMe=[{[Is]:R9,[As]:["aws",v9]}],OMe=[{[Is]:R9,[As]:["aws-us-gov",v9]}],zNt={version:"1.0",parameters:{Region:CMe,UseDualStack:RMe,UseFIPS:RMe,Endpoint:CMe},rules:[{conditions:[{[Is]:_Me,[As]:[vMe]}],rules:[{conditions:AMe,error:"Invalid Configuration: FIPS and custom endpoint are not supported",type:ph},{conditions:TMe,error:"Invalid Configuration: Dualstack and custom endpoint are not supported",type:ph},{endpoint:{url:vMe,[Wl]:ti,[Kl]:ti},type:Ka}],type:ru},{conditions:[{[Is]:_Me,[As]:wMe}],rules:[{conditions:[{[Is]:"aws.partition",[As]:wMe,assign:mL}],rules:[{conditions:[NMe,LMe],rules:[{conditions:[{[Is]:k0,[As]:[yMe,xMe]},PMe],rules:[{conditions:DMe,endpoint:bMe,type:Ka},{conditions:OMe,endpoint:bMe,type:Ka},{endpoint:{url:"https://secretsmanager-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",[Wl]:ti,[Kl]:ti},type:Ka}],type:ru},{error:"FIPS and DualStack are enabled, but this partition does not support one or both",type:ph}],type:ru},{conditions:AMe,rules:[{conditions:[{[Is]:k0,[As]:[xMe,yMe]}],rules:[{endpoint:{url:"https://secretsmanager-fips.{Region}.{PartitionResult#dnsSuffix}",[Wl]:ti,[Kl]:ti},type:Ka}],type:ru},{error:"FIPS is enabled but this partition does not support FIPS",type:ph}],type:ru},{conditions:TMe,rules:[{conditions:[PMe],rules:[{conditions:DMe,endpoint:IMe,type:Ka},{conditions:[{[Is]:R9,[As]:["aws-cn",v9]}],endpoint:{url:"https://secretsmanager.{Region}.amazonaws.com.cn",[Wl]:ti,[Kl]:ti},type:Ka},{conditions:OMe,endpoint:IMe,type:Ka},{endpoint:{url:"https://secretsmanager.{Region}.{PartitionResult#dualStackDnsSuffix}",[Wl]:ti,[Kl]:ti},type:Ka}],type:ru},{error:"DualStack is enabled but this partition does not support DualStack",type:ph}],type:ru},{endpoint:{url:"https://secretsmanager.{Region}.{PartitionResult#dnsSuffix}",[Wl]:ti,[Kl]:ti},type:Ka}],type:ru}],type:ru},{error:"Invalid Configuration: Missing Region",type:ph}]};gL.ruleSet=zNt});var FMe=b(fL=>{"use strict";Object.defineProperty(fL,"__esModule",{value:!0});fL.defaultEndpointResolver=void 0;var WNt=_W(),x9=require("@smithy/util-endpoints"),KNt=MMe(),QNt=new x9.EndpointCache({size:50,params:["Endpoint","Region","UseDualStack","UseFIPS"]}),XNt=(t,e={})=>QNt.get(t,()=>(0,x9.resolveEndpoint)(KNt.ruleSet,{endpointParams:t,logger:e.logger}));fL.defaultEndpointResolver=XNt;x9.customEndpointFunctions.aws=WNt.awsEndpointFunctions});var hL=b(mh=>{"use strict";Object.defineProperty(mh,"__esModule",{value:!0});mh.SecretsManagerServiceException=mh.__ServiceException=void 0;var BMe=require("@smithy/smithy-client");Object.defineProperty(mh,"__ServiceException",{enumerable:!0,get:function(){return BMe.ServiceException}});var P9=class t extends BMe.ServiceException{constructor(e){super(e),Object.setPrototypeOf(this,t.prototype)}};mh.SecretsManagerServiceException=P9});var B9=b($t=>{"use strict";Object.defineProperty($t,"__esModule",{value:!0});$t.PublicPolicyException=$t.ResourceExistsException=$t.PreconditionNotMetException=$t.MalformedPolicyDocumentException=$t.LimitExceededException=$t.EncryptionFailure=$t.ResourceNotFoundException=$t.InvalidRequestException=$t.InvalidParameterException=$t.InvalidNextTokenException=$t.InternalServiceError=$t.DecryptionFailure=void 0;var ri=hL(),b9=class t extends ri.SecretsManagerServiceException{name="DecryptionFailure";$fault="client";Message;constructor(e){super({name:"DecryptionFailure",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.Message=e.Message}};$t.DecryptionFailure=b9;var I9=class t extends ri.SecretsManagerServiceException{name="InternalServiceError";$fault="server";Message;constructor(e){super({name:"InternalServiceError",$fault:"server",...e}),Object.setPrototypeOf(this,t.prototype),this.Message=e.Message}};$t.InternalServiceError=I9;var A9=class t extends ri.SecretsManagerServiceException{name="InvalidNextTokenException";$fault="client";Message;constructor(e){super({name:"InvalidNextTokenException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.Message=e.Message}};$t.InvalidNextTokenException=A9;var T9=class t extends ri.SecretsManagerServiceException{name="InvalidParameterException";$fault="client";Message;constructor(e){super({name:"InvalidParameterException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.Message=e.Message}};$t.InvalidParameterException=T9;var w9=class t extends ri.SecretsManagerServiceException{name="InvalidRequestException";$fault="client";Message;constructor(e){super({name:"InvalidRequestException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.Message=e.Message}};$t.InvalidRequestException=w9;var D9=class t extends ri.SecretsManagerServiceException{name="ResourceNotFoundException";$fault="client";Message;constructor(e){super({name:"ResourceNotFoundException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.Message=e.Message}};$t.ResourceNotFoundException=D9;var O9=class t extends ri.SecretsManagerServiceException{name="EncryptionFailure";$fault="client";Message;constructor(e){super({name:"EncryptionFailure",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.Message=e.Message}};$t.EncryptionFailure=O9;var k9=class t extends ri.SecretsManagerServiceException{name="LimitExceededException";$fault="client";Message;constructor(e){super({name:"LimitExceededException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.Message=e.Message}};$t.LimitExceededException=k9;var N9=class t extends ri.SecretsManagerServiceException{name="MalformedPolicyDocumentException";$fault="client";Message;constructor(e){super({name:"MalformedPolicyDocumentException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.Message=e.Message}};$t.MalformedPolicyDocumentException=N9;var L9=class t extends ri.SecretsManagerServiceException{name="PreconditionNotMetException";$fault="client";Message;constructor(e){super({name:"PreconditionNotMetException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.Message=e.Message}};$t.PreconditionNotMetException=L9;var M9=class t extends ri.SecretsManagerServiceException{name="ResourceExistsException";$fault="client";Message;constructor(e){super({name:"ResourceExistsException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.Message=e.Message}};$t.ResourceExistsException=M9;var F9=class t extends ri.SecretsManagerServiceException{name="PublicPolicyException";$fault="client";Message;constructor(e){super({name:"PublicPolicyException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.Message=e.Message}};$t.PublicPolicyException=F9});var W9=b(x=>{"use strict";Object.defineProperty(x,"__esModule",{value:!0});x.RestoreSecretRequest$=x.ReplicationStatusType$=x.ReplicateSecretToRegionsResponse$=x.ReplicateSecretToRegionsRequest$=x.ReplicaRegionType$=x.RemoveRegionsFromReplicationResponse$=x.RemoveRegionsFromReplicationRequest$=x.PutSecretValueResponse$=x.PutSecretValueRequest$=x.PutResourcePolicyResponse$=x.PutResourcePolicyRequest$=x.ListSecretVersionIdsResponse$=x.ListSecretVersionIdsRequest$=x.ListSecretsResponse$=x.ListSecretsRequest$=x.GetSecretValueResponse$=x.GetSecretValueRequest$=x.GetResourcePolicyResponse$=x.GetResourcePolicyRequest$=x.GetRandomPasswordResponse$=x.GetRandomPasswordRequest$=x.Filter$=x.ExternalSecretRotationMetadataItem$=x.DescribeSecretResponse$=x.DescribeSecretRequest$=x.DeleteSecretResponse$=x.DeleteSecretRequest$=x.DeleteResourcePolicyResponse$=x.DeleteResourcePolicyRequest$=x.CreateSecretResponse$=x.CreateSecretRequest$=x.CancelRotateSecretResponse$=x.CancelRotateSecretRequest$=x.BatchGetSecretValueResponse$=x.BatchGetSecretValueRequest$=x.APIErrorType$=x.errorTypeRegistries=x.ResourceNotFoundException$=x.ResourceExistsException$=x.PublicPolicyException$=x.PreconditionNotMetException$=x.MalformedPolicyDocumentException$=x.LimitExceededException$=x.InvalidRequestException$=x.InvalidParameterException$=x.InvalidNextTokenException$=x.InternalServiceError$=x.EncryptionFailure$=x.DecryptionFailure$=x.SecretsManagerServiceException$=void 0;x.ValidateResourcePolicy$=x.UpdateSecretVersionStage$=x.UpdateSecret$=x.UntagResource$=x.TagResource$=x.StopReplicationToReplica$=x.RotateSecret$=x.RestoreSecret$=x.ReplicateSecretToRegions$=x.RemoveRegionsFromReplication$=x.PutSecretValue$=x.PutResourcePolicy$=x.ListSecretVersionIds$=x.ListSecrets$=x.GetSecretValue$=x.GetResourcePolicy$=x.GetRandomPassword$=x.DescribeSecret$=x.DeleteSecret$=x.DeleteResourcePolicy$=x.CreateSecret$=x.CancelRotateSecret$=x.BatchGetSecretValue$=x.ValidationErrorsEntry$=x.ValidateResourcePolicyResponse$=x.ValidateResourcePolicyRequest$=x.UpdateSecretVersionStageResponse$=x.UpdateSecretVersionStageRequest$=x.UpdateSecretResponse$=x.UpdateSecretRequest$=x.UntagResourceRequest$=x.TagResourceRequest$=x.Tag$=x.StopReplicationToReplicaResponse$=x.StopReplicationToReplicaRequest$=x.SecretVersionsListEntry$=x.SecretValueEntry$=x.SecretListEntry$=x.RotationRulesType$=x.RotateSecretResponse$=x.RotateSecretRequest$=x.RestoreSecretResponse$=void 0;var JNt="AutomaticallyAfterDays",YNt="APIErrorListType",ZNt="APIErrorType",Br="ARN",UMe="AddReplicaRegions",eLt="AddReplicaRegionListType",tLt="BatchGetSecretValue",rLt="BatchGetSecretValueRequest",nLt="BatchGetSecretValueResponse",sLt="BlockPublicPolicy",N0="CreatedDate",oLt="CheckName",iLt="CancelRotateSecret",aLt="CancelRotateSecretRequest",cLt="CancelRotateSecretResponse",SL="ClientRequestToken",uLt="CreateSecret",lLt="CreateSecretRequest",dLt="CreateSecretResponse",EL="Description",pLt="DeletionDate",qMe="DeletedDate",mLt="DecryptionFailure",gLt="DeleteResourcePolicy",fLt="DeleteResourcePolicyRequest",hLt="DeleteResourcePolicyResponse",SLt="DeleteSecret",ELt="DeleteSecretRequest",yLt="DeleteSecretResponse",_Lt="DescribeSecretRequest",CLt="DescribeSecretResponse",RLt="DescribeSecret",vLt="Duration",xLt="Errors",PLt="ErrorCode",bLt="ExcludeCharacters",ILt="EncryptionFailure",ALt="ExcludeLowercase",TLt="ErrorMessage",wLt="ExcludeNumbers",DLt="ExcludePunctuation",U9="ExternalSecretRotationMetadata",OLt="ExternalSecretRotationMetadataItem",kLt="ExternalSecretRotationMetadataType",q9="ExternalSecretRotationRoleArn",NLt="ExcludeUppercase",$Me="Filters",LLt="ForceDeleteWithoutRecovery",MLt="FiltersListType",GMe="ForceOverwriteReplicaSecret",FLt="Filter",BLt="GetRandomPassword",ULt="GetRandomPasswordRequest",qLt="GetRandomPasswordResponse",$Lt="GetResourcePolicyRequest",GLt="GetResourcePolicyResponse",jLt="GetResourcePolicy",VLt="GetSecretValue",HLt="GetSecretValueRequest",zLt="GetSecretValueResponse",WLt="IncludeDeprecated",KLt="InvalidNextTokenException",QLt="IncludePlannedDeletion",XLt="InvalidParameterException",JLt="InvalidRequestException",YLt="IncludeSpace",ZLt="InternalServiceError",$9="Key",gh="KmsKeyId",eMt="KmsKeyIds",yL="LastAccessedDate",jMe="LastChangedDate",tMt="LimitExceededException",VMe="LastRotatedDate",rMt="ListSecrets",nMt="ListSecretsRequest",sMt="ListSecretsResponse",oMt="ListSecretVersionIds",iMt="ListSecretVersionIdsRequest",aMt="ListSecretVersionIdsResponse",lo="Message",cMt="MalformedPolicyDocumentException",G9="MaxResults",uMt="MoveToVersionId",mn="Name",HMe="NextRotationDate",fh="NextToken",zMe="OwningService",lMt="PasswordLength",dMt="PreconditionNotMetException",pMt="PublicPolicyException",WMe="PrimaryRegion",mMt="PutResourcePolicy",gMt="PutResourcePolicyRequest",fMt="PutResourcePolicyResponse",hMt="PutSecretValue",SMt="PutSecretValueRequest",EMt="PutSecretValueResponse",yMt="PolicyValidationPassed",KMe="Region",QMe="RotationEnabled",_Mt="ResourceExistsException",CMt="RequireEachIncludedType",RMt="RemoveFromVersionId",vMt="RotateImmediately",j9="RotationLambdaARN",xMt="ResourceNotFoundException",PMt="RandomPassword",bMt="RandomPasswordType",V9="ResourcePolicy",H9="RotationRules",IMt="RemoveRegionsFromReplication",AMt="RemoveRegionsFromReplicationRequest",TMt="RemoveRegionsFromReplicationResponse",wMt="RemoveReplicaRegions",DMt="ReplicaRegionType",OMt="RotationRulesType",_L="ReplicationStatus",kMt="ReplicationStatusListType",NMt="RestoreSecretRequest",LMt="RestoreSecretResponse",MMt="RotateSecretRequest",FMt="RotateSecretResponse",BMt="ReplicationStatusType",UMt="ReplicateSecretToRegions",qMt="ReplicateSecretToRegionsRequest",$Mt="ReplicateSecretToRegionsResponse",GMt="RestoreSecret",jMt="RotateSecret",VMt="RotationToken",HMt="RotationTokenType",zMt="RecoveryWindowInDays",WMt="Status",L0="SecretBinary",KMt="SecretBinaryType",QMt="SortBy",XMt="ScheduleExpression",wr="SecretId",JMt="SecretIdList",YMt="SecretList",ZMt="SecretListEntry",e1t="SecretListType",t1t="StatusMessage",r1t="SortOrder",n1t="StopReplicationToReplica",s1t="StopReplicationToReplicaRequest",o1t="StopReplicationToReplicaResponse",M0="SecretString",i1t="SecretStringType",a1t="SecretValues",c1t="SecretValueEntry",u1t="SecretVersionsListEntry",l1t="SecretVersionsListType",d1t="SecretValuesType",p1t="SecretVersionsToStages",XMe="SecretVersionsToStagesMapType",CL="Tags",m1t="TagKeys",g1t="TagListType",f1t="TagResource",h1t="TagResourceRequest",S1t="Tag",RL="Type",E1t="UntagResource",y1t="UntagResourceRequest",_1t="UpdateSecret",C1t="UpdateSecretRequest",R1t="UpdateSecretResponse",v1t="UpdateSecretVersionStage",x1t="UpdateSecretVersionStageRequest",P1t="UpdateSecretVersionStageResponse",JMe="Value",b1t="ValidationErrors",I1t="ValidationErrorsEntry",A1t="ValidationErrorsType",nu="VersionId",T1t="VersionIdsToStages",w1t="ValidateResourcePolicy",D1t="ValidateResourcePolicyRequest",O1t="ValidateResourcePolicyResponse",YMe="VersionStage",F0="VersionStages",k1t="Values",N1t="Versions",ea="client",ni="error",ZMe="smithy.ts.sdk.synthetic.com.amazonaws.secretsmanager",L1t="server",H="com.amazonaws.secretsmanager",e1e=require("@smithy/core/schema"),si=B9(),M1t=hL(),t1e=e1e.TypeRegistry.for(ZMe);x.SecretsManagerServiceException$=[-3,ZMe,"SecretsManagerServiceException",0,[],[]];t1e.registerError(x.SecretsManagerServiceException$,M1t.SecretsManagerServiceException);var po=e1e.TypeRegistry.for(H);x.DecryptionFailure$=[-3,H,mLt,{[ni]:ea},[lo],[0]];po.registerError(x.DecryptionFailure$,si.DecryptionFailure);x.EncryptionFailure$=[-3,H,ILt,{[ni]:ea},[lo],[0]];po.registerError(x.EncryptionFailure$,si.EncryptionFailure);x.InternalServiceError$=[-3,H,ZLt,{[ni]:L1t},[lo],[0]];po.registerError(x.InternalServiceError$,si.InternalServiceError);x.InvalidNextTokenException$=[-3,H,KLt,{[ni]:ea},[lo],[0]];po.registerError(x.InvalidNextTokenException$,si.InvalidNextTokenException);x.InvalidParameterException$=[-3,H,XLt,{[ni]:ea},[lo],[0]];po.registerError(x.InvalidParameterException$,si.InvalidParameterException);x.InvalidRequestException$=[-3,H,JLt,{[ni]:ea},[lo],[0]];po.registerError(x.InvalidRequestException$,si.InvalidRequestException);x.LimitExceededException$=[-3,H,tMt,{[ni]:ea},[lo],[0]];po.registerError(x.LimitExceededException$,si.LimitExceededException);x.MalformedPolicyDocumentException$=[-3,H,cMt,{[ni]:ea},[lo],[0]];po.registerError(x.MalformedPolicyDocumentException$,si.MalformedPolicyDocumentException);x.PreconditionNotMetException$=[-3,H,dMt,{[ni]:ea},[lo],[0]];po.registerError(x.PreconditionNotMetException$,si.PreconditionNotMetException);x.PublicPolicyException$=[-3,H,pMt,{[ni]:ea},[lo],[0]];po.registerError(x.PublicPolicyException$,si.PublicPolicyException);x.ResourceExistsException$=[-3,H,_Mt,{[ni]:ea},[lo],[0]];po.registerError(x.ResourceExistsException$,si.ResourceExistsException);x.ResourceNotFoundException$=[-3,H,xMt,{[ni]:ea},[lo],[0]];po.registerError(x.ResourceNotFoundException$,si.ResourceNotFoundException);x.errorTypeRegistries=[t1e,po];var F1t=[0,H,bMt,8,0],B1t=[0,H,HMt,8,0],B0=[0,H,KMt,8,21],U0=[0,H,i1t,8,0];x.APIErrorType$=[3,H,ZNt,0,[wr,PLt,lo],[0,0,0]];x.BatchGetSecretValueRequest$=[3,H,rLt,0,[JMt,$Me,G9,fh],[64,()=>s1e,1,0]];x.BatchGetSecretValueResponse$=[3,H,nLt,0,[a1t,fh,xLt],[[()=>$1t,0],0,()=>U1t]];x.CancelRotateSecretRequest$=[3,H,aLt,0,[wr],[0],1];x.CancelRotateSecretResponse$=[3,H,cLt,0,[Br,mn,nu],[0,0,0]];x.CreateSecretRequest$=[3,H,lLt,0,[mn,SL,EL,gh,L0,M0,CL,UMe,GMe,RL],[0,[0,4],0,0,[()=>B0,0],[()=>U0,0],()=>xL,()=>n1e,2,0],1];x.CreateSecretResponse$=[3,H,dLt,0,[Br,mn,nu,_L],[0,0,0,()=>vL]];x.DeleteResourcePolicyRequest$=[3,H,fLt,0,[wr],[0],1];x.DeleteResourcePolicyResponse$=[3,H,hLt,0,[Br,mn],[0,0]];x.DeleteSecretRequest$=[3,H,ELt,0,[wr,zMt,LLt],[0,1,2],1];x.DeleteSecretResponse$=[3,H,yLt,0,[Br,mn,pLt],[0,0,4]];x.DescribeSecretRequest$=[3,H,_Lt,0,[wr],[0],1];x.DescribeSecretResponse$=[3,H,CLt,0,[Br,mn,RL,EL,gh,QMe,j9,H9,U9,q9,VMe,jMe,yL,qMe,HMe,CL,T1t,zMe,N0,WMe,_L],[0,0,0,0,0,2,0,()=>x.RotationRulesType$,()=>z9,0,4,4,4,4,4,()=>xL,[2,H,XMe,0,0,64],0,4,0,()=>vL]];x.ExternalSecretRotationMetadataItem$=[3,H,OLt,0,[$9,JMe],[0,0]];x.Filter$=[3,H,FLt,0,[$9,k1t],[0,64]];x.GetRandomPasswordRequest$=[3,H,ULt,0,[lMt,bLt,wLt,DLt,NLt,ALt,YLt,CMt],[1,0,2,2,2,2,2,2]];x.GetRandomPasswordResponse$=[3,H,qLt,0,[PMt],[[()=>F1t,0]]];x.GetResourcePolicyRequest$=[3,H,$Lt,0,[wr],[0],1];x.GetResourcePolicyResponse$=[3,H,GLt,0,[Br,mn,V9],[0,0,0]];x.GetSecretValueRequest$=[3,H,HLt,0,[wr,nu,YMe],[0,0,0],1];x.GetSecretValueResponse$=[3,H,zLt,0,[Br,mn,nu,L0,M0,F0,N0],[0,0,0,[()=>B0,0],[()=>U0,0],64,4]];x.ListSecretsRequest$=[3,H,nMt,0,[QLt,G9,fh,$Me,r1t,QMt],[2,1,0,()=>s1e,0,0]];x.ListSecretsResponse$=[3,H,sMt,0,[YMt,fh],[()=>q1t,0]];x.ListSecretVersionIdsRequest$=[3,H,iMt,0,[wr,G9,fh,WLt],[0,1,0,2],1];x.ListSecretVersionIdsResponse$=[3,H,aMt,0,[N1t,fh,Br,mn],[()=>G1t,0,0,0]];x.PutResourcePolicyRequest$=[3,H,gMt,0,[wr,V9,sLt],[0,0,2],2];x.PutResourcePolicyResponse$=[3,H,fMt,0,[Br,mn],[0,0]];x.PutSecretValueRequest$=[3,H,SMt,0,[wr,SL,L0,M0,F0,VMt],[0,[0,4],[()=>B0,0],[()=>U0,0],64,[()=>B1t,0]],1];x.PutSecretValueResponse$=[3,H,EMt,0,[Br,mn,nu,F0],[0,0,0,64]];x.RemoveRegionsFromReplicationRequest$=[3,H,AMt,0,[wr,wMt],[0,64],2];x.RemoveRegionsFromReplicationResponse$=[3,H,TMt,0,[Br,_L],[0,()=>vL]];x.ReplicaRegionType$=[3,H,DMt,0,[KMe,gh],[0,0]];x.ReplicateSecretToRegionsRequest$=[3,H,qMt,0,[wr,UMe,GMe],[0,()=>n1e,2],2];x.ReplicateSecretToRegionsResponse$=[3,H,$Mt,0,[Br,_L],[0,()=>vL]];x.ReplicationStatusType$=[3,H,BMt,0,[KMe,gh,WMt,t1t,yL],[0,0,0,0,4]];x.RestoreSecretRequest$=[3,H,NMt,0,[wr],[0],1];x.RestoreSecretResponse$=[3,H,LMt,0,[Br,mn],[0,0]];x.RotateSecretRequest$=[3,H,MMt,0,[wr,SL,j9,H9,U9,q9,vMt],[0,[0,4],0,()=>x.RotationRulesType$,()=>z9,0,2],1];x.RotateSecretResponse$=[3,H,FMt,0,[Br,mn,nu],[0,0,0]];x.RotationRulesType$=[3,H,OMt,0,[JNt,vLt,XMt],[1,0,0]];x.SecretListEntry$=[3,H,ZMt,0,[Br,mn,RL,EL,gh,QMe,j9,H9,U9,q9,VMe,jMe,yL,qMe,HMe,CL,p1t,zMe,N0,WMe],[0,0,0,0,0,2,0,()=>x.RotationRulesType$,()=>z9,0,4,4,4,4,4,()=>xL,[2,H,XMe,0,0,64],0,4,0]];x.SecretValueEntry$=[3,H,c1t,0,[Br,mn,nu,L0,M0,F0,N0],[0,0,0,[()=>B0,0],[()=>U0,0],64,4]];x.SecretVersionsListEntry$=[3,H,u1t,0,[nu,F0,yL,N0,eMt],[0,64,4,4,64]];x.StopReplicationToReplicaRequest$=[3,H,s1t,0,[wr],[0],1];x.StopReplicationToReplicaResponse$=[3,H,o1t,0,[Br],[0]];x.Tag$=[3,H,S1t,0,[$9,JMe],[0,0]];x.TagResourceRequest$=[3,H,h1t,0,[wr,CL],[0,()=>xL],2];x.UntagResourceRequest$=[3,H,y1t,0,[wr,m1t],[0,64],2];x.UpdateSecretRequest$=[3,H,C1t,0,[wr,SL,EL,gh,L0,M0,RL],[0,[0,4],0,0,[()=>B0,0],[()=>U0,0],0],1];x.UpdateSecretResponse$=[3,H,R1t,0,[Br,mn,nu],[0,0,0]];x.UpdateSecretVersionStageRequest$=[3,H,x1t,0,[wr,YMe,RMt,uMt],[0,0,0,0],2];x.UpdateSecretVersionStageResponse$=[3,H,P1t,0,[Br,mn],[0,0]];x.ValidateResourcePolicyRequest$=[3,H,D1t,0,[V9,wr],[0,0],1];x.ValidateResourcePolicyResponse$=[3,H,O1t,0,[yMt,b1t],[2,()=>j1t]];x.ValidationErrorsEntry$=[3,H,I1t,0,[oLt,TLt],[0,0]];var r1e="unit",n1e=[1,H,eLt,0,()=>x.ReplicaRegionType$],U1t=[1,H,YNt,0,()=>x.APIErrorType$],z9=[1,H,kLt,0,()=>x.ExternalSecretRotationMetadataItem$],s1e=[1,H,MLt,0,()=>x.Filter$],vL=[1,H,kMt,0,()=>x.ReplicationStatusType$],q1t=[1,H,e1t,0,()=>x.SecretListEntry$],$1t=[1,H,d1t,0,[()=>x.SecretValueEntry$,0]],G1t=[1,H,l1t,0,()=>x.SecretVersionsListEntry$],xL=[1,H,g1t,0,()=>x.Tag$],j1t=[1,H,A1t,0,()=>x.ValidationErrorsEntry$];x.BatchGetSecretValue$=[9,H,tLt,0,()=>x.BatchGetSecretValueRequest$,()=>x.BatchGetSecretValueResponse$];x.CancelRotateSecret$=[9,H,iLt,0,()=>x.CancelRotateSecretRequest$,()=>x.CancelRotateSecretResponse$];x.CreateSecret$=[9,H,uLt,0,()=>x.CreateSecretRequest$,()=>x.CreateSecretResponse$];x.DeleteResourcePolicy$=[9,H,gLt,0,()=>x.DeleteResourcePolicyRequest$,()=>x.DeleteResourcePolicyResponse$];x.DeleteSecret$=[9,H,SLt,0,()=>x.DeleteSecretRequest$,()=>x.DeleteSecretResponse$];x.DescribeSecret$=[9,H,RLt,0,()=>x.DescribeSecretRequest$,()=>x.DescribeSecretResponse$];x.GetRandomPassword$=[9,H,BLt,0,()=>x.GetRandomPasswordRequest$,()=>x.GetRandomPasswordResponse$];x.GetResourcePolicy$=[9,H,jLt,0,()=>x.GetResourcePolicyRequest$,()=>x.GetResourcePolicyResponse$];x.GetSecretValue$=[9,H,VLt,0,()=>x.GetSecretValueRequest$,()=>x.GetSecretValueResponse$];x.ListSecrets$=[9,H,rMt,0,()=>x.ListSecretsRequest$,()=>x.ListSecretsResponse$];x.ListSecretVersionIds$=[9,H,oMt,0,()=>x.ListSecretVersionIdsRequest$,()=>x.ListSecretVersionIdsResponse$];x.PutResourcePolicy$=[9,H,mMt,0,()=>x.PutResourcePolicyRequest$,()=>x.PutResourcePolicyResponse$];x.PutSecretValue$=[9,H,hMt,0,()=>x.PutSecretValueRequest$,()=>x.PutSecretValueResponse$];x.RemoveRegionsFromReplication$=[9,H,IMt,0,()=>x.RemoveRegionsFromReplicationRequest$,()=>x.RemoveRegionsFromReplicationResponse$];x.ReplicateSecretToRegions$=[9,H,UMt,0,()=>x.ReplicateSecretToRegionsRequest$,()=>x.ReplicateSecretToRegionsResponse$];x.RestoreSecret$=[9,H,GMt,0,()=>x.RestoreSecretRequest$,()=>x.RestoreSecretResponse$];x.RotateSecret$=[9,H,jMt,0,()=>x.RotateSecretRequest$,()=>x.RotateSecretResponse$];x.StopReplicationToReplica$=[9,H,n1t,0,()=>x.StopReplicationToReplicaRequest$,()=>x.StopReplicationToReplicaResponse$];x.TagResource$=[9,H,f1t,0,()=>x.TagResourceRequest$,()=>r1e];x.UntagResource$=[9,H,E1t,0,()=>x.UntagResourceRequest$,()=>r1e];x.UpdateSecret$=[9,H,_1t,0,()=>x.UpdateSecretRequest$,()=>x.UpdateSecretResponse$];x.UpdateSecretVersionStage$=[9,H,v1t,0,()=>x.UpdateSecretVersionStageRequest$,()=>x.UpdateSecretVersionStageResponse$];x.ValidateResourcePolicy$=[9,H,w1t,0,()=>x.ValidateResourcePolicyRequest$,()=>x.ValidateResourcePolicyResponse$]});var a1e=b(PL=>{"use strict";Object.defineProperty(PL,"__esModule",{value:!0});PL.getRuntimeConfig=void 0;var V1t=(rk(),ue(tk)),H1t=(nK(),ue(rAe)),z1t=require("@smithy/smithy-client"),W1t=require("@smithy/url-parser"),o1e=require("@smithy/util-base64"),i1e=require("@smithy/util-utf8"),K1t=oK(),Q1t=FMe(),X1t=W9(),J1t=t=>({apiVersion:"2017-10-17",base64Decoder:t?.base64Decoder??o1e.fromBase64,base64Encoder:t?.base64Encoder??o1e.toBase64,disableHostPrefix:t?.disableHostPrefix??!1,endpointProvider:t?.endpointProvider??Q1t.defaultEndpointResolver,extensions:t?.extensions??[],httpAuthSchemeProvider:t?.httpAuthSchemeProvider??K1t.defaultSecretsManagerHttpAuthSchemeProvider,httpAuthSchemes:t?.httpAuthSchemes??[{schemeId:"aws.auth#sigv4",identityProvider:e=>e.getIdentityProvider("aws.auth#sigv4"),signer:new V1t.AwsSdkSigV4Signer}],logger:t?.logger??new z1t.NoOpLogger,protocol:t?.protocol??H1t.AwsJson1_1Protocol,protocolSettings:t?.protocolSettings??{defaultNamespace:"com.amazonaws.secretsmanager",errorTypeRegistries:X1t.errorTypeRegistries,version:"2017-10-17",serviceTarget:"secretsmanager"},serviceId:t?.serviceId??"Secrets Manager",urlParser:t?.urlParser??W1t.parseUrl,utf8Decoder:t?.utf8Decoder??i1e.fromUtf8,utf8Encoder:t?.utf8Encoder??i1e.toUtf8});PL.getRuntimeConfig=J1t});var m1e=b(IL=>{"use strict";Object.defineProperty(IL,"__esModule",{value:!0});IL.getRuntimeConfig=void 0;var Y1t=require("tslib"),Z1t=Y1t.__importDefault(nAe()),c1e=(rk(),ue(tk)),eFt=uMe(),u1e=EMe(),bL=require("@smithy/config-resolver"),tFt=require("@smithy/hash-node"),l1e=require("@smithy/middleware-retry"),Bp=require("@smithy/node-config-provider"),d1e=require("@smithy/node-http-handler"),p1e=require("@smithy/smithy-client"),rFt=require("@smithy/util-body-length-node"),nFt=require("@smithy/util-defaults-mode-node"),sFt=require("@smithy/util-retry"),oFt=a1e(),iFt=t=>{(0,p1e.emitWarningIfUnsupportedVersion)(process.version);let e=(0,nFt.resolveDefaultsModeConfig)(t),r=()=>e().then(p1e.loadConfigsForDefaultMode),n=(0,oFt.getRuntimeConfig)(t);(0,c1e.emitWarningIfUnsupportedVersion)(process.version);let s={profile:t?.profile,logger:n.logger};return{...n,...t,runtime:"node",defaultsMode:e,authSchemePreference:t?.authSchemePreference??(0,Bp.loadConfig)(c1e.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS,s),bodyLengthChecker:t?.bodyLengthChecker??rFt.calculateBodyLength,credentialDefaultProvider:t?.credentialDefaultProvider??eFt.defaultProvider,defaultUserAgentProvider:t?.defaultUserAgentProvider??(0,u1e.createDefaultUserAgentProvider)({serviceId:n.serviceId,clientVersion:Z1t.default.version}),maxAttempts:t?.maxAttempts??(0,Bp.loadConfig)(l1e.NODE_MAX_ATTEMPT_CONFIG_OPTIONS,t),region:t?.region??(0,Bp.loadConfig)(bL.NODE_REGION_CONFIG_OPTIONS,{...bL.NODE_REGION_CONFIG_FILE_OPTIONS,...s}),requestHandler:d1e.NodeHttpHandler.create(t?.requestHandler??r),retryMode:t?.retryMode??(0,Bp.loadConfig)({...l1e.NODE_RETRY_MODE_CONFIG_OPTIONS,default:async()=>(await r()).retryMode||sFt.DEFAULT_RETRY_MODE},t),sha256:t?.sha256??tFt.Hash.bind(null,"sha256"),streamCollector:t?.streamCollector??d1e.streamCollector,useDualstackEndpoint:t?.useDualstackEndpoint??(0,Bp.loadConfig)(bL.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS,s),useFipsEndpoint:t?.useFipsEndpoint??(0,Bp.loadConfig)(bL.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS,s),userAgentAppId:t?.userAgentAppId??(0,Bp.loadConfig)(u1e.NODE_APP_ID_CONFIG_OPTIONS,s)}};IL.getRuntimeConfig=iFt});var f1e=b(hh=>{"use strict";Object.defineProperty(hh,"__esModule",{value:!0});hh.warning=void 0;hh.stsRegionDefaultResolver=cFt;var g1e=require("@smithy/config-resolver"),aFt=require("@smithy/node-config-provider");function cFt(t={}){return(0,aFt.loadConfig)({...g1e.NODE_REGION_CONFIG_OPTIONS,async default(){return hh.warning.silence||console.warn("@aws-sdk - WARN - default STS region of us-east-1 used. See @aws-sdk/credential-providers README and set a region explicitly."),"us-east-1"}},{...g1e.NODE_REGION_CONFIG_FILE_OPTIONS,...t})}hh.warning={silence:!1}});var h1e=b(oi=>{"use strict";var AL=f1e(),q0=require("@smithy/config-resolver"),uFt=t=>({setRegion(e){t.region=e},region(){return t.region}}),lFt=t=>({region:t.region()});oi.NODE_REGION_CONFIG_FILE_OPTIONS=q0.NODE_REGION_CONFIG_FILE_OPTIONS;oi.NODE_REGION_CONFIG_OPTIONS=q0.NODE_REGION_CONFIG_OPTIONS;oi.REGION_ENV_NAME=q0.REGION_ENV_NAME;oi.REGION_INI_NAME=q0.REGION_INI_NAME;oi.resolveRegionConfig=q0.resolveRegionConfig;oi.getAwsRegionExtensionConfiguration=uFt;oi.resolveAwsRegionExtensionConfiguration=lFt;Object.prototype.hasOwnProperty.call(AL,"__proto__")&&!Object.prototype.hasOwnProperty.call(oi,"__proto__")&&Object.defineProperty(oi,"__proto__",{enumerable:!0,value:AL.__proto__});Object.keys(AL).forEach(function(t){t!=="default"&&!Object.prototype.hasOwnProperty.call(oi,t)&&(oi[t]=AL[t])})});var b1e=b(Le=>{"use strict";var S1e=gbe(),dFt=Sbe(),pFt=ybe(),E1e=xW(),mFt=require("@smithy/config-resolver"),Sh=require("@smithy/core"),gFt=require("@smithy/core/schema"),fFt=require("@smithy/middleware-content-length"),Yt=require("@smithy/middleware-endpoint"),y1e=require("@smithy/middleware-retry"),Pt=require("@smithy/smithy-client"),_1e=oK(),hFt=m1e(),C1e=h1e(),R1e=require("@smithy/protocol-http"),Bt=W9(),TL=B9(),SFt=hL(),EFt=t=>Object.assign(t,{useDualstackEndpoint:t.useDualstackEndpoint??!1,useFipsEndpoint:t.useFipsEndpoint??!1,defaultSigningName:"secretsmanager"}),sr={UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}},yFt=t=>{let e=t.httpAuthSchemes,r=t.httpAuthSchemeProvider,n=t.credentials;return{setHttpAuthScheme(s){let o=e.findIndex(i=>i.schemeId===s.schemeId);o===-1?e.push(s):e.splice(o,1,s)},httpAuthSchemes(){return e},setHttpAuthSchemeProvider(s){r=s},httpAuthSchemeProvider(){return r},setCredentials(s){n=s},credentials(){return n}}},_Ft=t=>({httpAuthSchemes:t.httpAuthSchemes(),httpAuthSchemeProvider:t.httpAuthSchemeProvider(),credentials:t.credentials()}),CFt=(t,e)=>{let r=Object.assign(C1e.getAwsRegionExtensionConfiguration(t),Pt.getDefaultExtensionConfiguration(t),R1e.getHttpHandlerExtensionConfiguration(t),yFt(t));return e.forEach(n=>n.configure(r)),Object.assign(t,C1e.resolveAwsRegionExtensionConfiguration(r),Pt.resolveDefaultRuntimeConfig(r),R1e.resolveHttpHandlerRuntimeConfig(r),_Ft(r))},Up=class extends Pt.Client{config;constructor(...[e]){let r=hFt.getRuntimeConfig(e||{});super(r),this.initConfig=r;let n=EFt(r),s=E1e.resolveUserAgentConfig(n),o=y1e.resolveRetryConfig(s),i=mFt.resolveRegionConfig(o),a=S1e.resolveHostHeaderConfig(i),c=Yt.resolveEndpointConfig(a),u=_1e.resolveHttpAuthSchemeConfig(c),l=CFt(u,e?.extensions||[]);this.config=l,this.middlewareStack.use(gFt.getSchemaSerdePlugin(this.config)),this.middlewareStack.use(E1e.getUserAgentPlugin(this.config)),this.middlewareStack.use(y1e.getRetryPlugin(this.config)),this.middlewareStack.use(fFt.getContentLengthPlugin(this.config)),this.middlewareStack.use(S1e.getHostHeaderPlugin(this.config)),this.middlewareStack.use(dFt.getLoggerPlugin(this.config)),this.middlewareStack.use(pFt.getRecursionDetectionPlugin(this.config)),this.middlewareStack.use(Sh.getHttpAuthSchemeEndpointRuleSetPlugin(this.config,{httpAuthSchemeParametersProvider:_1e.defaultSecretsManagerHttpAuthSchemeParametersProvider,identityProviderConfigProvider:async d=>new Sh.DefaultIdentityProviderConfig({"aws.auth#sigv4":d.credentials})})),this.middlewareStack.use(Sh.getHttpSigningPlugin(this.config))}destroy(){super.destroy()}},$0=class extends Pt.Command.classBuilder().ep(sr).m(function(e,r,n,s){return[Yt.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","BatchGetSecretValue",{}).n("SecretsManagerClient","BatchGetSecretValueCommand").sc(Bt.BatchGetSecretValue$).build(){},wL=class extends Pt.Command.classBuilder().ep(sr).m(function(e,r,n,s){return[Yt.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","CancelRotateSecret",{}).n("SecretsManagerClient","CancelRotateSecretCommand").sc(Bt.CancelRotateSecret$).build(){},DL=class extends Pt.Command.classBuilder().ep(sr).m(function(e,r,n,s){return[Yt.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","CreateSecret",{}).n("SecretsManagerClient","CreateSecretCommand").sc(Bt.CreateSecret$).build(){},OL=class extends Pt.Command.classBuilder().ep(sr).m(function(e,r,n,s){return[Yt.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","DeleteResourcePolicy",{}).n("SecretsManagerClient","DeleteResourcePolicyCommand").sc(Bt.DeleteResourcePolicy$).build(){},kL=class extends Pt.Command.classBuilder().ep(sr).m(function(e,r,n,s){return[Yt.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","DeleteSecret",{}).n("SecretsManagerClient","DeleteSecretCommand").sc(Bt.DeleteSecret$).build(){},NL=class extends Pt.Command.classBuilder().ep(sr).m(function(e,r,n,s){return[Yt.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","DescribeSecret",{}).n("SecretsManagerClient","DescribeSecretCommand").sc(Bt.DescribeSecret$).build(){},LL=class extends Pt.Command.classBuilder().ep(sr).m(function(e,r,n,s){return[Yt.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","GetRandomPassword",{}).n("SecretsManagerClient","GetRandomPasswordCommand").sc(Bt.GetRandomPassword$).build(){},ML=class extends Pt.Command.classBuilder().ep(sr).m(function(e,r,n,s){return[Yt.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","GetResourcePolicy",{}).n("SecretsManagerClient","GetResourcePolicyCommand").sc(Bt.GetResourcePolicy$).build(){},FL=class extends Pt.Command.classBuilder().ep(sr).m(function(e,r,n,s){return[Yt.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","GetSecretValue",{}).n("SecretsManagerClient","GetSecretValueCommand").sc(Bt.GetSecretValue$).build(){},G0=class extends Pt.Command.classBuilder().ep(sr).m(function(e,r,n,s){return[Yt.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","ListSecrets",{}).n("SecretsManagerClient","ListSecretsCommand").sc(Bt.ListSecrets$).build(){},j0=class extends Pt.Command.classBuilder().ep(sr).m(function(e,r,n,s){return[Yt.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","ListSecretVersionIds",{}).n("SecretsManagerClient","ListSecretVersionIdsCommand").sc(Bt.ListSecretVersionIds$).build(){},BL=class extends Pt.Command.classBuilder().ep(sr).m(function(e,r,n,s){return[Yt.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","PutResourcePolicy",{}).n("SecretsManagerClient","PutResourcePolicyCommand").sc(Bt.PutResourcePolicy$).build(){},UL=class extends Pt.Command.classBuilder().ep(sr).m(function(e,r,n,s){return[Yt.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","PutSecretValue",{}).n("SecretsManagerClient","PutSecretValueCommand").sc(Bt.PutSecretValue$).build(){},qL=class extends Pt.Command.classBuilder().ep(sr).m(function(e,r,n,s){return[Yt.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","RemoveRegionsFromReplication",{}).n("SecretsManagerClient","RemoveRegionsFromReplicationCommand").sc(Bt.RemoveRegionsFromReplication$).build(){},$L=class extends Pt.Command.classBuilder().ep(sr).m(function(e,r,n,s){return[Yt.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","ReplicateSecretToRegions",{}).n("SecretsManagerClient","ReplicateSecretToRegionsCommand").sc(Bt.ReplicateSecretToRegions$).build(){},GL=class extends Pt.Command.classBuilder().ep(sr).m(function(e,r,n,s){return[Yt.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","RestoreSecret",{}).n("SecretsManagerClient","RestoreSecretCommand").sc(Bt.RestoreSecret$).build(){},jL=class extends Pt.Command.classBuilder().ep(sr).m(function(e,r,n,s){return[Yt.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","RotateSecret",{}).n("SecretsManagerClient","RotateSecretCommand").sc(Bt.RotateSecret$).build(){},VL=class extends Pt.Command.classBuilder().ep(sr).m(function(e,r,n,s){return[Yt.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","StopReplicationToReplica",{}).n("SecretsManagerClient","StopReplicationToReplicaCommand").sc(Bt.StopReplicationToReplica$).build(){},HL=class extends Pt.Command.classBuilder().ep(sr).m(function(e,r,n,s){return[Yt.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","TagResource",{}).n("SecretsManagerClient","TagResourceCommand").sc(Bt.TagResource$).build(){},zL=class extends Pt.Command.classBuilder().ep(sr).m(function(e,r,n,s){return[Yt.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","UntagResource",{}).n("SecretsManagerClient","UntagResourceCommand").sc(Bt.UntagResource$).build(){},WL=class extends Pt.Command.classBuilder().ep(sr).m(function(e,r,n,s){return[Yt.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","UpdateSecret",{}).n("SecretsManagerClient","UpdateSecretCommand").sc(Bt.UpdateSecret$).build(){},KL=class extends Pt.Command.classBuilder().ep(sr).m(function(e,r,n,s){return[Yt.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","UpdateSecretVersionStage",{}).n("SecretsManagerClient","UpdateSecretVersionStageCommand").sc(Bt.UpdateSecretVersionStage$).build(){},QL=class extends Pt.Command.classBuilder().ep(sr).m(function(e,r,n,s){return[Yt.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","ValidateResourcePolicy",{}).n("SecretsManagerClient","ValidateResourcePolicyCommand").sc(Bt.ValidateResourcePolicy$).build(){},v1e=Sh.createPaginator(Up,$0,"NextToken","NextToken","MaxResults"),x1e=Sh.createPaginator(Up,G0,"NextToken","NextToken","MaxResults"),P1e=Sh.createPaginator(Up,j0,"NextToken","NextToken","MaxResults"),RFt={BatchGetSecretValueCommand:$0,CancelRotateSecretCommand:wL,CreateSecretCommand:DL,DeleteResourcePolicyCommand:OL,DeleteSecretCommand:kL,DescribeSecretCommand:NL,GetRandomPasswordCommand:LL,GetResourcePolicyCommand:ML,GetSecretValueCommand:FL,ListSecretsCommand:G0,ListSecretVersionIdsCommand:j0,PutResourcePolicyCommand:BL,PutSecretValueCommand:UL,RemoveRegionsFromReplicationCommand:qL,ReplicateSecretToRegionsCommand:$L,RestoreSecretCommand:GL,RotateSecretCommand:jL,StopReplicationToReplicaCommand:VL,TagResourceCommand:HL,UntagResourceCommand:zL,UpdateSecretCommand:WL,UpdateSecretVersionStageCommand:KL,ValidateResourcePolicyCommand:QL},vFt={paginateBatchGetSecretValue:v1e,paginateListSecrets:x1e,paginateListSecretVersionIds:P1e},XL=class extends Up{};Pt.createAggregatedClient(RFt,XL,{paginators:vFt});var xFt={all:"all",description:"description",name:"name",owning_service:"owning-service",primary_region:"primary-region",tag_key:"tag-key",tag_value:"tag-value"},PFt={Failed:"Failed",InProgress:"InProgress",InSync:"InSync"},bFt={created_date:"created-date",last_accessed_date:"last-accessed-date",last_changed_date:"last-changed-date",name:"name"},IFt={asc:"asc",desc:"desc"};Le.$Command=Pt.Command;Le.__Client=Pt.Client;Le.SecretsManagerServiceException=SFt.SecretsManagerServiceException;Le.BatchGetSecretValueCommand=$0;Le.CancelRotateSecretCommand=wL;Le.CreateSecretCommand=DL;Le.DeleteResourcePolicyCommand=OL;Le.DeleteSecretCommand=kL;Le.DescribeSecretCommand=NL;Le.FilterNameStringType=xFt;Le.GetRandomPasswordCommand=LL;Le.GetResourcePolicyCommand=ML;Le.GetSecretValueCommand=FL;Le.ListSecretVersionIdsCommand=j0;Le.ListSecretsCommand=G0;Le.PutResourcePolicyCommand=BL;Le.PutSecretValueCommand=UL;Le.RemoveRegionsFromReplicationCommand=qL;Le.ReplicateSecretToRegionsCommand=$L;Le.RestoreSecretCommand=GL;Le.RotateSecretCommand=jL;Le.SecretsManager=XL;Le.SecretsManagerClient=Up;Le.SortByType=bFt;Le.SortOrderType=IFt;Le.StatusType=PFt;Le.StopReplicationToReplicaCommand=VL;Le.TagResourceCommand=HL;Le.UntagResourceCommand=zL;Le.UpdateSecretCommand=WL;Le.UpdateSecretVersionStageCommand=KL;Le.ValidateResourcePolicyCommand=QL;Le.paginateBatchGetSecretValue=v1e;Le.paginateListSecretVersionIds=P1e;Le.paginateListSecrets=x1e;Object.prototype.hasOwnProperty.call(Bt,"__proto__")&&!Object.prototype.hasOwnProperty.call(Le,"__proto__")&&Object.defineProperty(Le,"__proto__",{enumerable:!0,value:Bt.__proto__});Object.keys(Bt).forEach(function(t){t!=="default"&&!Object.prototype.hasOwnProperty.call(Le,t)&&(Le[t]=Bt[t])});Object.prototype.hasOwnProperty.call(TL,"__proto__")&&!Object.prototype.hasOwnProperty.call(Le,"__proto__")&&Object.defineProperty(Le,"__proto__",{enumerable:!0,value:TL.__proto__});Object.keys(TL).forEach(function(t){t!=="default"&&!Object.prototype.hasOwnProperty.call(Le,t)&&(Le[t]=TL[t])})});var Z9=b(Xl=>{"use strict";Object.defineProperty(Xl,"__esModule",{value:!0});Xl.resolveHttpAuthSchemeConfig=Xl.defaultLambdaHttpAuthSchemeProvider=Xl.defaultLambdaHttpAuthSchemeParametersProvider=void 0;var FFt=(Dt(),ue(Fr)),Y9=require("@smithy/util-middleware"),BFt=async(t,e,r)=>({operation:(0,Y9.getSmithyContext)(e).operation,region:await(0,Y9.normalizeProvider)(t.region)()||(()=>{throw new Error("expected `region` to be configured for `aws.auth#sigv4`")})()});Xl.defaultLambdaHttpAuthSchemeParametersProvider=BFt;function UFt(t){return{schemeId:"aws.auth#sigv4",signingProperties:{name:"lambda",region:t.region},propertiesExtractor:(e,r)=>({signingProperties:{config:e,context:r}})}}var qFt=t=>{let e=[];switch(t.operation){default:e.push(UFt(t))}return e};Xl.defaultLambdaHttpAuthSchemeProvider=qFt;var $Ft=t=>{let e=(0,FFt.resolveAwsSdkSigV4Config)(t);return Object.assign(e,{authSchemePreference:(0,Y9.normalizeProvider)(t.authSchemePreference??[])})};Xl.resolveHttpAuthSchemeConfig=$Ft});var Z1e=b((gnn,GFt)=>{GFt.exports={name:"@aws-sdk/client-lambda",description:"AWS SDK for JavaScript Lambda Client for Node.js, Browser and React Native",version:"3.952.0",scripts:{build:"concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types'","build:cjs":"node ../../scripts/compilation/inline client-lambda","build:es":"tsc -p tsconfig.es.json","build:include:deps":"lerna run --scope $npm_package_name --include-dependencies build","build:types":"tsc -p tsconfig.types.json","build:types:downlevel":"downlevel-dts dist-types dist-types/ts3.4",clean:"rimraf ./dist-* && rimraf *.tsbuildinfo","extract:docs":"api-extractor run --local","generate:client":"node ../../scripts/generate-clients/single-service --solo lambda","test:index":"tsc --noEmit ./test/index-types.ts && node ./test/index-objects.spec.mjs"},main:"./dist-cjs/index.js",types:"./dist-types/index.d.ts",module:"./dist-es/index.js",sideEffects:!1,dependencies:{"@aws-crypto/sha256-browser":"5.2.0","@aws-crypto/sha256-js":"5.2.0","@aws-sdk/core":"3.947.0","@aws-sdk/credential-provider-node":"3.952.0","@aws-sdk/middleware-host-header":"3.936.0","@aws-sdk/middleware-logger":"3.936.0","@aws-sdk/middleware-recursion-detection":"3.948.0","@aws-sdk/middleware-user-agent":"3.947.0","@aws-sdk/region-config-resolver":"3.936.0","@aws-sdk/types":"3.936.0","@aws-sdk/util-endpoints":"3.936.0","@aws-sdk/util-user-agent-browser":"3.936.0","@aws-sdk/util-user-agent-node":"3.947.0","@smithy/config-resolver":"^4.4.3","@smithy/core":"^3.18.7","@smithy/eventstream-serde-browser":"^4.2.5","@smithy/eventstream-serde-config-resolver":"^4.3.5","@smithy/eventstream-serde-node":"^4.2.5","@smithy/fetch-http-handler":"^5.3.6","@smithy/hash-node":"^4.2.5","@smithy/invalid-dependency":"^4.2.5","@smithy/middleware-content-length":"^4.2.5","@smithy/middleware-endpoint":"^4.3.14","@smithy/middleware-retry":"^4.4.14","@smithy/middleware-serde":"^4.2.6","@smithy/middleware-stack":"^4.2.5","@smithy/node-config-provider":"^4.3.5","@smithy/node-http-handler":"^4.4.5","@smithy/protocol-http":"^5.3.5","@smithy/smithy-client":"^4.9.10","@smithy/types":"^4.9.0","@smithy/url-parser":"^4.2.5","@smithy/util-base64":"^4.3.0","@smithy/util-body-length-browser":"^4.2.0","@smithy/util-body-length-node":"^4.2.1","@smithy/util-defaults-mode-browser":"^4.3.13","@smithy/util-defaults-mode-node":"^4.2.16","@smithy/util-endpoints":"^3.2.5","@smithy/util-middleware":"^4.2.5","@smithy/util-retry":"^4.2.5","@smithy/util-stream":"^4.5.6","@smithy/util-utf8":"^4.2.0","@smithy/util-waiter":"^4.2.5",tslib:"^2.6.2"},devDependencies:{"@tsconfig/node18":"18.2.4","@types/node":"^18.19.69",concurrently:"7.0.0","downlevel-dts":"0.10.1",rimraf:"3.0.2",typescript:"~5.8.3"},engines:{node:">=18.0.0"},typesVersions:{"<4.0":{"dist-types/*":["dist-types/ts3.4/*"]}},files:["dist-*/**"],author:{name:"AWS SDK for JavaScript Team",url:"https://aws.amazon.com/javascript/"},license:"Apache-2.0",browser:{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.browser"},"react-native":{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.native"},homepage:"https://github.com/aws/aws-sdk-js-v3/tree/main/clients/client-lambda",repository:{type:"git",url:"https://github.com/aws/aws-sdk-js-v3.git",directory:"clients/client-lambda"}}});var mFe=b(YL=>{"use strict";Object.defineProperty(YL,"__esModule",{value:!0});YL.ruleSet=void 0;var lFe="required",Xa="fn",Ja="argv",yh="ref",eFe=!0,tFe="isSet",z0="booleanEquals",Eh="error",H0="endpoint",su="tree",e8="PartitionResult",rFe={[lFe]:!1,type:"string"},nFe={[lFe]:!0,default:!1,type:"boolean"},sFe={[yh]:"Endpoint"},dFe={[Xa]:z0,[Ja]:[{[yh]:"UseFIPS"},!0]},pFe={[Xa]:z0,[Ja]:[{[yh]:"UseDualStack"},!0]},Qa={},oFe={[Xa]:"getAttr",[Ja]:[{[yh]:e8},"supportsFIPS"]},iFe={[Xa]:z0,[Ja]:[!0,{[Xa]:"getAttr",[Ja]:[{[yh]:e8},"supportsDualStack"]}]},aFe=[dFe],cFe=[pFe],uFe=[{[yh]:"Region"}],jFt={version:"1.0",parameters:{Region:rFe,UseDualStack:nFe,UseFIPS:nFe,Endpoint:rFe},rules:[{conditions:[{[Xa]:tFe,[Ja]:[sFe]}],rules:[{conditions:aFe,error:"Invalid Configuration: FIPS and custom endpoint are not supported",type:Eh},{conditions:cFe,error:"Invalid Configuration: Dualstack and custom endpoint are not supported",type:Eh},{endpoint:{url:sFe,properties:Qa,headers:Qa},type:H0}],type:su},{conditions:[{[Xa]:tFe,[Ja]:uFe}],rules:[{conditions:[{[Xa]:"aws.partition",[Ja]:uFe,assign:e8}],rules:[{conditions:[dFe,pFe],rules:[{conditions:[{[Xa]:z0,[Ja]:[eFe,oFe]},iFe],rules:[{endpoint:{url:"https://lambda-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:Qa,headers:Qa},type:H0}],type:su},{error:"FIPS and DualStack are enabled, but this partition does not support one or both",type:Eh}],type:su},{conditions:aFe,rules:[{conditions:[{[Xa]:z0,[Ja]:[oFe,eFe]}],rules:[{endpoint:{url:"https://lambda-fips.{Region}.{PartitionResult#dnsSuffix}",properties:Qa,headers:Qa},type:H0}],type:su},{error:"FIPS is enabled but this partition does not support FIPS",type:Eh}],type:su},{conditions:cFe,rules:[{conditions:[iFe],rules:[{endpoint:{url:"https://lambda.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:Qa,headers:Qa},type:H0}],type:su},{error:"DualStack is enabled but this partition does not support DualStack",type:Eh}],type:su},{endpoint:{url:"https://lambda.{Region}.{PartitionResult#dnsSuffix}",properties:Qa,headers:Qa},type:H0}],type:su}],type:su},{error:"Invalid Configuration: Missing Region",type:Eh}]};YL.ruleSet=jFt});var gFe=b(ZL=>{"use strict";Object.defineProperty(ZL,"__esModule",{value:!0});ZL.defaultEndpointResolver=void 0;var VFt=Ta(),t8=require("@smithy/util-endpoints"),HFt=mFe(),zFt=new t8.EndpointCache({size:50,params:["Endpoint","Region","UseDualStack","UseFIPS"]}),WFt=(t,e={})=>zFt.get(t,()=>(0,t8.resolveEndpoint)(HFt.ruleSet,{endpointParams:t,logger:e.logger}));ZL.defaultEndpointResolver=WFt;t8.customEndpointFunctions.aws=VFt.awsEndpointFunctions});var SFe=b(eM=>{"use strict";Object.defineProperty(eM,"__esModule",{value:!0});eM.getRuntimeConfig=void 0;var KFt=(Dt(),ue(Fr)),QFt=(wa(),ue(Wg)),XFt=require("@smithy/smithy-client"),JFt=require("@smithy/url-parser"),fFe=require("@smithy/util-base64"),hFe=require("@smithy/util-utf8"),YFt=Z9(),ZFt=gFe(),e3t=t=>({apiVersion:"2015-03-31",base64Decoder:t?.base64Decoder??fFe.fromBase64,base64Encoder:t?.base64Encoder??fFe.toBase64,disableHostPrefix:t?.disableHostPrefix??!1,endpointProvider:t?.endpointProvider??ZFt.defaultEndpointResolver,extensions:t?.extensions??[],httpAuthSchemeProvider:t?.httpAuthSchemeProvider??YFt.defaultLambdaHttpAuthSchemeProvider,httpAuthSchemes:t?.httpAuthSchemes??[{schemeId:"aws.auth#sigv4",identityProvider:e=>e.getIdentityProvider("aws.auth#sigv4"),signer:new KFt.AwsSdkSigV4Signer}],logger:t?.logger??new XFt.NoOpLogger,protocol:t?.protocol??new QFt.AwsRestJsonProtocol({defaultNamespace:"com.amazonaws.lambda"}),serviceId:t?.serviceId??"Lambda",urlParser:t?.urlParser??JFt.parseUrl,utf8Decoder:t?.utf8Decoder??hFe.fromUtf8,utf8Encoder:t?.utf8Encoder??hFe.toUtf8});eM.getRuntimeConfig=e3t});var vFe=b(rM=>{"use strict";Object.defineProperty(rM,"__esModule",{value:!0});rM.getRuntimeConfig=void 0;var t3t=require("tslib"),r3t=t3t.__importDefault(Z1e()),EFe=(Dt(),ue(Fr)),n3t=O_(),yFe=Mc(),tM=require("@smithy/config-resolver"),s3t=require("@smithy/eventstream-serde-node"),o3t=require("@smithy/hash-node"),_Fe=require("@smithy/middleware-retry"),qp=require("@smithy/node-config-provider"),CFe=require("@smithy/node-http-handler"),RFe=require("@smithy/smithy-client"),i3t=require("@smithy/util-body-length-node"),a3t=require("@smithy/util-defaults-mode-node"),c3t=require("@smithy/util-retry"),u3t=SFe(),l3t=t=>{(0,RFe.emitWarningIfUnsupportedVersion)(process.version);let e=(0,a3t.resolveDefaultsModeConfig)(t),r=()=>e().then(RFe.loadConfigsForDefaultMode),n=(0,u3t.getRuntimeConfig)(t);(0,EFe.emitWarningIfUnsupportedVersion)(process.version);let s={profile:t?.profile,logger:n.logger};return{...n,...t,runtime:"node",defaultsMode:e,authSchemePreference:t?.authSchemePreference??(0,qp.loadConfig)(EFe.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS,s),bodyLengthChecker:t?.bodyLengthChecker??i3t.calculateBodyLength,credentialDefaultProvider:t?.credentialDefaultProvider??n3t.defaultProvider,defaultUserAgentProvider:t?.defaultUserAgentProvider??(0,yFe.createDefaultUserAgentProvider)({serviceId:n.serviceId,clientVersion:r3t.default.version}),eventStreamSerdeProvider:t?.eventStreamSerdeProvider??s3t.eventStreamSerdeProvider,maxAttempts:t?.maxAttempts??(0,qp.loadConfig)(_Fe.NODE_MAX_ATTEMPT_CONFIG_OPTIONS,t),region:t?.region??(0,qp.loadConfig)(tM.NODE_REGION_CONFIG_OPTIONS,{...tM.NODE_REGION_CONFIG_FILE_OPTIONS,...s}),requestHandler:CFe.NodeHttpHandler.create(t?.requestHandler??r),retryMode:t?.retryMode??(0,qp.loadConfig)({..._Fe.NODE_RETRY_MODE_CONFIG_OPTIONS,default:async()=>(await r()).retryMode||c3t.DEFAULT_RETRY_MODE},t),sha256:t?.sha256??o3t.Hash.bind(null,"sha256"),streamCollector:t?.streamCollector??CFe.streamCollector,useDualstackEndpoint:t?.useDualstackEndpoint??(0,qp.loadConfig)(tM.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS,s),useFipsEndpoint:t?.useFipsEndpoint??(0,qp.loadConfig)(tM.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS,s),userAgentAppId:t?.userAgentAppId??(0,qp.loadConfig)(yFe.NODE_APP_ID_CONFIG_OPTIONS,s)}};rM.getRuntimeConfig=l3t});var bqe=b(A=>{"use strict";var xFe=wc(),d3t=Dc(),p3t=Oc(),PFe=Oa(),m3t=require("@smithy/config-resolver"),Ur=require("@smithy/core"),Oe=require("@smithy/core/schema"),g3t=require("@smithy/eventstream-serde-config-resolver"),f3t=require("@smithy/middleware-content-length"),te=require("@smithy/middleware-endpoint"),bFe=require("@smithy/middleware-retry"),Z=require("@smithy/smithy-client"),IFe=Z9(),h3t=vFe(),AFe=Na(),TFe=require("@smithy/protocol-http"),je=require("@smithy/util-waiter"),S3t=t=>Object.assign(t,{useDualstackEndpoint:t.useDualstackEndpoint??!1,useFipsEndpoint:t.useFipsEndpoint??!1,defaultSigningName:"lambda"}),re={UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}},E3t=t=>{let e=t.httpAuthSchemes,r=t.httpAuthSchemeProvider,n=t.credentials;return{setHttpAuthScheme(s){let o=e.findIndex(i=>i.schemeId===s.schemeId);o===-1?e.push(s):e.splice(o,1,s)},httpAuthSchemes(){return e},setHttpAuthSchemeProvider(s){r=s},httpAuthSchemeProvider(){return r},setCredentials(s){n=s},credentials(){return n}}},y3t=t=>({httpAuthSchemes:t.httpAuthSchemes(),httpAuthSchemeProvider:t.httpAuthSchemeProvider(),credentials:t.credentials()}),_3t=(t,e)=>{let r=Object.assign(AFe.getAwsRegionExtensionConfiguration(t),Z.getDefaultExtensionConfiguration(t),TFe.getHttpHandlerExtensionConfiguration(t),E3t(t));return e.forEach(n=>n.configure(r)),Object.assign(t,AFe.resolveAwsRegionExtensionConfiguration(r),Z.resolveDefaultRuntimeConfig(r),TFe.resolveHttpHandlerRuntimeConfig(r),y3t(r))},Dr=class extends Z.Client{config;constructor(...[e]){let r=h3t.getRuntimeConfig(e||{});super(r),this.initConfig=r;let n=S3t(r),s=PFe.resolveUserAgentConfig(n),o=bFe.resolveRetryConfig(s),i=m3t.resolveRegionConfig(o),a=xFe.resolveHostHeaderConfig(i),c=te.resolveEndpointConfig(a),u=g3t.resolveEventStreamSerdeConfig(c),l=IFe.resolveHttpAuthSchemeConfig(u),d=_3t(l,e?.extensions||[]);this.config=d,this.middlewareStack.use(Oe.getSchemaSerdePlugin(this.config)),this.middlewareStack.use(PFe.getUserAgentPlugin(this.config)),this.middlewareStack.use(bFe.getRetryPlugin(this.config)),this.middlewareStack.use(f3t.getContentLengthPlugin(this.config)),this.middlewareStack.use(xFe.getHostHeaderPlugin(this.config)),this.middlewareStack.use(d3t.getLoggerPlugin(this.config)),this.middlewareStack.use(p3t.getRecursionDetectionPlugin(this.config)),this.middlewareStack.use(Ur.getHttpAuthSchemeEndpointRuleSetPlugin(this.config,{httpAuthSchemeParametersProvider:IFe.defaultLambdaHttpAuthSchemeParametersProvider,identityProviderConfigProvider:async p=>new Ur.DefaultIdentityProviderConfig({"aws.auth#sigv4":p.credentials})})),this.middlewareStack.use(Ur.getHttpSigningPlugin(this.config))}destroy(){super.destroy()}},ke=class MFe extends Z.ServiceException{constructor(e){super(e),Object.setPrototypeOf(this,MFe.prototype)}},FFe=class BFe extends ke{name="InvalidParameterValueException";$fault="client";Type;constructor(e){super({name:"InvalidParameterValueException",$fault:"client",...e}),Object.setPrototypeOf(this,BFe.prototype),this.Type=e.Type}},UFe=class qFe extends ke{name="PolicyLengthExceededException";$fault="client";Type;constructor(e){super({name:"PolicyLengthExceededException",$fault:"client",...e}),Object.setPrototypeOf(this,qFe.prototype),this.Type=e.Type}},$Fe=class GFe extends ke{name="PreconditionFailedException";$fault="client";Type;constructor(e){super({name:"PreconditionFailedException",$fault:"client",...e}),Object.setPrototypeOf(this,GFe.prototype),this.Type=e.Type}},jFe=class VFe extends ke{name="ResourceConflictException";$fault="client";Type;constructor(e){super({name:"ResourceConflictException",$fault:"client",...e}),Object.setPrototypeOf(this,VFe.prototype),this.Type=e.Type}},HFe=class zFe extends ke{name="ResourceNotFoundException";$fault="client";Type;Message;constructor(e){super({name:"ResourceNotFoundException",$fault:"client",...e}),Object.setPrototypeOf(this,zFe.prototype),this.Type=e.Type,this.Message=e.Message}},WFe=class KFe extends ke{name="ServiceException";$fault="server";Type;Message;constructor(e){super({name:"ServiceException",$fault:"server",...e}),Object.setPrototypeOf(this,KFe.prototype),this.Type=e.Type,this.Message=e.Message}},QFe=class XFe extends ke{name="TooManyRequestsException";$fault="client";retryAfterSeconds;Type;Reason;constructor(e){super({name:"TooManyRequestsException",$fault:"client",...e}),Object.setPrototypeOf(this,XFe.prototype),this.retryAfterSeconds=e.retryAfterSeconds,this.Type=e.Type,this.Reason=e.Reason}},JFe=class YFe extends ke{name="CapacityProviderLimitExceededException";$fault="client";Type;constructor(e){super({name:"CapacityProviderLimitExceededException",$fault:"client",...e}),Object.setPrototypeOf(this,YFe.prototype),this.Type=e.Type}},ZFe=class e3e extends ke{name="ResourceInUseException";$fault="client";Type;Message;constructor(e){super({name:"ResourceInUseException",$fault:"client",...e}),Object.setPrototypeOf(this,e3e.prototype),this.Type=e.Type,this.Message=e.Message}},t3e=class r3e extends ke{name="CodeSigningConfigNotFoundException";$fault="client";Type;Message;constructor(e){super({name:"CodeSigningConfigNotFoundException",$fault:"client",...e}),Object.setPrototypeOf(this,r3e.prototype),this.Type=e.Type,this.Message=e.Message}},n3e=class s3e extends ke{name="CodeStorageExceededException";$fault="client";Type;constructor(e){super({name:"CodeStorageExceededException",$fault:"client",...e}),Object.setPrototypeOf(this,s3e.prototype),this.Type=e.Type}},o3e=class i3e extends ke{name="CodeVerificationFailedException";$fault="client";Type;Message;constructor(e){super({name:"CodeVerificationFailedException",$fault:"client",...e}),Object.setPrototypeOf(this,i3e.prototype),this.Type=e.Type,this.Message=e.Message}},a3e=class c3e extends ke{name="FunctionVersionsPerCapacityProviderLimitExceededException";$fault="client";Type;constructor(e){super({name:"FunctionVersionsPerCapacityProviderLimitExceededException",$fault:"client",...e}),Object.setPrototypeOf(this,c3e.prototype),this.Type=e.Type}},u3e=class l3e extends ke{name="InvalidCodeSignatureException";$fault="client";Type;Message;constructor(e){super({name:"InvalidCodeSignatureException",$fault:"client",...e}),Object.setPrototypeOf(this,l3e.prototype),this.Type=e.Type,this.Message=e.Message}},d3e=class p3e extends ke{name="DurableExecutionAlreadyStartedException";$fault="client";Type;Message;constructor(e){super({name:"DurableExecutionAlreadyStartedException",$fault:"client",...e}),Object.setPrototypeOf(this,p3e.prototype),this.Type=e.Type,this.Message=e.Message}},m3e=class g3e extends ke{name="EC2AccessDeniedException";$fault="server";Type;Message;constructor(e){super({name:"EC2AccessDeniedException",$fault:"server",...e}),Object.setPrototypeOf(this,g3e.prototype),this.Type=e.Type,this.Message=e.Message}},f3e=class h3e extends ke{name="EC2ThrottledException";$fault="server";Type;Message;constructor(e){super({name:"EC2ThrottledException",$fault:"server",...e}),Object.setPrototypeOf(this,h3e.prototype),this.Type=e.Type,this.Message=e.Message}},S3e=class E3e extends ke{name="EC2UnexpectedException";$fault="server";Type;Message;EC2ErrorCode;constructor(e){super({name:"EC2UnexpectedException",$fault:"server",...e}),Object.setPrototypeOf(this,E3e.prototype),this.Type=e.Type,this.Message=e.Message,this.EC2ErrorCode=e.EC2ErrorCode}},y3e=class _3e extends ke{name="EFSIOException";$fault="client";Type;Message;constructor(e){super({name:"EFSIOException",$fault:"client",...e}),Object.setPrototypeOf(this,_3e.prototype),this.Type=e.Type,this.Message=e.Message}},C3e=class R3e extends ke{name="EFSMountConnectivityException";$fault="client";Type;Message;constructor(e){super({name:"EFSMountConnectivityException",$fault:"client",...e}),Object.setPrototypeOf(this,R3e.prototype),this.Type=e.Type,this.Message=e.Message}},v3e=class x3e extends ke{name="EFSMountFailureException";$fault="client";Type;Message;constructor(e){super({name:"EFSMountFailureException",$fault:"client",...e}),Object.setPrototypeOf(this,x3e.prototype),this.Type=e.Type,this.Message=e.Message}},P3e=class b3e extends ke{name="EFSMountTimeoutException";$fault="client";Type;Message;constructor(e){super({name:"EFSMountTimeoutException",$fault:"client",...e}),Object.setPrototypeOf(this,b3e.prototype),this.Type=e.Type,this.Message=e.Message}},I3e=class A3e extends ke{name="ENILimitReachedException";$fault="server";Type;Message;constructor(e){super({name:"ENILimitReachedException",$fault:"server",...e}),Object.setPrototypeOf(this,A3e.prototype),this.Type=e.Type,this.Message=e.Message}},T3e=class w3e extends ke{name="InvalidRequestContentException";$fault="client";Type;constructor(e){super({name:"InvalidRequestContentException",$fault:"client",...e}),Object.setPrototypeOf(this,w3e.prototype),this.Type=e.Type}},D3e=class O3e extends ke{name="InvalidRuntimeException";$fault="server";Type;Message;constructor(e){super({name:"InvalidRuntimeException",$fault:"server",...e}),Object.setPrototypeOf(this,O3e.prototype),this.Type=e.Type,this.Message=e.Message}},k3e=class N3e extends ke{name="InvalidSecurityGroupIDException";$fault="server";Type;Message;constructor(e){super({name:"InvalidSecurityGroupIDException",$fault:"server",...e}),Object.setPrototypeOf(this,N3e.prototype),this.Type=e.Type,this.Message=e.Message}},L3e=class M3e extends ke{name="InvalidSubnetIDException";$fault="server";Type;Message;constructor(e){super({name:"InvalidSubnetIDException",$fault:"server",...e}),Object.setPrototypeOf(this,M3e.prototype),this.Type=e.Type,this.Message=e.Message}},F3e=class B3e extends ke{name="InvalidZipFileException";$fault="server";Type;Message;constructor(e){super({name:"InvalidZipFileException",$fault:"server",...e}),Object.setPrototypeOf(this,B3e.prototype),this.Type=e.Type,this.Message=e.Message}},U3e=class q3e extends ke{name="KMSAccessDeniedException";$fault="server";Type;Message;constructor(e){super({name:"KMSAccessDeniedException",$fault:"server",...e}),Object.setPrototypeOf(this,q3e.prototype),this.Type=e.Type,this.Message=e.Message}},$3e=class G3e extends ke{name="KMSDisabledException";$fault="server";Type;Message;constructor(e){super({name:"KMSDisabledException",$fault:"server",...e}),Object.setPrototypeOf(this,G3e.prototype),this.Type=e.Type,this.Message=e.Message}},j3e=class V3e extends ke{name="KMSInvalidStateException";$fault="server";Type;Message;constructor(e){super({name:"KMSInvalidStateException",$fault:"server",...e}),Object.setPrototypeOf(this,V3e.prototype),this.Type=e.Type,this.Message=e.Message}},H3e=class z3e extends ke{name="KMSNotFoundException";$fault="server";Type;Message;constructor(e){super({name:"KMSNotFoundException",$fault:"server",...e}),Object.setPrototypeOf(this,z3e.prototype),this.Type=e.Type,this.Message=e.Message}},W3e=class K3e extends ke{name="NoPublishedVersionException";$fault="client";Type;Message;constructor(e){super({name:"NoPublishedVersionException",$fault:"client",...e}),Object.setPrototypeOf(this,K3e.prototype),this.Type=e.Type,this.Message=e.Message}},Q3e=class X3e extends ke{name="RecursiveInvocationException";$fault="client";Type;Message;constructor(e){super({name:"RecursiveInvocationException",$fault:"client",...e}),Object.setPrototypeOf(this,X3e.prototype),this.Type=e.Type,this.Message=e.Message}},J3e=class Y3e extends ke{name="RequestTooLargeException";$fault="client";Type;constructor(e){super({name:"RequestTooLargeException",$fault:"client",...e}),Object.setPrototypeOf(this,Y3e.prototype),this.Type=e.Type}},Z3e=class eBe extends ke{name="ResourceNotReadyException";$fault="server";Type;constructor(e){super({name:"ResourceNotReadyException",$fault:"server",...e}),Object.setPrototypeOf(this,eBe.prototype),this.Type=e.Type}},tBe=class rBe extends ke{name="SerializedRequestEntityTooLargeException";$fault="client";Type;constructor(e){super({name:"SerializedRequestEntityTooLargeException",$fault:"client",...e}),Object.setPrototypeOf(this,rBe.prototype),this.Type=e.Type}},nBe=class sBe extends ke{name="SnapStartException";$fault="client";Type;Message;constructor(e){super({name:"SnapStartException",$fault:"client",...e}),Object.setPrototypeOf(this,sBe.prototype),this.Type=e.Type,this.Message=e.Message}},oBe=class iBe extends ke{name="SnapStartNotReadyException";$fault="client";Type;Message;constructor(e){super({name:"SnapStartNotReadyException",$fault:"client",...e}),Object.setPrototypeOf(this,iBe.prototype),this.Type=e.Type,this.Message=e.Message}},aBe=class cBe extends ke{name="SnapStartTimeoutException";$fault="client";Type;Message;constructor(e){super({name:"SnapStartTimeoutException",$fault:"client",...e}),Object.setPrototypeOf(this,cBe.prototype),this.Type=e.Type,this.Message=e.Message}},uBe=class lBe extends ke{name="SubnetIPAddressLimitReachedException";$fault="server";Type;Message;constructor(e){super({name:"SubnetIPAddressLimitReachedException",$fault:"server",...e}),Object.setPrototypeOf(this,lBe.prototype),this.Type=e.Type,this.Message=e.Message}},dBe=class pBe extends ke{name="UnsupportedMediaTypeException";$fault="client";Type;constructor(e){super({name:"UnsupportedMediaTypeException",$fault:"client",...e}),Object.setPrototypeOf(this,pBe.prototype),this.Type=e.Type}},mBe=class gBe extends ke{name="ProvisionedConcurrencyConfigNotFoundException";$fault="client";Type;constructor(e){super({name:"ProvisionedConcurrencyConfigNotFoundException",$fault:"client",...e}),Object.setPrototypeOf(this,gBe.prototype),this.Type=e.Type}},fBe=class hBe extends ke{name="CallbackTimeoutException";$fault="client";Type;Message;constructor(e){super({name:"CallbackTimeoutException",$fault:"client",...e}),Object.setPrototypeOf(this,hBe.prototype),this.Type=e.Type,this.Message=e.Message}},n8="Action",C3t="AliasArn",R3t="AliasConfiguration",v3t="AccessConfigs",x3t="AllowCredentials",P3t="AppliedFunctionScalingConfig",b3t="AllowHeaders",I3t="AllowedInstanceTypes",SBe="AccountLimit",A3t="ApplicationLogLevel",T3t="AddLayerVersionPermission",w3t="AddLayerVersionPermissionRequest",D3t="AddLayerVersionPermissionResponse",O3t="AliasList",k3t="AllowMethods",v1="AmazonManagedKafkaEventSourceConfig",N3t="AllowOrigins",EBe="ApplyOn",x1="AllowedPublishers",s8="AvailableProvisionedConcurrentExecutions",o8="AllocatedProvisionedConcurrentExecutions",L3t="AddPermissionRequest",M3t="AddPermissionResponse",F3t="AddPermission",B3t="AliasRoutingConfiguration",Ch="AuthType",yBe="AccountUsage",U3t="AdditionalVersionWeights",q3t="Aliases",P1="Architectures",nM="Arn",$3t="Attribute",G3t="Attempt",j3t="Blob",i8="BisectBatchOnFunctionError",V3t="BinaryOperationPayload",H3t="BlobStream",a8="BatchSize",_Be="Concurrency",b1="CompatibleArchitectures",z3t="CreateAliasRequest",sM="CompatibleArchitecture",W3t="CreateAlias",K3t="CurrentAttempt",CBe="ClientContext",Q3t="CreateCapacityProvider",X3t="CreateCapacityProviderRequest",J3t="CreateCapacityProviderResponse",Y3t="CreateCodeSigningConfig",Z3t="CreateCodeSigningConfigRequest",eBt="CreateCodeSigningConfigResponse",RBe="CallbackDetails",tBt="CheckpointDurableExecution",rBt="CheckpointDurableExecutionRequest",nBt="CheckpointDurableExecutionResponse",vBe="ContextDetails",c8="CreatedDate",sBt="ConcurrentExecutions",oBt="CreateEventSourceMapping",iBt="CreateEventSourceMappingRequest",aBt="CreateFunction",xBe="CallbackFailedDetails",PBe="ContextFailedDetails",cBt="CreateFunctionRequest",uBt="CreateFunctionUrlConfig",lBt="CreateFunctionUrlConfigRequest",dBt="CreateFunctionUrlConfigResponse",bBe="ConsumerGroupId",lR="CallbackId",IBe="ChainedInvokeDetails",ABe="ChainedInvokeFailedDetails",TBe="ChainedInvokeOptions",wBe="ChainedInvokeStartedDetails",DBe="ChainedInvokeStoppedDetails",OBe="ChainedInvokeSucceededDetails",kBe="ChainedInvokeTimedOutDetails",pBt="CollectionName",NBe="CallbackOptions",LBe="ContextOptions",dR="CapacityProvider",u8="CapacityProviderArn",I1="CapacityProviderConfig",mBt="CapacityProvidersList",gBt="CapacityProviderLimitExceededException",pR="CapacityProviderName",fBt="CapacityProviderOperatorRoleArn",hBt="CapacityProviderPermissionsConfig",A1="CapacityProviderScalingConfig",SBt="CapacityProviderScalingPoliciesList",EBt="CapacityProviderVpcConfig",yBt="CapacityProviders",T1="CompatibleRuntimes",oM="CompatibleRuntime",l8="CodeSize",w1="CodeSigningConfig",ou="CodeSigningConfigArn",_Bt="CodeSigningConfigId",CBt="CodeSigningConfigList",RBt="CodeSigningConfigNotFoundException",vBt="CodeSigningConfigs",MBe="CallbackStartedDetails",FBe="CallbackSucceededDetails",BBe="ContextStartedDetails",UBe="ContextSucceededDetails",xBt="CodeStorageExceededException",D1="CodeSigningPolicies",PBt="CodeSizeUnzipped",bBt="CodeSizeZipped",d8="CodeSha256",IBt="ConfigSha256",iM="CheckpointToken",ABt="CallbackTimeoutException",qBe="CallbackTimedOutDetails",TBt="Content-Type",wBt="ClientToken",O1="CreationTime",DBt="CheckpointUpdatedExecutionState",OBt="CodeVerificationFailedException",Vp="Cors",$Be="Code",kBt="Command",NBt="Configuration",p8="Content",Ts="Description",LBt="DeleteAlias",MBt="DeleteAliasRequest",Hp="DestinationConfig",FBt="DeleteCapacityProvider",BBt="DeleteCapacityProviderRequest",UBt="DeleteCapacityProviderResponse",qBt="DeleteCodeSigningConfig",$Bt="DeleteCodeSigningConfigRequest",GBt="DeleteCodeSigningConfigResponse",k1="DurableConfig",N1="DocumentDBEventSourceConfig",GBe="DurableExecutions",iu="DurableExecutionArn",jBt="DurableExecutionAlreadyStartedException",W0="DurableExecutionName",VBt="DeleteEventSourceMapping",HBt="DeleteEventSourceMappingRequest",zBt="DeleteFunction",WBt="DeleteFunctionConcurrency",KBt="DeleteFunctionConcurrencyRequest",QBt="DeleteFunctionCodeSigningConfig",XBt="DeleteFunctionCodeSigningConfigRequest",JBt="DeleteFunctionEventInvokeConfig",YBt="DeleteFunctionEventInvokeConfigRequest",ZBt="DeleteFunctionRequest",eUt="DeleteFunctionResponse",tUt="DeleteFunctionUrlConfig",rUt="DeleteFunctionUrlConfigRequest",L1="DeadLetterConfig",nUt="DeleteLayerVersion",sUt="DeleteLayerVersionRequest",oUt="DatabaseName",iUt="DeleteProvisionedConcurrencyConfig",aUt="DeleteProvisionedConcurrencyConfigRequest",cUt="DryRun",jBe="Destination",VBe="Duration",or="Error",Rh="ErrorCode",uUt="EC2AccessDeniedException",lUt="EC2ErrorCode",dUt="EC2ThrottledException",pUt="EC2UnexpectedException",HBe="ErrorData",mUt="ErrorDetails",zBe="ExecutionDetails",gUt="EnvironmentError",fUt="ExecutionEnvironmentMemoryGiBPerVCpu",hUt="EventError",WBe="ExecutionFailedDetails",SUt="EFSIOException",EUt="EFSMountConnectivityException",yUt="EFSMountFailureException",_Ut="EFSMountTimeoutException",CUt="ExposeHeaders",RUt="EventId",vUt="ExcludedInstanceTypes",xUt="EventInput",KBe="ErrorMessage",PUt="ENILimitReachedException",bUt="ErrorObject",IUt="EntryPoint",AUt="EnvironmentResponse",TUt="EventRecordFormat",wUt="EventResult",M1="EphemeralStorage",aM="EventSourceArn",QBe="ExecutionStartedDetails",XBe="ExecutionSucceededDetails",JBe="ExecutionStoppedDetails",DUt="EventSourceMappings",OUt="EventSourceMappingArn",kUt="EventSourceMappingConfiguration",NUt="EventSourceMappingsList",LUt="EventSourceMappingMetricsConfig",MUt="EventSourceToken",FUt="EventStream",YBe="ErrorType",ZBe="ExecutionTimedOutDetails",F1="EndTimestamp",BUt="EventType",UUt="EventTimestamp",eUe="ExecutionTimeout",m8="ExecutedVersion",qUt="EnvironmentVariableName",$Ut="EnvironmentVariableValue",GUt="EnvironmentVariables",tUe="Enabled",wFe="Endpoints",B1="Environment",jUt="Event",rUe="Events",VUt="Execution",HUt="Filter",ws="FunctionArn",zUt="FunctionArns",WUt="FunctionCount",nUe="FilterCriteriaError",KUt="FunctionCodeLocation",U1="FilterCriteria",QUt="FunctionCode",XUt="FunctionConfiguration",JUt="FullDocument",YUt="FunctionError",ZUt="FunctionEventInvokeConfig",eqt="FunctionEventInvokeConfigList",tqt="FunctionEventInvokeConfigs",rqt="FilterList",nqt="FunctionList",Ce="FunctionName",g8="FunctionResponseTypes",sqt="FunctionState",f8="FileSystemConfigs",oqt="FileSystemConfigList",iqt="FileSystemConfig",sUe="FunctionScalingConfig",q1="FunctionUrl",aqt="FunctionUrlAuthType",cqt="FunctionUrlConfig",uqt="FunctionUrlConfigList",lqt="FunctionUrlConfigs",$p="FunctionVersion",dqt="FunctionVersionsByCapacityProviderList",pqt="FunctionVersionsByCapacityProviderListItem",mqt="FunctionVersionsPerCapacityProviderLimitExceededException",gqt="FunctionVersions",fqt="Filters",hqt="Functions",Sqt="GetAlias",Eqt="GetAliasRequest",yqt="GetAccountSettings",_qt="GetAccountSettingsRequest",Cqt="GetAccountSettingsResponse",Rqt="GetCapacityProvider",vqt="GetCapacityProviderRequest",xqt="GetCapacityProviderResponse",Pqt="GetCodeSigningConfig",bqt="GetCodeSigningConfigRequest",Iqt="GetCodeSigningConfigResponse",Aqt="GetDurableExecution",Tqt="GetDurableExecutionHistory",wqt="GetDurableExecutionHistoryRequest",Dqt="GetDurableExecutionHistoryResponse",Oqt="GetDurableExecutionRequest",kqt="GetDurableExecutionResponse",Nqt="GetDurableExecutionState",Lqt="GetDurableExecutionStateRequest",Mqt="GetDurableExecutionStateResponse",Fqt="GetEventSourceMapping",Bqt="GetEventSourceMappingRequest",Uqt="GetFunction",qqt="GetFunctionConcurrency",$qt="GetFunctionConcurrencyRequest",Gqt="GetFunctionConcurrencyResponse",jqt="GetFunctionConfigurationRequest",Vqt="GetFunctionCodeSigningConfig",Hqt="GetFunctionCodeSigningConfigRequest",zqt="GetFunctionCodeSigningConfigResponse",Wqt="GetFunctionConfiguration",Kqt="GetFunctionEventInvokeConfig",Qqt="GetFunctionEventInvokeConfigRequest",Xqt="GetFunctionRequest",Jqt="GetFunctionRecursionConfig",Yqt="GetFunctionRecursionConfigRequest",Zqt="GetFunctionRecursionConfigResponse",e$t="GetFunctionResponse",t$t="GetFunctionScalingConfig",r$t="GetFunctionScalingConfigRequest",n$t="GetFunctionScalingConfigResponse",s$t="GetFunctionUrlConfig",o$t="GetFunctionUrlConfigRequest",i$t="GetFunctionUrlConfigResponse",a$t="GetLayerVersion",c$t="GetLayerVersionByArn",u$t="GetLayerVersionByArnRequest",l$t="GetLayerVersionPolicy",d$t="GetLayerVersionPolicyRequest",p$t="GetLayerVersionPolicyResponse",m$t="GetLayerVersionRequest",g$t="GetLayerVersionResponse",f$t="GetPolicy",h$t="GetProvisionedConcurrencyConfig",S$t="GetProvisionedConcurrencyConfigRequest",E$t="GetProvisionedConcurrencyConfigResponse",y$t="GetPolicyRequest",_$t="GetPolicyResponse",C$t="GetRuntimeManagementConfig",R$t="GetRuntimeManagementConfigRequest",v$t="GetRuntimeManagementConfigResponse",h8="Handler",x$t="HeartbeatTimeout",P$t="HeartbeatTimeoutSeconds",oUe="Input",b$t="InvokeArgs",iUe="Ipv6AllowedForDualStack",I$t="InvokeAsyncRequest",A$t="InvokeAsyncResponse",T$t="InvokeAsync",$1="ImageConfig",aUe="InvocationCompletedDetails",w$t="ImageConfigError",cUe="ImageConfigResponse",D$t="InvalidCodeSignatureException",O$t="InvokeComplete",DFe="IncludeExecutionData",vh="InvokeMode",S8="InputPayload",k$t="InvalidParameterValueException",E8="InstanceRequirements",N$t="InvalidRequestContentException",L$t="InvalidRuntimeException",M$t="InvokeResponseStreamUpdate",F$t="InvocationRequest",B$t="InvocationResponse",U$t="InvalidSecurityGroupIDException",q$t="InvalidSubnetIDException",uUe="InvocationType",y8="ImageUri",$$t="InvokedViaFunctionUrl",G$t="InvokeWithResponseStream",j$t="InvokeWithResponseStreamCompleteEvent",V$t="InvokeWithResponseStreamRequest",H$t="InvokeWithResponseStreamResponseEvent",z$t="InvokeWithResponseStreamResponse",W$t="InvalidZipFileException",_8="Id",K$t="Invoke",lUe="KmsKeyArn",Q$t="KMSAccessDeniedException",X$t="KMSDisabledException",J$t="KMSInvalidStateException",xh="KMSKeyArn",Y$t="KMSNotFoundException",Z$t="KafkaSchemaRegistryAccessConfig",eGt="KafkaSchemaRegistryAccessConfigList",tGt="KafkaSchemaRegistryConfig",rGt="KafkaSchemaValidationConfig",nGt="KafkaSchemaValidationConfigList",G1="Layers",C8="LayerArn",sGt="ListAliasesRequest",oGt="ListAliasesResponse",iGt="ListAliases",j1="LoggingConfig",aGt="ListCapacityProviders",cGt="ListCapacityProvidersRequest",uGt="ListCapacityProvidersResponse",lGt="ListCodeSigningConfigs",dGt="ListCodeSigningConfigsRequest",pGt="ListCodeSigningConfigsResponse",mGt="ListDurableExecutionsByFunction",gGt="ListDurableExecutionsByFunctionRequest",fGt="ListDurableExecutionsByFunctionResponse",hGt="ListEventSourceMappings",SGt="ListEventSourceMappingsRequest",EGt="ListEventSourceMappingsResponse",yGt="LogFormat",_Gt="ListFunctionsByCodeSigningConfig",CGt="ListFunctionsByCodeSigningConfigRequest",RGt="ListFunctionsByCodeSigningConfigResponse",vGt="ListFunctionEventInvokeConfigs",xGt="ListFunctionEventInvokeConfigsRequest",PGt="ListFunctionEventInvokeConfigsResponse",bGt="ListFunctionsRequest",IGt="ListFunctionsResponse",AGt="ListFunctionUrlConfigs",TGt="ListFunctionUrlConfigsRequest",wGt="ListFunctionUrlConfigsResponse",DGt="ListFunctionVersionsByCapacityProvider",OGt="ListFunctionVersionsByCapacityProviderRequest",kGt="ListFunctionVersionsByCapacityProviderResponse",NGt="ListFunctions",LGt="LogGroup",V1="LicenseInfo",MGt="LayersList",FGt="LayersListItem",BGt="ListLayersRequest",UGt="ListLayersResponse",qGt="ListLayerVersions",$Gt="ListLayerVersionsRequest",GGt="ListLayerVersionsResponse",jGt="ListLayers",Jl="LastModified",dUe="LambdaManagedInstancesCapacityProviderConfig",VGt="LocalMountPath",R8="LastModifiedTime",HGt="LatestMatchingVersion",Yl="LayerName",zGt="ListProvisionedConcurrencyConfigs",WGt="ListProvisionedConcurrencyConfigsRequest",KGt="ListProvisionedConcurrencyConfigsResponse",QGt="LastProcessingResult",pUe="LogResult",XGt="LayersReferenceList",mUe="LogType",JGt="ListTagsRequest",YGt="ListTagsResponse",ZGt="ListTags",e2t="LastUpdateStatus",t2t="LastUpdateStatusReason",r2t="LastUpdateStatusReasonCode",n2t="LayerVersions",v8="LayerVersionArn",s2t="ListVersionsByFunction",o2t="ListVersionsByFunctionRequest",i2t="ListVersionsByFunctionResponse",a2t="LayerVersionContentInput",c2t="LayerVersionContentOutput",u2t="LayerVersionsList",l2t="LayerVersionsListItem",d2t="Layer",gUe="Location",rt="Message",p2t="MaxAge",m2t="MasterArn",x8="MaximumBatchingWindowInSeconds",P8="MetricsConfig",g2t="MaximumConcurrency",b8="MaximumEventAgeInSeconds",f2t="MinExecutionEnvironments",h2t="MaxExecutionEnvironments",pt="MaxItems",S2t="MinimumPollers",E2t="MaximumPollers",OFe="MasterRegion",Ph="MaximumRetryAttempts",I8="MaximumRecordAgeInSeconds",A8="MemorySize",y2t="MaxVCpuCount",mt="Marker",_2t="Metrics",fUe="Mode",Zl="Name",hUe="NextAttemptDelaySeconds",C2t="NextAttemptTimestamp",R2t="NewExecutionState",gn="NextMarker",v2t="NoPublishedVersionException",T8="Operations",SUe="OnFailure",x2t="OrganizationId",P2t="OperationPayload",b2t="OutputPayload",EUe="OnSuccess",I2t="OptimizationStatus",A2t="OperationUpdate",T2t="OperationUpdates",w2t="Operation",yUe="Principal",_Ue="PermissionsConfig",D2t="ProvisionedConcurrencyConfigs",O2t="ProvisionedConcurrencyConfigList",k2t="ProvisionedConcurrencyConfigListItem",N2t="ProvisionedConcurrencyConfigNotFoundException",L2t="ProvisionedConcurrentExecutions",M2t="PayloadChunk",F2t="PerExecutionEnvironmentMaxConcurrency",w8="ParallelizationFactor",B2t="PutFunctionConcurrency",U2t="PutFunctionConcurrencyRequest",q2t="PutFunctionCodeSigningConfig",$2t="PutFunctionCodeSigningConfigRequest",G2t="PutFunctionCodeSigningConfigResponse",j2t="PreconditionFailedException",V2t="PutFunctionEventInvokeConfig",H2t="PutFunctionEventInvokeConfigRequest",z2t="PutFunctionRecursionConfig",W2t="PutFunctionRecursionConfigRequest",K2t="PutFunctionRecursionConfigResponse",Q2t="PutFunctionScalingConfig",X2t="PutFunctionScalingConfigRequest",J2t="PutFunctionScalingConfigResponse",Y2t="PollerGroupName",D8="ParentId",Z2t="PolicyLengthExceededException",ejt="PublishLayerVersion",tjt="PublishLayerVersionRequest",rjt="PublishLayerVersionResponse",njt="PredefinedMetricType",sjt="PrincipalOrgID",H1="ProvisionedPollerConfig",ojt="PutProvisionedConcurrencyConfig",ijt="PutProvisionedConcurrencyConfigRequest",ajt="PutProvisionedConcurrencyConfigResponse",cjt="PutRuntimeManagementConfig",ujt="PutRuntimeManagementConfigRequest",ljt="PutRuntimeManagementConfigResponse",CUe="PackageType",O8="PublishTo",djt="PublishVersion",pjt="PublishVersionRequest",ed="Payload",mjt="Pattern",RUe="Policy",vUe="Publish",xe="Qualifier",xUe="Queues",ta="Result",gjt="Retry-After",k8="RoutingConfig",N8="ReservedConcurrentExecutions",fjt="ResourceConflictException",PUe="ReplayChildren",L8="RetryDetails",hjt="RequestedFunctionScalingConfig",$n="RevisionId",Sjt="RecursiveInvocationException",Ejt="ResolvedImageUri",yjt="ResourceInUseException",_jt="RequestId",M8="RecursiveLoop",Cjt="RemoveLayerVersionPermission",Rjt="RemoveLayerVersionPermissionRequest",vjt="ResourceNotFoundException",xjt="ResourceNotReadyException",cM="ReverseOrder",Pjt="RemovePermission",F8="RequestedProvisionedConcurrentExecutions",bjt="RetentionPeriodInDays",Ijt="RemovePermissionRequest",Ajt="ResponseStreamContentType",Tjt="RepositoryType",wjt="RequestTooLargeException",z1="RuntimeVersionArn",bUe="RuntimeVersionConfig",Djt="RuntimeVersionError",B8="Resource",Ojt="Reason",U8="Role",q8="Runtime",IUe="Statement",kjt="SourceArn",W1="SourceAccessConfigurations",Njt="SourceAccessConfiguration",Ljt="SourceAccount",kFe="StartedAfter",$8="S3Bucket",NFe="StartedBefore",K1="ScalingConfig",G8="StatusCode",AUe="StepDetails",Mjt="StopDurableExecution",Fjt="SendDurableExecutionCallbackFailure",Bjt="SendDurableExecutionCallbackFailureRequest",Ujt="SendDurableExecutionCallbackFailureResponse",qjt="SendDurableExecutionCallbackHeartbeat",$jt="SendDurableExecutionCallbackHeartbeatRequest",Gjt="SendDurableExecutionCallbackHeartbeatResponse",jjt="SendDurableExecutionCallbackSuccess",Vjt="SendDurableExecutionCallbackSuccessRequest",Hjt="SendDurableExecutionCallbackSuccessResponse",zjt="StopDurableExecutionRequest",Wjt="StopDurableExecutionResponse",Kjt="ServiceException",TUe="ScheduledEndTimestamp",wUe="StepFailedDetails",j8="SecurityGroupIds",Q1="StatementId",Qjt="SubnetIPAddressLimitReachedException",V8="SubnetIds",H8="SigningJobArn",z8="S3Key",W8="SourceKMSKeyArn",Xjt="SystemLogLevel",Jjt="ScalingMode",K8="SelfManagedEventSource",X1="SelfManagedKafkaEventSourceConfig",DUe="StepOptions",Q8="S3ObjectVersion",Yjt="ScalingPolicies",OUe="StartingPositionTimestamp",Zjt="SigningProfileVersionArns",X8="SigningProfileVersionArn",kUe="StartingPosition",e4t="StateReason",NUe="SchemaRegistryConfig",t4t="StateReasonCode",r4t="SerializedRequestEntityTooLargeException",n4t="SchemaRegistryURI",J8="StatusReason",s4t="SensitiveString",LUe="StepStartedDetails",MUe="StepSucceededDetails",o4t="SnapStartException",i4t="SnapStartNotReadyException",a4t="SnapStartResponse",c4t="SnapStartTimeoutException",J1="SnapStart",u4t="StackTrace",l4t="StackTraceEntry",d4t="StackTraceEntries",p4t="StateTransitionReason",Y1="StartTimestamp",m4t="StopTimestamp",Y8="SubType",g4t="SchemaValidationConfigs",f4t="Size",_h="State",zp="Status",LFe="Statuses",Z1="Timeout",h4t="TargetArn",eF="TracingConfig",S4t="TracingConfigResponse",FUe="TotalCodeSize",Z8="TenancyConfig",BUe="TagsError",UUe="TraceHeader",tF="TenantId",E4t="TenantIsolationMode",y4t="TagKeys",_4t="TooManyRequestsException",C4t="TagResource",R4t="TagResourceRequest",v4t="TimeoutSeconds",x4t="TargetTrackingScalingPolicy",P4t="TargetValue",e5="TumblingWindowInSeconds",Wp="Tags",qUe="Topics",t5="Truncated",Pe="Type",b4t="Updates",I4t="UpdateAlias",A4t="UntrustedArtifactOnDeployment",T4t="UpdateAliasRequest",w4t="UnreservedConcurrentExecutions",D4t="UpdateCapacityProvider",O4t="UpdateCapacityProviderRequest",k4t="UpdateCapacityProviderResponse",N4t="UpdateCodeSigningConfig",L4t="UpdateCodeSigningConfigRequest",M4t="UpdateCodeSigningConfigResponse",F4t="UpdateEventSourceMapping",B4t="UpdateEventSourceMappingRequest",U4t="UpdateFunctionCode",q4t="UpdateFunctionCodeRequest",$4t="UpdateFunctionConfigurationRequest",G4t="UpdateFunctionConfiguration",j4t="UpdateFunctionEventInvokeConfig",V4t="UpdateFunctionEventInvokeConfigRequest",H4t="UpdateFunctionUrlConfig",z4t="UpdateFunctionUrlConfigRequest",W4t="UpdateFunctionUrlConfigResponse",K4t="UnsupportedMediaTypeException",Q4t="UntagResource",$Ue="URI",r5="UpdateRuntimeOn",X4t="UntagResourceRequest",rF="UUID",GUe="Variables",bh="VpcConfig",J4t="VpcConfigResponse",Y4t="VpcId",mR="VersionNumber",gR="Version",Z4t="Versions",jUe="WaitCancelledDetails",eVt="WorkingDirectory",VUe="WaitDetails",HUe="WaitOptions",tVt="WaitSeconds",zUe="WaitStartedDetails",WUe="WaitSucceededDetails",KUe="X-Amz-Client-Context",rVt="X-Amz-Durable-Execution-Arn",nVt="X-Amz-Durable-Execution-Name",QUe="X-Amz-Executed-Version",sVt="X-Amz-Function-Error",XUe="X-Amz-Invocation-Type",oVt="X-Amz-Log-Result",JUe="X-Amz-Log-Type",YUe="X-Amz-Tenant-Id",iVt="XAmznTraceId",n5="ZipFile",bt="client",Me="error",aVt="eventPayload",ne="http",Fe="httpError",qn="httpHeader",oe="httpQuery",Ds="message",cVt="retryAfterSeconds",ZUe="streaming",ts="server",eqe="smithy.ts.sdk.synthetic.com.amazonaws.lambda",uVt="tagKeys",E="com.amazonaws.lambda",lVt=[0,E,V3t,8,21],Kp=[0,E,j3t,8,21],dVt=[0,E,H3t,{[ZUe]:1},42],pVt=[0,E,qUt,8,0],mVt=[0,E,$Ut,8,0],gVt=[0,E,HBe,8,0],fVt=[0,E,KBe,8,0],hVt=[0,E,YBe,8,0],s5=[0,E,S8,8,0],Ih=[0,E,P2t,8,0],SVt=[0,E,b2t,8,0],o5=[0,E,s4t,8,0],EVt=[0,E,l4t,8,0],yVt=[3,E,SBe,0,[FUe,PBt,bBt,sBt,w4t],[1,1,1,1,1]],_Vt=[3,E,yBe,0,[FUe,WUt],[1,1]],CVt=[3,E,w3t,0,[Yl,mR,Q1,n8,yUe,x2t,$n],[[0,1],[1,1],0,0,0,0,[0,{[oe]:$n}]]],RVt=[3,E,D3t,0,[IUe,$n],[0,0]],vVt=[3,E,L3t,0,[Ce,Q1,n8,yUe,kjt,Ljt,MUt,xe,$n,sjt,aqt,$$t],[[0,1],0,0,0,0,0,0,[0,{[oe]:xe}],0,0,0,2]],xVt=[3,E,M3t,0,[IUe],[0]],nF=[3,E,R3t,0,[C3t,Zl,$p,Ts,k8,$n],[0,0,0,0,()=>i5,0]],i5=[3,E,B3t,0,[U3t],[129]],a5=[3,E,x1,0,[Zjt],[64]],c5=[3,E,v1,0,[bBe,NUe],[0,()=>cqe]],PVt=[3,E,RBe,0,[lR,ta,or],[0,[()=>Ih,0],[()=>au,0]]],bVt=[3,E,xBe,0,[or],[[()=>ii,0]]],IVt=[3,E,NBe,0,[v4t,P$t],[1,1]],AVt=[3,E,MBe,0,[lR,x$t,Z1],[0,1,1]],TVt=[3,E,FBe,0,[ta],[[()=>hR,0]]],wVt=[3,E,qBe,0,[or],[[()=>ii,0]]],DVt=[-3,E,ABt,{[Me]:bt,[Fe]:400},[Pe,rt],[0,0]];Oe.TypeRegistry.for(E).registerError(DVt,fBe);var fR=[3,E,dR,0,[u8,_h,bh,_Ue,E8,A1,lUe,Jl],[0,0,()=>rqe,()=>tqe,()=>aqe,()=>l5,0,0]],u5=[3,E,I1,0,[dUe],[()=>tWt]],OVt=[-3,E,gBt,{[Me]:bt,[Fe]:400},[Pe,Ds],[0,0]];Oe.TypeRegistry.for(E).registerError(OVt,JFe);var tqe=[3,E,hBt,0,[fBt],[0]],l5=[3,E,A1,0,[y2t,Jjt,Yjt],[1,0,()=>u6t]],rqe=[3,E,EBt,0,[V8,j8],[64,64]],kVt=[3,E,IBe,0,[ta,or],[[()=>Ih,0],[()=>au,0]]],NVt=[3,E,ABe,0,[or],[[()=>ii,0]]],LVt=[3,E,TBe,0,[Ce,tF],[0,0]],MVt=[3,E,wBe,0,[Ce,tF,oUe,m8,iu],[0,0,[()=>oqe,0],0,0]],FVt=[3,E,DBe,0,[or],[[()=>ii,0]]],BVt=[3,E,OBe,0,[ta],[[()=>hR,0]]],UVt=[3,E,kBe,0,[or],[[()=>ii,0]]],qVt=[3,E,rBt,0,[iu,iM,b4t,wBt],[[0,1],0,[()=>x6t,0],[0,4]]],$Vt=[3,E,nBt,0,[iM,R2t],[0,[()=>GVt,0]]],GVt=[3,E,DBt,0,[T8,gn],[[()=>Eqe,0],0]],sF=[3,E,w1,0,[_Bt,ou,Ts,x1,D1,Jl],[0,0,0,()=>a5,()=>d5,0]],jVt=[-3,E,RBt,{[Me]:bt,[Fe]:404},[Pe,rt],[0,0]];Oe.TypeRegistry.for(E).registerError(jVt,t3e);var d5=[3,E,D1,0,[A4t],[0]],VVt=[-3,E,xBt,{[Me]:bt,[Fe]:400},[Pe,Ds],[0,0]];Oe.TypeRegistry.for(E).registerError(VVt,n3e);var HVt=[-3,E,OBt,{[Me]:bt,[Fe]:400},[Pe,rt],[0,0]];Oe.TypeRegistry.for(E).registerError(HVt,o3e);var nqe=[3,E,_Be,0,[N8],[1]],zVt=[3,E,vBe,0,[PUe,ta,or],[2,[()=>Ih,0],[()=>au,0]]],WVt=[3,E,PBe,0,[or],[[()=>ii,0]]],KVt=[3,E,LBe,0,[PUe],[2]],QVt=[3,E,BBe,0,[],[]],XVt=[3,E,UBe,0,[ta],[[()=>hR,0]]],Ah=[3,E,Vp,0,[x3t,b3t,k3t,N3t,CUt,p2t],[2,64,64,64,64,1]],JVt=[3,E,z3t,0,[Ce,Zl,$p,Ts,k8],[[0,1],0,0,0,()=>i5]],YVt=[3,E,X3t,0,[pR,bh,_Ue,E8,A1,lUe,Wp],[0,()=>rqe,()=>tqe,()=>aqe,()=>l5,0,128]],ZVt=[3,E,J3t,0,[dR],[()=>fR]],eHt=[3,E,Z3t,0,[Ts,x1,D1,Wp],[0,()=>a5,()=>d5,128]],tHt=[3,E,eBt,0,[w1],[()=>sF]],rHt=[3,E,iBt,0,[aM,Ce,tUe,a8,U1,x8,w8,kUe,OUe,Hp,I8,i8,Ph,Wp,e5,qUe,xUe,W1,K8,g8,v1,X1,K1,N1,xh,P8,H1],[0,0,2,1,()=>S5,1,1,0,4,()=>Th,1,2,1,128,1,64,64,()=>x5,()=>pqe,64,()=>c5,()=>R5,()=>C5,()=>m5,0,()=>h5,()=>_5]],nHt=[3,E,cBt,0,[Ce,q8,U8,h8,$Be,Ts,Z1,A8,vUe,bh,CUe,L1,B1,xh,eF,Wp,G1,f8,$1,ou,P1,M1,J1,j1,I1,O8,k1,Z8],[0,0,0,0,[()=>GHt,0],0,1,1,2,()=>hqe,0,()=>p5,[()=>sqe,0],0,()=>fqe,128,64,()=>v5,()=>E5,0,64,()=>f5,()=>mqe,()=>y5,()=>u5,0,()=>g5,()=>gqe]],sHt=[3,E,lBt,0,[Ce,xe,Ch,Vp,vh],[[0,1],[0,{[oe]:xe}],0,()=>Ah,0]],oHt=[3,E,dBt,0,[q1,ws,Ch,Vp,O1,vh],[0,0,0,()=>Ah,0,0]],p5=[3,E,L1,0,[h4t],[0]],iHt=[3,E,MBt,0,[Ce,Zl],[[0,1],[0,1]]],aHt=[3,E,BBt,0,[pR],[[0,1]]],cHt=[3,E,UBt,0,[dR],[()=>fR]],uHt=[3,E,$Bt,0,[ou],[[0,1]]],lHt=[3,E,GBt,0,[],[]],dHt=[3,E,HBt,0,[rF],[[0,1]]],pHt=[3,E,XBt,0,[Ce],[[0,1]]],mHt=[3,E,KBt,0,[Ce],[[0,1]]],gHt=[3,E,YBt,0,[Ce,xe],[[0,1],[0,{[oe]:xe}]]],fHt=[3,E,ZBt,0,[Ce,xe],[[0,1],[0,{[oe]:xe}]]],hHt=[3,E,eUt,0,[G8],[[1,32]]],SHt=[3,E,rUt,0,[Ce,xe],[[0,1],[0,{[oe]:xe}]]],EHt=[3,E,sUt,0,[Yl,mR],[[0,1],[1,1]]],yHt=[3,E,aUt,0,[Ce,xe],[[0,1],[0,{[oe]:xe}]]],Th=[3,E,Hp,0,[EUe,SUe],[()=>FWt,()=>MWt]],m5=[3,E,N1,0,[oUt,pBt,JUt],[0,0,0]],g5=[3,E,k1,0,[bjt,eUe],[1,1]],_Ht=[-3,E,jBt,{[Me]:bt,[Fe]:409},[Pe,rt],[0,0]];Oe.TypeRegistry.for(E).registerError(_Ht,d3e);var CHt=[-3,E,uUt,{[Me]:ts,[Fe]:502},[Pe,rt],[0,0]];Oe.TypeRegistry.for(E).registerError(CHt,m3e);var RHt=[-3,E,dUt,{[Me]:ts,[Fe]:502},[Pe,rt],[0,0]];Oe.TypeRegistry.for(E).registerError(RHt,f3e);var vHt=[-3,E,pUt,{[Me]:ts,[Fe]:502},[Pe,rt,lUt],[0,0,0]];Oe.TypeRegistry.for(E).registerError(vHt,S3e);var xHt=[-3,E,SUt,{[Me]:bt,[Fe]:410},[Pe,rt],[0,0]];Oe.TypeRegistry.for(E).registerError(xHt,y3e);var PHt=[-3,E,EUt,{[Me]:bt,[Fe]:408},[Pe,rt],[0,0]];Oe.TypeRegistry.for(E).registerError(PHt,C3e);var bHt=[-3,E,yUt,{[Me]:bt,[Fe]:403},[Pe,rt],[0,0]];Oe.TypeRegistry.for(E).registerError(bHt,v3e);var IHt=[-3,E,_Ut,{[Me]:bt,[Fe]:408},[Pe,rt],[0,0]];Oe.TypeRegistry.for(E).registerError(IHt,P3e);var AHt=[-3,E,PUt,{[Me]:ts,[Fe]:502},[Pe,rt],[0,0]];Oe.TypeRegistry.for(E).registerError(AHt,I3e);var sqe=[3,E,B1,0,[GUe],[[()=>yqe,0]]],THt=[3,E,gUt,0,[Rh,rt],[0,[()=>o5,0]]],wHt=[3,E,AUt,0,[GUe,or],[[()=>yqe,0],[()=>THt,0]]],f5=[3,E,M1,0,[f4t],[1]],au=[3,E,bUt,0,[KBe,YBe,HBe,u4t],[[()=>fVt,0],[()=>hVt,0],[()=>gVt,0],[()=>b6t,0]]],DHt=[3,E,jUt,0,[BUt,Y8,RUt,_8,Zl,UUt,D8,QBe,XBe,WBe,ZBe,JBe,BBe,UBe,PBe,zUe,WUe,jUe,LUe,MUe,wUe,wBe,OBe,ABe,kBe,DBe,MBe,FBe,xBe,qBe,aUe],[0,0,1,0,0,4,0,[()=>LHt,0],[()=>FHt,0],[()=>NHt,0],[()=>BHt,0],[()=>MHt,0],()=>QVt,[()=>XVt,0],[()=>WVt,0],()=>o6t,()=>i6t,[()=>r6t,0],()=>DKt,[()=>OKt,0],[()=>TKt,0],[()=>MVt,0],[()=>BVt,0],[()=>NVt,0],[()=>UVt,0],[()=>FVt,0],()=>AVt,[()=>TVt,0],[()=>bVt,0],[()=>wVt,0],[()=>qzt,0]]],ii=[3,E,hUt,0,[ed,t5],[[()=>au,0],2]],oqe=[3,E,xUt,0,[ed,t5],[[()=>s5,0],2]],hR=[3,E,wUt,0,[ed,t5],[[()=>Ih,0],2]],SR=[3,E,kUt,0,[rF,kUe,OUe,a8,x8,w8,aM,U1,ws,Jl,QGt,_h,p4t,Hp,qUe,xUe,W1,K8,I8,i8,Ph,e5,g8,v1,X1,K1,N1,xh,nUe,OUt,P8,H1],[0,0,4,1,1,1,0,()=>S5,0,4,0,0,0,()=>Th,64,64,()=>x5,()=>pqe,1,2,1,1,64,()=>c5,()=>R5,()=>C5,()=>m5,0,()=>$Ht,0,()=>h5,()=>_5]],h5=[3,E,LUt,0,[_2t],[64]],OHt=[3,E,VUt,0,[iu,W0,ws,zp,Y1,F1],[0,0,0,0,4,4]],kHt=[3,E,zBe,0,[S8],[[()=>s5,0]]],NHt=[3,E,WBe,0,[or],[[()=>ii,0]]],LHt=[3,E,QBe,0,[oUe,eUe],[[()=>oqe,0],1]],MHt=[3,E,JBe,0,[or],[[()=>ii,0]]],FHt=[3,E,XBe,0,[ta],[[()=>hR,0]]],BHt=[3,E,ZBe,0,[or],[[()=>ii,0]]],UHt=[3,E,iqt,0,[nM,VGt],[0,0]],qHt=[3,E,HUt,0,[mjt],[0]],S5=[3,E,U1,0,[fqt],[()=>f6t]],$Ht=[3,E,nUe,0,[Rh,rt],[0,0]],GHt=[3,E,QUt,0,[n5,$8,z8,Q8,y8,W8],[[()=>Kp,0],0,0,0,0,0]],jHt=[3,E,KUt,0,[Tjt,gUe,y8,Ejt,W8],[0,0,0,0,0]],Qp=[3,E,XUt,0,[Ce,ws,q8,U8,h8,l8,Ts,Z1,A8,Jl,d8,gR,bh,L1,B1,xh,eF,m2t,$n,G1,_h,e4t,t4t,e2t,t2t,r2t,f8,CUe,cUe,X8,H8,P1,M1,J1,bUe,j1,I1,IBt,k1,Z8],[0,0,0,0,0,1,0,1,1,0,0,0,()=>t6t,()=>p5,[()=>wHt,0],0,()=>$Kt,0,0,()=>R6t,0,0,0,0,0,0,()=>v5,0,[()=>Ozt,0],0,0,64,()=>f5,()=>PKt,[()=>mKt,0],()=>y5,()=>u5,0,()=>g5,()=>gqe]],oF=[3,E,ZUt,0,[Jl,ws,Ph,b8,Hp],[4,0,1,1,()=>Th]],r8=[3,E,sUe,0,[f2t,h2t],[1,1]],VHt=[3,E,cqt,0,[q1,ws,O1,R8,Vp,Ch,vh],[0,0,0,0,()=>Ah,0,0]],HHt=[3,E,pqt,0,[ws,_h],[0,0]],zHt=[-3,E,mqt,{[Me]:bt,[Fe]:400},[Pe,Ds],[0,0]];Oe.TypeRegistry.for(E).registerError(zHt,a3e);var WHt=[3,E,_qt,0,[],[]],KHt=[3,E,Cqt,0,[SBe,yBe],[()=>yVt,()=>_Vt]],QHt=[3,E,Eqt,0,[Ce,Zl],[[0,1],[0,1]]],XHt=[3,E,vqt,0,[pR],[[0,1]]],JHt=[3,E,xqt,0,[dR],[()=>fR]],YHt=[3,E,bqt,0,[ou],[[0,1]]],ZHt=[3,E,Iqt,0,[w1],[()=>sF]],ezt=[3,E,wqt,0,[iu,DFe,pt,mt,cM],[[0,1],[2,{[oe]:DFe}],[1,{[oe]:pt}],[0,{[oe]:mt}],[2,{[oe]:cM}]]],tzt=[3,E,Dqt,0,[rUe,gn],[[()=>m6t,0],0]],rzt=[3,E,Oqt,0,[iu],[[0,1]]],nzt=[3,E,kqt,0,[iu,W0,ws,S8,ta,or,Y1,zp,F1,gR,UUe],[0,0,0,[()=>s5,0],[()=>SVt,0],[()=>au,0],4,0,4,0,()=>qKt]],szt=[3,E,Lqt,0,[iu,iM,mt,pt],[[0,1],[0,{[oe]:iM}],[0,{[oe]:mt}],[1,{[oe]:pt}]]],ozt=[3,E,Mqt,0,[T8,gn],[[()=>Eqe,0],0]],izt=[3,E,Bqt,0,[rF],[[0,1]]],azt=[3,E,Hqt,0,[Ce],[[0,1]]],czt=[3,E,zqt,0,[ou,Ce],[0,0]],uzt=[3,E,$qt,0,[Ce],[[0,1]]],lzt=[3,E,Gqt,0,[N8],[1]],dzt=[3,E,jqt,0,[Ce,xe],[[0,1],[0,{[oe]:xe}]]],pzt=[3,E,Qqt,0,[Ce,xe],[[0,1],[0,{[oe]:xe}]]],mzt=[3,E,Yqt,0,[Ce],[[0,1]]],gzt=[3,E,Zqt,0,[M8],[0]],fzt=[3,E,Xqt,0,[Ce,xe],[[0,1],[0,{[oe]:xe}]]],hzt=[3,E,e$t,0,[NBt,$Be,Wp,BUe,_Be],[[()=>Qp,0],()=>jHt,128,()=>FKt,()=>nqe]],Szt=[3,E,r$t,0,[Ce,xe],[[0,1],[0,{[oe]:xe}]]],Ezt=[3,E,n$t,0,[ws,P3t,hjt],[0,()=>r8,()=>r8]],yzt=[3,E,o$t,0,[Ce,xe],[[0,1],[0,{[oe]:xe}]]],_zt=[3,E,i$t,0,[q1,ws,Ch,Vp,O1,R8,vh],[0,0,0,()=>Ah,0,0,0]],Czt=[3,E,u$t,0,[nM],[[0,{[oe]:nM}]]],Rzt=[3,E,d$t,0,[Yl,mR],[[0,1],[1,1]]],vzt=[3,E,p$t,0,[RUe,$n],[0,0]],xzt=[3,E,m$t,0,[Yl,mR],[[0,1],[1,1]]],iqe=[3,E,g$t,0,[p8,C8,v8,Ts,c8,gR,T1,V1,b1],[()=>uqe,0,0,0,0,1,64,0,64]],Pzt=[3,E,y$t,0,[Ce,xe],[[0,1],[0,{[oe]:xe}]]],bzt=[3,E,_$t,0,[RUe,$n],[0,0]],Izt=[3,E,S$t,0,[Ce,xe],[[0,1],[0,{[oe]:xe}]]],Azt=[3,E,E$t,0,[F8,s8,o8,zp,J8,Jl],[1,1,1,0,0,0]],Tzt=[3,E,R$t,0,[Ce,xe],[[0,1],[0,{[oe]:xe}]]],wzt=[3,E,v$t,0,[r5,z1,ws],[0,0,0]],E5=[3,E,$1,0,[IUt,kBt,eVt],[64,64,0]],Dzt=[3,E,w$t,0,[Rh,rt],[0,[()=>o5,0]]],Ozt=[3,E,cUe,0,[$1,or],[()=>E5,[()=>Dzt,0]]],aqe=[3,E,E8,0,[P1,I3t,vUt],[64,64,64]],kzt=[-3,E,D$t,{[Me]:bt,[Fe]:400},[Pe,rt],[0,0]];Oe.TypeRegistry.for(E).registerError(kzt,u3e);var Nzt=[-3,E,k$t,{[Me]:bt,[Fe]:400},[Pe,Ds],[0,0]];Oe.TypeRegistry.for(E).registerError(Nzt,FFe);var Lzt=[-3,E,N$t,{[Me]:bt,[Fe]:400},[Pe,Ds],[0,0]];Oe.TypeRegistry.for(E).registerError(Lzt,T3e);var Mzt=[-3,E,L$t,{[Me]:ts,[Fe]:502},[Pe,rt],[0,0]];Oe.TypeRegistry.for(E).registerError(Mzt,D3e);var Fzt=[-3,E,U$t,{[Me]:ts,[Fe]:502},[Pe,rt],[0,0]];Oe.TypeRegistry.for(E).registerError(Fzt,k3e);var Bzt=[-3,E,q$t,{[Me]:ts,[Fe]:502},[Pe,rt],[0,0]];Oe.TypeRegistry.for(E).registerError(Bzt,L3e);var Uzt=[-3,E,W$t,{[Me]:ts,[Fe]:502},[Pe,rt],[0,0]];Oe.TypeRegistry.for(E).registerError(Uzt,F3e);var qzt=[3,E,aUe,0,[Y1,F1,_jt,or],[4,4,0,[()=>ii,0]]],$zt=[3,E,F$t,0,[Ce,uUe,mUe,CBe,W0,ed,xe,tF],[[0,1],[0,{[qn]:XUe}],[0,{[qn]:JUe}],[0,{[qn]:KUe}],[0,{[qn]:nVt}],[()=>Kp,16],[0,{[oe]:xe}],[0,{[qn]:YUe}]]],Gzt=[3,E,B$t,0,[G8,YUt,pUe,ed,m8,iu],[[1,32],[0,{[qn]:sVt}],[0,{[qn]:oVt}],[()=>Kp,16],[0,{[qn]:QUe}],[0,{[qn]:rVt}]]],jzt=[3,E,I$t,0,[Ce,b$t],[[0,1],[()=>dVt,16]]],Vzt=[3,E,A$t,0,[zp],[[1,32]]],Hzt=[3,E,M$t,0,[ed],[[()=>Kp,{[aVt]:1}]]],zzt=[3,E,j$t,0,[Rh,mUt,pUe],[0,0,0]],Wzt=[3,E,V$t,0,[Ce,uUe,mUe,CBe,xe,ed,tF],[[0,1],[0,{[qn]:XUe}],[0,{[qn]:JUe}],[0,{[qn]:KUe}],[0,{[oe]:xe}],[()=>Kp,16],[0,{[qn]:YUe}]]],Kzt=[3,E,z$t,0,[G8,m8,FUt,Ajt],[[1,32],[0,{[qn]:QUe}],[()=>I6t,16],[0,{[qn]:TBt}]]],Qzt=[3,E,Z$t,0,[Pe,$Ue],[0,0]],cqe=[3,E,tGt,0,[n4t,TUt,v3t,g4t],[0,0,()=>y6t,()=>_6t]],Xzt=[3,E,rGt,0,[$3t],[0]],Jzt=[-3,E,Q$t,{[Me]:ts,[Fe]:502},[Pe,rt],[0,0]];Oe.TypeRegistry.for(E).registerError(Jzt,U3e);var Yzt=[-3,E,X$t,{[Me]:ts,[Fe]:502},[Pe,rt],[0,0]];Oe.TypeRegistry.for(E).registerError(Yzt,$3e);var Zzt=[-3,E,J$t,{[Me]:ts,[Fe]:502},[Pe,rt],[0,0]];Oe.TypeRegistry.for(E).registerError(Zzt,j3e);var eWt=[-3,E,Y$t,{[Me]:ts,[Fe]:502},[Pe,rt],[0,0]];Oe.TypeRegistry.for(E).registerError(eWt,H3e);var tWt=[3,E,dUe,0,[u8,F2t,fUt],[0,1,1]],rWt=[3,E,d2t,0,[nM,l8,X8,H8],[0,1,0,0]],nWt=[3,E,FGt,0,[Yl,C8,HGt],[0,0,()=>lqe]],sWt=[3,E,a2t,0,[$8,z8,Q8,n5],[0,0,0,[()=>Kp,0]]],uqe=[3,E,c2t,0,[gUe,d8,l8,X8,H8],[0,0,1,0,0]],lqe=[3,E,l2t,0,[v8,gR,Ts,c8,T1,V1,b1],[0,1,0,0,64,0,64]],oWt=[3,E,sGt,0,[Ce,$p,mt,pt],[[0,1],[0,{[oe]:$p}],[0,{[oe]:mt}],[1,{[oe]:pt}]]],iWt=[3,E,oGt,0,[gn,q3t],[0,()=>c6t]],aWt=[3,E,cGt,0,[_h,mt,pt],[[0,{[oe]:_h}],[0,{[oe]:mt}],[1,{[oe]:pt}]]],cWt=[3,E,uGt,0,[yBt,gn],[()=>l6t,0]],uWt=[3,E,dGt,0,[mt,pt],[[0,{[oe]:mt}],[1,{[oe]:pt}]]],lWt=[3,E,pGt,0,[gn,vBt],[0,()=>d6t]],dWt=[3,E,gGt,0,[Ce,xe,W0,LFe,kFe,NFe,cM,mt,pt],[[0,1],[0,{[oe]:xe}],[0,{[oe]:W0}],[64,{[oe]:LFe}],[4,{[oe]:kFe}],[4,{[oe]:NFe}],[2,{[oe]:cM}],[0,{[oe]:mt}],[1,{[oe]:pt}]]],pWt=[3,E,fGt,0,[GBe,gn],[()=>p6t,0]],mWt=[3,E,SGt,0,[aM,Ce,mt,pt],[[0,{[oe]:aM}],[0,{[oe]:Ce}],[0,{[oe]:mt}],[1,{[oe]:pt}]]],gWt=[3,E,EGt,0,[gn,DUt],[0,()=>g6t]],fWt=[3,E,xGt,0,[Ce,mt,pt],[[0,1],[0,{[oe]:mt}],[1,{[oe]:pt}]]],hWt=[3,E,PGt,0,[tqt,gn],[()=>h6t,0]],SWt=[3,E,CGt,0,[ou,mt,pt],[[0,1],[0,{[oe]:mt}],[1,{[oe]:pt}]]],EWt=[3,E,RGt,0,[gn,zUt],[0,64]],yWt=[3,E,bGt,0,[OFe,$p,mt,pt],[[0,{[oe]:OFe}],[0,{[oe]:$p}],[0,{[oe]:mt}],[1,{[oe]:pt}]]],_Wt=[3,E,IGt,0,[gn,hqt],[0,[()=>Sqe,0]]],CWt=[3,E,TGt,0,[Ce,mt,pt],[[0,1],[0,{[oe]:mt}],[1,{[oe]:pt}]]],RWt=[3,E,wGt,0,[lqt,gn],[()=>S6t,0]],vWt=[3,E,OGt,0,[pR,mt,pt],[[0,1],[0,{[oe]:mt}],[1,{[oe]:pt}]]],xWt=[3,E,kGt,0,[u8,gqt,gn],[0,()=>E6t,0]],PWt=[3,E,BGt,0,[oM,mt,pt,sM],[[0,{[oe]:oM}],[0,{[oe]:mt}],[1,{[oe]:pt}],[0,{[oe]:sM}]]],bWt=[3,E,UGt,0,[gn,G1],[0,()=>C6t]],IWt=[3,E,$Gt,0,[oM,Yl,mt,pt,sM],[[0,{[oe]:oM}],[0,1],[0,{[oe]:mt}],[1,{[oe]:pt}],[0,{[oe]:sM}]]],AWt=[3,E,GGt,0,[gn,n2t],[0,()=>v6t]],TWt=[3,E,WGt,0,[Ce,mt,pt],[[0,1],[0,{[oe]:mt}],[1,{[oe]:pt}]]],wWt=[3,E,KGt,0,[D2t,gn],[()=>P6t,0]],DWt=[3,E,JGt,0,[B8],[[0,1]]],OWt=[3,E,YGt,0,[Wp],[128]],kWt=[3,E,o2t,0,[Ce,mt,pt],[[0,1],[0,{[oe]:mt}],[1,{[oe]:pt}]]],NWt=[3,E,i2t,0,[gn,Z4t],[0,[()=>Sqe,0]]],y5=[3,E,j1,0,[yGt,A3t,Xjt,LGt],[0,0,0,0]],LWt=[-3,E,v2t,{[Me]:bt,[Fe]:400},[Pe,rt],[0,0]];Oe.TypeRegistry.for(E).registerError(LWt,W3e);var MWt=[3,E,SUe,0,[jBe],[0]],FWt=[3,E,EUe,0,[jBe],[0]],BWt=[3,E,w2t,0,[_8,D8,Zl,Pe,Y8,Y1,F1,zp,zBe,vBe,AUe,VUe,RBe,IBe],[0,0,0,0,0,4,4,0,[()=>kHt,0],[()=>zVt,0],[()=>AKt,0],()=>n6t,[()=>PVt,0],[()=>kVt,0]]],UWt=[3,E,A2t,0,[_8,D8,Zl,Pe,Y8,n8,ed,or,LBe,DUe,HUe,NBe,TBe],[0,0,0,0,0,0,[()=>Ih,0],[()=>au,0],()=>KVt,()=>wKt,()=>s6t,()=>IVt,()=>LVt]],qWt=[-3,E,Z2t,{[Me]:bt,[Fe]:400},[Pe,Ds],[0,0]];Oe.TypeRegistry.for(E).registerError(qWt,UFe);var $Wt=[-3,E,j2t,{[Me]:bt,[Fe]:412},[Pe,Ds],[0,0]];Oe.TypeRegistry.for(E).registerError($Wt,$Fe);var GWt=[3,E,k2t,0,[ws,F8,s8,o8,zp,J8,Jl],[0,1,1,1,0,0,0]],jWt=[-3,E,N2t,{[Me]:bt,[Fe]:404},[Pe,Ds],[0,0]];Oe.TypeRegistry.for(E).registerError(jWt,mBe);var _5=[3,E,H1,0,[S2t,E2t,Y2t],[1,1,0]],VWt=[3,E,tjt,0,[Yl,Ts,p8,T1,V1,b1],[[0,1],0,[()=>sWt,0],64,0,64]],HWt=[3,E,rjt,0,[p8,C8,v8,Ts,c8,gR,T1,V1,b1],[()=>uqe,0,0,0,0,1,64,0,64]],zWt=[3,E,pjt,0,[Ce,d8,Ts,$n,O8],[[0,1],0,0,0,0]],WWt=[3,E,$2t,0,[ou,Ce],[0,[0,1]]],KWt=[3,E,G2t,0,[ou,Ce],[0,0]],QWt=[3,E,U2t,0,[Ce,N8],[[0,1],1]],XWt=[3,E,H2t,0,[Ce,xe,Ph,b8,Hp],[[0,1],[0,{[oe]:xe}],1,1,()=>Th]],JWt=[3,E,W2t,0,[Ce,M8],[[0,1],0]],YWt=[3,E,K2t,0,[M8],[0]],ZWt=[3,E,X2t,0,[Ce,xe,sUe],[[0,1],[0,{[oe]:xe}],()=>r8]],eKt=[3,E,J2t,0,[sqt],[0]],tKt=[3,E,ijt,0,[Ce,xe,L2t],[[0,1],[0,{[oe]:xe}],1]],rKt=[3,E,ajt,0,[F8,s8,o8,zp,J8,Jl],[1,1,1,0,0,0]],nKt=[3,E,ujt,0,[Ce,xe,r5,z1],[[0,1],[0,{[oe]:xe}],0,0]],sKt=[3,E,ljt,0,[r5,ws,z1],[0,0,0]],oKt=[-3,E,Sjt,{[Me]:bt,[Fe]:400},[Pe,rt],[0,0]];Oe.TypeRegistry.for(E).registerError(oKt,Q3e);var iKt=[3,E,Rjt,0,[Yl,mR,Q1,$n],[[0,1],[1,1],[0,1],[0,{[oe]:$n}]]],aKt=[3,E,Ijt,0,[Ce,Q1,xe,$n],[[0,1],[0,1],[0,{[oe]:xe}],[0,{[oe]:$n}]]],cKt=[-3,E,wjt,{[Me]:bt,[Fe]:413},[Pe,Ds],[0,0]];Oe.TypeRegistry.for(E).registerError(cKt,J3e);var uKt=[-3,E,fjt,{[Me]:bt,[Fe]:409},[Pe,Ds],[0,0]];Oe.TypeRegistry.for(E).registerError(uKt,jFe);var lKt=[-3,E,yjt,{[Me]:bt,[Fe]:400},[Pe,rt],[0,0]];Oe.TypeRegistry.for(E).registerError(lKt,ZFe);var dKt=[-3,E,vjt,{[Me]:bt,[Fe]:404},[Pe,rt],[0,0]];Oe.TypeRegistry.for(E).registerError(dKt,HFe);var pKt=[-3,E,xjt,{[Me]:ts,[Fe]:502},[Pe,Ds],[0,0]];Oe.TypeRegistry.for(E).registerError(pKt,Z3e);var dqe=[3,E,L8,0,[K3t,hUe],[1,1]],mKt=[3,E,bUe,0,[z1,or],[0,[()=>gKt,0]]],gKt=[3,E,Djt,0,[Rh,rt],[0,[()=>o5,0]]],C5=[3,E,K1,0,[g2t],[1]],pqe=[3,E,K8,0,[wFe],[[2,E,wFe,0,0,64]]],R5=[3,E,X1,0,[bBe,NUe],[0,()=>cqe]],fKt=[3,E,Bjt,0,[lR,or],[[0,1],[()=>au,16]]],hKt=[3,E,Ujt,0,[],[]],SKt=[3,E,$jt,0,[lR],[[0,1]]],EKt=[3,E,Gjt,0,[],[]],yKt=[3,E,Vjt,0,[lR,ta],[[0,1],[()=>lVt,16]]],_Kt=[3,E,Hjt,0,[],[]],CKt=[-3,E,r4t,{[Me]:bt,[Fe]:413},[Pe,Ds],[0,0]];Oe.TypeRegistry.for(E).registerError(CKt,tBe);var RKt=[-3,E,Kjt,{[Me]:ts,[Fe]:500},[Pe,rt],[0,0]];Oe.TypeRegistry.for(E).registerError(RKt,WFe);var mqe=[3,E,J1,0,[EBe],[0]],vKt=[-3,E,o4t,{[Me]:bt,[Fe]:400},[Pe,rt],[0,0]];Oe.TypeRegistry.for(E).registerError(vKt,nBe);var xKt=[-3,E,i4t,{[Me]:bt,[Fe]:409},[Pe,rt],[0,0]];Oe.TypeRegistry.for(E).registerError(xKt,oBe);var PKt=[3,E,a4t,0,[EBe,I2t],[0,0]],bKt=[-3,E,c4t,{[Me]:bt,[Fe]:408},[Pe,rt],[0,0]];Oe.TypeRegistry.for(E).registerError(bKt,aBe);var IKt=[3,E,Njt,0,[Pe,$Ue],[0,0]],AKt=[3,E,AUe,0,[G3t,C2t,ta,or],[1,4,[()=>Ih,0],[()=>au,0]]],TKt=[3,E,wUe,0,[or,L8],[[()=>ii,0],()=>dqe]],wKt=[3,E,DUe,0,[hUe],[1]],DKt=[3,E,LUe,0,[],[]],OKt=[3,E,MUe,0,[ta,L8],[[()=>hR,0],()=>dqe]],kKt=[3,E,zjt,0,[iu,or],[[0,1],[()=>au,16]]],NKt=[3,E,Wjt,0,[m4t],[4]],LKt=[-3,E,Qjt,{[Me]:ts,[Fe]:502},[Pe,rt],[0,0]];Oe.TypeRegistry.for(E).registerError(LKt,uBe);var MKt=[3,E,R4t,0,[B8,Wp],[[0,1],128]],FKt=[3,E,BUe,0,[Rh,rt],[0,0]],BKt=[3,E,x4t,0,[njt,P4t],[0,1]],gqe=[3,E,Z8,0,[E4t],[0]],UKt=[-3,E,_4t,{[Me]:bt,[Fe]:429},[cVt,Pe,Ds,Ojt],[[0,{[qn]:gjt}],0,0,0]];Oe.TypeRegistry.for(E).registerError(UKt,QFe);var qKt=[3,E,UUe,0,[iVt],[0]],fqe=[3,E,eF,0,[fUe],[0]],$Kt=[3,E,S4t,0,[fUe],[0]],GKt=[-3,E,K4t,{[Me]:bt,[Fe]:415},[Pe,Ds],[0,0]];Oe.TypeRegistry.for(E).registerError(GKt,dBe);var jKt=[3,E,X4t,0,[B8,y4t],[[0,1],[64,{[oe]:uVt}]]],VKt=[3,E,T4t,0,[Ce,Zl,$p,Ts,k8,$n],[[0,1],[0,1],0,0,()=>i5,0]],HKt=[3,E,O4t,0,[pR,A1],[[0,1],()=>l5]],zKt=[3,E,k4t,0,[dR],[()=>fR]],WKt=[3,E,L4t,0,[ou,Ts,x1,D1],[[0,1],0,()=>a5,()=>d5]],KKt=[3,E,M4t,0,[w1],[()=>sF]],QKt=[3,E,B4t,0,[rF,Ce,tUe,a8,U1,x8,Hp,I8,i8,Ph,w8,W1,e5,g8,K1,v1,X1,N1,xh,P8,H1],[[0,1],0,2,1,()=>S5,1,()=>Th,1,2,1,1,()=>x5,1,64,()=>C5,()=>c5,()=>R5,()=>m5,0,()=>h5,()=>_5]],XKt=[3,E,q4t,0,[Ce,n5,$8,z8,Q8,y8,vUe,cUt,$n,P1,W8,O8],[[0,1],[()=>Kp,0],0,0,0,0,2,2,0,64,0,0]],JKt=[3,E,$4t,0,[Ce,U8,h8,Ts,Z1,A8,bh,B1,q8,L1,xh,eF,$n,G1,f8,$1,M1,J1,j1,I1,k1],[[0,1],0,0,0,1,1,()=>hqe,[()=>sqe,0],0,()=>p5,0,()=>fqe,0,64,()=>v5,()=>E5,()=>f5,()=>mqe,()=>y5,()=>u5,()=>g5]],YKt=[3,E,V4t,0,[Ce,xe,Ph,b8,Hp],[[0,1],[0,{[oe]:xe}],1,1,()=>Th]],ZKt=[3,E,z4t,0,[Ce,xe,Ch,Vp,vh],[[0,1],[0,{[oe]:xe}],0,()=>Ah,0]],e6t=[3,E,W4t,0,[q1,ws,Ch,Vp,O1,R8,vh],[0,0,0,()=>Ah,0,0,0]],hqe=[3,E,bh,0,[V8,j8,iUe],[64,64,2]],t6t=[3,E,J4t,0,[V8,j8,Y4t,iUe],[64,64,0,2]],r6t=[3,E,jUe,0,[or],[[()=>ii,0]]],n6t=[3,E,VUe,0,[TUe],[4]],s6t=[3,E,HUe,0,[tVt],[1]],o6t=[3,E,zUe,0,[VBe,TUe],[1,4]],i6t=[3,E,WUe,0,[VBe],[1]],ra="unit",a6t=[-3,eqe,"LambdaServiceException",0,[],[]];Oe.TypeRegistry.for(eqe).registerError(a6t,ke);var c6t=[1,E,O3t,0,()=>nF],u6t=[1,E,SBt,0,()=>BKt],l6t=[1,E,mBt,0,()=>fR],d6t=[1,E,CBt,0,()=>sF],p6t=[1,E,GBe,0,()=>OHt],m6t=[1,E,rUe,0,[()=>DHt,0]],g6t=[1,E,NUt,0,()=>SR],v5=[1,E,oqt,0,()=>UHt],f6t=[1,E,rqt,0,()=>qHt],h6t=[1,E,eqt,0,()=>oF],Sqe=[1,E,nqt,0,[()=>Qp,0]],S6t=[1,E,uqt,0,()=>VHt],E6t=[1,E,dqt,0,()=>HHt],y6t=[1,E,eGt,0,()=>Qzt],_6t=[1,E,nGt,0,()=>Xzt],C6t=[1,E,MGt,0,()=>nWt],R6t=[1,E,XGt,0,()=>rWt],v6t=[1,E,u2t,0,()=>lqe],Eqe=[1,E,T8,0,[()=>BWt,0]],x6t=[1,E,T2t,0,[()=>UWt,0]],P6t=[1,E,O2t,0,()=>GWt],x5=[1,E,W1,0,()=>IKt],b6t=[1,E,d4t,0,[()=>EVt,0]],yqe=[2,E,GUt,8,[()=>pVt,0],[()=>mVt,0]],I6t=[3,E,H$t,{[ZUe]:1},[M2t,O$t],[[()=>Hzt,0],()=>zzt]],A6t=[9,E,T3t,{[ne]:["POST","/2018-10-31/layers/{LayerName}/versions/{VersionNumber}/policy",201]},()=>CVt,()=>RVt],T6t=[9,E,F3t,{[ne]:["POST","/2015-03-31/functions/{FunctionName}/policy",201]},()=>vVt,()=>xVt],w6t=[9,E,tBt,{[ne]:["POST","/2025-12-01/durable-executions/{DurableExecutionArn}/checkpoint",200]},()=>qVt,()=>$Vt],D6t=[9,E,W3t,{[ne]:["POST","/2015-03-31/functions/{FunctionName}/aliases",201]},()=>JVt,()=>nF],O6t=[9,E,Q3t,{[ne]:["POST","/2025-11-30/capacity-providers",202]},()=>YVt,()=>ZVt],k6t=[9,E,Y3t,{[ne]:["POST","/2020-04-22/code-signing-configs",201]},()=>eHt,()=>tHt],N6t=[9,E,oBt,{[ne]:["POST","/2015-03-31/event-source-mappings",202]},()=>rHt,()=>SR],L6t=[9,E,aBt,{[ne]:["POST","/2015-03-31/functions",201]},()=>nHt,()=>Qp],M6t=[9,E,uBt,{[ne]:["POST","/2021-10-31/functions/{FunctionName}/url",201]},()=>sHt,()=>oHt],F6t=[9,E,LBt,{[ne]:["DELETE","/2015-03-31/functions/{FunctionName}/aliases/{Name}",204]},()=>iHt,()=>ra],B6t=[9,E,FBt,{[ne]:["DELETE","/2025-11-30/capacity-providers/{CapacityProviderName}",202]},()=>aHt,()=>cHt],U6t=[9,E,qBt,{[ne]:["DELETE","/2020-04-22/code-signing-configs/{CodeSigningConfigArn}",204]},()=>uHt,()=>lHt],q6t=[9,E,VBt,{[ne]:["DELETE","/2015-03-31/event-source-mappings/{UUID}",202]},()=>dHt,()=>SR],$6t=[9,E,zBt,{[ne]:["DELETE","/2015-03-31/functions/{FunctionName}",200]},()=>fHt,()=>hHt],G6t=[9,E,QBt,{[ne]:["DELETE","/2020-06-30/functions/{FunctionName}/code-signing-config",204]},()=>pHt,()=>ra],j6t=[9,E,WBt,{[ne]:["DELETE","/2017-10-31/functions/{FunctionName}/concurrency",204]},()=>mHt,()=>ra],V6t=[9,E,JBt,{[ne]:["DELETE","/2019-09-25/functions/{FunctionName}/event-invoke-config",204]},()=>gHt,()=>ra],H6t=[9,E,tUt,{[ne]:["DELETE","/2021-10-31/functions/{FunctionName}/url",204]},()=>SHt,()=>ra],z6t=[9,E,nUt,{[ne]:["DELETE","/2018-10-31/layers/{LayerName}/versions/{VersionNumber}",204]},()=>EHt,()=>ra],W6t=[9,E,iUt,{[ne]:["DELETE","/2019-09-30/functions/{FunctionName}/provisioned-concurrency",204]},()=>yHt,()=>ra],K6t=[9,E,yqt,{[ne]:["GET","/2016-08-19/account-settings",200]},()=>WHt,()=>KHt],Q6t=[9,E,Sqt,{[ne]:["GET","/2015-03-31/functions/{FunctionName}/aliases/{Name}",200]},()=>QHt,()=>nF],X6t=[9,E,Rqt,{[ne]:["GET","/2025-11-30/capacity-providers/{CapacityProviderName}",200]},()=>XHt,()=>JHt],J6t=[9,E,Pqt,{[ne]:["GET","/2020-04-22/code-signing-configs/{CodeSigningConfigArn}",200]},()=>YHt,()=>ZHt],Y6t=[9,E,Aqt,{[ne]:["GET","/2025-12-01/durable-executions/{DurableExecutionArn}",200]},()=>rzt,()=>nzt],Z6t=[9,E,Tqt,{[ne]:["GET","/2025-12-01/durable-executions/{DurableExecutionArn}/history",200]},()=>ezt,()=>tzt],e9t=[9,E,Nqt,{[ne]:["GET","/2025-12-01/durable-executions/{DurableExecutionArn}/state",200]},()=>szt,()=>ozt],t9t=[9,E,Fqt,{[ne]:["GET","/2015-03-31/event-source-mappings/{UUID}",200]},()=>izt,()=>SR],r9t=[9,E,Uqt,{[ne]:["GET","/2015-03-31/functions/{FunctionName}",200]},()=>fzt,()=>hzt],n9t=[9,E,Vqt,{[ne]:["GET","/2020-06-30/functions/{FunctionName}/code-signing-config",200]},()=>azt,()=>czt],s9t=[9,E,qqt,{[ne]:["GET","/2019-09-30/functions/{FunctionName}/concurrency",200]},()=>uzt,()=>lzt],o9t=[9,E,Wqt,{[ne]:["GET","/2015-03-31/functions/{FunctionName}/configuration",200]},()=>dzt,()=>Qp],i9t=[9,E,Kqt,{[ne]:["GET","/2019-09-25/functions/{FunctionName}/event-invoke-config",200]},()=>pzt,()=>oF],a9t=[9,E,Jqt,{[ne]:["GET","/2024-08-31/functions/{FunctionName}/recursion-config",200]},()=>mzt,()=>gzt],c9t=[9,E,t$t,{[ne]:["GET","/2025-11-30/functions/{FunctionName}/function-scaling-config",200]},()=>Szt,()=>Ezt],u9t=[9,E,s$t,{[ne]:["GET","/2021-10-31/functions/{FunctionName}/url",200]},()=>yzt,()=>_zt],l9t=[9,E,a$t,{[ne]:["GET","/2018-10-31/layers/{LayerName}/versions/{VersionNumber}",200]},()=>xzt,()=>iqe],d9t=[9,E,c$t,{[ne]:["GET","/2018-10-31/layers?find=LayerVersion",200]},()=>Czt,()=>iqe],p9t=[9,E,l$t,{[ne]:["GET","/2018-10-31/layers/{LayerName}/versions/{VersionNumber}/policy",200]},()=>Rzt,()=>vzt],m9t=[9,E,f$t,{[ne]:["GET","/2015-03-31/functions/{FunctionName}/policy",200]},()=>Pzt,()=>bzt],g9t=[9,E,h$t,{[ne]:["GET","/2019-09-30/functions/{FunctionName}/provisioned-concurrency",200]},()=>Izt,()=>Azt],f9t=[9,E,C$t,{[ne]:["GET","/2021-07-20/functions/{FunctionName}/runtime-management-config",200]},()=>Tzt,()=>wzt],h9t=[9,E,K$t,{[ne]:["POST","/2015-03-31/functions/{FunctionName}/invocations",200]},()=>$zt,()=>Gzt],S9t=[9,E,T$t,{[ne]:["POST","/2014-11-13/functions/{FunctionName}/invoke-async",202]},()=>jzt,()=>Vzt],E9t=[9,E,G$t,{[ne]:["POST","/2021-11-15/functions/{FunctionName}/response-streaming-invocations",200]},()=>Wzt,()=>Kzt],y9t=[9,E,iGt,{[ne]:["GET","/2015-03-31/functions/{FunctionName}/aliases",200]},()=>oWt,()=>iWt],_9t=[9,E,aGt,{[ne]:["GET","/2025-11-30/capacity-providers",200]},()=>aWt,()=>cWt],C9t=[9,E,lGt,{[ne]:["GET","/2020-04-22/code-signing-configs",200]},()=>uWt,()=>lWt],R9t=[9,E,mGt,{[ne]:["GET","/2025-12-01/functions/{FunctionName}/durable-executions",200]},()=>dWt,()=>pWt],v9t=[9,E,hGt,{[ne]:["GET","/2015-03-31/event-source-mappings",200]},()=>mWt,()=>gWt],x9t=[9,E,vGt,{[ne]:["GET","/2019-09-25/functions/{FunctionName}/event-invoke-config/list",200]},()=>fWt,()=>hWt],P9t=[9,E,NGt,{[ne]:["GET","/2015-03-31/functions",200]},()=>yWt,()=>_Wt],b9t=[9,E,_Gt,{[ne]:["GET","/2020-04-22/code-signing-configs/{CodeSigningConfigArn}/functions",200]},()=>SWt,()=>EWt],I9t=[9,E,AGt,{[ne]:["GET","/2021-10-31/functions/{FunctionName}/urls",200]},()=>CWt,()=>RWt],A9t=[9,E,DGt,{[ne]:["GET","/2025-11-30/capacity-providers/{CapacityProviderName}/function-versions",200]},()=>vWt,()=>xWt],T9t=[9,E,jGt,{[ne]:["GET","/2018-10-31/layers",200]},()=>PWt,()=>bWt],w9t=[9,E,qGt,{[ne]:["GET","/2018-10-31/layers/{LayerName}/versions",200]},()=>IWt,()=>AWt],D9t=[9,E,zGt,{[ne]:["GET","/2019-09-30/functions/{FunctionName}/provisioned-concurrency?List=ALL",200]},()=>TWt,()=>wWt],O9t=[9,E,ZGt,{[ne]:["GET","/2017-03-31/tags/{Resource}",200]},()=>DWt,()=>OWt],k9t=[9,E,s2t,{[ne]:["GET","/2015-03-31/functions/{FunctionName}/versions",200]},()=>kWt,()=>NWt],N9t=[9,E,ejt,{[ne]:["POST","/2018-10-31/layers/{LayerName}/versions",201]},()=>VWt,()=>HWt],L9t=[9,E,djt,{[ne]:["POST","/2015-03-31/functions/{FunctionName}/versions",201]},()=>zWt,()=>Qp],M9t=[9,E,q2t,{[ne]:["PUT","/2020-06-30/functions/{FunctionName}/code-signing-config",200]},()=>WWt,()=>KWt],F9t=[9,E,B2t,{[ne]:["PUT","/2017-10-31/functions/{FunctionName}/concurrency",200]},()=>QWt,()=>nqe],B9t=[9,E,V2t,{[ne]:["PUT","/2019-09-25/functions/{FunctionName}/event-invoke-config",200]},()=>XWt,()=>oF],U9t=[9,E,z2t,{[ne]:["PUT","/2024-08-31/functions/{FunctionName}/recursion-config",200]},()=>JWt,()=>YWt],q9t=[9,E,Q2t,{[ne]:["PUT","/2025-11-30/functions/{FunctionName}/function-scaling-config",202]},()=>ZWt,()=>eKt],$9t=[9,E,ojt,{[ne]:["PUT","/2019-09-30/functions/{FunctionName}/provisioned-concurrency",202]},()=>tKt,()=>rKt],G9t=[9,E,cjt,{[ne]:["PUT","/2021-07-20/functions/{FunctionName}/runtime-management-config",200]},()=>nKt,()=>sKt],j9t=[9,E,Cjt,{[ne]:["DELETE","/2018-10-31/layers/{LayerName}/versions/{VersionNumber}/policy/{StatementId}",204]},()=>iKt,()=>ra],V9t=[9,E,Pjt,{[ne]:["DELETE","/2015-03-31/functions/{FunctionName}/policy/{StatementId}",204]},()=>aKt,()=>ra],H9t=[9,E,Fjt,{[ne]:["POST","/2025-12-01/durable-execution-callbacks/{CallbackId}/fail",200]},()=>fKt,()=>hKt],z9t=[9,E,qjt,{[ne]:["POST","/2025-12-01/durable-execution-callbacks/{CallbackId}/heartbeat",200]},()=>SKt,()=>EKt],W9t=[9,E,jjt,{[ne]:["POST","/2025-12-01/durable-execution-callbacks/{CallbackId}/succeed",200]},()=>yKt,()=>_Kt],K9t=[9,E,Mjt,{[ne]:["POST","/2025-12-01/durable-executions/{DurableExecutionArn}/stop",200]},()=>kKt,()=>NKt],Q9t=[9,E,C4t,{[ne]:["POST","/2017-03-31/tags/{Resource}",204]},()=>MKt,()=>ra],X9t=[9,E,Q4t,{[ne]:["DELETE","/2017-03-31/tags/{Resource}",204]},()=>jKt,()=>ra],J9t=[9,E,I4t,{[ne]:["PUT","/2015-03-31/functions/{FunctionName}/aliases/{Name}",200]},()=>VKt,()=>nF],Y9t=[9,E,D4t,{[ne]:["PUT","/2025-11-30/capacity-providers/{CapacityProviderName}",202]},()=>HKt,()=>zKt],Z9t=[9,E,N4t,{[ne]:["PUT","/2020-04-22/code-signing-configs/{CodeSigningConfigArn}",200]},()=>WKt,()=>KKt],e8t=[9,E,F4t,{[ne]:["PUT","/2015-03-31/event-source-mappings/{UUID}",202]},()=>QKt,()=>SR],t8t=[9,E,U4t,{[ne]:["PUT","/2015-03-31/functions/{FunctionName}/code",200]},()=>XKt,()=>Qp],r8t=[9,E,G4t,{[ne]:["PUT","/2015-03-31/functions/{FunctionName}/configuration",200]},()=>JKt,()=>Qp],n8t=[9,E,j4t,{[ne]:["POST","/2019-09-25/functions/{FunctionName}/event-invoke-config",200]},()=>YKt,()=>oF],s8t=[9,E,H4t,{[ne]:["PUT","/2021-10-31/functions/{FunctionName}/url",200]},()=>ZKt,()=>e6t],uM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","AddLayerVersionPermission",{}).n("LambdaClient","AddLayerVersionPermissionCommand").sc(A6t).build(){},lM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","AddPermission",{}).n("LambdaClient","AddPermissionCommand").sc(T6t).build(){},dM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","CheckpointDurableExecution",{}).n("LambdaClient","CheckpointDurableExecutionCommand").sc(w6t).build(){},pM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","CreateAlias",{}).n("LambdaClient","CreateAliasCommand").sc(D6t).build(){},mM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","CreateCapacityProvider",{}).n("LambdaClient","CreateCapacityProviderCommand").sc(O6t).build(){},gM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","CreateCodeSigningConfig",{}).n("LambdaClient","CreateCodeSigningConfigCommand").sc(k6t).build(){},fM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","CreateEventSourceMapping",{}).n("LambdaClient","CreateEventSourceMappingCommand").sc(N6t).build(){},hM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","CreateFunction",{}).n("LambdaClient","CreateFunctionCommand").sc(L6t).build(){},SM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","CreateFunctionUrlConfig",{}).n("LambdaClient","CreateFunctionUrlConfigCommand").sc(M6t).build(){},EM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","DeleteAlias",{}).n("LambdaClient","DeleteAliasCommand").sc(F6t).build(){},yM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","DeleteCapacityProvider",{}).n("LambdaClient","DeleteCapacityProviderCommand").sc(B6t).build(){},_M=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","DeleteCodeSigningConfig",{}).n("LambdaClient","DeleteCodeSigningConfigCommand").sc(U6t).build(){},CM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","DeleteEventSourceMapping",{}).n("LambdaClient","DeleteEventSourceMappingCommand").sc(q6t).build(){},RM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","DeleteFunctionCodeSigningConfig",{}).n("LambdaClient","DeleteFunctionCodeSigningConfigCommand").sc(G6t).build(){},vM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","DeleteFunction",{}).n("LambdaClient","DeleteFunctionCommand").sc($6t).build(){},xM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","DeleteFunctionConcurrency",{}).n("LambdaClient","DeleteFunctionConcurrencyCommand").sc(j6t).build(){},PM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","DeleteFunctionEventInvokeConfig",{}).n("LambdaClient","DeleteFunctionEventInvokeConfigCommand").sc(V6t).build(){},bM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","DeleteFunctionUrlConfig",{}).n("LambdaClient","DeleteFunctionUrlConfigCommand").sc(H6t).build(){},IM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","DeleteLayerVersion",{}).n("LambdaClient","DeleteLayerVersionCommand").sc(z6t).build(){},AM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","DeleteProvisionedConcurrencyConfig",{}).n("LambdaClient","DeleteProvisionedConcurrencyConfigCommand").sc(W6t).build(){},TM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","GetAccountSettings",{}).n("LambdaClient","GetAccountSettingsCommand").sc(K6t).build(){},wM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","GetAlias",{}).n("LambdaClient","GetAliasCommand").sc(Q6t).build(){},DM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","GetCapacityProvider",{}).n("LambdaClient","GetCapacityProviderCommand").sc(X6t).build(){},OM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","GetCodeSigningConfig",{}).n("LambdaClient","GetCodeSigningConfigCommand").sc(J6t).build(){},kM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","GetDurableExecution",{}).n("LambdaClient","GetDurableExecutionCommand").sc(Y6t).build(){},K0=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","GetDurableExecutionHistory",{}).n("LambdaClient","GetDurableExecutionHistoryCommand").sc(Z6t).build(){},Q0=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","GetDurableExecutionState",{}).n("LambdaClient","GetDurableExecutionStateCommand").sc(e9t).build(){},NM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","GetEventSourceMapping",{}).n("LambdaClient","GetEventSourceMappingCommand").sc(t9t).build(){},LM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","GetFunctionCodeSigningConfig",{}).n("LambdaClient","GetFunctionCodeSigningConfigCommand").sc(n9t).build(){},Gp=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","GetFunction",{}).n("LambdaClient","GetFunctionCommand").sc(r9t).build(){},MM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","GetFunctionConcurrency",{}).n("LambdaClient","GetFunctionConcurrencyCommand").sc(s9t).build(){},jp=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","GetFunctionConfiguration",{}).n("LambdaClient","GetFunctionConfigurationCommand").sc(o9t).build(){},FM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","GetFunctionEventInvokeConfig",{}).n("LambdaClient","GetFunctionEventInvokeConfigCommand").sc(i9t).build(){},BM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","GetFunctionRecursionConfig",{}).n("LambdaClient","GetFunctionRecursionConfigCommand").sc(a9t).build(){},UM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","GetFunctionScalingConfig",{}).n("LambdaClient","GetFunctionScalingConfigCommand").sc(c9t).build(){},qM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","GetFunctionUrlConfig",{}).n("LambdaClient","GetFunctionUrlConfigCommand").sc(u9t).build(){},$M=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","GetLayerVersionByArn",{}).n("LambdaClient","GetLayerVersionByArnCommand").sc(d9t).build(){},GM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","GetLayerVersion",{}).n("LambdaClient","GetLayerVersionCommand").sc(l9t).build(){},jM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","GetLayerVersionPolicy",{}).n("LambdaClient","GetLayerVersionPolicyCommand").sc(p9t).build(){},VM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","GetPolicy",{}).n("LambdaClient","GetPolicyCommand").sc(m9t).build(){},HM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","GetProvisionedConcurrencyConfig",{}).n("LambdaClient","GetProvisionedConcurrencyConfigCommand").sc(g9t).build(){},zM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","GetRuntimeManagementConfig",{}).n("LambdaClient","GetRuntimeManagementConfigCommand").sc(f9t).build(){},WM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","InvokeAsync",{}).n("LambdaClient","InvokeAsyncCommand").sc(S9t).build(){},KM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","Invoke",{}).n("LambdaClient","InvokeCommand").sc(h9t).build(){},QM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","InvokeWithResponseStream",{eventStream:{output:!0}}).n("LambdaClient","InvokeWithResponseStreamCommand").sc(E9t).build(){},X0=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","ListAliases",{}).n("LambdaClient","ListAliasesCommand").sc(y9t).build(){},J0=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","ListCapacityProviders",{}).n("LambdaClient","ListCapacityProvidersCommand").sc(_9t).build(){},Y0=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","ListCodeSigningConfigs",{}).n("LambdaClient","ListCodeSigningConfigsCommand").sc(C9t).build(){},Z0=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","ListDurableExecutionsByFunction",{}).n("LambdaClient","ListDurableExecutionsByFunctionCommand").sc(R9t).build(){},eR=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","ListEventSourceMappings",{}).n("LambdaClient","ListEventSourceMappingsCommand").sc(v9t).build(){},tR=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","ListFunctionEventInvokeConfigs",{}).n("LambdaClient","ListFunctionEventInvokeConfigsCommand").sc(x9t).build(){},rR=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","ListFunctionsByCodeSigningConfig",{}).n("LambdaClient","ListFunctionsByCodeSigningConfigCommand").sc(b9t).build(){},nR=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","ListFunctions",{}).n("LambdaClient","ListFunctionsCommand").sc(P9t).build(){},sR=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","ListFunctionUrlConfigs",{}).n("LambdaClient","ListFunctionUrlConfigsCommand").sc(I9t).build(){},oR=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","ListFunctionVersionsByCapacityProvider",{}).n("LambdaClient","ListFunctionVersionsByCapacityProviderCommand").sc(A9t).build(){},iR=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","ListLayers",{}).n("LambdaClient","ListLayersCommand").sc(T9t).build(){},aR=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","ListLayerVersions",{}).n("LambdaClient","ListLayerVersionsCommand").sc(w9t).build(){},cR=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","ListProvisionedConcurrencyConfigs",{}).n("LambdaClient","ListProvisionedConcurrencyConfigsCommand").sc(D9t).build(){},XM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","ListTags",{}).n("LambdaClient","ListTagsCommand").sc(O9t).build(){},uR=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","ListVersionsByFunction",{}).n("LambdaClient","ListVersionsByFunctionCommand").sc(k9t).build(){},JM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","PublishLayerVersion",{}).n("LambdaClient","PublishLayerVersionCommand").sc(N9t).build(){},YM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","PublishVersion",{}).n("LambdaClient","PublishVersionCommand").sc(L9t).build(){},ZM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","PutFunctionCodeSigningConfig",{}).n("LambdaClient","PutFunctionCodeSigningConfigCommand").sc(M9t).build(){},e1=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","PutFunctionConcurrency",{}).n("LambdaClient","PutFunctionConcurrencyCommand").sc(F9t).build(){},t1=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","PutFunctionEventInvokeConfig",{}).n("LambdaClient","PutFunctionEventInvokeConfigCommand").sc(B9t).build(){},r1=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","PutFunctionRecursionConfig",{}).n("LambdaClient","PutFunctionRecursionConfigCommand").sc(U9t).build(){},n1=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","PutFunctionScalingConfig",{}).n("LambdaClient","PutFunctionScalingConfigCommand").sc(q9t).build(){},s1=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","PutProvisionedConcurrencyConfig",{}).n("LambdaClient","PutProvisionedConcurrencyConfigCommand").sc($9t).build(){},o1=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","PutRuntimeManagementConfig",{}).n("LambdaClient","PutRuntimeManagementConfigCommand").sc(G9t).build(){},i1=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","RemoveLayerVersionPermission",{}).n("LambdaClient","RemoveLayerVersionPermissionCommand").sc(j9t).build(){},a1=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","RemovePermission",{}).n("LambdaClient","RemovePermissionCommand").sc(V9t).build(){},c1=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","SendDurableExecutionCallbackFailure",{}).n("LambdaClient","SendDurableExecutionCallbackFailureCommand").sc(H9t).build(){},u1=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","SendDurableExecutionCallbackHeartbeat",{}).n("LambdaClient","SendDurableExecutionCallbackHeartbeatCommand").sc(z9t).build(){},l1=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","SendDurableExecutionCallbackSuccess",{}).n("LambdaClient","SendDurableExecutionCallbackSuccessCommand").sc(W9t).build(){},d1=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","StopDurableExecution",{}).n("LambdaClient","StopDurableExecutionCommand").sc(K9t).build(){},p1=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","TagResource",{}).n("LambdaClient","TagResourceCommand").sc(Q9t).build(){},m1=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","UntagResource",{}).n("LambdaClient","UntagResourceCommand").sc(X9t).build(){},g1=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","UpdateAlias",{}).n("LambdaClient","UpdateAliasCommand").sc(J9t).build(){},f1=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","UpdateCapacityProvider",{}).n("LambdaClient","UpdateCapacityProviderCommand").sc(Y9t).build(){},h1=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","UpdateCodeSigningConfig",{}).n("LambdaClient","UpdateCodeSigningConfigCommand").sc(Z9t).build(){},S1=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","UpdateEventSourceMapping",{}).n("LambdaClient","UpdateEventSourceMappingCommand").sc(e8t).build(){},E1=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","UpdateFunctionCode",{}).n("LambdaClient","UpdateFunctionCodeCommand").sc(t8t).build(){},y1=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","UpdateFunctionConfiguration",{}).n("LambdaClient","UpdateFunctionConfigurationCommand").sc(r8t).build(){},_1=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","UpdateFunctionEventInvokeConfig",{}).n("LambdaClient","UpdateFunctionEventInvokeConfigCommand").sc(n8t).build(){},C1=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","UpdateFunctionUrlConfig",{}).n("LambdaClient","UpdateFunctionUrlConfigCommand").sc(s8t).build(){},o8t={AddLayerVersionPermissionCommand:uM,AddPermissionCommand:lM,CheckpointDurableExecutionCommand:dM,CreateAliasCommand:pM,CreateCapacityProviderCommand:mM,CreateCodeSigningConfigCommand:gM,CreateEventSourceMappingCommand:fM,CreateFunctionCommand:hM,CreateFunctionUrlConfigCommand:SM,DeleteAliasCommand:EM,DeleteCapacityProviderCommand:yM,DeleteCodeSigningConfigCommand:_M,DeleteEventSourceMappingCommand:CM,DeleteFunctionCommand:vM,DeleteFunctionCodeSigningConfigCommand:RM,DeleteFunctionConcurrencyCommand:xM,DeleteFunctionEventInvokeConfigCommand:PM,DeleteFunctionUrlConfigCommand:bM,DeleteLayerVersionCommand:IM,DeleteProvisionedConcurrencyConfigCommand:AM,GetAccountSettingsCommand:TM,GetAliasCommand:wM,GetCapacityProviderCommand:DM,GetCodeSigningConfigCommand:OM,GetDurableExecutionCommand:kM,GetDurableExecutionHistoryCommand:K0,GetDurableExecutionStateCommand:Q0,GetEventSourceMappingCommand:NM,GetFunctionCommand:Gp,GetFunctionCodeSigningConfigCommand:LM,GetFunctionConcurrencyCommand:MM,GetFunctionConfigurationCommand:jp,GetFunctionEventInvokeConfigCommand:FM,GetFunctionRecursionConfigCommand:BM,GetFunctionScalingConfigCommand:UM,GetFunctionUrlConfigCommand:qM,GetLayerVersionCommand:GM,GetLayerVersionByArnCommand:$M,GetLayerVersionPolicyCommand:jM,GetPolicyCommand:VM,GetProvisionedConcurrencyConfigCommand:HM,GetRuntimeManagementConfigCommand:zM,InvokeCommand:KM,InvokeAsyncCommand:WM,InvokeWithResponseStreamCommand:QM,ListAliasesCommand:X0,ListCapacityProvidersCommand:J0,ListCodeSigningConfigsCommand:Y0,ListDurableExecutionsByFunctionCommand:Z0,ListEventSourceMappingsCommand:eR,ListFunctionEventInvokeConfigsCommand:tR,ListFunctionsCommand:nR,ListFunctionsByCodeSigningConfigCommand:rR,ListFunctionUrlConfigsCommand:sR,ListFunctionVersionsByCapacityProviderCommand:oR,ListLayersCommand:iR,ListLayerVersionsCommand:aR,ListProvisionedConcurrencyConfigsCommand:cR,ListTagsCommand:XM,ListVersionsByFunctionCommand:uR,PublishLayerVersionCommand:JM,PublishVersionCommand:YM,PutFunctionCodeSigningConfigCommand:ZM,PutFunctionConcurrencyCommand:e1,PutFunctionEventInvokeConfigCommand:t1,PutFunctionRecursionConfigCommand:r1,PutFunctionScalingConfigCommand:n1,PutProvisionedConcurrencyConfigCommand:s1,PutRuntimeManagementConfigCommand:o1,RemoveLayerVersionPermissionCommand:i1,RemovePermissionCommand:a1,SendDurableExecutionCallbackFailureCommand:c1,SendDurableExecutionCallbackHeartbeatCommand:u1,SendDurableExecutionCallbackSuccessCommand:l1,StopDurableExecutionCommand:d1,TagResourceCommand:p1,UntagResourceCommand:m1,UpdateAliasCommand:g1,UpdateCapacityProviderCommand:f1,UpdateCodeSigningConfigCommand:h1,UpdateEventSourceMappingCommand:S1,UpdateFunctionCodeCommand:E1,UpdateFunctionConfigurationCommand:y1,UpdateFunctionEventInvokeConfigCommand:_1,UpdateFunctionUrlConfigCommand:C1},R1=class extends Dr{};Z.createAggregatedClient(o8t,R1);var i8t=Ur.createPaginator(Dr,K0,"Marker","NextMarker","MaxItems"),a8t=Ur.createPaginator(Dr,Q0,"Marker","NextMarker","MaxItems"),c8t=Ur.createPaginator(Dr,X0,"Marker","NextMarker","MaxItems"),u8t=Ur.createPaginator(Dr,J0,"Marker","NextMarker","MaxItems"),l8t=Ur.createPaginator(Dr,Y0,"Marker","NextMarker","MaxItems"),d8t=Ur.createPaginator(Dr,Z0,"Marker","NextMarker","MaxItems"),p8t=Ur.createPaginator(Dr,eR,"Marker","NextMarker","MaxItems"),m8t=Ur.createPaginator(Dr,tR,"Marker","NextMarker","MaxItems"),g8t=Ur.createPaginator(Dr,sR,"Marker","NextMarker","MaxItems"),f8t=Ur.createPaginator(Dr,oR,"Marker","NextMarker","MaxItems"),h8t=Ur.createPaginator(Dr,rR,"Marker","NextMarker","MaxItems"),S8t=Ur.createPaginator(Dr,nR,"Marker","NextMarker","MaxItems"),E8t=Ur.createPaginator(Dr,aR,"Marker","NextMarker","MaxItems"),y8t=Ur.createPaginator(Dr,iR,"Marker","NextMarker","MaxItems"),_8t=Ur.createPaginator(Dr,cR,"Marker","NextMarker","MaxItems"),C8t=Ur.createPaginator(Dr,uR,"Marker","NextMarker","MaxItems"),_qe=async(t,e)=>{let r;try{let n=await t.send(new jp(e));r=n;try{if(n.State==="Active")return{state:je.WaiterState.SUCCESS,reason:r}}catch{}try{if(n.State==="Failed")return{state:je.WaiterState.FAILURE,reason:r}}catch{}try{if(n.State==="Pending")return{state:je.WaiterState.RETRY,reason:r}}catch{}}catch(n){r=n}return{state:je.WaiterState.RETRY,reason:r}},R8t=async(t,e)=>{let r={minDelay:5,maxDelay:300};return je.createWaiter({...r,...t},e,_qe)},v8t=async(t,e)=>{let r={minDelay:5,maxDelay:300},n=await je.createWaiter({...r,...t},e,_qe);return je.checkExceptions(n)},Cqe=async(t,e)=>{let r;try{let n=await t.send(new Gp(e));r=n;try{if(n.Configuration.State==="Active")return{state:je.WaiterState.SUCCESS,reason:r}}catch{}try{if(n.Configuration.State==="Failed")return{state:je.WaiterState.FAILURE,reason:r}}catch{}try{if(n.Configuration.State==="Pending")return{state:je.WaiterState.RETRY,reason:r}}catch{}}catch(n){r=n}return{state:je.WaiterState.RETRY,reason:r}},x8t=async(t,e)=>{let r={minDelay:1,maxDelay:300};return je.createWaiter({...r,...t},e,Cqe)},P8t=async(t,e)=>{let r={minDelay:1,maxDelay:300},n=await je.createWaiter({...r,...t},e,Cqe);return je.checkExceptions(n)},Rqe=async(t,e)=>{let r;try{return r=await t.send(new Gp(e)),{state:je.WaiterState.SUCCESS,reason:r}}catch(n){if(r=n,n.name&&n.name=="ResourceNotFoundException")return{state:je.WaiterState.RETRY,reason:r}}return{state:je.WaiterState.RETRY,reason:r}},b8t=async(t,e)=>{let r={minDelay:1,maxDelay:20};return je.createWaiter({...r,...t},e,Rqe)},I8t=async(t,e)=>{let r={minDelay:1,maxDelay:20},n=await je.createWaiter({...r,...t},e,Rqe);return je.checkExceptions(n)},vqe=async(t,e)=>{let r;try{let n=await t.send(new jp(e));r=n;try{if(n.LastUpdateStatus==="Successful")return{state:je.WaiterState.SUCCESS,reason:r}}catch{}try{if(n.LastUpdateStatus==="Failed")return{state:je.WaiterState.FAILURE,reason:r}}catch{}try{if(n.LastUpdateStatus==="InProgress")return{state:je.WaiterState.RETRY,reason:r}}catch{}}catch(n){r=n}return{state:je.WaiterState.RETRY,reason:r}},A8t=async(t,e)=>{let r={minDelay:5,maxDelay:300};return je.createWaiter({...r,...t},e,vqe)},T8t=async(t,e)=>{let r={minDelay:5,maxDelay:300},n=await je.createWaiter({...r,...t},e,vqe);return je.checkExceptions(n)},xqe=async(t,e)=>{let r;try{let n=await t.send(new Gp(e));r=n;try{if(n.Configuration.LastUpdateStatus==="Successful")return{state:je.WaiterState.SUCCESS,reason:r}}catch{}try{if(n.Configuration.LastUpdateStatus==="Failed")return{state:je.WaiterState.FAILURE,reason:r}}catch{}try{if(n.Configuration.LastUpdateStatus==="InProgress")return{state:je.WaiterState.RETRY,reason:r}}catch{}}catch(n){r=n}return{state:je.WaiterState.RETRY,reason:r}},w8t=async(t,e)=>{let r={minDelay:1,maxDelay:300};return je.createWaiter({...r,...t},e,xqe)},D8t=async(t,e)=>{let r={minDelay:1,maxDelay:300},n=await je.createWaiter({...r,...t},e,xqe);return je.checkExceptions(n)},Pqe=async(t,e)=>{let r;try{let n=await t.send(new jp(e));r=n;try{if(n.State==="Active")return{state:je.WaiterState.SUCCESS,reason:r}}catch{}try{if(n.State==="Failed")return{state:je.WaiterState.FAILURE,reason:r}}catch{}try{if(n.State==="Pending")return{state:je.WaiterState.RETRY,reason:r}}catch{}}catch(n){r=n}return{state:je.WaiterState.RETRY,reason:r}},O8t=async(t,e)=>{let r={minDelay:5,maxDelay:1560};return je.createWaiter({...r,...t},e,Pqe)},k8t=async(t,e)=>{let r={minDelay:5,maxDelay:1560},n=await je.createWaiter({...r,...t},e,Pqe);return je.checkExceptions(n)},N8t={CallerRateLimitExceeded:"CallerRateLimitExceeded",ConcurrentInvocationLimitExceeded:"ConcurrentInvocationLimitExceeded",ConcurrentSnapshotCreateLimitExceeded:"ConcurrentSnapshotCreateLimitExceeded",FunctionInvocationRateLimitExceeded:"FunctionInvocationRateLimitExceeded",ReservedFunctionConcurrentInvocationLimitExceeded:"ReservedFunctionConcurrentInvocationLimitExceeded",ReservedFunctionInvocationRateLimitExceeded:"ReservedFunctionInvocationRateLimitExceeded"},L8t={AWS_IAM:"AWS_IAM",NONE:"NONE"},M8t={BASIC_AUTH:"BASIC_AUTH",CLIENT_CERTIFICATE_TLS_AUTH:"CLIENT_CERTIFICATE_TLS_AUTH",SERVER_ROOT_CA_CERTIFICATE:"SERVER_ROOT_CA_CERTIFICATE"},F8t={JSON:"JSON",SOURCE:"SOURCE"},B8t={KEY:"KEY",VALUE:"VALUE"},U8t={Debug:"DEBUG",Error:"ERROR",Fatal:"FATAL",Info:"INFO",Trace:"TRACE",Warn:"WARN"},q8t={arm64:"arm64",x86_64:"x86_64"},$8t={Auto:"Auto",Manual:"Manual"},G8t={LambdaCapacityProviderAverageCPUUtilization:"LambdaCapacityProviderAverageCPUUtilization"},j8t={Active:"Active",Deleting:"Deleting",Failed:"Failed",Pending:"Pending"},V8t={Active:"Active",ActiveNonInvocable:"ActiveNonInvocable",Deactivated:"Deactivated",Deactivating:"Deactivating",Deleting:"Deleting",Failed:"Failed",Inactive:"Inactive",Pending:"Pending"},H8t={CANCEL:"CANCEL",FAIL:"FAIL",RETRY:"RETRY",START:"START",SUCCEED:"SUCCEED"},z8t={CALLBACK:"CALLBACK",CHAINED_INVOKE:"CHAINED_INVOKE",CONTEXT:"CONTEXT",EXECUTION:"EXECUTION",STEP:"STEP",WAIT:"WAIT"},W8t={CANCELLED:"CANCELLED",FAILED:"FAILED",PENDING:"PENDING",READY:"READY",STARTED:"STARTED",STOPPED:"STOPPED",SUCCEEDED:"SUCCEEDED",TIMED_OUT:"TIMED_OUT"},K8t={Enforce:"Enforce",Warn:"Warn"},Q8t={Default:"Default",UpdateLookup:"UpdateLookup"},X8t={ReportBatchItemFailures:"ReportBatchItemFailures"},J8t={EventCount:"EventCount"},Y8t={KAFKA_BOOTSTRAP_SERVERS:"KAFKA_BOOTSTRAP_SERVERS"},Z8t={BASIC_AUTH:"BASIC_AUTH",CLIENT_CERTIFICATE_TLS_AUTH:"CLIENT_CERTIFICATE_TLS_AUTH",SASL_SCRAM_256_AUTH:"SASL_SCRAM_256_AUTH",SASL_SCRAM_512_AUTH:"SASL_SCRAM_512_AUTH",SERVER_ROOT_CA_CERTIFICATE:"SERVER_ROOT_CA_CERTIFICATE",VIRTUAL_HOST:"VIRTUAL_HOST",VPC_SECURITY_GROUP:"VPC_SECURITY_GROUP",VPC_SUBNET:"VPC_SUBNET"},e5t={AT_TIMESTAMP:"AT_TIMESTAMP",LATEST:"LATEST",TRIM_HORIZON:"TRIM_HORIZON"},t5t={Json:"JSON",Text:"Text"},r5t={Debug:"DEBUG",Info:"INFO",Warn:"WARN"},n5t={Image:"Image",Zip:"Zip"},s5t={LATEST_PUBLISHED:"LATEST_PUBLISHED"},o5t={dotnet10:"dotnet10",dotnet6:"dotnet6",dotnet8:"dotnet8",dotnetcore10:"dotnetcore1.0",dotnetcore20:"dotnetcore2.0",dotnetcore21:"dotnetcore2.1",dotnetcore31:"dotnetcore3.1",go1x:"go1.x",java11:"java11",java17:"java17",java21:"java21",java25:"java25",java8:"java8",java8al2:"java8.al2",nodejs:"nodejs",nodejs10x:"nodejs10.x",nodejs12x:"nodejs12.x",nodejs14x:"nodejs14.x",nodejs16x:"nodejs16.x",nodejs18x:"nodejs18.x",nodejs20x:"nodejs20.x",nodejs22x:"nodejs22.x",nodejs24x:"nodejs24.x",nodejs43:"nodejs4.3",nodejs43edge:"nodejs4.3-edge",nodejs610:"nodejs6.10",nodejs810:"nodejs8.10",provided:"provided",providedal2:"provided.al2",providedal2023:"provided.al2023",python27:"python2.7",python310:"python3.10",python311:"python3.11",python312:"python3.12",python313:"python3.13",python314:"python3.14",python36:"python3.6",python37:"python3.7",python38:"python3.8",python39:"python3.9",ruby25:"ruby2.5",ruby27:"ruby2.7",ruby32:"ruby3.2",ruby33:"ruby3.3",ruby34:"ruby3.4"},i5t={None:"None",PublishedVersions:"PublishedVersions"},a5t={PER_TENANT:"PER_TENANT"},c5t={Active:"Active",PassThrough:"PassThrough"},u5t={Failed:"Failed",InProgress:"InProgress",Successful:"Successful"},l5t={CapacityProviderScalingLimitExceeded:"CapacityProviderScalingLimitExceeded",DisabledKMSKey:"DisabledKMSKey",DisallowedByVpcEncryptionControl:"DisallowedByVpcEncryptionControl",EC2RequestLimitExceeded:"EC2RequestLimitExceeded",EFSIOError:"EFSIOError",EFSMountConnectivityError:"EFSMountConnectivityError",EFSMountFailure:"EFSMountFailure",EFSMountTimeout:"EFSMountTimeout",EniLimitExceeded:"EniLimitExceeded",FunctionError:"FunctionError",FunctionErrorExtensionInitError:"FunctionError.ExtensionInitError",FunctionErrorInitResourceExhausted:"FunctionError.InitResourceExhausted",FunctionErrorInitTimeout:"FunctionError.InitTimeout",FunctionErrorInvalidEntryPoint:"FunctionError.InvalidEntryPoint",FunctionErrorInvalidWorkingDirectory:"FunctionError.InvalidWorkingDirectory",FunctionErrorPermissionDenied:"FunctionError.PermissionDenied",FunctionErrorRuntimeInitError:"FunctionError.RuntimeInitError",FunctionErrorTooManyExtensions:"FunctionError.TooManyExtensions",ImageAccessDenied:"ImageAccessDenied",ImageDeleted:"ImageDeleted",InsufficientCapacity:"InsufficientCapacity",InsufficientRolePermissions:"InsufficientRolePermissions",InternalError:"InternalError",InvalidConfiguration:"InvalidConfiguration",InvalidImage:"InvalidImage",InvalidRuntime:"InvalidRuntime",InvalidSecurityGroup:"InvalidSecurityGroup",InvalidStateKMSKey:"InvalidStateKMSKey",InvalidSubnet:"InvalidSubnet",InvalidZipFileException:"InvalidZipFileException",KMSKeyAccessDenied:"KMSKeyAccessDenied",KMSKeyNotFound:"KMSKeyNotFound",SubnetOutOfIPAddresses:"SubnetOutOfIPAddresses",VcpuLimitExceeded:"VcpuLimitExceeded"},d5t={Off:"Off",On:"On"},p5t={CapacityProviderScalingLimitExceeded:"CapacityProviderScalingLimitExceeded",Creating:"Creating",DisabledKMSKey:"DisabledKMSKey",DisallowedByVpcEncryptionControl:"DisallowedByVpcEncryptionControl",DrainingDurableExecutions:"DrainingDurableExecutions",EC2RequestLimitExceeded:"EC2RequestLimitExceeded",EFSIOError:"EFSIOError",EFSMountConnectivityError:"EFSMountConnectivityError",EFSMountFailure:"EFSMountFailure",EFSMountTimeout:"EFSMountTimeout",EniLimitExceeded:"EniLimitExceeded",FunctionError:"FunctionError",FunctionErrorExtensionInitError:"FunctionError.ExtensionInitError",FunctionErrorInitResourceExhausted:"FunctionError.InitResourceExhausted",FunctionErrorInitTimeout:"FunctionError.InitTimeout",FunctionErrorInvalidEntryPoint:"FunctionError.InvalidEntryPoint",FunctionErrorInvalidWorkingDirectory:"FunctionError.InvalidWorkingDirectory",FunctionErrorPermissionDenied:"FunctionError.PermissionDenied",FunctionErrorRuntimeInitError:"FunctionError.RuntimeInitError",FunctionErrorTooManyExtensions:"FunctionError.TooManyExtensions",Idle:"Idle",ImageAccessDenied:"ImageAccessDenied",ImageDeleted:"ImageDeleted",InsufficientCapacity:"InsufficientCapacity",InsufficientRolePermissions:"InsufficientRolePermissions",InternalError:"InternalError",InvalidConfiguration:"InvalidConfiguration",InvalidImage:"InvalidImage",InvalidRuntime:"InvalidRuntime",InvalidSecurityGroup:"InvalidSecurityGroup",InvalidStateKMSKey:"InvalidStateKMSKey",InvalidSubnet:"InvalidSubnet",InvalidZipFileException:"InvalidZipFileException",KMSKeyAccessDenied:"KMSKeyAccessDenied",KMSKeyNotFound:"KMSKeyNotFound",Restoring:"Restoring",SubnetOutOfIPAddresses:"SubnetOutOfIPAddresses",VcpuLimitExceeded:"VcpuLimitExceeded"},m5t={BUFFERED:"BUFFERED",RESPONSE_STREAM:"RESPONSE_STREAM"},g5t={Allow:"Allow",Terminate:"Terminate"},f5t={Auto:"Auto",FunctionUpdate:"FunctionUpdate",Manual:"Manual"},h5t={DryRun:"DryRun",Event:"Event",RequestResponse:"RequestResponse"},S5t={None:"None",Tail:"Tail"},E5t={DryRun:"DryRun",RequestResponse:"RequestResponse"},y5t={ALL:"ALL"},_5t={FAILED:"FAILED",IN_PROGRESS:"IN_PROGRESS",READY:"READY"},C5t={FAILED:"FAILED",RUNNING:"RUNNING",STOPPED:"STOPPED",SUCCEEDED:"SUCCEEDED",TIMED_OUT:"TIMED_OUT"},R5t={CallbackFailed:"CallbackFailed",CallbackStarted:"CallbackStarted",CallbackSucceeded:"CallbackSucceeded",CallbackTimedOut:"CallbackTimedOut",ChainedInvokeFailed:"ChainedInvokeFailed",ChainedInvokeStarted:"ChainedInvokeStarted",ChainedInvokeStopped:"ChainedInvokeStopped",ChainedInvokeSucceeded:"ChainedInvokeSucceeded",ChainedInvokeTimedOut:"ChainedInvokeTimedOut",ContextFailed:"ContextFailed",ContextStarted:"ContextStarted",ContextSucceeded:"ContextSucceeded",ExecutionFailed:"ExecutionFailed",ExecutionStarted:"ExecutionStarted",ExecutionStopped:"ExecutionStopped",ExecutionSucceeded:"ExecutionSucceeded",ExecutionTimedOut:"ExecutionTimedOut",InvocationCompleted:"InvocationCompleted",StepFailed:"StepFailed",StepStarted:"StepStarted",StepSucceeded:"StepSucceeded",WaitCancelled:"WaitCancelled",WaitStarted:"WaitStarted",WaitSucceeded:"WaitSucceeded"};Object.defineProperty(A,"$Command",{enumerable:!0,get:function(){return Z.Command}});Object.defineProperty(A,"__Client",{enumerable:!0,get:function(){return Z.Client}});A.AddLayerVersionPermissionCommand=uM;A.AddPermissionCommand=lM;A.ApplicationLogLevel=U8t;A.Architecture=q8t;A.CallbackTimeoutException=fBe;A.CapacityProviderLimitExceededException=JFe;A.CapacityProviderPredefinedMetricType=G8t;A.CapacityProviderScalingMode=$8t;A.CapacityProviderState=j8t;A.CheckpointDurableExecutionCommand=dM;A.CodeSigningConfigNotFoundException=t3e;A.CodeSigningPolicy=K8t;A.CodeStorageExceededException=n3e;A.CodeVerificationFailedException=o3e;A.CreateAliasCommand=pM;A.CreateCapacityProviderCommand=mM;A.CreateCodeSigningConfigCommand=gM;A.CreateEventSourceMappingCommand=fM;A.CreateFunctionCommand=hM;A.CreateFunctionUrlConfigCommand=SM;A.DeleteAliasCommand=EM;A.DeleteCapacityProviderCommand=yM;A.DeleteCodeSigningConfigCommand=_M;A.DeleteEventSourceMappingCommand=CM;A.DeleteFunctionCodeSigningConfigCommand=RM;A.DeleteFunctionCommand=vM;A.DeleteFunctionConcurrencyCommand=xM;A.DeleteFunctionEventInvokeConfigCommand=PM;A.DeleteFunctionUrlConfigCommand=bM;A.DeleteLayerVersionCommand=IM;A.DeleteProvisionedConcurrencyConfigCommand=AM;A.DurableExecutionAlreadyStartedException=d3e;A.EC2AccessDeniedException=m3e;A.EC2ThrottledException=f3e;A.EC2UnexpectedException=S3e;A.EFSIOException=y3e;A.EFSMountConnectivityException=C3e;A.EFSMountFailureException=v3e;A.EFSMountTimeoutException=P3e;A.ENILimitReachedException=I3e;A.EndPointType=Y8t;A.EventSourceMappingMetric=J8t;A.EventSourcePosition=e5t;A.EventType=R5t;A.ExecutionStatus=C5t;A.FullDocument=Q8t;A.FunctionResponseType=X8t;A.FunctionUrlAuthType=L8t;A.FunctionVersion=y5t;A.FunctionVersionLatestPublished=s5t;A.FunctionVersionsPerCapacityProviderLimitExceededException=a3e;A.GetAccountSettingsCommand=TM;A.GetAliasCommand=wM;A.GetCapacityProviderCommand=DM;A.GetCodeSigningConfigCommand=OM;A.GetDurableExecutionCommand=kM;A.GetDurableExecutionHistoryCommand=K0;A.GetDurableExecutionStateCommand=Q0;A.GetEventSourceMappingCommand=NM;A.GetFunctionCodeSigningConfigCommand=LM;A.GetFunctionCommand=Gp;A.GetFunctionConcurrencyCommand=MM;A.GetFunctionConfigurationCommand=jp;A.GetFunctionEventInvokeConfigCommand=FM;A.GetFunctionRecursionConfigCommand=BM;A.GetFunctionScalingConfigCommand=UM;A.GetFunctionUrlConfigCommand=qM;A.GetLayerVersionByArnCommand=$M;A.GetLayerVersionCommand=GM;A.GetLayerVersionPolicyCommand=jM;A.GetPolicyCommand=VM;A.GetProvisionedConcurrencyConfigCommand=HM;A.GetRuntimeManagementConfigCommand=zM;A.InvalidCodeSignatureException=u3e;A.InvalidParameterValueException=FFe;A.InvalidRequestContentException=T3e;A.InvalidRuntimeException=D3e;A.InvalidSecurityGroupIDException=k3e;A.InvalidSubnetIDException=L3e;A.InvalidZipFileException=F3e;A.InvocationType=h5t;A.InvokeAsyncCommand=WM;A.InvokeCommand=KM;A.InvokeMode=m5t;A.InvokeWithResponseStreamCommand=QM;A.KMSAccessDeniedException=U3e;A.KMSDisabledException=$3e;A.KMSInvalidStateException=j3e;A.KMSNotFoundException=H3e;A.KafkaSchemaRegistryAuthType=M8t;A.KafkaSchemaValidationAttribute=B8t;A.Lambda=R1;A.LambdaClient=Dr;A.LambdaServiceException=ke;A.LastUpdateStatus=u5t;A.LastUpdateStatusReasonCode=l5t;A.ListAliasesCommand=X0;A.ListCapacityProvidersCommand=J0;A.ListCodeSigningConfigsCommand=Y0;A.ListDurableExecutionsByFunctionCommand=Z0;A.ListEventSourceMappingsCommand=eR;A.ListFunctionEventInvokeConfigsCommand=tR;A.ListFunctionUrlConfigsCommand=sR;A.ListFunctionVersionsByCapacityProviderCommand=oR;A.ListFunctionsByCodeSigningConfigCommand=rR;A.ListFunctionsCommand=nR;A.ListLayerVersionsCommand=aR;A.ListLayersCommand=iR;A.ListProvisionedConcurrencyConfigsCommand=cR;A.ListTagsCommand=XM;A.ListVersionsByFunctionCommand=uR;A.LogFormat=t5t;A.LogType=S5t;A.NoPublishedVersionException=W3e;A.OperationAction=H8t;A.OperationStatus=W8t;A.OperationType=z8t;A.PackageType=n5t;A.PolicyLengthExceededException=UFe;A.PreconditionFailedException=$Fe;A.ProvisionedConcurrencyConfigNotFoundException=mBe;A.ProvisionedConcurrencyStatusEnum=_5t;A.PublishLayerVersionCommand=JM;A.PublishVersionCommand=YM;A.PutFunctionCodeSigningConfigCommand=ZM;A.PutFunctionConcurrencyCommand=e1;A.PutFunctionEventInvokeConfigCommand=t1;A.PutFunctionRecursionConfigCommand=r1;A.PutFunctionScalingConfigCommand=n1;A.PutProvisionedConcurrencyConfigCommand=s1;A.PutRuntimeManagementConfigCommand=o1;A.RecursiveInvocationException=Q3e;A.RecursiveLoop=g5t;A.RemoveLayerVersionPermissionCommand=i1;A.RemovePermissionCommand=a1;A.RequestTooLargeException=J3e;A.ResourceConflictException=jFe;A.ResourceInUseException=ZFe;A.ResourceNotFoundException=HFe;A.ResourceNotReadyException=Z3e;A.ResponseStreamingInvocationType=E5t;A.Runtime=o5t;A.SchemaRegistryEventRecordFormat=F8t;A.SendDurableExecutionCallbackFailureCommand=c1;A.SendDurableExecutionCallbackHeartbeatCommand=u1;A.SendDurableExecutionCallbackSuccessCommand=l1;A.SerializedRequestEntityTooLargeException=tBe;A.ServiceException=WFe;A.SnapStartApplyOn=i5t;A.SnapStartException=nBe;A.SnapStartNotReadyException=oBe;A.SnapStartOptimizationStatus=d5t;A.SnapStartTimeoutException=aBe;A.SourceAccessType=Z8t;A.State=V8t;A.StateReasonCode=p5t;A.StopDurableExecutionCommand=d1;A.SubnetIPAddressLimitReachedException=uBe;A.SystemLogLevel=r5t;A.TagResourceCommand=p1;A.TenantIsolationMode=a5t;A.ThrottleReason=N8t;A.TooManyRequestsException=QFe;A.TracingMode=c5t;A.UnsupportedMediaTypeException=dBe;A.UntagResourceCommand=m1;A.UpdateAliasCommand=g1;A.UpdateCapacityProviderCommand=f1;A.UpdateCodeSigningConfigCommand=h1;A.UpdateEventSourceMappingCommand=S1;A.UpdateFunctionCodeCommand=E1;A.UpdateFunctionConfigurationCommand=y1;A.UpdateFunctionEventInvokeConfigCommand=_1;A.UpdateFunctionUrlConfigCommand=C1;A.UpdateRuntimeOn=f5t;A.paginateGetDurableExecutionHistory=i8t;A.paginateGetDurableExecutionState=a8t;A.paginateListAliases=c8t;A.paginateListCapacityProviders=u8t;A.paginateListCodeSigningConfigs=l8t;A.paginateListDurableExecutionsByFunction=d8t;A.paginateListEventSourceMappings=p8t;A.paginateListFunctionEventInvokeConfigs=m8t;A.paginateListFunctionUrlConfigs=g8t;A.paginateListFunctionVersionsByCapacityProvider=f8t;A.paginateListFunctions=S8t;A.paginateListFunctionsByCodeSigningConfig=h8t;A.paginateListLayerVersions=E8t;A.paginateListLayers=y8t;A.paginateListProvisionedConcurrencyConfigs=_8t;A.paginateListVersionsByFunction=C8t;A.waitForFunctionActive=R8t;A.waitForFunctionActiveV2=x8t;A.waitForFunctionExists=b8t;A.waitForFunctionUpdated=A8t;A.waitForFunctionUpdatedV2=w8t;A.waitForPublishedVersionActive=O8t;A.waitUntilFunctionActive=v8t;A.waitUntilFunctionActiveV2=P8t;A.waitUntilFunctionExists=I8t;A.waitUntilFunctionUpdated=T8t;A.waitUntilFunctionUpdatedV2=D8t;A.waitUntilPublishedVersionActive=k8t});var Tqe=b(iF=>{"use strict";var v5t=require("@smithy/protocol-http");function Iqe(t){return e=>async r=>{let{request:n}=r;if(t.expectContinueHeader!==!1&&v5t.HttpRequest.isInstance(n)&&n.body&&t.runtime==="node"&&t.requestHandler?.constructor?.name!=="FetchHttpHandler"){let s=!0;if(typeof t.expectContinueHeader=="number")try{s=(Number(n.headers?.["content-length"])??t.bodyLengthChecker?.(n.body)??1/0)>=t.expectContinueHeader}catch{}else s=!!t.expectContinueHeader;s&&(n.headers.Expect="100-continue")}return e({...r,request:n})}}var Aqe={step:"build",tags:["SET_EXPECT_HEADER","EXPECT_HEADER"],name:"addExpectContinueMiddleware",override:!0},x5t=t=>({applyToStack:e=>{e.add(Iqe(t),Aqe)}});iF.addExpectContinueMiddleware=Iqe;iF.addExpectContinueMiddlewareOptions=Aqe;iF.getAddExpectContinuePlugin=x5t});var Dqe=b(aF=>{"use strict";Object.defineProperty(aF,"__esModule",{value:!0});aF.getCrc32ChecksumAlgorithmFunction=void 0;var P5t=require("tslib"),b5t=require("@aws-crypto/crc32"),I5t=require("@aws-crypto/util"),wqe=P5t.__importStar(require("zlib")),P5=class{checksum=0;update(e){this.checksum=wqe.crc32(e,this.checksum)}async digest(){return(0,I5t.numToUint8)(this.checksum)}reset(){this.checksum=0}},A5t=()=>typeof wqe.crc32>"u"?b5t.AwsCrc32:P5;aF.getCrc32ChecksumAlgorithmFunction=A5t});var D5=b(be=>{"use strict";var cu=(Dt(),ue(Fr)),kqe=require("@smithy/protocol-http"),Nqe=require("@smithy/util-stream"),T5t=require("@smithy/is-array-buffer"),w5t=require("@aws-crypto/crc32c"),D5t=Dqe(),O5t=require("@smithy/util-utf8"),Oqe=require("@smithy/util-middleware"),uu={WHEN_SUPPORTED:"WHEN_SUPPORTED",WHEN_REQUIRED:"WHEN_REQUIRED"},A5=uu.WHEN_SUPPORTED,wh={WHEN_SUPPORTED:"WHEN_SUPPORTED",WHEN_REQUIRED:"WHEN_REQUIRED"},T5=uu.WHEN_SUPPORTED;be.ChecksumAlgorithm=void 0;(function(t){t.MD5="MD5",t.CRC32="CRC32",t.CRC32C="CRC32C",t.CRC64NVME="CRC64NVME",t.SHA1="SHA1",t.SHA256="SHA256"})(be.ChecksumAlgorithm||(be.ChecksumAlgorithm={}));be.ChecksumLocation=void 0;(function(t){t.HEADER="header",t.TRAILER="trailer"})(be.ChecksumLocation||(be.ChecksumLocation={}));var cF=be.ChecksumAlgorithm.CRC32,Dh;(function(t){t.ENV="env",t.CONFIG="shared config entry"})(Dh||(Dh={}));var uF=(t,e,r,n)=>{if(!(e in t))return;let s=t[e].toUpperCase();if(!Object.values(r).includes(s))throw new TypeError(`Cannot load ${n} '${e}'. Expected one of ${Object.values(r)}, got '${t[e]}'.`);return s},Lqe="AWS_REQUEST_CHECKSUM_CALCULATION",Mqe="request_checksum_calculation",k5t={environmentVariableSelector:t=>uF(t,Lqe,uu,Dh.ENV),configFileSelector:t=>uF(t,Mqe,uu,Dh.CONFIG),default:A5},Fqe="AWS_RESPONSE_CHECKSUM_VALIDATION",Bqe="response_checksum_validation",N5t={environmentVariableSelector:t=>uF(t,Fqe,wh,Dh.ENV),configFileSelector:t=>uF(t,Bqe,wh,Dh.CONFIG),default:T5},b5={CrtCrc64Nvme:null},I5=[be.ChecksumAlgorithm.CRC32,be.ChecksumAlgorithm.CRC32C,be.ChecksumAlgorithm.CRC64NVME,be.ChecksumAlgorithm.SHA1,be.ChecksumAlgorithm.SHA256],L5t=[be.ChecksumAlgorithm.SHA256,be.ChecksumAlgorithm.SHA1,be.ChecksumAlgorithm.CRC32,be.ChecksumAlgorithm.CRC32C,be.ChecksumAlgorithm.CRC64NVME],M5t=(t,{requestChecksumRequired:e,requestAlgorithmMember:r,requestChecksumCalculation:n})=>{if(!r)return n===uu.WHEN_SUPPORTED||e?cF:void 0;if(!t[r])return;let s=t[r];if(!I5.includes(s))throw new Error(`The checksum algorithm "${s}" is not supported by the client. Select one of ${I5}.`);return s},w5=t=>t===be.ChecksumAlgorithm.MD5?"content-md5":`x-amz-checksum-${t.toLowerCase()}`,F5t=(t,e)=>{let r=t.toLowerCase();for(let n of Object.keys(e))if(r===n.toLowerCase())return!0;return!1},B5t=(t,e)=>{let r=t.toLowerCase();for(let n of Object.keys(e))if(n.toLowerCase().startsWith(r))return!0;return!1},Uqe=t=>t!==void 0&&typeof t!="string"&&!ArrayBuffer.isView(t)&&!T5t.isArrayBuffer(t),qqe=(t,e)=>{switch(t){case be.ChecksumAlgorithm.MD5:return e.md5;case be.ChecksumAlgorithm.CRC32:return D5t.getCrc32ChecksumAlgorithmFunction();case be.ChecksumAlgorithm.CRC32C:return w5t.AwsCrc32c;case be.ChecksumAlgorithm.CRC64NVME:if(typeof b5.CrtCrc64Nvme!="function")throw new Error(`Please check whether you have installed the "@aws-sdk/crc64-nvme-crt" package explicitly. +You must also register the package by calling [require("@aws-sdk/crc64-nvme-crt");] or an ESM equivalent such as [import "@aws-sdk/crc64-nvme-crt";]. +For more information please go to https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt`);return b5.CrtCrc64Nvme;case be.ChecksumAlgorithm.SHA1:return e.sha1;case be.ChecksumAlgorithm.SHA256:return e.sha256;default:throw new Error(`Unsupported checksum algorithm: ${t}`)}},$qe=(t,e)=>{let r=new t;return r.update(O5t.toUint8Array(e||"")),r.digest()},Gqe={name:"flexibleChecksumsMiddleware",step:"build",tags:["BODY_CHECKSUM"],override:!0},jqe=(t,e)=>(r,n)=>async s=>{if(!kqe.HttpRequest.isInstance(s.request)||B5t("x-amz-checksum-",s.request.headers))return r(s);let{request:o,input:i}=s,{body:a,headers:c}=o,{base64Encoder:u,streamHasher:l}=t,{requestChecksumRequired:d,requestAlgorithmMember:p}=e,g=await t.requestChecksumCalculation(),y=p?.name,R=p?.httpHeader;y&&!i[y]&&(g===uu.WHEN_SUPPORTED||d)&&(i[y]=cF,R&&(c[R]=cF));let D=M5t(i,{requestChecksumRequired:d,requestAlgorithmMember:p?.name,requestChecksumCalculation:g}),B=a,M=c;if(D){switch(D){case be.ChecksumAlgorithm.CRC32:cu.setFeature(n,"FLEXIBLE_CHECKSUMS_REQ_CRC32","U");break;case be.ChecksumAlgorithm.CRC32C:cu.setFeature(n,"FLEXIBLE_CHECKSUMS_REQ_CRC32C","V");break;case be.ChecksumAlgorithm.CRC64NVME:cu.setFeature(n,"FLEXIBLE_CHECKSUMS_REQ_CRC64","W");break;case be.ChecksumAlgorithm.SHA1:cu.setFeature(n,"FLEXIBLE_CHECKSUMS_REQ_SHA1","X");break;case be.ChecksumAlgorithm.SHA256:cu.setFeature(n,"FLEXIBLE_CHECKSUMS_REQ_SHA256","Y");break}let Y=w5(D),Te=qqe(D,t);if(Uqe(a)){let{getAwsChunkedEncodingStream:Ht,bodyLengthChecker:Tt}=t;B=Ht(typeof t.requestStreamBufferSize=="number"&&t.requestStreamBufferSize>=8*1024?Nqe.createBufferedReadable(a,t.requestStreamBufferSize,n.logger):a,{base64Encoder:u,bodyLengthChecker:Tt,checksumLocationName:Y,checksumAlgorithmFn:Te,streamHasher:l}),M={...c,"content-encoding":c["content-encoding"]?`${c["content-encoding"]},aws-chunked`:"aws-chunked","transfer-encoding":"chunked","x-amz-decoded-content-length":c["content-length"],"x-amz-content-sha256":"STREAMING-UNSIGNED-PAYLOAD-TRAILER","x-amz-trailer":Y},delete M["content-length"]}else if(!F5t(Y,c)){let Ht=await $qe(Te,a);M={...c,[Y]:u(Ht)}}}return await r({...s,request:{...o,headers:M,body:B}})},U5t={name:"flexibleChecksumsInputMiddleware",toMiddleware:"serializerMiddleware",relation:"before",tags:["BODY_CHECKSUM"],override:!0},q5t=(t,e)=>(r,n)=>async s=>{let o=s.input,{requestValidationModeMember:i}=e,a=await t.requestChecksumCalculation(),c=await t.responseChecksumValidation();switch(a){case uu.WHEN_REQUIRED:cu.setFeature(n,"FLEXIBLE_CHECKSUMS_REQ_WHEN_REQUIRED","a");break;case uu.WHEN_SUPPORTED:cu.setFeature(n,"FLEXIBLE_CHECKSUMS_REQ_WHEN_SUPPORTED","Z");break}switch(c){case wh.WHEN_REQUIRED:cu.setFeature(n,"FLEXIBLE_CHECKSUMS_RES_WHEN_REQUIRED","c");break;case wh.WHEN_SUPPORTED:cu.setFeature(n,"FLEXIBLE_CHECKSUMS_RES_WHEN_SUPPORTED","b");break}return i&&!o[i]&&c===wh.WHEN_SUPPORTED&&(o[i]="ENABLED"),r(s)},Vqe=(t=[])=>{let e=[];for(let r of L5t)!t.includes(r)||!I5.includes(r)||e.push(r);return e},$5t=t=>{let e=t.lastIndexOf("-");if(e!==-1){let r=t.slice(e+1);if(!r.startsWith("0")){let n=parseInt(r,10);if(!isNaN(n)&&n>=1&&n<=1e4)return!0}}return!1},G5t=async(t,{checksumAlgorithmFn:e,base64Encoder:r})=>r(await $qe(e,t)),j5t=async(t,{config:e,responseAlgorithms:r,logger:n})=>{let s=Vqe(r),{body:o,headers:i}=t;for(let a of s){let c=w5(a),u=i[c];if(u){let l;try{l=qqe(a,e)}catch(g){if(a===be.ChecksumAlgorithm.CRC64NVME){n?.warn(`Skipping ${be.ChecksumAlgorithm.CRC64NVME} checksum validation: ${g.message}`);continue}throw g}let{base64Encoder:d}=e;if(Uqe(o)){t.body=Nqe.createChecksumStream({expectedChecksum:u,checksumSourceLocation:c,checksum:new l,source:o,base64Encoder:d});return}let p=await G5t(o,{checksumAlgorithmFn:l,base64Encoder:d});if(p===u)break;throw new Error(`Checksum mismatch: expected "${p}" but received "${u}" in response header "${c}".`)}}},V5t={name:"flexibleChecksumsResponseMiddleware",toMiddleware:"deserializerMiddleware",relation:"after",tags:["BODY_CHECKSUM"],override:!0},H5t=(t,e)=>(r,n)=>async s=>{if(!kqe.HttpRequest.isInstance(s.request))return r(s);let o=s.input,i=await r(s),a=i.response,{requestValidationModeMember:c,responseAlgorithms:u}=e;if(c&&o[c]==="ENABLED"){let{clientName:l,commandName:d}=n;if(l==="S3Client"&&d==="GetObjectCommand"&&Vqe(u).every(g=>{let y=w5(g),R=a.headers[y];return!R||$5t(R)}))return i;await j5t(a,{config:t,responseAlgorithms:u,logger:n.logger})}return i},z5t=(t,e)=>({applyToStack:r=>{r.add(jqe(t,e),Gqe),r.addRelativeTo(q5t(t,e),U5t),r.addRelativeTo(H5t(t,e),V5t)}}),W5t=t=>{let{requestChecksumCalculation:e,responseChecksumValidation:r,requestStreamBufferSize:n}=t;return Object.assign(t,{requestChecksumCalculation:Oqe.normalizeProvider(e??A5),responseChecksumValidation:Oqe.normalizeProvider(r??T5),requestStreamBufferSize:Number(n??0)})};be.CONFIG_REQUEST_CHECKSUM_CALCULATION=Mqe;be.CONFIG_RESPONSE_CHECKSUM_VALIDATION=Bqe;be.DEFAULT_CHECKSUM_ALGORITHM=cF;be.DEFAULT_REQUEST_CHECKSUM_CALCULATION=A5;be.DEFAULT_RESPONSE_CHECKSUM_VALIDATION=T5;be.ENV_REQUEST_CHECKSUM_CALCULATION=Lqe;be.ENV_RESPONSE_CHECKSUM_VALIDATION=Fqe;be.NODE_REQUEST_CHECKSUM_CALCULATION_CONFIG_OPTIONS=k5t;be.NODE_RESPONSE_CHECKSUM_VALIDATION_CONFIG_OPTIONS=N5t;be.RequestChecksumCalculation=uu;be.ResponseChecksumValidation=wh;be.crc64NvmeCrtContainer=b5;be.flexibleChecksumsMiddleware=jqe;be.flexibleChecksumsMiddlewareOptions=Gqe;be.getFlexibleChecksumsPlugin=z5t;be.resolveFlexibleChecksumsConfig=W5t});var k5=b((vnn,zqe)=>{"use strict";var lF=Object.defineProperty,K5t=Object.getOwnPropertyDescriptor,Q5t=Object.getOwnPropertyNames,X5t=Object.prototype.hasOwnProperty,O5=(t,e)=>lF(t,"name",{value:e,configurable:!0}),J5t=(t,e)=>{for(var r in e)lF(t,r,{get:e[r],enumerable:!0})},Y5t=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of Q5t(e))!X5t.call(t,s)&&s!==r&&lF(t,s,{get:()=>e[s],enumerable:!(n=K5t(e,s))||n.enumerable});return t},Z5t=t=>Y5t(lF({},"__esModule",{value:!0}),t),Hqe={};J5t(Hqe,{build:()=>rQt,parse:()=>tQt,validate:()=>eQt});zqe.exports=Z5t(Hqe);var eQt=O5(t=>typeof t=="string"&&t.indexOf("arn:")===0&&t.split(":").length>=6,"validate"),tQt=O5(t=>{let e=t.split(":");if(e.length<6||e[0]!=="arn")throw new Error("Malformed ARN");let[,r,n,s,o,...i]=e;return{partition:r,service:n,region:s,accountId:o,resource:i.join(":")}},"parse"),rQt=O5(t=>{let{partition:e="aws",service:r,region:n,accountId:s,resource:o}=t;if([r,n,s,o].some(i=>typeof i!="string"))throw new Error("Input ARN object is invalid");return`arn:${e}:${r}:${n}:${s}:${o}`},"build")});var gF=b(Ct=>{"use strict";var ER=require("@smithy/protocol-http"),Xqe=require("@smithy/smithy-client"),nQt=require("@smithy/signature-v4"),dF=require("@smithy/util-config-provider"),sQt=(Dt(),ue(Fr)),Jqe=require("@smithy/core");require("@smithy/types");var oQt=require("@smithy/util-middleware"),Wqe=require("@smithy/util-stream"),iQt=k5(),aQt="content-length",cQt="x-amz-decoded-content-length";function Yqe(){return(t,e)=>async r=>{let{request:n}=r;if(ER.HttpRequest.isInstance(n)&&!(aQt in n.headers)&&!(cQt in n.headers)){let s="Are you using a Stream of unknown length as the Body of a PutObject request? Consider using Upload instead from @aws-sdk/lib-storage.";typeof e?.logger?.warn=="function"&&!(e.logger instanceof Xqe.NoOpLogger)?e.logger.warn(s):console.warn(s)}return t({...r})}}var Zqe={step:"finalizeRequest",tags:["CHECK_CONTENT_LENGTH_HEADER"],name:"getCheckContentLengthHeaderPlugin",override:!0},uQt=t=>({applyToStack:e=>{e.add(Yqe(),Zqe)}}),e$e=t=>(e,r)=>async n=>{let s=await t.region(),o=t.region,i=()=>{};r.__s3RegionRedirect&&(Object.defineProperty(t,"region",{writable:!1,value:async()=>r.__s3RegionRedirect}),i=()=>Object.defineProperty(t,"region",{writable:!0,value:o}));try{let a=await e(n);if(r.__s3RegionRedirect){i();let c=await t.region();if(s!==c)throw new Error("Region was not restored following S3 region redirect.")}return a}catch(a){throw i(),a}},t$e={tags:["REGION_REDIRECT","S3"],name:"regionRedirectEndpointMiddleware",override:!0,relation:"before",toMiddleware:"endpointV2Middleware"};function r$e(t){return(e,r)=>async n=>{try{return await e(n)}catch(s){if(t.followRegionRedirects){let o=s?.$metadata?.httpStatusCode,i=r.commandName==="HeadBucketCommand",a=s?.$response?.headers?.["x-amz-bucket-region"];if(a&&(o===301||o===400&&(s?.name==="IllegalLocationConstraintException"||i))){try{let c=a;r.logger?.debug(`Redirecting from ${await t.region()} to ${c}`),r.__s3RegionRedirect=c}catch(c){throw new Error("Region redirect failed: "+c)}return e(n)}}throw s}}}var n$e={step:"initialize",tags:["REGION_REDIRECT","S3"],name:"regionRedirectMiddleware",override:!0},lQt=t=>({applyToStack:e=>{e.add(r$e(t),n$e),e.addRelativeTo(e$e(t),t$e)}}),s$e=t=>(e,r)=>async n=>{let s=await e(n),{response:o}=s;if(ER.HttpResponse.isInstance(o)&&o.headers.expires){o.headers.expiresstring=o.headers.expires;try{Xqe.parseRfc7231DateTime(o.headers.expires)}catch(i){r.logger?.warn(`AWS SDK Warning for ${r.clientName}::${r.commandName} response parsing (${o.headers.expires}): ${i}`),delete o.headers.expires}}return s},o$e={tags:["S3"],name:"s3ExpiresMiddleware",override:!0,relation:"after",toMiddleware:"deserializerMiddleware"},dQt=t=>({applyToStack:e=>{e.addRelativeTo(s$e(),o$e)}}),pF=class t{data;lastPurgeTime=Date.now();static EXPIRED_CREDENTIAL_PURGE_INTERVAL_MS=3e4;constructor(e={}){this.data=e}get(e){let r=this.data[e];if(r)return r}set(e,r){return this.data[e]=r,r}delete(e){delete this.data[e]}async purgeExpired(){let e=Date.now();if(!(this.lastPurgeTime+t.EXPIRED_CREDENTIAL_PURGE_INTERVAL_MS>e))for(let r in this.data){let n=this.data[r];if(!n.isRefreshing){let s=await n.identity;s.expiration&&s.expiration.getTime()(i.expiration?.getTime()??0){s.set(n,new Oh(Promise.resolve(u)))})),i)):s.set(n,new Oh(this.getIdentity(n))).identity}async getIdentity(e){await this.cache.purgeExpired().catch(s=>{console.warn(`Error while clearing expired entries in S3ExpressIdentityCache: +`+s)});let r=await this.createSessionFn(e);if(!r.Credentials?.AccessKeyId||!r.Credentials?.SecretAccessKey)throw new Error("s3#createSession response credential missing AccessKeyId or SecretAccessKey.");return{accessKeyId:r.Credentials.AccessKeyId,secretAccessKey:r.Credentials.SecretAccessKey,sessionToken:r.Credentials.SessionToken,expiration:r.Credentials.Expiration?new Date(r.Credentials.Expiration):void 0}}},pQt="Directory",mQt="S3Express",gQt="sigv4-s3express",N5="X-Amz-S3session-Token",L5=N5.toLowerCase(),fQt="AWS_S3_DISABLE_EXPRESS_SESSION_AUTH",hQt="s3_disable_express_session_auth",SQt={environmentVariableSelector:t=>dF.booleanSelector(t,fQt,dF.SelectorType.ENV),configFileSelector:t=>dF.booleanSelector(t,hQt,dF.SelectorType.CONFIG),default:!1},M5=class extends nQt.SignatureV4{async signWithCredentials(e,r,n){let s=Kqe(r);e.headers[L5]=r.sessionToken;let o=this;return Qqe(o,s),o.signRequest(e,n??{})}async presignWithCredentials(e,r,n){let s=Kqe(r);return delete e.headers[L5],e.headers[N5]=r.sessionToken,e.query=e.query??{},e.query[N5]=r.sessionToken,Qqe(this,s),this.presign(e,n)}};function Kqe(t){return{accessKeyId:t.accessKeyId,secretAccessKey:t.secretAccessKey,expiration:t.expiration}}function Qqe(t,e){let r=setTimeout(()=>{throw new Error("SignatureV4S3Express credential override was created but not called.")},10),n=t.credentialProvider,s=()=>(clearTimeout(r),t.credentialProvider=n,Promise.resolve(e));t.credentialProvider=s}var i$e=t=>(e,r)=>async n=>{if(r.endpointV2){let s=r.endpointV2,o=s.properties?.authSchemes?.[0]?.name===gQt;if((s.properties?.backend===mQt||s.properties?.bucketType===pQt)&&(sQt.setFeature(r,"S3_EXPRESS_BUCKET","J"),r.isS3ExpressBucket=!0),o){let a=n.input.Bucket;if(a){let c=await t.s3ExpressIdentityProvider.getS3ExpressIdentity(await t.credentials(),{Bucket:a});r.s3ExpressIdentity=c,ER.HttpRequest.isInstance(n.request)&&c.sessionToken&&(n.request.headers[L5]=c.sessionToken)}}}return e(n)},a$e={name:"s3ExpressMiddleware",step:"build",tags:["S3","S3_EXPRESS"],override:!0},EQt=t=>({applyToStack:e=>{e.add(i$e(t),a$e)}}),yQt=async(t,e,r,n)=>{let s=await n.signWithCredentials(r,t,{});if(s.headers["X-Amz-Security-Token"]||s.headers["x-amz-security-token"])throw new Error("X-Amz-Security-Token must not be set for s3-express requests.");return s},_Qt=t=>e=>{throw e},CQt=(t,e)=>{},RQt=Jqe.httpSigningMiddlewareOptions,c$e=t=>(e,r)=>async n=>{if(!ER.HttpRequest.isInstance(n.request))return e(n);let o=oQt.getSmithyContext(r).selectedHttpAuthScheme;if(!o)throw new Error("No HttpAuthScheme was selected: unable to sign request");let{httpAuthOption:{signingProperties:i={}},identity:a,signer:c}=o,u;r.s3ExpressIdentity?u=await yQt(r.s3ExpressIdentity,i,n.request,await t.signer()):u=await c.sign(n.request,a,i);let l=await e({...n,request:u}).catch((c.errorHandler||_Qt)(i));return(c.successHandler||CQt)(l.response,i),l},vQt=t=>({applyToStack:e=>{e.addRelativeTo(c$e(t),Jqe.httpSigningMiddlewareOptions)}}),xQt=(t,{session:e})=>{let[r,n]=e,{forcePathStyle:s,useAccelerateEndpoint:o,disableMultiregionAccessPoints:i,followRegionRedirects:a,s3ExpressIdentityProvider:c,bucketEndpoint:u,expectContinueHeader:l}=t;return Object.assign(t,{forcePathStyle:s??!1,useAccelerateEndpoint:o??!1,disableMultiregionAccessPoints:i??!1,followRegionRedirects:a??!1,s3ExpressIdentityProvider:c??new mF(async d=>r().send(new n({Bucket:d}))),bucketEndpoint:u??!1,expectContinueHeader:l??2097152})},PQt={CopyObjectCommand:!0,UploadPartCopyCommand:!0,CompleteMultipartUploadCommand:!0},bQt=3e3,u$e=t=>(e,r)=>async n=>{let s=await e(n),{response:o}=s;if(!ER.HttpResponse.isInstance(o))return s;let{statusCode:i,body:a}=o;if(i<200||i>=300||!(typeof a?.stream=="function"||typeof a?.pipe=="function"||typeof a?.tee=="function"))return s;let u=a,l=a;a&&typeof a=="object"&&!(a instanceof Uint8Array)&&([u,l]=await Wqe.splitStream(a)),o.body=l;let d=await IQt(u,{streamCollector:async g=>Wqe.headStream(g,bQt)});typeof u?.destroy=="function"&&u.destroy();let p=t.utf8Encoder(d.subarray(d.length-16));if(d.length===0&&PQt[r.commandName]){let g=new Error("S3 aborted request");throw g.name="InternalError",g}return p&&p.endsWith("")&&(o.statusCode=400),s},IQt=(t=new Uint8Array,e)=>t instanceof Uint8Array?Promise.resolve(t):e.streamCollector(t)||Promise.resolve(new Uint8Array),l$e={relation:"after",toMiddleware:"deserializerMiddleware",tags:["THROW_200_EXCEPTIONS","S3"],name:"throw200ExceptionsMiddleware",override:!0},AQt=t=>({applyToStack:e=>{e.addRelativeTo(u$e(t),l$e)}});function TQt(t){return(e,r)=>async n=>{if(t.bucketEndpoint){let s=r.endpointV2;if(s){let o=n.input.Bucket;if(typeof o=="string")try{let i=new URL(o);r.endpointV2={...s,url:i}}catch(i){let a=`@aws-sdk/middleware-sdk-s3: bucketEndpoint=true was set but Bucket=${o} could not be parsed as URL.`;throw r.logger?.constructor?.name==="NoOpLogger"?console.warn(a):r.logger?.warn?.(a),i}}}return e(n)}}var wQt={name:"bucketEndpointMiddleware",override:!0,relation:"after",toMiddleware:"endpointV2Middleware"};function d$e({bucketEndpoint:t}){return e=>async r=>{let{input:{Bucket:n}}=r;if(!t&&typeof n=="string"&&!iQt.validate(n)&&n.indexOf("/")>=0){let s=new Error(`Bucket name shouldn't contain '/', received '${n}'`);throw s.name="InvalidBucketName",s}return e({...r})}}var p$e={step:"initialize",tags:["VALIDATE_BUCKET_NAME"],name:"validateBucketNameMiddleware",override:!0},DQt=t=>({applyToStack:e=>{e.add(d$e(t),p$e),e.addRelativeTo(TQt(t),wQt)}});Ct.NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_OPTIONS=SQt;Ct.S3ExpressIdentityCache=pF;Ct.S3ExpressIdentityCacheEntry=Oh;Ct.S3ExpressIdentityProviderImpl=mF;Ct.SignatureV4S3Express=M5;Ct.checkContentLengthHeader=Yqe;Ct.checkContentLengthHeaderMiddlewareOptions=Zqe;Ct.getCheckContentLengthHeaderPlugin=uQt;Ct.getRegionRedirectMiddlewarePlugin=lQt;Ct.getS3ExpiresMiddlewarePlugin=dQt;Ct.getS3ExpressHttpSigningPlugin=vQt;Ct.getS3ExpressPlugin=EQt;Ct.getThrow200ExceptionsPlugin=AQt;Ct.getValidateBucketNamePlugin=DQt;Ct.regionRedirectEndpointMiddleware=e$e;Ct.regionRedirectEndpointMiddlewareOptions=t$e;Ct.regionRedirectMiddleware=r$e;Ct.regionRedirectMiddlewareOptions=n$e;Ct.resolveS3Config=xQt;Ct.s3ExpiresMiddleware=s$e;Ct.s3ExpiresMiddlewareOptions=o$e;Ct.s3ExpressHttpSigningMiddleware=c$e;Ct.s3ExpressHttpSigningMiddlewareOptions=RQt;Ct.s3ExpressMiddleware=i$e;Ct.s3ExpressMiddlewareOptions=a$e;Ct.throw200ExceptionsMiddleware=u$e;Ct.throw200ExceptionsMiddlewareOptions=l$e;Ct.validateBucketNameMiddleware=d$e;Ct.validateBucketNameMiddlewareOptions=p$e});var U5=b(B5=>{"use strict";var OQt=gF(),m$e=require("@smithy/signature-v4"),yR={CrtSignerV4:null},F5=class{sigv4aSigner;sigv4Signer;signerOptions;static sigv4aDependency(){return typeof yR.CrtSignerV4=="function"?"crt":typeof m$e.signatureV4aContainer.SignatureV4a=="function"?"js":"none"}constructor(e){this.sigv4Signer=new OQt.SignatureV4S3Express(e),this.signerOptions=e}async sign(e,r={}){return r.signingRegion==="*"?this.getSigv4aSigner().sign(e,r):this.sigv4Signer.sign(e,r)}async signWithCredentials(e,r,n={}){if(n.signingRegion==="*"){let s=this.getSigv4aSigner(),o=yR.CrtSignerV4;if(o&&s instanceof o)return s.signWithCredentials(e,r,n);throw new Error(`signWithCredentials with signingRegion '*' is only supported when using the CRT dependency @aws-sdk/signature-v4-crt. Please check whether you have installed the "@aws-sdk/signature-v4-crt" package explicitly. You must also register the package by calling [require("@aws-sdk/signature-v4-crt");] or an ESM equivalent such as [import "@aws-sdk/signature-v4-crt";]. For more information please go to https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt`)}return this.sigv4Signer.signWithCredentials(e,r,n)}async presign(e,r={}){if(r.signingRegion==="*"){let n=this.getSigv4aSigner(),s=yR.CrtSignerV4;if(s&&n instanceof s)return n.presign(e,r);throw new Error(`presign with signingRegion '*' is only supported when using the CRT dependency @aws-sdk/signature-v4-crt. Please check whether you have installed the "@aws-sdk/signature-v4-crt" package explicitly. You must also register the package by calling [require("@aws-sdk/signature-v4-crt");] or an ESM equivalent such as [import "@aws-sdk/signature-v4-crt";]. For more information please go to https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt`)}return this.sigv4Signer.presign(e,r)}async presignWithCredentials(e,r,n={}){if(n.signingRegion==="*")throw new Error("Method presignWithCredentials is not supported for [signingRegion=*].");return this.sigv4Signer.presignWithCredentials(e,r,n)}getSigv4aSigner(){if(!this.sigv4aSigner){let e=yR.CrtSignerV4,r=m$e.signatureV4aContainer.SignatureV4a;if(this.signerOptions.runtime==="node"){if(!e&&!r)throw new Error("Neither CRT nor JS SigV4a implementation is available. Please load either @aws-sdk/signature-v4-crt or @aws-sdk/signature-v4a. For more information please go to https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt");if(e&&typeof e=="function")this.sigv4aSigner=new e({...this.signerOptions,signingAlgorithm:1});else if(r&&typeof r=="function")this.sigv4aSigner=new r({...this.signerOptions});else throw new Error("Available SigV4a implementation is not a valid constructor. Please ensure you've properly imported @aws-sdk/signature-v4-crt or @aws-sdk/signature-v4a.For more information please go to https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt")}else{if(!r||typeof r!="function")throw new Error("JS SigV4a implementation is not available or not a valid constructor. Please check whether you have installed the @aws-sdk/signature-v4a package explicitly. The CRT implementation is not available for browsers. You must also register the package by calling [require('@aws-sdk/signature-v4a');] or an ESM equivalent such as [import '@aws-sdk/signature-v4a';]. For more information please go to https://github.com/aws/aws-sdk-js-v3#using-javascript-non-crt-implementation-of-sigv4a");this.sigv4aSigner=new r({...this.signerOptions})}}return this.sigv4aSigner}};B5.SignatureV4MultiRegion=F5;B5.signatureV4CrtContainer=yR});var qGe=b(xF=>{"use strict";Object.defineProperty(xF,"__esModule",{value:!0});xF.ruleSet=void 0;var lQ="required",v="type",F="rules",P="conditions",k="fn",N="argv",me="ref",qe="assign",ie="url",ae="properties",lu="backend",en="authSchemes",kr="disableDoubleEncoding",Nr="signingName",fn="signingRegion",ce="headers",dQ="signingRegionSet",kQt=6,NQt=!1,Ya=!0,go="isSet",Cr="booleanEquals",de="error",_F="aws.partition",it="stringEquals",ir="getAttr",ar="name",Ut="substring",g$e="bucketSuffix",pQ="parseURL",q="endpoint",U="tree",CF="aws.isVirtualHostableS3Bucket",RF="{url#scheme}://{Bucket}.{url#authority}{url#path}",tc="not",f$e="accessPointSuffix",yF="{url#scheme}://{url#authority}{url#path}",xGe="hardwareType",PGe="regionPrefix",h$e="bucketAliasSuffix",cQ="outpostId",Xp="isValidHostLabel",mQ="sigv4a",bR="s3-outposts",Mh="s3",bGe="{url#scheme}://{url#authority}{url#normalizedPath}{Bucket}",IGe="https://{Bucket}.s3-accelerate.{partitionResult#dnsSuffix}",S$e="https://{Bucket}.s3.{partitionResult#dnsSuffix}",AGe="aws.parseArn",TGe="bucketArn",wGe="arnType",vF="",gQ="s3-object-lambda",DGe="accesspoint",fQ="accessPointName",E$e="{url#scheme}://{accessPointName}-{bucketArn#accountId}.{url#authority}{url#path}",y$e="mrapPartition",_$e="outpostType",C$e="arnPrefix",OGe="{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}",R$e="https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",v$e="https://s3.{partitionResult#dnsSuffix}",kh={[lQ]:!1,[v]:"string"},Nh={[lQ]:!0,default:!1,[v]:"boolean"},_R={[lQ]:!1,[v]:"boolean"},ci={[k]:Cr,[N]:[{[me]:"Accelerate"},!0]},Gt={[k]:Cr,[N]:[{[me]:"UseFIPS"},!0]},kt={[k]:Cr,[N]:[{[me]:"UseDualStack"},!0]},_r={[k]:go,[N]:[{[me]:"Endpoint"}]},kGe={[k]:_F,[N]:[{[me]:"Region"}],[qe]:"partitionResult"},x$e={[k]:it,[N]:[{[k]:ir,[N]:[{[me]:"partitionResult"},ar]},"aws-cn"]},RR={[k]:go,[N]:[{[me]:"Bucket"}]},nt={[me]:"Bucket"},P$e={[P]:[ci],[de]:"S3Express does not support S3 Accelerate.",[v]:de},b$e={[P]:[_r,{[k]:pQ,[N]:[{[me]:"Endpoint"}],[qe]:"url"}],[F]:[{[P]:[{[k]:go,[N]:[{[me]:"DisableS3ExpressSessionAuth"}]},{[k]:Cr,[N]:[{[me]:"DisableS3ExpressSessionAuth"},!0]}],[F]:[{[P]:[{[k]:Cr,[N]:[{[k]:ir,[N]:[{[me]:"url"},"isIp"]},!0]}],[F]:[{[P]:[{[k]:"uriEncode",[N]:[nt],[qe]:"uri_encoded_bucket"}],[F]:[{[q]:{[ie]:"{url#scheme}://{url#authority}/{uri_encoded_bucket}{url#path}",[ae]:{[lu]:"S3Express",[en]:[{[kr]:!0,[ar]:"sigv4",[Nr]:"s3express",[fn]:"{Region}"}]},[ce]:{}},[v]:q}],[v]:U}],[v]:U},{[P]:[{[k]:CF,[N]:[nt,!1]}],[F]:[{[q]:{[ie]:RF,[ae]:{[lu]:"S3Express",[en]:[{[kr]:!0,[ar]:"sigv4",[Nr]:"s3express",[fn]:"{Region}"}]},[ce]:{}},[v]:q}],[v]:U},{[de]:"S3Express bucket name is not a valid virtual hostable name.",[v]:de}],[v]:U},{[P]:[{[k]:Cr,[N]:[{[k]:ir,[N]:[{[me]:"url"},"isIp"]},!0]}],[F]:[{[P]:[{[k]:"uriEncode",[N]:[nt],[qe]:"uri_encoded_bucket"}],[F]:[{[q]:{[ie]:"{url#scheme}://{url#authority}/{uri_encoded_bucket}{url#path}",[ae]:{[lu]:"S3Express",[en]:[{[kr]:!0,[ar]:"sigv4-s3express",[Nr]:"s3express",[fn]:"{Region}"}]},[ce]:{}},[v]:q}],[v]:U}],[v]:U},{[P]:[{[k]:CF,[N]:[nt,!1]}],[F]:[{[q]:{[ie]:RF,[ae]:{[lu]:"S3Express",[en]:[{[kr]:!0,[ar]:"sigv4-s3express",[Nr]:"s3express",[fn]:"{Region}"}]},[ce]:{}},[v]:q}],[v]:U},{[de]:"S3Express bucket name is not a valid virtual hostable name.",[v]:de}],[v]:U},rs={[k]:pQ,[N]:[{[me]:"Endpoint"}],[qe]:"url"},q5={[k]:Cr,[N]:[{[k]:ir,[N]:[{[me]:"url"},"isIp"]},!0]},NGe={[me]:"url"},LGe={[k]:"uriEncode",[N]:[nt],[qe]:"uri_encoded_bucket"},mo={[lu]:"S3Express",[en]:[{[kr]:!0,[ar]:"sigv4",[Nr]:"s3express",[fn]:"{Region}"}]},Ie={},MGe={[k]:CF,[N]:[nt,!1]},I$e={[de]:"S3Express bucket name is not a valid virtual hostable name.",[v]:de},A$e={[k]:go,[N]:[{[me]:"UseS3ExpressControlEndpoint"}]},T$e={[k]:Cr,[N]:[{[me]:"UseS3ExpressControlEndpoint"},!0]},Be={[k]:tc,[N]:[_r]},Je={[k]:Cr,[N]:[{[me]:"UseDualStack"},!1]},He={[k]:Cr,[N]:[{[me]:"UseFIPS"},!1]},fF={[de]:"Unrecognized S3Express bucket name format.",[v]:de},w$e={[k]:tc,[N]:[RR]},D$e={[me]:xGe},O$e={[P]:[Be],[de]:"Expected a endpoint to be specified but no endpoint was found",[v]:de},hF={[en]:[{[kr]:!0,[ar]:mQ,[Nr]:bR,[dQ]:["*"]},{[kr]:!0,[ar]:"sigv4",[Nr]:bR,[fn]:"{Region}"}]},$5={[k]:Cr,[N]:[{[me]:"ForcePathStyle"},!1]},LQt={[me]:"ForcePathStyle"},Or={[k]:Cr,[N]:[{[me]:"Accelerate"},!1]},qr={[k]:it,[N]:[{[me]:"Region"},"aws-global"]},Jr={[en]:[{[kr]:!0,[ar]:"sigv4",[Nr]:Mh,[fn]:"us-east-1"}]},et={[k]:tc,[N]:[qr]},Yr={[k]:Cr,[N]:[{[me]:"UseGlobalEndpoint"},!0]},k$e={[ie]:"https://{Bucket}.s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}",[ae]:{[en]:[{[kr]:!0,[ar]:"sigv4",[Nr]:Mh,[fn]:"{Region}"}]},[ce]:{}},Lr={[en]:[{[kr]:!0,[ar]:"sigv4",[Nr]:Mh,[fn]:"{Region}"}]},Zr={[k]:Cr,[N]:[{[me]:"UseGlobalEndpoint"},!1]},N$e={[ie]:"https://{Bucket}.s3-fips.{Region}.{partitionResult#dnsSuffix}",[ae]:Lr,[ce]:{}},L$e={[ie]:"https://{Bucket}.s3-accelerate.dualstack.{partitionResult#dnsSuffix}",[ae]:Lr,[ce]:{}},M$e={[ie]:"https://{Bucket}.s3.dualstack.{Region}.{partitionResult#dnsSuffix}",[ae]:Lr,[ce]:{}},G5={[k]:Cr,[N]:[{[k]:ir,[N]:[NGe,"isIp"]},!1]},j5={[ie]:bGe,[ae]:Lr,[ce]:{}},uQ={[ie]:RF,[ae]:Lr,[ce]:{}},F$e={[q]:uQ,[v]:q},V5={[ie]:IGe,[ae]:Lr,[ce]:{}},B$e={[ie]:"https://{Bucket}.s3.{Region}.{partitionResult#dnsSuffix}",[ae]:Lr,[ce]:{}},SF={[de]:"Invalid region: region was not a valid DNS name.",[v]:de},Os={[me]:TGe},FGe={[me]:wGe},H5={[k]:ir,[N]:[Os,"service"]},hQ={[me]:fQ},U$e={[P]:[kt],[de]:"S3 Object Lambda does not support Dual-stack",[v]:de},q$e={[P]:[ci],[de]:"S3 Object Lambda does not support S3 Accelerate",[v]:de},$$e={[P]:[{[k]:go,[N]:[{[me]:"DisableAccessPoints"}]},{[k]:Cr,[N]:[{[me]:"DisableAccessPoints"},!0]}],[de]:"Access points are not supported for this operation",[v]:de},z5={[P]:[{[k]:go,[N]:[{[me]:"UseArnRegion"}]},{[k]:Cr,[N]:[{[me]:"UseArnRegion"},!1]},{[k]:tc,[N]:[{[k]:it,[N]:[{[k]:ir,[N]:[Os,"region"]},"{Region}"]}]}],[de]:"Invalid configuration: region from ARN `{bucketArn#region}` does not match client region `{Region}` and UseArnRegion is `false`",[v]:de},BGe={[k]:ir,[N]:[{[me]:"bucketPartition"},ar]},UGe={[k]:ir,[N]:[Os,"accountId"]},W5={[en]:[{[kr]:!0,[ar]:"sigv4",[Nr]:gQ,[fn]:"{bucketArn#region}"}]},G$e={[de]:"Invalid ARN: The access point name may only contain a-z, A-Z, 0-9 and `-`. Found: `{accessPointName}`",[v]:de},K5={[de]:"Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `{bucketArn#accountId}`",[v]:de},Q5={[de]:"Invalid region in ARN: `{bucketArn#region}` (invalid DNS name)",[v]:de},X5={[de]:"Client was configured for partition `{partitionResult#name}` but ARN (`{Bucket}`) has `{bucketPartition#name}`",[v]:de},j$e={[de]:"Invalid ARN: The ARN may only contain a single resource component after `accesspoint`.",[v]:de},V$e={[de]:"Invalid ARN: Expected a resource of the format `accesspoint:` but no name was provided",[v]:de},CR={[en]:[{[kr]:!0,[ar]:"sigv4",[Nr]:Mh,[fn]:"{bucketArn#region}"}]},H$e={[en]:[{[kr]:!0,[ar]:mQ,[Nr]:bR,[dQ]:["*"]},{[kr]:!0,[ar]:"sigv4",[Nr]:bR,[fn]:"{bucketArn#region}"}]},z$e={[k]:AGe,[N]:[nt]},W$e={[ie]:"https://s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",[ae]:Lr,[ce]:{}},K$e={[ie]:"https://s3-fips.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",[ae]:Lr,[ce]:{}},Q$e={[ie]:"https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",[ae]:Lr,[ce]:{}},J5={[ie]:OGe,[ae]:Lr,[ce]:{}},X$e={[ie]:"https://s3.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",[ae]:Lr,[ce]:{}},J$e={[me]:"UseObjectLambdaEndpoint"},Y5={[en]:[{[kr]:!0,[ar]:"sigv4",[Nr]:gQ,[fn]:"{Region}"}]},Y$e={[ie]:"https://s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}",[ae]:Lr,[ce]:{}},Z$e={[ie]:"https://s3-fips.{Region}.{partitionResult#dnsSuffix}",[ae]:Lr,[ce]:{}},eGe={[ie]:"https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}",[ae]:Lr,[ce]:{}},Z5={[ie]:yF,[ae]:Lr,[ce]:{}},tGe={[ie]:"https://s3.{Region}.{partitionResult#dnsSuffix}",[ae]:Lr,[ce]:{}},eQ=[{[me]:"Region"}],MQt=[{[me]:"Endpoint"}],FQt=[nt],tQ=[ci],Lh=[_r,rs],rGe=[{[k]:go,[N]:[{[me]:"DisableS3ExpressSessionAuth"}]},{[k]:Cr,[N]:[{[me]:"DisableS3ExpressSessionAuth"},!0]}],BQt=[LGe],nGe=[MGe],ai=[kGe],rQ=[Gt,kt],vR=[Gt,Je],xR=[He,kt],PR=[He,Je],sGe=[{[k]:Ut,[N]:[nt,6,14,!0],[qe]:"s3expressAvailabilityZoneId"},{[k]:Ut,[N]:[nt,14,16,!0],[qe]:"s3expressAvailabilityZoneDelim"},{[k]:it,[N]:[{[me]:"s3expressAvailabilityZoneDelim"},"--"]}],Za=[{[P]:[Gt,kt],[q]:{[ie]:"https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}",[ae]:mo,[ce]:{}},[v]:q},{[P]:vR,[q]:{[ie]:"https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}",[ae]:mo,[ce]:{}},[v]:q},{[P]:xR,[q]:{[ie]:"https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}",[ae]:mo,[ce]:{}},[v]:q},{[P]:PR,[q]:{[ie]:"https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}",[ae]:mo,[ce]:{}},[v]:q}],oGe=[{[k]:Ut,[N]:[nt,6,15,!0],[qe]:"s3expressAvailabilityZoneId"},{[k]:Ut,[N]:[nt,15,17,!0],[qe]:"s3expressAvailabilityZoneDelim"},{[k]:it,[N]:[{[me]:"s3expressAvailabilityZoneDelim"},"--"]}],iGe=[{[k]:Ut,[N]:[nt,6,19,!0],[qe]:"s3expressAvailabilityZoneId"},{[k]:Ut,[N]:[nt,19,21,!0],[qe]:"s3expressAvailabilityZoneDelim"},{[k]:it,[N]:[{[me]:"s3expressAvailabilityZoneDelim"},"--"]}],aGe=[{[k]:Ut,[N]:[nt,6,20,!0],[qe]:"s3expressAvailabilityZoneId"},{[k]:Ut,[N]:[nt,20,22,!0],[qe]:"s3expressAvailabilityZoneDelim"},{[k]:it,[N]:[{[me]:"s3expressAvailabilityZoneDelim"},"--"]}],cGe=[{[k]:Ut,[N]:[nt,6,26,!0],[qe]:"s3expressAvailabilityZoneId"},{[k]:Ut,[N]:[nt,26,28,!0],[qe]:"s3expressAvailabilityZoneDelim"},{[k]:it,[N]:[{[me]:"s3expressAvailabilityZoneDelim"},"--"]}],ec=[{[P]:[Gt,kt],[q]:{[ie]:"https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}",[ae]:{[lu]:"S3Express",[en]:[{[kr]:!0,[ar]:"sigv4-s3express",[Nr]:"s3express",[fn]:"{Region}"}]},[ce]:{}},[v]:q},{[P]:vR,[q]:{[ie]:"https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}",[ae]:{[lu]:"S3Express",[en]:[{[kr]:!0,[ar]:"sigv4-s3express",[Nr]:"s3express",[fn]:"{Region}"}]},[ce]:{}},[v]:q},{[P]:xR,[q]:{[ie]:"https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}",[ae]:{[lu]:"S3Express",[en]:[{[kr]:!0,[ar]:"sigv4-s3express",[Nr]:"s3express",[fn]:"{Region}"}]},[ce]:{}},[v]:q},{[P]:PR,[q]:{[ie]:"https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}",[ae]:{[lu]:"S3Express",[en]:[{[kr]:!0,[ar]:"sigv4-s3express",[Nr]:"s3express",[fn]:"{Region}"}]},[ce]:{}},[v]:q}],uGe=[nt,0,7,!0],lGe=[{[k]:Ut,[N]:[nt,7,15,!0],[qe]:"s3expressAvailabilityZoneId"},{[k]:Ut,[N]:[nt,15,17,!0],[qe]:"s3expressAvailabilityZoneDelim"},{[k]:it,[N]:[{[me]:"s3expressAvailabilityZoneDelim"},"--"]}],dGe=[{[k]:Ut,[N]:[nt,7,16,!0],[qe]:"s3expressAvailabilityZoneId"},{[k]:Ut,[N]:[nt,16,18,!0],[qe]:"s3expressAvailabilityZoneDelim"},{[k]:it,[N]:[{[me]:"s3expressAvailabilityZoneDelim"},"--"]}],pGe=[{[k]:Ut,[N]:[nt,7,20,!0],[qe]:"s3expressAvailabilityZoneId"},{[k]:Ut,[N]:[nt,20,22,!0],[qe]:"s3expressAvailabilityZoneDelim"},{[k]:it,[N]:[{[me]:"s3expressAvailabilityZoneDelim"},"--"]}],mGe=[{[k]:Ut,[N]:[nt,7,21,!0],[qe]:"s3expressAvailabilityZoneId"},{[k]:Ut,[N]:[nt,21,23,!0],[qe]:"s3expressAvailabilityZoneDelim"},{[k]:it,[N]:[{[me]:"s3expressAvailabilityZoneDelim"},"--"]}],gGe=[{[k]:Ut,[N]:[nt,7,27,!0],[qe]:"s3expressAvailabilityZoneId"},{[k]:Ut,[N]:[nt,27,29,!0],[qe]:"s3expressAvailabilityZoneDelim"},{[k]:it,[N]:[{[me]:"s3expressAvailabilityZoneDelim"},"--"]}],UQt=[RR],fGe=[{[k]:Xp,[N]:[{[me]:cQ},!1]}],hGe=[{[k]:it,[N]:[{[me]:PGe},"beta"]}],qQt=["*"],SGe=[{[k]:Xp,[N]:[{[me]:"Region"},!1]}],td=[{[k]:it,[N]:[{[me]:"Region"},"us-east-1"]}],nQ=[{[k]:it,[N]:[FGe,DGe]}],EGe=[{[k]:ir,[N]:[Os,"resourceId[1]"],[qe]:fQ},{[k]:tc,[N]:[{[k]:it,[N]:[hQ,vF]}]}],$Qt=[Os,"resourceId[1]"],yGe=[kt],sQ=[{[k]:tc,[N]:[{[k]:it,[N]:[{[k]:ir,[N]:[Os,"region"]},vF]}]}],_Ge=[{[k]:tc,[N]:[{[k]:go,[N]:[{[k]:ir,[N]:[Os,"resourceId[2]"]}]}]}],GQt=[Os,"resourceId[2]"],oQ=[{[k]:_F,[N]:[{[k]:ir,[N]:[Os,"region"]}],[qe]:"bucketPartition"}],CGe=[{[k]:it,[N]:[BGe,{[k]:ir,[N]:[{[me]:"partitionResult"},ar]}]}],iQ=[{[k]:Xp,[N]:[{[k]:ir,[N]:[Os,"region"]},!0]}],aQ=[{[k]:Xp,[N]:[UGe,!1]}],RGe=[{[k]:Xp,[N]:[hQ,!1]}],EF=[Gt],vGe=[{[k]:Xp,[N]:[{[me]:"Region"},!0]}],jQt={version:"1.0",parameters:{Bucket:kh,Region:kh,UseFIPS:Nh,UseDualStack:Nh,Endpoint:kh,ForcePathStyle:Nh,Accelerate:Nh,UseGlobalEndpoint:Nh,UseObjectLambdaEndpoint:_R,Key:kh,Prefix:kh,CopySource:kh,DisableAccessPoints:_R,DisableMultiRegionAccessPoints:Nh,UseArnRegion:_R,UseS3ExpressControlEndpoint:_R,DisableS3ExpressSessionAuth:_R},[F]:[{[P]:[{[k]:go,[N]:eQ}],[F]:[{[P]:[ci,Gt],error:"Accelerate cannot be used with FIPS",[v]:de},{[P]:[kt,_r],error:"Cannot set dual-stack in combination with a custom endpoint.",[v]:de},{[P]:[_r,Gt],error:"A custom endpoint cannot be combined with FIPS",[v]:de},{[P]:[_r,ci],error:"A custom endpoint cannot be combined with S3 Accelerate",[v]:de},{[P]:[Gt,kGe,x$e],error:"Partition does not support FIPS",[v]:de},{[P]:[RR,{[k]:Ut,[N]:[nt,0,kQt,Ya],[qe]:g$e},{[k]:it,[N]:[{[me]:g$e},"--x-s3"]}],[F]:[P$e,b$e,{[P]:[A$e,T$e],[F]:[{[P]:ai,[F]:[{[P]:[LGe,Be],[F]:[{[P]:rQ,endpoint:{[ie]:"https://s3express-control-fips.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",[ae]:mo,[ce]:Ie},[v]:q},{[P]:vR,endpoint:{[ie]:"https://s3express-control-fips.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",[ae]:mo,[ce]:Ie},[v]:q},{[P]:xR,endpoint:{[ie]:"https://s3express-control.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",[ae]:mo,[ce]:Ie},[v]:q},{[P]:PR,endpoint:{[ie]:"https://s3express-control.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",[ae]:mo,[ce]:Ie},[v]:q}],[v]:U}],[v]:U}],[v]:U},{[P]:nGe,[F]:[{[P]:ai,[F]:[{[P]:rGe,[F]:[{[P]:sGe,[F]:Za,[v]:U},{[P]:oGe,[F]:Za,[v]:U},{[P]:iGe,[F]:Za,[v]:U},{[P]:aGe,[F]:Za,[v]:U},{[P]:cGe,[F]:Za,[v]:U},fF],[v]:U},{[P]:sGe,[F]:ec,[v]:U},{[P]:oGe,[F]:ec,[v]:U},{[P]:iGe,[F]:ec,[v]:U},{[P]:aGe,[F]:ec,[v]:U},{[P]:cGe,[F]:ec,[v]:U},fF],[v]:U}],[v]:U},I$e],[v]:U},{[P]:[RR,{[k]:Ut,[N]:uGe,[qe]:f$e},{[k]:it,[N]:[{[me]:f$e},"--xa-s3"]}],[F]:[P$e,b$e,{[P]:nGe,[F]:[{[P]:ai,[F]:[{[P]:rGe,[F]:[{[P]:lGe,[F]:Za,[v]:U},{[P]:dGe,[F]:Za,[v]:U},{[P]:pGe,[F]:Za,[v]:U},{[P]:mGe,[F]:Za,[v]:U},{[P]:gGe,[F]:Za,[v]:U},fF],[v]:U},{[P]:lGe,[F]:ec,[v]:U},{[P]:dGe,[F]:ec,[v]:U},{[P]:pGe,[F]:ec,[v]:U},{[P]:mGe,[F]:ec,[v]:U},{[P]:gGe,[F]:ec,[v]:U},fF],[v]:U}],[v]:U},I$e],[v]:U},{[P]:[w$e,A$e,T$e],[F]:[{[P]:ai,[F]:[{[P]:Lh,endpoint:{[ie]:yF,[ae]:mo,[ce]:Ie},[v]:q},{[P]:rQ,endpoint:{[ie]:"https://s3express-control-fips.dualstack.{Region}.{partitionResult#dnsSuffix}",[ae]:mo,[ce]:Ie},[v]:q},{[P]:vR,endpoint:{[ie]:"https://s3express-control-fips.{Region}.{partitionResult#dnsSuffix}",[ae]:mo,[ce]:Ie},[v]:q},{[P]:xR,endpoint:{[ie]:"https://s3express-control.dualstack.{Region}.{partitionResult#dnsSuffix}",[ae]:mo,[ce]:Ie},[v]:q},{[P]:PR,endpoint:{[ie]:"https://s3express-control.{Region}.{partitionResult#dnsSuffix}",[ae]:mo,[ce]:Ie},[v]:q}],[v]:U}],[v]:U},{[P]:[RR,{[k]:Ut,[N]:[nt,49,50,Ya],[qe]:xGe},{[k]:Ut,[N]:[nt,8,12,Ya],[qe]:PGe},{[k]:Ut,[N]:uGe,[qe]:h$e},{[k]:Ut,[N]:[nt,32,49,Ya],[qe]:cQ},{[k]:_F,[N]:eQ,[qe]:"regionPartition"},{[k]:it,[N]:[{[me]:h$e},"--op-s3"]}],[F]:[{[P]:fGe,[F]:[{[P]:[{[k]:it,[N]:[D$e,"e"]}],[F]:[{[P]:hGe,[F]:[O$e,{[P]:Lh,endpoint:{[ie]:"https://{Bucket}.ec2.{url#authority}",[ae]:hF,[ce]:Ie},[v]:q}],[v]:U},{endpoint:{[ie]:"https://{Bucket}.ec2.s3-outposts.{Region}.{regionPartition#dnsSuffix}",[ae]:hF,[ce]:Ie},[v]:q}],[v]:U},{[P]:[{[k]:it,[N]:[D$e,"o"]}],[F]:[{[P]:hGe,[F]:[O$e,{[P]:Lh,endpoint:{[ie]:"https://{Bucket}.op-{outpostId}.{url#authority}",[ae]:hF,[ce]:Ie},[v]:q}],[v]:U},{endpoint:{[ie]:"https://{Bucket}.op-{outpostId}.s3-outposts.{Region}.{regionPartition#dnsSuffix}",[ae]:hF,[ce]:Ie},[v]:q}],[v]:U},{error:'Unrecognized hardware type: "Expected hardware type o or e but got {hardwareType}"',[v]:de}],[v]:U},{error:"Invalid ARN: The outpost Id must only contain a-z, A-Z, 0-9 and `-`.",[v]:de}],[v]:U},{[P]:UQt,[F]:[{[P]:[_r,{[k]:tc,[N]:[{[k]:go,[N]:[{[k]:pQ,[N]:MQt}]}]}],error:"Custom endpoint `{Endpoint}` was not a valid URI",[v]:de},{[P]:[$5,MGe],[F]:[{[P]:ai,[F]:[{[P]:SGe,[F]:[{[P]:[ci,x$e],error:"S3 Accelerate cannot be used in this region",[v]:de},{[P]:[kt,Gt,Or,Be,qr],endpoint:{[ie]:"https://{Bucket}.s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}",[ae]:Jr,[ce]:Ie},[v]:q},{[P]:[kt,Gt,Or,Be,et,Yr],[F]:[{endpoint:k$e,[v]:q}],[v]:U},{[P]:[kt,Gt,Or,Be,et,Zr],endpoint:k$e,[v]:q},{[P]:[Je,Gt,Or,Be,qr],endpoint:{[ie]:"https://{Bucket}.s3-fips.us-east-1.{partitionResult#dnsSuffix}",[ae]:Jr,[ce]:Ie},[v]:q},{[P]:[Je,Gt,Or,Be,et,Yr],[F]:[{endpoint:N$e,[v]:q}],[v]:U},{[P]:[Je,Gt,Or,Be,et,Zr],endpoint:N$e,[v]:q},{[P]:[kt,He,ci,Be,qr],endpoint:{[ie]:"https://{Bucket}.s3-accelerate.dualstack.us-east-1.{partitionResult#dnsSuffix}",[ae]:Jr,[ce]:Ie},[v]:q},{[P]:[kt,He,ci,Be,et,Yr],[F]:[{endpoint:L$e,[v]:q}],[v]:U},{[P]:[kt,He,ci,Be,et,Zr],endpoint:L$e,[v]:q},{[P]:[kt,He,Or,Be,qr],endpoint:{[ie]:"https://{Bucket}.s3.dualstack.us-east-1.{partitionResult#dnsSuffix}",[ae]:Jr,[ce]:Ie},[v]:q},{[P]:[kt,He,Or,Be,et,Yr],[F]:[{endpoint:M$e,[v]:q}],[v]:U},{[P]:[kt,He,Or,Be,et,Zr],endpoint:M$e,[v]:q},{[P]:[Je,He,Or,_r,rs,q5,qr],endpoint:{[ie]:bGe,[ae]:Jr,[ce]:Ie},[v]:q},{[P]:[Je,He,Or,_r,rs,G5,qr],endpoint:{[ie]:RF,[ae]:Jr,[ce]:Ie},[v]:q},{[P]:[Je,He,Or,_r,rs,q5,et,Yr],[F]:[{[P]:td,endpoint:j5,[v]:q},{endpoint:j5,[v]:q}],[v]:U},{[P]:[Je,He,Or,_r,rs,G5,et,Yr],[F]:[{[P]:td,endpoint:uQ,[v]:q},F$e],[v]:U},{[P]:[Je,He,Or,_r,rs,q5,et,Zr],endpoint:j5,[v]:q},{[P]:[Je,He,Or,_r,rs,G5,et,Zr],endpoint:uQ,[v]:q},{[P]:[Je,He,ci,Be,qr],endpoint:{[ie]:IGe,[ae]:Jr,[ce]:Ie},[v]:q},{[P]:[Je,He,ci,Be,et,Yr],[F]:[{[P]:td,endpoint:V5,[v]:q},{endpoint:V5,[v]:q}],[v]:U},{[P]:[Je,He,ci,Be,et,Zr],endpoint:V5,[v]:q},{[P]:[Je,He,Or,Be,qr],endpoint:{[ie]:S$e,[ae]:Jr,[ce]:Ie},[v]:q},{[P]:[Je,He,Or,Be,et,Yr],[F]:[{[P]:td,endpoint:{[ie]:S$e,[ae]:Lr,[ce]:Ie},[v]:q},{endpoint:B$e,[v]:q}],[v]:U},{[P]:[Je,He,Or,Be,et,Zr],endpoint:B$e,[v]:q}],[v]:U},SF],[v]:U}],[v]:U},{[P]:[_r,rs,{[k]:it,[N]:[{[k]:ir,[N]:[NGe,"scheme"]},"http"]},{[k]:CF,[N]:[nt,Ya]},$5,He,Je,Or],[F]:[{[P]:ai,[F]:[{[P]:SGe,[F]:[F$e],[v]:U},SF],[v]:U}],[v]:U},{[P]:[$5,{[k]:AGe,[N]:FQt,[qe]:TGe}],[F]:[{[P]:[{[k]:ir,[N]:[Os,"resourceId[0]"],[qe]:wGe},{[k]:tc,[N]:[{[k]:it,[N]:[FGe,vF]}]}],[F]:[{[P]:[{[k]:it,[N]:[H5,gQ]}],[F]:[{[P]:nQ,[F]:[{[P]:EGe,[F]:[U$e,q$e,{[P]:sQ,[F]:[$$e,{[P]:_Ge,[F]:[z5,{[P]:oQ,[F]:[{[P]:ai,[F]:[{[P]:CGe,[F]:[{[P]:iQ,[F]:[{[P]:[{[k]:it,[N]:[UGe,vF]}],error:"Invalid ARN: Missing account id",[v]:de},{[P]:aQ,[F]:[{[P]:RGe,[F]:[{[P]:Lh,endpoint:{[ie]:E$e,[ae]:W5,[ce]:Ie},[v]:q},{[P]:EF,endpoint:{[ie]:"https://{accessPointName}-{bucketArn#accountId}.s3-object-lambda-fips.{bucketArn#region}.{bucketPartition#dnsSuffix}",[ae]:W5,[ce]:Ie},[v]:q},{endpoint:{[ie]:"https://{accessPointName}-{bucketArn#accountId}.s3-object-lambda.{bucketArn#region}.{bucketPartition#dnsSuffix}",[ae]:W5,[ce]:Ie},[v]:q}],[v]:U},G$e],[v]:U},K5],[v]:U},Q5],[v]:U},X5],[v]:U}],[v]:U}],[v]:U},j$e],[v]:U},{error:"Invalid ARN: bucket ARN is missing a region",[v]:de}],[v]:U},V$e],[v]:U},{error:"Invalid ARN: Object Lambda ARNs only support `accesspoint` arn types, but found: `{arnType}`",[v]:de}],[v]:U},{[P]:nQ,[F]:[{[P]:EGe,[F]:[{[P]:sQ,[F]:[{[P]:nQ,[F]:[{[P]:sQ,[F]:[$$e,{[P]:_Ge,[F]:[z5,{[P]:oQ,[F]:[{[P]:ai,[F]:[{[P]:[{[k]:it,[N]:[BGe,"{partitionResult#name}"]}],[F]:[{[P]:iQ,[F]:[{[P]:[{[k]:it,[N]:[H5,Mh]}],[F]:[{[P]:aQ,[F]:[{[P]:RGe,[F]:[{[P]:tQ,error:"Access Points do not support S3 Accelerate",[v]:de},{[P]:rQ,endpoint:{[ie]:"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint-fips.dualstack.{bucketArn#region}.{bucketPartition#dnsSuffix}",[ae]:CR,[ce]:Ie},[v]:q},{[P]:vR,endpoint:{[ie]:"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint-fips.{bucketArn#region}.{bucketPartition#dnsSuffix}",[ae]:CR,[ce]:Ie},[v]:q},{[P]:xR,endpoint:{[ie]:"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint.dualstack.{bucketArn#region}.{bucketPartition#dnsSuffix}",[ae]:CR,[ce]:Ie},[v]:q},{[P]:[He,Je,_r,rs],endpoint:{[ie]:E$e,[ae]:CR,[ce]:Ie},[v]:q},{[P]:PR,endpoint:{[ie]:"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint.{bucketArn#region}.{bucketPartition#dnsSuffix}",[ae]:CR,[ce]:Ie},[v]:q}],[v]:U},G$e],[v]:U},K5],[v]:U},{error:"Invalid ARN: The ARN was not for the S3 service, found: {bucketArn#service}",[v]:de}],[v]:U},Q5],[v]:U},X5],[v]:U}],[v]:U}],[v]:U},j$e],[v]:U}],[v]:U}],[v]:U},{[P]:[{[k]:Xp,[N]:[hQ,Ya]}],[F]:[{[P]:yGe,error:"S3 MRAP does not support dual-stack",[v]:de},{[P]:EF,error:"S3 MRAP does not support FIPS",[v]:de},{[P]:tQ,error:"S3 MRAP does not support S3 Accelerate",[v]:de},{[P]:[{[k]:Cr,[N]:[{[me]:"DisableMultiRegionAccessPoints"},Ya]}],error:"Invalid configuration: Multi-Region Access Point ARNs are disabled.",[v]:de},{[P]:[{[k]:_F,[N]:eQ,[qe]:y$e}],[F]:[{[P]:[{[k]:it,[N]:[{[k]:ir,[N]:[{[me]:y$e},ar]},{[k]:ir,[N]:[Os,"partition"]}]}],[F]:[{endpoint:{[ie]:"https://{accessPointName}.accesspoint.s3-global.{mrapPartition#dnsSuffix}",[ae]:{[en]:[{[kr]:Ya,name:mQ,[Nr]:Mh,[dQ]:qQt}]},[ce]:Ie},[v]:q}],[v]:U},{error:"Client was configured for partition `{mrapPartition#name}` but bucket referred to partition `{bucketArn#partition}`",[v]:de}],[v]:U}],[v]:U},{error:"Invalid Access Point Name",[v]:de}],[v]:U},V$e],[v]:U},{[P]:[{[k]:it,[N]:[H5,bR]}],[F]:[{[P]:yGe,error:"S3 Outposts does not support Dual-stack",[v]:de},{[P]:EF,error:"S3 Outposts does not support FIPS",[v]:de},{[P]:tQ,error:"S3 Outposts does not support S3 Accelerate",[v]:de},{[P]:[{[k]:go,[N]:[{[k]:ir,[N]:[Os,"resourceId[4]"]}]}],error:"Invalid Arn: Outpost Access Point ARN contains sub resources",[v]:de},{[P]:[{[k]:ir,[N]:$Qt,[qe]:cQ}],[F]:[{[P]:fGe,[F]:[z5,{[P]:oQ,[F]:[{[P]:ai,[F]:[{[P]:CGe,[F]:[{[P]:iQ,[F]:[{[P]:aQ,[F]:[{[P]:[{[k]:ir,[N]:GQt,[qe]:_$e}],[F]:[{[P]:[{[k]:ir,[N]:[Os,"resourceId[3]"],[qe]:fQ}],[F]:[{[P]:[{[k]:it,[N]:[{[me]:_$e},DGe]}],[F]:[{[P]:Lh,endpoint:{[ie]:"https://{accessPointName}-{bucketArn#accountId}.{outpostId}.{url#authority}",[ae]:H$e,[ce]:Ie},[v]:q},{endpoint:{[ie]:"https://{accessPointName}-{bucketArn#accountId}.{outpostId}.s3-outposts.{bucketArn#region}.{bucketPartition#dnsSuffix}",[ae]:H$e,[ce]:Ie},[v]:q}],[v]:U},{error:"Expected an outpost type `accesspoint`, found {outpostType}",[v]:de}],[v]:U},{error:"Invalid ARN: expected an access point name",[v]:de}],[v]:U},{error:"Invalid ARN: Expected a 4-component resource",[v]:de}],[v]:U},K5],[v]:U},Q5],[v]:U},X5],[v]:U}],[v]:U}],[v]:U},{error:"Invalid ARN: The outpost Id may only contain a-z, A-Z, 0-9 and `-`. Found: `{outpostId}`",[v]:de}],[v]:U},{error:"Invalid ARN: The Outpost Id was not set",[v]:de}],[v]:U},{error:"Invalid ARN: Unrecognized format: {Bucket} (type: {arnType})",[v]:de}],[v]:U},{error:"Invalid ARN: No ARN type specified",[v]:de}],[v]:U},{[P]:[{[k]:Ut,[N]:[nt,0,4,NQt],[qe]:C$e},{[k]:it,[N]:[{[me]:C$e},"arn:"]},{[k]:tc,[N]:[{[k]:go,[N]:[z$e]}]}],error:"Invalid ARN: `{Bucket}` was not a valid ARN",[v]:de},{[P]:[{[k]:Cr,[N]:[LQt,Ya]},z$e],error:"Path-style addressing cannot be used with ARN buckets",[v]:de},{[P]:BQt,[F]:[{[P]:ai,[F]:[{[P]:[Or],[F]:[{[P]:[kt,Be,Gt,qr],endpoint:{[ie]:"https://s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",[ae]:Jr,[ce]:Ie},[v]:q},{[P]:[kt,Be,Gt,et,Yr],[F]:[{endpoint:W$e,[v]:q}],[v]:U},{[P]:[kt,Be,Gt,et,Zr],endpoint:W$e,[v]:q},{[P]:[Je,Be,Gt,qr],endpoint:{[ie]:"https://s3-fips.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",[ae]:Jr,[ce]:Ie},[v]:q},{[P]:[Je,Be,Gt,et,Yr],[F]:[{endpoint:K$e,[v]:q}],[v]:U},{[P]:[Je,Be,Gt,et,Zr],endpoint:K$e,[v]:q},{[P]:[kt,Be,He,qr],endpoint:{[ie]:"https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",[ae]:Jr,[ce]:Ie},[v]:q},{[P]:[kt,Be,He,et,Yr],[F]:[{endpoint:Q$e,[v]:q}],[v]:U},{[P]:[kt,Be,He,et,Zr],endpoint:Q$e,[v]:q},{[P]:[Je,_r,rs,He,qr],endpoint:{[ie]:OGe,[ae]:Jr,[ce]:Ie},[v]:q},{[P]:[Je,_r,rs,He,et,Yr],[F]:[{[P]:td,endpoint:J5,[v]:q},{endpoint:J5,[v]:q}],[v]:U},{[P]:[Je,_r,rs,He,et,Zr],endpoint:J5,[v]:q},{[P]:[Je,Be,He,qr],endpoint:{[ie]:R$e,[ae]:Jr,[ce]:Ie},[v]:q},{[P]:[Je,Be,He,et,Yr],[F]:[{[P]:td,endpoint:{[ie]:R$e,[ae]:Lr,[ce]:Ie},[v]:q},{endpoint:X$e,[v]:q}],[v]:U},{[P]:[Je,Be,He,et,Zr],endpoint:X$e,[v]:q}],[v]:U},{error:"Path-style addressing cannot be used with S3 Accelerate",[v]:de}],[v]:U}],[v]:U}],[v]:U},{[P]:[{[k]:go,[N]:[J$e]},{[k]:Cr,[N]:[J$e,Ya]}],[F]:[{[P]:ai,[F]:[{[P]:vGe,[F]:[U$e,q$e,{[P]:Lh,endpoint:{[ie]:yF,[ae]:Y5,[ce]:Ie},[v]:q},{[P]:EF,endpoint:{[ie]:"https://s3-object-lambda-fips.{Region}.{partitionResult#dnsSuffix}",[ae]:Y5,[ce]:Ie},[v]:q},{endpoint:{[ie]:"https://s3-object-lambda.{Region}.{partitionResult#dnsSuffix}",[ae]:Y5,[ce]:Ie},[v]:q}],[v]:U},SF],[v]:U}],[v]:U},{[P]:[w$e],[F]:[{[P]:ai,[F]:[{[P]:vGe,[F]:[{[P]:[Gt,kt,Be,qr],endpoint:{[ie]:"https://s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}",[ae]:Jr,[ce]:Ie},[v]:q},{[P]:[Gt,kt,Be,et,Yr],[F]:[{endpoint:Y$e,[v]:q}],[v]:U},{[P]:[Gt,kt,Be,et,Zr],endpoint:Y$e,[v]:q},{[P]:[Gt,Je,Be,qr],endpoint:{[ie]:"https://s3-fips.us-east-1.{partitionResult#dnsSuffix}",[ae]:Jr,[ce]:Ie},[v]:q},{[P]:[Gt,Je,Be,et,Yr],[F]:[{endpoint:Z$e,[v]:q}],[v]:U},{[P]:[Gt,Je,Be,et,Zr],endpoint:Z$e,[v]:q},{[P]:[He,kt,Be,qr],endpoint:{[ie]:"https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}",[ae]:Jr,[ce]:Ie},[v]:q},{[P]:[He,kt,Be,et,Yr],[F]:[{endpoint:eGe,[v]:q}],[v]:U},{[P]:[He,kt,Be,et,Zr],endpoint:eGe,[v]:q},{[P]:[He,Je,_r,rs,qr],endpoint:{[ie]:yF,[ae]:Jr,[ce]:Ie},[v]:q},{[P]:[He,Je,_r,rs,et,Yr],[F]:[{[P]:td,endpoint:Z5,[v]:q},{endpoint:Z5,[v]:q}],[v]:U},{[P]:[He,Je,_r,rs,et,Zr],endpoint:Z5,[v]:q},{[P]:[He,Je,Be,qr],endpoint:{[ie]:v$e,[ae]:Jr,[ce]:Ie},[v]:q},{[P]:[He,Je,Be,et,Yr],[F]:[{[P]:td,endpoint:{[ie]:v$e,[ae]:Lr,[ce]:Ie},[v]:q},{endpoint:tGe,[v]:q}],[v]:U},{[P]:[He,Je,Be,et,Zr],endpoint:tGe,[v]:q}],[v]:U},SF],[v]:U}],[v]:U}],[v]:U},{error:"A region must be set when sending requests to S3.",[v]:de}]};xF.ruleSet=jQt});var EQ=b(PF=>{"use strict";Object.defineProperty(PF,"__esModule",{value:!0});PF.defaultEndpointResolver=void 0;var VQt=Ta(),SQ=require("@smithy/util-endpoints"),HQt=qGe(),zQt=new SQ.EndpointCache({size:50,params:["Accelerate","Bucket","DisableAccessPoints","DisableMultiRegionAccessPoints","DisableS3ExpressSessionAuth","Endpoint","ForcePathStyle","Region","UseArnRegion","UseDualStack","UseFIPS","UseGlobalEndpoint","UseObjectLambdaEndpoint","UseS3ExpressControlEndpoint"]}),WQt=(t,e={})=>zQt.get(t,()=>(0,SQ.resolveEndpoint)(HQt.ruleSet,{endpointParams:t,logger:e.logger}));PF.defaultEndpointResolver=WQt;SQ.customEndpointFunctions.aws=VQt.awsEndpointFunctions});var yQ=b(rd=>{"use strict";Object.defineProperty(rd,"__esModule",{value:!0});rd.resolveHttpAuthSchemeConfig=rd.defaultS3HttpAuthSchemeProvider=rd.defaultS3HttpAuthSchemeParametersProvider=void 0;var $Ge=(Dt(),ue(Fr)),KQt=U5(),QQt=require("@smithy/middleware-endpoint"),bF=require("@smithy/util-middleware"),XQt=EQ(),JQt=t=>async(e,r,n)=>{if(!n)throw new Error("Could not find `input` for `defaultEndpointRuleSetHttpAuthSchemeParametersProvider`");let s=await t(e,r,n),o=(0,bF.getSmithyContext)(r)?.commandInstance?.constructor?.getEndpointParameterInstructions;if(!o)throw new Error(`getEndpointParameterInstructions() is not defined on \`${r.commandName}\``);let i=await(0,QQt.resolveParams)(n,{getEndpointParameterInstructions:o},e);return Object.assign(s,i)},YQt=async(t,e,r)=>({operation:(0,bF.getSmithyContext)(e).operation,region:await(0,bF.normalizeProvider)(t.region)()||(()=>{throw new Error("expected `region` to be configured for `aws.auth#sigv4`")})()});rd.defaultS3HttpAuthSchemeParametersProvider=JQt(YQt);function GGe(t){return{schemeId:"aws.auth#sigv4",signingProperties:{name:"s3",region:t.region},propertiesExtractor:(e,r)=>({signingProperties:{config:e,context:r}})}}function jGe(t){return{schemeId:"aws.auth#sigv4a",signingProperties:{name:"s3",region:t.region},propertiesExtractor:(e,r)=>({signingProperties:{config:e,context:r}})}}var ZQt=(t,e,r)=>s=>{let i=t(s).properties?.authSchemes;if(!i)return e(s);let a=[];for(let c of i){let{name:u,properties:l={},...d}=c,p=u.toLowerCase();u!==p&&console.warn(`HttpAuthScheme has been normalized with lowercasing: \`${u}\` to \`${p}\``);let g;if(p==="sigv4a"){g="aws.auth#sigv4a";let D=i.find(B=>{let M=B.name.toLowerCase();return M!=="sigv4a"&&M.startsWith("sigv4")});if(KQt.SignatureV4MultiRegion.sigv4aDependency()==="none"&&D)continue}else if(p.startsWith("sigv4"))g="aws.auth#sigv4";else throw new Error(`Unknown HttpAuthScheme found in \`@smithy.rules#endpointRuleSet\`: \`${p}\``);let y=r[g];if(!y)throw new Error(`Could not find HttpAuthOption create function for \`${g}\``);let R=y(s);R.schemeId=g,R.signingProperties={...R.signingProperties||{},...d,...l},a.push(R)}return a},eXt=t=>{let e=[];switch(t.operation){default:e.push(GGe(t)),e.push(jGe(t))}return e};rd.defaultS3HttpAuthSchemeProvider=ZQt(XQt.defaultEndpointResolver,eXt,{"aws.auth#sigv4":GGe,"aws.auth#sigv4a":jGe});var tXt=t=>{let e=(0,$Ge.resolveAwsSdkSigV4Config)(t),r=(0,$Ge.resolveAwsSdkSigV4AConfig)(e);return Object.assign(r,{authSchemePreference:(0,bF.normalizeProvider)(t.authSchemePreference??[])})};rd.resolveHttpAuthSchemeConfig=tXt});var VGe=b((Tnn,rXt)=>{rXt.exports={name:"@aws-sdk/client-s3",description:"AWS SDK for JavaScript S3 Client for Node.js, Browser and React Native",version:"3.952.0",scripts:{build:"concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types'","build:cjs":"node ../../scripts/compilation/inline client-s3","build:es":"tsc -p tsconfig.es.json","build:include:deps":"lerna run --scope $npm_package_name --include-dependencies build","build:types":"tsc -p tsconfig.types.json","build:types:downlevel":"downlevel-dts dist-types dist-types/ts3.4",clean:"rimraf ./dist-* && rimraf *.tsbuildinfo","extract:docs":"api-extractor run --local","generate:client":"node ../../scripts/generate-clients/single-service --solo s3",test:"yarn g:vitest run","test:browser":"node ./test/browser-build/esbuild && yarn g:vitest run -c vitest.config.browser.mts","test:browser:watch":"node ./test/browser-build/esbuild && yarn g:vitest watch -c vitest.config.browser.mts","test:e2e":"yarn g:vitest run -c vitest.config.e2e.mts && yarn test:browser","test:e2e:watch":"yarn g:vitest watch -c vitest.config.e2e.mts","test:index":"tsc --noEmit ./test/index-types.ts && node ./test/index-objects.spec.mjs","test:integration":"yarn g:vitest run -c vitest.config.integ.mts","test:integration:watch":"yarn g:vitest watch -c vitest.config.integ.mts","test:watch":"yarn g:vitest watch"},main:"./dist-cjs/index.js",types:"./dist-types/index.d.ts",module:"./dist-es/index.js",sideEffects:!1,dependencies:{"@aws-crypto/sha1-browser":"5.2.0","@aws-crypto/sha256-browser":"5.2.0","@aws-crypto/sha256-js":"5.2.0","@aws-sdk/core":"3.947.0","@aws-sdk/credential-provider-node":"3.952.0","@aws-sdk/middleware-bucket-endpoint":"3.936.0","@aws-sdk/middleware-expect-continue":"3.936.0","@aws-sdk/middleware-flexible-checksums":"3.947.0","@aws-sdk/middleware-host-header":"3.936.0","@aws-sdk/middleware-location-constraint":"3.936.0","@aws-sdk/middleware-logger":"3.936.0","@aws-sdk/middleware-recursion-detection":"3.948.0","@aws-sdk/middleware-sdk-s3":"3.947.0","@aws-sdk/middleware-ssec":"3.936.0","@aws-sdk/middleware-user-agent":"3.947.0","@aws-sdk/region-config-resolver":"3.936.0","@aws-sdk/signature-v4-multi-region":"3.947.0","@aws-sdk/types":"3.936.0","@aws-sdk/util-endpoints":"3.936.0","@aws-sdk/util-user-agent-browser":"3.936.0","@aws-sdk/util-user-agent-node":"3.947.0","@smithy/config-resolver":"^4.4.3","@smithy/core":"^3.18.7","@smithy/eventstream-serde-browser":"^4.2.5","@smithy/eventstream-serde-config-resolver":"^4.3.5","@smithy/eventstream-serde-node":"^4.2.5","@smithy/fetch-http-handler":"^5.3.6","@smithy/hash-blob-browser":"^4.2.6","@smithy/hash-node":"^4.2.5","@smithy/hash-stream-node":"^4.2.5","@smithy/invalid-dependency":"^4.2.5","@smithy/md5-js":"^4.2.5","@smithy/middleware-content-length":"^4.2.5","@smithy/middleware-endpoint":"^4.3.14","@smithy/middleware-retry":"^4.4.14","@smithy/middleware-serde":"^4.2.6","@smithy/middleware-stack":"^4.2.5","@smithy/node-config-provider":"^4.3.5","@smithy/node-http-handler":"^4.4.5","@smithy/protocol-http":"^5.3.5","@smithy/smithy-client":"^4.9.10","@smithy/types":"^4.9.0","@smithy/url-parser":"^4.2.5","@smithy/util-base64":"^4.3.0","@smithy/util-body-length-browser":"^4.2.0","@smithy/util-body-length-node":"^4.2.1","@smithy/util-defaults-mode-browser":"^4.3.13","@smithy/util-defaults-mode-node":"^4.2.16","@smithy/util-endpoints":"^3.2.5","@smithy/util-middleware":"^4.2.5","@smithy/util-retry":"^4.2.5","@smithy/util-stream":"^4.5.6","@smithy/util-utf8":"^4.2.0","@smithy/util-waiter":"^4.2.5",tslib:"^2.6.2"},devDependencies:{"@aws-sdk/signature-v4-crt":"3.947.0","@tsconfig/node18":"18.2.4","@types/node":"^18.19.69",concurrently:"7.0.0","downlevel-dts":"0.10.1",rimraf:"3.0.2",typescript:"~5.8.3"},engines:{node:">=18.0.0"},typesVersions:{"<4.0":{"dist-types/*":["dist-types/ts3.4/*"]}},files:["dist-*/**"],author:{name:"AWS SDK for JavaScript Team",url:"https://aws.amazon.com/javascript/"},license:"Apache-2.0",browser:{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.browser"},"react-native":{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.native"},homepage:"https://github.com/aws/aws-sdk-js-v3/tree/main/clients/client-s3",repository:{type:"git",url:"https://github.com/aws/aws-sdk-js-v3.git",directory:"clients/client-s3"}}});var a2e=b(Rr=>{"use strict";var nd=require("@smithy/util-config-provider"),HGe=k5(),nXt=require("@smithy/protocol-http"),zGe="AWS_S3_DISABLE_MULTIREGION_ACCESS_POINTS",WGe="s3_disable_multiregion_access_points",sXt={environmentVariableSelector:t=>nd.booleanSelector(t,zGe,nd.SelectorType.ENV),configFileSelector:t=>nd.booleanSelector(t,WGe,nd.SelectorType.CONFIG),default:!1},KGe="AWS_S3_USE_ARN_REGION",QGe="s3_use_arn_region",oXt={environmentVariableSelector:t=>nd.booleanSelector(t,KGe,nd.SelectorType.ENV),configFileSelector:t=>nd.booleanSelector(t,QGe,nd.SelectorType.CONFIG),default:void 0},iXt=/^[a-z0-9][a-z0-9\.\-]{1,61}[a-z0-9]$/,aXt=/(\d+\.){3}\d+/,cXt=/\.\./,XGe=/\./,uXt=/^(.+\.)?s3(-fips)?(\.dualstack)?[.-]([a-z0-9-]+)\./,JGe=/^s3(-external-1)?\.amazonaws\.com$/,_Q="amazonaws.com",lXt=t=>typeof t.bucketName=="string",dXt=t=>iXt.test(t)&&!aXt.test(t)&&!cXt.test(t),YGe=t=>{let e=t.match(uXt);return[e[4],t.replace(new RegExp(`^${e[0]}`),"")]},pXt=t=>JGe.test(t)?["us-east-1",_Q]:YGe(t),ZGe=t=>JGe.test(t)?[t.replace(`.${_Q}`,""),_Q]:YGe(t),mXt=t=>{if(t.pathStyleEndpoint)throw new Error("Path-style S3 endpoint is not supported when bucket is an ARN");if(t.accelerateEndpoint)throw new Error("Accelerate endpoint is not supported when bucket is an ARN");if(!t.tlsCompatible)throw new Error("HTTPS is required when bucket is an ARN")},gXt=t=>{if(t!=="s3"&&t!=="s3-outposts"&&t!=="s3-object-lambda")throw new Error("Expect 's3' or 's3-outposts' or 's3-object-lambda' in ARN service component")},fXt=t=>{if(t!=="s3")throw new Error("Expect 's3' in Accesspoint ARN service component")},e2e=t=>{if(t!=="s3-outposts")throw new Error("Expect 's3-posts' in Outpost ARN service component")},t2e=(t,e)=>{if(t!==e.clientPartition)throw new Error(`Partition in ARN is incompatible, got "${t}" but expected "${e.clientPartition}"`)},hXt=(t,e)=>{},RQ=t=>{if(["s3-external-1","aws-global"].includes(t))throw new Error(`Client region ${t} is not regional`)},r2e=t=>{if(!/[0-9]{12}/.exec(t))throw new Error("Access point ARN accountID does not match regex '[0-9]{12}'")},Fh=(t,e={tlsCompatible:!0})=>{if(t.length>=64||!/^[a-z0-9][a-z0-9.-]*[a-z0-9]$/.test(t)||/(\d+\.){3}\d+/.test(t)||/[.-]{2}/.test(t)||e?.tlsCompatible&&XGe.test(t))throw new Error(`Invalid DNS label ${t}`)},SXt=t=>{if(t.isCustomEndpoint){if(t.dualstackEndpoint)throw new Error("Dualstack endpoint is not supported with custom endpoint");if(t.accelerateEndpoint)throw new Error("Accelerate endpoint is not supported with custom endpoint")}},n2e=t=>{let e=t.includes(":")?":":"/",[r,...n]=t.split(e);if(r==="accesspoint"){if(n.length!==1||n[0]==="")throw new Error(`Access Point ARN should have one resource accesspoint${e}{accesspointname}`);return{accesspointName:n[0]}}else if(r==="outpost"){if(!n[0]||n[1]!=="accesspoint"||!n[2]||n.length!==3)throw new Error(`Outpost ARN should have resource outpost${e}{outpostId}${e}accesspoint${e}{accesspointName}`);let[s,o,i]=n;return{outpostId:s,accesspointName:i}}else throw new Error(`ARN resource should begin with 'accesspoint${e}' or 'outpost${e}'`)},EXt=t=>{},s2e=t=>{if(t)throw new Error("FIPS region is not supported with Outpost.")},yXt=t=>{try{t.split(".").forEach(e=>{Fh(e)})}catch{throw new Error(`"${t}" is not a DNS compatible name.`)}},CQ=t=>(SXt(t),lXt(t)?_Xt(t):CXt(t)),_Xt=({accelerateEndpoint:t=!1,clientRegion:e,baseHostname:r,bucketName:n,dualstackEndpoint:s=!1,fipsEndpoint:o=!1,pathStyleEndpoint:i=!1,tlsCompatible:a=!0,isCustomEndpoint:c=!1})=>{let[u,l]=c?[e,r]:pXt(r);return i||!dXt(n)||a&&XGe.test(n)?{bucketEndpoint:!1,hostname:s?`s3.dualstack.${u}.${l}`:r}:(t?r=`s3-accelerate${s?".dualstack":""}.${l}`:s&&(r=`s3.dualstack.${u}.${l}`),{bucketEndpoint:!0,hostname:`${n}.${r}`})},CXt=t=>{let{isCustomEndpoint:e,baseHostname:r,clientRegion:n}=t,s=e?r:ZGe(r)[1],{pathStyleEndpoint:o,accelerateEndpoint:i=!1,fipsEndpoint:a=!1,tlsCompatible:c=!0,bucketName:u,clientPartition:l="aws"}=t;mXt({pathStyleEndpoint:o,accelerateEndpoint:i,tlsCompatible:c});let{service:d,partition:p,accountId:g,region:y,resource:R}=u;gXt(d),t2e(p,{clientPartition:l}),r2e(g);let{accesspointName:D,outpostId:B}=n2e(R);return d==="s3-object-lambda"?RXt({...t,tlsCompatible:c,bucketName:u,accesspointName:D,hostnameSuffix:s}):y===""?vXt({...t,mrapAlias:D,hostnameSuffix:s}):B?xXt({...t,clientRegion:n,outpostId:B,accesspointName:D,hostnameSuffix:s}):PXt({...t,clientRegion:n,accesspointName:D,hostnameSuffix:s})},RXt=({dualstackEndpoint:t=!1,fipsEndpoint:e=!1,tlsCompatible:r=!0,useArnRegion:n,clientRegion:s,clientSigningRegion:o=s,accesspointName:i,bucketName:a,hostnameSuffix:c})=>{let{accountId:u,region:l,service:d}=a;RQ(s);let p=`${i}-${u}`;Fh(p,{tlsCompatible:r});let g=n?l:s,y=n?l:o;return{bucketEndpoint:!0,hostname:`${p}.${d}${e?"-fips":""}.${g}.${c}`,signingRegion:y,signingService:d}},vXt=({disableMultiregionAccessPoints:t,dualstackEndpoint:e=!1,isCustomEndpoint:r,mrapAlias:n,hostnameSuffix:s})=>{if(t===!0)throw new Error("SDK is attempting to use a MRAP ARN. Please enable to feature.");return yXt(n),{bucketEndpoint:!0,hostname:`${n}${r?"":".accesspoint.s3-global"}.${s}`,signingRegion:"*"}},xXt=({useArnRegion:t,clientRegion:e,clientSigningRegion:r=e,bucketName:n,outpostId:s,dualstackEndpoint:o=!1,fipsEndpoint:i=!1,tlsCompatible:a=!0,accesspointName:c,isCustomEndpoint:u,hostnameSuffix:l})=>{RQ(e);let d=`${c}-${n.accountId}`;Fh(d,{tlsCompatible:a});let p=t?n.region:e,g=t?n.region:r;return e2e(n.service),Fh(s,{tlsCompatible:a}),s2e(i),{bucketEndpoint:!0,hostname:`${`${d}.${s}`}${u?"":`.s3-outposts.${p}`}.${l}`,signingRegion:g,signingService:"s3-outposts"}},PXt=({useArnRegion:t,clientRegion:e,clientSigningRegion:r=e,bucketName:n,dualstackEndpoint:s=!1,fipsEndpoint:o=!1,tlsCompatible:i=!0,accesspointName:a,isCustomEndpoint:c,hostnameSuffix:u})=>{RQ(e);let l=`${a}-${n.accountId}`;Fh(l,{tlsCompatible:i});let d=t?n.region:e,p=t?n.region:r;return fXt(n.service),{bucketEndpoint:!0,hostname:`${l}${c?"":`.s3-accesspoint${o?"-fips":""}${s?".dualstack":""}.${d}`}.${u}`,signingRegion:p}},o2e=t=>(e,r)=>async n=>{let{Bucket:s}=n.input,o=t.bucketEndpoint,i=n.request;if(nXt.HttpRequest.isInstance(i)){if(t.bucketEndpoint)i.hostname=s;else if(HGe.validate(s)){let a=HGe.parse(s),c=await t.region(),u=await t.useDualstackEndpoint(),l=await t.useFipsEndpoint(),{partition:d,signingRegion:p=c}=await t.regionInfoProvider(c,{useDualstackEndpoint:u,useFipsEndpoint:l})||{},g=await t.useArnRegion(),{hostname:y,bucketEndpoint:R,signingRegion:D,signingService:B}=CQ({bucketName:a,baseHostname:i.hostname,accelerateEndpoint:t.useAccelerateEndpoint,dualstackEndpoint:u,fipsEndpoint:l,pathStyleEndpoint:t.forcePathStyle,tlsCompatible:i.protocol==="https:",useArnRegion:g,clientPartition:d,clientSigningRegion:p,clientRegion:c,isCustomEndpoint:t.isCustomEndpoint,disableMultiregionAccessPoints:await t.disableMultiregionAccessPoints()});D&&D!==p&&(r.signing_region=D),B&&B!=="s3"&&(r.signing_service=B),i.hostname=y,o=R}else{let a=await t.region(),c=await t.useDualstackEndpoint(),u=await t.useFipsEndpoint(),{hostname:l,bucketEndpoint:d}=CQ({bucketName:s,clientRegion:a,baseHostname:i.hostname,accelerateEndpoint:t.useAccelerateEndpoint,dualstackEndpoint:c,fipsEndpoint:u,pathStyleEndpoint:t.forcePathStyle,tlsCompatible:i.protocol==="https:",isCustomEndpoint:t.isCustomEndpoint});i.hostname=l,o=d}o&&(i.path=i.path.replace(/^(\/)?[^\/]+/,""),i.path===""&&(i.path="/"))}return e({...n,request:i})},i2e={tags:["BUCKET_ENDPOINT"],name:"bucketEndpointMiddleware",relation:"before",toMiddleware:"hostHeaderMiddleware",override:!0},bXt=t=>({applyToStack:e=>{e.addRelativeTo(o2e(t),i2e)}});function IXt(t){let{bucketEndpoint:e=!1,forcePathStyle:r=!1,useAccelerateEndpoint:n=!1,useArnRegion:s,disableMultiregionAccessPoints:o=!1}=t;return Object.assign(t,{bucketEndpoint:e,forcePathStyle:r,useAccelerateEndpoint:n,useArnRegion:typeof s=="function"?s:()=>Promise.resolve(s),disableMultiregionAccessPoints:typeof o=="function"?o:()=>Promise.resolve(o)})}Rr.NODE_DISABLE_MULTIREGION_ACCESS_POINT_CONFIG_OPTIONS=sXt;Rr.NODE_DISABLE_MULTIREGION_ACCESS_POINT_ENV_NAME=zGe;Rr.NODE_DISABLE_MULTIREGION_ACCESS_POINT_INI_NAME=WGe;Rr.NODE_USE_ARN_REGION_CONFIG_OPTIONS=oXt;Rr.NODE_USE_ARN_REGION_ENV_NAME=KGe;Rr.NODE_USE_ARN_REGION_INI_NAME=QGe;Rr.bucketEndpointMiddleware=o2e;Rr.bucketEndpointMiddlewareOptions=i2e;Rr.bucketHostname=CQ;Rr.getArnResources=n2e;Rr.getBucketEndpointPlugin=bXt;Rr.getSuffixForArnEndpoint=ZGe;Rr.resolveBucketEndpointConfig=IXt;Rr.validateAccountId=r2e;Rr.validateDNSHostLabel=Fh;Rr.validateNoDualstack=EXt;Rr.validateNoFIPS=s2e;Rr.validateOutpostService=e2e;Rr.validatePartition=t2e;Rr.validateRegion=hXt});var p2e=b(IF=>{"use strict";Object.defineProperty(IF,"__esModule",{value:!0});IF.getRuntimeConfig=void 0;var c2e=(Dt(),ue(Fr)),AXt=(wa(),ue(Wg)),TXt=U5(),wXt=require("@smithy/smithy-client"),DXt=require("@smithy/url-parser"),u2e=require("@smithy/util-base64"),l2e=require("@smithy/util-stream"),d2e=require("@smithy/util-utf8"),OXt=yQ(),kXt=EQ(),NXt=t=>({apiVersion:"2006-03-01",base64Decoder:t?.base64Decoder??u2e.fromBase64,base64Encoder:t?.base64Encoder??u2e.toBase64,disableHostPrefix:t?.disableHostPrefix??!1,endpointProvider:t?.endpointProvider??kXt.defaultEndpointResolver,extensions:t?.extensions??[],getAwsChunkedEncodingStream:t?.getAwsChunkedEncodingStream??l2e.getAwsChunkedEncodingStream,httpAuthSchemeProvider:t?.httpAuthSchemeProvider??OXt.defaultS3HttpAuthSchemeProvider,httpAuthSchemes:t?.httpAuthSchemes??[{schemeId:"aws.auth#sigv4",identityProvider:e=>e.getIdentityProvider("aws.auth#sigv4"),signer:new c2e.AwsSdkSigV4Signer},{schemeId:"aws.auth#sigv4a",identityProvider:e=>e.getIdentityProvider("aws.auth#sigv4a"),signer:new c2e.AwsSdkSigV4ASigner}],logger:t?.logger??new wXt.NoOpLogger,protocol:t?.protocol??new AXt.AwsRestXmlProtocol({defaultNamespace:"com.amazonaws.s3",xmlNamespace:"http://s3.amazonaws.com/doc/2006-03-01/"}),sdkStreamMixin:t?.sdkStreamMixin??l2e.sdkStreamMixin,serviceId:t?.serviceId??"S3",signerConstructor:t?.signerConstructor??TXt.SignatureV4MultiRegion,signingEscapePath:t?.signingEscapePath??!1,urlParser:t?.urlParser??DXt.parseUrl,useArnRegion:t?.useArnRegion??void 0,utf8Decoder:t?.utf8Decoder??d2e.fromUtf8,utf8Encoder:t?.utf8Encoder??d2e.toUtf8});IF.getRuntimeConfig=NXt});var E2e=b(TF=>{"use strict";Object.defineProperty(TF,"__esModule",{value:!0});TF.getRuntimeConfig=void 0;var LXt=require("tslib"),MXt=LXt.__importDefault(VGe()),vQ=(Dt(),ue(Fr)),FXt=O_(),BXt=a2e(),m2e=D5(),UXt=gF(),g2e=Mc(),AF=require("@smithy/config-resolver"),qXt=require("@smithy/eventstream-serde-node"),xQ=require("@smithy/hash-node"),$Xt=require("@smithy/hash-stream-node"),f2e=require("@smithy/middleware-retry"),ui=require("@smithy/node-config-provider"),h2e=require("@smithy/node-http-handler"),S2e=require("@smithy/smithy-client"),GXt=require("@smithy/util-body-length-node"),jXt=require("@smithy/util-defaults-mode-node"),VXt=require("@smithy/util-retry"),HXt=p2e(),zXt=t=>{(0,S2e.emitWarningIfUnsupportedVersion)(process.version);let e=(0,jXt.resolveDefaultsModeConfig)(t),r=()=>e().then(S2e.loadConfigsForDefaultMode),n=(0,HXt.getRuntimeConfig)(t);(0,vQ.emitWarningIfUnsupportedVersion)(process.version);let s={profile:t?.profile,logger:n.logger};return{...n,...t,runtime:"node",defaultsMode:e,authSchemePreference:t?.authSchemePreference??(0,ui.loadConfig)(vQ.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS,s),bodyLengthChecker:t?.bodyLengthChecker??GXt.calculateBodyLength,credentialDefaultProvider:t?.credentialDefaultProvider??FXt.defaultProvider,defaultUserAgentProvider:t?.defaultUserAgentProvider??(0,g2e.createDefaultUserAgentProvider)({serviceId:n.serviceId,clientVersion:MXt.default.version}),disableS3ExpressSessionAuth:t?.disableS3ExpressSessionAuth??(0,ui.loadConfig)(UXt.NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_OPTIONS,s),eventStreamSerdeProvider:t?.eventStreamSerdeProvider??qXt.eventStreamSerdeProvider,maxAttempts:t?.maxAttempts??(0,ui.loadConfig)(f2e.NODE_MAX_ATTEMPT_CONFIG_OPTIONS,t),md5:t?.md5??xQ.Hash.bind(null,"md5"),region:t?.region??(0,ui.loadConfig)(AF.NODE_REGION_CONFIG_OPTIONS,{...AF.NODE_REGION_CONFIG_FILE_OPTIONS,...s}),requestChecksumCalculation:t?.requestChecksumCalculation??(0,ui.loadConfig)(m2e.NODE_REQUEST_CHECKSUM_CALCULATION_CONFIG_OPTIONS,s),requestHandler:h2e.NodeHttpHandler.create(t?.requestHandler??r),responseChecksumValidation:t?.responseChecksumValidation??(0,ui.loadConfig)(m2e.NODE_RESPONSE_CHECKSUM_VALIDATION_CONFIG_OPTIONS,s),retryMode:t?.retryMode??(0,ui.loadConfig)({...f2e.NODE_RETRY_MODE_CONFIG_OPTIONS,default:async()=>(await r()).retryMode||VXt.DEFAULT_RETRY_MODE},t),sha1:t?.sha1??xQ.Hash.bind(null,"sha1"),sha256:t?.sha256??xQ.Hash.bind(null,"sha256"),sigv4aSigningRegionSet:t?.sigv4aSigningRegionSet??(0,ui.loadConfig)(vQ.NODE_SIGV4A_CONFIG_OPTIONS,s),streamCollector:t?.streamCollector??h2e.streamCollector,streamHasher:t?.streamHasher??$Xt.readableStreamHasher,useArnRegion:t?.useArnRegion??(0,ui.loadConfig)(BXt.NODE_USE_ARN_REGION_CONFIG_OPTIONS,s),useDualstackEndpoint:t?.useDualstackEndpoint??(0,ui.loadConfig)(AF.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS,s),useFipsEndpoint:t?.useFipsEndpoint??(0,ui.loadConfig)(AF.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS,s),userAgentAppId:t?.userAgentAppId??(0,ui.loadConfig)(g2e.NODE_APP_ID_CONFIG_OPTIONS,s)}};TF.getRuntimeConfig=zXt});var R2e=b(IR=>{"use strict";function y2e(t){return e=>async r=>{let n={...r.input},s=[{target:"SSECustomerKey",hash:"SSECustomerKeyMD5"},{target:"CopySourceSSECustomerKey",hash:"CopySourceSSECustomerKeyMD5"}];for(let o of s){let i=n[o.target];if(i){let a;typeof i=="string"?C2e(i,t)?a=t.base64Decoder(i):(a=t.utf8Decoder(i),n[o.target]=t.base64Encoder(a)):(a=ArrayBuffer.isView(i)?new Uint8Array(i.buffer,i.byteOffset,i.byteLength):new Uint8Array(i),n[o.target]=t.base64Encoder(a));let c=new t.md5;c.update(a),n[o.hash]=t.base64Encoder(await c.digest())}}return e({...r,input:n})}}var _2e={name:"ssecMiddleware",step:"initialize",tags:["SSE"],override:!0},WXt=t=>({applyToStack:e=>{e.add(y2e(t),_2e)}});function C2e(t,e){if(!/^(?:[A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(t))return!1;try{return e.base64Decoder(t).length===32}catch{return!1}}IR.getSsecPlugin=WXt;IR.isValidBase64EncodedSSECustomerKey=C2e;IR.ssecMiddleware=y2e;IR.ssecMiddlewareOptions=_2e});var P2e=b(wF=>{"use strict";function v2e(t){return e=>async r=>{let{CreateBucketConfiguration:n}=r.input,s=await t.region();return!n?.LocationConstraint&&!n?.Location&&s!=="us-east-1"&&(r.input.CreateBucketConfiguration=r.input.CreateBucketConfiguration??{},r.input.CreateBucketConfiguration.LocationConstraint=s),e(r)}}var x2e={step:"initialize",tags:["LOCATION_CONSTRAINT","CREATE_BUCKET_CONFIGURATION"],name:"locationConstraintMiddleware",override:!0},KXt=t=>({applyToStack:e=>{e.add(v2e(t),x2e)}});wF.getLocationConstraintPlugin=KXt;wF.locationConstraintMiddleware=v2e;wF.locationConstraintMiddlewareOptions=x2e});var zHe=b(I=>{"use strict";var QXt=Tqe(),Rt=D5(),b2e=wc(),XXt=Dc(),JXt=Oc(),le=gF(),I2e=Oa(),YXt=require("@smithy/config-resolver"),Jp=require("@smithy/core"),Gn=require("@smithy/core/schema"),ZXt=require("@smithy/eventstream-serde-config-resolver"),eJt=require("@smithy/middleware-content-length"),z=require("@smithy/middleware-endpoint"),A2e=require("@smithy/middleware-retry"),j=require("@smithy/smithy-client"),T2e=yQ(),tJt=E2e(),w2e=Na(),D2e=require("@smithy/protocol-http"),oa=R2e(),rJt=P2e(),gr=require("@smithy/util-waiter"),nJt=t=>Object.assign(t,{useFipsEndpoint:t.useFipsEndpoint??!1,useDualstackEndpoint:t.useDualstackEndpoint??!1,forcePathStyle:t.forcePathStyle??!1,useAccelerateEndpoint:t.useAccelerateEndpoint??!1,useGlobalEndpoint:t.useGlobalEndpoint??!1,disableMultiregionAccessPoints:t.disableMultiregionAccessPoints??!1,defaultSigningName:"s3"}),K={ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},DisableS3ExpressSessionAuth:{type:"clientContextParams",name:"disableS3ExpressSessionAuth"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}},jn=class G2e extends j.ServiceException{constructor(e){super(e),Object.setPrototypeOf(this,G2e.prototype)}},j2e=class V2e extends jn{name="NoSuchUpload";$fault="client";constructor(e){super({name:"NoSuchUpload",$fault:"client",...e}),Object.setPrototypeOf(this,V2e.prototype)}},H2e=class z2e extends jn{name="ObjectNotInActiveTierError";$fault="client";constructor(e){super({name:"ObjectNotInActiveTierError",$fault:"client",...e}),Object.setPrototypeOf(this,z2e.prototype)}},W2e=class K2e extends jn{name="BucketAlreadyExists";$fault="client";constructor(e){super({name:"BucketAlreadyExists",$fault:"client",...e}),Object.setPrototypeOf(this,K2e.prototype)}},Q2e=class X2e extends jn{name="BucketAlreadyOwnedByYou";$fault="client";constructor(e){super({name:"BucketAlreadyOwnedByYou",$fault:"client",...e}),Object.setPrototypeOf(this,X2e.prototype)}},J2e=class Y2e extends jn{name="NoSuchBucket";$fault="client";constructor(e){super({name:"NoSuchBucket",$fault:"client",...e}),Object.setPrototypeOf(this,Y2e.prototype)}},Z2e=class eje extends jn{name="InvalidObjectState";$fault="client";StorageClass;AccessTier;constructor(e){super({name:"InvalidObjectState",$fault:"client",...e}),Object.setPrototypeOf(this,eje.prototype),this.StorageClass=e.StorageClass,this.AccessTier=e.AccessTier}},tje=class rje extends jn{name="NoSuchKey";$fault="client";constructor(e){super({name:"NoSuchKey",$fault:"client",...e}),Object.setPrototypeOf(this,rje.prototype)}},nje=class sje extends jn{name="NotFound";$fault="client";constructor(e){super({name:"NotFound",$fault:"client",...e}),Object.setPrototypeOf(this,sje.prototype)}},oje=class ije extends jn{name="EncryptionTypeMismatch";$fault="client";constructor(e){super({name:"EncryptionTypeMismatch",$fault:"client",...e}),Object.setPrototypeOf(this,ije.prototype)}},aje=class cje extends jn{name="InvalidRequest";$fault="client";constructor(e){super({name:"InvalidRequest",$fault:"client",...e}),Object.setPrototypeOf(this,cje.prototype)}},uje=class lje extends jn{name="InvalidWriteOffset";$fault="client";constructor(e){super({name:"InvalidWriteOffset",$fault:"client",...e}),Object.setPrototypeOf(this,lje.prototype)}},dje=class pje extends jn{name="TooManyParts";$fault="client";constructor(e){super({name:"TooManyParts",$fault:"client",...e}),Object.setPrototypeOf(this,pje.prototype)}},mje=class gje extends jn{name="IdempotencyParameterMismatch";$fault="client";constructor(e){super({name:"IdempotencyParameterMismatch",$fault:"client",...e}),Object.setPrototypeOf(this,gje.prototype)}},fje=class hje extends jn{name="ObjectAlreadyInActiveTierError";$fault="client";constructor(e){super({name:"ObjectAlreadyInActiveTierError",$fault:"client",...e}),Object.setPrototypeOf(this,hje.prototype)}},sJt="Account",oJt="AnalyticsAndOperator",DF="AccelerateConfiguration",VB="AccessControlList",qh="ACL",Sje="AnalyticsConfigurationList",Yp="AccessControlPolicy",Eje="AccessControlTranslation",AR="AnalyticsConfiguration",yje="AbortDate",iJt="AnalyticsExportDestination",aJt="AnalyticsFilter",cJt="AllowedHeaders",uJt="AllowedHeader",lJt="AccountId",_je="AbortIncompleteMultipartUpload",O2e="AccessKeyId",dJt="AllowedMethods",pJt="AbortMultipartUpload",mJt="AbortMultipartUploadOutput",gJt="AbortMultipartUploadRequest",fJt="AllowedMethod",hJt="AllowedOrigins",SJt="AllowedOrigin",EJt="AccessPointAlias",Cje="AccessPointArn",yJt="AllowQuotedRecordDelimiter",kQ="AcceptRanges",Rje="AbortRuleId",OF="AbacStatus",_Jt="AnalyticsS3BucketDestination",CJt="ApplyServerSideEncryptionByDefault",RJt="ArchiveStatus",vje="AccessTier",FR="And",$="Bucket",NQ="BucketArn",vJt="BucketAlreadyExists",xJt="BucketAccountId",PJt="BucketAlreadyOwnedByYou",xje="BlockedEncryptionTypes",LQ="BypassGovernanceRetention",bJt="BucketInfo",ns="BucketKeyEnabled",IJt="BucketLifecycleConfiguration",AJt="BucketLocationName",kF="BucketLoggingStatus",TJt="BucketLocationType",wJt="BucketName",Pje="BytesProcessed",k2e="BlockPublicAcls",N2e="BlockPublicPolicy",MQ="BucketRegion",bje="BytesReturned",Ije="BytesScanned",BR="Body",FQ="Buckets",Aje="Checksum",st="ChecksumAlgorithm",DJt="CannedACL",OJt="CreateBucket",PQ="CreateBucketConfiguration",kJt="CreateBucketMetadataConfiguration",NJt="CreateBucketMetadataConfigurationRequest",LJt="CreateBucketMetadataTableConfiguration",MJt="CreateBucketMetadataTableConfigurationRequest",FJt="CreateBucketOutput",BJt="CreateBucketRequest",$h="CacheControl",ss="ChecksumCRC32",os="ChecksumCRC32C",is="ChecksumCRC64NVME",UR="Cache-Control",UJt="CreationDate",qR="Content-Disposition",Gh="ContentDisposition",qJt="ContinuationEvent",$R="Content-Encoding",jh="ContentEncoding",$Jt="CloudFunction",GJt="CloudFunctionConfiguration",Vh="ContentLanguage",GR="Content-Language",jR="Content-Length",VR="ContentLength",Zt="Content-MD5",er="ContentMD5",jJt="CompletedMultipartUpload",VJt="CompleteMultipartUploadOutput",HJt="CreateMultipartUploadOutput",zJt="CompleteMultipartUploadResult",WJt="CompleteMultipartUploadRequest",KJt="CreateMultipartUploadRequest",Tje="CompleteMultipartUpload",QJt="CreateMultipartUpload",wje="ChecksumMode",XJt="CopyObject",JJt="CopyObjectOutput",Dje="CopyObjectResult",NF="CORSConfiguration",BQ="CORSRules",UQ="CORSRule",YJt="CopyObjectRequest",ZJt="CommonPrefix",eYt="CommonPrefixList",tYt="CompletedPartList",Oje="CopyPartResult",rYt="CompletedPart",HB="CommonPrefixes",qQ="ContentRange",nYt="ConfirmRemoveSelfBucketAccess",kje="Content-Range",Nje="CopySource",as="ChecksumSHA1",cs="ChecksumSHA256",Lje="CopySourceIfMatch",Mje="CopySourceIfModifiedSince",Fje="CopySourceIfNoneMatch",Bje="CopySourceIfUnmodifiedSince",sYt="CreateSessionOutput",oYt="CreateSessionResult",iYt="CopySourceRange",aYt="CreateSessionRequest",Uje="CopySourceSSECustomerAlgorithm",$Q="CopySourceSSECustomerKey",qje="CopySourceSSECustomerKeyMD5",$je="CSV",Gje="CopySourceVersionId",cYt="CSVInput",uYt="CSVOutput",GQ="ConfigurationState",lYt="CreateSession",fo="ChecksumType",HR="Content-Type",dYt="ClientToken",Hh="ContentType",pYt="CompressionType",ks="ContinuationToken",jje="Condition",mYt="Code",gYt="Comments",Vje="Contents",fYt="Cont",L2e="Credentials",zh="Days",hYt="DaysAfterInitiation",SYt="DeleteBucket",EYt="DeleteBucketAnalyticsConfiguration",yYt="DeleteBucketAnalyticsConfigurationRequest",_Yt="DeleteBucketCors",CYt="DeleteBucketCorsRequest",RYt="DeleteBucketEncryption",vYt="DeleteBucketEncryptionRequest",xYt="DeleteBucketInventoryConfiguration",PYt="DeleteBucketInventoryConfigurationRequest",bYt="DeleteBucketIntelligentTieringConfiguration",IYt="DeleteBucketIntelligentTieringConfigurationRequest",AYt="DeleteBucketLifecycle",TYt="DeleteBucketLifecycleRequest",wYt="DeleteBucketMetadataConfiguration",DYt="DeleteBucketMetadataConfigurationRequest",OYt="DeleteBucketMetricsConfigurationRequest",kYt="DeleteBucketMetricsConfiguration",NYt="DeleteBucketMetadataTableConfiguration",LYt="DeleteBucketMetadataTableConfigurationRequest",MYt="DeleteBucketOwnershipControls",FYt="DeleteBucketOwnershipControlsRequest",BYt="DeleteBucketPolicy",UYt="DeleteBucketPolicyRequest",qYt="DeleteBucketRequest",$Yt="DeleteBucketReplicationRequest",GYt="DeleteBucketReplication",jYt="DeleteBucketTagging",VYt="DeleteBucketTaggingRequest",HYt="DeleteBucketWebsite",zYt="DeleteBucketWebsiteRequest",WYt="DataExport",KYt="DestinationIfMatch",QYt="DestinationIfModifiedSince",XYt="DestinationIfNoneMatch",JYt="DestinationIfUnmodifiedSince",Zp="DeleteMarker",YYt="DeleteMarkerEntry",Hje="DeleteMarkerReplication",ZYt="DeleteMarkerVersionId",zje="DeleteMarkers",jQ="DisplayName",e7t="DeletedObject",t7t="DeleteObjectOutput",r7t="DeleteObjectsOutput",n7t="DeleteObjectRequest",s7t="DeleteObjectsRequest",o7t="DeleteObjectTagging",i7t="DeleteObjectTaggingOutput",a7t="DeleteObjectTaggingRequest",c7t="DeletedObjects",u7t="DeleteObject",l7t="DeleteObjects",d7t="DeletePublicAccessBlock",p7t="DeletePublicAccessBlockRequest",m7t="DataRedundancy",Wje="DefaultRetention",g7t="DeleteResult",Kje="DestinationResult",Qje="Date",bQ="Delete",f7t="Deleted",od="Delimiter",zB="Destination",h7t="Description",Xje="Details",rc="Expiration",S7t="EmailAddress",Jje="EventBridgeConfiguration",X="ExpectedBucketOwner",zR="EncryptionConfiguration",Yje="ErrorCode",E7t="ErrorDetails",VQ="ErrorDocument",y7t="EndEvent",_7t="ExposeHeaders",C7t="ExposeHeader",Zje="ErrorMessage",R7t="ExpiredObjectDeleteMarker",e4e="ExistingObjectReplication",LF="ExpiresString",t4e="ExpectedSourceBucketOwner",HQ="EncryptionType",v7t="EncryptionTypeList",x7t="EncryptionTypeMismatch",tn="ETag",id="EncodingType",P7t="EventThreshold",r4e="ExpressionType",zQ="Encryption",b7t="Enabled",n4e="End",s4e="Errors",WR="Error",WQ="Events",KQ="Event",na="Expires",o4e="Expression",du="Filter",i4e="FieldDelimiter",I7t="FileHeaderInfo",A7t="FetchOwner",a4e="FilterRule",T7t="FilterRuleList",w7t="FilterRules",D7t="Field",c4e="Format",O7t="Frequency",WB="Grants",k7t="GetBucketAbac",N7t="GetBucketAccelerateConfiguration",L7t="GetBucketAccelerateConfigurationOutput",M7t="GetBucketAnalyticsConfigurationOutput",F7t="GetBucketAccelerateConfigurationRequest",B7t="GetBucketAnalyticsConfigurationRequest",U7t="GetBucketAnalyticsConfiguration",q7t="GetBucketAbacOutput",$7t="GetBucketAclOutput",G7t="GetBucketAbacRequest",j7t="GetBucketAclRequest",V7t="GetBucketAcl",H7t="GetBucketCors",z7t="GetBucketCorsOutput",W7t="GetBucketCorsRequest",K7t="GetBucketEncryption",Q7t="GetBucketEncryptionOutput",X7t="GetBucketEncryptionRequest",J7t="GetBucketInventoryConfiguration",Y7t="GetBucketInventoryConfigurationOutput",Z7t="GetBucketInventoryConfigurationRequest",eZt="GetBucketIntelligentTieringConfiguration",tZt="GetBucketIntelligentTieringConfigurationOutput",rZt="GetBucketIntelligentTieringConfigurationRequest",nZt="GetBucketLocation",sZt="GetBucketLifecycleConfiguration",oZt="GetBucketLifecycleConfigurationOutput",iZt="GetBucketLifecycleConfigurationRequest",aZt="GetBucketLocationOutput",cZt="GetBucketLoggingOutput",uZt="GetBucketLocationRequest",lZt="GetBucketLoggingRequest",dZt="GetBucketLogging",pZt="GetBucketMetadataConfiguration",mZt="GetBucketMetadataConfigurationOutput",gZt="GetBucketMetricsConfigurationOutput",u4e="GetBucketMetadataConfigurationResult",fZt="GetBucketMetadataConfigurationRequest",hZt="GetBucketMetricsConfigurationRequest",SZt="GetBucketMetricsConfiguration",EZt="GetBucketMetadataTableConfiguration",yZt="GetBucketMetadataTableConfigurationOutput",l4e="GetBucketMetadataTableConfigurationResult",_Zt="GetBucketMetadataTableConfigurationRequest",CZt="GetBucketNotificationConfiguration",RZt="GetBucketNotificationConfigurationRequest",vZt="GetBucketOwnershipControls",xZt="GetBucketOwnershipControlsOutput",PZt="GetBucketOwnershipControlsRequest",bZt="GetBucketPolicy",IZt="GetBucketPolicyOutput",AZt="GetBucketPolicyRequest",TZt="GetBucketPolicyStatus",wZt="GetBucketPolicyStatusOutput",DZt="GetBucketPolicyStatusRequest",OZt="GetBucketReplication",kZt="GetBucketReplicationOutput",NZt="GetBucketRequestPayment",LZt="GetBucketRequestPaymentOutput",MZt="GetBucketRequestPaymentRequest",FZt="GetBucketReplicationRequest",BZt="GetBucketTagging",UZt="GetBucketTaggingOutput",qZt="GetBucketTaggingRequest",$Zt="GetBucketVersioning",GZt="GetBucketVersioningOutput",jZt="GetBucketVersioningRequest",VZt="GetBucketWebsite",HZt="GetBucketWebsiteOutput",zZt="GetBucketWebsiteRequest",Wh="GrantFullControl",d4e="GlacierJobParameters",WZt="GetObject",KZt="GetObjectAcl",QZt="GetObjectAclOutput",XZt="GetObjectAttributesOutput",JZt="GetObjectAttributesParts",YZt="GetObjectAclRequest",ZZt="GetObjectAttributesResponse",eer="GetObjectAttributesRequest",ter="GetObjectAttributes",rer="GetObjectLockConfiguration",ner="GetObjectLockConfigurationOutput",ser="GetObjectLockConfigurationRequest",oer="GetObjectLegalHold",ier="GetObjectLegalHoldOutput",aer="GetObjectLegalHoldRequest",cer="GetObjectOutput",uer="GetObjectRequest",ler="GetObjectRetentionOutput",der="GetObjectRetentionRequest",per="GetObjectRetention",mer="GetObjectTagging",ger="GetObjectTaggingOutput",fer="GetObjectTorrentOutput",her="GetObjectTaggingRequest",Ser="GetObjectTorrentRequest",Eer="GetObjectTorrent",yer="GetPublicAccessBlock",_er="GetPublicAccessBlockOutput",Cer="GetPublicAccessBlockRequest",Kh="GrantRead",Qh="GrantReadACP",QQ="GrantWrite",Xh="GrantWriteACP",XQ="Grant",JQ="Grantee",Rer="HeadBucket",ver="HeadBucketOutput",xer="HeadBucketRequest",Per="HttpErrorCodeReturnedEquals",p4e="HostName",ber="HeadObject",Ier="HeadObjectOutput",Aer="HeadObjectRequest",Ter="HttpRedirectCode",$r="Id",TR="InventoryConfiguration",m4e="InventoryConfigurationList",Jh="ID",YQ="IndexDocument",wer="InventoryDestination",Der="IsEnabled",Oer="InventoryEncryption",ker="InventoryFilter",g4e="IsLatest",Yh="IfMatch",Ner="IfMatchInitiatedTime",Ler="IfMatchLastModifiedTime",Mer="IfMatchSize",ZQ="If-Modified-Since",f4e="IfModifiedSince",Fer="InitiateMultipartUploadResult",em="If-Match",KR="IfNoneMatch",Zh="If-None-Match",Ber="InventoryOptionalFields",Uer="InvalidObjectState",qer="IncludedObjectVersions",M2e="IsPublic",F2e="IgnorePublicAcls",$er="IdempotencyParameterMismatch",Ger="InvalidRequest",jer="IsRestoreInProgress",eX="InputSerialization",Ver="InventoryS3BucketDestination",Her="InventorySchedule",nc="IsTruncated",zer="IntelligentTieringAndOperator",wR="IntelligentTieringConfiguration",h4e="IntelligentTieringConfigurationList",S4e="InventoryTableConfigurationResult",Wer="InventoryTableConfigurationUpdates",MF="InventoryTableConfiguration",Ker="IntelligentTieringFilter",E4e="IfUnmodifiedSince",tX="If-Unmodified-Since",Qer="InvalidWriteOffset",rX="Initiator",Xer="Initiated",y4e="JSON",Jer="JSONInput",Yer="JSONOutput",FF="JournalTableConfiguration",_4e="JournalTableConfigurationResult",Zer="JournalTableConfigurationUpdates",Qe="Key",etr="KeyCount",ttr="KeyId",rtr="KmsKeyArn",KB="KeyMarker",ntr="KMSContext",str="KMSKeyId",otr="KMSMasterKeyID",itr="KeyPrefixEquals",BF="Location",atr="ListAllMyBucketsResult",ctr="ListAllMyDirectoryBucketsResult",utr="ListBuckets",ltr="ListBucketAnalyticsConfigurations",dtr="ListBucketAnalyticsConfigurationsOutput",ptr="ListBucketAnalyticsConfigurationResult",mtr="ListBucketAnalyticsConfigurationsRequest",gtr="ListBucketInventoryConfigurations",ftr="ListBucketInventoryConfigurationsOutput",htr="ListBucketInventoryConfigurationsRequest",Str="ListBucketIntelligentTieringConfigurations",Etr="ListBucketIntelligentTieringConfigurationsOutput",ytr="ListBucketIntelligentTieringConfigurationsRequest",_tr="ListBucketMetricsConfigurations",Ctr="ListBucketMetricsConfigurationsOutput",Rtr="ListBucketMetricsConfigurationsRequest",vtr="ListBucketsOutput",xtr="ListBucketsRequest",C4e="ListBucketResult",IQ="LocationConstraint",AQ="LifecycleConfiguration",Ptr="ListDirectoryBuckets",btr="ListDirectoryBucketsOutput",Itr="ListDirectoryBucketsRequest",nX="LoggingEnabled",Atr="LifecycleExpiration",Ttr="LambdaFunctionArn",wtr="LambdaFunctionConfiguration",Dtr="LambdaFunctionConfigurationList",Otr="LambdaFunctionConfigurations",UF="LegalHold",ktr="LocationInfo",Ntr="ListInventoryConfigurationsResult",sc="LastModified",Ltr="ListMetricsConfigurationsResult",Mtr="LastModifiedTime",Ftr="ListMultipartUploads",Btr="ListMultipartUploadsOutput",Utr="ListMultipartUploadsResult",qtr="ListMultipartUploadsRequest",sX="Last-Modified",$tr="ListObjects",Gtr="ListObjectsOutput",jtr="ListObjectsRequest",Vtr="ListObjectsV2",Htr="ListObjectsV2Output",ztr="ListObjectVersionsOutput",Wtr="ListObjectsV2Request",Ktr="ListObjectVersionsRequest",Qtr="ListObjectVersions",Xtr="ListParts",Jtr="ListPartsOutput",Ytr="ListPartsResult",Ztr="ListPartsRequest",err="LifecycleRule",trr="LifecycleRuleAndOperator",rrr="LifecycleRuleFilter",nrr="LifecycleRules",srr="ListVersionsResult",eS="Metadata",orr="MetricsAndOperator",irr="MaxAgeSeconds",arr="MaxBuckets",TQ="MetadataConfiguration",R4e="MetricsConfigurationList",v4e="MetadataConfigurationResult",DR="MetricsConfiguration",crr="MetadataDirective",urr="MaxDirectoryBuckets",x4e="MfaDelete",P4e="MetadataEntry",lrr="MetricsFilter",oX="MFA",b4e="MFADelete",tS="MaxKeys",iX="MissingMeta",drr="MpuObjectSize",QB="MaxParts",wQ="MetadataTableConfiguration",I4e="MetadataTableConfigurationResult",prr="MetadataTableEncryptionConfiguration",A4e="MultipartUpload",mrr="MultipartUploadList",T4e="MaxUploads",w4e="Marker",D4e="Metrics",grr="Message",frr="Minutes",O4e="Mode",tm="Name",DQ="NotificationConfiguration",hrr="NotificationConfigurationFilter",QR="NextContinuationToken",k4e="NoncurrentDays",Srr="NotFound",N4e="NextKeyMarker",Err="NextMarker",L4e="NewerNoncurrentVersions",M4e="NextPartNumberMarker",yrr="NoSuchBucket",_rr="NoSuchKey",Crr="NoSuchUpload",Rrr="NextUploadIdMarker",F4e="NoncurrentVersionExpiration",vrr="NextVersionIdMarker",xrr="NoncurrentVersionTransitions",Prr="NoncurrentVersionTransitionList",B4e="NoncurrentVersionTransition",ia="Owner",brr="ObjectAttributes",Irr="ObjectAlreadyInActiveTierError",qF="OwnershipControls",Arr="OwnershipControlsRule",Trr="OwnershipControlsRules",wrr="OptionalFields",Drr="ObjectIdentifier",Orr="ObjectIdentifierList",U4e="OutputLocation",$F="ObjectLockConfiguration",krr="ObjectLockEnabled",Nrr="ObjectLockEnabledForBucket",Lrr="ObjectLockLegalHold",rS="ObjectLockLegalHoldStatus",nS="ObjectLockMode",Mrr="ObjectLockRetention",sS="ObjectLockRetainUntilDate",Frr="ObjectLockRule",Brr="ObjectList",Urr="ObjectNotInActiveTierError",q4e="ObjectOwnership",aX="OptionalObjectAttributes",qrr="ObjectParts",$rr="ObjectPart",Grr="ObjectSize",$4e="ObjectSizeGreaterThan",G4e="ObjectSizeLessThan",jrr="OutputSchemaVersion",cX="OutputSerialization",Vrr="ObjectVersion",Hrr="ObjectVersionList",zrr="Objects",j4e="Object",qt="Prefix",GF="PublicAccessBlockConfiguration",Wrr="PutBucketAbac",Krr="PutBucketAccelerateConfiguration",Qrr="PutBucketAccelerateConfigurationRequest",Xrr="PutBucketAnalyticsConfigurationRequest",Jrr="PutBucketAnalyticsConfiguration",Yrr="PutBucketAbacRequest",Zrr="PutBucketAclRequest",enr="PutBucketAcl",tnr="PutBucketCors",rnr="PutBucketCorsRequest",nnr="PutBucketEncryption",snr="PutBucketEncryptionRequest",onr="PutBucketInventoryConfiguration",inr="PutBucketInventoryConfigurationRequest",anr="PutBucketIntelligentTieringConfiguration",cnr="PutBucketIntelligentTieringConfigurationRequest",unr="PutBucketLogging",lnr="PutBucketLifecycleConfiguration",dnr="PutBucketLifecycleConfigurationOutput",pnr="PutBucketLifecycleConfigurationRequest",mnr="PutBucketLoggingRequest",gnr="PutBucketMetricsConfiguration",fnr="PutBucketMetricsConfigurationRequest",hnr="PutBucketNotificationConfiguration",Snr="PutBucketNotificationConfigurationRequest",Enr="PutBucketOwnershipControls",ynr="PutBucketOwnershipControlsRequest",_nr="PutBucketPolicy",Cnr="PutBucketPolicyRequest",Rnr="PutBucketReplication",vnr="PutBucketRequestPayment",xnr="PutBucketRequestPaymentRequest",Pnr="PutBucketReplicationRequest",bnr="PutBucketTagging",Inr="PutBucketTaggingRequest",Anr="PutBucketVersioning",Tnr="PutBucketVersioningRequest",wnr="PutBucketWebsite",Dnr="PutBucketWebsiteRequest",XB="PartsCount",Onr="PartitionDateSource",knr="ProgressEvent",Nnr="ParquetInput",Lnr="PartsList",rm="PartNumber",JB="PartNumberMarker",Mnr="PutObject",Fnr="PutObjectAcl",Bnr="PutObjectAclOutput",Unr="PutObjectAclRequest",qnr="PutObjectLockConfiguration",$nr="PutObjectLockConfigurationOutput",Gnr="PutObjectLockConfigurationRequest",jnr="PutObjectLegalHold",Vnr="PutObjectLegalHoldOutput",Hnr="PutObjectLegalHoldRequest",znr="PutObjectOutput",Wnr="PutObjectRequest",Knr="PutObjectRetentionOutput",Qnr="PutObjectRetentionRequest",Xnr="PutObjectRetention",Jnr="PutObjectTagging",Ynr="PutObjectTaggingOutput",Znr="PutObjectTaggingRequest",jF="PartitionedPrefix",esr="PutPublicAccessBlock",tsr="PutPublicAccessBlockRequest",V4e="PolicyStatus",YB="Parts",ZB="Part",rsr="Parquet",H4e="Payer",z4e="Payload",W4e="Permission",K4e="Policy",Q4e="Progress",nsr="Priority",X4e="Protocol",ssr="Quiet",osr="QueueArn",J4e="QuoteCharacter",isr="QueueConfigurationList",asr="QueueConfigurations",Y4e="QueueConfiguration",Z4e="QuoteEscapeCharacter",csr="QuoteFields",usr="Queue",XR="Rules",uX="RedirectAllRequestsTo",jt="RequestCharged",eVe="ResponseCacheControl",tVe="ResponseContentDisposition",rVe="ResponseContentEncoding",nVe="ResponseContentLanguage",sVe="ResponseContentType",VF="ReplicationConfiguration",lX="RecordDelimiter",oVe="ResponseExpires",lsr="RestoreExpiryDate",eU="RecordExpiration",dsr="RecordsEvent",psr="ReplicaKmsKeyID",msr="ReplaceKeyPrefixWith",gsr="ReplaceKeyWith",iVe="ReplicaModifications",fsr="RenameObject",hsr="RenameObjectOutput",Ssr="RestoreObjectOutput",Esr="RestoreOutputPath",ysr="RenameObjectRequest",_sr="RestoreObjectRequest",Csr="RestoreObject",It="RequestPayer",B2e="RestrictPublicBuckets",HF="RequestPaymentConfiguration",aVe="RequestProgress",dX="RoutingRules",Rsr="ReplicationRuleAndOperator",vsr="ReplicationRuleFilter",xsr="ReplicationRule",Psr="ReplicationRules",bsr="RequestRoute",OQ="RestoreRequest",cVe="RoutingRule",pX="ReplicationStatus",mX="RestoreStatus",Isr="RenameSource",uVe="ReplicationTime",Asr="ReplicationTimeValue",Tsr="RequestToken",wsr="RetainUntilDate",zF="Range",gX="Restore",Dsr="Records",lVe="Redirect",WF="Retention",Osr="Role",oS="Rule",Vn="Status",dVe="StartAfter",U2e="SecretAccessKey",ksr="SseAlgorithm",Nsr="StreamingBlob",pVe="S3BucketDestination",Hn="StorageClass",mVe="StorageClassAnalysis",Lsr="StorageClassAnalysisDataExport",Msr="SessionCredentialValue",Fsr="SessionCredentials",Bsr="StatusCode",Usr="SkipDestinationValidation",qsr="StatsEvent",$sr="SourceIfMatch",Gsr="SourceIfModifiedSince",jsr="SourceIfNoneMatch",Vsr="SourceIfUnmodifiedSince",gVe="SSE-KMS",fVe="SseKmsEncryptedObjects",Hsr="S3KeyFilter",zsr="S3Key",Wsr="S3Location",Ksr="SessionMode",Qsr="SelectObjectContent",Xsr="SelectObjectContentEventStream",Jsr="SelectObjectContentOutput",Ysr="SelectObjectContentRequest",hVe="SelectParameters",KF="SimplePrefix",SVe="ScanRange",EVe="SSE-S3",yVe="SourceSelectionCriteria",Ns="ServerSideEncryption",Zsr="SSEAlgorithm",eor="ServerSideEncryptionByDefault",QF="ServerSideEncryptionConfiguration",Gr="SSECustomerAlgorithm",li="SSECustomerKey",jr="SSECustomerKeyMD5",_Ve="SSEKMS",pu="SSEKMSEncryptionContext",us="SSEKMSKeyId",tor="ServerSideEncryptionRule",ror="ServerSideEncryptionRules",CVe="SSES3",q2e="SessionToken",RVe="S3TablesDestination",vVe="S3TablesDestinationResult",nor="S3",sor="Schedule",iS="Size",oor="Start",xVe="Stats",ior="Suffix",aS="Tags",fX="TableArn",aor="TopicArn",cor="TargetBucket",hX="TableBucketArn",uor="TableBucketType",SX="TagCount",lor="TopicConfigurationList",dor="TopicConfigurations",PVe="TopicConfiguration",por="TaggingDirective",EX="TransitionDefaultMinimumObjectSize",bVe="TargetGrants",mor="TargetGrant",gor="TieringList",hor="TransitionList",Sor="TooManyParts",IVe="TableNamespace",tU="TableName",AVe="TargetObjectKeyFormat",Eor="TargetPrefix",yor="TotalPartsCount",rU="TagSet",TVe="TableStatus",di="Tag",sa="Tagging",wVe="Tier",_or="Tierings",DVe="Tiering",Cor="Time",OVe="Token",Ror="Topic",vor="Transitions",kVe="Transition",JR="Type",xor="Uploads",Por="UpdateBucketMetadataInventoryTableConfiguration",bor="UpdateBucketMetadataInventoryTableConfigurationRequest",Ior="UpdateBucketMetadataJournalTableConfiguration",Aor="UpdateBucketMetadataJournalTableConfigurationRequest",ad="UploadId",NVe="UploadIdMarker",LVe="UserMetadata",Tor="UploadPart",wor="UploadPartCopy",Dor="UploadPartCopyOutput",Oor="UploadPartCopyRequest",kor="UploadPartOutput",Nor="UploadPartRequest",Lor="URI",Mor="Upload",yX="Value",XF="VersioningConfiguration",vt="VersionId",MVe="VersionIdMarker",For="Versions",Bor="Version",JF="WebsiteConfiguration",Uor="WriteGetObjectResponse",qor="WriteGetObjectResponseRequest",$or="WriteOffsetBytes",YR="WebsiteRedirectLocation",Gor="Years",FVe="accept-ranges",jor="bucket-region",Ls="client",nm="continuation-token",nU="delimiter",Ms="error",_X="eventPayload",Vor="endpoint",sU="encoding-type",Hor="fetch-owner",Q="http",ho="httpError",m="httpHeader",zor="hostLabel",at="httpPayload",cS="httpPrefixHeaders",se="httpQuery",BVe="http://www.w3.org/2001/XMLSchema-instance",pi="id",Wor="idempotencyToken",UVe="key-marker",Kor="marker",Qor="max-buckets",Xor="max-directory-buckets",CX="max-keys",Jor="max-parts",Yor="max-uploads",ZR="prefix",oU="partNumber",Zor="part-number-marker",qVe="response-cache-control",$Ve="response-content-disposition",GVe="response-content-encoding",jVe="response-content-language",VVe="response-content-type",HVe="response-expires",zVe="streaming",eir="start-after",WVe="smithy.ts.sdk.synthetic.com.amazonaws.s3",ev="uploadId",tir="upload-id-marker",Fs="versionId",rir="version-id-marker",KVe="xsi",nir="xmlAttribute",Ae="xmlFlattened",L="xmlName",QVe="xmlNamespace",uS="x-amz-acl",XVe="x-amz-abort-date",sir="x-amz-access-point-alias",JVe="x-amz-abort-rule-id",oir="x-amz-archive-status",YVe="x-amz-bucket-arn",RX="x-amz-bypass-governance-retention",iir="x-amz-bucket-location-name",air="x-amz-bucket-location-type",cir="x-amz-bucket-object-lock-enabled",ZVe="x-amz-bucket-object-lock-token",uir="x-amz-bucket-region",vX="x-amz-checksum-algorithm",sm="x-amz-checksum-crc32",om="x-amz-checksum-crc32c",im="x-amz-checksum-crc64nvme",eHe="x-amz-checksum-mode",lir="x-amz-confirm-remove-self-bucket-access",am="x-amz-checksum-sha1",cm="x-amz-checksum-sha256",tHe="x-amz-copy-source",rHe="x-amz-copy-source-if-match",nHe="x-amz-copy-source-if-modified-since",sHe="x-amz-copy-source-if-none-match",oHe="x-amz-copy-source-if-unmodified-since",dir="x-amz-create-session-mode",pir="x-amz-copy-source-range",iHe="x-amz-copy-source-server-side-encryption-customer-algorithm",aHe="x-amz-copy-source-server-side-encryption-customer-key",cHe="x-amz-copy-source-server-side-encryption-customer-key-MD5",uHe="x-amz-copy-source-version-id",lS="x-amz-checksum-type",mir="x-amz-client-token",iU="x-amz-delete-marker",tv="x-amz-expiration",J="x-amz-expected-bucket-owner",gir="x-amz-fwd-error-code",fir="x-amz-fwd-error-message",hir="x-amz-fwd-header-Cache-Control",Sir="x-amz-fwd-header-Content-Disposition",Eir="x-amz-fwd-header-Content-Encoding",yir="x-amz-fwd-header-Content-Language",_ir="x-amz-fwd-header-Content-Range",Cir="x-amz-fwd-header-Content-Type",Rir="x-amz-fwd-header-ETag",vir="x-amz-fwd-header-Expires",xir="x-amz-fwd-header-Last-Modified",Pir="x-amz-fwd-header-accept-ranges",bir="x-amz-fwd-header-x-amz-checksum-crc32",Iir="x-amz-fwd-header-x-amz-checksum-crc32c",Air="x-amz-fwd-header-x-amz-checksum-crc64nvme",Tir="x-amz-fwd-header-x-amz-checksum-sha1",wir="x-amz-fwd-header-x-amz-checksum-sha256",Dir="x-amz-fwd-header-x-amz-delete-marker",Oir="x-amz-fwd-header-x-amz-expiration",kir="x-amz-fwd-header-x-amz-missing-meta",Nir="x-amz-fwd-header-x-amz-mp-parts-count",Lir="x-amz-fwd-header-x-amz-object-lock-legal-hold",Mir="x-amz-fwd-header-x-amz-object-lock-mode",Fir="x-amz-fwd-header-x-amz-object-lock-retain-until-date",Bir="x-amz-fwd-header-x-amz-restore",Uir="x-amz-fwd-header-x-amz-request-charged",qir="x-amz-fwd-header-x-amz-replication-status",$ir="x-amz-fwd-header-x-amz-storage-class",Gir="x-amz-fwd-header-x-amz-server-side-encryption",jir="x-amz-fwd-header-x-amz-server-side-encryption-aws-kms-key-id",Vir="x-amz-fwd-header-x-amz-server-side-encryption-bucket-key-enabled",Hir="x-amz-fwd-header-x-amz-server-side-encryption-customer-algorithm",zir="x-amz-fwd-header-x-amz-server-side-encryption-customer-key-MD5",Wir="x-amz-fwd-header-x-amz-tagging-count",Kir="x-amz-fwd-header-x-amz-version-id",Qir="x-amz-fwd-status",dS="x-amz-grant-full-control",pS="x-amz-grant-read",mS="x-amz-grant-read-acp",xX="x-amz-grant-write",gS="x-amz-grant-write-acp",Xir="x-amz-if-match-initiated-time",Jir="x-amz-if-match-last-modified-time",Yir="x-amz-if-match-size",fS="x-amz-meta-",PX="x-amz-mfa",Zir="x-amz-metadata-directive",lHe="x-amz-missing-meta",ear="x-amz-mp-object-size",tar="x-amz-max-parts",dHe="x-amz-mp-parts-count",rar="x-amz-object-attributes",rv="x-amz-object-lock-legal-hold",nv="x-amz-object-lock-mode",sv="x-amz-object-lock-retain-until-date",nar="x-amz-object-ownership",bX="x-amz-optional-object-attributes",sar="x-amz-object-size",oar="x-amz-part-number-marker",pHe="x-amz-restore",Vt="x-amz-request-charged",iar="x-amz-restore-output-path",At="x-amz-request-payer",aar="x-amz-request-route",mHe="x-amz-replication-status",car="x-amz-rename-source",uar="x-amz-rename-source-if-match",lar="x-amz-rename-source-if-modified-since",dar="x-amz-rename-source-if-none-match",par="x-amz-rename-source-if-unmodified-since",mar="x-amz-request-token",ov="x-amz-storage-class",Nt="x-amz-sdk-checksum-algorithm",gar="x-amz-skip-destination-validation",gHe="x-amz-source-expected-bucket-owner",So="x-amz-server-side-encryption",Eo="x-amz-server-side-encryption-aws-kms-key-id",yo="x-amz-server-side-encryption-bucket-key-enabled",cd="x-amz-server-side-encryption-context",rn="x-amz-server-side-encryption-customer-algorithm",aa="x-amz-server-side-encryption-customer-key",nn="x-amz-server-side-encryption-customer-key-MD5",IX="x-amz-tagging",fHe="x-amz-tagging-count",far="x-amz-tagging-directive",AX="x-amz-transition-default-minimum-object-size",oc="x-amz-version-id",har="x-amz-write-offset-bytes",iv="x-amz-website-redirect-location",Sar="xsi:type",f="com.amazonaws.s3",hHe=[0,f,$Q,8,0],$2e=[0,f,Msr,8,0],ca=[0,f,li,8,0],ud=[0,f,pu,8,0],hn=[0,f,us,8,0],av=[0,f,Nsr,{[zVe]:1},42],SHe=[3,f,OF,0,[Vn],[0]],Ear=[3,f,_je,0,[hYt],[1]],yar=[3,f,mJt,0,[jt],[[0,{[m]:Vt}]]],_ar=[3,f,gJt,0,[$,Qe,ad,It,X,Ner],[[0,1],[0,1],[0,{[se]:ev}],[0,{[m]:At}],[0,{[m]:J}],[6,{[m]:Xir}]]],Car=[3,f,DF,0,[Vn],[0]],EHe=[3,f,Yp,0,[WB,ia],[[()=>cU,{[L]:VB}],()=>mu]],Rar=[3,f,Eje,0,[ia],[0]],xar=[3,f,oJt,0,[qt,aS],[0,[()=>gu,{[L]:di,[Ae]:1}]]],TX=[3,f,AR,0,[$r,du,mVe],[0,[()=>Omr,0],()=>$pr]],Par=[3,f,iJt,0,[pVe],[()=>bar]],bar=[3,f,_Jt,0,[c4e,xJt,$,qt],[0,0,0,0]],Iar=[3,f,xje,0,[HQ],[[()=>umr,{[Ae]:1}]]],Aar=[3,f,$,0,[tm,UJt,MQ,NQ],[0,4,0,0]],Tar=[-3,f,vJt,{[Ms]:Ls,[ho]:409},[],[]];Gn.TypeRegistry.for(f).registerError(Tar,W2e);var war=[-3,f,PJt,{[Ms]:Ls,[ho]:409},[],[]];Gn.TypeRegistry.for(f).registerError(war,Q2e);var Dar=[3,f,bJt,0,[m7t,JR],[0,0]],Oar=[3,f,IJt,0,[XR],[[()=>UHe,{[L]:oS,[Ae]:1}]]],kar=[3,f,kF,0,[nX],[[()=>xHe,0]]],Nar=[3,f,Aje,0,[ss,os,is,as,cs,fo],[0,0,0,0,0,0]],Lar=[3,f,ZJt,0,[qt],[0]],Mar=[3,f,jJt,0,[YB],[[()=>imr,{[L]:ZB,[Ae]:1}]]],Far=[3,f,rYt,0,[tn,ss,os,is,as,cs,rm],[0,0,0,0,0,0,1]],Bar=[3,f,VJt,{[L]:zJt},[BF,$,Qe,rc,tn,ss,os,is,as,cs,fo,Ns,vt,us,ns,jt],[0,0,0,[0,{[m]:tv}],0,0,0,0,0,0,0,[0,{[m]:So}],[0,{[m]:oc}],[()=>hn,{[m]:Eo}],[2,{[m]:yo}],[0,{[m]:Vt}]]],Uar=[3,f,WJt,0,[$,Qe,A4e,ad,ss,os,is,as,cs,fo,drr,It,X,Yh,KR,Gr,li,jr],[[0,1],[0,1],[()=>Mar,{[L]:Tje,[at]:1}],[0,{[se]:ev}],[0,{[m]:sm}],[0,{[m]:om}],[0,{[m]:im}],[0,{[m]:am}],[0,{[m]:cm}],[0,{[m]:lS}],[1,{[m]:ear}],[0,{[m]:At}],[0,{[m]:J}],[0,{[m]:em}],[0,{[m]:Zh}],[0,{[m]:rn}],[()=>ca,{[m]:aa}],[0,{[m]:nn}]]],qar=[3,f,jje,0,[Per,itr],[0,0]],$ar=[3,f,qJt,0,[],[]],Gar=[3,f,JJt,0,[Dje,rc,Gje,vt,Ns,Gr,jr,us,pu,ns,jt],[[()=>Var,16],[0,{[m]:tv}],[0,{[m]:uHe}],[0,{[m]:oc}],[0,{[m]:So}],[0,{[m]:rn}],[0,{[m]:nn}],[()=>hn,{[m]:Eo}],[()=>ud,{[m]:cd}],[2,{[m]:yo}],[0,{[m]:Vt}]]],jar=[3,f,YJt,0,[qh,$,$h,st,Gh,jh,Vh,Hh,Nje,Lje,Mje,Fje,Bje,na,Wh,Kh,Qh,Xh,Yh,KR,Qe,eS,crr,por,Ns,Hn,YR,Gr,li,jr,us,pu,ns,Uje,$Q,qje,It,sa,nS,sS,rS,X,t4e],[[0,{[m]:uS}],[0,1],[0,{[m]:UR}],[0,{[m]:vX}],[0,{[m]:qR}],[0,{[m]:$R}],[0,{[m]:GR}],[0,{[m]:HR}],[0,{[m]:tHe}],[0,{[m]:rHe}],[4,{[m]:nHe}],[0,{[m]:sHe}],[4,{[m]:oHe}],[4,{[m]:na}],[0,{[m]:dS}],[0,{[m]:pS}],[0,{[m]:mS}],[0,{[m]:gS}],[0,{[m]:em}],[0,{[m]:Zh}],[0,1],[128,{[cS]:fS}],[0,{[m]:Zir}],[0,{[m]:far}],[0,{[m]:So}],[0,{[m]:ov}],[0,{[m]:iv}],[0,{[m]:rn}],[()=>ca,{[m]:aa}],[0,{[m]:nn}],[()=>hn,{[m]:Eo}],[()=>ud,{[m]:cd}],[2,{[m]:yo}],[0,{[m]:iHe}],[()=>hHe,{[m]:aHe}],[0,{[m]:cHe}],[0,{[m]:At}],[0,{[m]:IX}],[0,{[m]:nv}],[5,{[m]:sv}],[0,{[m]:rv}],[0,{[m]:J}],[0,{[m]:gHe}]]],Var=[3,f,Dje,0,[tn,sc,fo,ss,os,is,as,cs],[0,4,0,0,0,0,0,0]],Har=[3,f,Oje,0,[tn,sc,ss,os,is,as,cs],[0,4,0,0,0,0,0]],zar=[3,f,NF,0,[BQ],[[()=>BHe,{[L]:UQ,[Ae]:1}]]],War=[3,f,UQ,0,[Jh,cJt,dJt,hJt,_7t,irr],[0,[64,{[L]:uJt,[Ae]:1}],[64,{[L]:fJt,[Ae]:1}],[64,{[L]:SJt,[Ae]:1}],[64,{[L]:C7t,[Ae]:1}],1]],Kar=[3,f,PQ,0,[IQ,BF,$,aS],[0,()=>Ylr,()=>Dar,[()=>gu,0]]],Qar=[3,f,NJt,0,[$,er,st,TQ,X],[[0,1],[0,{[m]:Zt}],[0,{[m]:Nt}],[()=>Zlr,{[L]:TQ,[at]:1}],[0,{[m]:J}]]],Xar=[3,f,MJt,0,[$,er,st,wQ,X],[[0,1],[0,{[m]:Zt}],[0,{[m]:Nt}],[()=>rdr,{[L]:wQ,[at]:1}],[0,{[m]:J}]]],Jar=[3,f,FJt,0,[BF,NQ],[[0,{[m]:BF}],[0,{[m]:YVe}]]],Yar=[3,f,BJt,0,[qh,$,PQ,Wh,Kh,Qh,QQ,Xh,Nrr,q4e],[[0,{[m]:uS}],[0,1],[()=>Kar,{[L]:PQ,[at]:1}],[0,{[m]:dS}],[0,{[m]:pS}],[0,{[m]:mS}],[0,{[m]:xX}],[0,{[m]:gS}],[2,{[m]:cir}],[0,{[m]:nar}]]],Zar=[3,f,HJt,{[L]:Fer},[yje,Rje,$,Qe,ad,Ns,Gr,jr,us,pu,ns,jt,st,fo],[[4,{[m]:XVe}],[0,{[m]:JVe}],[0,{[L]:$}],0,0,[0,{[m]:So}],[0,{[m]:rn}],[0,{[m]:nn}],[()=>hn,{[m]:Eo}],[()=>ud,{[m]:cd}],[2,{[m]:yo}],[0,{[m]:Vt}],[0,{[m]:vX}],[0,{[m]:lS}]]],ecr=[3,f,KJt,0,[qh,$,$h,Gh,jh,Vh,Hh,na,Wh,Kh,Qh,Xh,Qe,eS,Ns,Hn,YR,Gr,li,jr,us,pu,ns,It,sa,nS,sS,rS,X,st,fo],[[0,{[m]:uS}],[0,1],[0,{[m]:UR}],[0,{[m]:qR}],[0,{[m]:$R}],[0,{[m]:GR}],[0,{[m]:HR}],[4,{[m]:na}],[0,{[m]:dS}],[0,{[m]:pS}],[0,{[m]:mS}],[0,{[m]:gS}],[0,1],[128,{[cS]:fS}],[0,{[m]:So}],[0,{[m]:ov}],[0,{[m]:iv}],[0,{[m]:rn}],[()=>ca,{[m]:aa}],[0,{[m]:nn}],[()=>hn,{[m]:Eo}],[()=>ud,{[m]:cd}],[2,{[m]:yo}],[0,{[m]:At}],[0,{[m]:IX}],[0,{[m]:nv}],[5,{[m]:sv}],[0,{[m]:rv}],[0,{[m]:J}],[0,{[m]:vX}],[0,{[m]:lS}]]],tcr=[3,f,sYt,{[L]:oYt},[Ns,us,pu,ns,L2e],[[0,{[m]:So}],[()=>hn,{[m]:Eo}],[()=>ud,{[m]:cd}],[2,{[m]:yo}],[()=>kpr,{[L]:L2e}]]],rcr=[3,f,aYt,0,[Ksr,$,Ns,us,pu,ns],[[0,{[m]:dir}],[0,1],[0,{[m]:So}],[()=>hn,{[m]:Eo}],[()=>ud,{[m]:cd}],[2,{[m]:yo}]]],ncr=[3,f,cYt,0,[I7t,gYt,Z4e,lX,i4e,J4e,yJt],[0,0,0,0,0,0,2]],scr=[3,f,uYt,0,[csr,Z4e,lX,i4e,J4e],[0,0,0,0,0]],ocr=[3,f,Wje,0,[O4e,zh,Gor],[0,1,1]],icr=[3,f,bQ,0,[zrr,ssr],[[()=>ymr,{[L]:j4e,[Ae]:1}],2]],acr=[3,f,yYt,0,[$,$r,X],[[0,1],[0,{[se]:pi}],[0,{[m]:J}]]],ccr=[3,f,CYt,0,[$,X],[[0,1],[0,{[m]:J}]]],ucr=[3,f,vYt,0,[$,X],[[0,1],[0,{[m]:J}]]],lcr=[3,f,IYt,0,[$,$r,X],[[0,1],[0,{[se]:pi}],[0,{[m]:J}]]],dcr=[3,f,PYt,0,[$,$r,X],[[0,1],[0,{[se]:pi}],[0,{[m]:J}]]],pcr=[3,f,TYt,0,[$,X],[[0,1],[0,{[m]:J}]]],mcr=[3,f,DYt,0,[$,X],[[0,1],[0,{[m]:J}]]],gcr=[3,f,LYt,0,[$,X],[[0,1],[0,{[m]:J}]]],fcr=[3,f,OYt,0,[$,$r,X],[[0,1],[0,{[se]:pi}],[0,{[m]:J}]]],hcr=[3,f,FYt,0,[$,X],[[0,1],[0,{[m]:J}]]],Scr=[3,f,UYt,0,[$,X],[[0,1],[0,{[m]:J}]]],Ecr=[3,f,$Yt,0,[$,X],[[0,1],[0,{[m]:J}]]],ycr=[3,f,qYt,0,[$,X],[[0,1],[0,{[m]:J}]]],_cr=[3,f,VYt,0,[$,X],[[0,1],[0,{[m]:J}]]],Ccr=[3,f,zYt,0,[$,X],[[0,1],[0,{[m]:J}]]],Rcr=[3,f,e7t,0,[Qe,vt,Zp,ZYt],[0,0,2,0]],vcr=[3,f,YYt,0,[ia,Qe,vt,g4e,sc],[()=>mu,0,0,2,4]],xcr=[3,f,Hje,0,[Vn],[0]],Pcr=[3,f,t7t,0,[Zp,vt,jt],[[2,{[m]:iU}],[0,{[m]:oc}],[0,{[m]:Vt}]]],bcr=[3,f,n7t,0,[$,Qe,oX,vt,It,LQ,X,Yh,Ler,Mer],[[0,1],[0,1],[0,{[m]:PX}],[0,{[se]:Fs}],[0,{[m]:At}],[2,{[m]:RX}],[0,{[m]:J}],[0,{[m]:em}],[6,{[m]:Jir}],[1,{[m]:Yir}]]],Icr=[3,f,r7t,{[L]:g7t},[f7t,jt,s4e],[[()=>amr,{[Ae]:1}],[0,{[m]:Vt}],[()=>lmr,{[L]:WR,[Ae]:1}]]],Acr=[3,f,s7t,0,[$,bQ,oX,It,LQ,X,st],[[0,1],[()=>icr,{[L]:bQ,[at]:1}],[0,{[m]:PX}],[0,{[m]:At}],[2,{[m]:RX}],[0,{[m]:J}],[0,{[m]:Nt}]]],Tcr=[3,f,i7t,0,[vt],[[0,{[m]:oc}]]],wcr=[3,f,a7t,0,[$,Qe,vt,X],[[0,1],[0,1],[0,{[se]:Fs}],[0,{[m]:J}]]],Dcr=[3,f,p7t,0,[$,X],[[0,1],[0,{[m]:J}]]],Ocr=[3,f,zB,0,[$,sJt,Hn,Eje,zR,uVe,D4e],[0,0,0,()=>Rar,()=>Lcr,()=>hpr,()=>sdr]],kcr=[3,f,Kje,0,[uor,hX,IVe],[0,0,0]],Ncr=[3,f,zQ,0,[HQ,str,ntr],[0,[()=>hn,0],0]],Lcr=[3,f,zR,0,[psr],[0]],Mcr=[-3,f,x7t,{[Ms]:Ls,[ho]:400},[],[]];Gn.TypeRegistry.for(f).registerError(Mcr,oje);var Fcr=[3,f,y7t,0,[],[]],Bcr=[3,f,WR,0,[Qe,vt,mYt,grr],[0,0,0,0]],wX=[3,f,E7t,0,[Yje,Zje],[0,0]],yHe=[3,f,VQ,0,[Qe],[0]],Ucr=[3,f,Jje,0,[],[]],qcr=[3,f,e4e,0,[Vn],[0]],$cr=[3,f,a4e,0,[tm,yX],[0,0]],Gcr=[3,f,q7t,0,[OF],[[()=>SHe,16]]],jcr=[3,f,G7t,0,[$,X],[[0,1],[0,{[m]:J}]]],Vcr=[3,f,L7t,{[L]:DF},[Vn,jt],[0,[0,{[m]:Vt}]]],Hcr=[3,f,F7t,0,[$,X,It],[[0,1],[0,{[m]:J}],[0,{[m]:At}]]],zcr=[3,f,$7t,{[L]:Yp},[ia,WB],[()=>mu,[()=>cU,{[L]:VB}]]],Wcr=[3,f,j7t,0,[$,X],[[0,1],[0,{[m]:J}]]],Kcr=[3,f,M7t,0,[AR],[[()=>TX,16]]],Qcr=[3,f,B7t,0,[$,$r,X],[[0,1],[0,{[se]:pi}],[0,{[m]:J}]]],Xcr=[3,f,z7t,{[L]:NF},[BQ],[[()=>BHe,{[L]:UQ,[Ae]:1}]]],Jcr=[3,f,W7t,0,[$,X],[[0,1],[0,{[m]:J}]]],Ycr=[3,f,Q7t,0,[QF],[[()=>MHe,16]]],Zcr=[3,f,X7t,0,[$,X],[[0,1],[0,{[m]:J}]]],eur=[3,f,tZt,0,[wR],[[()=>DX,16]]],tur=[3,f,rZt,0,[$,$r,X],[[0,1],[0,{[se]:pi}],[0,{[m]:J}]]],rur=[3,f,Y7t,0,[TR],[[()=>OX,16]]],nur=[3,f,Z7t,0,[$,$r,X],[[0,1],[0,{[se]:pi}],[0,{[m]:J}]]],sur=[3,f,oZt,{[L]:AQ},[XR,EX],[[()=>UHe,{[L]:oS,[Ae]:1}],[0,{[m]:AX}]]],our=[3,f,iZt,0,[$,X],[[0,1],[0,{[m]:J}]]],iur=[3,f,aZt,{[L]:IQ},[IQ],[0]],aur=[3,f,uZt,0,[$,X],[[0,1],[0,{[m]:J}]]],cur=[3,f,cZt,{[L]:kF},[nX],[[()=>xHe,0]]],uur=[3,f,lZt,0,[$,X],[[0,1],[0,{[m]:J}]]],lur=[3,f,mZt,0,[u4e],[[()=>pur,16]]],dur=[3,f,fZt,0,[$,X],[[0,1],[0,{[m]:J}]]],pur=[3,f,u4e,0,[v4e],[()=>edr]],mur=[3,f,yZt,0,[l4e],[[()=>fur,16]]],gur=[3,f,_Zt,0,[$,X],[[0,1],[0,{[m]:J}]]],fur=[3,f,l4e,0,[I4e,Vn,WR],[()=>ndr,0,()=>wX]],hur=[3,f,gZt,0,[DR],[[()=>NX,16]]],Sur=[3,f,hZt,0,[$,$r,X],[[0,1],[0,{[se]:pi}],[0,{[m]:J}]]],Eur=[3,f,RZt,0,[$,X],[[0,1],[0,{[m]:J}]]],yur=[3,f,xZt,0,[qF],[[()=>wHe,16]]],_ur=[3,f,PZt,0,[$,X],[[0,1],[0,{[m]:J}]]],Cur=[3,f,IZt,0,[K4e],[[0,16]]],Rur=[3,f,AZt,0,[$,X],[[0,1],[0,{[m]:J}]]],vur=[3,f,wZt,0,[V4e],[[()=>Pdr,16]]],xur=[3,f,DZt,0,[$,X],[[0,1],[0,{[m]:J}]]],Pur=[3,f,kZt,0,[VF],[[()=>kHe,16]]],bur=[3,f,FZt,0,[$,X],[[0,1],[0,{[m]:J}]]],Iur=[3,f,LZt,{[L]:HF},[H4e],[0]],Aur=[3,f,MZt,0,[$,X],[[0,1],[0,{[m]:J}]]],Tur=[3,f,UZt,{[L]:sa},[rU],[[()=>gu,0]]],wur=[3,f,qZt,0,[$,X],[[0,1],[0,{[m]:J}]]],Dur=[3,f,GZt,{[L]:XF},[Vn,b4e],[0,[0,{[L]:x4e}]]],Our=[3,f,jZt,0,[$,X],[[0,1],[0,{[m]:J}]]],kur=[3,f,HZt,{[L]:JF},[uX,YQ,VQ,dX],[()=>OHe,()=>CHe,()=>yHe,[()=>$He,0]]],Nur=[3,f,zZt,0,[$,X],[[0,1],[0,{[m]:J}]]],Lur=[3,f,QZt,{[L]:Yp},[ia,WB,jt],[()=>mu,[()=>cU,{[L]:VB}],[0,{[m]:Vt}]]],Mur=[3,f,YZt,0,[$,Qe,vt,It,X],[[0,1],[0,1],[0,{[se]:Fs}],[0,{[m]:At}],[0,{[m]:J}]]],Fur=[3,f,XZt,{[L]:ZZt},[Zp,sc,vt,jt,tn,Aje,qrr,Hn,Grr],[[2,{[m]:iU}],[4,{[m]:sX}],[0,{[m]:oc}],[0,{[m]:Vt}],0,()=>Nar,[()=>Bur,0],0,1]],Bur=[3,f,JZt,0,[yor,JB,M4e,QB,nc,YB],[[1,{[L]:XB}],0,0,1,2,[()=>vmr,{[L]:ZB,[Ae]:1}]]],Uur=[3,f,eer,0,[$,Qe,vt,QB,JB,Gr,li,jr,It,X,brr],[[0,1],[0,1],[0,{[se]:Fs}],[1,{[m]:tar}],[0,{[m]:oar}],[0,{[m]:rn}],[()=>ca,{[m]:aa}],[0,{[m]:nn}],[0,{[m]:At}],[0,{[m]:J}],[64,{[m]:rar}]]],qur=[3,f,ier,0,[UF],[[()=>IHe,{[L]:UF,[at]:1}]]],$ur=[3,f,aer,0,[$,Qe,vt,It,X],[[0,1],[0,1],[0,{[se]:Fs}],[0,{[m]:At}],[0,{[m]:J}]]],Gur=[3,f,ner,0,[$F],[[()=>bHe,16]]],jur=[3,f,ser,0,[$,X],[[0,1],[0,{[m]:J}]]],Vur=[3,f,cer,0,[BR,Zp,kQ,rc,gX,sc,VR,tn,ss,os,is,as,cs,fo,iX,vt,$h,Gh,jh,Vh,qQ,Hh,na,LF,YR,Ns,eS,Gr,jr,us,ns,Hn,jt,pX,XB,SX,nS,sS,rS],[[()=>av,16],[2,{[m]:iU}],[0,{[m]:FVe}],[0,{[m]:tv}],[0,{[m]:pHe}],[4,{[m]:sX}],[1,{[m]:jR}],[0,{[m]:tn}],[0,{[m]:sm}],[0,{[m]:om}],[0,{[m]:im}],[0,{[m]:am}],[0,{[m]:cm}],[0,{[m]:lS}],[1,{[m]:lHe}],[0,{[m]:oc}],[0,{[m]:UR}],[0,{[m]:qR}],[0,{[m]:$R}],[0,{[m]:GR}],[0,{[m]:kje}],[0,{[m]:HR}],[4,{[m]:na}],[0,{[m]:LF}],[0,{[m]:iv}],[0,{[m]:So}],[128,{[cS]:fS}],[0,{[m]:rn}],[0,{[m]:nn}],[()=>hn,{[m]:Eo}],[2,{[m]:yo}],[0,{[m]:ov}],[0,{[m]:Vt}],[0,{[m]:mHe}],[1,{[m]:dHe}],[1,{[m]:fHe}],[0,{[m]:nv}],[5,{[m]:sv}],[0,{[m]:rv}]]],Hur=[3,f,uer,0,[$,Yh,f4e,KR,E4e,Qe,zF,eVe,tVe,rVe,nVe,sVe,oVe,vt,Gr,li,jr,It,rm,X,wje],[[0,1],[0,{[m]:em}],[4,{[m]:ZQ}],[0,{[m]:Zh}],[4,{[m]:tX}],[0,1],[0,{[m]:zF}],[0,{[se]:qVe}],[0,{[se]:$Ve}],[0,{[se]:GVe}],[0,{[se]:jVe}],[0,{[se]:VVe}],[6,{[se]:HVe}],[0,{[se]:Fs}],[0,{[m]:rn}],[()=>ca,{[m]:aa}],[0,{[m]:nn}],[0,{[m]:At}],[1,{[se]:oU}],[0,{[m]:J}],[0,{[m]:eHe}]]],zur=[3,f,ler,0,[WF],[[()=>AHe,{[L]:WF,[at]:1}]]],Wur=[3,f,der,0,[$,Qe,vt,It,X],[[0,1],[0,1],[0,{[se]:Fs}],[0,{[m]:At}],[0,{[m]:J}]]],Kur=[3,f,ger,{[L]:sa},[vt,rU],[[0,{[m]:oc}],[()=>gu,0]]],Qur=[3,f,her,0,[$,Qe,vt,X,It],[[0,1],[0,1],[0,{[se]:Fs}],[0,{[m]:J}],[0,{[m]:At}]]],Xur=[3,f,fer,0,[BR,jt],[[()=>av,16],[0,{[m]:Vt}]]],Jur=[3,f,Ser,0,[$,Qe,It,X],[[0,1],[0,1],[0,{[m]:At}],[0,{[m]:J}]]],Yur=[3,f,_er,0,[GF],[[()=>DHe,16]]],Zur=[3,f,Cer,0,[$,X],[[0,1],[0,{[m]:J}]]],elr=[3,f,d4e,0,[wVe],[0]],tlr=[3,f,XQ,0,[JQ,W4e],[[()=>_He,{[QVe]:[KVe,BVe]}],0]],_He=[3,f,JQ,0,[jQ,S7t,Jh,Lor,JR],[0,0,0,0,[0,{[L]:Sar,[nir]:1}]]],rlr=[3,f,ver,0,[NQ,TJt,AJt,MQ,EJt],[[0,{[m]:YVe}],[0,{[m]:air}],[0,{[m]:iir}],[0,{[m]:uir}],[2,{[m]:sir}]]],nlr=[3,f,xer,0,[$,X],[[0,1],[0,{[m]:J}]]],slr=[3,f,Ier,0,[Zp,kQ,rc,gX,RJt,sc,VR,ss,os,is,as,cs,fo,tn,iX,vt,$h,Gh,jh,Vh,Hh,qQ,na,LF,YR,Ns,eS,Gr,jr,us,ns,Hn,jt,pX,XB,SX,nS,sS,rS],[[2,{[m]:iU}],[0,{[m]:FVe}],[0,{[m]:tv}],[0,{[m]:pHe}],[0,{[m]:oir}],[4,{[m]:sX}],[1,{[m]:jR}],[0,{[m]:sm}],[0,{[m]:om}],[0,{[m]:im}],[0,{[m]:am}],[0,{[m]:cm}],[0,{[m]:lS}],[0,{[m]:tn}],[1,{[m]:lHe}],[0,{[m]:oc}],[0,{[m]:UR}],[0,{[m]:qR}],[0,{[m]:$R}],[0,{[m]:GR}],[0,{[m]:HR}],[0,{[m]:kje}],[4,{[m]:na}],[0,{[m]:LF}],[0,{[m]:iv}],[0,{[m]:So}],[128,{[cS]:fS}],[0,{[m]:rn}],[0,{[m]:nn}],[()=>hn,{[m]:Eo}],[2,{[m]:yo}],[0,{[m]:ov}],[0,{[m]:Vt}],[0,{[m]:mHe}],[1,{[m]:dHe}],[1,{[m]:fHe}],[0,{[m]:nv}],[5,{[m]:sv}],[0,{[m]:rv}]]],olr=[3,f,Aer,0,[$,Yh,f4e,KR,E4e,Qe,zF,eVe,tVe,rVe,nVe,sVe,oVe,vt,Gr,li,jr,It,rm,X,wje],[[0,1],[0,{[m]:em}],[4,{[m]:ZQ}],[0,{[m]:Zh}],[4,{[m]:tX}],[0,1],[0,{[m]:zF}],[0,{[se]:qVe}],[0,{[se]:$Ve}],[0,{[se]:GVe}],[0,{[se]:jVe}],[0,{[se]:VVe}],[6,{[se]:HVe}],[0,{[se]:Fs}],[0,{[m]:rn}],[()=>ca,{[m]:aa}],[0,{[m]:nn}],[0,{[m]:At}],[1,{[se]:oU}],[0,{[m]:J}],[0,{[m]:eHe}]]],ilr=[-3,f,$er,{[Ms]:Ls,[ho]:400},[],[]];Gn.TypeRegistry.for(f).registerError(ilr,mje);var CHe=[3,f,YQ,0,[ior],[0]],RHe=[3,f,rX,0,[Jh,jQ],[0,0]],vHe=[3,f,eX,0,[$je,pYt,y4e,rsr],[()=>ncr,0,()=>vlr,()=>Rdr]],alr=[3,f,zer,0,[qt,aS],[0,[()=>gu,{[L]:di,[Ae]:1}]]],DX=[3,f,wR,0,[$r,du,Vn,_or],[0,[()=>clr,0],0,[()=>Amr,{[L]:DVe,[Ae]:1}]]],clr=[3,f,Ker,0,[qt,di,FR],[0,()=>hS,[()=>alr,0]]],ulr=[-3,f,Uer,{[Ms]:Ls,[ho]:403},[Hn,vje],[0,0]];Gn.TypeRegistry.for(f).registerError(ulr,Z2e);var llr=[-3,f,Ger,{[Ms]:Ls,[ho]:400},[],[]];Gn.TypeRegistry.for(f).registerError(llr,aje);var dlr=[-3,f,Qer,{[Ms]:Ls,[ho]:400},[],[]];Gn.TypeRegistry.for(f).registerError(dlr,uje);var OX=[3,f,TR,0,[zB,Der,du,$r,qer,wrr,sor],[[()=>plr,0],2,()=>glr,0,0,[()=>gmr,0],()=>hlr]],plr=[3,f,wer,0,[pVe],[[()=>flr,0]]],mlr=[3,f,Oer,0,[CVe,_Ve],[[()=>Bpr,{[L]:EVe}],[()=>Mpr,{[L]:gVe}]]],glr=[3,f,ker,0,[qt],[0]],flr=[3,f,Ver,0,[lJt,$,c4e,qt,zQ],[0,0,0,0,[()=>mlr,0]]],hlr=[3,f,Her,0,[O7t],[0]],Slr=[3,f,MF,0,[GQ,zR],[0,()=>kX]],Elr=[3,f,S4e,0,[GQ,TVe,WR,tU,fX],[0,0,()=>wX,0,0]],ylr=[3,f,Wer,0,[GQ,zR],[0,()=>kX]],_lr=[3,f,FF,0,[eU,zR],[()=>MX,()=>kX]],Clr=[3,f,_4e,0,[TVe,WR,tU,fX,eU],[0,()=>wX,0,0,()=>MX]],Rlr=[3,f,Zer,0,[eU],[()=>MX]],vlr=[3,f,Jer,0,[JR],[0]],xlr=[3,f,Yer,0,[lX],[0]],Plr=[3,f,wtr,0,[$r,Ttr,WQ,du],[0,[0,{[L]:$Jt}],[64,{[L]:KQ,[Ae]:1}],[()=>LX,0]]],blr=[3,f,Atr,0,[Qje,zh,R7t],[5,1,2]],Ilr=[3,f,err,0,[rc,Jh,qt,du,Vn,vor,xrr,F4e,_je],[()=>blr,0,0,[()=>Tlr,0],0,[()=>wmr,{[L]:kVe,[Ae]:1}],[()=>Emr,{[L]:B4e,[Ae]:1}],()=>adr,()=>Ear]],Alr=[3,f,trr,0,[qt,aS,$4e,G4e],[0,[()=>gu,{[L]:di,[Ae]:1}],1,1]],Tlr=[3,f,rrr,0,[qt,di,$4e,G4e,FR],[0,()=>hS,1,1,[()=>Alr,0]]],wlr=[3,f,dtr,{[L]:ptr},[nc,ks,QR,Sje],[2,0,0,[()=>omr,{[L]:AR,[Ae]:1}]]],Dlr=[3,f,mtr,0,[$,ks,X],[[0,1],[0,{[se]:nm}],[0,{[m]:J}]]],Olr=[3,f,Etr,0,[nc,ks,QR,h4e],[2,0,0,[()=>pmr,{[L]:wR,[Ae]:1}]]],klr=[3,f,ytr,0,[$,ks,X],[[0,1],[0,{[se]:nm}],[0,{[m]:J}]]],Nlr=[3,f,ftr,{[L]:Ntr},[ks,m4e,nc,QR],[0,[()=>mmr,{[L]:TR,[Ae]:1}],2,0]],Llr=[3,f,htr,0,[$,ks,X],[[0,1],[0,{[se]:nm}],[0,{[m]:J}]]],Mlr=[3,f,Ctr,{[L]:Ltr},[nc,ks,QR,R4e],[2,0,0,[()=>hmr,{[L]:DR,[Ae]:1}]]],Flr=[3,f,Rtr,0,[$,ks,X],[[0,1],[0,{[se]:nm}],[0,{[m]:J}]]],Blr=[3,f,vtr,{[L]:atr},[FQ,ia,ks,qt],[[()=>FHe,0],()=>mu,0,0]],Ulr=[3,f,xtr,0,[arr,ks,qt,MQ],[[1,{[se]:Qor}],[0,{[se]:nm}],[0,{[se]:ZR}],[0,{[se]:jor}]]],qlr=[3,f,btr,{[L]:ctr},[FQ,ks],[[()=>FHe,0],0]],$lr=[3,f,Itr,0,[ks,urr],[[0,{[se]:nm}],[1,{[se]:Xor}]]],Glr=[3,f,Btr,{[L]:Utr},[$,KB,NVe,N4e,qt,od,Rrr,T4e,nc,xor,HB,id,jt],[0,0,0,0,0,0,0,1,2,[()=>Smr,{[L]:Mor,[Ae]:1}],[()=>aU,{[Ae]:1}],0,[0,{[m]:Vt}]]],jlr=[3,f,qtr,0,[$,od,id,KB,T4e,qt,NVe,X,It],[[0,1],[0,{[se]:nU}],[0,{[se]:sU}],[0,{[se]:UVe}],[1,{[se]:Yor}],[0,{[se]:ZR}],[0,{[se]:tir}],[0,{[m]:J}],[0,{[m]:At}]]],Vlr=[3,f,Gtr,{[L]:C4e},[nc,w4e,Err,Vje,tm,qt,od,tS,HB,id,jt],[2,0,0,[()=>qHe,{[Ae]:1}],0,0,0,1,[()=>aU,{[Ae]:1}],0,[0,{[m]:Vt}]]],Hlr=[3,f,jtr,0,[$,od,id,w4e,tS,qt,It,X,aX],[[0,1],[0,{[se]:nU}],[0,{[se]:sU}],[0,{[se]:Kor}],[1,{[se]:CX}],[0,{[se]:ZR}],[0,{[m]:At}],[0,{[m]:J}],[64,{[m]:bX}]]],zlr=[3,f,Htr,{[L]:C4e},[nc,Vje,tm,qt,od,tS,HB,id,etr,ks,QR,dVe,jt],[2,[()=>qHe,{[Ae]:1}],0,0,0,1,[()=>aU,{[Ae]:1}],0,1,0,0,0,[0,{[m]:Vt}]]],Wlr=[3,f,Wtr,0,[$,od,id,tS,qt,ks,A7t,dVe,It,X,aX],[[0,1],[0,{[se]:nU}],[0,{[se]:sU}],[1,{[se]:CX}],[0,{[se]:ZR}],[0,{[se]:nm}],[2,{[se]:Hor}],[0,{[se]:eir}],[0,{[m]:At}],[0,{[m]:J}],[64,{[m]:bX}]]],Klr=[3,f,ztr,{[L]:srr},[nc,KB,MVe,N4e,vrr,For,zje,tm,qt,od,tS,HB,id,jt],[2,0,0,0,0,[()=>_mr,{[L]:Bor,[Ae]:1}],[()=>cmr,{[L]:Zp,[Ae]:1}],0,0,0,1,[()=>aU,{[Ae]:1}],0,[0,{[m]:Vt}]]],Qlr=[3,f,Ktr,0,[$,od,id,KB,tS,qt,MVe,X,It,aX],[[0,1],[0,{[se]:nU}],[0,{[se]:sU}],[0,{[se]:UVe}],[1,{[se]:CX}],[0,{[se]:ZR}],[0,{[se]:rir}],[0,{[m]:J}],[0,{[m]:At}],[64,{[m]:bX}]]],Xlr=[3,f,Jtr,{[L]:Ytr},[yje,Rje,$,Qe,ad,JB,M4e,QB,nc,YB,rX,ia,Hn,jt,st,fo],[[4,{[m]:XVe}],[0,{[m]:JVe}],0,0,0,0,0,1,2,[()=>Rmr,{[L]:ZB,[Ae]:1}],()=>RHe,()=>mu,0,[0,{[m]:Vt}],0,0]],Jlr=[3,f,Ztr,0,[$,Qe,QB,JB,ad,It,X,Gr,li,jr],[[0,1],[0,1],[1,{[se]:Jor}],[0,{[se]:Zor}],[0,{[se]:ev}],[0,{[m]:At}],[0,{[m]:J}],[0,{[m]:rn}],[()=>ca,{[m]:aa}],[0,{[m]:nn}]]],Ylr=[3,f,ktr,0,[JR,tm],[0,0]],xHe=[3,f,nX,0,[cor,bVe,Eor,AVe],[0,[()=>Imr,0],0,[()=>Vpr,0]]],Zlr=[3,f,TQ,0,[FF,MF],[()=>_lr,()=>Slr]],edr=[3,f,v4e,0,[Kje,_4e,S4e],[()=>kcr,()=>Clr,()=>Elr]],tdr=[3,f,P4e,0,[tm,yX],[0,0]],rdr=[3,f,wQ,0,[RVe],[()=>Ppr]],ndr=[3,f,I4e,0,[vVe],[()=>bpr]],kX=[3,f,prr,0,[ksr,rtr],[0,0]],sdr=[3,f,D4e,0,[Vn,P7t],[0,()=>NHe]],odr=[3,f,orr,0,[qt,aS,Cje],[0,[()=>gu,{[L]:di,[Ae]:1}],0]],NX=[3,f,DR,0,[$r,du],[0,[()=>kmr,0]]],idr=[3,f,A4e,0,[ad,Qe,Xer,Hn,ia,rX,st,fo],[0,0,4,0,()=>mu,()=>RHe,0,0]],adr=[3,f,F4e,0,[k4e,L4e],[1,1]],cdr=[3,f,B4e,0,[k4e,Hn,L4e],[1,0,1]],udr=[-3,f,yrr,{[Ms]:Ls,[ho]:404},[],[]];Gn.TypeRegistry.for(f).registerError(udr,J2e);var ldr=[-3,f,_rr,{[Ms]:Ls,[ho]:404},[],[]];Gn.TypeRegistry.for(f).registerError(ldr,tje);var ddr=[-3,f,Crr,{[Ms]:Ls,[ho]:404},[],[]];Gn.TypeRegistry.for(f).registerError(ddr,j2e);var pdr=[-3,f,Srr,{[Ms]:Ls},[],[]];Gn.TypeRegistry.for(f).registerError(pdr,nje);var PHe=[3,f,DQ,0,[dor,asr,Otr,Jje],[[()=>Tmr,{[L]:PVe,[Ae]:1}],[()=>xmr,{[L]:Y4e,[Ae]:1}],[()=>fmr,{[L]:GJt,[Ae]:1}],()=>Ucr]],LX=[3,f,hrr,0,[Qe],[[()=>vpr,{[L]:zsr}]]],mdr=[3,f,j4e,0,[Qe,sc,tn,st,fo,iS,Hn,ia,mX],[0,4,0,[64,{[Ae]:1}],0,1,0,()=>mu,()=>LHe]],gdr=[-3,f,Irr,{[Ms]:Ls,[ho]:403},[],[]];Gn.TypeRegistry.for(f).registerError(gdr,fje);var fdr=[3,f,Drr,0,[Qe,vt,tn,Mtr,iS],[0,0,0,6,1]],bHe=[3,f,$F,0,[krr,oS],[0,()=>hdr]],IHe=[3,f,Lrr,0,[Vn],[0]],AHe=[3,f,Mrr,0,[O4e,wsr],[0,5]],hdr=[3,f,Frr,0,[Wje],[()=>ocr]],Sdr=[-3,f,Urr,{[Ms]:Ls,[ho]:403},[],[]];Gn.TypeRegistry.for(f).registerError(Sdr,H2e);var Edr=[3,f,$rr,0,[rm,iS,ss,os,is,as,cs],[1,1,0,0,0,0,0]],ydr=[3,f,Vrr,0,[tn,st,fo,iS,Hn,Qe,vt,g4e,sc,ia,mX],[0,[64,{[Ae]:1}],0,1,0,0,0,2,4,()=>mu,()=>LHe]],_dr=[3,f,U4e,0,[nor],[[()=>xpr,0]]],THe=[3,f,cX,0,[$je,y4e],[()=>scr,()=>xlr]],mu=[3,f,ia,0,[jQ,Jh],[0,0]],wHe=[3,f,qF,0,[XR],[[()=>Cmr,{[L]:oS,[Ae]:1}]]],Cdr=[3,f,Arr,0,[q4e],[0]],Rdr=[3,f,Nnr,0,[],[]],vdr=[3,f,ZB,0,[rm,sc,tn,iS,ss,os,is,as,cs],[1,4,0,1,0,0,0,0,0]],xdr=[3,f,jF,{[L]:jF},[Onr],[0]],Pdr=[3,f,V4e,0,[M2e],[[2,{[L]:M2e}]]],bdr=[3,f,Q4e,0,[Ije,Pje,bje],[1,1,1]],Idr=[3,f,knr,0,[Xje],[[()=>bdr,{[_X]:1}]]],DHe=[3,f,GF,0,[k2e,F2e,N2e,B2e],[[2,{[L]:k2e}],[2,{[L]:F2e}],[2,{[L]:N2e}],[2,{[L]:B2e}]]],Adr=[3,f,Yrr,0,[$,er,st,X,OF],[[0,1],[0,{[m]:Zt}],[0,{[m]:Nt}],[0,{[m]:J}],[()=>SHe,{[L]:OF,[at]:1}]]],Tdr=[3,f,Qrr,0,[$,DF,X,st],[[0,1],[()=>Car,{[L]:DF,[at]:1}],[0,{[m]:J}],[0,{[m]:Nt}]]],wdr=[3,f,Zrr,0,[qh,Yp,$,er,st,Wh,Kh,Qh,QQ,Xh,X],[[0,{[m]:uS}],[()=>EHe,{[L]:Yp,[at]:1}],[0,1],[0,{[m]:Zt}],[0,{[m]:Nt}],[0,{[m]:dS}],[0,{[m]:pS}],[0,{[m]:mS}],[0,{[m]:xX}],[0,{[m]:gS}],[0,{[m]:J}]]],Ddr=[3,f,Xrr,0,[$,$r,AR,X],[[0,1],[0,{[se]:pi}],[()=>TX,{[L]:AR,[at]:1}],[0,{[m]:J}]]],Odr=[3,f,rnr,0,[$,NF,er,st,X],[[0,1],[()=>zar,{[L]:NF,[at]:1}],[0,{[m]:Zt}],[0,{[m]:Nt}],[0,{[m]:J}]]],kdr=[3,f,snr,0,[$,er,st,QF,X],[[0,1],[0,{[m]:Zt}],[0,{[m]:Nt}],[()=>MHe,{[L]:QF,[at]:1}],[0,{[m]:J}]]],Ndr=[3,f,cnr,0,[$,$r,X,wR],[[0,1],[0,{[se]:pi}],[0,{[m]:J}],[()=>DX,{[L]:wR,[at]:1}]]],Ldr=[3,f,inr,0,[$,$r,TR,X],[[0,1],[0,{[se]:pi}],[()=>OX,{[L]:TR,[at]:1}],[0,{[m]:J}]]],Mdr=[3,f,dnr,0,[EX],[[0,{[m]:AX}]]],Fdr=[3,f,pnr,0,[$,st,AQ,X,EX],[[0,1],[0,{[m]:Nt}],[()=>Oar,{[L]:AQ,[at]:1}],[0,{[m]:J}],[0,{[m]:AX}]]],Bdr=[3,f,mnr,0,[$,kF,er,st,X],[[0,1],[()=>kar,{[L]:kF,[at]:1}],[0,{[m]:Zt}],[0,{[m]:Nt}],[0,{[m]:J}]]],Udr=[3,f,fnr,0,[$,$r,DR,X],[[0,1],[0,{[se]:pi}],[()=>NX,{[L]:DR,[at]:1}],[0,{[m]:J}]]],qdr=[3,f,Snr,0,[$,DQ,X,Usr],[[0,1],[()=>PHe,{[L]:DQ,[at]:1}],[0,{[m]:J}],[2,{[m]:gar}]]],$dr=[3,f,ynr,0,[$,er,X,qF,st],[[0,1],[0,{[m]:Zt}],[0,{[m]:J}],[()=>wHe,{[L]:qF,[at]:1}],[0,{[m]:Nt}]]],Gdr=[3,f,Cnr,0,[$,er,st,nYt,K4e,X],[[0,1],[0,{[m]:Zt}],[0,{[m]:Nt}],[2,{[m]:lir}],[0,16],[0,{[m]:J}]]],jdr=[3,f,Pnr,0,[$,er,st,VF,OVe,X],[[0,1],[0,{[m]:Zt}],[0,{[m]:Nt}],[()=>kHe,{[L]:VF,[at]:1}],[0,{[m]:ZVe}],[0,{[m]:J}]]],Vdr=[3,f,xnr,0,[$,er,st,HF,X],[[0,1],[0,{[m]:Zt}],[0,{[m]:Nt}],[()=>Spr,{[L]:HF,[at]:1}],[0,{[m]:J}]]],Hdr=[3,f,Inr,0,[$,er,st,sa,X],[[0,1],[0,{[m]:Zt}],[0,{[m]:Nt}],[()=>FX,{[L]:sa,[at]:1}],[0,{[m]:J}]]],zdr=[3,f,Tnr,0,[$,er,st,oX,XF,X],[[0,1],[0,{[m]:Zt}],[0,{[m]:Nt}],[0,{[m]:PX}],[()=>tmr,{[L]:XF,[at]:1}],[0,{[m]:J}]]],Wdr=[3,f,Dnr,0,[$,er,st,JF,X],[[0,1],[0,{[m]:Zt}],[0,{[m]:Nt}],[()=>rmr,{[L]:JF,[at]:1}],[0,{[m]:J}]]],Kdr=[3,f,Bnr,0,[jt],[[0,{[m]:Vt}]]],Qdr=[3,f,Unr,0,[qh,Yp,$,er,st,Wh,Kh,Qh,QQ,Xh,Qe,It,vt,X],[[0,{[m]:uS}],[()=>EHe,{[L]:Yp,[at]:1}],[0,1],[0,{[m]:Zt}],[0,{[m]:Nt}],[0,{[m]:dS}],[0,{[m]:pS}],[0,{[m]:mS}],[0,{[m]:xX}],[0,{[m]:gS}],[0,1],[0,{[m]:At}],[0,{[se]:Fs}],[0,{[m]:J}]]],Xdr=[3,f,Vnr,0,[jt],[[0,{[m]:Vt}]]],Jdr=[3,f,Hnr,0,[$,Qe,UF,It,vt,er,st,X],[[0,1],[0,1],[()=>IHe,{[L]:UF,[at]:1}],[0,{[m]:At}],[0,{[se]:Fs}],[0,{[m]:Zt}],[0,{[m]:Nt}],[0,{[m]:J}]]],Ydr=[3,f,$nr,0,[jt],[[0,{[m]:Vt}]]],Zdr=[3,f,Gnr,0,[$,$F,It,OVe,er,st,X],[[0,1],[()=>bHe,{[L]:$F,[at]:1}],[0,{[m]:At}],[0,{[m]:ZVe}],[0,{[m]:Zt}],[0,{[m]:Nt}],[0,{[m]:J}]]],epr=[3,f,znr,0,[rc,tn,ss,os,is,as,cs,fo,Ns,vt,Gr,jr,us,pu,ns,iS,jt],[[0,{[m]:tv}],[0,{[m]:tn}],[0,{[m]:sm}],[0,{[m]:om}],[0,{[m]:im}],[0,{[m]:am}],[0,{[m]:cm}],[0,{[m]:lS}],[0,{[m]:So}],[0,{[m]:oc}],[0,{[m]:rn}],[0,{[m]:nn}],[()=>hn,{[m]:Eo}],[()=>ud,{[m]:cd}],[2,{[m]:yo}],[1,{[m]:sar}],[0,{[m]:Vt}]]],tpr=[3,f,Wnr,0,[qh,BR,$,$h,Gh,jh,Vh,VR,er,Hh,st,ss,os,is,as,cs,na,Yh,KR,Wh,Kh,Qh,Xh,Qe,$or,eS,Ns,Hn,YR,Gr,li,jr,us,pu,ns,It,sa,nS,sS,rS,X],[[0,{[m]:uS}],[()=>av,16],[0,1],[0,{[m]:UR}],[0,{[m]:qR}],[0,{[m]:$R}],[0,{[m]:GR}],[1,{[m]:jR}],[0,{[m]:Zt}],[0,{[m]:HR}],[0,{[m]:Nt}],[0,{[m]:sm}],[0,{[m]:om}],[0,{[m]:im}],[0,{[m]:am}],[0,{[m]:cm}],[4,{[m]:na}],[0,{[m]:em}],[0,{[m]:Zh}],[0,{[m]:dS}],[0,{[m]:pS}],[0,{[m]:mS}],[0,{[m]:gS}],[0,1],[1,{[m]:har}],[128,{[cS]:fS}],[0,{[m]:So}],[0,{[m]:ov}],[0,{[m]:iv}],[0,{[m]:rn}],[()=>ca,{[m]:aa}],[0,{[m]:nn}],[()=>hn,{[m]:Eo}],[()=>ud,{[m]:cd}],[2,{[m]:yo}],[0,{[m]:At}],[0,{[m]:IX}],[0,{[m]:nv}],[5,{[m]:sv}],[0,{[m]:rv}],[0,{[m]:J}]]],rpr=[3,f,Knr,0,[jt],[[0,{[m]:Vt}]]],npr=[3,f,Qnr,0,[$,Qe,WF,It,vt,LQ,er,st,X],[[0,1],[0,1],[()=>AHe,{[L]:WF,[at]:1}],[0,{[m]:At}],[0,{[se]:Fs}],[2,{[m]:RX}],[0,{[m]:Zt}],[0,{[m]:Nt}],[0,{[m]:J}]]],spr=[3,f,Ynr,0,[vt],[[0,{[m]:oc}]]],opr=[3,f,Znr,0,[$,Qe,vt,er,st,sa,X,It],[[0,1],[0,1],[0,{[se]:Fs}],[0,{[m]:Zt}],[0,{[m]:Nt}],[()=>FX,{[L]:sa,[at]:1}],[0,{[m]:J}],[0,{[m]:At}]]],ipr=[3,f,tsr,0,[$,er,st,GF,X],[[0,1],[0,{[m]:Zt}],[0,{[m]:Nt}],[()=>DHe,{[L]:GF,[at]:1}],[0,{[m]:J}]]],apr=[3,f,Y4e,0,[$r,osr,WQ,du],[0,[0,{[L]:usr}],[64,{[L]:KQ,[Ae]:1}],[()=>LX,0]]],MX=[3,f,eU,0,[rc,zh],[0,1]],cpr=[3,f,dsr,0,[z4e],[[21,{[_X]:1}]]],upr=[3,f,lVe,0,[p4e,Ter,X4e,msr,gsr],[0,0,0,0,0]],OHe=[3,f,uX,0,[p4e,X4e],[0,0]],lpr=[3,f,hsr,0,[],[]],dpr=[3,f,ysr,0,[$,Qe,Isr,KYt,XYt,QYt,JYt,$sr,jsr,Gsr,Vsr,dYt],[[0,1],[0,1],[0,{[m]:car}],[0,{[m]:em}],[0,{[m]:Zh}],[4,{[m]:ZQ}],[4,{[m]:tX}],[0,{[m]:uar}],[0,{[m]:dar}],[6,{[m]:lar}],[6,{[m]:par}],[0,{[m]:mir,[Wor]:1}]]],ppr=[3,f,iVe,0,[Vn],[0]],kHe=[3,f,VF,0,[Osr,XR],[0,[()=>Pmr,{[L]:oS,[Ae]:1}]]],mpr=[3,f,xsr,0,[Jh,nsr,qt,du,Vn,yVe,e4e,zB,Hje],[0,1,0,[()=>fpr,0],0,()=>Lpr,()=>qcr,()=>Ocr,()=>xcr]],gpr=[3,f,Rsr,0,[qt,aS],[0,[()=>gu,{[L]:di,[Ae]:1}]]],fpr=[3,f,vsr,0,[qt,di,FR],[0,()=>hS,[()=>gpr,0]]],hpr=[3,f,uVe,0,[Vn,Cor],[0,()=>NHe]],NHe=[3,f,Asr,0,[frr],[1]],Spr=[3,f,HF,0,[H4e],[0]],Epr=[3,f,aVe,0,[b7t],[2]],ypr=[3,f,Ssr,0,[jt,Esr],[[0,{[m]:Vt}],[0,{[m]:iar}]]],_pr=[3,f,_sr,0,[$,Qe,vt,OQ,It,st,X],[[0,1],[0,1],[0,{[se]:Fs}],[()=>Cpr,{[at]:1,[L]:OQ}],[0,{[m]:At}],[0,{[m]:Nt}],[0,{[m]:J}]]],Cpr=[3,f,OQ,0,[zh,d4e,JR,wVe,h7t,hVe,U4e],[1,()=>elr,0,0,0,()=>wpr,[()=>_dr,0]]],LHe=[3,f,mX,0,[jer,lsr],[2,4]],Rpr=[3,f,cVe,0,[jje,lVe],[()=>qar,()=>upr]],vpr=[3,f,Hsr,0,[w7t],[[()=>dmr,{[L]:a4e,[Ae]:1}]]],xpr=[3,f,Wsr,0,[wJt,qt,zQ,DJt,VB,sa,LVe,Hn],[0,0,[()=>Ncr,0],0,[()=>cU,0],[()=>FX,0],[()=>Dmr,0],0]],Ppr=[3,f,RVe,0,[hX,tU],[0,0]],bpr=[3,f,vVe,0,[hX,tU,fX,IVe],[0,0,0,0]],Ipr=[3,f,SVe,0,[oor,n4e],[1,1]],Apr=[3,f,Jsr,0,[z4e],[[()=>Nmr,16]]],Tpr=[3,f,Ysr,0,[$,Qe,Gr,li,jr,o4e,r4e,aVe,eX,cX,SVe,X],[[0,1],[0,1],[0,{[m]:rn}],[()=>ca,{[m]:aa}],[0,{[m]:nn}],0,0,()=>Epr,()=>vHe,()=>THe,()=>Ipr,[0,{[m]:J}]]],wpr=[3,f,hVe,0,[eX,r4e,o4e,cX],[()=>vHe,0,0,()=>THe]],Dpr=[3,f,eor,0,[Zsr,otr],[0,[()=>hn,0]]],MHe=[3,f,QF,0,[XR],[[()=>bmr,{[L]:oS,[Ae]:1}]]],Opr=[3,f,tor,0,[CJt,ns,xje],[[()=>Dpr,0],2,[()=>Iar,0]]],kpr=[3,f,Fsr,0,[O2e,U2e,q2e,rc],[[0,{[L]:O2e}],[()=>$2e,{[L]:U2e}],[()=>$2e,{[L]:q2e}],[4,{[L]:rc}]]],Npr=[3,f,KF,{[L]:KF},[],[]],Lpr=[3,f,yVe,0,[fVe,iVe],[()=>Fpr,()=>ppr]],Mpr=[3,f,_Ve,{[L]:gVe},[ttr],[[()=>hn,0]]],Fpr=[3,f,fVe,0,[Vn],[0]],Bpr=[3,f,CVe,{[L]:EVe},[],[]],Upr=[3,f,xVe,0,[Ije,Pje,bje],[1,1,1]],qpr=[3,f,qsr,0,[Xje],[[()=>Upr,{[_X]:1}]]],$pr=[3,f,mVe,0,[WYt],[()=>Gpr]],Gpr=[3,f,Lsr,0,[jrr,zB],[0,()=>Par]],hS=[3,f,di,0,[Qe,yX],[0,0]],FX=[3,f,sa,0,[rU],[[()=>gu,0]]],jpr=[3,f,mor,0,[JQ,W4e],[[()=>_He,{[QVe]:[KVe,BVe]}],0]],Vpr=[3,f,AVe,0,[KF,jF],[[()=>Npr,{[L]:KF}],[()=>xdr,{[L]:jF}]]],Hpr=[3,f,DVe,0,[zh,vje],[1,0]],zpr=[-3,f,Sor,{[Ms]:Ls,[ho]:400},[],[]];Gn.TypeRegistry.for(f).registerError(zpr,dje);var Wpr=[3,f,PVe,0,[$r,aor,WQ,du],[0,[0,{[L]:Ror}],[64,{[L]:KQ,[Ae]:1}],[()=>LX,0]]],Kpr=[3,f,kVe,0,[Qje,zh,Hn],[5,1,0]],Qpr=[3,f,bor,0,[$,er,st,MF,X],[[0,1],[0,{[m]:Zt}],[0,{[m]:Nt}],[()=>ylr,{[L]:MF,[at]:1}],[0,{[m]:J}]]],Xpr=[3,f,Aor,0,[$,er,st,FF,X],[[0,1],[0,{[m]:Zt}],[0,{[m]:Nt}],[()=>Rlr,{[L]:FF,[at]:1}],[0,{[m]:J}]]],Jpr=[3,f,Dor,0,[Gje,Oje,Ns,Gr,jr,us,ns,jt],[[0,{[m]:uHe}],[()=>Har,16],[0,{[m]:So}],[0,{[m]:rn}],[0,{[m]:nn}],[()=>hn,{[m]:Eo}],[2,{[m]:yo}],[0,{[m]:Vt}]]],Ypr=[3,f,Oor,0,[$,Nje,Lje,Mje,Fje,Bje,iYt,Qe,rm,ad,Gr,li,jr,Uje,$Q,qje,It,X,t4e],[[0,1],[0,{[m]:tHe}],[0,{[m]:rHe}],[4,{[m]:nHe}],[0,{[m]:sHe}],[4,{[m]:oHe}],[0,{[m]:pir}],[0,1],[1,{[se]:oU}],[0,{[se]:ev}],[0,{[m]:rn}],[()=>ca,{[m]:aa}],[0,{[m]:nn}],[0,{[m]:iHe}],[()=>hHe,{[m]:aHe}],[0,{[m]:cHe}],[0,{[m]:At}],[0,{[m]:J}],[0,{[m]:gHe}]]],Zpr=[3,f,kor,0,[Ns,tn,ss,os,is,as,cs,Gr,jr,us,ns,jt],[[0,{[m]:So}],[0,{[m]:tn}],[0,{[m]:sm}],[0,{[m]:om}],[0,{[m]:im}],[0,{[m]:am}],[0,{[m]:cm}],[0,{[m]:rn}],[0,{[m]:nn}],[()=>hn,{[m]:Eo}],[2,{[m]:yo}],[0,{[m]:Vt}]]],emr=[3,f,Nor,0,[BR,$,VR,er,st,ss,os,is,as,cs,Qe,rm,ad,Gr,li,jr,It,X],[[()=>av,16],[0,1],[1,{[m]:jR}],[0,{[m]:Zt}],[0,{[m]:Nt}],[0,{[m]:sm}],[0,{[m]:om}],[0,{[m]:im}],[0,{[m]:am}],[0,{[m]:cm}],[0,1],[1,{[se]:oU}],[0,{[se]:ev}],[0,{[m]:rn}],[()=>ca,{[m]:aa}],[0,{[m]:nn}],[0,{[m]:At}],[0,{[m]:J}]]],tmr=[3,f,XF,0,[b4e,Vn],[[0,{[L]:x4e}],0]],rmr=[3,f,JF,0,[VQ,YQ,uX,dX],[()=>yHe,()=>CHe,()=>OHe,[()=>$He,0]]],nmr=[3,f,qor,0,[bsr,Tsr,BR,Bsr,Yje,Zje,kQ,$h,Gh,jh,Vh,VR,qQ,Hh,ss,os,is,as,cs,Zp,tn,na,rc,sc,iX,eS,nS,rS,sS,XB,pX,jt,gX,Ns,Gr,us,jr,Hn,SX,vt,ns],[[0,{[zor]:1,[m]:aar}],[0,{[m]:mar}],[()=>av,16],[1,{[m]:Qir}],[0,{[m]:gir}],[0,{[m]:fir}],[0,{[m]:Pir}],[0,{[m]:hir}],[0,{[m]:Sir}],[0,{[m]:Eir}],[0,{[m]:yir}],[1,{[m]:jR}],[0,{[m]:_ir}],[0,{[m]:Cir}],[0,{[m]:bir}],[0,{[m]:Iir}],[0,{[m]:Air}],[0,{[m]:Tir}],[0,{[m]:wir}],[2,{[m]:Dir}],[0,{[m]:Rir}],[4,{[m]:vir}],[0,{[m]:Oir}],[4,{[m]:xir}],[1,{[m]:kir}],[128,{[cS]:fS}],[0,{[m]:Mir}],[0,{[m]:Lir}],[5,{[m]:Fir}],[1,{[m]:Nir}],[0,{[m]:qir}],[0,{[m]:Uir}],[0,{[m]:Bir}],[0,{[m]:Gir}],[0,{[m]:Hir}],[()=>hn,{[m]:jir}],[0,{[m]:zir}],[0,{[m]:$ir}],[1,{[m]:Wir}],[0,{[m]:Kir}],[2,{[m]:Vir}]]],ze="unit",smr=[-3,WVe,"S3ServiceException",0,[],[]];Gn.TypeRegistry.for(WVe).registerError(smr,jn);var omr=[1,f,Sje,0,[()=>TX,0]],FHe=[1,f,FQ,0,[()=>Aar,{[L]:$}]],aU=[1,f,eYt,0,()=>Lar],imr=[1,f,tYt,0,()=>Far],BHe=[1,f,BQ,0,[()=>War,0]],amr=[1,f,c7t,0,()=>Rcr],cmr=[1,f,zje,0,()=>vcr],umr=[1,f,v7t,0,[0,{[L]:HQ}]],lmr=[1,f,s4e,0,()=>Bcr],dmr=[1,f,T7t,0,()=>$cr],cU=[1,f,WB,0,[()=>tlr,{[L]:XQ}]],pmr=[1,f,h4e,0,[()=>DX,0]],mmr=[1,f,m4e,0,[()=>OX,0]],gmr=[1,f,Ber,0,[0,{[L]:D7t}]],fmr=[1,f,Dtr,0,[()=>Plr,0]],UHe=[1,f,nrr,0,[()=>Ilr,0]],hmr=[1,f,R4e,0,[()=>NX,0]],Smr=[1,f,mrr,0,()=>idr],Emr=[1,f,Prr,0,()=>cdr],ymr=[1,f,Orr,0,()=>fdr],qHe=[1,f,Brr,0,[()=>mdr,0]],_mr=[1,f,Hrr,0,[()=>ydr,0]],Cmr=[1,f,Trr,0,()=>Cdr],Rmr=[1,f,YB,0,()=>vdr],vmr=[1,f,Lnr,0,()=>Edr],xmr=[1,f,isr,0,[()=>apr,0]],Pmr=[1,f,Psr,0,[()=>mpr,0]],$He=[1,f,dX,0,[()=>Rpr,{[L]:cVe}]],bmr=[1,f,ror,0,[()=>Opr,0]],gu=[1,f,rU,0,[()=>hS,{[L]:di}]],Imr=[1,f,bVe,0,[()=>jpr,{[L]:XQ}]],Amr=[1,f,gor,0,()=>Hpr],Tmr=[1,f,lor,0,[()=>Wpr,0]],wmr=[1,f,hor,0,()=>Kpr],Dmr=[1,f,LVe,0,[()=>tdr,{[L]:P4e}]],Omr=[3,f,aJt,0,[qt,di,FR],[0,()=>hS,[()=>xar,0]]],kmr=[3,f,lrr,0,[qt,di,Cje,FR],[0,()=>hS,0,[()=>odr,0]]],Nmr=[3,f,Xsr,{[zVe]:1},[Dsr,xVe,Q4e,fYt,n4e],[[()=>cpr,0],[()=>qpr,0],[()=>Idr,0],()=>$ar,()=>Fcr]],Lmr=[9,f,pJt,{[Q]:["DELETE","/{Key+}?x-id=AbortMultipartUpload",204]},()=>_ar,()=>yar],Mmr=[9,f,Tje,{[Q]:["POST","/{Key+}",200]},()=>Uar,()=>Bar],Fmr=[9,f,XJt,{[Q]:["PUT","/{Key+}?x-id=CopyObject",200]},()=>jar,()=>Gar],Bmr=[9,f,OJt,{[Q]:["PUT","/",200]},()=>Yar,()=>Jar],Umr=[9,f,kJt,{[Q]:["POST","/?metadataConfiguration",200]},()=>Qar,()=>ze],qmr=[9,f,LJt,{[Q]:["POST","/?metadataTable",200]},()=>Xar,()=>ze],$mr=[9,f,QJt,{[Q]:["POST","/{Key+}?uploads",200]},()=>ecr,()=>Zar],Gmr=[9,f,lYt,{[Q]:["GET","/?session",200]},()=>rcr,()=>tcr],jmr=[9,f,SYt,{[Q]:["DELETE","/",204]},()=>ycr,()=>ze],Vmr=[9,f,EYt,{[Q]:["DELETE","/?analytics",204]},()=>acr,()=>ze],Hmr=[9,f,_Yt,{[Q]:["DELETE","/?cors",204]},()=>ccr,()=>ze],zmr=[9,f,RYt,{[Q]:["DELETE","/?encryption",204]},()=>ucr,()=>ze],Wmr=[9,f,bYt,{[Q]:["DELETE","/?intelligent-tiering",204]},()=>lcr,()=>ze],Kmr=[9,f,xYt,{[Q]:["DELETE","/?inventory",204]},()=>dcr,()=>ze],Qmr=[9,f,AYt,{[Q]:["DELETE","/?lifecycle",204]},()=>pcr,()=>ze],Xmr=[9,f,wYt,{[Q]:["DELETE","/?metadataConfiguration",204]},()=>mcr,()=>ze],Jmr=[9,f,NYt,{[Q]:["DELETE","/?metadataTable",204]},()=>gcr,()=>ze],Ymr=[9,f,kYt,{[Q]:["DELETE","/?metrics",204]},()=>fcr,()=>ze],Zmr=[9,f,MYt,{[Q]:["DELETE","/?ownershipControls",204]},()=>hcr,()=>ze],egr=[9,f,BYt,{[Q]:["DELETE","/?policy",204]},()=>Scr,()=>ze],tgr=[9,f,GYt,{[Q]:["DELETE","/?replication",204]},()=>Ecr,()=>ze],rgr=[9,f,jYt,{[Q]:["DELETE","/?tagging",204]},()=>_cr,()=>ze],ngr=[9,f,HYt,{[Q]:["DELETE","/?website",204]},()=>Ccr,()=>ze],sgr=[9,f,u7t,{[Q]:["DELETE","/{Key+}?x-id=DeleteObject",204]},()=>bcr,()=>Pcr],ogr=[9,f,l7t,{[Q]:["POST","/?delete",200]},()=>Acr,()=>Icr],igr=[9,f,o7t,{[Q]:["DELETE","/{Key+}?tagging",204]},()=>wcr,()=>Tcr],agr=[9,f,d7t,{[Q]:["DELETE","/?publicAccessBlock",204]},()=>Dcr,()=>ze],cgr=[9,f,k7t,{[Q]:["GET","/?abac",200]},()=>jcr,()=>Gcr],ugr=[9,f,N7t,{[Q]:["GET","/?accelerate",200]},()=>Hcr,()=>Vcr],lgr=[9,f,V7t,{[Q]:["GET","/?acl",200]},()=>Wcr,()=>zcr],dgr=[9,f,U7t,{[Q]:["GET","/?analytics&x-id=GetBucketAnalyticsConfiguration",200]},()=>Qcr,()=>Kcr],pgr=[9,f,H7t,{[Q]:["GET","/?cors",200]},()=>Jcr,()=>Xcr],mgr=[9,f,K7t,{[Q]:["GET","/?encryption",200]},()=>Zcr,()=>Ycr],ggr=[9,f,eZt,{[Q]:["GET","/?intelligent-tiering&x-id=GetBucketIntelligentTieringConfiguration",200]},()=>tur,()=>eur],fgr=[9,f,J7t,{[Q]:["GET","/?inventory&x-id=GetBucketInventoryConfiguration",200]},()=>nur,()=>rur],hgr=[9,f,sZt,{[Q]:["GET","/?lifecycle",200]},()=>our,()=>sur],Sgr=[9,f,nZt,{[Q]:["GET","/?location",200]},()=>aur,()=>iur],Egr=[9,f,dZt,{[Q]:["GET","/?logging",200]},()=>uur,()=>cur],ygr=[9,f,pZt,{[Q]:["GET","/?metadataConfiguration",200]},()=>dur,()=>lur],_gr=[9,f,EZt,{[Q]:["GET","/?metadataTable",200]},()=>gur,()=>mur],Cgr=[9,f,SZt,{[Q]:["GET","/?metrics&x-id=GetBucketMetricsConfiguration",200]},()=>Sur,()=>hur],Rgr=[9,f,CZt,{[Q]:["GET","/?notification",200]},()=>Eur,()=>PHe],vgr=[9,f,vZt,{[Q]:["GET","/?ownershipControls",200]},()=>_ur,()=>yur],xgr=[9,f,bZt,{[Q]:["GET","/?policy",200]},()=>Rur,()=>Cur],Pgr=[9,f,TZt,{[Q]:["GET","/?policyStatus",200]},()=>xur,()=>vur],bgr=[9,f,OZt,{[Q]:["GET","/?replication",200]},()=>bur,()=>Pur],Igr=[9,f,NZt,{[Q]:["GET","/?requestPayment",200]},()=>Aur,()=>Iur],Agr=[9,f,BZt,{[Q]:["GET","/?tagging",200]},()=>wur,()=>Tur],Tgr=[9,f,$Zt,{[Q]:["GET","/?versioning",200]},()=>Our,()=>Dur],wgr=[9,f,VZt,{[Q]:["GET","/?website",200]},()=>Nur,()=>kur],Dgr=[9,f,WZt,{[Q]:["GET","/{Key+}?x-id=GetObject",200]},()=>Hur,()=>Vur],Ogr=[9,f,KZt,{[Q]:["GET","/{Key+}?acl",200]},()=>Mur,()=>Lur],kgr=[9,f,ter,{[Q]:["GET","/{Key+}?attributes",200]},()=>Uur,()=>Fur],Ngr=[9,f,oer,{[Q]:["GET","/{Key+}?legal-hold",200]},()=>$ur,()=>qur],Lgr=[9,f,rer,{[Q]:["GET","/?object-lock",200]},()=>jur,()=>Gur],Mgr=[9,f,per,{[Q]:["GET","/{Key+}?retention",200]},()=>Wur,()=>zur],Fgr=[9,f,mer,{[Q]:["GET","/{Key+}?tagging",200]},()=>Qur,()=>Kur],Bgr=[9,f,Eer,{[Q]:["GET","/{Key+}?torrent",200]},()=>Jur,()=>Xur],Ugr=[9,f,yer,{[Q]:["GET","/?publicAccessBlock",200]},()=>Zur,()=>Yur],qgr=[9,f,Rer,{[Q]:["HEAD","/",200]},()=>nlr,()=>rlr],$gr=[9,f,ber,{[Q]:["HEAD","/{Key+}",200]},()=>olr,()=>slr],Ggr=[9,f,ltr,{[Q]:["GET","/?analytics&x-id=ListBucketAnalyticsConfigurations",200]},()=>Dlr,()=>wlr],jgr=[9,f,Str,{[Q]:["GET","/?intelligent-tiering&x-id=ListBucketIntelligentTieringConfigurations",200]},()=>klr,()=>Olr],Vgr=[9,f,gtr,{[Q]:["GET","/?inventory&x-id=ListBucketInventoryConfigurations",200]},()=>Llr,()=>Nlr],Hgr=[9,f,_tr,{[Q]:["GET","/?metrics&x-id=ListBucketMetricsConfigurations",200]},()=>Flr,()=>Mlr],zgr=[9,f,utr,{[Q]:["GET","/?x-id=ListBuckets",200]},()=>Ulr,()=>Blr],Wgr=[9,f,Ptr,{[Q]:["GET","/?x-id=ListDirectoryBuckets",200]},()=>$lr,()=>qlr],Kgr=[9,f,Ftr,{[Q]:["GET","/?uploads",200]},()=>jlr,()=>Glr],Qgr=[9,f,$tr,{[Q]:["GET","/",200]},()=>Hlr,()=>Vlr],Xgr=[9,f,Vtr,{[Q]:["GET","/?list-type=2",200]},()=>Wlr,()=>zlr],Jgr=[9,f,Qtr,{[Q]:["GET","/?versions",200]},()=>Qlr,()=>Klr],Ygr=[9,f,Xtr,{[Q]:["GET","/{Key+}?x-id=ListParts",200]},()=>Jlr,()=>Xlr],Zgr=[9,f,Wrr,{[Q]:["PUT","/?abac",200]},()=>Adr,()=>ze],efr=[9,f,Krr,{[Q]:["PUT","/?accelerate",200]},()=>Tdr,()=>ze],tfr=[9,f,enr,{[Q]:["PUT","/?acl",200]},()=>wdr,()=>ze],rfr=[9,f,Jrr,{[Q]:["PUT","/?analytics",200]},()=>Ddr,()=>ze],nfr=[9,f,tnr,{[Q]:["PUT","/?cors",200]},()=>Odr,()=>ze],sfr=[9,f,nnr,{[Q]:["PUT","/?encryption",200]},()=>kdr,()=>ze],ofr=[9,f,anr,{[Q]:["PUT","/?intelligent-tiering",200]},()=>Ndr,()=>ze],ifr=[9,f,onr,{[Q]:["PUT","/?inventory",200]},()=>Ldr,()=>ze],afr=[9,f,lnr,{[Q]:["PUT","/?lifecycle",200]},()=>Fdr,()=>Mdr],cfr=[9,f,unr,{[Q]:["PUT","/?logging",200]},()=>Bdr,()=>ze],ufr=[9,f,gnr,{[Q]:["PUT","/?metrics",200]},()=>Udr,()=>ze],lfr=[9,f,hnr,{[Q]:["PUT","/?notification",200]},()=>qdr,()=>ze],dfr=[9,f,Enr,{[Q]:["PUT","/?ownershipControls",200]},()=>$dr,()=>ze],pfr=[9,f,_nr,{[Q]:["PUT","/?policy",200]},()=>Gdr,()=>ze],mfr=[9,f,Rnr,{[Q]:["PUT","/?replication",200]},()=>jdr,()=>ze],gfr=[9,f,vnr,{[Q]:["PUT","/?requestPayment",200]},()=>Vdr,()=>ze],ffr=[9,f,bnr,{[Q]:["PUT","/?tagging",200]},()=>Hdr,()=>ze],hfr=[9,f,Anr,{[Q]:["PUT","/?versioning",200]},()=>zdr,()=>ze],Sfr=[9,f,wnr,{[Q]:["PUT","/?website",200]},()=>Wdr,()=>ze],Efr=[9,f,Mnr,{[Q]:["PUT","/{Key+}?x-id=PutObject",200]},()=>tpr,()=>epr],yfr=[9,f,Fnr,{[Q]:["PUT","/{Key+}?acl",200]},()=>Qdr,()=>Kdr],_fr=[9,f,jnr,{[Q]:["PUT","/{Key+}?legal-hold",200]},()=>Jdr,()=>Xdr],Cfr=[9,f,qnr,{[Q]:["PUT","/?object-lock",200]},()=>Zdr,()=>Ydr],Rfr=[9,f,Xnr,{[Q]:["PUT","/{Key+}?retention",200]},()=>npr,()=>rpr],vfr=[9,f,Jnr,{[Q]:["PUT","/{Key+}?tagging",200]},()=>opr,()=>spr],xfr=[9,f,esr,{[Q]:["PUT","/?publicAccessBlock",200]},()=>ipr,()=>ze],Pfr=[9,f,fsr,{[Q]:["PUT","/{Key+}?renameObject",200]},()=>dpr,()=>lpr],bfr=[9,f,Csr,{[Q]:["POST","/{Key+}?restore",200]},()=>_pr,()=>ypr],Ifr=[9,f,Qsr,{[Q]:["POST","/{Key+}?select&select-type=2",200]},()=>Tpr,()=>Apr],Afr=[9,f,Por,{[Q]:["PUT","/?metadataInventoryTable",200]},()=>Qpr,()=>ze],Tfr=[9,f,Ior,{[Q]:["PUT","/?metadataJournalTable",200]},()=>Xpr,()=>ze],wfr=[9,f,Tor,{[Q]:["PUT","/{Key+}?x-id=UploadPart",200]},()=>emr,()=>Zpr],Dfr=[9,f,wor,{[Q]:["PUT","/{Key+}?x-id=UploadPartCopy",200]},()=>Ypr,()=>Jpr],Ofr=[9,f,Uor,{[Vor]:["{RequestRoute}."],[Q]:["POST","/WriteGetObjectResponse",200]},()=>nmr,()=>ze],OR=class extends j.Command.classBuilder().ep({...K,DisableS3ExpressSessionAuth:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","CreateSession",{}).n("S3Client","CreateSessionCommand").sc(Gmr).build(){},kfr=t=>{let e=t.httpAuthSchemes,r=t.httpAuthSchemeProvider,n=t.credentials;return{setHttpAuthScheme(s){let o=e.findIndex(i=>i.schemeId===s.schemeId);o===-1?e.push(s):e.splice(o,1,s)},httpAuthSchemes(){return e},setHttpAuthSchemeProvider(s){r=s},httpAuthSchemeProvider(){return r},setCredentials(s){n=s},credentials(){return n}}},Nfr=t=>({httpAuthSchemes:t.httpAuthSchemes(),httpAuthSchemeProvider:t.httpAuthSchemeProvider(),credentials:t.credentials()}),Lfr=(t,e)=>{let r=Object.assign(w2e.getAwsRegionExtensionConfiguration(t),j.getDefaultExtensionConfiguration(t),D2e.getHttpHandlerExtensionConfiguration(t),kfr(t));return e.forEach(n=>n.configure(r)),Object.assign(t,w2e.resolveAwsRegionExtensionConfiguration(r),j.resolveDefaultRuntimeConfig(r),D2e.resolveHttpHandlerRuntimeConfig(r),Nfr(r))},sd=class extends j.Client{config;constructor(...[e]){let r=tJt.getRuntimeConfig(e||{});super(r),this.initConfig=r;let n=nJt(r),s=I2e.resolveUserAgentConfig(n),o=Rt.resolveFlexibleChecksumsConfig(s),i=A2e.resolveRetryConfig(o),a=YXt.resolveRegionConfig(i),c=b2e.resolveHostHeaderConfig(a),u=z.resolveEndpointConfig(c),l=ZXt.resolveEventStreamSerdeConfig(u),d=T2e.resolveHttpAuthSchemeConfig(l),p=le.resolveS3Config(d,{session:[()=>this,OR]}),g=Lfr(p,e?.extensions||[]);this.config=g,this.middlewareStack.use(Gn.getSchemaSerdePlugin(this.config)),this.middlewareStack.use(I2e.getUserAgentPlugin(this.config)),this.middlewareStack.use(A2e.getRetryPlugin(this.config)),this.middlewareStack.use(eJt.getContentLengthPlugin(this.config)),this.middlewareStack.use(b2e.getHostHeaderPlugin(this.config)),this.middlewareStack.use(XXt.getLoggerPlugin(this.config)),this.middlewareStack.use(JXt.getRecursionDetectionPlugin(this.config)),this.middlewareStack.use(Jp.getHttpAuthSchemeEndpointRuleSetPlugin(this.config,{httpAuthSchemeParametersProvider:T2e.defaultS3HttpAuthSchemeParametersProvider,identityProviderConfigProvider:async y=>new Jp.DefaultIdentityProviderConfig({"aws.auth#sigv4":y.credentials,"aws.auth#sigv4a":y.credentials})})),this.middlewareStack.use(Jp.getHttpSigningPlugin(this.config)),this.middlewareStack.use(le.getValidateBucketNamePlugin(this.config)),this.middlewareStack.use(QXt.getAddExpectContinuePlugin(this.config)),this.middlewareStack.use(le.getRegionRedirectMiddlewarePlugin(this.config)),this.middlewareStack.use(le.getS3ExpressPlugin(this.config)),this.middlewareStack.use(le.getS3ExpressHttpSigningPlugin(this.config))}destroy(){super.destroy()}},YF=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"},Key:{type:"contextParams",name:"Key"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","AbortMultipartUpload",{}).n("S3Client","AbortMultipartUploadCommand").sc(Lmr).build(){},ZF=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"},Key:{type:"contextParams",name:"Key"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n),oa.getSsecPlugin(n)]}).s("AmazonS3","CompleteMultipartUpload",{}).n("S3Client","CompleteMultipartUploadCommand").sc(Mmr).build(){},e3=class extends j.Command.classBuilder().ep({...K,DisableS3ExpressSessionAuth:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"},Key:{type:"contextParams",name:"Key"},CopySource:{type:"contextParams",name:"CopySource"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n),oa.getSsecPlugin(n)]}).s("AmazonS3","CopyObject",{}).n("S3Client","CopyObjectCommand").sc(Fmr).build(){},t3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},DisableAccessPoints:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n),rJt.getLocationConstraintPlugin(n)]}).s("AmazonS3","CreateBucket",{}).n("S3Client","CreateBucketCommand").sc(Bmr).build(){},r3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),Rt.getFlexibleChecksumsPlugin(n,{requestAlgorithmMember:{httpHeader:"x-amz-sdk-checksum-algorithm",name:"ChecksumAlgorithm"},requestChecksumRequired:!0})]}).s("AmazonS3","CreateBucketMetadataConfiguration",{}).n("S3Client","CreateBucketMetadataConfigurationCommand").sc(Umr).build(){},n3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),Rt.getFlexibleChecksumsPlugin(n,{requestAlgorithmMember:{httpHeader:"x-amz-sdk-checksum-algorithm",name:"ChecksumAlgorithm"},requestChecksumRequired:!0})]}).s("AmazonS3","CreateBucketMetadataTableConfiguration",{}).n("S3Client","CreateBucketMetadataTableConfigurationCommand").sc(qmr).build(){},s3=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"},Key:{type:"contextParams",name:"Key"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n),oa.getSsecPlugin(n)]}).s("AmazonS3","CreateMultipartUpload",{}).n("S3Client","CreateMultipartUploadCommand").sc($mr).build(){},o3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AmazonS3","DeleteBucketAnalyticsConfiguration",{}).n("S3Client","DeleteBucketAnalyticsConfigurationCommand").sc(Vmr).build(){},i3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AmazonS3","DeleteBucket",{}).n("S3Client","DeleteBucketCommand").sc(jmr).build(){},a3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AmazonS3","DeleteBucketCors",{}).n("S3Client","DeleteBucketCorsCommand").sc(Hmr).build(){},c3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AmazonS3","DeleteBucketEncryption",{}).n("S3Client","DeleteBucketEncryptionCommand").sc(zmr).build(){},u3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AmazonS3","DeleteBucketIntelligentTieringConfiguration",{}).n("S3Client","DeleteBucketIntelligentTieringConfigurationCommand").sc(Wmr).build(){},l3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AmazonS3","DeleteBucketInventoryConfiguration",{}).n("S3Client","DeleteBucketInventoryConfigurationCommand").sc(Kmr).build(){},d3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AmazonS3","DeleteBucketLifecycle",{}).n("S3Client","DeleteBucketLifecycleCommand").sc(Qmr).build(){},p3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AmazonS3","DeleteBucketMetadataConfiguration",{}).n("S3Client","DeleteBucketMetadataConfigurationCommand").sc(Xmr).build(){},m3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AmazonS3","DeleteBucketMetadataTableConfiguration",{}).n("S3Client","DeleteBucketMetadataTableConfigurationCommand").sc(Jmr).build(){},g3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AmazonS3","DeleteBucketMetricsConfiguration",{}).n("S3Client","DeleteBucketMetricsConfigurationCommand").sc(Ymr).build(){},f3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AmazonS3","DeleteBucketOwnershipControls",{}).n("S3Client","DeleteBucketOwnershipControlsCommand").sc(Zmr).build(){},h3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AmazonS3","DeleteBucketPolicy",{}).n("S3Client","DeleteBucketPolicyCommand").sc(egr).build(){},S3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AmazonS3","DeleteBucketReplication",{}).n("S3Client","DeleteBucketReplicationCommand").sc(tgr).build(){},E3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AmazonS3","DeleteBucketTagging",{}).n("S3Client","DeleteBucketTaggingCommand").sc(rgr).build(){},y3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AmazonS3","DeleteBucketWebsite",{}).n("S3Client","DeleteBucketWebsiteCommand").sc(ngr).build(){},_3=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"},Key:{type:"contextParams",name:"Key"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","DeleteObject",{}).n("S3Client","DeleteObjectCommand").sc(sgr).build(){},C3=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),Rt.getFlexibleChecksumsPlugin(n,{requestAlgorithmMember:{httpHeader:"x-amz-sdk-checksum-algorithm",name:"ChecksumAlgorithm"},requestChecksumRequired:!0}),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","DeleteObjects",{}).n("S3Client","DeleteObjectsCommand").sc(ogr).build(){},R3=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","DeleteObjectTagging",{}).n("S3Client","DeleteObjectTaggingCommand").sc(igr).build(){},v3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AmazonS3","DeletePublicAccessBlock",{}).n("S3Client","DeletePublicAccessBlockCommand").sc(agr).build(){},x3=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","GetBucketAbac",{}).n("S3Client","GetBucketAbacCommand").sc(cgr).build(){},P3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","GetBucketAccelerateConfiguration",{}).n("S3Client","GetBucketAccelerateConfigurationCommand").sc(ugr).build(){},b3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","GetBucketAcl",{}).n("S3Client","GetBucketAclCommand").sc(lgr).build(){},I3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","GetBucketAnalyticsConfiguration",{}).n("S3Client","GetBucketAnalyticsConfigurationCommand").sc(dgr).build(){},A3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","GetBucketCors",{}).n("S3Client","GetBucketCorsCommand").sc(pgr).build(){},T3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","GetBucketEncryption",{}).n("S3Client","GetBucketEncryptionCommand").sc(mgr).build(){},w3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","GetBucketIntelligentTieringConfiguration",{}).n("S3Client","GetBucketIntelligentTieringConfigurationCommand").sc(ggr).build(){},D3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","GetBucketInventoryConfiguration",{}).n("S3Client","GetBucketInventoryConfigurationCommand").sc(fgr).build(){},O3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","GetBucketLifecycleConfiguration",{}).n("S3Client","GetBucketLifecycleConfigurationCommand").sc(hgr).build(){},k3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","GetBucketLocation",{}).n("S3Client","GetBucketLocationCommand").sc(Sgr).build(){},N3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","GetBucketLogging",{}).n("S3Client","GetBucketLoggingCommand").sc(Egr).build(){},L3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","GetBucketMetadataConfiguration",{}).n("S3Client","GetBucketMetadataConfigurationCommand").sc(ygr).build(){},M3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","GetBucketMetadataTableConfiguration",{}).n("S3Client","GetBucketMetadataTableConfigurationCommand").sc(_gr).build(){},F3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","GetBucketMetricsConfiguration",{}).n("S3Client","GetBucketMetricsConfigurationCommand").sc(Cgr).build(){},B3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","GetBucketNotificationConfiguration",{}).n("S3Client","GetBucketNotificationConfigurationCommand").sc(Rgr).build(){},U3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","GetBucketOwnershipControls",{}).n("S3Client","GetBucketOwnershipControlsCommand").sc(vgr).build(){},q3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","GetBucketPolicy",{}).n("S3Client","GetBucketPolicyCommand").sc(xgr).build(){},$3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","GetBucketPolicyStatus",{}).n("S3Client","GetBucketPolicyStatusCommand").sc(Pgr).build(){},G3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","GetBucketReplication",{}).n("S3Client","GetBucketReplicationCommand").sc(bgr).build(){},j3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","GetBucketRequestPayment",{}).n("S3Client","GetBucketRequestPaymentCommand").sc(Igr).build(){},V3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","GetBucketTagging",{}).n("S3Client","GetBucketTaggingCommand").sc(Agr).build(){},H3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","GetBucketVersioning",{}).n("S3Client","GetBucketVersioningCommand").sc(Tgr).build(){},z3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","GetBucketWebsite",{}).n("S3Client","GetBucketWebsiteCommand").sc(wgr).build(){},W3=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"},Key:{type:"contextParams",name:"Key"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","GetObjectAcl",{}).n("S3Client","GetObjectAclCommand").sc(Ogr).build(){},K3=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n),oa.getSsecPlugin(n)]}).s("AmazonS3","GetObjectAttributes",{}).n("S3Client","GetObjectAttributesCommand").sc(kgr).build(){},Q3=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"},Key:{type:"contextParams",name:"Key"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),Rt.getFlexibleChecksumsPlugin(n,{requestChecksumRequired:!1,requestValidationModeMember:"ChecksumMode",responseAlgorithms:["CRC64NVME","CRC32","CRC32C","SHA256","SHA1"]}),oa.getSsecPlugin(n),le.getS3ExpiresMiddlewarePlugin(n)]}).s("AmazonS3","GetObject",{}).n("S3Client","GetObjectCommand").sc(Dgr).build(){},X3=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","GetObjectLegalHold",{}).n("S3Client","GetObjectLegalHoldCommand").sc(Ngr).build(){},J3=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","GetObjectLockConfiguration",{}).n("S3Client","GetObjectLockConfigurationCommand").sc(Lgr).build(){},Y3=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","GetObjectRetention",{}).n("S3Client","GetObjectRetentionCommand").sc(Mgr).build(){},Z3=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","GetObjectTagging",{}).n("S3Client","GetObjectTaggingCommand").sc(Fgr).build(){},eB=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AmazonS3","GetObjectTorrent",{}).n("S3Client","GetObjectTorrentCommand").sc(Bgr).build(){},tB=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","GetPublicAccessBlock",{}).n("S3Client","GetPublicAccessBlockCommand").sc(Ugr).build(){},Bh=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","HeadBucket",{}).n("S3Client","HeadBucketCommand").sc(qgr).build(){},Uh=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"},Key:{type:"contextParams",name:"Key"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n),oa.getSsecPlugin(n),le.getS3ExpiresMiddlewarePlugin(n)]}).s("AmazonS3","HeadObject",{}).n("S3Client","HeadObjectCommand").sc($gr).build(){},rB=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","ListBucketAnalyticsConfigurations",{}).n("S3Client","ListBucketAnalyticsConfigurationsCommand").sc(Ggr).build(){},nB=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","ListBucketIntelligentTieringConfigurations",{}).n("S3Client","ListBucketIntelligentTieringConfigurationsCommand").sc(jgr).build(){},sB=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","ListBucketInventoryConfigurations",{}).n("S3Client","ListBucketInventoryConfigurationsCommand").sc(Vgr).build(){},oB=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","ListBucketMetricsConfigurations",{}).n("S3Client","ListBucketMetricsConfigurationsCommand").sc(Hgr).build(){},kR=class extends j.Command.classBuilder().ep(K).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","ListBuckets",{}).n("S3Client","ListBucketsCommand").sc(zgr).build(){},NR=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","ListDirectoryBuckets",{}).n("S3Client","ListDirectoryBucketsCommand").sc(Wgr).build(){},iB=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"},Prefix:{type:"contextParams",name:"Prefix"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","ListMultipartUploads",{}).n("S3Client","ListMultipartUploadsCommand").sc(Kgr).build(){},aB=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"},Prefix:{type:"contextParams",name:"Prefix"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","ListObjects",{}).n("S3Client","ListObjectsCommand").sc(Qgr).build(){},LR=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"},Prefix:{type:"contextParams",name:"Prefix"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","ListObjectsV2",{}).n("S3Client","ListObjectsV2Command").sc(Xgr).build(){},cB=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"},Prefix:{type:"contextParams",name:"Prefix"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","ListObjectVersions",{}).n("S3Client","ListObjectVersionsCommand").sc(Jgr).build(){},MR=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"},Key:{type:"contextParams",name:"Key"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n),oa.getSsecPlugin(n)]}).s("AmazonS3","ListParts",{}).n("S3Client","ListPartsCommand").sc(Ygr).build(){},uB=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),Rt.getFlexibleChecksumsPlugin(n,{requestAlgorithmMember:{httpHeader:"x-amz-sdk-checksum-algorithm",name:"ChecksumAlgorithm"},requestChecksumRequired:!1})]}).s("AmazonS3","PutBucketAbac",{}).n("S3Client","PutBucketAbacCommand").sc(Zgr).build(){},lB=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),Rt.getFlexibleChecksumsPlugin(n,{requestAlgorithmMember:{httpHeader:"x-amz-sdk-checksum-algorithm",name:"ChecksumAlgorithm"},requestChecksumRequired:!1})]}).s("AmazonS3","PutBucketAccelerateConfiguration",{}).n("S3Client","PutBucketAccelerateConfigurationCommand").sc(efr).build(){},dB=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),Rt.getFlexibleChecksumsPlugin(n,{requestAlgorithmMember:{httpHeader:"x-amz-sdk-checksum-algorithm",name:"ChecksumAlgorithm"},requestChecksumRequired:!0})]}).s("AmazonS3","PutBucketAcl",{}).n("S3Client","PutBucketAclCommand").sc(tfr).build(){},pB=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AmazonS3","PutBucketAnalyticsConfiguration",{}).n("S3Client","PutBucketAnalyticsConfigurationCommand").sc(rfr).build(){},mB=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),Rt.getFlexibleChecksumsPlugin(n,{requestAlgorithmMember:{httpHeader:"x-amz-sdk-checksum-algorithm",name:"ChecksumAlgorithm"},requestChecksumRequired:!0})]}).s("AmazonS3","PutBucketCors",{}).n("S3Client","PutBucketCorsCommand").sc(nfr).build(){},gB=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),Rt.getFlexibleChecksumsPlugin(n,{requestAlgorithmMember:{httpHeader:"x-amz-sdk-checksum-algorithm",name:"ChecksumAlgorithm"},requestChecksumRequired:!0})]}).s("AmazonS3","PutBucketEncryption",{}).n("S3Client","PutBucketEncryptionCommand").sc(sfr).build(){},fB=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AmazonS3","PutBucketIntelligentTieringConfiguration",{}).n("S3Client","PutBucketIntelligentTieringConfigurationCommand").sc(ofr).build(){},hB=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AmazonS3","PutBucketInventoryConfiguration",{}).n("S3Client","PutBucketInventoryConfigurationCommand").sc(ifr).build(){},SB=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),Rt.getFlexibleChecksumsPlugin(n,{requestAlgorithmMember:{httpHeader:"x-amz-sdk-checksum-algorithm",name:"ChecksumAlgorithm"},requestChecksumRequired:!0}),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","PutBucketLifecycleConfiguration",{}).n("S3Client","PutBucketLifecycleConfigurationCommand").sc(afr).build(){},EB=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),Rt.getFlexibleChecksumsPlugin(n,{requestAlgorithmMember:{httpHeader:"x-amz-sdk-checksum-algorithm",name:"ChecksumAlgorithm"},requestChecksumRequired:!0})]}).s("AmazonS3","PutBucketLogging",{}).n("S3Client","PutBucketLoggingCommand").sc(cfr).build(){},yB=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AmazonS3","PutBucketMetricsConfiguration",{}).n("S3Client","PutBucketMetricsConfigurationCommand").sc(ufr).build(){},_B=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AmazonS3","PutBucketNotificationConfiguration",{}).n("S3Client","PutBucketNotificationConfigurationCommand").sc(lfr).build(){},CB=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),Rt.getFlexibleChecksumsPlugin(n,{requestAlgorithmMember:{httpHeader:"x-amz-sdk-checksum-algorithm",name:"ChecksumAlgorithm"},requestChecksumRequired:!0})]}).s("AmazonS3","PutBucketOwnershipControls",{}).n("S3Client","PutBucketOwnershipControlsCommand").sc(dfr).build(){},RB=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),Rt.getFlexibleChecksumsPlugin(n,{requestAlgorithmMember:{httpHeader:"x-amz-sdk-checksum-algorithm",name:"ChecksumAlgorithm"},requestChecksumRequired:!0})]}).s("AmazonS3","PutBucketPolicy",{}).n("S3Client","PutBucketPolicyCommand").sc(pfr).build(){},vB=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),Rt.getFlexibleChecksumsPlugin(n,{requestAlgorithmMember:{httpHeader:"x-amz-sdk-checksum-algorithm",name:"ChecksumAlgorithm"},requestChecksumRequired:!0})]}).s("AmazonS3","PutBucketReplication",{}).n("S3Client","PutBucketReplicationCommand").sc(mfr).build(){},xB=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),Rt.getFlexibleChecksumsPlugin(n,{requestAlgorithmMember:{httpHeader:"x-amz-sdk-checksum-algorithm",name:"ChecksumAlgorithm"},requestChecksumRequired:!0})]}).s("AmazonS3","PutBucketRequestPayment",{}).n("S3Client","PutBucketRequestPaymentCommand").sc(gfr).build(){},PB=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),Rt.getFlexibleChecksumsPlugin(n,{requestAlgorithmMember:{httpHeader:"x-amz-sdk-checksum-algorithm",name:"ChecksumAlgorithm"},requestChecksumRequired:!0})]}).s("AmazonS3","PutBucketTagging",{}).n("S3Client","PutBucketTaggingCommand").sc(ffr).build(){},bB=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),Rt.getFlexibleChecksumsPlugin(n,{requestAlgorithmMember:{httpHeader:"x-amz-sdk-checksum-algorithm",name:"ChecksumAlgorithm"},requestChecksumRequired:!0})]}).s("AmazonS3","PutBucketVersioning",{}).n("S3Client","PutBucketVersioningCommand").sc(hfr).build(){},IB=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),Rt.getFlexibleChecksumsPlugin(n,{requestAlgorithmMember:{httpHeader:"x-amz-sdk-checksum-algorithm",name:"ChecksumAlgorithm"},requestChecksumRequired:!0})]}).s("AmazonS3","PutBucketWebsite",{}).n("S3Client","PutBucketWebsiteCommand").sc(Sfr).build(){},AB=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"},Key:{type:"contextParams",name:"Key"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),Rt.getFlexibleChecksumsPlugin(n,{requestAlgorithmMember:{httpHeader:"x-amz-sdk-checksum-algorithm",name:"ChecksumAlgorithm"},requestChecksumRequired:!0}),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","PutObjectAcl",{}).n("S3Client","PutObjectAclCommand").sc(yfr).build(){},TB=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"},Key:{type:"contextParams",name:"Key"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),Rt.getFlexibleChecksumsPlugin(n,{requestAlgorithmMember:{httpHeader:"x-amz-sdk-checksum-algorithm",name:"ChecksumAlgorithm"},requestChecksumRequired:!1}),le.getCheckContentLengthHeaderPlugin(n),le.getThrow200ExceptionsPlugin(n),oa.getSsecPlugin(n)]}).s("AmazonS3","PutObject",{}).n("S3Client","PutObjectCommand").sc(Efr).build(){},wB=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),Rt.getFlexibleChecksumsPlugin(n,{requestAlgorithmMember:{httpHeader:"x-amz-sdk-checksum-algorithm",name:"ChecksumAlgorithm"},requestChecksumRequired:!0}),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","PutObjectLegalHold",{}).n("S3Client","PutObjectLegalHoldCommand").sc(_fr).build(){},DB=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),Rt.getFlexibleChecksumsPlugin(n,{requestAlgorithmMember:{httpHeader:"x-amz-sdk-checksum-algorithm",name:"ChecksumAlgorithm"},requestChecksumRequired:!0}),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","PutObjectLockConfiguration",{}).n("S3Client","PutObjectLockConfigurationCommand").sc(Cfr).build(){},OB=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),Rt.getFlexibleChecksumsPlugin(n,{requestAlgorithmMember:{httpHeader:"x-amz-sdk-checksum-algorithm",name:"ChecksumAlgorithm"},requestChecksumRequired:!0}),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","PutObjectRetention",{}).n("S3Client","PutObjectRetentionCommand").sc(Rfr).build(){},kB=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),Rt.getFlexibleChecksumsPlugin(n,{requestAlgorithmMember:{httpHeader:"x-amz-sdk-checksum-algorithm",name:"ChecksumAlgorithm"},requestChecksumRequired:!0}),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","PutObjectTagging",{}).n("S3Client","PutObjectTaggingCommand").sc(vfr).build(){},NB=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),Rt.getFlexibleChecksumsPlugin(n,{requestAlgorithmMember:{httpHeader:"x-amz-sdk-checksum-algorithm",name:"ChecksumAlgorithm"},requestChecksumRequired:!0})]}).s("AmazonS3","PutPublicAccessBlock",{}).n("S3Client","PutPublicAccessBlockCommand").sc(xfr).build(){},LB=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"},Key:{type:"contextParams",name:"Key"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","RenameObject",{}).n("S3Client","RenameObjectCommand").sc(Pfr).build(){},MB=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),Rt.getFlexibleChecksumsPlugin(n,{requestAlgorithmMember:{httpHeader:"x-amz-sdk-checksum-algorithm",name:"ChecksumAlgorithm"},requestChecksumRequired:!1}),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","RestoreObject",{}).n("S3Client","RestoreObjectCommand").sc(bfr).build(){},FB=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n),oa.getSsecPlugin(n)]}).s("AmazonS3","SelectObjectContent",{eventStream:{output:!0}}).n("S3Client","SelectObjectContentCommand").sc(Ifr).build(){},BB=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),Rt.getFlexibleChecksumsPlugin(n,{requestAlgorithmMember:{httpHeader:"x-amz-sdk-checksum-algorithm",name:"ChecksumAlgorithm"},requestChecksumRequired:!0})]}).s("AmazonS3","UpdateBucketMetadataInventoryTableConfiguration",{}).n("S3Client","UpdateBucketMetadataInventoryTableConfigurationCommand").sc(Afr).build(){},UB=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),Rt.getFlexibleChecksumsPlugin(n,{requestAlgorithmMember:{httpHeader:"x-amz-sdk-checksum-algorithm",name:"ChecksumAlgorithm"},requestChecksumRequired:!0})]}).s("AmazonS3","UpdateBucketMetadataJournalTableConfiguration",{}).n("S3Client","UpdateBucketMetadataJournalTableConfigurationCommand").sc(Tfr).build(){},qB=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"},Key:{type:"contextParams",name:"Key"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),Rt.getFlexibleChecksumsPlugin(n,{requestAlgorithmMember:{httpHeader:"x-amz-sdk-checksum-algorithm",name:"ChecksumAlgorithm"},requestChecksumRequired:!1}),le.getThrow200ExceptionsPlugin(n),oa.getSsecPlugin(n)]}).s("AmazonS3","UploadPart",{}).n("S3Client","UploadPartCommand").sc(wfr).build(){},$B=class extends j.Command.classBuilder().ep({...K,DisableS3ExpressSessionAuth:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n),oa.getSsecPlugin(n)]}).s("AmazonS3","UploadPartCopy",{}).n("S3Client","UploadPartCopyCommand").sc(Dfr).build(){},GB=class extends j.Command.classBuilder().ep({...K,UseObjectLambdaEndpoint:{type:"staticContextParams",value:!0}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AmazonS3","WriteGetObjectResponse",{}).n("S3Client","WriteGetObjectResponseCommand").sc(Ofr).build(){},Mfr={AbortMultipartUploadCommand:YF,CompleteMultipartUploadCommand:ZF,CopyObjectCommand:e3,CreateBucketCommand:t3,CreateBucketMetadataConfigurationCommand:r3,CreateBucketMetadataTableConfigurationCommand:n3,CreateMultipartUploadCommand:s3,CreateSessionCommand:OR,DeleteBucketCommand:i3,DeleteBucketAnalyticsConfigurationCommand:o3,DeleteBucketCorsCommand:a3,DeleteBucketEncryptionCommand:c3,DeleteBucketIntelligentTieringConfigurationCommand:u3,DeleteBucketInventoryConfigurationCommand:l3,DeleteBucketLifecycleCommand:d3,DeleteBucketMetadataConfigurationCommand:p3,DeleteBucketMetadataTableConfigurationCommand:m3,DeleteBucketMetricsConfigurationCommand:g3,DeleteBucketOwnershipControlsCommand:f3,DeleteBucketPolicyCommand:h3,DeleteBucketReplicationCommand:S3,DeleteBucketTaggingCommand:E3,DeleteBucketWebsiteCommand:y3,DeleteObjectCommand:_3,DeleteObjectsCommand:C3,DeleteObjectTaggingCommand:R3,DeletePublicAccessBlockCommand:v3,GetBucketAbacCommand:x3,GetBucketAccelerateConfigurationCommand:P3,GetBucketAclCommand:b3,GetBucketAnalyticsConfigurationCommand:I3,GetBucketCorsCommand:A3,GetBucketEncryptionCommand:T3,GetBucketIntelligentTieringConfigurationCommand:w3,GetBucketInventoryConfigurationCommand:D3,GetBucketLifecycleConfigurationCommand:O3,GetBucketLocationCommand:k3,GetBucketLoggingCommand:N3,GetBucketMetadataConfigurationCommand:L3,GetBucketMetadataTableConfigurationCommand:M3,GetBucketMetricsConfigurationCommand:F3,GetBucketNotificationConfigurationCommand:B3,GetBucketOwnershipControlsCommand:U3,GetBucketPolicyCommand:q3,GetBucketPolicyStatusCommand:$3,GetBucketReplicationCommand:G3,GetBucketRequestPaymentCommand:j3,GetBucketTaggingCommand:V3,GetBucketVersioningCommand:H3,GetBucketWebsiteCommand:z3,GetObjectCommand:Q3,GetObjectAclCommand:W3,GetObjectAttributesCommand:K3,GetObjectLegalHoldCommand:X3,GetObjectLockConfigurationCommand:J3,GetObjectRetentionCommand:Y3,GetObjectTaggingCommand:Z3,GetObjectTorrentCommand:eB,GetPublicAccessBlockCommand:tB,HeadBucketCommand:Bh,HeadObjectCommand:Uh,ListBucketAnalyticsConfigurationsCommand:rB,ListBucketIntelligentTieringConfigurationsCommand:nB,ListBucketInventoryConfigurationsCommand:sB,ListBucketMetricsConfigurationsCommand:oB,ListBucketsCommand:kR,ListDirectoryBucketsCommand:NR,ListMultipartUploadsCommand:iB,ListObjectsCommand:aB,ListObjectsV2Command:LR,ListObjectVersionsCommand:cB,ListPartsCommand:MR,PutBucketAbacCommand:uB,PutBucketAccelerateConfigurationCommand:lB,PutBucketAclCommand:dB,PutBucketAnalyticsConfigurationCommand:pB,PutBucketCorsCommand:mB,PutBucketEncryptionCommand:gB,PutBucketIntelligentTieringConfigurationCommand:fB,PutBucketInventoryConfigurationCommand:hB,PutBucketLifecycleConfigurationCommand:SB,PutBucketLoggingCommand:EB,PutBucketMetricsConfigurationCommand:yB,PutBucketNotificationConfigurationCommand:_B,PutBucketOwnershipControlsCommand:CB,PutBucketPolicyCommand:RB,PutBucketReplicationCommand:vB,PutBucketRequestPaymentCommand:xB,PutBucketTaggingCommand:PB,PutBucketVersioningCommand:bB,PutBucketWebsiteCommand:IB,PutObjectCommand:TB,PutObjectAclCommand:AB,PutObjectLegalHoldCommand:wB,PutObjectLockConfigurationCommand:DB,PutObjectRetentionCommand:OB,PutObjectTaggingCommand:kB,PutPublicAccessBlockCommand:NB,RenameObjectCommand:LB,RestoreObjectCommand:MB,SelectObjectContentCommand:FB,UpdateBucketMetadataInventoryTableConfigurationCommand:BB,UpdateBucketMetadataJournalTableConfigurationCommand:UB,UploadPartCommand:qB,UploadPartCopyCommand:$B,WriteGetObjectResponseCommand:GB},jB=class extends sd{};j.createAggregatedClient(Mfr,jB);var Ffr=Jp.createPaginator(sd,kR,"ContinuationToken","ContinuationToken","MaxBuckets"),Bfr=Jp.createPaginator(sd,NR,"ContinuationToken","ContinuationToken","MaxDirectoryBuckets"),Ufr=Jp.createPaginator(sd,LR,"ContinuationToken","NextContinuationToken","MaxKeys"),qfr=Jp.createPaginator(sd,MR,"PartNumberMarker","NextPartNumberMarker","MaxParts"),GHe=async(t,e)=>{let r;try{return r=await t.send(new Bh(e)),{state:gr.WaiterState.SUCCESS,reason:r}}catch(n){if(r=n,n.name&&n.name=="NotFound")return{state:gr.WaiterState.RETRY,reason:r}}return{state:gr.WaiterState.RETRY,reason:r}},$fr=async(t,e)=>{let r={minDelay:5,maxDelay:120};return gr.createWaiter({...r,...t},e,GHe)},Gfr=async(t,e)=>{let r={minDelay:5,maxDelay:120},n=await gr.createWaiter({...r,...t},e,GHe);return gr.checkExceptions(n)},jHe=async(t,e)=>{let r;try{r=await t.send(new Bh(e))}catch(n){if(r=n,n.name&&n.name=="NotFound")return{state:gr.WaiterState.SUCCESS,reason:r}}return{state:gr.WaiterState.RETRY,reason:r}},jfr=async(t,e)=>{let r={minDelay:5,maxDelay:120};return gr.createWaiter({...r,...t},e,jHe)},Vfr=async(t,e)=>{let r={minDelay:5,maxDelay:120},n=await gr.createWaiter({...r,...t},e,jHe);return gr.checkExceptions(n)},VHe=async(t,e)=>{let r;try{return r=await t.send(new Uh(e)),{state:gr.WaiterState.SUCCESS,reason:r}}catch(n){if(r=n,n.name&&n.name=="NotFound")return{state:gr.WaiterState.RETRY,reason:r}}return{state:gr.WaiterState.RETRY,reason:r}},Hfr=async(t,e)=>{let r={minDelay:5,maxDelay:120};return gr.createWaiter({...r,...t},e,VHe)},zfr=async(t,e)=>{let r={minDelay:5,maxDelay:120},n=await gr.createWaiter({...r,...t},e,VHe);return gr.checkExceptions(n)},HHe=async(t,e)=>{let r;try{r=await t.send(new Uh(e))}catch(n){if(r=n,n.name&&n.name=="NotFound")return{state:gr.WaiterState.SUCCESS,reason:r}}return{state:gr.WaiterState.RETRY,reason:r}},Wfr=async(t,e)=>{let r={minDelay:5,maxDelay:120};return gr.createWaiter({...r,...t},e,HHe)},Kfr=async(t,e)=>{let r={minDelay:5,maxDelay:120},n=await gr.createWaiter({...r,...t},e,HHe);return gr.checkExceptions(n)},Qfr={Disabled:"Disabled",Enabled:"Enabled"},Xfr={requester:"requester"},Jfr={requester:"requester"},Yfr={Enabled:"Enabled",Suspended:"Suspended"},Zfr={AmazonCustomerByEmail:"AmazonCustomerByEmail",CanonicalUser:"CanonicalUser",Group:"Group"},ehr={FULL_CONTROL:"FULL_CONTROL",READ:"READ",READ_ACP:"READ_ACP",WRITE:"WRITE",WRITE_ACP:"WRITE_ACP"},thr={Destination:"Destination"},rhr={COMPOSITE:"COMPOSITE",FULL_OBJECT:"FULL_OBJECT"},nhr={AES256:"AES256",aws_fsx:"aws:fsx",aws_kms:"aws:kms",aws_kms_dsse:"aws:kms:dsse"},shr={authenticated_read:"authenticated-read",aws_exec_read:"aws-exec-read",bucket_owner_full_control:"bucket-owner-full-control",bucket_owner_read:"bucket-owner-read",private:"private",public_read:"public-read",public_read_write:"public-read-write"},ohr={CRC32:"CRC32",CRC32C:"CRC32C",CRC64NVME:"CRC64NVME",SHA1:"SHA1",SHA256:"SHA256"},ihr={COPY:"COPY",REPLACE:"REPLACE"},ahr={OFF:"OFF",ON:"ON"},chr={COMPLIANCE:"COMPLIANCE",GOVERNANCE:"GOVERNANCE"},uhr={DEEP_ARCHIVE:"DEEP_ARCHIVE",EXPRESS_ONEZONE:"EXPRESS_ONEZONE",FSX_ONTAP:"FSX_ONTAP",FSX_OPENZFS:"FSX_OPENZFS",GLACIER:"GLACIER",GLACIER_IR:"GLACIER_IR",INTELLIGENT_TIERING:"INTELLIGENT_TIERING",ONEZONE_IA:"ONEZONE_IA",OUTPOSTS:"OUTPOSTS",REDUCED_REDUNDANCY:"REDUCED_REDUNDANCY",SNOW:"SNOW",STANDARD:"STANDARD",STANDARD_IA:"STANDARD_IA"},lhr={COPY:"COPY",REPLACE:"REPLACE"},dhr={authenticated_read:"authenticated-read",private:"private",public_read:"public-read",public_read_write:"public-read-write"},phr={SingleAvailabilityZone:"SingleAvailabilityZone",SingleLocalZone:"SingleLocalZone"},mhr={Directory:"Directory"},ghr={AvailabilityZone:"AvailabilityZone",LocalZone:"LocalZone"},fhr={EU:"EU",af_south_1:"af-south-1",ap_east_1:"ap-east-1",ap_northeast_1:"ap-northeast-1",ap_northeast_2:"ap-northeast-2",ap_northeast_3:"ap-northeast-3",ap_south_1:"ap-south-1",ap_south_2:"ap-south-2",ap_southeast_1:"ap-southeast-1",ap_southeast_2:"ap-southeast-2",ap_southeast_3:"ap-southeast-3",ap_southeast_4:"ap-southeast-4",ap_southeast_5:"ap-southeast-5",ca_central_1:"ca-central-1",cn_north_1:"cn-north-1",cn_northwest_1:"cn-northwest-1",eu_central_1:"eu-central-1",eu_central_2:"eu-central-2",eu_north_1:"eu-north-1",eu_south_1:"eu-south-1",eu_south_2:"eu-south-2",eu_west_1:"eu-west-1",eu_west_2:"eu-west-2",eu_west_3:"eu-west-3",il_central_1:"il-central-1",me_central_1:"me-central-1",me_south_1:"me-south-1",sa_east_1:"sa-east-1",us_east_2:"us-east-2",us_gov_east_1:"us-gov-east-1",us_gov_west_1:"us-gov-west-1",us_west_1:"us-west-1",us_west_2:"us-west-2"},hhr={BucketOwnerEnforced:"BucketOwnerEnforced",BucketOwnerPreferred:"BucketOwnerPreferred",ObjectWriter:"ObjectWriter"},Shr={DISABLED:"DISABLED",ENABLED:"ENABLED"},Ehr={AES256:"AES256",aws_kms:"aws:kms"},yhr={DISABLED:"DISABLED",ENABLED:"ENABLED"},_hr={ReadOnly:"ReadOnly",ReadWrite:"ReadWrite"},Chr={CSV:"CSV"},Rhr={V_1:"V_1"},vhr={NONE:"NONE",SSE_C:"SSE-C"},xhr={Disabled:"Disabled",Enabled:"Enabled"},Phr={ARCHIVE_ACCESS:"ARCHIVE_ACCESS",DEEP_ARCHIVE_ACCESS:"DEEP_ARCHIVE_ACCESS"},bhr={CSV:"CSV",ORC:"ORC",Parquet:"Parquet"},Ihr={All:"All",Current:"Current"},Ahr={BucketKeyStatus:"BucketKeyStatus",ChecksumAlgorithm:"ChecksumAlgorithm",ETag:"ETag",EncryptionStatus:"EncryptionStatus",IntelligentTieringAccessTier:"IntelligentTieringAccessTier",IsMultipartUploaded:"IsMultipartUploaded",LastModifiedDate:"LastModifiedDate",LifecycleExpirationDate:"LifecycleExpirationDate",ObjectAccessControlList:"ObjectAccessControlList",ObjectLockLegalHoldStatus:"ObjectLockLegalHoldStatus",ObjectLockMode:"ObjectLockMode",ObjectLockRetainUntilDate:"ObjectLockRetainUntilDate",ObjectOwner:"ObjectOwner",ReplicationStatus:"ReplicationStatus",Size:"Size",StorageClass:"StorageClass"},Thr={Daily:"Daily",Weekly:"Weekly"},whr={DEEP_ARCHIVE:"DEEP_ARCHIVE",GLACIER:"GLACIER",GLACIER_IR:"GLACIER_IR",INTELLIGENT_TIERING:"INTELLIGENT_TIERING",ONEZONE_IA:"ONEZONE_IA",STANDARD_IA:"STANDARD_IA"},Dhr={Disabled:"Disabled",Enabled:"Enabled"},Ohr={all_storage_classes_128K:"all_storage_classes_128K",varies_by_storage_class:"varies_by_storage_class"},khr={FULL_CONTROL:"FULL_CONTROL",READ:"READ",WRITE:"WRITE"},Nhr={DeliveryTime:"DeliveryTime",EventTime:"EventTime"},Lhr={aws:"aws",customer:"customer"},Mhr={s3_IntelligentTiering:"s3:IntelligentTiering",s3_LifecycleExpiration_:"s3:LifecycleExpiration:*",s3_LifecycleExpiration_Delete:"s3:LifecycleExpiration:Delete",s3_LifecycleExpiration_DeleteMarkerCreated:"s3:LifecycleExpiration:DeleteMarkerCreated",s3_LifecycleTransition:"s3:LifecycleTransition",s3_ObjectAcl_Put:"s3:ObjectAcl:Put",s3_ObjectCreated_:"s3:ObjectCreated:*",s3_ObjectCreated_CompleteMultipartUpload:"s3:ObjectCreated:CompleteMultipartUpload",s3_ObjectCreated_Copy:"s3:ObjectCreated:Copy",s3_ObjectCreated_Post:"s3:ObjectCreated:Post",s3_ObjectCreated_Put:"s3:ObjectCreated:Put",s3_ObjectRemoved_:"s3:ObjectRemoved:*",s3_ObjectRemoved_Delete:"s3:ObjectRemoved:Delete",s3_ObjectRemoved_DeleteMarkerCreated:"s3:ObjectRemoved:DeleteMarkerCreated",s3_ObjectRestore_:"s3:ObjectRestore:*",s3_ObjectRestore_Completed:"s3:ObjectRestore:Completed",s3_ObjectRestore_Delete:"s3:ObjectRestore:Delete",s3_ObjectRestore_Post:"s3:ObjectRestore:Post",s3_ObjectTagging_:"s3:ObjectTagging:*",s3_ObjectTagging_Delete:"s3:ObjectTagging:Delete",s3_ObjectTagging_Put:"s3:ObjectTagging:Put",s3_ReducedRedundancyLostObject:"s3:ReducedRedundancyLostObject",s3_Replication_:"s3:Replication:*",s3_Replication_OperationFailedReplication:"s3:Replication:OperationFailedReplication",s3_Replication_OperationMissedThreshold:"s3:Replication:OperationMissedThreshold",s3_Replication_OperationNotTracked:"s3:Replication:OperationNotTracked",s3_Replication_OperationReplicatedAfterThreshold:"s3:Replication:OperationReplicatedAfterThreshold"},Fhr={prefix:"prefix",suffix:"suffix"},Bhr={Disabled:"Disabled",Enabled:"Enabled"},Uhr={Disabled:"Disabled",Enabled:"Enabled"},qhr={Disabled:"Disabled",Enabled:"Enabled"},$hr={Disabled:"Disabled",Enabled:"Enabled"},Ghr={Disabled:"Disabled",Enabled:"Enabled"},jhr={Disabled:"Disabled",Enabled:"Enabled"},Vhr={Disabled:"Disabled",Enabled:"Enabled"},Hhr={BucketOwner:"BucketOwner",Requester:"Requester"},zhr={Disabled:"Disabled",Enabled:"Enabled"},Whr={Enabled:"Enabled",Suspended:"Suspended"},Khr={http:"http",https:"https"},Qhr={COMPLETE:"COMPLETE",COMPLETED:"COMPLETED",FAILED:"FAILED",PENDING:"PENDING",REPLICA:"REPLICA"},Xhr={ENABLED:"ENABLED"},Jhr={CHECKSUM:"Checksum",ETAG:"ETag",OBJECT_PARTS:"ObjectParts",OBJECT_SIZE:"ObjectSize",STORAGE_CLASS:"StorageClass"},Yhr={Enabled:"Enabled"},Zhr={COMPLIANCE:"COMPLIANCE",GOVERNANCE:"GOVERNANCE"},eSr={ARCHIVE_ACCESS:"ARCHIVE_ACCESS",DEEP_ARCHIVE_ACCESS:"DEEP_ARCHIVE_ACCESS"},tSr={url:"url"},rSr={DEEP_ARCHIVE:"DEEP_ARCHIVE",EXPRESS_ONEZONE:"EXPRESS_ONEZONE",FSX_ONTAP:"FSX_ONTAP",FSX_OPENZFS:"FSX_OPENZFS",GLACIER:"GLACIER",GLACIER_IR:"GLACIER_IR",INTELLIGENT_TIERING:"INTELLIGENT_TIERING",ONEZONE_IA:"ONEZONE_IA",OUTPOSTS:"OUTPOSTS",REDUCED_REDUNDANCY:"REDUCED_REDUNDANCY",SNOW:"SNOW",STANDARD:"STANDARD",STANDARD_IA:"STANDARD_IA"},nSr={RESTORE_STATUS:"RestoreStatus"},sSr={STANDARD:"STANDARD"},oSr={Disabled:"Disabled",Enabled:"Enabled"},iSr={Bulk:"Bulk",Expedited:"Expedited",Standard:"Standard"},aSr={SQL:"SQL"},cSr={BZIP2:"BZIP2",GZIP:"GZIP",NONE:"NONE"},uSr={IGNORE:"IGNORE",NONE:"NONE",USE:"USE"},lSr={DOCUMENT:"DOCUMENT",LINES:"LINES"},dSr={ALWAYS:"ALWAYS",ASNEEDED:"ASNEEDED"},pSr={SELECT:"SELECT"};Object.defineProperty(I,"$Command",{enumerable:!0,get:function(){return j.Command}});Object.defineProperty(I,"__Client",{enumerable:!0,get:function(){return j.Client}});I.AbortMultipartUploadCommand=YF;I.AnalyticsS3ExportFileFormat=Chr;I.ArchiveStatus=eSr;I.BucketAbacStatus=Qfr;I.BucketAccelerateStatus=Yfr;I.BucketAlreadyExists=W2e;I.BucketAlreadyOwnedByYou=Q2e;I.BucketCannedACL=dhr;I.BucketLocationConstraint=fhr;I.BucketLogsPermission=khr;I.BucketType=mhr;I.BucketVersioningStatus=Whr;I.ChecksumAlgorithm=ohr;I.ChecksumMode=Xhr;I.ChecksumType=rhr;I.CompleteMultipartUploadCommand=ZF;I.CompressionType=cSr;I.CopyObjectCommand=e3;I.CreateBucketCommand=t3;I.CreateBucketMetadataConfigurationCommand=r3;I.CreateBucketMetadataTableConfigurationCommand=n3;I.CreateMultipartUploadCommand=s3;I.CreateSessionCommand=OR;I.DataRedundancy=phr;I.DeleteBucketAnalyticsConfigurationCommand=o3;I.DeleteBucketCommand=i3;I.DeleteBucketCorsCommand=a3;I.DeleteBucketEncryptionCommand=c3;I.DeleteBucketIntelligentTieringConfigurationCommand=u3;I.DeleteBucketInventoryConfigurationCommand=l3;I.DeleteBucketLifecycleCommand=d3;I.DeleteBucketMetadataConfigurationCommand=p3;I.DeleteBucketMetadataTableConfigurationCommand=m3;I.DeleteBucketMetricsConfigurationCommand=g3;I.DeleteBucketOwnershipControlsCommand=f3;I.DeleteBucketPolicyCommand=h3;I.DeleteBucketReplicationCommand=S3;I.DeleteBucketTaggingCommand=E3;I.DeleteBucketWebsiteCommand=y3;I.DeleteMarkerReplicationStatus=Bhr;I.DeleteObjectCommand=_3;I.DeleteObjectTaggingCommand=R3;I.DeleteObjectsCommand=C3;I.DeletePublicAccessBlockCommand=v3;I.EncodingType=tSr;I.EncryptionType=vhr;I.EncryptionTypeMismatch=oje;I.Event=Mhr;I.ExistingObjectReplicationStatus=$hr;I.ExpirationState=yhr;I.ExpirationStatus=Dhr;I.ExpressionType=aSr;I.FileHeaderInfo=uSr;I.FilterRuleName=Fhr;I.GetBucketAbacCommand=x3;I.GetBucketAccelerateConfigurationCommand=P3;I.GetBucketAclCommand=b3;I.GetBucketAnalyticsConfigurationCommand=I3;I.GetBucketCorsCommand=A3;I.GetBucketEncryptionCommand=T3;I.GetBucketIntelligentTieringConfigurationCommand=w3;I.GetBucketInventoryConfigurationCommand=D3;I.GetBucketLifecycleConfigurationCommand=O3;I.GetBucketLocationCommand=k3;I.GetBucketLoggingCommand=N3;I.GetBucketMetadataConfigurationCommand=L3;I.GetBucketMetadataTableConfigurationCommand=M3;I.GetBucketMetricsConfigurationCommand=F3;I.GetBucketNotificationConfigurationCommand=B3;I.GetBucketOwnershipControlsCommand=U3;I.GetBucketPolicyCommand=q3;I.GetBucketPolicyStatusCommand=$3;I.GetBucketReplicationCommand=G3;I.GetBucketRequestPaymentCommand=j3;I.GetBucketTaggingCommand=V3;I.GetBucketVersioningCommand=H3;I.GetBucketWebsiteCommand=z3;I.GetObjectAclCommand=W3;I.GetObjectAttributesCommand=K3;I.GetObjectCommand=Q3;I.GetObjectLegalHoldCommand=X3;I.GetObjectLockConfigurationCommand=J3;I.GetObjectRetentionCommand=Y3;I.GetObjectTaggingCommand=Z3;I.GetObjectTorrentCommand=eB;I.GetPublicAccessBlockCommand=tB;I.HeadBucketCommand=Bh;I.HeadObjectCommand=Uh;I.IdempotencyParameterMismatch=mje;I.IntelligentTieringAccessTier=Phr;I.IntelligentTieringStatus=xhr;I.InvalidObjectState=Z2e;I.InvalidRequest=aje;I.InvalidWriteOffset=uje;I.InventoryConfigurationState=Shr;I.InventoryFormat=bhr;I.InventoryFrequency=Thr;I.InventoryIncludedObjectVersions=Ihr;I.InventoryOptionalField=Ahr;I.JSONType=lSr;I.ListBucketAnalyticsConfigurationsCommand=rB;I.ListBucketIntelligentTieringConfigurationsCommand=nB;I.ListBucketInventoryConfigurationsCommand=sB;I.ListBucketMetricsConfigurationsCommand=oB;I.ListBucketsCommand=kR;I.ListDirectoryBucketsCommand=NR;I.ListMultipartUploadsCommand=iB;I.ListObjectVersionsCommand=cB;I.ListObjectsCommand=aB;I.ListObjectsV2Command=LR;I.ListPartsCommand=MR;I.LocationType=ghr;I.MFADelete=oSr;I.MFADeleteStatus=zhr;I.MetadataDirective=ihr;I.MetricsStatus=Uhr;I.NoSuchBucket=J2e;I.NoSuchKey=tje;I.NoSuchUpload=j2e;I.NotFound=nje;I.ObjectAlreadyInActiveTierError=fje;I.ObjectAttributes=Jhr;I.ObjectCannedACL=shr;I.ObjectLockEnabled=Yhr;I.ObjectLockLegalHoldStatus=ahr;I.ObjectLockMode=chr;I.ObjectLockRetentionMode=Zhr;I.ObjectNotInActiveTierError=H2e;I.ObjectOwnership=hhr;I.ObjectStorageClass=rSr;I.ObjectVersionStorageClass=sSr;I.OptionalObjectAttributes=nSr;I.OwnerOverride=thr;I.PartitionDateSource=Nhr;I.Payer=Hhr;I.Permission=ehr;I.Protocol=Khr;I.PutBucketAbacCommand=uB;I.PutBucketAccelerateConfigurationCommand=lB;I.PutBucketAclCommand=dB;I.PutBucketAnalyticsConfigurationCommand=pB;I.PutBucketCorsCommand=mB;I.PutBucketEncryptionCommand=gB;I.PutBucketIntelligentTieringConfigurationCommand=fB;I.PutBucketInventoryConfigurationCommand=hB;I.PutBucketLifecycleConfigurationCommand=SB;I.PutBucketLoggingCommand=EB;I.PutBucketMetricsConfigurationCommand=yB;I.PutBucketNotificationConfigurationCommand=_B;I.PutBucketOwnershipControlsCommand=CB;I.PutBucketPolicyCommand=RB;I.PutBucketReplicationCommand=vB;I.PutBucketRequestPaymentCommand=xB;I.PutBucketTaggingCommand=PB;I.PutBucketVersioningCommand=bB;I.PutBucketWebsiteCommand=IB;I.PutObjectAclCommand=AB;I.PutObjectCommand=TB;I.PutObjectLegalHoldCommand=wB;I.PutObjectLockConfigurationCommand=DB;I.PutObjectRetentionCommand=OB;I.PutObjectTaggingCommand=kB;I.PutPublicAccessBlockCommand=NB;I.QuoteFields=dSr;I.RenameObjectCommand=LB;I.ReplicaModificationsStatus=Ghr;I.ReplicationRuleStatus=Vhr;I.ReplicationStatus=Qhr;I.ReplicationTimeStatus=qhr;I.RequestCharged=Xfr;I.RequestPayer=Jfr;I.RestoreObjectCommand=MB;I.RestoreRequestType=pSr;I.S3=jB;I.S3Client=sd;I.S3ServiceException=jn;I.S3TablesBucketType=Lhr;I.SelectObjectContentCommand=FB;I.ServerSideEncryption=nhr;I.SessionMode=_hr;I.SseKmsEncryptedObjectsStatus=jhr;I.StorageClass=uhr;I.StorageClassAnalysisSchemaVersion=Rhr;I.TableSseAlgorithm=Ehr;I.TaggingDirective=lhr;I.Tier=iSr;I.TooManyParts=dje;I.TransitionDefaultMinimumObjectSize=Ohr;I.TransitionStorageClass=whr;I.Type=Zfr;I.UpdateBucketMetadataInventoryTableConfigurationCommand=BB;I.UpdateBucketMetadataJournalTableConfigurationCommand=UB;I.UploadPartCommand=qB;I.UploadPartCopyCommand=$B;I.WriteGetObjectResponseCommand=GB;I.paginateListBuckets=Ffr;I.paginateListDirectoryBuckets=Bfr;I.paginateListObjectsV2=Ufr;I.paginateListParts=qfr;I.waitForBucketExists=$fr;I.waitForBucketNotExists=jfr;I.waitForObjectExists=Hfr;I.waitForObjectNotExists=Wfr;I.waitUntilBucketExists=Gfr;I.waitUntilBucketNotExists=Vfr;I.waitUntilObjectExists=zfr;I.waitUntilObjectNotExists=Kfr});var UX=b(ld=>{"use strict";Object.defineProperty(ld,"__esModule",{value:!0});ld.resolveHttpAuthSchemeConfig=ld.defaultCloudWatchLogsHttpAuthSchemeProvider=ld.defaultCloudWatchLogsHttpAuthSchemeParametersProvider=void 0;var mSr=(Dt(),ue(Fr)),BX=require("@smithy/util-middleware"),gSr=async(t,e,r)=>({operation:(0,BX.getSmithyContext)(e).operation,region:await(0,BX.normalizeProvider)(t.region)()||(()=>{throw new Error("expected `region` to be configured for `aws.auth#sigv4`")})()});ld.defaultCloudWatchLogsHttpAuthSchemeParametersProvider=gSr;function fSr(t){return{schemeId:"aws.auth#sigv4",signingProperties:{name:"logs",region:t.region},propertiesExtractor:(e,r)=>({signingProperties:{config:e,context:r}})}}var hSr=t=>{let e=[];switch(t.operation){default:e.push(fSr(t))}return e};ld.defaultCloudWatchLogsHttpAuthSchemeProvider=hSr;var SSr=t=>{let e=(0,mSr.resolveAwsSdkSigV4Config)(t);return Object.assign(e,{authSchemePreference:(0,BX.normalizeProvider)(t.authSchemePreference??[])})};ld.resolveHttpAuthSchemeConfig=SSr});var WHe=b((Fnn,ESr)=>{ESr.exports={name:"@aws-sdk/client-cloudwatch-logs",description:"AWS SDK for JavaScript Cloudwatch Logs Client for Node.js, Browser and React Native",version:"3.952.0",scripts:{build:"concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types'","build:cjs":"node ../../scripts/compilation/inline client-cloudwatch-logs","build:es":"tsc -p tsconfig.es.json","build:include:deps":"lerna run --scope $npm_package_name --include-dependencies build","build:types":"tsc -p tsconfig.types.json","build:types:downlevel":"downlevel-dts dist-types dist-types/ts3.4",clean:"rimraf ./dist-* && rimraf *.tsbuildinfo","extract:docs":"api-extractor run --local","generate:client":"node ../../scripts/generate-clients/single-service --solo cloudwatch-logs","test:e2e":"yarn g:vitest run -c vitest.config.e2e.mts","test:e2e:watch":"yarn g:vitest watch -c vitest.config.e2e.mts","test:index":"tsc --noEmit ./test/index-types.ts && node ./test/index-objects.spec.mjs"},main:"./dist-cjs/index.js",types:"./dist-types/index.d.ts",module:"./dist-es/index.js",sideEffects:!1,dependencies:{"@aws-crypto/sha256-browser":"5.2.0","@aws-crypto/sha256-js":"5.2.0","@aws-sdk/core":"3.947.0","@aws-sdk/credential-provider-node":"3.952.0","@aws-sdk/middleware-host-header":"3.936.0","@aws-sdk/middleware-logger":"3.936.0","@aws-sdk/middleware-recursion-detection":"3.948.0","@aws-sdk/middleware-user-agent":"3.947.0","@aws-sdk/region-config-resolver":"3.936.0","@aws-sdk/types":"3.936.0","@aws-sdk/util-endpoints":"3.936.0","@aws-sdk/util-user-agent-browser":"3.936.0","@aws-sdk/util-user-agent-node":"3.947.0","@smithy/config-resolver":"^4.4.3","@smithy/core":"^3.18.7","@smithy/eventstream-serde-browser":"^4.2.5","@smithy/eventstream-serde-config-resolver":"^4.3.5","@smithy/eventstream-serde-node":"^4.2.5","@smithy/fetch-http-handler":"^5.3.6","@smithy/hash-node":"^4.2.5","@smithy/invalid-dependency":"^4.2.5","@smithy/middleware-content-length":"^4.2.5","@smithy/middleware-endpoint":"^4.3.14","@smithy/middleware-retry":"^4.4.14","@smithy/middleware-serde":"^4.2.6","@smithy/middleware-stack":"^4.2.5","@smithy/node-config-provider":"^4.3.5","@smithy/node-http-handler":"^4.4.5","@smithy/protocol-http":"^5.3.5","@smithy/smithy-client":"^4.9.10","@smithy/types":"^4.9.0","@smithy/url-parser":"^4.2.5","@smithy/util-base64":"^4.3.0","@smithy/util-body-length-browser":"^4.2.0","@smithy/util-body-length-node":"^4.2.1","@smithy/util-defaults-mode-browser":"^4.3.13","@smithy/util-defaults-mode-node":"^4.2.16","@smithy/util-endpoints":"^3.2.5","@smithy/util-middleware":"^4.2.5","@smithy/util-retry":"^4.2.5","@smithy/util-utf8":"^4.2.0",tslib:"^2.6.2"},devDependencies:{"@tsconfig/node18":"18.2.4","@types/node":"^18.19.69",concurrently:"7.0.0","downlevel-dts":"0.10.1",rimraf:"3.0.2",typescript:"~5.8.3"},engines:{node:">=18.0.0"},typesVersions:{"<4.0":{"dist-types/*":["dist-types/ts3.4/*"]}},files:["dist-*/**"],author:{name:"AWS SDK for JavaScript Team",url:"https://aws.amazon.com/javascript/"},license:"Apache-2.0",browser:{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.browser"},"react-native":{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.native"},homepage:"https://github.com/aws/aws-sdk-js-v3/tree/main/clients/client-cloudwatch-logs",repository:{type:"git",url:"https://github.com/aws/aws-sdk-js-v3.git",directory:"clients/client-cloudwatch-logs"}}});var cze=b(uU=>{"use strict";Object.defineProperty(uU,"__esModule",{value:!0});uU.ruleSet=void 0;var oze="required",mi="fn",gi="argv",ES="ref",KHe=!0,QHe="isSet",cv="booleanEquals",SS="error",um="endpoint",fu="tree",$X="PartitionResult",XHe="stringEquals",JHe={[oze]:!1,type:"string"},YHe={[oze]:!0,default:!1,type:"boolean"},ZHe={[ES]:"Endpoint"},ize={[mi]:cv,[gi]:[{[ES]:"UseFIPS"},!0]},aze={[mi]:cv,[gi]:[{[ES]:"UseDualStack"},!0]},Bs={},qX={[ES]:"Region"},eze={[mi]:"getAttr",[gi]:[{[ES]:$X},"supportsFIPS"]},tze={[mi]:cv,[gi]:[!0,{[mi]:"getAttr",[gi]:[{[ES]:$X},"supportsDualStack"]}]},rze=[ize],nze=[aze],sze=[qX],ySr={version:"1.0",parameters:{Region:JHe,UseDualStack:YHe,UseFIPS:YHe,Endpoint:JHe},rules:[{conditions:[{[mi]:QHe,[gi]:[ZHe]}],rules:[{conditions:rze,error:"Invalid Configuration: FIPS and custom endpoint are not supported",type:SS},{conditions:nze,error:"Invalid Configuration: Dualstack and custom endpoint are not supported",type:SS},{endpoint:{url:ZHe,properties:Bs,headers:Bs},type:um}],type:fu},{conditions:[{[mi]:QHe,[gi]:sze}],rules:[{conditions:[{[mi]:"aws.partition",[gi]:sze,assign:$X}],rules:[{conditions:[ize,aze],rules:[{conditions:[{[mi]:cv,[gi]:[KHe,eze]},tze],rules:[{endpoint:{url:"https://logs-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:Bs,headers:Bs},type:um}],type:fu},{error:"FIPS and DualStack are enabled, but this partition does not support one or both",type:SS}],type:fu},{conditions:rze,rules:[{conditions:[{[mi]:cv,[gi]:[eze,KHe]}],rules:[{conditions:[{[mi]:XHe,[gi]:[qX,"us-gov-east-1"]}],endpoint:{url:"https://logs.us-gov-east-1.amazonaws.com",properties:Bs,headers:Bs},type:um},{conditions:[{[mi]:XHe,[gi]:[qX,"us-gov-west-1"]}],endpoint:{url:"https://logs.us-gov-west-1.amazonaws.com",properties:Bs,headers:Bs},type:um},{endpoint:{url:"https://logs-fips.{Region}.{PartitionResult#dnsSuffix}",properties:Bs,headers:Bs},type:um}],type:fu},{error:"FIPS is enabled but this partition does not support FIPS",type:SS}],type:fu},{conditions:nze,rules:[{conditions:[tze],rules:[{endpoint:{url:"https://logs.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:Bs,headers:Bs},type:um}],type:fu},{error:"DualStack is enabled but this partition does not support DualStack",type:SS}],type:fu},{endpoint:{url:"https://logs.{Region}.{PartitionResult#dnsSuffix}",properties:Bs,headers:Bs},type:um}],type:fu}],type:fu},{error:"Invalid Configuration: Missing Region",type:SS}]};uU.ruleSet=ySr});var uze=b(lU=>{"use strict";Object.defineProperty(lU,"__esModule",{value:!0});lU.defaultEndpointResolver=void 0;var _Sr=Ta(),GX=require("@smithy/util-endpoints"),CSr=cze(),RSr=new GX.EndpointCache({size:50,params:["Endpoint","Region","UseDualStack","UseFIPS"]}),vSr=(t,e={})=>RSr.get(t,()=>(0,GX.resolveEndpoint)(CSr.ruleSet,{endpointParams:t,logger:e.logger}));lU.defaultEndpointResolver=vSr;GX.customEndpointFunctions.aws=_Sr.awsEndpointFunctions});var pze=b(dU=>{"use strict";Object.defineProperty(dU,"__esModule",{value:!0});dU.getRuntimeConfig=void 0;var xSr=(Dt(),ue(Fr)),PSr=(wa(),ue(Wg)),bSr=require("@smithy/smithy-client"),ISr=require("@smithy/url-parser"),lze=require("@smithy/util-base64"),dze=require("@smithy/util-utf8"),ASr=UX(),TSr=uze(),wSr=t=>({apiVersion:"2014-03-28",base64Decoder:t?.base64Decoder??lze.fromBase64,base64Encoder:t?.base64Encoder??lze.toBase64,disableHostPrefix:t?.disableHostPrefix??!1,endpointProvider:t?.endpointProvider??TSr.defaultEndpointResolver,extensions:t?.extensions??[],httpAuthSchemeProvider:t?.httpAuthSchemeProvider??ASr.defaultCloudWatchLogsHttpAuthSchemeProvider,httpAuthSchemes:t?.httpAuthSchemes??[{schemeId:"aws.auth#sigv4",identityProvider:e=>e.getIdentityProvider("aws.auth#sigv4"),signer:new xSr.AwsSdkSigV4Signer}],logger:t?.logger??new bSr.NoOpLogger,protocol:t?.protocol??new PSr.AwsJson1_1Protocol({defaultNamespace:"com.amazonaws.cloudwatchlogs",serviceTarget:"Logs_20140328",awsQueryCompatible:!1}),serviceId:t?.serviceId??"CloudWatch Logs",urlParser:t?.urlParser??ISr.parseUrl,utf8Decoder:t?.utf8Decoder??dze.fromUtf8,utf8Encoder:t?.utf8Encoder??dze.toUtf8});dU.getRuntimeConfig=wSr});var Eze=b(mU=>{"use strict";Object.defineProperty(mU,"__esModule",{value:!0});mU.getRuntimeConfig=void 0;var DSr=require("tslib"),OSr=DSr.__importDefault(WHe()),mze=(Dt(),ue(Fr)),kSr=O_(),gze=Mc(),pU=require("@smithy/config-resolver"),NSr=require("@smithy/eventstream-serde-node"),LSr=require("@smithy/hash-node"),fze=require("@smithy/middleware-retry"),lm=require("@smithy/node-config-provider"),hze=require("@smithy/node-http-handler"),Sze=require("@smithy/smithy-client"),MSr=require("@smithy/util-body-length-node"),FSr=require("@smithy/util-defaults-mode-node"),BSr=require("@smithy/util-retry"),USr=pze(),qSr=t=>{(0,Sze.emitWarningIfUnsupportedVersion)(process.version);let e=(0,FSr.resolveDefaultsModeConfig)(t),r=()=>e().then(Sze.loadConfigsForDefaultMode),n=(0,USr.getRuntimeConfig)(t);(0,mze.emitWarningIfUnsupportedVersion)(process.version);let s={profile:t?.profile,logger:n.logger};return{...n,...t,runtime:"node",defaultsMode:e,authSchemePreference:t?.authSchemePreference??(0,lm.loadConfig)(mze.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS,s),bodyLengthChecker:t?.bodyLengthChecker??MSr.calculateBodyLength,credentialDefaultProvider:t?.credentialDefaultProvider??kSr.defaultProvider,defaultUserAgentProvider:t?.defaultUserAgentProvider??(0,gze.createDefaultUserAgentProvider)({serviceId:n.serviceId,clientVersion:OSr.default.version}),eventStreamSerdeProvider:t?.eventStreamSerdeProvider??NSr.eventStreamSerdeProvider,maxAttempts:t?.maxAttempts??(0,lm.loadConfig)(fze.NODE_MAX_ATTEMPT_CONFIG_OPTIONS,t),region:t?.region??(0,lm.loadConfig)(pU.NODE_REGION_CONFIG_OPTIONS,{...pU.NODE_REGION_CONFIG_FILE_OPTIONS,...s}),requestHandler:hze.NodeHttpHandler.create(t?.requestHandler??r),retryMode:t?.retryMode??(0,lm.loadConfig)({...fze.NODE_RETRY_MODE_CONFIG_OPTIONS,default:async()=>(await r()).retryMode||BSr.DEFAULT_RETRY_MODE},t),sha256:t?.sha256??LSr.Hash.bind(null,"sha256"),streamCollector:t?.streamCollector??hze.streamCollector,useDualstackEndpoint:t?.useDualstackEndpoint??(0,lm.loadConfig)(pU.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS,s),useFipsEndpoint:t?.useFipsEndpoint??(0,lm.loadConfig)(pU.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS,s),userAgentAppId:t?.userAgentAppId??(0,lm.loadConfig)(gze.NODE_APP_ID_CONFIG_OPTIONS,s)}};mU.getRuntimeConfig=qSr});var BKe=b(w=>{"use strict";var yze=wc(),$Sr=Dc(),GSr=Oc(),_ze=Oa(),jSr=require("@smithy/config-resolver"),vr=require("@smithy/core"),cr=require("@smithy/core/schema"),VSr=require("@smithy/eventstream-serde-config-resolver"),HSr=require("@smithy/middleware-content-length"),V=require("@smithy/middleware-endpoint"),Cze=require("@smithy/middleware-retry"),G=require("@smithy/smithy-client"),Rze=UX(),zSr=Eze(),vze=Na(),xze=require("@smithy/protocol-http"),WSr=t=>Object.assign(t,{useDualstackEndpoint:t.useDualstackEndpoint??!1,useFipsEndpoint:t.useFipsEndpoint??!1,defaultSigningName:"logs"}),W={UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}},KSr=t=>{let e=t.httpAuthSchemes,r=t.httpAuthSchemeProvider,n=t.credentials;return{setHttpAuthScheme(s){let o=e.findIndex(i=>i.schemeId===s.schemeId);o===-1?e.push(s):e.splice(o,1,s)},httpAuthSchemes(){return e},setHttpAuthSchemeProvider(s){r=s},httpAuthSchemeProvider(){return r},setCredentials(s){n=s},credentials(){return n}}},QSr=t=>({httpAuthSchemes:t.httpAuthSchemes(),httpAuthSchemeProvider:t.httpAuthSchemeProvider(),credentials:t.credentials()}),XSr=(t,e)=>{let r=Object.assign(vze.getAwsRegionExtensionConfiguration(t),G.getDefaultExtensionConfiguration(t),xze.getHttpHandlerExtensionConfiguration(t),KSr(t));return e.forEach(n=>n.configure(r)),Object.assign(t,vze.resolveAwsRegionExtensionConfiguration(r),G.resolveDefaultRuntimeConfig(r),xze.resolveHttpHandlerRuntimeConfig(r),QSr(r))},fr=class extends G.Client{config;constructor(...[e]){let r=zSr.getRuntimeConfig(e||{});super(r),this.initConfig=r;let n=WSr(r),s=_ze.resolveUserAgentConfig(n),o=Cze.resolveRetryConfig(s),i=jSr.resolveRegionConfig(o),a=yze.resolveHostHeaderConfig(i),c=V.resolveEndpointConfig(a),u=VSr.resolveEventStreamSerdeConfig(c),l=Rze.resolveHttpAuthSchemeConfig(u),d=XSr(l,e?.extensions||[]);this.config=d,this.middlewareStack.use(cr.getSchemaSerdePlugin(this.config)),this.middlewareStack.use(_ze.getUserAgentPlugin(this.config)),this.middlewareStack.use(Cze.getRetryPlugin(this.config)),this.middlewareStack.use(HSr.getContentLengthPlugin(this.config)),this.middlewareStack.use(yze.getHostHeaderPlugin(this.config)),this.middlewareStack.use($Sr.getLoggerPlugin(this.config)),this.middlewareStack.use(GSr.getRecursionDetectionPlugin(this.config)),this.middlewareStack.use(vr.getHttpAuthSchemeEndpointRuleSetPlugin(this.config,{httpAuthSchemeParametersProvider:Rze.defaultCloudWatchLogsHttpAuthSchemeParametersProvider,identityProviderConfigProvider:async p=>new vr.DefaultIdentityProviderConfig({"aws.auth#sigv4":p.credentials})})),this.middlewareStack.use(vr.getHttpSigningPlugin(this.config))}destroy(){super.destroy()}},ur=class Pze extends G.ServiceException{constructor(e){super(e),Object.setPrototypeOf(this,Pze.prototype)}},bze=class Ize extends ur{name="AccessDeniedException";$fault="client";constructor(e){super({name:"AccessDeniedException",$fault:"client",...e}),Object.setPrototypeOf(this,Ize.prototype)}},Aze=class Tze extends ur{name="InvalidParameterException";$fault="client";constructor(e){super({name:"InvalidParameterException",$fault:"client",...e}),Object.setPrototypeOf(this,Tze.prototype)}},wze=class Dze extends ur{name="OperationAbortedException";$fault="client";constructor(e){super({name:"OperationAbortedException",$fault:"client",...e}),Object.setPrototypeOf(this,Dze.prototype)}},Oze=class kze extends ur{name="ResourceNotFoundException";$fault="client";constructor(e){super({name:"ResourceNotFoundException",$fault:"client",...e}),Object.setPrototypeOf(this,kze.prototype)}},Nze=class Lze extends ur{name="ServiceUnavailableException";$fault="server";constructor(e){super({name:"ServiceUnavailableException",$fault:"server",...e}),Object.setPrototypeOf(this,Lze.prototype)}},Mze=class Fze extends ur{name="InternalServerException";$fault="server";constructor(e){super({name:"InternalServerException",$fault:"server",...e}),Object.setPrototypeOf(this,Fze.prototype)}},Bze=class Uze extends ur{name="ThrottlingException";$fault="client";constructor(e){super({name:"ThrottlingException",$fault:"client",...e}),Object.setPrototypeOf(this,Uze.prototype)}},qze=class $ze extends ur{name="ValidationException";$fault="client";constructor(e){super({name:"ValidationException",$fault:"client",...e}),Object.setPrototypeOf(this,$ze.prototype)}},Gze=class jze extends ur{name="InvalidOperationException";$fault="client";constructor(e){super({name:"InvalidOperationException",$fault:"client",...e}),Object.setPrototypeOf(this,jze.prototype)}},Vze=class Hze extends ur{name="ConflictException";$fault="client";constructor(e){super({name:"ConflictException",$fault:"client",...e}),Object.setPrototypeOf(this,Hze.prototype)}},zze=class Wze extends ur{name="ServiceQuotaExceededException";$fault="client";constructor(e){super({name:"ServiceQuotaExceededException",$fault:"client",...e}),Object.setPrototypeOf(this,Wze.prototype)}},Kze=class Qze extends ur{name="LimitExceededException";$fault="client";constructor(e){super({name:"LimitExceededException",$fault:"client",...e}),Object.setPrototypeOf(this,Qze.prototype)}},Xze=class Jze extends ur{name="ResourceAlreadyExistsException";$fault="client";constructor(e){super({name:"ResourceAlreadyExistsException",$fault:"client",...e}),Object.setPrototypeOf(this,Jze.prototype)}},Yze=class Zze extends ur{name="DataAlreadyAcceptedException";$fault="client";expectedSequenceToken;constructor(e){super({name:"DataAlreadyAcceptedException",$fault:"client",...e}),Object.setPrototypeOf(this,Zze.prototype),this.expectedSequenceToken=e.expectedSequenceToken}},eWe=class tWe extends ur{name="InternalStreamingException";$fault="client";constructor(e){super({name:"InternalStreamingException",$fault:"client",...e}),Object.setPrototypeOf(this,tWe.prototype)}},rWe=class nWe extends ur{name="InvalidSequenceTokenException";$fault="client";expectedSequenceToken;constructor(e){super({name:"InvalidSequenceTokenException",$fault:"client",...e}),Object.setPrototypeOf(this,nWe.prototype),this.expectedSequenceToken=e.expectedSequenceToken}},sWe=class oWe extends ur{name="UnrecognizedClientException";$fault="client";constructor(e){super({name:"UnrecognizedClientException",$fault:"client",...e}),Object.setPrototypeOf(this,oWe.prototype)}},iWe=class aWe extends ur{name="SessionStreamingException";$fault="client";constructor(e){super({name:"SessionStreamingException",$fault:"client",...e}),Object.setPrototypeOf(this,aWe.prototype)}},cWe=class uWe extends ur{name="SessionTimeoutException";$fault="client";constructor(e){super({name:"SessionTimeoutException",$fault:"client",...e}),Object.setPrototypeOf(this,uWe.prototype)}},lWe=class dWe extends ur{name="MalformedQueryException";$fault="client";queryCompileError;constructor(e){super({name:"MalformedQueryException",$fault:"client",...e}),Object.setPrototypeOf(this,dWe.prototype),this.queryCompileError=e.queryCompileError}},pWe=class mWe extends ur{name="TooManyTagsException";$fault="client";resourceName;constructor(e){super({name:"TooManyTagsException",$fault:"client",...e}),Object.setPrototypeOf(this,mWe.prototype),this.resourceName=e.resourceName}},JSr="Anomaly",YSr="AnomalyDetector",ZSr="AccessDeniedException",eEr="AnomalyDetectors",tEr="AllowedFields",rEr="AddKeys",nEr="AddKeyEntry",sEr="AddKeyEntries",oEr="AssociateKmsKey",iEr="AssociateKmsKeyRequest",aEr="AggregateLogGroupSummary",cEr="AggregateLogGroupSummaries",uEr="AccountPolicy",lEr="AccountPolicies",dEr="AssociateSourceToS3TableIntegration",pEr="AssociateSourceToS3TableIntegrationRequest",mEr="AssociateSourceToS3TableIntegrationResponse",gEr="Anomalies",fEr="CreateDelivery",hEr="CreateDeliveryRequest",SEr="CreateDeliveryResponse",EEr="ConflictException",yEr="CancelExportTask",_Er="CancelExportTaskRequest",CEr="CreateExportTaskRequest",REr="CreateExportTaskResponse",vEr="CreateExportTask",xEr="CancelImportTask",PEr="CancelImportTaskRequest",bEr="CancelImportTaskResponse",IEr="CreateImportTaskRequest",AEr="CreateImportTaskResponse",TEr="CreateImportTask",wEr="CreateLogAnomalyDetector",DEr="CreateLogAnomalyDetectorRequest",OEr="CreateLogAnomalyDetectorResponse",kEr="CreateLogGroup",NEr="CreateLogGroupRequest",LEr="CreateLogStream",MEr="CreateLogStreamRequest",FEr="CreateScheduledQuery",BEr="CreateScheduledQueryRequest",UEr="CreateScheduledQueryResponse",qEr="CSV",$Er="ConfigurationTemplate",GEr="ConfigurationTemplateDeliveryConfigValues",jEr="ConfigurationTemplates",VEr="CopyValue",HEr="CopyValueEntry",zEr="CopyValueEntries",WEr="Delivery",KEr="DataAlreadyAcceptedException",QEr="DeleteAccountPolicy",XEr="DeleteAccountPolicyRequest",JEr="DescribeAccountPoliciesRequest",YEr="DescribeAccountPoliciesResponse",ZEr="DescribeAccountPolicies",eyr="DestinationConfiguration",tyr="DescribeConfigurationTemplates",ryr="DescribeConfigurationTemplatesRequest",nyr="DescribeConfigurationTemplatesResponse",syr="DeliveryDestination",oyr="DeliveryDestinationConfiguration",iyr="DeleteDeliveryDestination",ayr="DeleteDeliveryDestinationPolicy",cyr="DeleteDeliveryDestinationPolicyRequest",uyr="DeleteDeliveryDestinationRequest",lyr="DescribeDeliveryDestinationsRequest",dyr="DescribeDeliveryDestinationsResponse",pyr="DescribeDeliveryDestinations",myr="DeleteDataProtectionPolicy",gyr="DeleteDataProtectionPolicyRequest",fyr="DeleteDeliveryRequest",hyr="DeleteDestinationRequest",Syr="DescribeDeliveriesRequest",Eyr="DescribeDeliveriesResponse",yyr="DescribeDestinationsRequest",_yr="DescribeDestinationsResponse",Cyr="DeleteDeliverySource",Ryr="DeleteDeliverySourceRequest",vyr="DescribeDeliverySourcesRequest",xyr="DescribeDeliverySourcesResponse",Pyr="DescribeDeliverySources",byr="DeliveryDestinations",Iyr="DeleteDelivery",Ayr="DeleteDestination",Tyr="DescribeDeliveries",wyr="DescribeDestinations",Dyr="DescribeExportTasks",Oyr="DescribeExportTasksRequest",kyr="DescribeExportTasksResponse",Nyr="DescribeFieldIndexes",Lyr="DescribeFieldIndexesRequest",Myr="DescribeFieldIndexesResponse",Fyr="DeleteIntegration",Byr="DeleteIndexPolicy",Uyr="DeleteIndexPolicyRequest",qyr="DeleteIndexPolicyResponse",$yr="DescribeIndexPoliciesRequest",Gyr="DescribeIndexPoliciesResponse",jyr="DescribeIndexPolicies",Vyr="DeleteIntegrationRequest",Hyr="DeleteIntegrationResponse",zyr="DescribeImportTasks",Wyr="DescribeImportTaskBatches",Kyr="DescribeImportTaskBatchesRequest",Qyr="DescribeImportTaskBatchesResponse",Xyr="DescribeImportTasksRequest",Jyr="DescribeImportTasksResponse",Yyr="DeleteKeys",Zyr="DisassociateKmsKey",e_r="DisassociateKmsKeyRequest",t_r="DeleteLogAnomalyDetector",r_r="DeleteLogAnomalyDetectorRequest",n_r="DeleteLogGroup",s_r="DeleteLogGroupRequest",o_r="DescribeLogGroupsRequest",i_r="DescribeLogGroupsResponse",a_r="DescribeLogGroups",c_r="DeleteLogStream",u_r="DeleteLogStreamRequest",l_r="DescribeLogStreamsRequest",d_r="DescribeLogStreamsResponse",p_r="DescribeLogStreams",m_r="DeleteMetricFilter",g_r="DeleteMetricFilterRequest",f_r="DescribeMetricFiltersRequest",h_r="DescribeMetricFiltersResponse",S_r="DescribeMetricFilters",E_r="DestinationNamePrefix",y_r="DescribeQueries",__r="DeleteQueryDefinition",C_r="DeleteQueryDefinitionRequest",R_r="DeleteQueryDefinitionResponse",v_r="DescribeQueryDefinitionsRequest",x_r="DescribeQueryDefinitionsResponse",P_r="DescribeQueryDefinitions",b_r="DescribeQueriesRequest",I_r="DescribeQueriesResponse",A_r="DeleteResourcePolicy",T_r="DeleteResourcePolicyRequest",w_r="DeleteRetentionPolicyRequest",D_r="DescribeResourcePoliciesRequest",O_r="DescribeResourcePoliciesResponse",k_r="DeleteRetentionPolicy",N_r="DescribeResourcePolicies",L_r="DataSource",M_r="DataSourceFilter",F_r="DeleteSubscriptionFilterRequest",B_r="DescribeSubscriptionFiltersRequest",U_r="DescribeSubscriptionFiltersResponse",q_r="DisassociateSourceFromS3TableIntegration",$_r="DisassociateSourceFromS3TableIntegrationRequest",G_r="DisassociateSourceFromS3TableIntegrationResponse",j_r="DataSourceFilters",V_r="DeleteSubscriptionFilter",H_r="DescribeSubscriptionFilters",z_r="DeleteScheduledQuery",W_r="DeleteScheduledQueryRequest",K_r="DeleteScheduledQueryResponse",Q_r="DeliverySource",X_r="DeliverySources",J_r="DeleteTransformer",Y_r="DateTimeConverter",Z_r="DeleteTransformerRequest",eCr="Destination",tCr="Deliveries",rCr="Destinations",nCr="Entity",sCr="ExportTask",oCr="ExportTaskExecutionInfo",iCr="ExportTaskStatus",aCr="ExportTasks",cCr="FieldsData",uCr="FieldIndex",lCr="FieldIndexes",dCr="FilteredLogEvent",pCr="FilterLogEventsRequest",mCr="FilterLogEventsResponse",gCr="FilteredLogEvents",fCr="FilterLogEvents",hCr="Grok",SCr="GetDelivery",ECr="GetDeliveryDestination",yCr="GetDeliveryDestinationPolicy",_Cr="GetDeliveryDestinationPolicyRequest",CCr="GetDeliveryDestinationPolicyResponse",RCr="GetDeliveryDestinationRequest",vCr="GetDeliveryDestinationResponse",xCr="GetDataProtectionPolicy",PCr="GetDataProtectionPolicyRequest",bCr="GetDataProtectionPolicyResponse",ICr="GetDeliveryRequest",ACr="GetDeliveryResponse",TCr="GetDeliverySource",wCr="GetDeliverySourceRequest",DCr="GetDeliverySourceResponse",OCr="GroupingIdentifier",kCr="GetIntegrationRequest",NCr="GetIntegrationResponse",LCr="GetIntegration",MCr="GroupingIdentifiers",FCr="GetLogAnomalyDetector",BCr="GetLogAnomalyDetectorRequest",UCr="GetLogAnomalyDetectorResponse",qCr="GetLogEvents",$Cr="GetLogEventsRequest",GCr="GetLogEventsResponse",jCr="GetLogFields",VCr="GetLogFieldsRequest",HCr="GetLogFieldsResponse",zCr="GetLogGroupFields",WCr="GetLogGroupFieldsRequest",KCr="GetLogGroupFieldsResponse",QCr="GetLogObject",XCr="GetLogObjectRequest",JCr="GetLogObjectResponseStream",YCr="GetLogObjectResponse",ZCr="GetLogRecord",e0r="GetLogRecordRequest",t0r="GetLogRecordResponse",r0r="GetQueryResults",n0r="GetQueryResultsRequest",s0r="GetQueryResultsResponse",o0r="GetScheduledQuery",i0r="GetScheduledQueryHistory",a0r="GetScheduledQueryHistoryRequest",c0r="GetScheduledQueryHistoryResponse",u0r="GetScheduledQueryRequest",l0r="GetScheduledQueryResponse",d0r="GetTransformer",p0r="GetTransformerRequest",m0r="GetTransformerResponse",g0r="Import",f0r="ImportBatch",h0r="ImportBatchList",S0r="IntegrationDetails",E0r="ImportFilter",y0r="ImportList",_0r="InputLogEvent",C0r="InputLogEvents",R0r="InvalidOperationException",v0r="IndexPolicy",x0r="InvalidParameterException",P0r="IndexPolicies",b0r="ImportStatistics",I0r="InternalServerException",gWe="InternalStreamingException",A0r="InvalidSequenceTokenException",T0r="IntegrationSummary",w0r="IntegrationSummaries",D0r="ListAnomalies",O0r="ListAggregateLogGroupSummaries",k0r="ListAggregateLogGroupSummariesRequest",N0r="ListAggregateLogGroupSummariesResponse",L0r="ListAnomaliesRequest",M0r="ListAnomaliesResponse",F0r="LowerCaseString",B0r="LogEvent",U0r="LimitExceededException",q0r="LogFieldsList",$0r="LogFieldsListItem",G0r="LogFieldType",j0r="LogGroup",V0r="LogGroupField",H0r="LogGroupFieldList",z0r="LogGroupSummary",W0r="LogGroupSummaries",K0r="LogGroups",Q0r="ListIntegrations",X0r="ListIntegrationsRequest",J0r="ListIntegrationsResponse",Y0r="ListLogAnomalyDetectors",Z0r="ListLogAnomalyDetectorsRequest",eRr="ListLogAnomalyDetectorsResponse",tRr="ListLogGroups",rRr="ListLogGroupsForQuery",nRr="ListLogGroupsForQueryRequest",sRr="ListLogGroupsForQueryResponse",oRr="ListLogGroupsRequest",iRr="ListLogGroupsResponse",aRr="LogStream",cRr="ListSourcesForS3TableIntegration",uRr="ListSourcesForS3TableIntegrationRequest",lRr="ListSourcesForS3TableIntegrationResponse",dRr="ListScheduledQueries",pRr="ListScheduledQueriesRequest",mRr="ListScheduledQueriesResponse",gRr="LogSamples",fRr="LogStreams",hRr="ListTagsForResource",SRr="ListTagsForResourceRequest",ERr="ListTagsForResourceResponse",yRr="ListTagsLogGroup",_Rr="ListTagsLogGroupRequest",CRr="ListTagsLogGroupResponse",RRr="ListToMap",vRr="LiveTailSessionLogEvent",xRr="LiveTailSessionMetadata",PRr="LiveTailSessionResults",bRr="LiveTailSessionStart",IRr="LiveTailSessionUpdate",ARr="MetricFilter",TRr="MetricFilterMatches",wRr="MetricFilterMatchRecord",DRr="MetricFilters",ORr="MoveKeys",kRr="MoveKeyEntry",NRr="MoveKeyEntries",LRr="MalformedQueryException",MRr="MetricTransformation",FRr="MetricTransformations",BRr="OperationAbortedException",URr="OutputLogEvent",qRr="OutputLogEvents",$Rr="OpenSearchApplication",GRr="OpenSearchCollection",jRr="OpenSearchDataAccessPolicy",VRr="OpenSearchDataSource",HRr="OpenSearchEncryptionPolicy",zRr="OpenSearchIntegrationDetails",WRr="OpenSearchLifecyclePolicy",KRr="OpenSearchNetworkPolicy",QRr="OpenSearchResourceConfig",XRr="OpenSearchResourceStatus",JRr="OpenSearchWorkspace",YRr="Policy",ZRr="PutAccountPolicy",evr="PutAccountPolicyRequest",tvr="PutAccountPolicyResponse",rvr="ParseCloudfront",nvr="PutDestination",svr="PutDeliveryDestination",ovr="PutDeliveryDestinationPolicy",ivr="PutDeliveryDestinationPolicyRequest",avr="PutDeliveryDestinationPolicyResponse",cvr="PutDeliveryDestinationRequest",uvr="PutDeliveryDestinationResponse",lvr="PutDestinationPolicy",dvr="PutDataProtectionPolicy",pvr="PutDataProtectionPolicyRequest",mvr="PutDataProtectionPolicyResponse",gvr="PutDestinationPolicyRequest",fvr="PutDestinationRequest",hvr="PutDestinationResponse",Svr="PutDeliverySource",Evr="PutDeliverySourceRequest",yvr="PutDeliverySourceResponse",_vr="PutIntegration",Cvr="PutIndexPolicy",Rvr="PutIndexPolicyRequest",vvr="PutIndexPolicyResponse",xvr="PutIntegrationRequest",Pvr="PutIntegrationResponse",bvr="ParseJSON",Ivr="ParseKeyValue",Avr="PutLogEvents",Tvr="PutLogEventsRequest",wvr="PutLogEventsResponse",Dvr="PutLogGroupDeletionProtection",Ovr="PutLogGroupDeletionProtectionRequest",kvr="PutMetricFilter",Nvr="PutMetricFilterRequest",Lvr="ParsePostgres",Mvr="PutQueryDefinition",Fvr="PutQueryDefinitionRequest",Bvr="PutQueryDefinitionResponse",Uvr="ParseRoute53",qvr="PutResourcePolicy",$vr="PutResourcePolicyRequest",Gvr="PutResourcePolicyResponse",jvr="PutRetentionPolicyRequest",Vvr="PutRetentionPolicy",Hvr="PutSubscriptionFilter",zvr="PutSubscriptionFilterRequest",Wvr="PatternToken",Kvr="ParseToOCSF",Qvr="PutTransformerRequest",Xvr="PatternTokens",Jvr="PutTransformer",Yvr="ParseVPC",Zvr="ParseWAF",exr="Processor",txr="Processors",rxr="QueryCompileError",nxr="QueryCompileErrorLocation",sxr="QueryDefinition",oxr="QueryDefinitionList",ixr="QueryInfo",axr="QueryInfoList",cxr="QueryResults",uxr="QueryStatistics",lxr="ResourceAlreadyExistsException",dxr="ResourceConfig",pxr="RejectedEntityInfo",mxr="RecordField",gxr="ResultField",fxr="RenameKeys",hxr="RenameKeyEntry",Sxr="RenameKeyEntries",Exr="RejectedLogEventsInfo",yxr="ResourceNotFoundException",_xr="ResourcePolicy",Cxr="ResourcePolicies",Rxr="ResultRows",vxr="S3Configuration",xxr="S3DeliveryConfiguration",Pxr="SubscriptionFilter",bxr="SubscriptionFilters",Ixr="SearchedLogStream",Axr="SearchedLogStreams",Txr="StartLiveTail",wxr="StartLiveTailRequest",Dxr="StartLiveTailResponseStream",Oxr="StartLiveTailResponse",kxr="SuppressionPeriod",Nxr="StartQuery",Lxr="ScheduledQueryDestination",Mxr="ScheduledQueryDestinationList",Fxr="ServiceQuotaExceededException",Bxr="StartQueryRequest",Uxr="StartQueryResponse",qxr="StopQueryRequest",$xr="StopQueryResponse",Gxr="ScheduledQuerySummary",jxr="ScheduledQuerySummaryList",Vxr="StopQuery",Hxr="SplitString",fWe="SessionStreamingException",zxr="SplitStringEntry",Wxr="SplitStringEntries",Kxr="SubstituteStringEntry",Qxr="SubstituteStringEntries",Xxr="SubstituteString",hWe="SessionTimeoutException",Jxr="S3TableIntegrationSource",Yxr="S3TableIntegrationSources",Zxr="ServiceUnavailableException",ePr="TypeConverter",tPr="TypeConverterEntry",rPr="TypeConverterEntries",nPr="ThrottlingException",sPr="TriggerHistoryRecord",oPr="TriggerHistoryRecordList",iPr="TransformedLogs",aPr="TagLogGroup",cPr="TagLogGroupRequest",uPr="TransformedLogRecord",lPr="TestMetricFilter",dPr="TestMetricFilterRequest",pPr="TestMetricFilterResponse",mPr="TooManyTagsException",gPr="TagResource",fPr="TagResourceRequest",hPr="TrimString",SPr="TestTransformer",EPr="TestTransformerRequest",yPr="TestTransformerResponse",_Pr="UpdateAnomaly",CPr="UpdateAnomalyRequest",RPr="UnrecognizedClientException",vPr="UpperCaseString",xPr="UpdateDeliveryConfiguration",PPr="UpdateDeliveryConfigurationRequest",bPr="UpdateDeliveryConfigurationResponse",IPr="UpdateLogAnomalyDetector",APr="UpdateLogAnomalyDetectorRequest",TPr="UntagLogGroup",wPr="UntagLogGroupRequest",DPr="UntagResource",OPr="UntagResourceRequest",kPr="UpdateScheduledQuery",NPr="UpdateScheduledQueryRequest",LPr="UpdateScheduledQueryResponse",MPr="ValidationException",FPr="active",SWe="applicationArn",BPr="allowedActionForAllowVendedLogsDeliveryForResource",UPr="anomalyDetectors",dd="anomalyDetectorArn",EWe="anomalyDetectorStatus",qPr="applicationEndpoint",$Pr="allowedFields",GPr="allowedFieldDelimiters",jPr="accountId",Xq="accountIdentifiers",yWe="anomalyId",VPr="applicationId",HPr="addKeys",zPr="aggregateLogGroupSummaries",WPr="allowedOutputFormats",Jq="applyOnTransformedLogs",KPr="accountPolicies",jX="accessPolicy",QPr="accountPolicy",XPr="allowedSuffixPathFields",Yq="anomalyVisibilityTime",JPr="anomalies",YPr="application",yS="arn",ZPr="attributes",ebr="baseline",tbr="batchId",rbr="batchImportStatus",nbr="bytesImported",sbr="bytesScanned",Vr="client",obr="collectionArn",ibr="collectionEndpoint",_o="creationTime",_We="creationTimeStamp",abr="createdTimeStamp",cbr="clientToken",ubr="configurationTemplates",lbr="completionTime",dbr="createTime",pbr="copyValue",mbr="columns",gbr="code",fbr="collection",hbr="csv",Iv="description",CWe="destinationArn",Av="destinationConfiguration",Sbr="deliveryDestinations",RWe="deliveryDestinationArn",vWe="deliveryDestinationConfiguration",Ebr="defaultDeliveryConfigValues",VX="deliveryDestinationName",xWe="deliveryDestinationPolicy",Zq="deliveryDestinationType",ybr="deliveryDestinationTypes",PWe="deliveryDestination",bWe="destinationIdentifier",_br="deleteKeys",HX="detectorName",e$="destinationName",IWe="destinationPrefix",zX="deletionProtectionEnabled",Cbr="dataProtectionStatus",Rbr="destinationResourceArn",WX="dataSource",AWe="deliverySourceName",TWe="dataSourceName",vbr="dataSourceRoleArn",xbr="dataSourceType",wWe="dataSources",Pbr="deliverySources",DWe="deliverySource",bbr="destinationType",Ibr="dateTimeConverter",Abr="dynamicTokenPosition",Tbr="defaultValue",wbr="dashboardViewerPrincipals",Dbr="data",OWe="delivery",kWe="delimiter",Obr="deliveries",Tv="destination",kbr="descending",NWe="destinations",Nbr="dimensions",LWe="distribution",xr="error",Lbr="estimatedBytesSkipped",Mbr="endCharOffset",Fbr="endEventTime",t$="evaluationFrequency",Bbr="enableHiveCompatiblePath",Ubr="executionInfo",qbr="eventId",$br="encryptionKey",Gbr="expiredLogEventEndIndex",r$="errorMessage",MWe="eventMessage",FWe="eventNumber",jbr="encryptionPolicy",n$="executionRoleArn",BWe="expectedRevisionId",Vbr="estimatedRecordsSkipped",Hbr="executionStatuses",UWe="emitSystemFields",qWe="emitSystemFieldDimensions",$We="expectedSequenceToken",zbr="eventSource",Wbr="executionStatus",Kbr="exportTasks",s$="endTime",Qbr="errorType",Xbr="extractedValues",Jbr="element",dm="entries",Ybr="enabled",GWe="endpoint",Zbr="entity",eIr="enumerations",jWe="events",KX="from",wv="fieldDelimiter",tIr="flattenedElement",rIr="firstEventTime",nIr="firstEventTimestamp",sIr="fieldIndexes",oIr="fieldIndexName",iIr="fieldIndexNames",aIr="filterLogGroupArn",_S="filterName",VWe="filterNamePrefix",ic="filterPattern",cIr="firstSeen",o$="fieldSelectionCriteria",uIr="fieldStream",lIr="forceUpdate",HWe="fields",dIr="field",pIr="flatten",mIr="force",gIr="grok",fIr="groupBy",hIr="groupingIdentifiers",SIr="histogram",zWe="httpError",pd="identifier",WWe="integrationArn",EIr="importBatches",yIr="integrationDetails",KWe="importDestinationArn",_Ir="isDynamic",QWe="importFilter",pm="importId",QX="includeLinkedAccounts",CS="integrationName",CIr="integrationNamePrefix",RIr="indexPolicies",vIr="isPatternLevelSuppression",xIr="inheritedProperties",PIr="indexPolicy",bIr="importRoleArn",XWe="importStatistics",i$="importSourceArn",XX="importStatus",a$="integrationStatus",IIr="integrationSummaries",JX="ingestionTime",AIr="inferredTokenName",c$="integrationType",u$="id",TIr="imports",wIr="interleaved",Dv="key",DIr="keyAttributes",OIr="kmsKeyArn",RS="kmsKeyId",kIr="keyPrefix",NIr="keyValueDelimiter",LIr="locale",MIr="lowerCaseString",FIr="logEvents",JWe="logEventFilterPattern",YWe="logEventMessages",YX="lastExecutionStatus",BIr="lastEventTime",UIr="lastEventTimestamp",qIr="logFields",$Ir="logFieldName",GIr="logFieldType",ZWe="logGroups",eKe="logGroupArn",l$="logGroupArnList",jIr="logGroupCount",vS="logGroupClass",VIr="logGroupFields",ua="logGroupIdentifiers",Hr="logGroupIdentifier",Et="logGroupName",HIr="logGroupNamePrefix",ZX="logGroupNamePattern",eJ="logGroupNames",zIr="logGroupsScanned",WIr="lastIngestionTime",KIr="lastModified",QIr="lastModifiedTime",tKe="lastModifiedTimeStamp",XIr="logObjectPointer",JIr="lifecyclePolicy",YIr="logRecord",ZIr="logRecordPointer",eAr="lastSeen",md="logStreamName",tJ="logStreamNamePrefix",rKe="logStreamNamePrefixes",rJ="logStreamNames",tAr="lastScanTime",rAr="logSamples",nAr="logStreams",nJ="logType",sAr="listToMap",sJ="lastTriggeredTime",oAr="logTypes",hu="lastUpdatedTime",iAr="lastUpdateTime",Mr="limit",aAr="location",Lt="message",cAr="metricFilters",uAr="metricFilterCount",lAr="moveKeys",nKe="metricName",sKe="metricNamespace",dAr="matchPatterns",xS="maxResults",oKe="metricTransformations",pAr="metricValue",mAr="mappingVersion",gAr="match",fAr="mandatory",hAr="matches",zr="name",SAr="nextBackwardToken",EAr="nextForwardToken",yAr="nonMatchValue",_Ar="networkPolicy",CAr="nextSequenceToken",Re="nextToken",RAr="orderBy",iKe="outputFormat",Ov="overwriteIfExists",vAr="openSearchIntegrationDetails",xAr="openSearchResourceConfig",PAr="ocsfVersion",bAr="priority",IAr="parseCloudfront",Su="policyDocument",aKe="patternId",AAr="processedIdentifier",TAr="parseJSON",wAr="parseKeyValue",fi="policyName",DAr="parsePostgres",OAr="patternRegex",kAr="parseRoute53",NAr="patternString",cKe="policyScope",d$="policyType",LAr="parseToOCSF",MAr="patternTokens",FAr="parseVPC",BAr="parseWAF",UAr="percent",uKe="policy",qAr="queries",$Ar="quoteCharacter",GAr="queryCompileError",jAr="queryDefinitions",p$="queryDefinitionId",VAr="queryDefinitionNamePrefix",PS="queryId",la="queryLanguage",gd="queryString",HAr="results",fd="resourceArn",zAr="resourceArns",kv="roleArn",WAr="resourceConfig",KAr="retentionDays",QAr="rejectedEntityInfo",m$="recordFields",lKe="resourceIdentifier",dKe="retentionInDays",XAr="requestId",pKe="revisionId",JAr="renameKeys",YAr="rejectedLogEventsInfo",ZAr="recordsMatched",eTr="resourceName",tTr="resourcePolicies",rTr="resourcePolicy",nTr="recordsScanned",sTr="responseStream",oTr="resourceType",iTr="resourceTypes",aTr="renameTo",mKe="scope",gKe="storedBytes",fKe="selectionCriteria",cTr="startCharOffset",uTr="searchedCompletely",lTr="s3Configuration",dTr="statusCode",pTr="suppressedDate",g$="s3DeliveryConfiguration",Nv="scheduleExpression",f$="scheduleEndTime",mTr="startEventTime",gTr="subscriptionFilters",fTr="startFromHead",hTr="sessionId",STr="searchedLogStreams",ETr="sessionMetadata",yTr="statusMessage",_Tr="suffixPath",CTr="suppressionPeriod",RTr="scheduledQueries",Lv="scheduledQueryArn",vTr="sessionResults",xTr="statusReason",PTr="suppressionState",h$="scheduleStartTime",bTr="sessionStart",ITr="splitString",ATr="substituteString",TTr="sourceTimezone",S$="startTimeOffset",wTr="sequenceToken",E$="startTime",DTr="suppressionType",OTr="suppressedUntil",kTr="sessionUpdate",NTr="suppressionUnit",LTr="sampled",oJ="service",hKe="server",SKe="smithy.ts.sdk.synthetic.com.amazonaws.cloudwatchlogs",Sn="source",MTr="sources",hd="state",zn="status",FTr="statistics",EKe="streaming",BTr="suppressed",yKe="success",y$="target",_Ke="targetArn",iJ="transformerConfig",UTr="typeConverter",qTr="transformedEventMessage",$Tr="targetFormat",GTr="triggerHistory",_$="taskId",jTr="tagKeys",VTr="transformedLogs",CKe="taskName",HTr="tooNewLogEventStartIndex",zTr="tooOldLogEventEndIndex",WTr="tokenString",KTr="trimString",QTr="targetTimezone",XTr="triggeredTimestamp",ls="tags",Mv="timezone",Fv="timestamp",JTr="time",aJ="to",Bv="type",C$="unmask",YTr="upperCaseString",ZTr="uploadSequenceToken",ewr="unit",R$="value",twr="valueKey",rwr="workspace",nwr="workspaceId",v$="withKeys",h="com.amazonaws.cloudwatchlogs",swr=[-3,h,ZSr,{[xr]:Vr},[Lt],[0]];cr.TypeRegistry.for(h).registerError(swr,bze);var RKe=[3,h,uEr,0,[fi,Su,hu,d$,mKe,fKe,jPr],[0,0,1,0,0,0,0]],owr=[3,h,nEr,0,[Dv,R$,Ov],[0,0,2]],iwr=[3,h,rEr,0,[dm],[()=>ALr]],awr=[3,h,aEr,0,[jIr,hIr],[1,()=>GLr]],cwr=[3,h,JSr,0,[yWe,aKe,dd,NAr,OAr,bAr,cIr,eAr,Iv,FPr,hd,SIr,rAr,MAr,l$,BTr,pTr,OTr,vIr],[0,0,0,0,0,0,1,1,0,2,0,129,()=>YLr,()=>sMr,64,2,1,1,2]],uwr=[3,h,YSr,0,[dd,HX,l$,t$,ic,EWe,RS,_We,tKe,Yq],[0,0,64,0,0,0,0,1,1,1]],lwr=[3,h,iEr,0,[Et,RS,lKe],[0,0,0]],dwr=[3,h,pEr,0,[WWe,WX],[0,()=>vKe]],pwr=[3,h,mEr,0,[pd],[0]],mwr=[3,h,_Er,0,[_$],[0]],gwr=[3,h,PEr,0,[pm],[0]],fwr=[3,h,bEr,0,[pm,XWe,XX,_o,hu],[0,()=>IKe,0,1,1]],hwr=[3,h,$Er,0,[oJ,nJ,oTr,Zq,Ebr,$Pr,WPr,BPr,GPr,XPr],[0,0,0,0,()=>Swr,()=>wLr,64,0,64,64]],Swr=[3,h,GEr,0,[m$,wv,g$],[64,0,()=>x$]],Ewr=[-3,h,EEr,{[xr]:Vr},[Lt],[0]];cr.TypeRegistry.for(h).registerError(Ewr,Vze);var ywr=[3,h,VEr,0,[dm],[()=>NLr]],_wr=[3,h,HEr,0,[Sn,y$,Ov],[0,0,2]],Cwr=[3,h,hEr,0,[AWe,RWe,m$,wv,g$,ls],[0,0,64,0,()=>x$,128]],Rwr=[3,h,SEr,0,[OWe],[()=>cJ]],vwr=[3,h,CEr,0,[CKe,Et,tJ,KX,aJ,Tv,IWe],[0,0,0,1,1,0,0]],xwr=[3,h,REr,0,[_$],[0]],Pwr=[3,h,IEr,0,[i$,bIr,QWe],[0,0,()=>bKe]],bwr=[3,h,AEr,0,[pm,KWe,_o],[0,0,1]],Iwr=[3,h,DEr,0,[l$,HX,t$,ic,RS,Yq,ls],[64,0,0,0,0,1,128]],Awr=[3,h,OEr,0,[dd],[0]],Twr=[3,h,NEr,0,[Et,RS,ls,vS,zX],[0,0,128,0,2]],wwr=[3,h,MEr,0,[Et,md],[0,0]],Dwr=[3,h,BEr,0,[zr,Iv,la,gd,ua,Nv,Mv,S$,Av,h$,f$,n$,hd,ls],[0,0,0,0,64,0,0,1,()=>Uv,1,1,0,0,128]],Owr=[3,h,UEr,0,[Lv,hd],[0,0]],kwr=[3,h,qEr,0,[$Ar,kWe,mbr,Sn],[0,0,64,0]],Nwr=[-3,h,KEr,{[xr]:Vr},[$We,Lt],[0,0]];cr.TypeRegistry.for(h).registerError(Nwr,Yze);var vKe=[3,h,L_r,0,[zr,Bv],[0,0]],Lwr=[3,h,M_r,0,[zr,Bv],[0,0]],Mwr=[3,h,Y_r,0,[Sn,y$,$Tr,dAr,TTr,QTr,LIr],[0,0,0,64,0,0,0]],Fwr=[3,h,XEr,0,[fi,d$],[0,0]],Bwr=[3,h,gyr,0,[Hr],[0]],Uwr=[3,h,cyr,0,[VX],[0]],qwr=[3,h,uyr,0,[zr],[0]],$wr=[3,h,fyr,0,[u$],[0]],Gwr=[3,h,Ryr,0,[zr],[0]],jwr=[3,h,hyr,0,[e$],[0]],Vwr=[3,h,Uyr,0,[Hr],[0]],Hwr=[3,h,qyr,0,[],[]],zwr=[3,h,Vyr,0,[CS,mIr],[0,2]],Wwr=[3,h,Hyr,0,[],[]],Kwr=[3,h,Yyr,0,[v$],[64]],Qwr=[3,h,r_r,0,[dd],[0]],Xwr=[3,h,s_r,0,[Et],[0]],Jwr=[3,h,u_r,0,[Et,md],[0,0]],Ywr=[3,h,g_r,0,[Et,_S],[0,0]],Zwr=[3,h,C_r,0,[p$],[0]],eDr=[3,h,R_r,0,[yKe],[2]],tDr=[3,h,T_r,0,[fi,fd,BWe],[0,0,0]],rDr=[3,h,w_r,0,[Et],[0]],nDr=[3,h,W_r,0,[pd],[0]],sDr=[3,h,K_r,0,[],[]],oDr=[3,h,F_r,0,[Et,_S],[0,0]],iDr=[3,h,Z_r,0,[Hr],[0]],cJ=[3,h,WEr,0,[u$,yS,AWe,RWe,Zq,m$,wv,g$,ls],[0,0,0,0,0,64,0,()=>x$,128]],uJ=[3,h,syr,0,[zr,yS,Zq,iKe,vWe,ls],[0,0,0,0,()=>xKe,128]],xKe=[3,h,oyr,0,[Rbr],[0]],lJ=[3,h,Q_r,0,[zr,yS,zAr,oJ,nJ,ls],[0,0,64,0,0,128]],aDr=[3,h,JEr,0,[d$,fi,Xq,Re],[0,0,64,0]],cDr=[3,h,YEr,0,[KPr,Re],[()=>ILr,0]],uDr=[3,h,ryr,0,[oJ,oAr,iTr,ybr,Re,Mr],[0,64,64,64,0,1]],lDr=[3,h,nyr,0,[ubr,Re],[()=>kLr,0]],dDr=[3,h,Syr,0,[Re,Mr],[0,1]],pDr=[3,h,Eyr,0,[Obr,Re],[()=>LLr,0]],mDr=[3,h,lyr,0,[Re,Mr],[0,1]],gDr=[3,h,dyr,0,[Sbr,Re],[()=>MLr,0]],fDr=[3,h,vyr,0,[Re,Mr],[0,1]],hDr=[3,h,xyr,0,[Pbr,Re],[()=>FLr,0]],SDr=[3,h,yyr,0,[E_r,Re,Mr],[0,0,1]],EDr=[3,h,_yr,0,[NWe,Re],[()=>BLr,0]],yDr=[3,h,Oyr,0,[_$,dTr,Re,Mr],[0,0,0,1]],_Dr=[3,h,kyr,0,[Kbr,Re],[()=>ULr,0]],CDr=[3,h,Lyr,0,[ua,Re],[64,0]],RDr=[3,h,Myr,0,[sIr,Re],[()=>qLr,0]],vDr=[3,h,Kyr,0,[pm,rbr,Mr,Re],[0,64,1,0]],xDr=[3,h,Qyr,0,[i$,pm,EIr,Re],[0,0,()=>jLr,0]],PDr=[3,h,Xyr,0,[pm,XX,i$,Mr,Re],[0,0,0,1,0]],bDr=[3,h,Jyr,0,[TIr,Re],[()=>VLr,0]],IDr=[3,h,$yr,0,[ua,Re],[64,0]],ADr=[3,h,Gyr,0,[RIr,Re],[()=>HLr,0]],TDr=[3,h,o_r,0,[Xq,HIr,ZX,Re,Mr,QX,vS,ua],[64,0,0,0,1,2,0,64]],wDr=[3,h,i_r,0,[ZWe,Re],[()=>XLr,0]],DDr=[3,h,l_r,0,[Et,Hr,tJ,RAr,kbr,Re,Mr],[0,0,0,0,2,0,1]],ODr=[3,h,d_r,0,[nAr,Re],[()=>ZLr,0]],kDr=[3,h,f_r,0,[Et,VWe,Re,Mr,nKe,sKe],[0,0,0,1,0,0]],NDr=[3,h,h_r,0,[cAr,Re],[()=>tMr,0]],LDr=[3,h,b_r,0,[Et,zn,xS,Re,la],[0,0,1,0,0]],MDr=[3,h,I_r,0,[qAr,Re],[()=>iMr,0]],FDr=[3,h,v_r,0,[la,VAr,xS,Re],[0,0,1,0]],BDr=[3,h,x_r,0,[jAr,Re],[()=>oMr,0]],UDr=[3,h,D_r,0,[Re,Mr,fd,cKe],[0,1,0,0]],qDr=[3,h,O_r,0,[tTr,Re],[()=>uMr,0]],$Dr=[3,h,B_r,0,[Et,VWe,Re,Mr],[0,0,0,1]],GDr=[3,h,U_r,0,[gTr,Re],[()=>hMr,0]],PKe=[3,h,eCr,0,[e$,_Ke,kv,jX,yS,_o],[0,0,0,0,0,1]],Uv=[3,h,eyr,0,[lTr],[()=>FNr]],jDr=[3,h,e_r,0,[Et,lKe],[0,0]],VDr=[3,h,$_r,0,[pd],[0]],HDr=[3,h,G_r,0,[pd],[0]],zDr=[3,h,nCr,0,[DIr,ZPr],[128,128]],WDr=[3,h,sCr,0,[_$,CKe,Et,KX,aJ,Tv,IWe,zn,Ubr],[0,0,0,1,1,0,0,()=>QDr,()=>KDr]],KDr=[3,h,oCr,0,[_o,lbr],[1,1]],QDr=[3,h,iCr,0,[gbr,Lt],[0,0]],XDr=[3,h,uCr,0,[Hr,oIr,tAr,rIr,BIr,Bv],[0,0,1,1,1,0]],JDr=[3,h,cCr,0,[Dbr],[21]],YDr=[3,h,dCr,0,[md,Fv,Lt,JX,qbr],[0,1,0,1,0]],ZDr=[3,h,pCr,0,[Et,Hr,rJ,tJ,E$,s$,ic,Re,Mr,wIr,C$],[0,0,64,0,1,1,0,0,1,2,2]],eOr=[3,h,mCr,0,[jWe,STr,Re],[()=>$Lr,()=>gMr,0]],tOr=[3,h,PCr,0,[Hr],[0]],rOr=[3,h,bCr,0,[Hr,Su,hu],[0,0,1]],nOr=[3,h,_Cr,0,[VX],[0]],sOr=[3,h,CCr,0,[uKe],[()=>DKe]],oOr=[3,h,RCr,0,[zr],[0]],iOr=[3,h,vCr,0,[PWe],[()=>uJ]],aOr=[3,h,ICr,0,[u$],[0]],cOr=[3,h,ACr,0,[OWe],[()=>cJ]],uOr=[3,h,wCr,0,[zr],[0]],lOr=[3,h,DCr,0,[DWe],[()=>lJ]],dOr=[3,h,kCr,0,[CS],[0]],pOr=[3,h,NCr,0,[CS,c$,a$,yIr],[0,0,0,()=>RMr]],mOr=[3,h,BCr,0,[dd],[0]],gOr=[3,h,UCr,0,[HX,l$,t$,ic,EWe,RS,_We,tKe,Yq],[0,64,0,0,0,0,1,1,1]],fOr=[3,h,$Cr,0,[Et,Hr,md,E$,s$,Re,Mr,fTr,C$],[0,0,0,1,1,0,1,2,2]],hOr=[3,h,GCr,0,[jWe,EAr,SAr],[()=>nMr,0,0]],SOr=[3,h,VCr,0,[TWe,xbr],[0,0]],EOr=[3,h,HCr,0,[qIr],[()=>MKe]],yOr=[3,h,WCr,0,[Et,JTr,Hr],[0,1,0]],_Or=[3,h,KCr,0,[VIr],[()=>QLr]],COr=[3,h,XCr,0,[C$,XIr],[2,0]],ROr=[3,h,YCr,0,[uIr],[[()=>CMr,0]]],vOr=[3,h,e0r,0,[ZIr,C$],[0,2]],xOr=[3,h,t0r,0,[YIr],[128]],POr=[3,h,n0r,0,[PS],[0]],bOr=[3,h,s0r,0,[la,HAr,FTr,zn,$br],[0,()=>aMr,()=>ANr,0,0]],IOr=[3,h,a0r,0,[pd,E$,s$,Hbr,xS,Re],[0,1,1,64,1,0]],AOr=[3,h,c0r,0,[zr,Lv,GTr,Re],[0,0,()=>yMr,0]],TOr=[3,h,u0r,0,[pd],[0]],wOr=[3,h,l0r,0,[Lv,zr,Iv,la,gd,ua,Nv,Mv,S$,Av,hd,sJ,YX,h$,f$,n$,_o,hu],[0,0,0,0,0,64,0,0,1,()=>Uv,0,1,0,1,1,0,1,1]],DOr=[3,h,p0r,0,[Hr],[0]],OOr=[3,h,m0r,0,[Hr,_o,QIr,iJ],[0,1,1,()=>dJ]],kOr=[3,h,hCr,0,[Sn,gAr],[0,0]],NOr=[3,h,OCr,0,[Dv,R$],[0,0]],LOr=[3,h,g0r,0,[pm,i$,XX,KWe,XWe,QWe,_o,hu,r$],[0,0,0,0,()=>IKe,()=>bKe,1,1,0]],MOr=[3,h,f0r,0,[tbr,zn,r$],[0,0,0]],bKe=[3,h,E0r,0,[mTr,Fbr],[1,1]],IKe=[3,h,b0r,0,[nbr],[1]],AKe=[3,h,v0r,0,[Hr,iAr,Su,fi,Sn],[0,1,0,0,0]],FOr=[3,h,_0r,0,[Fv,Lt],[1,0]],BOr=[3,h,T0r,0,[CS,c$,a$],[0,0,0]],UOr=[-3,h,I0r,{[xr]:hKe,[zWe]:500},[Lt],[0]];cr.TypeRegistry.for(h).registerError(UOr,Mze);var TKe=[-3,h,gWe,{[xr]:Vr},[Lt],[0]];cr.TypeRegistry.for(h).registerError(TKe,eWe);var qOr=[-3,h,R0r,{[xr]:Vr},[Lt],[0]];cr.TypeRegistry.for(h).registerError(qOr,Gze);var $Or=[-3,h,x0r,{[xr]:Vr},[Lt],[0]];cr.TypeRegistry.for(h).registerError($Or,Aze);var GOr=[-3,h,A0r,{[xr]:Vr},[$We,Lt],[0,0]];cr.TypeRegistry.for(h).registerError(GOr,rWe);var jOr=[-3,h,U0r,{[xr]:Vr},[Lt],[0]];cr.TypeRegistry.for(h).registerError(jOr,Kze);var VOr=[3,h,k0r,0,[Xq,QX,vS,ZX,wWe,fIr,Re,Mr],[64,2,0,0,()=>LKe,0,0,1]],HOr=[3,h,N0r,0,[zPr,Re],[()=>TLr,0]],zOr=[3,h,L0r,0,[dd,PTr,Mr,Re],[0,0,1,0]],WOr=[3,h,M0r,0,[JPr,Re],[()=>DLr,0]],KOr=[3,h,X0r,0,[CIr,c$,a$],[0,0,0]],QOr=[3,h,J0r,0,[IIr],[()=>WLr]],XOr=[3,h,Z0r,0,[aIr,Mr,Re],[0,1,0]],JOr=[3,h,eRr,0,[UPr,Re],[()=>OLr,0]],YOr=[3,h,nRr,0,[PS,Re,xS],[0,0,1]],ZOr=[3,h,sRr,0,[ua,Re],[64,0]],ekr=[3,h,oRr,0,[ZX,vS,QX,Xq,Re,Mr,wWe,iIr],[0,0,2,64,0,1,()=>LKe,64]],tkr=[3,h,iRr,0,[ZWe,Re],[()=>JLr,0]],rkr=[3,h,pRr,0,[xS,Re,hd],[1,0,0]],nkr=[3,h,mRr,0,[Re,RTr],[0,()=>mMr]],skr=[3,h,uRr,0,[WWe,xS,Re],[0,1,0]],okr=[3,h,lRr,0,[MTr,Re],[()=>dMr,0]],ikr=[3,h,SRr,0,[fd],[0]],akr=[3,h,ERr,0,[ls],[128]],ckr=[3,h,_Rr,0,[Et],[0]],ukr=[3,h,CRr,0,[ls],[128]],lkr=[3,h,RRr,0,[Sn,Dv,twr,y$,pIr,tIr],[0,0,0,0,2,0]],dkr=[3,h,vRr,0,[md,Hr,Lt,Fv,JX],[0,0,0,1,1]],pkr=[3,h,xRr,0,[LTr],[2]],mkr=[3,h,bRr,0,[XAr,hTr,ua,rJ,rKe,JWe],[0,0,64,64,64,0]],gkr=[3,h,IRr,0,[ETr,vTr],[()=>pkr,()=>KLr]],fkr=[3,h,B0r,0,[Fv,Lt],[1,0]],hkr=[3,h,$0r,0,[$Ir,GIr],[0,()=>wKe]],wKe=[3,h,G0r,0,[Bv,Jbr,HWe],[0,()=>wKe,()=>MKe]],Skr=[3,h,j0r,0,[Et,_o,dKe,uAr,yS,gKe,RS,Cbr,xIr,vS,eKe,zX],[0,1,1,1,0,1,0,0,64,0,0,2]],Ekr=[3,h,V0r,0,[zr,UAr],[0,1]],ykr=[3,h,z0r,0,[Et,eKe,vS],[0,0,0]],_kr=[3,h,aRr,0,[md,_o,nIr,UIr,WIr,ZTr,yS,gKe],[0,1,1,1,1,0,0,1]],Ckr=[3,h,F0r,0,[v$],[64]],Rkr=[-3,h,LRr,{[xr]:Vr},[GAr,Lt],[()=>xNr,0]];cr.TypeRegistry.for(h).registerError(Rkr,lWe);var vkr=[3,h,ARr,0,[_S,ic,oKe,_o,Et,Jq,o$,qWe],[0,0,()=>FKe,1,0,2,0,64]],xkr=[3,h,wRr,0,[FWe,MWe,Xbr],[1,0,128]],Pkr=[3,h,MRr,0,[nKe,sKe,pAr,Tbr,Nbr,ewr],[0,0,0,1,128,0]],bkr=[3,h,kRr,0,[Sn,y$,Ov],[0,0,2]],Ikr=[3,h,ORr,0,[dm],[()=>rMr]],Akr=[3,h,$Rr,0,[qPr,SWe,VPr,zn],[0,0,0,()=>Sd]],Tkr=[3,h,GRr,0,[ibr,obr,zn],[0,0,()=>Sd]],wkr=[3,h,jRr,0,[fi,zn],[0,()=>Sd]],Dkr=[3,h,VRr,0,[TWe,zn],[0,()=>Sd]],Okr=[3,h,HRr,0,[fi,zn],[0,()=>Sd]],kkr=[3,h,zRr,0,[WX,YPr,fbr,rwr,jbr,_Ar,jX,JIr],[()=>Dkr,()=>Akr,()=>Tkr,()=>Fkr,()=>Okr,()=>Lkr,()=>wkr,()=>Nkr]],Nkr=[3,h,WRr,0,[fi,zn],[0,()=>Sd]],Lkr=[3,h,KRr,0,[fi,zn],[0,()=>Sd]],Mkr=[3,h,QRr,0,[OIr,vbr,wbr,SWe,KAr],[0,0,64,0,1]],Sd=[3,h,XRr,0,[zn,yTr],[0,0]],Fkr=[3,h,JRr,0,[nwr,zn],[0,()=>Sd]],Bkr=[-3,h,BRr,{[xr]:Vr},[Lt],[0]];cr.TypeRegistry.for(h).registerError(Bkr,wze);var Ukr=[3,h,URr,0,[Fv,Lt,JX],[1,0,1]],qkr=[3,h,rvr,0,[Sn],[0]],$kr=[3,h,bvr,0,[Sn,Tv],[0,0]],Gkr=[3,h,Ivr,0,[Sn,Tv,wv,NIr,kIr,yAr,Ov],[0,0,0,0,0,0,2]],jkr=[3,h,Lvr,0,[Sn],[0]],Vkr=[3,h,Uvr,0,[Sn],[0]],Hkr=[3,h,Kvr,0,[Sn,zbr,PAr,mAr],[0,0,0,0]],zkr=[3,h,Yvr,0,[Sn],[0]],Wkr=[3,h,Zvr,0,[Sn],[0]],Kkr=[3,h,Wvr,0,[Abr,_Ir,WTr,eIr,AIr],[1,2,0,129,0]],DKe=[3,h,YRr,0,[xWe],[0]],Qkr=[3,h,exr,0,[HPr,pbr,hbr,Ibr,_br,gIr,sAr,MIr,lAr,IAr,TAr,wAr,kAr,LAr,DAr,FAr,BAr,JAr,ITr,ATr,KTr,UTr,YTr],[()=>iwr,()=>ywr,()=>kwr,()=>Mwr,()=>Kwr,()=>kOr,()=>lkr,()=>Ckr,()=>Ikr,()=>qkr,()=>$kr,()=>Gkr,()=>Vkr,()=>Hkr,()=>jkr,()=>zkr,()=>Wkr,()=>kNr,()=>VNr,()=>ZNr,()=>pLr,()=>mLr,()=>xLr]],Xkr=[3,h,evr,0,[fi,Su,d$,mKe,fKe],[0,0,0,0,0]],Jkr=[3,h,tvr,0,[QPr],[()=>RKe]],Ykr=[3,h,pvr,0,[Hr,Su],[0,0]],Zkr=[3,h,mvr,0,[Hr,Su,hu],[0,0,1]],eNr=[3,h,ivr,0,[VX,xWe],[0,0]],tNr=[3,h,avr,0,[uKe],[()=>DKe]],rNr=[3,h,cvr,0,[zr,iKe,vWe,Zq,ls],[0,0,()=>xKe,0,128]],nNr=[3,h,uvr,0,[PWe],[()=>uJ]],sNr=[3,h,Evr,0,[zr,fd,nJ,ls],[0,0,0,128]],oNr=[3,h,yvr,0,[DWe],[()=>lJ]],iNr=[3,h,gvr,0,[e$,jX,lIr],[0,0,2]],aNr=[3,h,fvr,0,[e$,_Ke,kv,ls],[0,0,0,128]],cNr=[3,h,hvr,0,[Tv],[()=>PKe]],uNr=[3,h,Rvr,0,[Hr,Su],[0,0]],lNr=[3,h,vvr,0,[PIr],[()=>AKe]],dNr=[3,h,xvr,0,[CS,WAr,c$],[0,()=>vMr,0]],pNr=[3,h,Pvr,0,[CS,a$],[0,0]],mNr=[3,h,Tvr,0,[Et,md,FIr,wTr,Zbr],[0,0,()=>zLr,0,()=>zDr]],gNr=[3,h,wvr,0,[CAr,YAr,QAr],[0,()=>DNr,()=>wNr]],fNr=[3,h,Ovr,0,[Hr,zX],[0,2]],hNr=[3,h,Nvr,0,[Et,_S,ic,oKe,Jq,o$,qWe],[0,0,0,()=>FKe,2,0,64]],SNr=[3,h,Fvr,0,[la,zr,p$,eJ,gd,cbr],[0,0,0,64,0,[0,4]]],ENr=[3,h,Bvr,0,[p$],[0]],yNr=[3,h,$vr,0,[fi,Su,fd,BWe],[0,0,0,0]],_Nr=[3,h,Gvr,0,[rTr,pKe],[()=>OKe,0]],CNr=[3,h,jvr,0,[Et,dKe],[0,1]],RNr=[3,h,zvr,0,[Et,_S,ic,CWe,kv,LWe,Jq,o$,UWe],[0,0,0,0,0,0,2,0,64]],vNr=[3,h,Qvr,0,[Hr,iJ],[0,()=>dJ]],xNr=[3,h,rxr,0,[aAr,Lt],[()=>PNr,0]],PNr=[3,h,nxr,0,[cTr,Mbr],[1,1]],bNr=[3,h,sxr,0,[la,p$,zr,gd,KIr,eJ],[0,0,0,0,1,64]],INr=[3,h,ixr,0,[la,PS,gd,zn,dbr,Et],[0,0,0,0,1,0]],ANr=[3,h,uxr,0,[ZAr,nTr,Vbr,sbr,Lbr,zIr],[1,1,1,1,1,1]],TNr=[3,h,mxr,0,[zr,fAr],[0,2]],wNr=[3,h,pxr,0,[Qbr],[0]],DNr=[3,h,Exr,0,[HTr,zTr,Gbr],[1,1,1]],ONr=[3,h,hxr,0,[Dv,aTr,Ov],[0,0,2]],kNr=[3,h,fxr,0,[dm],[()=>cMr]],NNr=[-3,h,lxr,{[xr]:Vr},[Lt],[0]];cr.TypeRegistry.for(h).registerError(NNr,Xze);var LNr=[-3,h,yxr,{[xr]:Vr},[Lt],[0]];cr.TypeRegistry.for(h).registerError(LNr,Oze);var OKe=[3,h,_xr,0,[fi,Su,hu,cKe,fd,pKe],[0,0,1,0,0,0]],MNr=[3,h,gxr,0,[dIr,R$],[0,0]],FNr=[3,h,vxr,0,[bWe,kv],[0,0]],x$=[3,h,xxr,0,[_Tr,Bbr],[0,2]],BNr=[3,h,Jxr,0,[pd,WX,zn,xTr,abr],[0,()=>vKe,0,0,1]],UNr=[3,h,Lxr,0,[bbr,bWe,zn,AAr,r$],[0,0,0,0,0]],qNr=[3,h,Gxr,0,[Lv,zr,hd,sJ,YX,Nv,Mv,Av,_o,hu],[0,0,0,1,0,0,0,()=>Uv,1,1]],$Nr=[3,h,Ixr,0,[md,uTr],[0,2]],GNr=[-3,h,Fxr,{[xr]:Vr},[Lt],[0]];cr.TypeRegistry.for(h).registerError(GNr,zze);var jNr=[-3,h,Zxr,{[xr]:hKe},[Lt],[0]];cr.TypeRegistry.for(h).registerError(jNr,Nze);var kKe=[-3,h,fWe,{[xr]:Vr},[Lt],[0]];cr.TypeRegistry.for(h).registerError(kKe,iWe);var NKe=[-3,h,hWe,{[xr]:Vr},[Lt],[0]];cr.TypeRegistry.for(h).registerError(NKe,cWe);var VNr=[3,h,Hxr,0,[dm],[()=>fMr]],HNr=[3,h,zxr,0,[Sn,kWe],[0,0]],zNr=[3,h,wxr,0,[ua,rJ,rKe,JWe],[64,64,64,0]],WNr=[3,h,Oxr,0,[sTr],[[()=>xMr,0]]],KNr=[3,h,Bxr,0,[la,Et,eJ,ua,E$,s$,gd,Mr],[0,0,64,64,1,1,0,1]],QNr=[3,h,Uxr,0,[PS],[0]],XNr=[3,h,qxr,0,[PS],[0]],JNr=[3,h,$xr,0,[yKe],[2]],YNr=[3,h,Pxr,0,[_S,Et,ic,CWe,kv,LWe,Jq,_o,o$,UWe],[0,0,0,0,0,0,2,1,0,64]],ZNr=[3,h,Xxr,0,[dm],[()=>SMr]],eLr=[3,h,Kxr,0,[Sn,KX,aJ],[0,0,0]],tLr=[3,h,kxr,0,[R$,NTr],[1,0]],rLr=[3,h,cPr,0,[Et,ls],[0,128]],nLr=[3,h,fPr,0,[fd,ls],[0,128]],sLr=[3,h,dPr,0,[ic,YWe],[0,64]],oLr=[3,h,pPr,0,[hAr],[()=>eMr]],iLr=[3,h,EPr,0,[iJ,YWe],[()=>dJ,64]],aLr=[3,h,yPr,0,[VTr],[()=>EMr]],cLr=[-3,h,nPr,{[xr]:Vr},[Lt],[0]];cr.TypeRegistry.for(h).registerError(cLr,Bze);var uLr=[-3,h,mPr,{[xr]:Vr,[zWe]:400},[Lt,eTr],[0,0]];cr.TypeRegistry.for(h).registerError(uLr,pWe);var lLr=[3,h,uPr,0,[FWe,MWe,qTr],[1,0,0]],dLr=[3,h,sPr,0,[PS,Wbr,XTr,r$,NWe],[0,0,1,0,()=>pMr]],pLr=[3,h,hPr,0,[v$],[64]],mLr=[3,h,ePr,0,[dm],[()=>_Mr]],gLr=[3,h,tPr,0,[Dv,Bv],[0,0]],fLr=[-3,h,RPr,{[xr]:Vr},[Lt],[0]];cr.TypeRegistry.for(h).registerError(fLr,sWe);var hLr=[3,h,wPr,0,[Et,ls],[0,64]],SLr=[3,h,OPr,0,[fd,jTr],[0,64]],ELr=[3,h,CPr,0,[yWe,aKe,dd,DTr,CTr,ebr],[0,0,0,0,()=>tLr,2]],yLr=[3,h,PPr,0,[u$,m$,wv,g$],[0,64,0,()=>x$]],_Lr=[3,h,bPr,0,[],[]],CLr=[3,h,APr,0,[dd,t$,ic,Yq,Ybr],[0,0,0,1,2]],RLr=[3,h,NPr,0,[pd,Iv,la,gd,ua,Nv,Mv,S$,Av,h$,f$,n$,hd],[0,0,0,0,64,0,0,1,()=>Uv,1,1,0,0]],vLr=[3,h,LPr,0,[Lv,zr,Iv,la,gd,ua,Nv,Mv,S$,Av,hd,sJ,YX,h$,f$,n$,_o,hu],[0,0,0,0,0,64,0,0,1,()=>Uv,0,1,0,1,1,0,1,1]],xLr=[3,h,vPr,0,[v$],[64]],PLr=[-3,h,MPr,{[xr]:Vr},[Lt],[0]];cr.TypeRegistry.for(h).registerError(PLr,qze);var gt="unit",bLr=[-3,SKe,"CloudWatchLogsServiceException",0,[],[]];cr.TypeRegistry.for(SKe).registerError(bLr,ur);var ILr=[1,h,lEr,0,()=>RKe],ALr=[1,h,sEr,0,()=>owr],TLr=[1,h,cEr,0,()=>awr],wLr=[1,h,tEr,0,()=>TNr],DLr=[1,h,gEr,0,()=>cwr],OLr=[1,h,eEr,0,()=>uwr],kLr=[1,h,jEr,0,()=>hwr],NLr=[1,h,zEr,0,()=>_wr],LKe=[1,h,j_r,0,()=>Lwr],LLr=[1,h,tCr,0,()=>cJ],MLr=[1,h,byr,0,()=>uJ],FLr=[1,h,X_r,0,()=>lJ],BLr=[1,h,rCr,0,()=>PKe],ULr=[1,h,aCr,0,()=>WDr],qLr=[1,h,lCr,0,()=>XDr],$Lr=[1,h,gCr,0,()=>YDr],GLr=[1,h,MCr,0,()=>NOr],jLr=[1,h,h0r,0,()=>MOr],VLr=[1,h,y0r,0,()=>LOr],HLr=[1,h,P0r,0,()=>AKe],zLr=[1,h,C0r,0,()=>FOr],WLr=[1,h,w0r,0,()=>BOr],KLr=[1,h,PRr,0,()=>dkr],MKe=[1,h,q0r,0,()=>hkr],QLr=[1,h,H0r,0,()=>Ekr],XLr=[1,h,K0r,0,()=>Skr],JLr=[1,h,W0r,0,()=>ykr],YLr=[1,h,gRr,0,()=>fkr],ZLr=[1,h,fRr,0,()=>_kr],eMr=[1,h,TRr,0,()=>xkr],tMr=[1,h,DRr,0,()=>vkr],FKe=[1,h,FRr,0,()=>Pkr],rMr=[1,h,NRr,0,()=>bkr],nMr=[1,h,qRr,0,()=>Ukr],sMr=[1,h,Xvr,0,()=>Kkr],dJ=[1,h,txr,0,()=>Qkr],oMr=[1,h,oxr,0,()=>bNr],iMr=[1,h,axr,0,()=>INr],aMr=[1,h,cxr,0,()=>lMr],cMr=[1,h,Sxr,0,()=>ONr],uMr=[1,h,Cxr,0,()=>OKe],lMr=[1,h,Rxr,0,()=>MNr],dMr=[1,h,Yxr,0,()=>BNr],pMr=[1,h,Mxr,0,()=>UNr],mMr=[1,h,jxr,0,()=>qNr],gMr=[1,h,Axr,0,()=>$Nr],fMr=[1,h,Wxr,0,()=>HNr],hMr=[1,h,bxr,0,()=>YNr],SMr=[1,h,Qxr,0,()=>eLr],EMr=[1,h,iPr,0,()=>lLr],yMr=[1,h,oPr,0,()=>dLr],_Mr=[1,h,rPr,0,()=>gLr],CMr=[3,h,JCr,{[EKe]:1},[HWe,gWe],[()=>JDr,[()=>TKe,0]]],RMr=[3,h,S0r,0,[vAr],[()=>kkr]],vMr=[3,h,dxr,0,[xAr],[()=>Mkr]],xMr=[3,h,Dxr,{[EKe]:1},[bTr,kTr,hWe,fWe],[()=>mkr,()=>gkr,[()=>NKe,0],[()=>kKe,0]]],PMr=[9,h,oEr,0,()=>lwr,()=>gt],bMr=[9,h,dEr,0,()=>dwr,()=>pwr],IMr=[9,h,yEr,0,()=>mwr,()=>gt],AMr=[9,h,xEr,0,()=>gwr,()=>fwr],TMr=[9,h,fEr,0,()=>Cwr,()=>Rwr],wMr=[9,h,vEr,0,()=>vwr,()=>xwr],DMr=[9,h,TEr,0,()=>Pwr,()=>bwr],OMr=[9,h,wEr,0,()=>Iwr,()=>Awr],kMr=[9,h,kEr,0,()=>Twr,()=>gt],NMr=[9,h,LEr,0,()=>wwr,()=>gt],LMr=[9,h,FEr,0,()=>Dwr,()=>Owr],MMr=[9,h,QEr,0,()=>Fwr,()=>gt],FMr=[9,h,myr,0,()=>Bwr,()=>gt],BMr=[9,h,Iyr,0,()=>$wr,()=>gt],UMr=[9,h,iyr,0,()=>qwr,()=>gt],qMr=[9,h,ayr,0,()=>Uwr,()=>gt],$Mr=[9,h,Cyr,0,()=>Gwr,()=>gt],GMr=[9,h,Ayr,0,()=>jwr,()=>gt],jMr=[9,h,Byr,0,()=>Vwr,()=>Hwr],VMr=[9,h,Fyr,0,()=>zwr,()=>Wwr],HMr=[9,h,t_r,0,()=>Qwr,()=>gt],zMr=[9,h,n_r,0,()=>Xwr,()=>gt],WMr=[9,h,c_r,0,()=>Jwr,()=>gt],KMr=[9,h,m_r,0,()=>Ywr,()=>gt],QMr=[9,h,__r,0,()=>Zwr,()=>eDr],XMr=[9,h,A_r,0,()=>tDr,()=>gt],JMr=[9,h,k_r,0,()=>rDr,()=>gt],YMr=[9,h,z_r,0,()=>nDr,()=>sDr],ZMr=[9,h,V_r,0,()=>oDr,()=>gt],e1r=[9,h,J_r,0,()=>iDr,()=>gt],t1r=[9,h,ZEr,0,()=>aDr,()=>cDr],r1r=[9,h,tyr,0,()=>uDr,()=>lDr],n1r=[9,h,Tyr,0,()=>dDr,()=>pDr],s1r=[9,h,pyr,0,()=>mDr,()=>gDr],o1r=[9,h,Pyr,0,()=>fDr,()=>hDr],i1r=[9,h,wyr,0,()=>SDr,()=>EDr],a1r=[9,h,Dyr,0,()=>yDr,()=>_Dr],c1r=[9,h,Nyr,0,()=>CDr,()=>RDr],u1r=[9,h,Wyr,0,()=>vDr,()=>xDr],l1r=[9,h,zyr,0,()=>PDr,()=>bDr],d1r=[9,h,jyr,0,()=>IDr,()=>ADr],p1r=[9,h,a_r,0,()=>TDr,()=>wDr],m1r=[9,h,p_r,0,()=>DDr,()=>ODr],g1r=[9,h,S_r,0,()=>kDr,()=>NDr],f1r=[9,h,y_r,0,()=>LDr,()=>MDr],h1r=[9,h,P_r,0,()=>FDr,()=>BDr],S1r=[9,h,N_r,0,()=>UDr,()=>qDr],E1r=[9,h,H_r,0,()=>$Dr,()=>GDr],y1r=[9,h,Zyr,0,()=>jDr,()=>gt],_1r=[9,h,q_r,0,()=>VDr,()=>HDr],C1r=[9,h,fCr,0,()=>ZDr,()=>eOr],R1r=[9,h,xCr,0,()=>tOr,()=>rOr],v1r=[9,h,SCr,0,()=>aOr,()=>cOr],x1r=[9,h,ECr,0,()=>oOr,()=>iOr],P1r=[9,h,yCr,0,()=>nOr,()=>sOr],b1r=[9,h,TCr,0,()=>uOr,()=>lOr],I1r=[9,h,LCr,0,()=>dOr,()=>pOr],A1r=[9,h,FCr,0,()=>mOr,()=>gOr],T1r=[9,h,qCr,0,()=>fOr,()=>hOr],w1r=[9,h,jCr,0,()=>SOr,()=>EOr],D1r=[9,h,zCr,0,()=>yOr,()=>_Or],O1r=[9,h,QCr,{[GWe]:["streaming-"]},()=>COr,()=>ROr],k1r=[9,h,ZCr,0,()=>vOr,()=>xOr],N1r=[9,h,r0r,0,()=>POr,()=>bOr],L1r=[9,h,o0r,0,()=>TOr,()=>wOr],M1r=[9,h,i0r,0,()=>IOr,()=>AOr],F1r=[9,h,d0r,0,()=>DOr,()=>OOr],B1r=[9,h,O0r,0,()=>VOr,()=>HOr],U1r=[9,h,D0r,0,()=>zOr,()=>WOr],q1r=[9,h,Q0r,0,()=>KOr,()=>QOr],$1r=[9,h,Y0r,0,()=>XOr,()=>JOr],G1r=[9,h,tRr,0,()=>ekr,()=>tkr],j1r=[9,h,rRr,0,()=>YOr,()=>ZOr],V1r=[9,h,dRr,0,()=>rkr,()=>nkr],H1r=[9,h,cRr,0,()=>skr,()=>okr],z1r=[9,h,hRr,0,()=>ikr,()=>akr],W1r=[9,h,yRr,0,()=>ckr,()=>ukr],K1r=[9,h,ZRr,0,()=>Xkr,()=>Jkr],Q1r=[9,h,dvr,0,()=>Ykr,()=>Zkr],X1r=[9,h,svr,0,()=>rNr,()=>nNr],J1r=[9,h,ovr,0,()=>eNr,()=>tNr],Y1r=[9,h,Svr,0,()=>sNr,()=>oNr],Z1r=[9,h,nvr,0,()=>aNr,()=>cNr],eFr=[9,h,lvr,0,()=>iNr,()=>gt],tFr=[9,h,Cvr,0,()=>uNr,()=>lNr],rFr=[9,h,_vr,0,()=>dNr,()=>pNr],nFr=[9,h,Avr,0,()=>mNr,()=>gNr],sFr=[9,h,Dvr,0,()=>fNr,()=>gt],oFr=[9,h,kvr,0,()=>hNr,()=>gt],iFr=[9,h,Mvr,0,()=>SNr,()=>ENr],aFr=[9,h,qvr,0,()=>yNr,()=>_Nr],cFr=[9,h,Vvr,0,()=>CNr,()=>gt],uFr=[9,h,Hvr,0,()=>RNr,()=>gt],lFr=[9,h,Jvr,0,()=>vNr,()=>gt],dFr=[9,h,Txr,{[GWe]:["streaming-"]},()=>zNr,()=>WNr],pFr=[9,h,Nxr,0,()=>KNr,()=>QNr],mFr=[9,h,Vxr,0,()=>XNr,()=>JNr],gFr=[9,h,aPr,0,()=>rLr,()=>gt],fFr=[9,h,gPr,0,()=>nLr,()=>gt],hFr=[9,h,lPr,0,()=>sLr,()=>oLr],SFr=[9,h,SPr,0,()=>iLr,()=>aLr],EFr=[9,h,TPr,0,()=>hLr,()=>gt],yFr=[9,h,DPr,0,()=>SLr,()=>gt],_Fr=[9,h,_Pr,0,()=>ELr,()=>gt],CFr=[9,h,xPr,0,()=>yLr,()=>_Lr],RFr=[9,h,IPr,0,()=>CLr,()=>gt],vFr=[9,h,kPr,0,()=>RLr,()=>vLr],gU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","AssociateKmsKey",{}).n("CloudWatchLogsClient","AssociateKmsKeyCommand").sc(PMr).build(){},fU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","AssociateSourceToS3TableIntegration",{}).n("CloudWatchLogsClient","AssociateSourceToS3TableIntegrationCommand").sc(bMr).build(){},hU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","CancelExportTask",{}).n("CloudWatchLogsClient","CancelExportTaskCommand").sc(IMr).build(){},SU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","CancelImportTask",{}).n("CloudWatchLogsClient","CancelImportTaskCommand").sc(AMr).build(){},EU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","CreateDelivery",{}).n("CloudWatchLogsClient","CreateDeliveryCommand").sc(TMr).build(){},yU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","CreateExportTask",{}).n("CloudWatchLogsClient","CreateExportTaskCommand").sc(wMr).build(){},_U=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","CreateImportTask",{}).n("CloudWatchLogsClient","CreateImportTaskCommand").sc(DMr).build(){},CU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","CreateLogAnomalyDetector",{}).n("CloudWatchLogsClient","CreateLogAnomalyDetectorCommand").sc(OMr).build(){},RU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","CreateLogGroup",{}).n("CloudWatchLogsClient","CreateLogGroupCommand").sc(kMr).build(){},vU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","CreateLogStream",{}).n("CloudWatchLogsClient","CreateLogStreamCommand").sc(NMr).build(){},xU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","CreateScheduledQuery",{}).n("CloudWatchLogsClient","CreateScheduledQueryCommand").sc(LMr).build(){},PU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DeleteAccountPolicy",{}).n("CloudWatchLogsClient","DeleteAccountPolicyCommand").sc(MMr).build(){},bU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DeleteDataProtectionPolicy",{}).n("CloudWatchLogsClient","DeleteDataProtectionPolicyCommand").sc(FMr).build(){},IU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DeleteDelivery",{}).n("CloudWatchLogsClient","DeleteDeliveryCommand").sc(BMr).build(){},AU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DeleteDeliveryDestination",{}).n("CloudWatchLogsClient","DeleteDeliveryDestinationCommand").sc(UMr).build(){},TU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DeleteDeliveryDestinationPolicy",{}).n("CloudWatchLogsClient","DeleteDeliveryDestinationPolicyCommand").sc(qMr).build(){},wU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DeleteDeliverySource",{}).n("CloudWatchLogsClient","DeleteDeliverySourceCommand").sc($Mr).build(){},DU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DeleteDestination",{}).n("CloudWatchLogsClient","DeleteDestinationCommand").sc(GMr).build(){},OU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DeleteIndexPolicy",{}).n("CloudWatchLogsClient","DeleteIndexPolicyCommand").sc(jMr).build(){},kU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DeleteIntegration",{}).n("CloudWatchLogsClient","DeleteIntegrationCommand").sc(VMr).build(){},NU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DeleteLogAnomalyDetector",{}).n("CloudWatchLogsClient","DeleteLogAnomalyDetectorCommand").sc(HMr).build(){},LU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DeleteLogGroup",{}).n("CloudWatchLogsClient","DeleteLogGroupCommand").sc(zMr).build(){},MU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DeleteLogStream",{}).n("CloudWatchLogsClient","DeleteLogStreamCommand").sc(WMr).build(){},FU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DeleteMetricFilter",{}).n("CloudWatchLogsClient","DeleteMetricFilterCommand").sc(KMr).build(){},BU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DeleteQueryDefinition",{}).n("CloudWatchLogsClient","DeleteQueryDefinitionCommand").sc(QMr).build(){},UU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DeleteResourcePolicy",{}).n("CloudWatchLogsClient","DeleteResourcePolicyCommand").sc(XMr).build(){},qU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DeleteRetentionPolicy",{}).n("CloudWatchLogsClient","DeleteRetentionPolicyCommand").sc(JMr).build(){},$U=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DeleteScheduledQuery",{}).n("CloudWatchLogsClient","DeleteScheduledQueryCommand").sc(YMr).build(){},GU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DeleteSubscriptionFilter",{}).n("CloudWatchLogsClient","DeleteSubscriptionFilterCommand").sc(ZMr).build(){},jU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DeleteTransformer",{}).n("CloudWatchLogsClient","DeleteTransformerCommand").sc(e1r).build(){},VU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DescribeAccountPolicies",{}).n("CloudWatchLogsClient","DescribeAccountPoliciesCommand").sc(t1r).build(){},uv=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DescribeConfigurationTemplates",{}).n("CloudWatchLogsClient","DescribeConfigurationTemplatesCommand").sc(r1r).build(){},lv=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DescribeDeliveries",{}).n("CloudWatchLogsClient","DescribeDeliveriesCommand").sc(n1r).build(){},dv=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DescribeDeliveryDestinations",{}).n("CloudWatchLogsClient","DescribeDeliveryDestinationsCommand").sc(s1r).build(){},pv=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DescribeDeliverySources",{}).n("CloudWatchLogsClient","DescribeDeliverySourcesCommand").sc(o1r).build(){},mv=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DescribeDestinations",{}).n("CloudWatchLogsClient","DescribeDestinationsCommand").sc(i1r).build(){},HU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DescribeExportTasks",{}).n("CloudWatchLogsClient","DescribeExportTasksCommand").sc(a1r).build(){},zU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DescribeFieldIndexes",{}).n("CloudWatchLogsClient","DescribeFieldIndexesCommand").sc(c1r).build(){},WU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DescribeImportTaskBatches",{}).n("CloudWatchLogsClient","DescribeImportTaskBatchesCommand").sc(u1r).build(){},KU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DescribeImportTasks",{}).n("CloudWatchLogsClient","DescribeImportTasksCommand").sc(l1r).build(){},QU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DescribeIndexPolicies",{}).n("CloudWatchLogsClient","DescribeIndexPoliciesCommand").sc(d1r).build(){},gv=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DescribeLogGroups",{}).n("CloudWatchLogsClient","DescribeLogGroupsCommand").sc(p1r).build(){},fv=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DescribeLogStreams",{}).n("CloudWatchLogsClient","DescribeLogStreamsCommand").sc(m1r).build(){},hv=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DescribeMetricFilters",{}).n("CloudWatchLogsClient","DescribeMetricFiltersCommand").sc(g1r).build(){},XU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DescribeQueries",{}).n("CloudWatchLogsClient","DescribeQueriesCommand").sc(f1r).build(){},JU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DescribeQueryDefinitions",{}).n("CloudWatchLogsClient","DescribeQueryDefinitionsCommand").sc(h1r).build(){},YU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DescribeResourcePolicies",{}).n("CloudWatchLogsClient","DescribeResourcePoliciesCommand").sc(S1r).build(){},Sv=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DescribeSubscriptionFilters",{}).n("CloudWatchLogsClient","DescribeSubscriptionFiltersCommand").sc(E1r).build(){},ZU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DisassociateKmsKey",{}).n("CloudWatchLogsClient","DisassociateKmsKeyCommand").sc(y1r).build(){},eq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DisassociateSourceFromS3TableIntegration",{}).n("CloudWatchLogsClient","DisassociateSourceFromS3TableIntegrationCommand").sc(_1r).build(){},Ev=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","FilterLogEvents",{}).n("CloudWatchLogsClient","FilterLogEventsCommand").sc(C1r).build(){},tq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","GetDataProtectionPolicy",{}).n("CloudWatchLogsClient","GetDataProtectionPolicyCommand").sc(R1r).build(){},rq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","GetDelivery",{}).n("CloudWatchLogsClient","GetDeliveryCommand").sc(v1r).build(){},nq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","GetDeliveryDestination",{}).n("CloudWatchLogsClient","GetDeliveryDestinationCommand").sc(x1r).build(){},sq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","GetDeliveryDestinationPolicy",{}).n("CloudWatchLogsClient","GetDeliveryDestinationPolicyCommand").sc(P1r).build(){},oq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","GetDeliverySource",{}).n("CloudWatchLogsClient","GetDeliverySourceCommand").sc(b1r).build(){},iq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","GetIntegration",{}).n("CloudWatchLogsClient","GetIntegrationCommand").sc(I1r).build(){},aq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","GetLogAnomalyDetector",{}).n("CloudWatchLogsClient","GetLogAnomalyDetectorCommand").sc(A1r).build(){},yv=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","GetLogEvents",{}).n("CloudWatchLogsClient","GetLogEventsCommand").sc(T1r).build(){},cq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","GetLogFields",{}).n("CloudWatchLogsClient","GetLogFieldsCommand").sc(w1r).build(){},uq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","GetLogGroupFields",{}).n("CloudWatchLogsClient","GetLogGroupFieldsCommand").sc(D1r).build(){},lq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","GetLogObject",{eventStream:{output:!0}}).n("CloudWatchLogsClient","GetLogObjectCommand").sc(O1r).build(){},dq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","GetLogRecord",{}).n("CloudWatchLogsClient","GetLogRecordCommand").sc(k1r).build(){},pq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","GetQueryResults",{}).n("CloudWatchLogsClient","GetQueryResultsCommand").sc(N1r).build(){},mq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","GetScheduledQuery",{}).n("CloudWatchLogsClient","GetScheduledQueryCommand").sc(L1r).build(){},_v=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","GetScheduledQueryHistory",{}).n("CloudWatchLogsClient","GetScheduledQueryHistoryCommand").sc(M1r).build(){},gq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","GetTransformer",{}).n("CloudWatchLogsClient","GetTransformerCommand").sc(F1r).build(){},Cv=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","ListAggregateLogGroupSummaries",{}).n("CloudWatchLogsClient","ListAggregateLogGroupSummariesCommand").sc(B1r).build(){},Rv=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","ListAnomalies",{}).n("CloudWatchLogsClient","ListAnomaliesCommand").sc(U1r).build(){},fq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","ListIntegrations",{}).n("CloudWatchLogsClient","ListIntegrationsCommand").sc(q1r).build(){},vv=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","ListLogAnomalyDetectors",{}).n("CloudWatchLogsClient","ListLogAnomalyDetectorsCommand").sc($1r).build(){},hq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","ListLogGroups",{}).n("CloudWatchLogsClient","ListLogGroupsCommand").sc(G1r).build(){},xv=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","ListLogGroupsForQuery",{}).n("CloudWatchLogsClient","ListLogGroupsForQueryCommand").sc(j1r).build(){},Pv=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","ListScheduledQueries",{}).n("CloudWatchLogsClient","ListScheduledQueriesCommand").sc(V1r).build(){},bv=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","ListSourcesForS3TableIntegration",{}).n("CloudWatchLogsClient","ListSourcesForS3TableIntegrationCommand").sc(H1r).build(){},Sq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","ListTagsForResource",{}).n("CloudWatchLogsClient","ListTagsForResourceCommand").sc(z1r).build(){},Eq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","ListTagsLogGroup",{}).n("CloudWatchLogsClient","ListTagsLogGroupCommand").sc(W1r).build(){},yq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","PutAccountPolicy",{}).n("CloudWatchLogsClient","PutAccountPolicyCommand").sc(K1r).build(){},_q=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","PutDataProtectionPolicy",{}).n("CloudWatchLogsClient","PutDataProtectionPolicyCommand").sc(Q1r).build(){},Cq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","PutDeliveryDestination",{}).n("CloudWatchLogsClient","PutDeliveryDestinationCommand").sc(X1r).build(){},Rq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","PutDeliveryDestinationPolicy",{}).n("CloudWatchLogsClient","PutDeliveryDestinationPolicyCommand").sc(J1r).build(){},vq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","PutDeliverySource",{}).n("CloudWatchLogsClient","PutDeliverySourceCommand").sc(Y1r).build(){},xq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","PutDestination",{}).n("CloudWatchLogsClient","PutDestinationCommand").sc(Z1r).build(){},Pq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","PutDestinationPolicy",{}).n("CloudWatchLogsClient","PutDestinationPolicyCommand").sc(eFr).build(){},bq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","PutIndexPolicy",{}).n("CloudWatchLogsClient","PutIndexPolicyCommand").sc(tFr).build(){},Iq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","PutIntegration",{}).n("CloudWatchLogsClient","PutIntegrationCommand").sc(rFr).build(){},Aq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","PutLogEvents",{}).n("CloudWatchLogsClient","PutLogEventsCommand").sc(nFr).build(){},Tq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","PutLogGroupDeletionProtection",{}).n("CloudWatchLogsClient","PutLogGroupDeletionProtectionCommand").sc(sFr).build(){},wq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","PutMetricFilter",{}).n("CloudWatchLogsClient","PutMetricFilterCommand").sc(oFr).build(){},Dq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","PutQueryDefinition",{}).n("CloudWatchLogsClient","PutQueryDefinitionCommand").sc(iFr).build(){},Oq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","PutResourcePolicy",{}).n("CloudWatchLogsClient","PutResourcePolicyCommand").sc(aFr).build(){},kq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","PutRetentionPolicy",{}).n("CloudWatchLogsClient","PutRetentionPolicyCommand").sc(cFr).build(){},Nq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","PutSubscriptionFilter",{}).n("CloudWatchLogsClient","PutSubscriptionFilterCommand").sc(uFr).build(){},Lq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","PutTransformer",{}).n("CloudWatchLogsClient","PutTransformerCommand").sc(lFr).build(){},Mq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","StartLiveTail",{eventStream:{output:!0}}).n("CloudWatchLogsClient","StartLiveTailCommand").sc(dFr).build(){},Fq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","StartQuery",{}).n("CloudWatchLogsClient","StartQueryCommand").sc(pFr).build(){},Bq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","StopQuery",{}).n("CloudWatchLogsClient","StopQueryCommand").sc(mFr).build(){},Uq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","TagLogGroup",{}).n("CloudWatchLogsClient","TagLogGroupCommand").sc(gFr).build(){},qq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","TagResource",{}).n("CloudWatchLogsClient","TagResourceCommand").sc(fFr).build(){},$q=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","TestMetricFilter",{}).n("CloudWatchLogsClient","TestMetricFilterCommand").sc(hFr).build(){},Gq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","TestTransformer",{}).n("CloudWatchLogsClient","TestTransformerCommand").sc(SFr).build(){},jq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","UntagLogGroup",{}).n("CloudWatchLogsClient","UntagLogGroupCommand").sc(EFr).build(){},Vq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","UntagResource",{}).n("CloudWatchLogsClient","UntagResourceCommand").sc(yFr).build(){},Hq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","UpdateAnomaly",{}).n("CloudWatchLogsClient","UpdateAnomalyCommand").sc(_Fr).build(){},zq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","UpdateDeliveryConfiguration",{}).n("CloudWatchLogsClient","UpdateDeliveryConfigurationCommand").sc(CFr).build(){},Wq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","UpdateLogAnomalyDetector",{}).n("CloudWatchLogsClient","UpdateLogAnomalyDetectorCommand").sc(RFr).build(){},Kq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","UpdateScheduledQuery",{}).n("CloudWatchLogsClient","UpdateScheduledQueryCommand").sc(vFr).build(){},xFr={AssociateKmsKeyCommand:gU,AssociateSourceToS3TableIntegrationCommand:fU,CancelExportTaskCommand:hU,CancelImportTaskCommand:SU,CreateDeliveryCommand:EU,CreateExportTaskCommand:yU,CreateImportTaskCommand:_U,CreateLogAnomalyDetectorCommand:CU,CreateLogGroupCommand:RU,CreateLogStreamCommand:vU,CreateScheduledQueryCommand:xU,DeleteAccountPolicyCommand:PU,DeleteDataProtectionPolicyCommand:bU,DeleteDeliveryCommand:IU,DeleteDeliveryDestinationCommand:AU,DeleteDeliveryDestinationPolicyCommand:TU,DeleteDeliverySourceCommand:wU,DeleteDestinationCommand:DU,DeleteIndexPolicyCommand:OU,DeleteIntegrationCommand:kU,DeleteLogAnomalyDetectorCommand:NU,DeleteLogGroupCommand:LU,DeleteLogStreamCommand:MU,DeleteMetricFilterCommand:FU,DeleteQueryDefinitionCommand:BU,DeleteResourcePolicyCommand:UU,DeleteRetentionPolicyCommand:qU,DeleteScheduledQueryCommand:$U,DeleteSubscriptionFilterCommand:GU,DeleteTransformerCommand:jU,DescribeAccountPoliciesCommand:VU,DescribeConfigurationTemplatesCommand:uv,DescribeDeliveriesCommand:lv,DescribeDeliveryDestinationsCommand:dv,DescribeDeliverySourcesCommand:pv,DescribeDestinationsCommand:mv,DescribeExportTasksCommand:HU,DescribeFieldIndexesCommand:zU,DescribeImportTaskBatchesCommand:WU,DescribeImportTasksCommand:KU,DescribeIndexPoliciesCommand:QU,DescribeLogGroupsCommand:gv,DescribeLogStreamsCommand:fv,DescribeMetricFiltersCommand:hv,DescribeQueriesCommand:XU,DescribeQueryDefinitionsCommand:JU,DescribeResourcePoliciesCommand:YU,DescribeSubscriptionFiltersCommand:Sv,DisassociateKmsKeyCommand:ZU,DisassociateSourceFromS3TableIntegrationCommand:eq,FilterLogEventsCommand:Ev,GetDataProtectionPolicyCommand:tq,GetDeliveryCommand:rq,GetDeliveryDestinationCommand:nq,GetDeliveryDestinationPolicyCommand:sq,GetDeliverySourceCommand:oq,GetIntegrationCommand:iq,GetLogAnomalyDetectorCommand:aq,GetLogEventsCommand:yv,GetLogFieldsCommand:cq,GetLogGroupFieldsCommand:uq,GetLogObjectCommand:lq,GetLogRecordCommand:dq,GetQueryResultsCommand:pq,GetScheduledQueryCommand:mq,GetScheduledQueryHistoryCommand:_v,GetTransformerCommand:gq,ListAggregateLogGroupSummariesCommand:Cv,ListAnomaliesCommand:Rv,ListIntegrationsCommand:fq,ListLogAnomalyDetectorsCommand:vv,ListLogGroupsCommand:hq,ListLogGroupsForQueryCommand:xv,ListScheduledQueriesCommand:Pv,ListSourcesForS3TableIntegrationCommand:bv,ListTagsForResourceCommand:Sq,ListTagsLogGroupCommand:Eq,PutAccountPolicyCommand:yq,PutDataProtectionPolicyCommand:_q,PutDeliveryDestinationCommand:Cq,PutDeliveryDestinationPolicyCommand:Rq,PutDeliverySourceCommand:vq,PutDestinationCommand:xq,PutDestinationPolicyCommand:Pq,PutIndexPolicyCommand:bq,PutIntegrationCommand:Iq,PutLogEventsCommand:Aq,PutLogGroupDeletionProtectionCommand:Tq,PutMetricFilterCommand:wq,PutQueryDefinitionCommand:Dq,PutResourcePolicyCommand:Oq,PutRetentionPolicyCommand:kq,PutSubscriptionFilterCommand:Nq,PutTransformerCommand:Lq,StartLiveTailCommand:Mq,StartQueryCommand:Fq,StopQueryCommand:Bq,TagLogGroupCommand:Uq,TagResourceCommand:qq,TestMetricFilterCommand:$q,TestTransformerCommand:Gq,UntagLogGroupCommand:jq,UntagResourceCommand:Vq,UpdateAnomalyCommand:Hq,UpdateDeliveryConfigurationCommand:zq,UpdateLogAnomalyDetectorCommand:Wq,UpdateScheduledQueryCommand:Kq},Qq=class extends fr{};G.createAggregatedClient(xFr,Qq);var PFr=vr.createPaginator(fr,uv,"nextToken","nextToken","limit"),bFr=vr.createPaginator(fr,lv,"nextToken","nextToken","limit"),IFr=vr.createPaginator(fr,dv,"nextToken","nextToken","limit"),AFr=vr.createPaginator(fr,pv,"nextToken","nextToken","limit"),TFr=vr.createPaginator(fr,mv,"nextToken","nextToken","limit"),wFr=vr.createPaginator(fr,gv,"nextToken","nextToken","limit"),DFr=vr.createPaginator(fr,fv,"nextToken","nextToken","limit"),OFr=vr.createPaginator(fr,hv,"nextToken","nextToken","limit"),kFr=vr.createPaginator(fr,Sv,"nextToken","nextToken","limit"),NFr=vr.createPaginator(fr,Ev,"nextToken","nextToken","limit"),LFr=vr.createPaginator(fr,yv,"nextToken","nextForwardToken","limit"),MFr=vr.createPaginator(fr,_v,"nextToken","nextToken","maxResults"),FFr=vr.createPaginator(fr,Cv,"nextToken","nextToken","limit"),BFr=vr.createPaginator(fr,Rv,"nextToken","nextToken","limit"),UFr=vr.createPaginator(fr,vv,"nextToken","nextToken","limit"),qFr=vr.createPaginator(fr,xv,"nextToken","nextToken","maxResults"),$Fr=vr.createPaginator(fr,Pv,"nextToken","nextToken","maxResults"),GFr=vr.createPaginator(fr,bv,"nextToken","nextToken","maxResults"),jFr={DATA_PROTECTION_POLICY:"DATA_PROTECTION_POLICY",FIELD_INDEX_POLICY:"FIELD_INDEX_POLICY",METRIC_EXTRACTION_POLICY:"METRIC_EXTRACTION_POLICY",SUBSCRIPTION_FILTER_POLICY:"SUBSCRIPTION_FILTER_POLICY",TRANSFORMER_POLICY:"TRANSFORMER_POLICY"},VFr={ALL:"ALL"},HFr={CLIENT_ERROR:"CLIENT_ERROR",COMPLETE:"COMPLETE",FAILED:"FAILED",IN_PROGRESS:"IN_PROGRESS"},zFr={Active:"Active",Baseline:"Baseline",Suppressed:"Suppressed"},WFr={ANALYZING:"ANALYZING",DELETED:"DELETED",FAILED:"FAILED",INITIALIZING:"INITIALIZING",PAUSED:"PAUSED",TRAINING:"TRAINING"},KFr={FIFTEEN_MIN:"FIFTEEN_MIN",FIVE_MIN:"FIVE_MIN",ONE_HOUR:"ONE_HOUR",ONE_MIN:"ONE_MIN",TEN_MIN:"TEN_MIN",THIRTY_MIN:"THIRTY_MIN"},QFr={CANCELLED:"CANCELLED",COMPLETED:"COMPLETED",FAILED:"FAILED",IN_PROGRESS:"IN_PROGRESS"},XFr={JSON:"json",PARQUET:"parquet",PLAIN:"plain",RAW:"raw",W3C:"w3c"},JFr={CWL:"CWL",FH:"FH",S3:"S3",XRAY:"XRAY"},YFr={DELIVERY:"DELIVERY",INFREQUENT_ACCESS:"INFREQUENT_ACCESS",STANDARD:"STANDARD"},ZFr={CWLI:"CWLI",PPL:"PPL",SQL:"SQL"},e3r={DISABLED:"DISABLED",ENABLED:"ENABLED"},t3r={ACTIVATED:"ACTIVATED",ARCHIVED:"ARCHIVED",DELETED:"DELETED",DISABLED:"DISABLED"},r3r={CANCELLED:"CANCELLED",COMPLETED:"COMPLETED",FAILED:"FAILED",PENDING:"PENDING",PENDING_CANCEL:"PENDING_CANCEL",RUNNING:"RUNNING"},n3r={FACET:"FACET",FIELD_INDEX:"FIELD_INDEX"},s3r={ACCOUNT:"ACCOUNT",LOG_GROUP:"LOG_GROUP"},o3r={ACCOUNT_DATA_PROTECTION:"ACCOUNT_DATA_PROTECTION"},i3r={LastEventTime:"LastEventTime",LogStreamName:"LogStreamName"},a3r={Bits:"Bits",BitsSecond:"Bits/Second",Bytes:"Bytes",BytesSecond:"Bytes/Second",Count:"Count",CountSecond:"Count/Second",Gigabits:"Gigabits",GigabitsSecond:"Gigabits/Second",Gigabytes:"Gigabytes",GigabytesSecond:"Gigabytes/Second",Kilobits:"Kilobits",KilobitsSecond:"Kilobits/Second",Kilobytes:"Kilobytes",KilobytesSecond:"Kilobytes/Second",Megabits:"Megabits",MegabitsSecond:"Megabits/Second",Megabytes:"Megabytes",MegabytesSecond:"Megabytes/Second",Microseconds:"Microseconds",Milliseconds:"Milliseconds",None:"None",Percent:"Percent",Seconds:"Seconds",Terabits:"Terabits",TerabitsSecond:"Terabits/Second",Terabytes:"Terabytes",TerabytesSecond:"Terabytes/Second"},c3r={Cancelled:"Cancelled",Complete:"Complete",Failed:"Failed",Running:"Running",Scheduled:"Scheduled",Timeout:"Timeout",Unknown:"Unknown"},u3r={ACCOUNT:"ACCOUNT",RESOURCE:"RESOURCE"},l3r={ByLogStream:"ByLogStream",Random:"Random"},d3r={ENTITY_SIZE_TOO_LARGE:"EntitySizeTooLarge",INVALID_ATTRIBUTES:"InvalidAttributes",INVALID_ENTITY:"InvalidEntity",INVALID_KEY_ATTRIBUTE:"InvalidKeyAttributes",INVALID_TYPE_VALUE:"InvalidTypeValue",MISSING_REQUIRED_FIELDS:"MissingRequiredFields",UNSUPPORTED_LOG_GROUP_TYPE:"UnsupportedLogGroupType"},p3r={AWSWAF:"AWSWAF",CLOUD_TRAIL:"CloudTrail",EKS_AUDIT:"EKSAudit",ROUTE53_RESOLVER:"Route53Resolver",VPC_FLOW:"VPCFlow"},m3r={Complete:"Complete",Failed:"Failed",InvalidQuery:"InvalidQuery",Running:"Running",Timeout:"Timeout"},g3r={FIRST:"first",LAST:"last"},f3r={ACTIVE:"ACTIVE",ERROR:"ERROR",NOT_FOUND:"NOT_FOUND"},h3r={ACTIVE:"ACTIVE",FAILED:"FAILED",PROVISIONING:"PROVISIONING"},S3r={OPENSEARCH:"OPENSEARCH"},E3r={S3:"S3"},y3r={V1_1:"V1.1",V1_5:"V1.5"},_3r={BOOLEAN:"boolean",DOUBLE:"double",INTEGER:"integer",STRING:"string"},C3r={DATA_SOURCE_NAME_AND_TYPE:"DATA_SOURCE_NAME_AND_TYPE",DATA_SOURCE_NAME_TYPE_AND_FORMAT:"DATA_SOURCE_NAME_TYPE_AND_FORMAT"},R3r={SUPPRESSED:"SUPPRESSED",UNSUPPRESSED:"UNSUPPRESSED"},v3r={ACTIVE:"ACTIVE",DATA_SOURCE_DELETE_IN_PROGRESS:"DATA_SOURCE_DELETE_IN_PROGRESS",FAILED:"FAILED",UNHEALTHY:"UNHEALTHY"},x3r={HOURS:"HOURS",MINUTES:"MINUTES",SECONDS:"SECONDS"},P3r={INFINITE:"INFINITE",LIMITED:"LIMITED"};Object.defineProperty(w,"$Command",{enumerable:!0,get:function(){return G.Command}});Object.defineProperty(w,"__Client",{enumerable:!0,get:function(){return G.Client}});w.AccessDeniedException=bze;w.ActionStatus=HFr;w.AnomalyDetectorStatus=WFr;w.AssociateKmsKeyCommand=gU;w.AssociateSourceToS3TableIntegrationCommand=fU;w.CancelExportTaskCommand=hU;w.CancelImportTaskCommand=SU;w.CloudWatchLogs=Qq;w.CloudWatchLogsClient=fr;w.CloudWatchLogsServiceException=ur;w.ConflictException=Vze;w.CreateDeliveryCommand=EU;w.CreateExportTaskCommand=yU;w.CreateImportTaskCommand=_U;w.CreateLogAnomalyDetectorCommand=CU;w.CreateLogGroupCommand=RU;w.CreateLogStreamCommand=vU;w.CreateScheduledQueryCommand=xU;w.DataAlreadyAcceptedException=Yze;w.DataProtectionStatus=t3r;w.DeleteAccountPolicyCommand=PU;w.DeleteDataProtectionPolicyCommand=bU;w.DeleteDeliveryCommand=IU;w.DeleteDeliveryDestinationCommand=AU;w.DeleteDeliveryDestinationPolicyCommand=TU;w.DeleteDeliverySourceCommand=wU;w.DeleteDestinationCommand=DU;w.DeleteIndexPolicyCommand=OU;w.DeleteIntegrationCommand=kU;w.DeleteLogAnomalyDetectorCommand=NU;w.DeleteLogGroupCommand=LU;w.DeleteLogStreamCommand=MU;w.DeleteMetricFilterCommand=FU;w.DeleteQueryDefinitionCommand=BU;w.DeleteResourcePolicyCommand=UU;w.DeleteRetentionPolicyCommand=qU;w.DeleteScheduledQueryCommand=$U;w.DeleteSubscriptionFilterCommand=GU;w.DeleteTransformerCommand=jU;w.DeliveryDestinationType=JFr;w.DescribeAccountPoliciesCommand=VU;w.DescribeConfigurationTemplatesCommand=uv;w.DescribeDeliveriesCommand=lv;w.DescribeDeliveryDestinationsCommand=dv;w.DescribeDeliverySourcesCommand=pv;w.DescribeDestinationsCommand=mv;w.DescribeExportTasksCommand=HU;w.DescribeFieldIndexesCommand=zU;w.DescribeImportTaskBatchesCommand=WU;w.DescribeImportTasksCommand=KU;w.DescribeIndexPoliciesCommand=QU;w.DescribeLogGroupsCommand=gv;w.DescribeLogStreamsCommand=fv;w.DescribeMetricFiltersCommand=hv;w.DescribeQueriesCommand=XU;w.DescribeQueryDefinitionsCommand=JU;w.DescribeResourcePoliciesCommand=YU;w.DescribeSubscriptionFiltersCommand=Sv;w.DisassociateKmsKeyCommand=ZU;w.DisassociateSourceFromS3TableIntegrationCommand=eq;w.Distribution=l3r;w.EntityRejectionErrorType=d3r;w.EvaluationFrequency=KFr;w.EventSource=p3r;w.ExecutionStatus=m3r;w.ExportTaskStatusCode=r3r;w.FilterLogEventsCommand=Ev;w.FlattenedElement=g3r;w.GetDataProtectionPolicyCommand=tq;w.GetDeliveryCommand=rq;w.GetDeliveryDestinationCommand=nq;w.GetDeliveryDestinationPolicyCommand=sq;w.GetDeliverySourceCommand=oq;w.GetIntegrationCommand=iq;w.GetLogAnomalyDetectorCommand=aq;w.GetLogEventsCommand=yv;w.GetLogFieldsCommand=cq;w.GetLogGroupFieldsCommand=uq;w.GetLogObjectCommand=lq;w.GetLogRecordCommand=dq;w.GetQueryResultsCommand=pq;w.GetScheduledQueryCommand=mq;w.GetScheduledQueryHistoryCommand=_v;w.GetTransformerCommand=gq;w.ImportStatus=QFr;w.IndexSource=s3r;w.IndexType=n3r;w.InheritedProperty=o3r;w.IntegrationStatus=h3r;w.IntegrationType=S3r;w.InternalServerException=Mze;w.InternalStreamingException=eWe;w.InvalidOperationException=Gze;w.InvalidParameterException=Aze;w.InvalidSequenceTokenException=rWe;w.LimitExceededException=Kze;w.ListAggregateLogGroupSummariesCommand=Cv;w.ListAggregateLogGroupSummariesGroupBy=C3r;w.ListAnomaliesCommand=Rv;w.ListIntegrationsCommand=fq;w.ListLogAnomalyDetectorsCommand=vv;w.ListLogGroupsCommand=hq;w.ListLogGroupsForQueryCommand=xv;w.ListScheduledQueriesCommand=Pv;w.ListSourcesForS3TableIntegrationCommand=bv;w.ListTagsForResourceCommand=Sq;w.ListTagsLogGroupCommand=Eq;w.LogGroupClass=YFr;w.MalformedQueryException=lWe;w.OCSFVersion=y3r;w.OpenSearchResourceStatusType=f3r;w.OperationAbortedException=wze;w.OrderBy=i3r;w.OutputFormat=XFr;w.PolicyScope=u3r;w.PolicyType=jFr;w.PutAccountPolicyCommand=yq;w.PutDataProtectionPolicyCommand=_q;w.PutDeliveryDestinationCommand=Cq;w.PutDeliveryDestinationPolicyCommand=Rq;w.PutDeliverySourceCommand=vq;w.PutDestinationCommand=xq;w.PutDestinationPolicyCommand=Pq;w.PutIndexPolicyCommand=bq;w.PutIntegrationCommand=Iq;w.PutLogEventsCommand=Aq;w.PutLogGroupDeletionProtectionCommand=Tq;w.PutMetricFilterCommand=wq;w.PutQueryDefinitionCommand=Dq;w.PutResourcePolicyCommand=Oq;w.PutRetentionPolicyCommand=kq;w.PutSubscriptionFilterCommand=Nq;w.PutTransformerCommand=Lq;w.QueryLanguage=ZFr;w.QueryStatus=c3r;w.ResourceAlreadyExistsException=Xze;w.ResourceNotFoundException=Oze;w.S3TableIntegrationSourceStatus=v3r;w.ScheduledQueryDestinationType=E3r;w.ScheduledQueryState=e3r;w.Scope=VFr;w.ServiceQuotaExceededException=zze;w.ServiceUnavailableException=Nze;w.SessionStreamingException=iWe;w.SessionTimeoutException=cWe;w.StandardUnit=a3r;w.StartLiveTailCommand=Mq;w.StartQueryCommand=Fq;w.State=zFr;w.StopQueryCommand=Bq;w.SuppressionState=R3r;w.SuppressionType=P3r;w.SuppressionUnit=x3r;w.TagLogGroupCommand=Uq;w.TagResourceCommand=qq;w.TestMetricFilterCommand=$q;w.TestTransformerCommand=Gq;w.ThrottlingException=Bze;w.TooManyTagsException=pWe;w.Type=_3r;w.UnrecognizedClientException=sWe;w.UntagLogGroupCommand=jq;w.UntagResourceCommand=Vq;w.UpdateAnomalyCommand=Hq;w.UpdateDeliveryConfigurationCommand=zq;w.UpdateLogAnomalyDetectorCommand=Wq;w.UpdateScheduledQueryCommand=Kq;w.ValidationException=qze;w.paginateDescribeConfigurationTemplates=PFr;w.paginateDescribeDeliveries=bFr;w.paginateDescribeDeliveryDestinations=IFr;w.paginateDescribeDeliverySources=AFr;w.paginateDescribeDestinations=TFr;w.paginateDescribeLogGroups=wFr;w.paginateDescribeLogStreams=DFr;w.paginateDescribeMetricFilters=OFr;w.paginateDescribeSubscriptionFilters=kFr;w.paginateFilterLogEvents=NFr;w.paginateGetLogEvents=LFr;w.paginateGetScheduledQueryHistory=MFr;w.paginateListAggregateLogGroupSummaries=FFr;w.paginateListAnomalies=BFr;w.paginateListLogAnomalyDetectors=UFr;w.paginateListLogGroupsForQuery=qFr;w.paginateListScheduledQueries=$Fr;w.paginateListSourcesForS3TableIntegration=GFr});var F3r={};wt(F3r,{CONTENT_TYPE:()=>i6e,X_ORIGINAL_CONTENT_TYPE:()=>mJ,app:()=>L3r,get:()=>M3r,processLambdaResponse:()=>a6e});module.exports=ue(F3r);var w$=O(B$(),1),D$=O(require("path"),1),$Ke=require("url"),GKe=O(zJ(),1);var Wfe=O(CA(),1),tT=O(DV(),1);var wy=()=>!Object.prototype.hasOwnProperty.call(process.env,"AWS_LAMBDA_FUNCTION_NAME"),zfe=(t,e,r)=>{let n=e instanceof Error?e:new Error(String(e));console.error(JSON.stringify({[`__MRT__${t}`]:"error",type:"MRT_internal",error:n.message,stack:n.stack,...r}))};var Dy=class t extends Error{constructor(e){super(e),this.name="DataStoreNotFoundError",Object.setPrototypeOf(this,t.prototype)}},Oy=class t extends Error{constructor(e){super(e),this.name="DataStoreServiceError",Object.setPrototypeOf(this,t.prototype)}},wg=class t extends Error{constructor(e){super(e),this.name="DataStoreUnavailableError",Object.setPrototypeOf(this,t.prototype)}},eT=class t{_tableName="";_ddb=null;static _instance=null;static _testDocumentClient=null;static _testLogMRTError=null;constructor(){}getClient(){if(!this.isDataStoreAvailable())throw new wg("The data store is unavailable.");return t._testDocumentClient?(this._tableName=`DataAccessLayer-${process.env.AWS_REGION}`,t._testDocumentClient):(this._ddb||(this._tableName=`DataAccessLayer-${process.env.AWS_REGION}`,this._ddb=tT.DynamoDBDocumentClient.from(new Wfe.DynamoDBClient({region:process.env.AWS_REGION}))),this._ddb)}static getDataStore(){return t._instance||(t._instance=new t),t._instance}isDataStoreAvailable(){return!!(process.env.AWS_REGION&&process.env.MOBIFY_PROPERTY_ID&&process.env.DEPLOY_TARGET)}async getEntry(e){if(!this.isDataStoreAvailable())throw new wg("The data store is unavailable.");let r=this.getClient(),n;try{n=await r.send(new tT.GetCommand({TableName:this._tableName,Key:{projectEnvironment:`${process.env.MOBIFY_PROPERTY_ID} ${process.env.DEPLOY_TARGET}`,key:e}}))}catch(s){throw(t._testLogMRTError??zfe)("data_store",s,{key:e,tableName:this._tableName}),new Oy("Data store request failed.")}if(!n.Item?.value)throw new Dy(`Data store entry '${e}' not found.`);return{key:e,value:n.Item.value}}};var Zfe=require("set-cookie-parser"),ehe=require("change-case"),the=require("url"),rT="access-control-allow-origin",Kfe="host",Qfe="location",Xfe="origin",Dg="set-cookie",OV="user-agent",Jfe=["http","aws"],Yfe="x-proxy-request-url";var Mut=8192,Og=class{httpFormat;headers;_modified;constructor(e,r){if(!Jfe.includes(r))throw new Error(`Headers format must be one of ${Jfe.join(", ")}`);this.httpFormat=r==="http",this.headers={};for(let[n,s]of Object.entries(e))this.httpFormat?n===Dg?this.headers[n]=s.slice():this.headers[n]=s.split(/,\s*/).map(o=>o.trim()):this.headers[n]=s.map(o=>o.value.trim());this._modified=!1}get modified(){return this._modified}keys(){return Object.keys(this.headers)}getSetCookie(){return this.headers[Dg]||[]}setSetCookie(e){if(this._modified=!0,!(e&&e.length)){delete this.headers[Dg];return}this.headers[Dg]=e.slice()}getHeader(e){let r=e.toLowerCase(),n=this.headers[r];if(n)return n[0]}setHeader(e,r){this._modified=!0;let n=e.toLowerCase();this.headers[n]=[r]}deleteHeader(e){this._modified=!0;let r=e.toLowerCase();delete this.headers[r]}toAWSFormat(){let e={};for(let[r,n]of Object.entries(this.headers)){let s=r.includes("_")?r:(0,ehe.trainCase)(r);e[r]=n.map(o=>({key:s,value:o}))}return e}toHTTPFormat(){let e={};for(let[r,n]of Object.entries(this.headers))r===Dg?e[r]=n.slice():e[r]=n.join(", ");return e}toObject(){return this.httpFormat?this.toHTTPFormat():this.toAWSFormat()}},Fut=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],But=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],nT=t=>{let e=Number(t).toString();return e.length>1?e:`0${e}`},Uut=t=>{let e=[nT(t.getUTCHours()),nT(t.getUTCMinutes()),nT(t.getUTCSeconds())].join(":");return[`${Fut[t.getUTCDay()]},`,nT(t.getUTCDate()),But[t.getUTCMonth()],t.getUTCFullYear(),e,"GMT"].join(" ")},qut=t=>{let e=[`${t.name}=${t.value}`];return t.path&&e.push(`Path=${t.path}`),t.expires&&e.push(`Expires=${Uut(t.expires)}`),t.domain&&e.push(`Domain=${t.domain}`),t.maxAge&&e.push(`Max-Age=${t.maxAge}`),t.secure&&e.push("Secure"),t.httpOnly&&e.push("HttpOnly"),t.sameSite&&e.push(`SameSite=${t.sameSite}`),e.join("; ")},kV="IPV6",NV="IPV4",LV="localhost",$ut=[{type:kV,regexp:/^\[([a-fA-F0-9:]+)\]:(\d+)$/,isIPOrLocalhost:!0,hasPort:!0},{type:kV,regexp:/^([a-fA-F0-9:]+)$/,isIPOrLocalhost:!0,hasPort:!1},{type:NV,regexp:/^(\d+\.\d+\.\d+\.\d+):(\d+)$/,isIPOrLocalhost:!0,hasPort:!0},{type:NV,regexp:/^(\d+\.\d+\.\d+\.\d+)$/,isIPOrLocalhost:!0,hasPort:!1},{type:LV,regexp:/^(localhost):(\d+)$/,isIPOrLocalhost:!0,hasPort:!0},{type:LV,regexp:/^(localhost)$/,isIPOrLocalhost:!0,hasPort:!1},{type:null,regexp:/(.+):\d+/,isIPOrLocalhost:!1,hasPort:!0}],Gut=t=>{for(let e of $ut){let r=e.regexp.exec(t);if(!r)continue;let n={host:t,hostname:r[1],isIPOrLocalhost:e.isIPOrLocalhost};if(e.hasPort){let s;switch(e.type){case kV:s=n.host.split(e.regexp).filter(o=>o.length>0);break;case NV:case LV:default:s=n.host.split(":");break}[n.hostname,n.port]=s}return n}return{host:t,hostname:t,isIPOrLocalhost:!1}},jut=(t,e,r)=>{let n=t.split(".").filter(u=>u),s=n.join("."),o=Gut(e);if(r===s)return o.hostname;if(!r.endsWith(s))return t;if(o.isIPOrLocalhost)return o.hostname;let a=r.split(".").length-n.length;return o.hostname.split(".").slice(a).join(".")},Vut=({appHostname:t,setCookies:e,targetHost:r,logging:n=!1})=>e&&e.length?(0,Zfe.parse)(e,{decodeValues:!1}).map(i=>{if(i.domain){let a=jut(i.domain,t,r);n&&console.log(`Rewriting proxy response set-cookie header domain from "${i.domain}" to "${a}"`),i.domain=a}return i}).map(qut):[],rhe=({appHostname:t,caching:e,headers:r,headerFormat:n="http",proxyPath:s,requestUrl:o,statusCode:i=200,targetProtocol:a,targetHost:c,appProtocol:u="https",logging:l=!1})=>{let d=new Og(r?{...r}:{},n),p=`${u}://${t}`,g=`${a}://${c}`;if(o){let D=(o.startsWith("/")?`${g}${o}`:o).slice(0,Mut);l&&console.log(`Setting proxy response ${Yfe} header to "${D}"`),d.setHeader(Yfe,D)}let y=s.endsWith("/")?s.slice(0,-1):s,R=d.getHeader(rT);if(l&&R&&console.log(`Header ${rT} has value "${R}"`),R===g&&(l&&console.log(`Rewriting proxy response ${rT} header to "${p}"`),d.setHeader(rT,p)),e)d.deleteHeader(Dg);else{let D=Vut({appHostname:t,setCookies:d.getSetCookie(),targetHost:c,logging:l});d.setSetCookie(D)}if(i>=301&&i<=308){l&&console.log(`Status code is ${i}, checking Location header`);let D=d.getHeader(Qfe);if(l&&console.log(`Location header has value "${D}"`),D){let B=new the.URL(D,g);if(B.protocol===`${a}:`&&B.host===c){B.protocol=u,B.host=t,B.pathname=y+B.pathname;let M=B.toString();d.setHeader(Qfe,M),l&&console.log(`Rewriting proxy response Location header from "${D}" to "${M}"`)}}}return d.toObject()},Hut=["x-mobify-access-key","x-sfdc-access-control"];var zut={"x-mobify":"true"},Wut={accept:!0,"accept-charset":!0,"accept-encoding":!0,"accept-language":!0,authorization:!0,range:!0,host:!0,origin:!0,"if-match":!0,"if-modified-since":!0,"if-none-match":!0,"if-range":!0,"if-unmodified-since":!0},nhe=({caching:t=!1,headers:e,headerFormat:r="http",targetProtocol:n,targetHost:s,logging:o=!1})=>{if(!e)return{};let i=new Og({...e},r);Hut.forEach(l=>i.deleteHeader(l)),t&&(i.keys().forEach(l=>{Wut[l]||i.deleteHeader(l)}),i.setHeader(OV,"Amazon CloudFront"));let a=i.getHeader(Kfe);a!==s&&(o&&console.log(`Rewriting proxy request Host header from "${a}" to "${s}"`),i.setHeader(Kfe,s));let c=i.getHeader(Xfe),u=`${n}://${s}`;return c&&c!==u&&i.setHeader(Xfe,u),i.getHeader(OV)&&i.setHeader(OV,"Amazon CloudFront"),Object.entries(zut).forEach(([l,d])=>{i.setHeader(l,d)}),i.toObject()};var she=require("http-proxy-middleware"),Kut=/^\/mobify\/(proxy|caching)\/([^/]+)/,Qut=({proxyRequest:t,incomingRequest:e,caching:r=!1,proxyPath:n,targetHost:s,targetProtocol:o,rewriteRequestHeaders:i})=>{let a=e.headers,u=(i??nhe)({caching:r,headers:a,headerFormat:"http",targetHost:s,targetProtocol:o});Object.entries(u).forEach(([l,d])=>t.setHeader(l,d)),Object.keys(a).forEach(l=>{u[l]||t.removeHeader(l)})},Xut=({appHostname:t,proxyPath:e,targetProtocol:r,targetHost:n,appProtocol:s="https",caching:o},i)=>{let a=i??she.createProxyMiddleware,c=`${r}://${n}`;return{fn:a({changeOrigin:!0,cookieDomainRewrite:{targetHost:t},cookiePathRewrite:!1,followRedirects:!1,onError:(d,p,g)=>{g.writeHead(500,{"Content-Type":"text/plain"}),g.end(`Error in proxy request to ${p.url}: ${d}`)},onProxyReq:(d,p)=>{Qut({proxyRequest:d,incomingRequest:p,caching:o,proxyPath:e,targetHost:n,targetProtocol:r})},onProxyRes:(d,p)=>{let g=p.url?.replace(Kut,"");d.headers=rhe({appHostname:t,caching:!!o,targetHost:n,targetProtocol:r,appProtocol:s,proxyPath:e,statusCode:d.statusCode,headers:d.headers,headerFormat:"http",requestUrl:g})},target:c}),path:e}},ohe=(t,e,r="https",n)=>{let s=[];return t.forEach(o=>{let i=o.host.startsWith("https://")?"https":"http",a=o.host.replace(`${i}://`,""),c=Xut({proxyPath:o.path,targetProtocol:i,targetHost:a,appProtocol:r,appHostname:e,caching:!1},n);s.push(c)}),s};var ahe=O(B$(),1),FV=O(require("fs"),1),che=O(require("path"),1),uhe=O(require("mime-types"),1),lhe=O(require("qs"),1),BV="/mobify",dhe=`${BV}/proxy`,Jut=`${BV}/caching`,Yut=`${BV}/bundle`,Zut=dhe,elt=Yut,tlt=["x-api-key","x-apigateway-event","x-apigateway-context","x-mobify-access-key","x-sfdc-access-control"],MV="x-mobify-request-class",ihe="x-mobify-querystring",UV="x-mobify-rp-local",rlt="content-type",nlt="max-age=0, nocache, nostore, must-revalidate",slt=t=>t.startsWith(Zut)||t.startsWith(elt),olt=async t=>t&&FV.default.existsSync(t)?await import(t):null,phe=()=>({appHostname:process.env.EXTERNAL_DOMAIN_NAME||"localhost:2401",deployTarget:process.env.DEPLOY_TARGET||"local-target",environment:process.env.ENVIRONMENT||"development"}),mhe=(t,e,r)=>{let n={};r?(n=lhe.default.parse(r),t.originalUrl=`${e}?${r}`):t.originalUrl=e,Object.defineProperty(t,"query",{value:{...n},writable:!0,enumerable:!0,configurable:!0})},ghe=(t,e=!1)=>{e&&delete t.headers[UV],tlt.forEach(r=>{delete t.headers[r]})},fhe=(t,e)=>{let r=e,n=t.headers[ihe];return n&&n!==""&&(r=n),delete t.headers[ihe],r},hhe=(t,e)=>{let r=async(s,o)=>{if(slt(s.originalUrl))return;let i=await olt(t),a=s.originalUrl.split("?")[1],c=a||void 0,u=s.originalUrl.split("?")[0];if(c=fhe(s,c),i){let l=new Og(s.headers,"http"),{appHostname:d,deployTarget:p,environment:g}=phe(),y=i.processRequest({headers:l,path:s.path,querystring:c,getRequestClass:()=>l.getHeader(MV),setRequestClass:R=>l.setHeader(MV,R),parameters:{deployTarget:p,appHostname:d,proxyConfigs:e||[],environment:g}});console.assert(y&&"path"in y&&"querystring"in y,`Expected processRequest to return an object with "path" and "querystring" properties, but got ${JSON.stringify(y,null,2)}`),c=y.querystring,u=y.path,l.modified&&(s.headers=l.toObject())}c!==a&&mhe(s,u,c),o.locals.requestClass=s.headers[MV],s.headers[UV]="true"};return(s,o,i)=>{if(s.path==="/"&&!["GET","HEAD","OPTIONS"].includes(s.method)){o.sendStatus(405);return}r(s,o).then(()=>{ghe(s,!1),i()}).catch(a=>{i(a)})}},She=(t,e="http",r=!1,n)=>{if(!t)return[];let{appHostname:s}=phe(),o=ohe(t,s,e,n),i=[];return o.forEach(a=>{let c=`${dhe}/${a.path}`,u=`${Jut}/${a.path}`;i.push({fn:a.fn,path:c}),r&&i.push({fn:a.fn,path:u})}),i},ilt=(t,e)=>{let r=che.default.basename(e),n=uhe.default.lookup(r)||"application/octet-stream";t.set(rlt,n);let s=FV.default.statSync(e).mtime,o=s.toUTCString();t.set("date",o),t.set("last-modified",o),t.set("etag",s.getTime().toString()),t.set("cache-control",nlt)},Ehe=t=>ahe.default.static(t,{dotfiles:"deny",setHeaders:ilt,fallthrough:!1}),yhe=()=>(t,e,r)=>{t.headers.host=process.env.EXTERNAL_DOMAIN_NAME||"localhost:2401",r()},_he=()=>(t,e,r)=>{if(!t.headers[UV]){let n=t.originalUrl.split("?")[1]||void 0,s=fhe(t,n),o=t.originalUrl.split("?")[0];mhe(t,o,s)}ghe(t,!0),r()};var lO=O(Wxe(),1);var gPt=()=>!wy(),fPt="ssr",Wz=()=>({Project:process.env.MOBIFY_PROPERTY_ID||"UNKNOWN",Target:process.env.DEPLOY_TARGET||"UNKNOWN"}),Q_=class t{_CW=null;_queue=[];static _override=!1;static _instance=null;static _testClient=null;constructor(){this._CW=null,this._queue=[]}get queueLength(){return this._queue.length}_setup(){return t._testClient?(this._CW=t._testClient,this._CW):(!this._CW&&(gPt()||t._override)&&(this._CW=new lO.CloudWatchClient({region:process.env.AWS_REGION||"us-east-1",maxAttempts:1})),this._CW)}_convertToMetricDatum(e,r){let n={MetricName:e.name,Value:e.value||0,Timestamp:e.timestamp instanceof Date?e.timestamp:r,Unit:e.unit||"Count"};if(e.dimensions){let s=[];Object.entries(e.dimensions).forEach(([o,i])=>{i&&s.push({Name:o,Value:i})}),s.length>0&&(n.Dimensions=s)}return n}async _putMetricData(e,r){if(!e)return Promise.resolve();try{let n=new lO.PutMetricDataCommand({MetricData:r,Namespace:fPt});await e.send(n)}catch(n){console.warn(`Metrics: error sending data: ${n}`)}}_sendBatchedMetrics(e){if(e.length===0)return;let r=this._setup(),n=[],s=20;for(let o=0;o{console.warn(`Metrics: error during batch send: ${o}`)})}flush(){let e=[...this._queue];return this._queue=[],this._sendBatchedMetrics(e),Promise.resolve()}send(e,r=!1){let n=new Date,s=e.map(o=>this._convertToMetricDatum(o,n));r?this._sendBatchedMetrics(s):this._queue.push(...s)}static getSender(){return t._instance||(t._instance=new t),t._instance}};Q_._override=!!process.env.SEND_CW_METRICS;var ibt=require("http"),abt=require("node:stream/promises"),uW=O(require("node:zlib"),1),cbt=O(mPe(),1),ubt=O(fPe(),1);var QPt=Object.defineProperty,Ee=(t,e)=>QPt(t,"name",{value:e,configurable:!0});var EPe=require("node:http"),Y8r=require("node:stream"),xPe=require("node:http"),bPe=require("node:http"),yPe=["gzip","deflate","br"],_Pe=["image/png","image/jpeg","image/jpg","image/avif","image/bmp","image/x-png","image/gif","image/webp","video/mp4","application/pdf"],pO={},Zz={context:null,event:null};function CPe(){return Zz}Ee(CPe,"getCurrentInvoke");function mO({event:t,context:e}){Zz.event=t,Zz.context=e}Ee(mO,"setCurrentInvoke");function Hc(t,e){let r=e?"base64":"utf8",n=Buffer.from(t,r),s=Buffer.byteLength(n,r);return[n,s]}Ee(Hc,"getEventBodyAsBuffer");function mp(t,e=",",r=!1){return Object.keys(t).reduce((n,s)=>{let o=r?s.toLowerCase():s,i=t[s];return Array.isArray(i)?n[o]=i.join(e):n[o]=(i??"")+"",n},{})}Ee(mp,"getFlattenedHeadersMap");function J_(t){return Object.keys(t).reduce((e,r)=>{let n=t[r];return e[r.toLowerCase()]=Array.isArray(n)?n.map(String):[String(n)],e},{})}Ee(J_,"getMultiValueHeadersMap");function gO(t){return Object.keys(t).reduce((e,r)=>{let n=t[r],s=r.toLowerCase();return Array.isArray(n)?s!=="set-cookie"?e.headers[r]=n.join(","):e.cookies.push(...n):s==="set-cookie"&&n!==void 0?e.cookies.push(n??""):e.headers[r]=String(n??""),e},{cookies:[],headers:{}})}Ee(gO,"getFlattenedHeadersMapAndCookies");function eW(t){if(!t)return{};let e={},r=t.trim().split(` +`);for(let n=0;n"u"?e[i]=a:Array.isArray(e[i])?e[i].push(a):e[i]=[e[i],a]}return e}Ee(eW,"parseHeaders");function fO(t){let e={};for(let[r,n]of Object.entries(t))e[r.toLowerCase()]=n;return e}Ee(fO,"keysToLowercase");function tW(t,e){let r=t["content-encoding"];return r?(Array.isArray(r)||(r=r.split(",")),r.some(n=>e.includes(n.trim()))):!1}Ee(tW,"isContentEncodingBinary");function rW(t){let e=t["content-type"],r=Array.isArray(e)?e[0]||"":e||"";if(!e)return"";let n=r.indexOf(";");return n===-1?r:r.slice(0,n)}Ee(rW,"getContentType");function nW(t,e){let r=rW(t);return r?e.includes(r.trim()):!1}Ee(nW,"isContentTypeBinary");function hO(t,e){return"isBinary"in e?e.isBinary===!1?!1:e.isBinary(t):tW(t,e.contentEncodings)||nW(t,e.contentTypes)}Ee(hO,"isBinary");var yr=Ee(()=>{},"NO_OP"),RPe=Symbol("InternalLogger"),XPt={debug:[["debug","debug"],["verbose","debug"],["info","info"],["error","error"],["warn","warn"]],verbose:[["verbose","debug"],["info","info"],["error","error"],["warn","warn"]],info:[["info","info"],["error","error"],["warn","warn"]],warn:[["warn","warn"],["error","error"]],error:[["error","error"]],none:[]},JPt=Ee(t=>typeof t=="function"?t():t,"lazyPrint"),YPt=Ee(t=>(e,...r)=>console[t](e,...r.map(JPt)),"print");function sW({level:t}={level:"error"}){let e=XPt[t];if(!e)throw new Error("Invalid log level");let r={[RPe]:!0,error:yr,debug:yr,info:yr,verbose:yr,warn:yr};for(let[n,s]of e)r[n]=YPt(s);return r}Ee(sW,"createDefaultLogger");function vPe(t){return!!t[RPe]}Ee(vPe,"isInternalLogger");function nr(t,e){return t===void 0?e:t}Ee(nr,"getDefaultIfUndefined");function xl(t,e){if(String(e||"").length===0)return t;if(typeof e=="string")return`${t}?${e}`;let r=oW(e);return r?`${t}?${r}`:t}Ee(xl,"getPathWithQueryStringParams");function oW(t){let e=new URLSearchParams,r=Object.entries(t||{});if(r.length===0)return"";for(let[n,s]of r){if(!Array.isArray(s)){e.append(n,s||"");continue}for(let o of s)e.append(n,o)}return e.toString()}Ee(oW,"getQueryParamsStringFromRecord");var ZPt=Ee(t=>t,"NOOPBasePath");function gp(t){if(!t)return ZPt;let e=t.length;return r=>r.startsWith(t)?r.slice(r.indexOf(t)+e,r.length)||"/":r}Ee(gp,"buildStripBasePath");function iW(t){return!!("readableEnded"in t&&t.readableEnded||"writableEnded"in t&&t.writableEnded)}Ee(iW,"isStreamEnded");function SO(t){return iW(t)?Promise.resolve(t):new Promise((e,r)=>{let n=!1;function s(o){n||(n=!0,t.removeListener("error",s),t.removeListener("end",s),t.removeListener("finish",s),o?r(o):e(t))}Ee(s,"complete"),t.once("error",s),t.once("end",s),t.once("finish",s)})}Ee(SO,"waitForStreamComplete");var ebt=443,aW=class extends EPe.IncomingMessage{static{Ee(this,"ServerlessRequest")}constructor({method:t,url:e,headers:r,body:n,remoteAddress:s}){super({encrypted:!0,readable:!0,remoteAddress:s,address:Ee(()=>({port:ebt}),"address"),on:yr,removeListener:yr,removeEventListener:yr,end:yr,destroy:yr}),this.statusCode=200,this.statusMessage="OK",this.complete=!0,this.httpVersion="1.1",this.httpVersionMajor=1,this.httpVersionMinor=1,this.method=t,this.headers=r,this.body=n,this.url=e,this.ip=s,this._read=()=>{this.push(n),this.push(null)}}ip;body};function EO(t){if(Buffer.isBuffer(t))return t.toString("utf8");if(typeof t=="string")return t;if(t instanceof Uint8Array)return new TextDecoder().decode(t);throw new Error(`response.write() of unexpected type: ${typeof t}`)}Ee(EO,"getString");var hPe=`\r +\r +`,tbt=`0\r +\r +`,X_=Symbol("Response body"),yf=Symbol("Response headers");function dO(t,e){if(Buffer.isBuffer(e)||typeof e=="string"||e instanceof Uint8Array)t[X_].push(Buffer.from(e));else throw new Error(`response.write() of unexpected type: ${typeof e}`)}Ee(dO,"addData");var Y_=class PPe extends xPe.ServerResponse{static{Ee(this,"ServerlessResponse")}constructor({method:e}){super({method:e}),this[X_]=[],this[yf]={},this.useChunkedEncodingByDefault=!1,this.chunkedEncoding=!1,this._header="";let r=1,n={_writableState:{},writable:!0,on:yr,removeListener:yr,destroy:yr,cork:yr,uncork:yr,write:Ee((s,o,i)=>{if(typeof o=="function"&&(i=o,o=null),this._header===""||this._wroteHeader)this.chunkedEncoding?r>0?r--:s!==tbt&&(dO(this,s),r=3):dO(this,s);else{let a=EO(s),c=a.indexOf(hPe);if(c!==-1){let u=a.slice(c+hPe.length);u&&!this.chunkedEncoding&&dO(this,u),this._wroteHeader=!0}}typeof i=="function"&&i()},"write")};this.assignSocket(n)}_header;_headers;_wroteHeader;[X_];[yf];get headers(){return this[yf]}static from(e){let r=new PPe({method:e.method});return r.statusCode=e.statusCode||0,r[yf]=e.headers,r[X_]=e.body?[Buffer.from(e.body)]:[],r.end(),r}static body(e){return Buffer.concat(e[X_])}static headers(e){let r=e.getHeaders();return Object.assign(r,e[yf])}setHeader(e,r){this._wroteHeader?this[yf][e]=r:super.setHeader(e,r)}writeHead(e,r,n){let s=typeof r=="string"?n:r,o=Array.isArray(s)?s:[s||{}];for(let i of o)for(let a in i)if(this.setHeader(a,i[a]),!this._wroteHeader)break;return this.callNativeWriteHead(e,r,n)}callNativeWriteHead(e,r,n){return super.writeHead(e,r,n)}},rbt=Buffer.from(`\r +`),SPe=`0\r +\r +`,nbt=`\r +\r +`,sbt=`\r +`,obt=class extends bPe.ServerResponse{static{Ee(this,"ServerlessStreamResponse")}constructor({method:t,onReceiveHeaders:e,log:r}){super({method:t}),this.useChunkedEncodingByDefault=!0,this.chunkedEncoding=!0;let n=null,s=!1,o=!1,i={_writableState:{},writable:!0,on:yr,removeListener:yr,destroy:yr,cork:yr,uncork:yr,write:Ee((a,c,u)=>{if(typeof c=="function"&&(u=c,c=null),r.debug("SERVERLESS_ADAPTER:RESPONSE_STREAM:DATA",()=>({data:Buffer.isBuffer(a)?a.toString("utf8"):a,encoding:c})),!n){let l=EO(a),d=l.indexOf(sbt),p=+l.slice(0,d).split(" ")[1],g=l.indexOf(nbt),y=l.slice(d+2,g),R=eW(y);return r.debug("SERVERLESS_ADAPTER:RESPONSE_STREAM:FRAMEWORK_HEADERS",()=>({headers:R})),n=e(p,R),l.substring(g+4)===SPe&&n.end(),!0}if(a===SPe)return n.end(u),!0;if(Buffer.isBuffer(a)&&rbt.equals(a)){if(!s)return s=!0,!0;if(s&&o)return s=!1,o=!1,!0}return s&&(o=!0,n.write(a,u)),!0},"write")};this.assignSocket(i)}},cW=class{static{Ee(this,"BaseHandler")}getAdapterByEventAndContext(t,e,r,n){let s=r.filter(o=>o.canHandle(t,e,n));if(s.length===0)throw new Error("SERVERLESS_ADAPTER: Couldn't find adapter to handle this event.");if(s.length>1)throw new Error(`SERVERLESS_ADAPTER: Two or more adapters was resolved by the event, the adapters are: ${r.map(o=>o.getAdapterName()).join(", ")}.`);return s[0]}getServerlessRequestResponseFromAdapterRequest(t){let e=new aW({method:t.method,headers:t.headers,body:t.body,remoteAddress:t.remoteAddress,url:t.path}),r=new Y_({method:t.method});return[e,r]}};var IPe=class APe{static{Ee(this,"ServerlessAdapter")}constructor(e){this.app=e}app;binarySettings={contentEncodings:yPe,contentTypes:_Pe};respondWithErrors=!1;log=sW();adapters=[];framework;resolver;handler;static new(e){return new APe(e)}setHandler(e){if(this.handler)throw new Error("SERVERLESS_ADAPTER: The handler should not set twice.");return this.handler=e,this}setResolver(e){if(this.resolver)throw new Error("SERVERLESS_ADAPTER: The resolver should not set twice.");return this.resolver=e,this}setFramework(e){if(this.framework)throw new Error("SERVERLESS_ADAPTER: The framework should not set twice.");return this.framework=e,this}setLogger(e){return this.log=e,this}setBinarySettings(e){return this.binarySettings={...this.binarySettings,...e},this}setRespondWithErrors(e){return this.respondWithErrors=e,this}addAdapter(e){return this.adapters.push(e),this}build(){if(!this.resolver)throw new Error("SERVERLESS_ADAPTER: Is required to set a resolver before build.");if(!this.framework)throw new Error("SERVERLESS_ADAPTER: Is required to set a framework before build.");if(!this.handler)throw new Error("SERVERLESS_ADAPTER: Is required to set a handler before build.");if(this.adapters.length===0)throw new Error("SERVERLESS_ADAPTER: Is required to set at least one adapter.");return this.handler.getHandler(this.app,this.framework,this.adapters,this.resolver,this.binarySettings,this.respondWithErrors,this.log)}};var lbt;try{typeof uW.default.createZstdCompress=="function"&&(lbt=uW.default.createZstdCompress)}catch{}var A1e=O(require("fs/promises"),1),T1e=O(require("path"),1),w1e=require("url"),V0=O(dbe(),1),K9=O(require("crypto"),1),JL=O(b1e(),1);var MFt={},AFt=T1e.default.dirname((0,w1e.fileURLToPath)(MFt.url)),Q9=class extends Error{constructor(e,...r){super(...r),this.message=JSON.stringify(e,null,2),this.name="IntentionalError"}},TFt=["aws_execution_env","aws_lambda_function_memory_size","aws_lambda_function_name","aws_lambda_function_version","aws_lambda_log_group_name","aws_lambda_log_stream_name","aws_region","bundle_id","customer_*","deploy_id","deploy_target","external_domain_name","mobify_property_id","mrt_allow_cookies","mrt_env_base_path","node_env","node_options","tz"],wFt="https://tls-v1-1.badssl.com:1011/",DFt="https://tls-v1-2.badssl.com:1012/",D1e=t=>Object.assign({},...Object.keys(t).sort().map(e=>({[e]:t[e]}))),OFt=(t,e)=>t&&Object.keys(t).filter(r=>{let n=r.toLowerCase().trim();return e.some(s=>s.endsWith("*")&&n.startsWith(s.slice(0,-1))||s===n)}).sort().reduce((r,n)=>(r[n]=t[n],r),{}),Ql=(t,e)=>({args:t.query,protocol:t.protocol,method:t.method,path:t.path,query:t.query,route_path:t.route.path,body:t.body,headers:D1e(t.headers),ip:t.ip,env:OFt(process.env,TFt),timestamp:new Date().toISOString(),...typeof e=="object"?{additional_info:e}:{}}),X9=(t,e)=>e.json(Ql(t)),O1e=t=>{throw new Q9(Ql(t))},k1e=async(t,e)=>{let r=await fetch(wFt).then(s=>s.ok).catch(()=>!1),n=await fetch(DFt).then(s=>s.ok).catch(()=>!1);e.header("Content-Type","application/json"),e.send(JSON.stringify({"tls1.1":r,"tls1.2":n},null,4))},J9=async(t,e)=>{let r=String(t.params.duration||"60");isNaN(parseInt(r))&&(r="60"),e.set("Cache-Control",`s-maxage=${r}`),e.json(Ql(t))},N1e=async(t,e)=>{if(Object.hasOwn(t.query,"name")){let r=t.query.name,n=t.query.value;e.cookie(r,n)}e.set("Cache-Control","private, max-age=60"),e.json(Ql(t))},L1e=async(t,e)=>{for(let[r,n]of Object.entries(t.query))e.set(r,n);e.json(Ql(t))},M1e=async(t,e)=>{e.set("X-Multi-Value-Header",["value1","value2","value3"]),e.json(Ql(t))},F1e=async(t,e)=>{let r=t.query.status?parseInt(t.query.status):200;e.status(r),e.set("X-Status-Code",r.toString()),e.json(Ql(t))},B1e=async(t,e)=>{let r=process.memoryUsage(),n=t?.query?.count?parseInt(t.query.count):1,s=t?.query?.size?parseInt(t.query.size):1024,o=global?.gc&&t?.query&&(I1e(t.query.forcegc)||I1e(t.query.gc)),i=Date.now();kFt(n,s);let a=Date.now()-i,c=Date.now();o&&global.gc&&global.gc();let u=Date.now()-c,l=process.memoryUsage(),d=NFt(l,r),p=10,g=Math.round(n*s/1024/1024*p)/p,y={memory_end:l,memory_delta:d,malloc_time:a,gc_time:u,force_gc:o,test_count:n,test_size:s,test_total_alloc_mb:g};e.json(Ql(t,y))},kFt=(t,e)=>{let r=[];for(let n=0;n{let r={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&Object.prototype.hasOwnProperty.call(e,n)&&typeof t[n]=="number"&&typeof e[n]=="number"&&(r[n]=t[n]-e[n]);return r},I1e=t=>{if(t==null||typeof t!="string"||t.trim()==="")return!1;let e=t.toLowerCase();return e==="true"||e==="1"||e==="on"||e==="enable"||e==="enabled"||e==="yes"},U1e=async(t,e)=>{e.json({headers:D1e(t.headers)})},q1e=(t,e,r)=>{console.log(`Request: ${t.method} ${t.originalUrl}`),console.log(`Request headers: ${JSON.stringify(t.headers,null,2)}`);let n={string:"string value",number:1234567890,boolean:!0,null:null,undefined:void 0,NaN:NaN,object:{foo:"bar"},array:[1,2,3],date:new Date};for(let s of Object.values(n))console.log(s);return e.on("finish",()=>{let s=e.headersSent?String(e.statusCode):String(-1);if(console.log(`Response status: ${s}`),e.headersSent){let o=JSON.stringify(e.getHeaders(),null,2);console.log(`Response headers: ${o}`)}}),r()},$1e=(t,e,r)=>{let n=process.env.MRT_ENV_BASE_PATH;return console.debug(`Base path: Base path: ${n}`),console.debug(`Request path: Request path: ${t.url}`),n&&(t.path.startsWith(`${n}/`)||t.path===n)&&(t.url=t.url.slice(n.length)||"/",console.debug(`Base path: Rewrote ${n} -> Original url: ${t.originalUrl} -> New url: ${t.url}`)),r()},G1e=async(t,e)=>{e.setHeader("Content-Type","text/plain");let r=20;for(let n=0;n<100;n++)e.write(`Here is a streaming chunk${n} +`),n<99&&await new Promise(s=>setTimeout(s,r));e.end()},j1e=async(t,e)=>{try{let r=`${AFt}/static/example.json`,n=await A1e.default.readFile(r,{encoding:"utf8"}),s=JSON.parse(n);e.json(s)}catch(r){e.status(500).json({error:r})}},LFt=t=>{let e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",r="";for(let n=0;n{if(process.env.MRT_BUNDLE_TYPE!=="stream"){e.status(200),e.json({streaming:!1});return}e.status(200),e.setHeader("Content-Type","text/plain"),e.write(`This is the first piece of streamed data. +`);let r=Date.now();for(let n=0;n<20;n++)setTimeout(()=>{let s=`${Date.now()-r}ms This is the ${n+1} piece of streamed data after a delay ${LFt(1024)}. +`;e.write(s),e.flush(),n===19&&e.end()},n*500)},H1e=(t,e)=>{let r=V0.default.createLogger({level:"info",format:V0.default.format.json(),defaultMeta:{service:"user-service"}});r.add(new V0.default.transports.Console({format:V0.default.format.json()})),r.log("info","json log using winston that triggers KeyError"),r.log({metadata:"defined by cust",level:"info",log:"json log using winston",telemetryEvent:"telemetryEvent field defined by customer"}),console.log({"winston-test":"this is a json log using console.log"}),console.warn({"winston-test":"this is a json log using console.warn"}),console.debug({"winston-test":"this is a json log using console.debug"}),console.info({"winston-test":"this is a json log using console.info"}),console.error({"winston-test":"this is a json log using console.error"}),e.json({message:"Winston logging completed"})},z1e=async(t,e)=>{let r=t.query.delay?parseInt(t.query.delay):1e4,n=Date.now();console.log({duration:Date.now()-n,message:`Pre-delayed logging ${r}ms`}),await new Promise(s=>setTimeout(s,r)),console.log({duration:Date.now()-n,message:`Delayed logging ${r}ms`}),e.json({duration:Date.now()-n,message:`Delayed logging ${r}ms`})},W1e=(t,e)=>{let r=t.query.count?parseInt(t.query.count):1e4,n=new TextEncoder,s=Date.now(),o=0;for(let a=0;a{let r=t.query.count?parseInt(t.query.count):1e4,n=new TextEncoder,s=Date.now(),o=0,i="";for(let c=0;c{let r=[new Date().getTime(),Number(process.hrtime.bigint())],n={name:"mrt.ref.trace",traceId:K9.default.randomBytes(16).toString("hex"),id:K9.default.randomBytes(8).toString("hex"),forwardTrace:!0,start_time:r,end_time:[new Date().getTime(),Number(process.hrtime.bigint())]};console.log(JSON.stringify(n)),e.json(n)},X1e=async(t,e)=>{let r=eT.getDataStore();if(!r.isDataStoreAvailable())return e.json({dataStore:!1});let n;try{n=await r.getEntry(String(t.params.key))}catch(s){if(s instanceof wg)return e.status(400).json({error:s.message});if(s instanceof Dy)return e.status(404).json({error:s.message});if(s instanceof Oy)return e.status(500).json({error:s.message});throw s}return e.json(n)},J1e=async(t,e)=>{let r=t.query.secretId;if(!r)return e.status(400).json({error:"Missing required query parameter: secretId"});let n=new JL.SecretsManagerClient({region:process.env.AWS_REGION}),s=new JL.GetSecretValueCommand({SecretId:r});try{let o=await n.send(s);return e.status(200).json({success:!0,secretId:r,arn:o.ARN,versionId:o.VersionId,hasSecretString:!!o.SecretString,hasSecretBinary:!!o.SecretBinary})}catch(o){let i=o,a=i.name||i.code,c=500,u=i.message||"Unknown error";switch(a){case"ResourceNotFoundException":c=404;break;case"InvalidRequestException":case"InvalidParameterException":c=400;break;case"DecryptionFailure":case"InternalServiceError":c=500;break;case"AccessDeniedException":c=403;break;default:c=500}return e.status(c).json({success:!1,error:u,errorCode:a,secretId:r})}},Y1e=(t,e)=>{let r=t.headers["x-site-id"],n=t.headers.authorization,s=t.headers.cookie,o={};s&&s.split(";").forEach(d=>{let[p,g]=d.trim().split("=");p&&g&&(o[p]=g)});let i=r?`cc-at_${r}`:null,a=i?o[i]:null,c=t.headers.sfdc_dwsid,u={siteIdPresent:!!r,siteId:r,authHeaderPresent:!!n,authHeader:n,expectedCookieName:i,expectedCookieValue:a,authHeaderMatchesCookie:!1,sfdc_dwsidPresent:!!c,sfdc_dwsidValue:c,dwsidPresent:!!o.dwsid,dwsidValue:o.dwsid,sfdc_dwsidMatchesDwsid:c===o.dwsid};if(n&&a){let d=`Bearer ${a}`;u.authHeaderMatchesCookie=n===d}let l=u.siteIdPresent&&u.authHeaderPresent&&u.authHeaderMatchesCookie&&u.sfdc_dwsidPresent&&u.sfdc_dwsidMatchesDwsid;return e.json({success:l,validations:u,allCookies:o,headers:{"x-site-id":t.headers["x-site-id"],authorization:t.headers.authorization,cookie:t.headers.cookie,sfdc_dwsid:t.headers.sfdc_dwsid}})};var P$=O(bqe(),1),b$=O(zHe(),1),I$=O(BKe(),1),UKe=O(CA(),1),A$=O(DV(),1),T$=(t,e)=>{if(typeof t!="object"||t===null)return!1;let r=t;return r.name===e||r.message===e},b3r=async t=>{let e=new P$.LambdaClient;try{await e.send(new P$.InvokeCommand(t))}catch(r){if(T$(r,"AccessDeniedException"))return!0;console.error(r)}return console.error("Lambda isolation test failed!"),!1},I3r=async t=>{let e=t.Region||process.env.AWS_REGION||"us-east-1",r=new b$.S3Client({region:e});delete t.Region;try{await r.send(new b$.GetObjectCommand(t))}catch(n){if(T$(n,"AccessDenied"))return!0;console.error(n)}return console.error("S3 isolation test failed!"),!1},A3r=async t=>{let e=new I$.CloudWatchLogsClient;try{let r=Math.random().toString(36).slice(2,7);await e.send(new I$.CreateLogStreamCommand({...t,logStreamName:`new_log_stream_${r}`}))}catch(r){if(T$(r,"AccessDeniedException"))return!0;console.error(r)}return console.error("Log group isolation test failed!"),!1},T3r=async t=>{if(!process.env.AWS_REGION||!t.dalKey||!t.dalProjectEnvironment)return console.error("DAL isolation test failed: missing required parameters"),!1;let e=`DataAccessLayer-${process.env.AWS_REGION}`,r=A$.DynamoDBDocumentClient.from(new UKe.DynamoDBClient({region:process.env.AWS_REGION}));try{await r.send(new A$.GetCommand({TableName:e,Key:{projectEnvironment:t.dalProjectEnvironment,key:t.dalKey}}))}catch(n){if(T$(n,"AccessDeniedException"))return!0;console.error(n)}return console.error("DAL isolation test failed: Target B accessed Target A's DAL entry"),!1},w3r=async t=>{let e=[{name:"origin",keys:["FunctionName"],fn:b3r},{name:"storage",keys:["Bucket","Key","Region"],fn:I3r},{name:"logs",keys:["logGroupName"],fn:A3r},{name:"dal",keys:["dalKey","dalProjectEnvironment"],fn:T3r}],r={};for(let n of e){let{keys:s,fn:o,name:i}=n,a=Object.keys(t).filter(c=>s.includes(c)).reduce((c,u)=>(c[u]=t[u],c),{});r[i]=await o(a)}return r},qKe=async(t,e)=>{let r=await w3r(t.query);e.header("Content-Type","application/json"),e.send(JSON.stringify(r,null,4))};var k3r={},D3r=(t,e,r)=>{e.set("server","mrt-reference-app"),r()},O3r=t=>(e,r,n)=>{r.locals.requestStartTime=Date.now();let s=()=>{let o=Date.now()-r.locals.requestStartTime;if(t.metrics){let i=[{name:"RequestTime",value:o,unit:"Milliseconds",dimensions:Wz()}],a={name:"RequestSuccess",value:1,unit:"Count",dimensions:Wz()};r.statusCode===404?a.name="RequestFailed404":r.statusCode>=400&&r.statusCode<=499?a.name="RequestFailed400":r.statusCode>=500&&r.statusCode<=599&&(a.name="RequestFailed500"),i.push(a),t.metrics.send(i,!0)}};r.on("finish",s),r.on("error",s),n()},jKe=()=>{let t=(0,w$.default)();if(t.disable("x-powered-by"),t.use(D3r),t.metrics=Q_.getSender(),t.use(O3r(t)),t.use(yhe()),wy()){let e=D$.default.dirname((0,$Ke.fileURLToPath)(k3r.url)),r=process.env.RP_EXTENSION?".ts":".js",n=D$.default.resolve(e,`../request-processor${r}`);console.log("Using request processor:",n);let s=[{host:"https://playground-22x-us-west-1.mobify-storefront.com",path:"api"}];t.use(hhe(n,s)),She(s).forEach(a=>{t.use(a.path,a.fn)});let i=D$.default.resolve(e,"../static");console.log("Using static asset directory:",i),t.use(`/mobify/bundle/${process.env.BUNDLE_ID||"1"}/static/`,Ehe(i))}return t.use(_he()),t.get("/favicon.ico",w$.default.static("static/favicon.ico")),t.get("/robots.txt",w$.default.static("static/robots.txt")),t.use((e,r,n)=>(r.set("Cache-Control","no-cache"),n())),t.use(q1e),t.use($1e),t.all("/exception",O1e),t.get("/tls",k1e),t.get("/cache",J9),t.get("/cache/:duration",J9),t.get("/memtest",B1e),t.get("/cookie",N1e),t.get("/headers",U1e),t.get("/isolation",qKe),t.get("/set-response-headers",L1e),t.get("/multi-value-headers",M1e),t.get("/streaming",G1e),t.get("/ssr-shared",j1e),t.get("/streaming-large",V1e),t.get("/set-status",F1e),t.get("/winston-logging",H1e),t.get("/delayed-logging",z1e),t.get("/mass-logging",W1e),t.get("/large-logging",K1e),t.get("/trace-logging",Q1e),t.get("/data-store/:key",X1e),t.get("/secrets-manager",J1e),t.get("/proxy-transformation",Y1e),t.all("/auth/logout",(e,r)=>r.status(401).send("Logged out")),t.use("/auth{*alias}",(0,GKe.default)({users:{mobify:"supersecret"},challenge:!0,realm:process.env.EXTERNAL_DOMAIN_NAME||"echo-test"})),t.all("/auth{*alias}",X9),t.all("/{*splat}",X9),t.set("json spaces",4),t};var O$=O(require("node:util"),1),pJ=class extends cW{static{Ee(this,"DefaultHandler")}getHandler(t,e,r,n,s,o,i){return(a,c,u)=>{this.onReceiveRequest(i,a,c,s,o);let l=this.getAdapterByEventAndContext(a,c,r,i);return this.onResolveAdapter(i,l),mO({event:a,context:c}),n.createResolver({event:a,context:c,callback:u,log:i,respondWithErrors:o,adapter:l}).run(()=>this.forwardRequestToFramework(t,e,a,c,l,s,i))}}onReceiveRequest(t,e,r,n,s){t.debug("SERVERLESS_ADAPTER:PROXY",()=>({event:O$.default.inspect(e,{depth:null}),context:O$.default.inspect(r,{depth:null}),binarySettings:n,respondWithErrors:s}))}onResolveAdapter(t,e){t.debug("SERVERLESS_ADAPTER:RESOLVED_ADAPTER_NAME: ",e.getAdapterName())}onResolveRequestValues(t,e){t.debug("SERVERLESS_ADAPTER:FORWARD_REQUEST_TO_FRAMEWORK:REQUEST_VALUES",()=>({requestValues:{...e,body:e.body?.toString()}}))}onResolveForwardedResponseToFramework(t,e){t.debug("SERVERLESS_ADAPTER:FORWARD_REQUEST_TO_FRAMEWORK:RESPONSE",()=>({response:e}))}onForwardResponse(t,e,r,n,s){t.debug("SERVERLESS_ADAPTER:FORWARD_RESPONSE:EVENT_SOURCE_RESPONSE_PARAMS",()=>({statusCode:e,body:r,headers:n,isBase64Encoded:s}))}onForwardResponseAdapterResponse(t,e,r){t.debug("SERVERLESS_ADAPTER:FORWARD_RESPONSE:EVENT_SOURCE_RESPONSE",()=>({successResponse:O$.default.inspect(e,{depth:null}),body:r}))}async forwardRequestToFramework(t,e,r,n,s,o,i){let a=s.getRequest(r,n,i);this.onResolveRequestValues(i,a);let[c,u]=this.getServerlessRequestResponseFromAdapterRequest(a);return e.sendRequest(t,c,u),await SO(u),this.onResolveForwardedResponseToFramework(i,u),this.forwardResponse(r,u,s,o,i)}forwardResponse(t,e,r,n,s){let o=e.statusCode,i=Y_.headers(e),a=hO(i,n),c=a?"base64":"utf8",u=Y_.body(e).toString(c),l=a?"[BASE64_ENCODED]":u;this.onForwardResponse(s,o,l,i,a);let d=r.getResponse({event:t,statusCode:o,body:u,headers:i,isBase64Encoded:a,response:e,log:s});return this.onForwardResponseAdapterResponse(s,d,l),d}};var VKe=class{static{Ee(this,"CallbackResolver")}createResolver({callback:t,event:e,log:r,respondWithErrors:n,adapter:s}){if(!t)throw new Error('Could not figure out how to create the resolver because the "callback" argument was not sent.');let o={succeed:Ee(i=>t(null,i),"succeed"),fail:Ee(i=>t(i,null),"fail")};return{run:Ee(i=>{i().then(a=>o.succeed(a)).catch(a=>{r.error("SERVERLESS_ADAPTER:RESPOND_TO_EVENT_SOURCE_WITH_ERROR",a),s.onErrorWhileForwarding({delegatedResolver:o,error:a,log:r,event:e,respondWithErrors:n})})},"run")}}};var asn=class HKe{constructor(e){this.options=e,this.stripPathFn=gp(this.options?.stripBasePath)}static{Ee(this,"AlbAdapter")}stripPathFn;getAdapterName(){return HKe.name}canHandle(e){let r=e;return!!(r?.requestContext&&r.requestContext.elb)}getRequest(e){let r=e.httpMethod,n=this.getPathFromEvent(e),s=e.multiValueHeaders?mp(e.multiValueHeaders,",",!0):e.headers,o;if(e.body){let[a,c]=Hc(e.body,e.isBase64Encoded);o=a,s["content-length"]=String(c)}let i="";return s["x-forwarded-for"]&&(i=s["x-forwarded-for"]),{method:r,headers:s,body:o,remoteAddress:i,path:n}}getResponse({event:e,headers:r,body:n,isBase64Encoded:s,statusCode:o}){let i=e.headers?void 0:J_(r),a=e.headers?mp(r):void 0;return a&&a["transfer-encoding"]==="chunked"&&delete a["transfer-encoding"],i&&i["transfer-encoding"]?.includes("chunked")&&delete i["transfer-encoding"],{statusCode:o,body:n,headers:a,multiValueHeaders:i,isBase64Encoded:s}}onErrorWhileForwarding({error:e,delegatedResolver:r,respondWithErrors:n,event:s,log:o}){let i=n&&e.stack||"",a=this.getResponse({event:s,statusCode:500,body:i,headers:{},isBase64Encoded:!1,log:o});r.succeed(a)}getPathFromEvent(e){let r=this.stripPathFn(e.path),n=e.headers?e.queryStringParameters:e.multiValueQueryStringParameters;return xl(r,n||{})}},zKe=class WKe{constructor(e){this.options=e,this.stripPathFn=gp(this.options?.stripBasePath)}static{Ee(this,"ApiGatewayV1Adapter")}stripPathFn;getAdapterName(){return WKe.name}canHandle(e){let r=e;return!!(r?.requestContext&&r.version!=="2.0"&&r.headers&&r.multiValueHeaders&&(r.queryStringParameters===null&&r.multiValueQueryStringParameters===null||r.queryStringParameters&&r.multiValueQueryStringParameters))}getRequest(e){let r=e.httpMethod,n=this.options?.lowercaseRequestHeaders?fO(e.headers):{...e.headers};for(let a of Object.keys(e.multiValueHeaders||{})){let c=e.multiValueHeaders[a];!c||c?.length<=1||(n[a]=c.join(","))}let s=this.getPathFromEvent(e),o;if(e.body){let[a,c]=Hc(e.body,e.isBase64Encoded);o=a,n["content-length"]=c+""}let i=e.requestContext.identity.sourceIp;return{method:r,headers:n,body:o,remoteAddress:i,path:s}}getResponse({headers:e,body:r,isBase64Encoded:n,statusCode:s,response:o}){let i=J_(e),a=nr(this.options?.throwOnChunkedTransferEncoding,!0);if(i["transfer-encoding"]?.some(c=>c.includes("chunked"))||o?.chunkedEncoding){if(a)throw new Error("chunked encoding in headers is not supported by API Gateway V1");delete i["transfer-encoding"]}return{statusCode:s,body:r,multiValueHeaders:i,isBase64Encoded:n}}onErrorWhileForwarding({error:e,delegatedResolver:r,respondWithErrors:n,event:s,log:o}){let i=n?e.stack:"",a=this.getResponse({event:s,statusCode:500,body:i||"",headers:{},isBase64Encoded:!1,log:o});r.succeed(a)}getPathFromEvent(e){let r=this.stripPathFn(e.path),n=e.multiValueQueryStringParameters||{};if(e.queryStringParameters)for(let s of Object.keys(e.queryStringParameters)){let o=e.queryStringParameters[s];o!==void 0&&(Array.isArray(n[s])||(n[s]=[]),!n[s].includes(o)&&n[s].push(o))}return xl(r,n)}},csn=class KKe{constructor(e){this.options=e,this.stripPathFn=gp(this.options?.stripBasePath)}static{Ee(this,"ApiGatewayV2Adapter")}stripPathFn;getAdapterName(){return KKe.name}canHandle(e){let r=e;return!!(r?.requestContext&&r.version==="2.0")}getRequest(e){let r=e.requestContext.http.method,n=this.getPathFromEvent(e),s={...e.headers};e.cookies&&(s.cookie=e.cookies.join("; "));let o;if(e.body){let[a,c]=Hc(e.body,e.isBase64Encoded);o=a,s["content-length"]=c+""}let i=e.requestContext.http.sourceIp;return{method:r,headers:s,body:o,remoteAddress:i,path:n}}getResponse({headers:e,body:r,isBase64Encoded:n,statusCode:s,response:o}){let{cookies:i,headers:a}=gO(e),c=nr(this.options?.throwOnChunkedTransferEncoding,!0),u=a["transfer-encoding"];if(u&&u.includes("chunked")||o?.chunkedEncoding){if(c)throw new Error("chunked encoding in headers is not supported by API Gateway V2");delete a["transfer-encoding"]}return{statusCode:s,body:r,headers:a,isBase64Encoded:n,cookies:i}}onErrorWhileForwarding({error:e,delegatedResolver:r,respondWithErrors:n,event:s,log:o}){let i=n?e.stack:"",a=this.getResponse({event:s,statusCode:500,body:i||"",headers:{},isBase64Encoded:!1,log:o});r.succeed(a)}getPathFromEvent(e){let r=this.stripPathFn(e.rawPath),n=e.rawQueryString;return xl(r,n||{})}},qv=class{constructor(t){this.options=t}static{Ee(this,"AwsSimpleAdapter")}getAdapterName(){throw new Error("not implemented.")}canHandle(t){throw new Error("not implemented.")}getRequest(t){let e=this.options.forwardPath,r=this.options.forwardMethod,[n,s]=Hc(JSON.stringify(t),!1),o={host:this.options.host,"content-type":"application/json","content-length":String(s)};return{method:r,headers:o,body:n,path:e}}getResponse({body:t,headers:e,isBase64Encoded:r,event:n,statusCode:s}){if(this.hasInvalidStatusCode(s))throw new Error(JSON.stringify({body:t,headers:e,isBase64Encoded:r,event:n,statusCode:s}));if(!this.options.batch)return pO;if(r)throw new Error("SERVERLESS_ADAPTER: The response could not be base64 encoded when you set batch: true, the response should be a JSON.");return t?JSON.parse(t):pO}onErrorWhileForwarding({error:t,delegatedResolver:e}){e.fail(t)}hasInvalidStatusCode(t){return t<200||t>=400}},usn=class QKe extends qv{static{Ee(this,"DynamoDBAdapter")}constructor(e){super({forwardPath:nr(e?.dynamoDBForwardPath,"/dynamo"),forwardMethod:nr(e?.dynamoDBForwardMethod,"POST"),batch:e?.batch,host:"dynamodb.amazonaws.com"})}getAdapterName(){return QKe.name}canHandle(e){let r=e;return Array.isArray(r?.Records)?r.Records[0]?.eventSource==="aws:dynamodb":!1}},lsn=class XKe extends qv{static{Ee(this,"EventBridgeAdapter")}constructor(e){super({forwardPath:nr(e?.eventBridgeForwardPath,"/eventbridge"),forwardMethod:nr(e?.eventBridgeForwardMethod,"POST"),batch:!1,host:"events.amazonaws.com"})}getAdapterName(){return XKe.name}canHandle(e){let r=e;return!!(r&&r.version&&r.version==="0"&&r.id&&r["detail-type"]&&r.source&&r.account&&r.time&&r.region&&r.resources&&Array.isArray(r.resources)&&r.detail&&typeof r.detail=="object"&&!Array.isArray(r.detail))}},JKe=["Connection","Expect","Keep-Alive","Proxy-Authenticate","Proxy-Authorization","Proxy-Connection","Trailer","Upgrade","X-Accel-Buffering","X-Accel-Charset","X-Accel-Limit-Rate","X-Accel-Redirect",/(X-Amz-Cf-)(.*)/gim,"X-Cache",/(X-Edge-)(.*)/gim,"X-Forwarded-Proto","X-Real-IP"],YKe=1024*40,ZKe=1024*1024,dsn=class e6e{constructor(e){this.options=e;let r=nr(this.options?.disallowedHeaders,JKe);this.cachedDisallowedHeaders=r.map(n=>n instanceof RegExp?n:new RegExp(`(${n})`,"gim"))}static{Ee(this,"LambdaEdgeAdapter")}cachedDisallowedHeaders;getAdapterName(){return e6e.name}canHandle(e){let r=e;if(!Array.isArray(r?.Records))return!1;let n=r.Records[0]?.cf?.config?.eventType;return["origin-response","origin-request","viewer-response","viewer-request"].includes(n)}getRequest(e){let r=e.Records[0],n=r.cf.request,s=n.method,o=this.options?.getPathFromEvent?this.options.getPathFromEvent(r):void 0,i=xl(n.uri,n.querystring),a=nr(o,i),c=n.clientIp,u=this.getFlattenedHeadersFromCloudfrontRequest(n),l;if(n.body){let[p,g]=Hc(JSON.stringify(n.body),!1);l=p,u["content-length"]=g.toString()}let{host:d}=u;return{method:s,path:a,headers:u,body:l,remoteAddress:c,host:d,hostname:d}}getResponse(e){let r=this.getResponseToLambdaEdge(e),n=new TextEncoder().encode(JSON.stringify(r)).length,s=this.isEventTypeOrigin(e.event.Records[0].cf.config)?nr(this.options?.originMaxResponseSizeInBytes,ZKe):nr(this.options?.viewerMaxResponseSizeInBytes,YKe);return n<=s||(this.options?.onResponseSizeExceedLimit?this.options.onResponseSizeExceedLimit(r):e.log.error(`SERVERLESS_ADAPTER:LAMBDA_EDGE_ADAPTER: Max response size exceeded: ${n} of the max of ${s}.`)),r}onErrorWhileForwarding({error:e,delegatedResolver:r}){r.fail(e)}getFlattenedHeadersFromCloudfrontRequest(e){return Object.keys(e.headers).reduce((r,n)=>{let s=e.headers[n];return r[n]=s.map(o=>o.value).join(","),r},{})}getResponseToLambdaEdge({body:e,headers:r}){let n=nr(this.options?.shouldUseHeadersFromFramework,!1),s=JSON.parse(e);return s.headers&&(s.headers=Object.keys(s.headers).reduce((o,i)=>(this.shouldStripHeader(i)||(o[i]=s.headers[i]),o),{})),n&&(s.headers=this.getHeadersForCloudfrontResponse(r)),s}getHeadersForCloudfrontResponse(e){return Object.keys(e).reduce((r,n)=>{if(this.shouldStripHeader(n))return r;r[n]||(r[n]=[]);let s=e[n];if(!Array.isArray(s))return r[n].push({key:n,value:s||""}),r;let o=s.map(i=>({key:n,value:i}));return r[n].push(...o),r},{})}shouldStripHeader(e){if(this.options?.shouldStripHeader)return this.options.shouldStripHeader(e);let r=e.toLowerCase();for(let n of this.cachedDisallowedHeaders)if(n.test(r))return!0;return!1}isEventTypeOrigin(e){return e.eventType.includes("origin")}},psn=class t6e extends qv{static{Ee(this,"S3Adapter")}constructor(e){super({forwardPath:nr(e?.s3ForwardPath,"/s3"),forwardMethod:nr(e?.s3ForwardMethod,"POST"),batch:!1,host:"s3.amazonaws.com"})}getAdapterName(){return t6e.name}canHandle(e){let r=e;return Array.isArray(r?.Records)?r.Records[0]?.eventSource==="aws:s3":!1}},msn=class r6e extends qv{static{Ee(this,"SNSAdapter")}constructor(e){super({forwardPath:nr(e?.snsForwardPath,"/sns"),forwardMethod:nr(e?.snsForwardMethod,"POST"),batch:!1,host:"sns.amazonaws.com"})}getAdapterName(){return r6e.name}canHandle(e){let r=e;return Array.isArray(r?.Records)?r.Records[0]?.EventSource==="aws:sns":!1}},gsn=class n6e extends qv{static{Ee(this,"SQSAdapter")}constructor(e){super({forwardPath:nr(e?.sqsForwardPath,"/sqs"),forwardMethod:nr(e?.sqsForwardMethod,"POST"),batch:e?.batch,host:"sqs.amazonaws.com"})}getAdapterName(){return n6e.name}canHandle(e){let r=e;return Array.isArray(r?.Records)?r.Records[0]?.eventSource==="aws:sqs":!1}},fsn=class s6e{constructor(e){this.options=e,this.stripPathFn=gp(this.options?.stripBasePath);let r=nr(this.options?.disallowedHeaders,JKe);this.cachedDisallowedHeaders=r.map(n=>n instanceof RegExp?n:new RegExp(`(${n})`,"gim"))}static{Ee(this,"RequestLambdaEdgeAdapter")}stripPathFn;cachedDisallowedHeaders;getAdapterName(){return s6e.name}canHandle(e){let r=e;if(!Array.isArray(r?.Records))return!1;let n=r.Records[0]?.cf?.config?.eventType;return n==="viewer-request"||n==="origin-request"}getRequest(e){let r=e.Records[0].cf.request,n=r.method,s=this.stripPathFn(xl(r.uri,r.querystring)),o=r.clientIp,i=this.getFlattenedHeadersFromCloudfrontRequest(r),a;if(r.body){let[u,l]=Hc(r.body.data,r.body.encoding==="base64");a=u,i["content-length"]=l.toString()}let{host:c}=i;return{method:n,path:s,headers:i,body:a,remoteAddress:o,host:c,hostname:c}}getResponse({body:e,headers:r,isBase64Encoded:n,statusCode:s,log:o,event:i}){let a=this.getHeadersForCloudfrontResponse(r),c=i.Records[0].cf.config.eventType==="origin-request"?nr(this.options?.originMaxResponseSizeInBytes,ZKe):nr(this.options?.viewerMaxResponseSizeInBytes,YKe),u={body:e,status:s.toString(),bodyEncoding:n?"base64":"text",headers:a},l=e.length;return l<=c||(this.options?.onResponseSizeExceedLimit?this.options.onResponseSizeExceedLimit(u):o.error(`SERVERLESS_ADAPTER:LAMBDA_EDGE_ADAPTER: Max response size exceeded: ${l} of the max of ${c}.`)),u}onErrorWhileForwarding({error:e,delegatedResolver:r,respondWithErrors:n,log:s,event:o}){let i=n?e.stack:"",a=this.getResponse({event:o,statusCode:500,body:i||"",headers:{},isBase64Encoded:!1,log:s});r.succeed(a)}getFlattenedHeadersFromCloudfrontRequest(e){return Object.keys(e.headers).reduce((r,n)=>{let s=e.headers[n];return s.length===1?r[n]=s[0].value:r[n]=s.map(o=>o.value).join(","),r},{})}getHeadersForCloudfrontResponse(e){return Object.keys(e).reduce((r,n)=>{if(this.shouldStripHeader(n))return r;let s=n.toLowerCase();r[s]||(r[s]=[]);let o=e[n];if(!Array.isArray(o))return r[s].push({key:n,value:o||""}),r;let i=o.map(a=>({key:n,value:a}));return r[s].push(...i),r},{})}shouldStripHeader(e){if(this.options?.shouldStripHeader)return this.options.shouldStripHeader(e);let r=e.toLowerCase();for(let n of this.cachedDisallowedHeaders)if(n.test(r))return!0;return!1}};var o6e=class{static{Ee(this,"ExpressFramework")}sendRequest(t,e,r){t(e,r)}};var i6e="content-type",mJ="x-original-content-type",a6e=(t,e)=>{if(!t)return t;let r=e.headers?.["x-correlation-id"],n=mp(t.multiValueHeaders||{},",",!0);n.date=new Date().toUTCString(),delete t.multiValueHeaders,r&&(n["x-correlation-id"]=r);let s=n[mJ];return s&&(n[i6e]=s,delete n[mJ]),{...t,headers:n}},N3r=t=>(e,r,n)=>{let s=IPe.new(t).setFramework(new o6e).setHandler(new pJ).setResolver(new VKe).addAdapter(new zKe({lowercaseRequestHeaders:!0,throwOnChunkedTransferEncoding:!1})).build();return r.callbackWaitsForEmptyEventLoop=!1,s(e,r,(i,a)=>n(i,a6e(a,e)))},c6e=jKe(),L3r=c6e,M3r=N3r(c6e);0&&(module.exports={CONTENT_TYPE,X_ORIGINAL_CONTENT_TYPE,app,get,processLambdaResponse}); +/*! Bundled license information: + +express/lib/view.js: + (*! + * express + * Copyright(c) 2009-2013 TJ Holowaychuk + * Copyright(c) 2013 Roman Shtylman + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + *) + +express/lib/utils.js: + (*! + * express + * Copyright(c) 2009-2013 TJ Holowaychuk + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + *) + +express/lib/application.js: + (*! + * express + * Copyright(c) 2009-2013 TJ Holowaychuk + * Copyright(c) 2013 Roman Shtylman + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + *) + +express/lib/request.js: + (*! + * express + * Copyright(c) 2009-2013 TJ Holowaychuk + * Copyright(c) 2013 Roman Shtylman + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + *) + +express/lib/response.js: + (*! + * express + * Copyright(c) 2009-2013 TJ Holowaychuk + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + *) + +express/lib/express.js: + (*! + * express + * Copyright(c) 2009-2013 TJ Holowaychuk + * Copyright(c) 2013 Roman Shtylman + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + *) + +express/index.js: + (*! + * express + * Copyright(c) 2009-2013 TJ Holowaychuk + * Copyright(c) 2013 Roman Shtylman + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + *) + +negotiator/index.js: + (*! + * negotiator + * Copyright(c) 2012 Federico Romero + * Copyright(c) 2012-2014 Isaac Z. Schlueter + * Copyright(c) 2015 Douglas Christopher Wilson + * MIT Licensed + *) + +compressible/index.js: + (*! + * compressible + * Copyright(c) 2013 Jonathan Ong + * Copyright(c) 2014 Jeremiah Senkpiel + * Copyright(c) 2015 Douglas Christopher Wilson + * MIT Licensed + *) +*/ +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2V4cHJlc3MvbGliL3ZpZXcuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2V4cHJlc3MvbGliL3V0aWxzLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9leHByZXNzL2xpYi9hcHBsaWNhdGlvbi5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZXhwcmVzcy9saWIvcmVxdWVzdC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZXhwcmVzcy9saWIvcmVzcG9uc2UuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2V4cHJlc3MvbGliL2V4cHJlc3MuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2V4cHJlc3MvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2V4cHJlc3MtYmFzaWMtYXV0aC9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9hY2NvdW50LWlkLWVuZHBvaW50L0FjY291bnRJZEVuZHBvaW50TW9kZUNvbnN0YW50cy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9hY2NvdW50LWlkLWVuZHBvaW50L0FjY291bnRJZEVuZHBvaW50TW9kZUNvbmZpZ1Jlc29sdmVyLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2FjY291bnQtaWQtZW5kcG9pbnQvTm9kZUFjY291bnRJZEVuZHBvaW50TW9kZUNvbmZpZ09wdGlvbnMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvYWNjb3VudC1pZC1lbmRwb2ludC9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvZW5kcG9pbnQtY2FjaGUvZGlzdC1janMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL21pZGRsZXdhcmUtZW5kcG9pbnQtZGlzY292ZXJ5L2Rpc3QtY2pzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL21pZGRsZXdhcmUtaG9zdC1oZWFkZXIvZGlzdC1janMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbWlkZGxld2FyZS1sb2dnZXIvZGlzdC1janMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbWlkZGxld2FyZS1yZWN1cnNpb24tZGV0ZWN0aW9uL2Rpc3QtY2pzL3JlY3Vyc2lvbkRldGVjdGlvbk1pZGRsZXdhcmUuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbWlkZGxld2FyZS1yZWN1cnNpb24tZGV0ZWN0aW9uL2Rpc3QtY2pzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL21pZGRsZXdhcmUtdXNlci1hZ2VudC9ub2RlX21vZHVsZXMvQGF3cy1zZGsvdXRpbC1lbmRwb2ludHMvZGlzdC1janMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvY2xpZW50L2VtaXRXYXJuaW5nSWZVbnN1cHBvcnRlZFZlcnNpb24uanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvY2xpZW50L3NldENyZWRlbnRpYWxGZWF0dXJlLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2NsaWVudC9zZXRGZWF0dXJlLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2NsaWVudC9zZXRUb2tlbkZlYXR1cmUuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvY2xpZW50L2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2h0dHBBdXRoU2NoZW1lcy91dGlscy9nZXREYXRlSGVhZGVyLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2h0dHBBdXRoU2NoZW1lcy91dGlscy9nZXRTa2V3Q29ycmVjdGVkRGF0ZS5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9odHRwQXV0aFNjaGVtZXMvdXRpbHMvaXNDbG9ja1NrZXdlZC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9odHRwQXV0aFNjaGVtZXMvdXRpbHMvZ2V0VXBkYXRlZFN5c3RlbUNsb2NrT2Zmc2V0LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2h0dHBBdXRoU2NoZW1lcy91dGlscy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9odHRwQXV0aFNjaGVtZXMvYXdzX3Nkay9Bd3NTZGtTaWdWNFNpZ25lci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9odHRwQXV0aFNjaGVtZXMvYXdzX3Nkay9Bd3NTZGtTaWdWNEFTaWduZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvaHR0cEF1dGhTY2hlbWVzL3V0aWxzL2dldEFycmF5Rm9yQ29tbWFTZXBhcmF0ZWRTdHJpbmcuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvaHR0cEF1dGhTY2hlbWVzL3V0aWxzL2dldEJlYXJlclRva2VuRW52S2V5LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2h0dHBBdXRoU2NoZW1lcy9hd3Nfc2RrL05PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9PUFRJT05TLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2h0dHBBdXRoU2NoZW1lcy9hd3Nfc2RrL3Jlc29sdmVBd3NTZGtTaWdWNEFDb25maWcuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvaHR0cEF1dGhTY2hlbWVzL2F3c19zZGsvcmVzb2x2ZUF3c1Nka1NpZ1Y0Q29uZmlnLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2h0dHBBdXRoU2NoZW1lcy9hd3Nfc2RrL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2h0dHBBdXRoU2NoZW1lcy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvUHJvdG9jb2xMaWIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL2Nib3IvQXdzU21pdGh5UnBjVjJDYm9yUHJvdG9jb2wuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL2NvZXJjaW5nLXNlcmlhbGl6ZXJzLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9Db25maWd1cmFibGVTZXJkZUNvbnRleHQuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL1VuaW9uU2VyZGUuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL2pzb24vanNvblJldml2ZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL2NvbW1vbi5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvanNvbi9wYXJzZUpzb25Cb2R5LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9qc29uL0pzb25TaGFwZURlc2VyaWFsaXplci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvanNvbi9qc29uUmVwbGFjZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL2pzb24vSnNvblNoYXBlU2VyaWFsaXplci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvanNvbi9Kc29uQ29kZWMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL2pzb24vQXdzSnNvblJwY1Byb3RvY29sLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9qc29uL0F3c0pzb24xXzBQcm90b2NvbC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvanNvbi9Bd3NKc29uMV8xUHJvdG9jb2wuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL2pzb24vQXdzUmVzdEpzb25Qcm90b2NvbC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvanNvbi9hd3NFeHBlY3RVbmlvbi5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay94bWwtYnVpbGRlci9kaXN0LWNqcy94bWwtcGFyc2VyLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL3htbC1idWlsZGVyL2Rpc3QtY2pzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy94bWwvWG1sU2hhcGVEZXNlcmlhbGl6ZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL3F1ZXJ5L1F1ZXJ5U2hhcGVTZXJpYWxpemVyLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9xdWVyeS9Bd3NRdWVyeVByb3RvY29sLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9xdWVyeS9Bd3NFYzJRdWVyeVByb3RvY29sLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy94bWwvcGFyc2VYbWxCb2R5LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy94bWwvWG1sU2hhcGVTZXJpYWxpemVyLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy94bWwvWG1sQ29kZWMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL3htbC9Bd3NSZXN0WG1sUHJvdG9jb2wuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9taWRkbGV3YXJlLXVzZXItYWdlbnQvZGlzdC1janMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9kaXN0LWNqcy9hdXRoL2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9wYWNrYWdlLmpzb24iLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1lbnYvZGlzdC1janMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1odHRwL2Rpc3QtY2pzL2Zyb21IdHRwL2NoZWNrVXJsLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItaHR0cC9kaXN0LWNqcy9mcm9tSHR0cC9yZXF1ZXN0SGVscGVycy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLWh0dHAvZGlzdC1janMvZnJvbUh0dHAvcmV0cnktd3JhcHBlci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLWh0dHAvZGlzdC1janMvZnJvbUh0dHAvZnJvbUh0dHAuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1odHRwL2Rpc3QtY2pzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zc28tb2lkYy9hdXRoL2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3Nzby1vaWRjL2VuZHBvaW50L0VuZHBvaW50UGFyYW1ldGVycy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9wYWNrYWdlLmpzb24iLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvdXRpbC11c2VyLWFnZW50LW5vZGUvZGlzdC1janMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL3V0aWwtZW5kcG9pbnRzL2Rpc3QtY2pzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zc28tb2lkYy9lbmRwb2ludC9ydWxlc2V0LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zc28tb2lkYy9lbmRwb2ludC9lbmRwb2ludFJlc29sdmVyLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zc28tb2lkYy9tb2RlbHMvU1NPT0lEQ1NlcnZpY2VFeGNlcHRpb24uanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3Nzby1vaWRjL21vZGVscy9lcnJvcnMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3Nzby1vaWRjL3NjaGVtYXMvc2NoZW1hc18wLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zc28tb2lkYy9ydW50aW1lQ29uZmlnLnNoYXJlZC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3NvLW9pZGMvcnVudGltZUNvbmZpZy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9yZWdpb24tY29uZmlnLXJlc29sdmVyL2Rpc3QtY2pzL3JlZ2lvbkNvbmZpZy9zdHNSZWdpb25EZWZhdWx0UmVzb2x2ZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvcmVnaW9uLWNvbmZpZy1yZXNvbHZlci9kaXN0LWNqcy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3NvLW9pZGMvYXV0aC9odHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24uanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3Nzby1vaWRjL3J1bnRpbWVFeHRlbnNpb25zLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zc28tb2lkYy9TU09PSURDQ2xpZW50LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zc28tb2lkYy9jb21tYW5kcy9DcmVhdGVUb2tlbkNvbW1hbmQuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3Nzby1vaWRjL1NTT09JREMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3Nzby1vaWRjL2NvbW1hbmRzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zc28tb2lkYy9tb2RlbHMvZW51bXMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3Nzby1vaWRjL21vZGVscy9tb2RlbHNfMC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3NvLW9pZGMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvdG9rZW4tcHJvdmlkZXJzL2Rpc3QtY2pzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zc28vZGlzdC1janMvYXV0aC9odHRwQXV0aFNjaGVtZVByb3ZpZGVyLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zc28vcGFja2FnZS5qc29uIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zc28vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL3V0aWwtZW5kcG9pbnRzL2Rpc3QtY2pzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zc28vZGlzdC1janMvZW5kcG9pbnQvcnVsZXNldC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtc3NvL2Rpc3QtY2pzL2VuZHBvaW50L2VuZHBvaW50UmVzb2x2ZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNzby9kaXN0LWNqcy9tb2RlbHMvU1NPU2VydmljZUV4Y2VwdGlvbi5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtc3NvL2Rpc3QtY2pzL21vZGVscy9lcnJvcnMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNzby9kaXN0LWNqcy9zY2hlbWFzL3NjaGVtYXNfMC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtc3NvL2Rpc3QtY2pzL3J1bnRpbWVDb25maWcuc2hhcmVkLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zc28vZGlzdC1janMvcnVudGltZUNvbmZpZy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtc3NvL2Rpc3QtY2pzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItc3NvL2Rpc3QtY2pzL2xvYWRTc28tQnc3VlN2bE8uanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1zc28vZGlzdC1janMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3NpZ25pbi9hdXRoL2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3NpZ25pbi9lbmRwb2ludC9FbmRwb2ludFBhcmFtZXRlcnMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3NpZ25pbi9lbmRwb2ludC9ydWxlc2V0LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zaWduaW4vZW5kcG9pbnQvZW5kcG9pbnRSZXNvbHZlci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc2lnbmluL21vZGVscy9TaWduaW5TZXJ2aWNlRXhjZXB0aW9uLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zaWduaW4vbW9kZWxzL2Vycm9ycy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc2lnbmluL3NjaGVtYXMvc2NoZW1hc18wLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zaWduaW4vcnVudGltZUNvbmZpZy5zaGFyZWQuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3NpZ25pbi9ydW50aW1lQ29uZmlnLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zaWduaW4vYXV0aC9odHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24uanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3NpZ25pbi9ydW50aW1lRXh0ZW5zaW9ucy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc2lnbmluL1NpZ25pbkNsaWVudC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc2lnbmluL2NvbW1hbmRzL0NyZWF0ZU9BdXRoMlRva2VuQ29tbWFuZC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc2lnbmluL1NpZ25pbi5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc2lnbmluL2NvbW1hbmRzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zaWduaW4vbW9kZWxzL2VudW1zLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zaWduaW4vbW9kZWxzL21vZGVsc18wLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zaWduaW4vaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1sb2dpbi9kaXN0LWNqcy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3RzL2F1dGgvaHR0cEF1dGhTY2hlbWVQcm92aWRlci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3RzL2VuZHBvaW50L0VuZHBvaW50UGFyYW1ldGVycy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3RzL2VuZHBvaW50L3J1bGVzZXQuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3N0cy9lbmRwb2ludC9lbmRwb2ludFJlc29sdmVyLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zdHMvbW9kZWxzL1NUU1NlcnZpY2VFeGNlcHRpb24uanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3N0cy9tb2RlbHMvZXJyb3JzLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zdHMvc2NoZW1hcy9zY2hlbWFzXzAuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3N0cy9ydW50aW1lQ29uZmlnLnNoYXJlZC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3RzL3J1bnRpbWVDb25maWcuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3N0cy9hdXRoL2h0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbi5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3RzL3J1bnRpbWVFeHRlbnNpb25zLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zdHMvU1RTQ2xpZW50LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zdHMvY29tbWFuZHMvQXNzdW1lUm9sZUNvbW1hbmQuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3N0cy9jb21tYW5kcy9Bc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5Q29tbWFuZC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3RzL1NUUy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3RzL2NvbW1hbmRzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zdHMvbW9kZWxzL21vZGVsc18wLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zdHMvZGVmYXVsdFN0c1JvbGVBc3N1bWVycy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3RzL2RlZmF1bHRSb2xlQXNzdW1lcnMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3N0cy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLXByb2Nlc3MvZGlzdC1janMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci13ZWItaWRlbnRpdHkvZGlzdC1janMvZnJvbVdlYlRva2VuLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItd2ViLWlkZW50aXR5L2Rpc3QtY2pzL2Zyb21Ub2tlbkZpbGUuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci13ZWItaWRlbnRpdHkvZGlzdC1janMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1pbmkvZGlzdC1janMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlL2Rpc3QtY2pzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9keW5hbW9kYi1jb2RlYy9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL1Byb3RvY29sTGliLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9keW5hbW9kYi1jb2RlYy9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL2Nib3IvQXdzU21pdGh5UnBjVjJDYm9yUHJvdG9jb2wuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2R5bmFtb2RiLWNvZGVjL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvY29lcmNpbmctc2VyaWFsaXplcnMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2R5bmFtb2RiLWNvZGVjL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvQ29uZmlndXJhYmxlU2VyZGVDb250ZXh0LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9keW5hbW9kYi1jb2RlYy9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL1VuaW9uU2VyZGUuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2R5bmFtb2RiLWNvZGVjL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvanNvbi9qc29uUmV2aXZlci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvZHluYW1vZGItY29kZWMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9jb21tb24uanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2R5bmFtb2RiLWNvZGVjL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvanNvbi9wYXJzZUpzb25Cb2R5LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9keW5hbW9kYi1jb2RlYy9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL2pzb24vSnNvblNoYXBlRGVzZXJpYWxpemVyLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9keW5hbW9kYi1jb2RlYy9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL2pzb24vanNvblJlcGxhY2VyLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9keW5hbW9kYi1jb2RlYy9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL2pzb24vSnNvblNoYXBlU2VyaWFsaXplci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvZHluYW1vZGItY29kZWMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9qc29uL0pzb25Db2RlYy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvZHluYW1vZGItY29kZWMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9qc29uL0F3c0pzb25ScGNQcm90b2NvbC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvZHluYW1vZGItY29kZWMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9qc29uL0F3c0pzb24xXzBQcm90b2NvbC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvZHluYW1vZGItY29kZWMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9qc29uL0F3c0pzb24xXzFQcm90b2NvbC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvZHluYW1vZGItY29kZWMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9qc29uL0F3c1Jlc3RKc29uUHJvdG9jb2wuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2R5bmFtb2RiLWNvZGVjL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvanNvbi9hd3NFeHBlY3RVbmlvbi5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvZHluYW1vZGItY29kZWMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL3htbC1idWlsZGVyL2Rpc3QtY2pzL3htbC1wYXJzZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2R5bmFtb2RiLWNvZGVjL25vZGVfbW9kdWxlcy9AYXdzLXNkay94bWwtYnVpbGRlci9kaXN0LWNqcy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvZHluYW1vZGItY29kZWMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy94bWwvWG1sU2hhcGVEZXNlcmlhbGl6ZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2R5bmFtb2RiLWNvZGVjL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvcXVlcnkvUXVlcnlTaGFwZVNlcmlhbGl6ZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2R5bmFtb2RiLWNvZGVjL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvcXVlcnkvQXdzUXVlcnlQcm90b2NvbC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvZHluYW1vZGItY29kZWMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9xdWVyeS9Bd3NFYzJRdWVyeVByb3RvY29sLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9keW5hbW9kYi1jb2RlYy9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL3htbC9wYXJzZVhtbEJvZHkuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2R5bmFtb2RiLWNvZGVjL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMveG1sL1htbFNoYXBlU2VyaWFsaXplci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvZHluYW1vZGItY29kZWMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy94bWwvWG1sQ29kZWMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2R5bmFtb2RiLWNvZGVjL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMveG1sL0F3c1Jlc3RYbWxQcm90b2NvbC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvZHluYW1vZGItY29kZWMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvZHluYW1vZGItY29kZWMvZGlzdC1janMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvdXRpbC1lbmRwb2ludHMvZGlzdC1janMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9kaXN0LWNqcy9lbmRwb2ludC9ydWxlc2V0LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvZGlzdC1janMvZW5kcG9pbnQvZW5kcG9pbnRSZXNvbHZlci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL2Rpc3QtY2pzL3J1bnRpbWVDb25maWcuc2hhcmVkLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvZGlzdC1janMvcnVudGltZUNvbmZpZy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL2Rpc3QtY2pzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9saWItZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2NsaWVudC9lbWl0V2FybmluZ0lmVW5zdXBwb3J0ZWRWZXJzaW9uLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9saWItZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2NsaWVudC9zZXRDcmVkZW50aWFsRmVhdHVyZS5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbGliLWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9jbGllbnQvc2V0RmVhdHVyZS5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbGliLWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9jbGllbnQvc2V0VG9rZW5GZWF0dXJlLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9saWItZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2NsaWVudC9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbGliLWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9odHRwQXV0aFNjaGVtZXMvdXRpbHMvZ2V0RGF0ZUhlYWRlci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbGliLWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9odHRwQXV0aFNjaGVtZXMvdXRpbHMvZ2V0U2tld0NvcnJlY3RlZERhdGUuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2xpYi1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvaHR0cEF1dGhTY2hlbWVzL3V0aWxzL2lzQ2xvY2tTa2V3ZWQuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2xpYi1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvaHR0cEF1dGhTY2hlbWVzL3V0aWxzL2dldFVwZGF0ZWRTeXN0ZW1DbG9ja09mZnNldC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbGliLWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9odHRwQXV0aFNjaGVtZXMvdXRpbHMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2xpYi1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvaHR0cEF1dGhTY2hlbWVzL2F3c19zZGsvQXdzU2RrU2lnVjRTaWduZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2xpYi1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvaHR0cEF1dGhTY2hlbWVzL2F3c19zZGsvQXdzU2RrU2lnVjRBU2lnbmVyLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9saWItZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2h0dHBBdXRoU2NoZW1lcy91dGlscy9nZXRBcnJheUZvckNvbW1hU2VwYXJhdGVkU3RyaW5nLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9saWItZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2h0dHBBdXRoU2NoZW1lcy91dGlscy9nZXRCZWFyZXJUb2tlbkVudktleS5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbGliLWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9odHRwQXV0aFNjaGVtZXMvYXdzX3Nkay9OT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfT1BUSU9OUy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbGliLWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9odHRwQXV0aFNjaGVtZXMvYXdzX3Nkay9yZXNvbHZlQXdzU2RrU2lnVjRBQ29uZmlnLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9saWItZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2h0dHBBdXRoU2NoZW1lcy9hd3Nfc2RrL3Jlc29sdmVBd3NTZGtTaWdWNENvbmZpZy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbGliLWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9odHRwQXV0aFNjaGVtZXMvYXdzX3Nkay9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbGliLWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9odHRwQXV0aFNjaGVtZXMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2xpYi1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL1Byb3RvY29sTGliLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9saWItZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9jYm9yL0F3c1NtaXRoeVJwY1YyQ2JvclByb3RvY29sLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9saWItZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9jb2VyY2luZy1zZXJpYWxpemVycy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbGliLWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvQ29uZmlndXJhYmxlU2VyZGVDb250ZXh0LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9saWItZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9VbmlvblNlcmRlLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9saWItZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9qc29uL2pzb25SZXZpdmVyLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9saWItZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9jb21tb24uanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2xpYi1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL2pzb24vcGFyc2VKc29uQm9keS5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbGliLWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvanNvbi9Kc29uU2hhcGVEZXNlcmlhbGl6ZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2xpYi1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL2pzb24vanNvblJlcGxhY2VyLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9saWItZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9qc29uL0pzb25TaGFwZVNlcmlhbGl6ZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2xpYi1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL2pzb24vSnNvbkNvZGVjLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9saWItZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9qc29uL0F3c0pzb25ScGNQcm90b2NvbC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbGliLWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvanNvbi9Bd3NKc29uMV8wUHJvdG9jb2wuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2xpYi1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL2pzb24vQXdzSnNvbjFfMVByb3RvY29sLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9saWItZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9qc29uL0F3c1Jlc3RKc29uUHJvdG9jb2wuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2xpYi1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL2pzb24vYXdzRXhwZWN0VW5pb24uanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2xpYi1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsveG1sLWJ1aWxkZXIvZGlzdC1janMveG1sLXBhcnNlci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbGliLWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay94bWwtYnVpbGRlci9kaXN0LWNqcy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbGliLWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMveG1sL1htbFNoYXBlRGVzZXJpYWxpemVyLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9saWItZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9xdWVyeS9RdWVyeVNoYXBlU2VyaWFsaXplci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbGliLWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvcXVlcnkvQXdzUXVlcnlQcm90b2NvbC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbGliLWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvcXVlcnkvQXdzRWMyUXVlcnlQcm90b2NvbC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbGliLWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMveG1sL3BhcnNlWG1sQm9keS5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbGliLWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMveG1sL1htbFNoYXBlU2VyaWFsaXplci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbGliLWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMveG1sL1htbENvZGVjLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9saWItZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy94bWwvQXdzUmVzdFhtbFByb3RvY29sLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9saWItZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbGliLWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL3V0aWwtZHluYW1vZGIvZGlzdC1janMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2xpYi1keW5hbW9kYi9kaXN0LWNqcy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbWlkZGxld2FyZS1ob3N0LWhlYWRlci9kaXN0LWNqcy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbWlkZGxld2FyZS1sb2dnZXIvZGlzdC1janMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL21pZGRsZXdhcmUtcmVjdXJzaW9uLWRldGVjdGlvbi9kaXN0LWNqcy9yZWN1cnNpb25EZXRlY3Rpb25NaWRkbGV3YXJlLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9taWRkbGV3YXJlLXJlY3Vyc2lvbi1kZXRlY3Rpb24vZGlzdC1janMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL3V0aWwtZW5kcG9pbnRzL2Rpc3QtY2pzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9jbGllbnQvZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbi5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvY2xpZW50L3NldENyZWRlbnRpYWxGZWF0dXJlLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9jbGllbnQvc2V0RmVhdHVyZS5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvY2xpZW50L3NldFRva2VuRmVhdHVyZS5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvY2xpZW50L2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9odHRwQXV0aFNjaGVtZXMvdXRpbHMvZ2V0RGF0ZUhlYWRlci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvaHR0cEF1dGhTY2hlbWVzL3V0aWxzL2dldFNrZXdDb3JyZWN0ZWREYXRlLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9odHRwQXV0aFNjaGVtZXMvdXRpbHMvaXNDbG9ja1NrZXdlZC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvaHR0cEF1dGhTY2hlbWVzL3V0aWxzL2dldFVwZGF0ZWRTeXN0ZW1DbG9ja09mZnNldC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvaHR0cEF1dGhTY2hlbWVzL3V0aWxzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9odHRwQXV0aFNjaGVtZXMvYXdzX3Nkay9Bd3NTZGtTaWdWNFNpZ25lci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvaHR0cEF1dGhTY2hlbWVzL2F3c19zZGsvQXdzU2RrU2lnVjRBU2lnbmVyLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9odHRwQXV0aFNjaGVtZXMvdXRpbHMvZ2V0QXJyYXlGb3JDb21tYVNlcGFyYXRlZFN0cmluZy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvaHR0cEF1dGhTY2hlbWVzL3V0aWxzL2dldEJlYXJlclRva2VuRW52S2V5LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9odHRwQXV0aFNjaGVtZXMvYXdzX3Nkay9OT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfT1BUSU9OUy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvaHR0cEF1dGhTY2hlbWVzL2F3c19zZGsvcmVzb2x2ZUF3c1Nka1NpZ1Y0QUNvbmZpZy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvaHR0cEF1dGhTY2hlbWVzL2F3c19zZGsvcmVzb2x2ZUF3c1Nka1NpZ1Y0Q29uZmlnLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9odHRwQXV0aFNjaGVtZXMvYXdzX3Nkay9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvaHR0cEF1dGhTY2hlbWVzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvUHJvdG9jb2xMaWIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9jYm9yL0F3c1NtaXRoeVJwY1YyQ2JvclByb3RvY29sLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvY29lcmNpbmctc2VyaWFsaXplcnMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9Db25maWd1cmFibGVTZXJkZUNvbnRleHQuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9zdHJ1Y3RJdGVyYXRvci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL2pzb24vanNvblJldml2ZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9jb21tb24uanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9qc29uL3BhcnNlSnNvbkJvZHkuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9qc29uL0pzb25TaGFwZURlc2VyaWFsaXplci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL2pzb24vanNvblJlcGxhY2VyLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvanNvbi9Kc29uU2hhcGVTZXJpYWxpemVyLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvanNvbi9Kc29uQ29kZWMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9qc29uL0F3c0pzb25ScGNQcm90b2NvbC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL2pzb24vQXdzSnNvbjFfMFByb3RvY29sLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvanNvbi9Bd3NKc29uMV8xUHJvdG9jb2wuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9qc29uL0F3c1Jlc3RKc29uUHJvdG9jb2wuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9qc29uL2F3c0V4cGVjdFVuaW9uLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL25vZGVfbW9kdWxlcy9AYXdzLXNkay94bWwtYnVpbGRlci9kaXN0LWNqcy94bWwtcGFyc2VyLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL25vZGVfbW9kdWxlcy9AYXdzLXNkay94bWwtYnVpbGRlci9kaXN0LWNqcy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL3htbC9YbWxTaGFwZURlc2VyaWFsaXplci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL3F1ZXJ5L1F1ZXJ5U2hhcGVTZXJpYWxpemVyLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvcXVlcnkvQXdzUXVlcnlQcm90b2NvbC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL3F1ZXJ5L0F3c0VjMlF1ZXJ5UHJvdG9jb2wuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy94bWwvcGFyc2VYbWxCb2R5LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMveG1sL1htbFNoYXBlU2VyaWFsaXplci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL3htbC9YbWxDb2RlYy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL3htbC9Bd3NSZXN0WG1sUHJvdG9jb2wuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9taWRkbGV3YXJlLXVzZXItYWdlbnQvZGlzdC1janMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1jbG91ZHdhdGNoL2Rpc3QtY2pzL2F1dGgvaHR0cEF1dGhTY2hlbWVQcm92aWRlci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWNsb3Vkd2F0Y2gvcGFja2FnZS5qc29uIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLW5vZGUvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItZW52L2Rpc3QtY2pzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLW5vZGUvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItaHR0cC9kaXN0LWNqcy9mcm9tSHR0cC9jaGVja1VybC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLWh0dHAvZGlzdC1janMvZnJvbUh0dHAvcmVxdWVzdEhlbHBlcnMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbm9kZS9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1odHRwL2Rpc3QtY2pzL2Zyb21IdHRwL3JldHJ5LXdyYXBwZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbm9kZS9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1odHRwL2Rpc3QtY2pzL2Zyb21IdHRwL2Zyb21IdHRwLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLW5vZGUvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItaHR0cC9kaXN0LWNqcy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3NvLW9pZGMvYXV0aC9odHRwQXV0aFNjaGVtZVByb3ZpZGVyLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLW5vZGUvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zc28tb2lkYy9lbmRwb2ludC9FbmRwb2ludFBhcmFtZXRlcnMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbm9kZS9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvcGFja2FnZS5qc29uIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay91dGlsLXVzZXItYWdlbnQtbm9kZS9kaXN0LWNqcy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3NvLW9pZGMvZW5kcG9pbnQvcnVsZXNldC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3NvLW9pZGMvZW5kcG9pbnQvZW5kcG9pbnRSZXNvbHZlci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3NvLW9pZGMvcnVudGltZUNvbmZpZy5zaGFyZWQuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbm9kZS9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3Nzby1vaWRjL3J1bnRpbWVDb25maWcuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL3JlZ2lvbi1jb25maWctcmVzb2x2ZXIvZGlzdC1janMvcmVnaW9uQ29uZmlnL3N0c1JlZ2lvbkRlZmF1bHRSZXNvbHZlci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvcmVnaW9uLWNvbmZpZy1yZXNvbHZlci9kaXN0LWNqcy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3NvLW9pZGMvYXV0aC9odHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24uanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbm9kZS9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3Nzby1vaWRjL3J1bnRpbWVFeHRlbnNpb25zLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLW5vZGUvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zc28tb2lkYy9TU09PSURDQ2xpZW50LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLW5vZGUvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zc28tb2lkYy9tb2RlbHMvU1NPT0lEQ1NlcnZpY2VFeGNlcHRpb24uanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbm9kZS9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3Nzby1vaWRjL21vZGVscy9lcnJvcnMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbm9kZS9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3Nzby1vaWRjL3NjaGVtYXMvc2NoZW1hc18wLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLW5vZGUvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zc28tb2lkYy9jb21tYW5kcy9DcmVhdGVUb2tlbkNvbW1hbmQuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbm9kZS9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3Nzby1vaWRjL1NTT09JREMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbm9kZS9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3Nzby1vaWRjL2NvbW1hbmRzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLW5vZGUvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zc28tb2lkYy9tb2RlbHMvZW51bXMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbm9kZS9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3Nzby1vaWRjL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLW5vZGUvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL3Rva2VuLXByb3ZpZGVycy9kaXN0LWNqcy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtc3NvL2Rpc3QtY2pzL2F1dGgvaHR0cEF1dGhTY2hlbWVQcm92aWRlci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtc3NvL3BhY2thZ2UuanNvbiIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtc3NvL2Rpc3QtY2pzL2VuZHBvaW50L3J1bGVzZXQuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbm9kZS9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNzby9kaXN0LWNqcy9lbmRwb2ludC9lbmRwb2ludFJlc29sdmVyLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLW5vZGUvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zc28vZGlzdC1janMvcnVudGltZUNvbmZpZy5zaGFyZWQuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbm9kZS9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNzby9kaXN0LWNqcy9ydW50aW1lQ29uZmlnLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLW5vZGUvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zc28vZGlzdC1janMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbm9kZS9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1zc28vZGlzdC1janMvbG9hZFNzby1DVnk4aXFzWi5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLXNzby9kaXN0LWNqcy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1sb2dpbi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3NpZ25pbi9hdXRoL2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbG9naW4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zaWduaW4vZW5kcG9pbnQvRW5kcG9pbnRQYXJhbWV0ZXJzLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLWxvZ2luL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9wYWNrYWdlLmpzb24iLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbG9naW4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zaWduaW4vZW5kcG9pbnQvcnVsZXNldC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1sb2dpbi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3NpZ25pbi9lbmRwb2ludC9lbmRwb2ludFJlc29sdmVyLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLWxvZ2luL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc2lnbmluL3J1bnRpbWVDb25maWcuc2hhcmVkLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLWxvZ2luL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc2lnbmluL3J1bnRpbWVDb25maWcuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbG9naW4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zaWduaW4vYXV0aC9odHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24uanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbG9naW4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zaWduaW4vcnVudGltZUV4dGVuc2lvbnMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbG9naW4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zaWduaW4vU2lnbmluQ2xpZW50LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLWxvZ2luL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc2lnbmluL21vZGVscy9TaWduaW5TZXJ2aWNlRXhjZXB0aW9uLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLWxvZ2luL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc2lnbmluL21vZGVscy9lcnJvcnMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbG9naW4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zaWduaW4vc2NoZW1hcy9zY2hlbWFzXzAuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbG9naW4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zaWduaW4vY29tbWFuZHMvQ3JlYXRlT0F1dGgyVG9rZW5Db21tYW5kLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLWxvZ2luL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc2lnbmluL1NpZ25pbi5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1sb2dpbi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3NpZ25pbi9jb21tYW5kcy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1sb2dpbi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3NpZ25pbi9tb2RlbHMvZW51bXMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbG9naW4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zaWduaW4vaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbG9naW4vZGlzdC1janMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbm9kZS9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3N0cy9hdXRoL2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbm9kZS9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3N0cy9lbmRwb2ludC9FbmRwb2ludFBhcmFtZXRlcnMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbm9kZS9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3N0cy9lbmRwb2ludC9ydWxlc2V0LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLW5vZGUvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zdHMvZW5kcG9pbnQvZW5kcG9pbnRSZXNvbHZlci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3RzL3J1bnRpbWVDb25maWcuc2hhcmVkLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLW5vZGUvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zdHMvcnVudGltZUNvbmZpZy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3RzL2F1dGgvaHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLW5vZGUvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zdHMvcnVudGltZUV4dGVuc2lvbnMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbm9kZS9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3N0cy9TVFNDbGllbnQuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbm9kZS9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3N0cy9tb2RlbHMvU1RTU2VydmljZUV4Y2VwdGlvbi5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3RzL21vZGVscy9lcnJvcnMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbm9kZS9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3N0cy9zY2hlbWFzL3NjaGVtYXNfMC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3RzL2NvbW1hbmRzL0Fzc3VtZVJvbGVDb21tYW5kLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLW5vZGUvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zdHMvY29tbWFuZHMvQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eUNvbW1hbmQuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbm9kZS9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3N0cy9TVFMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbm9kZS9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3N0cy9jb21tYW5kcy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3RzL2RlZmF1bHRTdHNSb2xlQXNzdW1lcnMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbm9kZS9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3N0cy9kZWZhdWx0Um9sZUFzc3VtZXJzLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLW5vZGUvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zdHMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbm9kZS9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1wcm9jZXNzL2Rpc3QtY2pzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLW5vZGUvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItd2ViLWlkZW50aXR5L2Rpc3QtY2pzL2Zyb21XZWJUb2tlbi5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLXdlYi1pZGVudGl0eS9kaXN0LWNqcy9mcm9tVG9rZW5GaWxlLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLW5vZGUvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItd2ViLWlkZW50aXR5L2Rpc3QtY2pzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLW5vZGUvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItaW5pL2Rpc3QtY2pzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLW5vZGUvZGlzdC1janMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1jbG91ZHdhdGNoL2Rpc3QtY2pzL2VuZHBvaW50L3J1bGVzZXQuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1jbG91ZHdhdGNoL2Rpc3QtY2pzL2VuZHBvaW50L2VuZHBvaW50UmVzb2x2ZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1jbG91ZHdhdGNoL2Rpc3QtY2pzL3J1bnRpbWVDb25maWcuc2hhcmVkLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtY2xvdWR3YXRjaC9kaXN0LWNqcy9ydW50aW1lQ29uZmlnLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtY2xvdWR3YXRjaC9kaXN0LWNqcy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvbmVnb3RpYXRvci9saWIvY2hhcnNldC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvbmVnb3RpYXRvci9saWIvZW5jb2RpbmcuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL25lZ290aWF0b3IvbGliL2xhbmd1YWdlLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9uZWdvdGlhdG9yL2xpYi9tZWRpYVR5cGUuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL25lZ290aWF0b3IvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NvbXByZXNzaWJsZS9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvd2luc3Rvbi9saWIvd2luc3Rvbi9jb21tb24uanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3dpbnN0b24vcGFja2FnZS5qc29uIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy93aW5zdG9uL2xpYi93aW5zdG9uL3RyYW5zcG9ydHMvY29uc29sZS5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvd2luc3Rvbi9saWIvd2luc3Rvbi90YWlsLWZpbGUuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3dpbnN0b24vbGliL3dpbnN0b24vdHJhbnNwb3J0cy9maWxlLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy93aW5zdG9uL2xpYi93aW5zdG9uL3RyYW5zcG9ydHMvaHR0cC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvd2luc3Rvbi9saWIvd2luc3Rvbi90cmFuc3BvcnRzL3N0cmVhbS5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvd2luc3Rvbi9saWIvd2luc3Rvbi90cmFuc3BvcnRzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy93aW5zdG9uL2xpYi93aW5zdG9uL2NvbmZpZy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvd2luc3Rvbi9saWIvd2luc3Rvbi9leGNlcHRpb24tc3RyZWFtLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy93aW5zdG9uL2xpYi93aW5zdG9uL2V4Y2VwdGlvbi1oYW5kbGVyLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy93aW5zdG9uL2xpYi93aW5zdG9uL3JlamVjdGlvbi1zdHJlYW0uanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3dpbnN0b24vbGliL3dpbnN0b24vcmVqZWN0aW9uLWhhbmRsZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3dpbnN0b24vbGliL3dpbnN0b24vcHJvZmlsZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3dpbnN0b24vbGliL3dpbnN0b24vbG9nZ2VyLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy93aW5zdG9uL2xpYi93aW5zdG9uL2NyZWF0ZS1sb2dnZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3dpbnN0b24vbGliL3dpbnN0b24vY29udGFpbmVyLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy93aW5zdG9uL2xpYi93aW5zdG9uLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtc2VjcmV0cy1tYW5hZ2VyL25vZGVfbW9kdWxlcy9AYXdzLXNkay9taWRkbGV3YXJlLWhvc3QtaGVhZGVyL2Rpc3QtY2pzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtc2VjcmV0cy1tYW5hZ2VyL25vZGVfbW9kdWxlcy9AYXdzLXNkay9taWRkbGV3YXJlLWxvZ2dlci9kaXN0LWNqcy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlci9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbWlkZGxld2FyZS1yZWN1cnNpb24tZGV0ZWN0aW9uL2Rpc3QtY2pzL3JlY3Vyc2lvbkRldGVjdGlvbk1pZGRsZXdhcmUuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL21pZGRsZXdhcmUtcmVjdXJzaW9uLWRldGVjdGlvbi9kaXN0LWNqcy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlci9ub2RlX21vZHVsZXMvQGF3cy1zZGsvdXRpbC1lbmRwb2ludHMvZGlzdC1janMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2NsaWVudC9lbWl0V2FybmluZ0lmVW5zdXBwb3J0ZWRWZXJzaW9uLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtc2VjcmV0cy1tYW5hZ2VyL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9jbGllbnQvbG9uZ1BvbGxNaWRkbGV3YXJlLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtc2VjcmV0cy1tYW5hZ2VyL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9jbGllbnQvc2V0Q3JlZGVudGlhbEZlYXR1cmUuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2NsaWVudC9zZXRGZWF0dXJlLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtc2VjcmV0cy1tYW5hZ2VyL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9jbGllbnQvc2V0VG9rZW5GZWF0dXJlLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtc2VjcmV0cy1tYW5hZ2VyL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9jbGllbnQvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL21pZGRsZXdhcmUtdXNlci1hZ2VudC9kaXN0LWNqcy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlci9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvaHR0cEF1dGhTY2hlbWVzL3V0aWxzL2dldERhdGVIZWFkZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2h0dHBBdXRoU2NoZW1lcy91dGlscy9nZXRTa2V3Q29ycmVjdGVkRGF0ZS5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlci9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvaHR0cEF1dGhTY2hlbWVzL3V0aWxzL2lzQ2xvY2tTa2V3ZWQuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2h0dHBBdXRoU2NoZW1lcy91dGlscy9nZXRVcGRhdGVkU3lzdGVtQ2xvY2tPZmZzZXQuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2h0dHBBdXRoU2NoZW1lcy91dGlscy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlci9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvaHR0cEF1dGhTY2hlbWVzL2F3c19zZGsvQXdzU2RrU2lnVjRTaWduZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2h0dHBBdXRoU2NoZW1lcy9hd3Nfc2RrL0F3c1Nka1NpZ1Y0QVNpZ25lci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlci9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvaHR0cEF1dGhTY2hlbWVzL3V0aWxzL2dldEFycmF5Rm9yQ29tbWFTZXBhcmF0ZWRTdHJpbmcuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2h0dHBBdXRoU2NoZW1lcy91dGlscy9nZXRCZWFyZXJUb2tlbkVudktleS5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlci9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvaHR0cEF1dGhTY2hlbWVzL2F3c19zZGsvTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX09QVElPTlMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2h0dHBBdXRoU2NoZW1lcy9hd3Nfc2RrL3Jlc29sdmVBd3NTZGtTaWdWNEFDb25maWcuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2h0dHBBdXRoU2NoZW1lcy9hd3Nfc2RrL3Jlc29sdmVBd3NTZGtTaWdWNENvbmZpZy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlci9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvaHR0cEF1dGhTY2hlbWVzL2F3c19zZGsvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2h0dHBBdXRoU2NoZW1lcy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlci9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL1Byb3RvY29sTGliLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtc2VjcmV0cy1tYW5hZ2VyL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvY2Jvci9Bd3NTbWl0aHlScGNWMkNib3JQcm90b2NvbC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlci9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL2NvZXJjaW5nLXNlcmlhbGl6ZXJzLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtc2VjcmV0cy1tYW5hZ2VyL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvQ29uZmlndXJhYmxlU2VyZGVDb250ZXh0LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtc2VjcmV0cy1tYW5hZ2VyL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvVW5pb25TZXJkZS5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlci9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL2pzb24vanNvblJldml2ZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9jb21tb24uanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9qc29uL3BhcnNlSnNvbkJvZHkuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9qc29uL0pzb25TaGFwZURlc2VyaWFsaXplci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlci9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL2pzb24vanNvblJlcGxhY2VyLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtc2VjcmV0cy1tYW5hZ2VyL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvanNvbi9Kc29uU2hhcGVTZXJpYWxpemVyLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtc2VjcmV0cy1tYW5hZ2VyL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvanNvbi9Kc29uQ29kZWMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9qc29uL0F3c0pzb25ScGNQcm90b2NvbC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlci9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL2pzb24vQXdzSnNvbjFfMFByb3RvY29sLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtc2VjcmV0cy1tYW5hZ2VyL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvanNvbi9Bd3NKc29uMV8xUHJvdG9jb2wuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9qc29uL0F3c1Jlc3RKc29uUHJvdG9jb2wuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9qc29uL2F3c0V4cGVjdFVuaW9uLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtc2VjcmV0cy1tYW5hZ2VyL25vZGVfbW9kdWxlcy9AYXdzLXNkay94bWwtYnVpbGRlci9kaXN0LWNqcy94bWwtZXh0ZXJuYWwvbm9kYWJsZV9lbnRpdGllcy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlci9ub2RlX21vZHVsZXMvQGF3cy1zZGsveG1sLWJ1aWxkZXIvZGlzdC1janMveG1sLXBhcnNlci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlci9ub2RlX21vZHVsZXMvQGF3cy1zZGsveG1sLWJ1aWxkZXIvZGlzdC1janMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy94bWwvWG1sU2hhcGVEZXNlcmlhbGl6ZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9xdWVyeS9RdWVyeVNoYXBlU2VyaWFsaXplci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlci9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL3F1ZXJ5L0F3c1F1ZXJ5UHJvdG9jb2wuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9xdWVyeS9Bd3NFYzJRdWVyeVByb3RvY29sLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtc2VjcmV0cy1tYW5hZ2VyL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvcXVlcnkvUXVlcnlTZXJpYWxpemVyU2V0dGluZ3MuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy94bWwvcGFyc2VYbWxCb2R5LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtc2VjcmV0cy1tYW5hZ2VyL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMveG1sL1htbFNoYXBlU2VyaWFsaXplci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlci9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL3htbC9YbWxDb2RlYy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlci9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL3htbC9Bd3NSZXN0WG1sUHJvdG9jb2wuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlci9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtc2VjcmV0cy1tYW5hZ2VyL2Rpc3QtY2pzL2F1dGgvaHR0cEF1dGhTY2hlbWVQcm92aWRlci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlci9wYWNrYWdlLmpzb24iLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItZW52L2Rpc3QtY2pzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtc2VjcmV0cy1tYW5hZ2VyL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLWh0dHAvZGlzdC1janMvZnJvbUh0dHAvY2hlY2tVcmwuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItaHR0cC9kaXN0LWNqcy9mcm9tSHR0cC9yZXF1ZXN0SGVscGVycy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlci9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1odHRwL2Rpc3QtY2pzL2Zyb21IdHRwL3JldHJ5LXdyYXBwZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItaHR0cC9kaXN0LWNqcy9mcm9tSHR0cC9mcm9tSHR0cC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlci9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1odHRwL2Rpc3QtY2pzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbWlkZGxld2FyZS1ob3N0LWhlYWRlci9kaXN0LWNqcy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL21pZGRsZXdhcmUtbG9nZ2VyL2Rpc3QtY2pzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbWlkZGxld2FyZS1yZWN1cnNpb24tZGV0ZWN0aW9uL2Rpc3QtY2pzL3JlY3Vyc2lvbkRldGVjdGlvbk1pZGRsZXdhcmUuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL25vZGVfbW9kdWxlcy9AYXdzLXNkay9taWRkbGV3YXJlLXJlY3Vyc2lvbi1kZXRlY3Rpb24vZGlzdC1janMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL25vZGVfbW9kdWxlcy9AYXdzLXNkay91dGlsLWVuZHBvaW50cy9kaXN0LWNqcy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2NsaWVudC9lbWl0V2FybmluZ0lmVW5zdXBwb3J0ZWRWZXJzaW9uLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvY2xpZW50L2xvbmdQb2xsTWlkZGxld2FyZS5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2NsaWVudC9zZXRDcmVkZW50aWFsRmVhdHVyZS5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2NsaWVudC9zZXRGZWF0dXJlLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvY2xpZW50L3NldFRva2VuRmVhdHVyZS5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2NsaWVudC9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL21pZGRsZXdhcmUtdXNlci1hZ2VudC9kaXN0LWNqcy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2h0dHBBdXRoU2NoZW1lcy91dGlscy9nZXREYXRlSGVhZGVyLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvaHR0cEF1dGhTY2hlbWVzL3V0aWxzL2dldFNrZXdDb3JyZWN0ZWREYXRlLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvaHR0cEF1dGhTY2hlbWVzL3V0aWxzL2lzQ2xvY2tTa2V3ZWQuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9odHRwQXV0aFNjaGVtZXMvdXRpbHMvZ2V0VXBkYXRlZFN5c3RlbUNsb2NrT2Zmc2V0LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvaHR0cEF1dGhTY2hlbWVzL3V0aWxzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvaHR0cEF1dGhTY2hlbWVzL2F3c19zZGsvQXdzU2RrU2lnVjRTaWduZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9odHRwQXV0aFNjaGVtZXMvYXdzX3Nkay9Bd3NTZGtTaWdWNEFTaWduZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9odHRwQXV0aFNjaGVtZXMvdXRpbHMvZ2V0QXJyYXlGb3JDb21tYVNlcGFyYXRlZFN0cmluZy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2h0dHBBdXRoU2NoZW1lcy91dGlscy9nZXRCZWFyZXJUb2tlbkVudktleS5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2h0dHBBdXRoU2NoZW1lcy9hd3Nfc2RrL05PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9PUFRJT05TLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvaHR0cEF1dGhTY2hlbWVzL2F3c19zZGsvcmVzb2x2ZUF3c1Nka1NpZ1Y0QUNvbmZpZy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2h0dHBBdXRoU2NoZW1lcy9hd3Nfc2RrL3Jlc29sdmVBd3NTZGtTaWdWNENvbmZpZy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2h0dHBBdXRoU2NoZW1lcy9hd3Nfc2RrL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvaHR0cEF1dGhTY2hlbWVzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3NvLW9pZGMvYXV0aC9odHRwQXV0aFNjaGVtZVByb3ZpZGVyLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3NvLW9pZGMvZW5kcG9pbnQvRW5kcG9pbnRQYXJhbWV0ZXJzLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9wYWNrYWdlLmpzb24iLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL25vZGVfbW9kdWxlcy9AYXdzLXNkay91dGlsLXVzZXItYWdlbnQtbm9kZS9kaXN0LWNqcy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9Qcm90b2NvbExpYi5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9jYm9yL0F3c1NtaXRoeVJwY1YyQ2JvclByb3RvY29sLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL2NvZXJjaW5nLXNlcmlhbGl6ZXJzLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9VbmlvblNlcmRlLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL2pzb24vanNvblJldml2ZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvY29tbW9uLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL2pzb24vcGFyc2VKc29uQm9keS5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9qc29uL0pzb25TaGFwZURlc2VyaWFsaXplci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9qc29uL2pzb25SZXBsYWNlci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9qc29uL0pzb25TaGFwZVNlcmlhbGl6ZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvanNvbi9Kc29uQ29kZWMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvanNvbi9Bd3NKc29uUnBjUHJvdG9jb2wuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvanNvbi9Bd3NKc29uMV8wUHJvdG9jb2wuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvanNvbi9Bd3NKc29uMV8xUHJvdG9jb2wuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvanNvbi9Bd3NSZXN0SnNvblByb3RvY29sLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL2pzb24vYXdzRXhwZWN0VW5pb24uanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL25vZGVfbW9kdWxlcy9AYXdzLXNkay94bWwtYnVpbGRlci9kaXN0LWNqcy94bWwtZXh0ZXJuYWwvbm9kYWJsZV9lbnRpdGllcy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL3htbC1idWlsZGVyL2Rpc3QtY2pzL3htbC1wYXJzZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL25vZGVfbW9kdWxlcy9AYXdzLXNkay94bWwtYnVpbGRlci9kaXN0LWNqcy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy94bWwvWG1sU2hhcGVEZXNlcmlhbGl6ZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvcXVlcnkvUXVlcnlTaGFwZVNlcmlhbGl6ZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvcXVlcnkvQXdzUXVlcnlQcm90b2NvbC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9xdWVyeS9Bd3NFYzJRdWVyeVByb3RvY29sLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL3F1ZXJ5L1F1ZXJ5U2VyaWFsaXplclNldHRpbmdzLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL3htbC9wYXJzZVhtbEJvZHkuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMveG1sL1htbFNoYXBlU2VyaWFsaXplci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy94bWwvWG1sQ29kZWMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMveG1sL0F3c1Jlc3RYbWxQcm90b2NvbC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3Nzby1vaWRjL2VuZHBvaW50L2JkZC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3Nzby1vaWRjL2VuZHBvaW50L2VuZHBvaW50UmVzb2x2ZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zc28tb2lkYy9tb2RlbHMvU1NPT0lEQ1NlcnZpY2VFeGNlcHRpb24uanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zc28tb2lkYy9tb2RlbHMvZXJyb3JzLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3NvLW9pZGMvc2NoZW1hcy9zY2hlbWFzXzAuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zc28tb2lkYy9ydW50aW1lQ29uZmlnLnNoYXJlZC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3Nzby1vaWRjL3J1bnRpbWVDb25maWcuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL25vZGVfbW9kdWxlcy9AYXdzLXNkay9yZWdpb24tY29uZmlnLXJlc29sdmVyL2Rpc3QtY2pzL3JlZ2lvbkNvbmZpZy9zdHNSZWdpb25EZWZhdWx0UmVzb2x2ZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL25vZGVfbW9kdWxlcy9AYXdzLXNkay9yZWdpb24tY29uZmlnLXJlc29sdmVyL2Rpc3QtY2pzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3NvLW9pZGMvYXV0aC9odHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24uanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zc28tb2lkYy9ydW50aW1lRXh0ZW5zaW9ucy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3Nzby1vaWRjL1NTT09JRENDbGllbnQuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zc28tb2lkYy9jb21tYW5kcy9DcmVhdGVUb2tlbkNvbW1hbmQuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zc28tb2lkYy9TU09PSURDLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3NvLW9pZGMvY29tbWFuZHMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zc28tb2lkYy9tb2RlbHMvZW51bXMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zc28tb2lkYy9tb2RlbHMvbW9kZWxzXzAuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zc28tb2lkYy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlci9ub2RlX21vZHVsZXMvQGF3cy1zZGsvdG9rZW4tcHJvdmlkZXJzL2Rpc3QtY2pzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3NvL2F1dGgvaHR0cEF1dGhTY2hlbWVQcm92aWRlci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3Nzby9lbmRwb2ludC9FbmRwb2ludFBhcmFtZXRlcnMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zc28vZW5kcG9pbnQvYmRkLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3NvL2VuZHBvaW50L2VuZHBvaW50UmVzb2x2ZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zc28vbW9kZWxzL1NTT1NlcnZpY2VFeGNlcHRpb24uanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zc28vbW9kZWxzL2Vycm9ycy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3Nzby9zY2hlbWFzL3NjaGVtYXNfMC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3Nzby9ydW50aW1lQ29uZmlnLnNoYXJlZC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3Nzby9ydW50aW1lQ29uZmlnLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3NvL2F1dGgvaHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3NvL3J1bnRpbWVFeHRlbnNpb25zLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3NvL1NTT0NsaWVudC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3Nzby9jb21tYW5kcy9HZXRSb2xlQ3JlZGVudGlhbHNDb21tYW5kLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3NvL1NTTy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3Nzby9jb21tYW5kcy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3Nzby9tb2RlbHMvbW9kZWxzXzAuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zc28vaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItc3NvL2Rpc3QtY2pzL2xvYWRTc28tQktETnJzYWwuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItc3NvL2Rpc3QtY2pzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc2lnbmluL2F1dGgvaHR0cEF1dGhTY2hlbWVQcm92aWRlci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3NpZ25pbi9lbmRwb2ludC9FbmRwb2ludFBhcmFtZXRlcnMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zaWduaW4vZW5kcG9pbnQvYmRkLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc2lnbmluL2VuZHBvaW50L2VuZHBvaW50UmVzb2x2ZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zaWduaW4vbW9kZWxzL1NpZ25pblNlcnZpY2VFeGNlcHRpb24uanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zaWduaW4vbW9kZWxzL2Vycm9ycy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3NpZ25pbi9zY2hlbWFzL3NjaGVtYXNfMC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3NpZ25pbi9ydW50aW1lQ29uZmlnLnNoYXJlZC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3NpZ25pbi9ydW50aW1lQ29uZmlnLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc2lnbmluL2F1dGgvaHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc2lnbmluL3J1bnRpbWVFeHRlbnNpb25zLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc2lnbmluL1NpZ25pbkNsaWVudC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3NpZ25pbi9jb21tYW5kcy9DcmVhdGVPQXV0aDJUb2tlbkNvbW1hbmQuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zaWduaW4vU2lnbmluLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc2lnbmluL2NvbW1hbmRzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc2lnbmluL21vZGVscy9lbnVtcy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3NpZ25pbi9tb2RlbHMvbW9kZWxzXzAuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zaWduaW4vaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbG9naW4vZGlzdC1janMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL25vZGVfbW9kdWxlcy9AYXdzLXNkay9taWRkbGV3YXJlLXNkay1zMy9kaXN0LWNqcy90b1N0cmVhbS5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL3V0aWwtYXJuLXBhcnNlci9kaXN0LWNqcy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL21pZGRsZXdhcmUtc2RrLXMzL2Rpc3QtY2pzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9ub2RlX21vZHVsZXMvQGF3cy1zZGsvc2lnbmF0dXJlLXY0LW11bHRpLXJlZ2lvbi9kaXN0LWNqcy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3N0cy9lbmRwb2ludC9iZGQuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zdHMvZW5kcG9pbnQvZW5kcG9pbnRSZXNvbHZlci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3N0cy9hdXRoL2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zdHMvZW5kcG9pbnQvRW5kcG9pbnRQYXJhbWV0ZXJzLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3RzL21vZGVscy9TVFNTZXJ2aWNlRXhjZXB0aW9uLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3RzL21vZGVscy9lcnJvcnMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zdHMvc2NoZW1hcy9zY2hlbWFzXzAuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zdHMvcnVudGltZUNvbmZpZy5zaGFyZWQuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zdHMvcnVudGltZUNvbmZpZy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3N0cy9hdXRoL2h0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbi5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3N0cy9ydW50aW1lRXh0ZW5zaW9ucy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3N0cy9TVFNDbGllbnQuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zdHMvY29tbWFuZHMvQXNzdW1lUm9sZUNvbW1hbmQuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zdHMvY29tbWFuZHMvQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eUNvbW1hbmQuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zdHMvU1RTLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3RzL2NvbW1hbmRzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3RzL21vZGVscy9tb2RlbHNfMC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3N0cy9kZWZhdWx0U3RzUm9sZUFzc3VtZXJzLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3RzL2RlZmF1bHRSb2xlQXNzdW1lcnMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zdHMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItcHJvY2Vzcy9kaXN0LWNqcy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlci9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci13ZWItaWRlbnRpdHkvZGlzdC1janMvZnJvbVdlYlRva2VuLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtc2VjcmV0cy1tYW5hZ2VyL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLXdlYi1pZGVudGl0eS9kaXN0LWNqcy9mcm9tVG9rZW5GaWxlLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtc2VjcmV0cy1tYW5hZ2VyL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLXdlYi1pZGVudGl0eS9kaXN0LWNqcy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlci9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1pbmkvZGlzdC1janMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbm9kZS9kaXN0LWNqcy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlci9ub2RlX21vZHVsZXMvQGF3cy1zZGsvdXRpbC11c2VyLWFnZW50LW5vZGUvZGlzdC1janMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvZGlzdC1janMvZW5kcG9pbnQvcnVsZXNldC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlci9kaXN0LWNqcy9lbmRwb2ludC9lbmRwb2ludFJlc29sdmVyLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtc2VjcmV0cy1tYW5hZ2VyL2Rpc3QtY2pzL21vZGVscy9TZWNyZXRzTWFuYWdlclNlcnZpY2VFeGNlcHRpb24uanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvZGlzdC1janMvbW9kZWxzL2Vycm9ycy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlci9kaXN0LWNqcy9zY2hlbWFzL3NjaGVtYXNfMC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlci9kaXN0LWNqcy9ydW50aW1lQ29uZmlnLnNoYXJlZC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlci9kaXN0LWNqcy9ydW50aW1lQ29uZmlnLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtc2VjcmV0cy1tYW5hZ2VyL25vZGVfbW9kdWxlcy9AYXdzLXNkay9yZWdpb24tY29uZmlnLXJlc29sdmVyL2Rpc3QtY2pzL3JlZ2lvbkNvbmZpZy9zdHNSZWdpb25EZWZhdWx0UmVzb2x2ZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL3JlZ2lvbi1jb25maWctcmVzb2x2ZXIvZGlzdC1janMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvZGlzdC1janMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1sYW1iZGEvZGlzdC1janMvYXV0aC9odHRwQXV0aFNjaGVtZVByb3ZpZGVyLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtbGFtYmRhL3BhY2thZ2UuanNvbiIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWxhbWJkYS9kaXN0LWNqcy9lbmRwb2ludC9ydWxlc2V0LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtbGFtYmRhL2Rpc3QtY2pzL2VuZHBvaW50L2VuZHBvaW50UmVzb2x2ZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1sYW1iZGEvZGlzdC1janMvcnVudGltZUNvbmZpZy5zaGFyZWQuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1sYW1iZGEvZGlzdC1janMvcnVudGltZUNvbmZpZy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWxhbWJkYS9kaXN0LWNqcy9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbWlkZGxld2FyZS1leHBlY3QtY29udGludWUvZGlzdC1janMvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL21pZGRsZXdhcmUtZmxleGlibGUtY2hlY2tzdW1zL2Rpc3QtY2pzL2dldENyYzMyQ2hlY2tzdW1BbGdvcml0aG1GdW5jdGlvbi5qcyIsICIuLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbWlkZGxld2FyZS1mbGV4aWJsZS1jaGVja3N1bXMvZGlzdC1janMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL3V0aWwtYXJuLXBhcnNlci9kaXN0LWNqcy9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbWlkZGxld2FyZS1zZGstczMvZGlzdC1janMvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL3NpZ25hdHVyZS12NC1tdWx0aS1yZWdpb24vZGlzdC1janMvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zMy9kaXN0LWNqcy9lbmRwb2ludC9ydWxlc2V0LmpzIiwgIi4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtczMvZGlzdC1janMvZW5kcG9pbnQvZW5kcG9pbnRSZXNvbHZlci5qcyIsICIuLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXMzL2Rpc3QtY2pzL2F1dGgvaHR0cEF1dGhTY2hlbWVQcm92aWRlci5qcyIsICIuLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXMzL3BhY2thZ2UuanNvbiIsICIuLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbWlkZGxld2FyZS1idWNrZXQtZW5kcG9pbnQvZGlzdC1janMvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zMy9kaXN0LWNqcy9ydW50aW1lQ29uZmlnLnNoYXJlZC5qcyIsICIuLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXMzL2Rpc3QtY2pzL3J1bnRpbWVDb25maWcuanMiLCAiLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL21pZGRsZXdhcmUtc3NlYy9kaXN0LWNqcy9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbWlkZGxld2FyZS1sb2NhdGlvbi1jb25zdHJhaW50L2Rpc3QtY2pzL2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtczMvZGlzdC1janMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1jbG91ZHdhdGNoLWxvZ3MvZGlzdC1janMvYXV0aC9odHRwQXV0aFNjaGVtZVByb3ZpZGVyLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtY2xvdWR3YXRjaC1sb2dzL3BhY2thZ2UuanNvbiIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWNsb3Vkd2F0Y2gtbG9ncy9kaXN0LWNqcy9lbmRwb2ludC9ydWxlc2V0LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtY2xvdWR3YXRjaC1sb2dzL2Rpc3QtY2pzL2VuZHBvaW50L2VuZHBvaW50UmVzb2x2ZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1jbG91ZHdhdGNoLWxvZ3MvZGlzdC1janMvcnVudGltZUNvbmZpZy5zaGFyZWQuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1jbG91ZHdhdGNoLWxvZ3MvZGlzdC1janMvcnVudGltZUNvbmZpZy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWNsb3Vkd2F0Y2gtbG9ncy9kaXN0LWNqcy9pbmRleC5qcyIsICIuLi9zcmMvc3NyLnRzIiwgIi4uL3NyYy9hcHAvc2VydmVyLnRzIiwgIi4uLy4uL21ydC11dGlsaXRpZXMvc3JjL21pZGRsZXdhcmUvZGF0YS1zdG9yZS50cyIsICIuLi8uLi9tcnQtdXRpbGl0aWVzL3NyYy91dGlscy91dGlscy50cyIsICIuLi8uLi9tcnQtdXRpbGl0aWVzL3NyYy91dGlscy9zc3ItcHJveHlpbmcudHMiLCAiLi4vLi4vbXJ0LXV0aWxpdGllcy9zcmMvdXRpbHMvY29uZmlndXJlLXByb3h5aW5nLnRzIiwgIi4uLy4uL21ydC11dGlsaXRpZXMvc3JjL21pZGRsZXdhcmUvbWlkZGxld2FyZS50cyIsICIuLi8uLi9tcnQtdXRpbGl0aWVzL3NyYy9tZXRyaWNzL21ldHJpY3Mtc2VuZGVyLnRzIiwgIi4uLy4uL21ydC11dGlsaXRpZXMvc3JjL3N0cmVhbWluZy9jcmVhdGUtbGFtYmRhLWFkYXB0ZXIudHMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BoNGFkL3NlcnZlcmxlc3MtYWRhcHRlci9saWIvY2h1bmstUVdQVklYMlQubWpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AaDRhZC9zZXJ2ZXJsZXNzLWFkYXB0ZXIvc3JjL25ldHdvcmsvcmVxdWVzdC50cyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGg0YWQvc2VydmVybGVzcy1hZGFwdGVyL3NyYy9jb3JlL2NvbnN0YW50cy50cyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGg0YWQvc2VydmVybGVzcy1hZGFwdGVyL3NyYy9jb3JlL2N1cnJlbnQtaW52b2tlLnRzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AaDRhZC9zZXJ2ZXJsZXNzLWFkYXB0ZXIvc3JjL2NvcmUvZXZlbnQtYm9keS50cyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGg0YWQvc2VydmVybGVzcy1hZGFwdGVyL3NyYy9jb3JlL2hlYWRlcnMudHMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BoNGFkL3NlcnZlcmxlc3MtYWRhcHRlci9zcmMvY29yZS9pcy1iaW5hcnkudHMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BoNGFkL3NlcnZlcmxlc3MtYWRhcHRlci9zcmMvY29yZS9uby1vcC50cyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGg0YWQvc2VydmVybGVzcy1hZGFwdGVyL3NyYy9jb3JlL2xvZ2dlci50cyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGg0YWQvc2VydmVybGVzcy1hZGFwdGVyL3NyYy9jb3JlL29wdGlvbmFsLnRzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AaDRhZC9zZXJ2ZXJsZXNzLWFkYXB0ZXIvc3JjL2NvcmUvcGF0aC50cyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGg0YWQvc2VydmVybGVzcy1hZGFwdGVyL3NyYy9jb3JlL3N0cmVhbS50cyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGg0YWQvc2VydmVybGVzcy1hZGFwdGVyL3NyYy9uZXR3b3JrL3Jlc3BvbnNlLnRzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AaDRhZC9zZXJ2ZXJsZXNzLWFkYXB0ZXIvc3JjL25ldHdvcmsvdXRpbHMudHMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BoNGFkL3NlcnZlcmxlc3MtYWRhcHRlci9zcmMvbmV0d29yay9yZXNwb25zZS1zdHJlYW0udHMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BoNGFkL3NlcnZlcmxlc3MtYWRhcHRlci9zcmMvY29yZS9iYXNlLWhhbmRsZXIudHMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BoNGFkL3NlcnZlcmxlc3MtYWRhcHRlci9zcmMvc2VydmVybGVzcy1hZGFwdGVyLnRzIiwgIi4uL3NyYy91dGlscy9yZWZlcmVuY2Utcm91dGVzLnRzIiwgIi4uL3NyYy91dGlscy9pc29sYXRpb24tYWN0aW9ucy50cyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGg0YWQvc2VydmVybGVzcy1hZGFwdGVyL3NyYy9oYW5kbGVycy9kZWZhdWx0L2RlZmF1bHQuaGFuZGxlci50cyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGg0YWQvc2VydmVybGVzcy1hZGFwdGVyL3NyYy9yZXNvbHZlcnMvY2FsbGJhY2svY2FsbGJhY2sucmVzb2x2ZXIudHMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BoNGFkL3NlcnZlcmxlc3MtYWRhcHRlci9zcmMvYWRhcHRlcnMvYXdzL2FsYi5hZGFwdGVyLnRzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AaDRhZC9zZXJ2ZXJsZXNzLWFkYXB0ZXIvc3JjL2FkYXB0ZXJzL2F3cy9hcGktZ2F0ZXdheS12MS5hZGFwdGVyLnRzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AaDRhZC9zZXJ2ZXJsZXNzLWFkYXB0ZXIvc3JjL2FkYXB0ZXJzL2F3cy9hcGktZ2F0ZXdheS12Mi5hZGFwdGVyLnRzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AaDRhZC9zZXJ2ZXJsZXNzLWFkYXB0ZXIvc3JjL2FkYXB0ZXJzL2F3cy9iYXNlL2F3cy1zaW1wbGUtYWRhcHRlci50cyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGg0YWQvc2VydmVybGVzcy1hZGFwdGVyL3NyYy9hZGFwdGVycy9hd3MvZHluYW1vZGIuYWRhcHRlci50cyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGg0YWQvc2VydmVybGVzcy1hZGFwdGVyL3NyYy9hZGFwdGVycy9hd3MvZXZlbnQtYnJpZGdlLmFkYXB0ZXIudHMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BoNGFkL3NlcnZlcmxlc3MtYWRhcHRlci9zcmMvYWRhcHRlcnMvYXdzL2xhbWJkYS1lZGdlLmFkYXB0ZXIudHMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BoNGFkL3NlcnZlcmxlc3MtYWRhcHRlci9zcmMvYWRhcHRlcnMvYXdzL3MzLmFkYXB0ZXIudHMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BoNGFkL3NlcnZlcmxlc3MtYWRhcHRlci9zcmMvYWRhcHRlcnMvYXdzL3Nucy5hZGFwdGVyLnRzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AaDRhZC9zZXJ2ZXJsZXNzLWFkYXB0ZXIvc3JjL2FkYXB0ZXJzL2F3cy9zcXMuYWRhcHRlci50cyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGg0YWQvc2VydmVybGVzcy1hZGFwdGVyL3NyYy9hZGFwdGVycy9hd3MvcmVxdWVzdC1sYW1iZGEtZWRnZS5hZGFwdGVyLnRzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AaDRhZC9zZXJ2ZXJsZXNzLWFkYXB0ZXIvc3JjL2ZyYW1ld29ya3MvZXhwcmVzcy9leHByZXNzLmZyYW1ld29yay50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyohXG4gKiBleHByZXNzXG4gKiBDb3B5cmlnaHQoYykgMjAwOS0yMDEzIFRKIEhvbG93YXljaHVrXG4gKiBDb3B5cmlnaHQoYykgMjAxMyBSb21hbiBTaHR5bG1hblxuICogQ29weXJpZ2h0KGMpIDIwMTQtMjAxNSBEb3VnbGFzIENocmlzdG9waGVyIFdpbHNvblxuICogTUlUIExpY2Vuc2VkXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG4vKipcbiAqIE1vZHVsZSBkZXBlbmRlbmNpZXMuXG4gKiBAcHJpdmF0ZVxuICovXG5cbnZhciBkZWJ1ZyA9IHJlcXVpcmUoJ2RlYnVnJykoJ2V4cHJlc3M6dmlldycpO1xudmFyIHBhdGggPSByZXF1aXJlKCdub2RlOnBhdGgnKTtcbnZhciBmcyA9IHJlcXVpcmUoJ25vZGU6ZnMnKTtcblxuLyoqXG4gKiBNb2R1bGUgdmFyaWFibGVzLlxuICogQHByaXZhdGVcbiAqL1xuXG52YXIgZGlybmFtZSA9IHBhdGguZGlybmFtZTtcbnZhciBiYXNlbmFtZSA9IHBhdGguYmFzZW5hbWU7XG52YXIgZXh0bmFtZSA9IHBhdGguZXh0bmFtZTtcbnZhciBqb2luID0gcGF0aC5qb2luO1xudmFyIHJlc29sdmUgPSBwYXRoLnJlc29sdmU7XG5cbi8qKlxuICogTW9kdWxlIGV4cG9ydHMuXG4gKiBAcHVibGljXG4gKi9cblxubW9kdWxlLmV4cG9ydHMgPSBWaWV3O1xuXG4vKipcbiAqIEluaXRpYWxpemUgYSBuZXcgYFZpZXdgIHdpdGggdGhlIGdpdmVuIGBuYW1lYC5cbiAqXG4gKiBPcHRpb25zOlxuICpcbiAqICAgLSBgZGVmYXVsdEVuZ2luZWAgdGhlIGRlZmF1bHQgdGVtcGxhdGUgZW5naW5lIG5hbWVcbiAqICAgLSBgZW5naW5lc2AgdGVtcGxhdGUgZW5naW5lIHJlcXVpcmUoKSBjYWNoZVxuICogICAtIGByb290YCByb290IHBhdGggZm9yIHZpZXcgbG9va3VwXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IG5hbWVcbiAqIEBwYXJhbSB7b2JqZWN0fSBvcHRpb25zXG4gKiBAcHVibGljXG4gKi9cblxuZnVuY3Rpb24gVmlldyhuYW1lLCBvcHRpb25zKSB7XG4gIHZhciBvcHRzID0gb3B0aW9ucyB8fCB7fTtcblxuICB0aGlzLmRlZmF1bHRFbmdpbmUgPSBvcHRzLmRlZmF1bHRFbmdpbmU7XG4gIHRoaXMuZXh0ID0gZXh0bmFtZShuYW1lKTtcbiAgdGhpcy5uYW1lID0gbmFtZTtcbiAgdGhpcy5yb290ID0gb3B0cy5yb290O1xuXG4gIGlmICghdGhpcy5leHQgJiYgIXRoaXMuZGVmYXVsdEVuZ2luZSkge1xuICAgIHRocm93IG5ldyBFcnJvcignTm8gZGVmYXVsdCBlbmdpbmUgd2FzIHNwZWNpZmllZCBhbmQgbm8gZXh0ZW5zaW9uIHdhcyBwcm92aWRlZC4nKTtcbiAgfVxuXG4gIHZhciBmaWxlTmFtZSA9IG5hbWU7XG5cbiAgaWYgKCF0aGlzLmV4dCkge1xuICAgIC8vIGdldCBleHRlbnNpb24gZnJvbSBkZWZhdWx0IGVuZ2luZSBuYW1lXG4gICAgdGhpcy5leHQgPSB0aGlzLmRlZmF1bHRFbmdpbmVbMF0gIT09ICcuJ1xuICAgICAgPyAnLicgKyB0aGlzLmRlZmF1bHRFbmdpbmVcbiAgICAgIDogdGhpcy5kZWZhdWx0RW5naW5lO1xuXG4gICAgZmlsZU5hbWUgKz0gdGhpcy5leHQ7XG4gIH1cblxuICBpZiAoIW9wdHMuZW5naW5lc1t0aGlzLmV4dF0pIHtcbiAgICAvLyBsb2FkIGVuZ2luZVxuICAgIHZhciBtb2QgPSB0aGlzLmV4dC5zbGljZSgxKVxuICAgIGRlYnVnKCdyZXF1aXJlIFwiJXNcIicsIG1vZClcblxuICAgIC8vIGRlZmF1bHQgZW5naW5lIGV4cG9ydFxuICAgIHZhciBmbiA9IHJlcXVpcmUobW9kKS5fX2V4cHJlc3NcblxuICAgIGlmICh0eXBlb2YgZm4gIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTW9kdWxlIFwiJyArIG1vZCArICdcIiBkb2VzIG5vdCBwcm92aWRlIGEgdmlldyBlbmdpbmUuJylcbiAgICB9XG5cbiAgICBvcHRzLmVuZ2luZXNbdGhpcy5leHRdID0gZm5cbiAgfVxuXG4gIC8vIHN0b3JlIGxvYWRlZCBlbmdpbmVcbiAgdGhpcy5lbmdpbmUgPSBvcHRzLmVuZ2luZXNbdGhpcy5leHRdO1xuXG4gIC8vIGxvb2t1cCBwYXRoXG4gIHRoaXMucGF0aCA9IHRoaXMubG9va3VwKGZpbGVOYW1lKTtcbn1cblxuLyoqXG4gKiBMb29rdXAgdmlldyBieSB0aGUgZ2l2ZW4gYG5hbWVgXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IG5hbWVcbiAqIEBwcml2YXRlXG4gKi9cblxuVmlldy5wcm90b3R5cGUubG9va3VwID0gZnVuY3Rpb24gbG9va3VwKG5hbWUpIHtcbiAgdmFyIHBhdGg7XG4gIHZhciByb290cyA9IFtdLmNvbmNhdCh0aGlzLnJvb3QpO1xuXG4gIGRlYnVnKCdsb29rdXAgXCIlc1wiJywgbmFtZSk7XG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCByb290cy5sZW5ndGggJiYgIXBhdGg7IGkrKykge1xuICAgIHZhciByb290ID0gcm9vdHNbaV07XG5cbiAgICAvLyByZXNvbHZlIHRoZSBwYXRoXG4gICAgdmFyIGxvYyA9IHJlc29sdmUocm9vdCwgbmFtZSk7XG4gICAgdmFyIGRpciA9IGRpcm5hbWUobG9jKTtcbiAgICB2YXIgZmlsZSA9IGJhc2VuYW1lKGxvYyk7XG5cbiAgICAvLyByZXNvbHZlIHRoZSBmaWxlXG4gICAgcGF0aCA9IHRoaXMucmVzb2x2ZShkaXIsIGZpbGUpO1xuICB9XG5cbiAgcmV0dXJuIHBhdGg7XG59O1xuXG4vKipcbiAqIFJlbmRlciB3aXRoIHRoZSBnaXZlbiBvcHRpb25zLlxuICpcbiAqIEBwYXJhbSB7b2JqZWN0fSBvcHRpb25zXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBjYWxsYmFja1xuICogQHByaXZhdGVcbiAqL1xuXG5WaWV3LnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbiByZW5kZXIob3B0aW9ucywgY2FsbGJhY2spIHtcbiAgdmFyIHN5bmMgPSB0cnVlO1xuXG4gIGRlYnVnKCdyZW5kZXIgXCIlc1wiJywgdGhpcy5wYXRoKTtcblxuICAvLyByZW5kZXIsIG5vcm1hbGl6aW5nIHN5bmMgY2FsbGJhY2tzXG4gIHRoaXMuZW5naW5lKHRoaXMucGF0aCwgb3B0aW9ucywgZnVuY3Rpb24gb25SZW5kZXIoKSB7XG4gICAgaWYgKCFzeW5jKSB7XG4gICAgICByZXR1cm4gY2FsbGJhY2suYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICB9XG5cbiAgICAvLyBjb3B5IGFyZ3VtZW50c1xuICAgIHZhciBhcmdzID0gbmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGgpO1xuICAgIHZhciBjbnR4ID0gdGhpcztcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBhcmdzW2ldID0gYXJndW1lbnRzW2ldO1xuICAgIH1cblxuICAgIC8vIGZvcmNlIGNhbGxiYWNrIHRvIGJlIGFzeW5jXG4gICAgcmV0dXJuIHByb2Nlc3MubmV4dFRpY2soZnVuY3Rpb24gcmVuZGVyVGljaygpIHtcbiAgICAgIHJldHVybiBjYWxsYmFjay5hcHBseShjbnR4LCBhcmdzKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgc3luYyA9IGZhbHNlO1xufTtcblxuLyoqXG4gKiBSZXNvbHZlIHRoZSBmaWxlIHdpdGhpbiB0aGUgZ2l2ZW4gZGlyZWN0b3J5LlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBkaXJcbiAqIEBwYXJhbSB7c3RyaW5nfSBmaWxlXG4gKiBAcHJpdmF0ZVxuICovXG5cblZpZXcucHJvdG90eXBlLnJlc29sdmUgPSBmdW5jdGlvbiByZXNvbHZlKGRpciwgZmlsZSkge1xuICB2YXIgZXh0ID0gdGhpcy5leHQ7XG5cbiAgLy8gPHBhdGg+LjxleHQ+XG4gIHZhciBwYXRoID0gam9pbihkaXIsIGZpbGUpO1xuICB2YXIgc3RhdCA9IHRyeVN0YXQocGF0aCk7XG5cbiAgaWYgKHN0YXQgJiYgc3RhdC5pc0ZpbGUoKSkge1xuICAgIHJldHVybiBwYXRoO1xuICB9XG5cbiAgLy8gPHBhdGg+L2luZGV4LjxleHQ+XG4gIHBhdGggPSBqb2luKGRpciwgYmFzZW5hbWUoZmlsZSwgZXh0KSwgJ2luZGV4JyArIGV4dCk7XG4gIHN0YXQgPSB0cnlTdGF0KHBhdGgpO1xuXG4gIGlmIChzdGF0ICYmIHN0YXQuaXNGaWxlKCkpIHtcbiAgICByZXR1cm4gcGF0aDtcbiAgfVxufTtcblxuLyoqXG4gKiBSZXR1cm4gYSBzdGF0LCBtYXliZS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcGF0aFxuICogQHJldHVybiB7ZnMuU3RhdHN9XG4gKiBAcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIHRyeVN0YXQocGF0aCkge1xuICBkZWJ1Zygnc3RhdCBcIiVzXCInLCBwYXRoKTtcblxuICB0cnkge1xuICAgIHJldHVybiBmcy5zdGF0U3luYyhwYXRoKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cbiIsICIvKiFcbiAqIGV4cHJlc3NcbiAqIENvcHlyaWdodChjKSAyMDA5LTIwMTMgVEogSG9sb3dheWNodWtcbiAqIENvcHlyaWdodChjKSAyMDE0LTIwMTUgRG91Z2xhcyBDaHJpc3RvcGhlciBXaWxzb25cbiAqIE1JVCBMaWNlbnNlZFxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuLyoqXG4gKiBNb2R1bGUgZGVwZW5kZW5jaWVzLlxuICogQGFwaSBwcml2YXRlXG4gKi9cblxudmFyIHsgTUVUSE9EUyB9ID0gcmVxdWlyZSgnbm9kZTpodHRwJyk7XG52YXIgY29udGVudFR5cGUgPSByZXF1aXJlKCdjb250ZW50LXR5cGUnKTtcbnZhciBldGFnID0gcmVxdWlyZSgnZXRhZycpO1xudmFyIG1pbWUgPSByZXF1aXJlKCdtaW1lLXR5cGVzJylcbnZhciBwcm94eWFkZHIgPSByZXF1aXJlKCdwcm94eS1hZGRyJyk7XG52YXIgcXMgPSByZXF1aXJlKCdxcycpO1xudmFyIHF1ZXJ5c3RyaW5nID0gcmVxdWlyZSgncXVlcnlzdHJpbmcnKTtcblxuLyoqXG4gKiBBIGxpc3Qgb2YgbG93ZXJjYXNlZCBIVFRQIG1ldGhvZHMgdGhhdCBhcmUgc3VwcG9ydGVkIGJ5IE5vZGUuanMuXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuZXhwb3J0cy5tZXRob2RzID0gTUVUSE9EUy5tYXAoKG1ldGhvZCkgPT4gbWV0aG9kLnRvTG93ZXJDYXNlKCkpO1xuXG4vKipcbiAqIFJldHVybiBzdHJvbmcgRVRhZyBmb3IgYGJvZHlgLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfEJ1ZmZlcn0gYm9keVxuICogQHBhcmFtIHtTdHJpbmd9IFtlbmNvZGluZ11cbiAqIEByZXR1cm4ge1N0cmluZ31cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmV4cG9ydHMuZXRhZyA9IGNyZWF0ZUVUYWdHZW5lcmF0b3IoeyB3ZWFrOiBmYWxzZSB9KVxuXG4vKipcbiAqIFJldHVybiB3ZWFrIEVUYWcgZm9yIGBib2R5YC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ3xCdWZmZXJ9IGJvZHlcbiAqIEBwYXJhbSB7U3RyaW5nfSBbZW5jb2RpbmddXG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5leHBvcnRzLndldGFnID0gY3JlYXRlRVRhZ0dlbmVyYXRvcih7IHdlYWs6IHRydWUgfSlcblxuLyoqXG4gKiBOb3JtYWxpemUgdGhlIGdpdmVuIGB0eXBlYCwgZm9yIGV4YW1wbGUgXCJodG1sXCIgYmVjb21lcyBcInRleHQvaHRtbFwiLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSB0eXBlXG4gKiBAcmV0dXJuIHtPYmplY3R9XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5leHBvcnRzLm5vcm1hbGl6ZVR5cGUgPSBmdW5jdGlvbih0eXBlKXtcbiAgcmV0dXJuIH50eXBlLmluZGV4T2YoJy8nKVxuICAgID8gYWNjZXB0UGFyYW1zKHR5cGUpXG4gICAgOiB7IHZhbHVlOiAobWltZS5sb29rdXAodHlwZSkgfHwgJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbScpLCBwYXJhbXM6IHt9IH1cbn07XG5cbi8qKlxuICogTm9ybWFsaXplIGB0eXBlc2AsIGZvciBleGFtcGxlIFwiaHRtbFwiIGJlY29tZXMgXCJ0ZXh0L2h0bWxcIi5cbiAqXG4gKiBAcGFyYW0ge0FycmF5fSB0eXBlc1xuICogQHJldHVybiB7QXJyYXl9XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5leHBvcnRzLm5vcm1hbGl6ZVR5cGVzID0gZnVuY3Rpb24odHlwZXMpIHtcbiAgcmV0dXJuIHR5cGVzLm1hcChleHBvcnRzLm5vcm1hbGl6ZVR5cGUpO1xufTtcblxuXG4vKipcbiAqIFBhcnNlIGFjY2VwdCBwYXJhbXMgYHN0cmAgcmV0dXJuaW5nIGFuXG4gKiBvYmplY3Qgd2l0aCBgLnZhbHVlYCwgYC5xdWFsaXR5YCBhbmQgYC5wYXJhbXNgLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBzdHJcbiAqIEByZXR1cm4ge09iamVjdH1cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIGFjY2VwdFBhcmFtcyAoc3RyKSB7XG4gIHZhciBsZW5ndGggPSBzdHIubGVuZ3RoO1xuICB2YXIgY29sb25JbmRleCA9IHN0ci5pbmRleE9mKCc7Jyk7XG4gIHZhciBpbmRleCA9IGNvbG9uSW5kZXggPT09IC0xID8gbGVuZ3RoIDogY29sb25JbmRleDtcbiAgdmFyIHJldCA9IHsgdmFsdWU6IHN0ci5zbGljZSgwLCBpbmRleCkudHJpbSgpLCBxdWFsaXR5OiAxLCBwYXJhbXM6IHt9IH07XG5cbiAgd2hpbGUgKGluZGV4IDwgbGVuZ3RoKSB7XG4gICAgdmFyIHNwbGl0SW5kZXggPSBzdHIuaW5kZXhPZignPScsIGluZGV4KTtcbiAgICBpZiAoc3BsaXRJbmRleCA9PT0gLTEpIGJyZWFrO1xuXG4gICAgdmFyIGNvbG9uSW5kZXggPSBzdHIuaW5kZXhPZignOycsIGluZGV4KTtcbiAgICB2YXIgZW5kSW5kZXggPSBjb2xvbkluZGV4ID09PSAtMSA/IGxlbmd0aCA6IGNvbG9uSW5kZXg7XG5cbiAgICBpZiAoc3BsaXRJbmRleCA+IGVuZEluZGV4KSB7XG4gICAgICBpbmRleCA9IHN0ci5sYXN0SW5kZXhPZignOycsIHNwbGl0SW5kZXggLSAxKSArIDE7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICB2YXIga2V5ID0gc3RyLnNsaWNlKGluZGV4LCBzcGxpdEluZGV4KS50cmltKCk7XG4gICAgdmFyIHZhbHVlID0gc3RyLnNsaWNlKHNwbGl0SW5kZXggKyAxLCBlbmRJbmRleCkudHJpbSgpO1xuXG4gICAgaWYgKGtleSA9PT0gJ3EnKSB7XG4gICAgICByZXQucXVhbGl0eSA9IHBhcnNlRmxvYXQodmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXQucGFyYW1zW2tleV0gPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBpbmRleCA9IGVuZEluZGV4ICsgMTtcbiAgfVxuXG4gIHJldHVybiByZXQ7XG59XG5cbi8qKlxuICogQ29tcGlsZSBcImV0YWdcIiB2YWx1ZSB0byBmdW5jdGlvbi5cbiAqXG4gKiBAcGFyYW0gIHtCb29sZWFufFN0cmluZ3xGdW5jdGlvbn0gdmFsXG4gKiBAcmV0dXJuIHtGdW5jdGlvbn1cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmV4cG9ydHMuY29tcGlsZUVUYWcgPSBmdW5jdGlvbih2YWwpIHtcbiAgdmFyIGZuO1xuXG4gIGlmICh0eXBlb2YgdmFsID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIHZhbDtcbiAgfVxuXG4gIHN3aXRjaCAodmFsKSB7XG4gICAgY2FzZSB0cnVlOlxuICAgIGNhc2UgJ3dlYWsnOlxuICAgICAgZm4gPSBleHBvcnRzLndldGFnO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBmYWxzZTpcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ3N0cm9uZyc6XG4gICAgICBmbiA9IGV4cG9ydHMuZXRhZztcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCd1bmtub3duIHZhbHVlIGZvciBldGFnIGZ1bmN0aW9uOiAnICsgdmFsKTtcbiAgfVxuXG4gIHJldHVybiBmbjtcbn1cblxuLyoqXG4gKiBDb21waWxlIFwicXVlcnkgcGFyc2VyXCIgdmFsdWUgdG8gZnVuY3Rpb24uXG4gKlxuICogQHBhcmFtICB7U3RyaW5nfEZ1bmN0aW9ufSB2YWxcbiAqIEByZXR1cm4ge0Z1bmN0aW9ufVxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZXhwb3J0cy5jb21waWxlUXVlcnlQYXJzZXIgPSBmdW5jdGlvbiBjb21waWxlUXVlcnlQYXJzZXIodmFsKSB7XG4gIHZhciBmbjtcblxuICBpZiAodHlwZW9mIHZhbCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiB2YWw7XG4gIH1cblxuICBzd2l0Y2ggKHZhbCkge1xuICAgIGNhc2UgdHJ1ZTpcbiAgICBjYXNlICdzaW1wbGUnOlxuICAgICAgZm4gPSBxdWVyeXN0cmluZy5wYXJzZTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgZmFsc2U6XG4gICAgICBicmVhaztcbiAgICBjYXNlICdleHRlbmRlZCc6XG4gICAgICBmbiA9IHBhcnNlRXh0ZW5kZWRRdWVyeVN0cmluZztcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCd1bmtub3duIHZhbHVlIGZvciBxdWVyeSBwYXJzZXIgZnVuY3Rpb246ICcgKyB2YWwpO1xuICB9XG5cbiAgcmV0dXJuIGZuO1xufVxuXG4vKipcbiAqIENvbXBpbGUgXCJwcm94eSB0cnVzdFwiIHZhbHVlIHRvIGZ1bmN0aW9uLlxuICpcbiAqIEBwYXJhbSAge0Jvb2xlYW58U3RyaW5nfE51bWJlcnxBcnJheXxGdW5jdGlvbn0gdmFsXG4gKiBAcmV0dXJuIHtGdW5jdGlvbn1cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmV4cG9ydHMuY29tcGlsZVRydXN0ID0gZnVuY3Rpb24odmFsKSB7XG4gIGlmICh0eXBlb2YgdmFsID09PSAnZnVuY3Rpb24nKSByZXR1cm4gdmFsO1xuXG4gIGlmICh2YWwgPT09IHRydWUpIHtcbiAgICAvLyBTdXBwb3J0IHBsYWluIHRydWUvZmFsc2VcbiAgICByZXR1cm4gZnVuY3Rpb24oKXsgcmV0dXJuIHRydWUgfTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgdmFsID09PSAnbnVtYmVyJykge1xuICAgIC8vIFN1cHBvcnQgdHJ1c3RpbmcgaG9wIGNvdW50XG4gICAgcmV0dXJuIGZ1bmN0aW9uKGEsIGkpeyByZXR1cm4gaSA8IHZhbCB9O1xuICB9XG5cbiAgaWYgKHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnKSB7XG4gICAgLy8gU3VwcG9ydCBjb21tYS1zZXBhcmF0ZWQgdmFsdWVzXG4gICAgdmFsID0gdmFsLnNwbGl0KCcsJylcbiAgICAgIC5tYXAoZnVuY3Rpb24gKHYpIHsgcmV0dXJuIHYudHJpbSgpIH0pXG4gIH1cblxuICByZXR1cm4gcHJveHlhZGRyLmNvbXBpbGUodmFsIHx8IFtdKTtcbn1cblxuLyoqXG4gKiBTZXQgdGhlIGNoYXJzZXQgaW4gYSBnaXZlbiBDb250ZW50LVR5cGUgc3RyaW5nLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSB0eXBlXG4gKiBAcGFyYW0ge1N0cmluZ30gY2hhcnNldFxuICogQHJldHVybiB7U3RyaW5nfVxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZXhwb3J0cy5zZXRDaGFyc2V0ID0gZnVuY3Rpb24gc2V0Q2hhcnNldCh0eXBlLCBjaGFyc2V0KSB7XG4gIGlmICghdHlwZSB8fCAhY2hhcnNldCkge1xuICAgIHJldHVybiB0eXBlO1xuICB9XG5cbiAgLy8gcGFyc2UgdHlwZVxuICB2YXIgcGFyc2VkID0gY29udGVudFR5cGUucGFyc2UodHlwZSk7XG5cbiAgLy8gc2V0IGNoYXJzZXRcbiAgcGFyc2VkLnBhcmFtZXRlcnMuY2hhcnNldCA9IGNoYXJzZXQ7XG5cbiAgLy8gZm9ybWF0IHR5cGVcbiAgcmV0dXJuIGNvbnRlbnRUeXBlLmZvcm1hdChwYXJzZWQpO1xufTtcblxuLyoqXG4gKiBDcmVhdGUgYW4gRVRhZyBnZW5lcmF0b3IgZnVuY3Rpb24sIGdlbmVyYXRpbmcgRVRhZ3Mgd2l0aFxuICogdGhlIGdpdmVuIG9wdGlvbnMuXG4gKlxuICogQHBhcmFtIHtvYmplY3R9IG9wdGlvbnNcbiAqIEByZXR1cm4ge2Z1bmN0aW9ufVxuICogQHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBjcmVhdGVFVGFnR2VuZXJhdG9yIChvcHRpb25zKSB7XG4gIHJldHVybiBmdW5jdGlvbiBnZW5lcmF0ZUVUYWcgKGJvZHksIGVuY29kaW5nKSB7XG4gICAgdmFyIGJ1ZiA9ICFCdWZmZXIuaXNCdWZmZXIoYm9keSlcbiAgICAgID8gQnVmZmVyLmZyb20oYm9keSwgZW5jb2RpbmcpXG4gICAgICA6IGJvZHlcblxuICAgIHJldHVybiBldGFnKGJ1Ziwgb3B0aW9ucylcbiAgfVxufVxuXG4vKipcbiAqIFBhcnNlIGFuIGV4dGVuZGVkIHF1ZXJ5IHN0cmluZyB3aXRoIHFzLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBzdHJcbiAqIEByZXR1cm4ge09iamVjdH1cbiAqIEBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gcGFyc2VFeHRlbmRlZFF1ZXJ5U3RyaW5nKHN0cikge1xuICByZXR1cm4gcXMucGFyc2Uoc3RyLCB7XG4gICAgYWxsb3dQcm90b3R5cGVzOiB0cnVlXG4gIH0pO1xufVxuIiwgIi8qIVxuICogZXhwcmVzc1xuICogQ29weXJpZ2h0KGMpIDIwMDktMjAxMyBUSiBIb2xvd2F5Y2h1a1xuICogQ29weXJpZ2h0KGMpIDIwMTMgUm9tYW4gU2h0eWxtYW5cbiAqIENvcHlyaWdodChjKSAyMDE0LTIwMTUgRG91Z2xhcyBDaHJpc3RvcGhlciBXaWxzb25cbiAqIE1JVCBMaWNlbnNlZFxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuLyoqXG4gKiBNb2R1bGUgZGVwZW5kZW5jaWVzLlxuICogQHByaXZhdGVcbiAqL1xuXG52YXIgZmluYWxoYW5kbGVyID0gcmVxdWlyZSgnZmluYWxoYW5kbGVyJyk7XG52YXIgZGVidWcgPSByZXF1aXJlKCdkZWJ1ZycpKCdleHByZXNzOmFwcGxpY2F0aW9uJyk7XG52YXIgVmlldyA9IHJlcXVpcmUoJy4vdmlldycpO1xudmFyIGh0dHAgPSByZXF1aXJlKCdub2RlOmh0dHAnKTtcbnZhciBtZXRob2RzID0gcmVxdWlyZSgnLi91dGlscycpLm1ldGhvZHM7XG52YXIgY29tcGlsZUVUYWcgPSByZXF1aXJlKCcuL3V0aWxzJykuY29tcGlsZUVUYWc7XG52YXIgY29tcGlsZVF1ZXJ5UGFyc2VyID0gcmVxdWlyZSgnLi91dGlscycpLmNvbXBpbGVRdWVyeVBhcnNlcjtcbnZhciBjb21waWxlVHJ1c3QgPSByZXF1aXJlKCcuL3V0aWxzJykuY29tcGlsZVRydXN0O1xudmFyIHJlc29sdmUgPSByZXF1aXJlKCdub2RlOnBhdGgnKS5yZXNvbHZlO1xudmFyIG9uY2UgPSByZXF1aXJlKCdvbmNlJylcbnZhciBSb3V0ZXIgPSByZXF1aXJlKCdyb3V0ZXInKTtcblxuLyoqXG4gKiBNb2R1bGUgdmFyaWFibGVzLlxuICogQHByaXZhdGVcbiAqL1xuXG52YXIgc2xpY2UgPSBBcnJheS5wcm90b3R5cGUuc2xpY2U7XG52YXIgZmxhdHRlbiA9IEFycmF5LnByb3RvdHlwZS5mbGF0O1xuXG4vKipcbiAqIEFwcGxpY2F0aW9uIHByb3RvdHlwZS5cbiAqL1xuXG52YXIgYXBwID0gZXhwb3J0cyA9IG1vZHVsZS5leHBvcnRzID0ge307XG5cbi8qKlxuICogVmFyaWFibGUgZm9yIHRydXN0IHByb3h5IGluaGVyaXRhbmNlIGJhY2stY29tcGF0XG4gKiBAcHJpdmF0ZVxuICovXG5cbnZhciB0cnVzdFByb3h5RGVmYXVsdFN5bWJvbCA9ICdAQHN5bWJvbDp0cnVzdF9wcm94eV9kZWZhdWx0JztcblxuLyoqXG4gKiBJbml0aWFsaXplIHRoZSBzZXJ2ZXIuXG4gKlxuICogICAtIHNldHVwIGRlZmF1bHQgY29uZmlndXJhdGlvblxuICogICAtIHNldHVwIGRlZmF1bHQgbWlkZGxld2FyZVxuICogICAtIHNldHVwIHJvdXRlIHJlZmxlY3Rpb24gbWV0aG9kc1xuICpcbiAqIEBwcml2YXRlXG4gKi9cblxuYXBwLmluaXQgPSBmdW5jdGlvbiBpbml0KCkge1xuICB2YXIgcm91dGVyID0gbnVsbDtcblxuICB0aGlzLmNhY2hlID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgdGhpcy5lbmdpbmVzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgdGhpcy5zZXR0aW5ncyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG5cbiAgdGhpcy5kZWZhdWx0Q29uZmlndXJhdGlvbigpO1xuXG4gIC8vIFNldHVwIGdldHRpbmcgdG8gbGF6aWx5IGFkZCBiYXNlIHJvdXRlclxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgJ3JvdXRlcicsIHtcbiAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uIGdldHJvdXRlcigpIHtcbiAgICAgIGlmIChyb3V0ZXIgPT09IG51bGwpIHtcbiAgICAgICAgcm91dGVyID0gbmV3IFJvdXRlcih7XG4gICAgICAgICAgY2FzZVNlbnNpdGl2ZTogdGhpcy5lbmFibGVkKCdjYXNlIHNlbnNpdGl2ZSByb3V0aW5nJyksXG4gICAgICAgICAgc3RyaWN0OiB0aGlzLmVuYWJsZWQoJ3N0cmljdCByb3V0aW5nJylcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByb3V0ZXI7XG4gICAgfVxuICB9KTtcbn07XG5cbi8qKlxuICogSW5pdGlhbGl6ZSBhcHBsaWNhdGlvbiBjb25maWd1cmF0aW9uLlxuICogQHByaXZhdGVcbiAqL1xuXG5hcHAuZGVmYXVsdENvbmZpZ3VyYXRpb24gPSBmdW5jdGlvbiBkZWZhdWx0Q29uZmlndXJhdGlvbigpIHtcbiAgdmFyIGVudiA9IHByb2Nlc3MuZW52Lk5PREVfRU5WIHx8ICdkZXZlbG9wbWVudCc7XG5cbiAgLy8gZGVmYXVsdCBzZXR0aW5nc1xuICB0aGlzLmVuYWJsZSgneC1wb3dlcmVkLWJ5Jyk7XG4gIHRoaXMuc2V0KCdldGFnJywgJ3dlYWsnKTtcbiAgdGhpcy5zZXQoJ2VudicsIGVudik7XG4gIHRoaXMuc2V0KCdxdWVyeSBwYXJzZXInLCAnc2ltcGxlJylcbiAgdGhpcy5zZXQoJ3N1YmRvbWFpbiBvZmZzZXQnLCAyKTtcbiAgdGhpcy5zZXQoJ3RydXN0IHByb3h5JywgZmFsc2UpO1xuXG4gIC8vIHRydXN0IHByb3h5IGluaGVyaXQgYmFjay1jb21wYXRcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMuc2V0dGluZ3MsIHRydXN0UHJveHlEZWZhdWx0U3ltYm9sLCB7XG4gICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgIHZhbHVlOiB0cnVlXG4gIH0pO1xuXG4gIGRlYnVnKCdib290aW5nIGluICVzIG1vZGUnLCBlbnYpO1xuXG4gIHRoaXMub24oJ21vdW50JywgZnVuY3Rpb24gb25tb3VudChwYXJlbnQpIHtcbiAgICAvLyBpbmhlcml0IHRydXN0IHByb3h5XG4gICAgaWYgKHRoaXMuc2V0dGluZ3NbdHJ1c3RQcm94eURlZmF1bHRTeW1ib2xdID09PSB0cnVlXG4gICAgICAmJiB0eXBlb2YgcGFyZW50LnNldHRpbmdzWyd0cnVzdCBwcm94eSBmbiddID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBkZWxldGUgdGhpcy5zZXR0aW5nc1sndHJ1c3QgcHJveHknXTtcbiAgICAgIGRlbGV0ZSB0aGlzLnNldHRpbmdzWyd0cnVzdCBwcm94eSBmbiddO1xuICAgIH1cblxuICAgIC8vIGluaGVyaXQgcHJvdG9zXG4gICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMucmVxdWVzdCwgcGFyZW50LnJlcXVlc3QpXG4gICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMucmVzcG9uc2UsIHBhcmVudC5yZXNwb25zZSlcbiAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcy5lbmdpbmVzLCBwYXJlbnQuZW5naW5lcylcbiAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcy5zZXR0aW5ncywgcGFyZW50LnNldHRpbmdzKVxuICB9KTtcblxuICAvLyBzZXR1cCBsb2NhbHNcbiAgdGhpcy5sb2NhbHMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuXG4gIC8vIHRvcC1tb3N0IGFwcCBpcyBtb3VudGVkIGF0IC9cbiAgdGhpcy5tb3VudHBhdGggPSAnLyc7XG5cbiAgLy8gZGVmYXVsdCBsb2NhbHNcbiAgdGhpcy5sb2NhbHMuc2V0dGluZ3MgPSB0aGlzLnNldHRpbmdzO1xuXG4gIC8vIGRlZmF1bHQgY29uZmlndXJhdGlvblxuICB0aGlzLnNldCgndmlldycsIFZpZXcpO1xuICB0aGlzLnNldCgndmlld3MnLCByZXNvbHZlKCd2aWV3cycpKTtcbiAgdGhpcy5zZXQoJ2pzb25wIGNhbGxiYWNrIG5hbWUnLCAnY2FsbGJhY2snKTtcblxuICBpZiAoZW52ID09PSAncHJvZHVjdGlvbicpIHtcbiAgICB0aGlzLmVuYWJsZSgndmlldyBjYWNoZScpO1xuICB9XG59O1xuXG4vKipcbiAqIERpc3BhdGNoIGEgcmVxLCByZXMgcGFpciBpbnRvIHRoZSBhcHBsaWNhdGlvbi4gU3RhcnRzIHBpcGVsaW5lIHByb2Nlc3NpbmcuXG4gKlxuICogSWYgbm8gY2FsbGJhY2sgaXMgcHJvdmlkZWQsIHRoZW4gZGVmYXVsdCBlcnJvciBoYW5kbGVycyB3aWxsIHJlc3BvbmRcbiAqIGluIHRoZSBldmVudCBvZiBhbiBlcnJvciBidWJibGluZyB0aHJvdWdoIHRoZSBzdGFjay5cbiAqXG4gKiBAcHJpdmF0ZVxuICovXG5cbmFwcC5oYW5kbGUgPSBmdW5jdGlvbiBoYW5kbGUocmVxLCByZXMsIGNhbGxiYWNrKSB7XG4gIC8vIGZpbmFsIGhhbmRsZXJcbiAgdmFyIGRvbmUgPSBjYWxsYmFjayB8fCBmaW5hbGhhbmRsZXIocmVxLCByZXMsIHtcbiAgICBlbnY6IHRoaXMuZ2V0KCdlbnYnKSxcbiAgICBvbmVycm9yOiBsb2dlcnJvci5iaW5kKHRoaXMpXG4gIH0pO1xuXG4gIC8vIHNldCBwb3dlcmVkIGJ5IGhlYWRlclxuICBpZiAodGhpcy5lbmFibGVkKCd4LXBvd2VyZWQtYnknKSkge1xuICAgIHJlcy5zZXRIZWFkZXIoJ1gtUG93ZXJlZC1CeScsICdFeHByZXNzJyk7XG4gIH1cblxuICAvLyBzZXQgY2lyY3VsYXIgcmVmZXJlbmNlc1xuICByZXEucmVzID0gcmVzO1xuICByZXMucmVxID0gcmVxO1xuXG4gIC8vIGFsdGVyIHRoZSBwcm90b3R5cGVzXG4gIE9iamVjdC5zZXRQcm90b3R5cGVPZihyZXEsIHRoaXMucmVxdWVzdClcbiAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHJlcywgdGhpcy5yZXNwb25zZSlcblxuICAvLyBzZXR1cCBsb2NhbHNcbiAgaWYgKCFyZXMubG9jYWxzKSB7XG4gICAgcmVzLmxvY2FscyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gIH1cblxuICB0aGlzLnJvdXRlci5oYW5kbGUocmVxLCByZXMsIGRvbmUpO1xufTtcblxuLyoqXG4gKiBQcm94eSBgUm91dGVyI3VzZSgpYCB0byBhZGQgbWlkZGxld2FyZSB0byB0aGUgYXBwIHJvdXRlci5cbiAqIFNlZSBSb3V0ZXIjdXNlKCkgZG9jdW1lbnRhdGlvbiBmb3IgZGV0YWlscy5cbiAqXG4gKiBJZiB0aGUgX2ZuXyBwYXJhbWV0ZXIgaXMgYW4gZXhwcmVzcyBhcHAsIHRoZW4gaXQgd2lsbCBiZVxuICogbW91bnRlZCBhdCB0aGUgX3JvdXRlXyBzcGVjaWZpZWQuXG4gKlxuICogQHB1YmxpY1xuICovXG5cbmFwcC51c2UgPSBmdW5jdGlvbiB1c2UoZm4pIHtcbiAgdmFyIG9mZnNldCA9IDA7XG4gIHZhciBwYXRoID0gJy8nO1xuXG4gIC8vIGRlZmF1bHQgcGF0aCB0byAnLydcbiAgLy8gZGlzYW1iaWd1YXRlIGFwcC51c2UoW2ZuXSlcbiAgaWYgKHR5cGVvZiBmbiAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIHZhciBhcmcgPSBmbjtcblxuICAgIHdoaWxlIChBcnJheS5pc0FycmF5KGFyZykgJiYgYXJnLmxlbmd0aCAhPT0gMCkge1xuICAgICAgYXJnID0gYXJnWzBdO1xuICAgIH1cblxuICAgIC8vIGZpcnN0IGFyZyBpcyB0aGUgcGF0aFxuICAgIGlmICh0eXBlb2YgYXJnICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICBvZmZzZXQgPSAxO1xuICAgICAgcGF0aCA9IGZuO1xuICAgIH1cbiAgfVxuXG4gIHZhciBmbnMgPSBmbGF0dGVuLmNhbGwoc2xpY2UuY2FsbChhcmd1bWVudHMsIG9mZnNldCksIEluZmluaXR5KTtcblxuICBpZiAoZm5zLmxlbmd0aCA9PT0gMCkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ2FwcC51c2UoKSByZXF1aXJlcyBhIG1pZGRsZXdhcmUgZnVuY3Rpb24nKVxuICB9XG5cbiAgLy8gZ2V0IHJvdXRlclxuICB2YXIgcm91dGVyID0gdGhpcy5yb3V0ZXI7XG5cbiAgZm5zLmZvckVhY2goZnVuY3Rpb24gKGZuKSB7XG4gICAgLy8gbm9uLWV4cHJlc3MgYXBwXG4gICAgaWYgKCFmbiB8fCAhZm4uaGFuZGxlIHx8ICFmbi5zZXQpIHtcbiAgICAgIHJldHVybiByb3V0ZXIudXNlKHBhdGgsIGZuKTtcbiAgICB9XG5cbiAgICBkZWJ1ZygnLnVzZSBhcHAgdW5kZXIgJXMnLCBwYXRoKTtcbiAgICBmbi5tb3VudHBhdGggPSBwYXRoO1xuICAgIGZuLnBhcmVudCA9IHRoaXM7XG5cbiAgICAvLyByZXN0b3JlIC5hcHAgcHJvcGVydHkgb24gcmVxIGFuZCByZXNcbiAgICByb3V0ZXIudXNlKHBhdGgsIGZ1bmN0aW9uIG1vdW50ZWRfYXBwKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgICB2YXIgb3JpZyA9IHJlcS5hcHA7XG4gICAgICBmbi5oYW5kbGUocmVxLCByZXMsIGZ1bmN0aW9uIChlcnIpIHtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHJlcSwgb3JpZy5yZXF1ZXN0KVxuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YocmVzLCBvcmlnLnJlc3BvbnNlKVxuICAgICAgICBuZXh0KGVycik7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIC8vIG1vdW50ZWQgYW4gYXBwXG4gICAgZm4uZW1pdCgnbW91bnQnLCB0aGlzKTtcbiAgfSwgdGhpcyk7XG5cbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIFByb3h5IHRvIHRoZSBhcHAgYFJvdXRlciNyb3V0ZSgpYFxuICogUmV0dXJucyBhIG5ldyBgUm91dGVgIGluc3RhbmNlIGZvciB0aGUgX3BhdGhfLlxuICpcbiAqIFJvdXRlcyBhcmUgaXNvbGF0ZWQgbWlkZGxld2FyZSBzdGFja3MgZm9yIHNwZWNpZmljIHBhdGhzLlxuICogU2VlIHRoZSBSb3V0ZSBhcGkgZG9jcyBmb3IgZGV0YWlscy5cbiAqXG4gKiBAcHVibGljXG4gKi9cblxuYXBwLnJvdXRlID0gZnVuY3Rpb24gcm91dGUocGF0aCkge1xuICByZXR1cm4gdGhpcy5yb3V0ZXIucm91dGUocGF0aCk7XG59O1xuXG4vKipcbiAqIFJlZ2lzdGVyIHRoZSBnaXZlbiB0ZW1wbGF0ZSBlbmdpbmUgY2FsbGJhY2sgYGZuYFxuICogYXMgYGV4dGAuXG4gKlxuICogQnkgZGVmYXVsdCB3aWxsIGByZXF1aXJlKClgIHRoZSBlbmdpbmUgYmFzZWQgb24gdGhlXG4gKiBmaWxlIGV4dGVuc2lvbi4gRm9yIGV4YW1wbGUgaWYgeW91IHRyeSB0byByZW5kZXJcbiAqIGEgXCJmb28uZWpzXCIgZmlsZSBFeHByZXNzIHdpbGwgaW52b2tlIHRoZSBmb2xsb3dpbmcgaW50ZXJuYWxseTpcbiAqXG4gKiAgICAgYXBwLmVuZ2luZSgnZWpzJywgcmVxdWlyZSgnZWpzJykuX19leHByZXNzKTtcbiAqXG4gKiBGb3IgZW5naW5lcyB0aGF0IGRvIG5vdCBwcm92aWRlIGAuX19leHByZXNzYCBvdXQgb2YgdGhlIGJveCxcbiAqIG9yIGlmIHlvdSB3aXNoIHRvIFwibWFwXCIgYSBkaWZmZXJlbnQgZXh0ZW5zaW9uIHRvIHRoZSB0ZW1wbGF0ZSBlbmdpbmVcbiAqIHlvdSBtYXkgdXNlIHRoaXMgbWV0aG9kLiBGb3IgZXhhbXBsZSBtYXBwaW5nIHRoZSBFSlMgdGVtcGxhdGUgZW5naW5lIHRvXG4gKiBcIi5odG1sXCIgZmlsZXM6XG4gKlxuICogICAgIGFwcC5lbmdpbmUoJ2h0bWwnLCByZXF1aXJlKCdlanMnKS5yZW5kZXJGaWxlKTtcbiAqXG4gKiBJbiB0aGlzIGNhc2UgRUpTIHByb3ZpZGVzIGEgYC5yZW5kZXJGaWxlKClgIG1ldGhvZCB3aXRoXG4gKiB0aGUgc2FtZSBzaWduYXR1cmUgdGhhdCBFeHByZXNzIGV4cGVjdHM6IGAocGF0aCwgb3B0aW9ucywgY2FsbGJhY2spYCxcbiAqIHRob3VnaCBub3RlIHRoYXQgaXQgYWxpYXNlcyB0aGlzIG1ldGhvZCBhcyBgZWpzLl9fZXhwcmVzc2AgaW50ZXJuYWxseVxuICogc28gaWYgeW91J3JlIHVzaW5nIFwiLmVqc1wiIGV4dGVuc2lvbnMgeW91IGRvbid0IG5lZWQgdG8gZG8gYW55dGhpbmcuXG4gKlxuICogU29tZSB0ZW1wbGF0ZSBlbmdpbmVzIGRvIG5vdCBmb2xsb3cgdGhpcyBjb252ZW50aW9uLCB0aGVcbiAqIFtDb25zb2xpZGF0ZS5qc10oaHR0cHM6Ly9naXRodWIuY29tL3RqL2NvbnNvbGlkYXRlLmpzKVxuICogbGlicmFyeSB3YXMgY3JlYXRlZCB0byBtYXAgYWxsIG9mIG5vZGUncyBwb3B1bGFyIHRlbXBsYXRlXG4gKiBlbmdpbmVzIHRvIGZvbGxvdyB0aGlzIGNvbnZlbnRpb24sIHRodXMgYWxsb3dpbmcgdGhlbSB0b1xuICogd29yayBzZWFtbGVzc2x5IHdpdGhpbiBFeHByZXNzLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBleHRcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZuXG4gKiBAcmV0dXJuIHthcHB9IGZvciBjaGFpbmluZ1xuICogQHB1YmxpY1xuICovXG5cbmFwcC5lbmdpbmUgPSBmdW5jdGlvbiBlbmdpbmUoZXh0LCBmbikge1xuICBpZiAodHlwZW9mIGZuICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdjYWxsYmFjayBmdW5jdGlvbiByZXF1aXJlZCcpO1xuICB9XG5cbiAgLy8gZ2V0IGZpbGUgZXh0ZW5zaW9uXG4gIHZhciBleHRlbnNpb24gPSBleHRbMF0gIT09ICcuJ1xuICAgID8gJy4nICsgZXh0XG4gICAgOiBleHQ7XG5cbiAgLy8gc3RvcmUgZW5naW5lXG4gIHRoaXMuZW5naW5lc1tleHRlbnNpb25dID0gZm47XG5cbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIFByb3h5IHRvIGBSb3V0ZXIjcGFyYW0oKWAgd2l0aCBvbmUgYWRkZWQgYXBpIGZlYXR1cmUuIFRoZSBfbmFtZV8gcGFyYW1ldGVyXG4gKiBjYW4gYmUgYW4gYXJyYXkgb2YgbmFtZXMuXG4gKlxuICogU2VlIHRoZSBSb3V0ZXIjcGFyYW0oKSBkb2NzIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd8QXJyYXl9IG5hbWVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZuXG4gKiBAcmV0dXJuIHthcHB9IGZvciBjaGFpbmluZ1xuICogQHB1YmxpY1xuICovXG5cbmFwcC5wYXJhbSA9IGZ1bmN0aW9uIHBhcmFtKG5hbWUsIGZuKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KG5hbWUpKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuYW1lLmxlbmd0aDsgaSsrKSB7XG4gICAgICB0aGlzLnBhcmFtKG5hbWVbaV0sIGZuKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHRoaXMucm91dGVyLnBhcmFtKG5hbWUsIGZuKTtcblxuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogQXNzaWduIGBzZXR0aW5nYCB0byBgdmFsYCwgb3IgcmV0dXJuIGBzZXR0aW5nYCdzIHZhbHVlLlxuICpcbiAqICAgIGFwcC5zZXQoJ2ZvbycsICdiYXInKTtcbiAqICAgIGFwcC5zZXQoJ2ZvbycpO1xuICogICAgLy8gPT4gXCJiYXJcIlxuICpcbiAqIE1vdW50ZWQgc2VydmVycyBpbmhlcml0IHRoZWlyIHBhcmVudCBzZXJ2ZXIncyBzZXR0aW5ncy5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gc2V0dGluZ1xuICogQHBhcmFtIHsqfSBbdmFsXVxuICogQHJldHVybiB7U2VydmVyfSBmb3IgY2hhaW5pbmdcbiAqIEBwdWJsaWNcbiAqL1xuXG5hcHAuc2V0ID0gZnVuY3Rpb24gc2V0KHNldHRpbmcsIHZhbCkge1xuICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMSkge1xuICAgIC8vIGFwcC5nZXQoc2V0dGluZylcbiAgICByZXR1cm4gdGhpcy5zZXR0aW5nc1tzZXR0aW5nXTtcbiAgfVxuXG4gIGRlYnVnKCdzZXQgXCIlc1wiIHRvICVvJywgc2V0dGluZywgdmFsKTtcblxuICAvLyBzZXQgdmFsdWVcbiAgdGhpcy5zZXR0aW5nc1tzZXR0aW5nXSA9IHZhbDtcblxuICAvLyB0cmlnZ2VyIG1hdGNoZWQgc2V0dGluZ3NcbiAgc3dpdGNoIChzZXR0aW5nKSB7XG4gICAgY2FzZSAnZXRhZyc6XG4gICAgICB0aGlzLnNldCgnZXRhZyBmbicsIGNvbXBpbGVFVGFnKHZhbCkpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAncXVlcnkgcGFyc2VyJzpcbiAgICAgIHRoaXMuc2V0KCdxdWVyeSBwYXJzZXIgZm4nLCBjb21waWxlUXVlcnlQYXJzZXIodmFsKSk7XG4gICAgICBicmVhaztcbiAgICBjYXNlICd0cnVzdCBwcm94eSc6XG4gICAgICB0aGlzLnNldCgndHJ1c3QgcHJveHkgZm4nLCBjb21waWxlVHJ1c3QodmFsKSk7XG5cbiAgICAgIC8vIHRydXN0IHByb3h5IGluaGVyaXQgYmFjay1jb21wYXRcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLnNldHRpbmdzLCB0cnVzdFByb3h5RGVmYXVsdFN5bWJvbCwge1xuICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgIHZhbHVlOiBmYWxzZVxuICAgICAgfSk7XG5cbiAgICAgIGJyZWFrO1xuICB9XG5cbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIFJldHVybiB0aGUgYXBwJ3MgYWJzb2x1dGUgcGF0aG5hbWVcbiAqIGJhc2VkIG9uIHRoZSBwYXJlbnQocykgdGhhdCBoYXZlXG4gKiBtb3VudGVkIGl0LlxuICpcbiAqIEZvciBleGFtcGxlIGlmIHRoZSBhcHBsaWNhdGlvbiB3YXNcbiAqIG1vdW50ZWQgYXMgXCIvYWRtaW5cIiwgd2hpY2ggaXRzZWxmXG4gKiB3YXMgbW91bnRlZCBhcyBcIi9ibG9nXCIgdGhlbiB0aGVcbiAqIHJldHVybiB2YWx1ZSB3b3VsZCBiZSBcIi9ibG9nL2FkbWluXCIuXG4gKlxuICogQHJldHVybiB7U3RyaW5nfVxuICogQHByaXZhdGVcbiAqL1xuXG5hcHAucGF0aCA9IGZ1bmN0aW9uIHBhdGgoKSB7XG4gIHJldHVybiB0aGlzLnBhcmVudFxuICAgID8gdGhpcy5wYXJlbnQucGF0aCgpICsgdGhpcy5tb3VudHBhdGhcbiAgICA6ICcnO1xufTtcblxuLyoqXG4gKiBDaGVjayBpZiBgc2V0dGluZ2AgaXMgZW5hYmxlZCAodHJ1dGh5KS5cbiAqXG4gKiAgICBhcHAuZW5hYmxlZCgnZm9vJylcbiAqICAgIC8vID0+IGZhbHNlXG4gKlxuICogICAgYXBwLmVuYWJsZSgnZm9vJylcbiAqICAgIGFwcC5lbmFibGVkKCdmb28nKVxuICogICAgLy8gPT4gdHJ1ZVxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBzZXR0aW5nXG4gKiBAcmV0dXJuIHtCb29sZWFufVxuICogQHB1YmxpY1xuICovXG5cbmFwcC5lbmFibGVkID0gZnVuY3Rpb24gZW5hYmxlZChzZXR0aW5nKSB7XG4gIHJldHVybiBCb29sZWFuKHRoaXMuc2V0KHNldHRpbmcpKTtcbn07XG5cbi8qKlxuICogQ2hlY2sgaWYgYHNldHRpbmdgIGlzIGRpc2FibGVkLlxuICpcbiAqICAgIGFwcC5kaXNhYmxlZCgnZm9vJylcbiAqICAgIC8vID0+IHRydWVcbiAqXG4gKiAgICBhcHAuZW5hYmxlKCdmb28nKVxuICogICAgYXBwLmRpc2FibGVkKCdmb28nKVxuICogICAgLy8gPT4gZmFsc2VcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gc2V0dGluZ1xuICogQHJldHVybiB7Qm9vbGVhbn1cbiAqIEBwdWJsaWNcbiAqL1xuXG5hcHAuZGlzYWJsZWQgPSBmdW5jdGlvbiBkaXNhYmxlZChzZXR0aW5nKSB7XG4gIHJldHVybiAhdGhpcy5zZXQoc2V0dGluZyk7XG59O1xuXG4vKipcbiAqIEVuYWJsZSBgc2V0dGluZ2AuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHNldHRpbmdcbiAqIEByZXR1cm4ge2FwcH0gZm9yIGNoYWluaW5nXG4gKiBAcHVibGljXG4gKi9cblxuYXBwLmVuYWJsZSA9IGZ1bmN0aW9uIGVuYWJsZShzZXR0aW5nKSB7XG4gIHJldHVybiB0aGlzLnNldChzZXR0aW5nLCB0cnVlKTtcbn07XG5cbi8qKlxuICogRGlzYWJsZSBgc2V0dGluZ2AuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHNldHRpbmdcbiAqIEByZXR1cm4ge2FwcH0gZm9yIGNoYWluaW5nXG4gKiBAcHVibGljXG4gKi9cblxuYXBwLmRpc2FibGUgPSBmdW5jdGlvbiBkaXNhYmxlKHNldHRpbmcpIHtcbiAgcmV0dXJuIHRoaXMuc2V0KHNldHRpbmcsIGZhbHNlKTtcbn07XG5cbi8qKlxuICogRGVsZWdhdGUgYC5WRVJCKC4uLilgIGNhbGxzIHRvIGByb3V0ZXIuVkVSQiguLi4pYC5cbiAqL1xuXG5tZXRob2RzLmZvckVhY2goZnVuY3Rpb24gKG1ldGhvZCkge1xuICBhcHBbbWV0aG9kXSA9IGZ1bmN0aW9uIChwYXRoKSB7XG4gICAgaWYgKG1ldGhvZCA9PT0gJ2dldCcgJiYgYXJndW1lbnRzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgLy8gYXBwLmdldChzZXR0aW5nKVxuICAgICAgcmV0dXJuIHRoaXMuc2V0KHBhdGgpO1xuICAgIH1cblxuICAgIHZhciByb3V0ZSA9IHRoaXMucm91dGUocGF0aCk7XG4gICAgcm91dGVbbWV0aG9kXS5hcHBseShyb3V0ZSwgc2xpY2UuY2FsbChhcmd1bWVudHMsIDEpKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfTtcbn0pO1xuXG4vKipcbiAqIFNwZWNpYWwtY2FzZWQgXCJhbGxcIiBtZXRob2QsIGFwcGx5aW5nIHRoZSBnaXZlbiByb3V0ZSBgcGF0aGAsXG4gKiBtaWRkbGV3YXJlLCBhbmQgY2FsbGJhY2sgdG8gX2V2ZXJ5XyBIVFRQIG1ldGhvZC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gcGF0aFxuICogQHBhcmFtIHtGdW5jdGlvbn0gLi4uXG4gKiBAcmV0dXJuIHthcHB9IGZvciBjaGFpbmluZ1xuICogQHB1YmxpY1xuICovXG5cbmFwcC5hbGwgPSBmdW5jdGlvbiBhbGwocGF0aCkge1xuICB2YXIgcm91dGUgPSB0aGlzLnJvdXRlKHBhdGgpO1xuICB2YXIgYXJncyA9IHNsaWNlLmNhbGwoYXJndW1lbnRzLCAxKTtcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IG1ldGhvZHMubGVuZ3RoOyBpKyspIHtcbiAgICByb3V0ZVttZXRob2RzW2ldXS5hcHBseShyb3V0ZSwgYXJncyk7XG4gIH1cblxuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogUmVuZGVyIHRoZSBnaXZlbiB2aWV3IGBuYW1lYCBuYW1lIHdpdGggYG9wdGlvbnNgXG4gKiBhbmQgYSBjYWxsYmFjayBhY2NlcHRpbmcgYW4gZXJyb3IgYW5kIHRoZVxuICogcmVuZGVyZWQgdGVtcGxhdGUgc3RyaW5nLlxuICpcbiAqIEV4YW1wbGU6XG4gKlxuICogICAgYXBwLnJlbmRlcignZW1haWwnLCB7IG5hbWU6ICdUb2JpJyB9LCBmdW5jdGlvbihlcnIsIGh0bWwpe1xuICogICAgICAvLyAuLi5cbiAqICAgIH0pXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IG5hbWVcbiAqIEBwYXJhbSB7T2JqZWN0fEZ1bmN0aW9ufSBvcHRpb25zIG9yIGZuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBjYWxsYmFja1xuICogQHB1YmxpY1xuICovXG5cbmFwcC5yZW5kZXIgPSBmdW5jdGlvbiByZW5kZXIobmFtZSwgb3B0aW9ucywgY2FsbGJhY2spIHtcbiAgdmFyIGNhY2hlID0gdGhpcy5jYWNoZTtcbiAgdmFyIGRvbmUgPSBjYWxsYmFjaztcbiAgdmFyIGVuZ2luZXMgPSB0aGlzLmVuZ2luZXM7XG4gIHZhciBvcHRzID0gb3B0aW9ucztcbiAgdmFyIHZpZXc7XG5cbiAgLy8gc3VwcG9ydCBjYWxsYmFjayBmdW5jdGlvbiBhcyBzZWNvbmQgYXJnXG4gIGlmICh0eXBlb2Ygb3B0aW9ucyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGRvbmUgPSBvcHRpb25zO1xuICAgIG9wdHMgPSB7fTtcbiAgfVxuXG4gIC8vIG1lcmdlIG9wdGlvbnNcbiAgdmFyIHJlbmRlck9wdGlvbnMgPSB7IC4uLnRoaXMubG9jYWxzLCAuLi5vcHRzLl9sb2NhbHMsIC4uLm9wdHMgfTtcblxuICAvLyBzZXQgLmNhY2hlIHVubGVzcyBleHBsaWNpdGx5IHByb3ZpZGVkXG4gIGlmIChyZW5kZXJPcHRpb25zLmNhY2hlID09IG51bGwpIHtcbiAgICByZW5kZXJPcHRpb25zLmNhY2hlID0gdGhpcy5lbmFibGVkKCd2aWV3IGNhY2hlJyk7XG4gIH1cblxuICAvLyBwcmltZWQgY2FjaGVcbiAgaWYgKHJlbmRlck9wdGlvbnMuY2FjaGUpIHtcbiAgICB2aWV3ID0gY2FjaGVbbmFtZV07XG4gIH1cblxuICAvLyB2aWV3XG4gIGlmICghdmlldykge1xuICAgIHZhciBWaWV3ID0gdGhpcy5nZXQoJ3ZpZXcnKTtcblxuICAgIHZpZXcgPSBuZXcgVmlldyhuYW1lLCB7XG4gICAgICBkZWZhdWx0RW5naW5lOiB0aGlzLmdldCgndmlldyBlbmdpbmUnKSxcbiAgICAgIHJvb3Q6IHRoaXMuZ2V0KCd2aWV3cycpLFxuICAgICAgZW5naW5lczogZW5naW5lc1xuICAgIH0pO1xuXG4gICAgaWYgKCF2aWV3LnBhdGgpIHtcbiAgICAgIHZhciBkaXJzID0gQXJyYXkuaXNBcnJheSh2aWV3LnJvb3QpICYmIHZpZXcucm9vdC5sZW5ndGggPiAxXG4gICAgICAgID8gJ2RpcmVjdG9yaWVzIFwiJyArIHZpZXcucm9vdC5zbGljZSgwLCAtMSkuam9pbignXCIsIFwiJykgKyAnXCIgb3IgXCInICsgdmlldy5yb290W3ZpZXcucm9vdC5sZW5ndGggLSAxXSArICdcIidcbiAgICAgICAgOiAnZGlyZWN0b3J5IFwiJyArIHZpZXcucm9vdCArICdcIidcbiAgICAgIHZhciBlcnIgPSBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBsb29rdXAgdmlldyBcIicgKyBuYW1lICsgJ1wiIGluIHZpZXdzICcgKyBkaXJzKTtcbiAgICAgIGVyci52aWV3ID0gdmlldztcbiAgICAgIHJldHVybiBkb25lKGVycik7XG4gICAgfVxuXG4gICAgLy8gcHJpbWUgdGhlIGNhY2hlXG4gICAgaWYgKHJlbmRlck9wdGlvbnMuY2FjaGUpIHtcbiAgICAgIGNhY2hlW25hbWVdID0gdmlldztcbiAgICB9XG4gIH1cblxuICAvLyByZW5kZXJcbiAgdHJ5UmVuZGVyKHZpZXcsIHJlbmRlck9wdGlvbnMsIGRvbmUpO1xufTtcblxuLyoqXG4gKiBMaXN0ZW4gZm9yIGNvbm5lY3Rpb25zLlxuICpcbiAqIEEgbm9kZSBgaHR0cC5TZXJ2ZXJgIGlzIHJldHVybmVkLCB3aXRoIHRoaXNcbiAqIGFwcGxpY2F0aW9uICh3aGljaCBpcyBhIGBGdW5jdGlvbmApIGFzIGl0c1xuICogY2FsbGJhY2suIElmIHlvdSB3aXNoIHRvIGNyZWF0ZSBib3RoIGFuIEhUVFBcbiAqIGFuZCBIVFRQUyBzZXJ2ZXIgeW91IG1heSBkbyBzbyB3aXRoIHRoZSBcImh0dHBcIlxuICogYW5kIFwiaHR0cHNcIiBtb2R1bGVzIGFzIHNob3duIGhlcmU6XG4gKlxuICogICAgdmFyIGh0dHAgPSByZXF1aXJlKCdub2RlOmh0dHAnKVxuICogICAgICAsIGh0dHBzID0gcmVxdWlyZSgnbm9kZTpodHRwcycpXG4gKiAgICAgICwgZXhwcmVzcyA9IHJlcXVpcmUoJ2V4cHJlc3MnKVxuICogICAgICAsIGFwcCA9IGV4cHJlc3MoKTtcbiAqXG4gKiAgICBodHRwLmNyZWF0ZVNlcnZlcihhcHApLmxpc3Rlbig4MCk7XG4gKiAgICBodHRwcy5jcmVhdGVTZXJ2ZXIoeyAuLi4gfSwgYXBwKS5saXN0ZW4oNDQzKTtcbiAqXG4gKiBAcmV0dXJuIHtodHRwLlNlcnZlcn1cbiAqIEBwdWJsaWNcbiAqL1xuXG5hcHAubGlzdGVuID0gZnVuY3Rpb24gbGlzdGVuKCkge1xuICB2YXIgc2VydmVyID0gaHR0cC5jcmVhdGVTZXJ2ZXIodGhpcylcbiAgdmFyIGFyZ3MgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpXG4gIGlmICh0eXBlb2YgYXJnc1thcmdzLmxlbmd0aCAtIDFdID09PSAnZnVuY3Rpb24nKSB7XG4gICAgdmFyIGRvbmUgPSBhcmdzW2FyZ3MubGVuZ3RoIC0gMV0gPSBvbmNlKGFyZ3NbYXJncy5sZW5ndGggLSAxXSlcbiAgICBzZXJ2ZXIub25jZSgnZXJyb3InLCBkb25lKVxuICB9XG4gIHJldHVybiBzZXJ2ZXIubGlzdGVuLmFwcGx5KHNlcnZlciwgYXJncylcbn1cblxuLyoqXG4gKiBMb2cgZXJyb3IgdXNpbmcgY29uc29sZS5lcnJvci5cbiAqXG4gKiBAcGFyYW0ge0Vycm9yfSBlcnJcbiAqIEBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gbG9nZXJyb3IoZXJyKSB7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIGlmICh0aGlzLmdldCgnZW52JykgIT09ICd0ZXN0JykgY29uc29sZS5lcnJvcihlcnIuc3RhY2sgfHwgZXJyLnRvU3RyaW5nKCkpO1xufVxuXG4vKipcbiAqIFRyeSByZW5kZXJpbmcgYSB2aWV3LlxuICogQHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiB0cnlSZW5kZXIodmlldywgb3B0aW9ucywgY2FsbGJhY2spIHtcbiAgdHJ5IHtcbiAgICB2aWV3LnJlbmRlcihvcHRpb25zLCBjYWxsYmFjayk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGNhbGxiYWNrKGVycik7XG4gIH1cbn1cbiIsICIvKiFcbiAqIGV4cHJlc3NcbiAqIENvcHlyaWdodChjKSAyMDA5LTIwMTMgVEogSG9sb3dheWNodWtcbiAqIENvcHlyaWdodChjKSAyMDEzIFJvbWFuIFNodHlsbWFuXG4gKiBDb3B5cmlnaHQoYykgMjAxNC0yMDE1IERvdWdsYXMgQ2hyaXN0b3BoZXIgV2lsc29uXG4gKiBNSVQgTGljZW5zZWRcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbi8qKlxuICogTW9kdWxlIGRlcGVuZGVuY2llcy5cbiAqIEBwcml2YXRlXG4gKi9cblxudmFyIGFjY2VwdHMgPSByZXF1aXJlKCdhY2NlcHRzJyk7XG52YXIgaXNJUCA9IHJlcXVpcmUoJ25vZGU6bmV0JykuaXNJUDtcbnZhciB0eXBlaXMgPSByZXF1aXJlKCd0eXBlLWlzJyk7XG52YXIgaHR0cCA9IHJlcXVpcmUoJ25vZGU6aHR0cCcpO1xudmFyIGZyZXNoID0gcmVxdWlyZSgnZnJlc2gnKTtcbnZhciBwYXJzZVJhbmdlID0gcmVxdWlyZSgncmFuZ2UtcGFyc2VyJyk7XG52YXIgcGFyc2UgPSByZXF1aXJlKCdwYXJzZXVybCcpO1xudmFyIHByb3h5YWRkciA9IHJlcXVpcmUoJ3Byb3h5LWFkZHInKTtcblxuLyoqXG4gKiBSZXF1ZXN0IHByb3RvdHlwZS5cbiAqIEBwdWJsaWNcbiAqL1xuXG52YXIgcmVxID0gT2JqZWN0LmNyZWF0ZShodHRwLkluY29taW5nTWVzc2FnZS5wcm90b3R5cGUpXG5cbi8qKlxuICogTW9kdWxlIGV4cG9ydHMuXG4gKiBAcHVibGljXG4gKi9cblxubW9kdWxlLmV4cG9ydHMgPSByZXFcblxuLyoqXG4gKiBSZXR1cm4gcmVxdWVzdCBoZWFkZXIuXG4gKlxuICogVGhlIGBSZWZlcnJlcmAgaGVhZGVyIGZpZWxkIGlzIHNwZWNpYWwtY2FzZWQsXG4gKiBib3RoIGBSZWZlcnJlcmAgYW5kIGBSZWZlcmVyYCBhcmUgaW50ZXJjaGFuZ2VhYmxlLlxuICpcbiAqIEV4YW1wbGVzOlxuICpcbiAqICAgICByZXEuZ2V0KCdDb250ZW50LVR5cGUnKTtcbiAqICAgICAvLyA9PiBcInRleHQvcGxhaW5cIlxuICpcbiAqICAgICByZXEuZ2V0KCdjb250ZW50LXR5cGUnKTtcbiAqICAgICAvLyA9PiBcInRleHQvcGxhaW5cIlxuICpcbiAqICAgICByZXEuZ2V0KCdTb21ldGhpbmcnKTtcbiAqICAgICAvLyA9PiB1bmRlZmluZWRcbiAqXG4gKiBBbGlhc2VkIGFzIGByZXEuaGVhZGVyKClgLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lXG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKiBAcHVibGljXG4gKi9cblxucmVxLmdldCA9XG5yZXEuaGVhZGVyID0gZnVuY3Rpb24gaGVhZGVyKG5hbWUpIHtcbiAgaWYgKCFuYW1lKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignbmFtZSBhcmd1bWVudCBpcyByZXF1aXJlZCB0byByZXEuZ2V0Jyk7XG4gIH1cblxuICBpZiAodHlwZW9mIG5hbWUgIT09ICdzdHJpbmcnKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignbmFtZSBtdXN0IGJlIGEgc3RyaW5nIHRvIHJlcS5nZXQnKTtcbiAgfVxuXG4gIHZhciBsYyA9IG5hbWUudG9Mb3dlckNhc2UoKTtcblxuICBzd2l0Y2ggKGxjKSB7XG4gICAgY2FzZSAncmVmZXJlcic6XG4gICAgY2FzZSAncmVmZXJyZXInOlxuICAgICAgcmV0dXJuIHRoaXMuaGVhZGVycy5yZWZlcnJlclxuICAgICAgICB8fCB0aGlzLmhlYWRlcnMucmVmZXJlcjtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHRoaXMuaGVhZGVyc1tsY107XG4gIH1cbn07XG5cbi8qKlxuICogVG8gZG86IHVwZGF0ZSBkb2NzLlxuICpcbiAqIENoZWNrIGlmIHRoZSBnaXZlbiBgdHlwZShzKWAgaXMgYWNjZXB0YWJsZSwgcmV0dXJuaW5nXG4gKiB0aGUgYmVzdCBtYXRjaCB3aGVuIHRydWUsIG90aGVyd2lzZSBgdW5kZWZpbmVkYCwgaW4gd2hpY2hcbiAqIGNhc2UgeW91IHNob3VsZCByZXNwb25kIHdpdGggNDA2IFwiTm90IEFjY2VwdGFibGVcIi5cbiAqXG4gKiBUaGUgYHR5cGVgIHZhbHVlIG1heSBiZSBhIHNpbmdsZSBNSU1FIHR5cGUgc3RyaW5nXG4gKiBzdWNoIGFzIFwiYXBwbGljYXRpb24vanNvblwiLCBhbiBleHRlbnNpb24gbmFtZVxuICogc3VjaCBhcyBcImpzb25cIiwgYSBjb21tYS1kZWxpbWl0ZWQgbGlzdCBzdWNoIGFzIFwianNvbiwgaHRtbCwgdGV4dC9wbGFpblwiLFxuICogYW4gYXJndW1lbnQgbGlzdCBzdWNoIGFzIGBcImpzb25cIiwgXCJodG1sXCIsIFwidGV4dC9wbGFpblwiYCxcbiAqIG9yIGFuIGFycmF5IGBbXCJqc29uXCIsIFwiaHRtbFwiLCBcInRleHQvcGxhaW5cIl1gLiBXaGVuIGEgbGlzdFxuICogb3IgYXJyYXkgaXMgZ2l2ZW4sIHRoZSBfYmVzdF8gbWF0Y2gsIGlmIGFueSBpcyByZXR1cm5lZC5cbiAqXG4gKiBFeGFtcGxlczpcbiAqXG4gKiAgICAgLy8gQWNjZXB0OiB0ZXh0L2h0bWxcbiAqICAgICByZXEuYWNjZXB0cygnaHRtbCcpO1xuICogICAgIC8vID0+IFwiaHRtbFwiXG4gKlxuICogICAgIC8vIEFjY2VwdDogdGV4dC8qLCBhcHBsaWNhdGlvbi9qc29uXG4gKiAgICAgcmVxLmFjY2VwdHMoJ2h0bWwnKTtcbiAqICAgICAvLyA9PiBcImh0bWxcIlxuICogICAgIHJlcS5hY2NlcHRzKCd0ZXh0L2h0bWwnKTtcbiAqICAgICAvLyA9PiBcInRleHQvaHRtbFwiXG4gKiAgICAgcmVxLmFjY2VwdHMoJ2pzb24sIHRleHQnKTtcbiAqICAgICAvLyA9PiBcImpzb25cIlxuICogICAgIHJlcS5hY2NlcHRzKCdhcHBsaWNhdGlvbi9qc29uJyk7XG4gKiAgICAgLy8gPT4gXCJhcHBsaWNhdGlvbi9qc29uXCJcbiAqXG4gKiAgICAgLy8gQWNjZXB0OiB0ZXh0LyosIGFwcGxpY2F0aW9uL2pzb25cbiAqICAgICByZXEuYWNjZXB0cygnaW1hZ2UvcG5nJyk7XG4gKiAgICAgcmVxLmFjY2VwdHMoJ3BuZycpO1xuICogICAgIC8vID0+IHVuZGVmaW5lZFxuICpcbiAqICAgICAvLyBBY2NlcHQ6IHRleHQvKjtxPS41LCBhcHBsaWNhdGlvbi9qc29uXG4gKiAgICAgcmVxLmFjY2VwdHMoWydodG1sJywgJ2pzb24nXSk7XG4gKiAgICAgcmVxLmFjY2VwdHMoJ2h0bWwnLCAnanNvbicpO1xuICogICAgIHJlcS5hY2NlcHRzKCdodG1sLCBqc29uJyk7XG4gKiAgICAgLy8gPT4gXCJqc29uXCJcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ3xBcnJheX0gdHlwZShzKVxuICogQHJldHVybiB7U3RyaW5nfEFycmF5fEJvb2xlYW59XG4gKiBAcHVibGljXG4gKi9cblxucmVxLmFjY2VwdHMgPSBmdW5jdGlvbigpe1xuICB2YXIgYWNjZXB0ID0gYWNjZXB0cyh0aGlzKTtcbiAgcmV0dXJuIGFjY2VwdC50eXBlcy5hcHBseShhY2NlcHQsIGFyZ3VtZW50cyk7XG59O1xuXG4vKipcbiAqIENoZWNrIGlmIHRoZSBnaXZlbiBgZW5jb2RpbmdgcyBhcmUgYWNjZXB0ZWQuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IC4uLmVuY29kaW5nXG4gKiBAcmV0dXJuIHtTdHJpbmd8QXJyYXl9XG4gKiBAcHVibGljXG4gKi9cblxucmVxLmFjY2VwdHNFbmNvZGluZ3MgPSBmdW5jdGlvbigpe1xuICB2YXIgYWNjZXB0ID0gYWNjZXB0cyh0aGlzKTtcbiAgcmV0dXJuIGFjY2VwdC5lbmNvZGluZ3MuYXBwbHkoYWNjZXB0LCBhcmd1bWVudHMpO1xufTtcblxuLyoqXG4gKiBDaGVjayBpZiB0aGUgZ2l2ZW4gYGNoYXJzZXRgcyBhcmUgYWNjZXB0YWJsZSxcbiAqIG90aGVyd2lzZSB5b3Ugc2hvdWxkIHJlc3BvbmQgd2l0aCA0MDYgXCJOb3QgQWNjZXB0YWJsZVwiLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSAuLi5jaGFyc2V0XG4gKiBAcmV0dXJuIHtTdHJpbmd8QXJyYXl9XG4gKiBAcHVibGljXG4gKi9cblxucmVxLmFjY2VwdHNDaGFyc2V0cyA9IGZ1bmN0aW9uKCl7XG4gIHZhciBhY2NlcHQgPSBhY2NlcHRzKHRoaXMpO1xuICByZXR1cm4gYWNjZXB0LmNoYXJzZXRzLmFwcGx5KGFjY2VwdCwgYXJndW1lbnRzKTtcbn07XG5cbi8qKlxuICogQ2hlY2sgaWYgdGhlIGdpdmVuIGBsYW5nYHMgYXJlIGFjY2VwdGFibGUsXG4gKiBvdGhlcndpc2UgeW91IHNob3VsZCByZXNwb25kIHdpdGggNDA2IFwiTm90IEFjY2VwdGFibGVcIi5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gLi4ubGFuZ1xuICogQHJldHVybiB7U3RyaW5nfEFycmF5fVxuICogQHB1YmxpY1xuICovXG5cbnJlcS5hY2NlcHRzTGFuZ3VhZ2VzID0gZnVuY3Rpb24oKXtcbiAgdmFyIGFjY2VwdCA9IGFjY2VwdHModGhpcyk7XG4gIHJldHVybiBhY2NlcHQubGFuZ3VhZ2VzLmFwcGx5KGFjY2VwdCwgYXJndW1lbnRzKTtcbn07XG5cbi8qKlxuICogUGFyc2UgUmFuZ2UgaGVhZGVyIGZpZWxkLCBjYXBwaW5nIHRvIHRoZSBnaXZlbiBgc2l6ZWAuXG4gKlxuICogVW5zcGVjaWZpZWQgcmFuZ2VzIHN1Y2ggYXMgXCIwLVwiIHJlcXVpcmUga25vd2xlZGdlIG9mIHlvdXIgcmVzb3VyY2UgbGVuZ3RoLiBJblxuICogdGhlIGNhc2Ugb2YgYSBieXRlIHJhbmdlIHRoaXMgaXMgb2YgY291cnNlIHRoZSB0b3RhbCBudW1iZXIgb2YgYnl0ZXMuIElmIHRoZVxuICogUmFuZ2UgaGVhZGVyIGZpZWxkIGlzIG5vdCBnaXZlbiBgdW5kZWZpbmVkYCBpcyByZXR1cm5lZCwgYC0xYCB3aGVuIHVuc2F0aXNmaWFibGUsXG4gKiBhbmQgYC0yYCB3aGVuIHN5bnRhY3RpY2FsbHkgaW52YWxpZC5cbiAqXG4gKiBXaGVuIHJhbmdlcyBhcmUgcmV0dXJuZWQsIHRoZSBhcnJheSBoYXMgYSBcInR5cGVcIiBwcm9wZXJ0eSB3aGljaCBpcyB0aGUgdHlwZSBvZlxuICogcmFuZ2UgdGhhdCBpcyByZXF1aXJlZCAobW9zdCBjb21tb25seSwgXCJieXRlc1wiKS4gRWFjaCBhcnJheSBlbGVtZW50IGlzIGFuIG9iamVjdFxuICogd2l0aCBhIFwic3RhcnRcIiBhbmQgXCJlbmRcIiBwcm9wZXJ0eSBmb3IgdGhlIHBvcnRpb24gb2YgdGhlIHJhbmdlLlxuICpcbiAqIFRoZSBcImNvbWJpbmVcIiBvcHRpb24gY2FuIGJlIHNldCB0byBgdHJ1ZWAgYW5kIG92ZXJsYXBwaW5nICYgYWRqYWNlbnQgcmFuZ2VzXG4gKiB3aWxsIGJlIGNvbWJpbmVkIGludG8gYSBzaW5nbGUgcmFuZ2UuXG4gKlxuICogTk9URTogcmVtZW1iZXIgdGhhdCByYW5nZXMgYXJlIGluY2x1c2l2ZSwgc28gZm9yIGV4YW1wbGUgXCJSYW5nZTogdXNlcnM9MC0zXCJcbiAqIHNob3VsZCByZXNwb25kIHdpdGggNCB1c2VycyB3aGVuIGF2YWlsYWJsZSwgbm90IDMuXG4gKlxuICogQHBhcmFtIHtudW1iZXJ9IHNpemVcbiAqIEBwYXJhbSB7b2JqZWN0fSBbb3B0aW9uc11cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMuY29tYmluZT1mYWxzZV1cbiAqIEByZXR1cm4ge251bWJlcnxhcnJheX1cbiAqIEBwdWJsaWNcbiAqL1xuXG5yZXEucmFuZ2UgPSBmdW5jdGlvbiByYW5nZShzaXplLCBvcHRpb25zKSB7XG4gIHZhciByYW5nZSA9IHRoaXMuZ2V0KCdSYW5nZScpO1xuICBpZiAoIXJhbmdlKSByZXR1cm47XG4gIHJldHVybiBwYXJzZVJhbmdlKHNpemUsIHJhbmdlLCBvcHRpb25zKTtcbn07XG5cbi8qKlxuICogUGFyc2UgdGhlIHF1ZXJ5IHN0cmluZyBvZiBgcmVxLnVybGAuXG4gKlxuICogVGhpcyB1c2VzIHRoZSBcInF1ZXJ5IHBhcnNlclwiIHNldHRpbmcgdG8gcGFyc2UgdGhlIHJhd1xuICogc3RyaW5nIGludG8gYW4gb2JqZWN0LlxuICpcbiAqIEByZXR1cm4ge1N0cmluZ31cbiAqIEBhcGkgcHVibGljXG4gKi9cblxuZGVmaW5lR2V0dGVyKHJlcSwgJ3F1ZXJ5JywgZnVuY3Rpb24gcXVlcnkoKXtcbiAgdmFyIHF1ZXJ5cGFyc2UgPSB0aGlzLmFwcC5nZXQoJ3F1ZXJ5IHBhcnNlciBmbicpO1xuXG4gIGlmICghcXVlcnlwYXJzZSkge1xuICAgIC8vIHBhcnNpbmcgaXMgZGlzYWJsZWRcbiAgICByZXR1cm4gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgfVxuXG4gIHZhciBxdWVyeXN0cmluZyA9IHBhcnNlKHRoaXMpLnF1ZXJ5O1xuXG4gIHJldHVybiBxdWVyeXBhcnNlKHF1ZXJ5c3RyaW5nKTtcbn0pO1xuXG4vKipcbiAqIENoZWNrIGlmIHRoZSBpbmNvbWluZyByZXF1ZXN0IGNvbnRhaW5zIHRoZSBcIkNvbnRlbnQtVHlwZVwiXG4gKiBoZWFkZXIgZmllbGQsIGFuZCBpdCBjb250YWlucyB0aGUgZ2l2ZW4gbWltZSBgdHlwZWAuXG4gKlxuICogRXhhbXBsZXM6XG4gKlxuICogICAgICAvLyBXaXRoIENvbnRlbnQtVHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04XG4gKiAgICAgIHJlcS5pcygnaHRtbCcpO1xuICogICAgICByZXEuaXMoJ3RleHQvaHRtbCcpO1xuICogICAgICByZXEuaXMoJ3RleHQvKicpO1xuICogICAgICAvLyA9PiB0cnVlXG4gKlxuICogICAgICAvLyBXaGVuIENvbnRlbnQtVHlwZSBpcyBhcHBsaWNhdGlvbi9qc29uXG4gKiAgICAgIHJlcS5pcygnanNvbicpO1xuICogICAgICByZXEuaXMoJ2FwcGxpY2F0aW9uL2pzb24nKTtcbiAqICAgICAgcmVxLmlzKCdhcHBsaWNhdGlvbi8qJyk7XG4gKiAgICAgIC8vID0+IHRydWVcbiAqXG4gKiAgICAgIHJlcS5pcygnaHRtbCcpO1xuICogICAgICAvLyA9PiBmYWxzZVxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfEFycmF5fSB0eXBlcy4uLlxuICogQHJldHVybiB7U3RyaW5nfGZhbHNlfG51bGx9XG4gKiBAcHVibGljXG4gKi9cblxucmVxLmlzID0gZnVuY3Rpb24gaXModHlwZXMpIHtcbiAgdmFyIGFyciA9IHR5cGVzO1xuXG4gIC8vIHN1cHBvcnQgZmxhdHRlbmVkIGFyZ3VtZW50c1xuICBpZiAoIUFycmF5LmlzQXJyYXkodHlwZXMpKSB7XG4gICAgYXJyID0gbmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGgpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgaSsrKSB7XG4gICAgICBhcnJbaV0gPSBhcmd1bWVudHNbaV07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHR5cGVpcyh0aGlzLCBhcnIpO1xufTtcblxuLyoqXG4gKiBSZXR1cm4gdGhlIHByb3RvY29sIHN0cmluZyBcImh0dHBcIiBvciBcImh0dHBzXCJcbiAqIHdoZW4gcmVxdWVzdGVkIHdpdGggVExTLiBXaGVuIHRoZSBcInRydXN0IHByb3h5XCJcbiAqIHNldHRpbmcgdHJ1c3RzIHRoZSBzb2NrZXQgYWRkcmVzcywgdGhlXG4gKiBcIlgtRm9yd2FyZGVkLVByb3RvXCIgaGVhZGVyIGZpZWxkIHdpbGwgYmUgdHJ1c3RlZFxuICogYW5kIHVzZWQgaWYgcHJlc2VudC5cbiAqXG4gKiBJZiB5b3UncmUgcnVubmluZyBiZWhpbmQgYSByZXZlcnNlIHByb3h5IHRoYXRcbiAqIHN1cHBsaWVzIGh0dHBzIGZvciB5b3UgdGhpcyBtYXkgYmUgZW5hYmxlZC5cbiAqXG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKiBAcHVibGljXG4gKi9cblxuZGVmaW5lR2V0dGVyKHJlcSwgJ3Byb3RvY29sJywgZnVuY3Rpb24gcHJvdG9jb2woKXtcbiAgdmFyIHByb3RvID0gdGhpcy5jb25uZWN0aW9uLmVuY3J5cHRlZFxuICAgID8gJ2h0dHBzJ1xuICAgIDogJ2h0dHAnO1xuICB2YXIgdHJ1c3QgPSB0aGlzLmFwcC5nZXQoJ3RydXN0IHByb3h5IGZuJyk7XG5cbiAgaWYgKCF0cnVzdCh0aGlzLmNvbm5lY3Rpb24ucmVtb3RlQWRkcmVzcywgMCkpIHtcbiAgICByZXR1cm4gcHJvdG87XG4gIH1cblxuICAvLyBOb3RlOiBYLUZvcndhcmRlZC1Qcm90byBpcyBub3JtYWxseSBvbmx5IGV2ZXIgYVxuICAvLyAgICAgICBzaW5nbGUgdmFsdWUsIGJ1dCB0aGlzIGlzIHRvIGJlIHNhZmUuXG4gIHZhciBoZWFkZXIgPSB0aGlzLmdldCgnWC1Gb3J3YXJkZWQtUHJvdG8nKSB8fCBwcm90b1xuICB2YXIgaW5kZXggPSBoZWFkZXIuaW5kZXhPZignLCcpXG5cbiAgcmV0dXJuIGluZGV4ICE9PSAtMVxuICAgID8gaGVhZGVyLnN1YnN0cmluZygwLCBpbmRleCkudHJpbSgpXG4gICAgOiBoZWFkZXIudHJpbSgpXG59KTtcblxuLyoqXG4gKiBTaG9ydC1oYW5kIGZvcjpcbiAqXG4gKiAgICByZXEucHJvdG9jb2wgPT09ICdodHRwcydcbiAqXG4gKiBAcmV0dXJuIHtCb29sZWFufVxuICogQHB1YmxpY1xuICovXG5cbmRlZmluZUdldHRlcihyZXEsICdzZWN1cmUnLCBmdW5jdGlvbiBzZWN1cmUoKXtcbiAgcmV0dXJuIHRoaXMucHJvdG9jb2wgPT09ICdodHRwcyc7XG59KTtcblxuLyoqXG4gKiBSZXR1cm4gdGhlIHJlbW90ZSBhZGRyZXNzIGZyb20gdGhlIHRydXN0ZWQgcHJveHkuXG4gKlxuICogVGhlIGlzIHRoZSByZW1vdGUgYWRkcmVzcyBvbiB0aGUgc29ja2V0IHVubGVzc1xuICogXCJ0cnVzdCBwcm94eVwiIGlzIHNldC5cbiAqXG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKiBAcHVibGljXG4gKi9cblxuZGVmaW5lR2V0dGVyKHJlcSwgJ2lwJywgZnVuY3Rpb24gaXAoKXtcbiAgdmFyIHRydXN0ID0gdGhpcy5hcHAuZ2V0KCd0cnVzdCBwcm94eSBmbicpO1xuICByZXR1cm4gcHJveHlhZGRyKHRoaXMsIHRydXN0KTtcbn0pO1xuXG4vKipcbiAqIFdoZW4gXCJ0cnVzdCBwcm94eVwiIGlzIHNldCwgdHJ1c3RlZCBwcm94eSBhZGRyZXNzZXMgKyBjbGllbnQuXG4gKlxuICogRm9yIGV4YW1wbGUgaWYgdGhlIHZhbHVlIHdlcmUgXCJjbGllbnQsIHByb3h5MSwgcHJveHkyXCJcbiAqIHlvdSB3b3VsZCByZWNlaXZlIHRoZSBhcnJheSBgW1wiY2xpZW50XCIsIFwicHJveHkxXCIsIFwicHJveHkyXCJdYFxuICogd2hlcmUgXCJwcm94eTJcIiBpcyB0aGUgZnVydGhlc3QgZG93bi1zdHJlYW0gYW5kIFwicHJveHkxXCIgYW5kXG4gKiBcInByb3h5MlwiIHdlcmUgdHJ1c3RlZC5cbiAqXG4gKiBAcmV0dXJuIHtBcnJheX1cbiAqIEBwdWJsaWNcbiAqL1xuXG5kZWZpbmVHZXR0ZXIocmVxLCAnaXBzJywgZnVuY3Rpb24gaXBzKCkge1xuICB2YXIgdHJ1c3QgPSB0aGlzLmFwcC5nZXQoJ3RydXN0IHByb3h5IGZuJyk7XG4gIHZhciBhZGRycyA9IHByb3h5YWRkci5hbGwodGhpcywgdHJ1c3QpO1xuXG4gIC8vIHJldmVyc2UgdGhlIG9yZGVyICh0byBmYXJ0aGVzdCAtPiBjbG9zZXN0KVxuICAvLyBhbmQgcmVtb3ZlIHNvY2tldCBhZGRyZXNzXG4gIGFkZHJzLnJldmVyc2UoKS5wb3AoKVxuXG4gIHJldHVybiBhZGRyc1xufSk7XG5cbi8qKlxuICogUmV0dXJuIHN1YmRvbWFpbnMgYXMgYW4gYXJyYXkuXG4gKlxuICogU3ViZG9tYWlucyBhcmUgdGhlIGRvdC1zZXBhcmF0ZWQgcGFydHMgb2YgdGhlIGhvc3QgYmVmb3JlIHRoZSBtYWluIGRvbWFpbiBvZlxuICogdGhlIGFwcC4gQnkgZGVmYXVsdCwgdGhlIGRvbWFpbiBvZiB0aGUgYXBwIGlzIGFzc3VtZWQgdG8gYmUgdGhlIGxhc3QgdHdvXG4gKiBwYXJ0cyBvZiB0aGUgaG9zdC4gVGhpcyBjYW4gYmUgY2hhbmdlZCBieSBzZXR0aW5nIFwic3ViZG9tYWluIG9mZnNldFwiLlxuICpcbiAqIEZvciBleGFtcGxlLCBpZiB0aGUgZG9tYWluIGlzIFwidG9iaS5mZXJyZXRzLmV4YW1wbGUuY29tXCI6XG4gKiBJZiBcInN1YmRvbWFpbiBvZmZzZXRcIiBpcyBub3Qgc2V0LCByZXEuc3ViZG9tYWlucyBpcyBgW1wiZmVycmV0c1wiLCBcInRvYmlcIl1gLlxuICogSWYgXCJzdWJkb21haW4gb2Zmc2V0XCIgaXMgMywgcmVxLnN1YmRvbWFpbnMgaXMgYFtcInRvYmlcIl1gLlxuICpcbiAqIEByZXR1cm4ge0FycmF5fVxuICogQHB1YmxpY1xuICovXG5cbmRlZmluZUdldHRlcihyZXEsICdzdWJkb21haW5zJywgZnVuY3Rpb24gc3ViZG9tYWlucygpIHtcbiAgdmFyIGhvc3RuYW1lID0gdGhpcy5ob3N0bmFtZTtcblxuICBpZiAoIWhvc3RuYW1lKSByZXR1cm4gW107XG5cbiAgdmFyIG9mZnNldCA9IHRoaXMuYXBwLmdldCgnc3ViZG9tYWluIG9mZnNldCcpO1xuICB2YXIgc3ViZG9tYWlucyA9ICFpc0lQKGhvc3RuYW1lKVxuICAgID8gaG9zdG5hbWUuc3BsaXQoJy4nKS5yZXZlcnNlKClcbiAgICA6IFtob3N0bmFtZV07XG5cbiAgcmV0dXJuIHN1YmRvbWFpbnMuc2xpY2Uob2Zmc2V0KTtcbn0pO1xuXG4vKipcbiAqIFNob3J0LWhhbmQgZm9yIGB1cmwucGFyc2UocmVxLnVybCkucGF0aG5hbWVgLlxuICpcbiAqIEByZXR1cm4ge1N0cmluZ31cbiAqIEBwdWJsaWNcbiAqL1xuXG5kZWZpbmVHZXR0ZXIocmVxLCAncGF0aCcsIGZ1bmN0aW9uIHBhdGgoKSB7XG4gIHJldHVybiBwYXJzZSh0aGlzKS5wYXRobmFtZTtcbn0pO1xuXG4vKipcbiAqIFBhcnNlIHRoZSBcIkhvc3RcIiBoZWFkZXIgZmllbGQgdG8gYSBob3N0LlxuICpcbiAqIFdoZW4gdGhlIFwidHJ1c3QgcHJveHlcIiBzZXR0aW5nIHRydXN0cyB0aGUgc29ja2V0XG4gKiBhZGRyZXNzLCB0aGUgXCJYLUZvcndhcmRlZC1Ib3N0XCIgaGVhZGVyIGZpZWxkIHdpbGxcbiAqIGJlIHRydXN0ZWQuXG4gKlxuICogQHJldHVybiB7U3RyaW5nfVxuICogQHB1YmxpY1xuICovXG5cbmRlZmluZUdldHRlcihyZXEsICdob3N0JywgZnVuY3Rpb24gaG9zdCgpe1xuICB2YXIgdHJ1c3QgPSB0aGlzLmFwcC5nZXQoJ3RydXN0IHByb3h5IGZuJyk7XG4gIHZhciB2YWwgPSB0aGlzLmdldCgnWC1Gb3J3YXJkZWQtSG9zdCcpO1xuXG4gIGlmICghdmFsIHx8ICF0cnVzdCh0aGlzLmNvbm5lY3Rpb24ucmVtb3RlQWRkcmVzcywgMCkpIHtcbiAgICB2YWwgPSB0aGlzLmdldCgnSG9zdCcpO1xuICB9IGVsc2UgaWYgKHZhbC5pbmRleE9mKCcsJykgIT09IC0xKSB7XG4gICAgLy8gTm90ZTogWC1Gb3J3YXJkZWQtSG9zdCBpcyBub3JtYWxseSBvbmx5IGV2ZXIgYVxuICAgIC8vICAgICAgIHNpbmdsZSB2YWx1ZSwgYnV0IHRoaXMgaXMgdG8gYmUgc2FmZS5cbiAgICB2YWwgPSB2YWwuc3Vic3RyaW5nKDAsIHZhbC5pbmRleE9mKCcsJykpLnRyaW1SaWdodCgpXG4gIH1cblxuICByZXR1cm4gdmFsIHx8IHVuZGVmaW5lZDtcbn0pO1xuXG4vKipcbiAqIFBhcnNlIHRoZSBcIkhvc3RcIiBoZWFkZXIgZmllbGQgdG8gYSBob3N0bmFtZS5cbiAqXG4gKiBXaGVuIHRoZSBcInRydXN0IHByb3h5XCIgc2V0dGluZyB0cnVzdHMgdGhlIHNvY2tldFxuICogYWRkcmVzcywgdGhlIFwiWC1Gb3J3YXJkZWQtSG9zdFwiIGhlYWRlciBmaWVsZCB3aWxsXG4gKiBiZSB0cnVzdGVkLlxuICpcbiAqIEByZXR1cm4ge1N0cmluZ31cbiAqIEBhcGkgcHVibGljXG4gKi9cblxuZGVmaW5lR2V0dGVyKHJlcSwgJ2hvc3RuYW1lJywgZnVuY3Rpb24gaG9zdG5hbWUoKXtcbiAgdmFyIGhvc3QgPSB0aGlzLmhvc3Q7XG5cbiAgaWYgKCFob3N0KSByZXR1cm47XG5cbiAgLy8gSVB2NiBsaXRlcmFsIHN1cHBvcnRcbiAgdmFyIG9mZnNldCA9IGhvc3RbMF0gPT09ICdbJ1xuICAgID8gaG9zdC5pbmRleE9mKCddJykgKyAxXG4gICAgOiAwO1xuICB2YXIgaW5kZXggPSBob3N0LmluZGV4T2YoJzonLCBvZmZzZXQpO1xuXG4gIHJldHVybiBpbmRleCAhPT0gLTFcbiAgICA/IGhvc3Quc3Vic3RyaW5nKDAsIGluZGV4KVxuICAgIDogaG9zdDtcbn0pO1xuXG4vKipcbiAqIENoZWNrIGlmIHRoZSByZXF1ZXN0IGlzIGZyZXNoLCBha2FcbiAqIExhc3QtTW9kaWZpZWQgb3IgdGhlIEVUYWdcbiAqIHN0aWxsIG1hdGNoLlxuICpcbiAqIEByZXR1cm4ge0Jvb2xlYW59XG4gKiBAcHVibGljXG4gKi9cblxuZGVmaW5lR2V0dGVyKHJlcSwgJ2ZyZXNoJywgZnVuY3Rpb24oKXtcbiAgdmFyIG1ldGhvZCA9IHRoaXMubWV0aG9kO1xuICB2YXIgcmVzID0gdGhpcy5yZXNcbiAgdmFyIHN0YXR1cyA9IHJlcy5zdGF0dXNDb2RlXG5cbiAgLy8gR0VUIG9yIEhFQUQgZm9yIHdlYWsgZnJlc2huZXNzIHZhbGlkYXRpb24gb25seVxuICBpZiAoJ0dFVCcgIT09IG1ldGhvZCAmJiAnSEVBRCcgIT09IG1ldGhvZCkgcmV0dXJuIGZhbHNlO1xuXG4gIC8vIDJ4eCBvciAzMDQgYXMgcGVyIHJmYzI2MTYgMTQuMjZcbiAgaWYgKChzdGF0dXMgPj0gMjAwICYmIHN0YXR1cyA8IDMwMCkgfHwgMzA0ID09PSBzdGF0dXMpIHtcbiAgICByZXR1cm4gZnJlc2godGhpcy5oZWFkZXJzLCB7XG4gICAgICAnZXRhZyc6IHJlcy5nZXQoJ0VUYWcnKSxcbiAgICAgICdsYXN0LW1vZGlmaWVkJzogcmVzLmdldCgnTGFzdC1Nb2RpZmllZCcpXG4gICAgfSlcbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn0pO1xuXG4vKipcbiAqIENoZWNrIGlmIHRoZSByZXF1ZXN0IGlzIHN0YWxlLCBha2FcbiAqIFwiTGFzdC1Nb2RpZmllZFwiIGFuZCAvIG9yIHRoZSBcIkVUYWdcIiBmb3IgdGhlXG4gKiByZXNvdXJjZSBoYXMgY2hhbmdlZC5cbiAqXG4gKiBAcmV0dXJuIHtCb29sZWFufVxuICogQHB1YmxpY1xuICovXG5cbmRlZmluZUdldHRlcihyZXEsICdzdGFsZScsIGZ1bmN0aW9uIHN0YWxlKCl7XG4gIHJldHVybiAhdGhpcy5mcmVzaDtcbn0pO1xuXG4vKipcbiAqIENoZWNrIGlmIHRoZSByZXF1ZXN0IHdhcyBhbiBfWE1MSHR0cFJlcXVlc3RfLlxuICpcbiAqIEByZXR1cm4ge0Jvb2xlYW59XG4gKiBAcHVibGljXG4gKi9cblxuZGVmaW5lR2V0dGVyKHJlcSwgJ3hocicsIGZ1bmN0aW9uIHhocigpe1xuICB2YXIgdmFsID0gdGhpcy5nZXQoJ1gtUmVxdWVzdGVkLVdpdGgnKSB8fCAnJztcbiAgcmV0dXJuIHZhbC50b0xvd2VyQ2FzZSgpID09PSAneG1saHR0cHJlcXVlc3QnO1xufSk7XG5cbi8qKlxuICogSGVscGVyIGZ1bmN0aW9uIGZvciBjcmVhdGluZyBhIGdldHRlciBvbiBhbiBvYmplY3QuXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IG9ialxuICogQHBhcmFtIHtTdHJpbmd9IG5hbWVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGdldHRlclxuICogQHByaXZhdGVcbiAqL1xuZnVuY3Rpb24gZGVmaW5lR2V0dGVyKG9iaiwgbmFtZSwgZ2V0dGVyKSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIG5hbWUsIHtcbiAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGdldHRlclxuICB9KTtcbn1cbiIsICIvKiFcbiAqIGV4cHJlc3NcbiAqIENvcHlyaWdodChjKSAyMDA5LTIwMTMgVEogSG9sb3dheWNodWtcbiAqIENvcHlyaWdodChjKSAyMDE0LTIwMTUgRG91Z2xhcyBDaHJpc3RvcGhlciBXaWxzb25cbiAqIE1JVCBMaWNlbnNlZFxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuLyoqXG4gKiBNb2R1bGUgZGVwZW5kZW5jaWVzLlxuICogQHByaXZhdGVcbiAqL1xuXG52YXIgY29udGVudERpc3Bvc2l0aW9uID0gcmVxdWlyZSgnY29udGVudC1kaXNwb3NpdGlvbicpO1xudmFyIGNyZWF0ZUVycm9yID0gcmVxdWlyZSgnaHR0cC1lcnJvcnMnKVxudmFyIGVuY29kZVVybCA9IHJlcXVpcmUoJ2VuY29kZXVybCcpO1xudmFyIGVzY2FwZUh0bWwgPSByZXF1aXJlKCdlc2NhcGUtaHRtbCcpO1xudmFyIGh0dHAgPSByZXF1aXJlKCdub2RlOmh0dHAnKTtcbnZhciBvbkZpbmlzaGVkID0gcmVxdWlyZSgnb24tZmluaXNoZWQnKTtcbnZhciBtaW1lID0gcmVxdWlyZSgnbWltZS10eXBlcycpXG52YXIgcGF0aCA9IHJlcXVpcmUoJ25vZGU6cGF0aCcpO1xudmFyIHBhdGhJc0Fic29sdXRlID0gcmVxdWlyZSgnbm9kZTpwYXRoJykuaXNBYnNvbHV0ZTtcbnZhciBzdGF0dXNlcyA9IHJlcXVpcmUoJ3N0YXR1c2VzJylcbnZhciBzaWduID0gcmVxdWlyZSgnY29va2llLXNpZ25hdHVyZScpLnNpZ247XG52YXIgbm9ybWFsaXplVHlwZSA9IHJlcXVpcmUoJy4vdXRpbHMnKS5ub3JtYWxpemVUeXBlO1xudmFyIG5vcm1hbGl6ZVR5cGVzID0gcmVxdWlyZSgnLi91dGlscycpLm5vcm1hbGl6ZVR5cGVzO1xudmFyIHNldENoYXJzZXQgPSByZXF1aXJlKCcuL3V0aWxzJykuc2V0Q2hhcnNldDtcbnZhciBjb29raWUgPSByZXF1aXJlKCdjb29raWUnKTtcbnZhciBzZW5kID0gcmVxdWlyZSgnc2VuZCcpO1xudmFyIGV4dG5hbWUgPSBwYXRoLmV4dG5hbWU7XG52YXIgcmVzb2x2ZSA9IHBhdGgucmVzb2x2ZTtcbnZhciB2YXJ5ID0gcmVxdWlyZSgndmFyeScpO1xuXG4vKipcbiAqIFJlc3BvbnNlIHByb3RvdHlwZS5cbiAqIEBwdWJsaWNcbiAqL1xuXG52YXIgcmVzID0gT2JqZWN0LmNyZWF0ZShodHRwLlNlcnZlclJlc3BvbnNlLnByb3RvdHlwZSlcblxuLyoqXG4gKiBNb2R1bGUgZXhwb3J0cy5cbiAqIEBwdWJsaWNcbiAqL1xuXG5tb2R1bGUuZXhwb3J0cyA9IHJlc1xuXG4vKipcbiAqIFNldCB0aGUgSFRUUCBzdGF0dXMgY29kZSBmb3IgdGhlIHJlc3BvbnNlLlxuICpcbiAqIEV4cGVjdHMgYW4gaW50ZWdlciB2YWx1ZSBiZXR3ZWVuIDEwMCBhbmQgOTk5IGluY2x1c2l2ZS5cbiAqIFRocm93cyBhbiBlcnJvciBpZiB0aGUgcHJvdmlkZWQgc3RhdHVzIGNvZGUgaXMgbm90IGFuIGludGVnZXIgb3IgaWYgaXQncyBvdXRzaWRlIHRoZSBhbGxvd2FibGUgcmFuZ2UuXG4gKlxuICogQHBhcmFtIHtudW1iZXJ9IGNvZGUgLSBUaGUgSFRUUCBzdGF0dXMgY29kZSB0byBzZXQuXG4gKiBAcmV0dXJuIHtTZXJ2ZXJSZXNwb25zZX0gLSBSZXR1cm5zIGl0c2VsZiBmb3IgY2hhaW5pbmcgbWV0aG9kcy5cbiAqIEB0aHJvd3Mge1R5cGVFcnJvcn0gSWYgYGNvZGVgIGlzIG5vdCBhbiBpbnRlZ2VyLlxuICogQHRocm93cyB7UmFuZ2VFcnJvcn0gSWYgYGNvZGVgIGlzIG91dHNpZGUgdGhlIHJhbmdlIDEwMCB0byA5OTkuXG4gKiBAcHVibGljXG4gKi9cblxucmVzLnN0YXR1cyA9IGZ1bmN0aW9uIHN0YXR1cyhjb2RlKSB7XG4gIC8vIENoZWNrIGlmIHRoZSBzdGF0dXMgY29kZSBpcyBub3QgYW4gaW50ZWdlclxuICBpZiAoIU51bWJlci5pc0ludGVnZXIoY29kZSkpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBJbnZhbGlkIHN0YXR1cyBjb2RlOiAke0pTT04uc3RyaW5naWZ5KGNvZGUpfS4gU3RhdHVzIGNvZGUgbXVzdCBiZSBhbiBpbnRlZ2VyLmApO1xuICB9XG4gIC8vIENoZWNrIGlmIHRoZSBzdGF0dXMgY29kZSBpcyBvdXRzaWRlIG9mIE5vZGUncyB2YWxpZCByYW5nZVxuICBpZiAoY29kZSA8IDEwMCB8fCBjb2RlID4gOTk5KSB7XG4gICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoYEludmFsaWQgc3RhdHVzIGNvZGU6ICR7SlNPTi5zdHJpbmdpZnkoY29kZSl9LiBTdGF0dXMgY29kZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiA5OSBhbmQgbGVzcyB0aGFuIDEwMDAuYCk7XG4gIH1cblxuICB0aGlzLnN0YXR1c0NvZGUgPSBjb2RlO1xuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogU2V0IExpbmsgaGVhZGVyIGZpZWxkIHdpdGggdGhlIGdpdmVuIGBsaW5rc2AuXG4gKlxuICogRXhhbXBsZXM6XG4gKlxuICogICAgcmVzLmxpbmtzKHtcbiAqICAgICAgbmV4dDogJ2h0dHA6Ly9hcGkuZXhhbXBsZS5jb20vdXNlcnM/cGFnZT0yJyxcbiAqICAgICAgbGFzdDogJ2h0dHA6Ly9hcGkuZXhhbXBsZS5jb20vdXNlcnM/cGFnZT01JyxcbiAqICAgICAgcGFnZXM6IFtcbiAqICAgICAgICAnaHR0cDovL2FwaS5leGFtcGxlLmNvbS91c2Vycz9wYWdlPTEnLFxuICogICAgICAgICdodHRwOi8vYXBpLmV4YW1wbGUuY29tL3VzZXJzP3BhZ2U9MidcbiAqICAgICAgXVxuICogICAgfSk7XG4gKlxuICogQHBhcmFtIHtPYmplY3R9IGxpbmtzXG4gKiBAcmV0dXJuIHtTZXJ2ZXJSZXNwb25zZX1cbiAqIEBwdWJsaWNcbiAqL1xuXG5yZXMubGlua3MgPSBmdW5jdGlvbihsaW5rcykge1xuICB2YXIgbGluayA9IHRoaXMuZ2V0KCdMaW5rJykgfHwgJyc7XG4gIGlmIChsaW5rKSBsaW5rICs9ICcsICc7XG4gIHJldHVybiB0aGlzLnNldCgnTGluaycsIGxpbmsgKyBPYmplY3Qua2V5cyhsaW5rcykubWFwKGZ1bmN0aW9uKHJlbCkge1xuICAgIC8vIEFsbG93IG11bHRpcGxlIGxpbmtzIGlmIGxpbmtzW3JlbF0gaXMgYW4gYXJyYXlcbiAgICBpZiAoQXJyYXkuaXNBcnJheShsaW5rc1tyZWxdKSkge1xuICAgICAgcmV0dXJuIGxpbmtzW3JlbF0ubWFwKGZ1bmN0aW9uIChzaW5nbGVMaW5rKSB7XG4gICAgICAgIHJldHVybiBgPCR7c2luZ2xlTGlua30+OyByZWw9XCIke3JlbH1cImA7XG4gICAgICB9KS5qb2luKCcsICcpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gYDwke2xpbmtzW3JlbF19PjsgcmVsPVwiJHtyZWx9XCJgO1xuICAgIH1cbiAgfSkuam9pbignLCAnKSk7XG59O1xuXG4vKipcbiAqIFNlbmQgYSByZXNwb25zZS5cbiAqXG4gKiBFeGFtcGxlczpcbiAqXG4gKiAgICAgcmVzLnNlbmQoQnVmZmVyLmZyb20oJ3dhaG9vJykpO1xuICogICAgIHJlcy5zZW5kKHsgc29tZTogJ2pzb24nIH0pO1xuICogICAgIHJlcy5zZW5kKCc8cD5zb21lIGh0bWw8L3A+Jyk7XG4gKlxuICogQHBhcmFtIHtzdHJpbmd8bnVtYmVyfGJvb2xlYW58b2JqZWN0fEJ1ZmZlcn0gYm9keVxuICogQHB1YmxpY1xuICovXG5cbnJlcy5zZW5kID0gZnVuY3Rpb24gc2VuZChib2R5KSB7XG4gIHZhciBjaHVuayA9IGJvZHk7XG4gIHZhciBlbmNvZGluZztcbiAgdmFyIHJlcSA9IHRoaXMucmVxO1xuICB2YXIgdHlwZTtcblxuICAvLyBzZXR0aW5nc1xuICB2YXIgYXBwID0gdGhpcy5hcHA7XG5cbiAgc3dpdGNoICh0eXBlb2YgY2h1bmspIHtcbiAgICAvLyBzdHJpbmcgZGVmYXVsdGluZyB0byBodG1sXG4gICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgIGlmICghdGhpcy5nZXQoJ0NvbnRlbnQtVHlwZScpKSB7XG4gICAgICAgIHRoaXMudHlwZSgnaHRtbCcpO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnYm9vbGVhbic6XG4gICAgY2FzZSAnbnVtYmVyJzpcbiAgICBjYXNlICdvYmplY3QnOlxuICAgICAgaWYgKGNodW5rID09PSBudWxsKSB7XG4gICAgICAgIGNodW5rID0gJyc7XG4gICAgICB9IGVsc2UgaWYgKEFycmF5QnVmZmVyLmlzVmlldyhjaHVuaykpIHtcbiAgICAgICAgaWYgKCF0aGlzLmdldCgnQ29udGVudC1UeXBlJykpIHtcbiAgICAgICAgICB0aGlzLnR5cGUoJ2JpbicpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gdGhpcy5qc29uKGNodW5rKTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICB9XG5cbiAgLy8gd3JpdGUgc3RyaW5ncyBpbiB1dGYtOFxuICBpZiAodHlwZW9mIGNodW5rID09PSAnc3RyaW5nJykge1xuICAgIGVuY29kaW5nID0gJ3V0ZjgnO1xuICAgIHR5cGUgPSB0aGlzLmdldCgnQ29udGVudC1UeXBlJyk7XG5cbiAgICAvLyByZWZsZWN0IHRoaXMgaW4gY29udGVudC10eXBlXG4gICAgaWYgKHR5cGVvZiB0eXBlID09PSAnc3RyaW5nJykge1xuICAgICAgdGhpcy5zZXQoJ0NvbnRlbnQtVHlwZScsIHNldENoYXJzZXQodHlwZSwgJ3V0Zi04JykpO1xuICAgIH1cbiAgfVxuXG4gIC8vIGRldGVybWluZSBpZiBFVGFnIHNob3VsZCBiZSBnZW5lcmF0ZWRcbiAgdmFyIGV0YWdGbiA9IGFwcC5nZXQoJ2V0YWcgZm4nKVxuICB2YXIgZ2VuZXJhdGVFVGFnID0gIXRoaXMuZ2V0KCdFVGFnJykgJiYgdHlwZW9mIGV0YWdGbiA9PT0gJ2Z1bmN0aW9uJ1xuXG4gIC8vIHBvcHVsYXRlIENvbnRlbnQtTGVuZ3RoXG4gIHZhciBsZW5cbiAgaWYgKGNodW5rICE9PSB1bmRlZmluZWQpIHtcbiAgICBpZiAoQnVmZmVyLmlzQnVmZmVyKGNodW5rKSkge1xuICAgICAgLy8gZ2V0IGxlbmd0aCBvZiBCdWZmZXJcbiAgICAgIGxlbiA9IGNodW5rLmxlbmd0aFxuICAgIH0gZWxzZSBpZiAoIWdlbmVyYXRlRVRhZyAmJiBjaHVuay5sZW5ndGggPCAxMDAwKSB7XG4gICAgICAvLyBqdXN0IGNhbGN1bGF0ZSBsZW5ndGggd2hlbiBubyBFVGFnICsgc21hbGwgY2h1bmtcbiAgICAgIGxlbiA9IEJ1ZmZlci5ieXRlTGVuZ3RoKGNodW5rLCBlbmNvZGluZylcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gY29udmVydCBjaHVuayB0byBCdWZmZXIgYW5kIGNhbGN1bGF0ZVxuICAgICAgY2h1bmsgPSBCdWZmZXIuZnJvbShjaHVuaywgZW5jb2RpbmcpXG4gICAgICBlbmNvZGluZyA9IHVuZGVmaW5lZDtcbiAgICAgIGxlbiA9IGNodW5rLmxlbmd0aFxuICAgIH1cblxuICAgIHRoaXMuc2V0KCdDb250ZW50LUxlbmd0aCcsIGxlbik7XG4gIH1cblxuICAvLyBwb3B1bGF0ZSBFVGFnXG4gIHZhciBldGFnO1xuICBpZiAoZ2VuZXJhdGVFVGFnICYmIGxlbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgaWYgKChldGFnID0gZXRhZ0ZuKGNodW5rLCBlbmNvZGluZykpKSB7XG4gICAgICB0aGlzLnNldCgnRVRhZycsIGV0YWcpO1xuICAgIH1cbiAgfVxuXG4gIC8vIGZyZXNobmVzc1xuICBpZiAocmVxLmZyZXNoKSB0aGlzLnN0YXR1cygzMDQpO1xuXG4gIC8vIHN0cmlwIGlycmVsZXZhbnQgaGVhZGVyc1xuICBpZiAoMjA0ID09PSB0aGlzLnN0YXR1c0NvZGUgfHwgMzA0ID09PSB0aGlzLnN0YXR1c0NvZGUpIHtcbiAgICB0aGlzLnJlbW92ZUhlYWRlcignQ29udGVudC1UeXBlJyk7XG4gICAgdGhpcy5yZW1vdmVIZWFkZXIoJ0NvbnRlbnQtTGVuZ3RoJyk7XG4gICAgdGhpcy5yZW1vdmVIZWFkZXIoJ1RyYW5zZmVyLUVuY29kaW5nJyk7XG4gICAgY2h1bmsgPSAnJztcbiAgfVxuXG4gIC8vIGFsdGVyIGhlYWRlcnMgZm9yIDIwNVxuICBpZiAodGhpcy5zdGF0dXNDb2RlID09PSAyMDUpIHtcbiAgICB0aGlzLnNldCgnQ29udGVudC1MZW5ndGgnLCAnMCcpXG4gICAgdGhpcy5yZW1vdmVIZWFkZXIoJ1RyYW5zZmVyLUVuY29kaW5nJylcbiAgICBjaHVuayA9ICcnXG4gIH1cblxuICBpZiAocmVxLm1ldGhvZCA9PT0gJ0hFQUQnKSB7XG4gICAgLy8gc2tpcCBib2R5IGZvciBIRUFEXG4gICAgdGhpcy5lbmQoKTtcbiAgfSBlbHNlIHtcbiAgICAvLyByZXNwb25kXG4gICAgdGhpcy5lbmQoY2h1bmssIGVuY29kaW5nKTtcbiAgfVxuXG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBTZW5kIEpTT04gcmVzcG9uc2UuXG4gKlxuICogRXhhbXBsZXM6XG4gKlxuICogICAgIHJlcy5qc29uKG51bGwpO1xuICogICAgIHJlcy5qc29uKHsgdXNlcjogJ3RqJyB9KTtcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ3xudW1iZXJ8Ym9vbGVhbnxvYmplY3R9IG9ialxuICogQHB1YmxpY1xuICovXG5cbnJlcy5qc29uID0gZnVuY3Rpb24ganNvbihvYmopIHtcbiAgLy8gc2V0dGluZ3NcbiAgdmFyIGFwcCA9IHRoaXMuYXBwO1xuICB2YXIgZXNjYXBlID0gYXBwLmdldCgnanNvbiBlc2NhcGUnKVxuICB2YXIgcmVwbGFjZXIgPSBhcHAuZ2V0KCdqc29uIHJlcGxhY2VyJyk7XG4gIHZhciBzcGFjZXMgPSBhcHAuZ2V0KCdqc29uIHNwYWNlcycpO1xuICB2YXIgYm9keSA9IHN0cmluZ2lmeShvYmosIHJlcGxhY2VyLCBzcGFjZXMsIGVzY2FwZSlcblxuICAvLyBjb250ZW50LXR5cGVcbiAgaWYgKCF0aGlzLmdldCgnQ29udGVudC1UeXBlJykpIHtcbiAgICB0aGlzLnNldCgnQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcbiAgfVxuXG4gIHJldHVybiB0aGlzLnNlbmQoYm9keSk7XG59O1xuXG4vKipcbiAqIFNlbmQgSlNPTiByZXNwb25zZSB3aXRoIEpTT05QIGNhbGxiYWNrIHN1cHBvcnQuXG4gKlxuICogRXhhbXBsZXM6XG4gKlxuICogICAgIHJlcy5qc29ucChudWxsKTtcbiAqICAgICByZXMuanNvbnAoeyB1c2VyOiAndGonIH0pO1xuICpcbiAqIEBwYXJhbSB7c3RyaW5nfG51bWJlcnxib29sZWFufG9iamVjdH0gb2JqXG4gKiBAcHVibGljXG4gKi9cblxucmVzLmpzb25wID0gZnVuY3Rpb24ganNvbnAob2JqKSB7XG4gIC8vIHNldHRpbmdzXG4gIHZhciBhcHAgPSB0aGlzLmFwcDtcbiAgdmFyIGVzY2FwZSA9IGFwcC5nZXQoJ2pzb24gZXNjYXBlJylcbiAgdmFyIHJlcGxhY2VyID0gYXBwLmdldCgnanNvbiByZXBsYWNlcicpO1xuICB2YXIgc3BhY2VzID0gYXBwLmdldCgnanNvbiBzcGFjZXMnKTtcbiAgdmFyIGJvZHkgPSBzdHJpbmdpZnkob2JqLCByZXBsYWNlciwgc3BhY2VzLCBlc2NhcGUpXG4gIHZhciBjYWxsYmFjayA9IHRoaXMucmVxLnF1ZXJ5W2FwcC5nZXQoJ2pzb25wIGNhbGxiYWNrIG5hbWUnKV07XG5cbiAgLy8gY29udGVudC10eXBlXG4gIGlmICghdGhpcy5nZXQoJ0NvbnRlbnQtVHlwZScpKSB7XG4gICAgdGhpcy5zZXQoJ1gtQ29udGVudC1UeXBlLU9wdGlvbnMnLCAnbm9zbmlmZicpO1xuICAgIHRoaXMuc2V0KCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xuICB9XG5cbiAgLy8gZml4dXAgY2FsbGJhY2tcbiAgaWYgKEFycmF5LmlzQXJyYXkoY2FsbGJhY2spKSB7XG4gICAgY2FsbGJhY2sgPSBjYWxsYmFja1swXTtcbiAgfVxuXG4gIC8vIGpzb25wXG4gIGlmICh0eXBlb2YgY2FsbGJhY2sgPT09ICdzdHJpbmcnICYmIGNhbGxiYWNrLmxlbmd0aCAhPT0gMCkge1xuICAgIHRoaXMuc2V0KCdYLUNvbnRlbnQtVHlwZS1PcHRpb25zJywgJ25vc25pZmYnKTtcbiAgICB0aGlzLnNldCgnQ29udGVudC1UeXBlJywgJ3RleHQvamF2YXNjcmlwdCcpO1xuXG4gICAgLy8gcmVzdHJpY3QgY2FsbGJhY2sgY2hhcnNldFxuICAgIGNhbGxiYWNrID0gY2FsbGJhY2sucmVwbGFjZSgvW15cXFtcXF1cXHckLl0vZywgJycpO1xuXG4gICAgaWYgKGJvZHkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgLy8gZW1wdHkgYXJndW1lbnRcbiAgICAgIGJvZHkgPSAnJ1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIGJvZHkgPT09ICdzdHJpbmcnKSB7XG4gICAgICAvLyByZXBsYWNlIGNoYXJzIG5vdCBhbGxvd2VkIGluIEphdmFTY3JpcHQgdGhhdCBhcmUgaW4gSlNPTlxuICAgICAgYm9keSA9IGJvZHlcbiAgICAgICAgLnJlcGxhY2UoL1xcdTIwMjgvZywgJ1xcXFx1MjAyOCcpXG4gICAgICAgIC5yZXBsYWNlKC9cXHUyMDI5L2csICdcXFxcdTIwMjknKVxuICAgIH1cblxuICAgIC8vIHRoZSAvKiovIGlzIGEgc3BlY2lmaWMgc2VjdXJpdHkgbWl0aWdhdGlvbiBmb3IgXCJSb3NldHRhIEZsYXNoIEpTT05QIGFidXNlXCJcbiAgICAvLyB0aGUgdHlwZW9mIGNoZWNrIGlzIGp1c3QgdG8gcmVkdWNlIGNsaWVudCBlcnJvciBub2lzZVxuICAgIGJvZHkgPSAnLyoqLyB0eXBlb2YgJyArIGNhbGxiYWNrICsgJyA9PT0gXFwnZnVuY3Rpb25cXCcgJiYgJyArIGNhbGxiYWNrICsgJygnICsgYm9keSArICcpOyc7XG4gIH1cblxuICByZXR1cm4gdGhpcy5zZW5kKGJvZHkpO1xufTtcblxuLyoqXG4gKiBTZW5kIGdpdmVuIEhUVFAgc3RhdHVzIGNvZGUuXG4gKlxuICogU2V0cyB0aGUgcmVzcG9uc2Ugc3RhdHVzIHRvIGBzdGF0dXNDb2RlYCBhbmQgdGhlIGJvZHkgb2YgdGhlXG4gKiByZXNwb25zZSB0byB0aGUgc3RhbmRhcmQgZGVzY3JpcHRpb24gZnJvbSBub2RlJ3MgaHR0cC5TVEFUVVNfQ09ERVNcbiAqIG9yIHRoZSBzdGF0dXNDb2RlIG51bWJlciBpZiBubyBkZXNjcmlwdGlvbi5cbiAqXG4gKiBFeGFtcGxlczpcbiAqXG4gKiAgICAgcmVzLnNlbmRTdGF0dXMoMjAwKTtcbiAqXG4gKiBAcGFyYW0ge251bWJlcn0gc3RhdHVzQ29kZVxuICogQHB1YmxpY1xuICovXG5cbnJlcy5zZW5kU3RhdHVzID0gZnVuY3Rpb24gc2VuZFN0YXR1cyhzdGF0dXNDb2RlKSB7XG4gIHZhciBib2R5ID0gc3RhdHVzZXMubWVzc2FnZVtzdGF0dXNDb2RlXSB8fCBTdHJpbmcoc3RhdHVzQ29kZSlcblxuICB0aGlzLnN0YXR1cyhzdGF0dXNDb2RlKTtcbiAgdGhpcy50eXBlKCd0eHQnKTtcblxuICByZXR1cm4gdGhpcy5zZW5kKGJvZHkpO1xufTtcblxuLyoqXG4gKiBUcmFuc2ZlciB0aGUgZmlsZSBhdCB0aGUgZ2l2ZW4gYHBhdGhgLlxuICpcbiAqIEF1dG9tYXRpY2FsbHkgc2V0cyB0aGUgX0NvbnRlbnQtVHlwZV8gcmVzcG9uc2UgaGVhZGVyIGZpZWxkLlxuICogVGhlIGNhbGxiYWNrIGBjYWxsYmFjayhlcnIpYCBpcyBpbnZva2VkIHdoZW4gdGhlIHRyYW5zZmVyIGlzIGNvbXBsZXRlXG4gKiBvciB3aGVuIGFuIGVycm9yIG9jY3Vycy4gQmUgc3VyZSB0byBjaGVjayBgcmVzLmhlYWRlcnNTZW50YFxuICogaWYgeW91IHdpc2ggdG8gYXR0ZW1wdCByZXNwb25kaW5nLCBhcyB0aGUgaGVhZGVyIGFuZCBzb21lIGRhdGFcbiAqIG1heSBoYXZlIGFscmVhZHkgYmVlbiB0cmFuc2ZlcnJlZC5cbiAqXG4gKiBPcHRpb25zOlxuICpcbiAqICAgLSBgbWF4QWdlYCAgIGRlZmF1bHRpbmcgdG8gMCAoY2FuIGJlIHN0cmluZyBjb252ZXJ0ZWQgYnkgYG1zYClcbiAqICAgLSBgcm9vdGAgICAgIHJvb3QgZGlyZWN0b3J5IGZvciByZWxhdGl2ZSBmaWxlbmFtZXNcbiAqICAgLSBgaGVhZGVyc2AgIG9iamVjdCBvZiBoZWFkZXJzIHRvIHNlcnZlIHdpdGggZmlsZVxuICogICAtIGBkb3RmaWxlc2Agc2VydmUgZG90ZmlsZXMsIGRlZmF1bHRpbmcgdG8gZmFsc2U7IGNhbiBiZSBgXCJhbGxvd1wiYCB0byBzZW5kIHRoZW1cbiAqXG4gKiBPdGhlciBvcHRpb25zIGFyZSBwYXNzZWQgYWxvbmcgdG8gYHNlbmRgLlxuICpcbiAqIEV4YW1wbGVzOlxuICpcbiAqICBUaGUgZm9sbG93aW5nIGV4YW1wbGUgaWxsdXN0cmF0ZXMgaG93IGByZXMuc2VuZEZpbGUoKWAgbWF5XG4gKiAgYmUgdXNlZCBhcyBhbiBhbHRlcm5hdGl2ZSBmb3IgdGhlIGBzdGF0aWMoKWAgbWlkZGxld2FyZSBmb3JcbiAqICBkeW5hbWljIHNpdHVhdGlvbnMuIFRoZSBjb2RlIGJhY2tpbmcgYHJlcy5zZW5kRmlsZSgpYCBpcyBhY3R1YWxseVxuICogIHRoZSBzYW1lIGNvZGUsIHNvIEhUVFAgY2FjaGUgc3VwcG9ydCBldGMgaXMgaWRlbnRpY2FsLlxuICpcbiAqICAgICBhcHAuZ2V0KCcvdXNlci86dWlkL3Bob3Rvcy86ZmlsZScsIGZ1bmN0aW9uKHJlcSwgcmVzKXtcbiAqICAgICAgIHZhciB1aWQgPSByZXEucGFyYW1zLnVpZFxuICogICAgICAgICAsIGZpbGUgPSByZXEucGFyYW1zLmZpbGU7XG4gKlxuICogICAgICAgcmVxLnVzZXIubWF5Vmlld0ZpbGVzRnJvbSh1aWQsIGZ1bmN0aW9uKHllcyl7XG4gKiAgICAgICAgIGlmICh5ZXMpIHtcbiAqICAgICAgICAgICByZXMuc2VuZEZpbGUoJy91cGxvYWRzLycgKyB1aWQgKyAnLycgKyBmaWxlKTtcbiAqICAgICAgICAgfSBlbHNlIHtcbiAqICAgICAgICAgICByZXMuc2VuZCg0MDMsICdTb3JyeSEgeW91IGNhbnQgc2VlIHRoYXQuJyk7XG4gKiAgICAgICAgIH1cbiAqICAgICAgIH0pO1xuICogICAgIH0pO1xuICpcbiAqIEBwdWJsaWNcbiAqL1xuXG5yZXMuc2VuZEZpbGUgPSBmdW5jdGlvbiBzZW5kRmlsZShwYXRoLCBvcHRpb25zLCBjYWxsYmFjaykge1xuICB2YXIgZG9uZSA9IGNhbGxiYWNrO1xuICB2YXIgcmVxID0gdGhpcy5yZXE7XG4gIHZhciByZXMgPSB0aGlzO1xuICB2YXIgbmV4dCA9IHJlcS5uZXh0O1xuICB2YXIgb3B0cyA9IG9wdGlvbnMgfHwge307XG5cbiAgaWYgKCFwYXRoKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcigncGF0aCBhcmd1bWVudCBpcyByZXF1aXJlZCB0byByZXMuc2VuZEZpbGUnKTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgcGF0aCAhPT0gJ3N0cmluZycpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdwYXRoIG11c3QgYmUgYSBzdHJpbmcgdG8gcmVzLnNlbmRGaWxlJylcbiAgfVxuXG4gIC8vIHN1cHBvcnQgZnVuY3Rpb24gYXMgc2Vjb25kIGFyZ1xuICBpZiAodHlwZW9mIG9wdGlvbnMgPT09ICdmdW5jdGlvbicpIHtcbiAgICBkb25lID0gb3B0aW9ucztcbiAgICBvcHRzID0ge307XG4gIH1cblxuICBpZiAoIW9wdHMucm9vdCAmJiAhcGF0aElzQWJzb2x1dGUocGF0aCkpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdwYXRoIG11c3QgYmUgYWJzb2x1dGUgb3Igc3BlY2lmeSByb290IHRvIHJlcy5zZW5kRmlsZScpO1xuICB9XG5cbiAgLy8gY3JlYXRlIGZpbGUgc3RyZWFtXG4gIHZhciBwYXRobmFtZSA9IGVuY29kZVVSSShwYXRoKTtcblxuICAvLyB3aXJlIGFwcGxpY2F0aW9uIGV0YWcgb3B0aW9uIHRvIHNlbmRcbiAgb3B0cy5ldGFnID0gdGhpcy5hcHAuZW5hYmxlZCgnZXRhZycpO1xuICB2YXIgZmlsZSA9IHNlbmQocmVxLCBwYXRobmFtZSwgb3B0cyk7XG5cbiAgLy8gdHJhbnNmZXJcbiAgc2VuZGZpbGUocmVzLCBmaWxlLCBvcHRzLCBmdW5jdGlvbiAoZXJyKSB7XG4gICAgaWYgKGRvbmUpIHJldHVybiBkb25lKGVycik7XG4gICAgaWYgKGVyciAmJiBlcnIuY29kZSA9PT0gJ0VJU0RJUicpIHJldHVybiBuZXh0KCk7XG5cbiAgICAvLyBuZXh0KCkgYWxsIGJ1dCB3cml0ZSBlcnJvcnNcbiAgICBpZiAoZXJyICYmIGVyci5jb2RlICE9PSAnRUNPTk5BQk9SVEVEJyAmJiBlcnIuc3lzY2FsbCAhPT0gJ3dyaXRlJykge1xuICAgICAgbmV4dChlcnIpO1xuICAgIH1cbiAgfSk7XG59O1xuXG4vKipcbiAqIFRyYW5zZmVyIHRoZSBmaWxlIGF0IHRoZSBnaXZlbiBgcGF0aGAgYXMgYW4gYXR0YWNobWVudC5cbiAqXG4gKiBPcHRpb25hbGx5IHByb3ZpZGluZyBhbiBhbHRlcm5hdGUgYXR0YWNobWVudCBgZmlsZW5hbWVgLFxuICogYW5kIG9wdGlvbmFsIGNhbGxiYWNrIGBjYWxsYmFjayhlcnIpYC4gVGhlIGNhbGxiYWNrIGlzIGludm9rZWRcbiAqIHdoZW4gdGhlIGRhdGEgdHJhbnNmZXIgaXMgY29tcGxldGUsIG9yIHdoZW4gYW4gZXJyb3IgaGFzXG4gKiBvY2N1cnJlZC4gQmUgc3VyZSB0byBjaGVjayBgcmVzLmhlYWRlcnNTZW50YCBpZiB5b3UgcGxhbiB0byByZXNwb25kLlxuICpcbiAqIE9wdGlvbmFsbHkgcHJvdmlkaW5nIGFuIGBvcHRpb25zYCBvYmplY3QgdG8gdXNlIHdpdGggYHJlcy5zZW5kRmlsZSgpYC5cbiAqIFRoaXMgZnVuY3Rpb24gd2lsbCBzZXQgdGhlIGBDb250ZW50LURpc3Bvc2l0aW9uYCBoZWFkZXIsIG92ZXJyaWRpbmdcbiAqIGFueSBgQ29udGVudC1EaXNwb3NpdGlvbmAgaGVhZGVyIHBhc3NlZCBhcyBoZWFkZXIgb3B0aW9ucyBpbiBvcmRlclxuICogdG8gc2V0IHRoZSBhdHRhY2htZW50IGFuZCBmaWxlbmFtZS5cbiAqXG4gKiBUaGlzIG1ldGhvZCB1c2VzIGByZXMuc2VuZEZpbGUoKWAuXG4gKlxuICogQHB1YmxpY1xuICovXG5cbnJlcy5kb3dubG9hZCA9IGZ1bmN0aW9uIGRvd25sb2FkIChwYXRoLCBmaWxlbmFtZSwgb3B0aW9ucywgY2FsbGJhY2spIHtcbiAgdmFyIGRvbmUgPSBjYWxsYmFjaztcbiAgdmFyIG5hbWUgPSBmaWxlbmFtZTtcbiAgdmFyIG9wdHMgPSBvcHRpb25zIHx8IG51bGxcblxuICAvLyBzdXBwb3J0IGZ1bmN0aW9uIGFzIHNlY29uZCBvciB0aGlyZCBhcmdcbiAgaWYgKHR5cGVvZiBmaWxlbmFtZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGRvbmUgPSBmaWxlbmFtZTtcbiAgICBuYW1lID0gbnVsbDtcbiAgICBvcHRzID0gbnVsbFxuICB9IGVsc2UgaWYgKHR5cGVvZiBvcHRpb25zID09PSAnZnVuY3Rpb24nKSB7XG4gICAgZG9uZSA9IG9wdGlvbnNcbiAgICBvcHRzID0gbnVsbFxuICB9XG5cbiAgLy8gc3VwcG9ydCBvcHRpb25hbCBmaWxlbmFtZSwgd2hlcmUgb3B0aW9ucyBtYXkgYmUgaW4gaXQncyBwbGFjZVxuICBpZiAodHlwZW9mIGZpbGVuYW1lID09PSAnb2JqZWN0JyAmJlxuICAgICh0eXBlb2Ygb3B0aW9ucyA9PT0gJ2Z1bmN0aW9uJyB8fCBvcHRpb25zID09PSB1bmRlZmluZWQpKSB7XG4gICAgbmFtZSA9IG51bGxcbiAgICBvcHRzID0gZmlsZW5hbWVcbiAgfVxuXG4gIC8vIHNldCBDb250ZW50LURpc3Bvc2l0aW9uIHdoZW4gZmlsZSBpcyBzZW50XG4gIHZhciBoZWFkZXJzID0ge1xuICAgICdDb250ZW50LURpc3Bvc2l0aW9uJzogY29udGVudERpc3Bvc2l0aW9uKG5hbWUgfHwgcGF0aClcbiAgfTtcblxuICAvLyBtZXJnZSB1c2VyLXByb3ZpZGVkIGhlYWRlcnNcbiAgaWYgKG9wdHMgJiYgb3B0cy5oZWFkZXJzKSB7XG4gICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhvcHRzLmhlYWRlcnMpXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIga2V5ID0ga2V5c1tpXVxuICAgICAgaWYgKGtleS50b0xvd2VyQ2FzZSgpICE9PSAnY29udGVudC1kaXNwb3NpdGlvbicpIHtcbiAgICAgICAgaGVhZGVyc1trZXldID0gb3B0cy5oZWFkZXJzW2tleV1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBtZXJnZSB1c2VyLXByb3ZpZGVkIG9wdGlvbnNcbiAgb3B0cyA9IE9iamVjdC5jcmVhdGUob3B0cylcbiAgb3B0cy5oZWFkZXJzID0gaGVhZGVyc1xuXG4gIC8vIFJlc29sdmUgdGhlIGZ1bGwgcGF0aCBmb3Igc2VuZEZpbGVcbiAgdmFyIGZ1bGxQYXRoID0gIW9wdHMucm9vdFxuICAgID8gcmVzb2x2ZShwYXRoKVxuICAgIDogcGF0aFxuXG4gIC8vIHNlbmQgZmlsZVxuICByZXR1cm4gdGhpcy5zZW5kRmlsZShmdWxsUGF0aCwgb3B0cywgZG9uZSlcbn07XG5cbi8qKlxuICogU2V0IF9Db250ZW50LVR5cGVfIHJlc3BvbnNlIGhlYWRlciB3aXRoIGB0eXBlYCB0aHJvdWdoIGBtaW1lLmNvbnRlbnRUeXBlKClgXG4gKiB3aGVuIGl0IGRvZXMgbm90IGNvbnRhaW4gXCIvXCIsIG9yIHNldCB0aGUgQ29udGVudC1UeXBlIHRvIGB0eXBlYCBvdGhlcndpc2UuXG4gKiBXaGVuIG5vIG1hcHBpbmcgaXMgZm91bmQgdGhvdWdoIGBtaW1lLmNvbnRlbnRUeXBlKClgLCB0aGUgdHlwZSBpcyBzZXQgdG9cbiAqIFwiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtXCIuXG4gKlxuICogRXhhbXBsZXM6XG4gKlxuICogICAgIHJlcy50eXBlKCcuaHRtbCcpO1xuICogICAgIHJlcy50eXBlKCdodG1sJyk7XG4gKiAgICAgcmVzLnR5cGUoJ2pzb24nKTtcbiAqICAgICByZXMudHlwZSgnYXBwbGljYXRpb24vanNvbicpO1xuICogICAgIHJlcy50eXBlKCdwbmcnKTtcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gdHlwZVxuICogQHJldHVybiB7U2VydmVyUmVzcG9uc2V9IGZvciBjaGFpbmluZ1xuICogQHB1YmxpY1xuICovXG5cbnJlcy5jb250ZW50VHlwZSA9XG5yZXMudHlwZSA9IGZ1bmN0aW9uIGNvbnRlbnRUeXBlKHR5cGUpIHtcbiAgdmFyIGN0ID0gdHlwZS5pbmRleE9mKCcvJykgPT09IC0xXG4gICAgPyAobWltZS5jb250ZW50VHlwZSh0eXBlKSB8fCAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJylcbiAgICA6IHR5cGU7XG5cbiAgcmV0dXJuIHRoaXMuc2V0KCdDb250ZW50LVR5cGUnLCBjdCk7XG59O1xuXG4vKipcbiAqIFJlc3BvbmQgdG8gdGhlIEFjY2VwdGFibGUgZm9ybWF0cyB1c2luZyBhbiBgb2JqYFxuICogb2YgbWltZS10eXBlIGNhbGxiYWNrcy5cbiAqXG4gKiBUaGlzIG1ldGhvZCB1c2VzIGByZXEuYWNjZXB0ZWRgLCBhbiBhcnJheSBvZlxuICogYWNjZXB0YWJsZSB0eXBlcyBvcmRlcmVkIGJ5IHRoZWlyIHF1YWxpdHkgdmFsdWVzLlxuICogV2hlbiBcIkFjY2VwdFwiIGlzIG5vdCBwcmVzZW50IHRoZSBfZmlyc3RfIGNhbGxiYWNrXG4gKiBpcyBpbnZva2VkLCBvdGhlcndpc2UgdGhlIGZpcnN0IG1hdGNoIGlzIHVzZWQuIFdoZW5cbiAqIG5vIG1hdGNoIGlzIHBlcmZvcm1lZCB0aGUgc2VydmVyIHJlc3BvbmRzIHdpdGhcbiAqIDQwNiBcIk5vdCBBY2NlcHRhYmxlXCIuXG4gKlxuICogQ29udGVudC1UeXBlIGlzIHNldCBmb3IgeW91LCBob3dldmVyIGlmIHlvdSBjaG9vc2VcbiAqIHlvdSBtYXkgYWx0ZXIgdGhpcyB3aXRoaW4gdGhlIGNhbGxiYWNrIHVzaW5nIGByZXMudHlwZSgpYFxuICogb3IgYHJlcy5zZXQoJ0NvbnRlbnQtVHlwZScsIC4uLilgLlxuICpcbiAqICAgIHJlcy5mb3JtYXQoe1xuICogICAgICAndGV4dC9wbGFpbic6IGZ1bmN0aW9uKCl7XG4gKiAgICAgICAgcmVzLnNlbmQoJ2hleScpO1xuICogICAgICB9LFxuICpcbiAqICAgICAgJ3RleHQvaHRtbCc6IGZ1bmN0aW9uKCl7XG4gKiAgICAgICAgcmVzLnNlbmQoJzxwPmhleTwvcD4nKTtcbiAqICAgICAgfSxcbiAqXG4gKiAgICAgICdhcHBsaWNhdGlvbi9qc29uJzogZnVuY3Rpb24gKCkge1xuICogICAgICAgIHJlcy5zZW5kKHsgbWVzc2FnZTogJ2hleScgfSk7XG4gKiAgICAgIH1cbiAqICAgIH0pO1xuICpcbiAqIEluIGFkZGl0aW9uIHRvIGNhbm9uaWNhbGl6ZWQgTUlNRSB0eXBlcyB5b3UgbWF5XG4gKiBhbHNvIHVzZSBleHRuYW1lcyBtYXBwZWQgdG8gdGhlc2UgdHlwZXM6XG4gKlxuICogICAgcmVzLmZvcm1hdCh7XG4gKiAgICAgIHRleHQ6IGZ1bmN0aW9uKCl7XG4gKiAgICAgICAgcmVzLnNlbmQoJ2hleScpO1xuICogICAgICB9LFxuICpcbiAqICAgICAgaHRtbDogZnVuY3Rpb24oKXtcbiAqICAgICAgICByZXMuc2VuZCgnPHA+aGV5PC9wPicpO1xuICogICAgICB9LFxuICpcbiAqICAgICAganNvbjogZnVuY3Rpb24oKXtcbiAqICAgICAgICByZXMuc2VuZCh7IG1lc3NhZ2U6ICdoZXknIH0pO1xuICogICAgICB9XG4gKiAgICB9KTtcbiAqXG4gKiBCeSBkZWZhdWx0IEV4cHJlc3MgcGFzc2VzIGFuIGBFcnJvcmBcbiAqIHdpdGggYSBgLnN0YXR1c2Agb2YgNDA2IHRvIGBuZXh0KGVycilgXG4gKiBpZiBhIG1hdGNoIGlzIG5vdCBtYWRlLiBJZiB5b3UgcHJvdmlkZVxuICogYSBgLmRlZmF1bHRgIGNhbGxiYWNrIGl0IHdpbGwgYmUgaW52b2tlZFxuICogaW5zdGVhZC5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqXG4gKiBAcmV0dXJuIHtTZXJ2ZXJSZXNwb25zZX0gZm9yIGNoYWluaW5nXG4gKiBAcHVibGljXG4gKi9cblxucmVzLmZvcm1hdCA9IGZ1bmN0aW9uKG9iail7XG4gIHZhciByZXEgPSB0aGlzLnJlcTtcbiAgdmFyIG5leHQgPSByZXEubmV4dDtcblxuICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKG9iailcbiAgICAuZmlsdGVyKGZ1bmN0aW9uICh2KSB7IHJldHVybiB2ICE9PSAnZGVmYXVsdCcgfSlcblxuICB2YXIga2V5ID0ga2V5cy5sZW5ndGggPiAwXG4gICAgPyByZXEuYWNjZXB0cyhrZXlzKVxuICAgIDogZmFsc2U7XG5cbiAgdGhpcy52YXJ5KFwiQWNjZXB0XCIpO1xuXG4gIGlmIChrZXkpIHtcbiAgICB0aGlzLnNldCgnQ29udGVudC1UeXBlJywgbm9ybWFsaXplVHlwZShrZXkpLnZhbHVlKTtcbiAgICBvYmpba2V5XShyZXEsIHRoaXMsIG5leHQpO1xuICB9IGVsc2UgaWYgKG9iai5kZWZhdWx0KSB7XG4gICAgb2JqLmRlZmF1bHQocmVxLCB0aGlzLCBuZXh0KVxuICB9IGVsc2Uge1xuICAgIG5leHQoY3JlYXRlRXJyb3IoNDA2LCB7XG4gICAgICB0eXBlczogbm9ybWFsaXplVHlwZXMoa2V5cykubWFwKGZ1bmN0aW9uIChvKSB7IHJldHVybiBvLnZhbHVlIH0pXG4gICAgfSkpXG4gIH1cblxuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogU2V0IF9Db250ZW50LURpc3Bvc2l0aW9uXyBoZWFkZXIgdG8gX2F0dGFjaG1lbnRfIHdpdGggb3B0aW9uYWwgYGZpbGVuYW1lYC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gZmlsZW5hbWVcbiAqIEByZXR1cm4ge1NlcnZlclJlc3BvbnNlfVxuICogQHB1YmxpY1xuICovXG5cbnJlcy5hdHRhY2htZW50ID0gZnVuY3Rpb24gYXR0YWNobWVudChmaWxlbmFtZSkge1xuICBpZiAoZmlsZW5hbWUpIHtcbiAgICB0aGlzLnR5cGUoZXh0bmFtZShmaWxlbmFtZSkpO1xuICB9XG5cbiAgdGhpcy5zZXQoJ0NvbnRlbnQtRGlzcG9zaXRpb24nLCBjb250ZW50RGlzcG9zaXRpb24oZmlsZW5hbWUpKTtcblxuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogQXBwZW5kIGFkZGl0aW9uYWwgaGVhZGVyIGBmaWVsZGAgd2l0aCB2YWx1ZSBgdmFsYC5cbiAqXG4gKiBFeGFtcGxlOlxuICpcbiAqICAgIHJlcy5hcHBlbmQoJ0xpbmsnLCBbJzxodHRwOi8vbG9jYWxob3N0Lz4nLCAnPGh0dHA6Ly9sb2NhbGhvc3Q6MzAwMC8+J10pO1xuICogICAgcmVzLmFwcGVuZCgnU2V0LUNvb2tpZScsICdmb289YmFyOyBQYXRoPS87IEh0dHBPbmx5Jyk7XG4gKiAgICByZXMuYXBwZW5kKCdXYXJuaW5nJywgJzE5OSBNaXNjZWxsYW5lb3VzIHdhcm5pbmcnKTtcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gZmllbGRcbiAqIEBwYXJhbSB7U3RyaW5nfEFycmF5fSB2YWxcbiAqIEByZXR1cm4ge1NlcnZlclJlc3BvbnNlfSBmb3IgY2hhaW5pbmdcbiAqIEBwdWJsaWNcbiAqL1xuXG5yZXMuYXBwZW5kID0gZnVuY3Rpb24gYXBwZW5kKGZpZWxkLCB2YWwpIHtcbiAgdmFyIHByZXYgPSB0aGlzLmdldChmaWVsZCk7XG4gIHZhciB2YWx1ZSA9IHZhbDtcblxuICBpZiAocHJldikge1xuICAgIC8vIGNvbmNhdCB0aGUgbmV3IGFuZCBwcmV2IHZhbHNcbiAgICB2YWx1ZSA9IEFycmF5LmlzQXJyYXkocHJldikgPyBwcmV2LmNvbmNhdCh2YWwpXG4gICAgICA6IEFycmF5LmlzQXJyYXkodmFsKSA/IFtwcmV2XS5jb25jYXQodmFsKVxuICAgICAgICA6IFtwcmV2LCB2YWxdXG4gIH1cblxuICByZXR1cm4gdGhpcy5zZXQoZmllbGQsIHZhbHVlKTtcbn07XG5cbi8qKlxuICogU2V0IGhlYWRlciBgZmllbGRgIHRvIGB2YWxgLCBvciBwYXNzXG4gKiBhbiBvYmplY3Qgb2YgaGVhZGVyIGZpZWxkcy5cbiAqXG4gKiBFeGFtcGxlczpcbiAqXG4gKiAgICByZXMuc2V0KCdGb28nLCBbJ2JhcicsICdiYXonXSk7XG4gKiAgICByZXMuc2V0KCdBY2NlcHQnLCAnYXBwbGljYXRpb24vanNvbicpO1xuICogICAgcmVzLnNldCh7IEFjY2VwdDogJ3RleHQvcGxhaW4nLCAnWC1BUEktS2V5JzogJ3RvYmknIH0pO1xuICpcbiAqIEFsaWFzZWQgYXMgYHJlcy5oZWFkZXIoKWAuXG4gKlxuICogV2hlbiB0aGUgc2V0IGhlYWRlciBpcyBcIkNvbnRlbnQtVHlwZVwiLCB0aGUgdHlwZSBpcyBleHBhbmRlZCB0byBpbmNsdWRlXG4gKiB0aGUgY2hhcnNldCBpZiBub3QgcHJlc2VudCB1c2luZyBgbWltZS5jb250ZW50VHlwZSgpYC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ3xPYmplY3R9IGZpZWxkXG4gKiBAcGFyYW0ge1N0cmluZ3xBcnJheX0gdmFsXG4gKiBAcmV0dXJuIHtTZXJ2ZXJSZXNwb25zZX0gZm9yIGNoYWluaW5nXG4gKiBAcHVibGljXG4gKi9cblxucmVzLnNldCA9XG5yZXMuaGVhZGVyID0gZnVuY3Rpb24gaGVhZGVyKGZpZWxkLCB2YWwpIHtcbiAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDIpIHtcbiAgICB2YXIgdmFsdWUgPSBBcnJheS5pc0FycmF5KHZhbClcbiAgICAgID8gdmFsLm1hcChTdHJpbmcpXG4gICAgICA6IFN0cmluZyh2YWwpO1xuXG4gICAgLy8gYWRkIGNoYXJzZXQgdG8gY29udGVudC10eXBlXG4gICAgaWYgKGZpZWxkLnRvTG93ZXJDYXNlKCkgPT09ICdjb250ZW50LXR5cGUnKSB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignQ29udGVudC1UeXBlIGNhbm5vdCBiZSBzZXQgdG8gYW4gQXJyYXknKTtcbiAgICAgIH1cbiAgICAgIHZhbHVlID0gbWltZS5jb250ZW50VHlwZSh2YWx1ZSlcbiAgICB9XG5cbiAgICB0aGlzLnNldEhlYWRlcihmaWVsZCwgdmFsdWUpO1xuICB9IGVsc2Uge1xuICAgIGZvciAodmFyIGtleSBpbiBmaWVsZCkge1xuICAgICAgdGhpcy5zZXQoa2V5LCBmaWVsZFtrZXldKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIEdldCB2YWx1ZSBmb3IgaGVhZGVyIGBmaWVsZGAuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGZpZWxkXG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKiBAcHVibGljXG4gKi9cblxucmVzLmdldCA9IGZ1bmN0aW9uKGZpZWxkKXtcbiAgcmV0dXJuIHRoaXMuZ2V0SGVhZGVyKGZpZWxkKTtcbn07XG5cbi8qKlxuICogQ2xlYXIgY29va2llIGBuYW1lYC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gbmFtZVxuICogQHBhcmFtIHtPYmplY3R9IFtvcHRpb25zXVxuICogQHJldHVybiB7U2VydmVyUmVzcG9uc2V9IGZvciBjaGFpbmluZ1xuICogQHB1YmxpY1xuICovXG5cbnJlcy5jbGVhckNvb2tpZSA9IGZ1bmN0aW9uIGNsZWFyQ29va2llKG5hbWUsIG9wdGlvbnMpIHtcbiAgLy8gRm9yY2UgY29va2llIGV4cGlyYXRpb24gYnkgc2V0dGluZyBleHBpcmVzIHRvIHRoZSBwYXN0XG4gIGNvbnN0IG9wdHMgPSB7IHBhdGg6ICcvJywgLi4ub3B0aW9ucywgZXhwaXJlczogbmV3IERhdGUoMSl9O1xuICAvLyBlbnN1cmUgbWF4QWdlIGlzIG5vdCBwYXNzZWRcbiAgZGVsZXRlIG9wdHMubWF4QWdlXG5cbiAgcmV0dXJuIHRoaXMuY29va2llKG5hbWUsICcnLCBvcHRzKTtcbn07XG5cbi8qKlxuICogU2V0IGNvb2tpZSBgbmFtZWAgdG8gYHZhbHVlYCwgd2l0aCB0aGUgZ2l2ZW4gYG9wdGlvbnNgLlxuICpcbiAqIE9wdGlvbnM6XG4gKlxuICogICAgLSBgbWF4QWdlYCAgIG1heC1hZ2UgaW4gbWlsbGlzZWNvbmRzLCBjb252ZXJ0ZWQgdG8gYGV4cGlyZXNgXG4gKiAgICAtIGBzaWduZWRgICAgc2lnbiB0aGUgY29va2llXG4gKiAgICAtIGBwYXRoYCAgICAgZGVmYXVsdHMgdG8gXCIvXCJcbiAqXG4gKiBFeGFtcGxlczpcbiAqXG4gKiAgICAvLyBcIlJlbWVtYmVyIE1lXCIgZm9yIDE1IG1pbnV0ZXNcbiAqICAgIHJlcy5jb29raWUoJ3JlbWVtYmVybWUnLCAnMScsIHsgZXhwaXJlczogbmV3IERhdGUoRGF0ZS5ub3coKSArIDkwMDAwMCksIGh0dHBPbmx5OiB0cnVlIH0pO1xuICpcbiAqICAgIC8vIHNhbWUgYXMgYWJvdmVcbiAqICAgIHJlcy5jb29raWUoJ3JlbWVtYmVybWUnLCAnMScsIHsgbWF4QWdlOiA5MDAwMDAsIGh0dHBPbmx5OiB0cnVlIH0pXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IG5hbWVcbiAqIEBwYXJhbSB7U3RyaW5nfE9iamVjdH0gdmFsdWVcbiAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0aW9uc11cbiAqIEByZXR1cm4ge1NlcnZlclJlc3BvbnNlfSBmb3IgY2hhaW5pbmdcbiAqIEBwdWJsaWNcbiAqL1xuXG5yZXMuY29va2llID0gZnVuY3Rpb24gKG5hbWUsIHZhbHVlLCBvcHRpb25zKSB7XG4gIHZhciBvcHRzID0geyAuLi5vcHRpb25zIH07XG4gIHZhciBzZWNyZXQgPSB0aGlzLnJlcS5zZWNyZXQ7XG4gIHZhciBzaWduZWQgPSBvcHRzLnNpZ25lZDtcblxuICBpZiAoc2lnbmVkICYmICFzZWNyZXQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2Nvb2tpZVBhcnNlcihcInNlY3JldFwiKSByZXF1aXJlZCBmb3Igc2lnbmVkIGNvb2tpZXMnKTtcbiAgfVxuXG4gIHZhciB2YWwgPSB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnXG4gICAgPyAnajonICsgSlNPTi5zdHJpbmdpZnkodmFsdWUpXG4gICAgOiBTdHJpbmcodmFsdWUpO1xuXG4gIGlmIChzaWduZWQpIHtcbiAgICB2YWwgPSAnczonICsgc2lnbih2YWwsIHNlY3JldCk7XG4gIH1cblxuICBpZiAob3B0cy5tYXhBZ2UgIT0gbnVsbCkge1xuICAgIHZhciBtYXhBZ2UgPSBvcHRzLm1heEFnZSAtIDBcblxuICAgIGlmICghaXNOYU4obWF4QWdlKSkge1xuICAgICAgb3B0cy5leHBpcmVzID0gbmV3IERhdGUoRGF0ZS5ub3coKSArIG1heEFnZSlcbiAgICAgIG9wdHMubWF4QWdlID0gTWF0aC5mbG9vcihtYXhBZ2UgLyAxMDAwKVxuICAgIH1cbiAgfVxuXG4gIGlmIChvcHRzLnBhdGggPT0gbnVsbCkge1xuICAgIG9wdHMucGF0aCA9ICcvJztcbiAgfVxuXG4gIHRoaXMuYXBwZW5kKCdTZXQtQ29va2llJywgY29va2llLnNlcmlhbGl6ZShuYW1lLCBTdHJpbmcodmFsKSwgb3B0cykpO1xuXG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBTZXQgdGhlIGxvY2F0aW9uIGhlYWRlciB0byBgdXJsYC5cbiAqXG4gKiBUaGUgZ2l2ZW4gYHVybGAgY2FuIGFsc28gYmUgXCJiYWNrXCIsIHdoaWNoIHJlZGlyZWN0c1xuICogdG8gdGhlIF9SZWZlcnJlcl8gb3IgX1JlZmVyZXJfIGhlYWRlcnMgb3IgXCIvXCIuXG4gKlxuICogRXhhbXBsZXM6XG4gKlxuICogICAgcmVzLmxvY2F0aW9uKCcvZm9vL2JhcicpLjtcbiAqICAgIHJlcy5sb2NhdGlvbignaHR0cDovL2V4YW1wbGUuY29tJyk7XG4gKiAgICByZXMubG9jYXRpb24oJy4uL2xvZ2luJyk7XG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHVybFxuICogQHJldHVybiB7U2VydmVyUmVzcG9uc2V9IGZvciBjaGFpbmluZ1xuICogQHB1YmxpY1xuICovXG5cbnJlcy5sb2NhdGlvbiA9IGZ1bmN0aW9uIGxvY2F0aW9uKHVybCkge1xuICByZXR1cm4gdGhpcy5zZXQoJ0xvY2F0aW9uJywgZW5jb2RlVXJsKHVybCkpO1xufTtcblxuLyoqXG4gKiBSZWRpcmVjdCB0byB0aGUgZ2l2ZW4gYHVybGAgd2l0aCBvcHRpb25hbCByZXNwb25zZSBgc3RhdHVzYFxuICogZGVmYXVsdGluZyB0byAzMDIuXG4gKlxuICogRXhhbXBsZXM6XG4gKlxuICogICAgcmVzLnJlZGlyZWN0KCcvZm9vL2JhcicpO1xuICogICAgcmVzLnJlZGlyZWN0KCdodHRwOi8vZXhhbXBsZS5jb20nKTtcbiAqICAgIHJlcy5yZWRpcmVjdCgzMDEsICdodHRwOi8vZXhhbXBsZS5jb20nKTtcbiAqICAgIHJlcy5yZWRpcmVjdCgnLi4vbG9naW4nKTsgLy8gL2Jsb2cvcG9zdC8xIC0+IC9ibG9nL2xvZ2luXG4gKlxuICogQHB1YmxpY1xuICovXG5cbnJlcy5yZWRpcmVjdCA9IGZ1bmN0aW9uIHJlZGlyZWN0KHVybCkge1xuICB2YXIgYWRkcmVzcyA9IHVybDtcbiAgdmFyIGJvZHk7XG4gIHZhciBzdGF0dXMgPSAzMDI7XG5cbiAgLy8gYWxsb3cgc3RhdHVzIC8gdXJsXG4gIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAyKSB7XG4gICAgc3RhdHVzID0gYXJndW1lbnRzWzBdXG4gICAgYWRkcmVzcyA9IGFyZ3VtZW50c1sxXVxuICB9XG5cbiAgLy8gU2V0IGxvY2F0aW9uIGhlYWRlclxuICBhZGRyZXNzID0gdGhpcy5sb2NhdGlvbihhZGRyZXNzKS5nZXQoJ0xvY2F0aW9uJyk7XG5cbiAgLy8gU3VwcG9ydCB0ZXh0L3twbGFpbixodG1sfSBieSBkZWZhdWx0XG4gIHRoaXMuZm9ybWF0KHtcbiAgICB0ZXh0OiBmdW5jdGlvbigpe1xuICAgICAgYm9keSA9IHN0YXR1c2VzLm1lc3NhZ2Vbc3RhdHVzXSArICcuIFJlZGlyZWN0aW5nIHRvICcgKyBhZGRyZXNzXG4gICAgfSxcblxuICAgIGh0bWw6IGZ1bmN0aW9uKCl7XG4gICAgICB2YXIgdSA9IGVzY2FwZUh0bWwoYWRkcmVzcyk7XG4gICAgICBib2R5ID0gJzxwPicgKyBzdGF0dXNlcy5tZXNzYWdlW3N0YXR1c10gKyAnLiBSZWRpcmVjdGluZyB0byAnICsgdSArICc8L3A+J1xuICAgIH0sXG5cbiAgICBkZWZhdWx0OiBmdW5jdGlvbigpe1xuICAgICAgYm9keSA9ICcnO1xuICAgIH1cbiAgfSk7XG5cbiAgLy8gUmVzcG9uZFxuICB0aGlzLnN0YXR1cyhzdGF0dXMpO1xuICB0aGlzLnNldCgnQ29udGVudC1MZW5ndGgnLCBCdWZmZXIuYnl0ZUxlbmd0aChib2R5KSk7XG5cbiAgaWYgKHRoaXMucmVxLm1ldGhvZCA9PT0gJ0hFQUQnKSB7XG4gICAgdGhpcy5lbmQoKTtcbiAgfSBlbHNlIHtcbiAgICB0aGlzLmVuZChib2R5KTtcbiAgfVxufTtcblxuLyoqXG4gKiBBZGQgYGZpZWxkYCB0byBWYXJ5LiBJZiBhbHJlYWR5IHByZXNlbnQgaW4gdGhlIFZhcnkgc2V0LCB0aGVuXG4gKiB0aGlzIGNhbGwgaXMgc2ltcGx5IGlnbm9yZWQuXG4gKlxuICogQHBhcmFtIHtBcnJheXxTdHJpbmd9IGZpZWxkXG4gKiBAcmV0dXJuIHtTZXJ2ZXJSZXNwb25zZX0gZm9yIGNoYWluaW5nXG4gKiBAcHVibGljXG4gKi9cblxucmVzLnZhcnkgPSBmdW5jdGlvbihmaWVsZCl7XG4gIHZhcnkodGhpcywgZmllbGQpO1xuXG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBSZW5kZXIgYHZpZXdgIHdpdGggdGhlIGdpdmVuIGBvcHRpb25zYCBhbmQgb3B0aW9uYWwgY2FsbGJhY2sgYGZuYC5cbiAqIFdoZW4gYSBjYWxsYmFjayBmdW5jdGlvbiBpcyBnaXZlbiBhIHJlc3BvbnNlIHdpbGwgX25vdF8gYmUgbWFkZVxuICogYXV0b21hdGljYWxseSwgb3RoZXJ3aXNlIGEgcmVzcG9uc2Ugb2YgXzIwMF8gYW5kIF90ZXh0L2h0bWxfIGlzIGdpdmVuLlxuICpcbiAqIE9wdGlvbnM6XG4gKlxuICogIC0gYGNhY2hlYCAgICAgYm9vbGVhbiBoaW50aW5nIHRvIHRoZSBlbmdpbmUgaXQgc2hvdWxkIGNhY2hlXG4gKiAgLSBgZmlsZW5hbWVgICBmaWxlbmFtZSBvZiB0aGUgdmlldyBiZWluZyByZW5kZXJlZFxuICpcbiAqIEBwdWJsaWNcbiAqL1xuXG5yZXMucmVuZGVyID0gZnVuY3Rpb24gcmVuZGVyKHZpZXcsIG9wdGlvbnMsIGNhbGxiYWNrKSB7XG4gIHZhciBhcHAgPSB0aGlzLnJlcS5hcHA7XG4gIHZhciBkb25lID0gY2FsbGJhY2s7XG4gIHZhciBvcHRzID0gb3B0aW9ucyB8fCB7fTtcbiAgdmFyIHJlcSA9IHRoaXMucmVxO1xuICB2YXIgc2VsZiA9IHRoaXM7XG5cbiAgLy8gc3VwcG9ydCBjYWxsYmFjayBmdW5jdGlvbiBhcyBzZWNvbmQgYXJnXG4gIGlmICh0eXBlb2Ygb3B0aW9ucyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGRvbmUgPSBvcHRpb25zO1xuICAgIG9wdHMgPSB7fTtcbiAgfVxuXG4gIC8vIG1lcmdlIHJlcy5sb2NhbHNcbiAgb3B0cy5fbG9jYWxzID0gc2VsZi5sb2NhbHM7XG5cbiAgLy8gZGVmYXVsdCBjYWxsYmFjayB0byByZXNwb25kXG4gIGRvbmUgPSBkb25lIHx8IGZ1bmN0aW9uIChlcnIsIHN0cikge1xuICAgIGlmIChlcnIpIHJldHVybiByZXEubmV4dChlcnIpO1xuICAgIHNlbGYuc2VuZChzdHIpO1xuICB9O1xuXG4gIC8vIHJlbmRlclxuICBhcHAucmVuZGVyKHZpZXcsIG9wdHMsIGRvbmUpO1xufTtcblxuLy8gcGlwZSB0aGUgc2VuZCBmaWxlIHN0cmVhbVxuZnVuY3Rpb24gc2VuZGZpbGUocmVzLCBmaWxlLCBvcHRpb25zLCBjYWxsYmFjaykge1xuICB2YXIgZG9uZSA9IGZhbHNlO1xuICB2YXIgc3RyZWFtaW5nO1xuXG4gIC8vIHJlcXVlc3QgYWJvcnRlZFxuICBmdW5jdGlvbiBvbmFib3J0ZWQoKSB7XG4gICAgaWYgKGRvbmUpIHJldHVybjtcbiAgICBkb25lID0gdHJ1ZTtcblxuICAgIHZhciBlcnIgPSBuZXcgRXJyb3IoJ1JlcXVlc3QgYWJvcnRlZCcpO1xuICAgIGVyci5jb2RlID0gJ0VDT05OQUJPUlRFRCc7XG4gICAgY2FsbGJhY2soZXJyKTtcbiAgfVxuXG4gIC8vIGRpcmVjdG9yeVxuICBmdW5jdGlvbiBvbmRpcmVjdG9yeSgpIHtcbiAgICBpZiAoZG9uZSkgcmV0dXJuO1xuICAgIGRvbmUgPSB0cnVlO1xuXG4gICAgdmFyIGVyciA9IG5ldyBFcnJvcignRUlTRElSLCByZWFkJyk7XG4gICAgZXJyLmNvZGUgPSAnRUlTRElSJztcbiAgICBjYWxsYmFjayhlcnIpO1xuICB9XG5cbiAgLy8gZXJyb3JzXG4gIGZ1bmN0aW9uIG9uZXJyb3IoZXJyKSB7XG4gICAgaWYgKGRvbmUpIHJldHVybjtcbiAgICBkb25lID0gdHJ1ZTtcbiAgICBjYWxsYmFjayhlcnIpO1xuICB9XG5cbiAgLy8gZW5kZWRcbiAgZnVuY3Rpb24gb25lbmQoKSB7XG4gICAgaWYgKGRvbmUpIHJldHVybjtcbiAgICBkb25lID0gdHJ1ZTtcbiAgICBjYWxsYmFjaygpO1xuICB9XG5cbiAgLy8gZmlsZVxuICBmdW5jdGlvbiBvbmZpbGUoKSB7XG4gICAgc3RyZWFtaW5nID0gZmFsc2U7XG4gIH1cblxuICAvLyBmaW5pc2hlZFxuICBmdW5jdGlvbiBvbmZpbmlzaChlcnIpIHtcbiAgICBpZiAoZXJyICYmIGVyci5jb2RlID09PSAnRUNPTk5SRVNFVCcpIHJldHVybiBvbmFib3J0ZWQoKTtcbiAgICBpZiAoZXJyKSByZXR1cm4gb25lcnJvcihlcnIpO1xuICAgIGlmIChkb25lKSByZXR1cm47XG5cbiAgICBzZXRJbW1lZGlhdGUoZnVuY3Rpb24gKCkge1xuICAgICAgaWYgKHN0cmVhbWluZyAhPT0gZmFsc2UgJiYgIWRvbmUpIHtcbiAgICAgICAgb25hYm9ydGVkKCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKGRvbmUpIHJldHVybjtcbiAgICAgIGRvbmUgPSB0cnVlO1xuICAgICAgY2FsbGJhY2soKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIHN0cmVhbWluZ1xuICBmdW5jdGlvbiBvbnN0cmVhbSgpIHtcbiAgICBzdHJlYW1pbmcgPSB0cnVlO1xuICB9XG5cbiAgZmlsZS5vbignZGlyZWN0b3J5Jywgb25kaXJlY3RvcnkpO1xuICBmaWxlLm9uKCdlbmQnLCBvbmVuZCk7XG4gIGZpbGUub24oJ2Vycm9yJywgb25lcnJvcik7XG4gIGZpbGUub24oJ2ZpbGUnLCBvbmZpbGUpO1xuICBmaWxlLm9uKCdzdHJlYW0nLCBvbnN0cmVhbSk7XG4gIG9uRmluaXNoZWQocmVzLCBvbmZpbmlzaCk7XG5cbiAgaWYgKG9wdGlvbnMuaGVhZGVycykge1xuICAgIC8vIHNldCBoZWFkZXJzIG9uIHN1Y2Nlc3NmdWwgdHJhbnNmZXJcbiAgICBmaWxlLm9uKCdoZWFkZXJzJywgZnVuY3Rpb24gaGVhZGVycyhyZXMpIHtcbiAgICAgIHZhciBvYmogPSBvcHRpb25zLmhlYWRlcnM7XG4gICAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKG9iaik7XG5cbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgayA9IGtleXNbaV07XG4gICAgICAgIHJlcy5zZXRIZWFkZXIoaywgb2JqW2tdKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8vIHBpcGVcbiAgZmlsZS5waXBlKHJlcyk7XG59XG5cbi8qKlxuICogU3RyaW5naWZ5IEpTT04sIGxpa2UgSlNPTi5zdHJpbmdpZnksIGJ1dCB2OCBvcHRpbWl6ZWQsIHdpdGggdGhlXG4gKiBhYmlsaXR5IHRvIGVzY2FwZSBjaGFyYWN0ZXJzIHRoYXQgY2FuIHRyaWdnZXIgSFRNTCBzbmlmZmluZy5cbiAqXG4gKiBAcGFyYW0geyp9IHZhbHVlXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSByZXBsYWNlclxuICogQHBhcmFtIHtudW1iZXJ9IHNwYWNlc1xuICogQHBhcmFtIHtib29sZWFufSBlc2NhcGVcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiBAcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIHN0cmluZ2lmeSAodmFsdWUsIHJlcGxhY2VyLCBzcGFjZXMsIGVzY2FwZSkge1xuICAvLyB2OCBjaGVja3MgYXJndW1lbnRzLmxlbmd0aCBmb3Igb3B0aW1pemluZyBzaW1wbGUgY2FsbFxuICAvLyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvdjgvaXNzdWVzL2RldGFpbD9pZD00NzMwXG4gIHZhciBqc29uID0gcmVwbGFjZXIgfHwgc3BhY2VzXG4gICAgPyBKU09OLnN0cmluZ2lmeSh2YWx1ZSwgcmVwbGFjZXIsIHNwYWNlcylcbiAgICA6IEpTT04uc3RyaW5naWZ5KHZhbHVlKTtcblxuICBpZiAoZXNjYXBlICYmIHR5cGVvZiBqc29uID09PSAnc3RyaW5nJykge1xuICAgIGpzb24gPSBqc29uLnJlcGxhY2UoL1s8PiZdL2csIGZ1bmN0aW9uIChjKSB7XG4gICAgICBzd2l0Y2ggKGMuY2hhckNvZGVBdCgwKSkge1xuICAgICAgICBjYXNlIDB4M2M6XG4gICAgICAgICAgcmV0dXJuICdcXFxcdTAwM2MnXG4gICAgICAgIGNhc2UgMHgzZTpcbiAgICAgICAgICByZXR1cm4gJ1xcXFx1MDAzZSdcbiAgICAgICAgY2FzZSAweDI2OlxuICAgICAgICAgIHJldHVybiAnXFxcXHUwMDI2J1xuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dDogdW5yZWFjaGFibGUgZGVmYXVsdCAqL1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiBjXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIHJldHVybiBqc29uXG59XG4iLCAiLyohXG4gKiBleHByZXNzXG4gKiBDb3B5cmlnaHQoYykgMjAwOS0yMDEzIFRKIEhvbG93YXljaHVrXG4gKiBDb3B5cmlnaHQoYykgMjAxMyBSb21hbiBTaHR5bG1hblxuICogQ29weXJpZ2h0KGMpIDIwMTQtMjAxNSBEb3VnbGFzIENocmlzdG9waGVyIFdpbHNvblxuICogTUlUIExpY2Vuc2VkXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG4vKipcbiAqIE1vZHVsZSBkZXBlbmRlbmNpZXMuXG4gKi9cblxudmFyIGJvZHlQYXJzZXIgPSByZXF1aXJlKCdib2R5LXBhcnNlcicpXG52YXIgRXZlbnRFbWl0dGVyID0gcmVxdWlyZSgnbm9kZTpldmVudHMnKS5FdmVudEVtaXR0ZXI7XG52YXIgbWl4aW4gPSByZXF1aXJlKCdtZXJnZS1kZXNjcmlwdG9ycycpO1xudmFyIHByb3RvID0gcmVxdWlyZSgnLi9hcHBsaWNhdGlvbicpO1xudmFyIFJvdXRlciA9IHJlcXVpcmUoJ3JvdXRlcicpO1xudmFyIHJlcSA9IHJlcXVpcmUoJy4vcmVxdWVzdCcpO1xudmFyIHJlcyA9IHJlcXVpcmUoJy4vcmVzcG9uc2UnKTtcblxuLyoqXG4gKiBFeHBvc2UgYGNyZWF0ZUFwcGxpY2F0aW9uKClgLlxuICovXG5cbmV4cG9ydHMgPSBtb2R1bGUuZXhwb3J0cyA9IGNyZWF0ZUFwcGxpY2F0aW9uO1xuXG4vKipcbiAqIENyZWF0ZSBhbiBleHByZXNzIGFwcGxpY2F0aW9uLlxuICpcbiAqIEByZXR1cm4ge0Z1bmN0aW9ufVxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5mdW5jdGlvbiBjcmVhdGVBcHBsaWNhdGlvbigpIHtcbiAgdmFyIGFwcCA9IGZ1bmN0aW9uKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgYXBwLmhhbmRsZShyZXEsIHJlcywgbmV4dCk7XG4gIH07XG5cbiAgbWl4aW4oYXBwLCBFdmVudEVtaXR0ZXIucHJvdG90eXBlLCBmYWxzZSk7XG4gIG1peGluKGFwcCwgcHJvdG8sIGZhbHNlKTtcblxuICAvLyBleHBvc2UgdGhlIHByb3RvdHlwZSB0aGF0IHdpbGwgZ2V0IHNldCBvbiByZXF1ZXN0c1xuICBhcHAucmVxdWVzdCA9IE9iamVjdC5jcmVhdGUocmVxLCB7XG4gICAgYXBwOiB7IGNvbmZpZ3VyYWJsZTogdHJ1ZSwgZW51bWVyYWJsZTogdHJ1ZSwgd3JpdGFibGU6IHRydWUsIHZhbHVlOiBhcHAgfVxuICB9KVxuXG4gIC8vIGV4cG9zZSB0aGUgcHJvdG90eXBlIHRoYXQgd2lsbCBnZXQgc2V0IG9uIHJlc3BvbnNlc1xuICBhcHAucmVzcG9uc2UgPSBPYmplY3QuY3JlYXRlKHJlcywge1xuICAgIGFwcDogeyBjb25maWd1cmFibGU6IHRydWUsIGVudW1lcmFibGU6IHRydWUsIHdyaXRhYmxlOiB0cnVlLCB2YWx1ZTogYXBwIH1cbiAgfSlcblxuICBhcHAuaW5pdCgpO1xuICByZXR1cm4gYXBwO1xufVxuXG4vKipcbiAqIEV4cG9zZSB0aGUgcHJvdG90eXBlcy5cbiAqL1xuXG5leHBvcnRzLmFwcGxpY2F0aW9uID0gcHJvdG87XG5leHBvcnRzLnJlcXVlc3QgPSByZXE7XG5leHBvcnRzLnJlc3BvbnNlID0gcmVzO1xuXG4vKipcbiAqIEV4cG9zZSBjb25zdHJ1Y3RvcnMuXG4gKi9cblxuZXhwb3J0cy5Sb3V0ZSA9IFJvdXRlci5Sb3V0ZTtcbmV4cG9ydHMuUm91dGVyID0gUm91dGVyO1xuXG4vKipcbiAqIEV4cG9zZSBtaWRkbGV3YXJlXG4gKi9cblxuZXhwb3J0cy5qc29uID0gYm9keVBhcnNlci5qc29uXG5leHBvcnRzLnJhdyA9IGJvZHlQYXJzZXIucmF3XG5leHBvcnRzLnN0YXRpYyA9IHJlcXVpcmUoJ3NlcnZlLXN0YXRpYycpO1xuZXhwb3J0cy50ZXh0ID0gYm9keVBhcnNlci50ZXh0XG5leHBvcnRzLnVybGVuY29kZWQgPSBib2R5UGFyc2VyLnVybGVuY29kZWRcbiIsICIvKiFcbiAqIGV4cHJlc3NcbiAqIENvcHlyaWdodChjKSAyMDA5LTIwMTMgVEogSG9sb3dheWNodWtcbiAqIENvcHlyaWdodChjKSAyMDEzIFJvbWFuIFNodHlsbWFuXG4gKiBDb3B5cmlnaHQoYykgMjAxNC0yMDE1IERvdWdsYXMgQ2hyaXN0b3BoZXIgV2lsc29uXG4gKiBNSVQgTGljZW5zZWRcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9saWIvZXhwcmVzcycpO1xuIiwgImNvbnN0IGF1dGggPSByZXF1aXJlKCdiYXNpYy1hdXRoJylcbmNvbnN0IGFzc2VydCA9IHJlcXVpcmUoJ2Fzc2VydCcpXG5jb25zdCB0aW1pbmdTYWZlRXF1YWwgPSByZXF1aXJlKCdjcnlwdG8nKS50aW1pbmdTYWZlRXF1YWxcblxuLy8gQ3JlZGl0cyBmb3IgdGhlIGFjdHVhbCBhbGdvcml0aG0gZ28gdG8gZ2l0aHViL0BCcnVjZTE3XG4vLyBUaGFua3MgdG8gZ2l0aHViL0BocmFiYW4gZm9yIG1ha2luZyBtZSBpbXBsZW1lbnQgdGhpc1xuZnVuY3Rpb24gc2FmZUNvbXBhcmUodXNlcklucHV0LCBzZWNyZXQpIHtcbiAgICBjb25zdCB1c2VySW5wdXRMZW5ndGggPSBCdWZmZXIuYnl0ZUxlbmd0aCh1c2VySW5wdXQpXG4gICAgY29uc3Qgc2VjcmV0TGVuZ3RoID0gQnVmZmVyLmJ5dGVMZW5ndGgoc2VjcmV0KVxuXG4gICAgY29uc3QgdXNlcklucHV0QnVmZmVyID0gQnVmZmVyLmFsbG9jKHVzZXJJbnB1dExlbmd0aCwgMCwgJ3V0ZjgnKVxuICAgIHVzZXJJbnB1dEJ1ZmZlci53cml0ZSh1c2VySW5wdXQpXG4gICAgY29uc3Qgc2VjcmV0QnVmZmVyID0gQnVmZmVyLmFsbG9jKHVzZXJJbnB1dExlbmd0aCwgMCwgJ3V0ZjgnKVxuICAgIHNlY3JldEJ1ZmZlci53cml0ZShzZWNyZXQpXG5cbiAgICByZXR1cm4gISEodGltaW5nU2FmZUVxdWFsKHVzZXJJbnB1dEJ1ZmZlciwgc2VjcmV0QnVmZmVyKSAmIHVzZXJJbnB1dExlbmd0aCA9PT0gc2VjcmV0TGVuZ3RoKVxufVxuXG5mdW5jdGlvbiBlbnN1cmVGdW5jdGlvbihvcHRpb24sIGRlZmF1bHRWYWx1ZSkge1xuICAgIGlmKG9wdGlvbiA9PSB1bmRlZmluZWQpXG4gICAgICAgIHJldHVybiBmdW5jdGlvbigpIHsgcmV0dXJuIGRlZmF1bHRWYWx1ZSB9XG5cbiAgICBpZih0eXBlb2Ygb3B0aW9uICE9ICdmdW5jdGlvbicpXG4gICAgICAgIHJldHVybiBmdW5jdGlvbigpIHsgcmV0dXJuIG9wdGlvbiB9XG5cbiAgICByZXR1cm4gb3B0aW9uXG59XG5cbmZ1bmN0aW9uIGJ1aWxkTWlkZGxld2FyZShvcHRpb25zKSB7XG4gICAgdmFyIGNoYWxsZW5nZSA9IG9wdGlvbnMuY2hhbGxlbmdlICE9IHVuZGVmaW5lZCA/ICEhb3B0aW9ucy5jaGFsbGVuZ2UgOiBmYWxzZVxuICAgIHZhciB1c2VycyA9IG9wdGlvbnMudXNlcnMgfHwge31cbiAgICB2YXIgYXV0aG9yaXplciA9IG9wdGlvbnMuYXV0aG9yaXplciB8fCBzdGF0aWNVc2Vyc0F1dGhvcml6ZXJcbiAgICB2YXIgaXNBc3luYyA9IG9wdGlvbnMuYXV0aG9yaXplQXN5bmMgIT0gdW5kZWZpbmVkID8gISFvcHRpb25zLmF1dGhvcml6ZUFzeW5jIDogZmFsc2VcbiAgICB2YXIgZ2V0UmVzcG9uc2VCb2R5ID0gZW5zdXJlRnVuY3Rpb24ob3B0aW9ucy51bmF1dGhvcml6ZWRSZXNwb25zZSwgJycpXG4gICAgdmFyIHJlYWxtID0gZW5zdXJlRnVuY3Rpb24ob3B0aW9ucy5yZWFsbSlcblxuICAgIGFzc2VydCh0eXBlb2YgdXNlcnMgPT0gJ29iamVjdCcsICdFeHBlY3RlZCBhbiBvYmplY3QgZm9yIHRoZSBiYXNpYyBhdXRoIHVzZXJzLCBmb3VuZCAnICsgdHlwZW9mIHVzZXJzICsgJyBpbnN0ZWFkJylcbiAgICBhc3NlcnQodHlwZW9mIGF1dGhvcml6ZXIgPT0gJ2Z1bmN0aW9uJywgJ0V4cGVjdGVkIGEgZnVuY3Rpb24gZm9yIHRoZSBiYXNpYyBhdXRoIGF1dGhvcml6ZXIsIGZvdW5kICcgKyB0eXBlb2YgYXV0aG9yaXplciArICcgaW5zdGVhZCcpXG5cbiAgICBmdW5jdGlvbiBzdGF0aWNVc2Vyc0F1dGhvcml6ZXIodXNlcm5hbWUsIHBhc3N3b3JkKSB7XG4gICAgICAgIGZvcih2YXIgaSBpbiB1c2VycylcbiAgICAgICAgICAgIGlmKHNhZmVDb21wYXJlKHVzZXJuYW1lLCBpKSAmIHNhZmVDb21wYXJlKHBhc3N3b3JkLCB1c2Vyc1tpXSkpXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWVcblxuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG5cbiAgICByZXR1cm4gZnVuY3Rpb24gYXV0aE1pZGRsZXdhcmUocmVxLCByZXMsIG5leHQpIHtcbiAgICAgICAgdmFyIGF1dGhlbnRpY2F0aW9uID0gYXV0aChyZXEpXG5cbiAgICAgICAgaWYoIWF1dGhlbnRpY2F0aW9uKVxuICAgICAgICAgICAgcmV0dXJuIHVuYXV0aG9yaXplZCgpXG5cbiAgICAgICAgcmVxLmF1dGggPSB7XG4gICAgICAgICAgICB1c2VyOiBhdXRoZW50aWNhdGlvbi5uYW1lLFxuICAgICAgICAgICAgcGFzc3dvcmQ6IGF1dGhlbnRpY2F0aW9uLnBhc3NcbiAgICAgICAgfVxuXG4gICAgICAgIGlmKGlzQXN5bmMpXG4gICAgICAgICAgICByZXR1cm4gYXV0aG9yaXplcihhdXRoZW50aWNhdGlvbi5uYW1lLCBhdXRoZW50aWNhdGlvbi5wYXNzLCBhdXRob3JpemVyQ2FsbGJhY2spXG4gICAgICAgIGVsc2UgaWYoIWF1dGhvcml6ZXIoYXV0aGVudGljYXRpb24ubmFtZSwgYXV0aGVudGljYXRpb24ucGFzcykpXG4gICAgICAgICAgICByZXR1cm4gdW5hdXRob3JpemVkKClcblxuICAgICAgICByZXR1cm4gbmV4dCgpXG5cbiAgICAgICAgZnVuY3Rpb24gdW5hdXRob3JpemVkKCkge1xuICAgICAgICAgICAgaWYoY2hhbGxlbmdlKSB7XG4gICAgICAgICAgICAgICAgdmFyIGNoYWxsZW5nZVN0cmluZyA9ICdCYXNpYydcbiAgICAgICAgICAgICAgICB2YXIgcmVhbG1OYW1lID0gcmVhbG0ocmVxKVxuXG4gICAgICAgICAgICAgICAgaWYocmVhbG1OYW1lKVxuICAgICAgICAgICAgICAgICAgICBjaGFsbGVuZ2VTdHJpbmcgKz0gJyByZWFsbT1cIicgKyByZWFsbU5hbWUgKyAnXCInXG5cbiAgICAgICAgICAgICAgICByZXMuc2V0KCdXV1ctQXV0aGVudGljYXRlJywgY2hhbGxlbmdlU3RyaW5nKVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvL1RPRE86IEFsbG93IHJlc3BvbnNlIGJvZHkgdG8gYmUgSlNPTiAobWF5YmUgYXV0b2RldGVjdD8pXG4gICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGdldFJlc3BvbnNlQm9keShyZXEpXG5cbiAgICAgICAgICAgIGlmKHR5cGVvZiByZXNwb25zZSA9PSAnc3RyaW5nJylcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzLnN0YXR1cyg0MDEpLnNlbmQocmVzcG9uc2UpXG5cbiAgICAgICAgICAgIHJldHVybiByZXMuc3RhdHVzKDQwMSkuanNvbihyZXNwb25zZSlcbiAgICAgICAgfVxuXG4gICAgICAgIGZ1bmN0aW9uIGF1dGhvcml6ZXJDYWxsYmFjayhlcnIsIGFwcHJvdmVkKSB7XG4gICAgICAgICAgICBhc3NlcnQuaWZFcnJvcihlcnIpXG5cbiAgICAgICAgICAgIGlmKGFwcHJvdmVkKVxuICAgICAgICAgICAgICAgIHJldHVybiBuZXh0KClcblxuICAgICAgICAgICAgcmV0dXJuIHVuYXV0aG9yaXplZCgpXG4gICAgICAgIH1cbiAgICB9XG59XG5cbmJ1aWxkTWlkZGxld2FyZS5zYWZlQ29tcGFyZSA9IHNhZmVDb21wYXJlXG5tb2R1bGUuZXhwb3J0cyA9IGJ1aWxkTWlkZGxld2FyZVxuIiwgImV4cG9ydCBjb25zdCBERUZBVUxUX0FDQ09VTlRfSURfRU5EUE9JTlRfTU9ERSA9IFwicHJlZmVycmVkXCI7XG5leHBvcnQgY29uc3QgQUNDT1VOVF9JRF9FTkRQT0lOVF9NT0RFX1ZBTFVFUyA9IFtcImRpc2FibGVkXCIsIFwicHJlZmVycmVkXCIsIFwicmVxdWlyZWRcIl07XG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVBY2NvdW50SWRFbmRwb2ludE1vZGUodmFsdWUpIHtcbiAgICByZXR1cm4gQUNDT1VOVF9JRF9FTkRQT0lOVF9NT0RFX1ZBTFVFUy5pbmNsdWRlcyh2YWx1ZSk7XG59XG4iLCAiaW1wb3J0IHsgbm9ybWFsaXplUHJvdmlkZXIgfSBmcm9tIFwiQHNtaXRoeS91dGlsLW1pZGRsZXdhcmVcIjtcbmltcG9ydCB7IERFRkFVTFRfQUNDT1VOVF9JRF9FTkRQT0lOVF9NT0RFLCB2YWxpZGF0ZUFjY291bnRJZEVuZHBvaW50TW9kZSwgfSBmcm9tIFwiLi9BY2NvdW50SWRFbmRwb2ludE1vZGVDb25zdGFudHNcIjtcbmV4cG9ydCBjb25zdCByZXNvbHZlQWNjb3VudElkRW5kcG9pbnRNb2RlQ29uZmlnID0gKGlucHV0KSA9PiB7XG4gICAgY29uc3QgeyBhY2NvdW50SWRFbmRwb2ludE1vZGUgfSA9IGlucHV0O1xuICAgIGNvbnN0IGFjY291bnRJZEVuZHBvaW50TW9kZVByb3ZpZGVyID0gbm9ybWFsaXplUHJvdmlkZXIoYWNjb3VudElkRW5kcG9pbnRNb2RlID8/IERFRkFVTFRfQUNDT1VOVF9JRF9FTkRQT0lOVF9NT0RFKTtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihpbnB1dCwge1xuICAgICAgICBhY2NvdW50SWRFbmRwb2ludE1vZGU6IGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGFjY0lkTW9kZSA9IGF3YWl0IGFjY291bnRJZEVuZHBvaW50TW9kZVByb3ZpZGVyKCk7XG4gICAgICAgICAgICBpZiAoIXZhbGlkYXRlQWNjb3VudElkRW5kcG9pbnRNb2RlKGFjY0lkTW9kZSkpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgdmFsdWUgZm9yIGFjY291bnRJZEVuZHBvaW50TW9kZTogJHthY2NJZE1vZGV9LiBWYWxpZCB2YWx1ZXMgYXJlOiBcInJlcXVpcmVkXCIsIFwicHJlZmVycmVkXCIsIFwiZGlzYWJsZWRcIi5gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBhY2NJZE1vZGU7XG4gICAgICAgIH0sXG4gICAgfSk7XG59O1xuIiwgImltcG9ydCB7IERFRkFVTFRfQUNDT1VOVF9JRF9FTkRQT0lOVF9NT0RFLCB2YWxpZGF0ZUFjY291bnRJZEVuZHBvaW50TW9kZSwgfSBmcm9tIFwiLi9BY2NvdW50SWRFbmRwb2ludE1vZGVDb25zdGFudHNcIjtcbmNvbnN0IGVyciA9IFwiSW52YWxpZCBBY2NvdW50SWRFbmRwb2ludE1vZGUgdmFsdWVcIjtcbmNvbnN0IF90aHJvdyA9IChtZXNzYWdlKSA9PiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xufTtcbmV4cG9ydCBjb25zdCBFTlZfQUNDT1VOVF9JRF9FTkRQT0lOVF9NT0RFID0gXCJBV1NfQUNDT1VOVF9JRF9FTkRQT0lOVF9NT0RFXCI7XG5leHBvcnQgY29uc3QgQ09ORklHX0FDQ09VTlRfSURfRU5EUE9JTlRfTU9ERSA9IFwiYWNjb3VudF9pZF9lbmRwb2ludF9tb2RlXCI7XG5leHBvcnQgY29uc3QgTk9ERV9BQ0NPVU5UX0lEX0VORFBPSU5UX01PREVfQ09ORklHX09QVElPTlMgPSB7XG4gICAgZW52aXJvbm1lbnRWYXJpYWJsZVNlbGVjdG9yOiAoZW52KSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gZW52W0VOVl9BQ0NPVU5UX0lEX0VORFBPSU5UX01PREVdO1xuICAgICAgICBpZiAodmFsdWUgJiYgIXZhbGlkYXRlQWNjb3VudElkRW5kcG9pbnRNb2RlKHZhbHVlKSkge1xuICAgICAgICAgICAgX3Rocm93KGVycik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH0sXG4gICAgY29uZmlnRmlsZVNlbGVjdG9yOiAocHJvZmlsZSkgPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHByb2ZpbGVbQ09ORklHX0FDQ09VTlRfSURfRU5EUE9JTlRfTU9ERV07XG4gICAgICAgIGlmICh2YWx1ZSAmJiAhdmFsaWRhdGVBY2NvdW50SWRFbmRwb2ludE1vZGUodmFsdWUpKSB7XG4gICAgICAgICAgICBfdGhyb3coZXJyKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfSxcbiAgICBkZWZhdWx0OiBERUZBVUxUX0FDQ09VTlRfSURfRU5EUE9JTlRfTU9ERSxcbn07XG4iLCAiZXhwb3J0ICogZnJvbSBcIi4vQWNjb3VudElkRW5kcG9pbnRNb2RlQ29uZmlnUmVzb2x2ZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0FjY291bnRJZEVuZHBvaW50TW9kZUNvbnN0YW50c1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vTm9kZUFjY291bnRJZEVuZHBvaW50TW9kZUNvbmZpZ09wdGlvbnNcIjtcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBMUlVDYWNoZSA9IHJlcXVpcmUoJ21uZW1vbmlzdC9scnUtY2FjaGUnKTtcblxuY2xhc3MgRW5kcG9pbnRDYWNoZSB7XG4gICAgY2FjaGU7XG4gICAgY29uc3RydWN0b3IoY2FwYWNpdHkpIHtcbiAgICAgICAgdGhpcy5jYWNoZSA9IG5ldyBMUlVDYWNoZShjYXBhY2l0eSk7XG4gICAgfVxuICAgIGdldEVuZHBvaW50KGtleSkge1xuICAgICAgICBjb25zdCBlbmRwb2ludHNXaXRoRXhwaXJ5ID0gdGhpcy5nZXQoa2V5KTtcbiAgICAgICAgaWYgKCFlbmRwb2ludHNXaXRoRXhwaXJ5IHx8IGVuZHBvaW50c1dpdGhFeHBpcnkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGVuZHBvaW50cyA9IGVuZHBvaW50c1dpdGhFeHBpcnkubWFwKChlbmRwb2ludCkgPT4gZW5kcG9pbnQuQWRkcmVzcyk7XG4gICAgICAgIHJldHVybiBlbmRwb2ludHNbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogZW5kcG9pbnRzLmxlbmd0aCldO1xuICAgIH1cbiAgICBnZXQoa2V5KSB7XG4gICAgICAgIGlmICghdGhpcy5oYXMoa2V5KSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5jYWNoZS5nZXQoa2V5KTtcbiAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50c1dpdGhFeHBpcnkgPSB2YWx1ZS5maWx0ZXIoKGVuZHBvaW50KSA9PiBub3cgPCBlbmRwb2ludC5FeHBpcmVzKTtcbiAgICAgICAgaWYgKGVuZHBvaW50c1dpdGhFeHBpcnkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLmRlbGV0ZShrZXkpO1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZW5kcG9pbnRzV2l0aEV4cGlyeTtcbiAgICB9XG4gICAgc2V0KGtleSwgZW5kcG9pbnRzKSB7XG4gICAgICAgIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG4gICAgICAgIHRoaXMuY2FjaGUuc2V0KGtleSwgZW5kcG9pbnRzLm1hcCgoeyBBZGRyZXNzLCBDYWNoZVBlcmlvZEluTWludXRlcyB9KSA9PiAoe1xuICAgICAgICAgICAgQWRkcmVzcyxcbiAgICAgICAgICAgIEV4cGlyZXM6IG5vdyArIENhY2hlUGVyaW9kSW5NaW51dGVzICogNjAgKiAxMDAwLFxuICAgICAgICB9KSkpO1xuICAgIH1cbiAgICBkZWxldGUoa2V5KSB7XG4gICAgICAgIHRoaXMuY2FjaGUuc2V0KGtleSwgW10pO1xuICAgIH1cbiAgICBoYXMoa2V5KSB7XG4gICAgICAgIGlmICghdGhpcy5jYWNoZS5oYXMoa2V5KSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGVuZHBvaW50cyA9IHRoaXMuY2FjaGUucGVlayhrZXkpO1xuICAgICAgICBpZiAoIWVuZHBvaW50cykge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBlbmRwb2ludHMubGVuZ3RoID4gMDtcbiAgICB9XG4gICAgY2xlYXIoKSB7XG4gICAgICAgIHRoaXMuY2FjaGUuY2xlYXIoKTtcbiAgICB9XG59XG5cbmV4cG9ydHMuRW5kcG9pbnRDYWNoZSA9IEVuZHBvaW50Q2FjaGU7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgcHJvdG9jb2xIdHRwID0gcmVxdWlyZSgnQHNtaXRoeS9wcm90b2NvbC1odHRwJyk7XG52YXIgZW5kcG9pbnRDYWNoZSA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL2VuZHBvaW50LWNhY2hlJyk7XG5cbmNvbnN0IEVOVl9FTkRQT0lOVF9ESVNDT1ZFUlkgPSBbXCJBV1NfRU5BQkxFX0VORFBPSU5UX0RJU0NPVkVSWVwiLCBcIkFXU19FTkRQT0lOVF9ESVNDT1ZFUllfRU5BQkxFRFwiXTtcbmNvbnN0IENPTkZJR19FTkRQT0lOVF9ESVNDT1ZFUlkgPSBcImVuZHBvaW50X2Rpc2NvdmVyeV9lbmFibGVkXCI7XG5jb25zdCBpc0ZhbHN5ID0gKHZhbHVlKSA9PiBbXCJmYWxzZVwiLCBcIjBcIl0uaW5kZXhPZih2YWx1ZSkgPj0gMDtcbmNvbnN0IE5PREVfRU5EUE9JTlRfRElTQ09WRVJZX0NPTkZJR19PUFRJT05TID0ge1xuICAgIGVudmlyb25tZW50VmFyaWFibGVTZWxlY3RvcjogKGVudikgPT4ge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IEVOVl9FTkRQT0lOVF9ESVNDT1ZFUlkubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGVudktleSA9IEVOVl9FTkRQT0lOVF9ESVNDT1ZFUllbaV07XG4gICAgICAgICAgICBpZiAoZW52S2V5IGluIGVudikge1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZW52W2VudktleV07XG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlID09PSBcIlwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IEVycm9yKGBFbnZpcm9ubWVudCB2YXJpYWJsZSAke2VudktleX0gY2FuJ3QgYmUgZW1wdHkgb2YgdW5kZWZpbmVkLCBnb3QgXCIke3ZhbHVlfVwiYCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiAhaXNGYWxzeSh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGNvbmZpZ0ZpbGVTZWxlY3RvcjogKHByb2ZpbGUpID0+IHtcbiAgICAgICAgaWYgKENPTkZJR19FTkRQT0lOVF9ESVNDT1ZFUlkgaW4gcHJvZmlsZSkge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBwcm9maWxlW0NPTkZJR19FTkRQT0lOVF9ESVNDT1ZFUlldO1xuICAgICAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBFcnJvcihgU2hhcmVkIGNvbmZpZyBlbnRyeSAke0NPTkZJR19FTkRQT0lOVF9ESVNDT1ZFUll9IGNhbid0IGJlIHVuZGVmaW5lZCwgZ290IFwiJHt2YWx1ZX1cImApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuICFpc0ZhbHN5KHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgZGVmYXVsdDogdW5kZWZpbmVkLFxufTtcblxuY29uc3QgZ2V0Q2FjaGVLZXkgPSBhc3luYyAoY29tbWFuZE5hbWUsIGNvbmZpZywgb3B0aW9ucykgPT4ge1xuICAgIGNvbnN0IHsgYWNjZXNzS2V5SWQgfSA9IGF3YWl0IGNvbmZpZy5jcmVkZW50aWFscygpO1xuICAgIGNvbnN0IHsgaWRlbnRpZmllcnMgfSA9IG9wdGlvbnM7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgLi4uKGFjY2Vzc0tleUlkICYmIHsgYWNjZXNzS2V5SWQgfSksXG4gICAgICAgIC4uLihpZGVudGlmaWVycyAmJiB7XG4gICAgICAgICAgICBjb21tYW5kTmFtZSxcbiAgICAgICAgICAgIGlkZW50aWZpZXJzOiBPYmplY3QuZW50cmllcyhpZGVudGlmaWVycylcbiAgICAgICAgICAgICAgICAuc29ydCgpXG4gICAgICAgICAgICAgICAgLnJlZHVjZSgoYWNjLCBba2V5LCB2YWx1ZV0pID0+ICh7IC4uLmFjYywgW2tleV06IHZhbHVlIH0pLCB7fSksXG4gICAgICAgIH0pLFxuICAgIH0pO1xufTtcblxuY29uc3QgcmVxdWVzdFF1ZXVlID0ge307XG5jb25zdCB1cGRhdGVEaXNjb3ZlcmVkRW5kcG9pbnRJbkNhY2hlID0gYXN5bmMgKGNvbmZpZywgb3B0aW9ucykgPT4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNvbnN0IHsgZW5kcG9pbnRDYWNoZSB9ID0gY29uZmlnO1xuICAgIGNvbnN0IHsgY2FjaGVLZXksIGNvbW1hbmROYW1lLCBpZGVudGlmaWVycyB9ID0gb3B0aW9ucztcbiAgICBjb25zdCBlbmRwb2ludHMgPSBlbmRwb2ludENhY2hlLmdldChjYWNoZUtleSk7XG4gICAgaWYgKGVuZHBvaW50cyAmJiBlbmRwb2ludHMubGVuZ3RoID09PSAxICYmIGVuZHBvaW50c1swXS5BZGRyZXNzID09PSBcIlwiKSB7XG4gICAgICAgIGlmIChvcHRpb25zLmlzRGlzY292ZXJlZEVuZHBvaW50UmVxdWlyZWQpIHtcbiAgICAgICAgICAgIGlmICghcmVxdWVzdFF1ZXVlW2NhY2hlS2V5XSlcbiAgICAgICAgICAgICAgICByZXF1ZXN0UXVldWVbY2FjaGVLZXldID0gW107XG4gICAgICAgICAgICByZXF1ZXN0UXVldWVbY2FjaGVLZXldLnB1c2goeyByZXNvbHZlLCByZWplY3QgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZWxzZSBpZiAoZW5kcG9pbnRzICYmIGVuZHBvaW50cy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHJlc29sdmUoKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGNvbnN0IHBsYWNlaG9sZGVyRW5kcG9pbnRzID0gW3sgQWRkcmVzczogXCJcIiwgQ2FjaGVQZXJpb2RJbk1pbnV0ZXM6IDEgfV07XG4gICAgICAgIGVuZHBvaW50Q2FjaGUuc2V0KGNhY2hlS2V5LCBwbGFjZWhvbGRlckVuZHBvaW50cyk7XG4gICAgICAgIGNvbnN0IGNvbW1hbmQgPSBuZXcgb3B0aW9ucy5lbmRwb2ludERpc2NvdmVyeUNvbW1hbmRDdG9yKHtcbiAgICAgICAgICAgIE9wZXJhdGlvbjogY29tbWFuZE5hbWUuc2xpY2UoMCwgLTcpLFxuICAgICAgICAgICAgSWRlbnRpZmllcnM6IGlkZW50aWZpZXJzLFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgaGFuZGxlciA9IGNvbW1hbmQucmVzb2x2ZU1pZGRsZXdhcmUob3B0aW9ucy5jbGllbnRTdGFjaywgY29uZmlnLCBvcHRpb25zLm9wdGlvbnMpO1xuICAgICAgICBoYW5kbGVyKGNvbW1hbmQpXG4gICAgICAgICAgICAudGhlbigocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICBlbmRwb2ludENhY2hlLnNldChjYWNoZUtleSwgcmVzdWx0Lm91dHB1dC5FbmRwb2ludHMpO1xuICAgICAgICAgICAgaWYgKHJlcXVlc3RRdWV1ZVtjYWNoZUtleV0pIHtcbiAgICAgICAgICAgICAgICByZXF1ZXN0UXVldWVbY2FjaGVLZXldLmZvckVhY2goKHsgcmVzb2x2ZSB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBkZWxldGUgcmVxdWVzdFF1ZXVlW2NhY2hlS2V5XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgfSlcbiAgICAgICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgICAgIGVuZHBvaW50Q2FjaGUuZGVsZXRlKGNhY2hlS2V5KTtcbiAgICAgICAgICAgIGNvbnN0IGVycm9yVG9UaHJvdyA9IE9iamVjdC5hc3NpZ24obmV3IEVycm9yKGBUaGUgb3BlcmF0aW9uIHRvIGRpc2NvdmVyIGVuZHBvaW50IGZhaWxlZC5gICtcbiAgICAgICAgICAgICAgICBgIFBsZWFzZSByZXRyeSwgb3IgcHJvdmlkZSBhIGN1c3RvbSBlbmRwb2ludCBhbmQgZGlzYWJsZSBlbmRwb2ludCBkaXNjb3ZlcnkgdG8gcHJvY2VlZC5gKSwgeyByZWFzb246IGVycm9yIH0pO1xuICAgICAgICAgICAgaWYgKHJlcXVlc3RRdWV1ZVtjYWNoZUtleV0pIHtcbiAgICAgICAgICAgICAgICByZXF1ZXN0UXVldWVbY2FjaGVLZXldLmZvckVhY2goKHsgcmVqZWN0IH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycm9yVG9UaHJvdyk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgZGVsZXRlIHJlcXVlc3RRdWV1ZVtjYWNoZUtleV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAob3B0aW9ucy5pc0Rpc2NvdmVyZWRFbmRwb2ludFJlcXVpcmVkKSB7XG4gICAgICAgICAgICAgICAgcmVqZWN0KGVycm9yVG9UaHJvdyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludENhY2hlLnNldChjYWNoZUtleSwgcGxhY2Vob2xkZXJFbmRwb2ludHMpO1xuICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufSk7XG5cbmNvbnN0IGVuZHBvaW50RGlzY292ZXJ5TWlkZGxld2FyZSA9IChjb25maWcsIG1pZGRsZXdhcmVDb25maWcpID0+IChuZXh0LCBjb250ZXh0KSA9PiBhc3luYyAoYXJncykgPT4ge1xuICAgIGlmIChjb25maWcuaXNDdXN0b21FbmRwb2ludCkge1xuICAgICAgICBpZiAoY29uZmlnLmlzQ2xpZW50RW5kcG9pbnREaXNjb3ZlcnlFbmFibGVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEN1c3RvbSBlbmRwb2ludCBpcyBzdXBwbGllZDsgZW5kcG9pbnREaXNjb3ZlcnlFbmFibGVkIG11c3Qgbm90IGJlIHRydWUuYCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5leHQoYXJncyk7XG4gICAgfVxuICAgIGNvbnN0IHsgZW5kcG9pbnREaXNjb3ZlcnlDb21tYW5kQ3RvciB9ID0gY29uZmlnO1xuICAgIGNvbnN0IHsgaXNEaXNjb3ZlcmVkRW5kcG9pbnRSZXF1aXJlZCwgaWRlbnRpZmllcnMgfSA9IG1pZGRsZXdhcmVDb25maWc7XG4gICAgY29uc3QgY2xpZW50TmFtZSA9IGNvbnRleHQuY2xpZW50TmFtZTtcbiAgICBjb25zdCBjb21tYW5kTmFtZSA9IGNvbnRleHQuY29tbWFuZE5hbWU7XG4gICAgY29uc3QgaXNFbmRwb2ludERpc2NvdmVyeUVuYWJsZWQgPSBhd2FpdCBjb25maWcuZW5kcG9pbnREaXNjb3ZlcnlFbmFibGVkKCk7XG4gICAgY29uc3QgY2FjaGVLZXkgPSBhd2FpdCBnZXRDYWNoZUtleShjb21tYW5kTmFtZSwgY29uZmlnLCB7IGlkZW50aWZpZXJzIH0pO1xuICAgIGlmIChpc0Rpc2NvdmVyZWRFbmRwb2ludFJlcXVpcmVkKSB7XG4gICAgICAgIGlmIChpc0VuZHBvaW50RGlzY292ZXJ5RW5hYmxlZCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRW5kcG9pbnQgRGlzY292ZXJ5IGlzIGRpc2FibGVkIGJ1dCAke2NvbW1hbmROYW1lfSBvbiAke2NsaWVudE5hbWV9IHJlcXVpcmVzIGl0LmAgK1xuICAgICAgICAgICAgICAgIGAgUGxlYXNlIGNoZWNrIHlvdXIgY29uZmlndXJhdGlvbnMuYCk7XG4gICAgICAgIH1cbiAgICAgICAgYXdhaXQgdXBkYXRlRGlzY292ZXJlZEVuZHBvaW50SW5DYWNoZShjb25maWcsIHtcbiAgICAgICAgICAgIC4uLm1pZGRsZXdhcmVDb25maWcsXG4gICAgICAgICAgICBjb21tYW5kTmFtZSxcbiAgICAgICAgICAgIGNhY2hlS2V5LFxuICAgICAgICAgICAgZW5kcG9pbnREaXNjb3ZlcnlDb21tYW5kQ3RvcixcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGVsc2UgaWYgKGlzRW5kcG9pbnREaXNjb3ZlcnlFbmFibGVkKSB7XG4gICAgICAgIHVwZGF0ZURpc2NvdmVyZWRFbmRwb2ludEluQ2FjaGUoY29uZmlnLCB7XG4gICAgICAgICAgICAuLi5taWRkbGV3YXJlQ29uZmlnLFxuICAgICAgICAgICAgY29tbWFuZE5hbWUsXG4gICAgICAgICAgICBjYWNoZUtleSxcbiAgICAgICAgICAgIGVuZHBvaW50RGlzY292ZXJ5Q29tbWFuZEN0b3IsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCB7IHJlcXVlc3QgfSA9IGFyZ3M7XG4gICAgaWYgKGNhY2hlS2V5ICYmIHByb3RvY29sSHR0cC5IdHRwUmVxdWVzdC5pc0luc3RhbmNlKHJlcXVlc3QpKSB7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50ID0gY29uZmlnLmVuZHBvaW50Q2FjaGUuZ2V0RW5kcG9pbnQoY2FjaGVLZXkpO1xuICAgICAgICBpZiAoZW5kcG9pbnQpIHtcbiAgICAgICAgICAgIHJlcXVlc3QuaG9zdG5hbWUgPSBlbmRwb2ludDtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbmV4dChhcmdzKTtcbn07XG5cbmNvbnN0IGVuZHBvaW50RGlzY292ZXJ5TWlkZGxld2FyZU9wdGlvbnMgPSB7XG4gICAgbmFtZTogXCJlbmRwb2ludERpc2NvdmVyeU1pZGRsZXdhcmVcIixcbiAgICBzdGVwOiBcImJ1aWxkXCIsXG4gICAgdGFnczogW1wiRU5EUE9JTlRfRElTQ09WRVJZXCJdLFxuICAgIG92ZXJyaWRlOiB0cnVlLFxufTtcbmNvbnN0IGdldEVuZHBvaW50RGlzY292ZXJ5UGx1Z2luID0gKHBsdWdpbkNvbmZpZywgbWlkZGxld2FyZUNvbmZpZykgPT4gKHtcbiAgICBhcHBseVRvU3RhY2s6IChjb21tYW5kU3RhY2spID0+IHtcbiAgICAgICAgY29tbWFuZFN0YWNrLmFkZChlbmRwb2ludERpc2NvdmVyeU1pZGRsZXdhcmUocGx1Z2luQ29uZmlnLCBtaWRkbGV3YXJlQ29uZmlnKSwgZW5kcG9pbnREaXNjb3ZlcnlNaWRkbGV3YXJlT3B0aW9ucyk7XG4gICAgfSxcbn0pO1xuY29uc3QgZ2V0RW5kcG9pbnREaXNjb3ZlcnlSZXF1aXJlZFBsdWdpbiA9IChwbHVnaW5Db25maWcsIG1pZGRsZXdhcmVDb25maWcpID0+ICh7XG4gICAgYXBwbHlUb1N0YWNrOiAoY29tbWFuZFN0YWNrKSA9PiB7XG4gICAgICAgIGNvbW1hbmRTdGFjay5hZGQoZW5kcG9pbnREaXNjb3ZlcnlNaWRkbGV3YXJlKHBsdWdpbkNvbmZpZywgeyAuLi5taWRkbGV3YXJlQ29uZmlnLCBpc0Rpc2NvdmVyZWRFbmRwb2ludFJlcXVpcmVkOiB0cnVlIH0pLCBlbmRwb2ludERpc2NvdmVyeU1pZGRsZXdhcmVPcHRpb25zKTtcbiAgICB9LFxufSk7XG5jb25zdCBnZXRFbmRwb2ludERpc2NvdmVyeU9wdGlvbmFsUGx1Z2luID0gKHBsdWdpbkNvbmZpZywgbWlkZGxld2FyZUNvbmZpZykgPT4gKHtcbiAgICBhcHBseVRvU3RhY2s6IChjb21tYW5kU3RhY2spID0+IHtcbiAgICAgICAgY29tbWFuZFN0YWNrLmFkZChlbmRwb2ludERpc2NvdmVyeU1pZGRsZXdhcmUocGx1Z2luQ29uZmlnLCB7IC4uLm1pZGRsZXdhcmVDb25maWcsIGlzRGlzY292ZXJlZEVuZHBvaW50UmVxdWlyZWQ6IGZhbHNlIH0pLCBlbmRwb2ludERpc2NvdmVyeU1pZGRsZXdhcmVPcHRpb25zKTtcbiAgICB9LFxufSk7XG5cbmNvbnN0IHJlc29sdmVFbmRwb2ludERpc2NvdmVyeUNvbmZpZyA9IChpbnB1dCwgeyBlbmRwb2ludERpc2NvdmVyeUNvbW1hbmRDdG9yIH0pID0+IHtcbiAgICBjb25zdCB7IGVuZHBvaW50Q2FjaGVTaXplLCBlbmRwb2ludERpc2NvdmVyeUVuYWJsZWQsIGVuZHBvaW50RGlzY292ZXJ5RW5hYmxlZFByb3ZpZGVyIH0gPSBpbnB1dDtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihpbnB1dCwge1xuICAgICAgICBlbmRwb2ludERpc2NvdmVyeUNvbW1hbmRDdG9yLFxuICAgICAgICBlbmRwb2ludENhY2hlOiBuZXcgZW5kcG9pbnRDYWNoZS5FbmRwb2ludENhY2hlKGVuZHBvaW50Q2FjaGVTaXplID8/IDEwMDApLFxuICAgICAgICBlbmRwb2ludERpc2NvdmVyeUVuYWJsZWQ6IGVuZHBvaW50RGlzY292ZXJ5RW5hYmxlZCAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgICA/ICgpID0+IFByb21pc2UucmVzb2x2ZShlbmRwb2ludERpc2NvdmVyeUVuYWJsZWQpXG4gICAgICAgICAgICA6IGVuZHBvaW50RGlzY292ZXJ5RW5hYmxlZFByb3ZpZGVyLFxuICAgICAgICBpc0NsaWVudEVuZHBvaW50RGlzY292ZXJ5RW5hYmxlZDogZW5kcG9pbnREaXNjb3ZlcnlFbmFibGVkICE9PSB1bmRlZmluZWQsXG4gICAgfSk7XG59O1xuXG5leHBvcnRzLk5PREVfRU5EUE9JTlRfRElTQ09WRVJZX0NPTkZJR19PUFRJT05TID0gTk9ERV9FTkRQT0lOVF9ESVNDT1ZFUllfQ09ORklHX09QVElPTlM7XG5leHBvcnRzLmVuZHBvaW50RGlzY292ZXJ5TWlkZGxld2FyZU9wdGlvbnMgPSBlbmRwb2ludERpc2NvdmVyeU1pZGRsZXdhcmVPcHRpb25zO1xuZXhwb3J0cy5nZXRFbmRwb2ludERpc2NvdmVyeU9wdGlvbmFsUGx1Z2luID0gZ2V0RW5kcG9pbnREaXNjb3ZlcnlPcHRpb25hbFBsdWdpbjtcbmV4cG9ydHMuZ2V0RW5kcG9pbnREaXNjb3ZlcnlQbHVnaW4gPSBnZXRFbmRwb2ludERpc2NvdmVyeVBsdWdpbjtcbmV4cG9ydHMuZ2V0RW5kcG9pbnREaXNjb3ZlcnlSZXF1aXJlZFBsdWdpbiA9IGdldEVuZHBvaW50RGlzY292ZXJ5UmVxdWlyZWRQbHVnaW47XG5leHBvcnRzLnJlc29sdmVFbmRwb2ludERpc2NvdmVyeUNvbmZpZyA9IHJlc29sdmVFbmRwb2ludERpc2NvdmVyeUNvbmZpZztcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBwcm90b2NvbEh0dHAgPSByZXF1aXJlKCdAc21pdGh5L3Byb3RvY29sLWh0dHAnKTtcblxuZnVuY3Rpb24gcmVzb2x2ZUhvc3RIZWFkZXJDb25maWcoaW5wdXQpIHtcbiAgICByZXR1cm4gaW5wdXQ7XG59XG5jb25zdCBob3N0SGVhZGVyTWlkZGxld2FyZSA9IChvcHRpb25zKSA9PiAobmV4dCkgPT4gYXN5bmMgKGFyZ3MpID0+IHtcbiAgICBpZiAoIXByb3RvY29sSHR0cC5IdHRwUmVxdWVzdC5pc0luc3RhbmNlKGFyZ3MucmVxdWVzdCkpXG4gICAgICAgIHJldHVybiBuZXh0KGFyZ3MpO1xuICAgIGNvbnN0IHsgcmVxdWVzdCB9ID0gYXJncztcbiAgICBjb25zdCB7IGhhbmRsZXJQcm90b2NvbCA9IFwiXCIgfSA9IG9wdGlvbnMucmVxdWVzdEhhbmRsZXIubWV0YWRhdGEgfHwge307XG4gICAgaWYgKGhhbmRsZXJQcm90b2NvbC5pbmRleE9mKFwiaDJcIikgPj0gMCAmJiAhcmVxdWVzdC5oZWFkZXJzW1wiOmF1dGhvcml0eVwiXSkge1xuICAgICAgICBkZWxldGUgcmVxdWVzdC5oZWFkZXJzW1wiaG9zdFwiXTtcbiAgICAgICAgcmVxdWVzdC5oZWFkZXJzW1wiOmF1dGhvcml0eVwiXSA9IHJlcXVlc3QuaG9zdG5hbWUgKyAocmVxdWVzdC5wb3J0ID8gXCI6XCIgKyByZXF1ZXN0LnBvcnQgOiBcIlwiKTtcbiAgICB9XG4gICAgZWxzZSBpZiAoIXJlcXVlc3QuaGVhZGVyc1tcImhvc3RcIl0pIHtcbiAgICAgICAgbGV0IGhvc3QgPSByZXF1ZXN0Lmhvc3RuYW1lO1xuICAgICAgICBpZiAocmVxdWVzdC5wb3J0ICE9IG51bGwpXG4gICAgICAgICAgICBob3N0ICs9IGA6JHtyZXF1ZXN0LnBvcnR9YDtcbiAgICAgICAgcmVxdWVzdC5oZWFkZXJzW1wiaG9zdFwiXSA9IGhvc3Q7XG4gICAgfVxuICAgIHJldHVybiBuZXh0KGFyZ3MpO1xufTtcbmNvbnN0IGhvc3RIZWFkZXJNaWRkbGV3YXJlT3B0aW9ucyA9IHtcbiAgICBuYW1lOiBcImhvc3RIZWFkZXJNaWRkbGV3YXJlXCIsXG4gICAgc3RlcDogXCJidWlsZFwiLFxuICAgIHByaW9yaXR5OiBcImxvd1wiLFxuICAgIHRhZ3M6IFtcIkhPU1RcIl0sXG4gICAgb3ZlcnJpZGU6IHRydWUsXG59O1xuY29uc3QgZ2V0SG9zdEhlYWRlclBsdWdpbiA9IChvcHRpb25zKSA9PiAoe1xuICAgIGFwcGx5VG9TdGFjazogKGNsaWVudFN0YWNrKSA9PiB7XG4gICAgICAgIGNsaWVudFN0YWNrLmFkZChob3N0SGVhZGVyTWlkZGxld2FyZShvcHRpb25zKSwgaG9zdEhlYWRlck1pZGRsZXdhcmVPcHRpb25zKTtcbiAgICB9LFxufSk7XG5cbmV4cG9ydHMuZ2V0SG9zdEhlYWRlclBsdWdpbiA9IGdldEhvc3RIZWFkZXJQbHVnaW47XG5leHBvcnRzLmhvc3RIZWFkZXJNaWRkbGV3YXJlID0gaG9zdEhlYWRlck1pZGRsZXdhcmU7XG5leHBvcnRzLmhvc3RIZWFkZXJNaWRkbGV3YXJlT3B0aW9ucyA9IGhvc3RIZWFkZXJNaWRkbGV3YXJlT3B0aW9ucztcbmV4cG9ydHMucmVzb2x2ZUhvc3RIZWFkZXJDb25maWcgPSByZXNvbHZlSG9zdEhlYWRlckNvbmZpZztcbiIsICIndXNlIHN0cmljdCc7XG5cbmNvbnN0IGxvZ2dlck1pZGRsZXdhcmUgPSAoKSA9PiAobmV4dCwgY29udGV4dCkgPT4gYXN5bmMgKGFyZ3MpID0+IHtcbiAgICB0cnkge1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IG5leHQoYXJncyk7XG4gICAgICAgIGNvbnN0IHsgY2xpZW50TmFtZSwgY29tbWFuZE5hbWUsIGxvZ2dlciwgZHluYW1vRGJEb2N1bWVudENsaWVudE9wdGlvbnMgPSB7fSB9ID0gY29udGV4dDtcbiAgICAgICAgY29uc3QgeyBvdmVycmlkZUlucHV0RmlsdGVyU2Vuc2l0aXZlTG9nLCBvdmVycmlkZU91dHB1dEZpbHRlclNlbnNpdGl2ZUxvZyB9ID0gZHluYW1vRGJEb2N1bWVudENsaWVudE9wdGlvbnM7XG4gICAgICAgIGNvbnN0IGlucHV0RmlsdGVyU2Vuc2l0aXZlTG9nID0gb3ZlcnJpZGVJbnB1dEZpbHRlclNlbnNpdGl2ZUxvZyA/PyBjb250ZXh0LmlucHV0RmlsdGVyU2Vuc2l0aXZlTG9nO1xuICAgICAgICBjb25zdCBvdXRwdXRGaWx0ZXJTZW5zaXRpdmVMb2cgPSBvdmVycmlkZU91dHB1dEZpbHRlclNlbnNpdGl2ZUxvZyA/PyBjb250ZXh0Lm91dHB1dEZpbHRlclNlbnNpdGl2ZUxvZztcbiAgICAgICAgY29uc3QgeyAkbWV0YWRhdGEsIC4uLm91dHB1dFdpdGhvdXRNZXRhZGF0YSB9ID0gcmVzcG9uc2Uub3V0cHV0O1xuICAgICAgICBsb2dnZXI/LmluZm8/Lih7XG4gICAgICAgICAgICBjbGllbnROYW1lLFxuICAgICAgICAgICAgY29tbWFuZE5hbWUsXG4gICAgICAgICAgICBpbnB1dDogaW5wdXRGaWx0ZXJTZW5zaXRpdmVMb2coYXJncy5pbnB1dCksXG4gICAgICAgICAgICBvdXRwdXQ6IG91dHB1dEZpbHRlclNlbnNpdGl2ZUxvZyhvdXRwdXRXaXRob3V0TWV0YWRhdGEpLFxuICAgICAgICAgICAgbWV0YWRhdGE6ICRtZXRhZGF0YSxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICB9XG4gICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnN0IHsgY2xpZW50TmFtZSwgY29tbWFuZE5hbWUsIGxvZ2dlciwgZHluYW1vRGJEb2N1bWVudENsaWVudE9wdGlvbnMgPSB7fSB9ID0gY29udGV4dDtcbiAgICAgICAgY29uc3QgeyBvdmVycmlkZUlucHV0RmlsdGVyU2Vuc2l0aXZlTG9nIH0gPSBkeW5hbW9EYkRvY3VtZW50Q2xpZW50T3B0aW9ucztcbiAgICAgICAgY29uc3QgaW5wdXRGaWx0ZXJTZW5zaXRpdmVMb2cgPSBvdmVycmlkZUlucHV0RmlsdGVyU2Vuc2l0aXZlTG9nID8/IGNvbnRleHQuaW5wdXRGaWx0ZXJTZW5zaXRpdmVMb2c7XG4gICAgICAgIGxvZ2dlcj8uZXJyb3I/Lih7XG4gICAgICAgICAgICBjbGllbnROYW1lLFxuICAgICAgICAgICAgY29tbWFuZE5hbWUsXG4gICAgICAgICAgICBpbnB1dDogaW5wdXRGaWx0ZXJTZW5zaXRpdmVMb2coYXJncy5pbnB1dCksXG4gICAgICAgICAgICBlcnJvcixcbiAgICAgICAgICAgIG1ldGFkYXRhOiBlcnJvci4kbWV0YWRhdGEsXG4gICAgICAgIH0pO1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG59O1xuY29uc3QgbG9nZ2VyTWlkZGxld2FyZU9wdGlvbnMgPSB7XG4gICAgbmFtZTogXCJsb2dnZXJNaWRkbGV3YXJlXCIsXG4gICAgdGFnczogW1wiTE9HR0VSXCJdLFxuICAgIHN0ZXA6IFwiaW5pdGlhbGl6ZVwiLFxuICAgIG92ZXJyaWRlOiB0cnVlLFxufTtcbmNvbnN0IGdldExvZ2dlclBsdWdpbiA9IChvcHRpb25zKSA9PiAoe1xuICAgIGFwcGx5VG9TdGFjazogKGNsaWVudFN0YWNrKSA9PiB7XG4gICAgICAgIGNsaWVudFN0YWNrLmFkZChsb2dnZXJNaWRkbGV3YXJlKCksIGxvZ2dlck1pZGRsZXdhcmVPcHRpb25zKTtcbiAgICB9LFxufSk7XG5cbmV4cG9ydHMuZ2V0TG9nZ2VyUGx1Z2luID0gZ2V0TG9nZ2VyUGx1Z2luO1xuZXhwb3J0cy5sb2dnZXJNaWRkbGV3YXJlID0gbG9nZ2VyTWlkZGxld2FyZTtcbmV4cG9ydHMubG9nZ2VyTWlkZGxld2FyZU9wdGlvbnMgPSBsb2dnZXJNaWRkbGV3YXJlT3B0aW9ucztcbiIsICJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMucmVjdXJzaW9uRGV0ZWN0aW9uTWlkZGxld2FyZSA9IHZvaWQgMDtcbmNvbnN0IGxhbWJkYV9pbnZva2Vfc3RvcmVfMSA9IHJlcXVpcmUoXCJAYXdzL2xhbWJkYS1pbnZva2Utc3RvcmVcIik7XG5jb25zdCBwcm90b2NvbF9odHRwXzEgPSByZXF1aXJlKFwiQHNtaXRoeS9wcm90b2NvbC1odHRwXCIpO1xuY29uc3QgVFJBQ0VfSURfSEVBREVSX05BTUUgPSBcIlgtQW16bi1UcmFjZS1JZFwiO1xuY29uc3QgRU5WX0xBTUJEQV9GVU5DVElPTl9OQU1FID0gXCJBV1NfTEFNQkRBX0ZVTkNUSU9OX05BTUVcIjtcbmNvbnN0IEVOVl9UUkFDRV9JRCA9IFwiX1hfQU1aTl9UUkFDRV9JRFwiO1xuY29uc3QgcmVjdXJzaW9uRGV0ZWN0aW9uTWlkZGxld2FyZSA9ICgpID0+IChuZXh0KSA9PiBhc3luYyAoYXJncykgPT4ge1xuICAgIGNvbnN0IHsgcmVxdWVzdCB9ID0gYXJncztcbiAgICBpZiAoIXByb3RvY29sX2h0dHBfMS5IdHRwUmVxdWVzdC5pc0luc3RhbmNlKHJlcXVlc3QpKSB7XG4gICAgICAgIHJldHVybiBuZXh0KGFyZ3MpO1xuICAgIH1cbiAgICBjb25zdCB0cmFjZUlkSGVhZGVyID0gT2JqZWN0LmtleXMocmVxdWVzdC5oZWFkZXJzID8/IHt9KS5maW5kKChoKSA9PiBoLnRvTG93ZXJDYXNlKCkgPT09IFRSQUNFX0lEX0hFQURFUl9OQU1FLnRvTG93ZXJDYXNlKCkpID8/XG4gICAgICAgIFRSQUNFX0lEX0hFQURFUl9OQU1FO1xuICAgIGlmIChyZXF1ZXN0LmhlYWRlcnMuaGFzT3duUHJvcGVydHkodHJhY2VJZEhlYWRlcikpIHtcbiAgICAgICAgcmV0dXJuIG5leHQoYXJncyk7XG4gICAgfVxuICAgIGNvbnN0IGZ1bmN0aW9uTmFtZSA9IHByb2Nlc3MuZW52W0VOVl9MQU1CREFfRlVOQ1RJT05fTkFNRV07XG4gICAgY29uc3QgdHJhY2VJZEZyb21FbnYgPSBwcm9jZXNzLmVudltFTlZfVFJBQ0VfSURdO1xuICAgIGNvbnN0IGludm9rZVN0b3JlID0gYXdhaXQgbGFtYmRhX2ludm9rZV9zdG9yZV8xLkludm9rZVN0b3JlLmdldEluc3RhbmNlQXN5bmMoKTtcbiAgICBjb25zdCB0cmFjZUlkRnJvbUludm9rZVN0b3JlID0gaW52b2tlU3RvcmU/LmdldFhSYXlUcmFjZUlkKCk7XG4gICAgY29uc3QgdHJhY2VJZCA9IHRyYWNlSWRGcm9tSW52b2tlU3RvcmUgPz8gdHJhY2VJZEZyb21FbnY7XG4gICAgY29uc3Qgbm9uRW1wdHlTdHJpbmcgPSAoc3RyKSA9PiB0eXBlb2Ygc3RyID09PSBcInN0cmluZ1wiICYmIHN0ci5sZW5ndGggPiAwO1xuICAgIGlmIChub25FbXB0eVN0cmluZyhmdW5jdGlvbk5hbWUpICYmIG5vbkVtcHR5U3RyaW5nKHRyYWNlSWQpKSB7XG4gICAgICAgIHJlcXVlc3QuaGVhZGVyc1tUUkFDRV9JRF9IRUFERVJfTkFNRV0gPSB0cmFjZUlkO1xuICAgIH1cbiAgICByZXR1cm4gbmV4dCh7XG4gICAgICAgIC4uLmFyZ3MsXG4gICAgICAgIHJlcXVlc3QsXG4gICAgfSk7XG59O1xuZXhwb3J0cy5yZWN1cnNpb25EZXRlY3Rpb25NaWRkbGV3YXJlID0gcmVjdXJzaW9uRGV0ZWN0aW9uTWlkZGxld2FyZTtcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciByZWN1cnNpb25EZXRlY3Rpb25NaWRkbGV3YXJlID0gcmVxdWlyZSgnLi9yZWN1cnNpb25EZXRlY3Rpb25NaWRkbGV3YXJlJyk7XG5cbmNvbnN0IHJlY3Vyc2lvbkRldGVjdGlvbk1pZGRsZXdhcmVPcHRpb25zID0ge1xuICAgIHN0ZXA6IFwiYnVpbGRcIixcbiAgICB0YWdzOiBbXCJSRUNVUlNJT05fREVURUNUSU9OXCJdLFxuICAgIG5hbWU6IFwicmVjdXJzaW9uRGV0ZWN0aW9uTWlkZGxld2FyZVwiLFxuICAgIG92ZXJyaWRlOiB0cnVlLFxuICAgIHByaW9yaXR5OiBcImxvd1wiLFxufTtcblxuY29uc3QgZ2V0UmVjdXJzaW9uRGV0ZWN0aW9uUGx1Z2luID0gKG9wdGlvbnMpID0+ICh7XG4gICAgYXBwbHlUb1N0YWNrOiAoY2xpZW50U3RhY2spID0+IHtcbiAgICAgICAgY2xpZW50U3RhY2suYWRkKHJlY3Vyc2lvbkRldGVjdGlvbk1pZGRsZXdhcmUucmVjdXJzaW9uRGV0ZWN0aW9uTWlkZGxld2FyZSgpLCByZWN1cnNpb25EZXRlY3Rpb25NaWRkbGV3YXJlT3B0aW9ucyk7XG4gICAgfSxcbn0pO1xuXG5leHBvcnRzLmdldFJlY3Vyc2lvbkRldGVjdGlvblBsdWdpbiA9IGdldFJlY3Vyc2lvbkRldGVjdGlvblBsdWdpbjtcbk9iamVjdC5rZXlzKHJlY3Vyc2lvbkRldGVjdGlvbk1pZGRsZXdhcmUpLmZvckVhY2goZnVuY3Rpb24gKGspIHtcbiAgICBpZiAoayAhPT0gJ2RlZmF1bHQnICYmICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXhwb3J0cywgaykpIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBrLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gcmVjdXJzaW9uRGV0ZWN0aW9uTWlkZGxld2FyZVtrXTsgfVxuICAgIH0pO1xufSk7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgdXRpbEVuZHBvaW50cyA9IHJlcXVpcmUoJ0BzbWl0aHkvdXRpbC1lbmRwb2ludHMnKTtcbnZhciB1cmxQYXJzZXIgPSByZXF1aXJlKCdAc21pdGh5L3VybC1wYXJzZXInKTtcblxuY29uc3QgaXNWaXJ0dWFsSG9zdGFibGVTM0J1Y2tldCA9ICh2YWx1ZSwgYWxsb3dTdWJEb21haW5zID0gZmFsc2UpID0+IHtcbiAgICBpZiAoYWxsb3dTdWJEb21haW5zKSB7XG4gICAgICAgIGZvciAoY29uc3QgbGFiZWwgb2YgdmFsdWUuc3BsaXQoXCIuXCIpKSB7XG4gICAgICAgICAgICBpZiAoIWlzVmlydHVhbEhvc3RhYmxlUzNCdWNrZXQobGFiZWwpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAoIXV0aWxFbmRwb2ludHMuaXNWYWxpZEhvc3RMYWJlbCh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAodmFsdWUubGVuZ3RoIDwgMyB8fCB2YWx1ZS5sZW5ndGggPiA2Mykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmICh2YWx1ZSAhPT0gdmFsdWUudG9Mb3dlckNhc2UoKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmICh1dGlsRW5kcG9pbnRzLmlzSXBBZGRyZXNzKHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xufTtcblxuY29uc3QgQVJOX0RFTElNSVRFUiA9IFwiOlwiO1xuY29uc3QgUkVTT1VSQ0VfREVMSU1JVEVSID0gXCIvXCI7XG5jb25zdCBwYXJzZUFybiA9ICh2YWx1ZSkgPT4ge1xuICAgIGNvbnN0IHNlZ21lbnRzID0gdmFsdWUuc3BsaXQoQVJOX0RFTElNSVRFUik7XG4gICAgaWYgKHNlZ21lbnRzLmxlbmd0aCA8IDYpXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIGNvbnN0IFthcm4sIHBhcnRpdGlvbiwgc2VydmljZSwgcmVnaW9uLCBhY2NvdW50SWQsIC4uLnJlc291cmNlUGF0aF0gPSBzZWdtZW50cztcbiAgICBpZiAoYXJuICE9PSBcImFyblwiIHx8IHBhcnRpdGlvbiA9PT0gXCJcIiB8fCBzZXJ2aWNlID09PSBcIlwiIHx8IHJlc291cmNlUGF0aC5qb2luKEFSTl9ERUxJTUlURVIpID09PSBcIlwiKVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICBjb25zdCByZXNvdXJjZUlkID0gcmVzb3VyY2VQYXRoLm1hcCgocmVzb3VyY2UpID0+IHJlc291cmNlLnNwbGl0KFJFU09VUkNFX0RFTElNSVRFUikpLmZsYXQoKTtcbiAgICByZXR1cm4ge1xuICAgICAgICBwYXJ0aXRpb24sXG4gICAgICAgIHNlcnZpY2UsXG4gICAgICAgIHJlZ2lvbixcbiAgICAgICAgYWNjb3VudElkLFxuICAgICAgICByZXNvdXJjZUlkLFxuICAgIH07XG59O1xuXG52YXIgcGFydGl0aW9ucyA9IFtcblx0e1xuXHRcdGlkOiBcImF3c1wiLFxuXHRcdG91dHB1dHM6IHtcblx0XHRcdGRuc1N1ZmZpeDogXCJhbWF6b25hd3MuY29tXCIsXG5cdFx0XHRkdWFsU3RhY2tEbnNTdWZmaXg6IFwiYXBpLmF3c1wiLFxuXHRcdFx0aW1wbGljaXRHbG9iYWxSZWdpb246IFwidXMtZWFzdC0xXCIsXG5cdFx0XHRuYW1lOiBcImF3c1wiLFxuXHRcdFx0c3VwcG9ydHNEdWFsU3RhY2s6IHRydWUsXG5cdFx0XHRzdXBwb3J0c0ZJUFM6IHRydWVcblx0XHR9LFxuXHRcdHJlZ2lvblJlZ2V4OiBcIl4odXN8ZXV8YXB8c2F8Y2F8bWV8YWZ8aWx8bXgpXFxcXC1cXFxcdytcXFxcLVxcXFxkKyRcIixcblx0XHRyZWdpb25zOiB7XG5cdFx0XHRcImFmLXNvdXRoLTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBZnJpY2EgKENhcGUgVG93bilcIlxuXHRcdFx0fSxcblx0XHRcdFwiYXAtZWFzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChIb25nIEtvbmcpXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLWVhc3QtMlwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFzaWEgUGFjaWZpYyAoVGFpcGVpKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJhcC1ub3J0aGVhc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFzaWEgUGFjaWZpYyAoVG9reW8pXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLW5vcnRoZWFzdC0yXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChTZW91bClcIlxuXHRcdFx0fSxcblx0XHRcdFwiYXAtbm9ydGhlYXN0LTNcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBc2lhIFBhY2lmaWMgKE9zYWthKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJhcC1zb3V0aC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChNdW1iYWkpXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLXNvdXRoLTJcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBc2lhIFBhY2lmaWMgKEh5ZGVyYWJhZClcIlxuXHRcdFx0fSxcblx0XHRcdFwiYXAtc291dGhlYXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBc2lhIFBhY2lmaWMgKFNpbmdhcG9yZSlcIlxuXHRcdFx0fSxcblx0XHRcdFwiYXAtc291dGhlYXN0LTJcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBc2lhIFBhY2lmaWMgKFN5ZG5leSlcIlxuXHRcdFx0fSxcblx0XHRcdFwiYXAtc291dGhlYXN0LTNcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBc2lhIFBhY2lmaWMgKEpha2FydGEpXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLXNvdXRoZWFzdC00XCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChNZWxib3VybmUpXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLXNvdXRoZWFzdC01XCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChNYWxheXNpYSlcIlxuXHRcdFx0fSxcblx0XHRcdFwiYXAtc291dGhlYXN0LTZcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBc2lhIFBhY2lmaWMgKE5ldyBaZWFsYW5kKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJhcC1zb3V0aGVhc3QtN1wiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFzaWEgUGFjaWZpYyAoVGhhaWxhbmQpXCJcblx0XHRcdH0sXG5cdFx0XHRcImF3cy1nbG9iYWxcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJhd3MgZ2xvYmFsIHJlZ2lvblwiXG5cdFx0XHR9LFxuXHRcdFx0XCJjYS1jZW50cmFsLTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJDYW5hZGEgKENlbnRyYWwpXCJcblx0XHRcdH0sXG5cdFx0XHRcImNhLXdlc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkNhbmFkYSBXZXN0IChDYWxnYXJ5KVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJldS1jZW50cmFsLTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJFdXJvcGUgKEZyYW5rZnVydClcIlxuXHRcdFx0fSxcblx0XHRcdFwiZXUtY2VudHJhbC0yXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiRXVyb3BlIChadXJpY2gpXCJcblx0XHRcdH0sXG5cdFx0XHRcImV1LW5vcnRoLTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJFdXJvcGUgKFN0b2NraG9sbSlcIlxuXHRcdFx0fSxcblx0XHRcdFwiZXUtc291dGgtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkV1cm9wZSAoTWlsYW4pXCJcblx0XHRcdH0sXG5cdFx0XHRcImV1LXNvdXRoLTJcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJFdXJvcGUgKFNwYWluKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJldS13ZXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJFdXJvcGUgKElyZWxhbmQpXCJcblx0XHRcdH0sXG5cdFx0XHRcImV1LXdlc3QtMlwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkV1cm9wZSAoTG9uZG9uKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJldS13ZXN0LTNcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJFdXJvcGUgKFBhcmlzKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJpbC1jZW50cmFsLTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJJc3JhZWwgKFRlbCBBdml2KVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJtZS1jZW50cmFsLTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJNaWRkbGUgRWFzdCAoVUFFKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJtZS1zb3V0aC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiTWlkZGxlIEVhc3QgKEJhaHJhaW4pXCJcblx0XHRcdH0sXG5cdFx0XHRcIm14LWNlbnRyYWwtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIk1leGljbyAoQ2VudHJhbClcIlxuXHRcdFx0fSxcblx0XHRcdFwic2EtZWFzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiU291dGggQW1lcmljYSAoU2FvIFBhdWxvKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJ1cy1lYXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJVUyBFYXN0IChOLiBWaXJnaW5pYSlcIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtZWFzdC0yXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiVVMgRWFzdCAoT2hpbylcIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtd2VzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiVVMgV2VzdCAoTi4gQ2FsaWZvcm5pYSlcIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtd2VzdC0yXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiVVMgV2VzdCAoT3JlZ29uKVwiXG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXHR7XG5cdFx0aWQ6IFwiYXdzLWNuXCIsXG5cdFx0b3V0cHV0czoge1xuXHRcdFx0ZG5zU3VmZml4OiBcImFtYXpvbmF3cy5jb20uY25cIixcblx0XHRcdGR1YWxTdGFja0Ruc1N1ZmZpeDogXCJhcGkuYW1hem9ud2Vic2VydmljZXMuY29tLmNuXCIsXG5cdFx0XHRpbXBsaWNpdEdsb2JhbFJlZ2lvbjogXCJjbi1ub3J0aHdlc3QtMVwiLFxuXHRcdFx0bmFtZTogXCJhd3MtY25cIixcblx0XHRcdHN1cHBvcnRzRHVhbFN0YWNrOiB0cnVlLFxuXHRcdFx0c3VwcG9ydHNGSVBTOiB0cnVlXG5cdFx0fSxcblx0XHRyZWdpb25SZWdleDogXCJeY25cXFxcLVxcXFx3K1xcXFwtXFxcXGQrJFwiLFxuXHRcdHJlZ2lvbnM6IHtcblx0XHRcdFwiYXdzLWNuLWdsb2JhbFwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcImF3cy1jbiBnbG9iYWwgcmVnaW9uXCJcblx0XHRcdH0sXG5cdFx0XHRcImNuLW5vcnRoLTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJDaGluYSAoQmVpamluZylcIlxuXHRcdFx0fSxcblx0XHRcdFwiY24tbm9ydGh3ZXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJDaGluYSAoTmluZ3hpYSlcIlxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0e1xuXHRcdGlkOiBcImF3cy1ldXNjXCIsXG5cdFx0b3V0cHV0czoge1xuXHRcdFx0ZG5zU3VmZml4OiBcImFtYXpvbmF3cy5ldVwiLFxuXHRcdFx0ZHVhbFN0YWNrRG5zU3VmZml4OiBcImFwaS5hbWF6b253ZWJzZXJ2aWNlcy5ldVwiLFxuXHRcdFx0aW1wbGljaXRHbG9iYWxSZWdpb246IFwiZXVzYy1kZS1lYXN0LTFcIixcblx0XHRcdG5hbWU6IFwiYXdzLWV1c2NcIixcblx0XHRcdHN1cHBvcnRzRHVhbFN0YWNrOiB0cnVlLFxuXHRcdFx0c3VwcG9ydHNGSVBTOiB0cnVlXG5cdFx0fSxcblx0XHRyZWdpb25SZWdleDogXCJeZXVzY1xcXFwtKGRlKVxcXFwtXFxcXHcrXFxcXC1cXFxcZCskXCIsXG5cdFx0cmVnaW9uczoge1xuXHRcdFx0XCJldXNjLWRlLWVhc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFXUyBFdXJvcGVhbiBTb3ZlcmVpZ24gQ2xvdWQgKEdlcm1hbnkpXCJcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdHtcblx0XHRpZDogXCJhd3MtaXNvXCIsXG5cdFx0b3V0cHV0czoge1xuXHRcdFx0ZG5zU3VmZml4OiBcImMycy5pYy5nb3ZcIixcblx0XHRcdGR1YWxTdGFja0Ruc1N1ZmZpeDogXCJhcGkuYXdzLmljLmdvdlwiLFxuXHRcdFx0aW1wbGljaXRHbG9iYWxSZWdpb246IFwidXMtaXNvLWVhc3QtMVwiLFxuXHRcdFx0bmFtZTogXCJhd3MtaXNvXCIsXG5cdFx0XHRzdXBwb3J0c0R1YWxTdGFjazogdHJ1ZSxcblx0XHRcdHN1cHBvcnRzRklQUzogdHJ1ZVxuXHRcdH0sXG5cdFx0cmVnaW9uUmVnZXg6IFwiXnVzXFxcXC1pc29cXFxcLVxcXFx3K1xcXFwtXFxcXGQrJFwiLFxuXHRcdHJlZ2lvbnM6IHtcblx0XHRcdFwiYXdzLWlzby1nbG9iYWxcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJhd3MtaXNvIGdsb2JhbCByZWdpb25cIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtaXNvLWVhc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIlVTIElTTyBFYXN0XCJcblx0XHRcdH0sXG5cdFx0XHRcInVzLWlzby13ZXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJVUyBJU08gV0VTVFwiXG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXHR7XG5cdFx0aWQ6IFwiYXdzLWlzby1iXCIsXG5cdFx0b3V0cHV0czoge1xuXHRcdFx0ZG5zU3VmZml4OiBcInNjMnMuc2dvdi5nb3ZcIixcblx0XHRcdGR1YWxTdGFja0Ruc1N1ZmZpeDogXCJhcGkuYXdzLnNjbG91ZFwiLFxuXHRcdFx0aW1wbGljaXRHbG9iYWxSZWdpb246IFwidXMtaXNvYi1lYXN0LTFcIixcblx0XHRcdG5hbWU6IFwiYXdzLWlzby1iXCIsXG5cdFx0XHRzdXBwb3J0c0R1YWxTdGFjazogdHJ1ZSxcblx0XHRcdHN1cHBvcnRzRklQUzogdHJ1ZVxuXHRcdH0sXG5cdFx0cmVnaW9uUmVnZXg6IFwiXnVzXFxcXC1pc29iXFxcXC1cXFxcdytcXFxcLVxcXFxkKyRcIixcblx0XHRyZWdpb25zOiB7XG5cdFx0XHRcImF3cy1pc28tYi1nbG9iYWxcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJhd3MtaXNvLWIgZ2xvYmFsIHJlZ2lvblwiXG5cdFx0XHR9LFxuXHRcdFx0XCJ1cy1pc29iLWVhc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIlVTIElTT0IgRWFzdCAoT2hpbylcIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtaXNvYi13ZXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJVUyBJU09CIFdlc3RcIlxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0e1xuXHRcdGlkOiBcImF3cy1pc28tZVwiLFxuXHRcdG91dHB1dHM6IHtcblx0XHRcdGRuc1N1ZmZpeDogXCJjbG91ZC5hZGMtZS51a1wiLFxuXHRcdFx0ZHVhbFN0YWNrRG5zU3VmZml4OiBcImFwaS5jbG91ZC1hd3MuYWRjLWUudWtcIixcblx0XHRcdGltcGxpY2l0R2xvYmFsUmVnaW9uOiBcImV1LWlzb2Utd2VzdC0xXCIsXG5cdFx0XHRuYW1lOiBcImF3cy1pc28tZVwiLFxuXHRcdFx0c3VwcG9ydHNEdWFsU3RhY2s6IHRydWUsXG5cdFx0XHRzdXBwb3J0c0ZJUFM6IHRydWVcblx0XHR9LFxuXHRcdHJlZ2lvblJlZ2V4OiBcIl5ldVxcXFwtaXNvZVxcXFwtXFxcXHcrXFxcXC1cXFxcZCskXCIsXG5cdFx0cmVnaW9uczoge1xuXHRcdFx0XCJhd3MtaXNvLWUtZ2xvYmFsXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiYXdzLWlzby1lIGdsb2JhbCByZWdpb25cIlxuXHRcdFx0fSxcblx0XHRcdFwiZXUtaXNvZS13ZXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJFVSBJU09FIFdlc3RcIlxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0e1xuXHRcdGlkOiBcImF3cy1pc28tZlwiLFxuXHRcdG91dHB1dHM6IHtcblx0XHRcdGRuc1N1ZmZpeDogXCJjc3AuaGNpLmljLmdvdlwiLFxuXHRcdFx0ZHVhbFN0YWNrRG5zU3VmZml4OiBcImFwaS5hd3MuaGNpLmljLmdvdlwiLFxuXHRcdFx0aW1wbGljaXRHbG9iYWxSZWdpb246IFwidXMtaXNvZi1zb3V0aC0xXCIsXG5cdFx0XHRuYW1lOiBcImF3cy1pc28tZlwiLFxuXHRcdFx0c3VwcG9ydHNEdWFsU3RhY2s6IHRydWUsXG5cdFx0XHRzdXBwb3J0c0ZJUFM6IHRydWVcblx0XHR9LFxuXHRcdHJlZ2lvblJlZ2V4OiBcIl51c1xcXFwtaXNvZlxcXFwtXFxcXHcrXFxcXC1cXFxcZCskXCIsXG5cdFx0cmVnaW9uczoge1xuXHRcdFx0XCJhd3MtaXNvLWYtZ2xvYmFsXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiYXdzLWlzby1mIGdsb2JhbCByZWdpb25cIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtaXNvZi1lYXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJVUyBJU09GIEVBU1RcIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtaXNvZi1zb3V0aC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiVVMgSVNPRiBTT1VUSFwiXG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXHR7XG5cdFx0aWQ6IFwiYXdzLXVzLWdvdlwiLFxuXHRcdG91dHB1dHM6IHtcblx0XHRcdGRuc1N1ZmZpeDogXCJhbWF6b25hd3MuY29tXCIsXG5cdFx0XHRkdWFsU3RhY2tEbnNTdWZmaXg6IFwiYXBpLmF3c1wiLFxuXHRcdFx0aW1wbGljaXRHbG9iYWxSZWdpb246IFwidXMtZ292LXdlc3QtMVwiLFxuXHRcdFx0bmFtZTogXCJhd3MtdXMtZ292XCIsXG5cdFx0XHRzdXBwb3J0c0R1YWxTdGFjazogdHJ1ZSxcblx0XHRcdHN1cHBvcnRzRklQUzogdHJ1ZVxuXHRcdH0sXG5cdFx0cmVnaW9uUmVnZXg6IFwiXnVzXFxcXC1nb3ZcXFxcLVxcXFx3K1xcXFwtXFxcXGQrJFwiLFxuXHRcdHJlZ2lvbnM6IHtcblx0XHRcdFwiYXdzLXVzLWdvdi1nbG9iYWxcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJhd3MtdXMtZ292IGdsb2JhbCByZWdpb25cIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtZ292LWVhc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFXUyBHb3ZDbG91ZCAoVVMtRWFzdClcIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtZ292LXdlc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFXUyBHb3ZDbG91ZCAoVVMtV2VzdClcIlxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXTtcbnZhciB2ZXJzaW9uID0gXCIxLjFcIjtcbnZhciBwYXJ0aXRpb25zSW5mbyA9IHtcblx0cGFydGl0aW9uczogcGFydGl0aW9ucyxcblx0dmVyc2lvbjogdmVyc2lvblxufTtcblxubGV0IHNlbGVjdGVkUGFydGl0aW9uc0luZm8gPSBwYXJ0aXRpb25zSW5mbztcbmxldCBzZWxlY3RlZFVzZXJBZ2VudFByZWZpeCA9IFwiXCI7XG5jb25zdCBwYXJ0aXRpb24gPSAodmFsdWUpID0+IHtcbiAgICBjb25zdCB7IHBhcnRpdGlvbnMgfSA9IHNlbGVjdGVkUGFydGl0aW9uc0luZm87XG4gICAgZm9yIChjb25zdCBwYXJ0aXRpb24gb2YgcGFydGl0aW9ucykge1xuICAgICAgICBjb25zdCB7IHJlZ2lvbnMsIG91dHB1dHMgfSA9IHBhcnRpdGlvbjtcbiAgICAgICAgZm9yIChjb25zdCBbcmVnaW9uLCByZWdpb25EYXRhXSBvZiBPYmplY3QuZW50cmllcyhyZWdpb25zKSkge1xuICAgICAgICAgICAgaWYgKHJlZ2lvbiA9PT0gdmFsdWUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAuLi5vdXRwdXRzLFxuICAgICAgICAgICAgICAgICAgICAuLi5yZWdpb25EYXRhLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgZm9yIChjb25zdCBwYXJ0aXRpb24gb2YgcGFydGl0aW9ucykge1xuICAgICAgICBjb25zdCB7IHJlZ2lvblJlZ2V4LCBvdXRwdXRzIH0gPSBwYXJ0aXRpb247XG4gICAgICAgIGlmIChuZXcgUmVnRXhwKHJlZ2lvblJlZ2V4KS50ZXN0KHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5vdXRwdXRzLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBERUZBVUxUX1BBUlRJVElPTiA9IHBhcnRpdGlvbnMuZmluZCgocGFydGl0aW9uKSA9PiBwYXJ0aXRpb24uaWQgPT09IFwiYXdzXCIpO1xuICAgIGlmICghREVGQVVMVF9QQVJUSVRJT04pIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiUHJvdmlkZWQgcmVnaW9uIHdhcyBub3QgZm91bmQgaW4gdGhlIHBhcnRpdGlvbiBhcnJheSBvciByZWdleCxcIiArXG4gICAgICAgICAgICBcIiBhbmQgZGVmYXVsdCBwYXJ0aXRpb24gd2l0aCBpZCAnYXdzJyBkb2Vzbid0IGV4aXN0LlwiKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgLi4uREVGQVVMVF9QQVJUSVRJT04ub3V0cHV0cyxcbiAgICB9O1xufTtcbmNvbnN0IHNldFBhcnRpdGlvbkluZm8gPSAocGFydGl0aW9uc0luZm8sIHVzZXJBZ2VudFByZWZpeCA9IFwiXCIpID0+IHtcbiAgICBzZWxlY3RlZFBhcnRpdGlvbnNJbmZvID0gcGFydGl0aW9uc0luZm87XG4gICAgc2VsZWN0ZWRVc2VyQWdlbnRQcmVmaXggPSB1c2VyQWdlbnRQcmVmaXg7XG59O1xuY29uc3QgdXNlRGVmYXVsdFBhcnRpdGlvbkluZm8gPSAoKSA9PiB7XG4gICAgc2V0UGFydGl0aW9uSW5mbyhwYXJ0aXRpb25zSW5mbywgXCJcIik7XG59O1xuY29uc3QgZ2V0VXNlckFnZW50UHJlZml4ID0gKCkgPT4gc2VsZWN0ZWRVc2VyQWdlbnRQcmVmaXg7XG5cbmNvbnN0IGF3c0VuZHBvaW50RnVuY3Rpb25zID0ge1xuICAgIGlzVmlydHVhbEhvc3RhYmxlUzNCdWNrZXQ6IGlzVmlydHVhbEhvc3RhYmxlUzNCdWNrZXQsXG4gICAgcGFyc2VBcm46IHBhcnNlQXJuLFxuICAgIHBhcnRpdGlvbjogcGFydGl0aW9uLFxufTtcbnV0aWxFbmRwb2ludHMuY3VzdG9tRW5kcG9pbnRGdW5jdGlvbnMuYXdzID0gYXdzRW5kcG9pbnRGdW5jdGlvbnM7XG5cbmNvbnN0IHJlc29sdmVEZWZhdWx0QXdzUmVnaW9uYWxFbmRwb2ludHNDb25maWcgPSAoaW5wdXQpID0+IHtcbiAgICBpZiAodHlwZW9mIGlucHV0LmVuZHBvaW50UHJvdmlkZXIgIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJAYXdzLXNkay91dGlsLWVuZHBvaW50IC0gZW5kcG9pbnRQcm92aWRlciBhbmQgZW5kcG9pbnQgbWlzc2luZyBpbiBjb25maWcgZm9yIHRoaXMgY2xpZW50LlwiKTtcbiAgICB9XG4gICAgY29uc3QgeyBlbmRwb2ludCB9ID0gaW5wdXQ7XG4gICAgaWYgKGVuZHBvaW50ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaW5wdXQuZW5kcG9pbnQgPSBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gdG9FbmRwb2ludFYxKGlucHV0LmVuZHBvaW50UHJvdmlkZXIoe1xuICAgICAgICAgICAgICAgIFJlZ2lvbjogdHlwZW9mIGlucHV0LnJlZ2lvbiA9PT0gXCJmdW5jdGlvblwiID8gYXdhaXQgaW5wdXQucmVnaW9uKCkgOiBpbnB1dC5yZWdpb24sXG4gICAgICAgICAgICAgICAgVXNlRHVhbFN0YWNrOiB0eXBlb2YgaW5wdXQudXNlRHVhbHN0YWNrRW5kcG9pbnQgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICA/IGF3YWl0IGlucHV0LnVzZUR1YWxzdGFja0VuZHBvaW50KClcbiAgICAgICAgICAgICAgICAgICAgOiBpbnB1dC51c2VEdWFsc3RhY2tFbmRwb2ludCxcbiAgICAgICAgICAgICAgICBVc2VGSVBTOiB0eXBlb2YgaW5wdXQudXNlRmlwc0VuZHBvaW50ID09PSBcImZ1bmN0aW9uXCIgPyBhd2FpdCBpbnB1dC51c2VGaXBzRW5kcG9pbnQoKSA6IGlucHV0LnVzZUZpcHNFbmRwb2ludCxcbiAgICAgICAgICAgICAgICBFbmRwb2ludDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfSwgeyBsb2dnZXI6IGlucHV0LmxvZ2dlciB9KSk7XG4gICAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiBpbnB1dDtcbn07XG5jb25zdCB0b0VuZHBvaW50VjEgPSAoZW5kcG9pbnQpID0+IHVybFBhcnNlci5wYXJzZVVybChlbmRwb2ludC51cmwpO1xuXG5leHBvcnRzLkVuZHBvaW50RXJyb3IgPSB1dGlsRW5kcG9pbnRzLkVuZHBvaW50RXJyb3I7XG5leHBvcnRzLmlzSXBBZGRyZXNzID0gdXRpbEVuZHBvaW50cy5pc0lwQWRkcmVzcztcbmV4cG9ydHMucmVzb2x2ZUVuZHBvaW50ID0gdXRpbEVuZHBvaW50cy5yZXNvbHZlRW5kcG9pbnQ7XG5leHBvcnRzLmF3c0VuZHBvaW50RnVuY3Rpb25zID0gYXdzRW5kcG9pbnRGdW5jdGlvbnM7XG5leHBvcnRzLmdldFVzZXJBZ2VudFByZWZpeCA9IGdldFVzZXJBZ2VudFByZWZpeDtcbmV4cG9ydHMucGFydGl0aW9uID0gcGFydGl0aW9uO1xuZXhwb3J0cy5yZXNvbHZlRGVmYXVsdEF3c1JlZ2lvbmFsRW5kcG9pbnRzQ29uZmlnID0gcmVzb2x2ZURlZmF1bHRBd3NSZWdpb25hbEVuZHBvaW50c0NvbmZpZztcbmV4cG9ydHMuc2V0UGFydGl0aW9uSW5mbyA9IHNldFBhcnRpdGlvbkluZm87XG5leHBvcnRzLnRvRW5kcG9pbnRWMSA9IHRvRW5kcG9pbnRWMTtcbmV4cG9ydHMudXNlRGVmYXVsdFBhcnRpdGlvbkluZm8gPSB1c2VEZWZhdWx0UGFydGl0aW9uSW5mbztcbiIsICJleHBvcnQgY29uc3Qgc3RhdGUgPSB7XG4gICAgd2FybmluZ0VtaXR0ZWQ6IGZhbHNlLFxufTtcbmV4cG9ydCBjb25zdCBlbWl0V2FybmluZ0lmVW5zdXBwb3J0ZWRWZXJzaW9uID0gKHZlcnNpb24pID0+IHtcbiAgICBpZiAodmVyc2lvbiAmJiAhc3RhdGUud2FybmluZ0VtaXR0ZWQgJiYgcGFyc2VJbnQodmVyc2lvbi5zdWJzdHJpbmcoMSwgdmVyc2lvbi5pbmRleE9mKFwiLlwiKSkpIDwgMjApIHtcbiAgICAgICAgc3RhdGUud2FybmluZ0VtaXR0ZWQgPSB0cnVlO1xuICAgICAgICBwcm9jZXNzLmVtaXRXYXJuaW5nKGBOb2RlRGVwcmVjYXRpb25XYXJuaW5nOiBUaGUgQVdTIFNESyBmb3IgSmF2YVNjcmlwdCAodjMpIHdpbGxcbm5vIGxvbmdlciBzdXBwb3J0IE5vZGUuanMgJHt2ZXJzaW9ufSBpbiBKYW51YXJ5IDIwMjYuXG5cblRvIGNvbnRpbnVlIHJlY2VpdmluZyB1cGRhdGVzIHRvIEFXUyBzZXJ2aWNlcywgYnVnIGZpeGVzLCBhbmQgc2VjdXJpdHlcbnVwZGF0ZXMgcGxlYXNlIHVwZ3JhZGUgdG8gYSBzdXBwb3J0ZWQgTm9kZS5qcyBMVFMgdmVyc2lvbi5cblxuTW9yZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgYXQ6IGh0dHBzOi8vYS5jby9jODk1SkZwYCk7XG4gICAgfVxufTtcbiIsICJleHBvcnQgZnVuY3Rpb24gc2V0Q3JlZGVudGlhbEZlYXR1cmUoY3JlZGVudGlhbHMsIGZlYXR1cmUsIHZhbHVlKSB7XG4gICAgaWYgKCFjcmVkZW50aWFscy4kc291cmNlKSB7XG4gICAgICAgIGNyZWRlbnRpYWxzLiRzb3VyY2UgPSB7fTtcbiAgICB9XG4gICAgY3JlZGVudGlhbHMuJHNvdXJjZVtmZWF0dXJlXSA9IHZhbHVlO1xuICAgIHJldHVybiBjcmVkZW50aWFscztcbn1cbiIsICJleHBvcnQgZnVuY3Rpb24gc2V0RmVhdHVyZShjb250ZXh0LCBmZWF0dXJlLCB2YWx1ZSkge1xuICAgIGlmICghY29udGV4dC5fX2F3c19zZGtfY29udGV4dCkge1xuICAgICAgICBjb250ZXh0Ll9fYXdzX3Nka19jb250ZXh0ID0ge1xuICAgICAgICAgICAgZmVhdHVyZXM6IHt9LFxuICAgICAgICB9O1xuICAgIH1cbiAgICBlbHNlIGlmICghY29udGV4dC5fX2F3c19zZGtfY29udGV4dC5mZWF0dXJlcykge1xuICAgICAgICBjb250ZXh0Ll9fYXdzX3Nka19jb250ZXh0LmZlYXR1cmVzID0ge307XG4gICAgfVxuICAgIGNvbnRleHQuX19hd3Nfc2RrX2NvbnRleHQuZmVhdHVyZXNbZmVhdHVyZV0gPSB2YWx1ZTtcbn1cbiIsICJleHBvcnQgZnVuY3Rpb24gc2V0VG9rZW5GZWF0dXJlKHRva2VuLCBmZWF0dXJlLCB2YWx1ZSkge1xuICAgIGlmICghdG9rZW4uJHNvdXJjZSkge1xuICAgICAgICB0b2tlbi4kc291cmNlID0ge307XG4gICAgfVxuICAgIHRva2VuLiRzb3VyY2VbZmVhdHVyZV0gPSB2YWx1ZTtcbiAgICByZXR1cm4gdG9rZW47XG59XG4iLCAiZXhwb3J0ICogZnJvbSBcIi4vZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvblwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc2V0Q3JlZGVudGlhbEZlYXR1cmVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NldEZlYXR1cmVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NldFRva2VuRmVhdHVyZVwiO1xuIiwgImltcG9ydCB7IEh0dHBSZXNwb25zZSB9IGZyb20gXCJAc21pdGh5L3Byb3RvY29sLWh0dHBcIjtcbmV4cG9ydCBjb25zdCBnZXREYXRlSGVhZGVyID0gKHJlc3BvbnNlKSA9PiBIdHRwUmVzcG9uc2UuaXNJbnN0YW5jZShyZXNwb25zZSkgPyByZXNwb25zZS5oZWFkZXJzPy5kYXRlID8/IHJlc3BvbnNlLmhlYWRlcnM/LkRhdGUgOiB1bmRlZmluZWQ7XG4iLCAiZXhwb3J0IGNvbnN0IGdldFNrZXdDb3JyZWN0ZWREYXRlID0gKHN5c3RlbUNsb2NrT2Zmc2V0KSA9PiBuZXcgRGF0ZShEYXRlLm5vdygpICsgc3lzdGVtQ2xvY2tPZmZzZXQpO1xuIiwgImltcG9ydCB7IGdldFNrZXdDb3JyZWN0ZWREYXRlIH0gZnJvbSBcIi4vZ2V0U2tld0NvcnJlY3RlZERhdGVcIjtcbmV4cG9ydCBjb25zdCBpc0Nsb2NrU2tld2VkID0gKGNsb2NrVGltZSwgc3lzdGVtQ2xvY2tPZmZzZXQpID0+IE1hdGguYWJzKGdldFNrZXdDb3JyZWN0ZWREYXRlKHN5c3RlbUNsb2NrT2Zmc2V0KS5nZXRUaW1lKCkgLSBjbG9ja1RpbWUpID49IDMwMDAwMDtcbiIsICJpbXBvcnQgeyBpc0Nsb2NrU2tld2VkIH0gZnJvbSBcIi4vaXNDbG9ja1NrZXdlZFwiO1xuZXhwb3J0IGNvbnN0IGdldFVwZGF0ZWRTeXN0ZW1DbG9ja09mZnNldCA9IChjbG9ja1RpbWUsIGN1cnJlbnRTeXN0ZW1DbG9ja09mZnNldCkgPT4ge1xuICAgIGNvbnN0IGNsb2NrVGltZUluTXMgPSBEYXRlLnBhcnNlKGNsb2NrVGltZSk7XG4gICAgaWYgKGlzQ2xvY2tTa2V3ZWQoY2xvY2tUaW1lSW5NcywgY3VycmVudFN5c3RlbUNsb2NrT2Zmc2V0KSkge1xuICAgICAgICByZXR1cm4gY2xvY2tUaW1lSW5NcyAtIERhdGUubm93KCk7XG4gICAgfVxuICAgIHJldHVybiBjdXJyZW50U3lzdGVtQ2xvY2tPZmZzZXQ7XG59O1xuIiwgImV4cG9ydCAqIGZyb20gXCIuL2dldERhdGVIZWFkZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2dldFNrZXdDb3JyZWN0ZWREYXRlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9nZXRVcGRhdGVkU3lzdGVtQ2xvY2tPZmZzZXRcIjtcbiIsICJpbXBvcnQgeyBIdHRwUmVxdWVzdCB9IGZyb20gXCJAc21pdGh5L3Byb3RvY29sLWh0dHBcIjtcbmltcG9ydCB7IGdldERhdGVIZWFkZXIsIGdldFNrZXdDb3JyZWN0ZWREYXRlLCBnZXRVcGRhdGVkU3lzdGVtQ2xvY2tPZmZzZXQgfSBmcm9tIFwiLi4vdXRpbHNcIjtcbmNvbnN0IHRocm93U2lnbmluZ1Byb3BlcnR5RXJyb3IgPSAobmFtZSwgcHJvcGVydHkpID0+IHtcbiAgICBpZiAoIXByb3BlcnR5KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgUHJvcGVydHkgXFxgJHtuYW1lfVxcYCBpcyBub3QgcmVzb2x2ZWQgZm9yIEFXUyBTREsgU2lnVjRBdXRoYCk7XG4gICAgfVxuICAgIHJldHVybiBwcm9wZXJ0eTtcbn07XG5leHBvcnQgY29uc3QgdmFsaWRhdGVTaWduaW5nUHJvcGVydGllcyA9IGFzeW5jIChzaWduaW5nUHJvcGVydGllcykgPT4ge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aHJvd1NpZ25pbmdQcm9wZXJ0eUVycm9yKFwiY29udGV4dFwiLCBzaWduaW5nUHJvcGVydGllcy5jb250ZXh0KTtcbiAgICBjb25zdCBjb25maWcgPSB0aHJvd1NpZ25pbmdQcm9wZXJ0eUVycm9yKFwiY29uZmlnXCIsIHNpZ25pbmdQcm9wZXJ0aWVzLmNvbmZpZyk7XG4gICAgY29uc3QgYXV0aFNjaGVtZSA9IGNvbnRleHQuZW5kcG9pbnRWMj8ucHJvcGVydGllcz8uYXV0aFNjaGVtZXM/LlswXTtcbiAgICBjb25zdCBzaWduZXJGdW5jdGlvbiA9IHRocm93U2lnbmluZ1Byb3BlcnR5RXJyb3IoXCJzaWduZXJcIiwgY29uZmlnLnNpZ25lcik7XG4gICAgY29uc3Qgc2lnbmVyID0gYXdhaXQgc2lnbmVyRnVuY3Rpb24oYXV0aFNjaGVtZSk7XG4gICAgY29uc3Qgc2lnbmluZ1JlZ2lvbiA9IHNpZ25pbmdQcm9wZXJ0aWVzPy5zaWduaW5nUmVnaW9uO1xuICAgIGNvbnN0IHNpZ25pbmdSZWdpb25TZXQgPSBzaWduaW5nUHJvcGVydGllcz8uc2lnbmluZ1JlZ2lvblNldDtcbiAgICBjb25zdCBzaWduaW5nTmFtZSA9IHNpZ25pbmdQcm9wZXJ0aWVzPy5zaWduaW5nTmFtZTtcbiAgICByZXR1cm4ge1xuICAgICAgICBjb25maWcsXG4gICAgICAgIHNpZ25lcixcbiAgICAgICAgc2lnbmluZ1JlZ2lvbixcbiAgICAgICAgc2lnbmluZ1JlZ2lvblNldCxcbiAgICAgICAgc2lnbmluZ05hbWUsXG4gICAgfTtcbn07XG5leHBvcnQgY2xhc3MgQXdzU2RrU2lnVjRTaWduZXIge1xuICAgIGFzeW5jIHNpZ24oaHR0cFJlcXVlc3QsIGlkZW50aXR5LCBzaWduaW5nUHJvcGVydGllcykge1xuICAgICAgICBpZiAoIUh0dHBSZXF1ZXN0LmlzSW5zdGFuY2UoaHR0cFJlcXVlc3QpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJUaGUgcmVxdWVzdCBpcyBub3QgYW4gaW5zdGFuY2Ugb2YgYEh0dHBSZXF1ZXN0YCBhbmQgY2Fubm90IGJlIHNpZ25lZFwiKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB2YWxpZGF0ZWRQcm9wcyA9IGF3YWl0IHZhbGlkYXRlU2lnbmluZ1Byb3BlcnRpZXMoc2lnbmluZ1Byb3BlcnRpZXMpO1xuICAgICAgICBjb25zdCB7IGNvbmZpZywgc2lnbmVyIH0gPSB2YWxpZGF0ZWRQcm9wcztcbiAgICAgICAgbGV0IHsgc2lnbmluZ1JlZ2lvbiwgc2lnbmluZ05hbWUgfSA9IHZhbGlkYXRlZFByb3BzO1xuICAgICAgICBjb25zdCBoYW5kbGVyRXhlY3V0aW9uQ29udGV4dCA9IHNpZ25pbmdQcm9wZXJ0aWVzLmNvbnRleHQ7XG4gICAgICAgIGlmIChoYW5kbGVyRXhlY3V0aW9uQ29udGV4dD8uYXV0aFNjaGVtZXM/Lmxlbmd0aCA/PyAwID4gMSkge1xuICAgICAgICAgICAgY29uc3QgW2ZpcnN0LCBzZWNvbmRdID0gaGFuZGxlckV4ZWN1dGlvbkNvbnRleHQuYXV0aFNjaGVtZXM7XG4gICAgICAgICAgICBpZiAoZmlyc3Q/Lm5hbWUgPT09IFwic2lndjRhXCIgJiYgc2Vjb25kPy5uYW1lID09PSBcInNpZ3Y0XCIpIHtcbiAgICAgICAgICAgICAgICBzaWduaW5nUmVnaW9uID0gc2Vjb25kPy5zaWduaW5nUmVnaW9uID8/IHNpZ25pbmdSZWdpb247XG4gICAgICAgICAgICAgICAgc2lnbmluZ05hbWUgPSBzZWNvbmQ/LnNpZ25pbmdOYW1lID8/IHNpZ25pbmdOYW1lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNpZ25lZFJlcXVlc3QgPSBhd2FpdCBzaWduZXIuc2lnbihodHRwUmVxdWVzdCwge1xuICAgICAgICAgICAgc2lnbmluZ0RhdGU6IGdldFNrZXdDb3JyZWN0ZWREYXRlKGNvbmZpZy5zeXN0ZW1DbG9ja09mZnNldCksXG4gICAgICAgICAgICBzaWduaW5nUmVnaW9uOiBzaWduaW5nUmVnaW9uLFxuICAgICAgICAgICAgc2lnbmluZ1NlcnZpY2U6IHNpZ25pbmdOYW1lLFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHNpZ25lZFJlcXVlc3Q7XG4gICAgfVxuICAgIGVycm9ySGFuZGxlcihzaWduaW5nUHJvcGVydGllcykge1xuICAgICAgICByZXR1cm4gKGVycm9yKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzZXJ2ZXJUaW1lID0gZXJyb3IuU2VydmVyVGltZSA/PyBnZXREYXRlSGVhZGVyKGVycm9yLiRyZXNwb25zZSk7XG4gICAgICAgICAgICBpZiAoc2VydmVyVGltZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHRocm93U2lnbmluZ1Byb3BlcnR5RXJyb3IoXCJjb25maWdcIiwgc2lnbmluZ1Byb3BlcnRpZXMuY29uZmlnKTtcbiAgICAgICAgICAgICAgICBjb25zdCBpbml0aWFsU3lzdGVtQ2xvY2tPZmZzZXQgPSBjb25maWcuc3lzdGVtQ2xvY2tPZmZzZXQ7XG4gICAgICAgICAgICAgICAgY29uZmlnLnN5c3RlbUNsb2NrT2Zmc2V0ID0gZ2V0VXBkYXRlZFN5c3RlbUNsb2NrT2Zmc2V0KHNlcnZlclRpbWUsIGNvbmZpZy5zeXN0ZW1DbG9ja09mZnNldCk7XG4gICAgICAgICAgICAgICAgY29uc3QgY2xvY2tTa2V3Q29ycmVjdGVkID0gY29uZmlnLnN5c3RlbUNsb2NrT2Zmc2V0ICE9PSBpbml0aWFsU3lzdGVtQ2xvY2tPZmZzZXQ7XG4gICAgICAgICAgICAgICAgaWYgKGNsb2NrU2tld0NvcnJlY3RlZCAmJiBlcnJvci4kbWV0YWRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgZXJyb3IuJG1ldGFkYXRhLmNsb2NrU2tld0NvcnJlY3RlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH07XG4gICAgfVxuICAgIHN1Y2Nlc3NIYW5kbGVyKGh0dHBSZXNwb25zZSwgc2lnbmluZ1Byb3BlcnRpZXMpIHtcbiAgICAgICAgY29uc3QgZGF0ZUhlYWRlciA9IGdldERhdGVIZWFkZXIoaHR0cFJlc3BvbnNlKTtcbiAgICAgICAgaWYgKGRhdGVIZWFkZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHRocm93U2lnbmluZ1Byb3BlcnR5RXJyb3IoXCJjb25maWdcIiwgc2lnbmluZ1Byb3BlcnRpZXMuY29uZmlnKTtcbiAgICAgICAgICAgIGNvbmZpZy5zeXN0ZW1DbG9ja09mZnNldCA9IGdldFVwZGF0ZWRTeXN0ZW1DbG9ja09mZnNldChkYXRlSGVhZGVyLCBjb25maWcuc3lzdGVtQ2xvY2tPZmZzZXQpO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0IGNvbnN0IEFXU1NES1NpZ1Y0U2lnbmVyID0gQXdzU2RrU2lnVjRTaWduZXI7XG4iLCAiaW1wb3J0IHsgSHR0cFJlcXVlc3QgfSBmcm9tIFwiQHNtaXRoeS9wcm90b2NvbC1odHRwXCI7XG5pbXBvcnQgeyBnZXRTa2V3Q29ycmVjdGVkRGF0ZSB9IGZyb20gXCIuLi91dGlsc1wiO1xuaW1wb3J0IHsgQXdzU2RrU2lnVjRTaWduZXIsIHZhbGlkYXRlU2lnbmluZ1Byb3BlcnRpZXMgfSBmcm9tIFwiLi9Bd3NTZGtTaWdWNFNpZ25lclwiO1xuZXhwb3J0IGNsYXNzIEF3c1Nka1NpZ1Y0QVNpZ25lciBleHRlbmRzIEF3c1Nka1NpZ1Y0U2lnbmVyIHtcbiAgICBhc3luYyBzaWduKGh0dHBSZXF1ZXN0LCBpZGVudGl0eSwgc2lnbmluZ1Byb3BlcnRpZXMpIHtcbiAgICAgICAgaWYgKCFIdHRwUmVxdWVzdC5pc0luc3RhbmNlKGh0dHBSZXF1ZXN0KSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVGhlIHJlcXVlc3QgaXMgbm90IGFuIGluc3RhbmNlIG9mIGBIdHRwUmVxdWVzdGAgYW5kIGNhbm5vdCBiZSBzaWduZWRcIik7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgeyBjb25maWcsIHNpZ25lciwgc2lnbmluZ1JlZ2lvbiwgc2lnbmluZ1JlZ2lvblNldCwgc2lnbmluZ05hbWUgfSA9IGF3YWl0IHZhbGlkYXRlU2lnbmluZ1Byb3BlcnRpZXMoc2lnbmluZ1Byb3BlcnRpZXMpO1xuICAgICAgICBjb25zdCBjb25maWdSZXNvbHZlZFNpZ25pbmdSZWdpb25TZXQgPSBhd2FpdCBjb25maWcuc2lndjRhU2lnbmluZ1JlZ2lvblNldD8uKCk7XG4gICAgICAgIGNvbnN0IG11bHRpUmVnaW9uT3ZlcnJpZGUgPSAoY29uZmlnUmVzb2x2ZWRTaWduaW5nUmVnaW9uU2V0ID8/XG4gICAgICAgICAgICBzaWduaW5nUmVnaW9uU2V0ID8/IFtzaWduaW5nUmVnaW9uXSkuam9pbihcIixcIik7XG4gICAgICAgIGNvbnN0IHNpZ25lZFJlcXVlc3QgPSBhd2FpdCBzaWduZXIuc2lnbihodHRwUmVxdWVzdCwge1xuICAgICAgICAgICAgc2lnbmluZ0RhdGU6IGdldFNrZXdDb3JyZWN0ZWREYXRlKGNvbmZpZy5zeXN0ZW1DbG9ja09mZnNldCksXG4gICAgICAgICAgICBzaWduaW5nUmVnaW9uOiBtdWx0aVJlZ2lvbk92ZXJyaWRlLFxuICAgICAgICAgICAgc2lnbmluZ1NlcnZpY2U6IHNpZ25pbmdOYW1lLFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHNpZ25lZFJlcXVlc3Q7XG4gICAgfVxufVxuIiwgImV4cG9ydCBjb25zdCBnZXRBcnJheUZvckNvbW1hU2VwYXJhdGVkU3RyaW5nID0gKHN0cikgPT4gdHlwZW9mIHN0ciA9PT0gXCJzdHJpbmdcIiAmJiBzdHIubGVuZ3RoID4gMCA/IHN0ci5zcGxpdChcIixcIikubWFwKChpdGVtKSA9PiBpdGVtLnRyaW0oKSkgOiBbXTtcbiIsICJleHBvcnQgY29uc3QgZ2V0QmVhcmVyVG9rZW5FbnZLZXkgPSAoc2lnbmluZ05hbWUpID0+IGBBV1NfQkVBUkVSX1RPS0VOXyR7c2lnbmluZ05hbWUucmVwbGFjZSgvW1xccy1dL2csIFwiX1wiKS50b1VwcGVyQ2FzZSgpfWA7XG4iLCAiaW1wb3J0IHsgZ2V0QXJyYXlGb3JDb21tYVNlcGFyYXRlZFN0cmluZyB9IGZyb20gXCIuLi91dGlscy9nZXRBcnJheUZvckNvbW1hU2VwYXJhdGVkU3RyaW5nXCI7XG5pbXBvcnQgeyBnZXRCZWFyZXJUb2tlbkVudktleSB9IGZyb20gXCIuLi91dGlscy9nZXRCZWFyZXJUb2tlbkVudktleVwiO1xuY29uc3QgTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX0VOVl9LRVkgPSBcIkFXU19BVVRIX1NDSEVNRV9QUkVGRVJFTkNFXCI7XG5jb25zdCBOT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfQ09ORklHX0tFWSA9IFwiYXV0aF9zY2hlbWVfcHJlZmVyZW5jZVwiO1xuZXhwb3J0IGNvbnN0IE5PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9PUFRJT05TID0ge1xuICAgIGVudmlyb25tZW50VmFyaWFibGVTZWxlY3RvcjogKGVudiwgb3B0aW9ucykgPT4ge1xuICAgICAgICBpZiAob3B0aW9ucz8uc2lnbmluZ05hbWUpIHtcbiAgICAgICAgICAgIGNvbnN0IGJlYXJlclRva2VuS2V5ID0gZ2V0QmVhcmVyVG9rZW5FbnZLZXkob3B0aW9ucy5zaWduaW5nTmFtZSk7XG4gICAgICAgICAgICBpZiAoYmVhcmVyVG9rZW5LZXkgaW4gZW52KVxuICAgICAgICAgICAgICAgIHJldHVybiBbXCJodHRwQmVhcmVyQXV0aFwiXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIShOT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfRU5WX0tFWSBpbiBlbnYpKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgcmV0dXJuIGdldEFycmF5Rm9yQ29tbWFTZXBhcmF0ZWRTdHJpbmcoZW52W05PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9FTlZfS0VZXSk7XG4gICAgfSxcbiAgICBjb25maWdGaWxlU2VsZWN0b3I6IChwcm9maWxlKSA9PiB7XG4gICAgICAgIGlmICghKE5PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9DT05GSUdfS0VZIGluIHByb2ZpbGUpKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgcmV0dXJuIGdldEFycmF5Rm9yQ29tbWFTZXBhcmF0ZWRTdHJpbmcocHJvZmlsZVtOT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfQ09ORklHX0tFWV0pO1xuICAgIH0sXG4gICAgZGVmYXVsdDogW10sXG59O1xuIiwgImltcG9ydCB7IG5vcm1hbGl6ZVByb3ZpZGVyIH0gZnJvbSBcIkBzbWl0aHkvY29yZVwiO1xuaW1wb3J0IHsgUHJvdmlkZXJFcnJvciB9IGZyb20gXCJAc21pdGh5L3Byb3BlcnR5LXByb3ZpZGVyXCI7XG5leHBvcnQgY29uc3QgcmVzb2x2ZUF3c1Nka1NpZ1Y0QUNvbmZpZyA9IChjb25maWcpID0+IHtcbiAgICBjb25maWcuc2lndjRhU2lnbmluZ1JlZ2lvblNldCA9IG5vcm1hbGl6ZVByb3ZpZGVyKGNvbmZpZy5zaWd2NGFTaWduaW5nUmVnaW9uU2V0KTtcbiAgICByZXR1cm4gY29uZmlnO1xufTtcbmV4cG9ydCBjb25zdCBOT0RFX1NJR1Y0QV9DT05GSUdfT1BUSU9OUyA9IHtcbiAgICBlbnZpcm9ubWVudFZhcmlhYmxlU2VsZWN0b3IoZW52KSB7XG4gICAgICAgIGlmIChlbnYuQVdTX1NJR1Y0QV9TSUdOSU5HX1JFR0lPTl9TRVQpIHtcbiAgICAgICAgICAgIHJldHVybiBlbnYuQVdTX1NJR1Y0QV9TSUdOSU5HX1JFR0lPTl9TRVQuc3BsaXQoXCIsXCIpLm1hcCgoXykgPT4gXy50cmltKCkpO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IG5ldyBQcm92aWRlckVycm9yKFwiQVdTX1NJR1Y0QV9TSUdOSU5HX1JFR0lPTl9TRVQgbm90IHNldCBpbiBlbnYuXCIsIHtcbiAgICAgICAgICAgIHRyeU5leHRMaW5rOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICB9LFxuICAgIGNvbmZpZ0ZpbGVTZWxlY3Rvcihwcm9maWxlKSB7XG4gICAgICAgIGlmIChwcm9maWxlLnNpZ3Y0YV9zaWduaW5nX3JlZ2lvbl9zZXQpIHtcbiAgICAgICAgICAgIHJldHVybiAocHJvZmlsZS5zaWd2NGFfc2lnbmluZ19yZWdpb25fc2V0ID8/IFwiXCIpLnNwbGl0KFwiLFwiKS5tYXAoKF8pID0+IF8udHJpbSgpKTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBuZXcgUHJvdmlkZXJFcnJvcihcInNpZ3Y0YV9zaWduaW5nX3JlZ2lvbl9zZXQgbm90IHNldCBpbiBwcm9maWxlLlwiLCB7XG4gICAgICAgICAgICB0cnlOZXh0TGluazogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgfSxcbiAgICBkZWZhdWx0OiB1bmRlZmluZWQsXG59O1xuIiwgImltcG9ydCB7IHNldENyZWRlbnRpYWxGZWF0dXJlIH0gZnJvbSBcIkBhd3Mtc2RrL2NvcmUvY2xpZW50XCI7XG5pbXBvcnQgeyBkb2VzSWRlbnRpdHlSZXF1aXJlUmVmcmVzaCwgaXNJZGVudGl0eUV4cGlyZWQsIG1lbW9pemVJZGVudGl0eVByb3ZpZGVyLCBub3JtYWxpemVQcm92aWRlciwgfSBmcm9tIFwiQHNtaXRoeS9jb3JlXCI7XG5pbXBvcnQgeyBTaWduYXR1cmVWNCB9IGZyb20gXCJAc21pdGh5L3NpZ25hdHVyZS12NFwiO1xuZXhwb3J0IGNvbnN0IHJlc29sdmVBd3NTZGtTaWdWNENvbmZpZyA9IChjb25maWcpID0+IHtcbiAgICBsZXQgaW5wdXRDcmVkZW50aWFscyA9IGNvbmZpZy5jcmVkZW50aWFscztcbiAgICBsZXQgaXNVc2VyU3VwcGxpZWQgPSAhIWNvbmZpZy5jcmVkZW50aWFscztcbiAgICBsZXQgcmVzb2x2ZWRDcmVkZW50aWFscyA9IHVuZGVmaW5lZDtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoY29uZmlnLCBcImNyZWRlbnRpYWxzXCIsIHtcbiAgICAgICAgc2V0KGNyZWRlbnRpYWxzKSB7XG4gICAgICAgICAgICBpZiAoY3JlZGVudGlhbHMgJiYgY3JlZGVudGlhbHMgIT09IGlucHV0Q3JlZGVudGlhbHMgJiYgY3JlZGVudGlhbHMgIT09IHJlc29sdmVkQ3JlZGVudGlhbHMpIHtcbiAgICAgICAgICAgICAgICBpc1VzZXJTdXBwbGllZCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpbnB1dENyZWRlbnRpYWxzID0gY3JlZGVudGlhbHM7XG4gICAgICAgICAgICBjb25zdCBtZW1vaXplZFByb3ZpZGVyID0gbm9ybWFsaXplQ3JlZGVudGlhbFByb3ZpZGVyKGNvbmZpZywge1xuICAgICAgICAgICAgICAgIGNyZWRlbnRpYWxzOiBpbnB1dENyZWRlbnRpYWxzLFxuICAgICAgICAgICAgICAgIGNyZWRlbnRpYWxEZWZhdWx0UHJvdmlkZXI6IGNvbmZpZy5jcmVkZW50aWFsRGVmYXVsdFByb3ZpZGVyLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCBib3VuZFByb3ZpZGVyID0gYmluZENhbGxlckNvbmZpZyhjb25maWcsIG1lbW9pemVkUHJvdmlkZXIpO1xuICAgICAgICAgICAgaWYgKGlzVXNlclN1cHBsaWVkICYmICFib3VuZFByb3ZpZGVyLmF0dHJpYnV0ZWQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpc0NyZWRlbnRpYWxPYmplY3QgPSB0eXBlb2YgaW5wdXRDcmVkZW50aWFscyA9PT0gXCJvYmplY3RcIiAmJiBpbnB1dENyZWRlbnRpYWxzICE9PSBudWxsO1xuICAgICAgICAgICAgICAgIHJlc29sdmVkQ3JlZGVudGlhbHMgPSBhc3luYyAob3B0aW9ucykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjcmVkcyA9IGF3YWl0IGJvdW5kUHJvdmlkZXIob3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGF0dHJpYnV0ZWRDcmVkcyA9IGNyZWRzO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNDcmVkZW50aWFsT2JqZWN0ICYmICghYXR0cmlidXRlZENyZWRzLiRzb3VyY2UgfHwgT2JqZWN0LmtleXMoYXR0cmlidXRlZENyZWRzLiRzb3VyY2UpLmxlbmd0aCA9PT0gMCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzZXRDcmVkZW50aWFsRmVhdHVyZShhdHRyaWJ1dGVkQ3JlZHMsIFwiQ1JFREVOVElBTFNfQ09ERVwiLCBcImVcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGF0dHJpYnV0ZWRDcmVkcztcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIHJlc29sdmVkQ3JlZGVudGlhbHMubWVtb2l6ZWQgPSBib3VuZFByb3ZpZGVyLm1lbW9pemVkO1xuICAgICAgICAgICAgICAgIHJlc29sdmVkQ3JlZGVudGlhbHMuY29uZmlnQm91bmQgPSBib3VuZFByb3ZpZGVyLmNvbmZpZ0JvdW5kO1xuICAgICAgICAgICAgICAgIHJlc29sdmVkQ3JlZGVudGlhbHMuYXR0cmlidXRlZCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXNvbHZlZENyZWRlbnRpYWxzID0gYm91bmRQcm92aWRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZ2V0KCkge1xuICAgICAgICAgICAgcmV0dXJuIHJlc29sdmVkQ3JlZGVudGlhbHM7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICB9KTtcbiAgICBjb25maWcuY3JlZGVudGlhbHMgPSBpbnB1dENyZWRlbnRpYWxzO1xuICAgIGNvbnN0IHsgc2lnbmluZ0VzY2FwZVBhdGggPSB0cnVlLCBzeXN0ZW1DbG9ja09mZnNldCA9IGNvbmZpZy5zeXN0ZW1DbG9ja09mZnNldCB8fCAwLCBzaGEyNTYsIH0gPSBjb25maWc7XG4gICAgbGV0IHNpZ25lcjtcbiAgICBpZiAoY29uZmlnLnNpZ25lcikge1xuICAgICAgICBzaWduZXIgPSBub3JtYWxpemVQcm92aWRlcihjb25maWcuc2lnbmVyKTtcbiAgICB9XG4gICAgZWxzZSBpZiAoY29uZmlnLnJlZ2lvbkluZm9Qcm92aWRlcikge1xuICAgICAgICBzaWduZXIgPSAoKSA9PiBub3JtYWxpemVQcm92aWRlcihjb25maWcucmVnaW9uKSgpXG4gICAgICAgICAgICAudGhlbihhc3luYyAocmVnaW9uKSA9PiBbXG4gICAgICAgICAgICAoYXdhaXQgY29uZmlnLnJlZ2lvbkluZm9Qcm92aWRlcihyZWdpb24sIHtcbiAgICAgICAgICAgICAgICB1c2VGaXBzRW5kcG9pbnQ6IGF3YWl0IGNvbmZpZy51c2VGaXBzRW5kcG9pbnQoKSxcbiAgICAgICAgICAgICAgICB1c2VEdWFsc3RhY2tFbmRwb2ludDogYXdhaXQgY29uZmlnLnVzZUR1YWxzdGFja0VuZHBvaW50KCksXG4gICAgICAgICAgICB9KSkgfHwge30sXG4gICAgICAgICAgICByZWdpb24sXG4gICAgICAgIF0pXG4gICAgICAgICAgICAudGhlbigoW3JlZ2lvbkluZm8sIHJlZ2lvbl0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgc2lnbmluZ1JlZ2lvbiwgc2lnbmluZ1NlcnZpY2UgfSA9IHJlZ2lvbkluZm87XG4gICAgICAgICAgICBjb25maWcuc2lnbmluZ1JlZ2lvbiA9IGNvbmZpZy5zaWduaW5nUmVnaW9uIHx8IHNpZ25pbmdSZWdpb24gfHwgcmVnaW9uO1xuICAgICAgICAgICAgY29uZmlnLnNpZ25pbmdOYW1lID0gY29uZmlnLnNpZ25pbmdOYW1lIHx8IHNpZ25pbmdTZXJ2aWNlIHx8IGNvbmZpZy5zZXJ2aWNlSWQ7XG4gICAgICAgICAgICBjb25zdCBwYXJhbXMgPSB7XG4gICAgICAgICAgICAgICAgLi4uY29uZmlnLFxuICAgICAgICAgICAgICAgIGNyZWRlbnRpYWxzOiBjb25maWcuY3JlZGVudGlhbHMsXG4gICAgICAgICAgICAgICAgcmVnaW9uOiBjb25maWcuc2lnbmluZ1JlZ2lvbixcbiAgICAgICAgICAgICAgICBzZXJ2aWNlOiBjb25maWcuc2lnbmluZ05hbWUsXG4gICAgICAgICAgICAgICAgc2hhMjU2LFxuICAgICAgICAgICAgICAgIHVyaUVzY2FwZVBhdGg6IHNpZ25pbmdFc2NhcGVQYXRoLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGNvbnN0IFNpZ25lckN0b3IgPSBjb25maWcuc2lnbmVyQ29uc3RydWN0b3IgfHwgU2lnbmF0dXJlVjQ7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFNpZ25lckN0b3IocGFyYW1zKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBzaWduZXIgPSBhc3luYyAoYXV0aFNjaGVtZSkgPT4ge1xuICAgICAgICAgICAgYXV0aFNjaGVtZSA9IE9iamVjdC5hc3NpZ24oe30sIHtcbiAgICAgICAgICAgICAgICBuYW1lOiBcInNpZ3Y0XCIsXG4gICAgICAgICAgICAgICAgc2lnbmluZ05hbWU6IGNvbmZpZy5zaWduaW5nTmFtZSB8fCBjb25maWcuZGVmYXVsdFNpZ25pbmdOYW1lLFxuICAgICAgICAgICAgICAgIHNpZ25pbmdSZWdpb246IGF3YWl0IG5vcm1hbGl6ZVByb3ZpZGVyKGNvbmZpZy5yZWdpb24pKCksXG4gICAgICAgICAgICAgICAgcHJvcGVydGllczoge30sXG4gICAgICAgICAgICB9LCBhdXRoU2NoZW1lKTtcbiAgICAgICAgICAgIGNvbnN0IHNpZ25pbmdSZWdpb24gPSBhdXRoU2NoZW1lLnNpZ25pbmdSZWdpb247XG4gICAgICAgICAgICBjb25zdCBzaWduaW5nU2VydmljZSA9IGF1dGhTY2hlbWUuc2lnbmluZ05hbWU7XG4gICAgICAgICAgICBjb25maWcuc2lnbmluZ1JlZ2lvbiA9IGNvbmZpZy5zaWduaW5nUmVnaW9uIHx8IHNpZ25pbmdSZWdpb247XG4gICAgICAgICAgICBjb25maWcuc2lnbmluZ05hbWUgPSBjb25maWcuc2lnbmluZ05hbWUgfHwgc2lnbmluZ1NlcnZpY2UgfHwgY29uZmlnLnNlcnZpY2VJZDtcbiAgICAgICAgICAgIGNvbnN0IHBhcmFtcyA9IHtcbiAgICAgICAgICAgICAgICAuLi5jb25maWcsXG4gICAgICAgICAgICAgICAgY3JlZGVudGlhbHM6IGNvbmZpZy5jcmVkZW50aWFscyxcbiAgICAgICAgICAgICAgICByZWdpb246IGNvbmZpZy5zaWduaW5nUmVnaW9uLFxuICAgICAgICAgICAgICAgIHNlcnZpY2U6IGNvbmZpZy5zaWduaW5nTmFtZSxcbiAgICAgICAgICAgICAgICBzaGEyNTYsXG4gICAgICAgICAgICAgICAgdXJpRXNjYXBlUGF0aDogc2lnbmluZ0VzY2FwZVBhdGgsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY29uc3QgU2lnbmVyQ3RvciA9IGNvbmZpZy5zaWduZXJDb25zdHJ1Y3RvciB8fCBTaWduYXR1cmVWNDtcbiAgICAgICAgICAgIHJldHVybiBuZXcgU2lnbmVyQ3RvcihwYXJhbXMpO1xuICAgICAgICB9O1xuICAgIH1cbiAgICBjb25zdCByZXNvbHZlZENvbmZpZyA9IE9iamVjdC5hc3NpZ24oY29uZmlnLCB7XG4gICAgICAgIHN5c3RlbUNsb2NrT2Zmc2V0LFxuICAgICAgICBzaWduaW5nRXNjYXBlUGF0aCxcbiAgICAgICAgc2lnbmVyLFxuICAgIH0pO1xuICAgIHJldHVybiByZXNvbHZlZENvbmZpZztcbn07XG5leHBvcnQgY29uc3QgcmVzb2x2ZUFXU1NES1NpZ1Y0Q29uZmlnID0gcmVzb2x2ZUF3c1Nka1NpZ1Y0Q29uZmlnO1xuZnVuY3Rpb24gbm9ybWFsaXplQ3JlZGVudGlhbFByb3ZpZGVyKGNvbmZpZywgeyBjcmVkZW50aWFscywgY3JlZGVudGlhbERlZmF1bHRQcm92aWRlciwgfSkge1xuICAgIGxldCBjcmVkZW50aWFsc1Byb3ZpZGVyO1xuICAgIGlmIChjcmVkZW50aWFscykge1xuICAgICAgICBpZiAoIWNyZWRlbnRpYWxzPy5tZW1vaXplZCkge1xuICAgICAgICAgICAgY3JlZGVudGlhbHNQcm92aWRlciA9IG1lbW9pemVJZGVudGl0eVByb3ZpZGVyKGNyZWRlbnRpYWxzLCBpc0lkZW50aXR5RXhwaXJlZCwgZG9lc0lkZW50aXR5UmVxdWlyZVJlZnJlc2gpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY3JlZGVudGlhbHNQcm92aWRlciA9IGNyZWRlbnRpYWxzO1xuICAgICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBpZiAoY3JlZGVudGlhbERlZmF1bHRQcm92aWRlcikge1xuICAgICAgICAgICAgY3JlZGVudGlhbHNQcm92aWRlciA9IG5vcm1hbGl6ZVByb3ZpZGVyKGNyZWRlbnRpYWxEZWZhdWx0UHJvdmlkZXIoT2JqZWN0LmFzc2lnbih7fSwgY29uZmlnLCB7XG4gICAgICAgICAgICAgICAgcGFyZW50Q2xpZW50Q29uZmlnOiBjb25maWcsXG4gICAgICAgICAgICB9KSkpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY3JlZGVudGlhbHNQcm92aWRlciA9IGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJAYXdzLXNkay9jb3JlOjpyZXNvbHZlQXdzU2RrU2lnVjRDb25maWcgLSBgY3JlZGVudGlhbHNgIG5vdCBwcm92aWRlZCBhbmQgbm8gY3JlZGVudGlhbERlZmF1bHRQcm92aWRlciB3YXMgY29uZmlndXJlZC5cIik7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfVxuICAgIGNyZWRlbnRpYWxzUHJvdmlkZXIubWVtb2l6ZWQgPSB0cnVlO1xuICAgIHJldHVybiBjcmVkZW50aWFsc1Byb3ZpZGVyO1xufVxuZnVuY3Rpb24gYmluZENhbGxlckNvbmZpZyhjb25maWcsIGNyZWRlbnRpYWxzUHJvdmlkZXIpIHtcbiAgICBpZiAoY3JlZGVudGlhbHNQcm92aWRlci5jb25maWdCb3VuZCkge1xuICAgICAgICByZXR1cm4gY3JlZGVudGlhbHNQcm92aWRlcjtcbiAgICB9XG4gICAgY29uc3QgZm4gPSBhc3luYyAob3B0aW9ucykgPT4gY3JlZGVudGlhbHNQcm92aWRlcih7IC4uLm9wdGlvbnMsIGNhbGxlckNsaWVudENvbmZpZzogY29uZmlnIH0pO1xuICAgIGZuLm1lbW9pemVkID0gY3JlZGVudGlhbHNQcm92aWRlci5tZW1vaXplZDtcbiAgICBmbi5jb25maWdCb3VuZCA9IHRydWU7XG4gICAgcmV0dXJuIGZuO1xufVxuIiwgImV4cG9ydCB7IEF3c1Nka1NpZ1Y0U2lnbmVyLCBBV1NTREtTaWdWNFNpZ25lciwgdmFsaWRhdGVTaWduaW5nUHJvcGVydGllcyB9IGZyb20gXCIuL0F3c1Nka1NpZ1Y0U2lnbmVyXCI7XG5leHBvcnQgeyBBd3NTZGtTaWdWNEFTaWduZXIgfSBmcm9tIFwiLi9Bd3NTZGtTaWdWNEFTaWduZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL05PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9PUFRJT05TXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9yZXNvbHZlQXdzU2RrU2lnVjRBQ29uZmlnXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9yZXNvbHZlQXdzU2RrU2lnVjRDb25maWdcIjtcbiIsICJleHBvcnQgKiBmcm9tIFwiLi9hd3Nfc2RrXCI7XG5leHBvcnQgKiBmcm9tIFwiLi91dGlscy9nZXRCZWFyZXJUb2tlbkVudktleVwiO1xuIiwgImltcG9ydCB7IE5vcm1hbGl6ZWRTY2hlbWEsIFR5cGVSZWdpc3RyeSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2NoZW1hXCI7XG5pbXBvcnQgeyBkZWNvcmF0ZVNlcnZpY2VFeGNlcHRpb24gfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5leHBvcnQgY2xhc3MgUHJvdG9jb2xMaWIge1xuICAgIHF1ZXJ5Q29tcGF0O1xuICAgIGNvbnN0cnVjdG9yKHF1ZXJ5Q29tcGF0ID0gZmFsc2UpIHtcbiAgICAgICAgdGhpcy5xdWVyeUNvbXBhdCA9IHF1ZXJ5Q29tcGF0O1xuICAgIH1cbiAgICByZXNvbHZlUmVzdENvbnRlbnRUeXBlKGRlZmF1bHRDb250ZW50VHlwZSwgaW5wdXRTY2hlbWEpIHtcbiAgICAgICAgY29uc3QgbWVtYmVycyA9IGlucHV0U2NoZW1hLmdldE1lbWJlclNjaGVtYXMoKTtcbiAgICAgICAgY29uc3QgaHR0cFBheWxvYWRNZW1iZXIgPSBPYmplY3QudmFsdWVzKG1lbWJlcnMpLmZpbmQoKG0pID0+IHtcbiAgICAgICAgICAgIHJldHVybiAhIW0uZ2V0TWVyZ2VkVHJhaXRzKCkuaHR0cFBheWxvYWQ7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoaHR0cFBheWxvYWRNZW1iZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IG1lZGlhVHlwZSA9IGh0dHBQYXlsb2FkTWVtYmVyLmdldE1lcmdlZFRyYWl0cygpLm1lZGlhVHlwZTtcbiAgICAgICAgICAgIGlmIChtZWRpYVR5cGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbWVkaWFUeXBlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoaHR0cFBheWxvYWRNZW1iZXIuaXNTdHJpbmdTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBcInRleHQvcGxhaW5cIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGh0dHBQYXlsb2FkTWVtYmVyLmlzQmxvYlNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtXCI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZGVmYXVsdENvbnRlbnRUeXBlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKCFpbnB1dFNjaGVtYS5pc1VuaXRTY2hlbWEoKSkge1xuICAgICAgICAgICAgY29uc3QgaGFzQm9keSA9IE9iamVjdC52YWx1ZXMobWVtYmVycykuZmluZCgobSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgaHR0cFF1ZXJ5LCBodHRwUXVlcnlQYXJhbXMsIGh0dHBIZWFkZXIsIGh0dHBMYWJlbCwgaHR0cFByZWZpeEhlYWRlcnMgfSA9IG0uZ2V0TWVyZ2VkVHJhaXRzKCk7XG4gICAgICAgICAgICAgICAgY29uc3Qgbm9QcmVmaXhIZWFkZXJzID0gaHR0cFByZWZpeEhlYWRlcnMgPT09IHZvaWQgMDtcbiAgICAgICAgICAgICAgICByZXR1cm4gIWh0dHBRdWVyeSAmJiAhaHR0cFF1ZXJ5UGFyYW1zICYmICFodHRwSGVhZGVyICYmICFodHRwTGFiZWwgJiYgbm9QcmVmaXhIZWFkZXJzO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAoaGFzQm9keSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBkZWZhdWx0Q29udGVudFR5cGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgYXN5bmMgZ2V0RXJyb3JTY2hlbWFPclRocm93QmFzZUV4Y2VwdGlvbihlcnJvcklkZW50aWZpZXIsIGRlZmF1bHROYW1lc3BhY2UsIHJlc3BvbnNlLCBkYXRhT2JqZWN0LCBtZXRhZGF0YSwgZ2V0RXJyb3JTY2hlbWEpIHtcbiAgICAgICAgbGV0IG5hbWVzcGFjZSA9IGRlZmF1bHROYW1lc3BhY2U7XG4gICAgICAgIGxldCBlcnJvck5hbWUgPSBlcnJvcklkZW50aWZpZXI7XG4gICAgICAgIGlmIChlcnJvcklkZW50aWZpZXIuaW5jbHVkZXMoXCIjXCIpKSB7XG4gICAgICAgICAgICBbbmFtZXNwYWNlLCBlcnJvck5hbWVdID0gZXJyb3JJZGVudGlmaWVyLnNwbGl0KFwiI1wiKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBlcnJvck1ldGFkYXRhID0ge1xuICAgICAgICAgICAgJG1ldGFkYXRhOiBtZXRhZGF0YSxcbiAgICAgICAgICAgICRmYXVsdDogcmVzcG9uc2Uuc3RhdHVzQ29kZSA8IDUwMCA/IFwiY2xpZW50XCIgOiBcInNlcnZlclwiLFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCByZWdpc3RyeSA9IFR5cGVSZWdpc3RyeS5mb3IobmFtZXNwYWNlKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGVycm9yU2NoZW1hID0gZ2V0RXJyb3JTY2hlbWE/LihyZWdpc3RyeSwgZXJyb3JOYW1lKSA/PyByZWdpc3RyeS5nZXRTY2hlbWEoZXJyb3JJZGVudGlmaWVyKTtcbiAgICAgICAgICAgIHJldHVybiB7IGVycm9yU2NoZW1hLCBlcnJvck1ldGFkYXRhIH07XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIGRhdGFPYmplY3QubWVzc2FnZSA9IGRhdGFPYmplY3QubWVzc2FnZSA/PyBkYXRhT2JqZWN0Lk1lc3NhZ2UgPz8gXCJVbmtub3duRXJyb3JcIjtcbiAgICAgICAgICAgIGNvbnN0IHN5bnRoZXRpYyA9IFR5cGVSZWdpc3RyeS5mb3IoXCJzbWl0aHkudHMuc2RrLnN5bnRoZXRpYy5cIiArIG5hbWVzcGFjZSk7XG4gICAgICAgICAgICBjb25zdCBiYXNlRXhjZXB0aW9uU2NoZW1hID0gc3ludGhldGljLmdldEJhc2VFeGNlcHRpb24oKTtcbiAgICAgICAgICAgIGlmIChiYXNlRXhjZXB0aW9uU2NoZW1hKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgRXJyb3JDdG9yID0gc3ludGhldGljLmdldEVycm9yQ3RvcihiYXNlRXhjZXB0aW9uU2NoZW1hKSA/PyBFcnJvcjtcbiAgICAgICAgICAgICAgICB0aHJvdyB0aGlzLmRlY29yYXRlU2VydmljZUV4Y2VwdGlvbihPYmplY3QuYXNzaWduKG5ldyBFcnJvckN0b3IoeyBuYW1lOiBlcnJvck5hbWUgfSksIGVycm9yTWV0YWRhdGEpLCBkYXRhT2JqZWN0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRocm93IHRoaXMuZGVjb3JhdGVTZXJ2aWNlRXhjZXB0aW9uKE9iamVjdC5hc3NpZ24obmV3IEVycm9yKGVycm9yTmFtZSksIGVycm9yTWV0YWRhdGEpLCBkYXRhT2JqZWN0KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBkZWNvcmF0ZVNlcnZpY2VFeGNlcHRpb24oZXhjZXB0aW9uLCBhZGRpdGlvbnMgPSB7fSkge1xuICAgICAgICBpZiAodGhpcy5xdWVyeUNvbXBhdCkge1xuICAgICAgICAgICAgY29uc3QgbXNnID0gZXhjZXB0aW9uLk1lc3NhZ2UgPz8gYWRkaXRpb25zLk1lc3NhZ2U7XG4gICAgICAgICAgICBjb25zdCBlcnJvciA9IGRlY29yYXRlU2VydmljZUV4Y2VwdGlvbihleGNlcHRpb24sIGFkZGl0aW9ucyk7XG4gICAgICAgICAgICBpZiAobXNnKSB7XG4gICAgICAgICAgICAgICAgZXJyb3IubWVzc2FnZSA9IG1zZztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVycm9yLkVycm9yID0ge1xuICAgICAgICAgICAgICAgIC4uLmVycm9yLkVycm9yLFxuICAgICAgICAgICAgICAgIFR5cGU6IGVycm9yLkVycm9yPy5UeXBlLFxuICAgICAgICAgICAgICAgIENvZGU6IGVycm9yLkVycm9yPy5Db2RlLFxuICAgICAgICAgICAgICAgIE1lc3NhZ2U6IGVycm9yLkVycm9yPy5tZXNzYWdlID8/IGVycm9yLkVycm9yPy5NZXNzYWdlID8/IG1zZyxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBjb25zdCByZXFJZCA9IGVycm9yLiRtZXRhZGF0YS5yZXF1ZXN0SWQ7XG4gICAgICAgICAgICBpZiAocmVxSWQpIHtcbiAgICAgICAgICAgICAgICBlcnJvci5SZXF1ZXN0SWQgPSByZXFJZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBlcnJvcjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGVjb3JhdGVTZXJ2aWNlRXhjZXB0aW9uKGV4Y2VwdGlvbiwgYWRkaXRpb25zKTtcbiAgICB9XG4gICAgc2V0UXVlcnlDb21wYXRFcnJvcihvdXRwdXQsIHJlc3BvbnNlKSB7XG4gICAgICAgIGNvbnN0IHF1ZXJ5RXJyb3JIZWFkZXIgPSByZXNwb25zZS5oZWFkZXJzPy5bXCJ4LWFtem4tcXVlcnktZXJyb3JcIl07XG4gICAgICAgIGlmIChvdXRwdXQgIT09IHVuZGVmaW5lZCAmJiBxdWVyeUVycm9ySGVhZGVyICE9IG51bGwpIHtcbiAgICAgICAgICAgIGNvbnN0IFtDb2RlLCBUeXBlXSA9IHF1ZXJ5RXJyb3JIZWFkZXIuc3BsaXQoXCI7XCIpO1xuICAgICAgICAgICAgY29uc3QgZW50cmllcyA9IE9iamVjdC5lbnRyaWVzKG91dHB1dCk7XG4gICAgICAgICAgICBjb25zdCBFcnJvciA9IHtcbiAgICAgICAgICAgICAgICBDb2RlLFxuICAgICAgICAgICAgICAgIFR5cGUsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihvdXRwdXQsIEVycm9yKTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgW2ssIHZdIG9mIGVudHJpZXMpIHtcbiAgICAgICAgICAgICAgICBFcnJvcltrID09PSBcIm1lc3NhZ2VcIiA/IFwiTWVzc2FnZVwiIDoga10gPSB2O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVsZXRlIEVycm9yLl9fdHlwZTtcbiAgICAgICAgICAgIG91dHB1dC5FcnJvciA9IEVycm9yO1xuICAgICAgICB9XG4gICAgfVxuICAgIHF1ZXJ5Q29tcGF0T3V0cHV0KHF1ZXJ5Q29tcGF0RXJyb3JEYXRhLCBlcnJvckRhdGEpIHtcbiAgICAgICAgaWYgKHF1ZXJ5Q29tcGF0RXJyb3JEYXRhLkVycm9yKSB7XG4gICAgICAgICAgICBlcnJvckRhdGEuRXJyb3IgPSBxdWVyeUNvbXBhdEVycm9yRGF0YS5FcnJvcjtcbiAgICAgICAgfVxuICAgICAgICBpZiAocXVlcnlDb21wYXRFcnJvckRhdGEuVHlwZSkge1xuICAgICAgICAgICAgZXJyb3JEYXRhLlR5cGUgPSBxdWVyeUNvbXBhdEVycm9yRGF0YS5UeXBlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChxdWVyeUNvbXBhdEVycm9yRGF0YS5Db2RlKSB7XG4gICAgICAgICAgICBlcnJvckRhdGEuQ29kZSA9IHF1ZXJ5Q29tcGF0RXJyb3JEYXRhLkNvZGU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZmluZFF1ZXJ5Q29tcGF0aWJsZUVycm9yKHJlZ2lzdHJ5LCBlcnJvck5hbWUpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiByZWdpc3RyeS5nZXRTY2hlbWEoZXJyb3JOYW1lKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgcmV0dXJuIHJlZ2lzdHJ5LmZpbmQoKHNjaGVtYSkgPT4gTm9ybWFsaXplZFNjaGVtYS5vZihzY2hlbWEpLmdldE1lcmdlZFRyYWl0cygpLmF3c1F1ZXJ5RXJyb3I/LlswXSA9PT0gZXJyb3JOYW1lKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBsb2FkU21pdGh5UnBjVjJDYm9yRXJyb3JDb2RlLCBTbWl0aHlScGNWMkNib3JQcm90b2NvbCB9IGZyb20gXCJAc21pdGh5L2NvcmUvY2JvclwiO1xuaW1wb3J0IHsgTm9ybWFsaXplZFNjaGVtYSwgVHlwZVJlZ2lzdHJ5IH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IFByb3RvY29sTGliIH0gZnJvbSBcIi4uL1Byb3RvY29sTGliXCI7XG5leHBvcnQgY2xhc3MgQXdzU21pdGh5UnBjVjJDYm9yUHJvdG9jb2wgZXh0ZW5kcyBTbWl0aHlScGNWMkNib3JQcm90b2NvbCB7XG4gICAgYXdzUXVlcnlDb21wYXRpYmxlO1xuICAgIG1peGluO1xuICAgIGNvbnN0cnVjdG9yKHsgZGVmYXVsdE5hbWVzcGFjZSwgYXdzUXVlcnlDb21wYXRpYmxlLCB9KSB7XG4gICAgICAgIHN1cGVyKHsgZGVmYXVsdE5hbWVzcGFjZSB9KTtcbiAgICAgICAgdGhpcy5hd3NRdWVyeUNvbXBhdGlibGUgPSAhIWF3c1F1ZXJ5Q29tcGF0aWJsZTtcbiAgICAgICAgdGhpcy5taXhpbiA9IG5ldyBQcm90b2NvbExpYih0aGlzLmF3c1F1ZXJ5Q29tcGF0aWJsZSk7XG4gICAgfVxuICAgIGFzeW5jIHNlcmlhbGl6ZVJlcXVlc3Qob3BlcmF0aW9uU2NoZW1hLCBpbnB1dCwgY29udGV4dCkge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gYXdhaXQgc3VwZXIuc2VyaWFsaXplUmVxdWVzdChvcGVyYXRpb25TY2hlbWEsIGlucHV0LCBjb250ZXh0KTtcbiAgICAgICAgaWYgKHRoaXMuYXdzUXVlcnlDb21wYXRpYmxlKSB7XG4gICAgICAgICAgICByZXF1ZXN0LmhlYWRlcnNbXCJ4LWFtem4tcXVlcnktbW9kZVwiXSA9IFwidHJ1ZVwiO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXF1ZXN0O1xuICAgIH1cbiAgICBhc3luYyBoYW5kbGVFcnJvcihvcGVyYXRpb25TY2hlbWEsIGNvbnRleHQsIHJlc3BvbnNlLCBkYXRhT2JqZWN0LCBtZXRhZGF0YSkge1xuICAgICAgICBpZiAodGhpcy5hd3NRdWVyeUNvbXBhdGlibGUpIHtcbiAgICAgICAgICAgIHRoaXMubWl4aW4uc2V0UXVlcnlDb21wYXRFcnJvcihkYXRhT2JqZWN0LCByZXNwb25zZSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZXJyb3JOYW1lID0gKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvbXBhdEhlYWRlciA9IHJlc3BvbnNlLmhlYWRlcnNbXCJ4LWFtem4tcXVlcnktZXJyb3JcIl07XG4gICAgICAgICAgICBpZiAoY29tcGF0SGVhZGVyICYmIHRoaXMuYXdzUXVlcnlDb21wYXRpYmxlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvbXBhdEhlYWRlci5zcGxpdChcIjtcIilbMF07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbG9hZFNtaXRoeVJwY1YyQ2JvckVycm9yQ29kZShyZXNwb25zZSwgZGF0YU9iamVjdCkgPz8gXCJVbmtub3duXCI7XG4gICAgICAgIH0pKCk7XG4gICAgICAgIGNvbnN0IHsgZXJyb3JTY2hlbWEsIGVycm9yTWV0YWRhdGEgfSA9IGF3YWl0IHRoaXMubWl4aW4uZ2V0RXJyb3JTY2hlbWFPclRocm93QmFzZUV4Y2VwdGlvbihlcnJvck5hbWUsIHRoaXMub3B0aW9ucy5kZWZhdWx0TmFtZXNwYWNlLCByZXNwb25zZSwgZGF0YU9iamVjdCwgbWV0YWRhdGEsIHRoaXMuYXdzUXVlcnlDb21wYXRpYmxlID8gdGhpcy5taXhpbi5maW5kUXVlcnlDb21wYXRpYmxlRXJyb3IgOiB1bmRlZmluZWQpO1xuICAgICAgICBjb25zdCBucyA9IE5vcm1hbGl6ZWRTY2hlbWEub2YoZXJyb3JTY2hlbWEpO1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gZGF0YU9iamVjdC5tZXNzYWdlID8/IGRhdGFPYmplY3QuTWVzc2FnZSA/PyBcIlVua25vd25cIjtcbiAgICAgICAgY29uc3QgRXJyb3JDdG9yID0gVHlwZVJlZ2lzdHJ5LmZvcihlcnJvclNjaGVtYVsxXSkuZ2V0RXJyb3JDdG9yKGVycm9yU2NoZW1hKSA/PyBFcnJvcjtcbiAgICAgICAgY29uc3QgZXhjZXB0aW9uID0gbmV3IEVycm9yQ3RvcihtZXNzYWdlKTtcbiAgICAgICAgY29uc3Qgb3V0cHV0ID0ge307XG4gICAgICAgIGZvciAoY29uc3QgW25hbWUsIG1lbWJlcl0gb2YgbnMuc3RydWN0SXRlcmF0b3IoKSkge1xuICAgICAgICAgICAgaWYgKGRhdGFPYmplY3RbbmFtZV0gIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIG91dHB1dFtuYW1lXSA9IHRoaXMuZGVzZXJpYWxpemVyLnJlYWRWYWx1ZShtZW1iZXIsIGRhdGFPYmplY3RbbmFtZV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmF3c1F1ZXJ5Q29tcGF0aWJsZSkge1xuICAgICAgICAgICAgdGhpcy5taXhpbi5xdWVyeUNvbXBhdE91dHB1dChkYXRhT2JqZWN0LCBvdXRwdXQpO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IHRoaXMubWl4aW4uZGVjb3JhdGVTZXJ2aWNlRXhjZXB0aW9uKE9iamVjdC5hc3NpZ24oZXhjZXB0aW9uLCBlcnJvck1ldGFkYXRhLCB7XG4gICAgICAgICAgICAkZmF1bHQ6IG5zLmdldE1lcmdlZFRyYWl0cygpLmVycm9yLFxuICAgICAgICAgICAgbWVzc2FnZSxcbiAgICAgICAgfSwgb3V0cHV0KSwgZGF0YU9iamVjdCk7XG4gICAgfVxufVxuIiwgImV4cG9ydCBjb25zdCBfdG9TdHIgPSAodmFsKSA9PiB7XG4gICAgaWYgKHZhbCA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiB2YWw7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgdmFsID09PSBcIm51bWJlclwiIHx8IHR5cGVvZiB2YWwgPT09IFwiYmlnaW50XCIpIHtcbiAgICAgICAgY29uc3Qgd2FybmluZyA9IG5ldyBFcnJvcihgUmVjZWl2ZWQgbnVtYmVyICR7dmFsfSB3aGVyZSBhIHN0cmluZyB3YXMgZXhwZWN0ZWQuYCk7XG4gICAgICAgIHdhcm5pbmcubmFtZSA9IFwiV2FybmluZ1wiO1xuICAgICAgICBjb25zb2xlLndhcm4od2FybmluZyk7XG4gICAgICAgIHJldHVybiBTdHJpbmcodmFsKTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB2YWwgPT09IFwiYm9vbGVhblwiKSB7XG4gICAgICAgIGNvbnN0IHdhcm5pbmcgPSBuZXcgRXJyb3IoYFJlY2VpdmVkIGJvb2xlYW4gJHt2YWx9IHdoZXJlIGEgc3RyaW5nIHdhcyBleHBlY3RlZC5gKTtcbiAgICAgICAgd2FybmluZy5uYW1lID0gXCJXYXJuaW5nXCI7XG4gICAgICAgIGNvbnNvbGUud2Fybih3YXJuaW5nKTtcbiAgICAgICAgcmV0dXJuIFN0cmluZyh2YWwpO1xuICAgIH1cbiAgICByZXR1cm4gdmFsO1xufTtcbmV4cG9ydCBjb25zdCBfdG9Cb29sID0gKHZhbCkgPT4ge1xuICAgIGlmICh2YWwgPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gdmFsO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHZhbCA9PT0gXCJudW1iZXJcIikge1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHZhbCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICBjb25zdCBsb3dlcmNhc2UgPSB2YWwudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgaWYgKHZhbCAhPT0gXCJcIiAmJiBsb3dlcmNhc2UgIT09IFwiZmFsc2VcIiAmJiBsb3dlcmNhc2UgIT09IFwidHJ1ZVwiKSB7XG4gICAgICAgICAgICBjb25zdCB3YXJuaW5nID0gbmV3IEVycm9yKGBSZWNlaXZlZCBzdHJpbmcgXCIke3ZhbH1cIiB3aGVyZSBhIGJvb2xlYW4gd2FzIGV4cGVjdGVkLmApO1xuICAgICAgICAgICAgd2FybmluZy5uYW1lID0gXCJXYXJuaW5nXCI7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4od2FybmluZyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbCAhPT0gXCJcIiAmJiBsb3dlcmNhc2UgIT09IFwiZmFsc2VcIjtcbiAgICB9XG4gICAgcmV0dXJuIHZhbDtcbn07XG5leHBvcnQgY29uc3QgX3RvTnVtID0gKHZhbCkgPT4ge1xuICAgIGlmICh2YWwgPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gdmFsO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHZhbCA9PT0gXCJib29sZWFuXCIpIHtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB2YWwgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgY29uc3QgbnVtID0gTnVtYmVyKHZhbCk7XG4gICAgICAgIGlmIChudW0udG9TdHJpbmcoKSAhPT0gdmFsKSB7XG4gICAgICAgICAgICBjb25zdCB3YXJuaW5nID0gbmV3IEVycm9yKGBSZWNlaXZlZCBzdHJpbmcgXCIke3ZhbH1cIiB3aGVyZSBhIG51bWJlciB3YXMgZXhwZWN0ZWQuYCk7XG4gICAgICAgICAgICB3YXJuaW5nLm5hbWUgPSBcIldhcm5pbmdcIjtcbiAgICAgICAgICAgIGNvbnNvbGUud2Fybih3YXJuaW5nKTtcbiAgICAgICAgICAgIHJldHVybiB2YWw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbDtcbn07XG4iLCAiZXhwb3J0IGNsYXNzIFNlcmRlQ29udGV4dENvbmZpZyB7XG4gICAgc2VyZGVDb250ZXh0O1xuICAgIHNldFNlcmRlQ29udGV4dChzZXJkZUNvbnRleHQpIHtcbiAgICAgICAgdGhpcy5zZXJkZUNvbnRleHQgPSBzZXJkZUNvbnRleHQ7XG4gICAgfVxufVxuIiwgImV4cG9ydCBjbGFzcyBVbmlvblNlcmRlIHtcbiAgICBmcm9tO1xuICAgIHRvO1xuICAgIGtleXM7XG4gICAgY29uc3RydWN0b3IoZnJvbSwgdG8pIHtcbiAgICAgICAgdGhpcy5mcm9tID0gZnJvbTtcbiAgICAgICAgdGhpcy50byA9IHRvO1xuICAgICAgICB0aGlzLmtleXMgPSBuZXcgU2V0KE9iamVjdC5rZXlzKHRoaXMuZnJvbSkuZmlsdGVyKChrKSA9PiBrICE9PSBcIl9fdHlwZVwiKSk7XG4gICAgfVxuICAgIG1hcmsoa2V5KSB7XG4gICAgICAgIHRoaXMua2V5cy5kZWxldGUoa2V5KTtcbiAgICB9XG4gICAgaGFzVW5rbm93bigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMua2V5cy5zaXplID09PSAxICYmIE9iamVjdC5rZXlzKHRoaXMudG8pLmxlbmd0aCA9PT0gMDtcbiAgICB9XG4gICAgd3JpdGVVbmtub3duKCkge1xuICAgICAgICBpZiAodGhpcy5oYXNVbmtub3duKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IGsgPSB0aGlzLmtleXMudmFsdWVzKCkubmV4dCgpLnZhbHVlO1xuICAgICAgICAgICAgY29uc3QgdiA9IHRoaXMuZnJvbVtrXTtcbiAgICAgICAgICAgIHRoaXMudG8uJHVua25vd24gPSBbaywgdl07XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgTnVtZXJpY1ZhbHVlIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zZXJkZVwiO1xuZXhwb3J0IGZ1bmN0aW9uIGpzb25SZXZpdmVyKGtleSwgdmFsdWUsIGNvbnRleHQpIHtcbiAgICBpZiAoY29udGV4dD8uc291cmNlKSB7XG4gICAgICAgIGNvbnN0IG51bWVyaWNTdHJpbmcgPSBjb250ZXh0LnNvdXJjZTtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgaWYgKHZhbHVlID4gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIgfHwgdmFsdWUgPCBOdW1iZXIuTUlOX1NBRkVfSU5URUdFUiB8fCBudW1lcmljU3RyaW5nICE9PSBTdHJpbmcodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNGcmFjdGlvbmFsID0gbnVtZXJpY1N0cmluZy5pbmNsdWRlcyhcIi5cIik7XG4gICAgICAgICAgICAgICAgaWYgKGlzRnJhY3Rpb25hbCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IE51bWVyaWNWYWx1ZShudW1lcmljU3RyaW5nLCBcImJpZ0RlY2ltYWxcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gQmlnSW50KG51bWVyaWNTdHJpbmcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG59XG4iLCAiaW1wb3J0IHsgY29sbGVjdEJvZHkgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyB0b1V0ZjggfSBmcm9tIFwiQHNtaXRoeS91dGlsLXV0ZjhcIjtcbmV4cG9ydCBjb25zdCBjb2xsZWN0Qm9keVN0cmluZyA9IChzdHJlYW1Cb2R5LCBjb250ZXh0KSA9PiBjb2xsZWN0Qm9keShzdHJlYW1Cb2R5LCBjb250ZXh0KS50aGVuKChib2R5KSA9PiAoY29udGV4dD8udXRmOEVuY29kZXIgPz8gdG9VdGY4KShib2R5KSk7XG4iLCAiaW1wb3J0IHsgY29sbGVjdEJvZHlTdHJpbmcgfSBmcm9tIFwiLi4vY29tbW9uXCI7XG5leHBvcnQgY29uc3QgcGFyc2VKc29uQm9keSA9IChzdHJlYW1Cb2R5LCBjb250ZXh0KSA9PiBjb2xsZWN0Qm9keVN0cmluZyhzdHJlYW1Cb2R5LCBjb250ZXh0KS50aGVuKChlbmNvZGVkKSA9PiB7XG4gICAgaWYgKGVuY29kZWQubGVuZ3RoKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShlbmNvZGVkKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgaWYgKGU/Lm5hbWUgPT09IFwiU3ludGF4RXJyb3JcIikge1xuICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCBcIiRyZXNwb25zZUJvZHlUZXh0XCIsIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGVuY29kZWQsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7fTtcbn0pO1xuZXhwb3J0IGNvbnN0IHBhcnNlSnNvbkVycm9yQm9keSA9IGFzeW5jIChlcnJvckJvZHksIGNvbnRleHQpID0+IHtcbiAgICBjb25zdCB2YWx1ZSA9IGF3YWl0IHBhcnNlSnNvbkJvZHkoZXJyb3JCb2R5LCBjb250ZXh0KTtcbiAgICB2YWx1ZS5tZXNzYWdlID0gdmFsdWUubWVzc2FnZSA/PyB2YWx1ZS5NZXNzYWdlO1xuICAgIHJldHVybiB2YWx1ZTtcbn07XG5leHBvcnQgY29uc3QgbG9hZFJlc3RKc29uRXJyb3JDb2RlID0gKG91dHB1dCwgZGF0YSkgPT4ge1xuICAgIGNvbnN0IGZpbmRLZXkgPSAob2JqZWN0LCBrZXkpID0+IE9iamVjdC5rZXlzKG9iamVjdCkuZmluZCgoaykgPT4gay50b0xvd2VyQ2FzZSgpID09PSBrZXkudG9Mb3dlckNhc2UoKSk7XG4gICAgY29uc3Qgc2FuaXRpemVFcnJvckNvZGUgPSAocmF3VmFsdWUpID0+IHtcbiAgICAgICAgbGV0IGNsZWFuVmFsdWUgPSByYXdWYWx1ZTtcbiAgICAgICAgaWYgKHR5cGVvZiBjbGVhblZhbHVlID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICBjbGVhblZhbHVlID0gY2xlYW5WYWx1ZS50b1N0cmluZygpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjbGVhblZhbHVlLmluZGV4T2YoXCIsXCIpID49IDApIHtcbiAgICAgICAgICAgIGNsZWFuVmFsdWUgPSBjbGVhblZhbHVlLnNwbGl0KFwiLFwiKVswXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2xlYW5WYWx1ZS5pbmRleE9mKFwiOlwiKSA+PSAwKSB7XG4gICAgICAgICAgICBjbGVhblZhbHVlID0gY2xlYW5WYWx1ZS5zcGxpdChcIjpcIilbMF07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNsZWFuVmFsdWUuaW5kZXhPZihcIiNcIikgPj0gMCkge1xuICAgICAgICAgICAgY2xlYW5WYWx1ZSA9IGNsZWFuVmFsdWUuc3BsaXQoXCIjXCIpWzFdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjbGVhblZhbHVlO1xuICAgIH07XG4gICAgY29uc3QgaGVhZGVyS2V5ID0gZmluZEtleShvdXRwdXQuaGVhZGVycywgXCJ4LWFtem4tZXJyb3J0eXBlXCIpO1xuICAgIGlmIChoZWFkZXJLZXkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gc2FuaXRpemVFcnJvckNvZGUob3V0cHV0LmhlYWRlcnNbaGVhZGVyS2V5XSk7XG4gICAgfVxuICAgIGlmIChkYXRhICYmIHR5cGVvZiBkYXRhID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgIGNvbnN0IGNvZGVLZXkgPSBmaW5kS2V5KGRhdGEsIFwiY29kZVwiKTtcbiAgICAgICAgaWYgKGNvZGVLZXkgJiYgZGF0YVtjb2RlS2V5XSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gc2FuaXRpemVFcnJvckNvZGUoZGF0YVtjb2RlS2V5XSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGFbXCJfX3R5cGVcIl0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHNhbml0aXplRXJyb3JDb2RlKGRhdGFbXCJfX3R5cGVcIl0pO1xuICAgICAgICB9XG4gICAgfVxufTtcbiIsICJpbXBvcnQgeyBkZXRlcm1pbmVUaW1lc3RhbXBGb3JtYXQgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3Byb3RvY29sc1wiO1xuaW1wb3J0IHsgTm9ybWFsaXplZFNjaGVtYSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2NoZW1hXCI7XG5pbXBvcnQgeyBMYXp5SnNvblN0cmluZywgTnVtZXJpY1ZhbHVlLCBwYXJzZUVwb2NoVGltZXN0YW1wLCBwYXJzZVJmYzMzMzlEYXRlVGltZVdpdGhPZmZzZXQsIHBhcnNlUmZjNzIzMURhdGVUaW1lLCB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2VyZGVcIjtcbmltcG9ydCB7IGZyb21CYXNlNjQgfSBmcm9tIFwiQHNtaXRoeS91dGlsLWJhc2U2NFwiO1xuaW1wb3J0IHsgU2VyZGVDb250ZXh0Q29uZmlnIH0gZnJvbSBcIi4uL0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dFwiO1xuaW1wb3J0IHsgVW5pb25TZXJkZSB9IGZyb20gXCIuLi9VbmlvblNlcmRlXCI7XG5pbXBvcnQgeyBqc29uUmV2aXZlciB9IGZyb20gXCIuL2pzb25SZXZpdmVyXCI7XG5pbXBvcnQgeyBwYXJzZUpzb25Cb2R5IH0gZnJvbSBcIi4vcGFyc2VKc29uQm9keVwiO1xuZXhwb3J0IGNsYXNzIEpzb25TaGFwZURlc2VyaWFsaXplciBleHRlbmRzIFNlcmRlQ29udGV4dENvbmZpZyB7XG4gICAgc2V0dGluZ3M7XG4gICAgY29uc3RydWN0b3Ioc2V0dGluZ3MpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5zZXR0aW5ncyA9IHNldHRpbmdzO1xuICAgIH1cbiAgICBhc3luYyByZWFkKHNjaGVtYSwgZGF0YSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVhZChzY2hlbWEsIHR5cGVvZiBkYXRhID09PSBcInN0cmluZ1wiID8gSlNPTi5wYXJzZShkYXRhLCBqc29uUmV2aXZlcikgOiBhd2FpdCBwYXJzZUpzb25Cb2R5KGRhdGEsIHRoaXMuc2VyZGVDb250ZXh0KSk7XG4gICAgfVxuICAgIHJlYWRPYmplY3Qoc2NoZW1hLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZWFkKHNjaGVtYSwgZGF0YSk7XG4gICAgfVxuICAgIF9yZWFkKHNjaGVtYSwgdmFsdWUpIHtcbiAgICAgICAgY29uc3QgaXNPYmplY3QgPSB2YWx1ZSAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCI7XG4gICAgICAgIGNvbnN0IG5zID0gTm9ybWFsaXplZFNjaGVtYS5vZihzY2hlbWEpO1xuICAgICAgICBpZiAoaXNPYmplY3QpIHtcbiAgICAgICAgICAgIGlmIChucy5pc1N0cnVjdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVjb3JkID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgY29uc3QgdW5pb24gPSBucy5pc1VuaW9uU2NoZW1hKCk7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3V0ID0ge307XG4gICAgICAgICAgICAgICAgbGV0IG5hbWVNYXAgPSB2b2lkIDA7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBqc29uTmFtZSB9ID0gdGhpcy5zZXR0aW5ncztcbiAgICAgICAgICAgICAgICBpZiAoanNvbk5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZU1hcCA9IHt9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBsZXQgdW5pb25TZXJkZTtcbiAgICAgICAgICAgICAgICBpZiAodW5pb24pIHtcbiAgICAgICAgICAgICAgICAgICAgdW5pb25TZXJkZSA9IG5ldyBVbmlvblNlcmRlKHJlY29yZCwgb3V0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBbbWVtYmVyTmFtZSwgbWVtYmVyU2NoZW1hXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBmcm9tS2V5ID0gbWVtYmVyTmFtZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGpzb25OYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmcm9tS2V5ID0gbWVtYmVyU2NoZW1hLmdldE1lcmdlZFRyYWl0cygpLmpzb25OYW1lID8/IGZyb21LZXk7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lTWFwW2Zyb21LZXldID0gbWVtYmVyTmFtZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAodW5pb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHVuaW9uU2VyZGUubWFyayhmcm9tS2V5KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAocmVjb3JkW2Zyb21LZXldICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG91dFttZW1iZXJOYW1lXSA9IHRoaXMuX3JlYWQobWVtYmVyU2NoZW1hLCByZWNvcmRbZnJvbUtleV0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh1bmlvbikge1xuICAgICAgICAgICAgICAgICAgICB1bmlvblNlcmRlLndyaXRlVW5rbm93bigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmICh0eXBlb2YgcmVjb3JkLl9fdHlwZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IFtrLCB2XSBvZiBPYmplY3QuZW50cmllcyhyZWNvcmQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0ID0ganNvbk5hbWUgPyBuYW1lTWFwW2tdID8/IGsgOiBrO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEodCBpbiBvdXQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0W3RdID0gdjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gb3V0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpICYmIG5zLmlzTGlzdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbGlzdE1lbWJlciA9IG5zLmdldFZhbHVlU2NoZW1hKCk7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3V0ID0gW107XG4gICAgICAgICAgICAgICAgY29uc3Qgc3BhcnNlID0gISFucy5nZXRNZXJnZWRUcmFpdHMoKS5zcGFyc2U7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzcGFyc2UgfHwgaXRlbSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvdXQucHVzaCh0aGlzLl9yZWFkKGxpc3RNZW1iZXIsIGl0ZW0pKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gb3V0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG5zLmlzTWFwU2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBtYXBNZW1iZXIgPSBucy5nZXRWYWx1ZVNjaGVtYSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IG91dCA9IHt9O1xuICAgICAgICAgICAgICAgIGNvbnN0IHNwYXJzZSA9ICEhbnMuZ2V0TWVyZ2VkVHJhaXRzKCkuc3BhcnNlO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgW19rLCBfdl0gb2YgT2JqZWN0LmVudHJpZXModmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzcGFyc2UgfHwgX3YgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3V0W19rXSA9IHRoaXMuX3JlYWQobWFwTWVtYmVyLCBfdik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIG91dDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAobnMuaXNCbG9iU2NoZW1hKCkgJiYgdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICByZXR1cm4gZnJvbUJhc2U2NCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbWVkaWFUeXBlID0gbnMuZ2V0TWVyZ2VkVHJhaXRzKCkubWVkaWFUeXBlO1xuICAgICAgICBpZiAobnMuaXNTdHJpbmdTY2hlbWEoKSAmJiB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgJiYgbWVkaWFUeXBlKSB7XG4gICAgICAgICAgICBjb25zdCBpc0pzb24gPSBtZWRpYVR5cGUgPT09IFwiYXBwbGljYXRpb24vanNvblwiIHx8IG1lZGlhVHlwZS5lbmRzV2l0aChcIitqc29uXCIpO1xuICAgICAgICAgICAgaWYgKGlzSnNvbikge1xuICAgICAgICAgICAgICAgIHJldHVybiBMYXp5SnNvblN0cmluZy5mcm9tKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobnMuaXNUaW1lc3RhbXBTY2hlbWEoKSAmJiB2YWx1ZSAhPSBudWxsKSB7XG4gICAgICAgICAgICBjb25zdCBmb3JtYXQgPSBkZXRlcm1pbmVUaW1lc3RhbXBGb3JtYXQobnMsIHRoaXMuc2V0dGluZ3MpO1xuICAgICAgICAgICAgc3dpdGNoIChmb3JtYXQpIHtcbiAgICAgICAgICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZVJmYzMzMzlEYXRlVGltZVdpdGhPZmZzZXQodmFsdWUpO1xuICAgICAgICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlUmZjNzIzMURhdGVUaW1lKHZhbHVlKTtcbiAgICAgICAgICAgICAgICBjYXNlIDc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZUVwb2NoVGltZXN0YW1wKHZhbHVlKTtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oXCJNaXNzaW5nIHRpbWVzdGFtcCBmb3JtYXQsIHBhcnNpbmcgdmFsdWUgd2l0aCBEYXRlIGNvbnN0cnVjdG9yOlwiLCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZSh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzQmlnSW50ZWdlclNjaGVtYSgpICYmICh0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCIgfHwgdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiKSkge1xuICAgICAgICAgICAgcmV0dXJuIEJpZ0ludCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzQmlnRGVjaW1hbFNjaGVtYSgpICYmIHZhbHVlICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgTnVtZXJpY1ZhbHVlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgdW50eXBlZCA9IHZhbHVlO1xuICAgICAgICAgICAgaWYgKHVudHlwZWQudHlwZSA9PT0gXCJiaWdEZWNpbWFsXCIgJiYgXCJzdHJpbmdcIiBpbiB1bnR5cGVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBOdW1lcmljVmFsdWUodW50eXBlZC5zdHJpbmcsIHVudHlwZWQudHlwZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbmV3IE51bWVyaWNWYWx1ZShTdHJpbmcodmFsdWUpLCBcImJpZ0RlY2ltYWxcIik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzTnVtZXJpY1NjaGVtYSgpICYmIHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgc3dpdGNoICh2YWx1ZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgXCJJbmZpbml0eVwiOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gSW5maW5pdHk7XG4gICAgICAgICAgICAgICAgY2FzZSBcIi1JbmZpbml0eVwiOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gLUluZmluaXR5O1xuICAgICAgICAgICAgICAgIGNhc2UgXCJOYU5cIjpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5hTjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobnMuaXNEb2N1bWVudFNjaGVtYSgpKSB7XG4gICAgICAgICAgICBpZiAoaXNPYmplY3QpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBvdXQgPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IFtdIDoge307XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBbaywgdl0gb2YgT2JqZWN0LmVudHJpZXModmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2IGluc3RhbmNlb2YgTnVtZXJpY1ZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvdXRba10gPSB2O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3V0W2tdID0gdGhpcy5fcmVhZChucywgdik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIG91dDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBzdHJ1Y3R1cmVkQ2xvbmUodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgTnVtZXJpY1ZhbHVlIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zZXJkZVwiO1xuY29uc3QgTlVNRVJJQ19DT05UUk9MX0NIQVIgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKDkyNSk7XG5leHBvcnQgY2xhc3MgSnNvblJlcGxhY2VyIHtcbiAgICB2YWx1ZXMgPSBuZXcgTWFwKCk7XG4gICAgY291bnRlciA9IDA7XG4gICAgc3RhZ2UgPSAwO1xuICAgIGNyZWF0ZVJlcGxhY2VyKCkge1xuICAgICAgICBpZiAodGhpcy5zdGFnZSA9PT0gMSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSBKc29uUmVwbGFjZXIgYWxyZWFkeSBjcmVhdGVkLlwiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5zdGFnZSA9PT0gMikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSBKc29uUmVwbGFjZXIgZXhoYXVzdGVkLlwiKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnN0YWdlID0gMTtcbiAgICAgICAgcmV0dXJuIChrZXksIHZhbHVlKSA9PiB7XG4gICAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBOdW1lcmljVmFsdWUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB2ID0gYCR7TlVNRVJJQ19DT05UUk9MX0NIQVIgKyBcIm52XCIgKyB0aGlzLmNvdW50ZXIrK31fYCArIHZhbHVlLnN0cmluZztcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlcy5zZXQoYFwiJHt2fVwiYCwgdmFsdWUuc3RyaW5nKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwiYmlnaW50XCIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzID0gdmFsdWUudG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICBjb25zdCB2ID0gYCR7TlVNRVJJQ19DT05UUk9MX0NIQVIgKyBcImJcIiArIHRoaXMuY291bnRlcisrfV9gICsgcztcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlcy5zZXQoYFwiJHt2fVwiYCwgcyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHY7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH07XG4gICAgfVxuICAgIHJlcGxhY2VJbkpzb24oanNvbikge1xuICAgICAgICBpZiAodGhpcy5zdGFnZSA9PT0gMCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSBKc29uUmVwbGFjZXIgbm90IGNyZWF0ZWQgeWV0LlwiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5zdGFnZSA9PT0gMikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSBKc29uUmVwbGFjZXIgZXhoYXVzdGVkLlwiKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnN0YWdlID0gMjtcbiAgICAgICAgaWYgKHRoaXMuY291bnRlciA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIGpzb247XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgdGhpcy52YWx1ZXMpIHtcbiAgICAgICAgICAgIGpzb24gPSBqc29uLnJlcGxhY2Uoa2V5LCB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGpzb247XG4gICAgfVxufVxuIiwgImltcG9ydCB7IGRldGVybWluZVRpbWVzdGFtcEZvcm1hdCB9IGZyb20gXCJAc21pdGh5L2NvcmUvcHJvdG9jb2xzXCI7XG5pbXBvcnQgeyBOb3JtYWxpemVkU2NoZW1hIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IGRhdGVUb1V0Y1N0cmluZywgZ2VuZXJhdGVJZGVtcG90ZW5jeVRva2VuLCBMYXp5SnNvblN0cmluZywgTnVtZXJpY1ZhbHVlIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zZXJkZVwiO1xuaW1wb3J0IHsgdG9CYXNlNjQgfSBmcm9tIFwiQHNtaXRoeS91dGlsLWJhc2U2NFwiO1xuaW1wb3J0IHsgU2VyZGVDb250ZXh0Q29uZmlnIH0gZnJvbSBcIi4uL0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dFwiO1xuaW1wb3J0IHsgSnNvblJlcGxhY2VyIH0gZnJvbSBcIi4vanNvblJlcGxhY2VyXCI7XG5leHBvcnQgY2xhc3MgSnNvblNoYXBlU2VyaWFsaXplciBleHRlbmRzIFNlcmRlQ29udGV4dENvbmZpZyB7XG4gICAgc2V0dGluZ3M7XG4gICAgYnVmZmVyO1xuICAgIHVzZVJlcGxhY2VyID0gZmFsc2U7XG4gICAgcm9vdFNjaGVtYTtcbiAgICBjb25zdHJ1Y3RvcihzZXR0aW5ncykge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnNldHRpbmdzID0gc2V0dGluZ3M7XG4gICAgfVxuICAgIHdyaXRlKHNjaGVtYSwgdmFsdWUpIHtcbiAgICAgICAgdGhpcy5yb290U2NoZW1hID0gTm9ybWFsaXplZFNjaGVtYS5vZihzY2hlbWEpO1xuICAgICAgICB0aGlzLmJ1ZmZlciA9IHRoaXMuX3dyaXRlKHRoaXMucm9vdFNjaGVtYSwgdmFsdWUpO1xuICAgIH1cbiAgICB3cml0ZURpc2NyaW1pbmF0ZWREb2N1bWVudChzY2hlbWEsIHZhbHVlKSB7XG4gICAgICAgIHRoaXMud3JpdGUoc2NoZW1hLCB2YWx1ZSk7XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5idWZmZXIgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgIHRoaXMuYnVmZmVyLl9fdHlwZSA9IE5vcm1hbGl6ZWRTY2hlbWEub2Yoc2NoZW1hKS5nZXROYW1lKHRydWUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGZsdXNoKCkge1xuICAgICAgICBjb25zdCB7IHJvb3RTY2hlbWEsIHVzZVJlcGxhY2VyIH0gPSB0aGlzO1xuICAgICAgICB0aGlzLnJvb3RTY2hlbWEgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMudXNlUmVwbGFjZXIgPSBmYWxzZTtcbiAgICAgICAgaWYgKHJvb3RTY2hlbWE/LmlzU3RydWN0U2NoZW1hKCkgfHwgcm9vdFNjaGVtYT8uaXNEb2N1bWVudFNjaGVtYSgpKSB7XG4gICAgICAgICAgICBpZiAoIXVzZVJlcGxhY2VyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHRoaXMuYnVmZmVyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHJlcGxhY2VyID0gbmV3IEpzb25SZXBsYWNlcigpO1xuICAgICAgICAgICAgcmV0dXJuIHJlcGxhY2VyLnJlcGxhY2VJbkpzb24oSlNPTi5zdHJpbmdpZnkodGhpcy5idWZmZXIsIHJlcGxhY2VyLmNyZWF0ZVJlcGxhY2VyKCksIDApKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5idWZmZXI7XG4gICAgfVxuICAgIF93cml0ZShzY2hlbWEsIHZhbHVlLCBjb250YWluZXIpIHtcbiAgICAgICAgY29uc3QgaXNPYmplY3QgPSB2YWx1ZSAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCI7XG4gICAgICAgIGNvbnN0IG5zID0gTm9ybWFsaXplZFNjaGVtYS5vZihzY2hlbWEpO1xuICAgICAgICBpZiAoaXNPYmplY3QpIHtcbiAgICAgICAgICAgIGlmIChucy5pc1N0cnVjdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVjb3JkID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3V0ID0ge307XG4gICAgICAgICAgICAgICAgY29uc3QgeyBqc29uTmFtZSB9ID0gdGhpcy5zZXR0aW5ncztcbiAgICAgICAgICAgICAgICBsZXQgbmFtZU1hcCA9IHZvaWQgMDtcbiAgICAgICAgICAgICAgICBpZiAoanNvbk5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZU1hcCA9IHt9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IFttZW1iZXJOYW1lLCBtZW1iZXJTY2hlbWFdIG9mIG5zLnN0cnVjdEl0ZXJhdG9yKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VyaWFsaXphYmxlVmFsdWUgPSB0aGlzLl93cml0ZShtZW1iZXJTY2hlbWEsIHJlY29yZFttZW1iZXJOYW1lXSwgbnMpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoc2VyaWFsaXphYmxlVmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRhcmdldEtleSA9IG1lbWJlck5hbWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoanNvbk5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRLZXkgPSBtZW1iZXJTY2hlbWEuZ2V0TWVyZ2VkVHJhaXRzKCkuanNvbk5hbWUgPz8gbWVtYmVyTmFtZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lTWFwW21lbWJlck5hbWVdID0gdGFyZ2V0S2V5O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgb3V0W3RhcmdldEtleV0gPSBzZXJpYWxpemFibGVWYWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAobnMuaXNVbmlvblNjaGVtYSgpICYmIE9iamVjdC5rZXlzKG91dCkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgJHVua25vd24gfSA9IHJlY29yZDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoJHVua25vd24pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBbaywgdl0gPSAkdW5rbm93bjtcbiAgICAgICAgICAgICAgICAgICAgICAgIG91dFtrXSA9IHRoaXMuX3dyaXRlKDE1LCB2KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmICh0eXBlb2YgcmVjb3JkLl9fdHlwZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IFtrLCB2XSBvZiBPYmplY3QuZW50cmllcyhyZWNvcmQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXRLZXkgPSBqc29uTmFtZSA/IG5hbWVNYXBba10gPz8gayA6IGs7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoISh0YXJnZXRLZXkgaW4gb3V0KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dFt0YXJnZXRLZXldID0gdGhpcy5fd3JpdGUoMTUsIHYpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBvdXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgbnMuaXNMaXN0U2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBsaXN0TWVtYmVyID0gbnMuZ2V0VmFsdWVTY2hlbWEoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBvdXQgPSBbXTtcbiAgICAgICAgICAgICAgICBjb25zdCBzcGFyc2UgPSAhIW5zLmdldE1lcmdlZFRyYWl0cygpLnNwYXJzZTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNwYXJzZSB8fCBpdGVtICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG91dC5wdXNoKHRoaXMuX3dyaXRlKGxpc3RNZW1iZXIsIGl0ZW0pKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gb3V0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG5zLmlzTWFwU2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBtYXBNZW1iZXIgPSBucy5nZXRWYWx1ZVNjaGVtYSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IG91dCA9IHt9O1xuICAgICAgICAgICAgICAgIGNvbnN0IHNwYXJzZSA9ICEhbnMuZ2V0TWVyZ2VkVHJhaXRzKCkuc3BhcnNlO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgW19rLCBfdl0gb2YgT2JqZWN0LmVudHJpZXModmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzcGFyc2UgfHwgX3YgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3V0W19rXSA9IHRoaXMuX3dyaXRlKG1hcE1lbWJlciwgX3YpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBvdXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBVaW50OEFycmF5ICYmIChucy5pc0Jsb2JTY2hlbWEoKSB8fCBucy5pc0RvY3VtZW50U2NoZW1hKCkpKSB7XG4gICAgICAgICAgICAgICAgaWYgKG5zID09PSB0aGlzLnJvb3RTY2hlbWEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gKHRoaXMuc2VyZGVDb250ZXh0Py5iYXNlNjRFbmNvZGVyID8/IHRvQmFzZTY0KSh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlICYmIChucy5pc1RpbWVzdGFtcFNjaGVtYSgpIHx8IG5zLmlzRG9jdW1lbnRTY2hlbWEoKSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmb3JtYXQgPSBkZXRlcm1pbmVUaW1lc3RhbXBGb3JtYXQobnMsIHRoaXMuc2V0dGluZ3MpO1xuICAgICAgICAgICAgICAgIHN3aXRjaCAoZm9ybWF0KSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZS50b0lTT1N0cmluZygpLnJlcGxhY2UoXCIuMDAwWlwiLCBcIlpcIik7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBkYXRlVG9VdGNTdHJpbmcodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDc6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUuZ2V0VGltZSgpIC8gMTAwMDtcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihcIk1pc3NpbmcgdGltZXN0YW1wIGZvcm1hdCwgdXNpbmcgZXBvY2ggc2Vjb25kc1wiLCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUuZ2V0VGltZSgpIC8gMTAwMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBOdW1lcmljVmFsdWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVzZVJlcGxhY2VyID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodmFsdWUgPT09IG51bGwgJiYgY29udGFpbmVyPy5pc1N0cnVjdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICByZXR1cm4gdm9pZCAwO1xuICAgICAgICB9XG4gICAgICAgIGlmIChucy5pc1N0cmluZ1NjaGVtYSgpKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcInVuZGVmaW5lZFwiICYmIG5zLmlzSWRlbXBvdGVuY3lUb2tlbigpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGdlbmVyYXRlSWRlbXBvdGVuY3lUb2tlbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgbWVkaWFUeXBlID0gbnMuZ2V0TWVyZ2VkVHJhaXRzKCkubWVkaWFUeXBlO1xuICAgICAgICAgICAgaWYgKHZhbHVlICE9IG51bGwgJiYgbWVkaWFUeXBlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNKc29uID0gbWVkaWFUeXBlID09PSBcImFwcGxpY2F0aW9uL2pzb25cIiB8fCBtZWRpYVR5cGUuZW5kc1dpdGgoXCIranNvblwiKTtcbiAgICAgICAgICAgICAgICBpZiAoaXNKc29uKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBMYXp5SnNvblN0cmluZy5mcm9tKHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJudW1iZXJcIiAmJiBucy5pc051bWVyaWNTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKE1hdGguYWJzKHZhbHVlKSA9PT0gSW5maW5pdHkgfHwgaXNOYU4odmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiAmJiBucy5pc0Jsb2JTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKG5zID09PSB0aGlzLnJvb3RTY2hlbWEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gKHRoaXMuc2VyZGVDb250ZXh0Py5iYXNlNjRFbmNvZGVyID8/IHRvQmFzZTY0KSh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJiaWdpbnRcIikge1xuICAgICAgICAgICAgdGhpcy51c2VSZXBsYWNlciA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzRG9jdW1lbnRTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKGlzT2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3V0ID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyBbXSA6IHt9O1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodiBpbnN0YW5jZW9mIE51bWVyaWNWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51c2VSZXBsYWNlciA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBvdXRba10gPSB2O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3V0W2tdID0gdGhpcy5fd3JpdGUobnMsIHYpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBvdXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3RydWN0dXJlZENsb25lKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IFNlcmRlQ29udGV4dENvbmZpZyB9IGZyb20gXCIuLi9Db25maWd1cmFibGVTZXJkZUNvbnRleHRcIjtcbmltcG9ydCB7IEpzb25TaGFwZURlc2VyaWFsaXplciB9IGZyb20gXCIuL0pzb25TaGFwZURlc2VyaWFsaXplclwiO1xuaW1wb3J0IHsgSnNvblNoYXBlU2VyaWFsaXplciB9IGZyb20gXCIuL0pzb25TaGFwZVNlcmlhbGl6ZXJcIjtcbmV4cG9ydCBjbGFzcyBKc29uQ29kZWMgZXh0ZW5kcyBTZXJkZUNvbnRleHRDb25maWcge1xuICAgIHNldHRpbmdzO1xuICAgIGNvbnN0cnVjdG9yKHNldHRpbmdzKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuc2V0dGluZ3MgPSBzZXR0aW5ncztcbiAgICB9XG4gICAgY3JlYXRlU2VyaWFsaXplcigpIHtcbiAgICAgICAgY29uc3Qgc2VyaWFsaXplciA9IG5ldyBKc29uU2hhcGVTZXJpYWxpemVyKHRoaXMuc2V0dGluZ3MpO1xuICAgICAgICBzZXJpYWxpemVyLnNldFNlcmRlQ29udGV4dCh0aGlzLnNlcmRlQ29udGV4dCk7XG4gICAgICAgIHJldHVybiBzZXJpYWxpemVyO1xuICAgIH1cbiAgICBjcmVhdGVEZXNlcmlhbGl6ZXIoKSB7XG4gICAgICAgIGNvbnN0IGRlc2VyaWFsaXplciA9IG5ldyBKc29uU2hhcGVEZXNlcmlhbGl6ZXIodGhpcy5zZXR0aW5ncyk7XG4gICAgICAgIGRlc2VyaWFsaXplci5zZXRTZXJkZUNvbnRleHQodGhpcy5zZXJkZUNvbnRleHQpO1xuICAgICAgICByZXR1cm4gZGVzZXJpYWxpemVyO1xuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBScGNQcm90b2NvbCB9IGZyb20gXCJAc21pdGh5L2NvcmUvcHJvdG9jb2xzXCI7XG5pbXBvcnQgeyBkZXJlZiwgTm9ybWFsaXplZFNjaGVtYSwgVHlwZVJlZ2lzdHJ5IH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IFByb3RvY29sTGliIH0gZnJvbSBcIi4uL1Byb3RvY29sTGliXCI7XG5pbXBvcnQgeyBKc29uQ29kZWMgfSBmcm9tIFwiLi9Kc29uQ29kZWNcIjtcbmltcG9ydCB7IGxvYWRSZXN0SnNvbkVycm9yQ29kZSB9IGZyb20gXCIuL3BhcnNlSnNvbkJvZHlcIjtcbmV4cG9ydCBjbGFzcyBBd3NKc29uUnBjUHJvdG9jb2wgZXh0ZW5kcyBScGNQcm90b2NvbCB7XG4gICAgc2VyaWFsaXplcjtcbiAgICBkZXNlcmlhbGl6ZXI7XG4gICAgc2VydmljZVRhcmdldDtcbiAgICBjb2RlYztcbiAgICBtaXhpbjtcbiAgICBhd3NRdWVyeUNvbXBhdGlibGU7XG4gICAgY29uc3RydWN0b3IoeyBkZWZhdWx0TmFtZXNwYWNlLCBzZXJ2aWNlVGFyZ2V0LCBhd3NRdWVyeUNvbXBhdGlibGUsIGpzb25Db2RlYywgfSkge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBkZWZhdWx0TmFtZXNwYWNlLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zZXJ2aWNlVGFyZ2V0ID0gc2VydmljZVRhcmdldDtcbiAgICAgICAgdGhpcy5jb2RlYyA9XG4gICAgICAgICAgICBqc29uQ29kZWMgPz9cbiAgICAgICAgICAgICAgICBuZXcgSnNvbkNvZGVjKHtcbiAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wRm9ybWF0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB1c2VUcmFpdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IDcsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGpzb25OYW1lOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zZXJpYWxpemVyID0gdGhpcy5jb2RlYy5jcmVhdGVTZXJpYWxpemVyKCk7XG4gICAgICAgIHRoaXMuZGVzZXJpYWxpemVyID0gdGhpcy5jb2RlYy5jcmVhdGVEZXNlcmlhbGl6ZXIoKTtcbiAgICAgICAgdGhpcy5hd3NRdWVyeUNvbXBhdGlibGUgPSAhIWF3c1F1ZXJ5Q29tcGF0aWJsZTtcbiAgICAgICAgdGhpcy5taXhpbiA9IG5ldyBQcm90b2NvbExpYih0aGlzLmF3c1F1ZXJ5Q29tcGF0aWJsZSk7XG4gICAgfVxuICAgIGFzeW5jIHNlcmlhbGl6ZVJlcXVlc3Qob3BlcmF0aW9uU2NoZW1hLCBpbnB1dCwgY29udGV4dCkge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gYXdhaXQgc3VwZXIuc2VyaWFsaXplUmVxdWVzdChvcGVyYXRpb25TY2hlbWEsIGlucHV0LCBjb250ZXh0KTtcbiAgICAgICAgaWYgKCFyZXF1ZXN0LnBhdGguZW5kc1dpdGgoXCIvXCIpKSB7XG4gICAgICAgICAgICByZXF1ZXN0LnBhdGggKz0gXCIvXCI7XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbihyZXF1ZXN0LmhlYWRlcnMsIHtcbiAgICAgICAgICAgIFwiY29udGVudC10eXBlXCI6IGBhcHBsaWNhdGlvbi94LWFtei1qc29uLSR7dGhpcy5nZXRKc29uUnBjVmVyc2lvbigpfWAsXG4gICAgICAgICAgICBcIngtYW16LXRhcmdldFwiOiBgJHt0aGlzLnNlcnZpY2VUYXJnZXR9LiR7b3BlcmF0aW9uU2NoZW1hLm5hbWV9YCxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmICh0aGlzLmF3c1F1ZXJ5Q29tcGF0aWJsZSkge1xuICAgICAgICAgICAgcmVxdWVzdC5oZWFkZXJzW1wieC1hbXpuLXF1ZXJ5LW1vZGVcIl0gPSBcInRydWVcIjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGVyZWYob3BlcmF0aW9uU2NoZW1hLmlucHV0KSA9PT0gXCJ1bml0XCIgfHwgIXJlcXVlc3QuYm9keSkge1xuICAgICAgICAgICAgcmVxdWVzdC5ib2R5ID0gXCJ7fVwiO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXF1ZXN0O1xuICAgIH1cbiAgICBnZXRQYXlsb2FkQ29kZWMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvZGVjO1xuICAgIH1cbiAgICBhc3luYyBoYW5kbGVFcnJvcihvcGVyYXRpb25TY2hlbWEsIGNvbnRleHQsIHJlc3BvbnNlLCBkYXRhT2JqZWN0LCBtZXRhZGF0YSkge1xuICAgICAgICBpZiAodGhpcy5hd3NRdWVyeUNvbXBhdGlibGUpIHtcbiAgICAgICAgICAgIHRoaXMubWl4aW4uc2V0UXVlcnlDb21wYXRFcnJvcihkYXRhT2JqZWN0LCByZXNwb25zZSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZXJyb3JJZGVudGlmaWVyID0gbG9hZFJlc3RKc29uRXJyb3JDb2RlKHJlc3BvbnNlLCBkYXRhT2JqZWN0KSA/PyBcIlVua25vd25cIjtcbiAgICAgICAgY29uc3QgeyBlcnJvclNjaGVtYSwgZXJyb3JNZXRhZGF0YSB9ID0gYXdhaXQgdGhpcy5taXhpbi5nZXRFcnJvclNjaGVtYU9yVGhyb3dCYXNlRXhjZXB0aW9uKGVycm9ySWRlbnRpZmllciwgdGhpcy5vcHRpb25zLmRlZmF1bHROYW1lc3BhY2UsIHJlc3BvbnNlLCBkYXRhT2JqZWN0LCBtZXRhZGF0YSwgdGhpcy5hd3NRdWVyeUNvbXBhdGlibGUgPyB0aGlzLm1peGluLmZpbmRRdWVyeUNvbXBhdGlibGVFcnJvciA6IHVuZGVmaW5lZCk7XG4gICAgICAgIGNvbnN0IG5zID0gTm9ybWFsaXplZFNjaGVtYS5vZihlcnJvclNjaGVtYSk7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBkYXRhT2JqZWN0Lm1lc3NhZ2UgPz8gZGF0YU9iamVjdC5NZXNzYWdlID8/IFwiVW5rbm93blwiO1xuICAgICAgICBjb25zdCBFcnJvckN0b3IgPSBUeXBlUmVnaXN0cnkuZm9yKGVycm9yU2NoZW1hWzFdKS5nZXRFcnJvckN0b3IoZXJyb3JTY2hlbWEpID8/IEVycm9yO1xuICAgICAgICBjb25zdCBleGNlcHRpb24gPSBuZXcgRXJyb3JDdG9yKG1lc3NhZ2UpO1xuICAgICAgICBjb25zdCBvdXRwdXQgPSB7fTtcbiAgICAgICAgZm9yIChjb25zdCBbbmFtZSwgbWVtYmVyXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICBpZiAoZGF0YU9iamVjdFtuYW1lXSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgb3V0cHV0W25hbWVdID0gdGhpcy5jb2RlYy5jcmVhdGVEZXNlcmlhbGl6ZXIoKS5yZWFkT2JqZWN0KG1lbWJlciwgZGF0YU9iamVjdFtuYW1lXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuYXdzUXVlcnlDb21wYXRpYmxlKSB7XG4gICAgICAgICAgICB0aGlzLm1peGluLnF1ZXJ5Q29tcGF0T3V0cHV0KGRhdGFPYmplY3QsIG91dHB1dCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgdGhpcy5taXhpbi5kZWNvcmF0ZVNlcnZpY2VFeGNlcHRpb24oT2JqZWN0LmFzc2lnbihleGNlcHRpb24sIGVycm9yTWV0YWRhdGEsIHtcbiAgICAgICAgICAgICRmYXVsdDogbnMuZ2V0TWVyZ2VkVHJhaXRzKCkuZXJyb3IsXG4gICAgICAgICAgICBtZXNzYWdlLFxuICAgICAgICB9LCBvdXRwdXQpLCBkYXRhT2JqZWN0KTtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgQXdzSnNvblJwY1Byb3RvY29sIH0gZnJvbSBcIi4vQXdzSnNvblJwY1Byb3RvY29sXCI7XG5leHBvcnQgY2xhc3MgQXdzSnNvbjFfMFByb3RvY29sIGV4dGVuZHMgQXdzSnNvblJwY1Byb3RvY29sIHtcbiAgICBjb25zdHJ1Y3Rvcih7IGRlZmF1bHROYW1lc3BhY2UsIHNlcnZpY2VUYXJnZXQsIGF3c1F1ZXJ5Q29tcGF0aWJsZSwganNvbkNvZGVjLCB9KSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIGRlZmF1bHROYW1lc3BhY2UsXG4gICAgICAgICAgICBzZXJ2aWNlVGFyZ2V0LFxuICAgICAgICAgICAgYXdzUXVlcnlDb21wYXRpYmxlLFxuICAgICAgICAgICAganNvbkNvZGVjLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgZ2V0U2hhcGVJZCgpIHtcbiAgICAgICAgcmV0dXJuIFwiYXdzLnByb3RvY29scyNhd3NKc29uMV8wXCI7XG4gICAgfVxuICAgIGdldEpzb25ScGNWZXJzaW9uKCkge1xuICAgICAgICByZXR1cm4gXCIxLjBcIjtcbiAgICB9XG4gICAgZ2V0RGVmYXVsdENvbnRlbnRUeXBlKCkge1xuICAgICAgICByZXR1cm4gXCJhcHBsaWNhdGlvbi94LWFtei1qc29uLTEuMFwiO1xuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBBd3NKc29uUnBjUHJvdG9jb2wgfSBmcm9tIFwiLi9Bd3NKc29uUnBjUHJvdG9jb2xcIjtcbmV4cG9ydCBjbGFzcyBBd3NKc29uMV8xUHJvdG9jb2wgZXh0ZW5kcyBBd3NKc29uUnBjUHJvdG9jb2wge1xuICAgIGNvbnN0cnVjdG9yKHsgZGVmYXVsdE5hbWVzcGFjZSwgc2VydmljZVRhcmdldCwgYXdzUXVlcnlDb21wYXRpYmxlLCBqc29uQ29kZWMsIH0pIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgZGVmYXVsdE5hbWVzcGFjZSxcbiAgICAgICAgICAgIHNlcnZpY2VUYXJnZXQsXG4gICAgICAgICAgICBhd3NRdWVyeUNvbXBhdGlibGUsXG4gICAgICAgICAgICBqc29uQ29kZWMsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBnZXRTaGFwZUlkKCkge1xuICAgICAgICByZXR1cm4gXCJhd3MucHJvdG9jb2xzI2F3c0pzb24xXzFcIjtcbiAgICB9XG4gICAgZ2V0SnNvblJwY1ZlcnNpb24oKSB7XG4gICAgICAgIHJldHVybiBcIjEuMVwiO1xuICAgIH1cbiAgICBnZXREZWZhdWx0Q29udGVudFR5cGUoKSB7XG4gICAgICAgIHJldHVybiBcImFwcGxpY2F0aW9uL3gtYW16LWpzb24tMS4xXCI7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IEh0dHBCaW5kaW5nUHJvdG9jb2wsIEh0dHBJbnRlcmNlcHRpbmdTaGFwZURlc2VyaWFsaXplciwgSHR0cEludGVyY2VwdGluZ1NoYXBlU2VyaWFsaXplciwgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3Byb3RvY29sc1wiO1xuaW1wb3J0IHsgTm9ybWFsaXplZFNjaGVtYSwgVHlwZVJlZ2lzdHJ5IH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IFByb3RvY29sTGliIH0gZnJvbSBcIi4uL1Byb3RvY29sTGliXCI7XG5pbXBvcnQgeyBKc29uQ29kZWMgfSBmcm9tIFwiLi9Kc29uQ29kZWNcIjtcbmltcG9ydCB7IGxvYWRSZXN0SnNvbkVycm9yQ29kZSB9IGZyb20gXCIuL3BhcnNlSnNvbkJvZHlcIjtcbmV4cG9ydCBjbGFzcyBBd3NSZXN0SnNvblByb3RvY29sIGV4dGVuZHMgSHR0cEJpbmRpbmdQcm90b2NvbCB7XG4gICAgc2VyaWFsaXplcjtcbiAgICBkZXNlcmlhbGl6ZXI7XG4gICAgY29kZWM7XG4gICAgbWl4aW4gPSBuZXcgUHJvdG9jb2xMaWIoKTtcbiAgICBjb25zdHJ1Y3Rvcih7IGRlZmF1bHROYW1lc3BhY2UgfSkge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBkZWZhdWx0TmFtZXNwYWNlLFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3Qgc2V0dGluZ3MgPSB7XG4gICAgICAgICAgICB0aW1lc3RhbXBGb3JtYXQ6IHtcbiAgICAgICAgICAgICAgICB1c2VUcmFpdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiA3LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGh0dHBCaW5kaW5nczogdHJ1ZSxcbiAgICAgICAgICAgIGpzb25OYW1lOiB0cnVlLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmNvZGVjID0gbmV3IEpzb25Db2RlYyhzZXR0aW5ncyk7XG4gICAgICAgIHRoaXMuc2VyaWFsaXplciA9IG5ldyBIdHRwSW50ZXJjZXB0aW5nU2hhcGVTZXJpYWxpemVyKHRoaXMuY29kZWMuY3JlYXRlU2VyaWFsaXplcigpLCBzZXR0aW5ncyk7XG4gICAgICAgIHRoaXMuZGVzZXJpYWxpemVyID0gbmV3IEh0dHBJbnRlcmNlcHRpbmdTaGFwZURlc2VyaWFsaXplcih0aGlzLmNvZGVjLmNyZWF0ZURlc2VyaWFsaXplcigpLCBzZXR0aW5ncyk7XG4gICAgfVxuICAgIGdldFNoYXBlSWQoKSB7XG4gICAgICAgIHJldHVybiBcImF3cy5wcm90b2NvbHMjcmVzdEpzb24xXCI7XG4gICAgfVxuICAgIGdldFBheWxvYWRDb2RlYygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29kZWM7XG4gICAgfVxuICAgIHNldFNlcmRlQ29udGV4dChzZXJkZUNvbnRleHQpIHtcbiAgICAgICAgdGhpcy5jb2RlYy5zZXRTZXJkZUNvbnRleHQoc2VyZGVDb250ZXh0KTtcbiAgICAgICAgc3VwZXIuc2V0U2VyZGVDb250ZXh0KHNlcmRlQ29udGV4dCk7XG4gICAgfVxuICAgIGFzeW5jIHNlcmlhbGl6ZVJlcXVlc3Qob3BlcmF0aW9uU2NoZW1hLCBpbnB1dCwgY29udGV4dCkge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gYXdhaXQgc3VwZXIuc2VyaWFsaXplUmVxdWVzdChvcGVyYXRpb25TY2hlbWEsIGlucHV0LCBjb250ZXh0KTtcbiAgICAgICAgY29uc3QgaW5wdXRTY2hlbWEgPSBOb3JtYWxpemVkU2NoZW1hLm9mKG9wZXJhdGlvblNjaGVtYS5pbnB1dCk7XG4gICAgICAgIGlmICghcmVxdWVzdC5oZWFkZXJzW1wiY29udGVudC10eXBlXCJdKSB7XG4gICAgICAgICAgICBjb25zdCBjb250ZW50VHlwZSA9IHRoaXMubWl4aW4ucmVzb2x2ZVJlc3RDb250ZW50VHlwZSh0aGlzLmdldERlZmF1bHRDb250ZW50VHlwZSgpLCBpbnB1dFNjaGVtYSk7XG4gICAgICAgICAgICBpZiAoY29udGVudFR5cGUpIHtcbiAgICAgICAgICAgICAgICByZXF1ZXN0LmhlYWRlcnNbXCJjb250ZW50LXR5cGVcIl0gPSBjb250ZW50VHlwZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAocmVxdWVzdC5ib2R5ID09IG51bGwgJiYgcmVxdWVzdC5oZWFkZXJzW1wiY29udGVudC10eXBlXCJdID09PSB0aGlzLmdldERlZmF1bHRDb250ZW50VHlwZSgpKSB7XG4gICAgICAgICAgICByZXF1ZXN0LmJvZHkgPSBcInt9XCI7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlcXVlc3Q7XG4gICAgfVxuICAgIGFzeW5jIGRlc2VyaWFsaXplUmVzcG9uc2Uob3BlcmF0aW9uU2NoZW1hLCBjb250ZXh0LCByZXNwb25zZSkge1xuICAgICAgICBjb25zdCBvdXRwdXQgPSBhd2FpdCBzdXBlci5kZXNlcmlhbGl6ZVJlc3BvbnNlKG9wZXJhdGlvblNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UpO1xuICAgICAgICBjb25zdCBvdXRwdXRTY2hlbWEgPSBOb3JtYWxpemVkU2NoZW1hLm9mKG9wZXJhdGlvblNjaGVtYS5vdXRwdXQpO1xuICAgICAgICBmb3IgKGNvbnN0IFtuYW1lLCBtZW1iZXJdIG9mIG91dHB1dFNjaGVtYS5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICBpZiAobWVtYmVyLmdldE1lbWJlclRyYWl0cygpLmh0dHBQYXlsb2FkICYmICEobmFtZSBpbiBvdXRwdXQpKSB7XG4gICAgICAgICAgICAgICAgb3V0cHV0W25hbWVdID0gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb3V0cHV0O1xuICAgIH1cbiAgICBhc3luYyBoYW5kbGVFcnJvcihvcGVyYXRpb25TY2hlbWEsIGNvbnRleHQsIHJlc3BvbnNlLCBkYXRhT2JqZWN0LCBtZXRhZGF0YSkge1xuICAgICAgICBjb25zdCBlcnJvcklkZW50aWZpZXIgPSBsb2FkUmVzdEpzb25FcnJvckNvZGUocmVzcG9uc2UsIGRhdGFPYmplY3QpID8/IFwiVW5rbm93blwiO1xuICAgICAgICBjb25zdCB7IGVycm9yU2NoZW1hLCBlcnJvck1ldGFkYXRhIH0gPSBhd2FpdCB0aGlzLm1peGluLmdldEVycm9yU2NoZW1hT3JUaHJvd0Jhc2VFeGNlcHRpb24oZXJyb3JJZGVudGlmaWVyLCB0aGlzLm9wdGlvbnMuZGVmYXVsdE5hbWVzcGFjZSwgcmVzcG9uc2UsIGRhdGFPYmplY3QsIG1ldGFkYXRhKTtcbiAgICAgICAgY29uc3QgbnMgPSBOb3JtYWxpemVkU2NoZW1hLm9mKGVycm9yU2NoZW1hKTtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGRhdGFPYmplY3QubWVzc2FnZSA/PyBkYXRhT2JqZWN0Lk1lc3NhZ2UgPz8gXCJVbmtub3duXCI7XG4gICAgICAgIGNvbnN0IEVycm9yQ3RvciA9IFR5cGVSZWdpc3RyeS5mb3IoZXJyb3JTY2hlbWFbMV0pLmdldEVycm9yQ3RvcihlcnJvclNjaGVtYSkgPz8gRXJyb3I7XG4gICAgICAgIGNvbnN0IGV4Y2VwdGlvbiA9IG5ldyBFcnJvckN0b3IobWVzc2FnZSk7XG4gICAgICAgIGF3YWl0IHRoaXMuZGVzZXJpYWxpemVIdHRwTWVzc2FnZShlcnJvclNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UsIGRhdGFPYmplY3QpO1xuICAgICAgICBjb25zdCBvdXRwdXQgPSB7fTtcbiAgICAgICAgZm9yIChjb25zdCBbbmFtZSwgbWVtYmVyXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBtZW1iZXIuZ2V0TWVyZ2VkVHJhaXRzKCkuanNvbk5hbWUgPz8gbmFtZTtcbiAgICAgICAgICAgIG91dHB1dFtuYW1lXSA9IHRoaXMuY29kZWMuY3JlYXRlRGVzZXJpYWxpemVyKCkucmVhZE9iamVjdChtZW1iZXIsIGRhdGFPYmplY3RbdGFyZ2V0XSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgdGhpcy5taXhpbi5kZWNvcmF0ZVNlcnZpY2VFeGNlcHRpb24oT2JqZWN0LmFzc2lnbihleGNlcHRpb24sIGVycm9yTWV0YWRhdGEsIHtcbiAgICAgICAgICAgICRmYXVsdDogbnMuZ2V0TWVyZ2VkVHJhaXRzKCkuZXJyb3IsXG4gICAgICAgICAgICBtZXNzYWdlLFxuICAgICAgICB9LCBvdXRwdXQpLCBkYXRhT2JqZWN0KTtcbiAgICB9XG4gICAgZ2V0RGVmYXVsdENvbnRlbnRUeXBlKCkge1xuICAgICAgICByZXR1cm4gXCJhcHBsaWNhdGlvbi9qc29uXCI7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IGV4cGVjdFVuaW9uIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuZXhwb3J0IGNvbnN0IGF3c0V4cGVjdFVuaW9uID0gKHZhbHVlKSA9PiB7XG4gICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIiAmJiBcIl9fdHlwZVwiIGluIHZhbHVlKSB7XG4gICAgICAgIGRlbGV0ZSB2YWx1ZS5fX3R5cGU7XG4gICAgfVxuICAgIHJldHVybiBleHBlY3RVbmlvbih2YWx1ZSk7XG59O1xuIiwgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5wYXJzZVhNTCA9IHBhcnNlWE1MO1xuY29uc3QgZmFzdF94bWxfcGFyc2VyXzEgPSByZXF1aXJlKFwiZmFzdC14bWwtcGFyc2VyXCIpO1xuY29uc3QgcGFyc2VyID0gbmV3IGZhc3RfeG1sX3BhcnNlcl8xLlhNTFBhcnNlcih7XG4gICAgYXR0cmlidXRlTmFtZVByZWZpeDogXCJcIixcbiAgICBodG1sRW50aXRpZXM6IHRydWUsXG4gICAgaWdub3JlQXR0cmlidXRlczogZmFsc2UsXG4gICAgaWdub3JlRGVjbGFyYXRpb246IHRydWUsXG4gICAgcGFyc2VUYWdWYWx1ZTogZmFsc2UsXG4gICAgdHJpbVZhbHVlczogZmFsc2UsXG4gICAgdGFnVmFsdWVQcm9jZXNzb3I6IChfLCB2YWwpID0+ICh2YWwudHJpbSgpID09PSBcIlwiICYmIHZhbC5pbmNsdWRlcyhcIlxcblwiKSA/IFwiXCIgOiB1bmRlZmluZWQpLFxufSk7XG5wYXJzZXIuYWRkRW50aXR5KFwiI3hEXCIsIFwiXFxyXCIpO1xucGFyc2VyLmFkZEVudGl0eShcIiMxMFwiLCBcIlxcblwiKTtcbmZ1bmN0aW9uIHBhcnNlWE1MKHhtbFN0cmluZykge1xuICAgIHJldHVybiBwYXJzZXIucGFyc2UoeG1sU3RyaW5nLCB0cnVlKTtcbn1cbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciB4bWxQYXJzZXIgPSByZXF1aXJlKCcuL3htbC1wYXJzZXInKTtcblxuZnVuY3Rpb24gZXNjYXBlQXR0cmlidXRlKHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlLnJlcGxhY2UoLyYvZywgXCImYW1wO1wiKS5yZXBsYWNlKC88L2csIFwiJmx0O1wiKS5yZXBsYWNlKC8+L2csIFwiJmd0O1wiKS5yZXBsYWNlKC9cIi9nLCBcIiZxdW90O1wiKTtcbn1cblxuZnVuY3Rpb24gZXNjYXBlRWxlbWVudCh2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZVxuICAgICAgICAucmVwbGFjZSgvJi9nLCBcIiZhbXA7XCIpXG4gICAgICAgIC5yZXBsYWNlKC9cIi9nLCBcIiZxdW90O1wiKVxuICAgICAgICAucmVwbGFjZSgvJy9nLCBcIiZhcG9zO1wiKVxuICAgICAgICAucmVwbGFjZSgvPC9nLCBcIiZsdDtcIilcbiAgICAgICAgLnJlcGxhY2UoLz4vZywgXCImZ3Q7XCIpXG4gICAgICAgIC5yZXBsYWNlKC9cXHIvZywgXCImI3gwRDtcIilcbiAgICAgICAgLnJlcGxhY2UoL1xcbi9nLCBcIiYjeDBBO1wiKVxuICAgICAgICAucmVwbGFjZSgvXFx1MDA4NS9nLCBcIiYjeDg1O1wiKVxuICAgICAgICAucmVwbGFjZSgvXFx1MjAyOC8sIFwiJiN4MjAyODtcIik7XG59XG5cbmNsYXNzIFhtbFRleHQge1xuICAgIHZhbHVlO1xuICAgIGNvbnN0cnVjdG9yKHZhbHVlKSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB9XG4gICAgdG9TdHJpbmcoKSB7XG4gICAgICAgIHJldHVybiBlc2NhcGVFbGVtZW50KFwiXCIgKyB0aGlzLnZhbHVlKTtcbiAgICB9XG59XG5cbmNsYXNzIFhtbE5vZGUge1xuICAgIG5hbWU7XG4gICAgY2hpbGRyZW47XG4gICAgYXR0cmlidXRlcyA9IHt9O1xuICAgIHN0YXRpYyBvZihuYW1lLCBjaGlsZFRleHQsIHdpdGhOYW1lKSB7XG4gICAgICAgIGNvbnN0IG5vZGUgPSBuZXcgWG1sTm9kZShuYW1lKTtcbiAgICAgICAgaWYgKGNoaWxkVGV4dCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBub2RlLmFkZENoaWxkTm9kZShuZXcgWG1sVGV4dChjaGlsZFRleHQpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAod2l0aE5hbWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgbm9kZS53aXRoTmFtZSh3aXRoTmFtZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5vZGU7XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKG5hbWUsIGNoaWxkcmVuID0gW10pIHtcbiAgICAgICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICAgICAgdGhpcy5jaGlsZHJlbiA9IGNoaWxkcmVuO1xuICAgIH1cbiAgICB3aXRoTmFtZShuYW1lKSB7XG4gICAgICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBhZGRBdHRyaWJ1dGUobmFtZSwgdmFsdWUpIHtcbiAgICAgICAgdGhpcy5hdHRyaWJ1dGVzW25hbWVdID0gdmFsdWU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBhZGRDaGlsZE5vZGUoY2hpbGQpIHtcbiAgICAgICAgdGhpcy5jaGlsZHJlbi5wdXNoKGNoaWxkKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIHJlbW92ZUF0dHJpYnV0ZShuYW1lKSB7XG4gICAgICAgIGRlbGV0ZSB0aGlzLmF0dHJpYnV0ZXNbbmFtZV07XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBuKG5hbWUpIHtcbiAgICAgICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIGMoY2hpbGQpIHtcbiAgICAgICAgdGhpcy5jaGlsZHJlbi5wdXNoKGNoaWxkKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIGEobmFtZSwgdmFsdWUpIHtcbiAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuYXR0cmlidXRlc1tuYW1lXSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBjYyhpbnB1dCwgZmllbGQsIHdpdGhOYW1lID0gZmllbGQpIHtcbiAgICAgICAgaWYgKGlucHV0W2ZpZWxkXSAhPSBudWxsKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlID0gWG1sTm9kZS5vZihmaWVsZCwgaW5wdXRbZmllbGRdKS53aXRoTmFtZSh3aXRoTmFtZSk7XG4gICAgICAgICAgICB0aGlzLmMobm9kZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbChpbnB1dCwgbGlzdE5hbWUsIG1lbWJlck5hbWUsIHZhbHVlUHJvdmlkZXIpIHtcbiAgICAgICAgaWYgKGlucHV0W2xpc3ROYW1lXSAhPSBudWxsKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlcyA9IHZhbHVlUHJvdmlkZXIoKTtcbiAgICAgICAgICAgIG5vZGVzLm1hcCgobm9kZSkgPT4ge1xuICAgICAgICAgICAgICAgIG5vZGUud2l0aE5hbWUobWVtYmVyTmFtZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5jKG5vZGUpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbGMoaW5wdXQsIGxpc3ROYW1lLCBtZW1iZXJOYW1lLCB2YWx1ZVByb3ZpZGVyKSB7XG4gICAgICAgIGlmIChpbnB1dFtsaXN0TmFtZV0gIT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZXMgPSB2YWx1ZVByb3ZpZGVyKCk7XG4gICAgICAgICAgICBjb25zdCBjb250YWluZXJOb2RlID0gbmV3IFhtbE5vZGUobWVtYmVyTmFtZSk7XG4gICAgICAgICAgICBub2Rlcy5tYXAoKG5vZGUpID0+IHtcbiAgICAgICAgICAgICAgICBjb250YWluZXJOb2RlLmMobm9kZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuYyhjb250YWluZXJOb2RlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICB0b1N0cmluZygpIHtcbiAgICAgICAgY29uc3QgaGFzQ2hpbGRyZW4gPSBCb29sZWFuKHRoaXMuY2hpbGRyZW4ubGVuZ3RoKTtcbiAgICAgICAgbGV0IHhtbFRleHQgPSBgPCR7dGhpcy5uYW1lfWA7XG4gICAgICAgIGNvbnN0IGF0dHJpYnV0ZXMgPSB0aGlzLmF0dHJpYnV0ZXM7XG4gICAgICAgIGZvciAoY29uc3QgYXR0cmlidXRlTmFtZSBvZiBPYmplY3Qua2V5cyhhdHRyaWJ1dGVzKSkge1xuICAgICAgICAgICAgY29uc3QgYXR0cmlidXRlID0gYXR0cmlidXRlc1thdHRyaWJ1dGVOYW1lXTtcbiAgICAgICAgICAgIGlmIChhdHRyaWJ1dGUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHhtbFRleHQgKz0gYCAke2F0dHJpYnV0ZU5hbWV9PVwiJHtlc2NhcGVBdHRyaWJ1dGUoXCJcIiArIGF0dHJpYnV0ZSl9XCJgO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiAoeG1sVGV4dCArPSAhaGFzQ2hpbGRyZW4gPyBcIi8+XCIgOiBgPiR7dGhpcy5jaGlsZHJlbi5tYXAoKGMpID0+IGMudG9TdHJpbmcoKSkuam9pbihcIlwiKX08LyR7dGhpcy5uYW1lfT5gKTtcbiAgICB9XG59XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcInBhcnNlWE1MXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4geG1sUGFyc2VyLnBhcnNlWE1MOyB9XG59KTtcbmV4cG9ydHMuWG1sTm9kZSA9IFhtbE5vZGU7XG5leHBvcnRzLlhtbFRleHQgPSBYbWxUZXh0O1xuIiwgImltcG9ydCB7IHBhcnNlWE1MIH0gZnJvbSBcIkBhd3Mtc2RrL3htbC1idWlsZGVyXCI7XG5pbXBvcnQgeyBGcm9tU3RyaW5nU2hhcGVEZXNlcmlhbGl6ZXIgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3Byb3RvY29sc1wiO1xuaW1wb3J0IHsgTm9ybWFsaXplZFNjaGVtYSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2NoZW1hXCI7XG5pbXBvcnQgeyBnZXRWYWx1ZUZyb21UZXh0Tm9kZSB9IGZyb20gXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjtcbmltcG9ydCB7IHRvVXRmOCB9IGZyb20gXCJAc21pdGh5L3V0aWwtdXRmOFwiO1xuaW1wb3J0IHsgU2VyZGVDb250ZXh0Q29uZmlnIH0gZnJvbSBcIi4uL0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dFwiO1xuaW1wb3J0IHsgVW5pb25TZXJkZSB9IGZyb20gXCIuLi9VbmlvblNlcmRlXCI7XG5leHBvcnQgY2xhc3MgWG1sU2hhcGVEZXNlcmlhbGl6ZXIgZXh0ZW5kcyBTZXJkZUNvbnRleHRDb25maWcge1xuICAgIHNldHRpbmdzO1xuICAgIHN0cmluZ0Rlc2VyaWFsaXplcjtcbiAgICBjb25zdHJ1Y3RvcihzZXR0aW5ncykge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnNldHRpbmdzID0gc2V0dGluZ3M7XG4gICAgICAgIHRoaXMuc3RyaW5nRGVzZXJpYWxpemVyID0gbmV3IEZyb21TdHJpbmdTaGFwZURlc2VyaWFsaXplcihzZXR0aW5ncyk7XG4gICAgfVxuICAgIHNldFNlcmRlQ29udGV4dChzZXJkZUNvbnRleHQpIHtcbiAgICAgICAgdGhpcy5zZXJkZUNvbnRleHQgPSBzZXJkZUNvbnRleHQ7XG4gICAgICAgIHRoaXMuc3RyaW5nRGVzZXJpYWxpemVyLnNldFNlcmRlQ29udGV4dChzZXJkZUNvbnRleHQpO1xuICAgIH1cbiAgICByZWFkKHNjaGVtYSwgYnl0ZXMsIGtleSkge1xuICAgICAgICBjb25zdCBucyA9IE5vcm1hbGl6ZWRTY2hlbWEub2Yoc2NoZW1hKTtcbiAgICAgICAgY29uc3QgbWVtYmVyU2NoZW1hcyA9IG5zLmdldE1lbWJlclNjaGVtYXMoKTtcbiAgICAgICAgY29uc3QgaXNFdmVudFBheWxvYWQgPSBucy5pc1N0cnVjdFNjaGVtYSgpICYmXG4gICAgICAgICAgICBucy5pc01lbWJlclNjaGVtYSgpICYmXG4gICAgICAgICAgICAhIU9iamVjdC52YWx1ZXMobWVtYmVyU2NoZW1hcykuZmluZCgobWVtYmVyTnMpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gISFtZW1iZXJOcy5nZXRNZW1iZXJUcmFpdHMoKS5ldmVudFBheWxvYWQ7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgaWYgKGlzRXZlbnRQYXlsb2FkKSB7XG4gICAgICAgICAgICBjb25zdCBvdXRwdXQgPSB7fTtcbiAgICAgICAgICAgIGNvbnN0IG1lbWJlck5hbWUgPSBPYmplY3Qua2V5cyhtZW1iZXJTY2hlbWFzKVswXTtcbiAgICAgICAgICAgIGNvbnN0IGV2ZW50TWVtYmVyU2NoZW1hID0gbWVtYmVyU2NoZW1hc1ttZW1iZXJOYW1lXTtcbiAgICAgICAgICAgIGlmIChldmVudE1lbWJlclNjaGVtYS5pc0Jsb2JTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIG91dHB1dFttZW1iZXJOYW1lXSA9IGJ5dGVzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgb3V0cHV0W21lbWJlck5hbWVdID0gdGhpcy5yZWFkKG1lbWJlclNjaGVtYXNbbWVtYmVyTmFtZV0sIGJ5dGVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBvdXRwdXQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgeG1sU3RyaW5nID0gKHRoaXMuc2VyZGVDb250ZXh0Py51dGY4RW5jb2RlciA/PyB0b1V0ZjgpKGJ5dGVzKTtcbiAgICAgICAgY29uc3QgcGFyc2VkT2JqZWN0ID0gdGhpcy5wYXJzZVhtbCh4bWxTdHJpbmcpO1xuICAgICAgICByZXR1cm4gdGhpcy5yZWFkU2NoZW1hKHNjaGVtYSwga2V5ID8gcGFyc2VkT2JqZWN0W2tleV0gOiBwYXJzZWRPYmplY3QpO1xuICAgIH1cbiAgICByZWFkU2NoZW1hKF9zY2hlbWEsIHZhbHVlKSB7XG4gICAgICAgIGNvbnN0IG5zID0gTm9ybWFsaXplZFNjaGVtYS5vZihfc2NoZW1hKTtcbiAgICAgICAgaWYgKG5zLmlzVW5pdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdHJhaXRzID0gbnMuZ2V0TWVyZ2VkVHJhaXRzKCk7XG4gICAgICAgIGlmIChucy5pc0xpc3RTY2hlbWEoKSAmJiAhQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnJlYWRTY2hlbWEobnMsIFt2YWx1ZV0pO1xuICAgICAgICB9XG4gICAgICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgY29uc3Qgc3BhcnNlID0gISF0cmFpdHMuc3BhcnNlO1xuICAgICAgICAgICAgY29uc3QgZmxhdCA9ICEhdHJhaXRzLnhtbEZsYXR0ZW5lZDtcbiAgICAgICAgICAgIGlmIChucy5pc0xpc3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxpc3RWYWx1ZSA9IG5zLmdldFZhbHVlU2NoZW1hKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgYnVmZmVyID0gW107XG4gICAgICAgICAgICAgICAgY29uc3Qgc291cmNlS2V5ID0gbGlzdFZhbHVlLmdldE1lcmdlZFRyYWl0cygpLnhtbE5hbWUgPz8gXCJtZW1iZXJcIjtcbiAgICAgICAgICAgICAgICBjb25zdCBzb3VyY2UgPSBmbGF0ID8gdmFsdWUgOiAodmFsdWVbMF0gPz8gdmFsdWUpW3NvdXJjZUtleV07XG4gICAgICAgICAgICAgICAgY29uc3Qgc291cmNlQXJyYXkgPSBBcnJheS5pc0FycmF5KHNvdXJjZSkgPyBzb3VyY2UgOiBbc291cmNlXTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHYgb2Ygc291cmNlQXJyYXkpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHYgIT0gbnVsbCB8fCBzcGFyc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5wdXNoKHRoaXMucmVhZFNjaGVtYShsaXN0VmFsdWUsIHYpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gYnVmZmVyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgYnVmZmVyID0ge307XG4gICAgICAgICAgICBpZiAobnMuaXNNYXBTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGtleU5zID0gbnMuZ2V0S2V5U2NoZW1hKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgbWVtYmVyTnMgPSBucy5nZXRWYWx1ZVNjaGVtYSgpO1xuICAgICAgICAgICAgICAgIGxldCBlbnRyaWVzO1xuICAgICAgICAgICAgICAgIGlmIChmbGF0KSB7XG4gICAgICAgICAgICAgICAgICAgIGVudHJpZXMgPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW3ZhbHVlXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGVudHJpZXMgPSBBcnJheS5pc0FycmF5KHZhbHVlLmVudHJ5KSA/IHZhbHVlLmVudHJ5IDogW3ZhbHVlLmVudHJ5XTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3Qga2V5UHJvcGVydHkgPSBrZXlOcy5nZXRNZXJnZWRUcmFpdHMoKS54bWxOYW1lID8/IFwia2V5XCI7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWVQcm9wZXJ0eSA9IG1lbWJlck5zLmdldE1lcmdlZFRyYWl0cygpLnhtbE5hbWUgPz8gXCJ2YWx1ZVwiO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZW50cnkgb2YgZW50cmllcykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSBlbnRyeVtrZXlQcm9wZXJ0eV07XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZW50cnlbdmFsdWVQcm9wZXJ0eV07XG4gICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSAhPSBudWxsIHx8IHNwYXJzZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyW2tleV0gPSB0aGlzLnJlYWRTY2hlbWEobWVtYmVyTnMsIHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gYnVmZmVyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG5zLmlzU3RydWN0U2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB1bmlvbiA9IG5zLmlzVW5pb25TY2hlbWEoKTtcbiAgICAgICAgICAgICAgICBsZXQgdW5pb25TZXJkZTtcbiAgICAgICAgICAgICAgICBpZiAodW5pb24pIHtcbiAgICAgICAgICAgICAgICAgICAgdW5pb25TZXJkZSA9IG5ldyBVbmlvblNlcmRlKHZhbHVlLCBidWZmZXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IFttZW1iZXJOYW1lLCBtZW1iZXJTY2hlbWFdIG9mIG5zLnN0cnVjdEl0ZXJhdG9yKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbWVtYmVyVHJhaXRzID0gbWVtYmVyU2NoZW1hLmdldE1lcmdlZFRyYWl0cygpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxPYmplY3RLZXkgPSAhbWVtYmVyVHJhaXRzLmh0dHBQYXlsb2FkXG4gICAgICAgICAgICAgICAgICAgICAgICA/IG1lbWJlclNjaGVtYS5nZXRNZW1iZXJUcmFpdHMoKS54bWxOYW1lID8/IG1lbWJlck5hbWVcbiAgICAgICAgICAgICAgICAgICAgICAgIDogbWVtYmVyVHJhaXRzLnhtbE5hbWUgPz8gbWVtYmVyU2NoZW1hLmdldE5hbWUoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHVuaW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB1bmlvblNlcmRlLm1hcmsoeG1sT2JqZWN0S2V5KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWVbeG1sT2JqZWN0S2V5XSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJbbWVtYmVyTmFtZV0gPSB0aGlzLnJlYWRTY2hlbWEobWVtYmVyU2NoZW1hLCB2YWx1ZVt4bWxPYmplY3RLZXldKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodW5pb24pIHtcbiAgICAgICAgICAgICAgICAgICAgdW5pb25TZXJkZS53cml0ZVVua25vd24oKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGJ1ZmZlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChucy5pc0RvY3VtZW50U2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEBhd3Mtc2RrL2NvcmUvcHJvdG9jb2xzIC0geG1sIGRlc2VyaWFsaXplciB1bmhhbmRsZWQgc2NoZW1hIHR5cGUgZm9yICR7bnMuZ2V0TmFtZSh0cnVlKX1gKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobnMuaXNMaXN0U2NoZW1hKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobnMuaXNNYXBTY2hlbWEoKSB8fCBucy5pc1N0cnVjdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICByZXR1cm4ge307XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuc3RyaW5nRGVzZXJpYWxpemVyLnJlYWQobnMsIHZhbHVlKTtcbiAgICB9XG4gICAgcGFyc2VYbWwoeG1sKSB7XG4gICAgICAgIGlmICh4bWwubGVuZ3RoKSB7XG4gICAgICAgICAgICBsZXQgcGFyc2VkT2JqO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBwYXJzZWRPYmogPSBwYXJzZVhNTCh4bWwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICBpZiAoZSAmJiB0eXBlb2YgZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwgXCIkcmVzcG9uc2VCb2R5VGV4dFwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogeG1sLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHRleHROb2RlTmFtZSA9IFwiI3RleHRcIjtcbiAgICAgICAgICAgIGNvbnN0IGtleSA9IE9iamVjdC5rZXlzKHBhcnNlZE9iailbMF07XG4gICAgICAgICAgICBjb25zdCBwYXJzZWRPYmpUb1JldHVybiA9IHBhcnNlZE9ialtrZXldO1xuICAgICAgICAgICAgaWYgKHBhcnNlZE9ialRvUmV0dXJuW3RleHROb2RlTmFtZV0pIHtcbiAgICAgICAgICAgICAgICBwYXJzZWRPYmpUb1JldHVybltrZXldID0gcGFyc2VkT2JqVG9SZXR1cm5bdGV4dE5vZGVOYW1lXTtcbiAgICAgICAgICAgICAgICBkZWxldGUgcGFyc2VkT2JqVG9SZXR1cm5bdGV4dE5vZGVOYW1lXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBnZXRWYWx1ZUZyb21UZXh0Tm9kZShwYXJzZWRPYmpUb1JldHVybik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHt9O1xuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBkZXRlcm1pbmVUaW1lc3RhbXBGb3JtYXQsIGV4dGVuZGVkRW5jb2RlVVJJQ29tcG9uZW50IH0gZnJvbSBcIkBzbWl0aHkvY29yZS9wcm90b2NvbHNcIjtcbmltcG9ydCB7IE5vcm1hbGl6ZWRTY2hlbWEgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3NjaGVtYVwiO1xuaW1wb3J0IHsgZ2VuZXJhdGVJZGVtcG90ZW5jeVRva2VuLCBOdW1lcmljVmFsdWUgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3NlcmRlXCI7XG5pbXBvcnQgeyBkYXRlVG9VdGNTdHJpbmcgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyB0b0Jhc2U2NCB9IGZyb20gXCJAc21pdGh5L3V0aWwtYmFzZTY0XCI7XG5pbXBvcnQgeyBTZXJkZUNvbnRleHRDb25maWcgfSBmcm9tIFwiLi4vQ29uZmlndXJhYmxlU2VyZGVDb250ZXh0XCI7XG5leHBvcnQgY2xhc3MgUXVlcnlTaGFwZVNlcmlhbGl6ZXIgZXh0ZW5kcyBTZXJkZUNvbnRleHRDb25maWcge1xuICAgIHNldHRpbmdzO1xuICAgIGJ1ZmZlcjtcbiAgICBjb25zdHJ1Y3RvcihzZXR0aW5ncykge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnNldHRpbmdzID0gc2V0dGluZ3M7XG4gICAgfVxuICAgIHdyaXRlKHNjaGVtYSwgdmFsdWUsIHByZWZpeCA9IFwiXCIpIHtcbiAgICAgICAgaWYgKHRoaXMuYnVmZmVyID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuYnVmZmVyID0gXCJcIjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBucyA9IE5vcm1hbGl6ZWRTY2hlbWEub2Yoc2NoZW1hKTtcbiAgICAgICAgaWYgKHByZWZpeCAmJiAhcHJlZml4LmVuZHNXaXRoKFwiLlwiKSkge1xuICAgICAgICAgICAgcHJlZml4ICs9IFwiLlwiO1xuICAgICAgICB9XG4gICAgICAgIGlmIChucy5pc0Jsb2JTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiB8fCB2YWx1ZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlS2V5KHByZWZpeCk7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKCh0aGlzLnNlcmRlQ29udGV4dD8uYmFzZTY0RW5jb2RlciA/PyB0b0Jhc2U2NCkodmFsdWUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChucy5pc0Jvb2xlYW5TY2hlbWEoKSB8fCBucy5pc051bWVyaWNTY2hlbWEoKSB8fCBucy5pc1N0cmluZ1NjaGVtYSgpKSB7XG4gICAgICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVLZXkocHJlZml4KTtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlVmFsdWUoU3RyaW5nKHZhbHVlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChucy5pc0lkZW1wb3RlbmN5VG9rZW4oKSkge1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVLZXkocHJlZml4KTtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlVmFsdWUoZ2VuZXJhdGVJZGVtcG90ZW5jeVRva2VuKCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKG5zLmlzQmlnSW50ZWdlclNjaGVtYSgpKSB7XG4gICAgICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVLZXkocHJlZml4KTtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlVmFsdWUoU3RyaW5nKHZhbHVlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAobnMuaXNCaWdEZWNpbWFsU2NoZW1hKCkpIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZUtleShwcmVmaXgpO1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVWYWx1ZSh2YWx1ZSBpbnN0YW5jZW9mIE51bWVyaWNWYWx1ZSA/IHZhbHVlLnN0cmluZyA6IFN0cmluZyh2YWx1ZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKG5zLmlzVGltZXN0YW1wU2NoZW1hKCkpIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlS2V5KHByZWZpeCk7XG4gICAgICAgICAgICAgICAgY29uc3QgZm9ybWF0ID0gZGV0ZXJtaW5lVGltZXN0YW1wRm9ybWF0KG5zLCB0aGlzLnNldHRpbmdzKTtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGZvcm1hdCkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLndyaXRlVmFsdWUodmFsdWUudG9JU09TdHJpbmcoKS5yZXBsYWNlKFwiLjAwMFpcIiwgXCJaXCIpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLndyaXRlVmFsdWUoZGF0ZVRvVXRjU3RyaW5nKHZhbHVlKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA3OlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKFN0cmluZyh2YWx1ZS5nZXRUaW1lKCkgLyAxMDAwKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAobnMuaXNEb2N1bWVudFNjaGVtYSgpKSB7XG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlKDY0IHwgMTUsIHZhbHVlLCBwcmVmaXgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZSg0LCB2YWx1ZSwgcHJlZml4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHZhbHVlIGluc3RhbmNlb2YgVWludDhBcnJheSkge1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGUoMjEsIHZhbHVlLCBwcmVmaXgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAodmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZSgxMjggfCAxNSwgdmFsdWUsIHByZWZpeCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlS2V5KHByZWZpeCk7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKFN0cmluZyh2YWx1ZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKG5zLmlzTGlzdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnNldHRpbmdzLnNlcmlhbGl6ZUVtcHR5TGlzdHMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMud3JpdGVLZXkocHJlZml4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMud3JpdGVWYWx1ZShcIlwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbWVtYmVyID0gbnMuZ2V0VmFsdWVTY2hlbWEoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZmxhdCA9IHRoaXMuc2V0dGluZ3MuZmxhdHRlbkxpc3RzIHx8IG5zLmdldE1lcmdlZFRyYWl0cygpLnhtbEZsYXR0ZW5lZDtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGkgPSAxO1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpdGVtID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRyYWl0cyA9IG1lbWJlci5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN1ZmZpeCA9IHRoaXMuZ2V0S2V5KFwibWVtYmVyXCIsIHRyYWl0cy54bWxOYW1lLCB0cmFpdHMuZWMyUXVlcnlOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IGZsYXQgPyBgJHtwcmVmaXh9JHtpfWAgOiBgJHtwcmVmaXh9JHtzdWZmaXh9LiR7aX1gO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53cml0ZShtZW1iZXIsIGl0ZW0sIGtleSk7XG4gICAgICAgICAgICAgICAgICAgICAgICArK2k7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAobnMuaXNNYXBTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgICAgIGNvbnN0IGtleVNjaGVtYSA9IG5zLmdldEtleVNjaGVtYSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IG1lbWJlclNjaGVtYSA9IG5zLmdldFZhbHVlU2NoZW1hKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgZmxhdCA9IG5zLmdldE1lcmdlZFRyYWl0cygpLnhtbEZsYXR0ZW5lZDtcbiAgICAgICAgICAgICAgICBsZXQgaSA9IDE7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBbaywgdl0gb2YgT2JqZWN0LmVudHJpZXModmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2ID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGtleVRyYWl0cyA9IGtleVNjaGVtYS5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qga2V5U3VmZml4ID0gdGhpcy5nZXRLZXkoXCJrZXlcIiwga2V5VHJhaXRzLnhtbE5hbWUsIGtleVRyYWl0cy5lYzJRdWVyeU5hbWUpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSBmbGF0ID8gYCR7cHJlZml4fSR7aX0uJHtrZXlTdWZmaXh9YCA6IGAke3ByZWZpeH1lbnRyeS4ke2l9LiR7a2V5U3VmZml4fWA7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbFRyYWl0cyA9IG1lbWJlclNjaGVtYS5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWVTdWZmaXggPSB0aGlzLmdldEtleShcInZhbHVlXCIsIHZhbFRyYWl0cy54bWxOYW1lLCB2YWxUcmFpdHMuZWMyUXVlcnlOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWVLZXkgPSBmbGF0ID8gYCR7cHJlZml4fSR7aX0uJHt2YWx1ZVN1ZmZpeH1gIDogYCR7cHJlZml4fWVudHJ5LiR7aX0uJHt2YWx1ZVN1ZmZpeH1gO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLndyaXRlKGtleVNjaGVtYSwgaywga2V5KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy53cml0ZShtZW1iZXJTY2hlbWEsIHYsIHZhbHVlS2V5KTtcbiAgICAgICAgICAgICAgICAgICAgKytpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChucy5pc1N0cnVjdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICBpZiAodmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICAgICAgbGV0IGRpZFdyaXRlTWVtYmVyID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBbbWVtYmVyTmFtZSwgbWVtYmVyXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZVttZW1iZXJOYW1lXSA9PSBudWxsICYmICFtZW1iZXIuaXNJZGVtcG90ZW5jeVRva2VuKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRyYWl0cyA9IG1lbWJlci5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3VmZml4ID0gdGhpcy5nZXRLZXkobWVtYmVyTmFtZSwgdHJhaXRzLnhtbE5hbWUsIHRyYWl0cy5lYzJRdWVyeU5hbWUsIFwic3RydWN0XCIpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSBgJHtwcmVmaXh9JHtzdWZmaXh9YDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy53cml0ZShtZW1iZXIsIHZhbHVlW21lbWJlck5hbWVdLCBrZXkpO1xuICAgICAgICAgICAgICAgICAgICBkaWRXcml0ZU1lbWJlciA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICghZGlkV3JpdGVNZW1iZXIgJiYgbnMuaXNVbmlvblNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgJHVua25vd24gfSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSgkdW5rbm93bikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFtrLCB2XSA9ICR1bmtub3duO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qga2V5ID0gYCR7cHJlZml4fSR7a31gO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53cml0ZSgxNSwgdiwga2V5KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChucy5pc1VuaXRTY2hlbWEoKSkge1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBAYXdzLXNkay9jb3JlL3Byb3RvY29scyAtIFF1ZXJ5U2VyaWFsaXplciB1bnJlY29nbml6ZWQgc2NoZW1hIHR5cGUgJHtucy5nZXROYW1lKHRydWUpfWApO1xuICAgICAgICB9XG4gICAgfVxuICAgIGZsdXNoKCkge1xuICAgICAgICBpZiAodGhpcy5idWZmZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSBRdWVyeVNlcmlhbGl6ZXIgY2Fubm90IGZsdXNoIHdpdGggbm90aGluZyB3cml0dGVuIHRvIGJ1ZmZlci5cIik7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc3RyID0gdGhpcy5idWZmZXI7XG4gICAgICAgIGRlbGV0ZSB0aGlzLmJ1ZmZlcjtcbiAgICAgICAgcmV0dXJuIHN0cjtcbiAgICB9XG4gICAgZ2V0S2V5KG1lbWJlck5hbWUsIHhtbE5hbWUsIGVjMlF1ZXJ5TmFtZSwga2V5U291cmNlKSB7XG4gICAgICAgIGNvbnN0IHsgZWMyLCBjYXBpdGFsaXplS2V5cyB9ID0gdGhpcy5zZXR0aW5ncztcbiAgICAgICAgaWYgKGVjMiAmJiBlYzJRdWVyeU5hbWUpIHtcbiAgICAgICAgICAgIHJldHVybiBlYzJRdWVyeU5hbWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qga2V5ID0geG1sTmFtZSA/PyBtZW1iZXJOYW1lO1xuICAgICAgICBpZiAoY2FwaXRhbGl6ZUtleXMgJiYga2V5U291cmNlID09PSBcInN0cnVjdFwiKSB7XG4gICAgICAgICAgICByZXR1cm4ga2V5WzBdLnRvVXBwZXJDYXNlKCkgKyBrZXkuc2xpY2UoMSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGtleTtcbiAgICB9XG4gICAgd3JpdGVLZXkoa2V5KSB7XG4gICAgICAgIGlmIChrZXkuZW5kc1dpdGgoXCIuXCIpKSB7XG4gICAgICAgICAgICBrZXkgPSBrZXkuc2xpY2UoMCwga2V5Lmxlbmd0aCAtIDEpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYnVmZmVyICs9IGAmJHtleHRlbmRlZEVuY29kZVVSSUNvbXBvbmVudChrZXkpfT1gO1xuICAgIH1cbiAgICB3cml0ZVZhbHVlKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuYnVmZmVyICs9IGV4dGVuZGVkRW5jb2RlVVJJQ29tcG9uZW50KHZhbHVlKTtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgY29sbGVjdEJvZHksIFJwY1Byb3RvY29sIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9wcm90b2NvbHNcIjtcbmltcG9ydCB7IGRlcmVmLCBOb3JtYWxpemVkU2NoZW1hLCBUeXBlUmVnaXN0cnkgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3NjaGVtYVwiO1xuaW1wb3J0IHsgUHJvdG9jb2xMaWIgfSBmcm9tIFwiLi4vUHJvdG9jb2xMaWJcIjtcbmltcG9ydCB7IFhtbFNoYXBlRGVzZXJpYWxpemVyIH0gZnJvbSBcIi4uL3htbC9YbWxTaGFwZURlc2VyaWFsaXplclwiO1xuaW1wb3J0IHsgUXVlcnlTaGFwZVNlcmlhbGl6ZXIgfSBmcm9tIFwiLi9RdWVyeVNoYXBlU2VyaWFsaXplclwiO1xuZXhwb3J0IGNsYXNzIEF3c1F1ZXJ5UHJvdG9jb2wgZXh0ZW5kcyBScGNQcm90b2NvbCB7XG4gICAgb3B0aW9ucztcbiAgICBzZXJpYWxpemVyO1xuICAgIGRlc2VyaWFsaXplcjtcbiAgICBtaXhpbiA9IG5ldyBQcm90b2NvbExpYigpO1xuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgZGVmYXVsdE5hbWVzcGFjZTogb3B0aW9ucy5kZWZhdWx0TmFtZXNwYWNlLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgICAgICAgY29uc3Qgc2V0dGluZ3MgPSB7XG4gICAgICAgICAgICB0aW1lc3RhbXBGb3JtYXQ6IHtcbiAgICAgICAgICAgICAgICB1c2VUcmFpdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiA1LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGh0dHBCaW5kaW5nczogZmFsc2UsXG4gICAgICAgICAgICB4bWxOYW1lc3BhY2U6IG9wdGlvbnMueG1sTmFtZXNwYWNlLFxuICAgICAgICAgICAgc2VydmljZU5hbWVzcGFjZTogb3B0aW9ucy5kZWZhdWx0TmFtZXNwYWNlLFxuICAgICAgICAgICAgc2VyaWFsaXplRW1wdHlMaXN0czogdHJ1ZSxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5zZXJpYWxpemVyID0gbmV3IFF1ZXJ5U2hhcGVTZXJpYWxpemVyKHNldHRpbmdzKTtcbiAgICAgICAgdGhpcy5kZXNlcmlhbGl6ZXIgPSBuZXcgWG1sU2hhcGVEZXNlcmlhbGl6ZXIoc2V0dGluZ3MpO1xuICAgIH1cbiAgICBnZXRTaGFwZUlkKCkge1xuICAgICAgICByZXR1cm4gXCJhd3MucHJvdG9jb2xzI2F3c1F1ZXJ5XCI7XG4gICAgfVxuICAgIHNldFNlcmRlQ29udGV4dChzZXJkZUNvbnRleHQpIHtcbiAgICAgICAgdGhpcy5zZXJpYWxpemVyLnNldFNlcmRlQ29udGV4dChzZXJkZUNvbnRleHQpO1xuICAgICAgICB0aGlzLmRlc2VyaWFsaXplci5zZXRTZXJkZUNvbnRleHQoc2VyZGVDb250ZXh0KTtcbiAgICB9XG4gICAgZ2V0UGF5bG9hZENvZGVjKCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJBV1NRdWVyeSBwcm90b2NvbCBoYXMgbm8gcGF5bG9hZCBjb2RlYy5cIik7XG4gICAgfVxuICAgIGFzeW5jIHNlcmlhbGl6ZVJlcXVlc3Qob3BlcmF0aW9uU2NoZW1hLCBpbnB1dCwgY29udGV4dCkge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gYXdhaXQgc3VwZXIuc2VyaWFsaXplUmVxdWVzdChvcGVyYXRpb25TY2hlbWEsIGlucHV0LCBjb250ZXh0KTtcbiAgICAgICAgaWYgKCFyZXF1ZXN0LnBhdGguZW5kc1dpdGgoXCIvXCIpKSB7XG4gICAgICAgICAgICByZXF1ZXN0LnBhdGggKz0gXCIvXCI7XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbihyZXF1ZXN0LmhlYWRlcnMsIHtcbiAgICAgICAgICAgIFwiY29udGVudC10eXBlXCI6IGBhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWRgLFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGRlcmVmKG9wZXJhdGlvblNjaGVtYS5pbnB1dCkgPT09IFwidW5pdFwiIHx8ICFyZXF1ZXN0LmJvZHkpIHtcbiAgICAgICAgICAgIHJlcXVlc3QuYm9keSA9IFwiXCI7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYWN0aW9uID0gb3BlcmF0aW9uU2NoZW1hLm5hbWUuc3BsaXQoXCIjXCIpWzFdID8/IG9wZXJhdGlvblNjaGVtYS5uYW1lO1xuICAgICAgICByZXF1ZXN0LmJvZHkgPSBgQWN0aW9uPSR7YWN0aW9ufSZWZXJzaW9uPSR7dGhpcy5vcHRpb25zLnZlcnNpb259YCArIHJlcXVlc3QuYm9keTtcbiAgICAgICAgaWYgKHJlcXVlc3QuYm9keS5lbmRzV2l0aChcIiZcIikpIHtcbiAgICAgICAgICAgIHJlcXVlc3QuYm9keSA9IHJlcXVlc3QuYm9keS5zbGljZSgtMSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlcXVlc3Q7XG4gICAgfVxuICAgIGFzeW5jIGRlc2VyaWFsaXplUmVzcG9uc2Uob3BlcmF0aW9uU2NoZW1hLCBjb250ZXh0LCByZXNwb25zZSkge1xuICAgICAgICBjb25zdCBkZXNlcmlhbGl6ZXIgPSB0aGlzLmRlc2VyaWFsaXplcjtcbiAgICAgICAgY29uc3QgbnMgPSBOb3JtYWxpemVkU2NoZW1hLm9mKG9wZXJhdGlvblNjaGVtYS5vdXRwdXQpO1xuICAgICAgICBjb25zdCBkYXRhT2JqZWN0ID0ge307XG4gICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXNDb2RlID49IDMwMCkge1xuICAgICAgICAgICAgY29uc3QgYnl0ZXMgPSBhd2FpdCBjb2xsZWN0Qm9keShyZXNwb25zZS5ib2R5LCBjb250ZXh0KTtcbiAgICAgICAgICAgIGlmIChieXRlcy5ieXRlTGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oZGF0YU9iamVjdCwgYXdhaXQgZGVzZXJpYWxpemVyLnJlYWQoMTUsIGJ5dGVzKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmhhbmRsZUVycm9yKG9wZXJhdGlvblNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UsIGRhdGFPYmplY3QsIHRoaXMuZGVzZXJpYWxpemVNZXRhZGF0YShyZXNwb25zZSkpO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgaGVhZGVyIGluIHJlc3BvbnNlLmhlYWRlcnMpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gcmVzcG9uc2UuaGVhZGVyc1toZWFkZXJdO1xuICAgICAgICAgICAgZGVsZXRlIHJlc3BvbnNlLmhlYWRlcnNbaGVhZGVyXTtcbiAgICAgICAgICAgIHJlc3BvbnNlLmhlYWRlcnNbaGVhZGVyLnRvTG93ZXJDYXNlKCldID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc2hvcnROYW1lID0gb3BlcmF0aW9uU2NoZW1hLm5hbWUuc3BsaXQoXCIjXCIpWzFdID8/IG9wZXJhdGlvblNjaGVtYS5uYW1lO1xuICAgICAgICBjb25zdCBhd3NRdWVyeVJlc3VsdEtleSA9IG5zLmlzU3RydWN0U2NoZW1hKCkgJiYgdGhpcy51c2VOZXN0ZWRSZXN1bHQoKSA/IHNob3J0TmFtZSArIFwiUmVzdWx0XCIgOiB1bmRlZmluZWQ7XG4gICAgICAgIGNvbnN0IGJ5dGVzID0gYXdhaXQgY29sbGVjdEJvZHkocmVzcG9uc2UuYm9keSwgY29udGV4dCk7XG4gICAgICAgIGlmIChieXRlcy5ieXRlTGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihkYXRhT2JqZWN0LCBhd2FpdCBkZXNlcmlhbGl6ZXIucmVhZChucywgYnl0ZXMsIGF3c1F1ZXJ5UmVzdWx0S2V5KSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgb3V0cHV0ID0ge1xuICAgICAgICAgICAgJG1ldGFkYXRhOiB0aGlzLmRlc2VyaWFsaXplTWV0YWRhdGEocmVzcG9uc2UpLFxuICAgICAgICAgICAgLi4uZGF0YU9iamVjdCxcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIG91dHB1dDtcbiAgICB9XG4gICAgdXNlTmVzdGVkUmVzdWx0KCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgYXN5bmMgaGFuZGxlRXJyb3Iob3BlcmF0aW9uU2NoZW1hLCBjb250ZXh0LCByZXNwb25zZSwgZGF0YU9iamVjdCwgbWV0YWRhdGEpIHtcbiAgICAgICAgY29uc3QgZXJyb3JJZGVudGlmaWVyID0gdGhpcy5sb2FkUXVlcnlFcnJvckNvZGUocmVzcG9uc2UsIGRhdGFPYmplY3QpID8/IFwiVW5rbm93blwiO1xuICAgICAgICBjb25zdCBlcnJvckRhdGEgPSB0aGlzLmxvYWRRdWVyeUVycm9yKGRhdGFPYmplY3QpID8/IHt9O1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gdGhpcy5sb2FkUXVlcnlFcnJvck1lc3NhZ2UoZGF0YU9iamVjdCk7XG4gICAgICAgIGVycm9yRGF0YS5tZXNzYWdlID0gbWVzc2FnZTtcbiAgICAgICAgZXJyb3JEYXRhLkVycm9yID0ge1xuICAgICAgICAgICAgVHlwZTogZXJyb3JEYXRhLlR5cGUsXG4gICAgICAgICAgICBDb2RlOiBlcnJvckRhdGEuQ29kZSxcbiAgICAgICAgICAgIE1lc3NhZ2U6IG1lc3NhZ2UsXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHsgZXJyb3JTY2hlbWEsIGVycm9yTWV0YWRhdGEgfSA9IGF3YWl0IHRoaXMubWl4aW4uZ2V0RXJyb3JTY2hlbWFPclRocm93QmFzZUV4Y2VwdGlvbihlcnJvcklkZW50aWZpZXIsIHRoaXMub3B0aW9ucy5kZWZhdWx0TmFtZXNwYWNlLCByZXNwb25zZSwgZXJyb3JEYXRhLCBtZXRhZGF0YSwgdGhpcy5taXhpbi5maW5kUXVlcnlDb21wYXRpYmxlRXJyb3IpO1xuICAgICAgICBjb25zdCBucyA9IE5vcm1hbGl6ZWRTY2hlbWEub2YoZXJyb3JTY2hlbWEpO1xuICAgICAgICBjb25zdCBFcnJvckN0b3IgPSBUeXBlUmVnaXN0cnkuZm9yKGVycm9yU2NoZW1hWzFdKS5nZXRFcnJvckN0b3IoZXJyb3JTY2hlbWEpID8/IEVycm9yO1xuICAgICAgICBjb25zdCBleGNlcHRpb24gPSBuZXcgRXJyb3JDdG9yKG1lc3NhZ2UpO1xuICAgICAgICBjb25zdCBvdXRwdXQgPSB7XG4gICAgICAgICAgICBUeXBlOiBlcnJvckRhdGEuRXJyb3IuVHlwZSxcbiAgICAgICAgICAgIENvZGU6IGVycm9yRGF0YS5FcnJvci5Db2RlLFxuICAgICAgICAgICAgRXJyb3I6IGVycm9yRGF0YS5FcnJvcixcbiAgICAgICAgfTtcbiAgICAgICAgZm9yIChjb25zdCBbbmFtZSwgbWVtYmVyXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBtZW1iZXIuZ2V0TWVyZ2VkVHJhaXRzKCkueG1sTmFtZSA/PyBuYW1lO1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBlcnJvckRhdGFbdGFyZ2V0XSA/PyBkYXRhT2JqZWN0W3RhcmdldF07XG4gICAgICAgICAgICBvdXRwdXRbbmFtZV0gPSB0aGlzLmRlc2VyaWFsaXplci5yZWFkU2NoZW1hKG1lbWJlciwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IHRoaXMubWl4aW4uZGVjb3JhdGVTZXJ2aWNlRXhjZXB0aW9uKE9iamVjdC5hc3NpZ24oZXhjZXB0aW9uLCBlcnJvck1ldGFkYXRhLCB7XG4gICAgICAgICAgICAkZmF1bHQ6IG5zLmdldE1lcmdlZFRyYWl0cygpLmVycm9yLFxuICAgICAgICAgICAgbWVzc2FnZSxcbiAgICAgICAgfSwgb3V0cHV0KSwgZGF0YU9iamVjdCk7XG4gICAgfVxuICAgIGxvYWRRdWVyeUVycm9yQ29kZShvdXRwdXQsIGRhdGEpIHtcbiAgICAgICAgY29uc3QgY29kZSA9IChkYXRhLkVycm9ycz8uWzBdPy5FcnJvciA/PyBkYXRhLkVycm9ycz8uRXJyb3IgPz8gZGF0YS5FcnJvcik/LkNvZGU7XG4gICAgICAgIGlmIChjb2RlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBjb2RlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvdXRwdXQuc3RhdHVzQ29kZSA9PSA0MDQpIHtcbiAgICAgICAgICAgIHJldHVybiBcIk5vdEZvdW5kXCI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbG9hZFF1ZXJ5RXJyb3IoZGF0YSkge1xuICAgICAgICByZXR1cm4gZGF0YS5FcnJvcnM/LlswXT8uRXJyb3IgPz8gZGF0YS5FcnJvcnM/LkVycm9yID8/IGRhdGEuRXJyb3I7XG4gICAgfVxuICAgIGxvYWRRdWVyeUVycm9yTWVzc2FnZShkYXRhKSB7XG4gICAgICAgIGNvbnN0IGVycm9yRGF0YSA9IHRoaXMubG9hZFF1ZXJ5RXJyb3IoZGF0YSk7XG4gICAgICAgIHJldHVybiBlcnJvckRhdGE/Lm1lc3NhZ2UgPz8gZXJyb3JEYXRhPy5NZXNzYWdlID8/IGRhdGEubWVzc2FnZSA/PyBkYXRhLk1lc3NhZ2UgPz8gXCJVbmtub3duXCI7XG4gICAgfVxuICAgIGdldERlZmF1bHRDb250ZW50VHlwZSgpIHtcbiAgICAgICAgcmV0dXJuIFwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkXCI7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IEF3c1F1ZXJ5UHJvdG9jb2wgfSBmcm9tIFwiLi9Bd3NRdWVyeVByb3RvY29sXCI7XG5leHBvcnQgY2xhc3MgQXdzRWMyUXVlcnlQcm90b2NvbCBleHRlbmRzIEF3c1F1ZXJ5UHJvdG9jb2wge1xuICAgIG9wdGlvbnM7XG4gICAgY29uc3RydWN0b3Iob3B0aW9ucykge1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgICAgICAgY29uc3QgZWMyU2V0dGluZ3MgPSB7XG4gICAgICAgICAgICBjYXBpdGFsaXplS2V5czogdHJ1ZSxcbiAgICAgICAgICAgIGZsYXR0ZW5MaXN0czogdHJ1ZSxcbiAgICAgICAgICAgIHNlcmlhbGl6ZUVtcHR5TGlzdHM6IGZhbHNlLFxuICAgICAgICAgICAgZWMyOiB0cnVlLFxuICAgICAgICB9O1xuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMuc2VyaWFsaXplci5zZXR0aW5ncywgZWMyU2V0dGluZ3MpO1xuICAgIH1cbiAgICB1c2VOZXN0ZWRSZXN1bHQoKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgcGFyc2VYTUwgfSBmcm9tIFwiQGF3cy1zZGsveG1sLWJ1aWxkZXJcIjtcbmltcG9ydCB7IGdldFZhbHVlRnJvbVRleHROb2RlIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgY29sbGVjdEJvZHlTdHJpbmcgfSBmcm9tIFwiLi4vY29tbW9uXCI7XG5leHBvcnQgY29uc3QgcGFyc2VYbWxCb2R5ID0gKHN0cmVhbUJvZHksIGNvbnRleHQpID0+IGNvbGxlY3RCb2R5U3RyaW5nKHN0cmVhbUJvZHksIGNvbnRleHQpLnRoZW4oKGVuY29kZWQpID0+IHtcbiAgICBpZiAoZW5jb2RlZC5sZW5ndGgpIHtcbiAgICAgICAgbGV0IHBhcnNlZE9iajtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHBhcnNlZE9iaiA9IHBhcnNlWE1MKGVuY29kZWQpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICBpZiAoZSAmJiB0eXBlb2YgZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCBcIiRyZXNwb25zZUJvZHlUZXh0XCIsIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGVuY29kZWQsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHRleHROb2RlTmFtZSA9IFwiI3RleHRcIjtcbiAgICAgICAgY29uc3Qga2V5ID0gT2JqZWN0LmtleXMocGFyc2VkT2JqKVswXTtcbiAgICAgICAgY29uc3QgcGFyc2VkT2JqVG9SZXR1cm4gPSBwYXJzZWRPYmpba2V5XTtcbiAgICAgICAgaWYgKHBhcnNlZE9ialRvUmV0dXJuW3RleHROb2RlTmFtZV0pIHtcbiAgICAgICAgICAgIHBhcnNlZE9ialRvUmV0dXJuW2tleV0gPSBwYXJzZWRPYmpUb1JldHVyblt0ZXh0Tm9kZU5hbWVdO1xuICAgICAgICAgICAgZGVsZXRlIHBhcnNlZE9ialRvUmV0dXJuW3RleHROb2RlTmFtZV07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGdldFZhbHVlRnJvbVRleHROb2RlKHBhcnNlZE9ialRvUmV0dXJuKTtcbiAgICB9XG4gICAgcmV0dXJuIHt9O1xufSk7XG5leHBvcnQgY29uc3QgcGFyc2VYbWxFcnJvckJvZHkgPSBhc3luYyAoZXJyb3JCb2R5LCBjb250ZXh0KSA9PiB7XG4gICAgY29uc3QgdmFsdWUgPSBhd2FpdCBwYXJzZVhtbEJvZHkoZXJyb3JCb2R5LCBjb250ZXh0KTtcbiAgICBpZiAodmFsdWUuRXJyb3IpIHtcbiAgICAgICAgdmFsdWUuRXJyb3IubWVzc2FnZSA9IHZhbHVlLkVycm9yLm1lc3NhZ2UgPz8gdmFsdWUuRXJyb3IuTWVzc2FnZTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlO1xufTtcbmV4cG9ydCBjb25zdCBsb2FkUmVzdFhtbEVycm9yQ29kZSA9IChvdXRwdXQsIGRhdGEpID0+IHtcbiAgICBpZiAoZGF0YT8uRXJyb3I/LkNvZGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gZGF0YS5FcnJvci5Db2RlO1xuICAgIH1cbiAgICBpZiAoZGF0YT8uQ29kZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiBkYXRhLkNvZGU7XG4gICAgfVxuICAgIGlmIChvdXRwdXQuc3RhdHVzQ29kZSA9PSA0MDQpIHtcbiAgICAgICAgcmV0dXJuIFwiTm90Rm91bmRcIjtcbiAgICB9XG59O1xuIiwgImltcG9ydCB7IFhtbE5vZGUsIFhtbFRleHQgfSBmcm9tIFwiQGF3cy1zZGsveG1sLWJ1aWxkZXJcIjtcbmltcG9ydCB7IGRldGVybWluZVRpbWVzdGFtcEZvcm1hdCB9IGZyb20gXCJAc21pdGh5L2NvcmUvcHJvdG9jb2xzXCI7XG5pbXBvcnQgeyBOb3JtYWxpemVkU2NoZW1hIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IGdlbmVyYXRlSWRlbXBvdGVuY3lUb2tlbiwgTnVtZXJpY1ZhbHVlIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zZXJkZVwiO1xuaW1wb3J0IHsgZGF0ZVRvVXRjU3RyaW5nIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgZnJvbUJhc2U2NCwgdG9CYXNlNjQgfSBmcm9tIFwiQHNtaXRoeS91dGlsLWJhc2U2NFwiO1xuaW1wb3J0IHsgU2VyZGVDb250ZXh0Q29uZmlnIH0gZnJvbSBcIi4uL0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dFwiO1xuZXhwb3J0IGNsYXNzIFhtbFNoYXBlU2VyaWFsaXplciBleHRlbmRzIFNlcmRlQ29udGV4dENvbmZpZyB7XG4gICAgc2V0dGluZ3M7XG4gICAgc3RyaW5nQnVmZmVyO1xuICAgIGJ5dGVCdWZmZXI7XG4gICAgYnVmZmVyO1xuICAgIGNvbnN0cnVjdG9yKHNldHRpbmdzKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuc2V0dGluZ3MgPSBzZXR0aW5ncztcbiAgICB9XG4gICAgd3JpdGUoc2NoZW1hLCB2YWx1ZSkge1xuICAgICAgICBjb25zdCBucyA9IE5vcm1hbGl6ZWRTY2hlbWEub2Yoc2NoZW1hKTtcbiAgICAgICAgaWYgKG5zLmlzU3RyaW5nU2NoZW1hKCkgJiYgdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICB0aGlzLnN0cmluZ0J1ZmZlciA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKG5zLmlzQmxvYlNjaGVtYSgpKSB7XG4gICAgICAgICAgICB0aGlzLmJ5dGVCdWZmZXIgPVxuICAgICAgICAgICAgICAgIFwiYnl0ZUxlbmd0aFwiIGluIHZhbHVlXG4gICAgICAgICAgICAgICAgICAgID8gdmFsdWVcbiAgICAgICAgICAgICAgICAgICAgOiAodGhpcy5zZXJkZUNvbnRleHQ/LmJhc2U2NERlY29kZXIgPz8gZnJvbUJhc2U2NCkodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5idWZmZXIgPSB0aGlzLndyaXRlU3RydWN0KG5zLCB2YWx1ZSwgdW5kZWZpbmVkKTtcbiAgICAgICAgICAgIGNvbnN0IHRyYWl0cyA9IG5zLmdldE1lcmdlZFRyYWl0cygpO1xuICAgICAgICAgICAgaWYgKHRyYWl0cy5odHRwUGF5bG9hZCAmJiAhdHJhaXRzLnhtbE5hbWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmJ1ZmZlci53aXRoTmFtZShucy5nZXROYW1lKCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGZsdXNoKCkge1xuICAgICAgICBpZiAodGhpcy5ieXRlQnVmZmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IGJ5dGVzID0gdGhpcy5ieXRlQnVmZmVyO1xuICAgICAgICAgICAgZGVsZXRlIHRoaXMuYnl0ZUJ1ZmZlcjtcbiAgICAgICAgICAgIHJldHVybiBieXRlcztcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5zdHJpbmdCdWZmZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgY29uc3Qgc3RyID0gdGhpcy5zdHJpbmdCdWZmZXI7XG4gICAgICAgICAgICBkZWxldGUgdGhpcy5zdHJpbmdCdWZmZXI7XG4gICAgICAgICAgICByZXR1cm4gc3RyO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGJ1ZmZlciA9IHRoaXMuYnVmZmVyO1xuICAgICAgICBpZiAodGhpcy5zZXR0aW5ncy54bWxOYW1lc3BhY2UpIHtcbiAgICAgICAgICAgIGlmICghYnVmZmVyPy5hdHRyaWJ1dGVzPy5bXCJ4bWxuc1wiXSkge1xuICAgICAgICAgICAgICAgIGJ1ZmZlci5hZGRBdHRyaWJ1dGUoXCJ4bWxuc1wiLCB0aGlzLnNldHRpbmdzLnhtbE5hbWVzcGFjZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZGVsZXRlIHRoaXMuYnVmZmVyO1xuICAgICAgICByZXR1cm4gYnVmZmVyLnRvU3RyaW5nKCk7XG4gICAgfVxuICAgIHdyaXRlU3RydWN0KG5zLCB2YWx1ZSwgcGFyZW50WG1sbnMpIHtcbiAgICAgICAgY29uc3QgdHJhaXRzID0gbnMuZ2V0TWVyZ2VkVHJhaXRzKCk7XG4gICAgICAgIGNvbnN0IG5hbWUgPSBucy5pc01lbWJlclNjaGVtYSgpICYmICF0cmFpdHMuaHR0cFBheWxvYWRcbiAgICAgICAgICAgID8gbnMuZ2V0TWVtYmVyVHJhaXRzKCkueG1sTmFtZSA/PyBucy5nZXRNZW1iZXJOYW1lKClcbiAgICAgICAgICAgIDogdHJhaXRzLnhtbE5hbWUgPz8gbnMuZ2V0TmFtZSgpO1xuICAgICAgICBpZiAoIW5hbWUgfHwgIW5zLmlzU3RydWN0U2NoZW1hKCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSB4bWwgc2VyaWFsaXplciwgY2Fubm90IHdyaXRlIHN0cnVjdCB3aXRoIGVtcHR5IG5hbWUgb3Igbm9uLXN0cnVjdCwgc2NoZW1hPSR7bnMuZ2V0TmFtZSh0cnVlKX0uYCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc3RydWN0WG1sTm9kZSA9IFhtbE5vZGUub2YobmFtZSk7XG4gICAgICAgIGNvbnN0IFt4bWxuc0F0dHIsIHhtbG5zXSA9IHRoaXMuZ2V0WG1sbnNBdHRyaWJ1dGUobnMsIHBhcmVudFhtbG5zKTtcbiAgICAgICAgZm9yIChjb25zdCBbbWVtYmVyTmFtZSwgbWVtYmVyU2NoZW1hXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICBjb25zdCB2YWwgPSB2YWx1ZVttZW1iZXJOYW1lXTtcbiAgICAgICAgICAgIGlmICh2YWwgIT0gbnVsbCB8fCBtZW1iZXJTY2hlbWEuaXNJZGVtcG90ZW5jeVRva2VuKCkpIHtcbiAgICAgICAgICAgICAgICBpZiAobWVtYmVyU2NoZW1hLmdldE1lcmdlZFRyYWl0cygpLnhtbEF0dHJpYnV0ZSkge1xuICAgICAgICAgICAgICAgICAgICBzdHJ1Y3RYbWxOb2RlLmFkZEF0dHJpYnV0ZShtZW1iZXJTY2hlbWEuZ2V0TWVyZ2VkVHJhaXRzKCkueG1sTmFtZSA/PyBtZW1iZXJOYW1lLCB0aGlzLndyaXRlU2ltcGxlKG1lbWJlclNjaGVtYSwgdmFsKSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAobWVtYmVyU2NoZW1hLmlzTGlzdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMud3JpdGVMaXN0KG1lbWJlclNjaGVtYSwgdmFsLCBzdHJ1Y3RYbWxOb2RlLCB4bWxucyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKG1lbWJlclNjaGVtYS5pc01hcFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMud3JpdGVNYXAobWVtYmVyU2NoZW1hLCB2YWwsIHN0cnVjdFhtbE5vZGUsIHhtbG5zKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAobWVtYmVyU2NoZW1hLmlzU3RydWN0U2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgc3RydWN0WG1sTm9kZS5hZGRDaGlsZE5vZGUodGhpcy53cml0ZVN0cnVjdChtZW1iZXJTY2hlbWEsIHZhbCwgeG1sbnMpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1lbWJlck5vZGUgPSBYbWxOb2RlLm9mKG1lbWJlclNjaGVtYS5nZXRNZXJnZWRUcmFpdHMoKS54bWxOYW1lID8/IG1lbWJlclNjaGVtYS5nZXRNZW1iZXJOYW1lKCkpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLndyaXRlU2ltcGxlSW50byhtZW1iZXJTY2hlbWEsIHZhbCwgbWVtYmVyTm9kZSwgeG1sbnMpO1xuICAgICAgICAgICAgICAgICAgICBzdHJ1Y3RYbWxOb2RlLmFkZENoaWxkTm9kZShtZW1iZXJOb2RlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgeyAkdW5rbm93biB9ID0gdmFsdWU7XG4gICAgICAgIGlmICgkdW5rbm93biAmJiBucy5pc1VuaW9uU2NoZW1hKCkgJiYgQXJyYXkuaXNBcnJheSgkdW5rbm93bikgJiYgT2JqZWN0LmtleXModmFsdWUpLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgY29uc3QgW2ssIHZdID0gJHVua25vd247XG4gICAgICAgICAgICBjb25zdCBub2RlID0gWG1sTm9kZS5vZihrKTtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdiAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIFhtbE5vZGUgfHwgdmFsdWUgaW5zdGFuY2VvZiBYbWxUZXh0KSB7XG4gICAgICAgICAgICAgICAgICAgIHN0cnVjdFhtbE5vZGUuYWRkQ2hpbGROb2RlKHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQGF3cy1zZGsgLSAkdW5rbm93biB1bmlvbiBtZW1iZXIgaW4gWE1MIHJlcXVpcmVzIGAgK1xuICAgICAgICAgICAgICAgICAgICAgICAgYHZhbHVlIG9mIHR5cGUgc3RyaW5nLCBAYXdzLXNkay94bWwtYnVpbGRlcjo6WG1sTm9kZSBvciBYbWxUZXh0LmApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMud3JpdGVTaW1wbGVJbnRvKDAsIHYsIG5vZGUsIHhtbG5zKTtcbiAgICAgICAgICAgIHN0cnVjdFhtbE5vZGUuYWRkQ2hpbGROb2RlKG5vZGUpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh4bWxucykge1xuICAgICAgICAgICAgc3RydWN0WG1sTm9kZS5hZGRBdHRyaWJ1dGUoeG1sbnNBdHRyLCB4bWxucyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN0cnVjdFhtbE5vZGU7XG4gICAgfVxuICAgIHdyaXRlTGlzdChsaXN0TWVtYmVyLCBhcnJheSwgY29udGFpbmVyLCBwYXJlbnRYbWxucykge1xuICAgICAgICBpZiAoIWxpc3RNZW1iZXIuaXNNZW1iZXJTY2hlbWEoKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBAYXdzLXNkay9jb3JlL3Byb3RvY29scyAtIHhtbCBzZXJpYWxpemVyLCBjYW5ub3Qgd3JpdGUgbm9uLW1lbWJlciBsaXN0OiAke2xpc3RNZW1iZXIuZ2V0TmFtZSh0cnVlKX1gKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBsaXN0VHJhaXRzID0gbGlzdE1lbWJlci5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgY29uc3QgbGlzdFZhbHVlU2NoZW1hID0gbGlzdE1lbWJlci5nZXRWYWx1ZVNjaGVtYSgpO1xuICAgICAgICBjb25zdCBsaXN0VmFsdWVUcmFpdHMgPSBsaXN0VmFsdWVTY2hlbWEuZ2V0TWVyZ2VkVHJhaXRzKCk7XG4gICAgICAgIGNvbnN0IHNwYXJzZSA9ICEhbGlzdFZhbHVlVHJhaXRzLnNwYXJzZTtcbiAgICAgICAgY29uc3QgZmxhdCA9ICEhbGlzdFRyYWl0cy54bWxGbGF0dGVuZWQ7XG4gICAgICAgIGNvbnN0IFt4bWxuc0F0dHIsIHhtbG5zXSA9IHRoaXMuZ2V0WG1sbnNBdHRyaWJ1dGUobGlzdE1lbWJlciwgcGFyZW50WG1sbnMpO1xuICAgICAgICBjb25zdCB3cml0ZUl0ZW0gPSAoY29udGFpbmVyLCB2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgaWYgKGxpc3RWYWx1ZVNjaGVtYS5pc0xpc3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVMaXN0KGxpc3RWYWx1ZVNjaGVtYSwgQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV0sIGNvbnRhaW5lciwgeG1sbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAobGlzdFZhbHVlU2NoZW1hLmlzTWFwU2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlTWFwKGxpc3RWYWx1ZVNjaGVtYSwgdmFsdWUsIGNvbnRhaW5lciwgeG1sbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAobGlzdFZhbHVlU2NoZW1hLmlzU3RydWN0U2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgPSB0aGlzLndyaXRlU3RydWN0KGxpc3RWYWx1ZVNjaGVtYSwgdmFsdWUsIHhtbG5zKTtcbiAgICAgICAgICAgICAgICBjb250YWluZXIuYWRkQ2hpbGROb2RlKHN0cnVjdC53aXRoTmFtZShmbGF0ID8gbGlzdFRyYWl0cy54bWxOYW1lID8/IGxpc3RNZW1iZXIuZ2V0TWVtYmVyTmFtZSgpIDogbGlzdFZhbHVlVHJhaXRzLnhtbE5hbWUgPz8gXCJtZW1iZXJcIikpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbGlzdEl0ZW1Ob2RlID0gWG1sTm9kZS5vZihmbGF0ID8gbGlzdFRyYWl0cy54bWxOYW1lID8/IGxpc3RNZW1iZXIuZ2V0TWVtYmVyTmFtZSgpIDogbGlzdFZhbHVlVHJhaXRzLnhtbE5hbWUgPz8gXCJtZW1iZXJcIik7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZVNpbXBsZUludG8obGlzdFZhbHVlU2NoZW1hLCB2YWx1ZSwgbGlzdEl0ZW1Ob2RlLCB4bWxucyk7XG4gICAgICAgICAgICAgICAgY29udGFpbmVyLmFkZENoaWxkTm9kZShsaXN0SXRlbU5vZGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBpZiAoZmxhdCkge1xuICAgICAgICAgICAgZm9yIChjb25zdCB2YWx1ZSBvZiBhcnJheSkge1xuICAgICAgICAgICAgICAgIGlmIChzcGFyc2UgfHwgdmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICB3cml0ZUl0ZW0oY29udGFpbmVyLCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgbGlzdE5vZGUgPSBYbWxOb2RlLm9mKGxpc3RUcmFpdHMueG1sTmFtZSA/PyBsaXN0TWVtYmVyLmdldE1lbWJlck5hbWUoKSk7XG4gICAgICAgICAgICBpZiAoeG1sbnMpIHtcbiAgICAgICAgICAgICAgICBsaXN0Tm9kZS5hZGRBdHRyaWJ1dGUoeG1sbnNBdHRyLCB4bWxucyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHZhbHVlIG9mIGFycmF5KSB7XG4gICAgICAgICAgICAgICAgaWYgKHNwYXJzZSB8fCB2YWx1ZSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHdyaXRlSXRlbShsaXN0Tm9kZSwgdmFsdWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnRhaW5lci5hZGRDaGlsZE5vZGUobGlzdE5vZGUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHdyaXRlTWFwKG1hcE1lbWJlciwgbWFwLCBjb250YWluZXIsIHBhcmVudFhtbG5zLCBjb250YWluZXJJc01hcCA9IGZhbHNlKSB7XG4gICAgICAgIGlmICghbWFwTWVtYmVyLmlzTWVtYmVyU2NoZW1hKCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSB4bWwgc2VyaWFsaXplciwgY2Fubm90IHdyaXRlIG5vbi1tZW1iZXIgbWFwOiAke21hcE1lbWJlci5nZXROYW1lKHRydWUpfWApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG1hcFRyYWl0cyA9IG1hcE1lbWJlci5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgY29uc3QgbWFwS2V5U2NoZW1hID0gbWFwTWVtYmVyLmdldEtleVNjaGVtYSgpO1xuICAgICAgICBjb25zdCBtYXBLZXlUcmFpdHMgPSBtYXBLZXlTY2hlbWEuZ2V0TWVyZ2VkVHJhaXRzKCk7XG4gICAgICAgIGNvbnN0IGtleVRhZyA9IG1hcEtleVRyYWl0cy54bWxOYW1lID8/IFwia2V5XCI7XG4gICAgICAgIGNvbnN0IG1hcFZhbHVlU2NoZW1hID0gbWFwTWVtYmVyLmdldFZhbHVlU2NoZW1hKCk7XG4gICAgICAgIGNvbnN0IG1hcFZhbHVlVHJhaXRzID0gbWFwVmFsdWVTY2hlbWEuZ2V0TWVyZ2VkVHJhaXRzKCk7XG4gICAgICAgIGNvbnN0IHZhbHVlVGFnID0gbWFwVmFsdWVUcmFpdHMueG1sTmFtZSA/PyBcInZhbHVlXCI7XG4gICAgICAgIGNvbnN0IHNwYXJzZSA9ICEhbWFwVmFsdWVUcmFpdHMuc3BhcnNlO1xuICAgICAgICBjb25zdCBmbGF0ID0gISFtYXBUcmFpdHMueG1sRmxhdHRlbmVkO1xuICAgICAgICBjb25zdCBbeG1sbnNBdHRyLCB4bWxuc10gPSB0aGlzLmdldFhtbG5zQXR0cmlidXRlKG1hcE1lbWJlciwgcGFyZW50WG1sbnMpO1xuICAgICAgICBjb25zdCBhZGRLZXlWYWx1ZSA9IChlbnRyeSwga2V5LCB2YWwpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGtleU5vZGUgPSBYbWxOb2RlLm9mKGtleVRhZywga2V5KTtcbiAgICAgICAgICAgIGNvbnN0IFtrZXlYbWxuc0F0dHIsIGtleVhtbG5zXSA9IHRoaXMuZ2V0WG1sbnNBdHRyaWJ1dGUobWFwS2V5U2NoZW1hLCB4bWxucyk7XG4gICAgICAgICAgICBpZiAoa2V5WG1sbnMpIHtcbiAgICAgICAgICAgICAgICBrZXlOb2RlLmFkZEF0dHJpYnV0ZShrZXlYbWxuc0F0dHIsIGtleVhtbG5zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVudHJ5LmFkZENoaWxkTm9kZShrZXlOb2RlKTtcbiAgICAgICAgICAgIGxldCB2YWx1ZU5vZGUgPSBYbWxOb2RlLm9mKHZhbHVlVGFnKTtcbiAgICAgICAgICAgIGlmIChtYXBWYWx1ZVNjaGVtYS5pc0xpc3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVMaXN0KG1hcFZhbHVlU2NoZW1hLCB2YWwsIHZhbHVlTm9kZSwgeG1sbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAobWFwVmFsdWVTY2hlbWEuaXNNYXBTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVNYXAobWFwVmFsdWVTY2hlbWEsIHZhbCwgdmFsdWVOb2RlLCB4bWxucywgdHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChtYXBWYWx1ZVNjaGVtYS5pc1N0cnVjdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgdmFsdWVOb2RlID0gdGhpcy53cml0ZVN0cnVjdChtYXBWYWx1ZVNjaGVtYSwgdmFsLCB4bWxucyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlU2ltcGxlSW50byhtYXBWYWx1ZVNjaGVtYSwgdmFsLCB2YWx1ZU5vZGUsIHhtbG5zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVudHJ5LmFkZENoaWxkTm9kZSh2YWx1ZU5vZGUpO1xuICAgICAgICB9O1xuICAgICAgICBpZiAoZmxhdCkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWxdIG9mIE9iamVjdC5lbnRyaWVzKG1hcCkpIHtcbiAgICAgICAgICAgICAgICBpZiAoc3BhcnNlIHx8IHZhbCAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVudHJ5ID0gWG1sTm9kZS5vZihtYXBUcmFpdHMueG1sTmFtZSA/PyBtYXBNZW1iZXIuZ2V0TWVtYmVyTmFtZSgpKTtcbiAgICAgICAgICAgICAgICAgICAgYWRkS2V5VmFsdWUoZW50cnksIGtleSwgdmFsKTtcbiAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyLmFkZENoaWxkTm9kZShlbnRyeSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgbGV0IG1hcE5vZGU7XG4gICAgICAgICAgICBpZiAoIWNvbnRhaW5lcklzTWFwKSB7XG4gICAgICAgICAgICAgICAgbWFwTm9kZSA9IFhtbE5vZGUub2YobWFwVHJhaXRzLnhtbE5hbWUgPz8gbWFwTWVtYmVyLmdldE1lbWJlck5hbWUoKSk7XG4gICAgICAgICAgICAgICAgaWYgKHhtbG5zKSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcE5vZGUuYWRkQXR0cmlidXRlKHhtbG5zQXR0ciwgeG1sbnMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb250YWluZXIuYWRkQ2hpbGROb2RlKG1hcE5vZGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWxdIG9mIE9iamVjdC5lbnRyaWVzKG1hcCkpIHtcbiAgICAgICAgICAgICAgICBpZiAoc3BhcnNlIHx8IHZhbCAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVudHJ5ID0gWG1sTm9kZS5vZihcImVudHJ5XCIpO1xuICAgICAgICAgICAgICAgICAgICBhZGRLZXlWYWx1ZShlbnRyeSwga2V5LCB2YWwpO1xuICAgICAgICAgICAgICAgICAgICAoY29udGFpbmVySXNNYXAgPyBjb250YWluZXIgOiBtYXBOb2RlKS5hZGRDaGlsZE5vZGUoZW50cnkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICB3cml0ZVNpbXBsZShfc2NoZW1hLCB2YWx1ZSkge1xuICAgICAgICBpZiAobnVsbCA9PT0gdmFsdWUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkBhd3Mtc2RrL2NvcmUvcHJvdG9jb2xzIC0gKFhNTCBzZXJpYWxpemVyKSBjYW5ub3Qgd3JpdGUgbnVsbCB2YWx1ZS5cIik7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbnMgPSBOb3JtYWxpemVkU2NoZW1hLm9mKF9zY2hlbWEpO1xuICAgICAgICBsZXQgbm9kZUNvbnRlbnRzID0gbnVsbDtcbiAgICAgICAgaWYgKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgaWYgKG5zLmlzQmxvYlNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgbm9kZUNvbnRlbnRzID0gKHRoaXMuc2VyZGVDb250ZXh0Py5iYXNlNjRFbmNvZGVyID8/IHRvQmFzZTY0KSh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChucy5pc1RpbWVzdGFtcFNjaGVtYSgpICYmIHZhbHVlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZvcm1hdCA9IGRldGVybWluZVRpbWVzdGFtcEZvcm1hdChucywgdGhpcy5zZXR0aW5ncyk7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChmb3JtYXQpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgICAgICAgICAgICAgbm9kZUNvbnRlbnRzID0gdmFsdWUudG9JU09TdHJpbmcoKS5yZXBsYWNlKFwiLjAwMFpcIiwgXCJaXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vZGVDb250ZW50cyA9IGRhdGVUb1V0Y1N0cmluZyh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA3OlxuICAgICAgICAgICAgICAgICAgICAgICAgbm9kZUNvbnRlbnRzID0gU3RyaW5nKHZhbHVlLmdldFRpbWUoKSAvIDEwMDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oXCJNaXNzaW5nIHRpbWVzdGFtcCBmb3JtYXQsIHVzaW5nIGh0dHAgZGF0ZVwiLCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBub2RlQ29udGVudHMgPSBkYXRlVG9VdGNTdHJpbmcodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAobnMuaXNCaWdEZWNpbWFsU2NoZW1hKCkgJiYgdmFsdWUpIHtcbiAgICAgICAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBOdW1lcmljVmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlLnN0cmluZztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChucy5pc01hcFNjaGVtYSgpIHx8IG5zLmlzTGlzdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSB4bWwgc2VyaWFsaXplciwgY2Fubm90IGNhbGwgX3dyaXRlKCkgb24gTGlzdC9NYXAgc2NoZW1hLCBjYWxsIHdyaXRlTGlzdCBvciB3cml0ZU1hcCgpIGluc3RlYWQuXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBAYXdzLXNkay9jb3JlL3Byb3RvY29scyAtIHhtbCBzZXJpYWxpemVyLCB1bmhhbmRsZWQgc2NoZW1hIHR5cGUgZm9yIG9iamVjdCB2YWx1ZSBhbmQgc2NoZW1hOiAke25zLmdldE5hbWUodHJ1ZSl9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzQm9vbGVhblNjaGVtYSgpIHx8IG5zLmlzTnVtZXJpY1NjaGVtYSgpIHx8IG5zLmlzQmlnSW50ZWdlclNjaGVtYSgpIHx8IG5zLmlzQmlnRGVjaW1hbFNjaGVtYSgpKSB7XG4gICAgICAgICAgICBub2RlQ29udGVudHMgPSBTdHJpbmcodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChucy5pc1N0cmluZ1NjaGVtYSgpKSB7XG4gICAgICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCAmJiBucy5pc0lkZW1wb3RlbmN5VG9rZW4oKSkge1xuICAgICAgICAgICAgICAgIG5vZGVDb250ZW50cyA9IGdlbmVyYXRlSWRlbXBvdGVuY3lUb2tlbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgbm9kZUNvbnRlbnRzID0gU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAobm9kZUNvbnRlbnRzID09PSBudWxsKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuaGFuZGxlZCBzY2hlbWEtdmFsdWUgcGFpciAke25zLmdldE5hbWUodHJ1ZSl9PSR7dmFsdWV9YCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5vZGVDb250ZW50cztcbiAgICB9XG4gICAgd3JpdGVTaW1wbGVJbnRvKF9zY2hlbWEsIHZhbHVlLCBpbnRvLCBwYXJlbnRYbWxucykge1xuICAgICAgICBjb25zdCBub2RlQ29udGVudHMgPSB0aGlzLndyaXRlU2ltcGxlKF9zY2hlbWEsIHZhbHVlKTtcbiAgICAgICAgY29uc3QgbnMgPSBOb3JtYWxpemVkU2NoZW1hLm9mKF9zY2hlbWEpO1xuICAgICAgICBjb25zdCBjb250ZW50ID0gbmV3IFhtbFRleHQobm9kZUNvbnRlbnRzKTtcbiAgICAgICAgY29uc3QgW3htbG5zQXR0ciwgeG1sbnNdID0gdGhpcy5nZXRYbWxuc0F0dHJpYnV0ZShucywgcGFyZW50WG1sbnMpO1xuICAgICAgICBpZiAoeG1sbnMpIHtcbiAgICAgICAgICAgIGludG8uYWRkQXR0cmlidXRlKHhtbG5zQXR0ciwgeG1sbnMpO1xuICAgICAgICB9XG4gICAgICAgIGludG8uYWRkQ2hpbGROb2RlKGNvbnRlbnQpO1xuICAgIH1cbiAgICBnZXRYbWxuc0F0dHJpYnV0ZShucywgcGFyZW50WG1sbnMpIHtcbiAgICAgICAgY29uc3QgdHJhaXRzID0gbnMuZ2V0TWVyZ2VkVHJhaXRzKCk7XG4gICAgICAgIGNvbnN0IFtwcmVmaXgsIHhtbG5zXSA9IHRyYWl0cy54bWxOYW1lc3BhY2UgPz8gW107XG4gICAgICAgIGlmICh4bWxucyAmJiB4bWxucyAhPT0gcGFyZW50WG1sbnMpIHtcbiAgICAgICAgICAgIHJldHVybiBbcHJlZml4ID8gYHhtbG5zOiR7cHJlZml4fWAgOiBcInhtbG5zXCIsIHhtbG5zXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gW3ZvaWQgMCwgdm9pZCAwXTtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgU2VyZGVDb250ZXh0Q29uZmlnIH0gZnJvbSBcIi4uL0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dFwiO1xuaW1wb3J0IHsgWG1sU2hhcGVEZXNlcmlhbGl6ZXIgfSBmcm9tIFwiLi9YbWxTaGFwZURlc2VyaWFsaXplclwiO1xuaW1wb3J0IHsgWG1sU2hhcGVTZXJpYWxpemVyIH0gZnJvbSBcIi4vWG1sU2hhcGVTZXJpYWxpemVyXCI7XG5leHBvcnQgY2xhc3MgWG1sQ29kZWMgZXh0ZW5kcyBTZXJkZUNvbnRleHRDb25maWcge1xuICAgIHNldHRpbmdzO1xuICAgIGNvbnN0cnVjdG9yKHNldHRpbmdzKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuc2V0dGluZ3MgPSBzZXR0aW5ncztcbiAgICB9XG4gICAgY3JlYXRlU2VyaWFsaXplcigpIHtcbiAgICAgICAgY29uc3Qgc2VyaWFsaXplciA9IG5ldyBYbWxTaGFwZVNlcmlhbGl6ZXIodGhpcy5zZXR0aW5ncyk7XG4gICAgICAgIHNlcmlhbGl6ZXIuc2V0U2VyZGVDb250ZXh0KHRoaXMuc2VyZGVDb250ZXh0KTtcbiAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZXI7XG4gICAgfVxuICAgIGNyZWF0ZURlc2VyaWFsaXplcigpIHtcbiAgICAgICAgY29uc3QgZGVzZXJpYWxpemVyID0gbmV3IFhtbFNoYXBlRGVzZXJpYWxpemVyKHRoaXMuc2V0dGluZ3MpO1xuICAgICAgICBkZXNlcmlhbGl6ZXIuc2V0U2VyZGVDb250ZXh0KHRoaXMuc2VyZGVDb250ZXh0KTtcbiAgICAgICAgcmV0dXJuIGRlc2VyaWFsaXplcjtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgSHR0cEJpbmRpbmdQcm90b2NvbCwgSHR0cEludGVyY2VwdGluZ1NoYXBlRGVzZXJpYWxpemVyLCBIdHRwSW50ZXJjZXB0aW5nU2hhcGVTZXJpYWxpemVyLCB9IGZyb20gXCJAc21pdGh5L2NvcmUvcHJvdG9jb2xzXCI7XG5pbXBvcnQgeyBOb3JtYWxpemVkU2NoZW1hLCBUeXBlUmVnaXN0cnkgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3NjaGVtYVwiO1xuaW1wb3J0IHsgUHJvdG9jb2xMaWIgfSBmcm9tIFwiLi4vUHJvdG9jb2xMaWJcIjtcbmltcG9ydCB7IGxvYWRSZXN0WG1sRXJyb3JDb2RlIH0gZnJvbSBcIi4vcGFyc2VYbWxCb2R5XCI7XG5pbXBvcnQgeyBYbWxDb2RlYyB9IGZyb20gXCIuL1htbENvZGVjXCI7XG5leHBvcnQgY2xhc3MgQXdzUmVzdFhtbFByb3RvY29sIGV4dGVuZHMgSHR0cEJpbmRpbmdQcm90b2NvbCB7XG4gICAgY29kZWM7XG4gICAgc2VyaWFsaXplcjtcbiAgICBkZXNlcmlhbGl6ZXI7XG4gICAgbWl4aW4gPSBuZXcgUHJvdG9jb2xMaWIoKTtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgICAgICBjb25zdCBzZXR0aW5ncyA9IHtcbiAgICAgICAgICAgIHRpbWVzdGFtcEZvcm1hdDoge1xuICAgICAgICAgICAgICAgIHVzZVRyYWl0OiB0cnVlLFxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IDUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaHR0cEJpbmRpbmdzOiB0cnVlLFxuICAgICAgICAgICAgeG1sTmFtZXNwYWNlOiBvcHRpb25zLnhtbE5hbWVzcGFjZSxcbiAgICAgICAgICAgIHNlcnZpY2VOYW1lc3BhY2U6IG9wdGlvbnMuZGVmYXVsdE5hbWVzcGFjZSxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5jb2RlYyA9IG5ldyBYbWxDb2RlYyhzZXR0aW5ncyk7XG4gICAgICAgIHRoaXMuc2VyaWFsaXplciA9IG5ldyBIdHRwSW50ZXJjZXB0aW5nU2hhcGVTZXJpYWxpemVyKHRoaXMuY29kZWMuY3JlYXRlU2VyaWFsaXplcigpLCBzZXR0aW5ncyk7XG4gICAgICAgIHRoaXMuZGVzZXJpYWxpemVyID0gbmV3IEh0dHBJbnRlcmNlcHRpbmdTaGFwZURlc2VyaWFsaXplcih0aGlzLmNvZGVjLmNyZWF0ZURlc2VyaWFsaXplcigpLCBzZXR0aW5ncyk7XG4gICAgfVxuICAgIGdldFBheWxvYWRDb2RlYygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29kZWM7XG4gICAgfVxuICAgIGdldFNoYXBlSWQoKSB7XG4gICAgICAgIHJldHVybiBcImF3cy5wcm90b2NvbHMjcmVzdFhtbFwiO1xuICAgIH1cbiAgICBhc3luYyBzZXJpYWxpemVSZXF1ZXN0KG9wZXJhdGlvblNjaGVtYSwgaW5wdXQsIGNvbnRleHQpIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IGF3YWl0IHN1cGVyLnNlcmlhbGl6ZVJlcXVlc3Qob3BlcmF0aW9uU2NoZW1hLCBpbnB1dCwgY29udGV4dCk7XG4gICAgICAgIGNvbnN0IGlucHV0U2NoZW1hID0gTm9ybWFsaXplZFNjaGVtYS5vZihvcGVyYXRpb25TY2hlbWEuaW5wdXQpO1xuICAgICAgICBpZiAoIXJlcXVlc3QuaGVhZGVyc1tcImNvbnRlbnQtdHlwZVwiXSkge1xuICAgICAgICAgICAgY29uc3QgY29udGVudFR5cGUgPSB0aGlzLm1peGluLnJlc29sdmVSZXN0Q29udGVudFR5cGUodGhpcy5nZXREZWZhdWx0Q29udGVudFR5cGUoKSwgaW5wdXRTY2hlbWEpO1xuICAgICAgICAgICAgaWYgKGNvbnRlbnRUeXBlKSB7XG4gICAgICAgICAgICAgICAgcmVxdWVzdC5oZWFkZXJzW1wiY29udGVudC10eXBlXCJdID0gY29udGVudFR5cGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiByZXF1ZXN0LmJvZHkgPT09IFwic3RyaW5nXCIgJiZcbiAgICAgICAgICAgIHJlcXVlc3QuaGVhZGVyc1tcImNvbnRlbnQtdHlwZVwiXSA9PT0gdGhpcy5nZXREZWZhdWx0Q29udGVudFR5cGUoKSAmJlxuICAgICAgICAgICAgIXJlcXVlc3QuYm9keS5zdGFydHNXaXRoKFwiPD94bWwgXCIpICYmXG4gICAgICAgICAgICAhdGhpcy5oYXNVbnN0cnVjdHVyZWRQYXlsb2FkQmluZGluZyhpbnB1dFNjaGVtYSkpIHtcbiAgICAgICAgICAgIHJlcXVlc3QuYm9keSA9ICc8P3htbCB2ZXJzaW9uPVwiMS4wXCIgZW5jb2Rpbmc9XCJVVEYtOFwiPz4nICsgcmVxdWVzdC5ib2R5O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXF1ZXN0O1xuICAgIH1cbiAgICBhc3luYyBkZXNlcmlhbGl6ZVJlc3BvbnNlKG9wZXJhdGlvblNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UpIHtcbiAgICAgICAgcmV0dXJuIHN1cGVyLmRlc2VyaWFsaXplUmVzcG9uc2Uob3BlcmF0aW9uU2NoZW1hLCBjb250ZXh0LCByZXNwb25zZSk7XG4gICAgfVxuICAgIGFzeW5jIGhhbmRsZUVycm9yKG9wZXJhdGlvblNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UsIGRhdGFPYmplY3QsIG1ldGFkYXRhKSB7XG4gICAgICAgIGNvbnN0IGVycm9ySWRlbnRpZmllciA9IGxvYWRSZXN0WG1sRXJyb3JDb2RlKHJlc3BvbnNlLCBkYXRhT2JqZWN0KSA/PyBcIlVua25vd25cIjtcbiAgICAgICAgaWYgKGRhdGFPYmplY3QuRXJyb3IgJiYgdHlwZW9mIGRhdGFPYmplY3QuRXJyb3IgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGRhdGFPYmplY3QuRXJyb3IpKSB7XG4gICAgICAgICAgICAgICAgZGF0YU9iamVjdFtrZXldID0gZGF0YU9iamVjdC5FcnJvcltrZXldO1xuICAgICAgICAgICAgICAgIGlmIChrZXkudG9Mb3dlckNhc2UoKSA9PT0gXCJtZXNzYWdlXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgZGF0YU9iamVjdC5tZXNzYWdlID0gZGF0YU9iamVjdC5FcnJvcltrZXldO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YU9iamVjdC5SZXF1ZXN0SWQgJiYgIW1ldGFkYXRhLnJlcXVlc3RJZCkge1xuICAgICAgICAgICAgbWV0YWRhdGEucmVxdWVzdElkID0gZGF0YU9iamVjdC5SZXF1ZXN0SWQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgeyBlcnJvclNjaGVtYSwgZXJyb3JNZXRhZGF0YSB9ID0gYXdhaXQgdGhpcy5taXhpbi5nZXRFcnJvclNjaGVtYU9yVGhyb3dCYXNlRXhjZXB0aW9uKGVycm9ySWRlbnRpZmllciwgdGhpcy5vcHRpb25zLmRlZmF1bHROYW1lc3BhY2UsIHJlc3BvbnNlLCBkYXRhT2JqZWN0LCBtZXRhZGF0YSk7XG4gICAgICAgIGNvbnN0IG5zID0gTm9ybWFsaXplZFNjaGVtYS5vZihlcnJvclNjaGVtYSk7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBkYXRhT2JqZWN0LkVycm9yPy5tZXNzYWdlID8/IGRhdGFPYmplY3QuRXJyb3I/Lk1lc3NhZ2UgPz8gZGF0YU9iamVjdC5tZXNzYWdlID8/IGRhdGFPYmplY3QuTWVzc2FnZSA/PyBcIlVua25vd25cIjtcbiAgICAgICAgY29uc3QgRXJyb3JDdG9yID0gVHlwZVJlZ2lzdHJ5LmZvcihlcnJvclNjaGVtYVsxXSkuZ2V0RXJyb3JDdG9yKGVycm9yU2NoZW1hKSA/PyBFcnJvcjtcbiAgICAgICAgY29uc3QgZXhjZXB0aW9uID0gbmV3IEVycm9yQ3RvcihtZXNzYWdlKTtcbiAgICAgICAgYXdhaXQgdGhpcy5kZXNlcmlhbGl6ZUh0dHBNZXNzYWdlKGVycm9yU2NoZW1hLCBjb250ZXh0LCByZXNwb25zZSwgZGF0YU9iamVjdCk7XG4gICAgICAgIGNvbnN0IG91dHB1dCA9IHt9O1xuICAgICAgICBmb3IgKGNvbnN0IFtuYW1lLCBtZW1iZXJdIG9mIG5zLnN0cnVjdEl0ZXJhdG9yKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IG1lbWJlci5nZXRNZXJnZWRUcmFpdHMoKS54bWxOYW1lID8/IG5hbWU7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGRhdGFPYmplY3QuRXJyb3I/Llt0YXJnZXRdID8/IGRhdGFPYmplY3RbdGFyZ2V0XTtcbiAgICAgICAgICAgIG91dHB1dFtuYW1lXSA9IHRoaXMuY29kZWMuY3JlYXRlRGVzZXJpYWxpemVyKCkucmVhZFNjaGVtYShtZW1iZXIsIHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyB0aGlzLm1peGluLmRlY29yYXRlU2VydmljZUV4Y2VwdGlvbihPYmplY3QuYXNzaWduKGV4Y2VwdGlvbiwgZXJyb3JNZXRhZGF0YSwge1xuICAgICAgICAgICAgJGZhdWx0OiBucy5nZXRNZXJnZWRUcmFpdHMoKS5lcnJvcixcbiAgICAgICAgICAgIG1lc3NhZ2UsXG4gICAgICAgIH0sIG91dHB1dCksIGRhdGFPYmplY3QpO1xuICAgIH1cbiAgICBnZXREZWZhdWx0Q29udGVudFR5cGUoKSB7XG4gICAgICAgIHJldHVybiBcImFwcGxpY2F0aW9uL3htbFwiO1xuICAgIH1cbiAgICBoYXNVbnN0cnVjdHVyZWRQYXlsb2FkQmluZGluZyhucykge1xuICAgICAgICBmb3IgKGNvbnN0IFssIG1lbWJlcl0gb2YgbnMuc3RydWN0SXRlcmF0b3IoKSkge1xuICAgICAgICAgICAgaWYgKG1lbWJlci5nZXRNZXJnZWRUcmFpdHMoKS5odHRwUGF5bG9hZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAhKG1lbWJlci5pc1N0cnVjdFNjaGVtYSgpIHx8IG1lbWJlci5pc01hcFNjaGVtYSgpIHx8IG1lbWJlci5pc0xpc3RTY2hlbWEoKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cbiIsICJleHBvcnQgKiBmcm9tIFwiLi9jYm9yL0F3c1NtaXRoeVJwY1YyQ2JvclByb3RvY29sXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb2VyY2luZy1zZXJpYWxpemVyc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vanNvbi9Bd3NKc29uMV8wUHJvdG9jb2xcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2pzb24vQXdzSnNvbjFfMVByb3RvY29sXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9qc29uL0F3c0pzb25ScGNQcm90b2NvbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vanNvbi9Bd3NSZXN0SnNvblByb3RvY29sXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9qc29uL0pzb25Db2RlY1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vanNvbi9Kc29uU2hhcGVEZXNlcmlhbGl6ZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2pzb24vSnNvblNoYXBlU2VyaWFsaXplclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vanNvbi9hd3NFeHBlY3RVbmlvblwiO1xuZXhwb3J0ICogZnJvbSBcIi4vanNvbi9wYXJzZUpzb25Cb2R5XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9xdWVyeS9Bd3NFYzJRdWVyeVByb3RvY29sXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9xdWVyeS9Bd3NRdWVyeVByb3RvY29sXCI7XG5leHBvcnQgKiBmcm9tIFwiLi94bWwvQXdzUmVzdFhtbFByb3RvY29sXCI7XG5leHBvcnQgKiBmcm9tIFwiLi94bWwvWG1sQ29kZWNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3htbC9YbWxTaGFwZURlc2VyaWFsaXplclwiO1xuZXhwb3J0ICogZnJvbSBcIi4veG1sL1htbFNoYXBlU2VyaWFsaXplclwiO1xuZXhwb3J0ICogZnJvbSBcIi4veG1sL3BhcnNlWG1sQm9keVwiO1xuIiwgImV4cG9ydCAqIGZyb20gXCIuL3N1Ym1vZHVsZXMvY2xpZW50L2luZGV4XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zdWJtb2R1bGVzL2h0dHBBdXRoU2NoZW1lcy9pbmRleFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3VibW9kdWxlcy9wcm90b2NvbHMvaW5kZXhcIjtcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBjb3JlID0gcmVxdWlyZSgnQHNtaXRoeS9jb3JlJyk7XG52YXIgdXRpbEVuZHBvaW50cyA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL3V0aWwtZW5kcG9pbnRzJyk7XG52YXIgcHJvdG9jb2xIdHRwID0gcmVxdWlyZSgnQHNtaXRoeS9wcm90b2NvbC1odHRwJyk7XG52YXIgY29yZSQxID0gcmVxdWlyZSgnQGF3cy1zZGsvY29yZScpO1xuXG5jb25zdCBERUZBVUxUX1VBX0FQUF9JRCA9IHVuZGVmaW5lZDtcbmZ1bmN0aW9uIGlzVmFsaWRVc2VyQWdlbnRBcHBJZChhcHBJZCkge1xuICAgIGlmIChhcHBJZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gdHlwZW9mIGFwcElkID09PSBcInN0cmluZ1wiICYmIGFwcElkLmxlbmd0aCA8PSA1MDtcbn1cbmZ1bmN0aW9uIHJlc29sdmVVc2VyQWdlbnRDb25maWcoaW5wdXQpIHtcbiAgICBjb25zdCBub3JtYWxpemVkQXBwSWRQcm92aWRlciA9IGNvcmUubm9ybWFsaXplUHJvdmlkZXIoaW5wdXQudXNlckFnZW50QXBwSWQgPz8gREVGQVVMVF9VQV9BUFBfSUQpO1xuICAgIGNvbnN0IHsgY3VzdG9tVXNlckFnZW50IH0gPSBpbnB1dDtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihpbnB1dCwge1xuICAgICAgICBjdXN0b21Vc2VyQWdlbnQ6IHR5cGVvZiBjdXN0b21Vc2VyQWdlbnQgPT09IFwic3RyaW5nXCIgPyBbW2N1c3RvbVVzZXJBZ2VudF1dIDogY3VzdG9tVXNlckFnZW50LFxuICAgICAgICB1c2VyQWdlbnRBcHBJZDogYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYXBwSWQgPSBhd2FpdCBub3JtYWxpemVkQXBwSWRQcm92aWRlcigpO1xuICAgICAgICAgICAgaWYgKCFpc1ZhbGlkVXNlckFnZW50QXBwSWQoYXBwSWQpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbG9nZ2VyID0gaW5wdXQubG9nZ2VyPy5jb25zdHJ1Y3Rvcj8ubmFtZSA9PT0gXCJOb09wTG9nZ2VyXCIgfHwgIWlucHV0LmxvZ2dlciA/IGNvbnNvbGUgOiBpbnB1dC5sb2dnZXI7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBhcHBJZCAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgICAgICBsb2dnZXI/Lndhcm4oXCJ1c2VyQWdlbnRBcHBJZCBtdXN0IGJlIGEgc3RyaW5nIG9yIHVuZGVmaW5lZC5cIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKGFwcElkLmxlbmd0aCA+IDUwKSB7XG4gICAgICAgICAgICAgICAgICAgIGxvZ2dlcj8ud2FybihcIlRoZSBwcm92aWRlZCB1c2VyQWdlbnRBcHBJZCBleGNlZWRzIHRoZSBtYXhpbXVtIGxlbmd0aCBvZiA1MCBjaGFyYWN0ZXJzLlwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gYXBwSWQ7XG4gICAgICAgIH0sXG4gICAgfSk7XG59XG5cbmNvbnN0IEFDQ09VTlRfSURfRU5EUE9JTlRfUkVHRVggPSAvXFxkezEyfVxcLmRkYi87XG5hc3luYyBmdW5jdGlvbiBjaGVja0ZlYXR1cmVzKGNvbnRleHQsIGNvbmZpZywgYXJncykge1xuICAgIGNvbnN0IHJlcXVlc3QgPSBhcmdzLnJlcXVlc3Q7XG4gICAgaWYgKHJlcXVlc3Q/LmhlYWRlcnM/LltcInNtaXRoeS1wcm90b2NvbFwiXSA9PT0gXCJycGMtdjItY2JvclwiKSB7XG4gICAgICAgIGNvcmUkMS5zZXRGZWF0dXJlKGNvbnRleHQsIFwiUFJPVE9DT0xfUlBDX1YyX0NCT1JcIiwgXCJNXCIpO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIGNvbmZpZy5yZXRyeVN0cmF0ZWd5ID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgY29uc3QgcmV0cnlTdHJhdGVneSA9IGF3YWl0IGNvbmZpZy5yZXRyeVN0cmF0ZWd5KCk7XG4gICAgICAgIGlmICh0eXBlb2YgcmV0cnlTdHJhdGVneS5hY3F1aXJlSW5pdGlhbFJldHJ5VG9rZW4gPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgaWYgKHJldHJ5U3RyYXRlZ3kuY29uc3RydWN0b3I/Lm5hbWU/LmluY2x1ZGVzKFwiQWRhcHRpdmVcIikpIHtcbiAgICAgICAgICAgICAgICBjb3JlJDEuc2V0RmVhdHVyZShjb250ZXh0LCBcIlJFVFJZX01PREVfQURBUFRJVkVcIiwgXCJGXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29yZSQxLnNldEZlYXR1cmUoY29udGV4dCwgXCJSRVRSWV9NT0RFX1NUQU5EQVJEXCIsIFwiRVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvcmUkMS5zZXRGZWF0dXJlKGNvbnRleHQsIFwiUkVUUllfTU9ERV9MRUdBQ1lcIiwgXCJEXCIpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGlmICh0eXBlb2YgY29uZmlnLmFjY291bnRJZEVuZHBvaW50TW9kZSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50VjIgPSBjb250ZXh0LmVuZHBvaW50VjI7XG4gICAgICAgIGlmIChTdHJpbmcoZW5kcG9pbnRWMj8udXJsPy5ob3N0bmFtZSkubWF0Y2goQUNDT1VOVF9JRF9FTkRQT0lOVF9SRUdFWCkpIHtcbiAgICAgICAgICAgIGNvcmUkMS5zZXRGZWF0dXJlKGNvbnRleHQsIFwiQUNDT1VOVF9JRF9FTkRQT0lOVFwiLCBcIk9cIik7XG4gICAgICAgIH1cbiAgICAgICAgc3dpdGNoIChhd2FpdCBjb25maWcuYWNjb3VudElkRW5kcG9pbnRNb2RlPy4oKSkge1xuICAgICAgICAgICAgY2FzZSBcImRpc2FibGVkXCI6XG4gICAgICAgICAgICAgICAgY29yZSQxLnNldEZlYXR1cmUoY29udGV4dCwgXCJBQ0NPVU5UX0lEX01PREVfRElTQUJMRURcIiwgXCJRXCIpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBcInByZWZlcnJlZFwiOlxuICAgICAgICAgICAgICAgIGNvcmUkMS5zZXRGZWF0dXJlKGNvbnRleHQsIFwiQUNDT1VOVF9JRF9NT0RFX1BSRUZFUlJFRFwiLCBcIlBcIik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFwicmVxdWlyZWRcIjpcbiAgICAgICAgICAgICAgICBjb3JlJDEuc2V0RmVhdHVyZShjb250ZXh0LCBcIkFDQ09VTlRfSURfTU9ERV9SRVFVSVJFRFwiLCBcIlJcIik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgaWRlbnRpdHkgPSBjb250ZXh0Ll9fc21pdGh5X2NvbnRleHQ/LnNlbGVjdGVkSHR0cEF1dGhTY2hlbWU/LmlkZW50aXR5O1xuICAgIGlmIChpZGVudGl0eT8uJHNvdXJjZSkge1xuICAgICAgICBjb25zdCBjcmVkZW50aWFscyA9IGlkZW50aXR5O1xuICAgICAgICBpZiAoY3JlZGVudGlhbHMuYWNjb3VudElkKSB7XG4gICAgICAgICAgICBjb3JlJDEuc2V0RmVhdHVyZShjb250ZXh0LCBcIlJFU09MVkVEX0FDQ09VTlRfSURcIiwgXCJUXCIpO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKGNyZWRlbnRpYWxzLiRzb3VyY2UgPz8ge30pKSB7XG4gICAgICAgICAgICBjb3JlJDEuc2V0RmVhdHVyZShjb250ZXh0LCBrZXksIHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuY29uc3QgVVNFUl9BR0VOVCA9IFwidXNlci1hZ2VudFwiO1xuY29uc3QgWF9BTVpfVVNFUl9BR0VOVCA9IFwieC1hbXotdXNlci1hZ2VudFwiO1xuY29uc3QgU1BBQ0UgPSBcIiBcIjtcbmNvbnN0IFVBX05BTUVfU0VQQVJBVE9SID0gXCIvXCI7XG5jb25zdCBVQV9OQU1FX0VTQ0FQRV9SRUdFWCA9IC9bXiEkJSYnKitcXC0uXl9gfH5cXHddL2c7XG5jb25zdCBVQV9WQUxVRV9FU0NBUEVfUkVHRVggPSAvW14hJCUmJyorXFwtLl5fYHx+XFx3I10vZztcbmNvbnN0IFVBX0VTQ0FQRV9DSEFSID0gXCItXCI7XG5cbmNvbnN0IEJZVEVfTElNSVQgPSAxMDI0O1xuZnVuY3Rpb24gZW5jb2RlRmVhdHVyZXMoZmVhdHVyZXMpIHtcbiAgICBsZXQgYnVmZmVyID0gXCJcIjtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBmZWF0dXJlcykge1xuICAgICAgICBjb25zdCB2YWwgPSBmZWF0dXJlc1trZXldO1xuICAgICAgICBpZiAoYnVmZmVyLmxlbmd0aCArIHZhbC5sZW5ndGggKyAxIDw9IEJZVEVfTElNSVQpIHtcbiAgICAgICAgICAgIGlmIChidWZmZXIubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgYnVmZmVyICs9IFwiLFwiICsgdmFsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgYnVmZmVyICs9IHZhbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICByZXR1cm4gYnVmZmVyO1xufVxuXG5jb25zdCB1c2VyQWdlbnRNaWRkbGV3YXJlID0gKG9wdGlvbnMpID0+IChuZXh0LCBjb250ZXh0KSA9PiBhc3luYyAoYXJncykgPT4ge1xuICAgIGNvbnN0IHsgcmVxdWVzdCB9ID0gYXJncztcbiAgICBpZiAoIXByb3RvY29sSHR0cC5IdHRwUmVxdWVzdC5pc0luc3RhbmNlKHJlcXVlc3QpKSB7XG4gICAgICAgIHJldHVybiBuZXh0KGFyZ3MpO1xuICAgIH1cbiAgICBjb25zdCB7IGhlYWRlcnMgfSA9IHJlcXVlc3Q7XG4gICAgY29uc3QgdXNlckFnZW50ID0gY29udGV4dD8udXNlckFnZW50Py5tYXAoZXNjYXBlVXNlckFnZW50KSB8fCBbXTtcbiAgICBjb25zdCBkZWZhdWx0VXNlckFnZW50ID0gKGF3YWl0IG9wdGlvbnMuZGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyKCkpLm1hcChlc2NhcGVVc2VyQWdlbnQpO1xuICAgIGF3YWl0IGNoZWNrRmVhdHVyZXMoY29udGV4dCwgb3B0aW9ucywgYXJncyk7XG4gICAgY29uc3QgYXdzQ29udGV4dCA9IGNvbnRleHQ7XG4gICAgZGVmYXVsdFVzZXJBZ2VudC5wdXNoKGBtLyR7ZW5jb2RlRmVhdHVyZXMoT2JqZWN0LmFzc2lnbih7fSwgY29udGV4dC5fX3NtaXRoeV9jb250ZXh0Py5mZWF0dXJlcywgYXdzQ29udGV4dC5fX2F3c19zZGtfY29udGV4dD8uZmVhdHVyZXMpKX1gKTtcbiAgICBjb25zdCBjdXN0b21Vc2VyQWdlbnQgPSBvcHRpb25zPy5jdXN0b21Vc2VyQWdlbnQ/Lm1hcChlc2NhcGVVc2VyQWdlbnQpIHx8IFtdO1xuICAgIGNvbnN0IGFwcElkID0gYXdhaXQgb3B0aW9ucy51c2VyQWdlbnRBcHBJZCgpO1xuICAgIGlmIChhcHBJZCkge1xuICAgICAgICBkZWZhdWx0VXNlckFnZW50LnB1c2goZXNjYXBlVXNlckFnZW50KFtgYXBwYCwgYCR7YXBwSWR9YF0pKTtcbiAgICB9XG4gICAgY29uc3QgcHJlZml4ID0gdXRpbEVuZHBvaW50cy5nZXRVc2VyQWdlbnRQcmVmaXgoKTtcbiAgICBjb25zdCBzZGtVc2VyQWdlbnRWYWx1ZSA9IChwcmVmaXggPyBbcHJlZml4XSA6IFtdKVxuICAgICAgICAuY29uY2F0KFsuLi5kZWZhdWx0VXNlckFnZW50LCAuLi51c2VyQWdlbnQsIC4uLmN1c3RvbVVzZXJBZ2VudF0pXG4gICAgICAgIC5qb2luKFNQQUNFKTtcbiAgICBjb25zdCBub3JtYWxVQVZhbHVlID0gW1xuICAgICAgICAuLi5kZWZhdWx0VXNlckFnZW50LmZpbHRlcigoc2VjdGlvbikgPT4gc2VjdGlvbi5zdGFydHNXaXRoKFwiYXdzLXNkay1cIikpLFxuICAgICAgICAuLi5jdXN0b21Vc2VyQWdlbnQsXG4gICAgXS5qb2luKFNQQUNFKTtcbiAgICBpZiAob3B0aW9ucy5ydW50aW1lICE9PSBcImJyb3dzZXJcIikge1xuICAgICAgICBpZiAobm9ybWFsVUFWYWx1ZSkge1xuICAgICAgICAgICAgaGVhZGVyc1tYX0FNWl9VU0VSX0FHRU5UXSA9IGhlYWRlcnNbWF9BTVpfVVNFUl9BR0VOVF1cbiAgICAgICAgICAgICAgICA/IGAke2hlYWRlcnNbVVNFUl9BR0VOVF19ICR7bm9ybWFsVUFWYWx1ZX1gXG4gICAgICAgICAgICAgICAgOiBub3JtYWxVQVZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGhlYWRlcnNbVVNFUl9BR0VOVF0gPSBzZGtVc2VyQWdlbnRWYWx1ZTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGhlYWRlcnNbWF9BTVpfVVNFUl9BR0VOVF0gPSBzZGtVc2VyQWdlbnRWYWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIG5leHQoe1xuICAgICAgICAuLi5hcmdzLFxuICAgICAgICByZXF1ZXN0LFxuICAgIH0pO1xufTtcbmNvbnN0IGVzY2FwZVVzZXJBZ2VudCA9ICh1c2VyQWdlbnRQYWlyKSA9PiB7XG4gICAgY29uc3QgbmFtZSA9IHVzZXJBZ2VudFBhaXJbMF1cbiAgICAgICAgLnNwbGl0KFVBX05BTUVfU0VQQVJBVE9SKVxuICAgICAgICAubWFwKChwYXJ0KSA9PiBwYXJ0LnJlcGxhY2UoVUFfTkFNRV9FU0NBUEVfUkVHRVgsIFVBX0VTQ0FQRV9DSEFSKSlcbiAgICAgICAgLmpvaW4oVUFfTkFNRV9TRVBBUkFUT1IpO1xuICAgIGNvbnN0IHZlcnNpb24gPSB1c2VyQWdlbnRQYWlyWzFdPy5yZXBsYWNlKFVBX1ZBTFVFX0VTQ0FQRV9SRUdFWCwgVUFfRVNDQVBFX0NIQVIpO1xuICAgIGNvbnN0IHByZWZpeFNlcGFyYXRvckluZGV4ID0gbmFtZS5pbmRleE9mKFVBX05BTUVfU0VQQVJBVE9SKTtcbiAgICBjb25zdCBwcmVmaXggPSBuYW1lLnN1YnN0cmluZygwLCBwcmVmaXhTZXBhcmF0b3JJbmRleCk7XG4gICAgbGV0IHVhTmFtZSA9IG5hbWUuc3Vic3RyaW5nKHByZWZpeFNlcGFyYXRvckluZGV4ICsgMSk7XG4gICAgaWYgKHByZWZpeCA9PT0gXCJhcGlcIikge1xuICAgICAgICB1YU5hbWUgPSB1YU5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICB9XG4gICAgcmV0dXJuIFtwcmVmaXgsIHVhTmFtZSwgdmVyc2lvbl1cbiAgICAgICAgLmZpbHRlcigoaXRlbSkgPT4gaXRlbSAmJiBpdGVtLmxlbmd0aCA+IDApXG4gICAgICAgIC5yZWR1Y2UoKGFjYywgaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgc3dpdGNoIChpbmRleCkge1xuICAgICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgICAgIHJldHVybiBpdGVtO1xuICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgIHJldHVybiBgJHthY2N9LyR7aXRlbX1gO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gYCR7YWNjfSMke2l0ZW19YDtcbiAgICAgICAgfVxuICAgIH0sIFwiXCIpO1xufTtcbmNvbnN0IGdldFVzZXJBZ2VudE1pZGRsZXdhcmVPcHRpb25zID0ge1xuICAgIG5hbWU6IFwiZ2V0VXNlckFnZW50TWlkZGxld2FyZVwiLFxuICAgIHN0ZXA6IFwiYnVpbGRcIixcbiAgICBwcmlvcml0eTogXCJsb3dcIixcbiAgICB0YWdzOiBbXCJTRVRfVVNFUl9BR0VOVFwiLCBcIlVTRVJfQUdFTlRcIl0sXG4gICAgb3ZlcnJpZGU6IHRydWUsXG59O1xuY29uc3QgZ2V0VXNlckFnZW50UGx1Z2luID0gKGNvbmZpZykgPT4gKHtcbiAgICBhcHBseVRvU3RhY2s6IChjbGllbnRTdGFjaykgPT4ge1xuICAgICAgICBjbGllbnRTdGFjay5hZGQodXNlckFnZW50TWlkZGxld2FyZShjb25maWcpLCBnZXRVc2VyQWdlbnRNaWRkbGV3YXJlT3B0aW9ucyk7XG4gICAgfSxcbn0pO1xuXG5leHBvcnRzLkRFRkFVTFRfVUFfQVBQX0lEID0gREVGQVVMVF9VQV9BUFBfSUQ7XG5leHBvcnRzLmdldFVzZXJBZ2VudE1pZGRsZXdhcmVPcHRpb25zID0gZ2V0VXNlckFnZW50TWlkZGxld2FyZU9wdGlvbnM7XG5leHBvcnRzLmdldFVzZXJBZ2VudFBsdWdpbiA9IGdldFVzZXJBZ2VudFBsdWdpbjtcbmV4cG9ydHMucmVzb2x2ZVVzZXJBZ2VudENvbmZpZyA9IHJlc29sdmVVc2VyQWdlbnRDb25maWc7XG5leHBvcnRzLnVzZXJBZ2VudE1pZGRsZXdhcmUgPSB1c2VyQWdlbnRNaWRkbGV3YXJlO1xuIiwgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5yZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWcgPSBleHBvcnRzLmRlZmF1bHREeW5hbW9EQkh0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSBleHBvcnRzLmRlZmF1bHREeW5hbW9EQkh0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyID0gdm9pZCAwO1xuY29uc3QgY29yZV8xID0gcmVxdWlyZShcIkBhd3Mtc2RrL2NvcmVcIik7XG5jb25zdCB1dGlsX21pZGRsZXdhcmVfMSA9IHJlcXVpcmUoXCJAc21pdGh5L3V0aWwtbWlkZGxld2FyZVwiKTtcbmNvbnN0IGRlZmF1bHREeW5hbW9EQkh0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyID0gYXN5bmMgKGNvbmZpZywgY29udGV4dCwgaW5wdXQpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgICBvcGVyYXRpb246ICgwLCB1dGlsX21pZGRsZXdhcmVfMS5nZXRTbWl0aHlDb250ZXh0KShjb250ZXh0KS5vcGVyYXRpb24sXG4gICAgICAgIHJlZ2lvbjogYXdhaXQgKDAsIHV0aWxfbWlkZGxld2FyZV8xLm5vcm1hbGl6ZVByb3ZpZGVyKShjb25maWcucmVnaW9uKSgpIHx8ICgoKSA9PiB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJleHBlY3RlZCBgcmVnaW9uYCB0byBiZSBjb25maWd1cmVkIGZvciBgYXdzLmF1dGgjc2lndjRgXCIpO1xuICAgICAgICB9KSgpLFxuICAgIH07XG59O1xuZXhwb3J0cy5kZWZhdWx0RHluYW1vREJIdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlciA9IGRlZmF1bHREeW5hbW9EQkh0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyO1xuZnVuY3Rpb24gY3JlYXRlQXdzQXV0aFNpZ3Y0SHR0cEF1dGhPcHRpb24oYXV0aFBhcmFtZXRlcnMpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBzY2hlbWVJZDogXCJhd3MuYXV0aCNzaWd2NFwiLFxuICAgICAgICBzaWduaW5nUHJvcGVydGllczoge1xuICAgICAgICAgICAgbmFtZTogXCJkeW5hbW9kYlwiLFxuICAgICAgICAgICAgcmVnaW9uOiBhdXRoUGFyYW1ldGVycy5yZWdpb24sXG4gICAgICAgIH0sXG4gICAgICAgIHByb3BlcnRpZXNFeHRyYWN0b3I6IChjb25maWcsIGNvbnRleHQpID0+ICh7XG4gICAgICAgICAgICBzaWduaW5nUHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgIGNvbmZpZyxcbiAgICAgICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgfTtcbn1cbmNvbnN0IGRlZmF1bHREeW5hbW9EQkh0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSAoYXV0aFBhcmFtZXRlcnMpID0+IHtcbiAgICBjb25zdCBvcHRpb25zID0gW107XG4gICAgc3dpdGNoIChhdXRoUGFyYW1ldGVycy5vcGVyYXRpb24pIHtcbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgb3B0aW9ucy5wdXNoKGNyZWF0ZUF3c0F1dGhTaWd2NEh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG9wdGlvbnM7XG59O1xuZXhwb3J0cy5kZWZhdWx0RHluYW1vREJIdHRwQXV0aFNjaGVtZVByb3ZpZGVyID0gZGVmYXVsdER5bmFtb0RCSHR0cEF1dGhTY2hlbWVQcm92aWRlcjtcbmNvbnN0IHJlc29sdmVIdHRwQXV0aFNjaGVtZUNvbmZpZyA9IChjb25maWcpID0+IHtcbiAgICBjb25zdCBjb25maWdfMCA9ICgwLCBjb3JlXzEucmVzb2x2ZUF3c1Nka1NpZ1Y0Q29uZmlnKShjb25maWcpO1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKGNvbmZpZ18wLCB7XG4gICAgICAgIGF1dGhTY2hlbWVQcmVmZXJlbmNlOiAoMCwgdXRpbF9taWRkbGV3YXJlXzEubm9ybWFsaXplUHJvdmlkZXIpKGNvbmZpZy5hdXRoU2NoZW1lUHJlZmVyZW5jZSA/PyBbXSksXG4gICAgfSk7XG59O1xuZXhwb3J0cy5yZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWcgPSByZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWc7XG4iLCAie1xuICBcIm5hbWVcIjogXCJAYXdzLXNkay9jbGllbnQtZHluYW1vZGJcIixcbiAgXCJkZXNjcmlwdGlvblwiOiBcIkFXUyBTREsgZm9yIEphdmFTY3JpcHQgRHluYW1vZGIgQ2xpZW50IGZvciBOb2RlLmpzLCBCcm93c2VyIGFuZCBSZWFjdCBOYXRpdmVcIixcbiAgXCJ2ZXJzaW9uXCI6IFwiMy45ODAuMFwiLFxuICBcInNjcmlwdHNcIjoge1xuICAgIFwiYnVpbGRcIjogXCJjb25jdXJyZW50bHkgJ3lhcm46YnVpbGQ6dHlwZXMnICd5YXJuOmJ1aWxkOmVzJyAmJiB5YXJuIGJ1aWxkOmNqc1wiLFxuICAgIFwiYnVpbGQ6Y2pzXCI6IFwibm9kZSAuLi8uLi9zY3JpcHRzL2NvbXBpbGF0aW9uL2lubGluZSBjbGllbnQtZHluYW1vZGJcIixcbiAgICBcImJ1aWxkOmVzXCI6IFwidHNjIC1wIHRzY29uZmlnLmVzLmpzb25cIixcbiAgICBcImJ1aWxkOmluY2x1ZGU6ZGVwc1wiOiBcInlhcm4gZzp0dXJibyBydW4gYnVpbGQgLUY9XFxcIiRucG1fcGFja2FnZV9uYW1lXFxcIlwiLFxuICAgIFwiYnVpbGQ6dHlwZXNcIjogXCJ0c2MgLXAgdHNjb25maWcudHlwZXMuanNvblwiLFxuICAgIFwiYnVpbGQ6dHlwZXM6ZG93bmxldmVsXCI6IFwiZG93bmxldmVsLWR0cyBkaXN0LXR5cGVzIGRpc3QtdHlwZXMvdHMzLjRcIixcbiAgICBcImNsZWFuXCI6IFwicHJlbW92ZSBkaXN0LWNqcyBkaXN0LWVzIGRpc3QtdHlwZXMgdHNjb25maWcuY2pzLnRzYnVpbGRpbmZvIHRzY29uZmlnLmVzLnRzYnVpbGRpbmZvIHRzY29uZmlnLnR5cGVzLnRzYnVpbGRpbmZvXCIsXG4gICAgXCJleHRyYWN0OmRvY3NcIjogXCJhcGktZXh0cmFjdG9yIHJ1biAtLWxvY2FsXCIsXG4gICAgXCJnZW5lcmF0ZTpjbGllbnRcIjogXCJub2RlIC4uLy4uL3NjcmlwdHMvZ2VuZXJhdGUtY2xpZW50cy9zaW5nbGUtc2VydmljZSAtLXNvbG8gZHluYW1vZGJcIixcbiAgICBcInRlc3Q6ZTJlXCI6IFwieWFybiBnOnZpdGVzdCBydW4gLWMgdml0ZXN0LmNvbmZpZy5lMmUubXRzXCIsXG4gICAgXCJ0ZXN0OmUyZTp3YXRjaFwiOiBcInlhcm4gZzp2aXRlc3Qgd2F0Y2ggLWMgdml0ZXN0LmNvbmZpZy5lMmUubXRzXCIsXG4gICAgXCJ0ZXN0OmluZGV4XCI6IFwidHNjIC0tbm9FbWl0IC4vdGVzdC9pbmRleC10eXBlcy50cyAmJiBub2RlIC4vdGVzdC9pbmRleC1vYmplY3RzLnNwZWMubWpzXCJcbiAgfSxcbiAgXCJtYWluXCI6IFwiLi9kaXN0LWNqcy9pbmRleC5qc1wiLFxuICBcInR5cGVzXCI6IFwiLi9kaXN0LXR5cGVzL2luZGV4LmQudHNcIixcbiAgXCJtb2R1bGVcIjogXCIuL2Rpc3QtZXMvaW5kZXguanNcIixcbiAgXCJzaWRlRWZmZWN0c1wiOiBmYWxzZSxcbiAgXCJkZXBlbmRlbmNpZXNcIjoge1xuICAgIFwiQGF3cy1jcnlwdG8vc2hhMjU2LWJyb3dzZXJcIjogXCI1LjIuMFwiLFxuICAgIFwiQGF3cy1jcnlwdG8vc2hhMjU2LWpzXCI6IFwiNS4yLjBcIixcbiAgICBcIkBhd3Mtc2RrL2NvcmVcIjogXCJeMy45NzMuNVwiLFxuICAgIFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlXCI6IFwiXjMuOTcyLjRcIixcbiAgICBcIkBhd3Mtc2RrL2R5bmFtb2RiLWNvZGVjXCI6IFwiXjMuOTcyLjVcIixcbiAgICBcIkBhd3Mtc2RrL21pZGRsZXdhcmUtZW5kcG9pbnQtZGlzY292ZXJ5XCI6IFwiXjMuOTcyLjNcIixcbiAgICBcIkBhd3Mtc2RrL21pZGRsZXdhcmUtaG9zdC1oZWFkZXJcIjogXCJeMy45NzIuM1wiLFxuICAgIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1sb2dnZXJcIjogXCJeMy45NzIuM1wiLFxuICAgIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1yZWN1cnNpb24tZGV0ZWN0aW9uXCI6IFwiXjMuOTcyLjNcIixcbiAgICBcIkBhd3Mtc2RrL21pZGRsZXdhcmUtdXNlci1hZ2VudFwiOiBcIl4zLjk3Mi41XCIsXG4gICAgXCJAYXdzLXNkay9yZWdpb24tY29uZmlnLXJlc29sdmVyXCI6IFwiXjMuOTcyLjNcIixcbiAgICBcIkBhd3Mtc2RrL3R5cGVzXCI6IFwiXjMuOTczLjFcIixcbiAgICBcIkBhd3Mtc2RrL3V0aWwtZW5kcG9pbnRzXCI6IFwiMy45ODAuMFwiLFxuICAgIFwiQGF3cy1zZGsvdXRpbC11c2VyLWFnZW50LWJyb3dzZXJcIjogXCJeMy45NzIuM1wiLFxuICAgIFwiQGF3cy1zZGsvdXRpbC11c2VyLWFnZW50LW5vZGVcIjogXCJeMy45NzIuM1wiLFxuICAgIFwiQHNtaXRoeS9jb25maWctcmVzb2x2ZXJcIjogXCJeNC40LjZcIixcbiAgICBcIkBzbWl0aHkvY29yZVwiOiBcIl4zLjIyLjBcIixcbiAgICBcIkBzbWl0aHkvZmV0Y2gtaHR0cC1oYW5kbGVyXCI6IFwiXjUuMy45XCIsXG4gICAgXCJAc21pdGh5L2hhc2gtbm9kZVwiOiBcIl40LjIuOFwiLFxuICAgIFwiQHNtaXRoeS9pbnZhbGlkLWRlcGVuZGVuY3lcIjogXCJeNC4yLjhcIixcbiAgICBcIkBzbWl0aHkvbWlkZGxld2FyZS1jb250ZW50LWxlbmd0aFwiOiBcIl40LjIuOFwiLFxuICAgIFwiQHNtaXRoeS9taWRkbGV3YXJlLWVuZHBvaW50XCI6IFwiXjQuNC4xMlwiLFxuICAgIFwiQHNtaXRoeS9taWRkbGV3YXJlLXJldHJ5XCI6IFwiXjQuNC4yOVwiLFxuICAgIFwiQHNtaXRoeS9taWRkbGV3YXJlLXNlcmRlXCI6IFwiXjQuMi45XCIsXG4gICAgXCJAc21pdGh5L21pZGRsZXdhcmUtc3RhY2tcIjogXCJeNC4yLjhcIixcbiAgICBcIkBzbWl0aHkvbm9kZS1jb25maWctcHJvdmlkZXJcIjogXCJeNC4zLjhcIixcbiAgICBcIkBzbWl0aHkvbm9kZS1odHRwLWhhbmRsZXJcIjogXCJeNC40LjhcIixcbiAgICBcIkBzbWl0aHkvcHJvdG9jb2wtaHR0cFwiOiBcIl41LjMuOFwiLFxuICAgIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI6IFwiXjQuMTEuMVwiLFxuICAgIFwiQHNtaXRoeS90eXBlc1wiOiBcIl40LjEyLjBcIixcbiAgICBcIkBzbWl0aHkvdXJsLXBhcnNlclwiOiBcIl40LjIuOFwiLFxuICAgIFwiQHNtaXRoeS91dGlsLWJhc2U2NFwiOiBcIl40LjMuMFwiLFxuICAgIFwiQHNtaXRoeS91dGlsLWJvZHktbGVuZ3RoLWJyb3dzZXJcIjogXCJeNC4yLjBcIixcbiAgICBcIkBzbWl0aHkvdXRpbC1ib2R5LWxlbmd0aC1ub2RlXCI6IFwiXjQuMi4xXCIsXG4gICAgXCJAc21pdGh5L3V0aWwtZGVmYXVsdHMtbW9kZS1icm93c2VyXCI6IFwiXjQuMy4yOFwiLFxuICAgIFwiQHNtaXRoeS91dGlsLWRlZmF1bHRzLW1vZGUtbm9kZVwiOiBcIl40LjIuMzFcIixcbiAgICBcIkBzbWl0aHkvdXRpbC1lbmRwb2ludHNcIjogXCJeMy4yLjhcIixcbiAgICBcIkBzbWl0aHkvdXRpbC1taWRkbGV3YXJlXCI6IFwiXjQuMi44XCIsXG4gICAgXCJAc21pdGh5L3V0aWwtcmV0cnlcIjogXCJeNC4yLjhcIixcbiAgICBcIkBzbWl0aHkvdXRpbC11dGY4XCI6IFwiXjQuMi4wXCIsXG4gICAgXCJAc21pdGh5L3V0aWwtd2FpdGVyXCI6IFwiXjQuMi44XCIsXG4gICAgXCJ0c2xpYlwiOiBcIl4yLjYuMlwiXG4gIH0sXG4gIFwiZGV2RGVwZW5kZW5jaWVzXCI6IHtcbiAgICBcIkB0c2NvbmZpZy9ub2RlMjBcIjogXCIyMC4xLjhcIixcbiAgICBcIkB0eXBlcy9ub2RlXCI6IFwiXjIwLjE0LjhcIixcbiAgICBcImNvbmN1cnJlbnRseVwiOiBcIjcuMC4wXCIsXG4gICAgXCJkb3dubGV2ZWwtZHRzXCI6IFwiMC4xMC4xXCIsXG4gICAgXCJwcmVtb3ZlXCI6IFwiNC4wLjBcIixcbiAgICBcInR5cGVzY3JpcHRcIjogXCJ+NS44LjNcIlxuICB9LFxuICBcImVuZ2luZXNcIjoge1xuICAgIFwibm9kZVwiOiBcIj49MjAuMC4wXCJcbiAgfSxcbiAgXCJ0eXBlc1ZlcnNpb25zXCI6IHtcbiAgICBcIjw0LjBcIjoge1xuICAgICAgXCJkaXN0LXR5cGVzLypcIjogW1xuICAgICAgICBcImRpc3QtdHlwZXMvdHMzLjQvKlwiXG4gICAgICBdXG4gICAgfVxuICB9LFxuICBcImZpbGVzXCI6IFtcbiAgICBcImRpc3QtKi8qKlwiXG4gIF0sXG4gIFwiYXV0aG9yXCI6IHtcbiAgICBcIm5hbWVcIjogXCJBV1MgU0RLIGZvciBKYXZhU2NyaXB0IFRlYW1cIixcbiAgICBcInVybFwiOiBcImh0dHBzOi8vYXdzLmFtYXpvbi5jb20vamF2YXNjcmlwdC9cIlxuICB9LFxuICBcImxpY2Vuc2VcIjogXCJBcGFjaGUtMi4wXCIsXG4gIFwiYnJvd3NlclwiOiB7XG4gICAgXCIuL2Rpc3QtZXMvcnVudGltZUNvbmZpZ1wiOiBcIi4vZGlzdC1lcy9ydW50aW1lQ29uZmlnLmJyb3dzZXJcIlxuICB9LFxuICBcInJlYWN0LW5hdGl2ZVwiOiB7XG4gICAgXCIuL2Rpc3QtZXMvcnVudGltZUNvbmZpZ1wiOiBcIi4vZGlzdC1lcy9ydW50aW1lQ29uZmlnLm5hdGl2ZVwiXG4gIH0sXG4gIFwiaG9tZXBhZ2VcIjogXCJodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1zZGstanMtdjMvdHJlZS9tYWluL2NsaWVudHMvY2xpZW50LWR5bmFtb2RiXCIsXG4gIFwicmVwb3NpdG9yeVwiOiB7XG4gICAgXCJ0eXBlXCI6IFwiZ2l0XCIsXG4gICAgXCJ1cmxcIjogXCJodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1zZGstanMtdjMuZ2l0XCIsXG4gICAgXCJkaXJlY3RvcnlcIjogXCJjbGllbnRzL2NsaWVudC1keW5hbW9kYlwiXG4gIH1cbn1cbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBjbGllbnQgPSByZXF1aXJlKCdAYXdzLXNkay9jb3JlL2NsaWVudCcpO1xudmFyIHByb3BlcnR5UHJvdmlkZXIgPSByZXF1aXJlKCdAc21pdGh5L3Byb3BlcnR5LXByb3ZpZGVyJyk7XG5cbmNvbnN0IEVOVl9LRVkgPSBcIkFXU19BQ0NFU1NfS0VZX0lEXCI7XG5jb25zdCBFTlZfU0VDUkVUID0gXCJBV1NfU0VDUkVUX0FDQ0VTU19LRVlcIjtcbmNvbnN0IEVOVl9TRVNTSU9OID0gXCJBV1NfU0VTU0lPTl9UT0tFTlwiO1xuY29uc3QgRU5WX0VYUElSQVRJT04gPSBcIkFXU19DUkVERU5USUFMX0VYUElSQVRJT05cIjtcbmNvbnN0IEVOVl9DUkVERU5USUFMX1NDT1BFID0gXCJBV1NfQ1JFREVOVElBTF9TQ09QRVwiO1xuY29uc3QgRU5WX0FDQ09VTlRfSUQgPSBcIkFXU19BQ0NPVU5UX0lEXCI7XG5jb25zdCBmcm9tRW52ID0gKGluaXQpID0+IGFzeW5jICgpID0+IHtcbiAgICBpbml0Py5sb2dnZXI/LmRlYnVnKFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1lbnYgLSBmcm9tRW52XCIpO1xuICAgIGNvbnN0IGFjY2Vzc0tleUlkID0gcHJvY2Vzcy5lbnZbRU5WX0tFWV07XG4gICAgY29uc3Qgc2VjcmV0QWNjZXNzS2V5ID0gcHJvY2Vzcy5lbnZbRU5WX1NFQ1JFVF07XG4gICAgY29uc3Qgc2Vzc2lvblRva2VuID0gcHJvY2Vzcy5lbnZbRU5WX1NFU1NJT05dO1xuICAgIGNvbnN0IGV4cGlyeSA9IHByb2Nlc3MuZW52W0VOVl9FWFBJUkFUSU9OXTtcbiAgICBjb25zdCBjcmVkZW50aWFsU2NvcGUgPSBwcm9jZXNzLmVudltFTlZfQ1JFREVOVElBTF9TQ09QRV07XG4gICAgY29uc3QgYWNjb3VudElkID0gcHJvY2Vzcy5lbnZbRU5WX0FDQ09VTlRfSURdO1xuICAgIGlmIChhY2Nlc3NLZXlJZCAmJiBzZWNyZXRBY2Nlc3NLZXkpIHtcbiAgICAgICAgY29uc3QgY3JlZGVudGlhbHMgPSB7XG4gICAgICAgICAgICBhY2Nlc3NLZXlJZCxcbiAgICAgICAgICAgIHNlY3JldEFjY2Vzc0tleSxcbiAgICAgICAgICAgIC4uLihzZXNzaW9uVG9rZW4gJiYgeyBzZXNzaW9uVG9rZW4gfSksXG4gICAgICAgICAgICAuLi4oZXhwaXJ5ICYmIHsgZXhwaXJhdGlvbjogbmV3IERhdGUoZXhwaXJ5KSB9KSxcbiAgICAgICAgICAgIC4uLihjcmVkZW50aWFsU2NvcGUgJiYgeyBjcmVkZW50aWFsU2NvcGUgfSksXG4gICAgICAgICAgICAuLi4oYWNjb3VudElkICYmIHsgYWNjb3VudElkIH0pLFxuICAgICAgICB9O1xuICAgICAgICBjbGllbnQuc2V0Q3JlZGVudGlhbEZlYXR1cmUoY3JlZGVudGlhbHMsIFwiQ1JFREVOVElBTFNfRU5WX1ZBUlNcIiwgXCJnXCIpO1xuICAgICAgICByZXR1cm4gY3JlZGVudGlhbHM7XG4gICAgfVxuICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLkNyZWRlbnRpYWxzUHJvdmlkZXJFcnJvcihcIlVuYWJsZSB0byBmaW5kIGVudmlyb25tZW50IHZhcmlhYmxlIGNyZWRlbnRpYWxzLlwiLCB7IGxvZ2dlcjogaW5pdD8ubG9nZ2VyIH0pO1xufTtcblxuZXhwb3J0cy5FTlZfQUNDT1VOVF9JRCA9IEVOVl9BQ0NPVU5UX0lEO1xuZXhwb3J0cy5FTlZfQ1JFREVOVElBTF9TQ09QRSA9IEVOVl9DUkVERU5USUFMX1NDT1BFO1xuZXhwb3J0cy5FTlZfRVhQSVJBVElPTiA9IEVOVl9FWFBJUkFUSU9OO1xuZXhwb3J0cy5FTlZfS0VZID0gRU5WX0tFWTtcbmV4cG9ydHMuRU5WX1NFQ1JFVCA9IEVOVl9TRUNSRVQ7XG5leHBvcnRzLkVOVl9TRVNTSU9OID0gRU5WX1NFU1NJT047XG5leHBvcnRzLmZyb21FbnYgPSBmcm9tRW52O1xuIiwgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5jaGVja1VybCA9IHZvaWQgMDtcbmNvbnN0IHByb3BlcnR5X3Byb3ZpZGVyXzEgPSByZXF1aXJlKFwiQHNtaXRoeS9wcm9wZXJ0eS1wcm92aWRlclwiKTtcbmNvbnN0IExPT1BCQUNLX0NJRFJfSVB2NCA9IFwiMTI3LjAuMC4wLzhcIjtcbmNvbnN0IExPT1BCQUNLX0NJRFJfSVB2NiA9IFwiOjoxLzEyOFwiO1xuY29uc3QgRUNTX0NPTlRBSU5FUl9IT1NUID0gXCIxNjkuMjU0LjE3MC4yXCI7XG5jb25zdCBFS1NfQ09OVEFJTkVSX0hPU1RfSVB2NCA9IFwiMTY5LjI1NC4xNzAuMjNcIjtcbmNvbnN0IEVLU19DT05UQUlORVJfSE9TVF9JUHY2ID0gXCJbZmQwMDplYzI6OjIzXVwiO1xuY29uc3QgY2hlY2tVcmwgPSAodXJsLCBsb2dnZXIpID0+IHtcbiAgICBpZiAodXJsLnByb3RvY29sID09PSBcImh0dHBzOlwiKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHVybC5ob3N0bmFtZSA9PT0gRUNTX0NPTlRBSU5FUl9IT1NUIHx8XG4gICAgICAgIHVybC5ob3N0bmFtZSA9PT0gRUtTX0NPTlRBSU5FUl9IT1NUX0lQdjQgfHxcbiAgICAgICAgdXJsLmhvc3RuYW1lID09PSBFS1NfQ09OVEFJTkVSX0hPU1RfSVB2Nikge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh1cmwuaG9zdG5hbWUuaW5jbHVkZXMoXCJbXCIpKSB7XG4gICAgICAgIGlmICh1cmwuaG9zdG5hbWUgPT09IFwiWzo6MV1cIiB8fCB1cmwuaG9zdG5hbWUgPT09IFwiWzAwMDA6MDAwMDowMDAwOjAwMDA6MDAwMDowMDAwOjAwMDA6MDAwMV1cIikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBpZiAodXJsLmhvc3RuYW1lID09PSBcImxvY2FsaG9zdFwiKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaXBDb21wb25lbnRzID0gdXJsLmhvc3RuYW1lLnNwbGl0KFwiLlwiKTtcbiAgICAgICAgY29uc3QgaW5SYW5nZSA9IChjb21wb25lbnQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG51bSA9IHBhcnNlSW50KGNvbXBvbmVudCwgMTApO1xuICAgICAgICAgICAgcmV0dXJuIDAgPD0gbnVtICYmIG51bSA8PSAyNTU7XG4gICAgICAgIH07XG4gICAgICAgIGlmIChpcENvbXBvbmVudHNbMF0gPT09IFwiMTI3XCIgJiZcbiAgICAgICAgICAgIGluUmFuZ2UoaXBDb21wb25lbnRzWzFdKSAmJlxuICAgICAgICAgICAgaW5SYW5nZShpcENvbXBvbmVudHNbMl0pICYmXG4gICAgICAgICAgICBpblJhbmdlKGlwQ29tcG9uZW50c1szXSkgJiZcbiAgICAgICAgICAgIGlwQ29tcG9uZW50cy5sZW5ndGggPT09IDQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgIH1cbiAgICB0aHJvdyBuZXcgcHJvcGVydHlfcHJvdmlkZXJfMS5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoYFVSTCBub3QgYWNjZXB0ZWQuIEl0IG11c3QgZWl0aGVyIGJlIEhUVFBTIG9yIG1hdGNoIG9uZSBvZiB0aGUgZm9sbG93aW5nOlxuICAtIGxvb3BiYWNrIENJRFIgMTI3LjAuMC4wLzggb3IgWzo6MS8xMjhdXG4gIC0gRUNTIGNvbnRhaW5lciBob3N0IDE2OS4yNTQuMTcwLjJcbiAgLSBFS1MgY29udGFpbmVyIGhvc3QgMTY5LjI1NC4xNzAuMjMgb3IgW2ZkMDA6ZWMyOjoyM11gLCB7IGxvZ2dlciB9KTtcbn07XG5leHBvcnRzLmNoZWNrVXJsID0gY2hlY2tVcmw7XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmNyZWF0ZUdldFJlcXVlc3QgPSBjcmVhdGVHZXRSZXF1ZXN0O1xuZXhwb3J0cy5nZXRDcmVkZW50aWFscyA9IGdldENyZWRlbnRpYWxzO1xuY29uc3QgcHJvcGVydHlfcHJvdmlkZXJfMSA9IHJlcXVpcmUoXCJAc21pdGh5L3Byb3BlcnR5LXByb3ZpZGVyXCIpO1xuY29uc3QgcHJvdG9jb2xfaHR0cF8xID0gcmVxdWlyZShcIkBzbWl0aHkvcHJvdG9jb2wtaHR0cFwiKTtcbmNvbnN0IHNtaXRoeV9jbGllbnRfMSA9IHJlcXVpcmUoXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIik7XG5jb25zdCB1dGlsX3N0cmVhbV8xID0gcmVxdWlyZShcIkBzbWl0aHkvdXRpbC1zdHJlYW1cIik7XG5mdW5jdGlvbiBjcmVhdGVHZXRSZXF1ZXN0KHVybCkge1xuICAgIHJldHVybiBuZXcgcHJvdG9jb2xfaHR0cF8xLkh0dHBSZXF1ZXN0KHtcbiAgICAgICAgcHJvdG9jb2w6IHVybC5wcm90b2NvbCxcbiAgICAgICAgaG9zdG5hbWU6IHVybC5ob3N0bmFtZSxcbiAgICAgICAgcG9ydDogTnVtYmVyKHVybC5wb3J0KSxcbiAgICAgICAgcGF0aDogdXJsLnBhdGhuYW1lLFxuICAgICAgICBxdWVyeTogQXJyYXkuZnJvbSh1cmwuc2VhcmNoUGFyYW1zLmVudHJpZXMoKSkucmVkdWNlKChhY2MsIFtrLCB2XSkgPT4ge1xuICAgICAgICAgICAgYWNjW2tdID0gdjtcbiAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH0sIHt9KSxcbiAgICAgICAgZnJhZ21lbnQ6IHVybC5oYXNoLFxuICAgIH0pO1xufVxuYXN5bmMgZnVuY3Rpb24gZ2V0Q3JlZGVudGlhbHMocmVzcG9uc2UsIGxvZ2dlcikge1xuICAgIGNvbnN0IHN0cmVhbSA9ICgwLCB1dGlsX3N0cmVhbV8xLnNka1N0cmVhbU1peGluKShyZXNwb25zZS5ib2R5KTtcbiAgICBjb25zdCBzdHIgPSBhd2FpdCBzdHJlYW0udHJhbnNmb3JtVG9TdHJpbmcoKTtcbiAgICBpZiAocmVzcG9uc2Uuc3RhdHVzQ29kZSA9PT0gMjAwKSB7XG4gICAgICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2Uoc3RyKTtcbiAgICAgICAgaWYgKHR5cGVvZiBwYXJzZWQuQWNjZXNzS2V5SWQgIT09IFwic3RyaW5nXCIgfHxcbiAgICAgICAgICAgIHR5cGVvZiBwYXJzZWQuU2VjcmV0QWNjZXNzS2V5ICE9PSBcInN0cmluZ1wiIHx8XG4gICAgICAgICAgICB0eXBlb2YgcGFyc2VkLlRva2VuICE9PSBcInN0cmluZ1wiIHx8XG4gICAgICAgICAgICB0eXBlb2YgcGFyc2VkLkV4cGlyYXRpb24gIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eV9wcm92aWRlcl8xLkNyZWRlbnRpYWxzUHJvdmlkZXJFcnJvcihcIkhUVFAgY3JlZGVudGlhbCBwcm92aWRlciByZXNwb25zZSBub3Qgb2YgdGhlIHJlcXVpcmVkIGZvcm1hdCwgYW4gb2JqZWN0IG1hdGNoaW5nOiBcIiArXG4gICAgICAgICAgICAgICAgXCJ7IEFjY2Vzc0tleUlkOiBzdHJpbmcsIFNlY3JldEFjY2Vzc0tleTogc3RyaW5nLCBUb2tlbjogc3RyaW5nLCBFeHBpcmF0aW9uOiBzdHJpbmcocmZjMzMzOSkgfVwiLCB7IGxvZ2dlciB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgYWNjZXNzS2V5SWQ6IHBhcnNlZC5BY2Nlc3NLZXlJZCxcbiAgICAgICAgICAgIHNlY3JldEFjY2Vzc0tleTogcGFyc2VkLlNlY3JldEFjY2Vzc0tleSxcbiAgICAgICAgICAgIHNlc3Npb25Ub2tlbjogcGFyc2VkLlRva2VuLFxuICAgICAgICAgICAgZXhwaXJhdGlvbjogKDAsIHNtaXRoeV9jbGllbnRfMS5wYXJzZVJmYzMzMzlEYXRlVGltZSkocGFyc2VkLkV4cGlyYXRpb24pLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBpZiAocmVzcG9uc2Uuc3RhdHVzQ29kZSA+PSA0MDAgJiYgcmVzcG9uc2Uuc3RhdHVzQ29kZSA8IDUwMCkge1xuICAgICAgICBsZXQgcGFyc2VkQm9keSA9IHt9O1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcGFyc2VkQm9keSA9IEpTT04ucGFyc2Uoc3RyKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkgeyB9XG4gICAgICAgIHRocm93IE9iamVjdC5hc3NpZ24obmV3IHByb3BlcnR5X3Byb3ZpZGVyXzEuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKGBTZXJ2ZXIgcmVzcG9uZGVkIHdpdGggc3RhdHVzOiAke3Jlc3BvbnNlLnN0YXR1c0NvZGV9YCwgeyBsb2dnZXIgfSksIHtcbiAgICAgICAgICAgIENvZGU6IHBhcnNlZEJvZHkuQ29kZSxcbiAgICAgICAgICAgIE1lc3NhZ2U6IHBhcnNlZEJvZHkuTWVzc2FnZSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHRocm93IG5ldyBwcm9wZXJ0eV9wcm92aWRlcl8xLkNyZWRlbnRpYWxzUHJvdmlkZXJFcnJvcihgU2VydmVyIHJlc3BvbmRlZCB3aXRoIHN0YXR1czogJHtyZXNwb25zZS5zdGF0dXNDb2RlfWAsIHsgbG9nZ2VyIH0pO1xufVxuIiwgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5yZXRyeVdyYXBwZXIgPSB2b2lkIDA7XG5jb25zdCByZXRyeVdyYXBwZXIgPSAodG9SZXRyeSwgbWF4UmV0cmllcywgZGVsYXlNcykgPT4ge1xuICAgIHJldHVybiBhc3luYyAoKSA9PiB7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWF4UmV0cmllczsgKytpKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHJldHVybiBhd2FpdCB0b1JldHJ5KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIGRlbGF5TXMpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYXdhaXQgdG9SZXRyeSgpO1xuICAgIH07XG59O1xuZXhwb3J0cy5yZXRyeVdyYXBwZXIgPSByZXRyeVdyYXBwZXI7XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmZyb21IdHRwID0gdm9pZCAwO1xuY29uc3QgdHNsaWJfMSA9IHJlcXVpcmUoXCJ0c2xpYlwiKTtcbmNvbnN0IGNsaWVudF8xID0gcmVxdWlyZShcIkBhd3Mtc2RrL2NvcmUvY2xpZW50XCIpO1xuY29uc3Qgbm9kZV9odHRwX2hhbmRsZXJfMSA9IHJlcXVpcmUoXCJAc21pdGh5L25vZGUtaHR0cC1oYW5kbGVyXCIpO1xuY29uc3QgcHJvcGVydHlfcHJvdmlkZXJfMSA9IHJlcXVpcmUoXCJAc21pdGh5L3Byb3BlcnR5LXByb3ZpZGVyXCIpO1xuY29uc3QgcHJvbWlzZXNfMSA9IHRzbGliXzEuX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJmcy9wcm9taXNlc1wiKSk7XG5jb25zdCBjaGVja1VybF8xID0gcmVxdWlyZShcIi4vY2hlY2tVcmxcIik7XG5jb25zdCByZXF1ZXN0SGVscGVyc18xID0gcmVxdWlyZShcIi4vcmVxdWVzdEhlbHBlcnNcIik7XG5jb25zdCByZXRyeV93cmFwcGVyXzEgPSByZXF1aXJlKFwiLi9yZXRyeS13cmFwcGVyXCIpO1xuY29uc3QgQVdTX0NPTlRBSU5FUl9DUkVERU5USUFMU19SRUxBVElWRV9VUkkgPSBcIkFXU19DT05UQUlORVJfQ1JFREVOVElBTFNfUkVMQVRJVkVfVVJJXCI7XG5jb25zdCBERUZBVUxUX0xJTktfTE9DQUxfSE9TVCA9IFwiaHR0cDovLzE2OS4yNTQuMTcwLjJcIjtcbmNvbnN0IEFXU19DT05UQUlORVJfQ1JFREVOVElBTFNfRlVMTF9VUkkgPSBcIkFXU19DT05UQUlORVJfQ1JFREVOVElBTFNfRlVMTF9VUklcIjtcbmNvbnN0IEFXU19DT05UQUlORVJfQVVUSE9SSVpBVElPTl9UT0tFTl9GSUxFID0gXCJBV1NfQ09OVEFJTkVSX0FVVEhPUklaQVRJT05fVE9LRU5fRklMRVwiO1xuY29uc3QgQVdTX0NPTlRBSU5FUl9BVVRIT1JJWkFUSU9OX1RPS0VOID0gXCJBV1NfQ09OVEFJTkVSX0FVVEhPUklaQVRJT05fVE9LRU5cIjtcbmNvbnN0IGZyb21IdHRwID0gKG9wdGlvbnMgPSB7fSkgPT4ge1xuICAgIG9wdGlvbnMubG9nZ2VyPy5kZWJ1ZyhcIkBhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItaHR0cCAtIGZyb21IdHRwXCIpO1xuICAgIGxldCBob3N0O1xuICAgIGNvbnN0IHJlbGF0aXZlID0gb3B0aW9ucy5hd3NDb250YWluZXJDcmVkZW50aWFsc1JlbGF0aXZlVXJpID8/IHByb2Nlc3MuZW52W0FXU19DT05UQUlORVJfQ1JFREVOVElBTFNfUkVMQVRJVkVfVVJJXTtcbiAgICBjb25zdCBmdWxsID0gb3B0aW9ucy5hd3NDb250YWluZXJDcmVkZW50aWFsc0Z1bGxVcmkgPz8gcHJvY2Vzcy5lbnZbQVdTX0NPTlRBSU5FUl9DUkVERU5USUFMU19GVUxMX1VSSV07XG4gICAgY29uc3QgdG9rZW4gPSBvcHRpb25zLmF3c0NvbnRhaW5lckF1dGhvcml6YXRpb25Ub2tlbiA/PyBwcm9jZXNzLmVudltBV1NfQ09OVEFJTkVSX0FVVEhPUklaQVRJT05fVE9LRU5dO1xuICAgIGNvbnN0IHRva2VuRmlsZSA9IG9wdGlvbnMuYXdzQ29udGFpbmVyQXV0aG9yaXphdGlvblRva2VuRmlsZSA/PyBwcm9jZXNzLmVudltBV1NfQ09OVEFJTkVSX0FVVEhPUklaQVRJT05fVE9LRU5fRklMRV07XG4gICAgY29uc3Qgd2FybiA9IG9wdGlvbnMubG9nZ2VyPy5jb25zdHJ1Y3Rvcj8ubmFtZSA9PT0gXCJOb09wTG9nZ2VyXCIgfHwgIW9wdGlvbnMubG9nZ2VyPy53YXJuXG4gICAgICAgID8gY29uc29sZS53YXJuXG4gICAgICAgIDogb3B0aW9ucy5sb2dnZXIud2Fybi5iaW5kKG9wdGlvbnMubG9nZ2VyKTtcbiAgICBpZiAocmVsYXRpdmUgJiYgZnVsbCkge1xuICAgICAgICB3YXJuKFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1odHRwOiBcIiArXG4gICAgICAgICAgICBcInlvdSBoYXZlIHNldCBib3RoIGF3c0NvbnRhaW5lckNyZWRlbnRpYWxzUmVsYXRpdmVVcmkgYW5kIGF3c0NvbnRhaW5lckNyZWRlbnRpYWxzRnVsbFVyaS5cIik7XG4gICAgICAgIHdhcm4oXCJhd3NDb250YWluZXJDcmVkZW50aWFsc0Z1bGxVcmkgd2lsbCB0YWtlIHByZWNlZGVuY2UuXCIpO1xuICAgIH1cbiAgICBpZiAodG9rZW4gJiYgdG9rZW5GaWxlKSB7XG4gICAgICAgIHdhcm4oXCJAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLWh0dHA6IFwiICtcbiAgICAgICAgICAgIFwieW91IGhhdmUgc2V0IGJvdGggYXdzQ29udGFpbmVyQXV0aG9yaXphdGlvblRva2VuIGFuZCBhd3NDb250YWluZXJBdXRob3JpemF0aW9uVG9rZW5GaWxlLlwiKTtcbiAgICAgICAgd2FybihcImF3c0NvbnRhaW5lckF1dGhvcml6YXRpb25Ub2tlbiB3aWxsIHRha2UgcHJlY2VkZW5jZS5cIik7XG4gICAgfVxuICAgIGlmIChmdWxsKSB7XG4gICAgICAgIGhvc3QgPSBmdWxsO1xuICAgIH1cbiAgICBlbHNlIGlmIChyZWxhdGl2ZSkge1xuICAgICAgICBob3N0ID0gYCR7REVGQVVMVF9MSU5LX0xPQ0FMX0hPU1R9JHtyZWxhdGl2ZX1gO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5X3Byb3ZpZGVyXzEuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKGBObyBIVFRQIGNyZWRlbnRpYWwgcHJvdmlkZXIgaG9zdCBwcm92aWRlZC5cblNldCBBV1NfQ09OVEFJTkVSX0NSRURFTlRJQUxTX0ZVTExfVVJJIG9yIEFXU19DT05UQUlORVJfQ1JFREVOVElBTFNfUkVMQVRJVkVfVVJJLmAsIHsgbG9nZ2VyOiBvcHRpb25zLmxvZ2dlciB9KTtcbiAgICB9XG4gICAgY29uc3QgdXJsID0gbmV3IFVSTChob3N0KTtcbiAgICAoMCwgY2hlY2tVcmxfMS5jaGVja1VybCkodXJsLCBvcHRpb25zLmxvZ2dlcik7XG4gICAgY29uc3QgcmVxdWVzdEhhbmRsZXIgPSBub2RlX2h0dHBfaGFuZGxlcl8xLk5vZGVIdHRwSGFuZGxlci5jcmVhdGUoe1xuICAgICAgICByZXF1ZXN0VGltZW91dDogb3B0aW9ucy50aW1lb3V0ID8/IDEwMDAsXG4gICAgICAgIGNvbm5lY3Rpb25UaW1lb3V0OiBvcHRpb25zLnRpbWVvdXQgPz8gMTAwMCxcbiAgICB9KTtcbiAgICByZXR1cm4gKDAsIHJldHJ5X3dyYXBwZXJfMS5yZXRyeVdyYXBwZXIpKGFzeW5jICgpID0+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgwLCByZXF1ZXN0SGVscGVyc18xLmNyZWF0ZUdldFJlcXVlc3QpKHVybCk7XG4gICAgICAgIGlmICh0b2tlbikge1xuICAgICAgICAgICAgcmVxdWVzdC5oZWFkZXJzLkF1dGhvcml6YXRpb24gPSB0b2tlbjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0b2tlbkZpbGUpIHtcbiAgICAgICAgICAgIHJlcXVlc3QuaGVhZGVycy5BdXRob3JpemF0aW9uID0gKGF3YWl0IHByb21pc2VzXzEuZGVmYXVsdC5yZWFkRmlsZSh0b2tlbkZpbGUpKS50b1N0cmluZygpO1xuICAgICAgICB9XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZXF1ZXN0SGFuZGxlci5oYW5kbGUocmVxdWVzdCk7XG4gICAgICAgICAgICByZXR1cm4gKDAsIHJlcXVlc3RIZWxwZXJzXzEuZ2V0Q3JlZGVudGlhbHMpKHJlc3VsdC5yZXNwb25zZSkudGhlbigoY3JlZHMpID0+ICgwLCBjbGllbnRfMS5zZXRDcmVkZW50aWFsRmVhdHVyZSkoY3JlZHMsIFwiQ1JFREVOVElBTFNfSFRUUFwiLCBcInpcIikpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlfcHJvdmlkZXJfMS5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoU3RyaW5nKGUpLCB7IGxvZ2dlcjogb3B0aW9ucy5sb2dnZXIgfSk7XG4gICAgICAgIH1cbiAgICB9LCBvcHRpb25zLm1heFJldHJpZXMgPz8gMywgb3B0aW9ucy50aW1lb3V0ID8/IDEwMDApO1xufTtcbmV4cG9ydHMuZnJvbUh0dHAgPSBmcm9tSHR0cDtcbiIsICJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuZnJvbUh0dHAgPSB2b2lkIDA7XG52YXIgZnJvbUh0dHBfMSA9IHJlcXVpcmUoXCIuL2Zyb21IdHRwL2Zyb21IdHRwXCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiZnJvbUh0dHBcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGZyb21IdHRwXzEuZnJvbUh0dHA7IH0gfSk7XG4iLCAiaW1wb3J0IHsgcmVzb2x2ZUF3c1Nka1NpZ1Y0Q29uZmlnIH0gZnJvbSBcIkBhd3Mtc2RrL2NvcmVcIjtcbmltcG9ydCB7IGdldFNtaXRoeUNvbnRleHQsIG5vcm1hbGl6ZVByb3ZpZGVyIH0gZnJvbSBcIkBzbWl0aHkvdXRpbC1taWRkbGV3YXJlXCI7XG5leHBvcnQgY29uc3QgZGVmYXVsdFNTT09JRENIdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlciA9IGFzeW5jIChjb25maWcsIGNvbnRleHQsIGlucHV0KSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgb3BlcmF0aW9uOiBnZXRTbWl0aHlDb250ZXh0KGNvbnRleHQpLm9wZXJhdGlvbixcbiAgICAgICAgcmVnaW9uOiAoYXdhaXQgbm9ybWFsaXplUHJvdmlkZXIoY29uZmlnLnJlZ2lvbikoKSkgfHxcbiAgICAgICAgICAgICgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiZXhwZWN0ZWQgYHJlZ2lvbmAgdG8gYmUgY29uZmlndXJlZCBmb3IgYGF3cy5hdXRoI3NpZ3Y0YFwiKTtcbiAgICAgICAgICAgIH0pKCksXG4gICAgfTtcbn07XG5mdW5jdGlvbiBjcmVhdGVBd3NBdXRoU2lndjRIdHRwQXV0aE9wdGlvbihhdXRoUGFyYW1ldGVycykge1xuICAgIHJldHVybiB7XG4gICAgICAgIHNjaGVtZUlkOiBcImF3cy5hdXRoI3NpZ3Y0XCIsXG4gICAgICAgIHNpZ25pbmdQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICBuYW1lOiBcInNzby1vYXV0aFwiLFxuICAgICAgICAgICAgcmVnaW9uOiBhdXRoUGFyYW1ldGVycy5yZWdpb24sXG4gICAgICAgIH0sXG4gICAgICAgIHByb3BlcnRpZXNFeHRyYWN0b3I6IChjb25maWcsIGNvbnRleHQpID0+ICh7XG4gICAgICAgICAgICBzaWduaW5nUHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgIGNvbmZpZyxcbiAgICAgICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgfTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVNtaXRoeUFwaU5vQXV0aEh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc2NoZW1lSWQ6IFwic21pdGh5LmFwaSNub0F1dGhcIixcbiAgICB9O1xufVxuZXhwb3J0IGNvbnN0IGRlZmF1bHRTU09PSURDSHR0cEF1dGhTY2hlbWVQcm92aWRlciA9IChhdXRoUGFyYW1ldGVycykgPT4ge1xuICAgIGNvbnN0IG9wdGlvbnMgPSBbXTtcbiAgICBzd2l0Y2ggKGF1dGhQYXJhbWV0ZXJzLm9wZXJhdGlvbikge1xuICAgICAgICBjYXNlIFwiQ3JlYXRlVG9rZW5cIjoge1xuICAgICAgICAgICAgb3B0aW9ucy5wdXNoKGNyZWF0ZVNtaXRoeUFwaU5vQXV0aEh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICBvcHRpb25zLnB1c2goY3JlYXRlQXdzQXV0aFNpZ3Y0SHR0cEF1dGhPcHRpb24oYXV0aFBhcmFtZXRlcnMpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gb3B0aW9ucztcbn07XG5leHBvcnQgY29uc3QgcmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIGNvbnN0IGNvbmZpZ18wID0gcmVzb2x2ZUF3c1Nka1NpZ1Y0Q29uZmlnKGNvbmZpZyk7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oY29uZmlnXzAsIHtcbiAgICAgICAgYXV0aFNjaGVtZVByZWZlcmVuY2U6IG5vcm1hbGl6ZVByb3ZpZGVyKGNvbmZpZy5hdXRoU2NoZW1lUHJlZmVyZW5jZSA/PyBbXSksXG4gICAgfSk7XG59O1xuIiwgImV4cG9ydCBjb25zdCByZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzID0gKG9wdGlvbnMpID0+IHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihvcHRpb25zLCB7XG4gICAgICAgIHVzZUR1YWxzdGFja0VuZHBvaW50OiBvcHRpb25zLnVzZUR1YWxzdGFja0VuZHBvaW50ID8/IGZhbHNlLFxuICAgICAgICB1c2VGaXBzRW5kcG9pbnQ6IG9wdGlvbnMudXNlRmlwc0VuZHBvaW50ID8/IGZhbHNlLFxuICAgICAgICBkZWZhdWx0U2lnbmluZ05hbWU6IFwic3NvLW9hdXRoXCIsXG4gICAgfSk7XG59O1xuZXhwb3J0IGNvbnN0IGNvbW1vblBhcmFtcyA9IHtcbiAgICBVc2VGSVBTOiB7IHR5cGU6IFwiYnVpbHRJblBhcmFtc1wiLCBuYW1lOiBcInVzZUZpcHNFbmRwb2ludFwiIH0sXG4gICAgRW5kcG9pbnQ6IHsgdHlwZTogXCJidWlsdEluUGFyYW1zXCIsIG5hbWU6IFwiZW5kcG9pbnRcIiB9LFxuICAgIFJlZ2lvbjogeyB0eXBlOiBcImJ1aWx0SW5QYXJhbXNcIiwgbmFtZTogXCJyZWdpb25cIiB9LFxuICAgIFVzZUR1YWxTdGFjazogeyB0eXBlOiBcImJ1aWx0SW5QYXJhbXNcIiwgbmFtZTogXCJ1c2VEdWFsc3RhY2tFbmRwb2ludFwiIH0sXG59O1xuIiwgIntcbiAgXCJuYW1lXCI6IFwiQGF3cy1zZGsvbmVzdGVkLWNsaWVudHNcIixcbiAgXCJ2ZXJzaW9uXCI6IFwiMy45OTYuMFwiLFxuICBcImRlc2NyaXB0aW9uXCI6IFwiTmVzdGVkIGNsaWVudHMgZm9yIEFXUyBTREsgcGFja2FnZXMuXCIsXG4gIFwibWFpblwiOiBcIi4vZGlzdC1janMvaW5kZXguanNcIixcbiAgXCJtb2R1bGVcIjogXCIuL2Rpc3QtZXMvaW5kZXguanNcIixcbiAgXCJ0eXBlc1wiOiBcIi4vZGlzdC10eXBlcy9pbmRleC5kLnRzXCIsXG4gIFwic2NyaXB0c1wiOiB7XG4gICAgXCJidWlsZFwiOiBcInlhcm4gbGludCAmJiBjb25jdXJyZW50bHkgJ3lhcm46YnVpbGQ6dHlwZXMnICd5YXJuOmJ1aWxkOmVzJyAmJiB5YXJuIGJ1aWxkOmNqc1wiLFxuICAgIFwiYnVpbGQ6Y2pzXCI6IFwibm9kZSAuLi8uLi9zY3JpcHRzL2NvbXBpbGF0aW9uL2lubGluZSBuZXN0ZWQtY2xpZW50c1wiLFxuICAgIFwiYnVpbGQ6ZXNcIjogXCJ0c2MgLXAgdHNjb25maWcuZXMuanNvblwiLFxuICAgIFwiYnVpbGQ6aW5jbHVkZTpkZXBzXCI6IFwieWFybiBnOnR1cmJvIHJ1biBidWlsZCAtRj1cXFwiJG5wbV9wYWNrYWdlX25hbWVcXFwiXCIsXG4gICAgXCJidWlsZDp0eXBlc1wiOiBcInRzYyAtcCB0c2NvbmZpZy50eXBlcy5qc29uXCIsXG4gICAgXCJidWlsZDp0eXBlczpkb3dubGV2ZWxcIjogXCJkb3dubGV2ZWwtZHRzIGRpc3QtdHlwZXMgZGlzdC10eXBlcy90czMuNFwiLFxuICAgIFwiY2xlYW5cIjogXCJwcmVtb3ZlIGRpc3QtY2pzIGRpc3QtZXMgZGlzdC10eXBlcyB0c2NvbmZpZy5janMudHNidWlsZGluZm8gdHNjb25maWcuZXMudHNidWlsZGluZm8gdHNjb25maWcudHlwZXMudHNidWlsZGluZm9cIixcbiAgICBcImxpbnRcIjogXCJub2RlIC4uLy4uL3NjcmlwdHMvdmFsaWRhdGlvbi9zdWJtb2R1bGVzLWxpbnRlci5qcyAtLXBrZyBuZXN0ZWQtY2xpZW50c1wiLFxuICAgIFwidGVzdFwiOiBcInlhcm4gZzp2aXRlc3QgcnVuXCIsXG4gICAgXCJ0ZXN0OndhdGNoXCI6IFwieWFybiBnOnZpdGVzdCB3YXRjaFwiXG4gIH0sXG4gIFwiZW5naW5lc1wiOiB7XG4gICAgXCJub2RlXCI6IFwiPj0yMC4wLjBcIlxuICB9LFxuICBcInNpZGVFZmZlY3RzXCI6IGZhbHNlLFxuICBcImF1dGhvclwiOiB7XG4gICAgXCJuYW1lXCI6IFwiQVdTIFNESyBmb3IgSmF2YVNjcmlwdCBUZWFtXCIsXG4gICAgXCJ1cmxcIjogXCJodHRwczovL2F3cy5hbWF6b24uY29tL2phdmFzY3JpcHQvXCJcbiAgfSxcbiAgXCJsaWNlbnNlXCI6IFwiQXBhY2hlLTIuMFwiLFxuICBcImRlcGVuZGVuY2llc1wiOiB7XG4gICAgXCJAYXdzLWNyeXB0by9zaGEyNTYtYnJvd3NlclwiOiBcIjUuMi4wXCIsXG4gICAgXCJAYXdzLWNyeXB0by9zaGEyNTYtanNcIjogXCI1LjIuMFwiLFxuICAgIFwiQGF3cy1zZGsvY29yZVwiOiBcIl4zLjk3My4xMlwiLFxuICAgIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1ob3N0LWhlYWRlclwiOiBcIl4zLjk3Mi4zXCIsXG4gICAgXCJAYXdzLXNkay9taWRkbGV3YXJlLWxvZ2dlclwiOiBcIl4zLjk3Mi4zXCIsXG4gICAgXCJAYXdzLXNkay9taWRkbGV3YXJlLXJlY3Vyc2lvbi1kZXRlY3Rpb25cIjogXCJeMy45NzIuM1wiLFxuICAgIFwiQGF3cy1zZGsvbWlkZGxld2FyZS11c2VyLWFnZW50XCI6IFwiXjMuOTcyLjEyXCIsXG4gICAgXCJAYXdzLXNkay9yZWdpb24tY29uZmlnLXJlc29sdmVyXCI6IFwiXjMuOTcyLjNcIixcbiAgICBcIkBhd3Mtc2RrL3R5cGVzXCI6IFwiXjMuOTczLjFcIixcbiAgICBcIkBhd3Mtc2RrL3V0aWwtZW5kcG9pbnRzXCI6IFwiMy45OTYuMFwiLFxuICAgIFwiQGF3cy1zZGsvdXRpbC11c2VyLWFnZW50LWJyb3dzZXJcIjogXCJeMy45NzIuM1wiLFxuICAgIFwiQGF3cy1zZGsvdXRpbC11c2VyLWFnZW50LW5vZGVcIjogXCJeMy45NzIuMTFcIixcbiAgICBcIkBzbWl0aHkvY29uZmlnLXJlc29sdmVyXCI6IFwiXjQuNC42XCIsXG4gICAgXCJAc21pdGh5L2NvcmVcIjogXCJeMy4yMy4yXCIsXG4gICAgXCJAc21pdGh5L2ZldGNoLWh0dHAtaGFuZGxlclwiOiBcIl41LjMuOVwiLFxuICAgIFwiQHNtaXRoeS9oYXNoLW5vZGVcIjogXCJeNC4yLjhcIixcbiAgICBcIkBzbWl0aHkvaW52YWxpZC1kZXBlbmRlbmN5XCI6IFwiXjQuMi44XCIsXG4gICAgXCJAc21pdGh5L21pZGRsZXdhcmUtY29udGVudC1sZW5ndGhcIjogXCJeNC4yLjhcIixcbiAgICBcIkBzbWl0aHkvbWlkZGxld2FyZS1lbmRwb2ludFwiOiBcIl40LjQuMTZcIixcbiAgICBcIkBzbWl0aHkvbWlkZGxld2FyZS1yZXRyeVwiOiBcIl40LjQuMzNcIixcbiAgICBcIkBzbWl0aHkvbWlkZGxld2FyZS1zZXJkZVwiOiBcIl40LjIuOVwiLFxuICAgIFwiQHNtaXRoeS9taWRkbGV3YXJlLXN0YWNrXCI6IFwiXjQuMi44XCIsXG4gICAgXCJAc21pdGh5L25vZGUtY29uZmlnLXByb3ZpZGVyXCI6IFwiXjQuMy44XCIsXG4gICAgXCJAc21pdGh5L25vZGUtaHR0cC1oYW5kbGVyXCI6IFwiXjQuNC4xMFwiLFxuICAgIFwiQHNtaXRoeS9wcm90b2NvbC1odHRwXCI6IFwiXjUuMy44XCIsXG4gICAgXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjogXCJeNC4xMS41XCIsXG4gICAgXCJAc21pdGh5L3R5cGVzXCI6IFwiXjQuMTIuMFwiLFxuICAgIFwiQHNtaXRoeS91cmwtcGFyc2VyXCI6IFwiXjQuMi44XCIsXG4gICAgXCJAc21pdGh5L3V0aWwtYmFzZTY0XCI6IFwiXjQuMy4wXCIsXG4gICAgXCJAc21pdGh5L3V0aWwtYm9keS1sZW5ndGgtYnJvd3NlclwiOiBcIl40LjIuMFwiLFxuICAgIFwiQHNtaXRoeS91dGlsLWJvZHktbGVuZ3RoLW5vZGVcIjogXCJeNC4yLjFcIixcbiAgICBcIkBzbWl0aHkvdXRpbC1kZWZhdWx0cy1tb2RlLWJyb3dzZXJcIjogXCJeNC4zLjMyXCIsXG4gICAgXCJAc21pdGh5L3V0aWwtZGVmYXVsdHMtbW9kZS1ub2RlXCI6IFwiXjQuMi4zNVwiLFxuICAgIFwiQHNtaXRoeS91dGlsLWVuZHBvaW50c1wiOiBcIl4zLjIuOFwiLFxuICAgIFwiQHNtaXRoeS91dGlsLW1pZGRsZXdhcmVcIjogXCJeNC4yLjhcIixcbiAgICBcIkBzbWl0aHkvdXRpbC1yZXRyeVwiOiBcIl40LjIuOFwiLFxuICAgIFwiQHNtaXRoeS91dGlsLXV0ZjhcIjogXCJeNC4yLjBcIixcbiAgICBcInRzbGliXCI6IFwiXjIuNi4yXCJcbiAgfSxcbiAgXCJkZXZEZXBlbmRlbmNpZXNcIjoge1xuICAgIFwiY29uY3VycmVudGx5XCI6IFwiNy4wLjBcIixcbiAgICBcImRvd25sZXZlbC1kdHNcIjogXCIwLjEwLjFcIixcbiAgICBcInByZW1vdmVcIjogXCI0LjAuMFwiLFxuICAgIFwidHlwZXNjcmlwdFwiOiBcIn41LjguM1wiXG4gIH0sXG4gIFwidHlwZXNWZXJzaW9uc1wiOiB7XG4gICAgXCI8NC4wXCI6IHtcbiAgICAgIFwiZGlzdC10eXBlcy8qXCI6IFtcbiAgICAgICAgXCJkaXN0LXR5cGVzL3RzMy40LypcIlxuICAgICAgXVxuICAgIH1cbiAgfSxcbiAgXCJmaWxlc1wiOiBbXG4gICAgXCIuL3NpZ25pbi5kLnRzXCIsXG4gICAgXCIuL3NpZ25pbi5qc1wiLFxuICAgIFwiLi9zc28tb2lkYy5kLnRzXCIsXG4gICAgXCIuL3Nzby1vaWRjLmpzXCIsXG4gICAgXCIuL3N0cy5kLnRzXCIsXG4gICAgXCIuL3N0cy5qc1wiLFxuICAgIFwiZGlzdC0qLyoqXCJcbiAgXSxcbiAgXCJicm93c2VyXCI6IHtcbiAgICBcIi4vZGlzdC1lcy9zdWJtb2R1bGVzL3NpZ25pbi9ydW50aW1lQ29uZmlnXCI6IFwiLi9kaXN0LWVzL3N1Ym1vZHVsZXMvc2lnbmluL3J1bnRpbWVDb25maWcuYnJvd3NlclwiLFxuICAgIFwiLi9kaXN0LWVzL3N1Ym1vZHVsZXMvc3NvLW9pZGMvcnVudGltZUNvbmZpZ1wiOiBcIi4vZGlzdC1lcy9zdWJtb2R1bGVzL3Nzby1vaWRjL3J1bnRpbWVDb25maWcuYnJvd3NlclwiLFxuICAgIFwiLi9kaXN0LWVzL3N1Ym1vZHVsZXMvc3RzL3J1bnRpbWVDb25maWdcIjogXCIuL2Rpc3QtZXMvc3VibW9kdWxlcy9zdHMvcnVudGltZUNvbmZpZy5icm93c2VyXCJcbiAgfSxcbiAgXCJyZWFjdC1uYXRpdmVcIjoge30sXG4gIFwiaG9tZXBhZ2VcIjogXCJodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1zZGstanMtdjMvdHJlZS9tYWluL3BhY2thZ2VzL25lc3RlZC1jbGllbnRzXCIsXG4gIFwicmVwb3NpdG9yeVwiOiB7XG4gICAgXCJ0eXBlXCI6IFwiZ2l0XCIsXG4gICAgXCJ1cmxcIjogXCJodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1zZGstanMtdjMuZ2l0XCIsXG4gICAgXCJkaXJlY3RvcnlcIjogXCJwYWNrYWdlcy9uZXN0ZWQtY2xpZW50c1wiXG4gIH0sXG4gIFwiZXhwb3J0c1wiOiB7XG4gICAgXCIuL3BhY2thZ2UuanNvblwiOiBcIi4vcGFja2FnZS5qc29uXCIsXG4gICAgXCIuL3Nzby1vaWRjXCI6IHtcbiAgICAgIFwidHlwZXNcIjogXCIuL2Rpc3QtdHlwZXMvc3VibW9kdWxlcy9zc28tb2lkYy9pbmRleC5kLnRzXCIsXG4gICAgICBcIm1vZHVsZVwiOiBcIi4vZGlzdC1lcy9zdWJtb2R1bGVzL3Nzby1vaWRjL2luZGV4LmpzXCIsXG4gICAgICBcIm5vZGVcIjogXCIuL2Rpc3QtY2pzL3N1Ym1vZHVsZXMvc3NvLW9pZGMvaW5kZXguanNcIixcbiAgICAgIFwiaW1wb3J0XCI6IFwiLi9kaXN0LWVzL3N1Ym1vZHVsZXMvc3NvLW9pZGMvaW5kZXguanNcIixcbiAgICAgIFwicmVxdWlyZVwiOiBcIi4vZGlzdC1janMvc3VibW9kdWxlcy9zc28tb2lkYy9pbmRleC5qc1wiXG4gICAgfSxcbiAgICBcIi4vc3RzXCI6IHtcbiAgICAgIFwidHlwZXNcIjogXCIuL2Rpc3QtdHlwZXMvc3VibW9kdWxlcy9zdHMvaW5kZXguZC50c1wiLFxuICAgICAgXCJtb2R1bGVcIjogXCIuL2Rpc3QtZXMvc3VibW9kdWxlcy9zdHMvaW5kZXguanNcIixcbiAgICAgIFwibm9kZVwiOiBcIi4vZGlzdC1janMvc3VibW9kdWxlcy9zdHMvaW5kZXguanNcIixcbiAgICAgIFwiaW1wb3J0XCI6IFwiLi9kaXN0LWVzL3N1Ym1vZHVsZXMvc3RzL2luZGV4LmpzXCIsXG4gICAgICBcInJlcXVpcmVcIjogXCIuL2Rpc3QtY2pzL3N1Ym1vZHVsZXMvc3RzL2luZGV4LmpzXCJcbiAgICB9LFxuICAgIFwiLi9zaWduaW5cIjoge1xuICAgICAgXCJ0eXBlc1wiOiBcIi4vZGlzdC10eXBlcy9zdWJtb2R1bGVzL3NpZ25pbi9pbmRleC5kLnRzXCIsXG4gICAgICBcIm1vZHVsZVwiOiBcIi4vZGlzdC1lcy9zdWJtb2R1bGVzL3NpZ25pbi9pbmRleC5qc1wiLFxuICAgICAgXCJub2RlXCI6IFwiLi9kaXN0LWNqcy9zdWJtb2R1bGVzL3NpZ25pbi9pbmRleC5qc1wiLFxuICAgICAgXCJpbXBvcnRcIjogXCIuL2Rpc3QtZXMvc3VibW9kdWxlcy9zaWduaW4vaW5kZXguanNcIixcbiAgICAgIFwicmVxdWlyZVwiOiBcIi4vZGlzdC1janMvc3VibW9kdWxlcy9zaWduaW4vaW5kZXguanNcIlxuICAgIH1cbiAgfVxufVxuIiwgIid1c2Ugc3RyaWN0JztcblxudmFyIG9zID0gcmVxdWlyZSgnb3MnKTtcbnZhciBwcm9jZXNzID0gcmVxdWlyZSgncHJvY2VzcycpO1xudmFyIG1pZGRsZXdhcmVVc2VyQWdlbnQgPSByZXF1aXJlKCdAYXdzLXNkay9taWRkbGV3YXJlLXVzZXItYWdlbnQnKTtcblxuY29uc3QgZ2V0UnVudGltZVVzZXJBZ2VudFBhaXIgPSAoKSA9PiB7XG4gICAgY29uc3QgcnVudGltZXNUb0NoZWNrID0gW1wiZGVub1wiLCBcImJ1blwiLCBcImxscnRcIl07XG4gICAgZm9yIChjb25zdCBydW50aW1lIG9mIHJ1bnRpbWVzVG9DaGVjaykge1xuICAgICAgICBpZiAocHJvY2Vzcy52ZXJzaW9uc1tydW50aW1lXSkge1xuICAgICAgICAgICAgcmV0dXJuIFtgbWQvJHtydW50aW1lfWAsIHByb2Nlc3MudmVyc2lvbnNbcnVudGltZV1dO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBbXCJtZC9ub2RlanNcIiwgcHJvY2Vzcy52ZXJzaW9ucy5ub2RlXTtcbn07XG5cbmNvbnN0IGNydEF2YWlsYWJpbGl0eSA9IHtcbiAgICBpc0NydEF2YWlsYWJsZTogZmFsc2UsXG59O1xuXG5jb25zdCBpc0NydEF2YWlsYWJsZSA9ICgpID0+IHtcbiAgICBpZiAoY3J0QXZhaWxhYmlsaXR5LmlzQ3J0QXZhaWxhYmxlKSB7XG4gICAgICAgIHJldHVybiBbXCJtZC9jcnQtYXZhaWxcIl07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xufTtcblxuY29uc3QgY3JlYXRlRGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyID0gKHsgc2VydmljZUlkLCBjbGllbnRWZXJzaW9uIH0pID0+IHtcbiAgICBjb25zdCBydW50aW1lVXNlckFnZW50UGFpciA9IGdldFJ1bnRpbWVVc2VyQWdlbnRQYWlyKCk7XG4gICAgcmV0dXJuIGFzeW5jIChjb25maWcpID0+IHtcbiAgICAgICAgY29uc3Qgc2VjdGlvbnMgPSBbXG4gICAgICAgICAgICBbXCJhd3Mtc2RrLWpzXCIsIGNsaWVudFZlcnNpb25dLFxuICAgICAgICAgICAgW1widWFcIiwgXCIyLjFcIl0sXG4gICAgICAgICAgICBbYG9zLyR7b3MucGxhdGZvcm0oKX1gLCBvcy5yZWxlYXNlKCldLFxuICAgICAgICAgICAgW1wibGFuZy9qc1wiXSxcbiAgICAgICAgICAgIHJ1bnRpbWVVc2VyQWdlbnRQYWlyLFxuICAgICAgICBdO1xuICAgICAgICBjb25zdCBjcnRBdmFpbGFibGUgPSBpc0NydEF2YWlsYWJsZSgpO1xuICAgICAgICBpZiAoY3J0QXZhaWxhYmxlKSB7XG4gICAgICAgICAgICBzZWN0aW9ucy5wdXNoKGNydEF2YWlsYWJsZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNlcnZpY2VJZCkge1xuICAgICAgICAgICAgc2VjdGlvbnMucHVzaChbYGFwaS8ke3NlcnZpY2VJZH1gLCBjbGllbnRWZXJzaW9uXSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHByb2Nlc3MuZW52LkFXU19FWEVDVVRJT05fRU5WKSB7XG4gICAgICAgICAgICBzZWN0aW9ucy5wdXNoKFtgZXhlYy1lbnYvJHtwcm9jZXNzLmVudi5BV1NfRVhFQ1VUSU9OX0VOVn1gXSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYXBwSWQgPSBhd2FpdCBjb25maWc/LnVzZXJBZ2VudEFwcElkPy4oKTtcbiAgICAgICAgY29uc3QgcmVzb2x2ZWRVc2VyQWdlbnQgPSBhcHBJZCA/IFsuLi5zZWN0aW9ucywgW2BhcHAvJHthcHBJZH1gXV0gOiBbLi4uc2VjdGlvbnNdO1xuICAgICAgICByZXR1cm4gcmVzb2x2ZWRVc2VyQWdlbnQ7XG4gICAgfTtcbn07XG5jb25zdCBkZWZhdWx0VXNlckFnZW50ID0gY3JlYXRlRGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyO1xuXG5jb25zdCBVQV9BUFBfSURfRU5WX05BTUUgPSBcIkFXU19TREtfVUFfQVBQX0lEXCI7XG5jb25zdCBVQV9BUFBfSURfSU5JX05BTUUgPSBcInNka191YV9hcHBfaWRcIjtcbmNvbnN0IFVBX0FQUF9JRF9JTklfTkFNRV9ERVBSRUNBVEVEID0gXCJzZGstdWEtYXBwLWlkXCI7XG5jb25zdCBOT0RFX0FQUF9JRF9DT05GSUdfT1BUSU9OUyA9IHtcbiAgICBlbnZpcm9ubWVudFZhcmlhYmxlU2VsZWN0b3I6IChlbnYpID0+IGVudltVQV9BUFBfSURfRU5WX05BTUVdLFxuICAgIGNvbmZpZ0ZpbGVTZWxlY3RvcjogKHByb2ZpbGUpID0+IHByb2ZpbGVbVUFfQVBQX0lEX0lOSV9OQU1FXSA/PyBwcm9maWxlW1VBX0FQUF9JRF9JTklfTkFNRV9ERVBSRUNBVEVEXSxcbiAgICBkZWZhdWx0OiBtaWRkbGV3YXJlVXNlckFnZW50LkRFRkFVTFRfVUFfQVBQX0lELFxufTtcblxuZXhwb3J0cy5OT0RFX0FQUF9JRF9DT05GSUdfT1BUSU9OUyA9IE5PREVfQVBQX0lEX0NPTkZJR19PUFRJT05TO1xuZXhwb3J0cy5VQV9BUFBfSURfRU5WX05BTUUgPSBVQV9BUFBfSURfRU5WX05BTUU7XG5leHBvcnRzLlVBX0FQUF9JRF9JTklfTkFNRSA9IFVBX0FQUF9JRF9JTklfTkFNRTtcbmV4cG9ydHMuY3JlYXRlRGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyID0gY3JlYXRlRGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyO1xuZXhwb3J0cy5jcnRBdmFpbGFiaWxpdHkgPSBjcnRBdmFpbGFiaWxpdHk7XG5leHBvcnRzLmRlZmF1bHRVc2VyQWdlbnQgPSBkZWZhdWx0VXNlckFnZW50O1xuIiwgIid1c2Ugc3RyaWN0JztcblxudmFyIHV0aWxFbmRwb2ludHMgPSByZXF1aXJlKCdAc21pdGh5L3V0aWwtZW5kcG9pbnRzJyk7XG52YXIgdXJsUGFyc2VyID0gcmVxdWlyZSgnQHNtaXRoeS91cmwtcGFyc2VyJyk7XG5cbmNvbnN0IGlzVmlydHVhbEhvc3RhYmxlUzNCdWNrZXQgPSAodmFsdWUsIGFsbG93U3ViRG9tYWlucyA9IGZhbHNlKSA9PiB7XG4gICAgaWYgKGFsbG93U3ViRG9tYWlucykge1xuICAgICAgICBmb3IgKGNvbnN0IGxhYmVsIG9mIHZhbHVlLnNwbGl0KFwiLlwiKSkge1xuICAgICAgICAgICAgaWYgKCFpc1ZpcnR1YWxIb3N0YWJsZVMzQnVja2V0KGxhYmVsKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKCF1dGlsRW5kcG9pbnRzLmlzVmFsaWRIb3N0TGFiZWwodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKHZhbHVlLmxlbmd0aCA8IDMgfHwgdmFsdWUubGVuZ3RoID4gNjMpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAodmFsdWUgIT09IHZhbHVlLnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAodXRpbEVuZHBvaW50cy5pc0lwQWRkcmVzcyh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbn07XG5cbmNvbnN0IEFSTl9ERUxJTUlURVIgPSBcIjpcIjtcbmNvbnN0IFJFU09VUkNFX0RFTElNSVRFUiA9IFwiL1wiO1xuY29uc3QgcGFyc2VBcm4gPSAodmFsdWUpID0+IHtcbiAgICBjb25zdCBzZWdtZW50cyA9IHZhbHVlLnNwbGl0KEFSTl9ERUxJTUlURVIpO1xuICAgIGlmIChzZWdtZW50cy5sZW5ndGggPCA2KVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICBjb25zdCBbYXJuLCBwYXJ0aXRpb24sIHNlcnZpY2UsIHJlZ2lvbiwgYWNjb3VudElkLCAuLi5yZXNvdXJjZVBhdGhdID0gc2VnbWVudHM7XG4gICAgaWYgKGFybiAhPT0gXCJhcm5cIiB8fCBwYXJ0aXRpb24gPT09IFwiXCIgfHwgc2VydmljZSA9PT0gXCJcIiB8fCByZXNvdXJjZVBhdGguam9pbihBUk5fREVMSU1JVEVSKSA9PT0gXCJcIilcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgcmVzb3VyY2VJZCA9IHJlc291cmNlUGF0aC5tYXAoKHJlc291cmNlKSA9PiByZXNvdXJjZS5zcGxpdChSRVNPVVJDRV9ERUxJTUlURVIpKS5mbGF0KCk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcGFydGl0aW9uLFxuICAgICAgICBzZXJ2aWNlLFxuICAgICAgICByZWdpb24sXG4gICAgICAgIGFjY291bnRJZCxcbiAgICAgICAgcmVzb3VyY2VJZCxcbiAgICB9O1xufTtcblxudmFyIHBhcnRpdGlvbnMgPSBbXG5cdHtcblx0XHRpZDogXCJhd3NcIixcblx0XHRvdXRwdXRzOiB7XG5cdFx0XHRkbnNTdWZmaXg6IFwiYW1hem9uYXdzLmNvbVwiLFxuXHRcdFx0ZHVhbFN0YWNrRG5zU3VmZml4OiBcImFwaS5hd3NcIixcblx0XHRcdGltcGxpY2l0R2xvYmFsUmVnaW9uOiBcInVzLWVhc3QtMVwiLFxuXHRcdFx0bmFtZTogXCJhd3NcIixcblx0XHRcdHN1cHBvcnRzRHVhbFN0YWNrOiB0cnVlLFxuXHRcdFx0c3VwcG9ydHNGSVBTOiB0cnVlXG5cdFx0fSxcblx0XHRyZWdpb25SZWdleDogXCJeKHVzfGV1fGFwfHNhfGNhfG1lfGFmfGlsfG14KVxcXFwtXFxcXHcrXFxcXC1cXFxcZCskXCIsXG5cdFx0cmVnaW9uczoge1xuXHRcdFx0XCJhZi1zb3V0aC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQWZyaWNhIChDYXBlIFRvd24pXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLWVhc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFzaWEgUGFjaWZpYyAoSG9uZyBLb25nKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJhcC1lYXN0LTJcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBc2lhIFBhY2lmaWMgKFRhaXBlaSlcIlxuXHRcdFx0fSxcblx0XHRcdFwiYXAtbm9ydGhlYXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBc2lhIFBhY2lmaWMgKFRva3lvKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJhcC1ub3J0aGVhc3QtMlwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFzaWEgUGFjaWZpYyAoU2VvdWwpXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLW5vcnRoZWFzdC0zXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChPc2FrYSlcIlxuXHRcdFx0fSxcblx0XHRcdFwiYXAtc291dGgtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFzaWEgUGFjaWZpYyAoTXVtYmFpKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJhcC1zb3V0aC0yXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChIeWRlcmFiYWQpXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLXNvdXRoZWFzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChTaW5nYXBvcmUpXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLXNvdXRoZWFzdC0yXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChTeWRuZXkpXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLXNvdXRoZWFzdC0zXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChKYWthcnRhKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJhcC1zb3V0aGVhc3QtNFwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFzaWEgUGFjaWZpYyAoTWVsYm91cm5lKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJhcC1zb3V0aGVhc3QtNVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFzaWEgUGFjaWZpYyAoTWFsYXlzaWEpXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLXNvdXRoZWFzdC02XCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChOZXcgWmVhbGFuZClcIlxuXHRcdFx0fSxcblx0XHRcdFwiYXAtc291dGhlYXN0LTdcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBc2lhIFBhY2lmaWMgKFRoYWlsYW5kKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJhd3MtZ2xvYmFsXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiYXdzIGdsb2JhbCByZWdpb25cIlxuXHRcdFx0fSxcblx0XHRcdFwiY2EtY2VudHJhbC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQ2FuYWRhIChDZW50cmFsKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJjYS13ZXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJDYW5hZGEgV2VzdCAoQ2FsZ2FyeSlcIlxuXHRcdFx0fSxcblx0XHRcdFwiZXUtY2VudHJhbC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiRXVyb3BlIChGcmFua2Z1cnQpXCJcblx0XHRcdH0sXG5cdFx0XHRcImV1LWNlbnRyYWwtMlwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkV1cm9wZSAoWnVyaWNoKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJldS1ub3J0aC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiRXVyb3BlIChTdG9ja2hvbG0pXCJcblx0XHRcdH0sXG5cdFx0XHRcImV1LXNvdXRoLTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJFdXJvcGUgKE1pbGFuKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJldS1zb3V0aC0yXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiRXVyb3BlIChTcGFpbilcIlxuXHRcdFx0fSxcblx0XHRcdFwiZXUtd2VzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiRXVyb3BlIChJcmVsYW5kKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJldS13ZXN0LTJcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJFdXJvcGUgKExvbmRvbilcIlxuXHRcdFx0fSxcblx0XHRcdFwiZXUtd2VzdC0zXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiRXVyb3BlIChQYXJpcylcIlxuXHRcdFx0fSxcblx0XHRcdFwiaWwtY2VudHJhbC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiSXNyYWVsIChUZWwgQXZpdilcIlxuXHRcdFx0fSxcblx0XHRcdFwibWUtY2VudHJhbC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiTWlkZGxlIEVhc3QgKFVBRSlcIlxuXHRcdFx0fSxcblx0XHRcdFwibWUtc291dGgtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIk1pZGRsZSBFYXN0IChCYWhyYWluKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJteC1jZW50cmFsLTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJNZXhpY28gKENlbnRyYWwpXCJcblx0XHRcdH0sXG5cdFx0XHRcInNhLWVhc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIlNvdXRoIEFtZXJpY2EgKFNhbyBQYXVsbylcIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtZWFzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiVVMgRWFzdCAoTi4gVmlyZ2luaWEpXCJcblx0XHRcdH0sXG5cdFx0XHRcInVzLWVhc3QtMlwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIlVTIEVhc3QgKE9oaW8pXCJcblx0XHRcdH0sXG5cdFx0XHRcInVzLXdlc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIlVTIFdlc3QgKE4uIENhbGlmb3JuaWEpXCJcblx0XHRcdH0sXG5cdFx0XHRcInVzLXdlc3QtMlwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIlVTIFdlc3QgKE9yZWdvbilcIlxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0e1xuXHRcdGlkOiBcImF3cy1jblwiLFxuXHRcdG91dHB1dHM6IHtcblx0XHRcdGRuc1N1ZmZpeDogXCJhbWF6b25hd3MuY29tLmNuXCIsXG5cdFx0XHRkdWFsU3RhY2tEbnNTdWZmaXg6IFwiYXBpLmFtYXpvbndlYnNlcnZpY2VzLmNvbS5jblwiLFxuXHRcdFx0aW1wbGljaXRHbG9iYWxSZWdpb246IFwiY24tbm9ydGh3ZXN0LTFcIixcblx0XHRcdG5hbWU6IFwiYXdzLWNuXCIsXG5cdFx0XHRzdXBwb3J0c0R1YWxTdGFjazogdHJ1ZSxcblx0XHRcdHN1cHBvcnRzRklQUzogdHJ1ZVxuXHRcdH0sXG5cdFx0cmVnaW9uUmVnZXg6IFwiXmNuXFxcXC1cXFxcdytcXFxcLVxcXFxkKyRcIixcblx0XHRyZWdpb25zOiB7XG5cdFx0XHRcImF3cy1jbi1nbG9iYWxcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJhd3MtY24gZ2xvYmFsIHJlZ2lvblwiXG5cdFx0XHR9LFxuXHRcdFx0XCJjbi1ub3J0aC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQ2hpbmEgKEJlaWppbmcpXCJcblx0XHRcdH0sXG5cdFx0XHRcImNuLW5vcnRod2VzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQ2hpbmEgKE5pbmd4aWEpXCJcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdHtcblx0XHRpZDogXCJhd3MtZXVzY1wiLFxuXHRcdG91dHB1dHM6IHtcblx0XHRcdGRuc1N1ZmZpeDogXCJhbWF6b25hd3MuZXVcIixcblx0XHRcdGR1YWxTdGFja0Ruc1N1ZmZpeDogXCJhcGkuYW1hem9ud2Vic2VydmljZXMuZXVcIixcblx0XHRcdGltcGxpY2l0R2xvYmFsUmVnaW9uOiBcImV1c2MtZGUtZWFzdC0xXCIsXG5cdFx0XHRuYW1lOiBcImF3cy1ldXNjXCIsXG5cdFx0XHRzdXBwb3J0c0R1YWxTdGFjazogdHJ1ZSxcblx0XHRcdHN1cHBvcnRzRklQUzogdHJ1ZVxuXHRcdH0sXG5cdFx0cmVnaW9uUmVnZXg6IFwiXmV1c2NcXFxcLShkZSlcXFxcLVxcXFx3K1xcXFwtXFxcXGQrJFwiLFxuXHRcdHJlZ2lvbnM6IHtcblx0XHRcdFwiZXVzYy1kZS1lYXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBV1MgRXVyb3BlYW4gU292ZXJlaWduIENsb3VkIChHZXJtYW55KVwiXG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXHR7XG5cdFx0aWQ6IFwiYXdzLWlzb1wiLFxuXHRcdG91dHB1dHM6IHtcblx0XHRcdGRuc1N1ZmZpeDogXCJjMnMuaWMuZ292XCIsXG5cdFx0XHRkdWFsU3RhY2tEbnNTdWZmaXg6IFwiYXBpLmF3cy5pYy5nb3ZcIixcblx0XHRcdGltcGxpY2l0R2xvYmFsUmVnaW9uOiBcInVzLWlzby1lYXN0LTFcIixcblx0XHRcdG5hbWU6IFwiYXdzLWlzb1wiLFxuXHRcdFx0c3VwcG9ydHNEdWFsU3RhY2s6IHRydWUsXG5cdFx0XHRzdXBwb3J0c0ZJUFM6IHRydWVcblx0XHR9LFxuXHRcdHJlZ2lvblJlZ2V4OiBcIl51c1xcXFwtaXNvXFxcXC1cXFxcdytcXFxcLVxcXFxkKyRcIixcblx0XHRyZWdpb25zOiB7XG5cdFx0XHRcImF3cy1pc28tZ2xvYmFsXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiYXdzLWlzbyBnbG9iYWwgcmVnaW9uXCJcblx0XHRcdH0sXG5cdFx0XHRcInVzLWlzby1lYXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJVUyBJU08gRWFzdFwiXG5cdFx0XHR9LFxuXHRcdFx0XCJ1cy1pc28td2VzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiVVMgSVNPIFdFU1RcIlxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0e1xuXHRcdGlkOiBcImF3cy1pc28tYlwiLFxuXHRcdG91dHB1dHM6IHtcblx0XHRcdGRuc1N1ZmZpeDogXCJzYzJzLnNnb3YuZ292XCIsXG5cdFx0XHRkdWFsU3RhY2tEbnNTdWZmaXg6IFwiYXBpLmF3cy5zY2xvdWRcIixcblx0XHRcdGltcGxpY2l0R2xvYmFsUmVnaW9uOiBcInVzLWlzb2ItZWFzdC0xXCIsXG5cdFx0XHRuYW1lOiBcImF3cy1pc28tYlwiLFxuXHRcdFx0c3VwcG9ydHNEdWFsU3RhY2s6IHRydWUsXG5cdFx0XHRzdXBwb3J0c0ZJUFM6IHRydWVcblx0XHR9LFxuXHRcdHJlZ2lvblJlZ2V4OiBcIl51c1xcXFwtaXNvYlxcXFwtXFxcXHcrXFxcXC1cXFxcZCskXCIsXG5cdFx0cmVnaW9uczoge1xuXHRcdFx0XCJhd3MtaXNvLWItZ2xvYmFsXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiYXdzLWlzby1iIGdsb2JhbCByZWdpb25cIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtaXNvYi1lYXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJVUyBJU09CIEVhc3QgKE9oaW8pXCJcblx0XHRcdH0sXG5cdFx0XHRcInVzLWlzb2Itd2VzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiVVMgSVNPQiBXZXN0XCJcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdHtcblx0XHRpZDogXCJhd3MtaXNvLWVcIixcblx0XHRvdXRwdXRzOiB7XG5cdFx0XHRkbnNTdWZmaXg6IFwiY2xvdWQuYWRjLWUudWtcIixcblx0XHRcdGR1YWxTdGFja0Ruc1N1ZmZpeDogXCJhcGkuY2xvdWQtYXdzLmFkYy1lLnVrXCIsXG5cdFx0XHRpbXBsaWNpdEdsb2JhbFJlZ2lvbjogXCJldS1pc29lLXdlc3QtMVwiLFxuXHRcdFx0bmFtZTogXCJhd3MtaXNvLWVcIixcblx0XHRcdHN1cHBvcnRzRHVhbFN0YWNrOiB0cnVlLFxuXHRcdFx0c3VwcG9ydHNGSVBTOiB0cnVlXG5cdFx0fSxcblx0XHRyZWdpb25SZWdleDogXCJeZXVcXFxcLWlzb2VcXFxcLVxcXFx3K1xcXFwtXFxcXGQrJFwiLFxuXHRcdHJlZ2lvbnM6IHtcblx0XHRcdFwiYXdzLWlzby1lLWdsb2JhbFwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcImF3cy1pc28tZSBnbG9iYWwgcmVnaW9uXCJcblx0XHRcdH0sXG5cdFx0XHRcImV1LWlzb2Utd2VzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiRVUgSVNPRSBXZXN0XCJcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdHtcblx0XHRpZDogXCJhd3MtaXNvLWZcIixcblx0XHRvdXRwdXRzOiB7XG5cdFx0XHRkbnNTdWZmaXg6IFwiY3NwLmhjaS5pYy5nb3ZcIixcblx0XHRcdGR1YWxTdGFja0Ruc1N1ZmZpeDogXCJhcGkuYXdzLmhjaS5pYy5nb3ZcIixcblx0XHRcdGltcGxpY2l0R2xvYmFsUmVnaW9uOiBcInVzLWlzb2Ytc291dGgtMVwiLFxuXHRcdFx0bmFtZTogXCJhd3MtaXNvLWZcIixcblx0XHRcdHN1cHBvcnRzRHVhbFN0YWNrOiB0cnVlLFxuXHRcdFx0c3VwcG9ydHNGSVBTOiB0cnVlXG5cdFx0fSxcblx0XHRyZWdpb25SZWdleDogXCJedXNcXFxcLWlzb2ZcXFxcLVxcXFx3K1xcXFwtXFxcXGQrJFwiLFxuXHRcdHJlZ2lvbnM6IHtcblx0XHRcdFwiYXdzLWlzby1mLWdsb2JhbFwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcImF3cy1pc28tZiBnbG9iYWwgcmVnaW9uXCJcblx0XHRcdH0sXG5cdFx0XHRcInVzLWlzb2YtZWFzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiVVMgSVNPRiBFQVNUXCJcblx0XHRcdH0sXG5cdFx0XHRcInVzLWlzb2Ytc291dGgtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIlVTIElTT0YgU09VVEhcIlxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0e1xuXHRcdGlkOiBcImF3cy11cy1nb3ZcIixcblx0XHRvdXRwdXRzOiB7XG5cdFx0XHRkbnNTdWZmaXg6IFwiYW1hem9uYXdzLmNvbVwiLFxuXHRcdFx0ZHVhbFN0YWNrRG5zU3VmZml4OiBcImFwaS5hd3NcIixcblx0XHRcdGltcGxpY2l0R2xvYmFsUmVnaW9uOiBcInVzLWdvdi13ZXN0LTFcIixcblx0XHRcdG5hbWU6IFwiYXdzLXVzLWdvdlwiLFxuXHRcdFx0c3VwcG9ydHNEdWFsU3RhY2s6IHRydWUsXG5cdFx0XHRzdXBwb3J0c0ZJUFM6IHRydWVcblx0XHR9LFxuXHRcdHJlZ2lvblJlZ2V4OiBcIl51c1xcXFwtZ292XFxcXC1cXFxcdytcXFxcLVxcXFxkKyRcIixcblx0XHRyZWdpb25zOiB7XG5cdFx0XHRcImF3cy11cy1nb3YtZ2xvYmFsXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiYXdzLXVzLWdvdiBnbG9iYWwgcmVnaW9uXCJcblx0XHRcdH0sXG5cdFx0XHRcInVzLWdvdi1lYXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBV1MgR292Q2xvdWQgKFVTLUVhc3QpXCJcblx0XHRcdH0sXG5cdFx0XHRcInVzLWdvdi13ZXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBV1MgR292Q2xvdWQgKFVTLVdlc3QpXCJcblx0XHRcdH1cblx0XHR9XG5cdH1cbl07XG52YXIgdmVyc2lvbiA9IFwiMS4xXCI7XG52YXIgcGFydGl0aW9uc0luZm8gPSB7XG5cdHBhcnRpdGlvbnM6IHBhcnRpdGlvbnMsXG5cdHZlcnNpb246IHZlcnNpb25cbn07XG5cbmxldCBzZWxlY3RlZFBhcnRpdGlvbnNJbmZvID0gcGFydGl0aW9uc0luZm87XG5sZXQgc2VsZWN0ZWRVc2VyQWdlbnRQcmVmaXggPSBcIlwiO1xuY29uc3QgcGFydGl0aW9uID0gKHZhbHVlKSA9PiB7XG4gICAgY29uc3QgeyBwYXJ0aXRpb25zIH0gPSBzZWxlY3RlZFBhcnRpdGlvbnNJbmZvO1xuICAgIGZvciAoY29uc3QgcGFydGl0aW9uIG9mIHBhcnRpdGlvbnMpIHtcbiAgICAgICAgY29uc3QgeyByZWdpb25zLCBvdXRwdXRzIH0gPSBwYXJ0aXRpb247XG4gICAgICAgIGZvciAoY29uc3QgW3JlZ2lvbiwgcmVnaW9uRGF0YV0gb2YgT2JqZWN0LmVudHJpZXMocmVnaW9ucykpIHtcbiAgICAgICAgICAgIGlmIChyZWdpb24gPT09IHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgLi4ub3V0cHV0cyxcbiAgICAgICAgICAgICAgICAgICAgLi4ucmVnaW9uRGF0YSxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGZvciAoY29uc3QgcGFydGl0aW9uIG9mIHBhcnRpdGlvbnMpIHtcbiAgICAgICAgY29uc3QgeyByZWdpb25SZWdleCwgb3V0cHV0cyB9ID0gcGFydGl0aW9uO1xuICAgICAgICBpZiAobmV3IFJlZ0V4cChyZWdpb25SZWdleCkudGVzdCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgLi4ub3V0cHV0cyxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgREVGQVVMVF9QQVJUSVRJT04gPSBwYXJ0aXRpb25zLmZpbmQoKHBhcnRpdGlvbikgPT4gcGFydGl0aW9uLmlkID09PSBcImF3c1wiKTtcbiAgICBpZiAoIURFRkFVTFRfUEFSVElUSU9OKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIlByb3ZpZGVkIHJlZ2lvbiB3YXMgbm90IGZvdW5kIGluIHRoZSBwYXJ0aXRpb24gYXJyYXkgb3IgcmVnZXgsXCIgK1xuICAgICAgICAgICAgXCIgYW5kIGRlZmF1bHQgcGFydGl0aW9uIHdpdGggaWQgJ2F3cycgZG9lc24ndCBleGlzdC5cIik7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIC4uLkRFRkFVTFRfUEFSVElUSU9OLm91dHB1dHMsXG4gICAgfTtcbn07XG5jb25zdCBzZXRQYXJ0aXRpb25JbmZvID0gKHBhcnRpdGlvbnNJbmZvLCB1c2VyQWdlbnRQcmVmaXggPSBcIlwiKSA9PiB7XG4gICAgc2VsZWN0ZWRQYXJ0aXRpb25zSW5mbyA9IHBhcnRpdGlvbnNJbmZvO1xuICAgIHNlbGVjdGVkVXNlckFnZW50UHJlZml4ID0gdXNlckFnZW50UHJlZml4O1xufTtcbmNvbnN0IHVzZURlZmF1bHRQYXJ0aXRpb25JbmZvID0gKCkgPT4ge1xuICAgIHNldFBhcnRpdGlvbkluZm8ocGFydGl0aW9uc0luZm8sIFwiXCIpO1xufTtcbmNvbnN0IGdldFVzZXJBZ2VudFByZWZpeCA9ICgpID0+IHNlbGVjdGVkVXNlckFnZW50UHJlZml4O1xuXG5jb25zdCBhd3NFbmRwb2ludEZ1bmN0aW9ucyA9IHtcbiAgICBpc1ZpcnR1YWxIb3N0YWJsZVMzQnVja2V0OiBpc1ZpcnR1YWxIb3N0YWJsZVMzQnVja2V0LFxuICAgIHBhcnNlQXJuOiBwYXJzZUFybixcbiAgICBwYXJ0aXRpb246IHBhcnRpdGlvbixcbn07XG51dGlsRW5kcG9pbnRzLmN1c3RvbUVuZHBvaW50RnVuY3Rpb25zLmF3cyA9IGF3c0VuZHBvaW50RnVuY3Rpb25zO1xuXG5jb25zdCByZXNvbHZlRGVmYXVsdEF3c1JlZ2lvbmFsRW5kcG9pbnRzQ29uZmlnID0gKGlucHV0KSA9PiB7XG4gICAgaWYgKHR5cGVvZiBpbnB1dC5lbmRwb2ludFByb3ZpZGVyICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQGF3cy1zZGsvdXRpbC1lbmRwb2ludCAtIGVuZHBvaW50UHJvdmlkZXIgYW5kIGVuZHBvaW50IG1pc3NpbmcgaW4gY29uZmlnIGZvciB0aGlzIGNsaWVudC5cIik7XG4gICAgfVxuICAgIGNvbnN0IHsgZW5kcG9pbnQgfSA9IGlucHV0O1xuICAgIGlmIChlbmRwb2ludCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlucHV0LmVuZHBvaW50ID0gYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHRvRW5kcG9pbnRWMShpbnB1dC5lbmRwb2ludFByb3ZpZGVyKHtcbiAgICAgICAgICAgICAgICBSZWdpb246IHR5cGVvZiBpbnB1dC5yZWdpb24gPT09IFwiZnVuY3Rpb25cIiA/IGF3YWl0IGlucHV0LnJlZ2lvbigpIDogaW5wdXQucmVnaW9uLFxuICAgICAgICAgICAgICAgIFVzZUR1YWxTdGFjazogdHlwZW9mIGlucHV0LnVzZUR1YWxzdGFja0VuZHBvaW50ID09PSBcImZ1bmN0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgPyBhd2FpdCBpbnB1dC51c2VEdWFsc3RhY2tFbmRwb2ludCgpXG4gICAgICAgICAgICAgICAgICAgIDogaW5wdXQudXNlRHVhbHN0YWNrRW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgVXNlRklQUzogdHlwZW9mIGlucHV0LnVzZUZpcHNFbmRwb2ludCA9PT0gXCJmdW5jdGlvblwiID8gYXdhaXQgaW5wdXQudXNlRmlwc0VuZHBvaW50KCkgOiBpbnB1dC51c2VGaXBzRW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgRW5kcG9pbnQ6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIH0sIHsgbG9nZ2VyOiBpbnB1dC5sb2dnZXIgfSkpO1xuICAgICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gaW5wdXQ7XG59O1xuY29uc3QgdG9FbmRwb2ludFYxID0gKGVuZHBvaW50KSA9PiB1cmxQYXJzZXIucGFyc2VVcmwoZW5kcG9pbnQudXJsKTtcblxuZXhwb3J0cy5FbmRwb2ludEVycm9yID0gdXRpbEVuZHBvaW50cy5FbmRwb2ludEVycm9yO1xuZXhwb3J0cy5pc0lwQWRkcmVzcyA9IHV0aWxFbmRwb2ludHMuaXNJcEFkZHJlc3M7XG5leHBvcnRzLnJlc29sdmVFbmRwb2ludCA9IHV0aWxFbmRwb2ludHMucmVzb2x2ZUVuZHBvaW50O1xuZXhwb3J0cy5hd3NFbmRwb2ludEZ1bmN0aW9ucyA9IGF3c0VuZHBvaW50RnVuY3Rpb25zO1xuZXhwb3J0cy5nZXRVc2VyQWdlbnRQcmVmaXggPSBnZXRVc2VyQWdlbnRQcmVmaXg7XG5leHBvcnRzLnBhcnRpdGlvbiA9IHBhcnRpdGlvbjtcbmV4cG9ydHMucmVzb2x2ZURlZmF1bHRBd3NSZWdpb25hbEVuZHBvaW50c0NvbmZpZyA9IHJlc29sdmVEZWZhdWx0QXdzUmVnaW9uYWxFbmRwb2ludHNDb25maWc7XG5leHBvcnRzLnNldFBhcnRpdGlvbkluZm8gPSBzZXRQYXJ0aXRpb25JbmZvO1xuZXhwb3J0cy50b0VuZHBvaW50VjEgPSB0b0VuZHBvaW50VjE7XG5leHBvcnRzLnVzZURlZmF1bHRQYXJ0aXRpb25JbmZvID0gdXNlRGVmYXVsdFBhcnRpdGlvbkluZm87XG4iLCAiY29uc3QgdSA9IFwicmVxdWlyZWRcIiwgdiA9IFwiZm5cIiwgdyA9IFwiYXJndlwiLCB4ID0gXCJyZWZcIjtcbmNvbnN0IGEgPSB0cnVlLCBiID0gXCJpc1NldFwiLCBjID0gXCJib29sZWFuRXF1YWxzXCIsIGQgPSBcImVycm9yXCIsIGUgPSBcImVuZHBvaW50XCIsIGYgPSBcInRyZWVcIiwgZyA9IFwiUGFydGl0aW9uUmVzdWx0XCIsIGggPSBcImdldEF0dHJcIiwgaSA9IHsgW3VdOiBmYWxzZSwgXCJ0eXBlXCI6IFwic3RyaW5nXCIgfSwgaiA9IHsgW3VdOiB0cnVlLCBcImRlZmF1bHRcIjogZmFsc2UsIFwidHlwZVwiOiBcImJvb2xlYW5cIiB9LCBrID0geyBbeF06IFwiRW5kcG9pbnRcIiB9LCBsID0geyBbdl06IGMsIFt3XTogW3sgW3hdOiBcIlVzZUZJUFNcIiB9LCB0cnVlXSB9LCBtID0geyBbdl06IGMsIFt3XTogW3sgW3hdOiBcIlVzZUR1YWxTdGFja1wiIH0sIHRydWVdIH0sIG4gPSB7fSwgbyA9IHsgW3ZdOiBoLCBbd106IFt7IFt4XTogZyB9LCBcInN1cHBvcnRzRklQU1wiXSB9LCBwID0geyBbeF06IGcgfSwgcSA9IHsgW3ZdOiBjLCBbd106IFt0cnVlLCB7IFt2XTogaCwgW3ddOiBbcCwgXCJzdXBwb3J0c0R1YWxTdGFja1wiXSB9XSB9LCByID0gW2xdLCBzID0gW21dLCB0ID0gW3sgW3hdOiBcIlJlZ2lvblwiIH1dO1xuY29uc3QgX2RhdGEgPSB7IHZlcnNpb246IFwiMS4wXCIsIHBhcmFtZXRlcnM6IHsgUmVnaW9uOiBpLCBVc2VEdWFsU3RhY2s6IGosIFVzZUZJUFM6IGosIEVuZHBvaW50OiBpIH0sIHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbeyBbdl06IGIsIFt3XTogW2tdIH1dLCBydWxlczogW3sgY29uZGl0aW9uczogciwgZXJyb3I6IFwiSW52YWxpZCBDb25maWd1cmF0aW9uOiBGSVBTIGFuZCBjdXN0b20gZW5kcG9pbnQgYXJlIG5vdCBzdXBwb3J0ZWRcIiwgdHlwZTogZCB9LCB7IGNvbmRpdGlvbnM6IHMsIGVycm9yOiBcIkludmFsaWQgQ29uZmlndXJhdGlvbjogRHVhbHN0YWNrIGFuZCBjdXN0b20gZW5kcG9pbnQgYXJlIG5vdCBzdXBwb3J0ZWRcIiwgdHlwZTogZCB9LCB7IGVuZHBvaW50OiB7IHVybDogaywgcHJvcGVydGllczogbiwgaGVhZGVyczogbiB9LCB0eXBlOiBlIH1dLCB0eXBlOiBmIH0sIHsgY29uZGl0aW9uczogW3sgW3ZdOiBiLCBbd106IHQgfV0sIHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbeyBbdl06IFwiYXdzLnBhcnRpdGlvblwiLCBbd106IHQsIGFzc2lnbjogZyB9XSwgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IFtsLCBtXSwgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IFt7IFt2XTogYywgW3ddOiBbYSwgb10gfSwgcV0sIHJ1bGVzOiBbeyBlbmRwb2ludDogeyB1cmw6IFwiaHR0cHM6Ly9vaWRjLWZpcHMue1JlZ2lvbn0ue1BhcnRpdGlvblJlc3VsdCNkdWFsU3RhY2tEbnNTdWZmaXh9XCIsIHByb3BlcnRpZXM6IG4sIGhlYWRlcnM6IG4gfSwgdHlwZTogZSB9XSwgdHlwZTogZiB9LCB7IGVycm9yOiBcIkZJUFMgYW5kIER1YWxTdGFjayBhcmUgZW5hYmxlZCwgYnV0IHRoaXMgcGFydGl0aW9uIGRvZXMgbm90IHN1cHBvcnQgb25lIG9yIGJvdGhcIiwgdHlwZTogZCB9XSwgdHlwZTogZiB9LCB7IGNvbmRpdGlvbnM6IHIsIHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbeyBbdl06IGMsIFt3XTogW28sIGFdIH1dLCBydWxlczogW3sgY29uZGl0aW9uczogW3sgW3ZdOiBcInN0cmluZ0VxdWFsc1wiLCBbd106IFt7IFt2XTogaCwgW3ddOiBbcCwgXCJuYW1lXCJdIH0sIFwiYXdzLXVzLWdvdlwiXSB9XSwgZW5kcG9pbnQ6IHsgdXJsOiBcImh0dHBzOi8vb2lkYy57UmVnaW9ufS5hbWF6b25hd3MuY29tXCIsIHByb3BlcnRpZXM6IG4sIGhlYWRlcnM6IG4gfSwgdHlwZTogZSB9LCB7IGVuZHBvaW50OiB7IHVybDogXCJodHRwczovL29pZGMtZmlwcy57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH1cIiwgcHJvcGVydGllczogbiwgaGVhZGVyczogbiB9LCB0eXBlOiBlIH1dLCB0eXBlOiBmIH0sIHsgZXJyb3I6IFwiRklQUyBpcyBlbmFibGVkIGJ1dCB0aGlzIHBhcnRpdGlvbiBkb2VzIG5vdCBzdXBwb3J0IEZJUFNcIiwgdHlwZTogZCB9XSwgdHlwZTogZiB9LCB7IGNvbmRpdGlvbnM6IHMsIHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbcV0sIHJ1bGVzOiBbeyBlbmRwb2ludDogeyB1cmw6IFwiaHR0cHM6Ly9vaWRjLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZHVhbFN0YWNrRG5zU3VmZml4fVwiLCBwcm9wZXJ0aWVzOiBuLCBoZWFkZXJzOiBuIH0sIHR5cGU6IGUgfV0sIHR5cGU6IGYgfSwgeyBlcnJvcjogXCJEdWFsU3RhY2sgaXMgZW5hYmxlZCBidXQgdGhpcyBwYXJ0aXRpb24gZG9lcyBub3Qgc3VwcG9ydCBEdWFsU3RhY2tcIiwgdHlwZTogZCB9XSwgdHlwZTogZiB9LCB7IGVuZHBvaW50OiB7IHVybDogXCJodHRwczovL29pZGMue1JlZ2lvbn0ue1BhcnRpdGlvblJlc3VsdCNkbnNTdWZmaXh9XCIsIHByb3BlcnRpZXM6IG4sIGhlYWRlcnM6IG4gfSwgdHlwZTogZSB9XSwgdHlwZTogZiB9XSwgdHlwZTogZiB9LCB7IGVycm9yOiBcIkludmFsaWQgQ29uZmlndXJhdGlvbjogTWlzc2luZyBSZWdpb25cIiwgdHlwZTogZCB9XSB9O1xuZXhwb3J0IGNvbnN0IHJ1bGVTZXQgPSBfZGF0YTtcbiIsICJpbXBvcnQgeyBhd3NFbmRwb2ludEZ1bmN0aW9ucyB9IGZyb20gXCJAYXdzLXNkay91dGlsLWVuZHBvaW50c1wiO1xuaW1wb3J0IHsgY3VzdG9tRW5kcG9pbnRGdW5jdGlvbnMsIEVuZHBvaW50Q2FjaGUsIHJlc29sdmVFbmRwb2ludCB9IGZyb20gXCJAc21pdGh5L3V0aWwtZW5kcG9pbnRzXCI7XG5pbXBvcnQgeyBydWxlU2V0IH0gZnJvbSBcIi4vcnVsZXNldFwiO1xuY29uc3QgY2FjaGUgPSBuZXcgRW5kcG9pbnRDYWNoZSh7XG4gICAgc2l6ZTogNTAsXG4gICAgcGFyYW1zOiBbXCJFbmRwb2ludFwiLCBcIlJlZ2lvblwiLCBcIlVzZUR1YWxTdGFja1wiLCBcIlVzZUZJUFNcIl0sXG59KTtcbmV4cG9ydCBjb25zdCBkZWZhdWx0RW5kcG9pbnRSZXNvbHZlciA9IChlbmRwb2ludFBhcmFtcywgY29udGV4dCA9IHt9KSA9PiB7XG4gICAgcmV0dXJuIGNhY2hlLmdldChlbmRwb2ludFBhcmFtcywgKCkgPT4gcmVzb2x2ZUVuZHBvaW50KHJ1bGVTZXQsIHtcbiAgICAgICAgZW5kcG9pbnRQYXJhbXM6IGVuZHBvaW50UGFyYW1zLFxuICAgICAgICBsb2dnZXI6IGNvbnRleHQubG9nZ2VyLFxuICAgIH0pKTtcbn07XG5jdXN0b21FbmRwb2ludEZ1bmN0aW9ucy5hd3MgPSBhd3NFbmRwb2ludEZ1bmN0aW9ucztcbiIsICJpbXBvcnQgeyBTZXJ2aWNlRXhjZXB0aW9uIGFzIF9fU2VydmljZUV4Y2VwdGlvbiwgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5leHBvcnQgeyBfX1NlcnZpY2VFeGNlcHRpb24gfTtcbmV4cG9ydCBjbGFzcyBTU09PSURDU2VydmljZUV4Y2VwdGlvbiBleHRlbmRzIF9fU2VydmljZUV4Y2VwdGlvbiB7XG4gICAgY29uc3RydWN0b3Iob3B0aW9ucykge1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFNTT09JRENTZXJ2aWNlRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IFNTT09JRENTZXJ2aWNlRXhjZXB0aW9uIGFzIF9fQmFzZUV4Y2VwdGlvbiB9IGZyb20gXCIuL1NTT09JRENTZXJ2aWNlRXhjZXB0aW9uXCI7XG5leHBvcnQgY2xhc3MgQWNjZXNzRGVuaWVkRXhjZXB0aW9uIGV4dGVuZHMgX19CYXNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJBY2Nlc3NEZW5pZWRFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGVycm9yO1xuICAgIHJlYXNvbjtcbiAgICBlcnJvcl9kZXNjcmlwdGlvbjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiQWNjZXNzRGVuaWVkRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEFjY2Vzc0RlbmllZEV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLmVycm9yID0gb3B0cy5lcnJvcjtcbiAgICAgICAgdGhpcy5yZWFzb24gPSBvcHRzLnJlYXNvbjtcbiAgICAgICAgdGhpcy5lcnJvcl9kZXNjcmlwdGlvbiA9IG9wdHMuZXJyb3JfZGVzY3JpcHRpb247XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIEF1dGhvcml6YXRpb25QZW5kaW5nRXhjZXB0aW9uIGV4dGVuZHMgX19CYXNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJBdXRob3JpemF0aW9uUGVuZGluZ0V4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgZXJyb3I7XG4gICAgZXJyb3JfZGVzY3JpcHRpb247XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkF1dGhvcml6YXRpb25QZW5kaW5nRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEF1dGhvcml6YXRpb25QZW5kaW5nRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuZXJyb3IgPSBvcHRzLmVycm9yO1xuICAgICAgICB0aGlzLmVycm9yX2Rlc2NyaXB0aW9uID0gb3B0cy5lcnJvcl9kZXNjcmlwdGlvbjtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgRXhwaXJlZFRva2VuRXhjZXB0aW9uIGV4dGVuZHMgX19CYXNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJFeHBpcmVkVG9rZW5FeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGVycm9yO1xuICAgIGVycm9yX2Rlc2NyaXB0aW9uO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJFeHBpcmVkVG9rZW5FeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgRXhwaXJlZFRva2VuRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuZXJyb3IgPSBvcHRzLmVycm9yO1xuICAgICAgICB0aGlzLmVycm9yX2Rlc2NyaXB0aW9uID0gb3B0cy5lcnJvcl9kZXNjcmlwdGlvbjtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb24gZXh0ZW5kcyBfX0Jhc2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIkludGVybmFsU2VydmVyRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJzZXJ2ZXJcIjtcbiAgICBlcnJvcjtcbiAgICBlcnJvcl9kZXNjcmlwdGlvbjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJzZXJ2ZXJcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5lcnJvciA9IG9wdHMuZXJyb3I7XG4gICAgICAgIHRoaXMuZXJyb3JfZGVzY3JpcHRpb24gPSBvcHRzLmVycm9yX2Rlc2NyaXB0aW9uO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBJbnZhbGlkQ2xpZW50RXhjZXB0aW9uIGV4dGVuZHMgX19CYXNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJJbnZhbGlkQ2xpZW50RXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBlcnJvcjtcbiAgICBlcnJvcl9kZXNjcmlwdGlvbjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiSW52YWxpZENsaWVudEV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBJbnZhbGlkQ2xpZW50RXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuZXJyb3IgPSBvcHRzLmVycm9yO1xuICAgICAgICB0aGlzLmVycm9yX2Rlc2NyaXB0aW9uID0gb3B0cy5lcnJvcl9kZXNjcmlwdGlvbjtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgSW52YWxpZEdyYW50RXhjZXB0aW9uIGV4dGVuZHMgX19CYXNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJJbnZhbGlkR3JhbnRFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGVycm9yO1xuICAgIGVycm9yX2Rlc2NyaXB0aW9uO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJJbnZhbGlkR3JhbnRFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgSW52YWxpZEdyYW50RXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuZXJyb3IgPSBvcHRzLmVycm9yO1xuICAgICAgICB0aGlzLmVycm9yX2Rlc2NyaXB0aW9uID0gb3B0cy5lcnJvcl9kZXNjcmlwdGlvbjtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgSW52YWxpZFJlcXVlc3RFeGNlcHRpb24gZXh0ZW5kcyBfX0Jhc2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIkludmFsaWRSZXF1ZXN0RXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBlcnJvcjtcbiAgICByZWFzb247XG4gICAgZXJyb3JfZGVzY3JpcHRpb247XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkludmFsaWRSZXF1ZXN0RXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEludmFsaWRSZXF1ZXN0RXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuZXJyb3IgPSBvcHRzLmVycm9yO1xuICAgICAgICB0aGlzLnJlYXNvbiA9IG9wdHMucmVhc29uO1xuICAgICAgICB0aGlzLmVycm9yX2Rlc2NyaXB0aW9uID0gb3B0cy5lcnJvcl9kZXNjcmlwdGlvbjtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgSW52YWxpZFNjb3BlRXhjZXB0aW9uIGV4dGVuZHMgX19CYXNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJJbnZhbGlkU2NvcGVFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGVycm9yO1xuICAgIGVycm9yX2Rlc2NyaXB0aW9uO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJJbnZhbGlkU2NvcGVFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgSW52YWxpZFNjb3BlRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuZXJyb3IgPSBvcHRzLmVycm9yO1xuICAgICAgICB0aGlzLmVycm9yX2Rlc2NyaXB0aW9uID0gb3B0cy5lcnJvcl9kZXNjcmlwdGlvbjtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgU2xvd0Rvd25FeGNlcHRpb24gZXh0ZW5kcyBfX0Jhc2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIlNsb3dEb3duRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBlcnJvcjtcbiAgICBlcnJvcl9kZXNjcmlwdGlvbjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiU2xvd0Rvd25FeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgU2xvd0Rvd25FeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5lcnJvciA9IG9wdHMuZXJyb3I7XG4gICAgICAgIHRoaXMuZXJyb3JfZGVzY3JpcHRpb24gPSBvcHRzLmVycm9yX2Rlc2NyaXB0aW9uO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBVbmF1dGhvcml6ZWRDbGllbnRFeGNlcHRpb24gZXh0ZW5kcyBfX0Jhc2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIlVuYXV0aG9yaXplZENsaWVudEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgZXJyb3I7XG4gICAgZXJyb3JfZGVzY3JpcHRpb247XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIlVuYXV0aG9yaXplZENsaWVudEV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBVbmF1dGhvcml6ZWRDbGllbnRFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5lcnJvciA9IG9wdHMuZXJyb3I7XG4gICAgICAgIHRoaXMuZXJyb3JfZGVzY3JpcHRpb24gPSBvcHRzLmVycm9yX2Rlc2NyaXB0aW9uO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBVbnN1cHBvcnRlZEdyYW50VHlwZUV4Y2VwdGlvbiBleHRlbmRzIF9fQmFzZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiVW5zdXBwb3J0ZWRHcmFudFR5cGVFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGVycm9yO1xuICAgIGVycm9yX2Rlc2NyaXB0aW9uO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJVbnN1cHBvcnRlZEdyYW50VHlwZUV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBVbnN1cHBvcnRlZEdyYW50VHlwZUV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLmVycm9yID0gb3B0cy5lcnJvcjtcbiAgICAgICAgdGhpcy5lcnJvcl9kZXNjcmlwdGlvbiA9IG9wdHMuZXJyb3JfZGVzY3JpcHRpb247XG4gICAgfVxufVxuIiwgImNvbnN0IF9BREUgPSBcIkFjY2Vzc0RlbmllZEV4Y2VwdGlvblwiO1xuY29uc3QgX0FQRSA9IFwiQXV0aG9yaXphdGlvblBlbmRpbmdFeGNlcHRpb25cIjtcbmNvbnN0IF9BVCA9IFwiQWNjZXNzVG9rZW5cIjtcbmNvbnN0IF9DUyA9IFwiQ2xpZW50U2VjcmV0XCI7XG5jb25zdCBfQ1QgPSBcIkNyZWF0ZVRva2VuXCI7XG5jb25zdCBfQ1RSID0gXCJDcmVhdGVUb2tlblJlcXVlc3RcIjtcbmNvbnN0IF9DVFJyID0gXCJDcmVhdGVUb2tlblJlc3BvbnNlXCI7XG5jb25zdCBfQ1YgPSBcIkNvZGVWZXJpZmllclwiO1xuY29uc3QgX0VURSA9IFwiRXhwaXJlZFRva2VuRXhjZXB0aW9uXCI7XG5jb25zdCBfSUNFID0gXCJJbnZhbGlkQ2xpZW50RXhjZXB0aW9uXCI7XG5jb25zdCBfSUdFID0gXCJJbnZhbGlkR3JhbnRFeGNlcHRpb25cIjtcbmNvbnN0IF9JUkUgPSBcIkludmFsaWRSZXF1ZXN0RXhjZXB0aW9uXCI7XG5jb25zdCBfSVNFID0gXCJJbnRlcm5hbFNlcnZlckV4Y2VwdGlvblwiO1xuY29uc3QgX0lTRW4gPSBcIkludmFsaWRTY29wZUV4Y2VwdGlvblwiO1xuY29uc3QgX0lUID0gXCJJZFRva2VuXCI7XG5jb25zdCBfUlQgPSBcIlJlZnJlc2hUb2tlblwiO1xuY29uc3QgX1NERSA9IFwiU2xvd0Rvd25FeGNlcHRpb25cIjtcbmNvbnN0IF9VQ0UgPSBcIlVuYXV0aG9yaXplZENsaWVudEV4Y2VwdGlvblwiO1xuY29uc3QgX1VHVEUgPSBcIlVuc3VwcG9ydGVkR3JhbnRUeXBlRXhjZXB0aW9uXCI7XG5jb25zdCBfYVQgPSBcImFjY2Vzc1Rva2VuXCI7XG5jb25zdCBfYyA9IFwiY2xpZW50XCI7XG5jb25zdCBfY0kgPSBcImNsaWVudElkXCI7XG5jb25zdCBfY1MgPSBcImNsaWVudFNlY3JldFwiO1xuY29uc3QgX2NWID0gXCJjb2RlVmVyaWZpZXJcIjtcbmNvbnN0IF9jbyA9IFwiY29kZVwiO1xuY29uc3QgX2RDID0gXCJkZXZpY2VDb2RlXCI7XG5jb25zdCBfZSA9IFwiZXJyb3JcIjtcbmNvbnN0IF9lSSA9IFwiZXhwaXJlc0luXCI7XG5jb25zdCBfZWQgPSBcImVycm9yX2Rlc2NyaXB0aW9uXCI7XG5jb25zdCBfZ1QgPSBcImdyYW50VHlwZVwiO1xuY29uc3QgX2ggPSBcImh0dHBcIjtcbmNvbnN0IF9oRSA9IFwiaHR0cEVycm9yXCI7XG5jb25zdCBfaVQgPSBcImlkVG9rZW5cIjtcbmNvbnN0IF9yID0gXCJyZWFzb25cIjtcbmNvbnN0IF9yVCA9IFwicmVmcmVzaFRva2VuXCI7XG5jb25zdCBfclUgPSBcInJlZGlyZWN0VXJpXCI7XG5jb25zdCBfcyA9IFwic21pdGh5LnRzLnNkay5zeW50aGV0aWMuY29tLmFtYXpvbmF3cy5zc29vaWRjXCI7XG5jb25zdCBfc2MgPSBcInNjb3BlXCI7XG5jb25zdCBfc2UgPSBcInNlcnZlclwiO1xuY29uc3QgX3RUID0gXCJ0b2tlblR5cGVcIjtcbmNvbnN0IG4wID0gXCJjb20uYW1hem9uYXdzLnNzb29pZGNcIjtcbmltcG9ydCB7IFR5cGVSZWdpc3RyeSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2NoZW1hXCI7XG5pbXBvcnQgeyBBY2Nlc3NEZW5pZWRFeGNlcHRpb24sIEF1dGhvcml6YXRpb25QZW5kaW5nRXhjZXB0aW9uLCBFeHBpcmVkVG9rZW5FeGNlcHRpb24sIEludGVybmFsU2VydmVyRXhjZXB0aW9uLCBJbnZhbGlkQ2xpZW50RXhjZXB0aW9uLCBJbnZhbGlkR3JhbnRFeGNlcHRpb24sIEludmFsaWRSZXF1ZXN0RXhjZXB0aW9uLCBJbnZhbGlkU2NvcGVFeGNlcHRpb24sIFNsb3dEb3duRXhjZXB0aW9uLCBVbmF1dGhvcml6ZWRDbGllbnRFeGNlcHRpb24sIFVuc3VwcG9ydGVkR3JhbnRUeXBlRXhjZXB0aW9uLCB9IGZyb20gXCIuLi9tb2RlbHMvZXJyb3JzXCI7XG5pbXBvcnQgeyBTU09PSURDU2VydmljZUV4Y2VwdGlvbiB9IGZyb20gXCIuLi9tb2RlbHMvU1NPT0lEQ1NlcnZpY2VFeGNlcHRpb25cIjtcbmNvbnN0IF9zX3JlZ2lzdHJ5ID0gVHlwZVJlZ2lzdHJ5LmZvcihfcyk7XG5leHBvcnQgdmFyIFNTT09JRENTZXJ2aWNlRXhjZXB0aW9uJCA9IFstMywgX3MsIFwiU1NPT0lEQ1NlcnZpY2VFeGNlcHRpb25cIiwgMCwgW10sIFtdXTtcbl9zX3JlZ2lzdHJ5LnJlZ2lzdGVyRXJyb3IoU1NPT0lEQ1NlcnZpY2VFeGNlcHRpb24kLCBTU09PSURDU2VydmljZUV4Y2VwdGlvbik7XG5jb25zdCBuMF9yZWdpc3RyeSA9IFR5cGVSZWdpc3RyeS5mb3IobjApO1xuZXhwb3J0IHZhciBBY2Nlc3NEZW5pZWRFeGNlcHRpb24kID0gW1xuICAgIC0zLFxuICAgIG4wLFxuICAgIF9BREUsXG4gICAgeyBbX2VdOiBfYywgW19oRV06IDQwMCB9LFxuICAgIFtfZSwgX3IsIF9lZF0sXG4gICAgWzAsIDAsIDBdLFxuXTtcbm4wX3JlZ2lzdHJ5LnJlZ2lzdGVyRXJyb3IoQWNjZXNzRGVuaWVkRXhjZXB0aW9uJCwgQWNjZXNzRGVuaWVkRXhjZXB0aW9uKTtcbmV4cG9ydCB2YXIgQXV0aG9yaXphdGlvblBlbmRpbmdFeGNlcHRpb24kID0gW1xuICAgIC0zLFxuICAgIG4wLFxuICAgIF9BUEUsXG4gICAgeyBbX2VdOiBfYywgW19oRV06IDQwMCB9LFxuICAgIFtfZSwgX2VkXSxcbiAgICBbMCwgMF0sXG5dO1xubjBfcmVnaXN0cnkucmVnaXN0ZXJFcnJvcihBdXRob3JpemF0aW9uUGVuZGluZ0V4Y2VwdGlvbiQsIEF1dGhvcml6YXRpb25QZW5kaW5nRXhjZXB0aW9uKTtcbmV4cG9ydCB2YXIgRXhwaXJlZFRva2VuRXhjZXB0aW9uJCA9IFstMywgbjAsIF9FVEUsIHsgW19lXTogX2MsIFtfaEVdOiA0MDAgfSwgW19lLCBfZWRdLCBbMCwgMF1dO1xubjBfcmVnaXN0cnkucmVnaXN0ZXJFcnJvcihFeHBpcmVkVG9rZW5FeGNlcHRpb24kLCBFeHBpcmVkVG9rZW5FeGNlcHRpb24pO1xuZXhwb3J0IHZhciBJbnRlcm5hbFNlcnZlckV4Y2VwdGlvbiQgPSBbLTMsIG4wLCBfSVNFLCB7IFtfZV06IF9zZSwgW19oRV06IDUwMCB9LCBbX2UsIF9lZF0sIFswLCAwXV07XG5uMF9yZWdpc3RyeS5yZWdpc3RlckVycm9yKEludGVybmFsU2VydmVyRXhjZXB0aW9uJCwgSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb24pO1xuZXhwb3J0IHZhciBJbnZhbGlkQ2xpZW50RXhjZXB0aW9uJCA9IFstMywgbjAsIF9JQ0UsIHsgW19lXTogX2MsIFtfaEVdOiA0MDEgfSwgW19lLCBfZWRdLCBbMCwgMF1dO1xubjBfcmVnaXN0cnkucmVnaXN0ZXJFcnJvcihJbnZhbGlkQ2xpZW50RXhjZXB0aW9uJCwgSW52YWxpZENsaWVudEV4Y2VwdGlvbik7XG5leHBvcnQgdmFyIEludmFsaWRHcmFudEV4Y2VwdGlvbiQgPSBbLTMsIG4wLCBfSUdFLCB7IFtfZV06IF9jLCBbX2hFXTogNDAwIH0sIFtfZSwgX2VkXSwgWzAsIDBdXTtcbm4wX3JlZ2lzdHJ5LnJlZ2lzdGVyRXJyb3IoSW52YWxpZEdyYW50RXhjZXB0aW9uJCwgSW52YWxpZEdyYW50RXhjZXB0aW9uKTtcbmV4cG9ydCB2YXIgSW52YWxpZFJlcXVlc3RFeGNlcHRpb24kID0gW1xuICAgIC0zLFxuICAgIG4wLFxuICAgIF9JUkUsXG4gICAgeyBbX2VdOiBfYywgW19oRV06IDQwMCB9LFxuICAgIFtfZSwgX3IsIF9lZF0sXG4gICAgWzAsIDAsIDBdLFxuXTtcbm4wX3JlZ2lzdHJ5LnJlZ2lzdGVyRXJyb3IoSW52YWxpZFJlcXVlc3RFeGNlcHRpb24kLCBJbnZhbGlkUmVxdWVzdEV4Y2VwdGlvbik7XG5leHBvcnQgdmFyIEludmFsaWRTY29wZUV4Y2VwdGlvbiQgPSBbLTMsIG4wLCBfSVNFbiwgeyBbX2VdOiBfYywgW19oRV06IDQwMCB9LCBbX2UsIF9lZF0sIFswLCAwXV07XG5uMF9yZWdpc3RyeS5yZWdpc3RlckVycm9yKEludmFsaWRTY29wZUV4Y2VwdGlvbiQsIEludmFsaWRTY29wZUV4Y2VwdGlvbik7XG5leHBvcnQgdmFyIFNsb3dEb3duRXhjZXB0aW9uJCA9IFstMywgbjAsIF9TREUsIHsgW19lXTogX2MsIFtfaEVdOiA0MDAgfSwgW19lLCBfZWRdLCBbMCwgMF1dO1xubjBfcmVnaXN0cnkucmVnaXN0ZXJFcnJvcihTbG93RG93bkV4Y2VwdGlvbiQsIFNsb3dEb3duRXhjZXB0aW9uKTtcbmV4cG9ydCB2YXIgVW5hdXRob3JpemVkQ2xpZW50RXhjZXB0aW9uJCA9IFtcbiAgICAtMyxcbiAgICBuMCxcbiAgICBfVUNFLFxuICAgIHsgW19lXTogX2MsIFtfaEVdOiA0MDAgfSxcbiAgICBbX2UsIF9lZF0sXG4gICAgWzAsIDBdLFxuXTtcbm4wX3JlZ2lzdHJ5LnJlZ2lzdGVyRXJyb3IoVW5hdXRob3JpemVkQ2xpZW50RXhjZXB0aW9uJCwgVW5hdXRob3JpemVkQ2xpZW50RXhjZXB0aW9uKTtcbmV4cG9ydCB2YXIgVW5zdXBwb3J0ZWRHcmFudFR5cGVFeGNlcHRpb24kID0gW1xuICAgIC0zLFxuICAgIG4wLFxuICAgIF9VR1RFLFxuICAgIHsgW19lXTogX2MsIFtfaEVdOiA0MDAgfSxcbiAgICBbX2UsIF9lZF0sXG4gICAgWzAsIDBdLFxuXTtcbm4wX3JlZ2lzdHJ5LnJlZ2lzdGVyRXJyb3IoVW5zdXBwb3J0ZWRHcmFudFR5cGVFeGNlcHRpb24kLCBVbnN1cHBvcnRlZEdyYW50VHlwZUV4Y2VwdGlvbik7XG5leHBvcnQgY29uc3QgZXJyb3JUeXBlUmVnaXN0cmllcyA9IFtfc19yZWdpc3RyeSwgbjBfcmVnaXN0cnldO1xudmFyIEFjY2Vzc1Rva2VuID0gWzAsIG4wLCBfQVQsIDgsIDBdO1xudmFyIENsaWVudFNlY3JldCA9IFswLCBuMCwgX0NTLCA4LCAwXTtcbnZhciBDb2RlVmVyaWZpZXIgPSBbMCwgbjAsIF9DViwgOCwgMF07XG52YXIgSWRUb2tlbiA9IFswLCBuMCwgX0lULCA4LCAwXTtcbnZhciBSZWZyZXNoVG9rZW4gPSBbMCwgbjAsIF9SVCwgOCwgMF07XG5leHBvcnQgdmFyIENyZWF0ZVRva2VuUmVxdWVzdCQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfQ1RSLFxuICAgIDAsXG4gICAgW19jSSwgX2NTLCBfZ1QsIF9kQywgX2NvLCBfclQsIF9zYywgX3JVLCBfY1ZdLFxuICAgIFswLCBbKCkgPT4gQ2xpZW50U2VjcmV0LCAwXSwgMCwgMCwgMCwgWygpID0+IFJlZnJlc2hUb2tlbiwgMF0sIDY0IHwgMCwgMCwgWygpID0+IENvZGVWZXJpZmllciwgMF1dLFxuICAgIDMsXG5dO1xuZXhwb3J0IHZhciBDcmVhdGVUb2tlblJlc3BvbnNlJCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9DVFJyLFxuICAgIDAsXG4gICAgW19hVCwgX3RULCBfZUksIF9yVCwgX2lUXSxcbiAgICBbWygpID0+IEFjY2Vzc1Rva2VuLCAwXSwgMCwgMSwgWygpID0+IFJlZnJlc2hUb2tlbiwgMF0sIFsoKSA9PiBJZFRva2VuLCAwXV0sXG5dO1xudmFyIFNjb3BlcyA9IDY0IHwgMDtcbmV4cG9ydCB2YXIgQ3JlYXRlVG9rZW4kID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0NULFxuICAgIHsgW19oXTogW1wiUE9TVFwiLCBcIi90b2tlblwiLCAyMDBdIH0sXG4gICAgKCkgPT4gQ3JlYXRlVG9rZW5SZXF1ZXN0JCxcbiAgICAoKSA9PiBDcmVhdGVUb2tlblJlc3BvbnNlJCxcbl07XG4iLCAiaW1wb3J0IHsgQXdzU2RrU2lnVjRTaWduZXIgfSBmcm9tIFwiQGF3cy1zZGsvY29yZVwiO1xuaW1wb3J0IHsgQXdzUmVzdEpzb25Qcm90b2NvbCB9IGZyb20gXCJAYXdzLXNkay9jb3JlL3Byb3RvY29sc1wiO1xuaW1wb3J0IHsgTm9BdXRoU2lnbmVyIH0gZnJvbSBcIkBzbWl0aHkvY29yZVwiO1xuaW1wb3J0IHsgTm9PcExvZ2dlciB9IGZyb20gXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjtcbmltcG9ydCB7IHBhcnNlVXJsIH0gZnJvbSBcIkBzbWl0aHkvdXJsLXBhcnNlclwiO1xuaW1wb3J0IHsgZnJvbUJhc2U2NCwgdG9CYXNlNjQgfSBmcm9tIFwiQHNtaXRoeS91dGlsLWJhc2U2NFwiO1xuaW1wb3J0IHsgZnJvbVV0ZjgsIHRvVXRmOCB9IGZyb20gXCJAc21pdGh5L3V0aWwtdXRmOFwiO1xuaW1wb3J0IHsgZGVmYXVsdFNTT09JRENIdHRwQXV0aFNjaGVtZVByb3ZpZGVyIH0gZnJvbSBcIi4vYXV0aC9odHRwQXV0aFNjaGVtZVByb3ZpZGVyXCI7XG5pbXBvcnQgeyBkZWZhdWx0RW5kcG9pbnRSZXNvbHZlciB9IGZyb20gXCIuL2VuZHBvaW50L2VuZHBvaW50UmVzb2x2ZXJcIjtcbmltcG9ydCB7IGVycm9yVHlwZVJlZ2lzdHJpZXMgfSBmcm9tIFwiLi9zY2hlbWFzL3NjaGVtYXNfMFwiO1xuZXhwb3J0IGNvbnN0IGdldFJ1bnRpbWVDb25maWcgPSAoY29uZmlnKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgYXBpVmVyc2lvbjogXCIyMDE5LTA2LTEwXCIsXG4gICAgICAgIGJhc2U2NERlY29kZXI6IGNvbmZpZz8uYmFzZTY0RGVjb2RlciA/PyBmcm9tQmFzZTY0LFxuICAgICAgICBiYXNlNjRFbmNvZGVyOiBjb25maWc/LmJhc2U2NEVuY29kZXIgPz8gdG9CYXNlNjQsXG4gICAgICAgIGRpc2FibGVIb3N0UHJlZml4OiBjb25maWc/LmRpc2FibGVIb3N0UHJlZml4ID8/IGZhbHNlLFxuICAgICAgICBlbmRwb2ludFByb3ZpZGVyOiBjb25maWc/LmVuZHBvaW50UHJvdmlkZXIgPz8gZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIsXG4gICAgICAgIGV4dGVuc2lvbnM6IGNvbmZpZz8uZXh0ZW5zaW9ucyA/PyBbXSxcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVQcm92aWRlcjogY29uZmlnPy5odHRwQXV0aFNjaGVtZVByb3ZpZGVyID8/IGRlZmF1bHRTU09PSURDSHR0cEF1dGhTY2hlbWVQcm92aWRlcixcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVzOiBjb25maWc/Lmh0dHBBdXRoU2NoZW1lcyA/PyBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgc2NoZW1lSWQ6IFwiYXdzLmF1dGgjc2lndjRcIixcbiAgICAgICAgICAgICAgICBpZGVudGl0eVByb3ZpZGVyOiAoaXBjKSA9PiBpcGMuZ2V0SWRlbnRpdHlQcm92aWRlcihcImF3cy5hdXRoI3NpZ3Y0XCIpLFxuICAgICAgICAgICAgICAgIHNpZ25lcjogbmV3IEF3c1Nka1NpZ1Y0U2lnbmVyKCksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHNjaGVtZUlkOiBcInNtaXRoeS5hcGkjbm9BdXRoXCIsXG4gICAgICAgICAgICAgICAgaWRlbnRpdHlQcm92aWRlcjogKGlwYykgPT4gaXBjLmdldElkZW50aXR5UHJvdmlkZXIoXCJzbWl0aHkuYXBpI25vQXV0aFwiKSB8fCAoYXN5bmMgKCkgPT4gKHt9KSksXG4gICAgICAgICAgICAgICAgc2lnbmVyOiBuZXcgTm9BdXRoU2lnbmVyKCksXG4gICAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBsb2dnZXI6IGNvbmZpZz8ubG9nZ2VyID8/IG5ldyBOb09wTG9nZ2VyKCksXG4gICAgICAgIHByb3RvY29sOiBjb25maWc/LnByb3RvY29sID8/IEF3c1Jlc3RKc29uUHJvdG9jb2wsXG4gICAgICAgIHByb3RvY29sU2V0dGluZ3M6IGNvbmZpZz8ucHJvdG9jb2xTZXR0aW5ncyA/PyB7XG4gICAgICAgICAgICBkZWZhdWx0TmFtZXNwYWNlOiBcImNvbS5hbWF6b25hd3Muc3Nvb2lkY1wiLFxuICAgICAgICAgICAgZXJyb3JUeXBlUmVnaXN0cmllcyxcbiAgICAgICAgICAgIHZlcnNpb246IFwiMjAxOS0wNi0xMFwiLFxuICAgICAgICAgICAgc2VydmljZVRhcmdldDogXCJBV1NTU09PSURDU2VydmljZVwiLFxuICAgICAgICB9LFxuICAgICAgICBzZXJ2aWNlSWQ6IGNvbmZpZz8uc2VydmljZUlkID8/IFwiU1NPIE9JRENcIixcbiAgICAgICAgdXJsUGFyc2VyOiBjb25maWc/LnVybFBhcnNlciA/PyBwYXJzZVVybCxcbiAgICAgICAgdXRmOERlY29kZXI6IGNvbmZpZz8udXRmOERlY29kZXIgPz8gZnJvbVV0ZjgsXG4gICAgICAgIHV0ZjhFbmNvZGVyOiBjb25maWc/LnV0ZjhFbmNvZGVyID8/IHRvVXRmOCxcbiAgICB9O1xufTtcbiIsICJpbXBvcnQgcGFja2FnZUluZm8gZnJvbSBcIi4uLy4uLy4uL3BhY2thZ2UuanNvblwiO1xuaW1wb3J0IHsgZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbiBhcyBhd3NDaGVja1ZlcnNpb24sIE5PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9PUFRJT05TIH0gZnJvbSBcIkBhd3Mtc2RrL2NvcmVcIjtcbmltcG9ydCB7IGNyZWF0ZURlZmF1bHRVc2VyQWdlbnRQcm92aWRlciwgTk9ERV9BUFBfSURfQ09ORklHX09QVElPTlMgfSBmcm9tIFwiQGF3cy1zZGsvdXRpbC11c2VyLWFnZW50LW5vZGVcIjtcbmltcG9ydCB7IE5PREVfUkVHSU9OX0NPTkZJR19GSUxFX09QVElPTlMsIE5PREVfUkVHSU9OX0NPTkZJR19PUFRJT05TLCBOT0RFX1VTRV9EVUFMU1RBQ0tfRU5EUE9JTlRfQ09ORklHX09QVElPTlMsIE5PREVfVVNFX0ZJUFNfRU5EUE9JTlRfQ09ORklHX09QVElPTlMsIH0gZnJvbSBcIkBzbWl0aHkvY29uZmlnLXJlc29sdmVyXCI7XG5pbXBvcnQgeyBIYXNoIH0gZnJvbSBcIkBzbWl0aHkvaGFzaC1ub2RlXCI7XG5pbXBvcnQgeyBOT0RFX01BWF9BVFRFTVBUX0NPTkZJR19PUFRJT05TLCBOT0RFX1JFVFJZX01PREVfQ09ORklHX09QVElPTlMgfSBmcm9tIFwiQHNtaXRoeS9taWRkbGV3YXJlLXJldHJ5XCI7XG5pbXBvcnQgeyBsb2FkQ29uZmlnIGFzIGxvYWROb2RlQ29uZmlnIH0gZnJvbSBcIkBzbWl0aHkvbm9kZS1jb25maWctcHJvdmlkZXJcIjtcbmltcG9ydCB7IE5vZGVIdHRwSGFuZGxlciBhcyBSZXF1ZXN0SGFuZGxlciwgc3RyZWFtQ29sbGVjdG9yIH0gZnJvbSBcIkBzbWl0aHkvbm9kZS1odHRwLWhhbmRsZXJcIjtcbmltcG9ydCB7IGVtaXRXYXJuaW5nSWZVbnN1cHBvcnRlZFZlcnNpb24sIGxvYWRDb25maWdzRm9yRGVmYXVsdE1vZGUgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyBjYWxjdWxhdGVCb2R5TGVuZ3RoIH0gZnJvbSBcIkBzbWl0aHkvdXRpbC1ib2R5LWxlbmd0aC1ub2RlXCI7XG5pbXBvcnQgeyByZXNvbHZlRGVmYXVsdHNNb2RlQ29uZmlnIH0gZnJvbSBcIkBzbWl0aHkvdXRpbC1kZWZhdWx0cy1tb2RlLW5vZGVcIjtcbmltcG9ydCB7IERFRkFVTFRfUkVUUllfTU9ERSB9IGZyb20gXCJAc21pdGh5L3V0aWwtcmV0cnlcIjtcbmltcG9ydCB7IGdldFJ1bnRpbWVDb25maWcgYXMgZ2V0U2hhcmVkUnVudGltZUNvbmZpZyB9IGZyb20gXCIuL3J1bnRpbWVDb25maWcuc2hhcmVkXCI7XG5leHBvcnQgY29uc3QgZ2V0UnVudGltZUNvbmZpZyA9IChjb25maWcpID0+IHtcbiAgICBlbWl0V2FybmluZ0lmVW5zdXBwb3J0ZWRWZXJzaW9uKHByb2Nlc3MudmVyc2lvbik7XG4gICAgY29uc3QgZGVmYXVsdHNNb2RlID0gcmVzb2x2ZURlZmF1bHRzTW9kZUNvbmZpZyhjb25maWcpO1xuICAgIGNvbnN0IGRlZmF1bHRDb25maWdQcm92aWRlciA9ICgpID0+IGRlZmF1bHRzTW9kZSgpLnRoZW4obG9hZENvbmZpZ3NGb3JEZWZhdWx0TW9kZSk7XG4gICAgY29uc3QgY2xpZW50U2hhcmVkVmFsdWVzID0gZ2V0U2hhcmVkUnVudGltZUNvbmZpZyhjb25maWcpO1xuICAgIGF3c0NoZWNrVmVyc2lvbihwcm9jZXNzLnZlcnNpb24pO1xuICAgIGNvbnN0IGxvYWRlckNvbmZpZyA9IHtcbiAgICAgICAgcHJvZmlsZTogY29uZmlnPy5wcm9maWxlLFxuICAgICAgICBsb2dnZXI6IGNsaWVudFNoYXJlZFZhbHVlcy5sb2dnZXIsXG4gICAgfTtcbiAgICByZXR1cm4ge1xuICAgICAgICAuLi5jbGllbnRTaGFyZWRWYWx1ZXMsXG4gICAgICAgIC4uLmNvbmZpZyxcbiAgICAgICAgcnVudGltZTogXCJub2RlXCIsXG4gICAgICAgIGRlZmF1bHRzTW9kZSxcbiAgICAgICAgYXV0aFNjaGVtZVByZWZlcmVuY2U6IGNvbmZpZz8uYXV0aFNjaGVtZVByZWZlcmVuY2UgPz8gbG9hZE5vZGVDb25maWcoTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX09QVElPTlMsIGxvYWRlckNvbmZpZyksXG4gICAgICAgIGJvZHlMZW5ndGhDaGVja2VyOiBjb25maWc/LmJvZHlMZW5ndGhDaGVja2VyID8/IGNhbGN1bGF0ZUJvZHlMZW5ndGgsXG4gICAgICAgIGRlZmF1bHRVc2VyQWdlbnRQcm92aWRlcjogY29uZmlnPy5kZWZhdWx0VXNlckFnZW50UHJvdmlkZXIgPz9cbiAgICAgICAgICAgIGNyZWF0ZURlZmF1bHRVc2VyQWdlbnRQcm92aWRlcih7IHNlcnZpY2VJZDogY2xpZW50U2hhcmVkVmFsdWVzLnNlcnZpY2VJZCwgY2xpZW50VmVyc2lvbjogcGFja2FnZUluZm8udmVyc2lvbiB9KSxcbiAgICAgICAgbWF4QXR0ZW1wdHM6IGNvbmZpZz8ubWF4QXR0ZW1wdHMgPz8gbG9hZE5vZGVDb25maWcoTk9ERV9NQVhfQVRURU1QVF9DT05GSUdfT1BUSU9OUywgY29uZmlnKSxcbiAgICAgICAgcmVnaW9uOiBjb25maWc/LnJlZ2lvbiA/P1xuICAgICAgICAgICAgbG9hZE5vZGVDb25maWcoTk9ERV9SRUdJT05fQ09ORklHX09QVElPTlMsIHsgLi4uTk9ERV9SRUdJT05fQ09ORklHX0ZJTEVfT1BUSU9OUywgLi4ubG9hZGVyQ29uZmlnIH0pLFxuICAgICAgICByZXF1ZXN0SGFuZGxlcjogUmVxdWVzdEhhbmRsZXIuY3JlYXRlKGNvbmZpZz8ucmVxdWVzdEhhbmRsZXIgPz8gZGVmYXVsdENvbmZpZ1Byb3ZpZGVyKSxcbiAgICAgICAgcmV0cnlNb2RlOiBjb25maWc/LnJldHJ5TW9kZSA/P1xuICAgICAgICAgICAgbG9hZE5vZGVDb25maWcoe1xuICAgICAgICAgICAgICAgIC4uLk5PREVfUkVUUllfTU9ERV9DT05GSUdfT1BUSU9OUyxcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiBhc3luYyAoKSA9PiAoYXdhaXQgZGVmYXVsdENvbmZpZ1Byb3ZpZGVyKCkpLnJldHJ5TW9kZSB8fCBERUZBVUxUX1JFVFJZX01PREUsXG4gICAgICAgICAgICB9LCBjb25maWcpLFxuICAgICAgICBzaGEyNTY6IGNvbmZpZz8uc2hhMjU2ID8/IEhhc2guYmluZChudWxsLCBcInNoYTI1NlwiKSxcbiAgICAgICAgc3RyZWFtQ29sbGVjdG9yOiBjb25maWc/LnN0cmVhbUNvbGxlY3RvciA/PyBzdHJlYW1Db2xsZWN0b3IsXG4gICAgICAgIHVzZUR1YWxzdGFja0VuZHBvaW50OiBjb25maWc/LnVzZUR1YWxzdGFja0VuZHBvaW50ID8/IGxvYWROb2RlQ29uZmlnKE5PREVfVVNFX0RVQUxTVEFDS19FTkRQT0lOVF9DT05GSUdfT1BUSU9OUywgbG9hZGVyQ29uZmlnKSxcbiAgICAgICAgdXNlRmlwc0VuZHBvaW50OiBjb25maWc/LnVzZUZpcHNFbmRwb2ludCA/PyBsb2FkTm9kZUNvbmZpZyhOT0RFX1VTRV9GSVBTX0VORFBPSU5UX0NPTkZJR19PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgICAgICB1c2VyQWdlbnRBcHBJZDogY29uZmlnPy51c2VyQWdlbnRBcHBJZCA/PyBsb2FkTm9kZUNvbmZpZyhOT0RFX0FQUF9JRF9DT05GSUdfT1BUSU9OUywgbG9hZGVyQ29uZmlnKSxcbiAgICB9O1xufTtcbiIsICJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMud2FybmluZyA9IHZvaWQgMDtcbmV4cG9ydHMuc3RzUmVnaW9uRGVmYXVsdFJlc29sdmVyID0gc3RzUmVnaW9uRGVmYXVsdFJlc29sdmVyO1xuY29uc3QgY29uZmlnX3Jlc29sdmVyXzEgPSByZXF1aXJlKFwiQHNtaXRoeS9jb25maWctcmVzb2x2ZXJcIik7XG5jb25zdCBub2RlX2NvbmZpZ19wcm92aWRlcl8xID0gcmVxdWlyZShcIkBzbWl0aHkvbm9kZS1jb25maWctcHJvdmlkZXJcIik7XG5mdW5jdGlvbiBzdHNSZWdpb25EZWZhdWx0UmVzb2x2ZXIobG9hZGVyQ29uZmlnID0ge30pIHtcbiAgICByZXR1cm4gKDAsIG5vZGVfY29uZmlnX3Byb3ZpZGVyXzEubG9hZENvbmZpZykoe1xuICAgICAgICAuLi5jb25maWdfcmVzb2x2ZXJfMS5OT0RFX1JFR0lPTl9DT05GSUdfT1BUSU9OUyxcbiAgICAgICAgYXN5bmMgZGVmYXVsdCgpIHtcbiAgICAgICAgICAgIGlmICghZXhwb3J0cy53YXJuaW5nLnNpbGVuY2UpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oXCJAYXdzLXNkayAtIFdBUk4gLSBkZWZhdWx0IFNUUyByZWdpb24gb2YgdXMtZWFzdC0xIHVzZWQuIFNlZSBAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVycyBSRUFETUUgYW5kIHNldCBhIHJlZ2lvbiBleHBsaWNpdGx5LlwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBcInVzLWVhc3QtMVwiO1xuICAgICAgICB9LFxuICAgIH0sIHsgLi4uY29uZmlnX3Jlc29sdmVyXzEuTk9ERV9SRUdJT05fQ09ORklHX0ZJTEVfT1BUSU9OUywgLi4ubG9hZGVyQ29uZmlnIH0pO1xufVxuZXhwb3J0cy53YXJuaW5nID0ge1xuICAgIHNpbGVuY2U6IGZhbHNlLFxufTtcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBzdHNSZWdpb25EZWZhdWx0UmVzb2x2ZXIgPSByZXF1aXJlKCcuL3JlZ2lvbkNvbmZpZy9zdHNSZWdpb25EZWZhdWx0UmVzb2x2ZXInKTtcbnZhciBjb25maWdSZXNvbHZlciA9IHJlcXVpcmUoJ0BzbWl0aHkvY29uZmlnLXJlc29sdmVyJyk7XG5cbmNvbnN0IGdldEF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24gPSAocnVudGltZUNvbmZpZykgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIHNldFJlZ2lvbihyZWdpb24pIHtcbiAgICAgICAgICAgIHJ1bnRpbWVDb25maWcucmVnaW9uID0gcmVnaW9uO1xuICAgICAgICB9LFxuICAgICAgICByZWdpb24oKSB7XG4gICAgICAgICAgICByZXR1cm4gcnVudGltZUNvbmZpZy5yZWdpb247XG4gICAgICAgIH0sXG4gICAgfTtcbn07XG5jb25zdCByZXNvbHZlQXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiA9IChhd3NSZWdpb25FeHRlbnNpb25Db25maWd1cmF0aW9uKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcmVnaW9uOiBhd3NSZWdpb25FeHRlbnNpb25Db25maWd1cmF0aW9uLnJlZ2lvbigpLFxuICAgIH07XG59O1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJOT0RFX1JFR0lPTl9DT05GSUdfRklMRV9PUFRJT05TXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gY29uZmlnUmVzb2x2ZXIuTk9ERV9SRUdJT05fQ09ORklHX0ZJTEVfT1BUSU9OUzsgfVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJOT0RFX1JFR0lPTl9DT05GSUdfT1BUSU9OU1wiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGNvbmZpZ1Jlc29sdmVyLk5PREVfUkVHSU9OX0NPTkZJR19PUFRJT05TOyB9XG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIlJFR0lPTl9FTlZfTkFNRVwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGNvbmZpZ1Jlc29sdmVyLlJFR0lPTl9FTlZfTkFNRTsgfVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJSRUdJT05fSU5JX05BTUVcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBjb25maWdSZXNvbHZlci5SRUdJT05fSU5JX05BTUU7IH1cbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwicmVzb2x2ZVJlZ2lvbkNvbmZpZ1wiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGNvbmZpZ1Jlc29sdmVyLnJlc29sdmVSZWdpb25Db25maWc7IH1cbn0pO1xuZXhwb3J0cy5nZXRBd3NSZWdpb25FeHRlbnNpb25Db25maWd1cmF0aW9uID0gZ2V0QXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbjtcbmV4cG9ydHMucmVzb2x2ZUF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24gPSByZXNvbHZlQXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbjtcbk9iamVjdC5rZXlzKHN0c1JlZ2lvbkRlZmF1bHRSZXNvbHZlcikuZm9yRWFjaChmdW5jdGlvbiAoaykge1xuICAgIGlmIChrICE9PSAnZGVmYXVsdCcgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChleHBvcnRzLCBrKSkgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIGssIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBzdHNSZWdpb25EZWZhdWx0UmVzb2x2ZXJba107IH1cbiAgICB9KTtcbn0pO1xuIiwgImV4cG9ydCBjb25zdCBnZXRIdHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24gPSAocnVudGltZUNvbmZpZykgPT4ge1xuICAgIGNvbnN0IF9odHRwQXV0aFNjaGVtZXMgPSBydW50aW1lQ29uZmlnLmh0dHBBdXRoU2NoZW1lcztcbiAgICBsZXQgX2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSBydW50aW1lQ29uZmlnLmh0dHBBdXRoU2NoZW1lUHJvdmlkZXI7XG4gICAgbGV0IF9jcmVkZW50aWFscyA9IHJ1bnRpbWVDb25maWcuY3JlZGVudGlhbHM7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc2V0SHR0cEF1dGhTY2hlbWUoaHR0cEF1dGhTY2hlbWUpIHtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gX2h0dHBBdXRoU2NoZW1lcy5maW5kSW5kZXgoKHNjaGVtZSkgPT4gc2NoZW1lLnNjaGVtZUlkID09PSBodHRwQXV0aFNjaGVtZS5zY2hlbWVJZCk7XG4gICAgICAgICAgICBpZiAoaW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgX2h0dHBBdXRoU2NoZW1lcy5wdXNoKGh0dHBBdXRoU2NoZW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIF9odHRwQXV0aFNjaGVtZXMuc3BsaWNlKGluZGV4LCAxLCBodHRwQXV0aFNjaGVtZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGh0dHBBdXRoU2NoZW1lcygpIHtcbiAgICAgICAgICAgIHJldHVybiBfaHR0cEF1dGhTY2hlbWVzO1xuICAgICAgICB9LFxuICAgICAgICBzZXRIdHRwQXV0aFNjaGVtZVByb3ZpZGVyKGh0dHBBdXRoU2NoZW1lUHJvdmlkZXIpIHtcbiAgICAgICAgICAgIF9odHRwQXV0aFNjaGVtZVByb3ZpZGVyID0gaHR0cEF1dGhTY2hlbWVQcm92aWRlcjtcbiAgICAgICAgfSxcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVQcm92aWRlcigpIHtcbiAgICAgICAgICAgIHJldHVybiBfaHR0cEF1dGhTY2hlbWVQcm92aWRlcjtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0Q3JlZGVudGlhbHMoY3JlZGVudGlhbHMpIHtcbiAgICAgICAgICAgIF9jcmVkZW50aWFscyA9IGNyZWRlbnRpYWxzO1xuICAgICAgICB9LFxuICAgICAgICBjcmVkZW50aWFscygpIHtcbiAgICAgICAgICAgIHJldHVybiBfY3JlZGVudGlhbHM7XG4gICAgICAgIH0sXG4gICAgfTtcbn07XG5leHBvcnQgY29uc3QgcmVzb2x2ZUh0dHBBdXRoUnVudGltZUNvbmZpZyA9IChjb25maWcpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgICBodHRwQXV0aFNjaGVtZXM6IGNvbmZpZy5odHRwQXV0aFNjaGVtZXMoKSxcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVQcm92aWRlcjogY29uZmlnLmh0dHBBdXRoU2NoZW1lUHJvdmlkZXIoKSxcbiAgICAgICAgY3JlZGVudGlhbHM6IGNvbmZpZy5jcmVkZW50aWFscygpLFxuICAgIH07XG59O1xuIiwgImltcG9ydCB7IGdldEF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24sIHJlc29sdmVBd3NSZWdpb25FeHRlbnNpb25Db25maWd1cmF0aW9uLCB9IGZyb20gXCJAYXdzLXNkay9yZWdpb24tY29uZmlnLXJlc29sdmVyXCI7XG5pbXBvcnQgeyBnZXRIdHRwSGFuZGxlckV4dGVuc2lvbkNvbmZpZ3VyYXRpb24sIHJlc29sdmVIdHRwSGFuZGxlclJ1bnRpbWVDb25maWcgfSBmcm9tIFwiQHNtaXRoeS9wcm90b2NvbC1odHRwXCI7XG5pbXBvcnQgeyBnZXREZWZhdWx0RXh0ZW5zaW9uQ29uZmlndXJhdGlvbiwgcmVzb2x2ZURlZmF1bHRSdW50aW1lQ29uZmlnIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgZ2V0SHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uLCByZXNvbHZlSHR0cEF1dGhSdW50aW1lQ29uZmlnIH0gZnJvbSBcIi4vYXV0aC9odHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb25cIjtcbmV4cG9ydCBjb25zdCByZXNvbHZlUnVudGltZUV4dGVuc2lvbnMgPSAocnVudGltZUNvbmZpZywgZXh0ZW5zaW9ucykgPT4ge1xuICAgIGNvbnN0IGV4dGVuc2lvbkNvbmZpZ3VyYXRpb24gPSBPYmplY3QuYXNzaWduKGdldEF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24ocnVudGltZUNvbmZpZyksIGdldERlZmF1bHRFeHRlbnNpb25Db25maWd1cmF0aW9uKHJ1bnRpbWVDb25maWcpLCBnZXRIdHRwSGFuZGxlckV4dGVuc2lvbkNvbmZpZ3VyYXRpb24ocnVudGltZUNvbmZpZyksIGdldEh0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbihydW50aW1lQ29uZmlnKSk7XG4gICAgZXh0ZW5zaW9ucy5mb3JFYWNoKChleHRlbnNpb24pID0+IGV4dGVuc2lvbi5jb25maWd1cmUoZXh0ZW5zaW9uQ29uZmlndXJhdGlvbikpO1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHJ1bnRpbWVDb25maWcsIHJlc29sdmVBd3NSZWdpb25FeHRlbnNpb25Db25maWd1cmF0aW9uKGV4dGVuc2lvbkNvbmZpZ3VyYXRpb24pLCByZXNvbHZlRGVmYXVsdFJ1bnRpbWVDb25maWcoZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiksIHJlc29sdmVIdHRwSGFuZGxlclJ1bnRpbWVDb25maWcoZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiksIHJlc29sdmVIdHRwQXV0aFJ1bnRpbWVDb25maWcoZXh0ZW5zaW9uQ29uZmlndXJhdGlvbikpO1xufTtcbiIsICJpbXBvcnQgeyBnZXRIb3N0SGVhZGVyUGx1Z2luLCByZXNvbHZlSG9zdEhlYWRlckNvbmZpZywgfSBmcm9tIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1ob3N0LWhlYWRlclwiO1xuaW1wb3J0IHsgZ2V0TG9nZ2VyUGx1Z2luIH0gZnJvbSBcIkBhd3Mtc2RrL21pZGRsZXdhcmUtbG9nZ2VyXCI7XG5pbXBvcnQgeyBnZXRSZWN1cnNpb25EZXRlY3Rpb25QbHVnaW4gfSBmcm9tIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1yZWN1cnNpb24tZGV0ZWN0aW9uXCI7XG5pbXBvcnQgeyBnZXRVc2VyQWdlbnRQbHVnaW4sIHJlc29sdmVVc2VyQWdlbnRDb25maWcsIH0gZnJvbSBcIkBhd3Mtc2RrL21pZGRsZXdhcmUtdXNlci1hZ2VudFwiO1xuaW1wb3J0IHsgcmVzb2x2ZVJlZ2lvbkNvbmZpZyB9IGZyb20gXCJAc21pdGh5L2NvbmZpZy1yZXNvbHZlclwiO1xuaW1wb3J0IHsgRGVmYXVsdElkZW50aXR5UHJvdmlkZXJDb25maWcsIGdldEh0dHBBdXRoU2NoZW1lRW5kcG9pbnRSdWxlU2V0UGx1Z2luLCBnZXRIdHRwU2lnbmluZ1BsdWdpbiwgfSBmcm9tIFwiQHNtaXRoeS9jb3JlXCI7XG5pbXBvcnQgeyBnZXRTY2hlbWFTZXJkZVBsdWdpbiB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2NoZW1hXCI7XG5pbXBvcnQgeyBnZXRDb250ZW50TGVuZ3RoUGx1Z2luIH0gZnJvbSBcIkBzbWl0aHkvbWlkZGxld2FyZS1jb250ZW50LWxlbmd0aFwiO1xuaW1wb3J0IHsgcmVzb2x2ZUVuZHBvaW50Q29uZmlnLCB9IGZyb20gXCJAc21pdGh5L21pZGRsZXdhcmUtZW5kcG9pbnRcIjtcbmltcG9ydCB7IGdldFJldHJ5UGx1Z2luLCByZXNvbHZlUmV0cnlDb25maWcsIH0gZnJvbSBcIkBzbWl0aHkvbWlkZGxld2FyZS1yZXRyeVwiO1xuaW1wb3J0IHsgQ2xpZW50IGFzIF9fQ2xpZW50LCB9IGZyb20gXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjtcbmltcG9ydCB7IGRlZmF1bHRTU09PSURDSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIsIHJlc29sdmVIdHRwQXV0aFNjaGVtZUNvbmZpZywgfSBmcm9tIFwiLi9hdXRoL2h0dHBBdXRoU2NoZW1lUHJvdmlkZXJcIjtcbmltcG9ydCB7IHJlc29sdmVDbGllbnRFbmRwb2ludFBhcmFtZXRlcnMgfSBmcm9tIFwiLi9lbmRwb2ludC9FbmRwb2ludFBhcmFtZXRlcnNcIjtcbmltcG9ydCB7IGdldFJ1bnRpbWVDb25maWcgYXMgX19nZXRSdW50aW1lQ29uZmlnIH0gZnJvbSBcIi4vcnVudGltZUNvbmZpZ1wiO1xuaW1wb3J0IHsgcmVzb2x2ZVJ1bnRpbWVFeHRlbnNpb25zIH0gZnJvbSBcIi4vcnVudGltZUV4dGVuc2lvbnNcIjtcbmV4cG9ydCB7IF9fQ2xpZW50IH07XG5leHBvcnQgY2xhc3MgU1NPT0lEQ0NsaWVudCBleHRlbmRzIF9fQ2xpZW50IHtcbiAgICBjb25maWc7XG4gICAgY29uc3RydWN0b3IoLi4uW2NvbmZpZ3VyYXRpb25dKSB7XG4gICAgICAgIGNvbnN0IF9jb25maWdfMCA9IF9fZ2V0UnVudGltZUNvbmZpZyhjb25maWd1cmF0aW9uIHx8IHt9KTtcbiAgICAgICAgc3VwZXIoX2NvbmZpZ18wKTtcbiAgICAgICAgdGhpcy5pbml0Q29uZmlnID0gX2NvbmZpZ18wO1xuICAgICAgICBjb25zdCBfY29uZmlnXzEgPSByZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzKF9jb25maWdfMCk7XG4gICAgICAgIGNvbnN0IF9jb25maWdfMiA9IHJlc29sdmVVc2VyQWdlbnRDb25maWcoX2NvbmZpZ18xKTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ18zID0gcmVzb2x2ZVJldHJ5Q29uZmlnKF9jb25maWdfMik7XG4gICAgICAgIGNvbnN0IF9jb25maWdfNCA9IHJlc29sdmVSZWdpb25Db25maWcoX2NvbmZpZ18zKTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ181ID0gcmVzb2x2ZUhvc3RIZWFkZXJDb25maWcoX2NvbmZpZ180KTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ182ID0gcmVzb2x2ZUVuZHBvaW50Q29uZmlnKF9jb25maWdfNSk7XG4gICAgICAgIGNvbnN0IF9jb25maWdfNyA9IHJlc29sdmVIdHRwQXV0aFNjaGVtZUNvbmZpZyhfY29uZmlnXzYpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzggPSByZXNvbHZlUnVudGltZUV4dGVuc2lvbnMoX2NvbmZpZ183LCBjb25maWd1cmF0aW9uPy5leHRlbnNpb25zIHx8IFtdKTtcbiAgICAgICAgdGhpcy5jb25maWcgPSBfY29uZmlnXzg7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShnZXRTY2hlbWFTZXJkZVBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoZ2V0VXNlckFnZW50UGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShnZXRSZXRyeVBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoZ2V0Q29udGVudExlbmd0aFBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoZ2V0SG9zdEhlYWRlclBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoZ2V0TG9nZ2VyUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShnZXRSZWN1cnNpb25EZXRlY3Rpb25QbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGdldEh0dHBBdXRoU2NoZW1lRW5kcG9pbnRSdWxlU2V0UGx1Z2luKHRoaXMuY29uZmlnLCB7XG4gICAgICAgICAgICBodHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlcjogZGVmYXVsdFNTT09JRENIdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlcixcbiAgICAgICAgICAgIGlkZW50aXR5UHJvdmlkZXJDb25maWdQcm92aWRlcjogYXN5bmMgKGNvbmZpZykgPT4gbmV3IERlZmF1bHRJZGVudGl0eVByb3ZpZGVyQ29uZmlnKHtcbiAgICAgICAgICAgICAgICBcImF3cy5hdXRoI3NpZ3Y0XCI6IGNvbmZpZy5jcmVkZW50aWFscyxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICB9KSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShnZXRIdHRwU2lnbmluZ1BsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgIH1cbiAgICBkZXN0cm95KCkge1xuICAgICAgICBzdXBlci5kZXN0cm95KCk7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IGdldEVuZHBvaW50UGx1Z2luIH0gZnJvbSBcIkBzbWl0aHkvbWlkZGxld2FyZS1lbmRwb2ludFwiO1xuaW1wb3J0IHsgQ29tbWFuZCBhcyAkQ29tbWFuZCB9IGZyb20gXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjtcbmltcG9ydCB7IGNvbW1vblBhcmFtcyB9IGZyb20gXCIuLi9lbmRwb2ludC9FbmRwb2ludFBhcmFtZXRlcnNcIjtcbmltcG9ydCB7IENyZWF0ZVRva2VuJCB9IGZyb20gXCIuLi9zY2hlbWFzL3NjaGVtYXNfMFwiO1xuZXhwb3J0IHsgJENvbW1hbmQgfTtcbmV4cG9ydCBjbGFzcyBDcmVhdGVUb2tlbkNvbW1hbmQgZXh0ZW5kcyAkQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW2dldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTU1NPT0lEQ1NlcnZpY2VcIiwgXCJDcmVhdGVUb2tlblwiLCB7fSlcbiAgICAubihcIlNTT09JRENDbGllbnRcIiwgXCJDcmVhdGVUb2tlbkNvbW1hbmRcIilcbiAgICAuc2MoQ3JlYXRlVG9rZW4kKVxuICAgIC5idWlsZCgpIHtcbn1cbiIsICJpbXBvcnQgeyBjcmVhdGVBZ2dyZWdhdGVkQ2xpZW50IH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgQ3JlYXRlVG9rZW5Db21tYW5kIH0gZnJvbSBcIi4vY29tbWFuZHMvQ3JlYXRlVG9rZW5Db21tYW5kXCI7XG5pbXBvcnQgeyBTU09PSURDQ2xpZW50IH0gZnJvbSBcIi4vU1NPT0lEQ0NsaWVudFwiO1xuY29uc3QgY29tbWFuZHMgPSB7XG4gICAgQ3JlYXRlVG9rZW5Db21tYW5kLFxufTtcbmV4cG9ydCBjbGFzcyBTU09PSURDIGV4dGVuZHMgU1NPT0lEQ0NsaWVudCB7XG59XG5jcmVhdGVBZ2dyZWdhdGVkQ2xpZW50KGNvbW1hbmRzLCBTU09PSURDKTtcbiIsICJleHBvcnQgKiBmcm9tIFwiLi9DcmVhdGVUb2tlbkNvbW1hbmRcIjtcbiIsICJleHBvcnQgY29uc3QgQWNjZXNzRGVuaWVkRXhjZXB0aW9uUmVhc29uID0ge1xuICAgIEtNU19BQ0NFU1NfREVOSUVEOiBcIktNU19BY2Nlc3NEZW5pZWRFeGNlcHRpb25cIixcbn07XG5leHBvcnQgY29uc3QgSW52YWxpZFJlcXVlc3RFeGNlcHRpb25SZWFzb24gPSB7XG4gICAgS01TX0RJU0FCTEVEX0tFWTogXCJLTVNfRGlzYWJsZWRFeGNlcHRpb25cIixcbiAgICBLTVNfSU5WQUxJRF9LRVlfVVNBR0U6IFwiS01TX0ludmFsaWRLZXlVc2FnZUV4Y2VwdGlvblwiLFxuICAgIEtNU19JTlZBTElEX1NUQVRFOiBcIktNU19JbnZhbGlkU3RhdGVFeGNlcHRpb25cIixcbiAgICBLTVNfS0VZX05PVF9GT1VORDogXCJLTVNfTm90Rm91bmRFeGNlcHRpb25cIixcbn07XG4iLCAiZXhwb3J0IHt9O1xuIiwgImV4cG9ydCAqIGZyb20gXCIuL1NTT09JRENDbGllbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL1NTT09JRENcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbW1hbmRzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zY2hlbWFzL3NjaGVtYXNfMFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWxzL2VudW1zXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9tb2RlbHMvZXJyb3JzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9tb2RlbHMvbW9kZWxzXzBcIjtcbmV4cG9ydCB7IFNTT09JRENTZXJ2aWNlRXhjZXB0aW9uIH0gZnJvbSBcIi4vbW9kZWxzL1NTT09JRENTZXJ2aWNlRXhjZXB0aW9uXCI7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgY2xpZW50ID0gcmVxdWlyZSgnQGF3cy1zZGsvY29yZS9jbGllbnQnKTtcbnZhciBodHRwQXV0aFNjaGVtZXMgPSByZXF1aXJlKCdAYXdzLXNkay9jb3JlL2h0dHBBdXRoU2NoZW1lcycpO1xudmFyIHByb3BlcnR5UHJvdmlkZXIgPSByZXF1aXJlKCdAc21pdGh5L3Byb3BlcnR5LXByb3ZpZGVyJyk7XG52YXIgc2hhcmVkSW5pRmlsZUxvYWRlciA9IHJlcXVpcmUoJ0BzbWl0aHkvc2hhcmVkLWluaS1maWxlLWxvYWRlcicpO1xudmFyIGZzID0gcmVxdWlyZSgnZnMnKTtcblxuY29uc3QgZnJvbUVudlNpZ25pbmdOYW1lID0gKHsgbG9nZ2VyLCBzaWduaW5nTmFtZSB9ID0ge30pID0+IGFzeW5jICgpID0+IHtcbiAgICBsb2dnZXI/LmRlYnVnPy4oXCJAYXdzLXNkay90b2tlbi1wcm92aWRlcnMgLSBmcm9tRW52U2lnbmluZ05hbWVcIik7XG4gICAgaWYgKCFzaWduaW5nTmFtZSkge1xuICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5Ub2tlblByb3ZpZGVyRXJyb3IoXCJQbGVhc2UgcGFzcyAnc2lnbmluZ05hbWUnIHRvIGNvbXB1dGUgZW52aXJvbm1lbnQgdmFyaWFibGUga2V5XCIsIHsgbG9nZ2VyIH0pO1xuICAgIH1cbiAgICBjb25zdCBiZWFyZXJUb2tlbktleSA9IGh0dHBBdXRoU2NoZW1lcy5nZXRCZWFyZXJUb2tlbkVudktleShzaWduaW5nTmFtZSk7XG4gICAgaWYgKCEoYmVhcmVyVG9rZW5LZXkgaW4gcHJvY2Vzcy5lbnYpKSB7XG4gICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLlRva2VuUHJvdmlkZXJFcnJvcihgVG9rZW4gbm90IHByZXNlbnQgaW4gJyR7YmVhcmVyVG9rZW5LZXl9JyBlbnZpcm9ubWVudCB2YXJpYWJsZWAsIHsgbG9nZ2VyIH0pO1xuICAgIH1cbiAgICBjb25zdCB0b2tlbiA9IHsgdG9rZW46IHByb2Nlc3MuZW52W2JlYXJlclRva2VuS2V5XSB9O1xuICAgIGNsaWVudC5zZXRUb2tlbkZlYXR1cmUodG9rZW4sIFwiQkVBUkVSX1NFUlZJQ0VfRU5WX1ZBUlNcIiwgXCIzXCIpO1xuICAgIHJldHVybiB0b2tlbjtcbn07XG5cbmNvbnN0IEVYUElSRV9XSU5ET1dfTVMgPSA1ICogNjAgKiAxMDAwO1xuY29uc3QgUkVGUkVTSF9NRVNTQUdFID0gYFRvIHJlZnJlc2ggdGhpcyBTU08gc2Vzc2lvbiBydW4gJ2F3cyBzc28gbG9naW4nIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgcHJvZmlsZS5gO1xuXG5jb25zdCBnZXRTc29PaWRjQ2xpZW50ID0gYXN5bmMgKHNzb1JlZ2lvbiwgaW5pdCA9IHt9LCBjYWxsZXJDbGllbnRDb25maWcpID0+IHtcbiAgICBjb25zdCB7IFNTT09JRENDbGllbnQgfSA9IGF3YWl0IGltcG9ydCgnQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvc3NvLW9pZGMnKTtcbiAgICBjb25zdCBjb2FsZXNjZSA9IChwcm9wKSA9PiBpbml0LmNsaWVudENvbmZpZz8uW3Byb3BdID8/IGluaXQucGFyZW50Q2xpZW50Q29uZmlnPy5bcHJvcF0gPz8gY2FsbGVyQ2xpZW50Q29uZmlnPy5bcHJvcF07XG4gICAgY29uc3Qgc3NvT2lkY0NsaWVudCA9IG5ldyBTU09PSURDQ2xpZW50KE9iamVjdC5hc3NpZ24oe30sIGluaXQuY2xpZW50Q29uZmlnID8/IHt9LCB7XG4gICAgICAgIHJlZ2lvbjogc3NvUmVnaW9uID8/IGluaXQuY2xpZW50Q29uZmlnPy5yZWdpb24sXG4gICAgICAgIGxvZ2dlcjogY29hbGVzY2UoXCJsb2dnZXJcIiksXG4gICAgICAgIHVzZXJBZ2VudEFwcElkOiBjb2FsZXNjZShcInVzZXJBZ2VudEFwcElkXCIpLFxuICAgIH0pKTtcbiAgICByZXR1cm4gc3NvT2lkY0NsaWVudDtcbn07XG5cbmNvbnN0IGdldE5ld1Nzb09pZGNUb2tlbiA9IGFzeW5jIChzc29Ub2tlbiwgc3NvUmVnaW9uLCBpbml0ID0ge30sIGNhbGxlckNsaWVudENvbmZpZykgPT4ge1xuICAgIGNvbnN0IHsgQ3JlYXRlVG9rZW5Db21tYW5kIH0gPSBhd2FpdCBpbXBvcnQoJ0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL3Nzby1vaWRjJyk7XG4gICAgY29uc3Qgc3NvT2lkY0NsaWVudCA9IGF3YWl0IGdldFNzb09pZGNDbGllbnQoc3NvUmVnaW9uLCBpbml0LCBjYWxsZXJDbGllbnRDb25maWcpO1xuICAgIHJldHVybiBzc29PaWRjQ2xpZW50LnNlbmQobmV3IENyZWF0ZVRva2VuQ29tbWFuZCh7XG4gICAgICAgIGNsaWVudElkOiBzc29Ub2tlbi5jbGllbnRJZCxcbiAgICAgICAgY2xpZW50U2VjcmV0OiBzc29Ub2tlbi5jbGllbnRTZWNyZXQsXG4gICAgICAgIHJlZnJlc2hUb2tlbjogc3NvVG9rZW4ucmVmcmVzaFRva2VuLFxuICAgICAgICBncmFudFR5cGU6IFwicmVmcmVzaF90b2tlblwiLFxuICAgIH0pKTtcbn07XG5cbmNvbnN0IHZhbGlkYXRlVG9rZW5FeHBpcnkgPSAodG9rZW4pID0+IHtcbiAgICBpZiAodG9rZW4uZXhwaXJhdGlvbiAmJiB0b2tlbi5leHBpcmF0aW9uLmdldFRpbWUoKSA8IERhdGUubm93KCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuVG9rZW5Qcm92aWRlckVycm9yKGBUb2tlbiBpcyBleHBpcmVkLiAke1JFRlJFU0hfTUVTU0FHRX1gLCBmYWxzZSk7XG4gICAgfVxufTtcblxuY29uc3QgdmFsaWRhdGVUb2tlbktleSA9IChrZXksIHZhbHVlLCBmb3JSZWZyZXNoID0gZmFsc2UpID0+IHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLlRva2VuUHJvdmlkZXJFcnJvcihgVmFsdWUgbm90IHByZXNlbnQgZm9yICcke2tleX0nIGluIFNTTyBUb2tlbiR7Zm9yUmVmcmVzaCA/IFwiLiBDYW5ub3QgcmVmcmVzaFwiIDogXCJcIn0uICR7UkVGUkVTSF9NRVNTQUdFfWAsIGZhbHNlKTtcbiAgICB9XG59O1xuXG5jb25zdCB7IHdyaXRlRmlsZSB9ID0gZnMucHJvbWlzZXM7XG5jb25zdCB3cml0ZVNTT1Rva2VuVG9GaWxlID0gKGlkLCBzc29Ub2tlbikgPT4ge1xuICAgIGNvbnN0IHRva2VuRmlsZXBhdGggPSBzaGFyZWRJbmlGaWxlTG9hZGVyLmdldFNTT1Rva2VuRmlsZXBhdGgoaWQpO1xuICAgIGNvbnN0IHRva2VuU3RyaW5nID0gSlNPTi5zdHJpbmdpZnkoc3NvVG9rZW4sIG51bGwsIDIpO1xuICAgIHJldHVybiB3cml0ZUZpbGUodG9rZW5GaWxlcGF0aCwgdG9rZW5TdHJpbmcpO1xufTtcblxuY29uc3QgbGFzdFJlZnJlc2hBdHRlbXB0VGltZSA9IG5ldyBEYXRlKDApO1xuY29uc3QgZnJvbVNzbyA9IChpbml0ID0ge30pID0+IGFzeW5jICh7IGNhbGxlckNsaWVudENvbmZpZyB9ID0ge30pID0+IHtcbiAgICBpbml0LmxvZ2dlcj8uZGVidWcoXCJAYXdzLXNkay90b2tlbi1wcm92aWRlcnMgLSBmcm9tU3NvXCIpO1xuICAgIGNvbnN0IHByb2ZpbGVzID0gYXdhaXQgc2hhcmVkSW5pRmlsZUxvYWRlci5wYXJzZUtub3duRmlsZXMoaW5pdCk7XG4gICAgY29uc3QgcHJvZmlsZU5hbWUgPSBzaGFyZWRJbmlGaWxlTG9hZGVyLmdldFByb2ZpbGVOYW1lKHtcbiAgICAgICAgcHJvZmlsZTogaW5pdC5wcm9maWxlID8/IGNhbGxlckNsaWVudENvbmZpZz8ucHJvZmlsZSxcbiAgICB9KTtcbiAgICBjb25zdCBwcm9maWxlID0gcHJvZmlsZXNbcHJvZmlsZU5hbWVdO1xuICAgIGlmICghcHJvZmlsZSkge1xuICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5Ub2tlblByb3ZpZGVyRXJyb3IoYFByb2ZpbGUgJyR7cHJvZmlsZU5hbWV9JyBjb3VsZCBub3QgYmUgZm91bmQgaW4gc2hhcmVkIGNyZWRlbnRpYWxzIGZpbGUuYCwgZmFsc2UpO1xuICAgIH1cbiAgICBlbHNlIGlmICghcHJvZmlsZVtcInNzb19zZXNzaW9uXCJdKSB7XG4gICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLlRva2VuUHJvdmlkZXJFcnJvcihgUHJvZmlsZSAnJHtwcm9maWxlTmFtZX0nIGlzIG1pc3NpbmcgcmVxdWlyZWQgcHJvcGVydHkgJ3Nzb19zZXNzaW9uJy5gKTtcbiAgICB9XG4gICAgY29uc3Qgc3NvU2Vzc2lvbk5hbWUgPSBwcm9maWxlW1wic3NvX3Nlc3Npb25cIl07XG4gICAgY29uc3Qgc3NvU2Vzc2lvbnMgPSBhd2FpdCBzaGFyZWRJbmlGaWxlTG9hZGVyLmxvYWRTc29TZXNzaW9uRGF0YShpbml0KTtcbiAgICBjb25zdCBzc29TZXNzaW9uID0gc3NvU2Vzc2lvbnNbc3NvU2Vzc2lvbk5hbWVdO1xuICAgIGlmICghc3NvU2Vzc2lvbikge1xuICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5Ub2tlblByb3ZpZGVyRXJyb3IoYFNzbyBzZXNzaW9uICcke3Nzb1Nlc3Npb25OYW1lfScgY291bGQgbm90IGJlIGZvdW5kIGluIHNoYXJlZCBjcmVkZW50aWFscyBmaWxlLmAsIGZhbHNlKTtcbiAgICB9XG4gICAgZm9yIChjb25zdCBzc29TZXNzaW9uUmVxdWlyZWRLZXkgb2YgW1wic3NvX3N0YXJ0X3VybFwiLCBcInNzb19yZWdpb25cIl0pIHtcbiAgICAgICAgaWYgKCFzc29TZXNzaW9uW3Nzb1Nlc3Npb25SZXF1aXJlZEtleV0pIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLlRva2VuUHJvdmlkZXJFcnJvcihgU3NvIHNlc3Npb24gJyR7c3NvU2Vzc2lvbk5hbWV9JyBpcyBtaXNzaW5nIHJlcXVpcmVkIHByb3BlcnR5ICcke3Nzb1Nlc3Npb25SZXF1aXJlZEtleX0nLmAsIGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBzc29TZXNzaW9uW1wic3NvX3N0YXJ0X3VybFwiXTtcbiAgICBjb25zdCBzc29SZWdpb24gPSBzc29TZXNzaW9uW1wic3NvX3JlZ2lvblwiXTtcbiAgICBsZXQgc3NvVG9rZW47XG4gICAgdHJ5IHtcbiAgICAgICAgc3NvVG9rZW4gPSBhd2FpdCBzaGFyZWRJbmlGaWxlTG9hZGVyLmdldFNTT1Rva2VuRnJvbUZpbGUoc3NvU2Vzc2lvbk5hbWUpO1xuICAgIH1cbiAgICBjYXRjaCAoZSkge1xuICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5Ub2tlblByb3ZpZGVyRXJyb3IoYFRoZSBTU08gc2Vzc2lvbiB0b2tlbiBhc3NvY2lhdGVkIHdpdGggcHJvZmlsZT0ke3Byb2ZpbGVOYW1lfSB3YXMgbm90IGZvdW5kIG9yIGlzIGludmFsaWQuICR7UkVGUkVTSF9NRVNTQUdFfWAsIGZhbHNlKTtcbiAgICB9XG4gICAgdmFsaWRhdGVUb2tlbktleShcImFjY2Vzc1Rva2VuXCIsIHNzb1Rva2VuLmFjY2Vzc1Rva2VuKTtcbiAgICB2YWxpZGF0ZVRva2VuS2V5KFwiZXhwaXJlc0F0XCIsIHNzb1Rva2VuLmV4cGlyZXNBdCk7XG4gICAgY29uc3QgeyBhY2Nlc3NUb2tlbiwgZXhwaXJlc0F0IH0gPSBzc29Ub2tlbjtcbiAgICBjb25zdCBleGlzdGluZ1Rva2VuID0geyB0b2tlbjogYWNjZXNzVG9rZW4sIGV4cGlyYXRpb246IG5ldyBEYXRlKGV4cGlyZXNBdCkgfTtcbiAgICBpZiAoZXhpc3RpbmdUb2tlbi5leHBpcmF0aW9uLmdldFRpbWUoKSAtIERhdGUubm93KCkgPiBFWFBJUkVfV0lORE9XX01TKSB7XG4gICAgICAgIHJldHVybiBleGlzdGluZ1Rva2VuO1xuICAgIH1cbiAgICBpZiAoRGF0ZS5ub3coKSAtIGxhc3RSZWZyZXNoQXR0ZW1wdFRpbWUuZ2V0VGltZSgpIDwgMzAgKiAxMDAwKSB7XG4gICAgICAgIHZhbGlkYXRlVG9rZW5FeHBpcnkoZXhpc3RpbmdUb2tlbik7XG4gICAgICAgIHJldHVybiBleGlzdGluZ1Rva2VuO1xuICAgIH1cbiAgICB2YWxpZGF0ZVRva2VuS2V5KFwiY2xpZW50SWRcIiwgc3NvVG9rZW4uY2xpZW50SWQsIHRydWUpO1xuICAgIHZhbGlkYXRlVG9rZW5LZXkoXCJjbGllbnRTZWNyZXRcIiwgc3NvVG9rZW4uY2xpZW50U2VjcmV0LCB0cnVlKTtcbiAgICB2YWxpZGF0ZVRva2VuS2V5KFwicmVmcmVzaFRva2VuXCIsIHNzb1Rva2VuLnJlZnJlc2hUb2tlbiwgdHJ1ZSk7XG4gICAgdHJ5IHtcbiAgICAgICAgbGFzdFJlZnJlc2hBdHRlbXB0VGltZS5zZXRUaW1lKERhdGUubm93KCkpO1xuICAgICAgICBjb25zdCBuZXdTc29PaWRjVG9rZW4gPSBhd2FpdCBnZXROZXdTc29PaWRjVG9rZW4oc3NvVG9rZW4sIHNzb1JlZ2lvbiwgaW5pdCwgY2FsbGVyQ2xpZW50Q29uZmlnKTtcbiAgICAgICAgdmFsaWRhdGVUb2tlbktleShcImFjY2Vzc1Rva2VuXCIsIG5ld1Nzb09pZGNUb2tlbi5hY2Nlc3NUb2tlbik7XG4gICAgICAgIHZhbGlkYXRlVG9rZW5LZXkoXCJleHBpcmVzSW5cIiwgbmV3U3NvT2lkY1Rva2VuLmV4cGlyZXNJbik7XG4gICAgICAgIGNvbnN0IG5ld1Rva2VuRXhwaXJhdGlvbiA9IG5ldyBEYXRlKERhdGUubm93KCkgKyBuZXdTc29PaWRjVG9rZW4uZXhwaXJlc0luICogMTAwMCk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhd2FpdCB3cml0ZVNTT1Rva2VuVG9GaWxlKHNzb1Nlc3Npb25OYW1lLCB7XG4gICAgICAgICAgICAgICAgLi4uc3NvVG9rZW4sXG4gICAgICAgICAgICAgICAgYWNjZXNzVG9rZW46IG5ld1Nzb09pZGNUb2tlbi5hY2Nlc3NUb2tlbixcbiAgICAgICAgICAgICAgICBleHBpcmVzQXQ6IG5ld1Rva2VuRXhwaXJhdGlvbi50b0lTT1N0cmluZygpLFxuICAgICAgICAgICAgICAgIHJlZnJlc2hUb2tlbjogbmV3U3NvT2lkY1Rva2VuLnJlZnJlc2hUb2tlbixcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0b2tlbjogbmV3U3NvT2lkY1Rva2VuLmFjY2Vzc1Rva2VuLFxuICAgICAgICAgICAgZXhwaXJhdGlvbjogbmV3VG9rZW5FeHBpcmF0aW9uLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgdmFsaWRhdGVUb2tlbkV4cGlyeShleGlzdGluZ1Rva2VuKTtcbiAgICAgICAgcmV0dXJuIGV4aXN0aW5nVG9rZW47XG4gICAgfVxufTtcblxuY29uc3QgZnJvbVN0YXRpYyA9ICh7IHRva2VuLCBsb2dnZXIgfSkgPT4gYXN5bmMgKCkgPT4ge1xuICAgIGxvZ2dlcj8uZGVidWcoXCJAYXdzLXNkay90b2tlbi1wcm92aWRlcnMgLSBmcm9tU3RhdGljXCIpO1xuICAgIGlmICghdG9rZW4gfHwgIXRva2VuLnRva2VuKSB7XG4gICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLlRva2VuUHJvdmlkZXJFcnJvcihgUGxlYXNlIHBhc3MgYSB2YWxpZCB0b2tlbiB0byBmcm9tU3RhdGljYCwgZmFsc2UpO1xuICAgIH1cbiAgICByZXR1cm4gdG9rZW47XG59O1xuXG5jb25zdCBub2RlUHJvdmlkZXIgPSAoaW5pdCA9IHt9KSA9PiBwcm9wZXJ0eVByb3ZpZGVyLm1lbW9pemUocHJvcGVydHlQcm92aWRlci5jaGFpbihmcm9tU3NvKGluaXQpLCBhc3luYyAoKSA9PiB7XG4gICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuVG9rZW5Qcm92aWRlckVycm9yKFwiQ291bGQgbm90IGxvYWQgdG9rZW4gZnJvbSBhbnkgcHJvdmlkZXJzXCIsIGZhbHNlKTtcbn0pLCAodG9rZW4pID0+IHRva2VuLmV4cGlyYXRpb24gIT09IHVuZGVmaW5lZCAmJiB0b2tlbi5leHBpcmF0aW9uLmdldFRpbWUoKSAtIERhdGUubm93KCkgPCAzMDAwMDAsICh0b2tlbikgPT4gdG9rZW4uZXhwaXJhdGlvbiAhPT0gdW5kZWZpbmVkKTtcblxuZXhwb3J0cy5mcm9tRW52U2lnbmluZ05hbWUgPSBmcm9tRW52U2lnbmluZ05hbWU7XG5leHBvcnRzLmZyb21Tc28gPSBmcm9tU3NvO1xuZXhwb3J0cy5mcm9tU3RhdGljID0gZnJvbVN0YXRpYztcbmV4cG9ydHMubm9kZVByb3ZpZGVyID0gbm9kZVByb3ZpZGVyO1xuIiwgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5yZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWcgPSBleHBvcnRzLmRlZmF1bHRTU09IdHRwQXV0aFNjaGVtZVByb3ZpZGVyID0gZXhwb3J0cy5kZWZhdWx0U1NPSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIgPSB2b2lkIDA7XG5jb25zdCBjb3JlXzEgPSByZXF1aXJlKFwiQGF3cy1zZGsvY29yZVwiKTtcbmNvbnN0IHV0aWxfbWlkZGxld2FyZV8xID0gcmVxdWlyZShcIkBzbWl0aHkvdXRpbC1taWRkbGV3YXJlXCIpO1xuY29uc3QgZGVmYXVsdFNTT0h0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyID0gYXN5bmMgKGNvbmZpZywgY29udGV4dCwgaW5wdXQpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgICBvcGVyYXRpb246ICgwLCB1dGlsX21pZGRsZXdhcmVfMS5nZXRTbWl0aHlDb250ZXh0KShjb250ZXh0KS5vcGVyYXRpb24sXG4gICAgICAgIHJlZ2lvbjogYXdhaXQgKDAsIHV0aWxfbWlkZGxld2FyZV8xLm5vcm1hbGl6ZVByb3ZpZGVyKShjb25maWcucmVnaW9uKSgpIHx8ICgoKSA9PiB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJleHBlY3RlZCBgcmVnaW9uYCB0byBiZSBjb25maWd1cmVkIGZvciBgYXdzLmF1dGgjc2lndjRgXCIpO1xuICAgICAgICB9KSgpLFxuICAgIH07XG59O1xuZXhwb3J0cy5kZWZhdWx0U1NPSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIgPSBkZWZhdWx0U1NPSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXI7XG5mdW5jdGlvbiBjcmVhdGVBd3NBdXRoU2lndjRIdHRwQXV0aE9wdGlvbihhdXRoUGFyYW1ldGVycykge1xuICAgIHJldHVybiB7XG4gICAgICAgIHNjaGVtZUlkOiBcImF3cy5hdXRoI3NpZ3Y0XCIsXG4gICAgICAgIHNpZ25pbmdQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICBuYW1lOiBcImF3c3Nzb3BvcnRhbFwiLFxuICAgICAgICAgICAgcmVnaW9uOiBhdXRoUGFyYW1ldGVycy5yZWdpb24sXG4gICAgICAgIH0sXG4gICAgICAgIHByb3BlcnRpZXNFeHRyYWN0b3I6IChjb25maWcsIGNvbnRleHQpID0+ICh7XG4gICAgICAgICAgICBzaWduaW5nUHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgIGNvbmZpZyxcbiAgICAgICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgfTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVNtaXRoeUFwaU5vQXV0aEh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc2NoZW1lSWQ6IFwic21pdGh5LmFwaSNub0F1dGhcIixcbiAgICB9O1xufVxuY29uc3QgZGVmYXVsdFNTT0h0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSAoYXV0aFBhcmFtZXRlcnMpID0+IHtcbiAgICBjb25zdCBvcHRpb25zID0gW107XG4gICAgc3dpdGNoIChhdXRoUGFyYW1ldGVycy5vcGVyYXRpb24pIHtcbiAgICAgICAgY2FzZSBcIkdldFJvbGVDcmVkZW50aWFsc1wiOlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG9wdGlvbnMucHVzaChjcmVhdGVTbWl0aHlBcGlOb0F1dGhIdHRwQXV0aE9wdGlvbihhdXRoUGFyYW1ldGVycykpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgO1xuICAgICAgICBjYXNlIFwiTGlzdEFjY291bnRSb2xlc1wiOlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG9wdGlvbnMucHVzaChjcmVhdGVTbWl0aHlBcGlOb0F1dGhIdHRwQXV0aE9wdGlvbihhdXRoUGFyYW1ldGVycykpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgO1xuICAgICAgICBjYXNlIFwiTGlzdEFjY291bnRzXCI6XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgb3B0aW9ucy5wdXNoKGNyZWF0ZVNtaXRoeUFwaU5vQXV0aEh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA7XG4gICAgICAgIGNhc2UgXCJMb2dvdXRcIjpcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBvcHRpb25zLnB1c2goY3JlYXRlU21pdGh5QXBpTm9BdXRoSHR0cEF1dGhPcHRpb24oYXV0aFBhcmFtZXRlcnMpKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDtcbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgb3B0aW9ucy5wdXNoKGNyZWF0ZUF3c0F1dGhTaWd2NEh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG9wdGlvbnM7XG59O1xuZXhwb3J0cy5kZWZhdWx0U1NPSHR0cEF1dGhTY2hlbWVQcm92aWRlciA9IGRlZmF1bHRTU09IdHRwQXV0aFNjaGVtZVByb3ZpZGVyO1xuY29uc3QgcmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIGNvbnN0IGNvbmZpZ18wID0gKDAsIGNvcmVfMS5yZXNvbHZlQXdzU2RrU2lnVjRDb25maWcpKGNvbmZpZyk7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oY29uZmlnXzAsIHtcbiAgICAgICAgYXV0aFNjaGVtZVByZWZlcmVuY2U6ICgwLCB1dGlsX21pZGRsZXdhcmVfMS5ub3JtYWxpemVQcm92aWRlcikoY29uZmlnLmF1dGhTY2hlbWVQcmVmZXJlbmNlID8/IFtdKSxcbiAgICB9KTtcbn07XG5leHBvcnRzLnJlc29sdmVIdHRwQXV0aFNjaGVtZUNvbmZpZyA9IHJlc29sdmVIdHRwQXV0aFNjaGVtZUNvbmZpZztcbiIsICJ7XG4gIFwibmFtZVwiOiBcIkBhd3Mtc2RrL2NsaWVudC1zc29cIixcbiAgXCJkZXNjcmlwdGlvblwiOiBcIkFXUyBTREsgZm9yIEphdmFTY3JpcHQgU3NvIENsaWVudCBmb3IgTm9kZS5qcywgQnJvd3NlciBhbmQgUmVhY3QgTmF0aXZlXCIsXG4gIFwidmVyc2lvblwiOiBcIjMuOTk2LjBcIixcbiAgXCJzY3JpcHRzXCI6IHtcbiAgICBcImJ1aWxkXCI6IFwiY29uY3VycmVudGx5ICd5YXJuOmJ1aWxkOnR5cGVzJyAneWFybjpidWlsZDplcycgJiYgeWFybiBidWlsZDpjanNcIixcbiAgICBcImJ1aWxkOmNqc1wiOiBcIm5vZGUgLi4vLi4vc2NyaXB0cy9jb21waWxhdGlvbi9pbmxpbmUgY2xpZW50LXNzb1wiLFxuICAgIFwiYnVpbGQ6ZXNcIjogXCJ0c2MgLXAgdHNjb25maWcuZXMuanNvblwiLFxuICAgIFwiYnVpbGQ6aW5jbHVkZTpkZXBzXCI6IFwieWFybiBnOnR1cmJvIHJ1biBidWlsZCAtRj1cXFwiJG5wbV9wYWNrYWdlX25hbWVcXFwiXCIsXG4gICAgXCJidWlsZDp0eXBlc1wiOiBcInRzYyAtcCB0c2NvbmZpZy50eXBlcy5qc29uXCIsXG4gICAgXCJidWlsZDp0eXBlczpkb3dubGV2ZWxcIjogXCJkb3dubGV2ZWwtZHRzIGRpc3QtdHlwZXMgZGlzdC10eXBlcy90czMuNFwiLFxuICAgIFwiY2xlYW5cIjogXCJwcmVtb3ZlIGRpc3QtY2pzIGRpc3QtZXMgZGlzdC10eXBlcyB0c2NvbmZpZy5janMudHNidWlsZGluZm8gdHNjb25maWcuZXMudHNidWlsZGluZm8gdHNjb25maWcudHlwZXMudHNidWlsZGluZm9cIixcbiAgICBcImV4dHJhY3Q6ZG9jc1wiOiBcImFwaS1leHRyYWN0b3IgcnVuIC0tbG9jYWxcIixcbiAgICBcImdlbmVyYXRlOmNsaWVudFwiOiBcIm5vZGUgLi4vLi4vc2NyaXB0cy9nZW5lcmF0ZS1jbGllbnRzL3NpbmdsZS1zZXJ2aWNlIC0tc29sbyBzc29cIixcbiAgICBcInRlc3Q6aW5kZXhcIjogXCJ0c2MgLS1ub0VtaXQgLi90ZXN0L2luZGV4LXR5cGVzLnRzICYmIG5vZGUgLi90ZXN0L2luZGV4LW9iamVjdHMuc3BlYy5tanNcIlxuICB9LFxuICBcIm1haW5cIjogXCIuL2Rpc3QtY2pzL2luZGV4LmpzXCIsXG4gIFwidHlwZXNcIjogXCIuL2Rpc3QtdHlwZXMvaW5kZXguZC50c1wiLFxuICBcIm1vZHVsZVwiOiBcIi4vZGlzdC1lcy9pbmRleC5qc1wiLFxuICBcInNpZGVFZmZlY3RzXCI6IGZhbHNlLFxuICBcImRlcGVuZGVuY2llc1wiOiB7XG4gICAgXCJAYXdzLWNyeXB0by9zaGEyNTYtYnJvd3NlclwiOiBcIjUuMi4wXCIsXG4gICAgXCJAYXdzLWNyeXB0by9zaGEyNTYtanNcIjogXCI1LjIuMFwiLFxuICAgIFwiQGF3cy1zZGsvY29yZVwiOiBcIl4zLjk3My4xMlwiLFxuICAgIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1ob3N0LWhlYWRlclwiOiBcIl4zLjk3Mi4zXCIsXG4gICAgXCJAYXdzLXNkay9taWRkbGV3YXJlLWxvZ2dlclwiOiBcIl4zLjk3Mi4zXCIsXG4gICAgXCJAYXdzLXNkay9taWRkbGV3YXJlLXJlY3Vyc2lvbi1kZXRlY3Rpb25cIjogXCJeMy45NzIuM1wiLFxuICAgIFwiQGF3cy1zZGsvbWlkZGxld2FyZS11c2VyLWFnZW50XCI6IFwiXjMuOTcyLjEyXCIsXG4gICAgXCJAYXdzLXNkay9yZWdpb24tY29uZmlnLXJlc29sdmVyXCI6IFwiXjMuOTcyLjNcIixcbiAgICBcIkBhd3Mtc2RrL3R5cGVzXCI6IFwiXjMuOTczLjFcIixcbiAgICBcIkBhd3Mtc2RrL3V0aWwtZW5kcG9pbnRzXCI6IFwiMy45OTYuMFwiLFxuICAgIFwiQGF3cy1zZGsvdXRpbC11c2VyLWFnZW50LWJyb3dzZXJcIjogXCJeMy45NzIuM1wiLFxuICAgIFwiQGF3cy1zZGsvdXRpbC11c2VyLWFnZW50LW5vZGVcIjogXCJeMy45NzIuMTFcIixcbiAgICBcIkBzbWl0aHkvY29uZmlnLXJlc29sdmVyXCI6IFwiXjQuNC42XCIsXG4gICAgXCJAc21pdGh5L2NvcmVcIjogXCJeMy4yMy4yXCIsXG4gICAgXCJAc21pdGh5L2ZldGNoLWh0dHAtaGFuZGxlclwiOiBcIl41LjMuOVwiLFxuICAgIFwiQHNtaXRoeS9oYXNoLW5vZGVcIjogXCJeNC4yLjhcIixcbiAgICBcIkBzbWl0aHkvaW52YWxpZC1kZXBlbmRlbmN5XCI6IFwiXjQuMi44XCIsXG4gICAgXCJAc21pdGh5L21pZGRsZXdhcmUtY29udGVudC1sZW5ndGhcIjogXCJeNC4yLjhcIixcbiAgICBcIkBzbWl0aHkvbWlkZGxld2FyZS1lbmRwb2ludFwiOiBcIl40LjQuMTZcIixcbiAgICBcIkBzbWl0aHkvbWlkZGxld2FyZS1yZXRyeVwiOiBcIl40LjQuMzNcIixcbiAgICBcIkBzbWl0aHkvbWlkZGxld2FyZS1zZXJkZVwiOiBcIl40LjIuOVwiLFxuICAgIFwiQHNtaXRoeS9taWRkbGV3YXJlLXN0YWNrXCI6IFwiXjQuMi44XCIsXG4gICAgXCJAc21pdGh5L25vZGUtY29uZmlnLXByb3ZpZGVyXCI6IFwiXjQuMy44XCIsXG4gICAgXCJAc21pdGh5L25vZGUtaHR0cC1oYW5kbGVyXCI6IFwiXjQuNC4xMFwiLFxuICAgIFwiQHNtaXRoeS9wcm90b2NvbC1odHRwXCI6IFwiXjUuMy44XCIsXG4gICAgXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjogXCJeNC4xMS41XCIsXG4gICAgXCJAc21pdGh5L3R5cGVzXCI6IFwiXjQuMTIuMFwiLFxuICAgIFwiQHNtaXRoeS91cmwtcGFyc2VyXCI6IFwiXjQuMi44XCIsXG4gICAgXCJAc21pdGh5L3V0aWwtYmFzZTY0XCI6IFwiXjQuMy4wXCIsXG4gICAgXCJAc21pdGh5L3V0aWwtYm9keS1sZW5ndGgtYnJvd3NlclwiOiBcIl40LjIuMFwiLFxuICAgIFwiQHNtaXRoeS91dGlsLWJvZHktbGVuZ3RoLW5vZGVcIjogXCJeNC4yLjFcIixcbiAgICBcIkBzbWl0aHkvdXRpbC1kZWZhdWx0cy1tb2RlLWJyb3dzZXJcIjogXCJeNC4zLjMyXCIsXG4gICAgXCJAc21pdGh5L3V0aWwtZGVmYXVsdHMtbW9kZS1ub2RlXCI6IFwiXjQuMi4zNVwiLFxuICAgIFwiQHNtaXRoeS91dGlsLWVuZHBvaW50c1wiOiBcIl4zLjIuOFwiLFxuICAgIFwiQHNtaXRoeS91dGlsLW1pZGRsZXdhcmVcIjogXCJeNC4yLjhcIixcbiAgICBcIkBzbWl0aHkvdXRpbC1yZXRyeVwiOiBcIl40LjIuOFwiLFxuICAgIFwiQHNtaXRoeS91dGlsLXV0ZjhcIjogXCJeNC4yLjBcIixcbiAgICBcInRzbGliXCI6IFwiXjIuNi4yXCJcbiAgfSxcbiAgXCJkZXZEZXBlbmRlbmNpZXNcIjoge1xuICAgIFwiQHRzY29uZmlnL25vZGUyMFwiOiBcIjIwLjEuOFwiLFxuICAgIFwiQHR5cGVzL25vZGVcIjogXCJeMjAuMTQuOFwiLFxuICAgIFwiY29uY3VycmVudGx5XCI6IFwiNy4wLjBcIixcbiAgICBcImRvd25sZXZlbC1kdHNcIjogXCIwLjEwLjFcIixcbiAgICBcInByZW1vdmVcIjogXCI0LjAuMFwiLFxuICAgIFwidHlwZXNjcmlwdFwiOiBcIn41LjguM1wiXG4gIH0sXG4gIFwiZW5naW5lc1wiOiB7XG4gICAgXCJub2RlXCI6IFwiPj0yMC4wLjBcIlxuICB9LFxuICBcInR5cGVzVmVyc2lvbnNcIjoge1xuICAgIFwiPDQuMFwiOiB7XG4gICAgICBcImRpc3QtdHlwZXMvKlwiOiBbXG4gICAgICAgIFwiZGlzdC10eXBlcy90czMuNC8qXCJcbiAgICAgIF1cbiAgICB9XG4gIH0sXG4gIFwiZmlsZXNcIjogW1xuICAgIFwiZGlzdC0qLyoqXCJcbiAgXSxcbiAgXCJhdXRob3JcIjoge1xuICAgIFwibmFtZVwiOiBcIkFXUyBTREsgZm9yIEphdmFTY3JpcHQgVGVhbVwiLFxuICAgIFwidXJsXCI6IFwiaHR0cHM6Ly9hd3MuYW1hem9uLmNvbS9qYXZhc2NyaXB0L1wiXG4gIH0sXG4gIFwibGljZW5zZVwiOiBcIkFwYWNoZS0yLjBcIixcbiAgXCJicm93c2VyXCI6IHtcbiAgICBcIi4vZGlzdC1lcy9ydW50aW1lQ29uZmlnXCI6IFwiLi9kaXN0LWVzL3J1bnRpbWVDb25maWcuYnJvd3NlclwiXG4gIH0sXG4gIFwicmVhY3QtbmF0aXZlXCI6IHtcbiAgICBcIi4vZGlzdC1lcy9ydW50aW1lQ29uZmlnXCI6IFwiLi9kaXN0LWVzL3J1bnRpbWVDb25maWcubmF0aXZlXCJcbiAgfSxcbiAgXCJob21lcGFnZVwiOiBcImh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLXNkay1qcy12My90cmVlL21haW4vY2xpZW50cy9jbGllbnQtc3NvXCIsXG4gIFwicmVwb3NpdG9yeVwiOiB7XG4gICAgXCJ0eXBlXCI6IFwiZ2l0XCIsXG4gICAgXCJ1cmxcIjogXCJodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1zZGstanMtdjMuZ2l0XCIsXG4gICAgXCJkaXJlY3RvcnlcIjogXCJjbGllbnRzL2NsaWVudC1zc29cIlxuICB9XG59XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgdXRpbEVuZHBvaW50cyA9IHJlcXVpcmUoJ0BzbWl0aHkvdXRpbC1lbmRwb2ludHMnKTtcbnZhciB1cmxQYXJzZXIgPSByZXF1aXJlKCdAc21pdGh5L3VybC1wYXJzZXInKTtcblxuY29uc3QgaXNWaXJ0dWFsSG9zdGFibGVTM0J1Y2tldCA9ICh2YWx1ZSwgYWxsb3dTdWJEb21haW5zID0gZmFsc2UpID0+IHtcbiAgICBpZiAoYWxsb3dTdWJEb21haW5zKSB7XG4gICAgICAgIGZvciAoY29uc3QgbGFiZWwgb2YgdmFsdWUuc3BsaXQoXCIuXCIpKSB7XG4gICAgICAgICAgICBpZiAoIWlzVmlydHVhbEhvc3RhYmxlUzNCdWNrZXQobGFiZWwpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAoIXV0aWxFbmRwb2ludHMuaXNWYWxpZEhvc3RMYWJlbCh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAodmFsdWUubGVuZ3RoIDwgMyB8fCB2YWx1ZS5sZW5ndGggPiA2Mykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmICh2YWx1ZSAhPT0gdmFsdWUudG9Mb3dlckNhc2UoKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmICh1dGlsRW5kcG9pbnRzLmlzSXBBZGRyZXNzKHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xufTtcblxuY29uc3QgQVJOX0RFTElNSVRFUiA9IFwiOlwiO1xuY29uc3QgUkVTT1VSQ0VfREVMSU1JVEVSID0gXCIvXCI7XG5jb25zdCBwYXJzZUFybiA9ICh2YWx1ZSkgPT4ge1xuICAgIGNvbnN0IHNlZ21lbnRzID0gdmFsdWUuc3BsaXQoQVJOX0RFTElNSVRFUik7XG4gICAgaWYgKHNlZ21lbnRzLmxlbmd0aCA8IDYpXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIGNvbnN0IFthcm4sIHBhcnRpdGlvbiwgc2VydmljZSwgcmVnaW9uLCBhY2NvdW50SWQsIC4uLnJlc291cmNlUGF0aF0gPSBzZWdtZW50cztcbiAgICBpZiAoYXJuICE9PSBcImFyblwiIHx8IHBhcnRpdGlvbiA9PT0gXCJcIiB8fCBzZXJ2aWNlID09PSBcIlwiIHx8IHJlc291cmNlUGF0aC5qb2luKEFSTl9ERUxJTUlURVIpID09PSBcIlwiKVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICBjb25zdCByZXNvdXJjZUlkID0gcmVzb3VyY2VQYXRoLm1hcCgocmVzb3VyY2UpID0+IHJlc291cmNlLnNwbGl0KFJFU09VUkNFX0RFTElNSVRFUikpLmZsYXQoKTtcbiAgICByZXR1cm4ge1xuICAgICAgICBwYXJ0aXRpb24sXG4gICAgICAgIHNlcnZpY2UsXG4gICAgICAgIHJlZ2lvbixcbiAgICAgICAgYWNjb3VudElkLFxuICAgICAgICByZXNvdXJjZUlkLFxuICAgIH07XG59O1xuXG52YXIgcGFydGl0aW9ucyA9IFtcblx0e1xuXHRcdGlkOiBcImF3c1wiLFxuXHRcdG91dHB1dHM6IHtcblx0XHRcdGRuc1N1ZmZpeDogXCJhbWF6b25hd3MuY29tXCIsXG5cdFx0XHRkdWFsU3RhY2tEbnNTdWZmaXg6IFwiYXBpLmF3c1wiLFxuXHRcdFx0aW1wbGljaXRHbG9iYWxSZWdpb246IFwidXMtZWFzdC0xXCIsXG5cdFx0XHRuYW1lOiBcImF3c1wiLFxuXHRcdFx0c3VwcG9ydHNEdWFsU3RhY2s6IHRydWUsXG5cdFx0XHRzdXBwb3J0c0ZJUFM6IHRydWVcblx0XHR9LFxuXHRcdHJlZ2lvblJlZ2V4OiBcIl4odXN8ZXV8YXB8c2F8Y2F8bWV8YWZ8aWx8bXgpXFxcXC1cXFxcdytcXFxcLVxcXFxkKyRcIixcblx0XHRyZWdpb25zOiB7XG5cdFx0XHRcImFmLXNvdXRoLTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBZnJpY2EgKENhcGUgVG93bilcIlxuXHRcdFx0fSxcblx0XHRcdFwiYXAtZWFzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChIb25nIEtvbmcpXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLWVhc3QtMlwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFzaWEgUGFjaWZpYyAoVGFpcGVpKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJhcC1ub3J0aGVhc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFzaWEgUGFjaWZpYyAoVG9reW8pXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLW5vcnRoZWFzdC0yXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChTZW91bClcIlxuXHRcdFx0fSxcblx0XHRcdFwiYXAtbm9ydGhlYXN0LTNcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBc2lhIFBhY2lmaWMgKE9zYWthKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJhcC1zb3V0aC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChNdW1iYWkpXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLXNvdXRoLTJcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBc2lhIFBhY2lmaWMgKEh5ZGVyYWJhZClcIlxuXHRcdFx0fSxcblx0XHRcdFwiYXAtc291dGhlYXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBc2lhIFBhY2lmaWMgKFNpbmdhcG9yZSlcIlxuXHRcdFx0fSxcblx0XHRcdFwiYXAtc291dGhlYXN0LTJcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBc2lhIFBhY2lmaWMgKFN5ZG5leSlcIlxuXHRcdFx0fSxcblx0XHRcdFwiYXAtc291dGhlYXN0LTNcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBc2lhIFBhY2lmaWMgKEpha2FydGEpXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLXNvdXRoZWFzdC00XCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChNZWxib3VybmUpXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLXNvdXRoZWFzdC01XCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChNYWxheXNpYSlcIlxuXHRcdFx0fSxcblx0XHRcdFwiYXAtc291dGhlYXN0LTZcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBc2lhIFBhY2lmaWMgKE5ldyBaZWFsYW5kKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJhcC1zb3V0aGVhc3QtN1wiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFzaWEgUGFjaWZpYyAoVGhhaWxhbmQpXCJcblx0XHRcdH0sXG5cdFx0XHRcImF3cy1nbG9iYWxcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJhd3MgZ2xvYmFsIHJlZ2lvblwiXG5cdFx0XHR9LFxuXHRcdFx0XCJjYS1jZW50cmFsLTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJDYW5hZGEgKENlbnRyYWwpXCJcblx0XHRcdH0sXG5cdFx0XHRcImNhLXdlc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkNhbmFkYSBXZXN0IChDYWxnYXJ5KVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJldS1jZW50cmFsLTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJFdXJvcGUgKEZyYW5rZnVydClcIlxuXHRcdFx0fSxcblx0XHRcdFwiZXUtY2VudHJhbC0yXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiRXVyb3BlIChadXJpY2gpXCJcblx0XHRcdH0sXG5cdFx0XHRcImV1LW5vcnRoLTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJFdXJvcGUgKFN0b2NraG9sbSlcIlxuXHRcdFx0fSxcblx0XHRcdFwiZXUtc291dGgtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkV1cm9wZSAoTWlsYW4pXCJcblx0XHRcdH0sXG5cdFx0XHRcImV1LXNvdXRoLTJcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJFdXJvcGUgKFNwYWluKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJldS13ZXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJFdXJvcGUgKElyZWxhbmQpXCJcblx0XHRcdH0sXG5cdFx0XHRcImV1LXdlc3QtMlwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkV1cm9wZSAoTG9uZG9uKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJldS13ZXN0LTNcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJFdXJvcGUgKFBhcmlzKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJpbC1jZW50cmFsLTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJJc3JhZWwgKFRlbCBBdml2KVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJtZS1jZW50cmFsLTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJNaWRkbGUgRWFzdCAoVUFFKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJtZS1zb3V0aC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiTWlkZGxlIEVhc3QgKEJhaHJhaW4pXCJcblx0XHRcdH0sXG5cdFx0XHRcIm14LWNlbnRyYWwtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIk1leGljbyAoQ2VudHJhbClcIlxuXHRcdFx0fSxcblx0XHRcdFwic2EtZWFzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiU291dGggQW1lcmljYSAoU2FvIFBhdWxvKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJ1cy1lYXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJVUyBFYXN0IChOLiBWaXJnaW5pYSlcIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtZWFzdC0yXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiVVMgRWFzdCAoT2hpbylcIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtd2VzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiVVMgV2VzdCAoTi4gQ2FsaWZvcm5pYSlcIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtd2VzdC0yXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiVVMgV2VzdCAoT3JlZ29uKVwiXG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXHR7XG5cdFx0aWQ6IFwiYXdzLWNuXCIsXG5cdFx0b3V0cHV0czoge1xuXHRcdFx0ZG5zU3VmZml4OiBcImFtYXpvbmF3cy5jb20uY25cIixcblx0XHRcdGR1YWxTdGFja0Ruc1N1ZmZpeDogXCJhcGkuYW1hem9ud2Vic2VydmljZXMuY29tLmNuXCIsXG5cdFx0XHRpbXBsaWNpdEdsb2JhbFJlZ2lvbjogXCJjbi1ub3J0aHdlc3QtMVwiLFxuXHRcdFx0bmFtZTogXCJhd3MtY25cIixcblx0XHRcdHN1cHBvcnRzRHVhbFN0YWNrOiB0cnVlLFxuXHRcdFx0c3VwcG9ydHNGSVBTOiB0cnVlXG5cdFx0fSxcblx0XHRyZWdpb25SZWdleDogXCJeY25cXFxcLVxcXFx3K1xcXFwtXFxcXGQrJFwiLFxuXHRcdHJlZ2lvbnM6IHtcblx0XHRcdFwiYXdzLWNuLWdsb2JhbFwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcImF3cy1jbiBnbG9iYWwgcmVnaW9uXCJcblx0XHRcdH0sXG5cdFx0XHRcImNuLW5vcnRoLTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJDaGluYSAoQmVpamluZylcIlxuXHRcdFx0fSxcblx0XHRcdFwiY24tbm9ydGh3ZXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJDaGluYSAoTmluZ3hpYSlcIlxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0e1xuXHRcdGlkOiBcImF3cy1ldXNjXCIsXG5cdFx0b3V0cHV0czoge1xuXHRcdFx0ZG5zU3VmZml4OiBcImFtYXpvbmF3cy5ldVwiLFxuXHRcdFx0ZHVhbFN0YWNrRG5zU3VmZml4OiBcImFwaS5hbWF6b253ZWJzZXJ2aWNlcy5ldVwiLFxuXHRcdFx0aW1wbGljaXRHbG9iYWxSZWdpb246IFwiZXVzYy1kZS1lYXN0LTFcIixcblx0XHRcdG5hbWU6IFwiYXdzLWV1c2NcIixcblx0XHRcdHN1cHBvcnRzRHVhbFN0YWNrOiB0cnVlLFxuXHRcdFx0c3VwcG9ydHNGSVBTOiB0cnVlXG5cdFx0fSxcblx0XHRyZWdpb25SZWdleDogXCJeZXVzY1xcXFwtKGRlKVxcXFwtXFxcXHcrXFxcXC1cXFxcZCskXCIsXG5cdFx0cmVnaW9uczoge1xuXHRcdFx0XCJldXNjLWRlLWVhc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFXUyBFdXJvcGVhbiBTb3ZlcmVpZ24gQ2xvdWQgKEdlcm1hbnkpXCJcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdHtcblx0XHRpZDogXCJhd3MtaXNvXCIsXG5cdFx0b3V0cHV0czoge1xuXHRcdFx0ZG5zU3VmZml4OiBcImMycy5pYy5nb3ZcIixcblx0XHRcdGR1YWxTdGFja0Ruc1N1ZmZpeDogXCJhcGkuYXdzLmljLmdvdlwiLFxuXHRcdFx0aW1wbGljaXRHbG9iYWxSZWdpb246IFwidXMtaXNvLWVhc3QtMVwiLFxuXHRcdFx0bmFtZTogXCJhd3MtaXNvXCIsXG5cdFx0XHRzdXBwb3J0c0R1YWxTdGFjazogdHJ1ZSxcblx0XHRcdHN1cHBvcnRzRklQUzogdHJ1ZVxuXHRcdH0sXG5cdFx0cmVnaW9uUmVnZXg6IFwiXnVzXFxcXC1pc29cXFxcLVxcXFx3K1xcXFwtXFxcXGQrJFwiLFxuXHRcdHJlZ2lvbnM6IHtcblx0XHRcdFwiYXdzLWlzby1nbG9iYWxcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJhd3MtaXNvIGdsb2JhbCByZWdpb25cIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtaXNvLWVhc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIlVTIElTTyBFYXN0XCJcblx0XHRcdH0sXG5cdFx0XHRcInVzLWlzby13ZXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJVUyBJU08gV0VTVFwiXG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXHR7XG5cdFx0aWQ6IFwiYXdzLWlzby1iXCIsXG5cdFx0b3V0cHV0czoge1xuXHRcdFx0ZG5zU3VmZml4OiBcInNjMnMuc2dvdi5nb3ZcIixcblx0XHRcdGR1YWxTdGFja0Ruc1N1ZmZpeDogXCJhcGkuYXdzLnNjbG91ZFwiLFxuXHRcdFx0aW1wbGljaXRHbG9iYWxSZWdpb246IFwidXMtaXNvYi1lYXN0LTFcIixcblx0XHRcdG5hbWU6IFwiYXdzLWlzby1iXCIsXG5cdFx0XHRzdXBwb3J0c0R1YWxTdGFjazogdHJ1ZSxcblx0XHRcdHN1cHBvcnRzRklQUzogdHJ1ZVxuXHRcdH0sXG5cdFx0cmVnaW9uUmVnZXg6IFwiXnVzXFxcXC1pc29iXFxcXC1cXFxcdytcXFxcLVxcXFxkKyRcIixcblx0XHRyZWdpb25zOiB7XG5cdFx0XHRcImF3cy1pc28tYi1nbG9iYWxcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJhd3MtaXNvLWIgZ2xvYmFsIHJlZ2lvblwiXG5cdFx0XHR9LFxuXHRcdFx0XCJ1cy1pc29iLWVhc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIlVTIElTT0IgRWFzdCAoT2hpbylcIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtaXNvYi13ZXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJVUyBJU09CIFdlc3RcIlxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0e1xuXHRcdGlkOiBcImF3cy1pc28tZVwiLFxuXHRcdG91dHB1dHM6IHtcblx0XHRcdGRuc1N1ZmZpeDogXCJjbG91ZC5hZGMtZS51a1wiLFxuXHRcdFx0ZHVhbFN0YWNrRG5zU3VmZml4OiBcImFwaS5jbG91ZC1hd3MuYWRjLWUudWtcIixcblx0XHRcdGltcGxpY2l0R2xvYmFsUmVnaW9uOiBcImV1LWlzb2Utd2VzdC0xXCIsXG5cdFx0XHRuYW1lOiBcImF3cy1pc28tZVwiLFxuXHRcdFx0c3VwcG9ydHNEdWFsU3RhY2s6IHRydWUsXG5cdFx0XHRzdXBwb3J0c0ZJUFM6IHRydWVcblx0XHR9LFxuXHRcdHJlZ2lvblJlZ2V4OiBcIl5ldVxcXFwtaXNvZVxcXFwtXFxcXHcrXFxcXC1cXFxcZCskXCIsXG5cdFx0cmVnaW9uczoge1xuXHRcdFx0XCJhd3MtaXNvLWUtZ2xvYmFsXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiYXdzLWlzby1lIGdsb2JhbCByZWdpb25cIlxuXHRcdFx0fSxcblx0XHRcdFwiZXUtaXNvZS13ZXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJFVSBJU09FIFdlc3RcIlxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0e1xuXHRcdGlkOiBcImF3cy1pc28tZlwiLFxuXHRcdG91dHB1dHM6IHtcblx0XHRcdGRuc1N1ZmZpeDogXCJjc3AuaGNpLmljLmdvdlwiLFxuXHRcdFx0ZHVhbFN0YWNrRG5zU3VmZml4OiBcImFwaS5hd3MuaGNpLmljLmdvdlwiLFxuXHRcdFx0aW1wbGljaXRHbG9iYWxSZWdpb246IFwidXMtaXNvZi1zb3V0aC0xXCIsXG5cdFx0XHRuYW1lOiBcImF3cy1pc28tZlwiLFxuXHRcdFx0c3VwcG9ydHNEdWFsU3RhY2s6IHRydWUsXG5cdFx0XHRzdXBwb3J0c0ZJUFM6IHRydWVcblx0XHR9LFxuXHRcdHJlZ2lvblJlZ2V4OiBcIl51c1xcXFwtaXNvZlxcXFwtXFxcXHcrXFxcXC1cXFxcZCskXCIsXG5cdFx0cmVnaW9uczoge1xuXHRcdFx0XCJhd3MtaXNvLWYtZ2xvYmFsXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiYXdzLWlzby1mIGdsb2JhbCByZWdpb25cIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtaXNvZi1lYXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJVUyBJU09GIEVBU1RcIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtaXNvZi1zb3V0aC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiVVMgSVNPRiBTT1VUSFwiXG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXHR7XG5cdFx0aWQ6IFwiYXdzLXVzLWdvdlwiLFxuXHRcdG91dHB1dHM6IHtcblx0XHRcdGRuc1N1ZmZpeDogXCJhbWF6b25hd3MuY29tXCIsXG5cdFx0XHRkdWFsU3RhY2tEbnNTdWZmaXg6IFwiYXBpLmF3c1wiLFxuXHRcdFx0aW1wbGljaXRHbG9iYWxSZWdpb246IFwidXMtZ292LXdlc3QtMVwiLFxuXHRcdFx0bmFtZTogXCJhd3MtdXMtZ292XCIsXG5cdFx0XHRzdXBwb3J0c0R1YWxTdGFjazogdHJ1ZSxcblx0XHRcdHN1cHBvcnRzRklQUzogdHJ1ZVxuXHRcdH0sXG5cdFx0cmVnaW9uUmVnZXg6IFwiXnVzXFxcXC1nb3ZcXFxcLVxcXFx3K1xcXFwtXFxcXGQrJFwiLFxuXHRcdHJlZ2lvbnM6IHtcblx0XHRcdFwiYXdzLXVzLWdvdi1nbG9iYWxcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJhd3MtdXMtZ292IGdsb2JhbCByZWdpb25cIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtZ292LWVhc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFXUyBHb3ZDbG91ZCAoVVMtRWFzdClcIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtZ292LXdlc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFXUyBHb3ZDbG91ZCAoVVMtV2VzdClcIlxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXTtcbnZhciB2ZXJzaW9uID0gXCIxLjFcIjtcbnZhciBwYXJ0aXRpb25zSW5mbyA9IHtcblx0cGFydGl0aW9uczogcGFydGl0aW9ucyxcblx0dmVyc2lvbjogdmVyc2lvblxufTtcblxubGV0IHNlbGVjdGVkUGFydGl0aW9uc0luZm8gPSBwYXJ0aXRpb25zSW5mbztcbmxldCBzZWxlY3RlZFVzZXJBZ2VudFByZWZpeCA9IFwiXCI7XG5jb25zdCBwYXJ0aXRpb24gPSAodmFsdWUpID0+IHtcbiAgICBjb25zdCB7IHBhcnRpdGlvbnMgfSA9IHNlbGVjdGVkUGFydGl0aW9uc0luZm87XG4gICAgZm9yIChjb25zdCBwYXJ0aXRpb24gb2YgcGFydGl0aW9ucykge1xuICAgICAgICBjb25zdCB7IHJlZ2lvbnMsIG91dHB1dHMgfSA9IHBhcnRpdGlvbjtcbiAgICAgICAgZm9yIChjb25zdCBbcmVnaW9uLCByZWdpb25EYXRhXSBvZiBPYmplY3QuZW50cmllcyhyZWdpb25zKSkge1xuICAgICAgICAgICAgaWYgKHJlZ2lvbiA9PT0gdmFsdWUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAuLi5vdXRwdXRzLFxuICAgICAgICAgICAgICAgICAgICAuLi5yZWdpb25EYXRhLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgZm9yIChjb25zdCBwYXJ0aXRpb24gb2YgcGFydGl0aW9ucykge1xuICAgICAgICBjb25zdCB7IHJlZ2lvblJlZ2V4LCBvdXRwdXRzIH0gPSBwYXJ0aXRpb247XG4gICAgICAgIGlmIChuZXcgUmVnRXhwKHJlZ2lvblJlZ2V4KS50ZXN0KHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5vdXRwdXRzLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBERUZBVUxUX1BBUlRJVElPTiA9IHBhcnRpdGlvbnMuZmluZCgocGFydGl0aW9uKSA9PiBwYXJ0aXRpb24uaWQgPT09IFwiYXdzXCIpO1xuICAgIGlmICghREVGQVVMVF9QQVJUSVRJT04pIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiUHJvdmlkZWQgcmVnaW9uIHdhcyBub3QgZm91bmQgaW4gdGhlIHBhcnRpdGlvbiBhcnJheSBvciByZWdleCxcIiArXG4gICAgICAgICAgICBcIiBhbmQgZGVmYXVsdCBwYXJ0aXRpb24gd2l0aCBpZCAnYXdzJyBkb2Vzbid0IGV4aXN0LlwiKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgLi4uREVGQVVMVF9QQVJUSVRJT04ub3V0cHV0cyxcbiAgICB9O1xufTtcbmNvbnN0IHNldFBhcnRpdGlvbkluZm8gPSAocGFydGl0aW9uc0luZm8sIHVzZXJBZ2VudFByZWZpeCA9IFwiXCIpID0+IHtcbiAgICBzZWxlY3RlZFBhcnRpdGlvbnNJbmZvID0gcGFydGl0aW9uc0luZm87XG4gICAgc2VsZWN0ZWRVc2VyQWdlbnRQcmVmaXggPSB1c2VyQWdlbnRQcmVmaXg7XG59O1xuY29uc3QgdXNlRGVmYXVsdFBhcnRpdGlvbkluZm8gPSAoKSA9PiB7XG4gICAgc2V0UGFydGl0aW9uSW5mbyhwYXJ0aXRpb25zSW5mbywgXCJcIik7XG59O1xuY29uc3QgZ2V0VXNlckFnZW50UHJlZml4ID0gKCkgPT4gc2VsZWN0ZWRVc2VyQWdlbnRQcmVmaXg7XG5cbmNvbnN0IGF3c0VuZHBvaW50RnVuY3Rpb25zID0ge1xuICAgIGlzVmlydHVhbEhvc3RhYmxlUzNCdWNrZXQ6IGlzVmlydHVhbEhvc3RhYmxlUzNCdWNrZXQsXG4gICAgcGFyc2VBcm46IHBhcnNlQXJuLFxuICAgIHBhcnRpdGlvbjogcGFydGl0aW9uLFxufTtcbnV0aWxFbmRwb2ludHMuY3VzdG9tRW5kcG9pbnRGdW5jdGlvbnMuYXdzID0gYXdzRW5kcG9pbnRGdW5jdGlvbnM7XG5cbmNvbnN0IHJlc29sdmVEZWZhdWx0QXdzUmVnaW9uYWxFbmRwb2ludHNDb25maWcgPSAoaW5wdXQpID0+IHtcbiAgICBpZiAodHlwZW9mIGlucHV0LmVuZHBvaW50UHJvdmlkZXIgIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJAYXdzLXNkay91dGlsLWVuZHBvaW50IC0gZW5kcG9pbnRQcm92aWRlciBhbmQgZW5kcG9pbnQgbWlzc2luZyBpbiBjb25maWcgZm9yIHRoaXMgY2xpZW50LlwiKTtcbiAgICB9XG4gICAgY29uc3QgeyBlbmRwb2ludCB9ID0gaW5wdXQ7XG4gICAgaWYgKGVuZHBvaW50ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaW5wdXQuZW5kcG9pbnQgPSBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gdG9FbmRwb2ludFYxKGlucHV0LmVuZHBvaW50UHJvdmlkZXIoe1xuICAgICAgICAgICAgICAgIFJlZ2lvbjogdHlwZW9mIGlucHV0LnJlZ2lvbiA9PT0gXCJmdW5jdGlvblwiID8gYXdhaXQgaW5wdXQucmVnaW9uKCkgOiBpbnB1dC5yZWdpb24sXG4gICAgICAgICAgICAgICAgVXNlRHVhbFN0YWNrOiB0eXBlb2YgaW5wdXQudXNlRHVhbHN0YWNrRW5kcG9pbnQgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICA/IGF3YWl0IGlucHV0LnVzZUR1YWxzdGFja0VuZHBvaW50KClcbiAgICAgICAgICAgICAgICAgICAgOiBpbnB1dC51c2VEdWFsc3RhY2tFbmRwb2ludCxcbiAgICAgICAgICAgICAgICBVc2VGSVBTOiB0eXBlb2YgaW5wdXQudXNlRmlwc0VuZHBvaW50ID09PSBcImZ1bmN0aW9uXCIgPyBhd2FpdCBpbnB1dC51c2VGaXBzRW5kcG9pbnQoKSA6IGlucHV0LnVzZUZpcHNFbmRwb2ludCxcbiAgICAgICAgICAgICAgICBFbmRwb2ludDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfSwgeyBsb2dnZXI6IGlucHV0LmxvZ2dlciB9KSk7XG4gICAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiBpbnB1dDtcbn07XG5jb25zdCB0b0VuZHBvaW50VjEgPSAoZW5kcG9pbnQpID0+IHVybFBhcnNlci5wYXJzZVVybChlbmRwb2ludC51cmwpO1xuXG5leHBvcnRzLkVuZHBvaW50RXJyb3IgPSB1dGlsRW5kcG9pbnRzLkVuZHBvaW50RXJyb3I7XG5leHBvcnRzLmlzSXBBZGRyZXNzID0gdXRpbEVuZHBvaW50cy5pc0lwQWRkcmVzcztcbmV4cG9ydHMucmVzb2x2ZUVuZHBvaW50ID0gdXRpbEVuZHBvaW50cy5yZXNvbHZlRW5kcG9pbnQ7XG5leHBvcnRzLmF3c0VuZHBvaW50RnVuY3Rpb25zID0gYXdzRW5kcG9pbnRGdW5jdGlvbnM7XG5leHBvcnRzLmdldFVzZXJBZ2VudFByZWZpeCA9IGdldFVzZXJBZ2VudFByZWZpeDtcbmV4cG9ydHMucGFydGl0aW9uID0gcGFydGl0aW9uO1xuZXhwb3J0cy5yZXNvbHZlRGVmYXVsdEF3c1JlZ2lvbmFsRW5kcG9pbnRzQ29uZmlnID0gcmVzb2x2ZURlZmF1bHRBd3NSZWdpb25hbEVuZHBvaW50c0NvbmZpZztcbmV4cG9ydHMuc2V0UGFydGl0aW9uSW5mbyA9IHNldFBhcnRpdGlvbkluZm87XG5leHBvcnRzLnRvRW5kcG9pbnRWMSA9IHRvRW5kcG9pbnRWMTtcbmV4cG9ydHMudXNlRGVmYXVsdFBhcnRpdGlvbkluZm8gPSB1c2VEZWZhdWx0UGFydGl0aW9uSW5mbztcbiIsICJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMucnVsZVNldCA9IHZvaWQgMDtcbmNvbnN0IHUgPSBcInJlcXVpcmVkXCIsIHYgPSBcImZuXCIsIHcgPSBcImFyZ3ZcIiwgeCA9IFwicmVmXCI7XG5jb25zdCBhID0gdHJ1ZSwgYiA9IFwiaXNTZXRcIiwgYyA9IFwiYm9vbGVhbkVxdWFsc1wiLCBkID0gXCJlcnJvclwiLCBlID0gXCJlbmRwb2ludFwiLCBmID0gXCJ0cmVlXCIsIGcgPSBcIlBhcnRpdGlvblJlc3VsdFwiLCBoID0gXCJnZXRBdHRyXCIsIGkgPSB7IFt1XTogZmFsc2UsIFwidHlwZVwiOiBcInN0cmluZ1wiIH0sIGogPSB7IFt1XTogdHJ1ZSwgXCJkZWZhdWx0XCI6IGZhbHNlLCBcInR5cGVcIjogXCJib29sZWFuXCIgfSwgayA9IHsgW3hdOiBcIkVuZHBvaW50XCIgfSwgbCA9IHsgW3ZdOiBjLCBbd106IFt7IFt4XTogXCJVc2VGSVBTXCIgfSwgdHJ1ZV0gfSwgbSA9IHsgW3ZdOiBjLCBbd106IFt7IFt4XTogXCJVc2VEdWFsU3RhY2tcIiB9LCB0cnVlXSB9LCBuID0ge30sIG8gPSB7IFt2XTogaCwgW3ddOiBbeyBbeF06IGcgfSwgXCJzdXBwb3J0c0ZJUFNcIl0gfSwgcCA9IHsgW3hdOiBnIH0sIHEgPSB7IFt2XTogYywgW3ddOiBbdHJ1ZSwgeyBbdl06IGgsIFt3XTogW3AsIFwic3VwcG9ydHNEdWFsU3RhY2tcIl0gfV0gfSwgciA9IFtsXSwgcyA9IFttXSwgdCA9IFt7IFt4XTogXCJSZWdpb25cIiB9XTtcbmNvbnN0IF9kYXRhID0geyB2ZXJzaW9uOiBcIjEuMFwiLCBwYXJhbWV0ZXJzOiB7IFJlZ2lvbjogaSwgVXNlRHVhbFN0YWNrOiBqLCBVc2VGSVBTOiBqLCBFbmRwb2ludDogaSB9LCBydWxlczogW3sgY29uZGl0aW9uczogW3sgW3ZdOiBiLCBbd106IFtrXSB9XSwgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IHIsIGVycm9yOiBcIkludmFsaWQgQ29uZmlndXJhdGlvbjogRklQUyBhbmQgY3VzdG9tIGVuZHBvaW50IGFyZSBub3Qgc3VwcG9ydGVkXCIsIHR5cGU6IGQgfSwgeyBjb25kaXRpb25zOiBzLCBlcnJvcjogXCJJbnZhbGlkIENvbmZpZ3VyYXRpb246IER1YWxzdGFjayBhbmQgY3VzdG9tIGVuZHBvaW50IGFyZSBub3Qgc3VwcG9ydGVkXCIsIHR5cGU6IGQgfSwgeyBlbmRwb2ludDogeyB1cmw6IGssIHByb3BlcnRpZXM6IG4sIGhlYWRlcnM6IG4gfSwgdHlwZTogZSB9XSwgdHlwZTogZiB9LCB7IGNvbmRpdGlvbnM6IFt7IFt2XTogYiwgW3ddOiB0IH1dLCBydWxlczogW3sgY29uZGl0aW9uczogW3sgW3ZdOiBcImF3cy5wYXJ0aXRpb25cIiwgW3ddOiB0LCBhc3NpZ246IGcgfV0sIHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbbCwgbV0sIHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbeyBbdl06IGMsIFt3XTogW2EsIG9dIH0sIHFdLCBydWxlczogW3sgZW5kcG9pbnQ6IHsgdXJsOiBcImh0dHBzOi8vcG9ydGFsLnNzby1maXBzLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZHVhbFN0YWNrRG5zU3VmZml4fVwiLCBwcm9wZXJ0aWVzOiBuLCBoZWFkZXJzOiBuIH0sIHR5cGU6IGUgfV0sIHR5cGU6IGYgfSwgeyBlcnJvcjogXCJGSVBTIGFuZCBEdWFsU3RhY2sgYXJlIGVuYWJsZWQsIGJ1dCB0aGlzIHBhcnRpdGlvbiBkb2VzIG5vdCBzdXBwb3J0IG9uZSBvciBib3RoXCIsIHR5cGU6IGQgfV0sIHR5cGU6IGYgfSwgeyBjb25kaXRpb25zOiByLCBydWxlczogW3sgY29uZGl0aW9uczogW3sgW3ZdOiBjLCBbd106IFtvLCBhXSB9XSwgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IFt7IFt2XTogXCJzdHJpbmdFcXVhbHNcIiwgW3ddOiBbeyBbdl06IGgsIFt3XTogW3AsIFwibmFtZVwiXSB9LCBcImF3cy11cy1nb3ZcIl0gfV0sIGVuZHBvaW50OiB7IHVybDogXCJodHRwczovL3BvcnRhbC5zc28ue1JlZ2lvbn0uYW1hem9uYXdzLmNvbVwiLCBwcm9wZXJ0aWVzOiBuLCBoZWFkZXJzOiBuIH0sIHR5cGU6IGUgfSwgeyBlbmRwb2ludDogeyB1cmw6IFwiaHR0cHM6Ly9wb3J0YWwuc3NvLWZpcHMue1JlZ2lvbn0ue1BhcnRpdGlvblJlc3VsdCNkbnNTdWZmaXh9XCIsIHByb3BlcnRpZXM6IG4sIGhlYWRlcnM6IG4gfSwgdHlwZTogZSB9XSwgdHlwZTogZiB9LCB7IGVycm9yOiBcIkZJUFMgaXMgZW5hYmxlZCBidXQgdGhpcyBwYXJ0aXRpb24gZG9lcyBub3Qgc3VwcG9ydCBGSVBTXCIsIHR5cGU6IGQgfV0sIHR5cGU6IGYgfSwgeyBjb25kaXRpb25zOiBzLCBydWxlczogW3sgY29uZGl0aW9uczogW3FdLCBydWxlczogW3sgZW5kcG9pbnQ6IHsgdXJsOiBcImh0dHBzOi8vcG9ydGFsLnNzby57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2R1YWxTdGFja0Ruc1N1ZmZpeH1cIiwgcHJvcGVydGllczogbiwgaGVhZGVyczogbiB9LCB0eXBlOiBlIH1dLCB0eXBlOiBmIH0sIHsgZXJyb3I6IFwiRHVhbFN0YWNrIGlzIGVuYWJsZWQgYnV0IHRoaXMgcGFydGl0aW9uIGRvZXMgbm90IHN1cHBvcnQgRHVhbFN0YWNrXCIsIHR5cGU6IGQgfV0sIHR5cGU6IGYgfSwgeyBlbmRwb2ludDogeyB1cmw6IFwiaHR0cHM6Ly9wb3J0YWwuc3NvLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZG5zU3VmZml4fVwiLCBwcm9wZXJ0aWVzOiBuLCBoZWFkZXJzOiBuIH0sIHR5cGU6IGUgfV0sIHR5cGU6IGYgfV0sIHR5cGU6IGYgfSwgeyBlcnJvcjogXCJJbnZhbGlkIENvbmZpZ3VyYXRpb246IE1pc3NpbmcgUmVnaW9uXCIsIHR5cGU6IGQgfV0gfTtcbmV4cG9ydHMucnVsZVNldCA9IF9kYXRhO1xuIiwgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5kZWZhdWx0RW5kcG9pbnRSZXNvbHZlciA9IHZvaWQgMDtcbmNvbnN0IHV0aWxfZW5kcG9pbnRzXzEgPSByZXF1aXJlKFwiQGF3cy1zZGsvdXRpbC1lbmRwb2ludHNcIik7XG5jb25zdCB1dGlsX2VuZHBvaW50c18yID0gcmVxdWlyZShcIkBzbWl0aHkvdXRpbC1lbmRwb2ludHNcIik7XG5jb25zdCBydWxlc2V0XzEgPSByZXF1aXJlKFwiLi9ydWxlc2V0XCIpO1xuY29uc3QgY2FjaGUgPSBuZXcgdXRpbF9lbmRwb2ludHNfMi5FbmRwb2ludENhY2hlKHtcbiAgICBzaXplOiA1MCxcbiAgICBwYXJhbXM6IFtcIkVuZHBvaW50XCIsIFwiUmVnaW9uXCIsIFwiVXNlRHVhbFN0YWNrXCIsIFwiVXNlRklQU1wiXSxcbn0pO1xuY29uc3QgZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIgPSAoZW5kcG9pbnRQYXJhbXMsIGNvbnRleHQgPSB7fSkgPT4ge1xuICAgIHJldHVybiBjYWNoZS5nZXQoZW5kcG9pbnRQYXJhbXMsICgpID0+ICgwLCB1dGlsX2VuZHBvaW50c18yLnJlc29sdmVFbmRwb2ludCkocnVsZXNldF8xLnJ1bGVTZXQsIHtcbiAgICAgICAgZW5kcG9pbnRQYXJhbXM6IGVuZHBvaW50UGFyYW1zLFxuICAgICAgICBsb2dnZXI6IGNvbnRleHQubG9nZ2VyLFxuICAgIH0pKTtcbn07XG5leHBvcnRzLmRlZmF1bHRFbmRwb2ludFJlc29sdmVyID0gZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXI7XG51dGlsX2VuZHBvaW50c18yLmN1c3RvbUVuZHBvaW50RnVuY3Rpb25zLmF3cyA9IHV0aWxfZW5kcG9pbnRzXzEuYXdzRW5kcG9pbnRGdW5jdGlvbnM7XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlNTT1NlcnZpY2VFeGNlcHRpb24gPSBleHBvcnRzLl9fU2VydmljZUV4Y2VwdGlvbiA9IHZvaWQgMDtcbmNvbnN0IHNtaXRoeV9jbGllbnRfMSA9IHJlcXVpcmUoXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX1NlcnZpY2VFeGNlcHRpb25cIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHNtaXRoeV9jbGllbnRfMS5TZXJ2aWNlRXhjZXB0aW9uOyB9IH0pO1xuY2xhc3MgU1NPU2VydmljZUV4Y2VwdGlvbiBleHRlbmRzIHNtaXRoeV9jbGllbnRfMS5TZXJ2aWNlRXhjZXB0aW9uIHtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgU1NPU2VydmljZUV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn1cbmV4cG9ydHMuU1NPU2VydmljZUV4Y2VwdGlvbiA9IFNTT1NlcnZpY2VFeGNlcHRpb247XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlVuYXV0aG9yaXplZEV4Y2VwdGlvbiA9IGV4cG9ydHMuVG9vTWFueVJlcXVlc3RzRXhjZXB0aW9uID0gZXhwb3J0cy5SZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uID0gZXhwb3J0cy5JbnZhbGlkUmVxdWVzdEV4Y2VwdGlvbiA9IHZvaWQgMDtcbmNvbnN0IFNTT1NlcnZpY2VFeGNlcHRpb25fMSA9IHJlcXVpcmUoXCIuL1NTT1NlcnZpY2VFeGNlcHRpb25cIik7XG5jbGFzcyBJbnZhbGlkUmVxdWVzdEV4Y2VwdGlvbiBleHRlbmRzIFNTT1NlcnZpY2VFeGNlcHRpb25fMS5TU09TZXJ2aWNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJJbnZhbGlkUmVxdWVzdEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkludmFsaWRSZXF1ZXN0RXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEludmFsaWRSZXF1ZXN0RXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgfVxufVxuZXhwb3J0cy5JbnZhbGlkUmVxdWVzdEV4Y2VwdGlvbiA9IEludmFsaWRSZXF1ZXN0RXhjZXB0aW9uO1xuY2xhc3MgUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvbiBleHRlbmRzIFNTT1NlcnZpY2VFeGNlcHRpb25fMS5TU09TZXJ2aWNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgfVxufVxuZXhwb3J0cy5SZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uID0gUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvbjtcbmNsYXNzIFRvb01hbnlSZXF1ZXN0c0V4Y2VwdGlvbiBleHRlbmRzIFNTT1NlcnZpY2VFeGNlcHRpb25fMS5TU09TZXJ2aWNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJUb29NYW55UmVxdWVzdHNFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJUb29NYW55UmVxdWVzdHNFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgVG9vTWFueVJlcXVlc3RzRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgfVxufVxuZXhwb3J0cy5Ub29NYW55UmVxdWVzdHNFeGNlcHRpb24gPSBUb29NYW55UmVxdWVzdHNFeGNlcHRpb247XG5jbGFzcyBVbmF1dGhvcml6ZWRFeGNlcHRpb24gZXh0ZW5kcyBTU09TZXJ2aWNlRXhjZXB0aW9uXzEuU1NPU2VydmljZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiVW5hdXRob3JpemVkRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiVW5hdXRob3JpemVkRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFVuYXV0aG9yaXplZEV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn1cbmV4cG9ydHMuVW5hdXRob3JpemVkRXhjZXB0aW9uID0gVW5hdXRob3JpemVkRXhjZXB0aW9uO1xuIiwgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5Mb2dvdXQkID0gZXhwb3J0cy5MaXN0QWNjb3VudHMkID0gZXhwb3J0cy5MaXN0QWNjb3VudFJvbGVzJCA9IGV4cG9ydHMuR2V0Um9sZUNyZWRlbnRpYWxzJCA9IGV4cG9ydHMuUm9sZUluZm8kID0gZXhwb3J0cy5Sb2xlQ3JlZGVudGlhbHMkID0gZXhwb3J0cy5Mb2dvdXRSZXF1ZXN0JCA9IGV4cG9ydHMuTGlzdEFjY291bnRzUmVzcG9uc2UkID0gZXhwb3J0cy5MaXN0QWNjb3VudHNSZXF1ZXN0JCA9IGV4cG9ydHMuTGlzdEFjY291bnRSb2xlc1Jlc3BvbnNlJCA9IGV4cG9ydHMuTGlzdEFjY291bnRSb2xlc1JlcXVlc3QkID0gZXhwb3J0cy5HZXRSb2xlQ3JlZGVudGlhbHNSZXNwb25zZSQgPSBleHBvcnRzLkdldFJvbGVDcmVkZW50aWFsc1JlcXVlc3QkID0gZXhwb3J0cy5BY2NvdW50SW5mbyQgPSBleHBvcnRzLmVycm9yVHlwZVJlZ2lzdHJpZXMgPSBleHBvcnRzLlVuYXV0aG9yaXplZEV4Y2VwdGlvbiQgPSBleHBvcnRzLlRvb01hbnlSZXF1ZXN0c0V4Y2VwdGlvbiQgPSBleHBvcnRzLlJlc291cmNlTm90Rm91bmRFeGNlcHRpb24kID0gZXhwb3J0cy5JbnZhbGlkUmVxdWVzdEV4Y2VwdGlvbiQgPSBleHBvcnRzLlNTT1NlcnZpY2VFeGNlcHRpb24kID0gdm9pZCAwO1xuY29uc3QgX0FJID0gXCJBY2NvdW50SW5mb1wiO1xuY29uc3QgX0FMVCA9IFwiQWNjb3VudExpc3RUeXBlXCI7XG5jb25zdCBfQVRUID0gXCJBY2Nlc3NUb2tlblR5cGVcIjtcbmNvbnN0IF9HUkMgPSBcIkdldFJvbGVDcmVkZW50aWFsc1wiO1xuY29uc3QgX0dSQ1IgPSBcIkdldFJvbGVDcmVkZW50aWFsc1JlcXVlc3RcIjtcbmNvbnN0IF9HUkNSZSA9IFwiR2V0Um9sZUNyZWRlbnRpYWxzUmVzcG9uc2VcIjtcbmNvbnN0IF9JUkUgPSBcIkludmFsaWRSZXF1ZXN0RXhjZXB0aW9uXCI7XG5jb25zdCBfTCA9IFwiTG9nb3V0XCI7XG5jb25zdCBfTEEgPSBcIkxpc3RBY2NvdW50c1wiO1xuY29uc3QgX0xBUiA9IFwiTGlzdEFjY291bnRzUmVxdWVzdFwiO1xuY29uc3QgX0xBUlIgPSBcIkxpc3RBY2NvdW50Um9sZXNSZXF1ZXN0XCI7XG5jb25zdCBfTEFSUmkgPSBcIkxpc3RBY2NvdW50Um9sZXNSZXNwb25zZVwiO1xuY29uc3QgX0xBUmkgPSBcIkxpc3RBY2NvdW50c1Jlc3BvbnNlXCI7XG5jb25zdCBfTEFSaXMgPSBcIkxpc3RBY2NvdW50Um9sZXNcIjtcbmNvbnN0IF9MUiA9IFwiTG9nb3V0UmVxdWVzdFwiO1xuY29uc3QgX1JDID0gXCJSb2xlQ3JlZGVudGlhbHNcIjtcbmNvbnN0IF9SSSA9IFwiUm9sZUluZm9cIjtcbmNvbnN0IF9STFQgPSBcIlJvbGVMaXN0VHlwZVwiO1xuY29uc3QgX1JORkUgPSBcIlJlc291cmNlTm90Rm91bmRFeGNlcHRpb25cIjtcbmNvbnN0IF9TQUtUID0gXCJTZWNyZXRBY2Nlc3NLZXlUeXBlXCI7XG5jb25zdCBfU1RUID0gXCJTZXNzaW9uVG9rZW5UeXBlXCI7XG5jb25zdCBfVE1SRSA9IFwiVG9vTWFueVJlcXVlc3RzRXhjZXB0aW9uXCI7XG5jb25zdCBfVUUgPSBcIlVuYXV0aG9yaXplZEV4Y2VwdGlvblwiO1xuY29uc3QgX2FJID0gXCJhY2NvdW50SWRcIjtcbmNvbnN0IF9hS0kgPSBcImFjY2Vzc0tleUlkXCI7XG5jb25zdCBfYUwgPSBcImFjY291bnRMaXN0XCI7XG5jb25zdCBfYU4gPSBcImFjY291bnROYW1lXCI7XG5jb25zdCBfYVQgPSBcImFjY2Vzc1Rva2VuXCI7XG5jb25zdCBfYWkgPSBcImFjY291bnRfaWRcIjtcbmNvbnN0IF9jID0gXCJjbGllbnRcIjtcbmNvbnN0IF9lID0gXCJlcnJvclwiO1xuY29uc3QgX2VBID0gXCJlbWFpbEFkZHJlc3NcIjtcbmNvbnN0IF9leCA9IFwiZXhwaXJhdGlvblwiO1xuY29uc3QgX2ggPSBcImh0dHBcIjtcbmNvbnN0IF9oRSA9IFwiaHR0cEVycm9yXCI7XG5jb25zdCBfaEggPSBcImh0dHBIZWFkZXJcIjtcbmNvbnN0IF9oUSA9IFwiaHR0cFF1ZXJ5XCI7XG5jb25zdCBfbSA9IFwibWVzc2FnZVwiO1xuY29uc3QgX21SID0gXCJtYXhSZXN1bHRzXCI7XG5jb25zdCBfbXIgPSBcIm1heF9yZXN1bHRcIjtcbmNvbnN0IF9uVCA9IFwibmV4dFRva2VuXCI7XG5jb25zdCBfbnQgPSBcIm5leHRfdG9rZW5cIjtcbmNvbnN0IF9yQyA9IFwicm9sZUNyZWRlbnRpYWxzXCI7XG5jb25zdCBfckwgPSBcInJvbGVMaXN0XCI7XG5jb25zdCBfck4gPSBcInJvbGVOYW1lXCI7XG5jb25zdCBfcm4gPSBcInJvbGVfbmFtZVwiO1xuY29uc3QgX3MgPSBcInNtaXRoeS50cy5zZGsuc3ludGhldGljLmNvbS5hbWF6b25hd3Muc3NvXCI7XG5jb25zdCBfc0FLID0gXCJzZWNyZXRBY2Nlc3NLZXlcIjtcbmNvbnN0IF9zVCA9IFwic2Vzc2lvblRva2VuXCI7XG5jb25zdCBfeGFzYnQgPSBcIngtYW16LXNzb19iZWFyZXJfdG9rZW5cIjtcbmNvbnN0IG4wID0gXCJjb20uYW1hem9uYXdzLnNzb1wiO1xuY29uc3Qgc2NoZW1hXzEgPSByZXF1aXJlKFwiQHNtaXRoeS9jb3JlL3NjaGVtYVwiKTtcbmNvbnN0IGVycm9yc18xID0gcmVxdWlyZShcIi4uL21vZGVscy9lcnJvcnNcIik7XG5jb25zdCBTU09TZXJ2aWNlRXhjZXB0aW9uXzEgPSByZXF1aXJlKFwiLi4vbW9kZWxzL1NTT1NlcnZpY2VFeGNlcHRpb25cIik7XG5jb25zdCBfc19yZWdpc3RyeSA9IHNjaGVtYV8xLlR5cGVSZWdpc3RyeS5mb3IoX3MpO1xuZXhwb3J0cy5TU09TZXJ2aWNlRXhjZXB0aW9uJCA9IFstMywgX3MsIFwiU1NPU2VydmljZUV4Y2VwdGlvblwiLCAwLCBbXSwgW11dO1xuX3NfcmVnaXN0cnkucmVnaXN0ZXJFcnJvcihleHBvcnRzLlNTT1NlcnZpY2VFeGNlcHRpb24kLCBTU09TZXJ2aWNlRXhjZXB0aW9uXzEuU1NPU2VydmljZUV4Y2VwdGlvbik7XG5jb25zdCBuMF9yZWdpc3RyeSA9IHNjaGVtYV8xLlR5cGVSZWdpc3RyeS5mb3IobjApO1xuZXhwb3J0cy5JbnZhbGlkUmVxdWVzdEV4Y2VwdGlvbiQgPSBbLTMsIG4wLCBfSVJFLFxuICAgIHsgW19lXTogX2MsIFtfaEVdOiA0MDAgfSxcbiAgICBbX21dLFxuICAgIFswXVxuXTtcbm4wX3JlZ2lzdHJ5LnJlZ2lzdGVyRXJyb3IoZXhwb3J0cy5JbnZhbGlkUmVxdWVzdEV4Y2VwdGlvbiQsIGVycm9yc18xLkludmFsaWRSZXF1ZXN0RXhjZXB0aW9uKTtcbmV4cG9ydHMuUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvbiQgPSBbLTMsIG4wLCBfUk5GRSxcbiAgICB7IFtfZV06IF9jLCBbX2hFXTogNDA0IH0sXG4gICAgW19tXSxcbiAgICBbMF1cbl07XG5uMF9yZWdpc3RyeS5yZWdpc3RlckVycm9yKGV4cG9ydHMuUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvbiQsIGVycm9yc18xLlJlc291cmNlTm90Rm91bmRFeGNlcHRpb24pO1xuZXhwb3J0cy5Ub29NYW55UmVxdWVzdHNFeGNlcHRpb24kID0gWy0zLCBuMCwgX1RNUkUsXG4gICAgeyBbX2VdOiBfYywgW19oRV06IDQyOSB9LFxuICAgIFtfbV0sXG4gICAgWzBdXG5dO1xubjBfcmVnaXN0cnkucmVnaXN0ZXJFcnJvcihleHBvcnRzLlRvb01hbnlSZXF1ZXN0c0V4Y2VwdGlvbiQsIGVycm9yc18xLlRvb01hbnlSZXF1ZXN0c0V4Y2VwdGlvbik7XG5leHBvcnRzLlVuYXV0aG9yaXplZEV4Y2VwdGlvbiQgPSBbLTMsIG4wLCBfVUUsXG4gICAgeyBbX2VdOiBfYywgW19oRV06IDQwMSB9LFxuICAgIFtfbV0sXG4gICAgWzBdXG5dO1xubjBfcmVnaXN0cnkucmVnaXN0ZXJFcnJvcihleHBvcnRzLlVuYXV0aG9yaXplZEV4Y2VwdGlvbiQsIGVycm9yc18xLlVuYXV0aG9yaXplZEV4Y2VwdGlvbik7XG5leHBvcnRzLmVycm9yVHlwZVJlZ2lzdHJpZXMgPSBbXG4gICAgX3NfcmVnaXN0cnksXG4gICAgbjBfcmVnaXN0cnksXG5dO1xudmFyIEFjY2Vzc1Rva2VuVHlwZSA9IFswLCBuMCwgX0FUVCwgOCwgMF07XG52YXIgU2VjcmV0QWNjZXNzS2V5VHlwZSA9IFswLCBuMCwgX1NBS1QsIDgsIDBdO1xudmFyIFNlc3Npb25Ub2tlblR5cGUgPSBbMCwgbjAsIF9TVFQsIDgsIDBdO1xuZXhwb3J0cy5BY2NvdW50SW5mbyQgPSBbMywgbjAsIF9BSSxcbiAgICAwLFxuICAgIFtfYUksIF9hTiwgX2VBXSxcbiAgICBbMCwgMCwgMF1cbl07XG5leHBvcnRzLkdldFJvbGVDcmVkZW50aWFsc1JlcXVlc3QkID0gWzMsIG4wLCBfR1JDUixcbiAgICAwLFxuICAgIFtfck4sIF9hSSwgX2FUXSxcbiAgICBbWzAsIHsgW19oUV06IF9ybiB9XSwgWzAsIHsgW19oUV06IF9haSB9XSwgWygpID0+IEFjY2Vzc1Rva2VuVHlwZSwgeyBbX2hIXTogX3hhc2J0IH1dXSwgM1xuXTtcbmV4cG9ydHMuR2V0Um9sZUNyZWRlbnRpYWxzUmVzcG9uc2UkID0gWzMsIG4wLCBfR1JDUmUsXG4gICAgMCxcbiAgICBbX3JDXSxcbiAgICBbWygpID0+IGV4cG9ydHMuUm9sZUNyZWRlbnRpYWxzJCwgMF1dXG5dO1xuZXhwb3J0cy5MaXN0QWNjb3VudFJvbGVzUmVxdWVzdCQgPSBbMywgbjAsIF9MQVJSLFxuICAgIDAsXG4gICAgW19hVCwgX2FJLCBfblQsIF9tUl0sXG4gICAgW1soKSA9PiBBY2Nlc3NUb2tlblR5cGUsIHsgW19oSF06IF94YXNidCB9XSwgWzAsIHsgW19oUV06IF9haSB9XSwgWzAsIHsgW19oUV06IF9udCB9XSwgWzEsIHsgW19oUV06IF9tciB9XV0sIDJcbl07XG5leHBvcnRzLkxpc3RBY2NvdW50Um9sZXNSZXNwb25zZSQgPSBbMywgbjAsIF9MQVJSaSxcbiAgICAwLFxuICAgIFtfblQsIF9yTF0sXG4gICAgWzAsICgpID0+IFJvbGVMaXN0VHlwZV1cbl07XG5leHBvcnRzLkxpc3RBY2NvdW50c1JlcXVlc3QkID0gWzMsIG4wLCBfTEFSLFxuICAgIDAsXG4gICAgW19hVCwgX25ULCBfbVJdLFxuICAgIFtbKCkgPT4gQWNjZXNzVG9rZW5UeXBlLCB7IFtfaEhdOiBfeGFzYnQgfV0sIFswLCB7IFtfaFFdOiBfbnQgfV0sIFsxLCB7IFtfaFFdOiBfbXIgfV1dLCAxXG5dO1xuZXhwb3J0cy5MaXN0QWNjb3VudHNSZXNwb25zZSQgPSBbMywgbjAsIF9MQVJpLFxuICAgIDAsXG4gICAgW19uVCwgX2FMXSxcbiAgICBbMCwgKCkgPT4gQWNjb3VudExpc3RUeXBlXVxuXTtcbmV4cG9ydHMuTG9nb3V0UmVxdWVzdCQgPSBbMywgbjAsIF9MUixcbiAgICAwLFxuICAgIFtfYVRdLFxuICAgIFtbKCkgPT4gQWNjZXNzVG9rZW5UeXBlLCB7IFtfaEhdOiBfeGFzYnQgfV1dLCAxXG5dO1xuZXhwb3J0cy5Sb2xlQ3JlZGVudGlhbHMkID0gWzMsIG4wLCBfUkMsXG4gICAgMCxcbiAgICBbX2FLSSwgX3NBSywgX3NULCBfZXhdLFxuICAgIFswLCBbKCkgPT4gU2VjcmV0QWNjZXNzS2V5VHlwZSwgMF0sIFsoKSA9PiBTZXNzaW9uVG9rZW5UeXBlLCAwXSwgMV1cbl07XG5leHBvcnRzLlJvbGVJbmZvJCA9IFszLCBuMCwgX1JJLFxuICAgIDAsXG4gICAgW19yTiwgX2FJXSxcbiAgICBbMCwgMF1cbl07XG52YXIgX19Vbml0ID0gXCJ1bml0XCI7XG52YXIgQWNjb3VudExpc3RUeXBlID0gWzEsIG4wLCBfQUxULFxuICAgIDAsICgpID0+IGV4cG9ydHMuQWNjb3VudEluZm8kXG5dO1xudmFyIFJvbGVMaXN0VHlwZSA9IFsxLCBuMCwgX1JMVCxcbiAgICAwLCAoKSA9PiBleHBvcnRzLlJvbGVJbmZvJFxuXTtcbmV4cG9ydHMuR2V0Um9sZUNyZWRlbnRpYWxzJCA9IFs5LCBuMCwgX0dSQyxcbiAgICB7IFtfaF06IFtcIkdFVFwiLCBcIi9mZWRlcmF0aW9uL2NyZWRlbnRpYWxzXCIsIDIwMF0gfSwgKCkgPT4gZXhwb3J0cy5HZXRSb2xlQ3JlZGVudGlhbHNSZXF1ZXN0JCwgKCkgPT4gZXhwb3J0cy5HZXRSb2xlQ3JlZGVudGlhbHNSZXNwb25zZSRcbl07XG5leHBvcnRzLkxpc3RBY2NvdW50Um9sZXMkID0gWzksIG4wLCBfTEFSaXMsXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIvYXNzaWdubWVudC9yb2xlc1wiLCAyMDBdIH0sICgpID0+IGV4cG9ydHMuTGlzdEFjY291bnRSb2xlc1JlcXVlc3QkLCAoKSA9PiBleHBvcnRzLkxpc3RBY2NvdW50Um9sZXNSZXNwb25zZSRcbl07XG5leHBvcnRzLkxpc3RBY2NvdW50cyQgPSBbOSwgbjAsIF9MQSxcbiAgICB7IFtfaF06IFtcIkdFVFwiLCBcIi9hc3NpZ25tZW50L2FjY291bnRzXCIsIDIwMF0gfSwgKCkgPT4gZXhwb3J0cy5MaXN0QWNjb3VudHNSZXF1ZXN0JCwgKCkgPT4gZXhwb3J0cy5MaXN0QWNjb3VudHNSZXNwb25zZSRcbl07XG5leHBvcnRzLkxvZ291dCQgPSBbOSwgbjAsIF9MLFxuICAgIHsgW19oXTogW1wiUE9TVFwiLCBcIi9sb2dvdXRcIiwgMjAwXSB9LCAoKSA9PiBleHBvcnRzLkxvZ291dFJlcXVlc3QkLCAoKSA9PiBfX1VuaXRcbl07XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmdldFJ1bnRpbWVDb25maWcgPSB2b2lkIDA7XG5jb25zdCBjb3JlXzEgPSByZXF1aXJlKFwiQGF3cy1zZGsvY29yZVwiKTtcbmNvbnN0IHByb3RvY29sc18xID0gcmVxdWlyZShcIkBhd3Mtc2RrL2NvcmUvcHJvdG9jb2xzXCIpO1xuY29uc3QgY29yZV8yID0gcmVxdWlyZShcIkBzbWl0aHkvY29yZVwiKTtcbmNvbnN0IHNtaXRoeV9jbGllbnRfMSA9IHJlcXVpcmUoXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIik7XG5jb25zdCB1cmxfcGFyc2VyXzEgPSByZXF1aXJlKFwiQHNtaXRoeS91cmwtcGFyc2VyXCIpO1xuY29uc3QgdXRpbF9iYXNlNjRfMSA9IHJlcXVpcmUoXCJAc21pdGh5L3V0aWwtYmFzZTY0XCIpO1xuY29uc3QgdXRpbF91dGY4XzEgPSByZXF1aXJlKFwiQHNtaXRoeS91dGlsLXV0ZjhcIik7XG5jb25zdCBodHRwQXV0aFNjaGVtZVByb3ZpZGVyXzEgPSByZXF1aXJlKFwiLi9hdXRoL2h0dHBBdXRoU2NoZW1lUHJvdmlkZXJcIik7XG5jb25zdCBlbmRwb2ludFJlc29sdmVyXzEgPSByZXF1aXJlKFwiLi9lbmRwb2ludC9lbmRwb2ludFJlc29sdmVyXCIpO1xuY29uc3Qgc2NoZW1hc18wXzEgPSByZXF1aXJlKFwiLi9zY2hlbWFzL3NjaGVtYXNfMFwiKTtcbmNvbnN0IGdldFJ1bnRpbWVDb25maWcgPSAoY29uZmlnKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgYXBpVmVyc2lvbjogXCIyMDE5LTA2LTEwXCIsXG4gICAgICAgIGJhc2U2NERlY29kZXI6IGNvbmZpZz8uYmFzZTY0RGVjb2RlciA/PyB1dGlsX2Jhc2U2NF8xLmZyb21CYXNlNjQsXG4gICAgICAgIGJhc2U2NEVuY29kZXI6IGNvbmZpZz8uYmFzZTY0RW5jb2RlciA/PyB1dGlsX2Jhc2U2NF8xLnRvQmFzZTY0LFxuICAgICAgICBkaXNhYmxlSG9zdFByZWZpeDogY29uZmlnPy5kaXNhYmxlSG9zdFByZWZpeCA/PyBmYWxzZSxcbiAgICAgICAgZW5kcG9pbnRQcm92aWRlcjogY29uZmlnPy5lbmRwb2ludFByb3ZpZGVyID8/IGVuZHBvaW50UmVzb2x2ZXJfMS5kZWZhdWx0RW5kcG9pbnRSZXNvbHZlcixcbiAgICAgICAgZXh0ZW5zaW9uczogY29uZmlnPy5leHRlbnNpb25zID8/IFtdLFxuICAgICAgICBodHRwQXV0aFNjaGVtZVByb3ZpZGVyOiBjb25maWc/Lmh0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPz8gaHR0cEF1dGhTY2hlbWVQcm92aWRlcl8xLmRlZmF1bHRTU09IdHRwQXV0aFNjaGVtZVByb3ZpZGVyLFxuICAgICAgICBodHRwQXV0aFNjaGVtZXM6IGNvbmZpZz8uaHR0cEF1dGhTY2hlbWVzID8/IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzY2hlbWVJZDogXCJhd3MuYXV0aCNzaWd2NFwiLFxuICAgICAgICAgICAgICAgIGlkZW50aXR5UHJvdmlkZXI6IChpcGMpID0+IGlwYy5nZXRJZGVudGl0eVByb3ZpZGVyKFwiYXdzLmF1dGgjc2lndjRcIiksXG4gICAgICAgICAgICAgICAgc2lnbmVyOiBuZXcgY29yZV8xLkF3c1Nka1NpZ1Y0U2lnbmVyKCksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHNjaGVtZUlkOiBcInNtaXRoeS5hcGkjbm9BdXRoXCIsXG4gICAgICAgICAgICAgICAgaWRlbnRpdHlQcm92aWRlcjogKGlwYykgPT4gaXBjLmdldElkZW50aXR5UHJvdmlkZXIoXCJzbWl0aHkuYXBpI25vQXV0aFwiKSB8fCAoYXN5bmMgKCkgPT4gKHt9KSksXG4gICAgICAgICAgICAgICAgc2lnbmVyOiBuZXcgY29yZV8yLk5vQXV0aFNpZ25lcigpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgbG9nZ2VyOiBjb25maWc/LmxvZ2dlciA/PyBuZXcgc21pdGh5X2NsaWVudF8xLk5vT3BMb2dnZXIoKSxcbiAgICAgICAgcHJvdG9jb2w6IGNvbmZpZz8ucHJvdG9jb2wgPz8gcHJvdG9jb2xzXzEuQXdzUmVzdEpzb25Qcm90b2NvbCxcbiAgICAgICAgcHJvdG9jb2xTZXR0aW5nczogY29uZmlnPy5wcm90b2NvbFNldHRpbmdzID8/IHtcbiAgICAgICAgICAgIGRlZmF1bHROYW1lc3BhY2U6IFwiY29tLmFtYXpvbmF3cy5zc29cIixcbiAgICAgICAgICAgIGVycm9yVHlwZVJlZ2lzdHJpZXM6IHNjaGVtYXNfMF8xLmVycm9yVHlwZVJlZ2lzdHJpZXMsXG4gICAgICAgICAgICB2ZXJzaW9uOiBcIjIwMTktMDYtMTBcIixcbiAgICAgICAgICAgIHNlcnZpY2VUYXJnZXQ6IFwiU1dCUG9ydGFsU2VydmljZVwiLFxuICAgICAgICB9LFxuICAgICAgICBzZXJ2aWNlSWQ6IGNvbmZpZz8uc2VydmljZUlkID8/IFwiU1NPXCIsXG4gICAgICAgIHVybFBhcnNlcjogY29uZmlnPy51cmxQYXJzZXIgPz8gdXJsX3BhcnNlcl8xLnBhcnNlVXJsLFxuICAgICAgICB1dGY4RGVjb2RlcjogY29uZmlnPy51dGY4RGVjb2RlciA/PyB1dGlsX3V0ZjhfMS5mcm9tVXRmOCxcbiAgICAgICAgdXRmOEVuY29kZXI6IGNvbmZpZz8udXRmOEVuY29kZXIgPz8gdXRpbF91dGY4XzEudG9VdGY4LFxuICAgIH07XG59O1xuZXhwb3J0cy5nZXRSdW50aW1lQ29uZmlnID0gZ2V0UnVudGltZUNvbmZpZztcbiIsICJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuZ2V0UnVudGltZUNvbmZpZyA9IHZvaWQgMDtcbmNvbnN0IHRzbGliXzEgPSByZXF1aXJlKFwidHNsaWJcIik7XG5jb25zdCBwYWNrYWdlX2pzb25fMSA9IHRzbGliXzEuX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuLi9wYWNrYWdlLmpzb25cIikpO1xuY29uc3QgY29yZV8xID0gcmVxdWlyZShcIkBhd3Mtc2RrL2NvcmVcIik7XG5jb25zdCB1dGlsX3VzZXJfYWdlbnRfbm9kZV8xID0gcmVxdWlyZShcIkBhd3Mtc2RrL3V0aWwtdXNlci1hZ2VudC1ub2RlXCIpO1xuY29uc3QgY29uZmlnX3Jlc29sdmVyXzEgPSByZXF1aXJlKFwiQHNtaXRoeS9jb25maWctcmVzb2x2ZXJcIik7XG5jb25zdCBoYXNoX25vZGVfMSA9IHJlcXVpcmUoXCJAc21pdGh5L2hhc2gtbm9kZVwiKTtcbmNvbnN0IG1pZGRsZXdhcmVfcmV0cnlfMSA9IHJlcXVpcmUoXCJAc21pdGh5L21pZGRsZXdhcmUtcmV0cnlcIik7XG5jb25zdCBub2RlX2NvbmZpZ19wcm92aWRlcl8xID0gcmVxdWlyZShcIkBzbWl0aHkvbm9kZS1jb25maWctcHJvdmlkZXJcIik7XG5jb25zdCBub2RlX2h0dHBfaGFuZGxlcl8xID0gcmVxdWlyZShcIkBzbWl0aHkvbm9kZS1odHRwLWhhbmRsZXJcIik7XG5jb25zdCBzbWl0aHlfY2xpZW50XzEgPSByZXF1aXJlKFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCIpO1xuY29uc3QgdXRpbF9ib2R5X2xlbmd0aF9ub2RlXzEgPSByZXF1aXJlKFwiQHNtaXRoeS91dGlsLWJvZHktbGVuZ3RoLW5vZGVcIik7XG5jb25zdCB1dGlsX2RlZmF1bHRzX21vZGVfbm9kZV8xID0gcmVxdWlyZShcIkBzbWl0aHkvdXRpbC1kZWZhdWx0cy1tb2RlLW5vZGVcIik7XG5jb25zdCB1dGlsX3JldHJ5XzEgPSByZXF1aXJlKFwiQHNtaXRoeS91dGlsLXJldHJ5XCIpO1xuY29uc3QgcnVudGltZUNvbmZpZ19zaGFyZWRfMSA9IHJlcXVpcmUoXCIuL3J1bnRpbWVDb25maWcuc2hhcmVkXCIpO1xuY29uc3QgZ2V0UnVudGltZUNvbmZpZyA9IChjb25maWcpID0+IHtcbiAgICAoMCwgc21pdGh5X2NsaWVudF8xLmVtaXRXYXJuaW5nSWZVbnN1cHBvcnRlZFZlcnNpb24pKHByb2Nlc3MudmVyc2lvbik7XG4gICAgY29uc3QgZGVmYXVsdHNNb2RlID0gKDAsIHV0aWxfZGVmYXVsdHNfbW9kZV9ub2RlXzEucmVzb2x2ZURlZmF1bHRzTW9kZUNvbmZpZykoY29uZmlnKTtcbiAgICBjb25zdCBkZWZhdWx0Q29uZmlnUHJvdmlkZXIgPSAoKSA9PiBkZWZhdWx0c01vZGUoKS50aGVuKHNtaXRoeV9jbGllbnRfMS5sb2FkQ29uZmlnc0ZvckRlZmF1bHRNb2RlKTtcbiAgICBjb25zdCBjbGllbnRTaGFyZWRWYWx1ZXMgPSAoMCwgcnVudGltZUNvbmZpZ19zaGFyZWRfMS5nZXRSdW50aW1lQ29uZmlnKShjb25maWcpO1xuICAgICgwLCBjb3JlXzEuZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbikocHJvY2Vzcy52ZXJzaW9uKTtcbiAgICBjb25zdCBsb2FkZXJDb25maWcgPSB7XG4gICAgICAgIHByb2ZpbGU6IGNvbmZpZz8ucHJvZmlsZSxcbiAgICAgICAgbG9nZ2VyOiBjbGllbnRTaGFyZWRWYWx1ZXMubG9nZ2VyLFxuICAgIH07XG4gICAgcmV0dXJuIHtcbiAgICAgICAgLi4uY2xpZW50U2hhcmVkVmFsdWVzLFxuICAgICAgICAuLi5jb25maWcsXG4gICAgICAgIHJ1bnRpbWU6IFwibm9kZVwiLFxuICAgICAgICBkZWZhdWx0c01vZGUsXG4gICAgICAgIGF1dGhTY2hlbWVQcmVmZXJlbmNlOiBjb25maWc/LmF1dGhTY2hlbWVQcmVmZXJlbmNlID8/ICgwLCBub2RlX2NvbmZpZ19wcm92aWRlcl8xLmxvYWRDb25maWcpKGNvcmVfMS5OT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfT1BUSU9OUywgbG9hZGVyQ29uZmlnKSxcbiAgICAgICAgYm9keUxlbmd0aENoZWNrZXI6IGNvbmZpZz8uYm9keUxlbmd0aENoZWNrZXIgPz8gdXRpbF9ib2R5X2xlbmd0aF9ub2RlXzEuY2FsY3VsYXRlQm9keUxlbmd0aCxcbiAgICAgICAgZGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyOiBjb25maWc/LmRlZmF1bHRVc2VyQWdlbnRQcm92aWRlciA/PyAoMCwgdXRpbF91c2VyX2FnZW50X25vZGVfMS5jcmVhdGVEZWZhdWx0VXNlckFnZW50UHJvdmlkZXIpKHsgc2VydmljZUlkOiBjbGllbnRTaGFyZWRWYWx1ZXMuc2VydmljZUlkLCBjbGllbnRWZXJzaW9uOiBwYWNrYWdlX2pzb25fMS5kZWZhdWx0LnZlcnNpb24gfSksXG4gICAgICAgIG1heEF0dGVtcHRzOiBjb25maWc/Lm1heEF0dGVtcHRzID8/ICgwLCBub2RlX2NvbmZpZ19wcm92aWRlcl8xLmxvYWRDb25maWcpKG1pZGRsZXdhcmVfcmV0cnlfMS5OT0RFX01BWF9BVFRFTVBUX0NPTkZJR19PUFRJT05TLCBjb25maWcpLFxuICAgICAgICByZWdpb246IGNvbmZpZz8ucmVnaW9uID8/ICgwLCBub2RlX2NvbmZpZ19wcm92aWRlcl8xLmxvYWRDb25maWcpKGNvbmZpZ19yZXNvbHZlcl8xLk5PREVfUkVHSU9OX0NPTkZJR19PUFRJT05TLCB7IC4uLmNvbmZpZ19yZXNvbHZlcl8xLk5PREVfUkVHSU9OX0NPTkZJR19GSUxFX09QVElPTlMsIC4uLmxvYWRlckNvbmZpZyB9KSxcbiAgICAgICAgcmVxdWVzdEhhbmRsZXI6IG5vZGVfaHR0cF9oYW5kbGVyXzEuTm9kZUh0dHBIYW5kbGVyLmNyZWF0ZShjb25maWc/LnJlcXVlc3RIYW5kbGVyID8/IGRlZmF1bHRDb25maWdQcm92aWRlciksXG4gICAgICAgIHJldHJ5TW9kZTogY29uZmlnPy5yZXRyeU1vZGUgPz9cbiAgICAgICAgICAgICgwLCBub2RlX2NvbmZpZ19wcm92aWRlcl8xLmxvYWRDb25maWcpKHtcbiAgICAgICAgICAgICAgICAuLi5taWRkbGV3YXJlX3JldHJ5XzEuTk9ERV9SRVRSWV9NT0RFX0NPTkZJR19PUFRJT05TLFxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IGFzeW5jICgpID0+IChhd2FpdCBkZWZhdWx0Q29uZmlnUHJvdmlkZXIoKSkucmV0cnlNb2RlIHx8IHV0aWxfcmV0cnlfMS5ERUZBVUxUX1JFVFJZX01PREUsXG4gICAgICAgICAgICB9LCBjb25maWcpLFxuICAgICAgICBzaGEyNTY6IGNvbmZpZz8uc2hhMjU2ID8/IGhhc2hfbm9kZV8xLkhhc2guYmluZChudWxsLCBcInNoYTI1NlwiKSxcbiAgICAgICAgc3RyZWFtQ29sbGVjdG9yOiBjb25maWc/LnN0cmVhbUNvbGxlY3RvciA/PyBub2RlX2h0dHBfaGFuZGxlcl8xLnN0cmVhbUNvbGxlY3RvcixcbiAgICAgICAgdXNlRHVhbHN0YWNrRW5kcG9pbnQ6IGNvbmZpZz8udXNlRHVhbHN0YWNrRW5kcG9pbnQgPz8gKDAsIG5vZGVfY29uZmlnX3Byb3ZpZGVyXzEubG9hZENvbmZpZykoY29uZmlnX3Jlc29sdmVyXzEuTk9ERV9VU0VfRFVBTFNUQUNLX0VORFBPSU5UX0NPTkZJR19PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgICAgICB1c2VGaXBzRW5kcG9pbnQ6IGNvbmZpZz8udXNlRmlwc0VuZHBvaW50ID8/ICgwLCBub2RlX2NvbmZpZ19wcm92aWRlcl8xLmxvYWRDb25maWcpKGNvbmZpZ19yZXNvbHZlcl8xLk5PREVfVVNFX0ZJUFNfRU5EUE9JTlRfQ09ORklHX09QVElPTlMsIGxvYWRlckNvbmZpZyksXG4gICAgICAgIHVzZXJBZ2VudEFwcElkOiBjb25maWc/LnVzZXJBZ2VudEFwcElkID8/ICgwLCBub2RlX2NvbmZpZ19wcm92aWRlcl8xLmxvYWRDb25maWcpKHV0aWxfdXNlcl9hZ2VudF9ub2RlXzEuTk9ERV9BUFBfSURfQ09ORklHX09QVElPTlMsIGxvYWRlckNvbmZpZyksXG4gICAgfTtcbn07XG5leHBvcnRzLmdldFJ1bnRpbWVDb25maWcgPSBnZXRSdW50aW1lQ29uZmlnO1xuIiwgIid1c2Ugc3RyaWN0JztcblxudmFyIG1pZGRsZXdhcmVIb3N0SGVhZGVyID0gcmVxdWlyZSgnQGF3cy1zZGsvbWlkZGxld2FyZS1ob3N0LWhlYWRlcicpO1xudmFyIG1pZGRsZXdhcmVMb2dnZXIgPSByZXF1aXJlKCdAYXdzLXNkay9taWRkbGV3YXJlLWxvZ2dlcicpO1xudmFyIG1pZGRsZXdhcmVSZWN1cnNpb25EZXRlY3Rpb24gPSByZXF1aXJlKCdAYXdzLXNkay9taWRkbGV3YXJlLXJlY3Vyc2lvbi1kZXRlY3Rpb24nKTtcbnZhciBtaWRkbGV3YXJlVXNlckFnZW50ID0gcmVxdWlyZSgnQGF3cy1zZGsvbWlkZGxld2FyZS11c2VyLWFnZW50Jyk7XG52YXIgY29uZmlnUmVzb2x2ZXIgPSByZXF1aXJlKCdAc21pdGh5L2NvbmZpZy1yZXNvbHZlcicpO1xudmFyIGNvcmUgPSByZXF1aXJlKCdAc21pdGh5L2NvcmUnKTtcbnZhciBzY2hlbWEgPSByZXF1aXJlKCdAc21pdGh5L2NvcmUvc2NoZW1hJyk7XG52YXIgbWlkZGxld2FyZUNvbnRlbnRMZW5ndGggPSByZXF1aXJlKCdAc21pdGh5L21pZGRsZXdhcmUtY29udGVudC1sZW5ndGgnKTtcbnZhciBtaWRkbGV3YXJlRW5kcG9pbnQgPSByZXF1aXJlKCdAc21pdGh5L21pZGRsZXdhcmUtZW5kcG9pbnQnKTtcbnZhciBtaWRkbGV3YXJlUmV0cnkgPSByZXF1aXJlKCdAc21pdGh5L21pZGRsZXdhcmUtcmV0cnknKTtcbnZhciBzbWl0aHlDbGllbnQgPSByZXF1aXJlKCdAc21pdGh5L3NtaXRoeS1jbGllbnQnKTtcbnZhciBodHRwQXV0aFNjaGVtZVByb3ZpZGVyID0gcmVxdWlyZSgnLi9hdXRoL2h0dHBBdXRoU2NoZW1lUHJvdmlkZXInKTtcbnZhciBydW50aW1lQ29uZmlnID0gcmVxdWlyZSgnLi9ydW50aW1lQ29uZmlnJyk7XG52YXIgcmVnaW9uQ29uZmlnUmVzb2x2ZXIgPSByZXF1aXJlKCdAYXdzLXNkay9yZWdpb24tY29uZmlnLXJlc29sdmVyJyk7XG52YXIgcHJvdG9jb2xIdHRwID0gcmVxdWlyZSgnQHNtaXRoeS9wcm90b2NvbC1odHRwJyk7XG52YXIgc2NoZW1hc18wID0gcmVxdWlyZSgnLi9zY2hlbWFzL3NjaGVtYXNfMCcpO1xudmFyIGVycm9ycyA9IHJlcXVpcmUoJy4vbW9kZWxzL2Vycm9ycycpO1xudmFyIFNTT1NlcnZpY2VFeGNlcHRpb24gPSByZXF1aXJlKCcuL21vZGVscy9TU09TZXJ2aWNlRXhjZXB0aW9uJyk7XG5cbmNvbnN0IHJlc29sdmVDbGllbnRFbmRwb2ludFBhcmFtZXRlcnMgPSAob3B0aW9ucykgPT4ge1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKG9wdGlvbnMsIHtcbiAgICAgICAgdXNlRHVhbHN0YWNrRW5kcG9pbnQ6IG9wdGlvbnMudXNlRHVhbHN0YWNrRW5kcG9pbnQgPz8gZmFsc2UsXG4gICAgICAgIHVzZUZpcHNFbmRwb2ludDogb3B0aW9ucy51c2VGaXBzRW5kcG9pbnQgPz8gZmFsc2UsXG4gICAgICAgIGRlZmF1bHRTaWduaW5nTmFtZTogXCJhd3Nzc29wb3J0YWxcIixcbiAgICB9KTtcbn07XG5jb25zdCBjb21tb25QYXJhbXMgPSB7XG4gICAgVXNlRklQUzogeyB0eXBlOiBcImJ1aWx0SW5QYXJhbXNcIiwgbmFtZTogXCJ1c2VGaXBzRW5kcG9pbnRcIiB9LFxuICAgIEVuZHBvaW50OiB7IHR5cGU6IFwiYnVpbHRJblBhcmFtc1wiLCBuYW1lOiBcImVuZHBvaW50XCIgfSxcbiAgICBSZWdpb246IHsgdHlwZTogXCJidWlsdEluUGFyYW1zXCIsIG5hbWU6IFwicmVnaW9uXCIgfSxcbiAgICBVc2VEdWFsU3RhY2s6IHsgdHlwZTogXCJidWlsdEluUGFyYW1zXCIsIG5hbWU6IFwidXNlRHVhbHN0YWNrRW5kcG9pbnRcIiB9LFxufTtcblxuY29uc3QgZ2V0SHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uID0gKHJ1bnRpbWVDb25maWcpID0+IHtcbiAgICBjb25zdCBfaHR0cEF1dGhTY2hlbWVzID0gcnVudGltZUNvbmZpZy5odHRwQXV0aFNjaGVtZXM7XG4gICAgbGV0IF9odHRwQXV0aFNjaGVtZVByb3ZpZGVyID0gcnVudGltZUNvbmZpZy5odHRwQXV0aFNjaGVtZVByb3ZpZGVyO1xuICAgIGxldCBfY3JlZGVudGlhbHMgPSBydW50aW1lQ29uZmlnLmNyZWRlbnRpYWxzO1xuICAgIHJldHVybiB7XG4gICAgICAgIHNldEh0dHBBdXRoU2NoZW1lKGh0dHBBdXRoU2NoZW1lKSB7XG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IF9odHRwQXV0aFNjaGVtZXMuZmluZEluZGV4KChzY2hlbWUpID0+IHNjaGVtZS5zY2hlbWVJZCA9PT0gaHR0cEF1dGhTY2hlbWUuc2NoZW1lSWQpO1xuICAgICAgICAgICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgICAgICAgICAgIF9odHRwQXV0aFNjaGVtZXMucHVzaChodHRwQXV0aFNjaGVtZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBfaHR0cEF1dGhTY2hlbWVzLnNwbGljZShpbmRleCwgMSwgaHR0cEF1dGhTY2hlbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBodHRwQXV0aFNjaGVtZXMoKSB7XG4gICAgICAgICAgICByZXR1cm4gX2h0dHBBdXRoU2NoZW1lcztcbiAgICAgICAgfSxcbiAgICAgICAgc2V0SHR0cEF1dGhTY2hlbWVQcm92aWRlcihodHRwQXV0aFNjaGVtZVByb3ZpZGVyKSB7XG4gICAgICAgICAgICBfaHR0cEF1dGhTY2hlbWVQcm92aWRlciA9IGh0dHBBdXRoU2NoZW1lUHJvdmlkZXI7XG4gICAgICAgIH0sXG4gICAgICAgIGh0dHBBdXRoU2NoZW1lUHJvdmlkZXIoKSB7XG4gICAgICAgICAgICByZXR1cm4gX2h0dHBBdXRoU2NoZW1lUHJvdmlkZXI7XG4gICAgICAgIH0sXG4gICAgICAgIHNldENyZWRlbnRpYWxzKGNyZWRlbnRpYWxzKSB7XG4gICAgICAgICAgICBfY3JlZGVudGlhbHMgPSBjcmVkZW50aWFscztcbiAgICAgICAgfSxcbiAgICAgICAgY3JlZGVudGlhbHMoKSB7XG4gICAgICAgICAgICByZXR1cm4gX2NyZWRlbnRpYWxzO1xuICAgICAgICB9LFxuICAgIH07XG59O1xuY29uc3QgcmVzb2x2ZUh0dHBBdXRoUnVudGltZUNvbmZpZyA9IChjb25maWcpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgICBodHRwQXV0aFNjaGVtZXM6IGNvbmZpZy5odHRwQXV0aFNjaGVtZXMoKSxcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVQcm92aWRlcjogY29uZmlnLmh0dHBBdXRoU2NoZW1lUHJvdmlkZXIoKSxcbiAgICAgICAgY3JlZGVudGlhbHM6IGNvbmZpZy5jcmVkZW50aWFscygpLFxuICAgIH07XG59O1xuXG5jb25zdCByZXNvbHZlUnVudGltZUV4dGVuc2lvbnMgPSAocnVudGltZUNvbmZpZywgZXh0ZW5zaW9ucykgPT4ge1xuICAgIGNvbnN0IGV4dGVuc2lvbkNvbmZpZ3VyYXRpb24gPSBPYmplY3QuYXNzaWduKHJlZ2lvbkNvbmZpZ1Jlc29sdmVyLmdldEF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24ocnVudGltZUNvbmZpZyksIHNtaXRoeUNsaWVudC5nZXREZWZhdWx0RXh0ZW5zaW9uQ29uZmlndXJhdGlvbihydW50aW1lQ29uZmlnKSwgcHJvdG9jb2xIdHRwLmdldEh0dHBIYW5kbGVyRXh0ZW5zaW9uQ29uZmlndXJhdGlvbihydW50aW1lQ29uZmlnKSwgZ2V0SHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uKHJ1bnRpbWVDb25maWcpKTtcbiAgICBleHRlbnNpb25zLmZvckVhY2goKGV4dGVuc2lvbikgPT4gZXh0ZW5zaW9uLmNvbmZpZ3VyZShleHRlbnNpb25Db25maWd1cmF0aW9uKSk7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24ocnVudGltZUNvbmZpZywgcmVnaW9uQ29uZmlnUmVzb2x2ZXIucmVzb2x2ZUF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24oZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiksIHNtaXRoeUNsaWVudC5yZXNvbHZlRGVmYXVsdFJ1bnRpbWVDb25maWcoZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiksIHByb3RvY29sSHR0cC5yZXNvbHZlSHR0cEhhbmRsZXJSdW50aW1lQ29uZmlnKGV4dGVuc2lvbkNvbmZpZ3VyYXRpb24pLCByZXNvbHZlSHR0cEF1dGhSdW50aW1lQ29uZmlnKGV4dGVuc2lvbkNvbmZpZ3VyYXRpb24pKTtcbn07XG5cbmNsYXNzIFNTT0NsaWVudCBleHRlbmRzIHNtaXRoeUNsaWVudC5DbGllbnQge1xuICAgIGNvbmZpZztcbiAgICBjb25zdHJ1Y3RvciguLi5bY29uZmlndXJhdGlvbl0pIHtcbiAgICAgICAgY29uc3QgX2NvbmZpZ18wID0gcnVudGltZUNvbmZpZy5nZXRSdW50aW1lQ29uZmlnKGNvbmZpZ3VyYXRpb24gfHwge30pO1xuICAgICAgICBzdXBlcihfY29uZmlnXzApO1xuICAgICAgICB0aGlzLmluaXRDb25maWcgPSBfY29uZmlnXzA7XG4gICAgICAgIGNvbnN0IF9jb25maWdfMSA9IHJlc29sdmVDbGllbnRFbmRwb2ludFBhcmFtZXRlcnMoX2NvbmZpZ18wKTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ18yID0gbWlkZGxld2FyZVVzZXJBZ2VudC5yZXNvbHZlVXNlckFnZW50Q29uZmlnKF9jb25maWdfMSk7XG4gICAgICAgIGNvbnN0IF9jb25maWdfMyA9IG1pZGRsZXdhcmVSZXRyeS5yZXNvbHZlUmV0cnlDb25maWcoX2NvbmZpZ18yKTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ180ID0gY29uZmlnUmVzb2x2ZXIucmVzb2x2ZVJlZ2lvbkNvbmZpZyhfY29uZmlnXzMpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzUgPSBtaWRkbGV3YXJlSG9zdEhlYWRlci5yZXNvbHZlSG9zdEhlYWRlckNvbmZpZyhfY29uZmlnXzQpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzYgPSBtaWRkbGV3YXJlRW5kcG9pbnQucmVzb2x2ZUVuZHBvaW50Q29uZmlnKF9jb25maWdfNSk7XG4gICAgICAgIGNvbnN0IF9jb25maWdfNyA9IGh0dHBBdXRoU2NoZW1lUHJvdmlkZXIucmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnKF9jb25maWdfNik7XG4gICAgICAgIGNvbnN0IF9jb25maWdfOCA9IHJlc29sdmVSdW50aW1lRXh0ZW5zaW9ucyhfY29uZmlnXzcsIGNvbmZpZ3VyYXRpb24/LmV4dGVuc2lvbnMgfHwgW10pO1xuICAgICAgICB0aGlzLmNvbmZpZyA9IF9jb25maWdfODtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKHNjaGVtYS5nZXRTY2hlbWFTZXJkZVBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UobWlkZGxld2FyZVVzZXJBZ2VudC5nZXRVc2VyQWdlbnRQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKG1pZGRsZXdhcmVSZXRyeS5nZXRSZXRyeVBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UobWlkZGxld2FyZUNvbnRlbnRMZW5ndGguZ2V0Q29udGVudExlbmd0aFBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UobWlkZGxld2FyZUhvc3RIZWFkZXIuZ2V0SG9zdEhlYWRlclBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UobWlkZGxld2FyZUxvZ2dlci5nZXRMb2dnZXJQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKG1pZGRsZXdhcmVSZWN1cnNpb25EZXRlY3Rpb24uZ2V0UmVjdXJzaW9uRGV0ZWN0aW9uUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShjb3JlLmdldEh0dHBBdXRoU2NoZW1lRW5kcG9pbnRSdWxlU2V0UGx1Z2luKHRoaXMuY29uZmlnLCB7XG4gICAgICAgICAgICBodHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlcjogaHR0cEF1dGhTY2hlbWVQcm92aWRlci5kZWZhdWx0U1NPSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIsXG4gICAgICAgICAgICBpZGVudGl0eVByb3ZpZGVyQ29uZmlnUHJvdmlkZXI6IGFzeW5jIChjb25maWcpID0+IG5ldyBjb3JlLkRlZmF1bHRJZGVudGl0eVByb3ZpZGVyQ29uZmlnKHtcbiAgICAgICAgICAgICAgICBcImF3cy5hdXRoI3NpZ3Y0XCI6IGNvbmZpZy5jcmVkZW50aWFscyxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICB9KSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShjb3JlLmdldEh0dHBTaWduaW5nUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgfVxuICAgIGRlc3Ryb3koKSB7XG4gICAgICAgIHN1cGVyLmRlc3Ryb3koKTtcbiAgICB9XG59XG5cbmNsYXNzIEdldFJvbGVDcmVkZW50aWFsc0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIlNXQlBvcnRhbFNlcnZpY2VcIiwgXCJHZXRSb2xlQ3JlZGVudGlhbHNcIiwge30pXG4gICAgLm4oXCJTU09DbGllbnRcIiwgXCJHZXRSb2xlQ3JlZGVudGlhbHNDb21tYW5kXCIpXG4gICAgLnNjKHNjaGVtYXNfMC5HZXRSb2xlQ3JlZGVudGlhbHMkKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgTGlzdEFjY291bnRSb2xlc0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIlNXQlBvcnRhbFNlcnZpY2VcIiwgXCJMaXN0QWNjb3VudFJvbGVzXCIsIHt9KVxuICAgIC5uKFwiU1NPQ2xpZW50XCIsIFwiTGlzdEFjY291bnRSb2xlc0NvbW1hbmRcIilcbiAgICAuc2Moc2NoZW1hc18wLkxpc3RBY2NvdW50Um9sZXMkKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgTGlzdEFjY291bnRzQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiU1dCUG9ydGFsU2VydmljZVwiLCBcIkxpc3RBY2NvdW50c1wiLCB7fSlcbiAgICAubihcIlNTT0NsaWVudFwiLCBcIkxpc3RBY2NvdW50c0NvbW1hbmRcIilcbiAgICAuc2Moc2NoZW1hc18wLkxpc3RBY2NvdW50cyQpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBMb2dvdXRDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJTV0JQb3J0YWxTZXJ2aWNlXCIsIFwiTG9nb3V0XCIsIHt9KVxuICAgIC5uKFwiU1NPQ2xpZW50XCIsIFwiTG9nb3V0Q29tbWFuZFwiKVxuICAgIC5zYyhzY2hlbWFzXzAuTG9nb3V0JClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNvbnN0IHBhZ2luYXRlTGlzdEFjY291bnRSb2xlcyA9IGNvcmUuY3JlYXRlUGFnaW5hdG9yKFNTT0NsaWVudCwgTGlzdEFjY291bnRSb2xlc0NvbW1hbmQsIFwibmV4dFRva2VuXCIsIFwibmV4dFRva2VuXCIsIFwibWF4UmVzdWx0c1wiKTtcblxuY29uc3QgcGFnaW5hdGVMaXN0QWNjb3VudHMgPSBjb3JlLmNyZWF0ZVBhZ2luYXRvcihTU09DbGllbnQsIExpc3RBY2NvdW50c0NvbW1hbmQsIFwibmV4dFRva2VuXCIsIFwibmV4dFRva2VuXCIsIFwibWF4UmVzdWx0c1wiKTtcblxuY29uc3QgY29tbWFuZHMgPSB7XG4gICAgR2V0Um9sZUNyZWRlbnRpYWxzQ29tbWFuZCxcbiAgICBMaXN0QWNjb3VudFJvbGVzQ29tbWFuZCxcbiAgICBMaXN0QWNjb3VudHNDb21tYW5kLFxuICAgIExvZ291dENvbW1hbmQsXG59O1xuY29uc3QgcGFnaW5hdG9ycyA9IHtcbiAgICBwYWdpbmF0ZUxpc3RBY2NvdW50Um9sZXMsXG4gICAgcGFnaW5hdGVMaXN0QWNjb3VudHMsXG59O1xuY2xhc3MgU1NPIGV4dGVuZHMgU1NPQ2xpZW50IHtcbn1cbnNtaXRoeUNsaWVudC5jcmVhdGVBZ2dyZWdhdGVkQ2xpZW50KGNvbW1hbmRzLCBTU08sIHsgcGFnaW5hdG9ycyB9KTtcblxuZXhwb3J0cy4kQ29tbWFuZCA9IHNtaXRoeUNsaWVudC5Db21tYW5kO1xuZXhwb3J0cy5fX0NsaWVudCA9IHNtaXRoeUNsaWVudC5DbGllbnQ7XG5leHBvcnRzLlNTT1NlcnZpY2VFeGNlcHRpb24gPSBTU09TZXJ2aWNlRXhjZXB0aW9uLlNTT1NlcnZpY2VFeGNlcHRpb247XG5leHBvcnRzLkdldFJvbGVDcmVkZW50aWFsc0NvbW1hbmQgPSBHZXRSb2xlQ3JlZGVudGlhbHNDb21tYW5kO1xuZXhwb3J0cy5MaXN0QWNjb3VudFJvbGVzQ29tbWFuZCA9IExpc3RBY2NvdW50Um9sZXNDb21tYW5kO1xuZXhwb3J0cy5MaXN0QWNjb3VudHNDb21tYW5kID0gTGlzdEFjY291bnRzQ29tbWFuZDtcbmV4cG9ydHMuTG9nb3V0Q29tbWFuZCA9IExvZ291dENvbW1hbmQ7XG5leHBvcnRzLlNTTyA9IFNTTztcbmV4cG9ydHMuU1NPQ2xpZW50ID0gU1NPQ2xpZW50O1xuZXhwb3J0cy5wYWdpbmF0ZUxpc3RBY2NvdW50Um9sZXMgPSBwYWdpbmF0ZUxpc3RBY2NvdW50Um9sZXM7XG5leHBvcnRzLnBhZ2luYXRlTGlzdEFjY291bnRzID0gcGFnaW5hdGVMaXN0QWNjb3VudHM7XG5PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc2NoZW1hc18wLCAnX19wcm90b19fJykgJiZcbiAgICAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGV4cG9ydHMsICdfX3Byb3RvX18nKSAmJlxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19wcm90b19fJywge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICB2YWx1ZTogc2NoZW1hc18wWydfX3Byb3RvX18nXVxuICAgIH0pO1xuXG5PYmplY3Qua2V5cyhzY2hlbWFzXzApLmZvckVhY2goZnVuY3Rpb24gKGspIHtcbiAgICBpZiAoayAhPT0gJ2RlZmF1bHQnICYmICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXhwb3J0cywgaykpIGV4cG9ydHNba10gPSBzY2hlbWFzXzBba107XG59KTtcbk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlcnJvcnMsICdfX3Byb3RvX18nKSAmJlxuICAgICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXhwb3J0cywgJ19fcHJvdG9fXycpICYmXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX3Byb3RvX18nLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIHZhbHVlOiBlcnJvcnNbJ19fcHJvdG9fXyddXG4gICAgfSk7XG5cbk9iamVjdC5rZXlzKGVycm9ycykuZm9yRWFjaChmdW5jdGlvbiAoaykge1xuICAgIGlmIChrICE9PSAnZGVmYXVsdCcgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChleHBvcnRzLCBrKSkgZXhwb3J0c1trXSA9IGVycm9yc1trXTtcbn0pO1xuIiwgIid1c2Ugc3RyaWN0JztcblxudmFyIGNsaWVudFNzbyA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL2NsaWVudC1zc28nKTtcblxuXG5cbmV4cG9ydHMuR2V0Um9sZUNyZWRlbnRpYWxzQ29tbWFuZCA9IGNsaWVudFNzby5HZXRSb2xlQ3JlZGVudGlhbHNDb21tYW5kO1xuZXhwb3J0cy5TU09DbGllbnQgPSBjbGllbnRTc28uU1NPQ2xpZW50O1xuIiwgIid1c2Ugc3RyaWN0JztcblxudmFyIHByb3BlcnR5UHJvdmlkZXIgPSByZXF1aXJlKCdAc21pdGh5L3Byb3BlcnR5LXByb3ZpZGVyJyk7XG52YXIgc2hhcmVkSW5pRmlsZUxvYWRlciA9IHJlcXVpcmUoJ0BzbWl0aHkvc2hhcmVkLWluaS1maWxlLWxvYWRlcicpO1xudmFyIGNsaWVudCA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL2NvcmUvY2xpZW50Jyk7XG52YXIgdG9rZW5Qcm92aWRlcnMgPSByZXF1aXJlKCdAYXdzLXNkay90b2tlbi1wcm92aWRlcnMnKTtcblxuY29uc3QgaXNTc29Qcm9maWxlID0gKGFyZykgPT4gYXJnICYmXG4gICAgKHR5cGVvZiBhcmcuc3NvX3N0YXJ0X3VybCA9PT0gXCJzdHJpbmdcIiB8fFxuICAgICAgICB0eXBlb2YgYXJnLnNzb19hY2NvdW50X2lkID09PSBcInN0cmluZ1wiIHx8XG4gICAgICAgIHR5cGVvZiBhcmcuc3NvX3Nlc3Npb24gPT09IFwic3RyaW5nXCIgfHxcbiAgICAgICAgdHlwZW9mIGFyZy5zc29fcmVnaW9uID09PSBcInN0cmluZ1wiIHx8XG4gICAgICAgIHR5cGVvZiBhcmcuc3NvX3JvbGVfbmFtZSA9PT0gXCJzdHJpbmdcIik7XG5cbmNvbnN0IFNIT1VMRF9GQUlMX0NSRURFTlRJQUxfQ0hBSU4gPSBmYWxzZTtcbmNvbnN0IHJlc29sdmVTU09DcmVkZW50aWFscyA9IGFzeW5jICh7IHNzb1N0YXJ0VXJsLCBzc29TZXNzaW9uLCBzc29BY2NvdW50SWQsIHNzb1JlZ2lvbiwgc3NvUm9sZU5hbWUsIHNzb0NsaWVudCwgY2xpZW50Q29uZmlnLCBwYXJlbnRDbGllbnRDb25maWcsIGNhbGxlckNsaWVudENvbmZpZywgcHJvZmlsZSwgZmlsZXBhdGgsIGNvbmZpZ0ZpbGVwYXRoLCBpZ25vcmVDYWNoZSwgbG9nZ2VyLCB9KSA9PiB7XG4gICAgbGV0IHRva2VuO1xuICAgIGNvbnN0IHJlZnJlc2hNZXNzYWdlID0gYFRvIHJlZnJlc2ggdGhpcyBTU08gc2Vzc2lvbiBydW4gYXdzIHNzbyBsb2dpbiB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIHByb2ZpbGUuYDtcbiAgICBpZiAoc3NvU2Vzc2lvbikge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgX3Rva2VuID0gYXdhaXQgdG9rZW5Qcm92aWRlcnMuZnJvbVNzbyh7XG4gICAgICAgICAgICAgICAgcHJvZmlsZSxcbiAgICAgICAgICAgICAgICBmaWxlcGF0aCxcbiAgICAgICAgICAgICAgICBjb25maWdGaWxlcGF0aCxcbiAgICAgICAgICAgICAgICBpZ25vcmVDYWNoZSxcbiAgICAgICAgICAgIH0pKCk7XG4gICAgICAgICAgICB0b2tlbiA9IHtcbiAgICAgICAgICAgICAgICBhY2Nlc3NUb2tlbjogX3Rva2VuLnRva2VuLFxuICAgICAgICAgICAgICAgIGV4cGlyZXNBdDogbmV3IERhdGUoX3Rva2VuLmV4cGlyYXRpb24pLnRvSVNPU3RyaW5nKCksXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoZS5tZXNzYWdlLCB7XG4gICAgICAgICAgICAgICAgdHJ5TmV4dExpbms6IFNIT1VMRF9GQUlMX0NSRURFTlRJQUxfQ0hBSU4sXG4gICAgICAgICAgICAgICAgbG9nZ2VyLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB0b2tlbiA9IGF3YWl0IHNoYXJlZEluaUZpbGVMb2FkZXIuZ2V0U1NPVG9rZW5Gcm9tRmlsZShzc29TdGFydFVybCk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLkNyZWRlbnRpYWxzUHJvdmlkZXJFcnJvcihgVGhlIFNTTyBzZXNzaW9uIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHByb2ZpbGUgaXMgaW52YWxpZC4gJHtyZWZyZXNoTWVzc2FnZX1gLCB7XG4gICAgICAgICAgICAgICAgdHJ5TmV4dExpbms6IFNIT1VMRF9GQUlMX0NSRURFTlRJQUxfQ0hBSU4sXG4gICAgICAgICAgICAgICAgbG9nZ2VyLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKG5ldyBEYXRlKHRva2VuLmV4cGlyZXNBdCkuZ2V0VGltZSgpIC0gRGF0ZS5ub3coKSA8PSAwKSB7XG4gICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLkNyZWRlbnRpYWxzUHJvdmlkZXJFcnJvcihgVGhlIFNTTyBzZXNzaW9uIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHByb2ZpbGUgaGFzIGV4cGlyZWQuICR7cmVmcmVzaE1lc3NhZ2V9YCwge1xuICAgICAgICAgICAgdHJ5TmV4dExpbms6IFNIT1VMRF9GQUlMX0NSRURFTlRJQUxfQ0hBSU4sXG4gICAgICAgICAgICBsb2dnZXIsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCB7IGFjY2Vzc1Rva2VuIH0gPSB0b2tlbjtcbiAgICBjb25zdCB7IFNTT0NsaWVudCwgR2V0Um9sZUNyZWRlbnRpYWxzQ29tbWFuZCB9ID0gYXdhaXQgUHJvbWlzZS5yZXNvbHZlKCkudGhlbihmdW5jdGlvbiAoKSB7IHJldHVybiByZXF1aXJlKCcuL2xvYWRTc28tQnc3VlN2bE8uanMnKTsgfSk7XG4gICAgY29uc3Qgc3NvID0gc3NvQ2xpZW50IHx8XG4gICAgICAgIG5ldyBTU09DbGllbnQoT2JqZWN0LmFzc2lnbih7fSwgY2xpZW50Q29uZmlnID8/IHt9LCB7XG4gICAgICAgICAgICBsb2dnZXI6IGNsaWVudENvbmZpZz8ubG9nZ2VyID8/IGNhbGxlckNsaWVudENvbmZpZz8ubG9nZ2VyID8/IHBhcmVudENsaWVudENvbmZpZz8ubG9nZ2VyLFxuICAgICAgICAgICAgcmVnaW9uOiBjbGllbnRDb25maWc/LnJlZ2lvbiA/PyBzc29SZWdpb24sXG4gICAgICAgICAgICB1c2VyQWdlbnRBcHBJZDogY2xpZW50Q29uZmlnPy51c2VyQWdlbnRBcHBJZCA/PyBjYWxsZXJDbGllbnRDb25maWc/LnVzZXJBZ2VudEFwcElkID8/IHBhcmVudENsaWVudENvbmZpZz8udXNlckFnZW50QXBwSWQsXG4gICAgICAgIH0pKTtcbiAgICBsZXQgc3NvUmVzcDtcbiAgICB0cnkge1xuICAgICAgICBzc29SZXNwID0gYXdhaXQgc3NvLnNlbmQobmV3IEdldFJvbGVDcmVkZW50aWFsc0NvbW1hbmQoe1xuICAgICAgICAgICAgYWNjb3VudElkOiBzc29BY2NvdW50SWQsXG4gICAgICAgICAgICByb2xlTmFtZTogc3NvUm9sZU5hbWUsXG4gICAgICAgICAgICBhY2Nlc3NUb2tlbixcbiAgICAgICAgfSkpO1xuICAgIH1cbiAgICBjYXRjaCAoZSkge1xuICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoZSwge1xuICAgICAgICAgICAgdHJ5TmV4dExpbms6IFNIT1VMRF9GQUlMX0NSRURFTlRJQUxfQ0hBSU4sXG4gICAgICAgICAgICBsb2dnZXIsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCB7IHJvbGVDcmVkZW50aWFsczogeyBhY2Nlc3NLZXlJZCwgc2VjcmV0QWNjZXNzS2V5LCBzZXNzaW9uVG9rZW4sIGV4cGlyYXRpb24sIGNyZWRlbnRpYWxTY29wZSwgYWNjb3VudElkIH0gPSB7fSwgfSA9IHNzb1Jlc3A7XG4gICAgaWYgKCFhY2Nlc3NLZXlJZCB8fCAhc2VjcmV0QWNjZXNzS2V5IHx8ICFzZXNzaW9uVG9rZW4gfHwgIWV4cGlyYXRpb24pIHtcbiAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKFwiU1NPIHJldHVybnMgYW4gaW52YWxpZCB0ZW1wb3JhcnkgY3JlZGVudGlhbC5cIiwge1xuICAgICAgICAgICAgdHJ5TmV4dExpbms6IFNIT1VMRF9GQUlMX0NSRURFTlRJQUxfQ0hBSU4sXG4gICAgICAgICAgICBsb2dnZXIsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCBjcmVkZW50aWFscyA9IHtcbiAgICAgICAgYWNjZXNzS2V5SWQsXG4gICAgICAgIHNlY3JldEFjY2Vzc0tleSxcbiAgICAgICAgc2Vzc2lvblRva2VuLFxuICAgICAgICBleHBpcmF0aW9uOiBuZXcgRGF0ZShleHBpcmF0aW9uKSxcbiAgICAgICAgLi4uKGNyZWRlbnRpYWxTY29wZSAmJiB7IGNyZWRlbnRpYWxTY29wZSB9KSxcbiAgICAgICAgLi4uKGFjY291bnRJZCAmJiB7IGFjY291bnRJZCB9KSxcbiAgICB9O1xuICAgIGlmIChzc29TZXNzaW9uKSB7XG4gICAgICAgIGNsaWVudC5zZXRDcmVkZW50aWFsRmVhdHVyZShjcmVkZW50aWFscywgXCJDUkVERU5USUFMU19TU09cIiwgXCJzXCIpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgY2xpZW50LnNldENyZWRlbnRpYWxGZWF0dXJlKGNyZWRlbnRpYWxzLCBcIkNSRURFTlRJQUxTX1NTT19MRUdBQ1lcIiwgXCJ1XCIpO1xuICAgIH1cbiAgICByZXR1cm4gY3JlZGVudGlhbHM7XG59O1xuXG5jb25zdCB2YWxpZGF0ZVNzb1Byb2ZpbGUgPSAocHJvZmlsZSwgbG9nZ2VyKSA9PiB7XG4gICAgY29uc3QgeyBzc29fc3RhcnRfdXJsLCBzc29fYWNjb3VudF9pZCwgc3NvX3JlZ2lvbiwgc3NvX3JvbGVfbmFtZSB9ID0gcHJvZmlsZTtcbiAgICBpZiAoIXNzb19zdGFydF91cmwgfHwgIXNzb19hY2NvdW50X2lkIHx8ICFzc29fcmVnaW9uIHx8ICFzc29fcm9sZV9uYW1lKSB7XG4gICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLkNyZWRlbnRpYWxzUHJvdmlkZXJFcnJvcihgUHJvZmlsZSBpcyBjb25maWd1cmVkIHdpdGggaW52YWxpZCBTU08gY3JlZGVudGlhbHMuIFJlcXVpcmVkIHBhcmFtZXRlcnMgXCJzc29fYWNjb3VudF9pZFwiLCBgICtcbiAgICAgICAgICAgIGBcInNzb19yZWdpb25cIiwgXCJzc29fcm9sZV9uYW1lXCIsIFwic3NvX3N0YXJ0X3VybFwiLiBHb3QgJHtPYmplY3Qua2V5cyhwcm9maWxlKS5qb2luKFwiLCBcIil9XFxuUmVmZXJlbmNlOiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2xpL2xhdGVzdC91c2VyZ3VpZGUvY2xpLWNvbmZpZ3VyZS1zc28uaHRtbGAsIHsgdHJ5TmV4dExpbms6IGZhbHNlLCBsb2dnZXIgfSk7XG4gICAgfVxuICAgIHJldHVybiBwcm9maWxlO1xufTtcblxuY29uc3QgZnJvbVNTTyA9IChpbml0ID0ge30pID0+IGFzeW5jICh7IGNhbGxlckNsaWVudENvbmZpZyB9ID0ge30pID0+IHtcbiAgICBpbml0LmxvZ2dlcj8uZGVidWcoXCJAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLXNzbyAtIGZyb21TU09cIik7XG4gICAgY29uc3QgeyBzc29TdGFydFVybCwgc3NvQWNjb3VudElkLCBzc29SZWdpb24sIHNzb1JvbGVOYW1lLCBzc29TZXNzaW9uIH0gPSBpbml0O1xuICAgIGNvbnN0IHsgc3NvQ2xpZW50IH0gPSBpbml0O1xuICAgIGNvbnN0IHByb2ZpbGVOYW1lID0gc2hhcmVkSW5pRmlsZUxvYWRlci5nZXRQcm9maWxlTmFtZSh7XG4gICAgICAgIHByb2ZpbGU6IGluaXQucHJvZmlsZSA/PyBjYWxsZXJDbGllbnRDb25maWc/LnByb2ZpbGUsXG4gICAgfSk7XG4gICAgaWYgKCFzc29TdGFydFVybCAmJiAhc3NvQWNjb3VudElkICYmICFzc29SZWdpb24gJiYgIXNzb1JvbGVOYW1lICYmICFzc29TZXNzaW9uKSB7XG4gICAgICAgIGNvbnN0IHByb2ZpbGVzID0gYXdhaXQgc2hhcmVkSW5pRmlsZUxvYWRlci5wYXJzZUtub3duRmlsZXMoaW5pdCk7XG4gICAgICAgIGNvbnN0IHByb2ZpbGUgPSBwcm9maWxlc1twcm9maWxlTmFtZV07XG4gICAgICAgIGlmICghcHJvZmlsZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKGBQcm9maWxlICR7cHJvZmlsZU5hbWV9IHdhcyBub3QgZm91bmQuYCwgeyBsb2dnZXI6IGluaXQubG9nZ2VyIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmICghaXNTc29Qcm9maWxlKHByb2ZpbGUpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoYFByb2ZpbGUgJHtwcm9maWxlTmFtZX0gaXMgbm90IGNvbmZpZ3VyZWQgd2l0aCBTU08gY3JlZGVudGlhbHMuYCwge1xuICAgICAgICAgICAgICAgIGxvZ2dlcjogaW5pdC5sb2dnZXIsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocHJvZmlsZT8uc3NvX3Nlc3Npb24pIHtcbiAgICAgICAgICAgIGNvbnN0IHNzb1Nlc3Npb25zID0gYXdhaXQgc2hhcmVkSW5pRmlsZUxvYWRlci5sb2FkU3NvU2Vzc2lvbkRhdGEoaW5pdCk7XG4gICAgICAgICAgICBjb25zdCBzZXNzaW9uID0gc3NvU2Vzc2lvbnNbcHJvZmlsZS5zc29fc2Vzc2lvbl07XG4gICAgICAgICAgICBjb25zdCBjb25mbGljdE1zZyA9IGAgY29uZmlndXJhdGlvbnMgaW4gcHJvZmlsZSAke3Byb2ZpbGVOYW1lfSBhbmQgc3NvLXNlc3Npb24gJHtwcm9maWxlLnNzb19zZXNzaW9ufWA7XG4gICAgICAgICAgICBpZiAoc3NvUmVnaW9uICYmIHNzb1JlZ2lvbiAhPT0gc2Vzc2lvbi5zc29fcmVnaW9uKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKGBDb25mbGljdGluZyBTU08gcmVnaW9uYCArIGNvbmZsaWN0TXNnLCB7XG4gICAgICAgICAgICAgICAgICAgIHRyeU5leHRMaW5rOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgbG9nZ2VyOiBpbml0LmxvZ2dlcixcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzc29TdGFydFVybCAmJiBzc29TdGFydFVybCAhPT0gc2Vzc2lvbi5zc29fc3RhcnRfdXJsKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKGBDb25mbGljdGluZyBTU08gc3RhcnRfdXJsYCArIGNvbmZsaWN0TXNnLCB7XG4gICAgICAgICAgICAgICAgICAgIHRyeU5leHRMaW5rOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgbG9nZ2VyOiBpbml0LmxvZ2dlcixcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHByb2ZpbGUuc3NvX3JlZ2lvbiA9IHNlc3Npb24uc3NvX3JlZ2lvbjtcbiAgICAgICAgICAgIHByb2ZpbGUuc3NvX3N0YXJ0X3VybCA9IHNlc3Npb24uc3NvX3N0YXJ0X3VybDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB7IHNzb19zdGFydF91cmwsIHNzb19hY2NvdW50X2lkLCBzc29fcmVnaW9uLCBzc29fcm9sZV9uYW1lLCBzc29fc2Vzc2lvbiB9ID0gdmFsaWRhdGVTc29Qcm9maWxlKHByb2ZpbGUsIGluaXQubG9nZ2VyKTtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVTU09DcmVkZW50aWFscyh7XG4gICAgICAgICAgICBzc29TdGFydFVybDogc3NvX3N0YXJ0X3VybCxcbiAgICAgICAgICAgIHNzb1Nlc3Npb246IHNzb19zZXNzaW9uLFxuICAgICAgICAgICAgc3NvQWNjb3VudElkOiBzc29fYWNjb3VudF9pZCxcbiAgICAgICAgICAgIHNzb1JlZ2lvbjogc3NvX3JlZ2lvbixcbiAgICAgICAgICAgIHNzb1JvbGVOYW1lOiBzc29fcm9sZV9uYW1lLFxuICAgICAgICAgICAgc3NvQ2xpZW50OiBzc29DbGllbnQsXG4gICAgICAgICAgICBjbGllbnRDb25maWc6IGluaXQuY2xpZW50Q29uZmlnLFxuICAgICAgICAgICAgcGFyZW50Q2xpZW50Q29uZmlnOiBpbml0LnBhcmVudENsaWVudENvbmZpZyxcbiAgICAgICAgICAgIGNhbGxlckNsaWVudENvbmZpZzogaW5pdC5jYWxsZXJDbGllbnRDb25maWcsXG4gICAgICAgICAgICBwcm9maWxlOiBwcm9maWxlTmFtZSxcbiAgICAgICAgICAgIGZpbGVwYXRoOiBpbml0LmZpbGVwYXRoLFxuICAgICAgICAgICAgY29uZmlnRmlsZXBhdGg6IGluaXQuY29uZmlnRmlsZXBhdGgsXG4gICAgICAgICAgICBpZ25vcmVDYWNoZTogaW5pdC5pZ25vcmVDYWNoZSxcbiAgICAgICAgICAgIGxvZ2dlcjogaW5pdC5sb2dnZXIsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBlbHNlIGlmICghc3NvU3RhcnRVcmwgfHwgIXNzb0FjY291bnRJZCB8fCAhc3NvUmVnaW9uIHx8ICFzc29Sb2xlTmFtZSkge1xuICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoXCJJbmNvbXBsZXRlIGNvbmZpZ3VyYXRpb24uIFRoZSBmcm9tU1NPKCkgYXJndW1lbnQgaGFzaCBtdXN0IGluY2x1ZGUgXCIgK1xuICAgICAgICAgICAgJ1wic3NvU3RhcnRVcmxcIiwgXCJzc29BY2NvdW50SWRcIiwgXCJzc29SZWdpb25cIiwgXCJzc29Sb2xlTmFtZVwiJywgeyB0cnlOZXh0TGluazogZmFsc2UsIGxvZ2dlcjogaW5pdC5sb2dnZXIgfSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZVNTT0NyZWRlbnRpYWxzKHtcbiAgICAgICAgICAgIHNzb1N0YXJ0VXJsLFxuICAgICAgICAgICAgc3NvU2Vzc2lvbixcbiAgICAgICAgICAgIHNzb0FjY291bnRJZCxcbiAgICAgICAgICAgIHNzb1JlZ2lvbixcbiAgICAgICAgICAgIHNzb1JvbGVOYW1lLFxuICAgICAgICAgICAgc3NvQ2xpZW50LFxuICAgICAgICAgICAgY2xpZW50Q29uZmlnOiBpbml0LmNsaWVudENvbmZpZyxcbiAgICAgICAgICAgIHBhcmVudENsaWVudENvbmZpZzogaW5pdC5wYXJlbnRDbGllbnRDb25maWcsXG4gICAgICAgICAgICBjYWxsZXJDbGllbnRDb25maWc6IGluaXQuY2FsbGVyQ2xpZW50Q29uZmlnLFxuICAgICAgICAgICAgcHJvZmlsZTogcHJvZmlsZU5hbWUsXG4gICAgICAgICAgICBmaWxlcGF0aDogaW5pdC5maWxlcGF0aCxcbiAgICAgICAgICAgIGNvbmZpZ0ZpbGVwYXRoOiBpbml0LmNvbmZpZ0ZpbGVwYXRoLFxuICAgICAgICAgICAgaWdub3JlQ2FjaGU6IGluaXQuaWdub3JlQ2FjaGUsXG4gICAgICAgICAgICBsb2dnZXI6IGluaXQubG9nZ2VyLFxuICAgICAgICB9KTtcbiAgICB9XG59O1xuXG5leHBvcnRzLmZyb21TU08gPSBmcm9tU1NPO1xuZXhwb3J0cy5pc1Nzb1Byb2ZpbGUgPSBpc1Nzb1Byb2ZpbGU7XG5leHBvcnRzLnZhbGlkYXRlU3NvUHJvZmlsZSA9IHZhbGlkYXRlU3NvUHJvZmlsZTtcbiIsICJpbXBvcnQgeyByZXNvbHZlQXdzU2RrU2lnVjRDb25maWcgfSBmcm9tIFwiQGF3cy1zZGsvY29yZVwiO1xuaW1wb3J0IHsgZ2V0U21pdGh5Q29udGV4dCwgbm9ybWFsaXplUHJvdmlkZXIgfSBmcm9tIFwiQHNtaXRoeS91dGlsLW1pZGRsZXdhcmVcIjtcbmV4cG9ydCBjb25zdCBkZWZhdWx0U2lnbmluSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIgPSBhc3luYyAoY29uZmlnLCBjb250ZXh0LCBpbnB1dCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIG9wZXJhdGlvbjogZ2V0U21pdGh5Q29udGV4dChjb250ZXh0KS5vcGVyYXRpb24sXG4gICAgICAgIHJlZ2lvbjogKGF3YWl0IG5vcm1hbGl6ZVByb3ZpZGVyKGNvbmZpZy5yZWdpb24pKCkpIHx8XG4gICAgICAgICAgICAoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcImV4cGVjdGVkIGByZWdpb25gIHRvIGJlIGNvbmZpZ3VyZWQgZm9yIGBhd3MuYXV0aCNzaWd2NGBcIik7XG4gICAgICAgICAgICB9KSgpLFxuICAgIH07XG59O1xuZnVuY3Rpb24gY3JlYXRlQXdzQXV0aFNpZ3Y0SHR0cEF1dGhPcHRpb24oYXV0aFBhcmFtZXRlcnMpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBzY2hlbWVJZDogXCJhd3MuYXV0aCNzaWd2NFwiLFxuICAgICAgICBzaWduaW5nUHJvcGVydGllczoge1xuICAgICAgICAgICAgbmFtZTogXCJzaWduaW5cIixcbiAgICAgICAgICAgIHJlZ2lvbjogYXV0aFBhcmFtZXRlcnMucmVnaW9uLFxuICAgICAgICB9LFxuICAgICAgICBwcm9wZXJ0aWVzRXh0cmFjdG9yOiAoY29uZmlnLCBjb250ZXh0KSA9PiAoe1xuICAgICAgICAgICAgc2lnbmluZ1Byb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICBjb25maWcsXG4gICAgICAgICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pLFxuICAgIH07XG59XG5mdW5jdGlvbiBjcmVhdGVTbWl0aHlBcGlOb0F1dGhIdHRwQXV0aE9wdGlvbihhdXRoUGFyYW1ldGVycykge1xuICAgIHJldHVybiB7XG4gICAgICAgIHNjaGVtZUlkOiBcInNtaXRoeS5hcGkjbm9BdXRoXCIsXG4gICAgfTtcbn1cbmV4cG9ydCBjb25zdCBkZWZhdWx0U2lnbmluSHR0cEF1dGhTY2hlbWVQcm92aWRlciA9IChhdXRoUGFyYW1ldGVycykgPT4ge1xuICAgIGNvbnN0IG9wdGlvbnMgPSBbXTtcbiAgICBzd2l0Y2ggKGF1dGhQYXJhbWV0ZXJzLm9wZXJhdGlvbikge1xuICAgICAgICBjYXNlIFwiQ3JlYXRlT0F1dGgyVG9rZW5cIjoge1xuICAgICAgICAgICAgb3B0aW9ucy5wdXNoKGNyZWF0ZVNtaXRoeUFwaU5vQXV0aEh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICBvcHRpb25zLnB1c2goY3JlYXRlQXdzQXV0aFNpZ3Y0SHR0cEF1dGhPcHRpb24oYXV0aFBhcmFtZXRlcnMpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gb3B0aW9ucztcbn07XG5leHBvcnQgY29uc3QgcmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIGNvbnN0IGNvbmZpZ18wID0gcmVzb2x2ZUF3c1Nka1NpZ1Y0Q29uZmlnKGNvbmZpZyk7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oY29uZmlnXzAsIHtcbiAgICAgICAgYXV0aFNjaGVtZVByZWZlcmVuY2U6IG5vcm1hbGl6ZVByb3ZpZGVyKGNvbmZpZy5hdXRoU2NoZW1lUHJlZmVyZW5jZSA/PyBbXSksXG4gICAgfSk7XG59O1xuIiwgImV4cG9ydCBjb25zdCByZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzID0gKG9wdGlvbnMpID0+IHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihvcHRpb25zLCB7XG4gICAgICAgIHVzZUR1YWxzdGFja0VuZHBvaW50OiBvcHRpb25zLnVzZUR1YWxzdGFja0VuZHBvaW50ID8/IGZhbHNlLFxuICAgICAgICB1c2VGaXBzRW5kcG9pbnQ6IG9wdGlvbnMudXNlRmlwc0VuZHBvaW50ID8/IGZhbHNlLFxuICAgICAgICBkZWZhdWx0U2lnbmluZ05hbWU6IFwic2lnbmluXCIsXG4gICAgfSk7XG59O1xuZXhwb3J0IGNvbnN0IGNvbW1vblBhcmFtcyA9IHtcbiAgICBVc2VGSVBTOiB7IHR5cGU6IFwiYnVpbHRJblBhcmFtc1wiLCBuYW1lOiBcInVzZUZpcHNFbmRwb2ludFwiIH0sXG4gICAgRW5kcG9pbnQ6IHsgdHlwZTogXCJidWlsdEluUGFyYW1zXCIsIG5hbWU6IFwiZW5kcG9pbnRcIiB9LFxuICAgIFJlZ2lvbjogeyB0eXBlOiBcImJ1aWx0SW5QYXJhbXNcIiwgbmFtZTogXCJyZWdpb25cIiB9LFxuICAgIFVzZUR1YWxTdGFjazogeyB0eXBlOiBcImJ1aWx0SW5QYXJhbXNcIiwgbmFtZTogXCJ1c2VEdWFsc3RhY2tFbmRwb2ludFwiIH0sXG59O1xuIiwgImNvbnN0IHUgPSBcInJlcXVpcmVkXCIsIHYgPSBcImZuXCIsIHcgPSBcImFyZ3ZcIiwgeCA9IFwicmVmXCI7XG5jb25zdCBhID0gdHJ1ZSwgYiA9IFwiaXNTZXRcIiwgYyA9IFwiYm9vbGVhbkVxdWFsc1wiLCBkID0gXCJlcnJvclwiLCBlID0gXCJlbmRwb2ludFwiLCBmID0gXCJ0cmVlXCIsIGcgPSBcIlBhcnRpdGlvblJlc3VsdFwiLCBoID0gXCJzdHJpbmdFcXVhbHNcIiwgaSA9IHsgW3VdOiB0cnVlLCBcImRlZmF1bHRcIjogZmFsc2UsIFwidHlwZVwiOiBcImJvb2xlYW5cIiB9LCBqID0geyBbdV06IGZhbHNlLCBcInR5cGVcIjogXCJzdHJpbmdcIiB9LCBrID0geyBbeF06IFwiRW5kcG9pbnRcIiB9LCBsID0geyBbdl06IGMsIFt3XTogW3sgW3hdOiBcIlVzZUZJUFNcIiB9LCB0cnVlXSB9LCBtID0geyBbdl06IGMsIFt3XTogW3sgW3hdOiBcIlVzZUR1YWxTdGFja1wiIH0sIHRydWVdIH0sIG4gPSB7fSwgbyA9IHsgW3ZdOiBcImdldEF0dHJcIiwgW3ddOiBbeyBbeF06IGcgfSwgXCJuYW1lXCJdIH0sIHAgPSB7IFt2XTogYywgW3ddOiBbeyBbeF06IFwiVXNlRklQU1wiIH0sIGZhbHNlXSB9LCBxID0geyBbdl06IGMsIFt3XTogW3sgW3hdOiBcIlVzZUR1YWxTdGFja1wiIH0sIGZhbHNlXSB9LCByID0geyBbdl06IFwiZ2V0QXR0clwiLCBbd106IFt7IFt4XTogZyB9LCBcInN1cHBvcnRzRklQU1wiXSB9LCBzID0geyBbdl06IGMsIFt3XTogW3RydWUsIHsgW3ZdOiBcImdldEF0dHJcIiwgW3ddOiBbeyBbeF06IGcgfSwgXCJzdXBwb3J0c0R1YWxTdGFja1wiXSB9XSB9LCB0ID0gW3sgW3hdOiBcIlJlZ2lvblwiIH1dO1xuY29uc3QgX2RhdGEgPSB7IHZlcnNpb246IFwiMS4wXCIsIHBhcmFtZXRlcnM6IHsgVXNlRHVhbFN0YWNrOiBpLCBVc2VGSVBTOiBpLCBFbmRwb2ludDogaiwgUmVnaW9uOiBqIH0sIHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbeyBbdl06IGIsIFt3XTogW2tdIH1dLCBydWxlczogW3sgY29uZGl0aW9uczogW2xdLCBlcnJvcjogXCJJbnZhbGlkIENvbmZpZ3VyYXRpb246IEZJUFMgYW5kIGN1c3RvbSBlbmRwb2ludCBhcmUgbm90IHN1cHBvcnRlZFwiLCB0eXBlOiBkIH0sIHsgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IFttXSwgZXJyb3I6IFwiSW52YWxpZCBDb25maWd1cmF0aW9uOiBEdWFsc3RhY2sgYW5kIGN1c3RvbSBlbmRwb2ludCBhcmUgbm90IHN1cHBvcnRlZFwiLCB0eXBlOiBkIH0sIHsgZW5kcG9pbnQ6IHsgdXJsOiBrLCBwcm9wZXJ0aWVzOiBuLCBoZWFkZXJzOiBuIH0sIHR5cGU6IGUgfV0sIHR5cGU6IGYgfV0sIHR5cGU6IGYgfSwgeyBydWxlczogW3sgY29uZGl0aW9uczogW3sgW3ZdOiBiLCBbd106IHQgfV0sIHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbeyBbdl06IFwiYXdzLnBhcnRpdGlvblwiLCBbd106IHQsIGFzc2lnbjogZyB9XSwgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IFt7IFt2XTogaCwgW3ddOiBbbywgXCJhd3NcIl0gfSwgcCwgcV0sIGVuZHBvaW50OiB7IHVybDogXCJodHRwczovL3tSZWdpb259LnNpZ25pbi5hd3MuYW1hem9uLmNvbVwiLCBwcm9wZXJ0aWVzOiBuLCBoZWFkZXJzOiBuIH0sIHR5cGU6IGUgfSwgeyBjb25kaXRpb25zOiBbeyBbdl06IGgsIFt3XTogW28sIFwiYXdzLWNuXCJdIH0sIHAsIHFdLCBlbmRwb2ludDogeyB1cmw6IFwiaHR0cHM6Ly97UmVnaW9ufS5zaWduaW4uYW1hem9uYXdzLmNuXCIsIHByb3BlcnRpZXM6IG4sIGhlYWRlcnM6IG4gfSwgdHlwZTogZSB9LCB7IGNvbmRpdGlvbnM6IFt7IFt2XTogaCwgW3ddOiBbbywgXCJhd3MtdXMtZ292XCJdIH0sIHAsIHFdLCBlbmRwb2ludDogeyB1cmw6IFwiaHR0cHM6Ly97UmVnaW9ufS5zaWduaW4uYW1hem9uYXdzLXVzLWdvdi5jb21cIiwgcHJvcGVydGllczogbiwgaGVhZGVyczogbiB9LCB0eXBlOiBlIH0sIHsgY29uZGl0aW9uczogW2wsIG1dLCBydWxlczogW3sgY29uZGl0aW9uczogW3sgW3ZdOiBjLCBbd106IFthLCByXSB9LCBzXSwgcnVsZXM6IFt7IGVuZHBvaW50OiB7IHVybDogXCJodHRwczovL3NpZ25pbi1maXBzLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZHVhbFN0YWNrRG5zU3VmZml4fVwiLCBwcm9wZXJ0aWVzOiBuLCBoZWFkZXJzOiBuIH0sIHR5cGU6IGUgfV0sIHR5cGU6IGYgfSwgeyBlcnJvcjogXCJGSVBTIGFuZCBEdWFsU3RhY2sgYXJlIGVuYWJsZWQsIGJ1dCB0aGlzIHBhcnRpdGlvbiBkb2VzIG5vdCBzdXBwb3J0IG9uZSBvciBib3RoXCIsIHR5cGU6IGQgfV0sIHR5cGU6IGYgfSwgeyBjb25kaXRpb25zOiBbbCwgcV0sIHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbeyBbdl06IGMsIFt3XTogW3IsIGFdIH1dLCBydWxlczogW3sgZW5kcG9pbnQ6IHsgdXJsOiBcImh0dHBzOi8vc2lnbmluLWZpcHMue1JlZ2lvbn0ue1BhcnRpdGlvblJlc3VsdCNkbnNTdWZmaXh9XCIsIHByb3BlcnRpZXM6IG4sIGhlYWRlcnM6IG4gfSwgdHlwZTogZSB9XSwgdHlwZTogZiB9LCB7IGVycm9yOiBcIkZJUFMgaXMgZW5hYmxlZCBidXQgdGhpcyBwYXJ0aXRpb24gZG9lcyBub3Qgc3VwcG9ydCBGSVBTXCIsIHR5cGU6IGQgfV0sIHR5cGU6IGYgfSwgeyBjb25kaXRpb25zOiBbcCwgbV0sIHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbc10sIHJ1bGVzOiBbeyBlbmRwb2ludDogeyB1cmw6IFwiaHR0cHM6Ly9zaWduaW4ue1JlZ2lvbn0ue1BhcnRpdGlvblJlc3VsdCNkdWFsU3RhY2tEbnNTdWZmaXh9XCIsIHByb3BlcnRpZXM6IG4sIGhlYWRlcnM6IG4gfSwgdHlwZTogZSB9XSwgdHlwZTogZiB9LCB7IGVycm9yOiBcIkR1YWxTdGFjayBpcyBlbmFibGVkIGJ1dCB0aGlzIHBhcnRpdGlvbiBkb2VzIG5vdCBzdXBwb3J0IER1YWxTdGFja1wiLCB0eXBlOiBkIH1dLCB0eXBlOiBmIH0sIHsgZW5kcG9pbnQ6IHsgdXJsOiBcImh0dHBzOi8vc2lnbmluLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZG5zU3VmZml4fVwiLCBwcm9wZXJ0aWVzOiBuLCBoZWFkZXJzOiBuIH0sIHR5cGU6IGUgfV0sIHR5cGU6IGYgfV0sIHR5cGU6IGYgfSwgeyBlcnJvcjogXCJJbnZhbGlkIENvbmZpZ3VyYXRpb246IE1pc3NpbmcgUmVnaW9uXCIsIHR5cGU6IGQgfV0sIHR5cGU6IGYgfV0gfTtcbmV4cG9ydCBjb25zdCBydWxlU2V0ID0gX2RhdGE7XG4iLCAiaW1wb3J0IHsgYXdzRW5kcG9pbnRGdW5jdGlvbnMgfSBmcm9tIFwiQGF3cy1zZGsvdXRpbC1lbmRwb2ludHNcIjtcbmltcG9ydCB7IGN1c3RvbUVuZHBvaW50RnVuY3Rpb25zLCBFbmRwb2ludENhY2hlLCByZXNvbHZlRW5kcG9pbnQgfSBmcm9tIFwiQHNtaXRoeS91dGlsLWVuZHBvaW50c1wiO1xuaW1wb3J0IHsgcnVsZVNldCB9IGZyb20gXCIuL3J1bGVzZXRcIjtcbmNvbnN0IGNhY2hlID0gbmV3IEVuZHBvaW50Q2FjaGUoe1xuICAgIHNpemU6IDUwLFxuICAgIHBhcmFtczogW1wiRW5kcG9pbnRcIiwgXCJSZWdpb25cIiwgXCJVc2VEdWFsU3RhY2tcIiwgXCJVc2VGSVBTXCJdLFxufSk7XG5leHBvcnQgY29uc3QgZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIgPSAoZW5kcG9pbnRQYXJhbXMsIGNvbnRleHQgPSB7fSkgPT4ge1xuICAgIHJldHVybiBjYWNoZS5nZXQoZW5kcG9pbnRQYXJhbXMsICgpID0+IHJlc29sdmVFbmRwb2ludChydWxlU2V0LCB7XG4gICAgICAgIGVuZHBvaW50UGFyYW1zOiBlbmRwb2ludFBhcmFtcyxcbiAgICAgICAgbG9nZ2VyOiBjb250ZXh0LmxvZ2dlcixcbiAgICB9KSk7XG59O1xuY3VzdG9tRW5kcG9pbnRGdW5jdGlvbnMuYXdzID0gYXdzRW5kcG9pbnRGdW5jdGlvbnM7XG4iLCAiaW1wb3J0IHsgU2VydmljZUV4Y2VwdGlvbiBhcyBfX1NlcnZpY2VFeGNlcHRpb24sIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuZXhwb3J0IHsgX19TZXJ2aWNlRXhjZXB0aW9uIH07XG5leHBvcnQgY2xhc3MgU2lnbmluU2VydmljZUV4Y2VwdGlvbiBleHRlbmRzIF9fU2VydmljZUV4Y2VwdGlvbiB7XG4gICAgY29uc3RydWN0b3Iob3B0aW9ucykge1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFNpZ25pblNlcnZpY2VFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgU2lnbmluU2VydmljZUV4Y2VwdGlvbiBhcyBfX0Jhc2VFeGNlcHRpb24gfSBmcm9tIFwiLi9TaWduaW5TZXJ2aWNlRXhjZXB0aW9uXCI7XG5leHBvcnQgY2xhc3MgQWNjZXNzRGVuaWVkRXhjZXB0aW9uIGV4dGVuZHMgX19CYXNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJBY2Nlc3NEZW5pZWRFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGVycm9yO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJBY2Nlc3NEZW5pZWRFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgQWNjZXNzRGVuaWVkRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuZXJyb3IgPSBvcHRzLmVycm9yO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBJbnRlcm5hbFNlcnZlckV4Y2VwdGlvbiBleHRlbmRzIF9fQmFzZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcInNlcnZlclwiO1xuICAgIGVycm9yO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJJbnRlcm5hbFNlcnZlckV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcInNlcnZlclwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBJbnRlcm5hbFNlcnZlckV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLmVycm9yID0gb3B0cy5lcnJvcjtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgVG9vTWFueVJlcXVlc3RzRXJyb3IgZXh0ZW5kcyBfX0Jhc2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIlRvb01hbnlSZXF1ZXN0c0Vycm9yXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBlcnJvcjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiVG9vTWFueVJlcXVlc3RzRXJyb3JcIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgVG9vTWFueVJlcXVlc3RzRXJyb3IucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5lcnJvciA9IG9wdHMuZXJyb3I7XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIFZhbGlkYXRpb25FeGNlcHRpb24gZXh0ZW5kcyBfX0Jhc2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIlZhbGlkYXRpb25FeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGVycm9yO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJWYWxpZGF0aW9uRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFZhbGlkYXRpb25FeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5lcnJvciA9IG9wdHMuZXJyb3I7XG4gICAgfVxufVxuIiwgImNvbnN0IF9BREUgPSBcIkFjY2Vzc0RlbmllZEV4Y2VwdGlvblwiO1xuY29uc3QgX0FUID0gXCJBY2Nlc3NUb2tlblwiO1xuY29uc3QgX0NPQVQgPSBcIkNyZWF0ZU9BdXRoMlRva2VuXCI7XG5jb25zdCBfQ09BVFIgPSBcIkNyZWF0ZU9BdXRoMlRva2VuUmVxdWVzdFwiO1xuY29uc3QgX0NPQVRSQiA9IFwiQ3JlYXRlT0F1dGgyVG9rZW5SZXF1ZXN0Qm9keVwiO1xuY29uc3QgX0NPQVRSQnIgPSBcIkNyZWF0ZU9BdXRoMlRva2VuUmVzcG9uc2VCb2R5XCI7XG5jb25zdCBfQ09BVFJyID0gXCJDcmVhdGVPQXV0aDJUb2tlblJlc3BvbnNlXCI7XG5jb25zdCBfSVNFID0gXCJJbnRlcm5hbFNlcnZlckV4Y2VwdGlvblwiO1xuY29uc3QgX1JUID0gXCJSZWZyZXNoVG9rZW5cIjtcbmNvbnN0IF9UTVJFID0gXCJUb29NYW55UmVxdWVzdHNFcnJvclwiO1xuY29uc3QgX1ZFID0gXCJWYWxpZGF0aW9uRXhjZXB0aW9uXCI7XG5jb25zdCBfYUtJID0gXCJhY2Nlc3NLZXlJZFwiO1xuY29uc3QgX2FUID0gXCJhY2Nlc3NUb2tlblwiO1xuY29uc3QgX2MgPSBcImNsaWVudFwiO1xuY29uc3QgX2NJID0gXCJjbGllbnRJZFwiO1xuY29uc3QgX2NWID0gXCJjb2RlVmVyaWZpZXJcIjtcbmNvbnN0IF9jbyA9IFwiY29kZVwiO1xuY29uc3QgX2UgPSBcImVycm9yXCI7XG5jb25zdCBfZUkgPSBcImV4cGlyZXNJblwiO1xuY29uc3QgX2dUID0gXCJncmFudFR5cGVcIjtcbmNvbnN0IF9oID0gXCJodHRwXCI7XG5jb25zdCBfaEUgPSBcImh0dHBFcnJvclwiO1xuY29uc3QgX2lUID0gXCJpZFRva2VuXCI7XG5jb25zdCBfak4gPSBcImpzb25OYW1lXCI7XG5jb25zdCBfbSA9IFwibWVzc2FnZVwiO1xuY29uc3QgX3JUID0gXCJyZWZyZXNoVG9rZW5cIjtcbmNvbnN0IF9yVSA9IFwicmVkaXJlY3RVcmlcIjtcbmNvbnN0IF9zID0gXCJzbWl0aHkudHMuc2RrLnN5bnRoZXRpYy5jb20uYW1hem9uYXdzLnNpZ25pblwiO1xuY29uc3QgX3NBSyA9IFwic2VjcmV0QWNjZXNzS2V5XCI7XG5jb25zdCBfc1QgPSBcInNlc3Npb25Ub2tlblwiO1xuY29uc3QgX3NlID0gXCJzZXJ2ZXJcIjtcbmNvbnN0IF90SSA9IFwidG9rZW5JbnB1dFwiO1xuY29uc3QgX3RPID0gXCJ0b2tlbk91dHB1dFwiO1xuY29uc3QgX3RUID0gXCJ0b2tlblR5cGVcIjtcbmNvbnN0IG4wID0gXCJjb20uYW1hem9uYXdzLnNpZ25pblwiO1xuaW1wb3J0IHsgVHlwZVJlZ2lzdHJ5IH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IEFjY2Vzc0RlbmllZEV4Y2VwdGlvbiwgSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb24sIFRvb01hbnlSZXF1ZXN0c0Vycm9yLCBWYWxpZGF0aW9uRXhjZXB0aW9uLCB9IGZyb20gXCIuLi9tb2RlbHMvZXJyb3JzXCI7XG5pbXBvcnQgeyBTaWduaW5TZXJ2aWNlRXhjZXB0aW9uIH0gZnJvbSBcIi4uL21vZGVscy9TaWduaW5TZXJ2aWNlRXhjZXB0aW9uXCI7XG5jb25zdCBfc19yZWdpc3RyeSA9IFR5cGVSZWdpc3RyeS5mb3IoX3MpO1xuZXhwb3J0IHZhciBTaWduaW5TZXJ2aWNlRXhjZXB0aW9uJCA9IFstMywgX3MsIFwiU2lnbmluU2VydmljZUV4Y2VwdGlvblwiLCAwLCBbXSwgW11dO1xuX3NfcmVnaXN0cnkucmVnaXN0ZXJFcnJvcihTaWduaW5TZXJ2aWNlRXhjZXB0aW9uJCwgU2lnbmluU2VydmljZUV4Y2VwdGlvbik7XG5jb25zdCBuMF9yZWdpc3RyeSA9IFR5cGVSZWdpc3RyeS5mb3IobjApO1xuZXhwb3J0IHZhciBBY2Nlc3NEZW5pZWRFeGNlcHRpb24kID0gWy0zLCBuMCwgX0FERSwgeyBbX2VdOiBfYyB9LCBbX2UsIF9tXSwgWzAsIDBdLCAyXTtcbm4wX3JlZ2lzdHJ5LnJlZ2lzdGVyRXJyb3IoQWNjZXNzRGVuaWVkRXhjZXB0aW9uJCwgQWNjZXNzRGVuaWVkRXhjZXB0aW9uKTtcbmV4cG9ydCB2YXIgSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb24kID0gWy0zLCBuMCwgX0lTRSwgeyBbX2VdOiBfc2UsIFtfaEVdOiA1MDAgfSwgW19lLCBfbV0sIFswLCAwXSwgMl07XG5uMF9yZWdpc3RyeS5yZWdpc3RlckVycm9yKEludGVybmFsU2VydmVyRXhjZXB0aW9uJCwgSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb24pO1xuZXhwb3J0IHZhciBUb29NYW55UmVxdWVzdHNFcnJvciQgPSBbLTMsIG4wLCBfVE1SRSwgeyBbX2VdOiBfYywgW19oRV06IDQyOSB9LCBbX2UsIF9tXSwgWzAsIDBdLCAyXTtcbm4wX3JlZ2lzdHJ5LnJlZ2lzdGVyRXJyb3IoVG9vTWFueVJlcXVlc3RzRXJyb3IkLCBUb29NYW55UmVxdWVzdHNFcnJvcik7XG5leHBvcnQgdmFyIFZhbGlkYXRpb25FeGNlcHRpb24kID0gWy0zLCBuMCwgX1ZFLCB7IFtfZV06IF9jLCBbX2hFXTogNDAwIH0sIFtfZSwgX21dLCBbMCwgMF0sIDJdO1xubjBfcmVnaXN0cnkucmVnaXN0ZXJFcnJvcihWYWxpZGF0aW9uRXhjZXB0aW9uJCwgVmFsaWRhdGlvbkV4Y2VwdGlvbik7XG5leHBvcnQgY29uc3QgZXJyb3JUeXBlUmVnaXN0cmllcyA9IFtfc19yZWdpc3RyeSwgbjBfcmVnaXN0cnldO1xudmFyIFJlZnJlc2hUb2tlbiA9IFswLCBuMCwgX1JULCA4LCAwXTtcbmV4cG9ydCB2YXIgQWNjZXNzVG9rZW4kID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0FULFxuICAgIDgsXG4gICAgW19hS0ksIF9zQUssIF9zVF0sXG4gICAgW1xuICAgICAgICBbMCwgeyBbX2pOXTogX2FLSSB9XSxcbiAgICAgICAgWzAsIHsgW19qTl06IF9zQUsgfV0sXG4gICAgICAgIFswLCB7IFtfak5dOiBfc1QgfV0sXG4gICAgXSxcbiAgICAzLFxuXTtcbmV4cG9ydCB2YXIgQ3JlYXRlT0F1dGgyVG9rZW5SZXF1ZXN0JCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9DT0FUUixcbiAgICAwLFxuICAgIFtfdEldLFxuICAgIFtbKCkgPT4gQ3JlYXRlT0F1dGgyVG9rZW5SZXF1ZXN0Qm9keSQsIDE2XV0sXG4gICAgMSxcbl07XG5leHBvcnQgdmFyIENyZWF0ZU9BdXRoMlRva2VuUmVxdWVzdEJvZHkkID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0NPQVRSQixcbiAgICAwLFxuICAgIFtfY0ksIF9nVCwgX2NvLCBfclUsIF9jViwgX3JUXSxcbiAgICBbXG4gICAgICAgIFswLCB7IFtfak5dOiBfY0kgfV0sXG4gICAgICAgIFswLCB7IFtfak5dOiBfZ1QgfV0sXG4gICAgICAgIDAsXG4gICAgICAgIFswLCB7IFtfak5dOiBfclUgfV0sXG4gICAgICAgIFswLCB7IFtfak5dOiBfY1YgfV0sXG4gICAgICAgIFsoKSA9PiBSZWZyZXNoVG9rZW4sIHsgW19qTl06IF9yVCB9XSxcbiAgICBdLFxuICAgIDIsXG5dO1xuZXhwb3J0IHZhciBDcmVhdGVPQXV0aDJUb2tlblJlc3BvbnNlJCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9DT0FUUnIsXG4gICAgMCxcbiAgICBbX3RPXSxcbiAgICBbWygpID0+IENyZWF0ZU9BdXRoMlRva2VuUmVzcG9uc2VCb2R5JCwgMTZdXSxcbiAgICAxLFxuXTtcbmV4cG9ydCB2YXIgQ3JlYXRlT0F1dGgyVG9rZW5SZXNwb25zZUJvZHkkID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0NPQVRSQnIsXG4gICAgMCxcbiAgICBbX2FULCBfdFQsIF9lSSwgX3JULCBfaVRdLFxuICAgIFtcbiAgICAgICAgWygpID0+IEFjY2Vzc1Rva2VuJCwgeyBbX2pOXTogX2FUIH1dLFxuICAgICAgICBbMCwgeyBbX2pOXTogX3RUIH1dLFxuICAgICAgICBbMSwgeyBbX2pOXTogX2VJIH1dLFxuICAgICAgICBbKCkgPT4gUmVmcmVzaFRva2VuLCB7IFtfak5dOiBfclQgfV0sXG4gICAgICAgIFswLCB7IFtfak5dOiBfaVQgfV0sXG4gICAgXSxcbiAgICA0LFxuXTtcbmV4cG9ydCB2YXIgQ3JlYXRlT0F1dGgyVG9rZW4kID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0NPQVQsXG4gICAgeyBbX2hdOiBbXCJQT1NUXCIsIFwiL3YxL3Rva2VuXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBDcmVhdGVPQXV0aDJUb2tlblJlcXVlc3QkLFxuICAgICgpID0+IENyZWF0ZU9BdXRoMlRva2VuUmVzcG9uc2UkLFxuXTtcbiIsICJpbXBvcnQgeyBBd3NTZGtTaWdWNFNpZ25lciB9IGZyb20gXCJAYXdzLXNkay9jb3JlXCI7XG5pbXBvcnQgeyBBd3NSZXN0SnNvblByb3RvY29sIH0gZnJvbSBcIkBhd3Mtc2RrL2NvcmUvcHJvdG9jb2xzXCI7XG5pbXBvcnQgeyBOb0F1dGhTaWduZXIgfSBmcm9tIFwiQHNtaXRoeS9jb3JlXCI7XG5pbXBvcnQgeyBOb09wTG9nZ2VyIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgcGFyc2VVcmwgfSBmcm9tIFwiQHNtaXRoeS91cmwtcGFyc2VyXCI7XG5pbXBvcnQgeyBmcm9tQmFzZTY0LCB0b0Jhc2U2NCB9IGZyb20gXCJAc21pdGh5L3V0aWwtYmFzZTY0XCI7XG5pbXBvcnQgeyBmcm9tVXRmOCwgdG9VdGY4IH0gZnJvbSBcIkBzbWl0aHkvdXRpbC11dGY4XCI7XG5pbXBvcnQgeyBkZWZhdWx0U2lnbmluSHR0cEF1dGhTY2hlbWVQcm92aWRlciB9IGZyb20gXCIuL2F1dGgvaHR0cEF1dGhTY2hlbWVQcm92aWRlclwiO1xuaW1wb3J0IHsgZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIgfSBmcm9tIFwiLi9lbmRwb2ludC9lbmRwb2ludFJlc29sdmVyXCI7XG5pbXBvcnQgeyBlcnJvclR5cGVSZWdpc3RyaWVzIH0gZnJvbSBcIi4vc2NoZW1hcy9zY2hlbWFzXzBcIjtcbmV4cG9ydCBjb25zdCBnZXRSdW50aW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIGFwaVZlcnNpb246IFwiMjAyMy0wMS0wMVwiLFxuICAgICAgICBiYXNlNjREZWNvZGVyOiBjb25maWc/LmJhc2U2NERlY29kZXIgPz8gZnJvbUJhc2U2NCxcbiAgICAgICAgYmFzZTY0RW5jb2RlcjogY29uZmlnPy5iYXNlNjRFbmNvZGVyID8/IHRvQmFzZTY0LFxuICAgICAgICBkaXNhYmxlSG9zdFByZWZpeDogY29uZmlnPy5kaXNhYmxlSG9zdFByZWZpeCA/PyBmYWxzZSxcbiAgICAgICAgZW5kcG9pbnRQcm92aWRlcjogY29uZmlnPy5lbmRwb2ludFByb3ZpZGVyID8/IGRlZmF1bHRFbmRwb2ludFJlc29sdmVyLFxuICAgICAgICBleHRlbnNpb25zOiBjb25maWc/LmV4dGVuc2lvbnMgPz8gW10sXG4gICAgICAgIGh0dHBBdXRoU2NoZW1lUHJvdmlkZXI6IGNvbmZpZz8uaHR0cEF1dGhTY2hlbWVQcm92aWRlciA/PyBkZWZhdWx0U2lnbmluSHR0cEF1dGhTY2hlbWVQcm92aWRlcixcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVzOiBjb25maWc/Lmh0dHBBdXRoU2NoZW1lcyA/PyBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgc2NoZW1lSWQ6IFwiYXdzLmF1dGgjc2lndjRcIixcbiAgICAgICAgICAgICAgICBpZGVudGl0eVByb3ZpZGVyOiAoaXBjKSA9PiBpcGMuZ2V0SWRlbnRpdHlQcm92aWRlcihcImF3cy5hdXRoI3NpZ3Y0XCIpLFxuICAgICAgICAgICAgICAgIHNpZ25lcjogbmV3IEF3c1Nka1NpZ1Y0U2lnbmVyKCksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHNjaGVtZUlkOiBcInNtaXRoeS5hcGkjbm9BdXRoXCIsXG4gICAgICAgICAgICAgICAgaWRlbnRpdHlQcm92aWRlcjogKGlwYykgPT4gaXBjLmdldElkZW50aXR5UHJvdmlkZXIoXCJzbWl0aHkuYXBpI25vQXV0aFwiKSB8fCAoYXN5bmMgKCkgPT4gKHt9KSksXG4gICAgICAgICAgICAgICAgc2lnbmVyOiBuZXcgTm9BdXRoU2lnbmVyKCksXG4gICAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBsb2dnZXI6IGNvbmZpZz8ubG9nZ2VyID8/IG5ldyBOb09wTG9nZ2VyKCksXG4gICAgICAgIHByb3RvY29sOiBjb25maWc/LnByb3RvY29sID8/IEF3c1Jlc3RKc29uUHJvdG9jb2wsXG4gICAgICAgIHByb3RvY29sU2V0dGluZ3M6IGNvbmZpZz8ucHJvdG9jb2xTZXR0aW5ncyA/PyB7XG4gICAgICAgICAgICBkZWZhdWx0TmFtZXNwYWNlOiBcImNvbS5hbWF6b25hd3Muc2lnbmluXCIsXG4gICAgICAgICAgICBlcnJvclR5cGVSZWdpc3RyaWVzLFxuICAgICAgICAgICAgdmVyc2lvbjogXCIyMDIzLTAxLTAxXCIsXG4gICAgICAgICAgICBzZXJ2aWNlVGFyZ2V0OiBcIlNpZ25pblwiLFxuICAgICAgICB9LFxuICAgICAgICBzZXJ2aWNlSWQ6IGNvbmZpZz8uc2VydmljZUlkID8/IFwiU2lnbmluXCIsXG4gICAgICAgIHVybFBhcnNlcjogY29uZmlnPy51cmxQYXJzZXIgPz8gcGFyc2VVcmwsXG4gICAgICAgIHV0ZjhEZWNvZGVyOiBjb25maWc/LnV0ZjhEZWNvZGVyID8/IGZyb21VdGY4LFxuICAgICAgICB1dGY4RW5jb2RlcjogY29uZmlnPy51dGY4RW5jb2RlciA/PyB0b1V0ZjgsXG4gICAgfTtcbn07XG4iLCAiaW1wb3J0IHBhY2thZ2VJbmZvIGZyb20gXCIuLi8uLi8uLi9wYWNrYWdlLmpzb25cIjtcbmltcG9ydCB7IGVtaXRXYXJuaW5nSWZVbnN1cHBvcnRlZFZlcnNpb24gYXMgYXdzQ2hlY2tWZXJzaW9uLCBOT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfT1BUSU9OUyB9IGZyb20gXCJAYXdzLXNkay9jb3JlXCI7XG5pbXBvcnQgeyBjcmVhdGVEZWZhdWx0VXNlckFnZW50UHJvdmlkZXIsIE5PREVfQVBQX0lEX0NPTkZJR19PUFRJT05TIH0gZnJvbSBcIkBhd3Mtc2RrL3V0aWwtdXNlci1hZ2VudC1ub2RlXCI7XG5pbXBvcnQgeyBOT0RFX1JFR0lPTl9DT05GSUdfRklMRV9PUFRJT05TLCBOT0RFX1JFR0lPTl9DT05GSUdfT1BUSU9OUywgTk9ERV9VU0VfRFVBTFNUQUNLX0VORFBPSU5UX0NPTkZJR19PUFRJT05TLCBOT0RFX1VTRV9GSVBTX0VORFBPSU5UX0NPTkZJR19PUFRJT05TLCB9IGZyb20gXCJAc21pdGh5L2NvbmZpZy1yZXNvbHZlclwiO1xuaW1wb3J0IHsgSGFzaCB9IGZyb20gXCJAc21pdGh5L2hhc2gtbm9kZVwiO1xuaW1wb3J0IHsgTk9ERV9NQVhfQVRURU1QVF9DT05GSUdfT1BUSU9OUywgTk9ERV9SRVRSWV9NT0RFX0NPTkZJR19PUFRJT05TIH0gZnJvbSBcIkBzbWl0aHkvbWlkZGxld2FyZS1yZXRyeVwiO1xuaW1wb3J0IHsgbG9hZENvbmZpZyBhcyBsb2FkTm9kZUNvbmZpZyB9IGZyb20gXCJAc21pdGh5L25vZGUtY29uZmlnLXByb3ZpZGVyXCI7XG5pbXBvcnQgeyBOb2RlSHR0cEhhbmRsZXIgYXMgUmVxdWVzdEhhbmRsZXIsIHN0cmVhbUNvbGxlY3RvciB9IGZyb20gXCJAc21pdGh5L25vZGUtaHR0cC1oYW5kbGVyXCI7XG5pbXBvcnQgeyBlbWl0V2FybmluZ0lmVW5zdXBwb3J0ZWRWZXJzaW9uLCBsb2FkQ29uZmlnc0ZvckRlZmF1bHRNb2RlIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgY2FsY3VsYXRlQm9keUxlbmd0aCB9IGZyb20gXCJAc21pdGh5L3V0aWwtYm9keS1sZW5ndGgtbm9kZVwiO1xuaW1wb3J0IHsgcmVzb2x2ZURlZmF1bHRzTW9kZUNvbmZpZyB9IGZyb20gXCJAc21pdGh5L3V0aWwtZGVmYXVsdHMtbW9kZS1ub2RlXCI7XG5pbXBvcnQgeyBERUZBVUxUX1JFVFJZX01PREUgfSBmcm9tIFwiQHNtaXRoeS91dGlsLXJldHJ5XCI7XG5pbXBvcnQgeyBnZXRSdW50aW1lQ29uZmlnIGFzIGdldFNoYXJlZFJ1bnRpbWVDb25maWcgfSBmcm9tIFwiLi9ydW50aW1lQ29uZmlnLnNoYXJlZFwiO1xuZXhwb3J0IGNvbnN0IGdldFJ1bnRpbWVDb25maWcgPSAoY29uZmlnKSA9PiB7XG4gICAgZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbihwcm9jZXNzLnZlcnNpb24pO1xuICAgIGNvbnN0IGRlZmF1bHRzTW9kZSA9IHJlc29sdmVEZWZhdWx0c01vZGVDb25maWcoY29uZmlnKTtcbiAgICBjb25zdCBkZWZhdWx0Q29uZmlnUHJvdmlkZXIgPSAoKSA9PiBkZWZhdWx0c01vZGUoKS50aGVuKGxvYWRDb25maWdzRm9yRGVmYXVsdE1vZGUpO1xuICAgIGNvbnN0IGNsaWVudFNoYXJlZFZhbHVlcyA9IGdldFNoYXJlZFJ1bnRpbWVDb25maWcoY29uZmlnKTtcbiAgICBhd3NDaGVja1ZlcnNpb24ocHJvY2Vzcy52ZXJzaW9uKTtcbiAgICBjb25zdCBsb2FkZXJDb25maWcgPSB7XG4gICAgICAgIHByb2ZpbGU6IGNvbmZpZz8ucHJvZmlsZSxcbiAgICAgICAgbG9nZ2VyOiBjbGllbnRTaGFyZWRWYWx1ZXMubG9nZ2VyLFxuICAgIH07XG4gICAgcmV0dXJuIHtcbiAgICAgICAgLi4uY2xpZW50U2hhcmVkVmFsdWVzLFxuICAgICAgICAuLi5jb25maWcsXG4gICAgICAgIHJ1bnRpbWU6IFwibm9kZVwiLFxuICAgICAgICBkZWZhdWx0c01vZGUsXG4gICAgICAgIGF1dGhTY2hlbWVQcmVmZXJlbmNlOiBjb25maWc/LmF1dGhTY2hlbWVQcmVmZXJlbmNlID8/IGxvYWROb2RlQ29uZmlnKE5PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgICAgICBib2R5TGVuZ3RoQ2hlY2tlcjogY29uZmlnPy5ib2R5TGVuZ3RoQ2hlY2tlciA/PyBjYWxjdWxhdGVCb2R5TGVuZ3RoLFxuICAgICAgICBkZWZhdWx0VXNlckFnZW50UHJvdmlkZXI6IGNvbmZpZz8uZGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyID8/XG4gICAgICAgICAgICBjcmVhdGVEZWZhdWx0VXNlckFnZW50UHJvdmlkZXIoeyBzZXJ2aWNlSWQ6IGNsaWVudFNoYXJlZFZhbHVlcy5zZXJ2aWNlSWQsIGNsaWVudFZlcnNpb246IHBhY2thZ2VJbmZvLnZlcnNpb24gfSksXG4gICAgICAgIG1heEF0dGVtcHRzOiBjb25maWc/Lm1heEF0dGVtcHRzID8/IGxvYWROb2RlQ29uZmlnKE5PREVfTUFYX0FUVEVNUFRfQ09ORklHX09QVElPTlMsIGNvbmZpZyksXG4gICAgICAgIHJlZ2lvbjogY29uZmlnPy5yZWdpb24gPz9cbiAgICAgICAgICAgIGxvYWROb2RlQ29uZmlnKE5PREVfUkVHSU9OX0NPTkZJR19PUFRJT05TLCB7IC4uLk5PREVfUkVHSU9OX0NPTkZJR19GSUxFX09QVElPTlMsIC4uLmxvYWRlckNvbmZpZyB9KSxcbiAgICAgICAgcmVxdWVzdEhhbmRsZXI6IFJlcXVlc3RIYW5kbGVyLmNyZWF0ZShjb25maWc/LnJlcXVlc3RIYW5kbGVyID8/IGRlZmF1bHRDb25maWdQcm92aWRlciksXG4gICAgICAgIHJldHJ5TW9kZTogY29uZmlnPy5yZXRyeU1vZGUgPz9cbiAgICAgICAgICAgIGxvYWROb2RlQ29uZmlnKHtcbiAgICAgICAgICAgICAgICAuLi5OT0RFX1JFVFJZX01PREVfQ09ORklHX09QVElPTlMsXG4gICAgICAgICAgICAgICAgZGVmYXVsdDogYXN5bmMgKCkgPT4gKGF3YWl0IGRlZmF1bHRDb25maWdQcm92aWRlcigpKS5yZXRyeU1vZGUgfHwgREVGQVVMVF9SRVRSWV9NT0RFLFxuICAgICAgICAgICAgfSwgY29uZmlnKSxcbiAgICAgICAgc2hhMjU2OiBjb25maWc/LnNoYTI1NiA/PyBIYXNoLmJpbmQobnVsbCwgXCJzaGEyNTZcIiksXG4gICAgICAgIHN0cmVhbUNvbGxlY3RvcjogY29uZmlnPy5zdHJlYW1Db2xsZWN0b3IgPz8gc3RyZWFtQ29sbGVjdG9yLFxuICAgICAgICB1c2VEdWFsc3RhY2tFbmRwb2ludDogY29uZmlnPy51c2VEdWFsc3RhY2tFbmRwb2ludCA/PyBsb2FkTm9kZUNvbmZpZyhOT0RFX1VTRV9EVUFMU1RBQ0tfRU5EUE9JTlRfQ09ORklHX09QVElPTlMsIGxvYWRlckNvbmZpZyksXG4gICAgICAgIHVzZUZpcHNFbmRwb2ludDogY29uZmlnPy51c2VGaXBzRW5kcG9pbnQgPz8gbG9hZE5vZGVDb25maWcoTk9ERV9VU0VfRklQU19FTkRQT0lOVF9DT05GSUdfT1BUSU9OUywgbG9hZGVyQ29uZmlnKSxcbiAgICAgICAgdXNlckFnZW50QXBwSWQ6IGNvbmZpZz8udXNlckFnZW50QXBwSWQgPz8gbG9hZE5vZGVDb25maWcoTk9ERV9BUFBfSURfQ09ORklHX09QVElPTlMsIGxvYWRlckNvbmZpZyksXG4gICAgfTtcbn07XG4iLCAiZXhwb3J0IGNvbnN0IGdldEh0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiA9IChydW50aW1lQ29uZmlnKSA9PiB7XG4gICAgY29uc3QgX2h0dHBBdXRoU2NoZW1lcyA9IHJ1bnRpbWVDb25maWcuaHR0cEF1dGhTY2hlbWVzO1xuICAgIGxldCBfaHR0cEF1dGhTY2hlbWVQcm92aWRlciA9IHJ1bnRpbWVDb25maWcuaHR0cEF1dGhTY2hlbWVQcm92aWRlcjtcbiAgICBsZXQgX2NyZWRlbnRpYWxzID0gcnVudGltZUNvbmZpZy5jcmVkZW50aWFscztcbiAgICByZXR1cm4ge1xuICAgICAgICBzZXRIdHRwQXV0aFNjaGVtZShodHRwQXV0aFNjaGVtZSkge1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSBfaHR0cEF1dGhTY2hlbWVzLmZpbmRJbmRleCgoc2NoZW1lKSA9PiBzY2hlbWUuc2NoZW1lSWQgPT09IGh0dHBBdXRoU2NoZW1lLnNjaGVtZUlkKTtcbiAgICAgICAgICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICBfaHR0cEF1dGhTY2hlbWVzLnB1c2goaHR0cEF1dGhTY2hlbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgX2h0dHBBdXRoU2NoZW1lcy5zcGxpY2UoaW5kZXgsIDEsIGh0dHBBdXRoU2NoZW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVzKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9odHRwQXV0aFNjaGVtZXM7XG4gICAgICAgIH0sXG4gICAgICAgIHNldEh0dHBBdXRoU2NoZW1lUHJvdmlkZXIoaHR0cEF1dGhTY2hlbWVQcm92aWRlcikge1xuICAgICAgICAgICAgX2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSBodHRwQXV0aFNjaGVtZVByb3ZpZGVyO1xuICAgICAgICB9LFxuICAgICAgICBodHRwQXV0aFNjaGVtZVByb3ZpZGVyKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9odHRwQXV0aFNjaGVtZVByb3ZpZGVyO1xuICAgICAgICB9LFxuICAgICAgICBzZXRDcmVkZW50aWFscyhjcmVkZW50aWFscykge1xuICAgICAgICAgICAgX2NyZWRlbnRpYWxzID0gY3JlZGVudGlhbHM7XG4gICAgICAgIH0sXG4gICAgICAgIGNyZWRlbnRpYWxzKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9jcmVkZW50aWFscztcbiAgICAgICAgfSxcbiAgICB9O1xufTtcbmV4cG9ydCBjb25zdCByZXNvbHZlSHR0cEF1dGhSdW50aW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIGh0dHBBdXRoU2NoZW1lczogY29uZmlnLmh0dHBBdXRoU2NoZW1lcygpLFxuICAgICAgICBodHRwQXV0aFNjaGVtZVByb3ZpZGVyOiBjb25maWcuaHR0cEF1dGhTY2hlbWVQcm92aWRlcigpLFxuICAgICAgICBjcmVkZW50aWFsczogY29uZmlnLmNyZWRlbnRpYWxzKCksXG4gICAgfTtcbn07XG4iLCAiaW1wb3J0IHsgZ2V0QXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiwgcmVzb2x2ZUF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24sIH0gZnJvbSBcIkBhd3Mtc2RrL3JlZ2lvbi1jb25maWctcmVzb2x2ZXJcIjtcbmltcG9ydCB7IGdldEh0dHBIYW5kbGVyRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiwgcmVzb2x2ZUh0dHBIYW5kbGVyUnVudGltZUNvbmZpZyB9IGZyb20gXCJAc21pdGh5L3Byb3RvY29sLWh0dHBcIjtcbmltcG9ydCB7IGdldERlZmF1bHRFeHRlbnNpb25Db25maWd1cmF0aW9uLCByZXNvbHZlRGVmYXVsdFJ1bnRpbWVDb25maWcgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyBnZXRIdHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24sIHJlc29sdmVIdHRwQXV0aFJ1bnRpbWVDb25maWcgfSBmcm9tIFwiLi9hdXRoL2h0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvblwiO1xuZXhwb3J0IGNvbnN0IHJlc29sdmVSdW50aW1lRXh0ZW5zaW9ucyA9IChydW50aW1lQ29uZmlnLCBleHRlbnNpb25zKSA9PiB7XG4gICAgY29uc3QgZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiA9IE9iamVjdC5hc3NpZ24oZ2V0QXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbihydW50aW1lQ29uZmlnKSwgZ2V0RGVmYXVsdEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24ocnVudGltZUNvbmZpZyksIGdldEh0dHBIYW5kbGVyRXh0ZW5zaW9uQ29uZmlndXJhdGlvbihydW50aW1lQ29uZmlnKSwgZ2V0SHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uKHJ1bnRpbWVDb25maWcpKTtcbiAgICBleHRlbnNpb25zLmZvckVhY2goKGV4dGVuc2lvbikgPT4gZXh0ZW5zaW9uLmNvbmZpZ3VyZShleHRlbnNpb25Db25maWd1cmF0aW9uKSk7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24ocnVudGltZUNvbmZpZywgcmVzb2x2ZUF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24oZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiksIHJlc29sdmVEZWZhdWx0UnVudGltZUNvbmZpZyhleHRlbnNpb25Db25maWd1cmF0aW9uKSwgcmVzb2x2ZUh0dHBIYW5kbGVyUnVudGltZUNvbmZpZyhleHRlbnNpb25Db25maWd1cmF0aW9uKSwgcmVzb2x2ZUh0dHBBdXRoUnVudGltZUNvbmZpZyhleHRlbnNpb25Db25maWd1cmF0aW9uKSk7XG59O1xuIiwgImltcG9ydCB7IGdldEhvc3RIZWFkZXJQbHVnaW4sIHJlc29sdmVIb3N0SGVhZGVyQ29uZmlnLCB9IGZyb20gXCJAYXdzLXNkay9taWRkbGV3YXJlLWhvc3QtaGVhZGVyXCI7XG5pbXBvcnQgeyBnZXRMb2dnZXJQbHVnaW4gfSBmcm9tIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1sb2dnZXJcIjtcbmltcG9ydCB7IGdldFJlY3Vyc2lvbkRldGVjdGlvblBsdWdpbiB9IGZyb20gXCJAYXdzLXNkay9taWRkbGV3YXJlLXJlY3Vyc2lvbi1kZXRlY3Rpb25cIjtcbmltcG9ydCB7IGdldFVzZXJBZ2VudFBsdWdpbiwgcmVzb2x2ZVVzZXJBZ2VudENvbmZpZywgfSBmcm9tIFwiQGF3cy1zZGsvbWlkZGxld2FyZS11c2VyLWFnZW50XCI7XG5pbXBvcnQgeyByZXNvbHZlUmVnaW9uQ29uZmlnIH0gZnJvbSBcIkBzbWl0aHkvY29uZmlnLXJlc29sdmVyXCI7XG5pbXBvcnQgeyBEZWZhdWx0SWRlbnRpdHlQcm92aWRlckNvbmZpZywgZ2V0SHR0cEF1dGhTY2hlbWVFbmRwb2ludFJ1bGVTZXRQbHVnaW4sIGdldEh0dHBTaWduaW5nUGx1Z2luLCB9IGZyb20gXCJAc21pdGh5L2NvcmVcIjtcbmltcG9ydCB7IGdldFNjaGVtYVNlcmRlUGx1Z2luIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IGdldENvbnRlbnRMZW5ndGhQbHVnaW4gfSBmcm9tIFwiQHNtaXRoeS9taWRkbGV3YXJlLWNvbnRlbnQtbGVuZ3RoXCI7XG5pbXBvcnQgeyByZXNvbHZlRW5kcG9pbnRDb25maWcsIH0gZnJvbSBcIkBzbWl0aHkvbWlkZGxld2FyZS1lbmRwb2ludFwiO1xuaW1wb3J0IHsgZ2V0UmV0cnlQbHVnaW4sIHJlc29sdmVSZXRyeUNvbmZpZywgfSBmcm9tIFwiQHNtaXRoeS9taWRkbGV3YXJlLXJldHJ5XCI7XG5pbXBvcnQgeyBDbGllbnQgYXMgX19DbGllbnQsIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgZGVmYXVsdFNpZ25pbkh0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyLCByZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWcsIH0gZnJvbSBcIi4vYXV0aC9odHRwQXV0aFNjaGVtZVByb3ZpZGVyXCI7XG5pbXBvcnQgeyByZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzIH0gZnJvbSBcIi4vZW5kcG9pbnQvRW5kcG9pbnRQYXJhbWV0ZXJzXCI7XG5pbXBvcnQgeyBnZXRSdW50aW1lQ29uZmlnIGFzIF9fZ2V0UnVudGltZUNvbmZpZyB9IGZyb20gXCIuL3J1bnRpbWVDb25maWdcIjtcbmltcG9ydCB7IHJlc29sdmVSdW50aW1lRXh0ZW5zaW9ucyB9IGZyb20gXCIuL3J1bnRpbWVFeHRlbnNpb25zXCI7XG5leHBvcnQgeyBfX0NsaWVudCB9O1xuZXhwb3J0IGNsYXNzIFNpZ25pbkNsaWVudCBleHRlbmRzIF9fQ2xpZW50IHtcbiAgICBjb25maWc7XG4gICAgY29uc3RydWN0b3IoLi4uW2NvbmZpZ3VyYXRpb25dKSB7XG4gICAgICAgIGNvbnN0IF9jb25maWdfMCA9IF9fZ2V0UnVudGltZUNvbmZpZyhjb25maWd1cmF0aW9uIHx8IHt9KTtcbiAgICAgICAgc3VwZXIoX2NvbmZpZ18wKTtcbiAgICAgICAgdGhpcy5pbml0Q29uZmlnID0gX2NvbmZpZ18wO1xuICAgICAgICBjb25zdCBfY29uZmlnXzEgPSByZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzKF9jb25maWdfMCk7XG4gICAgICAgIGNvbnN0IF9jb25maWdfMiA9IHJlc29sdmVVc2VyQWdlbnRDb25maWcoX2NvbmZpZ18xKTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ18zID0gcmVzb2x2ZVJldHJ5Q29uZmlnKF9jb25maWdfMik7XG4gICAgICAgIGNvbnN0IF9jb25maWdfNCA9IHJlc29sdmVSZWdpb25Db25maWcoX2NvbmZpZ18zKTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ181ID0gcmVzb2x2ZUhvc3RIZWFkZXJDb25maWcoX2NvbmZpZ180KTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ182ID0gcmVzb2x2ZUVuZHBvaW50Q29uZmlnKF9jb25maWdfNSk7XG4gICAgICAgIGNvbnN0IF9jb25maWdfNyA9IHJlc29sdmVIdHRwQXV0aFNjaGVtZUNvbmZpZyhfY29uZmlnXzYpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzggPSByZXNvbHZlUnVudGltZUV4dGVuc2lvbnMoX2NvbmZpZ183LCBjb25maWd1cmF0aW9uPy5leHRlbnNpb25zIHx8IFtdKTtcbiAgICAgICAgdGhpcy5jb25maWcgPSBfY29uZmlnXzg7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShnZXRTY2hlbWFTZXJkZVBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoZ2V0VXNlckFnZW50UGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShnZXRSZXRyeVBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoZ2V0Q29udGVudExlbmd0aFBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoZ2V0SG9zdEhlYWRlclBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoZ2V0TG9nZ2VyUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShnZXRSZWN1cnNpb25EZXRlY3Rpb25QbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGdldEh0dHBBdXRoU2NoZW1lRW5kcG9pbnRSdWxlU2V0UGx1Z2luKHRoaXMuY29uZmlnLCB7XG4gICAgICAgICAgICBodHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlcjogZGVmYXVsdFNpZ25pbkh0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyLFxuICAgICAgICAgICAgaWRlbnRpdHlQcm92aWRlckNvbmZpZ1Byb3ZpZGVyOiBhc3luYyAoY29uZmlnKSA9PiBuZXcgRGVmYXVsdElkZW50aXR5UHJvdmlkZXJDb25maWcoe1xuICAgICAgICAgICAgICAgIFwiYXdzLmF1dGgjc2lndjRcIjogY29uZmlnLmNyZWRlbnRpYWxzLFxuICAgICAgICAgICAgfSksXG4gICAgICAgIH0pKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGdldEh0dHBTaWduaW5nUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgfVxuICAgIGRlc3Ryb3koKSB7XG4gICAgICAgIHN1cGVyLmRlc3Ryb3koKTtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgZ2V0RW5kcG9pbnRQbHVnaW4gfSBmcm9tIFwiQHNtaXRoeS9taWRkbGV3YXJlLWVuZHBvaW50XCI7XG5pbXBvcnQgeyBDb21tYW5kIGFzICRDb21tYW5kIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgY29tbW9uUGFyYW1zIH0gZnJvbSBcIi4uL2VuZHBvaW50L0VuZHBvaW50UGFyYW1ldGVyc1wiO1xuaW1wb3J0IHsgQ3JlYXRlT0F1dGgyVG9rZW4kIH0gZnJvbSBcIi4uL3NjaGVtYXMvc2NoZW1hc18wXCI7XG5leHBvcnQgeyAkQ29tbWFuZCB9O1xuZXhwb3J0IGNsYXNzIENyZWF0ZU9BdXRoMlRva2VuQ29tbWFuZCBleHRlbmRzICRDb21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJTaWduaW5cIiwgXCJDcmVhdGVPQXV0aDJUb2tlblwiLCB7fSlcbiAgICAubihcIlNpZ25pbkNsaWVudFwiLCBcIkNyZWF0ZU9BdXRoMlRva2VuQ29tbWFuZFwiKVxuICAgIC5zYyhDcmVhdGVPQXV0aDJUb2tlbiQpXG4gICAgLmJ1aWxkKCkge1xufVxuIiwgImltcG9ydCB7IGNyZWF0ZUFnZ3JlZ2F0ZWRDbGllbnQgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyBDcmVhdGVPQXV0aDJUb2tlbkNvbW1hbmQsIH0gZnJvbSBcIi4vY29tbWFuZHMvQ3JlYXRlT0F1dGgyVG9rZW5Db21tYW5kXCI7XG5pbXBvcnQgeyBTaWduaW5DbGllbnQgfSBmcm9tIFwiLi9TaWduaW5DbGllbnRcIjtcbmNvbnN0IGNvbW1hbmRzID0ge1xuICAgIENyZWF0ZU9BdXRoMlRva2VuQ29tbWFuZCxcbn07XG5leHBvcnQgY2xhc3MgU2lnbmluIGV4dGVuZHMgU2lnbmluQ2xpZW50IHtcbn1cbmNyZWF0ZUFnZ3JlZ2F0ZWRDbGllbnQoY29tbWFuZHMsIFNpZ25pbik7XG4iLCAiZXhwb3J0ICogZnJvbSBcIi4vQ3JlYXRlT0F1dGgyVG9rZW5Db21tYW5kXCI7XG4iLCAiZXhwb3J0IGNvbnN0IE9BdXRoMkVycm9yQ29kZSA9IHtcbiAgICBBVVRIQ09ERV9FWFBJUkVEOiBcIkFVVEhDT0RFX0VYUElSRURcIixcbiAgICBJTlNVRkZJQ0lFTlRfUEVSTUlTU0lPTlM6IFwiSU5TVUZGSUNJRU5UX1BFUk1JU1NJT05TXCIsXG4gICAgSU5WQUxJRF9SRVFVRVNUOiBcIklOVkFMSURfUkVRVUVTVFwiLFxuICAgIFNFUlZFUl9FUlJPUjogXCJzZXJ2ZXJfZXJyb3JcIixcbiAgICBUT0tFTl9FWFBJUkVEOiBcIlRPS0VOX0VYUElSRURcIixcbiAgICBVU0VSX0NSRURFTlRJQUxTX0NIQU5HRUQ6IFwiVVNFUl9DUkVERU5USUFMU19DSEFOR0VEXCIsXG59O1xuIiwgImV4cG9ydCB7fTtcbiIsICJleHBvcnQgKiBmcm9tIFwiLi9TaWduaW5DbGllbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL1NpZ25pblwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tbWFuZHNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NjaGVtYXMvc2NoZW1hc18wXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9tb2RlbHMvZW51bXNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21vZGVscy9lcnJvcnNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21vZGVscy9tb2RlbHNfMFwiO1xuZXhwb3J0IHsgU2lnbmluU2VydmljZUV4Y2VwdGlvbiB9IGZyb20gXCIuL21vZGVscy9TaWduaW5TZXJ2aWNlRXhjZXB0aW9uXCI7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgY2xpZW50ID0gcmVxdWlyZSgnQGF3cy1zZGsvY29yZS9jbGllbnQnKTtcbnZhciBwcm9wZXJ0eVByb3ZpZGVyID0gcmVxdWlyZSgnQHNtaXRoeS9wcm9wZXJ0eS1wcm92aWRlcicpO1xudmFyIHNoYXJlZEluaUZpbGVMb2FkZXIgPSByZXF1aXJlKCdAc21pdGh5L3NoYXJlZC1pbmktZmlsZS1sb2FkZXInKTtcbnZhciBwcm90b2NvbEh0dHAgPSByZXF1aXJlKCdAc21pdGh5L3Byb3RvY29sLWh0dHAnKTtcbnZhciBub2RlX2NyeXB0byA9IHJlcXVpcmUoJ25vZGU6Y3J5cHRvJyk7XG52YXIgbm9kZV9mcyA9IHJlcXVpcmUoJ25vZGU6ZnMnKTtcbnZhciBub2RlX29zID0gcmVxdWlyZSgnbm9kZTpvcycpO1xudmFyIG5vZGVfcGF0aCA9IHJlcXVpcmUoJ25vZGU6cGF0aCcpO1xuXG5jbGFzcyBMb2dpbkNyZWRlbnRpYWxzRmV0Y2hlciB7XG4gICAgcHJvZmlsZURhdGE7XG4gICAgaW5pdDtcbiAgICBjYWxsZXJDbGllbnRDb25maWc7XG4gICAgc3RhdGljIFJFRlJFU0hfVEhSRVNIT0xEID0gNSAqIDYwICogMTAwMDtcbiAgICBjb25zdHJ1Y3Rvcihwcm9maWxlRGF0YSwgaW5pdCwgY2FsbGVyQ2xpZW50Q29uZmlnKSB7XG4gICAgICAgIHRoaXMucHJvZmlsZURhdGEgPSBwcm9maWxlRGF0YTtcbiAgICAgICAgdGhpcy5pbml0ID0gaW5pdDtcbiAgICAgICAgdGhpcy5jYWxsZXJDbGllbnRDb25maWcgPSBjYWxsZXJDbGllbnRDb25maWc7XG4gICAgfVxuICAgIGFzeW5jIGxvYWRDcmVkZW50aWFscygpIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSBhd2FpdCB0aGlzLmxvYWRUb2tlbigpO1xuICAgICAgICBpZiAoIXRva2VuKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoYEZhaWxlZCB0byBsb2FkIGEgdG9rZW4gZm9yIHNlc3Npb24gJHt0aGlzLmxvZ2luU2Vzc2lvbn0sIHBsZWFzZSByZS1hdXRoZW50aWNhdGUgdXNpbmcgYXdzIGxvZ2luYCwgeyB0cnlOZXh0TGluazogZmFsc2UsIGxvZ2dlcjogdGhpcy5sb2dnZXIgfSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYWNjZXNzVG9rZW4gPSB0b2tlbi5hY2Nlc3NUb2tlbjtcbiAgICAgICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgICAgICAgY29uc3QgZXhwaXJ5VGltZSA9IG5ldyBEYXRlKGFjY2Vzc1Rva2VuLmV4cGlyZXNBdCkuZ2V0VGltZSgpO1xuICAgICAgICBjb25zdCB0aW1lVW50aWxFeHBpcnkgPSBleHBpcnlUaW1lIC0gbm93O1xuICAgICAgICBpZiAodGltZVVudGlsRXhwaXJ5IDw9IExvZ2luQ3JlZGVudGlhbHNGZXRjaGVyLlJFRlJFU0hfVEhSRVNIT0xEKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yZWZyZXNoKHRva2VuKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgYWNjZXNzS2V5SWQ6IGFjY2Vzc1Rva2VuLmFjY2Vzc0tleUlkLFxuICAgICAgICAgICAgc2VjcmV0QWNjZXNzS2V5OiBhY2Nlc3NUb2tlbi5zZWNyZXRBY2Nlc3NLZXksXG4gICAgICAgICAgICBzZXNzaW9uVG9rZW46IGFjY2Vzc1Rva2VuLnNlc3Npb25Ub2tlbixcbiAgICAgICAgICAgIGFjY291bnRJZDogYWNjZXNzVG9rZW4uYWNjb3VudElkLFxuICAgICAgICAgICAgZXhwaXJhdGlvbjogbmV3IERhdGUoYWNjZXNzVG9rZW4uZXhwaXJlc0F0KSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgZ2V0IGxvZ2dlcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5pdD8ubG9nZ2VyO1xuICAgIH1cbiAgICBnZXQgbG9naW5TZXNzaW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5wcm9maWxlRGF0YS5sb2dpbl9zZXNzaW9uO1xuICAgIH1cbiAgICBhc3luYyByZWZyZXNoKHRva2VuKSB7XG4gICAgICAgIGNvbnN0IHsgU2lnbmluQ2xpZW50LCBDcmVhdGVPQXV0aDJUb2tlbkNvbW1hbmQgfSA9IGF3YWl0IGltcG9ydCgnQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvc2lnbmluJyk7XG4gICAgICAgIGNvbnN0IHsgbG9nZ2VyLCB1c2VyQWdlbnRBcHBJZCB9ID0gdGhpcy5jYWxsZXJDbGllbnRDb25maWcgPz8ge307XG4gICAgICAgIGNvbnN0IGlzSDIgPSAocmVxdWVzdEhhbmRsZXIpID0+IHtcbiAgICAgICAgICAgIHJldHVybiByZXF1ZXN0SGFuZGxlcj8ubWV0YWRhdGE/LmhhbmRsZXJQcm90b2NvbCA9PT0gXCJoMlwiO1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCByZXF1ZXN0SGFuZGxlciA9IGlzSDIodGhpcy5jYWxsZXJDbGllbnRDb25maWc/LnJlcXVlc3RIYW5kbGVyKVxuICAgICAgICAgICAgPyB1bmRlZmluZWRcbiAgICAgICAgICAgIDogdGhpcy5jYWxsZXJDbGllbnRDb25maWc/LnJlcXVlc3RIYW5kbGVyO1xuICAgICAgICBjb25zdCByZWdpb24gPSB0aGlzLnByb2ZpbGVEYXRhLnJlZ2lvbiA/PyAoYXdhaXQgdGhpcy5jYWxsZXJDbGllbnRDb25maWc/LnJlZ2lvbj8uKCkpID8/IHByb2Nlc3MuZW52LkFXU19SRUdJT047XG4gICAgICAgIGNvbnN0IGNsaWVudCA9IG5ldyBTaWduaW5DbGllbnQoe1xuICAgICAgICAgICAgY3JlZGVudGlhbHM6IHtcbiAgICAgICAgICAgICAgICBhY2Nlc3NLZXlJZDogXCJcIixcbiAgICAgICAgICAgICAgICBzZWNyZXRBY2Nlc3NLZXk6IFwiXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVnaW9uLFxuICAgICAgICAgICAgcmVxdWVzdEhhbmRsZXIsXG4gICAgICAgICAgICBsb2dnZXIsXG4gICAgICAgICAgICB1c2VyQWdlbnRBcHBJZCxcbiAgICAgICAgICAgIC4uLnRoaXMuaW5pdD8uY2xpZW50Q29uZmlnLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5jcmVhdGVEUG9QSW50ZXJjZXB0b3IoY2xpZW50Lm1pZGRsZXdhcmVTdGFjayk7XG4gICAgICAgIGNvbnN0IGNvbW1hbmRJbnB1dCA9IHtcbiAgICAgICAgICAgIHRva2VuSW5wdXQ6IHtcbiAgICAgICAgICAgICAgICBjbGllbnRJZDogdG9rZW4uY2xpZW50SWQsXG4gICAgICAgICAgICAgICAgcmVmcmVzaFRva2VuOiB0b2tlbi5yZWZyZXNoVG9rZW4sXG4gICAgICAgICAgICAgICAgZ3JhbnRUeXBlOiBcInJlZnJlc2hfdG9rZW5cIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5zZW5kKG5ldyBDcmVhdGVPQXV0aDJUb2tlbkNvbW1hbmQoY29tbWFuZElucHV0KSk7XG4gICAgICAgICAgICBjb25zdCB7IGFjY2Vzc0tleUlkLCBzZWNyZXRBY2Nlc3NLZXksIHNlc3Npb25Ub2tlbiB9ID0gcmVzcG9uc2UudG9rZW5PdXRwdXQ/LmFjY2Vzc1Rva2VuID8/IHt9O1xuICAgICAgICAgICAgY29uc3QgeyByZWZyZXNoVG9rZW4sIGV4cGlyZXNJbiB9ID0gcmVzcG9uc2UudG9rZW5PdXRwdXQgPz8ge307XG4gICAgICAgICAgICBpZiAoIWFjY2Vzc0tleUlkIHx8ICFzZWNyZXRBY2Nlc3NLZXkgfHwgIXNlc3Npb25Ub2tlbiB8fCAhcmVmcmVzaFRva2VuKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKFwiVG9rZW4gcmVmcmVzaCByZXNwb25zZSBtaXNzaW5nIHJlcXVpcmVkIGZpZWxkc1wiLCB7XG4gICAgICAgICAgICAgICAgICAgIGxvZ2dlcjogdGhpcy5sb2dnZXIsXG4gICAgICAgICAgICAgICAgICAgIHRyeU5leHRMaW5rOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGV4cGlyZXNJbk1zID0gKGV4cGlyZXNJbiA/PyA5MDApICogMTAwMDtcbiAgICAgICAgICAgIGNvbnN0IGV4cGlyYXRpb24gPSBuZXcgRGF0ZShEYXRlLm5vdygpICsgZXhwaXJlc0luTXMpO1xuICAgICAgICAgICAgY29uc3QgdXBkYXRlZFRva2VuID0ge1xuICAgICAgICAgICAgICAgIC4uLnRva2VuLFxuICAgICAgICAgICAgICAgIGFjY2Vzc1Rva2VuOiB7XG4gICAgICAgICAgICAgICAgICAgIC4uLnRva2VuLmFjY2Vzc1Rva2VuLFxuICAgICAgICAgICAgICAgICAgICBhY2Nlc3NLZXlJZDogYWNjZXNzS2V5SWQsXG4gICAgICAgICAgICAgICAgICAgIHNlY3JldEFjY2Vzc0tleTogc2VjcmV0QWNjZXNzS2V5LFxuICAgICAgICAgICAgICAgICAgICBzZXNzaW9uVG9rZW46IHNlc3Npb25Ub2tlbixcbiAgICAgICAgICAgICAgICAgICAgZXhwaXJlc0F0OiBleHBpcmF0aW9uLnRvSVNPU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICByZWZyZXNoVG9rZW46IHJlZnJlc2hUb2tlbixcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBhd2FpdCB0aGlzLnNhdmVUb2tlbih1cGRhdGVkVG9rZW4pO1xuICAgICAgICAgICAgY29uc3QgbmV3QWNjZXNzVG9rZW4gPSB1cGRhdGVkVG9rZW4uYWNjZXNzVG9rZW47XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGFjY2Vzc0tleUlkOiBuZXdBY2Nlc3NUb2tlbi5hY2Nlc3NLZXlJZCxcbiAgICAgICAgICAgICAgICBzZWNyZXRBY2Nlc3NLZXk6IG5ld0FjY2Vzc1Rva2VuLnNlY3JldEFjY2Vzc0tleSxcbiAgICAgICAgICAgICAgICBzZXNzaW9uVG9rZW46IG5ld0FjY2Vzc1Rva2VuLnNlc3Npb25Ub2tlbixcbiAgICAgICAgICAgICAgICBhY2NvdW50SWQ6IG5ld0FjY2Vzc1Rva2VuLmFjY291bnRJZCxcbiAgICAgICAgICAgICAgICBleHBpcmF0aW9uLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGlmIChlcnJvci5uYW1lID09PSBcIkFjY2Vzc0RlbmllZEV4Y2VwdGlvblwiKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZXJyb3JUeXBlID0gZXJyb3IuZXJyb3I7XG4gICAgICAgICAgICAgICAgbGV0IG1lc3NhZ2U7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChlcnJvclR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBcIlRPS0VOX0VYUElSRURcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBcIllvdXIgc2Vzc2lvbiBoYXMgZXhwaXJlZC4gUGxlYXNlIHJlYXV0aGVudGljYXRlLlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgXCJVU0VSX0NSRURFTlRJQUxTX0NIQU5HRURcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVW5hYmxlIHRvIHJlZnJlc2ggY3JlZGVudGlhbHMgYmVjYXVzZSBvZiBhIGNoYW5nZSBpbiB5b3VyIHBhc3N3b3JkLiBQbGVhc2UgcmVhdXRoZW50aWNhdGUgd2l0aCB5b3VyIG5ldyBwYXNzd29yZC5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIFwiSU5TVUZGSUNJRU5UX1BFUk1JU1NJT05TXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlVuYWJsZSB0byByZWZyZXNoIGNyZWRlbnRpYWxzIGR1ZSB0byBpbnN1ZmZpY2llbnQgcGVybWlzc2lvbnMuIFlvdSBtYXkgYmUgbWlzc2luZyBwZXJtaXNzaW9uIGZvciB0aGUgJ0NyZWF0ZU9BdXRoMlRva2VuJyBhY3Rpb24uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBgRmFpbGVkIHRvIHJlZnJlc2ggdG9rZW46ICR7U3RyaW5nKGVycm9yKX0uIFBsZWFzZSByZS1hdXRoZW50aWNhdGUgdXNpbmcgXFxgYXdzIGxvZ2luXFxgYDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKG1lc3NhZ2UsIHsgbG9nZ2VyOiB0aGlzLmxvZ2dlciwgdHJ5TmV4dExpbms6IGZhbHNlIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKGBGYWlsZWQgdG8gcmVmcmVzaCB0b2tlbjogJHtTdHJpbmcoZXJyb3IpfS4gUGxlYXNlIHJlLWF1dGhlbnRpY2F0ZSB1c2luZyBhd3MgbG9naW5gLCB7IGxvZ2dlcjogdGhpcy5sb2dnZXIgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgYXN5bmMgbG9hZFRva2VuKCkge1xuICAgICAgICBjb25zdCB0b2tlbkZpbGVQYXRoID0gdGhpcy5nZXRUb2tlbkZpbGVQYXRoKCk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBsZXQgdG9rZW5EYXRhO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICB0b2tlbkRhdGEgPSBhd2FpdCBzaGFyZWRJbmlGaWxlTG9hZGVyLnJlYWRGaWxlKHRva2VuRmlsZVBhdGgsIHsgaWdub3JlQ2FjaGU6IHRoaXMuaW5pdD8uaWdub3JlQ2FjaGUgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCB7XG4gICAgICAgICAgICAgICAgdG9rZW5EYXRhID0gYXdhaXQgbm9kZV9mcy5wcm9taXNlcy5yZWFkRmlsZSh0b2tlbkZpbGVQYXRoLCBcInV0ZjhcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCB0b2tlbiA9IEpTT04ucGFyc2UodG9rZW5EYXRhKTtcbiAgICAgICAgICAgIGNvbnN0IG1pc3NpbmdGaWVsZHMgPSBbXCJhY2Nlc3NUb2tlblwiLCBcImNsaWVudElkXCIsIFwicmVmcmVzaFRva2VuXCIsIFwiZHBvcEtleVwiXS5maWx0ZXIoKGspID0+ICF0b2tlbltrXSk7XG4gICAgICAgICAgICBpZiAoIXRva2VuLmFjY2Vzc1Rva2VuPy5hY2NvdW50SWQpIHtcbiAgICAgICAgICAgICAgICBtaXNzaW5nRmllbGRzLnB1c2goXCJhY2NvdW50SWRcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobWlzc2luZ0ZpZWxkcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKGBUb2tlbiB2YWxpZGF0aW9uIGZhaWxlZCwgbWlzc2luZyBmaWVsZHM6ICR7bWlzc2luZ0ZpZWxkcy5qb2luKFwiLCBcIil9YCwge1xuICAgICAgICAgICAgICAgICAgICBsb2dnZXI6IHRoaXMubG9nZ2VyLFxuICAgICAgICAgICAgICAgICAgICB0cnlOZXh0TGluazogZmFsc2UsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdG9rZW47XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoYEZhaWxlZCB0byBsb2FkIHRva2VuIGZyb20gJHt0b2tlbkZpbGVQYXRofTogJHtTdHJpbmcoZXJyb3IpfWAsIHtcbiAgICAgICAgICAgICAgICBsb2dnZXI6IHRoaXMubG9nZ2VyLFxuICAgICAgICAgICAgICAgIHRyeU5leHRMaW5rOiBmYWxzZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIGFzeW5jIHNhdmVUb2tlbih0b2tlbikge1xuICAgICAgICBjb25zdCB0b2tlbkZpbGVQYXRoID0gdGhpcy5nZXRUb2tlbkZpbGVQYXRoKCk7XG4gICAgICAgIGNvbnN0IGRpcmVjdG9yeSA9IG5vZGVfcGF0aC5kaXJuYW1lKHRva2VuRmlsZVBhdGgpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgYXdhaXQgbm9kZV9mcy5wcm9taXNlcy5ta2RpcihkaXJlY3RvcnksIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICB9XG4gICAgICAgIGF3YWl0IG5vZGVfZnMucHJvbWlzZXMud3JpdGVGaWxlKHRva2VuRmlsZVBhdGgsIEpTT04uc3RyaW5naWZ5KHRva2VuLCBudWxsLCAyKSwgXCJ1dGY4XCIpO1xuICAgIH1cbiAgICBnZXRUb2tlbkZpbGVQYXRoKCkge1xuICAgICAgICBjb25zdCBkaXJlY3RvcnkgPSBwcm9jZXNzLmVudi5BV1NfTE9HSU5fQ0FDSEVfRElSRUNUT1JZID8/IG5vZGVfcGF0aC5qb2luKG5vZGVfb3MuaG9tZWRpcigpLCBcIi5hd3NcIiwgXCJsb2dpblwiLCBcImNhY2hlXCIpO1xuICAgICAgICBjb25zdCBsb2dpblNlc3Npb25CeXRlcyA9IEJ1ZmZlci5mcm9tKHRoaXMubG9naW5TZXNzaW9uLCBcInV0ZjhcIik7XG4gICAgICAgIGNvbnN0IGxvZ2luU2Vzc2lvblNoYTI1NiA9IG5vZGVfY3J5cHRvLmNyZWF0ZUhhc2goXCJzaGEyNTZcIikudXBkYXRlKGxvZ2luU2Vzc2lvbkJ5dGVzKS5kaWdlc3QoXCJoZXhcIik7XG4gICAgICAgIHJldHVybiBub2RlX3BhdGguam9pbihkaXJlY3RvcnksIGAke2xvZ2luU2Vzc2lvblNoYTI1Nn0uanNvbmApO1xuICAgIH1cbiAgICBkZXJUb1Jhd1NpZ25hdHVyZShkZXJTaWduYXR1cmUpIHtcbiAgICAgICAgbGV0IG9mZnNldCA9IDI7XG4gICAgICAgIGlmIChkZXJTaWduYXR1cmVbb2Zmc2V0XSAhPT0gMHgwMikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBERVIgc2lnbmF0dXJlXCIpO1xuICAgICAgICB9XG4gICAgICAgIG9mZnNldCsrO1xuICAgICAgICBjb25zdCByTGVuZ3RoID0gZGVyU2lnbmF0dXJlW29mZnNldCsrXTtcbiAgICAgICAgbGV0IHIgPSBkZXJTaWduYXR1cmUuc3ViYXJyYXkob2Zmc2V0LCBvZmZzZXQgKyByTGVuZ3RoKTtcbiAgICAgICAgb2Zmc2V0ICs9IHJMZW5ndGg7XG4gICAgICAgIGlmIChkZXJTaWduYXR1cmVbb2Zmc2V0XSAhPT0gMHgwMikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBERVIgc2lnbmF0dXJlXCIpO1xuICAgICAgICB9XG4gICAgICAgIG9mZnNldCsrO1xuICAgICAgICBjb25zdCBzTGVuZ3RoID0gZGVyU2lnbmF0dXJlW29mZnNldCsrXTtcbiAgICAgICAgbGV0IHMgPSBkZXJTaWduYXR1cmUuc3ViYXJyYXkob2Zmc2V0LCBvZmZzZXQgKyBzTGVuZ3RoKTtcbiAgICAgICAgciA9IHJbMF0gPT09IDB4MDAgPyByLnN1YmFycmF5KDEpIDogcjtcbiAgICAgICAgcyA9IHNbMF0gPT09IDB4MDAgPyBzLnN1YmFycmF5KDEpIDogcztcbiAgICAgICAgY29uc3QgclBhZGRlZCA9IEJ1ZmZlci5jb25jYXQoW0J1ZmZlci5hbGxvYygzMiAtIHIubGVuZ3RoKSwgcl0pO1xuICAgICAgICBjb25zdCBzUGFkZGVkID0gQnVmZmVyLmNvbmNhdChbQnVmZmVyLmFsbG9jKDMyIC0gcy5sZW5ndGgpLCBzXSk7XG4gICAgICAgIHJldHVybiBCdWZmZXIuY29uY2F0KFtyUGFkZGVkLCBzUGFkZGVkXSk7XG4gICAgfVxuICAgIGNyZWF0ZURQb1BJbnRlcmNlcHRvcihtaWRkbGV3YXJlU3RhY2spIHtcbiAgICAgICAgbWlkZGxld2FyZVN0YWNrLmFkZCgobmV4dCkgPT4gYXN5bmMgKGFyZ3MpID0+IHtcbiAgICAgICAgICAgIGlmIChwcm90b2NvbEh0dHAuSHR0cFJlcXVlc3QuaXNJbnN0YW5jZShhcmdzLnJlcXVlc3QpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdCA9IGFyZ3MucmVxdWVzdDtcbiAgICAgICAgICAgICAgICBjb25zdCBhY3R1YWxFbmRwb2ludCA9IGAke3JlcXVlc3QucHJvdG9jb2x9Ly8ke3JlcXVlc3QuaG9zdG5hbWV9JHtyZXF1ZXN0LnBvcnQgPyBgOiR7cmVxdWVzdC5wb3J0fWAgOiBcIlwifSR7cmVxdWVzdC5wYXRofWA7XG4gICAgICAgICAgICAgICAgY29uc3QgZHBvcCA9IGF3YWl0IHRoaXMuZ2VuZXJhdGVEcG9wKHJlcXVlc3QubWV0aG9kLCBhY3R1YWxFbmRwb2ludCk7XG4gICAgICAgICAgICAgICAgcmVxdWVzdC5oZWFkZXJzID0ge1xuICAgICAgICAgICAgICAgICAgICAuLi5yZXF1ZXN0LmhlYWRlcnMsXG4gICAgICAgICAgICAgICAgICAgIERQb1A6IGRwb3AsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBuZXh0KGFyZ3MpO1xuICAgICAgICB9LCB7XG4gICAgICAgICAgICBzdGVwOiBcImZpbmFsaXplUmVxdWVzdFwiLFxuICAgICAgICAgICAgbmFtZTogXCJkcG9wSW50ZXJjZXB0b3JcIixcbiAgICAgICAgICAgIG92ZXJyaWRlOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgYXN5bmMgZ2VuZXJhdGVEcG9wKG1ldGhvZCA9IFwiUE9TVFwiLCBlbmRwb2ludCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IGF3YWl0IHRoaXMubG9hZFRva2VuKCk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBwcml2YXRlS2V5ID0gbm9kZV9jcnlwdG8uY3JlYXRlUHJpdmF0ZUtleSh7XG4gICAgICAgICAgICAgICAga2V5OiB0b2tlbi5kcG9wS2V5LFxuICAgICAgICAgICAgICAgIGZvcm1hdDogXCJwZW1cIixcbiAgICAgICAgICAgICAgICB0eXBlOiBcInNlYzFcIixcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29uc3QgcHVibGljS2V5ID0gbm9kZV9jcnlwdG8uY3JlYXRlUHVibGljS2V5KHByaXZhdGVLZXkpO1xuICAgICAgICAgICAgY29uc3QgcHVibGljRGVyID0gcHVibGljS2V5LmV4cG9ydCh7IGZvcm1hdDogXCJkZXJcIiwgdHlwZTogXCJzcGtpXCIgfSk7XG4gICAgICAgICAgICBsZXQgcG9pbnRTdGFydCA9IC0xO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwdWJsaWNEZXIubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBpZiAocHVibGljRGVyW2ldID09PSAweDA0KSB7XG4gICAgICAgICAgICAgICAgICAgIHBvaW50U3RhcnQgPSBpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCB4ID0gcHVibGljRGVyLnNsaWNlKHBvaW50U3RhcnQgKyAxLCBwb2ludFN0YXJ0ICsgMzMpO1xuICAgICAgICAgICAgY29uc3QgeSA9IHB1YmxpY0Rlci5zbGljZShwb2ludFN0YXJ0ICsgMzMsIHBvaW50U3RhcnQgKyA2NSk7XG4gICAgICAgICAgICBjb25zdCBoZWFkZXIgPSB7XG4gICAgICAgICAgICAgICAgYWxnOiBcIkVTMjU2XCIsXG4gICAgICAgICAgICAgICAgdHlwOiBcImRwb3Arand0XCIsXG4gICAgICAgICAgICAgICAgandrOiB7XG4gICAgICAgICAgICAgICAgICAgIGt0eTogXCJFQ1wiLFxuICAgICAgICAgICAgICAgICAgICBjcnY6IFwiUC0yNTZcIixcbiAgICAgICAgICAgICAgICAgICAgeDogeC50b1N0cmluZyhcImJhc2U2NHVybFwiKSxcbiAgICAgICAgICAgICAgICAgICAgeTogeS50b1N0cmluZyhcImJhc2U2NHVybFwiKSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGNvbnN0IHBheWxvYWQgPSB7XG4gICAgICAgICAgICAgICAganRpOiBjcnlwdG8ucmFuZG9tVVVJRCgpLFxuICAgICAgICAgICAgICAgIGh0bTogbWV0aG9kLFxuICAgICAgICAgICAgICAgIGh0dTogZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgaWF0OiBNYXRoLmZsb29yKERhdGUubm93KCkgLyAxMDAwKSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBjb25zdCBoZWFkZXJCNjQgPSBCdWZmZXIuZnJvbShKU09OLnN0cmluZ2lmeShoZWFkZXIpKS50b1N0cmluZyhcImJhc2U2NHVybFwiKTtcbiAgICAgICAgICAgIGNvbnN0IHBheWxvYWRCNjQgPSBCdWZmZXIuZnJvbShKU09OLnN0cmluZ2lmeShwYXlsb2FkKSkudG9TdHJpbmcoXCJiYXNlNjR1cmxcIik7XG4gICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gYCR7aGVhZGVyQjY0fS4ke3BheWxvYWRCNjR9YDtcbiAgICAgICAgICAgIGNvbnN0IGFzbjFTaWduYXR1cmUgPSBub2RlX2NyeXB0by5zaWduKFwic2hhMjU2XCIsIEJ1ZmZlci5mcm9tKG1lc3NhZ2UpLCBwcml2YXRlS2V5KTtcbiAgICAgICAgICAgIGNvbnN0IHJhd1NpZ25hdHVyZSA9IHRoaXMuZGVyVG9SYXdTaWduYXR1cmUoYXNuMVNpZ25hdHVyZSk7XG4gICAgICAgICAgICBjb25zdCBzaWduYXR1cmVCNjQgPSByYXdTaWduYXR1cmUudG9TdHJpbmcoXCJiYXNlNjR1cmxcIik7XG4gICAgICAgICAgICByZXR1cm4gYCR7bWVzc2FnZX0uJHtzaWduYXR1cmVCNjR9YDtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLkNyZWRlbnRpYWxzUHJvdmlkZXJFcnJvcihgRmFpbGVkIHRvIGdlbmVyYXRlIERwb3AgcHJvb2Y6ICR7ZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiBTdHJpbmcoZXJyb3IpfWAsIHsgbG9nZ2VyOiB0aGlzLmxvZ2dlciwgdHJ5TmV4dExpbms6IGZhbHNlIH0pO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5jb25zdCBmcm9tTG9naW5DcmVkZW50aWFscyA9IChpbml0KSA9PiBhc3luYyAoeyBjYWxsZXJDbGllbnRDb25maWcgfSA9IHt9KSA9PiB7XG4gICAgaW5pdD8ubG9nZ2VyPy5kZWJ1Zz8uKFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlcnMgLSBmcm9tTG9naW5DcmVkZW50aWFsc1wiKTtcbiAgICBjb25zdCBwcm9maWxlcyA9IGF3YWl0IHNoYXJlZEluaUZpbGVMb2FkZXIucGFyc2VLbm93bkZpbGVzKGluaXQgfHwge30pO1xuICAgIGNvbnN0IHByb2ZpbGVOYW1lID0gc2hhcmVkSW5pRmlsZUxvYWRlci5nZXRQcm9maWxlTmFtZSh7XG4gICAgICAgIHByb2ZpbGU6IGluaXQ/LnByb2ZpbGUgPz8gY2FsbGVyQ2xpZW50Q29uZmlnPy5wcm9maWxlLFxuICAgIH0pO1xuICAgIGNvbnN0IHByb2ZpbGUgPSBwcm9maWxlc1twcm9maWxlTmFtZV07XG4gICAgaWYgKCFwcm9maWxlPy5sb2dpbl9zZXNzaW9uKSB7XG4gICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLkNyZWRlbnRpYWxzUHJvdmlkZXJFcnJvcihgUHJvZmlsZSAke3Byb2ZpbGVOYW1lfSBkb2VzIG5vdCBjb250YWluIGxvZ2luX3Nlc3Npb24uYCwge1xuICAgICAgICAgICAgdHJ5TmV4dExpbms6IHRydWUsXG4gICAgICAgICAgICBsb2dnZXI6IGluaXQ/LmxvZ2dlcixcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IGZldGNoZXIgPSBuZXcgTG9naW5DcmVkZW50aWFsc0ZldGNoZXIocHJvZmlsZSwgaW5pdCwgY2FsbGVyQ2xpZW50Q29uZmlnKTtcbiAgICBjb25zdCBjcmVkZW50aWFscyA9IGF3YWl0IGZldGNoZXIubG9hZENyZWRlbnRpYWxzKCk7XG4gICAgcmV0dXJuIGNsaWVudC5zZXRDcmVkZW50aWFsRmVhdHVyZShjcmVkZW50aWFscywgXCJDUkVERU5USUFMU19MT0dJTlwiLCBcIkFEXCIpO1xufTtcblxuZXhwb3J0cy5mcm9tTG9naW5DcmVkZW50aWFscyA9IGZyb21Mb2dpbkNyZWRlbnRpYWxzO1xuIiwgImltcG9ydCB7IHJlc29sdmVBd3NTZGtTaWdWNENvbmZpZyB9IGZyb20gXCJAYXdzLXNkay9jb3JlXCI7XG5pbXBvcnQgeyBnZXRTbWl0aHlDb250ZXh0LCBub3JtYWxpemVQcm92aWRlciB9IGZyb20gXCJAc21pdGh5L3V0aWwtbWlkZGxld2FyZVwiO1xuaW1wb3J0IHsgU1RTQ2xpZW50IH0gZnJvbSBcIi4uL1NUU0NsaWVudFwiO1xuZXhwb3J0IGNvbnN0IGRlZmF1bHRTVFNIdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlciA9IGFzeW5jIChjb25maWcsIGNvbnRleHQsIGlucHV0KSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgb3BlcmF0aW9uOiBnZXRTbWl0aHlDb250ZXh0KGNvbnRleHQpLm9wZXJhdGlvbixcbiAgICAgICAgcmVnaW9uOiAoYXdhaXQgbm9ybWFsaXplUHJvdmlkZXIoY29uZmlnLnJlZ2lvbikoKSkgfHxcbiAgICAgICAgICAgICgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiZXhwZWN0ZWQgYHJlZ2lvbmAgdG8gYmUgY29uZmlndXJlZCBmb3IgYGF3cy5hdXRoI3NpZ3Y0YFwiKTtcbiAgICAgICAgICAgIH0pKCksXG4gICAgfTtcbn07XG5mdW5jdGlvbiBjcmVhdGVBd3NBdXRoU2lndjRIdHRwQXV0aE9wdGlvbihhdXRoUGFyYW1ldGVycykge1xuICAgIHJldHVybiB7XG4gICAgICAgIHNjaGVtZUlkOiBcImF3cy5hdXRoI3NpZ3Y0XCIsXG4gICAgICAgIHNpZ25pbmdQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICBuYW1lOiBcInN0c1wiLFxuICAgICAgICAgICAgcmVnaW9uOiBhdXRoUGFyYW1ldGVycy5yZWdpb24sXG4gICAgICAgIH0sXG4gICAgICAgIHByb3BlcnRpZXNFeHRyYWN0b3I6IChjb25maWcsIGNvbnRleHQpID0+ICh7XG4gICAgICAgICAgICBzaWduaW5nUHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgIGNvbmZpZyxcbiAgICAgICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgfTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVNtaXRoeUFwaU5vQXV0aEh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc2NoZW1lSWQ6IFwic21pdGh5LmFwaSNub0F1dGhcIixcbiAgICB9O1xufVxuZXhwb3J0IGNvbnN0IGRlZmF1bHRTVFNIdHRwQXV0aFNjaGVtZVByb3ZpZGVyID0gKGF1dGhQYXJhbWV0ZXJzKSA9PiB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IFtdO1xuICAgIHN3aXRjaCAoYXV0aFBhcmFtZXRlcnMub3BlcmF0aW9uKSB7XG4gICAgICAgIGNhc2UgXCJBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5XCI6IHtcbiAgICAgICAgICAgIG9wdGlvbnMucHVzaChjcmVhdGVTbWl0aHlBcGlOb0F1dGhIdHRwQXV0aE9wdGlvbihhdXRoUGFyYW1ldGVycykpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgb3B0aW9ucy5wdXNoKGNyZWF0ZUF3c0F1dGhTaWd2NEh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG9wdGlvbnM7XG59O1xuZXhwb3J0IGNvbnN0IHJlc29sdmVTdHNBdXRoQ29uZmlnID0gKGlucHV0KSA9PiBPYmplY3QuYXNzaWduKGlucHV0LCB7XG4gICAgc3RzQ2xpZW50Q3RvcjogU1RTQ2xpZW50LFxufSk7XG5leHBvcnQgY29uc3QgcmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIGNvbnN0IGNvbmZpZ18wID0gcmVzb2x2ZVN0c0F1dGhDb25maWcoY29uZmlnKTtcbiAgICBjb25zdCBjb25maWdfMSA9IHJlc29sdmVBd3NTZGtTaWdWNENvbmZpZyhjb25maWdfMCk7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oY29uZmlnXzEsIHtcbiAgICAgICAgYXV0aFNjaGVtZVByZWZlcmVuY2U6IG5vcm1hbGl6ZVByb3ZpZGVyKGNvbmZpZy5hdXRoU2NoZW1lUHJlZmVyZW5jZSA/PyBbXSksXG4gICAgfSk7XG59O1xuIiwgImV4cG9ydCBjb25zdCByZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzID0gKG9wdGlvbnMpID0+IHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihvcHRpb25zLCB7XG4gICAgICAgIHVzZUR1YWxzdGFja0VuZHBvaW50OiBvcHRpb25zLnVzZUR1YWxzdGFja0VuZHBvaW50ID8/IGZhbHNlLFxuICAgICAgICB1c2VGaXBzRW5kcG9pbnQ6IG9wdGlvbnMudXNlRmlwc0VuZHBvaW50ID8/IGZhbHNlLFxuICAgICAgICB1c2VHbG9iYWxFbmRwb2ludDogb3B0aW9ucy51c2VHbG9iYWxFbmRwb2ludCA/PyBmYWxzZSxcbiAgICAgICAgZGVmYXVsdFNpZ25pbmdOYW1lOiBcInN0c1wiLFxuICAgIH0pO1xufTtcbmV4cG9ydCBjb25zdCBjb21tb25QYXJhbXMgPSB7XG4gICAgVXNlR2xvYmFsRW5kcG9pbnQ6IHsgdHlwZTogXCJidWlsdEluUGFyYW1zXCIsIG5hbWU6IFwidXNlR2xvYmFsRW5kcG9pbnRcIiB9LFxuICAgIFVzZUZJUFM6IHsgdHlwZTogXCJidWlsdEluUGFyYW1zXCIsIG5hbWU6IFwidXNlRmlwc0VuZHBvaW50XCIgfSxcbiAgICBFbmRwb2ludDogeyB0eXBlOiBcImJ1aWx0SW5QYXJhbXNcIiwgbmFtZTogXCJlbmRwb2ludFwiIH0sXG4gICAgUmVnaW9uOiB7IHR5cGU6IFwiYnVpbHRJblBhcmFtc1wiLCBuYW1lOiBcInJlZ2lvblwiIH0sXG4gICAgVXNlRHVhbFN0YWNrOiB7IHR5cGU6IFwiYnVpbHRJblBhcmFtc1wiLCBuYW1lOiBcInVzZUR1YWxzdGFja0VuZHBvaW50XCIgfSxcbn07XG4iLCAiY29uc3QgRiA9IFwicmVxdWlyZWRcIiwgRyA9IFwidHlwZVwiLCBIID0gXCJmblwiLCBJID0gXCJhcmd2XCIsIEogPSBcInJlZlwiO1xuY29uc3QgYSA9IGZhbHNlLCBiID0gdHJ1ZSwgYyA9IFwiYm9vbGVhbkVxdWFsc1wiLCBkID0gXCJzdHJpbmdFcXVhbHNcIiwgZSA9IFwic2lndjRcIiwgZiA9IFwic3RzXCIsIGcgPSBcInVzLWVhc3QtMVwiLCBoID0gXCJlbmRwb2ludFwiLCBpID0gXCJodHRwczovL3N0cy57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH1cIiwgaiA9IFwidHJlZVwiLCBrID0gXCJlcnJvclwiLCBsID0gXCJnZXRBdHRyXCIsIG0gPSB7IFtGXTogZmFsc2UsIFtHXTogXCJzdHJpbmdcIiB9LCBuID0geyBbRl06IHRydWUsIFwiZGVmYXVsdFwiOiBmYWxzZSwgW0ddOiBcImJvb2xlYW5cIiB9LCBvID0geyBbSl06IFwiRW5kcG9pbnRcIiB9LCBwID0geyBbSF06IFwiaXNTZXRcIiwgW0ldOiBbeyBbSl06IFwiUmVnaW9uXCIgfV0gfSwgcSA9IHsgW0pdOiBcIlJlZ2lvblwiIH0sIHIgPSB7IFtIXTogXCJhd3MucGFydGl0aW9uXCIsIFtJXTogW3FdLCBcImFzc2lnblwiOiBcIlBhcnRpdGlvblJlc3VsdFwiIH0sIHMgPSB7IFtKXTogXCJVc2VGSVBTXCIgfSwgdCA9IHsgW0pdOiBcIlVzZUR1YWxTdGFja1wiIH0sIHUgPSB7IFwidXJsXCI6IFwiaHR0cHM6Ly9zdHMuYW1hem9uYXdzLmNvbVwiLCBcInByb3BlcnRpZXNcIjogeyBcImF1dGhTY2hlbWVzXCI6IFt7IFwibmFtZVwiOiBlLCBcInNpZ25pbmdOYW1lXCI6IGYsIFwic2lnbmluZ1JlZ2lvblwiOiBnIH1dIH0sIFwiaGVhZGVyc1wiOiB7fSB9LCB2ID0ge30sIHcgPSB7IFwiY29uZGl0aW9uc1wiOiBbeyBbSF06IGQsIFtJXTogW3EsIFwiYXdzLWdsb2JhbFwiXSB9XSwgW2hdOiB1LCBbR106IGggfSwgeCA9IHsgW0hdOiBjLCBbSV06IFtzLCB0cnVlXSB9LCB5ID0geyBbSF06IGMsIFtJXTogW3QsIHRydWVdIH0sIHogPSB7IFtIXTogbCwgW0ldOiBbeyBbSl06IFwiUGFydGl0aW9uUmVzdWx0XCIgfSwgXCJzdXBwb3J0c0ZJUFNcIl0gfSwgQSA9IHsgW0pdOiBcIlBhcnRpdGlvblJlc3VsdFwiIH0sIEIgPSB7IFtIXTogYywgW0ldOiBbdHJ1ZSwgeyBbSF06IGwsIFtJXTogW0EsIFwic3VwcG9ydHNEdWFsU3RhY2tcIl0gfV0gfSwgQyA9IFt7IFtIXTogXCJpc1NldFwiLCBbSV06IFtvXSB9XSwgRCA9IFt4XSwgRSA9IFt5XTtcbmNvbnN0IF9kYXRhID0geyB2ZXJzaW9uOiBcIjEuMFwiLCBwYXJhbWV0ZXJzOiB7IFJlZ2lvbjogbSwgVXNlRHVhbFN0YWNrOiBuLCBVc2VGSVBTOiBuLCBFbmRwb2ludDogbSwgVXNlR2xvYmFsRW5kcG9pbnQ6IG4gfSwgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IFt7IFtIXTogYywgW0ldOiBbeyBbSl06IFwiVXNlR2xvYmFsRW5kcG9pbnRcIiB9LCBiXSB9LCB7IFtIXTogXCJub3RcIiwgW0ldOiBDIH0sIHAsIHIsIHsgW0hdOiBjLCBbSV06IFtzLCBhXSB9LCB7IFtIXTogYywgW0ldOiBbdCwgYV0gfV0sIHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbeyBbSF06IGQsIFtJXTogW3EsIFwiYXAtbm9ydGhlYXN0LTFcIl0gfV0sIGVuZHBvaW50OiB1LCBbR106IGggfSwgeyBjb25kaXRpb25zOiBbeyBbSF06IGQsIFtJXTogW3EsIFwiYXAtc291dGgtMVwiXSB9XSwgZW5kcG9pbnQ6IHUsIFtHXTogaCB9LCB7IGNvbmRpdGlvbnM6IFt7IFtIXTogZCwgW0ldOiBbcSwgXCJhcC1zb3V0aGVhc3QtMVwiXSB9XSwgZW5kcG9pbnQ6IHUsIFtHXTogaCB9LCB7IGNvbmRpdGlvbnM6IFt7IFtIXTogZCwgW0ldOiBbcSwgXCJhcC1zb3V0aGVhc3QtMlwiXSB9XSwgZW5kcG9pbnQ6IHUsIFtHXTogaCB9LCB3LCB7IGNvbmRpdGlvbnM6IFt7IFtIXTogZCwgW0ldOiBbcSwgXCJjYS1jZW50cmFsLTFcIl0gfV0sIGVuZHBvaW50OiB1LCBbR106IGggfSwgeyBjb25kaXRpb25zOiBbeyBbSF06IGQsIFtJXTogW3EsIFwiZXUtY2VudHJhbC0xXCJdIH1dLCBlbmRwb2ludDogdSwgW0ddOiBoIH0sIHsgY29uZGl0aW9uczogW3sgW0hdOiBkLCBbSV06IFtxLCBcImV1LW5vcnRoLTFcIl0gfV0sIGVuZHBvaW50OiB1LCBbR106IGggfSwgeyBjb25kaXRpb25zOiBbeyBbSF06IGQsIFtJXTogW3EsIFwiZXUtd2VzdC0xXCJdIH1dLCBlbmRwb2ludDogdSwgW0ddOiBoIH0sIHsgY29uZGl0aW9uczogW3sgW0hdOiBkLCBbSV06IFtxLCBcImV1LXdlc3QtMlwiXSB9XSwgZW5kcG9pbnQ6IHUsIFtHXTogaCB9LCB7IGNvbmRpdGlvbnM6IFt7IFtIXTogZCwgW0ldOiBbcSwgXCJldS13ZXN0LTNcIl0gfV0sIGVuZHBvaW50OiB1LCBbR106IGggfSwgeyBjb25kaXRpb25zOiBbeyBbSF06IGQsIFtJXTogW3EsIFwic2EtZWFzdC0xXCJdIH1dLCBlbmRwb2ludDogdSwgW0ddOiBoIH0sIHsgY29uZGl0aW9uczogW3sgW0hdOiBkLCBbSV06IFtxLCBnXSB9XSwgZW5kcG9pbnQ6IHUsIFtHXTogaCB9LCB7IGNvbmRpdGlvbnM6IFt7IFtIXTogZCwgW0ldOiBbcSwgXCJ1cy1lYXN0LTJcIl0gfV0sIGVuZHBvaW50OiB1LCBbR106IGggfSwgeyBjb25kaXRpb25zOiBbeyBbSF06IGQsIFtJXTogW3EsIFwidXMtd2VzdC0xXCJdIH1dLCBlbmRwb2ludDogdSwgW0ddOiBoIH0sIHsgY29uZGl0aW9uczogW3sgW0hdOiBkLCBbSV06IFtxLCBcInVzLXdlc3QtMlwiXSB9XSwgZW5kcG9pbnQ6IHUsIFtHXTogaCB9LCB7IGVuZHBvaW50OiB7IHVybDogaSwgcHJvcGVydGllczogeyBhdXRoU2NoZW1lczogW3sgbmFtZTogZSwgc2lnbmluZ05hbWU6IGYsIHNpZ25pbmdSZWdpb246IFwie1JlZ2lvbn1cIiB9XSB9LCBoZWFkZXJzOiB2IH0sIFtHXTogaCB9XSwgW0ddOiBqIH0sIHsgY29uZGl0aW9uczogQywgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IEQsIGVycm9yOiBcIkludmFsaWQgQ29uZmlndXJhdGlvbjogRklQUyBhbmQgY3VzdG9tIGVuZHBvaW50IGFyZSBub3Qgc3VwcG9ydGVkXCIsIFtHXTogayB9LCB7IGNvbmRpdGlvbnM6IEUsIGVycm9yOiBcIkludmFsaWQgQ29uZmlndXJhdGlvbjogRHVhbHN0YWNrIGFuZCBjdXN0b20gZW5kcG9pbnQgYXJlIG5vdCBzdXBwb3J0ZWRcIiwgW0ddOiBrIH0sIHsgZW5kcG9pbnQ6IHsgdXJsOiBvLCBwcm9wZXJ0aWVzOiB2LCBoZWFkZXJzOiB2IH0sIFtHXTogaCB9XSwgW0ddOiBqIH0sIHsgY29uZGl0aW9uczogW3BdLCBydWxlczogW3sgY29uZGl0aW9uczogW3JdLCBydWxlczogW3sgY29uZGl0aW9uczogW3gsIHldLCBydWxlczogW3sgY29uZGl0aW9uczogW3sgW0hdOiBjLCBbSV06IFtiLCB6XSB9LCBCXSwgcnVsZXM6IFt7IGVuZHBvaW50OiB7IHVybDogXCJodHRwczovL3N0cy1maXBzLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZHVhbFN0YWNrRG5zU3VmZml4fVwiLCBwcm9wZXJ0aWVzOiB2LCBoZWFkZXJzOiB2IH0sIFtHXTogaCB9XSwgW0ddOiBqIH0sIHsgZXJyb3I6IFwiRklQUyBhbmQgRHVhbFN0YWNrIGFyZSBlbmFibGVkLCBidXQgdGhpcyBwYXJ0aXRpb24gZG9lcyBub3Qgc3VwcG9ydCBvbmUgb3IgYm90aFwiLCBbR106IGsgfV0sIFtHXTogaiB9LCB7IGNvbmRpdGlvbnM6IEQsIHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbeyBbSF06IGMsIFtJXTogW3osIGJdIH1dLCBydWxlczogW3sgY29uZGl0aW9uczogW3sgW0hdOiBkLCBbSV06IFt7IFtIXTogbCwgW0ldOiBbQSwgXCJuYW1lXCJdIH0sIFwiYXdzLXVzLWdvdlwiXSB9XSwgZW5kcG9pbnQ6IHsgdXJsOiBcImh0dHBzOi8vc3RzLntSZWdpb259LmFtYXpvbmF3cy5jb21cIiwgcHJvcGVydGllczogdiwgaGVhZGVyczogdiB9LCBbR106IGggfSwgeyBlbmRwb2ludDogeyB1cmw6IFwiaHR0cHM6Ly9zdHMtZmlwcy57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH1cIiwgcHJvcGVydGllczogdiwgaGVhZGVyczogdiB9LCBbR106IGggfV0sIFtHXTogaiB9LCB7IGVycm9yOiBcIkZJUFMgaXMgZW5hYmxlZCBidXQgdGhpcyBwYXJ0aXRpb24gZG9lcyBub3Qgc3VwcG9ydCBGSVBTXCIsIFtHXTogayB9XSwgW0ddOiBqIH0sIHsgY29uZGl0aW9uczogRSwgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IFtCXSwgcnVsZXM6IFt7IGVuZHBvaW50OiB7IHVybDogXCJodHRwczovL3N0cy57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2R1YWxTdGFja0Ruc1N1ZmZpeH1cIiwgcHJvcGVydGllczogdiwgaGVhZGVyczogdiB9LCBbR106IGggfV0sIFtHXTogaiB9LCB7IGVycm9yOiBcIkR1YWxTdGFjayBpcyBlbmFibGVkIGJ1dCB0aGlzIHBhcnRpdGlvbiBkb2VzIG5vdCBzdXBwb3J0IER1YWxTdGFja1wiLCBbR106IGsgfV0sIFtHXTogaiB9LCB3LCB7IGVuZHBvaW50OiB7IHVybDogaSwgcHJvcGVydGllczogdiwgaGVhZGVyczogdiB9LCBbR106IGggfV0sIFtHXTogaiB9XSwgW0ddOiBqIH0sIHsgZXJyb3I6IFwiSW52YWxpZCBDb25maWd1cmF0aW9uOiBNaXNzaW5nIFJlZ2lvblwiLCBbR106IGsgfV0gfTtcbmV4cG9ydCBjb25zdCBydWxlU2V0ID0gX2RhdGE7XG4iLCAiaW1wb3J0IHsgYXdzRW5kcG9pbnRGdW5jdGlvbnMgfSBmcm9tIFwiQGF3cy1zZGsvdXRpbC1lbmRwb2ludHNcIjtcbmltcG9ydCB7IGN1c3RvbUVuZHBvaW50RnVuY3Rpb25zLCBFbmRwb2ludENhY2hlLCByZXNvbHZlRW5kcG9pbnQgfSBmcm9tIFwiQHNtaXRoeS91dGlsLWVuZHBvaW50c1wiO1xuaW1wb3J0IHsgcnVsZVNldCB9IGZyb20gXCIuL3J1bGVzZXRcIjtcbmNvbnN0IGNhY2hlID0gbmV3IEVuZHBvaW50Q2FjaGUoe1xuICAgIHNpemU6IDUwLFxuICAgIHBhcmFtczogW1wiRW5kcG9pbnRcIiwgXCJSZWdpb25cIiwgXCJVc2VEdWFsU3RhY2tcIiwgXCJVc2VGSVBTXCIsIFwiVXNlR2xvYmFsRW5kcG9pbnRcIl0sXG59KTtcbmV4cG9ydCBjb25zdCBkZWZhdWx0RW5kcG9pbnRSZXNvbHZlciA9IChlbmRwb2ludFBhcmFtcywgY29udGV4dCA9IHt9KSA9PiB7XG4gICAgcmV0dXJuIGNhY2hlLmdldChlbmRwb2ludFBhcmFtcywgKCkgPT4gcmVzb2x2ZUVuZHBvaW50KHJ1bGVTZXQsIHtcbiAgICAgICAgZW5kcG9pbnRQYXJhbXM6IGVuZHBvaW50UGFyYW1zLFxuICAgICAgICBsb2dnZXI6IGNvbnRleHQubG9nZ2VyLFxuICAgIH0pKTtcbn07XG5jdXN0b21FbmRwb2ludEZ1bmN0aW9ucy5hd3MgPSBhd3NFbmRwb2ludEZ1bmN0aW9ucztcbiIsICJpbXBvcnQgeyBTZXJ2aWNlRXhjZXB0aW9uIGFzIF9fU2VydmljZUV4Y2VwdGlvbiwgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5leHBvcnQgeyBfX1NlcnZpY2VFeGNlcHRpb24gfTtcbmV4cG9ydCBjbGFzcyBTVFNTZXJ2aWNlRXhjZXB0aW9uIGV4dGVuZHMgX19TZXJ2aWNlRXhjZXB0aW9uIHtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgU1RTU2VydmljZUV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBTVFNTZXJ2aWNlRXhjZXB0aW9uIGFzIF9fQmFzZUV4Y2VwdGlvbiB9IGZyb20gXCIuL1NUU1NlcnZpY2VFeGNlcHRpb25cIjtcbmV4cG9ydCBjbGFzcyBFeHBpcmVkVG9rZW5FeGNlcHRpb24gZXh0ZW5kcyBfX0Jhc2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIkV4cGlyZWRUb2tlbkV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkV4cGlyZWRUb2tlbkV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBFeHBpcmVkVG9rZW5FeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFeGNlcHRpb24gZXh0ZW5kcyBfX0Jhc2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIk1hbGZvcm1lZFBvbGljeURvY3VtZW50RXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgUGFja2VkUG9saWN5VG9vTGFyZ2VFeGNlcHRpb24gZXh0ZW5kcyBfX0Jhc2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIlBhY2tlZFBvbGljeVRvb0xhcmdlRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiUGFja2VkUG9saWN5VG9vTGFyZ2VFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgUGFja2VkUG9saWN5VG9vTGFyZ2VFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgUmVnaW9uRGlzYWJsZWRFeGNlcHRpb24gZXh0ZW5kcyBfX0Jhc2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIlJlZ2lvbkRpc2FibGVkRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiUmVnaW9uRGlzYWJsZWRFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgUmVnaW9uRGlzYWJsZWRFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgSURQUmVqZWN0ZWRDbGFpbUV4Y2VwdGlvbiBleHRlbmRzIF9fQmFzZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiSURQUmVqZWN0ZWRDbGFpbUV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIklEUFJlamVjdGVkQ2xhaW1FeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgSURQUmVqZWN0ZWRDbGFpbUV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBJbnZhbGlkSWRlbnRpdHlUb2tlbkV4Y2VwdGlvbiBleHRlbmRzIF9fQmFzZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiSW52YWxpZElkZW50aXR5VG9rZW5FeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJJbnZhbGlkSWRlbnRpdHlUb2tlbkV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBJbnZhbGlkSWRlbnRpdHlUb2tlbkV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBJRFBDb21tdW5pY2F0aW9uRXJyb3JFeGNlcHRpb24gZXh0ZW5kcyBfX0Jhc2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIklEUENvbW11bmljYXRpb25FcnJvckV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIklEUENvbW11bmljYXRpb25FcnJvckV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBJRFBDb21tdW5pY2F0aW9uRXJyb3JFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59XG4iLCAiY29uc3QgX0EgPSBcIkFyblwiO1xuY29uc3QgX0FLSSA9IFwiQWNjZXNzS2V5SWRcIjtcbmNvbnN0IF9BUiA9IFwiQXNzdW1lUm9sZVwiO1xuY29uc3QgX0FSSSA9IFwiQXNzdW1lZFJvbGVJZFwiO1xuY29uc3QgX0FSUiA9IFwiQXNzdW1lUm9sZVJlcXVlc3RcIjtcbmNvbnN0IF9BUlJzID0gXCJBc3N1bWVSb2xlUmVzcG9uc2VcIjtcbmNvbnN0IF9BUlUgPSBcIkFzc3VtZWRSb2xlVXNlclwiO1xuY29uc3QgX0FSV1dJID0gXCJBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5XCI7XG5jb25zdCBfQVJXV0lSID0gXCJBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5UmVxdWVzdFwiO1xuY29uc3QgX0FSV1dJUnMgPSBcIkFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlSZXNwb25zZVwiO1xuY29uc3QgX0F1ID0gXCJBdWRpZW5jZVwiO1xuY29uc3QgX0MgPSBcIkNyZWRlbnRpYWxzXCI7XG5jb25zdCBfQ0EgPSBcIkNvbnRleHRBc3NlcnRpb25cIjtcbmNvbnN0IF9EUyA9IFwiRHVyYXRpb25TZWNvbmRzXCI7XG5jb25zdCBfRSA9IFwiRXhwaXJhdGlvblwiO1xuY29uc3QgX0VJID0gXCJFeHRlcm5hbElkXCI7XG5jb25zdCBfRVRFID0gXCJFeHBpcmVkVG9rZW5FeGNlcHRpb25cIjtcbmNvbnN0IF9JRFBDRUUgPSBcIklEUENvbW11bmljYXRpb25FcnJvckV4Y2VwdGlvblwiO1xuY29uc3QgX0lEUFJDRSA9IFwiSURQUmVqZWN0ZWRDbGFpbUV4Y2VwdGlvblwiO1xuY29uc3QgX0lJVEUgPSBcIkludmFsaWRJZGVudGl0eVRva2VuRXhjZXB0aW9uXCI7XG5jb25zdCBfSyA9IFwiS2V5XCI7XG5jb25zdCBfTVBERSA9IFwiTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFeGNlcHRpb25cIjtcbmNvbnN0IF9QID0gXCJQb2xpY3lcIjtcbmNvbnN0IF9QQSA9IFwiUG9saWN5QXJuc1wiO1xuY29uc3QgX1BBciA9IFwiUHJvdmlkZXJBcm5cIjtcbmNvbnN0IF9QQyA9IFwiUHJvdmlkZWRDb250ZXh0c1wiO1xuY29uc3QgX1BDTFQgPSBcIlByb3ZpZGVkQ29udGV4dHNMaXN0VHlwZVwiO1xuY29uc3QgX1BDciA9IFwiUHJvdmlkZWRDb250ZXh0XCI7XG5jb25zdCBfUERUID0gXCJQb2xpY3lEZXNjcmlwdG9yVHlwZVwiO1xuY29uc3QgX1BJID0gXCJQcm92aWRlcklkXCI7XG5jb25zdCBfUFBTID0gXCJQYWNrZWRQb2xpY3lTaXplXCI7XG5jb25zdCBfUFBUTEUgPSBcIlBhY2tlZFBvbGljeVRvb0xhcmdlRXhjZXB0aW9uXCI7XG5jb25zdCBfUHIgPSBcIlByb3ZpZGVyXCI7XG5jb25zdCBfUkEgPSBcIlJvbGVBcm5cIjtcbmNvbnN0IF9SREUgPSBcIlJlZ2lvbkRpc2FibGVkRXhjZXB0aW9uXCI7XG5jb25zdCBfUlNOID0gXCJSb2xlU2Vzc2lvbk5hbWVcIjtcbmNvbnN0IF9TQUsgPSBcIlNlY3JldEFjY2Vzc0tleVwiO1xuY29uc3QgX1NGV0lUID0gXCJTdWJqZWN0RnJvbVdlYklkZW50aXR5VG9rZW5cIjtcbmNvbnN0IF9TSSA9IFwiU291cmNlSWRlbnRpdHlcIjtcbmNvbnN0IF9TTiA9IFwiU2VyaWFsTnVtYmVyXCI7XG5jb25zdCBfU1QgPSBcIlNlc3Npb25Ub2tlblwiO1xuY29uc3QgX1QgPSBcIlRhZ3NcIjtcbmNvbnN0IF9UQyA9IFwiVG9rZW5Db2RlXCI7XG5jb25zdCBfVFRLID0gXCJUcmFuc2l0aXZlVGFnS2V5c1wiO1xuY29uc3QgX1RhID0gXCJUYWdcIjtcbmNvbnN0IF9WID0gXCJWYWx1ZVwiO1xuY29uc3QgX1dJVCA9IFwiV2ViSWRlbnRpdHlUb2tlblwiO1xuY29uc3QgX2EgPSBcImFyblwiO1xuY29uc3QgX2FLU1QgPSBcImFjY2Vzc0tleVNlY3JldFR5cGVcIjtcbmNvbnN0IF9hUUUgPSBcImF3c1F1ZXJ5RXJyb3JcIjtcbmNvbnN0IF9jID0gXCJjbGllbnRcIjtcbmNvbnN0IF9jVFQgPSBcImNsaWVudFRva2VuVHlwZVwiO1xuY29uc3QgX2UgPSBcImVycm9yXCI7XG5jb25zdCBfaEUgPSBcImh0dHBFcnJvclwiO1xuY29uc3QgX20gPSBcIm1lc3NhZ2VcIjtcbmNvbnN0IF9wRExUID0gXCJwb2xpY3lEZXNjcmlwdG9yTGlzdFR5cGVcIjtcbmNvbnN0IF9zID0gXCJzbWl0aHkudHMuc2RrLnN5bnRoZXRpYy5jb20uYW1hem9uYXdzLnN0c1wiO1xuY29uc3QgX3RMVCA9IFwidGFnTGlzdFR5cGVcIjtcbmNvbnN0IG4wID0gXCJjb20uYW1hem9uYXdzLnN0c1wiO1xuaW1wb3J0IHsgVHlwZVJlZ2lzdHJ5IH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IEV4cGlyZWRUb2tlbkV4Y2VwdGlvbiwgSURQQ29tbXVuaWNhdGlvbkVycm9yRXhjZXB0aW9uLCBJRFBSZWplY3RlZENsYWltRXhjZXB0aW9uLCBJbnZhbGlkSWRlbnRpdHlUb2tlbkV4Y2VwdGlvbiwgTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFeGNlcHRpb24sIFBhY2tlZFBvbGljeVRvb0xhcmdlRXhjZXB0aW9uLCBSZWdpb25EaXNhYmxlZEV4Y2VwdGlvbiwgfSBmcm9tIFwiLi4vbW9kZWxzL2Vycm9yc1wiO1xuaW1wb3J0IHsgU1RTU2VydmljZUV4Y2VwdGlvbiB9IGZyb20gXCIuLi9tb2RlbHMvU1RTU2VydmljZUV4Y2VwdGlvblwiO1xuY29uc3QgX3NfcmVnaXN0cnkgPSBUeXBlUmVnaXN0cnkuZm9yKF9zKTtcbmV4cG9ydCB2YXIgU1RTU2VydmljZUV4Y2VwdGlvbiQgPSBbLTMsIF9zLCBcIlNUU1NlcnZpY2VFeGNlcHRpb25cIiwgMCwgW10sIFtdXTtcbl9zX3JlZ2lzdHJ5LnJlZ2lzdGVyRXJyb3IoU1RTU2VydmljZUV4Y2VwdGlvbiQsIFNUU1NlcnZpY2VFeGNlcHRpb24pO1xuY29uc3QgbjBfcmVnaXN0cnkgPSBUeXBlUmVnaXN0cnkuZm9yKG4wKTtcbmV4cG9ydCB2YXIgRXhwaXJlZFRva2VuRXhjZXB0aW9uJCA9IFtcbiAgICAtMyxcbiAgICBuMCxcbiAgICBfRVRFLFxuICAgIHsgW19hUUVdOiBbYEV4cGlyZWRUb2tlbkV4Y2VwdGlvbmAsIDQwMF0sIFtfZV06IF9jLCBbX2hFXTogNDAwIH0sXG4gICAgW19tXSxcbiAgICBbMF0sXG5dO1xubjBfcmVnaXN0cnkucmVnaXN0ZXJFcnJvcihFeHBpcmVkVG9rZW5FeGNlcHRpb24kLCBFeHBpcmVkVG9rZW5FeGNlcHRpb24pO1xuZXhwb3J0IHZhciBJRFBDb21tdW5pY2F0aW9uRXJyb3JFeGNlcHRpb24kID0gW1xuICAgIC0zLFxuICAgIG4wLFxuICAgIF9JRFBDRUUsXG4gICAgeyBbX2FRRV06IFtgSURQQ29tbXVuaWNhdGlvbkVycm9yYCwgNDAwXSwgW19lXTogX2MsIFtfaEVdOiA0MDAgfSxcbiAgICBbX21dLFxuICAgIFswXSxcbl07XG5uMF9yZWdpc3RyeS5yZWdpc3RlckVycm9yKElEUENvbW11bmljYXRpb25FcnJvckV4Y2VwdGlvbiQsIElEUENvbW11bmljYXRpb25FcnJvckV4Y2VwdGlvbik7XG5leHBvcnQgdmFyIElEUFJlamVjdGVkQ2xhaW1FeGNlcHRpb24kID0gW1xuICAgIC0zLFxuICAgIG4wLFxuICAgIF9JRFBSQ0UsXG4gICAgeyBbX2FRRV06IFtgSURQUmVqZWN0ZWRDbGFpbWAsIDQwM10sIFtfZV06IF9jLCBbX2hFXTogNDAzIH0sXG4gICAgW19tXSxcbiAgICBbMF0sXG5dO1xubjBfcmVnaXN0cnkucmVnaXN0ZXJFcnJvcihJRFBSZWplY3RlZENsYWltRXhjZXB0aW9uJCwgSURQUmVqZWN0ZWRDbGFpbUV4Y2VwdGlvbik7XG5leHBvcnQgdmFyIEludmFsaWRJZGVudGl0eVRva2VuRXhjZXB0aW9uJCA9IFtcbiAgICAtMyxcbiAgICBuMCxcbiAgICBfSUlURSxcbiAgICB7IFtfYVFFXTogW2BJbnZhbGlkSWRlbnRpdHlUb2tlbmAsIDQwMF0sIFtfZV06IF9jLCBbX2hFXTogNDAwIH0sXG4gICAgW19tXSxcbiAgICBbMF0sXG5dO1xubjBfcmVnaXN0cnkucmVnaXN0ZXJFcnJvcihJbnZhbGlkSWRlbnRpdHlUb2tlbkV4Y2VwdGlvbiQsIEludmFsaWRJZGVudGl0eVRva2VuRXhjZXB0aW9uKTtcbmV4cG9ydCB2YXIgTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFeGNlcHRpb24kID0gW1xuICAgIC0zLFxuICAgIG4wLFxuICAgIF9NUERFLFxuICAgIHsgW19hUUVdOiBbYE1hbGZvcm1lZFBvbGljeURvY3VtZW50YCwgNDAwXSwgW19lXTogX2MsIFtfaEVdOiA0MDAgfSxcbiAgICBbX21dLFxuICAgIFswXSxcbl07XG5uMF9yZWdpc3RyeS5yZWdpc3RlckVycm9yKE1hbGZvcm1lZFBvbGljeURvY3VtZW50RXhjZXB0aW9uJCwgTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFeGNlcHRpb24pO1xuZXhwb3J0IHZhciBQYWNrZWRQb2xpY3lUb29MYXJnZUV4Y2VwdGlvbiQgPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX1BQVExFLFxuICAgIHsgW19hUUVdOiBbYFBhY2tlZFBvbGljeVRvb0xhcmdlYCwgNDAwXSwgW19lXTogX2MsIFtfaEVdOiA0MDAgfSxcbiAgICBbX21dLFxuICAgIFswXSxcbl07XG5uMF9yZWdpc3RyeS5yZWdpc3RlckVycm9yKFBhY2tlZFBvbGljeVRvb0xhcmdlRXhjZXB0aW9uJCwgUGFja2VkUG9saWN5VG9vTGFyZ2VFeGNlcHRpb24pO1xuZXhwb3J0IHZhciBSZWdpb25EaXNhYmxlZEV4Y2VwdGlvbiQgPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX1JERSxcbiAgICB7IFtfYVFFXTogW2BSZWdpb25EaXNhYmxlZEV4Y2VwdGlvbmAsIDQwM10sIFtfZV06IF9jLCBbX2hFXTogNDAzIH0sXG4gICAgW19tXSxcbiAgICBbMF0sXG5dO1xubjBfcmVnaXN0cnkucmVnaXN0ZXJFcnJvcihSZWdpb25EaXNhYmxlZEV4Y2VwdGlvbiQsIFJlZ2lvbkRpc2FibGVkRXhjZXB0aW9uKTtcbmV4cG9ydCBjb25zdCBlcnJvclR5cGVSZWdpc3RyaWVzID0gW19zX3JlZ2lzdHJ5LCBuMF9yZWdpc3RyeV07XG52YXIgYWNjZXNzS2V5U2VjcmV0VHlwZSA9IFswLCBuMCwgX2FLU1QsIDgsIDBdO1xudmFyIGNsaWVudFRva2VuVHlwZSA9IFswLCBuMCwgX2NUVCwgOCwgMF07XG5leHBvcnQgdmFyIEFzc3VtZWRSb2xlVXNlciQgPSBbMywgbjAsIF9BUlUsIDAsIFtfQVJJLCBfQV0sIFswLCAwXSwgMl07XG5leHBvcnQgdmFyIEFzc3VtZVJvbGVSZXF1ZXN0JCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9BUlIsXG4gICAgMCxcbiAgICBbX1JBLCBfUlNOLCBfUEEsIF9QLCBfRFMsIF9ULCBfVFRLLCBfRUksIF9TTiwgX1RDLCBfU0ksIF9QQ10sXG4gICAgWzAsIDAsICgpID0+IHBvbGljeURlc2NyaXB0b3JMaXN0VHlwZSwgMCwgMSwgKCkgPT4gdGFnTGlzdFR5cGUsIDY0IHwgMCwgMCwgMCwgMCwgMCwgKCkgPT4gUHJvdmlkZWRDb250ZXh0c0xpc3RUeXBlXSxcbiAgICAyLFxuXTtcbmV4cG9ydCB2YXIgQXNzdW1lUm9sZVJlc3BvbnNlJCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9BUlJzLFxuICAgIDAsXG4gICAgW19DLCBfQVJVLCBfUFBTLCBfU0ldLFxuICAgIFtbKCkgPT4gQ3JlZGVudGlhbHMkLCAwXSwgKCkgPT4gQXNzdW1lZFJvbGVVc2VyJCwgMSwgMF0sXG5dO1xuZXhwb3J0IHZhciBBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5UmVxdWVzdCQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfQVJXV0lSLFxuICAgIDAsXG4gICAgW19SQSwgX1JTTiwgX1dJVCwgX1BJLCBfUEEsIF9QLCBfRFNdLFxuICAgIFswLCAwLCBbKCkgPT4gY2xpZW50VG9rZW5UeXBlLCAwXSwgMCwgKCkgPT4gcG9saWN5RGVzY3JpcHRvckxpc3RUeXBlLCAwLCAxXSxcbiAgICAzLFxuXTtcbmV4cG9ydCB2YXIgQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eVJlc3BvbnNlJCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9BUldXSVJzLFxuICAgIDAsXG4gICAgW19DLCBfU0ZXSVQsIF9BUlUsIF9QUFMsIF9QciwgX0F1LCBfU0ldLFxuICAgIFtbKCkgPT4gQ3JlZGVudGlhbHMkLCAwXSwgMCwgKCkgPT4gQXNzdW1lZFJvbGVVc2VyJCwgMSwgMCwgMCwgMF0sXG5dO1xuZXhwb3J0IHZhciBDcmVkZW50aWFscyQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfQyxcbiAgICAwLFxuICAgIFtfQUtJLCBfU0FLLCBfU1QsIF9FXSxcbiAgICBbMCwgWygpID0+IGFjY2Vzc0tleVNlY3JldFR5cGUsIDBdLCAwLCA0XSxcbiAgICA0LFxuXTtcbmV4cG9ydCB2YXIgUG9saWN5RGVzY3JpcHRvclR5cGUkID0gWzMsIG4wLCBfUERULCAwLCBbX2FdLCBbMF1dO1xuZXhwb3J0IHZhciBQcm92aWRlZENvbnRleHQkID0gWzMsIG4wLCBfUENyLCAwLCBbX1BBciwgX0NBXSwgWzAsIDBdXTtcbmV4cG9ydCB2YXIgVGFnJCA9IFszLCBuMCwgX1RhLCAwLCBbX0ssIF9WXSwgWzAsIDBdLCAyXTtcbnZhciBwb2xpY3lEZXNjcmlwdG9yTGlzdFR5cGUgPSBbMSwgbjAsIF9wRExULCAwLCAoKSA9PiBQb2xpY3lEZXNjcmlwdG9yVHlwZSRdO1xudmFyIFByb3ZpZGVkQ29udGV4dHNMaXN0VHlwZSA9IFsxLCBuMCwgX1BDTFQsIDAsICgpID0+IFByb3ZpZGVkQ29udGV4dCRdO1xudmFyIHRhZ0tleUxpc3RUeXBlID0gNjQgfCAwO1xudmFyIHRhZ0xpc3RUeXBlID0gWzEsIG4wLCBfdExULCAwLCAoKSA9PiBUYWckXTtcbmV4cG9ydCB2YXIgQXNzdW1lUm9sZSQgPSBbOSwgbjAsIF9BUiwgMCwgKCkgPT4gQXNzdW1lUm9sZVJlcXVlc3QkLCAoKSA9PiBBc3N1bWVSb2xlUmVzcG9uc2UkXTtcbmV4cG9ydCB2YXIgQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eSQgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfQVJXV0ksXG4gICAgMCxcbiAgICAoKSA9PiBBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5UmVxdWVzdCQsXG4gICAgKCkgPT4gQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eVJlc3BvbnNlJCxcbl07XG4iLCAiaW1wb3J0IHsgQXdzU2RrU2lnVjRTaWduZXIgfSBmcm9tIFwiQGF3cy1zZGsvY29yZVwiO1xuaW1wb3J0IHsgQXdzUXVlcnlQcm90b2NvbCB9IGZyb20gXCJAYXdzLXNkay9jb3JlL3Byb3RvY29sc1wiO1xuaW1wb3J0IHsgTm9BdXRoU2lnbmVyIH0gZnJvbSBcIkBzbWl0aHkvY29yZVwiO1xuaW1wb3J0IHsgTm9PcExvZ2dlciB9IGZyb20gXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjtcbmltcG9ydCB7IHBhcnNlVXJsIH0gZnJvbSBcIkBzbWl0aHkvdXJsLXBhcnNlclwiO1xuaW1wb3J0IHsgZnJvbUJhc2U2NCwgdG9CYXNlNjQgfSBmcm9tIFwiQHNtaXRoeS91dGlsLWJhc2U2NFwiO1xuaW1wb3J0IHsgZnJvbVV0ZjgsIHRvVXRmOCB9IGZyb20gXCJAc21pdGh5L3V0aWwtdXRmOFwiO1xuaW1wb3J0IHsgZGVmYXVsdFNUU0h0dHBBdXRoU2NoZW1lUHJvdmlkZXIgfSBmcm9tIFwiLi9hdXRoL2h0dHBBdXRoU2NoZW1lUHJvdmlkZXJcIjtcbmltcG9ydCB7IGRlZmF1bHRFbmRwb2ludFJlc29sdmVyIH0gZnJvbSBcIi4vZW5kcG9pbnQvZW5kcG9pbnRSZXNvbHZlclwiO1xuaW1wb3J0IHsgZXJyb3JUeXBlUmVnaXN0cmllcyB9IGZyb20gXCIuL3NjaGVtYXMvc2NoZW1hc18wXCI7XG5leHBvcnQgY29uc3QgZ2V0UnVudGltZUNvbmZpZyA9IChjb25maWcpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgICBhcGlWZXJzaW9uOiBcIjIwMTEtMDYtMTVcIixcbiAgICAgICAgYmFzZTY0RGVjb2RlcjogY29uZmlnPy5iYXNlNjREZWNvZGVyID8/IGZyb21CYXNlNjQsXG4gICAgICAgIGJhc2U2NEVuY29kZXI6IGNvbmZpZz8uYmFzZTY0RW5jb2RlciA/PyB0b0Jhc2U2NCxcbiAgICAgICAgZGlzYWJsZUhvc3RQcmVmaXg6IGNvbmZpZz8uZGlzYWJsZUhvc3RQcmVmaXggPz8gZmFsc2UsXG4gICAgICAgIGVuZHBvaW50UHJvdmlkZXI6IGNvbmZpZz8uZW5kcG9pbnRQcm92aWRlciA/PyBkZWZhdWx0RW5kcG9pbnRSZXNvbHZlcixcbiAgICAgICAgZXh0ZW5zaW9uczogY29uZmlnPy5leHRlbnNpb25zID8/IFtdLFxuICAgICAgICBodHRwQXV0aFNjaGVtZVByb3ZpZGVyOiBjb25maWc/Lmh0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPz8gZGVmYXVsdFNUU0h0dHBBdXRoU2NoZW1lUHJvdmlkZXIsXG4gICAgICAgIGh0dHBBdXRoU2NoZW1lczogY29uZmlnPy5odHRwQXV0aFNjaGVtZXMgPz8gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHNjaGVtZUlkOiBcImF3cy5hdXRoI3NpZ3Y0XCIsXG4gICAgICAgICAgICAgICAgaWRlbnRpdHlQcm92aWRlcjogKGlwYykgPT4gaXBjLmdldElkZW50aXR5UHJvdmlkZXIoXCJhd3MuYXV0aCNzaWd2NFwiKSxcbiAgICAgICAgICAgICAgICBzaWduZXI6IG5ldyBBd3NTZGtTaWdWNFNpZ25lcigpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzY2hlbWVJZDogXCJzbWl0aHkuYXBpI25vQXV0aFwiLFxuICAgICAgICAgICAgICAgIGlkZW50aXR5UHJvdmlkZXI6IChpcGMpID0+IGlwYy5nZXRJZGVudGl0eVByb3ZpZGVyKFwic21pdGh5LmFwaSNub0F1dGhcIikgfHwgKGFzeW5jICgpID0+ICh7fSkpLFxuICAgICAgICAgICAgICAgIHNpZ25lcjogbmV3IE5vQXV0aFNpZ25lcigpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgbG9nZ2VyOiBjb25maWc/LmxvZ2dlciA/PyBuZXcgTm9PcExvZ2dlcigpLFxuICAgICAgICBwcm90b2NvbDogY29uZmlnPy5wcm90b2NvbCA/PyBBd3NRdWVyeVByb3RvY29sLFxuICAgICAgICBwcm90b2NvbFNldHRpbmdzOiBjb25maWc/LnByb3RvY29sU2V0dGluZ3MgPz8ge1xuICAgICAgICAgICAgZGVmYXVsdE5hbWVzcGFjZTogXCJjb20uYW1hem9uYXdzLnN0c1wiLFxuICAgICAgICAgICAgZXJyb3JUeXBlUmVnaXN0cmllcyxcbiAgICAgICAgICAgIHhtbE5hbWVzcGFjZTogXCJodHRwczovL3N0cy5hbWF6b25hd3MuY29tL2RvYy8yMDExLTA2LTE1L1wiLFxuICAgICAgICAgICAgdmVyc2lvbjogXCIyMDExLTA2LTE1XCIsXG4gICAgICAgICAgICBzZXJ2aWNlVGFyZ2V0OiBcIkFXU1NlY3VyaXR5VG9rZW5TZXJ2aWNlVjIwMTEwNjE1XCIsXG4gICAgICAgIH0sXG4gICAgICAgIHNlcnZpY2VJZDogY29uZmlnPy5zZXJ2aWNlSWQgPz8gXCJTVFNcIixcbiAgICAgICAgdXJsUGFyc2VyOiBjb25maWc/LnVybFBhcnNlciA/PyBwYXJzZVVybCxcbiAgICAgICAgdXRmOERlY29kZXI6IGNvbmZpZz8udXRmOERlY29kZXIgPz8gZnJvbVV0ZjgsXG4gICAgICAgIHV0ZjhFbmNvZGVyOiBjb25maWc/LnV0ZjhFbmNvZGVyID8/IHRvVXRmOCxcbiAgICB9O1xufTtcbiIsICJpbXBvcnQgcGFja2FnZUluZm8gZnJvbSBcIi4uLy4uLy4uL3BhY2thZ2UuanNvblwiO1xuaW1wb3J0IHsgQXdzU2RrU2lnVjRTaWduZXIsIGVtaXRXYXJuaW5nSWZVbnN1cHBvcnRlZFZlcnNpb24gYXMgYXdzQ2hlY2tWZXJzaW9uLCBOT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfT1BUSU9OUywgfSBmcm9tIFwiQGF3cy1zZGsvY29yZVwiO1xuaW1wb3J0IHsgY3JlYXRlRGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyLCBOT0RFX0FQUF9JRF9DT05GSUdfT1BUSU9OUyB9IGZyb20gXCJAYXdzLXNkay91dGlsLXVzZXItYWdlbnQtbm9kZVwiO1xuaW1wb3J0IHsgTk9ERV9SRUdJT05fQ09ORklHX0ZJTEVfT1BUSU9OUywgTk9ERV9SRUdJT05fQ09ORklHX09QVElPTlMsIE5PREVfVVNFX0RVQUxTVEFDS19FTkRQT0lOVF9DT05GSUdfT1BUSU9OUywgTk9ERV9VU0VfRklQU19FTkRQT0lOVF9DT05GSUdfT1BUSU9OUywgfSBmcm9tIFwiQHNtaXRoeS9jb25maWctcmVzb2x2ZXJcIjtcbmltcG9ydCB7IE5vQXV0aFNpZ25lciB9IGZyb20gXCJAc21pdGh5L2NvcmVcIjtcbmltcG9ydCB7IEhhc2ggfSBmcm9tIFwiQHNtaXRoeS9oYXNoLW5vZGVcIjtcbmltcG9ydCB7IE5PREVfTUFYX0FUVEVNUFRfQ09ORklHX09QVElPTlMsIE5PREVfUkVUUllfTU9ERV9DT05GSUdfT1BUSU9OUyB9IGZyb20gXCJAc21pdGh5L21pZGRsZXdhcmUtcmV0cnlcIjtcbmltcG9ydCB7IGxvYWRDb25maWcgYXMgbG9hZE5vZGVDb25maWcgfSBmcm9tIFwiQHNtaXRoeS9ub2RlLWNvbmZpZy1wcm92aWRlclwiO1xuaW1wb3J0IHsgTm9kZUh0dHBIYW5kbGVyIGFzIFJlcXVlc3RIYW5kbGVyLCBzdHJlYW1Db2xsZWN0b3IgfSBmcm9tIFwiQHNtaXRoeS9ub2RlLWh0dHAtaGFuZGxlclwiO1xuaW1wb3J0IHsgZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbiwgbG9hZENvbmZpZ3NGb3JEZWZhdWx0TW9kZSB9IGZyb20gXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjtcbmltcG9ydCB7IGNhbGN1bGF0ZUJvZHlMZW5ndGggfSBmcm9tIFwiQHNtaXRoeS91dGlsLWJvZHktbGVuZ3RoLW5vZGVcIjtcbmltcG9ydCB7IHJlc29sdmVEZWZhdWx0c01vZGVDb25maWcgfSBmcm9tIFwiQHNtaXRoeS91dGlsLWRlZmF1bHRzLW1vZGUtbm9kZVwiO1xuaW1wb3J0IHsgREVGQVVMVF9SRVRSWV9NT0RFIH0gZnJvbSBcIkBzbWl0aHkvdXRpbC1yZXRyeVwiO1xuaW1wb3J0IHsgZ2V0UnVudGltZUNvbmZpZyBhcyBnZXRTaGFyZWRSdW50aW1lQ29uZmlnIH0gZnJvbSBcIi4vcnVudGltZUNvbmZpZy5zaGFyZWRcIjtcbmV4cG9ydCBjb25zdCBnZXRSdW50aW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIGVtaXRXYXJuaW5nSWZVbnN1cHBvcnRlZFZlcnNpb24ocHJvY2Vzcy52ZXJzaW9uKTtcbiAgICBjb25zdCBkZWZhdWx0c01vZGUgPSByZXNvbHZlRGVmYXVsdHNNb2RlQ29uZmlnKGNvbmZpZyk7XG4gICAgY29uc3QgZGVmYXVsdENvbmZpZ1Byb3ZpZGVyID0gKCkgPT4gZGVmYXVsdHNNb2RlKCkudGhlbihsb2FkQ29uZmlnc0ZvckRlZmF1bHRNb2RlKTtcbiAgICBjb25zdCBjbGllbnRTaGFyZWRWYWx1ZXMgPSBnZXRTaGFyZWRSdW50aW1lQ29uZmlnKGNvbmZpZyk7XG4gICAgYXdzQ2hlY2tWZXJzaW9uKHByb2Nlc3MudmVyc2lvbik7XG4gICAgY29uc3QgbG9hZGVyQ29uZmlnID0ge1xuICAgICAgICBwcm9maWxlOiBjb25maWc/LnByb2ZpbGUsXG4gICAgICAgIGxvZ2dlcjogY2xpZW50U2hhcmVkVmFsdWVzLmxvZ2dlcixcbiAgICB9O1xuICAgIHJldHVybiB7XG4gICAgICAgIC4uLmNsaWVudFNoYXJlZFZhbHVlcyxcbiAgICAgICAgLi4uY29uZmlnLFxuICAgICAgICBydW50aW1lOiBcIm5vZGVcIixcbiAgICAgICAgZGVmYXVsdHNNb2RlLFxuICAgICAgICBhdXRoU2NoZW1lUHJlZmVyZW5jZTogY29uZmlnPy5hdXRoU2NoZW1lUHJlZmVyZW5jZSA/PyBsb2FkTm9kZUNvbmZpZyhOT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfT1BUSU9OUywgbG9hZGVyQ29uZmlnKSxcbiAgICAgICAgYm9keUxlbmd0aENoZWNrZXI6IGNvbmZpZz8uYm9keUxlbmd0aENoZWNrZXIgPz8gY2FsY3VsYXRlQm9keUxlbmd0aCxcbiAgICAgICAgZGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyOiBjb25maWc/LmRlZmF1bHRVc2VyQWdlbnRQcm92aWRlciA/P1xuICAgICAgICAgICAgY3JlYXRlRGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyKHsgc2VydmljZUlkOiBjbGllbnRTaGFyZWRWYWx1ZXMuc2VydmljZUlkLCBjbGllbnRWZXJzaW9uOiBwYWNrYWdlSW5mby52ZXJzaW9uIH0pLFxuICAgICAgICBodHRwQXV0aFNjaGVtZXM6IGNvbmZpZz8uaHR0cEF1dGhTY2hlbWVzID8/IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzY2hlbWVJZDogXCJhd3MuYXV0aCNzaWd2NFwiLFxuICAgICAgICAgICAgICAgIGlkZW50aXR5UHJvdmlkZXI6IChpcGMpID0+IGlwYy5nZXRJZGVudGl0eVByb3ZpZGVyKFwiYXdzLmF1dGgjc2lndjRcIikgfHxcbiAgICAgICAgICAgICAgICAgICAgKGFzeW5jIChpZFByb3BzKSA9PiBhd2FpdCBjb25maWcuY3JlZGVudGlhbERlZmF1bHRQcm92aWRlcihpZFByb3BzPy5fX2NvbmZpZyB8fCB7fSkoKSksXG4gICAgICAgICAgICAgICAgc2lnbmVyOiBuZXcgQXdzU2RrU2lnVjRTaWduZXIoKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgc2NoZW1lSWQ6IFwic21pdGh5LmFwaSNub0F1dGhcIixcbiAgICAgICAgICAgICAgICBpZGVudGl0eVByb3ZpZGVyOiAoaXBjKSA9PiBpcGMuZ2V0SWRlbnRpdHlQcm92aWRlcihcInNtaXRoeS5hcGkjbm9BdXRoXCIpIHx8IChhc3luYyAoKSA9PiAoe30pKSxcbiAgICAgICAgICAgICAgICBzaWduZXI6IG5ldyBOb0F1dGhTaWduZXIoKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIG1heEF0dGVtcHRzOiBjb25maWc/Lm1heEF0dGVtcHRzID8/IGxvYWROb2RlQ29uZmlnKE5PREVfTUFYX0FUVEVNUFRfQ09ORklHX09QVElPTlMsIGNvbmZpZyksXG4gICAgICAgIHJlZ2lvbjogY29uZmlnPy5yZWdpb24gPz9cbiAgICAgICAgICAgIGxvYWROb2RlQ29uZmlnKE5PREVfUkVHSU9OX0NPTkZJR19PUFRJT05TLCB7IC4uLk5PREVfUkVHSU9OX0NPTkZJR19GSUxFX09QVElPTlMsIC4uLmxvYWRlckNvbmZpZyB9KSxcbiAgICAgICAgcmVxdWVzdEhhbmRsZXI6IFJlcXVlc3RIYW5kbGVyLmNyZWF0ZShjb25maWc/LnJlcXVlc3RIYW5kbGVyID8/IGRlZmF1bHRDb25maWdQcm92aWRlciksXG4gICAgICAgIHJldHJ5TW9kZTogY29uZmlnPy5yZXRyeU1vZGUgPz9cbiAgICAgICAgICAgIGxvYWROb2RlQ29uZmlnKHtcbiAgICAgICAgICAgICAgICAuLi5OT0RFX1JFVFJZX01PREVfQ09ORklHX09QVElPTlMsXG4gICAgICAgICAgICAgICAgZGVmYXVsdDogYXN5bmMgKCkgPT4gKGF3YWl0IGRlZmF1bHRDb25maWdQcm92aWRlcigpKS5yZXRyeU1vZGUgfHwgREVGQVVMVF9SRVRSWV9NT0RFLFxuICAgICAgICAgICAgfSwgY29uZmlnKSxcbiAgICAgICAgc2hhMjU2OiBjb25maWc/LnNoYTI1NiA/PyBIYXNoLmJpbmQobnVsbCwgXCJzaGEyNTZcIiksXG4gICAgICAgIHN0cmVhbUNvbGxlY3RvcjogY29uZmlnPy5zdHJlYW1Db2xsZWN0b3IgPz8gc3RyZWFtQ29sbGVjdG9yLFxuICAgICAgICB1c2VEdWFsc3RhY2tFbmRwb2ludDogY29uZmlnPy51c2VEdWFsc3RhY2tFbmRwb2ludCA/PyBsb2FkTm9kZUNvbmZpZyhOT0RFX1VTRV9EVUFMU1RBQ0tfRU5EUE9JTlRfQ09ORklHX09QVElPTlMsIGxvYWRlckNvbmZpZyksXG4gICAgICAgIHVzZUZpcHNFbmRwb2ludDogY29uZmlnPy51c2VGaXBzRW5kcG9pbnQgPz8gbG9hZE5vZGVDb25maWcoTk9ERV9VU0VfRklQU19FTkRQT0lOVF9DT05GSUdfT1BUSU9OUywgbG9hZGVyQ29uZmlnKSxcbiAgICAgICAgdXNlckFnZW50QXBwSWQ6IGNvbmZpZz8udXNlckFnZW50QXBwSWQgPz8gbG9hZE5vZGVDb25maWcoTk9ERV9BUFBfSURfQ09ORklHX09QVElPTlMsIGxvYWRlckNvbmZpZyksXG4gICAgfTtcbn07XG4iLCAiZXhwb3J0IGNvbnN0IGdldEh0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiA9IChydW50aW1lQ29uZmlnKSA9PiB7XG4gICAgY29uc3QgX2h0dHBBdXRoU2NoZW1lcyA9IHJ1bnRpbWVDb25maWcuaHR0cEF1dGhTY2hlbWVzO1xuICAgIGxldCBfaHR0cEF1dGhTY2hlbWVQcm92aWRlciA9IHJ1bnRpbWVDb25maWcuaHR0cEF1dGhTY2hlbWVQcm92aWRlcjtcbiAgICBsZXQgX2NyZWRlbnRpYWxzID0gcnVudGltZUNvbmZpZy5jcmVkZW50aWFscztcbiAgICByZXR1cm4ge1xuICAgICAgICBzZXRIdHRwQXV0aFNjaGVtZShodHRwQXV0aFNjaGVtZSkge1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSBfaHR0cEF1dGhTY2hlbWVzLmZpbmRJbmRleCgoc2NoZW1lKSA9PiBzY2hlbWUuc2NoZW1lSWQgPT09IGh0dHBBdXRoU2NoZW1lLnNjaGVtZUlkKTtcbiAgICAgICAgICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICBfaHR0cEF1dGhTY2hlbWVzLnB1c2goaHR0cEF1dGhTY2hlbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgX2h0dHBBdXRoU2NoZW1lcy5zcGxpY2UoaW5kZXgsIDEsIGh0dHBBdXRoU2NoZW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVzKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9odHRwQXV0aFNjaGVtZXM7XG4gICAgICAgIH0sXG4gICAgICAgIHNldEh0dHBBdXRoU2NoZW1lUHJvdmlkZXIoaHR0cEF1dGhTY2hlbWVQcm92aWRlcikge1xuICAgICAgICAgICAgX2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSBodHRwQXV0aFNjaGVtZVByb3ZpZGVyO1xuICAgICAgICB9LFxuICAgICAgICBodHRwQXV0aFNjaGVtZVByb3ZpZGVyKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9odHRwQXV0aFNjaGVtZVByb3ZpZGVyO1xuICAgICAgICB9LFxuICAgICAgICBzZXRDcmVkZW50aWFscyhjcmVkZW50aWFscykge1xuICAgICAgICAgICAgX2NyZWRlbnRpYWxzID0gY3JlZGVudGlhbHM7XG4gICAgICAgIH0sXG4gICAgICAgIGNyZWRlbnRpYWxzKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9jcmVkZW50aWFscztcbiAgICAgICAgfSxcbiAgICB9O1xufTtcbmV4cG9ydCBjb25zdCByZXNvbHZlSHR0cEF1dGhSdW50aW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIGh0dHBBdXRoU2NoZW1lczogY29uZmlnLmh0dHBBdXRoU2NoZW1lcygpLFxuICAgICAgICBodHRwQXV0aFNjaGVtZVByb3ZpZGVyOiBjb25maWcuaHR0cEF1dGhTY2hlbWVQcm92aWRlcigpLFxuICAgICAgICBjcmVkZW50aWFsczogY29uZmlnLmNyZWRlbnRpYWxzKCksXG4gICAgfTtcbn07XG4iLCAiaW1wb3J0IHsgZ2V0QXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiwgcmVzb2x2ZUF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24sIH0gZnJvbSBcIkBhd3Mtc2RrL3JlZ2lvbi1jb25maWctcmVzb2x2ZXJcIjtcbmltcG9ydCB7IGdldEh0dHBIYW5kbGVyRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiwgcmVzb2x2ZUh0dHBIYW5kbGVyUnVudGltZUNvbmZpZyB9IGZyb20gXCJAc21pdGh5L3Byb3RvY29sLWh0dHBcIjtcbmltcG9ydCB7IGdldERlZmF1bHRFeHRlbnNpb25Db25maWd1cmF0aW9uLCByZXNvbHZlRGVmYXVsdFJ1bnRpbWVDb25maWcgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyBnZXRIdHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24sIHJlc29sdmVIdHRwQXV0aFJ1bnRpbWVDb25maWcgfSBmcm9tIFwiLi9hdXRoL2h0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvblwiO1xuZXhwb3J0IGNvbnN0IHJlc29sdmVSdW50aW1lRXh0ZW5zaW9ucyA9IChydW50aW1lQ29uZmlnLCBleHRlbnNpb25zKSA9PiB7XG4gICAgY29uc3QgZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiA9IE9iamVjdC5hc3NpZ24oZ2V0QXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbihydW50aW1lQ29uZmlnKSwgZ2V0RGVmYXVsdEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24ocnVudGltZUNvbmZpZyksIGdldEh0dHBIYW5kbGVyRXh0ZW5zaW9uQ29uZmlndXJhdGlvbihydW50aW1lQ29uZmlnKSwgZ2V0SHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uKHJ1bnRpbWVDb25maWcpKTtcbiAgICBleHRlbnNpb25zLmZvckVhY2goKGV4dGVuc2lvbikgPT4gZXh0ZW5zaW9uLmNvbmZpZ3VyZShleHRlbnNpb25Db25maWd1cmF0aW9uKSk7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24ocnVudGltZUNvbmZpZywgcmVzb2x2ZUF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24oZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiksIHJlc29sdmVEZWZhdWx0UnVudGltZUNvbmZpZyhleHRlbnNpb25Db25maWd1cmF0aW9uKSwgcmVzb2x2ZUh0dHBIYW5kbGVyUnVudGltZUNvbmZpZyhleHRlbnNpb25Db25maWd1cmF0aW9uKSwgcmVzb2x2ZUh0dHBBdXRoUnVudGltZUNvbmZpZyhleHRlbnNpb25Db25maWd1cmF0aW9uKSk7XG59O1xuIiwgImltcG9ydCB7IGdldEhvc3RIZWFkZXJQbHVnaW4sIHJlc29sdmVIb3N0SGVhZGVyQ29uZmlnLCB9IGZyb20gXCJAYXdzLXNkay9taWRkbGV3YXJlLWhvc3QtaGVhZGVyXCI7XG5pbXBvcnQgeyBnZXRMb2dnZXJQbHVnaW4gfSBmcm9tIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1sb2dnZXJcIjtcbmltcG9ydCB7IGdldFJlY3Vyc2lvbkRldGVjdGlvblBsdWdpbiB9IGZyb20gXCJAYXdzLXNkay9taWRkbGV3YXJlLXJlY3Vyc2lvbi1kZXRlY3Rpb25cIjtcbmltcG9ydCB7IGdldFVzZXJBZ2VudFBsdWdpbiwgcmVzb2x2ZVVzZXJBZ2VudENvbmZpZywgfSBmcm9tIFwiQGF3cy1zZGsvbWlkZGxld2FyZS11c2VyLWFnZW50XCI7XG5pbXBvcnQgeyByZXNvbHZlUmVnaW9uQ29uZmlnIH0gZnJvbSBcIkBzbWl0aHkvY29uZmlnLXJlc29sdmVyXCI7XG5pbXBvcnQgeyBEZWZhdWx0SWRlbnRpdHlQcm92aWRlckNvbmZpZywgZ2V0SHR0cEF1dGhTY2hlbWVFbmRwb2ludFJ1bGVTZXRQbHVnaW4sIGdldEh0dHBTaWduaW5nUGx1Z2luLCB9IGZyb20gXCJAc21pdGh5L2NvcmVcIjtcbmltcG9ydCB7IGdldFNjaGVtYVNlcmRlUGx1Z2luIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IGdldENvbnRlbnRMZW5ndGhQbHVnaW4gfSBmcm9tIFwiQHNtaXRoeS9taWRkbGV3YXJlLWNvbnRlbnQtbGVuZ3RoXCI7XG5pbXBvcnQgeyByZXNvbHZlRW5kcG9pbnRDb25maWcsIH0gZnJvbSBcIkBzbWl0aHkvbWlkZGxld2FyZS1lbmRwb2ludFwiO1xuaW1wb3J0IHsgZ2V0UmV0cnlQbHVnaW4sIHJlc29sdmVSZXRyeUNvbmZpZywgfSBmcm9tIFwiQHNtaXRoeS9taWRkbGV3YXJlLXJldHJ5XCI7XG5pbXBvcnQgeyBDbGllbnQgYXMgX19DbGllbnQsIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgZGVmYXVsdFNUU0h0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyLCByZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWcsIH0gZnJvbSBcIi4vYXV0aC9odHRwQXV0aFNjaGVtZVByb3ZpZGVyXCI7XG5pbXBvcnQgeyByZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzIH0gZnJvbSBcIi4vZW5kcG9pbnQvRW5kcG9pbnRQYXJhbWV0ZXJzXCI7XG5pbXBvcnQgeyBnZXRSdW50aW1lQ29uZmlnIGFzIF9fZ2V0UnVudGltZUNvbmZpZyB9IGZyb20gXCIuL3J1bnRpbWVDb25maWdcIjtcbmltcG9ydCB7IHJlc29sdmVSdW50aW1lRXh0ZW5zaW9ucyB9IGZyb20gXCIuL3J1bnRpbWVFeHRlbnNpb25zXCI7XG5leHBvcnQgeyBfX0NsaWVudCB9O1xuZXhwb3J0IGNsYXNzIFNUU0NsaWVudCBleHRlbmRzIF9fQ2xpZW50IHtcbiAgICBjb25maWc7XG4gICAgY29uc3RydWN0b3IoLi4uW2NvbmZpZ3VyYXRpb25dKSB7XG4gICAgICAgIGNvbnN0IF9jb25maWdfMCA9IF9fZ2V0UnVudGltZUNvbmZpZyhjb25maWd1cmF0aW9uIHx8IHt9KTtcbiAgICAgICAgc3VwZXIoX2NvbmZpZ18wKTtcbiAgICAgICAgdGhpcy5pbml0Q29uZmlnID0gX2NvbmZpZ18wO1xuICAgICAgICBjb25zdCBfY29uZmlnXzEgPSByZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzKF9jb25maWdfMCk7XG4gICAgICAgIGNvbnN0IF9jb25maWdfMiA9IHJlc29sdmVVc2VyQWdlbnRDb25maWcoX2NvbmZpZ18xKTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ18zID0gcmVzb2x2ZVJldHJ5Q29uZmlnKF9jb25maWdfMik7XG4gICAgICAgIGNvbnN0IF9jb25maWdfNCA9IHJlc29sdmVSZWdpb25Db25maWcoX2NvbmZpZ18zKTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ181ID0gcmVzb2x2ZUhvc3RIZWFkZXJDb25maWcoX2NvbmZpZ180KTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ182ID0gcmVzb2x2ZUVuZHBvaW50Q29uZmlnKF9jb25maWdfNSk7XG4gICAgICAgIGNvbnN0IF9jb25maWdfNyA9IHJlc29sdmVIdHRwQXV0aFNjaGVtZUNvbmZpZyhfY29uZmlnXzYpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzggPSByZXNvbHZlUnVudGltZUV4dGVuc2lvbnMoX2NvbmZpZ183LCBjb25maWd1cmF0aW9uPy5leHRlbnNpb25zIHx8IFtdKTtcbiAgICAgICAgdGhpcy5jb25maWcgPSBfY29uZmlnXzg7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShnZXRTY2hlbWFTZXJkZVBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoZ2V0VXNlckFnZW50UGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShnZXRSZXRyeVBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoZ2V0Q29udGVudExlbmd0aFBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoZ2V0SG9zdEhlYWRlclBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoZ2V0TG9nZ2VyUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShnZXRSZWN1cnNpb25EZXRlY3Rpb25QbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGdldEh0dHBBdXRoU2NoZW1lRW5kcG9pbnRSdWxlU2V0UGx1Z2luKHRoaXMuY29uZmlnLCB7XG4gICAgICAgICAgICBodHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlcjogZGVmYXVsdFNUU0h0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyLFxuICAgICAgICAgICAgaWRlbnRpdHlQcm92aWRlckNvbmZpZ1Byb3ZpZGVyOiBhc3luYyAoY29uZmlnKSA9PiBuZXcgRGVmYXVsdElkZW50aXR5UHJvdmlkZXJDb25maWcoe1xuICAgICAgICAgICAgICAgIFwiYXdzLmF1dGgjc2lndjRcIjogY29uZmlnLmNyZWRlbnRpYWxzLFxuICAgICAgICAgICAgfSksXG4gICAgICAgIH0pKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGdldEh0dHBTaWduaW5nUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgfVxuICAgIGRlc3Ryb3koKSB7XG4gICAgICAgIHN1cGVyLmRlc3Ryb3koKTtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgZ2V0RW5kcG9pbnRQbHVnaW4gfSBmcm9tIFwiQHNtaXRoeS9taWRkbGV3YXJlLWVuZHBvaW50XCI7XG5pbXBvcnQgeyBDb21tYW5kIGFzICRDb21tYW5kIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgY29tbW9uUGFyYW1zIH0gZnJvbSBcIi4uL2VuZHBvaW50L0VuZHBvaW50UGFyYW1ldGVyc1wiO1xuaW1wb3J0IHsgQXNzdW1lUm9sZSQgfSBmcm9tIFwiLi4vc2NoZW1hcy9zY2hlbWFzXzBcIjtcbmV4cG9ydCB7ICRDb21tYW5kIH07XG5leHBvcnQgY2xhc3MgQXNzdW1lUm9sZUNvbW1hbmQgZXh0ZW5kcyAkQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW2dldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTU2VjdXJpdHlUb2tlblNlcnZpY2VWMjAxMTA2MTVcIiwgXCJBc3N1bWVSb2xlXCIsIHt9KVxuICAgIC5uKFwiU1RTQ2xpZW50XCIsIFwiQXNzdW1lUm9sZUNvbW1hbmRcIilcbiAgICAuc2MoQXNzdW1lUm9sZSQpXG4gICAgLmJ1aWxkKCkge1xufVxuIiwgImltcG9ydCB7IGdldEVuZHBvaW50UGx1Z2luIH0gZnJvbSBcIkBzbWl0aHkvbWlkZGxld2FyZS1lbmRwb2ludFwiO1xuaW1wb3J0IHsgQ29tbWFuZCBhcyAkQ29tbWFuZCB9IGZyb20gXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjtcbmltcG9ydCB7IGNvbW1vblBhcmFtcyB9IGZyb20gXCIuLi9lbmRwb2ludC9FbmRwb2ludFBhcmFtZXRlcnNcIjtcbmltcG9ydCB7IEFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHkkIH0gZnJvbSBcIi4uL3NjaGVtYXMvc2NoZW1hc18wXCI7XG5leHBvcnQgeyAkQ29tbWFuZCB9O1xuZXhwb3J0IGNsYXNzIEFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlDb21tYW5kIGV4dGVuZHMgJENvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFtnZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFXU1NlY3VyaXR5VG9rZW5TZXJ2aWNlVjIwMTEwNjE1XCIsIFwiQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eVwiLCB7fSlcbiAgICAubihcIlNUU0NsaWVudFwiLCBcIkFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlDb21tYW5kXCIpXG4gICAgLnNjKEFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHkkKVxuICAgIC5idWlsZCgpIHtcbn1cbiIsICJpbXBvcnQgeyBjcmVhdGVBZ2dyZWdhdGVkQ2xpZW50IH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgQXNzdW1lUm9sZUNvbW1hbmQgfSBmcm9tIFwiLi9jb21tYW5kcy9Bc3N1bWVSb2xlQ29tbWFuZFwiO1xuaW1wb3J0IHsgQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eUNvbW1hbmQgfSBmcm9tIFwiLi9jb21tYW5kcy9Bc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5Q29tbWFuZFwiO1xuaW1wb3J0IHsgU1RTQ2xpZW50IH0gZnJvbSBcIi4vU1RTQ2xpZW50XCI7XG5jb25zdCBjb21tYW5kcyA9IHtcbiAgICBBc3N1bWVSb2xlQ29tbWFuZCxcbiAgICBBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5Q29tbWFuZCxcbn07XG5leHBvcnQgY2xhc3MgU1RTIGV4dGVuZHMgU1RTQ2xpZW50IHtcbn1cbmNyZWF0ZUFnZ3JlZ2F0ZWRDbGllbnQoY29tbWFuZHMsIFNUUyk7XG4iLCAiZXhwb3J0ICogZnJvbSBcIi4vQXNzdW1lUm9sZUNvbW1hbmRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0Fzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlDb21tYW5kXCI7XG4iLCAiZXhwb3J0IHt9O1xuIiwgImltcG9ydCB7IHNldENyZWRlbnRpYWxGZWF0dXJlIH0gZnJvbSBcIkBhd3Mtc2RrL2NvcmUvY2xpZW50XCI7XG5pbXBvcnQgeyBzdHNSZWdpb25EZWZhdWx0UmVzb2x2ZXIgfSBmcm9tIFwiQGF3cy1zZGsvcmVnaW9uLWNvbmZpZy1yZXNvbHZlclwiO1xuaW1wb3J0IHsgQXNzdW1lUm9sZUNvbW1hbmQgfSBmcm9tIFwiLi9jb21tYW5kcy9Bc3N1bWVSb2xlQ29tbWFuZFwiO1xuaW1wb3J0IHsgQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eUNvbW1hbmQsIH0gZnJvbSBcIi4vY29tbWFuZHMvQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eUNvbW1hbmRcIjtcbmNvbnN0IGdldEFjY291bnRJZEZyb21Bc3N1bWVkUm9sZVVzZXIgPSAoYXNzdW1lZFJvbGVVc2VyKSA9PiB7XG4gICAgaWYgKHR5cGVvZiBhc3N1bWVkUm9sZVVzZXI/LkFybiA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICBjb25zdCBhcm5Db21wb25lbnRzID0gYXNzdW1lZFJvbGVVc2VyLkFybi5zcGxpdChcIjpcIik7XG4gICAgICAgIGlmIChhcm5Db21wb25lbnRzLmxlbmd0aCA+IDQgJiYgYXJuQ29tcG9uZW50c1s0XSAhPT0gXCJcIikge1xuICAgICAgICAgICAgcmV0dXJuIGFybkNvbXBvbmVudHNbNF07XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbn07XG5jb25zdCByZXNvbHZlUmVnaW9uID0gYXN5bmMgKF9yZWdpb24sIF9wYXJlbnRSZWdpb24sIGNyZWRlbnRpYWxQcm92aWRlckxvZ2dlciwgbG9hZGVyQ29uZmlnID0ge30pID0+IHtcbiAgICBjb25zdCByZWdpb24gPSB0eXBlb2YgX3JlZ2lvbiA9PT0gXCJmdW5jdGlvblwiID8gYXdhaXQgX3JlZ2lvbigpIDogX3JlZ2lvbjtcbiAgICBjb25zdCBwYXJlbnRSZWdpb24gPSB0eXBlb2YgX3BhcmVudFJlZ2lvbiA9PT0gXCJmdW5jdGlvblwiID8gYXdhaXQgX3BhcmVudFJlZ2lvbigpIDogX3BhcmVudFJlZ2lvbjtcbiAgICBsZXQgc3RzRGVmYXVsdFJlZ2lvbiA9IFwiXCI7XG4gICAgY29uc3QgcmVzb2x2ZWRSZWdpb24gPSByZWdpb24gPz8gcGFyZW50UmVnaW9uID8/IChzdHNEZWZhdWx0UmVnaW9uID0gYXdhaXQgc3RzUmVnaW9uRGVmYXVsdFJlc29sdmVyKGxvYWRlckNvbmZpZykoKSk7XG4gICAgY3JlZGVudGlhbFByb3ZpZGVyTG9nZ2VyPy5kZWJ1Zz8uKFwiQGF3cy1zZGsvY2xpZW50LXN0czo6cmVzb2x2ZVJlZ2lvblwiLCBcImFjY2VwdGluZyBmaXJzdCBvZjpcIiwgYCR7cmVnaW9ufSAoY3JlZGVudGlhbCBwcm92aWRlciBjbGllbnRDb25maWcpYCwgYCR7cGFyZW50UmVnaW9ufSAoY29udGV4dHVhbCBjbGllbnQpYCwgYCR7c3RzRGVmYXVsdFJlZ2lvbn0gKFNUUyBkZWZhdWx0OiBBV1NfUkVHSU9OLCBwcm9maWxlIHJlZ2lvbiwgb3IgdXMtZWFzdC0xKWApO1xuICAgIHJldHVybiByZXNvbHZlZFJlZ2lvbjtcbn07XG5leHBvcnQgY29uc3QgZ2V0RGVmYXVsdFJvbGVBc3N1bWVyID0gKHN0c09wdGlvbnMsIFNUU0NsaWVudCkgPT4ge1xuICAgIGxldCBzdHNDbGllbnQ7XG4gICAgbGV0IGNsb3N1cmVTb3VyY2VDcmVkcztcbiAgICByZXR1cm4gYXN5bmMgKHNvdXJjZUNyZWRzLCBwYXJhbXMpID0+IHtcbiAgICAgICAgY2xvc3VyZVNvdXJjZUNyZWRzID0gc291cmNlQ3JlZHM7XG4gICAgICAgIGlmICghc3RzQ2xpZW50KSB7XG4gICAgICAgICAgICBjb25zdCB7IGxvZ2dlciA9IHN0c09wdGlvbnM/LnBhcmVudENsaWVudENvbmZpZz8ubG9nZ2VyLCBwcm9maWxlID0gc3RzT3B0aW9ucz8ucGFyZW50Q2xpZW50Q29uZmlnPy5wcm9maWxlLCByZWdpb24sIHJlcXVlc3RIYW5kbGVyID0gc3RzT3B0aW9ucz8ucGFyZW50Q2xpZW50Q29uZmlnPy5yZXF1ZXN0SGFuZGxlciwgY3JlZGVudGlhbFByb3ZpZGVyTG9nZ2VyLCB1c2VyQWdlbnRBcHBJZCA9IHN0c09wdGlvbnM/LnBhcmVudENsaWVudENvbmZpZz8udXNlckFnZW50QXBwSWQsIH0gPSBzdHNPcHRpb25zO1xuICAgICAgICAgICAgY29uc3QgcmVzb2x2ZWRSZWdpb24gPSBhd2FpdCByZXNvbHZlUmVnaW9uKHJlZ2lvbiwgc3RzT3B0aW9ucz8ucGFyZW50Q2xpZW50Q29uZmlnPy5yZWdpb24sIGNyZWRlbnRpYWxQcm92aWRlckxvZ2dlciwge1xuICAgICAgICAgICAgICAgIGxvZ2dlcixcbiAgICAgICAgICAgICAgICBwcm9maWxlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCBpc0NvbXBhdGlibGVSZXF1ZXN0SGFuZGxlciA9ICFpc0gyKHJlcXVlc3RIYW5kbGVyKTtcbiAgICAgICAgICAgIHN0c0NsaWVudCA9IG5ldyBTVFNDbGllbnQoe1xuICAgICAgICAgICAgICAgIC4uLnN0c09wdGlvbnMsXG4gICAgICAgICAgICAgICAgdXNlckFnZW50QXBwSWQsXG4gICAgICAgICAgICAgICAgcHJvZmlsZSxcbiAgICAgICAgICAgICAgICBjcmVkZW50aWFsRGVmYXVsdFByb3ZpZGVyOiAoKSA9PiBhc3luYyAoKSA9PiBjbG9zdXJlU291cmNlQ3JlZHMsXG4gICAgICAgICAgICAgICAgcmVnaW9uOiByZXNvbHZlZFJlZ2lvbixcbiAgICAgICAgICAgICAgICByZXF1ZXN0SGFuZGxlcjogaXNDb21wYXRpYmxlUmVxdWVzdEhhbmRsZXIgPyByZXF1ZXN0SGFuZGxlciA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBsb2dnZXI6IGxvZ2dlcixcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHsgQ3JlZGVudGlhbHMsIEFzc3VtZWRSb2xlVXNlciB9ID0gYXdhaXQgc3RzQ2xpZW50LnNlbmQobmV3IEFzc3VtZVJvbGVDb21tYW5kKHBhcmFtcykpO1xuICAgICAgICBpZiAoIUNyZWRlbnRpYWxzIHx8ICFDcmVkZW50aWFscy5BY2Nlc3NLZXlJZCB8fCAhQ3JlZGVudGlhbHMuU2VjcmV0QWNjZXNzS2V5KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgcmVzcG9uc2UgZnJvbSBTVFMuYXNzdW1lUm9sZSBjYWxsIHdpdGggcm9sZSAke3BhcmFtcy5Sb2xlQXJufWApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGFjY291bnRJZCA9IGdldEFjY291bnRJZEZyb21Bc3N1bWVkUm9sZVVzZXIoQXNzdW1lZFJvbGVVc2VyKTtcbiAgICAgICAgY29uc3QgY3JlZGVudGlhbHMgPSB7XG4gICAgICAgICAgICBhY2Nlc3NLZXlJZDogQ3JlZGVudGlhbHMuQWNjZXNzS2V5SWQsXG4gICAgICAgICAgICBzZWNyZXRBY2Nlc3NLZXk6IENyZWRlbnRpYWxzLlNlY3JldEFjY2Vzc0tleSxcbiAgICAgICAgICAgIHNlc3Npb25Ub2tlbjogQ3JlZGVudGlhbHMuU2Vzc2lvblRva2VuLFxuICAgICAgICAgICAgZXhwaXJhdGlvbjogQ3JlZGVudGlhbHMuRXhwaXJhdGlvbixcbiAgICAgICAgICAgIC4uLihDcmVkZW50aWFscy5DcmVkZW50aWFsU2NvcGUgJiYgeyBjcmVkZW50aWFsU2NvcGU6IENyZWRlbnRpYWxzLkNyZWRlbnRpYWxTY29wZSB9KSxcbiAgICAgICAgICAgIC4uLihhY2NvdW50SWQgJiYgeyBhY2NvdW50SWQgfSksXG4gICAgICAgIH07XG4gICAgICAgIHNldENyZWRlbnRpYWxGZWF0dXJlKGNyZWRlbnRpYWxzLCBcIkNSRURFTlRJQUxTX1NUU19BU1NVTUVfUk9MRVwiLCBcImlcIik7XG4gICAgICAgIHJldHVybiBjcmVkZW50aWFscztcbiAgICB9O1xufTtcbmV4cG9ydCBjb25zdCBnZXREZWZhdWx0Um9sZUFzc3VtZXJXaXRoV2ViSWRlbnRpdHkgPSAoc3RzT3B0aW9ucywgU1RTQ2xpZW50KSA9PiB7XG4gICAgbGV0IHN0c0NsaWVudDtcbiAgICByZXR1cm4gYXN5bmMgKHBhcmFtcykgPT4ge1xuICAgICAgICBpZiAoIXN0c0NsaWVudCkge1xuICAgICAgICAgICAgY29uc3QgeyBsb2dnZXIgPSBzdHNPcHRpb25zPy5wYXJlbnRDbGllbnRDb25maWc/LmxvZ2dlciwgcHJvZmlsZSA9IHN0c09wdGlvbnM/LnBhcmVudENsaWVudENvbmZpZz8ucHJvZmlsZSwgcmVnaW9uLCByZXF1ZXN0SGFuZGxlciA9IHN0c09wdGlvbnM/LnBhcmVudENsaWVudENvbmZpZz8ucmVxdWVzdEhhbmRsZXIsIGNyZWRlbnRpYWxQcm92aWRlckxvZ2dlciwgdXNlckFnZW50QXBwSWQgPSBzdHNPcHRpb25zPy5wYXJlbnRDbGllbnRDb25maWc/LnVzZXJBZ2VudEFwcElkLCB9ID0gc3RzT3B0aW9ucztcbiAgICAgICAgICAgIGNvbnN0IHJlc29sdmVkUmVnaW9uID0gYXdhaXQgcmVzb2x2ZVJlZ2lvbihyZWdpb24sIHN0c09wdGlvbnM/LnBhcmVudENsaWVudENvbmZpZz8ucmVnaW9uLCBjcmVkZW50aWFsUHJvdmlkZXJMb2dnZXIsIHtcbiAgICAgICAgICAgICAgICBsb2dnZXIsXG4gICAgICAgICAgICAgICAgcHJvZmlsZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29uc3QgaXNDb21wYXRpYmxlUmVxdWVzdEhhbmRsZXIgPSAhaXNIMihyZXF1ZXN0SGFuZGxlcik7XG4gICAgICAgICAgICBzdHNDbGllbnQgPSBuZXcgU1RTQ2xpZW50KHtcbiAgICAgICAgICAgICAgICAuLi5zdHNPcHRpb25zLFxuICAgICAgICAgICAgICAgIHVzZXJBZ2VudEFwcElkLFxuICAgICAgICAgICAgICAgIHByb2ZpbGUsXG4gICAgICAgICAgICAgICAgcmVnaW9uOiByZXNvbHZlZFJlZ2lvbixcbiAgICAgICAgICAgICAgICByZXF1ZXN0SGFuZGxlcjogaXNDb21wYXRpYmxlUmVxdWVzdEhhbmRsZXIgPyByZXF1ZXN0SGFuZGxlciA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBsb2dnZXI6IGxvZ2dlcixcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHsgQ3JlZGVudGlhbHMsIEFzc3VtZWRSb2xlVXNlciB9ID0gYXdhaXQgc3RzQ2xpZW50LnNlbmQobmV3IEFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlDb21tYW5kKHBhcmFtcykpO1xuICAgICAgICBpZiAoIUNyZWRlbnRpYWxzIHx8ICFDcmVkZW50aWFscy5BY2Nlc3NLZXlJZCB8fCAhQ3JlZGVudGlhbHMuU2VjcmV0QWNjZXNzS2V5KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgcmVzcG9uc2UgZnJvbSBTVFMuYXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eSBjYWxsIHdpdGggcm9sZSAke3BhcmFtcy5Sb2xlQXJufWApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGFjY291bnRJZCA9IGdldEFjY291bnRJZEZyb21Bc3N1bWVkUm9sZVVzZXIoQXNzdW1lZFJvbGVVc2VyKTtcbiAgICAgICAgY29uc3QgY3JlZGVudGlhbHMgPSB7XG4gICAgICAgICAgICBhY2Nlc3NLZXlJZDogQ3JlZGVudGlhbHMuQWNjZXNzS2V5SWQsXG4gICAgICAgICAgICBzZWNyZXRBY2Nlc3NLZXk6IENyZWRlbnRpYWxzLlNlY3JldEFjY2Vzc0tleSxcbiAgICAgICAgICAgIHNlc3Npb25Ub2tlbjogQ3JlZGVudGlhbHMuU2Vzc2lvblRva2VuLFxuICAgICAgICAgICAgZXhwaXJhdGlvbjogQ3JlZGVudGlhbHMuRXhwaXJhdGlvbixcbiAgICAgICAgICAgIC4uLihDcmVkZW50aWFscy5DcmVkZW50aWFsU2NvcGUgJiYgeyBjcmVkZW50aWFsU2NvcGU6IENyZWRlbnRpYWxzLkNyZWRlbnRpYWxTY29wZSB9KSxcbiAgICAgICAgICAgIC4uLihhY2NvdW50SWQgJiYgeyBhY2NvdW50SWQgfSksXG4gICAgICAgIH07XG4gICAgICAgIGlmIChhY2NvdW50SWQpIHtcbiAgICAgICAgICAgIHNldENyZWRlbnRpYWxGZWF0dXJlKGNyZWRlbnRpYWxzLCBcIlJFU09MVkVEX0FDQ09VTlRfSURcIiwgXCJUXCIpO1xuICAgICAgICB9XG4gICAgICAgIHNldENyZWRlbnRpYWxGZWF0dXJlKGNyZWRlbnRpYWxzLCBcIkNSRURFTlRJQUxTX1NUU19BU1NVTUVfUk9MRV9XRUJfSURcIiwgXCJrXCIpO1xuICAgICAgICByZXR1cm4gY3JlZGVudGlhbHM7XG4gICAgfTtcbn07XG5leHBvcnQgY29uc3QgZGVjb3JhdGVEZWZhdWx0Q3JlZGVudGlhbFByb3ZpZGVyID0gKHByb3ZpZGVyKSA9PiAoaW5wdXQpID0+IHByb3ZpZGVyKHtcbiAgICByb2xlQXNzdW1lcjogZ2V0RGVmYXVsdFJvbGVBc3N1bWVyKGlucHV0LCBpbnB1dC5zdHNDbGllbnRDdG9yKSxcbiAgICByb2xlQXNzdW1lcldpdGhXZWJJZGVudGl0eTogZ2V0RGVmYXVsdFJvbGVBc3N1bWVyV2l0aFdlYklkZW50aXR5KGlucHV0LCBpbnB1dC5zdHNDbGllbnRDdG9yKSxcbiAgICAuLi5pbnB1dCxcbn0pO1xuY29uc3QgaXNIMiA9IChyZXF1ZXN0SGFuZGxlcikgPT4ge1xuICAgIHJldHVybiByZXF1ZXN0SGFuZGxlcj8ubWV0YWRhdGE/LmhhbmRsZXJQcm90b2NvbCA9PT0gXCJoMlwiO1xufTtcbiIsICJpbXBvcnQgeyBnZXREZWZhdWx0Um9sZUFzc3VtZXIgYXMgU3RzR2V0RGVmYXVsdFJvbGVBc3N1bWVyLCBnZXREZWZhdWx0Um9sZUFzc3VtZXJXaXRoV2ViSWRlbnRpdHkgYXMgU3RzR2V0RGVmYXVsdFJvbGVBc3N1bWVyV2l0aFdlYklkZW50aXR5LCB9IGZyb20gXCIuL2RlZmF1bHRTdHNSb2xlQXNzdW1lcnNcIjtcbmltcG9ydCB7IFNUU0NsaWVudCB9IGZyb20gXCIuL1NUU0NsaWVudFwiO1xuY29uc3QgZ2V0Q3VzdG9taXphYmxlU3RzQ2xpZW50Q3RvciA9IChiYXNlQ3RvciwgY3VzdG9taXphdGlvbnMpID0+IHtcbiAgICBpZiAoIWN1c3RvbWl6YXRpb25zKVxuICAgICAgICByZXR1cm4gYmFzZUN0b3I7XG4gICAgZWxzZVxuICAgICAgICByZXR1cm4gY2xhc3MgQ3VzdG9taXphYmxlU1RTQ2xpZW50IGV4dGVuZHMgYmFzZUN0b3Ige1xuICAgICAgICAgICAgY29uc3RydWN0b3IoY29uZmlnKSB7XG4gICAgICAgICAgICAgICAgc3VwZXIoY29uZmlnKTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGN1c3RvbWl6YXRpb24gb2YgY3VzdG9taXphdGlvbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGN1c3RvbWl6YXRpb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbn07XG5leHBvcnQgY29uc3QgZ2V0RGVmYXVsdFJvbGVBc3N1bWVyID0gKHN0c09wdGlvbnMgPSB7fSwgc3RzUGx1Z2lucykgPT4gU3RzR2V0RGVmYXVsdFJvbGVBc3N1bWVyKHN0c09wdGlvbnMsIGdldEN1c3RvbWl6YWJsZVN0c0NsaWVudEN0b3IoU1RTQ2xpZW50LCBzdHNQbHVnaW5zKSk7XG5leHBvcnQgY29uc3QgZ2V0RGVmYXVsdFJvbGVBc3N1bWVyV2l0aFdlYklkZW50aXR5ID0gKHN0c09wdGlvbnMgPSB7fSwgc3RzUGx1Z2lucykgPT4gU3RzR2V0RGVmYXVsdFJvbGVBc3N1bWVyV2l0aFdlYklkZW50aXR5KHN0c09wdGlvbnMsIGdldEN1c3RvbWl6YWJsZVN0c0NsaWVudEN0b3IoU1RTQ2xpZW50LCBzdHNQbHVnaW5zKSk7XG5leHBvcnQgY29uc3QgZGVjb3JhdGVEZWZhdWx0Q3JlZGVudGlhbFByb3ZpZGVyID0gKHByb3ZpZGVyKSA9PiAoaW5wdXQpID0+IHByb3ZpZGVyKHtcbiAgICByb2xlQXNzdW1lcjogZ2V0RGVmYXVsdFJvbGVBc3N1bWVyKGlucHV0KSxcbiAgICByb2xlQXNzdW1lcldpdGhXZWJJZGVudGl0eTogZ2V0RGVmYXVsdFJvbGVBc3N1bWVyV2l0aFdlYklkZW50aXR5KGlucHV0KSxcbiAgICAuLi5pbnB1dCxcbn0pO1xuIiwgImV4cG9ydCAqIGZyb20gXCIuL1NUU0NsaWVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vU1RTXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21tYW5kc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vc2NoZW1hcy9zY2hlbWFzXzBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21vZGVscy9lcnJvcnNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21vZGVscy9tb2RlbHNfMFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZGVmYXVsdFJvbGVBc3N1bWVyc1wiO1xuZXhwb3J0IHsgU1RTU2VydmljZUV4Y2VwdGlvbiB9IGZyb20gXCIuL21vZGVscy9TVFNTZXJ2aWNlRXhjZXB0aW9uXCI7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgc2hhcmVkSW5pRmlsZUxvYWRlciA9IHJlcXVpcmUoJ0BzbWl0aHkvc2hhcmVkLWluaS1maWxlLWxvYWRlcicpO1xudmFyIHByb3BlcnR5UHJvdmlkZXIgPSByZXF1aXJlKCdAc21pdGh5L3Byb3BlcnR5LXByb3ZpZGVyJyk7XG52YXIgY2hpbGRfcHJvY2VzcyA9IHJlcXVpcmUoJ2NoaWxkX3Byb2Nlc3MnKTtcbnZhciB1dGlsID0gcmVxdWlyZSgndXRpbCcpO1xudmFyIGNsaWVudCA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL2NvcmUvY2xpZW50Jyk7XG5cbmNvbnN0IGdldFZhbGlkYXRlZFByb2Nlc3NDcmVkZW50aWFscyA9IChwcm9maWxlTmFtZSwgZGF0YSwgcHJvZmlsZXMpID0+IHtcbiAgICBpZiAoZGF0YS5WZXJzaW9uICE9PSAxKSB7XG4gICAgICAgIHRocm93IEVycm9yKGBQcm9maWxlICR7cHJvZmlsZU5hbWV9IGNyZWRlbnRpYWxfcHJvY2VzcyBkaWQgbm90IHJldHVybiBWZXJzaW9uIDEuYCk7XG4gICAgfVxuICAgIGlmIChkYXRhLkFjY2Vzc0tleUlkID09PSB1bmRlZmluZWQgfHwgZGF0YS5TZWNyZXRBY2Nlc3NLZXkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aHJvdyBFcnJvcihgUHJvZmlsZSAke3Byb2ZpbGVOYW1lfSBjcmVkZW50aWFsX3Byb2Nlc3MgcmV0dXJuZWQgaW52YWxpZCBjcmVkZW50aWFscy5gKTtcbiAgICB9XG4gICAgaWYgKGRhdGEuRXhwaXJhdGlvbikge1xuICAgICAgICBjb25zdCBjdXJyZW50VGltZSA9IG5ldyBEYXRlKCk7XG4gICAgICAgIGNvbnN0IGV4cGlyZVRpbWUgPSBuZXcgRGF0ZShkYXRhLkV4cGlyYXRpb24pO1xuICAgICAgICBpZiAoZXhwaXJlVGltZSA8IGN1cnJlbnRUaW1lKSB7XG4gICAgICAgICAgICB0aHJvdyBFcnJvcihgUHJvZmlsZSAke3Byb2ZpbGVOYW1lfSBjcmVkZW50aWFsX3Byb2Nlc3MgcmV0dXJuZWQgZXhwaXJlZCBjcmVkZW50aWFscy5gKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBsZXQgYWNjb3VudElkID0gZGF0YS5BY2NvdW50SWQ7XG4gICAgaWYgKCFhY2NvdW50SWQgJiYgcHJvZmlsZXM/Lltwcm9maWxlTmFtZV0/LmF3c19hY2NvdW50X2lkKSB7XG4gICAgICAgIGFjY291bnRJZCA9IHByb2ZpbGVzW3Byb2ZpbGVOYW1lXS5hd3NfYWNjb3VudF9pZDtcbiAgICB9XG4gICAgY29uc3QgY3JlZGVudGlhbHMgPSB7XG4gICAgICAgIGFjY2Vzc0tleUlkOiBkYXRhLkFjY2Vzc0tleUlkLFxuICAgICAgICBzZWNyZXRBY2Nlc3NLZXk6IGRhdGEuU2VjcmV0QWNjZXNzS2V5LFxuICAgICAgICAuLi4oZGF0YS5TZXNzaW9uVG9rZW4gJiYgeyBzZXNzaW9uVG9rZW46IGRhdGEuU2Vzc2lvblRva2VuIH0pLFxuICAgICAgICAuLi4oZGF0YS5FeHBpcmF0aW9uICYmIHsgZXhwaXJhdGlvbjogbmV3IERhdGUoZGF0YS5FeHBpcmF0aW9uKSB9KSxcbiAgICAgICAgLi4uKGRhdGEuQ3JlZGVudGlhbFNjb3BlICYmIHsgY3JlZGVudGlhbFNjb3BlOiBkYXRhLkNyZWRlbnRpYWxTY29wZSB9KSxcbiAgICAgICAgLi4uKGFjY291bnRJZCAmJiB7IGFjY291bnRJZCB9KSxcbiAgICB9O1xuICAgIGNsaWVudC5zZXRDcmVkZW50aWFsRmVhdHVyZShjcmVkZW50aWFscywgXCJDUkVERU5USUFMU19QUk9DRVNTXCIsIFwid1wiKTtcbiAgICByZXR1cm4gY3JlZGVudGlhbHM7XG59O1xuXG5jb25zdCByZXNvbHZlUHJvY2Vzc0NyZWRlbnRpYWxzID0gYXN5bmMgKHByb2ZpbGVOYW1lLCBwcm9maWxlcywgbG9nZ2VyKSA9PiB7XG4gICAgY29uc3QgcHJvZmlsZSA9IHByb2ZpbGVzW3Byb2ZpbGVOYW1lXTtcbiAgICBpZiAocHJvZmlsZXNbcHJvZmlsZU5hbWVdKSB7XG4gICAgICAgIGNvbnN0IGNyZWRlbnRpYWxQcm9jZXNzID0gcHJvZmlsZVtcImNyZWRlbnRpYWxfcHJvY2Vzc1wiXTtcbiAgICAgICAgaWYgKGNyZWRlbnRpYWxQcm9jZXNzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IGV4ZWNQcm9taXNlID0gdXRpbC5wcm9taXNpZnkoc2hhcmVkSW5pRmlsZUxvYWRlci5leHRlcm5hbERhdGFJbnRlcmNlcHRvcj8uZ2V0VG9rZW5SZWNvcmQ/LigpLmV4ZWMgPz8gY2hpbGRfcHJvY2Vzcy5leGVjKTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBzdGRvdXQgfSA9IGF3YWl0IGV4ZWNQcm9taXNlKGNyZWRlbnRpYWxQcm9jZXNzKTtcbiAgICAgICAgICAgICAgICBsZXQgZGF0YTtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBkYXRhID0gSlNPTi5wYXJzZShzdGRvdXQudHJpbSgpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2F0Y2gge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBFcnJvcihgUHJvZmlsZSAke3Byb2ZpbGVOYW1lfSBjcmVkZW50aWFsX3Byb2Nlc3MgcmV0dXJuZWQgaW52YWxpZCBKU09OLmApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gZ2V0VmFsaWRhdGVkUHJvY2Vzc0NyZWRlbnRpYWxzKHByb2ZpbGVOYW1lLCBkYXRhLCBwcm9maWxlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoZXJyb3IubWVzc2FnZSwgeyBsb2dnZXIgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoYFByb2ZpbGUgJHtwcm9maWxlTmFtZX0gZGlkIG5vdCBjb250YWluIGNyZWRlbnRpYWxfcHJvY2Vzcy5gLCB7IGxvZ2dlciB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKGBQcm9maWxlICR7cHJvZmlsZU5hbWV9IGNvdWxkIG5vdCBiZSBmb3VuZCBpbiBzaGFyZWQgY3JlZGVudGlhbHMgZmlsZS5gLCB7XG4gICAgICAgICAgICBsb2dnZXIsXG4gICAgICAgIH0pO1xuICAgIH1cbn07XG5cbmNvbnN0IGZyb21Qcm9jZXNzID0gKGluaXQgPSB7fSkgPT4gYXN5bmMgKHsgY2FsbGVyQ2xpZW50Q29uZmlnIH0gPSB7fSkgPT4ge1xuICAgIGluaXQubG9nZ2VyPy5kZWJ1ZyhcIkBhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItcHJvY2VzcyAtIGZyb21Qcm9jZXNzXCIpO1xuICAgIGNvbnN0IHByb2ZpbGVzID0gYXdhaXQgc2hhcmVkSW5pRmlsZUxvYWRlci5wYXJzZUtub3duRmlsZXMoaW5pdCk7XG4gICAgcmV0dXJuIHJlc29sdmVQcm9jZXNzQ3JlZGVudGlhbHMoc2hhcmVkSW5pRmlsZUxvYWRlci5nZXRQcm9maWxlTmFtZSh7XG4gICAgICAgIHByb2ZpbGU6IGluaXQucHJvZmlsZSA/PyBjYWxsZXJDbGllbnRDb25maWc/LnByb2ZpbGUsXG4gICAgfSksIHByb2ZpbGVzLCBpbml0LmxvZ2dlcik7XG59O1xuXG5leHBvcnRzLmZyb21Qcm9jZXNzID0gZnJvbVByb2Nlc3M7XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19jcmVhdGVCaW5kaW5nID0gKHRoaXMgJiYgdGhpcy5fX2NyZWF0ZUJpbmRpbmcpIHx8IChPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwgayk7XG4gICAgaWYgKCFkZXNjIHx8IChcImdldFwiIGluIGRlc2MgPyAhbS5fX2VzTW9kdWxlIDogZGVzYy53cml0YWJsZSB8fCBkZXNjLmNvbmZpZ3VyYWJsZSkpIHtcbiAgICAgIGRlc2MgPSB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiBtW2tdOyB9IH07XG4gICAgfVxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBrMiwgZGVzYyk7XG59KSA6IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgb1trMl0gPSBtW2tdO1xufSkpO1xudmFyIF9fc2V0TW9kdWxlRGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19zZXRNb2R1bGVEZWZhdWx0KSB8fCAoT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCB2KSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIFwiZGVmYXVsdFwiLCB7IGVudW1lcmFibGU6IHRydWUsIHZhbHVlOiB2IH0pO1xufSkgOiBmdW5jdGlvbihvLCB2KSB7XG4gICAgb1tcImRlZmF1bHRcIl0gPSB2O1xufSk7XG52YXIgX19pbXBvcnRTdGFyID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydFN0YXIpIHx8IChmdW5jdGlvbiAoKSB7XG4gICAgdmFyIG93bktleXMgPSBmdW5jdGlvbihvKSB7XG4gICAgICAgIG93bktleXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyB8fCBmdW5jdGlvbiAobykge1xuICAgICAgICAgICAgdmFyIGFyID0gW107XG4gICAgICAgICAgICBmb3IgKHZhciBrIGluIG8pIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobywgaykpIGFyW2FyLmxlbmd0aF0gPSBrO1xuICAgICAgICAgICAgcmV0dXJuIGFyO1xuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gb3duS2V5cyhvKTtcbiAgICB9O1xuICAgIHJldHVybiBmdW5jdGlvbiAobW9kKSB7XG4gICAgICAgIGlmIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpIHJldHVybiBtb2Q7XG4gICAgICAgIHZhciByZXN1bHQgPSB7fTtcbiAgICAgICAgaWYgKG1vZCAhPSBudWxsKSBmb3IgKHZhciBrID0gb3duS2V5cyhtb2QpLCBpID0gMDsgaSA8IGsubGVuZ3RoOyBpKyspIGlmIChrW2ldICE9PSBcImRlZmF1bHRcIikgX19jcmVhdGVCaW5kaW5nKHJlc3VsdCwgbW9kLCBrW2ldKTtcbiAgICAgICAgX19zZXRNb2R1bGVEZWZhdWx0KHJlc3VsdCwgbW9kKTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9O1xufSkoKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuZnJvbVdlYlRva2VuID0gdm9pZCAwO1xuY29uc3QgZnJvbVdlYlRva2VuID0gKGluaXQpID0+IGFzeW5jIChhd3NJZGVudGl0eVByb3BlcnRpZXMpID0+IHtcbiAgICBpbml0LmxvZ2dlcj8uZGVidWcoXCJAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLXdlYi1pZGVudGl0eSAtIGZyb21XZWJUb2tlblwiKTtcbiAgICBjb25zdCB7IHJvbGVBcm4sIHJvbGVTZXNzaW9uTmFtZSwgd2ViSWRlbnRpdHlUb2tlbiwgcHJvdmlkZXJJZCwgcG9saWN5QXJucywgcG9saWN5LCBkdXJhdGlvblNlY29uZHMgfSA9IGluaXQ7XG4gICAgbGV0IHsgcm9sZUFzc3VtZXJXaXRoV2ViSWRlbnRpdHkgfSA9IGluaXQ7XG4gICAgaWYgKCFyb2xlQXNzdW1lcldpdGhXZWJJZGVudGl0eSkge1xuICAgICAgICBjb25zdCB7IGdldERlZmF1bHRSb2xlQXNzdW1lcldpdGhXZWJJZGVudGl0eSB9ID0gYXdhaXQgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiBfX2ltcG9ydFN0YXIocmVxdWlyZShcIkBhd3Mtc2RrL25lc3RlZC1jbGllbnRzL3N0c1wiKSkpO1xuICAgICAgICByb2xlQXNzdW1lcldpdGhXZWJJZGVudGl0eSA9IGdldERlZmF1bHRSb2xlQXNzdW1lcldpdGhXZWJJZGVudGl0eSh7XG4gICAgICAgICAgICAuLi5pbml0LmNsaWVudENvbmZpZyxcbiAgICAgICAgICAgIGNyZWRlbnRpYWxQcm92aWRlckxvZ2dlcjogaW5pdC5sb2dnZXIsXG4gICAgICAgICAgICBwYXJlbnRDbGllbnRDb25maWc6IHtcbiAgICAgICAgICAgICAgICAuLi5hd3NJZGVudGl0eVByb3BlcnRpZXM/LmNhbGxlckNsaWVudENvbmZpZyxcbiAgICAgICAgICAgICAgICAuLi5pbml0LnBhcmVudENsaWVudENvbmZpZyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sIGluaXQuY2xpZW50UGx1Z2lucyk7XG4gICAgfVxuICAgIHJldHVybiByb2xlQXNzdW1lcldpdGhXZWJJZGVudGl0eSh7XG4gICAgICAgIFJvbGVBcm46IHJvbGVBcm4sXG4gICAgICAgIFJvbGVTZXNzaW9uTmFtZTogcm9sZVNlc3Npb25OYW1lID8/IGBhd3Mtc2RrLWpzLXNlc3Npb24tJHtEYXRlLm5vdygpfWAsXG4gICAgICAgIFdlYklkZW50aXR5VG9rZW46IHdlYklkZW50aXR5VG9rZW4sXG4gICAgICAgIFByb3ZpZGVySWQ6IHByb3ZpZGVySWQsXG4gICAgICAgIFBvbGljeUFybnM6IHBvbGljeUFybnMsXG4gICAgICAgIFBvbGljeTogcG9saWN5LFxuICAgICAgICBEdXJhdGlvblNlY29uZHM6IGR1cmF0aW9uU2Vjb25kcyxcbiAgICB9KTtcbn07XG5leHBvcnRzLmZyb21XZWJUb2tlbiA9IGZyb21XZWJUb2tlbjtcbiIsICJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuZnJvbVRva2VuRmlsZSA9IHZvaWQgMDtcbmNvbnN0IGNsaWVudF8xID0gcmVxdWlyZShcIkBhd3Mtc2RrL2NvcmUvY2xpZW50XCIpO1xuY29uc3QgcHJvcGVydHlfcHJvdmlkZXJfMSA9IHJlcXVpcmUoXCJAc21pdGh5L3Byb3BlcnR5LXByb3ZpZGVyXCIpO1xuY29uc3Qgc2hhcmVkX2luaV9maWxlX2xvYWRlcl8xID0gcmVxdWlyZShcIkBzbWl0aHkvc2hhcmVkLWluaS1maWxlLWxvYWRlclwiKTtcbmNvbnN0IGZzXzEgPSByZXF1aXJlKFwiZnNcIik7XG5jb25zdCBmcm9tV2ViVG9rZW5fMSA9IHJlcXVpcmUoXCIuL2Zyb21XZWJUb2tlblwiKTtcbmNvbnN0IEVOVl9UT0tFTl9GSUxFID0gXCJBV1NfV0VCX0lERU5USVRZX1RPS0VOX0ZJTEVcIjtcbmNvbnN0IEVOVl9ST0xFX0FSTiA9IFwiQVdTX1JPTEVfQVJOXCI7XG5jb25zdCBFTlZfUk9MRV9TRVNTSU9OX05BTUUgPSBcIkFXU19ST0xFX1NFU1NJT05fTkFNRVwiO1xuY29uc3QgZnJvbVRva2VuRmlsZSA9IChpbml0ID0ge30pID0+IGFzeW5jIChhd3NJZGVudGl0eVByb3BlcnRpZXMpID0+IHtcbiAgICBpbml0LmxvZ2dlcj8uZGVidWcoXCJAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLXdlYi1pZGVudGl0eSAtIGZyb21Ub2tlbkZpbGVcIik7XG4gICAgY29uc3Qgd2ViSWRlbnRpdHlUb2tlbkZpbGUgPSBpbml0Py53ZWJJZGVudGl0eVRva2VuRmlsZSA/PyBwcm9jZXNzLmVudltFTlZfVE9LRU5fRklMRV07XG4gICAgY29uc3Qgcm9sZUFybiA9IGluaXQ/LnJvbGVBcm4gPz8gcHJvY2Vzcy5lbnZbRU5WX1JPTEVfQVJOXTtcbiAgICBjb25zdCByb2xlU2Vzc2lvbk5hbWUgPSBpbml0Py5yb2xlU2Vzc2lvbk5hbWUgPz8gcHJvY2Vzcy5lbnZbRU5WX1JPTEVfU0VTU0lPTl9OQU1FXTtcbiAgICBpZiAoIXdlYklkZW50aXR5VG9rZW5GaWxlIHx8ICFyb2xlQXJuKSB7XG4gICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eV9wcm92aWRlcl8xLkNyZWRlbnRpYWxzUHJvdmlkZXJFcnJvcihcIldlYiBpZGVudGl0eSBjb25maWd1cmF0aW9uIG5vdCBzcGVjaWZpZWRcIiwge1xuICAgICAgICAgICAgbG9nZ2VyOiBpbml0LmxvZ2dlcixcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IGNyZWRlbnRpYWxzID0gYXdhaXQgKDAsIGZyb21XZWJUb2tlbl8xLmZyb21XZWJUb2tlbikoe1xuICAgICAgICAuLi5pbml0LFxuICAgICAgICB3ZWJJZGVudGl0eVRva2VuOiBzaGFyZWRfaW5pX2ZpbGVfbG9hZGVyXzEuZXh0ZXJuYWxEYXRhSW50ZXJjZXB0b3I/LmdldFRva2VuUmVjb3JkPy4oKVt3ZWJJZGVudGl0eVRva2VuRmlsZV0gPz9cbiAgICAgICAgICAgICgwLCBmc18xLnJlYWRGaWxlU3luYykod2ViSWRlbnRpdHlUb2tlbkZpbGUsIHsgZW5jb2Rpbmc6IFwiYXNjaWlcIiB9KSxcbiAgICAgICAgcm9sZUFybixcbiAgICAgICAgcm9sZVNlc3Npb25OYW1lLFxuICAgIH0pKGF3c0lkZW50aXR5UHJvcGVydGllcyk7XG4gICAgaWYgKHdlYklkZW50aXR5VG9rZW5GaWxlID09PSBwcm9jZXNzLmVudltFTlZfVE9LRU5fRklMRV0pIHtcbiAgICAgICAgKDAsIGNsaWVudF8xLnNldENyZWRlbnRpYWxGZWF0dXJlKShjcmVkZW50aWFscywgXCJDUkVERU5USUFMU19FTlZfVkFSU19TVFNfV0VCX0lEX1RPS0VOXCIsIFwiaFwiKTtcbiAgICB9XG4gICAgcmV0dXJuIGNyZWRlbnRpYWxzO1xufTtcbmV4cG9ydHMuZnJvbVRva2VuRmlsZSA9IGZyb21Ub2tlbkZpbGU7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgZnJvbVRva2VuRmlsZSA9IHJlcXVpcmUoJy4vZnJvbVRva2VuRmlsZScpO1xudmFyIGZyb21XZWJUb2tlbiA9IHJlcXVpcmUoJy4vZnJvbVdlYlRva2VuJyk7XG5cblxuXG5PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZnJvbVRva2VuRmlsZSwgJ19fcHJvdG9fXycpICYmXG5cdCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXhwb3J0cywgJ19fcHJvdG9fXycpICYmXG5cdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19wcm90b19fJywge1xuXHRcdGVudW1lcmFibGU6IHRydWUsXG5cdFx0dmFsdWU6IGZyb21Ub2tlbkZpbGVbJ19fcHJvdG9fXyddXG5cdH0pO1xuXG5PYmplY3Qua2V5cyhmcm9tVG9rZW5GaWxlKS5mb3JFYWNoKGZ1bmN0aW9uIChrKSB7XG5cdGlmIChrICE9PSAnZGVmYXVsdCcgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChleHBvcnRzLCBrKSkgZXhwb3J0c1trXSA9IGZyb21Ub2tlbkZpbGVba107XG59KTtcbk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChmcm9tV2ViVG9rZW4sICdfX3Byb3RvX18nKSAmJlxuXHQhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGV4cG9ydHMsICdfX3Byb3RvX18nKSAmJlxuXHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fcHJvdG9fXycsIHtcblx0XHRlbnVtZXJhYmxlOiB0cnVlLFxuXHRcdHZhbHVlOiBmcm9tV2ViVG9rZW5bJ19fcHJvdG9fXyddXG5cdH0pO1xuXG5PYmplY3Qua2V5cyhmcm9tV2ViVG9rZW4pLmZvckVhY2goZnVuY3Rpb24gKGspIHtcblx0aWYgKGsgIT09ICdkZWZhdWx0JyAmJiAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGV4cG9ydHMsIGspKSBleHBvcnRzW2tdID0gZnJvbVdlYlRva2VuW2tdO1xufSk7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgc2hhcmVkSW5pRmlsZUxvYWRlciA9IHJlcXVpcmUoJ0BzbWl0aHkvc2hhcmVkLWluaS1maWxlLWxvYWRlcicpO1xudmFyIHByb3BlcnR5UHJvdmlkZXIgPSByZXF1aXJlKCdAc21pdGh5L3Byb3BlcnR5LXByb3ZpZGVyJyk7XG52YXIgY2xpZW50ID0gcmVxdWlyZSgnQGF3cy1zZGsvY29yZS9jbGllbnQnKTtcbnZhciBjcmVkZW50aWFsUHJvdmlkZXJMb2dpbiA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbG9naW4nKTtcblxuY29uc3QgcmVzb2x2ZUNyZWRlbnRpYWxTb3VyY2UgPSAoY3JlZGVudGlhbFNvdXJjZSwgcHJvZmlsZU5hbWUsIGxvZ2dlcikgPT4ge1xuICAgIGNvbnN0IHNvdXJjZVByb3ZpZGVyc01hcCA9IHtcbiAgICAgICAgRWNzQ29udGFpbmVyOiBhc3luYyAob3B0aW9ucykgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBmcm9tSHR0cCB9ID0gYXdhaXQgaW1wb3J0KCdAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLWh0dHAnKTtcbiAgICAgICAgICAgIGNvbnN0IHsgZnJvbUNvbnRhaW5lck1ldGFkYXRhIH0gPSBhd2FpdCBpbXBvcnQoJ0BzbWl0aHkvY3JlZGVudGlhbC1wcm92aWRlci1pbWRzJyk7XG4gICAgICAgICAgICBsb2dnZXI/LmRlYnVnKFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1pbmkgLSBjcmVkZW50aWFsX3NvdXJjZSBpcyBFY3NDb250YWluZXJcIik7XG4gICAgICAgICAgICByZXR1cm4gYXN5bmMgKCkgPT4gcHJvcGVydHlQcm92aWRlci5jaGFpbihmcm9tSHR0cChvcHRpb25zID8/IHt9KSwgZnJvbUNvbnRhaW5lck1ldGFkYXRhKG9wdGlvbnMpKSgpLnRoZW4oc2V0TmFtZWRQcm92aWRlcik7XG4gICAgICAgIH0sXG4gICAgICAgIEVjMkluc3RhbmNlTWV0YWRhdGE6IGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgICAgICAgICBsb2dnZXI/LmRlYnVnKFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1pbmkgLSBjcmVkZW50aWFsX3NvdXJjZSBpcyBFYzJJbnN0YW5jZU1ldGFkYXRhXCIpO1xuICAgICAgICAgICAgY29uc3QgeyBmcm9tSW5zdGFuY2VNZXRhZGF0YSB9ID0gYXdhaXQgaW1wb3J0KCdAc21pdGh5L2NyZWRlbnRpYWwtcHJvdmlkZXItaW1kcycpO1xuICAgICAgICAgICAgcmV0dXJuIGFzeW5jICgpID0+IGZyb21JbnN0YW5jZU1ldGFkYXRhKG9wdGlvbnMpKCkudGhlbihzZXROYW1lZFByb3ZpZGVyKTtcbiAgICAgICAgfSxcbiAgICAgICAgRW52aXJvbm1lbnQ6IGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgICAgICAgICBsb2dnZXI/LmRlYnVnKFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1pbmkgLSBjcmVkZW50aWFsX3NvdXJjZSBpcyBFbnZpcm9ubWVudFwiKTtcbiAgICAgICAgICAgIGNvbnN0IHsgZnJvbUVudiB9ID0gYXdhaXQgaW1wb3J0KCdAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLWVudicpO1xuICAgICAgICAgICAgcmV0dXJuIGFzeW5jICgpID0+IGZyb21FbnYob3B0aW9ucykoKS50aGVuKHNldE5hbWVkUHJvdmlkZXIpO1xuICAgICAgICB9LFxuICAgIH07XG4gICAgaWYgKGNyZWRlbnRpYWxTb3VyY2UgaW4gc291cmNlUHJvdmlkZXJzTWFwKSB7XG4gICAgICAgIHJldHVybiBzb3VyY2VQcm92aWRlcnNNYXBbY3JlZGVudGlhbFNvdXJjZV07XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoYFVuc3VwcG9ydGVkIGNyZWRlbnRpYWwgc291cmNlIGluIHByb2ZpbGUgJHtwcm9maWxlTmFtZX0uIEdvdCAke2NyZWRlbnRpYWxTb3VyY2V9LCBgICtcbiAgICAgICAgICAgIGBleHBlY3RlZCBFY3NDb250YWluZXIgb3IgRWMySW5zdGFuY2VNZXRhZGF0YSBvciBFbnZpcm9ubWVudC5gLCB7IGxvZ2dlciB9KTtcbiAgICB9XG59O1xuY29uc3Qgc2V0TmFtZWRQcm92aWRlciA9IChjcmVkcykgPT4gY2xpZW50LnNldENyZWRlbnRpYWxGZWF0dXJlKGNyZWRzLCBcIkNSRURFTlRJQUxTX1BST0ZJTEVfTkFNRURfUFJPVklERVJcIiwgXCJwXCIpO1xuXG5jb25zdCBpc0Fzc3VtZVJvbGVQcm9maWxlID0gKGFyZywgeyBwcm9maWxlID0gXCJkZWZhdWx0XCIsIGxvZ2dlciB9ID0ge30pID0+IHtcbiAgICByZXR1cm4gKEJvb2xlYW4oYXJnKSAmJlxuICAgICAgICB0eXBlb2YgYXJnID09PSBcIm9iamVjdFwiICYmXG4gICAgICAgIHR5cGVvZiBhcmcucm9sZV9hcm4gPT09IFwic3RyaW5nXCIgJiZcbiAgICAgICAgW1widW5kZWZpbmVkXCIsIFwic3RyaW5nXCJdLmluZGV4T2YodHlwZW9mIGFyZy5yb2xlX3Nlc3Npb25fbmFtZSkgPiAtMSAmJlxuICAgICAgICBbXCJ1bmRlZmluZWRcIiwgXCJzdHJpbmdcIl0uaW5kZXhPZih0eXBlb2YgYXJnLmV4dGVybmFsX2lkKSA+IC0xICYmXG4gICAgICAgIFtcInVuZGVmaW5lZFwiLCBcInN0cmluZ1wiXS5pbmRleE9mKHR5cGVvZiBhcmcubWZhX3NlcmlhbCkgPiAtMSAmJlxuICAgICAgICAoaXNBc3N1bWVSb2xlV2l0aFNvdXJjZVByb2ZpbGUoYXJnLCB7IHByb2ZpbGUsIGxvZ2dlciB9KSB8fCBpc0NyZWRlbnRpYWxTb3VyY2VQcm9maWxlKGFyZywgeyBwcm9maWxlLCBsb2dnZXIgfSkpKTtcbn07XG5jb25zdCBpc0Fzc3VtZVJvbGVXaXRoU291cmNlUHJvZmlsZSA9IChhcmcsIHsgcHJvZmlsZSwgbG9nZ2VyIH0pID0+IHtcbiAgICBjb25zdCB3aXRoU291cmNlUHJvZmlsZSA9IHR5cGVvZiBhcmcuc291cmNlX3Byb2ZpbGUgPT09IFwic3RyaW5nXCIgJiYgdHlwZW9mIGFyZy5jcmVkZW50aWFsX3NvdXJjZSA9PT0gXCJ1bmRlZmluZWRcIjtcbiAgICBpZiAod2l0aFNvdXJjZVByb2ZpbGUpIHtcbiAgICAgICAgbG9nZ2VyPy5kZWJ1Zz8uKGAgICAgJHtwcm9maWxlfSBpc0Fzc3VtZVJvbGVXaXRoU291cmNlUHJvZmlsZSBzb3VyY2VfcHJvZmlsZT0ke2FyZy5zb3VyY2VfcHJvZmlsZX1gKTtcbiAgICB9XG4gICAgcmV0dXJuIHdpdGhTb3VyY2VQcm9maWxlO1xufTtcbmNvbnN0IGlzQ3JlZGVudGlhbFNvdXJjZVByb2ZpbGUgPSAoYXJnLCB7IHByb2ZpbGUsIGxvZ2dlciB9KSA9PiB7XG4gICAgY29uc3Qgd2l0aFByb3ZpZGVyUHJvZmlsZSA9IHR5cGVvZiBhcmcuY3JlZGVudGlhbF9zb3VyY2UgPT09IFwic3RyaW5nXCIgJiYgdHlwZW9mIGFyZy5zb3VyY2VfcHJvZmlsZSA9PT0gXCJ1bmRlZmluZWRcIjtcbiAgICBpZiAod2l0aFByb3ZpZGVyUHJvZmlsZSkge1xuICAgICAgICBsb2dnZXI/LmRlYnVnPy4oYCAgICAke3Byb2ZpbGV9IGlzQ3JlZGVudGlhbFNvdXJjZVByb2ZpbGUgY3JlZGVudGlhbF9zb3VyY2U9JHthcmcuY3JlZGVudGlhbF9zb3VyY2V9YCk7XG4gICAgfVxuICAgIHJldHVybiB3aXRoUHJvdmlkZXJQcm9maWxlO1xufTtcbmNvbnN0IHJlc29sdmVBc3N1bWVSb2xlQ3JlZGVudGlhbHMgPSBhc3luYyAocHJvZmlsZU5hbWUsIHByb2ZpbGVzLCBvcHRpb25zLCBjYWxsZXJDbGllbnRDb25maWcsIHZpc2l0ZWRQcm9maWxlcyA9IHt9LCByZXNvbHZlUHJvZmlsZURhdGEpID0+IHtcbiAgICBvcHRpb25zLmxvZ2dlcj8uZGVidWcoXCJAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLWluaSAtIHJlc29sdmVBc3N1bWVSb2xlQ3JlZGVudGlhbHMgKFNUUylcIik7XG4gICAgY29uc3QgcHJvZmlsZURhdGEgPSBwcm9maWxlc1twcm9maWxlTmFtZV07XG4gICAgY29uc3QgeyBzb3VyY2VfcHJvZmlsZSwgcmVnaW9uIH0gPSBwcm9maWxlRGF0YTtcbiAgICBpZiAoIW9wdGlvbnMucm9sZUFzc3VtZXIpIHtcbiAgICAgICAgY29uc3QgeyBnZXREZWZhdWx0Um9sZUFzc3VtZXIgfSA9IGF3YWl0IGltcG9ydCgnQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvc3RzJyk7XG4gICAgICAgIG9wdGlvbnMucm9sZUFzc3VtZXIgPSBnZXREZWZhdWx0Um9sZUFzc3VtZXIoe1xuICAgICAgICAgICAgLi4ub3B0aW9ucy5jbGllbnRDb25maWcsXG4gICAgICAgICAgICBjcmVkZW50aWFsUHJvdmlkZXJMb2dnZXI6IG9wdGlvbnMubG9nZ2VyLFxuICAgICAgICAgICAgcGFyZW50Q2xpZW50Q29uZmlnOiB7XG4gICAgICAgICAgICAgICAgLi4uY2FsbGVyQ2xpZW50Q29uZmlnLFxuICAgICAgICAgICAgICAgIC4uLm9wdGlvbnM/LnBhcmVudENsaWVudENvbmZpZyxcbiAgICAgICAgICAgICAgICByZWdpb246IHJlZ2lvbiA/PyBvcHRpb25zPy5wYXJlbnRDbGllbnRDb25maWc/LnJlZ2lvbiA/PyBjYWxsZXJDbGllbnRDb25maWc/LnJlZ2lvbixcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sIG9wdGlvbnMuY2xpZW50UGx1Z2lucyk7XG4gICAgfVxuICAgIGlmIChzb3VyY2VfcHJvZmlsZSAmJiBzb3VyY2VfcHJvZmlsZSBpbiB2aXNpdGVkUHJvZmlsZXMpIHtcbiAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKGBEZXRlY3RlZCBhIGN5Y2xlIGF0dGVtcHRpbmcgdG8gcmVzb2x2ZSBjcmVkZW50aWFscyBmb3IgcHJvZmlsZWAgK1xuICAgICAgICAgICAgYCAke3NoYXJlZEluaUZpbGVMb2FkZXIuZ2V0UHJvZmlsZU5hbWUob3B0aW9ucyl9LiBQcm9maWxlcyB2aXNpdGVkOiBgICtcbiAgICAgICAgICAgIE9iamVjdC5rZXlzKHZpc2l0ZWRQcm9maWxlcykuam9pbihcIiwgXCIpLCB7IGxvZ2dlcjogb3B0aW9ucy5sb2dnZXIgfSk7XG4gICAgfVxuICAgIG9wdGlvbnMubG9nZ2VyPy5kZWJ1ZyhgQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1pbmkgLSBmaW5kaW5nIGNyZWRlbnRpYWwgcmVzb2x2ZXIgdXNpbmcgJHtzb3VyY2VfcHJvZmlsZSA/IGBzb3VyY2VfcHJvZmlsZT1bJHtzb3VyY2VfcHJvZmlsZX1dYCA6IGBwcm9maWxlPVske3Byb2ZpbGVOYW1lfV1gfWApO1xuICAgIGNvbnN0IHNvdXJjZUNyZWRzUHJvdmlkZXIgPSBzb3VyY2VfcHJvZmlsZVxuICAgICAgICA/IHJlc29sdmVQcm9maWxlRGF0YShzb3VyY2VfcHJvZmlsZSwgcHJvZmlsZXMsIG9wdGlvbnMsIGNhbGxlckNsaWVudENvbmZpZywge1xuICAgICAgICAgICAgLi4udmlzaXRlZFByb2ZpbGVzLFxuICAgICAgICAgICAgW3NvdXJjZV9wcm9maWxlXTogdHJ1ZSxcbiAgICAgICAgfSwgaXNDcmVkZW50aWFsU291cmNlV2l0aG91dFJvbGVBcm4ocHJvZmlsZXNbc291cmNlX3Byb2ZpbGVdID8/IHt9KSlcbiAgICAgICAgOiAoYXdhaXQgcmVzb2x2ZUNyZWRlbnRpYWxTb3VyY2UocHJvZmlsZURhdGEuY3JlZGVudGlhbF9zb3VyY2UsIHByb2ZpbGVOYW1lLCBvcHRpb25zLmxvZ2dlcikob3B0aW9ucykpKCk7XG4gICAgaWYgKGlzQ3JlZGVudGlhbFNvdXJjZVdpdGhvdXRSb2xlQXJuKHByb2ZpbGVEYXRhKSkge1xuICAgICAgICByZXR1cm4gc291cmNlQ3JlZHNQcm92aWRlci50aGVuKChjcmVkcykgPT4gY2xpZW50LnNldENyZWRlbnRpYWxGZWF0dXJlKGNyZWRzLCBcIkNSRURFTlRJQUxTX1BST0ZJTEVfU09VUkNFX1BST0ZJTEVcIiwgXCJvXCIpKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IHtcbiAgICAgICAgICAgIFJvbGVBcm46IHByb2ZpbGVEYXRhLnJvbGVfYXJuLFxuICAgICAgICAgICAgUm9sZVNlc3Npb25OYW1lOiBwcm9maWxlRGF0YS5yb2xlX3Nlc3Npb25fbmFtZSB8fCBgYXdzLXNkay1qcy0ke0RhdGUubm93KCl9YCxcbiAgICAgICAgICAgIEV4dGVybmFsSWQ6IHByb2ZpbGVEYXRhLmV4dGVybmFsX2lkLFxuICAgICAgICAgICAgRHVyYXRpb25TZWNvbmRzOiBwYXJzZUludChwcm9maWxlRGF0YS5kdXJhdGlvbl9zZWNvbmRzIHx8IFwiMzYwMFwiLCAxMCksXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHsgbWZhX3NlcmlhbCB9ID0gcHJvZmlsZURhdGE7XG4gICAgICAgIGlmIChtZmFfc2VyaWFsKSB7XG4gICAgICAgICAgICBpZiAoIW9wdGlvbnMubWZhQ29kZVByb3ZpZGVyKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKGBQcm9maWxlICR7cHJvZmlsZU5hbWV9IHJlcXVpcmVzIG11bHRpLWZhY3RvciBhdXRoZW50aWNhdGlvbiwgYnV0IG5vIE1GQSBjb2RlIGNhbGxiYWNrIHdhcyBwcm92aWRlZC5gLCB7IGxvZ2dlcjogb3B0aW9ucy5sb2dnZXIsIHRyeU5leHRMaW5rOiBmYWxzZSB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBhcmFtcy5TZXJpYWxOdW1iZXIgPSBtZmFfc2VyaWFsO1xuICAgICAgICAgICAgcGFyYW1zLlRva2VuQ29kZSA9IGF3YWl0IG9wdGlvbnMubWZhQ29kZVByb3ZpZGVyKG1mYV9zZXJpYWwpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNvdXJjZUNyZWRzID0gYXdhaXQgc291cmNlQ3JlZHNQcm92aWRlcjtcbiAgICAgICAgcmV0dXJuIG9wdGlvbnMucm9sZUFzc3VtZXIoc291cmNlQ3JlZHMsIHBhcmFtcykudGhlbigoY3JlZHMpID0+IGNsaWVudC5zZXRDcmVkZW50aWFsRmVhdHVyZShjcmVkcywgXCJDUkVERU5USUFMU19QUk9GSUxFX1NPVVJDRV9QUk9GSUxFXCIsIFwib1wiKSk7XG4gICAgfVxufTtcbmNvbnN0IGlzQ3JlZGVudGlhbFNvdXJjZVdpdGhvdXRSb2xlQXJuID0gKHNlY3Rpb24pID0+IHtcbiAgICByZXR1cm4gIXNlY3Rpb24ucm9sZV9hcm4gJiYgISFzZWN0aW9uLmNyZWRlbnRpYWxfc291cmNlO1xufTtcblxuY29uc3QgaXNMb2dpblByb2ZpbGUgPSAoZGF0YSkgPT4ge1xuICAgIHJldHVybiBCb29sZWFuKGRhdGEgJiYgZGF0YS5sb2dpbl9zZXNzaW9uKTtcbn07XG5jb25zdCByZXNvbHZlTG9naW5DcmVkZW50aWFscyA9IGFzeW5jIChwcm9maWxlTmFtZSwgb3B0aW9ucywgY2FsbGVyQ2xpZW50Q29uZmlnKSA9PiB7XG4gICAgY29uc3QgY3JlZGVudGlhbHMgPSBhd2FpdCBjcmVkZW50aWFsUHJvdmlkZXJMb2dpbi5mcm9tTG9naW5DcmVkZW50aWFscyh7XG4gICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgIHByb2ZpbGU6IHByb2ZpbGVOYW1lLFxuICAgIH0pKHsgY2FsbGVyQ2xpZW50Q29uZmlnIH0pO1xuICAgIHJldHVybiBjbGllbnQuc2V0Q3JlZGVudGlhbEZlYXR1cmUoY3JlZGVudGlhbHMsIFwiQ1JFREVOVElBTFNfUFJPRklMRV9MT0dJTlwiLCBcIkFDXCIpO1xufTtcblxuY29uc3QgaXNQcm9jZXNzUHJvZmlsZSA9IChhcmcpID0+IEJvb2xlYW4oYXJnKSAmJiB0eXBlb2YgYXJnID09PSBcIm9iamVjdFwiICYmIHR5cGVvZiBhcmcuY3JlZGVudGlhbF9wcm9jZXNzID09PSBcInN0cmluZ1wiO1xuY29uc3QgcmVzb2x2ZVByb2Nlc3NDcmVkZW50aWFscyA9IGFzeW5jIChvcHRpb25zLCBwcm9maWxlKSA9PiBpbXBvcnQoJ0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItcHJvY2VzcycpLnRoZW4oKHsgZnJvbVByb2Nlc3MgfSkgPT4gZnJvbVByb2Nlc3Moe1xuICAgIC4uLm9wdGlvbnMsXG4gICAgcHJvZmlsZSxcbn0pKCkudGhlbigoY3JlZHMpID0+IGNsaWVudC5zZXRDcmVkZW50aWFsRmVhdHVyZShjcmVkcywgXCJDUkVERU5USUFMU19QUk9GSUxFX1BST0NFU1NcIiwgXCJ2XCIpKSk7XG5cbmNvbnN0IHJlc29sdmVTc29DcmVkZW50aWFscyA9IGFzeW5jIChwcm9maWxlLCBwcm9maWxlRGF0YSwgb3B0aW9ucyA9IHt9LCBjYWxsZXJDbGllbnRDb25maWcpID0+IHtcbiAgICBjb25zdCB7IGZyb21TU08gfSA9IGF3YWl0IGltcG9ydCgnQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1zc28nKTtcbiAgICByZXR1cm4gZnJvbVNTTyh7XG4gICAgICAgIHByb2ZpbGUsXG4gICAgICAgIGxvZ2dlcjogb3B0aW9ucy5sb2dnZXIsXG4gICAgICAgIHBhcmVudENsaWVudENvbmZpZzogb3B0aW9ucy5wYXJlbnRDbGllbnRDb25maWcsXG4gICAgICAgIGNsaWVudENvbmZpZzogb3B0aW9ucy5jbGllbnRDb25maWcsXG4gICAgfSkoe1xuICAgICAgICBjYWxsZXJDbGllbnRDb25maWcsXG4gICAgfSkudGhlbigoY3JlZHMpID0+IHtcbiAgICAgICAgaWYgKHByb2ZpbGVEYXRhLnNzb19zZXNzaW9uKSB7XG4gICAgICAgICAgICByZXR1cm4gY2xpZW50LnNldENyZWRlbnRpYWxGZWF0dXJlKGNyZWRzLCBcIkNSRURFTlRJQUxTX1BST0ZJTEVfU1NPXCIsIFwiclwiKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBjbGllbnQuc2V0Q3JlZGVudGlhbEZlYXR1cmUoY3JlZHMsIFwiQ1JFREVOVElBTFNfUFJPRklMRV9TU09fTEVHQUNZXCIsIFwidFwiKTtcbiAgICAgICAgfVxuICAgIH0pO1xufTtcbmNvbnN0IGlzU3NvUHJvZmlsZSA9IChhcmcpID0+IGFyZyAmJlxuICAgICh0eXBlb2YgYXJnLnNzb19zdGFydF91cmwgPT09IFwic3RyaW5nXCIgfHxcbiAgICAgICAgdHlwZW9mIGFyZy5zc29fYWNjb3VudF9pZCA9PT0gXCJzdHJpbmdcIiB8fFxuICAgICAgICB0eXBlb2YgYXJnLnNzb19zZXNzaW9uID09PSBcInN0cmluZ1wiIHx8XG4gICAgICAgIHR5cGVvZiBhcmcuc3NvX3JlZ2lvbiA9PT0gXCJzdHJpbmdcIiB8fFxuICAgICAgICB0eXBlb2YgYXJnLnNzb19yb2xlX25hbWUgPT09IFwic3RyaW5nXCIpO1xuXG5jb25zdCBpc1N0YXRpY0NyZWRzUHJvZmlsZSA9IChhcmcpID0+IEJvb2xlYW4oYXJnKSAmJlxuICAgIHR5cGVvZiBhcmcgPT09IFwib2JqZWN0XCIgJiZcbiAgICB0eXBlb2YgYXJnLmF3c19hY2Nlc3Nfa2V5X2lkID09PSBcInN0cmluZ1wiICYmXG4gICAgdHlwZW9mIGFyZy5hd3Nfc2VjcmV0X2FjY2Vzc19rZXkgPT09IFwic3RyaW5nXCIgJiZcbiAgICBbXCJ1bmRlZmluZWRcIiwgXCJzdHJpbmdcIl0uaW5kZXhPZih0eXBlb2YgYXJnLmF3c19zZXNzaW9uX3Rva2VuKSA+IC0xICYmXG4gICAgW1widW5kZWZpbmVkXCIsIFwic3RyaW5nXCJdLmluZGV4T2YodHlwZW9mIGFyZy5hd3NfYWNjb3VudF9pZCkgPiAtMTtcbmNvbnN0IHJlc29sdmVTdGF0aWNDcmVkZW50aWFscyA9IGFzeW5jIChwcm9maWxlLCBvcHRpb25zKSA9PiB7XG4gICAgb3B0aW9ucz8ubG9nZ2VyPy5kZWJ1ZyhcIkBhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItaW5pIC0gcmVzb2x2ZVN0YXRpY0NyZWRlbnRpYWxzXCIpO1xuICAgIGNvbnN0IGNyZWRlbnRpYWxzID0ge1xuICAgICAgICBhY2Nlc3NLZXlJZDogcHJvZmlsZS5hd3NfYWNjZXNzX2tleV9pZCxcbiAgICAgICAgc2VjcmV0QWNjZXNzS2V5OiBwcm9maWxlLmF3c19zZWNyZXRfYWNjZXNzX2tleSxcbiAgICAgICAgc2Vzc2lvblRva2VuOiBwcm9maWxlLmF3c19zZXNzaW9uX3Rva2VuLFxuICAgICAgICAuLi4ocHJvZmlsZS5hd3NfY3JlZGVudGlhbF9zY29wZSAmJiB7IGNyZWRlbnRpYWxTY29wZTogcHJvZmlsZS5hd3NfY3JlZGVudGlhbF9zY29wZSB9KSxcbiAgICAgICAgLi4uKHByb2ZpbGUuYXdzX2FjY291bnRfaWQgJiYgeyBhY2NvdW50SWQ6IHByb2ZpbGUuYXdzX2FjY291bnRfaWQgfSksXG4gICAgfTtcbiAgICByZXR1cm4gY2xpZW50LnNldENyZWRlbnRpYWxGZWF0dXJlKGNyZWRlbnRpYWxzLCBcIkNSRURFTlRJQUxTX1BST0ZJTEVcIiwgXCJuXCIpO1xufTtcblxuY29uc3QgaXNXZWJJZGVudGl0eVByb2ZpbGUgPSAoYXJnKSA9PiBCb29sZWFuKGFyZykgJiZcbiAgICB0eXBlb2YgYXJnID09PSBcIm9iamVjdFwiICYmXG4gICAgdHlwZW9mIGFyZy53ZWJfaWRlbnRpdHlfdG9rZW5fZmlsZSA9PT0gXCJzdHJpbmdcIiAmJlxuICAgIHR5cGVvZiBhcmcucm9sZV9hcm4gPT09IFwic3RyaW5nXCIgJiZcbiAgICBbXCJ1bmRlZmluZWRcIiwgXCJzdHJpbmdcIl0uaW5kZXhPZih0eXBlb2YgYXJnLnJvbGVfc2Vzc2lvbl9uYW1lKSA+IC0xO1xuY29uc3QgcmVzb2x2ZVdlYklkZW50aXR5Q3JlZGVudGlhbHMgPSBhc3luYyAocHJvZmlsZSwgb3B0aW9ucywgY2FsbGVyQ2xpZW50Q29uZmlnKSA9PiBpbXBvcnQoJ0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItd2ViLWlkZW50aXR5JykudGhlbigoeyBmcm9tVG9rZW5GaWxlIH0pID0+IGZyb21Ub2tlbkZpbGUoe1xuICAgIHdlYklkZW50aXR5VG9rZW5GaWxlOiBwcm9maWxlLndlYl9pZGVudGl0eV90b2tlbl9maWxlLFxuICAgIHJvbGVBcm46IHByb2ZpbGUucm9sZV9hcm4sXG4gICAgcm9sZVNlc3Npb25OYW1lOiBwcm9maWxlLnJvbGVfc2Vzc2lvbl9uYW1lLFxuICAgIHJvbGVBc3N1bWVyV2l0aFdlYklkZW50aXR5OiBvcHRpb25zLnJvbGVBc3N1bWVyV2l0aFdlYklkZW50aXR5LFxuICAgIGxvZ2dlcjogb3B0aW9ucy5sb2dnZXIsXG4gICAgcGFyZW50Q2xpZW50Q29uZmlnOiBvcHRpb25zLnBhcmVudENsaWVudENvbmZpZyxcbn0pKHtcbiAgICBjYWxsZXJDbGllbnRDb25maWcsXG59KS50aGVuKChjcmVkcykgPT4gY2xpZW50LnNldENyZWRlbnRpYWxGZWF0dXJlKGNyZWRzLCBcIkNSRURFTlRJQUxTX1BST0ZJTEVfU1RTX1dFQl9JRF9UT0tFTlwiLCBcInFcIikpKTtcblxuY29uc3QgcmVzb2x2ZVByb2ZpbGVEYXRhID0gYXN5bmMgKHByb2ZpbGVOYW1lLCBwcm9maWxlcywgb3B0aW9ucywgY2FsbGVyQ2xpZW50Q29uZmlnLCB2aXNpdGVkUHJvZmlsZXMgPSB7fSwgaXNBc3N1bWVSb2xlUmVjdXJzaXZlQ2FsbCA9IGZhbHNlKSA9PiB7XG4gICAgY29uc3QgZGF0YSA9IHByb2ZpbGVzW3Byb2ZpbGVOYW1lXTtcbiAgICBpZiAoT2JqZWN0LmtleXModmlzaXRlZFByb2ZpbGVzKS5sZW5ndGggPiAwICYmIGlzU3RhdGljQ3JlZHNQcm9maWxlKGRhdGEpKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlU3RhdGljQ3JlZGVudGlhbHMoZGF0YSwgb3B0aW9ucyk7XG4gICAgfVxuICAgIGlmIChpc0Fzc3VtZVJvbGVSZWN1cnNpdmVDYWxsIHx8IGlzQXNzdW1lUm9sZVByb2ZpbGUoZGF0YSwgeyBwcm9maWxlOiBwcm9maWxlTmFtZSwgbG9nZ2VyOiBvcHRpb25zLmxvZ2dlciB9KSkge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZUFzc3VtZVJvbGVDcmVkZW50aWFscyhwcm9maWxlTmFtZSwgcHJvZmlsZXMsIG9wdGlvbnMsIGNhbGxlckNsaWVudENvbmZpZywgdmlzaXRlZFByb2ZpbGVzLCByZXNvbHZlUHJvZmlsZURhdGEpO1xuICAgIH1cbiAgICBpZiAoaXNTdGF0aWNDcmVkc1Byb2ZpbGUoZGF0YSkpIHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVTdGF0aWNDcmVkZW50aWFscyhkYXRhLCBvcHRpb25zKTtcbiAgICB9XG4gICAgaWYgKGlzV2ViSWRlbnRpdHlQcm9maWxlKGRhdGEpKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlV2ViSWRlbnRpdHlDcmVkZW50aWFscyhkYXRhLCBvcHRpb25zLCBjYWxsZXJDbGllbnRDb25maWcpO1xuICAgIH1cbiAgICBpZiAoaXNQcm9jZXNzUHJvZmlsZShkYXRhKSkge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZVByb2Nlc3NDcmVkZW50aWFscyhvcHRpb25zLCBwcm9maWxlTmFtZSk7XG4gICAgfVxuICAgIGlmIChpc1Nzb1Byb2ZpbGUoZGF0YSkpIHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHJlc29sdmVTc29DcmVkZW50aWFscyhwcm9maWxlTmFtZSwgZGF0YSwgb3B0aW9ucywgY2FsbGVyQ2xpZW50Q29uZmlnKTtcbiAgICB9XG4gICAgaWYgKGlzTG9naW5Qcm9maWxlKGRhdGEpKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlTG9naW5DcmVkZW50aWFscyhwcm9maWxlTmFtZSwgb3B0aW9ucywgY2FsbGVyQ2xpZW50Q29uZmlnKTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKGBDb3VsZCBub3QgcmVzb2x2ZSBjcmVkZW50aWFscyB1c2luZyBwcm9maWxlOiBbJHtwcm9maWxlTmFtZX1dIGluIGNvbmZpZ3VyYXRpb24vY3JlZGVudGlhbHMgZmlsZShzKS5gLCB7IGxvZ2dlcjogb3B0aW9ucy5sb2dnZXIgfSk7XG59O1xuXG5jb25zdCBmcm9tSW5pID0gKGluaXQgPSB7fSkgPT4gYXN5bmMgKHsgY2FsbGVyQ2xpZW50Q29uZmlnIH0gPSB7fSkgPT4ge1xuICAgIGluaXQubG9nZ2VyPy5kZWJ1ZyhcIkBhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItaW5pIC0gZnJvbUluaVwiKTtcbiAgICBjb25zdCBwcm9maWxlcyA9IGF3YWl0IHNoYXJlZEluaUZpbGVMb2FkZXIucGFyc2VLbm93bkZpbGVzKGluaXQpO1xuICAgIHJldHVybiByZXNvbHZlUHJvZmlsZURhdGEoc2hhcmVkSW5pRmlsZUxvYWRlci5nZXRQcm9maWxlTmFtZSh7XG4gICAgICAgIHByb2ZpbGU6IGluaXQucHJvZmlsZSA/PyBjYWxsZXJDbGllbnRDb25maWc/LnByb2ZpbGUsXG4gICAgfSksIHByb2ZpbGVzLCBpbml0LCBjYWxsZXJDbGllbnRDb25maWcpO1xufTtcblxuZXhwb3J0cy5mcm9tSW5pID0gZnJvbUluaTtcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBjcmVkZW50aWFsUHJvdmlkZXJFbnYgPSByZXF1aXJlKCdAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLWVudicpO1xudmFyIHByb3BlcnR5UHJvdmlkZXIgPSByZXF1aXJlKCdAc21pdGh5L3Byb3BlcnR5LXByb3ZpZGVyJyk7XG52YXIgc2hhcmVkSW5pRmlsZUxvYWRlciA9IHJlcXVpcmUoJ0BzbWl0aHkvc2hhcmVkLWluaS1maWxlLWxvYWRlcicpO1xuXG5jb25zdCBFTlZfSU1EU19ESVNBQkxFRCA9IFwiQVdTX0VDMl9NRVRBREFUQV9ESVNBQkxFRFwiO1xuY29uc3QgcmVtb3RlUHJvdmlkZXIgPSBhc3luYyAoaW5pdCkgPT4ge1xuICAgIGNvbnN0IHsgRU5WX0NNRFNfRlVMTF9VUkksIEVOVl9DTURTX1JFTEFUSVZFX1VSSSwgZnJvbUNvbnRhaW5lck1ldGFkYXRhLCBmcm9tSW5zdGFuY2VNZXRhZGF0YSB9ID0gYXdhaXQgaW1wb3J0KCdAc21pdGh5L2NyZWRlbnRpYWwtcHJvdmlkZXItaW1kcycpO1xuICAgIGlmIChwcm9jZXNzLmVudltFTlZfQ01EU19SRUxBVElWRV9VUkldIHx8IHByb2Nlc3MuZW52W0VOVl9DTURTX0ZVTExfVVJJXSkge1xuICAgICAgICBpbml0LmxvZ2dlcj8uZGVidWcoXCJAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLW5vZGUgLSByZW1vdGVQcm92aWRlcjo6ZnJvbUh0dHAvZnJvbUNvbnRhaW5lck1ldGFkYXRhXCIpO1xuICAgICAgICBjb25zdCB7IGZyb21IdHRwIH0gPSBhd2FpdCBpbXBvcnQoJ0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItaHR0cCcpO1xuICAgICAgICByZXR1cm4gcHJvcGVydHlQcm92aWRlci5jaGFpbihmcm9tSHR0cChpbml0KSwgZnJvbUNvbnRhaW5lck1ldGFkYXRhKGluaXQpKTtcbiAgICB9XG4gICAgaWYgKHByb2Nlc3MuZW52W0VOVl9JTURTX0RJU0FCTEVEXSAmJiBwcm9jZXNzLmVudltFTlZfSU1EU19ESVNBQkxFRF0gIT09IFwiZmFsc2VcIikge1xuICAgICAgICByZXR1cm4gYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKFwiRUMyIEluc3RhbmNlIE1ldGFkYXRhIFNlcnZpY2UgYWNjZXNzIGRpc2FibGVkXCIsIHsgbG9nZ2VyOiBpbml0LmxvZ2dlciB9KTtcbiAgICAgICAgfTtcbiAgICB9XG4gICAgaW5pdC5sb2dnZXI/LmRlYnVnKFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlIC0gcmVtb3RlUHJvdmlkZXI6OmZyb21JbnN0YW5jZU1ldGFkYXRhXCIpO1xuICAgIHJldHVybiBmcm9tSW5zdGFuY2VNZXRhZGF0YShpbml0KTtcbn07XG5cbmZ1bmN0aW9uIG1lbW9pemVDaGFpbihwcm92aWRlcnMsIHRyZWF0QXNFeHBpcmVkKSB7XG4gICAgY29uc3QgY2hhaW4gPSBpbnRlcm5hbENyZWF0ZUNoYWluKHByb3ZpZGVycyk7XG4gICAgbGV0IGFjdGl2ZUxvY2s7XG4gICAgbGV0IHBhc3NpdmVMb2NrO1xuICAgIGxldCBjcmVkZW50aWFscztcbiAgICBjb25zdCBwcm92aWRlciA9IGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgICAgIGlmIChvcHRpb25zPy5mb3JjZVJlZnJlc2gpIHtcbiAgICAgICAgICAgIHJldHVybiBhd2FpdCBjaGFpbihvcHRpb25zKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY3JlZGVudGlhbHM/LmV4cGlyYXRpb24pIHtcbiAgICAgICAgICAgIGlmIChjcmVkZW50aWFscz8uZXhwaXJhdGlvbj8uZ2V0VGltZSgpIDwgRGF0ZS5ub3coKSkge1xuICAgICAgICAgICAgICAgIGNyZWRlbnRpYWxzID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChhY3RpdmVMb2NrKSB7XG4gICAgICAgICAgICBhd2FpdCBhY3RpdmVMb2NrO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKCFjcmVkZW50aWFscyB8fCB0cmVhdEFzRXhwaXJlZD8uKGNyZWRlbnRpYWxzKSkge1xuICAgICAgICAgICAgaWYgKGNyZWRlbnRpYWxzKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFwYXNzaXZlTG9jaykge1xuICAgICAgICAgICAgICAgICAgICBwYXNzaXZlTG9jayA9IGNoYWluKG9wdGlvbnMpXG4gICAgICAgICAgICAgICAgICAgICAgICAudGhlbigoYykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY3JlZGVudGlhbHMgPSBjO1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFzc2l2ZUxvY2sgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGFjdGl2ZUxvY2sgPSBjaGFpbihvcHRpb25zKVxuICAgICAgICAgICAgICAgICAgICAudGhlbigoYykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjcmVkZW50aWFscyA9IGM7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBhY3RpdmVMb2NrID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiBwcm92aWRlcihvcHRpb25zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY3JlZGVudGlhbHM7XG4gICAgfTtcbiAgICByZXR1cm4gcHJvdmlkZXI7XG59XG5jb25zdCBpbnRlcm5hbENyZWF0ZUNoYWluID0gKHByb3ZpZGVycykgPT4gYXN5bmMgKGF3c0lkZW50aXR5UHJvcGVydGllcykgPT4ge1xuICAgIGxldCBsYXN0UHJvdmlkZXJFcnJvcjtcbiAgICBmb3IgKGNvbnN0IHByb3ZpZGVyIG9mIHByb3ZpZGVycykge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHByb3ZpZGVyKGF3c0lkZW50aXR5UHJvcGVydGllcyk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgbGFzdFByb3ZpZGVyRXJyb3IgPSBlcnI7XG4gICAgICAgICAgICBpZiAoZXJyPy50cnlOZXh0TGluaykge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICB9XG4gICAgfVxuICAgIHRocm93IGxhc3RQcm92aWRlckVycm9yO1xufTtcblxubGV0IG11bHRpcGxlQ3JlZGVudGlhbFNvdXJjZVdhcm5pbmdFbWl0dGVkID0gZmFsc2U7XG5jb25zdCBkZWZhdWx0UHJvdmlkZXIgPSAoaW5pdCA9IHt9KSA9PiBtZW1vaXplQ2hhaW4oW1xuICAgIGFzeW5jICgpID0+IHtcbiAgICAgICAgY29uc3QgcHJvZmlsZSA9IGluaXQucHJvZmlsZSA/PyBwcm9jZXNzLmVudltzaGFyZWRJbmlGaWxlTG9hZGVyLkVOVl9QUk9GSUxFXTtcbiAgICAgICAgaWYgKHByb2ZpbGUpIHtcbiAgICAgICAgICAgIGNvbnN0IGVudlN0YXRpY0NyZWRlbnRpYWxzQXJlU2V0ID0gcHJvY2Vzcy5lbnZbY3JlZGVudGlhbFByb3ZpZGVyRW52LkVOVl9LRVldICYmIHByb2Nlc3MuZW52W2NyZWRlbnRpYWxQcm92aWRlckVudi5FTlZfU0VDUkVUXTtcbiAgICAgICAgICAgIGlmIChlbnZTdGF0aWNDcmVkZW50aWFsc0FyZVNldCkge1xuICAgICAgICAgICAgICAgIGlmICghbXVsdGlwbGVDcmVkZW50aWFsU291cmNlV2FybmluZ0VtaXR0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgd2FybkZuID0gaW5pdC5sb2dnZXI/Lndhcm4gJiYgaW5pdC5sb2dnZXI/LmNvbnN0cnVjdG9yPy5uYW1lICE9PSBcIk5vT3BMb2dnZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPyBpbml0LmxvZ2dlci53YXJuLmJpbmQoaW5pdC5sb2dnZXIpXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnNvbGUud2FybjtcbiAgICAgICAgICAgICAgICAgICAgd2FybkZuKGBAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLW5vZGUgLSBkZWZhdWx0UHJvdmlkZXI6OmZyb21FbnYgV0FSTklORzpcbiAgICBNdWx0aXBsZSBjcmVkZW50aWFsIHNvdXJjZXMgZGV0ZWN0ZWQ6IFxuICAgIEJvdGggQVdTX1BST0ZJTEUgYW5kIHRoZSBwYWlyIEFXU19BQ0NFU1NfS0VZX0lEL0FXU19TRUNSRVRfQUNDRVNTX0tFWSBzdGF0aWMgY3JlZGVudGlhbHMgYXJlIHNldC5cbiAgICBUaGlzIFNESyB3aWxsIHByb2NlZWQgd2l0aCB0aGUgQVdTX1BST0ZJTEUgdmFsdWUuXG4gICAgXG4gICAgSG93ZXZlciwgYSBmdXR1cmUgdmVyc2lvbiBtYXkgY2hhbmdlIHRoaXMgYmVoYXZpb3IgdG8gcHJlZmVyIHRoZSBFTlYgc3RhdGljIGNyZWRlbnRpYWxzLlxuICAgIFBsZWFzZSBlbnN1cmUgdGhhdCB5b3VyIGVudmlyb25tZW50IG9ubHkgc2V0cyBlaXRoZXIgdGhlIEFXU19QUk9GSUxFIG9yIHRoZVxuICAgIEFXU19BQ0NFU1NfS0VZX0lEL0FXU19TRUNSRVRfQUNDRVNTX0tFWSBwYWlyLlxuYCk7XG4gICAgICAgICAgICAgICAgICAgIG11bHRpcGxlQ3JlZGVudGlhbFNvdXJjZVdhcm5pbmdFbWl0dGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoXCJBV1NfUFJPRklMRSBpcyBzZXQsIHNraXBwaW5nIGZyb21FbnYgcHJvdmlkZXIuXCIsIHtcbiAgICAgICAgICAgICAgICBsb2dnZXI6IGluaXQubG9nZ2VyLFxuICAgICAgICAgICAgICAgIHRyeU5leHRMaW5rOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaW5pdC5sb2dnZXI/LmRlYnVnKFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlIC0gZGVmYXVsdFByb3ZpZGVyOjpmcm9tRW52XCIpO1xuICAgICAgICByZXR1cm4gY3JlZGVudGlhbFByb3ZpZGVyRW52LmZyb21FbnYoaW5pdCkoKTtcbiAgICB9LFxuICAgIGFzeW5jIChhd3NJZGVudGl0eVByb3BlcnRpZXMpID0+IHtcbiAgICAgICAgaW5pdC5sb2dnZXI/LmRlYnVnKFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlIC0gZGVmYXVsdFByb3ZpZGVyOjpmcm9tU1NPXCIpO1xuICAgICAgICBjb25zdCB7IHNzb1N0YXJ0VXJsLCBzc29BY2NvdW50SWQsIHNzb1JlZ2lvbiwgc3NvUm9sZU5hbWUsIHNzb1Nlc3Npb24gfSA9IGluaXQ7XG4gICAgICAgIGlmICghc3NvU3RhcnRVcmwgJiYgIXNzb0FjY291bnRJZCAmJiAhc3NvUmVnaW9uICYmICFzc29Sb2xlTmFtZSAmJiAhc3NvU2Vzc2lvbikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKFwiU2tpcHBpbmcgU1NPIHByb3ZpZGVyIGluIGRlZmF1bHQgY2hhaW4gKGlucHV0cyBkbyBub3QgaW5jbHVkZSBTU08gZmllbGRzKS5cIiwgeyBsb2dnZXI6IGluaXQubG9nZ2VyIH0pO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHsgZnJvbVNTTyB9ID0gYXdhaXQgaW1wb3J0KCdAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLXNzbycpO1xuICAgICAgICByZXR1cm4gZnJvbVNTTyhpbml0KShhd3NJZGVudGl0eVByb3BlcnRpZXMpO1xuICAgIH0sXG4gICAgYXN5bmMgKGF3c0lkZW50aXR5UHJvcGVydGllcykgPT4ge1xuICAgICAgICBpbml0LmxvZ2dlcj8uZGVidWcoXCJAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLW5vZGUgLSBkZWZhdWx0UHJvdmlkZXI6OmZyb21JbmlcIik7XG4gICAgICAgIGNvbnN0IHsgZnJvbUluaSB9ID0gYXdhaXQgaW1wb3J0KCdAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLWluaScpO1xuICAgICAgICByZXR1cm4gZnJvbUluaShpbml0KShhd3NJZGVudGl0eVByb3BlcnRpZXMpO1xuICAgIH0sXG4gICAgYXN5bmMgKGF3c0lkZW50aXR5UHJvcGVydGllcykgPT4ge1xuICAgICAgICBpbml0LmxvZ2dlcj8uZGVidWcoXCJAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLW5vZGUgLSBkZWZhdWx0UHJvdmlkZXI6OmZyb21Qcm9jZXNzXCIpO1xuICAgICAgICBjb25zdCB7IGZyb21Qcm9jZXNzIH0gPSBhd2FpdCBpbXBvcnQoJ0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItcHJvY2VzcycpO1xuICAgICAgICByZXR1cm4gZnJvbVByb2Nlc3MoaW5pdCkoYXdzSWRlbnRpdHlQcm9wZXJ0aWVzKTtcbiAgICB9LFxuICAgIGFzeW5jIChhd3NJZGVudGl0eVByb3BlcnRpZXMpID0+IHtcbiAgICAgICAgaW5pdC5sb2dnZXI/LmRlYnVnKFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlIC0gZGVmYXVsdFByb3ZpZGVyOjpmcm9tVG9rZW5GaWxlXCIpO1xuICAgICAgICBjb25zdCB7IGZyb21Ub2tlbkZpbGUgfSA9IGF3YWl0IGltcG9ydCgnQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci13ZWItaWRlbnRpdHknKTtcbiAgICAgICAgcmV0dXJuIGZyb21Ub2tlbkZpbGUoaW5pdCkoYXdzSWRlbnRpdHlQcm9wZXJ0aWVzKTtcbiAgICB9LFxuICAgIGFzeW5jICgpID0+IHtcbiAgICAgICAgaW5pdC5sb2dnZXI/LmRlYnVnKFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlIC0gZGVmYXVsdFByb3ZpZGVyOjpyZW1vdGVQcm92aWRlclwiKTtcbiAgICAgICAgcmV0dXJuIChhd2FpdCByZW1vdGVQcm92aWRlcihpbml0KSkoKTtcbiAgICB9LFxuICAgIGFzeW5jICgpID0+IHtcbiAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKFwiQ291bGQgbm90IGxvYWQgY3JlZGVudGlhbHMgZnJvbSBhbnkgcHJvdmlkZXJzXCIsIHtcbiAgICAgICAgICAgIHRyeU5leHRMaW5rOiBmYWxzZSxcbiAgICAgICAgICAgIGxvZ2dlcjogaW5pdC5sb2dnZXIsXG4gICAgICAgIH0pO1xuICAgIH0sXG5dLCBjcmVkZW50aWFsc1RyZWF0ZWRBc0V4cGlyZWQpO1xuY29uc3QgY3JlZGVudGlhbHNXaWxsTmVlZFJlZnJlc2ggPSAoY3JlZGVudGlhbHMpID0+IGNyZWRlbnRpYWxzPy5leHBpcmF0aW9uICE9PSB1bmRlZmluZWQ7XG5jb25zdCBjcmVkZW50aWFsc1RyZWF0ZWRBc0V4cGlyZWQgPSAoY3JlZGVudGlhbHMpID0+IGNyZWRlbnRpYWxzPy5leHBpcmF0aW9uICE9PSB1bmRlZmluZWQgJiYgY3JlZGVudGlhbHMuZXhwaXJhdGlvbi5nZXRUaW1lKCkgLSBEYXRlLm5vdygpIDwgMzAwMDAwO1xuXG5leHBvcnRzLmNyZWRlbnRpYWxzVHJlYXRlZEFzRXhwaXJlZCA9IGNyZWRlbnRpYWxzVHJlYXRlZEFzRXhwaXJlZDtcbmV4cG9ydHMuY3JlZGVudGlhbHNXaWxsTmVlZFJlZnJlc2ggPSBjcmVkZW50aWFsc1dpbGxOZWVkUmVmcmVzaDtcbmV4cG9ydHMuZGVmYXVsdFByb3ZpZGVyID0gZGVmYXVsdFByb3ZpZGVyO1xuIiwgImltcG9ydCB7IE5vcm1hbGl6ZWRTY2hlbWEsIFR5cGVSZWdpc3RyeSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2NoZW1hXCI7XG5pbXBvcnQgeyBkZWNvcmF0ZVNlcnZpY2VFeGNlcHRpb24gfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5leHBvcnQgY2xhc3MgUHJvdG9jb2xMaWIge1xuICAgIHF1ZXJ5Q29tcGF0O1xuICAgIGNvbnN0cnVjdG9yKHF1ZXJ5Q29tcGF0ID0gZmFsc2UpIHtcbiAgICAgICAgdGhpcy5xdWVyeUNvbXBhdCA9IHF1ZXJ5Q29tcGF0O1xuICAgIH1cbiAgICByZXNvbHZlUmVzdENvbnRlbnRUeXBlKGRlZmF1bHRDb250ZW50VHlwZSwgaW5wdXRTY2hlbWEpIHtcbiAgICAgICAgY29uc3QgbWVtYmVycyA9IGlucHV0U2NoZW1hLmdldE1lbWJlclNjaGVtYXMoKTtcbiAgICAgICAgY29uc3QgaHR0cFBheWxvYWRNZW1iZXIgPSBPYmplY3QudmFsdWVzKG1lbWJlcnMpLmZpbmQoKG0pID0+IHtcbiAgICAgICAgICAgIHJldHVybiAhIW0uZ2V0TWVyZ2VkVHJhaXRzKCkuaHR0cFBheWxvYWQ7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoaHR0cFBheWxvYWRNZW1iZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IG1lZGlhVHlwZSA9IGh0dHBQYXlsb2FkTWVtYmVyLmdldE1lcmdlZFRyYWl0cygpLm1lZGlhVHlwZTtcbiAgICAgICAgICAgIGlmIChtZWRpYVR5cGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbWVkaWFUeXBlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoaHR0cFBheWxvYWRNZW1iZXIuaXNTdHJpbmdTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBcInRleHQvcGxhaW5cIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGh0dHBQYXlsb2FkTWVtYmVyLmlzQmxvYlNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtXCI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZGVmYXVsdENvbnRlbnRUeXBlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKCFpbnB1dFNjaGVtYS5pc1VuaXRTY2hlbWEoKSkge1xuICAgICAgICAgICAgY29uc3QgaGFzQm9keSA9IE9iamVjdC52YWx1ZXMobWVtYmVycykuZmluZCgobSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgaHR0cFF1ZXJ5LCBodHRwUXVlcnlQYXJhbXMsIGh0dHBIZWFkZXIsIGh0dHBMYWJlbCwgaHR0cFByZWZpeEhlYWRlcnMgfSA9IG0uZ2V0TWVyZ2VkVHJhaXRzKCk7XG4gICAgICAgICAgICAgICAgY29uc3Qgbm9QcmVmaXhIZWFkZXJzID0gaHR0cFByZWZpeEhlYWRlcnMgPT09IHZvaWQgMDtcbiAgICAgICAgICAgICAgICByZXR1cm4gIWh0dHBRdWVyeSAmJiAhaHR0cFF1ZXJ5UGFyYW1zICYmICFodHRwSGVhZGVyICYmICFodHRwTGFiZWwgJiYgbm9QcmVmaXhIZWFkZXJzO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAoaGFzQm9keSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBkZWZhdWx0Q29udGVudFR5cGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgYXN5bmMgZ2V0RXJyb3JTY2hlbWFPclRocm93QmFzZUV4Y2VwdGlvbihlcnJvcklkZW50aWZpZXIsIGRlZmF1bHROYW1lc3BhY2UsIHJlc3BvbnNlLCBkYXRhT2JqZWN0LCBtZXRhZGF0YSwgZ2V0RXJyb3JTY2hlbWEpIHtcbiAgICAgICAgbGV0IG5hbWVzcGFjZSA9IGRlZmF1bHROYW1lc3BhY2U7XG4gICAgICAgIGxldCBlcnJvck5hbWUgPSBlcnJvcklkZW50aWZpZXI7XG4gICAgICAgIGlmIChlcnJvcklkZW50aWZpZXIuaW5jbHVkZXMoXCIjXCIpKSB7XG4gICAgICAgICAgICBbbmFtZXNwYWNlLCBlcnJvck5hbWVdID0gZXJyb3JJZGVudGlmaWVyLnNwbGl0KFwiI1wiKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBlcnJvck1ldGFkYXRhID0ge1xuICAgICAgICAgICAgJG1ldGFkYXRhOiBtZXRhZGF0YSxcbiAgICAgICAgICAgICRmYXVsdDogcmVzcG9uc2Uuc3RhdHVzQ29kZSA8IDUwMCA/IFwiY2xpZW50XCIgOiBcInNlcnZlclwiLFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCByZWdpc3RyeSA9IFR5cGVSZWdpc3RyeS5mb3IobmFtZXNwYWNlKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGVycm9yU2NoZW1hID0gZ2V0RXJyb3JTY2hlbWE/LihyZWdpc3RyeSwgZXJyb3JOYW1lKSA/PyByZWdpc3RyeS5nZXRTY2hlbWEoZXJyb3JJZGVudGlmaWVyKTtcbiAgICAgICAgICAgIHJldHVybiB7IGVycm9yU2NoZW1hLCBlcnJvck1ldGFkYXRhIH07XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIGRhdGFPYmplY3QubWVzc2FnZSA9IGRhdGFPYmplY3QubWVzc2FnZSA/PyBkYXRhT2JqZWN0Lk1lc3NhZ2UgPz8gXCJVbmtub3duRXJyb3JcIjtcbiAgICAgICAgICAgIGNvbnN0IHN5bnRoZXRpYyA9IFR5cGVSZWdpc3RyeS5mb3IoXCJzbWl0aHkudHMuc2RrLnN5bnRoZXRpYy5cIiArIG5hbWVzcGFjZSk7XG4gICAgICAgICAgICBjb25zdCBiYXNlRXhjZXB0aW9uU2NoZW1hID0gc3ludGhldGljLmdldEJhc2VFeGNlcHRpb24oKTtcbiAgICAgICAgICAgIGlmIChiYXNlRXhjZXB0aW9uU2NoZW1hKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgRXJyb3JDdG9yID0gc3ludGhldGljLmdldEVycm9yQ3RvcihiYXNlRXhjZXB0aW9uU2NoZW1hKSA/PyBFcnJvcjtcbiAgICAgICAgICAgICAgICB0aHJvdyB0aGlzLmRlY29yYXRlU2VydmljZUV4Y2VwdGlvbihPYmplY3QuYXNzaWduKG5ldyBFcnJvckN0b3IoeyBuYW1lOiBlcnJvck5hbWUgfSksIGVycm9yTWV0YWRhdGEpLCBkYXRhT2JqZWN0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRocm93IHRoaXMuZGVjb3JhdGVTZXJ2aWNlRXhjZXB0aW9uKE9iamVjdC5hc3NpZ24obmV3IEVycm9yKGVycm9yTmFtZSksIGVycm9yTWV0YWRhdGEpLCBkYXRhT2JqZWN0KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBkZWNvcmF0ZVNlcnZpY2VFeGNlcHRpb24oZXhjZXB0aW9uLCBhZGRpdGlvbnMgPSB7fSkge1xuICAgICAgICBpZiAodGhpcy5xdWVyeUNvbXBhdCkge1xuICAgICAgICAgICAgY29uc3QgbXNnID0gZXhjZXB0aW9uLk1lc3NhZ2UgPz8gYWRkaXRpb25zLk1lc3NhZ2U7XG4gICAgICAgICAgICBjb25zdCBlcnJvciA9IGRlY29yYXRlU2VydmljZUV4Y2VwdGlvbihleGNlcHRpb24sIGFkZGl0aW9ucyk7XG4gICAgICAgICAgICBpZiAobXNnKSB7XG4gICAgICAgICAgICAgICAgZXJyb3IubWVzc2FnZSA9IG1zZztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVycm9yLkVycm9yID0ge1xuICAgICAgICAgICAgICAgIC4uLmVycm9yLkVycm9yLFxuICAgICAgICAgICAgICAgIFR5cGU6IGVycm9yLkVycm9yPy5UeXBlLFxuICAgICAgICAgICAgICAgIENvZGU6IGVycm9yLkVycm9yPy5Db2RlLFxuICAgICAgICAgICAgICAgIE1lc3NhZ2U6IGVycm9yLkVycm9yPy5tZXNzYWdlID8/IGVycm9yLkVycm9yPy5NZXNzYWdlID8/IG1zZyxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBjb25zdCByZXFJZCA9IGVycm9yLiRtZXRhZGF0YS5yZXF1ZXN0SWQ7XG4gICAgICAgICAgICBpZiAocmVxSWQpIHtcbiAgICAgICAgICAgICAgICBlcnJvci5SZXF1ZXN0SWQgPSByZXFJZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBlcnJvcjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGVjb3JhdGVTZXJ2aWNlRXhjZXB0aW9uKGV4Y2VwdGlvbiwgYWRkaXRpb25zKTtcbiAgICB9XG4gICAgc2V0UXVlcnlDb21wYXRFcnJvcihvdXRwdXQsIHJlc3BvbnNlKSB7XG4gICAgICAgIGNvbnN0IHF1ZXJ5RXJyb3JIZWFkZXIgPSByZXNwb25zZS5oZWFkZXJzPy5bXCJ4LWFtem4tcXVlcnktZXJyb3JcIl07XG4gICAgICAgIGlmIChvdXRwdXQgIT09IHVuZGVmaW5lZCAmJiBxdWVyeUVycm9ySGVhZGVyICE9IG51bGwpIHtcbiAgICAgICAgICAgIGNvbnN0IFtDb2RlLCBUeXBlXSA9IHF1ZXJ5RXJyb3JIZWFkZXIuc3BsaXQoXCI7XCIpO1xuICAgICAgICAgICAgY29uc3QgZW50cmllcyA9IE9iamVjdC5lbnRyaWVzKG91dHB1dCk7XG4gICAgICAgICAgICBjb25zdCBFcnJvciA9IHtcbiAgICAgICAgICAgICAgICBDb2RlLFxuICAgICAgICAgICAgICAgIFR5cGUsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihvdXRwdXQsIEVycm9yKTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgW2ssIHZdIG9mIGVudHJpZXMpIHtcbiAgICAgICAgICAgICAgICBFcnJvcltrID09PSBcIm1lc3NhZ2VcIiA/IFwiTWVzc2FnZVwiIDoga10gPSB2O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVsZXRlIEVycm9yLl9fdHlwZTtcbiAgICAgICAgICAgIG91dHB1dC5FcnJvciA9IEVycm9yO1xuICAgICAgICB9XG4gICAgfVxuICAgIHF1ZXJ5Q29tcGF0T3V0cHV0KHF1ZXJ5Q29tcGF0RXJyb3JEYXRhLCBlcnJvckRhdGEpIHtcbiAgICAgICAgaWYgKHF1ZXJ5Q29tcGF0RXJyb3JEYXRhLkVycm9yKSB7XG4gICAgICAgICAgICBlcnJvckRhdGEuRXJyb3IgPSBxdWVyeUNvbXBhdEVycm9yRGF0YS5FcnJvcjtcbiAgICAgICAgfVxuICAgICAgICBpZiAocXVlcnlDb21wYXRFcnJvckRhdGEuVHlwZSkge1xuICAgICAgICAgICAgZXJyb3JEYXRhLlR5cGUgPSBxdWVyeUNvbXBhdEVycm9yRGF0YS5UeXBlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChxdWVyeUNvbXBhdEVycm9yRGF0YS5Db2RlKSB7XG4gICAgICAgICAgICBlcnJvckRhdGEuQ29kZSA9IHF1ZXJ5Q29tcGF0RXJyb3JEYXRhLkNvZGU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZmluZFF1ZXJ5Q29tcGF0aWJsZUVycm9yKHJlZ2lzdHJ5LCBlcnJvck5hbWUpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiByZWdpc3RyeS5nZXRTY2hlbWEoZXJyb3JOYW1lKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgcmV0dXJuIHJlZ2lzdHJ5LmZpbmQoKHNjaGVtYSkgPT4gTm9ybWFsaXplZFNjaGVtYS5vZihzY2hlbWEpLmdldE1lcmdlZFRyYWl0cygpLmF3c1F1ZXJ5RXJyb3I/LlswXSA9PT0gZXJyb3JOYW1lKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBsb2FkU21pdGh5UnBjVjJDYm9yRXJyb3JDb2RlLCBTbWl0aHlScGNWMkNib3JQcm90b2NvbCB9IGZyb20gXCJAc21pdGh5L2NvcmUvY2JvclwiO1xuaW1wb3J0IHsgTm9ybWFsaXplZFNjaGVtYSwgVHlwZVJlZ2lzdHJ5IH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IFByb3RvY29sTGliIH0gZnJvbSBcIi4uL1Byb3RvY29sTGliXCI7XG5leHBvcnQgY2xhc3MgQXdzU21pdGh5UnBjVjJDYm9yUHJvdG9jb2wgZXh0ZW5kcyBTbWl0aHlScGNWMkNib3JQcm90b2NvbCB7XG4gICAgYXdzUXVlcnlDb21wYXRpYmxlO1xuICAgIG1peGluO1xuICAgIGNvbnN0cnVjdG9yKHsgZGVmYXVsdE5hbWVzcGFjZSwgYXdzUXVlcnlDb21wYXRpYmxlLCB9KSB7XG4gICAgICAgIHN1cGVyKHsgZGVmYXVsdE5hbWVzcGFjZSB9KTtcbiAgICAgICAgdGhpcy5hd3NRdWVyeUNvbXBhdGlibGUgPSAhIWF3c1F1ZXJ5Q29tcGF0aWJsZTtcbiAgICAgICAgdGhpcy5taXhpbiA9IG5ldyBQcm90b2NvbExpYih0aGlzLmF3c1F1ZXJ5Q29tcGF0aWJsZSk7XG4gICAgfVxuICAgIGFzeW5jIHNlcmlhbGl6ZVJlcXVlc3Qob3BlcmF0aW9uU2NoZW1hLCBpbnB1dCwgY29udGV4dCkge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gYXdhaXQgc3VwZXIuc2VyaWFsaXplUmVxdWVzdChvcGVyYXRpb25TY2hlbWEsIGlucHV0LCBjb250ZXh0KTtcbiAgICAgICAgaWYgKHRoaXMuYXdzUXVlcnlDb21wYXRpYmxlKSB7XG4gICAgICAgICAgICByZXF1ZXN0LmhlYWRlcnNbXCJ4LWFtem4tcXVlcnktbW9kZVwiXSA9IFwidHJ1ZVwiO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXF1ZXN0O1xuICAgIH1cbiAgICBhc3luYyBoYW5kbGVFcnJvcihvcGVyYXRpb25TY2hlbWEsIGNvbnRleHQsIHJlc3BvbnNlLCBkYXRhT2JqZWN0LCBtZXRhZGF0YSkge1xuICAgICAgICBpZiAodGhpcy5hd3NRdWVyeUNvbXBhdGlibGUpIHtcbiAgICAgICAgICAgIHRoaXMubWl4aW4uc2V0UXVlcnlDb21wYXRFcnJvcihkYXRhT2JqZWN0LCByZXNwb25zZSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZXJyb3JOYW1lID0gKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvbXBhdEhlYWRlciA9IHJlc3BvbnNlLmhlYWRlcnNbXCJ4LWFtem4tcXVlcnktZXJyb3JcIl07XG4gICAgICAgICAgICBpZiAoY29tcGF0SGVhZGVyICYmIHRoaXMuYXdzUXVlcnlDb21wYXRpYmxlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvbXBhdEhlYWRlci5zcGxpdChcIjtcIilbMF07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbG9hZFNtaXRoeVJwY1YyQ2JvckVycm9yQ29kZShyZXNwb25zZSwgZGF0YU9iamVjdCkgPz8gXCJVbmtub3duXCI7XG4gICAgICAgIH0pKCk7XG4gICAgICAgIGNvbnN0IHsgZXJyb3JTY2hlbWEsIGVycm9yTWV0YWRhdGEgfSA9IGF3YWl0IHRoaXMubWl4aW4uZ2V0RXJyb3JTY2hlbWFPclRocm93QmFzZUV4Y2VwdGlvbihlcnJvck5hbWUsIHRoaXMub3B0aW9ucy5kZWZhdWx0TmFtZXNwYWNlLCByZXNwb25zZSwgZGF0YU9iamVjdCwgbWV0YWRhdGEsIHRoaXMuYXdzUXVlcnlDb21wYXRpYmxlID8gdGhpcy5taXhpbi5maW5kUXVlcnlDb21wYXRpYmxlRXJyb3IgOiB1bmRlZmluZWQpO1xuICAgICAgICBjb25zdCBucyA9IE5vcm1hbGl6ZWRTY2hlbWEub2YoZXJyb3JTY2hlbWEpO1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gZGF0YU9iamVjdC5tZXNzYWdlID8/IGRhdGFPYmplY3QuTWVzc2FnZSA/PyBcIlVua25vd25cIjtcbiAgICAgICAgY29uc3QgRXJyb3JDdG9yID0gVHlwZVJlZ2lzdHJ5LmZvcihlcnJvclNjaGVtYVsxXSkuZ2V0RXJyb3JDdG9yKGVycm9yU2NoZW1hKSA/PyBFcnJvcjtcbiAgICAgICAgY29uc3QgZXhjZXB0aW9uID0gbmV3IEVycm9yQ3RvcihtZXNzYWdlKTtcbiAgICAgICAgY29uc3Qgb3V0cHV0ID0ge307XG4gICAgICAgIGZvciAoY29uc3QgW25hbWUsIG1lbWJlcl0gb2YgbnMuc3RydWN0SXRlcmF0b3IoKSkge1xuICAgICAgICAgICAgaWYgKGRhdGFPYmplY3RbbmFtZV0gIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIG91dHB1dFtuYW1lXSA9IHRoaXMuZGVzZXJpYWxpemVyLnJlYWRWYWx1ZShtZW1iZXIsIGRhdGFPYmplY3RbbmFtZV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmF3c1F1ZXJ5Q29tcGF0aWJsZSkge1xuICAgICAgICAgICAgdGhpcy5taXhpbi5xdWVyeUNvbXBhdE91dHB1dChkYXRhT2JqZWN0LCBvdXRwdXQpO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IHRoaXMubWl4aW4uZGVjb3JhdGVTZXJ2aWNlRXhjZXB0aW9uKE9iamVjdC5hc3NpZ24oZXhjZXB0aW9uLCBlcnJvck1ldGFkYXRhLCB7XG4gICAgICAgICAgICAkZmF1bHQ6IG5zLmdldE1lcmdlZFRyYWl0cygpLmVycm9yLFxuICAgICAgICAgICAgbWVzc2FnZSxcbiAgICAgICAgfSwgb3V0cHV0KSwgZGF0YU9iamVjdCk7XG4gICAgfVxufVxuIiwgImV4cG9ydCBjb25zdCBfdG9TdHIgPSAodmFsKSA9PiB7XG4gICAgaWYgKHZhbCA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiB2YWw7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgdmFsID09PSBcIm51bWJlclwiIHx8IHR5cGVvZiB2YWwgPT09IFwiYmlnaW50XCIpIHtcbiAgICAgICAgY29uc3Qgd2FybmluZyA9IG5ldyBFcnJvcihgUmVjZWl2ZWQgbnVtYmVyICR7dmFsfSB3aGVyZSBhIHN0cmluZyB3YXMgZXhwZWN0ZWQuYCk7XG4gICAgICAgIHdhcm5pbmcubmFtZSA9IFwiV2FybmluZ1wiO1xuICAgICAgICBjb25zb2xlLndhcm4od2FybmluZyk7XG4gICAgICAgIHJldHVybiBTdHJpbmcodmFsKTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB2YWwgPT09IFwiYm9vbGVhblwiKSB7XG4gICAgICAgIGNvbnN0IHdhcm5pbmcgPSBuZXcgRXJyb3IoYFJlY2VpdmVkIGJvb2xlYW4gJHt2YWx9IHdoZXJlIGEgc3RyaW5nIHdhcyBleHBlY3RlZC5gKTtcbiAgICAgICAgd2FybmluZy5uYW1lID0gXCJXYXJuaW5nXCI7XG4gICAgICAgIGNvbnNvbGUud2Fybih3YXJuaW5nKTtcbiAgICAgICAgcmV0dXJuIFN0cmluZyh2YWwpO1xuICAgIH1cbiAgICByZXR1cm4gdmFsO1xufTtcbmV4cG9ydCBjb25zdCBfdG9Cb29sID0gKHZhbCkgPT4ge1xuICAgIGlmICh2YWwgPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gdmFsO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHZhbCA9PT0gXCJudW1iZXJcIikge1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHZhbCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICBjb25zdCBsb3dlcmNhc2UgPSB2YWwudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgaWYgKHZhbCAhPT0gXCJcIiAmJiBsb3dlcmNhc2UgIT09IFwiZmFsc2VcIiAmJiBsb3dlcmNhc2UgIT09IFwidHJ1ZVwiKSB7XG4gICAgICAgICAgICBjb25zdCB3YXJuaW5nID0gbmV3IEVycm9yKGBSZWNlaXZlZCBzdHJpbmcgXCIke3ZhbH1cIiB3aGVyZSBhIGJvb2xlYW4gd2FzIGV4cGVjdGVkLmApO1xuICAgICAgICAgICAgd2FybmluZy5uYW1lID0gXCJXYXJuaW5nXCI7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4od2FybmluZyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbCAhPT0gXCJcIiAmJiBsb3dlcmNhc2UgIT09IFwiZmFsc2VcIjtcbiAgICB9XG4gICAgcmV0dXJuIHZhbDtcbn07XG5leHBvcnQgY29uc3QgX3RvTnVtID0gKHZhbCkgPT4ge1xuICAgIGlmICh2YWwgPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gdmFsO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHZhbCA9PT0gXCJib29sZWFuXCIpIHtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB2YWwgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgY29uc3QgbnVtID0gTnVtYmVyKHZhbCk7XG4gICAgICAgIGlmIChudW0udG9TdHJpbmcoKSAhPT0gdmFsKSB7XG4gICAgICAgICAgICBjb25zdCB3YXJuaW5nID0gbmV3IEVycm9yKGBSZWNlaXZlZCBzdHJpbmcgXCIke3ZhbH1cIiB3aGVyZSBhIG51bWJlciB3YXMgZXhwZWN0ZWQuYCk7XG4gICAgICAgICAgICB3YXJuaW5nLm5hbWUgPSBcIldhcm5pbmdcIjtcbiAgICAgICAgICAgIGNvbnNvbGUud2Fybih3YXJuaW5nKTtcbiAgICAgICAgICAgIHJldHVybiB2YWw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbDtcbn07XG4iLCAiZXhwb3J0IGNsYXNzIFNlcmRlQ29udGV4dENvbmZpZyB7XG4gICAgc2VyZGVDb250ZXh0O1xuICAgIHNldFNlcmRlQ29udGV4dChzZXJkZUNvbnRleHQpIHtcbiAgICAgICAgdGhpcy5zZXJkZUNvbnRleHQgPSBzZXJkZUNvbnRleHQ7XG4gICAgfVxufVxuIiwgImV4cG9ydCBjbGFzcyBVbmlvblNlcmRlIHtcbiAgICBmcm9tO1xuICAgIHRvO1xuICAgIGtleXM7XG4gICAgY29uc3RydWN0b3IoZnJvbSwgdG8pIHtcbiAgICAgICAgdGhpcy5mcm9tID0gZnJvbTtcbiAgICAgICAgdGhpcy50byA9IHRvO1xuICAgICAgICB0aGlzLmtleXMgPSBuZXcgU2V0KE9iamVjdC5rZXlzKHRoaXMuZnJvbSkuZmlsdGVyKChrKSA9PiBrICE9PSBcIl9fdHlwZVwiKSk7XG4gICAgfVxuICAgIG1hcmsoa2V5KSB7XG4gICAgICAgIHRoaXMua2V5cy5kZWxldGUoa2V5KTtcbiAgICB9XG4gICAgaGFzVW5rbm93bigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMua2V5cy5zaXplID09PSAxICYmIE9iamVjdC5rZXlzKHRoaXMudG8pLmxlbmd0aCA9PT0gMDtcbiAgICB9XG4gICAgd3JpdGVVbmtub3duKCkge1xuICAgICAgICBpZiAodGhpcy5oYXNVbmtub3duKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IGsgPSB0aGlzLmtleXMudmFsdWVzKCkubmV4dCgpLnZhbHVlO1xuICAgICAgICAgICAgY29uc3QgdiA9IHRoaXMuZnJvbVtrXTtcbiAgICAgICAgICAgIHRoaXMudG8uJHVua25vd24gPSBbaywgdl07XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgTnVtZXJpY1ZhbHVlIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zZXJkZVwiO1xuZXhwb3J0IGZ1bmN0aW9uIGpzb25SZXZpdmVyKGtleSwgdmFsdWUsIGNvbnRleHQpIHtcbiAgICBpZiAoY29udGV4dD8uc291cmNlKSB7XG4gICAgICAgIGNvbnN0IG51bWVyaWNTdHJpbmcgPSBjb250ZXh0LnNvdXJjZTtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgaWYgKHZhbHVlID4gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIgfHwgdmFsdWUgPCBOdW1iZXIuTUlOX1NBRkVfSU5URUdFUiB8fCBudW1lcmljU3RyaW5nICE9PSBTdHJpbmcodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNGcmFjdGlvbmFsID0gbnVtZXJpY1N0cmluZy5pbmNsdWRlcyhcIi5cIik7XG4gICAgICAgICAgICAgICAgaWYgKGlzRnJhY3Rpb25hbCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IE51bWVyaWNWYWx1ZShudW1lcmljU3RyaW5nLCBcImJpZ0RlY2ltYWxcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gQmlnSW50KG51bWVyaWNTdHJpbmcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG59XG4iLCAiaW1wb3J0IHsgY29sbGVjdEJvZHkgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyB0b1V0ZjggfSBmcm9tIFwiQHNtaXRoeS91dGlsLXV0ZjhcIjtcbmV4cG9ydCBjb25zdCBjb2xsZWN0Qm9keVN0cmluZyA9IChzdHJlYW1Cb2R5LCBjb250ZXh0KSA9PiBjb2xsZWN0Qm9keShzdHJlYW1Cb2R5LCBjb250ZXh0KS50aGVuKChib2R5KSA9PiAoY29udGV4dD8udXRmOEVuY29kZXIgPz8gdG9VdGY4KShib2R5KSk7XG4iLCAiaW1wb3J0IHsgY29sbGVjdEJvZHlTdHJpbmcgfSBmcm9tIFwiLi4vY29tbW9uXCI7XG5leHBvcnQgY29uc3QgcGFyc2VKc29uQm9keSA9IChzdHJlYW1Cb2R5LCBjb250ZXh0KSA9PiBjb2xsZWN0Qm9keVN0cmluZyhzdHJlYW1Cb2R5LCBjb250ZXh0KS50aGVuKChlbmNvZGVkKSA9PiB7XG4gICAgaWYgKGVuY29kZWQubGVuZ3RoKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShlbmNvZGVkKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgaWYgKGU/Lm5hbWUgPT09IFwiU3ludGF4RXJyb3JcIikge1xuICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCBcIiRyZXNwb25zZUJvZHlUZXh0XCIsIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGVuY29kZWQsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7fTtcbn0pO1xuZXhwb3J0IGNvbnN0IHBhcnNlSnNvbkVycm9yQm9keSA9IGFzeW5jIChlcnJvckJvZHksIGNvbnRleHQpID0+IHtcbiAgICBjb25zdCB2YWx1ZSA9IGF3YWl0IHBhcnNlSnNvbkJvZHkoZXJyb3JCb2R5LCBjb250ZXh0KTtcbiAgICB2YWx1ZS5tZXNzYWdlID0gdmFsdWUubWVzc2FnZSA/PyB2YWx1ZS5NZXNzYWdlO1xuICAgIHJldHVybiB2YWx1ZTtcbn07XG5leHBvcnQgY29uc3QgbG9hZFJlc3RKc29uRXJyb3JDb2RlID0gKG91dHB1dCwgZGF0YSkgPT4ge1xuICAgIGNvbnN0IGZpbmRLZXkgPSAob2JqZWN0LCBrZXkpID0+IE9iamVjdC5rZXlzKG9iamVjdCkuZmluZCgoaykgPT4gay50b0xvd2VyQ2FzZSgpID09PSBrZXkudG9Mb3dlckNhc2UoKSk7XG4gICAgY29uc3Qgc2FuaXRpemVFcnJvckNvZGUgPSAocmF3VmFsdWUpID0+IHtcbiAgICAgICAgbGV0IGNsZWFuVmFsdWUgPSByYXdWYWx1ZTtcbiAgICAgICAgaWYgKHR5cGVvZiBjbGVhblZhbHVlID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICBjbGVhblZhbHVlID0gY2xlYW5WYWx1ZS50b1N0cmluZygpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjbGVhblZhbHVlLmluZGV4T2YoXCIsXCIpID49IDApIHtcbiAgICAgICAgICAgIGNsZWFuVmFsdWUgPSBjbGVhblZhbHVlLnNwbGl0KFwiLFwiKVswXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2xlYW5WYWx1ZS5pbmRleE9mKFwiOlwiKSA+PSAwKSB7XG4gICAgICAgICAgICBjbGVhblZhbHVlID0gY2xlYW5WYWx1ZS5zcGxpdChcIjpcIilbMF07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNsZWFuVmFsdWUuaW5kZXhPZihcIiNcIikgPj0gMCkge1xuICAgICAgICAgICAgY2xlYW5WYWx1ZSA9IGNsZWFuVmFsdWUuc3BsaXQoXCIjXCIpWzFdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjbGVhblZhbHVlO1xuICAgIH07XG4gICAgY29uc3QgaGVhZGVyS2V5ID0gZmluZEtleShvdXRwdXQuaGVhZGVycywgXCJ4LWFtem4tZXJyb3J0eXBlXCIpO1xuICAgIGlmIChoZWFkZXJLZXkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gc2FuaXRpemVFcnJvckNvZGUob3V0cHV0LmhlYWRlcnNbaGVhZGVyS2V5XSk7XG4gICAgfVxuICAgIGlmIChkYXRhICYmIHR5cGVvZiBkYXRhID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgIGNvbnN0IGNvZGVLZXkgPSBmaW5kS2V5KGRhdGEsIFwiY29kZVwiKTtcbiAgICAgICAgaWYgKGNvZGVLZXkgJiYgZGF0YVtjb2RlS2V5XSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gc2FuaXRpemVFcnJvckNvZGUoZGF0YVtjb2RlS2V5XSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGFbXCJfX3R5cGVcIl0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHNhbml0aXplRXJyb3JDb2RlKGRhdGFbXCJfX3R5cGVcIl0pO1xuICAgICAgICB9XG4gICAgfVxufTtcbiIsICJpbXBvcnQgeyBkZXRlcm1pbmVUaW1lc3RhbXBGb3JtYXQgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3Byb3RvY29sc1wiO1xuaW1wb3J0IHsgTm9ybWFsaXplZFNjaGVtYSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2NoZW1hXCI7XG5pbXBvcnQgeyBMYXp5SnNvblN0cmluZywgTnVtZXJpY1ZhbHVlLCBwYXJzZUVwb2NoVGltZXN0YW1wLCBwYXJzZVJmYzMzMzlEYXRlVGltZVdpdGhPZmZzZXQsIHBhcnNlUmZjNzIzMURhdGVUaW1lLCB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2VyZGVcIjtcbmltcG9ydCB7IGZyb21CYXNlNjQgfSBmcm9tIFwiQHNtaXRoeS91dGlsLWJhc2U2NFwiO1xuaW1wb3J0IHsgU2VyZGVDb250ZXh0Q29uZmlnIH0gZnJvbSBcIi4uL0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dFwiO1xuaW1wb3J0IHsgVW5pb25TZXJkZSB9IGZyb20gXCIuLi9VbmlvblNlcmRlXCI7XG5pbXBvcnQgeyBqc29uUmV2aXZlciB9IGZyb20gXCIuL2pzb25SZXZpdmVyXCI7XG5pbXBvcnQgeyBwYXJzZUpzb25Cb2R5IH0gZnJvbSBcIi4vcGFyc2VKc29uQm9keVwiO1xuZXhwb3J0IGNsYXNzIEpzb25TaGFwZURlc2VyaWFsaXplciBleHRlbmRzIFNlcmRlQ29udGV4dENvbmZpZyB7XG4gICAgc2V0dGluZ3M7XG4gICAgY29uc3RydWN0b3Ioc2V0dGluZ3MpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5zZXR0aW5ncyA9IHNldHRpbmdzO1xuICAgIH1cbiAgICBhc3luYyByZWFkKHNjaGVtYSwgZGF0YSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVhZChzY2hlbWEsIHR5cGVvZiBkYXRhID09PSBcInN0cmluZ1wiID8gSlNPTi5wYXJzZShkYXRhLCBqc29uUmV2aXZlcikgOiBhd2FpdCBwYXJzZUpzb25Cb2R5KGRhdGEsIHRoaXMuc2VyZGVDb250ZXh0KSk7XG4gICAgfVxuICAgIHJlYWRPYmplY3Qoc2NoZW1hLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZWFkKHNjaGVtYSwgZGF0YSk7XG4gICAgfVxuICAgIF9yZWFkKHNjaGVtYSwgdmFsdWUpIHtcbiAgICAgICAgY29uc3QgaXNPYmplY3QgPSB2YWx1ZSAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCI7XG4gICAgICAgIGNvbnN0IG5zID0gTm9ybWFsaXplZFNjaGVtYS5vZihzY2hlbWEpO1xuICAgICAgICBpZiAoaXNPYmplY3QpIHtcbiAgICAgICAgICAgIGlmIChucy5pc1N0cnVjdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVjb3JkID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgY29uc3QgdW5pb24gPSBucy5pc1VuaW9uU2NoZW1hKCk7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3V0ID0ge307XG4gICAgICAgICAgICAgICAgbGV0IG5hbWVNYXAgPSB2b2lkIDA7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBqc29uTmFtZSB9ID0gdGhpcy5zZXR0aW5ncztcbiAgICAgICAgICAgICAgICBpZiAoanNvbk5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZU1hcCA9IHt9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBsZXQgdW5pb25TZXJkZTtcbiAgICAgICAgICAgICAgICBpZiAodW5pb24pIHtcbiAgICAgICAgICAgICAgICAgICAgdW5pb25TZXJkZSA9IG5ldyBVbmlvblNlcmRlKHJlY29yZCwgb3V0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBbbWVtYmVyTmFtZSwgbWVtYmVyU2NoZW1hXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBmcm9tS2V5ID0gbWVtYmVyTmFtZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGpzb25OYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmcm9tS2V5ID0gbWVtYmVyU2NoZW1hLmdldE1lcmdlZFRyYWl0cygpLmpzb25OYW1lID8/IGZyb21LZXk7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lTWFwW2Zyb21LZXldID0gbWVtYmVyTmFtZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAodW5pb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHVuaW9uU2VyZGUubWFyayhmcm9tS2V5KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAocmVjb3JkW2Zyb21LZXldICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG91dFttZW1iZXJOYW1lXSA9IHRoaXMuX3JlYWQobWVtYmVyU2NoZW1hLCByZWNvcmRbZnJvbUtleV0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh1bmlvbikge1xuICAgICAgICAgICAgICAgICAgICB1bmlvblNlcmRlLndyaXRlVW5rbm93bigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmICh0eXBlb2YgcmVjb3JkLl9fdHlwZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IFtrLCB2XSBvZiBPYmplY3QuZW50cmllcyhyZWNvcmQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0ID0ganNvbk5hbWUgPyBuYW1lTWFwW2tdID8/IGsgOiBrO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEodCBpbiBvdXQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0W3RdID0gdjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gb3V0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpICYmIG5zLmlzTGlzdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbGlzdE1lbWJlciA9IG5zLmdldFZhbHVlU2NoZW1hKCk7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3V0ID0gW107XG4gICAgICAgICAgICAgICAgY29uc3Qgc3BhcnNlID0gISFucy5nZXRNZXJnZWRUcmFpdHMoKS5zcGFyc2U7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzcGFyc2UgfHwgaXRlbSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvdXQucHVzaCh0aGlzLl9yZWFkKGxpc3RNZW1iZXIsIGl0ZW0pKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gb3V0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG5zLmlzTWFwU2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBtYXBNZW1iZXIgPSBucy5nZXRWYWx1ZVNjaGVtYSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IG91dCA9IHt9O1xuICAgICAgICAgICAgICAgIGNvbnN0IHNwYXJzZSA9ICEhbnMuZ2V0TWVyZ2VkVHJhaXRzKCkuc3BhcnNlO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgW19rLCBfdl0gb2YgT2JqZWN0LmVudHJpZXModmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzcGFyc2UgfHwgX3YgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3V0W19rXSA9IHRoaXMuX3JlYWQobWFwTWVtYmVyLCBfdik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIG91dDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAobnMuaXNCbG9iU2NoZW1hKCkgJiYgdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICByZXR1cm4gZnJvbUJhc2U2NCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbWVkaWFUeXBlID0gbnMuZ2V0TWVyZ2VkVHJhaXRzKCkubWVkaWFUeXBlO1xuICAgICAgICBpZiAobnMuaXNTdHJpbmdTY2hlbWEoKSAmJiB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgJiYgbWVkaWFUeXBlKSB7XG4gICAgICAgICAgICBjb25zdCBpc0pzb24gPSBtZWRpYVR5cGUgPT09IFwiYXBwbGljYXRpb24vanNvblwiIHx8IG1lZGlhVHlwZS5lbmRzV2l0aChcIitqc29uXCIpO1xuICAgICAgICAgICAgaWYgKGlzSnNvbikge1xuICAgICAgICAgICAgICAgIHJldHVybiBMYXp5SnNvblN0cmluZy5mcm9tKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobnMuaXNUaW1lc3RhbXBTY2hlbWEoKSAmJiB2YWx1ZSAhPSBudWxsKSB7XG4gICAgICAgICAgICBjb25zdCBmb3JtYXQgPSBkZXRlcm1pbmVUaW1lc3RhbXBGb3JtYXQobnMsIHRoaXMuc2V0dGluZ3MpO1xuICAgICAgICAgICAgc3dpdGNoIChmb3JtYXQpIHtcbiAgICAgICAgICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZVJmYzMzMzlEYXRlVGltZVdpdGhPZmZzZXQodmFsdWUpO1xuICAgICAgICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlUmZjNzIzMURhdGVUaW1lKHZhbHVlKTtcbiAgICAgICAgICAgICAgICBjYXNlIDc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZUVwb2NoVGltZXN0YW1wKHZhbHVlKTtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oXCJNaXNzaW5nIHRpbWVzdGFtcCBmb3JtYXQsIHBhcnNpbmcgdmFsdWUgd2l0aCBEYXRlIGNvbnN0cnVjdG9yOlwiLCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZSh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzQmlnSW50ZWdlclNjaGVtYSgpICYmICh0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCIgfHwgdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiKSkge1xuICAgICAgICAgICAgcmV0dXJuIEJpZ0ludCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzQmlnRGVjaW1hbFNjaGVtYSgpICYmIHZhbHVlICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgTnVtZXJpY1ZhbHVlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgdW50eXBlZCA9IHZhbHVlO1xuICAgICAgICAgICAgaWYgKHVudHlwZWQudHlwZSA9PT0gXCJiaWdEZWNpbWFsXCIgJiYgXCJzdHJpbmdcIiBpbiB1bnR5cGVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBOdW1lcmljVmFsdWUodW50eXBlZC5zdHJpbmcsIHVudHlwZWQudHlwZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbmV3IE51bWVyaWNWYWx1ZShTdHJpbmcodmFsdWUpLCBcImJpZ0RlY2ltYWxcIik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzTnVtZXJpY1NjaGVtYSgpICYmIHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgc3dpdGNoICh2YWx1ZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgXCJJbmZpbml0eVwiOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gSW5maW5pdHk7XG4gICAgICAgICAgICAgICAgY2FzZSBcIi1JbmZpbml0eVwiOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gLUluZmluaXR5O1xuICAgICAgICAgICAgICAgIGNhc2UgXCJOYU5cIjpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5hTjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobnMuaXNEb2N1bWVudFNjaGVtYSgpKSB7XG4gICAgICAgICAgICBpZiAoaXNPYmplY3QpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBvdXQgPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IFtdIDoge307XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBbaywgdl0gb2YgT2JqZWN0LmVudHJpZXModmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2IGluc3RhbmNlb2YgTnVtZXJpY1ZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvdXRba10gPSB2O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3V0W2tdID0gdGhpcy5fcmVhZChucywgdik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIG91dDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBzdHJ1Y3R1cmVkQ2xvbmUodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgTnVtZXJpY1ZhbHVlIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zZXJkZVwiO1xuY29uc3QgTlVNRVJJQ19DT05UUk9MX0NIQVIgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKDkyNSk7XG5leHBvcnQgY2xhc3MgSnNvblJlcGxhY2VyIHtcbiAgICB2YWx1ZXMgPSBuZXcgTWFwKCk7XG4gICAgY291bnRlciA9IDA7XG4gICAgc3RhZ2UgPSAwO1xuICAgIGNyZWF0ZVJlcGxhY2VyKCkge1xuICAgICAgICBpZiAodGhpcy5zdGFnZSA9PT0gMSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSBKc29uUmVwbGFjZXIgYWxyZWFkeSBjcmVhdGVkLlwiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5zdGFnZSA9PT0gMikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSBKc29uUmVwbGFjZXIgZXhoYXVzdGVkLlwiKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnN0YWdlID0gMTtcbiAgICAgICAgcmV0dXJuIChrZXksIHZhbHVlKSA9PiB7XG4gICAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBOdW1lcmljVmFsdWUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB2ID0gYCR7TlVNRVJJQ19DT05UUk9MX0NIQVIgKyBcIm52XCIgKyB0aGlzLmNvdW50ZXIrK31fYCArIHZhbHVlLnN0cmluZztcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlcy5zZXQoYFwiJHt2fVwiYCwgdmFsdWUuc3RyaW5nKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwiYmlnaW50XCIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzID0gdmFsdWUudG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICBjb25zdCB2ID0gYCR7TlVNRVJJQ19DT05UUk9MX0NIQVIgKyBcImJcIiArIHRoaXMuY291bnRlcisrfV9gICsgcztcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlcy5zZXQoYFwiJHt2fVwiYCwgcyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHY7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH07XG4gICAgfVxuICAgIHJlcGxhY2VJbkpzb24oanNvbikge1xuICAgICAgICBpZiAodGhpcy5zdGFnZSA9PT0gMCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSBKc29uUmVwbGFjZXIgbm90IGNyZWF0ZWQgeWV0LlwiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5zdGFnZSA9PT0gMikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSBKc29uUmVwbGFjZXIgZXhoYXVzdGVkLlwiKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnN0YWdlID0gMjtcbiAgICAgICAgaWYgKHRoaXMuY291bnRlciA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIGpzb247XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgdGhpcy52YWx1ZXMpIHtcbiAgICAgICAgICAgIGpzb24gPSBqc29uLnJlcGxhY2Uoa2V5LCB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGpzb247XG4gICAgfVxufVxuIiwgImltcG9ydCB7IGRldGVybWluZVRpbWVzdGFtcEZvcm1hdCB9IGZyb20gXCJAc21pdGh5L2NvcmUvcHJvdG9jb2xzXCI7XG5pbXBvcnQgeyBOb3JtYWxpemVkU2NoZW1hIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IGRhdGVUb1V0Y1N0cmluZywgZ2VuZXJhdGVJZGVtcG90ZW5jeVRva2VuLCBMYXp5SnNvblN0cmluZywgTnVtZXJpY1ZhbHVlIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zZXJkZVwiO1xuaW1wb3J0IHsgdG9CYXNlNjQgfSBmcm9tIFwiQHNtaXRoeS91dGlsLWJhc2U2NFwiO1xuaW1wb3J0IHsgU2VyZGVDb250ZXh0Q29uZmlnIH0gZnJvbSBcIi4uL0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dFwiO1xuaW1wb3J0IHsgSnNvblJlcGxhY2VyIH0gZnJvbSBcIi4vanNvblJlcGxhY2VyXCI7XG5leHBvcnQgY2xhc3MgSnNvblNoYXBlU2VyaWFsaXplciBleHRlbmRzIFNlcmRlQ29udGV4dENvbmZpZyB7XG4gICAgc2V0dGluZ3M7XG4gICAgYnVmZmVyO1xuICAgIHVzZVJlcGxhY2VyID0gZmFsc2U7XG4gICAgcm9vdFNjaGVtYTtcbiAgICBjb25zdHJ1Y3RvcihzZXR0aW5ncykge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnNldHRpbmdzID0gc2V0dGluZ3M7XG4gICAgfVxuICAgIHdyaXRlKHNjaGVtYSwgdmFsdWUpIHtcbiAgICAgICAgdGhpcy5yb290U2NoZW1hID0gTm9ybWFsaXplZFNjaGVtYS5vZihzY2hlbWEpO1xuICAgICAgICB0aGlzLmJ1ZmZlciA9IHRoaXMuX3dyaXRlKHRoaXMucm9vdFNjaGVtYSwgdmFsdWUpO1xuICAgIH1cbiAgICB3cml0ZURpc2NyaW1pbmF0ZWREb2N1bWVudChzY2hlbWEsIHZhbHVlKSB7XG4gICAgICAgIHRoaXMud3JpdGUoc2NoZW1hLCB2YWx1ZSk7XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5idWZmZXIgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgIHRoaXMuYnVmZmVyLl9fdHlwZSA9IE5vcm1hbGl6ZWRTY2hlbWEub2Yoc2NoZW1hKS5nZXROYW1lKHRydWUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGZsdXNoKCkge1xuICAgICAgICBjb25zdCB7IHJvb3RTY2hlbWEsIHVzZVJlcGxhY2VyIH0gPSB0aGlzO1xuICAgICAgICB0aGlzLnJvb3RTY2hlbWEgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMudXNlUmVwbGFjZXIgPSBmYWxzZTtcbiAgICAgICAgaWYgKHJvb3RTY2hlbWE/LmlzU3RydWN0U2NoZW1hKCkgfHwgcm9vdFNjaGVtYT8uaXNEb2N1bWVudFNjaGVtYSgpKSB7XG4gICAgICAgICAgICBpZiAoIXVzZVJlcGxhY2VyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHRoaXMuYnVmZmVyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHJlcGxhY2VyID0gbmV3IEpzb25SZXBsYWNlcigpO1xuICAgICAgICAgICAgcmV0dXJuIHJlcGxhY2VyLnJlcGxhY2VJbkpzb24oSlNPTi5zdHJpbmdpZnkodGhpcy5idWZmZXIsIHJlcGxhY2VyLmNyZWF0ZVJlcGxhY2VyKCksIDApKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5idWZmZXI7XG4gICAgfVxuICAgIF93cml0ZShzY2hlbWEsIHZhbHVlLCBjb250YWluZXIpIHtcbiAgICAgICAgY29uc3QgaXNPYmplY3QgPSB2YWx1ZSAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCI7XG4gICAgICAgIGNvbnN0IG5zID0gTm9ybWFsaXplZFNjaGVtYS5vZihzY2hlbWEpO1xuICAgICAgICBpZiAoaXNPYmplY3QpIHtcbiAgICAgICAgICAgIGlmIChucy5pc1N0cnVjdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVjb3JkID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3V0ID0ge307XG4gICAgICAgICAgICAgICAgY29uc3QgeyBqc29uTmFtZSB9ID0gdGhpcy5zZXR0aW5ncztcbiAgICAgICAgICAgICAgICBsZXQgbmFtZU1hcCA9IHZvaWQgMDtcbiAgICAgICAgICAgICAgICBpZiAoanNvbk5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZU1hcCA9IHt9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IFttZW1iZXJOYW1lLCBtZW1iZXJTY2hlbWFdIG9mIG5zLnN0cnVjdEl0ZXJhdG9yKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VyaWFsaXphYmxlVmFsdWUgPSB0aGlzLl93cml0ZShtZW1iZXJTY2hlbWEsIHJlY29yZFttZW1iZXJOYW1lXSwgbnMpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoc2VyaWFsaXphYmxlVmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRhcmdldEtleSA9IG1lbWJlck5hbWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoanNvbk5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRLZXkgPSBtZW1iZXJTY2hlbWEuZ2V0TWVyZ2VkVHJhaXRzKCkuanNvbk5hbWUgPz8gbWVtYmVyTmFtZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lTWFwW21lbWJlck5hbWVdID0gdGFyZ2V0S2V5O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgb3V0W3RhcmdldEtleV0gPSBzZXJpYWxpemFibGVWYWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAobnMuaXNVbmlvblNjaGVtYSgpICYmIE9iamVjdC5rZXlzKG91dCkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgJHVua25vd24gfSA9IHJlY29yZDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoJHVua25vd24pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBbaywgdl0gPSAkdW5rbm93bjtcbiAgICAgICAgICAgICAgICAgICAgICAgIG91dFtrXSA9IHRoaXMuX3dyaXRlKDE1LCB2KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmICh0eXBlb2YgcmVjb3JkLl9fdHlwZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IFtrLCB2XSBvZiBPYmplY3QuZW50cmllcyhyZWNvcmQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXRLZXkgPSBqc29uTmFtZSA/IG5hbWVNYXBba10gPz8gayA6IGs7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoISh0YXJnZXRLZXkgaW4gb3V0KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dFt0YXJnZXRLZXldID0gdGhpcy5fd3JpdGUoMTUsIHYpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBvdXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgbnMuaXNMaXN0U2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBsaXN0TWVtYmVyID0gbnMuZ2V0VmFsdWVTY2hlbWEoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBvdXQgPSBbXTtcbiAgICAgICAgICAgICAgICBjb25zdCBzcGFyc2UgPSAhIW5zLmdldE1lcmdlZFRyYWl0cygpLnNwYXJzZTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNwYXJzZSB8fCBpdGVtICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG91dC5wdXNoKHRoaXMuX3dyaXRlKGxpc3RNZW1iZXIsIGl0ZW0pKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gb3V0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG5zLmlzTWFwU2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBtYXBNZW1iZXIgPSBucy5nZXRWYWx1ZVNjaGVtYSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IG91dCA9IHt9O1xuICAgICAgICAgICAgICAgIGNvbnN0IHNwYXJzZSA9ICEhbnMuZ2V0TWVyZ2VkVHJhaXRzKCkuc3BhcnNlO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgW19rLCBfdl0gb2YgT2JqZWN0LmVudHJpZXModmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzcGFyc2UgfHwgX3YgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3V0W19rXSA9IHRoaXMuX3dyaXRlKG1hcE1lbWJlciwgX3YpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBvdXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBVaW50OEFycmF5ICYmIChucy5pc0Jsb2JTY2hlbWEoKSB8fCBucy5pc0RvY3VtZW50U2NoZW1hKCkpKSB7XG4gICAgICAgICAgICAgICAgaWYgKG5zID09PSB0aGlzLnJvb3RTY2hlbWEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gKHRoaXMuc2VyZGVDb250ZXh0Py5iYXNlNjRFbmNvZGVyID8/IHRvQmFzZTY0KSh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlICYmIChucy5pc1RpbWVzdGFtcFNjaGVtYSgpIHx8IG5zLmlzRG9jdW1lbnRTY2hlbWEoKSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmb3JtYXQgPSBkZXRlcm1pbmVUaW1lc3RhbXBGb3JtYXQobnMsIHRoaXMuc2V0dGluZ3MpO1xuICAgICAgICAgICAgICAgIHN3aXRjaCAoZm9ybWF0KSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZS50b0lTT1N0cmluZygpLnJlcGxhY2UoXCIuMDAwWlwiLCBcIlpcIik7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBkYXRlVG9VdGNTdHJpbmcodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDc6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUuZ2V0VGltZSgpIC8gMTAwMDtcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihcIk1pc3NpbmcgdGltZXN0YW1wIGZvcm1hdCwgdXNpbmcgZXBvY2ggc2Vjb25kc1wiLCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUuZ2V0VGltZSgpIC8gMTAwMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBOdW1lcmljVmFsdWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVzZVJlcGxhY2VyID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodmFsdWUgPT09IG51bGwgJiYgY29udGFpbmVyPy5pc1N0cnVjdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICByZXR1cm4gdm9pZCAwO1xuICAgICAgICB9XG4gICAgICAgIGlmIChucy5pc1N0cmluZ1NjaGVtYSgpKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcInVuZGVmaW5lZFwiICYmIG5zLmlzSWRlbXBvdGVuY3lUb2tlbigpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGdlbmVyYXRlSWRlbXBvdGVuY3lUb2tlbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgbWVkaWFUeXBlID0gbnMuZ2V0TWVyZ2VkVHJhaXRzKCkubWVkaWFUeXBlO1xuICAgICAgICAgICAgaWYgKHZhbHVlICE9IG51bGwgJiYgbWVkaWFUeXBlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNKc29uID0gbWVkaWFUeXBlID09PSBcImFwcGxpY2F0aW9uL2pzb25cIiB8fCBtZWRpYVR5cGUuZW5kc1dpdGgoXCIranNvblwiKTtcbiAgICAgICAgICAgICAgICBpZiAoaXNKc29uKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBMYXp5SnNvblN0cmluZy5mcm9tKHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJudW1iZXJcIiAmJiBucy5pc051bWVyaWNTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKE1hdGguYWJzKHZhbHVlKSA9PT0gSW5maW5pdHkgfHwgaXNOYU4odmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiAmJiBucy5pc0Jsb2JTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKG5zID09PSB0aGlzLnJvb3RTY2hlbWEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gKHRoaXMuc2VyZGVDb250ZXh0Py5iYXNlNjRFbmNvZGVyID8/IHRvQmFzZTY0KSh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJiaWdpbnRcIikge1xuICAgICAgICAgICAgdGhpcy51c2VSZXBsYWNlciA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzRG9jdW1lbnRTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKGlzT2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3V0ID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyBbXSA6IHt9O1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodiBpbnN0YW5jZW9mIE51bWVyaWNWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51c2VSZXBsYWNlciA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBvdXRba10gPSB2O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3V0W2tdID0gdGhpcy5fd3JpdGUobnMsIHYpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBvdXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3RydWN0dXJlZENsb25lKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IFNlcmRlQ29udGV4dENvbmZpZyB9IGZyb20gXCIuLi9Db25maWd1cmFibGVTZXJkZUNvbnRleHRcIjtcbmltcG9ydCB7IEpzb25TaGFwZURlc2VyaWFsaXplciB9IGZyb20gXCIuL0pzb25TaGFwZURlc2VyaWFsaXplclwiO1xuaW1wb3J0IHsgSnNvblNoYXBlU2VyaWFsaXplciB9IGZyb20gXCIuL0pzb25TaGFwZVNlcmlhbGl6ZXJcIjtcbmV4cG9ydCBjbGFzcyBKc29uQ29kZWMgZXh0ZW5kcyBTZXJkZUNvbnRleHRDb25maWcge1xuICAgIHNldHRpbmdzO1xuICAgIGNvbnN0cnVjdG9yKHNldHRpbmdzKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuc2V0dGluZ3MgPSBzZXR0aW5ncztcbiAgICB9XG4gICAgY3JlYXRlU2VyaWFsaXplcigpIHtcbiAgICAgICAgY29uc3Qgc2VyaWFsaXplciA9IG5ldyBKc29uU2hhcGVTZXJpYWxpemVyKHRoaXMuc2V0dGluZ3MpO1xuICAgICAgICBzZXJpYWxpemVyLnNldFNlcmRlQ29udGV4dCh0aGlzLnNlcmRlQ29udGV4dCk7XG4gICAgICAgIHJldHVybiBzZXJpYWxpemVyO1xuICAgIH1cbiAgICBjcmVhdGVEZXNlcmlhbGl6ZXIoKSB7XG4gICAgICAgIGNvbnN0IGRlc2VyaWFsaXplciA9IG5ldyBKc29uU2hhcGVEZXNlcmlhbGl6ZXIodGhpcy5zZXR0aW5ncyk7XG4gICAgICAgIGRlc2VyaWFsaXplci5zZXRTZXJkZUNvbnRleHQodGhpcy5zZXJkZUNvbnRleHQpO1xuICAgICAgICByZXR1cm4gZGVzZXJpYWxpemVyO1xuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBScGNQcm90b2NvbCB9IGZyb20gXCJAc21pdGh5L2NvcmUvcHJvdG9jb2xzXCI7XG5pbXBvcnQgeyBkZXJlZiwgTm9ybWFsaXplZFNjaGVtYSwgVHlwZVJlZ2lzdHJ5IH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IFByb3RvY29sTGliIH0gZnJvbSBcIi4uL1Byb3RvY29sTGliXCI7XG5pbXBvcnQgeyBKc29uQ29kZWMgfSBmcm9tIFwiLi9Kc29uQ29kZWNcIjtcbmltcG9ydCB7IGxvYWRSZXN0SnNvbkVycm9yQ29kZSB9IGZyb20gXCIuL3BhcnNlSnNvbkJvZHlcIjtcbmV4cG9ydCBjbGFzcyBBd3NKc29uUnBjUHJvdG9jb2wgZXh0ZW5kcyBScGNQcm90b2NvbCB7XG4gICAgc2VyaWFsaXplcjtcbiAgICBkZXNlcmlhbGl6ZXI7XG4gICAgc2VydmljZVRhcmdldDtcbiAgICBjb2RlYztcbiAgICBtaXhpbjtcbiAgICBhd3NRdWVyeUNvbXBhdGlibGU7XG4gICAgY29uc3RydWN0b3IoeyBkZWZhdWx0TmFtZXNwYWNlLCBzZXJ2aWNlVGFyZ2V0LCBhd3NRdWVyeUNvbXBhdGlibGUsIGpzb25Db2RlYywgfSkge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBkZWZhdWx0TmFtZXNwYWNlLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zZXJ2aWNlVGFyZ2V0ID0gc2VydmljZVRhcmdldDtcbiAgICAgICAgdGhpcy5jb2RlYyA9XG4gICAgICAgICAgICBqc29uQ29kZWMgPz9cbiAgICAgICAgICAgICAgICBuZXcgSnNvbkNvZGVjKHtcbiAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wRm9ybWF0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB1c2VUcmFpdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IDcsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGpzb25OYW1lOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zZXJpYWxpemVyID0gdGhpcy5jb2RlYy5jcmVhdGVTZXJpYWxpemVyKCk7XG4gICAgICAgIHRoaXMuZGVzZXJpYWxpemVyID0gdGhpcy5jb2RlYy5jcmVhdGVEZXNlcmlhbGl6ZXIoKTtcbiAgICAgICAgdGhpcy5hd3NRdWVyeUNvbXBhdGlibGUgPSAhIWF3c1F1ZXJ5Q29tcGF0aWJsZTtcbiAgICAgICAgdGhpcy5taXhpbiA9IG5ldyBQcm90b2NvbExpYih0aGlzLmF3c1F1ZXJ5Q29tcGF0aWJsZSk7XG4gICAgfVxuICAgIGFzeW5jIHNlcmlhbGl6ZVJlcXVlc3Qob3BlcmF0aW9uU2NoZW1hLCBpbnB1dCwgY29udGV4dCkge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gYXdhaXQgc3VwZXIuc2VyaWFsaXplUmVxdWVzdChvcGVyYXRpb25TY2hlbWEsIGlucHV0LCBjb250ZXh0KTtcbiAgICAgICAgaWYgKCFyZXF1ZXN0LnBhdGguZW5kc1dpdGgoXCIvXCIpKSB7XG4gICAgICAgICAgICByZXF1ZXN0LnBhdGggKz0gXCIvXCI7XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbihyZXF1ZXN0LmhlYWRlcnMsIHtcbiAgICAgICAgICAgIFwiY29udGVudC10eXBlXCI6IGBhcHBsaWNhdGlvbi94LWFtei1qc29uLSR7dGhpcy5nZXRKc29uUnBjVmVyc2lvbigpfWAsXG4gICAgICAgICAgICBcIngtYW16LXRhcmdldFwiOiBgJHt0aGlzLnNlcnZpY2VUYXJnZXR9LiR7b3BlcmF0aW9uU2NoZW1hLm5hbWV9YCxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmICh0aGlzLmF3c1F1ZXJ5Q29tcGF0aWJsZSkge1xuICAgICAgICAgICAgcmVxdWVzdC5oZWFkZXJzW1wieC1hbXpuLXF1ZXJ5LW1vZGVcIl0gPSBcInRydWVcIjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGVyZWYob3BlcmF0aW9uU2NoZW1hLmlucHV0KSA9PT0gXCJ1bml0XCIgfHwgIXJlcXVlc3QuYm9keSkge1xuICAgICAgICAgICAgcmVxdWVzdC5ib2R5ID0gXCJ7fVwiO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXF1ZXN0O1xuICAgIH1cbiAgICBnZXRQYXlsb2FkQ29kZWMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvZGVjO1xuICAgIH1cbiAgICBhc3luYyBoYW5kbGVFcnJvcihvcGVyYXRpb25TY2hlbWEsIGNvbnRleHQsIHJlc3BvbnNlLCBkYXRhT2JqZWN0LCBtZXRhZGF0YSkge1xuICAgICAgICBpZiAodGhpcy5hd3NRdWVyeUNvbXBhdGlibGUpIHtcbiAgICAgICAgICAgIHRoaXMubWl4aW4uc2V0UXVlcnlDb21wYXRFcnJvcihkYXRhT2JqZWN0LCByZXNwb25zZSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZXJyb3JJZGVudGlmaWVyID0gbG9hZFJlc3RKc29uRXJyb3JDb2RlKHJlc3BvbnNlLCBkYXRhT2JqZWN0KSA/PyBcIlVua25vd25cIjtcbiAgICAgICAgY29uc3QgeyBlcnJvclNjaGVtYSwgZXJyb3JNZXRhZGF0YSB9ID0gYXdhaXQgdGhpcy5taXhpbi5nZXRFcnJvclNjaGVtYU9yVGhyb3dCYXNlRXhjZXB0aW9uKGVycm9ySWRlbnRpZmllciwgdGhpcy5vcHRpb25zLmRlZmF1bHROYW1lc3BhY2UsIHJlc3BvbnNlLCBkYXRhT2JqZWN0LCBtZXRhZGF0YSwgdGhpcy5hd3NRdWVyeUNvbXBhdGlibGUgPyB0aGlzLm1peGluLmZpbmRRdWVyeUNvbXBhdGlibGVFcnJvciA6IHVuZGVmaW5lZCk7XG4gICAgICAgIGNvbnN0IG5zID0gTm9ybWFsaXplZFNjaGVtYS5vZihlcnJvclNjaGVtYSk7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBkYXRhT2JqZWN0Lm1lc3NhZ2UgPz8gZGF0YU9iamVjdC5NZXNzYWdlID8/IFwiVW5rbm93blwiO1xuICAgICAgICBjb25zdCBFcnJvckN0b3IgPSBUeXBlUmVnaXN0cnkuZm9yKGVycm9yU2NoZW1hWzFdKS5nZXRFcnJvckN0b3IoZXJyb3JTY2hlbWEpID8/IEVycm9yO1xuICAgICAgICBjb25zdCBleGNlcHRpb24gPSBuZXcgRXJyb3JDdG9yKG1lc3NhZ2UpO1xuICAgICAgICBjb25zdCBvdXRwdXQgPSB7fTtcbiAgICAgICAgZm9yIChjb25zdCBbbmFtZSwgbWVtYmVyXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICBpZiAoZGF0YU9iamVjdFtuYW1lXSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgb3V0cHV0W25hbWVdID0gdGhpcy5jb2RlYy5jcmVhdGVEZXNlcmlhbGl6ZXIoKS5yZWFkT2JqZWN0KG1lbWJlciwgZGF0YU9iamVjdFtuYW1lXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuYXdzUXVlcnlDb21wYXRpYmxlKSB7XG4gICAgICAgICAgICB0aGlzLm1peGluLnF1ZXJ5Q29tcGF0T3V0cHV0KGRhdGFPYmplY3QsIG91dHB1dCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgdGhpcy5taXhpbi5kZWNvcmF0ZVNlcnZpY2VFeGNlcHRpb24oT2JqZWN0LmFzc2lnbihleGNlcHRpb24sIGVycm9yTWV0YWRhdGEsIHtcbiAgICAgICAgICAgICRmYXVsdDogbnMuZ2V0TWVyZ2VkVHJhaXRzKCkuZXJyb3IsXG4gICAgICAgICAgICBtZXNzYWdlLFxuICAgICAgICB9LCBvdXRwdXQpLCBkYXRhT2JqZWN0KTtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgQXdzSnNvblJwY1Byb3RvY29sIH0gZnJvbSBcIi4vQXdzSnNvblJwY1Byb3RvY29sXCI7XG5leHBvcnQgY2xhc3MgQXdzSnNvbjFfMFByb3RvY29sIGV4dGVuZHMgQXdzSnNvblJwY1Byb3RvY29sIHtcbiAgICBjb25zdHJ1Y3Rvcih7IGRlZmF1bHROYW1lc3BhY2UsIHNlcnZpY2VUYXJnZXQsIGF3c1F1ZXJ5Q29tcGF0aWJsZSwganNvbkNvZGVjLCB9KSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIGRlZmF1bHROYW1lc3BhY2UsXG4gICAgICAgICAgICBzZXJ2aWNlVGFyZ2V0LFxuICAgICAgICAgICAgYXdzUXVlcnlDb21wYXRpYmxlLFxuICAgICAgICAgICAganNvbkNvZGVjLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgZ2V0U2hhcGVJZCgpIHtcbiAgICAgICAgcmV0dXJuIFwiYXdzLnByb3RvY29scyNhd3NKc29uMV8wXCI7XG4gICAgfVxuICAgIGdldEpzb25ScGNWZXJzaW9uKCkge1xuICAgICAgICByZXR1cm4gXCIxLjBcIjtcbiAgICB9XG4gICAgZ2V0RGVmYXVsdENvbnRlbnRUeXBlKCkge1xuICAgICAgICByZXR1cm4gXCJhcHBsaWNhdGlvbi94LWFtei1qc29uLTEuMFwiO1xuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBBd3NKc29uUnBjUHJvdG9jb2wgfSBmcm9tIFwiLi9Bd3NKc29uUnBjUHJvdG9jb2xcIjtcbmV4cG9ydCBjbGFzcyBBd3NKc29uMV8xUHJvdG9jb2wgZXh0ZW5kcyBBd3NKc29uUnBjUHJvdG9jb2wge1xuICAgIGNvbnN0cnVjdG9yKHsgZGVmYXVsdE5hbWVzcGFjZSwgc2VydmljZVRhcmdldCwgYXdzUXVlcnlDb21wYXRpYmxlLCBqc29uQ29kZWMsIH0pIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgZGVmYXVsdE5hbWVzcGFjZSxcbiAgICAgICAgICAgIHNlcnZpY2VUYXJnZXQsXG4gICAgICAgICAgICBhd3NRdWVyeUNvbXBhdGlibGUsXG4gICAgICAgICAgICBqc29uQ29kZWMsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBnZXRTaGFwZUlkKCkge1xuICAgICAgICByZXR1cm4gXCJhd3MucHJvdG9jb2xzI2F3c0pzb24xXzFcIjtcbiAgICB9XG4gICAgZ2V0SnNvblJwY1ZlcnNpb24oKSB7XG4gICAgICAgIHJldHVybiBcIjEuMVwiO1xuICAgIH1cbiAgICBnZXREZWZhdWx0Q29udGVudFR5cGUoKSB7XG4gICAgICAgIHJldHVybiBcImFwcGxpY2F0aW9uL3gtYW16LWpzb24tMS4xXCI7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IEh0dHBCaW5kaW5nUHJvdG9jb2wsIEh0dHBJbnRlcmNlcHRpbmdTaGFwZURlc2VyaWFsaXplciwgSHR0cEludGVyY2VwdGluZ1NoYXBlU2VyaWFsaXplciwgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3Byb3RvY29sc1wiO1xuaW1wb3J0IHsgTm9ybWFsaXplZFNjaGVtYSwgVHlwZVJlZ2lzdHJ5IH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IFByb3RvY29sTGliIH0gZnJvbSBcIi4uL1Byb3RvY29sTGliXCI7XG5pbXBvcnQgeyBKc29uQ29kZWMgfSBmcm9tIFwiLi9Kc29uQ29kZWNcIjtcbmltcG9ydCB7IGxvYWRSZXN0SnNvbkVycm9yQ29kZSB9IGZyb20gXCIuL3BhcnNlSnNvbkJvZHlcIjtcbmV4cG9ydCBjbGFzcyBBd3NSZXN0SnNvblByb3RvY29sIGV4dGVuZHMgSHR0cEJpbmRpbmdQcm90b2NvbCB7XG4gICAgc2VyaWFsaXplcjtcbiAgICBkZXNlcmlhbGl6ZXI7XG4gICAgY29kZWM7XG4gICAgbWl4aW4gPSBuZXcgUHJvdG9jb2xMaWIoKTtcbiAgICBjb25zdHJ1Y3Rvcih7IGRlZmF1bHROYW1lc3BhY2UgfSkge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBkZWZhdWx0TmFtZXNwYWNlLFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3Qgc2V0dGluZ3MgPSB7XG4gICAgICAgICAgICB0aW1lc3RhbXBGb3JtYXQ6IHtcbiAgICAgICAgICAgICAgICB1c2VUcmFpdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiA3LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGh0dHBCaW5kaW5nczogdHJ1ZSxcbiAgICAgICAgICAgIGpzb25OYW1lOiB0cnVlLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmNvZGVjID0gbmV3IEpzb25Db2RlYyhzZXR0aW5ncyk7XG4gICAgICAgIHRoaXMuc2VyaWFsaXplciA9IG5ldyBIdHRwSW50ZXJjZXB0aW5nU2hhcGVTZXJpYWxpemVyKHRoaXMuY29kZWMuY3JlYXRlU2VyaWFsaXplcigpLCBzZXR0aW5ncyk7XG4gICAgICAgIHRoaXMuZGVzZXJpYWxpemVyID0gbmV3IEh0dHBJbnRlcmNlcHRpbmdTaGFwZURlc2VyaWFsaXplcih0aGlzLmNvZGVjLmNyZWF0ZURlc2VyaWFsaXplcigpLCBzZXR0aW5ncyk7XG4gICAgfVxuICAgIGdldFNoYXBlSWQoKSB7XG4gICAgICAgIHJldHVybiBcImF3cy5wcm90b2NvbHMjcmVzdEpzb24xXCI7XG4gICAgfVxuICAgIGdldFBheWxvYWRDb2RlYygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29kZWM7XG4gICAgfVxuICAgIHNldFNlcmRlQ29udGV4dChzZXJkZUNvbnRleHQpIHtcbiAgICAgICAgdGhpcy5jb2RlYy5zZXRTZXJkZUNvbnRleHQoc2VyZGVDb250ZXh0KTtcbiAgICAgICAgc3VwZXIuc2V0U2VyZGVDb250ZXh0KHNlcmRlQ29udGV4dCk7XG4gICAgfVxuICAgIGFzeW5jIHNlcmlhbGl6ZVJlcXVlc3Qob3BlcmF0aW9uU2NoZW1hLCBpbnB1dCwgY29udGV4dCkge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gYXdhaXQgc3VwZXIuc2VyaWFsaXplUmVxdWVzdChvcGVyYXRpb25TY2hlbWEsIGlucHV0LCBjb250ZXh0KTtcbiAgICAgICAgY29uc3QgaW5wdXRTY2hlbWEgPSBOb3JtYWxpemVkU2NoZW1hLm9mKG9wZXJhdGlvblNjaGVtYS5pbnB1dCk7XG4gICAgICAgIGlmICghcmVxdWVzdC5oZWFkZXJzW1wiY29udGVudC10eXBlXCJdKSB7XG4gICAgICAgICAgICBjb25zdCBjb250ZW50VHlwZSA9IHRoaXMubWl4aW4ucmVzb2x2ZVJlc3RDb250ZW50VHlwZSh0aGlzLmdldERlZmF1bHRDb250ZW50VHlwZSgpLCBpbnB1dFNjaGVtYSk7XG4gICAgICAgICAgICBpZiAoY29udGVudFR5cGUpIHtcbiAgICAgICAgICAgICAgICByZXF1ZXN0LmhlYWRlcnNbXCJjb250ZW50LXR5cGVcIl0gPSBjb250ZW50VHlwZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAocmVxdWVzdC5ib2R5ID09IG51bGwgJiYgcmVxdWVzdC5oZWFkZXJzW1wiY29udGVudC10eXBlXCJdID09PSB0aGlzLmdldERlZmF1bHRDb250ZW50VHlwZSgpKSB7XG4gICAgICAgICAgICByZXF1ZXN0LmJvZHkgPSBcInt9XCI7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlcXVlc3Q7XG4gICAgfVxuICAgIGFzeW5jIGRlc2VyaWFsaXplUmVzcG9uc2Uob3BlcmF0aW9uU2NoZW1hLCBjb250ZXh0LCByZXNwb25zZSkge1xuICAgICAgICBjb25zdCBvdXRwdXQgPSBhd2FpdCBzdXBlci5kZXNlcmlhbGl6ZVJlc3BvbnNlKG9wZXJhdGlvblNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UpO1xuICAgICAgICBjb25zdCBvdXRwdXRTY2hlbWEgPSBOb3JtYWxpemVkU2NoZW1hLm9mKG9wZXJhdGlvblNjaGVtYS5vdXRwdXQpO1xuICAgICAgICBmb3IgKGNvbnN0IFtuYW1lLCBtZW1iZXJdIG9mIG91dHB1dFNjaGVtYS5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICBpZiAobWVtYmVyLmdldE1lbWJlclRyYWl0cygpLmh0dHBQYXlsb2FkICYmICEobmFtZSBpbiBvdXRwdXQpKSB7XG4gICAgICAgICAgICAgICAgb3V0cHV0W25hbWVdID0gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb3V0cHV0O1xuICAgIH1cbiAgICBhc3luYyBoYW5kbGVFcnJvcihvcGVyYXRpb25TY2hlbWEsIGNvbnRleHQsIHJlc3BvbnNlLCBkYXRhT2JqZWN0LCBtZXRhZGF0YSkge1xuICAgICAgICBjb25zdCBlcnJvcklkZW50aWZpZXIgPSBsb2FkUmVzdEpzb25FcnJvckNvZGUocmVzcG9uc2UsIGRhdGFPYmplY3QpID8/IFwiVW5rbm93blwiO1xuICAgICAgICBjb25zdCB7IGVycm9yU2NoZW1hLCBlcnJvck1ldGFkYXRhIH0gPSBhd2FpdCB0aGlzLm1peGluLmdldEVycm9yU2NoZW1hT3JUaHJvd0Jhc2VFeGNlcHRpb24oZXJyb3JJZGVudGlmaWVyLCB0aGlzLm9wdGlvbnMuZGVmYXVsdE5hbWVzcGFjZSwgcmVzcG9uc2UsIGRhdGFPYmplY3QsIG1ldGFkYXRhKTtcbiAgICAgICAgY29uc3QgbnMgPSBOb3JtYWxpemVkU2NoZW1hLm9mKGVycm9yU2NoZW1hKTtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGRhdGFPYmplY3QubWVzc2FnZSA/PyBkYXRhT2JqZWN0Lk1lc3NhZ2UgPz8gXCJVbmtub3duXCI7XG4gICAgICAgIGNvbnN0IEVycm9yQ3RvciA9IFR5cGVSZWdpc3RyeS5mb3IoZXJyb3JTY2hlbWFbMV0pLmdldEVycm9yQ3RvcihlcnJvclNjaGVtYSkgPz8gRXJyb3I7XG4gICAgICAgIGNvbnN0IGV4Y2VwdGlvbiA9IG5ldyBFcnJvckN0b3IobWVzc2FnZSk7XG4gICAgICAgIGF3YWl0IHRoaXMuZGVzZXJpYWxpemVIdHRwTWVzc2FnZShlcnJvclNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UsIGRhdGFPYmplY3QpO1xuICAgICAgICBjb25zdCBvdXRwdXQgPSB7fTtcbiAgICAgICAgZm9yIChjb25zdCBbbmFtZSwgbWVtYmVyXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBtZW1iZXIuZ2V0TWVyZ2VkVHJhaXRzKCkuanNvbk5hbWUgPz8gbmFtZTtcbiAgICAgICAgICAgIG91dHB1dFtuYW1lXSA9IHRoaXMuY29kZWMuY3JlYXRlRGVzZXJpYWxpemVyKCkucmVhZE9iamVjdChtZW1iZXIsIGRhdGFPYmplY3RbdGFyZ2V0XSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgdGhpcy5taXhpbi5kZWNvcmF0ZVNlcnZpY2VFeGNlcHRpb24oT2JqZWN0LmFzc2lnbihleGNlcHRpb24sIGVycm9yTWV0YWRhdGEsIHtcbiAgICAgICAgICAgICRmYXVsdDogbnMuZ2V0TWVyZ2VkVHJhaXRzKCkuZXJyb3IsXG4gICAgICAgICAgICBtZXNzYWdlLFxuICAgICAgICB9LCBvdXRwdXQpLCBkYXRhT2JqZWN0KTtcbiAgICB9XG4gICAgZ2V0RGVmYXVsdENvbnRlbnRUeXBlKCkge1xuICAgICAgICByZXR1cm4gXCJhcHBsaWNhdGlvbi9qc29uXCI7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IGV4cGVjdFVuaW9uIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuZXhwb3J0IGNvbnN0IGF3c0V4cGVjdFVuaW9uID0gKHZhbHVlKSA9PiB7XG4gICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIiAmJiBcIl9fdHlwZVwiIGluIHZhbHVlKSB7XG4gICAgICAgIGRlbGV0ZSB2YWx1ZS5fX3R5cGU7XG4gICAgfVxuICAgIHJldHVybiBleHBlY3RVbmlvbih2YWx1ZSk7XG59O1xuIiwgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5wYXJzZVhNTCA9IHBhcnNlWE1MO1xuY29uc3QgZmFzdF94bWxfcGFyc2VyXzEgPSByZXF1aXJlKFwiZmFzdC14bWwtcGFyc2VyXCIpO1xuY29uc3QgcGFyc2VyID0gbmV3IGZhc3RfeG1sX3BhcnNlcl8xLlhNTFBhcnNlcih7XG4gICAgYXR0cmlidXRlTmFtZVByZWZpeDogXCJcIixcbiAgICBodG1sRW50aXRpZXM6IHRydWUsXG4gICAgaWdub3JlQXR0cmlidXRlczogZmFsc2UsXG4gICAgaWdub3JlRGVjbGFyYXRpb246IHRydWUsXG4gICAgcGFyc2VUYWdWYWx1ZTogZmFsc2UsXG4gICAgdHJpbVZhbHVlczogZmFsc2UsXG4gICAgdGFnVmFsdWVQcm9jZXNzb3I6IChfLCB2YWwpID0+ICh2YWwudHJpbSgpID09PSBcIlwiICYmIHZhbC5pbmNsdWRlcyhcIlxcblwiKSA/IFwiXCIgOiB1bmRlZmluZWQpLFxufSk7XG5wYXJzZXIuYWRkRW50aXR5KFwiI3hEXCIsIFwiXFxyXCIpO1xucGFyc2VyLmFkZEVudGl0eShcIiMxMFwiLCBcIlxcblwiKTtcbmZ1bmN0aW9uIHBhcnNlWE1MKHhtbFN0cmluZykge1xuICAgIHJldHVybiBwYXJzZXIucGFyc2UoeG1sU3RyaW5nLCB0cnVlKTtcbn1cbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciB4bWxQYXJzZXIgPSByZXF1aXJlKCcuL3htbC1wYXJzZXInKTtcblxuZnVuY3Rpb24gZXNjYXBlQXR0cmlidXRlKHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlLnJlcGxhY2UoLyYvZywgXCImYW1wO1wiKS5yZXBsYWNlKC88L2csIFwiJmx0O1wiKS5yZXBsYWNlKC8+L2csIFwiJmd0O1wiKS5yZXBsYWNlKC9cIi9nLCBcIiZxdW90O1wiKTtcbn1cblxuZnVuY3Rpb24gZXNjYXBlRWxlbWVudCh2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZVxuICAgICAgICAucmVwbGFjZSgvJi9nLCBcIiZhbXA7XCIpXG4gICAgICAgIC5yZXBsYWNlKC9cIi9nLCBcIiZxdW90O1wiKVxuICAgICAgICAucmVwbGFjZSgvJy9nLCBcIiZhcG9zO1wiKVxuICAgICAgICAucmVwbGFjZSgvPC9nLCBcIiZsdDtcIilcbiAgICAgICAgLnJlcGxhY2UoLz4vZywgXCImZ3Q7XCIpXG4gICAgICAgIC5yZXBsYWNlKC9cXHIvZywgXCImI3gwRDtcIilcbiAgICAgICAgLnJlcGxhY2UoL1xcbi9nLCBcIiYjeDBBO1wiKVxuICAgICAgICAucmVwbGFjZSgvXFx1MDA4NS9nLCBcIiYjeDg1O1wiKVxuICAgICAgICAucmVwbGFjZSgvXFx1MjAyOC8sIFwiJiN4MjAyODtcIik7XG59XG5cbmNsYXNzIFhtbFRleHQge1xuICAgIHZhbHVlO1xuICAgIGNvbnN0cnVjdG9yKHZhbHVlKSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB9XG4gICAgdG9TdHJpbmcoKSB7XG4gICAgICAgIHJldHVybiBlc2NhcGVFbGVtZW50KFwiXCIgKyB0aGlzLnZhbHVlKTtcbiAgICB9XG59XG5cbmNsYXNzIFhtbE5vZGUge1xuICAgIG5hbWU7XG4gICAgY2hpbGRyZW47XG4gICAgYXR0cmlidXRlcyA9IHt9O1xuICAgIHN0YXRpYyBvZihuYW1lLCBjaGlsZFRleHQsIHdpdGhOYW1lKSB7XG4gICAgICAgIGNvbnN0IG5vZGUgPSBuZXcgWG1sTm9kZShuYW1lKTtcbiAgICAgICAgaWYgKGNoaWxkVGV4dCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBub2RlLmFkZENoaWxkTm9kZShuZXcgWG1sVGV4dChjaGlsZFRleHQpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAod2l0aE5hbWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgbm9kZS53aXRoTmFtZSh3aXRoTmFtZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5vZGU7XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKG5hbWUsIGNoaWxkcmVuID0gW10pIHtcbiAgICAgICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICAgICAgdGhpcy5jaGlsZHJlbiA9IGNoaWxkcmVuO1xuICAgIH1cbiAgICB3aXRoTmFtZShuYW1lKSB7XG4gICAgICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBhZGRBdHRyaWJ1dGUobmFtZSwgdmFsdWUpIHtcbiAgICAgICAgdGhpcy5hdHRyaWJ1dGVzW25hbWVdID0gdmFsdWU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBhZGRDaGlsZE5vZGUoY2hpbGQpIHtcbiAgICAgICAgdGhpcy5jaGlsZHJlbi5wdXNoKGNoaWxkKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIHJlbW92ZUF0dHJpYnV0ZShuYW1lKSB7XG4gICAgICAgIGRlbGV0ZSB0aGlzLmF0dHJpYnV0ZXNbbmFtZV07XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBuKG5hbWUpIHtcbiAgICAgICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIGMoY2hpbGQpIHtcbiAgICAgICAgdGhpcy5jaGlsZHJlbi5wdXNoKGNoaWxkKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIGEobmFtZSwgdmFsdWUpIHtcbiAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuYXR0cmlidXRlc1tuYW1lXSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBjYyhpbnB1dCwgZmllbGQsIHdpdGhOYW1lID0gZmllbGQpIHtcbiAgICAgICAgaWYgKGlucHV0W2ZpZWxkXSAhPSBudWxsKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlID0gWG1sTm9kZS5vZihmaWVsZCwgaW5wdXRbZmllbGRdKS53aXRoTmFtZSh3aXRoTmFtZSk7XG4gICAgICAgICAgICB0aGlzLmMobm9kZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbChpbnB1dCwgbGlzdE5hbWUsIG1lbWJlck5hbWUsIHZhbHVlUHJvdmlkZXIpIHtcbiAgICAgICAgaWYgKGlucHV0W2xpc3ROYW1lXSAhPSBudWxsKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlcyA9IHZhbHVlUHJvdmlkZXIoKTtcbiAgICAgICAgICAgIG5vZGVzLm1hcCgobm9kZSkgPT4ge1xuICAgICAgICAgICAgICAgIG5vZGUud2l0aE5hbWUobWVtYmVyTmFtZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5jKG5vZGUpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbGMoaW5wdXQsIGxpc3ROYW1lLCBtZW1iZXJOYW1lLCB2YWx1ZVByb3ZpZGVyKSB7XG4gICAgICAgIGlmIChpbnB1dFtsaXN0TmFtZV0gIT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZXMgPSB2YWx1ZVByb3ZpZGVyKCk7XG4gICAgICAgICAgICBjb25zdCBjb250YWluZXJOb2RlID0gbmV3IFhtbE5vZGUobWVtYmVyTmFtZSk7XG4gICAgICAgICAgICBub2Rlcy5tYXAoKG5vZGUpID0+IHtcbiAgICAgICAgICAgICAgICBjb250YWluZXJOb2RlLmMobm9kZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuYyhjb250YWluZXJOb2RlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICB0b1N0cmluZygpIHtcbiAgICAgICAgY29uc3QgaGFzQ2hpbGRyZW4gPSBCb29sZWFuKHRoaXMuY2hpbGRyZW4ubGVuZ3RoKTtcbiAgICAgICAgbGV0IHhtbFRleHQgPSBgPCR7dGhpcy5uYW1lfWA7XG4gICAgICAgIGNvbnN0IGF0dHJpYnV0ZXMgPSB0aGlzLmF0dHJpYnV0ZXM7XG4gICAgICAgIGZvciAoY29uc3QgYXR0cmlidXRlTmFtZSBvZiBPYmplY3Qua2V5cyhhdHRyaWJ1dGVzKSkge1xuICAgICAgICAgICAgY29uc3QgYXR0cmlidXRlID0gYXR0cmlidXRlc1thdHRyaWJ1dGVOYW1lXTtcbiAgICAgICAgICAgIGlmIChhdHRyaWJ1dGUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHhtbFRleHQgKz0gYCAke2F0dHJpYnV0ZU5hbWV9PVwiJHtlc2NhcGVBdHRyaWJ1dGUoXCJcIiArIGF0dHJpYnV0ZSl9XCJgO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiAoeG1sVGV4dCArPSAhaGFzQ2hpbGRyZW4gPyBcIi8+XCIgOiBgPiR7dGhpcy5jaGlsZHJlbi5tYXAoKGMpID0+IGMudG9TdHJpbmcoKSkuam9pbihcIlwiKX08LyR7dGhpcy5uYW1lfT5gKTtcbiAgICB9XG59XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcInBhcnNlWE1MXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4geG1sUGFyc2VyLnBhcnNlWE1MOyB9XG59KTtcbmV4cG9ydHMuWG1sTm9kZSA9IFhtbE5vZGU7XG5leHBvcnRzLlhtbFRleHQgPSBYbWxUZXh0O1xuIiwgImltcG9ydCB7IHBhcnNlWE1MIH0gZnJvbSBcIkBhd3Mtc2RrL3htbC1idWlsZGVyXCI7XG5pbXBvcnQgeyBGcm9tU3RyaW5nU2hhcGVEZXNlcmlhbGl6ZXIgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3Byb3RvY29sc1wiO1xuaW1wb3J0IHsgTm9ybWFsaXplZFNjaGVtYSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2NoZW1hXCI7XG5pbXBvcnQgeyBnZXRWYWx1ZUZyb21UZXh0Tm9kZSB9IGZyb20gXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjtcbmltcG9ydCB7IHRvVXRmOCB9IGZyb20gXCJAc21pdGh5L3V0aWwtdXRmOFwiO1xuaW1wb3J0IHsgU2VyZGVDb250ZXh0Q29uZmlnIH0gZnJvbSBcIi4uL0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dFwiO1xuaW1wb3J0IHsgVW5pb25TZXJkZSB9IGZyb20gXCIuLi9VbmlvblNlcmRlXCI7XG5leHBvcnQgY2xhc3MgWG1sU2hhcGVEZXNlcmlhbGl6ZXIgZXh0ZW5kcyBTZXJkZUNvbnRleHRDb25maWcge1xuICAgIHNldHRpbmdzO1xuICAgIHN0cmluZ0Rlc2VyaWFsaXplcjtcbiAgICBjb25zdHJ1Y3RvcihzZXR0aW5ncykge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnNldHRpbmdzID0gc2V0dGluZ3M7XG4gICAgICAgIHRoaXMuc3RyaW5nRGVzZXJpYWxpemVyID0gbmV3IEZyb21TdHJpbmdTaGFwZURlc2VyaWFsaXplcihzZXR0aW5ncyk7XG4gICAgfVxuICAgIHNldFNlcmRlQ29udGV4dChzZXJkZUNvbnRleHQpIHtcbiAgICAgICAgdGhpcy5zZXJkZUNvbnRleHQgPSBzZXJkZUNvbnRleHQ7XG4gICAgICAgIHRoaXMuc3RyaW5nRGVzZXJpYWxpemVyLnNldFNlcmRlQ29udGV4dChzZXJkZUNvbnRleHQpO1xuICAgIH1cbiAgICByZWFkKHNjaGVtYSwgYnl0ZXMsIGtleSkge1xuICAgICAgICBjb25zdCBucyA9IE5vcm1hbGl6ZWRTY2hlbWEub2Yoc2NoZW1hKTtcbiAgICAgICAgY29uc3QgbWVtYmVyU2NoZW1hcyA9IG5zLmdldE1lbWJlclNjaGVtYXMoKTtcbiAgICAgICAgY29uc3QgaXNFdmVudFBheWxvYWQgPSBucy5pc1N0cnVjdFNjaGVtYSgpICYmXG4gICAgICAgICAgICBucy5pc01lbWJlclNjaGVtYSgpICYmXG4gICAgICAgICAgICAhIU9iamVjdC52YWx1ZXMobWVtYmVyU2NoZW1hcykuZmluZCgobWVtYmVyTnMpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gISFtZW1iZXJOcy5nZXRNZW1iZXJUcmFpdHMoKS5ldmVudFBheWxvYWQ7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgaWYgKGlzRXZlbnRQYXlsb2FkKSB7XG4gICAgICAgICAgICBjb25zdCBvdXRwdXQgPSB7fTtcbiAgICAgICAgICAgIGNvbnN0IG1lbWJlck5hbWUgPSBPYmplY3Qua2V5cyhtZW1iZXJTY2hlbWFzKVswXTtcbiAgICAgICAgICAgIGNvbnN0IGV2ZW50TWVtYmVyU2NoZW1hID0gbWVtYmVyU2NoZW1hc1ttZW1iZXJOYW1lXTtcbiAgICAgICAgICAgIGlmIChldmVudE1lbWJlclNjaGVtYS5pc0Jsb2JTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIG91dHB1dFttZW1iZXJOYW1lXSA9IGJ5dGVzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgb3V0cHV0W21lbWJlck5hbWVdID0gdGhpcy5yZWFkKG1lbWJlclNjaGVtYXNbbWVtYmVyTmFtZV0sIGJ5dGVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBvdXRwdXQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgeG1sU3RyaW5nID0gKHRoaXMuc2VyZGVDb250ZXh0Py51dGY4RW5jb2RlciA/PyB0b1V0ZjgpKGJ5dGVzKTtcbiAgICAgICAgY29uc3QgcGFyc2VkT2JqZWN0ID0gdGhpcy5wYXJzZVhtbCh4bWxTdHJpbmcpO1xuICAgICAgICByZXR1cm4gdGhpcy5yZWFkU2NoZW1hKHNjaGVtYSwga2V5ID8gcGFyc2VkT2JqZWN0W2tleV0gOiBwYXJzZWRPYmplY3QpO1xuICAgIH1cbiAgICByZWFkU2NoZW1hKF9zY2hlbWEsIHZhbHVlKSB7XG4gICAgICAgIGNvbnN0IG5zID0gTm9ybWFsaXplZFNjaGVtYS5vZihfc2NoZW1hKTtcbiAgICAgICAgaWYgKG5zLmlzVW5pdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdHJhaXRzID0gbnMuZ2V0TWVyZ2VkVHJhaXRzKCk7XG4gICAgICAgIGlmIChucy5pc0xpc3RTY2hlbWEoKSAmJiAhQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnJlYWRTY2hlbWEobnMsIFt2YWx1ZV0pO1xuICAgICAgICB9XG4gICAgICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgY29uc3Qgc3BhcnNlID0gISF0cmFpdHMuc3BhcnNlO1xuICAgICAgICAgICAgY29uc3QgZmxhdCA9ICEhdHJhaXRzLnhtbEZsYXR0ZW5lZDtcbiAgICAgICAgICAgIGlmIChucy5pc0xpc3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxpc3RWYWx1ZSA9IG5zLmdldFZhbHVlU2NoZW1hKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgYnVmZmVyID0gW107XG4gICAgICAgICAgICAgICAgY29uc3Qgc291cmNlS2V5ID0gbGlzdFZhbHVlLmdldE1lcmdlZFRyYWl0cygpLnhtbE5hbWUgPz8gXCJtZW1iZXJcIjtcbiAgICAgICAgICAgICAgICBjb25zdCBzb3VyY2UgPSBmbGF0ID8gdmFsdWUgOiAodmFsdWVbMF0gPz8gdmFsdWUpW3NvdXJjZUtleV07XG4gICAgICAgICAgICAgICAgY29uc3Qgc291cmNlQXJyYXkgPSBBcnJheS5pc0FycmF5KHNvdXJjZSkgPyBzb3VyY2UgOiBbc291cmNlXTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHYgb2Ygc291cmNlQXJyYXkpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHYgIT0gbnVsbCB8fCBzcGFyc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5wdXNoKHRoaXMucmVhZFNjaGVtYShsaXN0VmFsdWUsIHYpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gYnVmZmVyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgYnVmZmVyID0ge307XG4gICAgICAgICAgICBpZiAobnMuaXNNYXBTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGtleU5zID0gbnMuZ2V0S2V5U2NoZW1hKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgbWVtYmVyTnMgPSBucy5nZXRWYWx1ZVNjaGVtYSgpO1xuICAgICAgICAgICAgICAgIGxldCBlbnRyaWVzO1xuICAgICAgICAgICAgICAgIGlmIChmbGF0KSB7XG4gICAgICAgICAgICAgICAgICAgIGVudHJpZXMgPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW3ZhbHVlXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGVudHJpZXMgPSBBcnJheS5pc0FycmF5KHZhbHVlLmVudHJ5KSA/IHZhbHVlLmVudHJ5IDogW3ZhbHVlLmVudHJ5XTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3Qga2V5UHJvcGVydHkgPSBrZXlOcy5nZXRNZXJnZWRUcmFpdHMoKS54bWxOYW1lID8/IFwia2V5XCI7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWVQcm9wZXJ0eSA9IG1lbWJlck5zLmdldE1lcmdlZFRyYWl0cygpLnhtbE5hbWUgPz8gXCJ2YWx1ZVwiO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZW50cnkgb2YgZW50cmllcykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSBlbnRyeVtrZXlQcm9wZXJ0eV07XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZW50cnlbdmFsdWVQcm9wZXJ0eV07XG4gICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSAhPSBudWxsIHx8IHNwYXJzZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyW2tleV0gPSB0aGlzLnJlYWRTY2hlbWEobWVtYmVyTnMsIHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gYnVmZmVyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG5zLmlzU3RydWN0U2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB1bmlvbiA9IG5zLmlzVW5pb25TY2hlbWEoKTtcbiAgICAgICAgICAgICAgICBsZXQgdW5pb25TZXJkZTtcbiAgICAgICAgICAgICAgICBpZiAodW5pb24pIHtcbiAgICAgICAgICAgICAgICAgICAgdW5pb25TZXJkZSA9IG5ldyBVbmlvblNlcmRlKHZhbHVlLCBidWZmZXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IFttZW1iZXJOYW1lLCBtZW1iZXJTY2hlbWFdIG9mIG5zLnN0cnVjdEl0ZXJhdG9yKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbWVtYmVyVHJhaXRzID0gbWVtYmVyU2NoZW1hLmdldE1lcmdlZFRyYWl0cygpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxPYmplY3RLZXkgPSAhbWVtYmVyVHJhaXRzLmh0dHBQYXlsb2FkXG4gICAgICAgICAgICAgICAgICAgICAgICA/IG1lbWJlclNjaGVtYS5nZXRNZW1iZXJUcmFpdHMoKS54bWxOYW1lID8/IG1lbWJlck5hbWVcbiAgICAgICAgICAgICAgICAgICAgICAgIDogbWVtYmVyVHJhaXRzLnhtbE5hbWUgPz8gbWVtYmVyU2NoZW1hLmdldE5hbWUoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHVuaW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB1bmlvblNlcmRlLm1hcmsoeG1sT2JqZWN0S2V5KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWVbeG1sT2JqZWN0S2V5XSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJbbWVtYmVyTmFtZV0gPSB0aGlzLnJlYWRTY2hlbWEobWVtYmVyU2NoZW1hLCB2YWx1ZVt4bWxPYmplY3RLZXldKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodW5pb24pIHtcbiAgICAgICAgICAgICAgICAgICAgdW5pb25TZXJkZS53cml0ZVVua25vd24oKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGJ1ZmZlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChucy5pc0RvY3VtZW50U2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEBhd3Mtc2RrL2NvcmUvcHJvdG9jb2xzIC0geG1sIGRlc2VyaWFsaXplciB1bmhhbmRsZWQgc2NoZW1hIHR5cGUgZm9yICR7bnMuZ2V0TmFtZSh0cnVlKX1gKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobnMuaXNMaXN0U2NoZW1hKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobnMuaXNNYXBTY2hlbWEoKSB8fCBucy5pc1N0cnVjdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICByZXR1cm4ge307XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuc3RyaW5nRGVzZXJpYWxpemVyLnJlYWQobnMsIHZhbHVlKTtcbiAgICB9XG4gICAgcGFyc2VYbWwoeG1sKSB7XG4gICAgICAgIGlmICh4bWwubGVuZ3RoKSB7XG4gICAgICAgICAgICBsZXQgcGFyc2VkT2JqO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBwYXJzZWRPYmogPSBwYXJzZVhNTCh4bWwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICBpZiAoZSAmJiB0eXBlb2YgZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwgXCIkcmVzcG9uc2VCb2R5VGV4dFwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogeG1sLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHRleHROb2RlTmFtZSA9IFwiI3RleHRcIjtcbiAgICAgICAgICAgIGNvbnN0IGtleSA9IE9iamVjdC5rZXlzKHBhcnNlZE9iailbMF07XG4gICAgICAgICAgICBjb25zdCBwYXJzZWRPYmpUb1JldHVybiA9IHBhcnNlZE9ialtrZXldO1xuICAgICAgICAgICAgaWYgKHBhcnNlZE9ialRvUmV0dXJuW3RleHROb2RlTmFtZV0pIHtcbiAgICAgICAgICAgICAgICBwYXJzZWRPYmpUb1JldHVybltrZXldID0gcGFyc2VkT2JqVG9SZXR1cm5bdGV4dE5vZGVOYW1lXTtcbiAgICAgICAgICAgICAgICBkZWxldGUgcGFyc2VkT2JqVG9SZXR1cm5bdGV4dE5vZGVOYW1lXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBnZXRWYWx1ZUZyb21UZXh0Tm9kZShwYXJzZWRPYmpUb1JldHVybik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHt9O1xuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBkZXRlcm1pbmVUaW1lc3RhbXBGb3JtYXQsIGV4dGVuZGVkRW5jb2RlVVJJQ29tcG9uZW50IH0gZnJvbSBcIkBzbWl0aHkvY29yZS9wcm90b2NvbHNcIjtcbmltcG9ydCB7IE5vcm1hbGl6ZWRTY2hlbWEgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3NjaGVtYVwiO1xuaW1wb3J0IHsgZ2VuZXJhdGVJZGVtcG90ZW5jeVRva2VuLCBOdW1lcmljVmFsdWUgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3NlcmRlXCI7XG5pbXBvcnQgeyBkYXRlVG9VdGNTdHJpbmcgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyB0b0Jhc2U2NCB9IGZyb20gXCJAc21pdGh5L3V0aWwtYmFzZTY0XCI7XG5pbXBvcnQgeyBTZXJkZUNvbnRleHRDb25maWcgfSBmcm9tIFwiLi4vQ29uZmlndXJhYmxlU2VyZGVDb250ZXh0XCI7XG5leHBvcnQgY2xhc3MgUXVlcnlTaGFwZVNlcmlhbGl6ZXIgZXh0ZW5kcyBTZXJkZUNvbnRleHRDb25maWcge1xuICAgIHNldHRpbmdzO1xuICAgIGJ1ZmZlcjtcbiAgICBjb25zdHJ1Y3RvcihzZXR0aW5ncykge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnNldHRpbmdzID0gc2V0dGluZ3M7XG4gICAgfVxuICAgIHdyaXRlKHNjaGVtYSwgdmFsdWUsIHByZWZpeCA9IFwiXCIpIHtcbiAgICAgICAgaWYgKHRoaXMuYnVmZmVyID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuYnVmZmVyID0gXCJcIjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBucyA9IE5vcm1hbGl6ZWRTY2hlbWEub2Yoc2NoZW1hKTtcbiAgICAgICAgaWYgKHByZWZpeCAmJiAhcHJlZml4LmVuZHNXaXRoKFwiLlwiKSkge1xuICAgICAgICAgICAgcHJlZml4ICs9IFwiLlwiO1xuICAgICAgICB9XG4gICAgICAgIGlmIChucy5pc0Jsb2JTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiB8fCB2YWx1ZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlS2V5KHByZWZpeCk7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKCh0aGlzLnNlcmRlQ29udGV4dD8uYmFzZTY0RW5jb2RlciA/PyB0b0Jhc2U2NCkodmFsdWUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChucy5pc0Jvb2xlYW5TY2hlbWEoKSB8fCBucy5pc051bWVyaWNTY2hlbWEoKSB8fCBucy5pc1N0cmluZ1NjaGVtYSgpKSB7XG4gICAgICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVLZXkocHJlZml4KTtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlVmFsdWUoU3RyaW5nKHZhbHVlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChucy5pc0lkZW1wb3RlbmN5VG9rZW4oKSkge1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVLZXkocHJlZml4KTtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlVmFsdWUoZ2VuZXJhdGVJZGVtcG90ZW5jeVRva2VuKCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKG5zLmlzQmlnSW50ZWdlclNjaGVtYSgpKSB7XG4gICAgICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVLZXkocHJlZml4KTtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlVmFsdWUoU3RyaW5nKHZhbHVlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAobnMuaXNCaWdEZWNpbWFsU2NoZW1hKCkpIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZUtleShwcmVmaXgpO1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVWYWx1ZSh2YWx1ZSBpbnN0YW5jZW9mIE51bWVyaWNWYWx1ZSA/IHZhbHVlLnN0cmluZyA6IFN0cmluZyh2YWx1ZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKG5zLmlzVGltZXN0YW1wU2NoZW1hKCkpIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlS2V5KHByZWZpeCk7XG4gICAgICAgICAgICAgICAgY29uc3QgZm9ybWF0ID0gZGV0ZXJtaW5lVGltZXN0YW1wRm9ybWF0KG5zLCB0aGlzLnNldHRpbmdzKTtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGZvcm1hdCkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLndyaXRlVmFsdWUodmFsdWUudG9JU09TdHJpbmcoKS5yZXBsYWNlKFwiLjAwMFpcIiwgXCJaXCIpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLndyaXRlVmFsdWUoZGF0ZVRvVXRjU3RyaW5nKHZhbHVlKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA3OlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKFN0cmluZyh2YWx1ZS5nZXRUaW1lKCkgLyAxMDAwKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAobnMuaXNEb2N1bWVudFNjaGVtYSgpKSB7XG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlKDY0IHwgMTUsIHZhbHVlLCBwcmVmaXgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZSg0LCB2YWx1ZSwgcHJlZml4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHZhbHVlIGluc3RhbmNlb2YgVWludDhBcnJheSkge1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGUoMjEsIHZhbHVlLCBwcmVmaXgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAodmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZSgxMjggfCAxNSwgdmFsdWUsIHByZWZpeCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlS2V5KHByZWZpeCk7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKFN0cmluZyh2YWx1ZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKG5zLmlzTGlzdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnNldHRpbmdzLnNlcmlhbGl6ZUVtcHR5TGlzdHMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMud3JpdGVLZXkocHJlZml4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMud3JpdGVWYWx1ZShcIlwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbWVtYmVyID0gbnMuZ2V0VmFsdWVTY2hlbWEoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZmxhdCA9IHRoaXMuc2V0dGluZ3MuZmxhdHRlbkxpc3RzIHx8IG5zLmdldE1lcmdlZFRyYWl0cygpLnhtbEZsYXR0ZW5lZDtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGkgPSAxO1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpdGVtID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRyYWl0cyA9IG1lbWJlci5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN1ZmZpeCA9IHRoaXMuZ2V0S2V5KFwibWVtYmVyXCIsIHRyYWl0cy54bWxOYW1lLCB0cmFpdHMuZWMyUXVlcnlOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IGZsYXQgPyBgJHtwcmVmaXh9JHtpfWAgOiBgJHtwcmVmaXh9JHtzdWZmaXh9LiR7aX1gO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53cml0ZShtZW1iZXIsIGl0ZW0sIGtleSk7XG4gICAgICAgICAgICAgICAgICAgICAgICArK2k7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAobnMuaXNNYXBTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgICAgIGNvbnN0IGtleVNjaGVtYSA9IG5zLmdldEtleVNjaGVtYSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IG1lbWJlclNjaGVtYSA9IG5zLmdldFZhbHVlU2NoZW1hKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgZmxhdCA9IG5zLmdldE1lcmdlZFRyYWl0cygpLnhtbEZsYXR0ZW5lZDtcbiAgICAgICAgICAgICAgICBsZXQgaSA9IDE7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBbaywgdl0gb2YgT2JqZWN0LmVudHJpZXModmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2ID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGtleVRyYWl0cyA9IGtleVNjaGVtYS5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qga2V5U3VmZml4ID0gdGhpcy5nZXRLZXkoXCJrZXlcIiwga2V5VHJhaXRzLnhtbE5hbWUsIGtleVRyYWl0cy5lYzJRdWVyeU5hbWUpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSBmbGF0ID8gYCR7cHJlZml4fSR7aX0uJHtrZXlTdWZmaXh9YCA6IGAke3ByZWZpeH1lbnRyeS4ke2l9LiR7a2V5U3VmZml4fWA7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbFRyYWl0cyA9IG1lbWJlclNjaGVtYS5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWVTdWZmaXggPSB0aGlzLmdldEtleShcInZhbHVlXCIsIHZhbFRyYWl0cy54bWxOYW1lLCB2YWxUcmFpdHMuZWMyUXVlcnlOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWVLZXkgPSBmbGF0ID8gYCR7cHJlZml4fSR7aX0uJHt2YWx1ZVN1ZmZpeH1gIDogYCR7cHJlZml4fWVudHJ5LiR7aX0uJHt2YWx1ZVN1ZmZpeH1gO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLndyaXRlKGtleVNjaGVtYSwgaywga2V5KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy53cml0ZShtZW1iZXJTY2hlbWEsIHYsIHZhbHVlS2V5KTtcbiAgICAgICAgICAgICAgICAgICAgKytpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChucy5pc1N0cnVjdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICBpZiAodmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICAgICAgbGV0IGRpZFdyaXRlTWVtYmVyID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBbbWVtYmVyTmFtZSwgbWVtYmVyXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZVttZW1iZXJOYW1lXSA9PSBudWxsICYmICFtZW1iZXIuaXNJZGVtcG90ZW5jeVRva2VuKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRyYWl0cyA9IG1lbWJlci5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3VmZml4ID0gdGhpcy5nZXRLZXkobWVtYmVyTmFtZSwgdHJhaXRzLnhtbE5hbWUsIHRyYWl0cy5lYzJRdWVyeU5hbWUsIFwic3RydWN0XCIpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSBgJHtwcmVmaXh9JHtzdWZmaXh9YDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy53cml0ZShtZW1iZXIsIHZhbHVlW21lbWJlck5hbWVdLCBrZXkpO1xuICAgICAgICAgICAgICAgICAgICBkaWRXcml0ZU1lbWJlciA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICghZGlkV3JpdGVNZW1iZXIgJiYgbnMuaXNVbmlvblNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgJHVua25vd24gfSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSgkdW5rbm93bikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFtrLCB2XSA9ICR1bmtub3duO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qga2V5ID0gYCR7cHJlZml4fSR7a31gO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53cml0ZSgxNSwgdiwga2V5KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChucy5pc1VuaXRTY2hlbWEoKSkge1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBAYXdzLXNkay9jb3JlL3Byb3RvY29scyAtIFF1ZXJ5U2VyaWFsaXplciB1bnJlY29nbml6ZWQgc2NoZW1hIHR5cGUgJHtucy5nZXROYW1lKHRydWUpfWApO1xuICAgICAgICB9XG4gICAgfVxuICAgIGZsdXNoKCkge1xuICAgICAgICBpZiAodGhpcy5idWZmZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSBRdWVyeVNlcmlhbGl6ZXIgY2Fubm90IGZsdXNoIHdpdGggbm90aGluZyB3cml0dGVuIHRvIGJ1ZmZlci5cIik7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc3RyID0gdGhpcy5idWZmZXI7XG4gICAgICAgIGRlbGV0ZSB0aGlzLmJ1ZmZlcjtcbiAgICAgICAgcmV0dXJuIHN0cjtcbiAgICB9XG4gICAgZ2V0S2V5KG1lbWJlck5hbWUsIHhtbE5hbWUsIGVjMlF1ZXJ5TmFtZSwga2V5U291cmNlKSB7XG4gICAgICAgIGNvbnN0IHsgZWMyLCBjYXBpdGFsaXplS2V5cyB9ID0gdGhpcy5zZXR0aW5ncztcbiAgICAgICAgaWYgKGVjMiAmJiBlYzJRdWVyeU5hbWUpIHtcbiAgICAgICAgICAgIHJldHVybiBlYzJRdWVyeU5hbWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qga2V5ID0geG1sTmFtZSA/PyBtZW1iZXJOYW1lO1xuICAgICAgICBpZiAoY2FwaXRhbGl6ZUtleXMgJiYga2V5U291cmNlID09PSBcInN0cnVjdFwiKSB7XG4gICAgICAgICAgICByZXR1cm4ga2V5WzBdLnRvVXBwZXJDYXNlKCkgKyBrZXkuc2xpY2UoMSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGtleTtcbiAgICB9XG4gICAgd3JpdGVLZXkoa2V5KSB7XG4gICAgICAgIGlmIChrZXkuZW5kc1dpdGgoXCIuXCIpKSB7XG4gICAgICAgICAgICBrZXkgPSBrZXkuc2xpY2UoMCwga2V5Lmxlbmd0aCAtIDEpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYnVmZmVyICs9IGAmJHtleHRlbmRlZEVuY29kZVVSSUNvbXBvbmVudChrZXkpfT1gO1xuICAgIH1cbiAgICB3cml0ZVZhbHVlKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuYnVmZmVyICs9IGV4dGVuZGVkRW5jb2RlVVJJQ29tcG9uZW50KHZhbHVlKTtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgY29sbGVjdEJvZHksIFJwY1Byb3RvY29sIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9wcm90b2NvbHNcIjtcbmltcG9ydCB7IGRlcmVmLCBOb3JtYWxpemVkU2NoZW1hLCBUeXBlUmVnaXN0cnkgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3NjaGVtYVwiO1xuaW1wb3J0IHsgUHJvdG9jb2xMaWIgfSBmcm9tIFwiLi4vUHJvdG9jb2xMaWJcIjtcbmltcG9ydCB7IFhtbFNoYXBlRGVzZXJpYWxpemVyIH0gZnJvbSBcIi4uL3htbC9YbWxTaGFwZURlc2VyaWFsaXplclwiO1xuaW1wb3J0IHsgUXVlcnlTaGFwZVNlcmlhbGl6ZXIgfSBmcm9tIFwiLi9RdWVyeVNoYXBlU2VyaWFsaXplclwiO1xuZXhwb3J0IGNsYXNzIEF3c1F1ZXJ5UHJvdG9jb2wgZXh0ZW5kcyBScGNQcm90b2NvbCB7XG4gICAgb3B0aW9ucztcbiAgICBzZXJpYWxpemVyO1xuICAgIGRlc2VyaWFsaXplcjtcbiAgICBtaXhpbiA9IG5ldyBQcm90b2NvbExpYigpO1xuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgZGVmYXVsdE5hbWVzcGFjZTogb3B0aW9ucy5kZWZhdWx0TmFtZXNwYWNlLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgICAgICAgY29uc3Qgc2V0dGluZ3MgPSB7XG4gICAgICAgICAgICB0aW1lc3RhbXBGb3JtYXQ6IHtcbiAgICAgICAgICAgICAgICB1c2VUcmFpdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiA1LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGh0dHBCaW5kaW5nczogZmFsc2UsXG4gICAgICAgICAgICB4bWxOYW1lc3BhY2U6IG9wdGlvbnMueG1sTmFtZXNwYWNlLFxuICAgICAgICAgICAgc2VydmljZU5hbWVzcGFjZTogb3B0aW9ucy5kZWZhdWx0TmFtZXNwYWNlLFxuICAgICAgICAgICAgc2VyaWFsaXplRW1wdHlMaXN0czogdHJ1ZSxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5zZXJpYWxpemVyID0gbmV3IFF1ZXJ5U2hhcGVTZXJpYWxpemVyKHNldHRpbmdzKTtcbiAgICAgICAgdGhpcy5kZXNlcmlhbGl6ZXIgPSBuZXcgWG1sU2hhcGVEZXNlcmlhbGl6ZXIoc2V0dGluZ3MpO1xuICAgIH1cbiAgICBnZXRTaGFwZUlkKCkge1xuICAgICAgICByZXR1cm4gXCJhd3MucHJvdG9jb2xzI2F3c1F1ZXJ5XCI7XG4gICAgfVxuICAgIHNldFNlcmRlQ29udGV4dChzZXJkZUNvbnRleHQpIHtcbiAgICAgICAgdGhpcy5zZXJpYWxpemVyLnNldFNlcmRlQ29udGV4dChzZXJkZUNvbnRleHQpO1xuICAgICAgICB0aGlzLmRlc2VyaWFsaXplci5zZXRTZXJkZUNvbnRleHQoc2VyZGVDb250ZXh0KTtcbiAgICB9XG4gICAgZ2V0UGF5bG9hZENvZGVjKCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJBV1NRdWVyeSBwcm90b2NvbCBoYXMgbm8gcGF5bG9hZCBjb2RlYy5cIik7XG4gICAgfVxuICAgIGFzeW5jIHNlcmlhbGl6ZVJlcXVlc3Qob3BlcmF0aW9uU2NoZW1hLCBpbnB1dCwgY29udGV4dCkge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gYXdhaXQgc3VwZXIuc2VyaWFsaXplUmVxdWVzdChvcGVyYXRpb25TY2hlbWEsIGlucHV0LCBjb250ZXh0KTtcbiAgICAgICAgaWYgKCFyZXF1ZXN0LnBhdGguZW5kc1dpdGgoXCIvXCIpKSB7XG4gICAgICAgICAgICByZXF1ZXN0LnBhdGggKz0gXCIvXCI7XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbihyZXF1ZXN0LmhlYWRlcnMsIHtcbiAgICAgICAgICAgIFwiY29udGVudC10eXBlXCI6IGBhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWRgLFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGRlcmVmKG9wZXJhdGlvblNjaGVtYS5pbnB1dCkgPT09IFwidW5pdFwiIHx8ICFyZXF1ZXN0LmJvZHkpIHtcbiAgICAgICAgICAgIHJlcXVlc3QuYm9keSA9IFwiXCI7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYWN0aW9uID0gb3BlcmF0aW9uU2NoZW1hLm5hbWUuc3BsaXQoXCIjXCIpWzFdID8/IG9wZXJhdGlvblNjaGVtYS5uYW1lO1xuICAgICAgICByZXF1ZXN0LmJvZHkgPSBgQWN0aW9uPSR7YWN0aW9ufSZWZXJzaW9uPSR7dGhpcy5vcHRpb25zLnZlcnNpb259YCArIHJlcXVlc3QuYm9keTtcbiAgICAgICAgaWYgKHJlcXVlc3QuYm9keS5lbmRzV2l0aChcIiZcIikpIHtcbiAgICAgICAgICAgIHJlcXVlc3QuYm9keSA9IHJlcXVlc3QuYm9keS5zbGljZSgtMSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlcXVlc3Q7XG4gICAgfVxuICAgIGFzeW5jIGRlc2VyaWFsaXplUmVzcG9uc2Uob3BlcmF0aW9uU2NoZW1hLCBjb250ZXh0LCByZXNwb25zZSkge1xuICAgICAgICBjb25zdCBkZXNlcmlhbGl6ZXIgPSB0aGlzLmRlc2VyaWFsaXplcjtcbiAgICAgICAgY29uc3QgbnMgPSBOb3JtYWxpemVkU2NoZW1hLm9mKG9wZXJhdGlvblNjaGVtYS5vdXRwdXQpO1xuICAgICAgICBjb25zdCBkYXRhT2JqZWN0ID0ge307XG4gICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXNDb2RlID49IDMwMCkge1xuICAgICAgICAgICAgY29uc3QgYnl0ZXMgPSBhd2FpdCBjb2xsZWN0Qm9keShyZXNwb25zZS5ib2R5LCBjb250ZXh0KTtcbiAgICAgICAgICAgIGlmIChieXRlcy5ieXRlTGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oZGF0YU9iamVjdCwgYXdhaXQgZGVzZXJpYWxpemVyLnJlYWQoMTUsIGJ5dGVzKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmhhbmRsZUVycm9yKG9wZXJhdGlvblNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UsIGRhdGFPYmplY3QsIHRoaXMuZGVzZXJpYWxpemVNZXRhZGF0YShyZXNwb25zZSkpO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgaGVhZGVyIGluIHJlc3BvbnNlLmhlYWRlcnMpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gcmVzcG9uc2UuaGVhZGVyc1toZWFkZXJdO1xuICAgICAgICAgICAgZGVsZXRlIHJlc3BvbnNlLmhlYWRlcnNbaGVhZGVyXTtcbiAgICAgICAgICAgIHJlc3BvbnNlLmhlYWRlcnNbaGVhZGVyLnRvTG93ZXJDYXNlKCldID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc2hvcnROYW1lID0gb3BlcmF0aW9uU2NoZW1hLm5hbWUuc3BsaXQoXCIjXCIpWzFdID8/IG9wZXJhdGlvblNjaGVtYS5uYW1lO1xuICAgICAgICBjb25zdCBhd3NRdWVyeVJlc3VsdEtleSA9IG5zLmlzU3RydWN0U2NoZW1hKCkgJiYgdGhpcy51c2VOZXN0ZWRSZXN1bHQoKSA/IHNob3J0TmFtZSArIFwiUmVzdWx0XCIgOiB1bmRlZmluZWQ7XG4gICAgICAgIGNvbnN0IGJ5dGVzID0gYXdhaXQgY29sbGVjdEJvZHkocmVzcG9uc2UuYm9keSwgY29udGV4dCk7XG4gICAgICAgIGlmIChieXRlcy5ieXRlTGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihkYXRhT2JqZWN0LCBhd2FpdCBkZXNlcmlhbGl6ZXIucmVhZChucywgYnl0ZXMsIGF3c1F1ZXJ5UmVzdWx0S2V5KSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgb3V0cHV0ID0ge1xuICAgICAgICAgICAgJG1ldGFkYXRhOiB0aGlzLmRlc2VyaWFsaXplTWV0YWRhdGEocmVzcG9uc2UpLFxuICAgICAgICAgICAgLi4uZGF0YU9iamVjdCxcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIG91dHB1dDtcbiAgICB9XG4gICAgdXNlTmVzdGVkUmVzdWx0KCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgYXN5bmMgaGFuZGxlRXJyb3Iob3BlcmF0aW9uU2NoZW1hLCBjb250ZXh0LCByZXNwb25zZSwgZGF0YU9iamVjdCwgbWV0YWRhdGEpIHtcbiAgICAgICAgY29uc3QgZXJyb3JJZGVudGlmaWVyID0gdGhpcy5sb2FkUXVlcnlFcnJvckNvZGUocmVzcG9uc2UsIGRhdGFPYmplY3QpID8/IFwiVW5rbm93blwiO1xuICAgICAgICBjb25zdCBlcnJvckRhdGEgPSB0aGlzLmxvYWRRdWVyeUVycm9yKGRhdGFPYmplY3QpID8/IHt9O1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gdGhpcy5sb2FkUXVlcnlFcnJvck1lc3NhZ2UoZGF0YU9iamVjdCk7XG4gICAgICAgIGVycm9yRGF0YS5tZXNzYWdlID0gbWVzc2FnZTtcbiAgICAgICAgZXJyb3JEYXRhLkVycm9yID0ge1xuICAgICAgICAgICAgVHlwZTogZXJyb3JEYXRhLlR5cGUsXG4gICAgICAgICAgICBDb2RlOiBlcnJvckRhdGEuQ29kZSxcbiAgICAgICAgICAgIE1lc3NhZ2U6IG1lc3NhZ2UsXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHsgZXJyb3JTY2hlbWEsIGVycm9yTWV0YWRhdGEgfSA9IGF3YWl0IHRoaXMubWl4aW4uZ2V0RXJyb3JTY2hlbWFPclRocm93QmFzZUV4Y2VwdGlvbihlcnJvcklkZW50aWZpZXIsIHRoaXMub3B0aW9ucy5kZWZhdWx0TmFtZXNwYWNlLCByZXNwb25zZSwgZXJyb3JEYXRhLCBtZXRhZGF0YSwgdGhpcy5taXhpbi5maW5kUXVlcnlDb21wYXRpYmxlRXJyb3IpO1xuICAgICAgICBjb25zdCBucyA9IE5vcm1hbGl6ZWRTY2hlbWEub2YoZXJyb3JTY2hlbWEpO1xuICAgICAgICBjb25zdCBFcnJvckN0b3IgPSBUeXBlUmVnaXN0cnkuZm9yKGVycm9yU2NoZW1hWzFdKS5nZXRFcnJvckN0b3IoZXJyb3JTY2hlbWEpID8/IEVycm9yO1xuICAgICAgICBjb25zdCBleGNlcHRpb24gPSBuZXcgRXJyb3JDdG9yKG1lc3NhZ2UpO1xuICAgICAgICBjb25zdCBvdXRwdXQgPSB7XG4gICAgICAgICAgICBUeXBlOiBlcnJvckRhdGEuRXJyb3IuVHlwZSxcbiAgICAgICAgICAgIENvZGU6IGVycm9yRGF0YS5FcnJvci5Db2RlLFxuICAgICAgICAgICAgRXJyb3I6IGVycm9yRGF0YS5FcnJvcixcbiAgICAgICAgfTtcbiAgICAgICAgZm9yIChjb25zdCBbbmFtZSwgbWVtYmVyXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBtZW1iZXIuZ2V0TWVyZ2VkVHJhaXRzKCkueG1sTmFtZSA/PyBuYW1lO1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBlcnJvckRhdGFbdGFyZ2V0XSA/PyBkYXRhT2JqZWN0W3RhcmdldF07XG4gICAgICAgICAgICBvdXRwdXRbbmFtZV0gPSB0aGlzLmRlc2VyaWFsaXplci5yZWFkU2NoZW1hKG1lbWJlciwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IHRoaXMubWl4aW4uZGVjb3JhdGVTZXJ2aWNlRXhjZXB0aW9uKE9iamVjdC5hc3NpZ24oZXhjZXB0aW9uLCBlcnJvck1ldGFkYXRhLCB7XG4gICAgICAgICAgICAkZmF1bHQ6IG5zLmdldE1lcmdlZFRyYWl0cygpLmVycm9yLFxuICAgICAgICAgICAgbWVzc2FnZSxcbiAgICAgICAgfSwgb3V0cHV0KSwgZGF0YU9iamVjdCk7XG4gICAgfVxuICAgIGxvYWRRdWVyeUVycm9yQ29kZShvdXRwdXQsIGRhdGEpIHtcbiAgICAgICAgY29uc3QgY29kZSA9IChkYXRhLkVycm9ycz8uWzBdPy5FcnJvciA/PyBkYXRhLkVycm9ycz8uRXJyb3IgPz8gZGF0YS5FcnJvcik/LkNvZGU7XG4gICAgICAgIGlmIChjb2RlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBjb2RlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvdXRwdXQuc3RhdHVzQ29kZSA9PSA0MDQpIHtcbiAgICAgICAgICAgIHJldHVybiBcIk5vdEZvdW5kXCI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbG9hZFF1ZXJ5RXJyb3IoZGF0YSkge1xuICAgICAgICByZXR1cm4gZGF0YS5FcnJvcnM/LlswXT8uRXJyb3IgPz8gZGF0YS5FcnJvcnM/LkVycm9yID8/IGRhdGEuRXJyb3I7XG4gICAgfVxuICAgIGxvYWRRdWVyeUVycm9yTWVzc2FnZShkYXRhKSB7XG4gICAgICAgIGNvbnN0IGVycm9yRGF0YSA9IHRoaXMubG9hZFF1ZXJ5RXJyb3IoZGF0YSk7XG4gICAgICAgIHJldHVybiBlcnJvckRhdGE/Lm1lc3NhZ2UgPz8gZXJyb3JEYXRhPy5NZXNzYWdlID8/IGRhdGEubWVzc2FnZSA/PyBkYXRhLk1lc3NhZ2UgPz8gXCJVbmtub3duXCI7XG4gICAgfVxuICAgIGdldERlZmF1bHRDb250ZW50VHlwZSgpIHtcbiAgICAgICAgcmV0dXJuIFwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkXCI7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IEF3c1F1ZXJ5UHJvdG9jb2wgfSBmcm9tIFwiLi9Bd3NRdWVyeVByb3RvY29sXCI7XG5leHBvcnQgY2xhc3MgQXdzRWMyUXVlcnlQcm90b2NvbCBleHRlbmRzIEF3c1F1ZXJ5UHJvdG9jb2wge1xuICAgIG9wdGlvbnM7XG4gICAgY29uc3RydWN0b3Iob3B0aW9ucykge1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgICAgICAgY29uc3QgZWMyU2V0dGluZ3MgPSB7XG4gICAgICAgICAgICBjYXBpdGFsaXplS2V5czogdHJ1ZSxcbiAgICAgICAgICAgIGZsYXR0ZW5MaXN0czogdHJ1ZSxcbiAgICAgICAgICAgIHNlcmlhbGl6ZUVtcHR5TGlzdHM6IGZhbHNlLFxuICAgICAgICAgICAgZWMyOiB0cnVlLFxuICAgICAgICB9O1xuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMuc2VyaWFsaXplci5zZXR0aW5ncywgZWMyU2V0dGluZ3MpO1xuICAgIH1cbiAgICB1c2VOZXN0ZWRSZXN1bHQoKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgcGFyc2VYTUwgfSBmcm9tIFwiQGF3cy1zZGsveG1sLWJ1aWxkZXJcIjtcbmltcG9ydCB7IGdldFZhbHVlRnJvbVRleHROb2RlIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgY29sbGVjdEJvZHlTdHJpbmcgfSBmcm9tIFwiLi4vY29tbW9uXCI7XG5leHBvcnQgY29uc3QgcGFyc2VYbWxCb2R5ID0gKHN0cmVhbUJvZHksIGNvbnRleHQpID0+IGNvbGxlY3RCb2R5U3RyaW5nKHN0cmVhbUJvZHksIGNvbnRleHQpLnRoZW4oKGVuY29kZWQpID0+IHtcbiAgICBpZiAoZW5jb2RlZC5sZW5ndGgpIHtcbiAgICAgICAgbGV0IHBhcnNlZE9iajtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHBhcnNlZE9iaiA9IHBhcnNlWE1MKGVuY29kZWQpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICBpZiAoZSAmJiB0eXBlb2YgZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCBcIiRyZXNwb25zZUJvZHlUZXh0XCIsIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGVuY29kZWQsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHRleHROb2RlTmFtZSA9IFwiI3RleHRcIjtcbiAgICAgICAgY29uc3Qga2V5ID0gT2JqZWN0LmtleXMocGFyc2VkT2JqKVswXTtcbiAgICAgICAgY29uc3QgcGFyc2VkT2JqVG9SZXR1cm4gPSBwYXJzZWRPYmpba2V5XTtcbiAgICAgICAgaWYgKHBhcnNlZE9ialRvUmV0dXJuW3RleHROb2RlTmFtZV0pIHtcbiAgICAgICAgICAgIHBhcnNlZE9ialRvUmV0dXJuW2tleV0gPSBwYXJzZWRPYmpUb1JldHVyblt0ZXh0Tm9kZU5hbWVdO1xuICAgICAgICAgICAgZGVsZXRlIHBhcnNlZE9ialRvUmV0dXJuW3RleHROb2RlTmFtZV07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGdldFZhbHVlRnJvbVRleHROb2RlKHBhcnNlZE9ialRvUmV0dXJuKTtcbiAgICB9XG4gICAgcmV0dXJuIHt9O1xufSk7XG5leHBvcnQgY29uc3QgcGFyc2VYbWxFcnJvckJvZHkgPSBhc3luYyAoZXJyb3JCb2R5LCBjb250ZXh0KSA9PiB7XG4gICAgY29uc3QgdmFsdWUgPSBhd2FpdCBwYXJzZVhtbEJvZHkoZXJyb3JCb2R5LCBjb250ZXh0KTtcbiAgICBpZiAodmFsdWUuRXJyb3IpIHtcbiAgICAgICAgdmFsdWUuRXJyb3IubWVzc2FnZSA9IHZhbHVlLkVycm9yLm1lc3NhZ2UgPz8gdmFsdWUuRXJyb3IuTWVzc2FnZTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlO1xufTtcbmV4cG9ydCBjb25zdCBsb2FkUmVzdFhtbEVycm9yQ29kZSA9IChvdXRwdXQsIGRhdGEpID0+IHtcbiAgICBpZiAoZGF0YT8uRXJyb3I/LkNvZGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gZGF0YS5FcnJvci5Db2RlO1xuICAgIH1cbiAgICBpZiAoZGF0YT8uQ29kZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiBkYXRhLkNvZGU7XG4gICAgfVxuICAgIGlmIChvdXRwdXQuc3RhdHVzQ29kZSA9PSA0MDQpIHtcbiAgICAgICAgcmV0dXJuIFwiTm90Rm91bmRcIjtcbiAgICB9XG59O1xuIiwgImltcG9ydCB7IFhtbE5vZGUsIFhtbFRleHQgfSBmcm9tIFwiQGF3cy1zZGsveG1sLWJ1aWxkZXJcIjtcbmltcG9ydCB7IGRldGVybWluZVRpbWVzdGFtcEZvcm1hdCB9IGZyb20gXCJAc21pdGh5L2NvcmUvcHJvdG9jb2xzXCI7XG5pbXBvcnQgeyBOb3JtYWxpemVkU2NoZW1hIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IGdlbmVyYXRlSWRlbXBvdGVuY3lUb2tlbiwgTnVtZXJpY1ZhbHVlIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zZXJkZVwiO1xuaW1wb3J0IHsgZGF0ZVRvVXRjU3RyaW5nIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgZnJvbUJhc2U2NCwgdG9CYXNlNjQgfSBmcm9tIFwiQHNtaXRoeS91dGlsLWJhc2U2NFwiO1xuaW1wb3J0IHsgU2VyZGVDb250ZXh0Q29uZmlnIH0gZnJvbSBcIi4uL0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dFwiO1xuZXhwb3J0IGNsYXNzIFhtbFNoYXBlU2VyaWFsaXplciBleHRlbmRzIFNlcmRlQ29udGV4dENvbmZpZyB7XG4gICAgc2V0dGluZ3M7XG4gICAgc3RyaW5nQnVmZmVyO1xuICAgIGJ5dGVCdWZmZXI7XG4gICAgYnVmZmVyO1xuICAgIGNvbnN0cnVjdG9yKHNldHRpbmdzKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuc2V0dGluZ3MgPSBzZXR0aW5ncztcbiAgICB9XG4gICAgd3JpdGUoc2NoZW1hLCB2YWx1ZSkge1xuICAgICAgICBjb25zdCBucyA9IE5vcm1hbGl6ZWRTY2hlbWEub2Yoc2NoZW1hKTtcbiAgICAgICAgaWYgKG5zLmlzU3RyaW5nU2NoZW1hKCkgJiYgdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICB0aGlzLnN0cmluZ0J1ZmZlciA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKG5zLmlzQmxvYlNjaGVtYSgpKSB7XG4gICAgICAgICAgICB0aGlzLmJ5dGVCdWZmZXIgPVxuICAgICAgICAgICAgICAgIFwiYnl0ZUxlbmd0aFwiIGluIHZhbHVlXG4gICAgICAgICAgICAgICAgICAgID8gdmFsdWVcbiAgICAgICAgICAgICAgICAgICAgOiAodGhpcy5zZXJkZUNvbnRleHQ/LmJhc2U2NERlY29kZXIgPz8gZnJvbUJhc2U2NCkodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5idWZmZXIgPSB0aGlzLndyaXRlU3RydWN0KG5zLCB2YWx1ZSwgdW5kZWZpbmVkKTtcbiAgICAgICAgICAgIGNvbnN0IHRyYWl0cyA9IG5zLmdldE1lcmdlZFRyYWl0cygpO1xuICAgICAgICAgICAgaWYgKHRyYWl0cy5odHRwUGF5bG9hZCAmJiAhdHJhaXRzLnhtbE5hbWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmJ1ZmZlci53aXRoTmFtZShucy5nZXROYW1lKCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGZsdXNoKCkge1xuICAgICAgICBpZiAodGhpcy5ieXRlQnVmZmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IGJ5dGVzID0gdGhpcy5ieXRlQnVmZmVyO1xuICAgICAgICAgICAgZGVsZXRlIHRoaXMuYnl0ZUJ1ZmZlcjtcbiAgICAgICAgICAgIHJldHVybiBieXRlcztcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5zdHJpbmdCdWZmZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgY29uc3Qgc3RyID0gdGhpcy5zdHJpbmdCdWZmZXI7XG4gICAgICAgICAgICBkZWxldGUgdGhpcy5zdHJpbmdCdWZmZXI7XG4gICAgICAgICAgICByZXR1cm4gc3RyO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGJ1ZmZlciA9IHRoaXMuYnVmZmVyO1xuICAgICAgICBpZiAodGhpcy5zZXR0aW5ncy54bWxOYW1lc3BhY2UpIHtcbiAgICAgICAgICAgIGlmICghYnVmZmVyPy5hdHRyaWJ1dGVzPy5bXCJ4bWxuc1wiXSkge1xuICAgICAgICAgICAgICAgIGJ1ZmZlci5hZGRBdHRyaWJ1dGUoXCJ4bWxuc1wiLCB0aGlzLnNldHRpbmdzLnhtbE5hbWVzcGFjZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZGVsZXRlIHRoaXMuYnVmZmVyO1xuICAgICAgICByZXR1cm4gYnVmZmVyLnRvU3RyaW5nKCk7XG4gICAgfVxuICAgIHdyaXRlU3RydWN0KG5zLCB2YWx1ZSwgcGFyZW50WG1sbnMpIHtcbiAgICAgICAgY29uc3QgdHJhaXRzID0gbnMuZ2V0TWVyZ2VkVHJhaXRzKCk7XG4gICAgICAgIGNvbnN0IG5hbWUgPSBucy5pc01lbWJlclNjaGVtYSgpICYmICF0cmFpdHMuaHR0cFBheWxvYWRcbiAgICAgICAgICAgID8gbnMuZ2V0TWVtYmVyVHJhaXRzKCkueG1sTmFtZSA/PyBucy5nZXRNZW1iZXJOYW1lKClcbiAgICAgICAgICAgIDogdHJhaXRzLnhtbE5hbWUgPz8gbnMuZ2V0TmFtZSgpO1xuICAgICAgICBpZiAoIW5hbWUgfHwgIW5zLmlzU3RydWN0U2NoZW1hKCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSB4bWwgc2VyaWFsaXplciwgY2Fubm90IHdyaXRlIHN0cnVjdCB3aXRoIGVtcHR5IG5hbWUgb3Igbm9uLXN0cnVjdCwgc2NoZW1hPSR7bnMuZ2V0TmFtZSh0cnVlKX0uYCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc3RydWN0WG1sTm9kZSA9IFhtbE5vZGUub2YobmFtZSk7XG4gICAgICAgIGNvbnN0IFt4bWxuc0F0dHIsIHhtbG5zXSA9IHRoaXMuZ2V0WG1sbnNBdHRyaWJ1dGUobnMsIHBhcmVudFhtbG5zKTtcbiAgICAgICAgZm9yIChjb25zdCBbbWVtYmVyTmFtZSwgbWVtYmVyU2NoZW1hXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICBjb25zdCB2YWwgPSB2YWx1ZVttZW1iZXJOYW1lXTtcbiAgICAgICAgICAgIGlmICh2YWwgIT0gbnVsbCB8fCBtZW1iZXJTY2hlbWEuaXNJZGVtcG90ZW5jeVRva2VuKCkpIHtcbiAgICAgICAgICAgICAgICBpZiAobWVtYmVyU2NoZW1hLmdldE1lcmdlZFRyYWl0cygpLnhtbEF0dHJpYnV0ZSkge1xuICAgICAgICAgICAgICAgICAgICBzdHJ1Y3RYbWxOb2RlLmFkZEF0dHJpYnV0ZShtZW1iZXJTY2hlbWEuZ2V0TWVyZ2VkVHJhaXRzKCkueG1sTmFtZSA/PyBtZW1iZXJOYW1lLCB0aGlzLndyaXRlU2ltcGxlKG1lbWJlclNjaGVtYSwgdmFsKSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAobWVtYmVyU2NoZW1hLmlzTGlzdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMud3JpdGVMaXN0KG1lbWJlclNjaGVtYSwgdmFsLCBzdHJ1Y3RYbWxOb2RlLCB4bWxucyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKG1lbWJlclNjaGVtYS5pc01hcFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMud3JpdGVNYXAobWVtYmVyU2NoZW1hLCB2YWwsIHN0cnVjdFhtbE5vZGUsIHhtbG5zKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAobWVtYmVyU2NoZW1hLmlzU3RydWN0U2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgc3RydWN0WG1sTm9kZS5hZGRDaGlsZE5vZGUodGhpcy53cml0ZVN0cnVjdChtZW1iZXJTY2hlbWEsIHZhbCwgeG1sbnMpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1lbWJlck5vZGUgPSBYbWxOb2RlLm9mKG1lbWJlclNjaGVtYS5nZXRNZXJnZWRUcmFpdHMoKS54bWxOYW1lID8/IG1lbWJlclNjaGVtYS5nZXRNZW1iZXJOYW1lKCkpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLndyaXRlU2ltcGxlSW50byhtZW1iZXJTY2hlbWEsIHZhbCwgbWVtYmVyTm9kZSwgeG1sbnMpO1xuICAgICAgICAgICAgICAgICAgICBzdHJ1Y3RYbWxOb2RlLmFkZENoaWxkTm9kZShtZW1iZXJOb2RlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgeyAkdW5rbm93biB9ID0gdmFsdWU7XG4gICAgICAgIGlmICgkdW5rbm93biAmJiBucy5pc1VuaW9uU2NoZW1hKCkgJiYgQXJyYXkuaXNBcnJheSgkdW5rbm93bikgJiYgT2JqZWN0LmtleXModmFsdWUpLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgY29uc3QgW2ssIHZdID0gJHVua25vd247XG4gICAgICAgICAgICBjb25zdCBub2RlID0gWG1sTm9kZS5vZihrKTtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdiAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIFhtbE5vZGUgfHwgdmFsdWUgaW5zdGFuY2VvZiBYbWxUZXh0KSB7XG4gICAgICAgICAgICAgICAgICAgIHN0cnVjdFhtbE5vZGUuYWRkQ2hpbGROb2RlKHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQGF3cy1zZGsgLSAkdW5rbm93biB1bmlvbiBtZW1iZXIgaW4gWE1MIHJlcXVpcmVzIGAgK1xuICAgICAgICAgICAgICAgICAgICAgICAgYHZhbHVlIG9mIHR5cGUgc3RyaW5nLCBAYXdzLXNkay94bWwtYnVpbGRlcjo6WG1sTm9kZSBvciBYbWxUZXh0LmApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMud3JpdGVTaW1wbGVJbnRvKDAsIHYsIG5vZGUsIHhtbG5zKTtcbiAgICAgICAgICAgIHN0cnVjdFhtbE5vZGUuYWRkQ2hpbGROb2RlKG5vZGUpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh4bWxucykge1xuICAgICAgICAgICAgc3RydWN0WG1sTm9kZS5hZGRBdHRyaWJ1dGUoeG1sbnNBdHRyLCB4bWxucyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN0cnVjdFhtbE5vZGU7XG4gICAgfVxuICAgIHdyaXRlTGlzdChsaXN0TWVtYmVyLCBhcnJheSwgY29udGFpbmVyLCBwYXJlbnRYbWxucykge1xuICAgICAgICBpZiAoIWxpc3RNZW1iZXIuaXNNZW1iZXJTY2hlbWEoKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBAYXdzLXNkay9jb3JlL3Byb3RvY29scyAtIHhtbCBzZXJpYWxpemVyLCBjYW5ub3Qgd3JpdGUgbm9uLW1lbWJlciBsaXN0OiAke2xpc3RNZW1iZXIuZ2V0TmFtZSh0cnVlKX1gKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBsaXN0VHJhaXRzID0gbGlzdE1lbWJlci5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgY29uc3QgbGlzdFZhbHVlU2NoZW1hID0gbGlzdE1lbWJlci5nZXRWYWx1ZVNjaGVtYSgpO1xuICAgICAgICBjb25zdCBsaXN0VmFsdWVUcmFpdHMgPSBsaXN0VmFsdWVTY2hlbWEuZ2V0TWVyZ2VkVHJhaXRzKCk7XG4gICAgICAgIGNvbnN0IHNwYXJzZSA9ICEhbGlzdFZhbHVlVHJhaXRzLnNwYXJzZTtcbiAgICAgICAgY29uc3QgZmxhdCA9ICEhbGlzdFRyYWl0cy54bWxGbGF0dGVuZWQ7XG4gICAgICAgIGNvbnN0IFt4bWxuc0F0dHIsIHhtbG5zXSA9IHRoaXMuZ2V0WG1sbnNBdHRyaWJ1dGUobGlzdE1lbWJlciwgcGFyZW50WG1sbnMpO1xuICAgICAgICBjb25zdCB3cml0ZUl0ZW0gPSAoY29udGFpbmVyLCB2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgaWYgKGxpc3RWYWx1ZVNjaGVtYS5pc0xpc3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVMaXN0KGxpc3RWYWx1ZVNjaGVtYSwgQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV0sIGNvbnRhaW5lciwgeG1sbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAobGlzdFZhbHVlU2NoZW1hLmlzTWFwU2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlTWFwKGxpc3RWYWx1ZVNjaGVtYSwgdmFsdWUsIGNvbnRhaW5lciwgeG1sbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAobGlzdFZhbHVlU2NoZW1hLmlzU3RydWN0U2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgPSB0aGlzLndyaXRlU3RydWN0KGxpc3RWYWx1ZVNjaGVtYSwgdmFsdWUsIHhtbG5zKTtcbiAgICAgICAgICAgICAgICBjb250YWluZXIuYWRkQ2hpbGROb2RlKHN0cnVjdC53aXRoTmFtZShmbGF0ID8gbGlzdFRyYWl0cy54bWxOYW1lID8/IGxpc3RNZW1iZXIuZ2V0TWVtYmVyTmFtZSgpIDogbGlzdFZhbHVlVHJhaXRzLnhtbE5hbWUgPz8gXCJtZW1iZXJcIikpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbGlzdEl0ZW1Ob2RlID0gWG1sTm9kZS5vZihmbGF0ID8gbGlzdFRyYWl0cy54bWxOYW1lID8/IGxpc3RNZW1iZXIuZ2V0TWVtYmVyTmFtZSgpIDogbGlzdFZhbHVlVHJhaXRzLnhtbE5hbWUgPz8gXCJtZW1iZXJcIik7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZVNpbXBsZUludG8obGlzdFZhbHVlU2NoZW1hLCB2YWx1ZSwgbGlzdEl0ZW1Ob2RlLCB4bWxucyk7XG4gICAgICAgICAgICAgICAgY29udGFpbmVyLmFkZENoaWxkTm9kZShsaXN0SXRlbU5vZGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBpZiAoZmxhdCkge1xuICAgICAgICAgICAgZm9yIChjb25zdCB2YWx1ZSBvZiBhcnJheSkge1xuICAgICAgICAgICAgICAgIGlmIChzcGFyc2UgfHwgdmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICB3cml0ZUl0ZW0oY29udGFpbmVyLCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgbGlzdE5vZGUgPSBYbWxOb2RlLm9mKGxpc3RUcmFpdHMueG1sTmFtZSA/PyBsaXN0TWVtYmVyLmdldE1lbWJlck5hbWUoKSk7XG4gICAgICAgICAgICBpZiAoeG1sbnMpIHtcbiAgICAgICAgICAgICAgICBsaXN0Tm9kZS5hZGRBdHRyaWJ1dGUoeG1sbnNBdHRyLCB4bWxucyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHZhbHVlIG9mIGFycmF5KSB7XG4gICAgICAgICAgICAgICAgaWYgKHNwYXJzZSB8fCB2YWx1ZSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHdyaXRlSXRlbShsaXN0Tm9kZSwgdmFsdWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnRhaW5lci5hZGRDaGlsZE5vZGUobGlzdE5vZGUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHdyaXRlTWFwKG1hcE1lbWJlciwgbWFwLCBjb250YWluZXIsIHBhcmVudFhtbG5zLCBjb250YWluZXJJc01hcCA9IGZhbHNlKSB7XG4gICAgICAgIGlmICghbWFwTWVtYmVyLmlzTWVtYmVyU2NoZW1hKCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSB4bWwgc2VyaWFsaXplciwgY2Fubm90IHdyaXRlIG5vbi1tZW1iZXIgbWFwOiAke21hcE1lbWJlci5nZXROYW1lKHRydWUpfWApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG1hcFRyYWl0cyA9IG1hcE1lbWJlci5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgY29uc3QgbWFwS2V5U2NoZW1hID0gbWFwTWVtYmVyLmdldEtleVNjaGVtYSgpO1xuICAgICAgICBjb25zdCBtYXBLZXlUcmFpdHMgPSBtYXBLZXlTY2hlbWEuZ2V0TWVyZ2VkVHJhaXRzKCk7XG4gICAgICAgIGNvbnN0IGtleVRhZyA9IG1hcEtleVRyYWl0cy54bWxOYW1lID8/IFwia2V5XCI7XG4gICAgICAgIGNvbnN0IG1hcFZhbHVlU2NoZW1hID0gbWFwTWVtYmVyLmdldFZhbHVlU2NoZW1hKCk7XG4gICAgICAgIGNvbnN0IG1hcFZhbHVlVHJhaXRzID0gbWFwVmFsdWVTY2hlbWEuZ2V0TWVyZ2VkVHJhaXRzKCk7XG4gICAgICAgIGNvbnN0IHZhbHVlVGFnID0gbWFwVmFsdWVUcmFpdHMueG1sTmFtZSA/PyBcInZhbHVlXCI7XG4gICAgICAgIGNvbnN0IHNwYXJzZSA9ICEhbWFwVmFsdWVUcmFpdHMuc3BhcnNlO1xuICAgICAgICBjb25zdCBmbGF0ID0gISFtYXBUcmFpdHMueG1sRmxhdHRlbmVkO1xuICAgICAgICBjb25zdCBbeG1sbnNBdHRyLCB4bWxuc10gPSB0aGlzLmdldFhtbG5zQXR0cmlidXRlKG1hcE1lbWJlciwgcGFyZW50WG1sbnMpO1xuICAgICAgICBjb25zdCBhZGRLZXlWYWx1ZSA9IChlbnRyeSwga2V5LCB2YWwpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGtleU5vZGUgPSBYbWxOb2RlLm9mKGtleVRhZywga2V5KTtcbiAgICAgICAgICAgIGNvbnN0IFtrZXlYbWxuc0F0dHIsIGtleVhtbG5zXSA9IHRoaXMuZ2V0WG1sbnNBdHRyaWJ1dGUobWFwS2V5U2NoZW1hLCB4bWxucyk7XG4gICAgICAgICAgICBpZiAoa2V5WG1sbnMpIHtcbiAgICAgICAgICAgICAgICBrZXlOb2RlLmFkZEF0dHJpYnV0ZShrZXlYbWxuc0F0dHIsIGtleVhtbG5zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVudHJ5LmFkZENoaWxkTm9kZShrZXlOb2RlKTtcbiAgICAgICAgICAgIGxldCB2YWx1ZU5vZGUgPSBYbWxOb2RlLm9mKHZhbHVlVGFnKTtcbiAgICAgICAgICAgIGlmIChtYXBWYWx1ZVNjaGVtYS5pc0xpc3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVMaXN0KG1hcFZhbHVlU2NoZW1hLCB2YWwsIHZhbHVlTm9kZSwgeG1sbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAobWFwVmFsdWVTY2hlbWEuaXNNYXBTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVNYXAobWFwVmFsdWVTY2hlbWEsIHZhbCwgdmFsdWVOb2RlLCB4bWxucywgdHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChtYXBWYWx1ZVNjaGVtYS5pc1N0cnVjdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgdmFsdWVOb2RlID0gdGhpcy53cml0ZVN0cnVjdChtYXBWYWx1ZVNjaGVtYSwgdmFsLCB4bWxucyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlU2ltcGxlSW50byhtYXBWYWx1ZVNjaGVtYSwgdmFsLCB2YWx1ZU5vZGUsIHhtbG5zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVudHJ5LmFkZENoaWxkTm9kZSh2YWx1ZU5vZGUpO1xuICAgICAgICB9O1xuICAgICAgICBpZiAoZmxhdCkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWxdIG9mIE9iamVjdC5lbnRyaWVzKG1hcCkpIHtcbiAgICAgICAgICAgICAgICBpZiAoc3BhcnNlIHx8IHZhbCAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVudHJ5ID0gWG1sTm9kZS5vZihtYXBUcmFpdHMueG1sTmFtZSA/PyBtYXBNZW1iZXIuZ2V0TWVtYmVyTmFtZSgpKTtcbiAgICAgICAgICAgICAgICAgICAgYWRkS2V5VmFsdWUoZW50cnksIGtleSwgdmFsKTtcbiAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyLmFkZENoaWxkTm9kZShlbnRyeSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgbGV0IG1hcE5vZGU7XG4gICAgICAgICAgICBpZiAoIWNvbnRhaW5lcklzTWFwKSB7XG4gICAgICAgICAgICAgICAgbWFwTm9kZSA9IFhtbE5vZGUub2YobWFwVHJhaXRzLnhtbE5hbWUgPz8gbWFwTWVtYmVyLmdldE1lbWJlck5hbWUoKSk7XG4gICAgICAgICAgICAgICAgaWYgKHhtbG5zKSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcE5vZGUuYWRkQXR0cmlidXRlKHhtbG5zQXR0ciwgeG1sbnMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb250YWluZXIuYWRkQ2hpbGROb2RlKG1hcE5vZGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWxdIG9mIE9iamVjdC5lbnRyaWVzKG1hcCkpIHtcbiAgICAgICAgICAgICAgICBpZiAoc3BhcnNlIHx8IHZhbCAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVudHJ5ID0gWG1sTm9kZS5vZihcImVudHJ5XCIpO1xuICAgICAgICAgICAgICAgICAgICBhZGRLZXlWYWx1ZShlbnRyeSwga2V5LCB2YWwpO1xuICAgICAgICAgICAgICAgICAgICAoY29udGFpbmVySXNNYXAgPyBjb250YWluZXIgOiBtYXBOb2RlKS5hZGRDaGlsZE5vZGUoZW50cnkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICB3cml0ZVNpbXBsZShfc2NoZW1hLCB2YWx1ZSkge1xuICAgICAgICBpZiAobnVsbCA9PT0gdmFsdWUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkBhd3Mtc2RrL2NvcmUvcHJvdG9jb2xzIC0gKFhNTCBzZXJpYWxpemVyKSBjYW5ub3Qgd3JpdGUgbnVsbCB2YWx1ZS5cIik7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbnMgPSBOb3JtYWxpemVkU2NoZW1hLm9mKF9zY2hlbWEpO1xuICAgICAgICBsZXQgbm9kZUNvbnRlbnRzID0gbnVsbDtcbiAgICAgICAgaWYgKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgaWYgKG5zLmlzQmxvYlNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgbm9kZUNvbnRlbnRzID0gKHRoaXMuc2VyZGVDb250ZXh0Py5iYXNlNjRFbmNvZGVyID8/IHRvQmFzZTY0KSh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChucy5pc1RpbWVzdGFtcFNjaGVtYSgpICYmIHZhbHVlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZvcm1hdCA9IGRldGVybWluZVRpbWVzdGFtcEZvcm1hdChucywgdGhpcy5zZXR0aW5ncyk7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChmb3JtYXQpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgICAgICAgICAgICAgbm9kZUNvbnRlbnRzID0gdmFsdWUudG9JU09TdHJpbmcoKS5yZXBsYWNlKFwiLjAwMFpcIiwgXCJaXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vZGVDb250ZW50cyA9IGRhdGVUb1V0Y1N0cmluZyh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA3OlxuICAgICAgICAgICAgICAgICAgICAgICAgbm9kZUNvbnRlbnRzID0gU3RyaW5nKHZhbHVlLmdldFRpbWUoKSAvIDEwMDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oXCJNaXNzaW5nIHRpbWVzdGFtcCBmb3JtYXQsIHVzaW5nIGh0dHAgZGF0ZVwiLCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBub2RlQ29udGVudHMgPSBkYXRlVG9VdGNTdHJpbmcodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAobnMuaXNCaWdEZWNpbWFsU2NoZW1hKCkgJiYgdmFsdWUpIHtcbiAgICAgICAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBOdW1lcmljVmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlLnN0cmluZztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChucy5pc01hcFNjaGVtYSgpIHx8IG5zLmlzTGlzdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSB4bWwgc2VyaWFsaXplciwgY2Fubm90IGNhbGwgX3dyaXRlKCkgb24gTGlzdC9NYXAgc2NoZW1hLCBjYWxsIHdyaXRlTGlzdCBvciB3cml0ZU1hcCgpIGluc3RlYWQuXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBAYXdzLXNkay9jb3JlL3Byb3RvY29scyAtIHhtbCBzZXJpYWxpemVyLCB1bmhhbmRsZWQgc2NoZW1hIHR5cGUgZm9yIG9iamVjdCB2YWx1ZSBhbmQgc2NoZW1hOiAke25zLmdldE5hbWUodHJ1ZSl9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzQm9vbGVhblNjaGVtYSgpIHx8IG5zLmlzTnVtZXJpY1NjaGVtYSgpIHx8IG5zLmlzQmlnSW50ZWdlclNjaGVtYSgpIHx8IG5zLmlzQmlnRGVjaW1hbFNjaGVtYSgpKSB7XG4gICAgICAgICAgICBub2RlQ29udGVudHMgPSBTdHJpbmcodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChucy5pc1N0cmluZ1NjaGVtYSgpKSB7XG4gICAgICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCAmJiBucy5pc0lkZW1wb3RlbmN5VG9rZW4oKSkge1xuICAgICAgICAgICAgICAgIG5vZGVDb250ZW50cyA9IGdlbmVyYXRlSWRlbXBvdGVuY3lUb2tlbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgbm9kZUNvbnRlbnRzID0gU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAobm9kZUNvbnRlbnRzID09PSBudWxsKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuaGFuZGxlZCBzY2hlbWEtdmFsdWUgcGFpciAke25zLmdldE5hbWUodHJ1ZSl9PSR7dmFsdWV9YCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5vZGVDb250ZW50cztcbiAgICB9XG4gICAgd3JpdGVTaW1wbGVJbnRvKF9zY2hlbWEsIHZhbHVlLCBpbnRvLCBwYXJlbnRYbWxucykge1xuICAgICAgICBjb25zdCBub2RlQ29udGVudHMgPSB0aGlzLndyaXRlU2ltcGxlKF9zY2hlbWEsIHZhbHVlKTtcbiAgICAgICAgY29uc3QgbnMgPSBOb3JtYWxpemVkU2NoZW1hLm9mKF9zY2hlbWEpO1xuICAgICAgICBjb25zdCBjb250ZW50ID0gbmV3IFhtbFRleHQobm9kZUNvbnRlbnRzKTtcbiAgICAgICAgY29uc3QgW3htbG5zQXR0ciwgeG1sbnNdID0gdGhpcy5nZXRYbWxuc0F0dHJpYnV0ZShucywgcGFyZW50WG1sbnMpO1xuICAgICAgICBpZiAoeG1sbnMpIHtcbiAgICAgICAgICAgIGludG8uYWRkQXR0cmlidXRlKHhtbG5zQXR0ciwgeG1sbnMpO1xuICAgICAgICB9XG4gICAgICAgIGludG8uYWRkQ2hpbGROb2RlKGNvbnRlbnQpO1xuICAgIH1cbiAgICBnZXRYbWxuc0F0dHJpYnV0ZShucywgcGFyZW50WG1sbnMpIHtcbiAgICAgICAgY29uc3QgdHJhaXRzID0gbnMuZ2V0TWVyZ2VkVHJhaXRzKCk7XG4gICAgICAgIGNvbnN0IFtwcmVmaXgsIHhtbG5zXSA9IHRyYWl0cy54bWxOYW1lc3BhY2UgPz8gW107XG4gICAgICAgIGlmICh4bWxucyAmJiB4bWxucyAhPT0gcGFyZW50WG1sbnMpIHtcbiAgICAgICAgICAgIHJldHVybiBbcHJlZml4ID8gYHhtbG5zOiR7cHJlZml4fWAgOiBcInhtbG5zXCIsIHhtbG5zXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gW3ZvaWQgMCwgdm9pZCAwXTtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgU2VyZGVDb250ZXh0Q29uZmlnIH0gZnJvbSBcIi4uL0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dFwiO1xuaW1wb3J0IHsgWG1sU2hhcGVEZXNlcmlhbGl6ZXIgfSBmcm9tIFwiLi9YbWxTaGFwZURlc2VyaWFsaXplclwiO1xuaW1wb3J0IHsgWG1sU2hhcGVTZXJpYWxpemVyIH0gZnJvbSBcIi4vWG1sU2hhcGVTZXJpYWxpemVyXCI7XG5leHBvcnQgY2xhc3MgWG1sQ29kZWMgZXh0ZW5kcyBTZXJkZUNvbnRleHRDb25maWcge1xuICAgIHNldHRpbmdzO1xuICAgIGNvbnN0cnVjdG9yKHNldHRpbmdzKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuc2V0dGluZ3MgPSBzZXR0aW5ncztcbiAgICB9XG4gICAgY3JlYXRlU2VyaWFsaXplcigpIHtcbiAgICAgICAgY29uc3Qgc2VyaWFsaXplciA9IG5ldyBYbWxTaGFwZVNlcmlhbGl6ZXIodGhpcy5zZXR0aW5ncyk7XG4gICAgICAgIHNlcmlhbGl6ZXIuc2V0U2VyZGVDb250ZXh0KHRoaXMuc2VyZGVDb250ZXh0KTtcbiAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZXI7XG4gICAgfVxuICAgIGNyZWF0ZURlc2VyaWFsaXplcigpIHtcbiAgICAgICAgY29uc3QgZGVzZXJpYWxpemVyID0gbmV3IFhtbFNoYXBlRGVzZXJpYWxpemVyKHRoaXMuc2V0dGluZ3MpO1xuICAgICAgICBkZXNlcmlhbGl6ZXIuc2V0U2VyZGVDb250ZXh0KHRoaXMuc2VyZGVDb250ZXh0KTtcbiAgICAgICAgcmV0dXJuIGRlc2VyaWFsaXplcjtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgSHR0cEJpbmRpbmdQcm90b2NvbCwgSHR0cEludGVyY2VwdGluZ1NoYXBlRGVzZXJpYWxpemVyLCBIdHRwSW50ZXJjZXB0aW5nU2hhcGVTZXJpYWxpemVyLCB9IGZyb20gXCJAc21pdGh5L2NvcmUvcHJvdG9jb2xzXCI7XG5pbXBvcnQgeyBOb3JtYWxpemVkU2NoZW1hLCBUeXBlUmVnaXN0cnkgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3NjaGVtYVwiO1xuaW1wb3J0IHsgUHJvdG9jb2xMaWIgfSBmcm9tIFwiLi4vUHJvdG9jb2xMaWJcIjtcbmltcG9ydCB7IGxvYWRSZXN0WG1sRXJyb3JDb2RlIH0gZnJvbSBcIi4vcGFyc2VYbWxCb2R5XCI7XG5pbXBvcnQgeyBYbWxDb2RlYyB9IGZyb20gXCIuL1htbENvZGVjXCI7XG5leHBvcnQgY2xhc3MgQXdzUmVzdFhtbFByb3RvY29sIGV4dGVuZHMgSHR0cEJpbmRpbmdQcm90b2NvbCB7XG4gICAgY29kZWM7XG4gICAgc2VyaWFsaXplcjtcbiAgICBkZXNlcmlhbGl6ZXI7XG4gICAgbWl4aW4gPSBuZXcgUHJvdG9jb2xMaWIoKTtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgICAgICBjb25zdCBzZXR0aW5ncyA9IHtcbiAgICAgICAgICAgIHRpbWVzdGFtcEZvcm1hdDoge1xuICAgICAgICAgICAgICAgIHVzZVRyYWl0OiB0cnVlLFxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IDUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaHR0cEJpbmRpbmdzOiB0cnVlLFxuICAgICAgICAgICAgeG1sTmFtZXNwYWNlOiBvcHRpb25zLnhtbE5hbWVzcGFjZSxcbiAgICAgICAgICAgIHNlcnZpY2VOYW1lc3BhY2U6IG9wdGlvbnMuZGVmYXVsdE5hbWVzcGFjZSxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5jb2RlYyA9IG5ldyBYbWxDb2RlYyhzZXR0aW5ncyk7XG4gICAgICAgIHRoaXMuc2VyaWFsaXplciA9IG5ldyBIdHRwSW50ZXJjZXB0aW5nU2hhcGVTZXJpYWxpemVyKHRoaXMuY29kZWMuY3JlYXRlU2VyaWFsaXplcigpLCBzZXR0aW5ncyk7XG4gICAgICAgIHRoaXMuZGVzZXJpYWxpemVyID0gbmV3IEh0dHBJbnRlcmNlcHRpbmdTaGFwZURlc2VyaWFsaXplcih0aGlzLmNvZGVjLmNyZWF0ZURlc2VyaWFsaXplcigpLCBzZXR0aW5ncyk7XG4gICAgfVxuICAgIGdldFBheWxvYWRDb2RlYygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29kZWM7XG4gICAgfVxuICAgIGdldFNoYXBlSWQoKSB7XG4gICAgICAgIHJldHVybiBcImF3cy5wcm90b2NvbHMjcmVzdFhtbFwiO1xuICAgIH1cbiAgICBhc3luYyBzZXJpYWxpemVSZXF1ZXN0KG9wZXJhdGlvblNjaGVtYSwgaW5wdXQsIGNvbnRleHQpIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IGF3YWl0IHN1cGVyLnNlcmlhbGl6ZVJlcXVlc3Qob3BlcmF0aW9uU2NoZW1hLCBpbnB1dCwgY29udGV4dCk7XG4gICAgICAgIGNvbnN0IGlucHV0U2NoZW1hID0gTm9ybWFsaXplZFNjaGVtYS5vZihvcGVyYXRpb25TY2hlbWEuaW5wdXQpO1xuICAgICAgICBpZiAoIXJlcXVlc3QuaGVhZGVyc1tcImNvbnRlbnQtdHlwZVwiXSkge1xuICAgICAgICAgICAgY29uc3QgY29udGVudFR5cGUgPSB0aGlzLm1peGluLnJlc29sdmVSZXN0Q29udGVudFR5cGUodGhpcy5nZXREZWZhdWx0Q29udGVudFR5cGUoKSwgaW5wdXRTY2hlbWEpO1xuICAgICAgICAgICAgaWYgKGNvbnRlbnRUeXBlKSB7XG4gICAgICAgICAgICAgICAgcmVxdWVzdC5oZWFkZXJzW1wiY29udGVudC10eXBlXCJdID0gY29udGVudFR5cGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiByZXF1ZXN0LmJvZHkgPT09IFwic3RyaW5nXCIgJiZcbiAgICAgICAgICAgIHJlcXVlc3QuaGVhZGVyc1tcImNvbnRlbnQtdHlwZVwiXSA9PT0gdGhpcy5nZXREZWZhdWx0Q29udGVudFR5cGUoKSAmJlxuICAgICAgICAgICAgIXJlcXVlc3QuYm9keS5zdGFydHNXaXRoKFwiPD94bWwgXCIpICYmXG4gICAgICAgICAgICAhdGhpcy5oYXNVbnN0cnVjdHVyZWRQYXlsb2FkQmluZGluZyhpbnB1dFNjaGVtYSkpIHtcbiAgICAgICAgICAgIHJlcXVlc3QuYm9keSA9ICc8P3htbCB2ZXJzaW9uPVwiMS4wXCIgZW5jb2Rpbmc9XCJVVEYtOFwiPz4nICsgcmVxdWVzdC5ib2R5O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXF1ZXN0O1xuICAgIH1cbiAgICBhc3luYyBkZXNlcmlhbGl6ZVJlc3BvbnNlKG9wZXJhdGlvblNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UpIHtcbiAgICAgICAgcmV0dXJuIHN1cGVyLmRlc2VyaWFsaXplUmVzcG9uc2Uob3BlcmF0aW9uU2NoZW1hLCBjb250ZXh0LCByZXNwb25zZSk7XG4gICAgfVxuICAgIGFzeW5jIGhhbmRsZUVycm9yKG9wZXJhdGlvblNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UsIGRhdGFPYmplY3QsIG1ldGFkYXRhKSB7XG4gICAgICAgIGNvbnN0IGVycm9ySWRlbnRpZmllciA9IGxvYWRSZXN0WG1sRXJyb3JDb2RlKHJlc3BvbnNlLCBkYXRhT2JqZWN0KSA/PyBcIlVua25vd25cIjtcbiAgICAgICAgaWYgKGRhdGFPYmplY3QuRXJyb3IgJiYgdHlwZW9mIGRhdGFPYmplY3QuRXJyb3IgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGRhdGFPYmplY3QuRXJyb3IpKSB7XG4gICAgICAgICAgICAgICAgZGF0YU9iamVjdFtrZXldID0gZGF0YU9iamVjdC5FcnJvcltrZXldO1xuICAgICAgICAgICAgICAgIGlmIChrZXkudG9Mb3dlckNhc2UoKSA9PT0gXCJtZXNzYWdlXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgZGF0YU9iamVjdC5tZXNzYWdlID0gZGF0YU9iamVjdC5FcnJvcltrZXldO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YU9iamVjdC5SZXF1ZXN0SWQgJiYgIW1ldGFkYXRhLnJlcXVlc3RJZCkge1xuICAgICAgICAgICAgbWV0YWRhdGEucmVxdWVzdElkID0gZGF0YU9iamVjdC5SZXF1ZXN0SWQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgeyBlcnJvclNjaGVtYSwgZXJyb3JNZXRhZGF0YSB9ID0gYXdhaXQgdGhpcy5taXhpbi5nZXRFcnJvclNjaGVtYU9yVGhyb3dCYXNlRXhjZXB0aW9uKGVycm9ySWRlbnRpZmllciwgdGhpcy5vcHRpb25zLmRlZmF1bHROYW1lc3BhY2UsIHJlc3BvbnNlLCBkYXRhT2JqZWN0LCBtZXRhZGF0YSk7XG4gICAgICAgIGNvbnN0IG5zID0gTm9ybWFsaXplZFNjaGVtYS5vZihlcnJvclNjaGVtYSk7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBkYXRhT2JqZWN0LkVycm9yPy5tZXNzYWdlID8/IGRhdGFPYmplY3QuRXJyb3I/Lk1lc3NhZ2UgPz8gZGF0YU9iamVjdC5tZXNzYWdlID8/IGRhdGFPYmplY3QuTWVzc2FnZSA/PyBcIlVua25vd25cIjtcbiAgICAgICAgY29uc3QgRXJyb3JDdG9yID0gVHlwZVJlZ2lzdHJ5LmZvcihlcnJvclNjaGVtYVsxXSkuZ2V0RXJyb3JDdG9yKGVycm9yU2NoZW1hKSA/PyBFcnJvcjtcbiAgICAgICAgY29uc3QgZXhjZXB0aW9uID0gbmV3IEVycm9yQ3RvcihtZXNzYWdlKTtcbiAgICAgICAgYXdhaXQgdGhpcy5kZXNlcmlhbGl6ZUh0dHBNZXNzYWdlKGVycm9yU2NoZW1hLCBjb250ZXh0LCByZXNwb25zZSwgZGF0YU9iamVjdCk7XG4gICAgICAgIGNvbnN0IG91dHB1dCA9IHt9O1xuICAgICAgICBmb3IgKGNvbnN0IFtuYW1lLCBtZW1iZXJdIG9mIG5zLnN0cnVjdEl0ZXJhdG9yKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IG1lbWJlci5nZXRNZXJnZWRUcmFpdHMoKS54bWxOYW1lID8/IG5hbWU7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGRhdGFPYmplY3QuRXJyb3I/Llt0YXJnZXRdID8/IGRhdGFPYmplY3RbdGFyZ2V0XTtcbiAgICAgICAgICAgIG91dHB1dFtuYW1lXSA9IHRoaXMuY29kZWMuY3JlYXRlRGVzZXJpYWxpemVyKCkucmVhZFNjaGVtYShtZW1iZXIsIHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyB0aGlzLm1peGluLmRlY29yYXRlU2VydmljZUV4Y2VwdGlvbihPYmplY3QuYXNzaWduKGV4Y2VwdGlvbiwgZXJyb3JNZXRhZGF0YSwge1xuICAgICAgICAgICAgJGZhdWx0OiBucy5nZXRNZXJnZWRUcmFpdHMoKS5lcnJvcixcbiAgICAgICAgICAgIG1lc3NhZ2UsXG4gICAgICAgIH0sIG91dHB1dCksIGRhdGFPYmplY3QpO1xuICAgIH1cbiAgICBnZXREZWZhdWx0Q29udGVudFR5cGUoKSB7XG4gICAgICAgIHJldHVybiBcImFwcGxpY2F0aW9uL3htbFwiO1xuICAgIH1cbiAgICBoYXNVbnN0cnVjdHVyZWRQYXlsb2FkQmluZGluZyhucykge1xuICAgICAgICBmb3IgKGNvbnN0IFssIG1lbWJlcl0gb2YgbnMuc3RydWN0SXRlcmF0b3IoKSkge1xuICAgICAgICAgICAgaWYgKG1lbWJlci5nZXRNZXJnZWRUcmFpdHMoKS5odHRwUGF5bG9hZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAhKG1lbWJlci5pc1N0cnVjdFNjaGVtYSgpIHx8IG1lbWJlci5pc01hcFNjaGVtYSgpIHx8IG1lbWJlci5pc0xpc3RTY2hlbWEoKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cbiIsICJleHBvcnQgKiBmcm9tIFwiLi9jYm9yL0F3c1NtaXRoeVJwY1YyQ2JvclByb3RvY29sXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb2VyY2luZy1zZXJpYWxpemVyc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vanNvbi9Bd3NKc29uMV8wUHJvdG9jb2xcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2pzb24vQXdzSnNvbjFfMVByb3RvY29sXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9qc29uL0F3c0pzb25ScGNQcm90b2NvbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vanNvbi9Bd3NSZXN0SnNvblByb3RvY29sXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9qc29uL0pzb25Db2RlY1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vanNvbi9Kc29uU2hhcGVEZXNlcmlhbGl6ZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2pzb24vSnNvblNoYXBlU2VyaWFsaXplclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vanNvbi9hd3NFeHBlY3RVbmlvblwiO1xuZXhwb3J0ICogZnJvbSBcIi4vanNvbi9wYXJzZUpzb25Cb2R5XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9xdWVyeS9Bd3NFYzJRdWVyeVByb3RvY29sXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9xdWVyeS9Bd3NRdWVyeVByb3RvY29sXCI7XG5leHBvcnQgKiBmcm9tIFwiLi94bWwvQXdzUmVzdFhtbFByb3RvY29sXCI7XG5leHBvcnQgKiBmcm9tIFwiLi94bWwvWG1sQ29kZWNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3htbC9YbWxTaGFwZURlc2VyaWFsaXplclwiO1xuZXhwb3J0ICogZnJvbSBcIi4veG1sL1htbFNoYXBlU2VyaWFsaXplclwiO1xuZXhwb3J0ICogZnJvbSBcIi4veG1sL3BhcnNlWG1sQm9keVwiO1xuIiwgIid1c2Ugc3RyaWN0JztcblxudmFyIHByb3RvY29scyA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL2NvcmUvcHJvdG9jb2xzJyk7XG52YXIgc2NoZW1hID0gcmVxdWlyZSgnQHNtaXRoeS9jb3JlL3NjaGVtYScpO1xudmFyIHNtaXRoeUNsaWVudCA9IHJlcXVpcmUoJ0BzbWl0aHkvc21pdGh5LWNsaWVudCcpO1xudmFyIHV0aWxCYXNlNjQgPSByZXF1aXJlKCdAc21pdGh5L3V0aWwtYmFzZTY0Jyk7XG5cbmNsYXNzIER5bmFtb0RCSnNvbkNvZGVjIGV4dGVuZHMgcHJvdG9jb2xzLkpzb25Db2RlYyB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIHRpbWVzdGFtcEZvcm1hdDoge1xuICAgICAgICAgICAgICAgIHVzZVRyYWl0OiB0cnVlLFxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IDcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAganNvbk5hbWU6IGZhbHNlLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgY3JlYXRlU2VyaWFsaXplcigpIHtcbiAgICAgICAgY29uc3Qgc2VyaWFsaXplciA9IG5ldyBEeW5hbW9EQkpzb25TaGFwZVNlcmlhbGl6ZXIodGhpcy5zZXR0aW5ncyk7XG4gICAgICAgIHNlcmlhbGl6ZXIuc2V0U2VyZGVDb250ZXh0KHRoaXMuc2VyZGVDb250ZXh0KTtcbiAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZXI7XG4gICAgfVxuICAgIGNyZWF0ZURlc2VyaWFsaXplcigpIHtcbiAgICAgICAgY29uc3QgZGVzZXJpYWxpemVyID0gbmV3IER5bmFtb0RCSnNvblNoYXBlRGVzZXJpYWxpemVyKHRoaXMuc2V0dGluZ3MpO1xuICAgICAgICBkZXNlcmlhbGl6ZXIuc2V0U2VyZGVDb250ZXh0KHRoaXMuc2VyZGVDb250ZXh0KTtcbiAgICAgICAgcmV0dXJuIGRlc2VyaWFsaXplcjtcbiAgICB9XG59XG5jb25zdCBBVFRSSUJVVEVfVkFMVUUgPSBcImNvbS5hbWF6b25hd3MuZHluYW1vZGIjQXR0cmlidXRlVmFsdWVcIjtcbmNsYXNzIER5bmFtb0RCSnNvblNoYXBlU2VyaWFsaXplciBleHRlbmRzIHByb3RvY29scy5Kc29uU2hhcGVTZXJpYWxpemVyIHtcbiAgICBfd3JpdGUoc2NoZW1hJDEsIHZhbHVlLCBjb250YWluZXIpIHtcbiAgICAgICAgY29uc3QgbnMgPSBzY2hlbWEuTm9ybWFsaXplZFNjaGVtYS5vZihzY2hlbWEkMSk7XG4gICAgICAgIGlmIChucy5pc1N0cnVjdFNjaGVtYSgpICYmIG5zLmdldE5hbWUodHJ1ZSkgPT09IEFUVFJJQlVURV9WQUxVRSkge1xuICAgICAgICAgICAgaWYgKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgICAgIGNvbnN0IGF2ID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3V0ID0gc21pdGh5Q2xpZW50Ll9qc29uKGF2KTtcbiAgICAgICAgICAgICAgICBjb25zdCBiYXNlNjRFbmNvZGUgPSB0aGlzLnNlcmRlQ29udGV4dD8uYmFzZTY0RW5jb2RlciA/PyB1dGlsQmFzZTY0LnRvQmFzZTY0O1xuICAgICAgICAgICAgICAgIGlmIChhdi5CIGluc3RhbmNlb2YgVWludDhBcnJheSkge1xuICAgICAgICAgICAgICAgICAgICBvdXQuQiA9IGJhc2U2NEVuY29kZShhdi5CKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoYXYuQlMpKSB7XG4gICAgICAgICAgICAgICAgICAgIG91dC5CUyA9IGF2LkJTLm1hcChiYXNlNjRFbmNvZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShhdi5MKSkge1xuICAgICAgICAgICAgICAgICAgICBvdXQuTCA9IGF2LkwuZmlsdGVyKCh2KSA9PiB2ICE9IG51bGwpLm1hcCgodikgPT4gdGhpcy5fd3JpdGUobnMsIHYsIGNvbnRhaW5lcikpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoYXYuTSAmJiB0eXBlb2YgYXYuTSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgICAgICAgICBvdXQuTSA9IHt9O1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IFtrLCB2XSBvZiBPYmplY3QuZW50cmllcyhhdi5NKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHYgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dC5NW2tdID0gdGhpcy5fd3JpdGUobnMsIHYsIGNvbnRhaW5lcik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIG91dDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc3VwZXIuX3dyaXRlKG5zLCB2YWx1ZSwgY29udGFpbmVyKTtcbiAgICB9XG59XG5jbGFzcyBEeW5hbW9EQkpzb25TaGFwZURlc2VyaWFsaXplciBleHRlbmRzIHByb3RvY29scy5Kc29uU2hhcGVEZXNlcmlhbGl6ZXIge1xuICAgIF9yZWFkKHNjaGVtYSQxLCB2YWx1ZSkge1xuICAgICAgICBjb25zdCBucyA9IHNjaGVtYS5Ob3JtYWxpemVkU2NoZW1hLm9mKHNjaGVtYSQxKTtcbiAgICAgICAgaWYgKG5zLmlzU3RydWN0U2NoZW1hKCkgJiYgbnMuZ2V0TmFtZSh0cnVlKSA9PT0gQVRUUklCVVRFX1ZBTFVFKSB7XG4gICAgICAgICAgICBpZiAodmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYXYgPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICBjb25zdCBvdXQgPSBzbWl0aHlDbGllbnQuX2pzb24oYXYpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGJhc2U2NERlY29kZXIgPSB0aGlzLnNlcmRlQ29udGV4dD8uYmFzZTY0RGVjb2RlciA/PyB1dGlsQmFzZTY0LmZyb21CYXNlNjQ7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBhdi5CID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAgICAgICAgIG91dC5CID0gYmFzZTY0RGVjb2Rlcihhdi5CKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoYXYuQlMpKSB7XG4gICAgICAgICAgICAgICAgICAgIG91dC5CUyA9IGF2LkJTLm1hcChiYXNlNjREZWNvZGVyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoYXYuTCkpIHtcbiAgICAgICAgICAgICAgICAgICAgb3V0LkwgPSBhdi5MLm1hcCgodikgPT4gdGhpcy5fcmVhZChucywgdikpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoYXYuTSAmJiB0eXBlb2YgYXYuTSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgICAgICAgICBvdXQuTSA9IHt9O1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IFtrLCB2XSBvZiBPYmplY3QuZW50cmllcyhhdi5NKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3V0Lk1ba10gPSB0aGlzLl9yZWFkKG5zLCB2KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gb3V0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzdXBlci5fcmVhZChucywgdmFsdWUpO1xuICAgIH1cbn1cblxuZXhwb3J0cy5EeW5hbW9EQkpzb25Db2RlYyA9IER5bmFtb0RCSnNvbkNvZGVjO1xuIiwgIid1c2Ugc3RyaWN0JztcblxudmFyIHV0aWxFbmRwb2ludHMgPSByZXF1aXJlKCdAc21pdGh5L3V0aWwtZW5kcG9pbnRzJyk7XG52YXIgdXJsUGFyc2VyID0gcmVxdWlyZSgnQHNtaXRoeS91cmwtcGFyc2VyJyk7XG5cbmNvbnN0IGlzVmlydHVhbEhvc3RhYmxlUzNCdWNrZXQgPSAodmFsdWUsIGFsbG93U3ViRG9tYWlucyA9IGZhbHNlKSA9PiB7XG4gICAgaWYgKGFsbG93U3ViRG9tYWlucykge1xuICAgICAgICBmb3IgKGNvbnN0IGxhYmVsIG9mIHZhbHVlLnNwbGl0KFwiLlwiKSkge1xuICAgICAgICAgICAgaWYgKCFpc1ZpcnR1YWxIb3N0YWJsZVMzQnVja2V0KGxhYmVsKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKCF1dGlsRW5kcG9pbnRzLmlzVmFsaWRIb3N0TGFiZWwodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKHZhbHVlLmxlbmd0aCA8IDMgfHwgdmFsdWUubGVuZ3RoID4gNjMpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAodmFsdWUgIT09IHZhbHVlLnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAodXRpbEVuZHBvaW50cy5pc0lwQWRkcmVzcyh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbn07XG5cbmNvbnN0IEFSTl9ERUxJTUlURVIgPSBcIjpcIjtcbmNvbnN0IFJFU09VUkNFX0RFTElNSVRFUiA9IFwiL1wiO1xuY29uc3QgcGFyc2VBcm4gPSAodmFsdWUpID0+IHtcbiAgICBjb25zdCBzZWdtZW50cyA9IHZhbHVlLnNwbGl0KEFSTl9ERUxJTUlURVIpO1xuICAgIGlmIChzZWdtZW50cy5sZW5ndGggPCA2KVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICBjb25zdCBbYXJuLCBwYXJ0aXRpb24sIHNlcnZpY2UsIHJlZ2lvbiwgYWNjb3VudElkLCAuLi5yZXNvdXJjZVBhdGhdID0gc2VnbWVudHM7XG4gICAgaWYgKGFybiAhPT0gXCJhcm5cIiB8fCBwYXJ0aXRpb24gPT09IFwiXCIgfHwgc2VydmljZSA9PT0gXCJcIiB8fCByZXNvdXJjZVBhdGguam9pbihBUk5fREVMSU1JVEVSKSA9PT0gXCJcIilcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgcmVzb3VyY2VJZCA9IHJlc291cmNlUGF0aC5tYXAoKHJlc291cmNlKSA9PiByZXNvdXJjZS5zcGxpdChSRVNPVVJDRV9ERUxJTUlURVIpKS5mbGF0KCk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcGFydGl0aW9uLFxuICAgICAgICBzZXJ2aWNlLFxuICAgICAgICByZWdpb24sXG4gICAgICAgIGFjY291bnRJZCxcbiAgICAgICAgcmVzb3VyY2VJZCxcbiAgICB9O1xufTtcblxudmFyIHBhcnRpdGlvbnMgPSBbXG5cdHtcblx0XHRpZDogXCJhd3NcIixcblx0XHRvdXRwdXRzOiB7XG5cdFx0XHRkbnNTdWZmaXg6IFwiYW1hem9uYXdzLmNvbVwiLFxuXHRcdFx0ZHVhbFN0YWNrRG5zU3VmZml4OiBcImFwaS5hd3NcIixcblx0XHRcdGltcGxpY2l0R2xvYmFsUmVnaW9uOiBcInVzLWVhc3QtMVwiLFxuXHRcdFx0bmFtZTogXCJhd3NcIixcblx0XHRcdHN1cHBvcnRzRHVhbFN0YWNrOiB0cnVlLFxuXHRcdFx0c3VwcG9ydHNGSVBTOiB0cnVlXG5cdFx0fSxcblx0XHRyZWdpb25SZWdleDogXCJeKHVzfGV1fGFwfHNhfGNhfG1lfGFmfGlsfG14KVxcXFwtXFxcXHcrXFxcXC1cXFxcZCskXCIsXG5cdFx0cmVnaW9uczoge1xuXHRcdFx0XCJhZi1zb3V0aC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQWZyaWNhIChDYXBlIFRvd24pXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLWVhc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFzaWEgUGFjaWZpYyAoSG9uZyBLb25nKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJhcC1lYXN0LTJcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBc2lhIFBhY2lmaWMgKFRhaXBlaSlcIlxuXHRcdFx0fSxcblx0XHRcdFwiYXAtbm9ydGhlYXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBc2lhIFBhY2lmaWMgKFRva3lvKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJhcC1ub3J0aGVhc3QtMlwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFzaWEgUGFjaWZpYyAoU2VvdWwpXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLW5vcnRoZWFzdC0zXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChPc2FrYSlcIlxuXHRcdFx0fSxcblx0XHRcdFwiYXAtc291dGgtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFzaWEgUGFjaWZpYyAoTXVtYmFpKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJhcC1zb3V0aC0yXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChIeWRlcmFiYWQpXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLXNvdXRoZWFzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChTaW5nYXBvcmUpXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLXNvdXRoZWFzdC0yXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChTeWRuZXkpXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLXNvdXRoZWFzdC0zXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChKYWthcnRhKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJhcC1zb3V0aGVhc3QtNFwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFzaWEgUGFjaWZpYyAoTWVsYm91cm5lKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJhcC1zb3V0aGVhc3QtNVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFzaWEgUGFjaWZpYyAoTWFsYXlzaWEpXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLXNvdXRoZWFzdC02XCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChOZXcgWmVhbGFuZClcIlxuXHRcdFx0fSxcblx0XHRcdFwiYXAtc291dGhlYXN0LTdcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBc2lhIFBhY2lmaWMgKFRoYWlsYW5kKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJhd3MtZ2xvYmFsXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiYXdzIGdsb2JhbCByZWdpb25cIlxuXHRcdFx0fSxcblx0XHRcdFwiY2EtY2VudHJhbC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQ2FuYWRhIChDZW50cmFsKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJjYS13ZXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJDYW5hZGEgV2VzdCAoQ2FsZ2FyeSlcIlxuXHRcdFx0fSxcblx0XHRcdFwiZXUtY2VudHJhbC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiRXVyb3BlIChGcmFua2Z1cnQpXCJcblx0XHRcdH0sXG5cdFx0XHRcImV1LWNlbnRyYWwtMlwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkV1cm9wZSAoWnVyaWNoKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJldS1ub3J0aC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiRXVyb3BlIChTdG9ja2hvbG0pXCJcblx0XHRcdH0sXG5cdFx0XHRcImV1LXNvdXRoLTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJFdXJvcGUgKE1pbGFuKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJldS1zb3V0aC0yXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiRXVyb3BlIChTcGFpbilcIlxuXHRcdFx0fSxcblx0XHRcdFwiZXUtd2VzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiRXVyb3BlIChJcmVsYW5kKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJldS13ZXN0LTJcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJFdXJvcGUgKExvbmRvbilcIlxuXHRcdFx0fSxcblx0XHRcdFwiZXUtd2VzdC0zXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiRXVyb3BlIChQYXJpcylcIlxuXHRcdFx0fSxcblx0XHRcdFwiaWwtY2VudHJhbC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiSXNyYWVsIChUZWwgQXZpdilcIlxuXHRcdFx0fSxcblx0XHRcdFwibWUtY2VudHJhbC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiTWlkZGxlIEVhc3QgKFVBRSlcIlxuXHRcdFx0fSxcblx0XHRcdFwibWUtc291dGgtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIk1pZGRsZSBFYXN0IChCYWhyYWluKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJteC1jZW50cmFsLTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJNZXhpY28gKENlbnRyYWwpXCJcblx0XHRcdH0sXG5cdFx0XHRcInNhLWVhc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIlNvdXRoIEFtZXJpY2EgKFNhbyBQYXVsbylcIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtZWFzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiVVMgRWFzdCAoTi4gVmlyZ2luaWEpXCJcblx0XHRcdH0sXG5cdFx0XHRcInVzLWVhc3QtMlwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIlVTIEVhc3QgKE9oaW8pXCJcblx0XHRcdH0sXG5cdFx0XHRcInVzLXdlc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIlVTIFdlc3QgKE4uIENhbGlmb3JuaWEpXCJcblx0XHRcdH0sXG5cdFx0XHRcInVzLXdlc3QtMlwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIlVTIFdlc3QgKE9yZWdvbilcIlxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0e1xuXHRcdGlkOiBcImF3cy1jblwiLFxuXHRcdG91dHB1dHM6IHtcblx0XHRcdGRuc1N1ZmZpeDogXCJhbWF6b25hd3MuY29tLmNuXCIsXG5cdFx0XHRkdWFsU3RhY2tEbnNTdWZmaXg6IFwiYXBpLmFtYXpvbndlYnNlcnZpY2VzLmNvbS5jblwiLFxuXHRcdFx0aW1wbGljaXRHbG9iYWxSZWdpb246IFwiY24tbm9ydGh3ZXN0LTFcIixcblx0XHRcdG5hbWU6IFwiYXdzLWNuXCIsXG5cdFx0XHRzdXBwb3J0c0R1YWxTdGFjazogdHJ1ZSxcblx0XHRcdHN1cHBvcnRzRklQUzogdHJ1ZVxuXHRcdH0sXG5cdFx0cmVnaW9uUmVnZXg6IFwiXmNuXFxcXC1cXFxcdytcXFxcLVxcXFxkKyRcIixcblx0XHRyZWdpb25zOiB7XG5cdFx0XHRcImF3cy1jbi1nbG9iYWxcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJhd3MtY24gZ2xvYmFsIHJlZ2lvblwiXG5cdFx0XHR9LFxuXHRcdFx0XCJjbi1ub3J0aC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQ2hpbmEgKEJlaWppbmcpXCJcblx0XHRcdH0sXG5cdFx0XHRcImNuLW5vcnRod2VzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQ2hpbmEgKE5pbmd4aWEpXCJcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdHtcblx0XHRpZDogXCJhd3MtZXVzY1wiLFxuXHRcdG91dHB1dHM6IHtcblx0XHRcdGRuc1N1ZmZpeDogXCJhbWF6b25hd3MuZXVcIixcblx0XHRcdGR1YWxTdGFja0Ruc1N1ZmZpeDogXCJhcGkuYW1hem9ud2Vic2VydmljZXMuZXVcIixcblx0XHRcdGltcGxpY2l0R2xvYmFsUmVnaW9uOiBcImV1c2MtZGUtZWFzdC0xXCIsXG5cdFx0XHRuYW1lOiBcImF3cy1ldXNjXCIsXG5cdFx0XHRzdXBwb3J0c0R1YWxTdGFjazogdHJ1ZSxcblx0XHRcdHN1cHBvcnRzRklQUzogdHJ1ZVxuXHRcdH0sXG5cdFx0cmVnaW9uUmVnZXg6IFwiXmV1c2NcXFxcLShkZSlcXFxcLVxcXFx3K1xcXFwtXFxcXGQrJFwiLFxuXHRcdHJlZ2lvbnM6IHtcblx0XHRcdFwiZXVzYy1kZS1lYXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBV1MgRXVyb3BlYW4gU292ZXJlaWduIENsb3VkIChHZXJtYW55KVwiXG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXHR7XG5cdFx0aWQ6IFwiYXdzLWlzb1wiLFxuXHRcdG91dHB1dHM6IHtcblx0XHRcdGRuc1N1ZmZpeDogXCJjMnMuaWMuZ292XCIsXG5cdFx0XHRkdWFsU3RhY2tEbnNTdWZmaXg6IFwiYXBpLmF3cy5pYy5nb3ZcIixcblx0XHRcdGltcGxpY2l0R2xvYmFsUmVnaW9uOiBcInVzLWlzby1lYXN0LTFcIixcblx0XHRcdG5hbWU6IFwiYXdzLWlzb1wiLFxuXHRcdFx0c3VwcG9ydHNEdWFsU3RhY2s6IHRydWUsXG5cdFx0XHRzdXBwb3J0c0ZJUFM6IHRydWVcblx0XHR9LFxuXHRcdHJlZ2lvblJlZ2V4OiBcIl51c1xcXFwtaXNvXFxcXC1cXFxcdytcXFxcLVxcXFxkKyRcIixcblx0XHRyZWdpb25zOiB7XG5cdFx0XHRcImF3cy1pc28tZ2xvYmFsXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiYXdzLWlzbyBnbG9iYWwgcmVnaW9uXCJcblx0XHRcdH0sXG5cdFx0XHRcInVzLWlzby1lYXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJVUyBJU08gRWFzdFwiXG5cdFx0XHR9LFxuXHRcdFx0XCJ1cy1pc28td2VzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiVVMgSVNPIFdFU1RcIlxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0e1xuXHRcdGlkOiBcImF3cy1pc28tYlwiLFxuXHRcdG91dHB1dHM6IHtcblx0XHRcdGRuc1N1ZmZpeDogXCJzYzJzLnNnb3YuZ292XCIsXG5cdFx0XHRkdWFsU3RhY2tEbnNTdWZmaXg6IFwiYXBpLmF3cy5zY2xvdWRcIixcblx0XHRcdGltcGxpY2l0R2xvYmFsUmVnaW9uOiBcInVzLWlzb2ItZWFzdC0xXCIsXG5cdFx0XHRuYW1lOiBcImF3cy1pc28tYlwiLFxuXHRcdFx0c3VwcG9ydHNEdWFsU3RhY2s6IHRydWUsXG5cdFx0XHRzdXBwb3J0c0ZJUFM6IHRydWVcblx0XHR9LFxuXHRcdHJlZ2lvblJlZ2V4OiBcIl51c1xcXFwtaXNvYlxcXFwtXFxcXHcrXFxcXC1cXFxcZCskXCIsXG5cdFx0cmVnaW9uczoge1xuXHRcdFx0XCJhd3MtaXNvLWItZ2xvYmFsXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiYXdzLWlzby1iIGdsb2JhbCByZWdpb25cIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtaXNvYi1lYXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJVUyBJU09CIEVhc3QgKE9oaW8pXCJcblx0XHRcdH0sXG5cdFx0XHRcInVzLWlzb2Itd2VzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiVVMgSVNPQiBXZXN0XCJcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdHtcblx0XHRpZDogXCJhd3MtaXNvLWVcIixcblx0XHRvdXRwdXRzOiB7XG5cdFx0XHRkbnNTdWZmaXg6IFwiY2xvdWQuYWRjLWUudWtcIixcblx0XHRcdGR1YWxTdGFja0Ruc1N1ZmZpeDogXCJhcGkuY2xvdWQtYXdzLmFkYy1lLnVrXCIsXG5cdFx0XHRpbXBsaWNpdEdsb2JhbFJlZ2lvbjogXCJldS1pc29lLXdlc3QtMVwiLFxuXHRcdFx0bmFtZTogXCJhd3MtaXNvLWVcIixcblx0XHRcdHN1cHBvcnRzRHVhbFN0YWNrOiB0cnVlLFxuXHRcdFx0c3VwcG9ydHNGSVBTOiB0cnVlXG5cdFx0fSxcblx0XHRyZWdpb25SZWdleDogXCJeZXVcXFxcLWlzb2VcXFxcLVxcXFx3K1xcXFwtXFxcXGQrJFwiLFxuXHRcdHJlZ2lvbnM6IHtcblx0XHRcdFwiYXdzLWlzby1lLWdsb2JhbFwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcImF3cy1pc28tZSBnbG9iYWwgcmVnaW9uXCJcblx0XHRcdH0sXG5cdFx0XHRcImV1LWlzb2Utd2VzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiRVUgSVNPRSBXZXN0XCJcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdHtcblx0XHRpZDogXCJhd3MtaXNvLWZcIixcblx0XHRvdXRwdXRzOiB7XG5cdFx0XHRkbnNTdWZmaXg6IFwiY3NwLmhjaS5pYy5nb3ZcIixcblx0XHRcdGR1YWxTdGFja0Ruc1N1ZmZpeDogXCJhcGkuYXdzLmhjaS5pYy5nb3ZcIixcblx0XHRcdGltcGxpY2l0R2xvYmFsUmVnaW9uOiBcInVzLWlzb2Ytc291dGgtMVwiLFxuXHRcdFx0bmFtZTogXCJhd3MtaXNvLWZcIixcblx0XHRcdHN1cHBvcnRzRHVhbFN0YWNrOiB0cnVlLFxuXHRcdFx0c3VwcG9ydHNGSVBTOiB0cnVlXG5cdFx0fSxcblx0XHRyZWdpb25SZWdleDogXCJedXNcXFxcLWlzb2ZcXFxcLVxcXFx3K1xcXFwtXFxcXGQrJFwiLFxuXHRcdHJlZ2lvbnM6IHtcblx0XHRcdFwiYXdzLWlzby1mLWdsb2JhbFwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcImF3cy1pc28tZiBnbG9iYWwgcmVnaW9uXCJcblx0XHRcdH0sXG5cdFx0XHRcInVzLWlzb2YtZWFzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiVVMgSVNPRiBFQVNUXCJcblx0XHRcdH0sXG5cdFx0XHRcInVzLWlzb2Ytc291dGgtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIlVTIElTT0YgU09VVEhcIlxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0e1xuXHRcdGlkOiBcImF3cy11cy1nb3ZcIixcblx0XHRvdXRwdXRzOiB7XG5cdFx0XHRkbnNTdWZmaXg6IFwiYW1hem9uYXdzLmNvbVwiLFxuXHRcdFx0ZHVhbFN0YWNrRG5zU3VmZml4OiBcImFwaS5hd3NcIixcblx0XHRcdGltcGxpY2l0R2xvYmFsUmVnaW9uOiBcInVzLWdvdi13ZXN0LTFcIixcblx0XHRcdG5hbWU6IFwiYXdzLXVzLWdvdlwiLFxuXHRcdFx0c3VwcG9ydHNEdWFsU3RhY2s6IHRydWUsXG5cdFx0XHRzdXBwb3J0c0ZJUFM6IHRydWVcblx0XHR9LFxuXHRcdHJlZ2lvblJlZ2V4OiBcIl51c1xcXFwtZ292XFxcXC1cXFxcdytcXFxcLVxcXFxkKyRcIixcblx0XHRyZWdpb25zOiB7XG5cdFx0XHRcImF3cy11cy1nb3YtZ2xvYmFsXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiYXdzLXVzLWdvdiBnbG9iYWwgcmVnaW9uXCJcblx0XHRcdH0sXG5cdFx0XHRcInVzLWdvdi1lYXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBV1MgR292Q2xvdWQgKFVTLUVhc3QpXCJcblx0XHRcdH0sXG5cdFx0XHRcInVzLWdvdi13ZXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBV1MgR292Q2xvdWQgKFVTLVdlc3QpXCJcblx0XHRcdH1cblx0XHR9XG5cdH1cbl07XG52YXIgdmVyc2lvbiA9IFwiMS4xXCI7XG52YXIgcGFydGl0aW9uc0luZm8gPSB7XG5cdHBhcnRpdGlvbnM6IHBhcnRpdGlvbnMsXG5cdHZlcnNpb246IHZlcnNpb25cbn07XG5cbmxldCBzZWxlY3RlZFBhcnRpdGlvbnNJbmZvID0gcGFydGl0aW9uc0luZm87XG5sZXQgc2VsZWN0ZWRVc2VyQWdlbnRQcmVmaXggPSBcIlwiO1xuY29uc3QgcGFydGl0aW9uID0gKHZhbHVlKSA9PiB7XG4gICAgY29uc3QgeyBwYXJ0aXRpb25zIH0gPSBzZWxlY3RlZFBhcnRpdGlvbnNJbmZvO1xuICAgIGZvciAoY29uc3QgcGFydGl0aW9uIG9mIHBhcnRpdGlvbnMpIHtcbiAgICAgICAgY29uc3QgeyByZWdpb25zLCBvdXRwdXRzIH0gPSBwYXJ0aXRpb247XG4gICAgICAgIGZvciAoY29uc3QgW3JlZ2lvbiwgcmVnaW9uRGF0YV0gb2YgT2JqZWN0LmVudHJpZXMocmVnaW9ucykpIHtcbiAgICAgICAgICAgIGlmIChyZWdpb24gPT09IHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgLi4ub3V0cHV0cyxcbiAgICAgICAgICAgICAgICAgICAgLi4ucmVnaW9uRGF0YSxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGZvciAoY29uc3QgcGFydGl0aW9uIG9mIHBhcnRpdGlvbnMpIHtcbiAgICAgICAgY29uc3QgeyByZWdpb25SZWdleCwgb3V0cHV0cyB9ID0gcGFydGl0aW9uO1xuICAgICAgICBpZiAobmV3IFJlZ0V4cChyZWdpb25SZWdleCkudGVzdCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgLi4ub3V0cHV0cyxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgREVGQVVMVF9QQVJUSVRJT04gPSBwYXJ0aXRpb25zLmZpbmQoKHBhcnRpdGlvbikgPT4gcGFydGl0aW9uLmlkID09PSBcImF3c1wiKTtcbiAgICBpZiAoIURFRkFVTFRfUEFSVElUSU9OKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIlByb3ZpZGVkIHJlZ2lvbiB3YXMgbm90IGZvdW5kIGluIHRoZSBwYXJ0aXRpb24gYXJyYXkgb3IgcmVnZXgsXCIgK1xuICAgICAgICAgICAgXCIgYW5kIGRlZmF1bHQgcGFydGl0aW9uIHdpdGggaWQgJ2F3cycgZG9lc24ndCBleGlzdC5cIik7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIC4uLkRFRkFVTFRfUEFSVElUSU9OLm91dHB1dHMsXG4gICAgfTtcbn07XG5jb25zdCBzZXRQYXJ0aXRpb25JbmZvID0gKHBhcnRpdGlvbnNJbmZvLCB1c2VyQWdlbnRQcmVmaXggPSBcIlwiKSA9PiB7XG4gICAgc2VsZWN0ZWRQYXJ0aXRpb25zSW5mbyA9IHBhcnRpdGlvbnNJbmZvO1xuICAgIHNlbGVjdGVkVXNlckFnZW50UHJlZml4ID0gdXNlckFnZW50UHJlZml4O1xufTtcbmNvbnN0IHVzZURlZmF1bHRQYXJ0aXRpb25JbmZvID0gKCkgPT4ge1xuICAgIHNldFBhcnRpdGlvbkluZm8ocGFydGl0aW9uc0luZm8sIFwiXCIpO1xufTtcbmNvbnN0IGdldFVzZXJBZ2VudFByZWZpeCA9ICgpID0+IHNlbGVjdGVkVXNlckFnZW50UHJlZml4O1xuXG5jb25zdCBhd3NFbmRwb2ludEZ1bmN0aW9ucyA9IHtcbiAgICBpc1ZpcnR1YWxIb3N0YWJsZVMzQnVja2V0OiBpc1ZpcnR1YWxIb3N0YWJsZVMzQnVja2V0LFxuICAgIHBhcnNlQXJuOiBwYXJzZUFybixcbiAgICBwYXJ0aXRpb246IHBhcnRpdGlvbixcbn07XG51dGlsRW5kcG9pbnRzLmN1c3RvbUVuZHBvaW50RnVuY3Rpb25zLmF3cyA9IGF3c0VuZHBvaW50RnVuY3Rpb25zO1xuXG5jb25zdCByZXNvbHZlRGVmYXVsdEF3c1JlZ2lvbmFsRW5kcG9pbnRzQ29uZmlnID0gKGlucHV0KSA9PiB7XG4gICAgaWYgKHR5cGVvZiBpbnB1dC5lbmRwb2ludFByb3ZpZGVyICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQGF3cy1zZGsvdXRpbC1lbmRwb2ludCAtIGVuZHBvaW50UHJvdmlkZXIgYW5kIGVuZHBvaW50IG1pc3NpbmcgaW4gY29uZmlnIGZvciB0aGlzIGNsaWVudC5cIik7XG4gICAgfVxuICAgIGNvbnN0IHsgZW5kcG9pbnQgfSA9IGlucHV0O1xuICAgIGlmIChlbmRwb2ludCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlucHV0LmVuZHBvaW50ID0gYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHRvRW5kcG9pbnRWMShpbnB1dC5lbmRwb2ludFByb3ZpZGVyKHtcbiAgICAgICAgICAgICAgICBSZWdpb246IHR5cGVvZiBpbnB1dC5yZWdpb24gPT09IFwiZnVuY3Rpb25cIiA/IGF3YWl0IGlucHV0LnJlZ2lvbigpIDogaW5wdXQucmVnaW9uLFxuICAgICAgICAgICAgICAgIFVzZUR1YWxTdGFjazogdHlwZW9mIGlucHV0LnVzZUR1YWxzdGFja0VuZHBvaW50ID09PSBcImZ1bmN0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgPyBhd2FpdCBpbnB1dC51c2VEdWFsc3RhY2tFbmRwb2ludCgpXG4gICAgICAgICAgICAgICAgICAgIDogaW5wdXQudXNlRHVhbHN0YWNrRW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgVXNlRklQUzogdHlwZW9mIGlucHV0LnVzZUZpcHNFbmRwb2ludCA9PT0gXCJmdW5jdGlvblwiID8gYXdhaXQgaW5wdXQudXNlRmlwc0VuZHBvaW50KCkgOiBpbnB1dC51c2VGaXBzRW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgRW5kcG9pbnQ6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIH0sIHsgbG9nZ2VyOiBpbnB1dC5sb2dnZXIgfSkpO1xuICAgICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gaW5wdXQ7XG59O1xuY29uc3QgdG9FbmRwb2ludFYxID0gKGVuZHBvaW50KSA9PiB1cmxQYXJzZXIucGFyc2VVcmwoZW5kcG9pbnQudXJsKTtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiRW5kcG9pbnRFcnJvclwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHV0aWxFbmRwb2ludHMuRW5kcG9pbnRFcnJvcjsgfVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJpc0lwQWRkcmVzc1wiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHV0aWxFbmRwb2ludHMuaXNJcEFkZHJlc3M7IH1cbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwicmVzb2x2ZUVuZHBvaW50XCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gdXRpbEVuZHBvaW50cy5yZXNvbHZlRW5kcG9pbnQ7IH1cbn0pO1xuZXhwb3J0cy5hd3NFbmRwb2ludEZ1bmN0aW9ucyA9IGF3c0VuZHBvaW50RnVuY3Rpb25zO1xuZXhwb3J0cy5nZXRVc2VyQWdlbnRQcmVmaXggPSBnZXRVc2VyQWdlbnRQcmVmaXg7XG5leHBvcnRzLnBhcnRpdGlvbiA9IHBhcnRpdGlvbjtcbmV4cG9ydHMucmVzb2x2ZURlZmF1bHRBd3NSZWdpb25hbEVuZHBvaW50c0NvbmZpZyA9IHJlc29sdmVEZWZhdWx0QXdzUmVnaW9uYWxFbmRwb2ludHNDb25maWc7XG5leHBvcnRzLnNldFBhcnRpdGlvbkluZm8gPSBzZXRQYXJ0aXRpb25JbmZvO1xuZXhwb3J0cy50b0VuZHBvaW50VjEgPSB0b0VuZHBvaW50VjE7XG5leHBvcnRzLnVzZURlZmF1bHRQYXJ0aXRpb25JbmZvID0gdXNlRGVmYXVsdFBhcnRpdGlvbkluZm87XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLnJ1bGVTZXQgPSB2b2lkIDA7XG5jb25zdCBLID0gXCJyZXF1aXJlZFwiLCBMID0gXCJ0eXBlXCIsIE0gPSBcInJ1bGVzXCIsIE4gPSBcImNvbmRpdGlvbnNcIiwgTyA9IFwiZm5cIiwgUCA9IFwiYXJndlwiLCBRID0gXCJyZWZcIiwgUiA9IFwiYXNzaWduXCIsIFMgPSBcInVybFwiLCBUID0gXCJwcm9wZXJ0aWVzXCIsIFUgPSBcImhlYWRlcnNcIiwgViA9IFwibWV0cmljVmFsdWVzXCI7XG5jb25zdCBhID0gZmFsc2UsIGIgPSBcImVycm9yXCIsIGMgPSBcInN0cmluZ0VxdWFsc1wiLCBkID0gXCJodHRwczovL2R5bmFtb2RiLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZHVhbFN0YWNrRG5zU3VmZml4fVwiLCBlID0gXCJlbmRwb2ludFwiLCBmID0gXCJ0cmVlXCIsIGcgPSBcImR5bmFtb2RiXCIsIGggPSB7IFtLXTogZmFsc2UsIFtMXTogXCJzdHJpbmdcIiB9LCBpID0geyBbS106IHRydWUsIFwiZGVmYXVsdFwiOiBmYWxzZSwgW0xdOiBcImJvb2xlYW5cIiB9LCBqID0geyBbT106IFwiaXNTZXRcIiwgW1BdOiBbeyBbUV06IFwiRW5kcG9pbnRcIiB9XSB9LCBrID0geyBbUV06IFwiRW5kcG9pbnRcIiB9LCBsID0geyBbT106IFwiaXNTZXRcIiwgW1BdOiBbeyBbUV06IFwiUmVnaW9uXCIgfV0gfSwgbSA9IHsgW1FdOiBcIlJlZ2lvblwiIH0sIG4gPSB7IFtPXTogXCJhd3MucGFydGl0aW9uXCIsIFtQXTogW21dLCBbUl06IFwiUGFydGl0aW9uUmVzdWx0XCIgfSwgbyA9IHsgW05dOiBbeyBbT106IFwiYm9vbGVhbkVxdWFsc1wiLCBbUF06IFt7IFtRXTogXCJVc2VGSVBTXCIgfSwgdHJ1ZV0gfV0sIFtiXTogXCJJbnZhbGlkIENvbmZpZ3VyYXRpb246IEZJUFMgYW5kIGN1c3RvbSBlbmRwb2ludCBhcmUgbm90IHN1cHBvcnRlZFwiLCBbTF06IGIgfSwgcCA9IHsgW09dOiBcImJvb2xlYW5FcXVhbHNcIiwgW1BdOiBbeyBbUV06IFwiVXNlRklQU1wiIH0sIHRydWVdIH0sIHEgPSB7IFtOXTogW3sgW09dOiBcImJvb2xlYW5FcXVhbHNcIiwgW1BdOiBbeyBbUV06IFwiVXNlRHVhbFN0YWNrXCIgfSwgdHJ1ZV0gfV0sIFtiXTogXCJJbnZhbGlkIENvbmZpZ3VyYXRpb246IER1YWxzdGFjayBhbmQgY3VzdG9tIGVuZHBvaW50IGFyZSBub3Qgc3VwcG9ydGVkXCIsIFtMXTogYiB9LCByID0geyBbT106IFwiYm9vbGVhbkVxdWFsc1wiLCBbUF06IFt7IFtRXTogXCJVc2VEdWFsU3RhY2tcIiB9LCB0cnVlXSB9LCBzID0geyBbZV06IHsgW1NdOiBcIntFbmRwb2ludH1cIiwgW1RdOiB7fSwgW1VdOiB7fSB9LCBbTF06IGUgfSwgdCA9IHt9LCB1ID0geyBbT106IFwiYm9vbGVhbkVxdWFsc1wiLCBbUF06IFt7IFtPXTogXCJnZXRBdHRyXCIsIFtQXTogW3sgW1FdOiBcIlBhcnRpdGlvblJlc3VsdFwiIH0sIFwic3VwcG9ydHNGSVBTXCJdIH0sIHRydWVdIH0sIHYgPSB7IFtPXTogXCJib29sZWFuRXF1YWxzXCIsIFtQXTogW3sgW09dOiBcImdldEF0dHJcIiwgW1BdOiBbeyBbUV06IFwiUGFydGl0aW9uUmVzdWx0XCIgfSwgXCJzdXBwb3J0c0R1YWxTdGFja1wiXSB9LCB0cnVlXSB9LCB3ID0geyBbTl06IFt7IFtPXTogXCJpc1NldFwiLCBbUF06IFt7IFtRXTogXCJBY2NvdW50SWRFbmRwb2ludE1vZGVcIiB9XSB9LCB7IFtPXTogYywgW1BdOiBbeyBbUV06IFwiQWNjb3VudElkRW5kcG9pbnRNb2RlXCIgfSwgXCJyZXF1aXJlZFwiXSB9XSwgW01dOiBbeyBbYl06IFwiSW52YWxpZCBDb25maWd1cmF0aW9uOiBBY2NvdW50SWRFbmRwb2ludE1vZGUgaXMgcmVxdWlyZWQgYW5kIEZJUFMgaXMgZW5hYmxlZCwgYnV0IEZJUFMgYWNjb3VudCBlbmRwb2ludHMgYXJlIG5vdCBzdXBwb3J0ZWRcIiwgW0xdOiBiIH1dLCBbTF06IGYgfSwgeCA9IHsgW09dOiBcImdldEF0dHJcIiwgW1BdOiBbeyBbUV06IFwiUGFydGl0aW9uUmVzdWx0XCIgfSwgXCJuYW1lXCJdIH0sIHkgPSB7IFtlXTogeyBbU106IFwiaHR0cHM6Ly9keW5hbW9kYi57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH1cIiwgW1RdOiB7fSwgW1VdOiB7fSB9LCBbTF06IGUgfSwgeiA9IHsgW1NdOiBcImh0dHBzOi8ve1BhcnNlZEFybiNhY2NvdW50SWR9LmRkYi57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2R1YWxTdGFja0Ruc1N1ZmZpeH1cIiwgW1RdOiB7IFtWXTogW1wiT1wiXSB9LCBbVV06IHt9IH0sIEEgPSB7IFtWXTogW1wiT1wiXSB9LCBCID0geyBbYl06IFwiQ3JlZGVudGlhbHMtc291cmNlZCBhY2NvdW50IElEIHBhcmFtZXRlciBpcyBpbnZhbGlkXCIsIFtMXTogYiB9LCBDID0geyBbTl06IFt7IFtPXTogXCJpc1NldFwiLCBbUF06IFt7IFtRXTogXCJBY2NvdW50SWRFbmRwb2ludE1vZGVcIiB9XSB9LCB7IFtPXTogYywgW1BdOiBbeyBbUV06IFwiQWNjb3VudElkRW5kcG9pbnRNb2RlXCIgfSwgXCJyZXF1aXJlZFwiXSB9XSwgW01dOiBbeyBbTl06IFt7IFtPXTogXCJub3RcIiwgW1BdOiBbcF0gfV0sIFtNXTogW3sgW05dOiBbeyBbT106IGMsIFtQXTogW3gsIFwiYXdzXCJdIH1dLCBbTV06IFt7IFtiXTogXCJBY2NvdW50SWRFbmRwb2ludE1vZGUgaXMgcmVxdWlyZWQgYnV0IG5vIEFjY291bnRJRCB3YXMgcHJvdmlkZWQgb3IgYWJsZSB0byBiZSBsb2FkZWRcIiwgW0xdOiBiIH1dLCBbTF06IGYgfSwgeyBbYl06IFwiSW52YWxpZCBDb25maWd1cmF0aW9uOiBBY2NvdW50SWRFbmRwb2ludE1vZGUgaXMgcmVxdWlyZWQgYnV0IGFjY291bnQgZW5kcG9pbnRzIGFyZSBub3Qgc3VwcG9ydGVkIGluIHRoaXMgcGFydGl0aW9uXCIsIFtMXTogYiB9XSwgW0xdOiBmIH0sIHsgW2JdOiBcIkludmFsaWQgQ29uZmlndXJhdGlvbjogQWNjb3VudElkRW5kcG9pbnRNb2RlIGlzIHJlcXVpcmVkIGFuZCBGSVBTIGlzIGVuYWJsZWQsIGJ1dCBGSVBTIGFjY291bnQgZW5kcG9pbnRzIGFyZSBub3Qgc3VwcG9ydGVkXCIsIFtMXTogYiB9XSwgW0xdOiBmIH0sIEQgPSB7IFtTXTogXCJodHRwczovL3tQYXJzZWRBcm4jYWNjb3VudElkfS5kZGIue1JlZ2lvbn0ue1BhcnRpdGlvblJlc3VsdCNkbnNTdWZmaXh9XCIsIFtUXTogQSwgW1VdOiB7fSB9LCBFID0gW3BdLCBGID0gW3JdLCBHID0gW3sgW09dOiBcImlzU2V0XCIsIFtQXTogW3sgW1FdOiBcIkFjY291bnRJZEVuZHBvaW50TW9kZVwiIH1dIH0sIHsgW09dOiBcIm5vdFwiLCBbUF06IFt7IFtPXTogYywgW1BdOiBbeyBbUV06IFwiQWNjb3VudElkRW5kcG9pbnRNb2RlXCIgfSwgXCJkaXNhYmxlZFwiXSB9XSB9LCB7IFtPXTogYywgW1BdOiBbeCwgXCJhd3NcIl0gfSwgeyBbT106IFwibm90XCIsIFtQXTogW3BdIH0sIHsgW09dOiBcImlzU2V0XCIsIFtQXTogW3sgW1FdOiBcIlJlc291cmNlQXJuXCIgfV0gfSwgeyBbT106IFwiYXdzLnBhcnNlQXJuXCIsIFtQXTogW3sgW1FdOiBcIlJlc291cmNlQXJuXCIgfV0sIFtSXTogXCJQYXJzZWRBcm5cIiB9LCB7IFtPXTogYywgW1BdOiBbeyBbT106IFwiZ2V0QXR0clwiLCBbUF06IFt7IFtRXTogXCJQYXJzZWRBcm5cIiB9LCBcInNlcnZpY2VcIl0gfSwgZ10gfSwgeyBbT106IFwiaXNWYWxpZEhvc3RMYWJlbFwiLCBbUF06IFt7IFtPXTogXCJnZXRBdHRyXCIsIFtQXTogW3sgW1FdOiBcIlBhcnNlZEFyblwiIH0sIFwicmVnaW9uXCJdIH0sIGZhbHNlXSB9LCB7IFtPXTogYywgW1BdOiBbeyBbT106IFwiZ2V0QXR0clwiLCBbUF06IFt7IFtRXTogXCJQYXJzZWRBcm5cIiB9LCBcInJlZ2lvblwiXSB9LCBcIntSZWdpb259XCJdIH0sIHsgW09dOiBcImlzVmFsaWRIb3N0TGFiZWxcIiwgW1BdOiBbeyBbT106IFwiZ2V0QXR0clwiLCBbUF06IFt7IFtRXTogXCJQYXJzZWRBcm5cIiB9LCBcImFjY291bnRJZFwiXSB9LCBmYWxzZV0gfV0sIEggPSBbeyBbT106IFwiaXNTZXRcIiwgW1BdOiBbeyBbUV06IFwiQWNjb3VudElkRW5kcG9pbnRNb2RlXCIgfV0gfSwgeyBbT106IFwibm90XCIsIFtQXTogW3sgW09dOiBjLCBbUF06IFt7IFtRXTogXCJBY2NvdW50SWRFbmRwb2ludE1vZGVcIiB9LCBcImRpc2FibGVkXCJdIH1dIH0sIHsgW09dOiBjLCBbUF06IFt4LCBcImF3c1wiXSB9LCB7IFtPXTogXCJub3RcIiwgW1BdOiBbcF0gfSwgeyBbT106IFwiaXNTZXRcIiwgW1BdOiBbeyBbUV06IFwiUmVzb3VyY2VBcm5MaXN0XCIgfV0gfSwgeyBbT106IFwiZ2V0QXR0clwiLCBbUF06IFt7IFtRXTogXCJSZXNvdXJjZUFybkxpc3RcIiB9LCBcIlswXVwiXSwgW1JdOiBcIkZpcnN0QXJuXCIgfSwgeyBbT106IFwiYXdzLnBhcnNlQXJuXCIsIFtQXTogW3sgW1FdOiBcIkZpcnN0QXJuXCIgfV0sIFtSXTogXCJQYXJzZWRBcm5cIiB9LCB7IFtPXTogYywgW1BdOiBbeyBbT106IFwiZ2V0QXR0clwiLCBbUF06IFt7IFtRXTogXCJQYXJzZWRBcm5cIiB9LCBcInNlcnZpY2VcIl0gfSwgZ10gfSwgeyBbT106IFwiaXNWYWxpZEhvc3RMYWJlbFwiLCBbUF06IFt7IFtPXTogXCJnZXRBdHRyXCIsIFtQXTogW3sgW1FdOiBcIlBhcnNlZEFyblwiIH0sIFwicmVnaW9uXCJdIH0sIGZhbHNlXSB9LCB7IFtPXTogYywgW1BdOiBbeyBbT106IFwiZ2V0QXR0clwiLCBbUF06IFt7IFtRXTogXCJQYXJzZWRBcm5cIiB9LCBcInJlZ2lvblwiXSB9LCBcIntSZWdpb259XCJdIH0sIHsgW09dOiBcImlzVmFsaWRIb3N0TGFiZWxcIiwgW1BdOiBbeyBbT106IFwiZ2V0QXR0clwiLCBbUF06IFt7IFtRXTogXCJQYXJzZWRBcm5cIiB9LCBcImFjY291bnRJZFwiXSB9LCBmYWxzZV0gfV0sIEkgPSBbeyBbT106IFwiaXNTZXRcIiwgW1BdOiBbeyBbUV06IFwiQWNjb3VudElkRW5kcG9pbnRNb2RlXCIgfV0gfSwgeyBbT106IFwibm90XCIsIFtQXTogW3sgW09dOiBjLCBbUF06IFt7IFtRXTogXCJBY2NvdW50SWRFbmRwb2ludE1vZGVcIiB9LCBcImRpc2FibGVkXCJdIH1dIH0sIHsgW09dOiBjLCBbUF06IFt4LCBcImF3c1wiXSB9LCB7IFtPXTogXCJub3RcIiwgW1BdOiBbcF0gfSwgeyBbT106IFwiaXNTZXRcIiwgW1BdOiBbeyBbUV06IFwiQWNjb3VudElkXCIgfV0gfV0sIEogPSBbeyBbT106IFwiaXNWYWxpZEhvc3RMYWJlbFwiLCBbUF06IFt7IFtRXTogXCJBY2NvdW50SWRcIiB9LCBmYWxzZV0gfV07XG5jb25zdCBfZGF0YSA9IHsgdmVyc2lvbjogXCIxLjBcIiwgcGFyYW1ldGVyczogeyBSZWdpb246IGgsIFVzZUR1YWxTdGFjazogaSwgVXNlRklQUzogaSwgRW5kcG9pbnQ6IGgsIEFjY291bnRJZDogaCwgQWNjb3VudElkRW5kcG9pbnRNb2RlOiBoLCBSZXNvdXJjZUFybjogaCwgUmVzb3VyY2VBcm5MaXN0OiB7IFtLXTogYSwgW0xdOiBcInN0cmluZ0FycmF5XCIgfSB9LCBbTV06IFt7IFtOXTogW2osIGwsIG5dLCBbTV06IFtvLCBxLCB7IFtOXTogW3sgW09dOiBjLCBbUF06IFtrLCBkXSB9XSwgZXJyb3I6IFwiRW5kcG9pbnQgb3ZlcnJpZGUgaXMgbm90IHN1cHBvcnRlZCBmb3IgZHVhbC1zdGFjayBlbmRwb2ludHMuIFBsZWFzZSBlbmFibGUgZHVhbC1zdGFjayBmdW5jdGlvbmFsaXR5IGJ5IGVuYWJsaW5nIHRoZSBjb25maWd1cmF0aW9uLiBGb3IgbW9yZSBkZXRhaWxzLCBzZWU6IGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zZGtyZWYvbGF0ZXN0L2d1aWRlL2ZlYXR1cmUtZW5kcG9pbnRzLmh0bWxcIiwgW0xdOiBiIH0sIHNdLCBbTF06IGYgfSwgeyBbTl06IFtqXSwgW01dOiBbbywgcSwgc10sIFtMXTogZiB9LCB7IFtOXTogW2xdLCBbTV06IFt7IFtOXTogW25dLCBbTV06IFt7IFtOXTogW3sgW09dOiBjLCBbUF06IFttLCBcImxvY2FsXCJdIH1dLCBbTV06IFt7IFtOXTogRSwgZXJyb3I6IFwiSW52YWxpZCBDb25maWd1cmF0aW9uOiBGSVBTIGFuZCBsb2NhbCBlbmRwb2ludCBhcmUgbm90IHN1cHBvcnRlZFwiLCBbTF06IGIgfSwgeyBbTl06IEYsIGVycm9yOiBcIkludmFsaWQgQ29uZmlndXJhdGlvbjogRHVhbHN0YWNrIGFuZCBsb2NhbCBlbmRwb2ludCBhcmUgbm90IHN1cHBvcnRlZFwiLCBbTF06IGIgfSwgeyBlbmRwb2ludDogeyBbU106IFwiaHR0cDovL2xvY2FsaG9zdDo4MDAwXCIsIFtUXTogeyBhdXRoU2NoZW1lczogW3sgbmFtZTogXCJzaWd2NFwiLCBzaWduaW5nUmVnaW9uOiBcInVzLWVhc3QtMVwiLCBzaWduaW5nTmFtZTogZyB9XSB9LCBbVV06IHQgfSwgW0xdOiBlIH1dLCBbTF06IGYgfSwgeyBbTl06IFtwLCByXSwgW01dOiBbeyBbTl06IFt1LCB2XSwgW01dOiBbdywgeyBlbmRwb2ludDogeyBbU106IFwiaHR0cHM6Ly9keW5hbW9kYi1maXBzLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZHVhbFN0YWNrRG5zU3VmZml4fVwiLCBbVF06IHQsIFtVXTogdCB9LCBbTF06IGUgfV0sIFtMXTogZiB9LCB7IGVycm9yOiBcIkZJUFMgYW5kIER1YWxTdGFjayBhcmUgZW5hYmxlZCwgYnV0IHRoaXMgcGFydGl0aW9uIGRvZXMgbm90IHN1cHBvcnQgb25lIG9yIGJvdGhcIiwgW0xdOiBiIH1dLCBbTF06IGYgfSwgeyBbTl06IEUsIFtNXTogW3sgW05dOiBbdV0sIFtNXTogW3sgW05dOiBbeyBbT106IGMsIFtQXTogW3gsIFwiYXdzLXVzLWdvdlwiXSB9XSwgW01dOiBbdywgeV0sIFtMXTogZiB9LCB3LCB7IGVuZHBvaW50OiB7IFtTXTogXCJodHRwczovL2R5bmFtb2RiLWZpcHMue1JlZ2lvbn0ue1BhcnRpdGlvblJlc3VsdCNkbnNTdWZmaXh9XCIsIFtUXTogdCwgW1VdOiB0IH0sIFtMXTogZSB9XSwgW0xdOiBmIH0sIHsgZXJyb3I6IFwiRklQUyBpcyBlbmFibGVkIGJ1dCB0aGlzIHBhcnRpdGlvbiBkb2VzIG5vdCBzdXBwb3J0IEZJUFNcIiwgW0xdOiBiIH1dLCBbTF06IGYgfSwgeyBbTl06IEYsIFtNXTogW3sgW05dOiBbdl0sIFtNXTogW3sgW05dOiBHLCBlbmRwb2ludDogeiwgW0xdOiBlIH0sIHsgW05dOiBILCBlbmRwb2ludDogeiwgW0xdOiBlIH0sIHsgW05dOiBJLCBbTV06IFt7IFtOXTogSiwgW01dOiBbeyBlbmRwb2ludDogeyBbU106IFwiaHR0cHM6Ly97QWNjb3VudElkfS5kZGIue1JlZ2lvbn0ue1BhcnRpdGlvblJlc3VsdCNkdWFsU3RhY2tEbnNTdWZmaXh9XCIsIFtUXTogQSwgW1VdOiB0IH0sIFtMXTogZSB9XSwgW0xdOiBmIH0sIEJdLCBbTF06IGYgfSwgQywgeyBlbmRwb2ludDogeyBbU106IGQsIFtUXTogdCwgW1VdOiB0IH0sIFtMXTogZSB9XSwgW0xdOiBmIH0sIHsgZXJyb3I6IFwiRHVhbFN0YWNrIGlzIGVuYWJsZWQgYnV0IHRoaXMgcGFydGl0aW9uIGRvZXMgbm90IHN1cHBvcnQgRHVhbFN0YWNrXCIsIFtMXTogYiB9XSwgW0xdOiBmIH0sIHsgW05dOiBHLCBlbmRwb2ludDogRCwgW0xdOiBlIH0sIHsgW05dOiBILCBlbmRwb2ludDogRCwgW0xdOiBlIH0sIHsgW05dOiBJLCBbTV06IFt7IFtOXTogSiwgW01dOiBbeyBlbmRwb2ludDogeyBbU106IFwiaHR0cHM6Ly97QWNjb3VudElkfS5kZGIue1JlZ2lvbn0ue1BhcnRpdGlvblJlc3VsdCNkbnNTdWZmaXh9XCIsIFtUXTogQSwgW1VdOiB0IH0sIFtMXTogZSB9XSwgW0xdOiBmIH0sIEJdLCBbTF06IGYgfSwgQywgeV0sIFtMXTogZiB9XSwgW0xdOiBmIH0sIHsgZXJyb3I6IFwiSW52YWxpZCBDb25maWd1cmF0aW9uOiBNaXNzaW5nIFJlZ2lvblwiLCBbTF06IGIgfV0gfTtcbmV4cG9ydHMucnVsZVNldCA9IF9kYXRhO1xuIiwgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5kZWZhdWx0RW5kcG9pbnRSZXNvbHZlciA9IHZvaWQgMDtcbmNvbnN0IHV0aWxfZW5kcG9pbnRzXzEgPSByZXF1aXJlKFwiQGF3cy1zZGsvdXRpbC1lbmRwb2ludHNcIik7XG5jb25zdCB1dGlsX2VuZHBvaW50c18yID0gcmVxdWlyZShcIkBzbWl0aHkvdXRpbC1lbmRwb2ludHNcIik7XG5jb25zdCBydWxlc2V0XzEgPSByZXF1aXJlKFwiLi9ydWxlc2V0XCIpO1xuY29uc3QgY2FjaGUgPSBuZXcgdXRpbF9lbmRwb2ludHNfMi5FbmRwb2ludENhY2hlKHtcbiAgICBzaXplOiA1MCxcbiAgICBwYXJhbXM6IFtcbiAgICAgICAgXCJBY2NvdW50SWRcIixcbiAgICAgICAgXCJBY2NvdW50SWRFbmRwb2ludE1vZGVcIixcbiAgICAgICAgXCJFbmRwb2ludFwiLFxuICAgICAgICBcIlJlZ2lvblwiLFxuICAgICAgICBcIlJlc291cmNlQXJuXCIsXG4gICAgICAgIFwiUmVzb3VyY2VBcm5MaXN0XCIsXG4gICAgICAgIFwiVXNlRHVhbFN0YWNrXCIsXG4gICAgICAgIFwiVXNlRklQU1wiLFxuICAgIF0sXG59KTtcbmNvbnN0IGRlZmF1bHRFbmRwb2ludFJlc29sdmVyID0gKGVuZHBvaW50UGFyYW1zLCBjb250ZXh0ID0ge30pID0+IHtcbiAgICByZXR1cm4gY2FjaGUuZ2V0KGVuZHBvaW50UGFyYW1zLCAoKSA9PiAoMCwgdXRpbF9lbmRwb2ludHNfMi5yZXNvbHZlRW5kcG9pbnQpKHJ1bGVzZXRfMS5ydWxlU2V0LCB7XG4gICAgICAgIGVuZHBvaW50UGFyYW1zOiBlbmRwb2ludFBhcmFtcyxcbiAgICAgICAgbG9nZ2VyOiBjb250ZXh0LmxvZ2dlcixcbiAgICB9KSk7XG59O1xuZXhwb3J0cy5kZWZhdWx0RW5kcG9pbnRSZXNvbHZlciA9IGRlZmF1bHRFbmRwb2ludFJlc29sdmVyO1xudXRpbF9lbmRwb2ludHNfMi5jdXN0b21FbmRwb2ludEZ1bmN0aW9ucy5hd3MgPSB1dGlsX2VuZHBvaW50c18xLmF3c0VuZHBvaW50RnVuY3Rpb25zO1xuIiwgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5nZXRSdW50aW1lQ29uZmlnID0gdm9pZCAwO1xuY29uc3QgY29yZV8xID0gcmVxdWlyZShcIkBhd3Mtc2RrL2NvcmVcIik7XG5jb25zdCBwcm90b2NvbHNfMSA9IHJlcXVpcmUoXCJAYXdzLXNkay9jb3JlL3Byb3RvY29sc1wiKTtcbmNvbnN0IGR5bmFtb2RiX2NvZGVjXzEgPSByZXF1aXJlKFwiQGF3cy1zZGsvZHluYW1vZGItY29kZWNcIik7XG5jb25zdCBzbWl0aHlfY2xpZW50XzEgPSByZXF1aXJlKFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCIpO1xuY29uc3QgdXJsX3BhcnNlcl8xID0gcmVxdWlyZShcIkBzbWl0aHkvdXJsLXBhcnNlclwiKTtcbmNvbnN0IHV0aWxfYmFzZTY0XzEgPSByZXF1aXJlKFwiQHNtaXRoeS91dGlsLWJhc2U2NFwiKTtcbmNvbnN0IHV0aWxfdXRmOF8xID0gcmVxdWlyZShcIkBzbWl0aHkvdXRpbC11dGY4XCIpO1xuY29uc3QgaHR0cEF1dGhTY2hlbWVQcm92aWRlcl8xID0gcmVxdWlyZShcIi4vYXV0aC9odHRwQXV0aFNjaGVtZVByb3ZpZGVyXCIpO1xuY29uc3QgZW5kcG9pbnRSZXNvbHZlcl8xID0gcmVxdWlyZShcIi4vZW5kcG9pbnQvZW5kcG9pbnRSZXNvbHZlclwiKTtcbmNvbnN0IGdldFJ1bnRpbWVDb25maWcgPSAoY29uZmlnKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgYXBpVmVyc2lvbjogXCIyMDEyLTA4LTEwXCIsXG4gICAgICAgIGJhc2U2NERlY29kZXI6IGNvbmZpZz8uYmFzZTY0RGVjb2RlciA/PyB1dGlsX2Jhc2U2NF8xLmZyb21CYXNlNjQsXG4gICAgICAgIGJhc2U2NEVuY29kZXI6IGNvbmZpZz8uYmFzZTY0RW5jb2RlciA/PyB1dGlsX2Jhc2U2NF8xLnRvQmFzZTY0LFxuICAgICAgICBkaXNhYmxlSG9zdFByZWZpeDogY29uZmlnPy5kaXNhYmxlSG9zdFByZWZpeCA/PyBmYWxzZSxcbiAgICAgICAgZW5kcG9pbnRQcm92aWRlcjogY29uZmlnPy5lbmRwb2ludFByb3ZpZGVyID8/IGVuZHBvaW50UmVzb2x2ZXJfMS5kZWZhdWx0RW5kcG9pbnRSZXNvbHZlcixcbiAgICAgICAgZXh0ZW5zaW9uczogY29uZmlnPy5leHRlbnNpb25zID8/IFtdLFxuICAgICAgICBodHRwQXV0aFNjaGVtZVByb3ZpZGVyOiBjb25maWc/Lmh0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPz8gaHR0cEF1dGhTY2hlbWVQcm92aWRlcl8xLmRlZmF1bHREeW5hbW9EQkh0dHBBdXRoU2NoZW1lUHJvdmlkZXIsXG4gICAgICAgIGh0dHBBdXRoU2NoZW1lczogY29uZmlnPy5odHRwQXV0aFNjaGVtZXMgPz8gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHNjaGVtZUlkOiBcImF3cy5hdXRoI3NpZ3Y0XCIsXG4gICAgICAgICAgICAgICAgaWRlbnRpdHlQcm92aWRlcjogKGlwYykgPT4gaXBjLmdldElkZW50aXR5UHJvdmlkZXIoXCJhd3MuYXV0aCNzaWd2NFwiKSxcbiAgICAgICAgICAgICAgICBzaWduZXI6IG5ldyBjb3JlXzEuQXdzU2RrU2lnVjRTaWduZXIoKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIGxvZ2dlcjogY29uZmlnPy5sb2dnZXIgPz8gbmV3IHNtaXRoeV9jbGllbnRfMS5Ob09wTG9nZ2VyKCksXG4gICAgICAgIHByb3RvY29sOiBjb25maWc/LnByb3RvY29sID8/IHByb3RvY29sc18xLkF3c0pzb24xXzBQcm90b2NvbCxcbiAgICAgICAgcHJvdG9jb2xTZXR0aW5nczogY29uZmlnPy5wcm90b2NvbFNldHRpbmdzID8/IHtcbiAgICAgICAgICAgIGRlZmF1bHROYW1lc3BhY2U6IFwiY29tLmFtYXpvbmF3cy5keW5hbW9kYlwiLFxuICAgICAgICAgICAgeG1sTmFtZXNwYWNlOiBcImh0dHA6Ly9keW5hbW9kYi5hbWF6b25hd3MuY29tL2RvYy8yMDEyLTA4LTEwL1wiLFxuICAgICAgICAgICAgdmVyc2lvbjogXCIyMDEyLTA4LTEwXCIsXG4gICAgICAgICAgICBzZXJ2aWNlVGFyZ2V0OiBcIkR5bmFtb0RCXzIwMTIwODEwXCIsXG4gICAgICAgICAgICBqc29uQ29kZWM6IG5ldyBkeW5hbW9kYl9jb2RlY18xLkR5bmFtb0RCSnNvbkNvZGVjKCksXG4gICAgICAgIH0sXG4gICAgICAgIHNlcnZpY2VJZDogY29uZmlnPy5zZXJ2aWNlSWQgPz8gXCJEeW5hbW9EQlwiLFxuICAgICAgICB1cmxQYXJzZXI6IGNvbmZpZz8udXJsUGFyc2VyID8/IHVybF9wYXJzZXJfMS5wYXJzZVVybCxcbiAgICAgICAgdXRmOERlY29kZXI6IGNvbmZpZz8udXRmOERlY29kZXIgPz8gdXRpbF91dGY4XzEuZnJvbVV0ZjgsXG4gICAgICAgIHV0ZjhFbmNvZGVyOiBjb25maWc/LnV0ZjhFbmNvZGVyID8/IHV0aWxfdXRmOF8xLnRvVXRmOCxcbiAgICB9O1xufTtcbmV4cG9ydHMuZ2V0UnVudGltZUNvbmZpZyA9IGdldFJ1bnRpbWVDb25maWc7XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmdldFJ1bnRpbWVDb25maWcgPSB2b2lkIDA7XG5jb25zdCB0c2xpYl8xID0gcmVxdWlyZShcInRzbGliXCIpO1xuY29uc3QgcGFja2FnZV9qc29uXzEgPSB0c2xpYl8xLl9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi4vcGFja2FnZS5qc29uXCIpKTtcbmNvbnN0IGNvcmVfMSA9IHJlcXVpcmUoXCJAYXdzLXNkay9jb3JlXCIpO1xuY29uc3QgYWNjb3VudF9pZF9lbmRwb2ludF8xID0gcmVxdWlyZShcIkBhd3Mtc2RrL2NvcmUvYWNjb3VudC1pZC1lbmRwb2ludFwiKTtcbmNvbnN0IGNyZWRlbnRpYWxfcHJvdmlkZXJfbm9kZV8xID0gcmVxdWlyZShcIkBhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbm9kZVwiKTtcbmNvbnN0IG1pZGRsZXdhcmVfZW5kcG9pbnRfZGlzY292ZXJ5XzEgPSByZXF1aXJlKFwiQGF3cy1zZGsvbWlkZGxld2FyZS1lbmRwb2ludC1kaXNjb3ZlcnlcIik7XG5jb25zdCB1dGlsX3VzZXJfYWdlbnRfbm9kZV8xID0gcmVxdWlyZShcIkBhd3Mtc2RrL3V0aWwtdXNlci1hZ2VudC1ub2RlXCIpO1xuY29uc3QgY29uZmlnX3Jlc29sdmVyXzEgPSByZXF1aXJlKFwiQHNtaXRoeS9jb25maWctcmVzb2x2ZXJcIik7XG5jb25zdCBoYXNoX25vZGVfMSA9IHJlcXVpcmUoXCJAc21pdGh5L2hhc2gtbm9kZVwiKTtcbmNvbnN0IG1pZGRsZXdhcmVfcmV0cnlfMSA9IHJlcXVpcmUoXCJAc21pdGh5L21pZGRsZXdhcmUtcmV0cnlcIik7XG5jb25zdCBub2RlX2NvbmZpZ19wcm92aWRlcl8xID0gcmVxdWlyZShcIkBzbWl0aHkvbm9kZS1jb25maWctcHJvdmlkZXJcIik7XG5jb25zdCBub2RlX2h0dHBfaGFuZGxlcl8xID0gcmVxdWlyZShcIkBzbWl0aHkvbm9kZS1odHRwLWhhbmRsZXJcIik7XG5jb25zdCBzbWl0aHlfY2xpZW50XzEgPSByZXF1aXJlKFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCIpO1xuY29uc3QgdXRpbF9ib2R5X2xlbmd0aF9ub2RlXzEgPSByZXF1aXJlKFwiQHNtaXRoeS91dGlsLWJvZHktbGVuZ3RoLW5vZGVcIik7XG5jb25zdCB1dGlsX2RlZmF1bHRzX21vZGVfbm9kZV8xID0gcmVxdWlyZShcIkBzbWl0aHkvdXRpbC1kZWZhdWx0cy1tb2RlLW5vZGVcIik7XG5jb25zdCB1dGlsX3JldHJ5XzEgPSByZXF1aXJlKFwiQHNtaXRoeS91dGlsLXJldHJ5XCIpO1xuY29uc3QgcnVudGltZUNvbmZpZ19zaGFyZWRfMSA9IHJlcXVpcmUoXCIuL3J1bnRpbWVDb25maWcuc2hhcmVkXCIpO1xuY29uc3QgZ2V0UnVudGltZUNvbmZpZyA9IChjb25maWcpID0+IHtcbiAgICAoMCwgc21pdGh5X2NsaWVudF8xLmVtaXRXYXJuaW5nSWZVbnN1cHBvcnRlZFZlcnNpb24pKHByb2Nlc3MudmVyc2lvbik7XG4gICAgY29uc3QgZGVmYXVsdHNNb2RlID0gKDAsIHV0aWxfZGVmYXVsdHNfbW9kZV9ub2RlXzEucmVzb2x2ZURlZmF1bHRzTW9kZUNvbmZpZykoY29uZmlnKTtcbiAgICBjb25zdCBkZWZhdWx0Q29uZmlnUHJvdmlkZXIgPSAoKSA9PiBkZWZhdWx0c01vZGUoKS50aGVuKHNtaXRoeV9jbGllbnRfMS5sb2FkQ29uZmlnc0ZvckRlZmF1bHRNb2RlKTtcbiAgICBjb25zdCBjbGllbnRTaGFyZWRWYWx1ZXMgPSAoMCwgcnVudGltZUNvbmZpZ19zaGFyZWRfMS5nZXRSdW50aW1lQ29uZmlnKShjb25maWcpO1xuICAgICgwLCBjb3JlXzEuZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbikocHJvY2Vzcy52ZXJzaW9uKTtcbiAgICBjb25zdCBsb2FkZXJDb25maWcgPSB7XG4gICAgICAgIHByb2ZpbGU6IGNvbmZpZz8ucHJvZmlsZSxcbiAgICAgICAgbG9nZ2VyOiBjbGllbnRTaGFyZWRWYWx1ZXMubG9nZ2VyLFxuICAgIH07XG4gICAgcmV0dXJuIHtcbiAgICAgICAgLi4uY2xpZW50U2hhcmVkVmFsdWVzLFxuICAgICAgICAuLi5jb25maWcsXG4gICAgICAgIHJ1bnRpbWU6IFwibm9kZVwiLFxuICAgICAgICBkZWZhdWx0c01vZGUsXG4gICAgICAgIGFjY291bnRJZEVuZHBvaW50TW9kZTogY29uZmlnPy5hY2NvdW50SWRFbmRwb2ludE1vZGUgPz8gKDAsIG5vZGVfY29uZmlnX3Byb3ZpZGVyXzEubG9hZENvbmZpZykoYWNjb3VudF9pZF9lbmRwb2ludF8xLk5PREVfQUNDT1VOVF9JRF9FTkRQT0lOVF9NT0RFX0NPTkZJR19PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgICAgICBhdXRoU2NoZW1lUHJlZmVyZW5jZTogY29uZmlnPy5hdXRoU2NoZW1lUHJlZmVyZW5jZSA/PyAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKShjb3JlXzEuTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX09QVElPTlMsIGxvYWRlckNvbmZpZyksXG4gICAgICAgIGJvZHlMZW5ndGhDaGVja2VyOiBjb25maWc/LmJvZHlMZW5ndGhDaGVja2VyID8/IHV0aWxfYm9keV9sZW5ndGhfbm9kZV8xLmNhbGN1bGF0ZUJvZHlMZW5ndGgsXG4gICAgICAgIGNyZWRlbnRpYWxEZWZhdWx0UHJvdmlkZXI6IGNvbmZpZz8uY3JlZGVudGlhbERlZmF1bHRQcm92aWRlciA/PyBjcmVkZW50aWFsX3Byb3ZpZGVyX25vZGVfMS5kZWZhdWx0UHJvdmlkZXIsXG4gICAgICAgIGRlZmF1bHRVc2VyQWdlbnRQcm92aWRlcjogY29uZmlnPy5kZWZhdWx0VXNlckFnZW50UHJvdmlkZXIgPz8gKDAsIHV0aWxfdXNlcl9hZ2VudF9ub2RlXzEuY3JlYXRlRGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyKSh7IHNlcnZpY2VJZDogY2xpZW50U2hhcmVkVmFsdWVzLnNlcnZpY2VJZCwgY2xpZW50VmVyc2lvbjogcGFja2FnZV9qc29uXzEuZGVmYXVsdC52ZXJzaW9uIH0pLFxuICAgICAgICBlbmRwb2ludERpc2NvdmVyeUVuYWJsZWRQcm92aWRlcjogY29uZmlnPy5lbmRwb2ludERpc2NvdmVyeUVuYWJsZWRQcm92aWRlciA/PyAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKShtaWRkbGV3YXJlX2VuZHBvaW50X2Rpc2NvdmVyeV8xLk5PREVfRU5EUE9JTlRfRElTQ09WRVJZX0NPTkZJR19PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgICAgICBtYXhBdHRlbXB0czogY29uZmlnPy5tYXhBdHRlbXB0cyA/PyAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKShtaWRkbGV3YXJlX3JldHJ5XzEuTk9ERV9NQVhfQVRURU1QVF9DT05GSUdfT1BUSU9OUywgY29uZmlnKSxcbiAgICAgICAgcmVnaW9uOiBjb25maWc/LnJlZ2lvbiA/PyAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKShjb25maWdfcmVzb2x2ZXJfMS5OT0RFX1JFR0lPTl9DT05GSUdfT1BUSU9OUywgeyAuLi5jb25maWdfcmVzb2x2ZXJfMS5OT0RFX1JFR0lPTl9DT05GSUdfRklMRV9PUFRJT05TLCAuLi5sb2FkZXJDb25maWcgfSksXG4gICAgICAgIHJlcXVlc3RIYW5kbGVyOiBub2RlX2h0dHBfaGFuZGxlcl8xLk5vZGVIdHRwSGFuZGxlci5jcmVhdGUoY29uZmlnPy5yZXF1ZXN0SGFuZGxlciA/PyBkZWZhdWx0Q29uZmlnUHJvdmlkZXIpLFxuICAgICAgICByZXRyeU1vZGU6IGNvbmZpZz8ucmV0cnlNb2RlID8/XG4gICAgICAgICAgICAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKSh7XG4gICAgICAgICAgICAgICAgLi4ubWlkZGxld2FyZV9yZXRyeV8xLk5PREVfUkVUUllfTU9ERV9DT05GSUdfT1BUSU9OUyxcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiBhc3luYyAoKSA9PiAoYXdhaXQgZGVmYXVsdENvbmZpZ1Byb3ZpZGVyKCkpLnJldHJ5TW9kZSB8fCB1dGlsX3JldHJ5XzEuREVGQVVMVF9SRVRSWV9NT0RFLFxuICAgICAgICAgICAgfSwgY29uZmlnKSxcbiAgICAgICAgc2hhMjU2OiBjb25maWc/LnNoYTI1NiA/PyBoYXNoX25vZGVfMS5IYXNoLmJpbmQobnVsbCwgXCJzaGEyNTZcIiksXG4gICAgICAgIHN0cmVhbUNvbGxlY3RvcjogY29uZmlnPy5zdHJlYW1Db2xsZWN0b3IgPz8gbm9kZV9odHRwX2hhbmRsZXJfMS5zdHJlYW1Db2xsZWN0b3IsXG4gICAgICAgIHVzZUR1YWxzdGFja0VuZHBvaW50OiBjb25maWc/LnVzZUR1YWxzdGFja0VuZHBvaW50ID8/ICgwLCBub2RlX2NvbmZpZ19wcm92aWRlcl8xLmxvYWRDb25maWcpKGNvbmZpZ19yZXNvbHZlcl8xLk5PREVfVVNFX0RVQUxTVEFDS19FTkRQT0lOVF9DT05GSUdfT1BUSU9OUywgbG9hZGVyQ29uZmlnKSxcbiAgICAgICAgdXNlRmlwc0VuZHBvaW50OiBjb25maWc/LnVzZUZpcHNFbmRwb2ludCA/PyAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKShjb25maWdfcmVzb2x2ZXJfMS5OT0RFX1VTRV9GSVBTX0VORFBPSU5UX0NPTkZJR19PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgICAgICB1c2VyQWdlbnRBcHBJZDogY29uZmlnPy51c2VyQWdlbnRBcHBJZCA/PyAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKSh1dGlsX3VzZXJfYWdlbnRfbm9kZV8xLk5PREVfQVBQX0lEX0NPTkZJR19PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgIH07XG59O1xuZXhwb3J0cy5nZXRSdW50aW1lQ29uZmlnID0gZ2V0UnVudGltZUNvbmZpZztcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBhY2NvdW50SWRFbmRwb2ludCA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL2NvcmUvYWNjb3VudC1pZC1lbmRwb2ludCcpO1xudmFyIG1pZGRsZXdhcmVFbmRwb2ludERpc2NvdmVyeSA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL21pZGRsZXdhcmUtZW5kcG9pbnQtZGlzY292ZXJ5Jyk7XG52YXIgbWlkZGxld2FyZUhvc3RIZWFkZXIgPSByZXF1aXJlKCdAYXdzLXNkay9taWRkbGV3YXJlLWhvc3QtaGVhZGVyJyk7XG52YXIgbWlkZGxld2FyZUxvZ2dlciA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL21pZGRsZXdhcmUtbG9nZ2VyJyk7XG52YXIgbWlkZGxld2FyZVJlY3Vyc2lvbkRldGVjdGlvbiA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL21pZGRsZXdhcmUtcmVjdXJzaW9uLWRldGVjdGlvbicpO1xudmFyIG1pZGRsZXdhcmVVc2VyQWdlbnQgPSByZXF1aXJlKCdAYXdzLXNkay9taWRkbGV3YXJlLXVzZXItYWdlbnQnKTtcbnZhciBjb25maWdSZXNvbHZlciA9IHJlcXVpcmUoJ0BzbWl0aHkvY29uZmlnLXJlc29sdmVyJyk7XG52YXIgY29yZSA9IHJlcXVpcmUoJ0BzbWl0aHkvY29yZScpO1xudmFyIHNjaGVtYSA9IHJlcXVpcmUoJ0BzbWl0aHkvY29yZS9zY2hlbWEnKTtcbnZhciBtaWRkbGV3YXJlQ29udGVudExlbmd0aCA9IHJlcXVpcmUoJ0BzbWl0aHkvbWlkZGxld2FyZS1jb250ZW50LWxlbmd0aCcpO1xudmFyIG1pZGRsZXdhcmVFbmRwb2ludCA9IHJlcXVpcmUoJ0BzbWl0aHkvbWlkZGxld2FyZS1lbmRwb2ludCcpO1xudmFyIG1pZGRsZXdhcmVSZXRyeSA9IHJlcXVpcmUoJ0BzbWl0aHkvbWlkZGxld2FyZS1yZXRyeScpO1xudmFyIHNtaXRoeUNsaWVudCA9IHJlcXVpcmUoJ0BzbWl0aHkvc21pdGh5LWNsaWVudCcpO1xudmFyIGh0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSByZXF1aXJlKCcuL2F1dGgvaHR0cEF1dGhTY2hlbWVQcm92aWRlcicpO1xudmFyIHJ1bnRpbWVDb25maWcgPSByZXF1aXJlKCcuL3J1bnRpbWVDb25maWcnKTtcbnZhciByZWdpb25Db25maWdSZXNvbHZlciA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL3JlZ2lvbi1jb25maWctcmVzb2x2ZXInKTtcbnZhciBwcm90b2NvbEh0dHAgPSByZXF1aXJlKCdAc21pdGh5L3Byb3RvY29sLWh0dHAnKTtcbnZhciB1dGlsV2FpdGVyID0gcmVxdWlyZSgnQHNtaXRoeS91dGlsLXdhaXRlcicpO1xuXG5jb25zdCByZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzID0gKG9wdGlvbnMpID0+IHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihvcHRpb25zLCB7XG4gICAgICAgIHVzZUR1YWxzdGFja0VuZHBvaW50OiBvcHRpb25zLnVzZUR1YWxzdGFja0VuZHBvaW50ID8/IGZhbHNlLFxuICAgICAgICB1c2VGaXBzRW5kcG9pbnQ6IG9wdGlvbnMudXNlRmlwc0VuZHBvaW50ID8/IGZhbHNlLFxuICAgICAgICBkZWZhdWx0U2lnbmluZ05hbWU6IFwiZHluYW1vZGJcIixcbiAgICB9KTtcbn07XG5jb25zdCBjb21tb25QYXJhbXMgPSB7XG4gICAgVXNlRklQUzogeyB0eXBlOiBcImJ1aWx0SW5QYXJhbXNcIiwgbmFtZTogXCJ1c2VGaXBzRW5kcG9pbnRcIiB9LFxuICAgIEFjY291bnRJZDogeyB0eXBlOiBcImJ1aWx0SW5QYXJhbXNcIiwgbmFtZTogXCJhY2NvdW50SWRcIiB9LFxuICAgIEVuZHBvaW50OiB7IHR5cGU6IFwiYnVpbHRJblBhcmFtc1wiLCBuYW1lOiBcImVuZHBvaW50XCIgfSxcbiAgICBSZWdpb246IHsgdHlwZTogXCJidWlsdEluUGFyYW1zXCIsIG5hbWU6IFwicmVnaW9uXCIgfSxcbiAgICBVc2VEdWFsU3RhY2s6IHsgdHlwZTogXCJidWlsdEluUGFyYW1zXCIsIG5hbWU6IFwidXNlRHVhbHN0YWNrRW5kcG9pbnRcIiB9LFxuICAgIEFjY291bnRJZEVuZHBvaW50TW9kZTogeyB0eXBlOiBcImJ1aWx0SW5QYXJhbXNcIiwgbmFtZTogXCJhY2NvdW50SWRFbmRwb2ludE1vZGVcIiB9LFxufTtcblxuY2xhc3MgRHluYW1vREJTZXJ2aWNlRXhjZXB0aW9uIGV4dGVuZHMgc21pdGh5Q2xpZW50LlNlcnZpY2VFeGNlcHRpb24ge1xuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnMpIHtcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBEeW5hbW9EQlNlcnZpY2VFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59XG5cbmNsYXNzIEJhY2t1cEluVXNlRXhjZXB0aW9uIGV4dGVuZHMgRHluYW1vREJTZXJ2aWNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJCYWNrdXBJblVzZUV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkJhY2t1cEluVXNlRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEJhY2t1cEluVXNlRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgfVxufVxuY2xhc3MgQmFja3VwTm90Rm91bmRFeGNlcHRpb24gZXh0ZW5kcyBEeW5hbW9EQlNlcnZpY2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIkJhY2t1cE5vdEZvdW5kRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiQmFja3VwTm90Rm91bmRFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgQmFja3VwTm90Rm91bmRFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59XG5jbGFzcyBJbnRlcm5hbFNlcnZlckVycm9yIGV4dGVuZHMgRHluYW1vREJTZXJ2aWNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJJbnRlcm5hbFNlcnZlckVycm9yXCI7XG4gICAgJGZhdWx0ID0gXCJzZXJ2ZXJcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiSW50ZXJuYWxTZXJ2ZXJFcnJvclwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcInNlcnZlclwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBJbnRlcm5hbFNlcnZlckVycm9yLnByb3RvdHlwZSk7XG4gICAgfVxufVxuY2xhc3MgUmVxdWVzdExpbWl0RXhjZWVkZWQgZXh0ZW5kcyBEeW5hbW9EQlNlcnZpY2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIlJlcXVlc3RMaW1pdEV4Y2VlZGVkXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBUaHJvdHRsaW5nUmVhc29ucztcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiUmVxdWVzdExpbWl0RXhjZWVkZWRcIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgUmVxdWVzdExpbWl0RXhjZWVkZWQucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5UaHJvdHRsaW5nUmVhc29ucyA9IG9wdHMuVGhyb3R0bGluZ1JlYXNvbnM7XG4gICAgfVxufVxuY2xhc3MgVGhyb3R0bGluZ0V4Y2VwdGlvbiBleHRlbmRzIER5bmFtb0RCU2VydmljZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiVGhyb3R0bGluZ0V4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgdGhyb3R0bGluZ1JlYXNvbnM7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIlRocm90dGxpbmdFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgVGhyb3R0bGluZ0V4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLnRocm90dGxpbmdSZWFzb25zID0gb3B0cy50aHJvdHRsaW5nUmVhc29ucztcbiAgICB9XG59XG5jbGFzcyBJbnZhbGlkRW5kcG9pbnRFeGNlcHRpb24gZXh0ZW5kcyBEeW5hbW9EQlNlcnZpY2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIkludmFsaWRFbmRwb2ludEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgTWVzc2FnZTtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiSW52YWxpZEVuZHBvaW50RXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEludmFsaWRFbmRwb2ludEV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLk1lc3NhZ2UgPSBvcHRzLk1lc3NhZ2U7XG4gICAgfVxufVxuY2xhc3MgUHJvdmlzaW9uZWRUaHJvdWdocHV0RXhjZWVkZWRFeGNlcHRpb24gZXh0ZW5kcyBEeW5hbW9EQlNlcnZpY2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIlByb3Zpc2lvbmVkVGhyb3VnaHB1dEV4Y2VlZGVkRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBUaHJvdHRsaW5nUmVhc29ucztcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiUHJvdmlzaW9uZWRUaHJvdWdocHV0RXhjZWVkZWRFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgUHJvdmlzaW9uZWRUaHJvdWdocHV0RXhjZWVkZWRFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5UaHJvdHRsaW5nUmVhc29ucyA9IG9wdHMuVGhyb3R0bGluZ1JlYXNvbnM7XG4gICAgfVxufVxuY2xhc3MgUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvbiBleHRlbmRzIER5bmFtb0RCU2VydmljZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIlJlc291cmNlTm90Rm91bmRFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn1cbmNsYXNzIEl0ZW1Db2xsZWN0aW9uU2l6ZUxpbWl0RXhjZWVkZWRFeGNlcHRpb24gZXh0ZW5kcyBEeW5hbW9EQlNlcnZpY2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIkl0ZW1Db2xsZWN0aW9uU2l6ZUxpbWl0RXhjZWVkZWRFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJJdGVtQ29sbGVjdGlvblNpemVMaW1pdEV4Y2VlZGVkRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEl0ZW1Db2xsZWN0aW9uU2l6ZUxpbWl0RXhjZWVkZWRFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59XG5jbGFzcyBSZXBsaWNhdGVkV3JpdGVDb25mbGljdEV4Y2VwdGlvbiBleHRlbmRzIER5bmFtb0RCU2VydmljZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiUmVwbGljYXRlZFdyaXRlQ29uZmxpY3RFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgICRyZXRyeWFibGUgPSB7fTtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiUmVwbGljYXRlZFdyaXRlQ29uZmxpY3RFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgUmVwbGljYXRlZFdyaXRlQ29uZmxpY3RFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59XG5jbGFzcyBDb250aW51b3VzQmFja3Vwc1VuYXZhaWxhYmxlRXhjZXB0aW9uIGV4dGVuZHMgRHluYW1vREJTZXJ2aWNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJDb250aW51b3VzQmFja3Vwc1VuYXZhaWxhYmxlRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiQ29udGludW91c0JhY2t1cHNVbmF2YWlsYWJsZUV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBDb250aW51b3VzQmFja3Vwc1VuYXZhaWxhYmxlRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgfVxufVxuY2xhc3MgTGltaXRFeGNlZWRlZEV4Y2VwdGlvbiBleHRlbmRzIER5bmFtb0RCU2VydmljZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiTGltaXRFeGNlZWRlZEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkxpbWl0RXhjZWVkZWRFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgTGltaXRFeGNlZWRlZEV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn1cbmNsYXNzIFRhYmxlSW5Vc2VFeGNlcHRpb24gZXh0ZW5kcyBEeW5hbW9EQlNlcnZpY2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIlRhYmxlSW5Vc2VFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJUYWJsZUluVXNlRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFRhYmxlSW5Vc2VFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59XG5jbGFzcyBUYWJsZU5vdEZvdW5kRXhjZXB0aW9uIGV4dGVuZHMgRHluYW1vREJTZXJ2aWNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJUYWJsZU5vdEZvdW5kRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiVGFibGVOb3RGb3VuZEV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBUYWJsZU5vdEZvdW5kRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgfVxufVxuY2xhc3MgR2xvYmFsVGFibGVBbHJlYWR5RXhpc3RzRXhjZXB0aW9uIGV4dGVuZHMgRHluYW1vREJTZXJ2aWNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJHbG9iYWxUYWJsZUFscmVhZHlFeGlzdHNFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJHbG9iYWxUYWJsZUFscmVhZHlFeGlzdHNFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgR2xvYmFsVGFibGVBbHJlYWR5RXhpc3RzRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgfVxufVxuY2xhc3MgUmVzb3VyY2VJblVzZUV4Y2VwdGlvbiBleHRlbmRzIER5bmFtb0RCU2VydmljZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiUmVzb3VyY2VJblVzZUV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIlJlc291cmNlSW5Vc2VFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgUmVzb3VyY2VJblVzZUV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn1cbmNsYXNzIFRyYW5zYWN0aW9uQ29uZmxpY3RFeGNlcHRpb24gZXh0ZW5kcyBEeW5hbW9EQlNlcnZpY2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIlRyYW5zYWN0aW9uQ29uZmxpY3RFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJUcmFuc2FjdGlvbkNvbmZsaWN0RXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFRyYW5zYWN0aW9uQ29uZmxpY3RFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59XG5jbGFzcyBQb2xpY3lOb3RGb3VuZEV4Y2VwdGlvbiBleHRlbmRzIER5bmFtb0RCU2VydmljZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiUG9saWN5Tm90Rm91bmRFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJQb2xpY3lOb3RGb3VuZEV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBQb2xpY3lOb3RGb3VuZEV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn1cbmNsYXNzIEV4cG9ydE5vdEZvdW5kRXhjZXB0aW9uIGV4dGVuZHMgRHluYW1vREJTZXJ2aWNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJFeHBvcnROb3RGb3VuZEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkV4cG9ydE5vdEZvdW5kRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEV4cG9ydE5vdEZvdW5kRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgfVxufVxuY2xhc3MgR2xvYmFsVGFibGVOb3RGb3VuZEV4Y2VwdGlvbiBleHRlbmRzIER5bmFtb0RCU2VydmljZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiR2xvYmFsVGFibGVOb3RGb3VuZEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkdsb2JhbFRhYmxlTm90Rm91bmRFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgR2xvYmFsVGFibGVOb3RGb3VuZEV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn1cbmNsYXNzIEltcG9ydE5vdEZvdW5kRXhjZXB0aW9uIGV4dGVuZHMgRHluYW1vREJTZXJ2aWNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJJbXBvcnROb3RGb3VuZEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkltcG9ydE5vdEZvdW5kRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEltcG9ydE5vdEZvdW5kRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgfVxufVxuY2xhc3MgRHVwbGljYXRlSXRlbUV4Y2VwdGlvbiBleHRlbmRzIER5bmFtb0RCU2VydmljZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiRHVwbGljYXRlSXRlbUV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkR1cGxpY2F0ZUl0ZW1FeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgRHVwbGljYXRlSXRlbUV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn1cbmNsYXNzIElkZW1wb3RlbnRQYXJhbWV0ZXJNaXNtYXRjaEV4Y2VwdGlvbiBleHRlbmRzIER5bmFtb0RCU2VydmljZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiSWRlbXBvdGVudFBhcmFtZXRlck1pc21hdGNoRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBNZXNzYWdlO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJJZGVtcG90ZW50UGFyYW1ldGVyTWlzbWF0Y2hFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgSWRlbXBvdGVudFBhcmFtZXRlck1pc21hdGNoRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuTWVzc2FnZSA9IG9wdHMuTWVzc2FnZTtcbiAgICB9XG59XG5jbGFzcyBUcmFuc2FjdGlvbkluUHJvZ3Jlc3NFeGNlcHRpb24gZXh0ZW5kcyBEeW5hbW9EQlNlcnZpY2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIlRyYW5zYWN0aW9uSW5Qcm9ncmVzc0V4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgTWVzc2FnZTtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiVHJhbnNhY3Rpb25JblByb2dyZXNzRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFRyYW5zYWN0aW9uSW5Qcm9ncmVzc0V4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLk1lc3NhZ2UgPSBvcHRzLk1lc3NhZ2U7XG4gICAgfVxufVxuY2xhc3MgRXhwb3J0Q29uZmxpY3RFeGNlcHRpb24gZXh0ZW5kcyBEeW5hbW9EQlNlcnZpY2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIkV4cG9ydENvbmZsaWN0RXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiRXhwb3J0Q29uZmxpY3RFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgRXhwb3J0Q29uZmxpY3RFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59XG5jbGFzcyBJbnZhbGlkRXhwb3J0VGltZUV4Y2VwdGlvbiBleHRlbmRzIER5bmFtb0RCU2VydmljZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiSW52YWxpZEV4cG9ydFRpbWVFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJJbnZhbGlkRXhwb3J0VGltZUV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBJbnZhbGlkRXhwb3J0VGltZUV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn1cbmNsYXNzIFBvaW50SW5UaW1lUmVjb3ZlcnlVbmF2YWlsYWJsZUV4Y2VwdGlvbiBleHRlbmRzIER5bmFtb0RCU2VydmljZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiUG9pbnRJblRpbWVSZWNvdmVyeVVuYXZhaWxhYmxlRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiUG9pbnRJblRpbWVSZWNvdmVyeVVuYXZhaWxhYmxlRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFBvaW50SW5UaW1lUmVjb3ZlcnlVbmF2YWlsYWJsZUV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn1cbmNsYXNzIEltcG9ydENvbmZsaWN0RXhjZXB0aW9uIGV4dGVuZHMgRHluYW1vREJTZXJ2aWNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJJbXBvcnRDb25mbGljdEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkltcG9ydENvbmZsaWN0RXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEltcG9ydENvbmZsaWN0RXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgfVxufVxuY2xhc3MgVGFibGVBbHJlYWR5RXhpc3RzRXhjZXB0aW9uIGV4dGVuZHMgRHluYW1vREJTZXJ2aWNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJUYWJsZUFscmVhZHlFeGlzdHNFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJUYWJsZUFscmVhZHlFeGlzdHNFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgVGFibGVBbHJlYWR5RXhpc3RzRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgfVxufVxuY2xhc3MgSW52YWxpZFJlc3RvcmVUaW1lRXhjZXB0aW9uIGV4dGVuZHMgRHluYW1vREJTZXJ2aWNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJJbnZhbGlkUmVzdG9yZVRpbWVFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJJbnZhbGlkUmVzdG9yZVRpbWVFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgSW52YWxpZFJlc3RvcmVUaW1lRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgfVxufVxuY2xhc3MgUmVwbGljYUFscmVhZHlFeGlzdHNFeGNlcHRpb24gZXh0ZW5kcyBEeW5hbW9EQlNlcnZpY2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIlJlcGxpY2FBbHJlYWR5RXhpc3RzRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiUmVwbGljYUFscmVhZHlFeGlzdHNFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgUmVwbGljYUFscmVhZHlFeGlzdHNFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59XG5jbGFzcyBSZXBsaWNhTm90Rm91bmRFeGNlcHRpb24gZXh0ZW5kcyBEeW5hbW9EQlNlcnZpY2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIlJlcGxpY2FOb3RGb3VuZEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIlJlcGxpY2FOb3RGb3VuZEV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBSZXBsaWNhTm90Rm91bmRFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59XG5jbGFzcyBJbmRleE5vdEZvdW5kRXhjZXB0aW9uIGV4dGVuZHMgRHluYW1vREJTZXJ2aWNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJJbmRleE5vdEZvdW5kRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiSW5kZXhOb3RGb3VuZEV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBJbmRleE5vdEZvdW5kRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgfVxufVxuY2xhc3MgQ29uZGl0aW9uYWxDaGVja0ZhaWxlZEV4Y2VwdGlvbiBleHRlbmRzIER5bmFtb0RCU2VydmljZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiQ29uZGl0aW9uYWxDaGVja0ZhaWxlZEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgSXRlbTtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiQ29uZGl0aW9uYWxDaGVja0ZhaWxlZEV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBDb25kaXRpb25hbENoZWNrRmFpbGVkRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuSXRlbSA9IG9wdHMuSXRlbTtcbiAgICB9XG59XG5jbGFzcyBUcmFuc2FjdGlvbkNhbmNlbGVkRXhjZXB0aW9uIGV4dGVuZHMgRHluYW1vREJTZXJ2aWNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJUcmFuc2FjdGlvbkNhbmNlbGVkRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBNZXNzYWdlO1xuICAgIENhbmNlbGxhdGlvblJlYXNvbnM7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIlRyYW5zYWN0aW9uQ2FuY2VsZWRFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgVHJhbnNhY3Rpb25DYW5jZWxlZEV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLk1lc3NhZ2UgPSBvcHRzLk1lc3NhZ2U7XG4gICAgICAgIHRoaXMuQ2FuY2VsbGF0aW9uUmVhc29ucyA9IG9wdHMuQ2FuY2VsbGF0aW9uUmVhc29ucztcbiAgICB9XG59XG5cbmNvbnN0IF9BID0gXCJBY3Rpb25cIjtcbmNvbnN0IF9BQkEgPSBcIkFyY2hpdmFsQmFja3VwQXJuXCI7XG5jb25zdCBfQUNEVFAgPSBcIkFwcHJveGltYXRlQ3JlYXRpb25EYXRlVGltZVByZWNpc2lvblwiO1xuY29uc3QgX0FEID0gXCJBdHRyaWJ1dGVEZWZpbml0aW9uXCI7XG5jb25zdCBfQURUID0gXCJBcmNoaXZhbERhdGVUaW1lXCI7XG5jb25zdCBfQUR0ID0gXCJBdHRyaWJ1dGVEZWZpbml0aW9uc1wiO1xuY29uc3QgX0FNID0gXCJBdHRyaWJ1dGVNYXBcIjtcbmNvbnN0IF9BTVJDVSA9IFwiQWNjb3VudE1heFJlYWRDYXBhY2l0eVVuaXRzXCI7XG5jb25zdCBfQU1XQ1UgPSBcIkFjY291bnRNYXhXcml0ZUNhcGFjaXR5VW5pdHNcIjtcbmNvbnN0IF9BTiA9IFwiQXR0cmlidXRlTmFtZVwiO1xuY29uc3QgX0FSID0gXCJBcmNoaXZhbFJlYXNvblwiO1xuY29uc3QgX0FTID0gXCJBcmNoaXZhbFN1bW1hcnlcIjtcbmNvbnN0IF9BU0QgPSBcIkF1dG9TY2FsaW5nRGlzYWJsZWRcIjtcbmNvbnN0IF9BU1BEID0gXCJBdXRvU2NhbGluZ1BvbGljeURlc2NyaXB0aW9uXCI7XG5jb25zdCBfQVNQREwgPSBcIkF1dG9TY2FsaW5nUG9saWN5RGVzY3JpcHRpb25MaXN0XCI7XG5jb25zdCBfQVNQVSA9IFwiQXV0b1NjYWxpbmdQb2xpY3lVcGRhdGVcIjtcbmNvbnN0IF9BU1JBID0gXCJBdXRvU2NhbGluZ1JvbGVBcm5cIjtcbmNvbnN0IF9BU1NEID0gXCJBdXRvU2NhbGluZ1NldHRpbmdzRGVzY3JpcHRpb25cIjtcbmNvbnN0IF9BU1NVID0gXCJBdXRvU2NhbGluZ1NldHRpbmdzVXBkYXRlXCI7XG5jb25zdCBfQVNUVFNQQ0QgPSBcIkF1dG9TY2FsaW5nVGFyZ2V0VHJhY2tpbmdTY2FsaW5nUG9saWN5Q29uZmlndXJhdGlvbkRlc2NyaXB0aW9uXCI7XG5jb25zdCBfQVNUVFNQQ1UgPSBcIkF1dG9TY2FsaW5nVGFyZ2V0VHJhY2tpbmdTY2FsaW5nUG9saWN5Q29uZmlndXJhdGlvblVwZGF0ZVwiO1xuY29uc3QgX0FUID0gXCJBdHRyaWJ1dGVUeXBlXCI7XG5jb25zdCBfQVRHID0gXCJBdHRyaWJ1dGVzVG9HZXRcIjtcbmNvbnN0IF9BVSA9IFwiQXR0cmlidXRlVXBkYXRlc1wiO1xuY29uc3QgX0FWID0gXCJBdHRyaWJ1dGVWYWx1ZVwiO1xuY29uc3QgX0FWTCA9IFwiQXR0cmlidXRlVmFsdWVMaXN0XCI7XG5jb25zdCBfQVZVID0gXCJBdHRyaWJ1dGVWYWx1ZVVwZGF0ZVwiO1xuY29uc3QgX0FkID0gXCJBZGRyZXNzXCI7XG5jb25zdCBfQXQgPSBcIkF0dHJpYnV0ZXNcIjtcbmNvbnN0IF9CID0gXCJCYWNrZmlsbGluZ1wiO1xuY29uc3QgX0JBID0gXCJCYWNrdXBBcm5cIjtcbmNvbnN0IF9CQ0RUID0gXCJCYWNrdXBDcmVhdGlvbkRhdGVUaW1lXCI7XG5jb25zdCBfQkQgPSBcIkJhY2t1cERlc2NyaXB0aW9uXCI7XG5jb25zdCBfQkRhID0gXCJCYWNrdXBEZXRhaWxzXCI7XG5jb25zdCBfQkVEVCA9IFwiQmFja3VwRXhwaXJ5RGF0ZVRpbWVcIjtcbmNvbnN0IF9CRVMgPSBcIkJhdGNoRXhlY3V0ZVN0YXRlbWVudFwiO1xuY29uc3QgX0JFU0kgPSBcIkJhdGNoRXhlY3V0ZVN0YXRlbWVudElucHV0XCI7XG5jb25zdCBfQkVTTyA9IFwiQmF0Y2hFeGVjdXRlU3RhdGVtZW50T3V0cHV0XCI7XG5jb25zdCBfQkdJID0gXCJCYXRjaEdldEl0ZW1cIjtcbmNvbnN0IF9CR0lJID0gXCJCYXRjaEdldEl0ZW1JbnB1dFwiO1xuY29uc3QgX0JHSU8gPSBcIkJhdGNoR2V0SXRlbU91dHB1dFwiO1xuY29uc3QgX0JHUk0gPSBcIkJhdGNoR2V0UmVzcG9uc2VNYXBcIjtcbmNvbnN0IF9CR1JNYSA9IFwiQmF0Y2hHZXRSZXF1ZXN0TWFwXCI7XG5jb25zdCBfQklVRSA9IFwiQmFja3VwSW5Vc2VFeGNlcHRpb25cIjtcbmNvbnN0IF9CTSA9IFwiQmlsbGluZ01vZGVcIjtcbmNvbnN0IF9CTU8gPSBcIkJpbGxpbmdNb2RlT3ZlcnJpZGVcIjtcbmNvbnN0IF9CTVMgPSBcIkJpbGxpbmdNb2RlU3VtbWFyeVwiO1xuY29uc3QgX0JOID0gXCJCYWNrdXBOYW1lXCI7XG5jb25zdCBfQk5GRSA9IFwiQmFja3VwTm90Rm91bmRFeGNlcHRpb25cIjtcbmNvbnN0IF9CT09MID0gXCJCT09MXCI7XG5jb25zdCBfQlMgPSBcIkJhY2t1cFN0YXR1c1wiO1xuY29uc3QgX0JTQiA9IFwiQmFja3VwU2l6ZUJ5dGVzXCI7XG5jb25zdCBfQlNCaSA9IFwiQmlsbGVkU2l6ZUJ5dGVzXCI7XG5jb25zdCBfQlNFID0gXCJCYXRjaFN0YXRlbWVudEVycm9yXCI7XG5jb25zdCBfQlNSID0gXCJCYXRjaFN0YXRlbWVudFJlcXVlc3RcIjtcbmNvbnN0IF9CU1JhID0gXCJCYXRjaFN0YXRlbWVudFJlc3BvbnNlXCI7XG5jb25zdCBfQlNfID0gXCJCU1wiO1xuY29uc3QgX0JTYSA9IFwiQmFja3VwU3VtbWFyeVwiO1xuY29uc3QgX0JTYWMgPSBcIkJhY2t1cFN1bW1hcmllc1wiO1xuY29uc3QgX0JUID0gXCJCYWNrdXBUeXBlXCI7XG5jb25zdCBfQldJID0gXCJCYXRjaFdyaXRlSXRlbVwiO1xuY29uc3QgX0JXSUkgPSBcIkJhdGNoV3JpdGVJdGVtSW5wdXRcIjtcbmNvbnN0IF9CV0lPID0gXCJCYXRjaFdyaXRlSXRlbU91dHB1dFwiO1xuY29uc3QgX0JXSVJNID0gXCJCYXRjaFdyaXRlSXRlbVJlcXVlc3RNYXBcIjtcbmNvbnN0IF9CXyA9IFwiQlwiO1xuY29uc3QgX0MgPSBcIkNvZGVcIjtcbmNvbnN0IF9DQiA9IFwiQ3JlYXRlQmFja3VwXCI7XG5jb25zdCBfQ0JEID0gXCJDb250aW51b3VzQmFja3Vwc0Rlc2NyaXB0aW9uXCI7XG5jb25zdCBfQ0JJID0gXCJDcmVhdGVCYWNrdXBJbnB1dFwiO1xuY29uc3QgX0NCTyA9IFwiQ3JlYXRlQmFja3VwT3V0cHV0XCI7XG5jb25zdCBfQ0JTID0gXCJDb250aW51b3VzQmFja3Vwc1N0YXR1c1wiO1xuY29uc3QgX0NCVUUgPSBcIkNvbnRpbnVvdXNCYWNrdXBzVW5hdmFpbGFibGVFeGNlcHRpb25cIjtcbmNvbnN0IF9DQyA9IFwiQ29uc3VtZWRDYXBhY2l0eVwiO1xuY29uc3QgX0NDRkUgPSBcIkNvbmRpdGlvbmFsQ2hlY2tGYWlsZWRFeGNlcHRpb25cIjtcbmNvbnN0IF9DQ00gPSBcIkNvbnN1bWVkQ2FwYWNpdHlNdWx0aXBsZVwiO1xuY29uc3QgX0NDbyA9IFwiQ29uZGl0aW9uQ2hlY2tcIjtcbmNvbnN0IF9DRFQgPSBcIkNyZWF0aW9uRGF0ZVRpbWVcIjtcbmNvbnN0IF9DRSA9IFwiQ29uZGl0aW9uRXhwcmVzc2lvblwiO1xuY29uc3QgX0NHU0lBID0gXCJDcmVhdGVHbG9iYWxTZWNvbmRhcnlJbmRleEFjdGlvblwiO1xuY29uc3QgX0NHVCA9IFwiQ3JlYXRlR2xvYmFsVGFibGVcIjtcbmNvbnN0IF9DR1RJID0gXCJDcmVhdGVHbG9iYWxUYWJsZUlucHV0XCI7XG5jb25zdCBfQ0dUTyA9IFwiQ3JlYXRlR2xvYmFsVGFibGVPdXRwdXRcIjtcbmNvbnN0IF9DR1RXR01BID0gXCJDcmVhdGVHbG9iYWxUYWJsZVdpdG5lc3NHcm91cE1lbWJlckFjdGlvblwiO1xuY29uc3QgX0NJQSA9IFwiQ29udHJpYnV0b3JJbnNpZ2h0c0FjdGlvblwiO1xuY29uc3QgX0NJTSA9IFwiQ29udHJpYnV0b3JJbnNpZ2h0c01vZGVcIjtcbmNvbnN0IF9DSVJMID0gXCJDb250cmlidXRvckluc2lnaHRzUnVsZUxpc3RcIjtcbmNvbnN0IF9DSVMgPSBcIkNvbnRyaWJ1dG9ySW5zaWdodHNTdW1tYXJ5XCI7XG5jb25zdCBfQ0lTbyA9IFwiQ29udHJpYnV0b3JJbnNpZ2h0c1N0YXR1c1wiO1xuY29uc3QgX0NJU29uID0gXCJDb250cmlidXRvckluc2lnaHRzU3VtbWFyaWVzXCI7XG5jb25zdCBfQ08gPSBcIkNvbXBhcmlzb25PcGVyYXRvclwiO1xuY29uc3QgX0NPbyA9IFwiQ29uZGl0aW9uYWxPcGVyYXRvclwiO1xuY29uc3QgX0NPcyA9IFwiQ3N2T3B0aW9uc1wiO1xuY29uc3QgX0NQSU0gPSBcIkNhY2hlUGVyaW9kSW5NaW51dGVzXCI7XG5jb25zdCBfQ1IgPSBcIkNvbnNpc3RlbnRSZWFkXCI7XG5jb25zdCBfQ1JBID0gXCJDcmVhdGVSZXBsaWNhQWN0aW9uXCI7XG5jb25zdCBfQ1JHTUEgPSBcIkNyZWF0ZVJlcGxpY2F0aW9uR3JvdXBNZW1iZXJBY3Rpb25cIjtcbmNvbnN0IF9DUkwgPSBcIkNhbmNlbGxhdGlvblJlYXNvbkxpc3RcIjtcbmNvbnN0IF9DUlNSQSA9IFwiQ29uZmlybVJlbW92ZVNlbGZSZXNvdXJjZUFjY2Vzc1wiO1xuY29uc3QgX0NSVCA9IFwiQ2xpZW50UmVxdWVzdFRva2VuXCI7XG5jb25zdCBfQ1JhID0gXCJDYW5jZWxsYXRpb25SZWFzb25cIjtcbmNvbnN0IF9DUmFuID0gXCJDYW5jZWxsYXRpb25SZWFzb25zXCI7XG5jb25zdCBfQ1QgPSBcIkNsaWVudFRva2VuXCI7XG5jb25zdCBfQ1RJID0gXCJDcmVhdGVUYWJsZUlucHV0XCI7XG5jb25zdCBfQ1RPID0gXCJDcmVhdGVUYWJsZU91dHB1dFwiO1xuY29uc3QgX0NUciA9IFwiQ3JlYXRlVGFibGVcIjtcbmNvbnN0IF9DVSA9IFwiQ2FwYWNpdHlVbml0c1wiO1xuY29uc3QgX0NXTEdBID0gXCJDbG91ZFdhdGNoTG9nR3JvdXBBcm5cIjtcbmNvbnN0IF9DYSA9IFwiQ2FwYWNpdHlcIjtcbmNvbnN0IF9DbyA9IFwiQ29uZGl0aW9uXCI7XG5jb25zdCBfQ291ID0gXCJDb3VudFwiO1xuY29uc3QgX0NyID0gXCJDcmVhdGVcIjtcbmNvbnN0IF9DcyA9IFwiQ3N2XCI7XG5jb25zdCBfRCA9IFwiRGVsaW1pdGVyXCI7XG5jb25zdCBfREIgPSBcIkRlbGV0ZUJhY2t1cFwiO1xuY29uc3QgX0RCSSA9IFwiRGVsZXRlQmFja3VwSW5wdXRcIjtcbmNvbnN0IF9EQkllID0gXCJEZXNjcmliZUJhY2t1cElucHV0XCI7XG5jb25zdCBfREJPID0gXCJEZWxldGVCYWNrdXBPdXRwdXRcIjtcbmNvbnN0IF9EQk9lID0gXCJEZXNjcmliZUJhY2t1cE91dHB1dFwiO1xuY29uc3QgX0RCZSA9IFwiRGVzY3JpYmVCYWNrdXBcIjtcbmNvbnN0IF9EQ0IgPSBcIkRlc2NyaWJlQ29udGludW91c0JhY2t1cHNcIjtcbmNvbnN0IF9EQ0JJID0gXCJEZXNjcmliZUNvbnRpbnVvdXNCYWNrdXBzSW5wdXRcIjtcbmNvbnN0IF9EQ0JPID0gXCJEZXNjcmliZUNvbnRpbnVvdXNCYWNrdXBzT3V0cHV0XCI7XG5jb25zdCBfRENJID0gXCJEZXNjcmliZUNvbnRyaWJ1dG9ySW5zaWdodHNcIjtcbmNvbnN0IF9EQ0lJID0gXCJEZXNjcmliZUNvbnRyaWJ1dG9ySW5zaWdodHNJbnB1dFwiO1xuY29uc3QgX0RDSU8gPSBcIkRlc2NyaWJlQ29udHJpYnV0b3JJbnNpZ2h0c091dHB1dFwiO1xuY29uc3QgX0RFID0gXCJEZXNjcmliZUVuZHBvaW50c1wiO1xuY29uc3QgX0RFSSA9IFwiRGVzY3JpYmVFeHBvcnRJbnB1dFwiO1xuY29uc3QgX0RFTyA9IFwiRGVzY3JpYmVFeHBvcnRPdXRwdXRcIjtcbmNvbnN0IF9ERVIgPSBcIkRlc2NyaWJlRW5kcG9pbnRzUmVxdWVzdFwiO1xuY29uc3QgX0RFUmUgPSBcIkRlc2NyaWJlRW5kcG9pbnRzUmVzcG9uc2VcIjtcbmNvbnN0IF9ERWUgPSBcIkRlc2NyaWJlRXhwb3J0XCI7XG5jb25zdCBfREdTSUEgPSBcIkRlbGV0ZUdsb2JhbFNlY29uZGFyeUluZGV4QWN0aW9uXCI7XG5jb25zdCBfREdUID0gXCJEZXNjcmliZUdsb2JhbFRhYmxlXCI7XG5jb25zdCBfREdUSSA9IFwiRGVzY3JpYmVHbG9iYWxUYWJsZUlucHV0XCI7XG5jb25zdCBfREdUTyA9IFwiRGVzY3JpYmVHbG9iYWxUYWJsZU91dHB1dFwiO1xuY29uc3QgX0RHVFMgPSBcIkRlc2NyaWJlR2xvYmFsVGFibGVTZXR0aW5nc1wiO1xuY29uc3QgX0RHVFNJID0gXCJEZXNjcmliZUdsb2JhbFRhYmxlU2V0dGluZ3NJbnB1dFwiO1xuY29uc3QgX0RHVFNPID0gXCJEZXNjcmliZUdsb2JhbFRhYmxlU2V0dGluZ3NPdXRwdXRcIjtcbmNvbnN0IF9ER1RXR01BID0gXCJEZWxldGVHbG9iYWxUYWJsZVdpdG5lc3NHcm91cE1lbWJlckFjdGlvblwiO1xuY29uc3QgX0RJID0gXCJEZWxldGVJdGVtXCI7XG5jb25zdCBfRElFID0gXCJEdXBsaWNhdGVJdGVtRXhjZXB0aW9uXCI7XG5jb25zdCBfRElJID0gXCJEZWxldGVJdGVtSW5wdXRcIjtcbmNvbnN0IF9ESUllID0gXCJEZXNjcmliZUltcG9ydElucHV0XCI7XG5jb25zdCBfRElPID0gXCJEZWxldGVJdGVtT3V0cHV0XCI7XG5jb25zdCBfRElPZSA9IFwiRGVzY3JpYmVJbXBvcnRPdXRwdXRcIjtcbmNvbnN0IF9ESWUgPSBcIkRlc2NyaWJlSW1wb3J0XCI7XG5jb25zdCBfREtTRCA9IFwiRGVzY3JpYmVLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb25cIjtcbmNvbnN0IF9ES1NESSA9IFwiRGVzY3JpYmVLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb25JbnB1dFwiO1xuY29uc3QgX0RLU0RPID0gXCJEZXNjcmliZUtpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvbk91dHB1dFwiO1xuY29uc3QgX0RLU0RpID0gXCJEaXNhYmxlS2luZXNpc1N0cmVhbWluZ0Rlc3RpbmF0aW9uXCI7XG5jb25zdCBfREwgPSBcIkRlc2NyaWJlTGltaXRzXCI7XG5jb25zdCBfRExJID0gXCJEZXNjcmliZUxpbWl0c0lucHV0XCI7XG5jb25zdCBfRExPID0gXCJEZXNjcmliZUxpbWl0c091dHB1dFwiO1xuY29uc3QgX0RQRSA9IFwiRGVsZXRpb25Qcm90ZWN0aW9uRW5hYmxlZFwiO1xuY29uc3QgX0RSID0gXCJEZWxldGVSZXF1ZXN0XCI7XG5jb25zdCBfRFJBID0gXCJEZWxldGVSZXBsaWNhQWN0aW9uXCI7XG5jb25zdCBfRFJHTUEgPSBcIkRlbGV0ZVJlcGxpY2F0aW9uR3JvdXBNZW1iZXJBY3Rpb25cIjtcbmNvbnN0IF9EUlAgPSBcIkRlbGV0ZVJlc291cmNlUG9saWN5XCI7XG5jb25zdCBfRFJQSSA9IFwiRGVsZXRlUmVzb3VyY2VQb2xpY3lJbnB1dFwiO1xuY29uc3QgX0RSUE8gPSBcIkRlbGV0ZVJlc291cmNlUG9saWN5T3V0cHV0XCI7XG5jb25zdCBfRFMgPSBcIkRlc3RpbmF0aW9uU3RhdHVzXCI7XG5jb25zdCBfRFNEID0gXCJEZXN0aW5hdGlvblN0YXR1c0Rlc2NyaXB0aW9uXCI7XG5jb25zdCBfRFNJID0gXCJEaXNhYmxlU2NhbGVJblwiO1xuY29uc3QgX0RUID0gXCJEZWxldGVUYWJsZVwiO1xuY29uc3QgX0RUSSA9IFwiRGVsZXRlVGFibGVJbnB1dFwiO1xuY29uc3QgX0RUSWUgPSBcIkRlc2NyaWJlVGFibGVJbnB1dFwiO1xuY29uc3QgX0RUTyA9IFwiRGVsZXRlVGFibGVPdXRwdXRcIjtcbmNvbnN0IF9EVE9lID0gXCJEZXNjcmliZVRhYmxlT3V0cHV0XCI7XG5jb25zdCBfRFRSQVMgPSBcIkRlc2NyaWJlVGFibGVSZXBsaWNhQXV0b1NjYWxpbmdcIjtcbmNvbnN0IF9EVFJBU0kgPSBcIkRlc2NyaWJlVGFibGVSZXBsaWNhQXV0b1NjYWxpbmdJbnB1dFwiO1xuY29uc3QgX0RUUkFTTyA9IFwiRGVzY3JpYmVUYWJsZVJlcGxpY2FBdXRvU2NhbGluZ091dHB1dFwiO1xuY29uc3QgX0RUVEwgPSBcIkRlc2NyaWJlVGltZVRvTGl2ZVwiO1xuY29uc3QgX0RUVExJID0gXCJEZXNjcmliZVRpbWVUb0xpdmVJbnB1dFwiO1xuY29uc3QgX0RUVExPID0gXCJEZXNjcmliZVRpbWVUb0xpdmVPdXRwdXRcIjtcbmNvbnN0IF9EVGUgPSBcIkRlc2NyaWJlVGFibGVcIjtcbmNvbnN0IF9EZSA9IFwiRGVsZXRlXCI7XG5jb25zdCBfRSA9IFwiRXJyb3JcIjtcbmNvbnN0IF9FQSA9IFwiRXhwb3J0QXJuXCI7XG5jb25zdCBfRUFNID0gXCJFeHBlY3RlZEF0dHJpYnV0ZU1hcFwiO1xuY29uc3QgX0VBTiA9IFwiRXhwcmVzc2lvbkF0dHJpYnV0ZU5hbWVzXCI7XG5jb25zdCBfRUFWID0gXCJFeHByZXNzaW9uQXR0cmlidXRlVmFsdWVzXCI7XG5jb25zdCBfRUFWTSA9IFwiRXhwcmVzc2lvbkF0dHJpYnV0ZVZhbHVlTWFwXCI7XG5jb25zdCBfRUFWeCA9IFwiRXhwZWN0ZWRBdHRyaWJ1dGVWYWx1ZVwiO1xuY29uc3QgX0VDID0gXCJFcnJvckNvdW50XCI7XG5jb25zdCBfRUNFID0gXCJFeHBvcnRDb25mbGljdEV4Y2VwdGlvblwiO1xuY29uc3QgX0VEID0gXCJFeHBvcnREZXNjcmlwdGlvblwiO1xuY29uc3QgX0VEeCA9IFwiRXhjZXB0aW9uRGVzY3JpcHRpb25cIjtcbmNvbnN0IF9FRiA9IFwiRXhwb3J0Rm9ybWF0XCI7XG5jb25zdCBfRUZUID0gXCJFeHBvcnRGcm9tVGltZVwiO1xuY29uc3QgX0VLU0MgPSBcIkVuYWJsZUtpbmVzaXNTdHJlYW1pbmdDb25maWd1cmF0aW9uXCI7XG5jb25zdCBfRUtTRCA9IFwiRW5hYmxlS2luZXNpc1N0cmVhbWluZ0Rlc3RpbmF0aW9uXCI7XG5jb25zdCBfRU0gPSBcIkV4cG9ydE1hbmlmZXN0XCI7XG5jb25zdCBfRU4gPSBcIkV4Y2VwdGlvbk5hbWVcIjtcbmNvbnN0IF9FTkZFID0gXCJFeHBvcnROb3RGb3VuZEV4Y2VwdGlvblwiO1xuY29uc3QgX0VSRFQgPSBcIkVhcmxpZXN0UmVzdG9yYWJsZURhdGVUaW1lXCI7XG5jb25zdCBfRVJJID0gXCJFeHBlY3RlZFJldmlzaW9uSWRcIjtcbmNvbnN0IF9FUyA9IFwiRXhwb3J0U3RhdHVzXCI7XG5jb25zdCBfRVNCQSA9IFwiRXhjbHVzaXZlU3RhcnRCYWNrdXBBcm5cIjtcbmNvbnN0IF9FU0dUTiA9IFwiRXhjbHVzaXZlU3RhcnRHbG9iYWxUYWJsZU5hbWVcIjtcbmNvbnN0IF9FU0kgPSBcIkV4ZWN1dGVTdGF0ZW1lbnRJbnB1dFwiO1xuY29uc3QgX0VTSyA9IFwiRXhjbHVzaXZlU3RhcnRLZXlcIjtcbmNvbnN0IF9FU08gPSBcIkV4ZWN1dGVTdGF0ZW1lbnRPdXRwdXRcIjtcbmNvbnN0IF9FU1ROID0gXCJFeGNsdXNpdmVTdGFydFRhYmxlTmFtZVwiO1xuY29uc3QgX0VTeCA9IFwiRXhwb3J0U3VtbWFyeVwiO1xuY29uc3QgX0VTeGUgPSBcIkV4ZWN1dGVTdGF0ZW1lbnRcIjtcbmNvbnN0IF9FU3hwID0gXCJFeHBvcnRTdW1tYXJpZXNcIjtcbmNvbnN0IF9FVCA9IFwiRW5kVGltZVwiO1xuY29uc3QgX0VUSSA9IFwiRXhlY3V0ZVRyYW5zYWN0aW9uSW5wdXRcIjtcbmNvbnN0IF9FVE8gPSBcIkV4ZWN1dGVUcmFuc2FjdGlvbk91dHB1dFwiO1xuY29uc3QgX0VUVCA9IFwiRXhwb3J0VG9UaW1lXCI7XG5jb25zdCBfRVRUUElUID0gXCJFeHBvcnRUYWJsZVRvUG9pbnRJblRpbWVcIjtcbmNvbnN0IF9FVFRQSVRJID0gXCJFeHBvcnRUYWJsZVRvUG9pbnRJblRpbWVJbnB1dFwiO1xuY29uc3QgX0VUVFBJVE8gPSBcIkV4cG9ydFRhYmxlVG9Qb2ludEluVGltZU91dHB1dFwiO1xuY29uc3QgX0VUeCA9IFwiRXhwb3J0VGltZVwiO1xuY29uc3QgX0VUeGUgPSBcIkV4ZWN1dGVUcmFuc2FjdGlvblwiO1xuY29uc3QgX0VUeHAgPSBcIkV4cG9ydFR5cGVcIjtcbmNvbnN0IF9FVlQgPSBcIkV4cG9ydFZpZXdUeXBlXCI7XG5jb25zdCBfRW4gPSBcIkVuZHBvaW50c1wiO1xuY29uc3QgX0VuYSA9IFwiRW5hYmxlZFwiO1xuY29uc3QgX0VuZCA9IFwiRW5kcG9pbnRcIjtcbmNvbnN0IF9FeCA9IFwiRXhwZWN0ZWRcIjtcbmNvbnN0IF9FeGkgPSBcIkV4aXN0c1wiO1xuY29uc3QgX0ZDID0gXCJGYWlsdXJlQ29kZVwiO1xuY29uc3QgX0ZDTSA9IFwiRmlsdGVyQ29uZGl0aW9uTWFwXCI7XG5jb25zdCBfRkUgPSBcIkZhaWx1cmVFeGNlcHRpb25cIjtcbmNvbnN0IF9GRWkgPSBcIkZpbHRlckV4cHJlc3Npb25cIjtcbmNvbnN0IF9GTSA9IFwiRmFpbHVyZU1lc3NhZ2VcIjtcbmNvbnN0IF9HID0gXCJHZXRcIjtcbmNvbnN0IF9HSSA9IFwiR2V0SXRlbVwiO1xuY29uc3QgX0dJSSA9IFwiR2V0SXRlbUlucHV0XCI7XG5jb25zdCBfR0lPID0gXCJHZXRJdGVtT3V0cHV0XCI7XG5jb25zdCBfR1JQID0gXCJHZXRSZXNvdXJjZVBvbGljeVwiO1xuY29uc3QgX0dSUEkgPSBcIkdldFJlc291cmNlUG9saWN5SW5wdXRcIjtcbmNvbnN0IF9HUlBPID0gXCJHZXRSZXNvdXJjZVBvbGljeU91dHB1dFwiO1xuY29uc3QgX0dTSSA9IFwiR2xvYmFsU2Vjb25kYXJ5SW5kZXhlc1wiO1xuY29uc3QgX0dTSUFTVSA9IFwiR2xvYmFsU2Vjb25kYXJ5SW5kZXhBdXRvU2NhbGluZ1VwZGF0ZVwiO1xuY29uc3QgX0dTSUFTVUwgPSBcIkdsb2JhbFNlY29uZGFyeUluZGV4QXV0b1NjYWxpbmdVcGRhdGVMaXN0XCI7XG5jb25zdCBfR1NJRCA9IFwiR2xvYmFsU2Vjb25kYXJ5SW5kZXhEZXNjcmlwdGlvblwiO1xuY29uc3QgX0dTSURMID0gXCJHbG9iYWxTZWNvbmRhcnlJbmRleERlc2NyaXB0aW9uTGlzdFwiO1xuY29uc3QgX0dTSUkgPSBcIkdsb2JhbFNlY29uZGFyeUluZGV4SW5mb1wiO1xuY29uc3QgX0dTSUwgPSBcIkdsb2JhbFNlY29uZGFyeUluZGV4TGlzdFwiO1xuY29uc3QgX0dTSU8gPSBcIkdsb2JhbFNlY29uZGFyeUluZGV4T3ZlcnJpZGVcIjtcbmNvbnN0IF9HU0lVID0gXCJHbG9iYWxTZWNvbmRhcnlJbmRleFVwZGF0ZVwiO1xuY29uc3QgX0dTSVVMID0gXCJHbG9iYWxTZWNvbmRhcnlJbmRleFVwZGF0ZUxpc3RcIjtcbmNvbnN0IF9HU0lVbCA9IFwiR2xvYmFsU2Vjb25kYXJ5SW5kZXhVcGRhdGVzXCI7XG5jb25zdCBfR1NJV1REID0gXCJHbG9iYWxTZWNvbmRhcnlJbmRleFdhcm1UaHJvdWdocHV0RGVzY3JpcHRpb25cIjtcbmNvbnN0IF9HU0lsID0gXCJHbG9iYWxTZWNvbmRhcnlJbmRleFwiO1xuY29uc3QgX0dUID0gXCJHbG9iYWxUYWJsZVwiO1xuY29uc3QgX0dUQSA9IFwiR2xvYmFsVGFibGVBcm5cIjtcbmNvbnN0IF9HVEFFRSA9IFwiR2xvYmFsVGFibGVBbHJlYWR5RXhpc3RzRXhjZXB0aW9uXCI7XG5jb25zdCBfR1RCTSA9IFwiR2xvYmFsVGFibGVCaWxsaW5nTW9kZVwiO1xuY29uc3QgX0dURCA9IFwiR2xvYmFsVGFibGVEZXNjcmlwdGlvblwiO1xuY29uc3QgX0dUR1NJU1UgPSBcIkdsb2JhbFRhYmxlR2xvYmFsU2Vjb25kYXJ5SW5kZXhTZXR0aW5nc1VwZGF0ZVwiO1xuY29uc3QgX0dUR1NJU1VMID0gXCJHbG9iYWxUYWJsZUdsb2JhbFNlY29uZGFyeUluZGV4U2V0dGluZ3NVcGRhdGVMaXN0XCI7XG5jb25zdCBfR1RMID0gXCJHbG9iYWxUYWJsZUxpc3RcIjtcbmNvbnN0IF9HVE4gPSBcIkdsb2JhbFRhYmxlTmFtZVwiO1xuY29uc3QgX0dUTkZFID0gXCJHbG9iYWxUYWJsZU5vdEZvdW5kRXhjZXB0aW9uXCI7XG5jb25zdCBfR1RQV0NBU1NVID0gXCJHbG9iYWxUYWJsZVByb3Zpc2lvbmVkV3JpdGVDYXBhY2l0eUF1dG9TY2FsaW5nU2V0dGluZ3NVcGRhdGVcIjtcbmNvbnN0IF9HVFBXQ1UgPSBcIkdsb2JhbFRhYmxlUHJvdmlzaW9uZWRXcml0ZUNhcGFjaXR5VW5pdHNcIjtcbmNvbnN0IF9HVFMgPSBcIkdsb2JhbFRhYmxlU3RhdHVzXCI7XG5jb25zdCBfR1RWID0gXCJHbG9iYWxUYWJsZVZlcnNpb25cIjtcbmNvbnN0IF9HVFcgPSBcIkdsb2JhbFRhYmxlV2l0bmVzc2VzXCI7XG5jb25zdCBfR1RXRCA9IFwiR2xvYmFsVGFibGVXaXRuZXNzRGVzY3JpcHRpb25cIjtcbmNvbnN0IF9HVFdETCA9IFwiR2xvYmFsVGFibGVXaXRuZXNzRGVzY3JpcHRpb25MaXN0XCI7XG5jb25zdCBfR1RXR1UgPSBcIkdsb2JhbFRhYmxlV2l0bmVzc0dyb3VwVXBkYXRlXCI7XG5jb25zdCBfR1RXR1VMID0gXCJHbG9iYWxUYWJsZVdpdG5lc3NHcm91cFVwZGF0ZUxpc3RcIjtcbmNvbnN0IF9HVFdVID0gXCJHbG9iYWxUYWJsZVdpdG5lc3NVcGRhdGVzXCI7XG5jb25zdCBfR1RsID0gXCJHbG9iYWxUYWJsZXNcIjtcbmNvbnN0IF9ITCA9IFwiSGVhZGVyTGlzdFwiO1xuY29uc3QgX0kgPSBcIkl0ZW1cIjtcbmNvbnN0IF9JQSA9IFwiSW1wb3J0QXJuXCI7XG5jb25zdCBfSUFuID0gXCJJbmRleEFyblwiO1xuY29uc3QgX0lDID0gXCJJdGVtQ291bnRcIjtcbmNvbnN0IF9JQ0UgPSBcIkltcG9ydENvbmZsaWN0RXhjZXB0aW9uXCI7XG5jb25zdCBfSUNLID0gXCJJdGVtQ29sbGVjdGlvbktleVwiO1xuY29uc3QgX0lDS0FNID0gXCJJdGVtQ29sbGVjdGlvbktleUF0dHJpYnV0ZU1hcFwiO1xuY29uc3QgX0lDTSA9IFwiSXRlbUNvbGxlY3Rpb25NZXRyaWNzXCI7XG5jb25zdCBfSUNNTSA9IFwiSXRlbUNvbGxlY3Rpb25NZXRyaWNzTXVsdGlwbGVcIjtcbmNvbnN0IF9JQ01QVCA9IFwiSXRlbUNvbGxlY3Rpb25NZXRyaWNzUGVyVGFibGVcIjtcbmNvbnN0IF9JQ1NMRUUgPSBcIkl0ZW1Db2xsZWN0aW9uU2l6ZUxpbWl0RXhjZWVkZWRFeGNlcHRpb25cIjtcbmNvbnN0IF9JQ1QgPSBcIklucHV0Q29tcHJlc3Npb25UeXBlXCI7XG5jb25zdCBfSUVEVCA9IFwiSW5hY2Nlc3NpYmxlRW5jcnlwdGlvbkRhdGVUaW1lXCI7XG5jb25zdCBfSUVFID0gXCJJbnZhbGlkRW5kcG9pbnRFeGNlcHRpb25cIjtcbmNvbnN0IF9JRVMgPSBcIkluY3JlbWVudGFsRXhwb3J0U3BlY2lmaWNhdGlvblwiO1xuY29uc3QgX0lFVEUgPSBcIkludmFsaWRFeHBvcnRUaW1lRXhjZXB0aW9uXCI7XG5jb25zdCBfSUYgPSBcIklucHV0Rm9ybWF0XCI7XG5jb25zdCBfSUZPID0gXCJJbnB1dEZvcm1hdE9wdGlvbnNcIjtcbmNvbnN0IF9JSUMgPSBcIkltcG9ydGVkSXRlbUNvdW50XCI7XG5jb25zdCBfSUwgPSBcIkl0ZW1MaXN0XCI7XG5jb25zdCBfSU4gPSBcIkluZGV4TmFtZVwiO1xuY29uc3QgX0lORkUgPSBcIkltcG9ydE5vdEZvdW5kRXhjZXB0aW9uXCI7XG5jb25zdCBfSU5GRW4gPSBcIkluZGV4Tm90Rm91bmRFeGNlcHRpb25cIjtcbmNvbnN0IF9JUE1FID0gXCJJZGVtcG90ZW50UGFyYW1ldGVyTWlzbWF0Y2hFeGNlcHRpb25cIjtcbmNvbnN0IF9JUiA9IFwiSXRlbVJlc3BvbnNlXCI7XG5jb25zdCBfSVJMID0gXCJJdGVtUmVzcG9uc2VMaXN0XCI7XG5jb25zdCBfSVJURSA9IFwiSW52YWxpZFJlc3RvcmVUaW1lRXhjZXB0aW9uXCI7XG5jb25zdCBfSVMgPSBcIkluZGV4U3RhdHVzXCI7XG5jb25zdCBfSVNCID0gXCJJbmRleFNpemVCeXRlc1wiO1xuY29uc3QgX0lTRSA9IFwiSW50ZXJuYWxTZXJ2ZXJFcnJvclwiO1xuY29uc3QgX0lTTCA9IFwiSW1wb3J0U3VtbWFyeUxpc3RcIjtcbmNvbnN0IF9JU20gPSBcIkltcG9ydFN1bW1hcnlcIjtcbmNvbnN0IF9JU21wID0gXCJJbXBvcnRTdGF0dXNcIjtcbmNvbnN0IF9JVCA9IFwiSW1wb3J0VGFibGVcIjtcbmNvbnN0IF9JVEQgPSBcIkltcG9ydFRhYmxlRGVzY3JpcHRpb25cIjtcbmNvbnN0IF9JVEkgPSBcIkltcG9ydFRhYmxlSW5wdXRcIjtcbmNvbnN0IF9JVE8gPSBcIkltcG9ydFRhYmxlT3V0cHV0XCI7XG5jb25zdCBfSXQgPSBcIkl0ZW1zXCI7XG5jb25zdCBfSyA9IFwiS2V5XCI7XG5jb25zdCBfS0FBID0gXCJLZXlzQW5kQXR0cmlidXRlc1wiO1xuY29uc3QgX0tDID0gXCJLZXlDb25kaXRpb25zXCI7XG5jb25zdCBfS0NFID0gXCJLZXlDb25kaXRpb25FeHByZXNzaW9uXCI7XG5jb25zdCBfS0RTRCA9IFwiS2luZXNpc0RhdGFTdHJlYW1EZXN0aW5hdGlvbnNcIjtcbmNvbnN0IF9LRFNEaSA9IFwiS2luZXNpc0RhdGFTdHJlYW1EZXN0aW5hdGlvblwiO1xuY29uc3QgX0tMID0gXCJLZXlMaXN0XCI7XG5jb25zdCBfS01TTUtBID0gXCJLTVNNYXN0ZXJLZXlBcm5cIjtcbmNvbnN0IF9LTVNNS0kgPSBcIktNU01hc3RlcktleUlkXCI7XG5jb25zdCBfS1MgPSBcIktleVNjaGVtYVwiO1xuY29uc3QgX0tTREkgPSBcIktpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvbklucHV0XCI7XG5jb25zdCBfS1NETyA9IFwiS2luZXNpc1N0cmVhbWluZ0Rlc3RpbmF0aW9uT3V0cHV0XCI7XG5jb25zdCBfS1NFID0gXCJLZXlTY2hlbWFFbGVtZW50XCI7XG5jb25zdCBfS1QgPSBcIktleVR5cGVcIjtcbmNvbnN0IF9LZSA9IFwiS2V5c1wiO1xuY29uc3QgX0wgPSBcIkxpbWl0XCI7XG5jb25zdCBfTEFWID0gXCJMaXN0QXR0cmlidXRlVmFsdWVcIjtcbmNvbnN0IF9MQiA9IFwiTGlzdEJhY2t1cHNcIjtcbmNvbnN0IF9MQkkgPSBcIkxpc3RCYWNrdXBzSW5wdXRcIjtcbmNvbnN0IF9MQk8gPSBcIkxpc3RCYWNrdXBzT3V0cHV0XCI7XG5jb25zdCBfTENJID0gXCJMaXN0Q29udHJpYnV0b3JJbnNpZ2h0c1wiO1xuY29uc3QgX0xDSUkgPSBcIkxpc3RDb250cmlidXRvckluc2lnaHRzSW5wdXRcIjtcbmNvbnN0IF9MQ0lPID0gXCJMaXN0Q29udHJpYnV0b3JJbnNpZ2h0c091dHB1dFwiO1xuY29uc3QgX0xERFQgPSBcIkxhc3REZWNyZWFzZURhdGVUaW1lXCI7XG5jb25zdCBfTEUgPSBcIkxpc3RFeHBvcnRzXCI7XG5jb25zdCBfTEVCQSA9IFwiTGFzdEV2YWx1YXRlZEJhY2t1cEFyblwiO1xuY29uc3QgX0xFRSA9IFwiTGltaXRFeGNlZWRlZEV4Y2VwdGlvblwiO1xuY29uc3QgX0xFR1ROID0gXCJMYXN0RXZhbHVhdGVkR2xvYmFsVGFibGVOYW1lXCI7XG5jb25zdCBfTEVJID0gXCJMaXN0RXhwb3J0c0lucHV0XCI7XG5jb25zdCBfTEVLID0gXCJMYXN0RXZhbHVhdGVkS2V5XCI7XG5jb25zdCBfTEVPID0gXCJMaXN0RXhwb3J0c091dHB1dFwiO1xuY29uc3QgX0xFVE4gPSBcIkxhc3RFdmFsdWF0ZWRUYWJsZU5hbWVcIjtcbmNvbnN0IF9MR1QgPSBcIkxpc3RHbG9iYWxUYWJsZXNcIjtcbmNvbnN0IF9MR1RJID0gXCJMaXN0R2xvYmFsVGFibGVzSW5wdXRcIjtcbmNvbnN0IF9MR1RPID0gXCJMaXN0R2xvYmFsVGFibGVzT3V0cHV0XCI7XG5jb25zdCBfTEkgPSBcIkxpc3RJbXBvcnRzXCI7XG5jb25zdCBfTElEVCA9IFwiTGFzdEluY3JlYXNlRGF0ZVRpbWVcIjtcbmNvbnN0IF9MSUkgPSBcIkxpc3RJbXBvcnRzSW5wdXRcIjtcbmNvbnN0IF9MSU8gPSBcIkxpc3RJbXBvcnRzT3V0cHV0XCI7XG5jb25zdCBfTFJEVCA9IFwiTGF0ZXN0UmVzdG9yYWJsZURhdGVUaW1lXCI7XG5jb25zdCBfTFNBID0gXCJMYXRlc3RTdHJlYW1Bcm5cIjtcbmNvbnN0IF9MU0kgPSBcIkxvY2FsU2Vjb25kYXJ5SW5kZXhlc1wiO1xuY29uc3QgX0xTSUQgPSBcIkxvY2FsU2Vjb25kYXJ5SW5kZXhEZXNjcmlwdGlvblwiO1xuY29uc3QgX0xTSURMID0gXCJMb2NhbFNlY29uZGFyeUluZGV4RGVzY3JpcHRpb25MaXN0XCI7XG5jb25zdCBfTFNJSSA9IFwiTG9jYWxTZWNvbmRhcnlJbmRleEluZm9cIjtcbmNvbnN0IF9MU0lMID0gXCJMb2NhbFNlY29uZGFyeUluZGV4TGlzdFwiO1xuY29uc3QgX0xTSU8gPSBcIkxvY2FsU2Vjb25kYXJ5SW5kZXhPdmVycmlkZVwiO1xuY29uc3QgX0xTSW8gPSBcIkxvY2FsU2Vjb25kYXJ5SW5kZXhcIjtcbmNvbnN0IF9MU0wgPSBcIkxhdGVzdFN0cmVhbUxhYmVsXCI7XG5jb25zdCBfTFQgPSBcIkxpc3RUYWJsZXNcIjtcbmNvbnN0IF9MVEkgPSBcIkxpc3RUYWJsZXNJbnB1dFwiO1xuY29uc3QgX0xUTyA9IFwiTGlzdFRhYmxlc091dHB1dFwiO1xuY29uc3QgX0xUT1IgPSBcIkxpc3RUYWdzT2ZSZXNvdXJjZVwiO1xuY29uc3QgX0xUT1JJID0gXCJMaXN0VGFnc09mUmVzb3VyY2VJbnB1dFwiO1xuY29uc3QgX0xUT1JPID0gXCJMaXN0VGFnc09mUmVzb3VyY2VPdXRwdXRcIjtcbmNvbnN0IF9MVURUID0gXCJMYXN0VXBkYXRlRGF0ZVRpbWVcIjtcbmNvbnN0IF9MVVRQUFJEVCA9IFwiTGFzdFVwZGF0ZVRvUGF5UGVyUmVxdWVzdERhdGVUaW1lXCI7XG5jb25zdCBfTF8gPSBcIkxcIjtcbmNvbnN0IF9NID0gXCJNZXNzYWdlXCI7XG5jb25zdCBfTUFWID0gXCJNYXBBdHRyaWJ1dGVWYWx1ZVwiO1xuY29uc3QgX01SID0gXCJNYXhSZXN1bHRzXCI7XG5jb25zdCBfTVJDID0gXCJNdWx0aVJlZ2lvbkNvbnNpc3RlbmN5XCI7XG5jb25zdCBfTVJSVSA9IFwiTWF4UmVhZFJlcXVlc3RVbml0c1wiO1xuY29uc3QgX01VID0gXCJNaW5pbXVtVW5pdHNcIjtcbmNvbnN0IF9NVWEgPSBcIk1heGltdW1Vbml0c1wiO1xuY29uc3QgX01XUlUgPSBcIk1heFdyaXRlUmVxdWVzdFVuaXRzXCI7XG5jb25zdCBfTV8gPSBcIk1cIjtcbmNvbnN0IF9OID0gXCJOXCI7XG5jb25zdCBfTktBID0gXCJOb25LZXlBdHRyaWJ1dGVzXCI7XG5jb25zdCBfTk9EVCA9IFwiTnVtYmVyT2ZEZWNyZWFzZXNUb2RheVwiO1xuY29uc3QgX05TID0gXCJOU1wiO1xuY29uc3QgX05UID0gXCJOZXh0VG9rZW5cIjtcbmNvbnN0IF9OVUxMID0gXCJOVUxMXCI7XG5jb25zdCBfT0RUID0gXCJPbkRlbWFuZFRocm91Z2hwdXRcIjtcbmNvbnN0IF9PRFRPID0gXCJPbkRlbWFuZFRocm91Z2hwdXRPdmVycmlkZVwiO1xuY29uc3QgX1AgPSBcIlBhcmFtZXRlcnNcIjtcbmNvbnN0IF9QRSA9IFwiUHJvamVjdGlvbkV4cHJlc3Npb25cIjtcbmNvbnN0IF9QSSA9IFwiUHV0SXRlbVwiO1xuY29uc3QgX1BJQyA9IFwiUHJvY2Vzc2VkSXRlbUNvdW50XCI7XG5jb25zdCBfUElJID0gXCJQdXRJdGVtSW5wdXRcIjtcbmNvbnN0IF9QSUlBTSA9IFwiUHV0SXRlbUlucHV0QXR0cmlidXRlTWFwXCI7XG5jb25zdCBfUElPID0gXCJQdXRJdGVtT3V0cHV0XCI7XG5jb25zdCBfUElUUkQgPSBcIlBvaW50SW5UaW1lUmVjb3ZlcnlEZXNjcmlwdGlvblwiO1xuY29uc3QgX1BJVFJFID0gXCJQb2ludEluVGltZVJlY292ZXJ5RW5hYmxlZFwiO1xuY29uc3QgX1BJVFJTID0gXCJQb2ludEluVGltZVJlY292ZXJ5U3RhdHVzXCI7XG5jb25zdCBfUElUUlNvID0gXCJQb2ludEluVGltZVJlY292ZXJ5U3BlY2lmaWNhdGlvblwiO1xuY29uc3QgX1BJVFJVRSA9IFwiUG9pbnRJblRpbWVSZWNvdmVyeVVuYXZhaWxhYmxlRXhjZXB0aW9uXCI7XG5jb25zdCBfUE4gPSBcIlBvbGljeU5hbWVcIjtcbmNvbnN0IF9QTkZFID0gXCJQb2xpY3lOb3RGb3VuZEV4Y2VwdGlvblwiO1xuY29uc3QgX1BRTEJSID0gXCJQYXJ0aVFMQmF0Y2hSZXF1ZXN0XCI7XG5jb25zdCBfUFFMQlJhID0gXCJQYXJ0aVFMQmF0Y2hSZXNwb25zZVwiO1xuY29uc3QgX1BSID0gXCJQdXRSZXF1ZXN0XCI7XG5jb25zdCBfUFJDQVNTID0gXCJQcm92aXNpb25lZFJlYWRDYXBhY2l0eUF1dG9TY2FsaW5nU2V0dGluZ3NcIjtcbmNvbnN0IF9QUkNBU1NVID0gXCJQcm92aXNpb25lZFJlYWRDYXBhY2l0eUF1dG9TY2FsaW5nU2V0dGluZ3NVcGRhdGVcIjtcbmNvbnN0IF9QUkNBU1UgPSBcIlByb3Zpc2lvbmVkUmVhZENhcGFjaXR5QXV0b1NjYWxpbmdVcGRhdGVcIjtcbmNvbnN0IF9QUkNVID0gXCJQcm92aXNpb25lZFJlYWRDYXBhY2l0eVVuaXRzXCI7XG5jb25zdCBfUFJQID0gXCJQdXRSZXNvdXJjZVBvbGljeVwiO1xuY29uc3QgX1BSUEkgPSBcIlB1dFJlc291cmNlUG9saWN5SW5wdXRcIjtcbmNvbnN0IF9QUlBPID0gXCJQdXRSZXNvdXJjZVBvbGljeU91dHB1dFwiO1xuY29uc3QgX1BTID0gXCJQYWdlU2l6ZVwiO1xuY29uc3QgX1BTQiA9IFwiUHJvY2Vzc2VkU2l6ZUJ5dGVzXCI7XG5jb25zdCBfUFNQID0gXCJQcmVwYXJlZFN0YXRlbWVudFBhcmFtZXRlcnNcIjtcbmNvbnN0IF9QU2EgPSBcIlBhcmFtZXRlcml6ZWRTdGF0ZW1lbnRcIjtcbmNvbnN0IF9QU2FyID0gXCJQYXJhbWV0ZXJpemVkU3RhdGVtZW50c1wiO1xuY29uc3QgX1BUID0gXCJQcm92aXNpb25lZFRocm91Z2hwdXRcIjtcbmNvbnN0IF9QVEQgPSBcIlByb3Zpc2lvbmVkVGhyb3VnaHB1dERlc2NyaXB0aW9uXCI7XG5jb25zdCBfUFRFRSA9IFwiUHJvdmlzaW9uZWRUaHJvdWdocHV0RXhjZWVkZWRFeGNlcHRpb25cIjtcbmNvbnN0IF9QVE8gPSBcIlByb3Zpc2lvbmVkVGhyb3VnaHB1dE92ZXJyaWRlXCI7XG5jb25zdCBfUFRyID0gXCJQcm9qZWN0aW9uVHlwZVwiO1xuY29uc3QgX1BXQ0FTUyA9IFwiUHJvdmlzaW9uZWRXcml0ZUNhcGFjaXR5QXV0b1NjYWxpbmdTZXR0aW5nc1wiO1xuY29uc3QgX1BXQ0FTU1UgPSBcIlByb3Zpc2lvbmVkV3JpdGVDYXBhY2l0eUF1dG9TY2FsaW5nU2V0dGluZ3NVcGRhdGVcIjtcbmNvbnN0IF9QV0NBU1UgPSBcIlByb3Zpc2lvbmVkV3JpdGVDYXBhY2l0eUF1dG9TY2FsaW5nVXBkYXRlXCI7XG5jb25zdCBfUFdDVSA9IFwiUHJvdmlzaW9uZWRXcml0ZUNhcGFjaXR5VW5pdHNcIjtcbmNvbnN0IF9QbyA9IFwiUG9saWN5XCI7XG5jb25zdCBfUHIgPSBcIlByb2plY3Rpb25cIjtcbmNvbnN0IF9QdSA9IFwiUHV0XCI7XG5jb25zdCBfUSA9IFwiUXVlcnlcIjtcbmNvbnN0IF9RRiA9IFwiUXVlcnlGaWx0ZXJcIjtcbmNvbnN0IF9RSSA9IFwiUXVlcnlJbnB1dFwiO1xuY29uc3QgX1FPID0gXCJRdWVyeU91dHB1dFwiO1xuY29uc3QgX1IgPSBcIlJlc3BvbnNlc1wiO1xuY29uc3QgX1JBID0gXCJSZXNvdXJjZUFyblwiO1xuY29uc3QgX1JBRUUgPSBcIlJlcGxpY2FBbHJlYWR5RXhpc3RzRXhjZXB0aW9uXCI7XG5jb25zdCBfUkFTRCA9IFwiUmVwbGljYUF1dG9TY2FsaW5nRGVzY3JpcHRpb25cIjtcbmNvbnN0IF9SQVNETCA9IFwiUmVwbGljYUF1dG9TY2FsaW5nRGVzY3JpcHRpb25MaXN0XCI7XG5jb25zdCBfUkFTVSA9IFwiUmVwbGljYUF1dG9TY2FsaW5nVXBkYXRlXCI7XG5jb25zdCBfUkFTVUwgPSBcIlJlcGxpY2FBdXRvU2NhbGluZ1VwZGF0ZUxpc3RcIjtcbmNvbnN0IF9SQk1TID0gXCJSZXBsaWNhQmlsbGluZ01vZGVTdW1tYXJ5XCI7XG5jb25zdCBfUkNDID0gXCJSZXR1cm5Db25zdW1lZENhcGFjaXR5XCI7XG5jb25zdCBfUkNVID0gXCJSZWFkQ2FwYWNpdHlVbml0c1wiO1xuY29uc3QgX1JEID0gXCJSZXBsaWNhRGVzY3JpcHRpb25cIjtcbmNvbnN0IF9SREwgPSBcIlJlcGxpY2FEZXNjcmlwdGlvbkxpc3RcIjtcbmNvbnN0IF9SRFQgPSBcIlJlc3RvcmVEYXRlVGltZVwiO1xuY29uc3QgX1JHID0gXCJSZXBsaWNhdGlvbkdyb3VwXCI7XG5jb25zdCBfUkdTSSA9IFwiUmVwbGljYUdsb2JhbFNlY29uZGFyeUluZGV4XCI7XG5jb25zdCBfUkdTSUFTRCA9IFwiUmVwbGljYUdsb2JhbFNlY29uZGFyeUluZGV4QXV0b1NjYWxpbmdEZXNjcmlwdGlvblwiO1xuY29uc3QgX1JHU0lBU0RMID0gXCJSZXBsaWNhR2xvYmFsU2Vjb25kYXJ5SW5kZXhBdXRvU2NhbGluZ0Rlc2NyaXB0aW9uTGlzdFwiO1xuY29uc3QgX1JHU0lBU1UgPSBcIlJlcGxpY2FHbG9iYWxTZWNvbmRhcnlJbmRleEF1dG9TY2FsaW5nVXBkYXRlXCI7XG5jb25zdCBfUkdTSUFTVUwgPSBcIlJlcGxpY2FHbG9iYWxTZWNvbmRhcnlJbmRleEF1dG9TY2FsaW5nVXBkYXRlTGlzdFwiO1xuY29uc3QgX1JHU0lEID0gXCJSZXBsaWNhR2xvYmFsU2Vjb25kYXJ5SW5kZXhEZXNjcmlwdGlvblwiO1xuY29uc3QgX1JHU0lETCA9IFwiUmVwbGljYUdsb2JhbFNlY29uZGFyeUluZGV4RGVzY3JpcHRpb25MaXN0XCI7XG5jb25zdCBfUkdTSUwgPSBcIlJlcGxpY2FHbG9iYWxTZWNvbmRhcnlJbmRleExpc3RcIjtcbmNvbnN0IF9SR1NJUyA9IFwiUmVwbGljYUdsb2JhbFNlY29uZGFyeUluZGV4U2V0dGluZ3NcIjtcbmNvbnN0IF9SR1NJU0QgPSBcIlJlcGxpY2FHbG9iYWxTZWNvbmRhcnlJbmRleFNldHRpbmdzRGVzY3JpcHRpb25cIjtcbmNvbnN0IF9SR1NJU0RMID0gXCJSZXBsaWNhR2xvYmFsU2Vjb25kYXJ5SW5kZXhTZXR0aW5nc0Rlc2NyaXB0aW9uTGlzdFwiO1xuY29uc3QgX1JHU0lTVSA9IFwiUmVwbGljYUdsb2JhbFNlY29uZGFyeUluZGV4U2V0dGluZ3NVcGRhdGVcIjtcbmNvbnN0IF9SR1NJU1VMID0gXCJSZXBsaWNhR2xvYmFsU2Vjb25kYXJ5SW5kZXhTZXR0aW5nc1VwZGF0ZUxpc3RcIjtcbmNvbnN0IF9SR1NJVSA9IFwiUmVwbGljYUdsb2JhbFNlY29uZGFyeUluZGV4VXBkYXRlc1wiO1xuY29uc3QgX1JHVSA9IFwiUmVwbGljYXRpb25Hcm91cFVwZGF0ZVwiO1xuY29uc3QgX1JHVUwgPSBcIlJlcGxpY2F0aW9uR3JvdXBVcGRhdGVMaXN0XCI7XG5jb25zdCBfUkkgPSBcIlJlcXVlc3RJdGVtc1wiO1xuY29uc3QgX1JJQ00gPSBcIlJldHVybkl0ZW1Db2xsZWN0aW9uTWV0cmljc1wiO1xuY29uc3QgX1JJRFQgPSBcIlJlcGxpY2FJbmFjY2Vzc2libGVEYXRlVGltZVwiO1xuY29uc3QgX1JJUCA9IFwiUmVzdG9yZUluUHJvZ3Jlc3NcIjtcbmNvbnN0IF9SSVVFID0gXCJSZXNvdXJjZUluVXNlRXhjZXB0aW9uXCI7XG5jb25zdCBfUkllID0gXCJSZXZpc2lvbklkXCI7XG5jb25zdCBfUkwgPSBcIlJlcGxpY2FMaXN0XCI7XG5jb25zdCBfUkxFID0gXCJSZXF1ZXN0TGltaXRFeGNlZWRlZFwiO1xuY29uc3QgX1JOID0gXCJSZWdpb25OYW1lXCI7XG5jb25zdCBfUk5GRSA9IFwiUmVwbGljYU5vdEZvdW5kRXhjZXB0aW9uXCI7XG5jb25zdCBfUk5GRWUgPSBcIlJlc291cmNlTm90Rm91bmRFeGNlcHRpb25cIjtcbmNvbnN0IF9SUCA9IFwiUmVzb3VyY2VQb2xpY3lcIjtcbmNvbnN0IF9SUElEID0gXCJSZWNvdmVyeVBlcmlvZEluRGF5c1wiO1xuY29uc3QgX1JQUkNBU1MgPSBcIlJlcGxpY2FQcm92aXNpb25lZFJlYWRDYXBhY2l0eUF1dG9TY2FsaW5nU2V0dGluZ3NcIjtcbmNvbnN0IF9SUFJDQVNTVSA9IFwiUmVwbGljYVByb3Zpc2lvbmVkUmVhZENhcGFjaXR5QXV0b1NjYWxpbmdTZXR0aW5nc1VwZGF0ZVwiO1xuY29uc3QgX1JQUkNBU1UgPSBcIlJlcGxpY2FQcm92aXNpb25lZFJlYWRDYXBhY2l0eUF1dG9TY2FsaW5nVXBkYXRlXCI7XG5jb25zdCBfUlBSQ1UgPSBcIlJlcGxpY2FQcm92aXNpb25lZFJlYWRDYXBhY2l0eVVuaXRzXCI7XG5jb25zdCBfUlBXQ0FTUyA9IFwiUmVwbGljYVByb3Zpc2lvbmVkV3JpdGVDYXBhY2l0eUF1dG9TY2FsaW5nU2V0dGluZ3NcIjtcbmNvbnN0IF9SUFdDVSA9IFwiUmVwbGljYVByb3Zpc2lvbmVkV3JpdGVDYXBhY2l0eVVuaXRzXCI7XG5jb25zdCBfUlMgPSBcIlJlcGxpY2FTZXR0aW5nc1wiO1xuY29uc3QgX1JTRCA9IFwiUmVwbGljYVN0YXR1c0Rlc2NyaXB0aW9uXCI7XG5jb25zdCBfUlNETCA9IFwiUmVwbGljYVNldHRpbmdzRGVzY3JpcHRpb25MaXN0XCI7XG5jb25zdCBfUlNEZSA9IFwiUmVwbGljYVNldHRpbmdzRGVzY3JpcHRpb25cIjtcbmNvbnN0IF9SU1BQID0gXCJSZXBsaWNhU3RhdHVzUGVyY2VudFByb2dyZXNzXCI7XG5jb25zdCBfUlNVID0gXCJSZXBsaWNhU2V0dGluZ3NVcGRhdGVcIjtcbmNvbnN0IF9SU1VMID0gXCJSZXBsaWNhU2V0dGluZ3NVcGRhdGVMaXN0XCI7XG5jb25zdCBfUlNlID0gXCJSZXBsaWNhU3RhdHVzXCI7XG5jb25zdCBfUlNlcyA9IFwiUmVzdG9yZVN1bW1hcnlcIjtcbmNvbnN0IF9SVEMgPSBcIlJlcGxpY2FUYWJsZUNsYXNzXCI7XG5jb25zdCBfUlRDUyA9IFwiUmVwbGljYVRhYmxlQ2xhc3NTdW1tYXJ5XCI7XG5jb25zdCBfUlRGQiA9IFwiUmVzdG9yZVRhYmxlRnJvbUJhY2t1cFwiO1xuY29uc3QgX1JURkJJID0gXCJSZXN0b3JlVGFibGVGcm9tQmFja3VwSW5wdXRcIjtcbmNvbnN0IF9SVEZCTyA9IFwiUmVzdG9yZVRhYmxlRnJvbUJhY2t1cE91dHB1dFwiO1xuY29uc3QgX1JUVFBJVCA9IFwiUmVzdG9yZVRhYmxlVG9Qb2ludEluVGltZVwiO1xuY29uc3QgX1JUVFBJVEkgPSBcIlJlc3RvcmVUYWJsZVRvUG9pbnRJblRpbWVJbnB1dFwiO1xuY29uc3QgX1JUVFBJVE8gPSBcIlJlc3RvcmVUYWJsZVRvUG9pbnRJblRpbWVPdXRwdXRcIjtcbmNvbnN0IF9SVSA9IFwiUmVwbGljYVVwZGF0ZVwiO1xuY29uc3QgX1JVTCA9IFwiUmVwbGljYVVwZGF0ZUxpc3RcIjtcbmNvbnN0IF9SVVBTID0gXCJSZWFkVW5pdHNQZXJTZWNvbmRcIjtcbmNvbnN0IF9SVWUgPSBcIlJlcGxpY2FVcGRhdGVzXCI7XG5jb25zdCBfUlYgPSBcIlJldHVyblZhbHVlc1wiO1xuY29uc3QgX1JWT0NDRiA9IFwiUmV0dXJuVmFsdWVzT25Db25kaXRpb25DaGVja0ZhaWx1cmVcIjtcbmNvbnN0IF9SV0NFID0gXCJSZXBsaWNhdGVkV3JpdGVDb25mbGljdEV4Y2VwdGlvblwiO1xuY29uc3QgX1JlID0gXCJSZXBsaWNhXCI7XG5jb25zdCBfUmVwID0gXCJSZXBsaWNhc1wiO1xuY29uc3QgX1MgPSBcIlN0YXRlbWVudHNcIjtcbmNvbnN0IF9TQSA9IFwiU3RyZWFtQXJuXCI7XG5jb25zdCBfU0IgPSBcIlMzQnVja2V0XCI7XG5jb25zdCBfU0JBID0gXCJTb3VyY2VCYWNrdXBBcm5cIjtcbmNvbnN0IF9TQk8gPSBcIlMzQnVja2V0T3duZXJcIjtcbmNvbnN0IF9TQlMgPSBcIlMzQnVja2V0U291cmNlXCI7XG5jb25zdCBfU0MgPSBcIlNjYW5uZWRDb3VudFwiO1xuY29uc3QgX1NEID0gXCJTdHJlYW1EZXNjcmlwdGlvblwiO1xuY29uc3QgX1NFID0gXCJTdHJlYW1FbmFibGVkXCI7XG5jb25zdCBfU0VSR0IgPSBcIlNpemVFc3RpbWF0ZVJhbmdlR0JcIjtcbmNvbnN0IF9TRiA9IFwiU2NhbkZpbHRlclwiO1xuY29uc3QgX1NJID0gXCJTY2FuSW5wdXRcIjtcbmNvbnN0IF9TSUMgPSBcIlNjYWxlSW5Db29sZG93blwiO1xuY29uc3QgX1NJQ00gPSBcIlNlY29uZGFyeUluZGV4ZXNDYXBhY2l0eU1hcFwiO1xuY29uc3QgX1NJRiA9IFwiU2NhbkluZGV4Rm9yd2FyZFwiO1xuY29uc3QgX1NLUCA9IFwiUzNLZXlQcmVmaXhcIjtcbmNvbnN0IF9TTyA9IFwiU2Nhbk91dHB1dFwiO1xuY29uc3QgX1NPQyA9IFwiU2NhbGVPdXRDb29sZG93blwiO1xuY29uc3QgX1NQID0gXCJTY2FsaW5nUG9saWNpZXNcIjtcbmNvbnN0IF9TUFUgPSBcIlNjYWxpbmdQb2xpY3lVcGRhdGVcIjtcbmNvbnN0IF9TUHIgPSBcIlMzUHJlZml4XCI7XG5jb25zdCBfU1MgPSBcIlN0cmVhbVNwZWNpZmljYXRpb25cIjtcbmNvbnN0IF9TU0EgPSBcIlMzU3NlQWxnb3JpdGhtXCI7XG5jb25zdCBfU1NFRCA9IFwiU1NFRGVzY3JpcHRpb25cIjtcbmNvbnN0IF9TU0VTID0gXCJTU0VTcGVjaWZpY2F0aW9uXCI7XG5jb25zdCBfU1NFU08gPSBcIlNTRVNwZWNpZmljYXRpb25PdmVycmlkZVwiO1xuY29uc3QgX1NTRVQgPSBcIlNTRVR5cGVcIjtcbmNvbnN0IF9TU0tLSSA9IFwiUzNTc2VLbXNLZXlJZFwiO1xuY29uc3QgX1NTXyA9IFwiU1NcIjtcbmNvbnN0IF9TVCA9IFwiU3RhcnRUaW1lXCI7XG5jb25zdCBfU1RBID0gXCJTb3VyY2VUYWJsZUFyblwiO1xuY29uc3QgX1NURCA9IFwiU291cmNlVGFibGVEZXRhaWxzXCI7XG5jb25zdCBfU1RGRCA9IFwiU291cmNlVGFibGVGZWF0dXJlRGV0YWlsc1wiO1xuY29uc3QgX1NUTiA9IFwiU291cmNlVGFibGVOYW1lXCI7XG5jb25zdCBfU1ZUID0gXCJTdHJlYW1WaWV3VHlwZVwiO1xuY29uc3QgX1NfID0gXCJTXCI7XG5jb25zdCBfU2MgPSBcIlNjYW5cIjtcbmNvbnN0IF9TZSA9IFwiU2VsZWN0XCI7XG5jb25zdCBfU2VnID0gXCJTZWdtZW50XCI7XG5jb25zdCBfU3QgPSBcIlN0YXRlbWVudFwiO1xuY29uc3QgX1N0YSA9IFwiU3RhdHVzXCI7XG5jb25zdCBfVCA9IFwiVGFibGVcIjtcbmNvbnN0IF9UQSA9IFwiVGFibGVBcm5cIjtcbmNvbnN0IF9UQUVFID0gXCJUYWJsZUFscmVhZHlFeGlzdHNFeGNlcHRpb25cIjtcbmNvbnN0IF9UQVNEID0gXCJUYWJsZUF1dG9TY2FsaW5nRGVzY3JpcHRpb25cIjtcbmNvbnN0IF9UQyA9IFwiVGFibGVDbGFzc1wiO1xuY29uc3QgX1RDRFQgPSBcIlRhYmxlQ3JlYXRpb25EYXRlVGltZVwiO1xuY29uc3QgX1RDRSA9IFwiVHJhbnNhY3Rpb25DYW5jZWxlZEV4Y2VwdGlvblwiO1xuY29uc3QgX1RDRXIgPSBcIlRyYW5zYWN0aW9uQ29uZmxpY3RFeGNlcHRpb25cIjtcbmNvbnN0IF9UQ08gPSBcIlRhYmxlQ2xhc3NPdmVycmlkZVwiO1xuY29uc3QgX1RDUCA9IFwiVGFibGVDcmVhdGlvblBhcmFtZXRlcnNcIjtcbmNvbnN0IF9UQ1MgPSBcIlRhYmxlQ2xhc3NTdW1tYXJ5XCI7XG5jb25zdCBfVEQgPSBcIlRhYmxlRGVzY3JpcHRpb25cIjtcbmNvbnN0IF9URSA9IFwiVGhyb3R0bGluZ0V4Y2VwdGlvblwiO1xuY29uc3QgX1RHSSA9IFwiVHJhbnNhY3RHZXRJdGVtXCI7XG5jb25zdCBfVEdJSSA9IFwiVHJhbnNhY3RHZXRJdGVtc0lucHV0XCI7XG5jb25zdCBfVEdJTCA9IFwiVHJhbnNhY3RHZXRJdGVtTGlzdFwiO1xuY29uc3QgX1RHSU8gPSBcIlRyYW5zYWN0R2V0SXRlbXNPdXRwdXRcIjtcbmNvbnN0IF9UR0lyID0gXCJUcmFuc2FjdEdldEl0ZW1zXCI7XG5jb25zdCBfVEkgPSBcIlRhYmxlSWRcIjtcbmNvbnN0IF9USVBFID0gXCJUcmFuc2FjdGlvbkluUHJvZ3Jlc3NFeGNlcHRpb25cIjtcbmNvbnN0IF9USVVFID0gXCJUYWJsZUluVXNlRXhjZXB0aW9uXCI7XG5jb25zdCBfVElyID0gXCJUcmFuc2FjdEl0ZW1zXCI7XG5jb25zdCBfVEsgPSBcIlRhZ0tleXNcIjtcbmNvbnN0IF9UTCA9IFwiVGFnTGlzdFwiO1xuY29uc3QgX1RNUkNVID0gXCJUYWJsZU1heFJlYWRDYXBhY2l0eVVuaXRzXCI7XG5jb25zdCBfVE1XQ1UgPSBcIlRhYmxlTWF4V3JpdGVDYXBhY2l0eVVuaXRzXCI7XG5jb25zdCBfVE4gPSBcIlRhYmxlTmFtZVwiO1xuY29uc3QgX1RORkUgPSBcIlRhYmxlTm90Rm91bmRFeGNlcHRpb25cIjtcbmNvbnN0IF9UTmEgPSBcIlRhYmxlTmFtZXNcIjtcbmNvbnN0IF9UUiA9IFwiVGhyb3R0bGluZ1JlYXNvbnNcIjtcbmNvbnN0IF9UUkkgPSBcIlRhZ1Jlc291cmNlSW5wdXRcIjtcbmNvbnN0IF9UUkwgPSBcIlRocm90dGxpbmdSZWFzb25MaXN0XCI7XG5jb25zdCBfVFJMQiA9IFwiVGltZVJhbmdlTG93ZXJCb3VuZFwiO1xuY29uc3QgX1RSVUIgPSBcIlRpbWVSYW5nZVVwcGVyQm91bmRcIjtcbmNvbnN0IF9UUmEgPSBcIlRhZ1Jlc291cmNlXCI7XG5jb25zdCBfVFJoID0gXCJUaHJvdHRsaW5nUmVhc29uXCI7XG5jb25zdCBfVFMgPSBcIlRyYW5zYWN0U3RhdGVtZW50c1wiO1xuY29uc3QgX1RTQiA9IFwiVGFibGVTaXplQnl0ZXNcIjtcbmNvbnN0IF9UU2EgPSBcIlRhYmxlU3RhdHVzXCI7XG5jb25zdCBfVFNvID0gXCJUb3RhbFNlZ21lbnRzXCI7XG5jb25zdCBfVFRMRCA9IFwiVGltZVRvTGl2ZURlc2NyaXB0aW9uXCI7XG5jb25zdCBfVFRMUyA9IFwiVGltZVRvTGl2ZVN0YXR1c1wiO1xuY29uc3QgX1RUTFNpID0gXCJUaW1lVG9MaXZlU3BlY2lmaWNhdGlvblwiO1xuY29uc3QgX1RUTiA9IFwiVGFyZ2V0VGFibGVOYW1lXCI7XG5jb25zdCBfVFRTUEMgPSBcIlRhcmdldFRyYWNraW5nU2NhbGluZ1BvbGljeUNvbmZpZ3VyYXRpb25cIjtcbmNvbnN0IF9UViA9IFwiVGFyZ2V0VmFsdWVcIjtcbmNvbnN0IF9UV0kgPSBcIlRyYW5zYWN0V3JpdGVJdGVtXCI7XG5jb25zdCBfVFdJSSA9IFwiVHJhbnNhY3RXcml0ZUl0ZW1zSW5wdXRcIjtcbmNvbnN0IF9UV0lMID0gXCJUcmFuc2FjdFdyaXRlSXRlbUxpc3RcIjtcbmNvbnN0IF9UV0lPID0gXCJUcmFuc2FjdFdyaXRlSXRlbXNPdXRwdXRcIjtcbmNvbnN0IF9UV0lyID0gXCJUcmFuc2FjdFdyaXRlSXRlbXNcIjtcbmNvbnN0IF9UV1REID0gXCJUYWJsZVdhcm1UaHJvdWdocHV0RGVzY3JpcHRpb25cIjtcbmNvbnN0IF9UYSA9IFwiVGFnc1wiO1xuY29uc3QgX1RhZyA9IFwiVGFnXCI7XG5jb25zdCBfVSA9IFwiVXBkYXRlXCI7XG5jb25zdCBfVUNCID0gXCJVcGRhdGVDb250aW51b3VzQmFja3Vwc1wiO1xuY29uc3QgX1VDQkkgPSBcIlVwZGF0ZUNvbnRpbnVvdXNCYWNrdXBzSW5wdXRcIjtcbmNvbnN0IF9VQ0JPID0gXCJVcGRhdGVDb250aW51b3VzQmFja3Vwc091dHB1dFwiO1xuY29uc3QgX1VDSSA9IFwiVXBkYXRlQ29udHJpYnV0b3JJbnNpZ2h0c1wiO1xuY29uc3QgX1VDSUkgPSBcIlVwZGF0ZUNvbnRyaWJ1dG9ySW5zaWdodHNJbnB1dFwiO1xuY29uc3QgX1VDSU8gPSBcIlVwZGF0ZUNvbnRyaWJ1dG9ySW5zaWdodHNPdXRwdXRcIjtcbmNvbnN0IF9VRSA9IFwiVXBkYXRlRXhwcmVzc2lvblwiO1xuY29uc3QgX1VHU0lBID0gXCJVcGRhdGVHbG9iYWxTZWNvbmRhcnlJbmRleEFjdGlvblwiO1xuY29uc3QgX1VHVCA9IFwiVXBkYXRlR2xvYmFsVGFibGVcIjtcbmNvbnN0IF9VR1RJID0gXCJVcGRhdGVHbG9iYWxUYWJsZUlucHV0XCI7XG5jb25zdCBfVUdUTyA9IFwiVXBkYXRlR2xvYmFsVGFibGVPdXRwdXRcIjtcbmNvbnN0IF9VR1RTID0gXCJVcGRhdGVHbG9iYWxUYWJsZVNldHRpbmdzXCI7XG5jb25zdCBfVUdUU0kgPSBcIlVwZGF0ZUdsb2JhbFRhYmxlU2V0dGluZ3NJbnB1dFwiO1xuY29uc3QgX1VHVFNPID0gXCJVcGRhdGVHbG9iYWxUYWJsZVNldHRpbmdzT3V0cHV0XCI7XG5jb25zdCBfVUkgPSBcIlVucHJvY2Vzc2VkSXRlbXNcIjtcbmNvbnN0IF9VSUkgPSBcIlVwZGF0ZUl0ZW1JbnB1dFwiO1xuY29uc3QgX1VJTyA9IFwiVXBkYXRlSXRlbU91dHB1dFwiO1xuY29uc3QgX1VJcCA9IFwiVXBkYXRlSXRlbVwiO1xuY29uc3QgX1VLID0gXCJVbnByb2Nlc3NlZEtleXNcIjtcbmNvbnN0IF9VS1NDID0gXCJVcGRhdGVLaW5lc2lzU3RyZWFtaW5nQ29uZmlndXJhdGlvblwiO1xuY29uc3QgX1VLU0QgPSBcIlVwZGF0ZUtpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvblwiO1xuY29uc3QgX1VLU0RJID0gXCJVcGRhdGVLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb25JbnB1dFwiO1xuY29uc3QgX1VLU0RPID0gXCJVcGRhdGVLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb25PdXRwdXRcIjtcbmNvbnN0IF9VTFJUID0gXCJVc2VMYXRlc3RSZXN0b3JhYmxlVGltZVwiO1xuY29uc3QgX1VSID0gXCJVbnRhZ1Jlc291cmNlXCI7XG5jb25zdCBfVVJHTUEgPSBcIlVwZGF0ZVJlcGxpY2F0aW9uR3JvdXBNZW1iZXJBY3Rpb25cIjtcbmNvbnN0IF9VUkkgPSBcIlVudGFnUmVzb3VyY2VJbnB1dFwiO1xuY29uc3QgX1VUID0gXCJVcGRhdGVUYWJsZVwiO1xuY29uc3QgX1VUSSA9IFwiVXBkYXRlVGFibGVJbnB1dFwiO1xuY29uc3QgX1VUTyA9IFwiVXBkYXRlVGFibGVPdXRwdXRcIjtcbmNvbnN0IF9VVFJBUyA9IFwiVXBkYXRlVGFibGVSZXBsaWNhQXV0b1NjYWxpbmdcIjtcbmNvbnN0IF9VVFJBU0kgPSBcIlVwZGF0ZVRhYmxlUmVwbGljYUF1dG9TY2FsaW5nSW5wdXRcIjtcbmNvbnN0IF9VVFJBU08gPSBcIlVwZGF0ZVRhYmxlUmVwbGljYUF1dG9TY2FsaW5nT3V0cHV0XCI7XG5jb25zdCBfVVRUTCA9IFwiVXBkYXRlVGltZVRvTGl2ZVwiO1xuY29uc3QgX1VUVExJID0gXCJVcGRhdGVUaW1lVG9MaXZlSW5wdXRcIjtcbmNvbnN0IF9VVFRMTyA9IFwiVXBkYXRlVGltZVRvTGl2ZU91dHB1dFwiO1xuY29uc3QgX1YgPSBcIlZhbHVlXCI7XG5jb25zdCBfV0NVID0gXCJXcml0ZUNhcGFjaXR5VW5pdHNcIjtcbmNvbnN0IF9XUiA9IFwiV3JpdGVSZXF1ZXN0XCI7XG5jb25zdCBfV1JyID0gXCJXcml0ZVJlcXVlc3RzXCI7XG5jb25zdCBfV1MgPSBcIldpdG5lc3NTdGF0dXNcIjtcbmNvbnN0IF9XVCA9IFwiV2FybVRocm91Z2hwdXRcIjtcbmNvbnN0IF9XVVBTID0gXCJXcml0ZVVuaXRzUGVyU2Vjb25kXCI7XG5jb25zdCBfYVFFID0gXCJhd3NRdWVyeUVycm9yXCI7XG5jb25zdCBfYyA9IFwiY2xpZW50XCI7XG5jb25zdCBfZSA9IFwiZXJyb3JcIjtcbmNvbnN0IF9oRSA9IFwiaHR0cEVycm9yXCI7XG5jb25zdCBfaEggPSBcImh0dHBIZWFkZXJcIjtcbmNvbnN0IF9tID0gXCJtZXNzYWdlXCI7XG5jb25zdCBfciA9IFwicmVhc29uXCI7XG5jb25zdCBfcmUgPSBcInJlc291cmNlXCI7XG5jb25zdCBfcyA9IFwic2VydmVyXCI7XG5jb25zdCBfc20gPSBcInNtaXRoeS50cy5zZGsuc3ludGhldGljLmNvbS5hbWF6b25hd3MuZHluYW1vZGJcIjtcbmNvbnN0IF90UiA9IFwidGhyb3R0bGluZ1JlYXNvbnNcIjtcbmNvbnN0IF94YWNyc3JhID0gXCJ4LWFtei1jb25maXJtLXJlbW92ZS1zZWxmLXJlc291cmNlLWFjY2Vzc1wiO1xuY29uc3QgbjAgPSBcImNvbS5hbWF6b25hd3MuZHluYW1vZGJcIjtcbnZhciBBcmNoaXZhbFN1bW1hcnkkID0gWzMsIG4wLCBfQVMsXG4gICAgMCxcbiAgICBbX0FEVCwgX0FSLCBfQUJBXSxcbiAgICBbNCwgMCwgMF1cbl07XG52YXIgQXR0cmlidXRlRGVmaW5pdGlvbiQgPSBbMywgbjAsIF9BRCxcbiAgICAwLFxuICAgIFtfQU4sIF9BVF0sXG4gICAgWzAsIDBdLCAyXG5dO1xudmFyIEF0dHJpYnV0ZVZhbHVlVXBkYXRlJCA9IFszLCBuMCwgX0FWVSxcbiAgICAwLFxuICAgIFtfViwgX0FdLFxuICAgIFsoKSA9PiBBdHRyaWJ1dGVWYWx1ZSQsIDBdXG5dO1xudmFyIEF1dG9TY2FsaW5nUG9saWN5RGVzY3JpcHRpb24kID0gWzMsIG4wLCBfQVNQRCxcbiAgICAwLFxuICAgIFtfUE4sIF9UVFNQQ10sXG4gICAgWzAsICgpID0+IEF1dG9TY2FsaW5nVGFyZ2V0VHJhY2tpbmdTY2FsaW5nUG9saWN5Q29uZmlndXJhdGlvbkRlc2NyaXB0aW9uJF1cbl07XG52YXIgQXV0b1NjYWxpbmdQb2xpY3lVcGRhdGUkID0gWzMsIG4wLCBfQVNQVSxcbiAgICAwLFxuICAgIFtfVFRTUEMsIF9QTl0sXG4gICAgWygpID0+IEF1dG9TY2FsaW5nVGFyZ2V0VHJhY2tpbmdTY2FsaW5nUG9saWN5Q29uZmlndXJhdGlvblVwZGF0ZSQsIDBdLCAxXG5dO1xudmFyIEF1dG9TY2FsaW5nU2V0dGluZ3NEZXNjcmlwdGlvbiQgPSBbMywgbjAsIF9BU1NELFxuICAgIDAsXG4gICAgW19NVSwgX01VYSwgX0FTRCwgX0FTUkEsIF9TUF0sXG4gICAgWzEsIDEsIDIsIDAsICgpID0+IEF1dG9TY2FsaW5nUG9saWN5RGVzY3JpcHRpb25MaXN0XVxuXTtcbnZhciBBdXRvU2NhbGluZ1NldHRpbmdzVXBkYXRlJCA9IFszLCBuMCwgX0FTU1UsXG4gICAgMCxcbiAgICBbX01VLCBfTVVhLCBfQVNELCBfQVNSQSwgX1NQVV0sXG4gICAgWzEsIDEsIDIsIDAsICgpID0+IEF1dG9TY2FsaW5nUG9saWN5VXBkYXRlJF1cbl07XG52YXIgQXV0b1NjYWxpbmdUYXJnZXRUcmFja2luZ1NjYWxpbmdQb2xpY3lDb25maWd1cmF0aW9uRGVzY3JpcHRpb24kID0gWzMsIG4wLCBfQVNUVFNQQ0QsXG4gICAgMCxcbiAgICBbX1RWLCBfRFNJLCBfU0lDLCBfU09DXSxcbiAgICBbMSwgMiwgMSwgMV0sIDFcbl07XG52YXIgQXV0b1NjYWxpbmdUYXJnZXRUcmFja2luZ1NjYWxpbmdQb2xpY3lDb25maWd1cmF0aW9uVXBkYXRlJCA9IFszLCBuMCwgX0FTVFRTUENVLFxuICAgIDAsXG4gICAgW19UViwgX0RTSSwgX1NJQywgX1NPQ10sXG4gICAgWzEsIDIsIDEsIDFdLCAxXG5dO1xudmFyIEJhY2t1cERlc2NyaXB0aW9uJCA9IFszLCBuMCwgX0JELFxuICAgIDAsXG4gICAgW19CRGEsIF9TVEQsIF9TVEZEXSxcbiAgICBbKCkgPT4gQmFja3VwRGV0YWlscyQsICgpID0+IFNvdXJjZVRhYmxlRGV0YWlscyQsICgpID0+IFNvdXJjZVRhYmxlRmVhdHVyZURldGFpbHMkXVxuXTtcbnZhciBCYWNrdXBEZXRhaWxzJCA9IFszLCBuMCwgX0JEYSxcbiAgICAwLFxuICAgIFtfQkEsIF9CTiwgX0JTLCBfQlQsIF9CQ0RULCBfQlNCLCBfQkVEVF0sXG4gICAgWzAsIDAsIDAsIDAsIDQsIDEsIDRdLCA1XG5dO1xudmFyIEJhY2t1cEluVXNlRXhjZXB0aW9uJCA9IFstMywgbjAsIF9CSVVFLFxuICAgIHsgW19lXTogX2MgfSxcbiAgICBbX21dLFxuICAgIFswXVxuXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKEJhY2t1cEluVXNlRXhjZXB0aW9uJCwgQmFja3VwSW5Vc2VFeGNlcHRpb24pO1xudmFyIEJhY2t1cE5vdEZvdW5kRXhjZXB0aW9uJCA9IFstMywgbjAsIF9CTkZFLFxuICAgIHsgW19lXTogX2MgfSxcbiAgICBbX21dLFxuICAgIFswXVxuXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKEJhY2t1cE5vdEZvdW5kRXhjZXB0aW9uJCwgQmFja3VwTm90Rm91bmRFeGNlcHRpb24pO1xudmFyIEJhY2t1cFN1bW1hcnkkID0gWzMsIG4wLCBfQlNhLFxuICAgIDAsXG4gICAgW19UTiwgX1RJLCBfVEEsIF9CQSwgX0JOLCBfQkNEVCwgX0JFRFQsIF9CUywgX0JULCBfQlNCXSxcbiAgICBbMCwgMCwgMCwgMCwgMCwgNCwgNCwgMCwgMCwgMV1cbl07XG52YXIgQmF0Y2hFeGVjdXRlU3RhdGVtZW50SW5wdXQkID0gWzMsIG4wLCBfQkVTSSxcbiAgICAwLFxuICAgIFtfUywgX1JDQ10sXG4gICAgWygpID0+IFBhcnRpUUxCYXRjaFJlcXVlc3QsIDBdLCAxXG5dO1xudmFyIEJhdGNoRXhlY3V0ZVN0YXRlbWVudE91dHB1dCQgPSBbMywgbjAsIF9CRVNPLFxuICAgIDAsXG4gICAgW19SLCBfQ0NdLFxuICAgIFsoKSA9PiBQYXJ0aVFMQmF0Y2hSZXNwb25zZSwgKCkgPT4gQ29uc3VtZWRDYXBhY2l0eU11bHRpcGxlXVxuXTtcbnZhciBCYXRjaEdldEl0ZW1JbnB1dCQgPSBbMywgbjAsIF9CR0lJLFxuICAgIDAsXG4gICAgW19SSSwgX1JDQ10sXG4gICAgWygpID0+IEJhdGNoR2V0UmVxdWVzdE1hcCwgMF0sIDFcbl07XG52YXIgQmF0Y2hHZXRJdGVtT3V0cHV0JCA9IFszLCBuMCwgX0JHSU8sXG4gICAgMCxcbiAgICBbX1IsIF9VSywgX0NDXSxcbiAgICBbKCkgPT4gQmF0Y2hHZXRSZXNwb25zZU1hcCwgKCkgPT4gQmF0Y2hHZXRSZXF1ZXN0TWFwLCAoKSA9PiBDb25zdW1lZENhcGFjaXR5TXVsdGlwbGVdXG5dO1xudmFyIEJhdGNoU3RhdGVtZW50RXJyb3IkID0gWzMsIG4wLCBfQlNFLFxuICAgIDAsXG4gICAgW19DLCBfTSwgX0ldLFxuICAgIFswLCAwLCAoKSA9PiBBdHRyaWJ1dGVNYXBdXG5dO1xudmFyIEJhdGNoU3RhdGVtZW50UmVxdWVzdCQgPSBbMywgbjAsIF9CU1IsXG4gICAgMCxcbiAgICBbX1N0LCBfUCwgX0NSLCBfUlZPQ0NGXSxcbiAgICBbMCwgKCkgPT4gUHJlcGFyZWRTdGF0ZW1lbnRQYXJhbWV0ZXJzLCAyLCAwXSwgMVxuXTtcbnZhciBCYXRjaFN0YXRlbWVudFJlc3BvbnNlJCA9IFszLCBuMCwgX0JTUmEsXG4gICAgMCxcbiAgICBbX0UsIF9UTiwgX0ldLFxuICAgIFsoKSA9PiBCYXRjaFN0YXRlbWVudEVycm9yJCwgMCwgKCkgPT4gQXR0cmlidXRlTWFwXVxuXTtcbnZhciBCYXRjaFdyaXRlSXRlbUlucHV0JCA9IFszLCBuMCwgX0JXSUksXG4gICAgMCxcbiAgICBbX1JJLCBfUkNDLCBfUklDTV0sXG4gICAgWygpID0+IEJhdGNoV3JpdGVJdGVtUmVxdWVzdE1hcCwgMCwgMF0sIDFcbl07XG52YXIgQmF0Y2hXcml0ZUl0ZW1PdXRwdXQkID0gWzMsIG4wLCBfQldJTyxcbiAgICAwLFxuICAgIFtfVUksIF9JQ00sIF9DQ10sXG4gICAgWygpID0+IEJhdGNoV3JpdGVJdGVtUmVxdWVzdE1hcCwgKCkgPT4gSXRlbUNvbGxlY3Rpb25NZXRyaWNzUGVyVGFibGUsICgpID0+IENvbnN1bWVkQ2FwYWNpdHlNdWx0aXBsZV1cbl07XG52YXIgQmlsbGluZ01vZGVTdW1tYXJ5JCA9IFszLCBuMCwgX0JNUyxcbiAgICAwLFxuICAgIFtfQk0sIF9MVVRQUFJEVF0sXG4gICAgWzAsIDRdXG5dO1xudmFyIENhbmNlbGxhdGlvblJlYXNvbiQgPSBbMywgbjAsIF9DUmEsXG4gICAgMCxcbiAgICBbX0ksIF9DLCBfTV0sXG4gICAgWygpID0+IEF0dHJpYnV0ZU1hcCwgMCwgMF1cbl07XG52YXIgQ2FwYWNpdHkkID0gWzMsIG4wLCBfQ2EsXG4gICAgMCxcbiAgICBbX1JDVSwgX1dDVSwgX0NVXSxcbiAgICBbMSwgMSwgMV1cbl07XG52YXIgQ29uZGl0aW9uJCA9IFszLCBuMCwgX0NvLFxuICAgIDAsXG4gICAgW19DTywgX0FWTF0sXG4gICAgWzAsICgpID0+IEF0dHJpYnV0ZVZhbHVlTGlzdF0sIDFcbl07XG52YXIgQ29uZGl0aW9uYWxDaGVja0ZhaWxlZEV4Y2VwdGlvbiQgPSBbLTMsIG4wLCBfQ0NGRSxcbiAgICB7IFtfZV06IF9jIH0sXG4gICAgW19tLCBfSV0sXG4gICAgWzAsICgpID0+IEF0dHJpYnV0ZU1hcF1cbl07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihDb25kaXRpb25hbENoZWNrRmFpbGVkRXhjZXB0aW9uJCwgQ29uZGl0aW9uYWxDaGVja0ZhaWxlZEV4Y2VwdGlvbik7XG52YXIgQ29uZGl0aW9uQ2hlY2skID0gWzMsIG4wLCBfQ0NvLFxuICAgIDAsXG4gICAgW19LLCBfVE4sIF9DRSwgX0VBTiwgX0VBViwgX1JWT0NDRl0sXG4gICAgWygpID0+IEtleSwgMCwgMCwgMTI4IHwgMCwgKCkgPT4gRXhwcmVzc2lvbkF0dHJpYnV0ZVZhbHVlTWFwLCAwXSwgM1xuXTtcbnZhciBDb25zdW1lZENhcGFjaXR5JCA9IFszLCBuMCwgX0NDLFxuICAgIDAsXG4gICAgW19UTiwgX0NVLCBfUkNVLCBfV0NVLCBfVCwgX0xTSSwgX0dTSV0sXG4gICAgWzAsIDEsIDEsIDEsICgpID0+IENhcGFjaXR5JCwgKCkgPT4gU2Vjb25kYXJ5SW5kZXhlc0NhcGFjaXR5TWFwLCAoKSA9PiBTZWNvbmRhcnlJbmRleGVzQ2FwYWNpdHlNYXBdXG5dO1xudmFyIENvbnRpbnVvdXNCYWNrdXBzRGVzY3JpcHRpb24kID0gWzMsIG4wLCBfQ0JELFxuICAgIDAsXG4gICAgW19DQlMsIF9QSVRSRF0sXG4gICAgWzAsICgpID0+IFBvaW50SW5UaW1lUmVjb3ZlcnlEZXNjcmlwdGlvbiRdLCAxXG5dO1xudmFyIENvbnRpbnVvdXNCYWNrdXBzVW5hdmFpbGFibGVFeGNlcHRpb24kID0gWy0zLCBuMCwgX0NCVUUsXG4gICAgeyBbX2VdOiBfYyB9LFxuICAgIFtfbV0sXG4gICAgWzBdXG5dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoQ29udGludW91c0JhY2t1cHNVbmF2YWlsYWJsZUV4Y2VwdGlvbiQsIENvbnRpbnVvdXNCYWNrdXBzVW5hdmFpbGFibGVFeGNlcHRpb24pO1xudmFyIENvbnRyaWJ1dG9ySW5zaWdodHNTdW1tYXJ5JCA9IFszLCBuMCwgX0NJUyxcbiAgICAwLFxuICAgIFtfVE4sIF9JTiwgX0NJU28sIF9DSU1dLFxuICAgIFswLCAwLCAwLCAwXVxuXTtcbnZhciBDcmVhdGVCYWNrdXBJbnB1dCQgPSBbMywgbjAsIF9DQkksXG4gICAgMCxcbiAgICBbX1ROLCBfQk5dLFxuICAgIFswLCAwXSwgMlxuXTtcbnZhciBDcmVhdGVCYWNrdXBPdXRwdXQkID0gWzMsIG4wLCBfQ0JPLFxuICAgIDAsXG4gICAgW19CRGFdLFxuICAgIFsoKSA9PiBCYWNrdXBEZXRhaWxzJF1cbl07XG52YXIgQ3JlYXRlR2xvYmFsU2Vjb25kYXJ5SW5kZXhBY3Rpb24kID0gWzMsIG4wLCBfQ0dTSUEsXG4gICAgMCxcbiAgICBbX0lOLCBfS1MsIF9QciwgX1BULCBfT0RULCBfV1RdLFxuICAgIFswLCAoKSA9PiBLZXlTY2hlbWEsICgpID0+IFByb2plY3Rpb24kLCAoKSA9PiBQcm92aXNpb25lZFRocm91Z2hwdXQkLCAoKSA9PiBPbkRlbWFuZFRocm91Z2hwdXQkLCAoKSA9PiBXYXJtVGhyb3VnaHB1dCRdLCAzXG5dO1xudmFyIENyZWF0ZUdsb2JhbFRhYmxlSW5wdXQkID0gWzMsIG4wLCBfQ0dUSSxcbiAgICAwLFxuICAgIFtfR1ROLCBfUkddLFxuICAgIFswLCAoKSA9PiBSZXBsaWNhTGlzdF0sIDJcbl07XG52YXIgQ3JlYXRlR2xvYmFsVGFibGVPdXRwdXQkID0gWzMsIG4wLCBfQ0dUTyxcbiAgICAwLFxuICAgIFtfR1REXSxcbiAgICBbKCkgPT4gR2xvYmFsVGFibGVEZXNjcmlwdGlvbiRdXG5dO1xudmFyIENyZWF0ZUdsb2JhbFRhYmxlV2l0bmVzc0dyb3VwTWVtYmVyQWN0aW9uJCA9IFszLCBuMCwgX0NHVFdHTUEsXG4gICAgMCxcbiAgICBbX1JOXSxcbiAgICBbMF0sIDFcbl07XG52YXIgQ3JlYXRlUmVwbGljYUFjdGlvbiQgPSBbMywgbjAsIF9DUkEsXG4gICAgMCxcbiAgICBbX1JOXSxcbiAgICBbMF0sIDFcbl07XG52YXIgQ3JlYXRlUmVwbGljYXRpb25Hcm91cE1lbWJlckFjdGlvbiQgPSBbMywgbjAsIF9DUkdNQSxcbiAgICAwLFxuICAgIFtfUk4sIF9LTVNNS0ksIF9QVE8sIF9PRFRPLCBfR1NJLCBfVENPXSxcbiAgICBbMCwgMCwgKCkgPT4gUHJvdmlzaW9uZWRUaHJvdWdocHV0T3ZlcnJpZGUkLCAoKSA9PiBPbkRlbWFuZFRocm91Z2hwdXRPdmVycmlkZSQsICgpID0+IFJlcGxpY2FHbG9iYWxTZWNvbmRhcnlJbmRleExpc3QsIDBdLCAxXG5dO1xudmFyIENyZWF0ZVRhYmxlSW5wdXQkID0gWzMsIG4wLCBfQ1RJLFxuICAgIDAsXG4gICAgW19BRHQsIF9UTiwgX0tTLCBfTFNJLCBfR1NJLCBfQk0sIF9QVCwgX1NTLCBfU1NFUywgX1RhLCBfVEMsIF9EUEUsIF9XVCwgX1JQLCBfT0RUXSxcbiAgICBbKCkgPT4gQXR0cmlidXRlRGVmaW5pdGlvbnMsIDAsICgpID0+IEtleVNjaGVtYSwgKCkgPT4gTG9jYWxTZWNvbmRhcnlJbmRleExpc3QsICgpID0+IEdsb2JhbFNlY29uZGFyeUluZGV4TGlzdCwgMCwgKCkgPT4gUHJvdmlzaW9uZWRUaHJvdWdocHV0JCwgKCkgPT4gU3RyZWFtU3BlY2lmaWNhdGlvbiQsICgpID0+IFNTRVNwZWNpZmljYXRpb24kLCAoKSA9PiBUYWdMaXN0LCAwLCAyLCAoKSA9PiBXYXJtVGhyb3VnaHB1dCQsIDAsICgpID0+IE9uRGVtYW5kVGhyb3VnaHB1dCRdLCAzXG5dO1xudmFyIENyZWF0ZVRhYmxlT3V0cHV0JCA9IFszLCBuMCwgX0NUTyxcbiAgICAwLFxuICAgIFtfVERdLFxuICAgIFsoKSA9PiBUYWJsZURlc2NyaXB0aW9uJF1cbl07XG52YXIgQ3N2T3B0aW9ucyQgPSBbMywgbjAsIF9DT3MsXG4gICAgMCxcbiAgICBbX0QsIF9ITF0sXG4gICAgWzAsIDY0IHwgMF1cbl07XG52YXIgRGVsZXRlJCA9IFszLCBuMCwgX0RlLFxuICAgIDAsXG4gICAgW19LLCBfVE4sIF9DRSwgX0VBTiwgX0VBViwgX1JWT0NDRl0sXG4gICAgWygpID0+IEtleSwgMCwgMCwgMTI4IHwgMCwgKCkgPT4gRXhwcmVzc2lvbkF0dHJpYnV0ZVZhbHVlTWFwLCAwXSwgMlxuXTtcbnZhciBEZWxldGVCYWNrdXBJbnB1dCQgPSBbMywgbjAsIF9EQkksXG4gICAgMCxcbiAgICBbX0JBXSxcbiAgICBbMF0sIDFcbl07XG52YXIgRGVsZXRlQmFja3VwT3V0cHV0JCA9IFszLCBuMCwgX0RCTyxcbiAgICAwLFxuICAgIFtfQkRdLFxuICAgIFsoKSA9PiBCYWNrdXBEZXNjcmlwdGlvbiRdXG5dO1xudmFyIERlbGV0ZUdsb2JhbFNlY29uZGFyeUluZGV4QWN0aW9uJCA9IFszLCBuMCwgX0RHU0lBLFxuICAgIDAsXG4gICAgW19JTl0sXG4gICAgWzBdLCAxXG5dO1xudmFyIERlbGV0ZUdsb2JhbFRhYmxlV2l0bmVzc0dyb3VwTWVtYmVyQWN0aW9uJCA9IFszLCBuMCwgX0RHVFdHTUEsXG4gICAgMCxcbiAgICBbX1JOXSxcbiAgICBbMF0sIDFcbl07XG52YXIgRGVsZXRlSXRlbUlucHV0JCA9IFszLCBuMCwgX0RJSSxcbiAgICAwLFxuICAgIFtfVE4sIF9LLCBfRXgsIF9DT28sIF9SViwgX1JDQywgX1JJQ00sIF9DRSwgX0VBTiwgX0VBViwgX1JWT0NDRl0sXG4gICAgWzAsICgpID0+IEtleSwgKCkgPT4gRXhwZWN0ZWRBdHRyaWJ1dGVNYXAsIDAsIDAsIDAsIDAsIDAsIDEyOCB8IDAsICgpID0+IEV4cHJlc3Npb25BdHRyaWJ1dGVWYWx1ZU1hcCwgMF0sIDJcbl07XG52YXIgRGVsZXRlSXRlbU91dHB1dCQgPSBbMywgbjAsIF9ESU8sXG4gICAgMCxcbiAgICBbX0F0LCBfQ0MsIF9JQ01dLFxuICAgIFsoKSA9PiBBdHRyaWJ1dGVNYXAsICgpID0+IENvbnN1bWVkQ2FwYWNpdHkkLCAoKSA9PiBJdGVtQ29sbGVjdGlvbk1ldHJpY3MkXVxuXTtcbnZhciBEZWxldGVSZXBsaWNhQWN0aW9uJCA9IFszLCBuMCwgX0RSQSxcbiAgICAwLFxuICAgIFtfUk5dLFxuICAgIFswXSwgMVxuXTtcbnZhciBEZWxldGVSZXBsaWNhdGlvbkdyb3VwTWVtYmVyQWN0aW9uJCA9IFszLCBuMCwgX0RSR01BLFxuICAgIDAsXG4gICAgW19STl0sXG4gICAgWzBdLCAxXG5dO1xudmFyIERlbGV0ZVJlcXVlc3QkID0gWzMsIG4wLCBfRFIsXG4gICAgMCxcbiAgICBbX0tdLFxuICAgIFsoKSA9PiBLZXldLCAxXG5dO1xudmFyIERlbGV0ZVJlc291cmNlUG9saWN5SW5wdXQkID0gWzMsIG4wLCBfRFJQSSxcbiAgICAwLFxuICAgIFtfUkEsIF9FUkldLFxuICAgIFswLCAwXSwgMVxuXTtcbnZhciBEZWxldGVSZXNvdXJjZVBvbGljeU91dHB1dCQgPSBbMywgbjAsIF9EUlBPLFxuICAgIDAsXG4gICAgW19SSWVdLFxuICAgIFswXVxuXTtcbnZhciBEZWxldGVUYWJsZUlucHV0JCA9IFszLCBuMCwgX0RUSSxcbiAgICAwLFxuICAgIFtfVE5dLFxuICAgIFswXSwgMVxuXTtcbnZhciBEZWxldGVUYWJsZU91dHB1dCQgPSBbMywgbjAsIF9EVE8sXG4gICAgMCxcbiAgICBbX1REXSxcbiAgICBbKCkgPT4gVGFibGVEZXNjcmlwdGlvbiRdXG5dO1xudmFyIERlc2NyaWJlQmFja3VwSW5wdXQkID0gWzMsIG4wLCBfREJJZSxcbiAgICAwLFxuICAgIFtfQkFdLFxuICAgIFswXSwgMVxuXTtcbnZhciBEZXNjcmliZUJhY2t1cE91dHB1dCQgPSBbMywgbjAsIF9EQk9lLFxuICAgIDAsXG4gICAgW19CRF0sXG4gICAgWygpID0+IEJhY2t1cERlc2NyaXB0aW9uJF1cbl07XG52YXIgRGVzY3JpYmVDb250aW51b3VzQmFja3Vwc0lucHV0JCA9IFszLCBuMCwgX0RDQkksXG4gICAgMCxcbiAgICBbX1ROXSxcbiAgICBbMF0sIDFcbl07XG52YXIgRGVzY3JpYmVDb250aW51b3VzQmFja3Vwc091dHB1dCQgPSBbMywgbjAsIF9EQ0JPLFxuICAgIDAsXG4gICAgW19DQkRdLFxuICAgIFsoKSA9PiBDb250aW51b3VzQmFja3Vwc0Rlc2NyaXB0aW9uJF1cbl07XG52YXIgRGVzY3JpYmVDb250cmlidXRvckluc2lnaHRzSW5wdXQkID0gWzMsIG4wLCBfRENJSSxcbiAgICAwLFxuICAgIFtfVE4sIF9JTl0sXG4gICAgWzAsIDBdLCAxXG5dO1xudmFyIERlc2NyaWJlQ29udHJpYnV0b3JJbnNpZ2h0c091dHB1dCQgPSBbMywgbjAsIF9EQ0lPLFxuICAgIDAsXG4gICAgW19UTiwgX0lOLCBfQ0lSTCwgX0NJU28sIF9MVURULCBfRkUsIF9DSU1dLFxuICAgIFswLCAwLCA2NCB8IDAsIDAsIDQsICgpID0+IEZhaWx1cmVFeGNlcHRpb24kLCAwXVxuXTtcbnZhciBEZXNjcmliZUVuZHBvaW50c1JlcXVlc3QkID0gWzMsIG4wLCBfREVSLFxuICAgIDAsXG4gICAgW10sXG4gICAgW11cbl07XG52YXIgRGVzY3JpYmVFbmRwb2ludHNSZXNwb25zZSQgPSBbMywgbjAsIF9ERVJlLFxuICAgIDAsXG4gICAgW19Fbl0sXG4gICAgWygpID0+IEVuZHBvaW50c10sIDFcbl07XG52YXIgRGVzY3JpYmVFeHBvcnRJbnB1dCQgPSBbMywgbjAsIF9ERUksXG4gICAgMCxcbiAgICBbX0VBXSxcbiAgICBbMF0sIDFcbl07XG52YXIgRGVzY3JpYmVFeHBvcnRPdXRwdXQkID0gWzMsIG4wLCBfREVPLFxuICAgIDAsXG4gICAgW19FRF0sXG4gICAgWygpID0+IEV4cG9ydERlc2NyaXB0aW9uJF1cbl07XG52YXIgRGVzY3JpYmVHbG9iYWxUYWJsZUlucHV0JCA9IFszLCBuMCwgX0RHVEksXG4gICAgMCxcbiAgICBbX0dUTl0sXG4gICAgWzBdLCAxXG5dO1xudmFyIERlc2NyaWJlR2xvYmFsVGFibGVPdXRwdXQkID0gWzMsIG4wLCBfREdUTyxcbiAgICAwLFxuICAgIFtfR1REXSxcbiAgICBbKCkgPT4gR2xvYmFsVGFibGVEZXNjcmlwdGlvbiRdXG5dO1xudmFyIERlc2NyaWJlR2xvYmFsVGFibGVTZXR0aW5nc0lucHV0JCA9IFszLCBuMCwgX0RHVFNJLFxuICAgIDAsXG4gICAgW19HVE5dLFxuICAgIFswXSwgMVxuXTtcbnZhciBEZXNjcmliZUdsb2JhbFRhYmxlU2V0dGluZ3NPdXRwdXQkID0gWzMsIG4wLCBfREdUU08sXG4gICAgMCxcbiAgICBbX0dUTiwgX1JTXSxcbiAgICBbMCwgKCkgPT4gUmVwbGljYVNldHRpbmdzRGVzY3JpcHRpb25MaXN0XVxuXTtcbnZhciBEZXNjcmliZUltcG9ydElucHV0JCA9IFszLCBuMCwgX0RJSWUsXG4gICAgMCxcbiAgICBbX0lBXSxcbiAgICBbMF0sIDFcbl07XG52YXIgRGVzY3JpYmVJbXBvcnRPdXRwdXQkID0gWzMsIG4wLCBfRElPZSxcbiAgICAwLFxuICAgIFtfSVREXSxcbiAgICBbKCkgPT4gSW1wb3J0VGFibGVEZXNjcmlwdGlvbiRdLCAxXG5dO1xudmFyIERlc2NyaWJlS2luZXNpc1N0cmVhbWluZ0Rlc3RpbmF0aW9uSW5wdXQkID0gWzMsIG4wLCBfREtTREksXG4gICAgMCxcbiAgICBbX1ROXSxcbiAgICBbMF0sIDFcbl07XG52YXIgRGVzY3JpYmVLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb25PdXRwdXQkID0gWzMsIG4wLCBfREtTRE8sXG4gICAgMCxcbiAgICBbX1ROLCBfS0RTRF0sXG4gICAgWzAsICgpID0+IEtpbmVzaXNEYXRhU3RyZWFtRGVzdGluYXRpb25zXVxuXTtcbnZhciBEZXNjcmliZUxpbWl0c0lucHV0JCA9IFszLCBuMCwgX0RMSSxcbiAgICAwLFxuICAgIFtdLFxuICAgIFtdXG5dO1xudmFyIERlc2NyaWJlTGltaXRzT3V0cHV0JCA9IFszLCBuMCwgX0RMTyxcbiAgICAwLFxuICAgIFtfQU1SQ1UsIF9BTVdDVSwgX1RNUkNVLCBfVE1XQ1VdLFxuICAgIFsxLCAxLCAxLCAxXVxuXTtcbnZhciBEZXNjcmliZVRhYmxlSW5wdXQkID0gWzMsIG4wLCBfRFRJZSxcbiAgICAwLFxuICAgIFtfVE5dLFxuICAgIFswXSwgMVxuXTtcbnZhciBEZXNjcmliZVRhYmxlT3V0cHV0JCA9IFszLCBuMCwgX0RUT2UsXG4gICAgMCxcbiAgICBbX1RdLFxuICAgIFsoKSA9PiBUYWJsZURlc2NyaXB0aW9uJF1cbl07XG52YXIgRGVzY3JpYmVUYWJsZVJlcGxpY2FBdXRvU2NhbGluZ0lucHV0JCA9IFszLCBuMCwgX0RUUkFTSSxcbiAgICAwLFxuICAgIFtfVE5dLFxuICAgIFswXSwgMVxuXTtcbnZhciBEZXNjcmliZVRhYmxlUmVwbGljYUF1dG9TY2FsaW5nT3V0cHV0JCA9IFszLCBuMCwgX0RUUkFTTyxcbiAgICAwLFxuICAgIFtfVEFTRF0sXG4gICAgWygpID0+IFRhYmxlQXV0b1NjYWxpbmdEZXNjcmlwdGlvbiRdXG5dO1xudmFyIERlc2NyaWJlVGltZVRvTGl2ZUlucHV0JCA9IFszLCBuMCwgX0RUVExJLFxuICAgIDAsXG4gICAgW19UTl0sXG4gICAgWzBdLCAxXG5dO1xudmFyIERlc2NyaWJlVGltZVRvTGl2ZU91dHB1dCQgPSBbMywgbjAsIF9EVFRMTyxcbiAgICAwLFxuICAgIFtfVFRMRF0sXG4gICAgWygpID0+IFRpbWVUb0xpdmVEZXNjcmlwdGlvbiRdXG5dO1xudmFyIER1cGxpY2F0ZUl0ZW1FeGNlcHRpb24kID0gWy0zLCBuMCwgX0RJRSxcbiAgICB7IFtfZV06IF9jIH0sXG4gICAgW19tXSxcbiAgICBbMF1cbl07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihEdXBsaWNhdGVJdGVtRXhjZXB0aW9uJCwgRHVwbGljYXRlSXRlbUV4Y2VwdGlvbik7XG52YXIgRW5hYmxlS2luZXNpc1N0cmVhbWluZ0NvbmZpZ3VyYXRpb24kID0gWzMsIG4wLCBfRUtTQyxcbiAgICAwLFxuICAgIFtfQUNEVFBdLFxuICAgIFswXVxuXTtcbnZhciBFbmRwb2ludCQgPSBbMywgbjAsIF9FbmQsXG4gICAgMCxcbiAgICBbX0FkLCBfQ1BJTV0sXG4gICAgWzAsIDFdLCAyXG5dO1xudmFyIEV4ZWN1dGVTdGF0ZW1lbnRJbnB1dCQgPSBbMywgbjAsIF9FU0ksXG4gICAgMCxcbiAgICBbX1N0LCBfUCwgX0NSLCBfTlQsIF9SQ0MsIF9MLCBfUlZPQ0NGXSxcbiAgICBbMCwgKCkgPT4gUHJlcGFyZWRTdGF0ZW1lbnRQYXJhbWV0ZXJzLCAyLCAwLCAwLCAxLCAwXSwgMVxuXTtcbnZhciBFeGVjdXRlU3RhdGVtZW50T3V0cHV0JCA9IFszLCBuMCwgX0VTTyxcbiAgICAwLFxuICAgIFtfSXQsIF9OVCwgX0NDLCBfTEVLXSxcbiAgICBbKCkgPT4gSXRlbUxpc3QsIDAsICgpID0+IENvbnN1bWVkQ2FwYWNpdHkkLCAoKSA9PiBLZXldXG5dO1xudmFyIEV4ZWN1dGVUcmFuc2FjdGlvbklucHV0JCA9IFszLCBuMCwgX0VUSSxcbiAgICAwLFxuICAgIFtfVFMsIF9DUlQsIF9SQ0NdLFxuICAgIFsoKSA9PiBQYXJhbWV0ZXJpemVkU3RhdGVtZW50cywgWzAsIDRdLCAwXSwgMVxuXTtcbnZhciBFeGVjdXRlVHJhbnNhY3Rpb25PdXRwdXQkID0gWzMsIG4wLCBfRVRPLFxuICAgIDAsXG4gICAgW19SLCBfQ0NdLFxuICAgIFsoKSA9PiBJdGVtUmVzcG9uc2VMaXN0LCAoKSA9PiBDb25zdW1lZENhcGFjaXR5TXVsdGlwbGVdXG5dO1xudmFyIEV4cGVjdGVkQXR0cmlidXRlVmFsdWUkID0gWzMsIG4wLCBfRUFWeCxcbiAgICAwLFxuICAgIFtfViwgX0V4aSwgX0NPLCBfQVZMXSxcbiAgICBbKCkgPT4gQXR0cmlidXRlVmFsdWUkLCAyLCAwLCAoKSA9PiBBdHRyaWJ1dGVWYWx1ZUxpc3RdXG5dO1xudmFyIEV4cG9ydENvbmZsaWN0RXhjZXB0aW9uJCA9IFstMywgbjAsIF9FQ0UsXG4gICAgeyBbX2VdOiBfYyB9LFxuICAgIFtfbV0sXG4gICAgWzBdXG5dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoRXhwb3J0Q29uZmxpY3RFeGNlcHRpb24kLCBFeHBvcnRDb25mbGljdEV4Y2VwdGlvbik7XG52YXIgRXhwb3J0RGVzY3JpcHRpb24kID0gWzMsIG4wLCBfRUQsXG4gICAgMCxcbiAgICBbX0VBLCBfRVMsIF9TVCwgX0VULCBfRU0sIF9UQSwgX1RJLCBfRVR4LCBfQ1QsIF9TQiwgX1NCTywgX1NQciwgX1NTQSwgX1NTS0tJLCBfRkMsIF9GTSwgX0VGLCBfQlNCaSwgX0lDLCBfRVR4cCwgX0lFU10sXG4gICAgWzAsIDAsIDQsIDQsIDAsIDAsIDAsIDQsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEsIDEsIDAsICgpID0+IEluY3JlbWVudGFsRXhwb3J0U3BlY2lmaWNhdGlvbiRdXG5dO1xudmFyIEV4cG9ydE5vdEZvdW5kRXhjZXB0aW9uJCA9IFstMywgbjAsIF9FTkZFLFxuICAgIHsgW19lXTogX2MgfSxcbiAgICBbX21dLFxuICAgIFswXVxuXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKEV4cG9ydE5vdEZvdW5kRXhjZXB0aW9uJCwgRXhwb3J0Tm90Rm91bmRFeGNlcHRpb24pO1xudmFyIEV4cG9ydFN1bW1hcnkkID0gWzMsIG4wLCBfRVN4LFxuICAgIDAsXG4gICAgW19FQSwgX0VTLCBfRVR4cF0sXG4gICAgWzAsIDAsIDBdXG5dO1xudmFyIEV4cG9ydFRhYmxlVG9Qb2ludEluVGltZUlucHV0JCA9IFszLCBuMCwgX0VUVFBJVEksXG4gICAgMCxcbiAgICBbX1RBLCBfU0IsIF9FVHgsIF9DVCwgX1NCTywgX1NQciwgX1NTQSwgX1NTS0tJLCBfRUYsIF9FVHhwLCBfSUVTXSxcbiAgICBbMCwgMCwgNCwgWzAsIDRdLCAwLCAwLCAwLCAwLCAwLCAwLCAoKSA9PiBJbmNyZW1lbnRhbEV4cG9ydFNwZWNpZmljYXRpb24kXSwgMlxuXTtcbnZhciBFeHBvcnRUYWJsZVRvUG9pbnRJblRpbWVPdXRwdXQkID0gWzMsIG4wLCBfRVRUUElUTyxcbiAgICAwLFxuICAgIFtfRURdLFxuICAgIFsoKSA9PiBFeHBvcnREZXNjcmlwdGlvbiRdXG5dO1xudmFyIEZhaWx1cmVFeGNlcHRpb24kID0gWzMsIG4wLCBfRkUsXG4gICAgMCxcbiAgICBbX0VOLCBfRUR4XSxcbiAgICBbMCwgMF1cbl07XG52YXIgR2V0JCA9IFszLCBuMCwgX0csXG4gICAgMCxcbiAgICBbX0ssIF9UTiwgX1BFLCBfRUFOXSxcbiAgICBbKCkgPT4gS2V5LCAwLCAwLCAxMjggfCAwXSwgMlxuXTtcbnZhciBHZXRJdGVtSW5wdXQkID0gWzMsIG4wLCBfR0lJLFxuICAgIDAsXG4gICAgW19UTiwgX0ssIF9BVEcsIF9DUiwgX1JDQywgX1BFLCBfRUFOXSxcbiAgICBbMCwgKCkgPT4gS2V5LCA2NCB8IDAsIDIsIDAsIDAsIDEyOCB8IDBdLCAyXG5dO1xudmFyIEdldEl0ZW1PdXRwdXQkID0gWzMsIG4wLCBfR0lPLFxuICAgIDAsXG4gICAgW19JLCBfQ0NdLFxuICAgIFsoKSA9PiBBdHRyaWJ1dGVNYXAsICgpID0+IENvbnN1bWVkQ2FwYWNpdHkkXVxuXTtcbnZhciBHZXRSZXNvdXJjZVBvbGljeUlucHV0JCA9IFszLCBuMCwgX0dSUEksXG4gICAgMCxcbiAgICBbX1JBXSxcbiAgICBbMF0sIDFcbl07XG52YXIgR2V0UmVzb3VyY2VQb2xpY3lPdXRwdXQkID0gWzMsIG4wLCBfR1JQTyxcbiAgICAwLFxuICAgIFtfUG8sIF9SSWVdLFxuICAgIFswLCAwXVxuXTtcbnZhciBHbG9iYWxTZWNvbmRhcnlJbmRleCQgPSBbMywgbjAsIF9HU0lsLFxuICAgIDAsXG4gICAgW19JTiwgX0tTLCBfUHIsIF9QVCwgX09EVCwgX1dUXSxcbiAgICBbMCwgKCkgPT4gS2V5U2NoZW1hLCAoKSA9PiBQcm9qZWN0aW9uJCwgKCkgPT4gUHJvdmlzaW9uZWRUaHJvdWdocHV0JCwgKCkgPT4gT25EZW1hbmRUaHJvdWdocHV0JCwgKCkgPT4gV2FybVRocm91Z2hwdXQkXSwgM1xuXTtcbnZhciBHbG9iYWxTZWNvbmRhcnlJbmRleEF1dG9TY2FsaW5nVXBkYXRlJCA9IFszLCBuMCwgX0dTSUFTVSxcbiAgICAwLFxuICAgIFtfSU4sIF9QV0NBU1VdLFxuICAgIFswLCAoKSA9PiBBdXRvU2NhbGluZ1NldHRpbmdzVXBkYXRlJF1cbl07XG52YXIgR2xvYmFsU2Vjb25kYXJ5SW5kZXhEZXNjcmlwdGlvbiQgPSBbMywgbjAsIF9HU0lELFxuICAgIDAsXG4gICAgW19JTiwgX0tTLCBfUHIsIF9JUywgX0IsIF9QVCwgX0lTQiwgX0lDLCBfSUFuLCBfT0RULCBfV1RdLFxuICAgIFswLCAoKSA9PiBLZXlTY2hlbWEsICgpID0+IFByb2plY3Rpb24kLCAwLCAyLCAoKSA9PiBQcm92aXNpb25lZFRocm91Z2hwdXREZXNjcmlwdGlvbiQsIDEsIDEsIDAsICgpID0+IE9uRGVtYW5kVGhyb3VnaHB1dCQsICgpID0+IEdsb2JhbFNlY29uZGFyeUluZGV4V2FybVRocm91Z2hwdXREZXNjcmlwdGlvbiRdXG5dO1xudmFyIEdsb2JhbFNlY29uZGFyeUluZGV4SW5mbyQgPSBbMywgbjAsIF9HU0lJLFxuICAgIDAsXG4gICAgW19JTiwgX0tTLCBfUHIsIF9QVCwgX09EVF0sXG4gICAgWzAsICgpID0+IEtleVNjaGVtYSwgKCkgPT4gUHJvamVjdGlvbiQsICgpID0+IFByb3Zpc2lvbmVkVGhyb3VnaHB1dCQsICgpID0+IE9uRGVtYW5kVGhyb3VnaHB1dCRdXG5dO1xudmFyIEdsb2JhbFNlY29uZGFyeUluZGV4VXBkYXRlJCA9IFszLCBuMCwgX0dTSVUsXG4gICAgMCxcbiAgICBbX1UsIF9DciwgX0RlXSxcbiAgICBbKCkgPT4gVXBkYXRlR2xvYmFsU2Vjb25kYXJ5SW5kZXhBY3Rpb24kLCAoKSA9PiBDcmVhdGVHbG9iYWxTZWNvbmRhcnlJbmRleEFjdGlvbiQsICgpID0+IERlbGV0ZUdsb2JhbFNlY29uZGFyeUluZGV4QWN0aW9uJF1cbl07XG52YXIgR2xvYmFsU2Vjb25kYXJ5SW5kZXhXYXJtVGhyb3VnaHB1dERlc2NyaXB0aW9uJCA9IFszLCBuMCwgX0dTSVdURCxcbiAgICAwLFxuICAgIFtfUlVQUywgX1dVUFMsIF9TdGFdLFxuICAgIFsxLCAxLCAwXVxuXTtcbnZhciBHbG9iYWxUYWJsZSQgPSBbMywgbjAsIF9HVCxcbiAgICAwLFxuICAgIFtfR1ROLCBfUkddLFxuICAgIFswLCAoKSA9PiBSZXBsaWNhTGlzdF1cbl07XG52YXIgR2xvYmFsVGFibGVBbHJlYWR5RXhpc3RzRXhjZXB0aW9uJCA9IFstMywgbjAsIF9HVEFFRSxcbiAgICB7IFtfZV06IF9jIH0sXG4gICAgW19tXSxcbiAgICBbMF1cbl07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihHbG9iYWxUYWJsZUFscmVhZHlFeGlzdHNFeGNlcHRpb24kLCBHbG9iYWxUYWJsZUFscmVhZHlFeGlzdHNFeGNlcHRpb24pO1xudmFyIEdsb2JhbFRhYmxlRGVzY3JpcHRpb24kID0gWzMsIG4wLCBfR1RELFxuICAgIDAsXG4gICAgW19SRywgX0dUQSwgX0NEVCwgX0dUUywgX0dUTl0sXG4gICAgWygpID0+IFJlcGxpY2FEZXNjcmlwdGlvbkxpc3QsIDAsIDQsIDAsIDBdXG5dO1xudmFyIEdsb2JhbFRhYmxlR2xvYmFsU2Vjb25kYXJ5SW5kZXhTZXR0aW5nc1VwZGF0ZSQgPSBbMywgbjAsIF9HVEdTSVNVLFxuICAgIDAsXG4gICAgW19JTiwgX1BXQ1UsIF9QV0NBU1NVXSxcbiAgICBbMCwgMSwgKCkgPT4gQXV0b1NjYWxpbmdTZXR0aW5nc1VwZGF0ZSRdLCAxXG5dO1xudmFyIEdsb2JhbFRhYmxlTm90Rm91bmRFeGNlcHRpb24kID0gWy0zLCBuMCwgX0dUTkZFLFxuICAgIHsgW19lXTogX2MgfSxcbiAgICBbX21dLFxuICAgIFswXVxuXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKEdsb2JhbFRhYmxlTm90Rm91bmRFeGNlcHRpb24kLCBHbG9iYWxUYWJsZU5vdEZvdW5kRXhjZXB0aW9uKTtcbnZhciBHbG9iYWxUYWJsZVdpdG5lc3NEZXNjcmlwdGlvbiQgPSBbMywgbjAsIF9HVFdELFxuICAgIDAsXG4gICAgW19STiwgX1dTXSxcbiAgICBbMCwgMF1cbl07XG52YXIgR2xvYmFsVGFibGVXaXRuZXNzR3JvdXBVcGRhdGUkID0gWzMsIG4wLCBfR1RXR1UsXG4gICAgMCxcbiAgICBbX0NyLCBfRGVdLFxuICAgIFsoKSA9PiBDcmVhdGVHbG9iYWxUYWJsZVdpdG5lc3NHcm91cE1lbWJlckFjdGlvbiQsICgpID0+IERlbGV0ZUdsb2JhbFRhYmxlV2l0bmVzc0dyb3VwTWVtYmVyQWN0aW9uJF1cbl07XG52YXIgSWRlbXBvdGVudFBhcmFtZXRlck1pc21hdGNoRXhjZXB0aW9uJCA9IFstMywgbjAsIF9JUE1FLFxuICAgIHsgW19lXTogX2MgfSxcbiAgICBbX01dLFxuICAgIFswXVxuXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKElkZW1wb3RlbnRQYXJhbWV0ZXJNaXNtYXRjaEV4Y2VwdGlvbiQsIElkZW1wb3RlbnRQYXJhbWV0ZXJNaXNtYXRjaEV4Y2VwdGlvbik7XG52YXIgSW1wb3J0Q29uZmxpY3RFeGNlcHRpb24kID0gWy0zLCBuMCwgX0lDRSxcbiAgICB7IFtfZV06IF9jIH0sXG4gICAgW19tXSxcbiAgICBbMF1cbl07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihJbXBvcnRDb25mbGljdEV4Y2VwdGlvbiQsIEltcG9ydENvbmZsaWN0RXhjZXB0aW9uKTtcbnZhciBJbXBvcnROb3RGb3VuZEV4Y2VwdGlvbiQgPSBbLTMsIG4wLCBfSU5GRSxcbiAgICB7IFtfZV06IF9jIH0sXG4gICAgW19tXSxcbiAgICBbMF1cbl07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihJbXBvcnROb3RGb3VuZEV4Y2VwdGlvbiQsIEltcG9ydE5vdEZvdW5kRXhjZXB0aW9uKTtcbnZhciBJbXBvcnRTdW1tYXJ5JCA9IFszLCBuMCwgX0lTbSxcbiAgICAwLFxuICAgIFtfSUEsIF9JU21wLCBfVEEsIF9TQlMsIF9DV0xHQSwgX0lGLCBfU1QsIF9FVF0sXG4gICAgWzAsIDAsIDAsICgpID0+IFMzQnVja2V0U291cmNlJCwgMCwgMCwgNCwgNF1cbl07XG52YXIgSW1wb3J0VGFibGVEZXNjcmlwdGlvbiQgPSBbMywgbjAsIF9JVEQsXG4gICAgMCxcbiAgICBbX0lBLCBfSVNtcCwgX1RBLCBfVEksIF9DVCwgX1NCUywgX0VDLCBfQ1dMR0EsIF9JRiwgX0lGTywgX0lDVCwgX1RDUCwgX1NULCBfRVQsIF9QU0IsIF9QSUMsIF9JSUMsIF9GQywgX0ZNXSxcbiAgICBbMCwgMCwgMCwgMCwgMCwgKCkgPT4gUzNCdWNrZXRTb3VyY2UkLCAxLCAwLCAwLCAoKSA9PiBJbnB1dEZvcm1hdE9wdGlvbnMkLCAwLCAoKSA9PiBUYWJsZUNyZWF0aW9uUGFyYW1ldGVycyQsIDQsIDQsIDEsIDEsIDEsIDAsIDBdXG5dO1xudmFyIEltcG9ydFRhYmxlSW5wdXQkID0gWzMsIG4wLCBfSVRJLFxuICAgIDAsXG4gICAgW19TQlMsIF9JRiwgX1RDUCwgX0NULCBfSUZPLCBfSUNUXSxcbiAgICBbKCkgPT4gUzNCdWNrZXRTb3VyY2UkLCAwLCAoKSA9PiBUYWJsZUNyZWF0aW9uUGFyYW1ldGVycyQsIFswLCA0XSwgKCkgPT4gSW5wdXRGb3JtYXRPcHRpb25zJCwgMF0sIDNcbl07XG52YXIgSW1wb3J0VGFibGVPdXRwdXQkID0gWzMsIG4wLCBfSVRPLFxuICAgIDAsXG4gICAgW19JVERdLFxuICAgIFsoKSA9PiBJbXBvcnRUYWJsZURlc2NyaXB0aW9uJF0sIDFcbl07XG52YXIgSW5jcmVtZW50YWxFeHBvcnRTcGVjaWZpY2F0aW9uJCA9IFszLCBuMCwgX0lFUyxcbiAgICAwLFxuICAgIFtfRUZULCBfRVRULCBfRVZUXSxcbiAgICBbNCwgNCwgMF1cbl07XG52YXIgSW5kZXhOb3RGb3VuZEV4Y2VwdGlvbiQgPSBbLTMsIG4wLCBfSU5GRW4sXG4gICAgeyBbX2VdOiBfYyB9LFxuICAgIFtfbV0sXG4gICAgWzBdXG5dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoSW5kZXhOb3RGb3VuZEV4Y2VwdGlvbiQsIEluZGV4Tm90Rm91bmRFeGNlcHRpb24pO1xudmFyIElucHV0Rm9ybWF0T3B0aW9ucyQgPSBbMywgbjAsIF9JRk8sXG4gICAgMCxcbiAgICBbX0NzXSxcbiAgICBbKCkgPT4gQ3N2T3B0aW9ucyRdXG5dO1xudmFyIEludGVybmFsU2VydmVyRXJyb3IkID0gWy0zLCBuMCwgX0lTRSxcbiAgICB7IFtfZV06IF9zIH0sXG4gICAgW19tXSxcbiAgICBbMF1cbl07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihJbnRlcm5hbFNlcnZlckVycm9yJCwgSW50ZXJuYWxTZXJ2ZXJFcnJvcik7XG52YXIgSW52YWxpZEVuZHBvaW50RXhjZXB0aW9uJCA9IFstMywgbjAsIF9JRUUsXG4gICAgeyBbX2VdOiBfYywgW19oRV06IDQyMSB9LFxuICAgIFtfTV0sXG4gICAgWzBdXG5dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoSW52YWxpZEVuZHBvaW50RXhjZXB0aW9uJCwgSW52YWxpZEVuZHBvaW50RXhjZXB0aW9uKTtcbnZhciBJbnZhbGlkRXhwb3J0VGltZUV4Y2VwdGlvbiQgPSBbLTMsIG4wLCBfSUVURSxcbiAgICB7IFtfZV06IF9jIH0sXG4gICAgW19tXSxcbiAgICBbMF1cbl07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihJbnZhbGlkRXhwb3J0VGltZUV4Y2VwdGlvbiQsIEludmFsaWRFeHBvcnRUaW1lRXhjZXB0aW9uKTtcbnZhciBJbnZhbGlkUmVzdG9yZVRpbWVFeGNlcHRpb24kID0gWy0zLCBuMCwgX0lSVEUsXG4gICAgeyBbX2VdOiBfYyB9LFxuICAgIFtfbV0sXG4gICAgWzBdXG5dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoSW52YWxpZFJlc3RvcmVUaW1lRXhjZXB0aW9uJCwgSW52YWxpZFJlc3RvcmVUaW1lRXhjZXB0aW9uKTtcbnZhciBJdGVtQ29sbGVjdGlvbk1ldHJpY3MkID0gWzMsIG4wLCBfSUNNLFxuICAgIDAsXG4gICAgW19JQ0ssIF9TRVJHQl0sXG4gICAgWygpID0+IEl0ZW1Db2xsZWN0aW9uS2V5QXR0cmlidXRlTWFwLCA2NCB8IDFdXG5dO1xudmFyIEl0ZW1Db2xsZWN0aW9uU2l6ZUxpbWl0RXhjZWVkZWRFeGNlcHRpb24kID0gWy0zLCBuMCwgX0lDU0xFRSxcbiAgICB7IFtfZV06IF9jIH0sXG4gICAgW19tXSxcbiAgICBbMF1cbl07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihJdGVtQ29sbGVjdGlvblNpemVMaW1pdEV4Y2VlZGVkRXhjZXB0aW9uJCwgSXRlbUNvbGxlY3Rpb25TaXplTGltaXRFeGNlZWRlZEV4Y2VwdGlvbik7XG52YXIgSXRlbVJlc3BvbnNlJCA9IFszLCBuMCwgX0lSLFxuICAgIDAsXG4gICAgW19JXSxcbiAgICBbKCkgPT4gQXR0cmlidXRlTWFwXVxuXTtcbnZhciBLZXlzQW5kQXR0cmlidXRlcyQgPSBbMywgbjAsIF9LQUEsXG4gICAgMCxcbiAgICBbX0tlLCBfQVRHLCBfQ1IsIF9QRSwgX0VBTl0sXG4gICAgWygpID0+IEtleUxpc3QsIDY0IHwgMCwgMiwgMCwgMTI4IHwgMF0sIDFcbl07XG52YXIgS2V5U2NoZW1hRWxlbWVudCQgPSBbMywgbjAsIF9LU0UsXG4gICAgMCxcbiAgICBbX0FOLCBfS1RdLFxuICAgIFswLCAwXSwgMlxuXTtcbnZhciBLaW5lc2lzRGF0YVN0cmVhbURlc3RpbmF0aW9uJCA9IFszLCBuMCwgX0tEU0RpLFxuICAgIDAsXG4gICAgW19TQSwgX0RTLCBfRFNELCBfQUNEVFBdLFxuICAgIFswLCAwLCAwLCAwXVxuXTtcbnZhciBLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb25JbnB1dCQgPSBbMywgbjAsIF9LU0RJLFxuICAgIDAsXG4gICAgW19UTiwgX1NBLCBfRUtTQ10sXG4gICAgWzAsIDAsICgpID0+IEVuYWJsZUtpbmVzaXNTdHJlYW1pbmdDb25maWd1cmF0aW9uJF0sIDJcbl07XG52YXIgS2luZXNpc1N0cmVhbWluZ0Rlc3RpbmF0aW9uT3V0cHV0JCA9IFszLCBuMCwgX0tTRE8sXG4gICAgMCxcbiAgICBbX1ROLCBfU0EsIF9EUywgX0VLU0NdLFxuICAgIFswLCAwLCAwLCAoKSA9PiBFbmFibGVLaW5lc2lzU3RyZWFtaW5nQ29uZmlndXJhdGlvbiRdXG5dO1xudmFyIExpbWl0RXhjZWVkZWRFeGNlcHRpb24kID0gWy0zLCBuMCwgX0xFRSxcbiAgICB7IFtfZV06IF9jIH0sXG4gICAgW19tXSxcbiAgICBbMF1cbl07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihMaW1pdEV4Y2VlZGVkRXhjZXB0aW9uJCwgTGltaXRFeGNlZWRlZEV4Y2VwdGlvbik7XG52YXIgTGlzdEJhY2t1cHNJbnB1dCQgPSBbMywgbjAsIF9MQkksXG4gICAgMCxcbiAgICBbX1ROLCBfTCwgX1RSTEIsIF9UUlVCLCBfRVNCQSwgX0JUXSxcbiAgICBbMCwgMSwgNCwgNCwgMCwgMF1cbl07XG52YXIgTGlzdEJhY2t1cHNPdXRwdXQkID0gWzMsIG4wLCBfTEJPLFxuICAgIDAsXG4gICAgW19CU2FjLCBfTEVCQV0sXG4gICAgWygpID0+IEJhY2t1cFN1bW1hcmllcywgMF1cbl07XG52YXIgTGlzdENvbnRyaWJ1dG9ySW5zaWdodHNJbnB1dCQgPSBbMywgbjAsIF9MQ0lJLFxuICAgIDAsXG4gICAgW19UTiwgX05ULCBfTVJdLFxuICAgIFswLCAwLCAxXVxuXTtcbnZhciBMaXN0Q29udHJpYnV0b3JJbnNpZ2h0c091dHB1dCQgPSBbMywgbjAsIF9MQ0lPLFxuICAgIDAsXG4gICAgW19DSVNvbiwgX05UXSxcbiAgICBbKCkgPT4gQ29udHJpYnV0b3JJbnNpZ2h0c1N1bW1hcmllcywgMF1cbl07XG52YXIgTGlzdEV4cG9ydHNJbnB1dCQgPSBbMywgbjAsIF9MRUksXG4gICAgMCxcbiAgICBbX1RBLCBfTVIsIF9OVF0sXG4gICAgWzAsIDEsIDBdXG5dO1xudmFyIExpc3RFeHBvcnRzT3V0cHV0JCA9IFszLCBuMCwgX0xFTyxcbiAgICAwLFxuICAgIFtfRVN4cCwgX05UXSxcbiAgICBbKCkgPT4gRXhwb3J0U3VtbWFyaWVzLCAwXVxuXTtcbnZhciBMaXN0R2xvYmFsVGFibGVzSW5wdXQkID0gWzMsIG4wLCBfTEdUSSxcbiAgICAwLFxuICAgIFtfRVNHVE4sIF9MLCBfUk5dLFxuICAgIFswLCAxLCAwXVxuXTtcbnZhciBMaXN0R2xvYmFsVGFibGVzT3V0cHV0JCA9IFszLCBuMCwgX0xHVE8sXG4gICAgMCxcbiAgICBbX0dUbCwgX0xFR1ROXSxcbiAgICBbKCkgPT4gR2xvYmFsVGFibGVMaXN0LCAwXVxuXTtcbnZhciBMaXN0SW1wb3J0c0lucHV0JCA9IFszLCBuMCwgX0xJSSxcbiAgICAwLFxuICAgIFtfVEEsIF9QUywgX05UXSxcbiAgICBbMCwgMSwgMF1cbl07XG52YXIgTGlzdEltcG9ydHNPdXRwdXQkID0gWzMsIG4wLCBfTElPLFxuICAgIDAsXG4gICAgW19JU0wsIF9OVF0sXG4gICAgWygpID0+IEltcG9ydFN1bW1hcnlMaXN0LCAwXVxuXTtcbnZhciBMaXN0VGFibGVzSW5wdXQkID0gWzMsIG4wLCBfTFRJLFxuICAgIDAsXG4gICAgW19FU1ROLCBfTF0sXG4gICAgWzAsIDFdXG5dO1xudmFyIExpc3RUYWJsZXNPdXRwdXQkID0gWzMsIG4wLCBfTFRPLFxuICAgIDAsXG4gICAgW19UTmEsIF9MRVROXSxcbiAgICBbNjQgfCAwLCAwXVxuXTtcbnZhciBMaXN0VGFnc09mUmVzb3VyY2VJbnB1dCQgPSBbMywgbjAsIF9MVE9SSSxcbiAgICAwLFxuICAgIFtfUkEsIF9OVF0sXG4gICAgWzAsIDBdLCAxXG5dO1xudmFyIExpc3RUYWdzT2ZSZXNvdXJjZU91dHB1dCQgPSBbMywgbjAsIF9MVE9STyxcbiAgICAwLFxuICAgIFtfVGEsIF9OVF0sXG4gICAgWygpID0+IFRhZ0xpc3QsIDBdXG5dO1xudmFyIExvY2FsU2Vjb25kYXJ5SW5kZXgkID0gWzMsIG4wLCBfTFNJbyxcbiAgICAwLFxuICAgIFtfSU4sIF9LUywgX1ByXSxcbiAgICBbMCwgKCkgPT4gS2V5U2NoZW1hLCAoKSA9PiBQcm9qZWN0aW9uJF0sIDNcbl07XG52YXIgTG9jYWxTZWNvbmRhcnlJbmRleERlc2NyaXB0aW9uJCA9IFszLCBuMCwgX0xTSUQsXG4gICAgMCxcbiAgICBbX0lOLCBfS1MsIF9QciwgX0lTQiwgX0lDLCBfSUFuXSxcbiAgICBbMCwgKCkgPT4gS2V5U2NoZW1hLCAoKSA9PiBQcm9qZWN0aW9uJCwgMSwgMSwgMF1cbl07XG52YXIgTG9jYWxTZWNvbmRhcnlJbmRleEluZm8kID0gWzMsIG4wLCBfTFNJSSxcbiAgICAwLFxuICAgIFtfSU4sIF9LUywgX1ByXSxcbiAgICBbMCwgKCkgPT4gS2V5U2NoZW1hLCAoKSA9PiBQcm9qZWN0aW9uJF1cbl07XG52YXIgT25EZW1hbmRUaHJvdWdocHV0JCA9IFszLCBuMCwgX09EVCxcbiAgICAwLFxuICAgIFtfTVJSVSwgX01XUlVdLFxuICAgIFsxLCAxXVxuXTtcbnZhciBPbkRlbWFuZFRocm91Z2hwdXRPdmVycmlkZSQgPSBbMywgbjAsIF9PRFRPLFxuICAgIDAsXG4gICAgW19NUlJVXSxcbiAgICBbMV1cbl07XG52YXIgUGFyYW1ldGVyaXplZFN0YXRlbWVudCQgPSBbMywgbjAsIF9QU2EsXG4gICAgMCxcbiAgICBbX1N0LCBfUCwgX1JWT0NDRl0sXG4gICAgWzAsICgpID0+IFByZXBhcmVkU3RhdGVtZW50UGFyYW1ldGVycywgMF0sIDFcbl07XG52YXIgUG9pbnRJblRpbWVSZWNvdmVyeURlc2NyaXB0aW9uJCA9IFszLCBuMCwgX1BJVFJELFxuICAgIDAsXG4gICAgW19QSVRSUywgX1JQSUQsIF9FUkRULCBfTFJEVF0sXG4gICAgWzAsIDEsIDQsIDRdXG5dO1xudmFyIFBvaW50SW5UaW1lUmVjb3ZlcnlTcGVjaWZpY2F0aW9uJCA9IFszLCBuMCwgX1BJVFJTbyxcbiAgICAwLFxuICAgIFtfUElUUkUsIF9SUElEXSxcbiAgICBbMiwgMV0sIDFcbl07XG52YXIgUG9pbnRJblRpbWVSZWNvdmVyeVVuYXZhaWxhYmxlRXhjZXB0aW9uJCA9IFstMywgbjAsIF9QSVRSVUUsXG4gICAgeyBbX2VdOiBfYyB9LFxuICAgIFtfbV0sXG4gICAgWzBdXG5dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoUG9pbnRJblRpbWVSZWNvdmVyeVVuYXZhaWxhYmxlRXhjZXB0aW9uJCwgUG9pbnRJblRpbWVSZWNvdmVyeVVuYXZhaWxhYmxlRXhjZXB0aW9uKTtcbnZhciBQb2xpY3lOb3RGb3VuZEV4Y2VwdGlvbiQgPSBbLTMsIG4wLCBfUE5GRSxcbiAgICB7IFtfZV06IF9jIH0sXG4gICAgW19tXSxcbiAgICBbMF1cbl07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihQb2xpY3lOb3RGb3VuZEV4Y2VwdGlvbiQsIFBvbGljeU5vdEZvdW5kRXhjZXB0aW9uKTtcbnZhciBQcm9qZWN0aW9uJCA9IFszLCBuMCwgX1ByLFxuICAgIDAsXG4gICAgW19QVHIsIF9OS0FdLFxuICAgIFswLCA2NCB8IDBdXG5dO1xudmFyIFByb3Zpc2lvbmVkVGhyb3VnaHB1dCQgPSBbMywgbjAsIF9QVCxcbiAgICAwLFxuICAgIFtfUkNVLCBfV0NVXSxcbiAgICBbMSwgMV0sIDJcbl07XG52YXIgUHJvdmlzaW9uZWRUaHJvdWdocHV0RGVzY3JpcHRpb24kID0gWzMsIG4wLCBfUFRELFxuICAgIDAsXG4gICAgW19MSURULCBfTEREVCwgX05PRFQsIF9SQ1UsIF9XQ1VdLFxuICAgIFs0LCA0LCAxLCAxLCAxXVxuXTtcbnZhciBQcm92aXNpb25lZFRocm91Z2hwdXRFeGNlZWRlZEV4Y2VwdGlvbiQgPSBbLTMsIG4wLCBfUFRFRSxcbiAgICB7IFtfZV06IF9jIH0sXG4gICAgW19tLCBfVFJdLFxuICAgIFswLCAoKSA9PiBUaHJvdHRsaW5nUmVhc29uTGlzdF1cbl07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihQcm92aXNpb25lZFRocm91Z2hwdXRFeGNlZWRlZEV4Y2VwdGlvbiQsIFByb3Zpc2lvbmVkVGhyb3VnaHB1dEV4Y2VlZGVkRXhjZXB0aW9uKTtcbnZhciBQcm92aXNpb25lZFRocm91Z2hwdXRPdmVycmlkZSQgPSBbMywgbjAsIF9QVE8sXG4gICAgMCxcbiAgICBbX1JDVV0sXG4gICAgWzFdXG5dO1xudmFyIFB1dCQgPSBbMywgbjAsIF9QdSxcbiAgICAwLFxuICAgIFtfSSwgX1ROLCBfQ0UsIF9FQU4sIF9FQVYsIF9SVk9DQ0ZdLFxuICAgIFsoKSA9PiBQdXRJdGVtSW5wdXRBdHRyaWJ1dGVNYXAsIDAsIDAsIDEyOCB8IDAsICgpID0+IEV4cHJlc3Npb25BdHRyaWJ1dGVWYWx1ZU1hcCwgMF0sIDJcbl07XG52YXIgUHV0SXRlbUlucHV0JCA9IFszLCBuMCwgX1BJSSxcbiAgICAwLFxuICAgIFtfVE4sIF9JLCBfRXgsIF9SViwgX1JDQywgX1JJQ00sIF9DT28sIF9DRSwgX0VBTiwgX0VBViwgX1JWT0NDRl0sXG4gICAgWzAsICgpID0+IFB1dEl0ZW1JbnB1dEF0dHJpYnV0ZU1hcCwgKCkgPT4gRXhwZWN0ZWRBdHRyaWJ1dGVNYXAsIDAsIDAsIDAsIDAsIDAsIDEyOCB8IDAsICgpID0+IEV4cHJlc3Npb25BdHRyaWJ1dGVWYWx1ZU1hcCwgMF0sIDJcbl07XG52YXIgUHV0SXRlbU91dHB1dCQgPSBbMywgbjAsIF9QSU8sXG4gICAgMCxcbiAgICBbX0F0LCBfQ0MsIF9JQ01dLFxuICAgIFsoKSA9PiBBdHRyaWJ1dGVNYXAsICgpID0+IENvbnN1bWVkQ2FwYWNpdHkkLCAoKSA9PiBJdGVtQ29sbGVjdGlvbk1ldHJpY3MkXVxuXTtcbnZhciBQdXRSZXF1ZXN0JCA9IFszLCBuMCwgX1BSLFxuICAgIDAsXG4gICAgW19JXSxcbiAgICBbKCkgPT4gUHV0SXRlbUlucHV0QXR0cmlidXRlTWFwXSwgMVxuXTtcbnZhciBQdXRSZXNvdXJjZVBvbGljeUlucHV0JCA9IFszLCBuMCwgX1BSUEksXG4gICAgMCxcbiAgICBbX1JBLCBfUG8sIF9FUkksIF9DUlNSQV0sXG4gICAgWzAsIDAsIDAsIFsyLCB7IFtfaEhdOiBfeGFjcnNyYSB9XV0sIDJcbl07XG52YXIgUHV0UmVzb3VyY2VQb2xpY3lPdXRwdXQkID0gWzMsIG4wLCBfUFJQTyxcbiAgICAwLFxuICAgIFtfUkllXSxcbiAgICBbMF1cbl07XG52YXIgUXVlcnlJbnB1dCQgPSBbMywgbjAsIF9RSSxcbiAgICAwLFxuICAgIFtfVE4sIF9JTiwgX1NlLCBfQVRHLCBfTCwgX0NSLCBfS0MsIF9RRiwgX0NPbywgX1NJRiwgX0VTSywgX1JDQywgX1BFLCBfRkVpLCBfS0NFLCBfRUFOLCBfRUFWXSxcbiAgICBbMCwgMCwgMCwgNjQgfCAwLCAxLCAyLCAoKSA9PiBLZXlDb25kaXRpb25zLCAoKSA9PiBGaWx0ZXJDb25kaXRpb25NYXAsIDAsIDIsICgpID0+IEtleSwgMCwgMCwgMCwgMCwgMTI4IHwgMCwgKCkgPT4gRXhwcmVzc2lvbkF0dHJpYnV0ZVZhbHVlTWFwXSwgMVxuXTtcbnZhciBRdWVyeU91dHB1dCQgPSBbMywgbjAsIF9RTyxcbiAgICAwLFxuICAgIFtfSXQsIF9Db3UsIF9TQywgX0xFSywgX0NDXSxcbiAgICBbKCkgPT4gSXRlbUxpc3QsIDEsIDEsICgpID0+IEtleSwgKCkgPT4gQ29uc3VtZWRDYXBhY2l0eSRdXG5dO1xudmFyIFJlcGxpY2EkID0gWzMsIG4wLCBfUmUsXG4gICAgMCxcbiAgICBbX1JOXSxcbiAgICBbMF1cbl07XG52YXIgUmVwbGljYUFscmVhZHlFeGlzdHNFeGNlcHRpb24kID0gWy0zLCBuMCwgX1JBRUUsXG4gICAgeyBbX2VdOiBfYyB9LFxuICAgIFtfbV0sXG4gICAgWzBdXG5dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoUmVwbGljYUFscmVhZHlFeGlzdHNFeGNlcHRpb24kLCBSZXBsaWNhQWxyZWFkeUV4aXN0c0V4Y2VwdGlvbik7XG52YXIgUmVwbGljYUF1dG9TY2FsaW5nRGVzY3JpcHRpb24kID0gWzMsIG4wLCBfUkFTRCxcbiAgICAwLFxuICAgIFtfUk4sIF9HU0ksIF9SUFJDQVNTLCBfUlBXQ0FTUywgX1JTZV0sXG4gICAgWzAsICgpID0+IFJlcGxpY2FHbG9iYWxTZWNvbmRhcnlJbmRleEF1dG9TY2FsaW5nRGVzY3JpcHRpb25MaXN0LCAoKSA9PiBBdXRvU2NhbGluZ1NldHRpbmdzRGVzY3JpcHRpb24kLCAoKSA9PiBBdXRvU2NhbGluZ1NldHRpbmdzRGVzY3JpcHRpb24kLCAwXVxuXTtcbnZhciBSZXBsaWNhQXV0b1NjYWxpbmdVcGRhdGUkID0gWzMsIG4wLCBfUkFTVSxcbiAgICAwLFxuICAgIFtfUk4sIF9SR1NJVSwgX1JQUkNBU1VdLFxuICAgIFswLCAoKSA9PiBSZXBsaWNhR2xvYmFsU2Vjb25kYXJ5SW5kZXhBdXRvU2NhbGluZ1VwZGF0ZUxpc3QsICgpID0+IEF1dG9TY2FsaW5nU2V0dGluZ3NVcGRhdGUkXSwgMVxuXTtcbnZhciBSZXBsaWNhRGVzY3JpcHRpb24kID0gWzMsIG4wLCBfUkQsXG4gICAgMCxcbiAgICBbX1JOLCBfUlNlLCBfUlNELCBfUlNQUCwgX0tNU01LSSwgX1BUTywgX09EVE8sIF9XVCwgX0dTSSwgX1JJRFQsIF9SVENTXSxcbiAgICBbMCwgMCwgMCwgMCwgMCwgKCkgPT4gUHJvdmlzaW9uZWRUaHJvdWdocHV0T3ZlcnJpZGUkLCAoKSA9PiBPbkRlbWFuZFRocm91Z2hwdXRPdmVycmlkZSQsICgpID0+IFRhYmxlV2FybVRocm91Z2hwdXREZXNjcmlwdGlvbiQsICgpID0+IFJlcGxpY2FHbG9iYWxTZWNvbmRhcnlJbmRleERlc2NyaXB0aW9uTGlzdCwgNCwgKCkgPT4gVGFibGVDbGFzc1N1bW1hcnkkXVxuXTtcbnZhciBSZXBsaWNhR2xvYmFsU2Vjb25kYXJ5SW5kZXgkID0gWzMsIG4wLCBfUkdTSSxcbiAgICAwLFxuICAgIFtfSU4sIF9QVE8sIF9PRFRPXSxcbiAgICBbMCwgKCkgPT4gUHJvdmlzaW9uZWRUaHJvdWdocHV0T3ZlcnJpZGUkLCAoKSA9PiBPbkRlbWFuZFRocm91Z2hwdXRPdmVycmlkZSRdLCAxXG5dO1xudmFyIFJlcGxpY2FHbG9iYWxTZWNvbmRhcnlJbmRleEF1dG9TY2FsaW5nRGVzY3JpcHRpb24kID0gWzMsIG4wLCBfUkdTSUFTRCxcbiAgICAwLFxuICAgIFtfSU4sIF9JUywgX1BSQ0FTUywgX1BXQ0FTU10sXG4gICAgWzAsIDAsICgpID0+IEF1dG9TY2FsaW5nU2V0dGluZ3NEZXNjcmlwdGlvbiQsICgpID0+IEF1dG9TY2FsaW5nU2V0dGluZ3NEZXNjcmlwdGlvbiRdXG5dO1xudmFyIFJlcGxpY2FHbG9iYWxTZWNvbmRhcnlJbmRleEF1dG9TY2FsaW5nVXBkYXRlJCA9IFszLCBuMCwgX1JHU0lBU1UsXG4gICAgMCxcbiAgICBbX0lOLCBfUFJDQVNVXSxcbiAgICBbMCwgKCkgPT4gQXV0b1NjYWxpbmdTZXR0aW5nc1VwZGF0ZSRdXG5dO1xudmFyIFJlcGxpY2FHbG9iYWxTZWNvbmRhcnlJbmRleERlc2NyaXB0aW9uJCA9IFszLCBuMCwgX1JHU0lELFxuICAgIDAsXG4gICAgW19JTiwgX1BUTywgX09EVE8sIF9XVF0sXG4gICAgWzAsICgpID0+IFByb3Zpc2lvbmVkVGhyb3VnaHB1dE92ZXJyaWRlJCwgKCkgPT4gT25EZW1hbmRUaHJvdWdocHV0T3ZlcnJpZGUkLCAoKSA9PiBHbG9iYWxTZWNvbmRhcnlJbmRleFdhcm1UaHJvdWdocHV0RGVzY3JpcHRpb24kXVxuXTtcbnZhciBSZXBsaWNhR2xvYmFsU2Vjb25kYXJ5SW5kZXhTZXR0aW5nc0Rlc2NyaXB0aW9uJCA9IFszLCBuMCwgX1JHU0lTRCxcbiAgICAwLFxuICAgIFtfSU4sIF9JUywgX1BSQ1UsIF9QUkNBU1MsIF9QV0NVLCBfUFdDQVNTXSxcbiAgICBbMCwgMCwgMSwgKCkgPT4gQXV0b1NjYWxpbmdTZXR0aW5nc0Rlc2NyaXB0aW9uJCwgMSwgKCkgPT4gQXV0b1NjYWxpbmdTZXR0aW5nc0Rlc2NyaXB0aW9uJF0sIDFcbl07XG52YXIgUmVwbGljYUdsb2JhbFNlY29uZGFyeUluZGV4U2V0dGluZ3NVcGRhdGUkID0gWzMsIG4wLCBfUkdTSVNVLFxuICAgIDAsXG4gICAgW19JTiwgX1BSQ1UsIF9QUkNBU1NVXSxcbiAgICBbMCwgMSwgKCkgPT4gQXV0b1NjYWxpbmdTZXR0aW5nc1VwZGF0ZSRdLCAxXG5dO1xudmFyIFJlcGxpY2FOb3RGb3VuZEV4Y2VwdGlvbiQgPSBbLTMsIG4wLCBfUk5GRSxcbiAgICB7IFtfZV06IF9jIH0sXG4gICAgW19tXSxcbiAgICBbMF1cbl07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihSZXBsaWNhTm90Rm91bmRFeGNlcHRpb24kLCBSZXBsaWNhTm90Rm91bmRFeGNlcHRpb24pO1xudmFyIFJlcGxpY2FTZXR0aW5nc0Rlc2NyaXB0aW9uJCA9IFszLCBuMCwgX1JTRGUsXG4gICAgMCxcbiAgICBbX1JOLCBfUlNlLCBfUkJNUywgX1JQUkNVLCBfUlBSQ0FTUywgX1JQV0NVLCBfUlBXQ0FTUywgX1JHU0lTLCBfUlRDU10sXG4gICAgWzAsIDAsICgpID0+IEJpbGxpbmdNb2RlU3VtbWFyeSQsIDEsICgpID0+IEF1dG9TY2FsaW5nU2V0dGluZ3NEZXNjcmlwdGlvbiQsIDEsICgpID0+IEF1dG9TY2FsaW5nU2V0dGluZ3NEZXNjcmlwdGlvbiQsICgpID0+IFJlcGxpY2FHbG9iYWxTZWNvbmRhcnlJbmRleFNldHRpbmdzRGVzY3JpcHRpb25MaXN0LCAoKSA9PiBUYWJsZUNsYXNzU3VtbWFyeSRdLCAxXG5dO1xudmFyIFJlcGxpY2FTZXR0aW5nc1VwZGF0ZSQgPSBbMywgbjAsIF9SU1UsXG4gICAgMCxcbiAgICBbX1JOLCBfUlBSQ1UsIF9SUFJDQVNTVSwgX1JHU0lTVSwgX1JUQ10sXG4gICAgWzAsIDEsICgpID0+IEF1dG9TY2FsaW5nU2V0dGluZ3NVcGRhdGUkLCAoKSA9PiBSZXBsaWNhR2xvYmFsU2Vjb25kYXJ5SW5kZXhTZXR0aW5nc1VwZGF0ZUxpc3QsIDBdLCAxXG5dO1xudmFyIFJlcGxpY2F0ZWRXcml0ZUNvbmZsaWN0RXhjZXB0aW9uJCA9IFstMywgbjAsIF9SV0NFLFxuICAgIHsgW19lXTogX2MgfSxcbiAgICBbX21dLFxuICAgIFswXVxuXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKFJlcGxpY2F0ZWRXcml0ZUNvbmZsaWN0RXhjZXB0aW9uJCwgUmVwbGljYXRlZFdyaXRlQ29uZmxpY3RFeGNlcHRpb24pO1xudmFyIFJlcGxpY2F0aW9uR3JvdXBVcGRhdGUkID0gWzMsIG4wLCBfUkdVLFxuICAgIDAsXG4gICAgW19DciwgX1UsIF9EZV0sXG4gICAgWygpID0+IENyZWF0ZVJlcGxpY2F0aW9uR3JvdXBNZW1iZXJBY3Rpb24kLCAoKSA9PiBVcGRhdGVSZXBsaWNhdGlvbkdyb3VwTWVtYmVyQWN0aW9uJCwgKCkgPT4gRGVsZXRlUmVwbGljYXRpb25Hcm91cE1lbWJlckFjdGlvbiRdXG5dO1xudmFyIFJlcGxpY2FVcGRhdGUkID0gWzMsIG4wLCBfUlUsXG4gICAgMCxcbiAgICBbX0NyLCBfRGVdLFxuICAgIFsoKSA9PiBDcmVhdGVSZXBsaWNhQWN0aW9uJCwgKCkgPT4gRGVsZXRlUmVwbGljYUFjdGlvbiRdXG5dO1xudmFyIFJlcXVlc3RMaW1pdEV4Y2VlZGVkJCA9IFstMywgbjAsIF9STEUsXG4gICAgeyBbX2VdOiBfYyB9LFxuICAgIFtfbSwgX1RSXSxcbiAgICBbMCwgKCkgPT4gVGhyb3R0bGluZ1JlYXNvbkxpc3RdXG5dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoUmVxdWVzdExpbWl0RXhjZWVkZWQkLCBSZXF1ZXN0TGltaXRFeGNlZWRlZCk7XG52YXIgUmVzb3VyY2VJblVzZUV4Y2VwdGlvbiQgPSBbLTMsIG4wLCBfUklVRSxcbiAgICB7IFtfZV06IF9jIH0sXG4gICAgW19tXSxcbiAgICBbMF1cbl07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihSZXNvdXJjZUluVXNlRXhjZXB0aW9uJCwgUmVzb3VyY2VJblVzZUV4Y2VwdGlvbik7XG52YXIgUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvbiQgPSBbLTMsIG4wLCBfUk5GRWUsXG4gICAgeyBbX2VdOiBfYyB9LFxuICAgIFtfbV0sXG4gICAgWzBdXG5dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvbiQsIFJlc291cmNlTm90Rm91bmRFeGNlcHRpb24pO1xudmFyIFJlc3RvcmVTdW1tYXJ5JCA9IFszLCBuMCwgX1JTZXMsXG4gICAgMCxcbiAgICBbX1JEVCwgX1JJUCwgX1NCQSwgX1NUQV0sXG4gICAgWzQsIDIsIDAsIDBdLCAyXG5dO1xudmFyIFJlc3RvcmVUYWJsZUZyb21CYWNrdXBJbnB1dCQgPSBbMywgbjAsIF9SVEZCSSxcbiAgICAwLFxuICAgIFtfVFROLCBfQkEsIF9CTU8sIF9HU0lPLCBfTFNJTywgX1BUTywgX09EVE8sIF9TU0VTT10sXG4gICAgWzAsIDAsIDAsICgpID0+IEdsb2JhbFNlY29uZGFyeUluZGV4TGlzdCwgKCkgPT4gTG9jYWxTZWNvbmRhcnlJbmRleExpc3QsICgpID0+IFByb3Zpc2lvbmVkVGhyb3VnaHB1dCQsICgpID0+IE9uRGVtYW5kVGhyb3VnaHB1dCQsICgpID0+IFNTRVNwZWNpZmljYXRpb24kXSwgMlxuXTtcbnZhciBSZXN0b3JlVGFibGVGcm9tQmFja3VwT3V0cHV0JCA9IFszLCBuMCwgX1JURkJPLFxuICAgIDAsXG4gICAgW19URF0sXG4gICAgWygpID0+IFRhYmxlRGVzY3JpcHRpb24kXVxuXTtcbnZhciBSZXN0b3JlVGFibGVUb1BvaW50SW5UaW1lSW5wdXQkID0gWzMsIG4wLCBfUlRUUElUSSxcbiAgICAwLFxuICAgIFtfVFROLCBfU1RBLCBfU1ROLCBfVUxSVCwgX1JEVCwgX0JNTywgX0dTSU8sIF9MU0lPLCBfUFRPLCBfT0RUTywgX1NTRVNPXSxcbiAgICBbMCwgMCwgMCwgMiwgNCwgMCwgKCkgPT4gR2xvYmFsU2Vjb25kYXJ5SW5kZXhMaXN0LCAoKSA9PiBMb2NhbFNlY29uZGFyeUluZGV4TGlzdCwgKCkgPT4gUHJvdmlzaW9uZWRUaHJvdWdocHV0JCwgKCkgPT4gT25EZW1hbmRUaHJvdWdocHV0JCwgKCkgPT4gU1NFU3BlY2lmaWNhdGlvbiRdLCAxXG5dO1xudmFyIFJlc3RvcmVUYWJsZVRvUG9pbnRJblRpbWVPdXRwdXQkID0gWzMsIG4wLCBfUlRUUElUTyxcbiAgICAwLFxuICAgIFtfVERdLFxuICAgIFsoKSA9PiBUYWJsZURlc2NyaXB0aW9uJF1cbl07XG52YXIgUzNCdWNrZXRTb3VyY2UkID0gWzMsIG4wLCBfU0JTLFxuICAgIDAsXG4gICAgW19TQiwgX1NCTywgX1NLUF0sXG4gICAgWzAsIDAsIDBdLCAxXG5dO1xudmFyIFNjYW5JbnB1dCQgPSBbMywgbjAsIF9TSSxcbiAgICAwLFxuICAgIFtfVE4sIF9JTiwgX0FURywgX0wsIF9TZSwgX1NGLCBfQ09vLCBfRVNLLCBfUkNDLCBfVFNvLCBfU2VnLCBfUEUsIF9GRWksIF9FQU4sIF9FQVYsIF9DUl0sXG4gICAgWzAsIDAsIDY0IHwgMCwgMSwgMCwgKCkgPT4gRmlsdGVyQ29uZGl0aW9uTWFwLCAwLCAoKSA9PiBLZXksIDAsIDEsIDEsIDAsIDAsIDEyOCB8IDAsICgpID0+IEV4cHJlc3Npb25BdHRyaWJ1dGVWYWx1ZU1hcCwgMl0sIDFcbl07XG52YXIgU2Nhbk91dHB1dCQgPSBbMywgbjAsIF9TTyxcbiAgICAwLFxuICAgIFtfSXQsIF9Db3UsIF9TQywgX0xFSywgX0NDXSxcbiAgICBbKCkgPT4gSXRlbUxpc3QsIDEsIDEsICgpID0+IEtleSwgKCkgPT4gQ29uc3VtZWRDYXBhY2l0eSRdXG5dO1xudmFyIFNvdXJjZVRhYmxlRGV0YWlscyQgPSBbMywgbjAsIF9TVEQsXG4gICAgMCxcbiAgICBbX1ROLCBfVEksIF9LUywgX1RDRFQsIF9QVCwgX1RBLCBfVFNCLCBfT0RULCBfSUMsIF9CTV0sXG4gICAgWzAsIDAsICgpID0+IEtleVNjaGVtYSwgNCwgKCkgPT4gUHJvdmlzaW9uZWRUaHJvdWdocHV0JCwgMCwgMSwgKCkgPT4gT25EZW1hbmRUaHJvdWdocHV0JCwgMSwgMF0sIDVcbl07XG52YXIgU291cmNlVGFibGVGZWF0dXJlRGV0YWlscyQgPSBbMywgbjAsIF9TVEZELFxuICAgIDAsXG4gICAgW19MU0ksIF9HU0ksIF9TRCwgX1RUTEQsIF9TU0VEXSxcbiAgICBbKCkgPT4gTG9jYWxTZWNvbmRhcnlJbmRleGVzLCAoKSA9PiBHbG9iYWxTZWNvbmRhcnlJbmRleGVzLCAoKSA9PiBTdHJlYW1TcGVjaWZpY2F0aW9uJCwgKCkgPT4gVGltZVRvTGl2ZURlc2NyaXB0aW9uJCwgKCkgPT4gU1NFRGVzY3JpcHRpb24kXVxuXTtcbnZhciBTU0VEZXNjcmlwdGlvbiQgPSBbMywgbjAsIF9TU0VELFxuICAgIDAsXG4gICAgW19TdGEsIF9TU0VULCBfS01TTUtBLCBfSUVEVF0sXG4gICAgWzAsIDAsIDAsIDRdXG5dO1xudmFyIFNTRVNwZWNpZmljYXRpb24kID0gWzMsIG4wLCBfU1NFUyxcbiAgICAwLFxuICAgIFtfRW5hLCBfU1NFVCwgX0tNU01LSV0sXG4gICAgWzIsIDAsIDBdXG5dO1xudmFyIFN0cmVhbVNwZWNpZmljYXRpb24kID0gWzMsIG4wLCBfU1MsXG4gICAgMCxcbiAgICBbX1NFLCBfU1ZUXSxcbiAgICBbMiwgMF0sIDFcbl07XG52YXIgVGFibGVBbHJlYWR5RXhpc3RzRXhjZXB0aW9uJCA9IFstMywgbjAsIF9UQUVFLFxuICAgIHsgW19lXTogX2MgfSxcbiAgICBbX21dLFxuICAgIFswXVxuXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKFRhYmxlQWxyZWFkeUV4aXN0c0V4Y2VwdGlvbiQsIFRhYmxlQWxyZWFkeUV4aXN0c0V4Y2VwdGlvbik7XG52YXIgVGFibGVBdXRvU2NhbGluZ0Rlc2NyaXB0aW9uJCA9IFszLCBuMCwgX1RBU0QsXG4gICAgMCxcbiAgICBbX1ROLCBfVFNhLCBfUmVwXSxcbiAgICBbMCwgMCwgKCkgPT4gUmVwbGljYUF1dG9TY2FsaW5nRGVzY3JpcHRpb25MaXN0XVxuXTtcbnZhciBUYWJsZUNsYXNzU3VtbWFyeSQgPSBbMywgbjAsIF9UQ1MsXG4gICAgMCxcbiAgICBbX1RDLCBfTFVEVF0sXG4gICAgWzAsIDRdXG5dO1xudmFyIFRhYmxlQ3JlYXRpb25QYXJhbWV0ZXJzJCA9IFszLCBuMCwgX1RDUCxcbiAgICAwLFxuICAgIFtfVE4sIF9BRHQsIF9LUywgX0JNLCBfUFQsIF9PRFQsIF9TU0VTLCBfR1NJXSxcbiAgICBbMCwgKCkgPT4gQXR0cmlidXRlRGVmaW5pdGlvbnMsICgpID0+IEtleVNjaGVtYSwgMCwgKCkgPT4gUHJvdmlzaW9uZWRUaHJvdWdocHV0JCwgKCkgPT4gT25EZW1hbmRUaHJvdWdocHV0JCwgKCkgPT4gU1NFU3BlY2lmaWNhdGlvbiQsICgpID0+IEdsb2JhbFNlY29uZGFyeUluZGV4TGlzdF0sIDNcbl07XG52YXIgVGFibGVEZXNjcmlwdGlvbiQgPSBbMywgbjAsIF9URCxcbiAgICAwLFxuICAgIFtfQUR0LCBfVE4sIF9LUywgX1RTYSwgX0NEVCwgX1BULCBfVFNCLCBfSUMsIF9UQSwgX1RJLCBfQk1TLCBfTFNJLCBfR1NJLCBfU1MsIF9MU0wsIF9MU0EsIF9HVFYsIF9SZXAsIF9HVFcsIF9SU2VzLCBfU1NFRCwgX0FTLCBfVENTLCBfRFBFLCBfT0RULCBfV1QsIF9NUkNdLFxuICAgIFsoKSA9PiBBdHRyaWJ1dGVEZWZpbml0aW9ucywgMCwgKCkgPT4gS2V5U2NoZW1hLCAwLCA0LCAoKSA9PiBQcm92aXNpb25lZFRocm91Z2hwdXREZXNjcmlwdGlvbiQsIDEsIDEsIDAsIDAsICgpID0+IEJpbGxpbmdNb2RlU3VtbWFyeSQsICgpID0+IExvY2FsU2Vjb25kYXJ5SW5kZXhEZXNjcmlwdGlvbkxpc3QsICgpID0+IEdsb2JhbFNlY29uZGFyeUluZGV4RGVzY3JpcHRpb25MaXN0LCAoKSA9PiBTdHJlYW1TcGVjaWZpY2F0aW9uJCwgMCwgMCwgMCwgKCkgPT4gUmVwbGljYURlc2NyaXB0aW9uTGlzdCwgKCkgPT4gR2xvYmFsVGFibGVXaXRuZXNzRGVzY3JpcHRpb25MaXN0LCAoKSA9PiBSZXN0b3JlU3VtbWFyeSQsICgpID0+IFNTRURlc2NyaXB0aW9uJCwgKCkgPT4gQXJjaGl2YWxTdW1tYXJ5JCwgKCkgPT4gVGFibGVDbGFzc1N1bW1hcnkkLCAyLCAoKSA9PiBPbkRlbWFuZFRocm91Z2hwdXQkLCAoKSA9PiBUYWJsZVdhcm1UaHJvdWdocHV0RGVzY3JpcHRpb24kLCAwXVxuXTtcbnZhciBUYWJsZUluVXNlRXhjZXB0aW9uJCA9IFstMywgbjAsIF9USVVFLFxuICAgIHsgW19lXTogX2MgfSxcbiAgICBbX21dLFxuICAgIFswXVxuXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKFRhYmxlSW5Vc2VFeGNlcHRpb24kLCBUYWJsZUluVXNlRXhjZXB0aW9uKTtcbnZhciBUYWJsZU5vdEZvdW5kRXhjZXB0aW9uJCA9IFstMywgbjAsIF9UTkZFLFxuICAgIHsgW19lXTogX2MgfSxcbiAgICBbX21dLFxuICAgIFswXVxuXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKFRhYmxlTm90Rm91bmRFeGNlcHRpb24kLCBUYWJsZU5vdEZvdW5kRXhjZXB0aW9uKTtcbnZhciBUYWJsZVdhcm1UaHJvdWdocHV0RGVzY3JpcHRpb24kID0gWzMsIG4wLCBfVFdURCxcbiAgICAwLFxuICAgIFtfUlVQUywgX1dVUFMsIF9TdGFdLFxuICAgIFsxLCAxLCAwXVxuXTtcbnZhciBUYWckID0gWzMsIG4wLCBfVGFnLFxuICAgIDAsXG4gICAgW19LLCBfVl0sXG4gICAgWzAsIDBdLCAyXG5dO1xudmFyIFRhZ1Jlc291cmNlSW5wdXQkID0gWzMsIG4wLCBfVFJJLFxuICAgIDAsXG4gICAgW19SQSwgX1RhXSxcbiAgICBbMCwgKCkgPT4gVGFnTGlzdF0sIDJcbl07XG52YXIgVGhyb3R0bGluZ0V4Y2VwdGlvbiQgPSBbLTMsIG4wLCBfVEUsXG4gICAgeyBbX2FRRV06IFtgVGhyb3R0bGluZ2AsIDQwMF0sIFtfZV06IF9jLCBbX2hFXTogNDAwIH0sXG4gICAgW19tLCBfdFJdLFxuICAgIFswLCAoKSA9PiBUaHJvdHRsaW5nUmVhc29uTGlzdF1cbl07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihUaHJvdHRsaW5nRXhjZXB0aW9uJCwgVGhyb3R0bGluZ0V4Y2VwdGlvbik7XG52YXIgVGhyb3R0bGluZ1JlYXNvbiQgPSBbMywgbjAsIF9UUmgsXG4gICAgMCxcbiAgICBbX3IsIF9yZV0sXG4gICAgWzAsIDBdXG5dO1xudmFyIFRpbWVUb0xpdmVEZXNjcmlwdGlvbiQgPSBbMywgbjAsIF9UVExELFxuICAgIDAsXG4gICAgW19UVExTLCBfQU5dLFxuICAgIFswLCAwXVxuXTtcbnZhciBUaW1lVG9MaXZlU3BlY2lmaWNhdGlvbiQgPSBbMywgbjAsIF9UVExTaSxcbiAgICAwLFxuICAgIFtfRW5hLCBfQU5dLFxuICAgIFsyLCAwXSwgMlxuXTtcbnZhciBUcmFuc2FjdEdldEl0ZW0kID0gWzMsIG4wLCBfVEdJLFxuICAgIDAsXG4gICAgW19HXSxcbiAgICBbKCkgPT4gR2V0JF0sIDFcbl07XG52YXIgVHJhbnNhY3RHZXRJdGVtc0lucHV0JCA9IFszLCBuMCwgX1RHSUksXG4gICAgMCxcbiAgICBbX1RJciwgX1JDQ10sXG4gICAgWygpID0+IFRyYW5zYWN0R2V0SXRlbUxpc3QsIDBdLCAxXG5dO1xudmFyIFRyYW5zYWN0R2V0SXRlbXNPdXRwdXQkID0gWzMsIG4wLCBfVEdJTyxcbiAgICAwLFxuICAgIFtfQ0MsIF9SXSxcbiAgICBbKCkgPT4gQ29uc3VtZWRDYXBhY2l0eU11bHRpcGxlLCAoKSA9PiBJdGVtUmVzcG9uc2VMaXN0XVxuXTtcbnZhciBUcmFuc2FjdGlvbkNhbmNlbGVkRXhjZXB0aW9uJCA9IFstMywgbjAsIF9UQ0UsXG4gICAgeyBbX2VdOiBfYyB9LFxuICAgIFtfTSwgX0NSYW5dLFxuICAgIFswLCAoKSA9PiBDYW5jZWxsYXRpb25SZWFzb25MaXN0XVxuXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKFRyYW5zYWN0aW9uQ2FuY2VsZWRFeGNlcHRpb24kLCBUcmFuc2FjdGlvbkNhbmNlbGVkRXhjZXB0aW9uKTtcbnZhciBUcmFuc2FjdGlvbkNvbmZsaWN0RXhjZXB0aW9uJCA9IFstMywgbjAsIF9UQ0VyLFxuICAgIHsgW19lXTogX2MgfSxcbiAgICBbX21dLFxuICAgIFswXVxuXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKFRyYW5zYWN0aW9uQ29uZmxpY3RFeGNlcHRpb24kLCBUcmFuc2FjdGlvbkNvbmZsaWN0RXhjZXB0aW9uKTtcbnZhciBUcmFuc2FjdGlvbkluUHJvZ3Jlc3NFeGNlcHRpb24kID0gWy0zLCBuMCwgX1RJUEUsXG4gICAgeyBbX2VdOiBfYyB9LFxuICAgIFtfTV0sXG4gICAgWzBdXG5dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoVHJhbnNhY3Rpb25JblByb2dyZXNzRXhjZXB0aW9uJCwgVHJhbnNhY3Rpb25JblByb2dyZXNzRXhjZXB0aW9uKTtcbnZhciBUcmFuc2FjdFdyaXRlSXRlbSQgPSBbMywgbjAsIF9UV0ksXG4gICAgMCxcbiAgICBbX0NDbywgX1B1LCBfRGUsIF9VXSxcbiAgICBbKCkgPT4gQ29uZGl0aW9uQ2hlY2skLCAoKSA9PiBQdXQkLCAoKSA9PiBEZWxldGUkLCAoKSA9PiBVcGRhdGUkXVxuXTtcbnZhciBUcmFuc2FjdFdyaXRlSXRlbXNJbnB1dCQgPSBbMywgbjAsIF9UV0lJLFxuICAgIDAsXG4gICAgW19USXIsIF9SQ0MsIF9SSUNNLCBfQ1JUXSxcbiAgICBbKCkgPT4gVHJhbnNhY3RXcml0ZUl0ZW1MaXN0LCAwLCAwLCBbMCwgNF1dLCAxXG5dO1xudmFyIFRyYW5zYWN0V3JpdGVJdGVtc091dHB1dCQgPSBbMywgbjAsIF9UV0lPLFxuICAgIDAsXG4gICAgW19DQywgX0lDTV0sXG4gICAgWygpID0+IENvbnN1bWVkQ2FwYWNpdHlNdWx0aXBsZSwgKCkgPT4gSXRlbUNvbGxlY3Rpb25NZXRyaWNzUGVyVGFibGVdXG5dO1xudmFyIFVudGFnUmVzb3VyY2VJbnB1dCQgPSBbMywgbjAsIF9VUkksXG4gICAgMCxcbiAgICBbX1JBLCBfVEtdLFxuICAgIFswLCA2NCB8IDBdLCAyXG5dO1xudmFyIFVwZGF0ZSQgPSBbMywgbjAsIF9VLFxuICAgIDAsXG4gICAgW19LLCBfVUUsIF9UTiwgX0NFLCBfRUFOLCBfRUFWLCBfUlZPQ0NGXSxcbiAgICBbKCkgPT4gS2V5LCAwLCAwLCAwLCAxMjggfCAwLCAoKSA9PiBFeHByZXNzaW9uQXR0cmlidXRlVmFsdWVNYXAsIDBdLCAzXG5dO1xudmFyIFVwZGF0ZUNvbnRpbnVvdXNCYWNrdXBzSW5wdXQkID0gWzMsIG4wLCBfVUNCSSxcbiAgICAwLFxuICAgIFtfVE4sIF9QSVRSU29dLFxuICAgIFswLCAoKSA9PiBQb2ludEluVGltZVJlY292ZXJ5U3BlY2lmaWNhdGlvbiRdLCAyXG5dO1xudmFyIFVwZGF0ZUNvbnRpbnVvdXNCYWNrdXBzT3V0cHV0JCA9IFszLCBuMCwgX1VDQk8sXG4gICAgMCxcbiAgICBbX0NCRF0sXG4gICAgWygpID0+IENvbnRpbnVvdXNCYWNrdXBzRGVzY3JpcHRpb24kXVxuXTtcbnZhciBVcGRhdGVDb250cmlidXRvckluc2lnaHRzSW5wdXQkID0gWzMsIG4wLCBfVUNJSSxcbiAgICAwLFxuICAgIFtfVE4sIF9DSUEsIF9JTiwgX0NJTV0sXG4gICAgWzAsIDAsIDAsIDBdLCAyXG5dO1xudmFyIFVwZGF0ZUNvbnRyaWJ1dG9ySW5zaWdodHNPdXRwdXQkID0gWzMsIG4wLCBfVUNJTyxcbiAgICAwLFxuICAgIFtfVE4sIF9JTiwgX0NJU28sIF9DSU1dLFxuICAgIFswLCAwLCAwLCAwXVxuXTtcbnZhciBVcGRhdGVHbG9iYWxTZWNvbmRhcnlJbmRleEFjdGlvbiQgPSBbMywgbjAsIF9VR1NJQSxcbiAgICAwLFxuICAgIFtfSU4sIF9QVCwgX09EVCwgX1dUXSxcbiAgICBbMCwgKCkgPT4gUHJvdmlzaW9uZWRUaHJvdWdocHV0JCwgKCkgPT4gT25EZW1hbmRUaHJvdWdocHV0JCwgKCkgPT4gV2FybVRocm91Z2hwdXQkXSwgMVxuXTtcbnZhciBVcGRhdGVHbG9iYWxUYWJsZUlucHV0JCA9IFszLCBuMCwgX1VHVEksXG4gICAgMCxcbiAgICBbX0dUTiwgX1JVZV0sXG4gICAgWzAsICgpID0+IFJlcGxpY2FVcGRhdGVMaXN0XSwgMlxuXTtcbnZhciBVcGRhdGVHbG9iYWxUYWJsZU91dHB1dCQgPSBbMywgbjAsIF9VR1RPLFxuICAgIDAsXG4gICAgW19HVERdLFxuICAgIFsoKSA9PiBHbG9iYWxUYWJsZURlc2NyaXB0aW9uJF1cbl07XG52YXIgVXBkYXRlR2xvYmFsVGFibGVTZXR0aW5nc0lucHV0JCA9IFszLCBuMCwgX1VHVFNJLFxuICAgIDAsXG4gICAgW19HVE4sIF9HVEJNLCBfR1RQV0NVLCBfR1RQV0NBU1NVLCBfR1RHU0lTVSwgX1JTVV0sXG4gICAgWzAsIDAsIDEsICgpID0+IEF1dG9TY2FsaW5nU2V0dGluZ3NVcGRhdGUkLCAoKSA9PiBHbG9iYWxUYWJsZUdsb2JhbFNlY29uZGFyeUluZGV4U2V0dGluZ3NVcGRhdGVMaXN0LCAoKSA9PiBSZXBsaWNhU2V0dGluZ3NVcGRhdGVMaXN0XSwgMVxuXTtcbnZhciBVcGRhdGVHbG9iYWxUYWJsZVNldHRpbmdzT3V0cHV0JCA9IFszLCBuMCwgX1VHVFNPLFxuICAgIDAsXG4gICAgW19HVE4sIF9SU10sXG4gICAgWzAsICgpID0+IFJlcGxpY2FTZXR0aW5nc0Rlc2NyaXB0aW9uTGlzdF1cbl07XG52YXIgVXBkYXRlSXRlbUlucHV0JCA9IFszLCBuMCwgX1VJSSxcbiAgICAwLFxuICAgIFtfVE4sIF9LLCBfQVUsIF9FeCwgX0NPbywgX1JWLCBfUkNDLCBfUklDTSwgX1VFLCBfQ0UsIF9FQU4sIF9FQVYsIF9SVk9DQ0ZdLFxuICAgIFswLCAoKSA9PiBLZXksICgpID0+IEF0dHJpYnV0ZVVwZGF0ZXMsICgpID0+IEV4cGVjdGVkQXR0cmlidXRlTWFwLCAwLCAwLCAwLCAwLCAwLCAwLCAxMjggfCAwLCAoKSA9PiBFeHByZXNzaW9uQXR0cmlidXRlVmFsdWVNYXAsIDBdLCAyXG5dO1xudmFyIFVwZGF0ZUl0ZW1PdXRwdXQkID0gWzMsIG4wLCBfVUlPLFxuICAgIDAsXG4gICAgW19BdCwgX0NDLCBfSUNNXSxcbiAgICBbKCkgPT4gQXR0cmlidXRlTWFwLCAoKSA9PiBDb25zdW1lZENhcGFjaXR5JCwgKCkgPT4gSXRlbUNvbGxlY3Rpb25NZXRyaWNzJF1cbl07XG52YXIgVXBkYXRlS2luZXNpc1N0cmVhbWluZ0NvbmZpZ3VyYXRpb24kID0gWzMsIG4wLCBfVUtTQyxcbiAgICAwLFxuICAgIFtfQUNEVFBdLFxuICAgIFswXVxuXTtcbnZhciBVcGRhdGVLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb25JbnB1dCQgPSBbMywgbjAsIF9VS1NESSxcbiAgICAwLFxuICAgIFtfVE4sIF9TQSwgX1VLU0NdLFxuICAgIFswLCAwLCAoKSA9PiBVcGRhdGVLaW5lc2lzU3RyZWFtaW5nQ29uZmlndXJhdGlvbiRdLCAyXG5dO1xudmFyIFVwZGF0ZUtpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvbk91dHB1dCQgPSBbMywgbjAsIF9VS1NETyxcbiAgICAwLFxuICAgIFtfVE4sIF9TQSwgX0RTLCBfVUtTQ10sXG4gICAgWzAsIDAsIDAsICgpID0+IFVwZGF0ZUtpbmVzaXNTdHJlYW1pbmdDb25maWd1cmF0aW9uJF1cbl07XG52YXIgVXBkYXRlUmVwbGljYXRpb25Hcm91cE1lbWJlckFjdGlvbiQgPSBbMywgbjAsIF9VUkdNQSxcbiAgICAwLFxuICAgIFtfUk4sIF9LTVNNS0ksIF9QVE8sIF9PRFRPLCBfR1NJLCBfVENPXSxcbiAgICBbMCwgMCwgKCkgPT4gUHJvdmlzaW9uZWRUaHJvdWdocHV0T3ZlcnJpZGUkLCAoKSA9PiBPbkRlbWFuZFRocm91Z2hwdXRPdmVycmlkZSQsICgpID0+IFJlcGxpY2FHbG9iYWxTZWNvbmRhcnlJbmRleExpc3QsIDBdLCAxXG5dO1xudmFyIFVwZGF0ZVRhYmxlSW5wdXQkID0gWzMsIG4wLCBfVVRJLFxuICAgIDAsXG4gICAgW19UTiwgX0FEdCwgX0JNLCBfUFQsIF9HU0lVbCwgX1NTLCBfU1NFUywgX1JVZSwgX1RDLCBfRFBFLCBfTVJDLCBfR1RXVSwgX09EVCwgX1dUXSxcbiAgICBbMCwgKCkgPT4gQXR0cmlidXRlRGVmaW5pdGlvbnMsIDAsICgpID0+IFByb3Zpc2lvbmVkVGhyb3VnaHB1dCQsICgpID0+IEdsb2JhbFNlY29uZGFyeUluZGV4VXBkYXRlTGlzdCwgKCkgPT4gU3RyZWFtU3BlY2lmaWNhdGlvbiQsICgpID0+IFNTRVNwZWNpZmljYXRpb24kLCAoKSA9PiBSZXBsaWNhdGlvbkdyb3VwVXBkYXRlTGlzdCwgMCwgMiwgMCwgKCkgPT4gR2xvYmFsVGFibGVXaXRuZXNzR3JvdXBVcGRhdGVMaXN0LCAoKSA9PiBPbkRlbWFuZFRocm91Z2hwdXQkLCAoKSA9PiBXYXJtVGhyb3VnaHB1dCRdLCAxXG5dO1xudmFyIFVwZGF0ZVRhYmxlT3V0cHV0JCA9IFszLCBuMCwgX1VUTyxcbiAgICAwLFxuICAgIFtfVERdLFxuICAgIFsoKSA9PiBUYWJsZURlc2NyaXB0aW9uJF1cbl07XG52YXIgVXBkYXRlVGFibGVSZXBsaWNhQXV0b1NjYWxpbmdJbnB1dCQgPSBbMywgbjAsIF9VVFJBU0ksXG4gICAgMCxcbiAgICBbX1ROLCBfR1NJVWwsIF9QV0NBU1UsIF9SVWVdLFxuICAgIFswLCAoKSA9PiBHbG9iYWxTZWNvbmRhcnlJbmRleEF1dG9TY2FsaW5nVXBkYXRlTGlzdCwgKCkgPT4gQXV0b1NjYWxpbmdTZXR0aW5nc1VwZGF0ZSQsICgpID0+IFJlcGxpY2FBdXRvU2NhbGluZ1VwZGF0ZUxpc3RdLCAxXG5dO1xudmFyIFVwZGF0ZVRhYmxlUmVwbGljYUF1dG9TY2FsaW5nT3V0cHV0JCA9IFszLCBuMCwgX1VUUkFTTyxcbiAgICAwLFxuICAgIFtfVEFTRF0sXG4gICAgWygpID0+IFRhYmxlQXV0b1NjYWxpbmdEZXNjcmlwdGlvbiRdXG5dO1xudmFyIFVwZGF0ZVRpbWVUb0xpdmVJbnB1dCQgPSBbMywgbjAsIF9VVFRMSSxcbiAgICAwLFxuICAgIFtfVE4sIF9UVExTaV0sXG4gICAgWzAsICgpID0+IFRpbWVUb0xpdmVTcGVjaWZpY2F0aW9uJF0sIDJcbl07XG52YXIgVXBkYXRlVGltZVRvTGl2ZU91dHB1dCQgPSBbMywgbjAsIF9VVFRMTyxcbiAgICAwLFxuICAgIFtfVFRMU2ldLFxuICAgIFsoKSA9PiBUaW1lVG9MaXZlU3BlY2lmaWNhdGlvbiRdXG5dO1xudmFyIFdhcm1UaHJvdWdocHV0JCA9IFszLCBuMCwgX1dULFxuICAgIDAsXG4gICAgW19SVVBTLCBfV1VQU10sXG4gICAgWzEsIDFdXG5dO1xudmFyIFdyaXRlUmVxdWVzdCQgPSBbMywgbjAsIF9XUixcbiAgICAwLFxuICAgIFtfUFIsIF9EUl0sXG4gICAgWygpID0+IFB1dFJlcXVlc3QkLCAoKSA9PiBEZWxldGVSZXF1ZXN0JF1cbl07XG52YXIgX19Vbml0ID0gXCJ1bml0XCI7XG52YXIgRHluYW1vREJTZXJ2aWNlRXhjZXB0aW9uJCA9IFstMywgX3NtLCBcIkR5bmFtb0RCU2VydmljZUV4Y2VwdGlvblwiLCAwLCBbXSwgW11dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IoX3NtKS5yZWdpc3RlckVycm9yKER5bmFtb0RCU2VydmljZUV4Y2VwdGlvbiQsIER5bmFtb0RCU2VydmljZUV4Y2VwdGlvbik7XG52YXIgQXR0cmlidXRlRGVmaW5pdGlvbnMgPSBbMSwgbjAsIF9BRHQsXG4gICAgMCwgKCkgPT4gQXR0cmlidXRlRGVmaW5pdGlvbiRcbl07XG52YXIgQXR0cmlidXRlVmFsdWVMaXN0ID0gWzEsIG4wLCBfQVZMLFxuICAgIDAsICgpID0+IEF0dHJpYnV0ZVZhbHVlJFxuXTtcbnZhciBBdXRvU2NhbGluZ1BvbGljeURlc2NyaXB0aW9uTGlzdCA9IFsxLCBuMCwgX0FTUERMLFxuICAgIDAsICgpID0+IEF1dG9TY2FsaW5nUG9saWN5RGVzY3JpcHRpb24kXG5dO1xudmFyIEJhY2t1cFN1bW1hcmllcyA9IFsxLCBuMCwgX0JTYWMsXG4gICAgMCwgKCkgPT4gQmFja3VwU3VtbWFyeSRcbl07XG52YXIgQ2FuY2VsbGF0aW9uUmVhc29uTGlzdCA9IFsxLCBuMCwgX0NSTCxcbiAgICAwLCAoKSA9PiBDYW5jZWxsYXRpb25SZWFzb24kXG5dO1xudmFyIENvbnN1bWVkQ2FwYWNpdHlNdWx0aXBsZSA9IFsxLCBuMCwgX0NDTSxcbiAgICAwLCAoKSA9PiBDb25zdW1lZENhcGFjaXR5JFxuXTtcbnZhciBDb250cmlidXRvckluc2lnaHRzU3VtbWFyaWVzID0gWzEsIG4wLCBfQ0lTb24sXG4gICAgMCwgKCkgPT4gQ29udHJpYnV0b3JJbnNpZ2h0c1N1bW1hcnkkXG5dO1xudmFyIEVuZHBvaW50cyA9IFsxLCBuMCwgX0VuLFxuICAgIDAsICgpID0+IEVuZHBvaW50JFxuXTtcbnZhciBFeHBvcnRTdW1tYXJpZXMgPSBbMSwgbjAsIF9FU3hwLFxuICAgIDAsICgpID0+IEV4cG9ydFN1bW1hcnkkXG5dO1xudmFyIEdsb2JhbFNlY29uZGFyeUluZGV4QXV0b1NjYWxpbmdVcGRhdGVMaXN0ID0gWzEsIG4wLCBfR1NJQVNVTCxcbiAgICAwLCAoKSA9PiBHbG9iYWxTZWNvbmRhcnlJbmRleEF1dG9TY2FsaW5nVXBkYXRlJFxuXTtcbnZhciBHbG9iYWxTZWNvbmRhcnlJbmRleERlc2NyaXB0aW9uTGlzdCA9IFsxLCBuMCwgX0dTSURMLFxuICAgIDAsICgpID0+IEdsb2JhbFNlY29uZGFyeUluZGV4RGVzY3JpcHRpb24kXG5dO1xudmFyIEdsb2JhbFNlY29uZGFyeUluZGV4ZXMgPSBbMSwgbjAsIF9HU0ksXG4gICAgMCwgKCkgPT4gR2xvYmFsU2Vjb25kYXJ5SW5kZXhJbmZvJFxuXTtcbnZhciBHbG9iYWxTZWNvbmRhcnlJbmRleExpc3QgPSBbMSwgbjAsIF9HU0lMLFxuICAgIDAsICgpID0+IEdsb2JhbFNlY29uZGFyeUluZGV4JFxuXTtcbnZhciBHbG9iYWxTZWNvbmRhcnlJbmRleFVwZGF0ZUxpc3QgPSBbMSwgbjAsIF9HU0lVTCxcbiAgICAwLCAoKSA9PiBHbG9iYWxTZWNvbmRhcnlJbmRleFVwZGF0ZSRcbl07XG52YXIgR2xvYmFsVGFibGVHbG9iYWxTZWNvbmRhcnlJbmRleFNldHRpbmdzVXBkYXRlTGlzdCA9IFsxLCBuMCwgX0dUR1NJU1VMLFxuICAgIDAsICgpID0+IEdsb2JhbFRhYmxlR2xvYmFsU2Vjb25kYXJ5SW5kZXhTZXR0aW5nc1VwZGF0ZSRcbl07XG52YXIgR2xvYmFsVGFibGVMaXN0ID0gWzEsIG4wLCBfR1RMLFxuICAgIDAsICgpID0+IEdsb2JhbFRhYmxlJFxuXTtcbnZhciBHbG9iYWxUYWJsZVdpdG5lc3NEZXNjcmlwdGlvbkxpc3QgPSBbMSwgbjAsIF9HVFdETCxcbiAgICAwLCAoKSA9PiBHbG9iYWxUYWJsZVdpdG5lc3NEZXNjcmlwdGlvbiRcbl07XG52YXIgR2xvYmFsVGFibGVXaXRuZXNzR3JvdXBVcGRhdGVMaXN0ID0gWzEsIG4wLCBfR1RXR1VMLFxuICAgIDAsICgpID0+IEdsb2JhbFRhYmxlV2l0bmVzc0dyb3VwVXBkYXRlJFxuXTtcbnZhciBJbXBvcnRTdW1tYXJ5TGlzdCA9IFsxLCBuMCwgX0lTTCxcbiAgICAwLCAoKSA9PiBJbXBvcnRTdW1tYXJ5JFxuXTtcbnZhciBJdGVtQ29sbGVjdGlvbk1ldHJpY3NNdWx0aXBsZSA9IFsxLCBuMCwgX0lDTU0sXG4gICAgMCwgKCkgPT4gSXRlbUNvbGxlY3Rpb25NZXRyaWNzJFxuXTtcbnZhciBJdGVtTGlzdCA9IFsxLCBuMCwgX0lMLFxuICAgIDAsICgpID0+IEF0dHJpYnV0ZU1hcFxuXTtcbnZhciBJdGVtUmVzcG9uc2VMaXN0ID0gWzEsIG4wLCBfSVJMLFxuICAgIDAsICgpID0+IEl0ZW1SZXNwb25zZSRcbl07XG52YXIgS2V5TGlzdCA9IFsxLCBuMCwgX0tMLFxuICAgIDAsICgpID0+IEtleVxuXTtcbnZhciBLZXlTY2hlbWEgPSBbMSwgbjAsIF9LUyxcbiAgICAwLCAoKSA9PiBLZXlTY2hlbWFFbGVtZW50JFxuXTtcbnZhciBLaW5lc2lzRGF0YVN0cmVhbURlc3RpbmF0aW9ucyA9IFsxLCBuMCwgX0tEU0QsXG4gICAgMCwgKCkgPT4gS2luZXNpc0RhdGFTdHJlYW1EZXN0aW5hdGlvbiRcbl07XG52YXIgTGlzdEF0dHJpYnV0ZVZhbHVlID0gWzEsIG4wLCBfTEFWLFxuICAgIDAsICgpID0+IEF0dHJpYnV0ZVZhbHVlJFxuXTtcbnZhciBMb2NhbFNlY29uZGFyeUluZGV4RGVzY3JpcHRpb25MaXN0ID0gWzEsIG4wLCBfTFNJREwsXG4gICAgMCwgKCkgPT4gTG9jYWxTZWNvbmRhcnlJbmRleERlc2NyaXB0aW9uJFxuXTtcbnZhciBMb2NhbFNlY29uZGFyeUluZGV4ZXMgPSBbMSwgbjAsIF9MU0ksXG4gICAgMCwgKCkgPT4gTG9jYWxTZWNvbmRhcnlJbmRleEluZm8kXG5dO1xudmFyIExvY2FsU2Vjb25kYXJ5SW5kZXhMaXN0ID0gWzEsIG4wLCBfTFNJTCxcbiAgICAwLCAoKSA9PiBMb2NhbFNlY29uZGFyeUluZGV4JFxuXTtcbnZhciBQYXJhbWV0ZXJpemVkU3RhdGVtZW50cyA9IFsxLCBuMCwgX1BTYXIsXG4gICAgMCwgKCkgPT4gUGFyYW1ldGVyaXplZFN0YXRlbWVudCRcbl07XG52YXIgUGFydGlRTEJhdGNoUmVxdWVzdCA9IFsxLCBuMCwgX1BRTEJSLFxuICAgIDAsICgpID0+IEJhdGNoU3RhdGVtZW50UmVxdWVzdCRcbl07XG52YXIgUGFydGlRTEJhdGNoUmVzcG9uc2UgPSBbMSwgbjAsIF9QUUxCUmEsXG4gICAgMCwgKCkgPT4gQmF0Y2hTdGF0ZW1lbnRSZXNwb25zZSRcbl07XG52YXIgUHJlcGFyZWRTdGF0ZW1lbnRQYXJhbWV0ZXJzID0gWzEsIG4wLCBfUFNQLFxuICAgIDAsICgpID0+IEF0dHJpYnV0ZVZhbHVlJFxuXTtcbnZhciBSZXBsaWNhQXV0b1NjYWxpbmdEZXNjcmlwdGlvbkxpc3QgPSBbMSwgbjAsIF9SQVNETCxcbiAgICAwLCAoKSA9PiBSZXBsaWNhQXV0b1NjYWxpbmdEZXNjcmlwdGlvbiRcbl07XG52YXIgUmVwbGljYUF1dG9TY2FsaW5nVXBkYXRlTGlzdCA9IFsxLCBuMCwgX1JBU1VMLFxuICAgIDAsICgpID0+IFJlcGxpY2FBdXRvU2NhbGluZ1VwZGF0ZSRcbl07XG52YXIgUmVwbGljYURlc2NyaXB0aW9uTGlzdCA9IFsxLCBuMCwgX1JETCxcbiAgICAwLCAoKSA9PiBSZXBsaWNhRGVzY3JpcHRpb24kXG5dO1xudmFyIFJlcGxpY2FHbG9iYWxTZWNvbmRhcnlJbmRleEF1dG9TY2FsaW5nRGVzY3JpcHRpb25MaXN0ID0gWzEsIG4wLCBfUkdTSUFTREwsXG4gICAgMCwgKCkgPT4gUmVwbGljYUdsb2JhbFNlY29uZGFyeUluZGV4QXV0b1NjYWxpbmdEZXNjcmlwdGlvbiRcbl07XG52YXIgUmVwbGljYUdsb2JhbFNlY29uZGFyeUluZGV4QXV0b1NjYWxpbmdVcGRhdGVMaXN0ID0gWzEsIG4wLCBfUkdTSUFTVUwsXG4gICAgMCwgKCkgPT4gUmVwbGljYUdsb2JhbFNlY29uZGFyeUluZGV4QXV0b1NjYWxpbmdVcGRhdGUkXG5dO1xudmFyIFJlcGxpY2FHbG9iYWxTZWNvbmRhcnlJbmRleERlc2NyaXB0aW9uTGlzdCA9IFsxLCBuMCwgX1JHU0lETCxcbiAgICAwLCAoKSA9PiBSZXBsaWNhR2xvYmFsU2Vjb25kYXJ5SW5kZXhEZXNjcmlwdGlvbiRcbl07XG52YXIgUmVwbGljYUdsb2JhbFNlY29uZGFyeUluZGV4TGlzdCA9IFsxLCBuMCwgX1JHU0lMLFxuICAgIDAsICgpID0+IFJlcGxpY2FHbG9iYWxTZWNvbmRhcnlJbmRleCRcbl07XG52YXIgUmVwbGljYUdsb2JhbFNlY29uZGFyeUluZGV4U2V0dGluZ3NEZXNjcmlwdGlvbkxpc3QgPSBbMSwgbjAsIF9SR1NJU0RMLFxuICAgIDAsICgpID0+IFJlcGxpY2FHbG9iYWxTZWNvbmRhcnlJbmRleFNldHRpbmdzRGVzY3JpcHRpb24kXG5dO1xudmFyIFJlcGxpY2FHbG9iYWxTZWNvbmRhcnlJbmRleFNldHRpbmdzVXBkYXRlTGlzdCA9IFsxLCBuMCwgX1JHU0lTVUwsXG4gICAgMCwgKCkgPT4gUmVwbGljYUdsb2JhbFNlY29uZGFyeUluZGV4U2V0dGluZ3NVcGRhdGUkXG5dO1xudmFyIFJlcGxpY2FMaXN0ID0gWzEsIG4wLCBfUkwsXG4gICAgMCwgKCkgPT4gUmVwbGljYSRcbl07XG52YXIgUmVwbGljYVNldHRpbmdzRGVzY3JpcHRpb25MaXN0ID0gWzEsIG4wLCBfUlNETCxcbiAgICAwLCAoKSA9PiBSZXBsaWNhU2V0dGluZ3NEZXNjcmlwdGlvbiRcbl07XG52YXIgUmVwbGljYVNldHRpbmdzVXBkYXRlTGlzdCA9IFsxLCBuMCwgX1JTVUwsXG4gICAgMCwgKCkgPT4gUmVwbGljYVNldHRpbmdzVXBkYXRlJFxuXTtcbnZhciBSZXBsaWNhdGlvbkdyb3VwVXBkYXRlTGlzdCA9IFsxLCBuMCwgX1JHVUwsXG4gICAgMCwgKCkgPT4gUmVwbGljYXRpb25Hcm91cFVwZGF0ZSRcbl07XG52YXIgUmVwbGljYVVwZGF0ZUxpc3QgPSBbMSwgbjAsIF9SVUwsXG4gICAgMCwgKCkgPT4gUmVwbGljYVVwZGF0ZSRcbl07XG52YXIgVGFnTGlzdCA9IFsxLCBuMCwgX1RMLFxuICAgIDAsICgpID0+IFRhZyRcbl07XG52YXIgVGhyb3R0bGluZ1JlYXNvbkxpc3QgPSBbMSwgbjAsIF9UUkwsXG4gICAgMCwgKCkgPT4gVGhyb3R0bGluZ1JlYXNvbiRcbl07XG52YXIgVHJhbnNhY3RHZXRJdGVtTGlzdCA9IFsxLCBuMCwgX1RHSUwsXG4gICAgMCwgKCkgPT4gVHJhbnNhY3RHZXRJdGVtJFxuXTtcbnZhciBUcmFuc2FjdFdyaXRlSXRlbUxpc3QgPSBbMSwgbjAsIF9UV0lMLFxuICAgIDAsICgpID0+IFRyYW5zYWN0V3JpdGVJdGVtJFxuXTtcbnZhciBXcml0ZVJlcXVlc3RzID0gWzEsIG4wLCBfV1JyLFxuICAgIDAsICgpID0+IFdyaXRlUmVxdWVzdCRcbl07XG52YXIgQXR0cmlidXRlTWFwID0gWzIsIG4wLCBfQU0sXG4gICAgMCwgMCwgKCkgPT4gQXR0cmlidXRlVmFsdWUkXG5dO1xudmFyIEF0dHJpYnV0ZVVwZGF0ZXMgPSBbMiwgbjAsIF9BVSxcbiAgICAwLCAwLCAoKSA9PiBBdHRyaWJ1dGVWYWx1ZVVwZGF0ZSRcbl07XG52YXIgQmF0Y2hHZXRSZXF1ZXN0TWFwID0gWzIsIG4wLCBfQkdSTWEsXG4gICAgMCwgMCwgKCkgPT4gS2V5c0FuZEF0dHJpYnV0ZXMkXG5dO1xudmFyIEJhdGNoR2V0UmVzcG9uc2VNYXAgPSBbMiwgbjAsIF9CR1JNLFxuICAgIDAsIDAsICgpID0+IEl0ZW1MaXN0XG5dO1xudmFyIEJhdGNoV3JpdGVJdGVtUmVxdWVzdE1hcCA9IFsyLCBuMCwgX0JXSVJNLFxuICAgIDAsIDAsICgpID0+IFdyaXRlUmVxdWVzdHNcbl07XG52YXIgRXhwZWN0ZWRBdHRyaWJ1dGVNYXAgPSBbMiwgbjAsIF9FQU0sXG4gICAgMCwgMCwgKCkgPT4gRXhwZWN0ZWRBdHRyaWJ1dGVWYWx1ZSRcbl07XG52YXIgRXhwcmVzc2lvbkF0dHJpYnV0ZVZhbHVlTWFwID0gWzIsIG4wLCBfRUFWTSxcbiAgICAwLCAwLCAoKSA9PiBBdHRyaWJ1dGVWYWx1ZSRcbl07XG52YXIgRmlsdGVyQ29uZGl0aW9uTWFwID0gWzIsIG4wLCBfRkNNLFxuICAgIDAsIDAsICgpID0+IENvbmRpdGlvbiRcbl07XG52YXIgSXRlbUNvbGxlY3Rpb25LZXlBdHRyaWJ1dGVNYXAgPSBbMiwgbjAsIF9JQ0tBTSxcbiAgICAwLCAwLCAoKSA9PiBBdHRyaWJ1dGVWYWx1ZSRcbl07XG52YXIgSXRlbUNvbGxlY3Rpb25NZXRyaWNzUGVyVGFibGUgPSBbMiwgbjAsIF9JQ01QVCxcbiAgICAwLCAwLCAoKSA9PiBJdGVtQ29sbGVjdGlvbk1ldHJpY3NNdWx0aXBsZVxuXTtcbnZhciBLZXkgPSBbMiwgbjAsIF9LLFxuICAgIDAsIDAsICgpID0+IEF0dHJpYnV0ZVZhbHVlJFxuXTtcbnZhciBLZXlDb25kaXRpb25zID0gWzIsIG4wLCBfS0MsXG4gICAgMCwgMCwgKCkgPT4gQ29uZGl0aW9uJFxuXTtcbnZhciBNYXBBdHRyaWJ1dGVWYWx1ZSA9IFsyLCBuMCwgX01BVixcbiAgICAwLCAwLCAoKSA9PiBBdHRyaWJ1dGVWYWx1ZSRcbl07XG52YXIgUHV0SXRlbUlucHV0QXR0cmlidXRlTWFwID0gWzIsIG4wLCBfUElJQU0sXG4gICAgMCwgMCwgKCkgPT4gQXR0cmlidXRlVmFsdWUkXG5dO1xudmFyIFNlY29uZGFyeUluZGV4ZXNDYXBhY2l0eU1hcCA9IFsyLCBuMCwgX1NJQ00sXG4gICAgMCwgMCwgKCkgPT4gQ2FwYWNpdHkkXG5dO1xudmFyIEF0dHJpYnV0ZVZhbHVlJCA9IFs0LCBuMCwgX0FWLFxuICAgIDAsXG4gICAgW19TXywgX04sIF9CXywgX1NTXywgX05TLCBfQlNfLCBfTV8sIF9MXywgX05VTEwsIF9CT09MXSxcbiAgICBbMCwgMCwgMjEsIDY0IHwgMCwgNjQgfCAwLCA2NCB8IDIxLCAoKSA9PiBNYXBBdHRyaWJ1dGVWYWx1ZSwgKCkgPT4gTGlzdEF0dHJpYnV0ZVZhbHVlLCAyLCAyXVxuXTtcbnZhciBCYXRjaEV4ZWN1dGVTdGF0ZW1lbnQkID0gWzksIG4wLCBfQkVTLFxuICAgIDAsICgpID0+IEJhdGNoRXhlY3V0ZVN0YXRlbWVudElucHV0JCwgKCkgPT4gQmF0Y2hFeGVjdXRlU3RhdGVtZW50T3V0cHV0JFxuXTtcbnZhciBCYXRjaEdldEl0ZW0kID0gWzksIG4wLCBfQkdJLFxuICAgIDAsICgpID0+IEJhdGNoR2V0SXRlbUlucHV0JCwgKCkgPT4gQmF0Y2hHZXRJdGVtT3V0cHV0JFxuXTtcbnZhciBCYXRjaFdyaXRlSXRlbSQgPSBbOSwgbjAsIF9CV0ksXG4gICAgMCwgKCkgPT4gQmF0Y2hXcml0ZUl0ZW1JbnB1dCQsICgpID0+IEJhdGNoV3JpdGVJdGVtT3V0cHV0JFxuXTtcbnZhciBDcmVhdGVCYWNrdXAkID0gWzksIG4wLCBfQ0IsXG4gICAgMCwgKCkgPT4gQ3JlYXRlQmFja3VwSW5wdXQkLCAoKSA9PiBDcmVhdGVCYWNrdXBPdXRwdXQkXG5dO1xudmFyIENyZWF0ZUdsb2JhbFRhYmxlJCA9IFs5LCBuMCwgX0NHVCxcbiAgICAwLCAoKSA9PiBDcmVhdGVHbG9iYWxUYWJsZUlucHV0JCwgKCkgPT4gQ3JlYXRlR2xvYmFsVGFibGVPdXRwdXQkXG5dO1xudmFyIENyZWF0ZVRhYmxlJCA9IFs5LCBuMCwgX0NUcixcbiAgICAwLCAoKSA9PiBDcmVhdGVUYWJsZUlucHV0JCwgKCkgPT4gQ3JlYXRlVGFibGVPdXRwdXQkXG5dO1xudmFyIERlbGV0ZUJhY2t1cCQgPSBbOSwgbjAsIF9EQixcbiAgICAwLCAoKSA9PiBEZWxldGVCYWNrdXBJbnB1dCQsICgpID0+IERlbGV0ZUJhY2t1cE91dHB1dCRcbl07XG52YXIgRGVsZXRlSXRlbSQgPSBbOSwgbjAsIF9ESSxcbiAgICAwLCAoKSA9PiBEZWxldGVJdGVtSW5wdXQkLCAoKSA9PiBEZWxldGVJdGVtT3V0cHV0JFxuXTtcbnZhciBEZWxldGVSZXNvdXJjZVBvbGljeSQgPSBbOSwgbjAsIF9EUlAsXG4gICAgMCwgKCkgPT4gRGVsZXRlUmVzb3VyY2VQb2xpY3lJbnB1dCQsICgpID0+IERlbGV0ZVJlc291cmNlUG9saWN5T3V0cHV0JFxuXTtcbnZhciBEZWxldGVUYWJsZSQgPSBbOSwgbjAsIF9EVCxcbiAgICAwLCAoKSA9PiBEZWxldGVUYWJsZUlucHV0JCwgKCkgPT4gRGVsZXRlVGFibGVPdXRwdXQkXG5dO1xudmFyIERlc2NyaWJlQmFja3VwJCA9IFs5LCBuMCwgX0RCZSxcbiAgICAwLCAoKSA9PiBEZXNjcmliZUJhY2t1cElucHV0JCwgKCkgPT4gRGVzY3JpYmVCYWNrdXBPdXRwdXQkXG5dO1xudmFyIERlc2NyaWJlQ29udGludW91c0JhY2t1cHMkID0gWzksIG4wLCBfRENCLFxuICAgIDAsICgpID0+IERlc2NyaWJlQ29udGludW91c0JhY2t1cHNJbnB1dCQsICgpID0+IERlc2NyaWJlQ29udGludW91c0JhY2t1cHNPdXRwdXQkXG5dO1xudmFyIERlc2NyaWJlQ29udHJpYnV0b3JJbnNpZ2h0cyQgPSBbOSwgbjAsIF9EQ0ksXG4gICAgMCwgKCkgPT4gRGVzY3JpYmVDb250cmlidXRvckluc2lnaHRzSW5wdXQkLCAoKSA9PiBEZXNjcmliZUNvbnRyaWJ1dG9ySW5zaWdodHNPdXRwdXQkXG5dO1xudmFyIERlc2NyaWJlRW5kcG9pbnRzJCA9IFs5LCBuMCwgX0RFLFxuICAgIDAsICgpID0+IERlc2NyaWJlRW5kcG9pbnRzUmVxdWVzdCQsICgpID0+IERlc2NyaWJlRW5kcG9pbnRzUmVzcG9uc2UkXG5dO1xudmFyIERlc2NyaWJlRXhwb3J0JCA9IFs5LCBuMCwgX0RFZSxcbiAgICAwLCAoKSA9PiBEZXNjcmliZUV4cG9ydElucHV0JCwgKCkgPT4gRGVzY3JpYmVFeHBvcnRPdXRwdXQkXG5dO1xudmFyIERlc2NyaWJlR2xvYmFsVGFibGUkID0gWzksIG4wLCBfREdULFxuICAgIDAsICgpID0+IERlc2NyaWJlR2xvYmFsVGFibGVJbnB1dCQsICgpID0+IERlc2NyaWJlR2xvYmFsVGFibGVPdXRwdXQkXG5dO1xudmFyIERlc2NyaWJlR2xvYmFsVGFibGVTZXR0aW5ncyQgPSBbOSwgbjAsIF9ER1RTLFxuICAgIDAsICgpID0+IERlc2NyaWJlR2xvYmFsVGFibGVTZXR0aW5nc0lucHV0JCwgKCkgPT4gRGVzY3JpYmVHbG9iYWxUYWJsZVNldHRpbmdzT3V0cHV0JFxuXTtcbnZhciBEZXNjcmliZUltcG9ydCQgPSBbOSwgbjAsIF9ESWUsXG4gICAgMCwgKCkgPT4gRGVzY3JpYmVJbXBvcnRJbnB1dCQsICgpID0+IERlc2NyaWJlSW1wb3J0T3V0cHV0JFxuXTtcbnZhciBEZXNjcmliZUtpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvbiQgPSBbOSwgbjAsIF9ES1NELFxuICAgIDAsICgpID0+IERlc2NyaWJlS2luZXNpc1N0cmVhbWluZ0Rlc3RpbmF0aW9uSW5wdXQkLCAoKSA9PiBEZXNjcmliZUtpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvbk91dHB1dCRcbl07XG52YXIgRGVzY3JpYmVMaW1pdHMkID0gWzksIG4wLCBfREwsXG4gICAgMCwgKCkgPT4gRGVzY3JpYmVMaW1pdHNJbnB1dCQsICgpID0+IERlc2NyaWJlTGltaXRzT3V0cHV0JFxuXTtcbnZhciBEZXNjcmliZVRhYmxlJCA9IFs5LCBuMCwgX0RUZSxcbiAgICAwLCAoKSA9PiBEZXNjcmliZVRhYmxlSW5wdXQkLCAoKSA9PiBEZXNjcmliZVRhYmxlT3V0cHV0JFxuXTtcbnZhciBEZXNjcmliZVRhYmxlUmVwbGljYUF1dG9TY2FsaW5nJCA9IFs5LCBuMCwgX0RUUkFTLFxuICAgIDAsICgpID0+IERlc2NyaWJlVGFibGVSZXBsaWNhQXV0b1NjYWxpbmdJbnB1dCQsICgpID0+IERlc2NyaWJlVGFibGVSZXBsaWNhQXV0b1NjYWxpbmdPdXRwdXQkXG5dO1xudmFyIERlc2NyaWJlVGltZVRvTGl2ZSQgPSBbOSwgbjAsIF9EVFRMLFxuICAgIDAsICgpID0+IERlc2NyaWJlVGltZVRvTGl2ZUlucHV0JCwgKCkgPT4gRGVzY3JpYmVUaW1lVG9MaXZlT3V0cHV0JFxuXTtcbnZhciBEaXNhYmxlS2luZXNpc1N0cmVhbWluZ0Rlc3RpbmF0aW9uJCA9IFs5LCBuMCwgX0RLU0RpLFxuICAgIDAsICgpID0+IEtpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvbklucHV0JCwgKCkgPT4gS2luZXNpc1N0cmVhbWluZ0Rlc3RpbmF0aW9uT3V0cHV0JFxuXTtcbnZhciBFbmFibGVLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb24kID0gWzksIG4wLCBfRUtTRCxcbiAgICAwLCAoKSA9PiBLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb25JbnB1dCQsICgpID0+IEtpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvbk91dHB1dCRcbl07XG52YXIgRXhlY3V0ZVN0YXRlbWVudCQgPSBbOSwgbjAsIF9FU3hlLFxuICAgIDAsICgpID0+IEV4ZWN1dGVTdGF0ZW1lbnRJbnB1dCQsICgpID0+IEV4ZWN1dGVTdGF0ZW1lbnRPdXRwdXQkXG5dO1xudmFyIEV4ZWN1dGVUcmFuc2FjdGlvbiQgPSBbOSwgbjAsIF9FVHhlLFxuICAgIDAsICgpID0+IEV4ZWN1dGVUcmFuc2FjdGlvbklucHV0JCwgKCkgPT4gRXhlY3V0ZVRyYW5zYWN0aW9uT3V0cHV0JFxuXTtcbnZhciBFeHBvcnRUYWJsZVRvUG9pbnRJblRpbWUkID0gWzksIG4wLCBfRVRUUElULFxuICAgIDAsICgpID0+IEV4cG9ydFRhYmxlVG9Qb2ludEluVGltZUlucHV0JCwgKCkgPT4gRXhwb3J0VGFibGVUb1BvaW50SW5UaW1lT3V0cHV0JFxuXTtcbnZhciBHZXRJdGVtJCA9IFs5LCBuMCwgX0dJLFxuICAgIDAsICgpID0+IEdldEl0ZW1JbnB1dCQsICgpID0+IEdldEl0ZW1PdXRwdXQkXG5dO1xudmFyIEdldFJlc291cmNlUG9saWN5JCA9IFs5LCBuMCwgX0dSUCxcbiAgICAwLCAoKSA9PiBHZXRSZXNvdXJjZVBvbGljeUlucHV0JCwgKCkgPT4gR2V0UmVzb3VyY2VQb2xpY3lPdXRwdXQkXG5dO1xudmFyIEltcG9ydFRhYmxlJCA9IFs5LCBuMCwgX0lULFxuICAgIDAsICgpID0+IEltcG9ydFRhYmxlSW5wdXQkLCAoKSA9PiBJbXBvcnRUYWJsZU91dHB1dCRcbl07XG52YXIgTGlzdEJhY2t1cHMkID0gWzksIG4wLCBfTEIsXG4gICAgMCwgKCkgPT4gTGlzdEJhY2t1cHNJbnB1dCQsICgpID0+IExpc3RCYWNrdXBzT3V0cHV0JFxuXTtcbnZhciBMaXN0Q29udHJpYnV0b3JJbnNpZ2h0cyQgPSBbOSwgbjAsIF9MQ0ksXG4gICAgMCwgKCkgPT4gTGlzdENvbnRyaWJ1dG9ySW5zaWdodHNJbnB1dCQsICgpID0+IExpc3RDb250cmlidXRvckluc2lnaHRzT3V0cHV0JFxuXTtcbnZhciBMaXN0RXhwb3J0cyQgPSBbOSwgbjAsIF9MRSxcbiAgICAwLCAoKSA9PiBMaXN0RXhwb3J0c0lucHV0JCwgKCkgPT4gTGlzdEV4cG9ydHNPdXRwdXQkXG5dO1xudmFyIExpc3RHbG9iYWxUYWJsZXMkID0gWzksIG4wLCBfTEdULFxuICAgIDAsICgpID0+IExpc3RHbG9iYWxUYWJsZXNJbnB1dCQsICgpID0+IExpc3RHbG9iYWxUYWJsZXNPdXRwdXQkXG5dO1xudmFyIExpc3RJbXBvcnRzJCA9IFs5LCBuMCwgX0xJLFxuICAgIDAsICgpID0+IExpc3RJbXBvcnRzSW5wdXQkLCAoKSA9PiBMaXN0SW1wb3J0c091dHB1dCRcbl07XG52YXIgTGlzdFRhYmxlcyQgPSBbOSwgbjAsIF9MVCxcbiAgICAwLCAoKSA9PiBMaXN0VGFibGVzSW5wdXQkLCAoKSA9PiBMaXN0VGFibGVzT3V0cHV0JFxuXTtcbnZhciBMaXN0VGFnc09mUmVzb3VyY2UkID0gWzksIG4wLCBfTFRPUixcbiAgICAwLCAoKSA9PiBMaXN0VGFnc09mUmVzb3VyY2VJbnB1dCQsICgpID0+IExpc3RUYWdzT2ZSZXNvdXJjZU91dHB1dCRcbl07XG52YXIgUHV0SXRlbSQgPSBbOSwgbjAsIF9QSSxcbiAgICAwLCAoKSA9PiBQdXRJdGVtSW5wdXQkLCAoKSA9PiBQdXRJdGVtT3V0cHV0JFxuXTtcbnZhciBQdXRSZXNvdXJjZVBvbGljeSQgPSBbOSwgbjAsIF9QUlAsXG4gICAgMCwgKCkgPT4gUHV0UmVzb3VyY2VQb2xpY3lJbnB1dCQsICgpID0+IFB1dFJlc291cmNlUG9saWN5T3V0cHV0JFxuXTtcbnZhciBRdWVyeSQgPSBbOSwgbjAsIF9RLFxuICAgIDAsICgpID0+IFF1ZXJ5SW5wdXQkLCAoKSA9PiBRdWVyeU91dHB1dCRcbl07XG52YXIgUmVzdG9yZVRhYmxlRnJvbUJhY2t1cCQgPSBbOSwgbjAsIF9SVEZCLFxuICAgIDAsICgpID0+IFJlc3RvcmVUYWJsZUZyb21CYWNrdXBJbnB1dCQsICgpID0+IFJlc3RvcmVUYWJsZUZyb21CYWNrdXBPdXRwdXQkXG5dO1xudmFyIFJlc3RvcmVUYWJsZVRvUG9pbnRJblRpbWUkID0gWzksIG4wLCBfUlRUUElULFxuICAgIDAsICgpID0+IFJlc3RvcmVUYWJsZVRvUG9pbnRJblRpbWVJbnB1dCQsICgpID0+IFJlc3RvcmVUYWJsZVRvUG9pbnRJblRpbWVPdXRwdXQkXG5dO1xudmFyIFNjYW4kID0gWzksIG4wLCBfU2MsXG4gICAgMCwgKCkgPT4gU2NhbklucHV0JCwgKCkgPT4gU2Nhbk91dHB1dCRcbl07XG52YXIgVGFnUmVzb3VyY2UkID0gWzksIG4wLCBfVFJhLFxuICAgIDAsICgpID0+IFRhZ1Jlc291cmNlSW5wdXQkLCAoKSA9PiBfX1VuaXRcbl07XG52YXIgVHJhbnNhY3RHZXRJdGVtcyQgPSBbOSwgbjAsIF9UR0lyLFxuICAgIDAsICgpID0+IFRyYW5zYWN0R2V0SXRlbXNJbnB1dCQsICgpID0+IFRyYW5zYWN0R2V0SXRlbXNPdXRwdXQkXG5dO1xudmFyIFRyYW5zYWN0V3JpdGVJdGVtcyQgPSBbOSwgbjAsIF9UV0lyLFxuICAgIDAsICgpID0+IFRyYW5zYWN0V3JpdGVJdGVtc0lucHV0JCwgKCkgPT4gVHJhbnNhY3RXcml0ZUl0ZW1zT3V0cHV0JFxuXTtcbnZhciBVbnRhZ1Jlc291cmNlJCA9IFs5LCBuMCwgX1VSLFxuICAgIDAsICgpID0+IFVudGFnUmVzb3VyY2VJbnB1dCQsICgpID0+IF9fVW5pdFxuXTtcbnZhciBVcGRhdGVDb250aW51b3VzQmFja3VwcyQgPSBbOSwgbjAsIF9VQ0IsXG4gICAgMCwgKCkgPT4gVXBkYXRlQ29udGludW91c0JhY2t1cHNJbnB1dCQsICgpID0+IFVwZGF0ZUNvbnRpbnVvdXNCYWNrdXBzT3V0cHV0JFxuXTtcbnZhciBVcGRhdGVDb250cmlidXRvckluc2lnaHRzJCA9IFs5LCBuMCwgX1VDSSxcbiAgICAwLCAoKSA9PiBVcGRhdGVDb250cmlidXRvckluc2lnaHRzSW5wdXQkLCAoKSA9PiBVcGRhdGVDb250cmlidXRvckluc2lnaHRzT3V0cHV0JFxuXTtcbnZhciBVcGRhdGVHbG9iYWxUYWJsZSQgPSBbOSwgbjAsIF9VR1QsXG4gICAgMCwgKCkgPT4gVXBkYXRlR2xvYmFsVGFibGVJbnB1dCQsICgpID0+IFVwZGF0ZUdsb2JhbFRhYmxlT3V0cHV0JFxuXTtcbnZhciBVcGRhdGVHbG9iYWxUYWJsZVNldHRpbmdzJCA9IFs5LCBuMCwgX1VHVFMsXG4gICAgMCwgKCkgPT4gVXBkYXRlR2xvYmFsVGFibGVTZXR0aW5nc0lucHV0JCwgKCkgPT4gVXBkYXRlR2xvYmFsVGFibGVTZXR0aW5nc091dHB1dCRcbl07XG52YXIgVXBkYXRlSXRlbSQgPSBbOSwgbjAsIF9VSXAsXG4gICAgMCwgKCkgPT4gVXBkYXRlSXRlbUlucHV0JCwgKCkgPT4gVXBkYXRlSXRlbU91dHB1dCRcbl07XG52YXIgVXBkYXRlS2luZXNpc1N0cmVhbWluZ0Rlc3RpbmF0aW9uJCA9IFs5LCBuMCwgX1VLU0QsXG4gICAgMCwgKCkgPT4gVXBkYXRlS2luZXNpc1N0cmVhbWluZ0Rlc3RpbmF0aW9uSW5wdXQkLCAoKSA9PiBVcGRhdGVLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb25PdXRwdXQkXG5dO1xudmFyIFVwZGF0ZVRhYmxlJCA9IFs5LCBuMCwgX1VULFxuICAgIDAsICgpID0+IFVwZGF0ZVRhYmxlSW5wdXQkLCAoKSA9PiBVcGRhdGVUYWJsZU91dHB1dCRcbl07XG52YXIgVXBkYXRlVGFibGVSZXBsaWNhQXV0b1NjYWxpbmckID0gWzksIG4wLCBfVVRSQVMsXG4gICAgMCwgKCkgPT4gVXBkYXRlVGFibGVSZXBsaWNhQXV0b1NjYWxpbmdJbnB1dCQsICgpID0+IFVwZGF0ZVRhYmxlUmVwbGljYUF1dG9TY2FsaW5nT3V0cHV0JFxuXTtcbnZhciBVcGRhdGVUaW1lVG9MaXZlJCA9IFs5LCBuMCwgX1VUVEwsXG4gICAgMCwgKCkgPT4gVXBkYXRlVGltZVRvTGl2ZUlucHV0JCwgKCkgPT4gVXBkYXRlVGltZVRvTGl2ZU91dHB1dCRcbl07XG5cbmNsYXNzIERlc2NyaWJlRW5kcG9pbnRzQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiRHluYW1vREJfMjAxMjA4MTBcIiwgXCJEZXNjcmliZUVuZHBvaW50c1wiLCB7fSlcbiAgICAubihcIkR5bmFtb0RCQ2xpZW50XCIsIFwiRGVzY3JpYmVFbmRwb2ludHNDb21tYW5kXCIpXG4gICAgLnNjKERlc2NyaWJlRW5kcG9pbnRzJClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNvbnN0IGdldEh0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiA9IChydW50aW1lQ29uZmlnKSA9PiB7XG4gICAgY29uc3QgX2h0dHBBdXRoU2NoZW1lcyA9IHJ1bnRpbWVDb25maWcuaHR0cEF1dGhTY2hlbWVzO1xuICAgIGxldCBfaHR0cEF1dGhTY2hlbWVQcm92aWRlciA9IHJ1bnRpbWVDb25maWcuaHR0cEF1dGhTY2hlbWVQcm92aWRlcjtcbiAgICBsZXQgX2NyZWRlbnRpYWxzID0gcnVudGltZUNvbmZpZy5jcmVkZW50aWFscztcbiAgICByZXR1cm4ge1xuICAgICAgICBzZXRIdHRwQXV0aFNjaGVtZShodHRwQXV0aFNjaGVtZSkge1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSBfaHR0cEF1dGhTY2hlbWVzLmZpbmRJbmRleCgoc2NoZW1lKSA9PiBzY2hlbWUuc2NoZW1lSWQgPT09IGh0dHBBdXRoU2NoZW1lLnNjaGVtZUlkKTtcbiAgICAgICAgICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICBfaHR0cEF1dGhTY2hlbWVzLnB1c2goaHR0cEF1dGhTY2hlbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgX2h0dHBBdXRoU2NoZW1lcy5zcGxpY2UoaW5kZXgsIDEsIGh0dHBBdXRoU2NoZW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVzKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9odHRwQXV0aFNjaGVtZXM7XG4gICAgICAgIH0sXG4gICAgICAgIHNldEh0dHBBdXRoU2NoZW1lUHJvdmlkZXIoaHR0cEF1dGhTY2hlbWVQcm92aWRlcikge1xuICAgICAgICAgICAgX2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSBodHRwQXV0aFNjaGVtZVByb3ZpZGVyO1xuICAgICAgICB9LFxuICAgICAgICBodHRwQXV0aFNjaGVtZVByb3ZpZGVyKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9odHRwQXV0aFNjaGVtZVByb3ZpZGVyO1xuICAgICAgICB9LFxuICAgICAgICBzZXRDcmVkZW50aWFscyhjcmVkZW50aWFscykge1xuICAgICAgICAgICAgX2NyZWRlbnRpYWxzID0gY3JlZGVudGlhbHM7XG4gICAgICAgIH0sXG4gICAgICAgIGNyZWRlbnRpYWxzKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9jcmVkZW50aWFscztcbiAgICAgICAgfSxcbiAgICB9O1xufTtcbmNvbnN0IHJlc29sdmVIdHRwQXV0aFJ1bnRpbWVDb25maWcgPSAoY29uZmlnKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVzOiBjb25maWcuaHR0cEF1dGhTY2hlbWVzKCksXG4gICAgICAgIGh0dHBBdXRoU2NoZW1lUHJvdmlkZXI6IGNvbmZpZy5odHRwQXV0aFNjaGVtZVByb3ZpZGVyKCksXG4gICAgICAgIGNyZWRlbnRpYWxzOiBjb25maWcuY3JlZGVudGlhbHMoKSxcbiAgICB9O1xufTtcblxuY29uc3QgcmVzb2x2ZVJ1bnRpbWVFeHRlbnNpb25zID0gKHJ1bnRpbWVDb25maWcsIGV4dGVuc2lvbnMpID0+IHtcbiAgICBjb25zdCBleHRlbnNpb25Db25maWd1cmF0aW9uID0gT2JqZWN0LmFzc2lnbihyZWdpb25Db25maWdSZXNvbHZlci5nZXRBd3NSZWdpb25FeHRlbnNpb25Db25maWd1cmF0aW9uKHJ1bnRpbWVDb25maWcpLCBzbWl0aHlDbGllbnQuZ2V0RGVmYXVsdEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24ocnVudGltZUNvbmZpZyksIHByb3RvY29sSHR0cC5nZXRIdHRwSGFuZGxlckV4dGVuc2lvbkNvbmZpZ3VyYXRpb24ocnVudGltZUNvbmZpZyksIGdldEh0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbihydW50aW1lQ29uZmlnKSk7XG4gICAgZXh0ZW5zaW9ucy5mb3JFYWNoKChleHRlbnNpb24pID0+IGV4dGVuc2lvbi5jb25maWd1cmUoZXh0ZW5zaW9uQ29uZmlndXJhdGlvbikpO1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHJ1bnRpbWVDb25maWcsIHJlZ2lvbkNvbmZpZ1Jlc29sdmVyLnJlc29sdmVBd3NSZWdpb25FeHRlbnNpb25Db25maWd1cmF0aW9uKGV4dGVuc2lvbkNvbmZpZ3VyYXRpb24pLCBzbWl0aHlDbGllbnQucmVzb2x2ZURlZmF1bHRSdW50aW1lQ29uZmlnKGV4dGVuc2lvbkNvbmZpZ3VyYXRpb24pLCBwcm90b2NvbEh0dHAucmVzb2x2ZUh0dHBIYW5kbGVyUnVudGltZUNvbmZpZyhleHRlbnNpb25Db25maWd1cmF0aW9uKSwgcmVzb2x2ZUh0dHBBdXRoUnVudGltZUNvbmZpZyhleHRlbnNpb25Db25maWd1cmF0aW9uKSk7XG59O1xuXG5jbGFzcyBEeW5hbW9EQkNsaWVudCBleHRlbmRzIHNtaXRoeUNsaWVudC5DbGllbnQge1xuICAgIGNvbmZpZztcbiAgICBjb25zdHJ1Y3RvciguLi5bY29uZmlndXJhdGlvbl0pIHtcbiAgICAgICAgY29uc3QgX2NvbmZpZ18wID0gcnVudGltZUNvbmZpZy5nZXRSdW50aW1lQ29uZmlnKGNvbmZpZ3VyYXRpb24gfHwge30pO1xuICAgICAgICBzdXBlcihfY29uZmlnXzApO1xuICAgICAgICB0aGlzLmluaXRDb25maWcgPSBfY29uZmlnXzA7XG4gICAgICAgIGNvbnN0IF9jb25maWdfMSA9IHJlc29sdmVDbGllbnRFbmRwb2ludFBhcmFtZXRlcnMoX2NvbmZpZ18wKTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ18yID0gYWNjb3VudElkRW5kcG9pbnQucmVzb2x2ZUFjY291bnRJZEVuZHBvaW50TW9kZUNvbmZpZyhfY29uZmlnXzEpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzMgPSBtaWRkbGV3YXJlVXNlckFnZW50LnJlc29sdmVVc2VyQWdlbnRDb25maWcoX2NvbmZpZ18yKTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ180ID0gbWlkZGxld2FyZVJldHJ5LnJlc29sdmVSZXRyeUNvbmZpZyhfY29uZmlnXzMpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzUgPSBjb25maWdSZXNvbHZlci5yZXNvbHZlUmVnaW9uQ29uZmlnKF9jb25maWdfNCk7XG4gICAgICAgIGNvbnN0IF9jb25maWdfNiA9IG1pZGRsZXdhcmVIb3N0SGVhZGVyLnJlc29sdmVIb3N0SGVhZGVyQ29uZmlnKF9jb25maWdfNSk7XG4gICAgICAgIGNvbnN0IF9jb25maWdfNyA9IG1pZGRsZXdhcmVFbmRwb2ludC5yZXNvbHZlRW5kcG9pbnRDb25maWcoX2NvbmZpZ182KTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ184ID0gaHR0cEF1dGhTY2hlbWVQcm92aWRlci5yZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWcoX2NvbmZpZ183KTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ185ID0gbWlkZGxld2FyZUVuZHBvaW50RGlzY292ZXJ5LnJlc29sdmVFbmRwb2ludERpc2NvdmVyeUNvbmZpZyhfY29uZmlnXzgsIHsgZW5kcG9pbnREaXNjb3ZlcnlDb21tYW5kQ3RvcjogRGVzY3JpYmVFbmRwb2ludHNDb21tYW5kIH0pO1xuICAgICAgICBjb25zdCBfY29uZmlnXzEwID0gcmVzb2x2ZVJ1bnRpbWVFeHRlbnNpb25zKF9jb25maWdfOSwgY29uZmlndXJhdGlvbj8uZXh0ZW5zaW9ucyB8fCBbXSk7XG4gICAgICAgIHRoaXMuY29uZmlnID0gX2NvbmZpZ18xMDtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKHNjaGVtYS5nZXRTY2hlbWFTZXJkZVBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UobWlkZGxld2FyZVVzZXJBZ2VudC5nZXRVc2VyQWdlbnRQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKG1pZGRsZXdhcmVSZXRyeS5nZXRSZXRyeVBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UobWlkZGxld2FyZUNvbnRlbnRMZW5ndGguZ2V0Q29udGVudExlbmd0aFBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UobWlkZGxld2FyZUhvc3RIZWFkZXIuZ2V0SG9zdEhlYWRlclBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UobWlkZGxld2FyZUxvZ2dlci5nZXRMb2dnZXJQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKG1pZGRsZXdhcmVSZWN1cnNpb25EZXRlY3Rpb24uZ2V0UmVjdXJzaW9uRGV0ZWN0aW9uUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShjb3JlLmdldEh0dHBBdXRoU2NoZW1lRW5kcG9pbnRSdWxlU2V0UGx1Z2luKHRoaXMuY29uZmlnLCB7XG4gICAgICAgICAgICBodHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlcjogaHR0cEF1dGhTY2hlbWVQcm92aWRlci5kZWZhdWx0RHluYW1vREJIdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlcixcbiAgICAgICAgICAgIGlkZW50aXR5UHJvdmlkZXJDb25maWdQcm92aWRlcjogYXN5bmMgKGNvbmZpZykgPT4gbmV3IGNvcmUuRGVmYXVsdElkZW50aXR5UHJvdmlkZXJDb25maWcoe1xuICAgICAgICAgICAgICAgIFwiYXdzLmF1dGgjc2lndjRcIjogY29uZmlnLmNyZWRlbnRpYWxzLFxuICAgICAgICAgICAgfSksXG4gICAgICAgIH0pKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGNvcmUuZ2V0SHR0cFNpZ25pbmdQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICB9XG4gICAgZGVzdHJveSgpIHtcbiAgICAgICAgc3VwZXIuZGVzdHJveSgpO1xuICAgIH1cbn1cblxuY2xhc3MgQmF0Y2hFeGVjdXRlU3RhdGVtZW50Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiRHluYW1vREJfMjAxMjA4MTBcIiwgXCJCYXRjaEV4ZWN1dGVTdGF0ZW1lbnRcIiwge30pXG4gICAgLm4oXCJEeW5hbW9EQkNsaWVudFwiLCBcIkJhdGNoRXhlY3V0ZVN0YXRlbWVudENvbW1hbmRcIilcbiAgICAuc2MoQmF0Y2hFeGVjdXRlU3RhdGVtZW50JClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIEJhdGNoR2V0SXRlbUNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFJlc291cmNlQXJuTGlzdDogeyB0eXBlOiBcIm9wZXJhdGlvbkNvbnRleHRQYXJhbXNcIiwgZ2V0OiAoaW5wdXQpID0+IE9iamVjdC5rZXlzKGlucHV0Py5SZXF1ZXN0SXRlbXMgPz8ge30pIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJEeW5hbW9EQl8yMDEyMDgxMFwiLCBcIkJhdGNoR2V0SXRlbVwiLCB7fSlcbiAgICAubihcIkR5bmFtb0RCQ2xpZW50XCIsIFwiQmF0Y2hHZXRJdGVtQ29tbWFuZFwiKVxuICAgIC5zYyhCYXRjaEdldEl0ZW0kKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgQmF0Y2hXcml0ZUl0ZW1Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBSZXNvdXJjZUFybkxpc3Q6IHsgdHlwZTogXCJvcGVyYXRpb25Db250ZXh0UGFyYW1zXCIsIGdldDogKGlucHV0KSA9PiBPYmplY3Qua2V5cyhpbnB1dD8uUmVxdWVzdEl0ZW1zID8/IHt9KSB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiRHluYW1vREJfMjAxMjA4MTBcIiwgXCJCYXRjaFdyaXRlSXRlbVwiLCB7fSlcbiAgICAubihcIkR5bmFtb0RCQ2xpZW50XCIsIFwiQmF0Y2hXcml0ZUl0ZW1Db21tYW5kXCIpXG4gICAgLnNjKEJhdGNoV3JpdGVJdGVtJClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIENyZWF0ZUJhY2t1cENvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFJlc291cmNlQXJuOiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIlRhYmxlTmFtZVwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJEeW5hbW9EQl8yMDEyMDgxMFwiLCBcIkNyZWF0ZUJhY2t1cFwiLCB7fSlcbiAgICAubihcIkR5bmFtb0RCQ2xpZW50XCIsIFwiQ3JlYXRlQmFja3VwQ29tbWFuZFwiKVxuICAgIC5zYyhDcmVhdGVCYWNrdXAkKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgQ3JlYXRlR2xvYmFsVGFibGVDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBSZXNvdXJjZUFybjogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJHbG9iYWxUYWJsZU5hbWVcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiRHluYW1vREJfMjAxMjA4MTBcIiwgXCJDcmVhdGVHbG9iYWxUYWJsZVwiLCB7fSlcbiAgICAubihcIkR5bmFtb0RCQ2xpZW50XCIsIFwiQ3JlYXRlR2xvYmFsVGFibGVDb21tYW5kXCIpXG4gICAgLnNjKENyZWF0ZUdsb2JhbFRhYmxlJClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIENyZWF0ZVRhYmxlQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgUmVzb3VyY2VBcm46IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiVGFibGVOYW1lXCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkR5bmFtb0RCXzIwMTIwODEwXCIsIFwiQ3JlYXRlVGFibGVcIiwge30pXG4gICAgLm4oXCJEeW5hbW9EQkNsaWVudFwiLCBcIkNyZWF0ZVRhYmxlQ29tbWFuZFwiKVxuICAgIC5zYyhDcmVhdGVUYWJsZSQpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZWxldGVCYWNrdXBDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBSZXNvdXJjZUFybjogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJCYWNrdXBBcm5cIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiRHluYW1vREJfMjAxMjA4MTBcIiwgXCJEZWxldGVCYWNrdXBcIiwge30pXG4gICAgLm4oXCJEeW5hbW9EQkNsaWVudFwiLCBcIkRlbGV0ZUJhY2t1cENvbW1hbmRcIilcbiAgICAuc2MoRGVsZXRlQmFja3VwJClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERlbGV0ZUl0ZW1Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBSZXNvdXJjZUFybjogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJUYWJsZU5hbWVcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiRHluYW1vREJfMjAxMjA4MTBcIiwgXCJEZWxldGVJdGVtXCIsIHt9KVxuICAgIC5uKFwiRHluYW1vREJDbGllbnRcIiwgXCJEZWxldGVJdGVtQ29tbWFuZFwiKVxuICAgIC5zYyhEZWxldGVJdGVtJClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERlbGV0ZVJlc291cmNlUG9saWN5Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgUmVzb3VyY2VBcm46IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiUmVzb3VyY2VBcm5cIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiRHluYW1vREJfMjAxMjA4MTBcIiwgXCJEZWxldGVSZXNvdXJjZVBvbGljeVwiLCB7fSlcbiAgICAubihcIkR5bmFtb0RCQ2xpZW50XCIsIFwiRGVsZXRlUmVzb3VyY2VQb2xpY3lDb21tYW5kXCIpXG4gICAgLnNjKERlbGV0ZVJlc291cmNlUG9saWN5JClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERlbGV0ZVRhYmxlQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgUmVzb3VyY2VBcm46IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiVGFibGVOYW1lXCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkR5bmFtb0RCXzIwMTIwODEwXCIsIFwiRGVsZXRlVGFibGVcIiwge30pXG4gICAgLm4oXCJEeW5hbW9EQkNsaWVudFwiLCBcIkRlbGV0ZVRhYmxlQ29tbWFuZFwiKVxuICAgIC5zYyhEZWxldGVUYWJsZSQpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZXNjcmliZUJhY2t1cENvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFJlc291cmNlQXJuOiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJhY2t1cEFyblwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJEeW5hbW9EQl8yMDEyMDgxMFwiLCBcIkRlc2NyaWJlQmFja3VwXCIsIHt9KVxuICAgIC5uKFwiRHluYW1vREJDbGllbnRcIiwgXCJEZXNjcmliZUJhY2t1cENvbW1hbmRcIilcbiAgICAuc2MoRGVzY3JpYmVCYWNrdXAkKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgRGVzY3JpYmVDb250aW51b3VzQmFja3Vwc0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFJlc291cmNlQXJuOiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIlRhYmxlTmFtZVwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJEeW5hbW9EQl8yMDEyMDgxMFwiLCBcIkRlc2NyaWJlQ29udGludW91c0JhY2t1cHNcIiwge30pXG4gICAgLm4oXCJEeW5hbW9EQkNsaWVudFwiLCBcIkRlc2NyaWJlQ29udGludW91c0JhY2t1cHNDb21tYW5kXCIpXG4gICAgLnNjKERlc2NyaWJlQ29udGludW91c0JhY2t1cHMkKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgRGVzY3JpYmVDb250cmlidXRvckluc2lnaHRzQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgUmVzb3VyY2VBcm46IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiVGFibGVOYW1lXCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkR5bmFtb0RCXzIwMTIwODEwXCIsIFwiRGVzY3JpYmVDb250cmlidXRvckluc2lnaHRzXCIsIHt9KVxuICAgIC5uKFwiRHluYW1vREJDbGllbnRcIiwgXCJEZXNjcmliZUNvbnRyaWJ1dG9ySW5zaWdodHNDb21tYW5kXCIpXG4gICAgLnNjKERlc2NyaWJlQ29udHJpYnV0b3JJbnNpZ2h0cyQpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZXNjcmliZUV4cG9ydENvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFJlc291cmNlQXJuOiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkV4cG9ydEFyblwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJEeW5hbW9EQl8yMDEyMDgxMFwiLCBcIkRlc2NyaWJlRXhwb3J0XCIsIHt9KVxuICAgIC5uKFwiRHluYW1vREJDbGllbnRcIiwgXCJEZXNjcmliZUV4cG9ydENvbW1hbmRcIilcbiAgICAuc2MoRGVzY3JpYmVFeHBvcnQkKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgRGVzY3JpYmVHbG9iYWxUYWJsZUNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFJlc291cmNlQXJuOiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkdsb2JhbFRhYmxlTmFtZVwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJEeW5hbW9EQl8yMDEyMDgxMFwiLCBcIkRlc2NyaWJlR2xvYmFsVGFibGVcIiwge30pXG4gICAgLm4oXCJEeW5hbW9EQkNsaWVudFwiLCBcIkRlc2NyaWJlR2xvYmFsVGFibGVDb21tYW5kXCIpXG4gICAgLnNjKERlc2NyaWJlR2xvYmFsVGFibGUkKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgRGVzY3JpYmVHbG9iYWxUYWJsZVNldHRpbmdzQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgUmVzb3VyY2VBcm46IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiR2xvYmFsVGFibGVOYW1lXCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkR5bmFtb0RCXzIwMTIwODEwXCIsIFwiRGVzY3JpYmVHbG9iYWxUYWJsZVNldHRpbmdzXCIsIHt9KVxuICAgIC5uKFwiRHluYW1vREJDbGllbnRcIiwgXCJEZXNjcmliZUdsb2JhbFRhYmxlU2V0dGluZ3NDb21tYW5kXCIpXG4gICAgLnNjKERlc2NyaWJlR2xvYmFsVGFibGVTZXR0aW5ncyQpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZXNjcmliZUltcG9ydENvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFJlc291cmNlQXJuOiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkltcG9ydEFyblwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJEeW5hbW9EQl8yMDEyMDgxMFwiLCBcIkRlc2NyaWJlSW1wb3J0XCIsIHt9KVxuICAgIC5uKFwiRHluYW1vREJDbGllbnRcIiwgXCJEZXNjcmliZUltcG9ydENvbW1hbmRcIilcbiAgICAuc2MoRGVzY3JpYmVJbXBvcnQkKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgRGVzY3JpYmVLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb25Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBSZXNvdXJjZUFybjogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJUYWJsZU5hbWVcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiRHluYW1vREJfMjAxMjA4MTBcIiwgXCJEZXNjcmliZUtpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvblwiLCB7fSlcbiAgICAubihcIkR5bmFtb0RCQ2xpZW50XCIsIFwiRGVzY3JpYmVLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb25Db21tYW5kXCIpXG4gICAgLnNjKERlc2NyaWJlS2luZXNpc1N0cmVhbWluZ0Rlc3RpbmF0aW9uJClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERlc2NyaWJlTGltaXRzQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiRHluYW1vREJfMjAxMjA4MTBcIiwgXCJEZXNjcmliZUxpbWl0c1wiLCB7fSlcbiAgICAubihcIkR5bmFtb0RCQ2xpZW50XCIsIFwiRGVzY3JpYmVMaW1pdHNDb21tYW5kXCIpXG4gICAgLnNjKERlc2NyaWJlTGltaXRzJClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERlc2NyaWJlVGFibGVDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBSZXNvdXJjZUFybjogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJUYWJsZU5hbWVcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiRHluYW1vREJfMjAxMjA4MTBcIiwgXCJEZXNjcmliZVRhYmxlXCIsIHt9KVxuICAgIC5uKFwiRHluYW1vREJDbGllbnRcIiwgXCJEZXNjcmliZVRhYmxlQ29tbWFuZFwiKVxuICAgIC5zYyhEZXNjcmliZVRhYmxlJClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERlc2NyaWJlVGFibGVSZXBsaWNhQXV0b1NjYWxpbmdDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBSZXNvdXJjZUFybjogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJUYWJsZU5hbWVcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiRHluYW1vREJfMjAxMjA4MTBcIiwgXCJEZXNjcmliZVRhYmxlUmVwbGljYUF1dG9TY2FsaW5nXCIsIHt9KVxuICAgIC5uKFwiRHluYW1vREJDbGllbnRcIiwgXCJEZXNjcmliZVRhYmxlUmVwbGljYUF1dG9TY2FsaW5nQ29tbWFuZFwiKVxuICAgIC5zYyhEZXNjcmliZVRhYmxlUmVwbGljYUF1dG9TY2FsaW5nJClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERlc2NyaWJlVGltZVRvTGl2ZUNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFJlc291cmNlQXJuOiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIlRhYmxlTmFtZVwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJEeW5hbW9EQl8yMDEyMDgxMFwiLCBcIkRlc2NyaWJlVGltZVRvTGl2ZVwiLCB7fSlcbiAgICAubihcIkR5bmFtb0RCQ2xpZW50XCIsIFwiRGVzY3JpYmVUaW1lVG9MaXZlQ29tbWFuZFwiKVxuICAgIC5zYyhEZXNjcmliZVRpbWVUb0xpdmUkKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgRGlzYWJsZUtpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvbkNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFJlc291cmNlQXJuOiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIlRhYmxlTmFtZVwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJEeW5hbW9EQl8yMDEyMDgxMFwiLCBcIkRpc2FibGVLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb25cIiwge30pXG4gICAgLm4oXCJEeW5hbW9EQkNsaWVudFwiLCBcIkRpc2FibGVLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb25Db21tYW5kXCIpXG4gICAgLnNjKERpc2FibGVLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb24kKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgRW5hYmxlS2luZXNpc1N0cmVhbWluZ0Rlc3RpbmF0aW9uQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgUmVzb3VyY2VBcm46IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiVGFibGVOYW1lXCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkR5bmFtb0RCXzIwMTIwODEwXCIsIFwiRW5hYmxlS2luZXNpc1N0cmVhbWluZ0Rlc3RpbmF0aW9uXCIsIHt9KVxuICAgIC5uKFwiRHluYW1vREJDbGllbnRcIiwgXCJFbmFibGVLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb25Db21tYW5kXCIpXG4gICAgLnNjKEVuYWJsZUtpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvbiQpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBFeGVjdXRlU3RhdGVtZW50Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiRHluYW1vREJfMjAxMjA4MTBcIiwgXCJFeGVjdXRlU3RhdGVtZW50XCIsIHt9KVxuICAgIC5uKFwiRHluYW1vREJDbGllbnRcIiwgXCJFeGVjdXRlU3RhdGVtZW50Q29tbWFuZFwiKVxuICAgIC5zYyhFeGVjdXRlU3RhdGVtZW50JClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIEV4ZWN1dGVUcmFuc2FjdGlvbkNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkR5bmFtb0RCXzIwMTIwODEwXCIsIFwiRXhlY3V0ZVRyYW5zYWN0aW9uXCIsIHt9KVxuICAgIC5uKFwiRHluYW1vREJDbGllbnRcIiwgXCJFeGVjdXRlVHJhbnNhY3Rpb25Db21tYW5kXCIpXG4gICAgLnNjKEV4ZWN1dGVUcmFuc2FjdGlvbiQpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBFeHBvcnRUYWJsZVRvUG9pbnRJblRpbWVDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBSZXNvdXJjZUFybjogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJUYWJsZUFyblwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJEeW5hbW9EQl8yMDEyMDgxMFwiLCBcIkV4cG9ydFRhYmxlVG9Qb2ludEluVGltZVwiLCB7fSlcbiAgICAubihcIkR5bmFtb0RCQ2xpZW50XCIsIFwiRXhwb3J0VGFibGVUb1BvaW50SW5UaW1lQ29tbWFuZFwiKVxuICAgIC5zYyhFeHBvcnRUYWJsZVRvUG9pbnRJblRpbWUkKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgR2V0SXRlbUNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFJlc291cmNlQXJuOiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIlRhYmxlTmFtZVwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJEeW5hbW9EQl8yMDEyMDgxMFwiLCBcIkdldEl0ZW1cIiwge30pXG4gICAgLm4oXCJEeW5hbW9EQkNsaWVudFwiLCBcIkdldEl0ZW1Db21tYW5kXCIpXG4gICAgLnNjKEdldEl0ZW0kKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgR2V0UmVzb3VyY2VQb2xpY3lDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBSZXNvdXJjZUFybjogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJSZXNvdXJjZUFyblwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJEeW5hbW9EQl8yMDEyMDgxMFwiLCBcIkdldFJlc291cmNlUG9saWN5XCIsIHt9KVxuICAgIC5uKFwiRHluYW1vREJDbGllbnRcIiwgXCJHZXRSZXNvdXJjZVBvbGljeUNvbW1hbmRcIilcbiAgICAuc2MoR2V0UmVzb3VyY2VQb2xpY3kkKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgSW1wb3J0VGFibGVDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBSZXNvdXJjZUFybjogeyB0eXBlOiBcIm9wZXJhdGlvbkNvbnRleHRQYXJhbXNcIiwgZ2V0OiAoaW5wdXQpID0+IGlucHV0Py5UYWJsZUNyZWF0aW9uUGFyYW1ldGVycz8uVGFibGVOYW1lIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJEeW5hbW9EQl8yMDEyMDgxMFwiLCBcIkltcG9ydFRhYmxlXCIsIHt9KVxuICAgIC5uKFwiRHluYW1vREJDbGllbnRcIiwgXCJJbXBvcnRUYWJsZUNvbW1hbmRcIilcbiAgICAuc2MoSW1wb3J0VGFibGUkKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgTGlzdEJhY2t1cHNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBSZXNvdXJjZUFybjogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJUYWJsZU5hbWVcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiRHluYW1vREJfMjAxMjA4MTBcIiwgXCJMaXN0QmFja3Vwc1wiLCB7fSlcbiAgICAubihcIkR5bmFtb0RCQ2xpZW50XCIsIFwiTGlzdEJhY2t1cHNDb21tYW5kXCIpXG4gICAgLnNjKExpc3RCYWNrdXBzJClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIExpc3RDb250cmlidXRvckluc2lnaHRzQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgUmVzb3VyY2VBcm46IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiVGFibGVOYW1lXCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkR5bmFtb0RCXzIwMTIwODEwXCIsIFwiTGlzdENvbnRyaWJ1dG9ySW5zaWdodHNcIiwge30pXG4gICAgLm4oXCJEeW5hbW9EQkNsaWVudFwiLCBcIkxpc3RDb250cmlidXRvckluc2lnaHRzQ29tbWFuZFwiKVxuICAgIC5zYyhMaXN0Q29udHJpYnV0b3JJbnNpZ2h0cyQpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBMaXN0RXhwb3J0c0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFJlc291cmNlQXJuOiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIlRhYmxlQXJuXCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkR5bmFtb0RCXzIwMTIwODEwXCIsIFwiTGlzdEV4cG9ydHNcIiwge30pXG4gICAgLm4oXCJEeW5hbW9EQkNsaWVudFwiLCBcIkxpc3RFeHBvcnRzQ29tbWFuZFwiKVxuICAgIC5zYyhMaXN0RXhwb3J0cyQpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBMaXN0R2xvYmFsVGFibGVzQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiRHluYW1vREJfMjAxMjA4MTBcIiwgXCJMaXN0R2xvYmFsVGFibGVzXCIsIHt9KVxuICAgIC5uKFwiRHluYW1vREJDbGllbnRcIiwgXCJMaXN0R2xvYmFsVGFibGVzQ29tbWFuZFwiKVxuICAgIC5zYyhMaXN0R2xvYmFsVGFibGVzJClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIExpc3RJbXBvcnRzQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgUmVzb3VyY2VBcm46IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiVGFibGVBcm5cIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiRHluYW1vREJfMjAxMjA4MTBcIiwgXCJMaXN0SW1wb3J0c1wiLCB7fSlcbiAgICAubihcIkR5bmFtb0RCQ2xpZW50XCIsIFwiTGlzdEltcG9ydHNDb21tYW5kXCIpXG4gICAgLnNjKExpc3RJbXBvcnRzJClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIExpc3RUYWJsZXNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJEeW5hbW9EQl8yMDEyMDgxMFwiLCBcIkxpc3RUYWJsZXNcIiwge30pXG4gICAgLm4oXCJEeW5hbW9EQkNsaWVudFwiLCBcIkxpc3RUYWJsZXNDb21tYW5kXCIpXG4gICAgLnNjKExpc3RUYWJsZXMkKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgTGlzdFRhZ3NPZlJlc291cmNlQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgUmVzb3VyY2VBcm46IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiUmVzb3VyY2VBcm5cIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiRHluYW1vREJfMjAxMjA4MTBcIiwgXCJMaXN0VGFnc09mUmVzb3VyY2VcIiwge30pXG4gICAgLm4oXCJEeW5hbW9EQkNsaWVudFwiLCBcIkxpc3RUYWdzT2ZSZXNvdXJjZUNvbW1hbmRcIilcbiAgICAuc2MoTGlzdFRhZ3NPZlJlc291cmNlJClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFB1dEl0ZW1Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBSZXNvdXJjZUFybjogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJUYWJsZU5hbWVcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiRHluYW1vREJfMjAxMjA4MTBcIiwgXCJQdXRJdGVtXCIsIHt9KVxuICAgIC5uKFwiRHluYW1vREJDbGllbnRcIiwgXCJQdXRJdGVtQ29tbWFuZFwiKVxuICAgIC5zYyhQdXRJdGVtJClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFB1dFJlc291cmNlUG9saWN5Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgUmVzb3VyY2VBcm46IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiUmVzb3VyY2VBcm5cIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiRHluYW1vREJfMjAxMjA4MTBcIiwgXCJQdXRSZXNvdXJjZVBvbGljeVwiLCB7fSlcbiAgICAubihcIkR5bmFtb0RCQ2xpZW50XCIsIFwiUHV0UmVzb3VyY2VQb2xpY3lDb21tYW5kXCIpXG4gICAgLnNjKFB1dFJlc291cmNlUG9saWN5JClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFF1ZXJ5Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgUmVzb3VyY2VBcm46IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiVGFibGVOYW1lXCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkR5bmFtb0RCXzIwMTIwODEwXCIsIFwiUXVlcnlcIiwge30pXG4gICAgLm4oXCJEeW5hbW9EQkNsaWVudFwiLCBcIlF1ZXJ5Q29tbWFuZFwiKVxuICAgIC5zYyhRdWVyeSQpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBSZXN0b3JlVGFibGVGcm9tQmFja3VwQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgUmVzb3VyY2VBcm46IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiVGFyZ2V0VGFibGVOYW1lXCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkR5bmFtb0RCXzIwMTIwODEwXCIsIFwiUmVzdG9yZVRhYmxlRnJvbUJhY2t1cFwiLCB7fSlcbiAgICAubihcIkR5bmFtb0RCQ2xpZW50XCIsIFwiUmVzdG9yZVRhYmxlRnJvbUJhY2t1cENvbW1hbmRcIilcbiAgICAuc2MoUmVzdG9yZVRhYmxlRnJvbUJhY2t1cCQpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBSZXN0b3JlVGFibGVUb1BvaW50SW5UaW1lQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgUmVzb3VyY2VBcm46IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiVGFyZ2V0VGFibGVOYW1lXCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkR5bmFtb0RCXzIwMTIwODEwXCIsIFwiUmVzdG9yZVRhYmxlVG9Qb2ludEluVGltZVwiLCB7fSlcbiAgICAubihcIkR5bmFtb0RCQ2xpZW50XCIsIFwiUmVzdG9yZVRhYmxlVG9Qb2ludEluVGltZUNvbW1hbmRcIilcbiAgICAuc2MoUmVzdG9yZVRhYmxlVG9Qb2ludEluVGltZSQpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBTY2FuQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgUmVzb3VyY2VBcm46IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiVGFibGVOYW1lXCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkR5bmFtb0RCXzIwMTIwODEwXCIsIFwiU2NhblwiLCB7fSlcbiAgICAubihcIkR5bmFtb0RCQ2xpZW50XCIsIFwiU2NhbkNvbW1hbmRcIilcbiAgICAuc2MoU2NhbiQpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBUYWdSZXNvdXJjZUNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFJlc291cmNlQXJuOiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIlJlc291cmNlQXJuXCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkR5bmFtb0RCXzIwMTIwODEwXCIsIFwiVGFnUmVzb3VyY2VcIiwge30pXG4gICAgLm4oXCJEeW5hbW9EQkNsaWVudFwiLCBcIlRhZ1Jlc291cmNlQ29tbWFuZFwiKVxuICAgIC5zYyhUYWdSZXNvdXJjZSQpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBUcmFuc2FjdEdldEl0ZW1zQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgUmVzb3VyY2VBcm5MaXN0OiB7IHR5cGU6IFwib3BlcmF0aW9uQ29udGV4dFBhcmFtc1wiLCBnZXQ6IChpbnB1dCkgPT4gaW5wdXQ/LlRyYW5zYWN0SXRlbXM/Lm1hcCgob2JqKSA9PiBvYmo/LkdldD8uVGFibGVOYW1lKSB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiRHluYW1vREJfMjAxMjA4MTBcIiwgXCJUcmFuc2FjdEdldEl0ZW1zXCIsIHt9KVxuICAgIC5uKFwiRHluYW1vREJDbGllbnRcIiwgXCJUcmFuc2FjdEdldEl0ZW1zQ29tbWFuZFwiKVxuICAgIC5zYyhUcmFuc2FjdEdldEl0ZW1zJClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFRyYW5zYWN0V3JpdGVJdGVtc0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFJlc291cmNlQXJuTGlzdDogeyB0eXBlOiBcIm9wZXJhdGlvbkNvbnRleHRQYXJhbXNcIiwgZ2V0OiAoaW5wdXQpID0+IGlucHV0Py5UcmFuc2FjdEl0ZW1zPy5tYXAoKG9iaikgPT4gW29iaj8uQ29uZGl0aW9uQ2hlY2s/LlRhYmxlTmFtZSwgb2JqPy5QdXQ/LlRhYmxlTmFtZSwgb2JqPy5EZWxldGU/LlRhYmxlTmFtZSwgb2JqPy5VcGRhdGU/LlRhYmxlTmFtZV0uZmlsdGVyKChpKSA9PiBpKSkuZmxhdCgpIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJEeW5hbW9EQl8yMDEyMDgxMFwiLCBcIlRyYW5zYWN0V3JpdGVJdGVtc1wiLCB7fSlcbiAgICAubihcIkR5bmFtb0RCQ2xpZW50XCIsIFwiVHJhbnNhY3RXcml0ZUl0ZW1zQ29tbWFuZFwiKVxuICAgIC5zYyhUcmFuc2FjdFdyaXRlSXRlbXMkKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgVW50YWdSZXNvdXJjZUNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFJlc291cmNlQXJuOiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIlJlc291cmNlQXJuXCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkR5bmFtb0RCXzIwMTIwODEwXCIsIFwiVW50YWdSZXNvdXJjZVwiLCB7fSlcbiAgICAubihcIkR5bmFtb0RCQ2xpZW50XCIsIFwiVW50YWdSZXNvdXJjZUNvbW1hbmRcIilcbiAgICAuc2MoVW50YWdSZXNvdXJjZSQpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBVcGRhdGVDb250aW51b3VzQmFja3Vwc0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFJlc291cmNlQXJuOiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIlRhYmxlTmFtZVwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJEeW5hbW9EQl8yMDEyMDgxMFwiLCBcIlVwZGF0ZUNvbnRpbnVvdXNCYWNrdXBzXCIsIHt9KVxuICAgIC5uKFwiRHluYW1vREJDbGllbnRcIiwgXCJVcGRhdGVDb250aW51b3VzQmFja3Vwc0NvbW1hbmRcIilcbiAgICAuc2MoVXBkYXRlQ29udGludW91c0JhY2t1cHMkKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgVXBkYXRlQ29udHJpYnV0b3JJbnNpZ2h0c0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFJlc291cmNlQXJuOiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIlRhYmxlTmFtZVwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJEeW5hbW9EQl8yMDEyMDgxMFwiLCBcIlVwZGF0ZUNvbnRyaWJ1dG9ySW5zaWdodHNcIiwge30pXG4gICAgLm4oXCJEeW5hbW9EQkNsaWVudFwiLCBcIlVwZGF0ZUNvbnRyaWJ1dG9ySW5zaWdodHNDb21tYW5kXCIpXG4gICAgLnNjKFVwZGF0ZUNvbnRyaWJ1dG9ySW5zaWdodHMkKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgVXBkYXRlR2xvYmFsVGFibGVDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBSZXNvdXJjZUFybjogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJHbG9iYWxUYWJsZU5hbWVcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiRHluYW1vREJfMjAxMjA4MTBcIiwgXCJVcGRhdGVHbG9iYWxUYWJsZVwiLCB7fSlcbiAgICAubihcIkR5bmFtb0RCQ2xpZW50XCIsIFwiVXBkYXRlR2xvYmFsVGFibGVDb21tYW5kXCIpXG4gICAgLnNjKFVwZGF0ZUdsb2JhbFRhYmxlJClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFVwZGF0ZUdsb2JhbFRhYmxlU2V0dGluZ3NDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBSZXNvdXJjZUFybjogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJHbG9iYWxUYWJsZU5hbWVcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiRHluYW1vREJfMjAxMjA4MTBcIiwgXCJVcGRhdGVHbG9iYWxUYWJsZVNldHRpbmdzXCIsIHt9KVxuICAgIC5uKFwiRHluYW1vREJDbGllbnRcIiwgXCJVcGRhdGVHbG9iYWxUYWJsZVNldHRpbmdzQ29tbWFuZFwiKVxuICAgIC5zYyhVcGRhdGVHbG9iYWxUYWJsZVNldHRpbmdzJClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFVwZGF0ZUl0ZW1Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBSZXNvdXJjZUFybjogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJUYWJsZU5hbWVcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiRHluYW1vREJfMjAxMjA4MTBcIiwgXCJVcGRhdGVJdGVtXCIsIHt9KVxuICAgIC5uKFwiRHluYW1vREJDbGllbnRcIiwgXCJVcGRhdGVJdGVtQ29tbWFuZFwiKVxuICAgIC5zYyhVcGRhdGVJdGVtJClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFVwZGF0ZUtpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvbkNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFJlc291cmNlQXJuOiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIlRhYmxlTmFtZVwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJEeW5hbW9EQl8yMDEyMDgxMFwiLCBcIlVwZGF0ZUtpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvblwiLCB7fSlcbiAgICAubihcIkR5bmFtb0RCQ2xpZW50XCIsIFwiVXBkYXRlS2luZXNpc1N0cmVhbWluZ0Rlc3RpbmF0aW9uQ29tbWFuZFwiKVxuICAgIC5zYyhVcGRhdGVLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb24kKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgVXBkYXRlVGFibGVDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBSZXNvdXJjZUFybjogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJUYWJsZU5hbWVcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiRHluYW1vREJfMjAxMjA4MTBcIiwgXCJVcGRhdGVUYWJsZVwiLCB7fSlcbiAgICAubihcIkR5bmFtb0RCQ2xpZW50XCIsIFwiVXBkYXRlVGFibGVDb21tYW5kXCIpXG4gICAgLnNjKFVwZGF0ZVRhYmxlJClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFVwZGF0ZVRhYmxlUmVwbGljYUF1dG9TY2FsaW5nQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgUmVzb3VyY2VBcm46IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiVGFibGVOYW1lXCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkR5bmFtb0RCXzIwMTIwODEwXCIsIFwiVXBkYXRlVGFibGVSZXBsaWNhQXV0b1NjYWxpbmdcIiwge30pXG4gICAgLm4oXCJEeW5hbW9EQkNsaWVudFwiLCBcIlVwZGF0ZVRhYmxlUmVwbGljYUF1dG9TY2FsaW5nQ29tbWFuZFwiKVxuICAgIC5zYyhVcGRhdGVUYWJsZVJlcGxpY2FBdXRvU2NhbGluZyQpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBVcGRhdGVUaW1lVG9MaXZlQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgUmVzb3VyY2VBcm46IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiVGFibGVOYW1lXCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkR5bmFtb0RCXzIwMTIwODEwXCIsIFwiVXBkYXRlVGltZVRvTGl2ZVwiLCB7fSlcbiAgICAubihcIkR5bmFtb0RCQ2xpZW50XCIsIFwiVXBkYXRlVGltZVRvTGl2ZUNvbW1hbmRcIilcbiAgICAuc2MoVXBkYXRlVGltZVRvTGl2ZSQpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jb25zdCBwYWdpbmF0ZUxpc3RDb250cmlidXRvckluc2lnaHRzID0gY29yZS5jcmVhdGVQYWdpbmF0b3IoRHluYW1vREJDbGllbnQsIExpc3RDb250cmlidXRvckluc2lnaHRzQ29tbWFuZCwgXCJOZXh0VG9rZW5cIiwgXCJOZXh0VG9rZW5cIiwgXCJNYXhSZXN1bHRzXCIpO1xuXG5jb25zdCBwYWdpbmF0ZUxpc3RFeHBvcnRzID0gY29yZS5jcmVhdGVQYWdpbmF0b3IoRHluYW1vREJDbGllbnQsIExpc3RFeHBvcnRzQ29tbWFuZCwgXCJOZXh0VG9rZW5cIiwgXCJOZXh0VG9rZW5cIiwgXCJNYXhSZXN1bHRzXCIpO1xuXG5jb25zdCBwYWdpbmF0ZUxpc3RJbXBvcnRzID0gY29yZS5jcmVhdGVQYWdpbmF0b3IoRHluYW1vREJDbGllbnQsIExpc3RJbXBvcnRzQ29tbWFuZCwgXCJOZXh0VG9rZW5cIiwgXCJOZXh0VG9rZW5cIiwgXCJQYWdlU2l6ZVwiKTtcblxuY29uc3QgcGFnaW5hdGVMaXN0VGFibGVzID0gY29yZS5jcmVhdGVQYWdpbmF0b3IoRHluYW1vREJDbGllbnQsIExpc3RUYWJsZXNDb21tYW5kLCBcIkV4Y2x1c2l2ZVN0YXJ0VGFibGVOYW1lXCIsIFwiTGFzdEV2YWx1YXRlZFRhYmxlTmFtZVwiLCBcIkxpbWl0XCIpO1xuXG5jb25zdCBwYWdpbmF0ZVF1ZXJ5ID0gY29yZS5jcmVhdGVQYWdpbmF0b3IoRHluYW1vREJDbGllbnQsIFF1ZXJ5Q29tbWFuZCwgXCJFeGNsdXNpdmVTdGFydEtleVwiLCBcIkxhc3RFdmFsdWF0ZWRLZXlcIiwgXCJMaW1pdFwiKTtcblxuY29uc3QgcGFnaW5hdGVTY2FuID0gY29yZS5jcmVhdGVQYWdpbmF0b3IoRHluYW1vREJDbGllbnQsIFNjYW5Db21tYW5kLCBcIkV4Y2x1c2l2ZVN0YXJ0S2V5XCIsIFwiTGFzdEV2YWx1YXRlZEtleVwiLCBcIkxpbWl0XCIpO1xuXG5jb25zdCBjaGVja1N0YXRlJDUgPSBhc3luYyAoY2xpZW50LCBpbnB1dCkgPT4ge1xuICAgIGxldCByZWFzb247XG4gICAgdHJ5IHtcbiAgICAgICAgbGV0IHJlc3VsdCA9IGF3YWl0IGNsaWVudC5zZW5kKG5ldyBEZXNjcmliZUNvbnRyaWJ1dG9ySW5zaWdodHNDb21tYW5kKGlucHV0KSk7XG4gICAgICAgIHJlYXNvbiA9IHJlc3VsdDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJldHVybkNvbXBhcmF0b3IgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5Db250cmlidXRvckluc2lnaHRzU3RhdHVzO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmIChyZXR1cm5Db21wYXJhdG9yKCkgPT09IFwiRU5BQkxFRFwiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgc3RhdGU6IHV0aWxXYWl0ZXIuV2FpdGVyU3RhdGUuU1VDQ0VTUywgcmVhc29uIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHsgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcmV0dXJuQ29tcGFyYXRvciA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LkNvbnRyaWJ1dG9ySW5zaWdodHNTdGF0dXM7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKHJldHVybkNvbXBhcmF0b3IoKSA9PT0gXCJGQUlMRURcIikge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IHN0YXRlOiB1dGlsV2FpdGVyLldhaXRlclN0YXRlLkZBSUxVUkUsIHJlYXNvbiB9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7IH1cbiAgICB9XG4gICAgY2F0Y2ggKGV4Y2VwdGlvbikge1xuICAgICAgICByZWFzb24gPSBleGNlcHRpb247XG4gICAgfVxuICAgIHJldHVybiB7IHN0YXRlOiB1dGlsV2FpdGVyLldhaXRlclN0YXRlLlJFVFJZLCByZWFzb24gfTtcbn07XG5jb25zdCB3YWl0Rm9yQ29udHJpYnV0b3JJbnNpZ2h0c0VuYWJsZWQgPSBhc3luYyAocGFyYW1zLCBpbnB1dCkgPT4ge1xuICAgIGNvbnN0IHNlcnZpY2VEZWZhdWx0cyA9IHsgbWluRGVsYXk6IDIwLCBtYXhEZWxheTogMTIwIH07XG4gICAgcmV0dXJuIHV0aWxXYWl0ZXIuY3JlYXRlV2FpdGVyKHsgLi4uc2VydmljZURlZmF1bHRzLCAuLi5wYXJhbXMgfSwgaW5wdXQsIGNoZWNrU3RhdGUkNSk7XG59O1xuY29uc3Qgd2FpdFVudGlsQ29udHJpYnV0b3JJbnNpZ2h0c0VuYWJsZWQgPSBhc3luYyAocGFyYW1zLCBpbnB1dCkgPT4ge1xuICAgIGNvbnN0IHNlcnZpY2VEZWZhdWx0cyA9IHsgbWluRGVsYXk6IDIwLCBtYXhEZWxheTogMTIwIH07XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdXRpbFdhaXRlci5jcmVhdGVXYWl0ZXIoeyAuLi5zZXJ2aWNlRGVmYXVsdHMsIC4uLnBhcmFtcyB9LCBpbnB1dCwgY2hlY2tTdGF0ZSQ1KTtcbiAgICByZXR1cm4gdXRpbFdhaXRlci5jaGVja0V4Y2VwdGlvbnMocmVzdWx0KTtcbn07XG5cbmNvbnN0IGNoZWNrU3RhdGUkNCA9IGFzeW5jIChjbGllbnQsIGlucHV0KSA9PiB7XG4gICAgbGV0IHJlYXNvbjtcbiAgICB0cnkge1xuICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgY2xpZW50LnNlbmQobmV3IERlc2NyaWJlRXhwb3J0Q29tbWFuZChpbnB1dCkpO1xuICAgICAgICByZWFzb24gPSByZXN1bHQ7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByZXR1cm5Db21wYXJhdG9yID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQuRXhwb3J0RGVzY3JpcHRpb24uRXhwb3J0U3RhdHVzO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmIChyZXR1cm5Db21wYXJhdG9yKCkgPT09IFwiQ09NUExFVEVEXCIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBzdGF0ZTogdXRpbFdhaXRlci5XYWl0ZXJTdGF0ZS5TVUNDRVNTLCByZWFzb24gfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkgeyB9XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByZXR1cm5Db21wYXJhdG9yID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQuRXhwb3J0RGVzY3JpcHRpb24uRXhwb3J0U3RhdHVzO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmIChyZXR1cm5Db21wYXJhdG9yKCkgPT09IFwiRkFJTEVEXCIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBzdGF0ZTogdXRpbFdhaXRlci5XYWl0ZXJTdGF0ZS5GQUlMVVJFLCByZWFzb24gfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkgeyB9XG4gICAgfVxuICAgIGNhdGNoIChleGNlcHRpb24pIHtcbiAgICAgICAgcmVhc29uID0gZXhjZXB0aW9uO1xuICAgIH1cbiAgICByZXR1cm4geyBzdGF0ZTogdXRpbFdhaXRlci5XYWl0ZXJTdGF0ZS5SRVRSWSwgcmVhc29uIH07XG59O1xuY29uc3Qgd2FpdEZvckV4cG9ydENvbXBsZXRlZCA9IGFzeW5jIChwYXJhbXMsIGlucHV0KSA9PiB7XG4gICAgY29uc3Qgc2VydmljZURlZmF1bHRzID0geyBtaW5EZWxheTogMjAsIG1heERlbGF5OiAxMjAgfTtcbiAgICByZXR1cm4gdXRpbFdhaXRlci5jcmVhdGVXYWl0ZXIoeyAuLi5zZXJ2aWNlRGVmYXVsdHMsIC4uLnBhcmFtcyB9LCBpbnB1dCwgY2hlY2tTdGF0ZSQ0KTtcbn07XG5jb25zdCB3YWl0VW50aWxFeHBvcnRDb21wbGV0ZWQgPSBhc3luYyAocGFyYW1zLCBpbnB1dCkgPT4ge1xuICAgIGNvbnN0IHNlcnZpY2VEZWZhdWx0cyA9IHsgbWluRGVsYXk6IDIwLCBtYXhEZWxheTogMTIwIH07XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdXRpbFdhaXRlci5jcmVhdGVXYWl0ZXIoeyAuLi5zZXJ2aWNlRGVmYXVsdHMsIC4uLnBhcmFtcyB9LCBpbnB1dCwgY2hlY2tTdGF0ZSQ0KTtcbiAgICByZXR1cm4gdXRpbFdhaXRlci5jaGVja0V4Y2VwdGlvbnMocmVzdWx0KTtcbn07XG5cbmNvbnN0IGNoZWNrU3RhdGUkMyA9IGFzeW5jIChjbGllbnQsIGlucHV0KSA9PiB7XG4gICAgbGV0IHJlYXNvbjtcbiAgICB0cnkge1xuICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgY2xpZW50LnNlbmQobmV3IERlc2NyaWJlSW1wb3J0Q29tbWFuZChpbnB1dCkpO1xuICAgICAgICByZWFzb24gPSByZXN1bHQ7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByZXR1cm5Db21wYXJhdG9yID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQuSW1wb3J0VGFibGVEZXNjcmlwdGlvbi5JbXBvcnRTdGF0dXM7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKHJldHVybkNvbXBhcmF0b3IoKSA9PT0gXCJDT01QTEVURURcIikge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IHN0YXRlOiB1dGlsV2FpdGVyLldhaXRlclN0YXRlLlNVQ0NFU1MsIHJlYXNvbiB9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7IH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJldHVybkNvbXBhcmF0b3IgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5JbXBvcnRUYWJsZURlc2NyaXB0aW9uLkltcG9ydFN0YXR1cztcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAocmV0dXJuQ29tcGFyYXRvcigpID09PSBcIkZBSUxFRFwiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgc3RhdGU6IHV0aWxXYWl0ZXIuV2FpdGVyU3RhdGUuRkFJTFVSRSwgcmVhc29uIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHsgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcmV0dXJuQ29tcGFyYXRvciA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LkltcG9ydFRhYmxlRGVzY3JpcHRpb24uSW1wb3J0U3RhdHVzO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmIChyZXR1cm5Db21wYXJhdG9yKCkgPT09IFwiQ0FOQ0VMTEVEXCIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBzdGF0ZTogdXRpbFdhaXRlci5XYWl0ZXJTdGF0ZS5GQUlMVVJFLCByZWFzb24gfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkgeyB9XG4gICAgfVxuICAgIGNhdGNoIChleGNlcHRpb24pIHtcbiAgICAgICAgcmVhc29uID0gZXhjZXB0aW9uO1xuICAgIH1cbiAgICByZXR1cm4geyBzdGF0ZTogdXRpbFdhaXRlci5XYWl0ZXJTdGF0ZS5SRVRSWSwgcmVhc29uIH07XG59O1xuY29uc3Qgd2FpdEZvckltcG9ydENvbXBsZXRlZCA9IGFzeW5jIChwYXJhbXMsIGlucHV0KSA9PiB7XG4gICAgY29uc3Qgc2VydmljZURlZmF1bHRzID0geyBtaW5EZWxheTogMjAsIG1heERlbGF5OiAxMjAgfTtcbiAgICByZXR1cm4gdXRpbFdhaXRlci5jcmVhdGVXYWl0ZXIoeyAuLi5zZXJ2aWNlRGVmYXVsdHMsIC4uLnBhcmFtcyB9LCBpbnB1dCwgY2hlY2tTdGF0ZSQzKTtcbn07XG5jb25zdCB3YWl0VW50aWxJbXBvcnRDb21wbGV0ZWQgPSBhc3luYyAocGFyYW1zLCBpbnB1dCkgPT4ge1xuICAgIGNvbnN0IHNlcnZpY2VEZWZhdWx0cyA9IHsgbWluRGVsYXk6IDIwLCBtYXhEZWxheTogMTIwIH07XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdXRpbFdhaXRlci5jcmVhdGVXYWl0ZXIoeyAuLi5zZXJ2aWNlRGVmYXVsdHMsIC4uLnBhcmFtcyB9LCBpbnB1dCwgY2hlY2tTdGF0ZSQzKTtcbiAgICByZXR1cm4gdXRpbFdhaXRlci5jaGVja0V4Y2VwdGlvbnMocmVzdWx0KTtcbn07XG5cbmNvbnN0IGNoZWNrU3RhdGUkMiA9IGFzeW5jIChjbGllbnQsIGlucHV0KSA9PiB7XG4gICAgbGV0IHJlYXNvbjtcbiAgICB0cnkge1xuICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgY2xpZW50LnNlbmQobmV3IERlc2NyaWJlS2luZXNpc1N0cmVhbWluZ0Rlc3RpbmF0aW9uQ29tbWFuZChpbnB1dCkpO1xuICAgICAgICByZWFzb24gPSByZXN1bHQ7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByZXR1cm5Db21wYXJhdG9yID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBmbGF0XzEgPSBbXS5jb25jYXQoLi4ucmVzdWx0LktpbmVzaXNEYXRhU3RyZWFtRGVzdGluYXRpb25zKTtcbiAgICAgICAgICAgICAgICBsZXQgcHJvamVjdGlvbl8zID0gZmxhdF8xLm1hcCgoZWxlbWVudF8yKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBlbGVtZW50XzIuRGVzdGluYXRpb25TdGF0dXM7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHByb2plY3Rpb25fMztcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBmb3IgKGxldCBhbnlTdHJpbmdFcV80IG9mIHJldHVybkNvbXBhcmF0b3IoKSkge1xuICAgICAgICAgICAgICAgIGlmIChhbnlTdHJpbmdFcV80ID09IFwiQUNUSVZFXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgc3RhdGU6IHV0aWxXYWl0ZXIuV2FpdGVyU3RhdGUuU1VDQ0VTUywgcmVhc29uIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7IH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJldHVybkNvbXBhcmF0b3IgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IGZpbHRlclJlc18yID0gcmVzdWx0LktpbmVzaXNEYXRhU3RyZWFtRGVzdGluYXRpb25zLmZpbHRlcigoZWxlbWVudF8xKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoKChlbGVtZW50XzEuRGVzdGluYXRpb25TdGF0dXMgPT0gXCJESVNBQkxFRFwiKSB8fCAoZWxlbWVudF8xLkRlc3RpbmF0aW9uU3RhdHVzID09IFwiRU5BQkxFX0ZBSUxFRFwiKSkgJiYgKChlbGVtZW50XzEuRGVzdGluYXRpb25TdGF0dXMgPT0gXCJFTkFCTEVfRkFJTEVEXCIpIHx8IChlbGVtZW50XzEuRGVzdGluYXRpb25TdGF0dXMgPT0gXCJESVNBQkxFRFwiKSkpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiAoKHJlc3VsdC5LaW5lc2lzRGF0YVN0cmVhbURlc3RpbmF0aW9ucy5sZW5ndGggPiAwKSAmJiAoZmlsdGVyUmVzXzIubGVuZ3RoID09IHJlc3VsdC5LaW5lc2lzRGF0YVN0cmVhbURlc3RpbmF0aW9ucy5sZW5ndGgpKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAocmV0dXJuQ29tcGFyYXRvcigpID09IHRydWUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBzdGF0ZTogdXRpbFdhaXRlci5XYWl0ZXJTdGF0ZS5GQUlMVVJFLCByZWFzb24gfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkgeyB9XG4gICAgfVxuICAgIGNhdGNoIChleGNlcHRpb24pIHtcbiAgICAgICAgcmVhc29uID0gZXhjZXB0aW9uO1xuICAgIH1cbiAgICByZXR1cm4geyBzdGF0ZTogdXRpbFdhaXRlci5XYWl0ZXJTdGF0ZS5SRVRSWSwgcmVhc29uIH07XG59O1xuY29uc3Qgd2FpdEZvcktpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvbkFjdGl2ZSA9IGFzeW5jIChwYXJhbXMsIGlucHV0KSA9PiB7XG4gICAgY29uc3Qgc2VydmljZURlZmF1bHRzID0geyBtaW5EZWxheTogMjAsIG1heERlbGF5OiAxMjAgfTtcbiAgICByZXR1cm4gdXRpbFdhaXRlci5jcmVhdGVXYWl0ZXIoeyAuLi5zZXJ2aWNlRGVmYXVsdHMsIC4uLnBhcmFtcyB9LCBpbnB1dCwgY2hlY2tTdGF0ZSQyKTtcbn07XG5jb25zdCB3YWl0VW50aWxLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb25BY3RpdmUgPSBhc3luYyAocGFyYW1zLCBpbnB1dCkgPT4ge1xuICAgIGNvbnN0IHNlcnZpY2VEZWZhdWx0cyA9IHsgbWluRGVsYXk6IDIwLCBtYXhEZWxheTogMTIwIH07XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdXRpbFdhaXRlci5jcmVhdGVXYWl0ZXIoeyAuLi5zZXJ2aWNlRGVmYXVsdHMsIC4uLnBhcmFtcyB9LCBpbnB1dCwgY2hlY2tTdGF0ZSQyKTtcbiAgICByZXR1cm4gdXRpbFdhaXRlci5jaGVja0V4Y2VwdGlvbnMocmVzdWx0KTtcbn07XG5cbmNvbnN0IGNoZWNrU3RhdGUkMSA9IGFzeW5jIChjbGllbnQsIGlucHV0KSA9PiB7XG4gICAgbGV0IHJlYXNvbjtcbiAgICB0cnkge1xuICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgY2xpZW50LnNlbmQobmV3IERlc2NyaWJlVGFibGVDb21tYW5kKGlucHV0KSk7XG4gICAgICAgIHJlYXNvbiA9IHJlc3VsdDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJldHVybkNvbXBhcmF0b3IgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5UYWJsZS5UYWJsZVN0YXR1cztcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAocmV0dXJuQ29tcGFyYXRvcigpID09PSBcIkFDVElWRVwiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgc3RhdGU6IHV0aWxXYWl0ZXIuV2FpdGVyU3RhdGUuU1VDQ0VTUywgcmVhc29uIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHsgfVxuICAgIH1cbiAgICBjYXRjaCAoZXhjZXB0aW9uKSB7XG4gICAgICAgIHJlYXNvbiA9IGV4Y2VwdGlvbjtcbiAgICAgICAgaWYgKGV4Y2VwdGlvbi5uYW1lICYmIGV4Y2VwdGlvbi5uYW1lID09IFwiUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvblwiKSB7XG4gICAgICAgICAgICByZXR1cm4geyBzdGF0ZTogdXRpbFdhaXRlci5XYWl0ZXJTdGF0ZS5SRVRSWSwgcmVhc29uIH07XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHsgc3RhdGU6IHV0aWxXYWl0ZXIuV2FpdGVyU3RhdGUuUkVUUlksIHJlYXNvbiB9O1xufTtcbmNvbnN0IHdhaXRGb3JUYWJsZUV4aXN0cyA9IGFzeW5jIChwYXJhbXMsIGlucHV0KSA9PiB7XG4gICAgY29uc3Qgc2VydmljZURlZmF1bHRzID0geyBtaW5EZWxheTogMjAsIG1heERlbGF5OiAxMjAgfTtcbiAgICByZXR1cm4gdXRpbFdhaXRlci5jcmVhdGVXYWl0ZXIoeyAuLi5zZXJ2aWNlRGVmYXVsdHMsIC4uLnBhcmFtcyB9LCBpbnB1dCwgY2hlY2tTdGF0ZSQxKTtcbn07XG5jb25zdCB3YWl0VW50aWxUYWJsZUV4aXN0cyA9IGFzeW5jIChwYXJhbXMsIGlucHV0KSA9PiB7XG4gICAgY29uc3Qgc2VydmljZURlZmF1bHRzID0geyBtaW5EZWxheTogMjAsIG1heERlbGF5OiAxMjAgfTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB1dGlsV2FpdGVyLmNyZWF0ZVdhaXRlcih7IC4uLnNlcnZpY2VEZWZhdWx0cywgLi4ucGFyYW1zIH0sIGlucHV0LCBjaGVja1N0YXRlJDEpO1xuICAgIHJldHVybiB1dGlsV2FpdGVyLmNoZWNrRXhjZXB0aW9ucyhyZXN1bHQpO1xufTtcblxuY29uc3QgY2hlY2tTdGF0ZSA9IGFzeW5jIChjbGllbnQsIGlucHV0KSA9PiB7XG4gICAgbGV0IHJlYXNvbjtcbiAgICB0cnkge1xuICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgY2xpZW50LnNlbmQobmV3IERlc2NyaWJlVGFibGVDb21tYW5kKGlucHV0KSk7XG4gICAgICAgIHJlYXNvbiA9IHJlc3VsdDtcbiAgICB9XG4gICAgY2F0Y2ggKGV4Y2VwdGlvbikge1xuICAgICAgICByZWFzb24gPSBleGNlcHRpb247XG4gICAgICAgIGlmIChleGNlcHRpb24ubmFtZSAmJiBleGNlcHRpb24ubmFtZSA9PSBcIlJlc291cmNlTm90Rm91bmRFeGNlcHRpb25cIikge1xuICAgICAgICAgICAgcmV0dXJuIHsgc3RhdGU6IHV0aWxXYWl0ZXIuV2FpdGVyU3RhdGUuU1VDQ0VTUywgcmVhc29uIH07XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHsgc3RhdGU6IHV0aWxXYWl0ZXIuV2FpdGVyU3RhdGUuUkVUUlksIHJlYXNvbiB9O1xufTtcbmNvbnN0IHdhaXRGb3JUYWJsZU5vdEV4aXN0cyA9IGFzeW5jIChwYXJhbXMsIGlucHV0KSA9PiB7XG4gICAgY29uc3Qgc2VydmljZURlZmF1bHRzID0geyBtaW5EZWxheTogMjAsIG1heERlbGF5OiAxMjAgfTtcbiAgICByZXR1cm4gdXRpbFdhaXRlci5jcmVhdGVXYWl0ZXIoeyAuLi5zZXJ2aWNlRGVmYXVsdHMsIC4uLnBhcmFtcyB9LCBpbnB1dCwgY2hlY2tTdGF0ZSk7XG59O1xuY29uc3Qgd2FpdFVudGlsVGFibGVOb3RFeGlzdHMgPSBhc3luYyAocGFyYW1zLCBpbnB1dCkgPT4ge1xuICAgIGNvbnN0IHNlcnZpY2VEZWZhdWx0cyA9IHsgbWluRGVsYXk6IDIwLCBtYXhEZWxheTogMTIwIH07XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdXRpbFdhaXRlci5jcmVhdGVXYWl0ZXIoeyAuLi5zZXJ2aWNlRGVmYXVsdHMsIC4uLnBhcmFtcyB9LCBpbnB1dCwgY2hlY2tTdGF0ZSk7XG4gICAgcmV0dXJuIHV0aWxXYWl0ZXIuY2hlY2tFeGNlcHRpb25zKHJlc3VsdCk7XG59O1xuXG5jb25zdCBjb21tYW5kcyA9IHtcbiAgICBCYXRjaEV4ZWN1dGVTdGF0ZW1lbnRDb21tYW5kLFxuICAgIEJhdGNoR2V0SXRlbUNvbW1hbmQsXG4gICAgQmF0Y2hXcml0ZUl0ZW1Db21tYW5kLFxuICAgIENyZWF0ZUJhY2t1cENvbW1hbmQsXG4gICAgQ3JlYXRlR2xvYmFsVGFibGVDb21tYW5kLFxuICAgIENyZWF0ZVRhYmxlQ29tbWFuZCxcbiAgICBEZWxldGVCYWNrdXBDb21tYW5kLFxuICAgIERlbGV0ZUl0ZW1Db21tYW5kLFxuICAgIERlbGV0ZVJlc291cmNlUG9saWN5Q29tbWFuZCxcbiAgICBEZWxldGVUYWJsZUNvbW1hbmQsXG4gICAgRGVzY3JpYmVCYWNrdXBDb21tYW5kLFxuICAgIERlc2NyaWJlQ29udGludW91c0JhY2t1cHNDb21tYW5kLFxuICAgIERlc2NyaWJlQ29udHJpYnV0b3JJbnNpZ2h0c0NvbW1hbmQsXG4gICAgRGVzY3JpYmVFbmRwb2ludHNDb21tYW5kLFxuICAgIERlc2NyaWJlRXhwb3J0Q29tbWFuZCxcbiAgICBEZXNjcmliZUdsb2JhbFRhYmxlQ29tbWFuZCxcbiAgICBEZXNjcmliZUdsb2JhbFRhYmxlU2V0dGluZ3NDb21tYW5kLFxuICAgIERlc2NyaWJlSW1wb3J0Q29tbWFuZCxcbiAgICBEZXNjcmliZUtpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvbkNvbW1hbmQsXG4gICAgRGVzY3JpYmVMaW1pdHNDb21tYW5kLFxuICAgIERlc2NyaWJlVGFibGVDb21tYW5kLFxuICAgIERlc2NyaWJlVGFibGVSZXBsaWNhQXV0b1NjYWxpbmdDb21tYW5kLFxuICAgIERlc2NyaWJlVGltZVRvTGl2ZUNvbW1hbmQsXG4gICAgRGlzYWJsZUtpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvbkNvbW1hbmQsXG4gICAgRW5hYmxlS2luZXNpc1N0cmVhbWluZ0Rlc3RpbmF0aW9uQ29tbWFuZCxcbiAgICBFeGVjdXRlU3RhdGVtZW50Q29tbWFuZCxcbiAgICBFeGVjdXRlVHJhbnNhY3Rpb25Db21tYW5kLFxuICAgIEV4cG9ydFRhYmxlVG9Qb2ludEluVGltZUNvbW1hbmQsXG4gICAgR2V0SXRlbUNvbW1hbmQsXG4gICAgR2V0UmVzb3VyY2VQb2xpY3lDb21tYW5kLFxuICAgIEltcG9ydFRhYmxlQ29tbWFuZCxcbiAgICBMaXN0QmFja3Vwc0NvbW1hbmQsXG4gICAgTGlzdENvbnRyaWJ1dG9ySW5zaWdodHNDb21tYW5kLFxuICAgIExpc3RFeHBvcnRzQ29tbWFuZCxcbiAgICBMaXN0R2xvYmFsVGFibGVzQ29tbWFuZCxcbiAgICBMaXN0SW1wb3J0c0NvbW1hbmQsXG4gICAgTGlzdFRhYmxlc0NvbW1hbmQsXG4gICAgTGlzdFRhZ3NPZlJlc291cmNlQ29tbWFuZCxcbiAgICBQdXRJdGVtQ29tbWFuZCxcbiAgICBQdXRSZXNvdXJjZVBvbGljeUNvbW1hbmQsXG4gICAgUXVlcnlDb21tYW5kLFxuICAgIFJlc3RvcmVUYWJsZUZyb21CYWNrdXBDb21tYW5kLFxuICAgIFJlc3RvcmVUYWJsZVRvUG9pbnRJblRpbWVDb21tYW5kLFxuICAgIFNjYW5Db21tYW5kLFxuICAgIFRhZ1Jlc291cmNlQ29tbWFuZCxcbiAgICBUcmFuc2FjdEdldEl0ZW1zQ29tbWFuZCxcbiAgICBUcmFuc2FjdFdyaXRlSXRlbXNDb21tYW5kLFxuICAgIFVudGFnUmVzb3VyY2VDb21tYW5kLFxuICAgIFVwZGF0ZUNvbnRpbnVvdXNCYWNrdXBzQ29tbWFuZCxcbiAgICBVcGRhdGVDb250cmlidXRvckluc2lnaHRzQ29tbWFuZCxcbiAgICBVcGRhdGVHbG9iYWxUYWJsZUNvbW1hbmQsXG4gICAgVXBkYXRlR2xvYmFsVGFibGVTZXR0aW5nc0NvbW1hbmQsXG4gICAgVXBkYXRlSXRlbUNvbW1hbmQsXG4gICAgVXBkYXRlS2luZXNpc1N0cmVhbWluZ0Rlc3RpbmF0aW9uQ29tbWFuZCxcbiAgICBVcGRhdGVUYWJsZUNvbW1hbmQsXG4gICAgVXBkYXRlVGFibGVSZXBsaWNhQXV0b1NjYWxpbmdDb21tYW5kLFxuICAgIFVwZGF0ZVRpbWVUb0xpdmVDb21tYW5kLFxufTtcbmNvbnN0IHBhZ2luYXRvcnMgPSB7XG4gICAgcGFnaW5hdGVMaXN0Q29udHJpYnV0b3JJbnNpZ2h0cyxcbiAgICBwYWdpbmF0ZUxpc3RFeHBvcnRzLFxuICAgIHBhZ2luYXRlTGlzdEltcG9ydHMsXG4gICAgcGFnaW5hdGVMaXN0VGFibGVzLFxuICAgIHBhZ2luYXRlUXVlcnksXG4gICAgcGFnaW5hdGVTY2FuLFxufTtcbmNvbnN0IHdhaXRlcnMgPSB7XG4gICAgd2FpdFVudGlsQ29udHJpYnV0b3JJbnNpZ2h0c0VuYWJsZWQsXG4gICAgd2FpdFVudGlsRXhwb3J0Q29tcGxldGVkLFxuICAgIHdhaXRVbnRpbEltcG9ydENvbXBsZXRlZCxcbiAgICB3YWl0VW50aWxLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb25BY3RpdmUsXG4gICAgd2FpdFVudGlsVGFibGVFeGlzdHMsXG4gICAgd2FpdFVudGlsVGFibGVOb3RFeGlzdHMsXG59O1xuY2xhc3MgRHluYW1vREIgZXh0ZW5kcyBEeW5hbW9EQkNsaWVudCB7XG59XG5zbWl0aHlDbGllbnQuY3JlYXRlQWdncmVnYXRlZENsaWVudChjb21tYW5kcywgRHluYW1vREIsIHsgcGFnaW5hdG9ycywgd2FpdGVycyB9KTtcblxuY29uc3QgQXBwcm94aW1hdGVDcmVhdGlvbkRhdGVUaW1lUHJlY2lzaW9uID0ge1xuICAgIE1JQ1JPU0VDT05EOiBcIk1JQ1JPU0VDT05EXCIsXG4gICAgTUlMTElTRUNPTkQ6IFwiTUlMTElTRUNPTkRcIixcbn07XG5jb25zdCBBdHRyaWJ1dGVBY3Rpb24gPSB7XG4gICAgQUREOiBcIkFERFwiLFxuICAgIERFTEVURTogXCJERUxFVEVcIixcbiAgICBQVVQ6IFwiUFVUXCIsXG59O1xuY29uc3QgU2NhbGFyQXR0cmlidXRlVHlwZSA9IHtcbiAgICBCOiBcIkJcIixcbiAgICBOOiBcIk5cIixcbiAgICBTOiBcIlNcIixcbn07XG5jb25zdCBCYWNrdXBTdGF0dXMgPSB7XG4gICAgQVZBSUxBQkxFOiBcIkFWQUlMQUJMRVwiLFxuICAgIENSRUFUSU5HOiBcIkNSRUFUSU5HXCIsXG4gICAgREVMRVRFRDogXCJERUxFVEVEXCIsXG59O1xuY29uc3QgQmFja3VwVHlwZSA9IHtcbiAgICBBV1NfQkFDS1VQOiBcIkFXU19CQUNLVVBcIixcbiAgICBTWVNURU06IFwiU1lTVEVNXCIsXG4gICAgVVNFUjogXCJVU0VSXCIsXG59O1xuY29uc3QgQmlsbGluZ01vZGUgPSB7XG4gICAgUEFZX1BFUl9SRVFVRVNUOiBcIlBBWV9QRVJfUkVRVUVTVFwiLFxuICAgIFBST1ZJU0lPTkVEOiBcIlBST1ZJU0lPTkVEXCIsXG59O1xuY29uc3QgS2V5VHlwZSA9IHtcbiAgICBIQVNIOiBcIkhBU0hcIixcbiAgICBSQU5HRTogXCJSQU5HRVwiLFxufTtcbmNvbnN0IFByb2plY3Rpb25UeXBlID0ge1xuICAgIEFMTDogXCJBTExcIixcbiAgICBJTkNMVURFOiBcIklOQ0xVREVcIixcbiAgICBLRVlTX09OTFk6IFwiS0VZU19PTkxZXCIsXG59O1xuY29uc3QgU1NFVHlwZSA9IHtcbiAgICBBRVMyNTY6IFwiQUVTMjU2XCIsXG4gICAgS01TOiBcIktNU1wiLFxufTtcbmNvbnN0IFNTRVN0YXR1cyA9IHtcbiAgICBESVNBQkxFRDogXCJESVNBQkxFRFwiLFxuICAgIERJU0FCTElORzogXCJESVNBQkxJTkdcIixcbiAgICBFTkFCTEVEOiBcIkVOQUJMRURcIixcbiAgICBFTkFCTElORzogXCJFTkFCTElOR1wiLFxuICAgIFVQREFUSU5HOiBcIlVQREFUSU5HXCIsXG59O1xuY29uc3QgU3RyZWFtVmlld1R5cGUgPSB7XG4gICAgS0VZU19PTkxZOiBcIktFWVNfT05MWVwiLFxuICAgIE5FV19BTkRfT0xEX0lNQUdFUzogXCJORVdfQU5EX09MRF9JTUFHRVNcIixcbiAgICBORVdfSU1BR0U6IFwiTkVXX0lNQUdFXCIsXG4gICAgT0xEX0lNQUdFOiBcIk9MRF9JTUFHRVwiLFxufTtcbmNvbnN0IFRpbWVUb0xpdmVTdGF0dXMgPSB7XG4gICAgRElTQUJMRUQ6IFwiRElTQUJMRURcIixcbiAgICBESVNBQkxJTkc6IFwiRElTQUJMSU5HXCIsXG4gICAgRU5BQkxFRDogXCJFTkFCTEVEXCIsXG4gICAgRU5BQkxJTkc6IFwiRU5BQkxJTkdcIixcbn07XG5jb25zdCBCYWNrdXBUeXBlRmlsdGVyID0ge1xuICAgIEFMTDogXCJBTExcIixcbiAgICBBV1NfQkFDS1VQOiBcIkFXU19CQUNLVVBcIixcbiAgICBTWVNURU06IFwiU1lTVEVNXCIsXG4gICAgVVNFUjogXCJVU0VSXCIsXG59O1xuY29uc3QgUmV0dXJuQ29uc3VtZWRDYXBhY2l0eSA9IHtcbiAgICBJTkRFWEVTOiBcIklOREVYRVNcIixcbiAgICBOT05FOiBcIk5PTkVcIixcbiAgICBUT1RBTDogXCJUT1RBTFwiLFxufTtcbmNvbnN0IFJldHVyblZhbHVlc09uQ29uZGl0aW9uQ2hlY2tGYWlsdXJlID0ge1xuICAgIEFMTF9PTEQ6IFwiQUxMX09MRFwiLFxuICAgIE5PTkU6IFwiTk9ORVwiLFxufTtcbmNvbnN0IEJhdGNoU3RhdGVtZW50RXJyb3JDb2RlRW51bSA9IHtcbiAgICBBY2Nlc3NEZW5pZWQ6IFwiQWNjZXNzRGVuaWVkXCIsXG4gICAgQ29uZGl0aW9uYWxDaGVja0ZhaWxlZDogXCJDb25kaXRpb25hbENoZWNrRmFpbGVkXCIsXG4gICAgRHVwbGljYXRlSXRlbTogXCJEdXBsaWNhdGVJdGVtXCIsXG4gICAgSW50ZXJuYWxTZXJ2ZXJFcnJvcjogXCJJbnRlcm5hbFNlcnZlckVycm9yXCIsXG4gICAgSXRlbUNvbGxlY3Rpb25TaXplTGltaXRFeGNlZWRlZDogXCJJdGVtQ29sbGVjdGlvblNpemVMaW1pdEV4Y2VlZGVkXCIsXG4gICAgUHJvdmlzaW9uZWRUaHJvdWdocHV0RXhjZWVkZWQ6IFwiUHJvdmlzaW9uZWRUaHJvdWdocHV0RXhjZWVkZWRcIixcbiAgICBSZXF1ZXN0TGltaXRFeGNlZWRlZDogXCJSZXF1ZXN0TGltaXRFeGNlZWRlZFwiLFxuICAgIFJlc291cmNlTm90Rm91bmQ6IFwiUmVzb3VyY2VOb3RGb3VuZFwiLFxuICAgIFRocm90dGxpbmdFcnJvcjogXCJUaHJvdHRsaW5nRXJyb3JcIixcbiAgICBUcmFuc2FjdGlvbkNvbmZsaWN0OiBcIlRyYW5zYWN0aW9uQ29uZmxpY3RcIixcbiAgICBWYWxpZGF0aW9uRXJyb3I6IFwiVmFsaWRhdGlvbkVycm9yXCIsXG59O1xuY29uc3QgUmV0dXJuSXRlbUNvbGxlY3Rpb25NZXRyaWNzID0ge1xuICAgIE5PTkU6IFwiTk9ORVwiLFxuICAgIFNJWkU6IFwiU0laRVwiLFxufTtcbmNvbnN0IENvbXBhcmlzb25PcGVyYXRvciA9IHtcbiAgICBCRUdJTlNfV0lUSDogXCJCRUdJTlNfV0lUSFwiLFxuICAgIEJFVFdFRU46IFwiQkVUV0VFTlwiLFxuICAgIENPTlRBSU5TOiBcIkNPTlRBSU5TXCIsXG4gICAgRVE6IFwiRVFcIixcbiAgICBHRTogXCJHRVwiLFxuICAgIEdUOiBcIkdUXCIsXG4gICAgSU46IFwiSU5cIixcbiAgICBMRTogXCJMRVwiLFxuICAgIExUOiBcIkxUXCIsXG4gICAgTkU6IFwiTkVcIixcbiAgICBOT1RfQ09OVEFJTlM6IFwiTk9UX0NPTlRBSU5TXCIsXG4gICAgTk9UX05VTEw6IFwiTk9UX05VTExcIixcbiAgICBOVUxMOiBcIk5VTExcIixcbn07XG5jb25zdCBDb25kaXRpb25hbE9wZXJhdG9yID0ge1xuICAgIEFORDogXCJBTkRcIixcbiAgICBPUjogXCJPUlwiLFxufTtcbmNvbnN0IENvbnRpbnVvdXNCYWNrdXBzU3RhdHVzID0ge1xuICAgIERJU0FCTEVEOiBcIkRJU0FCTEVEXCIsXG4gICAgRU5BQkxFRDogXCJFTkFCTEVEXCIsXG59O1xuY29uc3QgUG9pbnRJblRpbWVSZWNvdmVyeVN0YXR1cyA9IHtcbiAgICBESVNBQkxFRDogXCJESVNBQkxFRFwiLFxuICAgIEVOQUJMRUQ6IFwiRU5BQkxFRFwiLFxufTtcbmNvbnN0IENvbnRyaWJ1dG9ySW5zaWdodHNBY3Rpb24gPSB7XG4gICAgRElTQUJMRTogXCJESVNBQkxFXCIsXG4gICAgRU5BQkxFOiBcIkVOQUJMRVwiLFxufTtcbmNvbnN0IENvbnRyaWJ1dG9ySW5zaWdodHNNb2RlID0ge1xuICAgIEFDQ0VTU0VEX0FORF9USFJPVFRMRURfS0VZUzogXCJBQ0NFU1NFRF9BTkRfVEhST1RUTEVEX0tFWVNcIixcbiAgICBUSFJPVFRMRURfS0VZUzogXCJUSFJPVFRMRURfS0VZU1wiLFxufTtcbmNvbnN0IENvbnRyaWJ1dG9ySW5zaWdodHNTdGF0dXMgPSB7XG4gICAgRElTQUJMRUQ6IFwiRElTQUJMRURcIixcbiAgICBESVNBQkxJTkc6IFwiRElTQUJMSU5HXCIsXG4gICAgRU5BQkxFRDogXCJFTkFCTEVEXCIsXG4gICAgRU5BQkxJTkc6IFwiRU5BQkxJTkdcIixcbiAgICBGQUlMRUQ6IFwiRkFJTEVEXCIsXG59O1xuY29uc3QgR2xvYmFsVGFibGVTdGF0dXMgPSB7XG4gICAgQUNUSVZFOiBcIkFDVElWRVwiLFxuICAgIENSRUFUSU5HOiBcIkNSRUFUSU5HXCIsXG4gICAgREVMRVRJTkc6IFwiREVMRVRJTkdcIixcbiAgICBVUERBVElORzogXCJVUERBVElOR1wiLFxufTtcbmNvbnN0IEluZGV4U3RhdHVzID0ge1xuICAgIEFDVElWRTogXCJBQ1RJVkVcIixcbiAgICBDUkVBVElORzogXCJDUkVBVElOR1wiLFxuICAgIERFTEVUSU5HOiBcIkRFTEVUSU5HXCIsXG4gICAgVVBEQVRJTkc6IFwiVVBEQVRJTkdcIixcbn07XG5jb25zdCBSZXBsaWNhU3RhdHVzID0ge1xuICAgIEFDVElWRTogXCJBQ1RJVkVcIixcbiAgICBBUkNISVZFRDogXCJBUkNISVZFRFwiLFxuICAgIEFSQ0hJVklORzogXCJBUkNISVZJTkdcIixcbiAgICBDUkVBVElORzogXCJDUkVBVElOR1wiLFxuICAgIENSRUFUSU9OX0ZBSUxFRDogXCJDUkVBVElPTl9GQUlMRURcIixcbiAgICBERUxFVElORzogXCJERUxFVElOR1wiLFxuICAgIElOQUNDRVNTSUJMRV9FTkNSWVBUSU9OX0NSRURFTlRJQUxTOiBcIklOQUNDRVNTSUJMRV9FTkNSWVBUSU9OX0NSRURFTlRJQUxTXCIsXG4gICAgUkVHSU9OX0RJU0FCTEVEOiBcIlJFR0lPTl9ESVNBQkxFRFwiLFxuICAgIFJFUExJQ0FUSU9OX05PVF9BVVRIT1JJWkVEOiBcIlJFUExJQ0FUSU9OX05PVF9BVVRIT1JJWkVEXCIsXG4gICAgVVBEQVRJTkc6IFwiVVBEQVRJTkdcIixcbn07XG5jb25zdCBUYWJsZUNsYXNzID0ge1xuICAgIFNUQU5EQVJEOiBcIlNUQU5EQVJEXCIsXG4gICAgU1RBTkRBUkRfSU5GUkVRVUVOVF9BQ0NFU1M6IFwiU1RBTkRBUkRfSU5GUkVRVUVOVF9BQ0NFU1NcIixcbn07XG5jb25zdCBUYWJsZVN0YXR1cyA9IHtcbiAgICBBQ1RJVkU6IFwiQUNUSVZFXCIsXG4gICAgQVJDSElWRUQ6IFwiQVJDSElWRURcIixcbiAgICBBUkNISVZJTkc6IFwiQVJDSElWSU5HXCIsXG4gICAgQ1JFQVRJTkc6IFwiQ1JFQVRJTkdcIixcbiAgICBERUxFVElORzogXCJERUxFVElOR1wiLFxuICAgIElOQUNDRVNTSUJMRV9FTkNSWVBUSU9OX0NSRURFTlRJQUxTOiBcIklOQUNDRVNTSUJMRV9FTkNSWVBUSU9OX0NSRURFTlRJQUxTXCIsXG4gICAgUkVQTElDQVRJT05fTk9UX0FVVEhPUklaRUQ6IFwiUkVQTElDQVRJT05fTk9UX0FVVEhPUklaRURcIixcbiAgICBVUERBVElORzogXCJVUERBVElOR1wiLFxufTtcbmNvbnN0IFdpdG5lc3NTdGF0dXMgPSB7XG4gICAgQUNUSVZFOiBcIkFDVElWRVwiLFxuICAgIENSRUFUSU5HOiBcIkNSRUFUSU5HXCIsXG4gICAgREVMRVRJTkc6IFwiREVMRVRJTkdcIixcbn07XG5jb25zdCBNdWx0aVJlZ2lvbkNvbnNpc3RlbmN5ID0ge1xuICAgIEVWRU5UVUFMOiBcIkVWRU5UVUFMXCIsXG4gICAgU1RST05HOiBcIlNUUk9OR1wiLFxufTtcbmNvbnN0IFJldHVyblZhbHVlID0ge1xuICAgIEFMTF9ORVc6IFwiQUxMX05FV1wiLFxuICAgIEFMTF9PTEQ6IFwiQUxMX09MRFwiLFxuICAgIE5PTkU6IFwiTk9ORVwiLFxuICAgIFVQREFURURfTkVXOiBcIlVQREFURURfTkVXXCIsXG4gICAgVVBEQVRFRF9PTEQ6IFwiVVBEQVRFRF9PTERcIixcbn07XG5jb25zdCBFeHBvcnRGb3JtYXQgPSB7XG4gICAgRFlOQU1PREJfSlNPTjogXCJEWU5BTU9EQl9KU09OXCIsXG4gICAgSU9OOiBcIklPTlwiLFxufTtcbmNvbnN0IEV4cG9ydFN0YXR1cyA9IHtcbiAgICBDT01QTEVURUQ6IFwiQ09NUExFVEVEXCIsXG4gICAgRkFJTEVEOiBcIkZBSUxFRFwiLFxuICAgIElOX1BST0dSRVNTOiBcIklOX1BST0dSRVNTXCIsXG59O1xuY29uc3QgRXhwb3J0VHlwZSA9IHtcbiAgICBGVUxMX0VYUE9SVDogXCJGVUxMX0VYUE9SVFwiLFxuICAgIElOQ1JFTUVOVEFMX0VYUE9SVDogXCJJTkNSRU1FTlRBTF9FWFBPUlRcIixcbn07XG5jb25zdCBFeHBvcnRWaWV3VHlwZSA9IHtcbiAgICBORVdfQU5EX09MRF9JTUFHRVM6IFwiTkVXX0FORF9PTERfSU1BR0VTXCIsXG4gICAgTkVXX0lNQUdFOiBcIk5FV19JTUFHRVwiLFxufTtcbmNvbnN0IFMzU3NlQWxnb3JpdGhtID0ge1xuICAgIEFFUzI1NjogXCJBRVMyNTZcIixcbiAgICBLTVM6IFwiS01TXCIsXG59O1xuY29uc3QgSW1wb3J0U3RhdHVzID0ge1xuICAgIENBTkNFTExFRDogXCJDQU5DRUxMRURcIixcbiAgICBDQU5DRUxMSU5HOiBcIkNBTkNFTExJTkdcIixcbiAgICBDT01QTEVURUQ6IFwiQ09NUExFVEVEXCIsXG4gICAgRkFJTEVEOiBcIkZBSUxFRFwiLFxuICAgIElOX1BST0dSRVNTOiBcIklOX1BST0dSRVNTXCIsXG59O1xuY29uc3QgSW5wdXRDb21wcmVzc2lvblR5cGUgPSB7XG4gICAgR1pJUDogXCJHWklQXCIsXG4gICAgTk9ORTogXCJOT05FXCIsXG4gICAgWlNURDogXCJaU1REXCIsXG59O1xuY29uc3QgSW5wdXRGb3JtYXQgPSB7XG4gICAgQ1NWOiBcIkNTVlwiLFxuICAgIERZTkFNT0RCX0pTT046IFwiRFlOQU1PREJfSlNPTlwiLFxuICAgIElPTjogXCJJT05cIixcbn07XG5jb25zdCBEZXN0aW5hdGlvblN0YXR1cyA9IHtcbiAgICBBQ1RJVkU6IFwiQUNUSVZFXCIsXG4gICAgRElTQUJMRUQ6IFwiRElTQUJMRURcIixcbiAgICBESVNBQkxJTkc6IFwiRElTQUJMSU5HXCIsXG4gICAgRU5BQkxFX0ZBSUxFRDogXCJFTkFCTEVfRkFJTEVEXCIsXG4gICAgRU5BQkxJTkc6IFwiRU5BQkxJTkdcIixcbiAgICBVUERBVElORzogXCJVUERBVElOR1wiLFxufTtcbmNvbnN0IFNlbGVjdCA9IHtcbiAgICBBTExfQVRUUklCVVRFUzogXCJBTExfQVRUUklCVVRFU1wiLFxuICAgIEFMTF9QUk9KRUNURURfQVRUUklCVVRFUzogXCJBTExfUFJPSkVDVEVEX0FUVFJJQlVURVNcIixcbiAgICBDT1VOVDogXCJDT1VOVFwiLFxuICAgIFNQRUNJRklDX0FUVFJJQlVURVM6IFwiU1BFQ0lGSUNfQVRUUklCVVRFU1wiLFxufTtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiJENvbW1hbmRcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBzbWl0aHlDbGllbnQuQ29tbWFuZDsgfVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX0NsaWVudFwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHNtaXRoeUNsaWVudC5DbGllbnQ7IH1cbn0pO1xuZXhwb3J0cy5BcHByb3hpbWF0ZUNyZWF0aW9uRGF0ZVRpbWVQcmVjaXNpb24gPSBBcHByb3hpbWF0ZUNyZWF0aW9uRGF0ZVRpbWVQcmVjaXNpb247XG5leHBvcnRzLkFyY2hpdmFsU3VtbWFyeSQgPSBBcmNoaXZhbFN1bW1hcnkkO1xuZXhwb3J0cy5BdHRyaWJ1dGVBY3Rpb24gPSBBdHRyaWJ1dGVBY3Rpb247XG5leHBvcnRzLkF0dHJpYnV0ZURlZmluaXRpb24kID0gQXR0cmlidXRlRGVmaW5pdGlvbiQ7XG5leHBvcnRzLkF0dHJpYnV0ZVZhbHVlJCA9IEF0dHJpYnV0ZVZhbHVlJDtcbmV4cG9ydHMuQXR0cmlidXRlVmFsdWVVcGRhdGUkID0gQXR0cmlidXRlVmFsdWVVcGRhdGUkO1xuZXhwb3J0cy5BdXRvU2NhbGluZ1BvbGljeURlc2NyaXB0aW9uJCA9IEF1dG9TY2FsaW5nUG9saWN5RGVzY3JpcHRpb24kO1xuZXhwb3J0cy5BdXRvU2NhbGluZ1BvbGljeVVwZGF0ZSQgPSBBdXRvU2NhbGluZ1BvbGljeVVwZGF0ZSQ7XG5leHBvcnRzLkF1dG9TY2FsaW5nU2V0dGluZ3NEZXNjcmlwdGlvbiQgPSBBdXRvU2NhbGluZ1NldHRpbmdzRGVzY3JpcHRpb24kO1xuZXhwb3J0cy5BdXRvU2NhbGluZ1NldHRpbmdzVXBkYXRlJCA9IEF1dG9TY2FsaW5nU2V0dGluZ3NVcGRhdGUkO1xuZXhwb3J0cy5BdXRvU2NhbGluZ1RhcmdldFRyYWNraW5nU2NhbGluZ1BvbGljeUNvbmZpZ3VyYXRpb25EZXNjcmlwdGlvbiQgPSBBdXRvU2NhbGluZ1RhcmdldFRyYWNraW5nU2NhbGluZ1BvbGljeUNvbmZpZ3VyYXRpb25EZXNjcmlwdGlvbiQ7XG5leHBvcnRzLkF1dG9TY2FsaW5nVGFyZ2V0VHJhY2tpbmdTY2FsaW5nUG9saWN5Q29uZmlndXJhdGlvblVwZGF0ZSQgPSBBdXRvU2NhbGluZ1RhcmdldFRyYWNraW5nU2NhbGluZ1BvbGljeUNvbmZpZ3VyYXRpb25VcGRhdGUkO1xuZXhwb3J0cy5CYWNrdXBEZXNjcmlwdGlvbiQgPSBCYWNrdXBEZXNjcmlwdGlvbiQ7XG5leHBvcnRzLkJhY2t1cERldGFpbHMkID0gQmFja3VwRGV0YWlscyQ7XG5leHBvcnRzLkJhY2t1cEluVXNlRXhjZXB0aW9uID0gQmFja3VwSW5Vc2VFeGNlcHRpb247XG5leHBvcnRzLkJhY2t1cEluVXNlRXhjZXB0aW9uJCA9IEJhY2t1cEluVXNlRXhjZXB0aW9uJDtcbmV4cG9ydHMuQmFja3VwTm90Rm91bmRFeGNlcHRpb24gPSBCYWNrdXBOb3RGb3VuZEV4Y2VwdGlvbjtcbmV4cG9ydHMuQmFja3VwTm90Rm91bmRFeGNlcHRpb24kID0gQmFja3VwTm90Rm91bmRFeGNlcHRpb24kO1xuZXhwb3J0cy5CYWNrdXBTdGF0dXMgPSBCYWNrdXBTdGF0dXM7XG5leHBvcnRzLkJhY2t1cFN1bW1hcnkkID0gQmFja3VwU3VtbWFyeSQ7XG5leHBvcnRzLkJhY2t1cFR5cGUgPSBCYWNrdXBUeXBlO1xuZXhwb3J0cy5CYWNrdXBUeXBlRmlsdGVyID0gQmFja3VwVHlwZUZpbHRlcjtcbmV4cG9ydHMuQmF0Y2hFeGVjdXRlU3RhdGVtZW50JCA9IEJhdGNoRXhlY3V0ZVN0YXRlbWVudCQ7XG5leHBvcnRzLkJhdGNoRXhlY3V0ZVN0YXRlbWVudENvbW1hbmQgPSBCYXRjaEV4ZWN1dGVTdGF0ZW1lbnRDb21tYW5kO1xuZXhwb3J0cy5CYXRjaEV4ZWN1dGVTdGF0ZW1lbnRJbnB1dCQgPSBCYXRjaEV4ZWN1dGVTdGF0ZW1lbnRJbnB1dCQ7XG5leHBvcnRzLkJhdGNoRXhlY3V0ZVN0YXRlbWVudE91dHB1dCQgPSBCYXRjaEV4ZWN1dGVTdGF0ZW1lbnRPdXRwdXQkO1xuZXhwb3J0cy5CYXRjaEdldEl0ZW0kID0gQmF0Y2hHZXRJdGVtJDtcbmV4cG9ydHMuQmF0Y2hHZXRJdGVtQ29tbWFuZCA9IEJhdGNoR2V0SXRlbUNvbW1hbmQ7XG5leHBvcnRzLkJhdGNoR2V0SXRlbUlucHV0JCA9IEJhdGNoR2V0SXRlbUlucHV0JDtcbmV4cG9ydHMuQmF0Y2hHZXRJdGVtT3V0cHV0JCA9IEJhdGNoR2V0SXRlbU91dHB1dCQ7XG5leHBvcnRzLkJhdGNoU3RhdGVtZW50RXJyb3IkID0gQmF0Y2hTdGF0ZW1lbnRFcnJvciQ7XG5leHBvcnRzLkJhdGNoU3RhdGVtZW50RXJyb3JDb2RlRW51bSA9IEJhdGNoU3RhdGVtZW50RXJyb3JDb2RlRW51bTtcbmV4cG9ydHMuQmF0Y2hTdGF0ZW1lbnRSZXF1ZXN0JCA9IEJhdGNoU3RhdGVtZW50UmVxdWVzdCQ7XG5leHBvcnRzLkJhdGNoU3RhdGVtZW50UmVzcG9uc2UkID0gQmF0Y2hTdGF0ZW1lbnRSZXNwb25zZSQ7XG5leHBvcnRzLkJhdGNoV3JpdGVJdGVtJCA9IEJhdGNoV3JpdGVJdGVtJDtcbmV4cG9ydHMuQmF0Y2hXcml0ZUl0ZW1Db21tYW5kID0gQmF0Y2hXcml0ZUl0ZW1Db21tYW5kO1xuZXhwb3J0cy5CYXRjaFdyaXRlSXRlbUlucHV0JCA9IEJhdGNoV3JpdGVJdGVtSW5wdXQkO1xuZXhwb3J0cy5CYXRjaFdyaXRlSXRlbU91dHB1dCQgPSBCYXRjaFdyaXRlSXRlbU91dHB1dCQ7XG5leHBvcnRzLkJpbGxpbmdNb2RlID0gQmlsbGluZ01vZGU7XG5leHBvcnRzLkJpbGxpbmdNb2RlU3VtbWFyeSQgPSBCaWxsaW5nTW9kZVN1bW1hcnkkO1xuZXhwb3J0cy5DYW5jZWxsYXRpb25SZWFzb24kID0gQ2FuY2VsbGF0aW9uUmVhc29uJDtcbmV4cG9ydHMuQ2FwYWNpdHkkID0gQ2FwYWNpdHkkO1xuZXhwb3J0cy5Db21wYXJpc29uT3BlcmF0b3IgPSBDb21wYXJpc29uT3BlcmF0b3I7XG5leHBvcnRzLkNvbmRpdGlvbiQgPSBDb25kaXRpb24kO1xuZXhwb3J0cy5Db25kaXRpb25DaGVjayQgPSBDb25kaXRpb25DaGVjayQ7XG5leHBvcnRzLkNvbmRpdGlvbmFsQ2hlY2tGYWlsZWRFeGNlcHRpb24gPSBDb25kaXRpb25hbENoZWNrRmFpbGVkRXhjZXB0aW9uO1xuZXhwb3J0cy5Db25kaXRpb25hbENoZWNrRmFpbGVkRXhjZXB0aW9uJCA9IENvbmRpdGlvbmFsQ2hlY2tGYWlsZWRFeGNlcHRpb24kO1xuZXhwb3J0cy5Db25kaXRpb25hbE9wZXJhdG9yID0gQ29uZGl0aW9uYWxPcGVyYXRvcjtcbmV4cG9ydHMuQ29uc3VtZWRDYXBhY2l0eSQgPSBDb25zdW1lZENhcGFjaXR5JDtcbmV4cG9ydHMuQ29udGludW91c0JhY2t1cHNEZXNjcmlwdGlvbiQgPSBDb250aW51b3VzQmFja3Vwc0Rlc2NyaXB0aW9uJDtcbmV4cG9ydHMuQ29udGludW91c0JhY2t1cHNTdGF0dXMgPSBDb250aW51b3VzQmFja3Vwc1N0YXR1cztcbmV4cG9ydHMuQ29udGludW91c0JhY2t1cHNVbmF2YWlsYWJsZUV4Y2VwdGlvbiA9IENvbnRpbnVvdXNCYWNrdXBzVW5hdmFpbGFibGVFeGNlcHRpb247XG5leHBvcnRzLkNvbnRpbnVvdXNCYWNrdXBzVW5hdmFpbGFibGVFeGNlcHRpb24kID0gQ29udGludW91c0JhY2t1cHNVbmF2YWlsYWJsZUV4Y2VwdGlvbiQ7XG5leHBvcnRzLkNvbnRyaWJ1dG9ySW5zaWdodHNBY3Rpb24gPSBDb250cmlidXRvckluc2lnaHRzQWN0aW9uO1xuZXhwb3J0cy5Db250cmlidXRvckluc2lnaHRzTW9kZSA9IENvbnRyaWJ1dG9ySW5zaWdodHNNb2RlO1xuZXhwb3J0cy5Db250cmlidXRvckluc2lnaHRzU3RhdHVzID0gQ29udHJpYnV0b3JJbnNpZ2h0c1N0YXR1cztcbmV4cG9ydHMuQ29udHJpYnV0b3JJbnNpZ2h0c1N1bW1hcnkkID0gQ29udHJpYnV0b3JJbnNpZ2h0c1N1bW1hcnkkO1xuZXhwb3J0cy5DcmVhdGVCYWNrdXAkID0gQ3JlYXRlQmFja3VwJDtcbmV4cG9ydHMuQ3JlYXRlQmFja3VwQ29tbWFuZCA9IENyZWF0ZUJhY2t1cENvbW1hbmQ7XG5leHBvcnRzLkNyZWF0ZUJhY2t1cElucHV0JCA9IENyZWF0ZUJhY2t1cElucHV0JDtcbmV4cG9ydHMuQ3JlYXRlQmFja3VwT3V0cHV0JCA9IENyZWF0ZUJhY2t1cE91dHB1dCQ7XG5leHBvcnRzLkNyZWF0ZUdsb2JhbFNlY29uZGFyeUluZGV4QWN0aW9uJCA9IENyZWF0ZUdsb2JhbFNlY29uZGFyeUluZGV4QWN0aW9uJDtcbmV4cG9ydHMuQ3JlYXRlR2xvYmFsVGFibGUkID0gQ3JlYXRlR2xvYmFsVGFibGUkO1xuZXhwb3J0cy5DcmVhdGVHbG9iYWxUYWJsZUNvbW1hbmQgPSBDcmVhdGVHbG9iYWxUYWJsZUNvbW1hbmQ7XG5leHBvcnRzLkNyZWF0ZUdsb2JhbFRhYmxlSW5wdXQkID0gQ3JlYXRlR2xvYmFsVGFibGVJbnB1dCQ7XG5leHBvcnRzLkNyZWF0ZUdsb2JhbFRhYmxlT3V0cHV0JCA9IENyZWF0ZUdsb2JhbFRhYmxlT3V0cHV0JDtcbmV4cG9ydHMuQ3JlYXRlR2xvYmFsVGFibGVXaXRuZXNzR3JvdXBNZW1iZXJBY3Rpb24kID0gQ3JlYXRlR2xvYmFsVGFibGVXaXRuZXNzR3JvdXBNZW1iZXJBY3Rpb24kO1xuZXhwb3J0cy5DcmVhdGVSZXBsaWNhQWN0aW9uJCA9IENyZWF0ZVJlcGxpY2FBY3Rpb24kO1xuZXhwb3J0cy5DcmVhdGVSZXBsaWNhdGlvbkdyb3VwTWVtYmVyQWN0aW9uJCA9IENyZWF0ZVJlcGxpY2F0aW9uR3JvdXBNZW1iZXJBY3Rpb24kO1xuZXhwb3J0cy5DcmVhdGVUYWJsZSQgPSBDcmVhdGVUYWJsZSQ7XG5leHBvcnRzLkNyZWF0ZVRhYmxlQ29tbWFuZCA9IENyZWF0ZVRhYmxlQ29tbWFuZDtcbmV4cG9ydHMuQ3JlYXRlVGFibGVJbnB1dCQgPSBDcmVhdGVUYWJsZUlucHV0JDtcbmV4cG9ydHMuQ3JlYXRlVGFibGVPdXRwdXQkID0gQ3JlYXRlVGFibGVPdXRwdXQkO1xuZXhwb3J0cy5Dc3ZPcHRpb25zJCA9IENzdk9wdGlvbnMkO1xuZXhwb3J0cy5EZWxldGUkID0gRGVsZXRlJDtcbmV4cG9ydHMuRGVsZXRlQmFja3VwJCA9IERlbGV0ZUJhY2t1cCQ7XG5leHBvcnRzLkRlbGV0ZUJhY2t1cENvbW1hbmQgPSBEZWxldGVCYWNrdXBDb21tYW5kO1xuZXhwb3J0cy5EZWxldGVCYWNrdXBJbnB1dCQgPSBEZWxldGVCYWNrdXBJbnB1dCQ7XG5leHBvcnRzLkRlbGV0ZUJhY2t1cE91dHB1dCQgPSBEZWxldGVCYWNrdXBPdXRwdXQkO1xuZXhwb3J0cy5EZWxldGVHbG9iYWxTZWNvbmRhcnlJbmRleEFjdGlvbiQgPSBEZWxldGVHbG9iYWxTZWNvbmRhcnlJbmRleEFjdGlvbiQ7XG5leHBvcnRzLkRlbGV0ZUdsb2JhbFRhYmxlV2l0bmVzc0dyb3VwTWVtYmVyQWN0aW9uJCA9IERlbGV0ZUdsb2JhbFRhYmxlV2l0bmVzc0dyb3VwTWVtYmVyQWN0aW9uJDtcbmV4cG9ydHMuRGVsZXRlSXRlbSQgPSBEZWxldGVJdGVtJDtcbmV4cG9ydHMuRGVsZXRlSXRlbUNvbW1hbmQgPSBEZWxldGVJdGVtQ29tbWFuZDtcbmV4cG9ydHMuRGVsZXRlSXRlbUlucHV0JCA9IERlbGV0ZUl0ZW1JbnB1dCQ7XG5leHBvcnRzLkRlbGV0ZUl0ZW1PdXRwdXQkID0gRGVsZXRlSXRlbU91dHB1dCQ7XG5leHBvcnRzLkRlbGV0ZVJlcGxpY2FBY3Rpb24kID0gRGVsZXRlUmVwbGljYUFjdGlvbiQ7XG5leHBvcnRzLkRlbGV0ZVJlcGxpY2F0aW9uR3JvdXBNZW1iZXJBY3Rpb24kID0gRGVsZXRlUmVwbGljYXRpb25Hcm91cE1lbWJlckFjdGlvbiQ7XG5leHBvcnRzLkRlbGV0ZVJlcXVlc3QkID0gRGVsZXRlUmVxdWVzdCQ7XG5leHBvcnRzLkRlbGV0ZVJlc291cmNlUG9saWN5JCA9IERlbGV0ZVJlc291cmNlUG9saWN5JDtcbmV4cG9ydHMuRGVsZXRlUmVzb3VyY2VQb2xpY3lDb21tYW5kID0gRGVsZXRlUmVzb3VyY2VQb2xpY3lDb21tYW5kO1xuZXhwb3J0cy5EZWxldGVSZXNvdXJjZVBvbGljeUlucHV0JCA9IERlbGV0ZVJlc291cmNlUG9saWN5SW5wdXQkO1xuZXhwb3J0cy5EZWxldGVSZXNvdXJjZVBvbGljeU91dHB1dCQgPSBEZWxldGVSZXNvdXJjZVBvbGljeU91dHB1dCQ7XG5leHBvcnRzLkRlbGV0ZVRhYmxlJCA9IERlbGV0ZVRhYmxlJDtcbmV4cG9ydHMuRGVsZXRlVGFibGVDb21tYW5kID0gRGVsZXRlVGFibGVDb21tYW5kO1xuZXhwb3J0cy5EZWxldGVUYWJsZUlucHV0JCA9IERlbGV0ZVRhYmxlSW5wdXQkO1xuZXhwb3J0cy5EZWxldGVUYWJsZU91dHB1dCQgPSBEZWxldGVUYWJsZU91dHB1dCQ7XG5leHBvcnRzLkRlc2NyaWJlQmFja3VwJCA9IERlc2NyaWJlQmFja3VwJDtcbmV4cG9ydHMuRGVzY3JpYmVCYWNrdXBDb21tYW5kID0gRGVzY3JpYmVCYWNrdXBDb21tYW5kO1xuZXhwb3J0cy5EZXNjcmliZUJhY2t1cElucHV0JCA9IERlc2NyaWJlQmFja3VwSW5wdXQkO1xuZXhwb3J0cy5EZXNjcmliZUJhY2t1cE91dHB1dCQgPSBEZXNjcmliZUJhY2t1cE91dHB1dCQ7XG5leHBvcnRzLkRlc2NyaWJlQ29udGludW91c0JhY2t1cHMkID0gRGVzY3JpYmVDb250aW51b3VzQmFja3VwcyQ7XG5leHBvcnRzLkRlc2NyaWJlQ29udGludW91c0JhY2t1cHNDb21tYW5kID0gRGVzY3JpYmVDb250aW51b3VzQmFja3Vwc0NvbW1hbmQ7XG5leHBvcnRzLkRlc2NyaWJlQ29udGludW91c0JhY2t1cHNJbnB1dCQgPSBEZXNjcmliZUNvbnRpbnVvdXNCYWNrdXBzSW5wdXQkO1xuZXhwb3J0cy5EZXNjcmliZUNvbnRpbnVvdXNCYWNrdXBzT3V0cHV0JCA9IERlc2NyaWJlQ29udGludW91c0JhY2t1cHNPdXRwdXQkO1xuZXhwb3J0cy5EZXNjcmliZUNvbnRyaWJ1dG9ySW5zaWdodHMkID0gRGVzY3JpYmVDb250cmlidXRvckluc2lnaHRzJDtcbmV4cG9ydHMuRGVzY3JpYmVDb250cmlidXRvckluc2lnaHRzQ29tbWFuZCA9IERlc2NyaWJlQ29udHJpYnV0b3JJbnNpZ2h0c0NvbW1hbmQ7XG5leHBvcnRzLkRlc2NyaWJlQ29udHJpYnV0b3JJbnNpZ2h0c0lucHV0JCA9IERlc2NyaWJlQ29udHJpYnV0b3JJbnNpZ2h0c0lucHV0JDtcbmV4cG9ydHMuRGVzY3JpYmVDb250cmlidXRvckluc2lnaHRzT3V0cHV0JCA9IERlc2NyaWJlQ29udHJpYnV0b3JJbnNpZ2h0c091dHB1dCQ7XG5leHBvcnRzLkRlc2NyaWJlRW5kcG9pbnRzJCA9IERlc2NyaWJlRW5kcG9pbnRzJDtcbmV4cG9ydHMuRGVzY3JpYmVFbmRwb2ludHNDb21tYW5kID0gRGVzY3JpYmVFbmRwb2ludHNDb21tYW5kO1xuZXhwb3J0cy5EZXNjcmliZUVuZHBvaW50c1JlcXVlc3QkID0gRGVzY3JpYmVFbmRwb2ludHNSZXF1ZXN0JDtcbmV4cG9ydHMuRGVzY3JpYmVFbmRwb2ludHNSZXNwb25zZSQgPSBEZXNjcmliZUVuZHBvaW50c1Jlc3BvbnNlJDtcbmV4cG9ydHMuRGVzY3JpYmVFeHBvcnQkID0gRGVzY3JpYmVFeHBvcnQkO1xuZXhwb3J0cy5EZXNjcmliZUV4cG9ydENvbW1hbmQgPSBEZXNjcmliZUV4cG9ydENvbW1hbmQ7XG5leHBvcnRzLkRlc2NyaWJlRXhwb3J0SW5wdXQkID0gRGVzY3JpYmVFeHBvcnRJbnB1dCQ7XG5leHBvcnRzLkRlc2NyaWJlRXhwb3J0T3V0cHV0JCA9IERlc2NyaWJlRXhwb3J0T3V0cHV0JDtcbmV4cG9ydHMuRGVzY3JpYmVHbG9iYWxUYWJsZSQgPSBEZXNjcmliZUdsb2JhbFRhYmxlJDtcbmV4cG9ydHMuRGVzY3JpYmVHbG9iYWxUYWJsZUNvbW1hbmQgPSBEZXNjcmliZUdsb2JhbFRhYmxlQ29tbWFuZDtcbmV4cG9ydHMuRGVzY3JpYmVHbG9iYWxUYWJsZUlucHV0JCA9IERlc2NyaWJlR2xvYmFsVGFibGVJbnB1dCQ7XG5leHBvcnRzLkRlc2NyaWJlR2xvYmFsVGFibGVPdXRwdXQkID0gRGVzY3JpYmVHbG9iYWxUYWJsZU91dHB1dCQ7XG5leHBvcnRzLkRlc2NyaWJlR2xvYmFsVGFibGVTZXR0aW5ncyQgPSBEZXNjcmliZUdsb2JhbFRhYmxlU2V0dGluZ3MkO1xuZXhwb3J0cy5EZXNjcmliZUdsb2JhbFRhYmxlU2V0dGluZ3NDb21tYW5kID0gRGVzY3JpYmVHbG9iYWxUYWJsZVNldHRpbmdzQ29tbWFuZDtcbmV4cG9ydHMuRGVzY3JpYmVHbG9iYWxUYWJsZVNldHRpbmdzSW5wdXQkID0gRGVzY3JpYmVHbG9iYWxUYWJsZVNldHRpbmdzSW5wdXQkO1xuZXhwb3J0cy5EZXNjcmliZUdsb2JhbFRhYmxlU2V0dGluZ3NPdXRwdXQkID0gRGVzY3JpYmVHbG9iYWxUYWJsZVNldHRpbmdzT3V0cHV0JDtcbmV4cG9ydHMuRGVzY3JpYmVJbXBvcnQkID0gRGVzY3JpYmVJbXBvcnQkO1xuZXhwb3J0cy5EZXNjcmliZUltcG9ydENvbW1hbmQgPSBEZXNjcmliZUltcG9ydENvbW1hbmQ7XG5leHBvcnRzLkRlc2NyaWJlSW1wb3J0SW5wdXQkID0gRGVzY3JpYmVJbXBvcnRJbnB1dCQ7XG5leHBvcnRzLkRlc2NyaWJlSW1wb3J0T3V0cHV0JCA9IERlc2NyaWJlSW1wb3J0T3V0cHV0JDtcbmV4cG9ydHMuRGVzY3JpYmVLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb24kID0gRGVzY3JpYmVLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb24kO1xuZXhwb3J0cy5EZXNjcmliZUtpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvbkNvbW1hbmQgPSBEZXNjcmliZUtpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvbkNvbW1hbmQ7XG5leHBvcnRzLkRlc2NyaWJlS2luZXNpc1N0cmVhbWluZ0Rlc3RpbmF0aW9uSW5wdXQkID0gRGVzY3JpYmVLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb25JbnB1dCQ7XG5leHBvcnRzLkRlc2NyaWJlS2luZXNpc1N0cmVhbWluZ0Rlc3RpbmF0aW9uT3V0cHV0JCA9IERlc2NyaWJlS2luZXNpc1N0cmVhbWluZ0Rlc3RpbmF0aW9uT3V0cHV0JDtcbmV4cG9ydHMuRGVzY3JpYmVMaW1pdHMkID0gRGVzY3JpYmVMaW1pdHMkO1xuZXhwb3J0cy5EZXNjcmliZUxpbWl0c0NvbW1hbmQgPSBEZXNjcmliZUxpbWl0c0NvbW1hbmQ7XG5leHBvcnRzLkRlc2NyaWJlTGltaXRzSW5wdXQkID0gRGVzY3JpYmVMaW1pdHNJbnB1dCQ7XG5leHBvcnRzLkRlc2NyaWJlTGltaXRzT3V0cHV0JCA9IERlc2NyaWJlTGltaXRzT3V0cHV0JDtcbmV4cG9ydHMuRGVzY3JpYmVUYWJsZSQgPSBEZXNjcmliZVRhYmxlJDtcbmV4cG9ydHMuRGVzY3JpYmVUYWJsZUNvbW1hbmQgPSBEZXNjcmliZVRhYmxlQ29tbWFuZDtcbmV4cG9ydHMuRGVzY3JpYmVUYWJsZUlucHV0JCA9IERlc2NyaWJlVGFibGVJbnB1dCQ7XG5leHBvcnRzLkRlc2NyaWJlVGFibGVPdXRwdXQkID0gRGVzY3JpYmVUYWJsZU91dHB1dCQ7XG5leHBvcnRzLkRlc2NyaWJlVGFibGVSZXBsaWNhQXV0b1NjYWxpbmckID0gRGVzY3JpYmVUYWJsZVJlcGxpY2FBdXRvU2NhbGluZyQ7XG5leHBvcnRzLkRlc2NyaWJlVGFibGVSZXBsaWNhQXV0b1NjYWxpbmdDb21tYW5kID0gRGVzY3JpYmVUYWJsZVJlcGxpY2FBdXRvU2NhbGluZ0NvbW1hbmQ7XG5leHBvcnRzLkRlc2NyaWJlVGFibGVSZXBsaWNhQXV0b1NjYWxpbmdJbnB1dCQgPSBEZXNjcmliZVRhYmxlUmVwbGljYUF1dG9TY2FsaW5nSW5wdXQkO1xuZXhwb3J0cy5EZXNjcmliZVRhYmxlUmVwbGljYUF1dG9TY2FsaW5nT3V0cHV0JCA9IERlc2NyaWJlVGFibGVSZXBsaWNhQXV0b1NjYWxpbmdPdXRwdXQkO1xuZXhwb3J0cy5EZXNjcmliZVRpbWVUb0xpdmUkID0gRGVzY3JpYmVUaW1lVG9MaXZlJDtcbmV4cG9ydHMuRGVzY3JpYmVUaW1lVG9MaXZlQ29tbWFuZCA9IERlc2NyaWJlVGltZVRvTGl2ZUNvbW1hbmQ7XG5leHBvcnRzLkRlc2NyaWJlVGltZVRvTGl2ZUlucHV0JCA9IERlc2NyaWJlVGltZVRvTGl2ZUlucHV0JDtcbmV4cG9ydHMuRGVzY3JpYmVUaW1lVG9MaXZlT3V0cHV0JCA9IERlc2NyaWJlVGltZVRvTGl2ZU91dHB1dCQ7XG5leHBvcnRzLkRlc3RpbmF0aW9uU3RhdHVzID0gRGVzdGluYXRpb25TdGF0dXM7XG5leHBvcnRzLkRpc2FibGVLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb24kID0gRGlzYWJsZUtpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvbiQ7XG5leHBvcnRzLkRpc2FibGVLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb25Db21tYW5kID0gRGlzYWJsZUtpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvbkNvbW1hbmQ7XG5leHBvcnRzLkR1cGxpY2F0ZUl0ZW1FeGNlcHRpb24gPSBEdXBsaWNhdGVJdGVtRXhjZXB0aW9uO1xuZXhwb3J0cy5EdXBsaWNhdGVJdGVtRXhjZXB0aW9uJCA9IER1cGxpY2F0ZUl0ZW1FeGNlcHRpb24kO1xuZXhwb3J0cy5EeW5hbW9EQiA9IER5bmFtb0RCO1xuZXhwb3J0cy5EeW5hbW9EQkNsaWVudCA9IER5bmFtb0RCQ2xpZW50O1xuZXhwb3J0cy5EeW5hbW9EQlNlcnZpY2VFeGNlcHRpb24gPSBEeW5hbW9EQlNlcnZpY2VFeGNlcHRpb247XG5leHBvcnRzLkR5bmFtb0RCU2VydmljZUV4Y2VwdGlvbiQgPSBEeW5hbW9EQlNlcnZpY2VFeGNlcHRpb24kO1xuZXhwb3J0cy5FbmFibGVLaW5lc2lzU3RyZWFtaW5nQ29uZmlndXJhdGlvbiQgPSBFbmFibGVLaW5lc2lzU3RyZWFtaW5nQ29uZmlndXJhdGlvbiQ7XG5leHBvcnRzLkVuYWJsZUtpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvbiQgPSBFbmFibGVLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb24kO1xuZXhwb3J0cy5FbmFibGVLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb25Db21tYW5kID0gRW5hYmxlS2luZXNpc1N0cmVhbWluZ0Rlc3RpbmF0aW9uQ29tbWFuZDtcbmV4cG9ydHMuRW5kcG9pbnQkID0gRW5kcG9pbnQkO1xuZXhwb3J0cy5FeGVjdXRlU3RhdGVtZW50JCA9IEV4ZWN1dGVTdGF0ZW1lbnQkO1xuZXhwb3J0cy5FeGVjdXRlU3RhdGVtZW50Q29tbWFuZCA9IEV4ZWN1dGVTdGF0ZW1lbnRDb21tYW5kO1xuZXhwb3J0cy5FeGVjdXRlU3RhdGVtZW50SW5wdXQkID0gRXhlY3V0ZVN0YXRlbWVudElucHV0JDtcbmV4cG9ydHMuRXhlY3V0ZVN0YXRlbWVudE91dHB1dCQgPSBFeGVjdXRlU3RhdGVtZW50T3V0cHV0JDtcbmV4cG9ydHMuRXhlY3V0ZVRyYW5zYWN0aW9uJCA9IEV4ZWN1dGVUcmFuc2FjdGlvbiQ7XG5leHBvcnRzLkV4ZWN1dGVUcmFuc2FjdGlvbkNvbW1hbmQgPSBFeGVjdXRlVHJhbnNhY3Rpb25Db21tYW5kO1xuZXhwb3J0cy5FeGVjdXRlVHJhbnNhY3Rpb25JbnB1dCQgPSBFeGVjdXRlVHJhbnNhY3Rpb25JbnB1dCQ7XG5leHBvcnRzLkV4ZWN1dGVUcmFuc2FjdGlvbk91dHB1dCQgPSBFeGVjdXRlVHJhbnNhY3Rpb25PdXRwdXQkO1xuZXhwb3J0cy5FeHBlY3RlZEF0dHJpYnV0ZVZhbHVlJCA9IEV4cGVjdGVkQXR0cmlidXRlVmFsdWUkO1xuZXhwb3J0cy5FeHBvcnRDb25mbGljdEV4Y2VwdGlvbiA9IEV4cG9ydENvbmZsaWN0RXhjZXB0aW9uO1xuZXhwb3J0cy5FeHBvcnRDb25mbGljdEV4Y2VwdGlvbiQgPSBFeHBvcnRDb25mbGljdEV4Y2VwdGlvbiQ7XG5leHBvcnRzLkV4cG9ydERlc2NyaXB0aW9uJCA9IEV4cG9ydERlc2NyaXB0aW9uJDtcbmV4cG9ydHMuRXhwb3J0Rm9ybWF0ID0gRXhwb3J0Rm9ybWF0O1xuZXhwb3J0cy5FeHBvcnROb3RGb3VuZEV4Y2VwdGlvbiA9IEV4cG9ydE5vdEZvdW5kRXhjZXB0aW9uO1xuZXhwb3J0cy5FeHBvcnROb3RGb3VuZEV4Y2VwdGlvbiQgPSBFeHBvcnROb3RGb3VuZEV4Y2VwdGlvbiQ7XG5leHBvcnRzLkV4cG9ydFN0YXR1cyA9IEV4cG9ydFN0YXR1cztcbmV4cG9ydHMuRXhwb3J0U3VtbWFyeSQgPSBFeHBvcnRTdW1tYXJ5JDtcbmV4cG9ydHMuRXhwb3J0VGFibGVUb1BvaW50SW5UaW1lJCA9IEV4cG9ydFRhYmxlVG9Qb2ludEluVGltZSQ7XG5leHBvcnRzLkV4cG9ydFRhYmxlVG9Qb2ludEluVGltZUNvbW1hbmQgPSBFeHBvcnRUYWJsZVRvUG9pbnRJblRpbWVDb21tYW5kO1xuZXhwb3J0cy5FeHBvcnRUYWJsZVRvUG9pbnRJblRpbWVJbnB1dCQgPSBFeHBvcnRUYWJsZVRvUG9pbnRJblRpbWVJbnB1dCQ7XG5leHBvcnRzLkV4cG9ydFRhYmxlVG9Qb2ludEluVGltZU91dHB1dCQgPSBFeHBvcnRUYWJsZVRvUG9pbnRJblRpbWVPdXRwdXQkO1xuZXhwb3J0cy5FeHBvcnRUeXBlID0gRXhwb3J0VHlwZTtcbmV4cG9ydHMuRXhwb3J0Vmlld1R5cGUgPSBFeHBvcnRWaWV3VHlwZTtcbmV4cG9ydHMuRmFpbHVyZUV4Y2VwdGlvbiQgPSBGYWlsdXJlRXhjZXB0aW9uJDtcbmV4cG9ydHMuR2V0JCA9IEdldCQ7XG5leHBvcnRzLkdldEl0ZW0kID0gR2V0SXRlbSQ7XG5leHBvcnRzLkdldEl0ZW1Db21tYW5kID0gR2V0SXRlbUNvbW1hbmQ7XG5leHBvcnRzLkdldEl0ZW1JbnB1dCQgPSBHZXRJdGVtSW5wdXQkO1xuZXhwb3J0cy5HZXRJdGVtT3V0cHV0JCA9IEdldEl0ZW1PdXRwdXQkO1xuZXhwb3J0cy5HZXRSZXNvdXJjZVBvbGljeSQgPSBHZXRSZXNvdXJjZVBvbGljeSQ7XG5leHBvcnRzLkdldFJlc291cmNlUG9saWN5Q29tbWFuZCA9IEdldFJlc291cmNlUG9saWN5Q29tbWFuZDtcbmV4cG9ydHMuR2V0UmVzb3VyY2VQb2xpY3lJbnB1dCQgPSBHZXRSZXNvdXJjZVBvbGljeUlucHV0JDtcbmV4cG9ydHMuR2V0UmVzb3VyY2VQb2xpY3lPdXRwdXQkID0gR2V0UmVzb3VyY2VQb2xpY3lPdXRwdXQkO1xuZXhwb3J0cy5HbG9iYWxTZWNvbmRhcnlJbmRleCQgPSBHbG9iYWxTZWNvbmRhcnlJbmRleCQ7XG5leHBvcnRzLkdsb2JhbFNlY29uZGFyeUluZGV4QXV0b1NjYWxpbmdVcGRhdGUkID0gR2xvYmFsU2Vjb25kYXJ5SW5kZXhBdXRvU2NhbGluZ1VwZGF0ZSQ7XG5leHBvcnRzLkdsb2JhbFNlY29uZGFyeUluZGV4RGVzY3JpcHRpb24kID0gR2xvYmFsU2Vjb25kYXJ5SW5kZXhEZXNjcmlwdGlvbiQ7XG5leHBvcnRzLkdsb2JhbFNlY29uZGFyeUluZGV4SW5mbyQgPSBHbG9iYWxTZWNvbmRhcnlJbmRleEluZm8kO1xuZXhwb3J0cy5HbG9iYWxTZWNvbmRhcnlJbmRleFVwZGF0ZSQgPSBHbG9iYWxTZWNvbmRhcnlJbmRleFVwZGF0ZSQ7XG5leHBvcnRzLkdsb2JhbFNlY29uZGFyeUluZGV4V2FybVRocm91Z2hwdXREZXNjcmlwdGlvbiQgPSBHbG9iYWxTZWNvbmRhcnlJbmRleFdhcm1UaHJvdWdocHV0RGVzY3JpcHRpb24kO1xuZXhwb3J0cy5HbG9iYWxUYWJsZSQgPSBHbG9iYWxUYWJsZSQ7XG5leHBvcnRzLkdsb2JhbFRhYmxlQWxyZWFkeUV4aXN0c0V4Y2VwdGlvbiA9IEdsb2JhbFRhYmxlQWxyZWFkeUV4aXN0c0V4Y2VwdGlvbjtcbmV4cG9ydHMuR2xvYmFsVGFibGVBbHJlYWR5RXhpc3RzRXhjZXB0aW9uJCA9IEdsb2JhbFRhYmxlQWxyZWFkeUV4aXN0c0V4Y2VwdGlvbiQ7XG5leHBvcnRzLkdsb2JhbFRhYmxlRGVzY3JpcHRpb24kID0gR2xvYmFsVGFibGVEZXNjcmlwdGlvbiQ7XG5leHBvcnRzLkdsb2JhbFRhYmxlR2xvYmFsU2Vjb25kYXJ5SW5kZXhTZXR0aW5nc1VwZGF0ZSQgPSBHbG9iYWxUYWJsZUdsb2JhbFNlY29uZGFyeUluZGV4U2V0dGluZ3NVcGRhdGUkO1xuZXhwb3J0cy5HbG9iYWxUYWJsZU5vdEZvdW5kRXhjZXB0aW9uID0gR2xvYmFsVGFibGVOb3RGb3VuZEV4Y2VwdGlvbjtcbmV4cG9ydHMuR2xvYmFsVGFibGVOb3RGb3VuZEV4Y2VwdGlvbiQgPSBHbG9iYWxUYWJsZU5vdEZvdW5kRXhjZXB0aW9uJDtcbmV4cG9ydHMuR2xvYmFsVGFibGVTdGF0dXMgPSBHbG9iYWxUYWJsZVN0YXR1cztcbmV4cG9ydHMuR2xvYmFsVGFibGVXaXRuZXNzRGVzY3JpcHRpb24kID0gR2xvYmFsVGFibGVXaXRuZXNzRGVzY3JpcHRpb24kO1xuZXhwb3J0cy5HbG9iYWxUYWJsZVdpdG5lc3NHcm91cFVwZGF0ZSQgPSBHbG9iYWxUYWJsZVdpdG5lc3NHcm91cFVwZGF0ZSQ7XG5leHBvcnRzLklkZW1wb3RlbnRQYXJhbWV0ZXJNaXNtYXRjaEV4Y2VwdGlvbiA9IElkZW1wb3RlbnRQYXJhbWV0ZXJNaXNtYXRjaEV4Y2VwdGlvbjtcbmV4cG9ydHMuSWRlbXBvdGVudFBhcmFtZXRlck1pc21hdGNoRXhjZXB0aW9uJCA9IElkZW1wb3RlbnRQYXJhbWV0ZXJNaXNtYXRjaEV4Y2VwdGlvbiQ7XG5leHBvcnRzLkltcG9ydENvbmZsaWN0RXhjZXB0aW9uID0gSW1wb3J0Q29uZmxpY3RFeGNlcHRpb247XG5leHBvcnRzLkltcG9ydENvbmZsaWN0RXhjZXB0aW9uJCA9IEltcG9ydENvbmZsaWN0RXhjZXB0aW9uJDtcbmV4cG9ydHMuSW1wb3J0Tm90Rm91bmRFeGNlcHRpb24gPSBJbXBvcnROb3RGb3VuZEV4Y2VwdGlvbjtcbmV4cG9ydHMuSW1wb3J0Tm90Rm91bmRFeGNlcHRpb24kID0gSW1wb3J0Tm90Rm91bmRFeGNlcHRpb24kO1xuZXhwb3J0cy5JbXBvcnRTdGF0dXMgPSBJbXBvcnRTdGF0dXM7XG5leHBvcnRzLkltcG9ydFN1bW1hcnkkID0gSW1wb3J0U3VtbWFyeSQ7XG5leHBvcnRzLkltcG9ydFRhYmxlJCA9IEltcG9ydFRhYmxlJDtcbmV4cG9ydHMuSW1wb3J0VGFibGVDb21tYW5kID0gSW1wb3J0VGFibGVDb21tYW5kO1xuZXhwb3J0cy5JbXBvcnRUYWJsZURlc2NyaXB0aW9uJCA9IEltcG9ydFRhYmxlRGVzY3JpcHRpb24kO1xuZXhwb3J0cy5JbXBvcnRUYWJsZUlucHV0JCA9IEltcG9ydFRhYmxlSW5wdXQkO1xuZXhwb3J0cy5JbXBvcnRUYWJsZU91dHB1dCQgPSBJbXBvcnRUYWJsZU91dHB1dCQ7XG5leHBvcnRzLkluY3JlbWVudGFsRXhwb3J0U3BlY2lmaWNhdGlvbiQgPSBJbmNyZW1lbnRhbEV4cG9ydFNwZWNpZmljYXRpb24kO1xuZXhwb3J0cy5JbmRleE5vdEZvdW5kRXhjZXB0aW9uID0gSW5kZXhOb3RGb3VuZEV4Y2VwdGlvbjtcbmV4cG9ydHMuSW5kZXhOb3RGb3VuZEV4Y2VwdGlvbiQgPSBJbmRleE5vdEZvdW5kRXhjZXB0aW9uJDtcbmV4cG9ydHMuSW5kZXhTdGF0dXMgPSBJbmRleFN0YXR1cztcbmV4cG9ydHMuSW5wdXRDb21wcmVzc2lvblR5cGUgPSBJbnB1dENvbXByZXNzaW9uVHlwZTtcbmV4cG9ydHMuSW5wdXRGb3JtYXQgPSBJbnB1dEZvcm1hdDtcbmV4cG9ydHMuSW5wdXRGb3JtYXRPcHRpb25zJCA9IElucHV0Rm9ybWF0T3B0aW9ucyQ7XG5leHBvcnRzLkludGVybmFsU2VydmVyRXJyb3IgPSBJbnRlcm5hbFNlcnZlckVycm9yO1xuZXhwb3J0cy5JbnRlcm5hbFNlcnZlckVycm9yJCA9IEludGVybmFsU2VydmVyRXJyb3IkO1xuZXhwb3J0cy5JbnZhbGlkRW5kcG9pbnRFeGNlcHRpb24gPSBJbnZhbGlkRW5kcG9pbnRFeGNlcHRpb247XG5leHBvcnRzLkludmFsaWRFbmRwb2ludEV4Y2VwdGlvbiQgPSBJbnZhbGlkRW5kcG9pbnRFeGNlcHRpb24kO1xuZXhwb3J0cy5JbnZhbGlkRXhwb3J0VGltZUV4Y2VwdGlvbiA9IEludmFsaWRFeHBvcnRUaW1lRXhjZXB0aW9uO1xuZXhwb3J0cy5JbnZhbGlkRXhwb3J0VGltZUV4Y2VwdGlvbiQgPSBJbnZhbGlkRXhwb3J0VGltZUV4Y2VwdGlvbiQ7XG5leHBvcnRzLkludmFsaWRSZXN0b3JlVGltZUV4Y2VwdGlvbiA9IEludmFsaWRSZXN0b3JlVGltZUV4Y2VwdGlvbjtcbmV4cG9ydHMuSW52YWxpZFJlc3RvcmVUaW1lRXhjZXB0aW9uJCA9IEludmFsaWRSZXN0b3JlVGltZUV4Y2VwdGlvbiQ7XG5leHBvcnRzLkl0ZW1Db2xsZWN0aW9uTWV0cmljcyQgPSBJdGVtQ29sbGVjdGlvbk1ldHJpY3MkO1xuZXhwb3J0cy5JdGVtQ29sbGVjdGlvblNpemVMaW1pdEV4Y2VlZGVkRXhjZXB0aW9uID0gSXRlbUNvbGxlY3Rpb25TaXplTGltaXRFeGNlZWRlZEV4Y2VwdGlvbjtcbmV4cG9ydHMuSXRlbUNvbGxlY3Rpb25TaXplTGltaXRFeGNlZWRlZEV4Y2VwdGlvbiQgPSBJdGVtQ29sbGVjdGlvblNpemVMaW1pdEV4Y2VlZGVkRXhjZXB0aW9uJDtcbmV4cG9ydHMuSXRlbVJlc3BvbnNlJCA9IEl0ZW1SZXNwb25zZSQ7XG5leHBvcnRzLktleVNjaGVtYUVsZW1lbnQkID0gS2V5U2NoZW1hRWxlbWVudCQ7XG5leHBvcnRzLktleVR5cGUgPSBLZXlUeXBlO1xuZXhwb3J0cy5LZXlzQW5kQXR0cmlidXRlcyQgPSBLZXlzQW5kQXR0cmlidXRlcyQ7XG5leHBvcnRzLktpbmVzaXNEYXRhU3RyZWFtRGVzdGluYXRpb24kID0gS2luZXNpc0RhdGFTdHJlYW1EZXN0aW5hdGlvbiQ7XG5leHBvcnRzLktpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvbklucHV0JCA9IEtpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvbklucHV0JDtcbmV4cG9ydHMuS2luZXNpc1N0cmVhbWluZ0Rlc3RpbmF0aW9uT3V0cHV0JCA9IEtpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvbk91dHB1dCQ7XG5leHBvcnRzLkxpbWl0RXhjZWVkZWRFeGNlcHRpb24gPSBMaW1pdEV4Y2VlZGVkRXhjZXB0aW9uO1xuZXhwb3J0cy5MaW1pdEV4Y2VlZGVkRXhjZXB0aW9uJCA9IExpbWl0RXhjZWVkZWRFeGNlcHRpb24kO1xuZXhwb3J0cy5MaXN0QmFja3VwcyQgPSBMaXN0QmFja3VwcyQ7XG5leHBvcnRzLkxpc3RCYWNrdXBzQ29tbWFuZCA9IExpc3RCYWNrdXBzQ29tbWFuZDtcbmV4cG9ydHMuTGlzdEJhY2t1cHNJbnB1dCQgPSBMaXN0QmFja3Vwc0lucHV0JDtcbmV4cG9ydHMuTGlzdEJhY2t1cHNPdXRwdXQkID0gTGlzdEJhY2t1cHNPdXRwdXQkO1xuZXhwb3J0cy5MaXN0Q29udHJpYnV0b3JJbnNpZ2h0cyQgPSBMaXN0Q29udHJpYnV0b3JJbnNpZ2h0cyQ7XG5leHBvcnRzLkxpc3RDb250cmlidXRvckluc2lnaHRzQ29tbWFuZCA9IExpc3RDb250cmlidXRvckluc2lnaHRzQ29tbWFuZDtcbmV4cG9ydHMuTGlzdENvbnRyaWJ1dG9ySW5zaWdodHNJbnB1dCQgPSBMaXN0Q29udHJpYnV0b3JJbnNpZ2h0c0lucHV0JDtcbmV4cG9ydHMuTGlzdENvbnRyaWJ1dG9ySW5zaWdodHNPdXRwdXQkID0gTGlzdENvbnRyaWJ1dG9ySW5zaWdodHNPdXRwdXQkO1xuZXhwb3J0cy5MaXN0RXhwb3J0cyQgPSBMaXN0RXhwb3J0cyQ7XG5leHBvcnRzLkxpc3RFeHBvcnRzQ29tbWFuZCA9IExpc3RFeHBvcnRzQ29tbWFuZDtcbmV4cG9ydHMuTGlzdEV4cG9ydHNJbnB1dCQgPSBMaXN0RXhwb3J0c0lucHV0JDtcbmV4cG9ydHMuTGlzdEV4cG9ydHNPdXRwdXQkID0gTGlzdEV4cG9ydHNPdXRwdXQkO1xuZXhwb3J0cy5MaXN0R2xvYmFsVGFibGVzJCA9IExpc3RHbG9iYWxUYWJsZXMkO1xuZXhwb3J0cy5MaXN0R2xvYmFsVGFibGVzQ29tbWFuZCA9IExpc3RHbG9iYWxUYWJsZXNDb21tYW5kO1xuZXhwb3J0cy5MaXN0R2xvYmFsVGFibGVzSW5wdXQkID0gTGlzdEdsb2JhbFRhYmxlc0lucHV0JDtcbmV4cG9ydHMuTGlzdEdsb2JhbFRhYmxlc091dHB1dCQgPSBMaXN0R2xvYmFsVGFibGVzT3V0cHV0JDtcbmV4cG9ydHMuTGlzdEltcG9ydHMkID0gTGlzdEltcG9ydHMkO1xuZXhwb3J0cy5MaXN0SW1wb3J0c0NvbW1hbmQgPSBMaXN0SW1wb3J0c0NvbW1hbmQ7XG5leHBvcnRzLkxpc3RJbXBvcnRzSW5wdXQkID0gTGlzdEltcG9ydHNJbnB1dCQ7XG5leHBvcnRzLkxpc3RJbXBvcnRzT3V0cHV0JCA9IExpc3RJbXBvcnRzT3V0cHV0JDtcbmV4cG9ydHMuTGlzdFRhYmxlcyQgPSBMaXN0VGFibGVzJDtcbmV4cG9ydHMuTGlzdFRhYmxlc0NvbW1hbmQgPSBMaXN0VGFibGVzQ29tbWFuZDtcbmV4cG9ydHMuTGlzdFRhYmxlc0lucHV0JCA9IExpc3RUYWJsZXNJbnB1dCQ7XG5leHBvcnRzLkxpc3RUYWJsZXNPdXRwdXQkID0gTGlzdFRhYmxlc091dHB1dCQ7XG5leHBvcnRzLkxpc3RUYWdzT2ZSZXNvdXJjZSQgPSBMaXN0VGFnc09mUmVzb3VyY2UkO1xuZXhwb3J0cy5MaXN0VGFnc09mUmVzb3VyY2VDb21tYW5kID0gTGlzdFRhZ3NPZlJlc291cmNlQ29tbWFuZDtcbmV4cG9ydHMuTGlzdFRhZ3NPZlJlc291cmNlSW5wdXQkID0gTGlzdFRhZ3NPZlJlc291cmNlSW5wdXQkO1xuZXhwb3J0cy5MaXN0VGFnc09mUmVzb3VyY2VPdXRwdXQkID0gTGlzdFRhZ3NPZlJlc291cmNlT3V0cHV0JDtcbmV4cG9ydHMuTG9jYWxTZWNvbmRhcnlJbmRleCQgPSBMb2NhbFNlY29uZGFyeUluZGV4JDtcbmV4cG9ydHMuTG9jYWxTZWNvbmRhcnlJbmRleERlc2NyaXB0aW9uJCA9IExvY2FsU2Vjb25kYXJ5SW5kZXhEZXNjcmlwdGlvbiQ7XG5leHBvcnRzLkxvY2FsU2Vjb25kYXJ5SW5kZXhJbmZvJCA9IExvY2FsU2Vjb25kYXJ5SW5kZXhJbmZvJDtcbmV4cG9ydHMuTXVsdGlSZWdpb25Db25zaXN0ZW5jeSA9IE11bHRpUmVnaW9uQ29uc2lzdGVuY3k7XG5leHBvcnRzLk9uRGVtYW5kVGhyb3VnaHB1dCQgPSBPbkRlbWFuZFRocm91Z2hwdXQkO1xuZXhwb3J0cy5PbkRlbWFuZFRocm91Z2hwdXRPdmVycmlkZSQgPSBPbkRlbWFuZFRocm91Z2hwdXRPdmVycmlkZSQ7XG5leHBvcnRzLlBhcmFtZXRlcml6ZWRTdGF0ZW1lbnQkID0gUGFyYW1ldGVyaXplZFN0YXRlbWVudCQ7XG5leHBvcnRzLlBvaW50SW5UaW1lUmVjb3ZlcnlEZXNjcmlwdGlvbiQgPSBQb2ludEluVGltZVJlY292ZXJ5RGVzY3JpcHRpb24kO1xuZXhwb3J0cy5Qb2ludEluVGltZVJlY292ZXJ5U3BlY2lmaWNhdGlvbiQgPSBQb2ludEluVGltZVJlY292ZXJ5U3BlY2lmaWNhdGlvbiQ7XG5leHBvcnRzLlBvaW50SW5UaW1lUmVjb3ZlcnlTdGF0dXMgPSBQb2ludEluVGltZVJlY292ZXJ5U3RhdHVzO1xuZXhwb3J0cy5Qb2ludEluVGltZVJlY292ZXJ5VW5hdmFpbGFibGVFeGNlcHRpb24gPSBQb2ludEluVGltZVJlY292ZXJ5VW5hdmFpbGFibGVFeGNlcHRpb247XG5leHBvcnRzLlBvaW50SW5UaW1lUmVjb3ZlcnlVbmF2YWlsYWJsZUV4Y2VwdGlvbiQgPSBQb2ludEluVGltZVJlY292ZXJ5VW5hdmFpbGFibGVFeGNlcHRpb24kO1xuZXhwb3J0cy5Qb2xpY3lOb3RGb3VuZEV4Y2VwdGlvbiA9IFBvbGljeU5vdEZvdW5kRXhjZXB0aW9uO1xuZXhwb3J0cy5Qb2xpY3lOb3RGb3VuZEV4Y2VwdGlvbiQgPSBQb2xpY3lOb3RGb3VuZEV4Y2VwdGlvbiQ7XG5leHBvcnRzLlByb2plY3Rpb24kID0gUHJvamVjdGlvbiQ7XG5leHBvcnRzLlByb2plY3Rpb25UeXBlID0gUHJvamVjdGlvblR5cGU7XG5leHBvcnRzLlByb3Zpc2lvbmVkVGhyb3VnaHB1dCQgPSBQcm92aXNpb25lZFRocm91Z2hwdXQkO1xuZXhwb3J0cy5Qcm92aXNpb25lZFRocm91Z2hwdXREZXNjcmlwdGlvbiQgPSBQcm92aXNpb25lZFRocm91Z2hwdXREZXNjcmlwdGlvbiQ7XG5leHBvcnRzLlByb3Zpc2lvbmVkVGhyb3VnaHB1dEV4Y2VlZGVkRXhjZXB0aW9uID0gUHJvdmlzaW9uZWRUaHJvdWdocHV0RXhjZWVkZWRFeGNlcHRpb247XG5leHBvcnRzLlByb3Zpc2lvbmVkVGhyb3VnaHB1dEV4Y2VlZGVkRXhjZXB0aW9uJCA9IFByb3Zpc2lvbmVkVGhyb3VnaHB1dEV4Y2VlZGVkRXhjZXB0aW9uJDtcbmV4cG9ydHMuUHJvdmlzaW9uZWRUaHJvdWdocHV0T3ZlcnJpZGUkID0gUHJvdmlzaW9uZWRUaHJvdWdocHV0T3ZlcnJpZGUkO1xuZXhwb3J0cy5QdXQkID0gUHV0JDtcbmV4cG9ydHMuUHV0SXRlbSQgPSBQdXRJdGVtJDtcbmV4cG9ydHMuUHV0SXRlbUNvbW1hbmQgPSBQdXRJdGVtQ29tbWFuZDtcbmV4cG9ydHMuUHV0SXRlbUlucHV0JCA9IFB1dEl0ZW1JbnB1dCQ7XG5leHBvcnRzLlB1dEl0ZW1PdXRwdXQkID0gUHV0SXRlbU91dHB1dCQ7XG5leHBvcnRzLlB1dFJlcXVlc3QkID0gUHV0UmVxdWVzdCQ7XG5leHBvcnRzLlB1dFJlc291cmNlUG9saWN5JCA9IFB1dFJlc291cmNlUG9saWN5JDtcbmV4cG9ydHMuUHV0UmVzb3VyY2VQb2xpY3lDb21tYW5kID0gUHV0UmVzb3VyY2VQb2xpY3lDb21tYW5kO1xuZXhwb3J0cy5QdXRSZXNvdXJjZVBvbGljeUlucHV0JCA9IFB1dFJlc291cmNlUG9saWN5SW5wdXQkO1xuZXhwb3J0cy5QdXRSZXNvdXJjZVBvbGljeU91dHB1dCQgPSBQdXRSZXNvdXJjZVBvbGljeU91dHB1dCQ7XG5leHBvcnRzLlF1ZXJ5JCA9IFF1ZXJ5JDtcbmV4cG9ydHMuUXVlcnlDb21tYW5kID0gUXVlcnlDb21tYW5kO1xuZXhwb3J0cy5RdWVyeUlucHV0JCA9IFF1ZXJ5SW5wdXQkO1xuZXhwb3J0cy5RdWVyeU91dHB1dCQgPSBRdWVyeU91dHB1dCQ7XG5leHBvcnRzLlJlcGxpY2EkID0gUmVwbGljYSQ7XG5leHBvcnRzLlJlcGxpY2FBbHJlYWR5RXhpc3RzRXhjZXB0aW9uID0gUmVwbGljYUFscmVhZHlFeGlzdHNFeGNlcHRpb247XG5leHBvcnRzLlJlcGxpY2FBbHJlYWR5RXhpc3RzRXhjZXB0aW9uJCA9IFJlcGxpY2FBbHJlYWR5RXhpc3RzRXhjZXB0aW9uJDtcbmV4cG9ydHMuUmVwbGljYUF1dG9TY2FsaW5nRGVzY3JpcHRpb24kID0gUmVwbGljYUF1dG9TY2FsaW5nRGVzY3JpcHRpb24kO1xuZXhwb3J0cy5SZXBsaWNhQXV0b1NjYWxpbmdVcGRhdGUkID0gUmVwbGljYUF1dG9TY2FsaW5nVXBkYXRlJDtcbmV4cG9ydHMuUmVwbGljYURlc2NyaXB0aW9uJCA9IFJlcGxpY2FEZXNjcmlwdGlvbiQ7XG5leHBvcnRzLlJlcGxpY2FHbG9iYWxTZWNvbmRhcnlJbmRleCQgPSBSZXBsaWNhR2xvYmFsU2Vjb25kYXJ5SW5kZXgkO1xuZXhwb3J0cy5SZXBsaWNhR2xvYmFsU2Vjb25kYXJ5SW5kZXhBdXRvU2NhbGluZ0Rlc2NyaXB0aW9uJCA9IFJlcGxpY2FHbG9iYWxTZWNvbmRhcnlJbmRleEF1dG9TY2FsaW5nRGVzY3JpcHRpb24kO1xuZXhwb3J0cy5SZXBsaWNhR2xvYmFsU2Vjb25kYXJ5SW5kZXhBdXRvU2NhbGluZ1VwZGF0ZSQgPSBSZXBsaWNhR2xvYmFsU2Vjb25kYXJ5SW5kZXhBdXRvU2NhbGluZ1VwZGF0ZSQ7XG5leHBvcnRzLlJlcGxpY2FHbG9iYWxTZWNvbmRhcnlJbmRleERlc2NyaXB0aW9uJCA9IFJlcGxpY2FHbG9iYWxTZWNvbmRhcnlJbmRleERlc2NyaXB0aW9uJDtcbmV4cG9ydHMuUmVwbGljYUdsb2JhbFNlY29uZGFyeUluZGV4U2V0dGluZ3NEZXNjcmlwdGlvbiQgPSBSZXBsaWNhR2xvYmFsU2Vjb25kYXJ5SW5kZXhTZXR0aW5nc0Rlc2NyaXB0aW9uJDtcbmV4cG9ydHMuUmVwbGljYUdsb2JhbFNlY29uZGFyeUluZGV4U2V0dGluZ3NVcGRhdGUkID0gUmVwbGljYUdsb2JhbFNlY29uZGFyeUluZGV4U2V0dGluZ3NVcGRhdGUkO1xuZXhwb3J0cy5SZXBsaWNhTm90Rm91bmRFeGNlcHRpb24gPSBSZXBsaWNhTm90Rm91bmRFeGNlcHRpb247XG5leHBvcnRzLlJlcGxpY2FOb3RGb3VuZEV4Y2VwdGlvbiQgPSBSZXBsaWNhTm90Rm91bmRFeGNlcHRpb24kO1xuZXhwb3J0cy5SZXBsaWNhU2V0dGluZ3NEZXNjcmlwdGlvbiQgPSBSZXBsaWNhU2V0dGluZ3NEZXNjcmlwdGlvbiQ7XG5leHBvcnRzLlJlcGxpY2FTZXR0aW5nc1VwZGF0ZSQgPSBSZXBsaWNhU2V0dGluZ3NVcGRhdGUkO1xuZXhwb3J0cy5SZXBsaWNhU3RhdHVzID0gUmVwbGljYVN0YXR1cztcbmV4cG9ydHMuUmVwbGljYVVwZGF0ZSQgPSBSZXBsaWNhVXBkYXRlJDtcbmV4cG9ydHMuUmVwbGljYXRlZFdyaXRlQ29uZmxpY3RFeGNlcHRpb24gPSBSZXBsaWNhdGVkV3JpdGVDb25mbGljdEV4Y2VwdGlvbjtcbmV4cG9ydHMuUmVwbGljYXRlZFdyaXRlQ29uZmxpY3RFeGNlcHRpb24kID0gUmVwbGljYXRlZFdyaXRlQ29uZmxpY3RFeGNlcHRpb24kO1xuZXhwb3J0cy5SZXBsaWNhdGlvbkdyb3VwVXBkYXRlJCA9IFJlcGxpY2F0aW9uR3JvdXBVcGRhdGUkO1xuZXhwb3J0cy5SZXF1ZXN0TGltaXRFeGNlZWRlZCA9IFJlcXVlc3RMaW1pdEV4Y2VlZGVkO1xuZXhwb3J0cy5SZXF1ZXN0TGltaXRFeGNlZWRlZCQgPSBSZXF1ZXN0TGltaXRFeGNlZWRlZCQ7XG5leHBvcnRzLlJlc291cmNlSW5Vc2VFeGNlcHRpb24gPSBSZXNvdXJjZUluVXNlRXhjZXB0aW9uO1xuZXhwb3J0cy5SZXNvdXJjZUluVXNlRXhjZXB0aW9uJCA9IFJlc291cmNlSW5Vc2VFeGNlcHRpb24kO1xuZXhwb3J0cy5SZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uID0gUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvbjtcbmV4cG9ydHMuUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvbiQgPSBSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uJDtcbmV4cG9ydHMuUmVzdG9yZVN1bW1hcnkkID0gUmVzdG9yZVN1bW1hcnkkO1xuZXhwb3J0cy5SZXN0b3JlVGFibGVGcm9tQmFja3VwJCA9IFJlc3RvcmVUYWJsZUZyb21CYWNrdXAkO1xuZXhwb3J0cy5SZXN0b3JlVGFibGVGcm9tQmFja3VwQ29tbWFuZCA9IFJlc3RvcmVUYWJsZUZyb21CYWNrdXBDb21tYW5kO1xuZXhwb3J0cy5SZXN0b3JlVGFibGVGcm9tQmFja3VwSW5wdXQkID0gUmVzdG9yZVRhYmxlRnJvbUJhY2t1cElucHV0JDtcbmV4cG9ydHMuUmVzdG9yZVRhYmxlRnJvbUJhY2t1cE91dHB1dCQgPSBSZXN0b3JlVGFibGVGcm9tQmFja3VwT3V0cHV0JDtcbmV4cG9ydHMuUmVzdG9yZVRhYmxlVG9Qb2ludEluVGltZSQgPSBSZXN0b3JlVGFibGVUb1BvaW50SW5UaW1lJDtcbmV4cG9ydHMuUmVzdG9yZVRhYmxlVG9Qb2ludEluVGltZUNvbW1hbmQgPSBSZXN0b3JlVGFibGVUb1BvaW50SW5UaW1lQ29tbWFuZDtcbmV4cG9ydHMuUmVzdG9yZVRhYmxlVG9Qb2ludEluVGltZUlucHV0JCA9IFJlc3RvcmVUYWJsZVRvUG9pbnRJblRpbWVJbnB1dCQ7XG5leHBvcnRzLlJlc3RvcmVUYWJsZVRvUG9pbnRJblRpbWVPdXRwdXQkID0gUmVzdG9yZVRhYmxlVG9Qb2ludEluVGltZU91dHB1dCQ7XG5leHBvcnRzLlJldHVybkNvbnN1bWVkQ2FwYWNpdHkgPSBSZXR1cm5Db25zdW1lZENhcGFjaXR5O1xuZXhwb3J0cy5SZXR1cm5JdGVtQ29sbGVjdGlvbk1ldHJpY3MgPSBSZXR1cm5JdGVtQ29sbGVjdGlvbk1ldHJpY3M7XG5leHBvcnRzLlJldHVyblZhbHVlID0gUmV0dXJuVmFsdWU7XG5leHBvcnRzLlJldHVyblZhbHVlc09uQ29uZGl0aW9uQ2hlY2tGYWlsdXJlID0gUmV0dXJuVmFsdWVzT25Db25kaXRpb25DaGVja0ZhaWx1cmU7XG5leHBvcnRzLlMzQnVja2V0U291cmNlJCA9IFMzQnVja2V0U291cmNlJDtcbmV4cG9ydHMuUzNTc2VBbGdvcml0aG0gPSBTM1NzZUFsZ29yaXRobTtcbmV4cG9ydHMuU1NFRGVzY3JpcHRpb24kID0gU1NFRGVzY3JpcHRpb24kO1xuZXhwb3J0cy5TU0VTcGVjaWZpY2F0aW9uJCA9IFNTRVNwZWNpZmljYXRpb24kO1xuZXhwb3J0cy5TU0VTdGF0dXMgPSBTU0VTdGF0dXM7XG5leHBvcnRzLlNTRVR5cGUgPSBTU0VUeXBlO1xuZXhwb3J0cy5TY2FsYXJBdHRyaWJ1dGVUeXBlID0gU2NhbGFyQXR0cmlidXRlVHlwZTtcbmV4cG9ydHMuU2NhbiQgPSBTY2FuJDtcbmV4cG9ydHMuU2NhbkNvbW1hbmQgPSBTY2FuQ29tbWFuZDtcbmV4cG9ydHMuU2NhbklucHV0JCA9IFNjYW5JbnB1dCQ7XG5leHBvcnRzLlNjYW5PdXRwdXQkID0gU2Nhbk91dHB1dCQ7XG5leHBvcnRzLlNlbGVjdCA9IFNlbGVjdDtcbmV4cG9ydHMuU291cmNlVGFibGVEZXRhaWxzJCA9IFNvdXJjZVRhYmxlRGV0YWlscyQ7XG5leHBvcnRzLlNvdXJjZVRhYmxlRmVhdHVyZURldGFpbHMkID0gU291cmNlVGFibGVGZWF0dXJlRGV0YWlscyQ7XG5leHBvcnRzLlN0cmVhbVNwZWNpZmljYXRpb24kID0gU3RyZWFtU3BlY2lmaWNhdGlvbiQ7XG5leHBvcnRzLlN0cmVhbVZpZXdUeXBlID0gU3RyZWFtVmlld1R5cGU7XG5leHBvcnRzLlRhYmxlQWxyZWFkeUV4aXN0c0V4Y2VwdGlvbiA9IFRhYmxlQWxyZWFkeUV4aXN0c0V4Y2VwdGlvbjtcbmV4cG9ydHMuVGFibGVBbHJlYWR5RXhpc3RzRXhjZXB0aW9uJCA9IFRhYmxlQWxyZWFkeUV4aXN0c0V4Y2VwdGlvbiQ7XG5leHBvcnRzLlRhYmxlQXV0b1NjYWxpbmdEZXNjcmlwdGlvbiQgPSBUYWJsZUF1dG9TY2FsaW5nRGVzY3JpcHRpb24kO1xuZXhwb3J0cy5UYWJsZUNsYXNzID0gVGFibGVDbGFzcztcbmV4cG9ydHMuVGFibGVDbGFzc1N1bW1hcnkkID0gVGFibGVDbGFzc1N1bW1hcnkkO1xuZXhwb3J0cy5UYWJsZUNyZWF0aW9uUGFyYW1ldGVycyQgPSBUYWJsZUNyZWF0aW9uUGFyYW1ldGVycyQ7XG5leHBvcnRzLlRhYmxlRGVzY3JpcHRpb24kID0gVGFibGVEZXNjcmlwdGlvbiQ7XG5leHBvcnRzLlRhYmxlSW5Vc2VFeGNlcHRpb24gPSBUYWJsZUluVXNlRXhjZXB0aW9uO1xuZXhwb3J0cy5UYWJsZUluVXNlRXhjZXB0aW9uJCA9IFRhYmxlSW5Vc2VFeGNlcHRpb24kO1xuZXhwb3J0cy5UYWJsZU5vdEZvdW5kRXhjZXB0aW9uID0gVGFibGVOb3RGb3VuZEV4Y2VwdGlvbjtcbmV4cG9ydHMuVGFibGVOb3RGb3VuZEV4Y2VwdGlvbiQgPSBUYWJsZU5vdEZvdW5kRXhjZXB0aW9uJDtcbmV4cG9ydHMuVGFibGVTdGF0dXMgPSBUYWJsZVN0YXR1cztcbmV4cG9ydHMuVGFibGVXYXJtVGhyb3VnaHB1dERlc2NyaXB0aW9uJCA9IFRhYmxlV2FybVRocm91Z2hwdXREZXNjcmlwdGlvbiQ7XG5leHBvcnRzLlRhZyQgPSBUYWckO1xuZXhwb3J0cy5UYWdSZXNvdXJjZSQgPSBUYWdSZXNvdXJjZSQ7XG5leHBvcnRzLlRhZ1Jlc291cmNlQ29tbWFuZCA9IFRhZ1Jlc291cmNlQ29tbWFuZDtcbmV4cG9ydHMuVGFnUmVzb3VyY2VJbnB1dCQgPSBUYWdSZXNvdXJjZUlucHV0JDtcbmV4cG9ydHMuVGhyb3R0bGluZ0V4Y2VwdGlvbiA9IFRocm90dGxpbmdFeGNlcHRpb247XG5leHBvcnRzLlRocm90dGxpbmdFeGNlcHRpb24kID0gVGhyb3R0bGluZ0V4Y2VwdGlvbiQ7XG5leHBvcnRzLlRocm90dGxpbmdSZWFzb24kID0gVGhyb3R0bGluZ1JlYXNvbiQ7XG5leHBvcnRzLlRpbWVUb0xpdmVEZXNjcmlwdGlvbiQgPSBUaW1lVG9MaXZlRGVzY3JpcHRpb24kO1xuZXhwb3J0cy5UaW1lVG9MaXZlU3BlY2lmaWNhdGlvbiQgPSBUaW1lVG9MaXZlU3BlY2lmaWNhdGlvbiQ7XG5leHBvcnRzLlRpbWVUb0xpdmVTdGF0dXMgPSBUaW1lVG9MaXZlU3RhdHVzO1xuZXhwb3J0cy5UcmFuc2FjdEdldEl0ZW0kID0gVHJhbnNhY3RHZXRJdGVtJDtcbmV4cG9ydHMuVHJhbnNhY3RHZXRJdGVtcyQgPSBUcmFuc2FjdEdldEl0ZW1zJDtcbmV4cG9ydHMuVHJhbnNhY3RHZXRJdGVtc0NvbW1hbmQgPSBUcmFuc2FjdEdldEl0ZW1zQ29tbWFuZDtcbmV4cG9ydHMuVHJhbnNhY3RHZXRJdGVtc0lucHV0JCA9IFRyYW5zYWN0R2V0SXRlbXNJbnB1dCQ7XG5leHBvcnRzLlRyYW5zYWN0R2V0SXRlbXNPdXRwdXQkID0gVHJhbnNhY3RHZXRJdGVtc091dHB1dCQ7XG5leHBvcnRzLlRyYW5zYWN0V3JpdGVJdGVtJCA9IFRyYW5zYWN0V3JpdGVJdGVtJDtcbmV4cG9ydHMuVHJhbnNhY3RXcml0ZUl0ZW1zJCA9IFRyYW5zYWN0V3JpdGVJdGVtcyQ7XG5leHBvcnRzLlRyYW5zYWN0V3JpdGVJdGVtc0NvbW1hbmQgPSBUcmFuc2FjdFdyaXRlSXRlbXNDb21tYW5kO1xuZXhwb3J0cy5UcmFuc2FjdFdyaXRlSXRlbXNJbnB1dCQgPSBUcmFuc2FjdFdyaXRlSXRlbXNJbnB1dCQ7XG5leHBvcnRzLlRyYW5zYWN0V3JpdGVJdGVtc091dHB1dCQgPSBUcmFuc2FjdFdyaXRlSXRlbXNPdXRwdXQkO1xuZXhwb3J0cy5UcmFuc2FjdGlvbkNhbmNlbGVkRXhjZXB0aW9uID0gVHJhbnNhY3Rpb25DYW5jZWxlZEV4Y2VwdGlvbjtcbmV4cG9ydHMuVHJhbnNhY3Rpb25DYW5jZWxlZEV4Y2VwdGlvbiQgPSBUcmFuc2FjdGlvbkNhbmNlbGVkRXhjZXB0aW9uJDtcbmV4cG9ydHMuVHJhbnNhY3Rpb25Db25mbGljdEV4Y2VwdGlvbiA9IFRyYW5zYWN0aW9uQ29uZmxpY3RFeGNlcHRpb247XG5leHBvcnRzLlRyYW5zYWN0aW9uQ29uZmxpY3RFeGNlcHRpb24kID0gVHJhbnNhY3Rpb25Db25mbGljdEV4Y2VwdGlvbiQ7XG5leHBvcnRzLlRyYW5zYWN0aW9uSW5Qcm9ncmVzc0V4Y2VwdGlvbiA9IFRyYW5zYWN0aW9uSW5Qcm9ncmVzc0V4Y2VwdGlvbjtcbmV4cG9ydHMuVHJhbnNhY3Rpb25JblByb2dyZXNzRXhjZXB0aW9uJCA9IFRyYW5zYWN0aW9uSW5Qcm9ncmVzc0V4Y2VwdGlvbiQ7XG5leHBvcnRzLlVudGFnUmVzb3VyY2UkID0gVW50YWdSZXNvdXJjZSQ7XG5leHBvcnRzLlVudGFnUmVzb3VyY2VDb21tYW5kID0gVW50YWdSZXNvdXJjZUNvbW1hbmQ7XG5leHBvcnRzLlVudGFnUmVzb3VyY2VJbnB1dCQgPSBVbnRhZ1Jlc291cmNlSW5wdXQkO1xuZXhwb3J0cy5VcGRhdGUkID0gVXBkYXRlJDtcbmV4cG9ydHMuVXBkYXRlQ29udGludW91c0JhY2t1cHMkID0gVXBkYXRlQ29udGludW91c0JhY2t1cHMkO1xuZXhwb3J0cy5VcGRhdGVDb250aW51b3VzQmFja3Vwc0NvbW1hbmQgPSBVcGRhdGVDb250aW51b3VzQmFja3Vwc0NvbW1hbmQ7XG5leHBvcnRzLlVwZGF0ZUNvbnRpbnVvdXNCYWNrdXBzSW5wdXQkID0gVXBkYXRlQ29udGludW91c0JhY2t1cHNJbnB1dCQ7XG5leHBvcnRzLlVwZGF0ZUNvbnRpbnVvdXNCYWNrdXBzT3V0cHV0JCA9IFVwZGF0ZUNvbnRpbnVvdXNCYWNrdXBzT3V0cHV0JDtcbmV4cG9ydHMuVXBkYXRlQ29udHJpYnV0b3JJbnNpZ2h0cyQgPSBVcGRhdGVDb250cmlidXRvckluc2lnaHRzJDtcbmV4cG9ydHMuVXBkYXRlQ29udHJpYnV0b3JJbnNpZ2h0c0NvbW1hbmQgPSBVcGRhdGVDb250cmlidXRvckluc2lnaHRzQ29tbWFuZDtcbmV4cG9ydHMuVXBkYXRlQ29udHJpYnV0b3JJbnNpZ2h0c0lucHV0JCA9IFVwZGF0ZUNvbnRyaWJ1dG9ySW5zaWdodHNJbnB1dCQ7XG5leHBvcnRzLlVwZGF0ZUNvbnRyaWJ1dG9ySW5zaWdodHNPdXRwdXQkID0gVXBkYXRlQ29udHJpYnV0b3JJbnNpZ2h0c091dHB1dCQ7XG5leHBvcnRzLlVwZGF0ZUdsb2JhbFNlY29uZGFyeUluZGV4QWN0aW9uJCA9IFVwZGF0ZUdsb2JhbFNlY29uZGFyeUluZGV4QWN0aW9uJDtcbmV4cG9ydHMuVXBkYXRlR2xvYmFsVGFibGUkID0gVXBkYXRlR2xvYmFsVGFibGUkO1xuZXhwb3J0cy5VcGRhdGVHbG9iYWxUYWJsZUNvbW1hbmQgPSBVcGRhdGVHbG9iYWxUYWJsZUNvbW1hbmQ7XG5leHBvcnRzLlVwZGF0ZUdsb2JhbFRhYmxlSW5wdXQkID0gVXBkYXRlR2xvYmFsVGFibGVJbnB1dCQ7XG5leHBvcnRzLlVwZGF0ZUdsb2JhbFRhYmxlT3V0cHV0JCA9IFVwZGF0ZUdsb2JhbFRhYmxlT3V0cHV0JDtcbmV4cG9ydHMuVXBkYXRlR2xvYmFsVGFibGVTZXR0aW5ncyQgPSBVcGRhdGVHbG9iYWxUYWJsZVNldHRpbmdzJDtcbmV4cG9ydHMuVXBkYXRlR2xvYmFsVGFibGVTZXR0aW5nc0NvbW1hbmQgPSBVcGRhdGVHbG9iYWxUYWJsZVNldHRpbmdzQ29tbWFuZDtcbmV4cG9ydHMuVXBkYXRlR2xvYmFsVGFibGVTZXR0aW5nc0lucHV0JCA9IFVwZGF0ZUdsb2JhbFRhYmxlU2V0dGluZ3NJbnB1dCQ7XG5leHBvcnRzLlVwZGF0ZUdsb2JhbFRhYmxlU2V0dGluZ3NPdXRwdXQkID0gVXBkYXRlR2xvYmFsVGFibGVTZXR0aW5nc091dHB1dCQ7XG5leHBvcnRzLlVwZGF0ZUl0ZW0kID0gVXBkYXRlSXRlbSQ7XG5leHBvcnRzLlVwZGF0ZUl0ZW1Db21tYW5kID0gVXBkYXRlSXRlbUNvbW1hbmQ7XG5leHBvcnRzLlVwZGF0ZUl0ZW1JbnB1dCQgPSBVcGRhdGVJdGVtSW5wdXQkO1xuZXhwb3J0cy5VcGRhdGVJdGVtT3V0cHV0JCA9IFVwZGF0ZUl0ZW1PdXRwdXQkO1xuZXhwb3J0cy5VcGRhdGVLaW5lc2lzU3RyZWFtaW5nQ29uZmlndXJhdGlvbiQgPSBVcGRhdGVLaW5lc2lzU3RyZWFtaW5nQ29uZmlndXJhdGlvbiQ7XG5leHBvcnRzLlVwZGF0ZUtpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvbiQgPSBVcGRhdGVLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb24kO1xuZXhwb3J0cy5VcGRhdGVLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb25Db21tYW5kID0gVXBkYXRlS2luZXNpc1N0cmVhbWluZ0Rlc3RpbmF0aW9uQ29tbWFuZDtcbmV4cG9ydHMuVXBkYXRlS2luZXNpc1N0cmVhbWluZ0Rlc3RpbmF0aW9uSW5wdXQkID0gVXBkYXRlS2luZXNpc1N0cmVhbWluZ0Rlc3RpbmF0aW9uSW5wdXQkO1xuZXhwb3J0cy5VcGRhdGVLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb25PdXRwdXQkID0gVXBkYXRlS2luZXNpc1N0cmVhbWluZ0Rlc3RpbmF0aW9uT3V0cHV0JDtcbmV4cG9ydHMuVXBkYXRlUmVwbGljYXRpb25Hcm91cE1lbWJlckFjdGlvbiQgPSBVcGRhdGVSZXBsaWNhdGlvbkdyb3VwTWVtYmVyQWN0aW9uJDtcbmV4cG9ydHMuVXBkYXRlVGFibGUkID0gVXBkYXRlVGFibGUkO1xuZXhwb3J0cy5VcGRhdGVUYWJsZUNvbW1hbmQgPSBVcGRhdGVUYWJsZUNvbW1hbmQ7XG5leHBvcnRzLlVwZGF0ZVRhYmxlSW5wdXQkID0gVXBkYXRlVGFibGVJbnB1dCQ7XG5leHBvcnRzLlVwZGF0ZVRhYmxlT3V0cHV0JCA9IFVwZGF0ZVRhYmxlT3V0cHV0JDtcbmV4cG9ydHMuVXBkYXRlVGFibGVSZXBsaWNhQXV0b1NjYWxpbmckID0gVXBkYXRlVGFibGVSZXBsaWNhQXV0b1NjYWxpbmckO1xuZXhwb3J0cy5VcGRhdGVUYWJsZVJlcGxpY2FBdXRvU2NhbGluZ0NvbW1hbmQgPSBVcGRhdGVUYWJsZVJlcGxpY2FBdXRvU2NhbGluZ0NvbW1hbmQ7XG5leHBvcnRzLlVwZGF0ZVRhYmxlUmVwbGljYUF1dG9TY2FsaW5nSW5wdXQkID0gVXBkYXRlVGFibGVSZXBsaWNhQXV0b1NjYWxpbmdJbnB1dCQ7XG5leHBvcnRzLlVwZGF0ZVRhYmxlUmVwbGljYUF1dG9TY2FsaW5nT3V0cHV0JCA9IFVwZGF0ZVRhYmxlUmVwbGljYUF1dG9TY2FsaW5nT3V0cHV0JDtcbmV4cG9ydHMuVXBkYXRlVGltZVRvTGl2ZSQgPSBVcGRhdGVUaW1lVG9MaXZlJDtcbmV4cG9ydHMuVXBkYXRlVGltZVRvTGl2ZUNvbW1hbmQgPSBVcGRhdGVUaW1lVG9MaXZlQ29tbWFuZDtcbmV4cG9ydHMuVXBkYXRlVGltZVRvTGl2ZUlucHV0JCA9IFVwZGF0ZVRpbWVUb0xpdmVJbnB1dCQ7XG5leHBvcnRzLlVwZGF0ZVRpbWVUb0xpdmVPdXRwdXQkID0gVXBkYXRlVGltZVRvTGl2ZU91dHB1dCQ7XG5leHBvcnRzLldhcm1UaHJvdWdocHV0JCA9IFdhcm1UaHJvdWdocHV0JDtcbmV4cG9ydHMuV2l0bmVzc1N0YXR1cyA9IFdpdG5lc3NTdGF0dXM7XG5leHBvcnRzLldyaXRlUmVxdWVzdCQgPSBXcml0ZVJlcXVlc3QkO1xuZXhwb3J0cy5wYWdpbmF0ZUxpc3RDb250cmlidXRvckluc2lnaHRzID0gcGFnaW5hdGVMaXN0Q29udHJpYnV0b3JJbnNpZ2h0cztcbmV4cG9ydHMucGFnaW5hdGVMaXN0RXhwb3J0cyA9IHBhZ2luYXRlTGlzdEV4cG9ydHM7XG5leHBvcnRzLnBhZ2luYXRlTGlzdEltcG9ydHMgPSBwYWdpbmF0ZUxpc3RJbXBvcnRzO1xuZXhwb3J0cy5wYWdpbmF0ZUxpc3RUYWJsZXMgPSBwYWdpbmF0ZUxpc3RUYWJsZXM7XG5leHBvcnRzLnBhZ2luYXRlUXVlcnkgPSBwYWdpbmF0ZVF1ZXJ5O1xuZXhwb3J0cy5wYWdpbmF0ZVNjYW4gPSBwYWdpbmF0ZVNjYW47XG5leHBvcnRzLndhaXRGb3JDb250cmlidXRvckluc2lnaHRzRW5hYmxlZCA9IHdhaXRGb3JDb250cmlidXRvckluc2lnaHRzRW5hYmxlZDtcbmV4cG9ydHMud2FpdEZvckV4cG9ydENvbXBsZXRlZCA9IHdhaXRGb3JFeHBvcnRDb21wbGV0ZWQ7XG5leHBvcnRzLndhaXRGb3JJbXBvcnRDb21wbGV0ZWQgPSB3YWl0Rm9ySW1wb3J0Q29tcGxldGVkO1xuZXhwb3J0cy53YWl0Rm9yS2luZXNpc1N0cmVhbWluZ0Rlc3RpbmF0aW9uQWN0aXZlID0gd2FpdEZvcktpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvbkFjdGl2ZTtcbmV4cG9ydHMud2FpdEZvclRhYmxlRXhpc3RzID0gd2FpdEZvclRhYmxlRXhpc3RzO1xuZXhwb3J0cy53YWl0Rm9yVGFibGVOb3RFeGlzdHMgPSB3YWl0Rm9yVGFibGVOb3RFeGlzdHM7XG5leHBvcnRzLndhaXRVbnRpbENvbnRyaWJ1dG9ySW5zaWdodHNFbmFibGVkID0gd2FpdFVudGlsQ29udHJpYnV0b3JJbnNpZ2h0c0VuYWJsZWQ7XG5leHBvcnRzLndhaXRVbnRpbEV4cG9ydENvbXBsZXRlZCA9IHdhaXRVbnRpbEV4cG9ydENvbXBsZXRlZDtcbmV4cG9ydHMud2FpdFVudGlsSW1wb3J0Q29tcGxldGVkID0gd2FpdFVudGlsSW1wb3J0Q29tcGxldGVkO1xuZXhwb3J0cy53YWl0VW50aWxLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb25BY3RpdmUgPSB3YWl0VW50aWxLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb25BY3RpdmU7XG5leHBvcnRzLndhaXRVbnRpbFRhYmxlRXhpc3RzID0gd2FpdFVudGlsVGFibGVFeGlzdHM7XG5leHBvcnRzLndhaXRVbnRpbFRhYmxlTm90RXhpc3RzID0gd2FpdFVudGlsVGFibGVOb3RFeGlzdHM7XG4iLCAiZXhwb3J0IGNvbnN0IHN0YXRlID0ge1xuICAgIHdhcm5pbmdFbWl0dGVkOiBmYWxzZSxcbn07XG5leHBvcnQgY29uc3QgZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbiA9ICh2ZXJzaW9uKSA9PiB7XG4gICAgaWYgKHZlcnNpb24gJiYgIXN0YXRlLndhcm5pbmdFbWl0dGVkICYmIHBhcnNlSW50KHZlcnNpb24uc3Vic3RyaW5nKDEsIHZlcnNpb24uaW5kZXhPZihcIi5cIikpKSA8IDIwKSB7XG4gICAgICAgIHN0YXRlLndhcm5pbmdFbWl0dGVkID0gdHJ1ZTtcbiAgICAgICAgcHJvY2Vzcy5lbWl0V2FybmluZyhgTm9kZURlcHJlY2F0aW9uV2FybmluZzogVGhlIEFXUyBTREsgZm9yIEphdmFTY3JpcHQgKHYzKSB3aWxsXG5ubyBsb25nZXIgc3VwcG9ydCBOb2RlLmpzICR7dmVyc2lvbn0gaW4gSmFudWFyeSAyMDI2LlxuXG5UbyBjb250aW51ZSByZWNlaXZpbmcgdXBkYXRlcyB0byBBV1Mgc2VydmljZXMsIGJ1ZyBmaXhlcywgYW5kIHNlY3VyaXR5XG51cGRhdGVzIHBsZWFzZSB1cGdyYWRlIHRvIGEgc3VwcG9ydGVkIE5vZGUuanMgTFRTIHZlcnNpb24uXG5cbk1vcmUgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGF0OiBodHRwczovL2EuY28vYzg5NUpGcGApO1xuICAgIH1cbn07XG4iLCAiZXhwb3J0IGZ1bmN0aW9uIHNldENyZWRlbnRpYWxGZWF0dXJlKGNyZWRlbnRpYWxzLCBmZWF0dXJlLCB2YWx1ZSkge1xuICAgIGlmICghY3JlZGVudGlhbHMuJHNvdXJjZSkge1xuICAgICAgICBjcmVkZW50aWFscy4kc291cmNlID0ge307XG4gICAgfVxuICAgIGNyZWRlbnRpYWxzLiRzb3VyY2VbZmVhdHVyZV0gPSB2YWx1ZTtcbiAgICByZXR1cm4gY3JlZGVudGlhbHM7XG59XG4iLCAiZXhwb3J0IGZ1bmN0aW9uIHNldEZlYXR1cmUoY29udGV4dCwgZmVhdHVyZSwgdmFsdWUpIHtcbiAgICBpZiAoIWNvbnRleHQuX19hd3Nfc2RrX2NvbnRleHQpIHtcbiAgICAgICAgY29udGV4dC5fX2F3c19zZGtfY29udGV4dCA9IHtcbiAgICAgICAgICAgIGZlYXR1cmVzOiB7fSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgZWxzZSBpZiAoIWNvbnRleHQuX19hd3Nfc2RrX2NvbnRleHQuZmVhdHVyZXMpIHtcbiAgICAgICAgY29udGV4dC5fX2F3c19zZGtfY29udGV4dC5mZWF0dXJlcyA9IHt9O1xuICAgIH1cbiAgICBjb250ZXh0Ll9fYXdzX3Nka19jb250ZXh0LmZlYXR1cmVzW2ZlYXR1cmVdID0gdmFsdWU7XG59XG4iLCAiZXhwb3J0IGZ1bmN0aW9uIHNldFRva2VuRmVhdHVyZSh0b2tlbiwgZmVhdHVyZSwgdmFsdWUpIHtcbiAgICBpZiAoIXRva2VuLiRzb3VyY2UpIHtcbiAgICAgICAgdG9rZW4uJHNvdXJjZSA9IHt9O1xuICAgIH1cbiAgICB0b2tlbi4kc291cmNlW2ZlYXR1cmVdID0gdmFsdWU7XG4gICAgcmV0dXJuIHRva2VuO1xufVxuIiwgImV4cG9ydCAqIGZyb20gXCIuL2VtaXRXYXJuaW5nSWZVbnN1cHBvcnRlZFZlcnNpb25cIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NldENyZWRlbnRpYWxGZWF0dXJlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zZXRGZWF0dXJlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zZXRUb2tlbkZlYXR1cmVcIjtcbiIsICJpbXBvcnQgeyBIdHRwUmVzcG9uc2UgfSBmcm9tIFwiQHNtaXRoeS9wcm90b2NvbC1odHRwXCI7XG5leHBvcnQgY29uc3QgZ2V0RGF0ZUhlYWRlciA9IChyZXNwb25zZSkgPT4gSHR0cFJlc3BvbnNlLmlzSW5zdGFuY2UocmVzcG9uc2UpID8gcmVzcG9uc2UuaGVhZGVycz8uZGF0ZSA/PyByZXNwb25zZS5oZWFkZXJzPy5EYXRlIDogdW5kZWZpbmVkO1xuIiwgImV4cG9ydCBjb25zdCBnZXRTa2V3Q29ycmVjdGVkRGF0ZSA9IChzeXN0ZW1DbG9ja09mZnNldCkgPT4gbmV3IERhdGUoRGF0ZS5ub3coKSArIHN5c3RlbUNsb2NrT2Zmc2V0KTtcbiIsICJpbXBvcnQgeyBnZXRTa2V3Q29ycmVjdGVkRGF0ZSB9IGZyb20gXCIuL2dldFNrZXdDb3JyZWN0ZWREYXRlXCI7XG5leHBvcnQgY29uc3QgaXNDbG9ja1NrZXdlZCA9IChjbG9ja1RpbWUsIHN5c3RlbUNsb2NrT2Zmc2V0KSA9PiBNYXRoLmFicyhnZXRTa2V3Q29ycmVjdGVkRGF0ZShzeXN0ZW1DbG9ja09mZnNldCkuZ2V0VGltZSgpIC0gY2xvY2tUaW1lKSA+PSAzMDAwMDA7XG4iLCAiaW1wb3J0IHsgaXNDbG9ja1NrZXdlZCB9IGZyb20gXCIuL2lzQ2xvY2tTa2V3ZWRcIjtcbmV4cG9ydCBjb25zdCBnZXRVcGRhdGVkU3lzdGVtQ2xvY2tPZmZzZXQgPSAoY2xvY2tUaW1lLCBjdXJyZW50U3lzdGVtQ2xvY2tPZmZzZXQpID0+IHtcbiAgICBjb25zdCBjbG9ja1RpbWVJbk1zID0gRGF0ZS5wYXJzZShjbG9ja1RpbWUpO1xuICAgIGlmIChpc0Nsb2NrU2tld2VkKGNsb2NrVGltZUluTXMsIGN1cnJlbnRTeXN0ZW1DbG9ja09mZnNldCkpIHtcbiAgICAgICAgcmV0dXJuIGNsb2NrVGltZUluTXMgLSBEYXRlLm5vdygpO1xuICAgIH1cbiAgICByZXR1cm4gY3VycmVudFN5c3RlbUNsb2NrT2Zmc2V0O1xufTtcbiIsICJleHBvcnQgKiBmcm9tIFwiLi9nZXREYXRlSGVhZGVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9nZXRTa2V3Q29ycmVjdGVkRGF0ZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZ2V0VXBkYXRlZFN5c3RlbUNsb2NrT2Zmc2V0XCI7XG4iLCAiaW1wb3J0IHsgSHR0cFJlcXVlc3QgfSBmcm9tIFwiQHNtaXRoeS9wcm90b2NvbC1odHRwXCI7XG5pbXBvcnQgeyBnZXREYXRlSGVhZGVyLCBnZXRTa2V3Q29ycmVjdGVkRGF0ZSwgZ2V0VXBkYXRlZFN5c3RlbUNsb2NrT2Zmc2V0IH0gZnJvbSBcIi4uL3V0aWxzXCI7XG5jb25zdCB0aHJvd1NpZ25pbmdQcm9wZXJ0eUVycm9yID0gKG5hbWUsIHByb3BlcnR5KSA9PiB7XG4gICAgaWYgKCFwcm9wZXJ0eSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFByb3BlcnR5IFxcYCR7bmFtZX1cXGAgaXMgbm90IHJlc29sdmVkIGZvciBBV1MgU0RLIFNpZ1Y0QXV0aGApO1xuICAgIH1cbiAgICByZXR1cm4gcHJvcGVydHk7XG59O1xuZXhwb3J0IGNvbnN0IHZhbGlkYXRlU2lnbmluZ1Byb3BlcnRpZXMgPSBhc3luYyAoc2lnbmluZ1Byb3BlcnRpZXMpID0+IHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhyb3dTaWduaW5nUHJvcGVydHlFcnJvcihcImNvbnRleHRcIiwgc2lnbmluZ1Byb3BlcnRpZXMuY29udGV4dCk7XG4gICAgY29uc3QgY29uZmlnID0gdGhyb3dTaWduaW5nUHJvcGVydHlFcnJvcihcImNvbmZpZ1wiLCBzaWduaW5nUHJvcGVydGllcy5jb25maWcpO1xuICAgIGNvbnN0IGF1dGhTY2hlbWUgPSBjb250ZXh0LmVuZHBvaW50VjI/LnByb3BlcnRpZXM/LmF1dGhTY2hlbWVzPy5bMF07XG4gICAgY29uc3Qgc2lnbmVyRnVuY3Rpb24gPSB0aHJvd1NpZ25pbmdQcm9wZXJ0eUVycm9yKFwic2lnbmVyXCIsIGNvbmZpZy5zaWduZXIpO1xuICAgIGNvbnN0IHNpZ25lciA9IGF3YWl0IHNpZ25lckZ1bmN0aW9uKGF1dGhTY2hlbWUpO1xuICAgIGNvbnN0IHNpZ25pbmdSZWdpb24gPSBzaWduaW5nUHJvcGVydGllcz8uc2lnbmluZ1JlZ2lvbjtcbiAgICBjb25zdCBzaWduaW5nUmVnaW9uU2V0ID0gc2lnbmluZ1Byb3BlcnRpZXM/LnNpZ25pbmdSZWdpb25TZXQ7XG4gICAgY29uc3Qgc2lnbmluZ05hbWUgPSBzaWduaW5nUHJvcGVydGllcz8uc2lnbmluZ05hbWU7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgY29uZmlnLFxuICAgICAgICBzaWduZXIsXG4gICAgICAgIHNpZ25pbmdSZWdpb24sXG4gICAgICAgIHNpZ25pbmdSZWdpb25TZXQsXG4gICAgICAgIHNpZ25pbmdOYW1lLFxuICAgIH07XG59O1xuZXhwb3J0IGNsYXNzIEF3c1Nka1NpZ1Y0U2lnbmVyIHtcbiAgICBhc3luYyBzaWduKGh0dHBSZXF1ZXN0LCBpZGVudGl0eSwgc2lnbmluZ1Byb3BlcnRpZXMpIHtcbiAgICAgICAgaWYgKCFIdHRwUmVxdWVzdC5pc0luc3RhbmNlKGh0dHBSZXF1ZXN0KSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVGhlIHJlcXVlc3QgaXMgbm90IGFuIGluc3RhbmNlIG9mIGBIdHRwUmVxdWVzdGAgYW5kIGNhbm5vdCBiZSBzaWduZWRcIik7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdmFsaWRhdGVkUHJvcHMgPSBhd2FpdCB2YWxpZGF0ZVNpZ25pbmdQcm9wZXJ0aWVzKHNpZ25pbmdQcm9wZXJ0aWVzKTtcbiAgICAgICAgY29uc3QgeyBjb25maWcsIHNpZ25lciB9ID0gdmFsaWRhdGVkUHJvcHM7XG4gICAgICAgIGxldCB7IHNpZ25pbmdSZWdpb24sIHNpZ25pbmdOYW1lIH0gPSB2YWxpZGF0ZWRQcm9wcztcbiAgICAgICAgY29uc3QgaGFuZGxlckV4ZWN1dGlvbkNvbnRleHQgPSBzaWduaW5nUHJvcGVydGllcy5jb250ZXh0O1xuICAgICAgICBpZiAoaGFuZGxlckV4ZWN1dGlvbkNvbnRleHQ/LmF1dGhTY2hlbWVzPy5sZW5ndGggPz8gMCA+IDEpIHtcbiAgICAgICAgICAgIGNvbnN0IFtmaXJzdCwgc2Vjb25kXSA9IGhhbmRsZXJFeGVjdXRpb25Db250ZXh0LmF1dGhTY2hlbWVzO1xuICAgICAgICAgICAgaWYgKGZpcnN0Py5uYW1lID09PSBcInNpZ3Y0YVwiICYmIHNlY29uZD8ubmFtZSA9PT0gXCJzaWd2NFwiKSB7XG4gICAgICAgICAgICAgICAgc2lnbmluZ1JlZ2lvbiA9IHNlY29uZD8uc2lnbmluZ1JlZ2lvbiA/PyBzaWduaW5nUmVnaW9uO1xuICAgICAgICAgICAgICAgIHNpZ25pbmdOYW1lID0gc2Vjb25kPy5zaWduaW5nTmFtZSA/PyBzaWduaW5nTmFtZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzaWduZWRSZXF1ZXN0ID0gYXdhaXQgc2lnbmVyLnNpZ24oaHR0cFJlcXVlc3QsIHtcbiAgICAgICAgICAgIHNpZ25pbmdEYXRlOiBnZXRTa2V3Q29ycmVjdGVkRGF0ZShjb25maWcuc3lzdGVtQ2xvY2tPZmZzZXQpLFxuICAgICAgICAgICAgc2lnbmluZ1JlZ2lvbjogc2lnbmluZ1JlZ2lvbixcbiAgICAgICAgICAgIHNpZ25pbmdTZXJ2aWNlOiBzaWduaW5nTmFtZSxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBzaWduZWRSZXF1ZXN0O1xuICAgIH1cbiAgICBlcnJvckhhbmRsZXIoc2lnbmluZ1Byb3BlcnRpZXMpIHtcbiAgICAgICAgcmV0dXJuIChlcnJvcikgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc2VydmVyVGltZSA9IGVycm9yLlNlcnZlclRpbWUgPz8gZ2V0RGF0ZUhlYWRlcihlcnJvci4kcmVzcG9uc2UpO1xuICAgICAgICAgICAgaWYgKHNlcnZlclRpbWUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSB0aHJvd1NpZ25pbmdQcm9wZXJ0eUVycm9yKFwiY29uZmlnXCIsIHNpZ25pbmdQcm9wZXJ0aWVzLmNvbmZpZyk7XG4gICAgICAgICAgICAgICAgY29uc3QgaW5pdGlhbFN5c3RlbUNsb2NrT2Zmc2V0ID0gY29uZmlnLnN5c3RlbUNsb2NrT2Zmc2V0O1xuICAgICAgICAgICAgICAgIGNvbmZpZy5zeXN0ZW1DbG9ja09mZnNldCA9IGdldFVwZGF0ZWRTeXN0ZW1DbG9ja09mZnNldChzZXJ2ZXJUaW1lLCBjb25maWcuc3lzdGVtQ2xvY2tPZmZzZXQpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNsb2NrU2tld0NvcnJlY3RlZCA9IGNvbmZpZy5zeXN0ZW1DbG9ja09mZnNldCAhPT0gaW5pdGlhbFN5c3RlbUNsb2NrT2Zmc2V0O1xuICAgICAgICAgICAgICAgIGlmIChjbG9ja1NrZXdDb3JyZWN0ZWQgJiYgZXJyb3IuJG1ldGFkYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgIGVycm9yLiRtZXRhZGF0YS5jbG9ja1NrZXdDb3JyZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9O1xuICAgIH1cbiAgICBzdWNjZXNzSGFuZGxlcihodHRwUmVzcG9uc2UsIHNpZ25pbmdQcm9wZXJ0aWVzKSB7XG4gICAgICAgIGNvbnN0IGRhdGVIZWFkZXIgPSBnZXREYXRlSGVhZGVyKGh0dHBSZXNwb25zZSk7XG4gICAgICAgIGlmIChkYXRlSGVhZGVyKSB7XG4gICAgICAgICAgICBjb25zdCBjb25maWcgPSB0aHJvd1NpZ25pbmdQcm9wZXJ0eUVycm9yKFwiY29uZmlnXCIsIHNpZ25pbmdQcm9wZXJ0aWVzLmNvbmZpZyk7XG4gICAgICAgICAgICBjb25maWcuc3lzdGVtQ2xvY2tPZmZzZXQgPSBnZXRVcGRhdGVkU3lzdGVtQ2xvY2tPZmZzZXQoZGF0ZUhlYWRlciwgY29uZmlnLnN5c3RlbUNsb2NrT2Zmc2V0KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydCBjb25zdCBBV1NTREtTaWdWNFNpZ25lciA9IEF3c1Nka1NpZ1Y0U2lnbmVyO1xuIiwgImltcG9ydCB7IEh0dHBSZXF1ZXN0IH0gZnJvbSBcIkBzbWl0aHkvcHJvdG9jb2wtaHR0cFwiO1xuaW1wb3J0IHsgZ2V0U2tld0NvcnJlY3RlZERhdGUgfSBmcm9tIFwiLi4vdXRpbHNcIjtcbmltcG9ydCB7IEF3c1Nka1NpZ1Y0U2lnbmVyLCB2YWxpZGF0ZVNpZ25pbmdQcm9wZXJ0aWVzIH0gZnJvbSBcIi4vQXdzU2RrU2lnVjRTaWduZXJcIjtcbmV4cG9ydCBjbGFzcyBBd3NTZGtTaWdWNEFTaWduZXIgZXh0ZW5kcyBBd3NTZGtTaWdWNFNpZ25lciB7XG4gICAgYXN5bmMgc2lnbihodHRwUmVxdWVzdCwgaWRlbnRpdHksIHNpZ25pbmdQcm9wZXJ0aWVzKSB7XG4gICAgICAgIGlmICghSHR0cFJlcXVlc3QuaXNJbnN0YW5jZShodHRwUmVxdWVzdCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlRoZSByZXF1ZXN0IGlzIG5vdCBhbiBpbnN0YW5jZSBvZiBgSHR0cFJlcXVlc3RgIGFuZCBjYW5ub3QgYmUgc2lnbmVkXCIpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHsgY29uZmlnLCBzaWduZXIsIHNpZ25pbmdSZWdpb24sIHNpZ25pbmdSZWdpb25TZXQsIHNpZ25pbmdOYW1lIH0gPSBhd2FpdCB2YWxpZGF0ZVNpZ25pbmdQcm9wZXJ0aWVzKHNpZ25pbmdQcm9wZXJ0aWVzKTtcbiAgICAgICAgY29uc3QgY29uZmlnUmVzb2x2ZWRTaWduaW5nUmVnaW9uU2V0ID0gYXdhaXQgY29uZmlnLnNpZ3Y0YVNpZ25pbmdSZWdpb25TZXQ/LigpO1xuICAgICAgICBjb25zdCBtdWx0aVJlZ2lvbk92ZXJyaWRlID0gKGNvbmZpZ1Jlc29sdmVkU2lnbmluZ1JlZ2lvblNldCA/P1xuICAgICAgICAgICAgc2lnbmluZ1JlZ2lvblNldCA/PyBbc2lnbmluZ1JlZ2lvbl0pLmpvaW4oXCIsXCIpO1xuICAgICAgICBjb25zdCBzaWduZWRSZXF1ZXN0ID0gYXdhaXQgc2lnbmVyLnNpZ24oaHR0cFJlcXVlc3QsIHtcbiAgICAgICAgICAgIHNpZ25pbmdEYXRlOiBnZXRTa2V3Q29ycmVjdGVkRGF0ZShjb25maWcuc3lzdGVtQ2xvY2tPZmZzZXQpLFxuICAgICAgICAgICAgc2lnbmluZ1JlZ2lvbjogbXVsdGlSZWdpb25PdmVycmlkZSxcbiAgICAgICAgICAgIHNpZ25pbmdTZXJ2aWNlOiBzaWduaW5nTmFtZSxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBzaWduZWRSZXF1ZXN0O1xuICAgIH1cbn1cbiIsICJleHBvcnQgY29uc3QgZ2V0QXJyYXlGb3JDb21tYVNlcGFyYXRlZFN0cmluZyA9IChzdHIpID0+IHR5cGVvZiBzdHIgPT09IFwic3RyaW5nXCIgJiYgc3RyLmxlbmd0aCA+IDAgPyBzdHIuc3BsaXQoXCIsXCIpLm1hcCgoaXRlbSkgPT4gaXRlbS50cmltKCkpIDogW107XG4iLCAiZXhwb3J0IGNvbnN0IGdldEJlYXJlclRva2VuRW52S2V5ID0gKHNpZ25pbmdOYW1lKSA9PiBgQVdTX0JFQVJFUl9UT0tFTl8ke3NpZ25pbmdOYW1lLnJlcGxhY2UoL1tcXHMtXS9nLCBcIl9cIikudG9VcHBlckNhc2UoKX1gO1xuIiwgImltcG9ydCB7IGdldEFycmF5Rm9yQ29tbWFTZXBhcmF0ZWRTdHJpbmcgfSBmcm9tIFwiLi4vdXRpbHMvZ2V0QXJyYXlGb3JDb21tYVNlcGFyYXRlZFN0cmluZ1wiO1xuaW1wb3J0IHsgZ2V0QmVhcmVyVG9rZW5FbnZLZXkgfSBmcm9tIFwiLi4vdXRpbHMvZ2V0QmVhcmVyVG9rZW5FbnZLZXlcIjtcbmNvbnN0IE5PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9FTlZfS0VZID0gXCJBV1NfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRVwiO1xuY29uc3QgTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX0NPTkZJR19LRVkgPSBcImF1dGhfc2NoZW1lX3ByZWZlcmVuY2VcIjtcbmV4cG9ydCBjb25zdCBOT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfT1BUSU9OUyA9IHtcbiAgICBlbnZpcm9ubWVudFZhcmlhYmxlU2VsZWN0b3I6IChlbnYsIG9wdGlvbnMpID0+IHtcbiAgICAgICAgaWYgKG9wdGlvbnM/LnNpZ25pbmdOYW1lKSB7XG4gICAgICAgICAgICBjb25zdCBiZWFyZXJUb2tlbktleSA9IGdldEJlYXJlclRva2VuRW52S2V5KG9wdGlvbnMuc2lnbmluZ05hbWUpO1xuICAgICAgICAgICAgaWYgKGJlYXJlclRva2VuS2V5IGluIGVudilcbiAgICAgICAgICAgICAgICByZXR1cm4gW1wiaHR0cEJlYXJlckF1dGhcIl07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCEoTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX0VOVl9LRVkgaW4gZW52KSlcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIHJldHVybiBnZXRBcnJheUZvckNvbW1hU2VwYXJhdGVkU3RyaW5nKGVudltOT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfRU5WX0tFWV0pO1xuICAgIH0sXG4gICAgY29uZmlnRmlsZVNlbGVjdG9yOiAocHJvZmlsZSkgPT4ge1xuICAgICAgICBpZiAoIShOT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfQ09ORklHX0tFWSBpbiBwcm9maWxlKSlcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIHJldHVybiBnZXRBcnJheUZvckNvbW1hU2VwYXJhdGVkU3RyaW5nKHByb2ZpbGVbTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX0NPTkZJR19LRVldKTtcbiAgICB9LFxuICAgIGRlZmF1bHQ6IFtdLFxufTtcbiIsICJpbXBvcnQgeyBub3JtYWxpemVQcm92aWRlciB9IGZyb20gXCJAc21pdGh5L2NvcmVcIjtcbmltcG9ydCB7IFByb3ZpZGVyRXJyb3IgfSBmcm9tIFwiQHNtaXRoeS9wcm9wZXJ0eS1wcm92aWRlclwiO1xuZXhwb3J0IGNvbnN0IHJlc29sdmVBd3NTZGtTaWdWNEFDb25maWcgPSAoY29uZmlnKSA9PiB7XG4gICAgY29uZmlnLnNpZ3Y0YVNpZ25pbmdSZWdpb25TZXQgPSBub3JtYWxpemVQcm92aWRlcihjb25maWcuc2lndjRhU2lnbmluZ1JlZ2lvblNldCk7XG4gICAgcmV0dXJuIGNvbmZpZztcbn07XG5leHBvcnQgY29uc3QgTk9ERV9TSUdWNEFfQ09ORklHX09QVElPTlMgPSB7XG4gICAgZW52aXJvbm1lbnRWYXJpYWJsZVNlbGVjdG9yKGVudikge1xuICAgICAgICBpZiAoZW52LkFXU19TSUdWNEFfU0lHTklOR19SRUdJT05fU0VUKSB7XG4gICAgICAgICAgICByZXR1cm4gZW52LkFXU19TSUdWNEFfU0lHTklOR19SRUdJT05fU0VULnNwbGl0KFwiLFwiKS5tYXAoKF8pID0+IF8udHJpbSgpKTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBuZXcgUHJvdmlkZXJFcnJvcihcIkFXU19TSUdWNEFfU0lHTklOR19SRUdJT05fU0VUIG5vdCBzZXQgaW4gZW52LlwiLCB7XG4gICAgICAgICAgICB0cnlOZXh0TGluazogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgfSxcbiAgICBjb25maWdGaWxlU2VsZWN0b3IocHJvZmlsZSkge1xuICAgICAgICBpZiAocHJvZmlsZS5zaWd2NGFfc2lnbmluZ19yZWdpb25fc2V0KSB7XG4gICAgICAgICAgICByZXR1cm4gKHByb2ZpbGUuc2lndjRhX3NpZ25pbmdfcmVnaW9uX3NldCA/PyBcIlwiKS5zcGxpdChcIixcIikubWFwKChfKSA9PiBfLnRyaW0oKSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgbmV3IFByb3ZpZGVyRXJyb3IoXCJzaWd2NGFfc2lnbmluZ19yZWdpb25fc2V0IG5vdCBzZXQgaW4gcHJvZmlsZS5cIiwge1xuICAgICAgICAgICAgdHJ5TmV4dExpbms6IHRydWUsXG4gICAgICAgIH0pO1xuICAgIH0sXG4gICAgZGVmYXVsdDogdW5kZWZpbmVkLFxufTtcbiIsICJpbXBvcnQgeyBzZXRDcmVkZW50aWFsRmVhdHVyZSB9IGZyb20gXCJAYXdzLXNkay9jb3JlL2NsaWVudFwiO1xuaW1wb3J0IHsgZG9lc0lkZW50aXR5UmVxdWlyZVJlZnJlc2gsIGlzSWRlbnRpdHlFeHBpcmVkLCBtZW1vaXplSWRlbnRpdHlQcm92aWRlciwgbm9ybWFsaXplUHJvdmlkZXIsIH0gZnJvbSBcIkBzbWl0aHkvY29yZVwiO1xuaW1wb3J0IHsgU2lnbmF0dXJlVjQgfSBmcm9tIFwiQHNtaXRoeS9zaWduYXR1cmUtdjRcIjtcbmV4cG9ydCBjb25zdCByZXNvbHZlQXdzU2RrU2lnVjRDb25maWcgPSAoY29uZmlnKSA9PiB7XG4gICAgbGV0IGlucHV0Q3JlZGVudGlhbHMgPSBjb25maWcuY3JlZGVudGlhbHM7XG4gICAgbGV0IGlzVXNlclN1cHBsaWVkID0gISFjb25maWcuY3JlZGVudGlhbHM7XG4gICAgbGV0IHJlc29sdmVkQ3JlZGVudGlhbHMgPSB1bmRlZmluZWQ7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNvbmZpZywgXCJjcmVkZW50aWFsc1wiLCB7XG4gICAgICAgIHNldChjcmVkZW50aWFscykge1xuICAgICAgICAgICAgaWYgKGNyZWRlbnRpYWxzICYmIGNyZWRlbnRpYWxzICE9PSBpbnB1dENyZWRlbnRpYWxzICYmIGNyZWRlbnRpYWxzICE9PSByZXNvbHZlZENyZWRlbnRpYWxzKSB7XG4gICAgICAgICAgICAgICAgaXNVc2VyU3VwcGxpZWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaW5wdXRDcmVkZW50aWFscyA9IGNyZWRlbnRpYWxzO1xuICAgICAgICAgICAgY29uc3QgbWVtb2l6ZWRQcm92aWRlciA9IG5vcm1hbGl6ZUNyZWRlbnRpYWxQcm92aWRlcihjb25maWcsIHtcbiAgICAgICAgICAgICAgICBjcmVkZW50aWFsczogaW5wdXRDcmVkZW50aWFscyxcbiAgICAgICAgICAgICAgICBjcmVkZW50aWFsRGVmYXVsdFByb3ZpZGVyOiBjb25maWcuY3JlZGVudGlhbERlZmF1bHRQcm92aWRlcixcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29uc3QgYm91bmRQcm92aWRlciA9IGJpbmRDYWxsZXJDb25maWcoY29uZmlnLCBtZW1vaXplZFByb3ZpZGVyKTtcbiAgICAgICAgICAgIGlmIChpc1VzZXJTdXBwbGllZCAmJiAhYm91bmRQcm92aWRlci5hdHRyaWJ1dGVkKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNDcmVkZW50aWFsT2JqZWN0ID0gdHlwZW9mIGlucHV0Q3JlZGVudGlhbHMgPT09IFwib2JqZWN0XCIgJiYgaW5wdXRDcmVkZW50aWFscyAhPT0gbnVsbDtcbiAgICAgICAgICAgICAgICByZXNvbHZlZENyZWRlbnRpYWxzID0gYXN5bmMgKG9wdGlvbnMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY3JlZHMgPSBhd2FpdCBib3VuZFByb3ZpZGVyKG9wdGlvbnMpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhdHRyaWJ1dGVkQ3JlZHMgPSBjcmVkcztcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzQ3JlZGVudGlhbE9iamVjdCAmJiAoIWF0dHJpYnV0ZWRDcmVkcy4kc291cmNlIHx8IE9iamVjdC5rZXlzKGF0dHJpYnV0ZWRDcmVkcy4kc291cmNlKS5sZW5ndGggPT09IDApKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2V0Q3JlZGVudGlhbEZlYXR1cmUoYXR0cmlidXRlZENyZWRzLCBcIkNSRURFTlRJQUxTX0NPREVcIiwgXCJlXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhdHRyaWJ1dGVkQ3JlZHM7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICByZXNvbHZlZENyZWRlbnRpYWxzLm1lbW9pemVkID0gYm91bmRQcm92aWRlci5tZW1vaXplZDtcbiAgICAgICAgICAgICAgICByZXNvbHZlZENyZWRlbnRpYWxzLmNvbmZpZ0JvdW5kID0gYm91bmRQcm92aWRlci5jb25maWdCb3VuZDtcbiAgICAgICAgICAgICAgICByZXNvbHZlZENyZWRlbnRpYWxzLmF0dHJpYnV0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZWRDcmVkZW50aWFscyA9IGJvdW5kUHJvdmlkZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGdldCgpIHtcbiAgICAgICAgICAgIHJldHVybiByZXNvbHZlZENyZWRlbnRpYWxzO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgfSk7XG4gICAgY29uZmlnLmNyZWRlbnRpYWxzID0gaW5wdXRDcmVkZW50aWFscztcbiAgICBjb25zdCB7IHNpZ25pbmdFc2NhcGVQYXRoID0gdHJ1ZSwgc3lzdGVtQ2xvY2tPZmZzZXQgPSBjb25maWcuc3lzdGVtQ2xvY2tPZmZzZXQgfHwgMCwgc2hhMjU2LCB9ID0gY29uZmlnO1xuICAgIGxldCBzaWduZXI7XG4gICAgaWYgKGNvbmZpZy5zaWduZXIpIHtcbiAgICAgICAgc2lnbmVyID0gbm9ybWFsaXplUHJvdmlkZXIoY29uZmlnLnNpZ25lcik7XG4gICAgfVxuICAgIGVsc2UgaWYgKGNvbmZpZy5yZWdpb25JbmZvUHJvdmlkZXIpIHtcbiAgICAgICAgc2lnbmVyID0gKCkgPT4gbm9ybWFsaXplUHJvdmlkZXIoY29uZmlnLnJlZ2lvbikoKVxuICAgICAgICAgICAgLnRoZW4oYXN5bmMgKHJlZ2lvbikgPT4gW1xuICAgICAgICAgICAgKGF3YWl0IGNvbmZpZy5yZWdpb25JbmZvUHJvdmlkZXIocmVnaW9uLCB7XG4gICAgICAgICAgICAgICAgdXNlRmlwc0VuZHBvaW50OiBhd2FpdCBjb25maWcudXNlRmlwc0VuZHBvaW50KCksXG4gICAgICAgICAgICAgICAgdXNlRHVhbHN0YWNrRW5kcG9pbnQ6IGF3YWl0IGNvbmZpZy51c2VEdWFsc3RhY2tFbmRwb2ludCgpLFxuICAgICAgICAgICAgfSkpIHx8IHt9LFxuICAgICAgICAgICAgcmVnaW9uLFxuICAgICAgICBdKVxuICAgICAgICAgICAgLnRoZW4oKFtyZWdpb25JbmZvLCByZWdpb25dKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IHNpZ25pbmdSZWdpb24sIHNpZ25pbmdTZXJ2aWNlIH0gPSByZWdpb25JbmZvO1xuICAgICAgICAgICAgY29uZmlnLnNpZ25pbmdSZWdpb24gPSBjb25maWcuc2lnbmluZ1JlZ2lvbiB8fCBzaWduaW5nUmVnaW9uIHx8IHJlZ2lvbjtcbiAgICAgICAgICAgIGNvbmZpZy5zaWduaW5nTmFtZSA9IGNvbmZpZy5zaWduaW5nTmFtZSB8fCBzaWduaW5nU2VydmljZSB8fCBjb25maWcuc2VydmljZUlkO1xuICAgICAgICAgICAgY29uc3QgcGFyYW1zID0ge1xuICAgICAgICAgICAgICAgIC4uLmNvbmZpZyxcbiAgICAgICAgICAgICAgICBjcmVkZW50aWFsczogY29uZmlnLmNyZWRlbnRpYWxzLFxuICAgICAgICAgICAgICAgIHJlZ2lvbjogY29uZmlnLnNpZ25pbmdSZWdpb24sXG4gICAgICAgICAgICAgICAgc2VydmljZTogY29uZmlnLnNpZ25pbmdOYW1lLFxuICAgICAgICAgICAgICAgIHNoYTI1NixcbiAgICAgICAgICAgICAgICB1cmlFc2NhcGVQYXRoOiBzaWduaW5nRXNjYXBlUGF0aCxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBjb25zdCBTaWduZXJDdG9yID0gY29uZmlnLnNpZ25lckNvbnN0cnVjdG9yIHx8IFNpZ25hdHVyZVY0O1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBTaWduZXJDdG9yKHBhcmFtcyk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgc2lnbmVyID0gYXN5bmMgKGF1dGhTY2hlbWUpID0+IHtcbiAgICAgICAgICAgIGF1dGhTY2hlbWUgPSBPYmplY3QuYXNzaWduKHt9LCB7XG4gICAgICAgICAgICAgICAgbmFtZTogXCJzaWd2NFwiLFxuICAgICAgICAgICAgICAgIHNpZ25pbmdOYW1lOiBjb25maWcuc2lnbmluZ05hbWUgfHwgY29uZmlnLmRlZmF1bHRTaWduaW5nTmFtZSxcbiAgICAgICAgICAgICAgICBzaWduaW5nUmVnaW9uOiBhd2FpdCBub3JtYWxpemVQcm92aWRlcihjb25maWcucmVnaW9uKSgpLFxuICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IHt9LFxuICAgICAgICAgICAgfSwgYXV0aFNjaGVtZSk7XG4gICAgICAgICAgICBjb25zdCBzaWduaW5nUmVnaW9uID0gYXV0aFNjaGVtZS5zaWduaW5nUmVnaW9uO1xuICAgICAgICAgICAgY29uc3Qgc2lnbmluZ1NlcnZpY2UgPSBhdXRoU2NoZW1lLnNpZ25pbmdOYW1lO1xuICAgICAgICAgICAgY29uZmlnLnNpZ25pbmdSZWdpb24gPSBjb25maWcuc2lnbmluZ1JlZ2lvbiB8fCBzaWduaW5nUmVnaW9uO1xuICAgICAgICAgICAgY29uZmlnLnNpZ25pbmdOYW1lID0gY29uZmlnLnNpZ25pbmdOYW1lIHx8IHNpZ25pbmdTZXJ2aWNlIHx8IGNvbmZpZy5zZXJ2aWNlSWQ7XG4gICAgICAgICAgICBjb25zdCBwYXJhbXMgPSB7XG4gICAgICAgICAgICAgICAgLi4uY29uZmlnLFxuICAgICAgICAgICAgICAgIGNyZWRlbnRpYWxzOiBjb25maWcuY3JlZGVudGlhbHMsXG4gICAgICAgICAgICAgICAgcmVnaW9uOiBjb25maWcuc2lnbmluZ1JlZ2lvbixcbiAgICAgICAgICAgICAgICBzZXJ2aWNlOiBjb25maWcuc2lnbmluZ05hbWUsXG4gICAgICAgICAgICAgICAgc2hhMjU2LFxuICAgICAgICAgICAgICAgIHVyaUVzY2FwZVBhdGg6IHNpZ25pbmdFc2NhcGVQYXRoLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGNvbnN0IFNpZ25lckN0b3IgPSBjb25maWcuc2lnbmVyQ29uc3RydWN0b3IgfHwgU2lnbmF0dXJlVjQ7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFNpZ25lckN0b3IocGFyYW1zKTtcbiAgICAgICAgfTtcbiAgICB9XG4gICAgY29uc3QgcmVzb2x2ZWRDb25maWcgPSBPYmplY3QuYXNzaWduKGNvbmZpZywge1xuICAgICAgICBzeXN0ZW1DbG9ja09mZnNldCxcbiAgICAgICAgc2lnbmluZ0VzY2FwZVBhdGgsXG4gICAgICAgIHNpZ25lcixcbiAgICB9KTtcbiAgICByZXR1cm4gcmVzb2x2ZWRDb25maWc7XG59O1xuZXhwb3J0IGNvbnN0IHJlc29sdmVBV1NTREtTaWdWNENvbmZpZyA9IHJlc29sdmVBd3NTZGtTaWdWNENvbmZpZztcbmZ1bmN0aW9uIG5vcm1hbGl6ZUNyZWRlbnRpYWxQcm92aWRlcihjb25maWcsIHsgY3JlZGVudGlhbHMsIGNyZWRlbnRpYWxEZWZhdWx0UHJvdmlkZXIsIH0pIHtcbiAgICBsZXQgY3JlZGVudGlhbHNQcm92aWRlcjtcbiAgICBpZiAoY3JlZGVudGlhbHMpIHtcbiAgICAgICAgaWYgKCFjcmVkZW50aWFscz8ubWVtb2l6ZWQpIHtcbiAgICAgICAgICAgIGNyZWRlbnRpYWxzUHJvdmlkZXIgPSBtZW1vaXplSWRlbnRpdHlQcm92aWRlcihjcmVkZW50aWFscywgaXNJZGVudGl0eUV4cGlyZWQsIGRvZXNJZGVudGl0eVJlcXVpcmVSZWZyZXNoKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNyZWRlbnRpYWxzUHJvdmlkZXIgPSBjcmVkZW50aWFscztcbiAgICAgICAgfVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgaWYgKGNyZWRlbnRpYWxEZWZhdWx0UHJvdmlkZXIpIHtcbiAgICAgICAgICAgIGNyZWRlbnRpYWxzUHJvdmlkZXIgPSBub3JtYWxpemVQcm92aWRlcihjcmVkZW50aWFsRGVmYXVsdFByb3ZpZGVyKE9iamVjdC5hc3NpZ24oe30sIGNvbmZpZywge1xuICAgICAgICAgICAgICAgIHBhcmVudENsaWVudENvbmZpZzogY29uZmlnLFxuICAgICAgICAgICAgfSkpKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNyZWRlbnRpYWxzUHJvdmlkZXIgPSBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQGF3cy1zZGsvY29yZTo6cmVzb2x2ZUF3c1Nka1NpZ1Y0Q29uZmlnIC0gYGNyZWRlbnRpYWxzYCBub3QgcHJvdmlkZWQgYW5kIG5vIGNyZWRlbnRpYWxEZWZhdWx0UHJvdmlkZXIgd2FzIGNvbmZpZ3VyZWQuXCIpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjcmVkZW50aWFsc1Byb3ZpZGVyLm1lbW9pemVkID0gdHJ1ZTtcbiAgICByZXR1cm4gY3JlZGVudGlhbHNQcm92aWRlcjtcbn1cbmZ1bmN0aW9uIGJpbmRDYWxsZXJDb25maWcoY29uZmlnLCBjcmVkZW50aWFsc1Byb3ZpZGVyKSB7XG4gICAgaWYgKGNyZWRlbnRpYWxzUHJvdmlkZXIuY29uZmlnQm91bmQpIHtcbiAgICAgICAgcmV0dXJuIGNyZWRlbnRpYWxzUHJvdmlkZXI7XG4gICAgfVxuICAgIGNvbnN0IGZuID0gYXN5bmMgKG9wdGlvbnMpID0+IGNyZWRlbnRpYWxzUHJvdmlkZXIoeyAuLi5vcHRpb25zLCBjYWxsZXJDbGllbnRDb25maWc6IGNvbmZpZyB9KTtcbiAgICBmbi5tZW1vaXplZCA9IGNyZWRlbnRpYWxzUHJvdmlkZXIubWVtb2l6ZWQ7XG4gICAgZm4uY29uZmlnQm91bmQgPSB0cnVlO1xuICAgIHJldHVybiBmbjtcbn1cbiIsICJleHBvcnQgeyBBd3NTZGtTaWdWNFNpZ25lciwgQVdTU0RLU2lnVjRTaWduZXIsIHZhbGlkYXRlU2lnbmluZ1Byb3BlcnRpZXMgfSBmcm9tIFwiLi9Bd3NTZGtTaWdWNFNpZ25lclwiO1xuZXhwb3J0IHsgQXdzU2RrU2lnVjRBU2lnbmVyIH0gZnJvbSBcIi4vQXdzU2RrU2lnVjRBU2lnbmVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9OT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfT1BUSU9OU1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcmVzb2x2ZUF3c1Nka1NpZ1Y0QUNvbmZpZ1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcmVzb2x2ZUF3c1Nka1NpZ1Y0Q29uZmlnXCI7XG4iLCAiZXhwb3J0ICogZnJvbSBcIi4vYXdzX3Nka1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vdXRpbHMvZ2V0QmVhcmVyVG9rZW5FbnZLZXlcIjtcbiIsICJpbXBvcnQgeyBOb3JtYWxpemVkU2NoZW1hLCBUeXBlUmVnaXN0cnkgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3NjaGVtYVwiO1xuaW1wb3J0IHsgZGVjb3JhdGVTZXJ2aWNlRXhjZXB0aW9uIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuZXhwb3J0IGNsYXNzIFByb3RvY29sTGliIHtcbiAgICBxdWVyeUNvbXBhdDtcbiAgICBjb25zdHJ1Y3RvcihxdWVyeUNvbXBhdCA9IGZhbHNlKSB7XG4gICAgICAgIHRoaXMucXVlcnlDb21wYXQgPSBxdWVyeUNvbXBhdDtcbiAgICB9XG4gICAgcmVzb2x2ZVJlc3RDb250ZW50VHlwZShkZWZhdWx0Q29udGVudFR5cGUsIGlucHV0U2NoZW1hKSB7XG4gICAgICAgIGNvbnN0IG1lbWJlcnMgPSBpbnB1dFNjaGVtYS5nZXRNZW1iZXJTY2hlbWFzKCk7XG4gICAgICAgIGNvbnN0IGh0dHBQYXlsb2FkTWVtYmVyID0gT2JqZWN0LnZhbHVlcyhtZW1iZXJzKS5maW5kKChtKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gISFtLmdldE1lcmdlZFRyYWl0cygpLmh0dHBQYXlsb2FkO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGh0dHBQYXlsb2FkTWVtYmVyKSB7XG4gICAgICAgICAgICBjb25zdCBtZWRpYVR5cGUgPSBodHRwUGF5bG9hZE1lbWJlci5nZXRNZXJnZWRUcmFpdHMoKS5tZWRpYVR5cGU7XG4gICAgICAgICAgICBpZiAobWVkaWFUeXBlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1lZGlhVHlwZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGh0dHBQYXlsb2FkTWVtYmVyLmlzU3RyaW5nU2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJ0ZXh0L3BsYWluXCI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChodHRwUGF5bG9hZE1lbWJlci5pc0Jsb2JTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBcImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbVwiO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRDb250ZW50VHlwZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICghaW5wdXRTY2hlbWEuaXNVbml0U2NoZW1hKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IGhhc0JvZHkgPSBPYmplY3QudmFsdWVzKG1lbWJlcnMpLmZpbmQoKG0pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGh0dHBRdWVyeSwgaHR0cFF1ZXJ5UGFyYW1zLCBodHRwSGVhZGVyLCBodHRwTGFiZWwsIGh0dHBQcmVmaXhIZWFkZXJzIH0gPSBtLmdldE1lcmdlZFRyYWl0cygpO1xuICAgICAgICAgICAgICAgIGNvbnN0IG5vUHJlZml4SGVhZGVycyA9IGh0dHBQcmVmaXhIZWFkZXJzID09PSB2b2lkIDA7XG4gICAgICAgICAgICAgICAgcmV0dXJuICFodHRwUXVlcnkgJiYgIWh0dHBRdWVyeVBhcmFtcyAmJiAhaHR0cEhlYWRlciAmJiAhaHR0cExhYmVsICYmIG5vUHJlZml4SGVhZGVycztcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWYgKGhhc0JvZHkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZGVmYXVsdENvbnRlbnRUeXBlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGFzeW5jIGdldEVycm9yU2NoZW1hT3JUaHJvd0Jhc2VFeGNlcHRpb24oZXJyb3JJZGVudGlmaWVyLCBkZWZhdWx0TmFtZXNwYWNlLCByZXNwb25zZSwgZGF0YU9iamVjdCwgbWV0YWRhdGEsIGdldEVycm9yU2NoZW1hKSB7XG4gICAgICAgIGxldCBuYW1lc3BhY2UgPSBkZWZhdWx0TmFtZXNwYWNlO1xuICAgICAgICBsZXQgZXJyb3JOYW1lID0gZXJyb3JJZGVudGlmaWVyO1xuICAgICAgICBpZiAoZXJyb3JJZGVudGlmaWVyLmluY2x1ZGVzKFwiI1wiKSkge1xuICAgICAgICAgICAgW25hbWVzcGFjZSwgZXJyb3JOYW1lXSA9IGVycm9ySWRlbnRpZmllci5zcGxpdChcIiNcIik7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZXJyb3JNZXRhZGF0YSA9IHtcbiAgICAgICAgICAgICRtZXRhZGF0YTogbWV0YWRhdGEsXG4gICAgICAgICAgICAkZmF1bHQ6IHJlc3BvbnNlLnN0YXR1c0NvZGUgPCA1MDAgPyBcImNsaWVudFwiIDogXCJzZXJ2ZXJcIixcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgcmVnaXN0cnkgPSBUeXBlUmVnaXN0cnkuZm9yKG5hbWVzcGFjZSk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBlcnJvclNjaGVtYSA9IGdldEVycm9yU2NoZW1hPy4ocmVnaXN0cnksIGVycm9yTmFtZSkgPz8gcmVnaXN0cnkuZ2V0U2NoZW1hKGVycm9ySWRlbnRpZmllcik7XG4gICAgICAgICAgICByZXR1cm4geyBlcnJvclNjaGVtYSwgZXJyb3JNZXRhZGF0YSB9O1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICBkYXRhT2JqZWN0Lm1lc3NhZ2UgPSBkYXRhT2JqZWN0Lm1lc3NhZ2UgPz8gZGF0YU9iamVjdC5NZXNzYWdlID8/IFwiVW5rbm93bkVycm9yXCI7XG4gICAgICAgICAgICBjb25zdCBzeW50aGV0aWMgPSBUeXBlUmVnaXN0cnkuZm9yKFwic21pdGh5LnRzLnNkay5zeW50aGV0aWMuXCIgKyBuYW1lc3BhY2UpO1xuICAgICAgICAgICAgY29uc3QgYmFzZUV4Y2VwdGlvblNjaGVtYSA9IHN5bnRoZXRpYy5nZXRCYXNlRXhjZXB0aW9uKCk7XG4gICAgICAgICAgICBpZiAoYmFzZUV4Y2VwdGlvblNjaGVtYSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IEVycm9yQ3RvciA9IHN5bnRoZXRpYy5nZXRFcnJvckN0b3IoYmFzZUV4Y2VwdGlvblNjaGVtYSkgPz8gRXJyb3I7XG4gICAgICAgICAgICAgICAgdGhyb3cgdGhpcy5kZWNvcmF0ZVNlcnZpY2VFeGNlcHRpb24oT2JqZWN0LmFzc2lnbihuZXcgRXJyb3JDdG9yKHsgbmFtZTogZXJyb3JOYW1lIH0pLCBlcnJvck1ldGFkYXRhKSwgZGF0YU9iamVjdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyB0aGlzLmRlY29yYXRlU2VydmljZUV4Y2VwdGlvbihPYmplY3QuYXNzaWduKG5ldyBFcnJvcihlcnJvck5hbWUpLCBlcnJvck1ldGFkYXRhKSwgZGF0YU9iamVjdCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZGVjb3JhdGVTZXJ2aWNlRXhjZXB0aW9uKGV4Y2VwdGlvbiwgYWRkaXRpb25zID0ge30pIHtcbiAgICAgICAgaWYgKHRoaXMucXVlcnlDb21wYXQpIHtcbiAgICAgICAgICAgIGNvbnN0IG1zZyA9IGV4Y2VwdGlvbi5NZXNzYWdlID8/IGFkZGl0aW9ucy5NZXNzYWdlO1xuICAgICAgICAgICAgY29uc3QgZXJyb3IgPSBkZWNvcmF0ZVNlcnZpY2VFeGNlcHRpb24oZXhjZXB0aW9uLCBhZGRpdGlvbnMpO1xuICAgICAgICAgICAgaWYgKG1zZykge1xuICAgICAgICAgICAgICAgIGVycm9yLm1lc3NhZ2UgPSBtc2c7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlcnJvci5FcnJvciA9IHtcbiAgICAgICAgICAgICAgICAuLi5lcnJvci5FcnJvcixcbiAgICAgICAgICAgICAgICBUeXBlOiBlcnJvci5FcnJvcj8uVHlwZSxcbiAgICAgICAgICAgICAgICBDb2RlOiBlcnJvci5FcnJvcj8uQ29kZSxcbiAgICAgICAgICAgICAgICBNZXNzYWdlOiBlcnJvci5FcnJvcj8ubWVzc2FnZSA/PyBlcnJvci5FcnJvcj8uTWVzc2FnZSA/PyBtc2csXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY29uc3QgcmVxSWQgPSBlcnJvci4kbWV0YWRhdGEucmVxdWVzdElkO1xuICAgICAgICAgICAgaWYgKHJlcUlkKSB7XG4gICAgICAgICAgICAgICAgZXJyb3IuUmVxdWVzdElkID0gcmVxSWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZXJyb3I7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRlY29yYXRlU2VydmljZUV4Y2VwdGlvbihleGNlcHRpb24sIGFkZGl0aW9ucyk7XG4gICAgfVxuICAgIHNldFF1ZXJ5Q29tcGF0RXJyb3Iob3V0cHV0LCByZXNwb25zZSkge1xuICAgICAgICBjb25zdCBxdWVyeUVycm9ySGVhZGVyID0gcmVzcG9uc2UuaGVhZGVycz8uW1wieC1hbXpuLXF1ZXJ5LWVycm9yXCJdO1xuICAgICAgICBpZiAob3V0cHV0ICE9PSB1bmRlZmluZWQgJiYgcXVlcnlFcnJvckhlYWRlciAhPSBudWxsKSB7XG4gICAgICAgICAgICBjb25zdCBbQ29kZSwgVHlwZV0gPSBxdWVyeUVycm9ySGVhZGVyLnNwbGl0KFwiO1wiKTtcbiAgICAgICAgICAgIGNvbnN0IGVudHJpZXMgPSBPYmplY3QuZW50cmllcyhvdXRwdXQpO1xuICAgICAgICAgICAgY29uc3QgRXJyb3IgPSB7XG4gICAgICAgICAgICAgICAgQ29kZSxcbiAgICAgICAgICAgICAgICBUeXBlLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24ob3V0cHV0LCBFcnJvcik7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IFtrLCB2XSBvZiBlbnRyaWVzKSB7XG4gICAgICAgICAgICAgICAgRXJyb3JbayA9PT0gXCJtZXNzYWdlXCIgPyBcIk1lc3NhZ2VcIiA6IGtdID0gdjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlbGV0ZSBFcnJvci5fX3R5cGU7XG4gICAgICAgICAgICBvdXRwdXQuRXJyb3IgPSBFcnJvcjtcbiAgICAgICAgfVxuICAgIH1cbiAgICBxdWVyeUNvbXBhdE91dHB1dChxdWVyeUNvbXBhdEVycm9yRGF0YSwgZXJyb3JEYXRhKSB7XG4gICAgICAgIGlmIChxdWVyeUNvbXBhdEVycm9yRGF0YS5FcnJvcikge1xuICAgICAgICAgICAgZXJyb3JEYXRhLkVycm9yID0gcXVlcnlDb21wYXRFcnJvckRhdGEuRXJyb3I7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHF1ZXJ5Q29tcGF0RXJyb3JEYXRhLlR5cGUpIHtcbiAgICAgICAgICAgIGVycm9yRGF0YS5UeXBlID0gcXVlcnlDb21wYXRFcnJvckRhdGEuVHlwZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocXVlcnlDb21wYXRFcnJvckRhdGEuQ29kZSkge1xuICAgICAgICAgICAgZXJyb3JEYXRhLkNvZGUgPSBxdWVyeUNvbXBhdEVycm9yRGF0YS5Db2RlO1xuICAgICAgICB9XG4gICAgfVxuICAgIGZpbmRRdWVyeUNvbXBhdGlibGVFcnJvcihyZWdpc3RyeSwgZXJyb3JOYW1lKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gcmVnaXN0cnkuZ2V0U2NoZW1hKGVycm9yTmFtZSk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHJldHVybiByZWdpc3RyeS5maW5kKChzY2hlbWEpID0+IE5vcm1hbGl6ZWRTY2hlbWEub2Yoc2NoZW1hKS5nZXRNZXJnZWRUcmFpdHMoKS5hd3NRdWVyeUVycm9yPy5bMF0gPT09IGVycm9yTmFtZSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgbG9hZFNtaXRoeVJwY1YyQ2JvckVycm9yQ29kZSwgU21pdGh5UnBjVjJDYm9yUHJvdG9jb2wgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL2Nib3JcIjtcbmltcG9ydCB7IE5vcm1hbGl6ZWRTY2hlbWEsIFR5cGVSZWdpc3RyeSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2NoZW1hXCI7XG5pbXBvcnQgeyBQcm90b2NvbExpYiB9IGZyb20gXCIuLi9Qcm90b2NvbExpYlwiO1xuZXhwb3J0IGNsYXNzIEF3c1NtaXRoeVJwY1YyQ2JvclByb3RvY29sIGV4dGVuZHMgU21pdGh5UnBjVjJDYm9yUHJvdG9jb2wge1xuICAgIGF3c1F1ZXJ5Q29tcGF0aWJsZTtcbiAgICBtaXhpbjtcbiAgICBjb25zdHJ1Y3Rvcih7IGRlZmF1bHROYW1lc3BhY2UsIGF3c1F1ZXJ5Q29tcGF0aWJsZSwgfSkge1xuICAgICAgICBzdXBlcih7IGRlZmF1bHROYW1lc3BhY2UgfSk7XG4gICAgICAgIHRoaXMuYXdzUXVlcnlDb21wYXRpYmxlID0gISFhd3NRdWVyeUNvbXBhdGlibGU7XG4gICAgICAgIHRoaXMubWl4aW4gPSBuZXcgUHJvdG9jb2xMaWIodGhpcy5hd3NRdWVyeUNvbXBhdGlibGUpO1xuICAgIH1cbiAgICBhc3luYyBzZXJpYWxpemVSZXF1ZXN0KG9wZXJhdGlvblNjaGVtYSwgaW5wdXQsIGNvbnRleHQpIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IGF3YWl0IHN1cGVyLnNlcmlhbGl6ZVJlcXVlc3Qob3BlcmF0aW9uU2NoZW1hLCBpbnB1dCwgY29udGV4dCk7XG4gICAgICAgIGlmICh0aGlzLmF3c1F1ZXJ5Q29tcGF0aWJsZSkge1xuICAgICAgICAgICAgcmVxdWVzdC5oZWFkZXJzW1wieC1hbXpuLXF1ZXJ5LW1vZGVcIl0gPSBcInRydWVcIjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVxdWVzdDtcbiAgICB9XG4gICAgYXN5bmMgaGFuZGxlRXJyb3Iob3BlcmF0aW9uU2NoZW1hLCBjb250ZXh0LCByZXNwb25zZSwgZGF0YU9iamVjdCwgbWV0YWRhdGEpIHtcbiAgICAgICAgaWYgKHRoaXMuYXdzUXVlcnlDb21wYXRpYmxlKSB7XG4gICAgICAgICAgICB0aGlzLm1peGluLnNldFF1ZXJ5Q29tcGF0RXJyb3IoZGF0YU9iamVjdCwgcmVzcG9uc2UpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGVycm9yTmFtZSA9ICgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjb21wYXRIZWFkZXIgPSByZXNwb25zZS5oZWFkZXJzW1wieC1hbXpuLXF1ZXJ5LWVycm9yXCJdO1xuICAgICAgICAgICAgaWYgKGNvbXBhdEhlYWRlciAmJiB0aGlzLmF3c1F1ZXJ5Q29tcGF0aWJsZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBjb21wYXRIZWFkZXIuc3BsaXQoXCI7XCIpWzBdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGxvYWRTbWl0aHlScGNWMkNib3JFcnJvckNvZGUocmVzcG9uc2UsIGRhdGFPYmplY3QpID8/IFwiVW5rbm93blwiO1xuICAgICAgICB9KSgpO1xuICAgICAgICBjb25zdCB7IGVycm9yU2NoZW1hLCBlcnJvck1ldGFkYXRhIH0gPSBhd2FpdCB0aGlzLm1peGluLmdldEVycm9yU2NoZW1hT3JUaHJvd0Jhc2VFeGNlcHRpb24oZXJyb3JOYW1lLCB0aGlzLm9wdGlvbnMuZGVmYXVsdE5hbWVzcGFjZSwgcmVzcG9uc2UsIGRhdGFPYmplY3QsIG1ldGFkYXRhLCB0aGlzLmF3c1F1ZXJ5Q29tcGF0aWJsZSA/IHRoaXMubWl4aW4uZmluZFF1ZXJ5Q29tcGF0aWJsZUVycm9yIDogdW5kZWZpbmVkKTtcbiAgICAgICAgY29uc3QgbnMgPSBOb3JtYWxpemVkU2NoZW1hLm9mKGVycm9yU2NoZW1hKTtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGRhdGFPYmplY3QubWVzc2FnZSA/PyBkYXRhT2JqZWN0Lk1lc3NhZ2UgPz8gXCJVbmtub3duXCI7XG4gICAgICAgIGNvbnN0IEVycm9yQ3RvciA9IFR5cGVSZWdpc3RyeS5mb3IoZXJyb3JTY2hlbWFbMV0pLmdldEVycm9yQ3RvcihlcnJvclNjaGVtYSkgPz8gRXJyb3I7XG4gICAgICAgIGNvbnN0IGV4Y2VwdGlvbiA9IG5ldyBFcnJvckN0b3IobWVzc2FnZSk7XG4gICAgICAgIGNvbnN0IG91dHB1dCA9IHt9O1xuICAgICAgICBmb3IgKGNvbnN0IFtuYW1lLCBtZW1iZXJdIG9mIG5zLnN0cnVjdEl0ZXJhdG9yKCkpIHtcbiAgICAgICAgICAgIGlmIChkYXRhT2JqZWN0W25hbWVdICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICBvdXRwdXRbbmFtZV0gPSB0aGlzLmRlc2VyaWFsaXplci5yZWFkVmFsdWUobWVtYmVyLCBkYXRhT2JqZWN0W25hbWVdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5hd3NRdWVyeUNvbXBhdGlibGUpIHtcbiAgICAgICAgICAgIHRoaXMubWl4aW4ucXVlcnlDb21wYXRPdXRwdXQoZGF0YU9iamVjdCwgb3V0cHV0KTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyB0aGlzLm1peGluLmRlY29yYXRlU2VydmljZUV4Y2VwdGlvbihPYmplY3QuYXNzaWduKGV4Y2VwdGlvbiwgZXJyb3JNZXRhZGF0YSwge1xuICAgICAgICAgICAgJGZhdWx0OiBucy5nZXRNZXJnZWRUcmFpdHMoKS5lcnJvcixcbiAgICAgICAgICAgIG1lc3NhZ2UsXG4gICAgICAgIH0sIG91dHB1dCksIGRhdGFPYmplY3QpO1xuICAgIH1cbn1cbiIsICJleHBvcnQgY29uc3QgX3RvU3RyID0gKHZhbCkgPT4ge1xuICAgIGlmICh2YWwgPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gdmFsO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHZhbCA9PT0gXCJudW1iZXJcIiB8fCB0eXBlb2YgdmFsID09PSBcImJpZ2ludFwiKSB7XG4gICAgICAgIGNvbnN0IHdhcm5pbmcgPSBuZXcgRXJyb3IoYFJlY2VpdmVkIG51bWJlciAke3ZhbH0gd2hlcmUgYSBzdHJpbmcgd2FzIGV4cGVjdGVkLmApO1xuICAgICAgICB3YXJuaW5nLm5hbWUgPSBcIldhcm5pbmdcIjtcbiAgICAgICAgY29uc29sZS53YXJuKHdhcm5pbmcpO1xuICAgICAgICByZXR1cm4gU3RyaW5nKHZhbCk7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgdmFsID09PSBcImJvb2xlYW5cIikge1xuICAgICAgICBjb25zdCB3YXJuaW5nID0gbmV3IEVycm9yKGBSZWNlaXZlZCBib29sZWFuICR7dmFsfSB3aGVyZSBhIHN0cmluZyB3YXMgZXhwZWN0ZWQuYCk7XG4gICAgICAgIHdhcm5pbmcubmFtZSA9IFwiV2FybmluZ1wiO1xuICAgICAgICBjb25zb2xlLndhcm4od2FybmluZyk7XG4gICAgICAgIHJldHVybiBTdHJpbmcodmFsKTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbDtcbn07XG5leHBvcnQgY29uc3QgX3RvQm9vbCA9ICh2YWwpID0+IHtcbiAgICBpZiAodmFsID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHZhbDtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB2YWwgPT09IFwibnVtYmVyXCIpIHtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB2YWwgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgY29uc3QgbG93ZXJjYXNlID0gdmFsLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGlmICh2YWwgIT09IFwiXCIgJiYgbG93ZXJjYXNlICE9PSBcImZhbHNlXCIgJiYgbG93ZXJjYXNlICE9PSBcInRydWVcIikge1xuICAgICAgICAgICAgY29uc3Qgd2FybmluZyA9IG5ldyBFcnJvcihgUmVjZWl2ZWQgc3RyaW5nIFwiJHt2YWx9XCIgd2hlcmUgYSBib29sZWFuIHdhcyBleHBlY3RlZC5gKTtcbiAgICAgICAgICAgIHdhcm5pbmcubmFtZSA9IFwiV2FybmluZ1wiO1xuICAgICAgICAgICAgY29uc29sZS53YXJuKHdhcm5pbmcpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWwgIT09IFwiXCIgJiYgbG93ZXJjYXNlICE9PSBcImZhbHNlXCI7XG4gICAgfVxuICAgIHJldHVybiB2YWw7XG59O1xuZXhwb3J0IGNvbnN0IF90b051bSA9ICh2YWwpID0+IHtcbiAgICBpZiAodmFsID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHZhbDtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB2YWwgPT09IFwiYm9vbGVhblwiKSB7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgdmFsID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIGNvbnN0IG51bSA9IE51bWJlcih2YWwpO1xuICAgICAgICBpZiAobnVtLnRvU3RyaW5nKCkgIT09IHZhbCkge1xuICAgICAgICAgICAgY29uc3Qgd2FybmluZyA9IG5ldyBFcnJvcihgUmVjZWl2ZWQgc3RyaW5nIFwiJHt2YWx9XCIgd2hlcmUgYSBudW1iZXIgd2FzIGV4cGVjdGVkLmApO1xuICAgICAgICAgICAgd2FybmluZy5uYW1lID0gXCJXYXJuaW5nXCI7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4od2FybmluZyk7XG4gICAgICAgICAgICByZXR1cm4gdmFsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudW07XG4gICAgfVxuICAgIHJldHVybiB2YWw7XG59O1xuIiwgImV4cG9ydCBjbGFzcyBTZXJkZUNvbnRleHRDb25maWcge1xuICAgIHNlcmRlQ29udGV4dDtcbiAgICBzZXRTZXJkZUNvbnRleHQoc2VyZGVDb250ZXh0KSB7XG4gICAgICAgIHRoaXMuc2VyZGVDb250ZXh0ID0gc2VyZGVDb250ZXh0O1xuICAgIH1cbn1cbiIsICJleHBvcnQgY2xhc3MgVW5pb25TZXJkZSB7XG4gICAgZnJvbTtcbiAgICB0bztcbiAgICBrZXlzO1xuICAgIGNvbnN0cnVjdG9yKGZyb20sIHRvKSB7XG4gICAgICAgIHRoaXMuZnJvbSA9IGZyb207XG4gICAgICAgIHRoaXMudG8gPSB0bztcbiAgICAgICAgdGhpcy5rZXlzID0gbmV3IFNldChPYmplY3Qua2V5cyh0aGlzLmZyb20pLmZpbHRlcigoaykgPT4gayAhPT0gXCJfX3R5cGVcIikpO1xuICAgIH1cbiAgICBtYXJrKGtleSkge1xuICAgICAgICB0aGlzLmtleXMuZGVsZXRlKGtleSk7XG4gICAgfVxuICAgIGhhc1Vua25vd24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmtleXMuc2l6ZSA9PT0gMSAmJiBPYmplY3Qua2V5cyh0aGlzLnRvKS5sZW5ndGggPT09IDA7XG4gICAgfVxuICAgIHdyaXRlVW5rbm93bigpIHtcbiAgICAgICAgaWYgKHRoaXMuaGFzVW5rbm93bigpKSB7XG4gICAgICAgICAgICBjb25zdCBrID0gdGhpcy5rZXlzLnZhbHVlcygpLm5leHQoKS52YWx1ZTtcbiAgICAgICAgICAgIGNvbnN0IHYgPSB0aGlzLmZyb21ba107XG4gICAgICAgICAgICB0aGlzLnRvLiR1bmtub3duID0gW2ssIHZdO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwgImltcG9ydCB7IE51bWVyaWNWYWx1ZSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2VyZGVcIjtcbmV4cG9ydCBmdW5jdGlvbiBqc29uUmV2aXZlcihrZXksIHZhbHVlLCBjb250ZXh0KSB7XG4gICAgaWYgKGNvbnRleHQ/LnNvdXJjZSkge1xuICAgICAgICBjb25zdCBudW1lcmljU3RyaW5nID0gY29udGV4dC5zb3VyY2U7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZSA+IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSIHx8IHZhbHVlIDwgTnVtYmVyLk1JTl9TQUZFX0lOVEVHRVIgfHwgbnVtZXJpY1N0cmluZyAhPT0gU3RyaW5nKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzRnJhY3Rpb25hbCA9IG51bWVyaWNTdHJpbmcuaW5jbHVkZXMoXCIuXCIpO1xuICAgICAgICAgICAgICAgIGlmIChpc0ZyYWN0aW9uYWwpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBOdW1lcmljVmFsdWUobnVtZXJpY1N0cmluZywgXCJiaWdEZWNpbWFsXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEJpZ0ludChudW1lcmljU3RyaW5nKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlO1xufVxuIiwgImltcG9ydCB7IGNvbGxlY3RCb2R5IH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgdG9VdGY4IH0gZnJvbSBcIkBzbWl0aHkvdXRpbC11dGY4XCI7XG5leHBvcnQgY29uc3QgY29sbGVjdEJvZHlTdHJpbmcgPSAoc3RyZWFtQm9keSwgY29udGV4dCkgPT4gY29sbGVjdEJvZHkoc3RyZWFtQm9keSwgY29udGV4dCkudGhlbigoYm9keSkgPT4gKGNvbnRleHQ/LnV0ZjhFbmNvZGVyID8/IHRvVXRmOCkoYm9keSkpO1xuIiwgImltcG9ydCB7IGNvbGxlY3RCb2R5U3RyaW5nIH0gZnJvbSBcIi4uL2NvbW1vblwiO1xuZXhwb3J0IGNvbnN0IHBhcnNlSnNvbkJvZHkgPSAoc3RyZWFtQm9keSwgY29udGV4dCkgPT4gY29sbGVjdEJvZHlTdHJpbmcoc3RyZWFtQm9keSwgY29udGV4dCkudGhlbigoZW5jb2RlZCkgPT4ge1xuICAgIGlmIChlbmNvZGVkLmxlbmd0aCkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoZW5jb2RlZCk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIGlmIChlPy5uYW1lID09PSBcIlN5bnRheEVycm9yXCIpIHtcbiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwgXCIkcmVzcG9uc2VCb2R5VGV4dFwiLCB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBlbmNvZGVkLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4ge307XG59KTtcbmV4cG9ydCBjb25zdCBwYXJzZUpzb25FcnJvckJvZHkgPSBhc3luYyAoZXJyb3JCb2R5LCBjb250ZXh0KSA9PiB7XG4gICAgY29uc3QgdmFsdWUgPSBhd2FpdCBwYXJzZUpzb25Cb2R5KGVycm9yQm9keSwgY29udGV4dCk7XG4gICAgdmFsdWUubWVzc2FnZSA9IHZhbHVlLm1lc3NhZ2UgPz8gdmFsdWUuTWVzc2FnZTtcbiAgICByZXR1cm4gdmFsdWU7XG59O1xuZXhwb3J0IGNvbnN0IGxvYWRSZXN0SnNvbkVycm9yQ29kZSA9IChvdXRwdXQsIGRhdGEpID0+IHtcbiAgICBjb25zdCBmaW5kS2V5ID0gKG9iamVjdCwga2V5KSA9PiBPYmplY3Qua2V5cyhvYmplY3QpLmZpbmQoKGspID0+IGsudG9Mb3dlckNhc2UoKSA9PT0ga2V5LnRvTG93ZXJDYXNlKCkpO1xuICAgIGNvbnN0IHNhbml0aXplRXJyb3JDb2RlID0gKHJhd1ZhbHVlKSA9PiB7XG4gICAgICAgIGxldCBjbGVhblZhbHVlID0gcmF3VmFsdWU7XG4gICAgICAgIGlmICh0eXBlb2YgY2xlYW5WYWx1ZSA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgY2xlYW5WYWx1ZSA9IGNsZWFuVmFsdWUudG9TdHJpbmcoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2xlYW5WYWx1ZS5pbmRleE9mKFwiLFwiKSA+PSAwKSB7XG4gICAgICAgICAgICBjbGVhblZhbHVlID0gY2xlYW5WYWx1ZS5zcGxpdChcIixcIilbMF07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNsZWFuVmFsdWUuaW5kZXhPZihcIjpcIikgPj0gMCkge1xuICAgICAgICAgICAgY2xlYW5WYWx1ZSA9IGNsZWFuVmFsdWUuc3BsaXQoXCI6XCIpWzBdO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjbGVhblZhbHVlLmluZGV4T2YoXCIjXCIpID49IDApIHtcbiAgICAgICAgICAgIGNsZWFuVmFsdWUgPSBjbGVhblZhbHVlLnNwbGl0KFwiI1wiKVsxXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY2xlYW5WYWx1ZTtcbiAgICB9O1xuICAgIGNvbnN0IGhlYWRlcktleSA9IGZpbmRLZXkob3V0cHV0LmhlYWRlcnMsIFwieC1hbXpuLWVycm9ydHlwZVwiKTtcbiAgICBpZiAoaGVhZGVyS2V5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIHNhbml0aXplRXJyb3JDb2RlKG91dHB1dC5oZWFkZXJzW2hlYWRlcktleV0pO1xuICAgIH1cbiAgICBpZiAoZGF0YSAmJiB0eXBlb2YgZGF0YSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICBjb25zdCBjb2RlS2V5ID0gZmluZEtleShkYXRhLCBcImNvZGVcIik7XG4gICAgICAgIGlmIChjb2RlS2V5ICYmIGRhdGFbY29kZUtleV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHNhbml0aXplRXJyb3JDb2RlKGRhdGFbY29kZUtleV0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhW1wiX190eXBlXCJdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBzYW5pdGl6ZUVycm9yQ29kZShkYXRhW1wiX190eXBlXCJdKTtcbiAgICAgICAgfVxuICAgIH1cbn07XG4iLCAiaW1wb3J0IHsgZGV0ZXJtaW5lVGltZXN0YW1wRm9ybWF0IH0gZnJvbSBcIkBzbWl0aHkvY29yZS9wcm90b2NvbHNcIjtcbmltcG9ydCB7IE5vcm1hbGl6ZWRTY2hlbWEgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3NjaGVtYVwiO1xuaW1wb3J0IHsgTGF6eUpzb25TdHJpbmcsIE51bWVyaWNWYWx1ZSwgcGFyc2VFcG9jaFRpbWVzdGFtcCwgcGFyc2VSZmMzMzM5RGF0ZVRpbWVXaXRoT2Zmc2V0LCBwYXJzZVJmYzcyMzFEYXRlVGltZSwgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3NlcmRlXCI7XG5pbXBvcnQgeyBmcm9tQmFzZTY0IH0gZnJvbSBcIkBzbWl0aHkvdXRpbC1iYXNlNjRcIjtcbmltcG9ydCB7IFNlcmRlQ29udGV4dENvbmZpZyB9IGZyb20gXCIuLi9Db25maWd1cmFibGVTZXJkZUNvbnRleHRcIjtcbmltcG9ydCB7IFVuaW9uU2VyZGUgfSBmcm9tIFwiLi4vVW5pb25TZXJkZVwiO1xuaW1wb3J0IHsganNvblJldml2ZXIgfSBmcm9tIFwiLi9qc29uUmV2aXZlclwiO1xuaW1wb3J0IHsgcGFyc2VKc29uQm9keSB9IGZyb20gXCIuL3BhcnNlSnNvbkJvZHlcIjtcbmV4cG9ydCBjbGFzcyBKc29uU2hhcGVEZXNlcmlhbGl6ZXIgZXh0ZW5kcyBTZXJkZUNvbnRleHRDb25maWcge1xuICAgIHNldHRpbmdzO1xuICAgIGNvbnN0cnVjdG9yKHNldHRpbmdzKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuc2V0dGluZ3MgPSBzZXR0aW5ncztcbiAgICB9XG4gICAgYXN5bmMgcmVhZChzY2hlbWEsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlYWQoc2NoZW1hLCB0eXBlb2YgZGF0YSA9PT0gXCJzdHJpbmdcIiA/IEpTT04ucGFyc2UoZGF0YSwganNvblJldml2ZXIpIDogYXdhaXQgcGFyc2VKc29uQm9keShkYXRhLCB0aGlzLnNlcmRlQ29udGV4dCkpO1xuICAgIH1cbiAgICByZWFkT2JqZWN0KHNjaGVtYSwgZGF0YSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVhZChzY2hlbWEsIGRhdGEpO1xuICAgIH1cbiAgICBfcmVhZChzY2hlbWEsIHZhbHVlKSB7XG4gICAgICAgIGNvbnN0IGlzT2JqZWN0ID0gdmFsdWUgIT09IG51bGwgJiYgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiO1xuICAgICAgICBjb25zdCBucyA9IE5vcm1hbGl6ZWRTY2hlbWEub2Yoc2NoZW1hKTtcbiAgICAgICAgaWYgKGlzT2JqZWN0KSB7XG4gICAgICAgICAgICBpZiAobnMuaXNTdHJ1Y3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlY29yZCA9IHZhbHVlO1xuICAgICAgICAgICAgICAgIGNvbnN0IHVuaW9uID0gbnMuaXNVbmlvblNjaGVtYSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IG91dCA9IHt9O1xuICAgICAgICAgICAgICAgIGxldCBuYW1lTWFwID0gdm9pZCAwO1xuICAgICAgICAgICAgICAgIGNvbnN0IHsganNvbk5hbWUgfSA9IHRoaXMuc2V0dGluZ3M7XG4gICAgICAgICAgICAgICAgaWYgKGpzb25OYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWVNYXAgPSB7fTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbGV0IHVuaW9uU2VyZGU7XG4gICAgICAgICAgICAgICAgaWYgKHVuaW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIHVuaW9uU2VyZGUgPSBuZXcgVW5pb25TZXJkZShyZWNvcmQsIG91dCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgW21lbWJlck5hbWUsIG1lbWJlclNjaGVtYV0gb2YgbnMuc3RydWN0SXRlcmF0b3IoKSkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgZnJvbUtleSA9IG1lbWJlck5hbWU7XG4gICAgICAgICAgICAgICAgICAgIGlmIChqc29uTmFtZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZnJvbUtleSA9IG1lbWJlclNjaGVtYS5nZXRNZXJnZWRUcmFpdHMoKS5qc29uTmFtZSA/PyBmcm9tS2V5O1xuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZU1hcFtmcm9tS2V5XSA9IG1lbWJlck5hbWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHVuaW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB1bmlvblNlcmRlLm1hcmsoZnJvbUtleSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlY29yZFtmcm9tS2V5XSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvdXRbbWVtYmVyTmFtZV0gPSB0aGlzLl9yZWFkKG1lbWJlclNjaGVtYSwgcmVjb3JkW2Zyb21LZXldKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodW5pb24pIHtcbiAgICAgICAgICAgICAgICAgICAgdW5pb25TZXJkZS53cml0ZVVua25vd24oKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAodHlwZW9mIHJlY29yZC5fX3R5cGUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBbaywgdl0gb2YgT2JqZWN0LmVudHJpZXMocmVjb3JkKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdCA9IGpzb25OYW1lID8gbmFtZU1hcFtrXSA/PyBrIDogaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghKHQgaW4gb3V0KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dFt0XSA9IHY7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIG91dDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSAmJiBucy5pc0xpc3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxpc3RNZW1iZXIgPSBucy5nZXRWYWx1ZVNjaGVtYSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IG91dCA9IFtdO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNwYXJzZSA9ICEhbnMuZ2V0TWVyZ2VkVHJhaXRzKCkuc3BhcnNlO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiB2YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoc3BhcnNlIHx8IGl0ZW0gIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3V0LnB1c2godGhpcy5fcmVhZChsaXN0TWVtYmVyLCBpdGVtKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIG91dDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChucy5pc01hcFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbWFwTWVtYmVyID0gbnMuZ2V0VmFsdWVTY2hlbWEoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBvdXQgPSB7fTtcbiAgICAgICAgICAgICAgICBjb25zdCBzcGFyc2UgPSAhIW5zLmdldE1lcmdlZFRyYWl0cygpLnNwYXJzZTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IFtfaywgX3ZdIG9mIE9iamVjdC5lbnRyaWVzKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoc3BhcnNlIHx8IF92ICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG91dFtfa10gPSB0aGlzLl9yZWFkKG1hcE1lbWJlciwgX3YpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBvdXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzQmxvYlNjaGVtYSgpICYmIHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgcmV0dXJuIGZyb21CYXNlNjQodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG1lZGlhVHlwZSA9IG5zLmdldE1lcmdlZFRyYWl0cygpLm1lZGlhVHlwZTtcbiAgICAgICAgaWYgKG5zLmlzU3RyaW5nU2NoZW1hKCkgJiYgdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiICYmIG1lZGlhVHlwZSkge1xuICAgICAgICAgICAgY29uc3QgaXNKc29uID0gbWVkaWFUeXBlID09PSBcImFwcGxpY2F0aW9uL2pzb25cIiB8fCBtZWRpYVR5cGUuZW5kc1dpdGgoXCIranNvblwiKTtcbiAgICAgICAgICAgIGlmIChpc0pzb24pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gTGF6eUpzb25TdHJpbmcuZnJvbSh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzVGltZXN0YW1wU2NoZW1hKCkgJiYgdmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc3QgZm9ybWF0ID0gZGV0ZXJtaW5lVGltZXN0YW1wRm9ybWF0KG5zLCB0aGlzLnNldHRpbmdzKTtcbiAgICAgICAgICAgIHN3aXRjaCAoZm9ybWF0KSB7XG4gICAgICAgICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcGFyc2VSZmMzMzM5RGF0ZVRpbWVXaXRoT2Zmc2V0KHZhbHVlKTtcbiAgICAgICAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZVJmYzcyMzFEYXRlVGltZSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgY2FzZSA3OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcGFyc2VFcG9jaFRpbWVzdGFtcCh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKFwiTWlzc2luZyB0aW1lc3RhbXAgZm9ybWF0LCBwYXJzaW5nIHZhbHVlIHdpdGggRGF0ZSBjb25zdHJ1Y3RvcjpcIiwgdmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IERhdGUodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChucy5pc0JpZ0ludGVnZXJTY2hlbWEoKSAmJiAodHlwZW9mIHZhbHVlID09PSBcIm51bWJlclwiIHx8IHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikpIHtcbiAgICAgICAgICAgIHJldHVybiBCaWdJbnQodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChucy5pc0JpZ0RlY2ltYWxTY2hlbWEoKSAmJiB2YWx1ZSAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIE51bWVyaWNWYWx1ZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHVudHlwZWQgPSB2YWx1ZTtcbiAgICAgICAgICAgIGlmICh1bnR5cGVkLnR5cGUgPT09IFwiYmlnRGVjaW1hbFwiICYmIFwic3RyaW5nXCIgaW4gdW50eXBlZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgTnVtZXJpY1ZhbHVlKHVudHlwZWQuc3RyaW5nLCB1bnR5cGVkLnR5cGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG5ldyBOdW1lcmljVmFsdWUoU3RyaW5nKHZhbHVlKSwgXCJiaWdEZWNpbWFsXCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChucy5pc051bWVyaWNTY2hlbWEoKSAmJiB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIHN3aXRjaCAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIFwiSW5maW5pdHlcIjpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEluZmluaXR5O1xuICAgICAgICAgICAgICAgIGNhc2UgXCItSW5maW5pdHlcIjpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1JbmZpbml0eTtcbiAgICAgICAgICAgICAgICBjYXNlIFwiTmFOXCI6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBOYU47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzRG9jdW1lbnRTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKGlzT2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3V0ID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyBbXSA6IHt9O1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodiBpbnN0YW5jZW9mIE51bWVyaWNWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3V0W2tdID0gdjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG91dFtrXSA9IHRoaXMuX3JlYWQobnMsIHYpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBvdXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3RydWN0dXJlZENsb25lKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IE51bWVyaWNWYWx1ZSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2VyZGVcIjtcbmNvbnN0IE5VTUVSSUNfQ09OVFJPTF9DSEFSID0gU3RyaW5nLmZyb21DaGFyQ29kZSg5MjUpO1xuZXhwb3J0IGNsYXNzIEpzb25SZXBsYWNlciB7XG4gICAgdmFsdWVzID0gbmV3IE1hcCgpO1xuICAgIGNvdW50ZXIgPSAwO1xuICAgIHN0YWdlID0gMDtcbiAgICBjcmVhdGVSZXBsYWNlcigpIHtcbiAgICAgICAgaWYgKHRoaXMuc3RhZ2UgPT09IDEpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkBhd3Mtc2RrL2NvcmUvcHJvdG9jb2xzIC0gSnNvblJlcGxhY2VyIGFscmVhZHkgY3JlYXRlZC5cIik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuc3RhZ2UgPT09IDIpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkBhd3Mtc2RrL2NvcmUvcHJvdG9jb2xzIC0gSnNvblJlcGxhY2VyIGV4aGF1c3RlZC5cIik7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zdGFnZSA9IDE7XG4gICAgICAgIHJldHVybiAoa2V5LCB2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgTnVtZXJpY1ZhbHVlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdiA9IGAke05VTUVSSUNfQ09OVFJPTF9DSEFSICsgXCJudlwiICsgdGhpcy5jb3VudGVyKyt9X2AgKyB2YWx1ZS5zdHJpbmc7XG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZXMuc2V0KGBcIiR7dn1cImAsIHZhbHVlLnN0cmluZyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHY7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcImJpZ2ludFwiKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcyA9IHZhbHVlLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgdiA9IGAke05VTUVSSUNfQ09OVFJPTF9DSEFSICsgXCJiXCIgKyB0aGlzLmNvdW50ZXIrK31fYCArIHM7XG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZXMuc2V0KGBcIiR7dn1cImAsIHMpO1xuICAgICAgICAgICAgICAgIHJldHVybiB2O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9O1xuICAgIH1cbiAgICByZXBsYWNlSW5Kc29uKGpzb24pIHtcbiAgICAgICAgaWYgKHRoaXMuc3RhZ2UgPT09IDApIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkBhd3Mtc2RrL2NvcmUvcHJvdG9jb2xzIC0gSnNvblJlcGxhY2VyIG5vdCBjcmVhdGVkIHlldC5cIik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuc3RhZ2UgPT09IDIpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkBhd3Mtc2RrL2NvcmUvcHJvdG9jb2xzIC0gSnNvblJlcGxhY2VyIGV4aGF1c3RlZC5cIik7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zdGFnZSA9IDI7XG4gICAgICAgIGlmICh0aGlzLmNvdW50ZXIgPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBqc29uO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIHRoaXMudmFsdWVzKSB7XG4gICAgICAgICAgICBqc29uID0ganNvbi5yZXBsYWNlKGtleSwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBqc29uO1xuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBkZXRlcm1pbmVUaW1lc3RhbXBGb3JtYXQgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3Byb3RvY29sc1wiO1xuaW1wb3J0IHsgTm9ybWFsaXplZFNjaGVtYSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2NoZW1hXCI7XG5pbXBvcnQgeyBkYXRlVG9VdGNTdHJpbmcsIGdlbmVyYXRlSWRlbXBvdGVuY3lUb2tlbiwgTGF6eUpzb25TdHJpbmcsIE51bWVyaWNWYWx1ZSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2VyZGVcIjtcbmltcG9ydCB7IHRvQmFzZTY0IH0gZnJvbSBcIkBzbWl0aHkvdXRpbC1iYXNlNjRcIjtcbmltcG9ydCB7IFNlcmRlQ29udGV4dENvbmZpZyB9IGZyb20gXCIuLi9Db25maWd1cmFibGVTZXJkZUNvbnRleHRcIjtcbmltcG9ydCB7IEpzb25SZXBsYWNlciB9IGZyb20gXCIuL2pzb25SZXBsYWNlclwiO1xuZXhwb3J0IGNsYXNzIEpzb25TaGFwZVNlcmlhbGl6ZXIgZXh0ZW5kcyBTZXJkZUNvbnRleHRDb25maWcge1xuICAgIHNldHRpbmdzO1xuICAgIGJ1ZmZlcjtcbiAgICB1c2VSZXBsYWNlciA9IGZhbHNlO1xuICAgIHJvb3RTY2hlbWE7XG4gICAgY29uc3RydWN0b3Ioc2V0dGluZ3MpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5zZXR0aW5ncyA9IHNldHRpbmdzO1xuICAgIH1cbiAgICB3cml0ZShzY2hlbWEsIHZhbHVlKSB7XG4gICAgICAgIHRoaXMucm9vdFNjaGVtYSA9IE5vcm1hbGl6ZWRTY2hlbWEub2Yoc2NoZW1hKTtcbiAgICAgICAgdGhpcy5idWZmZXIgPSB0aGlzLl93cml0ZSh0aGlzLnJvb3RTY2hlbWEsIHZhbHVlKTtcbiAgICB9XG4gICAgd3JpdGVEaXNjcmltaW5hdGVkRG9jdW1lbnQoc2NoZW1hLCB2YWx1ZSkge1xuICAgICAgICB0aGlzLndyaXRlKHNjaGVtYSwgdmFsdWUpO1xuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYnVmZmVyID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICB0aGlzLmJ1ZmZlci5fX3R5cGUgPSBOb3JtYWxpemVkU2NoZW1hLm9mKHNjaGVtYSkuZ2V0TmFtZSh0cnVlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmbHVzaCgpIHtcbiAgICAgICAgY29uc3QgeyByb290U2NoZW1hLCB1c2VSZXBsYWNlciB9ID0gdGhpcztcbiAgICAgICAgdGhpcy5yb290U2NoZW1hID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLnVzZVJlcGxhY2VyID0gZmFsc2U7XG4gICAgICAgIGlmIChyb290U2NoZW1hPy5pc1N0cnVjdFNjaGVtYSgpIHx8IHJvb3RTY2hlbWE/LmlzRG9jdW1lbnRTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKCF1c2VSZXBsYWNlcikge1xuICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh0aGlzLmJ1ZmZlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCByZXBsYWNlciA9IG5ldyBKc29uUmVwbGFjZXIoKTtcbiAgICAgICAgICAgIHJldHVybiByZXBsYWNlci5yZXBsYWNlSW5Kc29uKEpTT04uc3RyaW5naWZ5KHRoaXMuYnVmZmVyLCByZXBsYWNlci5jcmVhdGVSZXBsYWNlcigpLCAwKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuYnVmZmVyO1xuICAgIH1cbiAgICBfd3JpdGUoc2NoZW1hLCB2YWx1ZSwgY29udGFpbmVyKSB7XG4gICAgICAgIGNvbnN0IGlzT2JqZWN0ID0gdmFsdWUgIT09IG51bGwgJiYgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiO1xuICAgICAgICBjb25zdCBucyA9IE5vcm1hbGl6ZWRTY2hlbWEub2Yoc2NoZW1hKTtcbiAgICAgICAgaWYgKGlzT2JqZWN0KSB7XG4gICAgICAgICAgICBpZiAobnMuaXNTdHJ1Y3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlY29yZCA9IHZhbHVlO1xuICAgICAgICAgICAgICAgIGNvbnN0IG91dCA9IHt9O1xuICAgICAgICAgICAgICAgIGNvbnN0IHsganNvbk5hbWUgfSA9IHRoaXMuc2V0dGluZ3M7XG4gICAgICAgICAgICAgICAgbGV0IG5hbWVNYXAgPSB2b2lkIDA7XG4gICAgICAgICAgICAgICAgaWYgKGpzb25OYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWVNYXAgPSB7fTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBbbWVtYmVyTmFtZSwgbWVtYmVyU2NoZW1hXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNlcmlhbGl6YWJsZVZhbHVlID0gdGhpcy5fd3JpdGUobWVtYmVyU2NoZW1hLCByZWNvcmRbbWVtYmVyTmFtZV0sIG5zKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNlcmlhbGl6YWJsZVZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0YXJnZXRLZXkgPSBtZW1iZXJOYW1lO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGpzb25OYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0S2V5ID0gbWVtYmVyU2NoZW1hLmdldE1lcmdlZFRyYWl0cygpLmpzb25OYW1lID8/IG1lbWJlck5hbWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZU1hcFttZW1iZXJOYW1lXSA9IHRhcmdldEtleTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIG91dFt0YXJnZXRLZXldID0gc2VyaWFsaXphYmxlVmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKG5zLmlzVW5pb25TY2hlbWEoKSAmJiBPYmplY3Qua2V5cyhvdXQpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB7ICR1bmtub3duIH0gPSByZWNvcmQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KCR1bmtub3duKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgW2ssIHZdID0gJHVua25vd247XG4gICAgICAgICAgICAgICAgICAgICAgICBvdXRba10gPSB0aGlzLl93cml0ZSgxNSwgdik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAodHlwZW9mIHJlY29yZC5fX3R5cGUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBbaywgdl0gb2YgT2JqZWN0LmVudHJpZXMocmVjb3JkKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0S2V5ID0ganNvbk5hbWUgPyBuYW1lTWFwW2tdID8/IGsgOiBrO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEodGFyZ2V0S2V5IGluIG91dCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRbdGFyZ2V0S2V5XSA9IHRoaXMuX3dyaXRlKDE1LCB2KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gb3V0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpICYmIG5zLmlzTGlzdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbGlzdE1lbWJlciA9IG5zLmdldFZhbHVlU2NoZW1hKCk7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3V0ID0gW107XG4gICAgICAgICAgICAgICAgY29uc3Qgc3BhcnNlID0gISFucy5nZXRNZXJnZWRUcmFpdHMoKS5zcGFyc2U7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzcGFyc2UgfHwgaXRlbSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvdXQucHVzaCh0aGlzLl93cml0ZShsaXN0TWVtYmVyLCBpdGVtKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIG91dDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChucy5pc01hcFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbWFwTWVtYmVyID0gbnMuZ2V0VmFsdWVTY2hlbWEoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBvdXQgPSB7fTtcbiAgICAgICAgICAgICAgICBjb25zdCBzcGFyc2UgPSAhIW5zLmdldE1lcmdlZFRyYWl0cygpLnNwYXJzZTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IFtfaywgX3ZdIG9mIE9iamVjdC5lbnRyaWVzKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoc3BhcnNlIHx8IF92ICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG91dFtfa10gPSB0aGlzLl93cml0ZShtYXBNZW1iZXIsIF92KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gb3V0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgVWludDhBcnJheSAmJiAobnMuaXNCbG9iU2NoZW1hKCkgfHwgbnMuaXNEb2N1bWVudFNjaGVtYSgpKSkge1xuICAgICAgICAgICAgICAgIGlmIChucyA9PT0gdGhpcy5yb290U2NoZW1hKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuICh0aGlzLnNlcmRlQ29udGV4dD8uYmFzZTY0RW5jb2RlciA/PyB0b0Jhc2U2NCkodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSAmJiAobnMuaXNUaW1lc3RhbXBTY2hlbWEoKSB8fCBucy5pc0RvY3VtZW50U2NoZW1hKCkpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZm9ybWF0ID0gZGV0ZXJtaW5lVGltZXN0YW1wRm9ybWF0KG5zLCB0aGlzLnNldHRpbmdzKTtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGZvcm1hdCkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUudG9JU09TdHJpbmcoKS5yZXBsYWNlKFwiLjAwMFpcIiwgXCJaXCIpO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZGF0ZVRvVXRjU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA3OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlLmdldFRpbWUoKSAvIDEwMDA7XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oXCJNaXNzaW5nIHRpbWVzdGFtcCBmb3JtYXQsIHVzaW5nIGVwb2NoIHNlY29uZHNcIiwgdmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlLmdldFRpbWUoKSAvIDEwMDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgTnVtZXJpY1ZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy51c2VSZXBsYWNlciA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbHVlID09PSBudWxsICYmIGNvbnRhaW5lcj8uaXNTdHJ1Y3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgcmV0dXJuIHZvaWQgMDtcbiAgICAgICAgfVxuICAgICAgICBpZiAobnMuaXNTdHJpbmdTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJ1bmRlZmluZWRcIiAmJiBucy5pc0lkZW1wb3RlbmN5VG9rZW4oKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBnZW5lcmF0ZUlkZW1wb3RlbmN5VG9rZW4oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IG1lZGlhVHlwZSA9IG5zLmdldE1lcmdlZFRyYWl0cygpLm1lZGlhVHlwZTtcbiAgICAgICAgICAgIGlmICh2YWx1ZSAhPSBudWxsICYmIG1lZGlhVHlwZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzSnNvbiA9IG1lZGlhVHlwZSA9PT0gXCJhcHBsaWNhdGlvbi9qc29uXCIgfHwgbWVkaWFUeXBlLmVuZHNXaXRoKFwiK2pzb25cIik7XG4gICAgICAgICAgICAgICAgaWYgKGlzSnNvbikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gTGF6eUpzb25TdHJpbmcuZnJvbSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCIgJiYgbnMuaXNOdW1lcmljU2NoZW1hKCkpIHtcbiAgICAgICAgICAgIGlmIChNYXRoLmFicyh2YWx1ZSkgPT09IEluZmluaXR5IHx8IGlzTmFOKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgJiYgbnMuaXNCbG9iU2NoZW1hKCkpIHtcbiAgICAgICAgICAgIGlmIChucyA9PT0gdGhpcy5yb290U2NoZW1hKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuICh0aGlzLnNlcmRlQ29udGV4dD8uYmFzZTY0RW5jb2RlciA/PyB0b0Jhc2U2NCkodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwiYmlnaW50XCIpIHtcbiAgICAgICAgICAgIHRoaXMudXNlUmVwbGFjZXIgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChucy5pc0RvY3VtZW50U2NoZW1hKCkpIHtcbiAgICAgICAgICAgIGlmIChpc09iamVjdCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG91dCA9IEFycmF5LmlzQXJyYXkodmFsdWUpID8gW10gOiB7fTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IFtrLCB2XSBvZiBPYmplY3QuZW50cmllcyh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHYgaW5zdGFuY2VvZiBOdW1lcmljVmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXNlUmVwbGFjZXIgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgb3V0W2tdID0gdjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG91dFtrXSA9IHRoaXMuX3dyaXRlKG5zLCB2KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gb3V0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN0cnVjdHVyZWRDbG9uZSh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBTZXJkZUNvbnRleHRDb25maWcgfSBmcm9tIFwiLi4vQ29uZmlndXJhYmxlU2VyZGVDb250ZXh0XCI7XG5pbXBvcnQgeyBKc29uU2hhcGVEZXNlcmlhbGl6ZXIgfSBmcm9tIFwiLi9Kc29uU2hhcGVEZXNlcmlhbGl6ZXJcIjtcbmltcG9ydCB7IEpzb25TaGFwZVNlcmlhbGl6ZXIgfSBmcm9tIFwiLi9Kc29uU2hhcGVTZXJpYWxpemVyXCI7XG5leHBvcnQgY2xhc3MgSnNvbkNvZGVjIGV4dGVuZHMgU2VyZGVDb250ZXh0Q29uZmlnIHtcbiAgICBzZXR0aW5ncztcbiAgICBjb25zdHJ1Y3RvcihzZXR0aW5ncykge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnNldHRpbmdzID0gc2V0dGluZ3M7XG4gICAgfVxuICAgIGNyZWF0ZVNlcmlhbGl6ZXIoKSB7XG4gICAgICAgIGNvbnN0IHNlcmlhbGl6ZXIgPSBuZXcgSnNvblNoYXBlU2VyaWFsaXplcih0aGlzLnNldHRpbmdzKTtcbiAgICAgICAgc2VyaWFsaXplci5zZXRTZXJkZUNvbnRleHQodGhpcy5zZXJkZUNvbnRleHQpO1xuICAgICAgICByZXR1cm4gc2VyaWFsaXplcjtcbiAgICB9XG4gICAgY3JlYXRlRGVzZXJpYWxpemVyKCkge1xuICAgICAgICBjb25zdCBkZXNlcmlhbGl6ZXIgPSBuZXcgSnNvblNoYXBlRGVzZXJpYWxpemVyKHRoaXMuc2V0dGluZ3MpO1xuICAgICAgICBkZXNlcmlhbGl6ZXIuc2V0U2VyZGVDb250ZXh0KHRoaXMuc2VyZGVDb250ZXh0KTtcbiAgICAgICAgcmV0dXJuIGRlc2VyaWFsaXplcjtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgUnBjUHJvdG9jb2wgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3Byb3RvY29sc1wiO1xuaW1wb3J0IHsgZGVyZWYsIE5vcm1hbGl6ZWRTY2hlbWEsIFR5cGVSZWdpc3RyeSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2NoZW1hXCI7XG5pbXBvcnQgeyBQcm90b2NvbExpYiB9IGZyb20gXCIuLi9Qcm90b2NvbExpYlwiO1xuaW1wb3J0IHsgSnNvbkNvZGVjIH0gZnJvbSBcIi4vSnNvbkNvZGVjXCI7XG5pbXBvcnQgeyBsb2FkUmVzdEpzb25FcnJvckNvZGUgfSBmcm9tIFwiLi9wYXJzZUpzb25Cb2R5XCI7XG5leHBvcnQgY2xhc3MgQXdzSnNvblJwY1Byb3RvY29sIGV4dGVuZHMgUnBjUHJvdG9jb2wge1xuICAgIHNlcmlhbGl6ZXI7XG4gICAgZGVzZXJpYWxpemVyO1xuICAgIHNlcnZpY2VUYXJnZXQ7XG4gICAgY29kZWM7XG4gICAgbWl4aW47XG4gICAgYXdzUXVlcnlDb21wYXRpYmxlO1xuICAgIGNvbnN0cnVjdG9yKHsgZGVmYXVsdE5hbWVzcGFjZSwgc2VydmljZVRhcmdldCwgYXdzUXVlcnlDb21wYXRpYmxlLCBqc29uQ29kZWMsIH0pIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgZGVmYXVsdE5hbWVzcGFjZSxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc2VydmljZVRhcmdldCA9IHNlcnZpY2VUYXJnZXQ7XG4gICAgICAgIHRoaXMuY29kZWMgPVxuICAgICAgICAgICAganNvbkNvZGVjID8/XG4gICAgICAgICAgICAgICAgbmV3IEpzb25Db2RlYyh7XG4gICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcEZvcm1hdDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgdXNlVHJhaXQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiA3LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBqc29uTmFtZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc2VyaWFsaXplciA9IHRoaXMuY29kZWMuY3JlYXRlU2VyaWFsaXplcigpO1xuICAgICAgICB0aGlzLmRlc2VyaWFsaXplciA9IHRoaXMuY29kZWMuY3JlYXRlRGVzZXJpYWxpemVyKCk7XG4gICAgICAgIHRoaXMuYXdzUXVlcnlDb21wYXRpYmxlID0gISFhd3NRdWVyeUNvbXBhdGlibGU7XG4gICAgICAgIHRoaXMubWl4aW4gPSBuZXcgUHJvdG9jb2xMaWIodGhpcy5hd3NRdWVyeUNvbXBhdGlibGUpO1xuICAgIH1cbiAgICBhc3luYyBzZXJpYWxpemVSZXF1ZXN0KG9wZXJhdGlvblNjaGVtYSwgaW5wdXQsIGNvbnRleHQpIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IGF3YWl0IHN1cGVyLnNlcmlhbGl6ZVJlcXVlc3Qob3BlcmF0aW9uU2NoZW1hLCBpbnB1dCwgY29udGV4dCk7XG4gICAgICAgIGlmICghcmVxdWVzdC5wYXRoLmVuZHNXaXRoKFwiL1wiKSkge1xuICAgICAgICAgICAgcmVxdWVzdC5wYXRoICs9IFwiL1wiO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24ocmVxdWVzdC5oZWFkZXJzLCB7XG4gICAgICAgICAgICBcImNvbnRlbnQtdHlwZVwiOiBgYXBwbGljYXRpb24veC1hbXotanNvbi0ke3RoaXMuZ2V0SnNvblJwY1ZlcnNpb24oKX1gLFxuICAgICAgICAgICAgXCJ4LWFtei10YXJnZXRcIjogYCR7dGhpcy5zZXJ2aWNlVGFyZ2V0fS4ke29wZXJhdGlvblNjaGVtYS5uYW1lfWAsXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAodGhpcy5hd3NRdWVyeUNvbXBhdGlibGUpIHtcbiAgICAgICAgICAgIHJlcXVlc3QuaGVhZGVyc1tcIngtYW16bi1xdWVyeS1tb2RlXCJdID0gXCJ0cnVlXCI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRlcmVmKG9wZXJhdGlvblNjaGVtYS5pbnB1dCkgPT09IFwidW5pdFwiIHx8ICFyZXF1ZXN0LmJvZHkpIHtcbiAgICAgICAgICAgIHJlcXVlc3QuYm9keSA9IFwie31cIjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVxdWVzdDtcbiAgICB9XG4gICAgZ2V0UGF5bG9hZENvZGVjKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb2RlYztcbiAgICB9XG4gICAgYXN5bmMgaGFuZGxlRXJyb3Iob3BlcmF0aW9uU2NoZW1hLCBjb250ZXh0LCByZXNwb25zZSwgZGF0YU9iamVjdCwgbWV0YWRhdGEpIHtcbiAgICAgICAgaWYgKHRoaXMuYXdzUXVlcnlDb21wYXRpYmxlKSB7XG4gICAgICAgICAgICB0aGlzLm1peGluLnNldFF1ZXJ5Q29tcGF0RXJyb3IoZGF0YU9iamVjdCwgcmVzcG9uc2UpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGVycm9ySWRlbnRpZmllciA9IGxvYWRSZXN0SnNvbkVycm9yQ29kZShyZXNwb25zZSwgZGF0YU9iamVjdCkgPz8gXCJVbmtub3duXCI7XG4gICAgICAgIGNvbnN0IHsgZXJyb3JTY2hlbWEsIGVycm9yTWV0YWRhdGEgfSA9IGF3YWl0IHRoaXMubWl4aW4uZ2V0RXJyb3JTY2hlbWFPclRocm93QmFzZUV4Y2VwdGlvbihlcnJvcklkZW50aWZpZXIsIHRoaXMub3B0aW9ucy5kZWZhdWx0TmFtZXNwYWNlLCByZXNwb25zZSwgZGF0YU9iamVjdCwgbWV0YWRhdGEsIHRoaXMuYXdzUXVlcnlDb21wYXRpYmxlID8gdGhpcy5taXhpbi5maW5kUXVlcnlDb21wYXRpYmxlRXJyb3IgOiB1bmRlZmluZWQpO1xuICAgICAgICBjb25zdCBucyA9IE5vcm1hbGl6ZWRTY2hlbWEub2YoZXJyb3JTY2hlbWEpO1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gZGF0YU9iamVjdC5tZXNzYWdlID8/IGRhdGFPYmplY3QuTWVzc2FnZSA/PyBcIlVua25vd25cIjtcbiAgICAgICAgY29uc3QgRXJyb3JDdG9yID0gVHlwZVJlZ2lzdHJ5LmZvcihlcnJvclNjaGVtYVsxXSkuZ2V0RXJyb3JDdG9yKGVycm9yU2NoZW1hKSA/PyBFcnJvcjtcbiAgICAgICAgY29uc3QgZXhjZXB0aW9uID0gbmV3IEVycm9yQ3RvcihtZXNzYWdlKTtcbiAgICAgICAgY29uc3Qgb3V0cHV0ID0ge307XG4gICAgICAgIGZvciAoY29uc3QgW25hbWUsIG1lbWJlcl0gb2YgbnMuc3RydWN0SXRlcmF0b3IoKSkge1xuICAgICAgICAgICAgaWYgKGRhdGFPYmplY3RbbmFtZV0gIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIG91dHB1dFtuYW1lXSA9IHRoaXMuY29kZWMuY3JlYXRlRGVzZXJpYWxpemVyKCkucmVhZE9iamVjdChtZW1iZXIsIGRhdGFPYmplY3RbbmFtZV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmF3c1F1ZXJ5Q29tcGF0aWJsZSkge1xuICAgICAgICAgICAgdGhpcy5taXhpbi5xdWVyeUNvbXBhdE91dHB1dChkYXRhT2JqZWN0LCBvdXRwdXQpO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IHRoaXMubWl4aW4uZGVjb3JhdGVTZXJ2aWNlRXhjZXB0aW9uKE9iamVjdC5hc3NpZ24oZXhjZXB0aW9uLCBlcnJvck1ldGFkYXRhLCB7XG4gICAgICAgICAgICAkZmF1bHQ6IG5zLmdldE1lcmdlZFRyYWl0cygpLmVycm9yLFxuICAgICAgICAgICAgbWVzc2FnZSxcbiAgICAgICAgfSwgb3V0cHV0KSwgZGF0YU9iamVjdCk7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IEF3c0pzb25ScGNQcm90b2NvbCB9IGZyb20gXCIuL0F3c0pzb25ScGNQcm90b2NvbFwiO1xuZXhwb3J0IGNsYXNzIEF3c0pzb24xXzBQcm90b2NvbCBleHRlbmRzIEF3c0pzb25ScGNQcm90b2NvbCB7XG4gICAgY29uc3RydWN0b3IoeyBkZWZhdWx0TmFtZXNwYWNlLCBzZXJ2aWNlVGFyZ2V0LCBhd3NRdWVyeUNvbXBhdGlibGUsIGpzb25Db2RlYywgfSkge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBkZWZhdWx0TmFtZXNwYWNlLFxuICAgICAgICAgICAgc2VydmljZVRhcmdldCxcbiAgICAgICAgICAgIGF3c1F1ZXJ5Q29tcGF0aWJsZSxcbiAgICAgICAgICAgIGpzb25Db2RlYyxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGdldFNoYXBlSWQoKSB7XG4gICAgICAgIHJldHVybiBcImF3cy5wcm90b2NvbHMjYXdzSnNvbjFfMFwiO1xuICAgIH1cbiAgICBnZXRKc29uUnBjVmVyc2lvbigpIHtcbiAgICAgICAgcmV0dXJuIFwiMS4wXCI7XG4gICAgfVxuICAgIGdldERlZmF1bHRDb250ZW50VHlwZSgpIHtcbiAgICAgICAgcmV0dXJuIFwiYXBwbGljYXRpb24veC1hbXotanNvbi0xLjBcIjtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgQXdzSnNvblJwY1Byb3RvY29sIH0gZnJvbSBcIi4vQXdzSnNvblJwY1Byb3RvY29sXCI7XG5leHBvcnQgY2xhc3MgQXdzSnNvbjFfMVByb3RvY29sIGV4dGVuZHMgQXdzSnNvblJwY1Byb3RvY29sIHtcbiAgICBjb25zdHJ1Y3Rvcih7IGRlZmF1bHROYW1lc3BhY2UsIHNlcnZpY2VUYXJnZXQsIGF3c1F1ZXJ5Q29tcGF0aWJsZSwganNvbkNvZGVjLCB9KSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIGRlZmF1bHROYW1lc3BhY2UsXG4gICAgICAgICAgICBzZXJ2aWNlVGFyZ2V0LFxuICAgICAgICAgICAgYXdzUXVlcnlDb21wYXRpYmxlLFxuICAgICAgICAgICAganNvbkNvZGVjLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgZ2V0U2hhcGVJZCgpIHtcbiAgICAgICAgcmV0dXJuIFwiYXdzLnByb3RvY29scyNhd3NKc29uMV8xXCI7XG4gICAgfVxuICAgIGdldEpzb25ScGNWZXJzaW9uKCkge1xuICAgICAgICByZXR1cm4gXCIxLjFcIjtcbiAgICB9XG4gICAgZ2V0RGVmYXVsdENvbnRlbnRUeXBlKCkge1xuICAgICAgICByZXR1cm4gXCJhcHBsaWNhdGlvbi94LWFtei1qc29uLTEuMVwiO1xuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBIdHRwQmluZGluZ1Byb3RvY29sLCBIdHRwSW50ZXJjZXB0aW5nU2hhcGVEZXNlcmlhbGl6ZXIsIEh0dHBJbnRlcmNlcHRpbmdTaGFwZVNlcmlhbGl6ZXIsIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9wcm90b2NvbHNcIjtcbmltcG9ydCB7IE5vcm1hbGl6ZWRTY2hlbWEsIFR5cGVSZWdpc3RyeSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2NoZW1hXCI7XG5pbXBvcnQgeyBQcm90b2NvbExpYiB9IGZyb20gXCIuLi9Qcm90b2NvbExpYlwiO1xuaW1wb3J0IHsgSnNvbkNvZGVjIH0gZnJvbSBcIi4vSnNvbkNvZGVjXCI7XG5pbXBvcnQgeyBsb2FkUmVzdEpzb25FcnJvckNvZGUgfSBmcm9tIFwiLi9wYXJzZUpzb25Cb2R5XCI7XG5leHBvcnQgY2xhc3MgQXdzUmVzdEpzb25Qcm90b2NvbCBleHRlbmRzIEh0dHBCaW5kaW5nUHJvdG9jb2wge1xuICAgIHNlcmlhbGl6ZXI7XG4gICAgZGVzZXJpYWxpemVyO1xuICAgIGNvZGVjO1xuICAgIG1peGluID0gbmV3IFByb3RvY29sTGliKCk7XG4gICAgY29uc3RydWN0b3IoeyBkZWZhdWx0TmFtZXNwYWNlIH0pIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgZGVmYXVsdE5hbWVzcGFjZSxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IHNldHRpbmdzID0ge1xuICAgICAgICAgICAgdGltZXN0YW1wRm9ybWF0OiB7XG4gICAgICAgICAgICAgICAgdXNlVHJhaXQ6IHRydWUsXG4gICAgICAgICAgICAgICAgZGVmYXVsdDogNyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBodHRwQmluZGluZ3M6IHRydWUsXG4gICAgICAgICAgICBqc29uTmFtZTogdHJ1ZSxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5jb2RlYyA9IG5ldyBKc29uQ29kZWMoc2V0dGluZ3MpO1xuICAgICAgICB0aGlzLnNlcmlhbGl6ZXIgPSBuZXcgSHR0cEludGVyY2VwdGluZ1NoYXBlU2VyaWFsaXplcih0aGlzLmNvZGVjLmNyZWF0ZVNlcmlhbGl6ZXIoKSwgc2V0dGluZ3MpO1xuICAgICAgICB0aGlzLmRlc2VyaWFsaXplciA9IG5ldyBIdHRwSW50ZXJjZXB0aW5nU2hhcGVEZXNlcmlhbGl6ZXIodGhpcy5jb2RlYy5jcmVhdGVEZXNlcmlhbGl6ZXIoKSwgc2V0dGluZ3MpO1xuICAgIH1cbiAgICBnZXRTaGFwZUlkKCkge1xuICAgICAgICByZXR1cm4gXCJhd3MucHJvdG9jb2xzI3Jlc3RKc29uMVwiO1xuICAgIH1cbiAgICBnZXRQYXlsb2FkQ29kZWMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvZGVjO1xuICAgIH1cbiAgICBzZXRTZXJkZUNvbnRleHQoc2VyZGVDb250ZXh0KSB7XG4gICAgICAgIHRoaXMuY29kZWMuc2V0U2VyZGVDb250ZXh0KHNlcmRlQ29udGV4dCk7XG4gICAgICAgIHN1cGVyLnNldFNlcmRlQ29udGV4dChzZXJkZUNvbnRleHQpO1xuICAgIH1cbiAgICBhc3luYyBzZXJpYWxpemVSZXF1ZXN0KG9wZXJhdGlvblNjaGVtYSwgaW5wdXQsIGNvbnRleHQpIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IGF3YWl0IHN1cGVyLnNlcmlhbGl6ZVJlcXVlc3Qob3BlcmF0aW9uU2NoZW1hLCBpbnB1dCwgY29udGV4dCk7XG4gICAgICAgIGNvbnN0IGlucHV0U2NoZW1hID0gTm9ybWFsaXplZFNjaGVtYS5vZihvcGVyYXRpb25TY2hlbWEuaW5wdXQpO1xuICAgICAgICBpZiAoIXJlcXVlc3QuaGVhZGVyc1tcImNvbnRlbnQtdHlwZVwiXSkge1xuICAgICAgICAgICAgY29uc3QgY29udGVudFR5cGUgPSB0aGlzLm1peGluLnJlc29sdmVSZXN0Q29udGVudFR5cGUodGhpcy5nZXREZWZhdWx0Q29udGVudFR5cGUoKSwgaW5wdXRTY2hlbWEpO1xuICAgICAgICAgICAgaWYgKGNvbnRlbnRUeXBlKSB7XG4gICAgICAgICAgICAgICAgcmVxdWVzdC5oZWFkZXJzW1wiY29udGVudC10eXBlXCJdID0gY29udGVudFR5cGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJlcXVlc3QuYm9keSA9PSBudWxsICYmIHJlcXVlc3QuaGVhZGVyc1tcImNvbnRlbnQtdHlwZVwiXSA9PT0gdGhpcy5nZXREZWZhdWx0Q29udGVudFR5cGUoKSkge1xuICAgICAgICAgICAgcmVxdWVzdC5ib2R5ID0gXCJ7fVwiO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXF1ZXN0O1xuICAgIH1cbiAgICBhc3luYyBkZXNlcmlhbGl6ZVJlc3BvbnNlKG9wZXJhdGlvblNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UpIHtcbiAgICAgICAgY29uc3Qgb3V0cHV0ID0gYXdhaXQgc3VwZXIuZGVzZXJpYWxpemVSZXNwb25zZShvcGVyYXRpb25TY2hlbWEsIGNvbnRleHQsIHJlc3BvbnNlKTtcbiAgICAgICAgY29uc3Qgb3V0cHV0U2NoZW1hID0gTm9ybWFsaXplZFNjaGVtYS5vZihvcGVyYXRpb25TY2hlbWEub3V0cHV0KTtcbiAgICAgICAgZm9yIChjb25zdCBbbmFtZSwgbWVtYmVyXSBvZiBvdXRwdXRTY2hlbWEuc3RydWN0SXRlcmF0b3IoKSkge1xuICAgICAgICAgICAgaWYgKG1lbWJlci5nZXRNZW1iZXJUcmFpdHMoKS5odHRwUGF5bG9hZCAmJiAhKG5hbWUgaW4gb3V0cHV0KSkge1xuICAgICAgICAgICAgICAgIG91dHB1dFtuYW1lXSA9IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG91dHB1dDtcbiAgICB9XG4gICAgYXN5bmMgaGFuZGxlRXJyb3Iob3BlcmF0aW9uU2NoZW1hLCBjb250ZXh0LCByZXNwb25zZSwgZGF0YU9iamVjdCwgbWV0YWRhdGEpIHtcbiAgICAgICAgY29uc3QgZXJyb3JJZGVudGlmaWVyID0gbG9hZFJlc3RKc29uRXJyb3JDb2RlKHJlc3BvbnNlLCBkYXRhT2JqZWN0KSA/PyBcIlVua25vd25cIjtcbiAgICAgICAgY29uc3QgeyBlcnJvclNjaGVtYSwgZXJyb3JNZXRhZGF0YSB9ID0gYXdhaXQgdGhpcy5taXhpbi5nZXRFcnJvclNjaGVtYU9yVGhyb3dCYXNlRXhjZXB0aW9uKGVycm9ySWRlbnRpZmllciwgdGhpcy5vcHRpb25zLmRlZmF1bHROYW1lc3BhY2UsIHJlc3BvbnNlLCBkYXRhT2JqZWN0LCBtZXRhZGF0YSk7XG4gICAgICAgIGNvbnN0IG5zID0gTm9ybWFsaXplZFNjaGVtYS5vZihlcnJvclNjaGVtYSk7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBkYXRhT2JqZWN0Lm1lc3NhZ2UgPz8gZGF0YU9iamVjdC5NZXNzYWdlID8/IFwiVW5rbm93blwiO1xuICAgICAgICBjb25zdCBFcnJvckN0b3IgPSBUeXBlUmVnaXN0cnkuZm9yKGVycm9yU2NoZW1hWzFdKS5nZXRFcnJvckN0b3IoZXJyb3JTY2hlbWEpID8/IEVycm9yO1xuICAgICAgICBjb25zdCBleGNlcHRpb24gPSBuZXcgRXJyb3JDdG9yKG1lc3NhZ2UpO1xuICAgICAgICBhd2FpdCB0aGlzLmRlc2VyaWFsaXplSHR0cE1lc3NhZ2UoZXJyb3JTY2hlbWEsIGNvbnRleHQsIHJlc3BvbnNlLCBkYXRhT2JqZWN0KTtcbiAgICAgICAgY29uc3Qgb3V0cHV0ID0ge307XG4gICAgICAgIGZvciAoY29uc3QgW25hbWUsIG1lbWJlcl0gb2YgbnMuc3RydWN0SXRlcmF0b3IoKSkge1xuICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gbWVtYmVyLmdldE1lcmdlZFRyYWl0cygpLmpzb25OYW1lID8/IG5hbWU7XG4gICAgICAgICAgICBvdXRwdXRbbmFtZV0gPSB0aGlzLmNvZGVjLmNyZWF0ZURlc2VyaWFsaXplcigpLnJlYWRPYmplY3QobWVtYmVyLCBkYXRhT2JqZWN0W3RhcmdldF0pO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IHRoaXMubWl4aW4uZGVjb3JhdGVTZXJ2aWNlRXhjZXB0aW9uKE9iamVjdC5hc3NpZ24oZXhjZXB0aW9uLCBlcnJvck1ldGFkYXRhLCB7XG4gICAgICAgICAgICAkZmF1bHQ6IG5zLmdldE1lcmdlZFRyYWl0cygpLmVycm9yLFxuICAgICAgICAgICAgbWVzc2FnZSxcbiAgICAgICAgfSwgb3V0cHV0KSwgZGF0YU9iamVjdCk7XG4gICAgfVxuICAgIGdldERlZmF1bHRDb250ZW50VHlwZSgpIHtcbiAgICAgICAgcmV0dXJuIFwiYXBwbGljYXRpb24vanNvblwiO1xuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBleHBlY3RVbmlvbiB9IGZyb20gXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjtcbmV4cG9ydCBjb25zdCBhd3NFeHBlY3RVbmlvbiA9ICh2YWx1ZSkgPT4ge1xuICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIgJiYgXCJfX3R5cGVcIiBpbiB2YWx1ZSkge1xuICAgICAgICBkZWxldGUgdmFsdWUuX190eXBlO1xuICAgIH1cbiAgICByZXR1cm4gZXhwZWN0VW5pb24odmFsdWUpO1xufTtcbiIsICJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMucGFyc2VYTUwgPSBwYXJzZVhNTDtcbmNvbnN0IGZhc3RfeG1sX3BhcnNlcl8xID0gcmVxdWlyZShcImZhc3QteG1sLXBhcnNlclwiKTtcbmNvbnN0IHBhcnNlciA9IG5ldyBmYXN0X3htbF9wYXJzZXJfMS5YTUxQYXJzZXIoe1xuICAgIGF0dHJpYnV0ZU5hbWVQcmVmaXg6IFwiXCIsXG4gICAgaHRtbEVudGl0aWVzOiB0cnVlLFxuICAgIGlnbm9yZUF0dHJpYnV0ZXM6IGZhbHNlLFxuICAgIGlnbm9yZURlY2xhcmF0aW9uOiB0cnVlLFxuICAgIHBhcnNlVGFnVmFsdWU6IGZhbHNlLFxuICAgIHRyaW1WYWx1ZXM6IGZhbHNlLFxuICAgIHRhZ1ZhbHVlUHJvY2Vzc29yOiAoXywgdmFsKSA9PiAodmFsLnRyaW0oKSA9PT0gXCJcIiAmJiB2YWwuaW5jbHVkZXMoXCJcXG5cIikgPyBcIlwiIDogdW5kZWZpbmVkKSxcbn0pO1xucGFyc2VyLmFkZEVudGl0eShcIiN4RFwiLCBcIlxcclwiKTtcbnBhcnNlci5hZGRFbnRpdHkoXCIjMTBcIiwgXCJcXG5cIik7XG5mdW5jdGlvbiBwYXJzZVhNTCh4bWxTdHJpbmcpIHtcbiAgICByZXR1cm4gcGFyc2VyLnBhcnNlKHhtbFN0cmluZywgdHJ1ZSk7XG59XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgeG1sUGFyc2VyID0gcmVxdWlyZSgnLi94bWwtcGFyc2VyJyk7XG5cbmZ1bmN0aW9uIGVzY2FwZUF0dHJpYnV0ZSh2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZS5yZXBsYWNlKC8mL2csIFwiJmFtcDtcIikucmVwbGFjZSgvPC9nLCBcIiZsdDtcIikucmVwbGFjZSgvPi9nLCBcIiZndDtcIikucmVwbGFjZSgvXCIvZywgXCImcXVvdDtcIik7XG59XG5cbmZ1bmN0aW9uIGVzY2FwZUVsZW1lbnQodmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWVcbiAgICAgICAgLnJlcGxhY2UoLyYvZywgXCImYW1wO1wiKVxuICAgICAgICAucmVwbGFjZSgvXCIvZywgXCImcXVvdDtcIilcbiAgICAgICAgLnJlcGxhY2UoLycvZywgXCImYXBvcztcIilcbiAgICAgICAgLnJlcGxhY2UoLzwvZywgXCImbHQ7XCIpXG4gICAgICAgIC5yZXBsYWNlKC8+L2csIFwiJmd0O1wiKVxuICAgICAgICAucmVwbGFjZSgvXFxyL2csIFwiJiN4MEQ7XCIpXG4gICAgICAgIC5yZXBsYWNlKC9cXG4vZywgXCImI3gwQTtcIilcbiAgICAgICAgLnJlcGxhY2UoL1xcdTAwODUvZywgXCImI3g4NTtcIilcbiAgICAgICAgLnJlcGxhY2UoL1xcdTIwMjgvLCBcIiYjeDIwMjg7XCIpO1xufVxuXG5jbGFzcyBYbWxUZXh0IHtcbiAgICB2YWx1ZTtcbiAgICBjb25zdHJ1Y3Rvcih2YWx1ZSkge1xuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgfVxuICAgIHRvU3RyaW5nKCkge1xuICAgICAgICByZXR1cm4gZXNjYXBlRWxlbWVudChcIlwiICsgdGhpcy52YWx1ZSk7XG4gICAgfVxufVxuXG5jbGFzcyBYbWxOb2RlIHtcbiAgICBuYW1lO1xuICAgIGNoaWxkcmVuO1xuICAgIGF0dHJpYnV0ZXMgPSB7fTtcbiAgICBzdGF0aWMgb2YobmFtZSwgY2hpbGRUZXh0LCB3aXRoTmFtZSkge1xuICAgICAgICBjb25zdCBub2RlID0gbmV3IFhtbE5vZGUobmFtZSk7XG4gICAgICAgIGlmIChjaGlsZFRleHQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgbm9kZS5hZGRDaGlsZE5vZGUobmV3IFhtbFRleHQoY2hpbGRUZXh0KSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHdpdGhOYW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIG5vZGUud2l0aE5hbWUod2l0aE5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBub2RlO1xuICAgIH1cbiAgICBjb25zdHJ1Y3RvcihuYW1lLCBjaGlsZHJlbiA9IFtdKSB7XG4gICAgICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgICAgIHRoaXMuY2hpbGRyZW4gPSBjaGlsZHJlbjtcbiAgICB9XG4gICAgd2l0aE5hbWUobmFtZSkge1xuICAgICAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgYWRkQXR0cmlidXRlKG5hbWUsIHZhbHVlKSB7XG4gICAgICAgIHRoaXMuYXR0cmlidXRlc1tuYW1lXSA9IHZhbHVlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgYWRkQ2hpbGROb2RlKGNoaWxkKSB7XG4gICAgICAgIHRoaXMuY2hpbGRyZW4ucHVzaChjaGlsZCk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICByZW1vdmVBdHRyaWJ1dGUobmFtZSkge1xuICAgICAgICBkZWxldGUgdGhpcy5hdHRyaWJ1dGVzW25hbWVdO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgbihuYW1lKSB7XG4gICAgICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBjKGNoaWxkKSB7XG4gICAgICAgIHRoaXMuY2hpbGRyZW4ucHVzaChjaGlsZCk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBhKG5hbWUsIHZhbHVlKSB7XG4gICAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLmF0dHJpYnV0ZXNbbmFtZV0gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgY2MoaW5wdXQsIGZpZWxkLCB3aXRoTmFtZSA9IGZpZWxkKSB7XG4gICAgICAgIGlmIChpbnB1dFtmaWVsZF0gIT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZSA9IFhtbE5vZGUub2YoZmllbGQsIGlucHV0W2ZpZWxkXSkud2l0aE5hbWUod2l0aE5hbWUpO1xuICAgICAgICAgICAgdGhpcy5jKG5vZGUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGwoaW5wdXQsIGxpc3ROYW1lLCBtZW1iZXJOYW1lLCB2YWx1ZVByb3ZpZGVyKSB7XG4gICAgICAgIGlmIChpbnB1dFtsaXN0TmFtZV0gIT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZXMgPSB2YWx1ZVByb3ZpZGVyKCk7XG4gICAgICAgICAgICBub2Rlcy5tYXAoKG5vZGUpID0+IHtcbiAgICAgICAgICAgICAgICBub2RlLndpdGhOYW1lKG1lbWJlck5hbWUpO1xuICAgICAgICAgICAgICAgIHRoaXMuYyhub2RlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIGxjKGlucHV0LCBsaXN0TmFtZSwgbWVtYmVyTmFtZSwgdmFsdWVQcm92aWRlcikge1xuICAgICAgICBpZiAoaW5wdXRbbGlzdE5hbWVdICE9IG51bGwpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGVzID0gdmFsdWVQcm92aWRlcigpO1xuICAgICAgICAgICAgY29uc3QgY29udGFpbmVyTm9kZSA9IG5ldyBYbWxOb2RlKG1lbWJlck5hbWUpO1xuICAgICAgICAgICAgbm9kZXMubWFwKChub2RlKSA9PiB7XG4gICAgICAgICAgICAgICAgY29udGFpbmVyTm9kZS5jKG5vZGUpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLmMoY29udGFpbmVyTm9kZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgdG9TdHJpbmcoKSB7XG4gICAgICAgIGNvbnN0IGhhc0NoaWxkcmVuID0gQm9vbGVhbih0aGlzLmNoaWxkcmVuLmxlbmd0aCk7XG4gICAgICAgIGxldCB4bWxUZXh0ID0gYDwke3RoaXMubmFtZX1gO1xuICAgICAgICBjb25zdCBhdHRyaWJ1dGVzID0gdGhpcy5hdHRyaWJ1dGVzO1xuICAgICAgICBmb3IgKGNvbnN0IGF0dHJpYnV0ZU5hbWUgb2YgT2JqZWN0LmtleXMoYXR0cmlidXRlcykpIHtcbiAgICAgICAgICAgIGNvbnN0IGF0dHJpYnV0ZSA9IGF0dHJpYnV0ZXNbYXR0cmlidXRlTmFtZV07XG4gICAgICAgICAgICBpZiAoYXR0cmlidXRlICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICB4bWxUZXh0ICs9IGAgJHthdHRyaWJ1dGVOYW1lfT1cIiR7ZXNjYXBlQXR0cmlidXRlKFwiXCIgKyBhdHRyaWJ1dGUpfVwiYDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKHhtbFRleHQgKz0gIWhhc0NoaWxkcmVuID8gXCIvPlwiIDogYD4ke3RoaXMuY2hpbGRyZW4ubWFwKChjKSA9PiBjLnRvU3RyaW5nKCkpLmpvaW4oXCJcIil9PC8ke3RoaXMubmFtZX0+YCk7XG4gICAgfVxufVxuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJwYXJzZVhNTFwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHhtbFBhcnNlci5wYXJzZVhNTDsgfVxufSk7XG5leHBvcnRzLlhtbE5vZGUgPSBYbWxOb2RlO1xuZXhwb3J0cy5YbWxUZXh0ID0gWG1sVGV4dDtcbiIsICJpbXBvcnQgeyBwYXJzZVhNTCB9IGZyb20gXCJAYXdzLXNkay94bWwtYnVpbGRlclwiO1xuaW1wb3J0IHsgRnJvbVN0cmluZ1NoYXBlRGVzZXJpYWxpemVyIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9wcm90b2NvbHNcIjtcbmltcG9ydCB7IE5vcm1hbGl6ZWRTY2hlbWEgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3NjaGVtYVwiO1xuaW1wb3J0IHsgZ2V0VmFsdWVGcm9tVGV4dE5vZGUgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyB0b1V0ZjggfSBmcm9tIFwiQHNtaXRoeS91dGlsLXV0ZjhcIjtcbmltcG9ydCB7IFNlcmRlQ29udGV4dENvbmZpZyB9IGZyb20gXCIuLi9Db25maWd1cmFibGVTZXJkZUNvbnRleHRcIjtcbmltcG9ydCB7IFVuaW9uU2VyZGUgfSBmcm9tIFwiLi4vVW5pb25TZXJkZVwiO1xuZXhwb3J0IGNsYXNzIFhtbFNoYXBlRGVzZXJpYWxpemVyIGV4dGVuZHMgU2VyZGVDb250ZXh0Q29uZmlnIHtcbiAgICBzZXR0aW5ncztcbiAgICBzdHJpbmdEZXNlcmlhbGl6ZXI7XG4gICAgY29uc3RydWN0b3Ioc2V0dGluZ3MpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5zZXR0aW5ncyA9IHNldHRpbmdzO1xuICAgICAgICB0aGlzLnN0cmluZ0Rlc2VyaWFsaXplciA9IG5ldyBGcm9tU3RyaW5nU2hhcGVEZXNlcmlhbGl6ZXIoc2V0dGluZ3MpO1xuICAgIH1cbiAgICBzZXRTZXJkZUNvbnRleHQoc2VyZGVDb250ZXh0KSB7XG4gICAgICAgIHRoaXMuc2VyZGVDb250ZXh0ID0gc2VyZGVDb250ZXh0O1xuICAgICAgICB0aGlzLnN0cmluZ0Rlc2VyaWFsaXplci5zZXRTZXJkZUNvbnRleHQoc2VyZGVDb250ZXh0KTtcbiAgICB9XG4gICAgcmVhZChzY2hlbWEsIGJ5dGVzLCBrZXkpIHtcbiAgICAgICAgY29uc3QgbnMgPSBOb3JtYWxpemVkU2NoZW1hLm9mKHNjaGVtYSk7XG4gICAgICAgIGNvbnN0IG1lbWJlclNjaGVtYXMgPSBucy5nZXRNZW1iZXJTY2hlbWFzKCk7XG4gICAgICAgIGNvbnN0IGlzRXZlbnRQYXlsb2FkID0gbnMuaXNTdHJ1Y3RTY2hlbWEoKSAmJlxuICAgICAgICAgICAgbnMuaXNNZW1iZXJTY2hlbWEoKSAmJlxuICAgICAgICAgICAgISFPYmplY3QudmFsdWVzKG1lbWJlclNjaGVtYXMpLmZpbmQoKG1lbWJlck5zKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICEhbWVtYmVyTnMuZ2V0TWVtYmVyVHJhaXRzKCkuZXZlbnRQYXlsb2FkO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIGlmIChpc0V2ZW50UGF5bG9hZCkge1xuICAgICAgICAgICAgY29uc3Qgb3V0cHV0ID0ge307XG4gICAgICAgICAgICBjb25zdCBtZW1iZXJOYW1lID0gT2JqZWN0LmtleXMobWVtYmVyU2NoZW1hcylbMF07XG4gICAgICAgICAgICBjb25zdCBldmVudE1lbWJlclNjaGVtYSA9IG1lbWJlclNjaGVtYXNbbWVtYmVyTmFtZV07XG4gICAgICAgICAgICBpZiAoZXZlbnRNZW1iZXJTY2hlbWEuaXNCbG9iU2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICBvdXRwdXRbbWVtYmVyTmFtZV0gPSBieXRlcztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIG91dHB1dFttZW1iZXJOYW1lXSA9IHRoaXMucmVhZChtZW1iZXJTY2hlbWFzW21lbWJlck5hbWVdLCBieXRlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gb3V0cHV0O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHhtbFN0cmluZyA9ICh0aGlzLnNlcmRlQ29udGV4dD8udXRmOEVuY29kZXIgPz8gdG9VdGY4KShieXRlcyk7XG4gICAgICAgIGNvbnN0IHBhcnNlZE9iamVjdCA9IHRoaXMucGFyc2VYbWwoeG1sU3RyaW5nKTtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVhZFNjaGVtYShzY2hlbWEsIGtleSA/IHBhcnNlZE9iamVjdFtrZXldIDogcGFyc2VkT2JqZWN0KTtcbiAgICB9XG4gICAgcmVhZFNjaGVtYShfc2NoZW1hLCB2YWx1ZSkge1xuICAgICAgICBjb25zdCBucyA9IE5vcm1hbGl6ZWRTY2hlbWEub2YoX3NjaGVtYSk7XG4gICAgICAgIGlmIChucy5pc1VuaXRTY2hlbWEoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHRyYWl0cyA9IG5zLmdldE1lcmdlZFRyYWl0cygpO1xuICAgICAgICBpZiAobnMuaXNMaXN0U2NoZW1hKCkgJiYgIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yZWFkU2NoZW1hKG5zLCBbdmFsdWVdKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgIGNvbnN0IHNwYXJzZSA9ICEhdHJhaXRzLnNwYXJzZTtcbiAgICAgICAgICAgIGNvbnN0IGZsYXQgPSAhIXRyYWl0cy54bWxGbGF0dGVuZWQ7XG4gICAgICAgICAgICBpZiAobnMuaXNMaXN0U2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBsaXN0VmFsdWUgPSBucy5nZXRWYWx1ZVNjaGVtYSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGJ1ZmZlciA9IFtdO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNvdXJjZUtleSA9IGxpc3RWYWx1ZS5nZXRNZXJnZWRUcmFpdHMoKS54bWxOYW1lID8/IFwibWVtYmVyXCI7XG4gICAgICAgICAgICAgICAgY29uc3Qgc291cmNlID0gZmxhdCA/IHZhbHVlIDogKHZhbHVlWzBdID8/IHZhbHVlKVtzb3VyY2VLZXldO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNvdXJjZUFycmF5ID0gQXJyYXkuaXNBcnJheShzb3VyY2UpID8gc291cmNlIDogW3NvdXJjZV07XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCB2IG9mIHNvdXJjZUFycmF5KSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2ICE9IG51bGwgfHwgc3BhcnNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBidWZmZXIucHVzaCh0aGlzLnJlYWRTY2hlbWEobGlzdFZhbHVlLCB2KSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGJ1ZmZlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGJ1ZmZlciA9IHt9O1xuICAgICAgICAgICAgaWYgKG5zLmlzTWFwU2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBrZXlOcyA9IG5zLmdldEtleVNjaGVtYSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IG1lbWJlck5zID0gbnMuZ2V0VmFsdWVTY2hlbWEoKTtcbiAgICAgICAgICAgICAgICBsZXQgZW50cmllcztcbiAgICAgICAgICAgICAgICBpZiAoZmxhdCkge1xuICAgICAgICAgICAgICAgICAgICBlbnRyaWVzID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBlbnRyaWVzID0gQXJyYXkuaXNBcnJheSh2YWx1ZS5lbnRyeSkgPyB2YWx1ZS5lbnRyeSA6IFt2YWx1ZS5lbnRyeV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IGtleVByb3BlcnR5ID0ga2V5TnMuZ2V0TWVyZ2VkVHJhaXRzKCkueG1sTmFtZSA/PyBcImtleVwiO1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlUHJvcGVydHkgPSBtZW1iZXJOcy5nZXRNZXJnZWRUcmFpdHMoKS54bWxOYW1lID8/IFwidmFsdWVcIjtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIGVudHJpZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qga2V5ID0gZW50cnlba2V5UHJvcGVydHldO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGVudHJ5W3ZhbHVlUHJvcGVydHldO1xuICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCB8fCBzcGFyc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcltrZXldID0gdGhpcy5yZWFkU2NoZW1hKG1lbWJlck5zLCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGJ1ZmZlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChucy5pc1N0cnVjdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdW5pb24gPSBucy5pc1VuaW9uU2NoZW1hKCk7XG4gICAgICAgICAgICAgICAgbGV0IHVuaW9uU2VyZGU7XG4gICAgICAgICAgICAgICAgaWYgKHVuaW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIHVuaW9uU2VyZGUgPSBuZXcgVW5pb25TZXJkZSh2YWx1ZSwgYnVmZmVyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBbbWVtYmVyTmFtZSwgbWVtYmVyU2NoZW1hXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1lbWJlclRyYWl0cyA9IG1lbWJlclNjaGVtYS5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sT2JqZWN0S2V5ID0gIW1lbWJlclRyYWl0cy5odHRwUGF5bG9hZFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBtZW1iZXJTY2hlbWEuZ2V0TWVtYmVyVHJhaXRzKCkueG1sTmFtZSA/PyBtZW1iZXJOYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICA6IG1lbWJlclRyYWl0cy54bWxOYW1lID8/IG1lbWJlclNjaGVtYS5nZXROYW1lKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh1bmlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdW5pb25TZXJkZS5tYXJrKHhtbE9iamVjdEtleSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlW3htbE9iamVjdEtleV0gIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyW21lbWJlck5hbWVdID0gdGhpcy5yZWFkU2NoZW1hKG1lbWJlclNjaGVtYSwgdmFsdWVbeG1sT2JqZWN0S2V5XSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHVuaW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIHVuaW9uU2VyZGUud3JpdGVVbmtub3duKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBidWZmZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobnMuaXNEb2N1bWVudFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBAYXdzLXNkay9jb3JlL3Byb3RvY29scyAtIHhtbCBkZXNlcmlhbGl6ZXIgdW5oYW5kbGVkIHNjaGVtYSB0eXBlIGZvciAke25zLmdldE5hbWUodHJ1ZSl9YCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzTGlzdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzTWFwU2NoZW1hKCkgfHwgbnMuaXNTdHJ1Y3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnN0cmluZ0Rlc2VyaWFsaXplci5yZWFkKG5zLCB2YWx1ZSk7XG4gICAgfVxuICAgIHBhcnNlWG1sKHhtbCkge1xuICAgICAgICBpZiAoeG1sLmxlbmd0aCkge1xuICAgICAgICAgICAgbGV0IHBhcnNlZE9iajtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgcGFyc2VkT2JqID0gcGFyc2VYTUwoeG1sKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgaWYgKGUgJiYgdHlwZW9mIGUgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIFwiJHJlc3BvbnNlQm9keVRleHRcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHhtbCxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCB0ZXh0Tm9kZU5hbWUgPSBcIiN0ZXh0XCI7XG4gICAgICAgICAgICBjb25zdCBrZXkgPSBPYmplY3Qua2V5cyhwYXJzZWRPYmopWzBdO1xuICAgICAgICAgICAgY29uc3QgcGFyc2VkT2JqVG9SZXR1cm4gPSBwYXJzZWRPYmpba2V5XTtcbiAgICAgICAgICAgIGlmIChwYXJzZWRPYmpUb1JldHVyblt0ZXh0Tm9kZU5hbWVdKSB7XG4gICAgICAgICAgICAgICAgcGFyc2VkT2JqVG9SZXR1cm5ba2V5XSA9IHBhcnNlZE9ialRvUmV0dXJuW3RleHROb2RlTmFtZV07XG4gICAgICAgICAgICAgICAgZGVsZXRlIHBhcnNlZE9ialRvUmV0dXJuW3RleHROb2RlTmFtZV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZ2V0VmFsdWVGcm9tVGV4dE5vZGUocGFyc2VkT2JqVG9SZXR1cm4pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7fTtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgZGV0ZXJtaW5lVGltZXN0YW1wRm9ybWF0LCBleHRlbmRlZEVuY29kZVVSSUNvbXBvbmVudCB9IGZyb20gXCJAc21pdGh5L2NvcmUvcHJvdG9jb2xzXCI7XG5pbXBvcnQgeyBOb3JtYWxpemVkU2NoZW1hIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IGdlbmVyYXRlSWRlbXBvdGVuY3lUb2tlbiwgTnVtZXJpY1ZhbHVlIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zZXJkZVwiO1xuaW1wb3J0IHsgZGF0ZVRvVXRjU3RyaW5nIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgdG9CYXNlNjQgfSBmcm9tIFwiQHNtaXRoeS91dGlsLWJhc2U2NFwiO1xuaW1wb3J0IHsgU2VyZGVDb250ZXh0Q29uZmlnIH0gZnJvbSBcIi4uL0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dFwiO1xuZXhwb3J0IGNsYXNzIFF1ZXJ5U2hhcGVTZXJpYWxpemVyIGV4dGVuZHMgU2VyZGVDb250ZXh0Q29uZmlnIHtcbiAgICBzZXR0aW5ncztcbiAgICBidWZmZXI7XG4gICAgY29uc3RydWN0b3Ioc2V0dGluZ3MpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5zZXR0aW5ncyA9IHNldHRpbmdzO1xuICAgIH1cbiAgICB3cml0ZShzY2hlbWEsIHZhbHVlLCBwcmVmaXggPSBcIlwiKSB7XG4gICAgICAgIGlmICh0aGlzLmJ1ZmZlciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmJ1ZmZlciA9IFwiXCI7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbnMgPSBOb3JtYWxpemVkU2NoZW1hLm9mKHNjaGVtYSk7XG4gICAgICAgIGlmIChwcmVmaXggJiYgIXByZWZpeC5lbmRzV2l0aChcIi5cIikpIHtcbiAgICAgICAgICAgIHByZWZpeCArPSBcIi5cIjtcbiAgICAgICAgfVxuICAgICAgICBpZiAobnMuaXNCbG9iU2NoZW1hKCkpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgfHwgdmFsdWUgaW5zdGFuY2VvZiBVaW50OEFycmF5KSB7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZUtleShwcmVmaXgpO1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVWYWx1ZSgodGhpcy5zZXJkZUNvbnRleHQ/LmJhc2U2NEVuY29kZXIgPz8gdG9CYXNlNjQpKHZhbHVlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAobnMuaXNCb29sZWFuU2NoZW1hKCkgfHwgbnMuaXNOdW1lcmljU2NoZW1hKCkgfHwgbnMuaXNTdHJpbmdTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlS2V5KHByZWZpeCk7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKFN0cmluZyh2YWx1ZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAobnMuaXNJZGVtcG90ZW5jeVRva2VuKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlS2V5KHByZWZpeCk7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKGdlbmVyYXRlSWRlbXBvdGVuY3lUb2tlbigpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChucy5pc0JpZ0ludGVnZXJTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlS2V5KHByZWZpeCk7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKFN0cmluZyh2YWx1ZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKG5zLmlzQmlnRGVjaW1hbFNjaGVtYSgpKSB7XG4gICAgICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVLZXkocHJlZml4KTtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlVmFsdWUodmFsdWUgaW5zdGFuY2VvZiBOdW1lcmljVmFsdWUgPyB2YWx1ZS5zdHJpbmcgOiBTdHJpbmcodmFsdWUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChucy5pc1RpbWVzdGFtcFNjaGVtYSgpKSB7XG4gICAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZUtleShwcmVmaXgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZvcm1hdCA9IGRldGVybWluZVRpbWVzdGFtcEZvcm1hdChucywgdGhpcy5zZXR0aW5ncyk7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChmb3JtYXQpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKHZhbHVlLnRvSVNPU3RyaW5nKCkucmVwbGFjZShcIi4wMDBaXCIsIFwiWlwiKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKGRhdGVUb1V0Y1N0cmluZyh2YWx1ZSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMud3JpdGVWYWx1ZShTdHJpbmcodmFsdWUuZ2V0VGltZSgpIC8gMTAwMCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKG5zLmlzRG9jdW1lbnRTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZSg2NCB8IDE1LCB2YWx1ZSwgcHJlZml4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGUoNCwgdmFsdWUsIHByZWZpeCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmICh2YWx1ZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlKDIxLCB2YWx1ZSwgcHJlZml4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGUoMTI4IHwgMTUsIHZhbHVlLCBwcmVmaXgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZUtleShwcmVmaXgpO1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVWYWx1ZShTdHJpbmcodmFsdWUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChucy5pc0xpc3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5zZXR0aW5ncy5zZXJpYWxpemVFbXB0eUxpc3RzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLndyaXRlS2V5KHByZWZpeCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLndyaXRlVmFsdWUoXCJcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1lbWJlciA9IG5zLmdldFZhbHVlU2NoZW1hKCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZsYXQgPSB0aGlzLnNldHRpbmdzLmZsYXR0ZW5MaXN0cyB8fCBucy5nZXRNZXJnZWRUcmFpdHMoKS54bWxGbGF0dGVuZWQ7XG4gICAgICAgICAgICAgICAgICAgIGxldCBpID0gMTtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbSA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0cmFpdHMgPSBtZW1iZXIuZ2V0TWVyZ2VkVHJhaXRzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdWZmaXggPSB0aGlzLmdldEtleShcIm1lbWJlclwiLCB0cmFpdHMueG1sTmFtZSwgdHJhaXRzLmVjMlF1ZXJ5TmFtZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSBmbGF0ID8gYCR7cHJlZml4fSR7aX1gIDogYCR7cHJlZml4fSR7c3VmZml4fS4ke2l9YDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMud3JpdGUobWVtYmVyLCBpdGVtLCBrZXkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgKytpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKG5zLmlzTWFwU2NoZW1hKCkpIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBrZXlTY2hlbWEgPSBucy5nZXRLZXlTY2hlbWEoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBtZW1iZXJTY2hlbWEgPSBucy5nZXRWYWx1ZVNjaGVtYSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZsYXQgPSBucy5nZXRNZXJnZWRUcmFpdHMoKS54bWxGbGF0dGVuZWQ7XG4gICAgICAgICAgICAgICAgbGV0IGkgPSAxO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodiA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBrZXlUcmFpdHMgPSBrZXlTY2hlbWEuZ2V0TWVyZ2VkVHJhaXRzKCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGtleVN1ZmZpeCA9IHRoaXMuZ2V0S2V5KFwia2V5XCIsIGtleVRyYWl0cy54bWxOYW1lLCBrZXlUcmFpdHMuZWMyUXVlcnlOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qga2V5ID0gZmxhdCA/IGAke3ByZWZpeH0ke2l9LiR7a2V5U3VmZml4fWAgOiBgJHtwcmVmaXh9ZW50cnkuJHtpfS4ke2tleVN1ZmZpeH1gO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWxUcmFpdHMgPSBtZW1iZXJTY2hlbWEuZ2V0TWVyZ2VkVHJhaXRzKCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlU3VmZml4ID0gdGhpcy5nZXRLZXkoXCJ2YWx1ZVwiLCB2YWxUcmFpdHMueG1sTmFtZSwgdmFsVHJhaXRzLmVjMlF1ZXJ5TmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlS2V5ID0gZmxhdCA/IGAke3ByZWZpeH0ke2l9LiR7dmFsdWVTdWZmaXh9YCA6IGAke3ByZWZpeH1lbnRyeS4ke2l9LiR7dmFsdWVTdWZmaXh9YDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy53cml0ZShrZXlTY2hlbWEsIGssIGtleSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMud3JpdGUobWVtYmVyU2NoZW1hLCB2LCB2YWx1ZUtleSk7XG4gICAgICAgICAgICAgICAgICAgICsraTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAobnMuaXNTdHJ1Y3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgICAgIGxldCBkaWRXcml0ZU1lbWJlciA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgW21lbWJlck5hbWUsIG1lbWJlcl0gb2YgbnMuc3RydWN0SXRlcmF0b3IoKSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWVbbWVtYmVyTmFtZV0gPT0gbnVsbCAmJiAhbWVtYmVyLmlzSWRlbXBvdGVuY3lUb2tlbigpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCB0cmFpdHMgPSBtZW1iZXIuZ2V0TWVyZ2VkVHJhaXRzKCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHN1ZmZpeCA9IHRoaXMuZ2V0S2V5KG1lbWJlck5hbWUsIHRyYWl0cy54bWxOYW1lLCB0cmFpdHMuZWMyUXVlcnlOYW1lLCBcInN0cnVjdFwiKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qga2V5ID0gYCR7cHJlZml4fSR7c3VmZml4fWA7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMud3JpdGUobWVtYmVyLCB2YWx1ZVttZW1iZXJOYW1lXSwga2V5KTtcbiAgICAgICAgICAgICAgICAgICAgZGlkV3JpdGVNZW1iZXIgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoIWRpZFdyaXRlTWVtYmVyICYmIG5zLmlzVW5pb25TY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB7ICR1bmtub3duIH0gPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoJHVua25vd24pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBbaywgdl0gPSAkdW5rbm93bjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IGAke3ByZWZpeH0ke2t9YDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMud3JpdGUoMTUsIHYsIGtleSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAobnMuaXNVbml0U2NoZW1hKCkpIHtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSBRdWVyeVNlcmlhbGl6ZXIgdW5yZWNvZ25pemVkIHNjaGVtYSB0eXBlICR7bnMuZ2V0TmFtZSh0cnVlKX1gKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmbHVzaCgpIHtcbiAgICAgICAgaWYgKHRoaXMuYnVmZmVyID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkBhd3Mtc2RrL2NvcmUvcHJvdG9jb2xzIC0gUXVlcnlTZXJpYWxpemVyIGNhbm5vdCBmbHVzaCB3aXRoIG5vdGhpbmcgd3JpdHRlbiB0byBidWZmZXIuXCIpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHN0ciA9IHRoaXMuYnVmZmVyO1xuICAgICAgICBkZWxldGUgdGhpcy5idWZmZXI7XG4gICAgICAgIHJldHVybiBzdHI7XG4gICAgfVxuICAgIGdldEtleShtZW1iZXJOYW1lLCB4bWxOYW1lLCBlYzJRdWVyeU5hbWUsIGtleVNvdXJjZSkge1xuICAgICAgICBjb25zdCB7IGVjMiwgY2FwaXRhbGl6ZUtleXMgfSA9IHRoaXMuc2V0dGluZ3M7XG4gICAgICAgIGlmIChlYzIgJiYgZWMyUXVlcnlOYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4gZWMyUXVlcnlOYW1lO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGtleSA9IHhtbE5hbWUgPz8gbWVtYmVyTmFtZTtcbiAgICAgICAgaWYgKGNhcGl0YWxpemVLZXlzICYmIGtleVNvdXJjZSA9PT0gXCJzdHJ1Y3RcIikge1xuICAgICAgICAgICAgcmV0dXJuIGtleVswXS50b1VwcGVyQ2FzZSgpICsga2V5LnNsaWNlKDEpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBrZXk7XG4gICAgfVxuICAgIHdyaXRlS2V5KGtleSkge1xuICAgICAgICBpZiAoa2V5LmVuZHNXaXRoKFwiLlwiKSkge1xuICAgICAgICAgICAga2V5ID0ga2V5LnNsaWNlKDAsIGtleS5sZW5ndGggLSAxKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmJ1ZmZlciArPSBgJiR7ZXh0ZW5kZWRFbmNvZGVVUklDb21wb25lbnQoa2V5KX09YDtcbiAgICB9XG4gICAgd3JpdGVWYWx1ZSh2YWx1ZSkge1xuICAgICAgICB0aGlzLmJ1ZmZlciArPSBleHRlbmRlZEVuY29kZVVSSUNvbXBvbmVudCh2YWx1ZSk7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IGNvbGxlY3RCb2R5LCBScGNQcm90b2NvbCB9IGZyb20gXCJAc21pdGh5L2NvcmUvcHJvdG9jb2xzXCI7XG5pbXBvcnQgeyBkZXJlZiwgTm9ybWFsaXplZFNjaGVtYSwgVHlwZVJlZ2lzdHJ5IH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IFByb3RvY29sTGliIH0gZnJvbSBcIi4uL1Byb3RvY29sTGliXCI7XG5pbXBvcnQgeyBYbWxTaGFwZURlc2VyaWFsaXplciB9IGZyb20gXCIuLi94bWwvWG1sU2hhcGVEZXNlcmlhbGl6ZXJcIjtcbmltcG9ydCB7IFF1ZXJ5U2hhcGVTZXJpYWxpemVyIH0gZnJvbSBcIi4vUXVlcnlTaGFwZVNlcmlhbGl6ZXJcIjtcbmV4cG9ydCBjbGFzcyBBd3NRdWVyeVByb3RvY29sIGV4dGVuZHMgUnBjUHJvdG9jb2wge1xuICAgIG9wdGlvbnM7XG4gICAgc2VyaWFsaXplcjtcbiAgICBkZXNlcmlhbGl6ZXI7XG4gICAgbWl4aW4gPSBuZXcgUHJvdG9jb2xMaWIoKTtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIGRlZmF1bHROYW1lc3BhY2U6IG9wdGlvbnMuZGVmYXVsdE5hbWVzcGFjZSxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgICAgIGNvbnN0IHNldHRpbmdzID0ge1xuICAgICAgICAgICAgdGltZXN0YW1wRm9ybWF0OiB7XG4gICAgICAgICAgICAgICAgdXNlVHJhaXQ6IHRydWUsXG4gICAgICAgICAgICAgICAgZGVmYXVsdDogNSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBodHRwQmluZGluZ3M6IGZhbHNlLFxuICAgICAgICAgICAgeG1sTmFtZXNwYWNlOiBvcHRpb25zLnhtbE5hbWVzcGFjZSxcbiAgICAgICAgICAgIHNlcnZpY2VOYW1lc3BhY2U6IG9wdGlvbnMuZGVmYXVsdE5hbWVzcGFjZSxcbiAgICAgICAgICAgIHNlcmlhbGl6ZUVtcHR5TGlzdHM6IHRydWUsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuc2VyaWFsaXplciA9IG5ldyBRdWVyeVNoYXBlU2VyaWFsaXplcihzZXR0aW5ncyk7XG4gICAgICAgIHRoaXMuZGVzZXJpYWxpemVyID0gbmV3IFhtbFNoYXBlRGVzZXJpYWxpemVyKHNldHRpbmdzKTtcbiAgICB9XG4gICAgZ2V0U2hhcGVJZCgpIHtcbiAgICAgICAgcmV0dXJuIFwiYXdzLnByb3RvY29scyNhd3NRdWVyeVwiO1xuICAgIH1cbiAgICBzZXRTZXJkZUNvbnRleHQoc2VyZGVDb250ZXh0KSB7XG4gICAgICAgIHRoaXMuc2VyaWFsaXplci5zZXRTZXJkZUNvbnRleHQoc2VyZGVDb250ZXh0KTtcbiAgICAgICAgdGhpcy5kZXNlcmlhbGl6ZXIuc2V0U2VyZGVDb250ZXh0KHNlcmRlQ29udGV4dCk7XG4gICAgfVxuICAgIGdldFBheWxvYWRDb2RlYygpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQVdTUXVlcnkgcHJvdG9jb2wgaGFzIG5vIHBheWxvYWQgY29kZWMuXCIpO1xuICAgIH1cbiAgICBhc3luYyBzZXJpYWxpemVSZXF1ZXN0KG9wZXJhdGlvblNjaGVtYSwgaW5wdXQsIGNvbnRleHQpIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IGF3YWl0IHN1cGVyLnNlcmlhbGl6ZVJlcXVlc3Qob3BlcmF0aW9uU2NoZW1hLCBpbnB1dCwgY29udGV4dCk7XG4gICAgICAgIGlmICghcmVxdWVzdC5wYXRoLmVuZHNXaXRoKFwiL1wiKSkge1xuICAgICAgICAgICAgcmVxdWVzdC5wYXRoICs9IFwiL1wiO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24ocmVxdWVzdC5oZWFkZXJzLCB7XG4gICAgICAgICAgICBcImNvbnRlbnQtdHlwZVwiOiBgYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkYCxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChkZXJlZihvcGVyYXRpb25TY2hlbWEuaW5wdXQpID09PSBcInVuaXRcIiB8fCAhcmVxdWVzdC5ib2R5KSB7XG4gICAgICAgICAgICByZXF1ZXN0LmJvZHkgPSBcIlwiO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGFjdGlvbiA9IG9wZXJhdGlvblNjaGVtYS5uYW1lLnNwbGl0KFwiI1wiKVsxXSA/PyBvcGVyYXRpb25TY2hlbWEubmFtZTtcbiAgICAgICAgcmVxdWVzdC5ib2R5ID0gYEFjdGlvbj0ke2FjdGlvbn0mVmVyc2lvbj0ke3RoaXMub3B0aW9ucy52ZXJzaW9ufWAgKyByZXF1ZXN0LmJvZHk7XG4gICAgICAgIGlmIChyZXF1ZXN0LmJvZHkuZW5kc1dpdGgoXCImXCIpKSB7XG4gICAgICAgICAgICByZXF1ZXN0LmJvZHkgPSByZXF1ZXN0LmJvZHkuc2xpY2UoLTEpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXF1ZXN0O1xuICAgIH1cbiAgICBhc3luYyBkZXNlcmlhbGl6ZVJlc3BvbnNlKG9wZXJhdGlvblNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UpIHtcbiAgICAgICAgY29uc3QgZGVzZXJpYWxpemVyID0gdGhpcy5kZXNlcmlhbGl6ZXI7XG4gICAgICAgIGNvbnN0IG5zID0gTm9ybWFsaXplZFNjaGVtYS5vZihvcGVyYXRpb25TY2hlbWEub3V0cHV0KTtcbiAgICAgICAgY29uc3QgZGF0YU9iamVjdCA9IHt9O1xuICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzQ29kZSA+PSAzMDApIHtcbiAgICAgICAgICAgIGNvbnN0IGJ5dGVzID0gYXdhaXQgY29sbGVjdEJvZHkocmVzcG9uc2UuYm9keSwgY29udGV4dCk7XG4gICAgICAgICAgICBpZiAoYnl0ZXMuYnl0ZUxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKGRhdGFPYmplY3QsIGF3YWl0IGRlc2VyaWFsaXplci5yZWFkKDE1LCBieXRlcykpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYXdhaXQgdGhpcy5oYW5kbGVFcnJvcihvcGVyYXRpb25TY2hlbWEsIGNvbnRleHQsIHJlc3BvbnNlLCBkYXRhT2JqZWN0LCB0aGlzLmRlc2VyaWFsaXplTWV0YWRhdGEocmVzcG9uc2UpKTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IGhlYWRlciBpbiByZXNwb25zZS5oZWFkZXJzKSB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHJlc3BvbnNlLmhlYWRlcnNbaGVhZGVyXTtcbiAgICAgICAgICAgIGRlbGV0ZSByZXNwb25zZS5oZWFkZXJzW2hlYWRlcl07XG4gICAgICAgICAgICByZXNwb25zZS5oZWFkZXJzW2hlYWRlci50b0xvd2VyQ2FzZSgpXSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNob3J0TmFtZSA9IG9wZXJhdGlvblNjaGVtYS5uYW1lLnNwbGl0KFwiI1wiKVsxXSA/PyBvcGVyYXRpb25TY2hlbWEubmFtZTtcbiAgICAgICAgY29uc3QgYXdzUXVlcnlSZXN1bHRLZXkgPSBucy5pc1N0cnVjdFNjaGVtYSgpICYmIHRoaXMudXNlTmVzdGVkUmVzdWx0KCkgPyBzaG9ydE5hbWUgKyBcIlJlc3VsdFwiIDogdW5kZWZpbmVkO1xuICAgICAgICBjb25zdCBieXRlcyA9IGF3YWl0IGNvbGxlY3RCb2R5KHJlc3BvbnNlLmJvZHksIGNvbnRleHQpO1xuICAgICAgICBpZiAoYnl0ZXMuYnl0ZUxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oZGF0YU9iamVjdCwgYXdhaXQgZGVzZXJpYWxpemVyLnJlYWQobnMsIGJ5dGVzLCBhd3NRdWVyeVJlc3VsdEtleSkpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG91dHB1dCA9IHtcbiAgICAgICAgICAgICRtZXRhZGF0YTogdGhpcy5kZXNlcmlhbGl6ZU1ldGFkYXRhKHJlc3BvbnNlKSxcbiAgICAgICAgICAgIC4uLmRhdGFPYmplY3QsXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBvdXRwdXQ7XG4gICAgfVxuICAgIHVzZU5lc3RlZFJlc3VsdCgpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGFzeW5jIGhhbmRsZUVycm9yKG9wZXJhdGlvblNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UsIGRhdGFPYmplY3QsIG1ldGFkYXRhKSB7XG4gICAgICAgIGNvbnN0IGVycm9ySWRlbnRpZmllciA9IHRoaXMubG9hZFF1ZXJ5RXJyb3JDb2RlKHJlc3BvbnNlLCBkYXRhT2JqZWN0KSA/PyBcIlVua25vd25cIjtcbiAgICAgICAgY29uc3QgZXJyb3JEYXRhID0gdGhpcy5sb2FkUXVlcnlFcnJvcihkYXRhT2JqZWN0KSA/PyB7fTtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IHRoaXMubG9hZFF1ZXJ5RXJyb3JNZXNzYWdlKGRhdGFPYmplY3QpO1xuICAgICAgICBlcnJvckRhdGEubWVzc2FnZSA9IG1lc3NhZ2U7XG4gICAgICAgIGVycm9yRGF0YS5FcnJvciA9IHtcbiAgICAgICAgICAgIFR5cGU6IGVycm9yRGF0YS5UeXBlLFxuICAgICAgICAgICAgQ29kZTogZXJyb3JEYXRhLkNvZGUsXG4gICAgICAgICAgICBNZXNzYWdlOiBtZXNzYWdlLFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCB7IGVycm9yU2NoZW1hLCBlcnJvck1ldGFkYXRhIH0gPSBhd2FpdCB0aGlzLm1peGluLmdldEVycm9yU2NoZW1hT3JUaHJvd0Jhc2VFeGNlcHRpb24oZXJyb3JJZGVudGlmaWVyLCB0aGlzLm9wdGlvbnMuZGVmYXVsdE5hbWVzcGFjZSwgcmVzcG9uc2UsIGVycm9yRGF0YSwgbWV0YWRhdGEsIHRoaXMubWl4aW4uZmluZFF1ZXJ5Q29tcGF0aWJsZUVycm9yKTtcbiAgICAgICAgY29uc3QgbnMgPSBOb3JtYWxpemVkU2NoZW1hLm9mKGVycm9yU2NoZW1hKTtcbiAgICAgICAgY29uc3QgRXJyb3JDdG9yID0gVHlwZVJlZ2lzdHJ5LmZvcihlcnJvclNjaGVtYVsxXSkuZ2V0RXJyb3JDdG9yKGVycm9yU2NoZW1hKSA/PyBFcnJvcjtcbiAgICAgICAgY29uc3QgZXhjZXB0aW9uID0gbmV3IEVycm9yQ3RvcihtZXNzYWdlKTtcbiAgICAgICAgY29uc3Qgb3V0cHV0ID0ge1xuICAgICAgICAgICAgVHlwZTogZXJyb3JEYXRhLkVycm9yLlR5cGUsXG4gICAgICAgICAgICBDb2RlOiBlcnJvckRhdGEuRXJyb3IuQ29kZSxcbiAgICAgICAgICAgIEVycm9yOiBlcnJvckRhdGEuRXJyb3IsXG4gICAgICAgIH07XG4gICAgICAgIGZvciAoY29uc3QgW25hbWUsIG1lbWJlcl0gb2YgbnMuc3RydWN0SXRlcmF0b3IoKSkge1xuICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gbWVtYmVyLmdldE1lcmdlZFRyYWl0cygpLnhtbE5hbWUgPz8gbmFtZTtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZXJyb3JEYXRhW3RhcmdldF0gPz8gZGF0YU9iamVjdFt0YXJnZXRdO1xuICAgICAgICAgICAgb3V0cHV0W25hbWVdID0gdGhpcy5kZXNlcmlhbGl6ZXIucmVhZFNjaGVtYShtZW1iZXIsIHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyB0aGlzLm1peGluLmRlY29yYXRlU2VydmljZUV4Y2VwdGlvbihPYmplY3QuYXNzaWduKGV4Y2VwdGlvbiwgZXJyb3JNZXRhZGF0YSwge1xuICAgICAgICAgICAgJGZhdWx0OiBucy5nZXRNZXJnZWRUcmFpdHMoKS5lcnJvcixcbiAgICAgICAgICAgIG1lc3NhZ2UsXG4gICAgICAgIH0sIG91dHB1dCksIGRhdGFPYmplY3QpO1xuICAgIH1cbiAgICBsb2FkUXVlcnlFcnJvckNvZGUob3V0cHV0LCBkYXRhKSB7XG4gICAgICAgIGNvbnN0IGNvZGUgPSAoZGF0YS5FcnJvcnM/LlswXT8uRXJyb3IgPz8gZGF0YS5FcnJvcnM/LkVycm9yID8/IGRhdGEuRXJyb3IpPy5Db2RlO1xuICAgICAgICBpZiAoY29kZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gY29kZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3V0cHV0LnN0YXR1c0NvZGUgPT0gNDA0KSB7XG4gICAgICAgICAgICByZXR1cm4gXCJOb3RGb3VuZFwiO1xuICAgICAgICB9XG4gICAgfVxuICAgIGxvYWRRdWVyeUVycm9yKGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIGRhdGEuRXJyb3JzPy5bMF0/LkVycm9yID8/IGRhdGEuRXJyb3JzPy5FcnJvciA/PyBkYXRhLkVycm9yO1xuICAgIH1cbiAgICBsb2FkUXVlcnlFcnJvck1lc3NhZ2UoZGF0YSkge1xuICAgICAgICBjb25zdCBlcnJvckRhdGEgPSB0aGlzLmxvYWRRdWVyeUVycm9yKGRhdGEpO1xuICAgICAgICByZXR1cm4gZXJyb3JEYXRhPy5tZXNzYWdlID8/IGVycm9yRGF0YT8uTWVzc2FnZSA/PyBkYXRhLm1lc3NhZ2UgPz8gZGF0YS5NZXNzYWdlID8/IFwiVW5rbm93blwiO1xuICAgIH1cbiAgICBnZXREZWZhdWx0Q29udGVudFR5cGUoKSB7XG4gICAgICAgIHJldHVybiBcImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZFwiO1xuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBBd3NRdWVyeVByb3RvY29sIH0gZnJvbSBcIi4vQXdzUXVlcnlQcm90b2NvbFwiO1xuZXhwb3J0IGNsYXNzIEF3c0VjMlF1ZXJ5UHJvdG9jb2wgZXh0ZW5kcyBBd3NRdWVyeVByb3RvY29sIHtcbiAgICBvcHRpb25zO1xuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnMpIHtcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgICAgIGNvbnN0IGVjMlNldHRpbmdzID0ge1xuICAgICAgICAgICAgY2FwaXRhbGl6ZUtleXM6IHRydWUsXG4gICAgICAgICAgICBmbGF0dGVuTGlzdHM6IHRydWUsXG4gICAgICAgICAgICBzZXJpYWxpemVFbXB0eUxpc3RzOiBmYWxzZSxcbiAgICAgICAgICAgIGVjMjogdHJ1ZSxcbiAgICAgICAgfTtcbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLnNlcmlhbGl6ZXIuc2V0dGluZ3MsIGVjMlNldHRpbmdzKTtcbiAgICB9XG4gICAgdXNlTmVzdGVkUmVzdWx0KCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IHBhcnNlWE1MIH0gZnJvbSBcIkBhd3Mtc2RrL3htbC1idWlsZGVyXCI7XG5pbXBvcnQgeyBnZXRWYWx1ZUZyb21UZXh0Tm9kZSB9IGZyb20gXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjtcbmltcG9ydCB7IGNvbGxlY3RCb2R5U3RyaW5nIH0gZnJvbSBcIi4uL2NvbW1vblwiO1xuZXhwb3J0IGNvbnN0IHBhcnNlWG1sQm9keSA9IChzdHJlYW1Cb2R5LCBjb250ZXh0KSA9PiBjb2xsZWN0Qm9keVN0cmluZyhzdHJlYW1Cb2R5LCBjb250ZXh0KS50aGVuKChlbmNvZGVkKSA9PiB7XG4gICAgaWYgKGVuY29kZWQubGVuZ3RoKSB7XG4gICAgICAgIGxldCBwYXJzZWRPYmo7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBwYXJzZWRPYmogPSBwYXJzZVhNTChlbmNvZGVkKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgaWYgKGUgJiYgdHlwZW9mIGUgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwgXCIkcmVzcG9uc2VCb2R5VGV4dFwiLCB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBlbmNvZGVkLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB0ZXh0Tm9kZU5hbWUgPSBcIiN0ZXh0XCI7XG4gICAgICAgIGNvbnN0IGtleSA9IE9iamVjdC5rZXlzKHBhcnNlZE9iailbMF07XG4gICAgICAgIGNvbnN0IHBhcnNlZE9ialRvUmV0dXJuID0gcGFyc2VkT2JqW2tleV07XG4gICAgICAgIGlmIChwYXJzZWRPYmpUb1JldHVyblt0ZXh0Tm9kZU5hbWVdKSB7XG4gICAgICAgICAgICBwYXJzZWRPYmpUb1JldHVybltrZXldID0gcGFyc2VkT2JqVG9SZXR1cm5bdGV4dE5vZGVOYW1lXTtcbiAgICAgICAgICAgIGRlbGV0ZSBwYXJzZWRPYmpUb1JldHVyblt0ZXh0Tm9kZU5hbWVdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBnZXRWYWx1ZUZyb21UZXh0Tm9kZShwYXJzZWRPYmpUb1JldHVybik7XG4gICAgfVxuICAgIHJldHVybiB7fTtcbn0pO1xuZXhwb3J0IGNvbnN0IHBhcnNlWG1sRXJyb3JCb2R5ID0gYXN5bmMgKGVycm9yQm9keSwgY29udGV4dCkgPT4ge1xuICAgIGNvbnN0IHZhbHVlID0gYXdhaXQgcGFyc2VYbWxCb2R5KGVycm9yQm9keSwgY29udGV4dCk7XG4gICAgaWYgKHZhbHVlLkVycm9yKSB7XG4gICAgICAgIHZhbHVlLkVycm9yLm1lc3NhZ2UgPSB2YWx1ZS5FcnJvci5tZXNzYWdlID8/IHZhbHVlLkVycm9yLk1lc3NhZ2U7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZTtcbn07XG5leHBvcnQgY29uc3QgbG9hZFJlc3RYbWxFcnJvckNvZGUgPSAob3V0cHV0LCBkYXRhKSA9PiB7XG4gICAgaWYgKGRhdGE/LkVycm9yPy5Db2RlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIGRhdGEuRXJyb3IuQ29kZTtcbiAgICB9XG4gICAgaWYgKGRhdGE/LkNvZGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gZGF0YS5Db2RlO1xuICAgIH1cbiAgICBpZiAob3V0cHV0LnN0YXR1c0NvZGUgPT0gNDA0KSB7XG4gICAgICAgIHJldHVybiBcIk5vdEZvdW5kXCI7XG4gICAgfVxufTtcbiIsICJpbXBvcnQgeyBYbWxOb2RlLCBYbWxUZXh0IH0gZnJvbSBcIkBhd3Mtc2RrL3htbC1idWlsZGVyXCI7XG5pbXBvcnQgeyBkZXRlcm1pbmVUaW1lc3RhbXBGb3JtYXQgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3Byb3RvY29sc1wiO1xuaW1wb3J0IHsgTm9ybWFsaXplZFNjaGVtYSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2NoZW1hXCI7XG5pbXBvcnQgeyBnZW5lcmF0ZUlkZW1wb3RlbmN5VG9rZW4sIE51bWVyaWNWYWx1ZSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2VyZGVcIjtcbmltcG9ydCB7IGRhdGVUb1V0Y1N0cmluZyB9IGZyb20gXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjtcbmltcG9ydCB7IGZyb21CYXNlNjQsIHRvQmFzZTY0IH0gZnJvbSBcIkBzbWl0aHkvdXRpbC1iYXNlNjRcIjtcbmltcG9ydCB7IFNlcmRlQ29udGV4dENvbmZpZyB9IGZyb20gXCIuLi9Db25maWd1cmFibGVTZXJkZUNvbnRleHRcIjtcbmV4cG9ydCBjbGFzcyBYbWxTaGFwZVNlcmlhbGl6ZXIgZXh0ZW5kcyBTZXJkZUNvbnRleHRDb25maWcge1xuICAgIHNldHRpbmdzO1xuICAgIHN0cmluZ0J1ZmZlcjtcbiAgICBieXRlQnVmZmVyO1xuICAgIGJ1ZmZlcjtcbiAgICBjb25zdHJ1Y3RvcihzZXR0aW5ncykge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnNldHRpbmdzID0gc2V0dGluZ3M7XG4gICAgfVxuICAgIHdyaXRlKHNjaGVtYSwgdmFsdWUpIHtcbiAgICAgICAgY29uc3QgbnMgPSBOb3JtYWxpemVkU2NoZW1hLm9mKHNjaGVtYSk7XG4gICAgICAgIGlmIChucy5pc1N0cmluZ1NjaGVtYSgpICYmIHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgdGhpcy5zdHJpbmdCdWZmZXIgPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChucy5pc0Jsb2JTY2hlbWEoKSkge1xuICAgICAgICAgICAgdGhpcy5ieXRlQnVmZmVyID1cbiAgICAgICAgICAgICAgICBcImJ5dGVMZW5ndGhcIiBpbiB2YWx1ZVxuICAgICAgICAgICAgICAgICAgICA/IHZhbHVlXG4gICAgICAgICAgICAgICAgICAgIDogKHRoaXMuc2VyZGVDb250ZXh0Py5iYXNlNjREZWNvZGVyID8/IGZyb21CYXNlNjQpKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuYnVmZmVyID0gdGhpcy53cml0ZVN0cnVjdChucywgdmFsdWUsIHVuZGVmaW5lZCk7XG4gICAgICAgICAgICBjb25zdCB0cmFpdHMgPSBucy5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgICAgIGlmICh0cmFpdHMuaHR0cFBheWxvYWQgJiYgIXRyYWl0cy54bWxOYW1lKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5idWZmZXIud2l0aE5hbWUobnMuZ2V0TmFtZSgpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBmbHVzaCgpIHtcbiAgICAgICAgaWYgKHRoaXMuYnl0ZUJ1ZmZlciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBjb25zdCBieXRlcyA9IHRoaXMuYnl0ZUJ1ZmZlcjtcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLmJ5dGVCdWZmZXI7XG4gICAgICAgICAgICByZXR1cm4gYnl0ZXM7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuc3RyaW5nQnVmZmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHN0ciA9IHRoaXMuc3RyaW5nQnVmZmVyO1xuICAgICAgICAgICAgZGVsZXRlIHRoaXMuc3RyaW5nQnVmZmVyO1xuICAgICAgICAgICAgcmV0dXJuIHN0cjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBidWZmZXIgPSB0aGlzLmJ1ZmZlcjtcbiAgICAgICAgaWYgKHRoaXMuc2V0dGluZ3MueG1sTmFtZXNwYWNlKSB7XG4gICAgICAgICAgICBpZiAoIWJ1ZmZlcj8uYXR0cmlidXRlcz8uW1wieG1sbnNcIl0pIHtcbiAgICAgICAgICAgICAgICBidWZmZXIuYWRkQXR0cmlidXRlKFwieG1sbnNcIiwgdGhpcy5zZXR0aW5ncy54bWxOYW1lc3BhY2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGRlbGV0ZSB0aGlzLmJ1ZmZlcjtcbiAgICAgICAgcmV0dXJuIGJ1ZmZlci50b1N0cmluZygpO1xuICAgIH1cbiAgICB3cml0ZVN0cnVjdChucywgdmFsdWUsIHBhcmVudFhtbG5zKSB7XG4gICAgICAgIGNvbnN0IHRyYWl0cyA9IG5zLmdldE1lcmdlZFRyYWl0cygpO1xuICAgICAgICBjb25zdCBuYW1lID0gbnMuaXNNZW1iZXJTY2hlbWEoKSAmJiAhdHJhaXRzLmh0dHBQYXlsb2FkXG4gICAgICAgICAgICA/IG5zLmdldE1lbWJlclRyYWl0cygpLnhtbE5hbWUgPz8gbnMuZ2V0TWVtYmVyTmFtZSgpXG4gICAgICAgICAgICA6IHRyYWl0cy54bWxOYW1lID8/IG5zLmdldE5hbWUoKTtcbiAgICAgICAgaWYgKCFuYW1lIHx8ICFucy5pc1N0cnVjdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEBhd3Mtc2RrL2NvcmUvcHJvdG9jb2xzIC0geG1sIHNlcmlhbGl6ZXIsIGNhbm5vdCB3cml0ZSBzdHJ1Y3Qgd2l0aCBlbXB0eSBuYW1lIG9yIG5vbi1zdHJ1Y3QsIHNjaGVtYT0ke25zLmdldE5hbWUodHJ1ZSl9LmApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHN0cnVjdFhtbE5vZGUgPSBYbWxOb2RlLm9mKG5hbWUpO1xuICAgICAgICBjb25zdCBbeG1sbnNBdHRyLCB4bWxuc10gPSB0aGlzLmdldFhtbG5zQXR0cmlidXRlKG5zLCBwYXJlbnRYbWxucyk7XG4gICAgICAgIGZvciAoY29uc3QgW21lbWJlck5hbWUsIG1lbWJlclNjaGVtYV0gb2YgbnMuc3RydWN0SXRlcmF0b3IoKSkge1xuICAgICAgICAgICAgY29uc3QgdmFsID0gdmFsdWVbbWVtYmVyTmFtZV07XG4gICAgICAgICAgICBpZiAodmFsICE9IG51bGwgfHwgbWVtYmVyU2NoZW1hLmlzSWRlbXBvdGVuY3lUb2tlbigpKSB7XG4gICAgICAgICAgICAgICAgaWYgKG1lbWJlclNjaGVtYS5nZXRNZXJnZWRUcmFpdHMoKS54bWxBdHRyaWJ1dGUpIHtcbiAgICAgICAgICAgICAgICAgICAgc3RydWN0WG1sTm9kZS5hZGRBdHRyaWJ1dGUobWVtYmVyU2NoZW1hLmdldE1lcmdlZFRyYWl0cygpLnhtbE5hbWUgPz8gbWVtYmVyTmFtZSwgdGhpcy53cml0ZVNpbXBsZShtZW1iZXJTY2hlbWEsIHZhbCkpO1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKG1lbWJlclNjaGVtYS5pc0xpc3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLndyaXRlTGlzdChtZW1iZXJTY2hlbWEsIHZhbCwgc3RydWN0WG1sTm9kZSwgeG1sbnMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChtZW1iZXJTY2hlbWEuaXNNYXBTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLndyaXRlTWFwKG1lbWJlclNjaGVtYSwgdmFsLCBzdHJ1Y3RYbWxOb2RlLCB4bWxucyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKG1lbWJlclNjaGVtYS5pc1N0cnVjdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHN0cnVjdFhtbE5vZGUuYWRkQ2hpbGROb2RlKHRoaXMud3JpdGVTdHJ1Y3QobWVtYmVyU2NoZW1hLCB2YWwsIHhtbG5zKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtZW1iZXJOb2RlID0gWG1sTm9kZS5vZihtZW1iZXJTY2hlbWEuZ2V0TWVyZ2VkVHJhaXRzKCkueG1sTmFtZSA/PyBtZW1iZXJTY2hlbWEuZ2V0TWVtYmVyTmFtZSgpKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy53cml0ZVNpbXBsZUludG8obWVtYmVyU2NoZW1hLCB2YWwsIG1lbWJlck5vZGUsIHhtbG5zKTtcbiAgICAgICAgICAgICAgICAgICAgc3RydWN0WG1sTm9kZS5hZGRDaGlsZE5vZGUobWVtYmVyTm9kZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHsgJHVua25vd24gfSA9IHZhbHVlO1xuICAgICAgICBpZiAoJHVua25vd24gJiYgbnMuaXNVbmlvblNjaGVtYSgpICYmIEFycmF5LmlzQXJyYXkoJHVua25vd24pICYmIE9iamVjdC5rZXlzKHZhbHVlKS5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgIGNvbnN0IFtrLCB2XSA9ICR1bmtub3duO1xuICAgICAgICAgICAgY29uc3Qgbm9kZSA9IFhtbE5vZGUub2Yoayk7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHYgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBYbWxOb2RlIHx8IHZhbHVlIGluc3RhbmNlb2YgWG1sVGV4dCkge1xuICAgICAgICAgICAgICAgICAgICBzdHJ1Y3RYbWxOb2RlLmFkZENoaWxkTm9kZSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEBhd3Mtc2RrIC0gJHVua25vd24gdW5pb24gbWVtYmVyIGluIFhNTCByZXF1aXJlcyBgICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGB2YWx1ZSBvZiB0eXBlIHN0cmluZywgQGF3cy1zZGsveG1sLWJ1aWxkZXI6OlhtbE5vZGUgb3IgWG1sVGV4dC5gKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLndyaXRlU2ltcGxlSW50bygwLCB2LCBub2RlLCB4bWxucyk7XG4gICAgICAgICAgICBzdHJ1Y3RYbWxOb2RlLmFkZENoaWxkTm9kZShub2RlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoeG1sbnMpIHtcbiAgICAgICAgICAgIHN0cnVjdFhtbE5vZGUuYWRkQXR0cmlidXRlKHhtbG5zQXR0ciwgeG1sbnMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzdHJ1Y3RYbWxOb2RlO1xuICAgIH1cbiAgICB3cml0ZUxpc3QobGlzdE1lbWJlciwgYXJyYXksIGNvbnRhaW5lciwgcGFyZW50WG1sbnMpIHtcbiAgICAgICAgaWYgKCFsaXN0TWVtYmVyLmlzTWVtYmVyU2NoZW1hKCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSB4bWwgc2VyaWFsaXplciwgY2Fubm90IHdyaXRlIG5vbi1tZW1iZXIgbGlzdDogJHtsaXN0TWVtYmVyLmdldE5hbWUodHJ1ZSl9YCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbGlzdFRyYWl0cyA9IGxpc3RNZW1iZXIuZ2V0TWVyZ2VkVHJhaXRzKCk7XG4gICAgICAgIGNvbnN0IGxpc3RWYWx1ZVNjaGVtYSA9IGxpc3RNZW1iZXIuZ2V0VmFsdWVTY2hlbWEoKTtcbiAgICAgICAgY29uc3QgbGlzdFZhbHVlVHJhaXRzID0gbGlzdFZhbHVlU2NoZW1hLmdldE1lcmdlZFRyYWl0cygpO1xuICAgICAgICBjb25zdCBzcGFyc2UgPSAhIWxpc3RWYWx1ZVRyYWl0cy5zcGFyc2U7XG4gICAgICAgIGNvbnN0IGZsYXQgPSAhIWxpc3RUcmFpdHMueG1sRmxhdHRlbmVkO1xuICAgICAgICBjb25zdCBbeG1sbnNBdHRyLCB4bWxuc10gPSB0aGlzLmdldFhtbG5zQXR0cmlidXRlKGxpc3RNZW1iZXIsIHBhcmVudFhtbG5zKTtcbiAgICAgICAgY29uc3Qgd3JpdGVJdGVtID0gKGNvbnRhaW5lciwgdmFsdWUpID0+IHtcbiAgICAgICAgICAgIGlmIChsaXN0VmFsdWVTY2hlbWEuaXNMaXN0U2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlTGlzdChsaXN0VmFsdWVTY2hlbWEsIEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbdmFsdWVdLCBjb250YWluZXIsIHhtbG5zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGxpc3RWYWx1ZVNjaGVtYS5pc01hcFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZU1hcChsaXN0VmFsdWVTY2hlbWEsIHZhbHVlLCBjb250YWluZXIsIHhtbG5zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGxpc3RWYWx1ZVNjaGVtYS5pc1N0cnVjdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0ID0gdGhpcy53cml0ZVN0cnVjdChsaXN0VmFsdWVTY2hlbWEsIHZhbHVlLCB4bWxucyk7XG4gICAgICAgICAgICAgICAgY29udGFpbmVyLmFkZENoaWxkTm9kZShzdHJ1Y3Qud2l0aE5hbWUoZmxhdCA/IGxpc3RUcmFpdHMueG1sTmFtZSA/PyBsaXN0TWVtYmVyLmdldE1lbWJlck5hbWUoKSA6IGxpc3RWYWx1ZVRyYWl0cy54bWxOYW1lID8/IFwibWVtYmVyXCIpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxpc3RJdGVtTm9kZSA9IFhtbE5vZGUub2YoZmxhdCA/IGxpc3RUcmFpdHMueG1sTmFtZSA/PyBsaXN0TWVtYmVyLmdldE1lbWJlck5hbWUoKSA6IGxpc3RWYWx1ZVRyYWl0cy54bWxOYW1lID8/IFwibWVtYmVyXCIpO1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVTaW1wbGVJbnRvKGxpc3RWYWx1ZVNjaGVtYSwgdmFsdWUsIGxpc3RJdGVtTm9kZSwgeG1sbnMpO1xuICAgICAgICAgICAgICAgIGNvbnRhaW5lci5hZGRDaGlsZE5vZGUobGlzdEl0ZW1Ob2RlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgaWYgKGZsYXQpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgdmFsdWUgb2YgYXJyYXkpIHtcbiAgICAgICAgICAgICAgICBpZiAoc3BhcnNlIHx8IHZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgd3JpdGVJdGVtKGNvbnRhaW5lciwgdmFsdWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGxpc3ROb2RlID0gWG1sTm9kZS5vZihsaXN0VHJhaXRzLnhtbE5hbWUgPz8gbGlzdE1lbWJlci5nZXRNZW1iZXJOYW1lKCkpO1xuICAgICAgICAgICAgaWYgKHhtbG5zKSB7XG4gICAgICAgICAgICAgICAgbGlzdE5vZGUuYWRkQXR0cmlidXRlKHhtbG5zQXR0ciwgeG1sbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZm9yIChjb25zdCB2YWx1ZSBvZiBhcnJheSkge1xuICAgICAgICAgICAgICAgIGlmIChzcGFyc2UgfHwgdmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICB3cml0ZUl0ZW0obGlzdE5vZGUsIHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb250YWluZXIuYWRkQ2hpbGROb2RlKGxpc3ROb2RlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICB3cml0ZU1hcChtYXBNZW1iZXIsIG1hcCwgY29udGFpbmVyLCBwYXJlbnRYbWxucywgY29udGFpbmVySXNNYXAgPSBmYWxzZSkge1xuICAgICAgICBpZiAoIW1hcE1lbWJlci5pc01lbWJlclNjaGVtYSgpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEBhd3Mtc2RrL2NvcmUvcHJvdG9jb2xzIC0geG1sIHNlcmlhbGl6ZXIsIGNhbm5vdCB3cml0ZSBub24tbWVtYmVyIG1hcDogJHttYXBNZW1iZXIuZ2V0TmFtZSh0cnVlKX1gKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBtYXBUcmFpdHMgPSBtYXBNZW1iZXIuZ2V0TWVyZ2VkVHJhaXRzKCk7XG4gICAgICAgIGNvbnN0IG1hcEtleVNjaGVtYSA9IG1hcE1lbWJlci5nZXRLZXlTY2hlbWEoKTtcbiAgICAgICAgY29uc3QgbWFwS2V5VHJhaXRzID0gbWFwS2V5U2NoZW1hLmdldE1lcmdlZFRyYWl0cygpO1xuICAgICAgICBjb25zdCBrZXlUYWcgPSBtYXBLZXlUcmFpdHMueG1sTmFtZSA/PyBcImtleVwiO1xuICAgICAgICBjb25zdCBtYXBWYWx1ZVNjaGVtYSA9IG1hcE1lbWJlci5nZXRWYWx1ZVNjaGVtYSgpO1xuICAgICAgICBjb25zdCBtYXBWYWx1ZVRyYWl0cyA9IG1hcFZhbHVlU2NoZW1hLmdldE1lcmdlZFRyYWl0cygpO1xuICAgICAgICBjb25zdCB2YWx1ZVRhZyA9IG1hcFZhbHVlVHJhaXRzLnhtbE5hbWUgPz8gXCJ2YWx1ZVwiO1xuICAgICAgICBjb25zdCBzcGFyc2UgPSAhIW1hcFZhbHVlVHJhaXRzLnNwYXJzZTtcbiAgICAgICAgY29uc3QgZmxhdCA9ICEhbWFwVHJhaXRzLnhtbEZsYXR0ZW5lZDtcbiAgICAgICAgY29uc3QgW3htbG5zQXR0ciwgeG1sbnNdID0gdGhpcy5nZXRYbWxuc0F0dHJpYnV0ZShtYXBNZW1iZXIsIHBhcmVudFhtbG5zKTtcbiAgICAgICAgY29uc3QgYWRkS2V5VmFsdWUgPSAoZW50cnksIGtleSwgdmFsKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBrZXlOb2RlID0gWG1sTm9kZS5vZihrZXlUYWcsIGtleSk7XG4gICAgICAgICAgICBjb25zdCBba2V5WG1sbnNBdHRyLCBrZXlYbWxuc10gPSB0aGlzLmdldFhtbG5zQXR0cmlidXRlKG1hcEtleVNjaGVtYSwgeG1sbnMpO1xuICAgICAgICAgICAgaWYgKGtleVhtbG5zKSB7XG4gICAgICAgICAgICAgICAga2V5Tm9kZS5hZGRBdHRyaWJ1dGUoa2V5WG1sbnNBdHRyLCBrZXlYbWxucyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbnRyeS5hZGRDaGlsZE5vZGUoa2V5Tm9kZSk7XG4gICAgICAgICAgICBsZXQgdmFsdWVOb2RlID0gWG1sTm9kZS5vZih2YWx1ZVRhZyk7XG4gICAgICAgICAgICBpZiAobWFwVmFsdWVTY2hlbWEuaXNMaXN0U2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlTGlzdChtYXBWYWx1ZVNjaGVtYSwgdmFsLCB2YWx1ZU5vZGUsIHhtbG5zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKG1hcFZhbHVlU2NoZW1hLmlzTWFwU2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlTWFwKG1hcFZhbHVlU2NoZW1hLCB2YWwsIHZhbHVlTm9kZSwgeG1sbnMsIHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAobWFwVmFsdWVTY2hlbWEuaXNTdHJ1Y3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIHZhbHVlTm9kZSA9IHRoaXMud3JpdGVTdHJ1Y3QobWFwVmFsdWVTY2hlbWEsIHZhbCwgeG1sbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZVNpbXBsZUludG8obWFwVmFsdWVTY2hlbWEsIHZhbCwgdmFsdWVOb2RlLCB4bWxucyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbnRyeS5hZGRDaGlsZE5vZGUodmFsdWVOb2RlKTtcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKGZsYXQpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsXSBvZiBPYmplY3QuZW50cmllcyhtYXApKSB7XG4gICAgICAgICAgICAgICAgaWYgKHNwYXJzZSB8fCB2YWwgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlbnRyeSA9IFhtbE5vZGUub2YobWFwVHJhaXRzLnhtbE5hbWUgPz8gbWFwTWVtYmVyLmdldE1lbWJlck5hbWUoKSk7XG4gICAgICAgICAgICAgICAgICAgIGFkZEtleVZhbHVlKGVudHJ5LCBrZXksIHZhbCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lci5hZGRDaGlsZE5vZGUoZW50cnkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGxldCBtYXBOb2RlO1xuICAgICAgICAgICAgaWYgKCFjb250YWluZXJJc01hcCkge1xuICAgICAgICAgICAgICAgIG1hcE5vZGUgPSBYbWxOb2RlLm9mKG1hcFRyYWl0cy54bWxOYW1lID8/IG1hcE1lbWJlci5nZXRNZW1iZXJOYW1lKCkpO1xuICAgICAgICAgICAgICAgIGlmICh4bWxucykge1xuICAgICAgICAgICAgICAgICAgICBtYXBOb2RlLmFkZEF0dHJpYnV0ZSh4bWxuc0F0dHIsIHhtbG5zKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29udGFpbmVyLmFkZENoaWxkTm9kZShtYXBOb2RlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsXSBvZiBPYmplY3QuZW50cmllcyhtYXApKSB7XG4gICAgICAgICAgICAgICAgaWYgKHNwYXJzZSB8fCB2YWwgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlbnRyeSA9IFhtbE5vZGUub2YoXCJlbnRyeVwiKTtcbiAgICAgICAgICAgICAgICAgICAgYWRkS2V5VmFsdWUoZW50cnksIGtleSwgdmFsKTtcbiAgICAgICAgICAgICAgICAgICAgKGNvbnRhaW5lcklzTWFwID8gY29udGFpbmVyIDogbWFwTm9kZSkuYWRkQ2hpbGROb2RlKGVudHJ5KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgd3JpdGVTaW1wbGUoX3NjaGVtYSwgdmFsdWUpIHtcbiAgICAgICAgaWYgKG51bGwgPT09IHZhbHVlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJAYXdzLXNkay9jb3JlL3Byb3RvY29scyAtIChYTUwgc2VyaWFsaXplcikgY2Fubm90IHdyaXRlIG51bGwgdmFsdWUuXCIpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5zID0gTm9ybWFsaXplZFNjaGVtYS5vZihfc2NoZW1hKTtcbiAgICAgICAgbGV0IG5vZGVDb250ZW50cyA9IG51bGw7XG4gICAgICAgIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgIGlmIChucy5pc0Jsb2JTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIG5vZGVDb250ZW50cyA9ICh0aGlzLnNlcmRlQ29udGV4dD8uYmFzZTY0RW5jb2RlciA/PyB0b0Jhc2U2NCkodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAobnMuaXNUaW1lc3RhbXBTY2hlbWEoKSAmJiB2YWx1ZSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmb3JtYXQgPSBkZXRlcm1pbmVUaW1lc3RhbXBGb3JtYXQobnMsIHRoaXMuc2V0dGluZ3MpO1xuICAgICAgICAgICAgICAgIHN3aXRjaCAoZm9ybWF0KSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vZGVDb250ZW50cyA9IHZhbHVlLnRvSVNPU3RyaW5nKCkucmVwbGFjZShcIi4wMDBaXCIsIFwiWlwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICAgICAgICAgICAgICBub2RlQ29udGVudHMgPSBkYXRlVG9VdGNTdHJpbmcodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNzpcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vZGVDb250ZW50cyA9IFN0cmluZyh2YWx1ZS5nZXRUaW1lKCkgLyAxMDAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKFwiTWlzc2luZyB0aW1lc3RhbXAgZm9ybWF0LCB1c2luZyBodHRwIGRhdGVcIiwgdmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbm9kZUNvbnRlbnRzID0gZGF0ZVRvVXRjU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKG5zLmlzQmlnRGVjaW1hbFNjaGVtYSgpICYmIHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgTnVtZXJpY1ZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZS5zdHJpbmc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAobnMuaXNNYXBTY2hlbWEoKSB8fCBucy5pc0xpc3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkBhd3Mtc2RrL2NvcmUvcHJvdG9jb2xzIC0geG1sIHNlcmlhbGl6ZXIsIGNhbm5vdCBjYWxsIF93cml0ZSgpIG9uIExpc3QvTWFwIHNjaGVtYSwgY2FsbCB3cml0ZUxpc3Qgb3Igd3JpdGVNYXAoKSBpbnN0ZWFkLlwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSB4bWwgc2VyaWFsaXplciwgdW5oYW5kbGVkIHNjaGVtYSB0eXBlIGZvciBvYmplY3QgdmFsdWUgYW5kIHNjaGVtYTogJHtucy5nZXROYW1lKHRydWUpfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChucy5pc0Jvb2xlYW5TY2hlbWEoKSB8fCBucy5pc051bWVyaWNTY2hlbWEoKSB8fCBucy5pc0JpZ0ludGVnZXJTY2hlbWEoKSB8fCBucy5pc0JpZ0RlY2ltYWxTY2hlbWEoKSkge1xuICAgICAgICAgICAgbm9kZUNvbnRlbnRzID0gU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobnMuaXNTdHJpbmdTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQgJiYgbnMuaXNJZGVtcG90ZW5jeVRva2VuKCkpIHtcbiAgICAgICAgICAgICAgICBub2RlQ29udGVudHMgPSBnZW5lcmF0ZUlkZW1wb3RlbmN5VG9rZW4oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIG5vZGVDb250ZW50cyA9IFN0cmluZyh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5vZGVDb250ZW50cyA9PT0gbnVsbCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmhhbmRsZWQgc2NoZW1hLXZhbHVlIHBhaXIgJHtucy5nZXROYW1lKHRydWUpfT0ke3ZhbHVlfWApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBub2RlQ29udGVudHM7XG4gICAgfVxuICAgIHdyaXRlU2ltcGxlSW50byhfc2NoZW1hLCB2YWx1ZSwgaW50bywgcGFyZW50WG1sbnMpIHtcbiAgICAgICAgY29uc3Qgbm9kZUNvbnRlbnRzID0gdGhpcy53cml0ZVNpbXBsZShfc2NoZW1hLCB2YWx1ZSk7XG4gICAgICAgIGNvbnN0IG5zID0gTm9ybWFsaXplZFNjaGVtYS5vZihfc2NoZW1hKTtcbiAgICAgICAgY29uc3QgY29udGVudCA9IG5ldyBYbWxUZXh0KG5vZGVDb250ZW50cyk7XG4gICAgICAgIGNvbnN0IFt4bWxuc0F0dHIsIHhtbG5zXSA9IHRoaXMuZ2V0WG1sbnNBdHRyaWJ1dGUobnMsIHBhcmVudFhtbG5zKTtcbiAgICAgICAgaWYgKHhtbG5zKSB7XG4gICAgICAgICAgICBpbnRvLmFkZEF0dHJpYnV0ZSh4bWxuc0F0dHIsIHhtbG5zKTtcbiAgICAgICAgfVxuICAgICAgICBpbnRvLmFkZENoaWxkTm9kZShjb250ZW50KTtcbiAgICB9XG4gICAgZ2V0WG1sbnNBdHRyaWJ1dGUobnMsIHBhcmVudFhtbG5zKSB7XG4gICAgICAgIGNvbnN0IHRyYWl0cyA9IG5zLmdldE1lcmdlZFRyYWl0cygpO1xuICAgICAgICBjb25zdCBbcHJlZml4LCB4bWxuc10gPSB0cmFpdHMueG1sTmFtZXNwYWNlID8/IFtdO1xuICAgICAgICBpZiAoeG1sbnMgJiYgeG1sbnMgIT09IHBhcmVudFhtbG5zKSB7XG4gICAgICAgICAgICByZXR1cm4gW3ByZWZpeCA/IGB4bWxuczoke3ByZWZpeH1gIDogXCJ4bWxuc1wiLCB4bWxuc107XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFt2b2lkIDAsIHZvaWQgMF07XG4gICAgfVxufVxuIiwgImltcG9ydCB7IFNlcmRlQ29udGV4dENvbmZpZyB9IGZyb20gXCIuLi9Db25maWd1cmFibGVTZXJkZUNvbnRleHRcIjtcbmltcG9ydCB7IFhtbFNoYXBlRGVzZXJpYWxpemVyIH0gZnJvbSBcIi4vWG1sU2hhcGVEZXNlcmlhbGl6ZXJcIjtcbmltcG9ydCB7IFhtbFNoYXBlU2VyaWFsaXplciB9IGZyb20gXCIuL1htbFNoYXBlU2VyaWFsaXplclwiO1xuZXhwb3J0IGNsYXNzIFhtbENvZGVjIGV4dGVuZHMgU2VyZGVDb250ZXh0Q29uZmlnIHtcbiAgICBzZXR0aW5ncztcbiAgICBjb25zdHJ1Y3RvcihzZXR0aW5ncykge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnNldHRpbmdzID0gc2V0dGluZ3M7XG4gICAgfVxuICAgIGNyZWF0ZVNlcmlhbGl6ZXIoKSB7XG4gICAgICAgIGNvbnN0IHNlcmlhbGl6ZXIgPSBuZXcgWG1sU2hhcGVTZXJpYWxpemVyKHRoaXMuc2V0dGluZ3MpO1xuICAgICAgICBzZXJpYWxpemVyLnNldFNlcmRlQ29udGV4dCh0aGlzLnNlcmRlQ29udGV4dCk7XG4gICAgICAgIHJldHVybiBzZXJpYWxpemVyO1xuICAgIH1cbiAgICBjcmVhdGVEZXNlcmlhbGl6ZXIoKSB7XG4gICAgICAgIGNvbnN0IGRlc2VyaWFsaXplciA9IG5ldyBYbWxTaGFwZURlc2VyaWFsaXplcih0aGlzLnNldHRpbmdzKTtcbiAgICAgICAgZGVzZXJpYWxpemVyLnNldFNlcmRlQ29udGV4dCh0aGlzLnNlcmRlQ29udGV4dCk7XG4gICAgICAgIHJldHVybiBkZXNlcmlhbGl6ZXI7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IEh0dHBCaW5kaW5nUHJvdG9jb2wsIEh0dHBJbnRlcmNlcHRpbmdTaGFwZURlc2VyaWFsaXplciwgSHR0cEludGVyY2VwdGluZ1NoYXBlU2VyaWFsaXplciwgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3Byb3RvY29sc1wiO1xuaW1wb3J0IHsgTm9ybWFsaXplZFNjaGVtYSwgVHlwZVJlZ2lzdHJ5IH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IFByb3RvY29sTGliIH0gZnJvbSBcIi4uL1Byb3RvY29sTGliXCI7XG5pbXBvcnQgeyBsb2FkUmVzdFhtbEVycm9yQ29kZSB9IGZyb20gXCIuL3BhcnNlWG1sQm9keVwiO1xuaW1wb3J0IHsgWG1sQ29kZWMgfSBmcm9tIFwiLi9YbWxDb2RlY1wiO1xuZXhwb3J0IGNsYXNzIEF3c1Jlc3RYbWxQcm90b2NvbCBleHRlbmRzIEh0dHBCaW5kaW5nUHJvdG9jb2wge1xuICAgIGNvZGVjO1xuICAgIHNlcmlhbGl6ZXI7XG4gICAgZGVzZXJpYWxpemVyO1xuICAgIG1peGluID0gbmV3IFByb3RvY29sTGliKCk7XG4gICAgY29uc3RydWN0b3Iob3B0aW9ucykge1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcbiAgICAgICAgY29uc3Qgc2V0dGluZ3MgPSB7XG4gICAgICAgICAgICB0aW1lc3RhbXBGb3JtYXQ6IHtcbiAgICAgICAgICAgICAgICB1c2VUcmFpdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiA1LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGh0dHBCaW5kaW5nczogdHJ1ZSxcbiAgICAgICAgICAgIHhtbE5hbWVzcGFjZTogb3B0aW9ucy54bWxOYW1lc3BhY2UsXG4gICAgICAgICAgICBzZXJ2aWNlTmFtZXNwYWNlOiBvcHRpb25zLmRlZmF1bHROYW1lc3BhY2UsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuY29kZWMgPSBuZXcgWG1sQ29kZWMoc2V0dGluZ3MpO1xuICAgICAgICB0aGlzLnNlcmlhbGl6ZXIgPSBuZXcgSHR0cEludGVyY2VwdGluZ1NoYXBlU2VyaWFsaXplcih0aGlzLmNvZGVjLmNyZWF0ZVNlcmlhbGl6ZXIoKSwgc2V0dGluZ3MpO1xuICAgICAgICB0aGlzLmRlc2VyaWFsaXplciA9IG5ldyBIdHRwSW50ZXJjZXB0aW5nU2hhcGVEZXNlcmlhbGl6ZXIodGhpcy5jb2RlYy5jcmVhdGVEZXNlcmlhbGl6ZXIoKSwgc2V0dGluZ3MpO1xuICAgIH1cbiAgICBnZXRQYXlsb2FkQ29kZWMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvZGVjO1xuICAgIH1cbiAgICBnZXRTaGFwZUlkKCkge1xuICAgICAgICByZXR1cm4gXCJhd3MucHJvdG9jb2xzI3Jlc3RYbWxcIjtcbiAgICB9XG4gICAgYXN5bmMgc2VyaWFsaXplUmVxdWVzdChvcGVyYXRpb25TY2hlbWEsIGlucHV0LCBjb250ZXh0KSB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSBhd2FpdCBzdXBlci5zZXJpYWxpemVSZXF1ZXN0KG9wZXJhdGlvblNjaGVtYSwgaW5wdXQsIGNvbnRleHQpO1xuICAgICAgICBjb25zdCBpbnB1dFNjaGVtYSA9IE5vcm1hbGl6ZWRTY2hlbWEub2Yob3BlcmF0aW9uU2NoZW1hLmlucHV0KTtcbiAgICAgICAgaWYgKCFyZXF1ZXN0LmhlYWRlcnNbXCJjb250ZW50LXR5cGVcIl0pIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRlbnRUeXBlID0gdGhpcy5taXhpbi5yZXNvbHZlUmVzdENvbnRlbnRUeXBlKHRoaXMuZ2V0RGVmYXVsdENvbnRlbnRUeXBlKCksIGlucHV0U2NoZW1hKTtcbiAgICAgICAgICAgIGlmIChjb250ZW50VHlwZSkge1xuICAgICAgICAgICAgICAgIHJlcXVlc3QuaGVhZGVyc1tcImNvbnRlbnQtdHlwZVwiXSA9IGNvbnRlbnRUeXBlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgcmVxdWVzdC5ib2R5ID09PSBcInN0cmluZ1wiICYmXG4gICAgICAgICAgICByZXF1ZXN0LmhlYWRlcnNbXCJjb250ZW50LXR5cGVcIl0gPT09IHRoaXMuZ2V0RGVmYXVsdENvbnRlbnRUeXBlKCkgJiZcbiAgICAgICAgICAgICFyZXF1ZXN0LmJvZHkuc3RhcnRzV2l0aChcIjw/eG1sIFwiKSAmJlxuICAgICAgICAgICAgIXRoaXMuaGFzVW5zdHJ1Y3R1cmVkUGF5bG9hZEJpbmRpbmcoaW5wdXRTY2hlbWEpKSB7XG4gICAgICAgICAgICByZXF1ZXN0LmJvZHkgPSAnPD94bWwgdmVyc2lvbj1cIjEuMFwiIGVuY29kaW5nPVwiVVRGLThcIj8+JyArIHJlcXVlc3QuYm9keTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVxdWVzdDtcbiAgICB9XG4gICAgYXN5bmMgZGVzZXJpYWxpemVSZXNwb25zZShvcGVyYXRpb25TY2hlbWEsIGNvbnRleHQsIHJlc3BvbnNlKSB7XG4gICAgICAgIHJldHVybiBzdXBlci5kZXNlcmlhbGl6ZVJlc3BvbnNlKG9wZXJhdGlvblNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UpO1xuICAgIH1cbiAgICBhc3luYyBoYW5kbGVFcnJvcihvcGVyYXRpb25TY2hlbWEsIGNvbnRleHQsIHJlc3BvbnNlLCBkYXRhT2JqZWN0LCBtZXRhZGF0YSkge1xuICAgICAgICBjb25zdCBlcnJvcklkZW50aWZpZXIgPSBsb2FkUmVzdFhtbEVycm9yQ29kZShyZXNwb25zZSwgZGF0YU9iamVjdCkgPz8gXCJVbmtub3duXCI7XG4gICAgICAgIGlmIChkYXRhT2JqZWN0LkVycm9yICYmIHR5cGVvZiBkYXRhT2JqZWN0LkVycm9yID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhkYXRhT2JqZWN0LkVycm9yKSkge1xuICAgICAgICAgICAgICAgIGRhdGFPYmplY3Rba2V5XSA9IGRhdGFPYmplY3QuRXJyb3Jba2V5XTtcbiAgICAgICAgICAgICAgICBpZiAoa2V5LnRvTG93ZXJDYXNlKCkgPT09IFwibWVzc2FnZVwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGRhdGFPYmplY3QubWVzc2FnZSA9IGRhdGFPYmplY3QuRXJyb3Jba2V5XTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGFPYmplY3QuUmVxdWVzdElkICYmICFtZXRhZGF0YS5yZXF1ZXN0SWQpIHtcbiAgICAgICAgICAgIG1ldGFkYXRhLnJlcXVlc3RJZCA9IGRhdGFPYmplY3QuUmVxdWVzdElkO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHsgZXJyb3JTY2hlbWEsIGVycm9yTWV0YWRhdGEgfSA9IGF3YWl0IHRoaXMubWl4aW4uZ2V0RXJyb3JTY2hlbWFPclRocm93QmFzZUV4Y2VwdGlvbihlcnJvcklkZW50aWZpZXIsIHRoaXMub3B0aW9ucy5kZWZhdWx0TmFtZXNwYWNlLCByZXNwb25zZSwgZGF0YU9iamVjdCwgbWV0YWRhdGEpO1xuICAgICAgICBjb25zdCBucyA9IE5vcm1hbGl6ZWRTY2hlbWEub2YoZXJyb3JTY2hlbWEpO1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gZGF0YU9iamVjdC5FcnJvcj8ubWVzc2FnZSA/PyBkYXRhT2JqZWN0LkVycm9yPy5NZXNzYWdlID8/IGRhdGFPYmplY3QubWVzc2FnZSA/PyBkYXRhT2JqZWN0Lk1lc3NhZ2UgPz8gXCJVbmtub3duXCI7XG4gICAgICAgIGNvbnN0IEVycm9yQ3RvciA9IFR5cGVSZWdpc3RyeS5mb3IoZXJyb3JTY2hlbWFbMV0pLmdldEVycm9yQ3RvcihlcnJvclNjaGVtYSkgPz8gRXJyb3I7XG4gICAgICAgIGNvbnN0IGV4Y2VwdGlvbiA9IG5ldyBFcnJvckN0b3IobWVzc2FnZSk7XG4gICAgICAgIGF3YWl0IHRoaXMuZGVzZXJpYWxpemVIdHRwTWVzc2FnZShlcnJvclNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UsIGRhdGFPYmplY3QpO1xuICAgICAgICBjb25zdCBvdXRwdXQgPSB7fTtcbiAgICAgICAgZm9yIChjb25zdCBbbmFtZSwgbWVtYmVyXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBtZW1iZXIuZ2V0TWVyZ2VkVHJhaXRzKCkueG1sTmFtZSA/PyBuYW1lO1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBkYXRhT2JqZWN0LkVycm9yPy5bdGFyZ2V0XSA/PyBkYXRhT2JqZWN0W3RhcmdldF07XG4gICAgICAgICAgICBvdXRwdXRbbmFtZV0gPSB0aGlzLmNvZGVjLmNyZWF0ZURlc2VyaWFsaXplcigpLnJlYWRTY2hlbWEobWVtYmVyLCB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgdGhpcy5taXhpbi5kZWNvcmF0ZVNlcnZpY2VFeGNlcHRpb24oT2JqZWN0LmFzc2lnbihleGNlcHRpb24sIGVycm9yTWV0YWRhdGEsIHtcbiAgICAgICAgICAgICRmYXVsdDogbnMuZ2V0TWVyZ2VkVHJhaXRzKCkuZXJyb3IsXG4gICAgICAgICAgICBtZXNzYWdlLFxuICAgICAgICB9LCBvdXRwdXQpLCBkYXRhT2JqZWN0KTtcbiAgICB9XG4gICAgZ2V0RGVmYXVsdENvbnRlbnRUeXBlKCkge1xuICAgICAgICByZXR1cm4gXCJhcHBsaWNhdGlvbi94bWxcIjtcbiAgICB9XG4gICAgaGFzVW5zdHJ1Y3R1cmVkUGF5bG9hZEJpbmRpbmcobnMpIHtcbiAgICAgICAgZm9yIChjb25zdCBbLCBtZW1iZXJdIG9mIG5zLnN0cnVjdEl0ZXJhdG9yKCkpIHtcbiAgICAgICAgICAgIGlmIChtZW1iZXIuZ2V0TWVyZ2VkVHJhaXRzKCkuaHR0cFBheWxvYWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gIShtZW1iZXIuaXNTdHJ1Y3RTY2hlbWEoKSB8fCBtZW1iZXIuaXNNYXBTY2hlbWEoKSB8fCBtZW1iZXIuaXNMaXN0U2NoZW1hKCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG59XG4iLCAiZXhwb3J0ICogZnJvbSBcIi4vY2Jvci9Bd3NTbWl0aHlScGNWMkNib3JQcm90b2NvbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29lcmNpbmctc2VyaWFsaXplcnNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2pzb24vQXdzSnNvbjFfMFByb3RvY29sXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9qc29uL0F3c0pzb24xXzFQcm90b2NvbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vanNvbi9Bd3NKc29uUnBjUHJvdG9jb2xcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2pzb24vQXdzUmVzdEpzb25Qcm90b2NvbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vanNvbi9Kc29uQ29kZWNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2pzb24vSnNvblNoYXBlRGVzZXJpYWxpemVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9qc29uL0pzb25TaGFwZVNlcmlhbGl6ZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2pzb24vYXdzRXhwZWN0VW5pb25cIjtcbmV4cG9ydCAqIGZyb20gXCIuL2pzb24vcGFyc2VKc29uQm9keVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcXVlcnkvQXdzRWMyUXVlcnlQcm90b2NvbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcXVlcnkvQXdzUXVlcnlQcm90b2NvbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4veG1sL0F3c1Jlc3RYbWxQcm90b2NvbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4veG1sL1htbENvZGVjXCI7XG5leHBvcnQgKiBmcm9tIFwiLi94bWwvWG1sU2hhcGVEZXNlcmlhbGl6ZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3htbC9YbWxTaGFwZVNlcmlhbGl6ZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3htbC9wYXJzZVhtbEJvZHlcIjtcbiIsICJleHBvcnQgKiBmcm9tIFwiLi9zdWJtb2R1bGVzL2NsaWVudC9pbmRleFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3VibW9kdWxlcy9odHRwQXV0aFNjaGVtZXMvaW5kZXhcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL2luZGV4XCI7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG5jbGFzcyBOdW1iZXJWYWx1ZSB7XG4gICAgdmFsdWU7XG4gICAgY29uc3RydWN0b3IodmFsdWUpIHtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIiAmJiBcIk5cIiBpbiB2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IFN0cmluZyh2YWx1ZS5OKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBTdHJpbmcodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHZhbHVlT2YgPSB0eXBlb2YgdmFsdWUudmFsdWVPZigpID09PSBcIm51bWJlclwiID8gdmFsdWUudmFsdWVPZigpIDogMDtcbiAgICAgICAgY29uc3QgaW1wcmVjaXNlID0gdmFsdWVPZiA+IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSIHx8XG4gICAgICAgICAgICB2YWx1ZU9mIDwgTnVtYmVyLk1JTl9TQUZFX0lOVEVHRVIgfHxcbiAgICAgICAgICAgIE1hdGguYWJzKHZhbHVlT2YpID09PSBJbmZpbml0eSB8fFxuICAgICAgICAgICAgTnVtYmVyLmlzTmFOKHZhbHVlT2YpO1xuICAgICAgICBpZiAoaW1wcmVjaXNlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE51bWJlclZhbHVlIHNob3VsZCBub3QgYmUgaW5pdGlhbGl6ZWQgd2l0aCBhbiBpbXByZWNpc2UgbnVtYmVyPSR7dmFsdWVPZn0uIFVzZSBhIHN0cmluZyBpbnN0ZWFkLmApO1xuICAgICAgICB9XG4gICAgfVxuICAgIHN0YXRpYyBmcm9tKHZhbHVlKSB7XG4gICAgICAgIHJldHVybiBuZXcgTnVtYmVyVmFsdWUodmFsdWUpO1xuICAgIH1cbiAgICB0b0F0dHJpYnV0ZVZhbHVlKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgTjogdGhpcy50b1N0cmluZygpLFxuICAgICAgICB9O1xuICAgIH1cbiAgICB0b0JpZ0ludCgpIHtcbiAgICAgICAgY29uc3Qgc3RyaW5nVmFsdWUgPSB0aGlzLnRvU3RyaW5nKCk7XG4gICAgICAgIHJldHVybiBCaWdJbnQoc3RyaW5nVmFsdWUpO1xuICAgIH1cbiAgICB0b1N0cmluZygpIHtcbiAgICAgICAgcmV0dXJuIFN0cmluZyh0aGlzLnZhbHVlKTtcbiAgICB9XG4gICAgdmFsdWVPZigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudG9TdHJpbmcoKTtcbiAgICB9XG59XG5cbmNvbnN0IGNvbnZlcnRUb0F0dHIgPSAoZGF0YSwgb3B0aW9ucykgPT4ge1xuICAgIGlmIChkYXRhID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBQYXNzIG9wdGlvbnMucmVtb3ZlVW5kZWZpbmVkVmFsdWVzPXRydWUgdG8gcmVtb3ZlIHVuZGVmaW5lZCB2YWx1ZXMgZnJvbSBtYXAvYXJyYXkvc2V0LmApO1xuICAgIH1cbiAgICBlbHNlIGlmIChkYXRhID09PSBudWxsICYmIHR5cGVvZiBkYXRhID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgIHJldHVybiBjb252ZXJ0VG9OdWxsQXR0cigpO1xuICAgIH1cbiAgICBlbHNlIGlmIChBcnJheS5pc0FycmF5KGRhdGEpKSB7XG4gICAgICAgIHJldHVybiBjb252ZXJ0VG9MaXN0QXR0cihkYXRhLCBvcHRpb25zKTtcbiAgICB9XG4gICAgZWxzZSBpZiAoZGF0YT8uY29uc3RydWN0b3I/Lm5hbWUgPT09IFwiU2V0XCIpIHtcbiAgICAgICAgcmV0dXJuIGNvbnZlcnRUb1NldEF0dHIoZGF0YSwgb3B0aW9ucyk7XG4gICAgfVxuICAgIGVsc2UgaWYgKGRhdGE/LmNvbnN0cnVjdG9yPy5uYW1lID09PSBcIk1hcFwiKSB7XG4gICAgICAgIHJldHVybiBjb252ZXJ0VG9NYXBBdHRyRnJvbUl0ZXJhYmxlKGRhdGEsIG9wdGlvbnMpO1xuICAgIH1cbiAgICBlbHNlIGlmIChkYXRhPy5jb25zdHJ1Y3Rvcj8ubmFtZSA9PT0gXCJPYmplY3RcIiB8fFxuICAgICAgICAoIWRhdGEuY29uc3RydWN0b3IgJiYgdHlwZW9mIGRhdGEgPT09IFwib2JqZWN0XCIpKSB7XG4gICAgICAgIHJldHVybiBjb252ZXJ0VG9NYXBBdHRyRnJvbUVudW1lcmFibGVQcm9wcyhkYXRhLCBvcHRpb25zKTtcbiAgICB9XG4gICAgZWxzZSBpZiAoaXNCaW5hcnkoZGF0YSkpIHtcbiAgICAgICAgaWYgKGRhdGEubGVuZ3RoID09PSAwICYmIG9wdGlvbnM/LmNvbnZlcnRFbXB0eVZhbHVlcykge1xuICAgICAgICAgICAgcmV0dXJuIGNvbnZlcnRUb051bGxBdHRyKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNvbnZlcnRUb0JpbmFyeUF0dHIoZGF0YSk7XG4gICAgfVxuICAgIGVsc2UgaWYgKHR5cGVvZiBkYXRhID09PSBcImJvb2xlYW5cIiB8fCBkYXRhPy5jb25zdHJ1Y3Rvcj8ubmFtZSA9PT0gXCJCb29sZWFuXCIpIHtcbiAgICAgICAgcmV0dXJuIHsgQk9PTDogZGF0YS52YWx1ZU9mKCkgfTtcbiAgICB9XG4gICAgZWxzZSBpZiAodHlwZW9mIGRhdGEgPT09IFwibnVtYmVyXCIgfHwgZGF0YT8uY29uc3RydWN0b3I/Lm5hbWUgPT09IFwiTnVtYmVyXCIpIHtcbiAgICAgICAgcmV0dXJuIGNvbnZlcnRUb051bWJlckF0dHIoZGF0YSwgb3B0aW9ucyk7XG4gICAgfVxuICAgIGVsc2UgaWYgKGRhdGEgaW5zdGFuY2VvZiBOdW1iZXJWYWx1ZSkge1xuICAgICAgICByZXR1cm4gZGF0YS50b0F0dHJpYnV0ZVZhbHVlKCk7XG4gICAgfVxuICAgIGVsc2UgaWYgKHR5cGVvZiBkYXRhID09PSBcImJpZ2ludFwiKSB7XG4gICAgICAgIHJldHVybiBjb252ZXJ0VG9CaWdJbnRBdHRyKGRhdGEpO1xuICAgIH1cbiAgICBlbHNlIGlmICh0eXBlb2YgZGF0YSA9PT0gXCJzdHJpbmdcIiB8fCBkYXRhPy5jb25zdHJ1Y3Rvcj8ubmFtZSA9PT0gXCJTdHJpbmdcIikge1xuICAgICAgICBpZiAoZGF0YS5sZW5ndGggPT09IDAgJiYgb3B0aW9ucz8uY29udmVydEVtcHR5VmFsdWVzKSB7XG4gICAgICAgICAgICByZXR1cm4gY29udmVydFRvTnVsbEF0dHIoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY29udmVydFRvU3RyaW5nQXR0cihkYXRhKTtcbiAgICB9XG4gICAgZWxzZSBpZiAob3B0aW9ucz8uY29udmVydENsYXNzSW5zdGFuY2VUb01hcCAmJiB0eXBlb2YgZGF0YSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICByZXR1cm4gY29udmVydFRvTWFwQXR0ckZyb21FbnVtZXJhYmxlUHJvcHMoZGF0YSwgb3B0aW9ucyk7XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgdHlwZSBwYXNzZWQ6ICR7ZGF0YX0uIFBhc3Mgb3B0aW9ucy5jb252ZXJ0Q2xhc3NJbnN0YW5jZVRvTWFwPXRydWUgdG8gbWFyc2hhbGwgdHlwZW9mIG9iamVjdCBhcyBtYXAgYXR0cmlidXRlLmApO1xufTtcbmNvbnN0IGNvbnZlcnRUb0xpc3RBdHRyID0gKGRhdGEsIG9wdGlvbnMpID0+ICh7XG4gICAgTDogZGF0YVxuICAgICAgICAuZmlsdGVyKChpdGVtKSA9PiB0eXBlb2YgaXRlbSAhPT0gXCJmdW5jdGlvblwiICYmXG4gICAgICAgICghb3B0aW9ucz8ucmVtb3ZlVW5kZWZpbmVkVmFsdWVzIHx8IChvcHRpb25zPy5yZW1vdmVVbmRlZmluZWRWYWx1ZXMgJiYgaXRlbSAhPT0gdW5kZWZpbmVkKSkpXG4gICAgICAgIC5tYXAoKGl0ZW0pID0+IGNvbnZlcnRUb0F0dHIoaXRlbSwgb3B0aW9ucykpLFxufSk7XG5jb25zdCBjb252ZXJ0VG9TZXRBdHRyID0gKHNldCwgb3B0aW9ucykgPT4ge1xuICAgIGNvbnN0IHNldFRvT3BlcmF0ZSA9IG9wdGlvbnM/LnJlbW92ZVVuZGVmaW5lZFZhbHVlcyA/IG5ldyBTZXQoWy4uLnNldF0uZmlsdGVyKCh2YWx1ZSkgPT4gdmFsdWUgIT09IHVuZGVmaW5lZCkpIDogc2V0O1xuICAgIGlmICghb3B0aW9ucz8ucmVtb3ZlVW5kZWZpbmVkVmFsdWVzICYmIHNldFRvT3BlcmF0ZS5oYXModW5kZWZpbmVkKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFBhc3Mgb3B0aW9ucy5yZW1vdmVVbmRlZmluZWRWYWx1ZXM9dHJ1ZSB0byByZW1vdmUgdW5kZWZpbmVkIHZhbHVlcyBmcm9tIG1hcC9hcnJheS9zZXQuYCk7XG4gICAgfVxuICAgIGlmIChzZXRUb09wZXJhdGUuc2l6ZSA9PT0gMCkge1xuICAgICAgICBpZiAob3B0aW9ucz8uY29udmVydEVtcHR5VmFsdWVzKSB7XG4gICAgICAgICAgICByZXR1cm4gY29udmVydFRvTnVsbEF0dHIoKTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFBhc3MgYSBub24tZW1wdHkgc2V0LCBvciBvcHRpb25zLmNvbnZlcnRFbXB0eVZhbHVlcz10cnVlLmApO1xuICAgIH1cbiAgICBjb25zdCBpdGVtID0gc2V0VG9PcGVyYXRlLnZhbHVlcygpLm5leHQoKS52YWx1ZTtcbiAgICBpZiAoaXRlbSBpbnN0YW5jZW9mIE51bWJlclZhbHVlKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBOUzogQXJyYXkuZnJvbShzZXRUb09wZXJhdGUpLm1hcCgoXykgPT4gXy50b1N0cmluZygpKSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgZWxzZSBpZiAodHlwZW9mIGl0ZW0gPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIE5TOiBBcnJheS5mcm9tKHNldFRvT3BlcmF0ZSlcbiAgICAgICAgICAgICAgICAubWFwKChudW0pID0+IGNvbnZlcnRUb051bWJlckF0dHIobnVtLCBvcHRpb25zKSlcbiAgICAgICAgICAgICAgICAubWFwKChpdGVtKSA9PiBpdGVtLk4pLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBlbHNlIGlmICh0eXBlb2YgaXRlbSA9PT0gXCJiaWdpbnRcIikge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgTlM6IEFycmF5LmZyb20oc2V0VG9PcGVyYXRlKVxuICAgICAgICAgICAgICAgIC5tYXAoY29udmVydFRvQmlnSW50QXR0cilcbiAgICAgICAgICAgICAgICAubWFwKChpdGVtKSA9PiBpdGVtLk4pLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBlbHNlIGlmICh0eXBlb2YgaXRlbSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgU1M6IEFycmF5LmZyb20oc2V0VG9PcGVyYXRlKVxuICAgICAgICAgICAgICAgIC5tYXAoY29udmVydFRvU3RyaW5nQXR0cilcbiAgICAgICAgICAgICAgICAubWFwKChpdGVtKSA9PiBpdGVtLlMpLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBlbHNlIGlmIChpc0JpbmFyeShpdGVtKSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgQlM6IEFycmF5LmZyb20oc2V0VG9PcGVyYXRlKVxuICAgICAgICAgICAgICAgIC5tYXAoY29udmVydFRvQmluYXJ5QXR0cilcbiAgICAgICAgICAgICAgICAubWFwKChpdGVtKSA9PiBpdGVtLkIpLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBPbmx5IE51bWJlciBTZXQgKE5TKSwgQmluYXJ5IFNldCAoQlMpIG9yIFN0cmluZyBTZXQgKFNTKSBhcmUgYWxsb3dlZC5gKTtcbiAgICB9XG59O1xuY29uc3QgY29udmVydFRvTWFwQXR0ckZyb21JdGVyYWJsZSA9IChkYXRhLCBvcHRpb25zKSA9PiAoe1xuICAgIE06ICgoZGF0YSkgPT4ge1xuICAgICAgICBjb25zdCBtYXAgPSB7fTtcbiAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgZGF0YSkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gXCJmdW5jdGlvblwiICYmICh2YWx1ZSAhPT0gdW5kZWZpbmVkIHx8ICFvcHRpb25zPy5yZW1vdmVVbmRlZmluZWRWYWx1ZXMpKSB7XG4gICAgICAgICAgICAgICAgbWFwW2tleV0gPSBjb252ZXJ0VG9BdHRyKHZhbHVlLCBvcHRpb25zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbWFwO1xuICAgIH0pKGRhdGEpLFxufSk7XG5jb25zdCBjb252ZXJ0VG9NYXBBdHRyRnJvbUVudW1lcmFibGVQcm9wcyA9IChkYXRhLCBvcHRpb25zKSA9PiAoe1xuICAgIE06ICgoZGF0YSkgPT4ge1xuICAgICAgICBjb25zdCBtYXAgPSB7fTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gZGF0YSkge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBkYXRhW2tleV07XG4gICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlICE9PSBcImZ1bmN0aW9uXCIgJiYgKHZhbHVlICE9PSB1bmRlZmluZWQgfHwgIW9wdGlvbnM/LnJlbW92ZVVuZGVmaW5lZFZhbHVlcykpIHtcbiAgICAgICAgICAgICAgICBtYXBba2V5XSA9IGNvbnZlcnRUb0F0dHIodmFsdWUsIG9wdGlvbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtYXA7XG4gICAgfSkoZGF0YSksXG59KTtcbmNvbnN0IGNvbnZlcnRUb051bGxBdHRyID0gKCkgPT4gKHsgTlVMTDogdHJ1ZSB9KTtcbmNvbnN0IGNvbnZlcnRUb0JpbmFyeUF0dHIgPSAoZGF0YSkgPT4gKHsgQjogZGF0YSB9KTtcbmNvbnN0IGNvbnZlcnRUb1N0cmluZ0F0dHIgPSAoZGF0YSkgPT4gKHsgUzogZGF0YS50b1N0cmluZygpIH0pO1xuY29uc3QgY29udmVydFRvQmlnSW50QXR0ciA9IChkYXRhKSA9PiAoeyBOOiBkYXRhLnRvU3RyaW5nKCkgfSk7XG5jb25zdCB2YWxpZGF0ZUJpZ0ludEFuZFRocm93ID0gKGVycm9yUHJlZml4KSA9PiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGAke2Vycm9yUHJlZml4fSBVc2UgTnVtYmVyVmFsdWUgZnJvbSBAYXdzLXNkay9saWItZHluYW1vZGIuYCk7XG59O1xuY29uc3QgY29udmVydFRvTnVtYmVyQXR0ciA9IChudW0sIG9wdGlvbnMpID0+IHtcbiAgICBpZiAoW051bWJlci5OYU4sIE51bWJlci5QT1NJVElWRV9JTkZJTklUWSwgTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZXVxuICAgICAgICAubWFwKCh2YWwpID0+IHZhbC50b1N0cmluZygpKVxuICAgICAgICAuaW5jbHVkZXMobnVtLnRvU3RyaW5nKCkpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgU3BlY2lhbCBudW1lcmljIHZhbHVlICR7bnVtLnRvU3RyaW5nKCl9IGlzIG5vdCBhbGxvd2VkYCk7XG4gICAgfVxuICAgIGVsc2UgaWYgKCFvcHRpb25zPy5hbGxvd0ltcHJlY2lzZU51bWJlcnMpIHtcbiAgICAgICAgaWYgKE51bWJlcihudW0pID4gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpIHtcbiAgICAgICAgICAgIHZhbGlkYXRlQmlnSW50QW5kVGhyb3coYE51bWJlciAke251bS50b1N0cmluZygpfSBpcyBncmVhdGVyIHRoYW4gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIuYCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoTnVtYmVyKG51bSkgPCBOdW1iZXIuTUlOX1NBRkVfSU5URUdFUikge1xuICAgICAgICAgICAgdmFsaWRhdGVCaWdJbnRBbmRUaHJvdyhgTnVtYmVyICR7bnVtLnRvU3RyaW5nKCl9IGlzIGxlc3NlciB0aGFuIE51bWJlci5NSU5fU0FGRV9JTlRFR0VSLmApO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7IE46IG51bS50b1N0cmluZygpIH07XG59O1xuY29uc3QgaXNCaW5hcnkgPSAoZGF0YSkgPT4ge1xuICAgIGNvbnN0IGJpbmFyeVR5cGVzID0gW1xuICAgICAgICBcIkFycmF5QnVmZmVyXCIsXG4gICAgICAgIFwiQmxvYlwiLFxuICAgICAgICBcIkJ1ZmZlclwiLFxuICAgICAgICBcIkRhdGFWaWV3XCIsXG4gICAgICAgIFwiRmlsZVwiLFxuICAgICAgICBcIkludDhBcnJheVwiLFxuICAgICAgICBcIlVpbnQ4QXJyYXlcIixcbiAgICAgICAgXCJVaW50OENsYW1wZWRBcnJheVwiLFxuICAgICAgICBcIkludDE2QXJyYXlcIixcbiAgICAgICAgXCJVaW50MTZBcnJheVwiLFxuICAgICAgICBcIkludDMyQXJyYXlcIixcbiAgICAgICAgXCJVaW50MzJBcnJheVwiLFxuICAgICAgICBcIkZsb2F0MzJBcnJheVwiLFxuICAgICAgICBcIkZsb2F0NjRBcnJheVwiLFxuICAgICAgICBcIkJpZ0ludDY0QXJyYXlcIixcbiAgICAgICAgXCJCaWdVaW50NjRBcnJheVwiLFxuICAgIF07XG4gICAgaWYgKGRhdGE/LmNvbnN0cnVjdG9yKSB7XG4gICAgICAgIHJldHVybiBiaW5hcnlUeXBlcy5pbmNsdWRlcyhkYXRhLmNvbnN0cnVjdG9yLm5hbWUpO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59O1xuXG5jb25zdCBjb252ZXJ0VG9OYXRpdmUgPSAoZGF0YSwgb3B0aW9ucykgPT4ge1xuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKGRhdGEpKSB7XG4gICAgICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICAgICAgICAgIGNhc2UgXCJOVUxMXCI6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJCT09MXCI6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBCb29sZWFuKHZhbHVlKTtcbiAgICAgICAgICAgICAgICBjYXNlIFwiTlwiOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29udmVydE51bWJlcih2YWx1ZSwgb3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgY2FzZSBcIkJcIjpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbnZlcnRCaW5hcnkodmFsdWUpO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJTXCI6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjb252ZXJ0U3RyaW5nKHZhbHVlKTtcbiAgICAgICAgICAgICAgICBjYXNlIFwiTFwiOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29udmVydExpc3QodmFsdWUsIG9wdGlvbnMpO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJNXCI6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjb252ZXJ0TWFwKHZhbHVlLCBvcHRpb25zKTtcbiAgICAgICAgICAgICAgICBjYXNlIFwiTlNcIjpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBTZXQodmFsdWUubWFwKChpdGVtKSA9PiBjb252ZXJ0TnVtYmVyKGl0ZW0sIG9wdGlvbnMpKSk7XG4gICAgICAgICAgICAgICAgY2FzZSBcIkJTXCI6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgU2V0KHZhbHVlLm1hcChjb252ZXJ0QmluYXJ5KSk7XG4gICAgICAgICAgICAgICAgY2FzZSBcIlNTXCI6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgU2V0KHZhbHVlLm1hcChjb252ZXJ0U3RyaW5nKSk7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCB0eXBlIHBhc3NlZDogJHtrZXl9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKGBObyB2YWx1ZSBkZWZpbmVkOiAke0pTT04uc3RyaW5naWZ5KGRhdGEpfWApO1xufTtcbmNvbnN0IGNvbnZlcnROdW1iZXIgPSAobnVtU3RyaW5nLCBvcHRpb25zKSA9PiB7XG4gICAgaWYgKHR5cGVvZiBvcHRpb25zPy53cmFwTnVtYmVycyA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHJldHVybiBvcHRpb25zPy53cmFwTnVtYmVycyhudW1TdHJpbmcpO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucz8ud3JhcE51bWJlcnMpIHtcbiAgICAgICAgcmV0dXJuIE51bWJlclZhbHVlLmZyb20obnVtU3RyaW5nKTtcbiAgICB9XG4gICAgY29uc3QgbnVtID0gTnVtYmVyKG51bVN0cmluZyk7XG4gICAgY29uc3QgaW5maW5pdHlWYWx1ZXMgPSBbTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLCBOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFldO1xuICAgIGNvbnN0IGlzTGFyZ2VGaW5pdGVOdW1iZXIgPSAobnVtID4gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIgfHwgbnVtIDwgTnVtYmVyLk1JTl9TQUZFX0lOVEVHRVIpICYmICFpbmZpbml0eVZhbHVlcy5pbmNsdWRlcyhudW0pO1xuICAgIGlmIChpc0xhcmdlRmluaXRlTnVtYmVyKSB7XG4gICAgICAgIGlmICh0eXBlb2YgQmlnSW50ID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIEJpZ0ludChudW1TdHJpbmcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAke251bVN0cmluZ30gY2FuJ3QgYmUgY29udmVydGVkIHRvIEJpZ0ludC4gU2V0IG9wdGlvbnMud3JhcE51bWJlcnMgdG8gZ2V0IHN0cmluZyB2YWx1ZS5gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgJHtudW1TdHJpbmd9IGlzIG91dHNpZGUgU0FGRV9JTlRFR0VSIGJvdW5kcy4gU2V0IG9wdGlvbnMud3JhcE51bWJlcnMgdG8gZ2V0IHN0cmluZyB2YWx1ZS5gKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVtO1xufTtcbmNvbnN0IGNvbnZlcnRTdHJpbmcgPSAoc3RyaW5nVmFsdWUpID0+IHN0cmluZ1ZhbHVlO1xuY29uc3QgY29udmVydEJpbmFyeSA9IChiaW5hcnlWYWx1ZSkgPT4gYmluYXJ5VmFsdWU7XG5jb25zdCBjb252ZXJ0TGlzdCA9IChsaXN0LCBvcHRpb25zKSA9PiBsaXN0Lm1hcCgoaXRlbSkgPT4gY29udmVydFRvTmF0aXZlKGl0ZW0sIG9wdGlvbnMpKTtcbmNvbnN0IGNvbnZlcnRNYXAgPSAobWFwLCBvcHRpb25zKSA9PiBPYmplY3QuZW50cmllcyhtYXApLnJlZHVjZSgoYWNjLCBba2V5LCB2YWx1ZV0pID0+ICgoYWNjW2tleV0gPSBjb252ZXJ0VG9OYXRpdmUodmFsdWUsIG9wdGlvbnMpKSwgYWNjKSwge30pO1xuXG5mdW5jdGlvbiBtYXJzaGFsbChkYXRhLCBvcHRpb25zKSB7XG4gICAgY29uc3QgYXR0cmlidXRlVmFsdWUgPSBjb252ZXJ0VG9BdHRyKGRhdGEsIG9wdGlvbnMpO1xuICAgIGNvbnN0IFtrZXksIHZhbHVlXSA9IE9iamVjdC5lbnRyaWVzKGF0dHJpYnV0ZVZhbHVlKVswXTtcbiAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICBjYXNlIFwiTVwiOlxuICAgICAgICBjYXNlIFwiTFwiOlxuICAgICAgICAgICAgcmV0dXJuIG9wdGlvbnM/LmNvbnZlcnRUb3BMZXZlbENvbnRhaW5lciA/IGF0dHJpYnV0ZVZhbHVlIDogdmFsdWU7XG4gICAgICAgIGNhc2UgXCJTU1wiOlxuICAgICAgICBjYXNlIFwiTlNcIjpcbiAgICAgICAgY2FzZSBcIkJTXCI6XG4gICAgICAgIGNhc2UgXCJTXCI6XG4gICAgICAgIGNhc2UgXCJOXCI6XG4gICAgICAgIGNhc2UgXCJCXCI6XG4gICAgICAgIGNhc2UgXCJOVUxMXCI6XG4gICAgICAgIGNhc2UgXCJCT09MXCI6XG4gICAgICAgIGNhc2UgXCIkdW5rbm93blwiOlxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIGF0dHJpYnV0ZVZhbHVlO1xuICAgIH1cbn1cblxuY29uc3QgdW5tYXJzaGFsbCA9IChkYXRhLCBvcHRpb25zKSA9PiB7XG4gICAgaWYgKG9wdGlvbnM/LmNvbnZlcnRXaXRob3V0TWFwV3JhcHBlcikge1xuICAgICAgICByZXR1cm4gY29udmVydFRvTmF0aXZlKGRhdGEsIG9wdGlvbnMpO1xuICAgIH1cbiAgICByZXR1cm4gY29udmVydFRvTmF0aXZlKHsgTTogZGF0YSB9LCBvcHRpb25zKTtcbn07XG5cbmV4cG9ydHMuTnVtYmVyVmFsdWVJbXBsID0gTnVtYmVyVmFsdWU7XG5leHBvcnRzLmNvbnZlcnRUb0F0dHIgPSBjb252ZXJ0VG9BdHRyO1xuZXhwb3J0cy5jb252ZXJ0VG9OYXRpdmUgPSBjb252ZXJ0VG9OYXRpdmU7XG5leHBvcnRzLm1hcnNoYWxsID0gbWFyc2hhbGw7XG5leHBvcnRzLnVubWFyc2hhbGwgPSB1bm1hcnNoYWxsO1xuIiwgIid1c2Ugc3RyaWN0JztcblxudmFyIHNtaXRoeUNsaWVudCA9IHJlcXVpcmUoJ0BzbWl0aHkvc21pdGh5LWNsaWVudCcpO1xudmFyIGNvcmUgPSByZXF1aXJlKCdAYXdzLXNkay9jb3JlJyk7XG52YXIgdXRpbER5bmFtb2RiID0gcmVxdWlyZSgnQGF3cy1zZGsvdXRpbC1keW5hbW9kYicpO1xudmFyIGNsaWVudER5bmFtb2RiID0gcmVxdWlyZSgnQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiJyk7XG52YXIgY29yZSQxID0gcmVxdWlyZSgnQHNtaXRoeS9jb3JlJyk7XG5cbmNvbnN0IFNFTEYgPSBudWxsO1xuY29uc3QgQUxMX1ZBTFVFUyA9IHt9O1xuY29uc3QgQUxMX01FTUJFUlMgPSBbXTtcbmNvbnN0IE5FWFRfTEVWRUwgPSBcIipcIjtcbmNvbnN0IHByb2Nlc3NPYmogPSAob2JqLCBwcm9jZXNzRnVuYywga2V5Tm9kZXMpID0+IHtcbiAgICBpZiAob2JqICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKGtleU5vZGVzID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBwcm9jZXNzRnVuYyhvYmopO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGtleU5vZGVzKTtcbiAgICAgICAgICAgIGNvbnN0IGdvVG9OZXh0TGV2ZWwgPSBrZXlzLmxlbmd0aCA9PT0gMSAmJiBrZXlzWzBdID09PSBORVhUX0xFVkVMO1xuICAgICAgICAgICAgY29uc3Qgc29tZUNoaWxkcmVuID0ga2V5cy5sZW5ndGggPj0gMSAmJiAhZ29Ub05leHRMZXZlbDtcbiAgICAgICAgICAgIGNvbnN0IGFsbENoaWxkcmVuID0ga2V5cy5sZW5ndGggPT09IDA7XG4gICAgICAgICAgICBpZiAoc29tZUNoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHByb2Nlc3NLZXlzSW5PYmoob2JqLCBwcm9jZXNzRnVuYywga2V5Tm9kZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoYWxsQ2hpbGRyZW4pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcHJvY2Vzc0FsbEtleXNJbk9iaihvYmosIHByb2Nlc3NGdW5jLCBTRUxGKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGdvVG9OZXh0TGV2ZWwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gT2JqZWN0LmVudHJpZXMob2JqID8/IHt9KS5yZWR1Y2UoKGFjYywgW2ssIHZdKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgdiAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhY2Nba10gPSBwcm9jZXNzT2JqKHYsIHByb2Nlc3NGdW5jLCBrZXlOb2Rlc1tORVhUX0xFVkVMXSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgICAgICAgICB9LCAoQXJyYXkuaXNBcnJheShvYmopID8gW10gOiB7fSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG59O1xuY29uc3QgcHJvY2Vzc0tleXNJbk9iaiA9IChvYmosIHByb2Nlc3NGdW5jLCBrZXlOb2RlcykgPT4ge1xuICAgIGxldCBhY2N1bXVsYXRvcjtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShvYmopKSB7XG4gICAgICAgIGFjY3VtdWxhdG9yID0gb2JqLmZpbHRlcigoaXRlbSkgPT4gdHlwZW9mIGl0ZW0gIT09IFwiZnVuY3Rpb25cIik7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBhY2N1bXVsYXRvciA9IHt9O1xuICAgICAgICBmb3IgKGNvbnN0IFtrLCB2XSBvZiBPYmplY3QuZW50cmllcyhvYmopKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHYgIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICAgIGFjY3VtdWxhdG9yW2tdID0gdjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBmb3IgKGNvbnN0IFtub2RlS2V5LCBub2Rlc10gb2YgT2JqZWN0LmVudHJpZXMoa2V5Tm9kZXMpKSB7XG4gICAgICAgIGlmICh0eXBlb2Ygb2JqW25vZGVLZXldID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHByb2Nlc3NlZFZhbHVlID0gcHJvY2Vzc09iaihvYmpbbm9kZUtleV0sIHByb2Nlc3NGdW5jLCBub2Rlcyk7XG4gICAgICAgIGlmIChwcm9jZXNzZWRWYWx1ZSAhPT0gdW5kZWZpbmVkICYmIHR5cGVvZiBwcm9jZXNzZWRWYWx1ZSAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICBhY2N1bXVsYXRvcltub2RlS2V5XSA9IHByb2Nlc3NlZFZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBhY2N1bXVsYXRvcjtcbn07XG5jb25zdCBwcm9jZXNzQWxsS2V5c0luT2JqID0gKG9iaiwgcHJvY2Vzc0Z1bmMsIGtleU5vZGVzKSA9PiB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkob2JqKSkge1xuICAgICAgICByZXR1cm4gb2JqLmZpbHRlcigoaXRlbSkgPT4gdHlwZW9mIGl0ZW0gIT09IFwiZnVuY3Rpb25cIikubWFwKChpdGVtKSA9PiBwcm9jZXNzT2JqKGl0ZW0sIHByb2Nlc3NGdW5jLCBrZXlOb2RlcykpO1xuICAgIH1cbiAgICByZXR1cm4gT2JqZWN0LmVudHJpZXMob2JqKS5yZWR1Y2UoKGFjYywgW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwcm9jZXNzZWRWYWx1ZSA9IHByb2Nlc3NPYmoodmFsdWUsIHByb2Nlc3NGdW5jLCBrZXlOb2Rlcyk7XG4gICAgICAgIGlmIChwcm9jZXNzZWRWYWx1ZSAhPT0gdW5kZWZpbmVkICYmIHR5cGVvZiBwcm9jZXNzZWRWYWx1ZSAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICBhY2Nba2V5XSA9IHByb2Nlc3NlZFZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgfSwge30pO1xufTtcbmNvbnN0IG1hcnNoYWxsSW5wdXQgPSAob2JqLCBrZXlOb2Rlcywgb3B0aW9ucykgPT4ge1xuICAgIGNvbnN0IG1hcnNoYWxsRnVuYyA9ICh0b01hcnNoYWxsKSA9PiB1dGlsRHluYW1vZGIubWFyc2hhbGwodG9NYXJzaGFsbCwgb3B0aW9ucyk7XG4gICAgcmV0dXJuIHByb2Nlc3NLZXlzSW5PYmoob2JqLCBtYXJzaGFsbEZ1bmMsIGtleU5vZGVzKTtcbn07XG5jb25zdCB1bm1hcnNoYWxsT3V0cHV0ID0gKG9iaiwga2V5Tm9kZXMsIG9wdGlvbnMpID0+IHtcbiAgICBjb25zdCB1bm1hcnNoYWxsRnVuYyA9ICh0b01hcnNoYWxsKSA9PiB1dGlsRHluYW1vZGIudW5tYXJzaGFsbCh0b01hcnNoYWxsLCBvcHRpb25zKTtcbiAgICByZXR1cm4gcHJvY2Vzc0tleXNJbk9iaihvYmosIHVubWFyc2hhbGxGdW5jLCBrZXlOb2Rlcyk7XG59O1xuXG5jbGFzcyBEeW5hbW9EQkRvY3VtZW50Q2xpZW50Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kIHtcbiAgICBhZGRNYXJzaGFsbGluZ01pZGRsZXdhcmUoY29uZmlndXJhdGlvbikge1xuICAgICAgICBjb25zdCB7IG1hcnNoYWxsT3B0aW9ucyA9IHt9LCB1bm1hcnNoYWxsT3B0aW9ucyA9IHt9IH0gPSBjb25maWd1cmF0aW9uLnRyYW5zbGF0ZUNvbmZpZyB8fCB7fTtcbiAgICAgICAgbWFyc2hhbGxPcHRpb25zLmNvbnZlcnRUb3BMZXZlbENvbnRhaW5lciA9IG1hcnNoYWxsT3B0aW9ucy5jb252ZXJ0VG9wTGV2ZWxDb250YWluZXIgPz8gdHJ1ZTtcbiAgICAgICAgdW5tYXJzaGFsbE9wdGlvbnMuY29udmVydFdpdGhvdXRNYXBXcmFwcGVyID0gdW5tYXJzaGFsbE9wdGlvbnMuY29udmVydFdpdGhvdXRNYXBXcmFwcGVyID8/IHRydWU7XG4gICAgICAgIHRoaXMuY2xpZW50Q29tbWFuZC5taWRkbGV3YXJlU3RhY2suYWRkUmVsYXRpdmVUbygobmV4dCwgY29udGV4dCkgPT4gYXN5bmMgKGFyZ3MpID0+IHtcbiAgICAgICAgICAgIGNvcmUuc2V0RmVhdHVyZShjb250ZXh0LCBcIkREQl9NQVBQRVJcIiwgXCJkXCIpO1xuICAgICAgICAgICAgcmV0dXJuIG5leHQoe1xuICAgICAgICAgICAgICAgIC4uLmFyZ3MsXG4gICAgICAgICAgICAgICAgaW5wdXQ6IG1hcnNoYWxsSW5wdXQoYXJncy5pbnB1dCwgdGhpcy5pbnB1dEtleU5vZGVzLCBtYXJzaGFsbE9wdGlvbnMpLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sIHtcbiAgICAgICAgICAgIG5hbWU6IFwiRG9jdW1lbnRNYXJzaGFsbFwiLFxuICAgICAgICAgICAgcmVsYXRpb246IFwiYmVmb3JlXCIsXG4gICAgICAgICAgICB0b01pZGRsZXdhcmU6IFwic2VyaWFsaXplck1pZGRsZXdhcmVcIixcbiAgICAgICAgICAgIG92ZXJyaWRlOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5jbGllbnRDb21tYW5kLm1pZGRsZXdhcmVTdGFjay5hZGRSZWxhdGl2ZVRvKChuZXh0LCBjb250ZXh0KSA9PiBhc3luYyAoYXJncykgPT4ge1xuICAgICAgICAgICAgY29uc3QgZGVzZXJpYWxpemVkID0gYXdhaXQgbmV4dChhcmdzKTtcbiAgICAgICAgICAgIGRlc2VyaWFsaXplZC5vdXRwdXQgPSB1bm1hcnNoYWxsT3V0cHV0KGRlc2VyaWFsaXplZC5vdXRwdXQsIHRoaXMub3V0cHV0S2V5Tm9kZXMsIHVubWFyc2hhbGxPcHRpb25zKTtcbiAgICAgICAgICAgIHJldHVybiBkZXNlcmlhbGl6ZWQ7XG4gICAgICAgIH0sIHtcbiAgICAgICAgICAgIG5hbWU6IFwiRG9jdW1lbnRVbm1hcnNoYWxsXCIsXG4gICAgICAgICAgICByZWxhdGlvbjogXCJiZWZvcmVcIixcbiAgICAgICAgICAgIHRvTWlkZGxld2FyZTogXCJkZXNlcmlhbGl6ZXJNaWRkbGV3YXJlXCIsXG4gICAgICAgICAgICBvdmVycmlkZTogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgfVxufVxuXG5jbGFzcyBCYXRjaEV4ZWN1dGVTdGF0ZW1lbnRDb21tYW5kIGV4dGVuZHMgRHluYW1vREJEb2N1bWVudENsaWVudENvbW1hbmQge1xuICAgIGlucHV0O1xuICAgIGlucHV0S2V5Tm9kZXMgPSB7XG4gICAgICAgICdTdGF0ZW1lbnRzJzoge1xuICAgICAgICAgICAgJyonOiB7XG4gICAgICAgICAgICAgICAgJ1BhcmFtZXRlcnMnOiBBTExfTUVNQkVSUyxcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICB9O1xuICAgIG91dHB1dEtleU5vZGVzID0ge1xuICAgICAgICAnUmVzcG9uc2VzJzoge1xuICAgICAgICAgICAgJyonOiB7XG4gICAgICAgICAgICAgICAgJ0Vycm9yJzoge1xuICAgICAgICAgICAgICAgICAgICAnSXRlbSc6IEFMTF9WQUxVRVMsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAnSXRlbSc6IEFMTF9WQUxVRVMsXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgfTtcbiAgICBjbGllbnRDb21tYW5kO1xuICAgIG1pZGRsZXdhcmVTdGFjaztcbiAgICBjb25zdHJ1Y3RvcihpbnB1dCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmlucHV0ID0gaW5wdXQ7XG4gICAgICAgIHRoaXMuY2xpZW50Q29tbWFuZCA9IG5ldyBjbGllbnREeW5hbW9kYi5CYXRjaEV4ZWN1dGVTdGF0ZW1lbnRDb21tYW5kKHRoaXMuaW5wdXQpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjayA9IHRoaXMuY2xpZW50Q29tbWFuZC5taWRkbGV3YXJlU3RhY2s7XG4gICAgfVxuICAgIHJlc29sdmVNaWRkbGV3YXJlKGNsaWVudFN0YWNrLCBjb25maWd1cmF0aW9uLCBvcHRpb25zKSB7XG4gICAgICAgIHRoaXMuYWRkTWFyc2hhbGxpbmdNaWRkbGV3YXJlKGNvbmZpZ3VyYXRpb24pO1xuICAgICAgICBjb25zdCBzdGFjayA9IGNsaWVudFN0YWNrLmNvbmNhdCh0aGlzLm1pZGRsZXdhcmVTdGFjayk7XG4gICAgICAgIGNvbnN0IGhhbmRsZXIgPSB0aGlzLmNsaWVudENvbW1hbmQucmVzb2x2ZU1pZGRsZXdhcmUoc3RhY2ssIGNvbmZpZ3VyYXRpb24sIG9wdGlvbnMpO1xuICAgICAgICByZXR1cm4gYXN5bmMgKCkgPT4gaGFuZGxlcih0aGlzLmNsaWVudENvbW1hbmQpO1xuICAgIH1cbn1cblxuY2xhc3MgQmF0Y2hHZXRDb21tYW5kIGV4dGVuZHMgRHluYW1vREJEb2N1bWVudENsaWVudENvbW1hbmQge1xuICAgIGlucHV0O1xuICAgIGlucHV0S2V5Tm9kZXMgPSB7XG4gICAgICAgICdSZXF1ZXN0SXRlbXMnOiB7XG4gICAgICAgICAgICAnKic6IHtcbiAgICAgICAgICAgICAgICAnS2V5cyc6IHtcbiAgICAgICAgICAgICAgICAgICAgJyonOiBBTExfVkFMVUVTXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICB9O1xuICAgIG91dHB1dEtleU5vZGVzID0ge1xuICAgICAgICAnUmVzcG9uc2VzJzoge1xuICAgICAgICAgICAgJyonOiB7XG4gICAgICAgICAgICAgICAgJyonOiBBTExfVkFMVUVTXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgICdVbnByb2Nlc3NlZEtleXMnOiB7XG4gICAgICAgICAgICAnKic6IHtcbiAgICAgICAgICAgICAgICAnS2V5cyc6IHtcbiAgICAgICAgICAgICAgICAgICAgJyonOiBBTExfVkFMVUVTXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICB9O1xuICAgIGNsaWVudENvbW1hbmQ7XG4gICAgbWlkZGxld2FyZVN0YWNrO1xuICAgIGNvbnN0cnVjdG9yKGlucHV0KSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuaW5wdXQgPSBpbnB1dDtcbiAgICAgICAgdGhpcy5jbGllbnRDb21tYW5kID0gbmV3IGNsaWVudER5bmFtb2RiLkJhdGNoR2V0SXRlbUNvbW1hbmQodGhpcy5pbnB1dCk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrID0gdGhpcy5jbGllbnRDb21tYW5kLm1pZGRsZXdhcmVTdGFjaztcbiAgICB9XG4gICAgcmVzb2x2ZU1pZGRsZXdhcmUoY2xpZW50U3RhY2ssIGNvbmZpZ3VyYXRpb24sIG9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5hZGRNYXJzaGFsbGluZ01pZGRsZXdhcmUoY29uZmlndXJhdGlvbik7XG4gICAgICAgIGNvbnN0IHN0YWNrID0gY2xpZW50U3RhY2suY29uY2F0KHRoaXMubWlkZGxld2FyZVN0YWNrKTtcbiAgICAgICAgY29uc3QgaGFuZGxlciA9IHRoaXMuY2xpZW50Q29tbWFuZC5yZXNvbHZlTWlkZGxld2FyZShzdGFjaywgY29uZmlndXJhdGlvbiwgb3B0aW9ucyk7XG4gICAgICAgIHJldHVybiBhc3luYyAoKSA9PiBoYW5kbGVyKHRoaXMuY2xpZW50Q29tbWFuZCk7XG4gICAgfVxufVxuXG5jbGFzcyBCYXRjaFdyaXRlQ29tbWFuZCBleHRlbmRzIER5bmFtb0RCRG9jdW1lbnRDbGllbnRDb21tYW5kIHtcbiAgICBpbnB1dDtcbiAgICBpbnB1dEtleU5vZGVzID0ge1xuICAgICAgICAnUmVxdWVzdEl0ZW1zJzoge1xuICAgICAgICAgICAgJyonOiB7XG4gICAgICAgICAgICAgICAgJyonOiB7XG4gICAgICAgICAgICAgICAgICAgICdQdXRSZXF1ZXN0Jzoge1xuICAgICAgICAgICAgICAgICAgICAgICAgJ0l0ZW0nOiBBTExfVkFMVUVTLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAnRGVsZXRlUmVxdWVzdCc6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICdLZXknOiBBTExfVkFMVUVTLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICB9O1xuICAgIG91dHB1dEtleU5vZGVzID0ge1xuICAgICAgICAnVW5wcm9jZXNzZWRJdGVtcyc6IHtcbiAgICAgICAgICAgICcqJzoge1xuICAgICAgICAgICAgICAgICcqJzoge1xuICAgICAgICAgICAgICAgICAgICAnUHV0UmVxdWVzdCc6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICdJdGVtJzogQUxMX1ZBTFVFUyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgJ0RlbGV0ZVJlcXVlc3QnOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAnS2V5JzogQUxMX1ZBTFVFUyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgICdJdGVtQ29sbGVjdGlvbk1ldHJpY3MnOiB7XG4gICAgICAgICAgICAnKic6IHtcbiAgICAgICAgICAgICAgICAnKic6IHtcbiAgICAgICAgICAgICAgICAgICAgJ0l0ZW1Db2xsZWN0aW9uS2V5JzogQUxMX1ZBTFVFUyxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgfTtcbiAgICBjbGllbnRDb21tYW5kO1xuICAgIG1pZGRsZXdhcmVTdGFjaztcbiAgICBjb25zdHJ1Y3RvcihpbnB1dCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmlucHV0ID0gaW5wdXQ7XG4gICAgICAgIHRoaXMuY2xpZW50Q29tbWFuZCA9IG5ldyBjbGllbnREeW5hbW9kYi5CYXRjaFdyaXRlSXRlbUNvbW1hbmQodGhpcy5pbnB1dCk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrID0gdGhpcy5jbGllbnRDb21tYW5kLm1pZGRsZXdhcmVTdGFjaztcbiAgICB9XG4gICAgcmVzb2x2ZU1pZGRsZXdhcmUoY2xpZW50U3RhY2ssIGNvbmZpZ3VyYXRpb24sIG9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5hZGRNYXJzaGFsbGluZ01pZGRsZXdhcmUoY29uZmlndXJhdGlvbik7XG4gICAgICAgIGNvbnN0IHN0YWNrID0gY2xpZW50U3RhY2suY29uY2F0KHRoaXMubWlkZGxld2FyZVN0YWNrKTtcbiAgICAgICAgY29uc3QgaGFuZGxlciA9IHRoaXMuY2xpZW50Q29tbWFuZC5yZXNvbHZlTWlkZGxld2FyZShzdGFjaywgY29uZmlndXJhdGlvbiwgb3B0aW9ucyk7XG4gICAgICAgIHJldHVybiBhc3luYyAoKSA9PiBoYW5kbGVyKHRoaXMuY2xpZW50Q29tbWFuZCk7XG4gICAgfVxufVxuXG5jbGFzcyBEZWxldGVDb21tYW5kIGV4dGVuZHMgRHluYW1vREJEb2N1bWVudENsaWVudENvbW1hbmQge1xuICAgIGlucHV0O1xuICAgIGlucHV0S2V5Tm9kZXMgPSB7XG4gICAgICAgICdLZXknOiBBTExfVkFMVUVTLFxuICAgICAgICAnRXhwZWN0ZWQnOiB7XG4gICAgICAgICAgICAnKic6IHtcbiAgICAgICAgICAgICAgICAnVmFsdWUnOiBTRUxGLFxuICAgICAgICAgICAgICAgICdBdHRyaWJ1dGVWYWx1ZUxpc3QnOiBBTExfTUVNQkVSUyxcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgJ0V4cHJlc3Npb25BdHRyaWJ1dGVWYWx1ZXMnOiBBTExfVkFMVUVTLFxuICAgIH07XG4gICAgb3V0cHV0S2V5Tm9kZXMgPSB7XG4gICAgICAgICdBdHRyaWJ1dGVzJzogQUxMX1ZBTFVFUyxcbiAgICAgICAgJ0l0ZW1Db2xsZWN0aW9uTWV0cmljcyc6IHtcbiAgICAgICAgICAgICdJdGVtQ29sbGVjdGlvbktleSc6IEFMTF9WQUxVRVMsXG4gICAgICAgIH0sXG4gICAgfTtcbiAgICBjbGllbnRDb21tYW5kO1xuICAgIG1pZGRsZXdhcmVTdGFjaztcbiAgICBjb25zdHJ1Y3RvcihpbnB1dCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmlucHV0ID0gaW5wdXQ7XG4gICAgICAgIHRoaXMuY2xpZW50Q29tbWFuZCA9IG5ldyBjbGllbnREeW5hbW9kYi5EZWxldGVJdGVtQ29tbWFuZCh0aGlzLmlucHV0KTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sgPSB0aGlzLmNsaWVudENvbW1hbmQubWlkZGxld2FyZVN0YWNrO1xuICAgIH1cbiAgICByZXNvbHZlTWlkZGxld2FyZShjbGllbnRTdGFjaywgY29uZmlndXJhdGlvbiwgb3B0aW9ucykge1xuICAgICAgICB0aGlzLmFkZE1hcnNoYWxsaW5nTWlkZGxld2FyZShjb25maWd1cmF0aW9uKTtcbiAgICAgICAgY29uc3Qgc3RhY2sgPSBjbGllbnRTdGFjay5jb25jYXQodGhpcy5taWRkbGV3YXJlU3RhY2spO1xuICAgICAgICBjb25zdCBoYW5kbGVyID0gdGhpcy5jbGllbnRDb21tYW5kLnJlc29sdmVNaWRkbGV3YXJlKHN0YWNrLCBjb25maWd1cmF0aW9uLCBvcHRpb25zKTtcbiAgICAgICAgcmV0dXJuIGFzeW5jICgpID0+IGhhbmRsZXIodGhpcy5jbGllbnRDb21tYW5kKTtcbiAgICB9XG59XG5cbmNsYXNzIEV4ZWN1dGVTdGF0ZW1lbnRDb21tYW5kIGV4dGVuZHMgRHluYW1vREJEb2N1bWVudENsaWVudENvbW1hbmQge1xuICAgIGlucHV0O1xuICAgIGlucHV0S2V5Tm9kZXMgPSB7XG4gICAgICAgICdQYXJhbWV0ZXJzJzogQUxMX01FTUJFUlMsXG4gICAgfTtcbiAgICBvdXRwdXRLZXlOb2RlcyA9IHtcbiAgICAgICAgJ0l0ZW1zJzoge1xuICAgICAgICAgICAgJyonOiBBTExfVkFMVUVTXG4gICAgICAgIH0sXG4gICAgICAgICdMYXN0RXZhbHVhdGVkS2V5JzogQUxMX1ZBTFVFUyxcbiAgICB9O1xuICAgIGNsaWVudENvbW1hbmQ7XG4gICAgbWlkZGxld2FyZVN0YWNrO1xuICAgIGNvbnN0cnVjdG9yKGlucHV0KSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuaW5wdXQgPSBpbnB1dDtcbiAgICAgICAgdGhpcy5jbGllbnRDb21tYW5kID0gbmV3IGNsaWVudER5bmFtb2RiLkV4ZWN1dGVTdGF0ZW1lbnRDb21tYW5kKHRoaXMuaW5wdXQpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjayA9IHRoaXMuY2xpZW50Q29tbWFuZC5taWRkbGV3YXJlU3RhY2s7XG4gICAgfVxuICAgIHJlc29sdmVNaWRkbGV3YXJlKGNsaWVudFN0YWNrLCBjb25maWd1cmF0aW9uLCBvcHRpb25zKSB7XG4gICAgICAgIHRoaXMuYWRkTWFyc2hhbGxpbmdNaWRkbGV3YXJlKGNvbmZpZ3VyYXRpb24pO1xuICAgICAgICBjb25zdCBzdGFjayA9IGNsaWVudFN0YWNrLmNvbmNhdCh0aGlzLm1pZGRsZXdhcmVTdGFjayk7XG4gICAgICAgIGNvbnN0IGhhbmRsZXIgPSB0aGlzLmNsaWVudENvbW1hbmQucmVzb2x2ZU1pZGRsZXdhcmUoc3RhY2ssIGNvbmZpZ3VyYXRpb24sIG9wdGlvbnMpO1xuICAgICAgICByZXR1cm4gYXN5bmMgKCkgPT4gaGFuZGxlcih0aGlzLmNsaWVudENvbW1hbmQpO1xuICAgIH1cbn1cblxuY2xhc3MgRXhlY3V0ZVRyYW5zYWN0aW9uQ29tbWFuZCBleHRlbmRzIER5bmFtb0RCRG9jdW1lbnRDbGllbnRDb21tYW5kIHtcbiAgICBpbnB1dDtcbiAgICBpbnB1dEtleU5vZGVzID0ge1xuICAgICAgICAnVHJhbnNhY3RTdGF0ZW1lbnRzJzoge1xuICAgICAgICAgICAgJyonOiB7XG4gICAgICAgICAgICAgICAgJ1BhcmFtZXRlcnMnOiBBTExfTUVNQkVSUyxcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICB9O1xuICAgIG91dHB1dEtleU5vZGVzID0ge1xuICAgICAgICAnUmVzcG9uc2VzJzoge1xuICAgICAgICAgICAgJyonOiB7XG4gICAgICAgICAgICAgICAgJ0l0ZW0nOiBBTExfVkFMVUVTLFxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgIH07XG4gICAgY2xpZW50Q29tbWFuZDtcbiAgICBtaWRkbGV3YXJlU3RhY2s7XG4gICAgY29uc3RydWN0b3IoaW5wdXQpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5pbnB1dCA9IGlucHV0O1xuICAgICAgICB0aGlzLmNsaWVudENvbW1hbmQgPSBuZXcgY2xpZW50RHluYW1vZGIuRXhlY3V0ZVRyYW5zYWN0aW9uQ29tbWFuZCh0aGlzLmlucHV0KTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sgPSB0aGlzLmNsaWVudENvbW1hbmQubWlkZGxld2FyZVN0YWNrO1xuICAgIH1cbiAgICByZXNvbHZlTWlkZGxld2FyZShjbGllbnRTdGFjaywgY29uZmlndXJhdGlvbiwgb3B0aW9ucykge1xuICAgICAgICB0aGlzLmFkZE1hcnNoYWxsaW5nTWlkZGxld2FyZShjb25maWd1cmF0aW9uKTtcbiAgICAgICAgY29uc3Qgc3RhY2sgPSBjbGllbnRTdGFjay5jb25jYXQodGhpcy5taWRkbGV3YXJlU3RhY2spO1xuICAgICAgICBjb25zdCBoYW5kbGVyID0gdGhpcy5jbGllbnRDb21tYW5kLnJlc29sdmVNaWRkbGV3YXJlKHN0YWNrLCBjb25maWd1cmF0aW9uLCBvcHRpb25zKTtcbiAgICAgICAgcmV0dXJuIGFzeW5jICgpID0+IGhhbmRsZXIodGhpcy5jbGllbnRDb21tYW5kKTtcbiAgICB9XG59XG5cbmNsYXNzIEdldENvbW1hbmQgZXh0ZW5kcyBEeW5hbW9EQkRvY3VtZW50Q2xpZW50Q29tbWFuZCB7XG4gICAgaW5wdXQ7XG4gICAgaW5wdXRLZXlOb2RlcyA9IHtcbiAgICAgICAgJ0tleSc6IEFMTF9WQUxVRVMsXG4gICAgfTtcbiAgICBvdXRwdXRLZXlOb2RlcyA9IHtcbiAgICAgICAgJ0l0ZW0nOiBBTExfVkFMVUVTLFxuICAgIH07XG4gICAgY2xpZW50Q29tbWFuZDtcbiAgICBtaWRkbGV3YXJlU3RhY2s7XG4gICAgY29uc3RydWN0b3IoaW5wdXQpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5pbnB1dCA9IGlucHV0O1xuICAgICAgICB0aGlzLmNsaWVudENvbW1hbmQgPSBuZXcgY2xpZW50RHluYW1vZGIuR2V0SXRlbUNvbW1hbmQodGhpcy5pbnB1dCk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrID0gdGhpcy5jbGllbnRDb21tYW5kLm1pZGRsZXdhcmVTdGFjaztcbiAgICB9XG4gICAgcmVzb2x2ZU1pZGRsZXdhcmUoY2xpZW50U3RhY2ssIGNvbmZpZ3VyYXRpb24sIG9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5hZGRNYXJzaGFsbGluZ01pZGRsZXdhcmUoY29uZmlndXJhdGlvbik7XG4gICAgICAgIGNvbnN0IHN0YWNrID0gY2xpZW50U3RhY2suY29uY2F0KHRoaXMubWlkZGxld2FyZVN0YWNrKTtcbiAgICAgICAgY29uc3QgaGFuZGxlciA9IHRoaXMuY2xpZW50Q29tbWFuZC5yZXNvbHZlTWlkZGxld2FyZShzdGFjaywgY29uZmlndXJhdGlvbiwgb3B0aW9ucyk7XG4gICAgICAgIHJldHVybiBhc3luYyAoKSA9PiBoYW5kbGVyKHRoaXMuY2xpZW50Q29tbWFuZCk7XG4gICAgfVxufVxuXG5jbGFzcyBQdXRDb21tYW5kIGV4dGVuZHMgRHluYW1vREJEb2N1bWVudENsaWVudENvbW1hbmQge1xuICAgIGlucHV0O1xuICAgIGlucHV0S2V5Tm9kZXMgPSB7XG4gICAgICAgICdJdGVtJzogQUxMX1ZBTFVFUyxcbiAgICAgICAgJ0V4cGVjdGVkJzoge1xuICAgICAgICAgICAgJyonOiB7XG4gICAgICAgICAgICAgICAgJ1ZhbHVlJzogU0VMRixcbiAgICAgICAgICAgICAgICAnQXR0cmlidXRlVmFsdWVMaXN0JzogQUxMX01FTUJFUlMsXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgICdFeHByZXNzaW9uQXR0cmlidXRlVmFsdWVzJzogQUxMX1ZBTFVFUyxcbiAgICB9O1xuICAgIG91dHB1dEtleU5vZGVzID0ge1xuICAgICAgICAnQXR0cmlidXRlcyc6IEFMTF9WQUxVRVMsXG4gICAgICAgICdJdGVtQ29sbGVjdGlvbk1ldHJpY3MnOiB7XG4gICAgICAgICAgICAnSXRlbUNvbGxlY3Rpb25LZXknOiBBTExfVkFMVUVTLFxuICAgICAgICB9LFxuICAgIH07XG4gICAgY2xpZW50Q29tbWFuZDtcbiAgICBtaWRkbGV3YXJlU3RhY2s7XG4gICAgY29uc3RydWN0b3IoaW5wdXQpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5pbnB1dCA9IGlucHV0O1xuICAgICAgICB0aGlzLmNsaWVudENvbW1hbmQgPSBuZXcgY2xpZW50RHluYW1vZGIuUHV0SXRlbUNvbW1hbmQodGhpcy5pbnB1dCk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrID0gdGhpcy5jbGllbnRDb21tYW5kLm1pZGRsZXdhcmVTdGFjaztcbiAgICB9XG4gICAgcmVzb2x2ZU1pZGRsZXdhcmUoY2xpZW50U3RhY2ssIGNvbmZpZ3VyYXRpb24sIG9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5hZGRNYXJzaGFsbGluZ01pZGRsZXdhcmUoY29uZmlndXJhdGlvbik7XG4gICAgICAgIGNvbnN0IHN0YWNrID0gY2xpZW50U3RhY2suY29uY2F0KHRoaXMubWlkZGxld2FyZVN0YWNrKTtcbiAgICAgICAgY29uc3QgaGFuZGxlciA9IHRoaXMuY2xpZW50Q29tbWFuZC5yZXNvbHZlTWlkZGxld2FyZShzdGFjaywgY29uZmlndXJhdGlvbiwgb3B0aW9ucyk7XG4gICAgICAgIHJldHVybiBhc3luYyAoKSA9PiBoYW5kbGVyKHRoaXMuY2xpZW50Q29tbWFuZCk7XG4gICAgfVxufVxuXG5jbGFzcyBRdWVyeUNvbW1hbmQgZXh0ZW5kcyBEeW5hbW9EQkRvY3VtZW50Q2xpZW50Q29tbWFuZCB7XG4gICAgaW5wdXQ7XG4gICAgaW5wdXRLZXlOb2RlcyA9IHtcbiAgICAgICAgJ0tleUNvbmRpdGlvbnMnOiB7XG4gICAgICAgICAgICAnKic6IHtcbiAgICAgICAgICAgICAgICAnQXR0cmlidXRlVmFsdWVMaXN0JzogQUxMX01FTUJFUlMsXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgICdRdWVyeUZpbHRlcic6IHtcbiAgICAgICAgICAgICcqJzoge1xuICAgICAgICAgICAgICAgICdBdHRyaWJ1dGVWYWx1ZUxpc3QnOiBBTExfTUVNQkVSUyxcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgJ0V4Y2x1c2l2ZVN0YXJ0S2V5JzogQUxMX1ZBTFVFUyxcbiAgICAgICAgJ0V4cHJlc3Npb25BdHRyaWJ1dGVWYWx1ZXMnOiBBTExfVkFMVUVTLFxuICAgIH07XG4gICAgb3V0cHV0S2V5Tm9kZXMgPSB7XG4gICAgICAgICdJdGVtcyc6IHtcbiAgICAgICAgICAgICcqJzogQUxMX1ZBTFVFU1xuICAgICAgICB9LFxuICAgICAgICAnTGFzdEV2YWx1YXRlZEtleSc6IEFMTF9WQUxVRVMsXG4gICAgfTtcbiAgICBjbGllbnRDb21tYW5kO1xuICAgIG1pZGRsZXdhcmVTdGFjaztcbiAgICBjb25zdHJ1Y3RvcihpbnB1dCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmlucHV0ID0gaW5wdXQ7XG4gICAgICAgIHRoaXMuY2xpZW50Q29tbWFuZCA9IG5ldyBjbGllbnREeW5hbW9kYi5RdWVyeUNvbW1hbmQodGhpcy5pbnB1dCk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrID0gdGhpcy5jbGllbnRDb21tYW5kLm1pZGRsZXdhcmVTdGFjaztcbiAgICB9XG4gICAgcmVzb2x2ZU1pZGRsZXdhcmUoY2xpZW50U3RhY2ssIGNvbmZpZ3VyYXRpb24sIG9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5hZGRNYXJzaGFsbGluZ01pZGRsZXdhcmUoY29uZmlndXJhdGlvbik7XG4gICAgICAgIGNvbnN0IHN0YWNrID0gY2xpZW50U3RhY2suY29uY2F0KHRoaXMubWlkZGxld2FyZVN0YWNrKTtcbiAgICAgICAgY29uc3QgaGFuZGxlciA9IHRoaXMuY2xpZW50Q29tbWFuZC5yZXNvbHZlTWlkZGxld2FyZShzdGFjaywgY29uZmlndXJhdGlvbiwgb3B0aW9ucyk7XG4gICAgICAgIHJldHVybiBhc3luYyAoKSA9PiBoYW5kbGVyKHRoaXMuY2xpZW50Q29tbWFuZCk7XG4gICAgfVxufVxuXG5jbGFzcyBTY2FuQ29tbWFuZCBleHRlbmRzIER5bmFtb0RCRG9jdW1lbnRDbGllbnRDb21tYW5kIHtcbiAgICBpbnB1dDtcbiAgICBpbnB1dEtleU5vZGVzID0ge1xuICAgICAgICAnU2NhbkZpbHRlcic6IHtcbiAgICAgICAgICAgICcqJzoge1xuICAgICAgICAgICAgICAgICdBdHRyaWJ1dGVWYWx1ZUxpc3QnOiBBTExfTUVNQkVSUyxcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgJ0V4Y2x1c2l2ZVN0YXJ0S2V5JzogQUxMX1ZBTFVFUyxcbiAgICAgICAgJ0V4cHJlc3Npb25BdHRyaWJ1dGVWYWx1ZXMnOiBBTExfVkFMVUVTLFxuICAgIH07XG4gICAgb3V0cHV0S2V5Tm9kZXMgPSB7XG4gICAgICAgICdJdGVtcyc6IHtcbiAgICAgICAgICAgICcqJzogQUxMX1ZBTFVFU1xuICAgICAgICB9LFxuICAgICAgICAnTGFzdEV2YWx1YXRlZEtleSc6IEFMTF9WQUxVRVMsXG4gICAgfTtcbiAgICBjbGllbnRDb21tYW5kO1xuICAgIG1pZGRsZXdhcmVTdGFjaztcbiAgICBjb25zdHJ1Y3RvcihpbnB1dCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmlucHV0ID0gaW5wdXQ7XG4gICAgICAgIHRoaXMuY2xpZW50Q29tbWFuZCA9IG5ldyBjbGllbnREeW5hbW9kYi5TY2FuQ29tbWFuZCh0aGlzLmlucHV0KTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sgPSB0aGlzLmNsaWVudENvbW1hbmQubWlkZGxld2FyZVN0YWNrO1xuICAgIH1cbiAgICByZXNvbHZlTWlkZGxld2FyZShjbGllbnRTdGFjaywgY29uZmlndXJhdGlvbiwgb3B0aW9ucykge1xuICAgICAgICB0aGlzLmFkZE1hcnNoYWxsaW5nTWlkZGxld2FyZShjb25maWd1cmF0aW9uKTtcbiAgICAgICAgY29uc3Qgc3RhY2sgPSBjbGllbnRTdGFjay5jb25jYXQodGhpcy5taWRkbGV3YXJlU3RhY2spO1xuICAgICAgICBjb25zdCBoYW5kbGVyID0gdGhpcy5jbGllbnRDb21tYW5kLnJlc29sdmVNaWRkbGV3YXJlKHN0YWNrLCBjb25maWd1cmF0aW9uLCBvcHRpb25zKTtcbiAgICAgICAgcmV0dXJuIGFzeW5jICgpID0+IGhhbmRsZXIodGhpcy5jbGllbnRDb21tYW5kKTtcbiAgICB9XG59XG5cbmNsYXNzIFRyYW5zYWN0R2V0Q29tbWFuZCBleHRlbmRzIER5bmFtb0RCRG9jdW1lbnRDbGllbnRDb21tYW5kIHtcbiAgICBpbnB1dDtcbiAgICBpbnB1dEtleU5vZGVzID0ge1xuICAgICAgICAnVHJhbnNhY3RJdGVtcyc6IHtcbiAgICAgICAgICAgICcqJzoge1xuICAgICAgICAgICAgICAgICdHZXQnOiB7XG4gICAgICAgICAgICAgICAgICAgICdLZXknOiBBTExfVkFMVUVTLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgfTtcbiAgICBvdXRwdXRLZXlOb2RlcyA9IHtcbiAgICAgICAgJ1Jlc3BvbnNlcyc6IHtcbiAgICAgICAgICAgICcqJzoge1xuICAgICAgICAgICAgICAgICdJdGVtJzogQUxMX1ZBTFVFUyxcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICB9O1xuICAgIGNsaWVudENvbW1hbmQ7XG4gICAgbWlkZGxld2FyZVN0YWNrO1xuICAgIGNvbnN0cnVjdG9yKGlucHV0KSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuaW5wdXQgPSBpbnB1dDtcbiAgICAgICAgdGhpcy5jbGllbnRDb21tYW5kID0gbmV3IGNsaWVudER5bmFtb2RiLlRyYW5zYWN0R2V0SXRlbXNDb21tYW5kKHRoaXMuaW5wdXQpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjayA9IHRoaXMuY2xpZW50Q29tbWFuZC5taWRkbGV3YXJlU3RhY2s7XG4gICAgfVxuICAgIHJlc29sdmVNaWRkbGV3YXJlKGNsaWVudFN0YWNrLCBjb25maWd1cmF0aW9uLCBvcHRpb25zKSB7XG4gICAgICAgIHRoaXMuYWRkTWFyc2hhbGxpbmdNaWRkbGV3YXJlKGNvbmZpZ3VyYXRpb24pO1xuICAgICAgICBjb25zdCBzdGFjayA9IGNsaWVudFN0YWNrLmNvbmNhdCh0aGlzLm1pZGRsZXdhcmVTdGFjayk7XG4gICAgICAgIGNvbnN0IGhhbmRsZXIgPSB0aGlzLmNsaWVudENvbW1hbmQucmVzb2x2ZU1pZGRsZXdhcmUoc3RhY2ssIGNvbmZpZ3VyYXRpb24sIG9wdGlvbnMpO1xuICAgICAgICByZXR1cm4gYXN5bmMgKCkgPT4gaGFuZGxlcih0aGlzLmNsaWVudENvbW1hbmQpO1xuICAgIH1cbn1cblxuY2xhc3MgVHJhbnNhY3RXcml0ZUNvbW1hbmQgZXh0ZW5kcyBEeW5hbW9EQkRvY3VtZW50Q2xpZW50Q29tbWFuZCB7XG4gICAgaW5wdXQ7XG4gICAgaW5wdXRLZXlOb2RlcyA9IHtcbiAgICAgICAgJ1RyYW5zYWN0SXRlbXMnOiB7XG4gICAgICAgICAgICAnKic6IHtcbiAgICAgICAgICAgICAgICAnQ29uZGl0aW9uQ2hlY2snOiB7XG4gICAgICAgICAgICAgICAgICAgICdLZXknOiBBTExfVkFMVUVTLFxuICAgICAgICAgICAgICAgICAgICAnRXhwcmVzc2lvbkF0dHJpYnV0ZVZhbHVlcyc6IEFMTF9WQUxVRVMsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAnUHV0Jzoge1xuICAgICAgICAgICAgICAgICAgICAnSXRlbSc6IEFMTF9WQUxVRVMsXG4gICAgICAgICAgICAgICAgICAgICdFeHByZXNzaW9uQXR0cmlidXRlVmFsdWVzJzogQUxMX1ZBTFVFUyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICdEZWxldGUnOiB7XG4gICAgICAgICAgICAgICAgICAgICdLZXknOiBBTExfVkFMVUVTLFxuICAgICAgICAgICAgICAgICAgICAnRXhwcmVzc2lvbkF0dHJpYnV0ZVZhbHVlcyc6IEFMTF9WQUxVRVMsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAnVXBkYXRlJzoge1xuICAgICAgICAgICAgICAgICAgICAnS2V5JzogQUxMX1ZBTFVFUyxcbiAgICAgICAgICAgICAgICAgICAgJ0V4cHJlc3Npb25BdHRyaWJ1dGVWYWx1ZXMnOiBBTExfVkFMVUVTLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgfTtcbiAgICBvdXRwdXRLZXlOb2RlcyA9IHtcbiAgICAgICAgJ0l0ZW1Db2xsZWN0aW9uTWV0cmljcyc6IHtcbiAgICAgICAgICAgICcqJzoge1xuICAgICAgICAgICAgICAgICcqJzoge1xuICAgICAgICAgICAgICAgICAgICAnSXRlbUNvbGxlY3Rpb25LZXknOiBBTExfVkFMVUVTLFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICB9O1xuICAgIGNsaWVudENvbW1hbmQ7XG4gICAgbWlkZGxld2FyZVN0YWNrO1xuICAgIGNvbnN0cnVjdG9yKGlucHV0KSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuaW5wdXQgPSBpbnB1dDtcbiAgICAgICAgdGhpcy5jbGllbnRDb21tYW5kID0gbmV3IGNsaWVudER5bmFtb2RiLlRyYW5zYWN0V3JpdGVJdGVtc0NvbW1hbmQodGhpcy5pbnB1dCk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrID0gdGhpcy5jbGllbnRDb21tYW5kLm1pZGRsZXdhcmVTdGFjaztcbiAgICB9XG4gICAgcmVzb2x2ZU1pZGRsZXdhcmUoY2xpZW50U3RhY2ssIGNvbmZpZ3VyYXRpb24sIG9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5hZGRNYXJzaGFsbGluZ01pZGRsZXdhcmUoY29uZmlndXJhdGlvbik7XG4gICAgICAgIGNvbnN0IHN0YWNrID0gY2xpZW50U3RhY2suY29uY2F0KHRoaXMubWlkZGxld2FyZVN0YWNrKTtcbiAgICAgICAgY29uc3QgaGFuZGxlciA9IHRoaXMuY2xpZW50Q29tbWFuZC5yZXNvbHZlTWlkZGxld2FyZShzdGFjaywgY29uZmlndXJhdGlvbiwgb3B0aW9ucyk7XG4gICAgICAgIHJldHVybiBhc3luYyAoKSA9PiBoYW5kbGVyKHRoaXMuY2xpZW50Q29tbWFuZCk7XG4gICAgfVxufVxuXG5jbGFzcyBVcGRhdGVDb21tYW5kIGV4dGVuZHMgRHluYW1vREJEb2N1bWVudENsaWVudENvbW1hbmQge1xuICAgIGlucHV0O1xuICAgIGlucHV0S2V5Tm9kZXMgPSB7XG4gICAgICAgICdLZXknOiBBTExfVkFMVUVTLFxuICAgICAgICAnQXR0cmlidXRlVXBkYXRlcyc6IHtcbiAgICAgICAgICAgICcqJzoge1xuICAgICAgICAgICAgICAgICdWYWx1ZSc6IFNFTEYsXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgICdFeHBlY3RlZCc6IHtcbiAgICAgICAgICAgICcqJzoge1xuICAgICAgICAgICAgICAgICdWYWx1ZSc6IFNFTEYsXG4gICAgICAgICAgICAgICAgJ0F0dHJpYnV0ZVZhbHVlTGlzdCc6IEFMTF9NRU1CRVJTLFxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICAnRXhwcmVzc2lvbkF0dHJpYnV0ZVZhbHVlcyc6IEFMTF9WQUxVRVMsXG4gICAgfTtcbiAgICBvdXRwdXRLZXlOb2RlcyA9IHtcbiAgICAgICAgJ0F0dHJpYnV0ZXMnOiBBTExfVkFMVUVTLFxuICAgICAgICAnSXRlbUNvbGxlY3Rpb25NZXRyaWNzJzoge1xuICAgICAgICAgICAgJ0l0ZW1Db2xsZWN0aW9uS2V5JzogQUxMX1ZBTFVFUyxcbiAgICAgICAgfSxcbiAgICB9O1xuICAgIGNsaWVudENvbW1hbmQ7XG4gICAgbWlkZGxld2FyZVN0YWNrO1xuICAgIGNvbnN0cnVjdG9yKGlucHV0KSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuaW5wdXQgPSBpbnB1dDtcbiAgICAgICAgdGhpcy5jbGllbnRDb21tYW5kID0gbmV3IGNsaWVudER5bmFtb2RiLlVwZGF0ZUl0ZW1Db21tYW5kKHRoaXMuaW5wdXQpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjayA9IHRoaXMuY2xpZW50Q29tbWFuZC5taWRkbGV3YXJlU3RhY2s7XG4gICAgfVxuICAgIHJlc29sdmVNaWRkbGV3YXJlKGNsaWVudFN0YWNrLCBjb25maWd1cmF0aW9uLCBvcHRpb25zKSB7XG4gICAgICAgIHRoaXMuYWRkTWFyc2hhbGxpbmdNaWRkbGV3YXJlKGNvbmZpZ3VyYXRpb24pO1xuICAgICAgICBjb25zdCBzdGFjayA9IGNsaWVudFN0YWNrLmNvbmNhdCh0aGlzLm1pZGRsZXdhcmVTdGFjayk7XG4gICAgICAgIGNvbnN0IGhhbmRsZXIgPSB0aGlzLmNsaWVudENvbW1hbmQucmVzb2x2ZU1pZGRsZXdhcmUoc3RhY2ssIGNvbmZpZ3VyYXRpb24sIG9wdGlvbnMpO1xuICAgICAgICByZXR1cm4gYXN5bmMgKCkgPT4gaGFuZGxlcih0aGlzLmNsaWVudENvbW1hbmQpO1xuICAgIH1cbn1cblxuY2xhc3MgRHluYW1vREJEb2N1bWVudENsaWVudCBleHRlbmRzIHNtaXRoeUNsaWVudC5DbGllbnQge1xuICAgIGNvbmZpZztcbiAgICBjb25zdHJ1Y3RvcihjbGllbnQsIHRyYW5zbGF0ZUNvbmZpZykge1xuICAgICAgICBzdXBlcihjbGllbnQuY29uZmlnKTtcbiAgICAgICAgdGhpcy5jb25maWcgPSBjbGllbnQuY29uZmlnO1xuICAgICAgICB0aGlzLmNvbmZpZy50cmFuc2xhdGVDb25maWcgPSB0cmFuc2xhdGVDb25maWc7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrID0gY2xpZW50Lm1pZGRsZXdhcmVTdGFjaztcbiAgICAgICAgaWYgKHRoaXMuY29uZmlnPy5jYWNoZU1pZGRsZXdhcmUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkBhd3Mtc2RrL2xpYi1keW5hbW9kYiAtIGNhY2hlTWlkZGxld2FyZT10cnVlIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggdGhlXCJcbiAgICAgICAgICAgICAgICArIFwiIER5bmFtb0RCRG9jdW1lbnRDbGllbnQuIFRoaXMgb3B0aW9uIG11c3QgYmUgc2V0IHRvIGZhbHNlLlwiKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBzdGF0aWMgZnJvbShjbGllbnQsIHRyYW5zbGF0ZUNvbmZpZykge1xuICAgICAgICByZXR1cm4gbmV3IER5bmFtb0RCRG9jdW1lbnRDbGllbnQoY2xpZW50LCB0cmFuc2xhdGVDb25maWcpO1xuICAgIH1cbiAgICBkZXN0cm95KCkge1xuICAgIH1cbn1cblxuY29uc3QgcGFnaW5hdGVRdWVyeSA9IGNvcmUkMS5jcmVhdGVQYWdpbmF0b3IoRHluYW1vREJEb2N1bWVudENsaWVudCwgUXVlcnlDb21tYW5kLCBcIkV4Y2x1c2l2ZVN0YXJ0S2V5XCIsIFwiTGFzdEV2YWx1YXRlZEtleVwiLCBcIkxpbWl0XCIpO1xuXG5jb25zdCBwYWdpbmF0ZVNjYW4gPSBjb3JlJDEuY3JlYXRlUGFnaW5hdG9yKER5bmFtb0RCRG9jdW1lbnRDbGllbnQsIFNjYW5Db21tYW5kLCBcIkV4Y2x1c2l2ZVN0YXJ0S2V5XCIsIFwiTGFzdEV2YWx1YXRlZEtleVwiLCBcIkxpbWl0XCIpO1xuXG5jbGFzcyBEeW5hbW9EQkRvY3VtZW50IGV4dGVuZHMgRHluYW1vREJEb2N1bWVudENsaWVudCB7XG4gICAgc3RhdGljIGZyb20oY2xpZW50LCB0cmFuc2xhdGVDb25maWcpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBEeW5hbW9EQkRvY3VtZW50KGNsaWVudCwgdHJhbnNsYXRlQ29uZmlnKTtcbiAgICB9XG4gICAgYmF0Y2hFeGVjdXRlU3RhdGVtZW50KGFyZ3MsIG9wdGlvbnNPckNiLCBjYikge1xuICAgICAgICBjb25zdCBjb21tYW5kID0gbmV3IEJhdGNoRXhlY3V0ZVN0YXRlbWVudENvbW1hbmQoYXJncyk7XG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9uc09yQ2IgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgdGhpcy5zZW5kKGNvbW1hbmQsIG9wdGlvbnNPckNiKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0eXBlb2YgY2IgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zT3JDYiAhPT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0IGh0dHAgb3B0aW9ucyBidXQgZ2V0ICR7dHlwZW9mIG9wdGlvbnNPckNifWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5zZW5kKGNvbW1hbmQsIG9wdGlvbnNPckNiIHx8IHt9LCBjYik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zZW5kKGNvbW1hbmQsIG9wdGlvbnNPckNiKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBiYXRjaEdldChhcmdzLCBvcHRpb25zT3JDYiwgY2IpIHtcbiAgICAgICAgY29uc3QgY29tbWFuZCA9IG5ldyBCYXRjaEdldENvbW1hbmQoYXJncyk7XG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9uc09yQ2IgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgdGhpcy5zZW5kKGNvbW1hbmQsIG9wdGlvbnNPckNiKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0eXBlb2YgY2IgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zT3JDYiAhPT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0IGh0dHAgb3B0aW9ucyBidXQgZ2V0ICR7dHlwZW9mIG9wdGlvbnNPckNifWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5zZW5kKGNvbW1hbmQsIG9wdGlvbnNPckNiIHx8IHt9LCBjYik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zZW5kKGNvbW1hbmQsIG9wdGlvbnNPckNiKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBiYXRjaFdyaXRlKGFyZ3MsIG9wdGlvbnNPckNiLCBjYikge1xuICAgICAgICBjb25zdCBjb21tYW5kID0gbmV3IEJhdGNoV3JpdGVDb21tYW5kKGFyZ3MpO1xuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnNPckNiID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgIHRoaXMuc2VuZChjb21tYW5kLCBvcHRpb25zT3JDYik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodHlwZW9mIGNiID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygb3B0aW9uc09yQ2IgIT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdCBodHRwIG9wdGlvbnMgYnV0IGdldCAke3R5cGVvZiBvcHRpb25zT3JDYn1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc2VuZChjb21tYW5kLCBvcHRpb25zT3JDYiB8fCB7fSwgY2IpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2VuZChjb21tYW5kLCBvcHRpb25zT3JDYik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZGVsZXRlKGFyZ3MsIG9wdGlvbnNPckNiLCBjYikge1xuICAgICAgICBjb25zdCBjb21tYW5kID0gbmV3IERlbGV0ZUNvbW1hbmQoYXJncyk7XG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9uc09yQ2IgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgdGhpcy5zZW5kKGNvbW1hbmQsIG9wdGlvbnNPckNiKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0eXBlb2YgY2IgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zT3JDYiAhPT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0IGh0dHAgb3B0aW9ucyBidXQgZ2V0ICR7dHlwZW9mIG9wdGlvbnNPckNifWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5zZW5kKGNvbW1hbmQsIG9wdGlvbnNPckNiIHx8IHt9LCBjYik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zZW5kKGNvbW1hbmQsIG9wdGlvbnNPckNiKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBleGVjdXRlU3RhdGVtZW50KGFyZ3MsIG9wdGlvbnNPckNiLCBjYikge1xuICAgICAgICBjb25zdCBjb21tYW5kID0gbmV3IEV4ZWN1dGVTdGF0ZW1lbnRDb21tYW5kKGFyZ3MpO1xuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnNPckNiID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgIHRoaXMuc2VuZChjb21tYW5kLCBvcHRpb25zT3JDYik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodHlwZW9mIGNiID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygb3B0aW9uc09yQ2IgIT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdCBodHRwIG9wdGlvbnMgYnV0IGdldCAke3R5cGVvZiBvcHRpb25zT3JDYn1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc2VuZChjb21tYW5kLCBvcHRpb25zT3JDYiB8fCB7fSwgY2IpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2VuZChjb21tYW5kLCBvcHRpb25zT3JDYik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZXhlY3V0ZVRyYW5zYWN0aW9uKGFyZ3MsIG9wdGlvbnNPckNiLCBjYikge1xuICAgICAgICBjb25zdCBjb21tYW5kID0gbmV3IEV4ZWN1dGVUcmFuc2FjdGlvbkNvbW1hbmQoYXJncyk7XG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9uc09yQ2IgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgdGhpcy5zZW5kKGNvbW1hbmQsIG9wdGlvbnNPckNiKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0eXBlb2YgY2IgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zT3JDYiAhPT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0IGh0dHAgb3B0aW9ucyBidXQgZ2V0ICR7dHlwZW9mIG9wdGlvbnNPckNifWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5zZW5kKGNvbW1hbmQsIG9wdGlvbnNPckNiIHx8IHt9LCBjYik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zZW5kKGNvbW1hbmQsIG9wdGlvbnNPckNiKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXQoYXJncywgb3B0aW9uc09yQ2IsIGNiKSB7XG4gICAgICAgIGNvbnN0IGNvbW1hbmQgPSBuZXcgR2V0Q29tbWFuZChhcmdzKTtcbiAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zT3JDYiA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICB0aGlzLnNlbmQoY29tbWFuZCwgb3B0aW9uc09yQ2IpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHR5cGVvZiBjYiA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnNPckNiICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3QgaHR0cCBvcHRpb25zIGJ1dCBnZXQgJHt0eXBlb2Ygb3B0aW9uc09yQ2J9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnNlbmQoY29tbWFuZCwgb3B0aW9uc09yQ2IgfHwge30sIGNiKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNlbmQoY29tbWFuZCwgb3B0aW9uc09yQ2IpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHB1dChhcmdzLCBvcHRpb25zT3JDYiwgY2IpIHtcbiAgICAgICAgY29uc3QgY29tbWFuZCA9IG5ldyBQdXRDb21tYW5kKGFyZ3MpO1xuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnNPckNiID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgIHRoaXMuc2VuZChjb21tYW5kLCBvcHRpb25zT3JDYik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodHlwZW9mIGNiID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygb3B0aW9uc09yQ2IgIT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdCBodHRwIG9wdGlvbnMgYnV0IGdldCAke3R5cGVvZiBvcHRpb25zT3JDYn1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc2VuZChjb21tYW5kLCBvcHRpb25zT3JDYiB8fCB7fSwgY2IpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2VuZChjb21tYW5kLCBvcHRpb25zT3JDYik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcXVlcnkoYXJncywgb3B0aW9uc09yQ2IsIGNiKSB7XG4gICAgICAgIGNvbnN0IGNvbW1hbmQgPSBuZXcgUXVlcnlDb21tYW5kKGFyZ3MpO1xuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnNPckNiID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgIHRoaXMuc2VuZChjb21tYW5kLCBvcHRpb25zT3JDYik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodHlwZW9mIGNiID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygb3B0aW9uc09yQ2IgIT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdCBodHRwIG9wdGlvbnMgYnV0IGdldCAke3R5cGVvZiBvcHRpb25zT3JDYn1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc2VuZChjb21tYW5kLCBvcHRpb25zT3JDYiB8fCB7fSwgY2IpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2VuZChjb21tYW5kLCBvcHRpb25zT3JDYik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgc2NhbihhcmdzLCBvcHRpb25zT3JDYiwgY2IpIHtcbiAgICAgICAgY29uc3QgY29tbWFuZCA9IG5ldyBTY2FuQ29tbWFuZChhcmdzKTtcbiAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zT3JDYiA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICB0aGlzLnNlbmQoY29tbWFuZCwgb3B0aW9uc09yQ2IpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHR5cGVvZiBjYiA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnNPckNiICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3QgaHR0cCBvcHRpb25zIGJ1dCBnZXQgJHt0eXBlb2Ygb3B0aW9uc09yQ2J9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnNlbmQoY29tbWFuZCwgb3B0aW9uc09yQ2IgfHwge30sIGNiKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNlbmQoY29tbWFuZCwgb3B0aW9uc09yQ2IpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHRyYW5zYWN0R2V0KGFyZ3MsIG9wdGlvbnNPckNiLCBjYikge1xuICAgICAgICBjb25zdCBjb21tYW5kID0gbmV3IFRyYW5zYWN0R2V0Q29tbWFuZChhcmdzKTtcbiAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zT3JDYiA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICB0aGlzLnNlbmQoY29tbWFuZCwgb3B0aW9uc09yQ2IpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHR5cGVvZiBjYiA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnNPckNiICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3QgaHR0cCBvcHRpb25zIGJ1dCBnZXQgJHt0eXBlb2Ygb3B0aW9uc09yQ2J9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnNlbmQoY29tbWFuZCwgb3B0aW9uc09yQ2IgfHwge30sIGNiKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNlbmQoY29tbWFuZCwgb3B0aW9uc09yQ2IpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHRyYW5zYWN0V3JpdGUoYXJncywgb3B0aW9uc09yQ2IsIGNiKSB7XG4gICAgICAgIGNvbnN0IGNvbW1hbmQgPSBuZXcgVHJhbnNhY3RXcml0ZUNvbW1hbmQoYXJncyk7XG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9uc09yQ2IgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgdGhpcy5zZW5kKGNvbW1hbmQsIG9wdGlvbnNPckNiKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0eXBlb2YgY2IgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zT3JDYiAhPT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0IGh0dHAgb3B0aW9ucyBidXQgZ2V0ICR7dHlwZW9mIG9wdGlvbnNPckNifWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5zZW5kKGNvbW1hbmQsIG9wdGlvbnNPckNiIHx8IHt9LCBjYik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zZW5kKGNvbW1hbmQsIG9wdGlvbnNPckNiKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICB1cGRhdGUoYXJncywgb3B0aW9uc09yQ2IsIGNiKSB7XG4gICAgICAgIGNvbnN0IGNvbW1hbmQgPSBuZXcgVXBkYXRlQ29tbWFuZChhcmdzKTtcbiAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zT3JDYiA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICB0aGlzLnNlbmQoY29tbWFuZCwgb3B0aW9uc09yQ2IpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHR5cGVvZiBjYiA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnNPckNiICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3QgaHR0cCBvcHRpb25zIGJ1dCBnZXQgJHt0eXBlb2Ygb3B0aW9uc09yQ2J9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnNlbmQoY29tbWFuZCwgb3B0aW9uc09yQ2IgfHwge30sIGNiKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNlbmQoY29tbWFuZCwgb3B0aW9uc09yQ2IpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCIkQ29tbWFuZFwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHNtaXRoeUNsaWVudC5Db21tYW5kOyB9XG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fQ2xpZW50XCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gc21pdGh5Q2xpZW50LkNsaWVudDsgfVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJOdW1iZXJWYWx1ZVwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHV0aWxEeW5hbW9kYi5OdW1iZXJWYWx1ZUltcGw7IH1cbn0pO1xuZXhwb3J0cy5CYXRjaEV4ZWN1dGVTdGF0ZW1lbnRDb21tYW5kID0gQmF0Y2hFeGVjdXRlU3RhdGVtZW50Q29tbWFuZDtcbmV4cG9ydHMuQmF0Y2hHZXRDb21tYW5kID0gQmF0Y2hHZXRDb21tYW5kO1xuZXhwb3J0cy5CYXRjaFdyaXRlQ29tbWFuZCA9IEJhdGNoV3JpdGVDb21tYW5kO1xuZXhwb3J0cy5EZWxldGVDb21tYW5kID0gRGVsZXRlQ29tbWFuZDtcbmV4cG9ydHMuRHluYW1vREJEb2N1bWVudCA9IER5bmFtb0RCRG9jdW1lbnQ7XG5leHBvcnRzLkR5bmFtb0RCRG9jdW1lbnRDbGllbnQgPSBEeW5hbW9EQkRvY3VtZW50Q2xpZW50O1xuZXhwb3J0cy5EeW5hbW9EQkRvY3VtZW50Q2xpZW50Q29tbWFuZCA9IER5bmFtb0RCRG9jdW1lbnRDbGllbnRDb21tYW5kO1xuZXhwb3J0cy5FeGVjdXRlU3RhdGVtZW50Q29tbWFuZCA9IEV4ZWN1dGVTdGF0ZW1lbnRDb21tYW5kO1xuZXhwb3J0cy5FeGVjdXRlVHJhbnNhY3Rpb25Db21tYW5kID0gRXhlY3V0ZVRyYW5zYWN0aW9uQ29tbWFuZDtcbmV4cG9ydHMuR2V0Q29tbWFuZCA9IEdldENvbW1hbmQ7XG5leHBvcnRzLlB1dENvbW1hbmQgPSBQdXRDb21tYW5kO1xuZXhwb3J0cy5RdWVyeUNvbW1hbmQgPSBRdWVyeUNvbW1hbmQ7XG5leHBvcnRzLlNjYW5Db21tYW5kID0gU2NhbkNvbW1hbmQ7XG5leHBvcnRzLlRyYW5zYWN0R2V0Q29tbWFuZCA9IFRyYW5zYWN0R2V0Q29tbWFuZDtcbmV4cG9ydHMuVHJhbnNhY3RXcml0ZUNvbW1hbmQgPSBUcmFuc2FjdFdyaXRlQ29tbWFuZDtcbmV4cG9ydHMuVXBkYXRlQ29tbWFuZCA9IFVwZGF0ZUNvbW1hbmQ7XG5leHBvcnRzLnBhZ2luYXRlUXVlcnkgPSBwYWdpbmF0ZVF1ZXJ5O1xuZXhwb3J0cy5wYWdpbmF0ZVNjYW4gPSBwYWdpbmF0ZVNjYW47XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgcHJvdG9jb2xIdHRwID0gcmVxdWlyZSgnQHNtaXRoeS9wcm90b2NvbC1odHRwJyk7XG5cbmZ1bmN0aW9uIHJlc29sdmVIb3N0SGVhZGVyQ29uZmlnKGlucHV0KSB7XG4gICAgcmV0dXJuIGlucHV0O1xufVxuY29uc3QgaG9zdEhlYWRlck1pZGRsZXdhcmUgPSAob3B0aW9ucykgPT4gKG5leHQpID0+IGFzeW5jIChhcmdzKSA9PiB7XG4gICAgaWYgKCFwcm90b2NvbEh0dHAuSHR0cFJlcXVlc3QuaXNJbnN0YW5jZShhcmdzLnJlcXVlc3QpKVxuICAgICAgICByZXR1cm4gbmV4dChhcmdzKTtcbiAgICBjb25zdCB7IHJlcXVlc3QgfSA9IGFyZ3M7XG4gICAgY29uc3QgeyBoYW5kbGVyUHJvdG9jb2wgPSBcIlwiIH0gPSBvcHRpb25zLnJlcXVlc3RIYW5kbGVyLm1ldGFkYXRhIHx8IHt9O1xuICAgIGlmIChoYW5kbGVyUHJvdG9jb2wuaW5kZXhPZihcImgyXCIpID49IDAgJiYgIXJlcXVlc3QuaGVhZGVyc1tcIjphdXRob3JpdHlcIl0pIHtcbiAgICAgICAgZGVsZXRlIHJlcXVlc3QuaGVhZGVyc1tcImhvc3RcIl07XG4gICAgICAgIHJlcXVlc3QuaGVhZGVyc1tcIjphdXRob3JpdHlcIl0gPSByZXF1ZXN0Lmhvc3RuYW1lICsgKHJlcXVlc3QucG9ydCA/IFwiOlwiICsgcmVxdWVzdC5wb3J0IDogXCJcIik7XG4gICAgfVxuICAgIGVsc2UgaWYgKCFyZXF1ZXN0LmhlYWRlcnNbXCJob3N0XCJdKSB7XG4gICAgICAgIGxldCBob3N0ID0gcmVxdWVzdC5ob3N0bmFtZTtcbiAgICAgICAgaWYgKHJlcXVlc3QucG9ydCAhPSBudWxsKVxuICAgICAgICAgICAgaG9zdCArPSBgOiR7cmVxdWVzdC5wb3J0fWA7XG4gICAgICAgIHJlcXVlc3QuaGVhZGVyc1tcImhvc3RcIl0gPSBob3N0O1xuICAgIH1cbiAgICByZXR1cm4gbmV4dChhcmdzKTtcbn07XG5jb25zdCBob3N0SGVhZGVyTWlkZGxld2FyZU9wdGlvbnMgPSB7XG4gICAgbmFtZTogXCJob3N0SGVhZGVyTWlkZGxld2FyZVwiLFxuICAgIHN0ZXA6IFwiYnVpbGRcIixcbiAgICBwcmlvcml0eTogXCJsb3dcIixcbiAgICB0YWdzOiBbXCJIT1NUXCJdLFxuICAgIG92ZXJyaWRlOiB0cnVlLFxufTtcbmNvbnN0IGdldEhvc3RIZWFkZXJQbHVnaW4gPSAob3B0aW9ucykgPT4gKHtcbiAgICBhcHBseVRvU3RhY2s6IChjbGllbnRTdGFjaykgPT4ge1xuICAgICAgICBjbGllbnRTdGFjay5hZGQoaG9zdEhlYWRlck1pZGRsZXdhcmUob3B0aW9ucyksIGhvc3RIZWFkZXJNaWRkbGV3YXJlT3B0aW9ucyk7XG4gICAgfSxcbn0pO1xuXG5leHBvcnRzLmdldEhvc3RIZWFkZXJQbHVnaW4gPSBnZXRIb3N0SGVhZGVyUGx1Z2luO1xuZXhwb3J0cy5ob3N0SGVhZGVyTWlkZGxld2FyZSA9IGhvc3RIZWFkZXJNaWRkbGV3YXJlO1xuZXhwb3J0cy5ob3N0SGVhZGVyTWlkZGxld2FyZU9wdGlvbnMgPSBob3N0SGVhZGVyTWlkZGxld2FyZU9wdGlvbnM7XG5leHBvcnRzLnJlc29sdmVIb3N0SGVhZGVyQ29uZmlnID0gcmVzb2x2ZUhvc3RIZWFkZXJDb25maWc7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG5jb25zdCBsb2dnZXJNaWRkbGV3YXJlID0gKCkgPT4gKG5leHQsIGNvbnRleHQpID0+IGFzeW5jIChhcmdzKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBuZXh0KGFyZ3MpO1xuICAgICAgICBjb25zdCB7IGNsaWVudE5hbWUsIGNvbW1hbmROYW1lLCBsb2dnZXIsIGR5bmFtb0RiRG9jdW1lbnRDbGllbnRPcHRpb25zID0ge30gfSA9IGNvbnRleHQ7XG4gICAgICAgIGNvbnN0IHsgb3ZlcnJpZGVJbnB1dEZpbHRlclNlbnNpdGl2ZUxvZywgb3ZlcnJpZGVPdXRwdXRGaWx0ZXJTZW5zaXRpdmVMb2cgfSA9IGR5bmFtb0RiRG9jdW1lbnRDbGllbnRPcHRpb25zO1xuICAgICAgICBjb25zdCBpbnB1dEZpbHRlclNlbnNpdGl2ZUxvZyA9IG92ZXJyaWRlSW5wdXRGaWx0ZXJTZW5zaXRpdmVMb2cgPz8gY29udGV4dC5pbnB1dEZpbHRlclNlbnNpdGl2ZUxvZztcbiAgICAgICAgY29uc3Qgb3V0cHV0RmlsdGVyU2Vuc2l0aXZlTG9nID0gb3ZlcnJpZGVPdXRwdXRGaWx0ZXJTZW5zaXRpdmVMb2cgPz8gY29udGV4dC5vdXRwdXRGaWx0ZXJTZW5zaXRpdmVMb2c7XG4gICAgICAgIGNvbnN0IHsgJG1ldGFkYXRhLCAuLi5vdXRwdXRXaXRob3V0TWV0YWRhdGEgfSA9IHJlc3BvbnNlLm91dHB1dDtcbiAgICAgICAgbG9nZ2VyPy5pbmZvPy4oe1xuICAgICAgICAgICAgY2xpZW50TmFtZSxcbiAgICAgICAgICAgIGNvbW1hbmROYW1lLFxuICAgICAgICAgICAgaW5wdXQ6IGlucHV0RmlsdGVyU2Vuc2l0aXZlTG9nKGFyZ3MuaW5wdXQpLFxuICAgICAgICAgICAgb3V0cHV0OiBvdXRwdXRGaWx0ZXJTZW5zaXRpdmVMb2cob3V0cHV0V2l0aG91dE1ldGFkYXRhKSxcbiAgICAgICAgICAgIG1ldGFkYXRhOiAkbWV0YWRhdGEsXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgfVxuICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zdCB7IGNsaWVudE5hbWUsIGNvbW1hbmROYW1lLCBsb2dnZXIsIGR5bmFtb0RiRG9jdW1lbnRDbGllbnRPcHRpb25zID0ge30gfSA9IGNvbnRleHQ7XG4gICAgICAgIGNvbnN0IHsgb3ZlcnJpZGVJbnB1dEZpbHRlclNlbnNpdGl2ZUxvZyB9ID0gZHluYW1vRGJEb2N1bWVudENsaWVudE9wdGlvbnM7XG4gICAgICAgIGNvbnN0IGlucHV0RmlsdGVyU2Vuc2l0aXZlTG9nID0gb3ZlcnJpZGVJbnB1dEZpbHRlclNlbnNpdGl2ZUxvZyA/PyBjb250ZXh0LmlucHV0RmlsdGVyU2Vuc2l0aXZlTG9nO1xuICAgICAgICBsb2dnZXI/LmVycm9yPy4oe1xuICAgICAgICAgICAgY2xpZW50TmFtZSxcbiAgICAgICAgICAgIGNvbW1hbmROYW1lLFxuICAgICAgICAgICAgaW5wdXQ6IGlucHV0RmlsdGVyU2Vuc2l0aXZlTG9nKGFyZ3MuaW5wdXQpLFxuICAgICAgICAgICAgZXJyb3IsXG4gICAgICAgICAgICBtZXRhZGF0YTogZXJyb3IuJG1ldGFkYXRhLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxufTtcbmNvbnN0IGxvZ2dlck1pZGRsZXdhcmVPcHRpb25zID0ge1xuICAgIG5hbWU6IFwibG9nZ2VyTWlkZGxld2FyZVwiLFxuICAgIHRhZ3M6IFtcIkxPR0dFUlwiXSxcbiAgICBzdGVwOiBcImluaXRpYWxpemVcIixcbiAgICBvdmVycmlkZTogdHJ1ZSxcbn07XG5jb25zdCBnZXRMb2dnZXJQbHVnaW4gPSAob3B0aW9ucykgPT4gKHtcbiAgICBhcHBseVRvU3RhY2s6IChjbGllbnRTdGFjaykgPT4ge1xuICAgICAgICBjbGllbnRTdGFjay5hZGQobG9nZ2VyTWlkZGxld2FyZSgpLCBsb2dnZXJNaWRkbGV3YXJlT3B0aW9ucyk7XG4gICAgfSxcbn0pO1xuXG5leHBvcnRzLmdldExvZ2dlclBsdWdpbiA9IGdldExvZ2dlclBsdWdpbjtcbmV4cG9ydHMubG9nZ2VyTWlkZGxld2FyZSA9IGxvZ2dlck1pZGRsZXdhcmU7XG5leHBvcnRzLmxvZ2dlck1pZGRsZXdhcmVPcHRpb25zID0gbG9nZ2VyTWlkZGxld2FyZU9wdGlvbnM7XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLnJlY3Vyc2lvbkRldGVjdGlvbk1pZGRsZXdhcmUgPSB2b2lkIDA7XG5jb25zdCBsYW1iZGFfaW52b2tlX3N0b3JlXzEgPSByZXF1aXJlKFwiQGF3cy9sYW1iZGEtaW52b2tlLXN0b3JlXCIpO1xuY29uc3QgcHJvdG9jb2xfaHR0cF8xID0gcmVxdWlyZShcIkBzbWl0aHkvcHJvdG9jb2wtaHR0cFwiKTtcbmNvbnN0IFRSQUNFX0lEX0hFQURFUl9OQU1FID0gXCJYLUFtem4tVHJhY2UtSWRcIjtcbmNvbnN0IEVOVl9MQU1CREFfRlVOQ1RJT05fTkFNRSA9IFwiQVdTX0xBTUJEQV9GVU5DVElPTl9OQU1FXCI7XG5jb25zdCBFTlZfVFJBQ0VfSUQgPSBcIl9YX0FNWk5fVFJBQ0VfSURcIjtcbmNvbnN0IHJlY3Vyc2lvbkRldGVjdGlvbk1pZGRsZXdhcmUgPSAoKSA9PiAobmV4dCkgPT4gYXN5bmMgKGFyZ3MpID0+IHtcbiAgICBjb25zdCB7IHJlcXVlc3QgfSA9IGFyZ3M7XG4gICAgaWYgKCFwcm90b2NvbF9odHRwXzEuSHR0cFJlcXVlc3QuaXNJbnN0YW5jZShyZXF1ZXN0KSkge1xuICAgICAgICByZXR1cm4gbmV4dChhcmdzKTtcbiAgICB9XG4gICAgY29uc3QgdHJhY2VJZEhlYWRlciA9IE9iamVjdC5rZXlzKHJlcXVlc3QuaGVhZGVycyA/PyB7fSkuZmluZCgoaCkgPT4gaC50b0xvd2VyQ2FzZSgpID09PSBUUkFDRV9JRF9IRUFERVJfTkFNRS50b0xvd2VyQ2FzZSgpKSA/P1xuICAgICAgICBUUkFDRV9JRF9IRUFERVJfTkFNRTtcbiAgICBpZiAocmVxdWVzdC5oZWFkZXJzLmhhc093blByb3BlcnR5KHRyYWNlSWRIZWFkZXIpKSB7XG4gICAgICAgIHJldHVybiBuZXh0KGFyZ3MpO1xuICAgIH1cbiAgICBjb25zdCBmdW5jdGlvbk5hbWUgPSBwcm9jZXNzLmVudltFTlZfTEFNQkRBX0ZVTkNUSU9OX05BTUVdO1xuICAgIGNvbnN0IHRyYWNlSWRGcm9tRW52ID0gcHJvY2Vzcy5lbnZbRU5WX1RSQUNFX0lEXTtcbiAgICBjb25zdCBpbnZva2VTdG9yZSA9IGF3YWl0IGxhbWJkYV9pbnZva2Vfc3RvcmVfMS5JbnZva2VTdG9yZS5nZXRJbnN0YW5jZUFzeW5jKCk7XG4gICAgY29uc3QgdHJhY2VJZEZyb21JbnZva2VTdG9yZSA9IGludm9rZVN0b3JlPy5nZXRYUmF5VHJhY2VJZCgpO1xuICAgIGNvbnN0IHRyYWNlSWQgPSB0cmFjZUlkRnJvbUludm9rZVN0b3JlID8/IHRyYWNlSWRGcm9tRW52O1xuICAgIGNvbnN0IG5vbkVtcHR5U3RyaW5nID0gKHN0cikgPT4gdHlwZW9mIHN0ciA9PT0gXCJzdHJpbmdcIiAmJiBzdHIubGVuZ3RoID4gMDtcbiAgICBpZiAobm9uRW1wdHlTdHJpbmcoZnVuY3Rpb25OYW1lKSAmJiBub25FbXB0eVN0cmluZyh0cmFjZUlkKSkge1xuICAgICAgICByZXF1ZXN0LmhlYWRlcnNbVFJBQ0VfSURfSEVBREVSX05BTUVdID0gdHJhY2VJZDtcbiAgICB9XG4gICAgcmV0dXJuIG5leHQoe1xuICAgICAgICAuLi5hcmdzLFxuICAgICAgICByZXF1ZXN0LFxuICAgIH0pO1xufTtcbmV4cG9ydHMucmVjdXJzaW9uRGV0ZWN0aW9uTWlkZGxld2FyZSA9IHJlY3Vyc2lvbkRldGVjdGlvbk1pZGRsZXdhcmU7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgcmVjdXJzaW9uRGV0ZWN0aW9uTWlkZGxld2FyZSA9IHJlcXVpcmUoJy4vcmVjdXJzaW9uRGV0ZWN0aW9uTWlkZGxld2FyZScpO1xuXG5jb25zdCByZWN1cnNpb25EZXRlY3Rpb25NaWRkbGV3YXJlT3B0aW9ucyA9IHtcbiAgICBzdGVwOiBcImJ1aWxkXCIsXG4gICAgdGFnczogW1wiUkVDVVJTSU9OX0RFVEVDVElPTlwiXSxcbiAgICBuYW1lOiBcInJlY3Vyc2lvbkRldGVjdGlvbk1pZGRsZXdhcmVcIixcbiAgICBvdmVycmlkZTogdHJ1ZSxcbiAgICBwcmlvcml0eTogXCJsb3dcIixcbn07XG5cbmNvbnN0IGdldFJlY3Vyc2lvbkRldGVjdGlvblBsdWdpbiA9IChvcHRpb25zKSA9PiAoe1xuICAgIGFwcGx5VG9TdGFjazogKGNsaWVudFN0YWNrKSA9PiB7XG4gICAgICAgIGNsaWVudFN0YWNrLmFkZChyZWN1cnNpb25EZXRlY3Rpb25NaWRkbGV3YXJlLnJlY3Vyc2lvbkRldGVjdGlvbk1pZGRsZXdhcmUoKSwgcmVjdXJzaW9uRGV0ZWN0aW9uTWlkZGxld2FyZU9wdGlvbnMpO1xuICAgIH0sXG59KTtcblxuZXhwb3J0cy5nZXRSZWN1cnNpb25EZXRlY3Rpb25QbHVnaW4gPSBnZXRSZWN1cnNpb25EZXRlY3Rpb25QbHVnaW47XG5PYmplY3Qua2V5cyhyZWN1cnNpb25EZXRlY3Rpb25NaWRkbGV3YXJlKS5mb3JFYWNoKGZ1bmN0aW9uIChrKSB7XG4gICAgaWYgKGsgIT09ICdkZWZhdWx0JyAmJiAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGV4cG9ydHMsIGspKSBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgaywge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHJlY3Vyc2lvbkRldGVjdGlvbk1pZGRsZXdhcmVba107IH1cbiAgICB9KTtcbn0pO1xuIiwgIid1c2Ugc3RyaWN0JztcblxudmFyIHV0aWxFbmRwb2ludHMgPSByZXF1aXJlKCdAc21pdGh5L3V0aWwtZW5kcG9pbnRzJyk7XG52YXIgdXJsUGFyc2VyID0gcmVxdWlyZSgnQHNtaXRoeS91cmwtcGFyc2VyJyk7XG5cbmNvbnN0IGlzVmlydHVhbEhvc3RhYmxlUzNCdWNrZXQgPSAodmFsdWUsIGFsbG93U3ViRG9tYWlucyA9IGZhbHNlKSA9PiB7XG4gICAgaWYgKGFsbG93U3ViRG9tYWlucykge1xuICAgICAgICBmb3IgKGNvbnN0IGxhYmVsIG9mIHZhbHVlLnNwbGl0KFwiLlwiKSkge1xuICAgICAgICAgICAgaWYgKCFpc1ZpcnR1YWxIb3N0YWJsZVMzQnVja2V0KGxhYmVsKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKCF1dGlsRW5kcG9pbnRzLmlzVmFsaWRIb3N0TGFiZWwodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKHZhbHVlLmxlbmd0aCA8IDMgfHwgdmFsdWUubGVuZ3RoID4gNjMpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAodmFsdWUgIT09IHZhbHVlLnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAodXRpbEVuZHBvaW50cy5pc0lwQWRkcmVzcyh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbn07XG5cbmNvbnN0IEFSTl9ERUxJTUlURVIgPSBcIjpcIjtcbmNvbnN0IFJFU09VUkNFX0RFTElNSVRFUiA9IFwiL1wiO1xuY29uc3QgcGFyc2VBcm4gPSAodmFsdWUpID0+IHtcbiAgICBjb25zdCBzZWdtZW50cyA9IHZhbHVlLnNwbGl0KEFSTl9ERUxJTUlURVIpO1xuICAgIGlmIChzZWdtZW50cy5sZW5ndGggPCA2KVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICBjb25zdCBbYXJuLCBwYXJ0aXRpb24sIHNlcnZpY2UsIHJlZ2lvbiwgYWNjb3VudElkLCAuLi5yZXNvdXJjZVBhdGhdID0gc2VnbWVudHM7XG4gICAgaWYgKGFybiAhPT0gXCJhcm5cIiB8fCBwYXJ0aXRpb24gPT09IFwiXCIgfHwgc2VydmljZSA9PT0gXCJcIiB8fCByZXNvdXJjZVBhdGguam9pbihBUk5fREVMSU1JVEVSKSA9PT0gXCJcIilcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgcmVzb3VyY2VJZCA9IHJlc291cmNlUGF0aC5tYXAoKHJlc291cmNlKSA9PiByZXNvdXJjZS5zcGxpdChSRVNPVVJDRV9ERUxJTUlURVIpKS5mbGF0KCk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcGFydGl0aW9uLFxuICAgICAgICBzZXJ2aWNlLFxuICAgICAgICByZWdpb24sXG4gICAgICAgIGFjY291bnRJZCxcbiAgICAgICAgcmVzb3VyY2VJZCxcbiAgICB9O1xufTtcblxudmFyIHBhcnRpdGlvbnMgPSBbXG5cdHtcblx0XHRpZDogXCJhd3NcIixcblx0XHRvdXRwdXRzOiB7XG5cdFx0XHRkbnNTdWZmaXg6IFwiYW1hem9uYXdzLmNvbVwiLFxuXHRcdFx0ZHVhbFN0YWNrRG5zU3VmZml4OiBcImFwaS5hd3NcIixcblx0XHRcdGltcGxpY2l0R2xvYmFsUmVnaW9uOiBcInVzLWVhc3QtMVwiLFxuXHRcdFx0bmFtZTogXCJhd3NcIixcblx0XHRcdHN1cHBvcnRzRHVhbFN0YWNrOiB0cnVlLFxuXHRcdFx0c3VwcG9ydHNGSVBTOiB0cnVlXG5cdFx0fSxcblx0XHRyZWdpb25SZWdleDogXCJeKHVzfGV1fGFwfHNhfGNhfG1lfGFmfGlsfG14KVxcXFwtXFxcXHcrXFxcXC1cXFxcZCskXCIsXG5cdFx0cmVnaW9uczoge1xuXHRcdFx0XCJhZi1zb3V0aC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQWZyaWNhIChDYXBlIFRvd24pXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLWVhc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFzaWEgUGFjaWZpYyAoSG9uZyBLb25nKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJhcC1lYXN0LTJcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBc2lhIFBhY2lmaWMgKFRhaXBlaSlcIlxuXHRcdFx0fSxcblx0XHRcdFwiYXAtbm9ydGhlYXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBc2lhIFBhY2lmaWMgKFRva3lvKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJhcC1ub3J0aGVhc3QtMlwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFzaWEgUGFjaWZpYyAoU2VvdWwpXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLW5vcnRoZWFzdC0zXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChPc2FrYSlcIlxuXHRcdFx0fSxcblx0XHRcdFwiYXAtc291dGgtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFzaWEgUGFjaWZpYyAoTXVtYmFpKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJhcC1zb3V0aC0yXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChIeWRlcmFiYWQpXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLXNvdXRoZWFzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChTaW5nYXBvcmUpXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLXNvdXRoZWFzdC0yXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChTeWRuZXkpXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLXNvdXRoZWFzdC0zXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChKYWthcnRhKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJhcC1zb3V0aGVhc3QtNFwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFzaWEgUGFjaWZpYyAoTWVsYm91cm5lKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJhcC1zb3V0aGVhc3QtNVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFzaWEgUGFjaWZpYyAoTWFsYXlzaWEpXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLXNvdXRoZWFzdC02XCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChOZXcgWmVhbGFuZClcIlxuXHRcdFx0fSxcblx0XHRcdFwiYXAtc291dGhlYXN0LTdcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBc2lhIFBhY2lmaWMgKFRoYWlsYW5kKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJhd3MtZ2xvYmFsXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiYXdzIGdsb2JhbCByZWdpb25cIlxuXHRcdFx0fSxcblx0XHRcdFwiY2EtY2VudHJhbC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQ2FuYWRhIChDZW50cmFsKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJjYS13ZXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJDYW5hZGEgV2VzdCAoQ2FsZ2FyeSlcIlxuXHRcdFx0fSxcblx0XHRcdFwiZXUtY2VudHJhbC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiRXVyb3BlIChGcmFua2Z1cnQpXCJcblx0XHRcdH0sXG5cdFx0XHRcImV1LWNlbnRyYWwtMlwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkV1cm9wZSAoWnVyaWNoKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJldS1ub3J0aC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiRXVyb3BlIChTdG9ja2hvbG0pXCJcblx0XHRcdH0sXG5cdFx0XHRcImV1LXNvdXRoLTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJFdXJvcGUgKE1pbGFuKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJldS1zb3V0aC0yXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiRXVyb3BlIChTcGFpbilcIlxuXHRcdFx0fSxcblx0XHRcdFwiZXUtd2VzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiRXVyb3BlIChJcmVsYW5kKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJldS13ZXN0LTJcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJFdXJvcGUgKExvbmRvbilcIlxuXHRcdFx0fSxcblx0XHRcdFwiZXUtd2VzdC0zXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiRXVyb3BlIChQYXJpcylcIlxuXHRcdFx0fSxcblx0XHRcdFwiaWwtY2VudHJhbC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiSXNyYWVsIChUZWwgQXZpdilcIlxuXHRcdFx0fSxcblx0XHRcdFwibWUtY2VudHJhbC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiTWlkZGxlIEVhc3QgKFVBRSlcIlxuXHRcdFx0fSxcblx0XHRcdFwibWUtc291dGgtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIk1pZGRsZSBFYXN0IChCYWhyYWluKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJteC1jZW50cmFsLTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJNZXhpY28gKENlbnRyYWwpXCJcblx0XHRcdH0sXG5cdFx0XHRcInNhLWVhc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIlNvdXRoIEFtZXJpY2EgKFNhbyBQYXVsbylcIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtZWFzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiVVMgRWFzdCAoTi4gVmlyZ2luaWEpXCJcblx0XHRcdH0sXG5cdFx0XHRcInVzLWVhc3QtMlwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIlVTIEVhc3QgKE9oaW8pXCJcblx0XHRcdH0sXG5cdFx0XHRcInVzLXdlc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIlVTIFdlc3QgKE4uIENhbGlmb3JuaWEpXCJcblx0XHRcdH0sXG5cdFx0XHRcInVzLXdlc3QtMlwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIlVTIFdlc3QgKE9yZWdvbilcIlxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0e1xuXHRcdGlkOiBcImF3cy1jblwiLFxuXHRcdG91dHB1dHM6IHtcblx0XHRcdGRuc1N1ZmZpeDogXCJhbWF6b25hd3MuY29tLmNuXCIsXG5cdFx0XHRkdWFsU3RhY2tEbnNTdWZmaXg6IFwiYXBpLmFtYXpvbndlYnNlcnZpY2VzLmNvbS5jblwiLFxuXHRcdFx0aW1wbGljaXRHbG9iYWxSZWdpb246IFwiY24tbm9ydGh3ZXN0LTFcIixcblx0XHRcdG5hbWU6IFwiYXdzLWNuXCIsXG5cdFx0XHRzdXBwb3J0c0R1YWxTdGFjazogdHJ1ZSxcblx0XHRcdHN1cHBvcnRzRklQUzogdHJ1ZVxuXHRcdH0sXG5cdFx0cmVnaW9uUmVnZXg6IFwiXmNuXFxcXC1cXFxcdytcXFxcLVxcXFxkKyRcIixcblx0XHRyZWdpb25zOiB7XG5cdFx0XHRcImF3cy1jbi1nbG9iYWxcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJhd3MtY24gZ2xvYmFsIHJlZ2lvblwiXG5cdFx0XHR9LFxuXHRcdFx0XCJjbi1ub3J0aC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQ2hpbmEgKEJlaWppbmcpXCJcblx0XHRcdH0sXG5cdFx0XHRcImNuLW5vcnRod2VzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQ2hpbmEgKE5pbmd4aWEpXCJcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdHtcblx0XHRpZDogXCJhd3MtZXVzY1wiLFxuXHRcdG91dHB1dHM6IHtcblx0XHRcdGRuc1N1ZmZpeDogXCJhbWF6b25hd3MuZXVcIixcblx0XHRcdGR1YWxTdGFja0Ruc1N1ZmZpeDogXCJhcGkuYW1hem9ud2Vic2VydmljZXMuZXVcIixcblx0XHRcdGltcGxpY2l0R2xvYmFsUmVnaW9uOiBcImV1c2MtZGUtZWFzdC0xXCIsXG5cdFx0XHRuYW1lOiBcImF3cy1ldXNjXCIsXG5cdFx0XHRzdXBwb3J0c0R1YWxTdGFjazogdHJ1ZSxcblx0XHRcdHN1cHBvcnRzRklQUzogdHJ1ZVxuXHRcdH0sXG5cdFx0cmVnaW9uUmVnZXg6IFwiXmV1c2NcXFxcLShkZSlcXFxcLVxcXFx3K1xcXFwtXFxcXGQrJFwiLFxuXHRcdHJlZ2lvbnM6IHtcblx0XHRcdFwiZXVzYy1kZS1lYXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJFVSAoR2VybWFueSlcIlxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0e1xuXHRcdGlkOiBcImF3cy1pc29cIixcblx0XHRvdXRwdXRzOiB7XG5cdFx0XHRkbnNTdWZmaXg6IFwiYzJzLmljLmdvdlwiLFxuXHRcdFx0ZHVhbFN0YWNrRG5zU3VmZml4OiBcImFwaS5hd3MuaWMuZ292XCIsXG5cdFx0XHRpbXBsaWNpdEdsb2JhbFJlZ2lvbjogXCJ1cy1pc28tZWFzdC0xXCIsXG5cdFx0XHRuYW1lOiBcImF3cy1pc29cIixcblx0XHRcdHN1cHBvcnRzRHVhbFN0YWNrOiB0cnVlLFxuXHRcdFx0c3VwcG9ydHNGSVBTOiB0cnVlXG5cdFx0fSxcblx0XHRyZWdpb25SZWdleDogXCJedXNcXFxcLWlzb1xcXFwtXFxcXHcrXFxcXC1cXFxcZCskXCIsXG5cdFx0cmVnaW9uczoge1xuXHRcdFx0XCJhd3MtaXNvLWdsb2JhbFwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcImF3cy1pc28gZ2xvYmFsIHJlZ2lvblwiXG5cdFx0XHR9LFxuXHRcdFx0XCJ1cy1pc28tZWFzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiVVMgSVNPIEVhc3RcIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtaXNvLXdlc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIlVTIElTTyBXRVNUXCJcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdHtcblx0XHRpZDogXCJhd3MtaXNvLWJcIixcblx0XHRvdXRwdXRzOiB7XG5cdFx0XHRkbnNTdWZmaXg6IFwic2Mycy5zZ292LmdvdlwiLFxuXHRcdFx0ZHVhbFN0YWNrRG5zU3VmZml4OiBcImFwaS5hd3Muc2Nsb3VkXCIsXG5cdFx0XHRpbXBsaWNpdEdsb2JhbFJlZ2lvbjogXCJ1cy1pc29iLWVhc3QtMVwiLFxuXHRcdFx0bmFtZTogXCJhd3MtaXNvLWJcIixcblx0XHRcdHN1cHBvcnRzRHVhbFN0YWNrOiB0cnVlLFxuXHRcdFx0c3VwcG9ydHNGSVBTOiB0cnVlXG5cdFx0fSxcblx0XHRyZWdpb25SZWdleDogXCJedXNcXFxcLWlzb2JcXFxcLVxcXFx3K1xcXFwtXFxcXGQrJFwiLFxuXHRcdHJlZ2lvbnM6IHtcblx0XHRcdFwiYXdzLWlzby1iLWdsb2JhbFwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcImF3cy1pc28tYiBnbG9iYWwgcmVnaW9uXCJcblx0XHRcdH0sXG5cdFx0XHRcInVzLWlzb2ItZWFzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiVVMgSVNPQiBFYXN0IChPaGlvKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJ1cy1pc29iLXdlc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIlVTIElTT0IgV2VzdFwiXG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXHR7XG5cdFx0aWQ6IFwiYXdzLWlzby1lXCIsXG5cdFx0b3V0cHV0czoge1xuXHRcdFx0ZG5zU3VmZml4OiBcImNsb3VkLmFkYy1lLnVrXCIsXG5cdFx0XHRkdWFsU3RhY2tEbnNTdWZmaXg6IFwiYXBpLmNsb3VkLWF3cy5hZGMtZS51a1wiLFxuXHRcdFx0aW1wbGljaXRHbG9iYWxSZWdpb246IFwiZXUtaXNvZS13ZXN0LTFcIixcblx0XHRcdG5hbWU6IFwiYXdzLWlzby1lXCIsXG5cdFx0XHRzdXBwb3J0c0R1YWxTdGFjazogdHJ1ZSxcblx0XHRcdHN1cHBvcnRzRklQUzogdHJ1ZVxuXHRcdH0sXG5cdFx0cmVnaW9uUmVnZXg6IFwiXmV1XFxcXC1pc29lXFxcXC1cXFxcdytcXFxcLVxcXFxkKyRcIixcblx0XHRyZWdpb25zOiB7XG5cdFx0XHRcImF3cy1pc28tZS1nbG9iYWxcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJhd3MtaXNvLWUgZ2xvYmFsIHJlZ2lvblwiXG5cdFx0XHR9LFxuXHRcdFx0XCJldS1pc29lLXdlc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkVVIElTT0UgV2VzdFwiXG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXHR7XG5cdFx0aWQ6IFwiYXdzLWlzby1mXCIsXG5cdFx0b3V0cHV0czoge1xuXHRcdFx0ZG5zU3VmZml4OiBcImNzcC5oY2kuaWMuZ292XCIsXG5cdFx0XHRkdWFsU3RhY2tEbnNTdWZmaXg6IFwiYXBpLmF3cy5oY2kuaWMuZ292XCIsXG5cdFx0XHRpbXBsaWNpdEdsb2JhbFJlZ2lvbjogXCJ1cy1pc29mLXNvdXRoLTFcIixcblx0XHRcdG5hbWU6IFwiYXdzLWlzby1mXCIsXG5cdFx0XHRzdXBwb3J0c0R1YWxTdGFjazogdHJ1ZSxcblx0XHRcdHN1cHBvcnRzRklQUzogdHJ1ZVxuXHRcdH0sXG5cdFx0cmVnaW9uUmVnZXg6IFwiXnVzXFxcXC1pc29mXFxcXC1cXFxcdytcXFxcLVxcXFxkKyRcIixcblx0XHRyZWdpb25zOiB7XG5cdFx0XHRcImF3cy1pc28tZi1nbG9iYWxcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJhd3MtaXNvLWYgZ2xvYmFsIHJlZ2lvblwiXG5cdFx0XHR9LFxuXHRcdFx0XCJ1cy1pc29mLWVhc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIlVTIElTT0YgRUFTVFwiXG5cdFx0XHR9LFxuXHRcdFx0XCJ1cy1pc29mLXNvdXRoLTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJVUyBJU09GIFNPVVRIXCJcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdHtcblx0XHRpZDogXCJhd3MtdXMtZ292XCIsXG5cdFx0b3V0cHV0czoge1xuXHRcdFx0ZG5zU3VmZml4OiBcImFtYXpvbmF3cy5jb21cIixcblx0XHRcdGR1YWxTdGFja0Ruc1N1ZmZpeDogXCJhcGkuYXdzXCIsXG5cdFx0XHRpbXBsaWNpdEdsb2JhbFJlZ2lvbjogXCJ1cy1nb3Ytd2VzdC0xXCIsXG5cdFx0XHRuYW1lOiBcImF3cy11cy1nb3ZcIixcblx0XHRcdHN1cHBvcnRzRHVhbFN0YWNrOiB0cnVlLFxuXHRcdFx0c3VwcG9ydHNGSVBTOiB0cnVlXG5cdFx0fSxcblx0XHRyZWdpb25SZWdleDogXCJedXNcXFxcLWdvdlxcXFwtXFxcXHcrXFxcXC1cXFxcZCskXCIsXG5cdFx0cmVnaW9uczoge1xuXHRcdFx0XCJhd3MtdXMtZ292LWdsb2JhbFwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcImF3cy11cy1nb3YgZ2xvYmFsIHJlZ2lvblwiXG5cdFx0XHR9LFxuXHRcdFx0XCJ1cy1nb3YtZWFzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQVdTIEdvdkNsb3VkIChVUy1FYXN0KVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJ1cy1nb3Ytd2VzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQVdTIEdvdkNsb3VkIChVUy1XZXN0KVwiXG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5dO1xudmFyIHZlcnNpb24gPSBcIjEuMVwiO1xudmFyIHBhcnRpdGlvbnNJbmZvID0ge1xuXHRwYXJ0aXRpb25zOiBwYXJ0aXRpb25zLFxuXHR2ZXJzaW9uOiB2ZXJzaW9uXG59O1xuXG5sZXQgc2VsZWN0ZWRQYXJ0aXRpb25zSW5mbyA9IHBhcnRpdGlvbnNJbmZvO1xubGV0IHNlbGVjdGVkVXNlckFnZW50UHJlZml4ID0gXCJcIjtcbmNvbnN0IHBhcnRpdGlvbiA9ICh2YWx1ZSkgPT4ge1xuICAgIGNvbnN0IHsgcGFydGl0aW9ucyB9ID0gc2VsZWN0ZWRQYXJ0aXRpb25zSW5mbztcbiAgICBmb3IgKGNvbnN0IHBhcnRpdGlvbiBvZiBwYXJ0aXRpb25zKSB7XG4gICAgICAgIGNvbnN0IHsgcmVnaW9ucywgb3V0cHV0cyB9ID0gcGFydGl0aW9uO1xuICAgICAgICBmb3IgKGNvbnN0IFtyZWdpb24sIHJlZ2lvbkRhdGFdIG9mIE9iamVjdC5lbnRyaWVzKHJlZ2lvbnMpKSB7XG4gICAgICAgICAgICBpZiAocmVnaW9uID09PSB2YWx1ZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIC4uLm91dHB1dHMsXG4gICAgICAgICAgICAgICAgICAgIC4uLnJlZ2lvbkRhdGEsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBmb3IgKGNvbnN0IHBhcnRpdGlvbiBvZiBwYXJ0aXRpb25zKSB7XG4gICAgICAgIGNvbnN0IHsgcmVnaW9uUmVnZXgsIG91dHB1dHMgfSA9IHBhcnRpdGlvbjtcbiAgICAgICAgaWYgKG5ldyBSZWdFeHAocmVnaW9uUmVnZXgpLnRlc3QodmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIC4uLm91dHB1dHMsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfVxuICAgIGNvbnN0IERFRkFVTFRfUEFSVElUSU9OID0gcGFydGl0aW9ucy5maW5kKChwYXJ0aXRpb24pID0+IHBhcnRpdGlvbi5pZCA9PT0gXCJhd3NcIik7XG4gICAgaWYgKCFERUZBVUxUX1BBUlRJVElPTikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJQcm92aWRlZCByZWdpb24gd2FzIG5vdCBmb3VuZCBpbiB0aGUgcGFydGl0aW9uIGFycmF5IG9yIHJlZ2V4LFwiICtcbiAgICAgICAgICAgIFwiIGFuZCBkZWZhdWx0IHBhcnRpdGlvbiB3aXRoIGlkICdhd3MnIGRvZXNuJ3QgZXhpc3QuXCIpO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICAuLi5ERUZBVUxUX1BBUlRJVElPTi5vdXRwdXRzLFxuICAgIH07XG59O1xuY29uc3Qgc2V0UGFydGl0aW9uSW5mbyA9IChwYXJ0aXRpb25zSW5mbywgdXNlckFnZW50UHJlZml4ID0gXCJcIikgPT4ge1xuICAgIHNlbGVjdGVkUGFydGl0aW9uc0luZm8gPSBwYXJ0aXRpb25zSW5mbztcbiAgICBzZWxlY3RlZFVzZXJBZ2VudFByZWZpeCA9IHVzZXJBZ2VudFByZWZpeDtcbn07XG5jb25zdCB1c2VEZWZhdWx0UGFydGl0aW9uSW5mbyA9ICgpID0+IHtcbiAgICBzZXRQYXJ0aXRpb25JbmZvKHBhcnRpdGlvbnNJbmZvLCBcIlwiKTtcbn07XG5jb25zdCBnZXRVc2VyQWdlbnRQcmVmaXggPSAoKSA9PiBzZWxlY3RlZFVzZXJBZ2VudFByZWZpeDtcblxuY29uc3QgYXdzRW5kcG9pbnRGdW5jdGlvbnMgPSB7XG4gICAgaXNWaXJ0dWFsSG9zdGFibGVTM0J1Y2tldDogaXNWaXJ0dWFsSG9zdGFibGVTM0J1Y2tldCxcbiAgICBwYXJzZUFybjogcGFyc2VBcm4sXG4gICAgcGFydGl0aW9uOiBwYXJ0aXRpb24sXG59O1xudXRpbEVuZHBvaW50cy5jdXN0b21FbmRwb2ludEZ1bmN0aW9ucy5hd3MgPSBhd3NFbmRwb2ludEZ1bmN0aW9ucztcblxuY29uc3QgcmVzb2x2ZURlZmF1bHRBd3NSZWdpb25hbEVuZHBvaW50c0NvbmZpZyA9IChpbnB1dCkgPT4ge1xuICAgIGlmICh0eXBlb2YgaW5wdXQuZW5kcG9pbnRQcm92aWRlciAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkBhd3Mtc2RrL3V0aWwtZW5kcG9pbnQgLSBlbmRwb2ludFByb3ZpZGVyIGFuZCBlbmRwb2ludCBtaXNzaW5nIGluIGNvbmZpZyBmb3IgdGhpcyBjbGllbnQuXCIpO1xuICAgIH1cbiAgICBjb25zdCB7IGVuZHBvaW50IH0gPSBpbnB1dDtcbiAgICBpZiAoZW5kcG9pbnQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBpbnB1dC5lbmRwb2ludCA9IGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB0b0VuZHBvaW50VjEoaW5wdXQuZW5kcG9pbnRQcm92aWRlcih7XG4gICAgICAgICAgICAgICAgUmVnaW9uOiB0eXBlb2YgaW5wdXQucmVnaW9uID09PSBcImZ1bmN0aW9uXCIgPyBhd2FpdCBpbnB1dC5yZWdpb24oKSA6IGlucHV0LnJlZ2lvbixcbiAgICAgICAgICAgICAgICBVc2VEdWFsU3RhY2s6IHR5cGVvZiBpbnB1dC51c2VEdWFsc3RhY2tFbmRwb2ludCA9PT0gXCJmdW5jdGlvblwiXG4gICAgICAgICAgICAgICAgICAgID8gYXdhaXQgaW5wdXQudXNlRHVhbHN0YWNrRW5kcG9pbnQoKVxuICAgICAgICAgICAgICAgICAgICA6IGlucHV0LnVzZUR1YWxzdGFja0VuZHBvaW50LFxuICAgICAgICAgICAgICAgIFVzZUZJUFM6IHR5cGVvZiBpbnB1dC51c2VGaXBzRW5kcG9pbnQgPT09IFwiZnVuY3Rpb25cIiA/IGF3YWl0IGlucHV0LnVzZUZpcHNFbmRwb2ludCgpIDogaW5wdXQudXNlRmlwc0VuZHBvaW50LFxuICAgICAgICAgICAgICAgIEVuZHBvaW50OiB1bmRlZmluZWQsXG4gICAgICAgICAgICB9LCB7IGxvZ2dlcjogaW5wdXQubG9nZ2VyIH0pKTtcbiAgICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIGlucHV0O1xufTtcbmNvbnN0IHRvRW5kcG9pbnRWMSA9IChlbmRwb2ludCkgPT4gdXJsUGFyc2VyLnBhcnNlVXJsKGVuZHBvaW50LnVybCk7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIkVuZHBvaW50RXJyb3JcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiB1dGlsRW5kcG9pbnRzLkVuZHBvaW50RXJyb3I7IH1cbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiaXNJcEFkZHJlc3NcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiB1dGlsRW5kcG9pbnRzLmlzSXBBZGRyZXNzOyB9XG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcInJlc29sdmVFbmRwb2ludFwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHV0aWxFbmRwb2ludHMucmVzb2x2ZUVuZHBvaW50OyB9XG59KTtcbmV4cG9ydHMuYXdzRW5kcG9pbnRGdW5jdGlvbnMgPSBhd3NFbmRwb2ludEZ1bmN0aW9ucztcbmV4cG9ydHMuZ2V0VXNlckFnZW50UHJlZml4ID0gZ2V0VXNlckFnZW50UHJlZml4O1xuZXhwb3J0cy5wYXJ0aXRpb24gPSBwYXJ0aXRpb247XG5leHBvcnRzLnJlc29sdmVEZWZhdWx0QXdzUmVnaW9uYWxFbmRwb2ludHNDb25maWcgPSByZXNvbHZlRGVmYXVsdEF3c1JlZ2lvbmFsRW5kcG9pbnRzQ29uZmlnO1xuZXhwb3J0cy5zZXRQYXJ0aXRpb25JbmZvID0gc2V0UGFydGl0aW9uSW5mbztcbmV4cG9ydHMudG9FbmRwb2ludFYxID0gdG9FbmRwb2ludFYxO1xuZXhwb3J0cy51c2VEZWZhdWx0UGFydGl0aW9uSW5mbyA9IHVzZURlZmF1bHRQYXJ0aXRpb25JbmZvO1xuIiwgImV4cG9ydCBjb25zdCBzdGF0ZSA9IHtcbiAgICB3YXJuaW5nRW1pdHRlZDogZmFsc2UsXG59O1xuZXhwb3J0IGNvbnN0IGVtaXRXYXJuaW5nSWZVbnN1cHBvcnRlZFZlcnNpb24gPSAodmVyc2lvbikgPT4ge1xuICAgIGlmICh2ZXJzaW9uICYmICFzdGF0ZS53YXJuaW5nRW1pdHRlZCAmJiBwYXJzZUludCh2ZXJzaW9uLnN1YnN0cmluZygxLCB2ZXJzaW9uLmluZGV4T2YoXCIuXCIpKSkgPCAyMCkge1xuICAgICAgICBzdGF0ZS53YXJuaW5nRW1pdHRlZCA9IHRydWU7XG4gICAgICAgIHByb2Nlc3MuZW1pdFdhcm5pbmcoYE5vZGVEZXByZWNhdGlvbldhcm5pbmc6IFRoZSBBV1MgU0RLIGZvciBKYXZhU2NyaXB0ICh2Mykgd2lsbFxubm8gbG9uZ2VyIHN1cHBvcnQgTm9kZS5qcyAke3ZlcnNpb259IGluIEphbnVhcnkgMjAyNi5cblxuVG8gY29udGludWUgcmVjZWl2aW5nIHVwZGF0ZXMgdG8gQVdTIHNlcnZpY2VzLCBidWcgZml4ZXMsIGFuZCBzZWN1cml0eVxudXBkYXRlcyBwbGVhc2UgdXBncmFkZSB0byBhIHN1cHBvcnRlZCBOb2RlLmpzIExUUyB2ZXJzaW9uLlxuXG5Nb3JlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBhdDogaHR0cHM6Ly9hLmNvL2M4OTVKRnBgKTtcbiAgICB9XG59O1xuIiwgImV4cG9ydCBmdW5jdGlvbiBzZXRDcmVkZW50aWFsRmVhdHVyZShjcmVkZW50aWFscywgZmVhdHVyZSwgdmFsdWUpIHtcbiAgICBpZiAoIWNyZWRlbnRpYWxzLiRzb3VyY2UpIHtcbiAgICAgICAgY3JlZGVudGlhbHMuJHNvdXJjZSA9IHt9O1xuICAgIH1cbiAgICBjcmVkZW50aWFscy4kc291cmNlW2ZlYXR1cmVdID0gdmFsdWU7XG4gICAgcmV0dXJuIGNyZWRlbnRpYWxzO1xufVxuIiwgImV4cG9ydCBmdW5jdGlvbiBzZXRGZWF0dXJlKGNvbnRleHQsIGZlYXR1cmUsIHZhbHVlKSB7XG4gICAgaWYgKCFjb250ZXh0Ll9fYXdzX3Nka19jb250ZXh0KSB7XG4gICAgICAgIGNvbnRleHQuX19hd3Nfc2RrX2NvbnRleHQgPSB7XG4gICAgICAgICAgICBmZWF0dXJlczoge30sXG4gICAgICAgIH07XG4gICAgfVxuICAgIGVsc2UgaWYgKCFjb250ZXh0Ll9fYXdzX3Nka19jb250ZXh0LmZlYXR1cmVzKSB7XG4gICAgICAgIGNvbnRleHQuX19hd3Nfc2RrX2NvbnRleHQuZmVhdHVyZXMgPSB7fTtcbiAgICB9XG4gICAgY29udGV4dC5fX2F3c19zZGtfY29udGV4dC5mZWF0dXJlc1tmZWF0dXJlXSA9IHZhbHVlO1xufVxuIiwgImV4cG9ydCBmdW5jdGlvbiBzZXRUb2tlbkZlYXR1cmUodG9rZW4sIGZlYXR1cmUsIHZhbHVlKSB7XG4gICAgaWYgKCF0b2tlbi4kc291cmNlKSB7XG4gICAgICAgIHRva2VuLiRzb3VyY2UgPSB7fTtcbiAgICB9XG4gICAgdG9rZW4uJHNvdXJjZVtmZWF0dXJlXSA9IHZhbHVlO1xuICAgIHJldHVybiB0b2tlbjtcbn1cbiIsICJleHBvcnQgKiBmcm9tIFwiLi9lbWl0V2FybmluZ0lmVW5zdXBwb3J0ZWRWZXJzaW9uXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zZXRDcmVkZW50aWFsRmVhdHVyZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc2V0RmVhdHVyZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc2V0VG9rZW5GZWF0dXJlXCI7XG4iLCAiaW1wb3J0IHsgSHR0cFJlc3BvbnNlIH0gZnJvbSBcIkBzbWl0aHkvcHJvdG9jb2wtaHR0cFwiO1xuZXhwb3J0IGNvbnN0IGdldERhdGVIZWFkZXIgPSAocmVzcG9uc2UpID0+IEh0dHBSZXNwb25zZS5pc0luc3RhbmNlKHJlc3BvbnNlKSA/IHJlc3BvbnNlLmhlYWRlcnM/LmRhdGUgPz8gcmVzcG9uc2UuaGVhZGVycz8uRGF0ZSA6IHVuZGVmaW5lZDtcbiIsICJleHBvcnQgY29uc3QgZ2V0U2tld0NvcnJlY3RlZERhdGUgPSAoc3lzdGVtQ2xvY2tPZmZzZXQpID0+IG5ldyBEYXRlKERhdGUubm93KCkgKyBzeXN0ZW1DbG9ja09mZnNldCk7XG4iLCAiaW1wb3J0IHsgZ2V0U2tld0NvcnJlY3RlZERhdGUgfSBmcm9tIFwiLi9nZXRTa2V3Q29ycmVjdGVkRGF0ZVwiO1xuZXhwb3J0IGNvbnN0IGlzQ2xvY2tTa2V3ZWQgPSAoY2xvY2tUaW1lLCBzeXN0ZW1DbG9ja09mZnNldCkgPT4gTWF0aC5hYnMoZ2V0U2tld0NvcnJlY3RlZERhdGUoc3lzdGVtQ2xvY2tPZmZzZXQpLmdldFRpbWUoKSAtIGNsb2NrVGltZSkgPj0gMzAwMDAwO1xuIiwgImltcG9ydCB7IGlzQ2xvY2tTa2V3ZWQgfSBmcm9tIFwiLi9pc0Nsb2NrU2tld2VkXCI7XG5leHBvcnQgY29uc3QgZ2V0VXBkYXRlZFN5c3RlbUNsb2NrT2Zmc2V0ID0gKGNsb2NrVGltZSwgY3VycmVudFN5c3RlbUNsb2NrT2Zmc2V0KSA9PiB7XG4gICAgY29uc3QgY2xvY2tUaW1lSW5NcyA9IERhdGUucGFyc2UoY2xvY2tUaW1lKTtcbiAgICBpZiAoaXNDbG9ja1NrZXdlZChjbG9ja1RpbWVJbk1zLCBjdXJyZW50U3lzdGVtQ2xvY2tPZmZzZXQpKSB7XG4gICAgICAgIHJldHVybiBjbG9ja1RpbWVJbk1zIC0gRGF0ZS5ub3coKTtcbiAgICB9XG4gICAgcmV0dXJuIGN1cnJlbnRTeXN0ZW1DbG9ja09mZnNldDtcbn07XG4iLCAiZXhwb3J0ICogZnJvbSBcIi4vZ2V0RGF0ZUhlYWRlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZ2V0U2tld0NvcnJlY3RlZERhdGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2dldFVwZGF0ZWRTeXN0ZW1DbG9ja09mZnNldFwiO1xuIiwgImltcG9ydCB7IEh0dHBSZXF1ZXN0IH0gZnJvbSBcIkBzbWl0aHkvcHJvdG9jb2wtaHR0cFwiO1xuaW1wb3J0IHsgZ2V0RGF0ZUhlYWRlciwgZ2V0U2tld0NvcnJlY3RlZERhdGUsIGdldFVwZGF0ZWRTeXN0ZW1DbG9ja09mZnNldCB9IGZyb20gXCIuLi91dGlsc1wiO1xuY29uc3QgdGhyb3dTaWduaW5nUHJvcGVydHlFcnJvciA9IChuYW1lLCBwcm9wZXJ0eSkgPT4ge1xuICAgIGlmICghcHJvcGVydHkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBQcm9wZXJ0eSBcXGAke25hbWV9XFxgIGlzIG5vdCByZXNvbHZlZCBmb3IgQVdTIFNESyBTaWdWNEF1dGhgKTtcbiAgICB9XG4gICAgcmV0dXJuIHByb3BlcnR5O1xufTtcbmV4cG9ydCBjb25zdCB2YWxpZGF0ZVNpZ25pbmdQcm9wZXJ0aWVzID0gYXN5bmMgKHNpZ25pbmdQcm9wZXJ0aWVzKSA9PiB7XG4gICAgY29uc3QgY29udGV4dCA9IHRocm93U2lnbmluZ1Byb3BlcnR5RXJyb3IoXCJjb250ZXh0XCIsIHNpZ25pbmdQcm9wZXJ0aWVzLmNvbnRleHQpO1xuICAgIGNvbnN0IGNvbmZpZyA9IHRocm93U2lnbmluZ1Byb3BlcnR5RXJyb3IoXCJjb25maWdcIiwgc2lnbmluZ1Byb3BlcnRpZXMuY29uZmlnKTtcbiAgICBjb25zdCBhdXRoU2NoZW1lID0gY29udGV4dC5lbmRwb2ludFYyPy5wcm9wZXJ0aWVzPy5hdXRoU2NoZW1lcz8uWzBdO1xuICAgIGNvbnN0IHNpZ25lckZ1bmN0aW9uID0gdGhyb3dTaWduaW5nUHJvcGVydHlFcnJvcihcInNpZ25lclwiLCBjb25maWcuc2lnbmVyKTtcbiAgICBjb25zdCBzaWduZXIgPSBhd2FpdCBzaWduZXJGdW5jdGlvbihhdXRoU2NoZW1lKTtcbiAgICBjb25zdCBzaWduaW5nUmVnaW9uID0gc2lnbmluZ1Byb3BlcnRpZXM/LnNpZ25pbmdSZWdpb247XG4gICAgY29uc3Qgc2lnbmluZ1JlZ2lvblNldCA9IHNpZ25pbmdQcm9wZXJ0aWVzPy5zaWduaW5nUmVnaW9uU2V0O1xuICAgIGNvbnN0IHNpZ25pbmdOYW1lID0gc2lnbmluZ1Byb3BlcnRpZXM/LnNpZ25pbmdOYW1lO1xuICAgIHJldHVybiB7XG4gICAgICAgIGNvbmZpZyxcbiAgICAgICAgc2lnbmVyLFxuICAgICAgICBzaWduaW5nUmVnaW9uLFxuICAgICAgICBzaWduaW5nUmVnaW9uU2V0LFxuICAgICAgICBzaWduaW5nTmFtZSxcbiAgICB9O1xufTtcbmV4cG9ydCBjbGFzcyBBd3NTZGtTaWdWNFNpZ25lciB7XG4gICAgYXN5bmMgc2lnbihodHRwUmVxdWVzdCwgaWRlbnRpdHksIHNpZ25pbmdQcm9wZXJ0aWVzKSB7XG4gICAgICAgIGlmICghSHR0cFJlcXVlc3QuaXNJbnN0YW5jZShodHRwUmVxdWVzdCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlRoZSByZXF1ZXN0IGlzIG5vdCBhbiBpbnN0YW5jZSBvZiBgSHR0cFJlcXVlc3RgIGFuZCBjYW5ub3QgYmUgc2lnbmVkXCIpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHZhbGlkYXRlZFByb3BzID0gYXdhaXQgdmFsaWRhdGVTaWduaW5nUHJvcGVydGllcyhzaWduaW5nUHJvcGVydGllcyk7XG4gICAgICAgIGNvbnN0IHsgY29uZmlnLCBzaWduZXIgfSA9IHZhbGlkYXRlZFByb3BzO1xuICAgICAgICBsZXQgeyBzaWduaW5nUmVnaW9uLCBzaWduaW5nTmFtZSB9ID0gdmFsaWRhdGVkUHJvcHM7XG4gICAgICAgIGNvbnN0IGhhbmRsZXJFeGVjdXRpb25Db250ZXh0ID0gc2lnbmluZ1Byb3BlcnRpZXMuY29udGV4dDtcbiAgICAgICAgaWYgKGhhbmRsZXJFeGVjdXRpb25Db250ZXh0Py5hdXRoU2NoZW1lcz8ubGVuZ3RoID8/IDAgPiAxKSB7XG4gICAgICAgICAgICBjb25zdCBbZmlyc3QsIHNlY29uZF0gPSBoYW5kbGVyRXhlY3V0aW9uQ29udGV4dC5hdXRoU2NoZW1lcztcbiAgICAgICAgICAgIGlmIChmaXJzdD8ubmFtZSA9PT0gXCJzaWd2NGFcIiAmJiBzZWNvbmQ/Lm5hbWUgPT09IFwic2lndjRcIikge1xuICAgICAgICAgICAgICAgIHNpZ25pbmdSZWdpb24gPSBzZWNvbmQ/LnNpZ25pbmdSZWdpb24gPz8gc2lnbmluZ1JlZ2lvbjtcbiAgICAgICAgICAgICAgICBzaWduaW5nTmFtZSA9IHNlY29uZD8uc2lnbmluZ05hbWUgPz8gc2lnbmluZ05hbWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc2lnbmVkUmVxdWVzdCA9IGF3YWl0IHNpZ25lci5zaWduKGh0dHBSZXF1ZXN0LCB7XG4gICAgICAgICAgICBzaWduaW5nRGF0ZTogZ2V0U2tld0NvcnJlY3RlZERhdGUoY29uZmlnLnN5c3RlbUNsb2NrT2Zmc2V0KSxcbiAgICAgICAgICAgIHNpZ25pbmdSZWdpb246IHNpZ25pbmdSZWdpb24sXG4gICAgICAgICAgICBzaWduaW5nU2VydmljZTogc2lnbmluZ05hbWUsXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gc2lnbmVkUmVxdWVzdDtcbiAgICB9XG4gICAgZXJyb3JIYW5kbGVyKHNpZ25pbmdQcm9wZXJ0aWVzKSB7XG4gICAgICAgIHJldHVybiAoZXJyb3IpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNlcnZlclRpbWUgPSBlcnJvci5TZXJ2ZXJUaW1lID8/IGdldERhdGVIZWFkZXIoZXJyb3IuJHJlc3BvbnNlKTtcbiAgICAgICAgICAgIGlmIChzZXJ2ZXJUaW1lKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gdGhyb3dTaWduaW5nUHJvcGVydHlFcnJvcihcImNvbmZpZ1wiLCBzaWduaW5nUHJvcGVydGllcy5jb25maWcpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGluaXRpYWxTeXN0ZW1DbG9ja09mZnNldCA9IGNvbmZpZy5zeXN0ZW1DbG9ja09mZnNldDtcbiAgICAgICAgICAgICAgICBjb25maWcuc3lzdGVtQ2xvY2tPZmZzZXQgPSBnZXRVcGRhdGVkU3lzdGVtQ2xvY2tPZmZzZXQoc2VydmVyVGltZSwgY29uZmlnLnN5c3RlbUNsb2NrT2Zmc2V0KTtcbiAgICAgICAgICAgICAgICBjb25zdCBjbG9ja1NrZXdDb3JyZWN0ZWQgPSBjb25maWcuc3lzdGVtQ2xvY2tPZmZzZXQgIT09IGluaXRpYWxTeXN0ZW1DbG9ja09mZnNldDtcbiAgICAgICAgICAgICAgICBpZiAoY2xvY2tTa2V3Q29ycmVjdGVkICYmIGVycm9yLiRtZXRhZGF0YSkge1xuICAgICAgICAgICAgICAgICAgICBlcnJvci4kbWV0YWRhdGEuY2xvY2tTa2V3Q29ycmVjdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfTtcbiAgICB9XG4gICAgc3VjY2Vzc0hhbmRsZXIoaHR0cFJlc3BvbnNlLCBzaWduaW5nUHJvcGVydGllcykge1xuICAgICAgICBjb25zdCBkYXRlSGVhZGVyID0gZ2V0RGF0ZUhlYWRlcihodHRwUmVzcG9uc2UpO1xuICAgICAgICBpZiAoZGF0ZUhlYWRlcikge1xuICAgICAgICAgICAgY29uc3QgY29uZmlnID0gdGhyb3dTaWduaW5nUHJvcGVydHlFcnJvcihcImNvbmZpZ1wiLCBzaWduaW5nUHJvcGVydGllcy5jb25maWcpO1xuICAgICAgICAgICAgY29uZmlnLnN5c3RlbUNsb2NrT2Zmc2V0ID0gZ2V0VXBkYXRlZFN5c3RlbUNsb2NrT2Zmc2V0KGRhdGVIZWFkZXIsIGNvbmZpZy5zeXN0ZW1DbG9ja09mZnNldCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnQgY29uc3QgQVdTU0RLU2lnVjRTaWduZXIgPSBBd3NTZGtTaWdWNFNpZ25lcjtcbiIsICJpbXBvcnQgeyBIdHRwUmVxdWVzdCB9IGZyb20gXCJAc21pdGh5L3Byb3RvY29sLWh0dHBcIjtcbmltcG9ydCB7IGdldFNrZXdDb3JyZWN0ZWREYXRlIH0gZnJvbSBcIi4uL3V0aWxzXCI7XG5pbXBvcnQgeyBBd3NTZGtTaWdWNFNpZ25lciwgdmFsaWRhdGVTaWduaW5nUHJvcGVydGllcyB9IGZyb20gXCIuL0F3c1Nka1NpZ1Y0U2lnbmVyXCI7XG5leHBvcnQgY2xhc3MgQXdzU2RrU2lnVjRBU2lnbmVyIGV4dGVuZHMgQXdzU2RrU2lnVjRTaWduZXIge1xuICAgIGFzeW5jIHNpZ24oaHR0cFJlcXVlc3QsIGlkZW50aXR5LCBzaWduaW5nUHJvcGVydGllcykge1xuICAgICAgICBpZiAoIUh0dHBSZXF1ZXN0LmlzSW5zdGFuY2UoaHR0cFJlcXVlc3QpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJUaGUgcmVxdWVzdCBpcyBub3QgYW4gaW5zdGFuY2Ugb2YgYEh0dHBSZXF1ZXN0YCBhbmQgY2Fubm90IGJlIHNpZ25lZFwiKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB7IGNvbmZpZywgc2lnbmVyLCBzaWduaW5nUmVnaW9uLCBzaWduaW5nUmVnaW9uU2V0LCBzaWduaW5nTmFtZSB9ID0gYXdhaXQgdmFsaWRhdGVTaWduaW5nUHJvcGVydGllcyhzaWduaW5nUHJvcGVydGllcyk7XG4gICAgICAgIGNvbnN0IGNvbmZpZ1Jlc29sdmVkU2lnbmluZ1JlZ2lvblNldCA9IGF3YWl0IGNvbmZpZy5zaWd2NGFTaWduaW5nUmVnaW9uU2V0Py4oKTtcbiAgICAgICAgY29uc3QgbXVsdGlSZWdpb25PdmVycmlkZSA9IChjb25maWdSZXNvbHZlZFNpZ25pbmdSZWdpb25TZXQgPz9cbiAgICAgICAgICAgIHNpZ25pbmdSZWdpb25TZXQgPz8gW3NpZ25pbmdSZWdpb25dKS5qb2luKFwiLFwiKTtcbiAgICAgICAgY29uc3Qgc2lnbmVkUmVxdWVzdCA9IGF3YWl0IHNpZ25lci5zaWduKGh0dHBSZXF1ZXN0LCB7XG4gICAgICAgICAgICBzaWduaW5nRGF0ZTogZ2V0U2tld0NvcnJlY3RlZERhdGUoY29uZmlnLnN5c3RlbUNsb2NrT2Zmc2V0KSxcbiAgICAgICAgICAgIHNpZ25pbmdSZWdpb246IG11bHRpUmVnaW9uT3ZlcnJpZGUsXG4gICAgICAgICAgICBzaWduaW5nU2VydmljZTogc2lnbmluZ05hbWUsXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gc2lnbmVkUmVxdWVzdDtcbiAgICB9XG59XG4iLCAiZXhwb3J0IGNvbnN0IGdldEFycmF5Rm9yQ29tbWFTZXBhcmF0ZWRTdHJpbmcgPSAoc3RyKSA9PiB0eXBlb2Ygc3RyID09PSBcInN0cmluZ1wiICYmIHN0ci5sZW5ndGggPiAwID8gc3RyLnNwbGl0KFwiLFwiKS5tYXAoKGl0ZW0pID0+IGl0ZW0udHJpbSgpKSA6IFtdO1xuIiwgImV4cG9ydCBjb25zdCBnZXRCZWFyZXJUb2tlbkVudktleSA9IChzaWduaW5nTmFtZSkgPT4gYEFXU19CRUFSRVJfVE9LRU5fJHtzaWduaW5nTmFtZS5yZXBsYWNlKC9bXFxzLV0vZywgXCJfXCIpLnRvVXBwZXJDYXNlKCl9YDtcbiIsICJpbXBvcnQgeyBnZXRBcnJheUZvckNvbW1hU2VwYXJhdGVkU3RyaW5nIH0gZnJvbSBcIi4uL3V0aWxzL2dldEFycmF5Rm9yQ29tbWFTZXBhcmF0ZWRTdHJpbmdcIjtcbmltcG9ydCB7IGdldEJlYXJlclRva2VuRW52S2V5IH0gZnJvbSBcIi4uL3V0aWxzL2dldEJlYXJlclRva2VuRW52S2V5XCI7XG5jb25zdCBOT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfRU5WX0tFWSA9IFwiQVdTX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VcIjtcbmNvbnN0IE5PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9DT05GSUdfS0VZID0gXCJhdXRoX3NjaGVtZV9wcmVmZXJlbmNlXCI7XG5leHBvcnQgY29uc3QgTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX09QVElPTlMgPSB7XG4gICAgZW52aXJvbm1lbnRWYXJpYWJsZVNlbGVjdG9yOiAoZW52LCBvcHRpb25zKSA9PiB7XG4gICAgICAgIGlmIChvcHRpb25zPy5zaWduaW5nTmFtZSkge1xuICAgICAgICAgICAgY29uc3QgYmVhcmVyVG9rZW5LZXkgPSBnZXRCZWFyZXJUb2tlbkVudktleShvcHRpb25zLnNpZ25pbmdOYW1lKTtcbiAgICAgICAgICAgIGlmIChiZWFyZXJUb2tlbktleSBpbiBlbnYpXG4gICAgICAgICAgICAgICAgcmV0dXJuIFtcImh0dHBCZWFyZXJBdXRoXCJdO1xuICAgICAgICB9XG4gICAgICAgIGlmICghKE5PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9FTlZfS0VZIGluIGVudikpXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICByZXR1cm4gZ2V0QXJyYXlGb3JDb21tYVNlcGFyYXRlZFN0cmluZyhlbnZbTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX0VOVl9LRVldKTtcbiAgICB9LFxuICAgIGNvbmZpZ0ZpbGVTZWxlY3RvcjogKHByb2ZpbGUpID0+IHtcbiAgICAgICAgaWYgKCEoTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX0NPTkZJR19LRVkgaW4gcHJvZmlsZSkpXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICByZXR1cm4gZ2V0QXJyYXlGb3JDb21tYVNlcGFyYXRlZFN0cmluZyhwcm9maWxlW05PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9DT05GSUdfS0VZXSk7XG4gICAgfSxcbiAgICBkZWZhdWx0OiBbXSxcbn07XG4iLCAiaW1wb3J0IHsgbm9ybWFsaXplUHJvdmlkZXIgfSBmcm9tIFwiQHNtaXRoeS9jb3JlXCI7XG5pbXBvcnQgeyBQcm92aWRlckVycm9yIH0gZnJvbSBcIkBzbWl0aHkvcHJvcGVydHktcHJvdmlkZXJcIjtcbmV4cG9ydCBjb25zdCByZXNvbHZlQXdzU2RrU2lnVjRBQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIGNvbmZpZy5zaWd2NGFTaWduaW5nUmVnaW9uU2V0ID0gbm9ybWFsaXplUHJvdmlkZXIoY29uZmlnLnNpZ3Y0YVNpZ25pbmdSZWdpb25TZXQpO1xuICAgIHJldHVybiBjb25maWc7XG59O1xuZXhwb3J0IGNvbnN0IE5PREVfU0lHVjRBX0NPTkZJR19PUFRJT05TID0ge1xuICAgIGVudmlyb25tZW50VmFyaWFibGVTZWxlY3RvcihlbnYpIHtcbiAgICAgICAgaWYgKGVudi5BV1NfU0lHVjRBX1NJR05JTkdfUkVHSU9OX1NFVCkge1xuICAgICAgICAgICAgcmV0dXJuIGVudi5BV1NfU0lHVjRBX1NJR05JTkdfUkVHSU9OX1NFVC5zcGxpdChcIixcIikubWFwKChfKSA9PiBfLnRyaW0oKSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgbmV3IFByb3ZpZGVyRXJyb3IoXCJBV1NfU0lHVjRBX1NJR05JTkdfUkVHSU9OX1NFVCBub3Qgc2V0IGluIGVudi5cIiwge1xuICAgICAgICAgICAgdHJ5TmV4dExpbms6IHRydWUsXG4gICAgICAgIH0pO1xuICAgIH0sXG4gICAgY29uZmlnRmlsZVNlbGVjdG9yKHByb2ZpbGUpIHtcbiAgICAgICAgaWYgKHByb2ZpbGUuc2lndjRhX3NpZ25pbmdfcmVnaW9uX3NldCkge1xuICAgICAgICAgICAgcmV0dXJuIChwcm9maWxlLnNpZ3Y0YV9zaWduaW5nX3JlZ2lvbl9zZXQgPz8gXCJcIikuc3BsaXQoXCIsXCIpLm1hcCgoXykgPT4gXy50cmltKCkpO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IG5ldyBQcm92aWRlckVycm9yKFwic2lndjRhX3NpZ25pbmdfcmVnaW9uX3NldCBub3Qgc2V0IGluIHByb2ZpbGUuXCIsIHtcbiAgICAgICAgICAgIHRyeU5leHRMaW5rOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICB9LFxuICAgIGRlZmF1bHQ6IHVuZGVmaW5lZCxcbn07XG4iLCAiaW1wb3J0IHsgc2V0Q3JlZGVudGlhbEZlYXR1cmUgfSBmcm9tIFwiQGF3cy1zZGsvY29yZS9jbGllbnRcIjtcbmltcG9ydCB7IGRvZXNJZGVudGl0eVJlcXVpcmVSZWZyZXNoLCBpc0lkZW50aXR5RXhwaXJlZCwgbWVtb2l6ZUlkZW50aXR5UHJvdmlkZXIsIG5vcm1hbGl6ZVByb3ZpZGVyLCB9IGZyb20gXCJAc21pdGh5L2NvcmVcIjtcbmltcG9ydCB7IFNpZ25hdHVyZVY0IH0gZnJvbSBcIkBzbWl0aHkvc2lnbmF0dXJlLXY0XCI7XG5leHBvcnQgY29uc3QgcmVzb2x2ZUF3c1Nka1NpZ1Y0Q29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIGxldCBpbnB1dENyZWRlbnRpYWxzID0gY29uZmlnLmNyZWRlbnRpYWxzO1xuICAgIGxldCBpc1VzZXJTdXBwbGllZCA9ICEhY29uZmlnLmNyZWRlbnRpYWxzO1xuICAgIGxldCByZXNvbHZlZENyZWRlbnRpYWxzID0gdW5kZWZpbmVkO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjb25maWcsIFwiY3JlZGVudGlhbHNcIiwge1xuICAgICAgICBzZXQoY3JlZGVudGlhbHMpIHtcbiAgICAgICAgICAgIGlmIChjcmVkZW50aWFscyAmJiBjcmVkZW50aWFscyAhPT0gaW5wdXRDcmVkZW50aWFscyAmJiBjcmVkZW50aWFscyAhPT0gcmVzb2x2ZWRDcmVkZW50aWFscykge1xuICAgICAgICAgICAgICAgIGlzVXNlclN1cHBsaWVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlucHV0Q3JlZGVudGlhbHMgPSBjcmVkZW50aWFscztcbiAgICAgICAgICAgIGNvbnN0IG1lbW9pemVkUHJvdmlkZXIgPSBub3JtYWxpemVDcmVkZW50aWFsUHJvdmlkZXIoY29uZmlnLCB7XG4gICAgICAgICAgICAgICAgY3JlZGVudGlhbHM6IGlucHV0Q3JlZGVudGlhbHMsXG4gICAgICAgICAgICAgICAgY3JlZGVudGlhbERlZmF1bHRQcm92aWRlcjogY29uZmlnLmNyZWRlbnRpYWxEZWZhdWx0UHJvdmlkZXIsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0IGJvdW5kUHJvdmlkZXIgPSBiaW5kQ2FsbGVyQ29uZmlnKGNvbmZpZywgbWVtb2l6ZWRQcm92aWRlcik7XG4gICAgICAgICAgICBpZiAoaXNVc2VyU3VwcGxpZWQgJiYgIWJvdW5kUHJvdmlkZXIuYXR0cmlidXRlZCkge1xuICAgICAgICAgICAgICAgIHJlc29sdmVkQ3JlZGVudGlhbHMgPSBhc3luYyAob3B0aW9ucykgPT4gYm91bmRQcm92aWRlcihvcHRpb25zKS50aGVuKChjcmVkcykgPT4gc2V0Q3JlZGVudGlhbEZlYXR1cmUoY3JlZHMsIFwiQ1JFREVOVElBTFNfQ09ERVwiLCBcImVcIikpO1xuICAgICAgICAgICAgICAgIHJlc29sdmVkQ3JlZGVudGlhbHMubWVtb2l6ZWQgPSBib3VuZFByb3ZpZGVyLm1lbW9pemVkO1xuICAgICAgICAgICAgICAgIHJlc29sdmVkQ3JlZGVudGlhbHMuY29uZmlnQm91bmQgPSBib3VuZFByb3ZpZGVyLmNvbmZpZ0JvdW5kO1xuICAgICAgICAgICAgICAgIHJlc29sdmVkQ3JlZGVudGlhbHMuYXR0cmlidXRlZCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXNvbHZlZENyZWRlbnRpYWxzID0gYm91bmRQcm92aWRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZ2V0KCkge1xuICAgICAgICAgICAgcmV0dXJuIHJlc29sdmVkQ3JlZGVudGlhbHM7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICB9KTtcbiAgICBjb25maWcuY3JlZGVudGlhbHMgPSBpbnB1dENyZWRlbnRpYWxzO1xuICAgIGNvbnN0IHsgc2lnbmluZ0VzY2FwZVBhdGggPSB0cnVlLCBzeXN0ZW1DbG9ja09mZnNldCA9IGNvbmZpZy5zeXN0ZW1DbG9ja09mZnNldCB8fCAwLCBzaGEyNTYsIH0gPSBjb25maWc7XG4gICAgbGV0IHNpZ25lcjtcbiAgICBpZiAoY29uZmlnLnNpZ25lcikge1xuICAgICAgICBzaWduZXIgPSBub3JtYWxpemVQcm92aWRlcihjb25maWcuc2lnbmVyKTtcbiAgICB9XG4gICAgZWxzZSBpZiAoY29uZmlnLnJlZ2lvbkluZm9Qcm92aWRlcikge1xuICAgICAgICBzaWduZXIgPSAoKSA9PiBub3JtYWxpemVQcm92aWRlcihjb25maWcucmVnaW9uKSgpXG4gICAgICAgICAgICAudGhlbihhc3luYyAocmVnaW9uKSA9PiBbXG4gICAgICAgICAgICAoYXdhaXQgY29uZmlnLnJlZ2lvbkluZm9Qcm92aWRlcihyZWdpb24sIHtcbiAgICAgICAgICAgICAgICB1c2VGaXBzRW5kcG9pbnQ6IGF3YWl0IGNvbmZpZy51c2VGaXBzRW5kcG9pbnQoKSxcbiAgICAgICAgICAgICAgICB1c2VEdWFsc3RhY2tFbmRwb2ludDogYXdhaXQgY29uZmlnLnVzZUR1YWxzdGFja0VuZHBvaW50KCksXG4gICAgICAgICAgICB9KSkgfHwge30sXG4gICAgICAgICAgICByZWdpb24sXG4gICAgICAgIF0pXG4gICAgICAgICAgICAudGhlbigoW3JlZ2lvbkluZm8sIHJlZ2lvbl0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgc2lnbmluZ1JlZ2lvbiwgc2lnbmluZ1NlcnZpY2UgfSA9IHJlZ2lvbkluZm87XG4gICAgICAgICAgICBjb25maWcuc2lnbmluZ1JlZ2lvbiA9IGNvbmZpZy5zaWduaW5nUmVnaW9uIHx8IHNpZ25pbmdSZWdpb24gfHwgcmVnaW9uO1xuICAgICAgICAgICAgY29uZmlnLnNpZ25pbmdOYW1lID0gY29uZmlnLnNpZ25pbmdOYW1lIHx8IHNpZ25pbmdTZXJ2aWNlIHx8IGNvbmZpZy5zZXJ2aWNlSWQ7XG4gICAgICAgICAgICBjb25zdCBwYXJhbXMgPSB7XG4gICAgICAgICAgICAgICAgLi4uY29uZmlnLFxuICAgICAgICAgICAgICAgIGNyZWRlbnRpYWxzOiBjb25maWcuY3JlZGVudGlhbHMsXG4gICAgICAgICAgICAgICAgcmVnaW9uOiBjb25maWcuc2lnbmluZ1JlZ2lvbixcbiAgICAgICAgICAgICAgICBzZXJ2aWNlOiBjb25maWcuc2lnbmluZ05hbWUsXG4gICAgICAgICAgICAgICAgc2hhMjU2LFxuICAgICAgICAgICAgICAgIHVyaUVzY2FwZVBhdGg6IHNpZ25pbmdFc2NhcGVQYXRoLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGNvbnN0IFNpZ25lckN0b3IgPSBjb25maWcuc2lnbmVyQ29uc3RydWN0b3IgfHwgU2lnbmF0dXJlVjQ7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFNpZ25lckN0b3IocGFyYW1zKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBzaWduZXIgPSBhc3luYyAoYXV0aFNjaGVtZSkgPT4ge1xuICAgICAgICAgICAgYXV0aFNjaGVtZSA9IE9iamVjdC5hc3NpZ24oe30sIHtcbiAgICAgICAgICAgICAgICBuYW1lOiBcInNpZ3Y0XCIsXG4gICAgICAgICAgICAgICAgc2lnbmluZ05hbWU6IGNvbmZpZy5zaWduaW5nTmFtZSB8fCBjb25maWcuZGVmYXVsdFNpZ25pbmdOYW1lLFxuICAgICAgICAgICAgICAgIHNpZ25pbmdSZWdpb246IGF3YWl0IG5vcm1hbGl6ZVByb3ZpZGVyKGNvbmZpZy5yZWdpb24pKCksXG4gICAgICAgICAgICAgICAgcHJvcGVydGllczoge30sXG4gICAgICAgICAgICB9LCBhdXRoU2NoZW1lKTtcbiAgICAgICAgICAgIGNvbnN0IHNpZ25pbmdSZWdpb24gPSBhdXRoU2NoZW1lLnNpZ25pbmdSZWdpb247XG4gICAgICAgICAgICBjb25zdCBzaWduaW5nU2VydmljZSA9IGF1dGhTY2hlbWUuc2lnbmluZ05hbWU7XG4gICAgICAgICAgICBjb25maWcuc2lnbmluZ1JlZ2lvbiA9IGNvbmZpZy5zaWduaW5nUmVnaW9uIHx8IHNpZ25pbmdSZWdpb247XG4gICAgICAgICAgICBjb25maWcuc2lnbmluZ05hbWUgPSBjb25maWcuc2lnbmluZ05hbWUgfHwgc2lnbmluZ1NlcnZpY2UgfHwgY29uZmlnLnNlcnZpY2VJZDtcbiAgICAgICAgICAgIGNvbnN0IHBhcmFtcyA9IHtcbiAgICAgICAgICAgICAgICAuLi5jb25maWcsXG4gICAgICAgICAgICAgICAgY3JlZGVudGlhbHM6IGNvbmZpZy5jcmVkZW50aWFscyxcbiAgICAgICAgICAgICAgICByZWdpb246IGNvbmZpZy5zaWduaW5nUmVnaW9uLFxuICAgICAgICAgICAgICAgIHNlcnZpY2U6IGNvbmZpZy5zaWduaW5nTmFtZSxcbiAgICAgICAgICAgICAgICBzaGEyNTYsXG4gICAgICAgICAgICAgICAgdXJpRXNjYXBlUGF0aDogc2lnbmluZ0VzY2FwZVBhdGgsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY29uc3QgU2lnbmVyQ3RvciA9IGNvbmZpZy5zaWduZXJDb25zdHJ1Y3RvciB8fCBTaWduYXR1cmVWNDtcbiAgICAgICAgICAgIHJldHVybiBuZXcgU2lnbmVyQ3RvcihwYXJhbXMpO1xuICAgICAgICB9O1xuICAgIH1cbiAgICBjb25zdCByZXNvbHZlZENvbmZpZyA9IE9iamVjdC5hc3NpZ24oY29uZmlnLCB7XG4gICAgICAgIHN5c3RlbUNsb2NrT2Zmc2V0LFxuICAgICAgICBzaWduaW5nRXNjYXBlUGF0aCxcbiAgICAgICAgc2lnbmVyLFxuICAgIH0pO1xuICAgIHJldHVybiByZXNvbHZlZENvbmZpZztcbn07XG5leHBvcnQgY29uc3QgcmVzb2x2ZUFXU1NES1NpZ1Y0Q29uZmlnID0gcmVzb2x2ZUF3c1Nka1NpZ1Y0Q29uZmlnO1xuZnVuY3Rpb24gbm9ybWFsaXplQ3JlZGVudGlhbFByb3ZpZGVyKGNvbmZpZywgeyBjcmVkZW50aWFscywgY3JlZGVudGlhbERlZmF1bHRQcm92aWRlciwgfSkge1xuICAgIGxldCBjcmVkZW50aWFsc1Byb3ZpZGVyO1xuICAgIGlmIChjcmVkZW50aWFscykge1xuICAgICAgICBpZiAoIWNyZWRlbnRpYWxzPy5tZW1vaXplZCkge1xuICAgICAgICAgICAgY3JlZGVudGlhbHNQcm92aWRlciA9IG1lbW9pemVJZGVudGl0eVByb3ZpZGVyKGNyZWRlbnRpYWxzLCBpc0lkZW50aXR5RXhwaXJlZCwgZG9lc0lkZW50aXR5UmVxdWlyZVJlZnJlc2gpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY3JlZGVudGlhbHNQcm92aWRlciA9IGNyZWRlbnRpYWxzO1xuICAgICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBpZiAoY3JlZGVudGlhbERlZmF1bHRQcm92aWRlcikge1xuICAgICAgICAgICAgY3JlZGVudGlhbHNQcm92aWRlciA9IG5vcm1hbGl6ZVByb3ZpZGVyKGNyZWRlbnRpYWxEZWZhdWx0UHJvdmlkZXIoT2JqZWN0LmFzc2lnbih7fSwgY29uZmlnLCB7XG4gICAgICAgICAgICAgICAgcGFyZW50Q2xpZW50Q29uZmlnOiBjb25maWcsXG4gICAgICAgICAgICB9KSkpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY3JlZGVudGlhbHNQcm92aWRlciA9IGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJAYXdzLXNkay9jb3JlOjpyZXNvbHZlQXdzU2RrU2lnVjRDb25maWcgLSBgY3JlZGVudGlhbHNgIG5vdCBwcm92aWRlZCBhbmQgbm8gY3JlZGVudGlhbERlZmF1bHRQcm92aWRlciB3YXMgY29uZmlndXJlZC5cIik7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfVxuICAgIGNyZWRlbnRpYWxzUHJvdmlkZXIubWVtb2l6ZWQgPSB0cnVlO1xuICAgIHJldHVybiBjcmVkZW50aWFsc1Byb3ZpZGVyO1xufVxuZnVuY3Rpb24gYmluZENhbGxlckNvbmZpZyhjb25maWcsIGNyZWRlbnRpYWxzUHJvdmlkZXIpIHtcbiAgICBpZiAoY3JlZGVudGlhbHNQcm92aWRlci5jb25maWdCb3VuZCkge1xuICAgICAgICByZXR1cm4gY3JlZGVudGlhbHNQcm92aWRlcjtcbiAgICB9XG4gICAgY29uc3QgZm4gPSBhc3luYyAob3B0aW9ucykgPT4gY3JlZGVudGlhbHNQcm92aWRlcih7IC4uLm9wdGlvbnMsIGNhbGxlckNsaWVudENvbmZpZzogY29uZmlnIH0pO1xuICAgIGZuLm1lbW9pemVkID0gY3JlZGVudGlhbHNQcm92aWRlci5tZW1vaXplZDtcbiAgICBmbi5jb25maWdCb3VuZCA9IHRydWU7XG4gICAgcmV0dXJuIGZuO1xufVxuIiwgImV4cG9ydCB7IEF3c1Nka1NpZ1Y0U2lnbmVyLCBBV1NTREtTaWdWNFNpZ25lciwgdmFsaWRhdGVTaWduaW5nUHJvcGVydGllcyB9IGZyb20gXCIuL0F3c1Nka1NpZ1Y0U2lnbmVyXCI7XG5leHBvcnQgeyBBd3NTZGtTaWdWNEFTaWduZXIgfSBmcm9tIFwiLi9Bd3NTZGtTaWdWNEFTaWduZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL05PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9PUFRJT05TXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9yZXNvbHZlQXdzU2RrU2lnVjRBQ29uZmlnXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9yZXNvbHZlQXdzU2RrU2lnVjRDb25maWdcIjtcbiIsICJleHBvcnQgKiBmcm9tIFwiLi9hd3Nfc2RrXCI7XG5leHBvcnQgKiBmcm9tIFwiLi91dGlscy9nZXRCZWFyZXJUb2tlbkVudktleVwiO1xuIiwgImltcG9ydCB7IE5vcm1hbGl6ZWRTY2hlbWEsIFR5cGVSZWdpc3RyeSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2NoZW1hXCI7XG5pbXBvcnQgeyBkZWNvcmF0ZVNlcnZpY2VFeGNlcHRpb24gfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5leHBvcnQgY2xhc3MgUHJvdG9jb2xMaWIge1xuICAgIHF1ZXJ5Q29tcGF0O1xuICAgIGNvbnN0cnVjdG9yKHF1ZXJ5Q29tcGF0ID0gZmFsc2UpIHtcbiAgICAgICAgdGhpcy5xdWVyeUNvbXBhdCA9IHF1ZXJ5Q29tcGF0O1xuICAgIH1cbiAgICByZXNvbHZlUmVzdENvbnRlbnRUeXBlKGRlZmF1bHRDb250ZW50VHlwZSwgaW5wdXRTY2hlbWEpIHtcbiAgICAgICAgY29uc3QgbWVtYmVycyA9IGlucHV0U2NoZW1hLmdldE1lbWJlclNjaGVtYXMoKTtcbiAgICAgICAgY29uc3QgaHR0cFBheWxvYWRNZW1iZXIgPSBPYmplY3QudmFsdWVzKG1lbWJlcnMpLmZpbmQoKG0pID0+IHtcbiAgICAgICAgICAgIHJldHVybiAhIW0uZ2V0TWVyZ2VkVHJhaXRzKCkuaHR0cFBheWxvYWQ7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoaHR0cFBheWxvYWRNZW1iZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IG1lZGlhVHlwZSA9IGh0dHBQYXlsb2FkTWVtYmVyLmdldE1lcmdlZFRyYWl0cygpLm1lZGlhVHlwZTtcbiAgICAgICAgICAgIGlmIChtZWRpYVR5cGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbWVkaWFUeXBlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoaHR0cFBheWxvYWRNZW1iZXIuaXNTdHJpbmdTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBcInRleHQvcGxhaW5cIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGh0dHBQYXlsb2FkTWVtYmVyLmlzQmxvYlNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtXCI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZGVmYXVsdENvbnRlbnRUeXBlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKCFpbnB1dFNjaGVtYS5pc1VuaXRTY2hlbWEoKSkge1xuICAgICAgICAgICAgY29uc3QgaGFzQm9keSA9IE9iamVjdC52YWx1ZXMobWVtYmVycykuZmluZCgobSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgaHR0cFF1ZXJ5LCBodHRwUXVlcnlQYXJhbXMsIGh0dHBIZWFkZXIsIGh0dHBMYWJlbCwgaHR0cFByZWZpeEhlYWRlcnMgfSA9IG0uZ2V0TWVyZ2VkVHJhaXRzKCk7XG4gICAgICAgICAgICAgICAgY29uc3Qgbm9QcmVmaXhIZWFkZXJzID0gaHR0cFByZWZpeEhlYWRlcnMgPT09IHZvaWQgMDtcbiAgICAgICAgICAgICAgICByZXR1cm4gIWh0dHBRdWVyeSAmJiAhaHR0cFF1ZXJ5UGFyYW1zICYmICFodHRwSGVhZGVyICYmICFodHRwTGFiZWwgJiYgbm9QcmVmaXhIZWFkZXJzO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAoaGFzQm9keSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBkZWZhdWx0Q29udGVudFR5cGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgYXN5bmMgZ2V0RXJyb3JTY2hlbWFPclRocm93QmFzZUV4Y2VwdGlvbihlcnJvcklkZW50aWZpZXIsIGRlZmF1bHROYW1lc3BhY2UsIHJlc3BvbnNlLCBkYXRhT2JqZWN0LCBtZXRhZGF0YSwgZ2V0RXJyb3JTY2hlbWEpIHtcbiAgICAgICAgbGV0IG5hbWVzcGFjZSA9IGRlZmF1bHROYW1lc3BhY2U7XG4gICAgICAgIGxldCBlcnJvck5hbWUgPSBlcnJvcklkZW50aWZpZXI7XG4gICAgICAgIGlmIChlcnJvcklkZW50aWZpZXIuaW5jbHVkZXMoXCIjXCIpKSB7XG4gICAgICAgICAgICBbbmFtZXNwYWNlLCBlcnJvck5hbWVdID0gZXJyb3JJZGVudGlmaWVyLnNwbGl0KFwiI1wiKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBlcnJvck1ldGFkYXRhID0ge1xuICAgICAgICAgICAgJG1ldGFkYXRhOiBtZXRhZGF0YSxcbiAgICAgICAgICAgICRmYXVsdDogcmVzcG9uc2Uuc3RhdHVzQ29kZSA8IDUwMCA/IFwiY2xpZW50XCIgOiBcInNlcnZlclwiLFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCByZWdpc3RyeSA9IFR5cGVSZWdpc3RyeS5mb3IobmFtZXNwYWNlKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGVycm9yU2NoZW1hID0gZ2V0RXJyb3JTY2hlbWE/LihyZWdpc3RyeSwgZXJyb3JOYW1lKSA/PyByZWdpc3RyeS5nZXRTY2hlbWEoZXJyb3JJZGVudGlmaWVyKTtcbiAgICAgICAgICAgIHJldHVybiB7IGVycm9yU2NoZW1hLCBlcnJvck1ldGFkYXRhIH07XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIGRhdGFPYmplY3QubWVzc2FnZSA9IGRhdGFPYmplY3QubWVzc2FnZSA/PyBkYXRhT2JqZWN0Lk1lc3NhZ2UgPz8gXCJVbmtub3duRXJyb3JcIjtcbiAgICAgICAgICAgIGNvbnN0IHN5bnRoZXRpYyA9IFR5cGVSZWdpc3RyeS5mb3IoXCJzbWl0aHkudHMuc2RrLnN5bnRoZXRpYy5cIiArIG5hbWVzcGFjZSk7XG4gICAgICAgICAgICBjb25zdCBiYXNlRXhjZXB0aW9uU2NoZW1hID0gc3ludGhldGljLmdldEJhc2VFeGNlcHRpb24oKTtcbiAgICAgICAgICAgIGlmIChiYXNlRXhjZXB0aW9uU2NoZW1hKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgRXJyb3JDdG9yID0gc3ludGhldGljLmdldEVycm9yQ3RvcihiYXNlRXhjZXB0aW9uU2NoZW1hKSA/PyBFcnJvcjtcbiAgICAgICAgICAgICAgICB0aHJvdyB0aGlzLmRlY29yYXRlU2VydmljZUV4Y2VwdGlvbihPYmplY3QuYXNzaWduKG5ldyBFcnJvckN0b3IoeyBuYW1lOiBlcnJvck5hbWUgfSksIGVycm9yTWV0YWRhdGEpLCBkYXRhT2JqZWN0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRocm93IHRoaXMuZGVjb3JhdGVTZXJ2aWNlRXhjZXB0aW9uKE9iamVjdC5hc3NpZ24obmV3IEVycm9yKGVycm9yTmFtZSksIGVycm9yTWV0YWRhdGEpLCBkYXRhT2JqZWN0KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBkZWNvcmF0ZVNlcnZpY2VFeGNlcHRpb24oZXhjZXB0aW9uLCBhZGRpdGlvbnMgPSB7fSkge1xuICAgICAgICBpZiAodGhpcy5xdWVyeUNvbXBhdCkge1xuICAgICAgICAgICAgY29uc3QgbXNnID0gZXhjZXB0aW9uLk1lc3NhZ2UgPz8gYWRkaXRpb25zLk1lc3NhZ2U7XG4gICAgICAgICAgICBjb25zdCBlcnJvciA9IGRlY29yYXRlU2VydmljZUV4Y2VwdGlvbihleGNlcHRpb24sIGFkZGl0aW9ucyk7XG4gICAgICAgICAgICBpZiAobXNnKSB7XG4gICAgICAgICAgICAgICAgZXJyb3IubWVzc2FnZSA9IG1zZztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVycm9yLkVycm9yID0ge1xuICAgICAgICAgICAgICAgIC4uLmVycm9yLkVycm9yLFxuICAgICAgICAgICAgICAgIFR5cGU6IGVycm9yLkVycm9yLlR5cGUsXG4gICAgICAgICAgICAgICAgQ29kZTogZXJyb3IuRXJyb3IuQ29kZSxcbiAgICAgICAgICAgICAgICBNZXNzYWdlOiBlcnJvci5FcnJvci5tZXNzYWdlID8/IGVycm9yLkVycm9yLk1lc3NhZ2UgPz8gbXNnLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGNvbnN0IHJlcUlkID0gZXJyb3IuJG1ldGFkYXRhLnJlcXVlc3RJZDtcbiAgICAgICAgICAgIGlmIChyZXFJZCkge1xuICAgICAgICAgICAgICAgIGVycm9yLlJlcXVlc3RJZCA9IHJlcUlkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGVycm9yO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkZWNvcmF0ZVNlcnZpY2VFeGNlcHRpb24oZXhjZXB0aW9uLCBhZGRpdGlvbnMpO1xuICAgIH1cbiAgICBzZXRRdWVyeUNvbXBhdEVycm9yKG91dHB1dCwgcmVzcG9uc2UpIHtcbiAgICAgICAgY29uc3QgcXVlcnlFcnJvckhlYWRlciA9IHJlc3BvbnNlLmhlYWRlcnM/LltcIngtYW16bi1xdWVyeS1lcnJvclwiXTtcbiAgICAgICAgaWYgKG91dHB1dCAhPT0gdW5kZWZpbmVkICYmIHF1ZXJ5RXJyb3JIZWFkZXIgIT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc3QgW0NvZGUsIFR5cGVdID0gcXVlcnlFcnJvckhlYWRlci5zcGxpdChcIjtcIik7XG4gICAgICAgICAgICBjb25zdCBlbnRyaWVzID0gT2JqZWN0LmVudHJpZXMob3V0cHV0KTtcbiAgICAgICAgICAgIGNvbnN0IEVycm9yID0ge1xuICAgICAgICAgICAgICAgIENvZGUsXG4gICAgICAgICAgICAgICAgVHlwZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKG91dHB1dCwgRXJyb3IpO1xuICAgICAgICAgICAgZm9yIChjb25zdCBbaywgdl0gb2YgZW50cmllcykge1xuICAgICAgICAgICAgICAgIEVycm9yW2sgPT09IFwibWVzc2FnZVwiID8gXCJNZXNzYWdlXCIgOiBrXSA9IHY7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWxldGUgRXJyb3IuX190eXBlO1xuICAgICAgICAgICAgb3V0cHV0LkVycm9yID0gRXJyb3I7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcXVlcnlDb21wYXRPdXRwdXQocXVlcnlDb21wYXRFcnJvckRhdGEsIGVycm9yRGF0YSkge1xuICAgICAgICBpZiAocXVlcnlDb21wYXRFcnJvckRhdGEuRXJyb3IpIHtcbiAgICAgICAgICAgIGVycm9yRGF0YS5FcnJvciA9IHF1ZXJ5Q29tcGF0RXJyb3JEYXRhLkVycm9yO1xuICAgICAgICB9XG4gICAgICAgIGlmIChxdWVyeUNvbXBhdEVycm9yRGF0YS5UeXBlKSB7XG4gICAgICAgICAgICBlcnJvckRhdGEuVHlwZSA9IHF1ZXJ5Q29tcGF0RXJyb3JEYXRhLlR5cGU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHF1ZXJ5Q29tcGF0RXJyb3JEYXRhLkNvZGUpIHtcbiAgICAgICAgICAgIGVycm9yRGF0YS5Db2RlID0gcXVlcnlDb21wYXRFcnJvckRhdGEuQ29kZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmaW5kUXVlcnlDb21wYXRpYmxlRXJyb3IocmVnaXN0cnksIGVycm9yTmFtZSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIHJlZ2lzdHJ5LmdldFNjaGVtYShlcnJvck5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVnaXN0cnkuZmluZCgoc2NoZW1hKSA9PiBOb3JtYWxpemVkU2NoZW1hLm9mKHNjaGVtYSkuZ2V0TWVyZ2VkVHJhaXRzKCkuYXdzUXVlcnlFcnJvcj8uWzBdID09PSBlcnJvck5hbWUpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwgImltcG9ydCB7IGxvYWRTbWl0aHlScGNWMkNib3JFcnJvckNvZGUsIFNtaXRoeVJwY1YyQ2JvclByb3RvY29sIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9jYm9yXCI7XG5pbXBvcnQgeyBOb3JtYWxpemVkU2NoZW1hLCBUeXBlUmVnaXN0cnkgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3NjaGVtYVwiO1xuaW1wb3J0IHsgUHJvdG9jb2xMaWIgfSBmcm9tIFwiLi4vUHJvdG9jb2xMaWJcIjtcbmV4cG9ydCBjbGFzcyBBd3NTbWl0aHlScGNWMkNib3JQcm90b2NvbCBleHRlbmRzIFNtaXRoeVJwY1YyQ2JvclByb3RvY29sIHtcbiAgICBhd3NRdWVyeUNvbXBhdGlibGU7XG4gICAgbWl4aW47XG4gICAgY29uc3RydWN0b3IoeyBkZWZhdWx0TmFtZXNwYWNlLCBhd3NRdWVyeUNvbXBhdGlibGUsIH0pIHtcbiAgICAgICAgc3VwZXIoeyBkZWZhdWx0TmFtZXNwYWNlIH0pO1xuICAgICAgICB0aGlzLmF3c1F1ZXJ5Q29tcGF0aWJsZSA9ICEhYXdzUXVlcnlDb21wYXRpYmxlO1xuICAgICAgICB0aGlzLm1peGluID0gbmV3IFByb3RvY29sTGliKHRoaXMuYXdzUXVlcnlDb21wYXRpYmxlKTtcbiAgICB9XG4gICAgYXN5bmMgc2VyaWFsaXplUmVxdWVzdChvcGVyYXRpb25TY2hlbWEsIGlucHV0LCBjb250ZXh0KSB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSBhd2FpdCBzdXBlci5zZXJpYWxpemVSZXF1ZXN0KG9wZXJhdGlvblNjaGVtYSwgaW5wdXQsIGNvbnRleHQpO1xuICAgICAgICBpZiAodGhpcy5hd3NRdWVyeUNvbXBhdGlibGUpIHtcbiAgICAgICAgICAgIHJlcXVlc3QuaGVhZGVyc1tcIngtYW16bi1xdWVyeS1tb2RlXCJdID0gXCJ0cnVlXCI7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlcXVlc3Q7XG4gICAgfVxuICAgIGFzeW5jIGhhbmRsZUVycm9yKG9wZXJhdGlvblNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UsIGRhdGFPYmplY3QsIG1ldGFkYXRhKSB7XG4gICAgICAgIGlmICh0aGlzLmF3c1F1ZXJ5Q29tcGF0aWJsZSkge1xuICAgICAgICAgICAgdGhpcy5taXhpbi5zZXRRdWVyeUNvbXBhdEVycm9yKGRhdGFPYmplY3QsIHJlc3BvbnNlKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBlcnJvck5hbWUgPSAoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY29tcGF0SGVhZGVyID0gcmVzcG9uc2UuaGVhZGVyc1tcIngtYW16bi1xdWVyeS1lcnJvclwiXTtcbiAgICAgICAgICAgIGlmIChjb21wYXRIZWFkZXIgJiYgdGhpcy5hd3NRdWVyeUNvbXBhdGlibGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY29tcGF0SGVhZGVyLnNwbGl0KFwiO1wiKVswXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBsb2FkU21pdGh5UnBjVjJDYm9yRXJyb3JDb2RlKHJlc3BvbnNlLCBkYXRhT2JqZWN0KSA/PyBcIlVua25vd25cIjtcbiAgICAgICAgfSkoKTtcbiAgICAgICAgY29uc3QgeyBlcnJvclNjaGVtYSwgZXJyb3JNZXRhZGF0YSB9ID0gYXdhaXQgdGhpcy5taXhpbi5nZXRFcnJvclNjaGVtYU9yVGhyb3dCYXNlRXhjZXB0aW9uKGVycm9yTmFtZSwgdGhpcy5vcHRpb25zLmRlZmF1bHROYW1lc3BhY2UsIHJlc3BvbnNlLCBkYXRhT2JqZWN0LCBtZXRhZGF0YSwgdGhpcy5hd3NRdWVyeUNvbXBhdGlibGUgPyB0aGlzLm1peGluLmZpbmRRdWVyeUNvbXBhdGlibGVFcnJvciA6IHVuZGVmaW5lZCk7XG4gICAgICAgIGNvbnN0IG5zID0gTm9ybWFsaXplZFNjaGVtYS5vZihlcnJvclNjaGVtYSk7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBkYXRhT2JqZWN0Lm1lc3NhZ2UgPz8gZGF0YU9iamVjdC5NZXNzYWdlID8/IFwiVW5rbm93blwiO1xuICAgICAgICBjb25zdCBFcnJvckN0b3IgPSBUeXBlUmVnaXN0cnkuZm9yKGVycm9yU2NoZW1hWzFdKS5nZXRFcnJvckN0b3IoZXJyb3JTY2hlbWEpID8/IEVycm9yO1xuICAgICAgICBjb25zdCBleGNlcHRpb24gPSBuZXcgRXJyb3JDdG9yKG1lc3NhZ2UpO1xuICAgICAgICBjb25zdCBvdXRwdXQgPSB7fTtcbiAgICAgICAgZm9yIChjb25zdCBbbmFtZSwgbWVtYmVyXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICBpZiAoZGF0YU9iamVjdFtuYW1lXSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgb3V0cHV0W25hbWVdID0gdGhpcy5kZXNlcmlhbGl6ZXIucmVhZFZhbHVlKG1lbWJlciwgZGF0YU9iamVjdFtuYW1lXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuYXdzUXVlcnlDb21wYXRpYmxlKSB7XG4gICAgICAgICAgICB0aGlzLm1peGluLnF1ZXJ5Q29tcGF0T3V0cHV0KGRhdGFPYmplY3QsIG91dHB1dCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgdGhpcy5taXhpbi5kZWNvcmF0ZVNlcnZpY2VFeGNlcHRpb24oT2JqZWN0LmFzc2lnbihleGNlcHRpb24sIGVycm9yTWV0YWRhdGEsIHtcbiAgICAgICAgICAgICRmYXVsdDogbnMuZ2V0TWVyZ2VkVHJhaXRzKCkuZXJyb3IsXG4gICAgICAgICAgICBtZXNzYWdlLFxuICAgICAgICB9LCBvdXRwdXQpLCBkYXRhT2JqZWN0KTtcbiAgICB9XG59XG4iLCAiZXhwb3J0IGNvbnN0IF90b1N0ciA9ICh2YWwpID0+IHtcbiAgICBpZiAodmFsID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHZhbDtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB2YWwgPT09IFwibnVtYmVyXCIgfHwgdHlwZW9mIHZhbCA9PT0gXCJiaWdpbnRcIikge1xuICAgICAgICBjb25zdCB3YXJuaW5nID0gbmV3IEVycm9yKGBSZWNlaXZlZCBudW1iZXIgJHt2YWx9IHdoZXJlIGEgc3RyaW5nIHdhcyBleHBlY3RlZC5gKTtcbiAgICAgICAgd2FybmluZy5uYW1lID0gXCJXYXJuaW5nXCI7XG4gICAgICAgIGNvbnNvbGUud2Fybih3YXJuaW5nKTtcbiAgICAgICAgcmV0dXJuIFN0cmluZyh2YWwpO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHZhbCA9PT0gXCJib29sZWFuXCIpIHtcbiAgICAgICAgY29uc3Qgd2FybmluZyA9IG5ldyBFcnJvcihgUmVjZWl2ZWQgYm9vbGVhbiAke3ZhbH0gd2hlcmUgYSBzdHJpbmcgd2FzIGV4cGVjdGVkLmApO1xuICAgICAgICB3YXJuaW5nLm5hbWUgPSBcIldhcm5pbmdcIjtcbiAgICAgICAgY29uc29sZS53YXJuKHdhcm5pbmcpO1xuICAgICAgICByZXR1cm4gU3RyaW5nKHZhbCk7XG4gICAgfVxuICAgIHJldHVybiB2YWw7XG59O1xuZXhwb3J0IGNvbnN0IF90b0Jvb2wgPSAodmFsKSA9PiB7XG4gICAgaWYgKHZhbCA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiB2YWw7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgdmFsID09PSBcIm51bWJlclwiKSB7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgdmFsID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIGNvbnN0IGxvd2VyY2FzZSA9IHZhbC50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBpZiAodmFsICE9PSBcIlwiICYmIGxvd2VyY2FzZSAhPT0gXCJmYWxzZVwiICYmIGxvd2VyY2FzZSAhPT0gXCJ0cnVlXCIpIHtcbiAgICAgICAgICAgIGNvbnN0IHdhcm5pbmcgPSBuZXcgRXJyb3IoYFJlY2VpdmVkIHN0cmluZyBcIiR7dmFsfVwiIHdoZXJlIGEgYm9vbGVhbiB3YXMgZXhwZWN0ZWQuYCk7XG4gICAgICAgICAgICB3YXJuaW5nLm5hbWUgPSBcIldhcm5pbmdcIjtcbiAgICAgICAgICAgIGNvbnNvbGUud2Fybih3YXJuaW5nKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsICE9PSBcIlwiICYmIGxvd2VyY2FzZSAhPT0gXCJmYWxzZVwiO1xuICAgIH1cbiAgICByZXR1cm4gdmFsO1xufTtcbmV4cG9ydCBjb25zdCBfdG9OdW0gPSAodmFsKSA9PiB7XG4gICAgaWYgKHZhbCA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiB2YWw7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgdmFsID09PSBcImJvb2xlYW5cIikge1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHZhbCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICBjb25zdCBudW0gPSBOdW1iZXIodmFsKTtcbiAgICAgICAgaWYgKG51bS50b1N0cmluZygpICE9PSB2YWwpIHtcbiAgICAgICAgICAgIGNvbnN0IHdhcm5pbmcgPSBuZXcgRXJyb3IoYFJlY2VpdmVkIHN0cmluZyBcIiR7dmFsfVwiIHdoZXJlIGEgbnVtYmVyIHdhcyBleHBlY3RlZC5gKTtcbiAgICAgICAgICAgIHdhcm5pbmcubmFtZSA9IFwiV2FybmluZ1wiO1xuICAgICAgICAgICAgY29uc29sZS53YXJuKHdhcm5pbmcpO1xuICAgICAgICAgICAgcmV0dXJuIHZhbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVtO1xuICAgIH1cbiAgICByZXR1cm4gdmFsO1xufTtcbiIsICJleHBvcnQgY2xhc3MgU2VyZGVDb250ZXh0Q29uZmlnIHtcbiAgICBzZXJkZUNvbnRleHQ7XG4gICAgc2V0U2VyZGVDb250ZXh0KHNlcmRlQ29udGV4dCkge1xuICAgICAgICB0aGlzLnNlcmRlQ29udGV4dCA9IHNlcmRlQ29udGV4dDtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgTm9ybWFsaXplZFNjaGVtYSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2NoZW1hXCI7XG5leHBvcnQgZnVuY3Rpb24qIHNlcmlhbGl6aW5nU3RydWN0SXRlcmF0b3IobnMsIHNvdXJjZU9iamVjdCkge1xuICAgIGlmIChucy5pc1VuaXRTY2hlbWEoKSkge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHN0cnVjdCA9IG5zLmdldFNjaGVtYSgpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3RydWN0WzRdLmxlbmd0aDsgKytpKSB7XG4gICAgICAgIGNvbnN0IGtleSA9IHN0cnVjdFs0XVtpXTtcbiAgICAgICAgY29uc3QgbWVtYmVyU2NoZW1hID0gc3RydWN0WzVdW2ldO1xuICAgICAgICBjb25zdCBtZW1iZXJOcyA9IG5ldyBOb3JtYWxpemVkU2NoZW1hKFttZW1iZXJTY2hlbWEsIDBdLCBrZXkpO1xuICAgICAgICBpZiAoIShrZXkgaW4gc291cmNlT2JqZWN0KSAmJiAhbWVtYmVyTnMuaXNJZGVtcG90ZW5jeVRva2VuKCkpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIHlpZWxkIFtrZXksIG1lbWJlck5zXTtcbiAgICB9XG59XG5leHBvcnQgZnVuY3Rpb24qIGRlc2VyaWFsaXppbmdTdHJ1Y3RJdGVyYXRvcihucywgc291cmNlT2JqZWN0LCBuYW1lVHJhaXQpIHtcbiAgICBpZiAobnMuaXNVbml0U2NoZW1hKCkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBzdHJ1Y3QgPSBucy5nZXRTY2hlbWEoKTtcbiAgICBsZXQga2V5c1JlbWFpbmluZyA9IE9iamVjdC5rZXlzKHNvdXJjZU9iamVjdCkuZmlsdGVyKChrKSA9PiBrICE9PSBcIl9fdHlwZVwiKS5sZW5ndGg7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdHJ1Y3RbNF0ubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgaWYgKGtleXNSZW1haW5pbmcgPT09IDApIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGtleSA9IHN0cnVjdFs0XVtpXTtcbiAgICAgICAgY29uc3QgbWVtYmVyU2NoZW1hID0gc3RydWN0WzVdW2ldO1xuICAgICAgICBjb25zdCBtZW1iZXJOcyA9IG5ldyBOb3JtYWxpemVkU2NoZW1hKFttZW1iZXJTY2hlbWEsIDBdLCBrZXkpO1xuICAgICAgICBsZXQgc2VyaWFsaXphdGlvbktleSA9IGtleTtcbiAgICAgICAgaWYgKG5hbWVUcmFpdCkge1xuICAgICAgICAgICAgc2VyaWFsaXphdGlvbktleSA9IG1lbWJlck5zLmdldE1lcmdlZFRyYWl0cygpW25hbWVUcmFpdF0gPz8ga2V5O1xuICAgICAgICB9XG4gICAgICAgIGlmICghKHNlcmlhbGl6YXRpb25LZXkgaW4gc291cmNlT2JqZWN0KSkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgeWllbGQgW2tleSwgbWVtYmVyTnNdO1xuICAgICAgICBrZXlzUmVtYWluaW5nIC09IDE7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IE51bWVyaWNWYWx1ZSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2VyZGVcIjtcbmV4cG9ydCBmdW5jdGlvbiBqc29uUmV2aXZlcihrZXksIHZhbHVlLCBjb250ZXh0KSB7XG4gICAgaWYgKGNvbnRleHQ/LnNvdXJjZSkge1xuICAgICAgICBjb25zdCBudW1lcmljU3RyaW5nID0gY29udGV4dC5zb3VyY2U7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZSA+IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSIHx8IHZhbHVlIDwgTnVtYmVyLk1JTl9TQUZFX0lOVEVHRVIgfHwgbnVtZXJpY1N0cmluZyAhPT0gU3RyaW5nKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzRnJhY3Rpb25hbCA9IG51bWVyaWNTdHJpbmcuaW5jbHVkZXMoXCIuXCIpO1xuICAgICAgICAgICAgICAgIGlmIChpc0ZyYWN0aW9uYWwpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBOdW1lcmljVmFsdWUobnVtZXJpY1N0cmluZywgXCJiaWdEZWNpbWFsXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEJpZ0ludChudW1lcmljU3RyaW5nKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlO1xufVxuIiwgImltcG9ydCB7IGNvbGxlY3RCb2R5IH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgdG9VdGY4IH0gZnJvbSBcIkBzbWl0aHkvdXRpbC11dGY4XCI7XG5leHBvcnQgY29uc3QgY29sbGVjdEJvZHlTdHJpbmcgPSAoc3RyZWFtQm9keSwgY29udGV4dCkgPT4gY29sbGVjdEJvZHkoc3RyZWFtQm9keSwgY29udGV4dCkudGhlbigoYm9keSkgPT4gKGNvbnRleHQ/LnV0ZjhFbmNvZGVyID8/IHRvVXRmOCkoYm9keSkpO1xuIiwgImltcG9ydCB7IGNvbGxlY3RCb2R5U3RyaW5nIH0gZnJvbSBcIi4uL2NvbW1vblwiO1xuZXhwb3J0IGNvbnN0IHBhcnNlSnNvbkJvZHkgPSAoc3RyZWFtQm9keSwgY29udGV4dCkgPT4gY29sbGVjdEJvZHlTdHJpbmcoc3RyZWFtQm9keSwgY29udGV4dCkudGhlbigoZW5jb2RlZCkgPT4ge1xuICAgIGlmIChlbmNvZGVkLmxlbmd0aCkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoZW5jb2RlZCk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIGlmIChlPy5uYW1lID09PSBcIlN5bnRheEVycm9yXCIpIHtcbiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwgXCIkcmVzcG9uc2VCb2R5VGV4dFwiLCB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBlbmNvZGVkLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4ge307XG59KTtcbmV4cG9ydCBjb25zdCBwYXJzZUpzb25FcnJvckJvZHkgPSBhc3luYyAoZXJyb3JCb2R5LCBjb250ZXh0KSA9PiB7XG4gICAgY29uc3QgdmFsdWUgPSBhd2FpdCBwYXJzZUpzb25Cb2R5KGVycm9yQm9keSwgY29udGV4dCk7XG4gICAgdmFsdWUubWVzc2FnZSA9IHZhbHVlLm1lc3NhZ2UgPz8gdmFsdWUuTWVzc2FnZTtcbiAgICByZXR1cm4gdmFsdWU7XG59O1xuZXhwb3J0IGNvbnN0IGxvYWRSZXN0SnNvbkVycm9yQ29kZSA9IChvdXRwdXQsIGRhdGEpID0+IHtcbiAgICBjb25zdCBmaW5kS2V5ID0gKG9iamVjdCwga2V5KSA9PiBPYmplY3Qua2V5cyhvYmplY3QpLmZpbmQoKGspID0+IGsudG9Mb3dlckNhc2UoKSA9PT0ga2V5LnRvTG93ZXJDYXNlKCkpO1xuICAgIGNvbnN0IHNhbml0aXplRXJyb3JDb2RlID0gKHJhd1ZhbHVlKSA9PiB7XG4gICAgICAgIGxldCBjbGVhblZhbHVlID0gcmF3VmFsdWU7XG4gICAgICAgIGlmICh0eXBlb2YgY2xlYW5WYWx1ZSA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgY2xlYW5WYWx1ZSA9IGNsZWFuVmFsdWUudG9TdHJpbmcoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2xlYW5WYWx1ZS5pbmRleE9mKFwiLFwiKSA+PSAwKSB7XG4gICAgICAgICAgICBjbGVhblZhbHVlID0gY2xlYW5WYWx1ZS5zcGxpdChcIixcIilbMF07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNsZWFuVmFsdWUuaW5kZXhPZihcIjpcIikgPj0gMCkge1xuICAgICAgICAgICAgY2xlYW5WYWx1ZSA9IGNsZWFuVmFsdWUuc3BsaXQoXCI6XCIpWzBdO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjbGVhblZhbHVlLmluZGV4T2YoXCIjXCIpID49IDApIHtcbiAgICAgICAgICAgIGNsZWFuVmFsdWUgPSBjbGVhblZhbHVlLnNwbGl0KFwiI1wiKVsxXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY2xlYW5WYWx1ZTtcbiAgICB9O1xuICAgIGNvbnN0IGhlYWRlcktleSA9IGZpbmRLZXkob3V0cHV0LmhlYWRlcnMsIFwieC1hbXpuLWVycm9ydHlwZVwiKTtcbiAgICBpZiAoaGVhZGVyS2V5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIHNhbml0aXplRXJyb3JDb2RlKG91dHB1dC5oZWFkZXJzW2hlYWRlcktleV0pO1xuICAgIH1cbiAgICBpZiAoZGF0YSAmJiB0eXBlb2YgZGF0YSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICBjb25zdCBjb2RlS2V5ID0gZmluZEtleShkYXRhLCBcImNvZGVcIik7XG4gICAgICAgIGlmIChjb2RlS2V5ICYmIGRhdGFbY29kZUtleV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHNhbml0aXplRXJyb3JDb2RlKGRhdGFbY29kZUtleV0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhW1wiX190eXBlXCJdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBzYW5pdGl6ZUVycm9yQ29kZShkYXRhW1wiX190eXBlXCJdKTtcbiAgICAgICAgfVxuICAgIH1cbn07XG4iLCAiaW1wb3J0IHsgZGV0ZXJtaW5lVGltZXN0YW1wRm9ybWF0IH0gZnJvbSBcIkBzbWl0aHkvY29yZS9wcm90b2NvbHNcIjtcbmltcG9ydCB7IE5vcm1hbGl6ZWRTY2hlbWEgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3NjaGVtYVwiO1xuaW1wb3J0IHsgTGF6eUpzb25TdHJpbmcsIE51bWVyaWNWYWx1ZSwgcGFyc2VFcG9jaFRpbWVzdGFtcCwgcGFyc2VSZmMzMzM5RGF0ZVRpbWVXaXRoT2Zmc2V0LCBwYXJzZVJmYzcyMzFEYXRlVGltZSwgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3NlcmRlXCI7XG5pbXBvcnQgeyBmcm9tQmFzZTY0IH0gZnJvbSBcIkBzbWl0aHkvdXRpbC1iYXNlNjRcIjtcbmltcG9ydCB7IFNlcmRlQ29udGV4dENvbmZpZyB9IGZyb20gXCIuLi9Db25maWd1cmFibGVTZXJkZUNvbnRleHRcIjtcbmltcG9ydCB7IGRlc2VyaWFsaXppbmdTdHJ1Y3RJdGVyYXRvciB9IGZyb20gXCIuLi9zdHJ1Y3RJdGVyYXRvclwiO1xuaW1wb3J0IHsganNvblJldml2ZXIgfSBmcm9tIFwiLi9qc29uUmV2aXZlclwiO1xuaW1wb3J0IHsgcGFyc2VKc29uQm9keSB9IGZyb20gXCIuL3BhcnNlSnNvbkJvZHlcIjtcbmV4cG9ydCBjbGFzcyBKc29uU2hhcGVEZXNlcmlhbGl6ZXIgZXh0ZW5kcyBTZXJkZUNvbnRleHRDb25maWcge1xuICAgIHNldHRpbmdzO1xuICAgIGNvbnN0cnVjdG9yKHNldHRpbmdzKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuc2V0dGluZ3MgPSBzZXR0aW5ncztcbiAgICB9XG4gICAgYXN5bmMgcmVhZChzY2hlbWEsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlYWQoc2NoZW1hLCB0eXBlb2YgZGF0YSA9PT0gXCJzdHJpbmdcIiA/IEpTT04ucGFyc2UoZGF0YSwganNvblJldml2ZXIpIDogYXdhaXQgcGFyc2VKc29uQm9keShkYXRhLCB0aGlzLnNlcmRlQ29udGV4dCkpO1xuICAgIH1cbiAgICByZWFkT2JqZWN0KHNjaGVtYSwgZGF0YSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVhZChzY2hlbWEsIGRhdGEpO1xuICAgIH1cbiAgICBfcmVhZChzY2hlbWEsIHZhbHVlKSB7XG4gICAgICAgIGNvbnN0IGlzT2JqZWN0ID0gdmFsdWUgIT09IG51bGwgJiYgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiO1xuICAgICAgICBjb25zdCBucyA9IE5vcm1hbGl6ZWRTY2hlbWEub2Yoc2NoZW1hKTtcbiAgICAgICAgaWYgKGlzT2JqZWN0KSB7XG4gICAgICAgICAgICBpZiAobnMuaXNTdHJ1Y3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG91dCA9IHt9O1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgW21lbWJlck5hbWUsIG1lbWJlclNjaGVtYV0gb2YgZGVzZXJpYWxpemluZ1N0cnVjdEl0ZXJhdG9yKG5zLCB2YWx1ZSwgdGhpcy5zZXR0aW5ncy5qc29uTmFtZSA/IFwianNvbk5hbWVcIiA6IGZhbHNlKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBmcm9tS2V5ID0gdGhpcy5zZXR0aW5ncy5qc29uTmFtZSA/IG1lbWJlclNjaGVtYS5nZXRNZXJnZWRUcmFpdHMoKS5qc29uTmFtZSA/PyBtZW1iZXJOYW1lIDogbWVtYmVyTmFtZTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGVzZXJpYWxpemVkVmFsdWUgPSB0aGlzLl9yZWFkKG1lbWJlclNjaGVtYSwgdmFsdWVbZnJvbUtleV0pO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZGVzZXJpYWxpemVkVmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3V0W21lbWJlck5hbWVdID0gZGVzZXJpYWxpemVkVmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIG91dDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSAmJiBucy5pc0xpc3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxpc3RNZW1iZXIgPSBucy5nZXRWYWx1ZVNjaGVtYSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IG91dCA9IFtdO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNwYXJzZSA9ICEhbnMuZ2V0TWVyZ2VkVHJhaXRzKCkuc3BhcnNlO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiB2YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoc3BhcnNlIHx8IGl0ZW0gIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3V0LnB1c2godGhpcy5fcmVhZChsaXN0TWVtYmVyLCBpdGVtKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIG91dDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChucy5pc01hcFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbWFwTWVtYmVyID0gbnMuZ2V0VmFsdWVTY2hlbWEoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBvdXQgPSB7fTtcbiAgICAgICAgICAgICAgICBjb25zdCBzcGFyc2UgPSAhIW5zLmdldE1lcmdlZFRyYWl0cygpLnNwYXJzZTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IFtfaywgX3ZdIG9mIE9iamVjdC5lbnRyaWVzKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoc3BhcnNlIHx8IF92ICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG91dFtfa10gPSB0aGlzLl9yZWFkKG1hcE1lbWJlciwgX3YpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBvdXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzQmxvYlNjaGVtYSgpICYmIHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgcmV0dXJuIGZyb21CYXNlNjQodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG1lZGlhVHlwZSA9IG5zLmdldE1lcmdlZFRyYWl0cygpLm1lZGlhVHlwZTtcbiAgICAgICAgaWYgKG5zLmlzU3RyaW5nU2NoZW1hKCkgJiYgdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiICYmIG1lZGlhVHlwZSkge1xuICAgICAgICAgICAgY29uc3QgaXNKc29uID0gbWVkaWFUeXBlID09PSBcImFwcGxpY2F0aW9uL2pzb25cIiB8fCBtZWRpYVR5cGUuZW5kc1dpdGgoXCIranNvblwiKTtcbiAgICAgICAgICAgIGlmIChpc0pzb24pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gTGF6eUpzb25TdHJpbmcuZnJvbSh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzVGltZXN0YW1wU2NoZW1hKCkgJiYgdmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc3QgZm9ybWF0ID0gZGV0ZXJtaW5lVGltZXN0YW1wRm9ybWF0KG5zLCB0aGlzLnNldHRpbmdzKTtcbiAgICAgICAgICAgIHN3aXRjaCAoZm9ybWF0KSB7XG4gICAgICAgICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcGFyc2VSZmMzMzM5RGF0ZVRpbWVXaXRoT2Zmc2V0KHZhbHVlKTtcbiAgICAgICAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZVJmYzcyMzFEYXRlVGltZSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgY2FzZSA3OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcGFyc2VFcG9jaFRpbWVzdGFtcCh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKFwiTWlzc2luZyB0aW1lc3RhbXAgZm9ybWF0LCBwYXJzaW5nIHZhbHVlIHdpdGggRGF0ZSBjb25zdHJ1Y3RvcjpcIiwgdmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IERhdGUodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChucy5pc0JpZ0ludGVnZXJTY2hlbWEoKSAmJiAodHlwZW9mIHZhbHVlID09PSBcIm51bWJlclwiIHx8IHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikpIHtcbiAgICAgICAgICAgIHJldHVybiBCaWdJbnQodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChucy5pc0JpZ0RlY2ltYWxTY2hlbWEoKSAmJiB2YWx1ZSAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIE51bWVyaWNWYWx1ZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHVudHlwZWQgPSB2YWx1ZTtcbiAgICAgICAgICAgIGlmICh1bnR5cGVkLnR5cGUgPT09IFwiYmlnRGVjaW1hbFwiICYmIFwic3RyaW5nXCIgaW4gdW50eXBlZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgTnVtZXJpY1ZhbHVlKHVudHlwZWQuc3RyaW5nLCB1bnR5cGVkLnR5cGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG5ldyBOdW1lcmljVmFsdWUoU3RyaW5nKHZhbHVlKSwgXCJiaWdEZWNpbWFsXCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChucy5pc051bWVyaWNTY2hlbWEoKSAmJiB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIHN3aXRjaCAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIFwiSW5maW5pdHlcIjpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEluZmluaXR5O1xuICAgICAgICAgICAgICAgIGNhc2UgXCItSW5maW5pdHlcIjpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1JbmZpbml0eTtcbiAgICAgICAgICAgICAgICBjYXNlIFwiTmFOXCI6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBOYU47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzRG9jdW1lbnRTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKGlzT2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3V0ID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyBbXSA6IHt9O1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodiBpbnN0YW5jZW9mIE51bWVyaWNWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3V0W2tdID0gdjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG91dFtrXSA9IHRoaXMuX3JlYWQobnMsIHYpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBvdXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3RydWN0dXJlZENsb25lKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IE51bWVyaWNWYWx1ZSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2VyZGVcIjtcbmNvbnN0IE5VTUVSSUNfQ09OVFJPTF9DSEFSID0gU3RyaW5nLmZyb21DaGFyQ29kZSg5MjUpO1xuZXhwb3J0IGNsYXNzIEpzb25SZXBsYWNlciB7XG4gICAgdmFsdWVzID0gbmV3IE1hcCgpO1xuICAgIGNvdW50ZXIgPSAwO1xuICAgIHN0YWdlID0gMDtcbiAgICBjcmVhdGVSZXBsYWNlcigpIHtcbiAgICAgICAgaWYgKHRoaXMuc3RhZ2UgPT09IDEpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkBhd3Mtc2RrL2NvcmUvcHJvdG9jb2xzIC0gSnNvblJlcGxhY2VyIGFscmVhZHkgY3JlYXRlZC5cIik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuc3RhZ2UgPT09IDIpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkBhd3Mtc2RrL2NvcmUvcHJvdG9jb2xzIC0gSnNvblJlcGxhY2VyIGV4aGF1c3RlZC5cIik7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zdGFnZSA9IDE7XG4gICAgICAgIHJldHVybiAoa2V5LCB2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgTnVtZXJpY1ZhbHVlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdiA9IGAke05VTUVSSUNfQ09OVFJPTF9DSEFSICsgXCJudlwiICsgdGhpcy5jb3VudGVyKyt9X2AgKyB2YWx1ZS5zdHJpbmc7XG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZXMuc2V0KGBcIiR7dn1cImAsIHZhbHVlLnN0cmluZyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHY7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcImJpZ2ludFwiKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcyA9IHZhbHVlLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgdiA9IGAke05VTUVSSUNfQ09OVFJPTF9DSEFSICsgXCJiXCIgKyB0aGlzLmNvdW50ZXIrK31fYCArIHM7XG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZXMuc2V0KGBcIiR7dn1cImAsIHMpO1xuICAgICAgICAgICAgICAgIHJldHVybiB2O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9O1xuICAgIH1cbiAgICByZXBsYWNlSW5Kc29uKGpzb24pIHtcbiAgICAgICAgaWYgKHRoaXMuc3RhZ2UgPT09IDApIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkBhd3Mtc2RrL2NvcmUvcHJvdG9jb2xzIC0gSnNvblJlcGxhY2VyIG5vdCBjcmVhdGVkIHlldC5cIik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuc3RhZ2UgPT09IDIpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkBhd3Mtc2RrL2NvcmUvcHJvdG9jb2xzIC0gSnNvblJlcGxhY2VyIGV4aGF1c3RlZC5cIik7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zdGFnZSA9IDI7XG4gICAgICAgIGlmICh0aGlzLmNvdW50ZXIgPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBqc29uO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIHRoaXMudmFsdWVzKSB7XG4gICAgICAgICAgICBqc29uID0ganNvbi5yZXBsYWNlKGtleSwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBqc29uO1xuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBkZXRlcm1pbmVUaW1lc3RhbXBGb3JtYXQgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3Byb3RvY29sc1wiO1xuaW1wb3J0IHsgTm9ybWFsaXplZFNjaGVtYSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2NoZW1hXCI7XG5pbXBvcnQgeyBkYXRlVG9VdGNTdHJpbmcsIGdlbmVyYXRlSWRlbXBvdGVuY3lUb2tlbiwgTGF6eUpzb25TdHJpbmcsIE51bWVyaWNWYWx1ZSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2VyZGVcIjtcbmltcG9ydCB7IHRvQmFzZTY0IH0gZnJvbSBcIkBzbWl0aHkvdXRpbC1iYXNlNjRcIjtcbmltcG9ydCB7IFNlcmRlQ29udGV4dENvbmZpZyB9IGZyb20gXCIuLi9Db25maWd1cmFibGVTZXJkZUNvbnRleHRcIjtcbmltcG9ydCB7IHNlcmlhbGl6aW5nU3RydWN0SXRlcmF0b3IgfSBmcm9tIFwiLi4vc3RydWN0SXRlcmF0b3JcIjtcbmltcG9ydCB7IEpzb25SZXBsYWNlciB9IGZyb20gXCIuL2pzb25SZXBsYWNlclwiO1xuZXhwb3J0IGNsYXNzIEpzb25TaGFwZVNlcmlhbGl6ZXIgZXh0ZW5kcyBTZXJkZUNvbnRleHRDb25maWcge1xuICAgIHNldHRpbmdzO1xuICAgIGJ1ZmZlcjtcbiAgICB1c2VSZXBsYWNlciA9IGZhbHNlO1xuICAgIHJvb3RTY2hlbWE7XG4gICAgY29uc3RydWN0b3Ioc2V0dGluZ3MpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5zZXR0aW5ncyA9IHNldHRpbmdzO1xuICAgIH1cbiAgICB3cml0ZShzY2hlbWEsIHZhbHVlKSB7XG4gICAgICAgIHRoaXMucm9vdFNjaGVtYSA9IE5vcm1hbGl6ZWRTY2hlbWEub2Yoc2NoZW1hKTtcbiAgICAgICAgdGhpcy5idWZmZXIgPSB0aGlzLl93cml0ZSh0aGlzLnJvb3RTY2hlbWEsIHZhbHVlKTtcbiAgICB9XG4gICAgd3JpdGVEaXNjcmltaW5hdGVkRG9jdW1lbnQoc2NoZW1hLCB2YWx1ZSkge1xuICAgICAgICB0aGlzLndyaXRlKHNjaGVtYSwgdmFsdWUpO1xuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYnVmZmVyID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICB0aGlzLmJ1ZmZlci5fX3R5cGUgPSBOb3JtYWxpemVkU2NoZW1hLm9mKHNjaGVtYSkuZ2V0TmFtZSh0cnVlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmbHVzaCgpIHtcbiAgICAgICAgY29uc3QgeyByb290U2NoZW1hLCB1c2VSZXBsYWNlciB9ID0gdGhpcztcbiAgICAgICAgdGhpcy5yb290U2NoZW1hID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLnVzZVJlcGxhY2VyID0gZmFsc2U7XG4gICAgICAgIGlmIChyb290U2NoZW1hPy5pc1N0cnVjdFNjaGVtYSgpIHx8IHJvb3RTY2hlbWE/LmlzRG9jdW1lbnRTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKCF1c2VSZXBsYWNlcikge1xuICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh0aGlzLmJ1ZmZlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCByZXBsYWNlciA9IG5ldyBKc29uUmVwbGFjZXIoKTtcbiAgICAgICAgICAgIHJldHVybiByZXBsYWNlci5yZXBsYWNlSW5Kc29uKEpTT04uc3RyaW5naWZ5KHRoaXMuYnVmZmVyLCByZXBsYWNlci5jcmVhdGVSZXBsYWNlcigpLCAwKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuYnVmZmVyO1xuICAgIH1cbiAgICBfd3JpdGUoc2NoZW1hLCB2YWx1ZSwgY29udGFpbmVyKSB7XG4gICAgICAgIGNvbnN0IGlzT2JqZWN0ID0gdmFsdWUgIT09IG51bGwgJiYgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiO1xuICAgICAgICBjb25zdCBucyA9IE5vcm1hbGl6ZWRTY2hlbWEub2Yoc2NoZW1hKTtcbiAgICAgICAgaWYgKGlzT2JqZWN0KSB7XG4gICAgICAgICAgICBpZiAobnMuaXNTdHJ1Y3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG91dCA9IHt9O1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgW21lbWJlck5hbWUsIG1lbWJlclNjaGVtYV0gb2Ygc2VyaWFsaXppbmdTdHJ1Y3RJdGVyYXRvcihucywgdmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNlcmlhbGl6YWJsZVZhbHVlID0gdGhpcy5fd3JpdGUobWVtYmVyU2NoZW1hLCB2YWx1ZVttZW1iZXJOYW1lXSwgbnMpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoc2VyaWFsaXphYmxlVmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QganNvbk5hbWUgPSBtZW1iZXJTY2hlbWEuZ2V0TWVyZ2VkVHJhaXRzKCkuanNvbk5hbWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXRLZXkgPSB0aGlzLnNldHRpbmdzLmpzb25OYW1lID8ganNvbk5hbWUgPz8gbWVtYmVyTmFtZSA6IG1lbWJlck5hbWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBvdXRbdGFyZ2V0S2V5XSA9IHNlcmlhbGl6YWJsZVZhbHVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBvdXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgbnMuaXNMaXN0U2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBsaXN0TWVtYmVyID0gbnMuZ2V0VmFsdWVTY2hlbWEoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBvdXQgPSBbXTtcbiAgICAgICAgICAgICAgICBjb25zdCBzcGFyc2UgPSAhIW5zLmdldE1lcmdlZFRyYWl0cygpLnNwYXJzZTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNwYXJzZSB8fCBpdGVtICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG91dC5wdXNoKHRoaXMuX3dyaXRlKGxpc3RNZW1iZXIsIGl0ZW0pKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gb3V0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG5zLmlzTWFwU2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBtYXBNZW1iZXIgPSBucy5nZXRWYWx1ZVNjaGVtYSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IG91dCA9IHt9O1xuICAgICAgICAgICAgICAgIGNvbnN0IHNwYXJzZSA9ICEhbnMuZ2V0TWVyZ2VkVHJhaXRzKCkuc3BhcnNlO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgW19rLCBfdl0gb2YgT2JqZWN0LmVudHJpZXModmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzcGFyc2UgfHwgX3YgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3V0W19rXSA9IHRoaXMuX3dyaXRlKG1hcE1lbWJlciwgX3YpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBvdXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBVaW50OEFycmF5ICYmIChucy5pc0Jsb2JTY2hlbWEoKSB8fCBucy5pc0RvY3VtZW50U2NoZW1hKCkpKSB7XG4gICAgICAgICAgICAgICAgaWYgKG5zID09PSB0aGlzLnJvb3RTY2hlbWEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gKHRoaXMuc2VyZGVDb250ZXh0Py5iYXNlNjRFbmNvZGVyID8/IHRvQmFzZTY0KSh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlICYmIChucy5pc1RpbWVzdGFtcFNjaGVtYSgpIHx8IG5zLmlzRG9jdW1lbnRTY2hlbWEoKSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmb3JtYXQgPSBkZXRlcm1pbmVUaW1lc3RhbXBGb3JtYXQobnMsIHRoaXMuc2V0dGluZ3MpO1xuICAgICAgICAgICAgICAgIHN3aXRjaCAoZm9ybWF0KSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZS50b0lTT1N0cmluZygpLnJlcGxhY2UoXCIuMDAwWlwiLCBcIlpcIik7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBkYXRlVG9VdGNTdHJpbmcodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDc6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUuZ2V0VGltZSgpIC8gMTAwMDtcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihcIk1pc3NpbmcgdGltZXN0YW1wIGZvcm1hdCwgdXNpbmcgZXBvY2ggc2Vjb25kc1wiLCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUuZ2V0VGltZSgpIC8gMTAwMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBOdW1lcmljVmFsdWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVzZVJlcGxhY2VyID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodmFsdWUgPT09IG51bGwgJiYgY29udGFpbmVyPy5pc1N0cnVjdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICByZXR1cm4gdm9pZCAwO1xuICAgICAgICB9XG4gICAgICAgIGlmIChucy5pc1N0cmluZ1NjaGVtYSgpKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcInVuZGVmaW5lZFwiICYmIG5zLmlzSWRlbXBvdGVuY3lUb2tlbigpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGdlbmVyYXRlSWRlbXBvdGVuY3lUb2tlbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgbWVkaWFUeXBlID0gbnMuZ2V0TWVyZ2VkVHJhaXRzKCkubWVkaWFUeXBlO1xuICAgICAgICAgICAgaWYgKHZhbHVlICE9IG51bGwgJiYgbWVkaWFUeXBlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNKc29uID0gbWVkaWFUeXBlID09PSBcImFwcGxpY2F0aW9uL2pzb25cIiB8fCBtZWRpYVR5cGUuZW5kc1dpdGgoXCIranNvblwiKTtcbiAgICAgICAgICAgICAgICBpZiAoaXNKc29uKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBMYXp5SnNvblN0cmluZy5mcm9tKHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJudW1iZXJcIiAmJiBucy5pc051bWVyaWNTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKE1hdGguYWJzKHZhbHVlKSA9PT0gSW5maW5pdHkgfHwgaXNOYU4odmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiAmJiBucy5pc0Jsb2JTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKG5zID09PSB0aGlzLnJvb3RTY2hlbWEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gKHRoaXMuc2VyZGVDb250ZXh0Py5iYXNlNjRFbmNvZGVyID8/IHRvQmFzZTY0KSh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJiaWdpbnRcIikge1xuICAgICAgICAgICAgdGhpcy51c2VSZXBsYWNlciA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzRG9jdW1lbnRTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKGlzT2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3V0ID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyBbXSA6IHt9O1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodiBpbnN0YW5jZW9mIE51bWVyaWNWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51c2VSZXBsYWNlciA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBvdXRba10gPSB2O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3V0W2tdID0gdGhpcy5fd3JpdGUobnMsIHYpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBvdXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3RydWN0dXJlZENsb25lKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IFNlcmRlQ29udGV4dENvbmZpZyB9IGZyb20gXCIuLi9Db25maWd1cmFibGVTZXJkZUNvbnRleHRcIjtcbmltcG9ydCB7IEpzb25TaGFwZURlc2VyaWFsaXplciB9IGZyb20gXCIuL0pzb25TaGFwZURlc2VyaWFsaXplclwiO1xuaW1wb3J0IHsgSnNvblNoYXBlU2VyaWFsaXplciB9IGZyb20gXCIuL0pzb25TaGFwZVNlcmlhbGl6ZXJcIjtcbmV4cG9ydCBjbGFzcyBKc29uQ29kZWMgZXh0ZW5kcyBTZXJkZUNvbnRleHRDb25maWcge1xuICAgIHNldHRpbmdzO1xuICAgIGNvbnN0cnVjdG9yKHNldHRpbmdzKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuc2V0dGluZ3MgPSBzZXR0aW5ncztcbiAgICB9XG4gICAgY3JlYXRlU2VyaWFsaXplcigpIHtcbiAgICAgICAgY29uc3Qgc2VyaWFsaXplciA9IG5ldyBKc29uU2hhcGVTZXJpYWxpemVyKHRoaXMuc2V0dGluZ3MpO1xuICAgICAgICBzZXJpYWxpemVyLnNldFNlcmRlQ29udGV4dCh0aGlzLnNlcmRlQ29udGV4dCk7XG4gICAgICAgIHJldHVybiBzZXJpYWxpemVyO1xuICAgIH1cbiAgICBjcmVhdGVEZXNlcmlhbGl6ZXIoKSB7XG4gICAgICAgIGNvbnN0IGRlc2VyaWFsaXplciA9IG5ldyBKc29uU2hhcGVEZXNlcmlhbGl6ZXIodGhpcy5zZXR0aW5ncyk7XG4gICAgICAgIGRlc2VyaWFsaXplci5zZXRTZXJkZUNvbnRleHQodGhpcy5zZXJkZUNvbnRleHQpO1xuICAgICAgICByZXR1cm4gZGVzZXJpYWxpemVyO1xuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBScGNQcm90b2NvbCB9IGZyb20gXCJAc21pdGh5L2NvcmUvcHJvdG9jb2xzXCI7XG5pbXBvcnQgeyBkZXJlZiwgTm9ybWFsaXplZFNjaGVtYSwgVHlwZVJlZ2lzdHJ5IH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IFByb3RvY29sTGliIH0gZnJvbSBcIi4uL1Byb3RvY29sTGliXCI7XG5pbXBvcnQgeyBKc29uQ29kZWMgfSBmcm9tIFwiLi9Kc29uQ29kZWNcIjtcbmltcG9ydCB7IGxvYWRSZXN0SnNvbkVycm9yQ29kZSB9IGZyb20gXCIuL3BhcnNlSnNvbkJvZHlcIjtcbmV4cG9ydCBjbGFzcyBBd3NKc29uUnBjUHJvdG9jb2wgZXh0ZW5kcyBScGNQcm90b2NvbCB7XG4gICAgc2VyaWFsaXplcjtcbiAgICBkZXNlcmlhbGl6ZXI7XG4gICAgc2VydmljZVRhcmdldDtcbiAgICBjb2RlYztcbiAgICBtaXhpbjtcbiAgICBhd3NRdWVyeUNvbXBhdGlibGU7XG4gICAgY29uc3RydWN0b3IoeyBkZWZhdWx0TmFtZXNwYWNlLCBzZXJ2aWNlVGFyZ2V0LCBhd3NRdWVyeUNvbXBhdGlibGUsIGpzb25Db2RlYywgfSkge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBkZWZhdWx0TmFtZXNwYWNlLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zZXJ2aWNlVGFyZ2V0ID0gc2VydmljZVRhcmdldDtcbiAgICAgICAgdGhpcy5jb2RlYyA9XG4gICAgICAgICAgICBqc29uQ29kZWMgPz9cbiAgICAgICAgICAgICAgICBuZXcgSnNvbkNvZGVjKHtcbiAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wRm9ybWF0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB1c2VUcmFpdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IDcsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGpzb25OYW1lOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zZXJpYWxpemVyID0gdGhpcy5jb2RlYy5jcmVhdGVTZXJpYWxpemVyKCk7XG4gICAgICAgIHRoaXMuZGVzZXJpYWxpemVyID0gdGhpcy5jb2RlYy5jcmVhdGVEZXNlcmlhbGl6ZXIoKTtcbiAgICAgICAgdGhpcy5hd3NRdWVyeUNvbXBhdGlibGUgPSAhIWF3c1F1ZXJ5Q29tcGF0aWJsZTtcbiAgICAgICAgdGhpcy5taXhpbiA9IG5ldyBQcm90b2NvbExpYih0aGlzLmF3c1F1ZXJ5Q29tcGF0aWJsZSk7XG4gICAgfVxuICAgIGFzeW5jIHNlcmlhbGl6ZVJlcXVlc3Qob3BlcmF0aW9uU2NoZW1hLCBpbnB1dCwgY29udGV4dCkge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gYXdhaXQgc3VwZXIuc2VyaWFsaXplUmVxdWVzdChvcGVyYXRpb25TY2hlbWEsIGlucHV0LCBjb250ZXh0KTtcbiAgICAgICAgaWYgKCFyZXF1ZXN0LnBhdGguZW5kc1dpdGgoXCIvXCIpKSB7XG4gICAgICAgICAgICByZXF1ZXN0LnBhdGggKz0gXCIvXCI7XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbihyZXF1ZXN0LmhlYWRlcnMsIHtcbiAgICAgICAgICAgIFwiY29udGVudC10eXBlXCI6IGBhcHBsaWNhdGlvbi94LWFtei1qc29uLSR7dGhpcy5nZXRKc29uUnBjVmVyc2lvbigpfWAsXG4gICAgICAgICAgICBcIngtYW16LXRhcmdldFwiOiBgJHt0aGlzLnNlcnZpY2VUYXJnZXR9LiR7b3BlcmF0aW9uU2NoZW1hLm5hbWV9YCxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmICh0aGlzLmF3c1F1ZXJ5Q29tcGF0aWJsZSkge1xuICAgICAgICAgICAgcmVxdWVzdC5oZWFkZXJzW1wieC1hbXpuLXF1ZXJ5LW1vZGVcIl0gPSBcInRydWVcIjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGVyZWYob3BlcmF0aW9uU2NoZW1hLmlucHV0KSA9PT0gXCJ1bml0XCIgfHwgIXJlcXVlc3QuYm9keSkge1xuICAgICAgICAgICAgcmVxdWVzdC5ib2R5ID0gXCJ7fVwiO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXF1ZXN0O1xuICAgIH1cbiAgICBnZXRQYXlsb2FkQ29kZWMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvZGVjO1xuICAgIH1cbiAgICBhc3luYyBoYW5kbGVFcnJvcihvcGVyYXRpb25TY2hlbWEsIGNvbnRleHQsIHJlc3BvbnNlLCBkYXRhT2JqZWN0LCBtZXRhZGF0YSkge1xuICAgICAgICBpZiAodGhpcy5hd3NRdWVyeUNvbXBhdGlibGUpIHtcbiAgICAgICAgICAgIHRoaXMubWl4aW4uc2V0UXVlcnlDb21wYXRFcnJvcihkYXRhT2JqZWN0LCByZXNwb25zZSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZXJyb3JJZGVudGlmaWVyID0gbG9hZFJlc3RKc29uRXJyb3JDb2RlKHJlc3BvbnNlLCBkYXRhT2JqZWN0KSA/PyBcIlVua25vd25cIjtcbiAgICAgICAgY29uc3QgeyBlcnJvclNjaGVtYSwgZXJyb3JNZXRhZGF0YSB9ID0gYXdhaXQgdGhpcy5taXhpbi5nZXRFcnJvclNjaGVtYU9yVGhyb3dCYXNlRXhjZXB0aW9uKGVycm9ySWRlbnRpZmllciwgdGhpcy5vcHRpb25zLmRlZmF1bHROYW1lc3BhY2UsIHJlc3BvbnNlLCBkYXRhT2JqZWN0LCBtZXRhZGF0YSwgdGhpcy5hd3NRdWVyeUNvbXBhdGlibGUgPyB0aGlzLm1peGluLmZpbmRRdWVyeUNvbXBhdGlibGVFcnJvciA6IHVuZGVmaW5lZCk7XG4gICAgICAgIGNvbnN0IG5zID0gTm9ybWFsaXplZFNjaGVtYS5vZihlcnJvclNjaGVtYSk7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBkYXRhT2JqZWN0Lm1lc3NhZ2UgPz8gZGF0YU9iamVjdC5NZXNzYWdlID8/IFwiVW5rbm93blwiO1xuICAgICAgICBjb25zdCBFcnJvckN0b3IgPSBUeXBlUmVnaXN0cnkuZm9yKGVycm9yU2NoZW1hWzFdKS5nZXRFcnJvckN0b3IoZXJyb3JTY2hlbWEpID8/IEVycm9yO1xuICAgICAgICBjb25zdCBleGNlcHRpb24gPSBuZXcgRXJyb3JDdG9yKG1lc3NhZ2UpO1xuICAgICAgICBjb25zdCBvdXRwdXQgPSB7fTtcbiAgICAgICAgZm9yIChjb25zdCBbbmFtZSwgbWVtYmVyXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICBpZiAoZGF0YU9iamVjdFtuYW1lXSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgb3V0cHV0W25hbWVdID0gdGhpcy5jb2RlYy5jcmVhdGVEZXNlcmlhbGl6ZXIoKS5yZWFkT2JqZWN0KG1lbWJlciwgZGF0YU9iamVjdFtuYW1lXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuYXdzUXVlcnlDb21wYXRpYmxlKSB7XG4gICAgICAgICAgICB0aGlzLm1peGluLnF1ZXJ5Q29tcGF0T3V0cHV0KGRhdGFPYmplY3QsIG91dHB1dCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgdGhpcy5taXhpbi5kZWNvcmF0ZVNlcnZpY2VFeGNlcHRpb24oT2JqZWN0LmFzc2lnbihleGNlcHRpb24sIGVycm9yTWV0YWRhdGEsIHtcbiAgICAgICAgICAgICRmYXVsdDogbnMuZ2V0TWVyZ2VkVHJhaXRzKCkuZXJyb3IsXG4gICAgICAgICAgICBtZXNzYWdlLFxuICAgICAgICB9LCBvdXRwdXQpLCBkYXRhT2JqZWN0KTtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgQXdzSnNvblJwY1Byb3RvY29sIH0gZnJvbSBcIi4vQXdzSnNvblJwY1Byb3RvY29sXCI7XG5leHBvcnQgY2xhc3MgQXdzSnNvbjFfMFByb3RvY29sIGV4dGVuZHMgQXdzSnNvblJwY1Byb3RvY29sIHtcbiAgICBjb25zdHJ1Y3Rvcih7IGRlZmF1bHROYW1lc3BhY2UsIHNlcnZpY2VUYXJnZXQsIGF3c1F1ZXJ5Q29tcGF0aWJsZSwganNvbkNvZGVjLCB9KSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIGRlZmF1bHROYW1lc3BhY2UsXG4gICAgICAgICAgICBzZXJ2aWNlVGFyZ2V0LFxuICAgICAgICAgICAgYXdzUXVlcnlDb21wYXRpYmxlLFxuICAgICAgICAgICAganNvbkNvZGVjLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgZ2V0U2hhcGVJZCgpIHtcbiAgICAgICAgcmV0dXJuIFwiYXdzLnByb3RvY29scyNhd3NKc29uMV8wXCI7XG4gICAgfVxuICAgIGdldEpzb25ScGNWZXJzaW9uKCkge1xuICAgICAgICByZXR1cm4gXCIxLjBcIjtcbiAgICB9XG4gICAgZ2V0RGVmYXVsdENvbnRlbnRUeXBlKCkge1xuICAgICAgICByZXR1cm4gXCJhcHBsaWNhdGlvbi94LWFtei1qc29uLTEuMFwiO1xuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBBd3NKc29uUnBjUHJvdG9jb2wgfSBmcm9tIFwiLi9Bd3NKc29uUnBjUHJvdG9jb2xcIjtcbmV4cG9ydCBjbGFzcyBBd3NKc29uMV8xUHJvdG9jb2wgZXh0ZW5kcyBBd3NKc29uUnBjUHJvdG9jb2wge1xuICAgIGNvbnN0cnVjdG9yKHsgZGVmYXVsdE5hbWVzcGFjZSwgc2VydmljZVRhcmdldCwgYXdzUXVlcnlDb21wYXRpYmxlLCBqc29uQ29kZWMsIH0pIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgZGVmYXVsdE5hbWVzcGFjZSxcbiAgICAgICAgICAgIHNlcnZpY2VUYXJnZXQsXG4gICAgICAgICAgICBhd3NRdWVyeUNvbXBhdGlibGUsXG4gICAgICAgICAgICBqc29uQ29kZWMsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBnZXRTaGFwZUlkKCkge1xuICAgICAgICByZXR1cm4gXCJhd3MucHJvdG9jb2xzI2F3c0pzb24xXzFcIjtcbiAgICB9XG4gICAgZ2V0SnNvblJwY1ZlcnNpb24oKSB7XG4gICAgICAgIHJldHVybiBcIjEuMVwiO1xuICAgIH1cbiAgICBnZXREZWZhdWx0Q29udGVudFR5cGUoKSB7XG4gICAgICAgIHJldHVybiBcImFwcGxpY2F0aW9uL3gtYW16LWpzb24tMS4xXCI7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IEh0dHBCaW5kaW5nUHJvdG9jb2wsIEh0dHBJbnRlcmNlcHRpbmdTaGFwZURlc2VyaWFsaXplciwgSHR0cEludGVyY2VwdGluZ1NoYXBlU2VyaWFsaXplciwgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3Byb3RvY29sc1wiO1xuaW1wb3J0IHsgTm9ybWFsaXplZFNjaGVtYSwgVHlwZVJlZ2lzdHJ5IH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IFByb3RvY29sTGliIH0gZnJvbSBcIi4uL1Byb3RvY29sTGliXCI7XG5pbXBvcnQgeyBKc29uQ29kZWMgfSBmcm9tIFwiLi9Kc29uQ29kZWNcIjtcbmltcG9ydCB7IGxvYWRSZXN0SnNvbkVycm9yQ29kZSB9IGZyb20gXCIuL3BhcnNlSnNvbkJvZHlcIjtcbmV4cG9ydCBjbGFzcyBBd3NSZXN0SnNvblByb3RvY29sIGV4dGVuZHMgSHR0cEJpbmRpbmdQcm90b2NvbCB7XG4gICAgc2VyaWFsaXplcjtcbiAgICBkZXNlcmlhbGl6ZXI7XG4gICAgY29kZWM7XG4gICAgbWl4aW4gPSBuZXcgUHJvdG9jb2xMaWIoKTtcbiAgICBjb25zdHJ1Y3Rvcih7IGRlZmF1bHROYW1lc3BhY2UgfSkge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBkZWZhdWx0TmFtZXNwYWNlLFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3Qgc2V0dGluZ3MgPSB7XG4gICAgICAgICAgICB0aW1lc3RhbXBGb3JtYXQ6IHtcbiAgICAgICAgICAgICAgICB1c2VUcmFpdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiA3LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGh0dHBCaW5kaW5nczogdHJ1ZSxcbiAgICAgICAgICAgIGpzb25OYW1lOiB0cnVlLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmNvZGVjID0gbmV3IEpzb25Db2RlYyhzZXR0aW5ncyk7XG4gICAgICAgIHRoaXMuc2VyaWFsaXplciA9IG5ldyBIdHRwSW50ZXJjZXB0aW5nU2hhcGVTZXJpYWxpemVyKHRoaXMuY29kZWMuY3JlYXRlU2VyaWFsaXplcigpLCBzZXR0aW5ncyk7XG4gICAgICAgIHRoaXMuZGVzZXJpYWxpemVyID0gbmV3IEh0dHBJbnRlcmNlcHRpbmdTaGFwZURlc2VyaWFsaXplcih0aGlzLmNvZGVjLmNyZWF0ZURlc2VyaWFsaXplcigpLCBzZXR0aW5ncyk7XG4gICAgfVxuICAgIGdldFNoYXBlSWQoKSB7XG4gICAgICAgIHJldHVybiBcImF3cy5wcm90b2NvbHMjcmVzdEpzb24xXCI7XG4gICAgfVxuICAgIGdldFBheWxvYWRDb2RlYygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29kZWM7XG4gICAgfVxuICAgIHNldFNlcmRlQ29udGV4dChzZXJkZUNvbnRleHQpIHtcbiAgICAgICAgdGhpcy5jb2RlYy5zZXRTZXJkZUNvbnRleHQoc2VyZGVDb250ZXh0KTtcbiAgICAgICAgc3VwZXIuc2V0U2VyZGVDb250ZXh0KHNlcmRlQ29udGV4dCk7XG4gICAgfVxuICAgIGFzeW5jIHNlcmlhbGl6ZVJlcXVlc3Qob3BlcmF0aW9uU2NoZW1hLCBpbnB1dCwgY29udGV4dCkge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gYXdhaXQgc3VwZXIuc2VyaWFsaXplUmVxdWVzdChvcGVyYXRpb25TY2hlbWEsIGlucHV0LCBjb250ZXh0KTtcbiAgICAgICAgY29uc3QgaW5wdXRTY2hlbWEgPSBOb3JtYWxpemVkU2NoZW1hLm9mKG9wZXJhdGlvblNjaGVtYS5pbnB1dCk7XG4gICAgICAgIGlmICghcmVxdWVzdC5oZWFkZXJzW1wiY29udGVudC10eXBlXCJdKSB7XG4gICAgICAgICAgICBjb25zdCBjb250ZW50VHlwZSA9IHRoaXMubWl4aW4ucmVzb2x2ZVJlc3RDb250ZW50VHlwZSh0aGlzLmdldERlZmF1bHRDb250ZW50VHlwZSgpLCBpbnB1dFNjaGVtYSk7XG4gICAgICAgICAgICBpZiAoY29udGVudFR5cGUpIHtcbiAgICAgICAgICAgICAgICByZXF1ZXN0LmhlYWRlcnNbXCJjb250ZW50LXR5cGVcIl0gPSBjb250ZW50VHlwZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAocmVxdWVzdC5ib2R5ID09IG51bGwgJiYgcmVxdWVzdC5oZWFkZXJzW1wiY29udGVudC10eXBlXCJdID09PSB0aGlzLmdldERlZmF1bHRDb250ZW50VHlwZSgpKSB7XG4gICAgICAgICAgICByZXF1ZXN0LmJvZHkgPSBcInt9XCI7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlcXVlc3Q7XG4gICAgfVxuICAgIGFzeW5jIGRlc2VyaWFsaXplUmVzcG9uc2Uob3BlcmF0aW9uU2NoZW1hLCBjb250ZXh0LCByZXNwb25zZSkge1xuICAgICAgICBjb25zdCBvdXRwdXQgPSBhd2FpdCBzdXBlci5kZXNlcmlhbGl6ZVJlc3BvbnNlKG9wZXJhdGlvblNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UpO1xuICAgICAgICBjb25zdCBvdXRwdXRTY2hlbWEgPSBOb3JtYWxpemVkU2NoZW1hLm9mKG9wZXJhdGlvblNjaGVtYS5vdXRwdXQpO1xuICAgICAgICBmb3IgKGNvbnN0IFtuYW1lLCBtZW1iZXJdIG9mIG91dHB1dFNjaGVtYS5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICBpZiAobWVtYmVyLmdldE1lbWJlclRyYWl0cygpLmh0dHBQYXlsb2FkICYmICEobmFtZSBpbiBvdXRwdXQpKSB7XG4gICAgICAgICAgICAgICAgb3V0cHV0W25hbWVdID0gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb3V0cHV0O1xuICAgIH1cbiAgICBhc3luYyBoYW5kbGVFcnJvcihvcGVyYXRpb25TY2hlbWEsIGNvbnRleHQsIHJlc3BvbnNlLCBkYXRhT2JqZWN0LCBtZXRhZGF0YSkge1xuICAgICAgICBjb25zdCBlcnJvcklkZW50aWZpZXIgPSBsb2FkUmVzdEpzb25FcnJvckNvZGUocmVzcG9uc2UsIGRhdGFPYmplY3QpID8/IFwiVW5rbm93blwiO1xuICAgICAgICBjb25zdCB7IGVycm9yU2NoZW1hLCBlcnJvck1ldGFkYXRhIH0gPSBhd2FpdCB0aGlzLm1peGluLmdldEVycm9yU2NoZW1hT3JUaHJvd0Jhc2VFeGNlcHRpb24oZXJyb3JJZGVudGlmaWVyLCB0aGlzLm9wdGlvbnMuZGVmYXVsdE5hbWVzcGFjZSwgcmVzcG9uc2UsIGRhdGFPYmplY3QsIG1ldGFkYXRhKTtcbiAgICAgICAgY29uc3QgbnMgPSBOb3JtYWxpemVkU2NoZW1hLm9mKGVycm9yU2NoZW1hKTtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGRhdGFPYmplY3QubWVzc2FnZSA/PyBkYXRhT2JqZWN0Lk1lc3NhZ2UgPz8gXCJVbmtub3duXCI7XG4gICAgICAgIGNvbnN0IEVycm9yQ3RvciA9IFR5cGVSZWdpc3RyeS5mb3IoZXJyb3JTY2hlbWFbMV0pLmdldEVycm9yQ3RvcihlcnJvclNjaGVtYSkgPz8gRXJyb3I7XG4gICAgICAgIGNvbnN0IGV4Y2VwdGlvbiA9IG5ldyBFcnJvckN0b3IobWVzc2FnZSk7XG4gICAgICAgIGF3YWl0IHRoaXMuZGVzZXJpYWxpemVIdHRwTWVzc2FnZShlcnJvclNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UsIGRhdGFPYmplY3QpO1xuICAgICAgICBjb25zdCBvdXRwdXQgPSB7fTtcbiAgICAgICAgZm9yIChjb25zdCBbbmFtZSwgbWVtYmVyXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBtZW1iZXIuZ2V0TWVyZ2VkVHJhaXRzKCkuanNvbk5hbWUgPz8gbmFtZTtcbiAgICAgICAgICAgIG91dHB1dFtuYW1lXSA9IHRoaXMuY29kZWMuY3JlYXRlRGVzZXJpYWxpemVyKCkucmVhZE9iamVjdChtZW1iZXIsIGRhdGFPYmplY3RbdGFyZ2V0XSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgdGhpcy5taXhpbi5kZWNvcmF0ZVNlcnZpY2VFeGNlcHRpb24oT2JqZWN0LmFzc2lnbihleGNlcHRpb24sIGVycm9yTWV0YWRhdGEsIHtcbiAgICAgICAgICAgICRmYXVsdDogbnMuZ2V0TWVyZ2VkVHJhaXRzKCkuZXJyb3IsXG4gICAgICAgICAgICBtZXNzYWdlLFxuICAgICAgICB9LCBvdXRwdXQpLCBkYXRhT2JqZWN0KTtcbiAgICB9XG4gICAgZ2V0RGVmYXVsdENvbnRlbnRUeXBlKCkge1xuICAgICAgICByZXR1cm4gXCJhcHBsaWNhdGlvbi9qc29uXCI7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IGV4cGVjdFVuaW9uIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuZXhwb3J0IGNvbnN0IGF3c0V4cGVjdFVuaW9uID0gKHZhbHVlKSA9PiB7XG4gICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIiAmJiBcIl9fdHlwZVwiIGluIHZhbHVlKSB7XG4gICAgICAgIGRlbGV0ZSB2YWx1ZS5fX3R5cGU7XG4gICAgfVxuICAgIHJldHVybiBleHBlY3RVbmlvbih2YWx1ZSk7XG59O1xuIiwgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5wYXJzZVhNTCA9IHBhcnNlWE1MO1xuY29uc3QgZmFzdF94bWxfcGFyc2VyXzEgPSByZXF1aXJlKFwiZmFzdC14bWwtcGFyc2VyXCIpO1xuY29uc3QgcGFyc2VyID0gbmV3IGZhc3RfeG1sX3BhcnNlcl8xLlhNTFBhcnNlcih7XG4gICAgYXR0cmlidXRlTmFtZVByZWZpeDogXCJcIixcbiAgICBodG1sRW50aXRpZXM6IHRydWUsXG4gICAgaWdub3JlQXR0cmlidXRlczogZmFsc2UsXG4gICAgaWdub3JlRGVjbGFyYXRpb246IHRydWUsXG4gICAgcGFyc2VUYWdWYWx1ZTogZmFsc2UsXG4gICAgdHJpbVZhbHVlczogZmFsc2UsXG4gICAgdGFnVmFsdWVQcm9jZXNzb3I6IChfLCB2YWwpID0+ICh2YWwudHJpbSgpID09PSBcIlwiICYmIHZhbC5pbmNsdWRlcyhcIlxcblwiKSA/IFwiXCIgOiB1bmRlZmluZWQpLFxufSk7XG5wYXJzZXIuYWRkRW50aXR5KFwiI3hEXCIsIFwiXFxyXCIpO1xucGFyc2VyLmFkZEVudGl0eShcIiMxMFwiLCBcIlxcblwiKTtcbmZ1bmN0aW9uIHBhcnNlWE1MKHhtbFN0cmluZykge1xuICAgIHJldHVybiBwYXJzZXIucGFyc2UoeG1sU3RyaW5nLCB0cnVlKTtcbn1cbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciB4bWxQYXJzZXIgPSByZXF1aXJlKCcuL3htbC1wYXJzZXInKTtcblxuZnVuY3Rpb24gZXNjYXBlQXR0cmlidXRlKHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlLnJlcGxhY2UoLyYvZywgXCImYW1wO1wiKS5yZXBsYWNlKC88L2csIFwiJmx0O1wiKS5yZXBsYWNlKC8+L2csIFwiJmd0O1wiKS5yZXBsYWNlKC9cIi9nLCBcIiZxdW90O1wiKTtcbn1cblxuZnVuY3Rpb24gZXNjYXBlRWxlbWVudCh2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZVxuICAgICAgICAucmVwbGFjZSgvJi9nLCBcIiZhbXA7XCIpXG4gICAgICAgIC5yZXBsYWNlKC9cIi9nLCBcIiZxdW90O1wiKVxuICAgICAgICAucmVwbGFjZSgvJy9nLCBcIiZhcG9zO1wiKVxuICAgICAgICAucmVwbGFjZSgvPC9nLCBcIiZsdDtcIilcbiAgICAgICAgLnJlcGxhY2UoLz4vZywgXCImZ3Q7XCIpXG4gICAgICAgIC5yZXBsYWNlKC9cXHIvZywgXCImI3gwRDtcIilcbiAgICAgICAgLnJlcGxhY2UoL1xcbi9nLCBcIiYjeDBBO1wiKVxuICAgICAgICAucmVwbGFjZSgvXFx1MDA4NS9nLCBcIiYjeDg1O1wiKVxuICAgICAgICAucmVwbGFjZSgvXFx1MjAyOC8sIFwiJiN4MjAyODtcIik7XG59XG5cbmNsYXNzIFhtbFRleHQge1xuICAgIHZhbHVlO1xuICAgIGNvbnN0cnVjdG9yKHZhbHVlKSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB9XG4gICAgdG9TdHJpbmcoKSB7XG4gICAgICAgIHJldHVybiBlc2NhcGVFbGVtZW50KFwiXCIgKyB0aGlzLnZhbHVlKTtcbiAgICB9XG59XG5cbmNsYXNzIFhtbE5vZGUge1xuICAgIG5hbWU7XG4gICAgY2hpbGRyZW47XG4gICAgYXR0cmlidXRlcyA9IHt9O1xuICAgIHN0YXRpYyBvZihuYW1lLCBjaGlsZFRleHQsIHdpdGhOYW1lKSB7XG4gICAgICAgIGNvbnN0IG5vZGUgPSBuZXcgWG1sTm9kZShuYW1lKTtcbiAgICAgICAgaWYgKGNoaWxkVGV4dCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBub2RlLmFkZENoaWxkTm9kZShuZXcgWG1sVGV4dChjaGlsZFRleHQpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAod2l0aE5hbWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgbm9kZS53aXRoTmFtZSh3aXRoTmFtZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5vZGU7XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKG5hbWUsIGNoaWxkcmVuID0gW10pIHtcbiAgICAgICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICAgICAgdGhpcy5jaGlsZHJlbiA9IGNoaWxkcmVuO1xuICAgIH1cbiAgICB3aXRoTmFtZShuYW1lKSB7XG4gICAgICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBhZGRBdHRyaWJ1dGUobmFtZSwgdmFsdWUpIHtcbiAgICAgICAgdGhpcy5hdHRyaWJ1dGVzW25hbWVdID0gdmFsdWU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBhZGRDaGlsZE5vZGUoY2hpbGQpIHtcbiAgICAgICAgdGhpcy5jaGlsZHJlbi5wdXNoKGNoaWxkKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIHJlbW92ZUF0dHJpYnV0ZShuYW1lKSB7XG4gICAgICAgIGRlbGV0ZSB0aGlzLmF0dHJpYnV0ZXNbbmFtZV07XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBuKG5hbWUpIHtcbiAgICAgICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIGMoY2hpbGQpIHtcbiAgICAgICAgdGhpcy5jaGlsZHJlbi5wdXNoKGNoaWxkKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIGEobmFtZSwgdmFsdWUpIHtcbiAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuYXR0cmlidXRlc1tuYW1lXSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBjYyhpbnB1dCwgZmllbGQsIHdpdGhOYW1lID0gZmllbGQpIHtcbiAgICAgICAgaWYgKGlucHV0W2ZpZWxkXSAhPSBudWxsKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlID0gWG1sTm9kZS5vZihmaWVsZCwgaW5wdXRbZmllbGRdKS53aXRoTmFtZSh3aXRoTmFtZSk7XG4gICAgICAgICAgICB0aGlzLmMobm9kZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbChpbnB1dCwgbGlzdE5hbWUsIG1lbWJlck5hbWUsIHZhbHVlUHJvdmlkZXIpIHtcbiAgICAgICAgaWYgKGlucHV0W2xpc3ROYW1lXSAhPSBudWxsKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlcyA9IHZhbHVlUHJvdmlkZXIoKTtcbiAgICAgICAgICAgIG5vZGVzLm1hcCgobm9kZSkgPT4ge1xuICAgICAgICAgICAgICAgIG5vZGUud2l0aE5hbWUobWVtYmVyTmFtZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5jKG5vZGUpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbGMoaW5wdXQsIGxpc3ROYW1lLCBtZW1iZXJOYW1lLCB2YWx1ZVByb3ZpZGVyKSB7XG4gICAgICAgIGlmIChpbnB1dFtsaXN0TmFtZV0gIT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZXMgPSB2YWx1ZVByb3ZpZGVyKCk7XG4gICAgICAgICAgICBjb25zdCBjb250YWluZXJOb2RlID0gbmV3IFhtbE5vZGUobWVtYmVyTmFtZSk7XG4gICAgICAgICAgICBub2Rlcy5tYXAoKG5vZGUpID0+IHtcbiAgICAgICAgICAgICAgICBjb250YWluZXJOb2RlLmMobm9kZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuYyhjb250YWluZXJOb2RlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICB0b1N0cmluZygpIHtcbiAgICAgICAgY29uc3QgaGFzQ2hpbGRyZW4gPSBCb29sZWFuKHRoaXMuY2hpbGRyZW4ubGVuZ3RoKTtcbiAgICAgICAgbGV0IHhtbFRleHQgPSBgPCR7dGhpcy5uYW1lfWA7XG4gICAgICAgIGNvbnN0IGF0dHJpYnV0ZXMgPSB0aGlzLmF0dHJpYnV0ZXM7XG4gICAgICAgIGZvciAoY29uc3QgYXR0cmlidXRlTmFtZSBvZiBPYmplY3Qua2V5cyhhdHRyaWJ1dGVzKSkge1xuICAgICAgICAgICAgY29uc3QgYXR0cmlidXRlID0gYXR0cmlidXRlc1thdHRyaWJ1dGVOYW1lXTtcbiAgICAgICAgICAgIGlmIChhdHRyaWJ1dGUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHhtbFRleHQgKz0gYCAke2F0dHJpYnV0ZU5hbWV9PVwiJHtlc2NhcGVBdHRyaWJ1dGUoXCJcIiArIGF0dHJpYnV0ZSl9XCJgO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiAoeG1sVGV4dCArPSAhaGFzQ2hpbGRyZW4gPyBcIi8+XCIgOiBgPiR7dGhpcy5jaGlsZHJlbi5tYXAoKGMpID0+IGMudG9TdHJpbmcoKSkuam9pbihcIlwiKX08LyR7dGhpcy5uYW1lfT5gKTtcbiAgICB9XG59XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcInBhcnNlWE1MXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4geG1sUGFyc2VyLnBhcnNlWE1MOyB9XG59KTtcbmV4cG9ydHMuWG1sTm9kZSA9IFhtbE5vZGU7XG5leHBvcnRzLlhtbFRleHQgPSBYbWxUZXh0O1xuIiwgImltcG9ydCB7IHBhcnNlWE1MIH0gZnJvbSBcIkBhd3Mtc2RrL3htbC1idWlsZGVyXCI7XG5pbXBvcnQgeyBGcm9tU3RyaW5nU2hhcGVEZXNlcmlhbGl6ZXIgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3Byb3RvY29sc1wiO1xuaW1wb3J0IHsgTm9ybWFsaXplZFNjaGVtYSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2NoZW1hXCI7XG5pbXBvcnQgeyBnZXRWYWx1ZUZyb21UZXh0Tm9kZSB9IGZyb20gXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjtcbmltcG9ydCB7IHRvVXRmOCB9IGZyb20gXCJAc21pdGh5L3V0aWwtdXRmOFwiO1xuaW1wb3J0IHsgU2VyZGVDb250ZXh0Q29uZmlnIH0gZnJvbSBcIi4uL0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dFwiO1xuZXhwb3J0IGNsYXNzIFhtbFNoYXBlRGVzZXJpYWxpemVyIGV4dGVuZHMgU2VyZGVDb250ZXh0Q29uZmlnIHtcbiAgICBzZXR0aW5ncztcbiAgICBzdHJpbmdEZXNlcmlhbGl6ZXI7XG4gICAgY29uc3RydWN0b3Ioc2V0dGluZ3MpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5zZXR0aW5ncyA9IHNldHRpbmdzO1xuICAgICAgICB0aGlzLnN0cmluZ0Rlc2VyaWFsaXplciA9IG5ldyBGcm9tU3RyaW5nU2hhcGVEZXNlcmlhbGl6ZXIoc2V0dGluZ3MpO1xuICAgIH1cbiAgICBzZXRTZXJkZUNvbnRleHQoc2VyZGVDb250ZXh0KSB7XG4gICAgICAgIHRoaXMuc2VyZGVDb250ZXh0ID0gc2VyZGVDb250ZXh0O1xuICAgICAgICB0aGlzLnN0cmluZ0Rlc2VyaWFsaXplci5zZXRTZXJkZUNvbnRleHQoc2VyZGVDb250ZXh0KTtcbiAgICB9XG4gICAgcmVhZChzY2hlbWEsIGJ5dGVzLCBrZXkpIHtcbiAgICAgICAgY29uc3QgbnMgPSBOb3JtYWxpemVkU2NoZW1hLm9mKHNjaGVtYSk7XG4gICAgICAgIGNvbnN0IG1lbWJlclNjaGVtYXMgPSBucy5nZXRNZW1iZXJTY2hlbWFzKCk7XG4gICAgICAgIGNvbnN0IGlzRXZlbnRQYXlsb2FkID0gbnMuaXNTdHJ1Y3RTY2hlbWEoKSAmJlxuICAgICAgICAgICAgbnMuaXNNZW1iZXJTY2hlbWEoKSAmJlxuICAgICAgICAgICAgISFPYmplY3QudmFsdWVzKG1lbWJlclNjaGVtYXMpLmZpbmQoKG1lbWJlck5zKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICEhbWVtYmVyTnMuZ2V0TWVtYmVyVHJhaXRzKCkuZXZlbnRQYXlsb2FkO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIGlmIChpc0V2ZW50UGF5bG9hZCkge1xuICAgICAgICAgICAgY29uc3Qgb3V0cHV0ID0ge307XG4gICAgICAgICAgICBjb25zdCBtZW1iZXJOYW1lID0gT2JqZWN0LmtleXMobWVtYmVyU2NoZW1hcylbMF07XG4gICAgICAgICAgICBjb25zdCBldmVudE1lbWJlclNjaGVtYSA9IG1lbWJlclNjaGVtYXNbbWVtYmVyTmFtZV07XG4gICAgICAgICAgICBpZiAoZXZlbnRNZW1iZXJTY2hlbWEuaXNCbG9iU2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICBvdXRwdXRbbWVtYmVyTmFtZV0gPSBieXRlcztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIG91dHB1dFttZW1iZXJOYW1lXSA9IHRoaXMucmVhZChtZW1iZXJTY2hlbWFzW21lbWJlck5hbWVdLCBieXRlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gb3V0cHV0O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHhtbFN0cmluZyA9ICh0aGlzLnNlcmRlQ29udGV4dD8udXRmOEVuY29kZXIgPz8gdG9VdGY4KShieXRlcyk7XG4gICAgICAgIGNvbnN0IHBhcnNlZE9iamVjdCA9IHRoaXMucGFyc2VYbWwoeG1sU3RyaW5nKTtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVhZFNjaGVtYShzY2hlbWEsIGtleSA/IHBhcnNlZE9iamVjdFtrZXldIDogcGFyc2VkT2JqZWN0KTtcbiAgICB9XG4gICAgcmVhZFNjaGVtYShfc2NoZW1hLCB2YWx1ZSkge1xuICAgICAgICBjb25zdCBucyA9IE5vcm1hbGl6ZWRTY2hlbWEub2YoX3NjaGVtYSk7XG4gICAgICAgIGlmIChucy5pc1VuaXRTY2hlbWEoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHRyYWl0cyA9IG5zLmdldE1lcmdlZFRyYWl0cygpO1xuICAgICAgICBpZiAobnMuaXNMaXN0U2NoZW1hKCkgJiYgIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yZWFkU2NoZW1hKG5zLCBbdmFsdWVdKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgIGNvbnN0IHNwYXJzZSA9ICEhdHJhaXRzLnNwYXJzZTtcbiAgICAgICAgICAgIGNvbnN0IGZsYXQgPSAhIXRyYWl0cy54bWxGbGF0dGVuZWQ7XG4gICAgICAgICAgICBpZiAobnMuaXNMaXN0U2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBsaXN0VmFsdWUgPSBucy5nZXRWYWx1ZVNjaGVtYSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGJ1ZmZlciA9IFtdO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNvdXJjZUtleSA9IGxpc3RWYWx1ZS5nZXRNZXJnZWRUcmFpdHMoKS54bWxOYW1lID8/IFwibWVtYmVyXCI7XG4gICAgICAgICAgICAgICAgY29uc3Qgc291cmNlID0gZmxhdCA/IHZhbHVlIDogKHZhbHVlWzBdID8/IHZhbHVlKVtzb3VyY2VLZXldO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNvdXJjZUFycmF5ID0gQXJyYXkuaXNBcnJheShzb3VyY2UpID8gc291cmNlIDogW3NvdXJjZV07XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCB2IG9mIHNvdXJjZUFycmF5KSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2ICE9IG51bGwgfHwgc3BhcnNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBidWZmZXIucHVzaCh0aGlzLnJlYWRTY2hlbWEobGlzdFZhbHVlLCB2KSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGJ1ZmZlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGJ1ZmZlciA9IHt9O1xuICAgICAgICAgICAgaWYgKG5zLmlzTWFwU2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBrZXlOcyA9IG5zLmdldEtleVNjaGVtYSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IG1lbWJlck5zID0gbnMuZ2V0VmFsdWVTY2hlbWEoKTtcbiAgICAgICAgICAgICAgICBsZXQgZW50cmllcztcbiAgICAgICAgICAgICAgICBpZiAoZmxhdCkge1xuICAgICAgICAgICAgICAgICAgICBlbnRyaWVzID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBlbnRyaWVzID0gQXJyYXkuaXNBcnJheSh2YWx1ZS5lbnRyeSkgPyB2YWx1ZS5lbnRyeSA6IFt2YWx1ZS5lbnRyeV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IGtleVByb3BlcnR5ID0ga2V5TnMuZ2V0TWVyZ2VkVHJhaXRzKCkueG1sTmFtZSA/PyBcImtleVwiO1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlUHJvcGVydHkgPSBtZW1iZXJOcy5nZXRNZXJnZWRUcmFpdHMoKS54bWxOYW1lID8/IFwidmFsdWVcIjtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIGVudHJpZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qga2V5ID0gZW50cnlba2V5UHJvcGVydHldO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGVudHJ5W3ZhbHVlUHJvcGVydHldO1xuICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCB8fCBzcGFyc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcltrZXldID0gdGhpcy5yZWFkU2NoZW1hKG1lbWJlck5zLCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGJ1ZmZlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChucy5pc1N0cnVjdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBbbWVtYmVyTmFtZSwgbWVtYmVyU2NoZW1hXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1lbWJlclRyYWl0cyA9IG1lbWJlclNjaGVtYS5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sT2JqZWN0S2V5ID0gIW1lbWJlclRyYWl0cy5odHRwUGF5bG9hZFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBtZW1iZXJTY2hlbWEuZ2V0TWVtYmVyVHJhaXRzKCkueG1sTmFtZSA/PyBtZW1iZXJOYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICA6IG1lbWJlclRyYWl0cy54bWxOYW1lID8/IG1lbWJlclNjaGVtYS5nZXROYW1lKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZVt4bWxPYmplY3RLZXldICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlclttZW1iZXJOYW1lXSA9IHRoaXMucmVhZFNjaGVtYShtZW1iZXJTY2hlbWEsIHZhbHVlW3htbE9iamVjdEtleV0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBidWZmZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobnMuaXNEb2N1bWVudFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBAYXdzLXNkay9jb3JlL3Byb3RvY29scyAtIHhtbCBkZXNlcmlhbGl6ZXIgdW5oYW5kbGVkIHNjaGVtYSB0eXBlIGZvciAke25zLmdldE5hbWUodHJ1ZSl9YCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzTGlzdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzTWFwU2NoZW1hKCkgfHwgbnMuaXNTdHJ1Y3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnN0cmluZ0Rlc2VyaWFsaXplci5yZWFkKG5zLCB2YWx1ZSk7XG4gICAgfVxuICAgIHBhcnNlWG1sKHhtbCkge1xuICAgICAgICBpZiAoeG1sLmxlbmd0aCkge1xuICAgICAgICAgICAgbGV0IHBhcnNlZE9iajtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgcGFyc2VkT2JqID0gcGFyc2VYTUwoeG1sKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgaWYgKGUgJiYgdHlwZW9mIGUgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIFwiJHJlc3BvbnNlQm9keVRleHRcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHhtbCxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCB0ZXh0Tm9kZU5hbWUgPSBcIiN0ZXh0XCI7XG4gICAgICAgICAgICBjb25zdCBrZXkgPSBPYmplY3Qua2V5cyhwYXJzZWRPYmopWzBdO1xuICAgICAgICAgICAgY29uc3QgcGFyc2VkT2JqVG9SZXR1cm4gPSBwYXJzZWRPYmpba2V5XTtcbiAgICAgICAgICAgIGlmIChwYXJzZWRPYmpUb1JldHVyblt0ZXh0Tm9kZU5hbWVdKSB7XG4gICAgICAgICAgICAgICAgcGFyc2VkT2JqVG9SZXR1cm5ba2V5XSA9IHBhcnNlZE9ialRvUmV0dXJuW3RleHROb2RlTmFtZV07XG4gICAgICAgICAgICAgICAgZGVsZXRlIHBhcnNlZE9ialRvUmV0dXJuW3RleHROb2RlTmFtZV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZ2V0VmFsdWVGcm9tVGV4dE5vZGUocGFyc2VkT2JqVG9SZXR1cm4pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7fTtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgZGV0ZXJtaW5lVGltZXN0YW1wRm9ybWF0LCBleHRlbmRlZEVuY29kZVVSSUNvbXBvbmVudCB9IGZyb20gXCJAc21pdGh5L2NvcmUvcHJvdG9jb2xzXCI7XG5pbXBvcnQgeyBOb3JtYWxpemVkU2NoZW1hIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IGdlbmVyYXRlSWRlbXBvdGVuY3lUb2tlbiwgTnVtZXJpY1ZhbHVlIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zZXJkZVwiO1xuaW1wb3J0IHsgZGF0ZVRvVXRjU3RyaW5nIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgdG9CYXNlNjQgfSBmcm9tIFwiQHNtaXRoeS91dGlsLWJhc2U2NFwiO1xuaW1wb3J0IHsgU2VyZGVDb250ZXh0Q29uZmlnIH0gZnJvbSBcIi4uL0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dFwiO1xuaW1wb3J0IHsgc2VyaWFsaXppbmdTdHJ1Y3RJdGVyYXRvciB9IGZyb20gXCIuLi9zdHJ1Y3RJdGVyYXRvclwiO1xuZXhwb3J0IGNsYXNzIFF1ZXJ5U2hhcGVTZXJpYWxpemVyIGV4dGVuZHMgU2VyZGVDb250ZXh0Q29uZmlnIHtcbiAgICBzZXR0aW5ncztcbiAgICBidWZmZXI7XG4gICAgY29uc3RydWN0b3Ioc2V0dGluZ3MpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5zZXR0aW5ncyA9IHNldHRpbmdzO1xuICAgIH1cbiAgICB3cml0ZShzY2hlbWEsIHZhbHVlLCBwcmVmaXggPSBcIlwiKSB7XG4gICAgICAgIGlmICh0aGlzLmJ1ZmZlciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmJ1ZmZlciA9IFwiXCI7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbnMgPSBOb3JtYWxpemVkU2NoZW1hLm9mKHNjaGVtYSk7XG4gICAgICAgIGlmIChwcmVmaXggJiYgIXByZWZpeC5lbmRzV2l0aChcIi5cIikpIHtcbiAgICAgICAgICAgIHByZWZpeCArPSBcIi5cIjtcbiAgICAgICAgfVxuICAgICAgICBpZiAobnMuaXNCbG9iU2NoZW1hKCkpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgfHwgdmFsdWUgaW5zdGFuY2VvZiBVaW50OEFycmF5KSB7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZUtleShwcmVmaXgpO1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVWYWx1ZSgodGhpcy5zZXJkZUNvbnRleHQ/LmJhc2U2NEVuY29kZXIgPz8gdG9CYXNlNjQpKHZhbHVlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAobnMuaXNCb29sZWFuU2NoZW1hKCkgfHwgbnMuaXNOdW1lcmljU2NoZW1hKCkgfHwgbnMuaXNTdHJpbmdTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlS2V5KHByZWZpeCk7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKFN0cmluZyh2YWx1ZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAobnMuaXNJZGVtcG90ZW5jeVRva2VuKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlS2V5KHByZWZpeCk7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKGdlbmVyYXRlSWRlbXBvdGVuY3lUb2tlbigpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChucy5pc0JpZ0ludGVnZXJTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlS2V5KHByZWZpeCk7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKFN0cmluZyh2YWx1ZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKG5zLmlzQmlnRGVjaW1hbFNjaGVtYSgpKSB7XG4gICAgICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVLZXkocHJlZml4KTtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlVmFsdWUodmFsdWUgaW5zdGFuY2VvZiBOdW1lcmljVmFsdWUgPyB2YWx1ZS5zdHJpbmcgOiBTdHJpbmcodmFsdWUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChucy5pc1RpbWVzdGFtcFNjaGVtYSgpKSB7XG4gICAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZUtleShwcmVmaXgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZvcm1hdCA9IGRldGVybWluZVRpbWVzdGFtcEZvcm1hdChucywgdGhpcy5zZXR0aW5ncyk7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChmb3JtYXQpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKHZhbHVlLnRvSVNPU3RyaW5nKCkucmVwbGFjZShcIi4wMDBaXCIsIFwiWlwiKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKGRhdGVUb1V0Y1N0cmluZyh2YWx1ZSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMud3JpdGVWYWx1ZShTdHJpbmcodmFsdWUuZ2V0VGltZSgpIC8gMTAwMCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKG5zLmlzRG9jdW1lbnRTY2hlbWEoKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBAYXdzLXNkay9jb3JlL3Byb3RvY29scyAtIFF1ZXJ5U2VyaWFsaXplciB1bnN1cHBvcnRlZCBkb2N1bWVudCB0eXBlICR7bnMuZ2V0TmFtZSh0cnVlKX1gKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChucy5pc0xpc3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5zZXR0aW5ncy5zZXJpYWxpemVFbXB0eUxpc3RzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLndyaXRlS2V5KHByZWZpeCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLndyaXRlVmFsdWUoXCJcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1lbWJlciA9IG5zLmdldFZhbHVlU2NoZW1hKCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZsYXQgPSB0aGlzLnNldHRpbmdzLmZsYXR0ZW5MaXN0cyB8fCBucy5nZXRNZXJnZWRUcmFpdHMoKS54bWxGbGF0dGVuZWQ7XG4gICAgICAgICAgICAgICAgICAgIGxldCBpID0gMTtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbSA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdWZmaXggPSB0aGlzLmdldEtleShcIm1lbWJlclwiLCBtZW1iZXIuZ2V0TWVyZ2VkVHJhaXRzKCkueG1sTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSBmbGF0ID8gYCR7cHJlZml4fSR7aX1gIDogYCR7cHJlZml4fSR7c3VmZml4fS4ke2l9YDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMud3JpdGUobWVtYmVyLCBpdGVtLCBrZXkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgKytpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKG5zLmlzTWFwU2NoZW1hKCkpIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBrZXlTY2hlbWEgPSBucy5nZXRLZXlTY2hlbWEoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBtZW1iZXJTY2hlbWEgPSBucy5nZXRWYWx1ZVNjaGVtYSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZsYXQgPSBucy5nZXRNZXJnZWRUcmFpdHMoKS54bWxGbGF0dGVuZWQ7XG4gICAgICAgICAgICAgICAgbGV0IGkgPSAxO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodiA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBrZXlTdWZmaXggPSB0aGlzLmdldEtleShcImtleVwiLCBrZXlTY2hlbWEuZ2V0TWVyZ2VkVHJhaXRzKCkueG1sTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IGZsYXQgPyBgJHtwcmVmaXh9JHtpfS4ke2tleVN1ZmZpeH1gIDogYCR7cHJlZml4fWVudHJ5LiR7aX0uJHtrZXlTdWZmaXh9YDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWVTdWZmaXggPSB0aGlzLmdldEtleShcInZhbHVlXCIsIG1lbWJlclNjaGVtYS5nZXRNZXJnZWRUcmFpdHMoKS54bWxOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWVLZXkgPSBmbGF0ID8gYCR7cHJlZml4fSR7aX0uJHt2YWx1ZVN1ZmZpeH1gIDogYCR7cHJlZml4fWVudHJ5LiR7aX0uJHt2YWx1ZVN1ZmZpeH1gO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLndyaXRlKGtleVNjaGVtYSwgaywga2V5KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy53cml0ZShtZW1iZXJTY2hlbWEsIHYsIHZhbHVlS2V5KTtcbiAgICAgICAgICAgICAgICAgICAgKytpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChucy5pc1N0cnVjdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICBpZiAodmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBbbWVtYmVyTmFtZSwgbWVtYmVyXSBvZiBzZXJpYWxpemluZ1N0cnVjdEl0ZXJhdG9yKG5zLCB2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlW21lbWJlck5hbWVdID09IG51bGwgJiYgIW1lbWJlci5pc0lkZW1wb3RlbmN5VG9rZW4oKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3VmZml4ID0gdGhpcy5nZXRLZXkobWVtYmVyTmFtZSwgbWVtYmVyLmdldE1lcmdlZFRyYWl0cygpLnhtbE5hbWUpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSBgJHtwcmVmaXh9JHtzdWZmaXh9YDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy53cml0ZShtZW1iZXIsIHZhbHVlW21lbWJlck5hbWVdLCBrZXkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChucy5pc1VuaXRTY2hlbWEoKSkge1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBAYXdzLXNkay9jb3JlL3Byb3RvY29scyAtIFF1ZXJ5U2VyaWFsaXplciB1bnJlY29nbml6ZWQgc2NoZW1hIHR5cGUgJHtucy5nZXROYW1lKHRydWUpfWApO1xuICAgICAgICB9XG4gICAgfVxuICAgIGZsdXNoKCkge1xuICAgICAgICBpZiAodGhpcy5idWZmZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSBRdWVyeVNlcmlhbGl6ZXIgY2Fubm90IGZsdXNoIHdpdGggbm90aGluZyB3cml0dGVuIHRvIGJ1ZmZlci5cIik7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc3RyID0gdGhpcy5idWZmZXI7XG4gICAgICAgIGRlbGV0ZSB0aGlzLmJ1ZmZlcjtcbiAgICAgICAgcmV0dXJuIHN0cjtcbiAgICB9XG4gICAgZ2V0S2V5KG1lbWJlck5hbWUsIHhtbE5hbWUpIHtcbiAgICAgICAgY29uc3Qga2V5ID0geG1sTmFtZSA/PyBtZW1iZXJOYW1lO1xuICAgICAgICBpZiAodGhpcy5zZXR0aW5ncy5jYXBpdGFsaXplS2V5cykge1xuICAgICAgICAgICAgcmV0dXJuIGtleVswXS50b1VwcGVyQ2FzZSgpICsga2V5LnNsaWNlKDEpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBrZXk7XG4gICAgfVxuICAgIHdyaXRlS2V5KGtleSkge1xuICAgICAgICBpZiAoa2V5LmVuZHNXaXRoKFwiLlwiKSkge1xuICAgICAgICAgICAga2V5ID0ga2V5LnNsaWNlKDAsIGtleS5sZW5ndGggLSAxKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmJ1ZmZlciArPSBgJiR7ZXh0ZW5kZWRFbmNvZGVVUklDb21wb25lbnQoa2V5KX09YDtcbiAgICB9XG4gICAgd3JpdGVWYWx1ZSh2YWx1ZSkge1xuICAgICAgICB0aGlzLmJ1ZmZlciArPSBleHRlbmRlZEVuY29kZVVSSUNvbXBvbmVudCh2YWx1ZSk7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IGNvbGxlY3RCb2R5LCBScGNQcm90b2NvbCB9IGZyb20gXCJAc21pdGh5L2NvcmUvcHJvdG9jb2xzXCI7XG5pbXBvcnQgeyBkZXJlZiwgTm9ybWFsaXplZFNjaGVtYSwgVHlwZVJlZ2lzdHJ5IH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IFByb3RvY29sTGliIH0gZnJvbSBcIi4uL1Byb3RvY29sTGliXCI7XG5pbXBvcnQgeyBYbWxTaGFwZURlc2VyaWFsaXplciB9IGZyb20gXCIuLi94bWwvWG1sU2hhcGVEZXNlcmlhbGl6ZXJcIjtcbmltcG9ydCB7IFF1ZXJ5U2hhcGVTZXJpYWxpemVyIH0gZnJvbSBcIi4vUXVlcnlTaGFwZVNlcmlhbGl6ZXJcIjtcbmV4cG9ydCBjbGFzcyBBd3NRdWVyeVByb3RvY29sIGV4dGVuZHMgUnBjUHJvdG9jb2wge1xuICAgIG9wdGlvbnM7XG4gICAgc2VyaWFsaXplcjtcbiAgICBkZXNlcmlhbGl6ZXI7XG4gICAgbWl4aW4gPSBuZXcgUHJvdG9jb2xMaWIoKTtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIGRlZmF1bHROYW1lc3BhY2U6IG9wdGlvbnMuZGVmYXVsdE5hbWVzcGFjZSxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgICAgIGNvbnN0IHNldHRpbmdzID0ge1xuICAgICAgICAgICAgdGltZXN0YW1wRm9ybWF0OiB7XG4gICAgICAgICAgICAgICAgdXNlVHJhaXQ6IHRydWUsXG4gICAgICAgICAgICAgICAgZGVmYXVsdDogNSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBodHRwQmluZGluZ3M6IGZhbHNlLFxuICAgICAgICAgICAgeG1sTmFtZXNwYWNlOiBvcHRpb25zLnhtbE5hbWVzcGFjZSxcbiAgICAgICAgICAgIHNlcnZpY2VOYW1lc3BhY2U6IG9wdGlvbnMuZGVmYXVsdE5hbWVzcGFjZSxcbiAgICAgICAgICAgIHNlcmlhbGl6ZUVtcHR5TGlzdHM6IHRydWUsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuc2VyaWFsaXplciA9IG5ldyBRdWVyeVNoYXBlU2VyaWFsaXplcihzZXR0aW5ncyk7XG4gICAgICAgIHRoaXMuZGVzZXJpYWxpemVyID0gbmV3IFhtbFNoYXBlRGVzZXJpYWxpemVyKHNldHRpbmdzKTtcbiAgICB9XG4gICAgZ2V0U2hhcGVJZCgpIHtcbiAgICAgICAgcmV0dXJuIFwiYXdzLnByb3RvY29scyNhd3NRdWVyeVwiO1xuICAgIH1cbiAgICBzZXRTZXJkZUNvbnRleHQoc2VyZGVDb250ZXh0KSB7XG4gICAgICAgIHRoaXMuc2VyaWFsaXplci5zZXRTZXJkZUNvbnRleHQoc2VyZGVDb250ZXh0KTtcbiAgICAgICAgdGhpcy5kZXNlcmlhbGl6ZXIuc2V0U2VyZGVDb250ZXh0KHNlcmRlQ29udGV4dCk7XG4gICAgfVxuICAgIGdldFBheWxvYWRDb2RlYygpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQVdTUXVlcnkgcHJvdG9jb2wgaGFzIG5vIHBheWxvYWQgY29kZWMuXCIpO1xuICAgIH1cbiAgICBhc3luYyBzZXJpYWxpemVSZXF1ZXN0KG9wZXJhdGlvblNjaGVtYSwgaW5wdXQsIGNvbnRleHQpIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IGF3YWl0IHN1cGVyLnNlcmlhbGl6ZVJlcXVlc3Qob3BlcmF0aW9uU2NoZW1hLCBpbnB1dCwgY29udGV4dCk7XG4gICAgICAgIGlmICghcmVxdWVzdC5wYXRoLmVuZHNXaXRoKFwiL1wiKSkge1xuICAgICAgICAgICAgcmVxdWVzdC5wYXRoICs9IFwiL1wiO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24ocmVxdWVzdC5oZWFkZXJzLCB7XG4gICAgICAgICAgICBcImNvbnRlbnQtdHlwZVwiOiBgYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkYCxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChkZXJlZihvcGVyYXRpb25TY2hlbWEuaW5wdXQpID09PSBcInVuaXRcIiB8fCAhcmVxdWVzdC5ib2R5KSB7XG4gICAgICAgICAgICByZXF1ZXN0LmJvZHkgPSBcIlwiO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGFjdGlvbiA9IG9wZXJhdGlvblNjaGVtYS5uYW1lLnNwbGl0KFwiI1wiKVsxXSA/PyBvcGVyYXRpb25TY2hlbWEubmFtZTtcbiAgICAgICAgcmVxdWVzdC5ib2R5ID0gYEFjdGlvbj0ke2FjdGlvbn0mVmVyc2lvbj0ke3RoaXMub3B0aW9ucy52ZXJzaW9ufWAgKyByZXF1ZXN0LmJvZHk7XG4gICAgICAgIGlmIChyZXF1ZXN0LmJvZHkuZW5kc1dpdGgoXCImXCIpKSB7XG4gICAgICAgICAgICByZXF1ZXN0LmJvZHkgPSByZXF1ZXN0LmJvZHkuc2xpY2UoLTEpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXF1ZXN0O1xuICAgIH1cbiAgICBhc3luYyBkZXNlcmlhbGl6ZVJlc3BvbnNlKG9wZXJhdGlvblNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UpIHtcbiAgICAgICAgY29uc3QgZGVzZXJpYWxpemVyID0gdGhpcy5kZXNlcmlhbGl6ZXI7XG4gICAgICAgIGNvbnN0IG5zID0gTm9ybWFsaXplZFNjaGVtYS5vZihvcGVyYXRpb25TY2hlbWEub3V0cHV0KTtcbiAgICAgICAgY29uc3QgZGF0YU9iamVjdCA9IHt9O1xuICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzQ29kZSA+PSAzMDApIHtcbiAgICAgICAgICAgIGNvbnN0IGJ5dGVzID0gYXdhaXQgY29sbGVjdEJvZHkocmVzcG9uc2UuYm9keSwgY29udGV4dCk7XG4gICAgICAgICAgICBpZiAoYnl0ZXMuYnl0ZUxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKGRhdGFPYmplY3QsIGF3YWl0IGRlc2VyaWFsaXplci5yZWFkKDE1LCBieXRlcykpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYXdhaXQgdGhpcy5oYW5kbGVFcnJvcihvcGVyYXRpb25TY2hlbWEsIGNvbnRleHQsIHJlc3BvbnNlLCBkYXRhT2JqZWN0LCB0aGlzLmRlc2VyaWFsaXplTWV0YWRhdGEocmVzcG9uc2UpKTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IGhlYWRlciBpbiByZXNwb25zZS5oZWFkZXJzKSB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHJlc3BvbnNlLmhlYWRlcnNbaGVhZGVyXTtcbiAgICAgICAgICAgIGRlbGV0ZSByZXNwb25zZS5oZWFkZXJzW2hlYWRlcl07XG4gICAgICAgICAgICByZXNwb25zZS5oZWFkZXJzW2hlYWRlci50b0xvd2VyQ2FzZSgpXSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNob3J0TmFtZSA9IG9wZXJhdGlvblNjaGVtYS5uYW1lLnNwbGl0KFwiI1wiKVsxXSA/PyBvcGVyYXRpb25TY2hlbWEubmFtZTtcbiAgICAgICAgY29uc3QgYXdzUXVlcnlSZXN1bHRLZXkgPSBucy5pc1N0cnVjdFNjaGVtYSgpICYmIHRoaXMudXNlTmVzdGVkUmVzdWx0KCkgPyBzaG9ydE5hbWUgKyBcIlJlc3VsdFwiIDogdW5kZWZpbmVkO1xuICAgICAgICBjb25zdCBieXRlcyA9IGF3YWl0IGNvbGxlY3RCb2R5KHJlc3BvbnNlLmJvZHksIGNvbnRleHQpO1xuICAgICAgICBpZiAoYnl0ZXMuYnl0ZUxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oZGF0YU9iamVjdCwgYXdhaXQgZGVzZXJpYWxpemVyLnJlYWQobnMsIGJ5dGVzLCBhd3NRdWVyeVJlc3VsdEtleSkpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG91dHB1dCA9IHtcbiAgICAgICAgICAgICRtZXRhZGF0YTogdGhpcy5kZXNlcmlhbGl6ZU1ldGFkYXRhKHJlc3BvbnNlKSxcbiAgICAgICAgICAgIC4uLmRhdGFPYmplY3QsXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBvdXRwdXQ7XG4gICAgfVxuICAgIHVzZU5lc3RlZFJlc3VsdCgpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGFzeW5jIGhhbmRsZUVycm9yKG9wZXJhdGlvblNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UsIGRhdGFPYmplY3QsIG1ldGFkYXRhKSB7XG4gICAgICAgIGNvbnN0IGVycm9ySWRlbnRpZmllciA9IHRoaXMubG9hZFF1ZXJ5RXJyb3JDb2RlKHJlc3BvbnNlLCBkYXRhT2JqZWN0KSA/PyBcIlVua25vd25cIjtcbiAgICAgICAgY29uc3QgZXJyb3JEYXRhID0gdGhpcy5sb2FkUXVlcnlFcnJvcihkYXRhT2JqZWN0KTtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IHRoaXMubG9hZFF1ZXJ5RXJyb3JNZXNzYWdlKGRhdGFPYmplY3QpO1xuICAgICAgICBlcnJvckRhdGEubWVzc2FnZSA9IG1lc3NhZ2U7XG4gICAgICAgIGVycm9yRGF0YS5FcnJvciA9IHtcbiAgICAgICAgICAgIFR5cGU6IGVycm9yRGF0YS5UeXBlLFxuICAgICAgICAgICAgQ29kZTogZXJyb3JEYXRhLkNvZGUsXG4gICAgICAgICAgICBNZXNzYWdlOiBtZXNzYWdlLFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCB7IGVycm9yU2NoZW1hLCBlcnJvck1ldGFkYXRhIH0gPSBhd2FpdCB0aGlzLm1peGluLmdldEVycm9yU2NoZW1hT3JUaHJvd0Jhc2VFeGNlcHRpb24oZXJyb3JJZGVudGlmaWVyLCB0aGlzLm9wdGlvbnMuZGVmYXVsdE5hbWVzcGFjZSwgcmVzcG9uc2UsIGVycm9yRGF0YSwgbWV0YWRhdGEsIHRoaXMubWl4aW4uZmluZFF1ZXJ5Q29tcGF0aWJsZUVycm9yKTtcbiAgICAgICAgY29uc3QgbnMgPSBOb3JtYWxpemVkU2NoZW1hLm9mKGVycm9yU2NoZW1hKTtcbiAgICAgICAgY29uc3QgRXJyb3JDdG9yID0gVHlwZVJlZ2lzdHJ5LmZvcihlcnJvclNjaGVtYVsxXSkuZ2V0RXJyb3JDdG9yKGVycm9yU2NoZW1hKSA/PyBFcnJvcjtcbiAgICAgICAgY29uc3QgZXhjZXB0aW9uID0gbmV3IEVycm9yQ3RvcihtZXNzYWdlKTtcbiAgICAgICAgY29uc3Qgb3V0cHV0ID0ge1xuICAgICAgICAgICAgVHlwZTogZXJyb3JEYXRhLkVycm9yLlR5cGUsXG4gICAgICAgICAgICBDb2RlOiBlcnJvckRhdGEuRXJyb3IuQ29kZSxcbiAgICAgICAgICAgIEVycm9yOiBlcnJvckRhdGEuRXJyb3IsXG4gICAgICAgIH07XG4gICAgICAgIGZvciAoY29uc3QgW25hbWUsIG1lbWJlcl0gb2YgbnMuc3RydWN0SXRlcmF0b3IoKSkge1xuICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gbWVtYmVyLmdldE1lcmdlZFRyYWl0cygpLnhtbE5hbWUgPz8gbmFtZTtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZXJyb3JEYXRhW3RhcmdldF0gPz8gZGF0YU9iamVjdFt0YXJnZXRdO1xuICAgICAgICAgICAgb3V0cHV0W25hbWVdID0gdGhpcy5kZXNlcmlhbGl6ZXIucmVhZFNjaGVtYShtZW1iZXIsIHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyB0aGlzLm1peGluLmRlY29yYXRlU2VydmljZUV4Y2VwdGlvbihPYmplY3QuYXNzaWduKGV4Y2VwdGlvbiwgZXJyb3JNZXRhZGF0YSwge1xuICAgICAgICAgICAgJGZhdWx0OiBucy5nZXRNZXJnZWRUcmFpdHMoKS5lcnJvcixcbiAgICAgICAgICAgIG1lc3NhZ2UsXG4gICAgICAgIH0sIG91dHB1dCksIGRhdGFPYmplY3QpO1xuICAgIH1cbiAgICBsb2FkUXVlcnlFcnJvckNvZGUob3V0cHV0LCBkYXRhKSB7XG4gICAgICAgIGNvbnN0IGNvZGUgPSAoZGF0YS5FcnJvcnM/LlswXT8uRXJyb3IgPz8gZGF0YS5FcnJvcnM/LkVycm9yID8/IGRhdGEuRXJyb3IpPy5Db2RlO1xuICAgICAgICBpZiAoY29kZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gY29kZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3V0cHV0LnN0YXR1c0NvZGUgPT0gNDA0KSB7XG4gICAgICAgICAgICByZXR1cm4gXCJOb3RGb3VuZFwiO1xuICAgICAgICB9XG4gICAgfVxuICAgIGxvYWRRdWVyeUVycm9yKGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIGRhdGEuRXJyb3JzPy5bMF0/LkVycm9yID8/IGRhdGEuRXJyb3JzPy5FcnJvciA/PyBkYXRhLkVycm9yO1xuICAgIH1cbiAgICBsb2FkUXVlcnlFcnJvck1lc3NhZ2UoZGF0YSkge1xuICAgICAgICBjb25zdCBlcnJvckRhdGEgPSB0aGlzLmxvYWRRdWVyeUVycm9yKGRhdGEpO1xuICAgICAgICByZXR1cm4gZXJyb3JEYXRhPy5tZXNzYWdlID8/IGVycm9yRGF0YT8uTWVzc2FnZSA/PyBkYXRhLm1lc3NhZ2UgPz8gZGF0YS5NZXNzYWdlID8/IFwiVW5rbm93blwiO1xuICAgIH1cbiAgICBnZXREZWZhdWx0Q29udGVudFR5cGUoKSB7XG4gICAgICAgIHJldHVybiBcImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZFwiO1xuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBBd3NRdWVyeVByb3RvY29sIH0gZnJvbSBcIi4vQXdzUXVlcnlQcm90b2NvbFwiO1xuZXhwb3J0IGNsYXNzIEF3c0VjMlF1ZXJ5UHJvdG9jb2wgZXh0ZW5kcyBBd3NRdWVyeVByb3RvY29sIHtcbiAgICBvcHRpb25zO1xuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnMpIHtcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgICAgIGNvbnN0IGVjMlNldHRpbmdzID0ge1xuICAgICAgICAgICAgY2FwaXRhbGl6ZUtleXM6IHRydWUsXG4gICAgICAgICAgICBmbGF0dGVuTGlzdHM6IHRydWUsXG4gICAgICAgICAgICBzZXJpYWxpemVFbXB0eUxpc3RzOiBmYWxzZSxcbiAgICAgICAgfTtcbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLnNlcmlhbGl6ZXIuc2V0dGluZ3MsIGVjMlNldHRpbmdzKTtcbiAgICB9XG4gICAgdXNlTmVzdGVkUmVzdWx0KCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IHBhcnNlWE1MIH0gZnJvbSBcIkBhd3Mtc2RrL3htbC1idWlsZGVyXCI7XG5pbXBvcnQgeyBnZXRWYWx1ZUZyb21UZXh0Tm9kZSB9IGZyb20gXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjtcbmltcG9ydCB7IGNvbGxlY3RCb2R5U3RyaW5nIH0gZnJvbSBcIi4uL2NvbW1vblwiO1xuZXhwb3J0IGNvbnN0IHBhcnNlWG1sQm9keSA9IChzdHJlYW1Cb2R5LCBjb250ZXh0KSA9PiBjb2xsZWN0Qm9keVN0cmluZyhzdHJlYW1Cb2R5LCBjb250ZXh0KS50aGVuKChlbmNvZGVkKSA9PiB7XG4gICAgaWYgKGVuY29kZWQubGVuZ3RoKSB7XG4gICAgICAgIGxldCBwYXJzZWRPYmo7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBwYXJzZWRPYmogPSBwYXJzZVhNTChlbmNvZGVkKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgaWYgKGUgJiYgdHlwZW9mIGUgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwgXCIkcmVzcG9uc2VCb2R5VGV4dFwiLCB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBlbmNvZGVkLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB0ZXh0Tm9kZU5hbWUgPSBcIiN0ZXh0XCI7XG4gICAgICAgIGNvbnN0IGtleSA9IE9iamVjdC5rZXlzKHBhcnNlZE9iailbMF07XG4gICAgICAgIGNvbnN0IHBhcnNlZE9ialRvUmV0dXJuID0gcGFyc2VkT2JqW2tleV07XG4gICAgICAgIGlmIChwYXJzZWRPYmpUb1JldHVyblt0ZXh0Tm9kZU5hbWVdKSB7XG4gICAgICAgICAgICBwYXJzZWRPYmpUb1JldHVybltrZXldID0gcGFyc2VkT2JqVG9SZXR1cm5bdGV4dE5vZGVOYW1lXTtcbiAgICAgICAgICAgIGRlbGV0ZSBwYXJzZWRPYmpUb1JldHVyblt0ZXh0Tm9kZU5hbWVdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBnZXRWYWx1ZUZyb21UZXh0Tm9kZShwYXJzZWRPYmpUb1JldHVybik7XG4gICAgfVxuICAgIHJldHVybiB7fTtcbn0pO1xuZXhwb3J0IGNvbnN0IHBhcnNlWG1sRXJyb3JCb2R5ID0gYXN5bmMgKGVycm9yQm9keSwgY29udGV4dCkgPT4ge1xuICAgIGNvbnN0IHZhbHVlID0gYXdhaXQgcGFyc2VYbWxCb2R5KGVycm9yQm9keSwgY29udGV4dCk7XG4gICAgaWYgKHZhbHVlLkVycm9yKSB7XG4gICAgICAgIHZhbHVlLkVycm9yLm1lc3NhZ2UgPSB2YWx1ZS5FcnJvci5tZXNzYWdlID8/IHZhbHVlLkVycm9yLk1lc3NhZ2U7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZTtcbn07XG5leHBvcnQgY29uc3QgbG9hZFJlc3RYbWxFcnJvckNvZGUgPSAob3V0cHV0LCBkYXRhKSA9PiB7XG4gICAgaWYgKGRhdGE/LkVycm9yPy5Db2RlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIGRhdGEuRXJyb3IuQ29kZTtcbiAgICB9XG4gICAgaWYgKGRhdGE/LkNvZGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gZGF0YS5Db2RlO1xuICAgIH1cbiAgICBpZiAob3V0cHV0LnN0YXR1c0NvZGUgPT0gNDA0KSB7XG4gICAgICAgIHJldHVybiBcIk5vdEZvdW5kXCI7XG4gICAgfVxufTtcbiIsICJpbXBvcnQgeyBYbWxOb2RlLCBYbWxUZXh0IH0gZnJvbSBcIkBhd3Mtc2RrL3htbC1idWlsZGVyXCI7XG5pbXBvcnQgeyBkZXRlcm1pbmVUaW1lc3RhbXBGb3JtYXQgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3Byb3RvY29sc1wiO1xuaW1wb3J0IHsgTm9ybWFsaXplZFNjaGVtYSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2NoZW1hXCI7XG5pbXBvcnQgeyBnZW5lcmF0ZUlkZW1wb3RlbmN5VG9rZW4sIE51bWVyaWNWYWx1ZSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2VyZGVcIjtcbmltcG9ydCB7IGRhdGVUb1V0Y1N0cmluZyB9IGZyb20gXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjtcbmltcG9ydCB7IGZyb21CYXNlNjQsIHRvQmFzZTY0IH0gZnJvbSBcIkBzbWl0aHkvdXRpbC1iYXNlNjRcIjtcbmltcG9ydCB7IFNlcmRlQ29udGV4dENvbmZpZyB9IGZyb20gXCIuLi9Db25maWd1cmFibGVTZXJkZUNvbnRleHRcIjtcbmltcG9ydCB7IHNlcmlhbGl6aW5nU3RydWN0SXRlcmF0b3IgfSBmcm9tIFwiLi4vc3RydWN0SXRlcmF0b3JcIjtcbmV4cG9ydCBjbGFzcyBYbWxTaGFwZVNlcmlhbGl6ZXIgZXh0ZW5kcyBTZXJkZUNvbnRleHRDb25maWcge1xuICAgIHNldHRpbmdzO1xuICAgIHN0cmluZ0J1ZmZlcjtcbiAgICBieXRlQnVmZmVyO1xuICAgIGJ1ZmZlcjtcbiAgICBjb25zdHJ1Y3RvcihzZXR0aW5ncykge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnNldHRpbmdzID0gc2V0dGluZ3M7XG4gICAgfVxuICAgIHdyaXRlKHNjaGVtYSwgdmFsdWUpIHtcbiAgICAgICAgY29uc3QgbnMgPSBOb3JtYWxpemVkU2NoZW1hLm9mKHNjaGVtYSk7XG4gICAgICAgIGlmIChucy5pc1N0cmluZ1NjaGVtYSgpICYmIHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgdGhpcy5zdHJpbmdCdWZmZXIgPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChucy5pc0Jsb2JTY2hlbWEoKSkge1xuICAgICAgICAgICAgdGhpcy5ieXRlQnVmZmVyID1cbiAgICAgICAgICAgICAgICBcImJ5dGVMZW5ndGhcIiBpbiB2YWx1ZVxuICAgICAgICAgICAgICAgICAgICA/IHZhbHVlXG4gICAgICAgICAgICAgICAgICAgIDogKHRoaXMuc2VyZGVDb250ZXh0Py5iYXNlNjREZWNvZGVyID8/IGZyb21CYXNlNjQpKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuYnVmZmVyID0gdGhpcy53cml0ZVN0cnVjdChucywgdmFsdWUsIHVuZGVmaW5lZCk7XG4gICAgICAgICAgICBjb25zdCB0cmFpdHMgPSBucy5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgICAgIGlmICh0cmFpdHMuaHR0cFBheWxvYWQgJiYgIXRyYWl0cy54bWxOYW1lKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5idWZmZXIud2l0aE5hbWUobnMuZ2V0TmFtZSgpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBmbHVzaCgpIHtcbiAgICAgICAgaWYgKHRoaXMuYnl0ZUJ1ZmZlciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBjb25zdCBieXRlcyA9IHRoaXMuYnl0ZUJ1ZmZlcjtcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLmJ5dGVCdWZmZXI7XG4gICAgICAgICAgICByZXR1cm4gYnl0ZXM7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuc3RyaW5nQnVmZmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHN0ciA9IHRoaXMuc3RyaW5nQnVmZmVyO1xuICAgICAgICAgICAgZGVsZXRlIHRoaXMuc3RyaW5nQnVmZmVyO1xuICAgICAgICAgICAgcmV0dXJuIHN0cjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBidWZmZXIgPSB0aGlzLmJ1ZmZlcjtcbiAgICAgICAgaWYgKHRoaXMuc2V0dGluZ3MueG1sTmFtZXNwYWNlKSB7XG4gICAgICAgICAgICBpZiAoIWJ1ZmZlcj8uYXR0cmlidXRlcz8uW1wieG1sbnNcIl0pIHtcbiAgICAgICAgICAgICAgICBidWZmZXIuYWRkQXR0cmlidXRlKFwieG1sbnNcIiwgdGhpcy5zZXR0aW5ncy54bWxOYW1lc3BhY2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGRlbGV0ZSB0aGlzLmJ1ZmZlcjtcbiAgICAgICAgcmV0dXJuIGJ1ZmZlci50b1N0cmluZygpO1xuICAgIH1cbiAgICB3cml0ZVN0cnVjdChucywgdmFsdWUsIHBhcmVudFhtbG5zKSB7XG4gICAgICAgIGNvbnN0IHRyYWl0cyA9IG5zLmdldE1lcmdlZFRyYWl0cygpO1xuICAgICAgICBjb25zdCBuYW1lID0gbnMuaXNNZW1iZXJTY2hlbWEoKSAmJiAhdHJhaXRzLmh0dHBQYXlsb2FkXG4gICAgICAgICAgICA/IG5zLmdldE1lbWJlclRyYWl0cygpLnhtbE5hbWUgPz8gbnMuZ2V0TWVtYmVyTmFtZSgpXG4gICAgICAgICAgICA6IHRyYWl0cy54bWxOYW1lID8/IG5zLmdldE5hbWUoKTtcbiAgICAgICAgaWYgKCFuYW1lIHx8ICFucy5pc1N0cnVjdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEBhd3Mtc2RrL2NvcmUvcHJvdG9jb2xzIC0geG1sIHNlcmlhbGl6ZXIsIGNhbm5vdCB3cml0ZSBzdHJ1Y3Qgd2l0aCBlbXB0eSBuYW1lIG9yIG5vbi1zdHJ1Y3QsIHNjaGVtYT0ke25zLmdldE5hbWUodHJ1ZSl9LmApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHN0cnVjdFhtbE5vZGUgPSBYbWxOb2RlLm9mKG5hbWUpO1xuICAgICAgICBjb25zdCBbeG1sbnNBdHRyLCB4bWxuc10gPSB0aGlzLmdldFhtbG5zQXR0cmlidXRlKG5zLCBwYXJlbnRYbWxucyk7XG4gICAgICAgIGZvciAoY29uc3QgW21lbWJlck5hbWUsIG1lbWJlclNjaGVtYV0gb2Ygc2VyaWFsaXppbmdTdHJ1Y3RJdGVyYXRvcihucywgdmFsdWUpKSB7XG4gICAgICAgICAgICBjb25zdCB2YWwgPSB2YWx1ZVttZW1iZXJOYW1lXTtcbiAgICAgICAgICAgIGlmICh2YWwgIT0gbnVsbCB8fCBtZW1iZXJTY2hlbWEuaXNJZGVtcG90ZW5jeVRva2VuKCkpIHtcbiAgICAgICAgICAgICAgICBpZiAobWVtYmVyU2NoZW1hLmdldE1lcmdlZFRyYWl0cygpLnhtbEF0dHJpYnV0ZSkge1xuICAgICAgICAgICAgICAgICAgICBzdHJ1Y3RYbWxOb2RlLmFkZEF0dHJpYnV0ZShtZW1iZXJTY2hlbWEuZ2V0TWVyZ2VkVHJhaXRzKCkueG1sTmFtZSA/PyBtZW1iZXJOYW1lLCB0aGlzLndyaXRlU2ltcGxlKG1lbWJlclNjaGVtYSwgdmFsKSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAobWVtYmVyU2NoZW1hLmlzTGlzdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMud3JpdGVMaXN0KG1lbWJlclNjaGVtYSwgdmFsLCBzdHJ1Y3RYbWxOb2RlLCB4bWxucyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKG1lbWJlclNjaGVtYS5pc01hcFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMud3JpdGVNYXAobWVtYmVyU2NoZW1hLCB2YWwsIHN0cnVjdFhtbE5vZGUsIHhtbG5zKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAobWVtYmVyU2NoZW1hLmlzU3RydWN0U2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgc3RydWN0WG1sTm9kZS5hZGRDaGlsZE5vZGUodGhpcy53cml0ZVN0cnVjdChtZW1iZXJTY2hlbWEsIHZhbCwgeG1sbnMpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1lbWJlck5vZGUgPSBYbWxOb2RlLm9mKG1lbWJlclNjaGVtYS5nZXRNZXJnZWRUcmFpdHMoKS54bWxOYW1lID8/IG1lbWJlclNjaGVtYS5nZXRNZW1iZXJOYW1lKCkpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLndyaXRlU2ltcGxlSW50byhtZW1iZXJTY2hlbWEsIHZhbCwgbWVtYmVyTm9kZSwgeG1sbnMpO1xuICAgICAgICAgICAgICAgICAgICBzdHJ1Y3RYbWxOb2RlLmFkZENoaWxkTm9kZShtZW1iZXJOb2RlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHhtbG5zKSB7XG4gICAgICAgICAgICBzdHJ1Y3RYbWxOb2RlLmFkZEF0dHJpYnV0ZSh4bWxuc0F0dHIsIHhtbG5zKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc3RydWN0WG1sTm9kZTtcbiAgICB9XG4gICAgd3JpdGVMaXN0KGxpc3RNZW1iZXIsIGFycmF5LCBjb250YWluZXIsIHBhcmVudFhtbG5zKSB7XG4gICAgICAgIGlmICghbGlzdE1lbWJlci5pc01lbWJlclNjaGVtYSgpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEBhd3Mtc2RrL2NvcmUvcHJvdG9jb2xzIC0geG1sIHNlcmlhbGl6ZXIsIGNhbm5vdCB3cml0ZSBub24tbWVtYmVyIGxpc3Q6ICR7bGlzdE1lbWJlci5nZXROYW1lKHRydWUpfWApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGxpc3RUcmFpdHMgPSBsaXN0TWVtYmVyLmdldE1lcmdlZFRyYWl0cygpO1xuICAgICAgICBjb25zdCBsaXN0VmFsdWVTY2hlbWEgPSBsaXN0TWVtYmVyLmdldFZhbHVlU2NoZW1hKCk7XG4gICAgICAgIGNvbnN0IGxpc3RWYWx1ZVRyYWl0cyA9IGxpc3RWYWx1ZVNjaGVtYS5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgY29uc3Qgc3BhcnNlID0gISFsaXN0VmFsdWVUcmFpdHMuc3BhcnNlO1xuICAgICAgICBjb25zdCBmbGF0ID0gISFsaXN0VHJhaXRzLnhtbEZsYXR0ZW5lZDtcbiAgICAgICAgY29uc3QgW3htbG5zQXR0ciwgeG1sbnNdID0gdGhpcy5nZXRYbWxuc0F0dHJpYnV0ZShsaXN0TWVtYmVyLCBwYXJlbnRYbWxucyk7XG4gICAgICAgIGNvbnN0IHdyaXRlSXRlbSA9IChjb250YWluZXIsIHZhbHVlKSA9PiB7XG4gICAgICAgICAgICBpZiAobGlzdFZhbHVlU2NoZW1hLmlzTGlzdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZUxpc3QobGlzdFZhbHVlU2NoZW1hLCBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW3ZhbHVlXSwgY29udGFpbmVyLCB4bWxucyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChsaXN0VmFsdWVTY2hlbWEuaXNNYXBTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVNYXAobGlzdFZhbHVlU2NoZW1hLCB2YWx1ZSwgY29udGFpbmVyLCB4bWxucyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChsaXN0VmFsdWVTY2hlbWEuaXNTdHJ1Y3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCA9IHRoaXMud3JpdGVTdHJ1Y3QobGlzdFZhbHVlU2NoZW1hLCB2YWx1ZSwgeG1sbnMpO1xuICAgICAgICAgICAgICAgIGNvbnRhaW5lci5hZGRDaGlsZE5vZGUoc3RydWN0LndpdGhOYW1lKGZsYXQgPyBsaXN0VHJhaXRzLnhtbE5hbWUgPz8gbGlzdE1lbWJlci5nZXRNZW1iZXJOYW1lKCkgOiBsaXN0VmFsdWVUcmFpdHMueG1sTmFtZSA/PyBcIm1lbWJlclwiKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBsaXN0SXRlbU5vZGUgPSBYbWxOb2RlLm9mKGZsYXQgPyBsaXN0VHJhaXRzLnhtbE5hbWUgPz8gbGlzdE1lbWJlci5nZXRNZW1iZXJOYW1lKCkgOiBsaXN0VmFsdWVUcmFpdHMueG1sTmFtZSA/PyBcIm1lbWJlclwiKTtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlU2ltcGxlSW50byhsaXN0VmFsdWVTY2hlbWEsIHZhbHVlLCBsaXN0SXRlbU5vZGUsIHhtbG5zKTtcbiAgICAgICAgICAgICAgICBjb250YWluZXIuYWRkQ2hpbGROb2RlKGxpc3RJdGVtTm9kZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIGlmIChmbGF0KSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHZhbHVlIG9mIGFycmF5KSB7XG4gICAgICAgICAgICAgICAgaWYgKHNwYXJzZSB8fCB2YWx1ZSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHdyaXRlSXRlbShjb250YWluZXIsIHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBsaXN0Tm9kZSA9IFhtbE5vZGUub2YobGlzdFRyYWl0cy54bWxOYW1lID8/IGxpc3RNZW1iZXIuZ2V0TWVtYmVyTmFtZSgpKTtcbiAgICAgICAgICAgIGlmICh4bWxucykge1xuICAgICAgICAgICAgICAgIGxpc3ROb2RlLmFkZEF0dHJpYnV0ZSh4bWxuc0F0dHIsIHhtbG5zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZvciAoY29uc3QgdmFsdWUgb2YgYXJyYXkpIHtcbiAgICAgICAgICAgICAgICBpZiAoc3BhcnNlIHx8IHZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgd3JpdGVJdGVtKGxpc3ROb2RlLCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29udGFpbmVyLmFkZENoaWxkTm9kZShsaXN0Tm9kZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgd3JpdGVNYXAobWFwTWVtYmVyLCBtYXAsIGNvbnRhaW5lciwgcGFyZW50WG1sbnMsIGNvbnRhaW5lcklzTWFwID0gZmFsc2UpIHtcbiAgICAgICAgaWYgKCFtYXBNZW1iZXIuaXNNZW1iZXJTY2hlbWEoKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBAYXdzLXNkay9jb3JlL3Byb3RvY29scyAtIHhtbCBzZXJpYWxpemVyLCBjYW5ub3Qgd3JpdGUgbm9uLW1lbWJlciBtYXA6ICR7bWFwTWVtYmVyLmdldE5hbWUodHJ1ZSl9YCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbWFwVHJhaXRzID0gbWFwTWVtYmVyLmdldE1lcmdlZFRyYWl0cygpO1xuICAgICAgICBjb25zdCBtYXBLZXlTY2hlbWEgPSBtYXBNZW1iZXIuZ2V0S2V5U2NoZW1hKCk7XG4gICAgICAgIGNvbnN0IG1hcEtleVRyYWl0cyA9IG1hcEtleVNjaGVtYS5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgY29uc3Qga2V5VGFnID0gbWFwS2V5VHJhaXRzLnhtbE5hbWUgPz8gXCJrZXlcIjtcbiAgICAgICAgY29uc3QgbWFwVmFsdWVTY2hlbWEgPSBtYXBNZW1iZXIuZ2V0VmFsdWVTY2hlbWEoKTtcbiAgICAgICAgY29uc3QgbWFwVmFsdWVUcmFpdHMgPSBtYXBWYWx1ZVNjaGVtYS5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgY29uc3QgdmFsdWVUYWcgPSBtYXBWYWx1ZVRyYWl0cy54bWxOYW1lID8/IFwidmFsdWVcIjtcbiAgICAgICAgY29uc3Qgc3BhcnNlID0gISFtYXBWYWx1ZVRyYWl0cy5zcGFyc2U7XG4gICAgICAgIGNvbnN0IGZsYXQgPSAhIW1hcFRyYWl0cy54bWxGbGF0dGVuZWQ7XG4gICAgICAgIGNvbnN0IFt4bWxuc0F0dHIsIHhtbG5zXSA9IHRoaXMuZ2V0WG1sbnNBdHRyaWJ1dGUobWFwTWVtYmVyLCBwYXJlbnRYbWxucyk7XG4gICAgICAgIGNvbnN0IGFkZEtleVZhbHVlID0gKGVudHJ5LCBrZXksIHZhbCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qga2V5Tm9kZSA9IFhtbE5vZGUub2Yoa2V5VGFnLCBrZXkpO1xuICAgICAgICAgICAgY29uc3QgW2tleVhtbG5zQXR0ciwga2V5WG1sbnNdID0gdGhpcy5nZXRYbWxuc0F0dHJpYnV0ZShtYXBLZXlTY2hlbWEsIHhtbG5zKTtcbiAgICAgICAgICAgIGlmIChrZXlYbWxucykge1xuICAgICAgICAgICAgICAgIGtleU5vZGUuYWRkQXR0cmlidXRlKGtleVhtbG5zQXR0ciwga2V5WG1sbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZW50cnkuYWRkQ2hpbGROb2RlKGtleU5vZGUpO1xuICAgICAgICAgICAgbGV0IHZhbHVlTm9kZSA9IFhtbE5vZGUub2YodmFsdWVUYWcpO1xuICAgICAgICAgICAgaWYgKG1hcFZhbHVlU2NoZW1hLmlzTGlzdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZUxpc3QobWFwVmFsdWVTY2hlbWEsIHZhbCwgdmFsdWVOb2RlLCB4bWxucyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChtYXBWYWx1ZVNjaGVtYS5pc01hcFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZU1hcChtYXBWYWx1ZVNjaGVtYSwgdmFsLCB2YWx1ZU5vZGUsIHhtbG5zLCB0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKG1hcFZhbHVlU2NoZW1hLmlzU3RydWN0U2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICB2YWx1ZU5vZGUgPSB0aGlzLndyaXRlU3RydWN0KG1hcFZhbHVlU2NoZW1hLCB2YWwsIHhtbG5zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVTaW1wbGVJbnRvKG1hcFZhbHVlU2NoZW1hLCB2YWwsIHZhbHVlTm9kZSwgeG1sbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZW50cnkuYWRkQ2hpbGROb2RlKHZhbHVlTm9kZSk7XG4gICAgICAgIH07XG4gICAgICAgIGlmIChmbGF0KSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbF0gb2YgT2JqZWN0LmVudHJpZXMobWFwKSkge1xuICAgICAgICAgICAgICAgIGlmIChzcGFyc2UgfHwgdmFsICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZW50cnkgPSBYbWxOb2RlLm9mKG1hcFRyYWl0cy54bWxOYW1lID8/IG1hcE1lbWJlci5nZXRNZW1iZXJOYW1lKCkpO1xuICAgICAgICAgICAgICAgICAgICBhZGRLZXlWYWx1ZShlbnRyeSwga2V5LCB2YWwpO1xuICAgICAgICAgICAgICAgICAgICBjb250YWluZXIuYWRkQ2hpbGROb2RlKGVudHJ5KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBsZXQgbWFwTm9kZTtcbiAgICAgICAgICAgIGlmICghY29udGFpbmVySXNNYXApIHtcbiAgICAgICAgICAgICAgICBtYXBOb2RlID0gWG1sTm9kZS5vZihtYXBUcmFpdHMueG1sTmFtZSA/PyBtYXBNZW1iZXIuZ2V0TWVtYmVyTmFtZSgpKTtcbiAgICAgICAgICAgICAgICBpZiAoeG1sbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgbWFwTm9kZS5hZGRBdHRyaWJ1dGUoeG1sbnNBdHRyLCB4bWxucyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnRhaW5lci5hZGRDaGlsZE5vZGUobWFwTm9kZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbF0gb2YgT2JqZWN0LmVudHJpZXMobWFwKSkge1xuICAgICAgICAgICAgICAgIGlmIChzcGFyc2UgfHwgdmFsICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZW50cnkgPSBYbWxOb2RlLm9mKFwiZW50cnlcIik7XG4gICAgICAgICAgICAgICAgICAgIGFkZEtleVZhbHVlKGVudHJ5LCBrZXksIHZhbCk7XG4gICAgICAgICAgICAgICAgICAgIChjb250YWluZXJJc01hcCA/IGNvbnRhaW5lciA6IG1hcE5vZGUpLmFkZENoaWxkTm9kZShlbnRyeSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHdyaXRlU2ltcGxlKF9zY2hlbWEsIHZhbHVlKSB7XG4gICAgICAgIGlmIChudWxsID09PSB2YWx1ZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSAoWE1MIHNlcmlhbGl6ZXIpIGNhbm5vdCB3cml0ZSBudWxsIHZhbHVlLlwiKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBucyA9IE5vcm1hbGl6ZWRTY2hlbWEub2YoX3NjaGVtYSk7XG4gICAgICAgIGxldCBub2RlQ29udGVudHMgPSBudWxsO1xuICAgICAgICBpZiAodmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICBpZiAobnMuaXNCbG9iU2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICBub2RlQ29udGVudHMgPSAodGhpcy5zZXJkZUNvbnRleHQ/LmJhc2U2NEVuY29kZXIgPz8gdG9CYXNlNjQpKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKG5zLmlzVGltZXN0YW1wU2NoZW1hKCkgJiYgdmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZm9ybWF0ID0gZGV0ZXJtaW5lVGltZXN0YW1wRm9ybWF0KG5zLCB0aGlzLnNldHRpbmdzKTtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGZvcm1hdCkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgICAgICAgICAgICAgICBub2RlQ29udGVudHMgPSB2YWx1ZS50b0lTT1N0cmluZygpLnJlcGxhY2UoXCIuMDAwWlwiLCBcIlpcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgICAgICAgICAgICAgbm9kZUNvbnRlbnRzID0gZGF0ZVRvVXRjU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDc6XG4gICAgICAgICAgICAgICAgICAgICAgICBub2RlQ29udGVudHMgPSBTdHJpbmcodmFsdWUuZ2V0VGltZSgpIC8gMTAwMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihcIk1pc3NpbmcgdGltZXN0YW1wIGZvcm1hdCwgdXNpbmcgaHR0cCBkYXRlXCIsIHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vZGVDb250ZW50cyA9IGRhdGVUb1V0Y1N0cmluZyh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChucy5pc0JpZ0RlY2ltYWxTY2hlbWEoKSAmJiB2YWx1ZSkge1xuICAgICAgICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIE51bWVyaWNWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUuc3RyaW5nO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKG5zLmlzTWFwU2NoZW1hKCkgfHwgbnMuaXNMaXN0U2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJAYXdzLXNkay9jb3JlL3Byb3RvY29scyAtIHhtbCBzZXJpYWxpemVyLCBjYW5ub3QgY2FsbCBfd3JpdGUoKSBvbiBMaXN0L01hcCBzY2hlbWEsIGNhbGwgd3JpdGVMaXN0IG9yIHdyaXRlTWFwKCkgaW5zdGVhZC5cIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEBhd3Mtc2RrL2NvcmUvcHJvdG9jb2xzIC0geG1sIHNlcmlhbGl6ZXIsIHVuaGFuZGxlZCBzY2hlbWEgdHlwZSBmb3Igb2JqZWN0IHZhbHVlIGFuZCBzY2hlbWE6ICR7bnMuZ2V0TmFtZSh0cnVlKX1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAobnMuaXNCb29sZWFuU2NoZW1hKCkgfHwgbnMuaXNOdW1lcmljU2NoZW1hKCkgfHwgbnMuaXNCaWdJbnRlZ2VyU2NoZW1hKCkgfHwgbnMuaXNCaWdEZWNpbWFsU2NoZW1hKCkpIHtcbiAgICAgICAgICAgIG5vZGVDb250ZW50cyA9IFN0cmluZyh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzU3RyaW5nU2NoZW1hKCkpIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkICYmIG5zLmlzSWRlbXBvdGVuY3lUb2tlbigpKSB7XG4gICAgICAgICAgICAgICAgbm9kZUNvbnRlbnRzID0gZ2VuZXJhdGVJZGVtcG90ZW5jeVRva2VuKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBub2RlQ29udGVudHMgPSBTdHJpbmcodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChub2RlQ29udGVudHMgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5oYW5kbGVkIHNjaGVtYS12YWx1ZSBwYWlyICR7bnMuZ2V0TmFtZSh0cnVlKX09JHt2YWx1ZX1gKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbm9kZUNvbnRlbnRzO1xuICAgIH1cbiAgICB3cml0ZVNpbXBsZUludG8oX3NjaGVtYSwgdmFsdWUsIGludG8sIHBhcmVudFhtbG5zKSB7XG4gICAgICAgIGNvbnN0IG5vZGVDb250ZW50cyA9IHRoaXMud3JpdGVTaW1wbGUoX3NjaGVtYSwgdmFsdWUpO1xuICAgICAgICBjb25zdCBucyA9IE5vcm1hbGl6ZWRTY2hlbWEub2YoX3NjaGVtYSk7XG4gICAgICAgIGNvbnN0IGNvbnRlbnQgPSBuZXcgWG1sVGV4dChub2RlQ29udGVudHMpO1xuICAgICAgICBjb25zdCBbeG1sbnNBdHRyLCB4bWxuc10gPSB0aGlzLmdldFhtbG5zQXR0cmlidXRlKG5zLCBwYXJlbnRYbWxucyk7XG4gICAgICAgIGlmICh4bWxucykge1xuICAgICAgICAgICAgaW50by5hZGRBdHRyaWJ1dGUoeG1sbnNBdHRyLCB4bWxucyk7XG4gICAgICAgIH1cbiAgICAgICAgaW50by5hZGRDaGlsZE5vZGUoY29udGVudCk7XG4gICAgfVxuICAgIGdldFhtbG5zQXR0cmlidXRlKG5zLCBwYXJlbnRYbWxucykge1xuICAgICAgICBjb25zdCB0cmFpdHMgPSBucy5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgY29uc3QgW3ByZWZpeCwgeG1sbnNdID0gdHJhaXRzLnhtbE5hbWVzcGFjZSA/PyBbXTtcbiAgICAgICAgaWYgKHhtbG5zICYmIHhtbG5zICE9PSBwYXJlbnRYbWxucykge1xuICAgICAgICAgICAgcmV0dXJuIFtwcmVmaXggPyBgeG1sbnM6JHtwcmVmaXh9YCA6IFwieG1sbnNcIiwgeG1sbnNdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBbdm9pZCAwLCB2b2lkIDBdO1xuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBTZXJkZUNvbnRleHRDb25maWcgfSBmcm9tIFwiLi4vQ29uZmlndXJhYmxlU2VyZGVDb250ZXh0XCI7XG5pbXBvcnQgeyBYbWxTaGFwZURlc2VyaWFsaXplciB9IGZyb20gXCIuL1htbFNoYXBlRGVzZXJpYWxpemVyXCI7XG5pbXBvcnQgeyBYbWxTaGFwZVNlcmlhbGl6ZXIgfSBmcm9tIFwiLi9YbWxTaGFwZVNlcmlhbGl6ZXJcIjtcbmV4cG9ydCBjbGFzcyBYbWxDb2RlYyBleHRlbmRzIFNlcmRlQ29udGV4dENvbmZpZyB7XG4gICAgc2V0dGluZ3M7XG4gICAgY29uc3RydWN0b3Ioc2V0dGluZ3MpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5zZXR0aW5ncyA9IHNldHRpbmdzO1xuICAgIH1cbiAgICBjcmVhdGVTZXJpYWxpemVyKCkge1xuICAgICAgICBjb25zdCBzZXJpYWxpemVyID0gbmV3IFhtbFNoYXBlU2VyaWFsaXplcih0aGlzLnNldHRpbmdzKTtcbiAgICAgICAgc2VyaWFsaXplci5zZXRTZXJkZUNvbnRleHQodGhpcy5zZXJkZUNvbnRleHQpO1xuICAgICAgICByZXR1cm4gc2VyaWFsaXplcjtcbiAgICB9XG4gICAgY3JlYXRlRGVzZXJpYWxpemVyKCkge1xuICAgICAgICBjb25zdCBkZXNlcmlhbGl6ZXIgPSBuZXcgWG1sU2hhcGVEZXNlcmlhbGl6ZXIodGhpcy5zZXR0aW5ncyk7XG4gICAgICAgIGRlc2VyaWFsaXplci5zZXRTZXJkZUNvbnRleHQodGhpcy5zZXJkZUNvbnRleHQpO1xuICAgICAgICByZXR1cm4gZGVzZXJpYWxpemVyO1xuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBIdHRwQmluZGluZ1Byb3RvY29sLCBIdHRwSW50ZXJjZXB0aW5nU2hhcGVEZXNlcmlhbGl6ZXIsIEh0dHBJbnRlcmNlcHRpbmdTaGFwZVNlcmlhbGl6ZXIsIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9wcm90b2NvbHNcIjtcbmltcG9ydCB7IE5vcm1hbGl6ZWRTY2hlbWEsIFR5cGVSZWdpc3RyeSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2NoZW1hXCI7XG5pbXBvcnQgeyBQcm90b2NvbExpYiB9IGZyb20gXCIuLi9Qcm90b2NvbExpYlwiO1xuaW1wb3J0IHsgbG9hZFJlc3RYbWxFcnJvckNvZGUgfSBmcm9tIFwiLi9wYXJzZVhtbEJvZHlcIjtcbmltcG9ydCB7IFhtbENvZGVjIH0gZnJvbSBcIi4vWG1sQ29kZWNcIjtcbmV4cG9ydCBjbGFzcyBBd3NSZXN0WG1sUHJvdG9jb2wgZXh0ZW5kcyBIdHRwQmluZGluZ1Byb3RvY29sIHtcbiAgICBjb2RlYztcbiAgICBzZXJpYWxpemVyO1xuICAgIGRlc2VyaWFsaXplcjtcbiAgICBtaXhpbiA9IG5ldyBQcm90b2NvbExpYigpO1xuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnMpIHtcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XG4gICAgICAgIGNvbnN0IHNldHRpbmdzID0ge1xuICAgICAgICAgICAgdGltZXN0YW1wRm9ybWF0OiB7XG4gICAgICAgICAgICAgICAgdXNlVHJhaXQ6IHRydWUsXG4gICAgICAgICAgICAgICAgZGVmYXVsdDogNSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBodHRwQmluZGluZ3M6IHRydWUsXG4gICAgICAgICAgICB4bWxOYW1lc3BhY2U6IG9wdGlvbnMueG1sTmFtZXNwYWNlLFxuICAgICAgICAgICAgc2VydmljZU5hbWVzcGFjZTogb3B0aW9ucy5kZWZhdWx0TmFtZXNwYWNlLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmNvZGVjID0gbmV3IFhtbENvZGVjKHNldHRpbmdzKTtcbiAgICAgICAgdGhpcy5zZXJpYWxpemVyID0gbmV3IEh0dHBJbnRlcmNlcHRpbmdTaGFwZVNlcmlhbGl6ZXIodGhpcy5jb2RlYy5jcmVhdGVTZXJpYWxpemVyKCksIHNldHRpbmdzKTtcbiAgICAgICAgdGhpcy5kZXNlcmlhbGl6ZXIgPSBuZXcgSHR0cEludGVyY2VwdGluZ1NoYXBlRGVzZXJpYWxpemVyKHRoaXMuY29kZWMuY3JlYXRlRGVzZXJpYWxpemVyKCksIHNldHRpbmdzKTtcbiAgICB9XG4gICAgZ2V0UGF5bG9hZENvZGVjKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb2RlYztcbiAgICB9XG4gICAgZ2V0U2hhcGVJZCgpIHtcbiAgICAgICAgcmV0dXJuIFwiYXdzLnByb3RvY29scyNyZXN0WG1sXCI7XG4gICAgfVxuICAgIGFzeW5jIHNlcmlhbGl6ZVJlcXVlc3Qob3BlcmF0aW9uU2NoZW1hLCBpbnB1dCwgY29udGV4dCkge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gYXdhaXQgc3VwZXIuc2VyaWFsaXplUmVxdWVzdChvcGVyYXRpb25TY2hlbWEsIGlucHV0LCBjb250ZXh0KTtcbiAgICAgICAgY29uc3QgaW5wdXRTY2hlbWEgPSBOb3JtYWxpemVkU2NoZW1hLm9mKG9wZXJhdGlvblNjaGVtYS5pbnB1dCk7XG4gICAgICAgIGlmICghcmVxdWVzdC5oZWFkZXJzW1wiY29udGVudC10eXBlXCJdKSB7XG4gICAgICAgICAgICBjb25zdCBjb250ZW50VHlwZSA9IHRoaXMubWl4aW4ucmVzb2x2ZVJlc3RDb250ZW50VHlwZSh0aGlzLmdldERlZmF1bHRDb250ZW50VHlwZSgpLCBpbnB1dFNjaGVtYSk7XG4gICAgICAgICAgICBpZiAoY29udGVudFR5cGUpIHtcbiAgICAgICAgICAgICAgICByZXF1ZXN0LmhlYWRlcnNbXCJjb250ZW50LXR5cGVcIl0gPSBjb250ZW50VHlwZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIHJlcXVlc3QuYm9keSA9PT0gXCJzdHJpbmdcIiAmJlxuICAgICAgICAgICAgcmVxdWVzdC5oZWFkZXJzW1wiY29udGVudC10eXBlXCJdID09PSB0aGlzLmdldERlZmF1bHRDb250ZW50VHlwZSgpICYmXG4gICAgICAgICAgICAhcmVxdWVzdC5ib2R5LnN0YXJ0c1dpdGgoXCI8P3htbCBcIikgJiZcbiAgICAgICAgICAgICF0aGlzLmhhc1Vuc3RydWN0dXJlZFBheWxvYWRCaW5kaW5nKGlucHV0U2NoZW1hKSkge1xuICAgICAgICAgICAgcmVxdWVzdC5ib2R5ID0gJzw/eG1sIHZlcnNpb249XCIxLjBcIiBlbmNvZGluZz1cIlVURi04XCI/PicgKyByZXF1ZXN0LmJvZHk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlcXVlc3Q7XG4gICAgfVxuICAgIGFzeW5jIGRlc2VyaWFsaXplUmVzcG9uc2Uob3BlcmF0aW9uU2NoZW1hLCBjb250ZXh0LCByZXNwb25zZSkge1xuICAgICAgICByZXR1cm4gc3VwZXIuZGVzZXJpYWxpemVSZXNwb25zZShvcGVyYXRpb25TY2hlbWEsIGNvbnRleHQsIHJlc3BvbnNlKTtcbiAgICB9XG4gICAgYXN5bmMgaGFuZGxlRXJyb3Iob3BlcmF0aW9uU2NoZW1hLCBjb250ZXh0LCByZXNwb25zZSwgZGF0YU9iamVjdCwgbWV0YWRhdGEpIHtcbiAgICAgICAgY29uc3QgZXJyb3JJZGVudGlmaWVyID0gbG9hZFJlc3RYbWxFcnJvckNvZGUocmVzcG9uc2UsIGRhdGFPYmplY3QpID8/IFwiVW5rbm93blwiO1xuICAgICAgICBjb25zdCB7IGVycm9yU2NoZW1hLCBlcnJvck1ldGFkYXRhIH0gPSBhd2FpdCB0aGlzLm1peGluLmdldEVycm9yU2NoZW1hT3JUaHJvd0Jhc2VFeGNlcHRpb24oZXJyb3JJZGVudGlmaWVyLCB0aGlzLm9wdGlvbnMuZGVmYXVsdE5hbWVzcGFjZSwgcmVzcG9uc2UsIGRhdGFPYmplY3QsIG1ldGFkYXRhKTtcbiAgICAgICAgY29uc3QgbnMgPSBOb3JtYWxpemVkU2NoZW1hLm9mKGVycm9yU2NoZW1hKTtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGRhdGFPYmplY3QuRXJyb3I/Lm1lc3NhZ2UgPz8gZGF0YU9iamVjdC5FcnJvcj8uTWVzc2FnZSA/PyBkYXRhT2JqZWN0Lm1lc3NhZ2UgPz8gZGF0YU9iamVjdC5NZXNzYWdlID8/IFwiVW5rbm93blwiO1xuICAgICAgICBjb25zdCBFcnJvckN0b3IgPSBUeXBlUmVnaXN0cnkuZm9yKGVycm9yU2NoZW1hWzFdKS5nZXRFcnJvckN0b3IoZXJyb3JTY2hlbWEpID8/IEVycm9yO1xuICAgICAgICBjb25zdCBleGNlcHRpb24gPSBuZXcgRXJyb3JDdG9yKG1lc3NhZ2UpO1xuICAgICAgICBhd2FpdCB0aGlzLmRlc2VyaWFsaXplSHR0cE1lc3NhZ2UoZXJyb3JTY2hlbWEsIGNvbnRleHQsIHJlc3BvbnNlLCBkYXRhT2JqZWN0KTtcbiAgICAgICAgY29uc3Qgb3V0cHV0ID0ge307XG4gICAgICAgIGZvciAoY29uc3QgW25hbWUsIG1lbWJlcl0gb2YgbnMuc3RydWN0SXRlcmF0b3IoKSkge1xuICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gbWVtYmVyLmdldE1lcmdlZFRyYWl0cygpLnhtbE5hbWUgPz8gbmFtZTtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZGF0YU9iamVjdC5FcnJvcj8uW3RhcmdldF0gPz8gZGF0YU9iamVjdFt0YXJnZXRdO1xuICAgICAgICAgICAgb3V0cHV0W25hbWVdID0gdGhpcy5jb2RlYy5jcmVhdGVEZXNlcmlhbGl6ZXIoKS5yZWFkU2NoZW1hKG1lbWJlciwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IHRoaXMubWl4aW4uZGVjb3JhdGVTZXJ2aWNlRXhjZXB0aW9uKE9iamVjdC5hc3NpZ24oZXhjZXB0aW9uLCBlcnJvck1ldGFkYXRhLCB7XG4gICAgICAgICAgICAkZmF1bHQ6IG5zLmdldE1lcmdlZFRyYWl0cygpLmVycm9yLFxuICAgICAgICAgICAgbWVzc2FnZSxcbiAgICAgICAgfSwgb3V0cHV0KSwgZGF0YU9iamVjdCk7XG4gICAgfVxuICAgIGdldERlZmF1bHRDb250ZW50VHlwZSgpIHtcbiAgICAgICAgcmV0dXJuIFwiYXBwbGljYXRpb24veG1sXCI7XG4gICAgfVxuICAgIGhhc1Vuc3RydWN0dXJlZFBheWxvYWRCaW5kaW5nKG5zKSB7XG4gICAgICAgIGZvciAoY29uc3QgWywgbWVtYmVyXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICBpZiAobWVtYmVyLmdldE1lcmdlZFRyYWl0cygpLmh0dHBQYXlsb2FkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICEobWVtYmVyLmlzU3RydWN0U2NoZW1hKCkgfHwgbWVtYmVyLmlzTWFwU2NoZW1hKCkgfHwgbWVtYmVyLmlzTGlzdFNjaGVtYSgpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuIiwgImV4cG9ydCAqIGZyb20gXCIuL2Nib3IvQXdzU21pdGh5UnBjVjJDYm9yUHJvdG9jb2xcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvZXJjaW5nLXNlcmlhbGl6ZXJzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9qc29uL0F3c0pzb24xXzBQcm90b2NvbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vanNvbi9Bd3NKc29uMV8xUHJvdG9jb2xcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2pzb24vQXdzSnNvblJwY1Byb3RvY29sXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9qc29uL0F3c1Jlc3RKc29uUHJvdG9jb2xcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2pzb24vSnNvbkNvZGVjXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9qc29uL0pzb25TaGFwZURlc2VyaWFsaXplclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vanNvbi9Kc29uU2hhcGVTZXJpYWxpemVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9qc29uL2F3c0V4cGVjdFVuaW9uXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9qc29uL3BhcnNlSnNvbkJvZHlcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3F1ZXJ5L0F3c0VjMlF1ZXJ5UHJvdG9jb2xcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3F1ZXJ5L0F3c1F1ZXJ5UHJvdG9jb2xcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3htbC9Bd3NSZXN0WG1sUHJvdG9jb2xcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3htbC9YbWxDb2RlY1wiO1xuZXhwb3J0ICogZnJvbSBcIi4veG1sL1htbFNoYXBlRGVzZXJpYWxpemVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi94bWwvWG1sU2hhcGVTZXJpYWxpemVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi94bWwvcGFyc2VYbWxCb2R5XCI7XG4iLCAiZXhwb3J0ICogZnJvbSBcIi4vc3VibW9kdWxlcy9jbGllbnQvaW5kZXhcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3N1Ym1vZHVsZXMvaHR0cEF1dGhTY2hlbWVzL2luZGV4XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zdWJtb2R1bGVzL3Byb3RvY29scy9pbmRleFwiO1xuIiwgIid1c2Ugc3RyaWN0JztcblxudmFyIGNvcmUgPSByZXF1aXJlKCdAc21pdGh5L2NvcmUnKTtcbnZhciB1dGlsRW5kcG9pbnRzID0gcmVxdWlyZSgnQGF3cy1zZGsvdXRpbC1lbmRwb2ludHMnKTtcbnZhciBwcm90b2NvbEh0dHAgPSByZXF1aXJlKCdAc21pdGh5L3Byb3RvY29sLWh0dHAnKTtcbnZhciBjb3JlJDEgPSByZXF1aXJlKCdAYXdzLXNkay9jb3JlJyk7XG5cbmNvbnN0IERFRkFVTFRfVUFfQVBQX0lEID0gdW5kZWZpbmVkO1xuZnVuY3Rpb24gaXNWYWxpZFVzZXJBZ2VudEFwcElkKGFwcElkKSB7XG4gICAgaWYgKGFwcElkID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiB0eXBlb2YgYXBwSWQgPT09IFwic3RyaW5nXCIgJiYgYXBwSWQubGVuZ3RoIDw9IDUwO1xufVxuZnVuY3Rpb24gcmVzb2x2ZVVzZXJBZ2VudENvbmZpZyhpbnB1dCkge1xuICAgIGNvbnN0IG5vcm1hbGl6ZWRBcHBJZFByb3ZpZGVyID0gY29yZS5ub3JtYWxpemVQcm92aWRlcihpbnB1dC51c2VyQWdlbnRBcHBJZCA/PyBERUZBVUxUX1VBX0FQUF9JRCk7XG4gICAgY29uc3QgeyBjdXN0b21Vc2VyQWdlbnQgfSA9IGlucHV0O1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKGlucHV0LCB7XG4gICAgICAgIGN1c3RvbVVzZXJBZ2VudDogdHlwZW9mIGN1c3RvbVVzZXJBZ2VudCA9PT0gXCJzdHJpbmdcIiA/IFtbY3VzdG9tVXNlckFnZW50XV0gOiBjdXN0b21Vc2VyQWdlbnQsXG4gICAgICAgIHVzZXJBZ2VudEFwcElkOiBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBhcHBJZCA9IGF3YWl0IG5vcm1hbGl6ZWRBcHBJZFByb3ZpZGVyKCk7XG4gICAgICAgICAgICBpZiAoIWlzVmFsaWRVc2VyQWdlbnRBcHBJZChhcHBJZCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBsb2dnZXIgPSBpbnB1dC5sb2dnZXI/LmNvbnN0cnVjdG9yPy5uYW1lID09PSBcIk5vT3BMb2dnZXJcIiB8fCAhaW5wdXQubG9nZ2VyID8gY29uc29sZSA6IGlucHV0LmxvZ2dlcjtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGFwcElkICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAgICAgICAgIGxvZ2dlcj8ud2FybihcInVzZXJBZ2VudEFwcElkIG11c3QgYmUgYSBzdHJpbmcgb3IgdW5kZWZpbmVkLlwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoYXBwSWQubGVuZ3RoID4gNTApIHtcbiAgICAgICAgICAgICAgICAgICAgbG9nZ2VyPy53YXJuKFwiVGhlIHByb3ZpZGVkIHVzZXJBZ2VudEFwcElkIGV4Y2VlZHMgdGhlIG1heGltdW0gbGVuZ3RoIG9mIDUwIGNoYXJhY3RlcnMuXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBhcHBJZDtcbiAgICAgICAgfSxcbiAgICB9KTtcbn1cblxuY29uc3QgQUNDT1VOVF9JRF9FTkRQT0lOVF9SRUdFWCA9IC9cXGR7MTJ9XFwuZGRiLztcbmFzeW5jIGZ1bmN0aW9uIGNoZWNrRmVhdHVyZXMoY29udGV4dCwgY29uZmlnLCBhcmdzKSB7XG4gICAgY29uc3QgcmVxdWVzdCA9IGFyZ3MucmVxdWVzdDtcbiAgICBpZiAocmVxdWVzdD8uaGVhZGVycz8uW1wic21pdGh5LXByb3RvY29sXCJdID09PSBcInJwYy12Mi1jYm9yXCIpIHtcbiAgICAgICAgY29yZSQxLnNldEZlYXR1cmUoY29udGV4dCwgXCJQUk9UT0NPTF9SUENfVjJfQ0JPUlwiLCBcIk1cIik7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgY29uZmlnLnJldHJ5U3RyYXRlZ3kgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICBjb25zdCByZXRyeVN0cmF0ZWd5ID0gYXdhaXQgY29uZmlnLnJldHJ5U3RyYXRlZ3koKTtcbiAgICAgICAgaWYgKHR5cGVvZiByZXRyeVN0cmF0ZWd5LmFjcXVpcmVJbml0aWFsUmV0cnlUb2tlbiA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICBpZiAocmV0cnlTdHJhdGVneS5jb25zdHJ1Y3Rvcj8ubmFtZT8uaW5jbHVkZXMoXCJBZGFwdGl2ZVwiKSkge1xuICAgICAgICAgICAgICAgIGNvcmUkMS5zZXRGZWF0dXJlKGNvbnRleHQsIFwiUkVUUllfTU9ERV9BREFQVElWRVwiLCBcIkZcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb3JlJDEuc2V0RmVhdHVyZShjb250ZXh0LCBcIlJFVFJZX01PREVfU1RBTkRBUkRcIiwgXCJFXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29yZSQxLnNldEZlYXR1cmUoY29udGV4dCwgXCJSRVRSWV9NT0RFX0xFR0FDWVwiLCBcIkRcIik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKHR5cGVvZiBjb25maWcuYWNjb3VudElkRW5kcG9pbnRNb2RlID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgY29uc3QgZW5kcG9pbnRWMiA9IGNvbnRleHQuZW5kcG9pbnRWMjtcbiAgICAgICAgaWYgKFN0cmluZyhlbmRwb2ludFYyPy51cmw/Lmhvc3RuYW1lKS5tYXRjaChBQ0NPVU5UX0lEX0VORFBPSU5UX1JFR0VYKSkge1xuICAgICAgICAgICAgY29yZSQxLnNldEZlYXR1cmUoY29udGV4dCwgXCJBQ0NPVU5UX0lEX0VORFBPSU5UXCIsIFwiT1wiKTtcbiAgICAgICAgfVxuICAgICAgICBzd2l0Y2ggKGF3YWl0IGNvbmZpZy5hY2NvdW50SWRFbmRwb2ludE1vZGU/LigpKSB7XG4gICAgICAgICAgICBjYXNlIFwiZGlzYWJsZWRcIjpcbiAgICAgICAgICAgICAgICBjb3JlJDEuc2V0RmVhdHVyZShjb250ZXh0LCBcIkFDQ09VTlRfSURfTU9ERV9ESVNBQkxFRFwiLCBcIlFcIik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFwicHJlZmVycmVkXCI6XG4gICAgICAgICAgICAgICAgY29yZSQxLnNldEZlYXR1cmUoY29udGV4dCwgXCJBQ0NPVU5UX0lEX01PREVfUFJFRkVSUkVEXCIsIFwiUFwiKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgXCJyZXF1aXJlZFwiOlxuICAgICAgICAgICAgICAgIGNvcmUkMS5zZXRGZWF0dXJlKGNvbnRleHQsIFwiQUNDT1VOVF9JRF9NT0RFX1JFUVVJUkVEXCIsIFwiUlwiKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBpZGVudGl0eSA9IGNvbnRleHQuX19zbWl0aHlfY29udGV4dD8uc2VsZWN0ZWRIdHRwQXV0aFNjaGVtZT8uaWRlbnRpdHk7XG4gICAgaWYgKGlkZW50aXR5Py4kc291cmNlKSB7XG4gICAgICAgIGNvbnN0IGNyZWRlbnRpYWxzID0gaWRlbnRpdHk7XG4gICAgICAgIGlmIChjcmVkZW50aWFscy5hY2NvdW50SWQpIHtcbiAgICAgICAgICAgIGNvcmUkMS5zZXRGZWF0dXJlKGNvbnRleHQsIFwiUkVTT0xWRURfQUNDT1VOVF9JRFwiLCBcIlRcIik7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoY3JlZGVudGlhbHMuJHNvdXJjZSA/PyB7fSkpIHtcbiAgICAgICAgICAgIGNvcmUkMS5zZXRGZWF0dXJlKGNvbnRleHQsIGtleSwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5jb25zdCBVU0VSX0FHRU5UID0gXCJ1c2VyLWFnZW50XCI7XG5jb25zdCBYX0FNWl9VU0VSX0FHRU5UID0gXCJ4LWFtei11c2VyLWFnZW50XCI7XG5jb25zdCBTUEFDRSA9IFwiIFwiO1xuY29uc3QgVUFfTkFNRV9TRVBBUkFUT1IgPSBcIi9cIjtcbmNvbnN0IFVBX05BTUVfRVNDQVBFX1JFR0VYID0gL1teISQlJicqK1xcLS5eX2B8flxcd10vZztcbmNvbnN0IFVBX1ZBTFVFX0VTQ0FQRV9SRUdFWCA9IC9bXiEkJSYnKitcXC0uXl9gfH5cXHcjXS9nO1xuY29uc3QgVUFfRVNDQVBFX0NIQVIgPSBcIi1cIjtcblxuY29uc3QgQllURV9MSU1JVCA9IDEwMjQ7XG5mdW5jdGlvbiBlbmNvZGVGZWF0dXJlcyhmZWF0dXJlcykge1xuICAgIGxldCBidWZmZXIgPSBcIlwiO1xuICAgIGZvciAoY29uc3Qga2V5IGluIGZlYXR1cmVzKSB7XG4gICAgICAgIGNvbnN0IHZhbCA9IGZlYXR1cmVzW2tleV07XG4gICAgICAgIGlmIChidWZmZXIubGVuZ3RoICsgdmFsLmxlbmd0aCArIDEgPD0gQllURV9MSU1JVCkge1xuICAgICAgICAgICAgaWYgKGJ1ZmZlci5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBidWZmZXIgKz0gXCIsXCIgKyB2YWw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBidWZmZXIgKz0gdmFsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHJldHVybiBidWZmZXI7XG59XG5cbmNvbnN0IHVzZXJBZ2VudE1pZGRsZXdhcmUgPSAob3B0aW9ucykgPT4gKG5leHQsIGNvbnRleHQpID0+IGFzeW5jIChhcmdzKSA9PiB7XG4gICAgY29uc3QgeyByZXF1ZXN0IH0gPSBhcmdzO1xuICAgIGlmICghcHJvdG9jb2xIdHRwLkh0dHBSZXF1ZXN0LmlzSW5zdGFuY2UocmVxdWVzdCkpIHtcbiAgICAgICAgcmV0dXJuIG5leHQoYXJncyk7XG4gICAgfVxuICAgIGNvbnN0IHsgaGVhZGVycyB9ID0gcmVxdWVzdDtcbiAgICBjb25zdCB1c2VyQWdlbnQgPSBjb250ZXh0Py51c2VyQWdlbnQ/Lm1hcChlc2NhcGVVc2VyQWdlbnQpIHx8IFtdO1xuICAgIGNvbnN0IGRlZmF1bHRVc2VyQWdlbnQgPSAoYXdhaXQgb3B0aW9ucy5kZWZhdWx0VXNlckFnZW50UHJvdmlkZXIoKSkubWFwKGVzY2FwZVVzZXJBZ2VudCk7XG4gICAgYXdhaXQgY2hlY2tGZWF0dXJlcyhjb250ZXh0LCBvcHRpb25zLCBhcmdzKTtcbiAgICBjb25zdCBhd3NDb250ZXh0ID0gY29udGV4dDtcbiAgICBkZWZhdWx0VXNlckFnZW50LnB1c2goYG0vJHtlbmNvZGVGZWF0dXJlcyhPYmplY3QuYXNzaWduKHt9LCBjb250ZXh0Ll9fc21pdGh5X2NvbnRleHQ/LmZlYXR1cmVzLCBhd3NDb250ZXh0Ll9fYXdzX3Nka19jb250ZXh0Py5mZWF0dXJlcykpfWApO1xuICAgIGNvbnN0IGN1c3RvbVVzZXJBZ2VudCA9IG9wdGlvbnM/LmN1c3RvbVVzZXJBZ2VudD8ubWFwKGVzY2FwZVVzZXJBZ2VudCkgfHwgW107XG4gICAgY29uc3QgYXBwSWQgPSBhd2FpdCBvcHRpb25zLnVzZXJBZ2VudEFwcElkKCk7XG4gICAgaWYgKGFwcElkKSB7XG4gICAgICAgIGRlZmF1bHRVc2VyQWdlbnQucHVzaChlc2NhcGVVc2VyQWdlbnQoW2BhcHBgLCBgJHthcHBJZH1gXSkpO1xuICAgIH1cbiAgICBjb25zdCBwcmVmaXggPSB1dGlsRW5kcG9pbnRzLmdldFVzZXJBZ2VudFByZWZpeCgpO1xuICAgIGNvbnN0IHNka1VzZXJBZ2VudFZhbHVlID0gKHByZWZpeCA/IFtwcmVmaXhdIDogW10pXG4gICAgICAgIC5jb25jYXQoWy4uLmRlZmF1bHRVc2VyQWdlbnQsIC4uLnVzZXJBZ2VudCwgLi4uY3VzdG9tVXNlckFnZW50XSlcbiAgICAgICAgLmpvaW4oU1BBQ0UpO1xuICAgIGNvbnN0IG5vcm1hbFVBVmFsdWUgPSBbXG4gICAgICAgIC4uLmRlZmF1bHRVc2VyQWdlbnQuZmlsdGVyKChzZWN0aW9uKSA9PiBzZWN0aW9uLnN0YXJ0c1dpdGgoXCJhd3Mtc2RrLVwiKSksXG4gICAgICAgIC4uLmN1c3RvbVVzZXJBZ2VudCxcbiAgICBdLmpvaW4oU1BBQ0UpO1xuICAgIGlmIChvcHRpb25zLnJ1bnRpbWUgIT09IFwiYnJvd3NlclwiKSB7XG4gICAgICAgIGlmIChub3JtYWxVQVZhbHVlKSB7XG4gICAgICAgICAgICBoZWFkZXJzW1hfQU1aX1VTRVJfQUdFTlRdID0gaGVhZGVyc1tYX0FNWl9VU0VSX0FHRU5UXVxuICAgICAgICAgICAgICAgID8gYCR7aGVhZGVyc1tVU0VSX0FHRU5UXX0gJHtub3JtYWxVQVZhbHVlfWBcbiAgICAgICAgICAgICAgICA6IG5vcm1hbFVBVmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaGVhZGVyc1tVU0VSX0FHRU5UXSA9IHNka1VzZXJBZ2VudFZhbHVlO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgaGVhZGVyc1tYX0FNWl9VU0VSX0FHRU5UXSA9IHNka1VzZXJBZ2VudFZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gbmV4dCh7XG4gICAgICAgIC4uLmFyZ3MsXG4gICAgICAgIHJlcXVlc3QsXG4gICAgfSk7XG59O1xuY29uc3QgZXNjYXBlVXNlckFnZW50ID0gKHVzZXJBZ2VudFBhaXIpID0+IHtcbiAgICBjb25zdCBuYW1lID0gdXNlckFnZW50UGFpclswXVxuICAgICAgICAuc3BsaXQoVUFfTkFNRV9TRVBBUkFUT1IpXG4gICAgICAgIC5tYXAoKHBhcnQpID0+IHBhcnQucmVwbGFjZShVQV9OQU1FX0VTQ0FQRV9SRUdFWCwgVUFfRVNDQVBFX0NIQVIpKVxuICAgICAgICAuam9pbihVQV9OQU1FX1NFUEFSQVRPUik7XG4gICAgY29uc3QgdmVyc2lvbiA9IHVzZXJBZ2VudFBhaXJbMV0/LnJlcGxhY2UoVUFfVkFMVUVfRVNDQVBFX1JFR0VYLCBVQV9FU0NBUEVfQ0hBUik7XG4gICAgY29uc3QgcHJlZml4U2VwYXJhdG9ySW5kZXggPSBuYW1lLmluZGV4T2YoVUFfTkFNRV9TRVBBUkFUT1IpO1xuICAgIGNvbnN0IHByZWZpeCA9IG5hbWUuc3Vic3RyaW5nKDAsIHByZWZpeFNlcGFyYXRvckluZGV4KTtcbiAgICBsZXQgdWFOYW1lID0gbmFtZS5zdWJzdHJpbmcocHJlZml4U2VwYXJhdG9ySW5kZXggKyAxKTtcbiAgICBpZiAocHJlZml4ID09PSBcImFwaVwiKSB7XG4gICAgICAgIHVhTmFtZSA9IHVhTmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgIH1cbiAgICByZXR1cm4gW3ByZWZpeCwgdWFOYW1lLCB2ZXJzaW9uXVxuICAgICAgICAuZmlsdGVyKChpdGVtKSA9PiBpdGVtICYmIGl0ZW0ubGVuZ3RoID4gMClcbiAgICAgICAgLnJlZHVjZSgoYWNjLCBpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICBzd2l0Y2ggKGluZGV4KSB7XG4gICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGAke2FjY30vJHtpdGVtfWA7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiBgJHthY2N9IyR7aXRlbX1gO1xuICAgICAgICB9XG4gICAgfSwgXCJcIik7XG59O1xuY29uc3QgZ2V0VXNlckFnZW50TWlkZGxld2FyZU9wdGlvbnMgPSB7XG4gICAgbmFtZTogXCJnZXRVc2VyQWdlbnRNaWRkbGV3YXJlXCIsXG4gICAgc3RlcDogXCJidWlsZFwiLFxuICAgIHByaW9yaXR5OiBcImxvd1wiLFxuICAgIHRhZ3M6IFtcIlNFVF9VU0VSX0FHRU5UXCIsIFwiVVNFUl9BR0VOVFwiXSxcbiAgICBvdmVycmlkZTogdHJ1ZSxcbn07XG5jb25zdCBnZXRVc2VyQWdlbnRQbHVnaW4gPSAoY29uZmlnKSA9PiAoe1xuICAgIGFwcGx5VG9TdGFjazogKGNsaWVudFN0YWNrKSA9PiB7XG4gICAgICAgIGNsaWVudFN0YWNrLmFkZCh1c2VyQWdlbnRNaWRkbGV3YXJlKGNvbmZpZyksIGdldFVzZXJBZ2VudE1pZGRsZXdhcmVPcHRpb25zKTtcbiAgICB9LFxufSk7XG5cbmV4cG9ydHMuREVGQVVMVF9VQV9BUFBfSUQgPSBERUZBVUxUX1VBX0FQUF9JRDtcbmV4cG9ydHMuZ2V0VXNlckFnZW50TWlkZGxld2FyZU9wdGlvbnMgPSBnZXRVc2VyQWdlbnRNaWRkbGV3YXJlT3B0aW9ucztcbmV4cG9ydHMuZ2V0VXNlckFnZW50UGx1Z2luID0gZ2V0VXNlckFnZW50UGx1Z2luO1xuZXhwb3J0cy5yZXNvbHZlVXNlckFnZW50Q29uZmlnID0gcmVzb2x2ZVVzZXJBZ2VudENvbmZpZztcbmV4cG9ydHMudXNlckFnZW50TWlkZGxld2FyZSA9IHVzZXJBZ2VudE1pZGRsZXdhcmU7XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLnJlc29sdmVIdHRwQXV0aFNjaGVtZUNvbmZpZyA9IGV4cG9ydHMuZGVmYXVsdENsb3VkV2F0Y2hIdHRwQXV0aFNjaGVtZVByb3ZpZGVyID0gZXhwb3J0cy5kZWZhdWx0Q2xvdWRXYXRjaEh0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyID0gdm9pZCAwO1xuY29uc3QgY29yZV8xID0gcmVxdWlyZShcIkBhd3Mtc2RrL2NvcmVcIik7XG5jb25zdCB1dGlsX21pZGRsZXdhcmVfMSA9IHJlcXVpcmUoXCJAc21pdGh5L3V0aWwtbWlkZGxld2FyZVwiKTtcbmNvbnN0IGRlZmF1bHRDbG91ZFdhdGNoSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIgPSBhc3luYyAoY29uZmlnLCBjb250ZXh0LCBpbnB1dCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIG9wZXJhdGlvbjogKDAsIHV0aWxfbWlkZGxld2FyZV8xLmdldFNtaXRoeUNvbnRleHQpKGNvbnRleHQpLm9wZXJhdGlvbixcbiAgICAgICAgcmVnaW9uOiAoYXdhaXQgKDAsIHV0aWxfbWlkZGxld2FyZV8xLm5vcm1hbGl6ZVByb3ZpZGVyKShjb25maWcucmVnaW9uKSgpKSB8fFxuICAgICAgICAgICAgKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJleHBlY3RlZCBgcmVnaW9uYCB0byBiZSBjb25maWd1cmVkIGZvciBgYXdzLmF1dGgjc2lndjRgXCIpO1xuICAgICAgICAgICAgfSkoKSxcbiAgICB9O1xufTtcbmV4cG9ydHMuZGVmYXVsdENsb3VkV2F0Y2hIdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlciA9IGRlZmF1bHRDbG91ZFdhdGNoSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXI7XG5mdW5jdGlvbiBjcmVhdGVBd3NBdXRoU2lndjRIdHRwQXV0aE9wdGlvbihhdXRoUGFyYW1ldGVycykge1xuICAgIHJldHVybiB7XG4gICAgICAgIHNjaGVtZUlkOiBcImF3cy5hdXRoI3NpZ3Y0XCIsXG4gICAgICAgIHNpZ25pbmdQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICBuYW1lOiBcIm1vbml0b3JpbmdcIixcbiAgICAgICAgICAgIHJlZ2lvbjogYXV0aFBhcmFtZXRlcnMucmVnaW9uLFxuICAgICAgICB9LFxuICAgICAgICBwcm9wZXJ0aWVzRXh0cmFjdG9yOiAoY29uZmlnLCBjb250ZXh0KSA9PiAoe1xuICAgICAgICAgICAgc2lnbmluZ1Byb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICBjb25maWcsXG4gICAgICAgICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pLFxuICAgIH07XG59XG5jb25zdCBkZWZhdWx0Q2xvdWRXYXRjaEh0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSAoYXV0aFBhcmFtZXRlcnMpID0+IHtcbiAgICBjb25zdCBvcHRpb25zID0gW107XG4gICAgc3dpdGNoIChhdXRoUGFyYW1ldGVycy5vcGVyYXRpb24pIHtcbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgb3B0aW9ucy5wdXNoKGNyZWF0ZUF3c0F1dGhTaWd2NEh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG9wdGlvbnM7XG59O1xuZXhwb3J0cy5kZWZhdWx0Q2xvdWRXYXRjaEh0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSBkZWZhdWx0Q2xvdWRXYXRjaEh0dHBBdXRoU2NoZW1lUHJvdmlkZXI7XG5jb25zdCByZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWcgPSAoY29uZmlnKSA9PiB7XG4gICAgY29uc3QgY29uZmlnXzAgPSAoMCwgY29yZV8xLnJlc29sdmVBd3NTZGtTaWdWNENvbmZpZykoY29uZmlnKTtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihjb25maWdfMCwge1xuICAgICAgICBhdXRoU2NoZW1lUHJlZmVyZW5jZTogKDAsIHV0aWxfbWlkZGxld2FyZV8xLm5vcm1hbGl6ZVByb3ZpZGVyKShjb25maWcuYXV0aFNjaGVtZVByZWZlcmVuY2UgPz8gW10pLFxuICAgIH0pO1xufTtcbmV4cG9ydHMucmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnID0gcmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnO1xuIiwgIntcbiAgXCJuYW1lXCI6IFwiQGF3cy1zZGsvY2xpZW50LWNsb3Vkd2F0Y2hcIixcbiAgXCJkZXNjcmlwdGlvblwiOiBcIkFXUyBTREsgZm9yIEphdmFTY3JpcHQgQ2xvdWR3YXRjaCBDbGllbnQgZm9yIE5vZGUuanMsIEJyb3dzZXIgYW5kIFJlYWN0IE5hdGl2ZVwiLFxuICBcInZlcnNpb25cIjogXCIzLjk1Mi4wXCIsXG4gIFwic2NyaXB0c1wiOiB7XG4gICAgXCJidWlsZFwiOiBcImNvbmN1cnJlbnRseSAneWFybjpidWlsZDpjanMnICd5YXJuOmJ1aWxkOmVzJyAneWFybjpidWlsZDp0eXBlcydcIixcbiAgICBcImJ1aWxkOmNqc1wiOiBcIm5vZGUgLi4vLi4vc2NyaXB0cy9jb21waWxhdGlvbi9pbmxpbmUgY2xpZW50LWNsb3Vkd2F0Y2hcIixcbiAgICBcImJ1aWxkOmVzXCI6IFwidHNjIC1wIHRzY29uZmlnLmVzLmpzb25cIixcbiAgICBcImJ1aWxkOmluY2x1ZGU6ZGVwc1wiOiBcImxlcm5hIHJ1biAtLXNjb3BlICRucG1fcGFja2FnZV9uYW1lIC0taW5jbHVkZS1kZXBlbmRlbmNpZXMgYnVpbGRcIixcbiAgICBcImJ1aWxkOnR5cGVzXCI6IFwidHNjIC1wIHRzY29uZmlnLnR5cGVzLmpzb25cIixcbiAgICBcImJ1aWxkOnR5cGVzOmRvd25sZXZlbFwiOiBcImRvd25sZXZlbC1kdHMgZGlzdC10eXBlcyBkaXN0LXR5cGVzL3RzMy40XCIsXG4gICAgXCJjbGVhblwiOiBcInJpbXJhZiAuL2Rpc3QtKiAmJiByaW1yYWYgKi50c2J1aWxkaW5mb1wiLFxuICAgIFwiZXh0cmFjdDpkb2NzXCI6IFwiYXBpLWV4dHJhY3RvciBydW4gLS1sb2NhbFwiLFxuICAgIFwiZ2VuZXJhdGU6Y2xpZW50XCI6IFwibm9kZSAuLi8uLi9zY3JpcHRzL2dlbmVyYXRlLWNsaWVudHMvc2luZ2xlLXNlcnZpY2UgLS1zb2xvIGNsb3Vkd2F0Y2hcIixcbiAgICBcInRlc3Q6ZTJlXCI6IFwieWFybiBnOnZpdGVzdCBydW4gLWMgdml0ZXN0LmNvbmZpZy5lMmUubXRzXCIsXG4gICAgXCJ0ZXN0OmUyZTp3YXRjaFwiOiBcInlhcm4gZzp2aXRlc3Qgd2F0Y2ggLWMgdml0ZXN0LmNvbmZpZy5lMmUubXRzXCIsXG4gICAgXCJ0ZXN0OmluZGV4XCI6IFwidHNjIC0tbm9FbWl0IC4vdGVzdC9pbmRleC10eXBlcy50cyAmJiBub2RlIC4vdGVzdC9pbmRleC1vYmplY3RzLnNwZWMubWpzXCJcbiAgfSxcbiAgXCJtYWluXCI6IFwiLi9kaXN0LWNqcy9pbmRleC5qc1wiLFxuICBcInR5cGVzXCI6IFwiLi9kaXN0LXR5cGVzL2luZGV4LmQudHNcIixcbiAgXCJtb2R1bGVcIjogXCIuL2Rpc3QtZXMvaW5kZXguanNcIixcbiAgXCJzaWRlRWZmZWN0c1wiOiBmYWxzZSxcbiAgXCJkZXBlbmRlbmNpZXNcIjoge1xuICAgIFwiQGF3cy1jcnlwdG8vc2hhMjU2LWJyb3dzZXJcIjogXCI1LjIuMFwiLFxuICAgIFwiQGF3cy1jcnlwdG8vc2hhMjU2LWpzXCI6IFwiNS4yLjBcIixcbiAgICBcIkBhd3Mtc2RrL2NvcmVcIjogXCIzLjk0Ny4wXCIsXG4gICAgXCJAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLW5vZGVcIjogXCIzLjk1Mi4wXCIsXG4gICAgXCJAYXdzLXNkay9taWRkbGV3YXJlLWhvc3QtaGVhZGVyXCI6IFwiMy45MzYuMFwiLFxuICAgIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1sb2dnZXJcIjogXCIzLjkzNi4wXCIsXG4gICAgXCJAYXdzLXNkay9taWRkbGV3YXJlLXJlY3Vyc2lvbi1kZXRlY3Rpb25cIjogXCIzLjk0OC4wXCIsXG4gICAgXCJAYXdzLXNkay9taWRkbGV3YXJlLXVzZXItYWdlbnRcIjogXCIzLjk0Ny4wXCIsXG4gICAgXCJAYXdzLXNkay9yZWdpb24tY29uZmlnLXJlc29sdmVyXCI6IFwiMy45MzYuMFwiLFxuICAgIFwiQGF3cy1zZGsvdHlwZXNcIjogXCIzLjkzNi4wXCIsXG4gICAgXCJAYXdzLXNkay91dGlsLWVuZHBvaW50c1wiOiBcIjMuOTM2LjBcIixcbiAgICBcIkBhd3Mtc2RrL3V0aWwtdXNlci1hZ2VudC1icm93c2VyXCI6IFwiMy45MzYuMFwiLFxuICAgIFwiQGF3cy1zZGsvdXRpbC11c2VyLWFnZW50LW5vZGVcIjogXCIzLjk0Ny4wXCIsXG4gICAgXCJAc21pdGh5L2NvbmZpZy1yZXNvbHZlclwiOiBcIl40LjQuM1wiLFxuICAgIFwiQHNtaXRoeS9jb3JlXCI6IFwiXjMuMTguN1wiLFxuICAgIFwiQHNtaXRoeS9mZXRjaC1odHRwLWhhbmRsZXJcIjogXCJeNS4zLjZcIixcbiAgICBcIkBzbWl0aHkvaGFzaC1ub2RlXCI6IFwiXjQuMi41XCIsXG4gICAgXCJAc21pdGh5L2ludmFsaWQtZGVwZW5kZW5jeVwiOiBcIl40LjIuNVwiLFxuICAgIFwiQHNtaXRoeS9taWRkbGV3YXJlLWNvbXByZXNzaW9uXCI6IFwiXjQuMy4xNFwiLFxuICAgIFwiQHNtaXRoeS9taWRkbGV3YXJlLWNvbnRlbnQtbGVuZ3RoXCI6IFwiXjQuMi41XCIsXG4gICAgXCJAc21pdGh5L21pZGRsZXdhcmUtZW5kcG9pbnRcIjogXCJeNC4zLjE0XCIsXG4gICAgXCJAc21pdGh5L21pZGRsZXdhcmUtcmV0cnlcIjogXCJeNC40LjE0XCIsXG4gICAgXCJAc21pdGh5L21pZGRsZXdhcmUtc2VyZGVcIjogXCJeNC4yLjZcIixcbiAgICBcIkBzbWl0aHkvbWlkZGxld2FyZS1zdGFja1wiOiBcIl40LjIuNVwiLFxuICAgIFwiQHNtaXRoeS9ub2RlLWNvbmZpZy1wcm92aWRlclwiOiBcIl40LjMuNVwiLFxuICAgIFwiQHNtaXRoeS9ub2RlLWh0dHAtaGFuZGxlclwiOiBcIl40LjQuNVwiLFxuICAgIFwiQHNtaXRoeS9wcm90b2NvbC1odHRwXCI6IFwiXjUuMy41XCIsXG4gICAgXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjogXCJeNC45LjEwXCIsXG4gICAgXCJAc21pdGh5L3R5cGVzXCI6IFwiXjQuOS4wXCIsXG4gICAgXCJAc21pdGh5L3VybC1wYXJzZXJcIjogXCJeNC4yLjVcIixcbiAgICBcIkBzbWl0aHkvdXRpbC1iYXNlNjRcIjogXCJeNC4zLjBcIixcbiAgICBcIkBzbWl0aHkvdXRpbC1ib2R5LWxlbmd0aC1icm93c2VyXCI6IFwiXjQuMi4wXCIsXG4gICAgXCJAc21pdGh5L3V0aWwtYm9keS1sZW5ndGgtbm9kZVwiOiBcIl40LjIuMVwiLFxuICAgIFwiQHNtaXRoeS91dGlsLWRlZmF1bHRzLW1vZGUtYnJvd3NlclwiOiBcIl40LjMuMTNcIixcbiAgICBcIkBzbWl0aHkvdXRpbC1kZWZhdWx0cy1tb2RlLW5vZGVcIjogXCJeNC4yLjE2XCIsXG4gICAgXCJAc21pdGh5L3V0aWwtZW5kcG9pbnRzXCI6IFwiXjMuMi41XCIsXG4gICAgXCJAc21pdGh5L3V0aWwtbWlkZGxld2FyZVwiOiBcIl40LjIuNVwiLFxuICAgIFwiQHNtaXRoeS91dGlsLXJldHJ5XCI6IFwiXjQuMi41XCIsXG4gICAgXCJAc21pdGh5L3V0aWwtdXRmOFwiOiBcIl40LjIuMFwiLFxuICAgIFwiQHNtaXRoeS91dGlsLXdhaXRlclwiOiBcIl40LjIuNVwiLFxuICAgIFwidHNsaWJcIjogXCJeMi42LjJcIlxuICB9LFxuICBcImRldkRlcGVuZGVuY2llc1wiOiB7XG4gICAgXCJAdHNjb25maWcvbm9kZTE4XCI6IFwiMTguMi40XCIsXG4gICAgXCJAdHlwZXMvbm9kZVwiOiBcIl4xOC4xOS42OVwiLFxuICAgIFwiY29uY3VycmVudGx5XCI6IFwiNy4wLjBcIixcbiAgICBcImRvd25sZXZlbC1kdHNcIjogXCIwLjEwLjFcIixcbiAgICBcInJpbXJhZlwiOiBcIjMuMC4yXCIsXG4gICAgXCJ0eXBlc2NyaXB0XCI6IFwifjUuOC4zXCJcbiAgfSxcbiAgXCJlbmdpbmVzXCI6IHtcbiAgICBcIm5vZGVcIjogXCI+PTE4LjAuMFwiXG4gIH0sXG4gIFwidHlwZXNWZXJzaW9uc1wiOiB7XG4gICAgXCI8NC4wXCI6IHtcbiAgICAgIFwiZGlzdC10eXBlcy8qXCI6IFtcbiAgICAgICAgXCJkaXN0LXR5cGVzL3RzMy40LypcIlxuICAgICAgXVxuICAgIH1cbiAgfSxcbiAgXCJmaWxlc1wiOiBbXG4gICAgXCJkaXN0LSovKipcIlxuICBdLFxuICBcImF1dGhvclwiOiB7XG4gICAgXCJuYW1lXCI6IFwiQVdTIFNESyBmb3IgSmF2YVNjcmlwdCBUZWFtXCIsXG4gICAgXCJ1cmxcIjogXCJodHRwczovL2F3cy5hbWF6b24uY29tL2phdmFzY3JpcHQvXCJcbiAgfSxcbiAgXCJsaWNlbnNlXCI6IFwiQXBhY2hlLTIuMFwiLFxuICBcImJyb3dzZXJcIjoge1xuICAgIFwiLi9kaXN0LWVzL3J1bnRpbWVDb25maWdcIjogXCIuL2Rpc3QtZXMvcnVudGltZUNvbmZpZy5icm93c2VyXCJcbiAgfSxcbiAgXCJyZWFjdC1uYXRpdmVcIjoge1xuICAgIFwiLi9kaXN0LWVzL3J1bnRpbWVDb25maWdcIjogXCIuL2Rpc3QtZXMvcnVudGltZUNvbmZpZy5uYXRpdmVcIlxuICB9LFxuICBcImhvbWVwYWdlXCI6IFwiaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3Mtc2RrLWpzLXYzL3RyZWUvbWFpbi9jbGllbnRzL2NsaWVudC1jbG91ZHdhdGNoXCIsXG4gIFwicmVwb3NpdG9yeVwiOiB7XG4gICAgXCJ0eXBlXCI6IFwiZ2l0XCIsXG4gICAgXCJ1cmxcIjogXCJodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1zZGstanMtdjMuZ2l0XCIsXG4gICAgXCJkaXJlY3RvcnlcIjogXCJjbGllbnRzL2NsaWVudC1jbG91ZHdhdGNoXCJcbiAgfVxufVxuIiwgIid1c2Ugc3RyaWN0JztcblxudmFyIGNsaWVudCA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL2NvcmUvY2xpZW50Jyk7XG52YXIgcHJvcGVydHlQcm92aWRlciA9IHJlcXVpcmUoJ0BzbWl0aHkvcHJvcGVydHktcHJvdmlkZXInKTtcblxuY29uc3QgRU5WX0tFWSA9IFwiQVdTX0FDQ0VTU19LRVlfSURcIjtcbmNvbnN0IEVOVl9TRUNSRVQgPSBcIkFXU19TRUNSRVRfQUNDRVNTX0tFWVwiO1xuY29uc3QgRU5WX1NFU1NJT04gPSBcIkFXU19TRVNTSU9OX1RPS0VOXCI7XG5jb25zdCBFTlZfRVhQSVJBVElPTiA9IFwiQVdTX0NSRURFTlRJQUxfRVhQSVJBVElPTlwiO1xuY29uc3QgRU5WX0NSRURFTlRJQUxfU0NPUEUgPSBcIkFXU19DUkVERU5USUFMX1NDT1BFXCI7XG5jb25zdCBFTlZfQUNDT1VOVF9JRCA9IFwiQVdTX0FDQ09VTlRfSURcIjtcbmNvbnN0IGZyb21FbnYgPSAoaW5pdCkgPT4gYXN5bmMgKCkgPT4ge1xuICAgIGluaXQ/LmxvZ2dlcj8uZGVidWcoXCJAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLWVudiAtIGZyb21FbnZcIik7XG4gICAgY29uc3QgYWNjZXNzS2V5SWQgPSBwcm9jZXNzLmVudltFTlZfS0VZXTtcbiAgICBjb25zdCBzZWNyZXRBY2Nlc3NLZXkgPSBwcm9jZXNzLmVudltFTlZfU0VDUkVUXTtcbiAgICBjb25zdCBzZXNzaW9uVG9rZW4gPSBwcm9jZXNzLmVudltFTlZfU0VTU0lPTl07XG4gICAgY29uc3QgZXhwaXJ5ID0gcHJvY2Vzcy5lbnZbRU5WX0VYUElSQVRJT05dO1xuICAgIGNvbnN0IGNyZWRlbnRpYWxTY29wZSA9IHByb2Nlc3MuZW52W0VOVl9DUkVERU5USUFMX1NDT1BFXTtcbiAgICBjb25zdCBhY2NvdW50SWQgPSBwcm9jZXNzLmVudltFTlZfQUNDT1VOVF9JRF07XG4gICAgaWYgKGFjY2Vzc0tleUlkICYmIHNlY3JldEFjY2Vzc0tleSkge1xuICAgICAgICBjb25zdCBjcmVkZW50aWFscyA9IHtcbiAgICAgICAgICAgIGFjY2Vzc0tleUlkLFxuICAgICAgICAgICAgc2VjcmV0QWNjZXNzS2V5LFxuICAgICAgICAgICAgLi4uKHNlc3Npb25Ub2tlbiAmJiB7IHNlc3Npb25Ub2tlbiB9KSxcbiAgICAgICAgICAgIC4uLihleHBpcnkgJiYgeyBleHBpcmF0aW9uOiBuZXcgRGF0ZShleHBpcnkpIH0pLFxuICAgICAgICAgICAgLi4uKGNyZWRlbnRpYWxTY29wZSAmJiB7IGNyZWRlbnRpYWxTY29wZSB9KSxcbiAgICAgICAgICAgIC4uLihhY2NvdW50SWQgJiYgeyBhY2NvdW50SWQgfSksXG4gICAgICAgIH07XG4gICAgICAgIGNsaWVudC5zZXRDcmVkZW50aWFsRmVhdHVyZShjcmVkZW50aWFscywgXCJDUkVERU5USUFMU19FTlZfVkFSU1wiLCBcImdcIik7XG4gICAgICAgIHJldHVybiBjcmVkZW50aWFscztcbiAgICB9XG4gICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKFwiVW5hYmxlIHRvIGZpbmQgZW52aXJvbm1lbnQgdmFyaWFibGUgY3JlZGVudGlhbHMuXCIsIHsgbG9nZ2VyOiBpbml0Py5sb2dnZXIgfSk7XG59O1xuXG5leHBvcnRzLkVOVl9BQ0NPVU5UX0lEID0gRU5WX0FDQ09VTlRfSUQ7XG5leHBvcnRzLkVOVl9DUkVERU5USUFMX1NDT1BFID0gRU5WX0NSRURFTlRJQUxfU0NPUEU7XG5leHBvcnRzLkVOVl9FWFBJUkFUSU9OID0gRU5WX0VYUElSQVRJT047XG5leHBvcnRzLkVOVl9LRVkgPSBFTlZfS0VZO1xuZXhwb3J0cy5FTlZfU0VDUkVUID0gRU5WX1NFQ1JFVDtcbmV4cG9ydHMuRU5WX1NFU1NJT04gPSBFTlZfU0VTU0lPTjtcbmV4cG9ydHMuZnJvbUVudiA9IGZyb21FbnY7XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmNoZWNrVXJsID0gdm9pZCAwO1xuY29uc3QgcHJvcGVydHlfcHJvdmlkZXJfMSA9IHJlcXVpcmUoXCJAc21pdGh5L3Byb3BlcnR5LXByb3ZpZGVyXCIpO1xuY29uc3QgTE9PUEJBQ0tfQ0lEUl9JUHY0ID0gXCIxMjcuMC4wLjAvOFwiO1xuY29uc3QgTE9PUEJBQ0tfQ0lEUl9JUHY2ID0gXCI6OjEvMTI4XCI7XG5jb25zdCBFQ1NfQ09OVEFJTkVSX0hPU1QgPSBcIjE2OS4yNTQuMTcwLjJcIjtcbmNvbnN0IEVLU19DT05UQUlORVJfSE9TVF9JUHY0ID0gXCIxNjkuMjU0LjE3MC4yM1wiO1xuY29uc3QgRUtTX0NPTlRBSU5FUl9IT1NUX0lQdjYgPSBcIltmZDAwOmVjMjo6MjNdXCI7XG5jb25zdCBjaGVja1VybCA9ICh1cmwsIGxvZ2dlcikgPT4ge1xuICAgIGlmICh1cmwucHJvdG9jb2wgPT09IFwiaHR0cHM6XCIpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodXJsLmhvc3RuYW1lID09PSBFQ1NfQ09OVEFJTkVSX0hPU1QgfHxcbiAgICAgICAgdXJsLmhvc3RuYW1lID09PSBFS1NfQ09OVEFJTkVSX0hPU1RfSVB2NCB8fFxuICAgICAgICB1cmwuaG9zdG5hbWUgPT09IEVLU19DT05UQUlORVJfSE9TVF9JUHY2KSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHVybC5ob3N0bmFtZS5pbmNsdWRlcyhcIltcIikpIHtcbiAgICAgICAgaWYgKHVybC5ob3N0bmFtZSA9PT0gXCJbOjoxXVwiIHx8IHVybC5ob3N0bmFtZSA9PT0gXCJbMDAwMDowMDAwOjAwMDA6MDAwMDowMDAwOjAwMDA6MDAwMDowMDAxXVwiKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGlmICh1cmwuaG9zdG5hbWUgPT09IFwibG9jYWxob3N0XCIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpcENvbXBvbmVudHMgPSB1cmwuaG9zdG5hbWUuc3BsaXQoXCIuXCIpO1xuICAgICAgICBjb25zdCBpblJhbmdlID0gKGNvbXBvbmVudCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbnVtID0gcGFyc2VJbnQoY29tcG9uZW50LCAxMCk7XG4gICAgICAgICAgICByZXR1cm4gMCA8PSBudW0gJiYgbnVtIDw9IDI1NTtcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKGlwQ29tcG9uZW50c1swXSA9PT0gXCIxMjdcIiAmJlxuICAgICAgICAgICAgaW5SYW5nZShpcENvbXBvbmVudHNbMV0pICYmXG4gICAgICAgICAgICBpblJhbmdlKGlwQ29tcG9uZW50c1syXSkgJiZcbiAgICAgICAgICAgIGluUmFuZ2UoaXBDb21wb25lbnRzWzNdKSAmJlxuICAgICAgICAgICAgaXBDb21wb25lbnRzLmxlbmd0aCA9PT0gNCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgfVxuICAgIHRocm93IG5ldyBwcm9wZXJ0eV9wcm92aWRlcl8xLkNyZWRlbnRpYWxzUHJvdmlkZXJFcnJvcihgVVJMIG5vdCBhY2NlcHRlZC4gSXQgbXVzdCBlaXRoZXIgYmUgSFRUUFMgb3IgbWF0Y2ggb25lIG9mIHRoZSBmb2xsb3dpbmc6XG4gIC0gbG9vcGJhY2sgQ0lEUiAxMjcuMC4wLjAvOCBvciBbOjoxLzEyOF1cbiAgLSBFQ1MgY29udGFpbmVyIGhvc3QgMTY5LjI1NC4xNzAuMlxuICAtIEVLUyBjb250YWluZXIgaG9zdCAxNjkuMjU0LjE3MC4yMyBvciBbZmQwMDplYzI6OjIzXWAsIHsgbG9nZ2VyIH0pO1xufTtcbmV4cG9ydHMuY2hlY2tVcmwgPSBjaGVja1VybDtcbiIsICJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuY3JlYXRlR2V0UmVxdWVzdCA9IGNyZWF0ZUdldFJlcXVlc3Q7XG5leHBvcnRzLmdldENyZWRlbnRpYWxzID0gZ2V0Q3JlZGVudGlhbHM7XG5jb25zdCBwcm9wZXJ0eV9wcm92aWRlcl8xID0gcmVxdWlyZShcIkBzbWl0aHkvcHJvcGVydHktcHJvdmlkZXJcIik7XG5jb25zdCBwcm90b2NvbF9odHRwXzEgPSByZXF1aXJlKFwiQHNtaXRoeS9wcm90b2NvbC1odHRwXCIpO1xuY29uc3Qgc21pdGh5X2NsaWVudF8xID0gcmVxdWlyZShcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiKTtcbmNvbnN0IHV0aWxfc3RyZWFtXzEgPSByZXF1aXJlKFwiQHNtaXRoeS91dGlsLXN0cmVhbVwiKTtcbmZ1bmN0aW9uIGNyZWF0ZUdldFJlcXVlc3QodXJsKSB7XG4gICAgcmV0dXJuIG5ldyBwcm90b2NvbF9odHRwXzEuSHR0cFJlcXVlc3Qoe1xuICAgICAgICBwcm90b2NvbDogdXJsLnByb3RvY29sLFxuICAgICAgICBob3N0bmFtZTogdXJsLmhvc3RuYW1lLFxuICAgICAgICBwb3J0OiBOdW1iZXIodXJsLnBvcnQpLFxuICAgICAgICBwYXRoOiB1cmwucGF0aG5hbWUsXG4gICAgICAgIHF1ZXJ5OiBBcnJheS5mcm9tKHVybC5zZWFyY2hQYXJhbXMuZW50cmllcygpKS5yZWR1Y2UoKGFjYywgW2ssIHZdKSA9PiB7XG4gICAgICAgICAgICBhY2Nba10gPSB2O1xuICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfSwge30pLFxuICAgICAgICBmcmFnbWVudDogdXJsLmhhc2gsXG4gICAgfSk7XG59XG5hc3luYyBmdW5jdGlvbiBnZXRDcmVkZW50aWFscyhyZXNwb25zZSwgbG9nZ2VyKSB7XG4gICAgY29uc3Qgc3RyZWFtID0gKDAsIHV0aWxfc3RyZWFtXzEuc2RrU3RyZWFtTWl4aW4pKHJlc3BvbnNlLmJvZHkpO1xuICAgIGNvbnN0IHN0ciA9IGF3YWl0IHN0cmVhbS50cmFuc2Zvcm1Ub1N0cmluZygpO1xuICAgIGlmIChyZXNwb25zZS5zdGF0dXNDb2RlID09PSAyMDApIHtcbiAgICAgICAgY29uc3QgcGFyc2VkID0gSlNPTi5wYXJzZShzdHIpO1xuICAgICAgICBpZiAodHlwZW9mIHBhcnNlZC5BY2Nlc3NLZXlJZCAhPT0gXCJzdHJpbmdcIiB8fFxuICAgICAgICAgICAgdHlwZW9mIHBhcnNlZC5TZWNyZXRBY2Nlc3NLZXkgIT09IFwic3RyaW5nXCIgfHxcbiAgICAgICAgICAgIHR5cGVvZiBwYXJzZWQuVG9rZW4gIT09IFwic3RyaW5nXCIgfHxcbiAgICAgICAgICAgIHR5cGVvZiBwYXJzZWQuRXhwaXJhdGlvbiAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5X3Byb3ZpZGVyXzEuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKFwiSFRUUCBjcmVkZW50aWFsIHByb3ZpZGVyIHJlc3BvbnNlIG5vdCBvZiB0aGUgcmVxdWlyZWQgZm9ybWF0LCBhbiBvYmplY3QgbWF0Y2hpbmc6IFwiICtcbiAgICAgICAgICAgICAgICBcInsgQWNjZXNzS2V5SWQ6IHN0cmluZywgU2VjcmV0QWNjZXNzS2V5OiBzdHJpbmcsIFRva2VuOiBzdHJpbmcsIEV4cGlyYXRpb246IHN0cmluZyhyZmMzMzM5KSB9XCIsIHsgbG9nZ2VyIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBhY2Nlc3NLZXlJZDogcGFyc2VkLkFjY2Vzc0tleUlkLFxuICAgICAgICAgICAgc2VjcmV0QWNjZXNzS2V5OiBwYXJzZWQuU2VjcmV0QWNjZXNzS2V5LFxuICAgICAgICAgICAgc2Vzc2lvblRva2VuOiBwYXJzZWQuVG9rZW4sXG4gICAgICAgICAgICBleHBpcmF0aW9uOiAoMCwgc21pdGh5X2NsaWVudF8xLnBhcnNlUmZjMzMzOURhdGVUaW1lKShwYXJzZWQuRXhwaXJhdGlvbiksXG4gICAgICAgIH07XG4gICAgfVxuICAgIGlmIChyZXNwb25zZS5zdGF0dXNDb2RlID49IDQwMCAmJiByZXNwb25zZS5zdGF0dXNDb2RlIDwgNTAwKSB7XG4gICAgICAgIGxldCBwYXJzZWRCb2R5ID0ge307XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBwYXJzZWRCb2R5ID0gSlNPTi5wYXJzZShzdHIpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7IH1cbiAgICAgICAgdGhyb3cgT2JqZWN0LmFzc2lnbihuZXcgcHJvcGVydHlfcHJvdmlkZXJfMS5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoYFNlcnZlciByZXNwb25kZWQgd2l0aCBzdGF0dXM6ICR7cmVzcG9uc2Uuc3RhdHVzQ29kZX1gLCB7IGxvZ2dlciB9KSwge1xuICAgICAgICAgICAgQ29kZTogcGFyc2VkQm9keS5Db2RlLFxuICAgICAgICAgICAgTWVzc2FnZTogcGFyc2VkQm9keS5NZXNzYWdlLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IHByb3BlcnR5X3Byb3ZpZGVyXzEuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKGBTZXJ2ZXIgcmVzcG9uZGVkIHdpdGggc3RhdHVzOiAke3Jlc3BvbnNlLnN0YXR1c0NvZGV9YCwgeyBsb2dnZXIgfSk7XG59XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLnJldHJ5V3JhcHBlciA9IHZvaWQgMDtcbmNvbnN0IHJldHJ5V3JhcHBlciA9ICh0b1JldHJ5LCBtYXhSZXRyaWVzLCBkZWxheU1zKSA9PiB7XG4gICAgcmV0dXJuIGFzeW5jICgpID0+IHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtYXhSZXRyaWVzOyArK2kpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHRvUmV0cnkoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgZGVsYXlNcykpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhd2FpdCB0b1JldHJ5KCk7XG4gICAgfTtcbn07XG5leHBvcnRzLnJldHJ5V3JhcHBlciA9IHJldHJ5V3JhcHBlcjtcbiIsICJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuZnJvbUh0dHAgPSB2b2lkIDA7XG5jb25zdCB0c2xpYl8xID0gcmVxdWlyZShcInRzbGliXCIpO1xuY29uc3QgY2xpZW50XzEgPSByZXF1aXJlKFwiQGF3cy1zZGsvY29yZS9jbGllbnRcIik7XG5jb25zdCBub2RlX2h0dHBfaGFuZGxlcl8xID0gcmVxdWlyZShcIkBzbWl0aHkvbm9kZS1odHRwLWhhbmRsZXJcIik7XG5jb25zdCBwcm9wZXJ0eV9wcm92aWRlcl8xID0gcmVxdWlyZShcIkBzbWl0aHkvcHJvcGVydHktcHJvdmlkZXJcIik7XG5jb25zdCBwcm9taXNlc18xID0gdHNsaWJfMS5fX2ltcG9ydERlZmF1bHQocmVxdWlyZShcImZzL3Byb21pc2VzXCIpKTtcbmNvbnN0IGNoZWNrVXJsXzEgPSByZXF1aXJlKFwiLi9jaGVja1VybFwiKTtcbmNvbnN0IHJlcXVlc3RIZWxwZXJzXzEgPSByZXF1aXJlKFwiLi9yZXF1ZXN0SGVscGVyc1wiKTtcbmNvbnN0IHJldHJ5X3dyYXBwZXJfMSA9IHJlcXVpcmUoXCIuL3JldHJ5LXdyYXBwZXJcIik7XG5jb25zdCBBV1NfQ09OVEFJTkVSX0NSRURFTlRJQUxTX1JFTEFUSVZFX1VSSSA9IFwiQVdTX0NPTlRBSU5FUl9DUkVERU5USUFMU19SRUxBVElWRV9VUklcIjtcbmNvbnN0IERFRkFVTFRfTElOS19MT0NBTF9IT1NUID0gXCJodHRwOi8vMTY5LjI1NC4xNzAuMlwiO1xuY29uc3QgQVdTX0NPTlRBSU5FUl9DUkVERU5USUFMU19GVUxMX1VSSSA9IFwiQVdTX0NPTlRBSU5FUl9DUkVERU5USUFMU19GVUxMX1VSSVwiO1xuY29uc3QgQVdTX0NPTlRBSU5FUl9BVVRIT1JJWkFUSU9OX1RPS0VOX0ZJTEUgPSBcIkFXU19DT05UQUlORVJfQVVUSE9SSVpBVElPTl9UT0tFTl9GSUxFXCI7XG5jb25zdCBBV1NfQ09OVEFJTkVSX0FVVEhPUklaQVRJT05fVE9LRU4gPSBcIkFXU19DT05UQUlORVJfQVVUSE9SSVpBVElPTl9UT0tFTlwiO1xuY29uc3QgZnJvbUh0dHAgPSAob3B0aW9ucyA9IHt9KSA9PiB7XG4gICAgb3B0aW9ucy5sb2dnZXI/LmRlYnVnKFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1odHRwIC0gZnJvbUh0dHBcIik7XG4gICAgbGV0IGhvc3Q7XG4gICAgY29uc3QgcmVsYXRpdmUgPSBvcHRpb25zLmF3c0NvbnRhaW5lckNyZWRlbnRpYWxzUmVsYXRpdmVVcmkgPz8gcHJvY2Vzcy5lbnZbQVdTX0NPTlRBSU5FUl9DUkVERU5USUFMU19SRUxBVElWRV9VUkldO1xuICAgIGNvbnN0IGZ1bGwgPSBvcHRpb25zLmF3c0NvbnRhaW5lckNyZWRlbnRpYWxzRnVsbFVyaSA/PyBwcm9jZXNzLmVudltBV1NfQ09OVEFJTkVSX0NSRURFTlRJQUxTX0ZVTExfVVJJXTtcbiAgICBjb25zdCB0b2tlbiA9IG9wdGlvbnMuYXdzQ29udGFpbmVyQXV0aG9yaXphdGlvblRva2VuID8/IHByb2Nlc3MuZW52W0FXU19DT05UQUlORVJfQVVUSE9SSVpBVElPTl9UT0tFTl07XG4gICAgY29uc3QgdG9rZW5GaWxlID0gb3B0aW9ucy5hd3NDb250YWluZXJBdXRob3JpemF0aW9uVG9rZW5GaWxlID8/IHByb2Nlc3MuZW52W0FXU19DT05UQUlORVJfQVVUSE9SSVpBVElPTl9UT0tFTl9GSUxFXTtcbiAgICBjb25zdCB3YXJuID0gb3B0aW9ucy5sb2dnZXI/LmNvbnN0cnVjdG9yPy5uYW1lID09PSBcIk5vT3BMb2dnZXJcIiB8fCAhb3B0aW9ucy5sb2dnZXI/Lndhcm5cbiAgICAgICAgPyBjb25zb2xlLndhcm5cbiAgICAgICAgOiBvcHRpb25zLmxvZ2dlci53YXJuLmJpbmQob3B0aW9ucy5sb2dnZXIpO1xuICAgIGlmIChyZWxhdGl2ZSAmJiBmdWxsKSB7XG4gICAgICAgIHdhcm4oXCJAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLWh0dHA6IFwiICtcbiAgICAgICAgICAgIFwieW91IGhhdmUgc2V0IGJvdGggYXdzQ29udGFpbmVyQ3JlZGVudGlhbHNSZWxhdGl2ZVVyaSBhbmQgYXdzQ29udGFpbmVyQ3JlZGVudGlhbHNGdWxsVXJpLlwiKTtcbiAgICAgICAgd2FybihcImF3c0NvbnRhaW5lckNyZWRlbnRpYWxzRnVsbFVyaSB3aWxsIHRha2UgcHJlY2VkZW5jZS5cIik7XG4gICAgfVxuICAgIGlmICh0b2tlbiAmJiB0b2tlbkZpbGUpIHtcbiAgICAgICAgd2FybihcIkBhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItaHR0cDogXCIgK1xuICAgICAgICAgICAgXCJ5b3UgaGF2ZSBzZXQgYm90aCBhd3NDb250YWluZXJBdXRob3JpemF0aW9uVG9rZW4gYW5kIGF3c0NvbnRhaW5lckF1dGhvcml6YXRpb25Ub2tlbkZpbGUuXCIpO1xuICAgICAgICB3YXJuKFwiYXdzQ29udGFpbmVyQXV0aG9yaXphdGlvblRva2VuIHdpbGwgdGFrZSBwcmVjZWRlbmNlLlwiKTtcbiAgICB9XG4gICAgaWYgKGZ1bGwpIHtcbiAgICAgICAgaG9zdCA9IGZ1bGw7XG4gICAgfVxuICAgIGVsc2UgaWYgKHJlbGF0aXZlKSB7XG4gICAgICAgIGhvc3QgPSBgJHtERUZBVUxUX0xJTktfTE9DQUxfSE9TVH0ke3JlbGF0aXZlfWA7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlfcHJvdmlkZXJfMS5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoYE5vIEhUVFAgY3JlZGVudGlhbCBwcm92aWRlciBob3N0IHByb3ZpZGVkLlxuU2V0IEFXU19DT05UQUlORVJfQ1JFREVOVElBTFNfRlVMTF9VUkkgb3IgQVdTX0NPTlRBSU5FUl9DUkVERU5USUFMU19SRUxBVElWRV9VUkkuYCwgeyBsb2dnZXI6IG9wdGlvbnMubG9nZ2VyIH0pO1xuICAgIH1cbiAgICBjb25zdCB1cmwgPSBuZXcgVVJMKGhvc3QpO1xuICAgICgwLCBjaGVja1VybF8xLmNoZWNrVXJsKSh1cmwsIG9wdGlvbnMubG9nZ2VyKTtcbiAgICBjb25zdCByZXF1ZXN0SGFuZGxlciA9IG5vZGVfaHR0cF9oYW5kbGVyXzEuTm9kZUh0dHBIYW5kbGVyLmNyZWF0ZSh7XG4gICAgICAgIHJlcXVlc3RUaW1lb3V0OiBvcHRpb25zLnRpbWVvdXQgPz8gMTAwMCxcbiAgICAgICAgY29ubmVjdGlvblRpbWVvdXQ6IG9wdGlvbnMudGltZW91dCA/PyAxMDAwLFxuICAgIH0pO1xuICAgIHJldHVybiAoMCwgcmV0cnlfd3JhcHBlcl8xLnJldHJ5V3JhcHBlcikoYXN5bmMgKCkgPT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKDAsIHJlcXVlc3RIZWxwZXJzXzEuY3JlYXRlR2V0UmVxdWVzdCkodXJsKTtcbiAgICAgICAgaWYgKHRva2VuKSB7XG4gICAgICAgICAgICByZXF1ZXN0LmhlYWRlcnMuQXV0aG9yaXphdGlvbiA9IHRva2VuO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHRva2VuRmlsZSkge1xuICAgICAgICAgICAgcmVxdWVzdC5oZWFkZXJzLkF1dGhvcml6YXRpb24gPSAoYXdhaXQgcHJvbWlzZXNfMS5kZWZhdWx0LnJlYWRGaWxlKHRva2VuRmlsZSkpLnRvU3RyaW5nKCk7XG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlcXVlc3RIYW5kbGVyLmhhbmRsZShyZXF1ZXN0KTtcbiAgICAgICAgICAgIHJldHVybiAoMCwgcmVxdWVzdEhlbHBlcnNfMS5nZXRDcmVkZW50aWFscykocmVzdWx0LnJlc3BvbnNlKS50aGVuKChjcmVkcykgPT4gKDAsIGNsaWVudF8xLnNldENyZWRlbnRpYWxGZWF0dXJlKShjcmVkcywgXCJDUkVERU5USUFMU19IVFRQXCIsIFwielwiKSk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eV9wcm92aWRlcl8xLkNyZWRlbnRpYWxzUHJvdmlkZXJFcnJvcihTdHJpbmcoZSksIHsgbG9nZ2VyOiBvcHRpb25zLmxvZ2dlciB9KTtcbiAgICAgICAgfVxuICAgIH0sIG9wdGlvbnMubWF4UmV0cmllcyA/PyAzLCBvcHRpb25zLnRpbWVvdXQgPz8gMTAwMCk7XG59O1xuZXhwb3J0cy5mcm9tSHR0cCA9IGZyb21IdHRwO1xuIiwgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5mcm9tSHR0cCA9IHZvaWQgMDtcbnZhciBmcm9tSHR0cF8xID0gcmVxdWlyZShcIi4vZnJvbUh0dHAvZnJvbUh0dHBcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJmcm9tSHR0cFwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gZnJvbUh0dHBfMS5mcm9tSHR0cDsgfSB9KTtcbiIsICJpbXBvcnQgeyByZXNvbHZlQXdzU2RrU2lnVjRDb25maWcsIH0gZnJvbSBcIkBhd3Mtc2RrL2NvcmVcIjtcbmltcG9ydCB7IGdldFNtaXRoeUNvbnRleHQsIG5vcm1hbGl6ZVByb3ZpZGVyIH0gZnJvbSBcIkBzbWl0aHkvdXRpbC1taWRkbGV3YXJlXCI7XG5leHBvcnQgY29uc3QgZGVmYXVsdFNTT09JRENIdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlciA9IGFzeW5jIChjb25maWcsIGNvbnRleHQsIGlucHV0KSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgb3BlcmF0aW9uOiBnZXRTbWl0aHlDb250ZXh0KGNvbnRleHQpLm9wZXJhdGlvbixcbiAgICAgICAgcmVnaW9uOiAoYXdhaXQgbm9ybWFsaXplUHJvdmlkZXIoY29uZmlnLnJlZ2lvbikoKSkgfHxcbiAgICAgICAgICAgICgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiZXhwZWN0ZWQgYHJlZ2lvbmAgdG8gYmUgY29uZmlndXJlZCBmb3IgYGF3cy5hdXRoI3NpZ3Y0YFwiKTtcbiAgICAgICAgICAgIH0pKCksXG4gICAgfTtcbn07XG5mdW5jdGlvbiBjcmVhdGVBd3NBdXRoU2lndjRIdHRwQXV0aE9wdGlvbihhdXRoUGFyYW1ldGVycykge1xuICAgIHJldHVybiB7XG4gICAgICAgIHNjaGVtZUlkOiBcImF3cy5hdXRoI3NpZ3Y0XCIsXG4gICAgICAgIHNpZ25pbmdQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICBuYW1lOiBcInNzby1vYXV0aFwiLFxuICAgICAgICAgICAgcmVnaW9uOiBhdXRoUGFyYW1ldGVycy5yZWdpb24sXG4gICAgICAgIH0sXG4gICAgICAgIHByb3BlcnRpZXNFeHRyYWN0b3I6IChjb25maWcsIGNvbnRleHQpID0+ICh7XG4gICAgICAgICAgICBzaWduaW5nUHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgIGNvbmZpZyxcbiAgICAgICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgfTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVNtaXRoeUFwaU5vQXV0aEh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc2NoZW1lSWQ6IFwic21pdGh5LmFwaSNub0F1dGhcIixcbiAgICB9O1xufVxuZXhwb3J0IGNvbnN0IGRlZmF1bHRTU09PSURDSHR0cEF1dGhTY2hlbWVQcm92aWRlciA9IChhdXRoUGFyYW1ldGVycykgPT4ge1xuICAgIGNvbnN0IG9wdGlvbnMgPSBbXTtcbiAgICBzd2l0Y2ggKGF1dGhQYXJhbWV0ZXJzLm9wZXJhdGlvbikge1xuICAgICAgICBjYXNlIFwiQ3JlYXRlVG9rZW5cIjoge1xuICAgICAgICAgICAgb3B0aW9ucy5wdXNoKGNyZWF0ZVNtaXRoeUFwaU5vQXV0aEh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICBvcHRpb25zLnB1c2goY3JlYXRlQXdzQXV0aFNpZ3Y0SHR0cEF1dGhPcHRpb24oYXV0aFBhcmFtZXRlcnMpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gb3B0aW9ucztcbn07XG5leHBvcnQgY29uc3QgcmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIGNvbnN0IGNvbmZpZ18wID0gcmVzb2x2ZUF3c1Nka1NpZ1Y0Q29uZmlnKGNvbmZpZyk7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oY29uZmlnXzAsIHtcbiAgICAgICAgYXV0aFNjaGVtZVByZWZlcmVuY2U6IG5vcm1hbGl6ZVByb3ZpZGVyKGNvbmZpZy5hdXRoU2NoZW1lUHJlZmVyZW5jZSA/PyBbXSksXG4gICAgfSk7XG59O1xuIiwgImV4cG9ydCBjb25zdCByZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzID0gKG9wdGlvbnMpID0+IHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihvcHRpb25zLCB7XG4gICAgICAgIHVzZUR1YWxzdGFja0VuZHBvaW50OiBvcHRpb25zLnVzZUR1YWxzdGFja0VuZHBvaW50ID8/IGZhbHNlLFxuICAgICAgICB1c2VGaXBzRW5kcG9pbnQ6IG9wdGlvbnMudXNlRmlwc0VuZHBvaW50ID8/IGZhbHNlLFxuICAgICAgICBkZWZhdWx0U2lnbmluZ05hbWU6IFwic3NvLW9hdXRoXCIsXG4gICAgfSk7XG59O1xuZXhwb3J0IGNvbnN0IGNvbW1vblBhcmFtcyA9IHtcbiAgICBVc2VGSVBTOiB7IHR5cGU6IFwiYnVpbHRJblBhcmFtc1wiLCBuYW1lOiBcInVzZUZpcHNFbmRwb2ludFwiIH0sXG4gICAgRW5kcG9pbnQ6IHsgdHlwZTogXCJidWlsdEluUGFyYW1zXCIsIG5hbWU6IFwiZW5kcG9pbnRcIiB9LFxuICAgIFJlZ2lvbjogeyB0eXBlOiBcImJ1aWx0SW5QYXJhbXNcIiwgbmFtZTogXCJyZWdpb25cIiB9LFxuICAgIFVzZUR1YWxTdGFjazogeyB0eXBlOiBcImJ1aWx0SW5QYXJhbXNcIiwgbmFtZTogXCJ1c2VEdWFsc3RhY2tFbmRwb2ludFwiIH0sXG59O1xuIiwgIntcbiAgXCJuYW1lXCI6IFwiQGF3cy1zZGsvbmVzdGVkLWNsaWVudHNcIixcbiAgXCJ2ZXJzaW9uXCI6IFwiMy45NTIuMFwiLFxuICBcImRlc2NyaXB0aW9uXCI6IFwiTmVzdGVkIGNsaWVudHMgZm9yIEFXUyBTREsgcGFja2FnZXMuXCIsXG4gIFwibWFpblwiOiBcIi4vZGlzdC1janMvaW5kZXguanNcIixcbiAgXCJtb2R1bGVcIjogXCIuL2Rpc3QtZXMvaW5kZXguanNcIixcbiAgXCJ0eXBlc1wiOiBcIi4vZGlzdC10eXBlcy9pbmRleC5kLnRzXCIsXG4gIFwic2NyaXB0c1wiOiB7XG4gICAgXCJidWlsZFwiOiBcInlhcm4gbGludCAmJiBjb25jdXJyZW50bHkgJ3lhcm46YnVpbGQ6Y2pzJyAneWFybjpidWlsZDplcycgJ3lhcm46YnVpbGQ6dHlwZXMnXCIsXG4gICAgXCJidWlsZDpjanNcIjogXCJub2RlIC4uLy4uL3NjcmlwdHMvY29tcGlsYXRpb24vaW5saW5lIG5lc3RlZC1jbGllbnRzXCIsXG4gICAgXCJidWlsZDplc1wiOiBcInRzYyAtcCB0c2NvbmZpZy5lcy5qc29uXCIsXG4gICAgXCJidWlsZDppbmNsdWRlOmRlcHNcIjogXCJsZXJuYSBydW4gLS1zY29wZSAkbnBtX3BhY2thZ2VfbmFtZSAtLWluY2x1ZGUtZGVwZW5kZW5jaWVzIGJ1aWxkXCIsXG4gICAgXCJidWlsZDp0eXBlc1wiOiBcInRzYyAtcCB0c2NvbmZpZy50eXBlcy5qc29uXCIsXG4gICAgXCJidWlsZDp0eXBlczpkb3dubGV2ZWxcIjogXCJkb3dubGV2ZWwtZHRzIGRpc3QtdHlwZXMgZGlzdC10eXBlcy90czMuNFwiLFxuICAgIFwiY2xlYW5cIjogXCJyaW1yYWYgLi9kaXN0LSogJiYgcmltcmFmICoudHNidWlsZGluZm9cIixcbiAgICBcImxpbnRcIjogXCJub2RlIC4uLy4uL3NjcmlwdHMvdmFsaWRhdGlvbi9zdWJtb2R1bGVzLWxpbnRlci5qcyAtLXBrZyBuZXN0ZWQtY2xpZW50c1wiLFxuICAgIFwidGVzdFwiOiBcInlhcm4gZzp2aXRlc3QgcnVuXCIsXG4gICAgXCJ0ZXN0OndhdGNoXCI6IFwieWFybiBnOnZpdGVzdCB3YXRjaFwiXG4gIH0sXG4gIFwiZW5naW5lc1wiOiB7XG4gICAgXCJub2RlXCI6IFwiPj0xOC4wLjBcIlxuICB9LFxuICBcInNpZGVFZmZlY3RzXCI6IGZhbHNlLFxuICBcImF1dGhvclwiOiB7XG4gICAgXCJuYW1lXCI6IFwiQVdTIFNESyBmb3IgSmF2YVNjcmlwdCBUZWFtXCIsXG4gICAgXCJ1cmxcIjogXCJodHRwczovL2F3cy5hbWF6b24uY29tL2phdmFzY3JpcHQvXCJcbiAgfSxcbiAgXCJsaWNlbnNlXCI6IFwiQXBhY2hlLTIuMFwiLFxuICBcImRlcGVuZGVuY2llc1wiOiB7XG4gICAgXCJAYXdzLWNyeXB0by9zaGEyNTYtYnJvd3NlclwiOiBcIjUuMi4wXCIsXG4gICAgXCJAYXdzLWNyeXB0by9zaGEyNTYtanNcIjogXCI1LjIuMFwiLFxuICAgIFwiQGF3cy1zZGsvY29yZVwiOiBcIjMuOTQ3LjBcIixcbiAgICBcIkBhd3Mtc2RrL21pZGRsZXdhcmUtaG9zdC1oZWFkZXJcIjogXCIzLjkzNi4wXCIsXG4gICAgXCJAYXdzLXNkay9taWRkbGV3YXJlLWxvZ2dlclwiOiBcIjMuOTM2LjBcIixcbiAgICBcIkBhd3Mtc2RrL21pZGRsZXdhcmUtcmVjdXJzaW9uLWRldGVjdGlvblwiOiBcIjMuOTQ4LjBcIixcbiAgICBcIkBhd3Mtc2RrL21pZGRsZXdhcmUtdXNlci1hZ2VudFwiOiBcIjMuOTQ3LjBcIixcbiAgICBcIkBhd3Mtc2RrL3JlZ2lvbi1jb25maWctcmVzb2x2ZXJcIjogXCIzLjkzNi4wXCIsXG4gICAgXCJAYXdzLXNkay90eXBlc1wiOiBcIjMuOTM2LjBcIixcbiAgICBcIkBhd3Mtc2RrL3V0aWwtZW5kcG9pbnRzXCI6IFwiMy45MzYuMFwiLFxuICAgIFwiQGF3cy1zZGsvdXRpbC11c2VyLWFnZW50LWJyb3dzZXJcIjogXCIzLjkzNi4wXCIsXG4gICAgXCJAYXdzLXNkay91dGlsLXVzZXItYWdlbnQtbm9kZVwiOiBcIjMuOTQ3LjBcIixcbiAgICBcIkBzbWl0aHkvY29uZmlnLXJlc29sdmVyXCI6IFwiXjQuNC4zXCIsXG4gICAgXCJAc21pdGh5L2NvcmVcIjogXCJeMy4xOC43XCIsXG4gICAgXCJAc21pdGh5L2ZldGNoLWh0dHAtaGFuZGxlclwiOiBcIl41LjMuNlwiLFxuICAgIFwiQHNtaXRoeS9oYXNoLW5vZGVcIjogXCJeNC4yLjVcIixcbiAgICBcIkBzbWl0aHkvaW52YWxpZC1kZXBlbmRlbmN5XCI6IFwiXjQuMi41XCIsXG4gICAgXCJAc21pdGh5L21pZGRsZXdhcmUtY29udGVudC1sZW5ndGhcIjogXCJeNC4yLjVcIixcbiAgICBcIkBzbWl0aHkvbWlkZGxld2FyZS1lbmRwb2ludFwiOiBcIl40LjMuMTRcIixcbiAgICBcIkBzbWl0aHkvbWlkZGxld2FyZS1yZXRyeVwiOiBcIl40LjQuMTRcIixcbiAgICBcIkBzbWl0aHkvbWlkZGxld2FyZS1zZXJkZVwiOiBcIl40LjIuNlwiLFxuICAgIFwiQHNtaXRoeS9taWRkbGV3YXJlLXN0YWNrXCI6IFwiXjQuMi41XCIsXG4gICAgXCJAc21pdGh5L25vZGUtY29uZmlnLXByb3ZpZGVyXCI6IFwiXjQuMy41XCIsXG4gICAgXCJAc21pdGh5L25vZGUtaHR0cC1oYW5kbGVyXCI6IFwiXjQuNC41XCIsXG4gICAgXCJAc21pdGh5L3Byb3RvY29sLWh0dHBcIjogXCJeNS4zLjVcIixcbiAgICBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiOiBcIl40LjkuMTBcIixcbiAgICBcIkBzbWl0aHkvdHlwZXNcIjogXCJeNC45LjBcIixcbiAgICBcIkBzbWl0aHkvdXJsLXBhcnNlclwiOiBcIl40LjIuNVwiLFxuICAgIFwiQHNtaXRoeS91dGlsLWJhc2U2NFwiOiBcIl40LjMuMFwiLFxuICAgIFwiQHNtaXRoeS91dGlsLWJvZHktbGVuZ3RoLWJyb3dzZXJcIjogXCJeNC4yLjBcIixcbiAgICBcIkBzbWl0aHkvdXRpbC1ib2R5LWxlbmd0aC1ub2RlXCI6IFwiXjQuMi4xXCIsXG4gICAgXCJAc21pdGh5L3V0aWwtZGVmYXVsdHMtbW9kZS1icm93c2VyXCI6IFwiXjQuMy4xM1wiLFxuICAgIFwiQHNtaXRoeS91dGlsLWRlZmF1bHRzLW1vZGUtbm9kZVwiOiBcIl40LjIuMTZcIixcbiAgICBcIkBzbWl0aHkvdXRpbC1lbmRwb2ludHNcIjogXCJeMy4yLjVcIixcbiAgICBcIkBzbWl0aHkvdXRpbC1taWRkbGV3YXJlXCI6IFwiXjQuMi41XCIsXG4gICAgXCJAc21pdGh5L3V0aWwtcmV0cnlcIjogXCJeNC4yLjVcIixcbiAgICBcIkBzbWl0aHkvdXRpbC11dGY4XCI6IFwiXjQuMi4wXCIsXG4gICAgXCJ0c2xpYlwiOiBcIl4yLjYuMlwiXG4gIH0sXG4gIFwiZGV2RGVwZW5kZW5jaWVzXCI6IHtcbiAgICBcImNvbmN1cnJlbnRseVwiOiBcIjcuMC4wXCIsXG4gICAgXCJkb3dubGV2ZWwtZHRzXCI6IFwiMC4xMC4xXCIsXG4gICAgXCJyaW1yYWZcIjogXCIzLjAuMlwiLFxuICAgIFwidHlwZXNjcmlwdFwiOiBcIn41LjguM1wiXG4gIH0sXG4gIFwidHlwZXNWZXJzaW9uc1wiOiB7XG4gICAgXCI8NC4wXCI6IHtcbiAgICAgIFwiZGlzdC10eXBlcy8qXCI6IFtcbiAgICAgICAgXCJkaXN0LXR5cGVzL3RzMy40LypcIlxuICAgICAgXVxuICAgIH1cbiAgfSxcbiAgXCJmaWxlc1wiOiBbXG4gICAgXCIuL3NpZ25pbi5kLnRzXCIsXG4gICAgXCIuL3NpZ25pbi5qc1wiLFxuICAgIFwiLi9zc28tb2lkYy5kLnRzXCIsXG4gICAgXCIuL3Nzby1vaWRjLmpzXCIsXG4gICAgXCIuL3N0cy5kLnRzXCIsXG4gICAgXCIuL3N0cy5qc1wiLFxuICAgIFwiZGlzdC0qLyoqXCJcbiAgXSxcbiAgXCJicm93c2VyXCI6IHtcbiAgICBcIi4vZGlzdC1lcy9zdWJtb2R1bGVzL3NpZ25pbi9ydW50aW1lQ29uZmlnXCI6IFwiLi9kaXN0LWVzL3N1Ym1vZHVsZXMvc2lnbmluL3J1bnRpbWVDb25maWcuYnJvd3NlclwiLFxuICAgIFwiLi9kaXN0LWVzL3N1Ym1vZHVsZXMvc3NvLW9pZGMvcnVudGltZUNvbmZpZ1wiOiBcIi4vZGlzdC1lcy9zdWJtb2R1bGVzL3Nzby1vaWRjL3J1bnRpbWVDb25maWcuYnJvd3NlclwiLFxuICAgIFwiLi9kaXN0LWVzL3N1Ym1vZHVsZXMvc3RzL3J1bnRpbWVDb25maWdcIjogXCIuL2Rpc3QtZXMvc3VibW9kdWxlcy9zdHMvcnVudGltZUNvbmZpZy5icm93c2VyXCJcbiAgfSxcbiAgXCJyZWFjdC1uYXRpdmVcIjoge30sXG4gIFwiaG9tZXBhZ2VcIjogXCJodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1zZGstanMtdjMvdHJlZS9tYWluL3BhY2thZ2VzL25lc3RlZC1jbGllbnRzXCIsXG4gIFwicmVwb3NpdG9yeVwiOiB7XG4gICAgXCJ0eXBlXCI6IFwiZ2l0XCIsXG4gICAgXCJ1cmxcIjogXCJodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1zZGstanMtdjMuZ2l0XCIsXG4gICAgXCJkaXJlY3RvcnlcIjogXCJwYWNrYWdlcy9uZXN0ZWQtY2xpZW50c1wiXG4gIH0sXG4gIFwiZXhwb3J0c1wiOiB7XG4gICAgXCIuL3BhY2thZ2UuanNvblwiOiBcIi4vcGFja2FnZS5qc29uXCIsXG4gICAgXCIuL3Nzby1vaWRjXCI6IHtcbiAgICAgIFwidHlwZXNcIjogXCIuL2Rpc3QtdHlwZXMvc3VibW9kdWxlcy9zc28tb2lkYy9pbmRleC5kLnRzXCIsXG4gICAgICBcIm1vZHVsZVwiOiBcIi4vZGlzdC1lcy9zdWJtb2R1bGVzL3Nzby1vaWRjL2luZGV4LmpzXCIsXG4gICAgICBcIm5vZGVcIjogXCIuL2Rpc3QtY2pzL3N1Ym1vZHVsZXMvc3NvLW9pZGMvaW5kZXguanNcIixcbiAgICAgIFwiaW1wb3J0XCI6IFwiLi9kaXN0LWVzL3N1Ym1vZHVsZXMvc3NvLW9pZGMvaW5kZXguanNcIixcbiAgICAgIFwicmVxdWlyZVwiOiBcIi4vZGlzdC1janMvc3VibW9kdWxlcy9zc28tb2lkYy9pbmRleC5qc1wiXG4gICAgfSxcbiAgICBcIi4vc3RzXCI6IHtcbiAgICAgIFwidHlwZXNcIjogXCIuL2Rpc3QtdHlwZXMvc3VibW9kdWxlcy9zdHMvaW5kZXguZC50c1wiLFxuICAgICAgXCJtb2R1bGVcIjogXCIuL2Rpc3QtZXMvc3VibW9kdWxlcy9zdHMvaW5kZXguanNcIixcbiAgICAgIFwibm9kZVwiOiBcIi4vZGlzdC1janMvc3VibW9kdWxlcy9zdHMvaW5kZXguanNcIixcbiAgICAgIFwiaW1wb3J0XCI6IFwiLi9kaXN0LWVzL3N1Ym1vZHVsZXMvc3RzL2luZGV4LmpzXCIsXG4gICAgICBcInJlcXVpcmVcIjogXCIuL2Rpc3QtY2pzL3N1Ym1vZHVsZXMvc3RzL2luZGV4LmpzXCJcbiAgICB9LFxuICAgIFwiLi9zaWduaW5cIjoge1xuICAgICAgXCJ0eXBlc1wiOiBcIi4vZGlzdC10eXBlcy9zdWJtb2R1bGVzL3NpZ25pbi9pbmRleC5kLnRzXCIsXG4gICAgICBcIm1vZHVsZVwiOiBcIi4vZGlzdC1lcy9zdWJtb2R1bGVzL3NpZ25pbi9pbmRleC5qc1wiLFxuICAgICAgXCJub2RlXCI6IFwiLi9kaXN0LWNqcy9zdWJtb2R1bGVzL3NpZ25pbi9pbmRleC5qc1wiLFxuICAgICAgXCJpbXBvcnRcIjogXCIuL2Rpc3QtZXMvc3VibW9kdWxlcy9zaWduaW4vaW5kZXguanNcIixcbiAgICAgIFwicmVxdWlyZVwiOiBcIi4vZGlzdC1janMvc3VibW9kdWxlcy9zaWduaW4vaW5kZXguanNcIlxuICAgIH1cbiAgfVxufVxuIiwgIid1c2Ugc3RyaWN0JztcblxudmFyIG9zID0gcmVxdWlyZSgnb3MnKTtcbnZhciBwcm9jZXNzID0gcmVxdWlyZSgncHJvY2VzcycpO1xudmFyIG1pZGRsZXdhcmVVc2VyQWdlbnQgPSByZXF1aXJlKCdAYXdzLXNkay9taWRkbGV3YXJlLXVzZXItYWdlbnQnKTtcblxuY29uc3QgY3J0QXZhaWxhYmlsaXR5ID0ge1xuICAgIGlzQ3J0QXZhaWxhYmxlOiBmYWxzZSxcbn07XG5cbmNvbnN0IGlzQ3J0QXZhaWxhYmxlID0gKCkgPT4ge1xuICAgIGlmIChjcnRBdmFpbGFiaWxpdHkuaXNDcnRBdmFpbGFibGUpIHtcbiAgICAgICAgcmV0dXJuIFtcIm1kL2NydC1hdmFpbFwiXTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG59O1xuXG5jb25zdCBjcmVhdGVEZWZhdWx0VXNlckFnZW50UHJvdmlkZXIgPSAoeyBzZXJ2aWNlSWQsIGNsaWVudFZlcnNpb24gfSkgPT4ge1xuICAgIHJldHVybiBhc3luYyAoY29uZmlnKSA9PiB7XG4gICAgICAgIGNvbnN0IHNlY3Rpb25zID0gW1xuICAgICAgICAgICAgW1wiYXdzLXNkay1qc1wiLCBjbGllbnRWZXJzaW9uXSxcbiAgICAgICAgICAgIFtcInVhXCIsIFwiMi4xXCJdLFxuICAgICAgICAgICAgW2Bvcy8ke29zLnBsYXRmb3JtKCl9YCwgb3MucmVsZWFzZSgpXSxcbiAgICAgICAgICAgIFtcImxhbmcvanNcIl0sXG4gICAgICAgICAgICBbXCJtZC9ub2RlanNcIiwgYCR7cHJvY2Vzcy52ZXJzaW9ucy5ub2RlfWBdLFxuICAgICAgICBdO1xuICAgICAgICBjb25zdCBjcnRBdmFpbGFibGUgPSBpc0NydEF2YWlsYWJsZSgpO1xuICAgICAgICBpZiAoY3J0QXZhaWxhYmxlKSB7XG4gICAgICAgICAgICBzZWN0aW9ucy5wdXNoKGNydEF2YWlsYWJsZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNlcnZpY2VJZCkge1xuICAgICAgICAgICAgc2VjdGlvbnMucHVzaChbYGFwaS8ke3NlcnZpY2VJZH1gLCBjbGllbnRWZXJzaW9uXSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHByb2Nlc3MuZW52LkFXU19FWEVDVVRJT05fRU5WKSB7XG4gICAgICAgICAgICBzZWN0aW9ucy5wdXNoKFtgZXhlYy1lbnYvJHtwcm9jZXNzLmVudi5BV1NfRVhFQ1VUSU9OX0VOVn1gXSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYXBwSWQgPSBhd2FpdCBjb25maWc/LnVzZXJBZ2VudEFwcElkPy4oKTtcbiAgICAgICAgY29uc3QgcmVzb2x2ZWRVc2VyQWdlbnQgPSBhcHBJZCA/IFsuLi5zZWN0aW9ucywgW2BhcHAvJHthcHBJZH1gXV0gOiBbLi4uc2VjdGlvbnNdO1xuICAgICAgICByZXR1cm4gcmVzb2x2ZWRVc2VyQWdlbnQ7XG4gICAgfTtcbn07XG5jb25zdCBkZWZhdWx0VXNlckFnZW50ID0gY3JlYXRlRGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyO1xuXG5jb25zdCBVQV9BUFBfSURfRU5WX05BTUUgPSBcIkFXU19TREtfVUFfQVBQX0lEXCI7XG5jb25zdCBVQV9BUFBfSURfSU5JX05BTUUgPSBcInNka191YV9hcHBfaWRcIjtcbmNvbnN0IFVBX0FQUF9JRF9JTklfTkFNRV9ERVBSRUNBVEVEID0gXCJzZGstdWEtYXBwLWlkXCI7XG5jb25zdCBOT0RFX0FQUF9JRF9DT05GSUdfT1BUSU9OUyA9IHtcbiAgICBlbnZpcm9ubWVudFZhcmlhYmxlU2VsZWN0b3I6IChlbnYpID0+IGVudltVQV9BUFBfSURfRU5WX05BTUVdLFxuICAgIGNvbmZpZ0ZpbGVTZWxlY3RvcjogKHByb2ZpbGUpID0+IHByb2ZpbGVbVUFfQVBQX0lEX0lOSV9OQU1FXSA/PyBwcm9maWxlW1VBX0FQUF9JRF9JTklfTkFNRV9ERVBSRUNBVEVEXSxcbiAgICBkZWZhdWx0OiBtaWRkbGV3YXJlVXNlckFnZW50LkRFRkFVTFRfVUFfQVBQX0lELFxufTtcblxuZXhwb3J0cy5OT0RFX0FQUF9JRF9DT05GSUdfT1BUSU9OUyA9IE5PREVfQVBQX0lEX0NPTkZJR19PUFRJT05TO1xuZXhwb3J0cy5VQV9BUFBfSURfRU5WX05BTUUgPSBVQV9BUFBfSURfRU5WX05BTUU7XG5leHBvcnRzLlVBX0FQUF9JRF9JTklfTkFNRSA9IFVBX0FQUF9JRF9JTklfTkFNRTtcbmV4cG9ydHMuY3JlYXRlRGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyID0gY3JlYXRlRGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyO1xuZXhwb3J0cy5jcnRBdmFpbGFiaWxpdHkgPSBjcnRBdmFpbGFiaWxpdHk7XG5leHBvcnRzLmRlZmF1bHRVc2VyQWdlbnQgPSBkZWZhdWx0VXNlckFnZW50O1xuIiwgImNvbnN0IHUgPSBcInJlcXVpcmVkXCIsIHYgPSBcImZuXCIsIHcgPSBcImFyZ3ZcIiwgeCA9IFwicmVmXCI7XG5jb25zdCBhID0gdHJ1ZSwgYiA9IFwiaXNTZXRcIiwgYyA9IFwiYm9vbGVhbkVxdWFsc1wiLCBkID0gXCJlcnJvclwiLCBlID0gXCJlbmRwb2ludFwiLCBmID0gXCJ0cmVlXCIsIGcgPSBcIlBhcnRpdGlvblJlc3VsdFwiLCBoID0gXCJnZXRBdHRyXCIsIGkgPSB7IFt1XTogZmFsc2UsIFwidHlwZVwiOiBcInN0cmluZ1wiIH0sIGogPSB7IFt1XTogdHJ1ZSwgXCJkZWZhdWx0XCI6IGZhbHNlLCBcInR5cGVcIjogXCJib29sZWFuXCIgfSwgayA9IHsgW3hdOiBcIkVuZHBvaW50XCIgfSwgbCA9IHsgW3ZdOiBjLCBbd106IFt7IFt4XTogXCJVc2VGSVBTXCIgfSwgdHJ1ZV0gfSwgbSA9IHsgW3ZdOiBjLCBbd106IFt7IFt4XTogXCJVc2VEdWFsU3RhY2tcIiB9LCB0cnVlXSB9LCBuID0ge30sIG8gPSB7IFt2XTogaCwgW3ddOiBbeyBbeF06IGcgfSwgXCJzdXBwb3J0c0ZJUFNcIl0gfSwgcCA9IHsgW3hdOiBnIH0sIHEgPSB7IFt2XTogYywgW3ddOiBbdHJ1ZSwgeyBbdl06IGgsIFt3XTogW3AsIFwic3VwcG9ydHNEdWFsU3RhY2tcIl0gfV0gfSwgciA9IFtsXSwgcyA9IFttXSwgdCA9IFt7IFt4XTogXCJSZWdpb25cIiB9XTtcbmNvbnN0IF9kYXRhID0geyB2ZXJzaW9uOiBcIjEuMFwiLCBwYXJhbWV0ZXJzOiB7IFJlZ2lvbjogaSwgVXNlRHVhbFN0YWNrOiBqLCBVc2VGSVBTOiBqLCBFbmRwb2ludDogaSB9LCBydWxlczogW3sgY29uZGl0aW9uczogW3sgW3ZdOiBiLCBbd106IFtrXSB9XSwgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IHIsIGVycm9yOiBcIkludmFsaWQgQ29uZmlndXJhdGlvbjogRklQUyBhbmQgY3VzdG9tIGVuZHBvaW50IGFyZSBub3Qgc3VwcG9ydGVkXCIsIHR5cGU6IGQgfSwgeyBjb25kaXRpb25zOiBzLCBlcnJvcjogXCJJbnZhbGlkIENvbmZpZ3VyYXRpb246IER1YWxzdGFjayBhbmQgY3VzdG9tIGVuZHBvaW50IGFyZSBub3Qgc3VwcG9ydGVkXCIsIHR5cGU6IGQgfSwgeyBlbmRwb2ludDogeyB1cmw6IGssIHByb3BlcnRpZXM6IG4sIGhlYWRlcnM6IG4gfSwgdHlwZTogZSB9XSwgdHlwZTogZiB9LCB7IGNvbmRpdGlvbnM6IFt7IFt2XTogYiwgW3ddOiB0IH1dLCBydWxlczogW3sgY29uZGl0aW9uczogW3sgW3ZdOiBcImF3cy5wYXJ0aXRpb25cIiwgW3ddOiB0LCBhc3NpZ246IGcgfV0sIHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbbCwgbV0sIHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbeyBbdl06IGMsIFt3XTogW2EsIG9dIH0sIHFdLCBydWxlczogW3sgZW5kcG9pbnQ6IHsgdXJsOiBcImh0dHBzOi8vb2lkYy1maXBzLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZHVhbFN0YWNrRG5zU3VmZml4fVwiLCBwcm9wZXJ0aWVzOiBuLCBoZWFkZXJzOiBuIH0sIHR5cGU6IGUgfV0sIHR5cGU6IGYgfSwgeyBlcnJvcjogXCJGSVBTIGFuZCBEdWFsU3RhY2sgYXJlIGVuYWJsZWQsIGJ1dCB0aGlzIHBhcnRpdGlvbiBkb2VzIG5vdCBzdXBwb3J0IG9uZSBvciBib3RoXCIsIHR5cGU6IGQgfV0sIHR5cGU6IGYgfSwgeyBjb25kaXRpb25zOiByLCBydWxlczogW3sgY29uZGl0aW9uczogW3sgW3ZdOiBjLCBbd106IFtvLCBhXSB9XSwgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IFt7IFt2XTogXCJzdHJpbmdFcXVhbHNcIiwgW3ddOiBbeyBbdl06IGgsIFt3XTogW3AsIFwibmFtZVwiXSB9LCBcImF3cy11cy1nb3ZcIl0gfV0sIGVuZHBvaW50OiB7IHVybDogXCJodHRwczovL29pZGMue1JlZ2lvbn0uYW1hem9uYXdzLmNvbVwiLCBwcm9wZXJ0aWVzOiBuLCBoZWFkZXJzOiBuIH0sIHR5cGU6IGUgfSwgeyBlbmRwb2ludDogeyB1cmw6IFwiaHR0cHM6Ly9vaWRjLWZpcHMue1JlZ2lvbn0ue1BhcnRpdGlvblJlc3VsdCNkbnNTdWZmaXh9XCIsIHByb3BlcnRpZXM6IG4sIGhlYWRlcnM6IG4gfSwgdHlwZTogZSB9XSwgdHlwZTogZiB9LCB7IGVycm9yOiBcIkZJUFMgaXMgZW5hYmxlZCBidXQgdGhpcyBwYXJ0aXRpb24gZG9lcyBub3Qgc3VwcG9ydCBGSVBTXCIsIHR5cGU6IGQgfV0sIHR5cGU6IGYgfSwgeyBjb25kaXRpb25zOiBzLCBydWxlczogW3sgY29uZGl0aW9uczogW3FdLCBydWxlczogW3sgZW5kcG9pbnQ6IHsgdXJsOiBcImh0dHBzOi8vb2lkYy57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2R1YWxTdGFja0Ruc1N1ZmZpeH1cIiwgcHJvcGVydGllczogbiwgaGVhZGVyczogbiB9LCB0eXBlOiBlIH1dLCB0eXBlOiBmIH0sIHsgZXJyb3I6IFwiRHVhbFN0YWNrIGlzIGVuYWJsZWQgYnV0IHRoaXMgcGFydGl0aW9uIGRvZXMgbm90IHN1cHBvcnQgRHVhbFN0YWNrXCIsIHR5cGU6IGQgfV0sIHR5cGU6IGYgfSwgeyBlbmRwb2ludDogeyB1cmw6IFwiaHR0cHM6Ly9vaWRjLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZG5zU3VmZml4fVwiLCBwcm9wZXJ0aWVzOiBuLCBoZWFkZXJzOiBuIH0sIHR5cGU6IGUgfV0sIHR5cGU6IGYgfV0sIHR5cGU6IGYgfSwgeyBlcnJvcjogXCJJbnZhbGlkIENvbmZpZ3VyYXRpb246IE1pc3NpbmcgUmVnaW9uXCIsIHR5cGU6IGQgfV0gfTtcbmV4cG9ydCBjb25zdCBydWxlU2V0ID0gX2RhdGE7XG4iLCAiaW1wb3J0IHsgYXdzRW5kcG9pbnRGdW5jdGlvbnMgfSBmcm9tIFwiQGF3cy1zZGsvdXRpbC1lbmRwb2ludHNcIjtcbmltcG9ydCB7IGN1c3RvbUVuZHBvaW50RnVuY3Rpb25zLCBFbmRwb2ludENhY2hlLCByZXNvbHZlRW5kcG9pbnQgfSBmcm9tIFwiQHNtaXRoeS91dGlsLWVuZHBvaW50c1wiO1xuaW1wb3J0IHsgcnVsZVNldCB9IGZyb20gXCIuL3J1bGVzZXRcIjtcbmNvbnN0IGNhY2hlID0gbmV3IEVuZHBvaW50Q2FjaGUoe1xuICAgIHNpemU6IDUwLFxuICAgIHBhcmFtczogW1wiRW5kcG9pbnRcIiwgXCJSZWdpb25cIiwgXCJVc2VEdWFsU3RhY2tcIiwgXCJVc2VGSVBTXCJdLFxufSk7XG5leHBvcnQgY29uc3QgZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIgPSAoZW5kcG9pbnRQYXJhbXMsIGNvbnRleHQgPSB7fSkgPT4ge1xuICAgIHJldHVybiBjYWNoZS5nZXQoZW5kcG9pbnRQYXJhbXMsICgpID0+IHJlc29sdmVFbmRwb2ludChydWxlU2V0LCB7XG4gICAgICAgIGVuZHBvaW50UGFyYW1zOiBlbmRwb2ludFBhcmFtcyxcbiAgICAgICAgbG9nZ2VyOiBjb250ZXh0LmxvZ2dlcixcbiAgICB9KSk7XG59O1xuY3VzdG9tRW5kcG9pbnRGdW5jdGlvbnMuYXdzID0gYXdzRW5kcG9pbnRGdW5jdGlvbnM7XG4iLCAiaW1wb3J0IHsgQXdzU2RrU2lnVjRTaWduZXIgfSBmcm9tIFwiQGF3cy1zZGsvY29yZVwiO1xuaW1wb3J0IHsgQXdzUmVzdEpzb25Qcm90b2NvbCB9IGZyb20gXCJAYXdzLXNkay9jb3JlL3Byb3RvY29sc1wiO1xuaW1wb3J0IHsgTm9BdXRoU2lnbmVyIH0gZnJvbSBcIkBzbWl0aHkvY29yZVwiO1xuaW1wb3J0IHsgTm9PcExvZ2dlciB9IGZyb20gXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjtcbmltcG9ydCB7IHBhcnNlVXJsIH0gZnJvbSBcIkBzbWl0aHkvdXJsLXBhcnNlclwiO1xuaW1wb3J0IHsgZnJvbUJhc2U2NCwgdG9CYXNlNjQgfSBmcm9tIFwiQHNtaXRoeS91dGlsLWJhc2U2NFwiO1xuaW1wb3J0IHsgZnJvbVV0ZjgsIHRvVXRmOCB9IGZyb20gXCJAc21pdGh5L3V0aWwtdXRmOFwiO1xuaW1wb3J0IHsgZGVmYXVsdFNTT09JRENIdHRwQXV0aFNjaGVtZVByb3ZpZGVyIH0gZnJvbSBcIi4vYXV0aC9odHRwQXV0aFNjaGVtZVByb3ZpZGVyXCI7XG5pbXBvcnQgeyBkZWZhdWx0RW5kcG9pbnRSZXNvbHZlciB9IGZyb20gXCIuL2VuZHBvaW50L2VuZHBvaW50UmVzb2x2ZXJcIjtcbmV4cG9ydCBjb25zdCBnZXRSdW50aW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIGFwaVZlcnNpb246IFwiMjAxOS0wNi0xMFwiLFxuICAgICAgICBiYXNlNjREZWNvZGVyOiBjb25maWc/LmJhc2U2NERlY29kZXIgPz8gZnJvbUJhc2U2NCxcbiAgICAgICAgYmFzZTY0RW5jb2RlcjogY29uZmlnPy5iYXNlNjRFbmNvZGVyID8/IHRvQmFzZTY0LFxuICAgICAgICBkaXNhYmxlSG9zdFByZWZpeDogY29uZmlnPy5kaXNhYmxlSG9zdFByZWZpeCA/PyBmYWxzZSxcbiAgICAgICAgZW5kcG9pbnRQcm92aWRlcjogY29uZmlnPy5lbmRwb2ludFByb3ZpZGVyID8/IGRlZmF1bHRFbmRwb2ludFJlc29sdmVyLFxuICAgICAgICBleHRlbnNpb25zOiBjb25maWc/LmV4dGVuc2lvbnMgPz8gW10sXG4gICAgICAgIGh0dHBBdXRoU2NoZW1lUHJvdmlkZXI6IGNvbmZpZz8uaHR0cEF1dGhTY2hlbWVQcm92aWRlciA/PyBkZWZhdWx0U1NPT0lEQ0h0dHBBdXRoU2NoZW1lUHJvdmlkZXIsXG4gICAgICAgIGh0dHBBdXRoU2NoZW1lczogY29uZmlnPy5odHRwQXV0aFNjaGVtZXMgPz8gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHNjaGVtZUlkOiBcImF3cy5hdXRoI3NpZ3Y0XCIsXG4gICAgICAgICAgICAgICAgaWRlbnRpdHlQcm92aWRlcjogKGlwYykgPT4gaXBjLmdldElkZW50aXR5UHJvdmlkZXIoXCJhd3MuYXV0aCNzaWd2NFwiKSxcbiAgICAgICAgICAgICAgICBzaWduZXI6IG5ldyBBd3NTZGtTaWdWNFNpZ25lcigpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzY2hlbWVJZDogXCJzbWl0aHkuYXBpI25vQXV0aFwiLFxuICAgICAgICAgICAgICAgIGlkZW50aXR5UHJvdmlkZXI6IChpcGMpID0+IGlwYy5nZXRJZGVudGl0eVByb3ZpZGVyKFwic21pdGh5LmFwaSNub0F1dGhcIikgfHwgKGFzeW5jICgpID0+ICh7fSkpLFxuICAgICAgICAgICAgICAgIHNpZ25lcjogbmV3IE5vQXV0aFNpZ25lcigpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgbG9nZ2VyOiBjb25maWc/LmxvZ2dlciA/PyBuZXcgTm9PcExvZ2dlcigpLFxuICAgICAgICBwcm90b2NvbDogY29uZmlnPy5wcm90b2NvbCA/PyBuZXcgQXdzUmVzdEpzb25Qcm90b2NvbCh7IGRlZmF1bHROYW1lc3BhY2U6IFwiY29tLmFtYXpvbmF3cy5zc29vaWRjXCIgfSksXG4gICAgICAgIHNlcnZpY2VJZDogY29uZmlnPy5zZXJ2aWNlSWQgPz8gXCJTU08gT0lEQ1wiLFxuICAgICAgICB1cmxQYXJzZXI6IGNvbmZpZz8udXJsUGFyc2VyID8/IHBhcnNlVXJsLFxuICAgICAgICB1dGY4RGVjb2RlcjogY29uZmlnPy51dGY4RGVjb2RlciA/PyBmcm9tVXRmOCxcbiAgICAgICAgdXRmOEVuY29kZXI6IGNvbmZpZz8udXRmOEVuY29kZXIgPz8gdG9VdGY4LFxuICAgIH07XG59O1xuIiwgImltcG9ydCBwYWNrYWdlSW5mbyBmcm9tIFwiLi4vLi4vLi4vcGFja2FnZS5qc29uXCI7XG5pbXBvcnQgeyBOT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfT1BUSU9OUywgZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbiBhcyBhd3NDaGVja1ZlcnNpb24gfSBmcm9tIFwiQGF3cy1zZGsvY29yZVwiO1xuaW1wb3J0IHsgTk9ERV9BUFBfSURfQ09ORklHX09QVElPTlMsIGNyZWF0ZURlZmF1bHRVc2VyQWdlbnRQcm92aWRlciB9IGZyb20gXCJAYXdzLXNkay91dGlsLXVzZXItYWdlbnQtbm9kZVwiO1xuaW1wb3J0IHsgTk9ERV9SRUdJT05fQ09ORklHX0ZJTEVfT1BUSU9OUywgTk9ERV9SRUdJT05fQ09ORklHX09QVElPTlMsIE5PREVfVVNFX0RVQUxTVEFDS19FTkRQT0lOVF9DT05GSUdfT1BUSU9OUywgTk9ERV9VU0VfRklQU19FTkRQT0lOVF9DT05GSUdfT1BUSU9OUywgfSBmcm9tIFwiQHNtaXRoeS9jb25maWctcmVzb2x2ZXJcIjtcbmltcG9ydCB7IEhhc2ggfSBmcm9tIFwiQHNtaXRoeS9oYXNoLW5vZGVcIjtcbmltcG9ydCB7IE5PREVfTUFYX0FUVEVNUFRfQ09ORklHX09QVElPTlMsIE5PREVfUkVUUllfTU9ERV9DT05GSUdfT1BUSU9OUyB9IGZyb20gXCJAc21pdGh5L21pZGRsZXdhcmUtcmV0cnlcIjtcbmltcG9ydCB7IGxvYWRDb25maWcgYXMgbG9hZE5vZGVDb25maWcgfSBmcm9tIFwiQHNtaXRoeS9ub2RlLWNvbmZpZy1wcm92aWRlclwiO1xuaW1wb3J0IHsgTm9kZUh0dHBIYW5kbGVyIGFzIFJlcXVlc3RIYW5kbGVyLCBzdHJlYW1Db2xsZWN0b3IgfSBmcm9tIFwiQHNtaXRoeS9ub2RlLWh0dHAtaGFuZGxlclwiO1xuaW1wb3J0IHsgZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbiwgbG9hZENvbmZpZ3NGb3JEZWZhdWx0TW9kZSB9IGZyb20gXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjtcbmltcG9ydCB7IGNhbGN1bGF0ZUJvZHlMZW5ndGggfSBmcm9tIFwiQHNtaXRoeS91dGlsLWJvZHktbGVuZ3RoLW5vZGVcIjtcbmltcG9ydCB7IHJlc29sdmVEZWZhdWx0c01vZGVDb25maWcgfSBmcm9tIFwiQHNtaXRoeS91dGlsLWRlZmF1bHRzLW1vZGUtbm9kZVwiO1xuaW1wb3J0IHsgREVGQVVMVF9SRVRSWV9NT0RFIH0gZnJvbSBcIkBzbWl0aHkvdXRpbC1yZXRyeVwiO1xuaW1wb3J0IHsgZ2V0UnVudGltZUNvbmZpZyBhcyBnZXRTaGFyZWRSdW50aW1lQ29uZmlnIH0gZnJvbSBcIi4vcnVudGltZUNvbmZpZy5zaGFyZWRcIjtcbmV4cG9ydCBjb25zdCBnZXRSdW50aW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIGVtaXRXYXJuaW5nSWZVbnN1cHBvcnRlZFZlcnNpb24ocHJvY2Vzcy52ZXJzaW9uKTtcbiAgICBjb25zdCBkZWZhdWx0c01vZGUgPSByZXNvbHZlRGVmYXVsdHNNb2RlQ29uZmlnKGNvbmZpZyk7XG4gICAgY29uc3QgZGVmYXVsdENvbmZpZ1Byb3ZpZGVyID0gKCkgPT4gZGVmYXVsdHNNb2RlKCkudGhlbihsb2FkQ29uZmlnc0ZvckRlZmF1bHRNb2RlKTtcbiAgICBjb25zdCBjbGllbnRTaGFyZWRWYWx1ZXMgPSBnZXRTaGFyZWRSdW50aW1lQ29uZmlnKGNvbmZpZyk7XG4gICAgYXdzQ2hlY2tWZXJzaW9uKHByb2Nlc3MudmVyc2lvbik7XG4gICAgY29uc3QgbG9hZGVyQ29uZmlnID0ge1xuICAgICAgICBwcm9maWxlOiBjb25maWc/LnByb2ZpbGUsXG4gICAgICAgIGxvZ2dlcjogY2xpZW50U2hhcmVkVmFsdWVzLmxvZ2dlcixcbiAgICB9O1xuICAgIHJldHVybiB7XG4gICAgICAgIC4uLmNsaWVudFNoYXJlZFZhbHVlcyxcbiAgICAgICAgLi4uY29uZmlnLFxuICAgICAgICBydW50aW1lOiBcIm5vZGVcIixcbiAgICAgICAgZGVmYXVsdHNNb2RlLFxuICAgICAgICBhdXRoU2NoZW1lUHJlZmVyZW5jZTogY29uZmlnPy5hdXRoU2NoZW1lUHJlZmVyZW5jZSA/PyBsb2FkTm9kZUNvbmZpZyhOT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfT1BUSU9OUywgbG9hZGVyQ29uZmlnKSxcbiAgICAgICAgYm9keUxlbmd0aENoZWNrZXI6IGNvbmZpZz8uYm9keUxlbmd0aENoZWNrZXIgPz8gY2FsY3VsYXRlQm9keUxlbmd0aCxcbiAgICAgICAgZGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyOiBjb25maWc/LmRlZmF1bHRVc2VyQWdlbnRQcm92aWRlciA/P1xuICAgICAgICAgICAgY3JlYXRlRGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyKHsgc2VydmljZUlkOiBjbGllbnRTaGFyZWRWYWx1ZXMuc2VydmljZUlkLCBjbGllbnRWZXJzaW9uOiBwYWNrYWdlSW5mby52ZXJzaW9uIH0pLFxuICAgICAgICBtYXhBdHRlbXB0czogY29uZmlnPy5tYXhBdHRlbXB0cyA/PyBsb2FkTm9kZUNvbmZpZyhOT0RFX01BWF9BVFRFTVBUX0NPTkZJR19PUFRJT05TLCBjb25maWcpLFxuICAgICAgICByZWdpb246IGNvbmZpZz8ucmVnaW9uID8/XG4gICAgICAgICAgICBsb2FkTm9kZUNvbmZpZyhOT0RFX1JFR0lPTl9DT05GSUdfT1BUSU9OUywgeyAuLi5OT0RFX1JFR0lPTl9DT05GSUdfRklMRV9PUFRJT05TLCAuLi5sb2FkZXJDb25maWcgfSksXG4gICAgICAgIHJlcXVlc3RIYW5kbGVyOiBSZXF1ZXN0SGFuZGxlci5jcmVhdGUoY29uZmlnPy5yZXF1ZXN0SGFuZGxlciA/PyBkZWZhdWx0Q29uZmlnUHJvdmlkZXIpLFxuICAgICAgICByZXRyeU1vZGU6IGNvbmZpZz8ucmV0cnlNb2RlID8/XG4gICAgICAgICAgICBsb2FkTm9kZUNvbmZpZyh7XG4gICAgICAgICAgICAgICAgLi4uTk9ERV9SRVRSWV9NT0RFX0NPTkZJR19PUFRJT05TLFxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IGFzeW5jICgpID0+IChhd2FpdCBkZWZhdWx0Q29uZmlnUHJvdmlkZXIoKSkucmV0cnlNb2RlIHx8IERFRkFVTFRfUkVUUllfTU9ERSxcbiAgICAgICAgICAgIH0sIGNvbmZpZyksXG4gICAgICAgIHNoYTI1NjogY29uZmlnPy5zaGEyNTYgPz8gSGFzaC5iaW5kKG51bGwsIFwic2hhMjU2XCIpLFxuICAgICAgICBzdHJlYW1Db2xsZWN0b3I6IGNvbmZpZz8uc3RyZWFtQ29sbGVjdG9yID8/IHN0cmVhbUNvbGxlY3RvcixcbiAgICAgICAgdXNlRHVhbHN0YWNrRW5kcG9pbnQ6IGNvbmZpZz8udXNlRHVhbHN0YWNrRW5kcG9pbnQgPz8gbG9hZE5vZGVDb25maWcoTk9ERV9VU0VfRFVBTFNUQUNLX0VORFBPSU5UX0NPTkZJR19PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgICAgICB1c2VGaXBzRW5kcG9pbnQ6IGNvbmZpZz8udXNlRmlwc0VuZHBvaW50ID8/IGxvYWROb2RlQ29uZmlnKE5PREVfVVNFX0ZJUFNfRU5EUE9JTlRfQ09ORklHX09QVElPTlMsIGxvYWRlckNvbmZpZyksXG4gICAgICAgIHVzZXJBZ2VudEFwcElkOiBjb25maWc/LnVzZXJBZ2VudEFwcElkID8/IGxvYWROb2RlQ29uZmlnKE5PREVfQVBQX0lEX0NPTkZJR19PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgIH07XG59O1xuIiwgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy53YXJuaW5nID0gdm9pZCAwO1xuZXhwb3J0cy5zdHNSZWdpb25EZWZhdWx0UmVzb2x2ZXIgPSBzdHNSZWdpb25EZWZhdWx0UmVzb2x2ZXI7XG5jb25zdCBjb25maWdfcmVzb2x2ZXJfMSA9IHJlcXVpcmUoXCJAc21pdGh5L2NvbmZpZy1yZXNvbHZlclwiKTtcbmNvbnN0IG5vZGVfY29uZmlnX3Byb3ZpZGVyXzEgPSByZXF1aXJlKFwiQHNtaXRoeS9ub2RlLWNvbmZpZy1wcm92aWRlclwiKTtcbmZ1bmN0aW9uIHN0c1JlZ2lvbkRlZmF1bHRSZXNvbHZlcihsb2FkZXJDb25maWcgPSB7fSkge1xuICAgIHJldHVybiAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKSh7XG4gICAgICAgIC4uLmNvbmZpZ19yZXNvbHZlcl8xLk5PREVfUkVHSU9OX0NPTkZJR19PUFRJT05TLFxuICAgICAgICBhc3luYyBkZWZhdWx0KCkge1xuICAgICAgICAgICAgaWYgKCFleHBvcnRzLndhcm5pbmcuc2lsZW5jZSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihcIkBhd3Mtc2RrIC0gV0FSTiAtIGRlZmF1bHQgU1RTIHJlZ2lvbiBvZiB1cy1lYXN0LTEgdXNlZC4gU2VlIEBhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXJzIFJFQURNRSBhbmQgc2V0IGEgcmVnaW9uIGV4cGxpY2l0bHkuXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIFwidXMtZWFzdC0xXCI7XG4gICAgICAgIH0sXG4gICAgfSwgeyAuLi5jb25maWdfcmVzb2x2ZXJfMS5OT0RFX1JFR0lPTl9DT05GSUdfRklMRV9PUFRJT05TLCAuLi5sb2FkZXJDb25maWcgfSk7XG59XG5leHBvcnRzLndhcm5pbmcgPSB7XG4gICAgc2lsZW5jZTogZmFsc2UsXG59O1xuIiwgIid1c2Ugc3RyaWN0JztcblxudmFyIGNvbmZpZ1Jlc29sdmVyID0gcmVxdWlyZSgnQHNtaXRoeS9jb25maWctcmVzb2x2ZXInKTtcbnZhciBzdHNSZWdpb25EZWZhdWx0UmVzb2x2ZXIgPSByZXF1aXJlKCcuL3JlZ2lvbkNvbmZpZy9zdHNSZWdpb25EZWZhdWx0UmVzb2x2ZXInKTtcblxuY29uc3QgZ2V0QXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiA9IChydW50aW1lQ29uZmlnKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc2V0UmVnaW9uKHJlZ2lvbikge1xuICAgICAgICAgICAgcnVudGltZUNvbmZpZy5yZWdpb24gPSByZWdpb247XG4gICAgICAgIH0sXG4gICAgICAgIHJlZ2lvbigpIHtcbiAgICAgICAgICAgIHJldHVybiBydW50aW1lQ29uZmlnLnJlZ2lvbjtcbiAgICAgICAgfSxcbiAgICB9O1xufTtcbmNvbnN0IHJlc29sdmVBd3NSZWdpb25FeHRlbnNpb25Db25maWd1cmF0aW9uID0gKGF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24pID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgICByZWdpb246IGF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24ucmVnaW9uKCksXG4gICAgfTtcbn07XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIk5PREVfUkVHSU9OX0NPTkZJR19GSUxFX09QVElPTlNcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBjb25maWdSZXNvbHZlci5OT0RFX1JFR0lPTl9DT05GSUdfRklMRV9PUFRJT05TOyB9XG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIk5PREVfUkVHSU9OX0NPTkZJR19PUFRJT05TXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gY29uZmlnUmVzb2x2ZXIuTk9ERV9SRUdJT05fQ09ORklHX09QVElPTlM7IH1cbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiUkVHSU9OX0VOVl9OQU1FXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gY29uZmlnUmVzb2x2ZXIuUkVHSU9OX0VOVl9OQU1FOyB9XG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIlJFR0lPTl9JTklfTkFNRVwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGNvbmZpZ1Jlc29sdmVyLlJFR0lPTl9JTklfTkFNRTsgfVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJyZXNvbHZlUmVnaW9uQ29uZmlnXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gY29uZmlnUmVzb2x2ZXIucmVzb2x2ZVJlZ2lvbkNvbmZpZzsgfVxufSk7XG5leHBvcnRzLmdldEF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24gPSBnZXRBd3NSZWdpb25FeHRlbnNpb25Db25maWd1cmF0aW9uO1xuZXhwb3J0cy5yZXNvbHZlQXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiA9IHJlc29sdmVBd3NSZWdpb25FeHRlbnNpb25Db25maWd1cmF0aW9uO1xuT2JqZWN0LmtleXMoc3RzUmVnaW9uRGVmYXVsdFJlc29sdmVyKS5mb3JFYWNoKGZ1bmN0aW9uIChrKSB7XG4gICAgaWYgKGsgIT09ICdkZWZhdWx0JyAmJiAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGV4cG9ydHMsIGspKSBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgaywge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHN0c1JlZ2lvbkRlZmF1bHRSZXNvbHZlcltrXTsgfVxuICAgIH0pO1xufSk7XG4iLCAiZXhwb3J0IGNvbnN0IGdldEh0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiA9IChydW50aW1lQ29uZmlnKSA9PiB7XG4gICAgY29uc3QgX2h0dHBBdXRoU2NoZW1lcyA9IHJ1bnRpbWVDb25maWcuaHR0cEF1dGhTY2hlbWVzO1xuICAgIGxldCBfaHR0cEF1dGhTY2hlbWVQcm92aWRlciA9IHJ1bnRpbWVDb25maWcuaHR0cEF1dGhTY2hlbWVQcm92aWRlcjtcbiAgICBsZXQgX2NyZWRlbnRpYWxzID0gcnVudGltZUNvbmZpZy5jcmVkZW50aWFscztcbiAgICByZXR1cm4ge1xuICAgICAgICBzZXRIdHRwQXV0aFNjaGVtZShodHRwQXV0aFNjaGVtZSkge1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSBfaHR0cEF1dGhTY2hlbWVzLmZpbmRJbmRleCgoc2NoZW1lKSA9PiBzY2hlbWUuc2NoZW1lSWQgPT09IGh0dHBBdXRoU2NoZW1lLnNjaGVtZUlkKTtcbiAgICAgICAgICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICBfaHR0cEF1dGhTY2hlbWVzLnB1c2goaHR0cEF1dGhTY2hlbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgX2h0dHBBdXRoU2NoZW1lcy5zcGxpY2UoaW5kZXgsIDEsIGh0dHBBdXRoU2NoZW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVzKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9odHRwQXV0aFNjaGVtZXM7XG4gICAgICAgIH0sXG4gICAgICAgIHNldEh0dHBBdXRoU2NoZW1lUHJvdmlkZXIoaHR0cEF1dGhTY2hlbWVQcm92aWRlcikge1xuICAgICAgICAgICAgX2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSBodHRwQXV0aFNjaGVtZVByb3ZpZGVyO1xuICAgICAgICB9LFxuICAgICAgICBodHRwQXV0aFNjaGVtZVByb3ZpZGVyKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9odHRwQXV0aFNjaGVtZVByb3ZpZGVyO1xuICAgICAgICB9LFxuICAgICAgICBzZXRDcmVkZW50aWFscyhjcmVkZW50aWFscykge1xuICAgICAgICAgICAgX2NyZWRlbnRpYWxzID0gY3JlZGVudGlhbHM7XG4gICAgICAgIH0sXG4gICAgICAgIGNyZWRlbnRpYWxzKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9jcmVkZW50aWFscztcbiAgICAgICAgfSxcbiAgICB9O1xufTtcbmV4cG9ydCBjb25zdCByZXNvbHZlSHR0cEF1dGhSdW50aW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIGh0dHBBdXRoU2NoZW1lczogY29uZmlnLmh0dHBBdXRoU2NoZW1lcygpLFxuICAgICAgICBodHRwQXV0aFNjaGVtZVByb3ZpZGVyOiBjb25maWcuaHR0cEF1dGhTY2hlbWVQcm92aWRlcigpLFxuICAgICAgICBjcmVkZW50aWFsczogY29uZmlnLmNyZWRlbnRpYWxzKCksXG4gICAgfTtcbn07XG4iLCAiaW1wb3J0IHsgZ2V0QXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiwgcmVzb2x2ZUF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24sIH0gZnJvbSBcIkBhd3Mtc2RrL3JlZ2lvbi1jb25maWctcmVzb2x2ZXJcIjtcbmltcG9ydCB7IGdldEh0dHBIYW5kbGVyRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiwgcmVzb2x2ZUh0dHBIYW5kbGVyUnVudGltZUNvbmZpZyB9IGZyb20gXCJAc21pdGh5L3Byb3RvY29sLWh0dHBcIjtcbmltcG9ydCB7IGdldERlZmF1bHRFeHRlbnNpb25Db25maWd1cmF0aW9uLCByZXNvbHZlRGVmYXVsdFJ1bnRpbWVDb25maWcgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyBnZXRIdHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24sIHJlc29sdmVIdHRwQXV0aFJ1bnRpbWVDb25maWcgfSBmcm9tIFwiLi9hdXRoL2h0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvblwiO1xuZXhwb3J0IGNvbnN0IHJlc29sdmVSdW50aW1lRXh0ZW5zaW9ucyA9IChydW50aW1lQ29uZmlnLCBleHRlbnNpb25zKSA9PiB7XG4gICAgY29uc3QgZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiA9IE9iamVjdC5hc3NpZ24oZ2V0QXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbihydW50aW1lQ29uZmlnKSwgZ2V0RGVmYXVsdEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24ocnVudGltZUNvbmZpZyksIGdldEh0dHBIYW5kbGVyRXh0ZW5zaW9uQ29uZmlndXJhdGlvbihydW50aW1lQ29uZmlnKSwgZ2V0SHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uKHJ1bnRpbWVDb25maWcpKTtcbiAgICBleHRlbnNpb25zLmZvckVhY2goKGV4dGVuc2lvbikgPT4gZXh0ZW5zaW9uLmNvbmZpZ3VyZShleHRlbnNpb25Db25maWd1cmF0aW9uKSk7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24ocnVudGltZUNvbmZpZywgcmVzb2x2ZUF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24oZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiksIHJlc29sdmVEZWZhdWx0UnVudGltZUNvbmZpZyhleHRlbnNpb25Db25maWd1cmF0aW9uKSwgcmVzb2x2ZUh0dHBIYW5kbGVyUnVudGltZUNvbmZpZyhleHRlbnNpb25Db25maWd1cmF0aW9uKSwgcmVzb2x2ZUh0dHBBdXRoUnVudGltZUNvbmZpZyhleHRlbnNpb25Db25maWd1cmF0aW9uKSk7XG59O1xuIiwgImltcG9ydCB7IGdldEhvc3RIZWFkZXJQbHVnaW4sIHJlc29sdmVIb3N0SGVhZGVyQ29uZmlnLCB9IGZyb20gXCJAYXdzLXNkay9taWRkbGV3YXJlLWhvc3QtaGVhZGVyXCI7XG5pbXBvcnQgeyBnZXRMb2dnZXJQbHVnaW4gfSBmcm9tIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1sb2dnZXJcIjtcbmltcG9ydCB7IGdldFJlY3Vyc2lvbkRldGVjdGlvblBsdWdpbiB9IGZyb20gXCJAYXdzLXNkay9taWRkbGV3YXJlLXJlY3Vyc2lvbi1kZXRlY3Rpb25cIjtcbmltcG9ydCB7IGdldFVzZXJBZ2VudFBsdWdpbiwgcmVzb2x2ZVVzZXJBZ2VudENvbmZpZywgfSBmcm9tIFwiQGF3cy1zZGsvbWlkZGxld2FyZS11c2VyLWFnZW50XCI7XG5pbXBvcnQgeyByZXNvbHZlUmVnaW9uQ29uZmlnIH0gZnJvbSBcIkBzbWl0aHkvY29uZmlnLXJlc29sdmVyXCI7XG5pbXBvcnQgeyBEZWZhdWx0SWRlbnRpdHlQcm92aWRlckNvbmZpZywgZ2V0SHR0cEF1dGhTY2hlbWVFbmRwb2ludFJ1bGVTZXRQbHVnaW4sIGdldEh0dHBTaWduaW5nUGx1Z2luLCB9IGZyb20gXCJAc21pdGh5L2NvcmVcIjtcbmltcG9ydCB7IGdldFNjaGVtYVNlcmRlUGx1Z2luIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IGdldENvbnRlbnRMZW5ndGhQbHVnaW4gfSBmcm9tIFwiQHNtaXRoeS9taWRkbGV3YXJlLWNvbnRlbnQtbGVuZ3RoXCI7XG5pbXBvcnQgeyByZXNvbHZlRW5kcG9pbnRDb25maWcsIH0gZnJvbSBcIkBzbWl0aHkvbWlkZGxld2FyZS1lbmRwb2ludFwiO1xuaW1wb3J0IHsgZ2V0UmV0cnlQbHVnaW4sIHJlc29sdmVSZXRyeUNvbmZpZywgfSBmcm9tIFwiQHNtaXRoeS9taWRkbGV3YXJlLXJldHJ5XCI7XG5pbXBvcnQgeyBDbGllbnQgYXMgX19DbGllbnQsIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgZGVmYXVsdFNTT09JRENIdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlciwgcmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnLCB9IGZyb20gXCIuL2F1dGgvaHR0cEF1dGhTY2hlbWVQcm92aWRlclwiO1xuaW1wb3J0IHsgcmVzb2x2ZUNsaWVudEVuZHBvaW50UGFyYW1ldGVycywgfSBmcm9tIFwiLi9lbmRwb2ludC9FbmRwb2ludFBhcmFtZXRlcnNcIjtcbmltcG9ydCB7IGdldFJ1bnRpbWVDb25maWcgYXMgX19nZXRSdW50aW1lQ29uZmlnIH0gZnJvbSBcIi4vcnVudGltZUNvbmZpZ1wiO1xuaW1wb3J0IHsgcmVzb2x2ZVJ1bnRpbWVFeHRlbnNpb25zIH0gZnJvbSBcIi4vcnVudGltZUV4dGVuc2lvbnNcIjtcbmV4cG9ydCB7IF9fQ2xpZW50IH07XG5leHBvcnQgY2xhc3MgU1NPT0lEQ0NsaWVudCBleHRlbmRzIF9fQ2xpZW50IHtcbiAgICBjb25maWc7XG4gICAgY29uc3RydWN0b3IoLi4uW2NvbmZpZ3VyYXRpb25dKSB7XG4gICAgICAgIGNvbnN0IF9jb25maWdfMCA9IF9fZ2V0UnVudGltZUNvbmZpZyhjb25maWd1cmF0aW9uIHx8IHt9KTtcbiAgICAgICAgc3VwZXIoX2NvbmZpZ18wKTtcbiAgICAgICAgdGhpcy5pbml0Q29uZmlnID0gX2NvbmZpZ18wO1xuICAgICAgICBjb25zdCBfY29uZmlnXzEgPSByZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzKF9jb25maWdfMCk7XG4gICAgICAgIGNvbnN0IF9jb25maWdfMiA9IHJlc29sdmVVc2VyQWdlbnRDb25maWcoX2NvbmZpZ18xKTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ18zID0gcmVzb2x2ZVJldHJ5Q29uZmlnKF9jb25maWdfMik7XG4gICAgICAgIGNvbnN0IF9jb25maWdfNCA9IHJlc29sdmVSZWdpb25Db25maWcoX2NvbmZpZ18zKTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ181ID0gcmVzb2x2ZUhvc3RIZWFkZXJDb25maWcoX2NvbmZpZ180KTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ182ID0gcmVzb2x2ZUVuZHBvaW50Q29uZmlnKF9jb25maWdfNSk7XG4gICAgICAgIGNvbnN0IF9jb25maWdfNyA9IHJlc29sdmVIdHRwQXV0aFNjaGVtZUNvbmZpZyhfY29uZmlnXzYpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzggPSByZXNvbHZlUnVudGltZUV4dGVuc2lvbnMoX2NvbmZpZ183LCBjb25maWd1cmF0aW9uPy5leHRlbnNpb25zIHx8IFtdKTtcbiAgICAgICAgdGhpcy5jb25maWcgPSBfY29uZmlnXzg7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShnZXRTY2hlbWFTZXJkZVBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoZ2V0VXNlckFnZW50UGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShnZXRSZXRyeVBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoZ2V0Q29udGVudExlbmd0aFBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoZ2V0SG9zdEhlYWRlclBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoZ2V0TG9nZ2VyUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShnZXRSZWN1cnNpb25EZXRlY3Rpb25QbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGdldEh0dHBBdXRoU2NoZW1lRW5kcG9pbnRSdWxlU2V0UGx1Z2luKHRoaXMuY29uZmlnLCB7XG4gICAgICAgICAgICBodHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlcjogZGVmYXVsdFNTT09JRENIdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlcixcbiAgICAgICAgICAgIGlkZW50aXR5UHJvdmlkZXJDb25maWdQcm92aWRlcjogYXN5bmMgKGNvbmZpZykgPT4gbmV3IERlZmF1bHRJZGVudGl0eVByb3ZpZGVyQ29uZmlnKHtcbiAgICAgICAgICAgICAgICBcImF3cy5hdXRoI3NpZ3Y0XCI6IGNvbmZpZy5jcmVkZW50aWFscyxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICB9KSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShnZXRIdHRwU2lnbmluZ1BsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgIH1cbiAgICBkZXN0cm95KCkge1xuICAgICAgICBzdXBlci5kZXN0cm95KCk7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IFNlcnZpY2VFeGNlcHRpb24gYXMgX19TZXJ2aWNlRXhjZXB0aW9uLCB9IGZyb20gXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjtcbmV4cG9ydCB7IF9fU2VydmljZUV4Y2VwdGlvbiB9O1xuZXhwb3J0IGNsYXNzIFNTT09JRENTZXJ2aWNlRXhjZXB0aW9uIGV4dGVuZHMgX19TZXJ2aWNlRXhjZXB0aW9uIHtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgU1NPT0lEQ1NlcnZpY2VFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgU1NPT0lEQ1NlcnZpY2VFeGNlcHRpb24gYXMgX19CYXNlRXhjZXB0aW9uIH0gZnJvbSBcIi4vU1NPT0lEQ1NlcnZpY2VFeGNlcHRpb25cIjtcbmV4cG9ydCBjbGFzcyBBY2Nlc3NEZW5pZWRFeGNlcHRpb24gZXh0ZW5kcyBfX0Jhc2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIkFjY2Vzc0RlbmllZEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgZXJyb3I7XG4gICAgcmVhc29uO1xuICAgIGVycm9yX2Rlc2NyaXB0aW9uO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJBY2Nlc3NEZW5pZWRFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgQWNjZXNzRGVuaWVkRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuZXJyb3IgPSBvcHRzLmVycm9yO1xuICAgICAgICB0aGlzLnJlYXNvbiA9IG9wdHMucmVhc29uO1xuICAgICAgICB0aGlzLmVycm9yX2Rlc2NyaXB0aW9uID0gb3B0cy5lcnJvcl9kZXNjcmlwdGlvbjtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgQXV0aG9yaXphdGlvblBlbmRpbmdFeGNlcHRpb24gZXh0ZW5kcyBfX0Jhc2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIkF1dGhvcml6YXRpb25QZW5kaW5nRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBlcnJvcjtcbiAgICBlcnJvcl9kZXNjcmlwdGlvbjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiQXV0aG9yaXphdGlvblBlbmRpbmdFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgQXV0aG9yaXphdGlvblBlbmRpbmdFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5lcnJvciA9IG9wdHMuZXJyb3I7XG4gICAgICAgIHRoaXMuZXJyb3JfZGVzY3JpcHRpb24gPSBvcHRzLmVycm9yX2Rlc2NyaXB0aW9uO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBFeHBpcmVkVG9rZW5FeGNlcHRpb24gZXh0ZW5kcyBfX0Jhc2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIkV4cGlyZWRUb2tlbkV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgZXJyb3I7XG4gICAgZXJyb3JfZGVzY3JpcHRpb247XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkV4cGlyZWRUb2tlbkV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBFeHBpcmVkVG9rZW5FeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5lcnJvciA9IG9wdHMuZXJyb3I7XG4gICAgICAgIHRoaXMuZXJyb3JfZGVzY3JpcHRpb24gPSBvcHRzLmVycm9yX2Rlc2NyaXB0aW9uO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBJbnRlcm5hbFNlcnZlckV4Y2VwdGlvbiBleHRlbmRzIF9fQmFzZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcInNlcnZlclwiO1xuICAgIGVycm9yO1xuICAgIGVycm9yX2Rlc2NyaXB0aW9uO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJJbnRlcm5hbFNlcnZlckV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcInNlcnZlclwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBJbnRlcm5hbFNlcnZlckV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLmVycm9yID0gb3B0cy5lcnJvcjtcbiAgICAgICAgdGhpcy5lcnJvcl9kZXNjcmlwdGlvbiA9IG9wdHMuZXJyb3JfZGVzY3JpcHRpb247XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIEludmFsaWRDbGllbnRFeGNlcHRpb24gZXh0ZW5kcyBfX0Jhc2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIkludmFsaWRDbGllbnRFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGVycm9yO1xuICAgIGVycm9yX2Rlc2NyaXB0aW9uO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJJbnZhbGlkQ2xpZW50RXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEludmFsaWRDbGllbnRFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5lcnJvciA9IG9wdHMuZXJyb3I7XG4gICAgICAgIHRoaXMuZXJyb3JfZGVzY3JpcHRpb24gPSBvcHRzLmVycm9yX2Rlc2NyaXB0aW9uO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBJbnZhbGlkR3JhbnRFeGNlcHRpb24gZXh0ZW5kcyBfX0Jhc2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIkludmFsaWRHcmFudEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgZXJyb3I7XG4gICAgZXJyb3JfZGVzY3JpcHRpb247XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkludmFsaWRHcmFudEV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBJbnZhbGlkR3JhbnRFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5lcnJvciA9IG9wdHMuZXJyb3I7XG4gICAgICAgIHRoaXMuZXJyb3JfZGVzY3JpcHRpb24gPSBvcHRzLmVycm9yX2Rlc2NyaXB0aW9uO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBJbnZhbGlkUmVxdWVzdEV4Y2VwdGlvbiBleHRlbmRzIF9fQmFzZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiSW52YWxpZFJlcXVlc3RFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGVycm9yO1xuICAgIHJlYXNvbjtcbiAgICBlcnJvcl9kZXNjcmlwdGlvbjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiSW52YWxpZFJlcXVlc3RFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgSW52YWxpZFJlcXVlc3RFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5lcnJvciA9IG9wdHMuZXJyb3I7XG4gICAgICAgIHRoaXMucmVhc29uID0gb3B0cy5yZWFzb247XG4gICAgICAgIHRoaXMuZXJyb3JfZGVzY3JpcHRpb24gPSBvcHRzLmVycm9yX2Rlc2NyaXB0aW9uO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBJbnZhbGlkU2NvcGVFeGNlcHRpb24gZXh0ZW5kcyBfX0Jhc2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIkludmFsaWRTY29wZUV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgZXJyb3I7XG4gICAgZXJyb3JfZGVzY3JpcHRpb247XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkludmFsaWRTY29wZUV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBJbnZhbGlkU2NvcGVFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5lcnJvciA9IG9wdHMuZXJyb3I7XG4gICAgICAgIHRoaXMuZXJyb3JfZGVzY3JpcHRpb24gPSBvcHRzLmVycm9yX2Rlc2NyaXB0aW9uO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBTbG93RG93bkV4Y2VwdGlvbiBleHRlbmRzIF9fQmFzZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiU2xvd0Rvd25FeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGVycm9yO1xuICAgIGVycm9yX2Rlc2NyaXB0aW9uO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJTbG93RG93bkV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBTbG93RG93bkV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLmVycm9yID0gb3B0cy5lcnJvcjtcbiAgICAgICAgdGhpcy5lcnJvcl9kZXNjcmlwdGlvbiA9IG9wdHMuZXJyb3JfZGVzY3JpcHRpb247XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIFVuYXV0aG9yaXplZENsaWVudEV4Y2VwdGlvbiBleHRlbmRzIF9fQmFzZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiVW5hdXRob3JpemVkQ2xpZW50RXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBlcnJvcjtcbiAgICBlcnJvcl9kZXNjcmlwdGlvbjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiVW5hdXRob3JpemVkQ2xpZW50RXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFVuYXV0aG9yaXplZENsaWVudEV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLmVycm9yID0gb3B0cy5lcnJvcjtcbiAgICAgICAgdGhpcy5lcnJvcl9kZXNjcmlwdGlvbiA9IG9wdHMuZXJyb3JfZGVzY3JpcHRpb247XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIFVuc3VwcG9ydGVkR3JhbnRUeXBlRXhjZXB0aW9uIGV4dGVuZHMgX19CYXNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJVbnN1cHBvcnRlZEdyYW50VHlwZUV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgZXJyb3I7XG4gICAgZXJyb3JfZGVzY3JpcHRpb247XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIlVuc3VwcG9ydGVkR3JhbnRUeXBlRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFVuc3VwcG9ydGVkR3JhbnRUeXBlRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuZXJyb3IgPSBvcHRzLmVycm9yO1xuICAgICAgICB0aGlzLmVycm9yX2Rlc2NyaXB0aW9uID0gb3B0cy5lcnJvcl9kZXNjcmlwdGlvbjtcbiAgICB9XG59XG4iLCAiY29uc3QgX0FERSA9IFwiQWNjZXNzRGVuaWVkRXhjZXB0aW9uXCI7XG5jb25zdCBfQVBFID0gXCJBdXRob3JpemF0aW9uUGVuZGluZ0V4Y2VwdGlvblwiO1xuY29uc3QgX0FUID0gXCJBY2Nlc3NUb2tlblwiO1xuY29uc3QgX0NTID0gXCJDbGllbnRTZWNyZXRcIjtcbmNvbnN0IF9DVCA9IFwiQ3JlYXRlVG9rZW5cIjtcbmNvbnN0IF9DVFIgPSBcIkNyZWF0ZVRva2VuUmVxdWVzdFwiO1xuY29uc3QgX0NUUnIgPSBcIkNyZWF0ZVRva2VuUmVzcG9uc2VcIjtcbmNvbnN0IF9DViA9IFwiQ29kZVZlcmlmaWVyXCI7XG5jb25zdCBfRVRFID0gXCJFeHBpcmVkVG9rZW5FeGNlcHRpb25cIjtcbmNvbnN0IF9JQ0UgPSBcIkludmFsaWRDbGllbnRFeGNlcHRpb25cIjtcbmNvbnN0IF9JR0UgPSBcIkludmFsaWRHcmFudEV4Y2VwdGlvblwiO1xuY29uc3QgX0lSRSA9IFwiSW52YWxpZFJlcXVlc3RFeGNlcHRpb25cIjtcbmNvbnN0IF9JU0UgPSBcIkludGVybmFsU2VydmVyRXhjZXB0aW9uXCI7XG5jb25zdCBfSVNFbiA9IFwiSW52YWxpZFNjb3BlRXhjZXB0aW9uXCI7XG5jb25zdCBfSVQgPSBcIklkVG9rZW5cIjtcbmNvbnN0IF9SVCA9IFwiUmVmcmVzaFRva2VuXCI7XG5jb25zdCBfU0RFID0gXCJTbG93RG93bkV4Y2VwdGlvblwiO1xuY29uc3QgX1VDRSA9IFwiVW5hdXRob3JpemVkQ2xpZW50RXhjZXB0aW9uXCI7XG5jb25zdCBfVUdURSA9IFwiVW5zdXBwb3J0ZWRHcmFudFR5cGVFeGNlcHRpb25cIjtcbmNvbnN0IF9hVCA9IFwiYWNjZXNzVG9rZW5cIjtcbmNvbnN0IF9jID0gXCJjbGllbnRcIjtcbmNvbnN0IF9jSSA9IFwiY2xpZW50SWRcIjtcbmNvbnN0IF9jUyA9IFwiY2xpZW50U2VjcmV0XCI7XG5jb25zdCBfY1YgPSBcImNvZGVWZXJpZmllclwiO1xuY29uc3QgX2NvID0gXCJjb2RlXCI7XG5jb25zdCBfZEMgPSBcImRldmljZUNvZGVcIjtcbmNvbnN0IF9lID0gXCJlcnJvclwiO1xuY29uc3QgX2VJID0gXCJleHBpcmVzSW5cIjtcbmNvbnN0IF9lZCA9IFwiZXJyb3JfZGVzY3JpcHRpb25cIjtcbmNvbnN0IF9nVCA9IFwiZ3JhbnRUeXBlXCI7XG5jb25zdCBfaCA9IFwiaHR0cFwiO1xuY29uc3QgX2hFID0gXCJodHRwRXJyb3JcIjtcbmNvbnN0IF9pVCA9IFwiaWRUb2tlblwiO1xuY29uc3QgX3IgPSBcInJlYXNvblwiO1xuY29uc3QgX3JUID0gXCJyZWZyZXNoVG9rZW5cIjtcbmNvbnN0IF9yVSA9IFwicmVkaXJlY3RVcmlcIjtcbmNvbnN0IF9zID0gXCJzY29wZVwiO1xuY29uc3QgX3NlID0gXCJzZXJ2ZXJcIjtcbmNvbnN0IF9zbSA9IFwic21pdGh5LnRzLnNkay5zeW50aGV0aWMuY29tLmFtYXpvbmF3cy5zc29vaWRjXCI7XG5jb25zdCBfdFQgPSBcInRva2VuVHlwZVwiO1xuY29uc3QgbjAgPSBcImNvbS5hbWF6b25hd3Muc3Nvb2lkY1wiO1xuaW1wb3J0IHsgVHlwZVJlZ2lzdHJ5IH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IEFjY2Vzc0RlbmllZEV4Y2VwdGlvbiBhcyBfX0FjY2Vzc0RlbmllZEV4Y2VwdGlvbiwgQXV0aG9yaXphdGlvblBlbmRpbmdFeGNlcHRpb24gYXMgX19BdXRob3JpemF0aW9uUGVuZGluZ0V4Y2VwdGlvbiwgRXhwaXJlZFRva2VuRXhjZXB0aW9uIGFzIF9fRXhwaXJlZFRva2VuRXhjZXB0aW9uLCBJbnRlcm5hbFNlcnZlckV4Y2VwdGlvbiBhcyBfX0ludGVybmFsU2VydmVyRXhjZXB0aW9uLCBJbnZhbGlkQ2xpZW50RXhjZXB0aW9uIGFzIF9fSW52YWxpZENsaWVudEV4Y2VwdGlvbiwgSW52YWxpZEdyYW50RXhjZXB0aW9uIGFzIF9fSW52YWxpZEdyYW50RXhjZXB0aW9uLCBJbnZhbGlkUmVxdWVzdEV4Y2VwdGlvbiBhcyBfX0ludmFsaWRSZXF1ZXN0RXhjZXB0aW9uLCBJbnZhbGlkU2NvcGVFeGNlcHRpb24gYXMgX19JbnZhbGlkU2NvcGVFeGNlcHRpb24sIFNsb3dEb3duRXhjZXB0aW9uIGFzIF9fU2xvd0Rvd25FeGNlcHRpb24sIFVuYXV0aG9yaXplZENsaWVudEV4Y2VwdGlvbiBhcyBfX1VuYXV0aG9yaXplZENsaWVudEV4Y2VwdGlvbiwgVW5zdXBwb3J0ZWRHcmFudFR5cGVFeGNlcHRpb24gYXMgX19VbnN1cHBvcnRlZEdyYW50VHlwZUV4Y2VwdGlvbiwgfSBmcm9tIFwiLi4vbW9kZWxzL2Vycm9yc1wiO1xuaW1wb3J0IHsgU1NPT0lEQ1NlcnZpY2VFeGNlcHRpb24gYXMgX19TU09PSURDU2VydmljZUV4Y2VwdGlvbiB9IGZyb20gXCIuLi9tb2RlbHMvU1NPT0lEQ1NlcnZpY2VFeGNlcHRpb25cIjtcbmV4cG9ydCB2YXIgQWNjZXNzVG9rZW4gPSBbMCwgbjAsIF9BVCwgOCwgMF07XG5leHBvcnQgdmFyIENsaWVudFNlY3JldCA9IFswLCBuMCwgX0NTLCA4LCAwXTtcbmV4cG9ydCB2YXIgQ29kZVZlcmlmaWVyID0gWzAsIG4wLCBfQ1YsIDgsIDBdO1xuZXhwb3J0IHZhciBJZFRva2VuID0gWzAsIG4wLCBfSVQsIDgsIDBdO1xuZXhwb3J0IHZhciBSZWZyZXNoVG9rZW4gPSBbMCwgbjAsIF9SVCwgOCwgMF07XG5leHBvcnQgdmFyIEFjY2Vzc0RlbmllZEV4Y2VwdGlvbiA9IFtcbiAgICAtMyxcbiAgICBuMCxcbiAgICBfQURFLFxuICAgIHsgW19lXTogX2MsIFtfaEVdOiA0MDAgfSxcbiAgICBbX2UsIF9yLCBfZWRdLFxuICAgIFswLCAwLCAwXSxcbl07XG5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKEFjY2Vzc0RlbmllZEV4Y2VwdGlvbiwgX19BY2Nlc3NEZW5pZWRFeGNlcHRpb24pO1xuZXhwb3J0IHZhciBBdXRob3JpemF0aW9uUGVuZGluZ0V4Y2VwdGlvbiA9IFtcbiAgICAtMyxcbiAgICBuMCxcbiAgICBfQVBFLFxuICAgIHsgW19lXTogX2MsIFtfaEVdOiA0MDAgfSxcbiAgICBbX2UsIF9lZF0sXG4gICAgWzAsIDBdLFxuXTtcblR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoQXV0aG9yaXphdGlvblBlbmRpbmdFeGNlcHRpb24sIF9fQXV0aG9yaXphdGlvblBlbmRpbmdFeGNlcHRpb24pO1xuZXhwb3J0IHZhciBDcmVhdGVUb2tlblJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfQ1RSLFxuICAgIDAsXG4gICAgW19jSSwgX2NTLCBfZ1QsIF9kQywgX2NvLCBfclQsIF9zLCBfclUsIF9jVl0sXG4gICAgWzAsIFsoKSA9PiBDbGllbnRTZWNyZXQsIDBdLCAwLCAwLCAwLCBbKCkgPT4gUmVmcmVzaFRva2VuLCAwXSwgNjQgfCAwLCAwLCBbKCkgPT4gQ29kZVZlcmlmaWVyLCAwXV0sXG5dO1xuZXhwb3J0IHZhciBDcmVhdGVUb2tlblJlc3BvbnNlID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0NUUnIsXG4gICAgMCxcbiAgICBbX2FULCBfdFQsIF9lSSwgX3JULCBfaVRdLFxuICAgIFtbKCkgPT4gQWNjZXNzVG9rZW4sIDBdLCAwLCAxLCBbKCkgPT4gUmVmcmVzaFRva2VuLCAwXSwgWygpID0+IElkVG9rZW4sIDBdXSxcbl07XG5leHBvcnQgdmFyIEV4cGlyZWRUb2tlbkV4Y2VwdGlvbiA9IFstMywgbjAsIF9FVEUsIHsgW19lXTogX2MsIFtfaEVdOiA0MDAgfSwgW19lLCBfZWRdLCBbMCwgMF1dO1xuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihFeHBpcmVkVG9rZW5FeGNlcHRpb24sIF9fRXhwaXJlZFRva2VuRXhjZXB0aW9uKTtcbmV4cG9ydCB2YXIgSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb24gPSBbLTMsIG4wLCBfSVNFLCB7IFtfZV06IF9zZSwgW19oRV06IDUwMCB9LCBbX2UsIF9lZF0sIFswLCAwXV07XG5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKEludGVybmFsU2VydmVyRXhjZXB0aW9uLCBfX0ludGVybmFsU2VydmVyRXhjZXB0aW9uKTtcbmV4cG9ydCB2YXIgSW52YWxpZENsaWVudEV4Y2VwdGlvbiA9IFstMywgbjAsIF9JQ0UsIHsgW19lXTogX2MsIFtfaEVdOiA0MDEgfSwgW19lLCBfZWRdLCBbMCwgMF1dO1xuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihJbnZhbGlkQ2xpZW50RXhjZXB0aW9uLCBfX0ludmFsaWRDbGllbnRFeGNlcHRpb24pO1xuZXhwb3J0IHZhciBJbnZhbGlkR3JhbnRFeGNlcHRpb24gPSBbLTMsIG4wLCBfSUdFLCB7IFtfZV06IF9jLCBbX2hFXTogNDAwIH0sIFtfZSwgX2VkXSwgWzAsIDBdXTtcblR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoSW52YWxpZEdyYW50RXhjZXB0aW9uLCBfX0ludmFsaWRHcmFudEV4Y2VwdGlvbik7XG5leHBvcnQgdmFyIEludmFsaWRSZXF1ZXN0RXhjZXB0aW9uID0gW1xuICAgIC0zLFxuICAgIG4wLFxuICAgIF9JUkUsXG4gICAgeyBbX2VdOiBfYywgW19oRV06IDQwMCB9LFxuICAgIFtfZSwgX3IsIF9lZF0sXG4gICAgWzAsIDAsIDBdLFxuXTtcblR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoSW52YWxpZFJlcXVlc3RFeGNlcHRpb24sIF9fSW52YWxpZFJlcXVlc3RFeGNlcHRpb24pO1xuZXhwb3J0IHZhciBJbnZhbGlkU2NvcGVFeGNlcHRpb24gPSBbLTMsIG4wLCBfSVNFbiwgeyBbX2VdOiBfYywgW19oRV06IDQwMCB9LCBbX2UsIF9lZF0sIFswLCAwXV07XG5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKEludmFsaWRTY29wZUV4Y2VwdGlvbiwgX19JbnZhbGlkU2NvcGVFeGNlcHRpb24pO1xuZXhwb3J0IHZhciBTbG93RG93bkV4Y2VwdGlvbiA9IFstMywgbjAsIF9TREUsIHsgW19lXTogX2MsIFtfaEVdOiA0MDAgfSwgW19lLCBfZWRdLCBbMCwgMF1dO1xuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihTbG93RG93bkV4Y2VwdGlvbiwgX19TbG93RG93bkV4Y2VwdGlvbik7XG5leHBvcnQgdmFyIFVuYXV0aG9yaXplZENsaWVudEV4Y2VwdGlvbiA9IFstMywgbjAsIF9VQ0UsIHsgW19lXTogX2MsIFtfaEVdOiA0MDAgfSwgW19lLCBfZWRdLCBbMCwgMF1dO1xuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihVbmF1dGhvcml6ZWRDbGllbnRFeGNlcHRpb24sIF9fVW5hdXRob3JpemVkQ2xpZW50RXhjZXB0aW9uKTtcbmV4cG9ydCB2YXIgVW5zdXBwb3J0ZWRHcmFudFR5cGVFeGNlcHRpb24gPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX1VHVEUsXG4gICAgeyBbX2VdOiBfYywgW19oRV06IDQwMCB9LFxuICAgIFtfZSwgX2VkXSxcbiAgICBbMCwgMF0sXG5dO1xuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihVbnN1cHBvcnRlZEdyYW50VHlwZUV4Y2VwdGlvbiwgX19VbnN1cHBvcnRlZEdyYW50VHlwZUV4Y2VwdGlvbik7XG5leHBvcnQgdmFyIFNTT09JRENTZXJ2aWNlRXhjZXB0aW9uID0gWy0zLCBfc20sIFwiU1NPT0lEQ1NlcnZpY2VFeGNlcHRpb25cIiwgMCwgW10sIFtdXTtcblR5cGVSZWdpc3RyeS5mb3IoX3NtKS5yZWdpc3RlckVycm9yKFNTT09JRENTZXJ2aWNlRXhjZXB0aW9uLCBfX1NTT09JRENTZXJ2aWNlRXhjZXB0aW9uKTtcbmV4cG9ydCB2YXIgU2NvcGVzID0gNjQgfCAwO1xuZXhwb3J0IHZhciBDcmVhdGVUb2tlbiA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9DVCxcbiAgICB7IFtfaF06IFtcIlBPU1RcIiwgXCIvdG9rZW5cIiwgMjAwXSB9LFxuICAgICgpID0+IENyZWF0ZVRva2VuUmVxdWVzdCxcbiAgICAoKSA9PiBDcmVhdGVUb2tlblJlc3BvbnNlLFxuXTtcbiIsICJpbXBvcnQgeyBnZXRFbmRwb2ludFBsdWdpbiB9IGZyb20gXCJAc21pdGh5L21pZGRsZXdhcmUtZW5kcG9pbnRcIjtcbmltcG9ydCB7IENvbW1hbmQgYXMgJENvbW1hbmQgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyBjb21tb25QYXJhbXMgfSBmcm9tIFwiLi4vZW5kcG9pbnQvRW5kcG9pbnRQYXJhbWV0ZXJzXCI7XG5pbXBvcnQgeyBDcmVhdGVUb2tlbiB9IGZyb20gXCIuLi9zY2hlbWFzL3NjaGVtYXNfMFwiO1xuZXhwb3J0IHsgJENvbW1hbmQgfTtcbmV4cG9ydCBjbGFzcyBDcmVhdGVUb2tlbkNvbW1hbmQgZXh0ZW5kcyAkQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW2dldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTU1NPT0lEQ1NlcnZpY2VcIiwgXCJDcmVhdGVUb2tlblwiLCB7fSlcbiAgICAubihcIlNTT09JRENDbGllbnRcIiwgXCJDcmVhdGVUb2tlbkNvbW1hbmRcIilcbiAgICAuc2MoQ3JlYXRlVG9rZW4pXG4gICAgLmJ1aWxkKCkge1xufVxuIiwgImltcG9ydCB7IGNyZWF0ZUFnZ3JlZ2F0ZWRDbGllbnQgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyBDcmVhdGVUb2tlbkNvbW1hbmQgfSBmcm9tIFwiLi9jb21tYW5kcy9DcmVhdGVUb2tlbkNvbW1hbmRcIjtcbmltcG9ydCB7IFNTT09JRENDbGllbnQgfSBmcm9tIFwiLi9TU09PSURDQ2xpZW50XCI7XG5jb25zdCBjb21tYW5kcyA9IHtcbiAgICBDcmVhdGVUb2tlbkNvbW1hbmQsXG59O1xuZXhwb3J0IGNsYXNzIFNTT09JREMgZXh0ZW5kcyBTU09PSURDQ2xpZW50IHtcbn1cbmNyZWF0ZUFnZ3JlZ2F0ZWRDbGllbnQoY29tbWFuZHMsIFNTT09JREMpO1xuIiwgImV4cG9ydCAqIGZyb20gXCIuL0NyZWF0ZVRva2VuQ29tbWFuZFwiO1xuIiwgImV4cG9ydCBjb25zdCBBY2Nlc3NEZW5pZWRFeGNlcHRpb25SZWFzb24gPSB7XG4gICAgS01TX0FDQ0VTU19ERU5JRUQ6IFwiS01TX0FjY2Vzc0RlbmllZEV4Y2VwdGlvblwiLFxufTtcbmV4cG9ydCBjb25zdCBJbnZhbGlkUmVxdWVzdEV4Y2VwdGlvblJlYXNvbiA9IHtcbiAgICBLTVNfRElTQUJMRURfS0VZOiBcIktNU19EaXNhYmxlZEV4Y2VwdGlvblwiLFxuICAgIEtNU19JTlZBTElEX0tFWV9VU0FHRTogXCJLTVNfSW52YWxpZEtleVVzYWdlRXhjZXB0aW9uXCIsXG4gICAgS01TX0lOVkFMSURfU1RBVEU6IFwiS01TX0ludmFsaWRTdGF0ZUV4Y2VwdGlvblwiLFxuICAgIEtNU19LRVlfTk9UX0ZPVU5EOiBcIktNU19Ob3RGb3VuZEV4Y2VwdGlvblwiLFxufTtcbiIsICJleHBvcnQgKiBmcm9tIFwiLi9TU09PSURDQ2xpZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9TU09PSURDXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21tYW5kc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWxzL2VudW1zXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9tb2RlbHMvZXJyb3JzXCI7XG5leHBvcnQgeyBTU09PSURDU2VydmljZUV4Y2VwdGlvbiB9IGZyb20gXCIuL21vZGVscy9TU09PSURDU2VydmljZUV4Y2VwdGlvblwiO1xuIiwgIid1c2Ugc3RyaWN0JztcblxudmFyIGNsaWVudCA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL2NvcmUvY2xpZW50Jyk7XG52YXIgaHR0cEF1dGhTY2hlbWVzID0gcmVxdWlyZSgnQGF3cy1zZGsvY29yZS9odHRwQXV0aFNjaGVtZXMnKTtcbnZhciBwcm9wZXJ0eVByb3ZpZGVyID0gcmVxdWlyZSgnQHNtaXRoeS9wcm9wZXJ0eS1wcm92aWRlcicpO1xudmFyIHNoYXJlZEluaUZpbGVMb2FkZXIgPSByZXF1aXJlKCdAc21pdGh5L3NoYXJlZC1pbmktZmlsZS1sb2FkZXInKTtcbnZhciBmcyA9IHJlcXVpcmUoJ2ZzJyk7XG5cbmNvbnN0IGZyb21FbnZTaWduaW5nTmFtZSA9ICh7IGxvZ2dlciwgc2lnbmluZ05hbWUgfSA9IHt9KSA9PiBhc3luYyAoKSA9PiB7XG4gICAgbG9nZ2VyPy5kZWJ1Zz8uKFwiQGF3cy1zZGsvdG9rZW4tcHJvdmlkZXJzIC0gZnJvbUVudlNpZ25pbmdOYW1lXCIpO1xuICAgIGlmICghc2lnbmluZ05hbWUpIHtcbiAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuVG9rZW5Qcm92aWRlckVycm9yKFwiUGxlYXNlIHBhc3MgJ3NpZ25pbmdOYW1lJyB0byBjb21wdXRlIGVudmlyb25tZW50IHZhcmlhYmxlIGtleVwiLCB7IGxvZ2dlciB9KTtcbiAgICB9XG4gICAgY29uc3QgYmVhcmVyVG9rZW5LZXkgPSBodHRwQXV0aFNjaGVtZXMuZ2V0QmVhcmVyVG9rZW5FbnZLZXkoc2lnbmluZ05hbWUpO1xuICAgIGlmICghKGJlYXJlclRva2VuS2V5IGluIHByb2Nlc3MuZW52KSkge1xuICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5Ub2tlblByb3ZpZGVyRXJyb3IoYFRva2VuIG5vdCBwcmVzZW50IGluICcke2JlYXJlclRva2VuS2V5fScgZW52aXJvbm1lbnQgdmFyaWFibGVgLCB7IGxvZ2dlciB9KTtcbiAgICB9XG4gICAgY29uc3QgdG9rZW4gPSB7IHRva2VuOiBwcm9jZXNzLmVudltiZWFyZXJUb2tlbktleV0gfTtcbiAgICBjbGllbnQuc2V0VG9rZW5GZWF0dXJlKHRva2VuLCBcIkJFQVJFUl9TRVJWSUNFX0VOVl9WQVJTXCIsIFwiM1wiKTtcbiAgICByZXR1cm4gdG9rZW47XG59O1xuXG5jb25zdCBFWFBJUkVfV0lORE9XX01TID0gNSAqIDYwICogMTAwMDtcbmNvbnN0IFJFRlJFU0hfTUVTU0FHRSA9IGBUbyByZWZyZXNoIHRoaXMgU1NPIHNlc3Npb24gcnVuICdhd3Mgc3NvIGxvZ2luJyB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIHByb2ZpbGUuYDtcblxuY29uc3QgZ2V0U3NvT2lkY0NsaWVudCA9IGFzeW5jIChzc29SZWdpb24sIGluaXQgPSB7fSwgY2FsbGVyQ2xpZW50Q29uZmlnKSA9PiB7XG4gICAgY29uc3QgeyBTU09PSURDQ2xpZW50IH0gPSBhd2FpdCBpbXBvcnQoJ0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL3Nzby1vaWRjJyk7XG4gICAgY29uc3QgY29hbGVzY2UgPSAocHJvcCkgPT4gaW5pdC5jbGllbnRDb25maWc/Lltwcm9wXSA/PyBpbml0LnBhcmVudENsaWVudENvbmZpZz8uW3Byb3BdID8/IGNhbGxlckNsaWVudENvbmZpZz8uW3Byb3BdO1xuICAgIGNvbnN0IHNzb09pZGNDbGllbnQgPSBuZXcgU1NPT0lEQ0NsaWVudChPYmplY3QuYXNzaWduKHt9LCBpbml0LmNsaWVudENvbmZpZyA/PyB7fSwge1xuICAgICAgICByZWdpb246IHNzb1JlZ2lvbiA/PyBpbml0LmNsaWVudENvbmZpZz8ucmVnaW9uLFxuICAgICAgICBsb2dnZXI6IGNvYWxlc2NlKFwibG9nZ2VyXCIpLFxuICAgICAgICB1c2VyQWdlbnRBcHBJZDogY29hbGVzY2UoXCJ1c2VyQWdlbnRBcHBJZFwiKSxcbiAgICB9KSk7XG4gICAgcmV0dXJuIHNzb09pZGNDbGllbnQ7XG59O1xuXG5jb25zdCBnZXROZXdTc29PaWRjVG9rZW4gPSBhc3luYyAoc3NvVG9rZW4sIHNzb1JlZ2lvbiwgaW5pdCA9IHt9LCBjYWxsZXJDbGllbnRDb25maWcpID0+IHtcbiAgICBjb25zdCB7IENyZWF0ZVRva2VuQ29tbWFuZCB9ID0gYXdhaXQgaW1wb3J0KCdAYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9zc28tb2lkYycpO1xuICAgIGNvbnN0IHNzb09pZGNDbGllbnQgPSBhd2FpdCBnZXRTc29PaWRjQ2xpZW50KHNzb1JlZ2lvbiwgaW5pdCwgY2FsbGVyQ2xpZW50Q29uZmlnKTtcbiAgICByZXR1cm4gc3NvT2lkY0NsaWVudC5zZW5kKG5ldyBDcmVhdGVUb2tlbkNvbW1hbmQoe1xuICAgICAgICBjbGllbnRJZDogc3NvVG9rZW4uY2xpZW50SWQsXG4gICAgICAgIGNsaWVudFNlY3JldDogc3NvVG9rZW4uY2xpZW50U2VjcmV0LFxuICAgICAgICByZWZyZXNoVG9rZW46IHNzb1Rva2VuLnJlZnJlc2hUb2tlbixcbiAgICAgICAgZ3JhbnRUeXBlOiBcInJlZnJlc2hfdG9rZW5cIixcbiAgICB9KSk7XG59O1xuXG5jb25zdCB2YWxpZGF0ZVRva2VuRXhwaXJ5ID0gKHRva2VuKSA9PiB7XG4gICAgaWYgKHRva2VuLmV4cGlyYXRpb24gJiYgdG9rZW4uZXhwaXJhdGlvbi5nZXRUaW1lKCkgPCBEYXRlLm5vdygpKSB7XG4gICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLlRva2VuUHJvdmlkZXJFcnJvcihgVG9rZW4gaXMgZXhwaXJlZC4gJHtSRUZSRVNIX01FU1NBR0V9YCwgZmFsc2UpO1xuICAgIH1cbn07XG5cbmNvbnN0IHZhbGlkYXRlVG9rZW5LZXkgPSAoa2V5LCB2YWx1ZSwgZm9yUmVmcmVzaCA9IGZhbHNlKSA9PiB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5Ub2tlblByb3ZpZGVyRXJyb3IoYFZhbHVlIG5vdCBwcmVzZW50IGZvciAnJHtrZXl9JyBpbiBTU08gVG9rZW4ke2ZvclJlZnJlc2ggPyBcIi4gQ2Fubm90IHJlZnJlc2hcIiA6IFwiXCJ9LiAke1JFRlJFU0hfTUVTU0FHRX1gLCBmYWxzZSk7XG4gICAgfVxufTtcblxuY29uc3QgeyB3cml0ZUZpbGUgfSA9IGZzLnByb21pc2VzO1xuY29uc3Qgd3JpdGVTU09Ub2tlblRvRmlsZSA9IChpZCwgc3NvVG9rZW4pID0+IHtcbiAgICBjb25zdCB0b2tlbkZpbGVwYXRoID0gc2hhcmVkSW5pRmlsZUxvYWRlci5nZXRTU09Ub2tlbkZpbGVwYXRoKGlkKTtcbiAgICBjb25zdCB0b2tlblN0cmluZyA9IEpTT04uc3RyaW5naWZ5KHNzb1Rva2VuLCBudWxsLCAyKTtcbiAgICByZXR1cm4gd3JpdGVGaWxlKHRva2VuRmlsZXBhdGgsIHRva2VuU3RyaW5nKTtcbn07XG5cbmNvbnN0IGxhc3RSZWZyZXNoQXR0ZW1wdFRpbWUgPSBuZXcgRGF0ZSgwKTtcbmNvbnN0IGZyb21Tc28gPSAoaW5pdCA9IHt9KSA9PiBhc3luYyAoeyBjYWxsZXJDbGllbnRDb25maWcgfSA9IHt9KSA9PiB7XG4gICAgaW5pdC5sb2dnZXI/LmRlYnVnKFwiQGF3cy1zZGsvdG9rZW4tcHJvdmlkZXJzIC0gZnJvbVNzb1wiKTtcbiAgICBjb25zdCBwcm9maWxlcyA9IGF3YWl0IHNoYXJlZEluaUZpbGVMb2FkZXIucGFyc2VLbm93bkZpbGVzKGluaXQpO1xuICAgIGNvbnN0IHByb2ZpbGVOYW1lID0gc2hhcmVkSW5pRmlsZUxvYWRlci5nZXRQcm9maWxlTmFtZSh7XG4gICAgICAgIHByb2ZpbGU6IGluaXQucHJvZmlsZSA/PyBjYWxsZXJDbGllbnRDb25maWc/LnByb2ZpbGUsXG4gICAgfSk7XG4gICAgY29uc3QgcHJvZmlsZSA9IHByb2ZpbGVzW3Byb2ZpbGVOYW1lXTtcbiAgICBpZiAoIXByb2ZpbGUpIHtcbiAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuVG9rZW5Qcm92aWRlckVycm9yKGBQcm9maWxlICcke3Byb2ZpbGVOYW1lfScgY291bGQgbm90IGJlIGZvdW5kIGluIHNoYXJlZCBjcmVkZW50aWFscyBmaWxlLmAsIGZhbHNlKTtcbiAgICB9XG4gICAgZWxzZSBpZiAoIXByb2ZpbGVbXCJzc29fc2Vzc2lvblwiXSkge1xuICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5Ub2tlblByb3ZpZGVyRXJyb3IoYFByb2ZpbGUgJyR7cHJvZmlsZU5hbWV9JyBpcyBtaXNzaW5nIHJlcXVpcmVkIHByb3BlcnR5ICdzc29fc2Vzc2lvbicuYCk7XG4gICAgfVxuICAgIGNvbnN0IHNzb1Nlc3Npb25OYW1lID0gcHJvZmlsZVtcInNzb19zZXNzaW9uXCJdO1xuICAgIGNvbnN0IHNzb1Nlc3Npb25zID0gYXdhaXQgc2hhcmVkSW5pRmlsZUxvYWRlci5sb2FkU3NvU2Vzc2lvbkRhdGEoaW5pdCk7XG4gICAgY29uc3Qgc3NvU2Vzc2lvbiA9IHNzb1Nlc3Npb25zW3Nzb1Nlc3Npb25OYW1lXTtcbiAgICBpZiAoIXNzb1Nlc3Npb24pIHtcbiAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuVG9rZW5Qcm92aWRlckVycm9yKGBTc28gc2Vzc2lvbiAnJHtzc29TZXNzaW9uTmFtZX0nIGNvdWxkIG5vdCBiZSBmb3VuZCBpbiBzaGFyZWQgY3JlZGVudGlhbHMgZmlsZS5gLCBmYWxzZSk7XG4gICAgfVxuICAgIGZvciAoY29uc3Qgc3NvU2Vzc2lvblJlcXVpcmVkS2V5IG9mIFtcInNzb19zdGFydF91cmxcIiwgXCJzc29fcmVnaW9uXCJdKSB7XG4gICAgICAgIGlmICghc3NvU2Vzc2lvbltzc29TZXNzaW9uUmVxdWlyZWRLZXldKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5Ub2tlblByb3ZpZGVyRXJyb3IoYFNzbyBzZXNzaW9uICcke3Nzb1Nlc3Npb25OYW1lfScgaXMgbWlzc2luZyByZXF1aXJlZCBwcm9wZXJ0eSAnJHtzc29TZXNzaW9uUmVxdWlyZWRLZXl9Jy5gLCBmYWxzZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgc3NvU2Vzc2lvbltcInNzb19zdGFydF91cmxcIl07XG4gICAgY29uc3Qgc3NvUmVnaW9uID0gc3NvU2Vzc2lvbltcInNzb19yZWdpb25cIl07XG4gICAgbGV0IHNzb1Rva2VuO1xuICAgIHRyeSB7XG4gICAgICAgIHNzb1Rva2VuID0gYXdhaXQgc2hhcmVkSW5pRmlsZUxvYWRlci5nZXRTU09Ub2tlbkZyb21GaWxlKHNzb1Nlc3Npb25OYW1lKTtcbiAgICB9XG4gICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuVG9rZW5Qcm92aWRlckVycm9yKGBUaGUgU1NPIHNlc3Npb24gdG9rZW4gYXNzb2NpYXRlZCB3aXRoIHByb2ZpbGU9JHtwcm9maWxlTmFtZX0gd2FzIG5vdCBmb3VuZCBvciBpcyBpbnZhbGlkLiAke1JFRlJFU0hfTUVTU0FHRX1gLCBmYWxzZSk7XG4gICAgfVxuICAgIHZhbGlkYXRlVG9rZW5LZXkoXCJhY2Nlc3NUb2tlblwiLCBzc29Ub2tlbi5hY2Nlc3NUb2tlbik7XG4gICAgdmFsaWRhdGVUb2tlbktleShcImV4cGlyZXNBdFwiLCBzc29Ub2tlbi5leHBpcmVzQXQpO1xuICAgIGNvbnN0IHsgYWNjZXNzVG9rZW4sIGV4cGlyZXNBdCB9ID0gc3NvVG9rZW47XG4gICAgY29uc3QgZXhpc3RpbmdUb2tlbiA9IHsgdG9rZW46IGFjY2Vzc1Rva2VuLCBleHBpcmF0aW9uOiBuZXcgRGF0ZShleHBpcmVzQXQpIH07XG4gICAgaWYgKGV4aXN0aW5nVG9rZW4uZXhwaXJhdGlvbi5nZXRUaW1lKCkgLSBEYXRlLm5vdygpID4gRVhQSVJFX1dJTkRPV19NUykge1xuICAgICAgICByZXR1cm4gZXhpc3RpbmdUb2tlbjtcbiAgICB9XG4gICAgaWYgKERhdGUubm93KCkgLSBsYXN0UmVmcmVzaEF0dGVtcHRUaW1lLmdldFRpbWUoKSA8IDMwICogMTAwMCkge1xuICAgICAgICB2YWxpZGF0ZVRva2VuRXhwaXJ5KGV4aXN0aW5nVG9rZW4pO1xuICAgICAgICByZXR1cm4gZXhpc3RpbmdUb2tlbjtcbiAgICB9XG4gICAgdmFsaWRhdGVUb2tlbktleShcImNsaWVudElkXCIsIHNzb1Rva2VuLmNsaWVudElkLCB0cnVlKTtcbiAgICB2YWxpZGF0ZVRva2VuS2V5KFwiY2xpZW50U2VjcmV0XCIsIHNzb1Rva2VuLmNsaWVudFNlY3JldCwgdHJ1ZSk7XG4gICAgdmFsaWRhdGVUb2tlbktleShcInJlZnJlc2hUb2tlblwiLCBzc29Ub2tlbi5yZWZyZXNoVG9rZW4sIHRydWUpO1xuICAgIHRyeSB7XG4gICAgICAgIGxhc3RSZWZyZXNoQXR0ZW1wdFRpbWUuc2V0VGltZShEYXRlLm5vdygpKTtcbiAgICAgICAgY29uc3QgbmV3U3NvT2lkY1Rva2VuID0gYXdhaXQgZ2V0TmV3U3NvT2lkY1Rva2VuKHNzb1Rva2VuLCBzc29SZWdpb24sIGluaXQsIGNhbGxlckNsaWVudENvbmZpZyk7XG4gICAgICAgIHZhbGlkYXRlVG9rZW5LZXkoXCJhY2Nlc3NUb2tlblwiLCBuZXdTc29PaWRjVG9rZW4uYWNjZXNzVG9rZW4pO1xuICAgICAgICB2YWxpZGF0ZVRva2VuS2V5KFwiZXhwaXJlc0luXCIsIG5ld1Nzb09pZGNUb2tlbi5leHBpcmVzSW4pO1xuICAgICAgICBjb25zdCBuZXdUb2tlbkV4cGlyYXRpb24gPSBuZXcgRGF0ZShEYXRlLm5vdygpICsgbmV3U3NvT2lkY1Rva2VuLmV4cGlyZXNJbiAqIDEwMDApO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgYXdhaXQgd3JpdGVTU09Ub2tlblRvRmlsZShzc29TZXNzaW9uTmFtZSwge1xuICAgICAgICAgICAgICAgIC4uLnNzb1Rva2VuLFxuICAgICAgICAgICAgICAgIGFjY2Vzc1Rva2VuOiBuZXdTc29PaWRjVG9rZW4uYWNjZXNzVG9rZW4sXG4gICAgICAgICAgICAgICAgZXhwaXJlc0F0OiBuZXdUb2tlbkV4cGlyYXRpb24udG9JU09TdHJpbmcoKSxcbiAgICAgICAgICAgICAgICByZWZyZXNoVG9rZW46IG5ld1Nzb09pZGNUb2tlbi5yZWZyZXNoVG9rZW4sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdG9rZW46IG5ld1Nzb09pZGNUb2tlbi5hY2Nlc3NUb2tlbixcbiAgICAgICAgICAgIGV4cGlyYXRpb246IG5ld1Rva2VuRXhwaXJhdGlvbixcbiAgICAgICAgfTtcbiAgICB9XG4gICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHZhbGlkYXRlVG9rZW5FeHBpcnkoZXhpc3RpbmdUb2tlbik7XG4gICAgICAgIHJldHVybiBleGlzdGluZ1Rva2VuO1xuICAgIH1cbn07XG5cbmNvbnN0IGZyb21TdGF0aWMgPSAoeyB0b2tlbiwgbG9nZ2VyIH0pID0+IGFzeW5jICgpID0+IHtcbiAgICBsb2dnZXI/LmRlYnVnKFwiQGF3cy1zZGsvdG9rZW4tcHJvdmlkZXJzIC0gZnJvbVN0YXRpY1wiKTtcbiAgICBpZiAoIXRva2VuIHx8ICF0b2tlbi50b2tlbikge1xuICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5Ub2tlblByb3ZpZGVyRXJyb3IoYFBsZWFzZSBwYXNzIGEgdmFsaWQgdG9rZW4gdG8gZnJvbVN0YXRpY2AsIGZhbHNlKTtcbiAgICB9XG4gICAgcmV0dXJuIHRva2VuO1xufTtcblxuY29uc3Qgbm9kZVByb3ZpZGVyID0gKGluaXQgPSB7fSkgPT4gcHJvcGVydHlQcm92aWRlci5tZW1vaXplKHByb3BlcnR5UHJvdmlkZXIuY2hhaW4oZnJvbVNzbyhpbml0KSwgYXN5bmMgKCkgPT4ge1xuICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLlRva2VuUHJvdmlkZXJFcnJvcihcIkNvdWxkIG5vdCBsb2FkIHRva2VuIGZyb20gYW55IHByb3ZpZGVyc1wiLCBmYWxzZSk7XG59KSwgKHRva2VuKSA9PiB0b2tlbi5leHBpcmF0aW9uICE9PSB1bmRlZmluZWQgJiYgdG9rZW4uZXhwaXJhdGlvbi5nZXRUaW1lKCkgLSBEYXRlLm5vdygpIDwgMzAwMDAwLCAodG9rZW4pID0+IHRva2VuLmV4cGlyYXRpb24gIT09IHVuZGVmaW5lZCk7XG5cbmV4cG9ydHMuZnJvbUVudlNpZ25pbmdOYW1lID0gZnJvbUVudlNpZ25pbmdOYW1lO1xuZXhwb3J0cy5mcm9tU3NvID0gZnJvbVNzbztcbmV4cG9ydHMuZnJvbVN0YXRpYyA9IGZyb21TdGF0aWM7XG5leHBvcnRzLm5vZGVQcm92aWRlciA9IG5vZGVQcm92aWRlcjtcbiIsICJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMucmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnID0gZXhwb3J0cy5kZWZhdWx0U1NPSHR0cEF1dGhTY2hlbWVQcm92aWRlciA9IGV4cG9ydHMuZGVmYXVsdFNTT0h0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyID0gdm9pZCAwO1xuY29uc3QgY29yZV8xID0gcmVxdWlyZShcIkBhd3Mtc2RrL2NvcmVcIik7XG5jb25zdCB1dGlsX21pZGRsZXdhcmVfMSA9IHJlcXVpcmUoXCJAc21pdGh5L3V0aWwtbWlkZGxld2FyZVwiKTtcbmNvbnN0IGRlZmF1bHRTU09IdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlciA9IGFzeW5jIChjb25maWcsIGNvbnRleHQsIGlucHV0KSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgb3BlcmF0aW9uOiAoMCwgdXRpbF9taWRkbGV3YXJlXzEuZ2V0U21pdGh5Q29udGV4dCkoY29udGV4dCkub3BlcmF0aW9uLFxuICAgICAgICByZWdpb246IChhd2FpdCAoMCwgdXRpbF9taWRkbGV3YXJlXzEubm9ybWFsaXplUHJvdmlkZXIpKGNvbmZpZy5yZWdpb24pKCkpIHx8XG4gICAgICAgICAgICAoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcImV4cGVjdGVkIGByZWdpb25gIHRvIGJlIGNvbmZpZ3VyZWQgZm9yIGBhd3MuYXV0aCNzaWd2NGBcIik7XG4gICAgICAgICAgICB9KSgpLFxuICAgIH07XG59O1xuZXhwb3J0cy5kZWZhdWx0U1NPSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIgPSBkZWZhdWx0U1NPSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXI7XG5mdW5jdGlvbiBjcmVhdGVBd3NBdXRoU2lndjRIdHRwQXV0aE9wdGlvbihhdXRoUGFyYW1ldGVycykge1xuICAgIHJldHVybiB7XG4gICAgICAgIHNjaGVtZUlkOiBcImF3cy5hdXRoI3NpZ3Y0XCIsXG4gICAgICAgIHNpZ25pbmdQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICBuYW1lOiBcImF3c3Nzb3BvcnRhbFwiLFxuICAgICAgICAgICAgcmVnaW9uOiBhdXRoUGFyYW1ldGVycy5yZWdpb24sXG4gICAgICAgIH0sXG4gICAgICAgIHByb3BlcnRpZXNFeHRyYWN0b3I6IChjb25maWcsIGNvbnRleHQpID0+ICh7XG4gICAgICAgICAgICBzaWduaW5nUHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgIGNvbmZpZyxcbiAgICAgICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgfTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVNtaXRoeUFwaU5vQXV0aEh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc2NoZW1lSWQ6IFwic21pdGh5LmFwaSNub0F1dGhcIixcbiAgICB9O1xufVxuY29uc3QgZGVmYXVsdFNTT0h0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSAoYXV0aFBhcmFtZXRlcnMpID0+IHtcbiAgICBjb25zdCBvcHRpb25zID0gW107XG4gICAgc3dpdGNoIChhdXRoUGFyYW1ldGVycy5vcGVyYXRpb24pIHtcbiAgICAgICAgY2FzZSBcIkdldFJvbGVDcmVkZW50aWFsc1wiOiB7XG4gICAgICAgICAgICBvcHRpb25zLnB1c2goY3JlYXRlU21pdGh5QXBpTm9BdXRoSHR0cEF1dGhPcHRpb24oYXV0aFBhcmFtZXRlcnMpKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgXCJMaXN0QWNjb3VudFJvbGVzXCI6IHtcbiAgICAgICAgICAgIG9wdGlvbnMucHVzaChjcmVhdGVTbWl0aHlBcGlOb0F1dGhIdHRwQXV0aE9wdGlvbihhdXRoUGFyYW1ldGVycykpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBcIkxpc3RBY2NvdW50c1wiOiB7XG4gICAgICAgICAgICBvcHRpb25zLnB1c2goY3JlYXRlU21pdGh5QXBpTm9BdXRoSHR0cEF1dGhPcHRpb24oYXV0aFBhcmFtZXRlcnMpKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgXCJMb2dvdXRcIjoge1xuICAgICAgICAgICAgb3B0aW9ucy5wdXNoKGNyZWF0ZVNtaXRoeUFwaU5vQXV0aEh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICBvcHRpb25zLnB1c2goY3JlYXRlQXdzQXV0aFNpZ3Y0SHR0cEF1dGhPcHRpb24oYXV0aFBhcmFtZXRlcnMpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gb3B0aW9ucztcbn07XG5leHBvcnRzLmRlZmF1bHRTU09IdHRwQXV0aFNjaGVtZVByb3ZpZGVyID0gZGVmYXVsdFNTT0h0dHBBdXRoU2NoZW1lUHJvdmlkZXI7XG5jb25zdCByZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWcgPSAoY29uZmlnKSA9PiB7XG4gICAgY29uc3QgY29uZmlnXzAgPSAoMCwgY29yZV8xLnJlc29sdmVBd3NTZGtTaWdWNENvbmZpZykoY29uZmlnKTtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihjb25maWdfMCwge1xuICAgICAgICBhdXRoU2NoZW1lUHJlZmVyZW5jZTogKDAsIHV0aWxfbWlkZGxld2FyZV8xLm5vcm1hbGl6ZVByb3ZpZGVyKShjb25maWcuYXV0aFNjaGVtZVByZWZlcmVuY2UgPz8gW10pLFxuICAgIH0pO1xufTtcbmV4cG9ydHMucmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnID0gcmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnO1xuIiwgIntcbiAgXCJuYW1lXCI6IFwiQGF3cy1zZGsvY2xpZW50LXNzb1wiLFxuICBcImRlc2NyaXB0aW9uXCI6IFwiQVdTIFNESyBmb3IgSmF2YVNjcmlwdCBTc28gQ2xpZW50IGZvciBOb2RlLmpzLCBCcm93c2VyIGFuZCBSZWFjdCBOYXRpdmVcIixcbiAgXCJ2ZXJzaW9uXCI6IFwiMy45NDguMFwiLFxuICBcInNjcmlwdHNcIjoge1xuICAgIFwiYnVpbGRcIjogXCJjb25jdXJyZW50bHkgJ3lhcm46YnVpbGQ6Y2pzJyAneWFybjpidWlsZDplcycgJ3lhcm46YnVpbGQ6dHlwZXMnXCIsXG4gICAgXCJidWlsZDpjanNcIjogXCJub2RlIC4uLy4uL3NjcmlwdHMvY29tcGlsYXRpb24vaW5saW5lIGNsaWVudC1zc29cIixcbiAgICBcImJ1aWxkOmVzXCI6IFwidHNjIC1wIHRzY29uZmlnLmVzLmpzb25cIixcbiAgICBcImJ1aWxkOmluY2x1ZGU6ZGVwc1wiOiBcImxlcm5hIHJ1biAtLXNjb3BlICRucG1fcGFja2FnZV9uYW1lIC0taW5jbHVkZS1kZXBlbmRlbmNpZXMgYnVpbGRcIixcbiAgICBcImJ1aWxkOnR5cGVzXCI6IFwidHNjIC1wIHRzY29uZmlnLnR5cGVzLmpzb25cIixcbiAgICBcImJ1aWxkOnR5cGVzOmRvd25sZXZlbFwiOiBcImRvd25sZXZlbC1kdHMgZGlzdC10eXBlcyBkaXN0LXR5cGVzL3RzMy40XCIsXG4gICAgXCJjbGVhblwiOiBcInJpbXJhZiAuL2Rpc3QtKiAmJiByaW1yYWYgKi50c2J1aWxkaW5mb1wiLFxuICAgIFwiZXh0cmFjdDpkb2NzXCI6IFwiYXBpLWV4dHJhY3RvciBydW4gLS1sb2NhbFwiLFxuICAgIFwiZ2VuZXJhdGU6Y2xpZW50XCI6IFwibm9kZSAuLi8uLi9zY3JpcHRzL2dlbmVyYXRlLWNsaWVudHMvc2luZ2xlLXNlcnZpY2UgLS1zb2xvIHNzb1wiLFxuICAgIFwidGVzdDppbmRleFwiOiBcInRzYyAtLW5vRW1pdCAuL3Rlc3QvaW5kZXgtdHlwZXMudHMgJiYgbm9kZSAuL3Rlc3QvaW5kZXgtb2JqZWN0cy5zcGVjLm1qc1wiXG4gIH0sXG4gIFwibWFpblwiOiBcIi4vZGlzdC1janMvaW5kZXguanNcIixcbiAgXCJ0eXBlc1wiOiBcIi4vZGlzdC10eXBlcy9pbmRleC5kLnRzXCIsXG4gIFwibW9kdWxlXCI6IFwiLi9kaXN0LWVzL2luZGV4LmpzXCIsXG4gIFwic2lkZUVmZmVjdHNcIjogZmFsc2UsXG4gIFwiZGVwZW5kZW5jaWVzXCI6IHtcbiAgICBcIkBhd3MtY3J5cHRvL3NoYTI1Ni1icm93c2VyXCI6IFwiNS4yLjBcIixcbiAgICBcIkBhd3MtY3J5cHRvL3NoYTI1Ni1qc1wiOiBcIjUuMi4wXCIsXG4gICAgXCJAYXdzLXNkay9jb3JlXCI6IFwiMy45NDcuMFwiLFxuICAgIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1ob3N0LWhlYWRlclwiOiBcIjMuOTM2LjBcIixcbiAgICBcIkBhd3Mtc2RrL21pZGRsZXdhcmUtbG9nZ2VyXCI6IFwiMy45MzYuMFwiLFxuICAgIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1yZWN1cnNpb24tZGV0ZWN0aW9uXCI6IFwiMy45NDguMFwiLFxuICAgIFwiQGF3cy1zZGsvbWlkZGxld2FyZS11c2VyLWFnZW50XCI6IFwiMy45NDcuMFwiLFxuICAgIFwiQGF3cy1zZGsvcmVnaW9uLWNvbmZpZy1yZXNvbHZlclwiOiBcIjMuOTM2LjBcIixcbiAgICBcIkBhd3Mtc2RrL3R5cGVzXCI6IFwiMy45MzYuMFwiLFxuICAgIFwiQGF3cy1zZGsvdXRpbC1lbmRwb2ludHNcIjogXCIzLjkzNi4wXCIsXG4gICAgXCJAYXdzLXNkay91dGlsLXVzZXItYWdlbnQtYnJvd3NlclwiOiBcIjMuOTM2LjBcIixcbiAgICBcIkBhd3Mtc2RrL3V0aWwtdXNlci1hZ2VudC1ub2RlXCI6IFwiMy45NDcuMFwiLFxuICAgIFwiQHNtaXRoeS9jb25maWctcmVzb2x2ZXJcIjogXCJeNC40LjNcIixcbiAgICBcIkBzbWl0aHkvY29yZVwiOiBcIl4zLjE4LjdcIixcbiAgICBcIkBzbWl0aHkvZmV0Y2gtaHR0cC1oYW5kbGVyXCI6IFwiXjUuMy42XCIsXG4gICAgXCJAc21pdGh5L2hhc2gtbm9kZVwiOiBcIl40LjIuNVwiLFxuICAgIFwiQHNtaXRoeS9pbnZhbGlkLWRlcGVuZGVuY3lcIjogXCJeNC4yLjVcIixcbiAgICBcIkBzbWl0aHkvbWlkZGxld2FyZS1jb250ZW50LWxlbmd0aFwiOiBcIl40LjIuNVwiLFxuICAgIFwiQHNtaXRoeS9taWRkbGV3YXJlLWVuZHBvaW50XCI6IFwiXjQuMy4xNFwiLFxuICAgIFwiQHNtaXRoeS9taWRkbGV3YXJlLXJldHJ5XCI6IFwiXjQuNC4xNFwiLFxuICAgIFwiQHNtaXRoeS9taWRkbGV3YXJlLXNlcmRlXCI6IFwiXjQuMi42XCIsXG4gICAgXCJAc21pdGh5L21pZGRsZXdhcmUtc3RhY2tcIjogXCJeNC4yLjVcIixcbiAgICBcIkBzbWl0aHkvbm9kZS1jb25maWctcHJvdmlkZXJcIjogXCJeNC4zLjVcIixcbiAgICBcIkBzbWl0aHkvbm9kZS1odHRwLWhhbmRsZXJcIjogXCJeNC40LjVcIixcbiAgICBcIkBzbWl0aHkvcHJvdG9jb2wtaHR0cFwiOiBcIl41LjMuNVwiLFxuICAgIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI6IFwiXjQuOS4xMFwiLFxuICAgIFwiQHNtaXRoeS90eXBlc1wiOiBcIl40LjkuMFwiLFxuICAgIFwiQHNtaXRoeS91cmwtcGFyc2VyXCI6IFwiXjQuMi41XCIsXG4gICAgXCJAc21pdGh5L3V0aWwtYmFzZTY0XCI6IFwiXjQuMy4wXCIsXG4gICAgXCJAc21pdGh5L3V0aWwtYm9keS1sZW5ndGgtYnJvd3NlclwiOiBcIl40LjIuMFwiLFxuICAgIFwiQHNtaXRoeS91dGlsLWJvZHktbGVuZ3RoLW5vZGVcIjogXCJeNC4yLjFcIixcbiAgICBcIkBzbWl0aHkvdXRpbC1kZWZhdWx0cy1tb2RlLWJyb3dzZXJcIjogXCJeNC4zLjEzXCIsXG4gICAgXCJAc21pdGh5L3V0aWwtZGVmYXVsdHMtbW9kZS1ub2RlXCI6IFwiXjQuMi4xNlwiLFxuICAgIFwiQHNtaXRoeS91dGlsLWVuZHBvaW50c1wiOiBcIl4zLjIuNVwiLFxuICAgIFwiQHNtaXRoeS91dGlsLW1pZGRsZXdhcmVcIjogXCJeNC4yLjVcIixcbiAgICBcIkBzbWl0aHkvdXRpbC1yZXRyeVwiOiBcIl40LjIuNVwiLFxuICAgIFwiQHNtaXRoeS91dGlsLXV0ZjhcIjogXCJeNC4yLjBcIixcbiAgICBcInRzbGliXCI6IFwiXjIuNi4yXCJcbiAgfSxcbiAgXCJkZXZEZXBlbmRlbmNpZXNcIjoge1xuICAgIFwiQHRzY29uZmlnL25vZGUxOFwiOiBcIjE4LjIuNFwiLFxuICAgIFwiQHR5cGVzL25vZGVcIjogXCJeMTguMTkuNjlcIixcbiAgICBcImNvbmN1cnJlbnRseVwiOiBcIjcuMC4wXCIsXG4gICAgXCJkb3dubGV2ZWwtZHRzXCI6IFwiMC4xMC4xXCIsXG4gICAgXCJyaW1yYWZcIjogXCIzLjAuMlwiLFxuICAgIFwidHlwZXNjcmlwdFwiOiBcIn41LjguM1wiXG4gIH0sXG4gIFwiZW5naW5lc1wiOiB7XG4gICAgXCJub2RlXCI6IFwiPj0xOC4wLjBcIlxuICB9LFxuICBcInR5cGVzVmVyc2lvbnNcIjoge1xuICAgIFwiPDQuMFwiOiB7XG4gICAgICBcImRpc3QtdHlwZXMvKlwiOiBbXG4gICAgICAgIFwiZGlzdC10eXBlcy90czMuNC8qXCJcbiAgICAgIF1cbiAgICB9XG4gIH0sXG4gIFwiZmlsZXNcIjogW1xuICAgIFwiZGlzdC0qLyoqXCJcbiAgXSxcbiAgXCJhdXRob3JcIjoge1xuICAgIFwibmFtZVwiOiBcIkFXUyBTREsgZm9yIEphdmFTY3JpcHQgVGVhbVwiLFxuICAgIFwidXJsXCI6IFwiaHR0cHM6Ly9hd3MuYW1hem9uLmNvbS9qYXZhc2NyaXB0L1wiXG4gIH0sXG4gIFwibGljZW5zZVwiOiBcIkFwYWNoZS0yLjBcIixcbiAgXCJicm93c2VyXCI6IHtcbiAgICBcIi4vZGlzdC1lcy9ydW50aW1lQ29uZmlnXCI6IFwiLi9kaXN0LWVzL3J1bnRpbWVDb25maWcuYnJvd3NlclwiXG4gIH0sXG4gIFwicmVhY3QtbmF0aXZlXCI6IHtcbiAgICBcIi4vZGlzdC1lcy9ydW50aW1lQ29uZmlnXCI6IFwiLi9kaXN0LWVzL3J1bnRpbWVDb25maWcubmF0aXZlXCJcbiAgfSxcbiAgXCJob21lcGFnZVwiOiBcImh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLXNkay1qcy12My90cmVlL21haW4vY2xpZW50cy9jbGllbnQtc3NvXCIsXG4gIFwicmVwb3NpdG9yeVwiOiB7XG4gICAgXCJ0eXBlXCI6IFwiZ2l0XCIsXG4gICAgXCJ1cmxcIjogXCJodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1zZGstanMtdjMuZ2l0XCIsXG4gICAgXCJkaXJlY3RvcnlcIjogXCJjbGllbnRzL2NsaWVudC1zc29cIlxuICB9XG59XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLnJ1bGVTZXQgPSB2b2lkIDA7XG5jb25zdCB1ID0gXCJyZXF1aXJlZFwiLCB2ID0gXCJmblwiLCB3ID0gXCJhcmd2XCIsIHggPSBcInJlZlwiO1xuY29uc3QgYSA9IHRydWUsIGIgPSBcImlzU2V0XCIsIGMgPSBcImJvb2xlYW5FcXVhbHNcIiwgZCA9IFwiZXJyb3JcIiwgZSA9IFwiZW5kcG9pbnRcIiwgZiA9IFwidHJlZVwiLCBnID0gXCJQYXJ0aXRpb25SZXN1bHRcIiwgaCA9IFwiZ2V0QXR0clwiLCBpID0geyBbdV06IGZhbHNlLCBcInR5cGVcIjogXCJzdHJpbmdcIiB9LCBqID0geyBbdV06IHRydWUsIFwiZGVmYXVsdFwiOiBmYWxzZSwgXCJ0eXBlXCI6IFwiYm9vbGVhblwiIH0sIGsgPSB7IFt4XTogXCJFbmRwb2ludFwiIH0sIGwgPSB7IFt2XTogYywgW3ddOiBbeyBbeF06IFwiVXNlRklQU1wiIH0sIHRydWVdIH0sIG0gPSB7IFt2XTogYywgW3ddOiBbeyBbeF06IFwiVXNlRHVhbFN0YWNrXCIgfSwgdHJ1ZV0gfSwgbiA9IHt9LCBvID0geyBbdl06IGgsIFt3XTogW3sgW3hdOiBnIH0sIFwic3VwcG9ydHNGSVBTXCJdIH0sIHAgPSB7IFt4XTogZyB9LCBxID0geyBbdl06IGMsIFt3XTogW3RydWUsIHsgW3ZdOiBoLCBbd106IFtwLCBcInN1cHBvcnRzRHVhbFN0YWNrXCJdIH1dIH0sIHIgPSBbbF0sIHMgPSBbbV0sIHQgPSBbeyBbeF06IFwiUmVnaW9uXCIgfV07XG5jb25zdCBfZGF0YSA9IHsgdmVyc2lvbjogXCIxLjBcIiwgcGFyYW1ldGVyczogeyBSZWdpb246IGksIFVzZUR1YWxTdGFjazogaiwgVXNlRklQUzogaiwgRW5kcG9pbnQ6IGkgfSwgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IFt7IFt2XTogYiwgW3ddOiBba10gfV0sIHJ1bGVzOiBbeyBjb25kaXRpb25zOiByLCBlcnJvcjogXCJJbnZhbGlkIENvbmZpZ3VyYXRpb246IEZJUFMgYW5kIGN1c3RvbSBlbmRwb2ludCBhcmUgbm90IHN1cHBvcnRlZFwiLCB0eXBlOiBkIH0sIHsgY29uZGl0aW9uczogcywgZXJyb3I6IFwiSW52YWxpZCBDb25maWd1cmF0aW9uOiBEdWFsc3RhY2sgYW5kIGN1c3RvbSBlbmRwb2ludCBhcmUgbm90IHN1cHBvcnRlZFwiLCB0eXBlOiBkIH0sIHsgZW5kcG9pbnQ6IHsgdXJsOiBrLCBwcm9wZXJ0aWVzOiBuLCBoZWFkZXJzOiBuIH0sIHR5cGU6IGUgfV0sIHR5cGU6IGYgfSwgeyBjb25kaXRpb25zOiBbeyBbdl06IGIsIFt3XTogdCB9XSwgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IFt7IFt2XTogXCJhd3MucGFydGl0aW9uXCIsIFt3XTogdCwgYXNzaWduOiBnIH1dLCBydWxlczogW3sgY29uZGl0aW9uczogW2wsIG1dLCBydWxlczogW3sgY29uZGl0aW9uczogW3sgW3ZdOiBjLCBbd106IFthLCBvXSB9LCBxXSwgcnVsZXM6IFt7IGVuZHBvaW50OiB7IHVybDogXCJodHRwczovL3BvcnRhbC5zc28tZmlwcy57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2R1YWxTdGFja0Ruc1N1ZmZpeH1cIiwgcHJvcGVydGllczogbiwgaGVhZGVyczogbiB9LCB0eXBlOiBlIH1dLCB0eXBlOiBmIH0sIHsgZXJyb3I6IFwiRklQUyBhbmQgRHVhbFN0YWNrIGFyZSBlbmFibGVkLCBidXQgdGhpcyBwYXJ0aXRpb24gZG9lcyBub3Qgc3VwcG9ydCBvbmUgb3IgYm90aFwiLCB0eXBlOiBkIH1dLCB0eXBlOiBmIH0sIHsgY29uZGl0aW9uczogciwgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IFt7IFt2XTogYywgW3ddOiBbbywgYV0gfV0sIHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbeyBbdl06IFwic3RyaW5nRXF1YWxzXCIsIFt3XTogW3sgW3ZdOiBoLCBbd106IFtwLCBcIm5hbWVcIl0gfSwgXCJhd3MtdXMtZ292XCJdIH1dLCBlbmRwb2ludDogeyB1cmw6IFwiaHR0cHM6Ly9wb3J0YWwuc3NvLntSZWdpb259LmFtYXpvbmF3cy5jb21cIiwgcHJvcGVydGllczogbiwgaGVhZGVyczogbiB9LCB0eXBlOiBlIH0sIHsgZW5kcG9pbnQ6IHsgdXJsOiBcImh0dHBzOi8vcG9ydGFsLnNzby1maXBzLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZG5zU3VmZml4fVwiLCBwcm9wZXJ0aWVzOiBuLCBoZWFkZXJzOiBuIH0sIHR5cGU6IGUgfV0sIHR5cGU6IGYgfSwgeyBlcnJvcjogXCJGSVBTIGlzIGVuYWJsZWQgYnV0IHRoaXMgcGFydGl0aW9uIGRvZXMgbm90IHN1cHBvcnQgRklQU1wiLCB0eXBlOiBkIH1dLCB0eXBlOiBmIH0sIHsgY29uZGl0aW9uczogcywgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IFtxXSwgcnVsZXM6IFt7IGVuZHBvaW50OiB7IHVybDogXCJodHRwczovL3BvcnRhbC5zc28ue1JlZ2lvbn0ue1BhcnRpdGlvblJlc3VsdCNkdWFsU3RhY2tEbnNTdWZmaXh9XCIsIHByb3BlcnRpZXM6IG4sIGhlYWRlcnM6IG4gfSwgdHlwZTogZSB9XSwgdHlwZTogZiB9LCB7IGVycm9yOiBcIkR1YWxTdGFjayBpcyBlbmFibGVkIGJ1dCB0aGlzIHBhcnRpdGlvbiBkb2VzIG5vdCBzdXBwb3J0IER1YWxTdGFja1wiLCB0eXBlOiBkIH1dLCB0eXBlOiBmIH0sIHsgZW5kcG9pbnQ6IHsgdXJsOiBcImh0dHBzOi8vcG9ydGFsLnNzby57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH1cIiwgcHJvcGVydGllczogbiwgaGVhZGVyczogbiB9LCB0eXBlOiBlIH1dLCB0eXBlOiBmIH1dLCB0eXBlOiBmIH0sIHsgZXJyb3I6IFwiSW52YWxpZCBDb25maWd1cmF0aW9uOiBNaXNzaW5nIFJlZ2lvblwiLCB0eXBlOiBkIH1dIH07XG5leHBvcnRzLnJ1bGVTZXQgPSBfZGF0YTtcbiIsICJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIgPSB2b2lkIDA7XG5jb25zdCB1dGlsX2VuZHBvaW50c18xID0gcmVxdWlyZShcIkBhd3Mtc2RrL3V0aWwtZW5kcG9pbnRzXCIpO1xuY29uc3QgdXRpbF9lbmRwb2ludHNfMiA9IHJlcXVpcmUoXCJAc21pdGh5L3V0aWwtZW5kcG9pbnRzXCIpO1xuY29uc3QgcnVsZXNldF8xID0gcmVxdWlyZShcIi4vcnVsZXNldFwiKTtcbmNvbnN0IGNhY2hlID0gbmV3IHV0aWxfZW5kcG9pbnRzXzIuRW5kcG9pbnRDYWNoZSh7XG4gICAgc2l6ZTogNTAsXG4gICAgcGFyYW1zOiBbXCJFbmRwb2ludFwiLCBcIlJlZ2lvblwiLCBcIlVzZUR1YWxTdGFja1wiLCBcIlVzZUZJUFNcIl0sXG59KTtcbmNvbnN0IGRlZmF1bHRFbmRwb2ludFJlc29sdmVyID0gKGVuZHBvaW50UGFyYW1zLCBjb250ZXh0ID0ge30pID0+IHtcbiAgICByZXR1cm4gY2FjaGUuZ2V0KGVuZHBvaW50UGFyYW1zLCAoKSA9PiAoMCwgdXRpbF9lbmRwb2ludHNfMi5yZXNvbHZlRW5kcG9pbnQpKHJ1bGVzZXRfMS5ydWxlU2V0LCB7XG4gICAgICAgIGVuZHBvaW50UGFyYW1zOiBlbmRwb2ludFBhcmFtcyxcbiAgICAgICAgbG9nZ2VyOiBjb250ZXh0LmxvZ2dlcixcbiAgICB9KSk7XG59O1xuZXhwb3J0cy5kZWZhdWx0RW5kcG9pbnRSZXNvbHZlciA9IGRlZmF1bHRFbmRwb2ludFJlc29sdmVyO1xudXRpbF9lbmRwb2ludHNfMi5jdXN0b21FbmRwb2ludEZ1bmN0aW9ucy5hd3MgPSB1dGlsX2VuZHBvaW50c18xLmF3c0VuZHBvaW50RnVuY3Rpb25zO1xuIiwgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5nZXRSdW50aW1lQ29uZmlnID0gdm9pZCAwO1xuY29uc3QgY29yZV8xID0gcmVxdWlyZShcIkBhd3Mtc2RrL2NvcmVcIik7XG5jb25zdCBwcm90b2NvbHNfMSA9IHJlcXVpcmUoXCJAYXdzLXNkay9jb3JlL3Byb3RvY29sc1wiKTtcbmNvbnN0IGNvcmVfMiA9IHJlcXVpcmUoXCJAc21pdGh5L2NvcmVcIik7XG5jb25zdCBzbWl0aHlfY2xpZW50XzEgPSByZXF1aXJlKFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCIpO1xuY29uc3QgdXJsX3BhcnNlcl8xID0gcmVxdWlyZShcIkBzbWl0aHkvdXJsLXBhcnNlclwiKTtcbmNvbnN0IHV0aWxfYmFzZTY0XzEgPSByZXF1aXJlKFwiQHNtaXRoeS91dGlsLWJhc2U2NFwiKTtcbmNvbnN0IHV0aWxfdXRmOF8xID0gcmVxdWlyZShcIkBzbWl0aHkvdXRpbC11dGY4XCIpO1xuY29uc3QgaHR0cEF1dGhTY2hlbWVQcm92aWRlcl8xID0gcmVxdWlyZShcIi4vYXV0aC9odHRwQXV0aFNjaGVtZVByb3ZpZGVyXCIpO1xuY29uc3QgZW5kcG9pbnRSZXNvbHZlcl8xID0gcmVxdWlyZShcIi4vZW5kcG9pbnQvZW5kcG9pbnRSZXNvbHZlclwiKTtcbmNvbnN0IGdldFJ1bnRpbWVDb25maWcgPSAoY29uZmlnKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgYXBpVmVyc2lvbjogXCIyMDE5LTA2LTEwXCIsXG4gICAgICAgIGJhc2U2NERlY29kZXI6IGNvbmZpZz8uYmFzZTY0RGVjb2RlciA/PyB1dGlsX2Jhc2U2NF8xLmZyb21CYXNlNjQsXG4gICAgICAgIGJhc2U2NEVuY29kZXI6IGNvbmZpZz8uYmFzZTY0RW5jb2RlciA/PyB1dGlsX2Jhc2U2NF8xLnRvQmFzZTY0LFxuICAgICAgICBkaXNhYmxlSG9zdFByZWZpeDogY29uZmlnPy5kaXNhYmxlSG9zdFByZWZpeCA/PyBmYWxzZSxcbiAgICAgICAgZW5kcG9pbnRQcm92aWRlcjogY29uZmlnPy5lbmRwb2ludFByb3ZpZGVyID8/IGVuZHBvaW50UmVzb2x2ZXJfMS5kZWZhdWx0RW5kcG9pbnRSZXNvbHZlcixcbiAgICAgICAgZXh0ZW5zaW9uczogY29uZmlnPy5leHRlbnNpb25zID8/IFtdLFxuICAgICAgICBodHRwQXV0aFNjaGVtZVByb3ZpZGVyOiBjb25maWc/Lmh0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPz8gaHR0cEF1dGhTY2hlbWVQcm92aWRlcl8xLmRlZmF1bHRTU09IdHRwQXV0aFNjaGVtZVByb3ZpZGVyLFxuICAgICAgICBodHRwQXV0aFNjaGVtZXM6IGNvbmZpZz8uaHR0cEF1dGhTY2hlbWVzID8/IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzY2hlbWVJZDogXCJhd3MuYXV0aCNzaWd2NFwiLFxuICAgICAgICAgICAgICAgIGlkZW50aXR5UHJvdmlkZXI6IChpcGMpID0+IGlwYy5nZXRJZGVudGl0eVByb3ZpZGVyKFwiYXdzLmF1dGgjc2lndjRcIiksXG4gICAgICAgICAgICAgICAgc2lnbmVyOiBuZXcgY29yZV8xLkF3c1Nka1NpZ1Y0U2lnbmVyKCksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHNjaGVtZUlkOiBcInNtaXRoeS5hcGkjbm9BdXRoXCIsXG4gICAgICAgICAgICAgICAgaWRlbnRpdHlQcm92aWRlcjogKGlwYykgPT4gaXBjLmdldElkZW50aXR5UHJvdmlkZXIoXCJzbWl0aHkuYXBpI25vQXV0aFwiKSB8fCAoYXN5bmMgKCkgPT4gKHt9KSksXG4gICAgICAgICAgICAgICAgc2lnbmVyOiBuZXcgY29yZV8yLk5vQXV0aFNpZ25lcigpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgbG9nZ2VyOiBjb25maWc/LmxvZ2dlciA/PyBuZXcgc21pdGh5X2NsaWVudF8xLk5vT3BMb2dnZXIoKSxcbiAgICAgICAgcHJvdG9jb2w6IGNvbmZpZz8ucHJvdG9jb2wgPz8gbmV3IHByb3RvY29sc18xLkF3c1Jlc3RKc29uUHJvdG9jb2woeyBkZWZhdWx0TmFtZXNwYWNlOiBcImNvbS5hbWF6b25hd3Muc3NvXCIgfSksXG4gICAgICAgIHNlcnZpY2VJZDogY29uZmlnPy5zZXJ2aWNlSWQgPz8gXCJTU09cIixcbiAgICAgICAgdXJsUGFyc2VyOiBjb25maWc/LnVybFBhcnNlciA/PyB1cmxfcGFyc2VyXzEucGFyc2VVcmwsXG4gICAgICAgIHV0ZjhEZWNvZGVyOiBjb25maWc/LnV0ZjhEZWNvZGVyID8/IHV0aWxfdXRmOF8xLmZyb21VdGY4LFxuICAgICAgICB1dGY4RW5jb2RlcjogY29uZmlnPy51dGY4RW5jb2RlciA/PyB1dGlsX3V0ZjhfMS50b1V0ZjgsXG4gICAgfTtcbn07XG5leHBvcnRzLmdldFJ1bnRpbWVDb25maWcgPSBnZXRSdW50aW1lQ29uZmlnO1xuIiwgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5nZXRSdW50aW1lQ29uZmlnID0gdm9pZCAwO1xuY29uc3QgdHNsaWJfMSA9IHJlcXVpcmUoXCJ0c2xpYlwiKTtcbmNvbnN0IHBhY2thZ2VfanNvbl8xID0gdHNsaWJfMS5fX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4uL3BhY2thZ2UuanNvblwiKSk7XG5jb25zdCBjb3JlXzEgPSByZXF1aXJlKFwiQGF3cy1zZGsvY29yZVwiKTtcbmNvbnN0IHV0aWxfdXNlcl9hZ2VudF9ub2RlXzEgPSByZXF1aXJlKFwiQGF3cy1zZGsvdXRpbC11c2VyLWFnZW50LW5vZGVcIik7XG5jb25zdCBjb25maWdfcmVzb2x2ZXJfMSA9IHJlcXVpcmUoXCJAc21pdGh5L2NvbmZpZy1yZXNvbHZlclwiKTtcbmNvbnN0IGhhc2hfbm9kZV8xID0gcmVxdWlyZShcIkBzbWl0aHkvaGFzaC1ub2RlXCIpO1xuY29uc3QgbWlkZGxld2FyZV9yZXRyeV8xID0gcmVxdWlyZShcIkBzbWl0aHkvbWlkZGxld2FyZS1yZXRyeVwiKTtcbmNvbnN0IG5vZGVfY29uZmlnX3Byb3ZpZGVyXzEgPSByZXF1aXJlKFwiQHNtaXRoeS9ub2RlLWNvbmZpZy1wcm92aWRlclwiKTtcbmNvbnN0IG5vZGVfaHR0cF9oYW5kbGVyXzEgPSByZXF1aXJlKFwiQHNtaXRoeS9ub2RlLWh0dHAtaGFuZGxlclwiKTtcbmNvbnN0IHNtaXRoeV9jbGllbnRfMSA9IHJlcXVpcmUoXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIik7XG5jb25zdCB1dGlsX2JvZHlfbGVuZ3RoX25vZGVfMSA9IHJlcXVpcmUoXCJAc21pdGh5L3V0aWwtYm9keS1sZW5ndGgtbm9kZVwiKTtcbmNvbnN0IHV0aWxfZGVmYXVsdHNfbW9kZV9ub2RlXzEgPSByZXF1aXJlKFwiQHNtaXRoeS91dGlsLWRlZmF1bHRzLW1vZGUtbm9kZVwiKTtcbmNvbnN0IHV0aWxfcmV0cnlfMSA9IHJlcXVpcmUoXCJAc21pdGh5L3V0aWwtcmV0cnlcIik7XG5jb25zdCBydW50aW1lQ29uZmlnX3NoYXJlZF8xID0gcmVxdWlyZShcIi4vcnVudGltZUNvbmZpZy5zaGFyZWRcIik7XG5jb25zdCBnZXRSdW50aW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgICgwLCBzbWl0aHlfY2xpZW50XzEuZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbikocHJvY2Vzcy52ZXJzaW9uKTtcbiAgICBjb25zdCBkZWZhdWx0c01vZGUgPSAoMCwgdXRpbF9kZWZhdWx0c19tb2RlX25vZGVfMS5yZXNvbHZlRGVmYXVsdHNNb2RlQ29uZmlnKShjb25maWcpO1xuICAgIGNvbnN0IGRlZmF1bHRDb25maWdQcm92aWRlciA9ICgpID0+IGRlZmF1bHRzTW9kZSgpLnRoZW4oc21pdGh5X2NsaWVudF8xLmxvYWRDb25maWdzRm9yRGVmYXVsdE1vZGUpO1xuICAgIGNvbnN0IGNsaWVudFNoYXJlZFZhbHVlcyA9ICgwLCBydW50aW1lQ29uZmlnX3NoYXJlZF8xLmdldFJ1bnRpbWVDb25maWcpKGNvbmZpZyk7XG4gICAgKDAsIGNvcmVfMS5lbWl0V2FybmluZ0lmVW5zdXBwb3J0ZWRWZXJzaW9uKShwcm9jZXNzLnZlcnNpb24pO1xuICAgIGNvbnN0IGxvYWRlckNvbmZpZyA9IHtcbiAgICAgICAgcHJvZmlsZTogY29uZmlnPy5wcm9maWxlLFxuICAgICAgICBsb2dnZXI6IGNsaWVudFNoYXJlZFZhbHVlcy5sb2dnZXIsXG4gICAgfTtcbiAgICByZXR1cm4ge1xuICAgICAgICAuLi5jbGllbnRTaGFyZWRWYWx1ZXMsXG4gICAgICAgIC4uLmNvbmZpZyxcbiAgICAgICAgcnVudGltZTogXCJub2RlXCIsXG4gICAgICAgIGRlZmF1bHRzTW9kZSxcbiAgICAgICAgYXV0aFNjaGVtZVByZWZlcmVuY2U6IGNvbmZpZz8uYXV0aFNjaGVtZVByZWZlcmVuY2UgPz8gKDAsIG5vZGVfY29uZmlnX3Byb3ZpZGVyXzEubG9hZENvbmZpZykoY29yZV8xLk5PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgICAgICBib2R5TGVuZ3RoQ2hlY2tlcjogY29uZmlnPy5ib2R5TGVuZ3RoQ2hlY2tlciA/PyB1dGlsX2JvZHlfbGVuZ3RoX25vZGVfMS5jYWxjdWxhdGVCb2R5TGVuZ3RoLFxuICAgICAgICBkZWZhdWx0VXNlckFnZW50UHJvdmlkZXI6IGNvbmZpZz8uZGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyID8/XG4gICAgICAgICAgICAoMCwgdXRpbF91c2VyX2FnZW50X25vZGVfMS5jcmVhdGVEZWZhdWx0VXNlckFnZW50UHJvdmlkZXIpKHsgc2VydmljZUlkOiBjbGllbnRTaGFyZWRWYWx1ZXMuc2VydmljZUlkLCBjbGllbnRWZXJzaW9uOiBwYWNrYWdlX2pzb25fMS5kZWZhdWx0LnZlcnNpb24gfSksXG4gICAgICAgIG1heEF0dGVtcHRzOiBjb25maWc/Lm1heEF0dGVtcHRzID8/ICgwLCBub2RlX2NvbmZpZ19wcm92aWRlcl8xLmxvYWRDb25maWcpKG1pZGRsZXdhcmVfcmV0cnlfMS5OT0RFX01BWF9BVFRFTVBUX0NPTkZJR19PUFRJT05TLCBjb25maWcpLFxuICAgICAgICByZWdpb246IGNvbmZpZz8ucmVnaW9uID8/XG4gICAgICAgICAgICAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKShjb25maWdfcmVzb2x2ZXJfMS5OT0RFX1JFR0lPTl9DT05GSUdfT1BUSU9OUywgeyAuLi5jb25maWdfcmVzb2x2ZXJfMS5OT0RFX1JFR0lPTl9DT05GSUdfRklMRV9PUFRJT05TLCAuLi5sb2FkZXJDb25maWcgfSksXG4gICAgICAgIHJlcXVlc3RIYW5kbGVyOiBub2RlX2h0dHBfaGFuZGxlcl8xLk5vZGVIdHRwSGFuZGxlci5jcmVhdGUoY29uZmlnPy5yZXF1ZXN0SGFuZGxlciA/PyBkZWZhdWx0Q29uZmlnUHJvdmlkZXIpLFxuICAgICAgICByZXRyeU1vZGU6IGNvbmZpZz8ucmV0cnlNb2RlID8/XG4gICAgICAgICAgICAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKSh7XG4gICAgICAgICAgICAgICAgLi4ubWlkZGxld2FyZV9yZXRyeV8xLk5PREVfUkVUUllfTU9ERV9DT05GSUdfT1BUSU9OUyxcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiBhc3luYyAoKSA9PiAoYXdhaXQgZGVmYXVsdENvbmZpZ1Byb3ZpZGVyKCkpLnJldHJ5TW9kZSB8fCB1dGlsX3JldHJ5XzEuREVGQVVMVF9SRVRSWV9NT0RFLFxuICAgICAgICAgICAgfSwgY29uZmlnKSxcbiAgICAgICAgc2hhMjU2OiBjb25maWc/LnNoYTI1NiA/PyBoYXNoX25vZGVfMS5IYXNoLmJpbmQobnVsbCwgXCJzaGEyNTZcIiksXG4gICAgICAgIHN0cmVhbUNvbGxlY3RvcjogY29uZmlnPy5zdHJlYW1Db2xsZWN0b3IgPz8gbm9kZV9odHRwX2hhbmRsZXJfMS5zdHJlYW1Db2xsZWN0b3IsXG4gICAgICAgIHVzZUR1YWxzdGFja0VuZHBvaW50OiBjb25maWc/LnVzZUR1YWxzdGFja0VuZHBvaW50ID8/ICgwLCBub2RlX2NvbmZpZ19wcm92aWRlcl8xLmxvYWRDb25maWcpKGNvbmZpZ19yZXNvbHZlcl8xLk5PREVfVVNFX0RVQUxTVEFDS19FTkRQT0lOVF9DT05GSUdfT1BUSU9OUywgbG9hZGVyQ29uZmlnKSxcbiAgICAgICAgdXNlRmlwc0VuZHBvaW50OiBjb25maWc/LnVzZUZpcHNFbmRwb2ludCA/PyAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKShjb25maWdfcmVzb2x2ZXJfMS5OT0RFX1VTRV9GSVBTX0VORFBPSU5UX0NPTkZJR19PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgICAgICB1c2VyQWdlbnRBcHBJZDogY29uZmlnPy51c2VyQWdlbnRBcHBJZCA/PyAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKSh1dGlsX3VzZXJfYWdlbnRfbm9kZV8xLk5PREVfQVBQX0lEX0NPTkZJR19PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgIH07XG59O1xuZXhwb3J0cy5nZXRSdW50aW1lQ29uZmlnID0gZ2V0UnVudGltZUNvbmZpZztcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBtaWRkbGV3YXJlSG9zdEhlYWRlciA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL21pZGRsZXdhcmUtaG9zdC1oZWFkZXInKTtcbnZhciBtaWRkbGV3YXJlTG9nZ2VyID0gcmVxdWlyZSgnQGF3cy1zZGsvbWlkZGxld2FyZS1sb2dnZXInKTtcbnZhciBtaWRkbGV3YXJlUmVjdXJzaW9uRGV0ZWN0aW9uID0gcmVxdWlyZSgnQGF3cy1zZGsvbWlkZGxld2FyZS1yZWN1cnNpb24tZGV0ZWN0aW9uJyk7XG52YXIgbWlkZGxld2FyZVVzZXJBZ2VudCA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL21pZGRsZXdhcmUtdXNlci1hZ2VudCcpO1xudmFyIGNvbmZpZ1Jlc29sdmVyID0gcmVxdWlyZSgnQHNtaXRoeS9jb25maWctcmVzb2x2ZXInKTtcbnZhciBjb3JlID0gcmVxdWlyZSgnQHNtaXRoeS9jb3JlJyk7XG52YXIgc2NoZW1hID0gcmVxdWlyZSgnQHNtaXRoeS9jb3JlL3NjaGVtYScpO1xudmFyIG1pZGRsZXdhcmVDb250ZW50TGVuZ3RoID0gcmVxdWlyZSgnQHNtaXRoeS9taWRkbGV3YXJlLWNvbnRlbnQtbGVuZ3RoJyk7XG52YXIgbWlkZGxld2FyZUVuZHBvaW50ID0gcmVxdWlyZSgnQHNtaXRoeS9taWRkbGV3YXJlLWVuZHBvaW50Jyk7XG52YXIgbWlkZGxld2FyZVJldHJ5ID0gcmVxdWlyZSgnQHNtaXRoeS9taWRkbGV3YXJlLXJldHJ5Jyk7XG52YXIgc21pdGh5Q2xpZW50ID0gcmVxdWlyZSgnQHNtaXRoeS9zbWl0aHktY2xpZW50Jyk7XG52YXIgaHR0cEF1dGhTY2hlbWVQcm92aWRlciA9IHJlcXVpcmUoJy4vYXV0aC9odHRwQXV0aFNjaGVtZVByb3ZpZGVyJyk7XG52YXIgcnVudGltZUNvbmZpZyA9IHJlcXVpcmUoJy4vcnVudGltZUNvbmZpZycpO1xudmFyIHJlZ2lvbkNvbmZpZ1Jlc29sdmVyID0gcmVxdWlyZSgnQGF3cy1zZGsvcmVnaW9uLWNvbmZpZy1yZXNvbHZlcicpO1xudmFyIHByb3RvY29sSHR0cCA9IHJlcXVpcmUoJ0BzbWl0aHkvcHJvdG9jb2wtaHR0cCcpO1xuXG5jb25zdCByZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzID0gKG9wdGlvbnMpID0+IHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihvcHRpb25zLCB7XG4gICAgICAgIHVzZUR1YWxzdGFja0VuZHBvaW50OiBvcHRpb25zLnVzZUR1YWxzdGFja0VuZHBvaW50ID8/IGZhbHNlLFxuICAgICAgICB1c2VGaXBzRW5kcG9pbnQ6IG9wdGlvbnMudXNlRmlwc0VuZHBvaW50ID8/IGZhbHNlLFxuICAgICAgICBkZWZhdWx0U2lnbmluZ05hbWU6IFwiYXdzc3NvcG9ydGFsXCIsXG4gICAgfSk7XG59O1xuY29uc3QgY29tbW9uUGFyYW1zID0ge1xuICAgIFVzZUZJUFM6IHsgdHlwZTogXCJidWlsdEluUGFyYW1zXCIsIG5hbWU6IFwidXNlRmlwc0VuZHBvaW50XCIgfSxcbiAgICBFbmRwb2ludDogeyB0eXBlOiBcImJ1aWx0SW5QYXJhbXNcIiwgbmFtZTogXCJlbmRwb2ludFwiIH0sXG4gICAgUmVnaW9uOiB7IHR5cGU6IFwiYnVpbHRJblBhcmFtc1wiLCBuYW1lOiBcInJlZ2lvblwiIH0sXG4gICAgVXNlRHVhbFN0YWNrOiB7IHR5cGU6IFwiYnVpbHRJblBhcmFtc1wiLCBuYW1lOiBcInVzZUR1YWxzdGFja0VuZHBvaW50XCIgfSxcbn07XG5cbmNvbnN0IGdldEh0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiA9IChydW50aW1lQ29uZmlnKSA9PiB7XG4gICAgY29uc3QgX2h0dHBBdXRoU2NoZW1lcyA9IHJ1bnRpbWVDb25maWcuaHR0cEF1dGhTY2hlbWVzO1xuICAgIGxldCBfaHR0cEF1dGhTY2hlbWVQcm92aWRlciA9IHJ1bnRpbWVDb25maWcuaHR0cEF1dGhTY2hlbWVQcm92aWRlcjtcbiAgICBsZXQgX2NyZWRlbnRpYWxzID0gcnVudGltZUNvbmZpZy5jcmVkZW50aWFscztcbiAgICByZXR1cm4ge1xuICAgICAgICBzZXRIdHRwQXV0aFNjaGVtZShodHRwQXV0aFNjaGVtZSkge1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSBfaHR0cEF1dGhTY2hlbWVzLmZpbmRJbmRleCgoc2NoZW1lKSA9PiBzY2hlbWUuc2NoZW1lSWQgPT09IGh0dHBBdXRoU2NoZW1lLnNjaGVtZUlkKTtcbiAgICAgICAgICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICBfaHR0cEF1dGhTY2hlbWVzLnB1c2goaHR0cEF1dGhTY2hlbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgX2h0dHBBdXRoU2NoZW1lcy5zcGxpY2UoaW5kZXgsIDEsIGh0dHBBdXRoU2NoZW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVzKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9odHRwQXV0aFNjaGVtZXM7XG4gICAgICAgIH0sXG4gICAgICAgIHNldEh0dHBBdXRoU2NoZW1lUHJvdmlkZXIoaHR0cEF1dGhTY2hlbWVQcm92aWRlcikge1xuICAgICAgICAgICAgX2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSBodHRwQXV0aFNjaGVtZVByb3ZpZGVyO1xuICAgICAgICB9LFxuICAgICAgICBodHRwQXV0aFNjaGVtZVByb3ZpZGVyKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9odHRwQXV0aFNjaGVtZVByb3ZpZGVyO1xuICAgICAgICB9LFxuICAgICAgICBzZXRDcmVkZW50aWFscyhjcmVkZW50aWFscykge1xuICAgICAgICAgICAgX2NyZWRlbnRpYWxzID0gY3JlZGVudGlhbHM7XG4gICAgICAgIH0sXG4gICAgICAgIGNyZWRlbnRpYWxzKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9jcmVkZW50aWFscztcbiAgICAgICAgfSxcbiAgICB9O1xufTtcbmNvbnN0IHJlc29sdmVIdHRwQXV0aFJ1bnRpbWVDb25maWcgPSAoY29uZmlnKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVzOiBjb25maWcuaHR0cEF1dGhTY2hlbWVzKCksXG4gICAgICAgIGh0dHBBdXRoU2NoZW1lUHJvdmlkZXI6IGNvbmZpZy5odHRwQXV0aFNjaGVtZVByb3ZpZGVyKCksXG4gICAgICAgIGNyZWRlbnRpYWxzOiBjb25maWcuY3JlZGVudGlhbHMoKSxcbiAgICB9O1xufTtcblxuY29uc3QgcmVzb2x2ZVJ1bnRpbWVFeHRlbnNpb25zID0gKHJ1bnRpbWVDb25maWcsIGV4dGVuc2lvbnMpID0+IHtcbiAgICBjb25zdCBleHRlbnNpb25Db25maWd1cmF0aW9uID0gT2JqZWN0LmFzc2lnbihyZWdpb25Db25maWdSZXNvbHZlci5nZXRBd3NSZWdpb25FeHRlbnNpb25Db25maWd1cmF0aW9uKHJ1bnRpbWVDb25maWcpLCBzbWl0aHlDbGllbnQuZ2V0RGVmYXVsdEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24ocnVudGltZUNvbmZpZyksIHByb3RvY29sSHR0cC5nZXRIdHRwSGFuZGxlckV4dGVuc2lvbkNvbmZpZ3VyYXRpb24ocnVudGltZUNvbmZpZyksIGdldEh0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbihydW50aW1lQ29uZmlnKSk7XG4gICAgZXh0ZW5zaW9ucy5mb3JFYWNoKChleHRlbnNpb24pID0+IGV4dGVuc2lvbi5jb25maWd1cmUoZXh0ZW5zaW9uQ29uZmlndXJhdGlvbikpO1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHJ1bnRpbWVDb25maWcsIHJlZ2lvbkNvbmZpZ1Jlc29sdmVyLnJlc29sdmVBd3NSZWdpb25FeHRlbnNpb25Db25maWd1cmF0aW9uKGV4dGVuc2lvbkNvbmZpZ3VyYXRpb24pLCBzbWl0aHlDbGllbnQucmVzb2x2ZURlZmF1bHRSdW50aW1lQ29uZmlnKGV4dGVuc2lvbkNvbmZpZ3VyYXRpb24pLCBwcm90b2NvbEh0dHAucmVzb2x2ZUh0dHBIYW5kbGVyUnVudGltZUNvbmZpZyhleHRlbnNpb25Db25maWd1cmF0aW9uKSwgcmVzb2x2ZUh0dHBBdXRoUnVudGltZUNvbmZpZyhleHRlbnNpb25Db25maWd1cmF0aW9uKSk7XG59O1xuXG5jbGFzcyBTU09DbGllbnQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ2xpZW50IHtcbiAgICBjb25maWc7XG4gICAgY29uc3RydWN0b3IoLi4uW2NvbmZpZ3VyYXRpb25dKSB7XG4gICAgICAgIGNvbnN0IF9jb25maWdfMCA9IHJ1bnRpbWVDb25maWcuZ2V0UnVudGltZUNvbmZpZyhjb25maWd1cmF0aW9uIHx8IHt9KTtcbiAgICAgICAgc3VwZXIoX2NvbmZpZ18wKTtcbiAgICAgICAgdGhpcy5pbml0Q29uZmlnID0gX2NvbmZpZ18wO1xuICAgICAgICBjb25zdCBfY29uZmlnXzEgPSByZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzKF9jb25maWdfMCk7XG4gICAgICAgIGNvbnN0IF9jb25maWdfMiA9IG1pZGRsZXdhcmVVc2VyQWdlbnQucmVzb2x2ZVVzZXJBZ2VudENvbmZpZyhfY29uZmlnXzEpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzMgPSBtaWRkbGV3YXJlUmV0cnkucmVzb2x2ZVJldHJ5Q29uZmlnKF9jb25maWdfMik7XG4gICAgICAgIGNvbnN0IF9jb25maWdfNCA9IGNvbmZpZ1Jlc29sdmVyLnJlc29sdmVSZWdpb25Db25maWcoX2NvbmZpZ18zKTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ181ID0gbWlkZGxld2FyZUhvc3RIZWFkZXIucmVzb2x2ZUhvc3RIZWFkZXJDb25maWcoX2NvbmZpZ180KTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ182ID0gbWlkZGxld2FyZUVuZHBvaW50LnJlc29sdmVFbmRwb2ludENvbmZpZyhfY29uZmlnXzUpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzcgPSBodHRwQXV0aFNjaGVtZVByb3ZpZGVyLnJlc29sdmVIdHRwQXV0aFNjaGVtZUNvbmZpZyhfY29uZmlnXzYpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzggPSByZXNvbHZlUnVudGltZUV4dGVuc2lvbnMoX2NvbmZpZ183LCBjb25maWd1cmF0aW9uPy5leHRlbnNpb25zIHx8IFtdKTtcbiAgICAgICAgdGhpcy5jb25maWcgPSBfY29uZmlnXzg7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShzY2hlbWEuZ2V0U2NoZW1hU2VyZGVQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKG1pZGRsZXdhcmVVc2VyQWdlbnQuZ2V0VXNlckFnZW50UGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShtaWRkbGV3YXJlUmV0cnkuZ2V0UmV0cnlQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKG1pZGRsZXdhcmVDb250ZW50TGVuZ3RoLmdldENvbnRlbnRMZW5ndGhQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKG1pZGRsZXdhcmVIb3N0SGVhZGVyLmdldEhvc3RIZWFkZXJQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKG1pZGRsZXdhcmVMb2dnZXIuZ2V0TG9nZ2VyUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShtaWRkbGV3YXJlUmVjdXJzaW9uRGV0ZWN0aW9uLmdldFJlY3Vyc2lvbkRldGVjdGlvblBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoY29yZS5nZXRIdHRwQXV0aFNjaGVtZUVuZHBvaW50UnVsZVNldFBsdWdpbih0aGlzLmNvbmZpZywge1xuICAgICAgICAgICAgaHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXI6IGh0dHBBdXRoU2NoZW1lUHJvdmlkZXIuZGVmYXVsdFNTT0h0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyLFxuICAgICAgICAgICAgaWRlbnRpdHlQcm92aWRlckNvbmZpZ1Byb3ZpZGVyOiBhc3luYyAoY29uZmlnKSA9PiBuZXcgY29yZS5EZWZhdWx0SWRlbnRpdHlQcm92aWRlckNvbmZpZyh7XG4gICAgICAgICAgICAgICAgXCJhd3MuYXV0aCNzaWd2NFwiOiBjb25maWcuY3JlZGVudGlhbHMsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgfSkpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoY29yZS5nZXRIdHRwU2lnbmluZ1BsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgIH1cbiAgICBkZXN0cm95KCkge1xuICAgICAgICBzdXBlci5kZXN0cm95KCk7XG4gICAgfVxufVxuXG5sZXQgU1NPU2VydmljZUV4Y2VwdGlvbiQxID0gY2xhc3MgU1NPU2VydmljZUV4Y2VwdGlvbiBleHRlbmRzIHNtaXRoeUNsaWVudC5TZXJ2aWNlRXhjZXB0aW9uIHtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgU1NPU2VydmljZUV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn07XG5cbmxldCBJbnZhbGlkUmVxdWVzdEV4Y2VwdGlvbiQxID0gY2xhc3MgSW52YWxpZFJlcXVlc3RFeGNlcHRpb24gZXh0ZW5kcyBTU09TZXJ2aWNlRXhjZXB0aW9uJDEge1xuICAgIG5hbWUgPSBcIkludmFsaWRSZXF1ZXN0RXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiSW52YWxpZFJlcXVlc3RFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgSW52YWxpZFJlcXVlc3RFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59O1xubGV0IFJlc291cmNlTm90Rm91bmRFeGNlcHRpb24kMSA9IGNsYXNzIFJlc291cmNlTm90Rm91bmRFeGNlcHRpb24gZXh0ZW5kcyBTU09TZXJ2aWNlRXhjZXB0aW9uJDEge1xuICAgIG5hbWUgPSBcIlJlc291cmNlTm90Rm91bmRFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFJlc291cmNlTm90Rm91bmRFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59O1xubGV0IFRvb01hbnlSZXF1ZXN0c0V4Y2VwdGlvbiQxID0gY2xhc3MgVG9vTWFueVJlcXVlc3RzRXhjZXB0aW9uIGV4dGVuZHMgU1NPU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJUb29NYW55UmVxdWVzdHNFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJUb29NYW55UmVxdWVzdHNFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgVG9vTWFueVJlcXVlc3RzRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgfVxufTtcbmxldCBVbmF1dGhvcml6ZWRFeGNlcHRpb24kMSA9IGNsYXNzIFVuYXV0aG9yaXplZEV4Y2VwdGlvbiBleHRlbmRzIFNTT1NlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiVW5hdXRob3JpemVkRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiVW5hdXRob3JpemVkRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFVuYXV0aG9yaXplZEV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn07XG5cbmNvbnN0IF9BSSA9IFwiQWNjb3VudEluZm9cIjtcbmNvbnN0IF9BTFQgPSBcIkFjY291bnRMaXN0VHlwZVwiO1xuY29uc3QgX0FUVCA9IFwiQWNjZXNzVG9rZW5UeXBlXCI7XG5jb25zdCBfR1JDID0gXCJHZXRSb2xlQ3JlZGVudGlhbHNcIjtcbmNvbnN0IF9HUkNSID0gXCJHZXRSb2xlQ3JlZGVudGlhbHNSZXF1ZXN0XCI7XG5jb25zdCBfR1JDUmUgPSBcIkdldFJvbGVDcmVkZW50aWFsc1Jlc3BvbnNlXCI7XG5jb25zdCBfSVJFID0gXCJJbnZhbGlkUmVxdWVzdEV4Y2VwdGlvblwiO1xuY29uc3QgX0wgPSBcIkxvZ291dFwiO1xuY29uc3QgX0xBID0gXCJMaXN0QWNjb3VudHNcIjtcbmNvbnN0IF9MQVIgPSBcIkxpc3RBY2NvdW50c1JlcXVlc3RcIjtcbmNvbnN0IF9MQVJSID0gXCJMaXN0QWNjb3VudFJvbGVzUmVxdWVzdFwiO1xuY29uc3QgX0xBUlJpID0gXCJMaXN0QWNjb3VudFJvbGVzUmVzcG9uc2VcIjtcbmNvbnN0IF9MQVJpID0gXCJMaXN0QWNjb3VudHNSZXNwb25zZVwiO1xuY29uc3QgX0xBUmlzID0gXCJMaXN0QWNjb3VudFJvbGVzXCI7XG5jb25zdCBfTFIgPSBcIkxvZ291dFJlcXVlc3RcIjtcbmNvbnN0IF9SQyA9IFwiUm9sZUNyZWRlbnRpYWxzXCI7XG5jb25zdCBfUkkgPSBcIlJvbGVJbmZvXCI7XG5jb25zdCBfUkxUID0gXCJSb2xlTGlzdFR5cGVcIjtcbmNvbnN0IF9STkZFID0gXCJSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uXCI7XG5jb25zdCBfU0FLVCA9IFwiU2VjcmV0QWNjZXNzS2V5VHlwZVwiO1xuY29uc3QgX1NUVCA9IFwiU2Vzc2lvblRva2VuVHlwZVwiO1xuY29uc3QgX1RNUkUgPSBcIlRvb01hbnlSZXF1ZXN0c0V4Y2VwdGlvblwiO1xuY29uc3QgX1VFID0gXCJVbmF1dGhvcml6ZWRFeGNlcHRpb25cIjtcbmNvbnN0IF9hSSA9IFwiYWNjb3VudElkXCI7XG5jb25zdCBfYUtJID0gXCJhY2Nlc3NLZXlJZFwiO1xuY29uc3QgX2FMID0gXCJhY2NvdW50TGlzdFwiO1xuY29uc3QgX2FOID0gXCJhY2NvdW50TmFtZVwiO1xuY29uc3QgX2FUID0gXCJhY2Nlc3NUb2tlblwiO1xuY29uc3QgX2FpID0gXCJhY2NvdW50X2lkXCI7XG5jb25zdCBfYyA9IFwiY2xpZW50XCI7XG5jb25zdCBfZSA9IFwiZXJyb3JcIjtcbmNvbnN0IF9lQSA9IFwiZW1haWxBZGRyZXNzXCI7XG5jb25zdCBfZXggPSBcImV4cGlyYXRpb25cIjtcbmNvbnN0IF9oID0gXCJodHRwXCI7XG5jb25zdCBfaEUgPSBcImh0dHBFcnJvclwiO1xuY29uc3QgX2hIID0gXCJodHRwSGVhZGVyXCI7XG5jb25zdCBfaFEgPSBcImh0dHBRdWVyeVwiO1xuY29uc3QgX20gPSBcIm1lc3NhZ2VcIjtcbmNvbnN0IF9tUiA9IFwibWF4UmVzdWx0c1wiO1xuY29uc3QgX21yID0gXCJtYXhfcmVzdWx0XCI7XG5jb25zdCBfblQgPSBcIm5leHRUb2tlblwiO1xuY29uc3QgX250ID0gXCJuZXh0X3Rva2VuXCI7XG5jb25zdCBfckMgPSBcInJvbGVDcmVkZW50aWFsc1wiO1xuY29uc3QgX3JMID0gXCJyb2xlTGlzdFwiO1xuY29uc3QgX3JOID0gXCJyb2xlTmFtZVwiO1xuY29uc3QgX3JuID0gXCJyb2xlX25hbWVcIjtcbmNvbnN0IF9zID0gXCJzbWl0aHkudHMuc2RrLnN5bnRoZXRpYy5jb20uYW1hem9uYXdzLnNzb1wiO1xuY29uc3QgX3NBSyA9IFwic2VjcmV0QWNjZXNzS2V5XCI7XG5jb25zdCBfc1QgPSBcInNlc3Npb25Ub2tlblwiO1xuY29uc3QgX3hhc2J0ID0gXCJ4LWFtei1zc29fYmVhcmVyX3Rva2VuXCI7XG5jb25zdCBuMCA9IFwiY29tLmFtYXpvbmF3cy5zc29cIjtcbnZhciBBY2Nlc3NUb2tlblR5cGUgPSBbMCwgbjAsIF9BVFQsIDgsIDBdO1xudmFyIFNlY3JldEFjY2Vzc0tleVR5cGUgPSBbMCwgbjAsIF9TQUtULCA4LCAwXTtcbnZhciBTZXNzaW9uVG9rZW5UeXBlID0gWzAsIG4wLCBfU1RULCA4LCAwXTtcbnZhciBBY2NvdW50SW5mbyA9IFszLCBuMCwgX0FJLCAwLCBbX2FJLCBfYU4sIF9lQV0sIFswLCAwLCAwXV07XG52YXIgR2V0Um9sZUNyZWRlbnRpYWxzUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HUkNSLFxuICAgIDAsXG4gICAgW19yTiwgX2FJLCBfYVRdLFxuICAgIFtcbiAgICAgICAgWzAsIHsgW19oUV06IF9ybiB9XSxcbiAgICAgICAgWzAsIHsgW19oUV06IF9haSB9XSxcbiAgICAgICAgWygpID0+IEFjY2Vzc1Rva2VuVHlwZSwgeyBbX2hIXTogX3hhc2J0IH1dLFxuICAgIF0sXG5dO1xudmFyIEdldFJvbGVDcmVkZW50aWFsc1Jlc3BvbnNlID0gWzMsIG4wLCBfR1JDUmUsIDAsIFtfckNdLCBbWygpID0+IFJvbGVDcmVkZW50aWFscywgMF1dXTtcbnZhciBJbnZhbGlkUmVxdWVzdEV4Y2VwdGlvbiA9IFstMywgbjAsIF9JUkUsIHsgW19lXTogX2MsIFtfaEVdOiA0MDAgfSwgW19tXSwgWzBdXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKEludmFsaWRSZXF1ZXN0RXhjZXB0aW9uLCBJbnZhbGlkUmVxdWVzdEV4Y2VwdGlvbiQxKTtcbnZhciBMaXN0QWNjb3VudFJvbGVzUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9MQVJSLFxuICAgIDAsXG4gICAgW19uVCwgX21SLCBfYVQsIF9hSV0sXG4gICAgW1xuICAgICAgICBbMCwgeyBbX2hRXTogX250IH1dLFxuICAgICAgICBbMSwgeyBbX2hRXTogX21yIH1dLFxuICAgICAgICBbKCkgPT4gQWNjZXNzVG9rZW5UeXBlLCB7IFtfaEhdOiBfeGFzYnQgfV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfYWkgfV0sXG4gICAgXSxcbl07XG52YXIgTGlzdEFjY291bnRSb2xlc1Jlc3BvbnNlID0gWzMsIG4wLCBfTEFSUmksIDAsIFtfblQsIF9yTF0sIFswLCAoKSA9PiBSb2xlTGlzdFR5cGVdXTtcbnZhciBMaXN0QWNjb3VudHNSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0xBUixcbiAgICAwLFxuICAgIFtfblQsIF9tUiwgX2FUXSxcbiAgICBbXG4gICAgICAgIFswLCB7IFtfaFFdOiBfbnQgfV0sXG4gICAgICAgIFsxLCB7IFtfaFFdOiBfbXIgfV0sXG4gICAgICAgIFsoKSA9PiBBY2Nlc3NUb2tlblR5cGUsIHsgW19oSF06IF94YXNidCB9XSxcbiAgICBdLFxuXTtcbnZhciBMaXN0QWNjb3VudHNSZXNwb25zZSA9IFszLCBuMCwgX0xBUmksIDAsIFtfblQsIF9hTF0sIFswLCAoKSA9PiBBY2NvdW50TGlzdFR5cGVdXTtcbnZhciBMb2dvdXRSZXF1ZXN0ID0gWzMsIG4wLCBfTFIsIDAsIFtfYVRdLCBbWygpID0+IEFjY2Vzc1Rva2VuVHlwZSwgeyBbX2hIXTogX3hhc2J0IH1dXV07XG52YXIgUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvbiA9IFstMywgbjAsIF9STkZFLCB7IFtfZV06IF9jLCBbX2hFXTogNDA0IH0sIFtfbV0sIFswXV07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uLCBSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uJDEpO1xudmFyIFJvbGVDcmVkZW50aWFscyA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9SQyxcbiAgICAwLFxuICAgIFtfYUtJLCBfc0FLLCBfc1QsIF9leF0sXG4gICAgWzAsIFsoKSA9PiBTZWNyZXRBY2Nlc3NLZXlUeXBlLCAwXSwgWygpID0+IFNlc3Npb25Ub2tlblR5cGUsIDBdLCAxXSxcbl07XG52YXIgUm9sZUluZm8gPSBbMywgbjAsIF9SSSwgMCwgW19yTiwgX2FJXSwgWzAsIDBdXTtcbnZhciBUb29NYW55UmVxdWVzdHNFeGNlcHRpb24gPSBbLTMsIG4wLCBfVE1SRSwgeyBbX2VdOiBfYywgW19oRV06IDQyOSB9LCBbX21dLCBbMF1dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoVG9vTWFueVJlcXVlc3RzRXhjZXB0aW9uLCBUb29NYW55UmVxdWVzdHNFeGNlcHRpb24kMSk7XG52YXIgVW5hdXRob3JpemVkRXhjZXB0aW9uID0gWy0zLCBuMCwgX1VFLCB7IFtfZV06IF9jLCBbX2hFXTogNDAxIH0sIFtfbV0sIFswXV07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihVbmF1dGhvcml6ZWRFeGNlcHRpb24sIFVuYXV0aG9yaXplZEV4Y2VwdGlvbiQxKTtcbnZhciBfX1VuaXQgPSBcInVuaXRcIjtcbnZhciBTU09TZXJ2aWNlRXhjZXB0aW9uID0gWy0zLCBfcywgXCJTU09TZXJ2aWNlRXhjZXB0aW9uXCIsIDAsIFtdLCBbXV07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihfcykucmVnaXN0ZXJFcnJvcihTU09TZXJ2aWNlRXhjZXB0aW9uLCBTU09TZXJ2aWNlRXhjZXB0aW9uJDEpO1xudmFyIEFjY291bnRMaXN0VHlwZSA9IFsxLCBuMCwgX0FMVCwgMCwgKCkgPT4gQWNjb3VudEluZm9dO1xudmFyIFJvbGVMaXN0VHlwZSA9IFsxLCBuMCwgX1JMVCwgMCwgKCkgPT4gUm9sZUluZm9dO1xudmFyIEdldFJvbGVDcmVkZW50aWFscyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9HUkMsXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIvZmVkZXJhdGlvbi9jcmVkZW50aWFsc1wiLCAyMDBdIH0sXG4gICAgKCkgPT4gR2V0Um9sZUNyZWRlbnRpYWxzUmVxdWVzdCxcbiAgICAoKSA9PiBHZXRSb2xlQ3JlZGVudGlhbHNSZXNwb25zZSxcbl07XG52YXIgTGlzdEFjY291bnRSb2xlcyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9MQVJpcyxcbiAgICB7IFtfaF06IFtcIkdFVFwiLCBcIi9hc3NpZ25tZW50L3JvbGVzXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBMaXN0QWNjb3VudFJvbGVzUmVxdWVzdCxcbiAgICAoKSA9PiBMaXN0QWNjb3VudFJvbGVzUmVzcG9uc2UsXG5dO1xudmFyIExpc3RBY2NvdW50cyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9MQSxcbiAgICB7IFtfaF06IFtcIkdFVFwiLCBcIi9hc3NpZ25tZW50L2FjY291bnRzXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBMaXN0QWNjb3VudHNSZXF1ZXN0LFxuICAgICgpID0+IExpc3RBY2NvdW50c1Jlc3BvbnNlLFxuXTtcbnZhciBMb2dvdXQgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfTCxcbiAgICB7IFtfaF06IFtcIlBPU1RcIiwgXCIvbG9nb3V0XCIsIDIwMF0gfSxcbiAgICAoKSA9PiBMb2dvdXRSZXF1ZXN0LFxuICAgICgpID0+IF9fVW5pdCxcbl07XG5cbmNsYXNzIEdldFJvbGVDcmVkZW50aWFsc0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIlNXQlBvcnRhbFNlcnZpY2VcIiwgXCJHZXRSb2xlQ3JlZGVudGlhbHNcIiwge30pXG4gICAgLm4oXCJTU09DbGllbnRcIiwgXCJHZXRSb2xlQ3JlZGVudGlhbHNDb21tYW5kXCIpXG4gICAgLnNjKEdldFJvbGVDcmVkZW50aWFscylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIExpc3RBY2NvdW50Um9sZXNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJTV0JQb3J0YWxTZXJ2aWNlXCIsIFwiTGlzdEFjY291bnRSb2xlc1wiLCB7fSlcbiAgICAubihcIlNTT0NsaWVudFwiLCBcIkxpc3RBY2NvdW50Um9sZXNDb21tYW5kXCIpXG4gICAgLnNjKExpc3RBY2NvdW50Um9sZXMpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBMaXN0QWNjb3VudHNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJTV0JQb3J0YWxTZXJ2aWNlXCIsIFwiTGlzdEFjY291bnRzXCIsIHt9KVxuICAgIC5uKFwiU1NPQ2xpZW50XCIsIFwiTGlzdEFjY291bnRzQ29tbWFuZFwiKVxuICAgIC5zYyhMaXN0QWNjb3VudHMpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBMb2dvdXRDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJTV0JQb3J0YWxTZXJ2aWNlXCIsIFwiTG9nb3V0XCIsIHt9KVxuICAgIC5uKFwiU1NPQ2xpZW50XCIsIFwiTG9nb3V0Q29tbWFuZFwiKVxuICAgIC5zYyhMb2dvdXQpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jb25zdCBjb21tYW5kcyA9IHtcbiAgICBHZXRSb2xlQ3JlZGVudGlhbHNDb21tYW5kLFxuICAgIExpc3RBY2NvdW50Um9sZXNDb21tYW5kLFxuICAgIExpc3RBY2NvdW50c0NvbW1hbmQsXG4gICAgTG9nb3V0Q29tbWFuZCxcbn07XG5jbGFzcyBTU08gZXh0ZW5kcyBTU09DbGllbnQge1xufVxuc21pdGh5Q2xpZW50LmNyZWF0ZUFnZ3JlZ2F0ZWRDbGllbnQoY29tbWFuZHMsIFNTTyk7XG5cbmNvbnN0IHBhZ2luYXRlTGlzdEFjY291bnRSb2xlcyA9IGNvcmUuY3JlYXRlUGFnaW5hdG9yKFNTT0NsaWVudCwgTGlzdEFjY291bnRSb2xlc0NvbW1hbmQsIFwibmV4dFRva2VuXCIsIFwibmV4dFRva2VuXCIsIFwibWF4UmVzdWx0c1wiKTtcblxuY29uc3QgcGFnaW5hdGVMaXN0QWNjb3VudHMgPSBjb3JlLmNyZWF0ZVBhZ2luYXRvcihTU09DbGllbnQsIExpc3RBY2NvdW50c0NvbW1hbmQsIFwibmV4dFRva2VuXCIsIFwibmV4dFRva2VuXCIsIFwibWF4UmVzdWx0c1wiKTtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiJENvbW1hbmRcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBzbWl0aHlDbGllbnQuQ29tbWFuZDsgfVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX0NsaWVudFwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHNtaXRoeUNsaWVudC5DbGllbnQ7IH1cbn0pO1xuZXhwb3J0cy5HZXRSb2xlQ3JlZGVudGlhbHNDb21tYW5kID0gR2V0Um9sZUNyZWRlbnRpYWxzQ29tbWFuZDtcbmV4cG9ydHMuSW52YWxpZFJlcXVlc3RFeGNlcHRpb24gPSBJbnZhbGlkUmVxdWVzdEV4Y2VwdGlvbiQxO1xuZXhwb3J0cy5MaXN0QWNjb3VudFJvbGVzQ29tbWFuZCA9IExpc3RBY2NvdW50Um9sZXNDb21tYW5kO1xuZXhwb3J0cy5MaXN0QWNjb3VudHNDb21tYW5kID0gTGlzdEFjY291bnRzQ29tbWFuZDtcbmV4cG9ydHMuTG9nb3V0Q29tbWFuZCA9IExvZ291dENvbW1hbmQ7XG5leHBvcnRzLlJlc291cmNlTm90Rm91bmRFeGNlcHRpb24gPSBSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uJDE7XG5leHBvcnRzLlNTTyA9IFNTTztcbmV4cG9ydHMuU1NPQ2xpZW50ID0gU1NPQ2xpZW50O1xuZXhwb3J0cy5TU09TZXJ2aWNlRXhjZXB0aW9uID0gU1NPU2VydmljZUV4Y2VwdGlvbiQxO1xuZXhwb3J0cy5Ub29NYW55UmVxdWVzdHNFeGNlcHRpb24gPSBUb29NYW55UmVxdWVzdHNFeGNlcHRpb24kMTtcbmV4cG9ydHMuVW5hdXRob3JpemVkRXhjZXB0aW9uID0gVW5hdXRob3JpemVkRXhjZXB0aW9uJDE7XG5leHBvcnRzLnBhZ2luYXRlTGlzdEFjY291bnRSb2xlcyA9IHBhZ2luYXRlTGlzdEFjY291bnRSb2xlcztcbmV4cG9ydHMucGFnaW5hdGVMaXN0QWNjb3VudHMgPSBwYWdpbmF0ZUxpc3RBY2NvdW50cztcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBjbGllbnRTc28gPSByZXF1aXJlKCdAYXdzLXNkay9jbGllbnQtc3NvJyk7XG5cblxuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJHZXRSb2xlQ3JlZGVudGlhbHNDb21tYW5kXCIsIHtcblx0ZW51bWVyYWJsZTogdHJ1ZSxcblx0Z2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBjbGllbnRTc28uR2V0Um9sZUNyZWRlbnRpYWxzQ29tbWFuZDsgfVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJTU09DbGllbnRcIiwge1xuXHRlbnVtZXJhYmxlOiB0cnVlLFxuXHRnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGNsaWVudFNzby5TU09DbGllbnQ7IH1cbn0pO1xuIiwgIid1c2Ugc3RyaWN0JztcblxudmFyIHByb3BlcnR5UHJvdmlkZXIgPSByZXF1aXJlKCdAc21pdGh5L3Byb3BlcnR5LXByb3ZpZGVyJyk7XG52YXIgc2hhcmVkSW5pRmlsZUxvYWRlciA9IHJlcXVpcmUoJ0BzbWl0aHkvc2hhcmVkLWluaS1maWxlLWxvYWRlcicpO1xudmFyIGNsaWVudCA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL2NvcmUvY2xpZW50Jyk7XG52YXIgdG9rZW5Qcm92aWRlcnMgPSByZXF1aXJlKCdAYXdzLXNkay90b2tlbi1wcm92aWRlcnMnKTtcblxuY29uc3QgaXNTc29Qcm9maWxlID0gKGFyZykgPT4gYXJnICYmXG4gICAgKHR5cGVvZiBhcmcuc3NvX3N0YXJ0X3VybCA9PT0gXCJzdHJpbmdcIiB8fFxuICAgICAgICB0eXBlb2YgYXJnLnNzb19hY2NvdW50X2lkID09PSBcInN0cmluZ1wiIHx8XG4gICAgICAgIHR5cGVvZiBhcmcuc3NvX3Nlc3Npb24gPT09IFwic3RyaW5nXCIgfHxcbiAgICAgICAgdHlwZW9mIGFyZy5zc29fcmVnaW9uID09PSBcInN0cmluZ1wiIHx8XG4gICAgICAgIHR5cGVvZiBhcmcuc3NvX3JvbGVfbmFtZSA9PT0gXCJzdHJpbmdcIik7XG5cbmNvbnN0IFNIT1VMRF9GQUlMX0NSRURFTlRJQUxfQ0hBSU4gPSBmYWxzZTtcbmNvbnN0IHJlc29sdmVTU09DcmVkZW50aWFscyA9IGFzeW5jICh7IHNzb1N0YXJ0VXJsLCBzc29TZXNzaW9uLCBzc29BY2NvdW50SWQsIHNzb1JlZ2lvbiwgc3NvUm9sZU5hbWUsIHNzb0NsaWVudCwgY2xpZW50Q29uZmlnLCBwYXJlbnRDbGllbnRDb25maWcsIGNhbGxlckNsaWVudENvbmZpZywgcHJvZmlsZSwgZmlsZXBhdGgsIGNvbmZpZ0ZpbGVwYXRoLCBpZ25vcmVDYWNoZSwgbG9nZ2VyLCB9KSA9PiB7XG4gICAgbGV0IHRva2VuO1xuICAgIGNvbnN0IHJlZnJlc2hNZXNzYWdlID0gYFRvIHJlZnJlc2ggdGhpcyBTU08gc2Vzc2lvbiBydW4gYXdzIHNzbyBsb2dpbiB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIHByb2ZpbGUuYDtcbiAgICBpZiAoc3NvU2Vzc2lvbikge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgX3Rva2VuID0gYXdhaXQgdG9rZW5Qcm92aWRlcnMuZnJvbVNzbyh7XG4gICAgICAgICAgICAgICAgcHJvZmlsZSxcbiAgICAgICAgICAgICAgICBmaWxlcGF0aCxcbiAgICAgICAgICAgICAgICBjb25maWdGaWxlcGF0aCxcbiAgICAgICAgICAgICAgICBpZ25vcmVDYWNoZSxcbiAgICAgICAgICAgIH0pKCk7XG4gICAgICAgICAgICB0b2tlbiA9IHtcbiAgICAgICAgICAgICAgICBhY2Nlc3NUb2tlbjogX3Rva2VuLnRva2VuLFxuICAgICAgICAgICAgICAgIGV4cGlyZXNBdDogbmV3IERhdGUoX3Rva2VuLmV4cGlyYXRpb24pLnRvSVNPU3RyaW5nKCksXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoZS5tZXNzYWdlLCB7XG4gICAgICAgICAgICAgICAgdHJ5TmV4dExpbms6IFNIT1VMRF9GQUlMX0NSRURFTlRJQUxfQ0hBSU4sXG4gICAgICAgICAgICAgICAgbG9nZ2VyLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB0b2tlbiA9IGF3YWl0IHNoYXJlZEluaUZpbGVMb2FkZXIuZ2V0U1NPVG9rZW5Gcm9tRmlsZShzc29TdGFydFVybCk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLkNyZWRlbnRpYWxzUHJvdmlkZXJFcnJvcihgVGhlIFNTTyBzZXNzaW9uIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHByb2ZpbGUgaXMgaW52YWxpZC4gJHtyZWZyZXNoTWVzc2FnZX1gLCB7XG4gICAgICAgICAgICAgICAgdHJ5TmV4dExpbms6IFNIT1VMRF9GQUlMX0NSRURFTlRJQUxfQ0hBSU4sXG4gICAgICAgICAgICAgICAgbG9nZ2VyLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKG5ldyBEYXRlKHRva2VuLmV4cGlyZXNBdCkuZ2V0VGltZSgpIC0gRGF0ZS5ub3coKSA8PSAwKSB7XG4gICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLkNyZWRlbnRpYWxzUHJvdmlkZXJFcnJvcihgVGhlIFNTTyBzZXNzaW9uIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHByb2ZpbGUgaGFzIGV4cGlyZWQuICR7cmVmcmVzaE1lc3NhZ2V9YCwge1xuICAgICAgICAgICAgdHJ5TmV4dExpbms6IFNIT1VMRF9GQUlMX0NSRURFTlRJQUxfQ0hBSU4sXG4gICAgICAgICAgICBsb2dnZXIsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCB7IGFjY2Vzc1Rva2VuIH0gPSB0b2tlbjtcbiAgICBjb25zdCB7IFNTT0NsaWVudCwgR2V0Um9sZUNyZWRlbnRpYWxzQ29tbWFuZCB9ID0gYXdhaXQgUHJvbWlzZS5yZXNvbHZlKCkudGhlbihmdW5jdGlvbiAoKSB7IHJldHVybiByZXF1aXJlKCcuL2xvYWRTc28tQ1Z5OGlxc1ouanMnKTsgfSk7XG4gICAgY29uc3Qgc3NvID0gc3NvQ2xpZW50IHx8XG4gICAgICAgIG5ldyBTU09DbGllbnQoT2JqZWN0LmFzc2lnbih7fSwgY2xpZW50Q29uZmlnID8/IHt9LCB7XG4gICAgICAgICAgICBsb2dnZXI6IGNsaWVudENvbmZpZz8ubG9nZ2VyID8/IGNhbGxlckNsaWVudENvbmZpZz8ubG9nZ2VyID8/IHBhcmVudENsaWVudENvbmZpZz8ubG9nZ2VyLFxuICAgICAgICAgICAgcmVnaW9uOiBjbGllbnRDb25maWc/LnJlZ2lvbiA/PyBzc29SZWdpb24sXG4gICAgICAgICAgICB1c2VyQWdlbnRBcHBJZDogY2xpZW50Q29uZmlnPy51c2VyQWdlbnRBcHBJZCA/PyBjYWxsZXJDbGllbnRDb25maWc/LnVzZXJBZ2VudEFwcElkID8/IHBhcmVudENsaWVudENvbmZpZz8udXNlckFnZW50QXBwSWQsXG4gICAgICAgIH0pKTtcbiAgICBsZXQgc3NvUmVzcDtcbiAgICB0cnkge1xuICAgICAgICBzc29SZXNwID0gYXdhaXQgc3NvLnNlbmQobmV3IEdldFJvbGVDcmVkZW50aWFsc0NvbW1hbmQoe1xuICAgICAgICAgICAgYWNjb3VudElkOiBzc29BY2NvdW50SWQsXG4gICAgICAgICAgICByb2xlTmFtZTogc3NvUm9sZU5hbWUsXG4gICAgICAgICAgICBhY2Nlc3NUb2tlbixcbiAgICAgICAgfSkpO1xuICAgIH1cbiAgICBjYXRjaCAoZSkge1xuICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoZSwge1xuICAgICAgICAgICAgdHJ5TmV4dExpbms6IFNIT1VMRF9GQUlMX0NSRURFTlRJQUxfQ0hBSU4sXG4gICAgICAgICAgICBsb2dnZXIsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCB7IHJvbGVDcmVkZW50aWFsczogeyBhY2Nlc3NLZXlJZCwgc2VjcmV0QWNjZXNzS2V5LCBzZXNzaW9uVG9rZW4sIGV4cGlyYXRpb24sIGNyZWRlbnRpYWxTY29wZSwgYWNjb3VudElkIH0gPSB7fSwgfSA9IHNzb1Jlc3A7XG4gICAgaWYgKCFhY2Nlc3NLZXlJZCB8fCAhc2VjcmV0QWNjZXNzS2V5IHx8ICFzZXNzaW9uVG9rZW4gfHwgIWV4cGlyYXRpb24pIHtcbiAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKFwiU1NPIHJldHVybnMgYW4gaW52YWxpZCB0ZW1wb3JhcnkgY3JlZGVudGlhbC5cIiwge1xuICAgICAgICAgICAgdHJ5TmV4dExpbms6IFNIT1VMRF9GQUlMX0NSRURFTlRJQUxfQ0hBSU4sXG4gICAgICAgICAgICBsb2dnZXIsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCBjcmVkZW50aWFscyA9IHtcbiAgICAgICAgYWNjZXNzS2V5SWQsXG4gICAgICAgIHNlY3JldEFjY2Vzc0tleSxcbiAgICAgICAgc2Vzc2lvblRva2VuLFxuICAgICAgICBleHBpcmF0aW9uOiBuZXcgRGF0ZShleHBpcmF0aW9uKSxcbiAgICAgICAgLi4uKGNyZWRlbnRpYWxTY29wZSAmJiB7IGNyZWRlbnRpYWxTY29wZSB9KSxcbiAgICAgICAgLi4uKGFjY291bnRJZCAmJiB7IGFjY291bnRJZCB9KSxcbiAgICB9O1xuICAgIGlmIChzc29TZXNzaW9uKSB7XG4gICAgICAgIGNsaWVudC5zZXRDcmVkZW50aWFsRmVhdHVyZShjcmVkZW50aWFscywgXCJDUkVERU5USUFMU19TU09cIiwgXCJzXCIpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgY2xpZW50LnNldENyZWRlbnRpYWxGZWF0dXJlKGNyZWRlbnRpYWxzLCBcIkNSRURFTlRJQUxTX1NTT19MRUdBQ1lcIiwgXCJ1XCIpO1xuICAgIH1cbiAgICByZXR1cm4gY3JlZGVudGlhbHM7XG59O1xuXG5jb25zdCB2YWxpZGF0ZVNzb1Byb2ZpbGUgPSAocHJvZmlsZSwgbG9nZ2VyKSA9PiB7XG4gICAgY29uc3QgeyBzc29fc3RhcnRfdXJsLCBzc29fYWNjb3VudF9pZCwgc3NvX3JlZ2lvbiwgc3NvX3JvbGVfbmFtZSB9ID0gcHJvZmlsZTtcbiAgICBpZiAoIXNzb19zdGFydF91cmwgfHwgIXNzb19hY2NvdW50X2lkIHx8ICFzc29fcmVnaW9uIHx8ICFzc29fcm9sZV9uYW1lKSB7XG4gICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLkNyZWRlbnRpYWxzUHJvdmlkZXJFcnJvcihgUHJvZmlsZSBpcyBjb25maWd1cmVkIHdpdGggaW52YWxpZCBTU08gY3JlZGVudGlhbHMuIFJlcXVpcmVkIHBhcmFtZXRlcnMgXCJzc29fYWNjb3VudF9pZFwiLCBgICtcbiAgICAgICAgICAgIGBcInNzb19yZWdpb25cIiwgXCJzc29fcm9sZV9uYW1lXCIsIFwic3NvX3N0YXJ0X3VybFwiLiBHb3QgJHtPYmplY3Qua2V5cyhwcm9maWxlKS5qb2luKFwiLCBcIil9XFxuUmVmZXJlbmNlOiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2xpL2xhdGVzdC91c2VyZ3VpZGUvY2xpLWNvbmZpZ3VyZS1zc28uaHRtbGAsIHsgdHJ5TmV4dExpbms6IGZhbHNlLCBsb2dnZXIgfSk7XG4gICAgfVxuICAgIHJldHVybiBwcm9maWxlO1xufTtcblxuY29uc3QgZnJvbVNTTyA9IChpbml0ID0ge30pID0+IGFzeW5jICh7IGNhbGxlckNsaWVudENvbmZpZyB9ID0ge30pID0+IHtcbiAgICBpbml0LmxvZ2dlcj8uZGVidWcoXCJAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLXNzbyAtIGZyb21TU09cIik7XG4gICAgY29uc3QgeyBzc29TdGFydFVybCwgc3NvQWNjb3VudElkLCBzc29SZWdpb24sIHNzb1JvbGVOYW1lLCBzc29TZXNzaW9uIH0gPSBpbml0O1xuICAgIGNvbnN0IHsgc3NvQ2xpZW50IH0gPSBpbml0O1xuICAgIGNvbnN0IHByb2ZpbGVOYW1lID0gc2hhcmVkSW5pRmlsZUxvYWRlci5nZXRQcm9maWxlTmFtZSh7XG4gICAgICAgIHByb2ZpbGU6IGluaXQucHJvZmlsZSA/PyBjYWxsZXJDbGllbnRDb25maWc/LnByb2ZpbGUsXG4gICAgfSk7XG4gICAgaWYgKCFzc29TdGFydFVybCAmJiAhc3NvQWNjb3VudElkICYmICFzc29SZWdpb24gJiYgIXNzb1JvbGVOYW1lICYmICFzc29TZXNzaW9uKSB7XG4gICAgICAgIGNvbnN0IHByb2ZpbGVzID0gYXdhaXQgc2hhcmVkSW5pRmlsZUxvYWRlci5wYXJzZUtub3duRmlsZXMoaW5pdCk7XG4gICAgICAgIGNvbnN0IHByb2ZpbGUgPSBwcm9maWxlc1twcm9maWxlTmFtZV07XG4gICAgICAgIGlmICghcHJvZmlsZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKGBQcm9maWxlICR7cHJvZmlsZU5hbWV9IHdhcyBub3QgZm91bmQuYCwgeyBsb2dnZXI6IGluaXQubG9nZ2VyIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmICghaXNTc29Qcm9maWxlKHByb2ZpbGUpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoYFByb2ZpbGUgJHtwcm9maWxlTmFtZX0gaXMgbm90IGNvbmZpZ3VyZWQgd2l0aCBTU08gY3JlZGVudGlhbHMuYCwge1xuICAgICAgICAgICAgICAgIGxvZ2dlcjogaW5pdC5sb2dnZXIsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocHJvZmlsZT8uc3NvX3Nlc3Npb24pIHtcbiAgICAgICAgICAgIGNvbnN0IHNzb1Nlc3Npb25zID0gYXdhaXQgc2hhcmVkSW5pRmlsZUxvYWRlci5sb2FkU3NvU2Vzc2lvbkRhdGEoaW5pdCk7XG4gICAgICAgICAgICBjb25zdCBzZXNzaW9uID0gc3NvU2Vzc2lvbnNbcHJvZmlsZS5zc29fc2Vzc2lvbl07XG4gICAgICAgICAgICBjb25zdCBjb25mbGljdE1zZyA9IGAgY29uZmlndXJhdGlvbnMgaW4gcHJvZmlsZSAke3Byb2ZpbGVOYW1lfSBhbmQgc3NvLXNlc3Npb24gJHtwcm9maWxlLnNzb19zZXNzaW9ufWA7XG4gICAgICAgICAgICBpZiAoc3NvUmVnaW9uICYmIHNzb1JlZ2lvbiAhPT0gc2Vzc2lvbi5zc29fcmVnaW9uKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKGBDb25mbGljdGluZyBTU08gcmVnaW9uYCArIGNvbmZsaWN0TXNnLCB7XG4gICAgICAgICAgICAgICAgICAgIHRyeU5leHRMaW5rOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgbG9nZ2VyOiBpbml0LmxvZ2dlcixcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzc29TdGFydFVybCAmJiBzc29TdGFydFVybCAhPT0gc2Vzc2lvbi5zc29fc3RhcnRfdXJsKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKGBDb25mbGljdGluZyBTU08gc3RhcnRfdXJsYCArIGNvbmZsaWN0TXNnLCB7XG4gICAgICAgICAgICAgICAgICAgIHRyeU5leHRMaW5rOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgbG9nZ2VyOiBpbml0LmxvZ2dlcixcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHByb2ZpbGUuc3NvX3JlZ2lvbiA9IHNlc3Npb24uc3NvX3JlZ2lvbjtcbiAgICAgICAgICAgIHByb2ZpbGUuc3NvX3N0YXJ0X3VybCA9IHNlc3Npb24uc3NvX3N0YXJ0X3VybDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB7IHNzb19zdGFydF91cmwsIHNzb19hY2NvdW50X2lkLCBzc29fcmVnaW9uLCBzc29fcm9sZV9uYW1lLCBzc29fc2Vzc2lvbiB9ID0gdmFsaWRhdGVTc29Qcm9maWxlKHByb2ZpbGUsIGluaXQubG9nZ2VyKTtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVTU09DcmVkZW50aWFscyh7XG4gICAgICAgICAgICBzc29TdGFydFVybDogc3NvX3N0YXJ0X3VybCxcbiAgICAgICAgICAgIHNzb1Nlc3Npb246IHNzb19zZXNzaW9uLFxuICAgICAgICAgICAgc3NvQWNjb3VudElkOiBzc29fYWNjb3VudF9pZCxcbiAgICAgICAgICAgIHNzb1JlZ2lvbjogc3NvX3JlZ2lvbixcbiAgICAgICAgICAgIHNzb1JvbGVOYW1lOiBzc29fcm9sZV9uYW1lLFxuICAgICAgICAgICAgc3NvQ2xpZW50OiBzc29DbGllbnQsXG4gICAgICAgICAgICBjbGllbnRDb25maWc6IGluaXQuY2xpZW50Q29uZmlnLFxuICAgICAgICAgICAgcGFyZW50Q2xpZW50Q29uZmlnOiBpbml0LnBhcmVudENsaWVudENvbmZpZyxcbiAgICAgICAgICAgIGNhbGxlckNsaWVudENvbmZpZzogaW5pdC5jYWxsZXJDbGllbnRDb25maWcsXG4gICAgICAgICAgICBwcm9maWxlOiBwcm9maWxlTmFtZSxcbiAgICAgICAgICAgIGZpbGVwYXRoOiBpbml0LmZpbGVwYXRoLFxuICAgICAgICAgICAgY29uZmlnRmlsZXBhdGg6IGluaXQuY29uZmlnRmlsZXBhdGgsXG4gICAgICAgICAgICBpZ25vcmVDYWNoZTogaW5pdC5pZ25vcmVDYWNoZSxcbiAgICAgICAgICAgIGxvZ2dlcjogaW5pdC5sb2dnZXIsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBlbHNlIGlmICghc3NvU3RhcnRVcmwgfHwgIXNzb0FjY291bnRJZCB8fCAhc3NvUmVnaW9uIHx8ICFzc29Sb2xlTmFtZSkge1xuICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoXCJJbmNvbXBsZXRlIGNvbmZpZ3VyYXRpb24uIFRoZSBmcm9tU1NPKCkgYXJndW1lbnQgaGFzaCBtdXN0IGluY2x1ZGUgXCIgK1xuICAgICAgICAgICAgJ1wic3NvU3RhcnRVcmxcIiwgXCJzc29BY2NvdW50SWRcIiwgXCJzc29SZWdpb25cIiwgXCJzc29Sb2xlTmFtZVwiJywgeyB0cnlOZXh0TGluazogZmFsc2UsIGxvZ2dlcjogaW5pdC5sb2dnZXIgfSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZVNTT0NyZWRlbnRpYWxzKHtcbiAgICAgICAgICAgIHNzb1N0YXJ0VXJsLFxuICAgICAgICAgICAgc3NvU2Vzc2lvbixcbiAgICAgICAgICAgIHNzb0FjY291bnRJZCxcbiAgICAgICAgICAgIHNzb1JlZ2lvbixcbiAgICAgICAgICAgIHNzb1JvbGVOYW1lLFxuICAgICAgICAgICAgc3NvQ2xpZW50LFxuICAgICAgICAgICAgY2xpZW50Q29uZmlnOiBpbml0LmNsaWVudENvbmZpZyxcbiAgICAgICAgICAgIHBhcmVudENsaWVudENvbmZpZzogaW5pdC5wYXJlbnRDbGllbnRDb25maWcsXG4gICAgICAgICAgICBjYWxsZXJDbGllbnRDb25maWc6IGluaXQuY2FsbGVyQ2xpZW50Q29uZmlnLFxuICAgICAgICAgICAgcHJvZmlsZTogcHJvZmlsZU5hbWUsXG4gICAgICAgICAgICBmaWxlcGF0aDogaW5pdC5maWxlcGF0aCxcbiAgICAgICAgICAgIGNvbmZpZ0ZpbGVwYXRoOiBpbml0LmNvbmZpZ0ZpbGVwYXRoLFxuICAgICAgICAgICAgaWdub3JlQ2FjaGU6IGluaXQuaWdub3JlQ2FjaGUsXG4gICAgICAgICAgICBsb2dnZXI6IGluaXQubG9nZ2VyLFxuICAgICAgICB9KTtcbiAgICB9XG59O1xuXG5leHBvcnRzLmZyb21TU08gPSBmcm9tU1NPO1xuZXhwb3J0cy5pc1Nzb1Byb2ZpbGUgPSBpc1Nzb1Byb2ZpbGU7XG5leHBvcnRzLnZhbGlkYXRlU3NvUHJvZmlsZSA9IHZhbGlkYXRlU3NvUHJvZmlsZTtcbiIsICJpbXBvcnQgeyByZXNvbHZlQXdzU2RrU2lnVjRDb25maWcsIH0gZnJvbSBcIkBhd3Mtc2RrL2NvcmVcIjtcbmltcG9ydCB7IGdldFNtaXRoeUNvbnRleHQsIG5vcm1hbGl6ZVByb3ZpZGVyIH0gZnJvbSBcIkBzbWl0aHkvdXRpbC1taWRkbGV3YXJlXCI7XG5leHBvcnQgY29uc3QgZGVmYXVsdFNpZ25pbkh0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyID0gYXN5bmMgKGNvbmZpZywgY29udGV4dCwgaW5wdXQpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgICBvcGVyYXRpb246IGdldFNtaXRoeUNvbnRleHQoY29udGV4dCkub3BlcmF0aW9uLFxuICAgICAgICByZWdpb246IChhd2FpdCBub3JtYWxpemVQcm92aWRlcihjb25maWcucmVnaW9uKSgpKSB8fFxuICAgICAgICAgICAgKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJleHBlY3RlZCBgcmVnaW9uYCB0byBiZSBjb25maWd1cmVkIGZvciBgYXdzLmF1dGgjc2lndjRgXCIpO1xuICAgICAgICAgICAgfSkoKSxcbiAgICB9O1xufTtcbmZ1bmN0aW9uIGNyZWF0ZUF3c0F1dGhTaWd2NEh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc2NoZW1lSWQ6IFwiYXdzLmF1dGgjc2lndjRcIixcbiAgICAgICAgc2lnbmluZ1Byb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIG5hbWU6IFwic2lnbmluXCIsXG4gICAgICAgICAgICByZWdpb246IGF1dGhQYXJhbWV0ZXJzLnJlZ2lvbixcbiAgICAgICAgfSxcbiAgICAgICAgcHJvcGVydGllc0V4dHJhY3RvcjogKGNvbmZpZywgY29udGV4dCkgPT4gKHtcbiAgICAgICAgICAgIHNpZ25pbmdQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgICAgY29uZmlnLFxuICAgICAgICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9KSxcbiAgICB9O1xufVxuZnVuY3Rpb24gY3JlYXRlU21pdGh5QXBpTm9BdXRoSHR0cEF1dGhPcHRpb24oYXV0aFBhcmFtZXRlcnMpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBzY2hlbWVJZDogXCJzbWl0aHkuYXBpI25vQXV0aFwiLFxuICAgIH07XG59XG5leHBvcnQgY29uc3QgZGVmYXVsdFNpZ25pbkh0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSAoYXV0aFBhcmFtZXRlcnMpID0+IHtcbiAgICBjb25zdCBvcHRpb25zID0gW107XG4gICAgc3dpdGNoIChhdXRoUGFyYW1ldGVycy5vcGVyYXRpb24pIHtcbiAgICAgICAgY2FzZSBcIkNyZWF0ZU9BdXRoMlRva2VuXCI6IHtcbiAgICAgICAgICAgIG9wdGlvbnMucHVzaChjcmVhdGVTbWl0aHlBcGlOb0F1dGhIdHRwQXV0aE9wdGlvbihhdXRoUGFyYW1ldGVycykpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgb3B0aW9ucy5wdXNoKGNyZWF0ZUF3c0F1dGhTaWd2NEh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG9wdGlvbnM7XG59O1xuZXhwb3J0IGNvbnN0IHJlc29sdmVIdHRwQXV0aFNjaGVtZUNvbmZpZyA9IChjb25maWcpID0+IHtcbiAgICBjb25zdCBjb25maWdfMCA9IHJlc29sdmVBd3NTZGtTaWdWNENvbmZpZyhjb25maWcpO1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKGNvbmZpZ18wLCB7XG4gICAgICAgIGF1dGhTY2hlbWVQcmVmZXJlbmNlOiBub3JtYWxpemVQcm92aWRlcihjb25maWcuYXV0aFNjaGVtZVByZWZlcmVuY2UgPz8gW10pLFxuICAgIH0pO1xufTtcbiIsICJleHBvcnQgY29uc3QgcmVzb2x2ZUNsaWVudEVuZHBvaW50UGFyYW1ldGVycyA9IChvcHRpb25zKSA9PiB7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24ob3B0aW9ucywge1xuICAgICAgICB1c2VEdWFsc3RhY2tFbmRwb2ludDogb3B0aW9ucy51c2VEdWFsc3RhY2tFbmRwb2ludCA/PyBmYWxzZSxcbiAgICAgICAgdXNlRmlwc0VuZHBvaW50OiBvcHRpb25zLnVzZUZpcHNFbmRwb2ludCA/PyBmYWxzZSxcbiAgICAgICAgZGVmYXVsdFNpZ25pbmdOYW1lOiBcInNpZ25pblwiLFxuICAgIH0pO1xufTtcbmV4cG9ydCBjb25zdCBjb21tb25QYXJhbXMgPSB7XG4gICAgVXNlRklQUzogeyB0eXBlOiBcImJ1aWx0SW5QYXJhbXNcIiwgbmFtZTogXCJ1c2VGaXBzRW5kcG9pbnRcIiB9LFxuICAgIEVuZHBvaW50OiB7IHR5cGU6IFwiYnVpbHRJblBhcmFtc1wiLCBuYW1lOiBcImVuZHBvaW50XCIgfSxcbiAgICBSZWdpb246IHsgdHlwZTogXCJidWlsdEluUGFyYW1zXCIsIG5hbWU6IFwicmVnaW9uXCIgfSxcbiAgICBVc2VEdWFsU3RhY2s6IHsgdHlwZTogXCJidWlsdEluUGFyYW1zXCIsIG5hbWU6IFwidXNlRHVhbHN0YWNrRW5kcG9pbnRcIiB9LFxufTtcbiIsICJ7XG4gIFwibmFtZVwiOiBcIkBhd3Mtc2RrL25lc3RlZC1jbGllbnRzXCIsXG4gIFwidmVyc2lvblwiOiBcIjMuOTUyLjBcIixcbiAgXCJkZXNjcmlwdGlvblwiOiBcIk5lc3RlZCBjbGllbnRzIGZvciBBV1MgU0RLIHBhY2thZ2VzLlwiLFxuICBcIm1haW5cIjogXCIuL2Rpc3QtY2pzL2luZGV4LmpzXCIsXG4gIFwibW9kdWxlXCI6IFwiLi9kaXN0LWVzL2luZGV4LmpzXCIsXG4gIFwidHlwZXNcIjogXCIuL2Rpc3QtdHlwZXMvaW5kZXguZC50c1wiLFxuICBcInNjcmlwdHNcIjoge1xuICAgIFwiYnVpbGRcIjogXCJ5YXJuIGxpbnQgJiYgY29uY3VycmVudGx5ICd5YXJuOmJ1aWxkOmNqcycgJ3lhcm46YnVpbGQ6ZXMnICd5YXJuOmJ1aWxkOnR5cGVzJ1wiLFxuICAgIFwiYnVpbGQ6Y2pzXCI6IFwibm9kZSAuLi8uLi9zY3JpcHRzL2NvbXBpbGF0aW9uL2lubGluZSBuZXN0ZWQtY2xpZW50c1wiLFxuICAgIFwiYnVpbGQ6ZXNcIjogXCJ0c2MgLXAgdHNjb25maWcuZXMuanNvblwiLFxuICAgIFwiYnVpbGQ6aW5jbHVkZTpkZXBzXCI6IFwibGVybmEgcnVuIC0tc2NvcGUgJG5wbV9wYWNrYWdlX25hbWUgLS1pbmNsdWRlLWRlcGVuZGVuY2llcyBidWlsZFwiLFxuICAgIFwiYnVpbGQ6dHlwZXNcIjogXCJ0c2MgLXAgdHNjb25maWcudHlwZXMuanNvblwiLFxuICAgIFwiYnVpbGQ6dHlwZXM6ZG93bmxldmVsXCI6IFwiZG93bmxldmVsLWR0cyBkaXN0LXR5cGVzIGRpc3QtdHlwZXMvdHMzLjRcIixcbiAgICBcImNsZWFuXCI6IFwicmltcmFmIC4vZGlzdC0qICYmIHJpbXJhZiAqLnRzYnVpbGRpbmZvXCIsXG4gICAgXCJsaW50XCI6IFwibm9kZSAuLi8uLi9zY3JpcHRzL3ZhbGlkYXRpb24vc3VibW9kdWxlcy1saW50ZXIuanMgLS1wa2cgbmVzdGVkLWNsaWVudHNcIixcbiAgICBcInRlc3RcIjogXCJ5YXJuIGc6dml0ZXN0IHJ1blwiLFxuICAgIFwidGVzdDp3YXRjaFwiOiBcInlhcm4gZzp2aXRlc3Qgd2F0Y2hcIlxuICB9LFxuICBcImVuZ2luZXNcIjoge1xuICAgIFwibm9kZVwiOiBcIj49MTguMC4wXCJcbiAgfSxcbiAgXCJzaWRlRWZmZWN0c1wiOiBmYWxzZSxcbiAgXCJhdXRob3JcIjoge1xuICAgIFwibmFtZVwiOiBcIkFXUyBTREsgZm9yIEphdmFTY3JpcHQgVGVhbVwiLFxuICAgIFwidXJsXCI6IFwiaHR0cHM6Ly9hd3MuYW1hem9uLmNvbS9qYXZhc2NyaXB0L1wiXG4gIH0sXG4gIFwibGljZW5zZVwiOiBcIkFwYWNoZS0yLjBcIixcbiAgXCJkZXBlbmRlbmNpZXNcIjoge1xuICAgIFwiQGF3cy1jcnlwdG8vc2hhMjU2LWJyb3dzZXJcIjogXCI1LjIuMFwiLFxuICAgIFwiQGF3cy1jcnlwdG8vc2hhMjU2LWpzXCI6IFwiNS4yLjBcIixcbiAgICBcIkBhd3Mtc2RrL2NvcmVcIjogXCIzLjk0Ny4wXCIsXG4gICAgXCJAYXdzLXNkay9taWRkbGV3YXJlLWhvc3QtaGVhZGVyXCI6IFwiMy45MzYuMFwiLFxuICAgIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1sb2dnZXJcIjogXCIzLjkzNi4wXCIsXG4gICAgXCJAYXdzLXNkay9taWRkbGV3YXJlLXJlY3Vyc2lvbi1kZXRlY3Rpb25cIjogXCIzLjk0OC4wXCIsXG4gICAgXCJAYXdzLXNkay9taWRkbGV3YXJlLXVzZXItYWdlbnRcIjogXCIzLjk0Ny4wXCIsXG4gICAgXCJAYXdzLXNkay9yZWdpb24tY29uZmlnLXJlc29sdmVyXCI6IFwiMy45MzYuMFwiLFxuICAgIFwiQGF3cy1zZGsvdHlwZXNcIjogXCIzLjkzNi4wXCIsXG4gICAgXCJAYXdzLXNkay91dGlsLWVuZHBvaW50c1wiOiBcIjMuOTM2LjBcIixcbiAgICBcIkBhd3Mtc2RrL3V0aWwtdXNlci1hZ2VudC1icm93c2VyXCI6IFwiMy45MzYuMFwiLFxuICAgIFwiQGF3cy1zZGsvdXRpbC11c2VyLWFnZW50LW5vZGVcIjogXCIzLjk0Ny4wXCIsXG4gICAgXCJAc21pdGh5L2NvbmZpZy1yZXNvbHZlclwiOiBcIl40LjQuM1wiLFxuICAgIFwiQHNtaXRoeS9jb3JlXCI6IFwiXjMuMTguN1wiLFxuICAgIFwiQHNtaXRoeS9mZXRjaC1odHRwLWhhbmRsZXJcIjogXCJeNS4zLjZcIixcbiAgICBcIkBzbWl0aHkvaGFzaC1ub2RlXCI6IFwiXjQuMi41XCIsXG4gICAgXCJAc21pdGh5L2ludmFsaWQtZGVwZW5kZW5jeVwiOiBcIl40LjIuNVwiLFxuICAgIFwiQHNtaXRoeS9taWRkbGV3YXJlLWNvbnRlbnQtbGVuZ3RoXCI6IFwiXjQuMi41XCIsXG4gICAgXCJAc21pdGh5L21pZGRsZXdhcmUtZW5kcG9pbnRcIjogXCJeNC4zLjE0XCIsXG4gICAgXCJAc21pdGh5L21pZGRsZXdhcmUtcmV0cnlcIjogXCJeNC40LjE0XCIsXG4gICAgXCJAc21pdGh5L21pZGRsZXdhcmUtc2VyZGVcIjogXCJeNC4yLjZcIixcbiAgICBcIkBzbWl0aHkvbWlkZGxld2FyZS1zdGFja1wiOiBcIl40LjIuNVwiLFxuICAgIFwiQHNtaXRoeS9ub2RlLWNvbmZpZy1wcm92aWRlclwiOiBcIl40LjMuNVwiLFxuICAgIFwiQHNtaXRoeS9ub2RlLWh0dHAtaGFuZGxlclwiOiBcIl40LjQuNVwiLFxuICAgIFwiQHNtaXRoeS9wcm90b2NvbC1odHRwXCI6IFwiXjUuMy41XCIsXG4gICAgXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjogXCJeNC45LjEwXCIsXG4gICAgXCJAc21pdGh5L3R5cGVzXCI6IFwiXjQuOS4wXCIsXG4gICAgXCJAc21pdGh5L3VybC1wYXJzZXJcIjogXCJeNC4yLjVcIixcbiAgICBcIkBzbWl0aHkvdXRpbC1iYXNlNjRcIjogXCJeNC4zLjBcIixcbiAgICBcIkBzbWl0aHkvdXRpbC1ib2R5LWxlbmd0aC1icm93c2VyXCI6IFwiXjQuMi4wXCIsXG4gICAgXCJAc21pdGh5L3V0aWwtYm9keS1sZW5ndGgtbm9kZVwiOiBcIl40LjIuMVwiLFxuICAgIFwiQHNtaXRoeS91dGlsLWRlZmF1bHRzLW1vZGUtYnJvd3NlclwiOiBcIl40LjMuMTNcIixcbiAgICBcIkBzbWl0aHkvdXRpbC1kZWZhdWx0cy1tb2RlLW5vZGVcIjogXCJeNC4yLjE2XCIsXG4gICAgXCJAc21pdGh5L3V0aWwtZW5kcG9pbnRzXCI6IFwiXjMuMi41XCIsXG4gICAgXCJAc21pdGh5L3V0aWwtbWlkZGxld2FyZVwiOiBcIl40LjIuNVwiLFxuICAgIFwiQHNtaXRoeS91dGlsLXJldHJ5XCI6IFwiXjQuMi41XCIsXG4gICAgXCJAc21pdGh5L3V0aWwtdXRmOFwiOiBcIl40LjIuMFwiLFxuICAgIFwidHNsaWJcIjogXCJeMi42LjJcIlxuICB9LFxuICBcImRldkRlcGVuZGVuY2llc1wiOiB7XG4gICAgXCJjb25jdXJyZW50bHlcIjogXCI3LjAuMFwiLFxuICAgIFwiZG93bmxldmVsLWR0c1wiOiBcIjAuMTAuMVwiLFxuICAgIFwicmltcmFmXCI6IFwiMy4wLjJcIixcbiAgICBcInR5cGVzY3JpcHRcIjogXCJ+NS44LjNcIlxuICB9LFxuICBcInR5cGVzVmVyc2lvbnNcIjoge1xuICAgIFwiPDQuMFwiOiB7XG4gICAgICBcImRpc3QtdHlwZXMvKlwiOiBbXG4gICAgICAgIFwiZGlzdC10eXBlcy90czMuNC8qXCJcbiAgICAgIF1cbiAgICB9XG4gIH0sXG4gIFwiZmlsZXNcIjogW1xuICAgIFwiLi9zaWduaW4uZC50c1wiLFxuICAgIFwiLi9zaWduaW4uanNcIixcbiAgICBcIi4vc3NvLW9pZGMuZC50c1wiLFxuICAgIFwiLi9zc28tb2lkYy5qc1wiLFxuICAgIFwiLi9zdHMuZC50c1wiLFxuICAgIFwiLi9zdHMuanNcIixcbiAgICBcImRpc3QtKi8qKlwiXG4gIF0sXG4gIFwiYnJvd3NlclwiOiB7XG4gICAgXCIuL2Rpc3QtZXMvc3VibW9kdWxlcy9zaWduaW4vcnVudGltZUNvbmZpZ1wiOiBcIi4vZGlzdC1lcy9zdWJtb2R1bGVzL3NpZ25pbi9ydW50aW1lQ29uZmlnLmJyb3dzZXJcIixcbiAgICBcIi4vZGlzdC1lcy9zdWJtb2R1bGVzL3Nzby1vaWRjL3J1bnRpbWVDb25maWdcIjogXCIuL2Rpc3QtZXMvc3VibW9kdWxlcy9zc28tb2lkYy9ydW50aW1lQ29uZmlnLmJyb3dzZXJcIixcbiAgICBcIi4vZGlzdC1lcy9zdWJtb2R1bGVzL3N0cy9ydW50aW1lQ29uZmlnXCI6IFwiLi9kaXN0LWVzL3N1Ym1vZHVsZXMvc3RzL3J1bnRpbWVDb25maWcuYnJvd3NlclwiXG4gIH0sXG4gIFwicmVhY3QtbmF0aXZlXCI6IHt9LFxuICBcImhvbWVwYWdlXCI6IFwiaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3Mtc2RrLWpzLXYzL3RyZWUvbWFpbi9wYWNrYWdlcy9uZXN0ZWQtY2xpZW50c1wiLFxuICBcInJlcG9zaXRvcnlcIjoge1xuICAgIFwidHlwZVwiOiBcImdpdFwiLFxuICAgIFwidXJsXCI6IFwiaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3Mtc2RrLWpzLXYzLmdpdFwiLFxuICAgIFwiZGlyZWN0b3J5XCI6IFwicGFja2FnZXMvbmVzdGVkLWNsaWVudHNcIlxuICB9LFxuICBcImV4cG9ydHNcIjoge1xuICAgIFwiLi9wYWNrYWdlLmpzb25cIjogXCIuL3BhY2thZ2UuanNvblwiLFxuICAgIFwiLi9zc28tb2lkY1wiOiB7XG4gICAgICBcInR5cGVzXCI6IFwiLi9kaXN0LXR5cGVzL3N1Ym1vZHVsZXMvc3NvLW9pZGMvaW5kZXguZC50c1wiLFxuICAgICAgXCJtb2R1bGVcIjogXCIuL2Rpc3QtZXMvc3VibW9kdWxlcy9zc28tb2lkYy9pbmRleC5qc1wiLFxuICAgICAgXCJub2RlXCI6IFwiLi9kaXN0LWNqcy9zdWJtb2R1bGVzL3Nzby1vaWRjL2luZGV4LmpzXCIsXG4gICAgICBcImltcG9ydFwiOiBcIi4vZGlzdC1lcy9zdWJtb2R1bGVzL3Nzby1vaWRjL2luZGV4LmpzXCIsXG4gICAgICBcInJlcXVpcmVcIjogXCIuL2Rpc3QtY2pzL3N1Ym1vZHVsZXMvc3NvLW9pZGMvaW5kZXguanNcIlxuICAgIH0sXG4gICAgXCIuL3N0c1wiOiB7XG4gICAgICBcInR5cGVzXCI6IFwiLi9kaXN0LXR5cGVzL3N1Ym1vZHVsZXMvc3RzL2luZGV4LmQudHNcIixcbiAgICAgIFwibW9kdWxlXCI6IFwiLi9kaXN0LWVzL3N1Ym1vZHVsZXMvc3RzL2luZGV4LmpzXCIsXG4gICAgICBcIm5vZGVcIjogXCIuL2Rpc3QtY2pzL3N1Ym1vZHVsZXMvc3RzL2luZGV4LmpzXCIsXG4gICAgICBcImltcG9ydFwiOiBcIi4vZGlzdC1lcy9zdWJtb2R1bGVzL3N0cy9pbmRleC5qc1wiLFxuICAgICAgXCJyZXF1aXJlXCI6IFwiLi9kaXN0LWNqcy9zdWJtb2R1bGVzL3N0cy9pbmRleC5qc1wiXG4gICAgfSxcbiAgICBcIi4vc2lnbmluXCI6IHtcbiAgICAgIFwidHlwZXNcIjogXCIuL2Rpc3QtdHlwZXMvc3VibW9kdWxlcy9zaWduaW4vaW5kZXguZC50c1wiLFxuICAgICAgXCJtb2R1bGVcIjogXCIuL2Rpc3QtZXMvc3VibW9kdWxlcy9zaWduaW4vaW5kZXguanNcIixcbiAgICAgIFwibm9kZVwiOiBcIi4vZGlzdC1janMvc3VibW9kdWxlcy9zaWduaW4vaW5kZXguanNcIixcbiAgICAgIFwiaW1wb3J0XCI6IFwiLi9kaXN0LWVzL3N1Ym1vZHVsZXMvc2lnbmluL2luZGV4LmpzXCIsXG4gICAgICBcInJlcXVpcmVcIjogXCIuL2Rpc3QtY2pzL3N1Ym1vZHVsZXMvc2lnbmluL2luZGV4LmpzXCJcbiAgICB9XG4gIH1cbn1cbiIsICJjb25zdCB1ID0gXCJyZXF1aXJlZFwiLCB2ID0gXCJmblwiLCB3ID0gXCJhcmd2XCIsIHggPSBcInJlZlwiO1xuY29uc3QgYSA9IHRydWUsIGIgPSBcImlzU2V0XCIsIGMgPSBcImJvb2xlYW5FcXVhbHNcIiwgZCA9IFwiZXJyb3JcIiwgZSA9IFwiZW5kcG9pbnRcIiwgZiA9IFwidHJlZVwiLCBnID0gXCJQYXJ0aXRpb25SZXN1bHRcIiwgaCA9IFwic3RyaW5nRXF1YWxzXCIsIGkgPSB7IFt1XTogdHJ1ZSwgXCJkZWZhdWx0XCI6IGZhbHNlLCBcInR5cGVcIjogXCJib29sZWFuXCIgfSwgaiA9IHsgW3VdOiBmYWxzZSwgXCJ0eXBlXCI6IFwic3RyaW5nXCIgfSwgayA9IHsgW3hdOiBcIkVuZHBvaW50XCIgfSwgbCA9IHsgW3ZdOiBjLCBbd106IFt7IFt4XTogXCJVc2VGSVBTXCIgfSwgdHJ1ZV0gfSwgbSA9IHsgW3ZdOiBjLCBbd106IFt7IFt4XTogXCJVc2VEdWFsU3RhY2tcIiB9LCB0cnVlXSB9LCBuID0ge30sIG8gPSB7IFt2XTogXCJnZXRBdHRyXCIsIFt3XTogW3sgW3hdOiBnIH0sIFwibmFtZVwiXSB9LCBwID0geyBbdl06IGMsIFt3XTogW3sgW3hdOiBcIlVzZUZJUFNcIiB9LCBmYWxzZV0gfSwgcSA9IHsgW3ZdOiBjLCBbd106IFt7IFt4XTogXCJVc2VEdWFsU3RhY2tcIiB9LCBmYWxzZV0gfSwgciA9IHsgW3ZdOiBcImdldEF0dHJcIiwgW3ddOiBbeyBbeF06IGcgfSwgXCJzdXBwb3J0c0ZJUFNcIl0gfSwgcyA9IHsgW3ZdOiBjLCBbd106IFt0cnVlLCB7IFt2XTogXCJnZXRBdHRyXCIsIFt3XTogW3sgW3hdOiBnIH0sIFwic3VwcG9ydHNEdWFsU3RhY2tcIl0gfV0gfSwgdCA9IFt7IFt4XTogXCJSZWdpb25cIiB9XTtcbmNvbnN0IF9kYXRhID0geyB2ZXJzaW9uOiBcIjEuMFwiLCBwYXJhbWV0ZXJzOiB7IFVzZUR1YWxTdGFjazogaSwgVXNlRklQUzogaSwgRW5kcG9pbnQ6IGosIFJlZ2lvbjogaiB9LCBydWxlczogW3sgY29uZGl0aW9uczogW3sgW3ZdOiBiLCBbd106IFtrXSB9XSwgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IFtsXSwgZXJyb3I6IFwiSW52YWxpZCBDb25maWd1cmF0aW9uOiBGSVBTIGFuZCBjdXN0b20gZW5kcG9pbnQgYXJlIG5vdCBzdXBwb3J0ZWRcIiwgdHlwZTogZCB9LCB7IHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbbV0sIGVycm9yOiBcIkludmFsaWQgQ29uZmlndXJhdGlvbjogRHVhbHN0YWNrIGFuZCBjdXN0b20gZW5kcG9pbnQgYXJlIG5vdCBzdXBwb3J0ZWRcIiwgdHlwZTogZCB9LCB7IGVuZHBvaW50OiB7IHVybDogaywgcHJvcGVydGllczogbiwgaGVhZGVyczogbiB9LCB0eXBlOiBlIH1dLCB0eXBlOiBmIH1dLCB0eXBlOiBmIH0sIHsgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IFt7IFt2XTogYiwgW3ddOiB0IH1dLCBydWxlczogW3sgY29uZGl0aW9uczogW3sgW3ZdOiBcImF3cy5wYXJ0aXRpb25cIiwgW3ddOiB0LCBhc3NpZ246IGcgfV0sIHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbeyBbdl06IGgsIFt3XTogW28sIFwiYXdzXCJdIH0sIHAsIHFdLCBlbmRwb2ludDogeyB1cmw6IFwiaHR0cHM6Ly97UmVnaW9ufS5zaWduaW4uYXdzLmFtYXpvbi5jb21cIiwgcHJvcGVydGllczogbiwgaGVhZGVyczogbiB9LCB0eXBlOiBlIH0sIHsgY29uZGl0aW9uczogW3sgW3ZdOiBoLCBbd106IFtvLCBcImF3cy1jblwiXSB9LCBwLCBxXSwgZW5kcG9pbnQ6IHsgdXJsOiBcImh0dHBzOi8ve1JlZ2lvbn0uc2lnbmluLmFtYXpvbmF3cy5jblwiLCBwcm9wZXJ0aWVzOiBuLCBoZWFkZXJzOiBuIH0sIHR5cGU6IGUgfSwgeyBjb25kaXRpb25zOiBbeyBbdl06IGgsIFt3XTogW28sIFwiYXdzLXVzLWdvdlwiXSB9LCBwLCBxXSwgZW5kcG9pbnQ6IHsgdXJsOiBcImh0dHBzOi8ve1JlZ2lvbn0uc2lnbmluLmFtYXpvbmF3cy11cy1nb3YuY29tXCIsIHByb3BlcnRpZXM6IG4sIGhlYWRlcnM6IG4gfSwgdHlwZTogZSB9LCB7IGNvbmRpdGlvbnM6IFtsLCBtXSwgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IFt7IFt2XTogYywgW3ddOiBbYSwgcl0gfSwgc10sIHJ1bGVzOiBbeyBlbmRwb2ludDogeyB1cmw6IFwiaHR0cHM6Ly9zaWduaW4tZmlwcy57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2R1YWxTdGFja0Ruc1N1ZmZpeH1cIiwgcHJvcGVydGllczogbiwgaGVhZGVyczogbiB9LCB0eXBlOiBlIH1dLCB0eXBlOiBmIH0sIHsgZXJyb3I6IFwiRklQUyBhbmQgRHVhbFN0YWNrIGFyZSBlbmFibGVkLCBidXQgdGhpcyBwYXJ0aXRpb24gZG9lcyBub3Qgc3VwcG9ydCBvbmUgb3IgYm90aFwiLCB0eXBlOiBkIH1dLCB0eXBlOiBmIH0sIHsgY29uZGl0aW9uczogW2wsIHFdLCBydWxlczogW3sgY29uZGl0aW9uczogW3sgW3ZdOiBjLCBbd106IFtyLCBhXSB9XSwgcnVsZXM6IFt7IGVuZHBvaW50OiB7IHVybDogXCJodHRwczovL3NpZ25pbi1maXBzLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZG5zU3VmZml4fVwiLCBwcm9wZXJ0aWVzOiBuLCBoZWFkZXJzOiBuIH0sIHR5cGU6IGUgfV0sIHR5cGU6IGYgfSwgeyBlcnJvcjogXCJGSVBTIGlzIGVuYWJsZWQgYnV0IHRoaXMgcGFydGl0aW9uIGRvZXMgbm90IHN1cHBvcnQgRklQU1wiLCB0eXBlOiBkIH1dLCB0eXBlOiBmIH0sIHsgY29uZGl0aW9uczogW3AsIG1dLCBydWxlczogW3sgY29uZGl0aW9uczogW3NdLCBydWxlczogW3sgZW5kcG9pbnQ6IHsgdXJsOiBcImh0dHBzOi8vc2lnbmluLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZHVhbFN0YWNrRG5zU3VmZml4fVwiLCBwcm9wZXJ0aWVzOiBuLCBoZWFkZXJzOiBuIH0sIHR5cGU6IGUgfV0sIHR5cGU6IGYgfSwgeyBlcnJvcjogXCJEdWFsU3RhY2sgaXMgZW5hYmxlZCBidXQgdGhpcyBwYXJ0aXRpb24gZG9lcyBub3Qgc3VwcG9ydCBEdWFsU3RhY2tcIiwgdHlwZTogZCB9XSwgdHlwZTogZiB9LCB7IGVuZHBvaW50OiB7IHVybDogXCJodHRwczovL3NpZ25pbi57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH1cIiwgcHJvcGVydGllczogbiwgaGVhZGVyczogbiB9LCB0eXBlOiBlIH1dLCB0eXBlOiBmIH1dLCB0eXBlOiBmIH0sIHsgZXJyb3I6IFwiSW52YWxpZCBDb25maWd1cmF0aW9uOiBNaXNzaW5nIFJlZ2lvblwiLCB0eXBlOiBkIH1dLCB0eXBlOiBmIH1dIH07XG5leHBvcnQgY29uc3QgcnVsZVNldCA9IF9kYXRhO1xuIiwgImltcG9ydCB7IGF3c0VuZHBvaW50RnVuY3Rpb25zIH0gZnJvbSBcIkBhd3Mtc2RrL3V0aWwtZW5kcG9pbnRzXCI7XG5pbXBvcnQgeyBjdXN0b21FbmRwb2ludEZ1bmN0aW9ucywgRW5kcG9pbnRDYWNoZSwgcmVzb2x2ZUVuZHBvaW50IH0gZnJvbSBcIkBzbWl0aHkvdXRpbC1lbmRwb2ludHNcIjtcbmltcG9ydCB7IHJ1bGVTZXQgfSBmcm9tIFwiLi9ydWxlc2V0XCI7XG5jb25zdCBjYWNoZSA9IG5ldyBFbmRwb2ludENhY2hlKHtcbiAgICBzaXplOiA1MCxcbiAgICBwYXJhbXM6IFtcIkVuZHBvaW50XCIsIFwiUmVnaW9uXCIsIFwiVXNlRHVhbFN0YWNrXCIsIFwiVXNlRklQU1wiXSxcbn0pO1xuZXhwb3J0IGNvbnN0IGRlZmF1bHRFbmRwb2ludFJlc29sdmVyID0gKGVuZHBvaW50UGFyYW1zLCBjb250ZXh0ID0ge30pID0+IHtcbiAgICByZXR1cm4gY2FjaGUuZ2V0KGVuZHBvaW50UGFyYW1zLCAoKSA9PiByZXNvbHZlRW5kcG9pbnQocnVsZVNldCwge1xuICAgICAgICBlbmRwb2ludFBhcmFtczogZW5kcG9pbnRQYXJhbXMsXG4gICAgICAgIGxvZ2dlcjogY29udGV4dC5sb2dnZXIsXG4gICAgfSkpO1xufTtcbmN1c3RvbUVuZHBvaW50RnVuY3Rpb25zLmF3cyA9IGF3c0VuZHBvaW50RnVuY3Rpb25zO1xuIiwgImltcG9ydCB7IEF3c1Nka1NpZ1Y0U2lnbmVyIH0gZnJvbSBcIkBhd3Mtc2RrL2NvcmVcIjtcbmltcG9ydCB7IEF3c1Jlc3RKc29uUHJvdG9jb2wgfSBmcm9tIFwiQGF3cy1zZGsvY29yZS9wcm90b2NvbHNcIjtcbmltcG9ydCB7IE5vQXV0aFNpZ25lciB9IGZyb20gXCJAc21pdGh5L2NvcmVcIjtcbmltcG9ydCB7IE5vT3BMb2dnZXIgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyBwYXJzZVVybCB9IGZyb20gXCJAc21pdGh5L3VybC1wYXJzZXJcIjtcbmltcG9ydCB7IGZyb21CYXNlNjQsIHRvQmFzZTY0IH0gZnJvbSBcIkBzbWl0aHkvdXRpbC1iYXNlNjRcIjtcbmltcG9ydCB7IGZyb21VdGY4LCB0b1V0ZjggfSBmcm9tIFwiQHNtaXRoeS91dGlsLXV0ZjhcIjtcbmltcG9ydCB7IGRlZmF1bHRTaWduaW5IdHRwQXV0aFNjaGVtZVByb3ZpZGVyIH0gZnJvbSBcIi4vYXV0aC9odHRwQXV0aFNjaGVtZVByb3ZpZGVyXCI7XG5pbXBvcnQgeyBkZWZhdWx0RW5kcG9pbnRSZXNvbHZlciB9IGZyb20gXCIuL2VuZHBvaW50L2VuZHBvaW50UmVzb2x2ZXJcIjtcbmV4cG9ydCBjb25zdCBnZXRSdW50aW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIGFwaVZlcnNpb246IFwiMjAyMy0wMS0wMVwiLFxuICAgICAgICBiYXNlNjREZWNvZGVyOiBjb25maWc/LmJhc2U2NERlY29kZXIgPz8gZnJvbUJhc2U2NCxcbiAgICAgICAgYmFzZTY0RW5jb2RlcjogY29uZmlnPy5iYXNlNjRFbmNvZGVyID8/IHRvQmFzZTY0LFxuICAgICAgICBkaXNhYmxlSG9zdFByZWZpeDogY29uZmlnPy5kaXNhYmxlSG9zdFByZWZpeCA/PyBmYWxzZSxcbiAgICAgICAgZW5kcG9pbnRQcm92aWRlcjogY29uZmlnPy5lbmRwb2ludFByb3ZpZGVyID8/IGRlZmF1bHRFbmRwb2ludFJlc29sdmVyLFxuICAgICAgICBleHRlbnNpb25zOiBjb25maWc/LmV4dGVuc2lvbnMgPz8gW10sXG4gICAgICAgIGh0dHBBdXRoU2NoZW1lUHJvdmlkZXI6IGNvbmZpZz8uaHR0cEF1dGhTY2hlbWVQcm92aWRlciA/PyBkZWZhdWx0U2lnbmluSHR0cEF1dGhTY2hlbWVQcm92aWRlcixcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVzOiBjb25maWc/Lmh0dHBBdXRoU2NoZW1lcyA/PyBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgc2NoZW1lSWQ6IFwiYXdzLmF1dGgjc2lndjRcIixcbiAgICAgICAgICAgICAgICBpZGVudGl0eVByb3ZpZGVyOiAoaXBjKSA9PiBpcGMuZ2V0SWRlbnRpdHlQcm92aWRlcihcImF3cy5hdXRoI3NpZ3Y0XCIpLFxuICAgICAgICAgICAgICAgIHNpZ25lcjogbmV3IEF3c1Nka1NpZ1Y0U2lnbmVyKCksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHNjaGVtZUlkOiBcInNtaXRoeS5hcGkjbm9BdXRoXCIsXG4gICAgICAgICAgICAgICAgaWRlbnRpdHlQcm92aWRlcjogKGlwYykgPT4gaXBjLmdldElkZW50aXR5UHJvdmlkZXIoXCJzbWl0aHkuYXBpI25vQXV0aFwiKSB8fCAoYXN5bmMgKCkgPT4gKHt9KSksXG4gICAgICAgICAgICAgICAgc2lnbmVyOiBuZXcgTm9BdXRoU2lnbmVyKCksXG4gICAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBsb2dnZXI6IGNvbmZpZz8ubG9nZ2VyID8/IG5ldyBOb09wTG9nZ2VyKCksXG4gICAgICAgIHByb3RvY29sOiBjb25maWc/LnByb3RvY29sID8/IG5ldyBBd3NSZXN0SnNvblByb3RvY29sKHsgZGVmYXVsdE5hbWVzcGFjZTogXCJjb20uYW1hem9uYXdzLnNpZ25pblwiIH0pLFxuICAgICAgICBzZXJ2aWNlSWQ6IGNvbmZpZz8uc2VydmljZUlkID8/IFwiU2lnbmluXCIsXG4gICAgICAgIHVybFBhcnNlcjogY29uZmlnPy51cmxQYXJzZXIgPz8gcGFyc2VVcmwsXG4gICAgICAgIHV0ZjhEZWNvZGVyOiBjb25maWc/LnV0ZjhEZWNvZGVyID8/IGZyb21VdGY4LFxuICAgICAgICB1dGY4RW5jb2RlcjogY29uZmlnPy51dGY4RW5jb2RlciA/PyB0b1V0ZjgsXG4gICAgfTtcbn07XG4iLCAiaW1wb3J0IHBhY2thZ2VJbmZvIGZyb20gXCIuLi8uLi8uLi9wYWNrYWdlLmpzb25cIjtcbmltcG9ydCB7IE5PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9PUFRJT05TLCBlbWl0V2FybmluZ0lmVW5zdXBwb3J0ZWRWZXJzaW9uIGFzIGF3c0NoZWNrVmVyc2lvbiB9IGZyb20gXCJAYXdzLXNkay9jb3JlXCI7XG5pbXBvcnQgeyBOT0RFX0FQUF9JRF9DT05GSUdfT1BUSU9OUywgY3JlYXRlRGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyIH0gZnJvbSBcIkBhd3Mtc2RrL3V0aWwtdXNlci1hZ2VudC1ub2RlXCI7XG5pbXBvcnQgeyBOT0RFX1JFR0lPTl9DT05GSUdfRklMRV9PUFRJT05TLCBOT0RFX1JFR0lPTl9DT05GSUdfT1BUSU9OUywgTk9ERV9VU0VfRFVBTFNUQUNLX0VORFBPSU5UX0NPTkZJR19PUFRJT05TLCBOT0RFX1VTRV9GSVBTX0VORFBPSU5UX0NPTkZJR19PUFRJT05TLCB9IGZyb20gXCJAc21pdGh5L2NvbmZpZy1yZXNvbHZlclwiO1xuaW1wb3J0IHsgSGFzaCB9IGZyb20gXCJAc21pdGh5L2hhc2gtbm9kZVwiO1xuaW1wb3J0IHsgTk9ERV9NQVhfQVRURU1QVF9DT05GSUdfT1BUSU9OUywgTk9ERV9SRVRSWV9NT0RFX0NPTkZJR19PUFRJT05TIH0gZnJvbSBcIkBzbWl0aHkvbWlkZGxld2FyZS1yZXRyeVwiO1xuaW1wb3J0IHsgbG9hZENvbmZpZyBhcyBsb2FkTm9kZUNvbmZpZyB9IGZyb20gXCJAc21pdGh5L25vZGUtY29uZmlnLXByb3ZpZGVyXCI7XG5pbXBvcnQgeyBOb2RlSHR0cEhhbmRsZXIgYXMgUmVxdWVzdEhhbmRsZXIsIHN0cmVhbUNvbGxlY3RvciB9IGZyb20gXCJAc21pdGh5L25vZGUtaHR0cC1oYW5kbGVyXCI7XG5pbXBvcnQgeyBlbWl0V2FybmluZ0lmVW5zdXBwb3J0ZWRWZXJzaW9uLCBsb2FkQ29uZmlnc0ZvckRlZmF1bHRNb2RlIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgY2FsY3VsYXRlQm9keUxlbmd0aCB9IGZyb20gXCJAc21pdGh5L3V0aWwtYm9keS1sZW5ndGgtbm9kZVwiO1xuaW1wb3J0IHsgcmVzb2x2ZURlZmF1bHRzTW9kZUNvbmZpZyB9IGZyb20gXCJAc21pdGh5L3V0aWwtZGVmYXVsdHMtbW9kZS1ub2RlXCI7XG5pbXBvcnQgeyBERUZBVUxUX1JFVFJZX01PREUgfSBmcm9tIFwiQHNtaXRoeS91dGlsLXJldHJ5XCI7XG5pbXBvcnQgeyBnZXRSdW50aW1lQ29uZmlnIGFzIGdldFNoYXJlZFJ1bnRpbWVDb25maWcgfSBmcm9tIFwiLi9ydW50aW1lQ29uZmlnLnNoYXJlZFwiO1xuZXhwb3J0IGNvbnN0IGdldFJ1bnRpbWVDb25maWcgPSAoY29uZmlnKSA9PiB7XG4gICAgZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbihwcm9jZXNzLnZlcnNpb24pO1xuICAgIGNvbnN0IGRlZmF1bHRzTW9kZSA9IHJlc29sdmVEZWZhdWx0c01vZGVDb25maWcoY29uZmlnKTtcbiAgICBjb25zdCBkZWZhdWx0Q29uZmlnUHJvdmlkZXIgPSAoKSA9PiBkZWZhdWx0c01vZGUoKS50aGVuKGxvYWRDb25maWdzRm9yRGVmYXVsdE1vZGUpO1xuICAgIGNvbnN0IGNsaWVudFNoYXJlZFZhbHVlcyA9IGdldFNoYXJlZFJ1bnRpbWVDb25maWcoY29uZmlnKTtcbiAgICBhd3NDaGVja1ZlcnNpb24ocHJvY2Vzcy52ZXJzaW9uKTtcbiAgICBjb25zdCBsb2FkZXJDb25maWcgPSB7XG4gICAgICAgIHByb2ZpbGU6IGNvbmZpZz8ucHJvZmlsZSxcbiAgICAgICAgbG9nZ2VyOiBjbGllbnRTaGFyZWRWYWx1ZXMubG9nZ2VyLFxuICAgIH07XG4gICAgcmV0dXJuIHtcbiAgICAgICAgLi4uY2xpZW50U2hhcmVkVmFsdWVzLFxuICAgICAgICAuLi5jb25maWcsXG4gICAgICAgIHJ1bnRpbWU6IFwibm9kZVwiLFxuICAgICAgICBkZWZhdWx0c01vZGUsXG4gICAgICAgIGF1dGhTY2hlbWVQcmVmZXJlbmNlOiBjb25maWc/LmF1dGhTY2hlbWVQcmVmZXJlbmNlID8/IGxvYWROb2RlQ29uZmlnKE5PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgICAgICBib2R5TGVuZ3RoQ2hlY2tlcjogY29uZmlnPy5ib2R5TGVuZ3RoQ2hlY2tlciA/PyBjYWxjdWxhdGVCb2R5TGVuZ3RoLFxuICAgICAgICBkZWZhdWx0VXNlckFnZW50UHJvdmlkZXI6IGNvbmZpZz8uZGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyID8/XG4gICAgICAgICAgICBjcmVhdGVEZWZhdWx0VXNlckFnZW50UHJvdmlkZXIoeyBzZXJ2aWNlSWQ6IGNsaWVudFNoYXJlZFZhbHVlcy5zZXJ2aWNlSWQsIGNsaWVudFZlcnNpb246IHBhY2thZ2VJbmZvLnZlcnNpb24gfSksXG4gICAgICAgIG1heEF0dGVtcHRzOiBjb25maWc/Lm1heEF0dGVtcHRzID8/IGxvYWROb2RlQ29uZmlnKE5PREVfTUFYX0FUVEVNUFRfQ09ORklHX09QVElPTlMsIGNvbmZpZyksXG4gICAgICAgIHJlZ2lvbjogY29uZmlnPy5yZWdpb24gPz9cbiAgICAgICAgICAgIGxvYWROb2RlQ29uZmlnKE5PREVfUkVHSU9OX0NPTkZJR19PUFRJT05TLCB7IC4uLk5PREVfUkVHSU9OX0NPTkZJR19GSUxFX09QVElPTlMsIC4uLmxvYWRlckNvbmZpZyB9KSxcbiAgICAgICAgcmVxdWVzdEhhbmRsZXI6IFJlcXVlc3RIYW5kbGVyLmNyZWF0ZShjb25maWc/LnJlcXVlc3RIYW5kbGVyID8/IGRlZmF1bHRDb25maWdQcm92aWRlciksXG4gICAgICAgIHJldHJ5TW9kZTogY29uZmlnPy5yZXRyeU1vZGUgPz9cbiAgICAgICAgICAgIGxvYWROb2RlQ29uZmlnKHtcbiAgICAgICAgICAgICAgICAuLi5OT0RFX1JFVFJZX01PREVfQ09ORklHX09QVElPTlMsXG4gICAgICAgICAgICAgICAgZGVmYXVsdDogYXN5bmMgKCkgPT4gKGF3YWl0IGRlZmF1bHRDb25maWdQcm92aWRlcigpKS5yZXRyeU1vZGUgfHwgREVGQVVMVF9SRVRSWV9NT0RFLFxuICAgICAgICAgICAgfSwgY29uZmlnKSxcbiAgICAgICAgc2hhMjU2OiBjb25maWc/LnNoYTI1NiA/PyBIYXNoLmJpbmQobnVsbCwgXCJzaGEyNTZcIiksXG4gICAgICAgIHN0cmVhbUNvbGxlY3RvcjogY29uZmlnPy5zdHJlYW1Db2xsZWN0b3IgPz8gc3RyZWFtQ29sbGVjdG9yLFxuICAgICAgICB1c2VEdWFsc3RhY2tFbmRwb2ludDogY29uZmlnPy51c2VEdWFsc3RhY2tFbmRwb2ludCA/PyBsb2FkTm9kZUNvbmZpZyhOT0RFX1VTRV9EVUFMU1RBQ0tfRU5EUE9JTlRfQ09ORklHX09QVElPTlMsIGxvYWRlckNvbmZpZyksXG4gICAgICAgIHVzZUZpcHNFbmRwb2ludDogY29uZmlnPy51c2VGaXBzRW5kcG9pbnQgPz8gbG9hZE5vZGVDb25maWcoTk9ERV9VU0VfRklQU19FTkRQT0lOVF9DT05GSUdfT1BUSU9OUywgbG9hZGVyQ29uZmlnKSxcbiAgICAgICAgdXNlckFnZW50QXBwSWQ6IGNvbmZpZz8udXNlckFnZW50QXBwSWQgPz8gbG9hZE5vZGVDb25maWcoTk9ERV9BUFBfSURfQ09ORklHX09QVElPTlMsIGxvYWRlckNvbmZpZyksXG4gICAgfTtcbn07XG4iLCAiZXhwb3J0IGNvbnN0IGdldEh0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiA9IChydW50aW1lQ29uZmlnKSA9PiB7XG4gICAgY29uc3QgX2h0dHBBdXRoU2NoZW1lcyA9IHJ1bnRpbWVDb25maWcuaHR0cEF1dGhTY2hlbWVzO1xuICAgIGxldCBfaHR0cEF1dGhTY2hlbWVQcm92aWRlciA9IHJ1bnRpbWVDb25maWcuaHR0cEF1dGhTY2hlbWVQcm92aWRlcjtcbiAgICBsZXQgX2NyZWRlbnRpYWxzID0gcnVudGltZUNvbmZpZy5jcmVkZW50aWFscztcbiAgICByZXR1cm4ge1xuICAgICAgICBzZXRIdHRwQXV0aFNjaGVtZShodHRwQXV0aFNjaGVtZSkge1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSBfaHR0cEF1dGhTY2hlbWVzLmZpbmRJbmRleCgoc2NoZW1lKSA9PiBzY2hlbWUuc2NoZW1lSWQgPT09IGh0dHBBdXRoU2NoZW1lLnNjaGVtZUlkKTtcbiAgICAgICAgICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICBfaHR0cEF1dGhTY2hlbWVzLnB1c2goaHR0cEF1dGhTY2hlbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgX2h0dHBBdXRoU2NoZW1lcy5zcGxpY2UoaW5kZXgsIDEsIGh0dHBBdXRoU2NoZW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVzKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9odHRwQXV0aFNjaGVtZXM7XG4gICAgICAgIH0sXG4gICAgICAgIHNldEh0dHBBdXRoU2NoZW1lUHJvdmlkZXIoaHR0cEF1dGhTY2hlbWVQcm92aWRlcikge1xuICAgICAgICAgICAgX2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSBodHRwQXV0aFNjaGVtZVByb3ZpZGVyO1xuICAgICAgICB9LFxuICAgICAgICBodHRwQXV0aFNjaGVtZVByb3ZpZGVyKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9odHRwQXV0aFNjaGVtZVByb3ZpZGVyO1xuICAgICAgICB9LFxuICAgICAgICBzZXRDcmVkZW50aWFscyhjcmVkZW50aWFscykge1xuICAgICAgICAgICAgX2NyZWRlbnRpYWxzID0gY3JlZGVudGlhbHM7XG4gICAgICAgIH0sXG4gICAgICAgIGNyZWRlbnRpYWxzKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9jcmVkZW50aWFscztcbiAgICAgICAgfSxcbiAgICB9O1xufTtcbmV4cG9ydCBjb25zdCByZXNvbHZlSHR0cEF1dGhSdW50aW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIGh0dHBBdXRoU2NoZW1lczogY29uZmlnLmh0dHBBdXRoU2NoZW1lcygpLFxuICAgICAgICBodHRwQXV0aFNjaGVtZVByb3ZpZGVyOiBjb25maWcuaHR0cEF1dGhTY2hlbWVQcm92aWRlcigpLFxuICAgICAgICBjcmVkZW50aWFsczogY29uZmlnLmNyZWRlbnRpYWxzKCksXG4gICAgfTtcbn07XG4iLCAiaW1wb3J0IHsgZ2V0QXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiwgcmVzb2x2ZUF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24sIH0gZnJvbSBcIkBhd3Mtc2RrL3JlZ2lvbi1jb25maWctcmVzb2x2ZXJcIjtcbmltcG9ydCB7IGdldEh0dHBIYW5kbGVyRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiwgcmVzb2x2ZUh0dHBIYW5kbGVyUnVudGltZUNvbmZpZyB9IGZyb20gXCJAc21pdGh5L3Byb3RvY29sLWh0dHBcIjtcbmltcG9ydCB7IGdldERlZmF1bHRFeHRlbnNpb25Db25maWd1cmF0aW9uLCByZXNvbHZlRGVmYXVsdFJ1bnRpbWVDb25maWcgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyBnZXRIdHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24sIHJlc29sdmVIdHRwQXV0aFJ1bnRpbWVDb25maWcgfSBmcm9tIFwiLi9hdXRoL2h0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvblwiO1xuZXhwb3J0IGNvbnN0IHJlc29sdmVSdW50aW1lRXh0ZW5zaW9ucyA9IChydW50aW1lQ29uZmlnLCBleHRlbnNpb25zKSA9PiB7XG4gICAgY29uc3QgZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiA9IE9iamVjdC5hc3NpZ24oZ2V0QXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbihydW50aW1lQ29uZmlnKSwgZ2V0RGVmYXVsdEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24ocnVudGltZUNvbmZpZyksIGdldEh0dHBIYW5kbGVyRXh0ZW5zaW9uQ29uZmlndXJhdGlvbihydW50aW1lQ29uZmlnKSwgZ2V0SHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uKHJ1bnRpbWVDb25maWcpKTtcbiAgICBleHRlbnNpb25zLmZvckVhY2goKGV4dGVuc2lvbikgPT4gZXh0ZW5zaW9uLmNvbmZpZ3VyZShleHRlbnNpb25Db25maWd1cmF0aW9uKSk7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24ocnVudGltZUNvbmZpZywgcmVzb2x2ZUF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24oZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiksIHJlc29sdmVEZWZhdWx0UnVudGltZUNvbmZpZyhleHRlbnNpb25Db25maWd1cmF0aW9uKSwgcmVzb2x2ZUh0dHBIYW5kbGVyUnVudGltZUNvbmZpZyhleHRlbnNpb25Db25maWd1cmF0aW9uKSwgcmVzb2x2ZUh0dHBBdXRoUnVudGltZUNvbmZpZyhleHRlbnNpb25Db25maWd1cmF0aW9uKSk7XG59O1xuIiwgImltcG9ydCB7IGdldEhvc3RIZWFkZXJQbHVnaW4sIHJlc29sdmVIb3N0SGVhZGVyQ29uZmlnLCB9IGZyb20gXCJAYXdzLXNkay9taWRkbGV3YXJlLWhvc3QtaGVhZGVyXCI7XG5pbXBvcnQgeyBnZXRMb2dnZXJQbHVnaW4gfSBmcm9tIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1sb2dnZXJcIjtcbmltcG9ydCB7IGdldFJlY3Vyc2lvbkRldGVjdGlvblBsdWdpbiB9IGZyb20gXCJAYXdzLXNkay9taWRkbGV3YXJlLXJlY3Vyc2lvbi1kZXRlY3Rpb25cIjtcbmltcG9ydCB7IGdldFVzZXJBZ2VudFBsdWdpbiwgcmVzb2x2ZVVzZXJBZ2VudENvbmZpZywgfSBmcm9tIFwiQGF3cy1zZGsvbWlkZGxld2FyZS11c2VyLWFnZW50XCI7XG5pbXBvcnQgeyByZXNvbHZlUmVnaW9uQ29uZmlnIH0gZnJvbSBcIkBzbWl0aHkvY29uZmlnLXJlc29sdmVyXCI7XG5pbXBvcnQgeyBEZWZhdWx0SWRlbnRpdHlQcm92aWRlckNvbmZpZywgZ2V0SHR0cEF1dGhTY2hlbWVFbmRwb2ludFJ1bGVTZXRQbHVnaW4sIGdldEh0dHBTaWduaW5nUGx1Z2luLCB9IGZyb20gXCJAc21pdGh5L2NvcmVcIjtcbmltcG9ydCB7IGdldFNjaGVtYVNlcmRlUGx1Z2luIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IGdldENvbnRlbnRMZW5ndGhQbHVnaW4gfSBmcm9tIFwiQHNtaXRoeS9taWRkbGV3YXJlLWNvbnRlbnQtbGVuZ3RoXCI7XG5pbXBvcnQgeyByZXNvbHZlRW5kcG9pbnRDb25maWcsIH0gZnJvbSBcIkBzbWl0aHkvbWlkZGxld2FyZS1lbmRwb2ludFwiO1xuaW1wb3J0IHsgZ2V0UmV0cnlQbHVnaW4sIHJlc29sdmVSZXRyeUNvbmZpZywgfSBmcm9tIFwiQHNtaXRoeS9taWRkbGV3YXJlLXJldHJ5XCI7XG5pbXBvcnQgeyBDbGllbnQgYXMgX19DbGllbnQsIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgZGVmYXVsdFNpZ25pbkh0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyLCByZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWcsIH0gZnJvbSBcIi4vYXV0aC9odHRwQXV0aFNjaGVtZVByb3ZpZGVyXCI7XG5pbXBvcnQgeyByZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzLCB9IGZyb20gXCIuL2VuZHBvaW50L0VuZHBvaW50UGFyYW1ldGVyc1wiO1xuaW1wb3J0IHsgZ2V0UnVudGltZUNvbmZpZyBhcyBfX2dldFJ1bnRpbWVDb25maWcgfSBmcm9tIFwiLi9ydW50aW1lQ29uZmlnXCI7XG5pbXBvcnQgeyByZXNvbHZlUnVudGltZUV4dGVuc2lvbnMgfSBmcm9tIFwiLi9ydW50aW1lRXh0ZW5zaW9uc1wiO1xuZXhwb3J0IHsgX19DbGllbnQgfTtcbmV4cG9ydCBjbGFzcyBTaWduaW5DbGllbnQgZXh0ZW5kcyBfX0NsaWVudCB7XG4gICAgY29uZmlnO1xuICAgIGNvbnN0cnVjdG9yKC4uLltjb25maWd1cmF0aW9uXSkge1xuICAgICAgICBjb25zdCBfY29uZmlnXzAgPSBfX2dldFJ1bnRpbWVDb25maWcoY29uZmlndXJhdGlvbiB8fCB7fSk7XG4gICAgICAgIHN1cGVyKF9jb25maWdfMCk7XG4gICAgICAgIHRoaXMuaW5pdENvbmZpZyA9IF9jb25maWdfMDtcbiAgICAgICAgY29uc3QgX2NvbmZpZ18xID0gcmVzb2x2ZUNsaWVudEVuZHBvaW50UGFyYW1ldGVycyhfY29uZmlnXzApO1xuICAgICAgICBjb25zdCBfY29uZmlnXzIgPSByZXNvbHZlVXNlckFnZW50Q29uZmlnKF9jb25maWdfMSk7XG4gICAgICAgIGNvbnN0IF9jb25maWdfMyA9IHJlc29sdmVSZXRyeUNvbmZpZyhfY29uZmlnXzIpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzQgPSByZXNvbHZlUmVnaW9uQ29uZmlnKF9jb25maWdfMyk7XG4gICAgICAgIGNvbnN0IF9jb25maWdfNSA9IHJlc29sdmVIb3N0SGVhZGVyQ29uZmlnKF9jb25maWdfNCk7XG4gICAgICAgIGNvbnN0IF9jb25maWdfNiA9IHJlc29sdmVFbmRwb2ludENvbmZpZyhfY29uZmlnXzUpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzcgPSByZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWcoX2NvbmZpZ182KTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ184ID0gcmVzb2x2ZVJ1bnRpbWVFeHRlbnNpb25zKF9jb25maWdfNywgY29uZmlndXJhdGlvbj8uZXh0ZW5zaW9ucyB8fCBbXSk7XG4gICAgICAgIHRoaXMuY29uZmlnID0gX2NvbmZpZ184O1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoZ2V0U2NoZW1hU2VyZGVQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGdldFVzZXJBZ2VudFBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoZ2V0UmV0cnlQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGdldENvbnRlbnRMZW5ndGhQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGdldEhvc3RIZWFkZXJQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGdldExvZ2dlclBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoZ2V0UmVjdXJzaW9uRGV0ZWN0aW9uUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShnZXRIdHRwQXV0aFNjaGVtZUVuZHBvaW50UnVsZVNldFBsdWdpbih0aGlzLmNvbmZpZywge1xuICAgICAgICAgICAgaHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXI6IGRlZmF1bHRTaWduaW5IdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlcixcbiAgICAgICAgICAgIGlkZW50aXR5UHJvdmlkZXJDb25maWdQcm92aWRlcjogYXN5bmMgKGNvbmZpZykgPT4gbmV3IERlZmF1bHRJZGVudGl0eVByb3ZpZGVyQ29uZmlnKHtcbiAgICAgICAgICAgICAgICBcImF3cy5hdXRoI3NpZ3Y0XCI6IGNvbmZpZy5jcmVkZW50aWFscyxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICB9KSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShnZXRIdHRwU2lnbmluZ1BsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgIH1cbiAgICBkZXN0cm95KCkge1xuICAgICAgICBzdXBlci5kZXN0cm95KCk7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IFNlcnZpY2VFeGNlcHRpb24gYXMgX19TZXJ2aWNlRXhjZXB0aW9uLCB9IGZyb20gXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjtcbmV4cG9ydCB7IF9fU2VydmljZUV4Y2VwdGlvbiB9O1xuZXhwb3J0IGNsYXNzIFNpZ25pblNlcnZpY2VFeGNlcHRpb24gZXh0ZW5kcyBfX1NlcnZpY2VFeGNlcHRpb24ge1xuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnMpIHtcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBTaWduaW5TZXJ2aWNlRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IFNpZ25pblNlcnZpY2VFeGNlcHRpb24gYXMgX19CYXNlRXhjZXB0aW9uIH0gZnJvbSBcIi4vU2lnbmluU2VydmljZUV4Y2VwdGlvblwiO1xuZXhwb3J0IGNsYXNzIEFjY2Vzc0RlbmllZEV4Y2VwdGlvbiBleHRlbmRzIF9fQmFzZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiQWNjZXNzRGVuaWVkRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBlcnJvcjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiQWNjZXNzRGVuaWVkRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEFjY2Vzc0RlbmllZEV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLmVycm9yID0gb3B0cy5lcnJvcjtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb24gZXh0ZW5kcyBfX0Jhc2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIkludGVybmFsU2VydmVyRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJzZXJ2ZXJcIjtcbiAgICBlcnJvcjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJzZXJ2ZXJcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5lcnJvciA9IG9wdHMuZXJyb3I7XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIFRvb01hbnlSZXF1ZXN0c0Vycm9yIGV4dGVuZHMgX19CYXNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJUb29NYW55UmVxdWVzdHNFcnJvclwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgZXJyb3I7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIlRvb01hbnlSZXF1ZXN0c0Vycm9yXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFRvb01hbnlSZXF1ZXN0c0Vycm9yLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuZXJyb3IgPSBvcHRzLmVycm9yO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBWYWxpZGF0aW9uRXhjZXB0aW9uIGV4dGVuZHMgX19CYXNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJWYWxpZGF0aW9uRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBlcnJvcjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiVmFsaWRhdGlvbkV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBWYWxpZGF0aW9uRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuZXJyb3IgPSBvcHRzLmVycm9yO1xuICAgIH1cbn1cbiIsICJjb25zdCBfQURFID0gXCJBY2Nlc3NEZW5pZWRFeGNlcHRpb25cIjtcbmNvbnN0IF9BVCA9IFwiQWNjZXNzVG9rZW5cIjtcbmNvbnN0IF9DT0FUID0gXCJDcmVhdGVPQXV0aDJUb2tlblwiO1xuY29uc3QgX0NPQVRSID0gXCJDcmVhdGVPQXV0aDJUb2tlblJlcXVlc3RcIjtcbmNvbnN0IF9DT0FUUkIgPSBcIkNyZWF0ZU9BdXRoMlRva2VuUmVxdWVzdEJvZHlcIjtcbmNvbnN0IF9DT0FUUkJyID0gXCJDcmVhdGVPQXV0aDJUb2tlblJlc3BvbnNlQm9keVwiO1xuY29uc3QgX0NPQVRSciA9IFwiQ3JlYXRlT0F1dGgyVG9rZW5SZXNwb25zZVwiO1xuY29uc3QgX0lTRSA9IFwiSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb25cIjtcbmNvbnN0IF9SVCA9IFwiUmVmcmVzaFRva2VuXCI7XG5jb25zdCBfVE1SRSA9IFwiVG9vTWFueVJlcXVlc3RzRXJyb3JcIjtcbmNvbnN0IF9WRSA9IFwiVmFsaWRhdGlvbkV4Y2VwdGlvblwiO1xuY29uc3QgX2FLSSA9IFwiYWNjZXNzS2V5SWRcIjtcbmNvbnN0IF9hVCA9IFwiYWNjZXNzVG9rZW5cIjtcbmNvbnN0IF9jID0gXCJjbGllbnRcIjtcbmNvbnN0IF9jSSA9IFwiY2xpZW50SWRcIjtcbmNvbnN0IF9jViA9IFwiY29kZVZlcmlmaWVyXCI7XG5jb25zdCBfY28gPSBcImNvZGVcIjtcbmNvbnN0IF9lID0gXCJlcnJvclwiO1xuY29uc3QgX2VJID0gXCJleHBpcmVzSW5cIjtcbmNvbnN0IF9nVCA9IFwiZ3JhbnRUeXBlXCI7XG5jb25zdCBfaCA9IFwiaHR0cFwiO1xuY29uc3QgX2hFID0gXCJodHRwRXJyb3JcIjtcbmNvbnN0IF9pVCA9IFwiaWRUb2tlblwiO1xuY29uc3QgX2pOID0gXCJqc29uTmFtZVwiO1xuY29uc3QgX20gPSBcIm1lc3NhZ2VcIjtcbmNvbnN0IF9yVCA9IFwicmVmcmVzaFRva2VuXCI7XG5jb25zdCBfclUgPSBcInJlZGlyZWN0VXJpXCI7XG5jb25zdCBfcyA9IFwic2VydmVyXCI7XG5jb25zdCBfc0FLID0gXCJzZWNyZXRBY2Nlc3NLZXlcIjtcbmNvbnN0IF9zVCA9IFwic2Vzc2lvblRva2VuXCI7XG5jb25zdCBfc20gPSBcInNtaXRoeS50cy5zZGsuc3ludGhldGljLmNvbS5hbWF6b25hd3Muc2lnbmluXCI7XG5jb25zdCBfdEkgPSBcInRva2VuSW5wdXRcIjtcbmNvbnN0IF90TyA9IFwidG9rZW5PdXRwdXRcIjtcbmNvbnN0IF90VCA9IFwidG9rZW5UeXBlXCI7XG5jb25zdCBuMCA9IFwiY29tLmFtYXpvbmF3cy5zaWduaW5cIjtcbmltcG9ydCB7IFR5cGVSZWdpc3RyeSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2NoZW1hXCI7XG5pbXBvcnQgeyBBY2Nlc3NEZW5pZWRFeGNlcHRpb24gYXMgX19BY2Nlc3NEZW5pZWRFeGNlcHRpb24sIEludGVybmFsU2VydmVyRXhjZXB0aW9uIGFzIF9fSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb24sIFRvb01hbnlSZXF1ZXN0c0Vycm9yIGFzIF9fVG9vTWFueVJlcXVlc3RzRXJyb3IsIFZhbGlkYXRpb25FeGNlcHRpb24gYXMgX19WYWxpZGF0aW9uRXhjZXB0aW9uLCB9IGZyb20gXCIuLi9tb2RlbHMvZXJyb3JzXCI7XG5pbXBvcnQgeyBTaWduaW5TZXJ2aWNlRXhjZXB0aW9uIGFzIF9fU2lnbmluU2VydmljZUV4Y2VwdGlvbiB9IGZyb20gXCIuLi9tb2RlbHMvU2lnbmluU2VydmljZUV4Y2VwdGlvblwiO1xuZXhwb3J0IHZhciBSZWZyZXNoVG9rZW4gPSBbMCwgbjAsIF9SVCwgOCwgMF07XG5leHBvcnQgdmFyIEFjY2Vzc0RlbmllZEV4Y2VwdGlvbiA9IFstMywgbjAsIF9BREUsIHsgW19lXTogX2MgfSwgW19lLCBfbV0sIFswLCAwXV07XG5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKEFjY2Vzc0RlbmllZEV4Y2VwdGlvbiwgX19BY2Nlc3NEZW5pZWRFeGNlcHRpb24pO1xuZXhwb3J0IHZhciBBY2Nlc3NUb2tlbiA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9BVCxcbiAgICA4LFxuICAgIFtfYUtJLCBfc0FLLCBfc1RdLFxuICAgIFtcbiAgICAgICAgWzAsIHsgW19qTl06IF9hS0kgfV0sXG4gICAgICAgIFswLCB7IFtfak5dOiBfc0FLIH1dLFxuICAgICAgICBbMCwgeyBbX2pOXTogX3NUIH1dLFxuICAgIF0sXG5dO1xuZXhwb3J0IHZhciBDcmVhdGVPQXV0aDJUb2tlblJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfQ09BVFIsXG4gICAgMCxcbiAgICBbX3RJXSxcbiAgICBbWygpID0+IENyZWF0ZU9BdXRoMlRva2VuUmVxdWVzdEJvZHksIDE2XV0sXG5dO1xuZXhwb3J0IHZhciBDcmVhdGVPQXV0aDJUb2tlblJlcXVlc3RCb2R5ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0NPQVRSQixcbiAgICAwLFxuICAgIFtfY0ksIF9nVCwgX2NvLCBfclUsIF9jViwgX3JUXSxcbiAgICBbXG4gICAgICAgIFswLCB7IFtfak5dOiBfY0kgfV0sXG4gICAgICAgIFswLCB7IFtfak5dOiBfZ1QgfV0sXG4gICAgICAgIDAsXG4gICAgICAgIFswLCB7IFtfak5dOiBfclUgfV0sXG4gICAgICAgIFswLCB7IFtfak5dOiBfY1YgfV0sXG4gICAgICAgIFsoKSA9PiBSZWZyZXNoVG9rZW4sIHsgW19qTl06IF9yVCB9XSxcbiAgICBdLFxuXTtcbmV4cG9ydCB2YXIgQ3JlYXRlT0F1dGgyVG9rZW5SZXNwb25zZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9DT0FUUnIsXG4gICAgMCxcbiAgICBbX3RPXSxcbiAgICBbWygpID0+IENyZWF0ZU9BdXRoMlRva2VuUmVzcG9uc2VCb2R5LCAxNl1dLFxuXTtcbmV4cG9ydCB2YXIgQ3JlYXRlT0F1dGgyVG9rZW5SZXNwb25zZUJvZHkgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfQ09BVFJCcixcbiAgICAwLFxuICAgIFtfYVQsIF90VCwgX2VJLCBfclQsIF9pVF0sXG4gICAgW1xuICAgICAgICBbKCkgPT4gQWNjZXNzVG9rZW4sIHsgW19qTl06IF9hVCB9XSxcbiAgICAgICAgWzAsIHsgW19qTl06IF90VCB9XSxcbiAgICAgICAgWzEsIHsgW19qTl06IF9lSSB9XSxcbiAgICAgICAgWygpID0+IFJlZnJlc2hUb2tlbiwgeyBbX2pOXTogX3JUIH1dLFxuICAgICAgICBbMCwgeyBbX2pOXTogX2lUIH1dLFxuICAgIF0sXG5dO1xuZXhwb3J0IHZhciBJbnRlcm5hbFNlcnZlckV4Y2VwdGlvbiA9IFstMywgbjAsIF9JU0UsIHsgW19lXTogX3MsIFtfaEVdOiA1MDAgfSwgW19lLCBfbV0sIFswLCAwXV07XG5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKEludGVybmFsU2VydmVyRXhjZXB0aW9uLCBfX0ludGVybmFsU2VydmVyRXhjZXB0aW9uKTtcbmV4cG9ydCB2YXIgVG9vTWFueVJlcXVlc3RzRXJyb3IgPSBbLTMsIG4wLCBfVE1SRSwgeyBbX2VdOiBfYywgW19oRV06IDQyOSB9LCBbX2UsIF9tXSwgWzAsIDBdXTtcblR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoVG9vTWFueVJlcXVlc3RzRXJyb3IsIF9fVG9vTWFueVJlcXVlc3RzRXJyb3IpO1xuZXhwb3J0IHZhciBWYWxpZGF0aW9uRXhjZXB0aW9uID0gWy0zLCBuMCwgX1ZFLCB7IFtfZV06IF9jLCBbX2hFXTogNDAwIH0sIFtfZSwgX21dLCBbMCwgMF1dO1xuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihWYWxpZGF0aW9uRXhjZXB0aW9uLCBfX1ZhbGlkYXRpb25FeGNlcHRpb24pO1xuZXhwb3J0IHZhciBTaWduaW5TZXJ2aWNlRXhjZXB0aW9uID0gWy0zLCBfc20sIFwiU2lnbmluU2VydmljZUV4Y2VwdGlvblwiLCAwLCBbXSwgW11dO1xuVHlwZVJlZ2lzdHJ5LmZvcihfc20pLnJlZ2lzdGVyRXJyb3IoU2lnbmluU2VydmljZUV4Y2VwdGlvbiwgX19TaWduaW5TZXJ2aWNlRXhjZXB0aW9uKTtcbmV4cG9ydCB2YXIgQ3JlYXRlT0F1dGgyVG9rZW4gPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfQ09BVCxcbiAgICB7IFtfaF06IFtcIlBPU1RcIiwgXCIvdjEvdG9rZW5cIiwgMjAwXSB9LFxuICAgICgpID0+IENyZWF0ZU9BdXRoMlRva2VuUmVxdWVzdCxcbiAgICAoKSA9PiBDcmVhdGVPQXV0aDJUb2tlblJlc3BvbnNlLFxuXTtcbiIsICJpbXBvcnQgeyBnZXRFbmRwb2ludFBsdWdpbiB9IGZyb20gXCJAc21pdGh5L21pZGRsZXdhcmUtZW5kcG9pbnRcIjtcbmltcG9ydCB7IENvbW1hbmQgYXMgJENvbW1hbmQgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyBjb21tb25QYXJhbXMgfSBmcm9tIFwiLi4vZW5kcG9pbnQvRW5kcG9pbnRQYXJhbWV0ZXJzXCI7XG5pbXBvcnQgeyBDcmVhdGVPQXV0aDJUb2tlbiB9IGZyb20gXCIuLi9zY2hlbWFzL3NjaGVtYXNfMFwiO1xuZXhwb3J0IHsgJENvbW1hbmQgfTtcbmV4cG9ydCBjbGFzcyBDcmVhdGVPQXV0aDJUb2tlbkNvbW1hbmQgZXh0ZW5kcyAkQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW2dldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiU2lnbmluXCIsIFwiQ3JlYXRlT0F1dGgyVG9rZW5cIiwge30pXG4gICAgLm4oXCJTaWduaW5DbGllbnRcIiwgXCJDcmVhdGVPQXV0aDJUb2tlbkNvbW1hbmRcIilcbiAgICAuc2MoQ3JlYXRlT0F1dGgyVG9rZW4pXG4gICAgLmJ1aWxkKCkge1xufVxuIiwgImltcG9ydCB7IGNyZWF0ZUFnZ3JlZ2F0ZWRDbGllbnQgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyBDcmVhdGVPQXV0aDJUb2tlbkNvbW1hbmQsIH0gZnJvbSBcIi4vY29tbWFuZHMvQ3JlYXRlT0F1dGgyVG9rZW5Db21tYW5kXCI7XG5pbXBvcnQgeyBTaWduaW5DbGllbnQgfSBmcm9tIFwiLi9TaWduaW5DbGllbnRcIjtcbmNvbnN0IGNvbW1hbmRzID0ge1xuICAgIENyZWF0ZU9BdXRoMlRva2VuQ29tbWFuZCxcbn07XG5leHBvcnQgY2xhc3MgU2lnbmluIGV4dGVuZHMgU2lnbmluQ2xpZW50IHtcbn1cbmNyZWF0ZUFnZ3JlZ2F0ZWRDbGllbnQoY29tbWFuZHMsIFNpZ25pbik7XG4iLCAiZXhwb3J0ICogZnJvbSBcIi4vQ3JlYXRlT0F1dGgyVG9rZW5Db21tYW5kXCI7XG4iLCAiZXhwb3J0IGNvbnN0IE9BdXRoMkVycm9yQ29kZSA9IHtcbiAgICBBVVRIQ09ERV9FWFBJUkVEOiBcIkFVVEhDT0RFX0VYUElSRURcIixcbiAgICBJTlNVRkZJQ0lFTlRfUEVSTUlTU0lPTlM6IFwiSU5TVUZGSUNJRU5UX1BFUk1JU1NJT05TXCIsXG4gICAgSU5WQUxJRF9SRVFVRVNUOiBcIklOVkFMSURfUkVRVUVTVFwiLFxuICAgIFNFUlZFUl9FUlJPUjogXCJzZXJ2ZXJfZXJyb3JcIixcbiAgICBUT0tFTl9FWFBJUkVEOiBcIlRPS0VOX0VYUElSRURcIixcbiAgICBVU0VSX0NSRURFTlRJQUxTX0NIQU5HRUQ6IFwiVVNFUl9DUkVERU5USUFMU19DSEFOR0VEXCIsXG59O1xuIiwgImV4cG9ydCAqIGZyb20gXCIuL1NpZ25pbkNsaWVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vU2lnbmluXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21tYW5kc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWxzL2VudW1zXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9tb2RlbHMvZXJyb3JzXCI7XG5leHBvcnQgeyBTaWduaW5TZXJ2aWNlRXhjZXB0aW9uIH0gZnJvbSBcIi4vbW9kZWxzL1NpZ25pblNlcnZpY2VFeGNlcHRpb25cIjtcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBjbGllbnQgPSByZXF1aXJlKCdAYXdzLXNkay9jb3JlL2NsaWVudCcpO1xudmFyIHByb3BlcnR5UHJvdmlkZXIgPSByZXF1aXJlKCdAc21pdGh5L3Byb3BlcnR5LXByb3ZpZGVyJyk7XG52YXIgc2hhcmVkSW5pRmlsZUxvYWRlciA9IHJlcXVpcmUoJ0BzbWl0aHkvc2hhcmVkLWluaS1maWxlLWxvYWRlcicpO1xudmFyIHByb3RvY29sSHR0cCA9IHJlcXVpcmUoJ0BzbWl0aHkvcHJvdG9jb2wtaHR0cCcpO1xudmFyIG5vZGVfY3J5cHRvID0gcmVxdWlyZSgnbm9kZTpjcnlwdG8nKTtcbnZhciBub2RlX2ZzID0gcmVxdWlyZSgnbm9kZTpmcycpO1xudmFyIG5vZGVfb3MgPSByZXF1aXJlKCdub2RlOm9zJyk7XG52YXIgbm9kZV9wYXRoID0gcmVxdWlyZSgnbm9kZTpwYXRoJyk7XG5cbmNsYXNzIExvZ2luQ3JlZGVudGlhbHNGZXRjaGVyIHtcbiAgICBwcm9maWxlRGF0YTtcbiAgICBpbml0O1xuICAgIGNhbGxlckNsaWVudENvbmZpZztcbiAgICBzdGF0aWMgUkVGUkVTSF9USFJFU0hPTEQgPSA1ICogNjAgKiAxMDAwO1xuICAgIGNvbnN0cnVjdG9yKHByb2ZpbGVEYXRhLCBpbml0LCBjYWxsZXJDbGllbnRDb25maWcpIHtcbiAgICAgICAgdGhpcy5wcm9maWxlRGF0YSA9IHByb2ZpbGVEYXRhO1xuICAgICAgICB0aGlzLmluaXQgPSBpbml0O1xuICAgICAgICB0aGlzLmNhbGxlckNsaWVudENvbmZpZyA9IGNhbGxlckNsaWVudENvbmZpZztcbiAgICB9XG4gICAgYXN5bmMgbG9hZENyZWRlbnRpYWxzKCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IGF3YWl0IHRoaXMubG9hZFRva2VuKCk7XG4gICAgICAgIGlmICghdG9rZW4pIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLkNyZWRlbnRpYWxzUHJvdmlkZXJFcnJvcihgRmFpbGVkIHRvIGxvYWQgYSB0b2tlbiBmb3Igc2Vzc2lvbiAke3RoaXMubG9naW5TZXNzaW9ufSwgcGxlYXNlIHJlLWF1dGhlbnRpY2F0ZSB1c2luZyBhd3MgbG9naW5gLCB7IHRyeU5leHRMaW5rOiBmYWxzZSwgbG9nZ2VyOiB0aGlzLmxvZ2dlciB9KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhY2Nlc3NUb2tlbiA9IHRva2VuLmFjY2Vzc1Rva2VuO1xuICAgICAgICBjb25zdCBub3cgPSBEYXRlLm5vdygpO1xuICAgICAgICBjb25zdCBleHBpcnlUaW1lID0gbmV3IERhdGUoYWNjZXNzVG9rZW4uZXhwaXJlc0F0KS5nZXRUaW1lKCk7XG4gICAgICAgIGNvbnN0IHRpbWVVbnRpbEV4cGlyeSA9IGV4cGlyeVRpbWUgLSBub3c7XG4gICAgICAgIGlmICh0aW1lVW50aWxFeHBpcnkgPD0gTG9naW5DcmVkZW50aWFsc0ZldGNoZXIuUkVGUkVTSF9USFJFU0hPTEQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnJlZnJlc2godG9rZW4pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBhY2Nlc3NLZXlJZDogYWNjZXNzVG9rZW4uYWNjZXNzS2V5SWQsXG4gICAgICAgICAgICBzZWNyZXRBY2Nlc3NLZXk6IGFjY2Vzc1Rva2VuLnNlY3JldEFjY2Vzc0tleSxcbiAgICAgICAgICAgIHNlc3Npb25Ub2tlbjogYWNjZXNzVG9rZW4uc2Vzc2lvblRva2VuLFxuICAgICAgICAgICAgYWNjb3VudElkOiBhY2Nlc3NUb2tlbi5hY2NvdW50SWQsXG4gICAgICAgICAgICBleHBpcmF0aW9uOiBuZXcgRGF0ZShhY2Nlc3NUb2tlbi5leHBpcmVzQXQpLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBnZXQgbG9nZ2VyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pbml0Py5sb2dnZXI7XG4gICAgfVxuICAgIGdldCBsb2dpblNlc3Npb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnByb2ZpbGVEYXRhLmxvZ2luX3Nlc3Npb247XG4gICAgfVxuICAgIGFzeW5jIHJlZnJlc2godG9rZW4pIHtcbiAgICAgICAgY29uc3QgeyBTaWduaW5DbGllbnQsIENyZWF0ZU9BdXRoMlRva2VuQ29tbWFuZCB9ID0gYXdhaXQgaW1wb3J0KCdAYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9zaWduaW4nKTtcbiAgICAgICAgY29uc3QgeyBsb2dnZXIsIHVzZXJBZ2VudEFwcElkIH0gPSB0aGlzLmNhbGxlckNsaWVudENvbmZpZyA/PyB7fTtcbiAgICAgICAgY29uc3QgaXNIMiA9IChyZXF1ZXN0SGFuZGxlcikgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3RIYW5kbGVyPy5tZXRhZGF0YT8uaGFuZGxlclByb3RvY29sID09PSBcImgyXCI7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHJlcXVlc3RIYW5kbGVyID0gaXNIMih0aGlzLmNhbGxlckNsaWVudENvbmZpZz8ucmVxdWVzdEhhbmRsZXIpXG4gICAgICAgICAgICA/IHVuZGVmaW5lZFxuICAgICAgICAgICAgOiB0aGlzLmNhbGxlckNsaWVudENvbmZpZz8ucmVxdWVzdEhhbmRsZXI7XG4gICAgICAgIGNvbnN0IHJlZ2lvbiA9IHRoaXMucHJvZmlsZURhdGEucmVnaW9uID8/IChhd2FpdCB0aGlzLmNhbGxlckNsaWVudENvbmZpZz8ucmVnaW9uPy4oKSkgPz8gcHJvY2Vzcy5lbnYuQVdTX1JFR0lPTjtcbiAgICAgICAgY29uc3QgY2xpZW50ID0gbmV3IFNpZ25pbkNsaWVudCh7XG4gICAgICAgICAgICBjcmVkZW50aWFsczoge1xuICAgICAgICAgICAgICAgIGFjY2Vzc0tleUlkOiBcIlwiLFxuICAgICAgICAgICAgICAgIHNlY3JldEFjY2Vzc0tleTogXCJcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZWdpb24sXG4gICAgICAgICAgICByZXF1ZXN0SGFuZGxlcixcbiAgICAgICAgICAgIGxvZ2dlcixcbiAgICAgICAgICAgIHVzZXJBZ2VudEFwcElkLFxuICAgICAgICAgICAgLi4udGhpcy5pbml0Py5jbGllbnRDb25maWcsXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmNyZWF0ZURQb1BJbnRlcmNlcHRvcihjbGllbnQubWlkZGxld2FyZVN0YWNrKTtcbiAgICAgICAgY29uc3QgY29tbWFuZElucHV0ID0ge1xuICAgICAgICAgICAgdG9rZW5JbnB1dDoge1xuICAgICAgICAgICAgICAgIGNsaWVudElkOiB0b2tlbi5jbGllbnRJZCxcbiAgICAgICAgICAgICAgICByZWZyZXNoVG9rZW46IHRva2VuLnJlZnJlc2hUb2tlbixcbiAgICAgICAgICAgICAgICBncmFudFR5cGU6IFwicmVmcmVzaF90b2tlblwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LnNlbmQobmV3IENyZWF0ZU9BdXRoMlRva2VuQ29tbWFuZChjb21tYW5kSW5wdXQpKTtcbiAgICAgICAgICAgIGNvbnN0IHsgYWNjZXNzS2V5SWQsIHNlY3JldEFjY2Vzc0tleSwgc2Vzc2lvblRva2VuIH0gPSByZXNwb25zZS50b2tlbk91dHB1dD8uYWNjZXNzVG9rZW4gPz8ge307XG4gICAgICAgICAgICBjb25zdCB7IHJlZnJlc2hUb2tlbiwgZXhwaXJlc0luIH0gPSByZXNwb25zZS50b2tlbk91dHB1dCA/PyB7fTtcbiAgICAgICAgICAgIGlmICghYWNjZXNzS2V5SWQgfHwgIXNlY3JldEFjY2Vzc0tleSB8fCAhc2Vzc2lvblRva2VuIHx8ICFyZWZyZXNoVG9rZW4pIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoXCJUb2tlbiByZWZyZXNoIHJlc3BvbnNlIG1pc3NpbmcgcmVxdWlyZWQgZmllbGRzXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgbG9nZ2VyOiB0aGlzLmxvZ2dlcixcbiAgICAgICAgICAgICAgICAgICAgdHJ5TmV4dExpbms6IGZhbHNlLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgZXhwaXJlc0luTXMgPSAoZXhwaXJlc0luID8/IDkwMCkgKiAxMDAwO1xuICAgICAgICAgICAgY29uc3QgZXhwaXJhdGlvbiA9IG5ldyBEYXRlKERhdGUubm93KCkgKyBleHBpcmVzSW5Ncyk7XG4gICAgICAgICAgICBjb25zdCB1cGRhdGVkVG9rZW4gPSB7XG4gICAgICAgICAgICAgICAgLi4udG9rZW4sXG4gICAgICAgICAgICAgICAgYWNjZXNzVG9rZW46IHtcbiAgICAgICAgICAgICAgICAgICAgLi4udG9rZW4uYWNjZXNzVG9rZW4sXG4gICAgICAgICAgICAgICAgICAgIGFjY2Vzc0tleUlkOiBhY2Nlc3NLZXlJZCxcbiAgICAgICAgICAgICAgICAgICAgc2VjcmV0QWNjZXNzS2V5OiBzZWNyZXRBY2Nlc3NLZXksXG4gICAgICAgICAgICAgICAgICAgIHNlc3Npb25Ub2tlbjogc2Vzc2lvblRva2VuLFxuICAgICAgICAgICAgICAgICAgICBleHBpcmVzQXQ6IGV4cGlyYXRpb24udG9JU09TdHJpbmcoKSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHJlZnJlc2hUb2tlbjogcmVmcmVzaFRva2VuLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuc2F2ZVRva2VuKHVwZGF0ZWRUb2tlbik7XG4gICAgICAgICAgICBjb25zdCBuZXdBY2Nlc3NUb2tlbiA9IHVwZGF0ZWRUb2tlbi5hY2Nlc3NUb2tlbjtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgYWNjZXNzS2V5SWQ6IG5ld0FjY2Vzc1Rva2VuLmFjY2Vzc0tleUlkLFxuICAgICAgICAgICAgICAgIHNlY3JldEFjY2Vzc0tleTogbmV3QWNjZXNzVG9rZW4uc2VjcmV0QWNjZXNzS2V5LFxuICAgICAgICAgICAgICAgIHNlc3Npb25Ub2tlbjogbmV3QWNjZXNzVG9rZW4uc2Vzc2lvblRva2VuLFxuICAgICAgICAgICAgICAgIGFjY291bnRJZDogbmV3QWNjZXNzVG9rZW4uYWNjb3VudElkLFxuICAgICAgICAgICAgICAgIGV4cGlyYXRpb24sXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgaWYgKGVycm9yLm5hbWUgPT09IFwiQWNjZXNzRGVuaWVkRXhjZXB0aW9uXCIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBlcnJvclR5cGUgPSBlcnJvci5lcnJvcjtcbiAgICAgICAgICAgICAgICBsZXQgbWVzc2FnZTtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGVycm9yVHlwZSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIFwiVE9LRU5fRVhQSVJFRFwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9IFwiWW91ciBzZXNzaW9uIGhhcyBleHBpcmVkLiBQbGVhc2UgcmVhdXRoZW50aWNhdGUuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBcIlVTRVJfQ1JFREVOVElBTFNfQ0hBTkdFRFwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJVbmFibGUgdG8gcmVmcmVzaCBjcmVkZW50aWFscyBiZWNhdXNlIG9mIGEgY2hhbmdlIGluIHlvdXIgcGFzc3dvcmQuIFBsZWFzZSByZWF1dGhlbnRpY2F0ZSB3aXRoIHlvdXIgbmV3IHBhc3N3b3JkLlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgXCJJTlNVRkZJQ0lFTlRfUEVSTUlTU0lPTlNcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVW5hYmxlIHRvIHJlZnJlc2ggY3JlZGVudGlhbHMgZHVlIHRvIGluc3VmZmljaWVudCBwZXJtaXNzaW9ucy4gWW91IG1heSBiZSBtaXNzaW5nIHBlcm1pc3Npb24gZm9yIHRoZSAnQ3JlYXRlT0F1dGgyVG9rZW4nIGFjdGlvbi5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9IGBGYWlsZWQgdG8gcmVmcmVzaCB0b2tlbjogJHtTdHJpbmcoZXJyb3IpfS4gUGxlYXNlIHJlLWF1dGhlbnRpY2F0ZSB1c2luZyBcXGBhd3MgbG9naW5cXGBgO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IobWVzc2FnZSwgeyBsb2dnZXI6IHRoaXMubG9nZ2VyLCB0cnlOZXh0TGluazogZmFsc2UgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoYEZhaWxlZCB0byByZWZyZXNoIHRva2VuOiAke1N0cmluZyhlcnJvcil9LiBQbGVhc2UgcmUtYXV0aGVudGljYXRlIHVzaW5nIGF3cyBsb2dpbmAsIHsgbG9nZ2VyOiB0aGlzLmxvZ2dlciB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBhc3luYyBsb2FkVG9rZW4oKSB7XG4gICAgICAgIGNvbnN0IHRva2VuRmlsZVBhdGggPSB0aGlzLmdldFRva2VuRmlsZVBhdGgoKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGxldCB0b2tlbkRhdGE7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHRva2VuRGF0YSA9IGF3YWl0IHNoYXJlZEluaUZpbGVMb2FkZXIucmVhZEZpbGUodG9rZW5GaWxlUGF0aCwgeyBpZ25vcmVDYWNoZTogdGhpcy5pbml0Py5pZ25vcmVDYWNoZSB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIHtcbiAgICAgICAgICAgICAgICB0b2tlbkRhdGEgPSBhd2FpdCBub2RlX2ZzLnByb21pc2VzLnJlYWRGaWxlKHRva2VuRmlsZVBhdGgsIFwidXRmOFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHRva2VuID0gSlNPTi5wYXJzZSh0b2tlbkRhdGEpO1xuICAgICAgICAgICAgY29uc3QgbWlzc2luZ0ZpZWxkcyA9IFtcImFjY2Vzc1Rva2VuXCIsIFwiY2xpZW50SWRcIiwgXCJyZWZyZXNoVG9rZW5cIiwgXCJkcG9wS2V5XCJdLmZpbHRlcigoaykgPT4gIXRva2VuW2tdKTtcbiAgICAgICAgICAgIGlmICghdG9rZW4uYWNjZXNzVG9rZW4/LmFjY291bnRJZCkge1xuICAgICAgICAgICAgICAgIG1pc3NpbmdGaWVsZHMucHVzaChcImFjY291bnRJZFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChtaXNzaW5nRmllbGRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoYFRva2VuIHZhbGlkYXRpb24gZmFpbGVkLCBtaXNzaW5nIGZpZWxkczogJHttaXNzaW5nRmllbGRzLmpvaW4oXCIsIFwiKX1gLCB7XG4gICAgICAgICAgICAgICAgICAgIGxvZ2dlcjogdGhpcy5sb2dnZXIsXG4gICAgICAgICAgICAgICAgICAgIHRyeU5leHRMaW5rOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0b2tlbjtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLkNyZWRlbnRpYWxzUHJvdmlkZXJFcnJvcihgRmFpbGVkIHRvIGxvYWQgdG9rZW4gZnJvbSAke3Rva2VuRmlsZVBhdGh9OiAke1N0cmluZyhlcnJvcil9YCwge1xuICAgICAgICAgICAgICAgIGxvZ2dlcjogdGhpcy5sb2dnZXIsXG4gICAgICAgICAgICAgICAgdHJ5TmV4dExpbms6IGZhbHNlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgYXN5bmMgc2F2ZVRva2VuKHRva2VuKSB7XG4gICAgICAgIGNvbnN0IHRva2VuRmlsZVBhdGggPSB0aGlzLmdldFRva2VuRmlsZVBhdGgoKTtcbiAgICAgICAgY29uc3QgZGlyZWN0b3J5ID0gbm9kZV9wYXRoLmRpcm5hbWUodG9rZW5GaWxlUGF0aCk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhd2FpdCBub2RlX2ZzLnByb21pc2VzLm1rZGlyKGRpcmVjdG9yeSwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIH1cbiAgICAgICAgYXdhaXQgbm9kZV9mcy5wcm9taXNlcy53cml0ZUZpbGUodG9rZW5GaWxlUGF0aCwgSlNPTi5zdHJpbmdpZnkodG9rZW4sIG51bGwsIDIpLCBcInV0ZjhcIik7XG4gICAgfVxuICAgIGdldFRva2VuRmlsZVBhdGgoKSB7XG4gICAgICAgIGNvbnN0IGRpcmVjdG9yeSA9IHByb2Nlc3MuZW52LkFXU19MT0dJTl9DQUNIRV9ESVJFQ1RPUlkgPz8gbm9kZV9wYXRoLmpvaW4obm9kZV9vcy5ob21lZGlyKCksIFwiLmF3c1wiLCBcImxvZ2luXCIsIFwiY2FjaGVcIik7XG4gICAgICAgIGNvbnN0IGxvZ2luU2Vzc2lvbkJ5dGVzID0gQnVmZmVyLmZyb20odGhpcy5sb2dpblNlc3Npb24sIFwidXRmOFwiKTtcbiAgICAgICAgY29uc3QgbG9naW5TZXNzaW9uU2hhMjU2ID0gbm9kZV9jcnlwdG8uY3JlYXRlSGFzaChcInNoYTI1NlwiKS51cGRhdGUobG9naW5TZXNzaW9uQnl0ZXMpLmRpZ2VzdChcImhleFwiKTtcbiAgICAgICAgcmV0dXJuIG5vZGVfcGF0aC5qb2luKGRpcmVjdG9yeSwgYCR7bG9naW5TZXNzaW9uU2hhMjU2fS5qc29uYCk7XG4gICAgfVxuICAgIGRlclRvUmF3U2lnbmF0dXJlKGRlclNpZ25hdHVyZSkge1xuICAgICAgICBsZXQgb2Zmc2V0ID0gMjtcbiAgICAgICAgaWYgKGRlclNpZ25hdHVyZVtvZmZzZXRdICE9PSAweDAyKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIERFUiBzaWduYXR1cmVcIik7XG4gICAgICAgIH1cbiAgICAgICAgb2Zmc2V0Kys7XG4gICAgICAgIGNvbnN0IHJMZW5ndGggPSBkZXJTaWduYXR1cmVbb2Zmc2V0KytdO1xuICAgICAgICBsZXQgciA9IGRlclNpZ25hdHVyZS5zdWJhcnJheShvZmZzZXQsIG9mZnNldCArIHJMZW5ndGgpO1xuICAgICAgICBvZmZzZXQgKz0gckxlbmd0aDtcbiAgICAgICAgaWYgKGRlclNpZ25hdHVyZVtvZmZzZXRdICE9PSAweDAyKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIERFUiBzaWduYXR1cmVcIik7XG4gICAgICAgIH1cbiAgICAgICAgb2Zmc2V0Kys7XG4gICAgICAgIGNvbnN0IHNMZW5ndGggPSBkZXJTaWduYXR1cmVbb2Zmc2V0KytdO1xuICAgICAgICBsZXQgcyA9IGRlclNpZ25hdHVyZS5zdWJhcnJheShvZmZzZXQsIG9mZnNldCArIHNMZW5ndGgpO1xuICAgICAgICByID0gclswXSA9PT0gMHgwMCA/IHIuc3ViYXJyYXkoMSkgOiByO1xuICAgICAgICBzID0gc1swXSA9PT0gMHgwMCA/IHMuc3ViYXJyYXkoMSkgOiBzO1xuICAgICAgICBjb25zdCByUGFkZGVkID0gQnVmZmVyLmNvbmNhdChbQnVmZmVyLmFsbG9jKDMyIC0gci5sZW5ndGgpLCByXSk7XG4gICAgICAgIGNvbnN0IHNQYWRkZWQgPSBCdWZmZXIuY29uY2F0KFtCdWZmZXIuYWxsb2MoMzIgLSBzLmxlbmd0aCksIHNdKTtcbiAgICAgICAgcmV0dXJuIEJ1ZmZlci5jb25jYXQoW3JQYWRkZWQsIHNQYWRkZWRdKTtcbiAgICB9XG4gICAgY3JlYXRlRFBvUEludGVyY2VwdG9yKG1pZGRsZXdhcmVTdGFjaykge1xuICAgICAgICBtaWRkbGV3YXJlU3RhY2suYWRkKChuZXh0KSA9PiBhc3luYyAoYXJncykgPT4ge1xuICAgICAgICAgICAgaWYgKHByb3RvY29sSHR0cC5IdHRwUmVxdWVzdC5pc0luc3RhbmNlKGFyZ3MucmVxdWVzdCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZXF1ZXN0ID0gYXJncy5yZXF1ZXN0O1xuICAgICAgICAgICAgICAgIGNvbnN0IGFjdHVhbEVuZHBvaW50ID0gYCR7cmVxdWVzdC5wcm90b2NvbH0vLyR7cmVxdWVzdC5ob3N0bmFtZX0ke3JlcXVlc3QucG9ydCA/IGA6JHtyZXF1ZXN0LnBvcnR9YCA6IFwiXCJ9JHtyZXF1ZXN0LnBhdGh9YDtcbiAgICAgICAgICAgICAgICBjb25zdCBkcG9wID0gYXdhaXQgdGhpcy5nZW5lcmF0ZURwb3AocmVxdWVzdC5tZXRob2QsIGFjdHVhbEVuZHBvaW50KTtcbiAgICAgICAgICAgICAgICByZXF1ZXN0LmhlYWRlcnMgPSB7XG4gICAgICAgICAgICAgICAgICAgIC4uLnJlcXVlc3QuaGVhZGVycyxcbiAgICAgICAgICAgICAgICAgICAgRFBvUDogZHBvcCxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG5leHQoYXJncyk7XG4gICAgICAgIH0sIHtcbiAgICAgICAgICAgIHN0ZXA6IFwiZmluYWxpemVSZXF1ZXN0XCIsXG4gICAgICAgICAgICBuYW1lOiBcImRwb3BJbnRlcmNlcHRvclwiLFxuICAgICAgICAgICAgb3ZlcnJpZGU6IHRydWUsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBhc3luYyBnZW5lcmF0ZURwb3AobWV0aG9kID0gXCJQT1NUXCIsIGVuZHBvaW50KSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gYXdhaXQgdGhpcy5sb2FkVG9rZW4oKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHByaXZhdGVLZXkgPSBub2RlX2NyeXB0by5jcmVhdGVQcml2YXRlS2V5KHtcbiAgICAgICAgICAgICAgICBrZXk6IHRva2VuLmRwb3BLZXksXG4gICAgICAgICAgICAgICAgZm9ybWF0OiBcInBlbVwiLFxuICAgICAgICAgICAgICAgIHR5cGU6IFwic2VjMVwiLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCBwdWJsaWNLZXkgPSBub2RlX2NyeXB0by5jcmVhdGVQdWJsaWNLZXkocHJpdmF0ZUtleSk7XG4gICAgICAgICAgICBjb25zdCBwdWJsaWNEZXIgPSBwdWJsaWNLZXkuZXhwb3J0KHsgZm9ybWF0OiBcImRlclwiLCB0eXBlOiBcInNwa2lcIiB9KTtcbiAgICAgICAgICAgIGxldCBwb2ludFN0YXJ0ID0gLTE7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHB1YmxpY0Rlci5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGlmIChwdWJsaWNEZXJbaV0gPT09IDB4MDQpIHtcbiAgICAgICAgICAgICAgICAgICAgcG9pbnRTdGFydCA9IGk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHggPSBwdWJsaWNEZXIuc2xpY2UocG9pbnRTdGFydCArIDEsIHBvaW50U3RhcnQgKyAzMyk7XG4gICAgICAgICAgICBjb25zdCB5ID0gcHVibGljRGVyLnNsaWNlKHBvaW50U3RhcnQgKyAzMywgcG9pbnRTdGFydCArIDY1KTtcbiAgICAgICAgICAgIGNvbnN0IGhlYWRlciA9IHtcbiAgICAgICAgICAgICAgICBhbGc6IFwiRVMyNTZcIixcbiAgICAgICAgICAgICAgICB0eXA6IFwiZHBvcCtqd3RcIixcbiAgICAgICAgICAgICAgICBqd2s6IHtcbiAgICAgICAgICAgICAgICAgICAga3R5OiBcIkVDXCIsXG4gICAgICAgICAgICAgICAgICAgIGNydjogXCJQLTI1NlwiLFxuICAgICAgICAgICAgICAgICAgICB4OiB4LnRvU3RyaW5nKFwiYmFzZTY0dXJsXCIpLFxuICAgICAgICAgICAgICAgICAgICB5OiB5LnRvU3RyaW5nKFwiYmFzZTY0dXJsXCIpLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY29uc3QgcGF5bG9hZCA9IHtcbiAgICAgICAgICAgICAgICBqdGk6IGNyeXB0by5yYW5kb21VVUlEKCksXG4gICAgICAgICAgICAgICAgaHRtOiBtZXRob2QsXG4gICAgICAgICAgICAgICAgaHR1OiBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBpYXQ6IE1hdGguZmxvb3IoRGF0ZS5ub3coKSAvIDEwMDApLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGNvbnN0IGhlYWRlckI2NCA9IEJ1ZmZlci5mcm9tKEpTT04uc3RyaW5naWZ5KGhlYWRlcikpLnRvU3RyaW5nKFwiYmFzZTY0dXJsXCIpO1xuICAgICAgICAgICAgY29uc3QgcGF5bG9hZEI2NCA9IEJ1ZmZlci5mcm9tKEpTT04uc3RyaW5naWZ5KHBheWxvYWQpKS50b1N0cmluZyhcImJhc2U2NHVybFwiKTtcbiAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgJHtoZWFkZXJCNjR9LiR7cGF5bG9hZEI2NH1gO1xuICAgICAgICAgICAgY29uc3QgYXNuMVNpZ25hdHVyZSA9IG5vZGVfY3J5cHRvLnNpZ24oXCJzaGEyNTZcIiwgQnVmZmVyLmZyb20obWVzc2FnZSksIHByaXZhdGVLZXkpO1xuICAgICAgICAgICAgY29uc3QgcmF3U2lnbmF0dXJlID0gdGhpcy5kZXJUb1Jhd1NpZ25hdHVyZShhc24xU2lnbmF0dXJlKTtcbiAgICAgICAgICAgIGNvbnN0IHNpZ25hdHVyZUI2NCA9IHJhd1NpZ25hdHVyZS50b1N0cmluZyhcImJhc2U2NHVybFwiKTtcbiAgICAgICAgICAgIHJldHVybiBgJHttZXNzYWdlfS4ke3NpZ25hdHVyZUI2NH1gO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKGBGYWlsZWQgdG8gZ2VuZXJhdGUgRHBvcCBwcm9vZjogJHtlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6IFN0cmluZyhlcnJvcil9YCwgeyBsb2dnZXI6IHRoaXMubG9nZ2VyLCB0cnlOZXh0TGluazogZmFsc2UgfSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmNvbnN0IGZyb21Mb2dpbkNyZWRlbnRpYWxzID0gKGluaXQpID0+IGFzeW5jICh7IGNhbGxlckNsaWVudENvbmZpZyB9ID0ge30pID0+IHtcbiAgICBpbml0Py5sb2dnZXI/LmRlYnVnPy4oXCJAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVycyAtIGZyb21Mb2dpbkNyZWRlbnRpYWxzXCIpO1xuICAgIGNvbnN0IHByb2ZpbGVzID0gYXdhaXQgc2hhcmVkSW5pRmlsZUxvYWRlci5wYXJzZUtub3duRmlsZXMoaW5pdCB8fCB7fSk7XG4gICAgY29uc3QgcHJvZmlsZU5hbWUgPSBzaGFyZWRJbmlGaWxlTG9hZGVyLmdldFByb2ZpbGVOYW1lKHtcbiAgICAgICAgcHJvZmlsZTogaW5pdD8ucHJvZmlsZSA/PyBjYWxsZXJDbGllbnRDb25maWc/LnByb2ZpbGUsXG4gICAgfSk7XG4gICAgY29uc3QgcHJvZmlsZSA9IHByb2ZpbGVzW3Byb2ZpbGVOYW1lXTtcbiAgICBpZiAoIXByb2ZpbGU/LmxvZ2luX3Nlc3Npb24pIHtcbiAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKGBQcm9maWxlICR7cHJvZmlsZU5hbWV9IGRvZXMgbm90IGNvbnRhaW4gbG9naW5fc2Vzc2lvbi5gLCB7XG4gICAgICAgICAgICB0cnlOZXh0TGluazogdHJ1ZSxcbiAgICAgICAgICAgIGxvZ2dlcjogaW5pdD8ubG9nZ2VyLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgZmV0Y2hlciA9IG5ldyBMb2dpbkNyZWRlbnRpYWxzRmV0Y2hlcihwcm9maWxlLCBpbml0LCBjYWxsZXJDbGllbnRDb25maWcpO1xuICAgIGNvbnN0IGNyZWRlbnRpYWxzID0gYXdhaXQgZmV0Y2hlci5sb2FkQ3JlZGVudGlhbHMoKTtcbiAgICByZXR1cm4gY2xpZW50LnNldENyZWRlbnRpYWxGZWF0dXJlKGNyZWRlbnRpYWxzLCBcIkNSRURFTlRJQUxTX0xPR0lOXCIsIFwiQURcIik7XG59O1xuXG5leHBvcnRzLmZyb21Mb2dpbkNyZWRlbnRpYWxzID0gZnJvbUxvZ2luQ3JlZGVudGlhbHM7XG4iLCAiaW1wb3J0IHsgcmVzb2x2ZUF3c1Nka1NpZ1Y0Q29uZmlnLCB9IGZyb20gXCJAYXdzLXNkay9jb3JlXCI7XG5pbXBvcnQgeyBnZXRTbWl0aHlDb250ZXh0LCBub3JtYWxpemVQcm92aWRlciB9IGZyb20gXCJAc21pdGh5L3V0aWwtbWlkZGxld2FyZVwiO1xuaW1wb3J0IHsgU1RTQ2xpZW50IH0gZnJvbSBcIi4uL1NUU0NsaWVudFwiO1xuZXhwb3J0IGNvbnN0IGRlZmF1bHRTVFNIdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlciA9IGFzeW5jIChjb25maWcsIGNvbnRleHQsIGlucHV0KSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgb3BlcmF0aW9uOiBnZXRTbWl0aHlDb250ZXh0KGNvbnRleHQpLm9wZXJhdGlvbixcbiAgICAgICAgcmVnaW9uOiAoYXdhaXQgbm9ybWFsaXplUHJvdmlkZXIoY29uZmlnLnJlZ2lvbikoKSkgfHxcbiAgICAgICAgICAgICgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiZXhwZWN0ZWQgYHJlZ2lvbmAgdG8gYmUgY29uZmlndXJlZCBmb3IgYGF3cy5hdXRoI3NpZ3Y0YFwiKTtcbiAgICAgICAgICAgIH0pKCksXG4gICAgfTtcbn07XG5mdW5jdGlvbiBjcmVhdGVBd3NBdXRoU2lndjRIdHRwQXV0aE9wdGlvbihhdXRoUGFyYW1ldGVycykge1xuICAgIHJldHVybiB7XG4gICAgICAgIHNjaGVtZUlkOiBcImF3cy5hdXRoI3NpZ3Y0XCIsXG4gICAgICAgIHNpZ25pbmdQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICBuYW1lOiBcInN0c1wiLFxuICAgICAgICAgICAgcmVnaW9uOiBhdXRoUGFyYW1ldGVycy5yZWdpb24sXG4gICAgICAgIH0sXG4gICAgICAgIHByb3BlcnRpZXNFeHRyYWN0b3I6IChjb25maWcsIGNvbnRleHQpID0+ICh7XG4gICAgICAgICAgICBzaWduaW5nUHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgIGNvbmZpZyxcbiAgICAgICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgfTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVNtaXRoeUFwaU5vQXV0aEh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc2NoZW1lSWQ6IFwic21pdGh5LmFwaSNub0F1dGhcIixcbiAgICB9O1xufVxuZXhwb3J0IGNvbnN0IGRlZmF1bHRTVFNIdHRwQXV0aFNjaGVtZVByb3ZpZGVyID0gKGF1dGhQYXJhbWV0ZXJzKSA9PiB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IFtdO1xuICAgIHN3aXRjaCAoYXV0aFBhcmFtZXRlcnMub3BlcmF0aW9uKSB7XG4gICAgICAgIGNhc2UgXCJBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5XCI6IHtcbiAgICAgICAgICAgIG9wdGlvbnMucHVzaChjcmVhdGVTbWl0aHlBcGlOb0F1dGhIdHRwQXV0aE9wdGlvbihhdXRoUGFyYW1ldGVycykpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgb3B0aW9ucy5wdXNoKGNyZWF0ZUF3c0F1dGhTaWd2NEh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG9wdGlvbnM7XG59O1xuZXhwb3J0IGNvbnN0IHJlc29sdmVTdHNBdXRoQ29uZmlnID0gKGlucHV0KSA9PiBPYmplY3QuYXNzaWduKGlucHV0LCB7XG4gICAgc3RzQ2xpZW50Q3RvcjogU1RTQ2xpZW50LFxufSk7XG5leHBvcnQgY29uc3QgcmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIGNvbnN0IGNvbmZpZ18wID0gcmVzb2x2ZVN0c0F1dGhDb25maWcoY29uZmlnKTtcbiAgICBjb25zdCBjb25maWdfMSA9IHJlc29sdmVBd3NTZGtTaWdWNENvbmZpZyhjb25maWdfMCk7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oY29uZmlnXzEsIHtcbiAgICAgICAgYXV0aFNjaGVtZVByZWZlcmVuY2U6IG5vcm1hbGl6ZVByb3ZpZGVyKGNvbmZpZy5hdXRoU2NoZW1lUHJlZmVyZW5jZSA/PyBbXSksXG4gICAgfSk7XG59O1xuIiwgImV4cG9ydCBjb25zdCByZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzID0gKG9wdGlvbnMpID0+IHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihvcHRpb25zLCB7XG4gICAgICAgIHVzZUR1YWxzdGFja0VuZHBvaW50OiBvcHRpb25zLnVzZUR1YWxzdGFja0VuZHBvaW50ID8/IGZhbHNlLFxuICAgICAgICB1c2VGaXBzRW5kcG9pbnQ6IG9wdGlvbnMudXNlRmlwc0VuZHBvaW50ID8/IGZhbHNlLFxuICAgICAgICB1c2VHbG9iYWxFbmRwb2ludDogb3B0aW9ucy51c2VHbG9iYWxFbmRwb2ludCA/PyBmYWxzZSxcbiAgICAgICAgZGVmYXVsdFNpZ25pbmdOYW1lOiBcInN0c1wiLFxuICAgIH0pO1xufTtcbmV4cG9ydCBjb25zdCBjb21tb25QYXJhbXMgPSB7XG4gICAgVXNlR2xvYmFsRW5kcG9pbnQ6IHsgdHlwZTogXCJidWlsdEluUGFyYW1zXCIsIG5hbWU6IFwidXNlR2xvYmFsRW5kcG9pbnRcIiB9LFxuICAgIFVzZUZJUFM6IHsgdHlwZTogXCJidWlsdEluUGFyYW1zXCIsIG5hbWU6IFwidXNlRmlwc0VuZHBvaW50XCIgfSxcbiAgICBFbmRwb2ludDogeyB0eXBlOiBcImJ1aWx0SW5QYXJhbXNcIiwgbmFtZTogXCJlbmRwb2ludFwiIH0sXG4gICAgUmVnaW9uOiB7IHR5cGU6IFwiYnVpbHRJblBhcmFtc1wiLCBuYW1lOiBcInJlZ2lvblwiIH0sXG4gICAgVXNlRHVhbFN0YWNrOiB7IHR5cGU6IFwiYnVpbHRJblBhcmFtc1wiLCBuYW1lOiBcInVzZUR1YWxzdGFja0VuZHBvaW50XCIgfSxcbn07XG4iLCAiY29uc3QgRiA9IFwicmVxdWlyZWRcIiwgRyA9IFwidHlwZVwiLCBIID0gXCJmblwiLCBJID0gXCJhcmd2XCIsIEogPSBcInJlZlwiO1xuY29uc3QgYSA9IGZhbHNlLCBiID0gdHJ1ZSwgYyA9IFwiYm9vbGVhbkVxdWFsc1wiLCBkID0gXCJzdHJpbmdFcXVhbHNcIiwgZSA9IFwic2lndjRcIiwgZiA9IFwic3RzXCIsIGcgPSBcInVzLWVhc3QtMVwiLCBoID0gXCJlbmRwb2ludFwiLCBpID0gXCJodHRwczovL3N0cy57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH1cIiwgaiA9IFwidHJlZVwiLCBrID0gXCJlcnJvclwiLCBsID0gXCJnZXRBdHRyXCIsIG0gPSB7IFtGXTogZmFsc2UsIFtHXTogXCJzdHJpbmdcIiB9LCBuID0geyBbRl06IHRydWUsIFwiZGVmYXVsdFwiOiBmYWxzZSwgW0ddOiBcImJvb2xlYW5cIiB9LCBvID0geyBbSl06IFwiRW5kcG9pbnRcIiB9LCBwID0geyBbSF06IFwiaXNTZXRcIiwgW0ldOiBbeyBbSl06IFwiUmVnaW9uXCIgfV0gfSwgcSA9IHsgW0pdOiBcIlJlZ2lvblwiIH0sIHIgPSB7IFtIXTogXCJhd3MucGFydGl0aW9uXCIsIFtJXTogW3FdLCBcImFzc2lnblwiOiBcIlBhcnRpdGlvblJlc3VsdFwiIH0sIHMgPSB7IFtKXTogXCJVc2VGSVBTXCIgfSwgdCA9IHsgW0pdOiBcIlVzZUR1YWxTdGFja1wiIH0sIHUgPSB7IFwidXJsXCI6IFwiaHR0cHM6Ly9zdHMuYW1hem9uYXdzLmNvbVwiLCBcInByb3BlcnRpZXNcIjogeyBcImF1dGhTY2hlbWVzXCI6IFt7IFwibmFtZVwiOiBlLCBcInNpZ25pbmdOYW1lXCI6IGYsIFwic2lnbmluZ1JlZ2lvblwiOiBnIH1dIH0sIFwiaGVhZGVyc1wiOiB7fSB9LCB2ID0ge30sIHcgPSB7IFwiY29uZGl0aW9uc1wiOiBbeyBbSF06IGQsIFtJXTogW3EsIFwiYXdzLWdsb2JhbFwiXSB9XSwgW2hdOiB1LCBbR106IGggfSwgeCA9IHsgW0hdOiBjLCBbSV06IFtzLCB0cnVlXSB9LCB5ID0geyBbSF06IGMsIFtJXTogW3QsIHRydWVdIH0sIHogPSB7IFtIXTogbCwgW0ldOiBbeyBbSl06IFwiUGFydGl0aW9uUmVzdWx0XCIgfSwgXCJzdXBwb3J0c0ZJUFNcIl0gfSwgQSA9IHsgW0pdOiBcIlBhcnRpdGlvblJlc3VsdFwiIH0sIEIgPSB7IFtIXTogYywgW0ldOiBbdHJ1ZSwgeyBbSF06IGwsIFtJXTogW0EsIFwic3VwcG9ydHNEdWFsU3RhY2tcIl0gfV0gfSwgQyA9IFt7IFtIXTogXCJpc1NldFwiLCBbSV06IFtvXSB9XSwgRCA9IFt4XSwgRSA9IFt5XTtcbmNvbnN0IF9kYXRhID0geyB2ZXJzaW9uOiBcIjEuMFwiLCBwYXJhbWV0ZXJzOiB7IFJlZ2lvbjogbSwgVXNlRHVhbFN0YWNrOiBuLCBVc2VGSVBTOiBuLCBFbmRwb2ludDogbSwgVXNlR2xvYmFsRW5kcG9pbnQ6IG4gfSwgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IFt7IFtIXTogYywgW0ldOiBbeyBbSl06IFwiVXNlR2xvYmFsRW5kcG9pbnRcIiB9LCBiXSB9LCB7IFtIXTogXCJub3RcIiwgW0ldOiBDIH0sIHAsIHIsIHsgW0hdOiBjLCBbSV06IFtzLCBhXSB9LCB7IFtIXTogYywgW0ldOiBbdCwgYV0gfV0sIHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbeyBbSF06IGQsIFtJXTogW3EsIFwiYXAtbm9ydGhlYXN0LTFcIl0gfV0sIGVuZHBvaW50OiB1LCBbR106IGggfSwgeyBjb25kaXRpb25zOiBbeyBbSF06IGQsIFtJXTogW3EsIFwiYXAtc291dGgtMVwiXSB9XSwgZW5kcG9pbnQ6IHUsIFtHXTogaCB9LCB7IGNvbmRpdGlvbnM6IFt7IFtIXTogZCwgW0ldOiBbcSwgXCJhcC1zb3V0aGVhc3QtMVwiXSB9XSwgZW5kcG9pbnQ6IHUsIFtHXTogaCB9LCB7IGNvbmRpdGlvbnM6IFt7IFtIXTogZCwgW0ldOiBbcSwgXCJhcC1zb3V0aGVhc3QtMlwiXSB9XSwgZW5kcG9pbnQ6IHUsIFtHXTogaCB9LCB3LCB7IGNvbmRpdGlvbnM6IFt7IFtIXTogZCwgW0ldOiBbcSwgXCJjYS1jZW50cmFsLTFcIl0gfV0sIGVuZHBvaW50OiB1LCBbR106IGggfSwgeyBjb25kaXRpb25zOiBbeyBbSF06IGQsIFtJXTogW3EsIFwiZXUtY2VudHJhbC0xXCJdIH1dLCBlbmRwb2ludDogdSwgW0ddOiBoIH0sIHsgY29uZGl0aW9uczogW3sgW0hdOiBkLCBbSV06IFtxLCBcImV1LW5vcnRoLTFcIl0gfV0sIGVuZHBvaW50OiB1LCBbR106IGggfSwgeyBjb25kaXRpb25zOiBbeyBbSF06IGQsIFtJXTogW3EsIFwiZXUtd2VzdC0xXCJdIH1dLCBlbmRwb2ludDogdSwgW0ddOiBoIH0sIHsgY29uZGl0aW9uczogW3sgW0hdOiBkLCBbSV06IFtxLCBcImV1LXdlc3QtMlwiXSB9XSwgZW5kcG9pbnQ6IHUsIFtHXTogaCB9LCB7IGNvbmRpdGlvbnM6IFt7IFtIXTogZCwgW0ldOiBbcSwgXCJldS13ZXN0LTNcIl0gfV0sIGVuZHBvaW50OiB1LCBbR106IGggfSwgeyBjb25kaXRpb25zOiBbeyBbSF06IGQsIFtJXTogW3EsIFwic2EtZWFzdC0xXCJdIH1dLCBlbmRwb2ludDogdSwgW0ddOiBoIH0sIHsgY29uZGl0aW9uczogW3sgW0hdOiBkLCBbSV06IFtxLCBnXSB9XSwgZW5kcG9pbnQ6IHUsIFtHXTogaCB9LCB7IGNvbmRpdGlvbnM6IFt7IFtIXTogZCwgW0ldOiBbcSwgXCJ1cy1lYXN0LTJcIl0gfV0sIGVuZHBvaW50OiB1LCBbR106IGggfSwgeyBjb25kaXRpb25zOiBbeyBbSF06IGQsIFtJXTogW3EsIFwidXMtd2VzdC0xXCJdIH1dLCBlbmRwb2ludDogdSwgW0ddOiBoIH0sIHsgY29uZGl0aW9uczogW3sgW0hdOiBkLCBbSV06IFtxLCBcInVzLXdlc3QtMlwiXSB9XSwgZW5kcG9pbnQ6IHUsIFtHXTogaCB9LCB7IGVuZHBvaW50OiB7IHVybDogaSwgcHJvcGVydGllczogeyBhdXRoU2NoZW1lczogW3sgbmFtZTogZSwgc2lnbmluZ05hbWU6IGYsIHNpZ25pbmdSZWdpb246IFwie1JlZ2lvbn1cIiB9XSB9LCBoZWFkZXJzOiB2IH0sIFtHXTogaCB9XSwgW0ddOiBqIH0sIHsgY29uZGl0aW9uczogQywgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IEQsIGVycm9yOiBcIkludmFsaWQgQ29uZmlndXJhdGlvbjogRklQUyBhbmQgY3VzdG9tIGVuZHBvaW50IGFyZSBub3Qgc3VwcG9ydGVkXCIsIFtHXTogayB9LCB7IGNvbmRpdGlvbnM6IEUsIGVycm9yOiBcIkludmFsaWQgQ29uZmlndXJhdGlvbjogRHVhbHN0YWNrIGFuZCBjdXN0b20gZW5kcG9pbnQgYXJlIG5vdCBzdXBwb3J0ZWRcIiwgW0ddOiBrIH0sIHsgZW5kcG9pbnQ6IHsgdXJsOiBvLCBwcm9wZXJ0aWVzOiB2LCBoZWFkZXJzOiB2IH0sIFtHXTogaCB9XSwgW0ddOiBqIH0sIHsgY29uZGl0aW9uczogW3BdLCBydWxlczogW3sgY29uZGl0aW9uczogW3JdLCBydWxlczogW3sgY29uZGl0aW9uczogW3gsIHldLCBydWxlczogW3sgY29uZGl0aW9uczogW3sgW0hdOiBjLCBbSV06IFtiLCB6XSB9LCBCXSwgcnVsZXM6IFt7IGVuZHBvaW50OiB7IHVybDogXCJodHRwczovL3N0cy1maXBzLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZHVhbFN0YWNrRG5zU3VmZml4fVwiLCBwcm9wZXJ0aWVzOiB2LCBoZWFkZXJzOiB2IH0sIFtHXTogaCB9XSwgW0ddOiBqIH0sIHsgZXJyb3I6IFwiRklQUyBhbmQgRHVhbFN0YWNrIGFyZSBlbmFibGVkLCBidXQgdGhpcyBwYXJ0aXRpb24gZG9lcyBub3Qgc3VwcG9ydCBvbmUgb3IgYm90aFwiLCBbR106IGsgfV0sIFtHXTogaiB9LCB7IGNvbmRpdGlvbnM6IEQsIHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbeyBbSF06IGMsIFtJXTogW3osIGJdIH1dLCBydWxlczogW3sgY29uZGl0aW9uczogW3sgW0hdOiBkLCBbSV06IFt7IFtIXTogbCwgW0ldOiBbQSwgXCJuYW1lXCJdIH0sIFwiYXdzLXVzLWdvdlwiXSB9XSwgZW5kcG9pbnQ6IHsgdXJsOiBcImh0dHBzOi8vc3RzLntSZWdpb259LmFtYXpvbmF3cy5jb21cIiwgcHJvcGVydGllczogdiwgaGVhZGVyczogdiB9LCBbR106IGggfSwgeyBlbmRwb2ludDogeyB1cmw6IFwiaHR0cHM6Ly9zdHMtZmlwcy57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH1cIiwgcHJvcGVydGllczogdiwgaGVhZGVyczogdiB9LCBbR106IGggfV0sIFtHXTogaiB9LCB7IGVycm9yOiBcIkZJUFMgaXMgZW5hYmxlZCBidXQgdGhpcyBwYXJ0aXRpb24gZG9lcyBub3Qgc3VwcG9ydCBGSVBTXCIsIFtHXTogayB9XSwgW0ddOiBqIH0sIHsgY29uZGl0aW9uczogRSwgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IFtCXSwgcnVsZXM6IFt7IGVuZHBvaW50OiB7IHVybDogXCJodHRwczovL3N0cy57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2R1YWxTdGFja0Ruc1N1ZmZpeH1cIiwgcHJvcGVydGllczogdiwgaGVhZGVyczogdiB9LCBbR106IGggfV0sIFtHXTogaiB9LCB7IGVycm9yOiBcIkR1YWxTdGFjayBpcyBlbmFibGVkIGJ1dCB0aGlzIHBhcnRpdGlvbiBkb2VzIG5vdCBzdXBwb3J0IER1YWxTdGFja1wiLCBbR106IGsgfV0sIFtHXTogaiB9LCB3LCB7IGVuZHBvaW50OiB7IHVybDogaSwgcHJvcGVydGllczogdiwgaGVhZGVyczogdiB9LCBbR106IGggfV0sIFtHXTogaiB9XSwgW0ddOiBqIH0sIHsgZXJyb3I6IFwiSW52YWxpZCBDb25maWd1cmF0aW9uOiBNaXNzaW5nIFJlZ2lvblwiLCBbR106IGsgfV0gfTtcbmV4cG9ydCBjb25zdCBydWxlU2V0ID0gX2RhdGE7XG4iLCAiaW1wb3J0IHsgYXdzRW5kcG9pbnRGdW5jdGlvbnMgfSBmcm9tIFwiQGF3cy1zZGsvdXRpbC1lbmRwb2ludHNcIjtcbmltcG9ydCB7IGN1c3RvbUVuZHBvaW50RnVuY3Rpb25zLCBFbmRwb2ludENhY2hlLCByZXNvbHZlRW5kcG9pbnQgfSBmcm9tIFwiQHNtaXRoeS91dGlsLWVuZHBvaW50c1wiO1xuaW1wb3J0IHsgcnVsZVNldCB9IGZyb20gXCIuL3J1bGVzZXRcIjtcbmNvbnN0IGNhY2hlID0gbmV3IEVuZHBvaW50Q2FjaGUoe1xuICAgIHNpemU6IDUwLFxuICAgIHBhcmFtczogW1wiRW5kcG9pbnRcIiwgXCJSZWdpb25cIiwgXCJVc2VEdWFsU3RhY2tcIiwgXCJVc2VGSVBTXCIsIFwiVXNlR2xvYmFsRW5kcG9pbnRcIl0sXG59KTtcbmV4cG9ydCBjb25zdCBkZWZhdWx0RW5kcG9pbnRSZXNvbHZlciA9IChlbmRwb2ludFBhcmFtcywgY29udGV4dCA9IHt9KSA9PiB7XG4gICAgcmV0dXJuIGNhY2hlLmdldChlbmRwb2ludFBhcmFtcywgKCkgPT4gcmVzb2x2ZUVuZHBvaW50KHJ1bGVTZXQsIHtcbiAgICAgICAgZW5kcG9pbnRQYXJhbXM6IGVuZHBvaW50UGFyYW1zLFxuICAgICAgICBsb2dnZXI6IGNvbnRleHQubG9nZ2VyLFxuICAgIH0pKTtcbn07XG5jdXN0b21FbmRwb2ludEZ1bmN0aW9ucy5hd3MgPSBhd3NFbmRwb2ludEZ1bmN0aW9ucztcbiIsICJpbXBvcnQgeyBBd3NTZGtTaWdWNFNpZ25lciB9IGZyb20gXCJAYXdzLXNkay9jb3JlXCI7XG5pbXBvcnQgeyBBd3NRdWVyeVByb3RvY29sIH0gZnJvbSBcIkBhd3Mtc2RrL2NvcmUvcHJvdG9jb2xzXCI7XG5pbXBvcnQgeyBOb0F1dGhTaWduZXIgfSBmcm9tIFwiQHNtaXRoeS9jb3JlXCI7XG5pbXBvcnQgeyBOb09wTG9nZ2VyIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgcGFyc2VVcmwgfSBmcm9tIFwiQHNtaXRoeS91cmwtcGFyc2VyXCI7XG5pbXBvcnQgeyBmcm9tQmFzZTY0LCB0b0Jhc2U2NCB9IGZyb20gXCJAc21pdGh5L3V0aWwtYmFzZTY0XCI7XG5pbXBvcnQgeyBmcm9tVXRmOCwgdG9VdGY4IH0gZnJvbSBcIkBzbWl0aHkvdXRpbC11dGY4XCI7XG5pbXBvcnQgeyBkZWZhdWx0U1RTSHR0cEF1dGhTY2hlbWVQcm92aWRlciB9IGZyb20gXCIuL2F1dGgvaHR0cEF1dGhTY2hlbWVQcm92aWRlclwiO1xuaW1wb3J0IHsgZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIgfSBmcm9tIFwiLi9lbmRwb2ludC9lbmRwb2ludFJlc29sdmVyXCI7XG5leHBvcnQgY29uc3QgZ2V0UnVudGltZUNvbmZpZyA9IChjb25maWcpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgICBhcGlWZXJzaW9uOiBcIjIwMTEtMDYtMTVcIixcbiAgICAgICAgYmFzZTY0RGVjb2RlcjogY29uZmlnPy5iYXNlNjREZWNvZGVyID8/IGZyb21CYXNlNjQsXG4gICAgICAgIGJhc2U2NEVuY29kZXI6IGNvbmZpZz8uYmFzZTY0RW5jb2RlciA/PyB0b0Jhc2U2NCxcbiAgICAgICAgZGlzYWJsZUhvc3RQcmVmaXg6IGNvbmZpZz8uZGlzYWJsZUhvc3RQcmVmaXggPz8gZmFsc2UsXG4gICAgICAgIGVuZHBvaW50UHJvdmlkZXI6IGNvbmZpZz8uZW5kcG9pbnRQcm92aWRlciA/PyBkZWZhdWx0RW5kcG9pbnRSZXNvbHZlcixcbiAgICAgICAgZXh0ZW5zaW9uczogY29uZmlnPy5leHRlbnNpb25zID8/IFtdLFxuICAgICAgICBodHRwQXV0aFNjaGVtZVByb3ZpZGVyOiBjb25maWc/Lmh0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPz8gZGVmYXVsdFNUU0h0dHBBdXRoU2NoZW1lUHJvdmlkZXIsXG4gICAgICAgIGh0dHBBdXRoU2NoZW1lczogY29uZmlnPy5odHRwQXV0aFNjaGVtZXMgPz8gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHNjaGVtZUlkOiBcImF3cy5hdXRoI3NpZ3Y0XCIsXG4gICAgICAgICAgICAgICAgaWRlbnRpdHlQcm92aWRlcjogKGlwYykgPT4gaXBjLmdldElkZW50aXR5UHJvdmlkZXIoXCJhd3MuYXV0aCNzaWd2NFwiKSxcbiAgICAgICAgICAgICAgICBzaWduZXI6IG5ldyBBd3NTZGtTaWdWNFNpZ25lcigpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzY2hlbWVJZDogXCJzbWl0aHkuYXBpI25vQXV0aFwiLFxuICAgICAgICAgICAgICAgIGlkZW50aXR5UHJvdmlkZXI6IChpcGMpID0+IGlwYy5nZXRJZGVudGl0eVByb3ZpZGVyKFwic21pdGh5LmFwaSNub0F1dGhcIikgfHwgKGFzeW5jICgpID0+ICh7fSkpLFxuICAgICAgICAgICAgICAgIHNpZ25lcjogbmV3IE5vQXV0aFNpZ25lcigpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgbG9nZ2VyOiBjb25maWc/LmxvZ2dlciA/PyBuZXcgTm9PcExvZ2dlcigpLFxuICAgICAgICBwcm90b2NvbDogY29uZmlnPy5wcm90b2NvbCA/P1xuICAgICAgICAgICAgbmV3IEF3c1F1ZXJ5UHJvdG9jb2woe1xuICAgICAgICAgICAgICAgIGRlZmF1bHROYW1lc3BhY2U6IFwiY29tLmFtYXpvbmF3cy5zdHNcIixcbiAgICAgICAgICAgICAgICB4bWxOYW1lc3BhY2U6IFwiaHR0cHM6Ly9zdHMuYW1hem9uYXdzLmNvbS9kb2MvMjAxMS0wNi0xNS9cIixcbiAgICAgICAgICAgICAgICB2ZXJzaW9uOiBcIjIwMTEtMDYtMTVcIixcbiAgICAgICAgICAgIH0pLFxuICAgICAgICBzZXJ2aWNlSWQ6IGNvbmZpZz8uc2VydmljZUlkID8/IFwiU1RTXCIsXG4gICAgICAgIHVybFBhcnNlcjogY29uZmlnPy51cmxQYXJzZXIgPz8gcGFyc2VVcmwsXG4gICAgICAgIHV0ZjhEZWNvZGVyOiBjb25maWc/LnV0ZjhEZWNvZGVyID8/IGZyb21VdGY4LFxuICAgICAgICB1dGY4RW5jb2RlcjogY29uZmlnPy51dGY4RW5jb2RlciA/PyB0b1V0ZjgsXG4gICAgfTtcbn07XG4iLCAiaW1wb3J0IHBhY2thZ2VJbmZvIGZyb20gXCIuLi8uLi8uLi9wYWNrYWdlLmpzb25cIjtcbmltcG9ydCB7IEF3c1Nka1NpZ1Y0U2lnbmVyLCBOT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfT1BUSU9OUywgZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbiBhcyBhd3NDaGVja1ZlcnNpb24sIH0gZnJvbSBcIkBhd3Mtc2RrL2NvcmVcIjtcbmltcG9ydCB7IE5PREVfQVBQX0lEX0NPTkZJR19PUFRJT05TLCBjcmVhdGVEZWZhdWx0VXNlckFnZW50UHJvdmlkZXIgfSBmcm9tIFwiQGF3cy1zZGsvdXRpbC11c2VyLWFnZW50LW5vZGVcIjtcbmltcG9ydCB7IE5PREVfUkVHSU9OX0NPTkZJR19GSUxFX09QVElPTlMsIE5PREVfUkVHSU9OX0NPTkZJR19PUFRJT05TLCBOT0RFX1VTRV9EVUFMU1RBQ0tfRU5EUE9JTlRfQ09ORklHX09QVElPTlMsIE5PREVfVVNFX0ZJUFNfRU5EUE9JTlRfQ09ORklHX09QVElPTlMsIH0gZnJvbSBcIkBzbWl0aHkvY29uZmlnLXJlc29sdmVyXCI7XG5pbXBvcnQgeyBOb0F1dGhTaWduZXIgfSBmcm9tIFwiQHNtaXRoeS9jb3JlXCI7XG5pbXBvcnQgeyBIYXNoIH0gZnJvbSBcIkBzbWl0aHkvaGFzaC1ub2RlXCI7XG5pbXBvcnQgeyBOT0RFX01BWF9BVFRFTVBUX0NPTkZJR19PUFRJT05TLCBOT0RFX1JFVFJZX01PREVfQ09ORklHX09QVElPTlMgfSBmcm9tIFwiQHNtaXRoeS9taWRkbGV3YXJlLXJldHJ5XCI7XG5pbXBvcnQgeyBsb2FkQ29uZmlnIGFzIGxvYWROb2RlQ29uZmlnIH0gZnJvbSBcIkBzbWl0aHkvbm9kZS1jb25maWctcHJvdmlkZXJcIjtcbmltcG9ydCB7IE5vZGVIdHRwSGFuZGxlciBhcyBSZXF1ZXN0SGFuZGxlciwgc3RyZWFtQ29sbGVjdG9yIH0gZnJvbSBcIkBzbWl0aHkvbm9kZS1odHRwLWhhbmRsZXJcIjtcbmltcG9ydCB7IGVtaXRXYXJuaW5nSWZVbnN1cHBvcnRlZFZlcnNpb24sIGxvYWRDb25maWdzRm9yRGVmYXVsdE1vZGUgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyBjYWxjdWxhdGVCb2R5TGVuZ3RoIH0gZnJvbSBcIkBzbWl0aHkvdXRpbC1ib2R5LWxlbmd0aC1ub2RlXCI7XG5pbXBvcnQgeyByZXNvbHZlRGVmYXVsdHNNb2RlQ29uZmlnIH0gZnJvbSBcIkBzbWl0aHkvdXRpbC1kZWZhdWx0cy1tb2RlLW5vZGVcIjtcbmltcG9ydCB7IERFRkFVTFRfUkVUUllfTU9ERSB9IGZyb20gXCJAc21pdGh5L3V0aWwtcmV0cnlcIjtcbmltcG9ydCB7IGdldFJ1bnRpbWVDb25maWcgYXMgZ2V0U2hhcmVkUnVudGltZUNvbmZpZyB9IGZyb20gXCIuL3J1bnRpbWVDb25maWcuc2hhcmVkXCI7XG5leHBvcnQgY29uc3QgZ2V0UnVudGltZUNvbmZpZyA9IChjb25maWcpID0+IHtcbiAgICBlbWl0V2FybmluZ0lmVW5zdXBwb3J0ZWRWZXJzaW9uKHByb2Nlc3MudmVyc2lvbik7XG4gICAgY29uc3QgZGVmYXVsdHNNb2RlID0gcmVzb2x2ZURlZmF1bHRzTW9kZUNvbmZpZyhjb25maWcpO1xuICAgIGNvbnN0IGRlZmF1bHRDb25maWdQcm92aWRlciA9ICgpID0+IGRlZmF1bHRzTW9kZSgpLnRoZW4obG9hZENvbmZpZ3NGb3JEZWZhdWx0TW9kZSk7XG4gICAgY29uc3QgY2xpZW50U2hhcmVkVmFsdWVzID0gZ2V0U2hhcmVkUnVudGltZUNvbmZpZyhjb25maWcpO1xuICAgIGF3c0NoZWNrVmVyc2lvbihwcm9jZXNzLnZlcnNpb24pO1xuICAgIGNvbnN0IGxvYWRlckNvbmZpZyA9IHtcbiAgICAgICAgcHJvZmlsZTogY29uZmlnPy5wcm9maWxlLFxuICAgICAgICBsb2dnZXI6IGNsaWVudFNoYXJlZFZhbHVlcy5sb2dnZXIsXG4gICAgfTtcbiAgICByZXR1cm4ge1xuICAgICAgICAuLi5jbGllbnRTaGFyZWRWYWx1ZXMsXG4gICAgICAgIC4uLmNvbmZpZyxcbiAgICAgICAgcnVudGltZTogXCJub2RlXCIsXG4gICAgICAgIGRlZmF1bHRzTW9kZSxcbiAgICAgICAgYXV0aFNjaGVtZVByZWZlcmVuY2U6IGNvbmZpZz8uYXV0aFNjaGVtZVByZWZlcmVuY2UgPz8gbG9hZE5vZGVDb25maWcoTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX09QVElPTlMsIGxvYWRlckNvbmZpZyksXG4gICAgICAgIGJvZHlMZW5ndGhDaGVja2VyOiBjb25maWc/LmJvZHlMZW5ndGhDaGVja2VyID8/IGNhbGN1bGF0ZUJvZHlMZW5ndGgsXG4gICAgICAgIGRlZmF1bHRVc2VyQWdlbnRQcm92aWRlcjogY29uZmlnPy5kZWZhdWx0VXNlckFnZW50UHJvdmlkZXIgPz9cbiAgICAgICAgICAgIGNyZWF0ZURlZmF1bHRVc2VyQWdlbnRQcm92aWRlcih7IHNlcnZpY2VJZDogY2xpZW50U2hhcmVkVmFsdWVzLnNlcnZpY2VJZCwgY2xpZW50VmVyc2lvbjogcGFja2FnZUluZm8udmVyc2lvbiB9KSxcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVzOiBjb25maWc/Lmh0dHBBdXRoU2NoZW1lcyA/PyBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgc2NoZW1lSWQ6IFwiYXdzLmF1dGgjc2lndjRcIixcbiAgICAgICAgICAgICAgICBpZGVudGl0eVByb3ZpZGVyOiAoaXBjKSA9PiBpcGMuZ2V0SWRlbnRpdHlQcm92aWRlcihcImF3cy5hdXRoI3NpZ3Y0XCIpIHx8XG4gICAgICAgICAgICAgICAgICAgIChhc3luYyAoaWRQcm9wcykgPT4gYXdhaXQgY29uZmlnLmNyZWRlbnRpYWxEZWZhdWx0UHJvdmlkZXIoaWRQcm9wcz8uX19jb25maWcgfHwge30pKCkpLFxuICAgICAgICAgICAgICAgIHNpZ25lcjogbmV3IEF3c1Nka1NpZ1Y0U2lnbmVyKCksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHNjaGVtZUlkOiBcInNtaXRoeS5hcGkjbm9BdXRoXCIsXG4gICAgICAgICAgICAgICAgaWRlbnRpdHlQcm92aWRlcjogKGlwYykgPT4gaXBjLmdldElkZW50aXR5UHJvdmlkZXIoXCJzbWl0aHkuYXBpI25vQXV0aFwiKSB8fCAoYXN5bmMgKCkgPT4gKHt9KSksXG4gICAgICAgICAgICAgICAgc2lnbmVyOiBuZXcgTm9BdXRoU2lnbmVyKCksXG4gICAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBtYXhBdHRlbXB0czogY29uZmlnPy5tYXhBdHRlbXB0cyA/PyBsb2FkTm9kZUNvbmZpZyhOT0RFX01BWF9BVFRFTVBUX0NPTkZJR19PUFRJT05TLCBjb25maWcpLFxuICAgICAgICByZWdpb246IGNvbmZpZz8ucmVnaW9uID8/XG4gICAgICAgICAgICBsb2FkTm9kZUNvbmZpZyhOT0RFX1JFR0lPTl9DT05GSUdfT1BUSU9OUywgeyAuLi5OT0RFX1JFR0lPTl9DT05GSUdfRklMRV9PUFRJT05TLCAuLi5sb2FkZXJDb25maWcgfSksXG4gICAgICAgIHJlcXVlc3RIYW5kbGVyOiBSZXF1ZXN0SGFuZGxlci5jcmVhdGUoY29uZmlnPy5yZXF1ZXN0SGFuZGxlciA/PyBkZWZhdWx0Q29uZmlnUHJvdmlkZXIpLFxuICAgICAgICByZXRyeU1vZGU6IGNvbmZpZz8ucmV0cnlNb2RlID8/XG4gICAgICAgICAgICBsb2FkTm9kZUNvbmZpZyh7XG4gICAgICAgICAgICAgICAgLi4uTk9ERV9SRVRSWV9NT0RFX0NPTkZJR19PUFRJT05TLFxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IGFzeW5jICgpID0+IChhd2FpdCBkZWZhdWx0Q29uZmlnUHJvdmlkZXIoKSkucmV0cnlNb2RlIHx8IERFRkFVTFRfUkVUUllfTU9ERSxcbiAgICAgICAgICAgIH0sIGNvbmZpZyksXG4gICAgICAgIHNoYTI1NjogY29uZmlnPy5zaGEyNTYgPz8gSGFzaC5iaW5kKG51bGwsIFwic2hhMjU2XCIpLFxuICAgICAgICBzdHJlYW1Db2xsZWN0b3I6IGNvbmZpZz8uc3RyZWFtQ29sbGVjdG9yID8/IHN0cmVhbUNvbGxlY3RvcixcbiAgICAgICAgdXNlRHVhbHN0YWNrRW5kcG9pbnQ6IGNvbmZpZz8udXNlRHVhbHN0YWNrRW5kcG9pbnQgPz8gbG9hZE5vZGVDb25maWcoTk9ERV9VU0VfRFVBTFNUQUNLX0VORFBPSU5UX0NPTkZJR19PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgICAgICB1c2VGaXBzRW5kcG9pbnQ6IGNvbmZpZz8udXNlRmlwc0VuZHBvaW50ID8/IGxvYWROb2RlQ29uZmlnKE5PREVfVVNFX0ZJUFNfRU5EUE9JTlRfQ09ORklHX09QVElPTlMsIGxvYWRlckNvbmZpZyksXG4gICAgICAgIHVzZXJBZ2VudEFwcElkOiBjb25maWc/LnVzZXJBZ2VudEFwcElkID8/IGxvYWROb2RlQ29uZmlnKE5PREVfQVBQX0lEX0NPTkZJR19PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgIH07XG59O1xuIiwgImV4cG9ydCBjb25zdCBnZXRIdHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24gPSAocnVudGltZUNvbmZpZykgPT4ge1xuICAgIGNvbnN0IF9odHRwQXV0aFNjaGVtZXMgPSBydW50aW1lQ29uZmlnLmh0dHBBdXRoU2NoZW1lcztcbiAgICBsZXQgX2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSBydW50aW1lQ29uZmlnLmh0dHBBdXRoU2NoZW1lUHJvdmlkZXI7XG4gICAgbGV0IF9jcmVkZW50aWFscyA9IHJ1bnRpbWVDb25maWcuY3JlZGVudGlhbHM7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc2V0SHR0cEF1dGhTY2hlbWUoaHR0cEF1dGhTY2hlbWUpIHtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gX2h0dHBBdXRoU2NoZW1lcy5maW5kSW5kZXgoKHNjaGVtZSkgPT4gc2NoZW1lLnNjaGVtZUlkID09PSBodHRwQXV0aFNjaGVtZS5zY2hlbWVJZCk7XG4gICAgICAgICAgICBpZiAoaW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgX2h0dHBBdXRoU2NoZW1lcy5wdXNoKGh0dHBBdXRoU2NoZW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIF9odHRwQXV0aFNjaGVtZXMuc3BsaWNlKGluZGV4LCAxLCBodHRwQXV0aFNjaGVtZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGh0dHBBdXRoU2NoZW1lcygpIHtcbiAgICAgICAgICAgIHJldHVybiBfaHR0cEF1dGhTY2hlbWVzO1xuICAgICAgICB9LFxuICAgICAgICBzZXRIdHRwQXV0aFNjaGVtZVByb3ZpZGVyKGh0dHBBdXRoU2NoZW1lUHJvdmlkZXIpIHtcbiAgICAgICAgICAgIF9odHRwQXV0aFNjaGVtZVByb3ZpZGVyID0gaHR0cEF1dGhTY2hlbWVQcm92aWRlcjtcbiAgICAgICAgfSxcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVQcm92aWRlcigpIHtcbiAgICAgICAgICAgIHJldHVybiBfaHR0cEF1dGhTY2hlbWVQcm92aWRlcjtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0Q3JlZGVudGlhbHMoY3JlZGVudGlhbHMpIHtcbiAgICAgICAgICAgIF9jcmVkZW50aWFscyA9IGNyZWRlbnRpYWxzO1xuICAgICAgICB9LFxuICAgICAgICBjcmVkZW50aWFscygpIHtcbiAgICAgICAgICAgIHJldHVybiBfY3JlZGVudGlhbHM7XG4gICAgICAgIH0sXG4gICAgfTtcbn07XG5leHBvcnQgY29uc3QgcmVzb2x2ZUh0dHBBdXRoUnVudGltZUNvbmZpZyA9IChjb25maWcpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgICBodHRwQXV0aFNjaGVtZXM6IGNvbmZpZy5odHRwQXV0aFNjaGVtZXMoKSxcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVQcm92aWRlcjogY29uZmlnLmh0dHBBdXRoU2NoZW1lUHJvdmlkZXIoKSxcbiAgICAgICAgY3JlZGVudGlhbHM6IGNvbmZpZy5jcmVkZW50aWFscygpLFxuICAgIH07XG59O1xuIiwgImltcG9ydCB7IGdldEF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24sIHJlc29sdmVBd3NSZWdpb25FeHRlbnNpb25Db25maWd1cmF0aW9uLCB9IGZyb20gXCJAYXdzLXNkay9yZWdpb24tY29uZmlnLXJlc29sdmVyXCI7XG5pbXBvcnQgeyBnZXRIdHRwSGFuZGxlckV4dGVuc2lvbkNvbmZpZ3VyYXRpb24sIHJlc29sdmVIdHRwSGFuZGxlclJ1bnRpbWVDb25maWcgfSBmcm9tIFwiQHNtaXRoeS9wcm90b2NvbC1odHRwXCI7XG5pbXBvcnQgeyBnZXREZWZhdWx0RXh0ZW5zaW9uQ29uZmlndXJhdGlvbiwgcmVzb2x2ZURlZmF1bHRSdW50aW1lQ29uZmlnIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgZ2V0SHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uLCByZXNvbHZlSHR0cEF1dGhSdW50aW1lQ29uZmlnIH0gZnJvbSBcIi4vYXV0aC9odHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb25cIjtcbmV4cG9ydCBjb25zdCByZXNvbHZlUnVudGltZUV4dGVuc2lvbnMgPSAocnVudGltZUNvbmZpZywgZXh0ZW5zaW9ucykgPT4ge1xuICAgIGNvbnN0IGV4dGVuc2lvbkNvbmZpZ3VyYXRpb24gPSBPYmplY3QuYXNzaWduKGdldEF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24ocnVudGltZUNvbmZpZyksIGdldERlZmF1bHRFeHRlbnNpb25Db25maWd1cmF0aW9uKHJ1bnRpbWVDb25maWcpLCBnZXRIdHRwSGFuZGxlckV4dGVuc2lvbkNvbmZpZ3VyYXRpb24ocnVudGltZUNvbmZpZyksIGdldEh0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbihydW50aW1lQ29uZmlnKSk7XG4gICAgZXh0ZW5zaW9ucy5mb3JFYWNoKChleHRlbnNpb24pID0+IGV4dGVuc2lvbi5jb25maWd1cmUoZXh0ZW5zaW9uQ29uZmlndXJhdGlvbikpO1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHJ1bnRpbWVDb25maWcsIHJlc29sdmVBd3NSZWdpb25FeHRlbnNpb25Db25maWd1cmF0aW9uKGV4dGVuc2lvbkNvbmZpZ3VyYXRpb24pLCByZXNvbHZlRGVmYXVsdFJ1bnRpbWVDb25maWcoZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiksIHJlc29sdmVIdHRwSGFuZGxlclJ1bnRpbWVDb25maWcoZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiksIHJlc29sdmVIdHRwQXV0aFJ1bnRpbWVDb25maWcoZXh0ZW5zaW9uQ29uZmlndXJhdGlvbikpO1xufTtcbiIsICJpbXBvcnQgeyBnZXRIb3N0SGVhZGVyUGx1Z2luLCByZXNvbHZlSG9zdEhlYWRlckNvbmZpZywgfSBmcm9tIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1ob3N0LWhlYWRlclwiO1xuaW1wb3J0IHsgZ2V0TG9nZ2VyUGx1Z2luIH0gZnJvbSBcIkBhd3Mtc2RrL21pZGRsZXdhcmUtbG9nZ2VyXCI7XG5pbXBvcnQgeyBnZXRSZWN1cnNpb25EZXRlY3Rpb25QbHVnaW4gfSBmcm9tIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1yZWN1cnNpb24tZGV0ZWN0aW9uXCI7XG5pbXBvcnQgeyBnZXRVc2VyQWdlbnRQbHVnaW4sIHJlc29sdmVVc2VyQWdlbnRDb25maWcsIH0gZnJvbSBcIkBhd3Mtc2RrL21pZGRsZXdhcmUtdXNlci1hZ2VudFwiO1xuaW1wb3J0IHsgcmVzb2x2ZVJlZ2lvbkNvbmZpZyB9IGZyb20gXCJAc21pdGh5L2NvbmZpZy1yZXNvbHZlclwiO1xuaW1wb3J0IHsgRGVmYXVsdElkZW50aXR5UHJvdmlkZXJDb25maWcsIGdldEh0dHBBdXRoU2NoZW1lRW5kcG9pbnRSdWxlU2V0UGx1Z2luLCBnZXRIdHRwU2lnbmluZ1BsdWdpbiwgfSBmcm9tIFwiQHNtaXRoeS9jb3JlXCI7XG5pbXBvcnQgeyBnZXRTY2hlbWFTZXJkZVBsdWdpbiB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2NoZW1hXCI7XG5pbXBvcnQgeyBnZXRDb250ZW50TGVuZ3RoUGx1Z2luIH0gZnJvbSBcIkBzbWl0aHkvbWlkZGxld2FyZS1jb250ZW50LWxlbmd0aFwiO1xuaW1wb3J0IHsgcmVzb2x2ZUVuZHBvaW50Q29uZmlnLCB9IGZyb20gXCJAc21pdGh5L21pZGRsZXdhcmUtZW5kcG9pbnRcIjtcbmltcG9ydCB7IGdldFJldHJ5UGx1Z2luLCByZXNvbHZlUmV0cnlDb25maWcsIH0gZnJvbSBcIkBzbWl0aHkvbWlkZGxld2FyZS1yZXRyeVwiO1xuaW1wb3J0IHsgQ2xpZW50IGFzIF9fQ2xpZW50LCB9IGZyb20gXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjtcbmltcG9ydCB7IGRlZmF1bHRTVFNIdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlciwgcmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnLCB9IGZyb20gXCIuL2F1dGgvaHR0cEF1dGhTY2hlbWVQcm92aWRlclwiO1xuaW1wb3J0IHsgcmVzb2x2ZUNsaWVudEVuZHBvaW50UGFyYW1ldGVycywgfSBmcm9tIFwiLi9lbmRwb2ludC9FbmRwb2ludFBhcmFtZXRlcnNcIjtcbmltcG9ydCB7IGdldFJ1bnRpbWVDb25maWcgYXMgX19nZXRSdW50aW1lQ29uZmlnIH0gZnJvbSBcIi4vcnVudGltZUNvbmZpZ1wiO1xuaW1wb3J0IHsgcmVzb2x2ZVJ1bnRpbWVFeHRlbnNpb25zIH0gZnJvbSBcIi4vcnVudGltZUV4dGVuc2lvbnNcIjtcbmV4cG9ydCB7IF9fQ2xpZW50IH07XG5leHBvcnQgY2xhc3MgU1RTQ2xpZW50IGV4dGVuZHMgX19DbGllbnQge1xuICAgIGNvbmZpZztcbiAgICBjb25zdHJ1Y3RvciguLi5bY29uZmlndXJhdGlvbl0pIHtcbiAgICAgICAgY29uc3QgX2NvbmZpZ18wID0gX19nZXRSdW50aW1lQ29uZmlnKGNvbmZpZ3VyYXRpb24gfHwge30pO1xuICAgICAgICBzdXBlcihfY29uZmlnXzApO1xuICAgICAgICB0aGlzLmluaXRDb25maWcgPSBfY29uZmlnXzA7XG4gICAgICAgIGNvbnN0IF9jb25maWdfMSA9IHJlc29sdmVDbGllbnRFbmRwb2ludFBhcmFtZXRlcnMoX2NvbmZpZ18wKTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ18yID0gcmVzb2x2ZVVzZXJBZ2VudENvbmZpZyhfY29uZmlnXzEpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzMgPSByZXNvbHZlUmV0cnlDb25maWcoX2NvbmZpZ18yKTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ180ID0gcmVzb2x2ZVJlZ2lvbkNvbmZpZyhfY29uZmlnXzMpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzUgPSByZXNvbHZlSG9zdEhlYWRlckNvbmZpZyhfY29uZmlnXzQpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzYgPSByZXNvbHZlRW5kcG9pbnRDb25maWcoX2NvbmZpZ181KTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ183ID0gcmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnKF9jb25maWdfNik7XG4gICAgICAgIGNvbnN0IF9jb25maWdfOCA9IHJlc29sdmVSdW50aW1lRXh0ZW5zaW9ucyhfY29uZmlnXzcsIGNvbmZpZ3VyYXRpb24/LmV4dGVuc2lvbnMgfHwgW10pO1xuICAgICAgICB0aGlzLmNvbmZpZyA9IF9jb25maWdfODtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGdldFNjaGVtYVNlcmRlUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShnZXRVc2VyQWdlbnRQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGdldFJldHJ5UGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShnZXRDb250ZW50TGVuZ3RoUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShnZXRIb3N0SGVhZGVyUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShnZXRMb2dnZXJQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGdldFJlY3Vyc2lvbkRldGVjdGlvblBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoZ2V0SHR0cEF1dGhTY2hlbWVFbmRwb2ludFJ1bGVTZXRQbHVnaW4odGhpcy5jb25maWcsIHtcbiAgICAgICAgICAgIGh0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyOiBkZWZhdWx0U1RTSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIsXG4gICAgICAgICAgICBpZGVudGl0eVByb3ZpZGVyQ29uZmlnUHJvdmlkZXI6IGFzeW5jIChjb25maWcpID0+IG5ldyBEZWZhdWx0SWRlbnRpdHlQcm92aWRlckNvbmZpZyh7XG4gICAgICAgICAgICAgICAgXCJhd3MuYXV0aCNzaWd2NFwiOiBjb25maWcuY3JlZGVudGlhbHMsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgfSkpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoZ2V0SHR0cFNpZ25pbmdQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICB9XG4gICAgZGVzdHJveSgpIHtcbiAgICAgICAgc3VwZXIuZGVzdHJveSgpO1xuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBTZXJ2aWNlRXhjZXB0aW9uIGFzIF9fU2VydmljZUV4Y2VwdGlvbiwgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5leHBvcnQgeyBfX1NlcnZpY2VFeGNlcHRpb24gfTtcbmV4cG9ydCBjbGFzcyBTVFNTZXJ2aWNlRXhjZXB0aW9uIGV4dGVuZHMgX19TZXJ2aWNlRXhjZXB0aW9uIHtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgU1RTU2VydmljZUV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBTVFNTZXJ2aWNlRXhjZXB0aW9uIGFzIF9fQmFzZUV4Y2VwdGlvbiB9IGZyb20gXCIuL1NUU1NlcnZpY2VFeGNlcHRpb25cIjtcbmV4cG9ydCBjbGFzcyBFeHBpcmVkVG9rZW5FeGNlcHRpb24gZXh0ZW5kcyBfX0Jhc2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIkV4cGlyZWRUb2tlbkV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkV4cGlyZWRUb2tlbkV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBFeHBpcmVkVG9rZW5FeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFeGNlcHRpb24gZXh0ZW5kcyBfX0Jhc2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIk1hbGZvcm1lZFBvbGljeURvY3VtZW50RXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgUGFja2VkUG9saWN5VG9vTGFyZ2VFeGNlcHRpb24gZXh0ZW5kcyBfX0Jhc2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIlBhY2tlZFBvbGljeVRvb0xhcmdlRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiUGFja2VkUG9saWN5VG9vTGFyZ2VFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgUGFja2VkUG9saWN5VG9vTGFyZ2VFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgUmVnaW9uRGlzYWJsZWRFeGNlcHRpb24gZXh0ZW5kcyBfX0Jhc2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIlJlZ2lvbkRpc2FibGVkRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiUmVnaW9uRGlzYWJsZWRFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgUmVnaW9uRGlzYWJsZWRFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgSURQUmVqZWN0ZWRDbGFpbUV4Y2VwdGlvbiBleHRlbmRzIF9fQmFzZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiSURQUmVqZWN0ZWRDbGFpbUV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIklEUFJlamVjdGVkQ2xhaW1FeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgSURQUmVqZWN0ZWRDbGFpbUV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBJbnZhbGlkSWRlbnRpdHlUb2tlbkV4Y2VwdGlvbiBleHRlbmRzIF9fQmFzZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiSW52YWxpZElkZW50aXR5VG9rZW5FeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJJbnZhbGlkSWRlbnRpdHlUb2tlbkV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBJbnZhbGlkSWRlbnRpdHlUb2tlbkV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBJRFBDb21tdW5pY2F0aW9uRXJyb3JFeGNlcHRpb24gZXh0ZW5kcyBfX0Jhc2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIklEUENvbW11bmljYXRpb25FcnJvckV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIklEUENvbW11bmljYXRpb25FcnJvckV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBJRFBDb21tdW5pY2F0aW9uRXJyb3JFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59XG4iLCAiY29uc3QgX0EgPSBcIkFyblwiO1xuY29uc3QgX0FLSSA9IFwiQWNjZXNzS2V5SWRcIjtcbmNvbnN0IF9BUiA9IFwiQXNzdW1lUm9sZVwiO1xuY29uc3QgX0FSSSA9IFwiQXNzdW1lZFJvbGVJZFwiO1xuY29uc3QgX0FSUiA9IFwiQXNzdW1lUm9sZVJlcXVlc3RcIjtcbmNvbnN0IF9BUlJzID0gXCJBc3N1bWVSb2xlUmVzcG9uc2VcIjtcbmNvbnN0IF9BUlUgPSBcIkFzc3VtZWRSb2xlVXNlclwiO1xuY29uc3QgX0FSV1dJID0gXCJBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5XCI7XG5jb25zdCBfQVJXV0lSID0gXCJBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5UmVxdWVzdFwiO1xuY29uc3QgX0FSV1dJUnMgPSBcIkFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlSZXNwb25zZVwiO1xuY29uc3QgX0F1ID0gXCJBdWRpZW5jZVwiO1xuY29uc3QgX0MgPSBcIkNyZWRlbnRpYWxzXCI7XG5jb25zdCBfQ0EgPSBcIkNvbnRleHRBc3NlcnRpb25cIjtcbmNvbnN0IF9EUyA9IFwiRHVyYXRpb25TZWNvbmRzXCI7XG5jb25zdCBfRSA9IFwiRXhwaXJhdGlvblwiO1xuY29uc3QgX0VJID0gXCJFeHRlcm5hbElkXCI7XG5jb25zdCBfRVRFID0gXCJFeHBpcmVkVG9rZW5FeGNlcHRpb25cIjtcbmNvbnN0IF9JRFBDRUUgPSBcIklEUENvbW11bmljYXRpb25FcnJvckV4Y2VwdGlvblwiO1xuY29uc3QgX0lEUFJDRSA9IFwiSURQUmVqZWN0ZWRDbGFpbUV4Y2VwdGlvblwiO1xuY29uc3QgX0lJVEUgPSBcIkludmFsaWRJZGVudGl0eVRva2VuRXhjZXB0aW9uXCI7XG5jb25zdCBfSyA9IFwiS2V5XCI7XG5jb25zdCBfTVBERSA9IFwiTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFeGNlcHRpb25cIjtcbmNvbnN0IF9QID0gXCJQb2xpY3lcIjtcbmNvbnN0IF9QQSA9IFwiUG9saWN5QXJuc1wiO1xuY29uc3QgX1BBciA9IFwiUHJvdmlkZXJBcm5cIjtcbmNvbnN0IF9QQyA9IFwiUHJvdmlkZWRDb250ZXh0c1wiO1xuY29uc3QgX1BDTFQgPSBcIlByb3ZpZGVkQ29udGV4dHNMaXN0VHlwZVwiO1xuY29uc3QgX1BDciA9IFwiUHJvdmlkZWRDb250ZXh0XCI7XG5jb25zdCBfUERUID0gXCJQb2xpY3lEZXNjcmlwdG9yVHlwZVwiO1xuY29uc3QgX1BJID0gXCJQcm92aWRlcklkXCI7XG5jb25zdCBfUFBTID0gXCJQYWNrZWRQb2xpY3lTaXplXCI7XG5jb25zdCBfUFBUTEUgPSBcIlBhY2tlZFBvbGljeVRvb0xhcmdlRXhjZXB0aW9uXCI7XG5jb25zdCBfUHIgPSBcIlByb3ZpZGVyXCI7XG5jb25zdCBfUkEgPSBcIlJvbGVBcm5cIjtcbmNvbnN0IF9SREUgPSBcIlJlZ2lvbkRpc2FibGVkRXhjZXB0aW9uXCI7XG5jb25zdCBfUlNOID0gXCJSb2xlU2Vzc2lvbk5hbWVcIjtcbmNvbnN0IF9TQUsgPSBcIlNlY3JldEFjY2Vzc0tleVwiO1xuY29uc3QgX1NGV0lUID0gXCJTdWJqZWN0RnJvbVdlYklkZW50aXR5VG9rZW5cIjtcbmNvbnN0IF9TSSA9IFwiU291cmNlSWRlbnRpdHlcIjtcbmNvbnN0IF9TTiA9IFwiU2VyaWFsTnVtYmVyXCI7XG5jb25zdCBfU1QgPSBcIlNlc3Npb25Ub2tlblwiO1xuY29uc3QgX1QgPSBcIlRhZ3NcIjtcbmNvbnN0IF9UQyA9IFwiVG9rZW5Db2RlXCI7XG5jb25zdCBfVFRLID0gXCJUcmFuc2l0aXZlVGFnS2V5c1wiO1xuY29uc3QgX1RhID0gXCJUYWdcIjtcbmNvbnN0IF9WID0gXCJWYWx1ZVwiO1xuY29uc3QgX1dJVCA9IFwiV2ViSWRlbnRpdHlUb2tlblwiO1xuY29uc3QgX2EgPSBcImFyblwiO1xuY29uc3QgX2FLU1QgPSBcImFjY2Vzc0tleVNlY3JldFR5cGVcIjtcbmNvbnN0IF9hUUUgPSBcImF3c1F1ZXJ5RXJyb3JcIjtcbmNvbnN0IF9jID0gXCJjbGllbnRcIjtcbmNvbnN0IF9jVFQgPSBcImNsaWVudFRva2VuVHlwZVwiO1xuY29uc3QgX2UgPSBcImVycm9yXCI7XG5jb25zdCBfaEUgPSBcImh0dHBFcnJvclwiO1xuY29uc3QgX20gPSBcIm1lc3NhZ2VcIjtcbmNvbnN0IF9wRExUID0gXCJwb2xpY3lEZXNjcmlwdG9yTGlzdFR5cGVcIjtcbmNvbnN0IF9zID0gXCJzbWl0aHkudHMuc2RrLnN5bnRoZXRpYy5jb20uYW1hem9uYXdzLnN0c1wiO1xuY29uc3QgX3RMVCA9IFwidGFnTGlzdFR5cGVcIjtcbmNvbnN0IG4wID0gXCJjb20uYW1hem9uYXdzLnN0c1wiO1xuaW1wb3J0IHsgVHlwZVJlZ2lzdHJ5IH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IEV4cGlyZWRUb2tlbkV4Y2VwdGlvbiBhcyBfX0V4cGlyZWRUb2tlbkV4Y2VwdGlvbiwgSURQQ29tbXVuaWNhdGlvbkVycm9yRXhjZXB0aW9uIGFzIF9fSURQQ29tbXVuaWNhdGlvbkVycm9yRXhjZXB0aW9uLCBJRFBSZWplY3RlZENsYWltRXhjZXB0aW9uIGFzIF9fSURQUmVqZWN0ZWRDbGFpbUV4Y2VwdGlvbiwgSW52YWxpZElkZW50aXR5VG9rZW5FeGNlcHRpb24gYXMgX19JbnZhbGlkSWRlbnRpdHlUb2tlbkV4Y2VwdGlvbiwgTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFeGNlcHRpb24gYXMgX19NYWxmb3JtZWRQb2xpY3lEb2N1bWVudEV4Y2VwdGlvbiwgUGFja2VkUG9saWN5VG9vTGFyZ2VFeGNlcHRpb24gYXMgX19QYWNrZWRQb2xpY3lUb29MYXJnZUV4Y2VwdGlvbiwgUmVnaW9uRGlzYWJsZWRFeGNlcHRpb24gYXMgX19SZWdpb25EaXNhYmxlZEV4Y2VwdGlvbiwgfSBmcm9tIFwiLi4vbW9kZWxzL2Vycm9yc1wiO1xuaW1wb3J0IHsgU1RTU2VydmljZUV4Y2VwdGlvbiBhcyBfX1NUU1NlcnZpY2VFeGNlcHRpb24gfSBmcm9tIFwiLi4vbW9kZWxzL1NUU1NlcnZpY2VFeGNlcHRpb25cIjtcbmV4cG9ydCB2YXIgYWNjZXNzS2V5U2VjcmV0VHlwZSA9IFswLCBuMCwgX2FLU1QsIDgsIDBdO1xuZXhwb3J0IHZhciBjbGllbnRUb2tlblR5cGUgPSBbMCwgbjAsIF9jVFQsIDgsIDBdO1xuZXhwb3J0IHZhciBBc3N1bWVkUm9sZVVzZXIgPSBbMywgbjAsIF9BUlUsIDAsIFtfQVJJLCBfQV0sIFswLCAwXV07XG5leHBvcnQgdmFyIEFzc3VtZVJvbGVSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0FSUixcbiAgICAwLFxuICAgIFtfUkEsIF9SU04sIF9QQSwgX1AsIF9EUywgX1QsIF9UVEssIF9FSSwgX1NOLCBfVEMsIF9TSSwgX1BDXSxcbiAgICBbMCwgMCwgKCkgPT4gcG9saWN5RGVzY3JpcHRvckxpc3RUeXBlLCAwLCAxLCAoKSA9PiB0YWdMaXN0VHlwZSwgNjQgfCAwLCAwLCAwLCAwLCAwLCAoKSA9PiBQcm92aWRlZENvbnRleHRzTGlzdFR5cGVdLFxuXTtcbmV4cG9ydCB2YXIgQXNzdW1lUm9sZVJlc3BvbnNlID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0FSUnMsXG4gICAgMCxcbiAgICBbX0MsIF9BUlUsIF9QUFMsIF9TSV0sXG4gICAgW1soKSA9PiBDcmVkZW50aWFscywgMF0sICgpID0+IEFzc3VtZWRSb2xlVXNlciwgMSwgMF0sXG5dO1xuZXhwb3J0IHZhciBBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5UmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9BUldXSVIsXG4gICAgMCxcbiAgICBbX1JBLCBfUlNOLCBfV0lULCBfUEksIF9QQSwgX1AsIF9EU10sXG4gICAgWzAsIDAsIFsoKSA9PiBjbGllbnRUb2tlblR5cGUsIDBdLCAwLCAoKSA9PiBwb2xpY3lEZXNjcmlwdG9yTGlzdFR5cGUsIDAsIDFdLFxuXTtcbmV4cG9ydCB2YXIgQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eVJlc3BvbnNlID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0FSV1dJUnMsXG4gICAgMCxcbiAgICBbX0MsIF9TRldJVCwgX0FSVSwgX1BQUywgX1ByLCBfQXUsIF9TSV0sXG4gICAgW1soKSA9PiBDcmVkZW50aWFscywgMF0sIDAsICgpID0+IEFzc3VtZWRSb2xlVXNlciwgMSwgMCwgMCwgMF0sXG5dO1xuZXhwb3J0IHZhciBDcmVkZW50aWFscyA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9DLFxuICAgIDAsXG4gICAgW19BS0ksIF9TQUssIF9TVCwgX0VdLFxuICAgIFswLCBbKCkgPT4gYWNjZXNzS2V5U2VjcmV0VHlwZSwgMF0sIDAsIDRdLFxuXTtcbmV4cG9ydCB2YXIgRXhwaXJlZFRva2VuRXhjZXB0aW9uID0gW1xuICAgIC0zLFxuICAgIG4wLFxuICAgIF9FVEUsXG4gICAgeyBbX2VdOiBfYywgW19oRV06IDQwMCwgW19hUUVdOiBbYEV4cGlyZWRUb2tlbkV4Y2VwdGlvbmAsIDQwMF0gfSxcbiAgICBbX21dLFxuICAgIFswXSxcbl07XG5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKEV4cGlyZWRUb2tlbkV4Y2VwdGlvbiwgX19FeHBpcmVkVG9rZW5FeGNlcHRpb24pO1xuZXhwb3J0IHZhciBJRFBDb21tdW5pY2F0aW9uRXJyb3JFeGNlcHRpb24gPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX0lEUENFRSxcbiAgICB7IFtfZV06IF9jLCBbX2hFXTogNDAwLCBbX2FRRV06IFtgSURQQ29tbXVuaWNhdGlvbkVycm9yYCwgNDAwXSB9LFxuICAgIFtfbV0sXG4gICAgWzBdLFxuXTtcblR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoSURQQ29tbXVuaWNhdGlvbkVycm9yRXhjZXB0aW9uLCBfX0lEUENvbW11bmljYXRpb25FcnJvckV4Y2VwdGlvbik7XG5leHBvcnQgdmFyIElEUFJlamVjdGVkQ2xhaW1FeGNlcHRpb24gPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX0lEUFJDRSxcbiAgICB7IFtfZV06IF9jLCBbX2hFXTogNDAzLCBbX2FRRV06IFtgSURQUmVqZWN0ZWRDbGFpbWAsIDQwM10gfSxcbiAgICBbX21dLFxuICAgIFswXSxcbl07XG5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKElEUFJlamVjdGVkQ2xhaW1FeGNlcHRpb24sIF9fSURQUmVqZWN0ZWRDbGFpbUV4Y2VwdGlvbik7XG5leHBvcnQgdmFyIEludmFsaWRJZGVudGl0eVRva2VuRXhjZXB0aW9uID0gW1xuICAgIC0zLFxuICAgIG4wLFxuICAgIF9JSVRFLFxuICAgIHsgW19lXTogX2MsIFtfaEVdOiA0MDAsIFtfYVFFXTogW2BJbnZhbGlkSWRlbnRpdHlUb2tlbmAsIDQwMF0gfSxcbiAgICBbX21dLFxuICAgIFswXSxcbl07XG5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKEludmFsaWRJZGVudGl0eVRva2VuRXhjZXB0aW9uLCBfX0ludmFsaWRJZGVudGl0eVRva2VuRXhjZXB0aW9uKTtcbmV4cG9ydCB2YXIgTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFeGNlcHRpb24gPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX01QREUsXG4gICAgeyBbX2VdOiBfYywgW19oRV06IDQwMCwgW19hUUVdOiBbYE1hbGZvcm1lZFBvbGljeURvY3VtZW50YCwgNDAwXSB9LFxuICAgIFtfbV0sXG4gICAgWzBdLFxuXTtcblR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFeGNlcHRpb24sIF9fTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFeGNlcHRpb24pO1xuZXhwb3J0IHZhciBQYWNrZWRQb2xpY3lUb29MYXJnZUV4Y2VwdGlvbiA9IFtcbiAgICAtMyxcbiAgICBuMCxcbiAgICBfUFBUTEUsXG4gICAgeyBbX2VdOiBfYywgW19oRV06IDQwMCwgW19hUUVdOiBbYFBhY2tlZFBvbGljeVRvb0xhcmdlYCwgNDAwXSB9LFxuICAgIFtfbV0sXG4gICAgWzBdLFxuXTtcblR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoUGFja2VkUG9saWN5VG9vTGFyZ2VFeGNlcHRpb24sIF9fUGFja2VkUG9saWN5VG9vTGFyZ2VFeGNlcHRpb24pO1xuZXhwb3J0IHZhciBQb2xpY3lEZXNjcmlwdG9yVHlwZSA9IFszLCBuMCwgX1BEVCwgMCwgW19hXSwgWzBdXTtcbmV4cG9ydCB2YXIgUHJvdmlkZWRDb250ZXh0ID0gWzMsIG4wLCBfUENyLCAwLCBbX1BBciwgX0NBXSwgWzAsIDBdXTtcbmV4cG9ydCB2YXIgUmVnaW9uRGlzYWJsZWRFeGNlcHRpb24gPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX1JERSxcbiAgICB7IFtfZV06IF9jLCBbX2hFXTogNDAzLCBbX2FRRV06IFtgUmVnaW9uRGlzYWJsZWRFeGNlcHRpb25gLCA0MDNdIH0sXG4gICAgW19tXSxcbiAgICBbMF0sXG5dO1xuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihSZWdpb25EaXNhYmxlZEV4Y2VwdGlvbiwgX19SZWdpb25EaXNhYmxlZEV4Y2VwdGlvbik7XG5leHBvcnQgdmFyIFRhZyA9IFszLCBuMCwgX1RhLCAwLCBbX0ssIF9WXSwgWzAsIDBdXTtcbmV4cG9ydCB2YXIgU1RTU2VydmljZUV4Y2VwdGlvbiA9IFstMywgX3MsIFwiU1RTU2VydmljZUV4Y2VwdGlvblwiLCAwLCBbXSwgW11dO1xuVHlwZVJlZ2lzdHJ5LmZvcihfcykucmVnaXN0ZXJFcnJvcihTVFNTZXJ2aWNlRXhjZXB0aW9uLCBfX1NUU1NlcnZpY2VFeGNlcHRpb24pO1xuZXhwb3J0IHZhciBwb2xpY3lEZXNjcmlwdG9yTGlzdFR5cGUgPSBbMSwgbjAsIF9wRExULCAwLCAoKSA9PiBQb2xpY3lEZXNjcmlwdG9yVHlwZV07XG5leHBvcnQgdmFyIFByb3ZpZGVkQ29udGV4dHNMaXN0VHlwZSA9IFsxLCBuMCwgX1BDTFQsIDAsICgpID0+IFByb3ZpZGVkQ29udGV4dF07XG5leHBvcnQgdmFyIHRhZ0tleUxpc3RUeXBlID0gNjQgfCAwO1xuZXhwb3J0IHZhciB0YWdMaXN0VHlwZSA9IFsxLCBuMCwgX3RMVCwgMCwgKCkgPT4gVGFnXTtcbmV4cG9ydCB2YXIgQXNzdW1lUm9sZSA9IFs5LCBuMCwgX0FSLCAwLCAoKSA9PiBBc3N1bWVSb2xlUmVxdWVzdCwgKCkgPT4gQXNzdW1lUm9sZVJlc3BvbnNlXTtcbmV4cG9ydCB2YXIgQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eSA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9BUldXSSxcbiAgICAwLFxuICAgICgpID0+IEFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlSZXF1ZXN0LFxuICAgICgpID0+IEFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlSZXNwb25zZSxcbl07XG4iLCAiaW1wb3J0IHsgZ2V0RW5kcG9pbnRQbHVnaW4gfSBmcm9tIFwiQHNtaXRoeS9taWRkbGV3YXJlLWVuZHBvaW50XCI7XG5pbXBvcnQgeyBDb21tYW5kIGFzICRDb21tYW5kIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgY29tbW9uUGFyYW1zIH0gZnJvbSBcIi4uL2VuZHBvaW50L0VuZHBvaW50UGFyYW1ldGVyc1wiO1xuaW1wb3J0IHsgQXNzdW1lUm9sZSB9IGZyb20gXCIuLi9zY2hlbWFzL3NjaGVtYXNfMFwiO1xuZXhwb3J0IHsgJENvbW1hbmQgfTtcbmV4cG9ydCBjbGFzcyBBc3N1bWVSb2xlQ29tbWFuZCBleHRlbmRzICRDb21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NTZWN1cml0eVRva2VuU2VydmljZVYyMDExMDYxNVwiLCBcIkFzc3VtZVJvbGVcIiwge30pXG4gICAgLm4oXCJTVFNDbGllbnRcIiwgXCJBc3N1bWVSb2xlQ29tbWFuZFwiKVxuICAgIC5zYyhBc3N1bWVSb2xlKVxuICAgIC5idWlsZCgpIHtcbn1cbiIsICJpbXBvcnQgeyBnZXRFbmRwb2ludFBsdWdpbiB9IGZyb20gXCJAc21pdGh5L21pZGRsZXdhcmUtZW5kcG9pbnRcIjtcbmltcG9ydCB7IENvbW1hbmQgYXMgJENvbW1hbmQgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyBjb21tb25QYXJhbXMgfSBmcm9tIFwiLi4vZW5kcG9pbnQvRW5kcG9pbnRQYXJhbWV0ZXJzXCI7XG5pbXBvcnQgeyBBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5IH0gZnJvbSBcIi4uL3NjaGVtYXMvc2NoZW1hc18wXCI7XG5leHBvcnQgeyAkQ29tbWFuZCB9O1xuZXhwb3J0IGNsYXNzIEFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlDb21tYW5kIGV4dGVuZHMgJENvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFtnZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFXU1NlY3VyaXR5VG9rZW5TZXJ2aWNlVjIwMTEwNjE1XCIsIFwiQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eVwiLCB7fSlcbiAgICAubihcIlNUU0NsaWVudFwiLCBcIkFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlDb21tYW5kXCIpXG4gICAgLnNjKEFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHkpXG4gICAgLmJ1aWxkKCkge1xufVxuIiwgImltcG9ydCB7IGNyZWF0ZUFnZ3JlZ2F0ZWRDbGllbnQgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyBBc3N1bWVSb2xlQ29tbWFuZCB9IGZyb20gXCIuL2NvbW1hbmRzL0Fzc3VtZVJvbGVDb21tYW5kXCI7XG5pbXBvcnQgeyBBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5Q29tbWFuZCwgfSBmcm9tIFwiLi9jb21tYW5kcy9Bc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5Q29tbWFuZFwiO1xuaW1wb3J0IHsgU1RTQ2xpZW50IH0gZnJvbSBcIi4vU1RTQ2xpZW50XCI7XG5jb25zdCBjb21tYW5kcyA9IHtcbiAgICBBc3N1bWVSb2xlQ29tbWFuZCxcbiAgICBBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5Q29tbWFuZCxcbn07XG5leHBvcnQgY2xhc3MgU1RTIGV4dGVuZHMgU1RTQ2xpZW50IHtcbn1cbmNyZWF0ZUFnZ3JlZ2F0ZWRDbGllbnQoY29tbWFuZHMsIFNUUyk7XG4iLCAiZXhwb3J0ICogZnJvbSBcIi4vQXNzdW1lUm9sZUNvbW1hbmRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0Fzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlDb21tYW5kXCI7XG4iLCAiaW1wb3J0IHsgc2V0Q3JlZGVudGlhbEZlYXR1cmUgfSBmcm9tIFwiQGF3cy1zZGsvY29yZS9jbGllbnRcIjtcbmltcG9ydCB7IHN0c1JlZ2lvbkRlZmF1bHRSZXNvbHZlciB9IGZyb20gXCJAYXdzLXNkay9yZWdpb24tY29uZmlnLXJlc29sdmVyXCI7XG5pbXBvcnQgeyBBc3N1bWVSb2xlQ29tbWFuZCB9IGZyb20gXCIuL2NvbW1hbmRzL0Fzc3VtZVJvbGVDb21tYW5kXCI7XG5pbXBvcnQgeyBBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5Q29tbWFuZCwgfSBmcm9tIFwiLi9jb21tYW5kcy9Bc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5Q29tbWFuZFwiO1xuY29uc3QgZ2V0QWNjb3VudElkRnJvbUFzc3VtZWRSb2xlVXNlciA9IChhc3N1bWVkUm9sZVVzZXIpID0+IHtcbiAgICBpZiAodHlwZW9mIGFzc3VtZWRSb2xlVXNlcj8uQXJuID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIGNvbnN0IGFybkNvbXBvbmVudHMgPSBhc3N1bWVkUm9sZVVzZXIuQXJuLnNwbGl0KFwiOlwiKTtcbiAgICAgICAgaWYgKGFybkNvbXBvbmVudHMubGVuZ3RoID4gNCAmJiBhcm5Db21wb25lbnRzWzRdICE9PSBcIlwiKSB7XG4gICAgICAgICAgICByZXR1cm4gYXJuQ29tcG9uZW50c1s0XTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xufTtcbmNvbnN0IHJlc29sdmVSZWdpb24gPSBhc3luYyAoX3JlZ2lvbiwgX3BhcmVudFJlZ2lvbiwgY3JlZGVudGlhbFByb3ZpZGVyTG9nZ2VyLCBsb2FkZXJDb25maWcgPSB7fSkgPT4ge1xuICAgIGNvbnN0IHJlZ2lvbiA9IHR5cGVvZiBfcmVnaW9uID09PSBcImZ1bmN0aW9uXCIgPyBhd2FpdCBfcmVnaW9uKCkgOiBfcmVnaW9uO1xuICAgIGNvbnN0IHBhcmVudFJlZ2lvbiA9IHR5cGVvZiBfcGFyZW50UmVnaW9uID09PSBcImZ1bmN0aW9uXCIgPyBhd2FpdCBfcGFyZW50UmVnaW9uKCkgOiBfcGFyZW50UmVnaW9uO1xuICAgIGxldCBzdHNEZWZhdWx0UmVnaW9uID0gXCJcIjtcbiAgICBjb25zdCByZXNvbHZlZFJlZ2lvbiA9IHJlZ2lvbiA/PyBwYXJlbnRSZWdpb24gPz8gKHN0c0RlZmF1bHRSZWdpb24gPSBhd2FpdCBzdHNSZWdpb25EZWZhdWx0UmVzb2x2ZXIobG9hZGVyQ29uZmlnKSgpKTtcbiAgICBjcmVkZW50aWFsUHJvdmlkZXJMb2dnZXI/LmRlYnVnPy4oXCJAYXdzLXNkay9jbGllbnQtc3RzOjpyZXNvbHZlUmVnaW9uXCIsIFwiYWNjZXB0aW5nIGZpcnN0IG9mOlwiLCBgJHtyZWdpb259IChjcmVkZW50aWFsIHByb3ZpZGVyIGNsaWVudENvbmZpZylgLCBgJHtwYXJlbnRSZWdpb259IChjb250ZXh0dWFsIGNsaWVudClgLCBgJHtzdHNEZWZhdWx0UmVnaW9ufSAoU1RTIGRlZmF1bHQ6IEFXU19SRUdJT04sIHByb2ZpbGUgcmVnaW9uLCBvciB1cy1lYXN0LTEpYCk7XG4gICAgcmV0dXJuIHJlc29sdmVkUmVnaW9uO1xufTtcbmV4cG9ydCBjb25zdCBnZXREZWZhdWx0Um9sZUFzc3VtZXIgPSAoc3RzT3B0aW9ucywgU1RTQ2xpZW50KSA9PiB7XG4gICAgbGV0IHN0c0NsaWVudDtcbiAgICBsZXQgY2xvc3VyZVNvdXJjZUNyZWRzO1xuICAgIHJldHVybiBhc3luYyAoc291cmNlQ3JlZHMsIHBhcmFtcykgPT4ge1xuICAgICAgICBjbG9zdXJlU291cmNlQ3JlZHMgPSBzb3VyY2VDcmVkcztcbiAgICAgICAgaWYgKCFzdHNDbGllbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgbG9nZ2VyID0gc3RzT3B0aW9ucz8ucGFyZW50Q2xpZW50Q29uZmlnPy5sb2dnZXIsIHByb2ZpbGUgPSBzdHNPcHRpb25zPy5wYXJlbnRDbGllbnRDb25maWc/LnByb2ZpbGUsIHJlZ2lvbiwgcmVxdWVzdEhhbmRsZXIgPSBzdHNPcHRpb25zPy5wYXJlbnRDbGllbnRDb25maWc/LnJlcXVlc3RIYW5kbGVyLCBjcmVkZW50aWFsUHJvdmlkZXJMb2dnZXIsIHVzZXJBZ2VudEFwcElkID0gc3RzT3B0aW9ucz8ucGFyZW50Q2xpZW50Q29uZmlnPy51c2VyQWdlbnRBcHBJZCwgfSA9IHN0c09wdGlvbnM7XG4gICAgICAgICAgICBjb25zdCByZXNvbHZlZFJlZ2lvbiA9IGF3YWl0IHJlc29sdmVSZWdpb24ocmVnaW9uLCBzdHNPcHRpb25zPy5wYXJlbnRDbGllbnRDb25maWc/LnJlZ2lvbiwgY3JlZGVudGlhbFByb3ZpZGVyTG9nZ2VyLCB7XG4gICAgICAgICAgICAgICAgbG9nZ2VyLFxuICAgICAgICAgICAgICAgIHByb2ZpbGUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0IGlzQ29tcGF0aWJsZVJlcXVlc3RIYW5kbGVyID0gIWlzSDIocmVxdWVzdEhhbmRsZXIpO1xuICAgICAgICAgICAgc3RzQ2xpZW50ID0gbmV3IFNUU0NsaWVudCh7XG4gICAgICAgICAgICAgICAgLi4uc3RzT3B0aW9ucyxcbiAgICAgICAgICAgICAgICB1c2VyQWdlbnRBcHBJZCxcbiAgICAgICAgICAgICAgICBwcm9maWxlLFxuICAgICAgICAgICAgICAgIGNyZWRlbnRpYWxEZWZhdWx0UHJvdmlkZXI6ICgpID0+IGFzeW5jICgpID0+IGNsb3N1cmVTb3VyY2VDcmVkcyxcbiAgICAgICAgICAgICAgICByZWdpb246IHJlc29sdmVkUmVnaW9uLFxuICAgICAgICAgICAgICAgIHJlcXVlc3RIYW5kbGVyOiBpc0NvbXBhdGlibGVSZXF1ZXN0SGFuZGxlciA/IHJlcXVlc3RIYW5kbGVyIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIGxvZ2dlcjogbG9nZ2VyLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgeyBDcmVkZW50aWFscywgQXNzdW1lZFJvbGVVc2VyIH0gPSBhd2FpdCBzdHNDbGllbnQuc2VuZChuZXcgQXNzdW1lUm9sZUNvbW1hbmQocGFyYW1zKSk7XG4gICAgICAgIGlmICghQ3JlZGVudGlhbHMgfHwgIUNyZWRlbnRpYWxzLkFjY2Vzc0tleUlkIHx8ICFDcmVkZW50aWFscy5TZWNyZXRBY2Nlc3NLZXkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCByZXNwb25zZSBmcm9tIFNUUy5hc3N1bWVSb2xlIGNhbGwgd2l0aCByb2xlICR7cGFyYW1zLlJvbGVBcm59YCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYWNjb3VudElkID0gZ2V0QWNjb3VudElkRnJvbUFzc3VtZWRSb2xlVXNlcihBc3N1bWVkUm9sZVVzZXIpO1xuICAgICAgICBjb25zdCBjcmVkZW50aWFscyA9IHtcbiAgICAgICAgICAgIGFjY2Vzc0tleUlkOiBDcmVkZW50aWFscy5BY2Nlc3NLZXlJZCxcbiAgICAgICAgICAgIHNlY3JldEFjY2Vzc0tleTogQ3JlZGVudGlhbHMuU2VjcmV0QWNjZXNzS2V5LFxuICAgICAgICAgICAgc2Vzc2lvblRva2VuOiBDcmVkZW50aWFscy5TZXNzaW9uVG9rZW4sXG4gICAgICAgICAgICBleHBpcmF0aW9uOiBDcmVkZW50aWFscy5FeHBpcmF0aW9uLFxuICAgICAgICAgICAgLi4uKENyZWRlbnRpYWxzLkNyZWRlbnRpYWxTY29wZSAmJiB7IGNyZWRlbnRpYWxTY29wZTogQ3JlZGVudGlhbHMuQ3JlZGVudGlhbFNjb3BlIH0pLFxuICAgICAgICAgICAgLi4uKGFjY291bnRJZCAmJiB7IGFjY291bnRJZCB9KSxcbiAgICAgICAgfTtcbiAgICAgICAgc2V0Q3JlZGVudGlhbEZlYXR1cmUoY3JlZGVudGlhbHMsIFwiQ1JFREVOVElBTFNfU1RTX0FTU1VNRV9ST0xFXCIsIFwiaVwiKTtcbiAgICAgICAgcmV0dXJuIGNyZWRlbnRpYWxzO1xuICAgIH07XG59O1xuZXhwb3J0IGNvbnN0IGdldERlZmF1bHRSb2xlQXNzdW1lcldpdGhXZWJJZGVudGl0eSA9IChzdHNPcHRpb25zLCBTVFNDbGllbnQpID0+IHtcbiAgICBsZXQgc3RzQ2xpZW50O1xuICAgIHJldHVybiBhc3luYyAocGFyYW1zKSA9PiB7XG4gICAgICAgIGlmICghc3RzQ2xpZW50KSB7XG4gICAgICAgICAgICBjb25zdCB7IGxvZ2dlciA9IHN0c09wdGlvbnM/LnBhcmVudENsaWVudENvbmZpZz8ubG9nZ2VyLCBwcm9maWxlID0gc3RzT3B0aW9ucz8ucGFyZW50Q2xpZW50Q29uZmlnPy5wcm9maWxlLCByZWdpb24sIHJlcXVlc3RIYW5kbGVyID0gc3RzT3B0aW9ucz8ucGFyZW50Q2xpZW50Q29uZmlnPy5yZXF1ZXN0SGFuZGxlciwgY3JlZGVudGlhbFByb3ZpZGVyTG9nZ2VyLCB1c2VyQWdlbnRBcHBJZCA9IHN0c09wdGlvbnM/LnBhcmVudENsaWVudENvbmZpZz8udXNlckFnZW50QXBwSWQsIH0gPSBzdHNPcHRpb25zO1xuICAgICAgICAgICAgY29uc3QgcmVzb2x2ZWRSZWdpb24gPSBhd2FpdCByZXNvbHZlUmVnaW9uKHJlZ2lvbiwgc3RzT3B0aW9ucz8ucGFyZW50Q2xpZW50Q29uZmlnPy5yZWdpb24sIGNyZWRlbnRpYWxQcm92aWRlckxvZ2dlciwge1xuICAgICAgICAgICAgICAgIGxvZ2dlcixcbiAgICAgICAgICAgICAgICBwcm9maWxlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCBpc0NvbXBhdGlibGVSZXF1ZXN0SGFuZGxlciA9ICFpc0gyKHJlcXVlc3RIYW5kbGVyKTtcbiAgICAgICAgICAgIHN0c0NsaWVudCA9IG5ldyBTVFNDbGllbnQoe1xuICAgICAgICAgICAgICAgIC4uLnN0c09wdGlvbnMsXG4gICAgICAgICAgICAgICAgdXNlckFnZW50QXBwSWQsXG4gICAgICAgICAgICAgICAgcHJvZmlsZSxcbiAgICAgICAgICAgICAgICByZWdpb246IHJlc29sdmVkUmVnaW9uLFxuICAgICAgICAgICAgICAgIHJlcXVlc3RIYW5kbGVyOiBpc0NvbXBhdGlibGVSZXF1ZXN0SGFuZGxlciA/IHJlcXVlc3RIYW5kbGVyIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIGxvZ2dlcjogbG9nZ2VyLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgeyBDcmVkZW50aWFscywgQXNzdW1lZFJvbGVVc2VyIH0gPSBhd2FpdCBzdHNDbGllbnQuc2VuZChuZXcgQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eUNvbW1hbmQocGFyYW1zKSk7XG4gICAgICAgIGlmICghQ3JlZGVudGlhbHMgfHwgIUNyZWRlbnRpYWxzLkFjY2Vzc0tleUlkIHx8ICFDcmVkZW50aWFscy5TZWNyZXRBY2Nlc3NLZXkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCByZXNwb25zZSBmcm9tIFNUUy5hc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5IGNhbGwgd2l0aCByb2xlICR7cGFyYW1zLlJvbGVBcm59YCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYWNjb3VudElkID0gZ2V0QWNjb3VudElkRnJvbUFzc3VtZWRSb2xlVXNlcihBc3N1bWVkUm9sZVVzZXIpO1xuICAgICAgICBjb25zdCBjcmVkZW50aWFscyA9IHtcbiAgICAgICAgICAgIGFjY2Vzc0tleUlkOiBDcmVkZW50aWFscy5BY2Nlc3NLZXlJZCxcbiAgICAgICAgICAgIHNlY3JldEFjY2Vzc0tleTogQ3JlZGVudGlhbHMuU2VjcmV0QWNjZXNzS2V5LFxuICAgICAgICAgICAgc2Vzc2lvblRva2VuOiBDcmVkZW50aWFscy5TZXNzaW9uVG9rZW4sXG4gICAgICAgICAgICBleHBpcmF0aW9uOiBDcmVkZW50aWFscy5FeHBpcmF0aW9uLFxuICAgICAgICAgICAgLi4uKENyZWRlbnRpYWxzLkNyZWRlbnRpYWxTY29wZSAmJiB7IGNyZWRlbnRpYWxTY29wZTogQ3JlZGVudGlhbHMuQ3JlZGVudGlhbFNjb3BlIH0pLFxuICAgICAgICAgICAgLi4uKGFjY291bnRJZCAmJiB7IGFjY291bnRJZCB9KSxcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKGFjY291bnRJZCkge1xuICAgICAgICAgICAgc2V0Q3JlZGVudGlhbEZlYXR1cmUoY3JlZGVudGlhbHMsIFwiUkVTT0xWRURfQUNDT1VOVF9JRFwiLCBcIlRcIik7XG4gICAgICAgIH1cbiAgICAgICAgc2V0Q3JlZGVudGlhbEZlYXR1cmUoY3JlZGVudGlhbHMsIFwiQ1JFREVOVElBTFNfU1RTX0FTU1VNRV9ST0xFX1dFQl9JRFwiLCBcImtcIik7XG4gICAgICAgIHJldHVybiBjcmVkZW50aWFscztcbiAgICB9O1xufTtcbmV4cG9ydCBjb25zdCBkZWNvcmF0ZURlZmF1bHRDcmVkZW50aWFsUHJvdmlkZXIgPSAocHJvdmlkZXIpID0+IChpbnB1dCkgPT4gcHJvdmlkZXIoe1xuICAgIHJvbGVBc3N1bWVyOiBnZXREZWZhdWx0Um9sZUFzc3VtZXIoaW5wdXQsIGlucHV0LnN0c0NsaWVudEN0b3IpLFxuICAgIHJvbGVBc3N1bWVyV2l0aFdlYklkZW50aXR5OiBnZXREZWZhdWx0Um9sZUFzc3VtZXJXaXRoV2ViSWRlbnRpdHkoaW5wdXQsIGlucHV0LnN0c0NsaWVudEN0b3IpLFxuICAgIC4uLmlucHV0LFxufSk7XG5jb25zdCBpc0gyID0gKHJlcXVlc3RIYW5kbGVyKSA9PiB7XG4gICAgcmV0dXJuIHJlcXVlc3RIYW5kbGVyPy5tZXRhZGF0YT8uaGFuZGxlclByb3RvY29sID09PSBcImgyXCI7XG59O1xuIiwgImltcG9ydCB7IGdldERlZmF1bHRSb2xlQXNzdW1lciBhcyBTdHNHZXREZWZhdWx0Um9sZUFzc3VtZXIsIGdldERlZmF1bHRSb2xlQXNzdW1lcldpdGhXZWJJZGVudGl0eSBhcyBTdHNHZXREZWZhdWx0Um9sZUFzc3VtZXJXaXRoV2ViSWRlbnRpdHksIH0gZnJvbSBcIi4vZGVmYXVsdFN0c1JvbGVBc3N1bWVyc1wiO1xuaW1wb3J0IHsgU1RTQ2xpZW50IH0gZnJvbSBcIi4vU1RTQ2xpZW50XCI7XG5jb25zdCBnZXRDdXN0b21pemFibGVTdHNDbGllbnRDdG9yID0gKGJhc2VDdG9yLCBjdXN0b21pemF0aW9ucykgPT4ge1xuICAgIGlmICghY3VzdG9taXphdGlvbnMpXG4gICAgICAgIHJldHVybiBiYXNlQ3RvcjtcbiAgICBlbHNlXG4gICAgICAgIHJldHVybiBjbGFzcyBDdXN0b21pemFibGVTVFNDbGllbnQgZXh0ZW5kcyBiYXNlQ3RvciB7XG4gICAgICAgICAgICBjb25zdHJ1Y3Rvcihjb25maWcpIHtcbiAgICAgICAgICAgICAgICBzdXBlcihjb25maWcpO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgY3VzdG9taXphdGlvbiBvZiBjdXN0b21pemF0aW9ucykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoY3VzdG9taXphdGlvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xufTtcbmV4cG9ydCBjb25zdCBnZXREZWZhdWx0Um9sZUFzc3VtZXIgPSAoc3RzT3B0aW9ucyA9IHt9LCBzdHNQbHVnaW5zKSA9PiBTdHNHZXREZWZhdWx0Um9sZUFzc3VtZXIoc3RzT3B0aW9ucywgZ2V0Q3VzdG9taXphYmxlU3RzQ2xpZW50Q3RvcihTVFNDbGllbnQsIHN0c1BsdWdpbnMpKTtcbmV4cG9ydCBjb25zdCBnZXREZWZhdWx0Um9sZUFzc3VtZXJXaXRoV2ViSWRlbnRpdHkgPSAoc3RzT3B0aW9ucyA9IHt9LCBzdHNQbHVnaW5zKSA9PiBTdHNHZXREZWZhdWx0Um9sZUFzc3VtZXJXaXRoV2ViSWRlbnRpdHkoc3RzT3B0aW9ucywgZ2V0Q3VzdG9taXphYmxlU3RzQ2xpZW50Q3RvcihTVFNDbGllbnQsIHN0c1BsdWdpbnMpKTtcbmV4cG9ydCBjb25zdCBkZWNvcmF0ZURlZmF1bHRDcmVkZW50aWFsUHJvdmlkZXIgPSAocHJvdmlkZXIpID0+IChpbnB1dCkgPT4gcHJvdmlkZXIoe1xuICAgIHJvbGVBc3N1bWVyOiBnZXREZWZhdWx0Um9sZUFzc3VtZXIoaW5wdXQpLFxuICAgIHJvbGVBc3N1bWVyV2l0aFdlYklkZW50aXR5OiBnZXREZWZhdWx0Um9sZUFzc3VtZXJXaXRoV2ViSWRlbnRpdHkoaW5wdXQpLFxuICAgIC4uLmlucHV0LFxufSk7XG4iLCAiZXhwb3J0ICogZnJvbSBcIi4vU1RTQ2xpZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9TVFNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbW1hbmRzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9tb2RlbHMvZXJyb3JzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9kZWZhdWx0Um9sZUFzc3VtZXJzXCI7XG5leHBvcnQgeyBTVFNTZXJ2aWNlRXhjZXB0aW9uIH0gZnJvbSBcIi4vbW9kZWxzL1NUU1NlcnZpY2VFeGNlcHRpb25cIjtcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBzaGFyZWRJbmlGaWxlTG9hZGVyID0gcmVxdWlyZSgnQHNtaXRoeS9zaGFyZWQtaW5pLWZpbGUtbG9hZGVyJyk7XG52YXIgcHJvcGVydHlQcm92aWRlciA9IHJlcXVpcmUoJ0BzbWl0aHkvcHJvcGVydHktcHJvdmlkZXInKTtcbnZhciBjaGlsZF9wcm9jZXNzID0gcmVxdWlyZSgnY2hpbGRfcHJvY2VzcycpO1xudmFyIHV0aWwgPSByZXF1aXJlKCd1dGlsJyk7XG52YXIgY2xpZW50ID0gcmVxdWlyZSgnQGF3cy1zZGsvY29yZS9jbGllbnQnKTtcblxuY29uc3QgZ2V0VmFsaWRhdGVkUHJvY2Vzc0NyZWRlbnRpYWxzID0gKHByb2ZpbGVOYW1lLCBkYXRhLCBwcm9maWxlcykgPT4ge1xuICAgIGlmIChkYXRhLlZlcnNpb24gIT09IDEpIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoYFByb2ZpbGUgJHtwcm9maWxlTmFtZX0gY3JlZGVudGlhbF9wcm9jZXNzIGRpZCBub3QgcmV0dXJuIFZlcnNpb24gMS5gKTtcbiAgICB9XG4gICAgaWYgKGRhdGEuQWNjZXNzS2V5SWQgPT09IHVuZGVmaW5lZCB8fCBkYXRhLlNlY3JldEFjY2Vzc0tleSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IEVycm9yKGBQcm9maWxlICR7cHJvZmlsZU5hbWV9IGNyZWRlbnRpYWxfcHJvY2VzcyByZXR1cm5lZCBpbnZhbGlkIGNyZWRlbnRpYWxzLmApO1xuICAgIH1cbiAgICBpZiAoZGF0YS5FeHBpcmF0aW9uKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRUaW1lID0gbmV3IERhdGUoKTtcbiAgICAgICAgY29uc3QgZXhwaXJlVGltZSA9IG5ldyBEYXRlKGRhdGEuRXhwaXJhdGlvbik7XG4gICAgICAgIGlmIChleHBpcmVUaW1lIDwgY3VycmVudFRpbWUpIHtcbiAgICAgICAgICAgIHRocm93IEVycm9yKGBQcm9maWxlICR7cHJvZmlsZU5hbWV9IGNyZWRlbnRpYWxfcHJvY2VzcyByZXR1cm5lZCBleHBpcmVkIGNyZWRlbnRpYWxzLmApO1xuICAgICAgICB9XG4gICAgfVxuICAgIGxldCBhY2NvdW50SWQgPSBkYXRhLkFjY291bnRJZDtcbiAgICBpZiAoIWFjY291bnRJZCAmJiBwcm9maWxlcz8uW3Byb2ZpbGVOYW1lXT8uYXdzX2FjY291bnRfaWQpIHtcbiAgICAgICAgYWNjb3VudElkID0gcHJvZmlsZXNbcHJvZmlsZU5hbWVdLmF3c19hY2NvdW50X2lkO1xuICAgIH1cbiAgICBjb25zdCBjcmVkZW50aWFscyA9IHtcbiAgICAgICAgYWNjZXNzS2V5SWQ6IGRhdGEuQWNjZXNzS2V5SWQsXG4gICAgICAgIHNlY3JldEFjY2Vzc0tleTogZGF0YS5TZWNyZXRBY2Nlc3NLZXksXG4gICAgICAgIC4uLihkYXRhLlNlc3Npb25Ub2tlbiAmJiB7IHNlc3Npb25Ub2tlbjogZGF0YS5TZXNzaW9uVG9rZW4gfSksXG4gICAgICAgIC4uLihkYXRhLkV4cGlyYXRpb24gJiYgeyBleHBpcmF0aW9uOiBuZXcgRGF0ZShkYXRhLkV4cGlyYXRpb24pIH0pLFxuICAgICAgICAuLi4oZGF0YS5DcmVkZW50aWFsU2NvcGUgJiYgeyBjcmVkZW50aWFsU2NvcGU6IGRhdGEuQ3JlZGVudGlhbFNjb3BlIH0pLFxuICAgICAgICAuLi4oYWNjb3VudElkICYmIHsgYWNjb3VudElkIH0pLFxuICAgIH07XG4gICAgY2xpZW50LnNldENyZWRlbnRpYWxGZWF0dXJlKGNyZWRlbnRpYWxzLCBcIkNSRURFTlRJQUxTX1BST0NFU1NcIiwgXCJ3XCIpO1xuICAgIHJldHVybiBjcmVkZW50aWFscztcbn07XG5cbmNvbnN0IHJlc29sdmVQcm9jZXNzQ3JlZGVudGlhbHMgPSBhc3luYyAocHJvZmlsZU5hbWUsIHByb2ZpbGVzLCBsb2dnZXIpID0+IHtcbiAgICBjb25zdCBwcm9maWxlID0gcHJvZmlsZXNbcHJvZmlsZU5hbWVdO1xuICAgIGlmIChwcm9maWxlc1twcm9maWxlTmFtZV0pIHtcbiAgICAgICAgY29uc3QgY3JlZGVudGlhbFByb2Nlc3MgPSBwcm9maWxlW1wiY3JlZGVudGlhbF9wcm9jZXNzXCJdO1xuICAgICAgICBpZiAoY3JlZGVudGlhbFByb2Nlc3MgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgY29uc3QgZXhlY1Byb21pc2UgPSB1dGlsLnByb21pc2lmeShzaGFyZWRJbmlGaWxlTG9hZGVyLmV4dGVybmFsRGF0YUludGVyY2VwdG9yPy5nZXRUb2tlblJlY29yZD8uKCkuZXhlYyA/PyBjaGlsZF9wcm9jZXNzLmV4ZWMpO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IHN0ZG91dCB9ID0gYXdhaXQgZXhlY1Byb21pc2UoY3JlZGVudGlhbFByb2Nlc3MpO1xuICAgICAgICAgICAgICAgIGxldCBkYXRhO1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGRhdGEgPSBKU09OLnBhcnNlKHN0ZG91dC50cmltKCkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXRjaCB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IEVycm9yKGBQcm9maWxlICR7cHJvZmlsZU5hbWV9IGNyZWRlbnRpYWxfcHJvY2VzcyByZXR1cm5lZCBpbnZhbGlkIEpTT04uYCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBnZXRWYWxpZGF0ZWRQcm9jZXNzQ3JlZGVudGlhbHMocHJvZmlsZU5hbWUsIGRhdGEsIHByb2ZpbGVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLkNyZWRlbnRpYWxzUHJvdmlkZXJFcnJvcihlcnJvci5tZXNzYWdlLCB7IGxvZ2dlciB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLkNyZWRlbnRpYWxzUHJvdmlkZXJFcnJvcihgUHJvZmlsZSAke3Byb2ZpbGVOYW1lfSBkaWQgbm90IGNvbnRhaW4gY3JlZGVudGlhbF9wcm9jZXNzLmAsIHsgbG9nZ2VyIH0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoYFByb2ZpbGUgJHtwcm9maWxlTmFtZX0gY291bGQgbm90IGJlIGZvdW5kIGluIHNoYXJlZCBjcmVkZW50aWFscyBmaWxlLmAsIHtcbiAgICAgICAgICAgIGxvZ2dlcixcbiAgICAgICAgfSk7XG4gICAgfVxufTtcblxuY29uc3QgZnJvbVByb2Nlc3MgPSAoaW5pdCA9IHt9KSA9PiBhc3luYyAoeyBjYWxsZXJDbGllbnRDb25maWcgfSA9IHt9KSA9PiB7XG4gICAgaW5pdC5sb2dnZXI/LmRlYnVnKFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1wcm9jZXNzIC0gZnJvbVByb2Nlc3NcIik7XG4gICAgY29uc3QgcHJvZmlsZXMgPSBhd2FpdCBzaGFyZWRJbmlGaWxlTG9hZGVyLnBhcnNlS25vd25GaWxlcyhpbml0KTtcbiAgICByZXR1cm4gcmVzb2x2ZVByb2Nlc3NDcmVkZW50aWFscyhzaGFyZWRJbmlGaWxlTG9hZGVyLmdldFByb2ZpbGVOYW1lKHtcbiAgICAgICAgcHJvZmlsZTogaW5pdC5wcm9maWxlID8/IGNhbGxlckNsaWVudENvbmZpZz8ucHJvZmlsZSxcbiAgICB9KSwgcHJvZmlsZXMsIGluaXQubG9nZ2VyKTtcbn07XG5cbmV4cG9ydHMuZnJvbVByb2Nlc3MgPSBmcm9tUHJvY2VzcztcbiIsICJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2NyZWF0ZUJpbmRpbmcgPSAodGhpcyAmJiB0aGlzLl9fY3JlYXRlQmluZGluZykgfHwgKE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xuICAgIHZhciBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtLCBrKTtcbiAgICBpZiAoIWRlc2MgfHwgKFwiZ2V0XCIgaW4gZGVzYyA/ICFtLl9fZXNNb2R1bGUgOiBkZXNjLndyaXRhYmxlIHx8IGRlc2MuY29uZmlndXJhYmxlKSkge1xuICAgICAgZGVzYyA9IHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIG1ba107IH0gfTtcbiAgICB9XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCBkZXNjKTtcbn0pIDogKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgICBvW2syXSA9IG1ba107XG59KSk7XG52YXIgX19zZXRNb2R1bGVEZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX3NldE1vZHVsZURlZmF1bHQpIHx8IChPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIHYpIHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgXCJkZWZhdWx0XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHYgfSk7XG59KSA6IGZ1bmN0aW9uKG8sIHYpIHtcbiAgICBvW1wiZGVmYXVsdFwiXSA9IHY7XG59KTtcbnZhciBfX2ltcG9ydFN0YXIgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0U3RhcikgfHwgKGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgb3duS2V5cyA9IGZ1bmN0aW9uKG8pIHtcbiAgICAgICAgb3duS2V5cyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzIHx8IGZ1bmN0aW9uIChvKSB7XG4gICAgICAgICAgICB2YXIgYXIgPSBbXTtcbiAgICAgICAgICAgIGZvciAodmFyIGsgaW4gbykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvLCBrKSkgYXJbYXIubGVuZ3RoXSA9IGs7XG4gICAgICAgICAgICByZXR1cm4gYXI7XG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBvd25LZXlzKG8pO1xuICAgIH07XG4gICAgcmV0dXJuIGZ1bmN0aW9uIChtb2QpIHtcbiAgICAgICAgaWYgKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgcmV0dXJuIG1vZDtcbiAgICAgICAgdmFyIHJlc3VsdCA9IHt9O1xuICAgICAgICBpZiAobW9kICE9IG51bGwpIGZvciAodmFyIGsgPSBvd25LZXlzKG1vZCksIGkgPSAwOyBpIDwgay5sZW5ndGg7IGkrKykgaWYgKGtbaV0gIT09IFwiZGVmYXVsdFwiKSBfX2NyZWF0ZUJpbmRpbmcocmVzdWx0LCBtb2QsIGtbaV0pO1xuICAgICAgICBfX3NldE1vZHVsZURlZmF1bHQocmVzdWx0LCBtb2QpO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH07XG59KSgpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5mcm9tV2ViVG9rZW4gPSB2b2lkIDA7XG5jb25zdCBmcm9tV2ViVG9rZW4gPSAoaW5pdCkgPT4gYXN5bmMgKGF3c0lkZW50aXR5UHJvcGVydGllcykgPT4ge1xuICAgIGluaXQubG9nZ2VyPy5kZWJ1ZyhcIkBhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItd2ViLWlkZW50aXR5IC0gZnJvbVdlYlRva2VuXCIpO1xuICAgIGNvbnN0IHsgcm9sZUFybiwgcm9sZVNlc3Npb25OYW1lLCB3ZWJJZGVudGl0eVRva2VuLCBwcm92aWRlcklkLCBwb2xpY3lBcm5zLCBwb2xpY3ksIGR1cmF0aW9uU2Vjb25kcyB9ID0gaW5pdDtcbiAgICBsZXQgeyByb2xlQXNzdW1lcldpdGhXZWJJZGVudGl0eSB9ID0gaW5pdDtcbiAgICBpZiAoIXJvbGVBc3N1bWVyV2l0aFdlYklkZW50aXR5KSB7XG4gICAgICAgIGNvbnN0IHsgZ2V0RGVmYXVsdFJvbGVBc3N1bWVyV2l0aFdlYklkZW50aXR5IH0gPSBhd2FpdCBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IF9faW1wb3J0U3RhcihyZXF1aXJlKFwiQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvc3RzXCIpKSk7XG4gICAgICAgIHJvbGVBc3N1bWVyV2l0aFdlYklkZW50aXR5ID0gZ2V0RGVmYXVsdFJvbGVBc3N1bWVyV2l0aFdlYklkZW50aXR5KHtcbiAgICAgICAgICAgIC4uLmluaXQuY2xpZW50Q29uZmlnLFxuICAgICAgICAgICAgY3JlZGVudGlhbFByb3ZpZGVyTG9nZ2VyOiBpbml0LmxvZ2dlcixcbiAgICAgICAgICAgIHBhcmVudENsaWVudENvbmZpZzoge1xuICAgICAgICAgICAgICAgIC4uLmF3c0lkZW50aXR5UHJvcGVydGllcz8uY2FsbGVyQ2xpZW50Q29uZmlnLFxuICAgICAgICAgICAgICAgIC4uLmluaXQucGFyZW50Q2xpZW50Q29uZmlnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSwgaW5pdC5jbGllbnRQbHVnaW5zKTtcbiAgICB9XG4gICAgcmV0dXJuIHJvbGVBc3N1bWVyV2l0aFdlYklkZW50aXR5KHtcbiAgICAgICAgUm9sZUFybjogcm9sZUFybixcbiAgICAgICAgUm9sZVNlc3Npb25OYW1lOiByb2xlU2Vzc2lvbk5hbWUgPz8gYGF3cy1zZGstanMtc2Vzc2lvbi0ke0RhdGUubm93KCl9YCxcbiAgICAgICAgV2ViSWRlbnRpdHlUb2tlbjogd2ViSWRlbnRpdHlUb2tlbixcbiAgICAgICAgUHJvdmlkZXJJZDogcHJvdmlkZXJJZCxcbiAgICAgICAgUG9saWN5QXJuczogcG9saWN5QXJucyxcbiAgICAgICAgUG9saWN5OiBwb2xpY3ksXG4gICAgICAgIER1cmF0aW9uU2Vjb25kczogZHVyYXRpb25TZWNvbmRzLFxuICAgIH0pO1xufTtcbmV4cG9ydHMuZnJvbVdlYlRva2VuID0gZnJvbVdlYlRva2VuO1xuIiwgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5mcm9tVG9rZW5GaWxlID0gdm9pZCAwO1xuY29uc3QgY2xpZW50XzEgPSByZXF1aXJlKFwiQGF3cy1zZGsvY29yZS9jbGllbnRcIik7XG5jb25zdCBwcm9wZXJ0eV9wcm92aWRlcl8xID0gcmVxdWlyZShcIkBzbWl0aHkvcHJvcGVydHktcHJvdmlkZXJcIik7XG5jb25zdCBzaGFyZWRfaW5pX2ZpbGVfbG9hZGVyXzEgPSByZXF1aXJlKFwiQHNtaXRoeS9zaGFyZWQtaW5pLWZpbGUtbG9hZGVyXCIpO1xuY29uc3QgZnNfMSA9IHJlcXVpcmUoXCJmc1wiKTtcbmNvbnN0IGZyb21XZWJUb2tlbl8xID0gcmVxdWlyZShcIi4vZnJvbVdlYlRva2VuXCIpO1xuY29uc3QgRU5WX1RPS0VOX0ZJTEUgPSBcIkFXU19XRUJfSURFTlRJVFlfVE9LRU5fRklMRVwiO1xuY29uc3QgRU5WX1JPTEVfQVJOID0gXCJBV1NfUk9MRV9BUk5cIjtcbmNvbnN0IEVOVl9ST0xFX1NFU1NJT05fTkFNRSA9IFwiQVdTX1JPTEVfU0VTU0lPTl9OQU1FXCI7XG5jb25zdCBmcm9tVG9rZW5GaWxlID0gKGluaXQgPSB7fSkgPT4gYXN5bmMgKGF3c0lkZW50aXR5UHJvcGVydGllcykgPT4ge1xuICAgIGluaXQubG9nZ2VyPy5kZWJ1ZyhcIkBhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItd2ViLWlkZW50aXR5IC0gZnJvbVRva2VuRmlsZVwiKTtcbiAgICBjb25zdCB3ZWJJZGVudGl0eVRva2VuRmlsZSA9IGluaXQ/LndlYklkZW50aXR5VG9rZW5GaWxlID8/IHByb2Nlc3MuZW52W0VOVl9UT0tFTl9GSUxFXTtcbiAgICBjb25zdCByb2xlQXJuID0gaW5pdD8ucm9sZUFybiA/PyBwcm9jZXNzLmVudltFTlZfUk9MRV9BUk5dO1xuICAgIGNvbnN0IHJvbGVTZXNzaW9uTmFtZSA9IGluaXQ/LnJvbGVTZXNzaW9uTmFtZSA/PyBwcm9jZXNzLmVudltFTlZfUk9MRV9TRVNTSU9OX05BTUVdO1xuICAgIGlmICghd2ViSWRlbnRpdHlUb2tlbkZpbGUgfHwgIXJvbGVBcm4pIHtcbiAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5X3Byb3ZpZGVyXzEuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKFwiV2ViIGlkZW50aXR5IGNvbmZpZ3VyYXRpb24gbm90IHNwZWNpZmllZFwiLCB7XG4gICAgICAgICAgICBsb2dnZXI6IGluaXQubG9nZ2VyLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgY3JlZGVudGlhbHMgPSBhd2FpdCAoMCwgZnJvbVdlYlRva2VuXzEuZnJvbVdlYlRva2VuKSh7XG4gICAgICAgIC4uLmluaXQsXG4gICAgICAgIHdlYklkZW50aXR5VG9rZW46IHNoYXJlZF9pbmlfZmlsZV9sb2FkZXJfMS5leHRlcm5hbERhdGFJbnRlcmNlcHRvcj8uZ2V0VG9rZW5SZWNvcmQ/LigpW3dlYklkZW50aXR5VG9rZW5GaWxlXSA/P1xuICAgICAgICAgICAgKDAsIGZzXzEucmVhZEZpbGVTeW5jKSh3ZWJJZGVudGl0eVRva2VuRmlsZSwgeyBlbmNvZGluZzogXCJhc2NpaVwiIH0pLFxuICAgICAgICByb2xlQXJuLFxuICAgICAgICByb2xlU2Vzc2lvbk5hbWUsXG4gICAgfSkoYXdzSWRlbnRpdHlQcm9wZXJ0aWVzKTtcbiAgICBpZiAod2ViSWRlbnRpdHlUb2tlbkZpbGUgPT09IHByb2Nlc3MuZW52W0VOVl9UT0tFTl9GSUxFXSkge1xuICAgICAgICAoMCwgY2xpZW50XzEuc2V0Q3JlZGVudGlhbEZlYXR1cmUpKGNyZWRlbnRpYWxzLCBcIkNSRURFTlRJQUxTX0VOVl9WQVJTX1NUU19XRUJfSURfVE9LRU5cIiwgXCJoXCIpO1xuICAgIH1cbiAgICByZXR1cm4gY3JlZGVudGlhbHM7XG59O1xuZXhwb3J0cy5mcm9tVG9rZW5GaWxlID0gZnJvbVRva2VuRmlsZTtcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBmcm9tVG9rZW5GaWxlID0gcmVxdWlyZSgnLi9mcm9tVG9rZW5GaWxlJyk7XG52YXIgZnJvbVdlYlRva2VuID0gcmVxdWlyZSgnLi9mcm9tV2ViVG9rZW4nKTtcblxuXG5cbk9iamVjdC5rZXlzKGZyb21Ub2tlbkZpbGUpLmZvckVhY2goZnVuY3Rpb24gKGspIHtcblx0aWYgKGsgIT09ICdkZWZhdWx0JyAmJiAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGV4cG9ydHMsIGspKSBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgaywge1xuXHRcdGVudW1lcmFibGU6IHRydWUsXG5cdFx0Z2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBmcm9tVG9rZW5GaWxlW2tdOyB9XG5cdH0pO1xufSk7XG5PYmplY3Qua2V5cyhmcm9tV2ViVG9rZW4pLmZvckVhY2goZnVuY3Rpb24gKGspIHtcblx0aWYgKGsgIT09ICdkZWZhdWx0JyAmJiAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGV4cG9ydHMsIGspKSBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgaywge1xuXHRcdGVudW1lcmFibGU6IHRydWUsXG5cdFx0Z2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBmcm9tV2ViVG9rZW5ba107IH1cblx0fSk7XG59KTtcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBzaGFyZWRJbmlGaWxlTG9hZGVyID0gcmVxdWlyZSgnQHNtaXRoeS9zaGFyZWQtaW5pLWZpbGUtbG9hZGVyJyk7XG52YXIgcHJvcGVydHlQcm92aWRlciA9IHJlcXVpcmUoJ0BzbWl0aHkvcHJvcGVydHktcHJvdmlkZXInKTtcbnZhciBjbGllbnQgPSByZXF1aXJlKCdAYXdzLXNkay9jb3JlL2NsaWVudCcpO1xudmFyIGNyZWRlbnRpYWxQcm92aWRlckxvZ2luID0gcmVxdWlyZSgnQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1sb2dpbicpO1xuXG5jb25zdCByZXNvbHZlQ3JlZGVudGlhbFNvdXJjZSA9IChjcmVkZW50aWFsU291cmNlLCBwcm9maWxlTmFtZSwgbG9nZ2VyKSA9PiB7XG4gICAgY29uc3Qgc291cmNlUHJvdmlkZXJzTWFwID0ge1xuICAgICAgICBFY3NDb250YWluZXI6IGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IGZyb21IdHRwIH0gPSBhd2FpdCBpbXBvcnQoJ0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItaHR0cCcpO1xuICAgICAgICAgICAgY29uc3QgeyBmcm9tQ29udGFpbmVyTWV0YWRhdGEgfSA9IGF3YWl0IGltcG9ydCgnQHNtaXRoeS9jcmVkZW50aWFsLXByb3ZpZGVyLWltZHMnKTtcbiAgICAgICAgICAgIGxvZ2dlcj8uZGVidWcoXCJAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLWluaSAtIGNyZWRlbnRpYWxfc291cmNlIGlzIEVjc0NvbnRhaW5lclwiKTtcbiAgICAgICAgICAgIHJldHVybiBhc3luYyAoKSA9PiBwcm9wZXJ0eVByb3ZpZGVyLmNoYWluKGZyb21IdHRwKG9wdGlvbnMgPz8ge30pLCBmcm9tQ29udGFpbmVyTWV0YWRhdGEob3B0aW9ucykpKCkudGhlbihzZXROYW1lZFByb3ZpZGVyKTtcbiAgICAgICAgfSxcbiAgICAgICAgRWMySW5zdGFuY2VNZXRhZGF0YTogYXN5bmMgKG9wdGlvbnMpID0+IHtcbiAgICAgICAgICAgIGxvZ2dlcj8uZGVidWcoXCJAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLWluaSAtIGNyZWRlbnRpYWxfc291cmNlIGlzIEVjMkluc3RhbmNlTWV0YWRhdGFcIik7XG4gICAgICAgICAgICBjb25zdCB7IGZyb21JbnN0YW5jZU1ldGFkYXRhIH0gPSBhd2FpdCBpbXBvcnQoJ0BzbWl0aHkvY3JlZGVudGlhbC1wcm92aWRlci1pbWRzJyk7XG4gICAgICAgICAgICByZXR1cm4gYXN5bmMgKCkgPT4gZnJvbUluc3RhbmNlTWV0YWRhdGEob3B0aW9ucykoKS50aGVuKHNldE5hbWVkUHJvdmlkZXIpO1xuICAgICAgICB9LFxuICAgICAgICBFbnZpcm9ubWVudDogYXN5bmMgKG9wdGlvbnMpID0+IHtcbiAgICAgICAgICAgIGxvZ2dlcj8uZGVidWcoXCJAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLWluaSAtIGNyZWRlbnRpYWxfc291cmNlIGlzIEVudmlyb25tZW50XCIpO1xuICAgICAgICAgICAgY29uc3QgeyBmcm9tRW52IH0gPSBhd2FpdCBpbXBvcnQoJ0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItZW52Jyk7XG4gICAgICAgICAgICByZXR1cm4gYXN5bmMgKCkgPT4gZnJvbUVudihvcHRpb25zKSgpLnRoZW4oc2V0TmFtZWRQcm92aWRlcik7XG4gICAgICAgIH0sXG4gICAgfTtcbiAgICBpZiAoY3JlZGVudGlhbFNvdXJjZSBpbiBzb3VyY2VQcm92aWRlcnNNYXApIHtcbiAgICAgICAgcmV0dXJuIHNvdXJjZVByb3ZpZGVyc01hcFtjcmVkZW50aWFsU291cmNlXTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLkNyZWRlbnRpYWxzUHJvdmlkZXJFcnJvcihgVW5zdXBwb3J0ZWQgY3JlZGVudGlhbCBzb3VyY2UgaW4gcHJvZmlsZSAke3Byb2ZpbGVOYW1lfS4gR290ICR7Y3JlZGVudGlhbFNvdXJjZX0sIGAgK1xuICAgICAgICAgICAgYGV4cGVjdGVkIEVjc0NvbnRhaW5lciBvciBFYzJJbnN0YW5jZU1ldGFkYXRhIG9yIEVudmlyb25tZW50LmAsIHsgbG9nZ2VyIH0pO1xuICAgIH1cbn07XG5jb25zdCBzZXROYW1lZFByb3ZpZGVyID0gKGNyZWRzKSA9PiBjbGllbnQuc2V0Q3JlZGVudGlhbEZlYXR1cmUoY3JlZHMsIFwiQ1JFREVOVElBTFNfUFJPRklMRV9OQU1FRF9QUk9WSURFUlwiLCBcInBcIik7XG5cbmNvbnN0IGlzQXNzdW1lUm9sZVByb2ZpbGUgPSAoYXJnLCB7IHByb2ZpbGUgPSBcImRlZmF1bHRcIiwgbG9nZ2VyIH0gPSB7fSkgPT4ge1xuICAgIHJldHVybiAoQm9vbGVhbihhcmcpICYmXG4gICAgICAgIHR5cGVvZiBhcmcgPT09IFwib2JqZWN0XCIgJiZcbiAgICAgICAgdHlwZW9mIGFyZy5yb2xlX2FybiA9PT0gXCJzdHJpbmdcIiAmJlxuICAgICAgICBbXCJ1bmRlZmluZWRcIiwgXCJzdHJpbmdcIl0uaW5kZXhPZih0eXBlb2YgYXJnLnJvbGVfc2Vzc2lvbl9uYW1lKSA+IC0xICYmXG4gICAgICAgIFtcInVuZGVmaW5lZFwiLCBcInN0cmluZ1wiXS5pbmRleE9mKHR5cGVvZiBhcmcuZXh0ZXJuYWxfaWQpID4gLTEgJiZcbiAgICAgICAgW1widW5kZWZpbmVkXCIsIFwic3RyaW5nXCJdLmluZGV4T2YodHlwZW9mIGFyZy5tZmFfc2VyaWFsKSA+IC0xICYmXG4gICAgICAgIChpc0Fzc3VtZVJvbGVXaXRoU291cmNlUHJvZmlsZShhcmcsIHsgcHJvZmlsZSwgbG9nZ2VyIH0pIHx8IGlzQ3JlZGVudGlhbFNvdXJjZVByb2ZpbGUoYXJnLCB7IHByb2ZpbGUsIGxvZ2dlciB9KSkpO1xufTtcbmNvbnN0IGlzQXNzdW1lUm9sZVdpdGhTb3VyY2VQcm9maWxlID0gKGFyZywgeyBwcm9maWxlLCBsb2dnZXIgfSkgPT4ge1xuICAgIGNvbnN0IHdpdGhTb3VyY2VQcm9maWxlID0gdHlwZW9mIGFyZy5zb3VyY2VfcHJvZmlsZSA9PT0gXCJzdHJpbmdcIiAmJiB0eXBlb2YgYXJnLmNyZWRlbnRpYWxfc291cmNlID09PSBcInVuZGVmaW5lZFwiO1xuICAgIGlmICh3aXRoU291cmNlUHJvZmlsZSkge1xuICAgICAgICBsb2dnZXI/LmRlYnVnPy4oYCAgICAke3Byb2ZpbGV9IGlzQXNzdW1lUm9sZVdpdGhTb3VyY2VQcm9maWxlIHNvdXJjZV9wcm9maWxlPSR7YXJnLnNvdXJjZV9wcm9maWxlfWApO1xuICAgIH1cbiAgICByZXR1cm4gd2l0aFNvdXJjZVByb2ZpbGU7XG59O1xuY29uc3QgaXNDcmVkZW50aWFsU291cmNlUHJvZmlsZSA9IChhcmcsIHsgcHJvZmlsZSwgbG9nZ2VyIH0pID0+IHtcbiAgICBjb25zdCB3aXRoUHJvdmlkZXJQcm9maWxlID0gdHlwZW9mIGFyZy5jcmVkZW50aWFsX3NvdXJjZSA9PT0gXCJzdHJpbmdcIiAmJiB0eXBlb2YgYXJnLnNvdXJjZV9wcm9maWxlID09PSBcInVuZGVmaW5lZFwiO1xuICAgIGlmICh3aXRoUHJvdmlkZXJQcm9maWxlKSB7XG4gICAgICAgIGxvZ2dlcj8uZGVidWc/LihgICAgICR7cHJvZmlsZX0gaXNDcmVkZW50aWFsU291cmNlUHJvZmlsZSBjcmVkZW50aWFsX3NvdXJjZT0ke2FyZy5jcmVkZW50aWFsX3NvdXJjZX1gKTtcbiAgICB9XG4gICAgcmV0dXJuIHdpdGhQcm92aWRlclByb2ZpbGU7XG59O1xuY29uc3QgcmVzb2x2ZUFzc3VtZVJvbGVDcmVkZW50aWFscyA9IGFzeW5jIChwcm9maWxlTmFtZSwgcHJvZmlsZXMsIG9wdGlvbnMsIGNhbGxlckNsaWVudENvbmZpZywgdmlzaXRlZFByb2ZpbGVzID0ge30sIHJlc29sdmVQcm9maWxlRGF0YSkgPT4ge1xuICAgIG9wdGlvbnMubG9nZ2VyPy5kZWJ1ZyhcIkBhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItaW5pIC0gcmVzb2x2ZUFzc3VtZVJvbGVDcmVkZW50aWFscyAoU1RTKVwiKTtcbiAgICBjb25zdCBwcm9maWxlRGF0YSA9IHByb2ZpbGVzW3Byb2ZpbGVOYW1lXTtcbiAgICBjb25zdCB7IHNvdXJjZV9wcm9maWxlLCByZWdpb24gfSA9IHByb2ZpbGVEYXRhO1xuICAgIGlmICghb3B0aW9ucy5yb2xlQXNzdW1lcikge1xuICAgICAgICBjb25zdCB7IGdldERlZmF1bHRSb2xlQXNzdW1lciB9ID0gYXdhaXQgaW1wb3J0KCdAYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9zdHMnKTtcbiAgICAgICAgb3B0aW9ucy5yb2xlQXNzdW1lciA9IGdldERlZmF1bHRSb2xlQXNzdW1lcih7XG4gICAgICAgICAgICAuLi5vcHRpb25zLmNsaWVudENvbmZpZyxcbiAgICAgICAgICAgIGNyZWRlbnRpYWxQcm92aWRlckxvZ2dlcjogb3B0aW9ucy5sb2dnZXIsXG4gICAgICAgICAgICBwYXJlbnRDbGllbnRDb25maWc6IHtcbiAgICAgICAgICAgICAgICAuLi5jYWxsZXJDbGllbnRDb25maWcsXG4gICAgICAgICAgICAgICAgLi4ub3B0aW9ucz8ucGFyZW50Q2xpZW50Q29uZmlnLFxuICAgICAgICAgICAgICAgIHJlZ2lvbjogcmVnaW9uID8/IG9wdGlvbnM/LnBhcmVudENsaWVudENvbmZpZz8ucmVnaW9uID8/IGNhbGxlckNsaWVudENvbmZpZz8ucmVnaW9uLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSwgb3B0aW9ucy5jbGllbnRQbHVnaW5zKTtcbiAgICB9XG4gICAgaWYgKHNvdXJjZV9wcm9maWxlICYmIHNvdXJjZV9wcm9maWxlIGluIHZpc2l0ZWRQcm9maWxlcykge1xuICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoYERldGVjdGVkIGEgY3ljbGUgYXR0ZW1wdGluZyB0byByZXNvbHZlIGNyZWRlbnRpYWxzIGZvciBwcm9maWxlYCArXG4gICAgICAgICAgICBgICR7c2hhcmVkSW5pRmlsZUxvYWRlci5nZXRQcm9maWxlTmFtZShvcHRpb25zKX0uIFByb2ZpbGVzIHZpc2l0ZWQ6IGAgK1xuICAgICAgICAgICAgT2JqZWN0LmtleXModmlzaXRlZFByb2ZpbGVzKS5qb2luKFwiLCBcIiksIHsgbG9nZ2VyOiBvcHRpb25zLmxvZ2dlciB9KTtcbiAgICB9XG4gICAgb3B0aW9ucy5sb2dnZXI/LmRlYnVnKGBAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLWluaSAtIGZpbmRpbmcgY3JlZGVudGlhbCByZXNvbHZlciB1c2luZyAke3NvdXJjZV9wcm9maWxlID8gYHNvdXJjZV9wcm9maWxlPVske3NvdXJjZV9wcm9maWxlfV1gIDogYHByb2ZpbGU9WyR7cHJvZmlsZU5hbWV9XWB9YCk7XG4gICAgY29uc3Qgc291cmNlQ3JlZHNQcm92aWRlciA9IHNvdXJjZV9wcm9maWxlXG4gICAgICAgID8gcmVzb2x2ZVByb2ZpbGVEYXRhKHNvdXJjZV9wcm9maWxlLCBwcm9maWxlcywgb3B0aW9ucywgY2FsbGVyQ2xpZW50Q29uZmlnLCB7XG4gICAgICAgICAgICAuLi52aXNpdGVkUHJvZmlsZXMsXG4gICAgICAgICAgICBbc291cmNlX3Byb2ZpbGVdOiB0cnVlLFxuICAgICAgICB9LCBpc0NyZWRlbnRpYWxTb3VyY2VXaXRob3V0Um9sZUFybihwcm9maWxlc1tzb3VyY2VfcHJvZmlsZV0gPz8ge30pKVxuICAgICAgICA6IChhd2FpdCByZXNvbHZlQ3JlZGVudGlhbFNvdXJjZShwcm9maWxlRGF0YS5jcmVkZW50aWFsX3NvdXJjZSwgcHJvZmlsZU5hbWUsIG9wdGlvbnMubG9nZ2VyKShvcHRpb25zKSkoKTtcbiAgICBpZiAoaXNDcmVkZW50aWFsU291cmNlV2l0aG91dFJvbGVBcm4ocHJvZmlsZURhdGEpKSB7XG4gICAgICAgIHJldHVybiBzb3VyY2VDcmVkc1Byb3ZpZGVyLnRoZW4oKGNyZWRzKSA9PiBjbGllbnQuc2V0Q3JlZGVudGlhbEZlYXR1cmUoY3JlZHMsIFwiQ1JFREVOVElBTFNfUFJPRklMRV9TT1VSQ0VfUFJPRklMRVwiLCBcIm9cIikpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgY29uc3QgcGFyYW1zID0ge1xuICAgICAgICAgICAgUm9sZUFybjogcHJvZmlsZURhdGEucm9sZV9hcm4sXG4gICAgICAgICAgICBSb2xlU2Vzc2lvbk5hbWU6IHByb2ZpbGVEYXRhLnJvbGVfc2Vzc2lvbl9uYW1lIHx8IGBhd3Mtc2RrLWpzLSR7RGF0ZS5ub3coKX1gLFxuICAgICAgICAgICAgRXh0ZXJuYWxJZDogcHJvZmlsZURhdGEuZXh0ZXJuYWxfaWQsXG4gICAgICAgICAgICBEdXJhdGlvblNlY29uZHM6IHBhcnNlSW50KHByb2ZpbGVEYXRhLmR1cmF0aW9uX3NlY29uZHMgfHwgXCIzNjAwXCIsIDEwKSxcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgeyBtZmFfc2VyaWFsIH0gPSBwcm9maWxlRGF0YTtcbiAgICAgICAgaWYgKG1mYV9zZXJpYWwpIHtcbiAgICAgICAgICAgIGlmICghb3B0aW9ucy5tZmFDb2RlUHJvdmlkZXIpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoYFByb2ZpbGUgJHtwcm9maWxlTmFtZX0gcmVxdWlyZXMgbXVsdGktZmFjdG9yIGF1dGhlbnRpY2F0aW9uLCBidXQgbm8gTUZBIGNvZGUgY2FsbGJhY2sgd2FzIHByb3ZpZGVkLmAsIHsgbG9nZ2VyOiBvcHRpb25zLmxvZ2dlciwgdHJ5TmV4dExpbms6IGZhbHNlIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcGFyYW1zLlNlcmlhbE51bWJlciA9IG1mYV9zZXJpYWw7XG4gICAgICAgICAgICBwYXJhbXMuVG9rZW5Db2RlID0gYXdhaXQgb3B0aW9ucy5tZmFDb2RlUHJvdmlkZXIobWZhX3NlcmlhbCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc291cmNlQ3JlZHMgPSBhd2FpdCBzb3VyY2VDcmVkc1Byb3ZpZGVyO1xuICAgICAgICByZXR1cm4gb3B0aW9ucy5yb2xlQXNzdW1lcihzb3VyY2VDcmVkcywgcGFyYW1zKS50aGVuKChjcmVkcykgPT4gY2xpZW50LnNldENyZWRlbnRpYWxGZWF0dXJlKGNyZWRzLCBcIkNSRURFTlRJQUxTX1BST0ZJTEVfU09VUkNFX1BST0ZJTEVcIiwgXCJvXCIpKTtcbiAgICB9XG59O1xuY29uc3QgaXNDcmVkZW50aWFsU291cmNlV2l0aG91dFJvbGVBcm4gPSAoc2VjdGlvbikgPT4ge1xuICAgIHJldHVybiAhc2VjdGlvbi5yb2xlX2FybiAmJiAhIXNlY3Rpb24uY3JlZGVudGlhbF9zb3VyY2U7XG59O1xuXG5jb25zdCBpc0xvZ2luUHJvZmlsZSA9IChkYXRhKSA9PiB7XG4gICAgcmV0dXJuIEJvb2xlYW4oZGF0YSAmJiBkYXRhLmxvZ2luX3Nlc3Npb24pO1xufTtcbmNvbnN0IHJlc29sdmVMb2dpbkNyZWRlbnRpYWxzID0gYXN5bmMgKHByb2ZpbGVOYW1lLCBvcHRpb25zLCBjYWxsZXJDbGllbnRDb25maWcpID0+IHtcbiAgICBjb25zdCBjcmVkZW50aWFscyA9IGF3YWl0IGNyZWRlbnRpYWxQcm92aWRlckxvZ2luLmZyb21Mb2dpbkNyZWRlbnRpYWxzKHtcbiAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgcHJvZmlsZTogcHJvZmlsZU5hbWUsXG4gICAgfSkoeyBjYWxsZXJDbGllbnRDb25maWcgfSk7XG4gICAgcmV0dXJuIGNsaWVudC5zZXRDcmVkZW50aWFsRmVhdHVyZShjcmVkZW50aWFscywgXCJDUkVERU5USUFMU19QUk9GSUxFX0xPR0lOXCIsIFwiQUNcIik7XG59O1xuXG5jb25zdCBpc1Byb2Nlc3NQcm9maWxlID0gKGFyZykgPT4gQm9vbGVhbihhcmcpICYmIHR5cGVvZiBhcmcgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIGFyZy5jcmVkZW50aWFsX3Byb2Nlc3MgPT09IFwic3RyaW5nXCI7XG5jb25zdCByZXNvbHZlUHJvY2Vzc0NyZWRlbnRpYWxzID0gYXN5bmMgKG9wdGlvbnMsIHByb2ZpbGUpID0+IGltcG9ydCgnQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1wcm9jZXNzJykudGhlbigoeyBmcm9tUHJvY2VzcyB9KSA9PiBmcm9tUHJvY2Vzcyh7XG4gICAgLi4ub3B0aW9ucyxcbiAgICBwcm9maWxlLFxufSkoKS50aGVuKChjcmVkcykgPT4gY2xpZW50LnNldENyZWRlbnRpYWxGZWF0dXJlKGNyZWRzLCBcIkNSRURFTlRJQUxTX1BST0ZJTEVfUFJPQ0VTU1wiLCBcInZcIikpKTtcblxuY29uc3QgcmVzb2x2ZVNzb0NyZWRlbnRpYWxzID0gYXN5bmMgKHByb2ZpbGUsIHByb2ZpbGVEYXRhLCBvcHRpb25zID0ge30sIGNhbGxlckNsaWVudENvbmZpZykgPT4ge1xuICAgIGNvbnN0IHsgZnJvbVNTTyB9ID0gYXdhaXQgaW1wb3J0KCdAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLXNzbycpO1xuICAgIHJldHVybiBmcm9tU1NPKHtcbiAgICAgICAgcHJvZmlsZSxcbiAgICAgICAgbG9nZ2VyOiBvcHRpb25zLmxvZ2dlcixcbiAgICAgICAgcGFyZW50Q2xpZW50Q29uZmlnOiBvcHRpb25zLnBhcmVudENsaWVudENvbmZpZyxcbiAgICAgICAgY2xpZW50Q29uZmlnOiBvcHRpb25zLmNsaWVudENvbmZpZyxcbiAgICB9KSh7XG4gICAgICAgIGNhbGxlckNsaWVudENvbmZpZyxcbiAgICB9KS50aGVuKChjcmVkcykgPT4ge1xuICAgICAgICBpZiAocHJvZmlsZURhdGEuc3NvX3Nlc3Npb24pIHtcbiAgICAgICAgICAgIHJldHVybiBjbGllbnQuc2V0Q3JlZGVudGlhbEZlYXR1cmUoY3JlZHMsIFwiQ1JFREVOVElBTFNfUFJPRklMRV9TU09cIiwgXCJyXCIpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGNsaWVudC5zZXRDcmVkZW50aWFsRmVhdHVyZShjcmVkcywgXCJDUkVERU5USUFMU19QUk9GSUxFX1NTT19MRUdBQ1lcIiwgXCJ0XCIpO1xuICAgICAgICB9XG4gICAgfSk7XG59O1xuY29uc3QgaXNTc29Qcm9maWxlID0gKGFyZykgPT4gYXJnICYmXG4gICAgKHR5cGVvZiBhcmcuc3NvX3N0YXJ0X3VybCA9PT0gXCJzdHJpbmdcIiB8fFxuICAgICAgICB0eXBlb2YgYXJnLnNzb19hY2NvdW50X2lkID09PSBcInN0cmluZ1wiIHx8XG4gICAgICAgIHR5cGVvZiBhcmcuc3NvX3Nlc3Npb24gPT09IFwic3RyaW5nXCIgfHxcbiAgICAgICAgdHlwZW9mIGFyZy5zc29fcmVnaW9uID09PSBcInN0cmluZ1wiIHx8XG4gICAgICAgIHR5cGVvZiBhcmcuc3NvX3JvbGVfbmFtZSA9PT0gXCJzdHJpbmdcIik7XG5cbmNvbnN0IGlzU3RhdGljQ3JlZHNQcm9maWxlID0gKGFyZykgPT4gQm9vbGVhbihhcmcpICYmXG4gICAgdHlwZW9mIGFyZyA9PT0gXCJvYmplY3RcIiAmJlxuICAgIHR5cGVvZiBhcmcuYXdzX2FjY2Vzc19rZXlfaWQgPT09IFwic3RyaW5nXCIgJiZcbiAgICB0eXBlb2YgYXJnLmF3c19zZWNyZXRfYWNjZXNzX2tleSA9PT0gXCJzdHJpbmdcIiAmJlxuICAgIFtcInVuZGVmaW5lZFwiLCBcInN0cmluZ1wiXS5pbmRleE9mKHR5cGVvZiBhcmcuYXdzX3Nlc3Npb25fdG9rZW4pID4gLTEgJiZcbiAgICBbXCJ1bmRlZmluZWRcIiwgXCJzdHJpbmdcIl0uaW5kZXhPZih0eXBlb2YgYXJnLmF3c19hY2NvdW50X2lkKSA+IC0xO1xuY29uc3QgcmVzb2x2ZVN0YXRpY0NyZWRlbnRpYWxzID0gYXN5bmMgKHByb2ZpbGUsIG9wdGlvbnMpID0+IHtcbiAgICBvcHRpb25zPy5sb2dnZXI/LmRlYnVnKFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1pbmkgLSByZXNvbHZlU3RhdGljQ3JlZGVudGlhbHNcIik7XG4gICAgY29uc3QgY3JlZGVudGlhbHMgPSB7XG4gICAgICAgIGFjY2Vzc0tleUlkOiBwcm9maWxlLmF3c19hY2Nlc3Nfa2V5X2lkLFxuICAgICAgICBzZWNyZXRBY2Nlc3NLZXk6IHByb2ZpbGUuYXdzX3NlY3JldF9hY2Nlc3Nfa2V5LFxuICAgICAgICBzZXNzaW9uVG9rZW46IHByb2ZpbGUuYXdzX3Nlc3Npb25fdG9rZW4sXG4gICAgICAgIC4uLihwcm9maWxlLmF3c19jcmVkZW50aWFsX3Njb3BlICYmIHsgY3JlZGVudGlhbFNjb3BlOiBwcm9maWxlLmF3c19jcmVkZW50aWFsX3Njb3BlIH0pLFxuICAgICAgICAuLi4ocHJvZmlsZS5hd3NfYWNjb3VudF9pZCAmJiB7IGFjY291bnRJZDogcHJvZmlsZS5hd3NfYWNjb3VudF9pZCB9KSxcbiAgICB9O1xuICAgIHJldHVybiBjbGllbnQuc2V0Q3JlZGVudGlhbEZlYXR1cmUoY3JlZGVudGlhbHMsIFwiQ1JFREVOVElBTFNfUFJPRklMRVwiLCBcIm5cIik7XG59O1xuXG5jb25zdCBpc1dlYklkZW50aXR5UHJvZmlsZSA9IChhcmcpID0+IEJvb2xlYW4oYXJnKSAmJlxuICAgIHR5cGVvZiBhcmcgPT09IFwib2JqZWN0XCIgJiZcbiAgICB0eXBlb2YgYXJnLndlYl9pZGVudGl0eV90b2tlbl9maWxlID09PSBcInN0cmluZ1wiICYmXG4gICAgdHlwZW9mIGFyZy5yb2xlX2FybiA9PT0gXCJzdHJpbmdcIiAmJlxuICAgIFtcInVuZGVmaW5lZFwiLCBcInN0cmluZ1wiXS5pbmRleE9mKHR5cGVvZiBhcmcucm9sZV9zZXNzaW9uX25hbWUpID4gLTE7XG5jb25zdCByZXNvbHZlV2ViSWRlbnRpdHlDcmVkZW50aWFscyA9IGFzeW5jIChwcm9maWxlLCBvcHRpb25zLCBjYWxsZXJDbGllbnRDb25maWcpID0+IGltcG9ydCgnQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci13ZWItaWRlbnRpdHknKS50aGVuKCh7IGZyb21Ub2tlbkZpbGUgfSkgPT4gZnJvbVRva2VuRmlsZSh7XG4gICAgd2ViSWRlbnRpdHlUb2tlbkZpbGU6IHByb2ZpbGUud2ViX2lkZW50aXR5X3Rva2VuX2ZpbGUsXG4gICAgcm9sZUFybjogcHJvZmlsZS5yb2xlX2FybixcbiAgICByb2xlU2Vzc2lvbk5hbWU6IHByb2ZpbGUucm9sZV9zZXNzaW9uX25hbWUsXG4gICAgcm9sZUFzc3VtZXJXaXRoV2ViSWRlbnRpdHk6IG9wdGlvbnMucm9sZUFzc3VtZXJXaXRoV2ViSWRlbnRpdHksXG4gICAgbG9nZ2VyOiBvcHRpb25zLmxvZ2dlcixcbiAgICBwYXJlbnRDbGllbnRDb25maWc6IG9wdGlvbnMucGFyZW50Q2xpZW50Q29uZmlnLFxufSkoe1xuICAgIGNhbGxlckNsaWVudENvbmZpZyxcbn0pLnRoZW4oKGNyZWRzKSA9PiBjbGllbnQuc2V0Q3JlZGVudGlhbEZlYXR1cmUoY3JlZHMsIFwiQ1JFREVOVElBTFNfUFJPRklMRV9TVFNfV0VCX0lEX1RPS0VOXCIsIFwicVwiKSkpO1xuXG5jb25zdCByZXNvbHZlUHJvZmlsZURhdGEgPSBhc3luYyAocHJvZmlsZU5hbWUsIHByb2ZpbGVzLCBvcHRpb25zLCBjYWxsZXJDbGllbnRDb25maWcsIHZpc2l0ZWRQcm9maWxlcyA9IHt9LCBpc0Fzc3VtZVJvbGVSZWN1cnNpdmVDYWxsID0gZmFsc2UpID0+IHtcbiAgICBjb25zdCBkYXRhID0gcHJvZmlsZXNbcHJvZmlsZU5hbWVdO1xuICAgIGlmIChPYmplY3Qua2V5cyh2aXNpdGVkUHJvZmlsZXMpLmxlbmd0aCA+IDAgJiYgaXNTdGF0aWNDcmVkc1Byb2ZpbGUoZGF0YSkpIHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVTdGF0aWNDcmVkZW50aWFscyhkYXRhLCBvcHRpb25zKTtcbiAgICB9XG4gICAgaWYgKGlzQXNzdW1lUm9sZVJlY3Vyc2l2ZUNhbGwgfHwgaXNBc3N1bWVSb2xlUHJvZmlsZShkYXRhLCB7IHByb2ZpbGU6IHByb2ZpbGVOYW1lLCBsb2dnZXI6IG9wdGlvbnMubG9nZ2VyIH0pKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlQXNzdW1lUm9sZUNyZWRlbnRpYWxzKHByb2ZpbGVOYW1lLCBwcm9maWxlcywgb3B0aW9ucywgY2FsbGVyQ2xpZW50Q29uZmlnLCB2aXNpdGVkUHJvZmlsZXMsIHJlc29sdmVQcm9maWxlRGF0YSk7XG4gICAgfVxuICAgIGlmIChpc1N0YXRpY0NyZWRzUHJvZmlsZShkYXRhKSkge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZVN0YXRpY0NyZWRlbnRpYWxzKGRhdGEsIG9wdGlvbnMpO1xuICAgIH1cbiAgICBpZiAoaXNXZWJJZGVudGl0eVByb2ZpbGUoZGF0YSkpIHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVXZWJJZGVudGl0eUNyZWRlbnRpYWxzKGRhdGEsIG9wdGlvbnMsIGNhbGxlckNsaWVudENvbmZpZyk7XG4gICAgfVxuICAgIGlmIChpc1Byb2Nlc3NQcm9maWxlKGRhdGEpKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlUHJvY2Vzc0NyZWRlbnRpYWxzKG9wdGlvbnMsIHByb2ZpbGVOYW1lKTtcbiAgICB9XG4gICAgaWYgKGlzU3NvUHJvZmlsZShkYXRhKSkge1xuICAgICAgICByZXR1cm4gYXdhaXQgcmVzb2x2ZVNzb0NyZWRlbnRpYWxzKHByb2ZpbGVOYW1lLCBkYXRhLCBvcHRpb25zLCBjYWxsZXJDbGllbnRDb25maWcpO1xuICAgIH1cbiAgICBpZiAoaXNMb2dpblByb2ZpbGUoZGF0YSkpIHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVMb2dpbkNyZWRlbnRpYWxzKHByb2ZpbGVOYW1lLCBvcHRpb25zLCBjYWxsZXJDbGllbnRDb25maWcpO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoYENvdWxkIG5vdCByZXNvbHZlIGNyZWRlbnRpYWxzIHVzaW5nIHByb2ZpbGU6IFske3Byb2ZpbGVOYW1lfV0gaW4gY29uZmlndXJhdGlvbi9jcmVkZW50aWFscyBmaWxlKHMpLmAsIHsgbG9nZ2VyOiBvcHRpb25zLmxvZ2dlciB9KTtcbn07XG5cbmNvbnN0IGZyb21JbmkgPSAoaW5pdCA9IHt9KSA9PiBhc3luYyAoeyBjYWxsZXJDbGllbnRDb25maWcgfSA9IHt9KSA9PiB7XG4gICAgaW5pdC5sb2dnZXI/LmRlYnVnKFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1pbmkgLSBmcm9tSW5pXCIpO1xuICAgIGNvbnN0IHByb2ZpbGVzID0gYXdhaXQgc2hhcmVkSW5pRmlsZUxvYWRlci5wYXJzZUtub3duRmlsZXMoaW5pdCk7XG4gICAgcmV0dXJuIHJlc29sdmVQcm9maWxlRGF0YShzaGFyZWRJbmlGaWxlTG9hZGVyLmdldFByb2ZpbGVOYW1lKHtcbiAgICAgICAgcHJvZmlsZTogaW5pdC5wcm9maWxlID8/IGNhbGxlckNsaWVudENvbmZpZz8ucHJvZmlsZSxcbiAgICB9KSwgcHJvZmlsZXMsIGluaXQsIGNhbGxlckNsaWVudENvbmZpZyk7XG59O1xuXG5leHBvcnRzLmZyb21JbmkgPSBmcm9tSW5pO1xuIiwgIid1c2Ugc3RyaWN0JztcblxudmFyIGNyZWRlbnRpYWxQcm92aWRlckVudiA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItZW52Jyk7XG52YXIgcHJvcGVydHlQcm92aWRlciA9IHJlcXVpcmUoJ0BzbWl0aHkvcHJvcGVydHktcHJvdmlkZXInKTtcbnZhciBzaGFyZWRJbmlGaWxlTG9hZGVyID0gcmVxdWlyZSgnQHNtaXRoeS9zaGFyZWQtaW5pLWZpbGUtbG9hZGVyJyk7XG5cbmNvbnN0IEVOVl9JTURTX0RJU0FCTEVEID0gXCJBV1NfRUMyX01FVEFEQVRBX0RJU0FCTEVEXCI7XG5jb25zdCByZW1vdGVQcm92aWRlciA9IGFzeW5jIChpbml0KSA9PiB7XG4gICAgY29uc3QgeyBFTlZfQ01EU19GVUxMX1VSSSwgRU5WX0NNRFNfUkVMQVRJVkVfVVJJLCBmcm9tQ29udGFpbmVyTWV0YWRhdGEsIGZyb21JbnN0YW5jZU1ldGFkYXRhIH0gPSBhd2FpdCBpbXBvcnQoJ0BzbWl0aHkvY3JlZGVudGlhbC1wcm92aWRlci1pbWRzJyk7XG4gICAgaWYgKHByb2Nlc3MuZW52W0VOVl9DTURTX1JFTEFUSVZFX1VSSV0gfHwgcHJvY2Vzcy5lbnZbRU5WX0NNRFNfRlVMTF9VUkldKSB7XG4gICAgICAgIGluaXQubG9nZ2VyPy5kZWJ1ZyhcIkBhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbm9kZSAtIHJlbW90ZVByb3ZpZGVyOjpmcm9tSHR0cC9mcm9tQ29udGFpbmVyTWV0YWRhdGFcIik7XG4gICAgICAgIGNvbnN0IHsgZnJvbUh0dHAgfSA9IGF3YWl0IGltcG9ydCgnQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1odHRwJyk7XG4gICAgICAgIHJldHVybiBwcm9wZXJ0eVByb3ZpZGVyLmNoYWluKGZyb21IdHRwKGluaXQpLCBmcm9tQ29udGFpbmVyTWV0YWRhdGEoaW5pdCkpO1xuICAgIH1cbiAgICBpZiAocHJvY2Vzcy5lbnZbRU5WX0lNRFNfRElTQUJMRURdICYmIHByb2Nlc3MuZW52W0VOVl9JTURTX0RJU0FCTEVEXSAhPT0gXCJmYWxzZVwiKSB7XG4gICAgICAgIHJldHVybiBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoXCJFQzIgSW5zdGFuY2UgTWV0YWRhdGEgU2VydmljZSBhY2Nlc3MgZGlzYWJsZWRcIiwgeyBsb2dnZXI6IGluaXQubG9nZ2VyIH0pO1xuICAgICAgICB9O1xuICAgIH1cbiAgICBpbml0LmxvZ2dlcj8uZGVidWcoXCJAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLW5vZGUgLSByZW1vdGVQcm92aWRlcjo6ZnJvbUluc3RhbmNlTWV0YWRhdGFcIik7XG4gICAgcmV0dXJuIGZyb21JbnN0YW5jZU1ldGFkYXRhKGluaXQpO1xufTtcblxuZnVuY3Rpb24gbWVtb2l6ZUNoYWluKHByb3ZpZGVycywgdHJlYXRBc0V4cGlyZWQpIHtcbiAgICBjb25zdCBjaGFpbiA9IGludGVybmFsQ3JlYXRlQ2hhaW4ocHJvdmlkZXJzKTtcbiAgICBsZXQgYWN0aXZlTG9jaztcbiAgICBsZXQgcGFzc2l2ZUxvY2s7XG4gICAgbGV0IGNyZWRlbnRpYWxzO1xuICAgIGNvbnN0IHByb3ZpZGVyID0gYXN5bmMgKG9wdGlvbnMpID0+IHtcbiAgICAgICAgaWYgKG9wdGlvbnM/LmZvcmNlUmVmcmVzaCkge1xuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IGNoYWluKG9wdGlvbnMpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjcmVkZW50aWFscz8uZXhwaXJhdGlvbikge1xuICAgICAgICAgICAgaWYgKGNyZWRlbnRpYWxzPy5leHBpcmF0aW9uPy5nZXRUaW1lKCkgPCBEYXRlLm5vdygpKSB7XG4gICAgICAgICAgICAgICAgY3JlZGVudGlhbHMgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFjdGl2ZUxvY2spIHtcbiAgICAgICAgICAgIGF3YWl0IGFjdGl2ZUxvY2s7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoIWNyZWRlbnRpYWxzIHx8IHRyZWF0QXNFeHBpcmVkPy4oY3JlZGVudGlhbHMpKSB7XG4gICAgICAgICAgICBpZiAoY3JlZGVudGlhbHMpIHtcbiAgICAgICAgICAgICAgICBpZiAoIXBhc3NpdmVMb2NrKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhc3NpdmVMb2NrID0gY2hhaW4ob3B0aW9ucykudGhlbigoYykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY3JlZGVudGlhbHMgPSBjO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFzc2l2ZUxvY2sgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGFjdGl2ZUxvY2sgPSBjaGFpbihvcHRpb25zKS50aGVuKChjKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNyZWRlbnRpYWxzID0gYztcbiAgICAgICAgICAgICAgICAgICAgYWN0aXZlTG9jayA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gcHJvdmlkZXIob3B0aW9ucyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNyZWRlbnRpYWxzO1xuICAgIH07XG4gICAgcmV0dXJuIHByb3ZpZGVyO1xufVxuY29uc3QgaW50ZXJuYWxDcmVhdGVDaGFpbiA9IChwcm92aWRlcnMpID0+IGFzeW5jIChhd3NJZGVudGl0eVByb3BlcnRpZXMpID0+IHtcbiAgICBsZXQgbGFzdFByb3ZpZGVyRXJyb3I7XG4gICAgZm9yIChjb25zdCBwcm92aWRlciBvZiBwcm92aWRlcnMpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiBhd2FpdCBwcm92aWRlcihhd3NJZGVudGl0eVByb3BlcnRpZXMpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIGxhc3RQcm92aWRlckVycm9yID0gZXJyO1xuICAgICAgICAgICAgaWYgKGVycj8udHJ5TmV4dExpbmspIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgfVxuICAgIH1cbiAgICB0aHJvdyBsYXN0UHJvdmlkZXJFcnJvcjtcbn07XG5cbmxldCBtdWx0aXBsZUNyZWRlbnRpYWxTb3VyY2VXYXJuaW5nRW1pdHRlZCA9IGZhbHNlO1xuY29uc3QgZGVmYXVsdFByb3ZpZGVyID0gKGluaXQgPSB7fSkgPT4gbWVtb2l6ZUNoYWluKFtcbiAgICBhc3luYyAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHByb2ZpbGUgPSBpbml0LnByb2ZpbGUgPz8gcHJvY2Vzcy5lbnZbc2hhcmVkSW5pRmlsZUxvYWRlci5FTlZfUFJPRklMRV07XG4gICAgICAgIGlmIChwcm9maWxlKSB7XG4gICAgICAgICAgICBjb25zdCBlbnZTdGF0aWNDcmVkZW50aWFsc0FyZVNldCA9IHByb2Nlc3MuZW52W2NyZWRlbnRpYWxQcm92aWRlckVudi5FTlZfS0VZXSAmJiBwcm9jZXNzLmVudltjcmVkZW50aWFsUHJvdmlkZXJFbnYuRU5WX1NFQ1JFVF07XG4gICAgICAgICAgICBpZiAoZW52U3RhdGljQ3JlZGVudGlhbHNBcmVTZXQpIHtcbiAgICAgICAgICAgICAgICBpZiAoIW11bHRpcGxlQ3JlZGVudGlhbFNvdXJjZVdhcm5pbmdFbWl0dGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHdhcm5GbiA9IGluaXQubG9nZ2VyPy53YXJuICYmIGluaXQubG9nZ2VyPy5jb25zdHJ1Y3Rvcj8ubmFtZSAhPT0gXCJOb09wTG9nZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gaW5pdC5sb2dnZXIud2Fybi5iaW5kKGluaXQubG9nZ2VyKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBjb25zb2xlLndhcm47XG4gICAgICAgICAgICAgICAgICAgIHdhcm5GbihgQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlIC0gZGVmYXVsdFByb3ZpZGVyOjpmcm9tRW52IFdBUk5JTkc6XG4gICAgTXVsdGlwbGUgY3JlZGVudGlhbCBzb3VyY2VzIGRldGVjdGVkOiBcbiAgICBCb3RoIEFXU19QUk9GSUxFIGFuZCB0aGUgcGFpciBBV1NfQUNDRVNTX0tFWV9JRC9BV1NfU0VDUkVUX0FDQ0VTU19LRVkgc3RhdGljIGNyZWRlbnRpYWxzIGFyZSBzZXQuXG4gICAgVGhpcyBTREsgd2lsbCBwcm9jZWVkIHdpdGggdGhlIEFXU19QUk9GSUxFIHZhbHVlLlxuICAgIFxuICAgIEhvd2V2ZXIsIGEgZnV0dXJlIHZlcnNpb24gbWF5IGNoYW5nZSB0aGlzIGJlaGF2aW9yIHRvIHByZWZlciB0aGUgRU5WIHN0YXRpYyBjcmVkZW50aWFscy5cbiAgICBQbGVhc2UgZW5zdXJlIHRoYXQgeW91ciBlbnZpcm9ubWVudCBvbmx5IHNldHMgZWl0aGVyIHRoZSBBV1NfUFJPRklMRSBvciB0aGVcbiAgICBBV1NfQUNDRVNTX0tFWV9JRC9BV1NfU0VDUkVUX0FDQ0VTU19LRVkgcGFpci5cbmApO1xuICAgICAgICAgICAgICAgICAgICBtdWx0aXBsZUNyZWRlbnRpYWxTb3VyY2VXYXJuaW5nRW1pdHRlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKFwiQVdTX1BST0ZJTEUgaXMgc2V0LCBza2lwcGluZyBmcm9tRW52IHByb3ZpZGVyLlwiLCB7XG4gICAgICAgICAgICAgICAgbG9nZ2VyOiBpbml0LmxvZ2dlcixcbiAgICAgICAgICAgICAgICB0cnlOZXh0TGluazogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGluaXQubG9nZ2VyPy5kZWJ1ZyhcIkBhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbm9kZSAtIGRlZmF1bHRQcm92aWRlcjo6ZnJvbUVudlwiKTtcbiAgICAgICAgcmV0dXJuIGNyZWRlbnRpYWxQcm92aWRlckVudi5mcm9tRW52KGluaXQpKCk7XG4gICAgfSxcbiAgICBhc3luYyAoYXdzSWRlbnRpdHlQcm9wZXJ0aWVzKSA9PiB7XG4gICAgICAgIGluaXQubG9nZ2VyPy5kZWJ1ZyhcIkBhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbm9kZSAtIGRlZmF1bHRQcm92aWRlcjo6ZnJvbVNTT1wiKTtcbiAgICAgICAgY29uc3QgeyBzc29TdGFydFVybCwgc3NvQWNjb3VudElkLCBzc29SZWdpb24sIHNzb1JvbGVOYW1lLCBzc29TZXNzaW9uIH0gPSBpbml0O1xuICAgICAgICBpZiAoIXNzb1N0YXJ0VXJsICYmICFzc29BY2NvdW50SWQgJiYgIXNzb1JlZ2lvbiAmJiAhc3NvUm9sZU5hbWUgJiYgIXNzb1Nlc3Npb24pIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLkNyZWRlbnRpYWxzUHJvdmlkZXJFcnJvcihcIlNraXBwaW5nIFNTTyBwcm92aWRlciBpbiBkZWZhdWx0IGNoYWluIChpbnB1dHMgZG8gbm90IGluY2x1ZGUgU1NPIGZpZWxkcykuXCIsIHsgbG9nZ2VyOiBpbml0LmxvZ2dlciB9KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB7IGZyb21TU08gfSA9IGF3YWl0IGltcG9ydCgnQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1zc28nKTtcbiAgICAgICAgcmV0dXJuIGZyb21TU08oaW5pdCkoYXdzSWRlbnRpdHlQcm9wZXJ0aWVzKTtcbiAgICB9LFxuICAgIGFzeW5jIChhd3NJZGVudGl0eVByb3BlcnRpZXMpID0+IHtcbiAgICAgICAgaW5pdC5sb2dnZXI/LmRlYnVnKFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlIC0gZGVmYXVsdFByb3ZpZGVyOjpmcm9tSW5pXCIpO1xuICAgICAgICBjb25zdCB7IGZyb21JbmkgfSA9IGF3YWl0IGltcG9ydCgnQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1pbmknKTtcbiAgICAgICAgcmV0dXJuIGZyb21JbmkoaW5pdCkoYXdzSWRlbnRpdHlQcm9wZXJ0aWVzKTtcbiAgICB9LFxuICAgIGFzeW5jIChhd3NJZGVudGl0eVByb3BlcnRpZXMpID0+IHtcbiAgICAgICAgaW5pdC5sb2dnZXI/LmRlYnVnKFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlIC0gZGVmYXVsdFByb3ZpZGVyOjpmcm9tUHJvY2Vzc1wiKTtcbiAgICAgICAgY29uc3QgeyBmcm9tUHJvY2VzcyB9ID0gYXdhaXQgaW1wb3J0KCdAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLXByb2Nlc3MnKTtcbiAgICAgICAgcmV0dXJuIGZyb21Qcm9jZXNzKGluaXQpKGF3c0lkZW50aXR5UHJvcGVydGllcyk7XG4gICAgfSxcbiAgICBhc3luYyAoYXdzSWRlbnRpdHlQcm9wZXJ0aWVzKSA9PiB7XG4gICAgICAgIGluaXQubG9nZ2VyPy5kZWJ1ZyhcIkBhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbm9kZSAtIGRlZmF1bHRQcm92aWRlcjo6ZnJvbVRva2VuRmlsZVwiKTtcbiAgICAgICAgY29uc3QgeyBmcm9tVG9rZW5GaWxlIH0gPSBhd2FpdCBpbXBvcnQoJ0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItd2ViLWlkZW50aXR5Jyk7XG4gICAgICAgIHJldHVybiBmcm9tVG9rZW5GaWxlKGluaXQpKGF3c0lkZW50aXR5UHJvcGVydGllcyk7XG4gICAgfSxcbiAgICBhc3luYyAoKSA9PiB7XG4gICAgICAgIGluaXQubG9nZ2VyPy5kZWJ1ZyhcIkBhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbm9kZSAtIGRlZmF1bHRQcm92aWRlcjo6cmVtb3RlUHJvdmlkZXJcIik7XG4gICAgICAgIHJldHVybiAoYXdhaXQgcmVtb3RlUHJvdmlkZXIoaW5pdCkpKCk7XG4gICAgfSxcbiAgICBhc3luYyAoKSA9PiB7XG4gICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLkNyZWRlbnRpYWxzUHJvdmlkZXJFcnJvcihcIkNvdWxkIG5vdCBsb2FkIGNyZWRlbnRpYWxzIGZyb20gYW55IHByb3ZpZGVyc1wiLCB7XG4gICAgICAgICAgICB0cnlOZXh0TGluazogZmFsc2UsXG4gICAgICAgICAgICBsb2dnZXI6IGluaXQubG9nZ2VyLFxuICAgICAgICB9KTtcbiAgICB9LFxuXSwgY3JlZGVudGlhbHNUcmVhdGVkQXNFeHBpcmVkKTtcbmNvbnN0IGNyZWRlbnRpYWxzV2lsbE5lZWRSZWZyZXNoID0gKGNyZWRlbnRpYWxzKSA9PiBjcmVkZW50aWFscz8uZXhwaXJhdGlvbiAhPT0gdW5kZWZpbmVkO1xuY29uc3QgY3JlZGVudGlhbHNUcmVhdGVkQXNFeHBpcmVkID0gKGNyZWRlbnRpYWxzKSA9PiBjcmVkZW50aWFscz8uZXhwaXJhdGlvbiAhPT0gdW5kZWZpbmVkICYmIGNyZWRlbnRpYWxzLmV4cGlyYXRpb24uZ2V0VGltZSgpIC0gRGF0ZS5ub3coKSA8IDMwMDAwMDtcblxuZXhwb3J0cy5jcmVkZW50aWFsc1RyZWF0ZWRBc0V4cGlyZWQgPSBjcmVkZW50aWFsc1RyZWF0ZWRBc0V4cGlyZWQ7XG5leHBvcnRzLmNyZWRlbnRpYWxzV2lsbE5lZWRSZWZyZXNoID0gY3JlZGVudGlhbHNXaWxsTmVlZFJlZnJlc2g7XG5leHBvcnRzLmRlZmF1bHRQcm92aWRlciA9IGRlZmF1bHRQcm92aWRlcjtcbiIsICJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMucnVsZVNldCA9IHZvaWQgMDtcbmNvbnN0IHcgPSBcInJlcXVpcmVkXCIsIHggPSBcImZuXCIsIHkgPSBcImFyZ3ZcIiwgeiA9IFwicmVmXCIsIEEgPSBcInByb3BlcnRpZXNcIiwgQiA9IFwiaGVhZGVyc1wiO1xuY29uc3QgYSA9IHRydWUsIGIgPSBmYWxzZSwgYyA9IFwiaXNTZXRcIiwgZCA9IFwiYm9vbGVhbkVxdWFsc1wiLCBlID0gXCJlcnJvclwiLCBmID0gXCJlbmRwb2ludFwiLCBnID0gXCJ0cmVlXCIsIGggPSBcIlBhcnRpdGlvblJlc3VsdFwiLCBpID0geyBbd106IHRydWUsIFwiZGVmYXVsdFwiOiBmYWxzZSwgXCJ0eXBlXCI6IFwiYm9vbGVhblwiIH0sIGogPSB7IFt3XTogZmFsc2UsIFwidHlwZVwiOiBcInN0cmluZ1wiIH0sIGsgPSB7IFt6XTogXCJFbmRwb2ludFwiIH0sIGwgPSB7IFt4XTogZCwgW3ldOiBbeyBbel06IFwiVXNlRklQU1wiIH0sIHRydWVdIH0sIG0gPSB7IFt6XTogXCJVc2VGSVBTXCIgfSwgbiA9IHsgW3hdOiBkLCBbeV06IFt7IFt6XTogXCJVc2VEdWFsU3RhY2tcIiB9LCB0cnVlXSB9LCBvID0ge30sIHAgPSB7IFt4XTogXCJzdHJpbmdFcXVhbHNcIiwgW3ldOiBbeyBbeF06IFwiZ2V0QXR0clwiLCBbeV06IFt7IFt6XTogaCB9LCBcIm5hbWVcIl0gfSwgXCJhd3MtdXMtZ292XCJdIH0sIHEgPSB7IFt4XTogZCwgW3ldOiBbeyBbel06IFwiVXNlRHVhbFN0YWNrXCIgfSwgZmFsc2VdIH0sIHIgPSB7IFwidXJsXCI6IFwiaHR0cHM6Ly9tb25pdG9yaW5nLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZG5zU3VmZml4fVwiLCBbQV06IHt9LCBbQl06IHt9IH0sIHMgPSB7IFwidXJsXCI6IFwiaHR0cHM6Ly9tb25pdG9yaW5nLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZHVhbFN0YWNrRG5zU3VmZml4fVwiLCBbQV06IHt9LCBbQl06IHt9IH0sIHQgPSB7IFt4XTogXCJnZXRBdHRyXCIsIFt5XTogW3sgW3pdOiBoIH0sIFwic3VwcG9ydHNGSVBTXCJdIH0sIHUgPSB7IFt4XTogZCwgW3ldOiBbdHJ1ZSwgeyBbeF06IFwiZ2V0QXR0clwiLCBbeV06IFt7IFt6XTogaCB9LCBcInN1cHBvcnRzRHVhbFN0YWNrXCJdIH1dIH0sIHYgPSBbeyBbel06IFwiUmVnaW9uXCIgfV07XG5jb25zdCBfZGF0YSA9IHsgdmVyc2lvbjogXCIxLjBcIiwgcGFyYW1ldGVyczogeyBVc2VEdWFsU3RhY2s6IGksIFVzZUZJUFM6IGksIEVuZHBvaW50OiBqLCBSZWdpb246IGogfSwgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IFt7IFt4XTogYywgW3ldOiBba10gfV0sIHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbbF0sIGVycm9yOiBcIkludmFsaWQgQ29uZmlndXJhdGlvbjogRklQUyBhbmQgY3VzdG9tIGVuZHBvaW50IGFyZSBub3Qgc3VwcG9ydGVkXCIsIHR5cGU6IGUgfSwgeyBydWxlczogW3sgY29uZGl0aW9uczogW25dLCBlcnJvcjogXCJJbnZhbGlkIENvbmZpZ3VyYXRpb246IER1YWxzdGFjayBhbmQgY3VzdG9tIGVuZHBvaW50IGFyZSBub3Qgc3VwcG9ydGVkXCIsIHR5cGU6IGUgfSwgeyBlbmRwb2ludDogeyB1cmw6IGssIFtBXTogbywgW0JdOiBvIH0sIHR5cGU6IGYgfV0sIHR5cGU6IGcgfV0sIHR5cGU6IGcgfSwgeyBydWxlczogW3sgY29uZGl0aW9uczogW3sgW3hdOiBjLCBbeV06IHYgfV0sIHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbeyBbeF06IFwiYXdzLnBhcnRpdGlvblwiLCBbeV06IHYsIGFzc2lnbjogaCB9XSwgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IFtwLCBsLCBxXSwgZW5kcG9pbnQ6IHIsIHR5cGU6IGYgfSwgeyBjb25kaXRpb25zOiBbcCwgbCwgbl0sIGVuZHBvaW50OiBzLCB0eXBlOiBmIH0sIHsgY29uZGl0aW9uczogW2wsIG5dLCBydWxlczogW3sgY29uZGl0aW9uczogW3sgW3hdOiBkLCBbeV06IFthLCB0XSB9LCB1XSwgcnVsZXM6IFt7IGVuZHBvaW50OiB7IHVybDogXCJodHRwczovL21vbml0b3JpbmctZmlwcy57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2R1YWxTdGFja0Ruc1N1ZmZpeH1cIiwgW0FdOiBvLCBbQl06IG8gfSwgdHlwZTogZiB9XSwgdHlwZTogZyB9LCB7IGVycm9yOiBcIkZJUFMgYW5kIER1YWxTdGFjayBhcmUgZW5hYmxlZCwgYnV0IHRoaXMgcGFydGl0aW9uIGRvZXMgbm90IHN1cHBvcnQgb25lIG9yIGJvdGhcIiwgdHlwZTogZSB9XSwgdHlwZTogZyB9LCB7IGNvbmRpdGlvbnM6IFtsLCBxXSwgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IFt7IFt4XTogZCwgW3ldOiBbdCwgYV0gfV0sIHJ1bGVzOiBbeyBlbmRwb2ludDogeyB1cmw6IFwiaHR0cHM6Ly9tb25pdG9yaW5nLWZpcHMue1JlZ2lvbn0ue1BhcnRpdGlvblJlc3VsdCNkbnNTdWZmaXh9XCIsIFtBXTogbywgW0JdOiBvIH0sIHR5cGU6IGYgfV0sIHR5cGU6IGcgfSwgeyBlcnJvcjogXCJGSVBTIGlzIGVuYWJsZWQgYnV0IHRoaXMgcGFydGl0aW9uIGRvZXMgbm90IHN1cHBvcnQgRklQU1wiLCB0eXBlOiBlIH1dLCB0eXBlOiBnIH0sIHsgY29uZGl0aW9uczogW3sgW3hdOiBkLCBbeV06IFttLCBiXSB9LCBuXSwgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IFt1XSwgcnVsZXM6IFt7IGVuZHBvaW50OiBzLCB0eXBlOiBmIH1dLCB0eXBlOiBnIH0sIHsgZXJyb3I6IFwiRHVhbFN0YWNrIGlzIGVuYWJsZWQgYnV0IHRoaXMgcGFydGl0aW9uIGRvZXMgbm90IHN1cHBvcnQgRHVhbFN0YWNrXCIsIHR5cGU6IGUgfV0sIHR5cGU6IGcgfSwgeyBlbmRwb2ludDogciwgdHlwZTogZiB9XSwgdHlwZTogZyB9XSwgdHlwZTogZyB9LCB7IGVycm9yOiBcIkludmFsaWQgQ29uZmlndXJhdGlvbjogTWlzc2luZyBSZWdpb25cIiwgdHlwZTogZSB9XSwgdHlwZTogZyB9XSB9O1xuZXhwb3J0cy5ydWxlU2V0ID0gX2RhdGE7XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmRlZmF1bHRFbmRwb2ludFJlc29sdmVyID0gdm9pZCAwO1xuY29uc3QgdXRpbF9lbmRwb2ludHNfMSA9IHJlcXVpcmUoXCJAYXdzLXNkay91dGlsLWVuZHBvaW50c1wiKTtcbmNvbnN0IHV0aWxfZW5kcG9pbnRzXzIgPSByZXF1aXJlKFwiQHNtaXRoeS91dGlsLWVuZHBvaW50c1wiKTtcbmNvbnN0IHJ1bGVzZXRfMSA9IHJlcXVpcmUoXCIuL3J1bGVzZXRcIik7XG5jb25zdCBjYWNoZSA9IG5ldyB1dGlsX2VuZHBvaW50c18yLkVuZHBvaW50Q2FjaGUoe1xuICAgIHNpemU6IDUwLFxuICAgIHBhcmFtczogW1wiRW5kcG9pbnRcIiwgXCJSZWdpb25cIiwgXCJVc2VEdWFsU3RhY2tcIiwgXCJVc2VGSVBTXCJdLFxufSk7XG5jb25zdCBkZWZhdWx0RW5kcG9pbnRSZXNvbHZlciA9IChlbmRwb2ludFBhcmFtcywgY29udGV4dCA9IHt9KSA9PiB7XG4gICAgcmV0dXJuIGNhY2hlLmdldChlbmRwb2ludFBhcmFtcywgKCkgPT4gKDAsIHV0aWxfZW5kcG9pbnRzXzIucmVzb2x2ZUVuZHBvaW50KShydWxlc2V0XzEucnVsZVNldCwge1xuICAgICAgICBlbmRwb2ludFBhcmFtczogZW5kcG9pbnRQYXJhbXMsXG4gICAgICAgIGxvZ2dlcjogY29udGV4dC5sb2dnZXIsXG4gICAgfSkpO1xufTtcbmV4cG9ydHMuZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIgPSBkZWZhdWx0RW5kcG9pbnRSZXNvbHZlcjtcbnV0aWxfZW5kcG9pbnRzXzIuY3VzdG9tRW5kcG9pbnRGdW5jdGlvbnMuYXdzID0gdXRpbF9lbmRwb2ludHNfMS5hd3NFbmRwb2ludEZ1bmN0aW9ucztcbiIsICJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuZ2V0UnVudGltZUNvbmZpZyA9IHZvaWQgMDtcbmNvbnN0IGNvcmVfMSA9IHJlcXVpcmUoXCJAYXdzLXNkay9jb3JlXCIpO1xuY29uc3QgcHJvdG9jb2xzXzEgPSByZXF1aXJlKFwiQGF3cy1zZGsvY29yZS9wcm90b2NvbHNcIik7XG5jb25zdCBzbWl0aHlfY2xpZW50XzEgPSByZXF1aXJlKFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCIpO1xuY29uc3QgdXJsX3BhcnNlcl8xID0gcmVxdWlyZShcIkBzbWl0aHkvdXJsLXBhcnNlclwiKTtcbmNvbnN0IHV0aWxfYmFzZTY0XzEgPSByZXF1aXJlKFwiQHNtaXRoeS91dGlsLWJhc2U2NFwiKTtcbmNvbnN0IHV0aWxfdXRmOF8xID0gcmVxdWlyZShcIkBzbWl0aHkvdXRpbC11dGY4XCIpO1xuY29uc3QgaHR0cEF1dGhTY2hlbWVQcm92aWRlcl8xID0gcmVxdWlyZShcIi4vYXV0aC9odHRwQXV0aFNjaGVtZVByb3ZpZGVyXCIpO1xuY29uc3QgZW5kcG9pbnRSZXNvbHZlcl8xID0gcmVxdWlyZShcIi4vZW5kcG9pbnQvZW5kcG9pbnRSZXNvbHZlclwiKTtcbmNvbnN0IGdldFJ1bnRpbWVDb25maWcgPSAoY29uZmlnKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgYXBpVmVyc2lvbjogXCIyMDEwLTA4LTAxXCIsXG4gICAgICAgIGJhc2U2NERlY29kZXI6IGNvbmZpZz8uYmFzZTY0RGVjb2RlciA/PyB1dGlsX2Jhc2U2NF8xLmZyb21CYXNlNjQsXG4gICAgICAgIGJhc2U2NEVuY29kZXI6IGNvbmZpZz8uYmFzZTY0RW5jb2RlciA/PyB1dGlsX2Jhc2U2NF8xLnRvQmFzZTY0LFxuICAgICAgICBkaXNhYmxlSG9zdFByZWZpeDogY29uZmlnPy5kaXNhYmxlSG9zdFByZWZpeCA/PyBmYWxzZSxcbiAgICAgICAgZW5kcG9pbnRQcm92aWRlcjogY29uZmlnPy5lbmRwb2ludFByb3ZpZGVyID8/IGVuZHBvaW50UmVzb2x2ZXJfMS5kZWZhdWx0RW5kcG9pbnRSZXNvbHZlcixcbiAgICAgICAgZXh0ZW5zaW9uczogY29uZmlnPy5leHRlbnNpb25zID8/IFtdLFxuICAgICAgICBodHRwQXV0aFNjaGVtZVByb3ZpZGVyOiBjb25maWc/Lmh0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPz8gaHR0cEF1dGhTY2hlbWVQcm92aWRlcl8xLmRlZmF1bHRDbG91ZFdhdGNoSHR0cEF1dGhTY2hlbWVQcm92aWRlcixcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVzOiBjb25maWc/Lmh0dHBBdXRoU2NoZW1lcyA/PyBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgc2NoZW1lSWQ6IFwiYXdzLmF1dGgjc2lndjRcIixcbiAgICAgICAgICAgICAgICBpZGVudGl0eVByb3ZpZGVyOiAoaXBjKSA9PiBpcGMuZ2V0SWRlbnRpdHlQcm92aWRlcihcImF3cy5hdXRoI3NpZ3Y0XCIpLFxuICAgICAgICAgICAgICAgIHNpZ25lcjogbmV3IGNvcmVfMS5Bd3NTZGtTaWdWNFNpZ25lcigpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgbG9nZ2VyOiBjb25maWc/LmxvZ2dlciA/PyBuZXcgc21pdGh5X2NsaWVudF8xLk5vT3BMb2dnZXIoKSxcbiAgICAgICAgcHJvdG9jb2w6IGNvbmZpZz8ucHJvdG9jb2wgPz9cbiAgICAgICAgICAgIG5ldyBwcm90b2NvbHNfMS5Bd3NKc29uMV8wUHJvdG9jb2woe1xuICAgICAgICAgICAgICAgIGRlZmF1bHROYW1lc3BhY2U6IFwiY29tLmFtYXpvbmF3cy5jbG91ZHdhdGNoXCIsXG4gICAgICAgICAgICAgICAgc2VydmljZVRhcmdldDogXCJHcmFuaXRlU2VydmljZVZlcnNpb24yMDEwMDgwMVwiLFxuICAgICAgICAgICAgICAgIGF3c1F1ZXJ5Q29tcGF0aWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICBzZXJ2aWNlSWQ6IGNvbmZpZz8uc2VydmljZUlkID8/IFwiQ2xvdWRXYXRjaFwiLFxuICAgICAgICB1cmxQYXJzZXI6IGNvbmZpZz8udXJsUGFyc2VyID8/IHVybF9wYXJzZXJfMS5wYXJzZVVybCxcbiAgICAgICAgdXRmOERlY29kZXI6IGNvbmZpZz8udXRmOERlY29kZXIgPz8gdXRpbF91dGY4XzEuZnJvbVV0ZjgsXG4gICAgICAgIHV0ZjhFbmNvZGVyOiBjb25maWc/LnV0ZjhFbmNvZGVyID8/IHV0aWxfdXRmOF8xLnRvVXRmOCxcbiAgICB9O1xufTtcbmV4cG9ydHMuZ2V0UnVudGltZUNvbmZpZyA9IGdldFJ1bnRpbWVDb25maWc7XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmdldFJ1bnRpbWVDb25maWcgPSB2b2lkIDA7XG5jb25zdCB0c2xpYl8xID0gcmVxdWlyZShcInRzbGliXCIpO1xuY29uc3QgcGFja2FnZV9qc29uXzEgPSB0c2xpYl8xLl9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi4vcGFja2FnZS5qc29uXCIpKTtcbmNvbnN0IGNvcmVfMSA9IHJlcXVpcmUoXCJAYXdzLXNkay9jb3JlXCIpO1xuY29uc3QgY3JlZGVudGlhbF9wcm92aWRlcl9ub2RlXzEgPSByZXF1aXJlKFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlXCIpO1xuY29uc3QgdXRpbF91c2VyX2FnZW50X25vZGVfMSA9IHJlcXVpcmUoXCJAYXdzLXNkay91dGlsLXVzZXItYWdlbnQtbm9kZVwiKTtcbmNvbnN0IGNvbmZpZ19yZXNvbHZlcl8xID0gcmVxdWlyZShcIkBzbWl0aHkvY29uZmlnLXJlc29sdmVyXCIpO1xuY29uc3QgaGFzaF9ub2RlXzEgPSByZXF1aXJlKFwiQHNtaXRoeS9oYXNoLW5vZGVcIik7XG5jb25zdCBtaWRkbGV3YXJlX2NvbXByZXNzaW9uXzEgPSByZXF1aXJlKFwiQHNtaXRoeS9taWRkbGV3YXJlLWNvbXByZXNzaW9uXCIpO1xuY29uc3QgbWlkZGxld2FyZV9yZXRyeV8xID0gcmVxdWlyZShcIkBzbWl0aHkvbWlkZGxld2FyZS1yZXRyeVwiKTtcbmNvbnN0IG5vZGVfY29uZmlnX3Byb3ZpZGVyXzEgPSByZXF1aXJlKFwiQHNtaXRoeS9ub2RlLWNvbmZpZy1wcm92aWRlclwiKTtcbmNvbnN0IG5vZGVfaHR0cF9oYW5kbGVyXzEgPSByZXF1aXJlKFwiQHNtaXRoeS9ub2RlLWh0dHAtaGFuZGxlclwiKTtcbmNvbnN0IHNtaXRoeV9jbGllbnRfMSA9IHJlcXVpcmUoXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIik7XG5jb25zdCB1dGlsX2JvZHlfbGVuZ3RoX25vZGVfMSA9IHJlcXVpcmUoXCJAc21pdGh5L3V0aWwtYm9keS1sZW5ndGgtbm9kZVwiKTtcbmNvbnN0IHV0aWxfZGVmYXVsdHNfbW9kZV9ub2RlXzEgPSByZXF1aXJlKFwiQHNtaXRoeS91dGlsLWRlZmF1bHRzLW1vZGUtbm9kZVwiKTtcbmNvbnN0IHV0aWxfcmV0cnlfMSA9IHJlcXVpcmUoXCJAc21pdGh5L3V0aWwtcmV0cnlcIik7XG5jb25zdCBydW50aW1lQ29uZmlnX3NoYXJlZF8xID0gcmVxdWlyZShcIi4vcnVudGltZUNvbmZpZy5zaGFyZWRcIik7XG5jb25zdCBnZXRSdW50aW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgICgwLCBzbWl0aHlfY2xpZW50XzEuZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbikocHJvY2Vzcy52ZXJzaW9uKTtcbiAgICBjb25zdCBkZWZhdWx0c01vZGUgPSAoMCwgdXRpbF9kZWZhdWx0c19tb2RlX25vZGVfMS5yZXNvbHZlRGVmYXVsdHNNb2RlQ29uZmlnKShjb25maWcpO1xuICAgIGNvbnN0IGRlZmF1bHRDb25maWdQcm92aWRlciA9ICgpID0+IGRlZmF1bHRzTW9kZSgpLnRoZW4oc21pdGh5X2NsaWVudF8xLmxvYWRDb25maWdzRm9yRGVmYXVsdE1vZGUpO1xuICAgIGNvbnN0IGNsaWVudFNoYXJlZFZhbHVlcyA9ICgwLCBydW50aW1lQ29uZmlnX3NoYXJlZF8xLmdldFJ1bnRpbWVDb25maWcpKGNvbmZpZyk7XG4gICAgKDAsIGNvcmVfMS5lbWl0V2FybmluZ0lmVW5zdXBwb3J0ZWRWZXJzaW9uKShwcm9jZXNzLnZlcnNpb24pO1xuICAgIGNvbnN0IGxvYWRlckNvbmZpZyA9IHtcbiAgICAgICAgcHJvZmlsZTogY29uZmlnPy5wcm9maWxlLFxuICAgICAgICBsb2dnZXI6IGNsaWVudFNoYXJlZFZhbHVlcy5sb2dnZXIsXG4gICAgfTtcbiAgICByZXR1cm4ge1xuICAgICAgICAuLi5jbGllbnRTaGFyZWRWYWx1ZXMsXG4gICAgICAgIC4uLmNvbmZpZyxcbiAgICAgICAgcnVudGltZTogXCJub2RlXCIsXG4gICAgICAgIGRlZmF1bHRzTW9kZSxcbiAgICAgICAgYXV0aFNjaGVtZVByZWZlcmVuY2U6IGNvbmZpZz8uYXV0aFNjaGVtZVByZWZlcmVuY2UgPz8gKDAsIG5vZGVfY29uZmlnX3Byb3ZpZGVyXzEubG9hZENvbmZpZykoY29yZV8xLk5PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgICAgICBib2R5TGVuZ3RoQ2hlY2tlcjogY29uZmlnPy5ib2R5TGVuZ3RoQ2hlY2tlciA/PyB1dGlsX2JvZHlfbGVuZ3RoX25vZGVfMS5jYWxjdWxhdGVCb2R5TGVuZ3RoLFxuICAgICAgICBjcmVkZW50aWFsRGVmYXVsdFByb3ZpZGVyOiBjb25maWc/LmNyZWRlbnRpYWxEZWZhdWx0UHJvdmlkZXIgPz8gY3JlZGVudGlhbF9wcm92aWRlcl9ub2RlXzEuZGVmYXVsdFByb3ZpZGVyLFxuICAgICAgICBkZWZhdWx0VXNlckFnZW50UHJvdmlkZXI6IGNvbmZpZz8uZGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyID8/XG4gICAgICAgICAgICAoMCwgdXRpbF91c2VyX2FnZW50X25vZGVfMS5jcmVhdGVEZWZhdWx0VXNlckFnZW50UHJvdmlkZXIpKHsgc2VydmljZUlkOiBjbGllbnRTaGFyZWRWYWx1ZXMuc2VydmljZUlkLCBjbGllbnRWZXJzaW9uOiBwYWNrYWdlX2pzb25fMS5kZWZhdWx0LnZlcnNpb24gfSksXG4gICAgICAgIGRpc2FibGVSZXF1ZXN0Q29tcHJlc3Npb246IGNvbmZpZz8uZGlzYWJsZVJlcXVlc3RDb21wcmVzc2lvbiA/PyAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKShtaWRkbGV3YXJlX2NvbXByZXNzaW9uXzEuTk9ERV9ESVNBQkxFX1JFUVVFU1RfQ09NUFJFU1NJT05fQ09ORklHX09QVElPTlMsIGNvbmZpZyksXG4gICAgICAgIG1heEF0dGVtcHRzOiBjb25maWc/Lm1heEF0dGVtcHRzID8/ICgwLCBub2RlX2NvbmZpZ19wcm92aWRlcl8xLmxvYWRDb25maWcpKG1pZGRsZXdhcmVfcmV0cnlfMS5OT0RFX01BWF9BVFRFTVBUX0NPTkZJR19PUFRJT05TLCBjb25maWcpLFxuICAgICAgICByZWdpb246IGNvbmZpZz8ucmVnaW9uID8/XG4gICAgICAgICAgICAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKShjb25maWdfcmVzb2x2ZXJfMS5OT0RFX1JFR0lPTl9DT05GSUdfT1BUSU9OUywgeyAuLi5jb25maWdfcmVzb2x2ZXJfMS5OT0RFX1JFR0lPTl9DT05GSUdfRklMRV9PUFRJT05TLCAuLi5sb2FkZXJDb25maWcgfSksXG4gICAgICAgIHJlcXVlc3RIYW5kbGVyOiBub2RlX2h0dHBfaGFuZGxlcl8xLk5vZGVIdHRwSGFuZGxlci5jcmVhdGUoY29uZmlnPy5yZXF1ZXN0SGFuZGxlciA/PyBkZWZhdWx0Q29uZmlnUHJvdmlkZXIpLFxuICAgICAgICByZXF1ZXN0TWluQ29tcHJlc3Npb25TaXplQnl0ZXM6IGNvbmZpZz8ucmVxdWVzdE1pbkNvbXByZXNzaW9uU2l6ZUJ5dGVzID8/XG4gICAgICAgICAgICAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKShtaWRkbGV3YXJlX2NvbXByZXNzaW9uXzEuTk9ERV9SRVFVRVNUX01JTl9DT01QUkVTU0lPTl9TSVpFX0JZVEVTX0NPTkZJR19PUFRJT05TLCBjb25maWcpLFxuICAgICAgICByZXRyeU1vZGU6IGNvbmZpZz8ucmV0cnlNb2RlID8/XG4gICAgICAgICAgICAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKSh7XG4gICAgICAgICAgICAgICAgLi4ubWlkZGxld2FyZV9yZXRyeV8xLk5PREVfUkVUUllfTU9ERV9DT05GSUdfT1BUSU9OUyxcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiBhc3luYyAoKSA9PiAoYXdhaXQgZGVmYXVsdENvbmZpZ1Byb3ZpZGVyKCkpLnJldHJ5TW9kZSB8fCB1dGlsX3JldHJ5XzEuREVGQVVMVF9SRVRSWV9NT0RFLFxuICAgICAgICAgICAgfSwgY29uZmlnKSxcbiAgICAgICAgc2hhMjU2OiBjb25maWc/LnNoYTI1NiA/PyBoYXNoX25vZGVfMS5IYXNoLmJpbmQobnVsbCwgXCJzaGEyNTZcIiksXG4gICAgICAgIHN0cmVhbUNvbGxlY3RvcjogY29uZmlnPy5zdHJlYW1Db2xsZWN0b3IgPz8gbm9kZV9odHRwX2hhbmRsZXJfMS5zdHJlYW1Db2xsZWN0b3IsXG4gICAgICAgIHVzZUR1YWxzdGFja0VuZHBvaW50OiBjb25maWc/LnVzZUR1YWxzdGFja0VuZHBvaW50ID8/ICgwLCBub2RlX2NvbmZpZ19wcm92aWRlcl8xLmxvYWRDb25maWcpKGNvbmZpZ19yZXNvbHZlcl8xLk5PREVfVVNFX0RVQUxTVEFDS19FTkRQT0lOVF9DT05GSUdfT1BUSU9OUywgbG9hZGVyQ29uZmlnKSxcbiAgICAgICAgdXNlRmlwc0VuZHBvaW50OiBjb25maWc/LnVzZUZpcHNFbmRwb2ludCA/PyAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKShjb25maWdfcmVzb2x2ZXJfMS5OT0RFX1VTRV9GSVBTX0VORFBPSU5UX0NPTkZJR19PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgICAgICB1c2VyQWdlbnRBcHBJZDogY29uZmlnPy51c2VyQWdlbnRBcHBJZCA/PyAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKSh1dGlsX3VzZXJfYWdlbnRfbm9kZV8xLk5PREVfQVBQX0lEX0NPTkZJR19PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgIH07XG59O1xuZXhwb3J0cy5nZXRSdW50aW1lQ29uZmlnID0gZ2V0UnVudGltZUNvbmZpZztcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBtaWRkbGV3YXJlSG9zdEhlYWRlciA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL21pZGRsZXdhcmUtaG9zdC1oZWFkZXInKTtcbnZhciBtaWRkbGV3YXJlTG9nZ2VyID0gcmVxdWlyZSgnQGF3cy1zZGsvbWlkZGxld2FyZS1sb2dnZXInKTtcbnZhciBtaWRkbGV3YXJlUmVjdXJzaW9uRGV0ZWN0aW9uID0gcmVxdWlyZSgnQGF3cy1zZGsvbWlkZGxld2FyZS1yZWN1cnNpb24tZGV0ZWN0aW9uJyk7XG52YXIgbWlkZGxld2FyZVVzZXJBZ2VudCA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL21pZGRsZXdhcmUtdXNlci1hZ2VudCcpO1xudmFyIGNvbmZpZ1Jlc29sdmVyID0gcmVxdWlyZSgnQHNtaXRoeS9jb25maWctcmVzb2x2ZXInKTtcbnZhciBjb3JlID0gcmVxdWlyZSgnQHNtaXRoeS9jb3JlJyk7XG52YXIgc2NoZW1hID0gcmVxdWlyZSgnQHNtaXRoeS9jb3JlL3NjaGVtYScpO1xudmFyIG1pZGRsZXdhcmVDb21wcmVzc2lvbiA9IHJlcXVpcmUoJ0BzbWl0aHkvbWlkZGxld2FyZS1jb21wcmVzc2lvbicpO1xudmFyIG1pZGRsZXdhcmVDb250ZW50TGVuZ3RoID0gcmVxdWlyZSgnQHNtaXRoeS9taWRkbGV3YXJlLWNvbnRlbnQtbGVuZ3RoJyk7XG52YXIgbWlkZGxld2FyZUVuZHBvaW50ID0gcmVxdWlyZSgnQHNtaXRoeS9taWRkbGV3YXJlLWVuZHBvaW50Jyk7XG52YXIgbWlkZGxld2FyZVJldHJ5ID0gcmVxdWlyZSgnQHNtaXRoeS9taWRkbGV3YXJlLXJldHJ5Jyk7XG52YXIgc21pdGh5Q2xpZW50ID0gcmVxdWlyZSgnQHNtaXRoeS9zbWl0aHktY2xpZW50Jyk7XG52YXIgaHR0cEF1dGhTY2hlbWVQcm92aWRlciA9IHJlcXVpcmUoJy4vYXV0aC9odHRwQXV0aFNjaGVtZVByb3ZpZGVyJyk7XG52YXIgcnVudGltZUNvbmZpZyA9IHJlcXVpcmUoJy4vcnVudGltZUNvbmZpZycpO1xudmFyIHJlZ2lvbkNvbmZpZ1Jlc29sdmVyID0gcmVxdWlyZSgnQGF3cy1zZGsvcmVnaW9uLWNvbmZpZy1yZXNvbHZlcicpO1xudmFyIHByb3RvY29sSHR0cCA9IHJlcXVpcmUoJ0BzbWl0aHkvcHJvdG9jb2wtaHR0cCcpO1xudmFyIHV0aWxXYWl0ZXIgPSByZXF1aXJlKCdAc21pdGh5L3V0aWwtd2FpdGVyJyk7XG5cbmNvbnN0IHJlc29sdmVDbGllbnRFbmRwb2ludFBhcmFtZXRlcnMgPSAob3B0aW9ucykgPT4ge1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKG9wdGlvbnMsIHtcbiAgICAgICAgdXNlRHVhbHN0YWNrRW5kcG9pbnQ6IG9wdGlvbnMudXNlRHVhbHN0YWNrRW5kcG9pbnQgPz8gZmFsc2UsXG4gICAgICAgIHVzZUZpcHNFbmRwb2ludDogb3B0aW9ucy51c2VGaXBzRW5kcG9pbnQgPz8gZmFsc2UsXG4gICAgICAgIGRlZmF1bHRTaWduaW5nTmFtZTogXCJtb25pdG9yaW5nXCIsXG4gICAgfSk7XG59O1xuY29uc3QgY29tbW9uUGFyYW1zID0ge1xuICAgIFVzZUZJUFM6IHsgdHlwZTogXCJidWlsdEluUGFyYW1zXCIsIG5hbWU6IFwidXNlRmlwc0VuZHBvaW50XCIgfSxcbiAgICBFbmRwb2ludDogeyB0eXBlOiBcImJ1aWx0SW5QYXJhbXNcIiwgbmFtZTogXCJlbmRwb2ludFwiIH0sXG4gICAgUmVnaW9uOiB7IHR5cGU6IFwiYnVpbHRJblBhcmFtc1wiLCBuYW1lOiBcInJlZ2lvblwiIH0sXG4gICAgVXNlRHVhbFN0YWNrOiB7IHR5cGU6IFwiYnVpbHRJblBhcmFtc1wiLCBuYW1lOiBcInVzZUR1YWxzdGFja0VuZHBvaW50XCIgfSxcbn07XG5cbmNvbnN0IGdldEh0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiA9IChydW50aW1lQ29uZmlnKSA9PiB7XG4gICAgY29uc3QgX2h0dHBBdXRoU2NoZW1lcyA9IHJ1bnRpbWVDb25maWcuaHR0cEF1dGhTY2hlbWVzO1xuICAgIGxldCBfaHR0cEF1dGhTY2hlbWVQcm92aWRlciA9IHJ1bnRpbWVDb25maWcuaHR0cEF1dGhTY2hlbWVQcm92aWRlcjtcbiAgICBsZXQgX2NyZWRlbnRpYWxzID0gcnVudGltZUNvbmZpZy5jcmVkZW50aWFscztcbiAgICByZXR1cm4ge1xuICAgICAgICBzZXRIdHRwQXV0aFNjaGVtZShodHRwQXV0aFNjaGVtZSkge1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSBfaHR0cEF1dGhTY2hlbWVzLmZpbmRJbmRleCgoc2NoZW1lKSA9PiBzY2hlbWUuc2NoZW1lSWQgPT09IGh0dHBBdXRoU2NoZW1lLnNjaGVtZUlkKTtcbiAgICAgICAgICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICBfaHR0cEF1dGhTY2hlbWVzLnB1c2goaHR0cEF1dGhTY2hlbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgX2h0dHBBdXRoU2NoZW1lcy5zcGxpY2UoaW5kZXgsIDEsIGh0dHBBdXRoU2NoZW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVzKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9odHRwQXV0aFNjaGVtZXM7XG4gICAgICAgIH0sXG4gICAgICAgIHNldEh0dHBBdXRoU2NoZW1lUHJvdmlkZXIoaHR0cEF1dGhTY2hlbWVQcm92aWRlcikge1xuICAgICAgICAgICAgX2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSBodHRwQXV0aFNjaGVtZVByb3ZpZGVyO1xuICAgICAgICB9LFxuICAgICAgICBodHRwQXV0aFNjaGVtZVByb3ZpZGVyKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9odHRwQXV0aFNjaGVtZVByb3ZpZGVyO1xuICAgICAgICB9LFxuICAgICAgICBzZXRDcmVkZW50aWFscyhjcmVkZW50aWFscykge1xuICAgICAgICAgICAgX2NyZWRlbnRpYWxzID0gY3JlZGVudGlhbHM7XG4gICAgICAgIH0sXG4gICAgICAgIGNyZWRlbnRpYWxzKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9jcmVkZW50aWFscztcbiAgICAgICAgfSxcbiAgICB9O1xufTtcbmNvbnN0IHJlc29sdmVIdHRwQXV0aFJ1bnRpbWVDb25maWcgPSAoY29uZmlnKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVzOiBjb25maWcuaHR0cEF1dGhTY2hlbWVzKCksXG4gICAgICAgIGh0dHBBdXRoU2NoZW1lUHJvdmlkZXI6IGNvbmZpZy5odHRwQXV0aFNjaGVtZVByb3ZpZGVyKCksXG4gICAgICAgIGNyZWRlbnRpYWxzOiBjb25maWcuY3JlZGVudGlhbHMoKSxcbiAgICB9O1xufTtcblxuY29uc3QgcmVzb2x2ZVJ1bnRpbWVFeHRlbnNpb25zID0gKHJ1bnRpbWVDb25maWcsIGV4dGVuc2lvbnMpID0+IHtcbiAgICBjb25zdCBleHRlbnNpb25Db25maWd1cmF0aW9uID0gT2JqZWN0LmFzc2lnbihyZWdpb25Db25maWdSZXNvbHZlci5nZXRBd3NSZWdpb25FeHRlbnNpb25Db25maWd1cmF0aW9uKHJ1bnRpbWVDb25maWcpLCBzbWl0aHlDbGllbnQuZ2V0RGVmYXVsdEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24ocnVudGltZUNvbmZpZyksIHByb3RvY29sSHR0cC5nZXRIdHRwSGFuZGxlckV4dGVuc2lvbkNvbmZpZ3VyYXRpb24ocnVudGltZUNvbmZpZyksIGdldEh0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbihydW50aW1lQ29uZmlnKSk7XG4gICAgZXh0ZW5zaW9ucy5mb3JFYWNoKChleHRlbnNpb24pID0+IGV4dGVuc2lvbi5jb25maWd1cmUoZXh0ZW5zaW9uQ29uZmlndXJhdGlvbikpO1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHJ1bnRpbWVDb25maWcsIHJlZ2lvbkNvbmZpZ1Jlc29sdmVyLnJlc29sdmVBd3NSZWdpb25FeHRlbnNpb25Db25maWd1cmF0aW9uKGV4dGVuc2lvbkNvbmZpZ3VyYXRpb24pLCBzbWl0aHlDbGllbnQucmVzb2x2ZURlZmF1bHRSdW50aW1lQ29uZmlnKGV4dGVuc2lvbkNvbmZpZ3VyYXRpb24pLCBwcm90b2NvbEh0dHAucmVzb2x2ZUh0dHBIYW5kbGVyUnVudGltZUNvbmZpZyhleHRlbnNpb25Db25maWd1cmF0aW9uKSwgcmVzb2x2ZUh0dHBBdXRoUnVudGltZUNvbmZpZyhleHRlbnNpb25Db25maWd1cmF0aW9uKSk7XG59O1xuXG5jbGFzcyBDbG91ZFdhdGNoQ2xpZW50IGV4dGVuZHMgc21pdGh5Q2xpZW50LkNsaWVudCB7XG4gICAgY29uZmlnO1xuICAgIGNvbnN0cnVjdG9yKC4uLltjb25maWd1cmF0aW9uXSkge1xuICAgICAgICBjb25zdCBfY29uZmlnXzAgPSBydW50aW1lQ29uZmlnLmdldFJ1bnRpbWVDb25maWcoY29uZmlndXJhdGlvbiB8fCB7fSk7XG4gICAgICAgIHN1cGVyKF9jb25maWdfMCk7XG4gICAgICAgIHRoaXMuaW5pdENvbmZpZyA9IF9jb25maWdfMDtcbiAgICAgICAgY29uc3QgX2NvbmZpZ18xID0gcmVzb2x2ZUNsaWVudEVuZHBvaW50UGFyYW1ldGVycyhfY29uZmlnXzApO1xuICAgICAgICBjb25zdCBfY29uZmlnXzIgPSBtaWRkbGV3YXJlVXNlckFnZW50LnJlc29sdmVVc2VyQWdlbnRDb25maWcoX2NvbmZpZ18xKTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ18zID0gbWlkZGxld2FyZVJldHJ5LnJlc29sdmVSZXRyeUNvbmZpZyhfY29uZmlnXzIpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzQgPSBjb25maWdSZXNvbHZlci5yZXNvbHZlUmVnaW9uQ29uZmlnKF9jb25maWdfMyk7XG4gICAgICAgIGNvbnN0IF9jb25maWdfNSA9IG1pZGRsZXdhcmVIb3N0SGVhZGVyLnJlc29sdmVIb3N0SGVhZGVyQ29uZmlnKF9jb25maWdfNCk7XG4gICAgICAgIGNvbnN0IF9jb25maWdfNiA9IG1pZGRsZXdhcmVFbmRwb2ludC5yZXNvbHZlRW5kcG9pbnRDb25maWcoX2NvbmZpZ181KTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ183ID0gaHR0cEF1dGhTY2hlbWVQcm92aWRlci5yZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWcoX2NvbmZpZ182KTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ184ID0gbWlkZGxld2FyZUNvbXByZXNzaW9uLnJlc29sdmVDb21wcmVzc2lvbkNvbmZpZyhfY29uZmlnXzcpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzkgPSByZXNvbHZlUnVudGltZUV4dGVuc2lvbnMoX2NvbmZpZ184LCBjb25maWd1cmF0aW9uPy5leHRlbnNpb25zIHx8IFtdKTtcbiAgICAgICAgdGhpcy5jb25maWcgPSBfY29uZmlnXzk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShzY2hlbWEuZ2V0U2NoZW1hU2VyZGVQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKG1pZGRsZXdhcmVVc2VyQWdlbnQuZ2V0VXNlckFnZW50UGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShtaWRkbGV3YXJlUmV0cnkuZ2V0UmV0cnlQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKG1pZGRsZXdhcmVDb250ZW50TGVuZ3RoLmdldENvbnRlbnRMZW5ndGhQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKG1pZGRsZXdhcmVIb3N0SGVhZGVyLmdldEhvc3RIZWFkZXJQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKG1pZGRsZXdhcmVMb2dnZXIuZ2V0TG9nZ2VyUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShtaWRkbGV3YXJlUmVjdXJzaW9uRGV0ZWN0aW9uLmdldFJlY3Vyc2lvbkRldGVjdGlvblBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoY29yZS5nZXRIdHRwQXV0aFNjaGVtZUVuZHBvaW50UnVsZVNldFBsdWdpbih0aGlzLmNvbmZpZywge1xuICAgICAgICAgICAgaHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXI6IGh0dHBBdXRoU2NoZW1lUHJvdmlkZXIuZGVmYXVsdENsb3VkV2F0Y2hIdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlcixcbiAgICAgICAgICAgIGlkZW50aXR5UHJvdmlkZXJDb25maWdQcm92aWRlcjogYXN5bmMgKGNvbmZpZykgPT4gbmV3IGNvcmUuRGVmYXVsdElkZW50aXR5UHJvdmlkZXJDb25maWcoe1xuICAgICAgICAgICAgICAgIFwiYXdzLmF1dGgjc2lndjRcIjogY29uZmlnLmNyZWRlbnRpYWxzLFxuICAgICAgICAgICAgfSksXG4gICAgICAgIH0pKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGNvcmUuZ2V0SHR0cFNpZ25pbmdQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICB9XG4gICAgZGVzdHJveSgpIHtcbiAgICAgICAgc3VwZXIuZGVzdHJveSgpO1xuICAgIH1cbn1cblxubGV0IENsb3VkV2F0Y2hTZXJ2aWNlRXhjZXB0aW9uJDEgPSBjbGFzcyBDbG91ZFdhdGNoU2VydmljZUV4Y2VwdGlvbiBleHRlbmRzIHNtaXRoeUNsaWVudC5TZXJ2aWNlRXhjZXB0aW9uIHtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgQ2xvdWRXYXRjaFNlcnZpY2VFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59O1xuXG5sZXQgQ29uY3VycmVudE1vZGlmaWNhdGlvbkV4Y2VwdGlvbiQxID0gY2xhc3MgQ29uY3VycmVudE1vZGlmaWNhdGlvbkV4Y2VwdGlvbiBleHRlbmRzIENsb3VkV2F0Y2hTZXJ2aWNlRXhjZXB0aW9uJDEge1xuICAgIG5hbWUgPSBcIkNvbmN1cnJlbnRNb2RpZmljYXRpb25FeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIE1lc3NhZ2U7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkNvbmN1cnJlbnRNb2RpZmljYXRpb25FeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgQ29uY3VycmVudE1vZGlmaWNhdGlvbkV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLk1lc3NhZ2UgPSBvcHRzLk1lc3NhZ2U7XG4gICAgfVxufTtcbmxldCBDb25mbGljdEV4Y2VwdGlvbiQxID0gY2xhc3MgQ29uZmxpY3RFeGNlcHRpb24gZXh0ZW5kcyBDbG91ZFdhdGNoU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJDb25mbGljdEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgTWVzc2FnZTtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiQ29uZmxpY3RFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgQ29uZmxpY3RFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5NZXNzYWdlID0gb3B0cy5NZXNzYWdlO1xuICAgIH1cbn07XG5sZXQgRGFzaGJvYXJkSW52YWxpZElucHV0RXJyb3IkMSA9IGNsYXNzIERhc2hib2FyZEludmFsaWRJbnB1dEVycm9yIGV4dGVuZHMgQ2xvdWRXYXRjaFNlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiRGFzaGJvYXJkSW52YWxpZElucHV0RXJyb3JcIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGRhc2hib2FyZFZhbGlkYXRpb25NZXNzYWdlcztcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiRGFzaGJvYXJkSW52YWxpZElucHV0RXJyb3JcIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgRGFzaGJvYXJkSW52YWxpZElucHV0RXJyb3IucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5kYXNoYm9hcmRWYWxpZGF0aW9uTWVzc2FnZXMgPSBvcHRzLmRhc2hib2FyZFZhbGlkYXRpb25NZXNzYWdlcztcbiAgICB9XG59O1xubGV0IERhc2hib2FyZE5vdEZvdW5kRXJyb3IkMSA9IGNsYXNzIERhc2hib2FyZE5vdEZvdW5kRXJyb3IgZXh0ZW5kcyBDbG91ZFdhdGNoU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJEYXNoYm9hcmROb3RGb3VuZEVycm9yXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiRGFzaGJvYXJkTm90Rm91bmRFcnJvclwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBEYXNoYm9hcmROb3RGb3VuZEVycm9yLnByb3RvdHlwZSk7XG4gICAgfVxufTtcbmxldCBSZXNvdXJjZU5vdEZvdW5kJDEgPSBjbGFzcyBSZXNvdXJjZU5vdEZvdW5kIGV4dGVuZHMgQ2xvdWRXYXRjaFNlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiUmVzb3VyY2VOb3RGb3VuZFwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIlJlc291cmNlTm90Rm91bmRcIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgUmVzb3VyY2VOb3RGb3VuZC5wcm90b3R5cGUpO1xuICAgIH1cbn07XG5sZXQgSW50ZXJuYWxTZXJ2aWNlRmF1bHQkMSA9IGNsYXNzIEludGVybmFsU2VydmljZUZhdWx0IGV4dGVuZHMgQ2xvdWRXYXRjaFNlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiSW50ZXJuYWxTZXJ2aWNlRmF1bHRcIjtcbiAgICAkZmF1bHQgPSBcInNlcnZlclwiO1xuICAgIE1lc3NhZ2U7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkludGVybmFsU2VydmljZUZhdWx0XCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwic2VydmVyXCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEludGVybmFsU2VydmljZUZhdWx0LnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuTWVzc2FnZSA9IG9wdHMuTWVzc2FnZTtcbiAgICB9XG59O1xubGV0IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkV4Y2VwdGlvbiQxID0gY2xhc3MgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXhjZXB0aW9uIGV4dGVuZHMgQ2xvdWRXYXRjaFNlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn07XG5sZXQgSW52YWxpZFBhcmFtZXRlclZhbHVlRXhjZXB0aW9uJDEgPSBjbGFzcyBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFeGNlcHRpb24gZXh0ZW5kcyBDbG91ZFdhdGNoU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJJbnZhbGlkUGFyYW1ldGVyVmFsdWVFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJJbnZhbGlkUGFyYW1ldGVyVmFsdWVFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgSW52YWxpZFBhcmFtZXRlclZhbHVlRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgfVxufTtcbmxldCBNaXNzaW5nUmVxdWlyZWRQYXJhbWV0ZXJFeGNlcHRpb24kMSA9IGNsYXNzIE1pc3NpbmdSZXF1aXJlZFBhcmFtZXRlckV4Y2VwdGlvbiBleHRlbmRzIENsb3VkV2F0Y2hTZXJ2aWNlRXhjZXB0aW9uJDEge1xuICAgIG5hbWUgPSBcIk1pc3NpbmdSZXF1aXJlZFBhcmFtZXRlckV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIk1pc3NpbmdSZXF1aXJlZFBhcmFtZXRlckV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBNaXNzaW5nUmVxdWlyZWRQYXJhbWV0ZXJFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59O1xubGV0IFJlc291cmNlTm90Rm91bmRFeGNlcHRpb24kMSA9IGNsYXNzIFJlc291cmNlTm90Rm91bmRFeGNlcHRpb24gZXh0ZW5kcyBDbG91ZFdhdGNoU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBSZXNvdXJjZVR5cGU7XG4gICAgUmVzb3VyY2VJZDtcbiAgICBNZXNzYWdlO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFJlc291cmNlTm90Rm91bmRFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5SZXNvdXJjZVR5cGUgPSBvcHRzLlJlc291cmNlVHlwZTtcbiAgICAgICAgdGhpcy5SZXNvdXJjZUlkID0gb3B0cy5SZXNvdXJjZUlkO1xuICAgICAgICB0aGlzLk1lc3NhZ2UgPSBvcHRzLk1lc3NhZ2U7XG4gICAgfVxufTtcbmxldCBJbnZhbGlkTmV4dFRva2VuJDEgPSBjbGFzcyBJbnZhbGlkTmV4dFRva2VuIGV4dGVuZHMgQ2xvdWRXYXRjaFNlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiSW52YWxpZE5leHRUb2tlblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkludmFsaWROZXh0VG9rZW5cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgSW52YWxpZE5leHRUb2tlbi5wcm90b3R5cGUpO1xuICAgIH1cbn07XG5sZXQgTGltaXRFeGNlZWRlZEV4Y2VwdGlvbiQxID0gY2xhc3MgTGltaXRFeGNlZWRlZEV4Y2VwdGlvbiBleHRlbmRzIENsb3VkV2F0Y2hTZXJ2aWNlRXhjZXB0aW9uJDEge1xuICAgIG5hbWUgPSBcIkxpbWl0RXhjZWVkZWRFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIE1lc3NhZ2U7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkxpbWl0RXhjZWVkZWRFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgTGltaXRFeGNlZWRlZEV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLk1lc3NhZ2UgPSBvcHRzLk1lc3NhZ2U7XG4gICAgfVxufTtcbmxldCBMaW1pdEV4Y2VlZGVkRmF1bHQkMSA9IGNsYXNzIExpbWl0RXhjZWVkZWRGYXVsdCBleHRlbmRzIENsb3VkV2F0Y2hTZXJ2aWNlRXhjZXB0aW9uJDEge1xuICAgIG5hbWUgPSBcIkxpbWl0RXhjZWVkZWRGYXVsdFwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkxpbWl0RXhjZWVkZWRGYXVsdFwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBMaW1pdEV4Y2VlZGVkRmF1bHQucHJvdG90eXBlKTtcbiAgICB9XG59O1xubGV0IEludmFsaWRGb3JtYXRGYXVsdCQxID0gY2xhc3MgSW52YWxpZEZvcm1hdEZhdWx0IGV4dGVuZHMgQ2xvdWRXYXRjaFNlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiSW52YWxpZEZvcm1hdEZhdWx0XCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiSW52YWxpZEZvcm1hdEZhdWx0XCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEludmFsaWRGb3JtYXRGYXVsdC5wcm90b3R5cGUpO1xuICAgIH1cbn07XG5cbmNvbnN0IF9BID0gXCJBdmVyYWdlXCI7XG5jb25zdCBfQUEgPSBcIkFsYXJtQWN0aW9uc1wiO1xuY29uc3QgX0FBViA9IFwiQXBwcm94aW1hdGVBZ2dyZWdhdGVWYWx1ZVwiO1xuY29uc3QgX0FBbCA9IFwiQWxhcm1Bcm5cIjtcbmNvbnN0IF9BQyA9IFwiQWxhcm1Db250cmlidXRvclwiO1xuY29uc3QgX0FDQSA9IFwiQWxhcm1Db250cmlidXRvckF0dHJpYnV0ZXNcIjtcbmNvbnN0IF9BQ0kgPSBcIkFsYXJtQ29udHJpYnV0b3JJZFwiO1xuY29uc3QgX0FDVVQgPSBcIkFsYXJtQ29uZmlndXJhdGlvblVwZGF0ZWRUaW1lc3RhbXBcIjtcbmNvbnN0IF9BQ2wgPSBcIkFsYXJtQ29udHJpYnV0b3JzXCI7XG5jb25zdCBfQUQgPSBcIkFub21hbHlEZXRlY3RvclwiO1xuY29uc3QgX0FEQyA9IFwiQW5vbWFseURldGVjdG9yQ29uZmlndXJhdGlvblwiO1xuY29uc3QgX0FERVRSID0gXCJBbm9tYWx5RGV0ZWN0b3JFeGNsdWRlZFRpbWVSYW5nZXNcIjtcbmNvbnN0IF9BRFQgPSBcIkFub21hbHlEZXRlY3RvclR5cGVzXCI7XG5jb25zdCBfQURsID0gXCJBbGFybURlc2NyaXB0aW9uXCI7XG5jb25zdCBfQURuID0gXCJBbm9tYWx5RGV0ZWN0b3JzXCI7XG5jb25zdCBfQUUgPSBcIkFjdGlvbnNFbmFibGVkXCI7XG5jb25zdCBfQUhJID0gXCJBbGFybUhpc3RvcnlJdGVtXCI7XG5jb25zdCBfQUhJbCA9IFwiQWxhcm1IaXN0b3J5SXRlbXNcIjtcbmNvbnN0IF9BSSA9IFwiQWNjb3VudElkXCI7XG5jb25zdCBfQU4gPSBcIkFsYXJtTmFtZVwiO1xuY29uc3QgX0FOUCA9IFwiQWxhcm1OYW1lUHJlZml4XCI7XG5jb25zdCBfQU5sID0gXCJBbGFybU5hbWVzXCI7XG5jb25zdCBfQU9UTCA9IFwiQXBwbHlPblRyYW5zZm9ybWVkTG9nc1wiO1xuY29uc3QgX0FQID0gXCJBY3Rpb25QcmVmaXhcIjtcbmNvbnN0IF9BUiA9IFwiQWxhcm1SdWxlXCI7XG5jb25zdCBfQVMgPSBcIkFjdGlvbnNTdXBwcmVzc29yXCI7XG5jb25zdCBfQVNCID0gXCJBY3Rpb25zU3VwcHJlc3NlZEJ5XCI7XG5jb25zdCBfQVNFUCA9IFwiQWN0aW9uc1N1cHByZXNzb3JFeHRlbnNpb25QZXJpb2RcIjtcbmNvbnN0IF9BU1IgPSBcIkFjdGlvbnNTdXBwcmVzc2VkUmVhc29uXCI7XG5jb25zdCBfQVNXUCA9IFwiQWN0aW9uc1N1cHByZXNzb3JXYWl0UGVyaW9kXCI7XG5jb25zdCBfQVNkID0gXCJBZGRpdGlvbmFsU3RhdGlzdGljc1wiO1xuY29uc3QgX0FTZyA9IFwiQWdncmVnYXRpb25TdGF0aXN0aWNcIjtcbmNvbnN0IF9BVCA9IFwiQWxhcm1UeXBlXCI7XG5jb25zdCBfQVRsID0gXCJBbGFybVR5cGVzXCI7XG5jb25zdCBfQVVDID0gXCJBcHByb3hpbWF0ZVVuaXF1ZUNvdW50XCI7XG5jb25zdCBfQVYgPSBcIkFnZ3JlZ2F0ZVZhbHVlXCI7XG5jb25zdCBfQVZwID0gXCJBcHByb3hpbWF0ZVZhbHVlXCI7XG5jb25zdCBfQXIgPSBcIkFyblwiO1xuY29uc3QgX0F0ID0gXCJBdHRyaWJ1dGVzXCI7XG5jb25zdCBfQkYgPSBcIkJhdGNoRmFpbHVyZXNcIjtcbmNvbnN0IF9DID0gXCJDb25maWd1cmF0aW9uXCI7XG5jb25zdCBfQ0EgPSBcIkNvbnRyaWJ1dG9yQXR0cmlidXRlc1wiO1xuY29uc3QgX0NBbyA9IFwiQ29tcG9zaXRlQWxhcm1cIjtcbmNvbnN0IF9DQW9tID0gXCJDb21wb3NpdGVBbGFybXNcIjtcbmNvbnN0IF9DRCA9IFwiQ3JlYXRpb25EYXRlXCI7XG5jb25zdCBfQ0UgPSBcIkNvbmZsaWN0RXhjZXB0aW9uXCI7XG5jb25zdCBfQ0kgPSBcIkNvbnRyaWJ1dG9ySWRcIjtcbmNvbnN0IF9DTUUgPSBcIkNvbmN1cnJlbnRNb2RpZmljYXRpb25FeGNlcHRpb25cIjtcbmNvbnN0IF9DTyA9IFwiQ29tcGFyaXNvbk9wZXJhdG9yXCI7XG5jb25zdCBfQ09BTiA9IFwiQ2hpbGRyZW5PZkFsYXJtTmFtZVwiO1xuY29uc3QgX0NvID0gXCJDb250cmlidXRvcnNcIjtcbmNvbnN0IF9Db2QgPSBcIkNvZGVcIjtcbmNvbnN0IF9Db3UgPSBcIkNvdW50c1wiO1xuY29uc3QgX0QgPSBcIkRpbWVuc2lvbnNcIjtcbmNvbnN0IF9EQSA9IFwiRGFzaGJvYXJkQXJuXCI7XG5jb25zdCBfREFBID0gXCJEaXNhYmxlQWxhcm1BY3Rpb25zXCI7XG5jb25zdCBfREFBSSA9IFwiRGlzYWJsZUFsYXJtQWN0aW9uc0lucHV0XCI7XG5jb25zdCBfREFDID0gXCJEZXNjcmliZUFsYXJtQ29udHJpYnV0b3JzXCI7XG5jb25zdCBfREFDSSA9IFwiRGVzY3JpYmVBbGFybUNvbnRyaWJ1dG9yc0lucHV0XCI7XG5jb25zdCBfREFDTyA9IFwiRGVzY3JpYmVBbGFybUNvbnRyaWJ1dG9yc091dHB1dFwiO1xuY29uc3QgX0RBRCA9IFwiRGVsZXRlQW5vbWFseURldGVjdG9yXCI7XG5jb25zdCBfREFESSA9IFwiRGVsZXRlQW5vbWFseURldGVjdG9ySW5wdXRcIjtcbmNvbnN0IF9EQURJZSA9IFwiRGVzY3JpYmVBbm9tYWx5RGV0ZWN0b3JzSW5wdXRcIjtcbmNvbnN0IF9EQURPID0gXCJEZWxldGVBbm9tYWx5RGV0ZWN0b3JPdXRwdXRcIjtcbmNvbnN0IF9EQURPZSA9IFwiRGVzY3JpYmVBbm9tYWx5RGV0ZWN0b3JzT3V0cHV0XCI7XG5jb25zdCBfREFEZSA9IFwiRGVzY3JpYmVBbm9tYWx5RGV0ZWN0b3JzXCI7XG5jb25zdCBfREFGTSA9IFwiRGVzY3JpYmVBbGFybXNGb3JNZXRyaWNcIjtcbmNvbnN0IF9EQUZNSSA9IFwiRGVzY3JpYmVBbGFybXNGb3JNZXRyaWNJbnB1dFwiO1xuY29uc3QgX0RBRk1PID0gXCJEZXNjcmliZUFsYXJtc0Zvck1ldHJpY091dHB1dFwiO1xuY29uc3QgX0RBSCA9IFwiRGVzY3JpYmVBbGFybUhpc3RvcnlcIjtcbmNvbnN0IF9EQUhJID0gXCJEZXNjcmliZUFsYXJtSGlzdG9yeUlucHV0XCI7XG5jb25zdCBfREFITyA9IFwiRGVzY3JpYmVBbGFybUhpc3RvcnlPdXRwdXRcIjtcbmNvbnN0IF9EQUkgPSBcIkRlbGV0ZUFsYXJtc0lucHV0XCI7XG5jb25zdCBfREFJZSA9IFwiRGVzY3JpYmVBbGFybXNJbnB1dFwiO1xuY29uc3QgX0RBTyA9IFwiRGVzY3JpYmVBbGFybXNPdXRwdXRcIjtcbmNvbnN0IF9EQWUgPSBcIkRlbGV0ZUFsYXJtc1wiO1xuY29uc3QgX0RBZXMgPSBcIkRlc2NyaWJlQWxhcm1zXCI7XG5jb25zdCBfREIgPSBcIkRhc2hib2FyZEJvZHlcIjtcbmNvbnN0IF9ERCA9IFwiRGVsZXRlRGFzaGJvYXJkc1wiO1xuY29uc3QgX0RESSA9IFwiRGVsZXRlRGFzaGJvYXJkc0lucHV0XCI7XG5jb25zdCBfRERPID0gXCJEZWxldGVEYXNoYm9hcmRzT3V0cHV0XCI7XG5jb25zdCBfREUgPSBcIkRhc2hib2FyZEVudHJ5XCI7XG5jb25zdCBfREVhID0gXCJEYXNoYm9hcmRFbnRyaWVzXCI7XG5jb25zdCBfREYgPSBcIkRpbWVuc2lvbkZpbHRlclwiO1xuY29uc3QgX0RGaSA9IFwiRGltZW5zaW9uRmlsdGVyc1wiO1xuY29uc3QgX0RJSUUgPSBcIkRhc2hib2FyZEludmFsaWRJbnB1dEVycm9yXCI7XG5jb25zdCBfRElSID0gXCJEZWxldGVJbnNpZ2h0UnVsZXNcIjtcbmNvbnN0IF9ESVJJID0gXCJEZWxldGVJbnNpZ2h0UnVsZXNJbnB1dFwiO1xuY29uc3QgX0RJUkllID0gXCJEZXNjcmliZUluc2lnaHRSdWxlc0lucHV0XCI7XG5jb25zdCBfRElSSWkgPSBcIkRpc2FibGVJbnNpZ2h0UnVsZXNJbnB1dFwiO1xuY29uc3QgX0RJUk8gPSBcIkRlbGV0ZUluc2lnaHRSdWxlc091dHB1dFwiO1xuY29uc3QgX0RJUk9lID0gXCJEZXNjcmliZUluc2lnaHRSdWxlc091dHB1dFwiO1xuY29uc3QgX0RJUk9pID0gXCJEaXNhYmxlSW5zaWdodFJ1bGVzT3V0cHV0XCI7XG5jb25zdCBfRElSZSA9IFwiRGVzY3JpYmVJbnNpZ2h0UnVsZXNcIjtcbmNvbnN0IF9ESVJpID0gXCJEaXNhYmxlSW5zaWdodFJ1bGVzXCI7XG5jb25zdCBfRE1TID0gXCJEZWxldGVNZXRyaWNTdHJlYW1cIjtcbmNvbnN0IF9ETVNJID0gXCJEZWxldGVNZXRyaWNTdHJlYW1JbnB1dFwiO1xuY29uc3QgX0RNU08gPSBcIkRlbGV0ZU1ldHJpY1N0cmVhbU91dHB1dFwiO1xuY29uc3QgX0ROID0gXCJEYXNoYm9hcmROYW1lXCI7XG5jb25zdCBfRE5GRSA9IFwiRGFzaGJvYXJkTm90Rm91bmRFcnJvclwiO1xuY29uc3QgX0ROUCA9IFwiRGFzaGJvYXJkTmFtZVByZWZpeFwiO1xuY29uc3QgX0ROYSA9IFwiRGFzaGJvYXJkTmFtZXNcIjtcbmNvbnN0IF9EUCA9IFwiRGF0YVBhdGhcIjtcbmNvbnN0IF9EVEEgPSBcIkRhdGFwb2ludHNUb0FsYXJtXCI7XG5jb25zdCBfRFZNID0gXCJEYXNoYm9hcmRWYWxpZGF0aW9uTWVzc2FnZVwiO1xuY29uc3QgX0RWTWEgPSBcIkRhc2hib2FyZFZhbGlkYXRpb25NZXNzYWdlc1wiO1xuY29uc3QgX0RhID0gXCJEYXRhcG9pbnRcIjtcbmNvbnN0IF9EYXQgPSBcIkRhdGFwb2ludHNcIjtcbmNvbnN0IF9EZSA9IFwiRGVmaW5pdGlvblwiO1xuY29uc3QgX0RpID0gXCJEaW1lbnNpb25cIjtcbmNvbnN0IF9FID0gXCJFbnRpdHlcIjtcbmNvbnN0IF9FQUEgPSBcIkVuYWJsZUFsYXJtQWN0aW9uc1wiO1xuY29uc3QgX0VBQUkgPSBcIkVuYWJsZUFsYXJtQWN0aW9uc0lucHV0XCI7XG5jb25zdCBfRUQgPSBcIkVuZERhdGVcIjtcbmNvbnN0IF9FRiA9IFwiRXhjbHVkZUZpbHRlcnNcIjtcbmNvbnN0IF9FSVIgPSBcIkVuYWJsZUluc2lnaHRSdWxlc1wiO1xuY29uc3QgX0VJUkkgPSBcIkVuYWJsZUluc2lnaHRSdWxlc0lucHV0XCI7XG5jb25zdCBfRUlSTyA9IFwiRW5hYmxlSW5zaWdodFJ1bGVzT3V0cHV0XCI7XG5jb25zdCBfRUxTQ1AgPSBcIkV2YWx1YXRlTG93U2FtcGxlQ291bnRQZXJjZW50aWxlXCI7XG5jb25zdCBfRU1EID0gXCJFbnRpdHlNZXRyaWNEYXRhXCI7XG5jb25zdCBfRU1ETCA9IFwiRW50aXR5TWV0cmljRGF0YUxpc3RcIjtcbmNvbnN0IF9FUCA9IFwiRXZhbHVhdGlvblBlcmlvZHNcIjtcbmNvbnN0IF9FUyA9IFwiRXh0ZW5kZWRTdGF0aXN0aWNzXCI7XG5jb25zdCBfRVN2ID0gXCJFdmFsdWF0aW9uU3RhdGVcIjtcbmNvbnN0IF9FU3ggPSBcIkV4dGVuZGVkU3RhdGlzdGljXCI7XG5jb25zdCBfRVQgPSBcIkVuZFRpbWVcIjtcbmNvbnN0IF9FVFIgPSBcIkV4Y2x1ZGVkVGltZVJhbmdlc1wiO1xuY29uc3QgX0VUeCA9IFwiRXhjZXB0aW9uVHlwZVwiO1xuY29uc3QgX0VuID0gXCJFbnRyaWVzXCI7XG5jb25zdCBfRXggPSBcIkV4cHJlc3Npb25cIjtcbmNvbnN0IF9GID0gXCJGYWlsdXJlc1wiO1xuY29uc3QgX0ZBID0gXCJGaXJlaG9zZUFyblwiO1xuY29uc3QgX0ZDID0gXCJGYWlsdXJlQ29kZVwiO1xuY29uc3QgX0ZEID0gXCJGYWlsdXJlRGVzY3JpcHRpb25cIjtcbmNvbnN0IF9GUiA9IFwiRmFpbHVyZVJlc291cmNlXCI7XG5jb25zdCBfR0QgPSBcIkdldERhc2hib2FyZFwiO1xuY29uc3QgX0dESSA9IFwiR2V0RGFzaGJvYXJkSW5wdXRcIjtcbmNvbnN0IF9HRE8gPSBcIkdldERhc2hib2FyZE91dHB1dFwiO1xuY29uc3QgX0dJUlIgPSBcIkdldEluc2lnaHRSdWxlUmVwb3J0XCI7XG5jb25zdCBfR0lSUkkgPSBcIkdldEluc2lnaHRSdWxlUmVwb3J0SW5wdXRcIjtcbmNvbnN0IF9HSVJSTyA9IFwiR2V0SW5zaWdodFJ1bGVSZXBvcnRPdXRwdXRcIjtcbmNvbnN0IF9HTUQgPSBcIkdldE1ldHJpY0RhdGFcIjtcbmNvbnN0IF9HTURJID0gXCJHZXRNZXRyaWNEYXRhSW5wdXRcIjtcbmNvbnN0IF9HTURPID0gXCJHZXRNZXRyaWNEYXRhT3V0cHV0XCI7XG5jb25zdCBfR01TID0gXCJHZXRNZXRyaWNTdGF0aXN0aWNzXCI7XG5jb25zdCBfR01TSSA9IFwiR2V0TWV0cmljU3RhdGlzdGljc0lucHV0XCI7XG5jb25zdCBfR01TSWUgPSBcIkdldE1ldHJpY1N0cmVhbUlucHV0XCI7XG5jb25zdCBfR01TTyA9IFwiR2V0TWV0cmljU3RhdGlzdGljc091dHB1dFwiO1xuY29uc3QgX0dNU09lID0gXCJHZXRNZXRyaWNTdHJlYW1PdXRwdXRcIjtcbmNvbnN0IF9HTVNlID0gXCJHZXRNZXRyaWNTdHJlYW1cIjtcbmNvbnN0IF9HTVdJID0gXCJHZXRNZXRyaWNXaWRnZXRJbWFnZVwiO1xuY29uc3QgX0dNV0lJID0gXCJHZXRNZXRyaWNXaWRnZXRJbWFnZUlucHV0XCI7XG5jb25zdCBfR01XSU8gPSBcIkdldE1ldHJpY1dpZGdldEltYWdlT3V0cHV0XCI7XG5jb25zdCBfSEQgPSBcIkhpc3RvcnlEYXRhXCI7XG5jb25zdCBfSElUID0gXCJIaXN0b3J5SXRlbVR5cGVcIjtcbmNvbnN0IF9IUyA9IFwiSGlzdG9yeVN1bW1hcnlcIjtcbmNvbnN0IF9JID0gXCJJZFwiO1xuY29uc3QgX0lEQSA9IFwiSW5zdWZmaWNpZW50RGF0YUFjdGlvbnNcIjtcbmNvbnN0IF9JRiA9IFwiSW5jbHVkZUZpbHRlcnNcIjtcbmNvbnN0IF9JRkYgPSBcIkludmFsaWRGb3JtYXRGYXVsdFwiO1xuY29uc3QgX0lMQSA9IFwiSW5jbHVkZUxpbmtlZEFjY291bnRzXCI7XG5jb25zdCBfSUxBTSA9IFwiSW5jbHVkZUxpbmtlZEFjY291bnRzTWV0cmljc1wiO1xuY29uc3QgX0lNID0gXCJJbmNsdWRlTWV0cmljc1wiO1xuY29uc3QgX0lOVCA9IFwiSW52YWxpZE5leHRUb2tlblwiO1xuY29uc3QgX0lQQ0UgPSBcIkludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkV4Y2VwdGlvblwiO1xuY29uc3QgX0lQVkUgPSBcIkludmFsaWRQYXJhbWV0ZXJWYWx1ZUV4Y2VwdGlvblwiO1xuY29uc3QgX0lSID0gXCJJbnNpZ2h0UnVsZXNcIjtcbmNvbnN0IF9JUkMgPSBcIkluc2lnaHRSdWxlQ29udHJpYnV0b3JcIjtcbmNvbnN0IF9JUkNEID0gXCJJbnNpZ2h0UnVsZUNvbnRyaWJ1dG9yRGF0YXBvaW50XCI7XG5jb25zdCBfSVJDRG4gPSBcIkluc2lnaHRSdWxlQ29udHJpYnV0b3JEYXRhcG9pbnRzXCI7XG5jb25zdCBfSVJDbiA9IFwiSW5zaWdodFJ1bGVDb250cmlidXRvcnNcIjtcbmNvbnN0IF9JUk1EID0gXCJJbnNpZ2h0UnVsZU1ldHJpY0RhdGFwb2ludFwiO1xuY29uc3QgX0lSTURuID0gXCJJbnNpZ2h0UnVsZU1ldHJpY0RhdGFwb2ludHNcIjtcbmNvbnN0IF9JUm4gPSBcIkluc2lnaHRSdWxlXCI7XG5jb25zdCBfSVNGID0gXCJJbnRlcm5hbFNlcnZpY2VGYXVsdFwiO1xuY29uc3QgX0sgPSBcIktleXNcIjtcbmNvbnN0IF9LQSA9IFwiS2V5QXR0cmlidXRlc1wiO1xuY29uc3QgX0tMID0gXCJLZXlMYWJlbHNcIjtcbmNvbnN0IF9LZSA9IFwiS2V5XCI7XG5jb25zdCBfTCA9IFwiTGFiZWxcIjtcbmNvbnN0IF9MRCA9IFwiTGlzdERhc2hib2FyZHNcIjtcbmNvbnN0IF9MREkgPSBcIkxpc3REYXNoYm9hcmRzSW5wdXRcIjtcbmNvbnN0IF9MRE8gPSBcIkxpc3REYXNoYm9hcmRzT3V0cHV0XCI7XG5jb25zdCBfTEVFID0gXCJMaW1pdEV4Y2VlZGVkRXhjZXB0aW9uXCI7XG5jb25zdCBfTEVGID0gXCJMaW1pdEV4Y2VlZGVkRmF1bHRcIjtcbmNvbnN0IF9MTSA9IFwiTGFzdE1vZGlmaWVkXCI7XG5jb25zdCBfTE1JID0gXCJMaXN0TWV0cmljc0lucHV0XCI7XG5jb25zdCBfTE1JUiA9IFwiTGlzdE1hbmFnZWRJbnNpZ2h0UnVsZXNcIjtcbmNvbnN0IF9MTUlSSSA9IFwiTGlzdE1hbmFnZWRJbnNpZ2h0UnVsZXNJbnB1dFwiO1xuY29uc3QgX0xNSVJPID0gXCJMaXN0TWFuYWdlZEluc2lnaHRSdWxlc091dHB1dFwiO1xuY29uc3QgX0xNTyA9IFwiTGlzdE1ldHJpY3NPdXRwdXRcIjtcbmNvbnN0IF9MTVMgPSBcIkxpc3RNZXRyaWNTdHJlYW1zXCI7XG5jb25zdCBfTE1TSSA9IFwiTGlzdE1ldHJpY1N0cmVhbXNJbnB1dFwiO1xuY29uc3QgX0xNU08gPSBcIkxpc3RNZXRyaWNTdHJlYW1zT3V0cHV0XCI7XG5jb25zdCBfTE1pID0gXCJMaXN0TWV0cmljc1wiO1xuY29uc3QgX0xPID0gXCJMYWJlbE9wdGlvbnNcIjtcbmNvbnN0IF9MVEZSID0gXCJMaXN0VGFnc0ZvclJlc291cmNlXCI7XG5jb25zdCBfTFRGUkkgPSBcIkxpc3RUYWdzRm9yUmVzb3VyY2VJbnB1dFwiO1xuY29uc3QgX0xURlJPID0gXCJMaXN0VGFnc0ZvclJlc291cmNlT3V0cHV0XCI7XG5jb25zdCBfTFVEID0gXCJMYXN0VXBkYXRlRGF0ZVwiO1xuY29uc3QgX00gPSBcIk1lc3NhZ2VcIjtcbmNvbnN0IF9NQSA9IFwiTWV0cmljQWxhcm1zXCI7XG5jb25zdCBfTUFlID0gXCJNZXRyaWNBbGFybVwiO1xuY29uc3QgX01DID0gXCJNZXRyaWNDaGFyYWN0ZXJpc3RpY3NcIjtcbmNvbnN0IF9NQ0MgPSBcIk1heENvbnRyaWJ1dG9yQ291bnRcIjtcbmNvbnN0IF9NQ1YgPSBcIk1heENvbnRyaWJ1dG9yVmFsdWVcIjtcbmNvbnN0IF9NRCA9IFwiTWV0cmljRGF0YVwiO1xuY29uc3QgX01EUSA9IFwiTWV0cmljRGF0YVF1ZXJpZXNcIjtcbmNvbnN0IF9NRFFlID0gXCJNZXRyaWNEYXRhUXVlcnlcIjtcbmNvbnN0IF9NRFIgPSBcIk1ldHJpY0RhdGFSZXN1bHRzXCI7XG5jb25zdCBfTURSTSA9IFwiTWV0cmljRGF0YVJlc3VsdE1lc3NhZ2VzXCI7XG5jb25zdCBfTURSZSA9IFwiTWV0cmljRGF0YVJlc3VsdFwiO1xuY29uc3QgX01EYSA9IFwiTWF4RGF0YXBvaW50c1wiO1xuY29uc3QgX01EZSA9IFwiTWV0cmljRGF0YXBvaW50c1wiO1xuY29uc3QgX01EZXMgPSBcIk1lc3NhZ2VEYXRhXCI7XG5jb25zdCBfTURldCA9IFwiTWV0cmljRGF0dW1cIjtcbmNvbnN0IF9NTUFEID0gXCJNZXRyaWNNYXRoQW5vbWFseURldGVjdG9yXCI7XG5jb25zdCBfTU4gPSBcIk1ldHJpY05hbWVcIjtcbmNvbnN0IF9NTmUgPSBcIk1ldHJpY05hbWVzXCI7XG5jb25zdCBfTVIgPSBcIk1heFJlY29yZHNcIjtcbmNvbnN0IF9NUkQgPSBcIk1hbmFnZWRSdWxlRGVzY3JpcHRpb25cIjtcbmNvbnN0IF9NUkRhID0gXCJNYW5hZ2VkUnVsZURlc2NyaXB0aW9uc1wiO1xuY29uc3QgX01SUEUgPSBcIk1pc3NpbmdSZXF1aXJlZFBhcmFtZXRlckV4Y2VwdGlvblwiO1xuY29uc3QgX01SUyA9IFwiTWFuYWdlZFJ1bGVTdGF0ZVwiO1xuY29uc3QgX01SYSA9IFwiTWF4UmVzdWx0c1wiO1xuY29uc3QgX01SYW4gPSBcIk1hbmFnZWRSdWxlXCI7XG5jb25zdCBfTVJhbmEgPSBcIk1hbmFnZWRSdWxlc1wiO1xuY29uc3QgX01TID0gXCJNZXRyaWNTdGF0XCI7XG5jb25zdCBfTVNFID0gXCJNZXRyaWNTdHJlYW1FbnRyeVwiO1xuY29uc3QgX01TRWUgPSBcIk1ldHJpY1N0cmVhbUVudHJpZXNcIjtcbmNvbnN0IF9NU0YgPSBcIk1ldHJpY1N0cmVhbUZpbHRlclwiO1xuY29uc3QgX01TRmUgPSBcIk1ldHJpY1N0cmVhbUZpbHRlcnNcIjtcbmNvbnN0IF9NU1NDID0gXCJNZXRyaWNTdHJlYW1TdGF0aXN0aWNzQ29uZmlndXJhdGlvblwiO1xuY29uc3QgX01TU0NlID0gXCJNZXRyaWNTdHJlYW1TdGF0aXN0aWNzQ29uZmlndXJhdGlvbnNcIjtcbmNvbnN0IF9NU1NJTSA9IFwiTWV0cmljU3RyZWFtU3RhdGlzdGljc0luY2x1ZGVNZXRyaWNzXCI7XG5jb25zdCBfTVNTTSA9IFwiTWV0cmljU3RyZWFtU3RhdGlzdGljc01ldHJpY1wiO1xuY29uc3QgX01UID0gXCJNZXRyaWNUaW1lem9uZVwiO1xuY29uc3QgX01XID0gXCJNZXRyaWNXaWRnZXRcIjtcbmNvbnN0IF9NV0kgPSBcIk1ldHJpY1dpZGdldEltYWdlXCI7XG5jb25zdCBfTWEgPSBcIk1heGltdW1cIjtcbmNvbnN0IF9NZSA9IFwiTWV0cmljc1wiO1xuY29uc3QgX01lcyA9IFwiTWVzc2FnZXNcIjtcbmNvbnN0IF9NZXQgPSBcIk1ldHJpY1wiO1xuY29uc3QgX01pID0gXCJNaW5pbXVtXCI7XG5jb25zdCBfTiA9IFwiTmFtZXNwYWNlXCI7XG5jb25zdCBfTlQgPSBcIk5leHRUb2tlblwiO1xuY29uc3QgX05hID0gXCJOYW1lXCI7XG5jb25zdCBfTmFtID0gXCJOYW1lc1wiO1xuY29uc3QgX09BID0gXCJPd25pbmdBY2NvdW50XCI7XG5jb25zdCBfT0F3ID0gXCJPd25pbmdBY2NvdW50c1wiO1xuY29uc3QgX09CID0gXCJPcmRlckJ5XCI7XG5jb25zdCBfT0YgPSBcIk91dHB1dEZvcm1hdFwiO1xuY29uc3QgX09LQSA9IFwiT0tBY3Rpb25zXCI7XG5jb25zdCBfUCA9IFwiUGVyaW9kXCI7XG5jb25zdCBfUEFEID0gXCJQdXRBbm9tYWx5RGV0ZWN0b3JcIjtcbmNvbnN0IF9QQURJID0gXCJQdXRBbm9tYWx5RGV0ZWN0b3JJbnB1dFwiO1xuY29uc3QgX1BBRE8gPSBcIlB1dEFub21hbHlEZXRlY3Rvck91dHB1dFwiO1xuY29uc3QgX1BDQSA9IFwiUHV0Q29tcG9zaXRlQWxhcm1cIjtcbmNvbnN0IF9QQ0FJID0gXCJQdXRDb21wb3NpdGVBbGFybUlucHV0XCI7XG5jb25zdCBfUEQgPSBcIlB1dERhc2hib2FyZFwiO1xuY29uc3QgX1BESSA9IFwiUHV0RGFzaGJvYXJkSW5wdXRcIjtcbmNvbnN0IF9QRE8gPSBcIlB1dERhc2hib2FyZE91dHB1dFwiO1xuY29uc3QgX1BGID0gXCJQYXJ0aWFsRmFpbHVyZVwiO1xuY29uc3QgX1BJUiA9IFwiUHV0SW5zaWdodFJ1bGVcIjtcbmNvbnN0IF9QSVJJID0gXCJQdXRJbnNpZ2h0UnVsZUlucHV0XCI7XG5jb25zdCBfUElSTyA9IFwiUHV0SW5zaWdodFJ1bGVPdXRwdXRcIjtcbmNvbnN0IF9QTUEgPSBcIlB1dE1ldHJpY0FsYXJtXCI7XG5jb25zdCBfUE1BSSA9IFwiUHV0TWV0cmljQWxhcm1JbnB1dFwiO1xuY29uc3QgX1BNRCA9IFwiUHV0TWV0cmljRGF0YVwiO1xuY29uc3QgX1BNREkgPSBcIlB1dE1ldHJpY0RhdGFJbnB1dFwiO1xuY29uc3QgX1BNSVIgPSBcIlB1dE1hbmFnZWRJbnNpZ2h0UnVsZXNcIjtcbmNvbnN0IF9QTUlSSSA9IFwiUHV0TWFuYWdlZEluc2lnaHRSdWxlc0lucHV0XCI7XG5jb25zdCBfUE1JUk8gPSBcIlB1dE1hbmFnZWRJbnNpZ2h0UnVsZXNPdXRwdXRcIjtcbmNvbnN0IF9QTVMgPSBcIlB1dE1ldHJpY1N0cmVhbVwiO1xuY29uc3QgX1BNU0kgPSBcIlB1dE1ldHJpY1N0cmVhbUlucHV0XCI7XG5jb25zdCBfUE1TTyA9IFwiUHV0TWV0cmljU3RyZWFtT3V0cHV0XCI7XG5jb25zdCBfUE9BTiA9IFwiUGFyZW50c09mQWxhcm1OYW1lXCI7XG5jb25zdCBfUFMgPSBcIlBlcmlvZGljU3Bpa2VzXCI7XG5jb25zdCBfUiA9IFwiUmFuZ2VcIjtcbmNvbnN0IF9SQSA9IFwiUm9sZUFyblwiO1xuY29uc3QgX1JBUk4gPSBcIlJlc291cmNlQVJOXCI7XG5jb25zdCBfUkFlID0gXCJSZWNlbnRseUFjdGl2ZVwiO1xuY29uc3QgX1JEID0gXCJSZXR1cm5EYXRhXCI7XG5jb25zdCBfUkR1ID0gXCJSdWxlRGVmaW5pdGlvblwiO1xuY29uc3QgX1JJID0gXCJSZXNvdXJjZUlkXCI7XG5jb25zdCBfUk4gPSBcIlJ1bGVOYW1lc1wiO1xuY29uc3QgX1JORiA9IFwiUmVzb3VyY2VOb3RGb3VuZFwiO1xuY29uc3QgX1JORkUgPSBcIlJlc291cmNlTm90Rm91bmRFeGNlcHRpb25cIjtcbmNvbnN0IF9STnUgPSBcIlJ1bGVOYW1lXCI7XG5jb25zdCBfUlMgPSBcIlJ1bGVTdGF0ZVwiO1xuY29uc3QgX1JUID0gXCJSZXNvdXJjZVR5cGVcIjtcbmNvbnN0IF9TID0gXCJTdGF0XCI7XG5jb25zdCBfU0FTID0gXCJTZXRBbGFybVN0YXRlXCI7XG5jb25zdCBfU0FTSSA9IFwiU2V0QWxhcm1TdGF0ZUlucHV0XCI7XG5jb25zdCBfU0IgPSBcIlNjYW5CeVwiO1xuY29uc3QgX1NDID0gXCJTYW1wbGVDb3VudFwiO1xuY29uc3QgX1NDdCA9IFwiU3RhdGlzdGljc0NvbmZpZ3VyYXRpb25zXCI7XG5jb25zdCBfU0N0YSA9IFwiU3RhdHVzQ29kZVwiO1xuY29uc3QgX1NEID0gXCJTdGFydERhdGVcIjtcbmNvbnN0IF9TRVYgPSBcIlN0cmljdEVudGl0eVZhbGlkYXRpb25cIjtcbmNvbnN0IF9TTUFEID0gXCJTaW5nbGVNZXRyaWNBbm9tYWx5RGV0ZWN0b3JcIjtcbmNvbnN0IF9TTVMgPSBcIlN0YXJ0TWV0cmljU3RyZWFtc1wiO1xuY29uc3QgX1NNU0kgPSBcIlN0YXJ0TWV0cmljU3RyZWFtc0lucHV0XCI7XG5jb25zdCBfU01TSXQgPSBcIlN0b3BNZXRyaWNTdHJlYW1zSW5wdXRcIjtcbmNvbnN0IF9TTVNPID0gXCJTdGFydE1ldHJpY1N0cmVhbXNPdXRwdXRcIjtcbmNvbnN0IF9TTVNPdCA9IFwiU3RvcE1ldHJpY1N0cmVhbXNPdXRwdXRcIjtcbmNvbnN0IF9TTVN0ID0gXCJTdG9wTWV0cmljU3RyZWFtc1wiO1xuY29uc3QgX1NSID0gXCJTdGF0ZVJlYXNvblwiO1xuY29uc3QgX1NSRCA9IFwiU3RhdGVSZWFzb25EYXRhXCI7XG5jb25zdCBfU1J0ID0gXCJTdG9yYWdlUmVzb2x1dGlvblwiO1xuY29uc3QgX1NTID0gXCJTdGF0aXN0aWNTZXRcIjtcbmNvbnN0IF9TVCA9IFwiU3RhcnRUaW1lXCI7XG5jb25zdCBfU1RUID0gXCJTdGF0ZVRyYW5zaXRpb25lZFRpbWVzdGFtcFwiO1xuY29uc3QgX1NVVCA9IFwiU3RhdGVVcGRhdGVkVGltZXN0YW1wXCI7XG5jb25zdCBfU1YgPSBcIlN0YXRlVmFsdWVcIjtcbmNvbnN0IF9TVnQgPSBcIlN0YXRpc3RpY1ZhbHVlc1wiO1xuY29uc3QgX1NjID0gXCJTY2hlbWFcIjtcbmNvbnN0IF9TaSA9IFwiU2l6ZVwiO1xuY29uc3QgX1N0ID0gXCJTdGF0aXN0aWNcIjtcbmNvbnN0IF9TdGEgPSBcIlN0YXRpc3RpY3NcIjtcbmNvbnN0IF9TdGF0ID0gXCJTdGF0ZVwiO1xuY29uc3QgX1N1ID0gXCJTdW1cIjtcbmNvbnN0IF9UID0gXCJUaW1lc3RhbXBcIjtcbmNvbnN0IF9USyA9IFwiVGFnS2V5c1wiO1xuY29uc3QgX1RMID0gXCJUYWdMaXN0XCI7XG5jb25zdCBfVE1EID0gXCJUcmVhdE1pc3NpbmdEYXRhXCI7XG5jb25zdCBfVE1JID0gXCJUaHJlc2hvbGRNZXRyaWNJZFwiO1xuY29uc3QgX1ROID0gXCJUZW1wbGF0ZU5hbWVcIjtcbmNvbnN0IF9UUiA9IFwiVGFnUmVzb3VyY2VcIjtcbmNvbnN0IF9UUkkgPSBcIlRhZ1Jlc291cmNlSW5wdXRcIjtcbmNvbnN0IF9UUk8gPSBcIlRhZ1Jlc291cmNlT3V0cHV0XCI7XG5jb25zdCBfVGEgPSBcIlRhZ3NcIjtcbmNvbnN0IF9UYWcgPSBcIlRhZ1wiO1xuY29uc3QgX1RoID0gXCJUaHJlc2hvbGRcIjtcbmNvbnN0IF9UaSA9IFwiVGltZXpvbmVcIjtcbmNvbnN0IF9UaW0gPSBcIlRpbWVzdGFtcHNcIjtcbmNvbnN0IF9VID0gXCJVbml0XCI7XG5jb25zdCBfVUMgPSBcIlVuaXF1ZUNvbnRyaWJ1dG9yc1wiO1xuY29uc3QgX1VSID0gXCJVbnRhZ1Jlc291cmNlXCI7XG5jb25zdCBfVVJJID0gXCJVbnRhZ1Jlc291cmNlSW5wdXRcIjtcbmNvbnN0IF9VUk8gPSBcIlVudGFnUmVzb3VyY2VPdXRwdXRcIjtcbmNvbnN0IF9WID0gXCJWYWx1ZVwiO1xuY29uc3QgX1ZhID0gXCJWYWx1ZXNcIjtcbmNvbnN0IF9hUUUgPSBcImF3c1F1ZXJ5RXJyb3JcIjtcbmNvbnN0IF9jID0gXCJjbGllbnRcIjtcbmNvbnN0IF9kVk0gPSBcImRhc2hib2FyZFZhbGlkYXRpb25NZXNzYWdlc1wiO1xuY29uc3QgX2UgPSBcImVycm9yXCI7XG5jb25zdCBfaEUgPSBcImh0dHBFcnJvclwiO1xuY29uc3QgX20gPSBcIm1lc3NhZ2VcIjtcbmNvbnN0IF9zID0gXCJzZXJ2ZXJcIjtcbmNvbnN0IF9zbSA9IFwic21pdGh5LnRzLnNkay5zeW50aGV0aWMuY29tLmFtYXpvbmF3cy5jbG91ZHdhdGNoXCI7XG5jb25zdCBuMCA9IFwiY29tLmFtYXpvbmF3cy5jbG91ZHdhdGNoXCI7XG52YXIgQWxhcm1Db250cmlidXRvciA9IFszLCBuMCwgX0FDLCAwLCBbX0NJLCBfQ0EsIF9TUiwgX1NUVF0sIFswLCAxMjggfCAwLCAwLCA0XV07XG52YXIgQWxhcm1IaXN0b3J5SXRlbSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9BSEksXG4gICAgMCxcbiAgICBbX0FOLCBfQUNJLCBfQVQsIF9ULCBfSElULCBfSFMsIF9IRCwgX0FDQV0sXG4gICAgWzAsIDAsIDAsIDQsIDAsIDAsIDAsIDEyOCB8IDBdLFxuXTtcbnZhciBBbm9tYWx5RGV0ZWN0b3IgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfQUQsXG4gICAgMCxcbiAgICBbX04sIF9NTiwgX0QsIF9TLCBfQywgX1NWLCBfTUMsIF9TTUFELCBfTU1BRF0sXG4gICAgW1xuICAgICAgICAwLFxuICAgICAgICAwLFxuICAgICAgICAoKSA9PiBEaW1lbnNpb25zLFxuICAgICAgICAwLFxuICAgICAgICAoKSA9PiBBbm9tYWx5RGV0ZWN0b3JDb25maWd1cmF0aW9uLFxuICAgICAgICAwLFxuICAgICAgICAoKSA9PiBNZXRyaWNDaGFyYWN0ZXJpc3RpY3MsXG4gICAgICAgICgpID0+IFNpbmdsZU1ldHJpY0Fub21hbHlEZXRlY3RvcixcbiAgICAgICAgKCkgPT4gTWV0cmljTWF0aEFub21hbHlEZXRlY3RvcixcbiAgICBdLFxuXTtcbnZhciBBbm9tYWx5RGV0ZWN0b3JDb25maWd1cmF0aW9uID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0FEQyxcbiAgICAwLFxuICAgIFtfRVRSLCBfTVRdLFxuICAgIFsoKSA9PiBBbm9tYWx5RGV0ZWN0b3JFeGNsdWRlZFRpbWVSYW5nZXMsIDBdLFxuXTtcbnZhciBDb21wb3NpdGVBbGFybSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9DQW8sXG4gICAgMCxcbiAgICBbX0FFLCBfQUEsIF9BQWwsIF9BQ1VULCBfQURsLCBfQU4sIF9BUiwgX0lEQSwgX09LQSwgX1NSLCBfU1JELCBfU1VULCBfU1YsIF9TVFQsIF9BU0IsIF9BU1IsIF9BUywgX0FTV1AsIF9BU0VQXSxcbiAgICBbMiwgNjQgfCAwLCAwLCA0LCAwLCAwLCAwLCA2NCB8IDAsIDY0IHwgMCwgMCwgMCwgNCwgMCwgNCwgMCwgMCwgMCwgMSwgMV0sXG5dO1xudmFyIENvbmN1cnJlbnRNb2RpZmljYXRpb25FeGNlcHRpb24gPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX0NNRSxcbiAgICB7IFtfZV06IF9jLCBbX2hFXTogNDI5LCBbX2FRRV06IFtgQ29uY3VycmVudE1vZGlmaWNhdGlvbkV4Y2VwdGlvbmAsIDQyOV0gfSxcbiAgICBbX01dLFxuICAgIFswXSxcbl07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihDb25jdXJyZW50TW9kaWZpY2F0aW9uRXhjZXB0aW9uLCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXhjZXB0aW9uJDEpO1xudmFyIENvbmZsaWN0RXhjZXB0aW9uID0gWy0zLCBuMCwgX0NFLCB7IFtfZV06IF9jLCBbX2hFXTogNDA5IH0sIFtfTV0sIFswXV07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihDb25mbGljdEV4Y2VwdGlvbiwgQ29uZmxpY3RFeGNlcHRpb24kMSk7XG52YXIgRGFzaGJvYXJkRW50cnkgPSBbMywgbjAsIF9ERSwgMCwgW19ETiwgX0RBLCBfTE0sIF9TaV0sIFswLCAwLCA0LCAxXV07XG52YXIgRGFzaGJvYXJkSW52YWxpZElucHV0RXJyb3IgPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX0RJSUUsXG4gICAgeyBbX2VdOiBfYywgW19oRV06IDQwMCwgW19hUUVdOiBbYEludmFsaWRQYXJhbWV0ZXJJbnB1dGAsIDQwMF0gfSxcbiAgICBbX20sIF9kVk1dLFxuICAgIFswLCAoKSA9PiBEYXNoYm9hcmRWYWxpZGF0aW9uTWVzc2FnZXNdLFxuXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKERhc2hib2FyZEludmFsaWRJbnB1dEVycm9yLCBEYXNoYm9hcmRJbnZhbGlkSW5wdXRFcnJvciQxKTtcbnZhciBEYXNoYm9hcmROb3RGb3VuZEVycm9yID0gW1xuICAgIC0zLFxuICAgIG4wLFxuICAgIF9ETkZFLFxuICAgIHsgW19lXTogX2MsIFtfaEVdOiA0MDQsIFtfYVFFXTogW2BSZXNvdXJjZU5vdEZvdW5kYCwgNDA0XSB9LFxuICAgIFtfbV0sXG4gICAgWzBdLFxuXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKERhc2hib2FyZE5vdEZvdW5kRXJyb3IsIERhc2hib2FyZE5vdEZvdW5kRXJyb3IkMSk7XG52YXIgRGFzaGJvYXJkVmFsaWRhdGlvbk1lc3NhZ2UgPSBbMywgbjAsIF9EVk0sIDAsIFtfRFAsIF9NXSwgWzAsIDBdXTtcbnZhciBEYXRhcG9pbnQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfRGEsXG4gICAgMCxcbiAgICBbX1QsIF9TQywgX0EsIF9TdSwgX01pLCBfTWEsIF9VLCBfRVNdLFxuICAgIFs0LCAxLCAxLCAxLCAxLCAxLCAwLCAxMjggfCAxXSxcbl07XG52YXIgRGVsZXRlQWxhcm1zSW5wdXQgPSBbMywgbjAsIF9EQUksIDAsIFtfQU5sXSwgWzY0IHwgMF1dO1xudmFyIERlbGV0ZUFub21hbHlEZXRlY3RvcklucHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0RBREksXG4gICAgMCxcbiAgICBbX04sIF9NTiwgX0QsIF9TLCBfU01BRCwgX01NQURdLFxuICAgIFswLCAwLCAoKSA9PiBEaW1lbnNpb25zLCAwLCAoKSA9PiBTaW5nbGVNZXRyaWNBbm9tYWx5RGV0ZWN0b3IsICgpID0+IE1ldHJpY01hdGhBbm9tYWx5RGV0ZWN0b3JdLFxuXTtcbnZhciBEZWxldGVBbm9tYWx5RGV0ZWN0b3JPdXRwdXQgPSBbMywgbjAsIF9EQURPLCAwLCBbXSwgW11dO1xudmFyIERlbGV0ZURhc2hib2FyZHNJbnB1dCA9IFszLCBuMCwgX0RESSwgMCwgW19ETmFdLCBbNjQgfCAwXV07XG52YXIgRGVsZXRlRGFzaGJvYXJkc091dHB1dCA9IFszLCBuMCwgX0RETywgMCwgW10sIFtdXTtcbnZhciBEZWxldGVJbnNpZ2h0UnVsZXNJbnB1dCA9IFszLCBuMCwgX0RJUkksIDAsIFtfUk5dLCBbNjQgfCAwXV07XG52YXIgRGVsZXRlSW5zaWdodFJ1bGVzT3V0cHV0ID0gWzMsIG4wLCBfRElSTywgMCwgW19GXSwgWygpID0+IEJhdGNoRmFpbHVyZXNdXTtcbnZhciBEZWxldGVNZXRyaWNTdHJlYW1JbnB1dCA9IFszLCBuMCwgX0RNU0ksIDAsIFtfTmFdLCBbMF1dO1xudmFyIERlbGV0ZU1ldHJpY1N0cmVhbU91dHB1dCA9IFszLCBuMCwgX0RNU08sIDAsIFtdLCBbXV07XG52YXIgRGVzY3JpYmVBbGFybUNvbnRyaWJ1dG9yc0lucHV0ID0gWzMsIG4wLCBfREFDSSwgMCwgW19BTiwgX05UXSwgWzAsIDBdXTtcbnZhciBEZXNjcmliZUFsYXJtQ29udHJpYnV0b3JzT3V0cHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0RBQ08sXG4gICAgMCxcbiAgICBbX0FDbCwgX05UXSxcbiAgICBbKCkgPT4gQWxhcm1Db250cmlidXRvcnMsIDBdLFxuXTtcbnZhciBEZXNjcmliZUFsYXJtSGlzdG9yeUlucHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0RBSEksXG4gICAgMCxcbiAgICBbX0FOLCBfQUNJLCBfQVRsLCBfSElULCBfU0QsIF9FRCwgX01SLCBfTlQsIF9TQl0sXG4gICAgWzAsIDAsIDY0IHwgMCwgMCwgNCwgNCwgMSwgMCwgMF0sXG5dO1xudmFyIERlc2NyaWJlQWxhcm1IaXN0b3J5T3V0cHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0RBSE8sXG4gICAgMCxcbiAgICBbX0FISWwsIF9OVF0sXG4gICAgWygpID0+IEFsYXJtSGlzdG9yeUl0ZW1zLCAwXSxcbl07XG52YXIgRGVzY3JpYmVBbGFybXNGb3JNZXRyaWNJbnB1dCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9EQUZNSSxcbiAgICAwLFxuICAgIFtfTU4sIF9OLCBfU3QsIF9FU3gsIF9ELCBfUCwgX1VdLFxuICAgIFswLCAwLCAwLCAwLCAoKSA9PiBEaW1lbnNpb25zLCAxLCAwXSxcbl07XG52YXIgRGVzY3JpYmVBbGFybXNGb3JNZXRyaWNPdXRwdXQgPSBbMywgbjAsIF9EQUZNTywgMCwgW19NQV0sIFsoKSA9PiBNZXRyaWNBbGFybXNdXTtcbnZhciBEZXNjcmliZUFsYXJtc0lucHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0RBSWUsXG4gICAgMCxcbiAgICBbX0FObCwgX0FOUCwgX0FUbCwgX0NPQU4sIF9QT0FOLCBfU1YsIF9BUCwgX01SLCBfTlRdLFxuICAgIFs2NCB8IDAsIDAsIDY0IHwgMCwgMCwgMCwgMCwgMCwgMSwgMF0sXG5dO1xudmFyIERlc2NyaWJlQWxhcm1zT3V0cHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0RBTyxcbiAgICAwLFxuICAgIFtfQ0FvbSwgX01BLCBfTlRdLFxuICAgIFsoKSA9PiBDb21wb3NpdGVBbGFybXMsICgpID0+IE1ldHJpY0FsYXJtcywgMF0sXG5dO1xudmFyIERlc2NyaWJlQW5vbWFseURldGVjdG9yc0lucHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0RBREllLFxuICAgIDAsXG4gICAgW19OVCwgX01SYSwgX04sIF9NTiwgX0QsIF9BRFRdLFxuICAgIFswLCAxLCAwLCAwLCAoKSA9PiBEaW1lbnNpb25zLCA2NCB8IDBdLFxuXTtcbnZhciBEZXNjcmliZUFub21hbHlEZXRlY3RvcnNPdXRwdXQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfREFET2UsXG4gICAgMCxcbiAgICBbX0FEbiwgX05UXSxcbiAgICBbKCkgPT4gQW5vbWFseURldGVjdG9ycywgMF0sXG5dO1xudmFyIERlc2NyaWJlSW5zaWdodFJ1bGVzSW5wdXQgPSBbMywgbjAsIF9ESVJJZSwgMCwgW19OVCwgX01SYV0sIFswLCAxXV07XG52YXIgRGVzY3JpYmVJbnNpZ2h0UnVsZXNPdXRwdXQgPSBbMywgbjAsIF9ESVJPZSwgMCwgW19OVCwgX0lSXSwgWzAsICgpID0+IEluc2lnaHRSdWxlc11dO1xudmFyIERpbWVuc2lvbiA9IFszLCBuMCwgX0RpLCAwLCBbX05hLCBfVl0sIFswLCAwXV07XG52YXIgRGltZW5zaW9uRmlsdGVyID0gWzMsIG4wLCBfREYsIDAsIFtfTmEsIF9WXSwgWzAsIDBdXTtcbnZhciBEaXNhYmxlQWxhcm1BY3Rpb25zSW5wdXQgPSBbMywgbjAsIF9EQUFJLCAwLCBbX0FObF0sIFs2NCB8IDBdXTtcbnZhciBEaXNhYmxlSW5zaWdodFJ1bGVzSW5wdXQgPSBbMywgbjAsIF9ESVJJaSwgMCwgW19STl0sIFs2NCB8IDBdXTtcbnZhciBEaXNhYmxlSW5zaWdodFJ1bGVzT3V0cHV0ID0gWzMsIG4wLCBfRElST2ksIDAsIFtfRl0sIFsoKSA9PiBCYXRjaEZhaWx1cmVzXV07XG52YXIgRW5hYmxlQWxhcm1BY3Rpb25zSW5wdXQgPSBbMywgbjAsIF9FQUFJLCAwLCBbX0FObF0sIFs2NCB8IDBdXTtcbnZhciBFbmFibGVJbnNpZ2h0UnVsZXNJbnB1dCA9IFszLCBuMCwgX0VJUkksIDAsIFtfUk5dLCBbNjQgfCAwXV07XG52YXIgRW5hYmxlSW5zaWdodFJ1bGVzT3V0cHV0ID0gWzMsIG4wLCBfRUlSTywgMCwgW19GXSwgWygpID0+IEJhdGNoRmFpbHVyZXNdXTtcbnZhciBFbnRpdHkgPSBbMywgbjAsIF9FLCAwLCBbX0tBLCBfQXRdLCBbMTI4IHwgMCwgMTI4IHwgMF1dO1xudmFyIEVudGl0eU1ldHJpY0RhdGEgPSBbMywgbjAsIF9FTUQsIDAsIFtfRSwgX01EXSwgWygpID0+IEVudGl0eSwgKCkgPT4gTWV0cmljRGF0YV1dO1xudmFyIEdldERhc2hib2FyZElucHV0ID0gWzMsIG4wLCBfR0RJLCAwLCBbX0ROXSwgWzBdXTtcbnZhciBHZXREYXNoYm9hcmRPdXRwdXQgPSBbMywgbjAsIF9HRE8sIDAsIFtfREEsIF9EQiwgX0ROXSwgWzAsIDAsIDBdXTtcbnZhciBHZXRJbnNpZ2h0UnVsZVJlcG9ydElucHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dJUlJJLFxuICAgIDAsXG4gICAgW19STnUsIF9TVCwgX0VULCBfUCwgX01DQywgX01lLCBfT0JdLFxuICAgIFswLCA0LCA0LCAxLCAxLCA2NCB8IDAsIDBdLFxuXTtcbnZhciBHZXRJbnNpZ2h0UnVsZVJlcG9ydE91dHB1dCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HSVJSTyxcbiAgICAwLFxuICAgIFtfS0wsIF9BU2csIF9BViwgX0FVQywgX0NvLCBfTURlXSxcbiAgICBbNjQgfCAwLCAwLCAxLCAxLCAoKSA9PiBJbnNpZ2h0UnVsZUNvbnRyaWJ1dG9ycywgKCkgPT4gSW5zaWdodFJ1bGVNZXRyaWNEYXRhcG9pbnRzXSxcbl07XG52YXIgR2V0TWV0cmljRGF0YUlucHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dNREksXG4gICAgMCxcbiAgICBbX01EUSwgX1NULCBfRVQsIF9OVCwgX1NCLCBfTURhLCBfTE9dLFxuICAgIFsoKSA9PiBNZXRyaWNEYXRhUXVlcmllcywgNCwgNCwgMCwgMCwgMSwgKCkgPT4gTGFiZWxPcHRpb25zXSxcbl07XG52YXIgR2V0TWV0cmljRGF0YU91dHB1dCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HTURPLFxuICAgIDAsXG4gICAgW19NRFIsIF9OVCwgX01lc10sXG4gICAgWygpID0+IE1ldHJpY0RhdGFSZXN1bHRzLCAwLCAoKSA9PiBNZXRyaWNEYXRhUmVzdWx0TWVzc2FnZXNdLFxuXTtcbnZhciBHZXRNZXRyaWNTdGF0aXN0aWNzSW5wdXQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfR01TSSxcbiAgICAwLFxuICAgIFtfTiwgX01OLCBfRCwgX1NULCBfRVQsIF9QLCBfU3RhLCBfRVMsIF9VXSxcbiAgICBbMCwgMCwgKCkgPT4gRGltZW5zaW9ucywgNCwgNCwgMSwgNjQgfCAwLCA2NCB8IDAsIDBdLFxuXTtcbnZhciBHZXRNZXRyaWNTdGF0aXN0aWNzT3V0cHV0ID0gWzMsIG4wLCBfR01TTywgMCwgW19MLCBfRGF0XSwgWzAsICgpID0+IERhdGFwb2ludHNdXTtcbnZhciBHZXRNZXRyaWNTdHJlYW1JbnB1dCA9IFszLCBuMCwgX0dNU0llLCAwLCBbX05hXSwgWzBdXTtcbnZhciBHZXRNZXRyaWNTdHJlYW1PdXRwdXQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfR01TT2UsXG4gICAgMCxcbiAgICBbX0FyLCBfTmEsIF9JRiwgX0VGLCBfRkEsIF9SQSwgX1N0YXQsIF9DRCwgX0xVRCwgX09GLCBfU0N0LCBfSUxBTV0sXG4gICAgW1xuICAgICAgICAwLFxuICAgICAgICAwLFxuICAgICAgICAoKSA9PiBNZXRyaWNTdHJlYW1GaWx0ZXJzLFxuICAgICAgICAoKSA9PiBNZXRyaWNTdHJlYW1GaWx0ZXJzLFxuICAgICAgICAwLFxuICAgICAgICAwLFxuICAgICAgICAwLFxuICAgICAgICA0LFxuICAgICAgICA0LFxuICAgICAgICAwLFxuICAgICAgICAoKSA9PiBNZXRyaWNTdHJlYW1TdGF0aXN0aWNzQ29uZmlndXJhdGlvbnMsXG4gICAgICAgIDIsXG4gICAgXSxcbl07XG52YXIgR2V0TWV0cmljV2lkZ2V0SW1hZ2VJbnB1dCA9IFszLCBuMCwgX0dNV0lJLCAwLCBbX01XLCBfT0ZdLCBbMCwgMF1dO1xudmFyIEdldE1ldHJpY1dpZGdldEltYWdlT3V0cHV0ID0gWzMsIG4wLCBfR01XSU8sIDAsIFtfTVdJXSwgWzIxXV07XG52YXIgSW5zaWdodFJ1bGUgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfSVJuLFxuICAgIDAsXG4gICAgW19OYSwgX1N0YXQsIF9TYywgX0RlLCBfTVJhbiwgX0FPVExdLFxuICAgIFswLCAwLCAwLCAwLCAyLCAyXSxcbl07XG52YXIgSW5zaWdodFJ1bGVDb250cmlidXRvciA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9JUkMsXG4gICAgMCxcbiAgICBbX0ssIF9BQVYsIF9EYXRdLFxuICAgIFs2NCB8IDAsIDEsICgpID0+IEluc2lnaHRSdWxlQ29udHJpYnV0b3JEYXRhcG9pbnRzXSxcbl07XG52YXIgSW5zaWdodFJ1bGVDb250cmlidXRvckRhdGFwb2ludCA9IFszLCBuMCwgX0lSQ0QsIDAsIFtfVCwgX0FWcF0sIFs0LCAxXV07XG52YXIgSW5zaWdodFJ1bGVNZXRyaWNEYXRhcG9pbnQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfSVJNRCxcbiAgICAwLFxuICAgIFtfVCwgX1VDLCBfTUNWLCBfU0MsIF9BLCBfU3UsIF9NaSwgX01hXSxcbiAgICBbNCwgMSwgMSwgMSwgMSwgMSwgMSwgMV0sXG5dO1xudmFyIEludGVybmFsU2VydmljZUZhdWx0ID0gW1xuICAgIC0zLFxuICAgIG4wLFxuICAgIF9JU0YsXG4gICAgeyBbX2VdOiBfcywgW19oRV06IDUwMCwgW19hUUVdOiBbYEludGVybmFsU2VydmljZUVycm9yYCwgNTAwXSB9LFxuICAgIFtfTV0sXG4gICAgWzBdLFxuXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKEludGVybmFsU2VydmljZUZhdWx0LCBJbnRlcm5hbFNlcnZpY2VGYXVsdCQxKTtcbnZhciBJbnZhbGlkRm9ybWF0RmF1bHQgPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX0lGRixcbiAgICB7IFtfZV06IF9jLCBbX2hFXTogNDAwLCBbX2FRRV06IFtgSW52YWxpZEZvcm1hdGAsIDQwMF0gfSxcbiAgICBbX21dLFxuICAgIFswXSxcbl07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihJbnZhbGlkRm9ybWF0RmF1bHQsIEludmFsaWRGb3JtYXRGYXVsdCQxKTtcbnZhciBJbnZhbGlkTmV4dFRva2VuID0gW1xuICAgIC0zLFxuICAgIG4wLFxuICAgIF9JTlQsXG4gICAgeyBbX2VdOiBfYywgW19oRV06IDQwMCwgW19hUUVdOiBbYEludmFsaWROZXh0VG9rZW5gLCA0MDBdIH0sXG4gICAgW19tXSxcbiAgICBbMF0sXG5dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoSW52YWxpZE5leHRUb2tlbiwgSW52YWxpZE5leHRUb2tlbiQxKTtcbnZhciBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FeGNlcHRpb24gPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX0lQQ0UsXG4gICAgeyBbX2VdOiBfYywgW19oRV06IDQwMCwgW19hUUVdOiBbYEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbmAsIDQwMF0gfSxcbiAgICBbX21dLFxuICAgIFswXSxcbl07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FeGNlcHRpb24sIEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkV4Y2VwdGlvbiQxKTtcbnZhciBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFeGNlcHRpb24gPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX0lQVkUsXG4gICAgeyBbX2VdOiBfYywgW19oRV06IDQwMCwgW19hUUVdOiBbYEludmFsaWRQYXJhbWV0ZXJWYWx1ZWAsIDQwMF0gfSxcbiAgICBbX21dLFxuICAgIFswXSxcbl07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihJbnZhbGlkUGFyYW1ldGVyVmFsdWVFeGNlcHRpb24sIEludmFsaWRQYXJhbWV0ZXJWYWx1ZUV4Y2VwdGlvbiQxKTtcbnZhciBMYWJlbE9wdGlvbnMgPSBbMywgbjAsIF9MTywgMCwgW19UaV0sIFswXV07XG52YXIgTGltaXRFeGNlZWRlZEV4Y2VwdGlvbiA9IFtcbiAgICAtMyxcbiAgICBuMCxcbiAgICBfTEVFLFxuICAgIHsgW19lXTogX2MsIFtfaEVdOiA0MDAsIFtfYVFFXTogW2BMaW1pdEV4Y2VlZGVkRXhjZXB0aW9uYCwgNDAwXSB9LFxuICAgIFtfTV0sXG4gICAgWzBdLFxuXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKExpbWl0RXhjZWVkZWRFeGNlcHRpb24sIExpbWl0RXhjZWVkZWRFeGNlcHRpb24kMSk7XG52YXIgTGltaXRFeGNlZWRlZEZhdWx0ID0gW1xuICAgIC0zLFxuICAgIG4wLFxuICAgIF9MRUYsXG4gICAgeyBbX2VdOiBfYywgW19oRV06IDQwMCwgW19hUUVdOiBbYExpbWl0RXhjZWVkZWRgLCA0MDBdIH0sXG4gICAgW19tXSxcbiAgICBbMF0sXG5dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoTGltaXRFeGNlZWRlZEZhdWx0LCBMaW1pdEV4Y2VlZGVkRmF1bHQkMSk7XG52YXIgTGlzdERhc2hib2FyZHNJbnB1dCA9IFszLCBuMCwgX0xESSwgMCwgW19ETlAsIF9OVF0sIFswLCAwXV07XG52YXIgTGlzdERhc2hib2FyZHNPdXRwdXQgPSBbMywgbjAsIF9MRE8sIDAsIFtfREVhLCBfTlRdLCBbKCkgPT4gRGFzaGJvYXJkRW50cmllcywgMF1dO1xudmFyIExpc3RNYW5hZ2VkSW5zaWdodFJ1bGVzSW5wdXQgPSBbMywgbjAsIF9MTUlSSSwgMCwgW19SQVJOLCBfTlQsIF9NUmFdLCBbMCwgMCwgMV1dO1xudmFyIExpc3RNYW5hZ2VkSW5zaWdodFJ1bGVzT3V0cHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0xNSVJPLFxuICAgIDAsXG4gICAgW19NUmFuYSwgX05UXSxcbiAgICBbKCkgPT4gTWFuYWdlZFJ1bGVEZXNjcmlwdGlvbnMsIDBdLFxuXTtcbnZhciBMaXN0TWV0cmljc0lucHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0xNSSxcbiAgICAwLFxuICAgIFtfTiwgX01OLCBfRCwgX05ULCBfUkFlLCBfSUxBLCBfT0FdLFxuICAgIFswLCAwLCAoKSA9PiBEaW1lbnNpb25GaWx0ZXJzLCAwLCAwLCAyLCAwXSxcbl07XG52YXIgTGlzdE1ldHJpY3NPdXRwdXQgPSBbMywgbjAsIF9MTU8sIDAsIFtfTWUsIF9OVCwgX09Bd10sIFsoKSA9PiBNZXRyaWNzLCAwLCA2NCB8IDBdXTtcbnZhciBMaXN0TWV0cmljU3RyZWFtc0lucHV0ID0gWzMsIG4wLCBfTE1TSSwgMCwgW19OVCwgX01SYV0sIFswLCAxXV07XG52YXIgTGlzdE1ldHJpY1N0cmVhbXNPdXRwdXQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfTE1TTyxcbiAgICAwLFxuICAgIFtfTlQsIF9Fbl0sXG4gICAgWzAsICgpID0+IE1ldHJpY1N0cmVhbUVudHJpZXNdLFxuXTtcbnZhciBMaXN0VGFnc0ZvclJlc291cmNlSW5wdXQgPSBbMywgbjAsIF9MVEZSSSwgMCwgW19SQVJOXSwgWzBdXTtcbnZhciBMaXN0VGFnc0ZvclJlc291cmNlT3V0cHV0ID0gWzMsIG4wLCBfTFRGUk8sIDAsIFtfVGFdLCBbKCkgPT4gVGFnTGlzdF1dO1xudmFyIE1hbmFnZWRSdWxlID0gWzMsIG4wLCBfTVJhbiwgMCwgW19UTiwgX1JBUk4sIF9UYV0sIFswLCAwLCAoKSA9PiBUYWdMaXN0XV07XG52YXIgTWFuYWdlZFJ1bGVEZXNjcmlwdGlvbiA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9NUkQsXG4gICAgMCxcbiAgICBbX1ROLCBfUkFSTiwgX1JTXSxcbiAgICBbMCwgMCwgKCkgPT4gTWFuYWdlZFJ1bGVTdGF0ZV0sXG5dO1xudmFyIE1hbmFnZWRSdWxlU3RhdGUgPSBbMywgbjAsIF9NUlMsIDAsIFtfUk51LCBfU3RhdF0sIFswLCAwXV07XG52YXIgTWVzc2FnZURhdGEgPSBbMywgbjAsIF9NRGVzLCAwLCBbX0NvZCwgX1ZdLCBbMCwgMF1dO1xudmFyIE1ldHJpYyA9IFszLCBuMCwgX01ldCwgMCwgW19OLCBfTU4sIF9EXSwgWzAsIDAsICgpID0+IERpbWVuc2lvbnNdXTtcbnZhciBNZXRyaWNBbGFybSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9NQWUsXG4gICAgMCxcbiAgICBbXG4gICAgICAgIF9BTixcbiAgICAgICAgX0FBbCxcbiAgICAgICAgX0FEbCxcbiAgICAgICAgX0FDVVQsXG4gICAgICAgIF9BRSxcbiAgICAgICAgX09LQSxcbiAgICAgICAgX0FBLFxuICAgICAgICBfSURBLFxuICAgICAgICBfU1YsXG4gICAgICAgIF9TUixcbiAgICAgICAgX1NSRCxcbiAgICAgICAgX1NVVCxcbiAgICAgICAgX01OLFxuICAgICAgICBfTixcbiAgICAgICAgX1N0LFxuICAgICAgICBfRVN4LFxuICAgICAgICBfRCxcbiAgICAgICAgX1AsXG4gICAgICAgIF9VLFxuICAgICAgICBfRVAsXG4gICAgICAgIF9EVEEsXG4gICAgICAgIF9UaCxcbiAgICAgICAgX0NPLFxuICAgICAgICBfVE1ELFxuICAgICAgICBfRUxTQ1AsXG4gICAgICAgIF9NZSxcbiAgICAgICAgX1RNSSxcbiAgICAgICAgX0VTdixcbiAgICAgICAgX1NUVCxcbiAgICBdLFxuICAgIFtcbiAgICAgICAgMCxcbiAgICAgICAgMCxcbiAgICAgICAgMCxcbiAgICAgICAgNCxcbiAgICAgICAgMixcbiAgICAgICAgNjQgfCAwLFxuICAgICAgICA2NCB8IDAsXG4gICAgICAgIDY0IHwgMCxcbiAgICAgICAgMCxcbiAgICAgICAgMCxcbiAgICAgICAgMCxcbiAgICAgICAgNCxcbiAgICAgICAgMCxcbiAgICAgICAgMCxcbiAgICAgICAgMCxcbiAgICAgICAgMCxcbiAgICAgICAgKCkgPT4gRGltZW5zaW9ucyxcbiAgICAgICAgMSxcbiAgICAgICAgMCxcbiAgICAgICAgMSxcbiAgICAgICAgMSxcbiAgICAgICAgMSxcbiAgICAgICAgMCxcbiAgICAgICAgMCxcbiAgICAgICAgMCxcbiAgICAgICAgKCkgPT4gTWV0cmljRGF0YVF1ZXJpZXMsXG4gICAgICAgIDAsXG4gICAgICAgIDAsXG4gICAgICAgIDQsXG4gICAgXSxcbl07XG52YXIgTWV0cmljQ2hhcmFjdGVyaXN0aWNzID0gWzMsIG4wLCBfTUMsIDAsIFtfUFNdLCBbMl1dO1xudmFyIE1ldHJpY0RhdGFRdWVyeSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9NRFFlLFxuICAgIDAsXG4gICAgW19JLCBfTVMsIF9FeCwgX0wsIF9SRCwgX1AsIF9BSV0sXG4gICAgWzAsICgpID0+IE1ldHJpY1N0YXQsIDAsIDAsIDIsIDEsIDBdLFxuXTtcbnZhciBNZXRyaWNEYXRhUmVzdWx0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX01EUmUsXG4gICAgMCxcbiAgICBbX0ksIF9MLCBfVGltLCBfVmEsIF9TQ3RhLCBfTWVzXSxcbiAgICBbMCwgMCwgNjQgfCA0LCA2NCB8IDEsIDAsICgpID0+IE1ldHJpY0RhdGFSZXN1bHRNZXNzYWdlc10sXG5dO1xudmFyIE1ldHJpY0RhdHVtID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX01EZXQsXG4gICAgMCxcbiAgICBbX01OLCBfRCwgX1QsIF9WLCBfU1Z0LCBfVmEsIF9Db3UsIF9VLCBfU1J0XSxcbiAgICBbMCwgKCkgPT4gRGltZW5zaW9ucywgNCwgMSwgKCkgPT4gU3RhdGlzdGljU2V0LCA2NCB8IDEsIDY0IHwgMSwgMCwgMV0sXG5dO1xudmFyIE1ldHJpY01hdGhBbm9tYWx5RGV0ZWN0b3IgPSBbMywgbjAsIF9NTUFELCAwLCBbX01EUV0sIFsoKSA9PiBNZXRyaWNEYXRhUXVlcmllc11dO1xudmFyIE1ldHJpY1N0YXQgPSBbMywgbjAsIF9NUywgMCwgW19NZXQsIF9QLCBfUywgX1VdLCBbKCkgPT4gTWV0cmljLCAxLCAwLCAwXV07XG52YXIgTWV0cmljU3RyZWFtRW50cnkgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfTVNFLFxuICAgIDAsXG4gICAgW19BciwgX0NELCBfTFVELCBfTmEsIF9GQSwgX1N0YXQsIF9PRl0sXG4gICAgWzAsIDQsIDQsIDAsIDAsIDAsIDBdLFxuXTtcbnZhciBNZXRyaWNTdHJlYW1GaWx0ZXIgPSBbMywgbjAsIF9NU0YsIDAsIFtfTiwgX01OZV0sIFswLCA2NCB8IDBdXTtcbnZhciBNZXRyaWNTdHJlYW1TdGF0aXN0aWNzQ29uZmlndXJhdGlvbiA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9NU1NDLFxuICAgIDAsXG4gICAgW19JTSwgX0FTZF0sXG4gICAgWygpID0+IE1ldHJpY1N0cmVhbVN0YXRpc3RpY3NJbmNsdWRlTWV0cmljcywgNjQgfCAwXSxcbl07XG52YXIgTWV0cmljU3RyZWFtU3RhdGlzdGljc01ldHJpYyA9IFszLCBuMCwgX01TU00sIDAsIFtfTiwgX01OXSwgWzAsIDBdXTtcbnZhciBNaXNzaW5nUmVxdWlyZWRQYXJhbWV0ZXJFeGNlcHRpb24gPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX01SUEUsXG4gICAgeyBbX2VdOiBfYywgW19oRV06IDQwMCwgW19hUUVdOiBbYE1pc3NpbmdQYXJhbWV0ZXJgLCA0MDBdIH0sXG4gICAgW19tXSxcbiAgICBbMF0sXG5dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoTWlzc2luZ1JlcXVpcmVkUGFyYW1ldGVyRXhjZXB0aW9uLCBNaXNzaW5nUmVxdWlyZWRQYXJhbWV0ZXJFeGNlcHRpb24kMSk7XG52YXIgUGFydGlhbEZhaWx1cmUgPSBbMywgbjAsIF9QRiwgMCwgW19GUiwgX0VUeCwgX0ZDLCBfRkRdLCBbMCwgMCwgMCwgMF1dO1xudmFyIFB1dEFub21hbHlEZXRlY3RvcklucHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1BBREksXG4gICAgMCxcbiAgICBbX04sIF9NTiwgX0QsIF9TLCBfQywgX01DLCBfU01BRCwgX01NQURdLFxuICAgIFtcbiAgICAgICAgMCxcbiAgICAgICAgMCxcbiAgICAgICAgKCkgPT4gRGltZW5zaW9ucyxcbiAgICAgICAgMCxcbiAgICAgICAgKCkgPT4gQW5vbWFseURldGVjdG9yQ29uZmlndXJhdGlvbixcbiAgICAgICAgKCkgPT4gTWV0cmljQ2hhcmFjdGVyaXN0aWNzLFxuICAgICAgICAoKSA9PiBTaW5nbGVNZXRyaWNBbm9tYWx5RGV0ZWN0b3IsXG4gICAgICAgICgpID0+IE1ldHJpY01hdGhBbm9tYWx5RGV0ZWN0b3IsXG4gICAgXSxcbl07XG52YXIgUHV0QW5vbWFseURldGVjdG9yT3V0cHV0ID0gWzMsIG4wLCBfUEFETywgMCwgW10sIFtdXTtcbnZhciBQdXRDb21wb3NpdGVBbGFybUlucHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1BDQUksXG4gICAgMCxcbiAgICBbX0FFLCBfQUEsIF9BRGwsIF9BTiwgX0FSLCBfSURBLCBfT0tBLCBfVGEsIF9BUywgX0FTV1AsIF9BU0VQXSxcbiAgICBbMiwgNjQgfCAwLCAwLCAwLCAwLCA2NCB8IDAsIDY0IHwgMCwgKCkgPT4gVGFnTGlzdCwgMCwgMSwgMV0sXG5dO1xudmFyIFB1dERhc2hib2FyZElucHV0ID0gWzMsIG4wLCBfUERJLCAwLCBbX0ROLCBfREJdLCBbMCwgMF1dO1xudmFyIFB1dERhc2hib2FyZE91dHB1dCA9IFszLCBuMCwgX1BETywgMCwgW19EVk1hXSwgWygpID0+IERhc2hib2FyZFZhbGlkYXRpb25NZXNzYWdlc11dO1xudmFyIFB1dEluc2lnaHRSdWxlSW5wdXQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfUElSSSxcbiAgICAwLFxuICAgIFtfUk51LCBfUlMsIF9SRHUsIF9UYSwgX0FPVExdLFxuICAgIFswLCAwLCAwLCAoKSA9PiBUYWdMaXN0LCAyXSxcbl07XG52YXIgUHV0SW5zaWdodFJ1bGVPdXRwdXQgPSBbMywgbjAsIF9QSVJPLCAwLCBbXSwgW11dO1xudmFyIFB1dE1hbmFnZWRJbnNpZ2h0UnVsZXNJbnB1dCA9IFszLCBuMCwgX1BNSVJJLCAwLCBbX01SYW5hXSwgWygpID0+IE1hbmFnZWRSdWxlc11dO1xudmFyIFB1dE1hbmFnZWRJbnNpZ2h0UnVsZXNPdXRwdXQgPSBbMywgbjAsIF9QTUlSTywgMCwgW19GXSwgWygpID0+IEJhdGNoRmFpbHVyZXNdXTtcbnZhciBQdXRNZXRyaWNBbGFybUlucHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1BNQUksXG4gICAgMCxcbiAgICBbX0FOLCBfQURsLCBfQUUsIF9PS0EsIF9BQSwgX0lEQSwgX01OLCBfTiwgX1N0LCBfRVN4LCBfRCwgX1AsIF9VLCBfRVAsIF9EVEEsIF9UaCwgX0NPLCBfVE1ELCBfRUxTQ1AsIF9NZSwgX1RhLCBfVE1JXSxcbiAgICBbXG4gICAgICAgIDAsXG4gICAgICAgIDAsXG4gICAgICAgIDIsXG4gICAgICAgIDY0IHwgMCxcbiAgICAgICAgNjQgfCAwLFxuICAgICAgICA2NCB8IDAsXG4gICAgICAgIDAsXG4gICAgICAgIDAsXG4gICAgICAgIDAsXG4gICAgICAgIDAsXG4gICAgICAgICgpID0+IERpbWVuc2lvbnMsXG4gICAgICAgIDEsXG4gICAgICAgIDAsXG4gICAgICAgIDEsXG4gICAgICAgIDEsXG4gICAgICAgIDEsXG4gICAgICAgIDAsXG4gICAgICAgIDAsXG4gICAgICAgIDAsXG4gICAgICAgICgpID0+IE1ldHJpY0RhdGFRdWVyaWVzLFxuICAgICAgICAoKSA9PiBUYWdMaXN0LFxuICAgICAgICAwLFxuICAgIF0sXG5dO1xudmFyIFB1dE1ldHJpY0RhdGFJbnB1dCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9QTURJLFxuICAgIDAsXG4gICAgW19OLCBfTUQsIF9FTUQsIF9TRVZdLFxuICAgIFswLCAoKSA9PiBNZXRyaWNEYXRhLCAoKSA9PiBFbnRpdHlNZXRyaWNEYXRhTGlzdCwgMl0sXG5dO1xudmFyIFB1dE1ldHJpY1N0cmVhbUlucHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1BNU0ksXG4gICAgMCxcbiAgICBbX05hLCBfSUYsIF9FRiwgX0ZBLCBfUkEsIF9PRiwgX1RhLCBfU0N0LCBfSUxBTV0sXG4gICAgW1xuICAgICAgICAwLFxuICAgICAgICAoKSA9PiBNZXRyaWNTdHJlYW1GaWx0ZXJzLFxuICAgICAgICAoKSA9PiBNZXRyaWNTdHJlYW1GaWx0ZXJzLFxuICAgICAgICAwLFxuICAgICAgICAwLFxuICAgICAgICAwLFxuICAgICAgICAoKSA9PiBUYWdMaXN0LFxuICAgICAgICAoKSA9PiBNZXRyaWNTdHJlYW1TdGF0aXN0aWNzQ29uZmlndXJhdGlvbnMsXG4gICAgICAgIDIsXG4gICAgXSxcbl07XG52YXIgUHV0TWV0cmljU3RyZWFtT3V0cHV0ID0gWzMsIG4wLCBfUE1TTywgMCwgW19Bcl0sIFswXV07XG52YXIgUmFuZ2UgPSBbMywgbjAsIF9SLCAwLCBbX1NULCBfRVRdLCBbNCwgNF1dO1xudmFyIFJlc291cmNlTm90Rm91bmQgPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX1JORixcbiAgICB7IFtfZV06IF9jLCBbX2hFXTogNDA0LCBbX2FRRV06IFtgUmVzb3VyY2VOb3RGb3VuZGAsIDQwNF0gfSxcbiAgICBbX21dLFxuICAgIFswXSxcbl07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihSZXNvdXJjZU5vdEZvdW5kLCBSZXNvdXJjZU5vdEZvdW5kJDEpO1xudmFyIFJlc291cmNlTm90Rm91bmRFeGNlcHRpb24gPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX1JORkUsXG4gICAgeyBbX2VdOiBfYywgW19oRV06IDQwNCwgW19hUUVdOiBbYFJlc291cmNlTm90Rm91bmRFeGNlcHRpb25gLCA0MDRdIH0sXG4gICAgW19SVCwgX1JJLCBfTV0sXG4gICAgWzAsIDAsIDBdLFxuXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKFJlc291cmNlTm90Rm91bmRFeGNlcHRpb24sIFJlc291cmNlTm90Rm91bmRFeGNlcHRpb24kMSk7XG52YXIgU2V0QWxhcm1TdGF0ZUlucHV0ID0gWzMsIG4wLCBfU0FTSSwgMCwgW19BTiwgX1NWLCBfU1IsIF9TUkRdLCBbMCwgMCwgMCwgMF1dO1xudmFyIFNpbmdsZU1ldHJpY0Fub21hbHlEZXRlY3RvciA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9TTUFELFxuICAgIDAsXG4gICAgW19BSSwgX04sIF9NTiwgX0QsIF9TXSxcbiAgICBbMCwgMCwgMCwgKCkgPT4gRGltZW5zaW9ucywgMF0sXG5dO1xudmFyIFN0YXJ0TWV0cmljU3RyZWFtc0lucHV0ID0gWzMsIG4wLCBfU01TSSwgMCwgW19OYW1dLCBbNjQgfCAwXV07XG52YXIgU3RhcnRNZXRyaWNTdHJlYW1zT3V0cHV0ID0gWzMsIG4wLCBfU01TTywgMCwgW10sIFtdXTtcbnZhciBTdGF0aXN0aWNTZXQgPSBbMywgbjAsIF9TUywgMCwgW19TQywgX1N1LCBfTWksIF9NYV0sIFsxLCAxLCAxLCAxXV07XG52YXIgU3RvcE1ldHJpY1N0cmVhbXNJbnB1dCA9IFszLCBuMCwgX1NNU0l0LCAwLCBbX05hbV0sIFs2NCB8IDBdXTtcbnZhciBTdG9wTWV0cmljU3RyZWFtc091dHB1dCA9IFszLCBuMCwgX1NNU090LCAwLCBbXSwgW11dO1xudmFyIFRhZyA9IFszLCBuMCwgX1RhZywgMCwgW19LZSwgX1ZdLCBbMCwgMF1dO1xudmFyIFRhZ1Jlc291cmNlSW5wdXQgPSBbMywgbjAsIF9UUkksIDAsIFtfUkFSTiwgX1RhXSwgWzAsICgpID0+IFRhZ0xpc3RdXTtcbnZhciBUYWdSZXNvdXJjZU91dHB1dCA9IFszLCBuMCwgX1RSTywgMCwgW10sIFtdXTtcbnZhciBVbnRhZ1Jlc291cmNlSW5wdXQgPSBbMywgbjAsIF9VUkksIDAsIFtfUkFSTiwgX1RLXSwgWzAsIDY0IHwgMF1dO1xudmFyIFVudGFnUmVzb3VyY2VPdXRwdXQgPSBbMywgbjAsIF9VUk8sIDAsIFtdLCBbXV07XG52YXIgX19Vbml0ID0gXCJ1bml0XCI7XG52YXIgQ2xvdWRXYXRjaFNlcnZpY2VFeGNlcHRpb24gPSBbLTMsIF9zbSwgXCJDbG91ZFdhdGNoU2VydmljZUV4Y2VwdGlvblwiLCAwLCBbXSwgW11dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IoX3NtKS5yZWdpc3RlckVycm9yKENsb3VkV2F0Y2hTZXJ2aWNlRXhjZXB0aW9uLCBDbG91ZFdhdGNoU2VydmljZUV4Y2VwdGlvbiQxKTtcbnZhciBBbGFybUNvbnRyaWJ1dG9ycyA9IFsxLCBuMCwgX0FDbCwgMCwgKCkgPT4gQWxhcm1Db250cmlidXRvcl07XG52YXIgQWxhcm1IaXN0b3J5SXRlbXMgPSBbMSwgbjAsIF9BSElsLCAwLCAoKSA9PiBBbGFybUhpc3RvcnlJdGVtXTtcbnZhciBBbm9tYWx5RGV0ZWN0b3JFeGNsdWRlZFRpbWVSYW5nZXMgPSBbMSwgbjAsIF9BREVUUiwgMCwgKCkgPT4gUmFuZ2VdO1xudmFyIEFub21hbHlEZXRlY3RvcnMgPSBbMSwgbjAsIF9BRG4sIDAsICgpID0+IEFub21hbHlEZXRlY3Rvcl07XG52YXIgQmF0Y2hGYWlsdXJlcyA9IFsxLCBuMCwgX0JGLCAwLCAoKSA9PiBQYXJ0aWFsRmFpbHVyZV07XG52YXIgQ29tcG9zaXRlQWxhcm1zID0gWzEsIG4wLCBfQ0FvbSwgMCwgKCkgPT4gQ29tcG9zaXRlQWxhcm1dO1xudmFyIERhc2hib2FyZEVudHJpZXMgPSBbMSwgbjAsIF9ERWEsIDAsICgpID0+IERhc2hib2FyZEVudHJ5XTtcbnZhciBEYXNoYm9hcmRWYWxpZGF0aW9uTWVzc2FnZXMgPSBbMSwgbjAsIF9EVk1hLCAwLCAoKSA9PiBEYXNoYm9hcmRWYWxpZGF0aW9uTWVzc2FnZV07XG52YXIgRGF0YXBvaW50cyA9IFsxLCBuMCwgX0RhdCwgMCwgKCkgPT4gRGF0YXBvaW50XTtcbnZhciBEaW1lbnNpb25GaWx0ZXJzID0gWzEsIG4wLCBfREZpLCAwLCAoKSA9PiBEaW1lbnNpb25GaWx0ZXJdO1xudmFyIERpbWVuc2lvbnMgPSBbMSwgbjAsIF9ELCAwLCAoKSA9PiBEaW1lbnNpb25dO1xudmFyIEVudGl0eU1ldHJpY0RhdGFMaXN0ID0gWzEsIG4wLCBfRU1ETCwgMCwgKCkgPT4gRW50aXR5TWV0cmljRGF0YV07XG52YXIgSW5zaWdodFJ1bGVDb250cmlidXRvckRhdGFwb2ludHMgPSBbXG4gICAgMSxcbiAgICBuMCxcbiAgICBfSVJDRG4sXG4gICAgMCxcbiAgICAoKSA9PiBJbnNpZ2h0UnVsZUNvbnRyaWJ1dG9yRGF0YXBvaW50LFxuXTtcbnZhciBJbnNpZ2h0UnVsZUNvbnRyaWJ1dG9ycyA9IFsxLCBuMCwgX0lSQ24sIDAsICgpID0+IEluc2lnaHRSdWxlQ29udHJpYnV0b3JdO1xudmFyIEluc2lnaHRSdWxlTWV0cmljRGF0YXBvaW50cyA9IFsxLCBuMCwgX0lSTURuLCAwLCAoKSA9PiBJbnNpZ2h0UnVsZU1ldHJpY0RhdGFwb2ludF07XG52YXIgSW5zaWdodFJ1bGVzID0gWzEsIG4wLCBfSVIsIDAsICgpID0+IEluc2lnaHRSdWxlXTtcbnZhciBNYW5hZ2VkUnVsZURlc2NyaXB0aW9ucyA9IFsxLCBuMCwgX01SRGEsIDAsICgpID0+IE1hbmFnZWRSdWxlRGVzY3JpcHRpb25dO1xudmFyIE1hbmFnZWRSdWxlcyA9IFsxLCBuMCwgX01SYW5hLCAwLCAoKSA9PiBNYW5hZ2VkUnVsZV07XG52YXIgTWV0cmljQWxhcm1zID0gWzEsIG4wLCBfTUEsIDAsICgpID0+IE1ldHJpY0FsYXJtXTtcbnZhciBNZXRyaWNEYXRhID0gWzEsIG4wLCBfTUQsIDAsICgpID0+IE1ldHJpY0RhdHVtXTtcbnZhciBNZXRyaWNEYXRhUXVlcmllcyA9IFsxLCBuMCwgX01EUSwgMCwgKCkgPT4gTWV0cmljRGF0YVF1ZXJ5XTtcbnZhciBNZXRyaWNEYXRhUmVzdWx0TWVzc2FnZXMgPSBbMSwgbjAsIF9NRFJNLCAwLCAoKSA9PiBNZXNzYWdlRGF0YV07XG52YXIgTWV0cmljRGF0YVJlc3VsdHMgPSBbMSwgbjAsIF9NRFIsIDAsICgpID0+IE1ldHJpY0RhdGFSZXN1bHRdO1xudmFyIE1ldHJpY3MgPSBbMSwgbjAsIF9NZSwgMCwgKCkgPT4gTWV0cmljXTtcbnZhciBNZXRyaWNTdHJlYW1FbnRyaWVzID0gWzEsIG4wLCBfTVNFZSwgMCwgKCkgPT4gTWV0cmljU3RyZWFtRW50cnldO1xudmFyIE1ldHJpY1N0cmVhbUZpbHRlcnMgPSBbMSwgbjAsIF9NU0ZlLCAwLCAoKSA9PiBNZXRyaWNTdHJlYW1GaWx0ZXJdO1xudmFyIE1ldHJpY1N0cmVhbVN0YXRpc3RpY3NDb25maWd1cmF0aW9ucyA9IFtcbiAgICAxLFxuICAgIG4wLFxuICAgIF9NU1NDZSxcbiAgICAwLFxuICAgICgpID0+IE1ldHJpY1N0cmVhbVN0YXRpc3RpY3NDb25maWd1cmF0aW9uLFxuXTtcbnZhciBNZXRyaWNTdHJlYW1TdGF0aXN0aWNzSW5jbHVkZU1ldHJpY3MgPSBbXG4gICAgMSxcbiAgICBuMCxcbiAgICBfTVNTSU0sXG4gICAgMCxcbiAgICAoKSA9PiBNZXRyaWNTdHJlYW1TdGF0aXN0aWNzTWV0cmljLFxuXTtcbnZhciBUYWdMaXN0ID0gWzEsIG4wLCBfVEwsIDAsICgpID0+IFRhZ107XG52YXIgRGVsZXRlQWxhcm1zID0gWzksIG4wLCBfREFlLCAwLCAoKSA9PiBEZWxldGVBbGFybXNJbnB1dCwgKCkgPT4gX19Vbml0XTtcbnZhciBEZWxldGVBbm9tYWx5RGV0ZWN0b3IgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfREFELFxuICAgIDAsXG4gICAgKCkgPT4gRGVsZXRlQW5vbWFseURldGVjdG9ySW5wdXQsXG4gICAgKCkgPT4gRGVsZXRlQW5vbWFseURldGVjdG9yT3V0cHV0LFxuXTtcbnZhciBEZWxldGVEYXNoYm9hcmRzID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0RELFxuICAgIDAsXG4gICAgKCkgPT4gRGVsZXRlRGFzaGJvYXJkc0lucHV0LFxuICAgICgpID0+IERlbGV0ZURhc2hib2FyZHNPdXRwdXQsXG5dO1xudmFyIERlbGV0ZUluc2lnaHRSdWxlcyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9ESVIsXG4gICAgMCxcbiAgICAoKSA9PiBEZWxldGVJbnNpZ2h0UnVsZXNJbnB1dCxcbiAgICAoKSA9PiBEZWxldGVJbnNpZ2h0UnVsZXNPdXRwdXQsXG5dO1xudmFyIERlbGV0ZU1ldHJpY1N0cmVhbSA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9ETVMsXG4gICAgMCxcbiAgICAoKSA9PiBEZWxldGVNZXRyaWNTdHJlYW1JbnB1dCxcbiAgICAoKSA9PiBEZWxldGVNZXRyaWNTdHJlYW1PdXRwdXQsXG5dO1xudmFyIERlc2NyaWJlQWxhcm1Db250cmlidXRvcnMgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfREFDLFxuICAgIDAsXG4gICAgKCkgPT4gRGVzY3JpYmVBbGFybUNvbnRyaWJ1dG9yc0lucHV0LFxuICAgICgpID0+IERlc2NyaWJlQWxhcm1Db250cmlidXRvcnNPdXRwdXQsXG5dO1xudmFyIERlc2NyaWJlQWxhcm1IaXN0b3J5ID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0RBSCxcbiAgICAwLFxuICAgICgpID0+IERlc2NyaWJlQWxhcm1IaXN0b3J5SW5wdXQsXG4gICAgKCkgPT4gRGVzY3JpYmVBbGFybUhpc3RvcnlPdXRwdXQsXG5dO1xudmFyIERlc2NyaWJlQWxhcm1zID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0RBZXMsXG4gICAgMCxcbiAgICAoKSA9PiBEZXNjcmliZUFsYXJtc0lucHV0LFxuICAgICgpID0+IERlc2NyaWJlQWxhcm1zT3V0cHV0LFxuXTtcbnZhciBEZXNjcmliZUFsYXJtc0Zvck1ldHJpYyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9EQUZNLFxuICAgIDAsXG4gICAgKCkgPT4gRGVzY3JpYmVBbGFybXNGb3JNZXRyaWNJbnB1dCxcbiAgICAoKSA9PiBEZXNjcmliZUFsYXJtc0Zvck1ldHJpY091dHB1dCxcbl07XG52YXIgRGVzY3JpYmVBbm9tYWx5RGV0ZWN0b3JzID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0RBRGUsXG4gICAgMCxcbiAgICAoKSA9PiBEZXNjcmliZUFub21hbHlEZXRlY3RvcnNJbnB1dCxcbiAgICAoKSA9PiBEZXNjcmliZUFub21hbHlEZXRlY3RvcnNPdXRwdXQsXG5dO1xudmFyIERlc2NyaWJlSW5zaWdodFJ1bGVzID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0RJUmUsXG4gICAgMCxcbiAgICAoKSA9PiBEZXNjcmliZUluc2lnaHRSdWxlc0lucHV0LFxuICAgICgpID0+IERlc2NyaWJlSW5zaWdodFJ1bGVzT3V0cHV0LFxuXTtcbnZhciBEaXNhYmxlQWxhcm1BY3Rpb25zID0gWzksIG4wLCBfREFBLCAwLCAoKSA9PiBEaXNhYmxlQWxhcm1BY3Rpb25zSW5wdXQsICgpID0+IF9fVW5pdF07XG52YXIgRGlzYWJsZUluc2lnaHRSdWxlcyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9ESVJpLFxuICAgIDAsXG4gICAgKCkgPT4gRGlzYWJsZUluc2lnaHRSdWxlc0lucHV0LFxuICAgICgpID0+IERpc2FibGVJbnNpZ2h0UnVsZXNPdXRwdXQsXG5dO1xudmFyIEVuYWJsZUFsYXJtQWN0aW9ucyA9IFs5LCBuMCwgX0VBQSwgMCwgKCkgPT4gRW5hYmxlQWxhcm1BY3Rpb25zSW5wdXQsICgpID0+IF9fVW5pdF07XG52YXIgRW5hYmxlSW5zaWdodFJ1bGVzID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0VJUixcbiAgICAwLFxuICAgICgpID0+IEVuYWJsZUluc2lnaHRSdWxlc0lucHV0LFxuICAgICgpID0+IEVuYWJsZUluc2lnaHRSdWxlc091dHB1dCxcbl07XG52YXIgR2V0RGFzaGJvYXJkID0gWzksIG4wLCBfR0QsIDAsICgpID0+IEdldERhc2hib2FyZElucHV0LCAoKSA9PiBHZXREYXNoYm9hcmRPdXRwdXRdO1xudmFyIEdldEluc2lnaHRSdWxlUmVwb3J0ID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0dJUlIsXG4gICAgMCxcbiAgICAoKSA9PiBHZXRJbnNpZ2h0UnVsZVJlcG9ydElucHV0LFxuICAgICgpID0+IEdldEluc2lnaHRSdWxlUmVwb3J0T3V0cHV0LFxuXTtcbnZhciBHZXRNZXRyaWNEYXRhID0gWzksIG4wLCBfR01ELCAwLCAoKSA9PiBHZXRNZXRyaWNEYXRhSW5wdXQsICgpID0+IEdldE1ldHJpY0RhdGFPdXRwdXRdO1xudmFyIEdldE1ldHJpY1N0YXRpc3RpY3MgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfR01TLFxuICAgIDAsXG4gICAgKCkgPT4gR2V0TWV0cmljU3RhdGlzdGljc0lucHV0LFxuICAgICgpID0+IEdldE1ldHJpY1N0YXRpc3RpY3NPdXRwdXQsXG5dO1xudmFyIEdldE1ldHJpY1N0cmVhbSA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9HTVNlLFxuICAgIDAsXG4gICAgKCkgPT4gR2V0TWV0cmljU3RyZWFtSW5wdXQsXG4gICAgKCkgPT4gR2V0TWV0cmljU3RyZWFtT3V0cHV0LFxuXTtcbnZhciBHZXRNZXRyaWNXaWRnZXRJbWFnZSA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9HTVdJLFxuICAgIDAsXG4gICAgKCkgPT4gR2V0TWV0cmljV2lkZ2V0SW1hZ2VJbnB1dCxcbiAgICAoKSA9PiBHZXRNZXRyaWNXaWRnZXRJbWFnZU91dHB1dCxcbl07XG52YXIgTGlzdERhc2hib2FyZHMgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfTEQsXG4gICAgMCxcbiAgICAoKSA9PiBMaXN0RGFzaGJvYXJkc0lucHV0LFxuICAgICgpID0+IExpc3REYXNoYm9hcmRzT3V0cHV0LFxuXTtcbnZhciBMaXN0TWFuYWdlZEluc2lnaHRSdWxlcyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9MTUlSLFxuICAgIDAsXG4gICAgKCkgPT4gTGlzdE1hbmFnZWRJbnNpZ2h0UnVsZXNJbnB1dCxcbiAgICAoKSA9PiBMaXN0TWFuYWdlZEluc2lnaHRSdWxlc091dHB1dCxcbl07XG52YXIgTGlzdE1ldHJpY3MgPSBbOSwgbjAsIF9MTWksIDAsICgpID0+IExpc3RNZXRyaWNzSW5wdXQsICgpID0+IExpc3RNZXRyaWNzT3V0cHV0XTtcbnZhciBMaXN0TWV0cmljU3RyZWFtcyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9MTVMsXG4gICAgMCxcbiAgICAoKSA9PiBMaXN0TWV0cmljU3RyZWFtc0lucHV0LFxuICAgICgpID0+IExpc3RNZXRyaWNTdHJlYW1zT3V0cHV0LFxuXTtcbnZhciBMaXN0VGFnc0ZvclJlc291cmNlID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0xURlIsXG4gICAgMCxcbiAgICAoKSA9PiBMaXN0VGFnc0ZvclJlc291cmNlSW5wdXQsXG4gICAgKCkgPT4gTGlzdFRhZ3NGb3JSZXNvdXJjZU91dHB1dCxcbl07XG52YXIgUHV0QW5vbWFseURldGVjdG9yID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX1BBRCxcbiAgICAwLFxuICAgICgpID0+IFB1dEFub21hbHlEZXRlY3RvcklucHV0LFxuICAgICgpID0+IFB1dEFub21hbHlEZXRlY3Rvck91dHB1dCxcbl07XG52YXIgUHV0Q29tcG9zaXRlQWxhcm0gPSBbOSwgbjAsIF9QQ0EsIDAsICgpID0+IFB1dENvbXBvc2l0ZUFsYXJtSW5wdXQsICgpID0+IF9fVW5pdF07XG52YXIgUHV0RGFzaGJvYXJkID0gWzksIG4wLCBfUEQsIDAsICgpID0+IFB1dERhc2hib2FyZElucHV0LCAoKSA9PiBQdXREYXNoYm9hcmRPdXRwdXRdO1xudmFyIFB1dEluc2lnaHRSdWxlID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX1BJUixcbiAgICAwLFxuICAgICgpID0+IFB1dEluc2lnaHRSdWxlSW5wdXQsXG4gICAgKCkgPT4gUHV0SW5zaWdodFJ1bGVPdXRwdXQsXG5dO1xudmFyIFB1dE1hbmFnZWRJbnNpZ2h0UnVsZXMgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfUE1JUixcbiAgICAwLFxuICAgICgpID0+IFB1dE1hbmFnZWRJbnNpZ2h0UnVsZXNJbnB1dCxcbiAgICAoKSA9PiBQdXRNYW5hZ2VkSW5zaWdodFJ1bGVzT3V0cHV0LFxuXTtcbnZhciBQdXRNZXRyaWNBbGFybSA9IFs5LCBuMCwgX1BNQSwgMCwgKCkgPT4gUHV0TWV0cmljQWxhcm1JbnB1dCwgKCkgPT4gX19Vbml0XTtcbnZhciBQdXRNZXRyaWNEYXRhID0gWzksIG4wLCBfUE1ELCAwLCAoKSA9PiBQdXRNZXRyaWNEYXRhSW5wdXQsICgpID0+IF9fVW5pdF07XG52YXIgUHV0TWV0cmljU3RyZWFtID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX1BNUyxcbiAgICAwLFxuICAgICgpID0+IFB1dE1ldHJpY1N0cmVhbUlucHV0LFxuICAgICgpID0+IFB1dE1ldHJpY1N0cmVhbU91dHB1dCxcbl07XG52YXIgU2V0QWxhcm1TdGF0ZSA9IFs5LCBuMCwgX1NBUywgMCwgKCkgPT4gU2V0QWxhcm1TdGF0ZUlucHV0LCAoKSA9PiBfX1VuaXRdO1xudmFyIFN0YXJ0TWV0cmljU3RyZWFtcyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9TTVMsXG4gICAgMCxcbiAgICAoKSA9PiBTdGFydE1ldHJpY1N0cmVhbXNJbnB1dCxcbiAgICAoKSA9PiBTdGFydE1ldHJpY1N0cmVhbXNPdXRwdXQsXG5dO1xudmFyIFN0b3BNZXRyaWNTdHJlYW1zID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX1NNU3QsXG4gICAgMCxcbiAgICAoKSA9PiBTdG9wTWV0cmljU3RyZWFtc0lucHV0LFxuICAgICgpID0+IFN0b3BNZXRyaWNTdHJlYW1zT3V0cHV0LFxuXTtcbnZhciBUYWdSZXNvdXJjZSA9IFs5LCBuMCwgX1RSLCAwLCAoKSA9PiBUYWdSZXNvdXJjZUlucHV0LCAoKSA9PiBUYWdSZXNvdXJjZU91dHB1dF07XG52YXIgVW50YWdSZXNvdXJjZSA9IFs5LCBuMCwgX1VSLCAwLCAoKSA9PiBVbnRhZ1Jlc291cmNlSW5wdXQsICgpID0+IFVudGFnUmVzb3VyY2VPdXRwdXRdO1xuXG5jbGFzcyBEZWxldGVBbGFybXNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJHcmFuaXRlU2VydmljZVZlcnNpb24yMDEwMDgwMVwiLCBcIkRlbGV0ZUFsYXJtc1wiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hDbGllbnRcIiwgXCJEZWxldGVBbGFybXNDb21tYW5kXCIpXG4gICAgLnNjKERlbGV0ZUFsYXJtcylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERlbGV0ZUFub21hbHlEZXRlY3RvckNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkdyYW5pdGVTZXJ2aWNlVmVyc2lvbjIwMTAwODAxXCIsIFwiRGVsZXRlQW5vbWFseURldGVjdG9yXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaENsaWVudFwiLCBcIkRlbGV0ZUFub21hbHlEZXRlY3RvckNvbW1hbmRcIilcbiAgICAuc2MoRGVsZXRlQW5vbWFseURldGVjdG9yKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgRGVsZXRlRGFzaGJvYXJkc0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkdyYW5pdGVTZXJ2aWNlVmVyc2lvbjIwMTAwODAxXCIsIFwiRGVsZXRlRGFzaGJvYXJkc1wiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hDbGllbnRcIiwgXCJEZWxldGVEYXNoYm9hcmRzQ29tbWFuZFwiKVxuICAgIC5zYyhEZWxldGVEYXNoYm9hcmRzKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgRGVsZXRlSW5zaWdodFJ1bGVzQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiR3Jhbml0ZVNlcnZpY2VWZXJzaW9uMjAxMDA4MDFcIiwgXCJEZWxldGVJbnNpZ2h0UnVsZXNcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoQ2xpZW50XCIsIFwiRGVsZXRlSW5zaWdodFJ1bGVzQ29tbWFuZFwiKVxuICAgIC5zYyhEZWxldGVJbnNpZ2h0UnVsZXMpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZWxldGVNZXRyaWNTdHJlYW1Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJHcmFuaXRlU2VydmljZVZlcnNpb24yMDEwMDgwMVwiLCBcIkRlbGV0ZU1ldHJpY1N0cmVhbVwiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hDbGllbnRcIiwgXCJEZWxldGVNZXRyaWNTdHJlYW1Db21tYW5kXCIpXG4gICAgLnNjKERlbGV0ZU1ldHJpY1N0cmVhbSlcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERlc2NyaWJlQWxhcm1Db250cmlidXRvcnNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJHcmFuaXRlU2VydmljZVZlcnNpb24yMDEwMDgwMVwiLCBcIkRlc2NyaWJlQWxhcm1Db250cmlidXRvcnNcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoQ2xpZW50XCIsIFwiRGVzY3JpYmVBbGFybUNvbnRyaWJ1dG9yc0NvbW1hbmRcIilcbiAgICAuc2MoRGVzY3JpYmVBbGFybUNvbnRyaWJ1dG9ycylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERlc2NyaWJlQWxhcm1IaXN0b3J5Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiR3Jhbml0ZVNlcnZpY2VWZXJzaW9uMjAxMDA4MDFcIiwgXCJEZXNjcmliZUFsYXJtSGlzdG9yeVwiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hDbGllbnRcIiwgXCJEZXNjcmliZUFsYXJtSGlzdG9yeUNvbW1hbmRcIilcbiAgICAuc2MoRGVzY3JpYmVBbGFybUhpc3RvcnkpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZXNjcmliZUFsYXJtc0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkdyYW5pdGVTZXJ2aWNlVmVyc2lvbjIwMTAwODAxXCIsIFwiRGVzY3JpYmVBbGFybXNcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoQ2xpZW50XCIsIFwiRGVzY3JpYmVBbGFybXNDb21tYW5kXCIpXG4gICAgLnNjKERlc2NyaWJlQWxhcm1zKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgRGVzY3JpYmVBbGFybXNGb3JNZXRyaWNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJHcmFuaXRlU2VydmljZVZlcnNpb24yMDEwMDgwMVwiLCBcIkRlc2NyaWJlQWxhcm1zRm9yTWV0cmljXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaENsaWVudFwiLCBcIkRlc2NyaWJlQWxhcm1zRm9yTWV0cmljQ29tbWFuZFwiKVxuICAgIC5zYyhEZXNjcmliZUFsYXJtc0Zvck1ldHJpYylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERlc2NyaWJlQW5vbWFseURldGVjdG9yc0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkdyYW5pdGVTZXJ2aWNlVmVyc2lvbjIwMTAwODAxXCIsIFwiRGVzY3JpYmVBbm9tYWx5RGV0ZWN0b3JzXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaENsaWVudFwiLCBcIkRlc2NyaWJlQW5vbWFseURldGVjdG9yc0NvbW1hbmRcIilcbiAgICAuc2MoRGVzY3JpYmVBbm9tYWx5RGV0ZWN0b3JzKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgRGVzY3JpYmVJbnNpZ2h0UnVsZXNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJHcmFuaXRlU2VydmljZVZlcnNpb24yMDEwMDgwMVwiLCBcIkRlc2NyaWJlSW5zaWdodFJ1bGVzXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaENsaWVudFwiLCBcIkRlc2NyaWJlSW5zaWdodFJ1bGVzQ29tbWFuZFwiKVxuICAgIC5zYyhEZXNjcmliZUluc2lnaHRSdWxlcylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERpc2FibGVBbGFybUFjdGlvbnNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJHcmFuaXRlU2VydmljZVZlcnNpb24yMDEwMDgwMVwiLCBcIkRpc2FibGVBbGFybUFjdGlvbnNcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoQ2xpZW50XCIsIFwiRGlzYWJsZUFsYXJtQWN0aW9uc0NvbW1hbmRcIilcbiAgICAuc2MoRGlzYWJsZUFsYXJtQWN0aW9ucylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERpc2FibGVJbnNpZ2h0UnVsZXNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJHcmFuaXRlU2VydmljZVZlcnNpb24yMDEwMDgwMVwiLCBcIkRpc2FibGVJbnNpZ2h0UnVsZXNcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoQ2xpZW50XCIsIFwiRGlzYWJsZUluc2lnaHRSdWxlc0NvbW1hbmRcIilcbiAgICAuc2MoRGlzYWJsZUluc2lnaHRSdWxlcylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIEVuYWJsZUFsYXJtQWN0aW9uc0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkdyYW5pdGVTZXJ2aWNlVmVyc2lvbjIwMTAwODAxXCIsIFwiRW5hYmxlQWxhcm1BY3Rpb25zXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaENsaWVudFwiLCBcIkVuYWJsZUFsYXJtQWN0aW9uc0NvbW1hbmRcIilcbiAgICAuc2MoRW5hYmxlQWxhcm1BY3Rpb25zKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgRW5hYmxlSW5zaWdodFJ1bGVzQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiR3Jhbml0ZVNlcnZpY2VWZXJzaW9uMjAxMDA4MDFcIiwgXCJFbmFibGVJbnNpZ2h0UnVsZXNcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoQ2xpZW50XCIsIFwiRW5hYmxlSW5zaWdodFJ1bGVzQ29tbWFuZFwiKVxuICAgIC5zYyhFbmFibGVJbnNpZ2h0UnVsZXMpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBHZXREYXNoYm9hcmRDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJHcmFuaXRlU2VydmljZVZlcnNpb24yMDEwMDgwMVwiLCBcIkdldERhc2hib2FyZFwiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hDbGllbnRcIiwgXCJHZXREYXNoYm9hcmRDb21tYW5kXCIpXG4gICAgLnNjKEdldERhc2hib2FyZClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIEdldEluc2lnaHRSdWxlUmVwb3J0Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiR3Jhbml0ZVNlcnZpY2VWZXJzaW9uMjAxMDA4MDFcIiwgXCJHZXRJbnNpZ2h0UnVsZVJlcG9ydFwiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hDbGllbnRcIiwgXCJHZXRJbnNpZ2h0UnVsZVJlcG9ydENvbW1hbmRcIilcbiAgICAuc2MoR2V0SW5zaWdodFJ1bGVSZXBvcnQpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBHZXRNZXRyaWNEYXRhQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiR3Jhbml0ZVNlcnZpY2VWZXJzaW9uMjAxMDA4MDFcIiwgXCJHZXRNZXRyaWNEYXRhXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaENsaWVudFwiLCBcIkdldE1ldHJpY0RhdGFDb21tYW5kXCIpXG4gICAgLnNjKEdldE1ldHJpY0RhdGEpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBHZXRNZXRyaWNTdGF0aXN0aWNzQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiR3Jhbml0ZVNlcnZpY2VWZXJzaW9uMjAxMDA4MDFcIiwgXCJHZXRNZXRyaWNTdGF0aXN0aWNzXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaENsaWVudFwiLCBcIkdldE1ldHJpY1N0YXRpc3RpY3NDb21tYW5kXCIpXG4gICAgLnNjKEdldE1ldHJpY1N0YXRpc3RpY3MpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBHZXRNZXRyaWNTdHJlYW1Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJHcmFuaXRlU2VydmljZVZlcnNpb24yMDEwMDgwMVwiLCBcIkdldE1ldHJpY1N0cmVhbVwiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hDbGllbnRcIiwgXCJHZXRNZXRyaWNTdHJlYW1Db21tYW5kXCIpXG4gICAgLnNjKEdldE1ldHJpY1N0cmVhbSlcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIEdldE1ldHJpY1dpZGdldEltYWdlQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiR3Jhbml0ZVNlcnZpY2VWZXJzaW9uMjAxMDA4MDFcIiwgXCJHZXRNZXRyaWNXaWRnZXRJbWFnZVwiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hDbGllbnRcIiwgXCJHZXRNZXRyaWNXaWRnZXRJbWFnZUNvbW1hbmRcIilcbiAgICAuc2MoR2V0TWV0cmljV2lkZ2V0SW1hZ2UpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBMaXN0RGFzaGJvYXJkc0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkdyYW5pdGVTZXJ2aWNlVmVyc2lvbjIwMTAwODAxXCIsIFwiTGlzdERhc2hib2FyZHNcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoQ2xpZW50XCIsIFwiTGlzdERhc2hib2FyZHNDb21tYW5kXCIpXG4gICAgLnNjKExpc3REYXNoYm9hcmRzKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgTGlzdE1hbmFnZWRJbnNpZ2h0UnVsZXNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJHcmFuaXRlU2VydmljZVZlcnNpb24yMDEwMDgwMVwiLCBcIkxpc3RNYW5hZ2VkSW5zaWdodFJ1bGVzXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaENsaWVudFwiLCBcIkxpc3RNYW5hZ2VkSW5zaWdodFJ1bGVzQ29tbWFuZFwiKVxuICAgIC5zYyhMaXN0TWFuYWdlZEluc2lnaHRSdWxlcylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIExpc3RNZXRyaWNzQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiR3Jhbml0ZVNlcnZpY2VWZXJzaW9uMjAxMDA4MDFcIiwgXCJMaXN0TWV0cmljc1wiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hDbGllbnRcIiwgXCJMaXN0TWV0cmljc0NvbW1hbmRcIilcbiAgICAuc2MoTGlzdE1ldHJpY3MpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBMaXN0TWV0cmljU3RyZWFtc0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkdyYW5pdGVTZXJ2aWNlVmVyc2lvbjIwMTAwODAxXCIsIFwiTGlzdE1ldHJpY1N0cmVhbXNcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoQ2xpZW50XCIsIFwiTGlzdE1ldHJpY1N0cmVhbXNDb21tYW5kXCIpXG4gICAgLnNjKExpc3RNZXRyaWNTdHJlYW1zKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkdyYW5pdGVTZXJ2aWNlVmVyc2lvbjIwMTAwODAxXCIsIFwiTGlzdFRhZ3NGb3JSZXNvdXJjZVwiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hDbGllbnRcIiwgXCJMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZFwiKVxuICAgIC5zYyhMaXN0VGFnc0ZvclJlc291cmNlKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgUHV0QW5vbWFseURldGVjdG9yQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiR3Jhbml0ZVNlcnZpY2VWZXJzaW9uMjAxMDA4MDFcIiwgXCJQdXRBbm9tYWx5RGV0ZWN0b3JcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoQ2xpZW50XCIsIFwiUHV0QW5vbWFseURldGVjdG9yQ29tbWFuZFwiKVxuICAgIC5zYyhQdXRBbm9tYWx5RGV0ZWN0b3IpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBQdXRDb21wb3NpdGVBbGFybUNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkdyYW5pdGVTZXJ2aWNlVmVyc2lvbjIwMTAwODAxXCIsIFwiUHV0Q29tcG9zaXRlQWxhcm1cIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoQ2xpZW50XCIsIFwiUHV0Q29tcG9zaXRlQWxhcm1Db21tYW5kXCIpXG4gICAgLnNjKFB1dENvbXBvc2l0ZUFsYXJtKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgUHV0RGFzaGJvYXJkQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiR3Jhbml0ZVNlcnZpY2VWZXJzaW9uMjAxMDA4MDFcIiwgXCJQdXREYXNoYm9hcmRcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoQ2xpZW50XCIsIFwiUHV0RGFzaGJvYXJkQ29tbWFuZFwiKVxuICAgIC5zYyhQdXREYXNoYm9hcmQpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBQdXRJbnNpZ2h0UnVsZUNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkdyYW5pdGVTZXJ2aWNlVmVyc2lvbjIwMTAwODAxXCIsIFwiUHV0SW5zaWdodFJ1bGVcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoQ2xpZW50XCIsIFwiUHV0SW5zaWdodFJ1bGVDb21tYW5kXCIpXG4gICAgLnNjKFB1dEluc2lnaHRSdWxlKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgUHV0TWFuYWdlZEluc2lnaHRSdWxlc0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkdyYW5pdGVTZXJ2aWNlVmVyc2lvbjIwMTAwODAxXCIsIFwiUHV0TWFuYWdlZEluc2lnaHRSdWxlc1wiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hDbGllbnRcIiwgXCJQdXRNYW5hZ2VkSW5zaWdodFJ1bGVzQ29tbWFuZFwiKVxuICAgIC5zYyhQdXRNYW5hZ2VkSW5zaWdodFJ1bGVzKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgUHV0TWV0cmljQWxhcm1Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJHcmFuaXRlU2VydmljZVZlcnNpb24yMDEwMDgwMVwiLCBcIlB1dE1ldHJpY0FsYXJtXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaENsaWVudFwiLCBcIlB1dE1ldHJpY0FsYXJtQ29tbWFuZFwiKVxuICAgIC5zYyhQdXRNZXRyaWNBbGFybSlcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFB1dE1ldHJpY0RhdGFDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgICAgbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKSxcbiAgICAgICAgbWlkZGxld2FyZUNvbXByZXNzaW9uLmdldENvbXByZXNzaW9uUGx1Z2luKGNvbmZpZywge1xuICAgICAgICAgICAgZW5jb2RpbmdzOiBbXCJnemlwXCJdLFxuICAgICAgICB9KSxcbiAgICBdO1xufSlcbiAgICAucyhcIkdyYW5pdGVTZXJ2aWNlVmVyc2lvbjIwMTAwODAxXCIsIFwiUHV0TWV0cmljRGF0YVwiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hDbGllbnRcIiwgXCJQdXRNZXRyaWNEYXRhQ29tbWFuZFwiKVxuICAgIC5zYyhQdXRNZXRyaWNEYXRhKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgUHV0TWV0cmljU3RyZWFtQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiR3Jhbml0ZVNlcnZpY2VWZXJzaW9uMjAxMDA4MDFcIiwgXCJQdXRNZXRyaWNTdHJlYW1cIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoQ2xpZW50XCIsIFwiUHV0TWV0cmljU3RyZWFtQ29tbWFuZFwiKVxuICAgIC5zYyhQdXRNZXRyaWNTdHJlYW0pXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBTZXRBbGFybVN0YXRlQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiR3Jhbml0ZVNlcnZpY2VWZXJzaW9uMjAxMDA4MDFcIiwgXCJTZXRBbGFybVN0YXRlXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaENsaWVudFwiLCBcIlNldEFsYXJtU3RhdGVDb21tYW5kXCIpXG4gICAgLnNjKFNldEFsYXJtU3RhdGUpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBTdGFydE1ldHJpY1N0cmVhbXNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJHcmFuaXRlU2VydmljZVZlcnNpb24yMDEwMDgwMVwiLCBcIlN0YXJ0TWV0cmljU3RyZWFtc1wiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hDbGllbnRcIiwgXCJTdGFydE1ldHJpY1N0cmVhbXNDb21tYW5kXCIpXG4gICAgLnNjKFN0YXJ0TWV0cmljU3RyZWFtcylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFN0b3BNZXRyaWNTdHJlYW1zQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiR3Jhbml0ZVNlcnZpY2VWZXJzaW9uMjAxMDA4MDFcIiwgXCJTdG9wTWV0cmljU3RyZWFtc1wiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hDbGllbnRcIiwgXCJTdG9wTWV0cmljU3RyZWFtc0NvbW1hbmRcIilcbiAgICAuc2MoU3RvcE1ldHJpY1N0cmVhbXMpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBUYWdSZXNvdXJjZUNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkdyYW5pdGVTZXJ2aWNlVmVyc2lvbjIwMTAwODAxXCIsIFwiVGFnUmVzb3VyY2VcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoQ2xpZW50XCIsIFwiVGFnUmVzb3VyY2VDb21tYW5kXCIpXG4gICAgLnNjKFRhZ1Jlc291cmNlKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgVW50YWdSZXNvdXJjZUNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkdyYW5pdGVTZXJ2aWNlVmVyc2lvbjIwMTAwODAxXCIsIFwiVW50YWdSZXNvdXJjZVwiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hDbGllbnRcIiwgXCJVbnRhZ1Jlc291cmNlQ29tbWFuZFwiKVxuICAgIC5zYyhVbnRhZ1Jlc291cmNlKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY29uc3QgY29tbWFuZHMgPSB7XG4gICAgRGVsZXRlQWxhcm1zQ29tbWFuZCxcbiAgICBEZWxldGVBbm9tYWx5RGV0ZWN0b3JDb21tYW5kLFxuICAgIERlbGV0ZURhc2hib2FyZHNDb21tYW5kLFxuICAgIERlbGV0ZUluc2lnaHRSdWxlc0NvbW1hbmQsXG4gICAgRGVsZXRlTWV0cmljU3RyZWFtQ29tbWFuZCxcbiAgICBEZXNjcmliZUFsYXJtQ29udHJpYnV0b3JzQ29tbWFuZCxcbiAgICBEZXNjcmliZUFsYXJtSGlzdG9yeUNvbW1hbmQsXG4gICAgRGVzY3JpYmVBbGFybXNDb21tYW5kLFxuICAgIERlc2NyaWJlQWxhcm1zRm9yTWV0cmljQ29tbWFuZCxcbiAgICBEZXNjcmliZUFub21hbHlEZXRlY3RvcnNDb21tYW5kLFxuICAgIERlc2NyaWJlSW5zaWdodFJ1bGVzQ29tbWFuZCxcbiAgICBEaXNhYmxlQWxhcm1BY3Rpb25zQ29tbWFuZCxcbiAgICBEaXNhYmxlSW5zaWdodFJ1bGVzQ29tbWFuZCxcbiAgICBFbmFibGVBbGFybUFjdGlvbnNDb21tYW5kLFxuICAgIEVuYWJsZUluc2lnaHRSdWxlc0NvbW1hbmQsXG4gICAgR2V0RGFzaGJvYXJkQ29tbWFuZCxcbiAgICBHZXRJbnNpZ2h0UnVsZVJlcG9ydENvbW1hbmQsXG4gICAgR2V0TWV0cmljRGF0YUNvbW1hbmQsXG4gICAgR2V0TWV0cmljU3RhdGlzdGljc0NvbW1hbmQsXG4gICAgR2V0TWV0cmljU3RyZWFtQ29tbWFuZCxcbiAgICBHZXRNZXRyaWNXaWRnZXRJbWFnZUNvbW1hbmQsXG4gICAgTGlzdERhc2hib2FyZHNDb21tYW5kLFxuICAgIExpc3RNYW5hZ2VkSW5zaWdodFJ1bGVzQ29tbWFuZCxcbiAgICBMaXN0TWV0cmljc0NvbW1hbmQsXG4gICAgTGlzdE1ldHJpY1N0cmVhbXNDb21tYW5kLFxuICAgIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kLFxuICAgIFB1dEFub21hbHlEZXRlY3RvckNvbW1hbmQsXG4gICAgUHV0Q29tcG9zaXRlQWxhcm1Db21tYW5kLFxuICAgIFB1dERhc2hib2FyZENvbW1hbmQsXG4gICAgUHV0SW5zaWdodFJ1bGVDb21tYW5kLFxuICAgIFB1dE1hbmFnZWRJbnNpZ2h0UnVsZXNDb21tYW5kLFxuICAgIFB1dE1ldHJpY0FsYXJtQ29tbWFuZCxcbiAgICBQdXRNZXRyaWNEYXRhQ29tbWFuZCxcbiAgICBQdXRNZXRyaWNTdHJlYW1Db21tYW5kLFxuICAgIFNldEFsYXJtU3RhdGVDb21tYW5kLFxuICAgIFN0YXJ0TWV0cmljU3RyZWFtc0NvbW1hbmQsXG4gICAgU3RvcE1ldHJpY1N0cmVhbXNDb21tYW5kLFxuICAgIFRhZ1Jlc291cmNlQ29tbWFuZCxcbiAgICBVbnRhZ1Jlc291cmNlQ29tbWFuZCxcbn07XG5jbGFzcyBDbG91ZFdhdGNoIGV4dGVuZHMgQ2xvdWRXYXRjaENsaWVudCB7XG59XG5zbWl0aHlDbGllbnQuY3JlYXRlQWdncmVnYXRlZENsaWVudChjb21tYW5kcywgQ2xvdWRXYXRjaCk7XG5cbmNvbnN0IHBhZ2luYXRlRGVzY3JpYmVBbGFybUhpc3RvcnkgPSBjb3JlLmNyZWF0ZVBhZ2luYXRvcihDbG91ZFdhdGNoQ2xpZW50LCBEZXNjcmliZUFsYXJtSGlzdG9yeUNvbW1hbmQsIFwiTmV4dFRva2VuXCIsIFwiTmV4dFRva2VuXCIsIFwiTWF4UmVjb3Jkc1wiKTtcblxuY29uc3QgcGFnaW5hdGVEZXNjcmliZUFsYXJtcyA9IGNvcmUuY3JlYXRlUGFnaW5hdG9yKENsb3VkV2F0Y2hDbGllbnQsIERlc2NyaWJlQWxhcm1zQ29tbWFuZCwgXCJOZXh0VG9rZW5cIiwgXCJOZXh0VG9rZW5cIiwgXCJNYXhSZWNvcmRzXCIpO1xuXG5jb25zdCBwYWdpbmF0ZURlc2NyaWJlQW5vbWFseURldGVjdG9ycyA9IGNvcmUuY3JlYXRlUGFnaW5hdG9yKENsb3VkV2F0Y2hDbGllbnQsIERlc2NyaWJlQW5vbWFseURldGVjdG9yc0NvbW1hbmQsIFwiTmV4dFRva2VuXCIsIFwiTmV4dFRva2VuXCIsIFwiTWF4UmVzdWx0c1wiKTtcblxuY29uc3QgcGFnaW5hdGVEZXNjcmliZUluc2lnaHRSdWxlcyA9IGNvcmUuY3JlYXRlUGFnaW5hdG9yKENsb3VkV2F0Y2hDbGllbnQsIERlc2NyaWJlSW5zaWdodFJ1bGVzQ29tbWFuZCwgXCJOZXh0VG9rZW5cIiwgXCJOZXh0VG9rZW5cIiwgXCJNYXhSZXN1bHRzXCIpO1xuXG5jb25zdCBwYWdpbmF0ZUdldE1ldHJpY0RhdGEgPSBjb3JlLmNyZWF0ZVBhZ2luYXRvcihDbG91ZFdhdGNoQ2xpZW50LCBHZXRNZXRyaWNEYXRhQ29tbWFuZCwgXCJOZXh0VG9rZW5cIiwgXCJOZXh0VG9rZW5cIiwgXCJNYXhEYXRhcG9pbnRzXCIpO1xuXG5jb25zdCBwYWdpbmF0ZUxpc3REYXNoYm9hcmRzID0gY29yZS5jcmVhdGVQYWdpbmF0b3IoQ2xvdWRXYXRjaENsaWVudCwgTGlzdERhc2hib2FyZHNDb21tYW5kLCBcIk5leHRUb2tlblwiLCBcIk5leHRUb2tlblwiLCBcIlwiKTtcblxuY29uc3QgcGFnaW5hdGVMaXN0TWFuYWdlZEluc2lnaHRSdWxlcyA9IGNvcmUuY3JlYXRlUGFnaW5hdG9yKENsb3VkV2F0Y2hDbGllbnQsIExpc3RNYW5hZ2VkSW5zaWdodFJ1bGVzQ29tbWFuZCwgXCJOZXh0VG9rZW5cIiwgXCJOZXh0VG9rZW5cIiwgXCJNYXhSZXN1bHRzXCIpO1xuXG5jb25zdCBwYWdpbmF0ZUxpc3RNZXRyaWNTdHJlYW1zID0gY29yZS5jcmVhdGVQYWdpbmF0b3IoQ2xvdWRXYXRjaENsaWVudCwgTGlzdE1ldHJpY1N0cmVhbXNDb21tYW5kLCBcIk5leHRUb2tlblwiLCBcIk5leHRUb2tlblwiLCBcIk1heFJlc3VsdHNcIik7XG5cbmNvbnN0IHBhZ2luYXRlTGlzdE1ldHJpY3MgPSBjb3JlLmNyZWF0ZVBhZ2luYXRvcihDbG91ZFdhdGNoQ2xpZW50LCBMaXN0TWV0cmljc0NvbW1hbmQsIFwiTmV4dFRva2VuXCIsIFwiTmV4dFRva2VuXCIsIFwiXCIpO1xuXG5jb25zdCBjaGVja1N0YXRlJDEgPSBhc3luYyAoY2xpZW50LCBpbnB1dCkgPT4ge1xuICAgIGxldCByZWFzb247XG4gICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgY2xpZW50LnNlbmQobmV3IERlc2NyaWJlQWxhcm1zQ29tbWFuZChpbnB1dCkpO1xuICAgICAgICByZWFzb24gPSByZXN1bHQ7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByZXR1cm5Db21wYXJhdG9yID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZsYXRfMSA9IFtdLmNvbmNhdCguLi5yZXN1bHQuTWV0cmljQWxhcm1zKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmxhdF8xLmxlbmd0aCA+IDAuMDtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAocmV0dXJuQ29tcGFyYXRvcigpID09IHRydWUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBzdGF0ZTogdXRpbFdhaXRlci5XYWl0ZXJTdGF0ZS5TVUNDRVNTLCByZWFzb24gfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkgeyB9XG4gICAgfVxuICAgIGNhdGNoIChleGNlcHRpb24pIHtcbiAgICAgICAgcmVhc29uID0gZXhjZXB0aW9uO1xuICAgIH1cbiAgICByZXR1cm4geyBzdGF0ZTogdXRpbFdhaXRlci5XYWl0ZXJTdGF0ZS5SRVRSWSwgcmVhc29uIH07XG59O1xuY29uc3Qgd2FpdEZvckFsYXJtRXhpc3RzID0gYXN5bmMgKHBhcmFtcywgaW5wdXQpID0+IHtcbiAgICBjb25zdCBzZXJ2aWNlRGVmYXVsdHMgPSB7IG1pbkRlbGF5OiA1LCBtYXhEZWxheTogMTIwIH07XG4gICAgcmV0dXJuIHV0aWxXYWl0ZXIuY3JlYXRlV2FpdGVyKHsgLi4uc2VydmljZURlZmF1bHRzLCAuLi5wYXJhbXMgfSwgaW5wdXQsIGNoZWNrU3RhdGUkMSk7XG59O1xuY29uc3Qgd2FpdFVudGlsQWxhcm1FeGlzdHMgPSBhc3luYyAocGFyYW1zLCBpbnB1dCkgPT4ge1xuICAgIGNvbnN0IHNlcnZpY2VEZWZhdWx0cyA9IHsgbWluRGVsYXk6IDUsIG1heERlbGF5OiAxMjAgfTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB1dGlsV2FpdGVyLmNyZWF0ZVdhaXRlcih7IC4uLnNlcnZpY2VEZWZhdWx0cywgLi4ucGFyYW1zIH0sIGlucHV0LCBjaGVja1N0YXRlJDEpO1xuICAgIHJldHVybiB1dGlsV2FpdGVyLmNoZWNrRXhjZXB0aW9ucyhyZXN1bHQpO1xufTtcblxuY29uc3QgY2hlY2tTdGF0ZSA9IGFzeW5jIChjbGllbnQsIGlucHV0KSA9PiB7XG4gICAgbGV0IHJlYXNvbjtcbiAgICB0cnkge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBjbGllbnQuc2VuZChuZXcgRGVzY3JpYmVBbGFybXNDb21tYW5kKGlucHV0KSk7XG4gICAgICAgIHJlYXNvbiA9IHJlc3VsdDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJldHVybkNvbXBhcmF0b3IgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZmxhdF8xID0gW10uY29uY2F0KC4uLnJlc3VsdC5Db21wb3NpdGVBbGFybXMpO1xuICAgICAgICAgICAgICAgIHJldHVybiBmbGF0XzEubGVuZ3RoID4gMC4wO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmIChyZXR1cm5Db21wYXJhdG9yKCkgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IHN0YXRlOiB1dGlsV2FpdGVyLldhaXRlclN0YXRlLlNVQ0NFU1MsIHJlYXNvbiB9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7IH1cbiAgICB9XG4gICAgY2F0Y2ggKGV4Y2VwdGlvbikge1xuICAgICAgICByZWFzb24gPSBleGNlcHRpb247XG4gICAgfVxuICAgIHJldHVybiB7IHN0YXRlOiB1dGlsV2FpdGVyLldhaXRlclN0YXRlLlJFVFJZLCByZWFzb24gfTtcbn07XG5jb25zdCB3YWl0Rm9yQ29tcG9zaXRlQWxhcm1FeGlzdHMgPSBhc3luYyAocGFyYW1zLCBpbnB1dCkgPT4ge1xuICAgIGNvbnN0IHNlcnZpY2VEZWZhdWx0cyA9IHsgbWluRGVsYXk6IDUsIG1heERlbGF5OiAxMjAgfTtcbiAgICByZXR1cm4gdXRpbFdhaXRlci5jcmVhdGVXYWl0ZXIoeyAuLi5zZXJ2aWNlRGVmYXVsdHMsIC4uLnBhcmFtcyB9LCBpbnB1dCwgY2hlY2tTdGF0ZSk7XG59O1xuY29uc3Qgd2FpdFVudGlsQ29tcG9zaXRlQWxhcm1FeGlzdHMgPSBhc3luYyAocGFyYW1zLCBpbnB1dCkgPT4ge1xuICAgIGNvbnN0IHNlcnZpY2VEZWZhdWx0cyA9IHsgbWluRGVsYXk6IDUsIG1heERlbGF5OiAxMjAgfTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB1dGlsV2FpdGVyLmNyZWF0ZVdhaXRlcih7IC4uLnNlcnZpY2VEZWZhdWx0cywgLi4ucGFyYW1zIH0sIGlucHV0LCBjaGVja1N0YXRlKTtcbiAgICByZXR1cm4gdXRpbFdhaXRlci5jaGVja0V4Y2VwdGlvbnMocmVzdWx0KTtcbn07XG5cbmNvbnN0IEFjdGlvbnNTdXBwcmVzc2VkQnkgPSB7XG4gICAgQWxhcm06IFwiQWxhcm1cIixcbiAgICBFeHRlbnNpb25QZXJpb2Q6IFwiRXh0ZW5zaW9uUGVyaW9kXCIsXG4gICAgV2FpdFBlcmlvZDogXCJXYWl0UGVyaW9kXCIsXG59O1xuY29uc3QgQWxhcm1UeXBlID0ge1xuICAgIENvbXBvc2l0ZUFsYXJtOiBcIkNvbXBvc2l0ZUFsYXJtXCIsXG4gICAgTWV0cmljQWxhcm06IFwiTWV0cmljQWxhcm1cIixcbn07XG5jb25zdCBIaXN0b3J5SXRlbVR5cGUgPSB7XG4gICAgQWN0aW9uOiBcIkFjdGlvblwiLFxuICAgIEFsYXJtQ29udHJpYnV0b3JBY3Rpb246IFwiQWxhcm1Db250cmlidXRvckFjdGlvblwiLFxuICAgIEFsYXJtQ29udHJpYnV0b3JTdGF0ZVVwZGF0ZTogXCJBbGFybUNvbnRyaWJ1dG9yU3RhdGVVcGRhdGVcIixcbiAgICBDb25maWd1cmF0aW9uVXBkYXRlOiBcIkNvbmZpZ3VyYXRpb25VcGRhdGVcIixcbiAgICBTdGF0ZVVwZGF0ZTogXCJTdGF0ZVVwZGF0ZVwiLFxufTtcbmNvbnN0IFN0YW5kYXJkVW5pdCA9IHtcbiAgICBCaXRzOiBcIkJpdHNcIixcbiAgICBCaXRzX1NlY29uZDogXCJCaXRzL1NlY29uZFwiLFxuICAgIEJ5dGVzOiBcIkJ5dGVzXCIsXG4gICAgQnl0ZXNfU2Vjb25kOiBcIkJ5dGVzL1NlY29uZFwiLFxuICAgIENvdW50OiBcIkNvdW50XCIsXG4gICAgQ291bnRfU2Vjb25kOiBcIkNvdW50L1NlY29uZFwiLFxuICAgIEdpZ2FiaXRzOiBcIkdpZ2FiaXRzXCIsXG4gICAgR2lnYWJpdHNfU2Vjb25kOiBcIkdpZ2FiaXRzL1NlY29uZFwiLFxuICAgIEdpZ2FieXRlczogXCJHaWdhYnl0ZXNcIixcbiAgICBHaWdhYnl0ZXNfU2Vjb25kOiBcIkdpZ2FieXRlcy9TZWNvbmRcIixcbiAgICBLaWxvYml0czogXCJLaWxvYml0c1wiLFxuICAgIEtpbG9iaXRzX1NlY29uZDogXCJLaWxvYml0cy9TZWNvbmRcIixcbiAgICBLaWxvYnl0ZXM6IFwiS2lsb2J5dGVzXCIsXG4gICAgS2lsb2J5dGVzX1NlY29uZDogXCJLaWxvYnl0ZXMvU2Vjb25kXCIsXG4gICAgTWVnYWJpdHM6IFwiTWVnYWJpdHNcIixcbiAgICBNZWdhYml0c19TZWNvbmQ6IFwiTWVnYWJpdHMvU2Vjb25kXCIsXG4gICAgTWVnYWJ5dGVzOiBcIk1lZ2FieXRlc1wiLFxuICAgIE1lZ2FieXRlc19TZWNvbmQ6IFwiTWVnYWJ5dGVzL1NlY29uZFwiLFxuICAgIE1pY3Jvc2Vjb25kczogXCJNaWNyb3NlY29uZHNcIixcbiAgICBNaWxsaXNlY29uZHM6IFwiTWlsbGlzZWNvbmRzXCIsXG4gICAgTm9uZTogXCJOb25lXCIsXG4gICAgUGVyY2VudDogXCJQZXJjZW50XCIsXG4gICAgU2Vjb25kczogXCJTZWNvbmRzXCIsXG4gICAgVGVyYWJpdHM6IFwiVGVyYWJpdHNcIixcbiAgICBUZXJhYml0c19TZWNvbmQ6IFwiVGVyYWJpdHMvU2Vjb25kXCIsXG4gICAgVGVyYWJ5dGVzOiBcIlRlcmFieXRlc1wiLFxuICAgIFRlcmFieXRlc19TZWNvbmQ6IFwiVGVyYWJ5dGVzL1NlY29uZFwiLFxufTtcbmNvbnN0IEFub21hbHlEZXRlY3RvclN0YXRlVmFsdWUgPSB7XG4gICAgUEVORElOR19UUkFJTklORzogXCJQRU5ESU5HX1RSQUlOSU5HXCIsXG4gICAgVFJBSU5FRDogXCJUUkFJTkVEXCIsXG4gICAgVFJBSU5FRF9JTlNVRkZJQ0lFTlRfREFUQTogXCJUUkFJTkVEX0lOU1VGRklDSUVOVF9EQVRBXCIsXG59O1xuY29uc3QgQW5vbWFseURldGVjdG9yVHlwZSA9IHtcbiAgICBNRVRSSUNfTUFUSDogXCJNRVRSSUNfTUFUSFwiLFxuICAgIFNJTkdMRV9NRVRSSUM6IFwiU0lOR0xFX01FVFJJQ1wiLFxufTtcbmNvbnN0IENvbXBhcmlzb25PcGVyYXRvciA9IHtcbiAgICBHcmVhdGVyVGhhbk9yRXF1YWxUb1RocmVzaG9sZDogXCJHcmVhdGVyVGhhbk9yRXF1YWxUb1RocmVzaG9sZFwiLFxuICAgIEdyZWF0ZXJUaGFuVGhyZXNob2xkOiBcIkdyZWF0ZXJUaGFuVGhyZXNob2xkXCIsXG4gICAgR3JlYXRlclRoYW5VcHBlclRocmVzaG9sZDogXCJHcmVhdGVyVGhhblVwcGVyVGhyZXNob2xkXCIsXG4gICAgTGVzc1RoYW5Mb3dlck9yR3JlYXRlclRoYW5VcHBlclRocmVzaG9sZDogXCJMZXNzVGhhbkxvd2VyT3JHcmVhdGVyVGhhblVwcGVyVGhyZXNob2xkXCIsXG4gICAgTGVzc1RoYW5Mb3dlclRocmVzaG9sZDogXCJMZXNzVGhhbkxvd2VyVGhyZXNob2xkXCIsXG4gICAgTGVzc1RoYW5PckVxdWFsVG9UaHJlc2hvbGQ6IFwiTGVzc1RoYW5PckVxdWFsVG9UaHJlc2hvbGRcIixcbiAgICBMZXNzVGhhblRocmVzaG9sZDogXCJMZXNzVGhhblRocmVzaG9sZFwiLFxufTtcbmNvbnN0IFN0YXRlVmFsdWUgPSB7XG4gICAgQUxBUk06IFwiQUxBUk1cIixcbiAgICBJTlNVRkZJQ0lFTlRfREFUQTogXCJJTlNVRkZJQ0lFTlRfREFUQVwiLFxuICAgIE9LOiBcIk9LXCIsXG59O1xuY29uc3QgU2NhbkJ5ID0ge1xuICAgIFRJTUVTVEFNUF9BU0NFTkRJTkc6IFwiVGltZXN0YW1wQXNjZW5kaW5nXCIsXG4gICAgVElNRVNUQU1QX0RFU0NFTkRJTkc6IFwiVGltZXN0YW1wRGVzY2VuZGluZ1wiLFxufTtcbmNvbnN0IEV2YWx1YXRpb25TdGF0ZSA9IHtcbiAgICBQQVJUSUFMX0RBVEE6IFwiUEFSVElBTF9EQVRBXCIsXG59O1xuY29uc3QgU3RhdGlzdGljID0ge1xuICAgIEF2ZXJhZ2U6IFwiQXZlcmFnZVwiLFxuICAgIE1heGltdW06IFwiTWF4aW11bVwiLFxuICAgIE1pbmltdW06IFwiTWluaW11bVwiLFxuICAgIFNhbXBsZUNvdW50OiBcIlNhbXBsZUNvdW50XCIsXG4gICAgU3VtOiBcIlN1bVwiLFxufTtcbmNvbnN0IFN0YXR1c0NvZGUgPSB7XG4gICAgQ09NUExFVEU6IFwiQ29tcGxldGVcIixcbiAgICBGT1JCSURERU46IFwiRm9yYmlkZGVuXCIsXG4gICAgSU5URVJOQUxfRVJST1I6IFwiSW50ZXJuYWxFcnJvclwiLFxuICAgIFBBUlRJQUxfREFUQTogXCJQYXJ0aWFsRGF0YVwiLFxufTtcbmNvbnN0IE1ldHJpY1N0cmVhbU91dHB1dEZvcm1hdCA9IHtcbiAgICBKU09OOiBcImpzb25cIixcbiAgICBPUEVOX1RFTEVNRVRSWV8wXzc6IFwib3BlbnRlbGVtZXRyeTAuN1wiLFxuICAgIE9QRU5fVEVMRU1FVFJZXzFfMDogXCJvcGVudGVsZW1ldHJ5MS4wXCIsXG59O1xuY29uc3QgUmVjZW50bHlBY3RpdmUgPSB7XG4gICAgUFQzSDogXCJQVDNIXCIsXG59O1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCIkQ29tbWFuZFwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHNtaXRoeUNsaWVudC5Db21tYW5kOyB9XG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fQ2xpZW50XCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gc21pdGh5Q2xpZW50LkNsaWVudDsgfVxufSk7XG5leHBvcnRzLkFjdGlvbnNTdXBwcmVzc2VkQnkgPSBBY3Rpb25zU3VwcHJlc3NlZEJ5O1xuZXhwb3J0cy5BbGFybVR5cGUgPSBBbGFybVR5cGU7XG5leHBvcnRzLkFub21hbHlEZXRlY3RvclN0YXRlVmFsdWUgPSBBbm9tYWx5RGV0ZWN0b3JTdGF0ZVZhbHVlO1xuZXhwb3J0cy5Bbm9tYWx5RGV0ZWN0b3JUeXBlID0gQW5vbWFseURldGVjdG9yVHlwZTtcbmV4cG9ydHMuQ2xvdWRXYXRjaCA9IENsb3VkV2F0Y2g7XG5leHBvcnRzLkNsb3VkV2F0Y2hDbGllbnQgPSBDbG91ZFdhdGNoQ2xpZW50O1xuZXhwb3J0cy5DbG91ZFdhdGNoU2VydmljZUV4Y2VwdGlvbiA9IENsb3VkV2F0Y2hTZXJ2aWNlRXhjZXB0aW9uJDE7XG5leHBvcnRzLkNvbXBhcmlzb25PcGVyYXRvciA9IENvbXBhcmlzb25PcGVyYXRvcjtcbmV4cG9ydHMuQ29uY3VycmVudE1vZGlmaWNhdGlvbkV4Y2VwdGlvbiA9IENvbmN1cnJlbnRNb2RpZmljYXRpb25FeGNlcHRpb24kMTtcbmV4cG9ydHMuQ29uZmxpY3RFeGNlcHRpb24gPSBDb25mbGljdEV4Y2VwdGlvbiQxO1xuZXhwb3J0cy5EYXNoYm9hcmRJbnZhbGlkSW5wdXRFcnJvciA9IERhc2hib2FyZEludmFsaWRJbnB1dEVycm9yJDE7XG5leHBvcnRzLkRhc2hib2FyZE5vdEZvdW5kRXJyb3IgPSBEYXNoYm9hcmROb3RGb3VuZEVycm9yJDE7XG5leHBvcnRzLkRlbGV0ZUFsYXJtc0NvbW1hbmQgPSBEZWxldGVBbGFybXNDb21tYW5kO1xuZXhwb3J0cy5EZWxldGVBbm9tYWx5RGV0ZWN0b3JDb21tYW5kID0gRGVsZXRlQW5vbWFseURldGVjdG9yQ29tbWFuZDtcbmV4cG9ydHMuRGVsZXRlRGFzaGJvYXJkc0NvbW1hbmQgPSBEZWxldGVEYXNoYm9hcmRzQ29tbWFuZDtcbmV4cG9ydHMuRGVsZXRlSW5zaWdodFJ1bGVzQ29tbWFuZCA9IERlbGV0ZUluc2lnaHRSdWxlc0NvbW1hbmQ7XG5leHBvcnRzLkRlbGV0ZU1ldHJpY1N0cmVhbUNvbW1hbmQgPSBEZWxldGVNZXRyaWNTdHJlYW1Db21tYW5kO1xuZXhwb3J0cy5EZXNjcmliZUFsYXJtQ29udHJpYnV0b3JzQ29tbWFuZCA9IERlc2NyaWJlQWxhcm1Db250cmlidXRvcnNDb21tYW5kO1xuZXhwb3J0cy5EZXNjcmliZUFsYXJtSGlzdG9yeUNvbW1hbmQgPSBEZXNjcmliZUFsYXJtSGlzdG9yeUNvbW1hbmQ7XG5leHBvcnRzLkRlc2NyaWJlQWxhcm1zQ29tbWFuZCA9IERlc2NyaWJlQWxhcm1zQ29tbWFuZDtcbmV4cG9ydHMuRGVzY3JpYmVBbGFybXNGb3JNZXRyaWNDb21tYW5kID0gRGVzY3JpYmVBbGFybXNGb3JNZXRyaWNDb21tYW5kO1xuZXhwb3J0cy5EZXNjcmliZUFub21hbHlEZXRlY3RvcnNDb21tYW5kID0gRGVzY3JpYmVBbm9tYWx5RGV0ZWN0b3JzQ29tbWFuZDtcbmV4cG9ydHMuRGVzY3JpYmVJbnNpZ2h0UnVsZXNDb21tYW5kID0gRGVzY3JpYmVJbnNpZ2h0UnVsZXNDb21tYW5kO1xuZXhwb3J0cy5EaXNhYmxlQWxhcm1BY3Rpb25zQ29tbWFuZCA9IERpc2FibGVBbGFybUFjdGlvbnNDb21tYW5kO1xuZXhwb3J0cy5EaXNhYmxlSW5zaWdodFJ1bGVzQ29tbWFuZCA9IERpc2FibGVJbnNpZ2h0UnVsZXNDb21tYW5kO1xuZXhwb3J0cy5FbmFibGVBbGFybUFjdGlvbnNDb21tYW5kID0gRW5hYmxlQWxhcm1BY3Rpb25zQ29tbWFuZDtcbmV4cG9ydHMuRW5hYmxlSW5zaWdodFJ1bGVzQ29tbWFuZCA9IEVuYWJsZUluc2lnaHRSdWxlc0NvbW1hbmQ7XG5leHBvcnRzLkV2YWx1YXRpb25TdGF0ZSA9IEV2YWx1YXRpb25TdGF0ZTtcbmV4cG9ydHMuR2V0RGFzaGJvYXJkQ29tbWFuZCA9IEdldERhc2hib2FyZENvbW1hbmQ7XG5leHBvcnRzLkdldEluc2lnaHRSdWxlUmVwb3J0Q29tbWFuZCA9IEdldEluc2lnaHRSdWxlUmVwb3J0Q29tbWFuZDtcbmV4cG9ydHMuR2V0TWV0cmljRGF0YUNvbW1hbmQgPSBHZXRNZXRyaWNEYXRhQ29tbWFuZDtcbmV4cG9ydHMuR2V0TWV0cmljU3RhdGlzdGljc0NvbW1hbmQgPSBHZXRNZXRyaWNTdGF0aXN0aWNzQ29tbWFuZDtcbmV4cG9ydHMuR2V0TWV0cmljU3RyZWFtQ29tbWFuZCA9IEdldE1ldHJpY1N0cmVhbUNvbW1hbmQ7XG5leHBvcnRzLkdldE1ldHJpY1dpZGdldEltYWdlQ29tbWFuZCA9IEdldE1ldHJpY1dpZGdldEltYWdlQ29tbWFuZDtcbmV4cG9ydHMuSGlzdG9yeUl0ZW1UeXBlID0gSGlzdG9yeUl0ZW1UeXBlO1xuZXhwb3J0cy5JbnRlcm5hbFNlcnZpY2VGYXVsdCA9IEludGVybmFsU2VydmljZUZhdWx0JDE7XG5leHBvcnRzLkludmFsaWRGb3JtYXRGYXVsdCA9IEludmFsaWRGb3JtYXRGYXVsdCQxO1xuZXhwb3J0cy5JbnZhbGlkTmV4dFRva2VuID0gSW52YWxpZE5leHRUb2tlbiQxO1xuZXhwb3J0cy5JbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FeGNlcHRpb24gPSBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FeGNlcHRpb24kMTtcbmV4cG9ydHMuSW52YWxpZFBhcmFtZXRlclZhbHVlRXhjZXB0aW9uID0gSW52YWxpZFBhcmFtZXRlclZhbHVlRXhjZXB0aW9uJDE7XG5leHBvcnRzLkxpbWl0RXhjZWVkZWRFeGNlcHRpb24gPSBMaW1pdEV4Y2VlZGVkRXhjZXB0aW9uJDE7XG5leHBvcnRzLkxpbWl0RXhjZWVkZWRGYXVsdCA9IExpbWl0RXhjZWVkZWRGYXVsdCQxO1xuZXhwb3J0cy5MaXN0RGFzaGJvYXJkc0NvbW1hbmQgPSBMaXN0RGFzaGJvYXJkc0NvbW1hbmQ7XG5leHBvcnRzLkxpc3RNYW5hZ2VkSW5zaWdodFJ1bGVzQ29tbWFuZCA9IExpc3RNYW5hZ2VkSW5zaWdodFJ1bGVzQ29tbWFuZDtcbmV4cG9ydHMuTGlzdE1ldHJpY1N0cmVhbXNDb21tYW5kID0gTGlzdE1ldHJpY1N0cmVhbXNDb21tYW5kO1xuZXhwb3J0cy5MaXN0TWV0cmljc0NvbW1hbmQgPSBMaXN0TWV0cmljc0NvbW1hbmQ7XG5leHBvcnRzLkxpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kID0gTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmQ7XG5leHBvcnRzLk1ldHJpY1N0cmVhbU91dHB1dEZvcm1hdCA9IE1ldHJpY1N0cmVhbU91dHB1dEZvcm1hdDtcbmV4cG9ydHMuTWlzc2luZ1JlcXVpcmVkUGFyYW1ldGVyRXhjZXB0aW9uID0gTWlzc2luZ1JlcXVpcmVkUGFyYW1ldGVyRXhjZXB0aW9uJDE7XG5leHBvcnRzLlB1dEFub21hbHlEZXRlY3RvckNvbW1hbmQgPSBQdXRBbm9tYWx5RGV0ZWN0b3JDb21tYW5kO1xuZXhwb3J0cy5QdXRDb21wb3NpdGVBbGFybUNvbW1hbmQgPSBQdXRDb21wb3NpdGVBbGFybUNvbW1hbmQ7XG5leHBvcnRzLlB1dERhc2hib2FyZENvbW1hbmQgPSBQdXREYXNoYm9hcmRDb21tYW5kO1xuZXhwb3J0cy5QdXRJbnNpZ2h0UnVsZUNvbW1hbmQgPSBQdXRJbnNpZ2h0UnVsZUNvbW1hbmQ7XG5leHBvcnRzLlB1dE1hbmFnZWRJbnNpZ2h0UnVsZXNDb21tYW5kID0gUHV0TWFuYWdlZEluc2lnaHRSdWxlc0NvbW1hbmQ7XG5leHBvcnRzLlB1dE1ldHJpY0FsYXJtQ29tbWFuZCA9IFB1dE1ldHJpY0FsYXJtQ29tbWFuZDtcbmV4cG9ydHMuUHV0TWV0cmljRGF0YUNvbW1hbmQgPSBQdXRNZXRyaWNEYXRhQ29tbWFuZDtcbmV4cG9ydHMuUHV0TWV0cmljU3RyZWFtQ29tbWFuZCA9IFB1dE1ldHJpY1N0cmVhbUNvbW1hbmQ7XG5leHBvcnRzLlJlY2VudGx5QWN0aXZlID0gUmVjZW50bHlBY3RpdmU7XG5leHBvcnRzLlJlc291cmNlTm90Rm91bmQgPSBSZXNvdXJjZU5vdEZvdW5kJDE7XG5leHBvcnRzLlJlc291cmNlTm90Rm91bmRFeGNlcHRpb24gPSBSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uJDE7XG5leHBvcnRzLlNjYW5CeSA9IFNjYW5CeTtcbmV4cG9ydHMuU2V0QWxhcm1TdGF0ZUNvbW1hbmQgPSBTZXRBbGFybVN0YXRlQ29tbWFuZDtcbmV4cG9ydHMuU3RhbmRhcmRVbml0ID0gU3RhbmRhcmRVbml0O1xuZXhwb3J0cy5TdGFydE1ldHJpY1N0cmVhbXNDb21tYW5kID0gU3RhcnRNZXRyaWNTdHJlYW1zQ29tbWFuZDtcbmV4cG9ydHMuU3RhdGVWYWx1ZSA9IFN0YXRlVmFsdWU7XG5leHBvcnRzLlN0YXRpc3RpYyA9IFN0YXRpc3RpYztcbmV4cG9ydHMuU3RhdHVzQ29kZSA9IFN0YXR1c0NvZGU7XG5leHBvcnRzLlN0b3BNZXRyaWNTdHJlYW1zQ29tbWFuZCA9IFN0b3BNZXRyaWNTdHJlYW1zQ29tbWFuZDtcbmV4cG9ydHMuVGFnUmVzb3VyY2VDb21tYW5kID0gVGFnUmVzb3VyY2VDb21tYW5kO1xuZXhwb3J0cy5VbnRhZ1Jlc291cmNlQ29tbWFuZCA9IFVudGFnUmVzb3VyY2VDb21tYW5kO1xuZXhwb3J0cy5wYWdpbmF0ZURlc2NyaWJlQWxhcm1IaXN0b3J5ID0gcGFnaW5hdGVEZXNjcmliZUFsYXJtSGlzdG9yeTtcbmV4cG9ydHMucGFnaW5hdGVEZXNjcmliZUFsYXJtcyA9IHBhZ2luYXRlRGVzY3JpYmVBbGFybXM7XG5leHBvcnRzLnBhZ2luYXRlRGVzY3JpYmVBbm9tYWx5RGV0ZWN0b3JzID0gcGFnaW5hdGVEZXNjcmliZUFub21hbHlEZXRlY3RvcnM7XG5leHBvcnRzLnBhZ2luYXRlRGVzY3JpYmVJbnNpZ2h0UnVsZXMgPSBwYWdpbmF0ZURlc2NyaWJlSW5zaWdodFJ1bGVzO1xuZXhwb3J0cy5wYWdpbmF0ZUdldE1ldHJpY0RhdGEgPSBwYWdpbmF0ZUdldE1ldHJpY0RhdGE7XG5leHBvcnRzLnBhZ2luYXRlTGlzdERhc2hib2FyZHMgPSBwYWdpbmF0ZUxpc3REYXNoYm9hcmRzO1xuZXhwb3J0cy5wYWdpbmF0ZUxpc3RNYW5hZ2VkSW5zaWdodFJ1bGVzID0gcGFnaW5hdGVMaXN0TWFuYWdlZEluc2lnaHRSdWxlcztcbmV4cG9ydHMucGFnaW5hdGVMaXN0TWV0cmljU3RyZWFtcyA9IHBhZ2luYXRlTGlzdE1ldHJpY1N0cmVhbXM7XG5leHBvcnRzLnBhZ2luYXRlTGlzdE1ldHJpY3MgPSBwYWdpbmF0ZUxpc3RNZXRyaWNzO1xuZXhwb3J0cy53YWl0Rm9yQWxhcm1FeGlzdHMgPSB3YWl0Rm9yQWxhcm1FeGlzdHM7XG5leHBvcnRzLndhaXRGb3JDb21wb3NpdGVBbGFybUV4aXN0cyA9IHdhaXRGb3JDb21wb3NpdGVBbGFybUV4aXN0cztcbmV4cG9ydHMud2FpdFVudGlsQWxhcm1FeGlzdHMgPSB3YWl0VW50aWxBbGFybUV4aXN0cztcbmV4cG9ydHMud2FpdFVudGlsQ29tcG9zaXRlQWxhcm1FeGlzdHMgPSB3YWl0VW50aWxDb21wb3NpdGVBbGFybUV4aXN0cztcbiIsICIvKipcbiAqIG5lZ290aWF0b3JcbiAqIENvcHlyaWdodChjKSAyMDEyIElzYWFjIFouIFNjaGx1ZXRlclxuICogQ29weXJpZ2h0KGMpIDIwMTQgRmVkZXJpY28gUm9tZXJvXG4gKiBDb3B5cmlnaHQoYykgMjAxNC0yMDE1IERvdWdsYXMgQ2hyaXN0b3BoZXIgV2lsc29uXG4gKiBNSVQgTGljZW5zZWRcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbi8qKlxuICogTW9kdWxlIGV4cG9ydHMuXG4gKiBAcHVibGljXG4gKi9cblxubW9kdWxlLmV4cG9ydHMgPSBwcmVmZXJyZWRDaGFyc2V0cztcbm1vZHVsZS5leHBvcnRzLnByZWZlcnJlZENoYXJzZXRzID0gcHJlZmVycmVkQ2hhcnNldHM7XG5cbi8qKlxuICogTW9kdWxlIHZhcmlhYmxlcy5cbiAqIEBwcml2YXRlXG4gKi9cblxudmFyIHNpbXBsZUNoYXJzZXRSZWdFeHAgPSAvXlxccyooW15cXHM7XSspXFxzKig/OjsoLiopKT8kLztcblxuLyoqXG4gKiBQYXJzZSB0aGUgQWNjZXB0LUNoYXJzZXQgaGVhZGVyLlxuICogQHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBwYXJzZUFjY2VwdENoYXJzZXQoYWNjZXB0KSB7XG4gIHZhciBhY2NlcHRzID0gYWNjZXB0LnNwbGl0KCcsJyk7XG5cbiAgZm9yICh2YXIgaSA9IDAsIGogPSAwOyBpIDwgYWNjZXB0cy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBjaGFyc2V0ID0gcGFyc2VDaGFyc2V0KGFjY2VwdHNbaV0udHJpbSgpLCBpKTtcblxuICAgIGlmIChjaGFyc2V0KSB7XG4gICAgICBhY2NlcHRzW2orK10gPSBjaGFyc2V0O1xuICAgIH1cbiAgfVxuXG4gIC8vIHRyaW0gYWNjZXB0c1xuICBhY2NlcHRzLmxlbmd0aCA9IGo7XG5cbiAgcmV0dXJuIGFjY2VwdHM7XG59XG5cbi8qKlxuICogUGFyc2UgYSBjaGFyc2V0IGZyb20gdGhlIEFjY2VwdC1DaGFyc2V0IGhlYWRlci5cbiAqIEBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gcGFyc2VDaGFyc2V0KHN0ciwgaSkge1xuICB2YXIgbWF0Y2ggPSBzaW1wbGVDaGFyc2V0UmVnRXhwLmV4ZWMoc3RyKTtcbiAgaWYgKCFtYXRjaCkgcmV0dXJuIG51bGw7XG5cbiAgdmFyIGNoYXJzZXQgPSBtYXRjaFsxXTtcbiAgdmFyIHEgPSAxO1xuICBpZiAobWF0Y2hbMl0pIHtcbiAgICB2YXIgcGFyYW1zID0gbWF0Y2hbMl0uc3BsaXQoJzsnKVxuICAgIGZvciAodmFyIGogPSAwOyBqIDwgcGFyYW1zLmxlbmd0aDsgaisrKSB7XG4gICAgICB2YXIgcCA9IHBhcmFtc1tqXS50cmltKCkuc3BsaXQoJz0nKTtcbiAgICAgIGlmIChwWzBdID09PSAncScpIHtcbiAgICAgICAgcSA9IHBhcnNlRmxvYXQocFsxXSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgY2hhcnNldDogY2hhcnNldCxcbiAgICBxOiBxLFxuICAgIGk6IGlcbiAgfTtcbn1cblxuLyoqXG4gKiBHZXQgdGhlIHByaW9yaXR5IG9mIGEgY2hhcnNldC5cbiAqIEBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gZ2V0Q2hhcnNldFByaW9yaXR5KGNoYXJzZXQsIGFjY2VwdGVkLCBpbmRleCkge1xuICB2YXIgcHJpb3JpdHkgPSB7bzogLTEsIHE6IDAsIHM6IDB9O1xuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgYWNjZXB0ZWQubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgc3BlYyA9IHNwZWNpZnkoY2hhcnNldCwgYWNjZXB0ZWRbaV0sIGluZGV4KTtcblxuICAgIGlmIChzcGVjICYmIChwcmlvcml0eS5zIC0gc3BlYy5zIHx8IHByaW9yaXR5LnEgLSBzcGVjLnEgfHwgcHJpb3JpdHkubyAtIHNwZWMubykgPCAwKSB7XG4gICAgICBwcmlvcml0eSA9IHNwZWM7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHByaW9yaXR5O1xufVxuXG4vKipcbiAqIEdldCB0aGUgc3BlY2lmaWNpdHkgb2YgdGhlIGNoYXJzZXQuXG4gKiBAcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIHNwZWNpZnkoY2hhcnNldCwgc3BlYywgaW5kZXgpIHtcbiAgdmFyIHMgPSAwO1xuICBpZihzcGVjLmNoYXJzZXQudG9Mb3dlckNhc2UoKSA9PT0gY2hhcnNldC50b0xvd2VyQ2FzZSgpKXtcbiAgICBzIHw9IDE7XG4gIH0gZWxzZSBpZiAoc3BlYy5jaGFyc2V0ICE9PSAnKicgKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgaTogaW5kZXgsXG4gICAgbzogc3BlYy5pLFxuICAgIHE6IHNwZWMucSxcbiAgICBzOiBzXG4gIH1cbn1cblxuLyoqXG4gKiBHZXQgdGhlIHByZWZlcnJlZCBjaGFyc2V0cyBmcm9tIGFuIEFjY2VwdC1DaGFyc2V0IGhlYWRlci5cbiAqIEBwdWJsaWNcbiAqL1xuXG5mdW5jdGlvbiBwcmVmZXJyZWRDaGFyc2V0cyhhY2NlcHQsIHByb3ZpZGVkKSB7XG4gIC8vIFJGQyAyNjE2IHNlYyAxNC4yOiBubyBoZWFkZXIgPSAqXG4gIHZhciBhY2NlcHRzID0gcGFyc2VBY2NlcHRDaGFyc2V0KGFjY2VwdCA9PT0gdW5kZWZpbmVkID8gJyonIDogYWNjZXB0IHx8ICcnKTtcblxuICBpZiAoIXByb3ZpZGVkKSB7XG4gICAgLy8gc29ydGVkIGxpc3Qgb2YgYWxsIGNoYXJzZXRzXG4gICAgcmV0dXJuIGFjY2VwdHNcbiAgICAgIC5maWx0ZXIoaXNRdWFsaXR5KVxuICAgICAgLnNvcnQoY29tcGFyZVNwZWNzKVxuICAgICAgLm1hcChnZXRGdWxsQ2hhcnNldCk7XG4gIH1cblxuICB2YXIgcHJpb3JpdGllcyA9IHByb3ZpZGVkLm1hcChmdW5jdGlvbiBnZXRQcmlvcml0eSh0eXBlLCBpbmRleCkge1xuICAgIHJldHVybiBnZXRDaGFyc2V0UHJpb3JpdHkodHlwZSwgYWNjZXB0cywgaW5kZXgpO1xuICB9KTtcblxuICAvLyBzb3J0ZWQgbGlzdCBvZiBhY2NlcHRlZCBjaGFyc2V0c1xuICByZXR1cm4gcHJpb3JpdGllcy5maWx0ZXIoaXNRdWFsaXR5KS5zb3J0KGNvbXBhcmVTcGVjcykubWFwKGZ1bmN0aW9uIGdldENoYXJzZXQocHJpb3JpdHkpIHtcbiAgICByZXR1cm4gcHJvdmlkZWRbcHJpb3JpdGllcy5pbmRleE9mKHByaW9yaXR5KV07XG4gIH0pO1xufVxuXG4vKipcbiAqIENvbXBhcmUgdHdvIHNwZWNzLlxuICogQHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBjb21wYXJlU3BlY3MoYSwgYikge1xuICByZXR1cm4gKGIucSAtIGEucSkgfHwgKGIucyAtIGEucykgfHwgKGEubyAtIGIubykgfHwgKGEuaSAtIGIuaSkgfHwgMDtcbn1cblxuLyoqXG4gKiBHZXQgZnVsbCBjaGFyc2V0IHN0cmluZy5cbiAqIEBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gZ2V0RnVsbENoYXJzZXQoc3BlYykge1xuICByZXR1cm4gc3BlYy5jaGFyc2V0O1xufVxuXG4vKipcbiAqIENoZWNrIGlmIGEgc3BlYyBoYXMgYW55IHF1YWxpdHkuXG4gKiBAcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIGlzUXVhbGl0eShzcGVjKSB7XG4gIHJldHVybiBzcGVjLnEgPiAwO1xufVxuIiwgIi8qKlxuICogbmVnb3RpYXRvclxuICogQ29weXJpZ2h0KGMpIDIwMTIgSXNhYWMgWi4gU2NobHVldGVyXG4gKiBDb3B5cmlnaHQoYykgMjAxNCBGZWRlcmljbyBSb21lcm9cbiAqIENvcHlyaWdodChjKSAyMDE0LTIwMTUgRG91Z2xhcyBDaHJpc3RvcGhlciBXaWxzb25cbiAqIE1JVCBMaWNlbnNlZFxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuLyoqXG4gKiBNb2R1bGUgZXhwb3J0cy5cbiAqIEBwdWJsaWNcbiAqL1xuXG5tb2R1bGUuZXhwb3J0cyA9IHByZWZlcnJlZEVuY29kaW5ncztcbm1vZHVsZS5leHBvcnRzLnByZWZlcnJlZEVuY29kaW5ncyA9IHByZWZlcnJlZEVuY29kaW5ncztcblxuLyoqXG4gKiBNb2R1bGUgdmFyaWFibGVzLlxuICogQHByaXZhdGVcbiAqL1xuXG52YXIgc2ltcGxlRW5jb2RpbmdSZWdFeHAgPSAvXlxccyooW15cXHM7XSspXFxzKig/OjsoLiopKT8kLztcblxuLyoqXG4gKiBQYXJzZSB0aGUgQWNjZXB0LUVuY29kaW5nIGhlYWRlci5cbiAqIEBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gcGFyc2VBY2NlcHRFbmNvZGluZyhhY2NlcHQpIHtcbiAgdmFyIGFjY2VwdHMgPSBhY2NlcHQuc3BsaXQoJywnKTtcbiAgdmFyIGhhc0lkZW50aXR5ID0gZmFsc2U7XG4gIHZhciBtaW5RdWFsaXR5ID0gMTtcblxuICBmb3IgKHZhciBpID0gMCwgaiA9IDA7IGkgPCBhY2NlcHRzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGVuY29kaW5nID0gcGFyc2VFbmNvZGluZyhhY2NlcHRzW2ldLnRyaW0oKSwgaSk7XG5cbiAgICBpZiAoZW5jb2RpbmcpIHtcbiAgICAgIGFjY2VwdHNbaisrXSA9IGVuY29kaW5nO1xuICAgICAgaGFzSWRlbnRpdHkgPSBoYXNJZGVudGl0eSB8fCBzcGVjaWZ5KCdpZGVudGl0eScsIGVuY29kaW5nKTtcbiAgICAgIG1pblF1YWxpdHkgPSBNYXRoLm1pbihtaW5RdWFsaXR5LCBlbmNvZGluZy5xIHx8IDEpO1xuICAgIH1cbiAgfVxuXG4gIGlmICghaGFzSWRlbnRpdHkpIHtcbiAgICAvKlxuICAgICAqIElmIGlkZW50aXR5IGRvZXNuJ3QgZXhwbGljaXRseSBhcHBlYXIgaW4gdGhlIGFjY2VwdC1lbmNvZGluZyBoZWFkZXIsXG4gICAgICogaXQncyBhZGRlZCB0byB0aGUgbGlzdCBvZiBhY2NlcHRhYmxlIGVuY29kaW5nIHdpdGggdGhlIGxvd2VzdCBxXG4gICAgICovXG4gICAgYWNjZXB0c1tqKytdID0ge1xuICAgICAgZW5jb2Rpbmc6ICdpZGVudGl0eScsXG4gICAgICBxOiBtaW5RdWFsaXR5LFxuICAgICAgaTogaVxuICAgIH07XG4gIH1cblxuICAvLyB0cmltIGFjY2VwdHNcbiAgYWNjZXB0cy5sZW5ndGggPSBqO1xuXG4gIHJldHVybiBhY2NlcHRzO1xufVxuXG4vKipcbiAqIFBhcnNlIGFuIGVuY29kaW5nIGZyb20gdGhlIEFjY2VwdC1FbmNvZGluZyBoZWFkZXIuXG4gKiBAcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIHBhcnNlRW5jb2Rpbmcoc3RyLCBpKSB7XG4gIHZhciBtYXRjaCA9IHNpbXBsZUVuY29kaW5nUmVnRXhwLmV4ZWMoc3RyKTtcbiAgaWYgKCFtYXRjaCkgcmV0dXJuIG51bGw7XG5cbiAgdmFyIGVuY29kaW5nID0gbWF0Y2hbMV07XG4gIHZhciBxID0gMTtcbiAgaWYgKG1hdGNoWzJdKSB7XG4gICAgdmFyIHBhcmFtcyA9IG1hdGNoWzJdLnNwbGl0KCc7Jyk7XG4gICAgZm9yICh2YXIgaiA9IDA7IGogPCBwYXJhbXMubGVuZ3RoOyBqKyspIHtcbiAgICAgIHZhciBwID0gcGFyYW1zW2pdLnRyaW0oKS5zcGxpdCgnPScpO1xuICAgICAgaWYgKHBbMF0gPT09ICdxJykge1xuICAgICAgICBxID0gcGFyc2VGbG9hdChwWzFdKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBlbmNvZGluZzogZW5jb2RpbmcsXG4gICAgcTogcSxcbiAgICBpOiBpXG4gIH07XG59XG5cbi8qKlxuICogR2V0IHRoZSBwcmlvcml0eSBvZiBhbiBlbmNvZGluZy5cbiAqIEBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gZ2V0RW5jb2RpbmdQcmlvcml0eShlbmNvZGluZywgYWNjZXB0ZWQsIGluZGV4KSB7XG4gIHZhciBwcmlvcml0eSA9IHtlbmNvZGluZzogZW5jb2RpbmcsIG86IC0xLCBxOiAwLCBzOiAwfTtcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IGFjY2VwdGVkLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIHNwZWMgPSBzcGVjaWZ5KGVuY29kaW5nLCBhY2NlcHRlZFtpXSwgaW5kZXgpO1xuXG4gICAgaWYgKHNwZWMgJiYgKHByaW9yaXR5LnMgLSBzcGVjLnMgfHwgcHJpb3JpdHkucSAtIHNwZWMucSB8fCBwcmlvcml0eS5vIC0gc3BlYy5vKSA8IDApIHtcbiAgICAgIHByaW9yaXR5ID0gc3BlYztcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcHJpb3JpdHk7XG59XG5cbi8qKlxuICogR2V0IHRoZSBzcGVjaWZpY2l0eSBvZiB0aGUgZW5jb2RpbmcuXG4gKiBAcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIHNwZWNpZnkoZW5jb2RpbmcsIHNwZWMsIGluZGV4KSB7XG4gIHZhciBzID0gMDtcbiAgaWYoc3BlYy5lbmNvZGluZy50b0xvd2VyQ2FzZSgpID09PSBlbmNvZGluZy50b0xvd2VyQ2FzZSgpKXtcbiAgICBzIHw9IDE7XG4gIH0gZWxzZSBpZiAoc3BlYy5lbmNvZGluZyAhPT0gJyonICkge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICByZXR1cm4ge1xuICAgIGVuY29kaW5nOiBlbmNvZGluZyxcbiAgICBpOiBpbmRleCxcbiAgICBvOiBzcGVjLmksXG4gICAgcTogc3BlYy5xLFxuICAgIHM6IHNcbiAgfVxufTtcblxuLyoqXG4gKiBHZXQgdGhlIHByZWZlcnJlZCBlbmNvZGluZ3MgZnJvbSBhbiBBY2NlcHQtRW5jb2RpbmcgaGVhZGVyLlxuICogQHB1YmxpY1xuICovXG5cbmZ1bmN0aW9uIHByZWZlcnJlZEVuY29kaW5ncyhhY2NlcHQsIHByb3ZpZGVkLCBwcmVmZXJyZWQpIHtcbiAgdmFyIGFjY2VwdHMgPSBwYXJzZUFjY2VwdEVuY29kaW5nKGFjY2VwdCB8fCAnJyk7XG5cbiAgdmFyIGNvbXBhcmF0b3IgPSBwcmVmZXJyZWQgPyBmdW5jdGlvbiBjb21wYXJhdG9yIChhLCBiKSB7XG4gICAgaWYgKGEucSAhPT0gYi5xKSB7XG4gICAgICByZXR1cm4gYi5xIC0gYS5xIC8vIGhpZ2hlciBxdWFsaXR5IGZpcnN0XG4gICAgfVxuXG4gICAgdmFyIGFQcmVmZXJyZWQgPSBwcmVmZXJyZWQuaW5kZXhPZihhLmVuY29kaW5nKVxuICAgIHZhciBiUHJlZmVycmVkID0gcHJlZmVycmVkLmluZGV4T2YoYi5lbmNvZGluZylcblxuICAgIGlmIChhUHJlZmVycmVkID09PSAtMSAmJiBiUHJlZmVycmVkID09PSAtMSkge1xuICAgICAgLy8gY29uc2lkZXIgdGhlIG9yaWdpbmFsIHNwZWNpZml0eS9vcmRlclxuICAgICAgcmV0dXJuIChiLnMgLSBhLnMpIHx8IChhLm8gLSBiLm8pIHx8IChhLmkgLSBiLmkpXG4gICAgfVxuXG4gICAgaWYgKGFQcmVmZXJyZWQgIT09IC0xICYmIGJQcmVmZXJyZWQgIT09IC0xKSB7XG4gICAgICByZXR1cm4gYVByZWZlcnJlZCAtIGJQcmVmZXJyZWQgLy8gY29uc2lkZXIgdGhlIHByZWZlcnJlZCBvcmRlclxuICAgIH1cblxuICAgIHJldHVybiBhUHJlZmVycmVkID09PSAtMSA/IDEgOiAtMSAvLyBwcmVmZXJyZWQgZmlyc3RcbiAgfSA6IGNvbXBhcmVTcGVjcztcblxuICBpZiAoIXByb3ZpZGVkKSB7XG4gICAgLy8gc29ydGVkIGxpc3Qgb2YgYWxsIGVuY29kaW5nc1xuICAgIHJldHVybiBhY2NlcHRzXG4gICAgICAuZmlsdGVyKGlzUXVhbGl0eSlcbiAgICAgIC5zb3J0KGNvbXBhcmF0b3IpXG4gICAgICAubWFwKGdldEZ1bGxFbmNvZGluZyk7XG4gIH1cblxuICB2YXIgcHJpb3JpdGllcyA9IHByb3ZpZGVkLm1hcChmdW5jdGlvbiBnZXRQcmlvcml0eSh0eXBlLCBpbmRleCkge1xuICAgIHJldHVybiBnZXRFbmNvZGluZ1ByaW9yaXR5KHR5cGUsIGFjY2VwdHMsIGluZGV4KTtcbiAgfSk7XG5cbiAgLy8gc29ydGVkIGxpc3Qgb2YgYWNjZXB0ZWQgZW5jb2RpbmdzXG4gIHJldHVybiBwcmlvcml0aWVzLmZpbHRlcihpc1F1YWxpdHkpLnNvcnQoY29tcGFyYXRvcikubWFwKGZ1bmN0aW9uIGdldEVuY29kaW5nKHByaW9yaXR5KSB7XG4gICAgcmV0dXJuIHByb3ZpZGVkW3ByaW9yaXRpZXMuaW5kZXhPZihwcmlvcml0eSldO1xuICB9KTtcbn1cblxuLyoqXG4gKiBDb21wYXJlIHR3byBzcGVjcy5cbiAqIEBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gY29tcGFyZVNwZWNzKGEsIGIpIHtcbiAgcmV0dXJuIChiLnEgLSBhLnEpIHx8IChiLnMgLSBhLnMpIHx8IChhLm8gLSBiLm8pIHx8IChhLmkgLSBiLmkpO1xufVxuXG4vKipcbiAqIEdldCBmdWxsIGVuY29kaW5nIHN0cmluZy5cbiAqIEBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gZ2V0RnVsbEVuY29kaW5nKHNwZWMpIHtcbiAgcmV0dXJuIHNwZWMuZW5jb2Rpbmc7XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgYSBzcGVjIGhhcyBhbnkgcXVhbGl0eS5cbiAqIEBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gaXNRdWFsaXR5KHNwZWMpIHtcbiAgcmV0dXJuIHNwZWMucSA+IDA7XG59XG4iLCAiLyoqXG4gKiBuZWdvdGlhdG9yXG4gKiBDb3B5cmlnaHQoYykgMjAxMiBJc2FhYyBaLiBTY2hsdWV0ZXJcbiAqIENvcHlyaWdodChjKSAyMDE0IEZlZGVyaWNvIFJvbWVyb1xuICogQ29weXJpZ2h0KGMpIDIwMTQtMjAxNSBEb3VnbGFzIENocmlzdG9waGVyIFdpbHNvblxuICogTUlUIExpY2Vuc2VkXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG4vKipcbiAqIE1vZHVsZSBleHBvcnRzLlxuICogQHB1YmxpY1xuICovXG5cbm1vZHVsZS5leHBvcnRzID0gcHJlZmVycmVkTGFuZ3VhZ2VzO1xubW9kdWxlLmV4cG9ydHMucHJlZmVycmVkTGFuZ3VhZ2VzID0gcHJlZmVycmVkTGFuZ3VhZ2VzO1xuXG4vKipcbiAqIE1vZHVsZSB2YXJpYWJsZXMuXG4gKiBAcHJpdmF0ZVxuICovXG5cbnZhciBzaW1wbGVMYW5ndWFnZVJlZ0V4cCA9IC9eXFxzKihbXlxcc1xcLTtdKykoPzotKFteXFxzO10rKSk/XFxzKig/OjsoLiopKT8kLztcblxuLyoqXG4gKiBQYXJzZSB0aGUgQWNjZXB0LUxhbmd1YWdlIGhlYWRlci5cbiAqIEBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gcGFyc2VBY2NlcHRMYW5ndWFnZShhY2NlcHQpIHtcbiAgdmFyIGFjY2VwdHMgPSBhY2NlcHQuc3BsaXQoJywnKTtcblxuICBmb3IgKHZhciBpID0gMCwgaiA9IDA7IGkgPCBhY2NlcHRzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGxhbmd1YWdlID0gcGFyc2VMYW5ndWFnZShhY2NlcHRzW2ldLnRyaW0oKSwgaSk7XG5cbiAgICBpZiAobGFuZ3VhZ2UpIHtcbiAgICAgIGFjY2VwdHNbaisrXSA9IGxhbmd1YWdlO1xuICAgIH1cbiAgfVxuXG4gIC8vIHRyaW0gYWNjZXB0c1xuICBhY2NlcHRzLmxlbmd0aCA9IGo7XG5cbiAgcmV0dXJuIGFjY2VwdHM7XG59XG5cbi8qKlxuICogUGFyc2UgYSBsYW5ndWFnZSBmcm9tIHRoZSBBY2NlcHQtTGFuZ3VhZ2UgaGVhZGVyLlxuICogQHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBwYXJzZUxhbmd1YWdlKHN0ciwgaSkge1xuICB2YXIgbWF0Y2ggPSBzaW1wbGVMYW5ndWFnZVJlZ0V4cC5leGVjKHN0cik7XG4gIGlmICghbWF0Y2gpIHJldHVybiBudWxsO1xuXG4gIHZhciBwcmVmaXggPSBtYXRjaFsxXVxuICB2YXIgc3VmZml4ID0gbWF0Y2hbMl1cbiAgdmFyIGZ1bGwgPSBwcmVmaXhcblxuICBpZiAoc3VmZml4KSBmdWxsICs9IFwiLVwiICsgc3VmZml4O1xuXG4gIHZhciBxID0gMTtcbiAgaWYgKG1hdGNoWzNdKSB7XG4gICAgdmFyIHBhcmFtcyA9IG1hdGNoWzNdLnNwbGl0KCc7JylcbiAgICBmb3IgKHZhciBqID0gMDsgaiA8IHBhcmFtcy5sZW5ndGg7IGorKykge1xuICAgICAgdmFyIHAgPSBwYXJhbXNbal0uc3BsaXQoJz0nKTtcbiAgICAgIGlmIChwWzBdID09PSAncScpIHEgPSBwYXJzZUZsb2F0KHBbMV0pO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgcHJlZml4OiBwcmVmaXgsXG4gICAgc3VmZml4OiBzdWZmaXgsXG4gICAgcTogcSxcbiAgICBpOiBpLFxuICAgIGZ1bGw6IGZ1bGxcbiAgfTtcbn1cblxuLyoqXG4gKiBHZXQgdGhlIHByaW9yaXR5IG9mIGEgbGFuZ3VhZ2UuXG4gKiBAcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIGdldExhbmd1YWdlUHJpb3JpdHkobGFuZ3VhZ2UsIGFjY2VwdGVkLCBpbmRleCkge1xuICB2YXIgcHJpb3JpdHkgPSB7bzogLTEsIHE6IDAsIHM6IDB9O1xuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgYWNjZXB0ZWQubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgc3BlYyA9IHNwZWNpZnkobGFuZ3VhZ2UsIGFjY2VwdGVkW2ldLCBpbmRleCk7XG5cbiAgICBpZiAoc3BlYyAmJiAocHJpb3JpdHkucyAtIHNwZWMucyB8fCBwcmlvcml0eS5xIC0gc3BlYy5xIHx8IHByaW9yaXR5Lm8gLSBzcGVjLm8pIDwgMCkge1xuICAgICAgcHJpb3JpdHkgPSBzcGVjO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBwcmlvcml0eTtcbn1cblxuLyoqXG4gKiBHZXQgdGhlIHNwZWNpZmljaXR5IG9mIHRoZSBsYW5ndWFnZS5cbiAqIEBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gc3BlY2lmeShsYW5ndWFnZSwgc3BlYywgaW5kZXgpIHtcbiAgdmFyIHAgPSBwYXJzZUxhbmd1YWdlKGxhbmd1YWdlKVxuICBpZiAoIXApIHJldHVybiBudWxsO1xuICB2YXIgcyA9IDA7XG4gIGlmKHNwZWMuZnVsbC50b0xvd2VyQ2FzZSgpID09PSBwLmZ1bGwudG9Mb3dlckNhc2UoKSl7XG4gICAgcyB8PSA0O1xuICB9IGVsc2UgaWYgKHNwZWMucHJlZml4LnRvTG93ZXJDYXNlKCkgPT09IHAuZnVsbC50b0xvd2VyQ2FzZSgpKSB7XG4gICAgcyB8PSAyO1xuICB9IGVsc2UgaWYgKHNwZWMuZnVsbC50b0xvd2VyQ2FzZSgpID09PSBwLnByZWZpeC50b0xvd2VyQ2FzZSgpKSB7XG4gICAgcyB8PSAxO1xuICB9IGVsc2UgaWYgKHNwZWMuZnVsbCAhPT0gJyonICkge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICByZXR1cm4ge1xuICAgIGk6IGluZGV4LFxuICAgIG86IHNwZWMuaSxcbiAgICBxOiBzcGVjLnEsXG4gICAgczogc1xuICB9XG59O1xuXG4vKipcbiAqIEdldCB0aGUgcHJlZmVycmVkIGxhbmd1YWdlcyBmcm9tIGFuIEFjY2VwdC1MYW5ndWFnZSBoZWFkZXIuXG4gKiBAcHVibGljXG4gKi9cblxuZnVuY3Rpb24gcHJlZmVycmVkTGFuZ3VhZ2VzKGFjY2VwdCwgcHJvdmlkZWQpIHtcbiAgLy8gUkZDIDI2MTYgc2VjIDE0LjQ6IG5vIGhlYWRlciA9ICpcbiAgdmFyIGFjY2VwdHMgPSBwYXJzZUFjY2VwdExhbmd1YWdlKGFjY2VwdCA9PT0gdW5kZWZpbmVkID8gJyonIDogYWNjZXB0IHx8ICcnKTtcblxuICBpZiAoIXByb3ZpZGVkKSB7XG4gICAgLy8gc29ydGVkIGxpc3Qgb2YgYWxsIGxhbmd1YWdlc1xuICAgIHJldHVybiBhY2NlcHRzXG4gICAgICAuZmlsdGVyKGlzUXVhbGl0eSlcbiAgICAgIC5zb3J0KGNvbXBhcmVTcGVjcylcbiAgICAgIC5tYXAoZ2V0RnVsbExhbmd1YWdlKTtcbiAgfVxuXG4gIHZhciBwcmlvcml0aWVzID0gcHJvdmlkZWQubWFwKGZ1bmN0aW9uIGdldFByaW9yaXR5KHR5cGUsIGluZGV4KSB7XG4gICAgcmV0dXJuIGdldExhbmd1YWdlUHJpb3JpdHkodHlwZSwgYWNjZXB0cywgaW5kZXgpO1xuICB9KTtcblxuICAvLyBzb3J0ZWQgbGlzdCBvZiBhY2NlcHRlZCBsYW5ndWFnZXNcbiAgcmV0dXJuIHByaW9yaXRpZXMuZmlsdGVyKGlzUXVhbGl0eSkuc29ydChjb21wYXJlU3BlY3MpLm1hcChmdW5jdGlvbiBnZXRMYW5ndWFnZShwcmlvcml0eSkge1xuICAgIHJldHVybiBwcm92aWRlZFtwcmlvcml0aWVzLmluZGV4T2YocHJpb3JpdHkpXTtcbiAgfSk7XG59XG5cbi8qKlxuICogQ29tcGFyZSB0d28gc3BlY3MuXG4gKiBAcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIGNvbXBhcmVTcGVjcyhhLCBiKSB7XG4gIHJldHVybiAoYi5xIC0gYS5xKSB8fCAoYi5zIC0gYS5zKSB8fCAoYS5vIC0gYi5vKSB8fCAoYS5pIC0gYi5pKSB8fCAwO1xufVxuXG4vKipcbiAqIEdldCBmdWxsIGxhbmd1YWdlIHN0cmluZy5cbiAqIEBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gZ2V0RnVsbExhbmd1YWdlKHNwZWMpIHtcbiAgcmV0dXJuIHNwZWMuZnVsbDtcbn1cblxuLyoqXG4gKiBDaGVjayBpZiBhIHNwZWMgaGFzIGFueSBxdWFsaXR5LlxuICogQHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBpc1F1YWxpdHkoc3BlYykge1xuICByZXR1cm4gc3BlYy5xID4gMDtcbn1cbiIsICIvKipcbiAqIG5lZ290aWF0b3JcbiAqIENvcHlyaWdodChjKSAyMDEyIElzYWFjIFouIFNjaGx1ZXRlclxuICogQ29weXJpZ2h0KGMpIDIwMTQgRmVkZXJpY28gUm9tZXJvXG4gKiBDb3B5cmlnaHQoYykgMjAxNC0yMDE1IERvdWdsYXMgQ2hyaXN0b3BoZXIgV2lsc29uXG4gKiBNSVQgTGljZW5zZWRcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbi8qKlxuICogTW9kdWxlIGV4cG9ydHMuXG4gKiBAcHVibGljXG4gKi9cblxubW9kdWxlLmV4cG9ydHMgPSBwcmVmZXJyZWRNZWRpYVR5cGVzO1xubW9kdWxlLmV4cG9ydHMucHJlZmVycmVkTWVkaWFUeXBlcyA9IHByZWZlcnJlZE1lZGlhVHlwZXM7XG5cbi8qKlxuICogTW9kdWxlIHZhcmlhYmxlcy5cbiAqIEBwcml2YXRlXG4gKi9cblxudmFyIHNpbXBsZU1lZGlhVHlwZVJlZ0V4cCA9IC9eXFxzKihbXlxcc1xcLztdKylcXC8oW147XFxzXSspXFxzKig/OjsoLiopKT8kLztcblxuLyoqXG4gKiBQYXJzZSB0aGUgQWNjZXB0IGhlYWRlci5cbiAqIEBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gcGFyc2VBY2NlcHQoYWNjZXB0KSB7XG4gIHZhciBhY2NlcHRzID0gc3BsaXRNZWRpYVR5cGVzKGFjY2VwdCk7XG5cbiAgZm9yICh2YXIgaSA9IDAsIGogPSAwOyBpIDwgYWNjZXB0cy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBtZWRpYVR5cGUgPSBwYXJzZU1lZGlhVHlwZShhY2NlcHRzW2ldLnRyaW0oKSwgaSk7XG5cbiAgICBpZiAobWVkaWFUeXBlKSB7XG4gICAgICBhY2NlcHRzW2orK10gPSBtZWRpYVR5cGU7XG4gICAgfVxuICB9XG5cbiAgLy8gdHJpbSBhY2NlcHRzXG4gIGFjY2VwdHMubGVuZ3RoID0gajtcblxuICByZXR1cm4gYWNjZXB0cztcbn1cblxuLyoqXG4gKiBQYXJzZSBhIG1lZGlhIHR5cGUgZnJvbSB0aGUgQWNjZXB0IGhlYWRlci5cbiAqIEBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gcGFyc2VNZWRpYVR5cGUoc3RyLCBpKSB7XG4gIHZhciBtYXRjaCA9IHNpbXBsZU1lZGlhVHlwZVJlZ0V4cC5leGVjKHN0cik7XG4gIGlmICghbWF0Y2gpIHJldHVybiBudWxsO1xuXG4gIHZhciBwYXJhbXMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICB2YXIgcSA9IDE7XG4gIHZhciBzdWJ0eXBlID0gbWF0Y2hbMl07XG4gIHZhciB0eXBlID0gbWF0Y2hbMV07XG5cbiAgaWYgKG1hdGNoWzNdKSB7XG4gICAgdmFyIGt2cHMgPSBzcGxpdFBhcmFtZXRlcnMobWF0Y2hbM10pLm1hcChzcGxpdEtleVZhbHVlUGFpcik7XG5cbiAgICBmb3IgKHZhciBqID0gMDsgaiA8IGt2cHMubGVuZ3RoOyBqKyspIHtcbiAgICAgIHZhciBwYWlyID0ga3Zwc1tqXTtcbiAgICAgIHZhciBrZXkgPSBwYWlyWzBdLnRvTG93ZXJDYXNlKCk7XG4gICAgICB2YXIgdmFsID0gcGFpclsxXTtcblxuICAgICAgLy8gZ2V0IHRoZSB2YWx1ZSwgdW53cmFwcGluZyBxdW90ZXNcbiAgICAgIHZhciB2YWx1ZSA9IHZhbCAmJiB2YWxbMF0gPT09ICdcIicgJiYgdmFsW3ZhbC5sZW5ndGggLSAxXSA9PT0gJ1wiJ1xuICAgICAgICA/IHZhbC5zbGljZSgxLCAtMSlcbiAgICAgICAgOiB2YWw7XG5cbiAgICAgIGlmIChrZXkgPT09ICdxJykge1xuICAgICAgICBxID0gcGFyc2VGbG9hdCh2YWx1ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICAvLyBzdG9yZSBwYXJhbWV0ZXJcbiAgICAgIHBhcmFtc1trZXldID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICB0eXBlOiB0eXBlLFxuICAgIHN1YnR5cGU6IHN1YnR5cGUsXG4gICAgcGFyYW1zOiBwYXJhbXMsXG4gICAgcTogcSxcbiAgICBpOiBpXG4gIH07XG59XG5cbi8qKlxuICogR2V0IHRoZSBwcmlvcml0eSBvZiBhIG1lZGlhIHR5cGUuXG4gKiBAcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIGdldE1lZGlhVHlwZVByaW9yaXR5KHR5cGUsIGFjY2VwdGVkLCBpbmRleCkge1xuICB2YXIgcHJpb3JpdHkgPSB7bzogLTEsIHE6IDAsIHM6IDB9O1xuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgYWNjZXB0ZWQubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgc3BlYyA9IHNwZWNpZnkodHlwZSwgYWNjZXB0ZWRbaV0sIGluZGV4KTtcblxuICAgIGlmIChzcGVjICYmIChwcmlvcml0eS5zIC0gc3BlYy5zIHx8IHByaW9yaXR5LnEgLSBzcGVjLnEgfHwgcHJpb3JpdHkubyAtIHNwZWMubykgPCAwKSB7XG4gICAgICBwcmlvcml0eSA9IHNwZWM7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHByaW9yaXR5O1xufVxuXG4vKipcbiAqIEdldCB0aGUgc3BlY2lmaWNpdHkgb2YgdGhlIG1lZGlhIHR5cGUuXG4gKiBAcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIHNwZWNpZnkodHlwZSwgc3BlYywgaW5kZXgpIHtcbiAgdmFyIHAgPSBwYXJzZU1lZGlhVHlwZSh0eXBlKTtcbiAgdmFyIHMgPSAwO1xuXG4gIGlmICghcCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaWYoc3BlYy50eXBlLnRvTG93ZXJDYXNlKCkgPT0gcC50eXBlLnRvTG93ZXJDYXNlKCkpIHtcbiAgICBzIHw9IDRcbiAgfSBlbHNlIGlmKHNwZWMudHlwZSAhPSAnKicpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGlmKHNwZWMuc3VidHlwZS50b0xvd2VyQ2FzZSgpID09IHAuc3VidHlwZS50b0xvd2VyQ2FzZSgpKSB7XG4gICAgcyB8PSAyXG4gIH0gZWxzZSBpZihzcGVjLnN1YnR5cGUgIT0gJyonKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKHNwZWMucGFyYW1zKTtcbiAgaWYgKGtleXMubGVuZ3RoID4gMCkge1xuICAgIGlmIChrZXlzLmV2ZXJ5KGZ1bmN0aW9uIChrKSB7XG4gICAgICByZXR1cm4gc3BlYy5wYXJhbXNba10gPT0gJyonIHx8IChzcGVjLnBhcmFtc1trXSB8fCAnJykudG9Mb3dlckNhc2UoKSA9PSAocC5wYXJhbXNba10gfHwgJycpLnRvTG93ZXJDYXNlKCk7XG4gICAgfSkpIHtcbiAgICAgIHMgfD0gMVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgaTogaW5kZXgsXG4gICAgbzogc3BlYy5pLFxuICAgIHE6IHNwZWMucSxcbiAgICBzOiBzLFxuICB9XG59XG5cbi8qKlxuICogR2V0IHRoZSBwcmVmZXJyZWQgbWVkaWEgdHlwZXMgZnJvbSBhbiBBY2NlcHQgaGVhZGVyLlxuICogQHB1YmxpY1xuICovXG5cbmZ1bmN0aW9uIHByZWZlcnJlZE1lZGlhVHlwZXMoYWNjZXB0LCBwcm92aWRlZCkge1xuICAvLyBSRkMgMjYxNiBzZWMgMTQuMjogbm8gaGVhZGVyID0gKi8qXG4gIHZhciBhY2NlcHRzID0gcGFyc2VBY2NlcHQoYWNjZXB0ID09PSB1bmRlZmluZWQgPyAnKi8qJyA6IGFjY2VwdCB8fCAnJyk7XG5cbiAgaWYgKCFwcm92aWRlZCkge1xuICAgIC8vIHNvcnRlZCBsaXN0IG9mIGFsbCB0eXBlc1xuICAgIHJldHVybiBhY2NlcHRzXG4gICAgICAuZmlsdGVyKGlzUXVhbGl0eSlcbiAgICAgIC5zb3J0KGNvbXBhcmVTcGVjcylcbiAgICAgIC5tYXAoZ2V0RnVsbFR5cGUpO1xuICB9XG5cbiAgdmFyIHByaW9yaXRpZXMgPSBwcm92aWRlZC5tYXAoZnVuY3Rpb24gZ2V0UHJpb3JpdHkodHlwZSwgaW5kZXgpIHtcbiAgICByZXR1cm4gZ2V0TWVkaWFUeXBlUHJpb3JpdHkodHlwZSwgYWNjZXB0cywgaW5kZXgpO1xuICB9KTtcblxuICAvLyBzb3J0ZWQgbGlzdCBvZiBhY2NlcHRlZCB0eXBlc1xuICByZXR1cm4gcHJpb3JpdGllcy5maWx0ZXIoaXNRdWFsaXR5KS5zb3J0KGNvbXBhcmVTcGVjcykubWFwKGZ1bmN0aW9uIGdldFR5cGUocHJpb3JpdHkpIHtcbiAgICByZXR1cm4gcHJvdmlkZWRbcHJpb3JpdGllcy5pbmRleE9mKHByaW9yaXR5KV07XG4gIH0pO1xufVxuXG4vKipcbiAqIENvbXBhcmUgdHdvIHNwZWNzLlxuICogQHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBjb21wYXJlU3BlY3MoYSwgYikge1xuICByZXR1cm4gKGIucSAtIGEucSkgfHwgKGIucyAtIGEucykgfHwgKGEubyAtIGIubykgfHwgKGEuaSAtIGIuaSkgfHwgMDtcbn1cblxuLyoqXG4gKiBHZXQgZnVsbCB0eXBlIHN0cmluZy5cbiAqIEBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gZ2V0RnVsbFR5cGUoc3BlYykge1xuICByZXR1cm4gc3BlYy50eXBlICsgJy8nICsgc3BlYy5zdWJ0eXBlO1xufVxuXG4vKipcbiAqIENoZWNrIGlmIGEgc3BlYyBoYXMgYW55IHF1YWxpdHkuXG4gKiBAcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIGlzUXVhbGl0eShzcGVjKSB7XG4gIHJldHVybiBzcGVjLnEgPiAwO1xufVxuXG4vKipcbiAqIENvdW50IHRoZSBudW1iZXIgb2YgcXVvdGVzIGluIGEgc3RyaW5nLlxuICogQHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBxdW90ZUNvdW50KHN0cmluZykge1xuICB2YXIgY291bnQgPSAwO1xuICB2YXIgaW5kZXggPSAwO1xuXG4gIHdoaWxlICgoaW5kZXggPSBzdHJpbmcuaW5kZXhPZignXCInLCBpbmRleCkpICE9PSAtMSkge1xuICAgIGNvdW50Kys7XG4gICAgaW5kZXgrKztcbiAgfVxuXG4gIHJldHVybiBjb3VudDtcbn1cblxuLyoqXG4gKiBTcGxpdCBhIGtleSB2YWx1ZSBwYWlyLlxuICogQHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBzcGxpdEtleVZhbHVlUGFpcihzdHIpIHtcbiAgdmFyIGluZGV4ID0gc3RyLmluZGV4T2YoJz0nKTtcbiAgdmFyIGtleTtcbiAgdmFyIHZhbDtcblxuICBpZiAoaW5kZXggPT09IC0xKSB7XG4gICAga2V5ID0gc3RyO1xuICB9IGVsc2Uge1xuICAgIGtleSA9IHN0ci5zbGljZSgwLCBpbmRleCk7XG4gICAgdmFsID0gc3RyLnNsaWNlKGluZGV4ICsgMSk7XG4gIH1cblxuICByZXR1cm4gW2tleSwgdmFsXTtcbn1cblxuLyoqXG4gKiBTcGxpdCBhbiBBY2NlcHQgaGVhZGVyIGludG8gbWVkaWEgdHlwZXMuXG4gKiBAcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIHNwbGl0TWVkaWFUeXBlcyhhY2NlcHQpIHtcbiAgdmFyIGFjY2VwdHMgPSBhY2NlcHQuc3BsaXQoJywnKTtcblxuICBmb3IgKHZhciBpID0gMSwgaiA9IDA7IGkgPCBhY2NlcHRzLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKHF1b3RlQ291bnQoYWNjZXB0c1tqXSkgJSAyID09IDApIHtcbiAgICAgIGFjY2VwdHNbKytqXSA9IGFjY2VwdHNbaV07XG4gICAgfSBlbHNlIHtcbiAgICAgIGFjY2VwdHNbal0gKz0gJywnICsgYWNjZXB0c1tpXTtcbiAgICB9XG4gIH1cblxuICAvLyB0cmltIGFjY2VwdHNcbiAgYWNjZXB0cy5sZW5ndGggPSBqICsgMTtcblxuICByZXR1cm4gYWNjZXB0cztcbn1cblxuLyoqXG4gKiBTcGxpdCBhIHN0cmluZyBvZiBwYXJhbWV0ZXJzLlxuICogQHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBzcGxpdFBhcmFtZXRlcnMoc3RyKSB7XG4gIHZhciBwYXJhbWV0ZXJzID0gc3RyLnNwbGl0KCc7Jyk7XG5cbiAgZm9yICh2YXIgaSA9IDEsIGogPSAwOyBpIDwgcGFyYW1ldGVycy5sZW5ndGg7IGkrKykge1xuICAgIGlmIChxdW90ZUNvdW50KHBhcmFtZXRlcnNbal0pICUgMiA9PSAwKSB7XG4gICAgICBwYXJhbWV0ZXJzWysral0gPSBwYXJhbWV0ZXJzW2ldO1xuICAgIH0gZWxzZSB7XG4gICAgICBwYXJhbWV0ZXJzW2pdICs9ICc7JyArIHBhcmFtZXRlcnNbaV07XG4gICAgfVxuICB9XG5cbiAgLy8gdHJpbSBwYXJhbWV0ZXJzXG4gIHBhcmFtZXRlcnMubGVuZ3RoID0gaiArIDE7XG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBwYXJhbWV0ZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgcGFyYW1ldGVyc1tpXSA9IHBhcmFtZXRlcnNbaV0udHJpbSgpO1xuICB9XG5cbiAgcmV0dXJuIHBhcmFtZXRlcnM7XG59XG4iLCAiLyohXG4gKiBuZWdvdGlhdG9yXG4gKiBDb3B5cmlnaHQoYykgMjAxMiBGZWRlcmljbyBSb21lcm9cbiAqIENvcHlyaWdodChjKSAyMDEyLTIwMTQgSXNhYWMgWi4gU2NobHVldGVyXG4gKiBDb3B5cmlnaHQoYykgMjAxNSBEb3VnbGFzIENocmlzdG9waGVyIFdpbHNvblxuICogTUlUIExpY2Vuc2VkXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgcHJlZmVycmVkQ2hhcnNldHMgPSByZXF1aXJlKCcuL2xpYi9jaGFyc2V0JylcbnZhciBwcmVmZXJyZWRFbmNvZGluZ3MgPSByZXF1aXJlKCcuL2xpYi9lbmNvZGluZycpXG52YXIgcHJlZmVycmVkTGFuZ3VhZ2VzID0gcmVxdWlyZSgnLi9saWIvbGFuZ3VhZ2UnKVxudmFyIHByZWZlcnJlZE1lZGlhVHlwZXMgPSByZXF1aXJlKCcuL2xpYi9tZWRpYVR5cGUnKVxuXG4vKipcbiAqIE1vZHVsZSBleHBvcnRzLlxuICogQHB1YmxpY1xuICovXG5cbm1vZHVsZS5leHBvcnRzID0gTmVnb3RpYXRvcjtcbm1vZHVsZS5leHBvcnRzLk5lZ290aWF0b3IgPSBOZWdvdGlhdG9yO1xuXG4vKipcbiAqIENyZWF0ZSBhIE5lZ290aWF0b3IgaW5zdGFuY2UgZnJvbSBhIHJlcXVlc3QuXG4gKiBAcGFyYW0ge29iamVjdH0gcmVxdWVzdFxuICogQHB1YmxpY1xuICovXG5cbmZ1bmN0aW9uIE5lZ290aWF0b3IocmVxdWVzdCkge1xuICBpZiAoISh0aGlzIGluc3RhbmNlb2YgTmVnb3RpYXRvcikpIHtcbiAgICByZXR1cm4gbmV3IE5lZ290aWF0b3IocmVxdWVzdCk7XG4gIH1cblxuICB0aGlzLnJlcXVlc3QgPSByZXF1ZXN0O1xufVxuXG5OZWdvdGlhdG9yLnByb3RvdHlwZS5jaGFyc2V0ID0gZnVuY3Rpb24gY2hhcnNldChhdmFpbGFibGUpIHtcbiAgdmFyIHNldCA9IHRoaXMuY2hhcnNldHMoYXZhaWxhYmxlKTtcbiAgcmV0dXJuIHNldCAmJiBzZXRbMF07XG59O1xuXG5OZWdvdGlhdG9yLnByb3RvdHlwZS5jaGFyc2V0cyA9IGZ1bmN0aW9uIGNoYXJzZXRzKGF2YWlsYWJsZSkge1xuICByZXR1cm4gcHJlZmVycmVkQ2hhcnNldHModGhpcy5yZXF1ZXN0LmhlYWRlcnNbJ2FjY2VwdC1jaGFyc2V0J10sIGF2YWlsYWJsZSk7XG59O1xuXG5OZWdvdGlhdG9yLnByb3RvdHlwZS5lbmNvZGluZyA9IGZ1bmN0aW9uIGVuY29kaW5nKGF2YWlsYWJsZSwgb3B0cykge1xuICB2YXIgc2V0ID0gdGhpcy5lbmNvZGluZ3MoYXZhaWxhYmxlLCBvcHRzKTtcbiAgcmV0dXJuIHNldCAmJiBzZXRbMF07XG59O1xuXG5OZWdvdGlhdG9yLnByb3RvdHlwZS5lbmNvZGluZ3MgPSBmdW5jdGlvbiBlbmNvZGluZ3MoYXZhaWxhYmxlLCBvcHRpb25zKSB7XG4gIHZhciBvcHRzID0gb3B0aW9ucyB8fCB7fTtcbiAgcmV0dXJuIHByZWZlcnJlZEVuY29kaW5ncyh0aGlzLnJlcXVlc3QuaGVhZGVyc1snYWNjZXB0LWVuY29kaW5nJ10sIGF2YWlsYWJsZSwgb3B0cy5wcmVmZXJyZWQpO1xufTtcblxuTmVnb3RpYXRvci5wcm90b3R5cGUubGFuZ3VhZ2UgPSBmdW5jdGlvbiBsYW5ndWFnZShhdmFpbGFibGUpIHtcbiAgdmFyIHNldCA9IHRoaXMubGFuZ3VhZ2VzKGF2YWlsYWJsZSk7XG4gIHJldHVybiBzZXQgJiYgc2V0WzBdO1xufTtcblxuTmVnb3RpYXRvci5wcm90b3R5cGUubGFuZ3VhZ2VzID0gZnVuY3Rpb24gbGFuZ3VhZ2VzKGF2YWlsYWJsZSkge1xuICByZXR1cm4gcHJlZmVycmVkTGFuZ3VhZ2VzKHRoaXMucmVxdWVzdC5oZWFkZXJzWydhY2NlcHQtbGFuZ3VhZ2UnXSwgYXZhaWxhYmxlKTtcbn07XG5cbk5lZ290aWF0b3IucHJvdG90eXBlLm1lZGlhVHlwZSA9IGZ1bmN0aW9uIG1lZGlhVHlwZShhdmFpbGFibGUpIHtcbiAgdmFyIHNldCA9IHRoaXMubWVkaWFUeXBlcyhhdmFpbGFibGUpO1xuICByZXR1cm4gc2V0ICYmIHNldFswXTtcbn07XG5cbk5lZ290aWF0b3IucHJvdG90eXBlLm1lZGlhVHlwZXMgPSBmdW5jdGlvbiBtZWRpYVR5cGVzKGF2YWlsYWJsZSkge1xuICByZXR1cm4gcHJlZmVycmVkTWVkaWFUeXBlcyh0aGlzLnJlcXVlc3QuaGVhZGVycy5hY2NlcHQsIGF2YWlsYWJsZSk7XG59O1xuXG4vLyBCYWNrd2FyZHMgY29tcGF0aWJpbGl0eVxuTmVnb3RpYXRvci5wcm90b3R5cGUucHJlZmVycmVkQ2hhcnNldCA9IE5lZ290aWF0b3IucHJvdG90eXBlLmNoYXJzZXQ7XG5OZWdvdGlhdG9yLnByb3RvdHlwZS5wcmVmZXJyZWRDaGFyc2V0cyA9IE5lZ290aWF0b3IucHJvdG90eXBlLmNoYXJzZXRzO1xuTmVnb3RpYXRvci5wcm90b3R5cGUucHJlZmVycmVkRW5jb2RpbmcgPSBOZWdvdGlhdG9yLnByb3RvdHlwZS5lbmNvZGluZztcbk5lZ290aWF0b3IucHJvdG90eXBlLnByZWZlcnJlZEVuY29kaW5ncyA9IE5lZ290aWF0b3IucHJvdG90eXBlLmVuY29kaW5ncztcbk5lZ290aWF0b3IucHJvdG90eXBlLnByZWZlcnJlZExhbmd1YWdlID0gTmVnb3RpYXRvci5wcm90b3R5cGUubGFuZ3VhZ2U7XG5OZWdvdGlhdG9yLnByb3RvdHlwZS5wcmVmZXJyZWRMYW5ndWFnZXMgPSBOZWdvdGlhdG9yLnByb3RvdHlwZS5sYW5ndWFnZXM7XG5OZWdvdGlhdG9yLnByb3RvdHlwZS5wcmVmZXJyZWRNZWRpYVR5cGUgPSBOZWdvdGlhdG9yLnByb3RvdHlwZS5tZWRpYVR5cGU7XG5OZWdvdGlhdG9yLnByb3RvdHlwZS5wcmVmZXJyZWRNZWRpYVR5cGVzID0gTmVnb3RpYXRvci5wcm90b3R5cGUubWVkaWFUeXBlcztcbiIsICIvKiFcbiAqIGNvbXByZXNzaWJsZVxuICogQ29weXJpZ2h0KGMpIDIwMTMgSm9uYXRoYW4gT25nXG4gKiBDb3B5cmlnaHQoYykgMjAxNCBKZXJlbWlhaCBTZW5rcGllbFxuICogQ29weXJpZ2h0KGMpIDIwMTUgRG91Z2xhcyBDaHJpc3RvcGhlciBXaWxzb25cbiAqIE1JVCBMaWNlbnNlZFxuICovXG5cbid1c2Ugc3RyaWN0J1xuXG4vKipcbiAqIE1vZHVsZSBkZXBlbmRlbmNpZXMuXG4gKiBAcHJpdmF0ZVxuICovXG5cbnZhciBkYiA9IHJlcXVpcmUoJ21pbWUtZGInKVxuXG4vKipcbiAqIE1vZHVsZSB2YXJpYWJsZXMuXG4gKiBAcHJpdmF0ZVxuICovXG5cbnZhciBDT01QUkVTU0lCTEVfVFlQRV9SRUdFWFAgPSAvXnRleHRcXC98XFwrKD86anNvbnx0ZXh0fHhtbCkkL2lcbnZhciBFWFRSQUNUX1RZUEVfUkVHRVhQID0gL15cXHMqKFteO1xcc10qKSg/Ojt8XFxzfCQpL1xuXG4vKipcbiAqIE1vZHVsZSBleHBvcnRzLlxuICogQHB1YmxpY1xuICovXG5cbm1vZHVsZS5leHBvcnRzID0gY29tcHJlc3NpYmxlXG5cbi8qKlxuICogQ2hlY2tzIGlmIGEgdHlwZSBpcyBjb21wcmVzc2libGUuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHR5cGVcbiAqIEByZXR1cm4ge0Jvb2xlYW59IGNvbXByZXNzaWJsZVxuICogQHB1YmxpY1xuICovXG5cbmZ1bmN0aW9uIGNvbXByZXNzaWJsZSAodHlwZSkge1xuICBpZiAoIXR5cGUgfHwgdHlwZW9mIHR5cGUgIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICAvLyBzdHJpcCBwYXJhbWV0ZXJzXG4gIHZhciBtYXRjaCA9IEVYVFJBQ1RfVFlQRV9SRUdFWFAuZXhlYyh0eXBlKVxuICB2YXIgbWltZSA9IG1hdGNoICYmIG1hdGNoWzFdLnRvTG93ZXJDYXNlKClcbiAgdmFyIGRhdGEgPSBkYlttaW1lXVxuXG4gIC8vIHJldHVybiBkYXRhYmFzZSBpbmZvcm1hdGlvblxuICBpZiAoZGF0YSAmJiBkYXRhLmNvbXByZXNzaWJsZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIGRhdGEuY29tcHJlc3NpYmxlXG4gIH1cblxuICAvLyBmYWxsYmFjayB0byByZWdleHAgb3IgdW5rbm93blxuICByZXR1cm4gQ09NUFJFU1NJQkxFX1RZUEVfUkVHRVhQLnRlc3QobWltZSkgfHwgdW5kZWZpbmVkXG59XG4iLCAiLyoqXG4gKiBjb21tb24uanM6IEludGVybmFsIGhlbHBlciBhbmQgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIHdpbnN0b24uXG4gKlxuICogKEMpIDIwMTAgQ2hhcmxpZSBSb2JiaW5zXG4gKiBNSVQgTElDRU5DRVxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuY29uc3QgeyBmb3JtYXQgfSA9IHJlcXVpcmUoJ3V0aWwnKTtcblxuLyoqXG4gKiBTZXQgb2Ygc2ltcGxlIGRlcHJlY2F0aW9uIG5vdGljZXMgYW5kIGEgd2F5IHRvIGV4cG9zZSB0aGVtIGZvciBhIHNldCBvZlxuICogcHJvcGVydGllcy5cbiAqIEB0eXBlIHtPYmplY3R9XG4gKiBAcHJpdmF0ZVxuICovXG5leHBvcnRzLndhcm4gPSB7XG4gIGRlcHJlY2F0ZWQocHJvcCkge1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoZm9ybWF0KCd7ICVzIH0gd2FzIHJlbW92ZWQgaW4gd2luc3RvbkAzLjAuMC4nLCBwcm9wKSk7XG4gICAgfTtcbiAgfSxcbiAgdXNlRm9ybWF0KHByb3ApIHtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFtcbiAgICAgICAgZm9ybWF0KCd7ICVzIH0gd2FzIHJlbW92ZWQgaW4gd2luc3RvbkAzLjAuMC4nLCBwcm9wKSxcbiAgICAgICAgJ1VzZSBhIGN1c3RvbSB3aW5zdG9uLmZvcm1hdCA9IHdpbnN0b24uZm9ybWF0KGZ1bmN0aW9uKSBpbnN0ZWFkLidcbiAgICAgIF0uam9pbignXFxuJykpO1xuICAgIH07XG4gIH0sXG4gIGZvckZ1bmN0aW9ucyhvYmosIHR5cGUsIHByb3BzKSB7XG4gICAgcHJvcHMuZm9yRWFjaChwcm9wID0+IHtcbiAgICAgIG9ialtwcm9wXSA9IGV4cG9ydHMud2Fyblt0eXBlXShwcm9wKTtcbiAgICB9KTtcbiAgfSxcbiAgZm9yUHJvcGVydGllcyhvYmosIHR5cGUsIHByb3BzKSB7XG4gICAgcHJvcHMuZm9yRWFjaChwcm9wID0+IHtcbiAgICAgIGNvbnN0IG5vdGljZSA9IGV4cG9ydHMud2Fyblt0eXBlXShwcm9wKTtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIHByb3AsIHtcbiAgICAgICAgZ2V0OiBub3RpY2UsXG4gICAgICAgIHNldDogbm90aWNlXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxufTtcbiIsICJ7XG5cdFwibmFtZVwiOiBcIndpbnN0b25cIixcblx0XCJkZXNjcmlwdGlvblwiOiBcIkEgbG9nZ2VyIGZvciBqdXN0IGFib3V0IGV2ZXJ5dGhpbmcuXCIsXG5cdFwidmVyc2lvblwiOiBcIjMuMTkuMFwiLFxuXHRcImF1dGhvclwiOiBcIkNoYXJsaWUgUm9iYmlucyA8Y2hhcmxpZS5yb2JiaW5zQGdtYWlsLmNvbT5cIixcblx0XCJtYWludGFpbmVyc1wiOiBbXG5cdFx0XCJEYXZpZCBIeWRlIDxkYWJoQGFsdW1uaS5zdGFuZm9yZC5lZHU+XCJcblx0XSxcblx0XCJyZXBvc2l0b3J5XCI6IHtcblx0XHRcInR5cGVcIjogXCJnaXRcIixcblx0XHRcInVybFwiOiBcImh0dHBzOi8vZ2l0aHViLmNvbS93aW5zdG9uanMvd2luc3Rvbi5naXRcIlxuXHR9LFxuXHRcImtleXdvcmRzXCI6IFtcblx0XHRcIndpbnN0b25cIixcblx0XHRcImxvZ2dlclwiLFxuXHRcdFwibG9nZ2luZ1wiLFxuXHRcdFwibG9nc1wiLFxuXHRcdFwic3lzYWRtaW5cIixcblx0XHRcImJ1bnlhblwiLFxuXHRcdFwicGlub1wiLFxuXHRcdFwibG9nbGV2ZWxcIixcblx0XHRcInRvb2xzXCIsXG5cdFx0XCJqc29uXCIsXG5cdFx0XCJzdHJlYW1cIlxuXHRdLFxuXHRcImRlcGVuZGVuY2llc1wiOiB7XG5cdFx0XCJAZGFiaC9kaWFnbm9zdGljc1wiOiBcIl4yLjAuOFwiLFxuXHRcdFwiQGNvbG9ycy9jb2xvcnNcIjogXCJeMS42LjBcIixcblx0XHRcImFzeW5jXCI6IFwiXjMuMi4zXCIsXG5cdFx0XCJpcy1zdHJlYW1cIjogXCJeMi4wLjBcIixcblx0XHRcImxvZ2Zvcm1cIjogXCJeMi43LjBcIixcblx0XHRcIm9uZS10aW1lXCI6IFwiXjEuMC4wXCIsXG5cdFx0XCJyZWFkYWJsZS1zdHJlYW1cIjogXCJeMy40LjBcIixcblx0XHRcInNhZmUtc3RhYmxlLXN0cmluZ2lmeVwiOiBcIl4yLjMuMVwiLFxuXHRcdFwic3RhY2stdHJhY2VcIjogXCIwLjAueFwiLFxuXHRcdFwidHJpcGxlLWJlYW1cIjogXCJeMS4zLjBcIixcblx0XHRcIndpbnN0b24tdHJhbnNwb3J0XCI6IFwiXjQuOS4wXCJcblx0fSxcblx0XCJkZXZEZXBlbmRlbmNpZXNcIjoge1xuXHRcdFwiQGJhYmVsL2NsaVwiOiBcIl43LjIzLjlcIixcblx0XHRcIkBiYWJlbC9jb3JlXCI6IFwiXjcuMjQuMFwiLFxuXHRcdFwiQGJhYmVsL3ByZXNldC1lbnZcIjogXCJeNy4yNC4wXCIsXG5cdFx0XCJAZGFiaC9lc2xpbnQtY29uZmlnLXBvcHVsaXN0XCI6IFwiXjQuNC4wXCIsXG5cdFx0XCJAdHlwZXMvbm9kZVwiOiBcIl4yMC4xMS4yNFwiLFxuXHRcdFwiYWJzdHJhY3Qtd2luc3Rvbi10cmFuc3BvcnRcIjogXCJeMC41LjFcIixcblx0XHRcImFzc3VtZVwiOiBcIl4yLjIuMFwiLFxuXHRcdFwiY3Jvc3Mtc3Bhd24tYXN5bmNcIjogXCJeMi4yLjVcIixcblx0XHRcImVzbGludFwiOiBcIl44LjU3LjBcIixcblx0XHRcImhvY2tcIjogXCJeMS40LjFcIixcblx0XHRcImplc3RcIjogXCJeMjkuNy4wXCIsXG5cdFx0XCJyaW1yYWZcIjogXCI1LjAuMTBcIixcblx0XHRcInNwbGl0MlwiOiBcIl40LjEuMFwiLFxuXHRcdFwic3RkLW1vY2tzXCI6IFwiXjIuMC4wXCIsXG5cdFx0XCJ0aHJvdWdoMlwiOiBcIl40LjAuMlwiLFxuXHRcdFwid2luc3Rvbi1jb21wYXRcIjogXCJeMC4xLjVcIlxuXHR9LFxuXHRcIm1haW5cIjogXCIuL2xpYi93aW5zdG9uLmpzXCIsXG5cdFwiYnJvd3NlclwiOiBcIi4vZGlzdC93aW5zdG9uXCIsXG5cdFwidHlwZXNcIjogXCIuL2luZGV4LmQudHNcIixcblx0XCJzY3JpcHRzXCI6IHtcblx0XHRcImxpbnRcIjogXCJlc2xpbnQgbGliLyouanMgbGliL3dpbnN0b24vKi5qcyBsaWIvd2luc3Rvbi8qKi8qLmpzIC0tcmVzb2x2ZS1wbHVnaW5zLXJlbGF0aXZlLXRvIC4vbm9kZV9tb2R1bGVzL0BkYWJoL2VzbGludC1jb25maWctcG9wdWxpc3RcIixcblx0XHRcInRlc3RcIjogXCJqZXN0XCIsXG5cdFx0XCJ0ZXN0OnVuaXRcIjogXCJqZXN0IC1jIHRlc3QvamVzdC5jb25maWcudW5pdC5qc1wiLFxuXHRcdFwidGVzdDppbnRlZ3JhdGlvblwiOiBcImplc3QgLWMgdGVzdC9qZXN0LmNvbmZpZy5pbnRlZ3JhdGlvbi5qc1wiLFxuXHRcdFwidGVzdDp0eXBlc2NyaXB0XCI6IFwibnB4IC0tcGFja2FnZSB0eXBlc2NyaXB0IHRzYyAtLXByb2plY3QgdGVzdFwiLFxuXHRcdFwiYnVpbGRcIjogXCJiYWJlbCBsaWIgLWQgZGlzdFwiLFxuXHRcdFwicHJlYnVpbGRcIjogXCJyaW1yYWYgZGlzdFwiLFxuXHRcdFwicHJlcHVibGlzaE9ubHlcIjogXCJucG0gcnVuIGJ1aWxkXCJcblx0fSxcblx0XCJlbmdpbmVzXCI6IHtcblx0XHRcIm5vZGVcIjogXCI+PSAxMi4wLjBcIlxuXHR9LFxuXHRcImxpY2Vuc2VcIjogXCJNSVRcIlxufVxuIiwgIi8qIGVzbGludC1kaXNhYmxlIG5vLWNvbnNvbGUgKi9cbi8qXG4gKiBjb25zb2xlLmpzOiBUcmFuc3BvcnQgZm9yIG91dHB1dHRpbmcgdG8gdGhlIGNvbnNvbGUuXG4gKlxuICogKEMpIDIwMTAgQ2hhcmxpZSBSb2JiaW5zXG4gKiBNSVQgTElDRU5DRVxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuY29uc3Qgb3MgPSByZXF1aXJlKCdvcycpO1xuY29uc3QgeyBMRVZFTCwgTUVTU0FHRSB9ID0gcmVxdWlyZSgndHJpcGxlLWJlYW0nKTtcbmNvbnN0IFRyYW5zcG9ydFN0cmVhbSA9IHJlcXVpcmUoJ3dpbnN0b24tdHJhbnNwb3J0Jyk7XG5cbi8qKlxuICogVHJhbnNwb3J0IGZvciBvdXRwdXR0aW5nIHRvIHRoZSBjb25zb2xlLlxuICogQHR5cGUge0NvbnNvbGV9XG4gKiBAZXh0ZW5kcyB7VHJhbnNwb3J0U3RyZWFtfVxuICovXG5tb2R1bGUuZXhwb3J0cyA9IGNsYXNzIENvbnNvbGUgZXh0ZW5kcyBUcmFuc3BvcnRTdHJlYW0ge1xuICAvKipcbiAgICogQ29uc3RydWN0b3IgZnVuY3Rpb24gZm9yIHRoZSBDb25zb2xlIHRyYW5zcG9ydCBvYmplY3QgcmVzcG9uc2libGUgZm9yXG4gICAqIHBlcnNpc3RpbmcgbG9nIG1lc3NhZ2VzIGFuZCBtZXRhZGF0YSB0byBhIHRlcm1pbmFsIG9yIFRUWS5cbiAgICogQHBhcmFtIHshT2JqZWN0fSBbb3B0aW9ucz17fV0gLSBPcHRpb25zIGZvciB0aGlzIGluc3RhbmNlLlxuICAgKi9cbiAgY29uc3RydWN0b3Iob3B0aW9ucyA9IHt9KSB7XG4gICAgc3VwZXIob3B0aW9ucyk7XG5cbiAgICAvLyBFeHBvc2UgdGhlIG5hbWUgb2YgdGhpcyBUcmFuc3BvcnQgb24gdGhlIHByb3RvdHlwZVxuICAgIHRoaXMubmFtZSA9IG9wdGlvbnMubmFtZSB8fCAnY29uc29sZSc7XG4gICAgdGhpcy5zdGRlcnJMZXZlbHMgPSB0aGlzLl9zdHJpbmdBcnJheVRvU2V0KG9wdGlvbnMuc3RkZXJyTGV2ZWxzKTtcbiAgICB0aGlzLmNvbnNvbGVXYXJuTGV2ZWxzID0gdGhpcy5fc3RyaW5nQXJyYXlUb1NldChvcHRpb25zLmNvbnNvbGVXYXJuTGV2ZWxzKTtcbiAgICB0aGlzLmVvbCA9IHR5cGVvZiBvcHRpb25zLmVvbCA9PT0gJ3N0cmluZycgPyBvcHRpb25zLmVvbCA6IG9zLkVPTDtcbiAgICB0aGlzLmZvcmNlQ29uc29sZSA9IG9wdGlvbnMuZm9yY2VDb25zb2xlIHx8IGZhbHNlO1xuXG4gICAgLy8gS2VlcCBhIHJlZmVyZW5jZSB0byB0aGUgbG9nLCB3YXJuLCBhbmQgZXJyb3IgY29uc29sZSBtZXRob2RzXG4gICAgLy8gaW4gY2FzZSB0aGV5IGdldCByZWRpcmVjdGVkIHRvIHRoaXMgdHJhbnNwb3J0IGFmdGVyIHRoZSBsb2dnZXIgaXNcbiAgICAvLyBpbnN0YW50aWF0ZWQuIFRoaXMgcHJldmVudHMgYSBjaXJjdWxhciByZWZlcmVuY2UgaXNzdWUuXG4gICAgdGhpcy5fY29uc29sZUxvZyA9IGNvbnNvbGUubG9nLmJpbmQoY29uc29sZSk7XG4gICAgdGhpcy5fY29uc29sZVdhcm4gPSBjb25zb2xlLndhcm4uYmluZChjb25zb2xlKTtcbiAgICB0aGlzLl9jb25zb2xlRXJyb3IgPSBjb25zb2xlLmVycm9yLmJpbmQoY29uc29sZSk7XG5cbiAgICB0aGlzLnNldE1heExpc3RlbmVycygzMCk7XG4gIH1cblxuICAvKipcbiAgICogQ29yZSBsb2dnaW5nIG1ldGhvZCBleHBvc2VkIHRvIFdpbnN0b24uXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBpbmZvIC0gVE9ETzogYWRkIHBhcmFtIGRlc2NyaXB0aW9uLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBjYWxsYmFjayAtIFRPRE86IGFkZCBwYXJhbSBkZXNjcmlwdGlvbi5cbiAgICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAgICovXG4gIGxvZyhpbmZvLCBjYWxsYmFjaykge1xuICAgIHNldEltbWVkaWF0ZSgoKSA9PiB0aGlzLmVtaXQoJ2xvZ2dlZCcsIGluZm8pKTtcblxuICAgIC8vIFJlbWFyazogd2hhdCBpZiB0aGVyZSBpcyBubyByYXcuLi4/XG4gICAgaWYgKHRoaXMuc3RkZXJyTGV2ZWxzW2luZm9bTEVWRUxdXSkge1xuICAgICAgaWYgKGNvbnNvbGUuX3N0ZGVyciAmJiAhdGhpcy5mb3JjZUNvbnNvbGUpIHtcbiAgICAgICAgLy8gTm9kZS5qcyBtYXBzIGBwcm9jZXNzLnN0ZGVycmAgdG8gYGNvbnNvbGUuX3N0ZGVycmAuXG4gICAgICAgIGNvbnNvbGUuX3N0ZGVyci53cml0ZShgJHtpbmZvW01FU1NBR0VdfSR7dGhpcy5lb2x9YCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBjb25zb2xlLmVycm9yIGFkZHMgYSBuZXdsaW5lXG4gICAgICAgIHRoaXMuX2NvbnNvbGVFcnJvcihpbmZvW01FU1NBR0VdKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGNhbGxiYWNrKSB7XG4gICAgICAgIGNhbGxiYWNrKCk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgY2FsbGJhY2stcmV0dXJuXG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIGlmICh0aGlzLmNvbnNvbGVXYXJuTGV2ZWxzW2luZm9bTEVWRUxdXSkge1xuICAgICAgaWYgKGNvbnNvbGUuX3N0ZGVyciAmJiAhdGhpcy5mb3JjZUNvbnNvbGUpIHtcbiAgICAgICAgLy8gTm9kZS5qcyBtYXBzIGBwcm9jZXNzLnN0ZGVycmAgdG8gYGNvbnNvbGUuX3N0ZGVycmAuXG4gICAgICAgIC8vIGluIE5vZGUuanMgY29uc29sZS53YXJuIGlzIGFuIGFsaWFzIGZvciBjb25zb2xlLmVycm9yXG4gICAgICAgIGNvbnNvbGUuX3N0ZGVyci53cml0ZShgJHtpbmZvW01FU1NBR0VdfSR7dGhpcy5lb2x9YCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBjb25zb2xlLndhcm4gYWRkcyBhIG5ld2xpbmVcbiAgICAgICAgdGhpcy5fY29uc29sZVdhcm4oaW5mb1tNRVNTQUdFXSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgICBjYWxsYmFjaygpOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIGNhbGxiYWNrLXJldHVyblxuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChjb25zb2xlLl9zdGRvdXQgJiYgIXRoaXMuZm9yY2VDb25zb2xlKSB7XG4gICAgICAvLyBOb2RlLmpzIG1hcHMgYHByb2Nlc3Muc3Rkb3V0YCB0byBgY29uc29sZS5fc3Rkb3V0YC5cbiAgICAgIGNvbnNvbGUuX3N0ZG91dC53cml0ZShgJHtpbmZvW01FU1NBR0VdfSR7dGhpcy5lb2x9YCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGNvbnNvbGUubG9nIGFkZHMgYSBuZXdsaW5lLlxuICAgICAgdGhpcy5fY29uc29sZUxvZyhpbmZvW01FU1NBR0VdKTtcbiAgICB9XG5cbiAgICBpZiAoY2FsbGJhY2spIHtcbiAgICAgIGNhbGxiYWNrKCk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgY2FsbGJhY2stcmV0dXJuXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBTZXQtbGlrZSBvYmplY3Qgd2l0aCBzdHJBcnJheSdzIGVsZW1lbnRzIGFzIGtleXMgKGVhY2ggd2l0aCB0aGVcbiAgICogdmFsdWUgdHJ1ZSkuXG4gICAqIEBwYXJhbSB7QXJyYXl9IHN0ckFycmF5IC0gQXJyYXkgb2YgU2V0LWVsZW1lbnRzIGFzIHN0cmluZ3MuXG4gICAqIEBwYXJhbSB7P3N0cmluZ30gW2Vyck1zZ10gLSBDdXN0b20gZXJyb3IgbWVzc2FnZSB0aHJvd24gb24gaW52YWxpZCBpbnB1dC5cbiAgICogQHJldHVybnMge09iamVjdH0gLSBUT0RPOiBhZGQgcmV0dXJuIGRlc2NyaXB0aW9uLlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgX3N0cmluZ0FycmF5VG9TZXQoc3RyQXJyYXksIGVyck1zZykge1xuICAgIGlmICghc3RyQXJyYXkpIHJldHVybiB7fTtcblxuICAgIGVyck1zZyA9XG4gICAgICBlcnJNc2cgfHwgJ0Nhbm5vdCBtYWtlIHNldCBmcm9tIHR5cGUgb3RoZXIgdGhhbiBBcnJheSBvZiBzdHJpbmcgZWxlbWVudHMnO1xuXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHN0ckFycmF5KSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGVyck1zZyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0ckFycmF5LnJlZHVjZSgoc2V0LCBlbCkgPT4ge1xuICAgICAgaWYgKHR5cGVvZiBlbCAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGVyck1zZyk7XG4gICAgICB9XG4gICAgICBzZXRbZWxdID0gdHJ1ZTtcblxuICAgICAgcmV0dXJuIHNldDtcbiAgICB9LCB7fSk7XG4gIH1cbn07XG4iLCAiLyoqXG4gKiB0YWlsLWZpbGUuanM6IFRPRE86IGFkZCBmaWxlIGhlYWRlciBkZXNjcmlwdGlvbi5cbiAqXG4gKiAoQykgMjAxMCBDaGFybGllIFJvYmJpbnNcbiAqIE1JVCBMSUNFTkNFXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5jb25zdCBmcyA9IHJlcXVpcmUoJ2ZzJyk7XG5jb25zdCB7IFN0cmluZ0RlY29kZXIgfSA9IHJlcXVpcmUoJ3N0cmluZ19kZWNvZGVyJyk7XG5jb25zdCB7IFN0cmVhbSB9ID0gcmVxdWlyZSgncmVhZGFibGUtc3RyZWFtJyk7XG5cbi8qKlxuICogU2ltcGxlIG5vLW9wIGZ1bmN0aW9uLlxuICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAqL1xuZnVuY3Rpb24gbm9vcCgpIHt9XG5cbi8qKlxuICogVE9ETzogYWRkIGZ1bmN0aW9uIGRlc2NyaXB0aW9uLlxuICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgLSBPcHRpb25zIGZvciB0YWlsLlxuICogQHBhcmFtIHtmdW5jdGlvbn0gaXRlciAtIEl0ZXJhdG9yIGZ1bmN0aW9uIHRvIGV4ZWN1dGUgb24gZXZlcnkgbGluZS5cbiogYHRhaWwgLWZgIGEgZmlsZS4gT3B0aW9ucyBtdXN0IGluY2x1ZGUgZmlsZS5cbiAqIEByZXR1cm5zIHttaXhlZH0gLSBUT0RPOiBhZGQgcmV0dXJuIGRlc2NyaXB0aW9uLlxuICovXG5tb2R1bGUuZXhwb3J0cyA9IChvcHRpb25zLCBpdGVyKSA9PiB7XG4gIGNvbnN0IGJ1ZmZlciA9IEJ1ZmZlci5hbGxvYyg2NCAqIDEwMjQpO1xuICBjb25zdCBkZWNvZGUgPSBuZXcgU3RyaW5nRGVjb2RlcigndXRmOCcpO1xuICBjb25zdCBzdHJlYW0gPSBuZXcgU3RyZWFtKCk7XG4gIGxldCBidWZmID0gJyc7XG4gIGxldCBwb3MgPSAwO1xuICBsZXQgcm93ID0gMDtcblxuICBpZiAob3B0aW9ucy5zdGFydCA9PT0gLTEpIHtcbiAgICBkZWxldGUgb3B0aW9ucy5zdGFydDtcbiAgfVxuXG4gIHN0cmVhbS5yZWFkYWJsZSA9IHRydWU7XG4gIHN0cmVhbS5kZXN0cm95ID0gKCkgPT4ge1xuICAgIHN0cmVhbS5kZXN0cm95ZWQgPSB0cnVlO1xuICAgIHN0cmVhbS5lbWl0KCdlbmQnKTtcbiAgICBzdHJlYW0uZW1pdCgnY2xvc2UnKTtcbiAgfTtcblxuICBmcy5vcGVuKG9wdGlvbnMuZmlsZSwgJ2ErJywgJzA2NDQnLCAoZXJyLCBmZCkgPT4ge1xuICAgIGlmIChlcnIpIHtcbiAgICAgIGlmICghaXRlcikge1xuICAgICAgICBzdHJlYW0uZW1pdCgnZXJyb3InLCBlcnIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaXRlcihlcnIpO1xuICAgICAgfVxuICAgICAgc3RyZWFtLmRlc3Ryb3koKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAoZnVuY3Rpb24gcmVhZCgpIHtcbiAgICAgIGlmIChzdHJlYW0uZGVzdHJveWVkKSB7XG4gICAgICAgIGZzLmNsb3NlKGZkLCBub29wKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZnMucmVhZChmZCwgYnVmZmVyLCAwLCBidWZmZXIubGVuZ3RoLCBwb3MsIChlcnJvciwgYnl0ZXMpID0+IHtcbiAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgaWYgKCFpdGVyKSB7XG4gICAgICAgICAgICBzdHJlYW0uZW1pdCgnZXJyb3InLCBlcnJvcik7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGl0ZXIoZXJyb3IpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBzdHJlYW0uZGVzdHJveSgpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghYnl0ZXMpIHtcbiAgICAgICAgICBpZiAoYnVmZikge1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVxZXFlcVxuICAgICAgICAgICAgaWYgKG9wdGlvbnMuc3RhcnQgPT0gbnVsbCB8fCByb3cgPiBvcHRpb25zLnN0YXJ0KSB7XG4gICAgICAgICAgICAgIGlmICghaXRlcikge1xuICAgICAgICAgICAgICAgIHN0cmVhbS5lbWl0KCdsaW5lJywgYnVmZik7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaXRlcihudWxsLCBidWZmKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcm93Kys7XG4gICAgICAgICAgICBidWZmID0gJyc7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBzZXRUaW1lb3V0KHJlYWQsIDEwMDApO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGRhdGEgPSBkZWNvZGUud3JpdGUoYnVmZmVyLnNsaWNlKDAsIGJ5dGVzKSk7XG4gICAgICAgIGlmICghaXRlcikge1xuICAgICAgICAgIHN0cmVhbS5lbWl0KCdkYXRhJywgZGF0YSk7XG4gICAgICAgIH1cblxuICAgICAgICBkYXRhID0gKGJ1ZmYgKyBkYXRhKS5zcGxpdCgvXFxuKy8pO1xuXG4gICAgICAgIGNvbnN0IGwgPSBkYXRhLmxlbmd0aCAtIDE7XG4gICAgICAgIGxldCBpID0gMDtcblxuICAgICAgICBmb3IgKDsgaSA8IGw7IGkrKykge1xuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcWVxZXFcbiAgICAgICAgICBpZiAob3B0aW9ucy5zdGFydCA9PSBudWxsIHx8IHJvdyA+IG9wdGlvbnMuc3RhcnQpIHtcbiAgICAgICAgICAgIGlmICghaXRlcikge1xuICAgICAgICAgICAgICBzdHJlYW0uZW1pdCgnbGluZScsIGRhdGFbaV0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgaXRlcihudWxsLCBkYXRhW2ldKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcm93Kys7XG4gICAgICAgIH1cblxuICAgICAgICBidWZmID0gZGF0YVtsXTtcbiAgICAgICAgcG9zICs9IGJ5dGVzO1xuICAgICAgICByZXR1cm4gcmVhZCgpO1xuICAgICAgfSk7XG4gICAgfSgpKTtcbiAgfSk7XG5cbiAgaWYgKCFpdGVyKSB7XG4gICAgcmV0dXJuIHN0cmVhbTtcbiAgfVxuXG4gIHJldHVybiBzdHJlYW0uZGVzdHJveTtcbn07XG4iLCAiLyogZXNsaW50LWRpc2FibGUgY29tcGxleGl0eSxtYXgtc3RhdGVtZW50cyAqL1xuLyoqXG4gKiBmaWxlLmpzOiBUcmFuc3BvcnQgZm9yIG91dHB1dHRpbmcgdG8gYSBsb2NhbCBsb2cgZmlsZS5cbiAqXG4gKiAoQykgMjAxMCBDaGFybGllIFJvYmJpbnNcbiAqIE1JVCBMSUNFTkNFXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5jb25zdCBmcyA9IHJlcXVpcmUoJ2ZzJyk7XG5jb25zdCBwYXRoID0gcmVxdWlyZSgncGF0aCcpO1xuY29uc3QgYXN5bmNTZXJpZXMgPSByZXF1aXJlKCdhc3luYy9zZXJpZXMnKTtcbmNvbnN0IHpsaWIgPSByZXF1aXJlKCd6bGliJyk7XG5jb25zdCB7IE1FU1NBR0UgfSA9IHJlcXVpcmUoJ3RyaXBsZS1iZWFtJyk7XG5jb25zdCB7IFN0cmVhbSwgUGFzc1Rocm91Z2ggfSA9IHJlcXVpcmUoJ3JlYWRhYmxlLXN0cmVhbScpO1xuY29uc3QgVHJhbnNwb3J0U3RyZWFtID0gcmVxdWlyZSgnd2luc3Rvbi10cmFuc3BvcnQnKTtcbmNvbnN0IGRlYnVnID0gcmVxdWlyZSgnQGRhYmgvZGlhZ25vc3RpY3MnKSgnd2luc3RvbjpmaWxlJyk7XG5jb25zdCBvcyA9IHJlcXVpcmUoJ29zJyk7XG5jb25zdCB0YWlsRmlsZSA9IHJlcXVpcmUoJy4uL3RhaWwtZmlsZScpO1xuXG4vKipcbiAqIFRyYW5zcG9ydCBmb3Igb3V0cHV0dGluZyB0byBhIGxvY2FsIGxvZyBmaWxlLlxuICogQHR5cGUge0ZpbGV9XG4gKiBAZXh0ZW5kcyB7VHJhbnNwb3J0U3RyZWFtfVxuICovXG5tb2R1bGUuZXhwb3J0cyA9IGNsYXNzIEZpbGUgZXh0ZW5kcyBUcmFuc3BvcnRTdHJlYW0ge1xuICAvKipcbiAgICogQ29uc3RydWN0b3IgZnVuY3Rpb24gZm9yIHRoZSBGaWxlIHRyYW5zcG9ydCBvYmplY3QgcmVzcG9uc2libGUgZm9yXG4gICAqIHBlcnNpc3RpbmcgbG9nIG1lc3NhZ2VzIGFuZCBtZXRhZGF0YSB0byBvbmUgb3IgbW9yZSBmaWxlcy5cbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgLSBPcHRpb25zIGZvciB0aGlzIGluc3RhbmNlLlxuICAgKi9cbiAgY29uc3RydWN0b3Iob3B0aW9ucyA9IHt9KSB7XG4gICAgc3VwZXIob3B0aW9ucyk7XG5cbiAgICAvLyBFeHBvc2UgdGhlIG5hbWUgb2YgdGhpcyBUcmFuc3BvcnQgb24gdGhlIHByb3RvdHlwZS5cbiAgICB0aGlzLm5hbWUgPSBvcHRpb25zLm5hbWUgfHwgJ2ZpbGUnO1xuXG4gICAgLy8gSGVscGVyIGZ1bmN0aW9uIHdoaWNoIHRocm93cyBhbiBgRXJyb3JgIGluIHRoZSBldmVudCB0aGF0IGFueSBvZiB0aGVcbiAgICAvLyByZXN0IG9mIHRoZSBhcmd1bWVudHMgaXMgcHJlc2VudCBpbiBgb3B0aW9uc2AuXG4gICAgZnVuY3Rpb24gdGhyb3dJZih0YXJnZXQsIC4uLmFyZ3MpIHtcbiAgICAgIGFyZ3Muc2xpY2UoMSkuZm9yRWFjaChuYW1lID0+IHtcbiAgICAgICAgaWYgKG9wdGlvbnNbbmFtZV0pIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBzZXQgJHtuYW1lfSBhbmQgJHt0YXJnZXR9IHRvZ2V0aGVyYCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIFNldHVwIHRoZSBiYXNlIHN0cmVhbSB0aGF0IGFsd2F5cyBnZXRzIHBpcGVkIHRvIHRvIGhhbmRsZSBidWZmZXJpbmcuXG4gICAgdGhpcy5fc3RyZWFtID0gbmV3IFBhc3NUaHJvdWdoKCk7XG4gICAgdGhpcy5fc3RyZWFtLnNldE1heExpc3RlbmVycygzMCk7XG5cbiAgICAvLyBCaW5kIHRoaXMgY29udGV4dCBmb3IgbGlzdGVuZXIgbWV0aG9kcy5cbiAgICB0aGlzLl9vbkVycm9yID0gdGhpcy5fb25FcnJvci5iaW5kKHRoaXMpO1xuXG4gICAgaWYgKG9wdGlvbnMuZmlsZW5hbWUgfHwgb3B0aW9ucy5kaXJuYW1lKSB7XG4gICAgICB0aHJvd0lmKCdmaWxlbmFtZSBvciBkaXJuYW1lJywgJ3N0cmVhbScpO1xuICAgICAgdGhpcy5fYmFzZW5hbWUgPSB0aGlzLmZpbGVuYW1lID0gb3B0aW9ucy5maWxlbmFtZVxuICAgICAgICA/IHBhdGguYmFzZW5hbWUob3B0aW9ucy5maWxlbmFtZSlcbiAgICAgICAgOiAnd2luc3Rvbi5sb2cnO1xuXG4gICAgICB0aGlzLmRpcm5hbWUgPSBvcHRpb25zLmRpcm5hbWUgfHwgcGF0aC5kaXJuYW1lKG9wdGlvbnMuZmlsZW5hbWUpO1xuICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucy5vcHRpb25zIHx8IHsgZmxhZ3M6ICdhJyB9O1xuICAgIH0gZWxzZSBpZiAob3B0aW9ucy5zdHJlYW0pIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICBjb25zb2xlLndhcm4oJ29wdGlvbnMuc3RyZWFtIHdpbGwgYmUgcmVtb3ZlZCBpbiB3aW5zdG9uQDQuIFVzZSB3aW5zdG9uLnRyYW5zcG9ydHMuU3RyZWFtJyk7XG4gICAgICB0aHJvd0lmKCdzdHJlYW0nLCAnZmlsZW5hbWUnLCAnbWF4c2l6ZScpO1xuICAgICAgdGhpcy5fZGVzdCA9IHRoaXMuX3N0cmVhbS5waXBlKHRoaXMuX3NldHVwU3RyZWFtKG9wdGlvbnMuc3RyZWFtKSk7XG4gICAgICB0aGlzLmRpcm5hbWUgPSBwYXRoLmRpcm5hbWUodGhpcy5fZGVzdC5wYXRoKTtcbiAgICAgIC8vIFdlIG5lZWQgdG8gbGlzdGVuIGZvciBkcmFpbiBldmVudHMgd2hlbiB3cml0ZSgpIHJldHVybnMgZmFsc2UuIFRoaXNcbiAgICAgIC8vIGNhbiBtYWtlIG5vZGUgbWFkIGF0IHRpbWVzLlxuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBsb2cgdG8gZmlsZSB3aXRob3V0IGZpbGVuYW1lIG9yIHN0cmVhbS4nKTtcbiAgICB9XG5cbiAgICB0aGlzLm1heHNpemUgPSBvcHRpb25zLm1heHNpemUgfHwgbnVsbDtcbiAgICB0aGlzLnJvdGF0aW9uRm9ybWF0ID0gb3B0aW9ucy5yb3RhdGlvbkZvcm1hdCB8fCBmYWxzZTtcbiAgICB0aGlzLnppcHBlZEFyY2hpdmUgPSBvcHRpb25zLnppcHBlZEFyY2hpdmUgfHwgZmFsc2U7XG4gICAgdGhpcy5tYXhGaWxlcyA9IG9wdGlvbnMubWF4RmlsZXMgfHwgbnVsbDtcbiAgICB0aGlzLmVvbCA9ICh0eXBlb2Ygb3B0aW9ucy5lb2wgPT09ICdzdHJpbmcnKSA/IG9wdGlvbnMuZW9sIDogb3MuRU9MO1xuICAgIHRoaXMudGFpbGFibGUgPSBvcHRpb25zLnRhaWxhYmxlIHx8IGZhbHNlO1xuICAgIHRoaXMubGF6eSA9IG9wdGlvbnMubGF6eSB8fCBmYWxzZTtcblxuICAgIC8vIEludGVybmFsIHN0YXRlIHZhcmlhYmxlcyByZXByZXNlbnRpbmcgdGhlIG51bWJlciBvZiBmaWxlcyB0aGlzIGluc3RhbmNlXG4gICAgLy8gaGFzIGNyZWF0ZWQgYW5kIHRoZSBjdXJyZW50IHNpemUgKGluIGJ5dGVzKSBvZiB0aGUgY3VycmVudCBsb2dmaWxlLlxuICAgIHRoaXMuX3NpemUgPSAwO1xuICAgIHRoaXMuX3BlbmRpbmdTaXplID0gMDtcbiAgICB0aGlzLl9jcmVhdGVkID0gMDtcbiAgICB0aGlzLl9kcmFpbiA9IGZhbHNlO1xuICAgIHRoaXMuX29wZW5pbmcgPSBmYWxzZTtcbiAgICB0aGlzLl9lbmRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLl9maWxlRXhpc3QgPSBmYWxzZTtcblxuICAgIGlmICh0aGlzLmRpcm5hbWUpIHRoaXMuX2NyZWF0ZUxvZ0RpcklmTm90RXhpc3QodGhpcy5kaXJuYW1lKTtcbiAgICBpZiAoIXRoaXMubGF6eSkgdGhpcy5vcGVuKCk7XG4gIH1cblxuICBmaW5pc2hJZkVuZGluZygpIHtcbiAgICBpZiAodGhpcy5fZW5kaW5nKSB7XG4gICAgICBpZiAodGhpcy5fb3BlbmluZykge1xuICAgICAgICB0aGlzLm9uY2UoJ29wZW4nLCAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5fc3RyZWFtLm9uY2UoJ2ZpbmlzaCcsICgpID0+IHRoaXMuZW1pdCgnZmluaXNoJykpO1xuICAgICAgICAgIHNldEltbWVkaWF0ZSgoKSA9PiB0aGlzLl9zdHJlYW0uZW5kKCkpO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX3N0cmVhbS5vbmNlKCdmaW5pc2gnLCAoKSA9PiB0aGlzLmVtaXQoJ2ZpbmlzaCcpKTtcbiAgICAgICAgc2V0SW1tZWRpYXRlKCgpID0+IHRoaXMuX3N0cmVhbS5lbmQoKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCBieSBOb2RlLmpzIFdyaXRhYmxlIHN0cmVhbSBiZWZvcmUgZW1pdHRpbmcgJ2ZpbmlzaCcuXG4gICAqIEVuc3VyZXMgYWxsIGJ1ZmZlcmVkIGRhdGEgaXMgZmx1c2hlZCB0byB0aGUgdW5kZXJseWluZyBmaWxlIHN0cmVhbVxuICAgKiBiZWZvcmUgdGhlIHRyYW5zcG9ydCBzaWduYWxzIGNvbXBsZXRpb24uXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IGNhbGxiYWNrIC0gQ2FsbGJhY2sgdG8gc2lnbmFsIGNvbXBsZXRpb24uXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBfZmluYWwoY2FsbGJhY2spIHtcbiAgICAvLyBJZiBzdGlsbCBvcGVuaW5nLCB3YWl0IGZvciB0aGUgZmlsZSB0byBiZSBvcGVuZWQgZmlyc3RcbiAgICBpZiAodGhpcy5fb3BlbmluZykge1xuICAgICAgdGhpcy5vbmNlKCdvcGVuJywgKCkgPT4gdGhpcy5fZmluYWwoY2FsbGJhY2spKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBFbmQgdGhlIFBhc3NUaHJvdWdoIHN0cmVhbVxuICAgIHRoaXMuX3N0cmVhbS5lbmQoKTtcblxuICAgIC8vIE5vIGRlc3RpbmF0aW9uIHN0cmVhbSwgY2FsbCBjYWxsYmFjayBpbW1lZGlhdGVseVxuICAgIGlmICghdGhpcy5fZGVzdCkge1xuICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7XG4gICAgfVxuXG4gICAgLy8gRGVzdGluYXRpb24gaXMgYWxyZWFkeSBmaW5pc2hlZFxuICAgIGlmICh0aGlzLl9kZXN0LndyaXRhYmxlRmluaXNoZWQpIHtcbiAgICAgIHJldHVybiBjYWxsYmFjaygpO1xuICAgIH1cblxuICAgIC8vIFdhaXQgZm9yIGRlc3RpbmF0aW9uIHN0cmVhbSB0byBmaW5pc2ggd3JpdGluZ1xuICAgIHRoaXMuX2Rlc3Qub25jZSgnZmluaXNoJywgY2FsbGJhY2spO1xuICAgIHRoaXMuX2Rlc3Qub25jZSgnZXJyb3InLCBjYWxsYmFjayk7XG4gIH1cblxuICAvKipcbiAgICogQ29yZSBsb2dnaW5nIG1ldGhvZCBleHBvc2VkIHRvIFdpbnN0b24uIE1ldGFkYXRhIGlzIG9wdGlvbmFsLlxuICAgKiBAcGFyYW0ge09iamVjdH0gaW5mbyAtIFRPRE86IGFkZCBwYXJhbSBkZXNjcmlwdGlvbi5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gY2FsbGJhY2sgLSBUT0RPOiBhZGQgcGFyYW0gZGVzY3JpcHRpb24uXG4gICAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gICAqL1xuICBsb2coaW5mbywgY2FsbGJhY2sgPSAoKSA9PiB7IH0pIHtcbiAgICAvLyBSZW1hcms6IChqY3J1Z3p6KSBXaGF0IGlzIG5lY2Vzc2FyeSBhYm91dCB0aGlzIGNhbGxiYWNrKG51bGwsIHRydWUpIG5vd1xuICAgIC8vIHdoZW4gdGhpbmtpbmcgYWJvdXQgMy54PyBTaG91bGQgc2lsZW50IGJlIGhhbmRsZWQgaW4gdGhlIGJhc2VcbiAgICAvLyBUcmFuc3BvcnRTdHJlYW0gX3dyaXRlIG1ldGhvZD9cbiAgICBpZiAodGhpcy5zaWxlbnQpIHtcbiAgICAgIGNhbGxiYWNrKCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cblxuICAgIC8vIE91dHB1dCBzdHJlYW0gYnVmZmVyIGlzIGZ1bGwgYW5kIGhhcyBhc2tlZCB1cyB0byB3YWl0IGZvciB0aGUgZHJhaW4gZXZlbnRcbiAgICBpZiAodGhpcy5fZHJhaW4pIHtcbiAgICAgIHRoaXMuX3N0cmVhbS5vbmNlKCdkcmFpbicsICgpID0+IHtcbiAgICAgICAgdGhpcy5fZHJhaW4gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5sb2coaW5mbywgY2FsbGJhY2spO1xuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLl9yb3RhdGUpIHtcbiAgICAgIHRoaXMuX3N0cmVhbS5vbmNlKCdyb3RhdGUnLCAoKSA9PiB7XG4gICAgICAgIHRoaXMuX3JvdGF0ZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLmxvZyhpbmZvLCBjYWxsYmFjayk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMubGF6eSkge1xuICAgICAgaWYgKCF0aGlzLl9maWxlRXhpc3QpIHtcbiAgICAgICAgaWYgKCF0aGlzLl9vcGVuaW5nKSB7XG4gICAgICAgICAgdGhpcy5vcGVuKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vbmNlKCdvcGVuJywgKCkgPT4ge1xuICAgICAgICAgIHRoaXMuX2ZpbGVFeGlzdCA9IHRydWU7XG4gICAgICAgICAgdGhpcy5sb2coaW5mbywgY2FsbGJhY2spO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLl9uZWVkc05ld0ZpbGUodGhpcy5fcGVuZGluZ1NpemUpKSB7XG4gICAgICAgIHRoaXMuX2Rlc3Qub25jZSgnY2xvc2UnLCAoKSA9PiB7XG4gICAgICAgICAgaWYgKCF0aGlzLl9vcGVuaW5nKSB7XG4gICAgICAgICAgICB0aGlzLm9wZW4oKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5vbmNlKCdvcGVuJywgKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5sb2coaW5mbywgY2FsbGJhY2spO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBHcmFiIHRoZSByYXcgc3RyaW5nIGFuZCBhcHBlbmQgdGhlIGV4cGVjdGVkIEVPTC5cbiAgICBjb25zdCBvdXRwdXQgPSBgJHtpbmZvW01FU1NBR0VdfSR7dGhpcy5lb2x9YDtcbiAgICBjb25zdCBieXRlcyA9IEJ1ZmZlci5ieXRlTGVuZ3RoKG91dHB1dCk7XG5cbiAgICAvLyBBZnRlciB3ZSBoYXZlIHdyaXR0ZW4gdG8gdGhlIFBhc3NUaHJvdWdoIGNoZWNrIHRvIHNlZSBpZiB3ZSBuZWVkXG4gICAgLy8gdG8gcm90YXRlIHRvIHRoZSBuZXh0IGZpbGUuXG4gICAgLy9cbiAgICAvLyBSZW1hcms6IFRoaXMgZ2V0cyBjYWxsZWQgdG9vIGVhcmx5IGFuZCBkb2VzIG5vdCBkZXBpY3Qgd2hlbiBkYXRhXG4gICAgLy8gaGFzIGJlZW4gYWN0dWFsbHkgZmx1c2hlZCB0byBkaXNrLlxuICAgIGZ1bmN0aW9uIGxvZ2dlZCgpIHtcbiAgICAgIHRoaXMuX3NpemUgKz0gYnl0ZXM7XG4gICAgICB0aGlzLl9wZW5kaW5nU2l6ZSAtPSBieXRlcztcblxuICAgICAgZGVidWcoJ2xvZ2dlZCAlcyAlcycsIHRoaXMuX3NpemUsIG91dHB1dCk7XG4gICAgICB0aGlzLmVtaXQoJ2xvZ2dlZCcsIGluZm8pO1xuXG4gICAgICAvLyBEbyBub3QgYXR0ZW1wdCB0byByb3RhdGUgZmlsZXMgd2hpbGUgcm90YXRpbmdcbiAgICAgIGlmICh0aGlzLl9yb3RhdGUpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyBEbyBub3QgYXR0ZW1wdCB0byByb3RhdGUgZmlsZXMgd2hpbGUgb3BlbmluZ1xuICAgICAgaWYgKHRoaXMuX29wZW5pbmcpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyBDaGVjayB0byBzZWUgaWYgd2UgbmVlZCB0byBlbmQgdGhlIHN0cmVhbSBhbmQgY3JlYXRlIGEgbmV3IG9uZS5cbiAgICAgIGlmICghdGhpcy5fbmVlZHNOZXdGaWxlKCkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMubGF6eSkge1xuICAgICAgICB0aGlzLl9lbmRTdHJlYW0oKCkgPT4ge3RoaXMuZW1pdCgnZmlsZWNsb3NlZCcpO30pO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8vIEVuZCB0aGUgY3VycmVudCBzdHJlYW0sIGVuc3VyZSBpdCBmbHVzaGVzIGFuZCBjcmVhdGUgYSBuZXcgb25lLlxuICAgICAgLy8gVGhpcyBjb3VsZCBwb3RlbnRpYWxseSBiZSBvcHRpbWl6ZWQgdG8gbm90IHJ1biBhIHN0YXQgY2FsbCBidXQgaXRzXG4gICAgICAvLyB0aGUgc2FmZXN0IHdheSBzaW5jZSB3ZSBhcmUgc3VwcG9ydGluZyBgbWF4RmlsZXNgLlxuICAgICAgdGhpcy5fcm90YXRlID0gdHJ1ZTtcbiAgICAgIHRoaXMuX2VuZFN0cmVhbSgoKSA9PiB0aGlzLl9yb3RhdGVGaWxlKCkpO1xuICAgIH1cblxuICAgIC8vIEtlZXAgdHJhY2sgb2YgdGhlIHBlbmRpbmcgYnl0ZXMgYmVpbmcgd3JpdHRlbiB3aGlsZSBmaWxlcyBhcmUgb3BlbmluZ1xuICAgIC8vIGluIG9yZGVyIHRvIHByb3Blcmx5IHJvdGF0ZSB0aGUgUGFzc1Rocm91Z2ggdGhpcy5fc3RyZWFtIHdoZW4gdGhlIGZpbGVcbiAgICAvLyBldmVudHVhbGx5IGRvZXMgb3Blbi5cbiAgICB0aGlzLl9wZW5kaW5nU2l6ZSArPSBieXRlcztcbiAgICBpZiAodGhpcy5fb3BlbmluZ1xuICAgICAgJiYgIXRoaXMucm90YXRlZFdoaWxlT3BlbmluZ1xuICAgICAgJiYgdGhpcy5fbmVlZHNOZXdGaWxlKHRoaXMuX3NpemUgKyB0aGlzLl9wZW5kaW5nU2l6ZSkpIHtcbiAgICAgIHRoaXMucm90YXRlZFdoaWxlT3BlbmluZyA9IHRydWU7XG4gICAgfVxuXG4gICAgY29uc3Qgd3JpdHRlbiA9IHRoaXMuX3N0cmVhbS53cml0ZShvdXRwdXQsIGxvZ2dlZC5iaW5kKHRoaXMpKTtcbiAgICBpZiAoIXdyaXR0ZW4pIHtcbiAgICAgIHRoaXMuX2RyYWluID0gdHJ1ZTtcbiAgICAgIHRoaXMuX3N0cmVhbS5vbmNlKCdkcmFpbicsICgpID0+IHtcbiAgICAgICAgdGhpcy5fZHJhaW4gPSBmYWxzZTtcbiAgICAgICAgY2FsbGJhY2soKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBjYWxsYmFjaygpOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIGNhbGxiYWNrLXJldHVyblxuICAgIH1cblxuICAgIGRlYnVnKCd3cml0dGVuJywgd3JpdHRlbiwgdGhpcy5fZHJhaW4pO1xuXG4gICAgdGhpcy5maW5pc2hJZkVuZGluZygpO1xuXG4gICAgcmV0dXJuIHdyaXR0ZW47XG4gIH1cblxuICAvKipcbiAgICogUXVlcnkgdGhlIHRyYW5zcG9ydC4gT3B0aW9ucyBvYmplY3QgaXMgb3B0aW9uYWwuXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIC0gTG9nZ2x5LWxpa2UgcXVlcnkgb3B0aW9ucyBmb3IgdGhpcyBpbnN0YW5jZS5cbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gY2FsbGJhY2sgLSBDb250aW51YXRpb24gdG8gcmVzcG9uZCB0byB3aGVuIGNvbXBsZXRlLlxuICAgKiBUT0RPOiBSZWZhY3RvciBtZS5cbiAgICovXG4gIHF1ZXJ5KG9wdGlvbnMsIGNhbGxiYWNrKSB7XG4gICAgaWYgKHR5cGVvZiBvcHRpb25zID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBjYWxsYmFjayA9IG9wdGlvbnM7XG4gICAgICBvcHRpb25zID0ge307XG4gICAgfVxuXG4gICAgb3B0aW9ucyA9IG5vcm1hbGl6ZVF1ZXJ5KG9wdGlvbnMpO1xuICAgIGNvbnN0IGZpbGUgPSBwYXRoLmpvaW4odGhpcy5kaXJuYW1lLCB0aGlzLmZpbGVuYW1lKTtcbiAgICBsZXQgYnVmZiA9ICcnO1xuICAgIGxldCByZXN1bHRzID0gW107XG4gICAgbGV0IHJvdyA9IDA7XG5cbiAgICBjb25zdCBzdHJlYW0gPSBmcy5jcmVhdGVSZWFkU3RyZWFtKGZpbGUsIHtcbiAgICAgIGVuY29kaW5nOiAndXRmOCdcbiAgICB9KTtcblxuICAgIHN0cmVhbS5vbignZXJyb3InLCBlcnIgPT4ge1xuICAgICAgaWYgKHN0cmVhbS5yZWFkYWJsZSkge1xuICAgICAgICBzdHJlYW0uZGVzdHJveSgpO1xuICAgICAgfVxuICAgICAgaWYgKCFjYWxsYmFjaykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBlcnIuY29kZSAhPT0gJ0VOT0VOVCcgPyBjYWxsYmFjayhlcnIpIDogY2FsbGJhY2sobnVsbCwgcmVzdWx0cyk7XG4gICAgfSk7XG5cbiAgICBzdHJlYW0ub24oJ2RhdGEnLCBkYXRhID0+IHtcbiAgICAgIGRhdGEgPSAoYnVmZiArIGRhdGEpLnNwbGl0KC9cXG4rLyk7XG4gICAgICBjb25zdCBsID0gZGF0YS5sZW5ndGggLSAxO1xuICAgICAgbGV0IGkgPSAwO1xuXG4gICAgICBmb3IgKDsgaSA8IGw7IGkrKykge1xuICAgICAgICBpZiAoIW9wdGlvbnMuc3RhcnQgfHwgcm93ID49IG9wdGlvbnMuc3RhcnQpIHtcbiAgICAgICAgICBhZGQoZGF0YVtpXSk7XG4gICAgICAgIH1cbiAgICAgICAgcm93Kys7XG4gICAgICB9XG5cbiAgICAgIGJ1ZmYgPSBkYXRhW2xdO1xuICAgIH0pO1xuXG4gICAgc3RyZWFtLm9uKCdjbG9zZScsICgpID0+IHtcbiAgICAgIGlmIChidWZmKSB7XG4gICAgICAgIGFkZChidWZmLCB0cnVlKTtcbiAgICAgIH1cbiAgICAgIGlmIChvcHRpb25zLm9yZGVyID09PSAnZGVzYycpIHtcbiAgICAgICAgcmVzdWx0cyA9IHJlc3VsdHMucmV2ZXJzZSgpO1xuICAgICAgfVxuXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY2FsbGJhY2stcmV0dXJuXG4gICAgICBpZiAoY2FsbGJhY2spIGNhbGxiYWNrKG51bGwsIHJlc3VsdHMpO1xuICAgIH0pO1xuXG4gICAgZnVuY3Rpb24gYWRkKGJ1ZmYsIGF0dGVtcHQpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGxvZyA9IEpTT04ucGFyc2UoYnVmZik7XG4gICAgICAgIGlmIChjaGVjayhsb2cpKSB7XG4gICAgICAgICAgcHVzaChsb2cpO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGlmICghYXR0ZW1wdCkge1xuICAgICAgICAgIHN0cmVhbS5lbWl0KCdlcnJvcicsIGUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcHVzaChsb2cpIHtcbiAgICAgIGlmIChcbiAgICAgICAgb3B0aW9ucy5yb3dzICYmXG4gICAgICAgIHJlc3VsdHMubGVuZ3RoID49IG9wdGlvbnMucm93cyAmJlxuICAgICAgICBvcHRpb25zLm9yZGVyICE9PSAnZGVzYydcbiAgICAgICkge1xuICAgICAgICBpZiAoc3RyZWFtLnJlYWRhYmxlKSB7XG4gICAgICAgICAgc3RyZWFtLmRlc3Ryb3koKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChvcHRpb25zLmZpZWxkcykge1xuICAgICAgICBsb2cgPSBvcHRpb25zLmZpZWxkcy5yZWR1Y2UoKG9iaiwga2V5KSA9PiB7XG4gICAgICAgICAgb2JqW2tleV0gPSBsb2dba2V5XTtcbiAgICAgICAgICByZXR1cm4gb2JqO1xuICAgICAgICB9LCB7fSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChvcHRpb25zLm9yZGVyID09PSAnZGVzYycpIHtcbiAgICAgICAgaWYgKHJlc3VsdHMubGVuZ3RoID49IG9wdGlvbnMucm93cykge1xuICAgICAgICAgIHJlc3VsdHMuc2hpZnQoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmVzdWx0cy5wdXNoKGxvZyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY2hlY2sobG9nKSB7XG4gICAgICBpZiAoIWxvZykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlb2YgbG9nICE9PSAnb2JqZWN0Jykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHRpbWUgPSBuZXcgRGF0ZShsb2cudGltZXN0YW1wKTtcbiAgICAgIGlmIChcbiAgICAgICAgKG9wdGlvbnMuZnJvbSAmJiB0aW1lIDwgb3B0aW9ucy5mcm9tKSB8fFxuICAgICAgICAob3B0aW9ucy51bnRpbCAmJiB0aW1lID4gb3B0aW9ucy51bnRpbCkgfHxcbiAgICAgICAgKG9wdGlvbnMubGV2ZWwgJiYgb3B0aW9ucy5sZXZlbCAhPT0gbG9nLmxldmVsKVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbm9ybWFsaXplUXVlcnkob3B0aW9ucykge1xuICAgICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG5cbiAgICAgIC8vIGxpbWl0XG4gICAgICBvcHRpb25zLnJvd3MgPSBvcHRpb25zLnJvd3MgfHwgb3B0aW9ucy5saW1pdCB8fCAxMDtcblxuICAgICAgLy8gc3RhcnRpbmcgcm93IG9mZnNldFxuICAgICAgb3B0aW9ucy5zdGFydCA9IG9wdGlvbnMuc3RhcnQgfHwgMDtcblxuICAgICAgLy8gbm93XG4gICAgICBvcHRpb25zLnVudGlsID0gb3B0aW9ucy51bnRpbCB8fCBuZXcgRGF0ZSgpO1xuICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLnVudGlsICE9PSAnb2JqZWN0Jykge1xuICAgICAgICBvcHRpb25zLnVudGlsID0gbmV3IERhdGUob3B0aW9ucy51bnRpbCk7XG4gICAgICB9XG5cbiAgICAgIC8vIG5vdyAtIDI0XG4gICAgICBvcHRpb25zLmZyb20gPSBvcHRpb25zLmZyb20gfHwgKG9wdGlvbnMudW50aWwgLSAoMjQgKiA2MCAqIDYwICogMTAwMCkpO1xuICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLmZyb20gIT09ICdvYmplY3QnKSB7XG4gICAgICAgIG9wdGlvbnMuZnJvbSA9IG5ldyBEYXRlKG9wdGlvbnMuZnJvbSk7XG4gICAgICB9XG5cbiAgICAgIC8vICdhc2MnIG9yICdkZXNjJ1xuICAgICAgb3B0aW9ucy5vcmRlciA9IG9wdGlvbnMub3JkZXIgfHwgJ2Rlc2MnO1xuXG4gICAgICByZXR1cm4gb3B0aW9ucztcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIGxvZyBzdHJlYW0gZm9yIHRoaXMgdHJhbnNwb3J0LiBPcHRpb25zIG9iamVjdCBpcyBvcHRpb25hbC5cbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgLSBTdHJlYW0gb3B0aW9ucyBmb3IgdGhpcyBpbnN0YW5jZS5cbiAgICogQHJldHVybnMge1N0cmVhbX0gLSBUT0RPOiBhZGQgcmV0dXJuIGRlc2NyaXB0aW9uLlxuICAgKiBUT0RPOiBSZWZhY3RvciBtZS5cbiAgICovXG4gIHN0cmVhbShvcHRpb25zID0ge30pIHtcbiAgICBjb25zdCBmaWxlID0gcGF0aC5qb2luKHRoaXMuZGlybmFtZSwgdGhpcy5maWxlbmFtZSk7XG4gICAgY29uc3Qgc3RyZWFtID0gbmV3IFN0cmVhbSgpO1xuICAgIGNvbnN0IHRhaWwgPSB7XG4gICAgICBmaWxlLFxuICAgICAgc3RhcnQ6IG9wdGlvbnMuc3RhcnRcbiAgICB9O1xuXG4gICAgc3RyZWFtLmRlc3Ryb3kgPSB0YWlsRmlsZSh0YWlsLCAoZXJyLCBsaW5lKSA9PiB7XG4gICAgICBpZiAoZXJyKSB7XG4gICAgICAgIHJldHVybiBzdHJlYW0uZW1pdCgnZXJyb3InLCBlcnIpO1xuICAgICAgfVxuXG4gICAgICB0cnkge1xuICAgICAgICBzdHJlYW0uZW1pdCgnZGF0YScsIGxpbmUpO1xuICAgICAgICBsaW5lID0gSlNPTi5wYXJzZShsaW5lKTtcbiAgICAgICAgc3RyZWFtLmVtaXQoJ2xvZycsIGxpbmUpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBzdHJlYW0uZW1pdCgnZXJyb3InLCBlKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBzdHJlYW07XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIHRvIHNlZSB0aGUgZmlsZXNpemUgb2YuXG4gICAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gICAqL1xuICBvcGVuKCkge1xuICAgIC8vIElmIHdlIGRvIG5vdCBoYXZlIGEgZmlsZW5hbWUgdGhlbiB3ZSB3ZXJlIHBhc3NlZCBhIHN0cmVhbSBhbmRcbiAgICAvLyBkb24ndCBuZWVkIHRvIGtlZXAgdHJhY2sgb2Ygc2l6ZS5cbiAgICBpZiAoIXRoaXMuZmlsZW5hbWUpIHJldHVybjtcbiAgICBpZiAodGhpcy5fb3BlbmluZykgcmV0dXJuO1xuXG4gICAgdGhpcy5fb3BlbmluZyA9IHRydWU7XG5cbiAgICAvLyBTdGF0IHRoZSB0YXJnZXQgZmlsZSB0byBnZXQgdGhlIHNpemUgYW5kIGNyZWF0ZSB0aGUgc3RyZWFtLlxuICAgIHRoaXMuc3RhdCgoZXJyLCBzaXplKSA9PiB7XG4gICAgICBpZiAoZXJyKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVtaXQoJ2Vycm9yJywgZXJyKTtcbiAgICAgIH1cbiAgICAgIGRlYnVnKCdzdGF0IGRvbmU6ICVzIHsgc2l6ZTogJXMgfScsIHRoaXMuZmlsZW5hbWUsIHNpemUpO1xuICAgICAgdGhpcy5fc2l6ZSA9IHNpemU7XG4gICAgICB0aGlzLl9kZXN0ID0gdGhpcy5fY3JlYXRlU3RyZWFtKHRoaXMuX3N0cmVhbSk7XG4gICAgICB0aGlzLl9vcGVuaW5nID0gZmFsc2U7XG4gICAgICB0aGlzLm9uY2UoJ29wZW4nLCAoKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5fc3RyZWFtLmVtaXQoJ3JvdGF0ZScpKSB7XG4gICAgICAgICAgdGhpcy5fcm90YXRlID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0YXQgdGhlIGZpbGUgYW5kIGFzc2VzcyBpbmZvcm1hdGlvbiBpbiBvcmRlciB0byBjcmVhdGUgdGhlIHByb3BlciBzdHJlYW0uXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IGNhbGxiYWNrIC0gVE9ETzogYWRkIHBhcmFtIGRlc2NyaXB0aW9uLlxuICAgKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICAgKi9cbiAgc3RhdChjYWxsYmFjaykge1xuICAgIGNvbnN0IHRhcmdldCA9IHRoaXMuX2dldEZpbGUoKTtcbiAgICBjb25zdCBmdWxscGF0aCA9IHBhdGguam9pbih0aGlzLmRpcm5hbWUsIHRhcmdldCk7XG5cbiAgICBmcy5zdGF0KGZ1bGxwYXRoLCAoZXJyLCBzdGF0KSA9PiB7XG4gICAgICBpZiAoZXJyICYmIGVyci5jb2RlID09PSAnRU5PRU5UJykge1xuICAgICAgICBkZWJ1ZygnRU5PRU5UXHUwMEEwb2snLCBmdWxscGF0aCk7XG4gICAgICAgIC8vIFVwZGF0ZSBpbnRlcm5hbGx5IHRyYWNrZWQgZmlsZW5hbWUgd2l0aCB0aGUgbmV3IHRhcmdldCBuYW1lLlxuICAgICAgICB0aGlzLmZpbGVuYW1lID0gdGFyZ2V0O1xuICAgICAgICByZXR1cm4gY2FsbGJhY2sobnVsbCwgMCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgZGVidWcoYGVyciAke2Vyci5jb2RlfSAke2Z1bGxwYXRofWApO1xuICAgICAgICByZXR1cm4gY2FsbGJhY2soZXJyKTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFzdGF0IHx8IHRoaXMuX25lZWRzTmV3RmlsZShzdGF0LnNpemUpKSB7XG4gICAgICAgIC8vIElmIGBzdGF0cy5zaXplYCBpcyBncmVhdGVyIHRoYW4gdGhlIGBtYXhzaXplYCBmb3IgdGhpc1xuICAgICAgICAvLyBpbnN0YW5jZSB0aGVuIHRyeSBhZ2Fpbi5cbiAgICAgICAgcmV0dXJuIHRoaXMuX2luY0ZpbGUoKCkgPT4gdGhpcy5zdGF0KGNhbGxiYWNrKSk7XG4gICAgICB9XG5cbiAgICAgIC8vIE9uY2Ugd2UgaGF2ZSBmaWd1cmVkIG91dCB3aGF0IHRoZSBmaWxlbmFtZSBpcywgc2V0IGl0XG4gICAgICAvLyBhbmQgcmV0dXJuIHRoZSBzaXplLlxuICAgICAgdGhpcy5maWxlbmFtZSA9IHRhcmdldDtcbiAgICAgIGNhbGxiYWNrKG51bGwsIHN0YXQuc2l6ZSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ2xvc2VzIHRoZSBzdHJlYW0gYXNzb2NpYXRlZCB3aXRoIHRoaXMgaW5zdGFuY2UuXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IGNiIC0gVE9ETzogYWRkIHBhcmFtIGRlc2NyaXB0aW9uLlxuICAgKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICAgKi9cbiAgY2xvc2UoY2IpIHtcbiAgICBpZiAoIXRoaXMuX3N0cmVhbSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX3N0cmVhbS5lbmQoKCkgPT4ge1xuICAgICAgaWYgKGNiKSB7XG4gICAgICAgIGNiKCk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgY2FsbGJhY2stcmV0dXJuXG4gICAgICB9XG4gICAgICB0aGlzLmVtaXQoJ2ZsdXNoJyk7XG4gICAgICB0aGlzLmVtaXQoJ2Nsb3NlZCcpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFRPRE86IGFkZCBtZXRob2QgZGVzY3JpcHRpb24uXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBzaXplIC0gVE9ETzogYWRkIHBhcmFtIGRlc2NyaXB0aW9uLlxuICAgKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICAgKi9cbiAgX25lZWRzTmV3RmlsZShzaXplKSB7XG4gICAgc2l6ZSA9IHNpemUgfHwgdGhpcy5fc2l6ZTtcbiAgICByZXR1cm4gdGhpcy5tYXhzaXplICYmIHNpemUgPj0gdGhpcy5tYXhzaXplO1xuICB9XG5cbiAgLyoqXG4gICAqIFRPRE86IGFkZCBtZXRob2QgZGVzY3JpcHRpb24uXG4gICAqIEBwYXJhbSB7RXJyb3J9IGVyciAtIFRPRE86IGFkZCBwYXJhbSBkZXNjcmlwdGlvbi5cbiAgICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAgICovXG4gIF9vbkVycm9yKGVycikge1xuICAgIHRoaXMuZW1pdCgnZXJyb3InLCBlcnIpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRPRE86IGFkZCBtZXRob2QgZGVzY3JpcHRpb24uXG4gICAqIEBwYXJhbSB7U3RyZWFtfSBzdHJlYW0gLSBUT0RPOiBhZGQgcGFyYW0gZGVzY3JpcHRpb24uXG4gICAqIEByZXR1cm5zIHttaXhlZH0gLSBUT0RPOiBhZGQgcmV0dXJuIGRlc2NyaXB0aW9uLlxuICAgKi9cbiAgX3NldHVwU3RyZWFtKHN0cmVhbSkge1xuICAgIHN0cmVhbS5vbignZXJyb3InLCB0aGlzLl9vbkVycm9yKTtcblxuICAgIHJldHVybiBzdHJlYW07XG4gIH1cblxuICAvKipcbiAgICogVE9ETzogYWRkIG1ldGhvZCBkZXNjcmlwdGlvbi5cbiAgICogQHBhcmFtIHtTdHJlYW19IHN0cmVhbSAtIFRPRE86IGFkZCBwYXJhbSBkZXNjcmlwdGlvbi5cbiAgICogQHJldHVybnMge21peGVkfSAtIFRPRE86IGFkZCByZXR1cm4gZGVzY3JpcHRpb24uXG4gICAqL1xuICBfY2xlYW51cFN0cmVhbShzdHJlYW0pIHtcbiAgICBzdHJlYW0ucmVtb3ZlTGlzdGVuZXIoJ2Vycm9yJywgdGhpcy5fb25FcnJvcik7XG4gICAgc3RyZWFtLmRlc3Ryb3koKTtcbiAgICByZXR1cm4gc3RyZWFtO1xuICB9XG5cbiAgLyoqXG4gICAqIFRPRE86IGFkZCBtZXRob2QgZGVzY3JpcHRpb24uXG4gICAqL1xuICBfcm90YXRlRmlsZSgpIHtcbiAgICB0aGlzLl9pbmNGaWxlKCgpID0+IHRoaXMub3BlbigpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVbnBpcGUgZnJvbSB0aGUgc3RyZWFtIHRoYXQgaGFzIGJlZW4gbWFya2VkIGFzIGZ1bGwgYW5kIGVuZCBpdCBzbyBpdFxuICAgKiBmbHVzaGVzIHRvIGRpc2suXG4gICAqXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IGNhbGxiYWNrIC0gQ2FsbGJhY2sgZm9yIHdoZW4gdGhlIGN1cnJlbnQgZmlsZSBoYXMgY2xvc2VkLlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgX2VuZFN0cmVhbShjYWxsYmFjayA9ICgpID0+IHsgfSkge1xuICAgIGlmICh0aGlzLl9kZXN0KSB7XG4gICAgICB0aGlzLl9zdHJlYW0udW5waXBlKHRoaXMuX2Rlc3QpO1xuICAgICAgdGhpcy5fZGVzdC5lbmQoKCkgPT4ge1xuICAgICAgICB0aGlzLl9jbGVhbnVwU3RyZWFtKHRoaXMuX2Rlc3QpO1xuICAgICAgICBjYWxsYmFjaygpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNhbGxiYWNrKCk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgY2FsbGJhY2stcmV0dXJuXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIFdyaXRhYmxlU3RyZWFtIGZvciB0aGUgYWN0aXZlIGZpbGUgb24gdGhpcyBpbnN0YW5jZS4gSWYgd2VcbiAgICogc2hvdWxkIGd6aXAgdGhlIGZpbGUgdGhlbiBhIHpsaWIgc3RyZWFtIGlzIHJldHVybmVkLlxuICAgKlxuICAgKiBAcGFyYW0ge1JlYWRhYmxlU3RyZWFtfSBzb3VyY2UgXHUyMDEzUGFzc1Rocm91Z2ggdG8gcGlwZSB0byB0aGUgZmlsZSB3aGVuIG9wZW4uXG4gICAqIEByZXR1cm5zIHtXcml0YWJsZVN0cmVhbX0gU3RyZWFtIHRoYXQgd3JpdGVzIHRvIGRpc2sgZm9yIHRoZSBhY3RpdmUgZmlsZS5cbiAgICovXG4gIF9jcmVhdGVTdHJlYW0oc291cmNlKSB7XG4gICAgY29uc3QgZnVsbHBhdGggPSBwYXRoLmpvaW4odGhpcy5kaXJuYW1lLCB0aGlzLmZpbGVuYW1lKTtcblxuICAgIGRlYnVnKCdjcmVhdGUgc3RyZWFtIHN0YXJ0JywgZnVsbHBhdGgsIHRoaXMub3B0aW9ucyk7XG4gICAgY29uc3QgZGVzdCA9IGZzLmNyZWF0ZVdyaXRlU3RyZWFtKGZ1bGxwYXRoLCB0aGlzLm9wdGlvbnMpXG4gICAgICAvLyBUT0RPOiBXaGF0IHNob3VsZCB3ZSBkbyB3aXRoIGVycm9ycyBoZXJlP1xuICAgICAgLm9uKCdlcnJvcicsIGVyciA9PiBkZWJ1ZyhlcnIpKVxuICAgICAgLm9uKCdjbG9zZScsICgpID0+IGRlYnVnKCdjbG9zZScsIGRlc3QucGF0aCwgZGVzdC5ieXRlc1dyaXR0ZW4pKVxuICAgICAgLm9uKCdvcGVuJywgKCkgPT4ge1xuICAgICAgICBkZWJ1ZygnZmlsZSBvcGVuIG9rJywgZnVsbHBhdGgpO1xuICAgICAgICB0aGlzLmVtaXQoJ29wZW4nLCBmdWxscGF0aCk7XG4gICAgICAgIHNvdXJjZS5waXBlKGRlc3QpO1xuXG4gICAgICAgIC8vIElmIHJvdGF0aW9uIG9jY3VyZWQgZHVyaW5nIHRoZSBvcGVuIG9wZXJhdGlvbiB0aGVuIHdlIGltbWVkaWF0ZWx5XG4gICAgICAgIC8vIHN0YXJ0IHdyaXRpbmcgdG8gYSBuZXcgUGFzc1Rocm91Z2gsIGJlZ2luIG9wZW5pbmcgdGhlIG5leHQgZmlsZVxuICAgICAgICAvLyBhbmQgY2xlYW51cCB0aGUgcHJldmlvdXMgc291cmNlIGFuZCBkZXN0IG9uY2UgdGhlIHNvdXJjZSBoYXMgZHJhaW5lZC5cbiAgICAgICAgaWYgKHRoaXMucm90YXRlZFdoaWxlT3BlbmluZykge1xuICAgICAgICAgIHRoaXMuX3N0cmVhbSA9IG5ldyBQYXNzVGhyb3VnaCgpO1xuICAgICAgICAgIHRoaXMuX3N0cmVhbS5zZXRNYXhMaXN0ZW5lcnMoMzApO1xuICAgICAgICAgIHRoaXMuX3JvdGF0ZUZpbGUoKTtcbiAgICAgICAgICB0aGlzLnJvdGF0ZWRXaGlsZU9wZW5pbmcgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLl9jbGVhbnVwU3RyZWFtKGRlc3QpO1xuICAgICAgICAgIHNvdXJjZS5lbmQoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICBkZWJ1ZygnY3JlYXRlIHN0cmVhbSBvaycsIGZ1bGxwYXRoKTtcbiAgICByZXR1cm4gZGVzdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUT0RPOiBhZGQgbWV0aG9kIGRlc2NyaXB0aW9uLlxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBjYWxsYmFjayAtIFRPRE86IGFkZCBwYXJhbSBkZXNjcmlwdGlvbi5cbiAgICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAgICovXG4gIF9pbmNGaWxlKGNhbGxiYWNrKSB7XG4gICAgZGVidWcoJ19pbmNGaWxlJywgdGhpcy5maWxlbmFtZSk7XG4gICAgY29uc3QgZXh0ID0gcGF0aC5leHRuYW1lKHRoaXMuX2Jhc2VuYW1lKTtcbiAgICBjb25zdCBiYXNlbmFtZSA9IHBhdGguYmFzZW5hbWUodGhpcy5fYmFzZW5hbWUsIGV4dCk7XG4gICAgY29uc3QgdGFza3MgPSBbXTtcblxuICAgIGlmICh0aGlzLnppcHBlZEFyY2hpdmUpIHtcbiAgICAgIHRhc2tzLnB1c2goXG4gICAgICAgIGZ1bmN0aW9uIChjYikge1xuICAgICAgICAgIGNvbnN0IG51bSA9IHRoaXMuX2NyZWF0ZWQgPiAwICYmICF0aGlzLnRhaWxhYmxlID8gdGhpcy5fY3JlYXRlZCA6ICcnO1xuICAgICAgICAgIHRoaXMuX2NvbXByZXNzRmlsZShcbiAgICAgICAgICAgIHBhdGguam9pbih0aGlzLmRpcm5hbWUsIGAke2Jhc2VuYW1lfSR7bnVtfSR7ZXh0fWApLFxuICAgICAgICAgICAgcGF0aC5qb2luKHRoaXMuZGlybmFtZSwgYCR7YmFzZW5hbWV9JHtudW19JHtleHR9Lmd6YCksXG4gICAgICAgICAgICBjYlxuICAgICAgICAgICk7XG4gICAgICAgIH0uYmluZCh0aGlzKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0YXNrcy5wdXNoKFxuICAgICAgZnVuY3Rpb24gKGNiKSB7XG4gICAgICAgIGlmICghdGhpcy50YWlsYWJsZSkge1xuICAgICAgICAgIHRoaXMuX2NyZWF0ZWQgKz0gMTtcbiAgICAgICAgICB0aGlzLl9jaGVja01heEZpbGVzSW5jcmVtZW50aW5nKGV4dCwgYmFzZW5hbWUsIGNiKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLl9jaGVja01heEZpbGVzVGFpbGFibGUoZXh0LCBiYXNlbmFtZSwgY2IpO1xuICAgICAgICB9XG4gICAgICB9LmJpbmQodGhpcylcbiAgICApO1xuXG4gICAgYXN5bmNTZXJpZXModGFza3MsIGNhbGxiYWNrKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBuZXh0IGZpbGVuYW1lIHRvIHVzZSBmb3IgdGhpcyBpbnN0YW5jZSBpbiB0aGUgY2FzZSB0aGF0IGxvZ1xuICAgKiBmaWxlc2l6ZXMgYXJlIGJlaW5nIGNhcHBlZC5cbiAgICogQHJldHVybnMge3N0cmluZ30gLSBUT0RPOiBhZGQgcmV0dXJuIGRlc2NyaXB0aW9uLlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgX2dldEZpbGUoKSB7XG4gICAgY29uc3QgZXh0ID0gcGF0aC5leHRuYW1lKHRoaXMuX2Jhc2VuYW1lKTtcbiAgICBjb25zdCBiYXNlbmFtZSA9IHBhdGguYmFzZW5hbWUodGhpcy5fYmFzZW5hbWUsIGV4dCk7XG4gICAgY29uc3QgaXNSb3RhdGlvbiA9IHRoaXMucm90YXRpb25Gb3JtYXRcbiAgICAgID8gdGhpcy5yb3RhdGlvbkZvcm1hdCgpXG4gICAgICA6IHRoaXMuX2NyZWF0ZWQ7XG5cbiAgICAvLyBDYXZlYXQgZW1wdG9yIChpbmRleHplcm8pOiByb3RhdGlvbkZvcm1hdCgpIHdhcyBicm9rZW4gYnkgZGVzaWduIFdoZW5cbiAgICAvLyBjb21iaW5lZCB3aXRoIG1heCBmaWxlcyBiZWNhdXNlIHRoZSBzZXQgb2YgZmlsZXMgdG8gdW5saW5rIGlzIG5ldmVyXG4gICAgLy8gc3RvcmVkLlxuICAgIHJldHVybiAhdGhpcy50YWlsYWJsZSAmJiB0aGlzLl9jcmVhdGVkXG4gICAgICA/IGAke2Jhc2VuYW1lfSR7aXNSb3RhdGlvbn0ke2V4dH1gXG4gICAgICA6IGAke2Jhc2VuYW1lfSR7ZXh0fWA7XG4gIH1cblxuICAvKipcbiAgICogSW5jcmVtZW50IHRoZSBudW1iZXIgb2YgZmlsZXMgY3JlYXRlZCBvciBjaGVja2VkIGJ5IHRoaXMgaW5zdGFuY2UuXG4gICAqIEBwYXJhbSB7bWl4ZWR9IGV4dCAtIFRPRE86IGFkZCBwYXJhbSBkZXNjcmlwdGlvbi5cbiAgICogQHBhcmFtIHttaXhlZH0gYmFzZW5hbWUgLSBUT0RPOiBhZGQgcGFyYW0gZGVzY3JpcHRpb24uXG4gICAqIEBwYXJhbSB7bWl4ZWR9IGNhbGxiYWNrIC0gVE9ETzogYWRkIHBhcmFtIGRlc2NyaXB0aW9uLlxuICAgKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgX2NoZWNrTWF4RmlsZXNJbmNyZW1lbnRpbmcoZXh0LCBiYXNlbmFtZSwgY2FsbGJhY2spIHtcbiAgICAvLyBDaGVjayBmb3IgbWF4RmlsZXMgb3B0aW9uIGFuZCBkZWxldGUgZmlsZS5cbiAgICBpZiAoIXRoaXMubWF4RmlsZXMgfHwgdGhpcy5fY3JlYXRlZCA8IHRoaXMubWF4RmlsZXMpIHtcbiAgICAgIHJldHVybiBzZXRJbW1lZGlhdGUoY2FsbGJhY2spO1xuICAgIH1cblxuICAgIGNvbnN0IG9sZGVzdCA9IHRoaXMuX2NyZWF0ZWQgLSB0aGlzLm1heEZpbGVzO1xuICAgIGNvbnN0IGlzT2xkZXN0ID0gb2xkZXN0ICE9PSAwID8gb2xkZXN0IDogJyc7XG4gICAgY29uc3QgaXNaaXBwZWQgPSB0aGlzLnppcHBlZEFyY2hpdmUgPyAnLmd6JyA6ICcnO1xuICAgIGNvbnN0IGZpbGVQYXRoID0gYCR7YmFzZW5hbWV9JHtpc09sZGVzdH0ke2V4dH0ke2lzWmlwcGVkfWA7XG4gICAgY29uc3QgdGFyZ2V0ID0gcGF0aC5qb2luKHRoaXMuZGlybmFtZSwgZmlsZVBhdGgpO1xuXG4gICAgZnMudW5saW5rKHRhcmdldCwgY2FsbGJhY2spO1xuICB9XG5cbiAgLyoqXG4gICAqIFJvbGwgZmlsZXMgZm9yd2FyZCBiYXNlZCBvbiBpbnRlZ2VyLCB1cCB0byBtYXhGaWxlcy4gZS5nLiBpZiBiYXNlIGlmXG4gICAqIGZpbGUubG9nIGFuZCBpdCBiZWNvbWVzIG92ZXJzaXplZCwgcm9sbCB0byBmaWxlMS5sb2csIGFuZCBhbGxvdyBmaWxlLmxvZ1xuICAgKiB0byBiZSByZS11c2VkLiBJZiBmaWxlIGlzIG92ZXJzaXplZCBhZ2Fpbiwgcm9sbCBmaWxlMS5sb2cgdG8gZmlsZTIubG9nLFxuICAgKiByb2xsIGZpbGUubG9nIHRvIGZpbGUxLmxvZywgYW5kIHNvIG9uLlxuICAgKiBAcGFyYW0ge21peGVkfSBleHQgLSBUT0RPOiBhZGQgcGFyYW0gZGVzY3JpcHRpb24uXG4gICAqIEBwYXJhbSB7bWl4ZWR9IGJhc2VuYW1lIC0gVE9ETzogYWRkIHBhcmFtIGRlc2NyaXB0aW9uLlxuICAgKiBAcGFyYW0ge21peGVkfSBjYWxsYmFjayAtIFRPRE86IGFkZCBwYXJhbSBkZXNjcmlwdGlvbi5cbiAgICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAgICogQHByaXZhdGVcbiAgICovXG4gIF9jaGVja01heEZpbGVzVGFpbGFibGUoZXh0LCBiYXNlbmFtZSwgY2FsbGJhY2spIHtcbiAgICBjb25zdCB0YXNrcyA9IFtdO1xuICAgIGlmICghdGhpcy5tYXhGaWxlcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIGNvbnN0IGlzWmlwcGVkID0gdGhpcy56aXBwZWRBcmNoaXZlID8gJy5neicgOiAnJztcbiAgICBjb25zdCBpc1ppcHBlZCA9IHRoaXMuemlwcGVkQXJjaGl2ZSA/ICcuZ3onIDogJyc7XG4gICAgZm9yIChsZXQgeCA9IHRoaXMubWF4RmlsZXMgLSAxOyB4ID4gMTsgeC0tKSB7XG4gICAgICB0YXNrcy5wdXNoKGZ1bmN0aW9uIChpLCBjYikge1xuICAgICAgICBsZXQgZmlsZU5hbWUgPSBgJHtiYXNlbmFtZX0keyhpIC0gMSl9JHtleHR9JHtpc1ppcHBlZH1gO1xuICAgICAgICBjb25zdCB0bXBwYXRoID0gcGF0aC5qb2luKHRoaXMuZGlybmFtZSwgZmlsZU5hbWUpO1xuXG4gICAgICAgIGZzLmV4aXN0cyh0bXBwYXRoLCBleGlzdHMgPT4ge1xuICAgICAgICAgIGlmICghZXhpc3RzKSB7XG4gICAgICAgICAgICByZXR1cm4gY2IobnVsbCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgZmlsZU5hbWUgPSBgJHtiYXNlbmFtZX0ke2l9JHtleHR9JHtpc1ppcHBlZH1gO1xuICAgICAgICAgIGZzLnJlbmFtZSh0bXBwYXRoLCBwYXRoLmpvaW4odGhpcy5kaXJuYW1lLCBmaWxlTmFtZSksIGNiKTtcbiAgICAgICAgfSk7XG4gICAgICB9LmJpbmQodGhpcywgeCkpO1xuICAgIH1cblxuICAgIGFzeW5jU2VyaWVzKHRhc2tzLCAoKSA9PiB7XG4gICAgICBmcy5yZW5hbWUoXG4gICAgICAgIHBhdGguam9pbih0aGlzLmRpcm5hbWUsIGAke2Jhc2VuYW1lfSR7ZXh0fSR7aXNaaXBwZWR9YCksXG4gICAgICAgIHBhdGguam9pbih0aGlzLmRpcm5hbWUsIGAke2Jhc2VuYW1lfTEke2V4dH0ke2lzWmlwcGVkfWApLFxuICAgICAgICBjYWxsYmFja1xuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb21wcmVzc2VzIHNyYyB0byBkZXN0IHdpdGggZ3ppcCBhbmQgdW5saW5rcyBzcmNcbiAgICogQHBhcmFtIHtzdHJpbmd9IHNyYyAtIHBhdGggdG8gc291cmNlIGZpbGUuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBkZXN0IC0gcGF0aCB0byB6aXBwZWQgZGVzdGluYXRpb24gZmlsZS5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gY2FsbGJhY2sgLSBjYWxsYmFjayBjYWxsZWQgYWZ0ZXIgZmlsZSBoYXMgYmVlbiBjb21wcmVzc2VkLlxuICAgKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgX2NvbXByZXNzRmlsZShzcmMsIGRlc3QsIGNhbGxiYWNrKSB7XG4gICAgZnMuYWNjZXNzKHNyYywgZnMuRl9PSywgKGVycikgPT4ge1xuICAgICAgaWYgKGVycikge1xuICAgICAgICByZXR1cm4gY2FsbGJhY2soKTtcbiAgICAgIH1cbiAgICAgIHZhciBnemlwID0gemxpYi5jcmVhdGVHemlwKCk7XG4gICAgICB2YXIgaW5wID0gZnMuY3JlYXRlUmVhZFN0cmVhbShzcmMpO1xuICAgICAgdmFyIG91dCA9IGZzLmNyZWF0ZVdyaXRlU3RyZWFtKGRlc3QpO1xuICAgICAgb3V0Lm9uKCdmaW5pc2gnLCAoKSA9PiB7XG4gICAgICAgIGZzLnVubGluayhzcmMsIGNhbGxiYWNrKTtcbiAgICAgIH0pO1xuICAgICAgaW5wLnBpcGUoZ3ppcCkucGlwZShvdXQpO1xuICAgIH0pO1xuICB9XG5cbiAgX2NyZWF0ZUxvZ0RpcklmTm90RXhpc3QoZGlyUGF0aCkge1xuICAgIC8qIGVzbGludC1kaXNhYmxlIG5vLXN5bmMgKi9cbiAgICBpZiAoIWZzLmV4aXN0c1N5bmMoZGlyUGF0aCkpIHtcbiAgICAgIGZzLm1rZGlyU3luYyhkaXJQYXRoLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICB9XG4gICAgLyogZXNsaW50LWVuYWJsZSBuby1zeW5jICovXG4gIH1cbn07XG4iLCAiLyoqXG4gKiBodHRwLmpzOiBUcmFuc3BvcnQgZm9yIG91dHB1dHRpbmcgdG8gYSBqc29uLXJwY3NlcnZlci5cbiAqXG4gKiAoQykgMjAxMCBDaGFybGllIFJvYmJpbnNcbiAqIE1JVCBMSUNFTkNFXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5jb25zdCBodHRwID0gcmVxdWlyZSgnaHR0cCcpO1xuY29uc3QgaHR0cHMgPSByZXF1aXJlKCdodHRwcycpO1xuY29uc3QgeyBTdHJlYW0gfSA9IHJlcXVpcmUoJ3JlYWRhYmxlLXN0cmVhbScpO1xuY29uc3QgVHJhbnNwb3J0U3RyZWFtID0gcmVxdWlyZSgnd2luc3Rvbi10cmFuc3BvcnQnKTtcbmNvbnN0IHsgY29uZmlndXJlIH0gPSByZXF1aXJlKCdzYWZlLXN0YWJsZS1zdHJpbmdpZnknKTtcblxuLyoqXG4gKiBUcmFuc3BvcnQgZm9yIG91dHB1dHRpbmcgdG8gYSBqc29uLXJwYyBzZXJ2ZXIuXG4gKiBAdHlwZSB7U3RyZWFtfVxuICogQGV4dGVuZHMge1RyYW5zcG9ydFN0cmVhbX1cbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBjbGFzcyBIdHRwIGV4dGVuZHMgVHJhbnNwb3J0U3RyZWFtIHtcbiAgLyoqXG4gICAqIENvbnN0cnVjdG9yIGZ1bmN0aW9uIGZvciB0aGUgSHR0cCB0cmFuc3BvcnQgb2JqZWN0IHJlc3BvbnNpYmxlIGZvclxuICAgKiBwZXJzaXN0aW5nIGxvZyBtZXNzYWdlcyBhbmQgbWV0YWRhdGEgdG8gYSB0ZXJtaW5hbCBvciBUVFkuXG4gICAqIEBwYXJhbSB7IU9iamVjdH0gW29wdGlvbnM9e31dIC0gT3B0aW9ucyBmb3IgdGhpcyBpbnN0YW5jZS5cbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtc3RhdGVtZW50c1xuICBjb25zdHJ1Y3RvcihvcHRpb25zID0ge30pIHtcbiAgICBzdXBlcihvcHRpb25zKTtcblxuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgdGhpcy5uYW1lID0gb3B0aW9ucy5uYW1lIHx8ICdodHRwJztcbiAgICB0aGlzLnNzbCA9ICEhb3B0aW9ucy5zc2w7XG4gICAgdGhpcy5ob3N0ID0gb3B0aW9ucy5ob3N0IHx8ICdsb2NhbGhvc3QnO1xuICAgIHRoaXMucG9ydCA9IG9wdGlvbnMucG9ydDtcbiAgICB0aGlzLmF1dGggPSBvcHRpb25zLmF1dGg7XG4gICAgdGhpcy5wYXRoID0gb3B0aW9ucy5wYXRoIHx8ICcnO1xuICAgIHRoaXMubWF4aW11bURlcHRoID0gb3B0aW9ucy5tYXhpbXVtRGVwdGg7XG4gICAgdGhpcy5hZ2VudCA9IG9wdGlvbnMuYWdlbnQ7XG4gICAgdGhpcy5oZWFkZXJzID0gb3B0aW9ucy5oZWFkZXJzIHx8IHt9O1xuICAgIHRoaXMuaGVhZGVyc1snY29udGVudC10eXBlJ10gPSAnYXBwbGljYXRpb24vanNvbic7XG4gICAgdGhpcy5iYXRjaCA9IG9wdGlvbnMuYmF0Y2ggfHwgZmFsc2U7XG4gICAgdGhpcy5iYXRjaEludGVydmFsID0gb3B0aW9ucy5iYXRjaEludGVydmFsIHx8IDUwMDA7XG4gICAgdGhpcy5iYXRjaENvdW50ID0gb3B0aW9ucy5iYXRjaENvdW50IHx8IDEwO1xuICAgIHRoaXMuYmF0Y2hPcHRpb25zID0gW107XG4gICAgdGhpcy5iYXRjaFRpbWVvdXRJRCA9IC0xO1xuICAgIHRoaXMuYmF0Y2hDYWxsYmFjayA9IHt9O1xuXG4gICAgaWYgKCF0aGlzLnBvcnQpIHtcbiAgICAgIHRoaXMucG9ydCA9IHRoaXMuc3NsID8gNDQzIDogODA7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENvcmUgbG9nZ2luZyBtZXRob2QgZXhwb3NlZCB0byBXaW5zdG9uLlxuICAgKiBAcGFyYW0ge09iamVjdH0gaW5mbyAtIFRPRE86IGFkZCBwYXJhbSBkZXNjcmlwdGlvbi5cbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gY2FsbGJhY2sgLSBUT0RPOiBhZGQgcGFyYW0gZGVzY3JpcHRpb24uXG4gICAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gICAqL1xuICBsb2coaW5mbywgY2FsbGJhY2spIHtcbiAgICB0aGlzLl9yZXF1ZXN0KGluZm8sIG51bGwsIG51bGwsIChlcnIsIHJlcykgPT4ge1xuICAgICAgaWYgKHJlcyAmJiByZXMuc3RhdHVzQ29kZSAhPT0gMjAwKSB7XG4gICAgICAgIGVyciA9IG5ldyBFcnJvcihgSW52YWxpZCBIVFRQIFN0YXR1cyBDb2RlOiAke3Jlcy5zdGF0dXNDb2RlfWApO1xuICAgICAgfVxuXG4gICAgICBpZiAoZXJyKSB7XG4gICAgICAgIHRoaXMuZW1pdCgnd2FybicsIGVycik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmVtaXQoJ2xvZ2dlZCcsIGluZm8pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gUmVtYXJrOiAoamNydWd6eikgRmlyZSBhbmQgZm9yZ2V0IGhlcmUgc28gcmVxdWVzdHMgZG9udCBjYXVzZSBidWZmZXJpbmdcbiAgICAvLyBhbmQgYmxvY2sgbW9yZSByZXF1ZXN0cyBmcm9tIGhhcHBlbmluZz9cbiAgICBpZiAoY2FsbGJhY2spIHtcbiAgICAgIHNldEltbWVkaWF0ZShjYWxsYmFjayk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFF1ZXJ5IHRoZSB0cmFuc3BvcnQuIE9wdGlvbnMgb2JqZWN0IGlzIG9wdGlvbmFsLlxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyAtICBMb2dnbHktbGlrZSBxdWVyeSBvcHRpb25zIGZvciB0aGlzIGluc3RhbmNlLlxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBjYWxsYmFjayAtIENvbnRpbnVhdGlvbiB0byByZXNwb25kIHRvIHdoZW4gY29tcGxldGUuXG4gICAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gICAqL1xuICBxdWVyeShvcHRpb25zLCBjYWxsYmFjaykge1xuICAgIGlmICh0eXBlb2Ygb3B0aW9ucyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgY2FsbGJhY2sgPSBvcHRpb25zO1xuICAgICAgb3B0aW9ucyA9IHt9O1xuICAgIH1cblxuICAgIG9wdGlvbnMgPSB7XG4gICAgICBtZXRob2Q6ICdxdWVyeScsXG4gICAgICBwYXJhbXM6IHRoaXMubm9ybWFsaXplUXVlcnkob3B0aW9ucylcbiAgICB9O1xuXG4gICAgY29uc3QgYXV0aCA9IG9wdGlvbnMucGFyYW1zLmF1dGggfHwgbnVsbDtcbiAgICBkZWxldGUgb3B0aW9ucy5wYXJhbXMuYXV0aDtcblxuICAgIGNvbnN0IHBhdGggPSBvcHRpb25zLnBhcmFtcy5wYXRoIHx8IG51bGw7XG4gICAgZGVsZXRlIG9wdGlvbnMucGFyYW1zLnBhdGg7XG5cbiAgICB0aGlzLl9yZXF1ZXN0KG9wdGlvbnMsIGF1dGgsIHBhdGgsIChlcnIsIHJlcywgYm9keSkgPT4ge1xuICAgICAgaWYgKHJlcyAmJiByZXMuc3RhdHVzQ29kZSAhPT0gMjAwKSB7XG4gICAgICAgIGVyciA9IG5ldyBFcnJvcihgSW52YWxpZCBIVFRQIFN0YXR1cyBDb2RlOiAke3Jlcy5zdGF0dXNDb2RlfWApO1xuICAgICAgfVxuXG4gICAgICBpZiAoZXJyKSB7XG4gICAgICAgIHJldHVybiBjYWxsYmFjayhlcnIpO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIGJvZHkgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgYm9keSA9IEpTT04ucGFyc2UoYm9keSk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICByZXR1cm4gY2FsbGJhY2soZSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY2FsbGJhY2sobnVsbCwgYm9keSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIGxvZyBzdHJlYW0gZm9yIHRoaXMgdHJhbnNwb3J0LiBPcHRpb25zIG9iamVjdCBpcyBvcHRpb25hbC5cbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgLSBTdHJlYW0gb3B0aW9ucyBmb3IgdGhpcyBpbnN0YW5jZS5cbiAgICogQHJldHVybnMge1N0cmVhbX0gLSBUT0RPOiBhZGQgcmV0dXJuIGRlc2NyaXB0aW9uXG4gICAqL1xuICBzdHJlYW0ob3B0aW9ucyA9IHt9KSB7XG4gICAgY29uc3Qgc3RyZWFtID0gbmV3IFN0cmVhbSgpO1xuICAgIG9wdGlvbnMgPSB7XG4gICAgICBtZXRob2Q6ICdzdHJlYW0nLFxuICAgICAgcGFyYW1zOiBvcHRpb25zXG4gICAgfTtcblxuICAgIGNvbnN0IHBhdGggPSBvcHRpb25zLnBhcmFtcy5wYXRoIHx8IG51bGw7XG4gICAgZGVsZXRlIG9wdGlvbnMucGFyYW1zLnBhdGg7XG5cbiAgICBjb25zdCBhdXRoID0gb3B0aW9ucy5wYXJhbXMuYXV0aCB8fCBudWxsO1xuICAgIGRlbGV0ZSBvcHRpb25zLnBhcmFtcy5hdXRoO1xuXG4gICAgbGV0IGJ1ZmYgPSAnJztcbiAgICBjb25zdCByZXEgPSB0aGlzLl9yZXF1ZXN0KG9wdGlvbnMsIGF1dGgsIHBhdGgpO1xuXG4gICAgc3RyZWFtLmRlc3Ryb3kgPSAoKSA9PiByZXEuZGVzdHJveSgpO1xuICAgIHJlcS5vbignZGF0YScsIGRhdGEgPT4ge1xuICAgICAgZGF0YSA9IChidWZmICsgZGF0YSkuc3BsaXQoL1xcbisvKTtcbiAgICAgIGNvbnN0IGwgPSBkYXRhLmxlbmd0aCAtIDE7XG5cbiAgICAgIGxldCBpID0gMDtcbiAgICAgIGZvciAoOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgc3RyZWFtLmVtaXQoJ2xvZycsIEpTT04ucGFyc2UoZGF0YVtpXSkpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgc3RyZWFtLmVtaXQoJ2Vycm9yJywgZSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgYnVmZiA9IGRhdGFbbF07XG4gICAgfSk7XG4gICAgcmVxLm9uKCdlcnJvcicsIGVyciA9PiBzdHJlYW0uZW1pdCgnZXJyb3InLCBlcnIpKTtcblxuICAgIHJldHVybiBzdHJlYW07XG4gIH1cblxuICAvKipcbiAgICogTWFrZSBhIHJlcXVlc3QgdG8gYSB3aW5zdG9uZCBzZXJ2ZXIgb3IgYW55IGh0dHAgc2VydmVyIHdoaWNoIGNhblxuICAgKiBoYW5kbGUganNvbi1ycGMuXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IG9wdGlvbnMgLSBPcHRpb25zIHRvIHNlbnQgdGhlIHJlcXVlc3QuXG4gICAqIEBwYXJhbSB7T2JqZWN0P30gYXV0aCAtIGF1dGhlbnRpY2F0aW9uIG9wdGlvbnNcbiAgICogQHBhcmFtIHtzdHJpbmd9IHBhdGggLSByZXF1ZXN0IHBhdGhcbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gY2FsbGJhY2sgLSBDb250aW51YXRpb24gdG8gcmVzcG9uZCB0byB3aGVuIGNvbXBsZXRlLlxuICAgKi9cbiAgX3JlcXVlc3Qob3B0aW9ucywgYXV0aCwgcGF0aCwgY2FsbGJhY2spIHtcbiAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcblxuICAgIGF1dGggPSBhdXRoIHx8IHRoaXMuYXV0aDtcbiAgICBwYXRoID0gcGF0aCB8fCB0aGlzLnBhdGggfHwgJyc7XG5cbiAgICBpZiAodGhpcy5iYXRjaCkge1xuICAgICAgdGhpcy5fZG9CYXRjaChvcHRpb25zLCBjYWxsYmFjaywgYXV0aCwgcGF0aCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2RvUmVxdWVzdChvcHRpb25zLCBjYWxsYmFjaywgYXV0aCwgcGF0aCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNlbmQgb3IgbWVtb3JpemUgdGhlIG9wdGlvbnMgYWNjb3JkaW5nIHRvIGJhdGNoIGNvbmZpZ3VyYXRpb25cbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gb3B0aW9ucyAtIE9wdGlvbnMgdG8gc2VudCB0aGUgcmVxdWVzdC5cbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gY2FsbGJhY2sgLSBDb250aW51YXRpb24gdG8gcmVzcG9uZCB0byB3aGVuIGNvbXBsZXRlLlxuICAgKiBAcGFyYW0ge09iamVjdD99IGF1dGggLSBhdXRoZW50aWNhdGlvbiBvcHRpb25zXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoIC0gcmVxdWVzdCBwYXRoXG4gICAqL1xuICBfZG9CYXRjaChvcHRpb25zLCBjYWxsYmFjaywgYXV0aCwgcGF0aCkge1xuICAgIHRoaXMuYmF0Y2hPcHRpb25zLnB1c2gob3B0aW9ucyk7XG4gICAgaWYgKHRoaXMuYmF0Y2hPcHRpb25zLmxlbmd0aCA9PT0gMSkge1xuICAgICAgLy8gRmlyc3QgbWVzc2FnZSBzdG9yZWQsIGl0J3MgdGltZSB0byBzdGFydCB0aGUgdGltZW91dCFcbiAgICAgIGNvbnN0IG1lID0gdGhpcztcbiAgICAgIHRoaXMuYmF0Y2hDYWxsYmFjayA9IGNhbGxiYWNrO1xuICAgICAgdGhpcy5iYXRjaFRpbWVvdXRJRCA9IHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAvLyB0aW1lb3V0IGlzIHJlYWNoZWQsIHNlbmQgYWxsIG1lc3NhZ2VzIHRvIGVuZHBvaW50XG4gICAgICAgIG1lLmJhdGNoVGltZW91dElEID0gLTE7XG4gICAgICAgIG1lLl9kb0JhdGNoUmVxdWVzdChtZS5iYXRjaENhbGxiYWNrLCBhdXRoLCBwYXRoKTtcbiAgICAgIH0sIHRoaXMuYmF0Y2hJbnRlcnZhbCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmJhdGNoT3B0aW9ucy5sZW5ndGggPT09IHRoaXMuYmF0Y2hDb3VudCkge1xuICAgICAgLy8gbWF4IGJhdGNoIGNvdW50IGlzIHJlYWNoZWQsIHNlbmQgYWxsIG1lc3NhZ2VzIHRvIGVuZHBvaW50XG4gICAgICB0aGlzLl9kb0JhdGNoUmVxdWVzdCh0aGlzLmJhdGNoQ2FsbGJhY2ssIGF1dGgsIHBhdGgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWF0ZSBhIHJlcXVlc3Qgd2l0aCB0aGUgbWVtb3JpemVkIGJhdGNoIG9wdGlvbnMsIHN0b3AgdGhlIGJhdGNoIHRpbWVvdXRcbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gY2FsbGJhY2sgLSBDb250aW51YXRpb24gdG8gcmVzcG9uZCB0byB3aGVuIGNvbXBsZXRlLlxuICAgKiBAcGFyYW0ge09iamVjdD99IGF1dGggLSBhdXRoZW50aWNhdGlvbiBvcHRpb25zXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoIC0gcmVxdWVzdCBwYXRoXG4gICAqL1xuICBfZG9CYXRjaFJlcXVlc3QoY2FsbGJhY2ssIGF1dGgsIHBhdGgpIHtcbiAgICBpZiAodGhpcy5iYXRjaFRpbWVvdXRJRCA+IDApIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLmJhdGNoVGltZW91dElEKTtcbiAgICAgIHRoaXMuYmF0Y2hUaW1lb3V0SUQgPSAtMTtcbiAgICB9XG4gICAgY29uc3QgYmF0Y2hPcHRpb25zQ29weSA9IHRoaXMuYmF0Y2hPcHRpb25zLnNsaWNlKCk7XG4gICAgdGhpcy5iYXRjaE9wdGlvbnMgPSBbXTtcbiAgICB0aGlzLl9kb1JlcXVlc3QoYmF0Y2hPcHRpb25zQ29weSwgY2FsbGJhY2ssIGF1dGgsIHBhdGgpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ha2UgYSByZXF1ZXN0IHRvIGEgd2luc3RvbmQgc2VydmVyIG9yIGFueSBodHRwIHNlcnZlciB3aGljaCBjYW5cbiAgICogaGFuZGxlIGpzb24tcnBjLlxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBvcHRpb25zIC0gT3B0aW9ucyB0byBzZW50IHRoZSByZXF1ZXN0LlxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBjYWxsYmFjayAtIENvbnRpbnVhdGlvbiB0byByZXNwb25kIHRvIHdoZW4gY29tcGxldGUuXG4gICAqIEBwYXJhbSB7T2JqZWN0P30gYXV0aCAtIGF1dGhlbnRpY2F0aW9uIG9wdGlvbnNcbiAgICogQHBhcmFtIHtzdHJpbmd9IHBhdGggLSByZXF1ZXN0IHBhdGhcbiAgICovXG4gIF9kb1JlcXVlc3Qob3B0aW9ucywgY2FsbGJhY2ssIGF1dGgsIHBhdGgpIHtcbiAgICAvLyBQcmVwYXJlIG9wdGlvbnMgZm9yIG91dGdvaW5nIEhUVFAgcmVxdWVzdFxuICAgIGNvbnN0IGhlYWRlcnMgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmhlYWRlcnMpO1xuICAgIGlmIChhdXRoICYmIGF1dGguYmVhcmVyKSB7XG4gICAgICBoZWFkZXJzLkF1dGhvcml6YXRpb24gPSBgQmVhcmVyICR7YXV0aC5iZWFyZXJ9YDtcbiAgICB9XG4gICAgY29uc3QgcmVxID0gKHRoaXMuc3NsID8gaHR0cHMgOiBodHRwKS5yZXF1ZXN0KHtcbiAgICAgIC4uLnRoaXMub3B0aW9ucyxcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgaG9zdDogdGhpcy5ob3N0LFxuICAgICAgcG9ydDogdGhpcy5wb3J0LFxuICAgICAgcGF0aDogYC8ke3BhdGgucmVwbGFjZSgvXlxcLy8sICcnKX1gLFxuICAgICAgaGVhZGVyczogaGVhZGVycyxcbiAgICAgIGF1dGg6IChhdXRoICYmIGF1dGgudXNlcm5hbWUgJiYgYXV0aC5wYXNzd29yZCkgPyAoYCR7YXV0aC51c2VybmFtZX06JHthdXRoLnBhc3N3b3JkfWApIDogJycsXG4gICAgICBhZ2VudDogdGhpcy5hZ2VudFxuICAgIH0pO1xuXG4gICAgcmVxLm9uKCdlcnJvcicsIGNhbGxiYWNrKTtcbiAgICByZXEub24oJ3Jlc3BvbnNlJywgcmVzID0+IChcbiAgICAgIHJlcy5vbignZW5kJywgKCkgPT4gY2FsbGJhY2sobnVsbCwgcmVzKSkucmVzdW1lKClcbiAgICApKTtcbiAgICBjb25zdCBqc29uU3RyaW5naWZ5ID0gY29uZmlndXJlKHtcbiAgICAgIC4uLih0aGlzLm1heGltdW1EZXB0aCAmJiB7IG1heGltdW1EZXB0aDogdGhpcy5tYXhpbXVtRGVwdGggfSlcbiAgICB9KTtcbiAgICByZXEuZW5kKEJ1ZmZlci5mcm9tKGpzb25TdHJpbmdpZnkob3B0aW9ucywgdGhpcy5vcHRpb25zLnJlcGxhY2VyKSwgJ3V0ZjgnKSk7XG4gIH1cbn07XG4iLCAiLyoqXG4gKiBzdHJlYW0uanM6IFRyYW5zcG9ydCBmb3Igb3V0cHV0dGluZyB0byBhbnkgYXJiaXRyYXJ5IHN0cmVhbS5cbiAqXG4gKiAoQykgMjAxMCBDaGFybGllIFJvYmJpbnNcbiAqIE1JVCBMSUNFTkNFXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5jb25zdCBpc1N0cmVhbSA9IHJlcXVpcmUoJ2lzLXN0cmVhbScpO1xuY29uc3QgeyBNRVNTQUdFIH0gPSByZXF1aXJlKCd0cmlwbGUtYmVhbScpO1xuY29uc3Qgb3MgPSByZXF1aXJlKCdvcycpO1xuY29uc3QgVHJhbnNwb3J0U3RyZWFtID0gcmVxdWlyZSgnd2luc3Rvbi10cmFuc3BvcnQnKTtcblxuLyoqXG4gKiBUcmFuc3BvcnQgZm9yIG91dHB1dHRpbmcgdG8gYW55IGFyYml0cmFyeSBzdHJlYW0uXG4gKiBAdHlwZSB7U3RyZWFtfVxuICogQGV4dGVuZHMge1RyYW5zcG9ydFN0cmVhbX1cbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBjbGFzcyBTdHJlYW0gZXh0ZW5kcyBUcmFuc3BvcnRTdHJlYW0ge1xuICAvKipcbiAgICogQ29uc3RydWN0b3IgZnVuY3Rpb24gZm9yIHRoZSBDb25zb2xlIHRyYW5zcG9ydCBvYmplY3QgcmVzcG9uc2libGUgZm9yXG4gICAqIHBlcnNpc3RpbmcgbG9nIG1lc3NhZ2VzIGFuZCBtZXRhZGF0YSB0byBhIHRlcm1pbmFsIG9yIFRUWS5cbiAgICogQHBhcmFtIHshT2JqZWN0fSBbb3B0aW9ucz17fV0gLSBPcHRpb25zIGZvciB0aGlzIGluc3RhbmNlLlxuICAgKi9cbiAgY29uc3RydWN0b3Iob3B0aW9ucyA9IHt9KSB7XG4gICAgc3VwZXIob3B0aW9ucyk7XG5cbiAgICBpZiAoIW9wdGlvbnMuc3RyZWFtIHx8ICFpc1N0cmVhbShvcHRpb25zLnN0cmVhbSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignb3B0aW9ucy5zdHJlYW0gaXMgcmVxdWlyZWQuJyk7XG4gICAgfVxuXG4gICAgLy8gV2UgbmVlZCB0byBsaXN0ZW4gZm9yIGRyYWluIGV2ZW50cyB3aGVuIHdyaXRlKCkgcmV0dXJucyBmYWxzZS4gVGhpcyBjYW5cbiAgICAvLyBtYWtlIG5vZGUgbWFkIGF0IHRpbWVzLlxuICAgIHRoaXMuX3N0cmVhbSA9IG9wdGlvbnMuc3RyZWFtO1xuICAgIHRoaXMuX3N0cmVhbS5zZXRNYXhMaXN0ZW5lcnMoSW5maW5pdHkpO1xuICAgIHRoaXMuaXNPYmplY3RNb2RlID0gb3B0aW9ucy5zdHJlYW0uX3dyaXRhYmxlU3RhdGUub2JqZWN0TW9kZTtcbiAgICB0aGlzLmVvbCA9ICh0eXBlb2Ygb3B0aW9ucy5lb2wgPT09ICdzdHJpbmcnKSA/IG9wdGlvbnMuZW9sIDogb3MuRU9MO1xuICB9XG5cbiAgLyoqXG4gICAqIENvcmUgbG9nZ2luZyBtZXRob2QgZXhwb3NlZCB0byBXaW5zdG9uLlxuICAgKiBAcGFyYW0ge09iamVjdH0gaW5mbyAtIFRPRE86IGFkZCBwYXJhbSBkZXNjcmlwdGlvbi5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gY2FsbGJhY2sgLSBUT0RPOiBhZGQgcGFyYW0gZGVzY3JpcHRpb24uXG4gICAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gICAqL1xuICBsb2coaW5mbywgY2FsbGJhY2spIHtcbiAgICBzZXRJbW1lZGlhdGUoKCkgPT4gdGhpcy5lbWl0KCdsb2dnZWQnLCBpbmZvKSk7XG4gICAgaWYgKHRoaXMuaXNPYmplY3RNb2RlKSB7XG4gICAgICB0aGlzLl9zdHJlYW0ud3JpdGUoaW5mbyk7XG4gICAgICBpZiAoY2FsbGJhY2spIHtcbiAgICAgICAgY2FsbGJhY2soKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBjYWxsYmFjay1yZXR1cm5cbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9zdHJlYW0ud3JpdGUoYCR7aW5mb1tNRVNTQUdFXX0ke3RoaXMuZW9sfWApO1xuICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgY2FsbGJhY2soKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBjYWxsYmFjay1yZXR1cm5cbiAgICB9XG4gICAgcmV0dXJuO1xuICB9XG59O1xuIiwgIi8qKlxuICogdHJhbnNwb3J0cy5qczogU2V0IG9mIGFsbCB0cmFuc3BvcnRzIFdpbnN0b24ga25vd3MgYWJvdXQuXG4gKlxuICogKEMpIDIwMTAgQ2hhcmxpZSBSb2JiaW5zXG4gKiBNSVQgTElDRU5DRVxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuLyoqXG4gKiBUT0RPOiBhZGQgcHJvcGVydHkgZGVzY3JpcHRpb24uXG4gKiBAdHlwZSB7Q29uc29sZX1cbiAqL1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdDb25zb2xlJywge1xuICBjb25maWd1cmFibGU6IHRydWUsXG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGdldCgpIHtcbiAgICByZXR1cm4gcmVxdWlyZSgnLi9jb25zb2xlJyk7XG4gIH1cbn0pO1xuXG4vKipcbiAqIFRPRE86IGFkZCBwcm9wZXJ0eSBkZXNjcmlwdGlvbi5cbiAqIEB0eXBlIHtGaWxlfVxuICovXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ0ZpbGUnLCB7XG4gIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgZ2V0KCkge1xuICAgIHJldHVybiByZXF1aXJlKCcuL2ZpbGUnKTtcbiAgfVxufSk7XG5cbi8qKlxuICogVE9ETzogYWRkIHByb3BlcnR5IGRlc2NyaXB0aW9uLlxuICogQHR5cGUge0h0dHB9XG4gKi9cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnSHR0cCcsIHtcbiAgY29uZmlndXJhYmxlOiB0cnVlLFxuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBnZXQoKSB7XG4gICAgcmV0dXJuIHJlcXVpcmUoJy4vaHR0cCcpO1xuICB9XG59KTtcblxuLyoqXG4gKiBUT0RPOiBhZGQgcHJvcGVydHkgZGVzY3JpcHRpb24uXG4gKiBAdHlwZSB7U3RyZWFtfVxuICovXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ1N0cmVhbScsIHtcbiAgY29uZmlndXJhYmxlOiB0cnVlLFxuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBnZXQoKSB7XG4gICAgcmV0dXJuIHJlcXVpcmUoJy4vc3RyZWFtJyk7XG4gIH1cbn0pO1xuIiwgIi8qKlxuICogaW5kZXguanM6IERlZmF1bHQgc2V0dGluZ3MgZm9yIGFsbCBsZXZlbHMgdGhhdCB3aW5zdG9uIGtub3dzIGFib3V0LlxuICpcbiAqIChDKSAyMDEwIENoYXJsaWUgUm9iYmluc1xuICogTUlUIExJQ0VOQ0VcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmNvbnN0IGxvZ2Zvcm0gPSByZXF1aXJlKCdsb2dmb3JtJyk7XG5jb25zdCB7IGNvbmZpZ3MgfSA9IHJlcXVpcmUoJ3RyaXBsZS1iZWFtJyk7XG5cbi8qKlxuICogRXhwb3J0IGNvbmZpZyBzZXQgZm9yIHRoZSBDTEkuXG4gKiBAdHlwZSB7T2JqZWN0fVxuICovXG5leHBvcnRzLmNsaSA9IGxvZ2Zvcm0ubGV2ZWxzKGNvbmZpZ3MuY2xpKTtcblxuLyoqXG4gKiBFeHBvcnQgY29uZmlnIHNldCBmb3IgbnBtLlxuICogQHR5cGUge09iamVjdH1cbiAqL1xuZXhwb3J0cy5ucG0gPSBsb2dmb3JtLmxldmVscyhjb25maWdzLm5wbSk7XG5cbi8qKlxuICogRXhwb3J0IGNvbmZpZyBzZXQgZm9yIHRoZSBzeXNsb2cuXG4gKiBAdHlwZSB7T2JqZWN0fVxuICovXG5leHBvcnRzLnN5c2xvZyA9IGxvZ2Zvcm0ubGV2ZWxzKGNvbmZpZ3Muc3lzbG9nKTtcblxuLyoqXG4gKiBIb2lzdCBhZGRDb2xvcnMgZnJvbSBsb2dmb3JtIHdoZXJlIGl0IHdhcyByZWZhY3RvcmVkIGludG8gaW4gd2luc3RvbkAzLlxuICogQHR5cGUge09iamVjdH1cbiAqL1xuZXhwb3J0cy5hZGRDb2xvcnMgPSBsb2dmb3JtLmxldmVscztcbiIsICIvKipcbiAqIGV4Y2VwdGlvbi1zdHJlYW0uanM6IFRPRE86IGFkZCBmaWxlIGhlYWRlciBoYW5kbGVyLlxuICpcbiAqIChDKSAyMDEwIENoYXJsaWUgUm9iYmluc1xuICogTUlUIExJQ0VOQ0VcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmNvbnN0IHsgV3JpdGFibGUgfSA9IHJlcXVpcmUoJ3JlYWRhYmxlLXN0cmVhbScpO1xuXG4vKipcbiAqIFRPRE86IGFkZCBjbGFzcyBkZXNjcmlwdGlvbi5cbiAqIEB0eXBlIHtFeGNlcHRpb25TdHJlYW19XG4gKiBAZXh0ZW5kcyB7V3JpdGFibGV9XG4gKi9cbm1vZHVsZS5leHBvcnRzID0gY2xhc3MgRXhjZXB0aW9uU3RyZWFtIGV4dGVuZHMgV3JpdGFibGUge1xuICAvKipcbiAgICogQ29uc3RydWN0b3IgZnVuY3Rpb24gZm9yIHRoZSBFeGNlcHRpb25TdHJlYW0gcmVzcG9uc2libGUgZm9yIHdyYXBwaW5nIGFcbiAgICogVHJhbnNwb3J0U3RyZWFtOyBvbmx5IGFsbG93aW5nIHdyaXRlcyBvZiBgaW5mb2Agb2JqZWN0cyB3aXRoXG4gICAqIGBpbmZvLmV4Y2VwdGlvbmAgc2V0IHRvIHRydWUuXG4gICAqIEBwYXJhbSB7IVRyYW5zcG9ydFN0cmVhbX0gdHJhbnNwb3J0IC0gU3RyZWFtIHRvIGZpbHRlciB0byBleGNlcHRpb25zXG4gICAqL1xuICBjb25zdHJ1Y3Rvcih0cmFuc3BvcnQpIHtcbiAgICBzdXBlcih7IG9iamVjdE1vZGU6IHRydWUgfSk7XG5cbiAgICBpZiAoIXRyYW5zcG9ydCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeGNlcHRpb25TdHJlYW0gcmVxdWlyZXMgYSBUcmFuc3BvcnRTdHJlYW0gaW5zdGFuY2UuJyk7XG4gICAgfVxuXG4gICAgLy8gUmVtYXJrIChpbmRleHplcm8pOiB3ZSBzZXQgYGhhbmRsZUV4Y2VwdGlvbnNgIGhlcmUgYmVjYXVzZSBpdCdzIHRoZVxuICAgIC8vIHByZWRpY2F0ZSBjaGVja2VkIGluIEV4Y2VwdGlvbkhhbmRsZXIucHJvdG90eXBlLl9fZ2V0RXhjZXB0aW9uSGFuZGxlcnNcbiAgICB0aGlzLmhhbmRsZUV4Y2VwdGlvbnMgPSB0cnVlO1xuICAgIHRoaXMudHJhbnNwb3J0ID0gdHJhbnNwb3J0O1xuICB9XG5cbiAgLyoqXG4gICAqIFdyaXRlcyB0aGUgaW5mbyBvYmplY3QgdG8gb3VyIHRyYW5zcG9ydCBpbnN0YW5jZSBpZiAoYW5kIG9ubHkgaWYpIHRoZVxuICAgKiBgZXhjZXB0aW9uYCBwcm9wZXJ0eSBpcyBzZXQgb24gdGhlIGluZm8uXG4gICAqIEBwYXJhbSB7bWl4ZWR9IGluZm8gLSBUT0RPOiBhZGQgcGFyYW0gZGVzY3JpcHRpb24uXG4gICAqIEBwYXJhbSB7bWl4ZWR9IGVuYyAtIFRPRE86IGFkZCBwYXJhbSBkZXNjcmlwdGlvbi5cbiAgICogQHBhcmFtIHttaXhlZH0gY2FsbGJhY2sgLSBUT0RPOiBhZGQgcGFyYW0gZGVzY3JpcHRpb24uXG4gICAqIEByZXR1cm5zIHttaXhlZH0gLSBUT0RPOiBhZGQgcmV0dXJuIGRlc2NyaXB0aW9uLlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgX3dyaXRlKGluZm8sIGVuYywgY2FsbGJhY2spIHtcbiAgICBpZiAoaW5mby5leGNlcHRpb24pIHtcbiAgICAgIHJldHVybiB0aGlzLnRyYW5zcG9ydC5sb2coaW5mbywgY2FsbGJhY2spO1xuICAgIH1cblxuICAgIGNhbGxiYWNrKCk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn07XG4iLCAiLyoqXG4gKiBleGNlcHRpb24taGFuZGxlci5qczogT2JqZWN0IGZvciBoYW5kbGluZyB1bmNhdWdodEV4Y2VwdGlvbiBldmVudHMuXG4gKlxuICogKEMpIDIwMTAgQ2hhcmxpZSBSb2JiaW5zXG4gKiBNSVQgTElDRU5DRVxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuY29uc3Qgb3MgPSByZXF1aXJlKCdvcycpO1xuY29uc3QgYXN5bmNGb3JFYWNoID0gcmVxdWlyZSgnYXN5bmMvZm9yRWFjaCcpO1xuY29uc3QgZGVidWcgPSByZXF1aXJlKCdAZGFiaC9kaWFnbm9zdGljcycpKCd3aW5zdG9uOmV4Y2VwdGlvbicpO1xuY29uc3Qgb25jZSA9IHJlcXVpcmUoJ29uZS10aW1lJyk7XG5jb25zdCBzdGFja1RyYWNlID0gcmVxdWlyZSgnc3RhY2stdHJhY2UnKTtcbmNvbnN0IEV4Y2VwdGlvblN0cmVhbSA9IHJlcXVpcmUoJy4vZXhjZXB0aW9uLXN0cmVhbScpO1xuXG4vKipcbiAqIE9iamVjdCBmb3IgaGFuZGxpbmcgdW5jYXVnaHRFeGNlcHRpb24gZXZlbnRzLlxuICogQHR5cGUge0V4Y2VwdGlvbkhhbmRsZXJ9XG4gKi9cbm1vZHVsZS5leHBvcnRzID0gY2xhc3MgRXhjZXB0aW9uSGFuZGxlciB7XG4gIC8qKlxuICAgKiBUT0RPOiBhZGQgY29udHJ1Y3RvciBkZXNjcmlwdGlvblxuICAgKiBAcGFyYW0geyFMb2dnZXJ9IGxvZ2dlciAtIFRPRE86IGFkZCBwYXJhbSBkZXNjcmlwdGlvblxuICAgKi9cbiAgY29uc3RydWN0b3IobG9nZ2VyKSB7XG4gICAgaWYgKCFsb2dnZXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTG9nZ2VyIGlzIHJlcXVpcmVkIHRvIGhhbmRsZSBleGNlcHRpb25zJyk7XG4gICAgfVxuXG4gICAgdGhpcy5sb2dnZXIgPSBsb2dnZXI7XG4gICAgdGhpcy5oYW5kbGVycyA9IG5ldyBNYXAoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGVzIGB1bmNhdWdodEV4Y2VwdGlvbmAgZXZlbnRzIGZvciB0aGUgY3VycmVudCBwcm9jZXNzIGJ5IGFkZGluZyBhbnlcbiAgICogaGFuZGxlcnMgcGFzc2VkIGluLlxuICAgKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICAgKi9cbiAgaGFuZGxlKC4uLmFyZ3MpIHtcbiAgICBhcmdzLmZvckVhY2goYXJnID0+IHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGFyZykpIHtcbiAgICAgICAgcmV0dXJuIGFyZy5mb3JFYWNoKGhhbmRsZXIgPT4gdGhpcy5fYWRkSGFuZGxlcihoYW5kbGVyKSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuX2FkZEhhbmRsZXIoYXJnKTtcbiAgICB9KTtcblxuICAgIGlmICghdGhpcy5jYXRjaGVyKSB7XG4gICAgICB0aGlzLmNhdGNoZXIgPSB0aGlzLl91bmNhdWdodEV4Y2VwdGlvbi5iaW5kKHRoaXMpO1xuICAgICAgcHJvY2Vzcy5vbigndW5jYXVnaHRFeGNlcHRpb24nLCB0aGlzLmNhdGNoZXIpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIGFueSBoYW5kbGVycyB0byBgdW5jYXVnaHRFeGNlcHRpb25gIGV2ZW50cyBmb3IgdGhlIGN1cnJlbnRcbiAgICogcHJvY2Vzcy4gVGhpcyBkb2VzIG5vdCBtb2RpZnkgdGhlIHN0YXRlIG9mIHRoZSBgdGhpcy5oYW5kbGVyc2Agc2V0LlxuICAgKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICAgKi9cbiAgdW5oYW5kbGUoKSB7XG4gICAgaWYgKHRoaXMuY2F0Y2hlcikge1xuICAgICAgcHJvY2Vzcy5yZW1vdmVMaXN0ZW5lcigndW5jYXVnaHRFeGNlcHRpb24nLCB0aGlzLmNhdGNoZXIpO1xuICAgICAgdGhpcy5jYXRjaGVyID0gZmFsc2U7XG5cbiAgICAgIEFycmF5LmZyb20odGhpcy5oYW5kbGVycy52YWx1ZXMoKSlcbiAgICAgICAgLmZvckVhY2god3JhcHBlciA9PiB0aGlzLmxvZ2dlci51bnBpcGUod3JhcHBlcikpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUT0RPOiBhZGQgbWV0aG9kIGRlc2NyaXB0aW9uXG4gICAqIEBwYXJhbSB7RXJyb3J9IGVyciAtIEVycm9yIHRvIGdldCBpbmZvcm1hdGlvbiBhYm91dC5cbiAgICogQHJldHVybnMge21peGVkfSAtIFRPRE86IGFkZCByZXR1cm4gZGVzY3JpcHRpb24uXG4gICAqL1xuICBnZXRBbGxJbmZvKGVycikge1xuICAgIGxldCBtZXNzYWdlID0gbnVsbDtcbiAgICBpZiAoZXJyKSB7XG4gICAgICBtZXNzYWdlID0gdHlwZW9mIGVyciA9PT0gJ3N0cmluZycgPyBlcnIgOiBlcnIubWVzc2FnZTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgZXJyb3I6IGVycixcbiAgICAgIC8vIFRPRE8gKGluZGV4emVybyk6IGhvdyBkbyB3ZSBjb25maWd1cmUgdGhpcz9cbiAgICAgIGxldmVsOiAnZXJyb3InLFxuICAgICAgbWVzc2FnZTogW1xuICAgICAgICBgdW5jYXVnaHRFeGNlcHRpb246ICR7KG1lc3NhZ2UgfHwgJyhubyBlcnJvciBtZXNzYWdlKScpfWAsXG4gICAgICAgIGVyciAmJiBlcnIuc3RhY2sgfHwgJyAgTm8gc3RhY2sgdHJhY2UnXG4gICAgICBdLmpvaW4oJ1xcbicpLFxuICAgICAgc3RhY2s6IGVyciAmJiBlcnIuc3RhY2ssXG4gICAgICBleGNlcHRpb246IHRydWUsXG4gICAgICBkYXRlOiBuZXcgRGF0ZSgpLnRvU3RyaW5nKCksXG4gICAgICBwcm9jZXNzOiB0aGlzLmdldFByb2Nlc3NJbmZvKCksXG4gICAgICBvczogdGhpcy5nZXRPc0luZm8oKSxcbiAgICAgIHRyYWNlOiB0aGlzLmdldFRyYWNlKGVycilcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgYWxsIHJlbGV2YW50IHByb2Nlc3MgaW5mb3JtYXRpb24gZm9yIHRoZSBjdXJyZW50bHkgcnVubmluZyBwcm9jZXNzLlxuICAgKiBAcmV0dXJucyB7bWl4ZWR9IC0gVE9ETzogYWRkIHJldHVybiBkZXNjcmlwdGlvbi5cbiAgICovXG4gIGdldFByb2Nlc3NJbmZvKCkge1xuICAgIHJldHVybiB7XG4gICAgICBwaWQ6IHByb2Nlc3MucGlkLFxuICAgICAgdWlkOiBwcm9jZXNzLmdldHVpZCA/IHByb2Nlc3MuZ2V0dWlkKCkgOiBudWxsLFxuICAgICAgZ2lkOiBwcm9jZXNzLmdldGdpZCA/IHByb2Nlc3MuZ2V0Z2lkKCkgOiBudWxsLFxuICAgICAgY3dkOiBwcm9jZXNzLmN3ZCgpLFxuICAgICAgZXhlY1BhdGg6IHByb2Nlc3MuZXhlY1BhdGgsXG4gICAgICB2ZXJzaW9uOiBwcm9jZXNzLnZlcnNpb24sXG4gICAgICBhcmd2OiBwcm9jZXNzLmFyZ3YsXG4gICAgICBtZW1vcnlVc2FnZTogcHJvY2Vzcy5tZW1vcnlVc2FnZSgpXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGFsbCByZWxldmFudCBPUyBpbmZvcm1hdGlvbiBmb3IgdGhlIGN1cnJlbnRseSBydW5uaW5nIHByb2Nlc3MuXG4gICAqIEByZXR1cm5zIHttaXhlZH0gLSBUT0RPOiBhZGQgcmV0dXJuIGRlc2NyaXB0aW9uLlxuICAgKi9cbiAgZ2V0T3NJbmZvKCkge1xuICAgIHJldHVybiB7XG4gICAgICBsb2FkYXZnOiBvcy5sb2FkYXZnKCksXG4gICAgICB1cHRpbWU6IG9zLnVwdGltZSgpXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGEgc3RhY2sgdHJhY2UgZm9yIHRoZSBzcGVjaWZpZWQgZXJyb3IuXG4gICAqIEBwYXJhbSB7bWl4ZWR9IGVyciAtIFRPRE86IGFkZCBwYXJhbSBkZXNjcmlwdGlvbi5cbiAgICogQHJldHVybnMge21peGVkfSAtIFRPRE86IGFkZCByZXR1cm4gZGVzY3JpcHRpb24uXG4gICAqL1xuICBnZXRUcmFjZShlcnIpIHtcbiAgICBjb25zdCB0cmFjZSA9IGVyciA/IHN0YWNrVHJhY2UucGFyc2UoZXJyKSA6IHN0YWNrVHJhY2UuZ2V0KCk7XG4gICAgcmV0dXJuIHRyYWNlLm1hcChzaXRlID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNvbHVtbjogc2l0ZS5nZXRDb2x1bW5OdW1iZXIoKSxcbiAgICAgICAgZmlsZTogc2l0ZS5nZXRGaWxlTmFtZSgpLFxuICAgICAgICBmdW5jdGlvbjogc2l0ZS5nZXRGdW5jdGlvbk5hbWUoKSxcbiAgICAgICAgbGluZTogc2l0ZS5nZXRMaW5lTnVtYmVyKCksXG4gICAgICAgIG1ldGhvZDogc2l0ZS5nZXRNZXRob2ROYW1lKCksXG4gICAgICAgIG5hdGl2ZTogc2l0ZS5pc05hdGl2ZSgpXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEhlbHBlciBtZXRob2QgdG8gYWRkIGEgdHJhbnNwb3J0IGFzIGFuIGV4Y2VwdGlvbiBoYW5kbGVyLlxuICAgKiBAcGFyYW0ge1RyYW5zcG9ydH0gaGFuZGxlciAtIFRoZSB0cmFuc3BvcnQgdG8gYWRkIGFzIGFuIGV4Y2VwdGlvbiBoYW5kbGVyLlxuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICovXG4gIF9hZGRIYW5kbGVyKGhhbmRsZXIpIHtcbiAgICBpZiAoIXRoaXMuaGFuZGxlcnMuaGFzKGhhbmRsZXIpKSB7XG4gICAgICBoYW5kbGVyLmhhbmRsZUV4Y2VwdGlvbnMgPSB0cnVlO1xuICAgICAgY29uc3Qgd3JhcHBlciA9IG5ldyBFeGNlcHRpb25TdHJlYW0oaGFuZGxlcik7XG4gICAgICB0aGlzLmhhbmRsZXJzLnNldChoYW5kbGVyLCB3cmFwcGVyKTtcbiAgICAgIHRoaXMubG9nZ2VyLnBpcGUod3JhcHBlcik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIExvZ3MgYWxsIHJlbGV2YW50IGluZm9ybWF0aW9uIGFyb3VuZCB0aGUgYGVycmAgYW5kIGV4aXRzIHRoZSBjdXJyZW50XG4gICAqIHByb2Nlc3MuXG4gICAqIEBwYXJhbSB7RXJyb3J9IGVyciAtIEVycm9yIHRvIGhhbmRsZVxuICAgKiBAcmV0dXJucyB7bWl4ZWR9IC0gVE9ETzogYWRkIHJldHVybiBkZXNjcmlwdGlvbi5cbiAgICogQHByaXZhdGVcbiAgICovXG4gIF91bmNhdWdodEV4Y2VwdGlvbihlcnIpIHtcbiAgICBjb25zdCBpbmZvID0gdGhpcy5nZXRBbGxJbmZvKGVycik7XG4gICAgY29uc3QgaGFuZGxlcnMgPSB0aGlzLl9nZXRFeGNlcHRpb25IYW5kbGVycygpO1xuICAgIC8vIENhbGN1bGF0ZSBpZiB3ZSBzaG91bGQgZXhpdCBvbiB0aGlzIGVycm9yXG4gICAgbGV0IGRvRXhpdCA9IHR5cGVvZiB0aGlzLmxvZ2dlci5leGl0T25FcnJvciA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgPyB0aGlzLmxvZ2dlci5leGl0T25FcnJvcihlcnIpXG4gICAgICA6IHRoaXMubG9nZ2VyLmV4aXRPbkVycm9yO1xuICAgIGxldCB0aW1lb3V0O1xuXG4gICAgaWYgKCFoYW5kbGVycy5sZW5ndGggJiYgZG9FeGl0KSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgY29uc29sZS53YXJuKCd3aW5zdG9uOiBleGl0T25FcnJvciBjYW5ub3QgYmUgdHJ1ZSB3aXRoIG5vIGV4Y2VwdGlvbiBoYW5kbGVycy4nKTtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICBjb25zb2xlLndhcm4oJ3dpbnN0b246IG5vdCBleGl0aW5nIHByb2Nlc3MuJyk7XG4gICAgICBkb0V4aXQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBncmFjZWZ1bEV4aXQoKSB7XG4gICAgICBkZWJ1ZygnZG9FeGl0JywgZG9FeGl0KTtcbiAgICAgIGRlYnVnKCdwcm9jZXNzLl9leGl0aW5nJywgcHJvY2Vzcy5fZXhpdGluZyk7XG5cbiAgICAgIGlmIChkb0V4aXQgJiYgIXByb2Nlc3MuX2V4aXRpbmcpIHtcbiAgICAgICAgLy8gUmVtYXJrOiBDdXJyZW50bHkgaWdub3JpbmcgYW55IGV4Y2VwdGlvbnMgZnJvbSB0cmFuc3BvcnRzIHdoZW5cbiAgICAgICAgLy8gY2F0Y2hpbmcgdW5jYXVnaHQgZXhjZXB0aW9ucy5cbiAgICAgICAgaWYgKHRpbWVvdXQpIHtcbiAgICAgICAgICBjbGVhclRpbWVvdXQodGltZW91dCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXByb2Nlc3MtZXhpdFxuICAgICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCFoYW5kbGVycyB8fCBoYW5kbGVycy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBwcm9jZXNzLm5leHRUaWNrKGdyYWNlZnVsRXhpdCk7XG4gICAgfVxuXG4gICAgLy8gTG9nIHRvIGFsbCB0cmFuc3BvcnRzIGF0dGVtcHRpbmcgdG8gbGlzdGVuIGZvciB3aGVuIHRoZXkgYXJlIGNvbXBsZXRlZC5cbiAgICBhc3luY0ZvckVhY2goaGFuZGxlcnMsIChoYW5kbGVyLCBuZXh0KSA9PiB7XG4gICAgICBjb25zdCBkb25lID0gb25jZShuZXh0KTtcbiAgICAgIGNvbnN0IHRyYW5zcG9ydCA9IGhhbmRsZXIudHJhbnNwb3J0IHx8IGhhbmRsZXI7XG5cbiAgICAgIC8vIERlYnVnIHdyYXBwaW5nIHNvIHRoYXQgd2UgY2FuIGluc3BlY3Qgd2hhdCdzIGdvaW5nIG9uIHVuZGVyIHRoZSBjb3ZlcnMuXG4gICAgICBmdW5jdGlvbiBvbkRvbmUoZXZlbnQpIHtcbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICBkZWJ1ZyhldmVudCk7XG4gICAgICAgICAgZG9uZSgpO1xuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICB0cmFuc3BvcnQuX2VuZGluZyA9IHRydWU7XG4gICAgICB0cmFuc3BvcnQub25jZSgnZmluaXNoJywgb25Eb25lKCdmaW5pc2hlZCcpKTtcbiAgICAgIHRyYW5zcG9ydC5vbmNlKCdlcnJvcicsIG9uRG9uZSgnZXJyb3InKSk7XG4gICAgfSwgKCkgPT4gZG9FeGl0ICYmIGdyYWNlZnVsRXhpdCgpKTtcblxuICAgIHRoaXMubG9nZ2VyLmxvZyhpbmZvKTtcblxuICAgIC8vIElmIGV4aXRPbkVycm9yIGlzIHRydWUsIHRoZW4gb25seSBhbGxvdyB0aGUgbG9nZ2luZyBvZiBleGNlcHRpb25zIHRvXG4gICAgLy8gdGFrZSB1cCB0byBgMzAwMG1zYC5cbiAgICBpZiAoZG9FeGl0KSB7XG4gICAgICB0aW1lb3V0ID0gc2V0VGltZW91dChncmFjZWZ1bEV4aXQsIDMwMDApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBsaXN0IG9mIHRyYW5zcG9ydHMgYW5kIGV4Y2VwdGlvbkhhbmRsZXJzIGZvciB0aGlzIGluc3RhbmNlLlxuICAgKiBAcmV0dXJucyB7QXJyYXl9IC0gTGlzdCBvZiB0cmFuc3BvcnRzIGFuZCBleGNlcHRpb25IYW5kbGVycyBmb3IgdGhpc1xuICAgKiBpbnN0YW5jZS5cbiAgICogQHByaXZhdGVcbiAgICovXG4gIF9nZXRFeGNlcHRpb25IYW5kbGVycygpIHtcbiAgICAvLyBSZW1hcmsgKGluZGV4emVybyk6IHNpbmNlIGBsb2dnZXIudHJhbnNwb3J0c2AgcmV0dXJucyBhbGwgb2YgdGhlIHBpcGVzXG4gICAgLy8gZnJvbSB0aGUgX3JlYWRhYmxlU3RhdGUgb2YgdGhlIHN0cmVhbSB3ZSBhY3R1YWxseSBnZXQgdGhlIGpvaW4gb2YgdGhlXG4gICAgLy8gZXhwbGljaXQgaGFuZGxlcnMgYW5kIHRoZSBpbXBsaWNpdCB0cmFuc3BvcnRzIHdpdGhcbiAgICAvLyBgaGFuZGxlRXhjZXB0aW9uczogdHJ1ZWBcbiAgICByZXR1cm4gdGhpcy5sb2dnZXIudHJhbnNwb3J0cy5maWx0ZXIod3JhcCA9PiB7XG4gICAgICBjb25zdCB0cmFuc3BvcnQgPSB3cmFwLnRyYW5zcG9ydCB8fCB3cmFwO1xuICAgICAgcmV0dXJuIHRyYW5zcG9ydC5oYW5kbGVFeGNlcHRpb25zO1xuICAgIH0pO1xuICB9XG59O1xuIiwgIi8qKlxuICogcmVqZWN0aW9uLXN0cmVhbS5qczogVE9ETzogYWRkIGZpbGUgaGVhZGVyIGhhbmRsZXIuXG4gKlxuICogKEMpIDIwMTAgQ2hhcmxpZSBSb2JiaW5zXG4gKiBNSVQgTElDRU5DRVxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuY29uc3QgeyBXcml0YWJsZSB9ID0gcmVxdWlyZSgncmVhZGFibGUtc3RyZWFtJyk7XG5cbi8qKlxuICogVE9ETzogYWRkIGNsYXNzIGRlc2NyaXB0aW9uLlxuICogQHR5cGUge1JlamVjdGlvblN0cmVhbX1cbiAqIEBleHRlbmRzIHtXcml0YWJsZX1cbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBjbGFzcyBSZWplY3Rpb25TdHJlYW0gZXh0ZW5kcyBXcml0YWJsZSB7XG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RvciBmdW5jdGlvbiBmb3IgdGhlIFJlamVjdGlvblN0cmVhbSByZXNwb25zaWJsZSBmb3Igd3JhcHBpbmcgYVxuICAgKiBUcmFuc3BvcnRTdHJlYW07IG9ubHkgYWxsb3dpbmcgd3JpdGVzIG9mIGBpbmZvYCBvYmplY3RzIHdpdGhcbiAgICogYGluZm8ucmVqZWN0aW9uYCBzZXQgdG8gdHJ1ZS5cbiAgICogQHBhcmFtIHshVHJhbnNwb3J0U3RyZWFtfSB0cmFuc3BvcnQgLSBTdHJlYW0gdG8gZmlsdGVyIHRvIHJlamVjdGlvbnNcbiAgICovXG4gIGNvbnN0cnVjdG9yKHRyYW5zcG9ydCkge1xuICAgIHN1cGVyKHsgb2JqZWN0TW9kZTogdHJ1ZSB9KTtcblxuICAgIGlmICghdHJhbnNwb3J0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlamVjdGlvblN0cmVhbSByZXF1aXJlcyBhIFRyYW5zcG9ydFN0cmVhbSBpbnN0YW5jZS4nKTtcbiAgICB9XG5cbiAgICB0aGlzLmhhbmRsZVJlamVjdGlvbnMgPSB0cnVlO1xuICAgIHRoaXMudHJhbnNwb3J0ID0gdHJhbnNwb3J0O1xuICB9XG5cbiAgLyoqXG4gICAqIFdyaXRlcyB0aGUgaW5mbyBvYmplY3QgdG8gb3VyIHRyYW5zcG9ydCBpbnN0YW5jZSBpZiAoYW5kIG9ubHkgaWYpIHRoZVxuICAgKiBgcmVqZWN0aW9uYCBwcm9wZXJ0eSBpcyBzZXQgb24gdGhlIGluZm8uXG4gICAqIEBwYXJhbSB7bWl4ZWR9IGluZm8gLSBUT0RPOiBhZGQgcGFyYW0gZGVzY3JpcHRpb24uXG4gICAqIEBwYXJhbSB7bWl4ZWR9IGVuYyAtIFRPRE86IGFkZCBwYXJhbSBkZXNjcmlwdGlvbi5cbiAgICogQHBhcmFtIHttaXhlZH0gY2FsbGJhY2sgLSBUT0RPOiBhZGQgcGFyYW0gZGVzY3JpcHRpb24uXG4gICAqIEByZXR1cm5zIHttaXhlZH0gLSBUT0RPOiBhZGQgcmV0dXJuIGRlc2NyaXB0aW9uLlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgX3dyaXRlKGluZm8sIGVuYywgY2FsbGJhY2spIHtcbiAgICBpZiAoaW5mby5yZWplY3Rpb24pIHtcbiAgICAgIHJldHVybiB0aGlzLnRyYW5zcG9ydC5sb2coaW5mbywgY2FsbGJhY2spO1xuICAgIH1cblxuICAgIGNhbGxiYWNrKCk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn07XG4iLCAiLyoqXG4gKiBleGNlcHRpb24taGFuZGxlci5qczogT2JqZWN0IGZvciBoYW5kbGluZyB1bmNhdWdodEV4Y2VwdGlvbiBldmVudHMuXG4gKlxuICogKEMpIDIwMTAgQ2hhcmxpZSBSb2JiaW5zXG4gKiBNSVQgTElDRU5DRVxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuY29uc3Qgb3MgPSByZXF1aXJlKCdvcycpO1xuY29uc3QgYXN5bmNGb3JFYWNoID0gcmVxdWlyZSgnYXN5bmMvZm9yRWFjaCcpO1xuY29uc3QgZGVidWcgPSByZXF1aXJlKCdAZGFiaC9kaWFnbm9zdGljcycpKCd3aW5zdG9uOnJlamVjdGlvbicpO1xuY29uc3Qgb25jZSA9IHJlcXVpcmUoJ29uZS10aW1lJyk7XG5jb25zdCBzdGFja1RyYWNlID0gcmVxdWlyZSgnc3RhY2stdHJhY2UnKTtcbmNvbnN0IFJlamVjdGlvblN0cmVhbSA9IHJlcXVpcmUoJy4vcmVqZWN0aW9uLXN0cmVhbScpO1xuXG4vKipcbiAqIE9iamVjdCBmb3IgaGFuZGxpbmcgdW5oYW5kbGVkUmVqZWN0aW9uIGV2ZW50cy5cbiAqIEB0eXBlIHtSZWplY3Rpb25IYW5kbGVyfVxuICovXG5tb2R1bGUuZXhwb3J0cyA9IGNsYXNzIFJlamVjdGlvbkhhbmRsZXIge1xuICAvKipcbiAgICogVE9ETzogYWRkIGNvbnRydWN0b3IgZGVzY3JpcHRpb25cbiAgICogQHBhcmFtIHshTG9nZ2VyfSBsb2dnZXIgLSBUT0RPOiBhZGQgcGFyYW0gZGVzY3JpcHRpb25cbiAgICovXG4gIGNvbnN0cnVjdG9yKGxvZ2dlcikge1xuICAgIGlmICghbG9nZ2VyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0xvZ2dlciBpcyByZXF1aXJlZCB0byBoYW5kbGUgcmVqZWN0aW9ucycpO1xuICAgIH1cblxuICAgIHRoaXMubG9nZ2VyID0gbG9nZ2VyO1xuICAgIHRoaXMuaGFuZGxlcnMgPSBuZXcgTWFwKCk7XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlcyBgdW5oYW5kbGVkUmVqZWN0aW9uYCBldmVudHMgZm9yIHRoZSBjdXJyZW50IHByb2Nlc3MgYnkgYWRkaW5nIGFueVxuICAgKiBoYW5kbGVycyBwYXNzZWQgaW4uXG4gICAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gICAqL1xuICBoYW5kbGUoLi4uYXJncykge1xuICAgIGFyZ3MuZm9yRWFjaChhcmcgPT4ge1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoYXJnKSkge1xuICAgICAgICByZXR1cm4gYXJnLmZvckVhY2goaGFuZGxlciA9PiB0aGlzLl9hZGRIYW5kbGVyKGhhbmRsZXIpKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5fYWRkSGFuZGxlcihhcmcpO1xuICAgIH0pO1xuXG4gICAgaWYgKCF0aGlzLmNhdGNoZXIpIHtcbiAgICAgIHRoaXMuY2F0Y2hlciA9IHRoaXMuX3VuaGFuZGxlZFJlamVjdGlvbi5iaW5kKHRoaXMpO1xuICAgICAgcHJvY2Vzcy5vbigndW5oYW5kbGVkUmVqZWN0aW9uJywgdGhpcy5jYXRjaGVyKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcyBhbnkgaGFuZGxlcnMgdG8gYHVuaGFuZGxlZFJlamVjdGlvbmAgZXZlbnRzIGZvciB0aGUgY3VycmVudFxuICAgKiBwcm9jZXNzLiBUaGlzIGRvZXMgbm90IG1vZGlmeSB0aGUgc3RhdGUgb2YgdGhlIGB0aGlzLmhhbmRsZXJzYCBzZXQuXG4gICAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gICAqL1xuICB1bmhhbmRsZSgpIHtcbiAgICBpZiAodGhpcy5jYXRjaGVyKSB7XG4gICAgICBwcm9jZXNzLnJlbW92ZUxpc3RlbmVyKCd1bmhhbmRsZWRSZWplY3Rpb24nLCB0aGlzLmNhdGNoZXIpO1xuICAgICAgdGhpcy5jYXRjaGVyID0gZmFsc2U7XG5cbiAgICAgIEFycmF5LmZyb20odGhpcy5oYW5kbGVycy52YWx1ZXMoKSkuZm9yRWFjaCh3cmFwcGVyID0+XG4gICAgICAgIHRoaXMubG9nZ2VyLnVucGlwZSh3cmFwcGVyKVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVE9ETzogYWRkIG1ldGhvZCBkZXNjcmlwdGlvblxuICAgKiBAcGFyYW0ge0Vycm9yfSBlcnIgLSBFcnJvciB0byBnZXQgaW5mb3JtYXRpb24gYWJvdXQuXG4gICAqIEByZXR1cm5zIHttaXhlZH0gLSBUT0RPOiBhZGQgcmV0dXJuIGRlc2NyaXB0aW9uLlxuICAgKi9cbiAgZ2V0QWxsSW5mbyhlcnIpIHtcbiAgICBsZXQgbWVzc2FnZSA9IG51bGw7XG4gICAgaWYgKGVycikge1xuICAgICAgbWVzc2FnZSA9IHR5cGVvZiBlcnIgPT09ICdzdHJpbmcnID8gZXJyIDogZXJyLm1lc3NhZ2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGVycm9yOiBlcnIsXG4gICAgICAvLyBUT0RPIChpbmRleHplcm8pOiBob3cgZG8gd2UgY29uZmlndXJlIHRoaXM/XG4gICAgICBsZXZlbDogJ2Vycm9yJyxcbiAgICAgIG1lc3NhZ2U6IFtcbiAgICAgICAgYHVuaGFuZGxlZFJlamVjdGlvbjogJHttZXNzYWdlIHx8ICcobm8gZXJyb3IgbWVzc2FnZSknfWAsXG4gICAgICAgIGVyciAmJiBlcnIuc3RhY2sgfHwgJyAgTm8gc3RhY2sgdHJhY2UnXG4gICAgICBdLmpvaW4oJ1xcbicpLFxuICAgICAgc3RhY2s6IGVyciAmJiBlcnIuc3RhY2ssXG4gICAgICByZWplY3Rpb246IHRydWUsXG4gICAgICBkYXRlOiBuZXcgRGF0ZSgpLnRvU3RyaW5nKCksXG4gICAgICBwcm9jZXNzOiB0aGlzLmdldFByb2Nlc3NJbmZvKCksXG4gICAgICBvczogdGhpcy5nZXRPc0luZm8oKSxcbiAgICAgIHRyYWNlOiB0aGlzLmdldFRyYWNlKGVycilcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgYWxsIHJlbGV2YW50IHByb2Nlc3MgaW5mb3JtYXRpb24gZm9yIHRoZSBjdXJyZW50bHkgcnVubmluZyBwcm9jZXNzLlxuICAgKiBAcmV0dXJucyB7bWl4ZWR9IC0gVE9ETzogYWRkIHJldHVybiBkZXNjcmlwdGlvbi5cbiAgICovXG4gIGdldFByb2Nlc3NJbmZvKCkge1xuICAgIHJldHVybiB7XG4gICAgICBwaWQ6IHByb2Nlc3MucGlkLFxuICAgICAgdWlkOiBwcm9jZXNzLmdldHVpZCA/IHByb2Nlc3MuZ2V0dWlkKCkgOiBudWxsLFxuICAgICAgZ2lkOiBwcm9jZXNzLmdldGdpZCA/IHByb2Nlc3MuZ2V0Z2lkKCkgOiBudWxsLFxuICAgICAgY3dkOiBwcm9jZXNzLmN3ZCgpLFxuICAgICAgZXhlY1BhdGg6IHByb2Nlc3MuZXhlY1BhdGgsXG4gICAgICB2ZXJzaW9uOiBwcm9jZXNzLnZlcnNpb24sXG4gICAgICBhcmd2OiBwcm9jZXNzLmFyZ3YsXG4gICAgICBtZW1vcnlVc2FnZTogcHJvY2Vzcy5tZW1vcnlVc2FnZSgpXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGFsbCByZWxldmFudCBPUyBpbmZvcm1hdGlvbiBmb3IgdGhlIGN1cnJlbnRseSBydW5uaW5nIHByb2Nlc3MuXG4gICAqIEByZXR1cm5zIHttaXhlZH0gLSBUT0RPOiBhZGQgcmV0dXJuIGRlc2NyaXB0aW9uLlxuICAgKi9cbiAgZ2V0T3NJbmZvKCkge1xuICAgIHJldHVybiB7XG4gICAgICBsb2FkYXZnOiBvcy5sb2FkYXZnKCksXG4gICAgICB1cHRpbWU6IG9zLnVwdGltZSgpXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGEgc3RhY2sgdHJhY2UgZm9yIHRoZSBzcGVjaWZpZWQgZXJyb3IuXG4gICAqIEBwYXJhbSB7bWl4ZWR9IGVyciAtIFRPRE86IGFkZCBwYXJhbSBkZXNjcmlwdGlvbi5cbiAgICogQHJldHVybnMge21peGVkfSAtIFRPRE86IGFkZCByZXR1cm4gZGVzY3JpcHRpb24uXG4gICAqL1xuICBnZXRUcmFjZShlcnIpIHtcbiAgICBjb25zdCB0cmFjZSA9IGVyciA/IHN0YWNrVHJhY2UucGFyc2UoZXJyKSA6IHN0YWNrVHJhY2UuZ2V0KCk7XG4gICAgcmV0dXJuIHRyYWNlLm1hcChzaXRlID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNvbHVtbjogc2l0ZS5nZXRDb2x1bW5OdW1iZXIoKSxcbiAgICAgICAgZmlsZTogc2l0ZS5nZXRGaWxlTmFtZSgpLFxuICAgICAgICBmdW5jdGlvbjogc2l0ZS5nZXRGdW5jdGlvbk5hbWUoKSxcbiAgICAgICAgbGluZTogc2l0ZS5nZXRMaW5lTnVtYmVyKCksXG4gICAgICAgIG1ldGhvZDogc2l0ZS5nZXRNZXRob2ROYW1lKCksXG4gICAgICAgIG5hdGl2ZTogc2l0ZS5pc05hdGl2ZSgpXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEhlbHBlciBtZXRob2QgdG8gYWRkIGEgdHJhbnNwb3J0IGFzIGFuIGV4Y2VwdGlvbiBoYW5kbGVyLlxuICAgKiBAcGFyYW0ge1RyYW5zcG9ydH0gaGFuZGxlciAtIFRoZSB0cmFuc3BvcnQgdG8gYWRkIGFzIGFuIGV4Y2VwdGlvbiBoYW5kbGVyLlxuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICovXG4gIF9hZGRIYW5kbGVyKGhhbmRsZXIpIHtcbiAgICBpZiAoIXRoaXMuaGFuZGxlcnMuaGFzKGhhbmRsZXIpKSB7XG4gICAgICBoYW5kbGVyLmhhbmRsZVJlamVjdGlvbnMgPSB0cnVlO1xuICAgICAgY29uc3Qgd3JhcHBlciA9IG5ldyBSZWplY3Rpb25TdHJlYW0oaGFuZGxlcik7XG4gICAgICB0aGlzLmhhbmRsZXJzLnNldChoYW5kbGVyLCB3cmFwcGVyKTtcbiAgICAgIHRoaXMubG9nZ2VyLnBpcGUod3JhcHBlcik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIExvZ3MgYWxsIHJlbGV2YW50IGluZm9ybWF0aW9uIGFyb3VuZCB0aGUgYGVycmAgYW5kIGV4aXRzIHRoZSBjdXJyZW50XG4gICAqIHByb2Nlc3MuXG4gICAqIEBwYXJhbSB7RXJyb3J9IGVyciAtIEVycm9yIHRvIGhhbmRsZVxuICAgKiBAcmV0dXJucyB7bWl4ZWR9IC0gVE9ETzogYWRkIHJldHVybiBkZXNjcmlwdGlvbi5cbiAgICogQHByaXZhdGVcbiAgICovXG4gIF91bmhhbmRsZWRSZWplY3Rpb24oZXJyKSB7XG4gICAgY29uc3QgaW5mbyA9IHRoaXMuZ2V0QWxsSW5mbyhlcnIpO1xuICAgIGNvbnN0IGhhbmRsZXJzID0gdGhpcy5fZ2V0UmVqZWN0aW9uSGFuZGxlcnMoKTtcbiAgICAvLyBDYWxjdWxhdGUgaWYgd2Ugc2hvdWxkIGV4aXQgb24gdGhpcyBlcnJvclxuICAgIGxldCBkb0V4aXQgPVxuICAgICAgdHlwZW9mIHRoaXMubG9nZ2VyLmV4aXRPbkVycm9yID09PSAnZnVuY3Rpb24nXG4gICAgICAgID8gdGhpcy5sb2dnZXIuZXhpdE9uRXJyb3IoZXJyKVxuICAgICAgICA6IHRoaXMubG9nZ2VyLmV4aXRPbkVycm9yO1xuICAgIGxldCB0aW1lb3V0O1xuXG4gICAgaWYgKCFoYW5kbGVycy5sZW5ndGggJiYgZG9FeGl0KSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgY29uc29sZS53YXJuKCd3aW5zdG9uOiBleGl0T25FcnJvciBjYW5ub3QgYmUgdHJ1ZSB3aXRoIG5vIHJlamVjdGlvbiBoYW5kbGVycy4nKTtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICBjb25zb2xlLndhcm4oJ3dpbnN0b246IG5vdCBleGl0aW5nIHByb2Nlc3MuJyk7XG4gICAgICBkb0V4aXQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBncmFjZWZ1bEV4aXQoKSB7XG4gICAgICBkZWJ1ZygnZG9FeGl0JywgZG9FeGl0KTtcbiAgICAgIGRlYnVnKCdwcm9jZXNzLl9leGl0aW5nJywgcHJvY2Vzcy5fZXhpdGluZyk7XG5cbiAgICAgIGlmIChkb0V4aXQgJiYgIXByb2Nlc3MuX2V4aXRpbmcpIHtcbiAgICAgICAgLy8gUmVtYXJrOiBDdXJyZW50bHkgaWdub3JpbmcgYW55IHJlamVjdGlvbnMgZnJvbSB0cmFuc3BvcnRzIHdoZW5cbiAgICAgICAgLy8gY2F0Y2hpbmcgdW5oYW5kbGVkIHJlamVjdGlvbnMuXG4gICAgICAgIGlmICh0aW1lb3V0KSB7XG4gICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXQpO1xuICAgICAgICB9XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wcm9jZXNzLWV4aXRcbiAgICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghaGFuZGxlcnMgfHwgaGFuZGxlcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gcHJvY2Vzcy5uZXh0VGljayhncmFjZWZ1bEV4aXQpO1xuICAgIH1cblxuICAgIC8vIExvZyB0byBhbGwgdHJhbnNwb3J0cyBhdHRlbXB0aW5nIHRvIGxpc3RlbiBmb3Igd2hlbiB0aGV5IGFyZSBjb21wbGV0ZWQuXG4gICAgYXN5bmNGb3JFYWNoKFxuICAgICAgaGFuZGxlcnMsXG4gICAgICAoaGFuZGxlciwgbmV4dCkgPT4ge1xuICAgICAgICBjb25zdCBkb25lID0gb25jZShuZXh0KTtcbiAgICAgICAgY29uc3QgdHJhbnNwb3J0ID0gaGFuZGxlci50cmFuc3BvcnQgfHwgaGFuZGxlcjtcblxuICAgICAgICAvLyBEZWJ1ZyB3cmFwcGluZyBzbyB0aGF0IHdlIGNhbiBpbnNwZWN0IHdoYXQncyBnb2luZyBvbiB1bmRlciB0aGUgY292ZXJzLlxuICAgICAgICBmdW5jdGlvbiBvbkRvbmUoZXZlbnQpIHtcbiAgICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgZGVidWcoZXZlbnQpO1xuICAgICAgICAgICAgZG9uZSgpO1xuICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICB0cmFuc3BvcnQuX2VuZGluZyA9IHRydWU7XG4gICAgICAgIHRyYW5zcG9ydC5vbmNlKCdmaW5pc2gnLCBvbkRvbmUoJ2ZpbmlzaGVkJykpO1xuICAgICAgICB0cmFuc3BvcnQub25jZSgnZXJyb3InLCBvbkRvbmUoJ2Vycm9yJykpO1xuICAgICAgfSxcbiAgICAgICgpID0+IGRvRXhpdCAmJiBncmFjZWZ1bEV4aXQoKVxuICAgICk7XG5cbiAgICB0aGlzLmxvZ2dlci5sb2coaW5mbyk7XG5cbiAgICAvLyBJZiBleGl0T25FcnJvciBpcyB0cnVlLCB0aGVuIG9ubHkgYWxsb3cgdGhlIGxvZ2dpbmcgb2YgZXhjZXB0aW9ucyB0b1xuICAgIC8vIHRha2UgdXAgdG8gYDMwMDBtc2AuXG4gICAgaWYgKGRvRXhpdCkge1xuICAgICAgdGltZW91dCA9IHNldFRpbWVvdXQoZ3JhY2VmdWxFeGl0LCAzMDAwKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgbGlzdCBvZiB0cmFuc3BvcnRzIGFuZCBleGNlcHRpb25IYW5kbGVycyBmb3IgdGhpcyBpbnN0YW5jZS5cbiAgICogQHJldHVybnMge0FycmF5fSAtIExpc3Qgb2YgdHJhbnNwb3J0cyBhbmQgZXhjZXB0aW9uSGFuZGxlcnMgZm9yIHRoaXNcbiAgICogaW5zdGFuY2UuXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBfZ2V0UmVqZWN0aW9uSGFuZGxlcnMoKSB7XG4gICAgLy8gUmVtYXJrIChpbmRleHplcm8pOiBzaW5jZSBgbG9nZ2VyLnRyYW5zcG9ydHNgIHJldHVybnMgYWxsIG9mIHRoZSBwaXBlc1xuICAgIC8vIGZyb20gdGhlIF9yZWFkYWJsZVN0YXRlIG9mIHRoZSBzdHJlYW0gd2UgYWN0dWFsbHkgZ2V0IHRoZSBqb2luIG9mIHRoZVxuICAgIC8vIGV4cGxpY2l0IGhhbmRsZXJzIGFuZCB0aGUgaW1wbGljaXQgdHJhbnNwb3J0cyB3aXRoXG4gICAgLy8gYGhhbmRsZVJlamVjdGlvbnM6IHRydWVgXG4gICAgcmV0dXJuIHRoaXMubG9nZ2VyLnRyYW5zcG9ydHMuZmlsdGVyKHdyYXAgPT4ge1xuICAgICAgY29uc3QgdHJhbnNwb3J0ID0gd3JhcC50cmFuc3BvcnQgfHwgd3JhcDtcbiAgICAgIHJldHVybiB0cmFuc3BvcnQuaGFuZGxlUmVqZWN0aW9ucztcbiAgICB9KTtcbiAgfVxufTtcbiIsICIvKipcbiAqIHByb2ZpbGVyLmpzOiBUT0RPOiBhZGQgZmlsZSBoZWFkZXIgZGVzY3JpcHRpb24uXG4gKlxuICogKEMpIDIwMTAgQ2hhcmxpZSBSb2JiaW5zXG4gKiBNSVQgTElDRU5DRVxuICovXG5cbid1c2Ugc3RyaWN0Jztcbi8qKlxuICogVE9ETzogYWRkIGNsYXNzIGRlc2NyaXB0aW9uLlxuICogQHR5cGUge1Byb2ZpbGVyfVxuICogQHByaXZhdGVcbiAqL1xuY2xhc3MgUHJvZmlsZXIge1xuICAvKipcbiAgICogQ29uc3RydWN0b3IgZnVuY3Rpb24gZm9yIHRoZSBQcm9maWxlciBpbnN0YW5jZSB1c2VkIGJ5XG4gICAqIGBMb2dnZXIucHJvdG90eXBlLnN0YXJ0VGltZXJgLiBXaGVuIGRvbmUgaXMgY2FsbGVkIHRoZSB0aW1lciB3aWxsIGZpbmlzaFxuICAgKiBhbmQgbG9nIHRoZSBkdXJhdGlvbi5cbiAgICogQHBhcmFtIHshTG9nZ2VyfSBsb2dnZXIgLSBUT0RPOiBhZGQgcGFyYW0gZGVzY3JpcHRpb24uXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihsb2dnZXIpIHtcbiAgICBjb25zdCBMb2dnZXIgPSByZXF1aXJlKCcuL2xvZ2dlcicpO1xuICAgIGlmICh0eXBlb2YgbG9nZ2VyICE9PSAnb2JqZWN0JyB8fCBBcnJheS5pc0FycmF5KGxvZ2dlcikgfHwgIShsb2dnZXIgaW5zdGFuY2VvZiBMb2dnZXIpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0xvZ2dlciBpcyByZXF1aXJlZCBmb3IgcHJvZmlsaW5nJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9nZ2VyID0gbG9nZ2VyO1xuICAgICAgdGhpcy5zdGFydCA9IERhdGUubm93KCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEVuZHMgdGhlIGN1cnJlbnQgdGltZXIgKGkuZS4gUHJvZmlsZXIpIGluc3RhbmNlIGFuZCBsb2dzIHRoZSBgbXNnYCBhbG9uZ1xuICAgKiB3aXRoIHRoZSBkdXJhdGlvbiBzaW5jZSBjcmVhdGlvbi5cbiAgICogQHJldHVybnMge21peGVkfSAtIFRPRE86IGFkZCByZXR1cm4gZGVzY3JpcHRpb24uXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBkb25lKC4uLmFyZ3MpIHtcbiAgICBpZiAodHlwZW9mIGFyZ3NbYXJncy5sZW5ndGggLSAxXSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgIGNvbnNvbGUud2FybignQ2FsbGJhY2sgZnVuY3Rpb24gbm8gbG9uZ2VyIHN1cHBvcnRlZCBhcyBvZiB3aW5zdG9uQDMuMC4wJyk7XG4gICAgICBhcmdzLnBvcCgpO1xuICAgIH1cblxuICAgIGNvbnN0IGluZm8gPSB0eXBlb2YgYXJnc1thcmdzLmxlbmd0aCAtIDFdID09PSAnb2JqZWN0JyA/IGFyZ3MucG9wKCkgOiB7fTtcbiAgICBpbmZvLmxldmVsID0gaW5mby5sZXZlbCB8fCAnaW5mbyc7XG4gICAgaW5mby5kdXJhdGlvbk1zID0gKERhdGUubm93KCkpIC0gdGhpcy5zdGFydDtcblxuICAgIHJldHVybiB0aGlzLmxvZ2dlci53cml0ZShpbmZvKTtcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IFByb2ZpbGVyO1xuIiwgIi8qKlxuICogbG9nZ2VyLmpzOiBUT0RPOiBhZGQgZmlsZSBoZWFkZXIgZGVzY3JpcHRpb24uXG4gKlxuICogKEMpIDIwMTAgQ2hhcmxpZSBSb2JiaW5zXG4gKiBNSVQgTElDRU5DRVxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuY29uc3QgeyBTdHJlYW0sIFRyYW5zZm9ybSB9ID0gcmVxdWlyZSgncmVhZGFibGUtc3RyZWFtJyk7XG5jb25zdCBhc3luY0ZvckVhY2ggPSByZXF1aXJlKCdhc3luYy9mb3JFYWNoJyk7XG5jb25zdCB7IExFVkVMLCBTUExBVCB9ID0gcmVxdWlyZSgndHJpcGxlLWJlYW0nKTtcbmNvbnN0IGlzU3RyZWFtID0gcmVxdWlyZSgnaXMtc3RyZWFtJyk7XG5jb25zdCBFeGNlcHRpb25IYW5kbGVyID0gcmVxdWlyZSgnLi9leGNlcHRpb24taGFuZGxlcicpO1xuY29uc3QgUmVqZWN0aW9uSGFuZGxlciA9IHJlcXVpcmUoJy4vcmVqZWN0aW9uLWhhbmRsZXInKTtcbmNvbnN0IExlZ2FjeVRyYW5zcG9ydFN0cmVhbSA9IHJlcXVpcmUoJ3dpbnN0b24tdHJhbnNwb3J0L2xlZ2FjeScpO1xuY29uc3QgUHJvZmlsZXIgPSByZXF1aXJlKCcuL3Byb2ZpbGVyJyk7XG5jb25zdCB7IHdhcm4gfSA9IHJlcXVpcmUoJy4vY29tbW9uJyk7XG5jb25zdCBjb25maWcgPSByZXF1aXJlKCcuL2NvbmZpZycpO1xuXG4vKipcbiAqIENhcHR1cmVzIHRoZSBudW1iZXIgb2YgZm9ybWF0IChpLmUuICVzIHN0cmluZ3MpIGluIGEgZ2l2ZW4gc3RyaW5nLlxuICogQmFzZWQgb24gYHV0aWwuZm9ybWF0YCwgc2VlIE5vZGUuanMgc291cmNlOlxuICogaHR0cHM6Ly9naXRodWIuY29tL25vZGVqcy9ub2RlL2Jsb2IvYjFjOGYxNWM1ZjE2OWUwMjFmN2M0NmViN2IyMTlkZTk1ZmU5NzYwMy9saWIvdXRpbC5qcyNMMjAxLUwyMzBcbiAqIEB0eXBlIHtSZWdFeHB9XG4gKi9cbmNvbnN0IGZvcm1hdFJlZ0V4cCA9IC8lW3NjZGppZm9PJV0vZztcblxuLyoqXG4gKiBUT0RPOiBhZGQgY2xhc3MgZGVzY3JpcHRpb24uXG4gKiBAdHlwZSB7TG9nZ2VyfVxuICogQGV4dGVuZHMge1RyYW5zZm9ybX1cbiAqL1xuY2xhc3MgTG9nZ2VyIGV4dGVuZHMgVHJhbnNmb3JtIHtcbiAgLyoqXG4gICAqIENvbnN0cnVjdG9yIGZ1bmN0aW9uIGZvciB0aGUgTG9nZ2VyIG9iamVjdCByZXNwb25zaWJsZSBmb3IgcGVyc2lzdGluZyBsb2dcbiAgICogbWVzc2FnZXMgYW5kIG1ldGFkYXRhIHRvIG9uZSBvciBtb3JlIHRyYW5zcG9ydHMuXG4gICAqIEBwYXJhbSB7IU9iamVjdH0gb3B0aW9ucyAtIGZvb1xuICAgKi9cbiAgY29uc3RydWN0b3Iob3B0aW9ucykge1xuICAgIHN1cGVyKHsgb2JqZWN0TW9kZTogdHJ1ZSB9KTtcbiAgICB0aGlzLmNvbmZpZ3VyZShvcHRpb25zKTtcbiAgfVxuXG4gIGNoaWxkKGRlZmF1bHRSZXF1ZXN0TWV0YWRhdGEpIHtcbiAgICBjb25zdCBsb2dnZXIgPSB0aGlzO1xuICAgIHJldHVybiBPYmplY3QuY3JlYXRlKGxvZ2dlciwge1xuICAgICAgd3JpdGU6IHtcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIChpbmZvKSB7XG4gICAgICAgICAgY29uc3QgaW5mb0Nsb25lID0gT2JqZWN0LmFzc2lnbihcbiAgICAgICAgICAgIHt9LFxuICAgICAgICAgICAgZGVmYXVsdFJlcXVlc3RNZXRhZGF0YSxcbiAgICAgICAgICAgIGluZm9cbiAgICAgICAgICApO1xuXG4gICAgICAgICAgLy8gT2JqZWN0LmFzc2lnbiBkb2Vzbid0IGNvcHkgaW5oZXJpdGVkIEVycm9yXG4gICAgICAgICAgLy8gcHJvcGVydGllcyBzbyB3ZSBoYXZlIHRvIGRvIHRoYXQgZXhwbGljaXRseVxuICAgICAgICAgIC8vXG4gICAgICAgICAgLy8gUmVtYXJrIChpbmRleHplcm8pOiB3ZSBzaG91bGQgcmVtb3ZlIHRoaXNcbiAgICAgICAgICAvLyBzaW5jZSB0aGUgZXJyb3JzIGZvcm1hdCB3aWxsIGhhbmRsZSB0aGlzIGNhc2UuXG4gICAgICAgICAgLy9cbiAgICAgICAgICBpZiAoaW5mbyBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgICAgICBpbmZvQ2xvbmUuc3RhY2sgPSBpbmZvLnN0YWNrO1xuICAgICAgICAgICAgaW5mb0Nsb25lLm1lc3NhZ2UgPSBpbmZvLm1lc3NhZ2U7XG4gICAgICAgICAgICBpbmZvQ2xvbmUuY2F1c2UgPSBpbmZvLmNhdXNlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGxvZ2dlci53cml0ZShpbmZvQ2xvbmUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVGhpcyB3aWxsIHdob2xlc2FsZSByZWNvbmZpZ3VyZSB0aGlzIGluc3RhbmNlIGJ5OlxuICAgKiAxLiBSZXNldHRpbmcgYWxsIHRyYW5zcG9ydHMuIE9sZGVyIHRyYW5zcG9ydHMgd2lsbCBiZSByZW1vdmVkIGltcGxpY2l0bHkuXG4gICAqIDIuIFNldCBhbGwgb3RoZXIgb3B0aW9ucyBpbmNsdWRpbmcgbGV2ZWxzLCBjb2xvcnMsIHJld3JpdGVycywgZmlsdGVycyxcbiAgICogICAgZXhjZXB0aW9uSGFuZGxlcnMsIGV0Yy5cbiAgICogQHBhcmFtIHshT2JqZWN0fSBvcHRpb25zIC0gVE9ETzogYWRkIHBhcmFtIGRlc2NyaXB0aW9uLlxuICAgKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICAgKi9cbiAgY29uZmlndXJlKHtcbiAgICBzaWxlbnQsXG4gICAgZm9ybWF0LFxuICAgIGRlZmF1bHRNZXRhLFxuICAgIGxldmVscyxcbiAgICBsZXZlbCA9ICdpbmZvJyxcbiAgICBleGl0T25FcnJvciA9IHRydWUsXG4gICAgdHJhbnNwb3J0cyxcbiAgICBjb2xvcnMsXG4gICAgZW1pdEVycnMsXG4gICAgZm9ybWF0dGVycyxcbiAgICBwYWRMZXZlbHMsXG4gICAgcmV3cml0ZXJzLFxuICAgIHN0cmlwQ29sb3JzLFxuICAgIGV4Y2VwdGlvbkhhbmRsZXJzLFxuICAgIHJlamVjdGlvbkhhbmRsZXJzXG4gIH0gPSB7fSkge1xuICAgIC8vIFJlc2V0IHRyYW5zcG9ydHMgaWYgd2UgYWxyZWFkeSBoYXZlIHRoZW1cbiAgICBpZiAodGhpcy50cmFuc3BvcnRzLmxlbmd0aCkge1xuICAgICAgdGhpcy5jbGVhcigpO1xuICAgIH1cblxuICAgIHRoaXMuc2lsZW50ID0gc2lsZW50O1xuICAgIHRoaXMuZm9ybWF0ID0gZm9ybWF0IHx8IHRoaXMuZm9ybWF0IHx8IHJlcXVpcmUoJ2xvZ2Zvcm0vanNvbicpKCk7XG5cbiAgICB0aGlzLmRlZmF1bHRNZXRhID0gZGVmYXVsdE1ldGEgfHwgbnVsbDtcbiAgICAvLyBIb2lzdCBvdGhlciBvcHRpb25zIG9udG8gdGhpcyBpbnN0YW5jZS5cbiAgICB0aGlzLmxldmVscyA9IGxldmVscyB8fCB0aGlzLmxldmVscyB8fCBjb25maWcubnBtLmxldmVscztcbiAgICB0aGlzLmxldmVsID0gbGV2ZWw7XG4gICAgaWYgKHRoaXMuZXhjZXB0aW9ucykge1xuICAgICAgdGhpcy5leGNlcHRpb25zLnVuaGFuZGxlKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLnJlamVjdGlvbnMpIHtcbiAgICAgIHRoaXMucmVqZWN0aW9ucy51bmhhbmRsZSgpO1xuICAgIH1cbiAgICB0aGlzLmV4Y2VwdGlvbnMgPSBuZXcgRXhjZXB0aW9uSGFuZGxlcih0aGlzKTtcbiAgICB0aGlzLnJlamVjdGlvbnMgPSBuZXcgUmVqZWN0aW9uSGFuZGxlcih0aGlzKTtcbiAgICB0aGlzLnByb2ZpbGVycyA9IHt9O1xuICAgIHRoaXMuZXhpdE9uRXJyb3IgPSBleGl0T25FcnJvcjtcblxuICAgIC8vIEFkZCBhbGwgdHJhbnNwb3J0cyB3ZSBoYXZlIGJlZW4gcHJvdmlkZWQuXG4gICAgaWYgKHRyYW5zcG9ydHMpIHtcbiAgICAgIHRyYW5zcG9ydHMgPSBBcnJheS5pc0FycmF5KHRyYW5zcG9ydHMpID8gdHJhbnNwb3J0cyA6IFt0cmFuc3BvcnRzXTtcbiAgICAgIHRyYW5zcG9ydHMuZm9yRWFjaCh0cmFuc3BvcnQgPT4gdGhpcy5hZGQodHJhbnNwb3J0KSk7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgY29sb3JzIHx8XG4gICAgICBlbWl0RXJycyB8fFxuICAgICAgZm9ybWF0dGVycyB8fFxuICAgICAgcGFkTGV2ZWxzIHx8XG4gICAgICByZXdyaXRlcnMgfHxcbiAgICAgIHN0cmlwQ29sb3JzXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFtcbiAgICAgICAgICAneyBjb2xvcnMsIGVtaXRFcnJzLCBmb3JtYXR0ZXJzLCBwYWRMZXZlbHMsIHJld3JpdGVycywgc3RyaXBDb2xvcnMgfSB3ZXJlIHJlbW92ZWQgaW4gd2luc3RvbkAzLjAuMC4nLFxuICAgICAgICAgICdVc2UgYSBjdXN0b20gd2luc3Rvbi5mb3JtYXQoZnVuY3Rpb24pIGluc3RlYWQuJyxcbiAgICAgICAgICAnU2VlOiBodHRwczovL2dpdGh1Yi5jb20vd2luc3RvbmpzL3dpbnN0b24vdHJlZS9tYXN0ZXIvVVBHUkFERS0zLjAubWQnXG4gICAgICAgIF0uam9pbignXFxuJylcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKGV4Y2VwdGlvbkhhbmRsZXJzKSB7XG4gICAgICB0aGlzLmV4Y2VwdGlvbnMuaGFuZGxlKGV4Y2VwdGlvbkhhbmRsZXJzKTtcbiAgICB9XG4gICAgaWYgKHJlamVjdGlvbkhhbmRsZXJzKSB7XG4gICAgICB0aGlzLnJlamVjdGlvbnMuaGFuZGxlKHJlamVjdGlvbkhhbmRsZXJzKTtcbiAgICB9XG4gIH1cblxuICAvKiBlc2xpbnQtZGlzYWJsZSB2YWxpZC1qc2RvYyAqL1xuICAvKipcbiAgICogSGVscGVyIG1ldGhvZCB0byBnZXQgdGhlIGhpZ2hlc3QgbG9nZ2luZyBsZXZlbCBhc3NvY2lhdGVkIHdpdGggYSBsb2dnZXJcbiAgICpcbiAgICogQHJldHVybnMgeyBudW1iZXIgfCBudWxsIH0gLSBUaGUgaGlnaGVzdCBjb25maWd1cmVkIGxvZ2dpbmcgbGV2ZWwsIG51bGxcbiAgICogZm9yIGludmFsaWQgY29uZmlndXJhdGlvblxuICAgKi9cbiAgZ2V0SGlnaGVzdExvZ0xldmVsKCkge1xuICAgIC8vIFRoaXMgY2FuIGJlIG51bGwsIGlmIHRoaXMubGV2ZWwgaGFzIGFuIGludmFsaWQgdmFsdWVcbiAgICBjb25zdCBjb25maWd1cmVkTGV2ZWxWYWx1ZSA9IGdldExldmVsVmFsdWUodGhpcy5sZXZlbHMsIHRoaXMubGV2ZWwpO1xuXG4gICAgLy8gSWYgdGhlcmUgYXJlIG5vIHRyYW5zcG9ydHMsIHJldHVybiB0aGUgbGV2ZWwgY29uZmlndXJlZCBhdCB0aGUgbG9nZ2VyIGxldmVsXG4gICAgaWYgKCF0aGlzLnRyYW5zcG9ydHMgfHwgdGhpcy50cmFuc3BvcnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIGNvbmZpZ3VyZWRMZXZlbFZhbHVlO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnRyYW5zcG9ydHMucmVkdWNlKChtYXgsIHRyYW5zcG9ydCkgPT4ge1xuICAgICAgY29uc3QgbGV2ZWxWYWx1ZSA9IGdldExldmVsVmFsdWUodGhpcy5sZXZlbHMsIHRyYW5zcG9ydC5sZXZlbCk7XG4gICAgICByZXR1cm4gbGV2ZWxWYWx1ZSAhPT0gbnVsbCAmJiBsZXZlbFZhbHVlID4gbWF4ID8gbGV2ZWxWYWx1ZSA6IG1heDtcbiAgICB9LCBjb25maWd1cmVkTGV2ZWxWYWx1ZSk7XG4gIH1cblxuICBpc0xldmVsRW5hYmxlZChsZXZlbCkge1xuICAgIGNvbnN0IGdpdmVuTGV2ZWxWYWx1ZSA9IGdldExldmVsVmFsdWUodGhpcy5sZXZlbHMsIGxldmVsKTtcbiAgICBpZiAoZ2l2ZW5MZXZlbFZhbHVlID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgY29uZmlndXJlZExldmVsVmFsdWUgPSBnZXRMZXZlbFZhbHVlKHRoaXMubGV2ZWxzLCB0aGlzLmxldmVsKTtcbiAgICBpZiAoY29uZmlndXJlZExldmVsVmFsdWUgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMudHJhbnNwb3J0cyB8fCB0aGlzLnRyYW5zcG9ydHMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gY29uZmlndXJlZExldmVsVmFsdWUgPj0gZ2l2ZW5MZXZlbFZhbHVlO1xuICAgIH1cblxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy50cmFuc3BvcnRzLmZpbmRJbmRleCh0cmFuc3BvcnQgPT4ge1xuICAgICAgbGV0IHRyYW5zcG9ydExldmVsVmFsdWUgPSBnZXRMZXZlbFZhbHVlKHRoaXMubGV2ZWxzLCB0cmFuc3BvcnQubGV2ZWwpO1xuICAgICAgaWYgKHRyYW5zcG9ydExldmVsVmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgdHJhbnNwb3J0TGV2ZWxWYWx1ZSA9IGNvbmZpZ3VyZWRMZXZlbFZhbHVlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRyYW5zcG9ydExldmVsVmFsdWUgPj0gZ2l2ZW5MZXZlbFZhbHVlO1xuICAgIH0pO1xuICAgIHJldHVybiBpbmRleCAhPT0gLTE7XG4gIH1cblxuICAvKiBlc2xpbnQtZGlzYWJsZSB2YWxpZC1qc2RvYyAqL1xuICAvKipcbiAgICogRW5zdXJlIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHdpdGggYSBgbG9nYCBtZXRob2RcbiAgICogQHBhcmFtIHttaXhlZH0gbGV2ZWwgLSBMZXZlbCB0aGUgbG9nIG1lc3NhZ2UgaXMgd3JpdHRlbiBhdC5cbiAgICogQHBhcmFtIHttaXhlZH0gbXNnIC0gVE9ETzogYWRkIHBhcmFtIGRlc2NyaXB0aW9uLlxuICAgKiBAcGFyYW0ge21peGVkfSBtZXRhIC0gVE9ETzogYWRkIHBhcmFtIGRlc2NyaXB0aW9uLlxuICAgKiBAcmV0dXJucyB7TG9nZ2VyfSAtIFRPRE86IGFkZCByZXR1cm4gZGVzY3JpcHRpb24uXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqICAgIC8vIFN1cHBvcnRzIHRoZSBleGlzdGluZyBBUEk6XG4gICAqICAgIGxvZ2dlci5sb2coJ2luZm8nLCAnSGVsbG8gd29ybGQnLCB7IGN1c3RvbTogdHJ1ZSB9KTtcbiAgICogICAgbG9nZ2VyLmxvZygnaW5mbycsIG5ldyBFcnJvcignWW8sIGl0XFwncyBvbiBmaXJlJykpO1xuICAgKlxuICAgKiAgICAvLyBSZXF1aXJlcyB3aW5zdG9uLmZvcm1hdC5zcGxhdCgpXG4gICAqICAgIGxvZ2dlci5sb2coJ2luZm8nLCAnJXMgJWQlJScsICdBIHN0cmluZycsIDUwLCB7IHRoaXNJc01ldGE6IHRydWUgfSk7XG4gICAqXG4gICAqICAgIC8vIEFuZCB0aGUgbmV3IEFQSSB3aXRoIGEgc2luZ2xlIEpTT04gbGl0ZXJhbDpcbiAgICogICAgbG9nZ2VyLmxvZyh7IGxldmVsOiAnaW5mbycsIG1lc3NhZ2U6ICdIZWxsbyB3b3JsZCcsIGN1c3RvbTogdHJ1ZSB9KTtcbiAgICogICAgbG9nZ2VyLmxvZyh7IGxldmVsOiAnaW5mbycsIG1lc3NhZ2U6IG5ldyBFcnJvcignWW8sIGl0XFwncyBvbiBmaXJlJykgfSk7XG4gICAqXG4gICAqICAgIC8vIEFsc28gcmVxdWlyZXMgd2luc3Rvbi5mb3JtYXQuc3BsYXQoKVxuICAgKiAgICBsb2dnZXIubG9nKHtcbiAgICogICAgICBsZXZlbDogJ2luZm8nLFxuICAgKiAgICAgIG1lc3NhZ2U6ICclcyAlZCUlJyxcbiAgICogICAgICBbU1BMQVRdOiBbJ0Egc3RyaW5nJywgNTBdLFxuICAgKiAgICAgIG1ldGE6IHsgdGhpc0lzTWV0YTogdHJ1ZSB9XG4gICAqICAgIH0pO1xuICAgKlxuICAgKi9cbiAgLyogZXNsaW50LWVuYWJsZSB2YWxpZC1qc2RvYyAqL1xuICBsb2cobGV2ZWwsIG1zZywgLi4uc3BsYXQpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG1heC1wYXJhbXNcbiAgICAvLyBPcHRpbWl6ZSBmb3IgdGhlIGhvdHBhdGggb2YgbG9nZ2luZyBKU09OIGxpdGVyYWxzXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDEpIHtcbiAgICAgIC8vIFlvIGRhd2csIEkgaGVhcmQgeW91IGxpa2UgbGV2ZWxzIC4uLiBzZXJpb3VzbHkgLi4uXG4gICAgICAvLyBJbiB0aGlzIGNvbnRleHQgdGhlIExIUyBgbGV2ZWxgIGhlcmUgaXMgYWN0dWFsbHkgdGhlIGBpbmZvYCBzbyByZWFkXG4gICAgICAvLyB0aGlzIGFzOiBpbmZvW0xFVkVMXSA9IGluZm8ubGV2ZWw7XG4gICAgICBsZXZlbFtMRVZFTF0gPSBsZXZlbC5sZXZlbDtcbiAgICAgIHRoaXMuX2FkZERlZmF1bHRNZXRhKGxldmVsKTtcbiAgICAgIHRoaXMud3JpdGUobGV2ZWwpO1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLy8gU2xpZ2h0bHkgbGVzcyBob3RwYXRoLCBidXQgd29ydGggb3B0aW1pemluZyBmb3IuXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDIpIHtcbiAgICAgIGlmIChtc2cgJiYgdHlwZW9mIG1zZyA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgbXNnW0xFVkVMXSA9IG1zZy5sZXZlbCA9IGxldmVsO1xuICAgICAgICB0aGlzLl9hZGREZWZhdWx0TWV0YShtc2cpO1xuICAgICAgICB0aGlzLndyaXRlKG1zZyk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfVxuXG4gICAgICBtc2cgPSB7IFtMRVZFTF06IGxldmVsLCBsZXZlbCwgbWVzc2FnZTogbXNnIH07XG4gICAgICB0aGlzLl9hZGREZWZhdWx0TWV0YShtc2cpO1xuICAgICAgdGhpcy53cml0ZShtc2cpO1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgY29uc3QgW21ldGFdID0gc3BsYXQ7XG4gICAgaWYgKHR5cGVvZiBtZXRhID09PSAnb2JqZWN0JyAmJiBtZXRhICE9PSBudWxsKSB7XG4gICAgICAvLyBFeHRyYWN0IHRva2VucywgaWYgbm9uZSBhdmFpbGFibGUgZGVmYXVsdCB0byBlbXB0eSBhcnJheSB0b1xuICAgICAgLy8gZW5zdXJlIGNvbnNpc3RhbmN5IGluIGV4cGVjdGVkIHJlc3VsdHNcbiAgICAgIGNvbnN0IHRva2VucyA9IG1zZyAmJiBtc2cubWF0Y2ggJiYgbXNnLm1hdGNoKGZvcm1hdFJlZ0V4cCk7XG5cbiAgICAgIGlmICghdG9rZW5zKSB7XG4gICAgICAgIGNvbnN0IGluZm8gPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmRlZmF1bHRNZXRhLCBtZXRhLCB7XG4gICAgICAgICAgW0xFVkVMXTogbGV2ZWwsXG4gICAgICAgICAgW1NQTEFUXTogc3BsYXQsXG4gICAgICAgICAgbGV2ZWwsXG4gICAgICAgICAgbWVzc2FnZTogbXNnXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChtZXRhLm1lc3NhZ2UpIGluZm8ubWVzc2FnZSA9IGAke2luZm8ubWVzc2FnZX0gJHttZXRhLm1lc3NhZ2V9YDtcbiAgICAgICAgaWYgKG1ldGEuc3RhY2spIGluZm8uc3RhY2sgPSBtZXRhLnN0YWNrO1xuICAgICAgICBpZiAobWV0YS5jYXVzZSkgaW5mby5jYXVzZSA9IG1ldGEuY2F1c2U7XG5cbiAgICAgICAgdGhpcy53cml0ZShpbmZvKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy53cml0ZShPYmplY3QuYXNzaWduKHt9LCB0aGlzLmRlZmF1bHRNZXRhLCB7XG4gICAgICBbTEVWRUxdOiBsZXZlbCxcbiAgICAgIFtTUExBVF06IHNwbGF0LFxuICAgICAgbGV2ZWwsXG4gICAgICBtZXNzYWdlOiBtc2dcbiAgICB9KSk7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBQdXNoZXMgZGF0YSBzbyB0aGF0IGl0IGNhbiBiZSBwaWNrZWQgdXAgYnkgYWxsIG9mIG91ciBwaXBlIHRhcmdldHMuXG4gICAqIEBwYXJhbSB7bWl4ZWR9IGluZm8gLSBUT0RPOiBhZGQgcGFyYW0gZGVzY3JpcHRpb24uXG4gICAqIEBwYXJhbSB7bWl4ZWR9IGVuYyAtIFRPRE86IGFkZCBwYXJhbSBkZXNjcmlwdGlvbi5cbiAgICogQHBhcmFtIHttaXhlZH0gY2FsbGJhY2sgLSBDb250aW51ZXMgc3RyZWFtIHByb2Nlc3NpbmcuXG4gICAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBfdHJhbnNmb3JtKGluZm8sIGVuYywgY2FsbGJhY2spIHtcbiAgICBpZiAodGhpcy5zaWxlbnQpIHtcbiAgICAgIHJldHVybiBjYWxsYmFjaygpO1xuICAgIH1cblxuICAgIC8vIFtMRVZFTF0gaXMgb25seSBzb2Z0IGd1YXJhbnRlZWQgdG8gYmUgc2V0IGhlcmUgc2luY2Ugd2UgYXJlIGEgcHJvcGVyXG4gICAgLy8gc3RyZWFtLiBJdCBpcyBsaWtlbHkgdGhhdCBgaW5mb2AgY2FtZSBpbiB0aHJvdWdoIGAubG9nKGluZm8pYCBvclxuICAgIC8vIGAuaW5mbyhpbmZvKWAuIElmIGl0IGlzIG5vdCBkZWZpbmVkLCBob3dldmVyLCBkZWZpbmUgaXQuXG4gICAgLy8gVGhpcyBMRVZFTCBzeW1ib2wgaXMgcHJvdmlkZWQgYnkgYHRyaXBsZS1iZWFtYCBhbmQgYWxzbyB1c2VkIGluOlxuICAgIC8vIC0gbG9nZm9ybVxuICAgIC8vIC0gd2luc3Rvbi10cmFuc3BvcnRcbiAgICAvLyAtIGFic3RyYWN0LXdpbnN0b24tdHJhbnNwb3J0XG4gICAgaWYgKCFpbmZvW0xFVkVMXSkge1xuICAgICAgaW5mb1tMRVZFTF0gPSBpbmZvLmxldmVsO1xuICAgIH1cblxuICAgIC8vIFJlbWFyazogcmVhbGx5IG5vdCBzdXJlIHdoYXQgdG8gZG8gaGVyZSwgYnV0IHRoaXMgaGFzIGJlZW4gcmVwb3J0ZWQgYXNcbiAgICAvLyB2ZXJ5IGNvbmZ1c2luZyBieSBwcmUgd2luc3RvbkAyLjAuMCB1c2VycyBhcyBxdWl0ZSBjb25mdXNpbmcgd2hlbiB1c2luZ1xuICAgIC8vIGN1c3RvbSBsZXZlbHMuXG4gICAgaWYgKCF0aGlzLmxldmVsc1tpbmZvW0xFVkVMXV0gJiYgdGhpcy5sZXZlbHNbaW5mb1tMRVZFTF1dICE9PSAwKSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgY29uc29sZS5lcnJvcignW3dpbnN0b25dIFVua25vd24gbG9nZ2VyIGxldmVsOiAlcycsIGluZm9bTEVWRUxdKTtcbiAgICB9XG5cbiAgICAvLyBSZW1hcms6IG5vdCBzdXJlIGlmIHdlIHNob3VsZCBzaW1wbHkgZXJyb3IgaGVyZS5cbiAgICBpZiAoIXRoaXMuX3JlYWRhYmxlU3RhdGUucGlwZXMpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAnW3dpbnN0b25dIEF0dGVtcHQgdG8gd3JpdGUgbG9ncyB3aXRoIG5vIHRyYW5zcG9ydHMsIHdoaWNoIGNhbiBpbmNyZWFzZSBtZW1vcnkgdXNhZ2U6ICVqJyxcbiAgICAgICAgaW5mb1xuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBIZXJlIHdlIHdyaXRlIHRvIHRoZSBgZm9ybWF0YCBwaXBlLWNoYWluLCB3aGljaCBvbiBgcmVhZGFibGVgIGFib3ZlIHdpbGxcbiAgICAvLyBwdXNoIHRoZSBmb3JtYXR0ZWQgYGluZm9gIE9iamVjdCBvbnRvIHRoZSBidWZmZXIgZm9yIHRoaXMgaW5zdGFuY2UuIFdlIHRyYXBcbiAgICAvLyAoYW5kIHJlLXRocm93KSBhbnkgZXJyb3JzIGdlbmVyYXRlZCBieSB0aGUgdXNlci1wcm92aWRlZCBmb3JtYXQsIGJ1dCBhbHNvXG4gICAgLy8gZ3VhcmFudGVlIHRoYXQgdGhlIHN0cmVhbXMgY2FsbGJhY2sgaXMgaW52b2tlZCBzbyB0aGF0IHdlIGNhbiBjb250aW51ZSBmbG93aW5nLlxuICAgIHRyeSB7XG4gICAgICB0aGlzLnB1c2godGhpcy5mb3JtYXQudHJhbnNmb3JtKGluZm8sIHRoaXMuZm9ybWF0Lm9wdGlvbnMpKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5fd3JpdGFibGVTdGF0ZS5zeW5jID0gZmFsc2U7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY2FsbGJhY2stcmV0dXJuXG4gICAgICBjYWxsYmFjaygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEZWxheXMgdGhlICdmaW5pc2gnIGV2ZW50IHVudGlsIGFsbCB0cmFuc3BvcnQgcGlwZSB0YXJnZXRzIGhhdmVcbiAgICogYWxzbyBlbWl0dGVkICdmaW5pc2gnIG9yIGFyZSBhbHJlYWR5IGZpbmlzaGVkLlxuICAgKiBAcGFyYW0ge21peGVkfSBjYWxsYmFjayAtIENvbnRpbnVlcyBzdHJlYW0gcHJvY2Vzc2luZy5cbiAgICovXG4gIF9maW5hbChjYWxsYmFjaykge1xuICAgIGNvbnN0IHRyYW5zcG9ydHMgPSB0aGlzLnRyYW5zcG9ydHMuc2xpY2UoKTtcbiAgICBhc3luY0ZvckVhY2goXG4gICAgICB0cmFuc3BvcnRzLFxuICAgICAgKHRyYW5zcG9ydCwgbmV4dCkgPT4ge1xuICAgICAgICBpZiAoIXRyYW5zcG9ydCB8fCB0cmFuc3BvcnQuZmluaXNoZWQpIHJldHVybiBzZXRJbW1lZGlhdGUobmV4dCk7XG4gICAgICAgIHRyYW5zcG9ydC5vbmNlKCdmaW5pc2gnLCBuZXh0KTtcbiAgICAgICAgdHJhbnNwb3J0LmVuZCgpO1xuICAgICAgfSxcbiAgICAgIGNhbGxiYWNrXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIHRoZSB0cmFuc3BvcnQgdG8gdGhpcyBsb2dnZXIgaW5zdGFuY2UgYnkgcGlwaW5nIHRvIGl0LlxuICAgKiBAcGFyYW0ge21peGVkfSB0cmFuc3BvcnQgLSBUT0RPOiBhZGQgcGFyYW0gZGVzY3JpcHRpb24uXG4gICAqIEByZXR1cm5zIHtMb2dnZXJ9IC0gVE9ETzogYWRkIHJldHVybiBkZXNjcmlwdGlvbi5cbiAgICovXG4gIGFkZCh0cmFuc3BvcnQpIHtcbiAgICAvLyBTdXBwb3J0IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHdpdGggYWxsIGV4aXN0aW5nIGB3aW5zdG9uIDwgMy54LnhgXG4gICAgLy8gdHJhbnNwb3J0cyB3aGljaCBtZWV0IG9uZSBvZiB0d28gY3JpdGVyaWE6XG4gICAgLy8gMS4gVGhleSBpbmhlcml0IGZyb20gd2luc3Rvbi5UcmFuc3BvcnQgaW4gIDwgMy54Lnggd2hpY2ggaXMgTk9UIGEgc3RyZWFtLlxuICAgIC8vIDIuIFRoZXkgZXhwb3NlIGEgbG9nIG1ldGhvZCB3aGljaCBoYXMgYSBsZW5ndGggZ3JlYXRlciB0aGFuIDIgKGkuZS4gbW9yZSB0aGVuXG4gICAgLy8gICAganVzdCBgbG9nKGluZm8sIGNhbGxiYWNrKWAuXG4gICAgY29uc3QgdGFyZ2V0ID1cbiAgICAgICFpc1N0cmVhbSh0cmFuc3BvcnQpIHx8IHRyYW5zcG9ydC5sb2cubGVuZ3RoID4gMlxuICAgICAgICA/IG5ldyBMZWdhY3lUcmFuc3BvcnRTdHJlYW0oeyB0cmFuc3BvcnQgfSlcbiAgICAgICAgOiB0cmFuc3BvcnQ7XG5cbiAgICBpZiAoIXRhcmdldC5fd3JpdGFibGVTdGF0ZSB8fCAhdGFyZ2V0Ll93cml0YWJsZVN0YXRlLm9iamVjdE1vZGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ1RyYW5zcG9ydHMgbXVzdCBXcml0YWJsZVN0cmVhbXMgaW4gb2JqZWN0TW9kZS4gU2V0IHsgb2JqZWN0TW9kZTogdHJ1ZSB9LidcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gTGlzdGVuIGZvciB0aGUgYGVycm9yYCBldmVudCBhbmQgdGhlIGB3YXJuYCBldmVudCBvbiB0aGUgbmV3IFRyYW5zcG9ydC5cbiAgICB0aGlzLl9vbkV2ZW50KCdlcnJvcicsIHRhcmdldCk7XG4gICAgdGhpcy5fb25FdmVudCgnd2FybicsIHRhcmdldCk7XG4gICAgdGhpcy5waXBlKHRhcmdldCk7XG5cbiAgICBpZiAodHJhbnNwb3J0LmhhbmRsZUV4Y2VwdGlvbnMpIHtcbiAgICAgIHRoaXMuZXhjZXB0aW9ucy5oYW5kbGUoKTtcbiAgICB9XG5cbiAgICBpZiAodHJhbnNwb3J0LmhhbmRsZVJlamVjdGlvbnMpIHtcbiAgICAgIHRoaXMucmVqZWN0aW9ucy5oYW5kbGUoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIHRoZSB0cmFuc3BvcnQgZnJvbSB0aGlzIGxvZ2dlciBpbnN0YW5jZSBieSB1bnBpcGluZyBmcm9tIGl0LlxuICAgKiBAcGFyYW0ge21peGVkfSB0cmFuc3BvcnQgLSBUT0RPOiBhZGQgcGFyYW0gZGVzY3JpcHRpb24uXG4gICAqIEByZXR1cm5zIHtMb2dnZXJ9IC0gVE9ETzogYWRkIHJldHVybiBkZXNjcmlwdGlvbi5cbiAgICovXG4gIHJlbW92ZSh0cmFuc3BvcnQpIHtcbiAgICBpZiAoIXRyYW5zcG9ydCkgcmV0dXJuIHRoaXM7XG4gICAgbGV0IHRhcmdldCA9IHRyYW5zcG9ydDtcbiAgICBpZiAoIWlzU3RyZWFtKHRyYW5zcG9ydCkgfHwgdHJhbnNwb3J0LmxvZy5sZW5ndGggPiAyKSB7XG4gICAgICB0YXJnZXQgPSB0aGlzLnRyYW5zcG9ydHMuZmlsdGVyKFxuICAgICAgICBtYXRjaCA9PiBtYXRjaC50cmFuc3BvcnQgPT09IHRyYW5zcG9ydFxuICAgICAgKVswXTtcbiAgICB9XG5cbiAgICBpZiAodGFyZ2V0KSB7XG4gICAgICB0aGlzLnVucGlwZSh0YXJnZXQpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIGFsbCB0cmFuc3BvcnRzIGZyb20gdGhpcyBsb2dnZXIgaW5zdGFuY2UuXG4gICAqIEByZXR1cm5zIHtMb2dnZXJ9IC0gVE9ETzogYWRkIHJldHVybiBkZXNjcmlwdGlvbi5cbiAgICovXG4gIGNsZWFyKCkge1xuICAgIHRoaXMudW5waXBlKCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQ2xlYW5zIHVwIHJlc291cmNlcyAoc3RyZWFtcywgZXZlbnQgbGlzdGVuZXJzKSBmb3IgYWxsIHRyYW5zcG9ydHNcbiAgICogYXNzb2NpYXRlZCB3aXRoIHRoaXMgaW5zdGFuY2UgKGlmIG5lY2Vzc2FyeSkuXG4gICAqIEByZXR1cm5zIHtMb2dnZXJ9IC0gVE9ETzogYWRkIHJldHVybiBkZXNjcmlwdGlvbi5cbiAgICovXG4gIGNsb3NlKCkge1xuICAgIHRoaXMuZXhjZXB0aW9ucy51bmhhbmRsZSgpO1xuICAgIHRoaXMucmVqZWN0aW9ucy51bmhhbmRsZSgpO1xuICAgIHRoaXMuY2xlYXIoKTtcbiAgICB0aGlzLmVtaXQoJ2Nsb3NlJyk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgYHRhcmdldGAgbGV2ZWxzIHNwZWNpZmllZCBvbiB0aGlzIGluc3RhbmNlLlxuICAgKiBAcGFyYW0ge09iamVjdH0gVGFyZ2V0IGxldmVscyB0byB1c2Ugb24gdGhpcyBpbnN0YW5jZS5cbiAgICovXG4gIHNldExldmVscygpIHtcbiAgICB3YXJuLmRlcHJlY2F0ZWQoJ3NldExldmVscycpO1xuICB9XG5cbiAgLyoqXG4gICAqIFF1ZXJpZXMgdGhlIGFsbCB0cmFuc3BvcnRzIGZvciB0aGlzIGluc3RhbmNlIHdpdGggdGhlIHNwZWNpZmllZCBgb3B0aW9uc2AuXG4gICAqIFRoaXMgd2lsbCBhZ2dyZWdhdGUgZWFjaCB0cmFuc3BvcnQncyByZXN1bHRzIGludG8gb25lIG9iamVjdCBjb250YWluaW5nXG4gICAqIGEgcHJvcGVydHkgcGVyIHRyYW5zcG9ydC5cbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgLSBRdWVyeSBvcHRpb25zIGZvciB0aGlzIGluc3RhbmNlLlxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBjYWxsYmFjayAtIENvbnRpbnVhdGlvbiB0byByZXNwb25kIHRvIHdoZW4gY29tcGxldGUuXG4gICAqL1xuICBxdWVyeShvcHRpb25zLCBjYWxsYmFjaykge1xuICAgIGlmICh0eXBlb2Ygb3B0aW9ucyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgY2FsbGJhY2sgPSBvcHRpb25zO1xuICAgICAgb3B0aW9ucyA9IHt9O1xuICAgIH1cblxuICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICAgIGNvbnN0IHJlc3VsdHMgPSB7fTtcbiAgICBjb25zdCBxdWVyeU9iamVjdCA9IE9iamVjdC5hc3NpZ24oe30sIG9wdGlvbnMucXVlcnkgfHwge30pO1xuXG4gICAgLy8gSGVscGVyIGZ1bmN0aW9uIHRvIHF1ZXJ5IGEgc2luZ2xlIHRyYW5zcG9ydFxuICAgIGZ1bmN0aW9uIHF1ZXJ5VHJhbnNwb3J0KHRyYW5zcG9ydCwgbmV4dCkge1xuICAgICAgaWYgKG9wdGlvbnMucXVlcnkgJiYgdHlwZW9mIHRyYW5zcG9ydC5mb3JtYXRRdWVyeSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBvcHRpb25zLnF1ZXJ5ID0gdHJhbnNwb3J0LmZvcm1hdFF1ZXJ5KHF1ZXJ5T2JqZWN0KTtcbiAgICAgIH1cblxuICAgICAgdHJhbnNwb3J0LnF1ZXJ5KG9wdGlvbnMsIChlcnIsIHJlcykgPT4ge1xuICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgcmV0dXJuIG5leHQoZXJyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2YgdHJhbnNwb3J0LmZvcm1hdFJlc3VsdHMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICByZXMgPSB0cmFuc3BvcnQuZm9ybWF0UmVzdWx0cyhyZXMsIG9wdGlvbnMuZm9ybWF0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIG5leHQobnVsbCwgcmVzKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIEhlbHBlciBmdW5jdGlvbiB0byBhY2N1bXVsYXRlIHRoZSByZXN1bHRzIGZyb20gYHF1ZXJ5VHJhbnNwb3J0YCBpbnRvXG4gICAgLy8gdGhlIGByZXN1bHRzYC5cbiAgICBmdW5jdGlvbiBhZGRSZXN1bHRzKHRyYW5zcG9ydCwgbmV4dCkge1xuICAgICAgcXVlcnlUcmFuc3BvcnQodHJhbnNwb3J0LCAoZXJyLCByZXN1bHQpID0+IHtcbiAgICAgICAgLy8gcXVlcnlUcmFuc3BvcnQgY291bGQgcG90ZW50aWFsbHkgaW52b2tlIHRoZSBjYWxsYmFjayBtdWx0aXBsZSB0aW1lc1xuICAgICAgICAvLyBzaW5jZSBUcmFuc3BvcnQgY29kZSBjYW4gYmUgdW5wcmVkaWN0YWJsZS5cbiAgICAgICAgaWYgKG5leHQpIHtcbiAgICAgICAgICByZXN1bHQgPSBlcnIgfHwgcmVzdWx0O1xuICAgICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgIHJlc3VsdHNbdHJhbnNwb3J0Lm5hbWVdID0gcmVzdWx0O1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjYWxsYmFjay1yZXR1cm5cbiAgICAgICAgICBuZXh0KCk7XG4gICAgICAgIH1cblxuICAgICAgICBuZXh0ID0gbnVsbDtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIEl0ZXJhdGUgb3ZlciB0aGUgdHJhbnNwb3J0cyBpbiBwYXJhbGxlbCBzZXR0aW5nIHRoZSBhcHByb3ByaWF0ZSBrZXkgaW5cbiAgICAvLyB0aGUgYHJlc3VsdHNgLlxuICAgIGFzeW5jRm9yRWFjaChcbiAgICAgIHRoaXMudHJhbnNwb3J0cy5maWx0ZXIodHJhbnNwb3J0ID0+ICEhdHJhbnNwb3J0LnF1ZXJ5KSxcbiAgICAgIGFkZFJlc3VsdHMsXG4gICAgICAoKSA9PiBjYWxsYmFjayhudWxsLCByZXN1bHRzKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIGxvZyBzdHJlYW0gZm9yIGFsbCB0cmFuc3BvcnRzLiBPcHRpb25zIG9iamVjdCBpcyBvcHRpb25hbC5cbiAgICogQHBhcmFte09iamVjdH0gb3B0aW9ucz17fSAtIFN0cmVhbSBvcHRpb25zIGZvciB0aGlzIGluc3RhbmNlLlxuICAgKiBAcmV0dXJucyB7U3RyZWFtfSAtIFRPRE86IGFkZCByZXR1cm4gZGVzY3JpcHRpb24uXG4gICAqL1xuICBzdHJlYW0ob3B0aW9ucyA9IHt9KSB7XG4gICAgY29uc3Qgb3V0ID0gbmV3IFN0cmVhbSgpO1xuICAgIGNvbnN0IHN0cmVhbXMgPSBbXTtcblxuICAgIG91dC5fc3RyZWFtcyA9IHN0cmVhbXM7XG4gICAgb3V0LmRlc3Ryb3kgPSAoKSA9PiB7XG4gICAgICBsZXQgaSA9IHN0cmVhbXMubGVuZ3RoO1xuICAgICAgd2hpbGUgKGktLSkge1xuICAgICAgICBzdHJlYW1zW2ldLmRlc3Ryb3koKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgLy8gQ3JlYXRlIGEgbGlzdCBvZiBhbGwgdHJhbnNwb3J0cyBmb3IgdGhpcyBpbnN0YW5jZS5cbiAgICB0aGlzLnRyYW5zcG9ydHNcbiAgICAgIC5maWx0ZXIodHJhbnNwb3J0ID0+ICEhdHJhbnNwb3J0LnN0cmVhbSlcbiAgICAgIC5mb3JFYWNoKHRyYW5zcG9ydCA9PiB7XG4gICAgICAgIGNvbnN0IHN0ciA9IHRyYW5zcG9ydC5zdHJlYW0ob3B0aW9ucyk7XG4gICAgICAgIGlmICghc3RyKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgc3RyZWFtcy5wdXNoKHN0cik7XG5cbiAgICAgICAgc3RyLm9uKCdsb2cnLCBsb2cgPT4ge1xuICAgICAgICAgIGxvZy50cmFuc3BvcnQgPSBsb2cudHJhbnNwb3J0IHx8IFtdO1xuICAgICAgICAgIGxvZy50cmFuc3BvcnQucHVzaCh0cmFuc3BvcnQubmFtZSk7XG4gICAgICAgICAgb3V0LmVtaXQoJ2xvZycsIGxvZyk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHN0ci5vbignZXJyb3InLCBlcnIgPT4ge1xuICAgICAgICAgIGVyci50cmFuc3BvcnQgPSBlcnIudHJhbnNwb3J0IHx8IFtdO1xuICAgICAgICAgIGVyci50cmFuc3BvcnQucHVzaCh0cmFuc3BvcnQubmFtZSk7XG4gICAgICAgICAgb3V0LmVtaXQoJ2Vycm9yJywgZXJyKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcblxuICAgIHJldHVybiBvdXQ7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBvYmplY3QgY29ycmVzcG9uZGluZyB0byBhIHNwZWNpZmljIHRpbWluZy4gV2hlbiBkb25lIGlzIGNhbGxlZFxuICAgKiB0aGUgdGltZXIgd2lsbCBmaW5pc2ggYW5kIGxvZyB0aGUgZHVyYXRpb24uIGUuZy46XG4gICAqIEByZXR1cm5zIHtQcm9maWxlfSAtIFRPRE86IGFkZCByZXR1cm4gZGVzY3JpcHRpb24uXG4gICAqIEBleGFtcGxlXG4gICAqICAgIGNvbnN0IHRpbWVyID0gd2luc3Rvbi5zdGFydFRpbWVyKClcbiAgICogICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAqICAgICAgdGltZXIuZG9uZSh7XG4gICAqICAgICAgICBtZXNzYWdlOiAnTG9nZ2luZyBtZXNzYWdlJ1xuICAgKiAgICAgIH0pO1xuICAgKiAgICB9LCAxMDAwKTtcbiAgICovXG4gIHN0YXJ0VGltZXIoKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9maWxlcih0aGlzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmFja3MgdGhlIHRpbWUgaW5iZXR3ZWVuIHN1YnNlcXVlbnQgY2FsbHMgdG8gdGhpcyBtZXRob2Qgd2l0aCB0aGUgc2FtZVxuICAgKiBgaWRgIHBhcmFtZXRlci4gVGhlIHNlY29uZCBjYWxsIHRvIHRoaXMgbWV0aG9kIHdpbGwgbG9nIHRoZSBkaWZmZXJlbmNlIGluXG4gICAqIG1pbGxpc2Vjb25kcyBhbG9uZyB3aXRoIHRoZSBtZXNzYWdlLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gaWQgVW5pcXVlIGlkIG9mIHRoZSBwcm9maWxlclxuICAgKiBAcmV0dXJucyB7TG9nZ2VyfSAtIFRPRE86IGFkZCByZXR1cm4gZGVzY3JpcHRpb24uXG4gICAqL1xuICBwcm9maWxlKGlkLCAuLi5hcmdzKSB7XG4gICAgY29uc3QgdGltZSA9IERhdGUubm93KCk7XG4gICAgaWYgKHRoaXMucHJvZmlsZXJzW2lkXSkge1xuICAgICAgY29uc3QgdGltZUVuZCA9IHRoaXMucHJvZmlsZXJzW2lkXTtcbiAgICAgIGRlbGV0ZSB0aGlzLnByb2ZpbGVyc1tpZF07XG5cbiAgICAgIC8vIEF0dGVtcHQgdG8gYmUga2luZCB0byB1c2VycyBpZiB0aGV5IGFyZSBzdGlsbCB1c2luZyBvbGRlciBBUElzLlxuICAgICAgaWYgKHR5cGVvZiBhcmdzW2FyZ3MubGVuZ3RoIC0gMl0gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICdDYWxsYmFjayBmdW5jdGlvbiBubyBsb25nZXIgc3VwcG9ydGVkIGFzIG9mIHdpbnN0b25AMy4wLjAnXG4gICAgICAgICk7XG4gICAgICAgIGFyZ3MucG9wKCk7XG4gICAgICB9XG5cbiAgICAgIC8vIFNldCB0aGUgZHVyYXRpb24gcHJvcGVydHkgb2YgdGhlIG1ldGFkYXRhXG4gICAgICBjb25zdCBpbmZvID0gdHlwZW9mIGFyZ3NbYXJncy5sZW5ndGggLSAxXSA9PT0gJ29iamVjdCcgPyBhcmdzLnBvcCgpIDoge307XG4gICAgICBpbmZvLmxldmVsID0gaW5mby5sZXZlbCB8fCAnaW5mbyc7XG4gICAgICBpbmZvLmR1cmF0aW9uTXMgPSB0aW1lIC0gdGltZUVuZDtcbiAgICAgIGluZm8ubWVzc2FnZSA9IGluZm8ubWVzc2FnZSB8fCBpZDtcbiAgICAgIHJldHVybiB0aGlzLndyaXRlKGluZm8pO1xuICAgIH1cblxuICAgIHRoaXMucHJvZmlsZXJzW2lkXSA9IHRpbWU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQmFja3dhcmRzIGNvbXBhdGliaWxpdHkgdG8gYGV4Y2VwdGlvbnMuaGFuZGxlYCBpbiB3aW5zdG9uIDwgMy4wLjAuXG4gICAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gICAqIEBkZXByZWNhdGVkXG4gICAqL1xuICBoYW5kbGVFeGNlcHRpb25zKC4uLmFyZ3MpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgIGNvbnNvbGUud2FybihcbiAgICAgICdEZXByZWNhdGVkOiAuaGFuZGxlRXhjZXB0aW9ucygpIHdpbGwgYmUgcmVtb3ZlZCBpbiB3aW5zdG9uQDQuIFVzZSAuZXhjZXB0aW9ucy5oYW5kbGUoKSdcbiAgICApO1xuICAgIHRoaXMuZXhjZXB0aW9ucy5oYW5kbGUoLi4uYXJncyk7XG4gIH1cblxuICAvKipcbiAgICogQmFja3dhcmRzIGNvbXBhdGliaWxpdHkgdG8gYGV4Y2VwdGlvbnMuaGFuZGxlYCBpbiB3aW5zdG9uIDwgMy4wLjAuXG4gICAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gICAqIEBkZXByZWNhdGVkXG4gICAqL1xuICB1bmhhbmRsZUV4Y2VwdGlvbnMoLi4uYXJncykge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgY29uc29sZS53YXJuKFxuICAgICAgJ0RlcHJlY2F0ZWQ6IC51bmhhbmRsZUV4Y2VwdGlvbnMoKSB3aWxsIGJlIHJlbW92ZWQgaW4gd2luc3RvbkA0LiBVc2UgLmV4Y2VwdGlvbnMudW5oYW5kbGUoKSdcbiAgICApO1xuICAgIHRoaXMuZXhjZXB0aW9ucy51bmhhbmRsZSguLi5hcmdzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaHJvdyBhIG1vcmUgbWVhbmluZ2Z1bCBkZXByZWNhdGlvbiBub3RpY2VcbiAgICogQHRocm93cyB7RXJyb3J9IC0gVE9ETzogYWRkIHRocm93cyBkZXNjcmlwdGlvbi5cbiAgICovXG4gIGNsaSgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBbXG4gICAgICAgICdMb2dnZXIuY2xpKCkgd2FzIHJlbW92ZWQgaW4gd2luc3RvbkAzLjAuMCcsXG4gICAgICAgICdVc2UgYSBjdXN0b20gd2luc3Rvbi5mb3JtYXRzLmNsaSgpIGluc3RlYWQuJyxcbiAgICAgICAgJ1NlZTogaHR0cHM6Ly9naXRodWIuY29tL3dpbnN0b25qcy93aW5zdG9uL3RyZWUvbWFzdGVyL1VQR1JBREUtMy4wLm1kJ1xuICAgICAgXS5qb2luKCdcXG4nKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQnViYmxlcyB0aGUgYGV2ZW50YCB0aGF0IG9jY3VyZWQgb24gdGhlIHNwZWNpZmllZCBgdHJhbnNwb3J0YCB1cFxuICAgKiBmcm9tIHRoaXMgaW5zdGFuY2UuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBldmVudCAtIFRoZSBldmVudCB0aGF0IG9jY3VyZWRcbiAgICogQHBhcmFtIHtPYmplY3R9IHRyYW5zcG9ydCAtIFRyYW5zcG9ydCBvbiB3aGljaCB0aGUgZXZlbnQgb2NjdXJlZFxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgX29uRXZlbnQoZXZlbnQsIHRyYW5zcG9ydCkge1xuICAgIGZ1bmN0aW9uIHRyYW5zcG9ydEV2ZW50KGVycikge1xuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3dpbnN0b25qcy93aW5zdG9uL2lzc3Vlcy8xMzY0XG4gICAgICBpZiAoZXZlbnQgPT09ICdlcnJvcicgJiYgIXRoaXMudHJhbnNwb3J0cy5pbmNsdWRlcyh0cmFuc3BvcnQpKSB7XG4gICAgICAgIHRoaXMuYWRkKHRyYW5zcG9ydCk7XG4gICAgICB9XG4gICAgICB0aGlzLmVtaXQoZXZlbnQsIGVyciwgdHJhbnNwb3J0KTtcbiAgICB9XG5cbiAgICBpZiAoIXRyYW5zcG9ydFsnX193aW5zdG9uJyArIGV2ZW50XSkge1xuICAgICAgdHJhbnNwb3J0WydfX3dpbnN0b24nICsgZXZlbnRdID0gdHJhbnNwb3J0RXZlbnQuYmluZCh0aGlzKTtcbiAgICAgIHRyYW5zcG9ydC5vbihldmVudCwgdHJhbnNwb3J0WydfX3dpbnN0b24nICsgZXZlbnRdKTtcbiAgICB9XG4gIH1cblxuICBfYWRkRGVmYXVsdE1ldGEobXNnKSB7XG4gICAgaWYgKHRoaXMuZGVmYXVsdE1ldGEpIHtcbiAgICAgIE9iamVjdC5hc3NpZ24obXNnLCB0aGlzLmRlZmF1bHRNZXRhKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0TGV2ZWxWYWx1ZShsZXZlbHMsIGxldmVsKSB7XG4gIGNvbnN0IHZhbHVlID0gbGV2ZWxzW2xldmVsXTtcbiAgaWYgKCF2YWx1ZSAmJiB2YWx1ZSAhPT0gMCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIHJldHVybiB2YWx1ZTtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBjdXJyZW50IHJlYWRhYmxlU3RhdGUgcGlwZSB0YXJnZXRzIGZvciB0aGlzIExvZ2dlciBpbnN0YW5jZS5cbiAqIEB0eXBlIHtBcnJheXxPYmplY3R9XG4gKi9cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShMb2dnZXIucHJvdG90eXBlLCAndHJhbnNwb3J0cycsIHtcbiAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgZ2V0KCkge1xuICAgIGNvbnN0IHsgcGlwZXMgfSA9IHRoaXMuX3JlYWRhYmxlU3RhdGU7XG4gICAgcmV0dXJuICFBcnJheS5pc0FycmF5KHBpcGVzKSA/IFtwaXBlc10uZmlsdGVyKEJvb2xlYW4pIDogcGlwZXM7XG4gIH1cbn0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IExvZ2dlcjtcbiIsICIvKipcbiAqIGNyZWF0ZS1sb2dnZXIuanM6IExvZ2dlciBmYWN0b3J5IGZvciB3aW5zdG9uIGxvZ2dlciBpbnN0YW5jZXMuXG4gKlxuICogKEMpIDIwMTAgQ2hhcmxpZSBSb2JiaW5zXG4gKiBNSVQgTElDRU5DRVxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuY29uc3QgeyBMRVZFTCB9ID0gcmVxdWlyZSgndHJpcGxlLWJlYW0nKTtcbmNvbnN0IGNvbmZpZyA9IHJlcXVpcmUoJy4vY29uZmlnJyk7XG5jb25zdCBMb2dnZXIgPSByZXF1aXJlKCcuL2xvZ2dlcicpO1xuY29uc3QgZGVidWcgPSByZXF1aXJlKCdAZGFiaC9kaWFnbm9zdGljcycpKCd3aW5zdG9uOmNyZWF0ZS1sb2dnZXInKTtcblxuZnVuY3Rpb24gaXNMZXZlbEVuYWJsZWRGdW5jdGlvbk5hbWUobGV2ZWwpIHtcbiAgcmV0dXJuICdpcycgKyBsZXZlbC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIGxldmVsLnNsaWNlKDEpICsgJ0VuYWJsZWQnO1xufVxuXG4vKipcbiAqIENyZWF0ZSBhIG5ldyBpbnN0YW5jZSBvZiBhIHdpbnN0b24gTG9nZ2VyLiBDcmVhdGVzIGEgbmV3XG4gKiBwcm90b3R5cGUgZm9yIGVhY2ggaW5zdGFuY2UuXG4gKiBAcGFyYW0geyFPYmplY3R9IG9wdHMgLSBPcHRpb25zIGZvciB0aGUgY3JlYXRlZCBsb2dnZXIuXG4gKiBAcmV0dXJucyB7TG9nZ2VyfSAtIEEgbmV3bHkgY3JlYXRlZCBsb2dnZXIgaW5zdGFuY2UuXG4gKi9cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG9wdHMgPSB7fSkge1xuICAvL1xuICAvLyBEZWZhdWx0IGxldmVsczogbnBtXG4gIC8vXG4gIG9wdHMubGV2ZWxzID0gb3B0cy5sZXZlbHMgfHwgY29uZmlnLm5wbS5sZXZlbHM7XG5cbiAgLyoqXG4gICAqIERlcml2ZWRMb2dnZXIgdG8gYXR0YWNoIHRoZSBsb2dzIGxldmVsIG1ldGhvZHMuXG4gICAqIEB0eXBlIHtEZXJpdmVkTG9nZ2VyfVxuICAgKiBAZXh0ZW5kcyB7TG9nZ2VyfVxuICAgKi9cbiAgY2xhc3MgRGVyaXZlZExvZ2dlciBleHRlbmRzIExvZ2dlciB7XG4gICAgLyoqXG4gICAgICogQ3JlYXRlIGEgbmV3IGNsYXNzIGRlcml2ZWQgbG9nZ2VyIGZvciB3aGljaCB0aGUgbGV2ZWxzIGNhbiBiZSBhdHRhY2hlZCB0b1xuICAgICAqIHRoZSBwcm90b3R5cGUgb2YuIFRoaXMgaXMgYSBWOCBvcHRpbWl6YXRpb24gdGhhdCBpcyB3ZWxsIGtub3cgdG8gaW5jcmVhc2VcbiAgICAgKiBwZXJmb3JtYW5jZSBvZiBwcm90b3R5cGUgZnVuY3Rpb25zLlxuICAgICAqIEBwYXJhbSB7IU9iamVjdH0gb3B0aW9ucyAtIE9wdGlvbnMgZm9yIHRoZSBjcmVhdGVkIGxvZ2dlci5cbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgICBzdXBlcihvcHRpb25zKTtcbiAgICB9XG4gIH1cblxuICBjb25zdCBsb2dnZXIgPSBuZXcgRGVyaXZlZExvZ2dlcihvcHRzKTtcblxuICAvL1xuICAvLyBDcmVhdGUgdGhlIGxvZyBsZXZlbCBtZXRob2RzIGZvciB0aGUgZGVyaXZlZCBsb2dnZXIuXG4gIC8vXG4gIE9iamVjdC5rZXlzKG9wdHMubGV2ZWxzKS5mb3JFYWNoKGZ1bmN0aW9uIChsZXZlbCkge1xuICAgIGRlYnVnKCdEZWZpbmUgcHJvdG90eXBlIG1ldGhvZCBmb3IgXCIlc1wiJywgbGV2ZWwpO1xuICAgIGlmIChsZXZlbCA9PT0gJ2xvZycpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICBjb25zb2xlLndhcm4oJ0xldmVsIFwibG9nXCIgbm90IGRlZmluZWQ6IGNvbmZsaWN0cyB3aXRoIHRoZSBtZXRob2QgXCJsb2dcIi4gVXNlIGEgZGlmZmVyZW50IGxldmVsIG5hbWUuJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy9cbiAgICAvLyBEZWZpbmUgcHJvdG90eXBlIG1ldGhvZHMgZm9yIGVhY2ggbG9nIGxldmVsIGUuZy46XG4gICAgLy8gbG9nZ2VyLmxvZygnaW5mbycsIG1zZykgaW1wbGllcyB0aGVzZSBtZXRob2RzIGFyZSBkZWZpbmVkOlxuICAgIC8vIC0gbG9nZ2VyLmluZm8obXNnKVxuICAgIC8vIC0gbG9nZ2VyLmlzSW5mb0VuYWJsZWQoKVxuICAgIC8vXG4gICAgLy8gUmVtYXJrOiB0byBzdXBwb3J0IGxvZ2dlci5jaGlsZCB0aGlzICoqTVVTVCoqIGJlIGEgZnVuY3Rpb25cbiAgICAvLyBzbyBpdCdsbCBhbHdheXMgYmUgY2FsbGVkIG9uIHRoZSBpbnN0YW5jZSBpbnN0ZWFkIG9mIGEgZml4ZWRcbiAgICAvLyBwbGFjZSBpbiB0aGUgcHJvdG90eXBlIGNoYWluLlxuICAgIC8vXG4gICAgRGVyaXZlZExvZ2dlci5wcm90b3R5cGVbbGV2ZWxdID0gZnVuY3Rpb24gKC4uLmFyZ3MpIHtcbiAgICAgIC8vIFByZWZlciBhbnkgaW5zdGFuY2Ugc2NvcGUsIGJ1dCBkZWZhdWx0IHRvIFwicm9vdFwiIGxvZ2dlclxuICAgICAgY29uc3Qgc2VsZiA9IHRoaXMgfHwgbG9nZ2VyO1xuXG4gICAgICAvLyBPcHRpbWl6ZSB0aGUgaG90LXBhdGggd2hpY2ggaXMgdGhlIHNpbmdsZSBvYmplY3QuXG4gICAgICBpZiAoYXJncy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgY29uc3QgW21zZ10gPSBhcmdzO1xuICAgICAgICBjb25zdCBpbmZvID0gbXNnICYmIG1zZy5tZXNzYWdlICYmIG1zZyB8fCB7IG1lc3NhZ2U6IG1zZyB9O1xuICAgICAgICBpbmZvLmxldmVsID0gaW5mb1tMRVZFTF0gPSBsZXZlbDtcbiAgICAgICAgc2VsZi5fYWRkRGVmYXVsdE1ldGEoaW5mbyk7XG4gICAgICAgIHNlbGYud3JpdGUoaW5mbyk7XG4gICAgICAgIHJldHVybiAodGhpcyB8fCBsb2dnZXIpO1xuICAgICAgfVxuXG4gICAgICAvLyBXaGVuIHByb3ZpZGVkIG5vdGhpbmcgYXNzdW1lIHRoZSBlbXB0eSBzdHJpbmdcbiAgICAgIGlmIChhcmdzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBzZWxmLmxvZyhsZXZlbCwgJycpO1xuICAgICAgICByZXR1cm4gc2VsZjtcbiAgICAgIH1cblxuICAgICAgLy8gT3RoZXJ3aXNlIGJ1aWxkIGFyZ3VtZW50IGxpc3Qgd2hpY2ggY291bGQgcG90ZW50aWFsbHkgY29uZm9ybSB0b1xuICAgICAgLy8gZWl0aGVyOlxuICAgICAgLy8gLiB2MyBBUEk6IGxvZyhvYmopXG4gICAgICAvLyAyLiB2MS92MiBBUEk6IGxvZyhsZXZlbCwgbXNnLCAuLi4gW3N0cmluZyBpbnRlcnBvbGF0ZV0sIFt7bWV0YWRhdGF9XSwgW2NhbGxiYWNrXSlcbiAgICAgIHJldHVybiBzZWxmLmxvZyhsZXZlbCwgLi4uYXJncyk7XG4gICAgfTtcblxuICAgIERlcml2ZWRMb2dnZXIucHJvdG90eXBlW2lzTGV2ZWxFbmFibGVkRnVuY3Rpb25OYW1lKGxldmVsKV0gPSBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gKHRoaXMgfHwgbG9nZ2VyKS5pc0xldmVsRW5hYmxlZChsZXZlbCk7XG4gICAgfTtcbiAgfSk7XG5cbiAgcmV0dXJuIGxvZ2dlcjtcbn07XG4iLCAiLyoqXG4gKiBjb250YWluZXIuanM6IEludmVyc2lvbiBvZiBjb250cm9sIGNvbnRhaW5lciBmb3Igd2luc3RvbiBsb2dnZXIgaW5zdGFuY2VzLlxuICpcbiAqIChDKSAyMDEwIENoYXJsaWUgUm9iYmluc1xuICogTUlUIExJQ0VOQ0VcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmNvbnN0IGNyZWF0ZUxvZ2dlciA9IHJlcXVpcmUoJy4vY3JlYXRlLWxvZ2dlcicpO1xuXG4vKipcbiAqIEludmVyc2lvbiBvZiBjb250cm9sIGNvbnRhaW5lciBmb3Igd2luc3RvbiBsb2dnZXIgaW5zdGFuY2VzLlxuICogQHR5cGUge0NvbnRhaW5lcn1cbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBjbGFzcyBDb250YWluZXIge1xuICAvKipcbiAgICogQ29uc3RydWN0b3IgZnVuY3Rpb24gZm9yIHRoZSBDb250YWluZXIgb2JqZWN0IHJlc3BvbnNpYmxlIGZvciBtYW5hZ2luZyBhXG4gICAqIHNldCBvZiBgd2luc3Rvbi5Mb2dnZXJgIGluc3RhbmNlcyBiYXNlZCBvbiBzdHJpbmcgaWRzLlxuICAgKiBAcGFyYW0geyFPYmplY3R9IFtvcHRpb25zPXt9XSAtIERlZmF1bHQgcGFzcy10aHJ1IG9wdGlvbnMgZm9yIExvZ2dlcnMuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihvcHRpb25zID0ge30pIHtcbiAgICB0aGlzLmxvZ2dlcnMgPSBuZXcgTWFwKCk7XG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgYSBgd2luc3Rvbi5Mb2dnZXJgIGluc3RhbmNlIGZvciB0aGUgc3BlY2lmaWVkIGBpZGAuIElmIGFuXG4gICAqIGluc3RhbmNlIGRvZXMgbm90IGV4aXN0LCBvbmUgaXMgY3JlYXRlZC5cbiAgICogQHBhcmFtIHshc3RyaW5nfSBpZCAtIFRoZSBpZCBvZiB0aGUgTG9nZ2VyIHRvIGdldC5cbiAgICogQHBhcmFtIHs/T2JqZWN0fSBbb3B0aW9uc10gLSBPcHRpb25zIGZvciB0aGUgTG9nZ2VyIGluc3RhbmNlLlxuICAgKiBAcmV0dXJucyB7TG9nZ2VyfSAtIEEgY29uZmlndXJlZCBMb2dnZXIgaW5zdGFuY2Ugd2l0aCBhIHNwZWNpZmllZCBpZC5cbiAgICovXG4gIGFkZChpZCwgb3B0aW9ucykge1xuICAgIGlmICghdGhpcy5sb2dnZXJzLmhhcyhpZCkpIHtcbiAgICAgIC8vIFJlbWFyazogU2ltcGxlIHNoYWxsb3cgY2xvbmUgZm9yIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBpbiBjYXNlIHdlIHBhc3NcbiAgICAgIC8vIGluIGluc3RhbnRpYXRlZCBwcm90b3lwYWwgb2JqZWN0c1xuICAgICAgb3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIG9wdGlvbnMgfHwgdGhpcy5vcHRpb25zKTtcbiAgICAgIGNvbnN0IGV4aXN0aW5nID0gb3B0aW9ucy50cmFuc3BvcnRzIHx8IHRoaXMub3B0aW9ucy50cmFuc3BvcnRzO1xuXG4gICAgICAvLyBSZW1hcms6IE1ha2Ugc3VyZSBpZiB3ZSBoYXZlIGFuIGFycmF5IG9mIHRyYW5zcG9ydHMgd2Ugc2xpY2UgaXQgdG9cbiAgICAgIC8vIG1ha2UgY29waWVzIG9mIHRob3NlIHJlZmVyZW5jZXMuXG4gICAgICBpZiAoZXhpc3RpbmcpIHtcbiAgICAgICAgb3B0aW9ucy50cmFuc3BvcnRzID0gQXJyYXkuaXNBcnJheShleGlzdGluZykgPyBleGlzdGluZy5zbGljZSgpIDogW2V4aXN0aW5nXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG9wdGlvbnMudHJhbnNwb3J0cyA9IFtdO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBsb2dnZXIgPSBjcmVhdGVMb2dnZXIob3B0aW9ucyk7XG4gICAgICBsb2dnZXIub24oJ2Nsb3NlJywgKCkgPT4gdGhpcy5fZGVsZXRlKGlkKSk7XG4gICAgICB0aGlzLmxvZ2dlcnMuc2V0KGlkLCBsb2dnZXIpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmxvZ2dlcnMuZ2V0KGlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyZWl2ZXMgYSBgd2luc3Rvbi5Mb2dnZXJgIGluc3RhbmNlIGZvciB0aGUgc3BlY2lmaWVkIGBpZGAuIElmXG4gICAqIGFuIGluc3RhbmNlIGRvZXMgbm90IGV4aXN0LCBvbmUgaXMgY3JlYXRlZC5cbiAgICogQHBhcmFtIHshc3RyaW5nfSBpZCAtIFRoZSBpZCBvZiB0aGUgTG9nZ2VyIHRvIGdldC5cbiAgICogQHBhcmFtIHs/T2JqZWN0fSBbb3B0aW9uc10gLSBPcHRpb25zIGZvciB0aGUgTG9nZ2VyIGluc3RhbmNlLlxuICAgKiBAcmV0dXJucyB7TG9nZ2VyfSAtIEEgY29uZmlndXJlZCBMb2dnZXIgaW5zdGFuY2Ugd2l0aCBhIHNwZWNpZmllZCBpZC5cbiAgICovXG4gIGdldChpZCwgb3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLmFkZChpZCwgb3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgdGhlIGNvbnRhaW5lciBoYXMgYSBsb2dnZXIgd2l0aCB0aGUgaWQuXG4gICAqIEBwYXJhbSB7P3N0cmluZ30gaWQgLSBUaGUgaWQgb2YgdGhlIExvZ2dlciBpbnN0YW5jZSB0byBmaW5kLlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSBCb29sZWFuIHZhbHVlIGluZGljYXRpbmcgaWYgdGhpcyBpbnN0YW5jZSBoYXMgYVxuICAgKiBsb2dnZXIgd2l0aCB0aGUgc3BlY2lmaWVkIGBpZGAuXG4gICAqL1xuICBoYXMoaWQpIHtcbiAgICByZXR1cm4gISF0aGlzLmxvZ2dlcnMuaGFzKGlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZXMgYSBgTG9nZ2VyYCBpbnN0YW5jZSB3aXRoIHRoZSBzcGVjaWZpZWQgYGlkYCBpZiBpdCBleGlzdHMuXG4gICAqIElmIG5vIGBpZGAgaXMgc3VwcGxpZWQgdGhlbiBhbGwgTG9nZ2VycyBhcmUgY2xvc2VkLlxuICAgKiBAcGFyYW0gez9zdHJpbmd9IGlkIC0gVGhlIGlkIG9mIHRoZSBMb2dnZXIgaW5zdGFuY2UgdG8gY2xvc2UuXG4gICAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gICAqL1xuICBjbG9zZShpZCkge1xuICAgIGlmIChpZCkge1xuICAgICAgcmV0dXJuIHRoaXMuX3JlbW92ZUxvZ2dlcihpZCk7XG4gICAgfVxuXG4gICAgdGhpcy5sb2dnZXJzLmZvckVhY2goKHZhbCwga2V5KSA9PiB0aGlzLl9yZW1vdmVMb2dnZXIoa2V5KSk7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGEgbG9nZ2VyIGJhc2VkIG9uIHRoZSBpZC5cbiAgICogQHBhcmFtIHshc3RyaW5nfSBpZCAtIFRoZSBpZCBvZiB0aGUgbG9nZ2VyIHRvIHJlbW92ZS5cbiAgICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAgICogQHByaXZhdGVcbiAgICovXG4gIF9yZW1vdmVMb2dnZXIoaWQpIHtcbiAgICBpZiAoIXRoaXMubG9nZ2Vycy5oYXMoaWQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbG9nZ2VyID0gdGhpcy5sb2dnZXJzLmdldChpZCk7XG4gICAgbG9nZ2VyLmNsb3NlKCk7XG4gICAgdGhpcy5fZGVsZXRlKGlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWxldGVzIGEgYExvZ2dlcmAgaW5zdGFuY2Ugd2l0aCB0aGUgc3BlY2lmaWVkIGBpZGAuXG4gICAqIEBwYXJhbSB7IXN0cmluZ30gaWQgLSBUaGUgaWQgb2YgdGhlIExvZ2dlciBpbnN0YW5jZSB0byBkZWxldGUgZnJvbVxuICAgKiBjb250YWluZXIuXG4gICAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBfZGVsZXRlKGlkKSB7XG4gICAgdGhpcy5sb2dnZXJzLmRlbGV0ZShpZCk7XG4gIH1cbn07XG4iLCAiLyoqXG4gKiB3aW5zdG9uLmpzOiBUb3AtbGV2ZWwgaW5jbHVkZSBkZWZpbmluZyBXaW5zdG9uLlxuICpcbiAqIChDKSAyMDEwIENoYXJsaWUgUm9iYmluc1xuICogTUlUIExJQ0VOQ0VcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmNvbnN0IGxvZ2Zvcm0gPSByZXF1aXJlKCdsb2dmb3JtJyk7XG5jb25zdCB7IHdhcm4gfSA9IHJlcXVpcmUoJy4vd2luc3Rvbi9jb21tb24nKTtcblxuLyoqXG4gKiBFeHBvc2UgdmVyc2lvbi4gVXNlIGByZXF1aXJlYCBtZXRob2QgZm9yIGB3ZWJwYWNrYCBzdXBwb3J0LlxuICogQHR5cGUge3N0cmluZ31cbiAqL1xuZXhwb3J0cy52ZXJzaW9uID0gcmVxdWlyZSgnLi4vcGFja2FnZS5qc29uJykudmVyc2lvbjtcbi8qKlxuICogSW5jbHVkZSB0cmFuc3BvcnRzIGRlZmluZWQgYnkgZGVmYXVsdCBieSB3aW5zdG9uXG4gKiBAdHlwZSB7QXJyYXl9XG4gKi9cbmV4cG9ydHMudHJhbnNwb3J0cyA9IHJlcXVpcmUoJy4vd2luc3Rvbi90cmFuc3BvcnRzJyk7XG4vKipcbiAqIEV4cG9zZSB1dGlsaXR5IG1ldGhvZHNcbiAqIEB0eXBlIHtPYmplY3R9XG4gKi9cbmV4cG9ydHMuY29uZmlnID0gcmVxdWlyZSgnLi93aW5zdG9uL2NvbmZpZycpO1xuLyoqXG4gKiBIb2lzdCBmb3JtYXQtcmVsYXRlZCBmdW5jdGlvbmFsaXR5IGZyb20gbG9nZm9ybS5cbiAqIEB0eXBlIHtPYmplY3R9XG4gKi9cbmV4cG9ydHMuYWRkQ29sb3JzID0gbG9nZm9ybS5sZXZlbHM7XG4vKipcbiAqIEhvaXN0IGZvcm1hdC1yZWxhdGVkIGZ1bmN0aW9uYWxpdHkgZnJvbSBsb2dmb3JtLlxuICogQHR5cGUge09iamVjdH1cbiAqL1xuZXhwb3J0cy5mb3JtYXQgPSBsb2dmb3JtLmZvcm1hdDtcbi8qKlxuICogRXhwb3NlIGNvcmUgTG9nZ2luZy1yZWxhdGVkIHByb3RvdHlwZXMuXG4gKiBAdHlwZSB7ZnVuY3Rpb259XG4gKi9cbmV4cG9ydHMuY3JlYXRlTG9nZ2VyID0gcmVxdWlyZSgnLi93aW5zdG9uL2NyZWF0ZS1sb2dnZXInKTtcbi8qKlxuICogRXhwb3NlIGNvcmUgTG9nZ2luZy1yZWxhdGVkIHByb3RvdHlwZXMuXG4gKiBAdHlwZSB7ZnVuY3Rpb259XG4gKi9cbmV4cG9ydHMuTG9nZ2VyID0gcmVxdWlyZSgnLi93aW5zdG9uL2xvZ2dlcicpO1xuLyoqXG4gKiBFeHBvc2UgY29yZSBMb2dnaW5nLXJlbGF0ZWQgcHJvdG90eXBlcy5cbiAqIEB0eXBlIHtPYmplY3R9XG4gKi9cbmV4cG9ydHMuRXhjZXB0aW9uSGFuZGxlciA9IHJlcXVpcmUoJy4vd2luc3Rvbi9leGNlcHRpb24taGFuZGxlcicpO1xuLyoqXG4gKiBFeHBvc2UgY29yZSBMb2dnaW5nLXJlbGF0ZWQgcHJvdG90eXBlcy5cbiAqIEB0eXBlIHtPYmplY3R9XG4gKi9cbmV4cG9ydHMuUmVqZWN0aW9uSGFuZGxlciA9IHJlcXVpcmUoJy4vd2luc3Rvbi9yZWplY3Rpb24taGFuZGxlcicpO1xuLyoqXG4gKiBFeHBvc2UgY29yZSBMb2dnaW5nLXJlbGF0ZWQgcHJvdG90eXBlcy5cbiAqIEB0eXBlIHtDb250YWluZXJ9XG4gKi9cbmV4cG9ydHMuQ29udGFpbmVyID0gcmVxdWlyZSgnLi93aW5zdG9uL2NvbnRhaW5lcicpO1xuLyoqXG4gKiBFeHBvc2UgY29yZSBMb2dnaW5nLXJlbGF0ZWQgcHJvdG90eXBlcy5cbiAqIEB0eXBlIHtPYmplY3R9XG4gKi9cbmV4cG9ydHMuVHJhbnNwb3J0ID0gcmVxdWlyZSgnd2luc3Rvbi10cmFuc3BvcnQnKTtcbi8qKlxuICogV2UgY3JlYXRlIGFuZCBleHBvc2UgYSBkZWZhdWx0IGBDb250YWluZXJgIHRvIGB3aW5zdG9uLmxvZ2dlcnNgIHNvIHRoYXQgdGhlXG4gKiBwcm9ncmFtbWVyIG1heSBtYW5hZ2UgbXVsdGlwbGUgYHdpbnN0b24uTG9nZ2VyYCBpbnN0YW5jZXMgd2l0aG91dCBhbnlcbiAqIGFkZGl0aW9uYWwgb3ZlcmhlYWQuXG4gKiBAZXhhbXBsZVxuICogICAvLyBzb21lLWZpbGUxLmpzXG4gKiAgIGNvbnN0IGxvZ2dlciA9IHJlcXVpcmUoJ3dpbnN0b24nKS5sb2dnZXJzLmdldCgnc29tZXRoaW5nJyk7XG4gKlxuICogICAvLyBzb21lLWZpbGUyLmpzXG4gKiAgIGNvbnN0IGxvZ2dlciA9IHJlcXVpcmUoJ3dpbnN0b24nKS5sb2dnZXJzLmdldCgnc29tZXRoaW5nJyk7XG4gKi9cbmV4cG9ydHMubG9nZ2VycyA9IG5ldyBleHBvcnRzLkNvbnRhaW5lcigpO1xuXG4vKipcbiAqIFdlIGNyZWF0ZSBhbmQgZXhwb3NlIGEgJ2RlZmF1bHRMb2dnZXInIHNvIHRoYXQgdGhlIHByb2dyYW1tZXIgbWF5IGRvIHRoZVxuICogZm9sbG93aW5nIHdpdGhvdXQgdGhlIG5lZWQgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIHdpbnN0b24uTG9nZ2VyIGRpcmVjdGx5OlxuICogQGV4YW1wbGVcbiAqICAgY29uc3Qgd2luc3RvbiA9IHJlcXVpcmUoJ3dpbnN0b24nKTtcbiAqICAgd2luc3Rvbi5sb2coJ2luZm8nLCAnc29tZSBtZXNzYWdlJyk7XG4gKiAgIHdpbnN0b24uZXJyb3IoJ3NvbWUgZXJyb3InKTtcbiAqL1xuY29uc3QgZGVmYXVsdExvZ2dlciA9IGV4cG9ydHMuY3JlYXRlTG9nZ2VyKCk7XG5cbi8vIFBhc3MgdGhyb3VnaCB0aGUgdGFyZ2V0IG1ldGhvZHMgb250byBgd2luc3Rvbi5cbk9iamVjdC5rZXlzKGV4cG9ydHMuY29uZmlnLm5wbS5sZXZlbHMpXG4gIC5jb25jYXQoW1xuICAgICdsb2cnLFxuICAgICdxdWVyeScsXG4gICAgJ3N0cmVhbScsXG4gICAgJ2FkZCcsXG4gICAgJ3JlbW92ZScsXG4gICAgJ2NsZWFyJyxcbiAgICAncHJvZmlsZScsXG4gICAgJ3N0YXJ0VGltZXInLFxuICAgICdoYW5kbGVFeGNlcHRpb25zJyxcbiAgICAndW5oYW5kbGVFeGNlcHRpb25zJyxcbiAgICAnaGFuZGxlUmVqZWN0aW9ucycsXG4gICAgJ3VuaGFuZGxlUmVqZWN0aW9ucycsXG4gICAgJ2NvbmZpZ3VyZScsXG4gICAgJ2NoaWxkJ1xuICBdKVxuICAuZm9yRWFjaChcbiAgICBtZXRob2QgPT4gKGV4cG9ydHNbbWV0aG9kXSA9ICguLi5hcmdzKSA9PiBkZWZhdWx0TG9nZ2VyW21ldGhvZF0oLi4uYXJncykpXG4gICk7XG5cbi8qKlxuICogRGVmaW5lIGdldHRlciAvIHNldHRlciBmb3IgdGhlIGRlZmF1bHQgbG9nZ2VyIGxldmVsIHdoaWNoIG5lZWQgdG8gYmUgZXhwb3NlZFxuICogYnkgd2luc3Rvbi5cbiAqIEB0eXBlIHtzdHJpbmd9XG4gKi9cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnbGV2ZWwnLCB7XG4gIGdldCgpIHtcbiAgICByZXR1cm4gZGVmYXVsdExvZ2dlci5sZXZlbDtcbiAgfSxcbiAgc2V0KHZhbCkge1xuICAgIGRlZmF1bHRMb2dnZXIubGV2ZWwgPSB2YWw7XG4gIH1cbn0pO1xuXG4vKipcbiAqIERlZmluZSBnZXR0ZXIgZm9yIGBleGNlcHRpb25zYCB3aGljaCByZXBsYWNlcyBgaGFuZGxlRXhjZXB0aW9uc2AgYW5kXG4gKiBgdW5oYW5kbGVFeGNlcHRpb25zYC5cbiAqIEB0eXBlIHtPYmplY3R9XG4gKi9cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnZXhjZXB0aW9ucycsIHtcbiAgZ2V0KCkge1xuICAgIHJldHVybiBkZWZhdWx0TG9nZ2VyLmV4Y2VwdGlvbnM7XG4gIH1cbn0pO1xuXG4vKipcbiAqIERlZmluZSBnZXR0ZXIgZm9yIGByZWplY3Rpb25zYCB3aGljaCByZXBsYWNlcyBgaGFuZGxlUmVqZWN0aW9uc2AgYW5kXG4gKiBgdW5oYW5kbGVSZWplY3Rpb25zYC5cbiAqIEB0eXBlIHtPYmplY3R9XG4gKi9cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAncmVqZWN0aW9ucycsIHtcbiAgZ2V0KCkge1xuICAgIHJldHVybiBkZWZhdWx0TG9nZ2VyLnJlamVjdGlvbnM7XG4gIH1cbn0pO1xuXG4vKipcbiAqIERlZmluZSBnZXR0ZXJzIC8gc2V0dGVycyBmb3IgYXBwcm9wcmlhdGUgcHJvcGVydGllcyBvZiB0aGUgZGVmYXVsdCBsb2dnZXJcbiAqIHdoaWNoIG5lZWQgdG8gYmUgZXhwb3NlZCBieSB3aW5zdG9uLlxuICogQHR5cGUge0xvZ2dlcn1cbiAqL1xuWydleGl0T25FcnJvciddLmZvckVhY2gocHJvcCA9PiB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBwcm9wLCB7XG4gICAgZ2V0KCkge1xuICAgICAgcmV0dXJuIGRlZmF1bHRMb2dnZXJbcHJvcF07XG4gICAgfSxcbiAgICBzZXQodmFsKSB7XG4gICAgICBkZWZhdWx0TG9nZ2VyW3Byb3BdID0gdmFsO1xuICAgIH1cbiAgfSk7XG59KTtcblxuLyoqXG4gKiBUaGUgZGVmYXVsdCB0cmFuc3BvcnRzIGFuZCBleGNlcHRpb25IYW5kbGVycyBmb3IgdGhlIGRlZmF1bHQgd2luc3RvbiBsb2dnZXIuXG4gKiBAdHlwZSB7T2JqZWN0fVxuICovXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ2RlZmF1bHQnLCB7XG4gIGdldCgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgZXhjZXB0aW9uSGFuZGxlcnM6IGRlZmF1bHRMb2dnZXIuZXhjZXB0aW9uSGFuZGxlcnMsXG4gICAgICByZWplY3Rpb25IYW5kbGVyczogZGVmYXVsdExvZ2dlci5yZWplY3Rpb25IYW5kbGVycyxcbiAgICAgIHRyYW5zcG9ydHM6IGRlZmF1bHRMb2dnZXIudHJhbnNwb3J0c1xuICAgIH07XG4gIH1cbn0pO1xuXG4vLyBIYXZlIGZyaWVuZGxpZXIgYnJlYWthZ2Ugbm90aWNlcyBmb3IgcHJvcGVydGllcyB0aGF0IHdlcmUgZXhwb3NlZCBieSBkZWZhdWx0XG4vLyBvbiB3aW5zdG9uIDwgMy4wLlxud2Fybi5kZXByZWNhdGVkKGV4cG9ydHMsICdzZXRMZXZlbHMnKTtcbndhcm4uZm9yRnVuY3Rpb25zKGV4cG9ydHMsICd1c2VGb3JtYXQnLCBbJ2NsaSddKTtcbndhcm4uZm9yUHJvcGVydGllcyhleHBvcnRzLCAndXNlRm9ybWF0JywgWydwYWRMZXZlbHMnLCAnc3RyaXBDb2xvcnMnXSk7XG53YXJuLmZvckZ1bmN0aW9ucyhleHBvcnRzLCAnZGVwcmVjYXRlZCcsIFtcbiAgJ2FkZFJld3JpdGVyJyxcbiAgJ2FkZEZpbHRlcicsXG4gICdjbG9uZScsXG4gICdleHRlbmQnXG5dKTtcbndhcm4uZm9yUHJvcGVydGllcyhleHBvcnRzLCAnZGVwcmVjYXRlZCcsIFsnZW1pdEVycnMnLCAnbGV2ZWxMZW5ndGgnXSk7XG5cbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBwcm90b2NvbEh0dHAgPSByZXF1aXJlKCdAc21pdGh5L3Byb3RvY29sLWh0dHAnKTtcblxuZnVuY3Rpb24gcmVzb2x2ZUhvc3RIZWFkZXJDb25maWcoaW5wdXQpIHtcbiAgICByZXR1cm4gaW5wdXQ7XG59XG5jb25zdCBob3N0SGVhZGVyTWlkZGxld2FyZSA9IChvcHRpb25zKSA9PiAobmV4dCkgPT4gYXN5bmMgKGFyZ3MpID0+IHtcbiAgICBpZiAoIXByb3RvY29sSHR0cC5IdHRwUmVxdWVzdC5pc0luc3RhbmNlKGFyZ3MucmVxdWVzdCkpXG4gICAgICAgIHJldHVybiBuZXh0KGFyZ3MpO1xuICAgIGNvbnN0IHsgcmVxdWVzdCB9ID0gYXJncztcbiAgICBjb25zdCB7IGhhbmRsZXJQcm90b2NvbCA9IFwiXCIgfSA9IG9wdGlvbnMucmVxdWVzdEhhbmRsZXIubWV0YWRhdGEgfHwge307XG4gICAgaWYgKGhhbmRsZXJQcm90b2NvbC5pbmRleE9mKFwiaDJcIikgPj0gMCAmJiAhcmVxdWVzdC5oZWFkZXJzW1wiOmF1dGhvcml0eVwiXSkge1xuICAgICAgICBkZWxldGUgcmVxdWVzdC5oZWFkZXJzW1wiaG9zdFwiXTtcbiAgICAgICAgcmVxdWVzdC5oZWFkZXJzW1wiOmF1dGhvcml0eVwiXSA9IHJlcXVlc3QuaG9zdG5hbWUgKyAocmVxdWVzdC5wb3J0ID8gXCI6XCIgKyByZXF1ZXN0LnBvcnQgOiBcIlwiKTtcbiAgICB9XG4gICAgZWxzZSBpZiAoIXJlcXVlc3QuaGVhZGVyc1tcImhvc3RcIl0pIHtcbiAgICAgICAgbGV0IGhvc3QgPSByZXF1ZXN0Lmhvc3RuYW1lO1xuICAgICAgICBpZiAocmVxdWVzdC5wb3J0ICE9IG51bGwpXG4gICAgICAgICAgICBob3N0ICs9IGA6JHtyZXF1ZXN0LnBvcnR9YDtcbiAgICAgICAgcmVxdWVzdC5oZWFkZXJzW1wiaG9zdFwiXSA9IGhvc3Q7XG4gICAgfVxuICAgIHJldHVybiBuZXh0KGFyZ3MpO1xufTtcbmNvbnN0IGhvc3RIZWFkZXJNaWRkbGV3YXJlT3B0aW9ucyA9IHtcbiAgICBuYW1lOiBcImhvc3RIZWFkZXJNaWRkbGV3YXJlXCIsXG4gICAgc3RlcDogXCJidWlsZFwiLFxuICAgIHByaW9yaXR5OiBcImxvd1wiLFxuICAgIHRhZ3M6IFtcIkhPU1RcIl0sXG4gICAgb3ZlcnJpZGU6IHRydWUsXG59O1xuY29uc3QgZ2V0SG9zdEhlYWRlclBsdWdpbiA9IChvcHRpb25zKSA9PiAoe1xuICAgIGFwcGx5VG9TdGFjazogKGNsaWVudFN0YWNrKSA9PiB7XG4gICAgICAgIGNsaWVudFN0YWNrLmFkZChob3N0SGVhZGVyTWlkZGxld2FyZShvcHRpb25zKSwgaG9zdEhlYWRlck1pZGRsZXdhcmVPcHRpb25zKTtcbiAgICB9LFxufSk7XG5cbmV4cG9ydHMuZ2V0SG9zdEhlYWRlclBsdWdpbiA9IGdldEhvc3RIZWFkZXJQbHVnaW47XG5leHBvcnRzLmhvc3RIZWFkZXJNaWRkbGV3YXJlID0gaG9zdEhlYWRlck1pZGRsZXdhcmU7XG5leHBvcnRzLmhvc3RIZWFkZXJNaWRkbGV3YXJlT3B0aW9ucyA9IGhvc3RIZWFkZXJNaWRkbGV3YXJlT3B0aW9ucztcbmV4cG9ydHMucmVzb2x2ZUhvc3RIZWFkZXJDb25maWcgPSByZXNvbHZlSG9zdEhlYWRlckNvbmZpZztcbiIsICIndXNlIHN0cmljdCc7XG5cbmNvbnN0IGxvZ2dlck1pZGRsZXdhcmUgPSAoKSA9PiAobmV4dCwgY29udGV4dCkgPT4gYXN5bmMgKGFyZ3MpID0+IHtcbiAgICB0cnkge1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IG5leHQoYXJncyk7XG4gICAgICAgIGNvbnN0IHsgY2xpZW50TmFtZSwgY29tbWFuZE5hbWUsIGxvZ2dlciwgZHluYW1vRGJEb2N1bWVudENsaWVudE9wdGlvbnMgPSB7fSB9ID0gY29udGV4dDtcbiAgICAgICAgY29uc3QgeyBvdmVycmlkZUlucHV0RmlsdGVyU2Vuc2l0aXZlTG9nLCBvdmVycmlkZU91dHB1dEZpbHRlclNlbnNpdGl2ZUxvZyB9ID0gZHluYW1vRGJEb2N1bWVudENsaWVudE9wdGlvbnM7XG4gICAgICAgIGNvbnN0IGlucHV0RmlsdGVyU2Vuc2l0aXZlTG9nID0gb3ZlcnJpZGVJbnB1dEZpbHRlclNlbnNpdGl2ZUxvZyA/PyBjb250ZXh0LmlucHV0RmlsdGVyU2Vuc2l0aXZlTG9nO1xuICAgICAgICBjb25zdCBvdXRwdXRGaWx0ZXJTZW5zaXRpdmVMb2cgPSBvdmVycmlkZU91dHB1dEZpbHRlclNlbnNpdGl2ZUxvZyA/PyBjb250ZXh0Lm91dHB1dEZpbHRlclNlbnNpdGl2ZUxvZztcbiAgICAgICAgY29uc3QgeyAkbWV0YWRhdGEsIC4uLm91dHB1dFdpdGhvdXRNZXRhZGF0YSB9ID0gcmVzcG9uc2Uub3V0cHV0O1xuICAgICAgICBsb2dnZXI/LmluZm8/Lih7XG4gICAgICAgICAgICBjbGllbnROYW1lLFxuICAgICAgICAgICAgY29tbWFuZE5hbWUsXG4gICAgICAgICAgICBpbnB1dDogaW5wdXRGaWx0ZXJTZW5zaXRpdmVMb2coYXJncy5pbnB1dCksXG4gICAgICAgICAgICBvdXRwdXQ6IG91dHB1dEZpbHRlclNlbnNpdGl2ZUxvZyhvdXRwdXRXaXRob3V0TWV0YWRhdGEpLFxuICAgICAgICAgICAgbWV0YWRhdGE6ICRtZXRhZGF0YSxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICB9XG4gICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnN0IHsgY2xpZW50TmFtZSwgY29tbWFuZE5hbWUsIGxvZ2dlciwgZHluYW1vRGJEb2N1bWVudENsaWVudE9wdGlvbnMgPSB7fSB9ID0gY29udGV4dDtcbiAgICAgICAgY29uc3QgeyBvdmVycmlkZUlucHV0RmlsdGVyU2Vuc2l0aXZlTG9nIH0gPSBkeW5hbW9EYkRvY3VtZW50Q2xpZW50T3B0aW9ucztcbiAgICAgICAgY29uc3QgaW5wdXRGaWx0ZXJTZW5zaXRpdmVMb2cgPSBvdmVycmlkZUlucHV0RmlsdGVyU2Vuc2l0aXZlTG9nID8/IGNvbnRleHQuaW5wdXRGaWx0ZXJTZW5zaXRpdmVMb2c7XG4gICAgICAgIGxvZ2dlcj8uZXJyb3I/Lih7XG4gICAgICAgICAgICBjbGllbnROYW1lLFxuICAgICAgICAgICAgY29tbWFuZE5hbWUsXG4gICAgICAgICAgICBpbnB1dDogaW5wdXRGaWx0ZXJTZW5zaXRpdmVMb2coYXJncy5pbnB1dCksXG4gICAgICAgICAgICBlcnJvcixcbiAgICAgICAgICAgIG1ldGFkYXRhOiBlcnJvci4kbWV0YWRhdGEsXG4gICAgICAgIH0pO1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG59O1xuY29uc3QgbG9nZ2VyTWlkZGxld2FyZU9wdGlvbnMgPSB7XG4gICAgbmFtZTogXCJsb2dnZXJNaWRkbGV3YXJlXCIsXG4gICAgdGFnczogW1wiTE9HR0VSXCJdLFxuICAgIHN0ZXA6IFwiaW5pdGlhbGl6ZVwiLFxuICAgIG92ZXJyaWRlOiB0cnVlLFxufTtcbmNvbnN0IGdldExvZ2dlclBsdWdpbiA9IChvcHRpb25zKSA9PiAoe1xuICAgIGFwcGx5VG9TdGFjazogKGNsaWVudFN0YWNrKSA9PiB7XG4gICAgICAgIGNsaWVudFN0YWNrLmFkZChsb2dnZXJNaWRkbGV3YXJlKCksIGxvZ2dlck1pZGRsZXdhcmVPcHRpb25zKTtcbiAgICB9LFxufSk7XG5cbmV4cG9ydHMuZ2V0TG9nZ2VyUGx1Z2luID0gZ2V0TG9nZ2VyUGx1Z2luO1xuZXhwb3J0cy5sb2dnZXJNaWRkbGV3YXJlID0gbG9nZ2VyTWlkZGxld2FyZTtcbmV4cG9ydHMubG9nZ2VyTWlkZGxld2FyZU9wdGlvbnMgPSBsb2dnZXJNaWRkbGV3YXJlT3B0aW9ucztcbiIsICJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMucmVjdXJzaW9uRGV0ZWN0aW9uTWlkZGxld2FyZSA9IHZvaWQgMDtcbmNvbnN0IGxhbWJkYV9pbnZva2Vfc3RvcmVfMSA9IHJlcXVpcmUoXCJAYXdzL2xhbWJkYS1pbnZva2Utc3RvcmVcIik7XG5jb25zdCBwcm90b2NvbF9odHRwXzEgPSByZXF1aXJlKFwiQHNtaXRoeS9wcm90b2NvbC1odHRwXCIpO1xuY29uc3QgVFJBQ0VfSURfSEVBREVSX05BTUUgPSBcIlgtQW16bi1UcmFjZS1JZFwiO1xuY29uc3QgRU5WX0xBTUJEQV9GVU5DVElPTl9OQU1FID0gXCJBV1NfTEFNQkRBX0ZVTkNUSU9OX05BTUVcIjtcbmNvbnN0IEVOVl9UUkFDRV9JRCA9IFwiX1hfQU1aTl9UUkFDRV9JRFwiO1xuY29uc3QgcmVjdXJzaW9uRGV0ZWN0aW9uTWlkZGxld2FyZSA9ICgpID0+IChuZXh0KSA9PiBhc3luYyAoYXJncykgPT4ge1xuICAgIGNvbnN0IHsgcmVxdWVzdCB9ID0gYXJncztcbiAgICBpZiAoIXByb3RvY29sX2h0dHBfMS5IdHRwUmVxdWVzdC5pc0luc3RhbmNlKHJlcXVlc3QpKSB7XG4gICAgICAgIHJldHVybiBuZXh0KGFyZ3MpO1xuICAgIH1cbiAgICBjb25zdCB0cmFjZUlkSGVhZGVyID0gT2JqZWN0LmtleXMocmVxdWVzdC5oZWFkZXJzID8/IHt9KS5maW5kKChoKSA9PiBoLnRvTG93ZXJDYXNlKCkgPT09IFRSQUNFX0lEX0hFQURFUl9OQU1FLnRvTG93ZXJDYXNlKCkpID8/XG4gICAgICAgIFRSQUNFX0lEX0hFQURFUl9OQU1FO1xuICAgIGlmIChyZXF1ZXN0LmhlYWRlcnMuaGFzT3duUHJvcGVydHkodHJhY2VJZEhlYWRlcikpIHtcbiAgICAgICAgcmV0dXJuIG5leHQoYXJncyk7XG4gICAgfVxuICAgIGNvbnN0IGZ1bmN0aW9uTmFtZSA9IHByb2Nlc3MuZW52W0VOVl9MQU1CREFfRlVOQ1RJT05fTkFNRV07XG4gICAgY29uc3QgdHJhY2VJZEZyb21FbnYgPSBwcm9jZXNzLmVudltFTlZfVFJBQ0VfSURdO1xuICAgIGNvbnN0IGludm9rZVN0b3JlID0gYXdhaXQgbGFtYmRhX2ludm9rZV9zdG9yZV8xLkludm9rZVN0b3JlLmdldEluc3RhbmNlQXN5bmMoKTtcbiAgICBjb25zdCB0cmFjZUlkRnJvbUludm9rZVN0b3JlID0gaW52b2tlU3RvcmU/LmdldFhSYXlUcmFjZUlkKCk7XG4gICAgY29uc3QgdHJhY2VJZCA9IHRyYWNlSWRGcm9tSW52b2tlU3RvcmUgPz8gdHJhY2VJZEZyb21FbnY7XG4gICAgY29uc3Qgbm9uRW1wdHlTdHJpbmcgPSAoc3RyKSA9PiB0eXBlb2Ygc3RyID09PSBcInN0cmluZ1wiICYmIHN0ci5sZW5ndGggPiAwO1xuICAgIGlmIChub25FbXB0eVN0cmluZyhmdW5jdGlvbk5hbWUpICYmIG5vbkVtcHR5U3RyaW5nKHRyYWNlSWQpKSB7XG4gICAgICAgIHJlcXVlc3QuaGVhZGVyc1tUUkFDRV9JRF9IRUFERVJfTkFNRV0gPSB0cmFjZUlkO1xuICAgIH1cbiAgICByZXR1cm4gbmV4dCh7XG4gICAgICAgIC4uLmFyZ3MsXG4gICAgICAgIHJlcXVlc3QsXG4gICAgfSk7XG59O1xuZXhwb3J0cy5yZWN1cnNpb25EZXRlY3Rpb25NaWRkbGV3YXJlID0gcmVjdXJzaW9uRGV0ZWN0aW9uTWlkZGxld2FyZTtcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciByZWN1cnNpb25EZXRlY3Rpb25NaWRkbGV3YXJlID0gcmVxdWlyZSgnLi9yZWN1cnNpb25EZXRlY3Rpb25NaWRkbGV3YXJlJyk7XG5cbmNvbnN0IHJlY3Vyc2lvbkRldGVjdGlvbk1pZGRsZXdhcmVPcHRpb25zID0ge1xuICAgIHN0ZXA6IFwiYnVpbGRcIixcbiAgICB0YWdzOiBbXCJSRUNVUlNJT05fREVURUNUSU9OXCJdLFxuICAgIG5hbWU6IFwicmVjdXJzaW9uRGV0ZWN0aW9uTWlkZGxld2FyZVwiLFxuICAgIG92ZXJyaWRlOiB0cnVlLFxuICAgIHByaW9yaXR5OiBcImxvd1wiLFxufTtcblxuY29uc3QgZ2V0UmVjdXJzaW9uRGV0ZWN0aW9uUGx1Z2luID0gKG9wdGlvbnMpID0+ICh7XG4gICAgYXBwbHlUb1N0YWNrOiAoY2xpZW50U3RhY2spID0+IHtcbiAgICAgICAgY2xpZW50U3RhY2suYWRkKHJlY3Vyc2lvbkRldGVjdGlvbk1pZGRsZXdhcmUucmVjdXJzaW9uRGV0ZWN0aW9uTWlkZGxld2FyZSgpLCByZWN1cnNpb25EZXRlY3Rpb25NaWRkbGV3YXJlT3B0aW9ucyk7XG4gICAgfSxcbn0pO1xuXG5leHBvcnRzLmdldFJlY3Vyc2lvbkRldGVjdGlvblBsdWdpbiA9IGdldFJlY3Vyc2lvbkRldGVjdGlvblBsdWdpbjtcbk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyZWN1cnNpb25EZXRlY3Rpb25NaWRkbGV3YXJlLCAnX19wcm90b19fJykgJiZcbiAgICAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGV4cG9ydHMsICdfX3Byb3RvX18nKSAmJlxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19wcm90b19fJywge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICB2YWx1ZTogcmVjdXJzaW9uRGV0ZWN0aW9uTWlkZGxld2FyZVsnX19wcm90b19fJ11cbiAgICB9KTtcblxuT2JqZWN0LmtleXMocmVjdXJzaW9uRGV0ZWN0aW9uTWlkZGxld2FyZSkuZm9yRWFjaChmdW5jdGlvbiAoaykge1xuICAgIGlmIChrICE9PSAnZGVmYXVsdCcgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChleHBvcnRzLCBrKSkgZXhwb3J0c1trXSA9IHJlY3Vyc2lvbkRldGVjdGlvbk1pZGRsZXdhcmVba107XG59KTtcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciB1dGlsRW5kcG9pbnRzID0gcmVxdWlyZSgnQHNtaXRoeS91dGlsLWVuZHBvaW50cycpO1xudmFyIHVybFBhcnNlciA9IHJlcXVpcmUoJ0BzbWl0aHkvdXJsLXBhcnNlcicpO1xuXG5jb25zdCBpc1ZpcnR1YWxIb3N0YWJsZVMzQnVja2V0ID0gKHZhbHVlLCBhbGxvd1N1YkRvbWFpbnMgPSBmYWxzZSkgPT4ge1xuICAgIGlmIChhbGxvd1N1YkRvbWFpbnMpIHtcbiAgICAgICAgZm9yIChjb25zdCBsYWJlbCBvZiB2YWx1ZS5zcGxpdChcIi5cIikpIHtcbiAgICAgICAgICAgIGlmICghaXNWaXJ0dWFsSG9zdGFibGVTM0J1Y2tldChsYWJlbCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmICghdXRpbEVuZHBvaW50cy5pc1ZhbGlkSG9zdExhYmVsKHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmICh2YWx1ZS5sZW5ndGggPCAzIHx8IHZhbHVlLmxlbmd0aCA+IDYzKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKHZhbHVlICE9PSB2YWx1ZS50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKHV0aWxFbmRwb2ludHMuaXNJcEFkZHJlc3ModmFsdWUpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG59O1xuXG5jb25zdCBBUk5fREVMSU1JVEVSID0gXCI6XCI7XG5jb25zdCBSRVNPVVJDRV9ERUxJTUlURVIgPSBcIi9cIjtcbmNvbnN0IHBhcnNlQXJuID0gKHZhbHVlKSA9PiB7XG4gICAgY29uc3Qgc2VnbWVudHMgPSB2YWx1ZS5zcGxpdChBUk5fREVMSU1JVEVSKTtcbiAgICBpZiAoc2VnbWVudHMubGVuZ3RoIDwgNilcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgW2FybiwgcGFydGl0aW9uLCBzZXJ2aWNlLCByZWdpb24sIGFjY291bnRJZCwgLi4ucmVzb3VyY2VQYXRoXSA9IHNlZ21lbnRzO1xuICAgIGlmIChhcm4gIT09IFwiYXJuXCIgfHwgcGFydGl0aW9uID09PSBcIlwiIHx8IHNlcnZpY2UgPT09IFwiXCIgfHwgcmVzb3VyY2VQYXRoLmpvaW4oQVJOX0RFTElNSVRFUikgPT09IFwiXCIpXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIGNvbnN0IHJlc291cmNlSWQgPSByZXNvdXJjZVBhdGgubWFwKChyZXNvdXJjZSkgPT4gcmVzb3VyY2Uuc3BsaXQoUkVTT1VSQ0VfREVMSU1JVEVSKSkuZmxhdCgpO1xuICAgIHJldHVybiB7XG4gICAgICAgIHBhcnRpdGlvbixcbiAgICAgICAgc2VydmljZSxcbiAgICAgICAgcmVnaW9uLFxuICAgICAgICBhY2NvdW50SWQsXG4gICAgICAgIHJlc291cmNlSWQsXG4gICAgfTtcbn07XG5cbnZhciBwYXJ0aXRpb25zID0gW1xuXHR7XG5cdFx0aWQ6IFwiYXdzXCIsXG5cdFx0b3V0cHV0czoge1xuXHRcdFx0ZG5zU3VmZml4OiBcImFtYXpvbmF3cy5jb21cIixcblx0XHRcdGR1YWxTdGFja0Ruc1N1ZmZpeDogXCJhcGkuYXdzXCIsXG5cdFx0XHRpbXBsaWNpdEdsb2JhbFJlZ2lvbjogXCJ1cy1lYXN0LTFcIixcblx0XHRcdG5hbWU6IFwiYXdzXCIsXG5cdFx0XHRzdXBwb3J0c0R1YWxTdGFjazogdHJ1ZSxcblx0XHRcdHN1cHBvcnRzRklQUzogdHJ1ZVxuXHRcdH0sXG5cdFx0cmVnaW9uUmVnZXg6IFwiXih1c3xldXxhcHxzYXxjYXxtZXxhZnxpbHxteClcXFxcLVxcXFx3K1xcXFwtXFxcXGQrJFwiLFxuXHRcdHJlZ2lvbnM6IHtcblx0XHRcdFwiYWYtc291dGgtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFmcmljYSAoQ2FwZSBUb3duKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJhcC1lYXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBc2lhIFBhY2lmaWMgKEhvbmcgS29uZylcIlxuXHRcdFx0fSxcblx0XHRcdFwiYXAtZWFzdC0yXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChUYWlwZWkpXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLW5vcnRoZWFzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChUb2t5bylcIlxuXHRcdFx0fSxcblx0XHRcdFwiYXAtbm9ydGhlYXN0LTJcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBc2lhIFBhY2lmaWMgKFNlb3VsKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJhcC1ub3J0aGVhc3QtM1wiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFzaWEgUGFjaWZpYyAoT3Nha2EpXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLXNvdXRoLTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBc2lhIFBhY2lmaWMgKE11bWJhaSlcIlxuXHRcdFx0fSxcblx0XHRcdFwiYXAtc291dGgtMlwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFzaWEgUGFjaWZpYyAoSHlkZXJhYmFkKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJhcC1zb3V0aGVhc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFzaWEgUGFjaWZpYyAoU2luZ2Fwb3JlKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJhcC1zb3V0aGVhc3QtMlwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFzaWEgUGFjaWZpYyAoU3lkbmV5KVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJhcC1zb3V0aGVhc3QtM1wiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFzaWEgUGFjaWZpYyAoSmFrYXJ0YSlcIlxuXHRcdFx0fSxcblx0XHRcdFwiYXAtc291dGhlYXN0LTRcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBc2lhIFBhY2lmaWMgKE1lbGJvdXJuZSlcIlxuXHRcdFx0fSxcblx0XHRcdFwiYXAtc291dGhlYXN0LTVcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBc2lhIFBhY2lmaWMgKE1hbGF5c2lhKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJhcC1zb3V0aGVhc3QtNlwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFzaWEgUGFjaWZpYyAoTmV3IFplYWxhbmQpXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLXNvdXRoZWFzdC03XCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChUaGFpbGFuZClcIlxuXHRcdFx0fSxcblx0XHRcdFwiYXdzLWdsb2JhbFwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcImF3cyBnbG9iYWwgcmVnaW9uXCJcblx0XHRcdH0sXG5cdFx0XHRcImNhLWNlbnRyYWwtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkNhbmFkYSAoQ2VudHJhbClcIlxuXHRcdFx0fSxcblx0XHRcdFwiY2Etd2VzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQ2FuYWRhIFdlc3QgKENhbGdhcnkpXCJcblx0XHRcdH0sXG5cdFx0XHRcImV1LWNlbnRyYWwtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkV1cm9wZSAoRnJhbmtmdXJ0KVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJldS1jZW50cmFsLTJcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJFdXJvcGUgKFp1cmljaClcIlxuXHRcdFx0fSxcblx0XHRcdFwiZXUtbm9ydGgtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkV1cm9wZSAoU3RvY2tob2xtKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJldS1zb3V0aC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiRXVyb3BlIChNaWxhbilcIlxuXHRcdFx0fSxcblx0XHRcdFwiZXUtc291dGgtMlwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkV1cm9wZSAoU3BhaW4pXCJcblx0XHRcdH0sXG5cdFx0XHRcImV1LXdlc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkV1cm9wZSAoSXJlbGFuZClcIlxuXHRcdFx0fSxcblx0XHRcdFwiZXUtd2VzdC0yXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiRXVyb3BlIChMb25kb24pXCJcblx0XHRcdH0sXG5cdFx0XHRcImV1LXdlc3QtM1wiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkV1cm9wZSAoUGFyaXMpXCJcblx0XHRcdH0sXG5cdFx0XHRcImlsLWNlbnRyYWwtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIklzcmFlbCAoVGVsIEF2aXYpXCJcblx0XHRcdH0sXG5cdFx0XHRcIm1lLWNlbnRyYWwtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIk1pZGRsZSBFYXN0IChVQUUpXCJcblx0XHRcdH0sXG5cdFx0XHRcIm1lLXNvdXRoLTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJNaWRkbGUgRWFzdCAoQmFocmFpbilcIlxuXHRcdFx0fSxcblx0XHRcdFwibXgtY2VudHJhbC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiTWV4aWNvIChDZW50cmFsKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJzYS1lYXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJTb3V0aCBBbWVyaWNhIChTYW8gUGF1bG8pXCJcblx0XHRcdH0sXG5cdFx0XHRcInVzLWVhc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIlVTIEVhc3QgKE4uIFZpcmdpbmlhKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJ1cy1lYXN0LTJcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJVUyBFYXN0IChPaGlvKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJ1cy13ZXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJVUyBXZXN0IChOLiBDYWxpZm9ybmlhKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJ1cy13ZXN0LTJcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJVUyBXZXN0IChPcmVnb24pXCJcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdHtcblx0XHRpZDogXCJhd3MtY25cIixcblx0XHRvdXRwdXRzOiB7XG5cdFx0XHRkbnNTdWZmaXg6IFwiYW1hem9uYXdzLmNvbS5jblwiLFxuXHRcdFx0ZHVhbFN0YWNrRG5zU3VmZml4OiBcImFwaS5hbWF6b253ZWJzZXJ2aWNlcy5jb20uY25cIixcblx0XHRcdGltcGxpY2l0R2xvYmFsUmVnaW9uOiBcImNuLW5vcnRod2VzdC0xXCIsXG5cdFx0XHRuYW1lOiBcImF3cy1jblwiLFxuXHRcdFx0c3VwcG9ydHNEdWFsU3RhY2s6IHRydWUsXG5cdFx0XHRzdXBwb3J0c0ZJUFM6IHRydWVcblx0XHR9LFxuXHRcdHJlZ2lvblJlZ2V4OiBcIl5jblxcXFwtXFxcXHcrXFxcXC1cXFxcZCskXCIsXG5cdFx0cmVnaW9uczoge1xuXHRcdFx0XCJhd3MtY24tZ2xvYmFsXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiYXdzLWNuIGdsb2JhbCByZWdpb25cIlxuXHRcdFx0fSxcblx0XHRcdFwiY24tbm9ydGgtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkNoaW5hIChCZWlqaW5nKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJjbi1ub3J0aHdlc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkNoaW5hIChOaW5neGlhKVwiXG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXHR7XG5cdFx0aWQ6IFwiYXdzLWV1c2NcIixcblx0XHRvdXRwdXRzOiB7XG5cdFx0XHRkbnNTdWZmaXg6IFwiYW1hem9uYXdzLmV1XCIsXG5cdFx0XHRkdWFsU3RhY2tEbnNTdWZmaXg6IFwiYXBpLmFtYXpvbndlYnNlcnZpY2VzLmV1XCIsXG5cdFx0XHRpbXBsaWNpdEdsb2JhbFJlZ2lvbjogXCJldXNjLWRlLWVhc3QtMVwiLFxuXHRcdFx0bmFtZTogXCJhd3MtZXVzY1wiLFxuXHRcdFx0c3VwcG9ydHNEdWFsU3RhY2s6IHRydWUsXG5cdFx0XHRzdXBwb3J0c0ZJUFM6IHRydWVcblx0XHR9LFxuXHRcdHJlZ2lvblJlZ2V4OiBcIl5ldXNjXFxcXC0oZGUpXFxcXC1cXFxcdytcXFxcLVxcXFxkKyRcIixcblx0XHRyZWdpb25zOiB7XG5cdFx0XHRcImV1c2MtZGUtZWFzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQVdTIEV1cm9wZWFuIFNvdmVyZWlnbiBDbG91ZCAoR2VybWFueSlcIlxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0e1xuXHRcdGlkOiBcImF3cy1pc29cIixcblx0XHRvdXRwdXRzOiB7XG5cdFx0XHRkbnNTdWZmaXg6IFwiYzJzLmljLmdvdlwiLFxuXHRcdFx0ZHVhbFN0YWNrRG5zU3VmZml4OiBcImFwaS5hd3MuaWMuZ292XCIsXG5cdFx0XHRpbXBsaWNpdEdsb2JhbFJlZ2lvbjogXCJ1cy1pc28tZWFzdC0xXCIsXG5cdFx0XHRuYW1lOiBcImF3cy1pc29cIixcblx0XHRcdHN1cHBvcnRzRHVhbFN0YWNrOiB0cnVlLFxuXHRcdFx0c3VwcG9ydHNGSVBTOiB0cnVlXG5cdFx0fSxcblx0XHRyZWdpb25SZWdleDogXCJedXNcXFxcLWlzb1xcXFwtXFxcXHcrXFxcXC1cXFxcZCskXCIsXG5cdFx0cmVnaW9uczoge1xuXHRcdFx0XCJhd3MtaXNvLWdsb2JhbFwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcImF3cy1pc28gZ2xvYmFsIHJlZ2lvblwiXG5cdFx0XHR9LFxuXHRcdFx0XCJ1cy1pc28tZWFzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiVVMgSVNPIEVhc3RcIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtaXNvLXdlc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIlVTIElTTyBXRVNUXCJcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdHtcblx0XHRpZDogXCJhd3MtaXNvLWJcIixcblx0XHRvdXRwdXRzOiB7XG5cdFx0XHRkbnNTdWZmaXg6IFwic2Mycy5zZ292LmdvdlwiLFxuXHRcdFx0ZHVhbFN0YWNrRG5zU3VmZml4OiBcImFwaS5hd3Muc2Nsb3VkXCIsXG5cdFx0XHRpbXBsaWNpdEdsb2JhbFJlZ2lvbjogXCJ1cy1pc29iLWVhc3QtMVwiLFxuXHRcdFx0bmFtZTogXCJhd3MtaXNvLWJcIixcblx0XHRcdHN1cHBvcnRzRHVhbFN0YWNrOiB0cnVlLFxuXHRcdFx0c3VwcG9ydHNGSVBTOiB0cnVlXG5cdFx0fSxcblx0XHRyZWdpb25SZWdleDogXCJedXNcXFxcLWlzb2JcXFxcLVxcXFx3K1xcXFwtXFxcXGQrJFwiLFxuXHRcdHJlZ2lvbnM6IHtcblx0XHRcdFwiYXdzLWlzby1iLWdsb2JhbFwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcImF3cy1pc28tYiBnbG9iYWwgcmVnaW9uXCJcblx0XHRcdH0sXG5cdFx0XHRcInVzLWlzb2ItZWFzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiVVMgSVNPQiBFYXN0IChPaGlvKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJ1cy1pc29iLXdlc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIlVTIElTT0IgV2VzdFwiXG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXHR7XG5cdFx0aWQ6IFwiYXdzLWlzby1lXCIsXG5cdFx0b3V0cHV0czoge1xuXHRcdFx0ZG5zU3VmZml4OiBcImNsb3VkLmFkYy1lLnVrXCIsXG5cdFx0XHRkdWFsU3RhY2tEbnNTdWZmaXg6IFwiYXBpLmNsb3VkLWF3cy5hZGMtZS51a1wiLFxuXHRcdFx0aW1wbGljaXRHbG9iYWxSZWdpb246IFwiZXUtaXNvZS13ZXN0LTFcIixcblx0XHRcdG5hbWU6IFwiYXdzLWlzby1lXCIsXG5cdFx0XHRzdXBwb3J0c0R1YWxTdGFjazogdHJ1ZSxcblx0XHRcdHN1cHBvcnRzRklQUzogdHJ1ZVxuXHRcdH0sXG5cdFx0cmVnaW9uUmVnZXg6IFwiXmV1XFxcXC1pc29lXFxcXC1cXFxcdytcXFxcLVxcXFxkKyRcIixcblx0XHRyZWdpb25zOiB7XG5cdFx0XHRcImF3cy1pc28tZS1nbG9iYWxcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJhd3MtaXNvLWUgZ2xvYmFsIHJlZ2lvblwiXG5cdFx0XHR9LFxuXHRcdFx0XCJldS1pc29lLXdlc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkVVIElTT0UgV2VzdFwiXG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXHR7XG5cdFx0aWQ6IFwiYXdzLWlzby1mXCIsXG5cdFx0b3V0cHV0czoge1xuXHRcdFx0ZG5zU3VmZml4OiBcImNzcC5oY2kuaWMuZ292XCIsXG5cdFx0XHRkdWFsU3RhY2tEbnNTdWZmaXg6IFwiYXBpLmF3cy5oY2kuaWMuZ292XCIsXG5cdFx0XHRpbXBsaWNpdEdsb2JhbFJlZ2lvbjogXCJ1cy1pc29mLXNvdXRoLTFcIixcblx0XHRcdG5hbWU6IFwiYXdzLWlzby1mXCIsXG5cdFx0XHRzdXBwb3J0c0R1YWxTdGFjazogdHJ1ZSxcblx0XHRcdHN1cHBvcnRzRklQUzogdHJ1ZVxuXHRcdH0sXG5cdFx0cmVnaW9uUmVnZXg6IFwiXnVzXFxcXC1pc29mXFxcXC1cXFxcdytcXFxcLVxcXFxkKyRcIixcblx0XHRyZWdpb25zOiB7XG5cdFx0XHRcImF3cy1pc28tZi1nbG9iYWxcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJhd3MtaXNvLWYgZ2xvYmFsIHJlZ2lvblwiXG5cdFx0XHR9LFxuXHRcdFx0XCJ1cy1pc29mLWVhc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIlVTIElTT0YgRUFTVFwiXG5cdFx0XHR9LFxuXHRcdFx0XCJ1cy1pc29mLXNvdXRoLTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJVUyBJU09GIFNPVVRIXCJcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdHtcblx0XHRpZDogXCJhd3MtdXMtZ292XCIsXG5cdFx0b3V0cHV0czoge1xuXHRcdFx0ZG5zU3VmZml4OiBcImFtYXpvbmF3cy5jb21cIixcblx0XHRcdGR1YWxTdGFja0Ruc1N1ZmZpeDogXCJhcGkuYXdzXCIsXG5cdFx0XHRpbXBsaWNpdEdsb2JhbFJlZ2lvbjogXCJ1cy1nb3Ytd2VzdC0xXCIsXG5cdFx0XHRuYW1lOiBcImF3cy11cy1nb3ZcIixcblx0XHRcdHN1cHBvcnRzRHVhbFN0YWNrOiB0cnVlLFxuXHRcdFx0c3VwcG9ydHNGSVBTOiB0cnVlXG5cdFx0fSxcblx0XHRyZWdpb25SZWdleDogXCJedXNcXFxcLWdvdlxcXFwtXFxcXHcrXFxcXC1cXFxcZCskXCIsXG5cdFx0cmVnaW9uczoge1xuXHRcdFx0XCJhd3MtdXMtZ292LWdsb2JhbFwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcImF3cy11cy1nb3YgZ2xvYmFsIHJlZ2lvblwiXG5cdFx0XHR9LFxuXHRcdFx0XCJ1cy1nb3YtZWFzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQVdTIEdvdkNsb3VkIChVUy1FYXN0KVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJ1cy1nb3Ytd2VzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQVdTIEdvdkNsb3VkIChVUy1XZXN0KVwiXG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5dO1xudmFyIHZlcnNpb24gPSBcIjEuMVwiO1xudmFyIHBhcnRpdGlvbnNJbmZvID0ge1xuXHRwYXJ0aXRpb25zOiBwYXJ0aXRpb25zLFxuXHR2ZXJzaW9uOiB2ZXJzaW9uXG59O1xuXG5sZXQgc2VsZWN0ZWRQYXJ0aXRpb25zSW5mbyA9IHBhcnRpdGlvbnNJbmZvO1xubGV0IHNlbGVjdGVkVXNlckFnZW50UHJlZml4ID0gXCJcIjtcbmNvbnN0IHBhcnRpdGlvbiA9ICh2YWx1ZSkgPT4ge1xuICAgIGNvbnN0IHsgcGFydGl0aW9ucyB9ID0gc2VsZWN0ZWRQYXJ0aXRpb25zSW5mbztcbiAgICBmb3IgKGNvbnN0IHBhcnRpdGlvbiBvZiBwYXJ0aXRpb25zKSB7XG4gICAgICAgIGNvbnN0IHsgcmVnaW9ucywgb3V0cHV0cyB9ID0gcGFydGl0aW9uO1xuICAgICAgICBmb3IgKGNvbnN0IFtyZWdpb24sIHJlZ2lvbkRhdGFdIG9mIE9iamVjdC5lbnRyaWVzKHJlZ2lvbnMpKSB7XG4gICAgICAgICAgICBpZiAocmVnaW9uID09PSB2YWx1ZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIC4uLm91dHB1dHMsXG4gICAgICAgICAgICAgICAgICAgIC4uLnJlZ2lvbkRhdGEsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBmb3IgKGNvbnN0IHBhcnRpdGlvbiBvZiBwYXJ0aXRpb25zKSB7XG4gICAgICAgIGNvbnN0IHsgcmVnaW9uUmVnZXgsIG91dHB1dHMgfSA9IHBhcnRpdGlvbjtcbiAgICAgICAgaWYgKG5ldyBSZWdFeHAocmVnaW9uUmVnZXgpLnRlc3QodmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIC4uLm91dHB1dHMsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfVxuICAgIGNvbnN0IERFRkFVTFRfUEFSVElUSU9OID0gcGFydGl0aW9ucy5maW5kKChwYXJ0aXRpb24pID0+IHBhcnRpdGlvbi5pZCA9PT0gXCJhd3NcIik7XG4gICAgaWYgKCFERUZBVUxUX1BBUlRJVElPTikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJQcm92aWRlZCByZWdpb24gd2FzIG5vdCBmb3VuZCBpbiB0aGUgcGFydGl0aW9uIGFycmF5IG9yIHJlZ2V4LFwiICtcbiAgICAgICAgICAgIFwiIGFuZCBkZWZhdWx0IHBhcnRpdGlvbiB3aXRoIGlkICdhd3MnIGRvZXNuJ3QgZXhpc3QuXCIpO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICAuLi5ERUZBVUxUX1BBUlRJVElPTi5vdXRwdXRzLFxuICAgIH07XG59O1xuY29uc3Qgc2V0UGFydGl0aW9uSW5mbyA9IChwYXJ0aXRpb25zSW5mbywgdXNlckFnZW50UHJlZml4ID0gXCJcIikgPT4ge1xuICAgIHNlbGVjdGVkUGFydGl0aW9uc0luZm8gPSBwYXJ0aXRpb25zSW5mbztcbiAgICBzZWxlY3RlZFVzZXJBZ2VudFByZWZpeCA9IHVzZXJBZ2VudFByZWZpeDtcbn07XG5jb25zdCB1c2VEZWZhdWx0UGFydGl0aW9uSW5mbyA9ICgpID0+IHtcbiAgICBzZXRQYXJ0aXRpb25JbmZvKHBhcnRpdGlvbnNJbmZvLCBcIlwiKTtcbn07XG5jb25zdCBnZXRVc2VyQWdlbnRQcmVmaXggPSAoKSA9PiBzZWxlY3RlZFVzZXJBZ2VudFByZWZpeDtcblxuY29uc3QgYXdzRW5kcG9pbnRGdW5jdGlvbnMgPSB7XG4gICAgaXNWaXJ0dWFsSG9zdGFibGVTM0J1Y2tldDogaXNWaXJ0dWFsSG9zdGFibGVTM0J1Y2tldCxcbiAgICBwYXJzZUFybjogcGFyc2VBcm4sXG4gICAgcGFydGl0aW9uOiBwYXJ0aXRpb24sXG59O1xudXRpbEVuZHBvaW50cy5jdXN0b21FbmRwb2ludEZ1bmN0aW9ucy5hd3MgPSBhd3NFbmRwb2ludEZ1bmN0aW9ucztcblxuY29uc3QgcmVzb2x2ZURlZmF1bHRBd3NSZWdpb25hbEVuZHBvaW50c0NvbmZpZyA9IChpbnB1dCkgPT4ge1xuICAgIGlmICh0eXBlb2YgaW5wdXQuZW5kcG9pbnRQcm92aWRlciAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkBhd3Mtc2RrL3V0aWwtZW5kcG9pbnQgLSBlbmRwb2ludFByb3ZpZGVyIGFuZCBlbmRwb2ludCBtaXNzaW5nIGluIGNvbmZpZyBmb3IgdGhpcyBjbGllbnQuXCIpO1xuICAgIH1cbiAgICBjb25zdCB7IGVuZHBvaW50IH0gPSBpbnB1dDtcbiAgICBpZiAoZW5kcG9pbnQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBpbnB1dC5lbmRwb2ludCA9IGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB0b0VuZHBvaW50VjEoaW5wdXQuZW5kcG9pbnRQcm92aWRlcih7XG4gICAgICAgICAgICAgICAgUmVnaW9uOiB0eXBlb2YgaW5wdXQucmVnaW9uID09PSBcImZ1bmN0aW9uXCIgPyBhd2FpdCBpbnB1dC5yZWdpb24oKSA6IGlucHV0LnJlZ2lvbixcbiAgICAgICAgICAgICAgICBVc2VEdWFsU3RhY2s6IHR5cGVvZiBpbnB1dC51c2VEdWFsc3RhY2tFbmRwb2ludCA9PT0gXCJmdW5jdGlvblwiXG4gICAgICAgICAgICAgICAgICAgID8gYXdhaXQgaW5wdXQudXNlRHVhbHN0YWNrRW5kcG9pbnQoKVxuICAgICAgICAgICAgICAgICAgICA6IGlucHV0LnVzZUR1YWxzdGFja0VuZHBvaW50LFxuICAgICAgICAgICAgICAgIFVzZUZJUFM6IHR5cGVvZiBpbnB1dC51c2VGaXBzRW5kcG9pbnQgPT09IFwiZnVuY3Rpb25cIiA/IGF3YWl0IGlucHV0LnVzZUZpcHNFbmRwb2ludCgpIDogaW5wdXQudXNlRmlwc0VuZHBvaW50LFxuICAgICAgICAgICAgICAgIEVuZHBvaW50OiB1bmRlZmluZWQsXG4gICAgICAgICAgICB9LCB7IGxvZ2dlcjogaW5wdXQubG9nZ2VyIH0pKTtcbiAgICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIGlucHV0O1xufTtcbmNvbnN0IHRvRW5kcG9pbnRWMSA9IChlbmRwb2ludCkgPT4gdXJsUGFyc2VyLnBhcnNlVXJsKGVuZHBvaW50LnVybCk7XG5cbmV4cG9ydHMuRW5kcG9pbnRFcnJvciA9IHV0aWxFbmRwb2ludHMuRW5kcG9pbnRFcnJvcjtcbmV4cG9ydHMuaXNJcEFkZHJlc3MgPSB1dGlsRW5kcG9pbnRzLmlzSXBBZGRyZXNzO1xuZXhwb3J0cy5yZXNvbHZlRW5kcG9pbnQgPSB1dGlsRW5kcG9pbnRzLnJlc29sdmVFbmRwb2ludDtcbmV4cG9ydHMuYXdzRW5kcG9pbnRGdW5jdGlvbnMgPSBhd3NFbmRwb2ludEZ1bmN0aW9ucztcbmV4cG9ydHMuZ2V0VXNlckFnZW50UHJlZml4ID0gZ2V0VXNlckFnZW50UHJlZml4O1xuZXhwb3J0cy5wYXJ0aXRpb24gPSBwYXJ0aXRpb247XG5leHBvcnRzLnJlc29sdmVEZWZhdWx0QXdzUmVnaW9uYWxFbmRwb2ludHNDb25maWcgPSByZXNvbHZlRGVmYXVsdEF3c1JlZ2lvbmFsRW5kcG9pbnRzQ29uZmlnO1xuZXhwb3J0cy5zZXRQYXJ0aXRpb25JbmZvID0gc2V0UGFydGl0aW9uSW5mbztcbmV4cG9ydHMudG9FbmRwb2ludFYxID0gdG9FbmRwb2ludFYxO1xuZXhwb3J0cy51c2VEZWZhdWx0UGFydGl0aW9uSW5mbyA9IHVzZURlZmF1bHRQYXJ0aXRpb25JbmZvO1xuIiwgImV4cG9ydCBjb25zdCBzdGF0ZSA9IHtcbiAgICB3YXJuaW5nRW1pdHRlZDogZmFsc2UsXG59O1xuZXhwb3J0IGNvbnN0IGVtaXRXYXJuaW5nSWZVbnN1cHBvcnRlZFZlcnNpb24gPSAodmVyc2lvbikgPT4ge1xuICAgIGlmICh2ZXJzaW9uICYmICFzdGF0ZS53YXJuaW5nRW1pdHRlZCkge1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuQVdTX1NES19KU19OT0RFX1ZFUlNJT05fU1VQUE9SVF9XQVJOSU5HX0RJU0FCTEVEID09PSBcInRydWVcIikge1xuICAgICAgICAgICAgc3RhdGUud2FybmluZ0VtaXR0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHVzZXJNYWpvclZlcnNpb24gPSBwYXJzZUludCh2ZXJzaW9uLnN1YnN0cmluZygxLCB2ZXJzaW9uLmluZGV4T2YoXCIuXCIpKSk7XG4gICAgICAgIGNvbnN0IHZ2ID0gMjI7XG4gICAgICAgIGlmICh1c2VyTWFqb3JWZXJzaW9uIDwgdnYpIHtcbiAgICAgICAgICAgIHN0YXRlLndhcm5pbmdFbWl0dGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHByb2Nlc3MuZW1pdFdhcm5pbmcoYE5vZGVWZXJzaW9uU3VwcG9ydFdhcm5pbmc6IFRoZSBBV1MgU0RLIGZvciBKYXZhU2NyaXB0ICh2MylcbnZlcnNpb25zIHB1Ymxpc2hlZCBhZnRlciB0aGUgZmlyc3Qgd2VlayBvZiBKYW51YXJ5IDIwMjdcbndpbGwgcmVxdWlyZSBub2RlID49JHt2dn0uIFlvdSBhcmUgcnVubmluZyBub2RlICR7dmVyc2lvbn0uXG5cblRvIGNvbnRpbnVlIHJlY2VpdmluZyB1cGRhdGVzIHRvIEFXUyBzZXJ2aWNlcywgYnVnIGZpeGVzLFxuYW5kIHNlY3VyaXR5IHVwZGF0ZXMgcGxlYXNlIHVwZ3JhZGUgdG8gbm9kZSA+PSR7dnZ9LlxuXG5Nb3JlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBhdDogaHR0cHM6Ly9hLmNvL2M4OTVKRnBgKTtcbiAgICAgICAgfVxuICAgIH1cbn07XG4iLCAiZXhwb3J0IGNvbnN0IGxvbmdQb2xsTWlkZGxld2FyZSA9ICgpID0+IChuZXh0LCBjb250ZXh0KSA9PiBhc3luYyAoYXJncykgPT4ge1xuICAgIGNvbnRleHQuX19yZXRyeUxvbmdQb2xsID0gdHJ1ZTtcbiAgICByZXR1cm4gbmV4dChhcmdzKTtcbn07XG5leHBvcnQgY29uc3QgbG9uZ1BvbGxNaWRkbGV3YXJlT3B0aW9ucyA9IHtcbiAgICBuYW1lOiBcImxvbmdQb2xsTWlkZGxld2FyZVwiLFxuICAgIHRhZ3M6IFtcIlJFVFJZXCJdLFxuICAgIHN0ZXA6IFwiaW5pdGlhbGl6ZVwiLFxuICAgIG92ZXJyaWRlOiB0cnVlLFxufTtcbmV4cG9ydCBjb25zdCBnZXRMb25nUG9sbFBsdWdpbiA9IChvcHRpb25zKSA9PiAoe1xuICAgIGFwcGx5VG9TdGFjazogKGNsaWVudFN0YWNrKSA9PiB7XG4gICAgICAgIGNsaWVudFN0YWNrLmFkZChsb25nUG9sbE1pZGRsZXdhcmUoKSwgbG9uZ1BvbGxNaWRkbGV3YXJlT3B0aW9ucyk7XG4gICAgfSxcbn0pO1xuIiwgImV4cG9ydCBmdW5jdGlvbiBzZXRDcmVkZW50aWFsRmVhdHVyZShjcmVkZW50aWFscywgZmVhdHVyZSwgdmFsdWUpIHtcbiAgICBpZiAoIWNyZWRlbnRpYWxzLiRzb3VyY2UpIHtcbiAgICAgICAgY3JlZGVudGlhbHMuJHNvdXJjZSA9IHt9O1xuICAgIH1cbiAgICBjcmVkZW50aWFscy4kc291cmNlW2ZlYXR1cmVdID0gdmFsdWU7XG4gICAgcmV0dXJuIGNyZWRlbnRpYWxzO1xufVxuIiwgImltcG9ydCB7IFJldHJ5IH0gZnJvbSBcIkBzbWl0aHkvdXRpbC1yZXRyeVwiO1xuUmV0cnkudjIwMjYgfHw9IHR5cGVvZiBwcm9jZXNzID09PSBcIm9iamVjdFwiICYmIHByb2Nlc3MuZW52Py5BV1NfTkVXX1JFVFJJRVNfMjAyNiA9PT0gXCJ0cnVlXCI7XG5leHBvcnQgZnVuY3Rpb24gc2V0RmVhdHVyZShjb250ZXh0LCBmZWF0dXJlLCB2YWx1ZSkge1xuICAgIGlmICghY29udGV4dC5fX2F3c19zZGtfY29udGV4dCkge1xuICAgICAgICBjb250ZXh0Ll9fYXdzX3Nka19jb250ZXh0ID0ge1xuICAgICAgICAgICAgZmVhdHVyZXM6IHt9LFxuICAgICAgICB9O1xuICAgIH1cbiAgICBlbHNlIGlmICghY29udGV4dC5fX2F3c19zZGtfY29udGV4dC5mZWF0dXJlcykge1xuICAgICAgICBjb250ZXh0Ll9fYXdzX3Nka19jb250ZXh0LmZlYXR1cmVzID0ge307XG4gICAgfVxuICAgIGNvbnRleHQuX19hd3Nfc2RrX2NvbnRleHQuZmVhdHVyZXNbZmVhdHVyZV0gPSB2YWx1ZTtcbn1cbiIsICJleHBvcnQgZnVuY3Rpb24gc2V0VG9rZW5GZWF0dXJlKHRva2VuLCBmZWF0dXJlLCB2YWx1ZSkge1xuICAgIGlmICghdG9rZW4uJHNvdXJjZSkge1xuICAgICAgICB0b2tlbi4kc291cmNlID0ge307XG4gICAgfVxuICAgIHRva2VuLiRzb3VyY2VbZmVhdHVyZV0gPSB2YWx1ZTtcbiAgICByZXR1cm4gdG9rZW47XG59XG4iLCAiZXhwb3J0ICogZnJvbSBcIi4vZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvblwiO1xuZXhwb3J0IHsgZ2V0TG9uZ1BvbGxQbHVnaW4gfSBmcm9tIFwiLi9sb25nUG9sbE1pZGRsZXdhcmVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NldENyZWRlbnRpYWxGZWF0dXJlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zZXRGZWF0dXJlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zZXRUb2tlbkZlYXR1cmVcIjtcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBjb3JlID0gcmVxdWlyZSgnQHNtaXRoeS9jb3JlJyk7XG52YXIgdXRpbEVuZHBvaW50cyA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL3V0aWwtZW5kcG9pbnRzJyk7XG52YXIgcHJvdG9jb2xIdHRwID0gcmVxdWlyZSgnQHNtaXRoeS9wcm90b2NvbC1odHRwJyk7XG52YXIgY2xpZW50ID0gcmVxdWlyZSgnQGF3cy1zZGsvY29yZS9jbGllbnQnKTtcbnZhciB1dGlsUmV0cnkgPSByZXF1aXJlKCdAc21pdGh5L3V0aWwtcmV0cnknKTtcblxuY29uc3QgREVGQVVMVF9VQV9BUFBfSUQgPSB1bmRlZmluZWQ7XG5mdW5jdGlvbiBpc1ZhbGlkVXNlckFnZW50QXBwSWQoYXBwSWQpIHtcbiAgICBpZiAoYXBwSWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIHR5cGVvZiBhcHBJZCA9PT0gXCJzdHJpbmdcIiAmJiBhcHBJZC5sZW5ndGggPD0gNTA7XG59XG5mdW5jdGlvbiByZXNvbHZlVXNlckFnZW50Q29uZmlnKGlucHV0KSB7XG4gICAgY29uc3Qgbm9ybWFsaXplZEFwcElkUHJvdmlkZXIgPSBjb3JlLm5vcm1hbGl6ZVByb3ZpZGVyKGlucHV0LnVzZXJBZ2VudEFwcElkID8/IERFRkFVTFRfVUFfQVBQX0lEKTtcbiAgICBjb25zdCB7IGN1c3RvbVVzZXJBZ2VudCB9ID0gaW5wdXQ7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oaW5wdXQsIHtcbiAgICAgICAgY3VzdG9tVXNlckFnZW50OiB0eXBlb2YgY3VzdG9tVXNlckFnZW50ID09PSBcInN0cmluZ1wiID8gW1tjdXN0b21Vc2VyQWdlbnRdXSA6IGN1c3RvbVVzZXJBZ2VudCxcbiAgICAgICAgdXNlckFnZW50QXBwSWQ6IGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGFwcElkID0gYXdhaXQgbm9ybWFsaXplZEFwcElkUHJvdmlkZXIoKTtcbiAgICAgICAgICAgIGlmICghaXNWYWxpZFVzZXJBZ2VudEFwcElkKGFwcElkKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxvZ2dlciA9IGlucHV0LmxvZ2dlcj8uY29uc3RydWN0b3I/Lm5hbWUgPT09IFwiTm9PcExvZ2dlclwiIHx8ICFpbnB1dC5sb2dnZXIgPyBjb25zb2xlIDogaW5wdXQubG9nZ2VyO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgYXBwSWQgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgbG9nZ2VyPy53YXJuKFwidXNlckFnZW50QXBwSWQgbXVzdCBiZSBhIHN0cmluZyBvciB1bmRlZmluZWQuXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChhcHBJZC5sZW5ndGggPiA1MCkge1xuICAgICAgICAgICAgICAgICAgICBsb2dnZXI/Lndhcm4oXCJUaGUgcHJvdmlkZWQgdXNlckFnZW50QXBwSWQgZXhjZWVkcyB0aGUgbWF4aW11bSBsZW5ndGggb2YgNTAgY2hhcmFjdGVycy5cIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGFwcElkO1xuICAgICAgICB9LFxuICAgIH0pO1xufVxuXG5jb25zdCBBQ0NPVU5UX0lEX0VORFBPSU5UX1JFR0VYID0gL1xcZHsxMn1cXC5kZGIvO1xuYXN5bmMgZnVuY3Rpb24gY2hlY2tGZWF0dXJlcyhjb250ZXh0LCBjb25maWcsIGFyZ3MpIHtcbiAgICBjb25zdCByZXF1ZXN0ID0gYXJncy5yZXF1ZXN0O1xuICAgIGlmIChyZXF1ZXN0Py5oZWFkZXJzPy5bXCJzbWl0aHktcHJvdG9jb2xcIl0gPT09IFwicnBjLXYyLWNib3JcIikge1xuICAgICAgICBjbGllbnQuc2V0RmVhdHVyZShjb250ZXh0LCBcIlBST1RPQ09MX1JQQ19WMl9DQk9SXCIsIFwiTVwiKTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBjb25maWcucmV0cnlTdHJhdGVneSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIGNvbnN0IHJldHJ5U3RyYXRlZ3kgPSBhd2FpdCBjb25maWcucmV0cnlTdHJhdGVneSgpO1xuICAgICAgICBpZiAodHlwZW9mIHJldHJ5U3RyYXRlZ3kubW9kZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgc3dpdGNoIChyZXRyeVN0cmF0ZWd5Lm1vZGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIHV0aWxSZXRyeS5SRVRSWV9NT0RFUy5BREFQVElWRTpcbiAgICAgICAgICAgICAgICAgICAgY2xpZW50LnNldEZlYXR1cmUoY29udGV4dCwgXCJSRVRSWV9NT0RFX0FEQVBUSVZFXCIsIFwiRlwiKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSB1dGlsUmV0cnkuUkVUUllfTU9ERVMuU1RBTkRBUkQ6XG4gICAgICAgICAgICAgICAgICAgIGNsaWVudC5zZXRGZWF0dXJlKGNvbnRleHQsIFwiUkVUUllfTU9ERV9TVEFOREFSRFwiLCBcIkVcIik7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGlmICh0eXBlb2YgY29uZmlnLmFjY291bnRJZEVuZHBvaW50TW9kZSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50VjIgPSBjb250ZXh0LmVuZHBvaW50VjI7XG4gICAgICAgIGlmIChTdHJpbmcoZW5kcG9pbnRWMj8udXJsPy5ob3N0bmFtZSkubWF0Y2goQUNDT1VOVF9JRF9FTkRQT0lOVF9SRUdFWCkpIHtcbiAgICAgICAgICAgIGNsaWVudC5zZXRGZWF0dXJlKGNvbnRleHQsIFwiQUNDT1VOVF9JRF9FTkRQT0lOVFwiLCBcIk9cIik7XG4gICAgICAgIH1cbiAgICAgICAgc3dpdGNoIChhd2FpdCBjb25maWcuYWNjb3VudElkRW5kcG9pbnRNb2RlPy4oKSkge1xuICAgICAgICAgICAgY2FzZSBcImRpc2FibGVkXCI6XG4gICAgICAgICAgICAgICAgY2xpZW50LnNldEZlYXR1cmUoY29udGV4dCwgXCJBQ0NPVU5UX0lEX01PREVfRElTQUJMRURcIiwgXCJRXCIpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBcInByZWZlcnJlZFwiOlxuICAgICAgICAgICAgICAgIGNsaWVudC5zZXRGZWF0dXJlKGNvbnRleHQsIFwiQUNDT1VOVF9JRF9NT0RFX1BSRUZFUlJFRFwiLCBcIlBcIik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFwicmVxdWlyZWRcIjpcbiAgICAgICAgICAgICAgICBjbGllbnQuc2V0RmVhdHVyZShjb250ZXh0LCBcIkFDQ09VTlRfSURfTU9ERV9SRVFVSVJFRFwiLCBcIlJcIik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgaWRlbnRpdHkgPSBjb250ZXh0Ll9fc21pdGh5X2NvbnRleHQ/LnNlbGVjdGVkSHR0cEF1dGhTY2hlbWU/LmlkZW50aXR5O1xuICAgIGlmIChpZGVudGl0eT8uJHNvdXJjZSkge1xuICAgICAgICBjb25zdCBjcmVkZW50aWFscyA9IGlkZW50aXR5O1xuICAgICAgICBpZiAoY3JlZGVudGlhbHMuYWNjb3VudElkKSB7XG4gICAgICAgICAgICBjbGllbnQuc2V0RmVhdHVyZShjb250ZXh0LCBcIlJFU09MVkVEX0FDQ09VTlRfSURcIiwgXCJUXCIpO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKGNyZWRlbnRpYWxzLiRzb3VyY2UgPz8ge30pKSB7XG4gICAgICAgICAgICBjbGllbnQuc2V0RmVhdHVyZShjb250ZXh0LCBrZXksIHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuY29uc3QgVVNFUl9BR0VOVCA9IFwidXNlci1hZ2VudFwiO1xuY29uc3QgWF9BTVpfVVNFUl9BR0VOVCA9IFwieC1hbXotdXNlci1hZ2VudFwiO1xuY29uc3QgU1BBQ0UgPSBcIiBcIjtcbmNvbnN0IFVBX05BTUVfU0VQQVJBVE9SID0gXCIvXCI7XG5jb25zdCBVQV9OQU1FX0VTQ0FQRV9SRUdFWCA9IC9bXiEkJSYnKitcXC0uXl9gfH5cXHddL2c7XG5jb25zdCBVQV9WQUxVRV9FU0NBUEVfUkVHRVggPSAvW14hJCUmJyorXFwtLl5fYHx+XFx3I10vZztcbmNvbnN0IFVBX0VTQ0FQRV9DSEFSID0gXCItXCI7XG5cbmNvbnN0IEJZVEVfTElNSVQgPSAxMDI0O1xuZnVuY3Rpb24gZW5jb2RlRmVhdHVyZXMoZmVhdHVyZXMpIHtcbiAgICBsZXQgYnVmZmVyID0gXCJcIjtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBmZWF0dXJlcykge1xuICAgICAgICBjb25zdCB2YWwgPSBmZWF0dXJlc1trZXldO1xuICAgICAgICBpZiAoYnVmZmVyLmxlbmd0aCArIHZhbC5sZW5ndGggKyAxIDw9IEJZVEVfTElNSVQpIHtcbiAgICAgICAgICAgIGlmIChidWZmZXIubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgYnVmZmVyICs9IFwiLFwiICsgdmFsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgYnVmZmVyICs9IHZhbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICByZXR1cm4gYnVmZmVyO1xufVxuXG5jb25zdCB1c2VyQWdlbnRNaWRkbGV3YXJlID0gKG9wdGlvbnMpID0+IChuZXh0LCBjb250ZXh0KSA9PiBhc3luYyAoYXJncykgPT4ge1xuICAgIGNvbnN0IHsgcmVxdWVzdCB9ID0gYXJncztcbiAgICBpZiAoIXByb3RvY29sSHR0cC5IdHRwUmVxdWVzdC5pc0luc3RhbmNlKHJlcXVlc3QpKSB7XG4gICAgICAgIHJldHVybiBuZXh0KGFyZ3MpO1xuICAgIH1cbiAgICBjb25zdCB7IGhlYWRlcnMgfSA9IHJlcXVlc3Q7XG4gICAgY29uc3QgdXNlckFnZW50ID0gY29udGV4dD8udXNlckFnZW50Py5tYXAoZXNjYXBlVXNlckFnZW50KSB8fCBbXTtcbiAgICBjb25zdCBkZWZhdWx0VXNlckFnZW50ID0gKGF3YWl0IG9wdGlvbnMuZGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyKCkpLm1hcChlc2NhcGVVc2VyQWdlbnQpO1xuICAgIGF3YWl0IGNoZWNrRmVhdHVyZXMoY29udGV4dCwgb3B0aW9ucywgYXJncyk7XG4gICAgY29uc3QgYXdzQ29udGV4dCA9IGNvbnRleHQ7XG4gICAgZGVmYXVsdFVzZXJBZ2VudC5wdXNoKGBtLyR7ZW5jb2RlRmVhdHVyZXMoT2JqZWN0LmFzc2lnbih7fSwgY29udGV4dC5fX3NtaXRoeV9jb250ZXh0Py5mZWF0dXJlcywgYXdzQ29udGV4dC5fX2F3c19zZGtfY29udGV4dD8uZmVhdHVyZXMpKX1gKTtcbiAgICBjb25zdCBjdXN0b21Vc2VyQWdlbnQgPSBvcHRpb25zPy5jdXN0b21Vc2VyQWdlbnQ/Lm1hcChlc2NhcGVVc2VyQWdlbnQpIHx8IFtdO1xuICAgIGNvbnN0IGFwcElkID0gYXdhaXQgb3B0aW9ucy51c2VyQWdlbnRBcHBJZCgpO1xuICAgIGlmIChhcHBJZCkge1xuICAgICAgICBkZWZhdWx0VXNlckFnZW50LnB1c2goZXNjYXBlVXNlckFnZW50KFtgYXBwYCwgYCR7YXBwSWR9YF0pKTtcbiAgICB9XG4gICAgY29uc3QgcHJlZml4ID0gdXRpbEVuZHBvaW50cy5nZXRVc2VyQWdlbnRQcmVmaXgoKTtcbiAgICBjb25zdCBzZGtVc2VyQWdlbnRWYWx1ZSA9IChwcmVmaXggPyBbcHJlZml4XSA6IFtdKVxuICAgICAgICAuY29uY2F0KFsuLi5kZWZhdWx0VXNlckFnZW50LCAuLi51c2VyQWdlbnQsIC4uLmN1c3RvbVVzZXJBZ2VudF0pXG4gICAgICAgIC5qb2luKFNQQUNFKTtcbiAgICBjb25zdCBub3JtYWxVQVZhbHVlID0gW1xuICAgICAgICAuLi5kZWZhdWx0VXNlckFnZW50LmZpbHRlcigoc2VjdGlvbikgPT4gc2VjdGlvbi5zdGFydHNXaXRoKFwiYXdzLXNkay1cIikpLFxuICAgICAgICAuLi5jdXN0b21Vc2VyQWdlbnQsXG4gICAgXS5qb2luKFNQQUNFKTtcbiAgICBpZiAob3B0aW9ucy5ydW50aW1lICE9PSBcImJyb3dzZXJcIikge1xuICAgICAgICBpZiAobm9ybWFsVUFWYWx1ZSkge1xuICAgICAgICAgICAgaGVhZGVyc1tYX0FNWl9VU0VSX0FHRU5UXSA9IGhlYWRlcnNbWF9BTVpfVVNFUl9BR0VOVF1cbiAgICAgICAgICAgICAgICA/IGAke2hlYWRlcnNbVVNFUl9BR0VOVF19ICR7bm9ybWFsVUFWYWx1ZX1gXG4gICAgICAgICAgICAgICAgOiBub3JtYWxVQVZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGhlYWRlcnNbVVNFUl9BR0VOVF0gPSBzZGtVc2VyQWdlbnRWYWx1ZTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGhlYWRlcnNbWF9BTVpfVVNFUl9BR0VOVF0gPSBzZGtVc2VyQWdlbnRWYWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIG5leHQoe1xuICAgICAgICAuLi5hcmdzLFxuICAgICAgICByZXF1ZXN0LFxuICAgIH0pO1xufTtcbmNvbnN0IGVzY2FwZVVzZXJBZ2VudCA9ICh1c2VyQWdlbnRQYWlyKSA9PiB7XG4gICAgY29uc3QgbmFtZSA9IHVzZXJBZ2VudFBhaXJbMF1cbiAgICAgICAgLnNwbGl0KFVBX05BTUVfU0VQQVJBVE9SKVxuICAgICAgICAubWFwKChwYXJ0KSA9PiBwYXJ0LnJlcGxhY2UoVUFfTkFNRV9FU0NBUEVfUkVHRVgsIFVBX0VTQ0FQRV9DSEFSKSlcbiAgICAgICAgLmpvaW4oVUFfTkFNRV9TRVBBUkFUT1IpO1xuICAgIGNvbnN0IHZlcnNpb24gPSB1c2VyQWdlbnRQYWlyWzFdPy5yZXBsYWNlKFVBX1ZBTFVFX0VTQ0FQRV9SRUdFWCwgVUFfRVNDQVBFX0NIQVIpO1xuICAgIGNvbnN0IHByZWZpeFNlcGFyYXRvckluZGV4ID0gbmFtZS5pbmRleE9mKFVBX05BTUVfU0VQQVJBVE9SKTtcbiAgICBjb25zdCBwcmVmaXggPSBuYW1lLnN1YnN0cmluZygwLCBwcmVmaXhTZXBhcmF0b3JJbmRleCk7XG4gICAgbGV0IHVhTmFtZSA9IG5hbWUuc3Vic3RyaW5nKHByZWZpeFNlcGFyYXRvckluZGV4ICsgMSk7XG4gICAgaWYgKHByZWZpeCA9PT0gXCJhcGlcIikge1xuICAgICAgICB1YU5hbWUgPSB1YU5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICB9XG4gICAgcmV0dXJuIFtwcmVmaXgsIHVhTmFtZSwgdmVyc2lvbl1cbiAgICAgICAgLmZpbHRlcigoaXRlbSkgPT4gaXRlbSAmJiBpdGVtLmxlbmd0aCA+IDApXG4gICAgICAgIC5yZWR1Y2UoKGFjYywgaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgc3dpdGNoIChpbmRleCkge1xuICAgICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgICAgIHJldHVybiBpdGVtO1xuICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgIHJldHVybiBgJHthY2N9LyR7aXRlbX1gO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gYCR7YWNjfSMke2l0ZW19YDtcbiAgICAgICAgfVxuICAgIH0sIFwiXCIpO1xufTtcbmNvbnN0IGdldFVzZXJBZ2VudE1pZGRsZXdhcmVPcHRpb25zID0ge1xuICAgIG5hbWU6IFwiZ2V0VXNlckFnZW50TWlkZGxld2FyZVwiLFxuICAgIHN0ZXA6IFwiYnVpbGRcIixcbiAgICBwcmlvcml0eTogXCJsb3dcIixcbiAgICB0YWdzOiBbXCJTRVRfVVNFUl9BR0VOVFwiLCBcIlVTRVJfQUdFTlRcIl0sXG4gICAgb3ZlcnJpZGU6IHRydWUsXG59O1xuY29uc3QgZ2V0VXNlckFnZW50UGx1Z2luID0gKGNvbmZpZykgPT4gKHtcbiAgICBhcHBseVRvU3RhY2s6IChjbGllbnRTdGFjaykgPT4ge1xuICAgICAgICBjbGllbnRTdGFjay5hZGQodXNlckFnZW50TWlkZGxld2FyZShjb25maWcpLCBnZXRVc2VyQWdlbnRNaWRkbGV3YXJlT3B0aW9ucyk7XG4gICAgfSxcbn0pO1xuXG5leHBvcnRzLkRFRkFVTFRfVUFfQVBQX0lEID0gREVGQVVMVF9VQV9BUFBfSUQ7XG5leHBvcnRzLmdldFVzZXJBZ2VudE1pZGRsZXdhcmVPcHRpb25zID0gZ2V0VXNlckFnZW50TWlkZGxld2FyZU9wdGlvbnM7XG5leHBvcnRzLmdldFVzZXJBZ2VudFBsdWdpbiA9IGdldFVzZXJBZ2VudFBsdWdpbjtcbmV4cG9ydHMucmVzb2x2ZVVzZXJBZ2VudENvbmZpZyA9IHJlc29sdmVVc2VyQWdlbnRDb25maWc7XG5leHBvcnRzLnVzZXJBZ2VudE1pZGRsZXdhcmUgPSB1c2VyQWdlbnRNaWRkbGV3YXJlO1xuIiwgImltcG9ydCB7IEh0dHBSZXNwb25zZSB9IGZyb20gXCJAc21pdGh5L3Byb3RvY29sLWh0dHBcIjtcbmV4cG9ydCBjb25zdCBnZXREYXRlSGVhZGVyID0gKHJlc3BvbnNlKSA9PiBIdHRwUmVzcG9uc2UuaXNJbnN0YW5jZShyZXNwb25zZSkgPyByZXNwb25zZS5oZWFkZXJzPy5kYXRlID8/IHJlc3BvbnNlLmhlYWRlcnM/LkRhdGUgOiB1bmRlZmluZWQ7XG4iLCAiZXhwb3J0IGNvbnN0IGdldFNrZXdDb3JyZWN0ZWREYXRlID0gKHN5c3RlbUNsb2NrT2Zmc2V0KSA9PiBuZXcgRGF0ZShEYXRlLm5vdygpICsgc3lzdGVtQ2xvY2tPZmZzZXQpO1xuIiwgImltcG9ydCB7IGdldFNrZXdDb3JyZWN0ZWREYXRlIH0gZnJvbSBcIi4vZ2V0U2tld0NvcnJlY3RlZERhdGVcIjtcbmV4cG9ydCBjb25zdCBpc0Nsb2NrU2tld2VkID0gKGNsb2NrVGltZSwgc3lzdGVtQ2xvY2tPZmZzZXQpID0+IE1hdGguYWJzKGdldFNrZXdDb3JyZWN0ZWREYXRlKHN5c3RlbUNsb2NrT2Zmc2V0KS5nZXRUaW1lKCkgLSBjbG9ja1RpbWUpID49IDMwMDAwMDtcbiIsICJpbXBvcnQgeyBpc0Nsb2NrU2tld2VkIH0gZnJvbSBcIi4vaXNDbG9ja1NrZXdlZFwiO1xuZXhwb3J0IGNvbnN0IGdldFVwZGF0ZWRTeXN0ZW1DbG9ja09mZnNldCA9IChjbG9ja1RpbWUsIGN1cnJlbnRTeXN0ZW1DbG9ja09mZnNldCkgPT4ge1xuICAgIGNvbnN0IGNsb2NrVGltZUluTXMgPSBEYXRlLnBhcnNlKGNsb2NrVGltZSk7XG4gICAgaWYgKGlzQ2xvY2tTa2V3ZWQoY2xvY2tUaW1lSW5NcywgY3VycmVudFN5c3RlbUNsb2NrT2Zmc2V0KSkge1xuICAgICAgICByZXR1cm4gY2xvY2tUaW1lSW5NcyAtIERhdGUubm93KCk7XG4gICAgfVxuICAgIHJldHVybiBjdXJyZW50U3lzdGVtQ2xvY2tPZmZzZXQ7XG59O1xuIiwgImV4cG9ydCAqIGZyb20gXCIuL2dldERhdGVIZWFkZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2dldFNrZXdDb3JyZWN0ZWREYXRlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9nZXRVcGRhdGVkU3lzdGVtQ2xvY2tPZmZzZXRcIjtcbiIsICJpbXBvcnQgeyBIdHRwUmVxdWVzdCB9IGZyb20gXCJAc21pdGh5L3Byb3RvY29sLWh0dHBcIjtcbmltcG9ydCB7IGdldERhdGVIZWFkZXIsIGdldFNrZXdDb3JyZWN0ZWREYXRlLCBnZXRVcGRhdGVkU3lzdGVtQ2xvY2tPZmZzZXQgfSBmcm9tIFwiLi4vdXRpbHNcIjtcbmNvbnN0IHRocm93U2lnbmluZ1Byb3BlcnR5RXJyb3IgPSAobmFtZSwgcHJvcGVydHkpID0+IHtcbiAgICBpZiAoIXByb3BlcnR5KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgUHJvcGVydHkgXFxgJHtuYW1lfVxcYCBpcyBub3QgcmVzb2x2ZWQgZm9yIEFXUyBTREsgU2lnVjRBdXRoYCk7XG4gICAgfVxuICAgIHJldHVybiBwcm9wZXJ0eTtcbn07XG5leHBvcnQgY29uc3QgdmFsaWRhdGVTaWduaW5nUHJvcGVydGllcyA9IGFzeW5jIChzaWduaW5nUHJvcGVydGllcykgPT4ge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aHJvd1NpZ25pbmdQcm9wZXJ0eUVycm9yKFwiY29udGV4dFwiLCBzaWduaW5nUHJvcGVydGllcy5jb250ZXh0KTtcbiAgICBjb25zdCBjb25maWcgPSB0aHJvd1NpZ25pbmdQcm9wZXJ0eUVycm9yKFwiY29uZmlnXCIsIHNpZ25pbmdQcm9wZXJ0aWVzLmNvbmZpZyk7XG4gICAgY29uc3QgYXV0aFNjaGVtZSA9IGNvbnRleHQuZW5kcG9pbnRWMj8ucHJvcGVydGllcz8uYXV0aFNjaGVtZXM/LlswXTtcbiAgICBjb25zdCBzaWduZXJGdW5jdGlvbiA9IHRocm93U2lnbmluZ1Byb3BlcnR5RXJyb3IoXCJzaWduZXJcIiwgY29uZmlnLnNpZ25lcik7XG4gICAgY29uc3Qgc2lnbmVyID0gYXdhaXQgc2lnbmVyRnVuY3Rpb24oYXV0aFNjaGVtZSk7XG4gICAgY29uc3Qgc2lnbmluZ1JlZ2lvbiA9IHNpZ25pbmdQcm9wZXJ0aWVzPy5zaWduaW5nUmVnaW9uO1xuICAgIGNvbnN0IHNpZ25pbmdSZWdpb25TZXQgPSBzaWduaW5nUHJvcGVydGllcz8uc2lnbmluZ1JlZ2lvblNldDtcbiAgICBjb25zdCBzaWduaW5nTmFtZSA9IHNpZ25pbmdQcm9wZXJ0aWVzPy5zaWduaW5nTmFtZTtcbiAgICByZXR1cm4ge1xuICAgICAgICBjb25maWcsXG4gICAgICAgIHNpZ25lcixcbiAgICAgICAgc2lnbmluZ1JlZ2lvbixcbiAgICAgICAgc2lnbmluZ1JlZ2lvblNldCxcbiAgICAgICAgc2lnbmluZ05hbWUsXG4gICAgfTtcbn07XG5leHBvcnQgY2xhc3MgQXdzU2RrU2lnVjRTaWduZXIge1xuICAgIGFzeW5jIHNpZ24oaHR0cFJlcXVlc3QsIGlkZW50aXR5LCBzaWduaW5nUHJvcGVydGllcykge1xuICAgICAgICBpZiAoIUh0dHBSZXF1ZXN0LmlzSW5zdGFuY2UoaHR0cFJlcXVlc3QpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJUaGUgcmVxdWVzdCBpcyBub3QgYW4gaW5zdGFuY2Ugb2YgYEh0dHBSZXF1ZXN0YCBhbmQgY2Fubm90IGJlIHNpZ25lZFwiKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB2YWxpZGF0ZWRQcm9wcyA9IGF3YWl0IHZhbGlkYXRlU2lnbmluZ1Byb3BlcnRpZXMoc2lnbmluZ1Byb3BlcnRpZXMpO1xuICAgICAgICBjb25zdCB7IGNvbmZpZywgc2lnbmVyIH0gPSB2YWxpZGF0ZWRQcm9wcztcbiAgICAgICAgbGV0IHsgc2lnbmluZ1JlZ2lvbiwgc2lnbmluZ05hbWUgfSA9IHZhbGlkYXRlZFByb3BzO1xuICAgICAgICBjb25zdCBoYW5kbGVyRXhlY3V0aW9uQ29udGV4dCA9IHNpZ25pbmdQcm9wZXJ0aWVzLmNvbnRleHQ7XG4gICAgICAgIGlmIChoYW5kbGVyRXhlY3V0aW9uQ29udGV4dD8uYXV0aFNjaGVtZXM/Lmxlbmd0aCA/PyAwID4gMSkge1xuICAgICAgICAgICAgY29uc3QgW2ZpcnN0LCBzZWNvbmRdID0gaGFuZGxlckV4ZWN1dGlvbkNvbnRleHQuYXV0aFNjaGVtZXM7XG4gICAgICAgICAgICBpZiAoZmlyc3Q/Lm5hbWUgPT09IFwic2lndjRhXCIgJiYgc2Vjb25kPy5uYW1lID09PSBcInNpZ3Y0XCIpIHtcbiAgICAgICAgICAgICAgICBzaWduaW5nUmVnaW9uID0gc2Vjb25kPy5zaWduaW5nUmVnaW9uID8/IHNpZ25pbmdSZWdpb247XG4gICAgICAgICAgICAgICAgc2lnbmluZ05hbWUgPSBzZWNvbmQ/LnNpZ25pbmdOYW1lID8/IHNpZ25pbmdOYW1lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNpZ25lZFJlcXVlc3QgPSBhd2FpdCBzaWduZXIuc2lnbihodHRwUmVxdWVzdCwge1xuICAgICAgICAgICAgc2lnbmluZ0RhdGU6IGdldFNrZXdDb3JyZWN0ZWREYXRlKGNvbmZpZy5zeXN0ZW1DbG9ja09mZnNldCksXG4gICAgICAgICAgICBzaWduaW5nUmVnaW9uOiBzaWduaW5nUmVnaW9uLFxuICAgICAgICAgICAgc2lnbmluZ1NlcnZpY2U6IHNpZ25pbmdOYW1lLFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHNpZ25lZFJlcXVlc3Q7XG4gICAgfVxuICAgIGVycm9ySGFuZGxlcihzaWduaW5nUHJvcGVydGllcykge1xuICAgICAgICByZXR1cm4gKGVycm9yKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzZXJ2ZXJUaW1lID0gZXJyb3IuU2VydmVyVGltZSA/PyBnZXREYXRlSGVhZGVyKGVycm9yLiRyZXNwb25zZSk7XG4gICAgICAgICAgICBpZiAoc2VydmVyVGltZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHRocm93U2lnbmluZ1Byb3BlcnR5RXJyb3IoXCJjb25maWdcIiwgc2lnbmluZ1Byb3BlcnRpZXMuY29uZmlnKTtcbiAgICAgICAgICAgICAgICBjb25zdCBpbml0aWFsU3lzdGVtQ2xvY2tPZmZzZXQgPSBjb25maWcuc3lzdGVtQ2xvY2tPZmZzZXQ7XG4gICAgICAgICAgICAgICAgY29uZmlnLnN5c3RlbUNsb2NrT2Zmc2V0ID0gZ2V0VXBkYXRlZFN5c3RlbUNsb2NrT2Zmc2V0KHNlcnZlclRpbWUsIGNvbmZpZy5zeXN0ZW1DbG9ja09mZnNldCk7XG4gICAgICAgICAgICAgICAgY29uc3QgY2xvY2tTa2V3Q29ycmVjdGVkID0gY29uZmlnLnN5c3RlbUNsb2NrT2Zmc2V0ICE9PSBpbml0aWFsU3lzdGVtQ2xvY2tPZmZzZXQ7XG4gICAgICAgICAgICAgICAgaWYgKGNsb2NrU2tld0NvcnJlY3RlZCAmJiBlcnJvci4kbWV0YWRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgZXJyb3IuJG1ldGFkYXRhLmNsb2NrU2tld0NvcnJlY3RlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH07XG4gICAgfVxuICAgIHN1Y2Nlc3NIYW5kbGVyKGh0dHBSZXNwb25zZSwgc2lnbmluZ1Byb3BlcnRpZXMpIHtcbiAgICAgICAgY29uc3QgZGF0ZUhlYWRlciA9IGdldERhdGVIZWFkZXIoaHR0cFJlc3BvbnNlKTtcbiAgICAgICAgaWYgKGRhdGVIZWFkZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHRocm93U2lnbmluZ1Byb3BlcnR5RXJyb3IoXCJjb25maWdcIiwgc2lnbmluZ1Byb3BlcnRpZXMuY29uZmlnKTtcbiAgICAgICAgICAgIGNvbmZpZy5zeXN0ZW1DbG9ja09mZnNldCA9IGdldFVwZGF0ZWRTeXN0ZW1DbG9ja09mZnNldChkYXRlSGVhZGVyLCBjb25maWcuc3lzdGVtQ2xvY2tPZmZzZXQpO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0IGNvbnN0IEFXU1NES1NpZ1Y0U2lnbmVyID0gQXdzU2RrU2lnVjRTaWduZXI7XG4iLCAiaW1wb3J0IHsgSHR0cFJlcXVlc3QgfSBmcm9tIFwiQHNtaXRoeS9wcm90b2NvbC1odHRwXCI7XG5pbXBvcnQgeyBnZXRTa2V3Q29ycmVjdGVkRGF0ZSB9IGZyb20gXCIuLi91dGlsc1wiO1xuaW1wb3J0IHsgQXdzU2RrU2lnVjRTaWduZXIsIHZhbGlkYXRlU2lnbmluZ1Byb3BlcnRpZXMgfSBmcm9tIFwiLi9Bd3NTZGtTaWdWNFNpZ25lclwiO1xuZXhwb3J0IGNsYXNzIEF3c1Nka1NpZ1Y0QVNpZ25lciBleHRlbmRzIEF3c1Nka1NpZ1Y0U2lnbmVyIHtcbiAgICBhc3luYyBzaWduKGh0dHBSZXF1ZXN0LCBpZGVudGl0eSwgc2lnbmluZ1Byb3BlcnRpZXMpIHtcbiAgICAgICAgaWYgKCFIdHRwUmVxdWVzdC5pc0luc3RhbmNlKGh0dHBSZXF1ZXN0KSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVGhlIHJlcXVlc3QgaXMgbm90IGFuIGluc3RhbmNlIG9mIGBIdHRwUmVxdWVzdGAgYW5kIGNhbm5vdCBiZSBzaWduZWRcIik7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgeyBjb25maWcsIHNpZ25lciwgc2lnbmluZ1JlZ2lvbiwgc2lnbmluZ1JlZ2lvblNldCwgc2lnbmluZ05hbWUgfSA9IGF3YWl0IHZhbGlkYXRlU2lnbmluZ1Byb3BlcnRpZXMoc2lnbmluZ1Byb3BlcnRpZXMpO1xuICAgICAgICBjb25zdCBjb25maWdSZXNvbHZlZFNpZ25pbmdSZWdpb25TZXQgPSBhd2FpdCBjb25maWcuc2lndjRhU2lnbmluZ1JlZ2lvblNldD8uKCk7XG4gICAgICAgIGNvbnN0IG11bHRpUmVnaW9uT3ZlcnJpZGUgPSAoY29uZmlnUmVzb2x2ZWRTaWduaW5nUmVnaW9uU2V0ID8/XG4gICAgICAgICAgICBzaWduaW5nUmVnaW9uU2V0ID8/IFtzaWduaW5nUmVnaW9uXSkuam9pbihcIixcIik7XG4gICAgICAgIGNvbnN0IHNpZ25lZFJlcXVlc3QgPSBhd2FpdCBzaWduZXIuc2lnbihodHRwUmVxdWVzdCwge1xuICAgICAgICAgICAgc2lnbmluZ0RhdGU6IGdldFNrZXdDb3JyZWN0ZWREYXRlKGNvbmZpZy5zeXN0ZW1DbG9ja09mZnNldCksXG4gICAgICAgICAgICBzaWduaW5nUmVnaW9uOiBtdWx0aVJlZ2lvbk92ZXJyaWRlLFxuICAgICAgICAgICAgc2lnbmluZ1NlcnZpY2U6IHNpZ25pbmdOYW1lLFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHNpZ25lZFJlcXVlc3Q7XG4gICAgfVxufVxuIiwgImV4cG9ydCBjb25zdCBnZXRBcnJheUZvckNvbW1hU2VwYXJhdGVkU3RyaW5nID0gKHN0cikgPT4gdHlwZW9mIHN0ciA9PT0gXCJzdHJpbmdcIiAmJiBzdHIubGVuZ3RoID4gMCA/IHN0ci5zcGxpdChcIixcIikubWFwKChpdGVtKSA9PiBpdGVtLnRyaW0oKSkgOiBbXTtcbiIsICJleHBvcnQgY29uc3QgZ2V0QmVhcmVyVG9rZW5FbnZLZXkgPSAoc2lnbmluZ05hbWUpID0+IGBBV1NfQkVBUkVSX1RPS0VOXyR7c2lnbmluZ05hbWUucmVwbGFjZSgvW1xccy1dL2csIFwiX1wiKS50b1VwcGVyQ2FzZSgpfWA7XG4iLCAiaW1wb3J0IHsgZ2V0QXJyYXlGb3JDb21tYVNlcGFyYXRlZFN0cmluZyB9IGZyb20gXCIuLi91dGlscy9nZXRBcnJheUZvckNvbW1hU2VwYXJhdGVkU3RyaW5nXCI7XG5pbXBvcnQgeyBnZXRCZWFyZXJUb2tlbkVudktleSB9IGZyb20gXCIuLi91dGlscy9nZXRCZWFyZXJUb2tlbkVudktleVwiO1xuY29uc3QgTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX0VOVl9LRVkgPSBcIkFXU19BVVRIX1NDSEVNRV9QUkVGRVJFTkNFXCI7XG5jb25zdCBOT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfQ09ORklHX0tFWSA9IFwiYXV0aF9zY2hlbWVfcHJlZmVyZW5jZVwiO1xuZXhwb3J0IGNvbnN0IE5PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9PUFRJT05TID0ge1xuICAgIGVudmlyb25tZW50VmFyaWFibGVTZWxlY3RvcjogKGVudiwgb3B0aW9ucykgPT4ge1xuICAgICAgICBpZiAob3B0aW9ucz8uc2lnbmluZ05hbWUpIHtcbiAgICAgICAgICAgIGNvbnN0IGJlYXJlclRva2VuS2V5ID0gZ2V0QmVhcmVyVG9rZW5FbnZLZXkob3B0aW9ucy5zaWduaW5nTmFtZSk7XG4gICAgICAgICAgICBpZiAoYmVhcmVyVG9rZW5LZXkgaW4gZW52KVxuICAgICAgICAgICAgICAgIHJldHVybiBbXCJodHRwQmVhcmVyQXV0aFwiXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIShOT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfRU5WX0tFWSBpbiBlbnYpKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgcmV0dXJuIGdldEFycmF5Rm9yQ29tbWFTZXBhcmF0ZWRTdHJpbmcoZW52W05PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9FTlZfS0VZXSk7XG4gICAgfSxcbiAgICBjb25maWdGaWxlU2VsZWN0b3I6IChwcm9maWxlKSA9PiB7XG4gICAgICAgIGlmICghKE5PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9DT05GSUdfS0VZIGluIHByb2ZpbGUpKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgcmV0dXJuIGdldEFycmF5Rm9yQ29tbWFTZXBhcmF0ZWRTdHJpbmcocHJvZmlsZVtOT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfQ09ORklHX0tFWV0pO1xuICAgIH0sXG4gICAgZGVmYXVsdDogW10sXG59O1xuIiwgImltcG9ydCB7IG5vcm1hbGl6ZVByb3ZpZGVyIH0gZnJvbSBcIkBzbWl0aHkvY29yZVwiO1xuaW1wb3J0IHsgUHJvdmlkZXJFcnJvciB9IGZyb20gXCJAc21pdGh5L3Byb3BlcnR5LXByb3ZpZGVyXCI7XG5leHBvcnQgY29uc3QgcmVzb2x2ZUF3c1Nka1NpZ1Y0QUNvbmZpZyA9IChjb25maWcpID0+IHtcbiAgICBjb25maWcuc2lndjRhU2lnbmluZ1JlZ2lvblNldCA9IG5vcm1hbGl6ZVByb3ZpZGVyKGNvbmZpZy5zaWd2NGFTaWduaW5nUmVnaW9uU2V0KTtcbiAgICByZXR1cm4gY29uZmlnO1xufTtcbmV4cG9ydCBjb25zdCBOT0RFX1NJR1Y0QV9DT05GSUdfT1BUSU9OUyA9IHtcbiAgICBlbnZpcm9ubWVudFZhcmlhYmxlU2VsZWN0b3IoZW52KSB7XG4gICAgICAgIGlmIChlbnYuQVdTX1NJR1Y0QV9TSUdOSU5HX1JFR0lPTl9TRVQpIHtcbiAgICAgICAgICAgIHJldHVybiBlbnYuQVdTX1NJR1Y0QV9TSUdOSU5HX1JFR0lPTl9TRVQuc3BsaXQoXCIsXCIpLm1hcCgoXykgPT4gXy50cmltKCkpO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IG5ldyBQcm92aWRlckVycm9yKFwiQVdTX1NJR1Y0QV9TSUdOSU5HX1JFR0lPTl9TRVQgbm90IHNldCBpbiBlbnYuXCIsIHtcbiAgICAgICAgICAgIHRyeU5leHRMaW5rOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICB9LFxuICAgIGNvbmZpZ0ZpbGVTZWxlY3Rvcihwcm9maWxlKSB7XG4gICAgICAgIGlmIChwcm9maWxlLnNpZ3Y0YV9zaWduaW5nX3JlZ2lvbl9zZXQpIHtcbiAgICAgICAgICAgIHJldHVybiAocHJvZmlsZS5zaWd2NGFfc2lnbmluZ19yZWdpb25fc2V0ID8/IFwiXCIpLnNwbGl0KFwiLFwiKS5tYXAoKF8pID0+IF8udHJpbSgpKTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBuZXcgUHJvdmlkZXJFcnJvcihcInNpZ3Y0YV9zaWduaW5nX3JlZ2lvbl9zZXQgbm90IHNldCBpbiBwcm9maWxlLlwiLCB7XG4gICAgICAgICAgICB0cnlOZXh0TGluazogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgfSxcbiAgICBkZWZhdWx0OiB1bmRlZmluZWQsXG59O1xuIiwgImltcG9ydCB7IHNldENyZWRlbnRpYWxGZWF0dXJlIH0gZnJvbSBcIkBhd3Mtc2RrL2NvcmUvY2xpZW50XCI7XG5pbXBvcnQgeyBkb2VzSWRlbnRpdHlSZXF1aXJlUmVmcmVzaCwgaXNJZGVudGl0eUV4cGlyZWQsIG1lbW9pemVJZGVudGl0eVByb3ZpZGVyLCBub3JtYWxpemVQcm92aWRlciwgfSBmcm9tIFwiQHNtaXRoeS9jb3JlXCI7XG5pbXBvcnQgeyBTaWduYXR1cmVWNCB9IGZyb20gXCJAc21pdGh5L3NpZ25hdHVyZS12NFwiO1xuZXhwb3J0IGNvbnN0IHJlc29sdmVBd3NTZGtTaWdWNENvbmZpZyA9IChjb25maWcpID0+IHtcbiAgICBsZXQgaW5wdXRDcmVkZW50aWFscyA9IGNvbmZpZy5jcmVkZW50aWFscztcbiAgICBsZXQgaXNVc2VyU3VwcGxpZWQgPSAhIWNvbmZpZy5jcmVkZW50aWFscztcbiAgICBsZXQgcmVzb2x2ZWRDcmVkZW50aWFscyA9IHVuZGVmaW5lZDtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoY29uZmlnLCBcImNyZWRlbnRpYWxzXCIsIHtcbiAgICAgICAgc2V0KGNyZWRlbnRpYWxzKSB7XG4gICAgICAgICAgICBpZiAoY3JlZGVudGlhbHMgJiYgY3JlZGVudGlhbHMgIT09IGlucHV0Q3JlZGVudGlhbHMgJiYgY3JlZGVudGlhbHMgIT09IHJlc29sdmVkQ3JlZGVudGlhbHMpIHtcbiAgICAgICAgICAgICAgICBpc1VzZXJTdXBwbGllZCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpbnB1dENyZWRlbnRpYWxzID0gY3JlZGVudGlhbHM7XG4gICAgICAgICAgICBjb25zdCBtZW1vaXplZFByb3ZpZGVyID0gbm9ybWFsaXplQ3JlZGVudGlhbFByb3ZpZGVyKGNvbmZpZywge1xuICAgICAgICAgICAgICAgIGNyZWRlbnRpYWxzOiBpbnB1dENyZWRlbnRpYWxzLFxuICAgICAgICAgICAgICAgIGNyZWRlbnRpYWxEZWZhdWx0UHJvdmlkZXI6IGNvbmZpZy5jcmVkZW50aWFsRGVmYXVsdFByb3ZpZGVyLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCBib3VuZFByb3ZpZGVyID0gYmluZENhbGxlckNvbmZpZyhjb25maWcsIG1lbW9pemVkUHJvdmlkZXIpO1xuICAgICAgICAgICAgaWYgKGlzVXNlclN1cHBsaWVkICYmICFib3VuZFByb3ZpZGVyLmF0dHJpYnV0ZWQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpc0NyZWRlbnRpYWxPYmplY3QgPSB0eXBlb2YgaW5wdXRDcmVkZW50aWFscyA9PT0gXCJvYmplY3RcIiAmJiBpbnB1dENyZWRlbnRpYWxzICE9PSBudWxsO1xuICAgICAgICAgICAgICAgIHJlc29sdmVkQ3JlZGVudGlhbHMgPSBhc3luYyAob3B0aW9ucykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjcmVkcyA9IGF3YWl0IGJvdW5kUHJvdmlkZXIob3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGF0dHJpYnV0ZWRDcmVkcyA9IGNyZWRzO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNDcmVkZW50aWFsT2JqZWN0ICYmICghYXR0cmlidXRlZENyZWRzLiRzb3VyY2UgfHwgT2JqZWN0LmtleXMoYXR0cmlidXRlZENyZWRzLiRzb3VyY2UpLmxlbmd0aCA9PT0gMCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzZXRDcmVkZW50aWFsRmVhdHVyZShhdHRyaWJ1dGVkQ3JlZHMsIFwiQ1JFREVOVElBTFNfQ09ERVwiLCBcImVcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGF0dHJpYnV0ZWRDcmVkcztcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIHJlc29sdmVkQ3JlZGVudGlhbHMubWVtb2l6ZWQgPSBib3VuZFByb3ZpZGVyLm1lbW9pemVkO1xuICAgICAgICAgICAgICAgIHJlc29sdmVkQ3JlZGVudGlhbHMuY29uZmlnQm91bmQgPSBib3VuZFByb3ZpZGVyLmNvbmZpZ0JvdW5kO1xuICAgICAgICAgICAgICAgIHJlc29sdmVkQ3JlZGVudGlhbHMuYXR0cmlidXRlZCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXNvbHZlZENyZWRlbnRpYWxzID0gYm91bmRQcm92aWRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZ2V0KCkge1xuICAgICAgICAgICAgcmV0dXJuIHJlc29sdmVkQ3JlZGVudGlhbHM7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICB9KTtcbiAgICBjb25maWcuY3JlZGVudGlhbHMgPSBpbnB1dENyZWRlbnRpYWxzO1xuICAgIGNvbnN0IHsgc2lnbmluZ0VzY2FwZVBhdGggPSB0cnVlLCBzeXN0ZW1DbG9ja09mZnNldCA9IGNvbmZpZy5zeXN0ZW1DbG9ja09mZnNldCB8fCAwLCBzaGEyNTYsIH0gPSBjb25maWc7XG4gICAgbGV0IHNpZ25lcjtcbiAgICBpZiAoY29uZmlnLnNpZ25lcikge1xuICAgICAgICBzaWduZXIgPSBub3JtYWxpemVQcm92aWRlcihjb25maWcuc2lnbmVyKTtcbiAgICB9XG4gICAgZWxzZSBpZiAoY29uZmlnLnJlZ2lvbkluZm9Qcm92aWRlcikge1xuICAgICAgICBzaWduZXIgPSAoKSA9PiBub3JtYWxpemVQcm92aWRlcihjb25maWcucmVnaW9uKSgpXG4gICAgICAgICAgICAudGhlbihhc3luYyAocmVnaW9uKSA9PiBbXG4gICAgICAgICAgICAoYXdhaXQgY29uZmlnLnJlZ2lvbkluZm9Qcm92aWRlcihyZWdpb24sIHtcbiAgICAgICAgICAgICAgICB1c2VGaXBzRW5kcG9pbnQ6IGF3YWl0IGNvbmZpZy51c2VGaXBzRW5kcG9pbnQoKSxcbiAgICAgICAgICAgICAgICB1c2VEdWFsc3RhY2tFbmRwb2ludDogYXdhaXQgY29uZmlnLnVzZUR1YWxzdGFja0VuZHBvaW50KCksXG4gICAgICAgICAgICB9KSkgfHwge30sXG4gICAgICAgICAgICByZWdpb24sXG4gICAgICAgIF0pXG4gICAgICAgICAgICAudGhlbigoW3JlZ2lvbkluZm8sIHJlZ2lvbl0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgc2lnbmluZ1JlZ2lvbiwgc2lnbmluZ1NlcnZpY2UgfSA9IHJlZ2lvbkluZm87XG4gICAgICAgICAgICBjb25maWcuc2lnbmluZ1JlZ2lvbiA9IGNvbmZpZy5zaWduaW5nUmVnaW9uIHx8IHNpZ25pbmdSZWdpb24gfHwgcmVnaW9uO1xuICAgICAgICAgICAgY29uZmlnLnNpZ25pbmdOYW1lID0gY29uZmlnLnNpZ25pbmdOYW1lIHx8IHNpZ25pbmdTZXJ2aWNlIHx8IGNvbmZpZy5zZXJ2aWNlSWQ7XG4gICAgICAgICAgICBjb25zdCBwYXJhbXMgPSB7XG4gICAgICAgICAgICAgICAgLi4uY29uZmlnLFxuICAgICAgICAgICAgICAgIGNyZWRlbnRpYWxzOiBjb25maWcuY3JlZGVudGlhbHMsXG4gICAgICAgICAgICAgICAgcmVnaW9uOiBjb25maWcuc2lnbmluZ1JlZ2lvbixcbiAgICAgICAgICAgICAgICBzZXJ2aWNlOiBjb25maWcuc2lnbmluZ05hbWUsXG4gICAgICAgICAgICAgICAgc2hhMjU2LFxuICAgICAgICAgICAgICAgIHVyaUVzY2FwZVBhdGg6IHNpZ25pbmdFc2NhcGVQYXRoLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGNvbnN0IFNpZ25lckN0b3IgPSBjb25maWcuc2lnbmVyQ29uc3RydWN0b3IgfHwgU2lnbmF0dXJlVjQ7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFNpZ25lckN0b3IocGFyYW1zKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBzaWduZXIgPSBhc3luYyAoYXV0aFNjaGVtZSkgPT4ge1xuICAgICAgICAgICAgYXV0aFNjaGVtZSA9IE9iamVjdC5hc3NpZ24oe30sIHtcbiAgICAgICAgICAgICAgICBuYW1lOiBcInNpZ3Y0XCIsXG4gICAgICAgICAgICAgICAgc2lnbmluZ05hbWU6IGNvbmZpZy5zaWduaW5nTmFtZSB8fCBjb25maWcuZGVmYXVsdFNpZ25pbmdOYW1lLFxuICAgICAgICAgICAgICAgIHNpZ25pbmdSZWdpb246IGF3YWl0IG5vcm1hbGl6ZVByb3ZpZGVyKGNvbmZpZy5yZWdpb24pKCksXG4gICAgICAgICAgICAgICAgcHJvcGVydGllczoge30sXG4gICAgICAgICAgICB9LCBhdXRoU2NoZW1lKTtcbiAgICAgICAgICAgIGNvbnN0IHNpZ25pbmdSZWdpb24gPSBhdXRoU2NoZW1lLnNpZ25pbmdSZWdpb247XG4gICAgICAgICAgICBjb25zdCBzaWduaW5nU2VydmljZSA9IGF1dGhTY2hlbWUuc2lnbmluZ05hbWU7XG4gICAgICAgICAgICBjb25maWcuc2lnbmluZ1JlZ2lvbiA9IGNvbmZpZy5zaWduaW5nUmVnaW9uIHx8IHNpZ25pbmdSZWdpb247XG4gICAgICAgICAgICBjb25maWcuc2lnbmluZ05hbWUgPSBjb25maWcuc2lnbmluZ05hbWUgfHwgc2lnbmluZ1NlcnZpY2UgfHwgY29uZmlnLnNlcnZpY2VJZDtcbiAgICAgICAgICAgIGNvbnN0IHBhcmFtcyA9IHtcbiAgICAgICAgICAgICAgICAuLi5jb25maWcsXG4gICAgICAgICAgICAgICAgY3JlZGVudGlhbHM6IGNvbmZpZy5jcmVkZW50aWFscyxcbiAgICAgICAgICAgICAgICByZWdpb246IGNvbmZpZy5zaWduaW5nUmVnaW9uLFxuICAgICAgICAgICAgICAgIHNlcnZpY2U6IGNvbmZpZy5zaWduaW5nTmFtZSxcbiAgICAgICAgICAgICAgICBzaGEyNTYsXG4gICAgICAgICAgICAgICAgdXJpRXNjYXBlUGF0aDogc2lnbmluZ0VzY2FwZVBhdGgsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY29uc3QgU2lnbmVyQ3RvciA9IGNvbmZpZy5zaWduZXJDb25zdHJ1Y3RvciB8fCBTaWduYXR1cmVWNDtcbiAgICAgICAgICAgIHJldHVybiBuZXcgU2lnbmVyQ3RvcihwYXJhbXMpO1xuICAgICAgICB9O1xuICAgIH1cbiAgICBjb25zdCByZXNvbHZlZENvbmZpZyA9IE9iamVjdC5hc3NpZ24oY29uZmlnLCB7XG4gICAgICAgIHN5c3RlbUNsb2NrT2Zmc2V0LFxuICAgICAgICBzaWduaW5nRXNjYXBlUGF0aCxcbiAgICAgICAgc2lnbmVyLFxuICAgIH0pO1xuICAgIHJldHVybiByZXNvbHZlZENvbmZpZztcbn07XG5leHBvcnQgY29uc3QgcmVzb2x2ZUFXU1NES1NpZ1Y0Q29uZmlnID0gcmVzb2x2ZUF3c1Nka1NpZ1Y0Q29uZmlnO1xuZnVuY3Rpb24gbm9ybWFsaXplQ3JlZGVudGlhbFByb3ZpZGVyKGNvbmZpZywgeyBjcmVkZW50aWFscywgY3JlZGVudGlhbERlZmF1bHRQcm92aWRlciwgfSkge1xuICAgIGxldCBjcmVkZW50aWFsc1Byb3ZpZGVyO1xuICAgIGlmIChjcmVkZW50aWFscykge1xuICAgICAgICBpZiAoIWNyZWRlbnRpYWxzPy5tZW1vaXplZCkge1xuICAgICAgICAgICAgY3JlZGVudGlhbHNQcm92aWRlciA9IG1lbW9pemVJZGVudGl0eVByb3ZpZGVyKGNyZWRlbnRpYWxzLCBpc0lkZW50aXR5RXhwaXJlZCwgZG9lc0lkZW50aXR5UmVxdWlyZVJlZnJlc2gpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY3JlZGVudGlhbHNQcm92aWRlciA9IGNyZWRlbnRpYWxzO1xuICAgICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBpZiAoY3JlZGVudGlhbERlZmF1bHRQcm92aWRlcikge1xuICAgICAgICAgICAgY3JlZGVudGlhbHNQcm92aWRlciA9IG5vcm1hbGl6ZVByb3ZpZGVyKGNyZWRlbnRpYWxEZWZhdWx0UHJvdmlkZXIoT2JqZWN0LmFzc2lnbih7fSwgY29uZmlnLCB7XG4gICAgICAgICAgICAgICAgcGFyZW50Q2xpZW50Q29uZmlnOiBjb25maWcsXG4gICAgICAgICAgICB9KSkpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY3JlZGVudGlhbHNQcm92aWRlciA9IGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJAYXdzLXNkay9jb3JlOjpyZXNvbHZlQXdzU2RrU2lnVjRDb25maWcgLSBgY3JlZGVudGlhbHNgIG5vdCBwcm92aWRlZCBhbmQgbm8gY3JlZGVudGlhbERlZmF1bHRQcm92aWRlciB3YXMgY29uZmlndXJlZC5cIik7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfVxuICAgIGNyZWRlbnRpYWxzUHJvdmlkZXIubWVtb2l6ZWQgPSB0cnVlO1xuICAgIHJldHVybiBjcmVkZW50aWFsc1Byb3ZpZGVyO1xufVxuZnVuY3Rpb24gYmluZENhbGxlckNvbmZpZyhjb25maWcsIGNyZWRlbnRpYWxzUHJvdmlkZXIpIHtcbiAgICBpZiAoY3JlZGVudGlhbHNQcm92aWRlci5jb25maWdCb3VuZCkge1xuICAgICAgICByZXR1cm4gY3JlZGVudGlhbHNQcm92aWRlcjtcbiAgICB9XG4gICAgY29uc3QgZm4gPSBhc3luYyAob3B0aW9ucykgPT4gY3JlZGVudGlhbHNQcm92aWRlcih7IC4uLm9wdGlvbnMsIGNhbGxlckNsaWVudENvbmZpZzogY29uZmlnIH0pO1xuICAgIGZuLm1lbW9pemVkID0gY3JlZGVudGlhbHNQcm92aWRlci5tZW1vaXplZDtcbiAgICBmbi5jb25maWdCb3VuZCA9IHRydWU7XG4gICAgcmV0dXJuIGZuO1xufVxuIiwgImV4cG9ydCB7IEF3c1Nka1NpZ1Y0U2lnbmVyLCBBV1NTREtTaWdWNFNpZ25lciwgdmFsaWRhdGVTaWduaW5nUHJvcGVydGllcyB9IGZyb20gXCIuL0F3c1Nka1NpZ1Y0U2lnbmVyXCI7XG5leHBvcnQgeyBBd3NTZGtTaWdWNEFTaWduZXIgfSBmcm9tIFwiLi9Bd3NTZGtTaWdWNEFTaWduZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL05PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9PUFRJT05TXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9yZXNvbHZlQXdzU2RrU2lnVjRBQ29uZmlnXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9yZXNvbHZlQXdzU2RrU2lnVjRDb25maWdcIjtcbiIsICJleHBvcnQgKiBmcm9tIFwiLi9hd3Nfc2RrXCI7XG5leHBvcnQgKiBmcm9tIFwiLi91dGlscy9nZXRCZWFyZXJUb2tlbkVudktleVwiO1xuIiwgImltcG9ydCB7IE5vcm1hbGl6ZWRTY2hlbWEsIFR5cGVSZWdpc3RyeSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2NoZW1hXCI7XG5pbXBvcnQgeyBkZWNvcmF0ZVNlcnZpY2VFeGNlcHRpb24gfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5leHBvcnQgY2xhc3MgUHJvdG9jb2xMaWIge1xuICAgIHF1ZXJ5Q29tcGF0O1xuICAgIGVycm9yUmVnaXN0cnk7XG4gICAgY29uc3RydWN0b3IocXVlcnlDb21wYXQgPSBmYWxzZSkge1xuICAgICAgICB0aGlzLnF1ZXJ5Q29tcGF0ID0gcXVlcnlDb21wYXQ7XG4gICAgfVxuICAgIHJlc29sdmVSZXN0Q29udGVudFR5cGUoZGVmYXVsdENvbnRlbnRUeXBlLCBpbnB1dFNjaGVtYSkge1xuICAgICAgICBjb25zdCBtZW1iZXJzID0gaW5wdXRTY2hlbWEuZ2V0TWVtYmVyU2NoZW1hcygpO1xuICAgICAgICBjb25zdCBodHRwUGF5bG9hZE1lbWJlciA9IE9iamVjdC52YWx1ZXMobWVtYmVycykuZmluZCgobSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuICEhbS5nZXRNZXJnZWRUcmFpdHMoKS5odHRwUGF5bG9hZDtcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChodHRwUGF5bG9hZE1lbWJlcikge1xuICAgICAgICAgICAgY29uc3QgbWVkaWFUeXBlID0gaHR0cFBheWxvYWRNZW1iZXIuZ2V0TWVyZ2VkVHJhaXRzKCkubWVkaWFUeXBlO1xuICAgICAgICAgICAgaWYgKG1lZGlhVHlwZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBtZWRpYVR5cGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChodHRwUGF5bG9hZE1lbWJlci5pc1N0cmluZ1NjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwidGV4dC9wbGFpblwiO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoaHR0cFBheWxvYWRNZW1iZXIuaXNCbG9iU2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW1cIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBkZWZhdWx0Q29udGVudFR5cGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoIWlucHV0U2NoZW1hLmlzVW5pdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICBjb25zdCBoYXNCb2R5ID0gT2JqZWN0LnZhbHVlcyhtZW1iZXJzKS5maW5kKChtKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBodHRwUXVlcnksIGh0dHBRdWVyeVBhcmFtcywgaHR0cEhlYWRlciwgaHR0cExhYmVsLCBodHRwUHJlZml4SGVhZGVycyB9ID0gbS5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBub1ByZWZpeEhlYWRlcnMgPSBodHRwUHJlZml4SGVhZGVycyA9PT0gdm9pZCAwO1xuICAgICAgICAgICAgICAgIHJldHVybiAhaHR0cFF1ZXJ5ICYmICFodHRwUXVlcnlQYXJhbXMgJiYgIWh0dHBIZWFkZXIgJiYgIWh0dHBMYWJlbCAmJiBub1ByZWZpeEhlYWRlcnM7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmIChoYXNCb2R5KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRDb250ZW50VHlwZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBhc3luYyBnZXRFcnJvclNjaGVtYU9yVGhyb3dCYXNlRXhjZXB0aW9uKGVycm9ySWRlbnRpZmllciwgZGVmYXVsdE5hbWVzcGFjZSwgcmVzcG9uc2UsIGRhdGFPYmplY3QsIG1ldGFkYXRhLCBnZXRFcnJvclNjaGVtYSkge1xuICAgICAgICBsZXQgZXJyb3JOYW1lID0gZXJyb3JJZGVudGlmaWVyO1xuICAgICAgICBpZiAoZXJyb3JJZGVudGlmaWVyLmluY2x1ZGVzKFwiI1wiKSkge1xuICAgICAgICAgICAgWywgZXJyb3JOYW1lXSA9IGVycm9ySWRlbnRpZmllci5zcGxpdChcIiNcIik7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZXJyb3JNZXRhZGF0YSA9IHtcbiAgICAgICAgICAgICRtZXRhZGF0YTogbWV0YWRhdGEsXG4gICAgICAgICAgICAkZmF1bHQ6IHJlc3BvbnNlLnN0YXR1c0NvZGUgPCA1MDAgPyBcImNsaWVudFwiIDogXCJzZXJ2ZXJcIixcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKCF0aGlzLmVycm9yUmVnaXN0cnkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkBhd3Mtc2RrL2NvcmUvcHJvdG9jb2xzIC0gZXJyb3IgaGFuZGxlciBub3QgaW5pdGlhbGl6ZWQuXCIpO1xuICAgICAgICB9XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBlcnJvclNjaGVtYSA9IGdldEVycm9yU2NoZW1hPy4odGhpcy5lcnJvclJlZ2lzdHJ5LCBlcnJvck5hbWUpID8/XG4gICAgICAgICAgICAgICAgdGhpcy5lcnJvclJlZ2lzdHJ5LmdldFNjaGVtYShlcnJvcklkZW50aWZpZXIpO1xuICAgICAgICAgICAgcmV0dXJuIHsgZXJyb3JTY2hlbWEsIGVycm9yTWV0YWRhdGEgfTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgZGF0YU9iamVjdC5tZXNzYWdlID0gZGF0YU9iamVjdC5tZXNzYWdlID8/IGRhdGFPYmplY3QuTWVzc2FnZSA/PyBcIlVua25vd25FcnJvclwiO1xuICAgICAgICAgICAgY29uc3Qgc3ludGhldGljID0gdGhpcy5lcnJvclJlZ2lzdHJ5O1xuICAgICAgICAgICAgY29uc3QgYmFzZUV4Y2VwdGlvblNjaGVtYSA9IHN5bnRoZXRpYy5nZXRCYXNlRXhjZXB0aW9uKCk7XG4gICAgICAgICAgICBpZiAoYmFzZUV4Y2VwdGlvblNjaGVtYSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IEVycm9yQ3RvciA9IHN5bnRoZXRpYy5nZXRFcnJvckN0b3IoYmFzZUV4Y2VwdGlvblNjaGVtYSkgPz8gRXJyb3I7XG4gICAgICAgICAgICAgICAgdGhyb3cgdGhpcy5kZWNvcmF0ZVNlcnZpY2VFeGNlcHRpb24oT2JqZWN0LmFzc2lnbihuZXcgRXJyb3JDdG9yKHsgbmFtZTogZXJyb3JOYW1lIH0pLCBlcnJvck1ldGFkYXRhKSwgZGF0YU9iamVjdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBkID0gZGF0YU9iamVjdDtcbiAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBkPy5tZXNzYWdlID8/IGQ/Lk1lc3NhZ2UgPz8gZD8uRXJyb3I/Lk1lc3NhZ2UgPz8gZD8uRXJyb3I/Lm1lc3NhZ2U7XG4gICAgICAgICAgICB0aHJvdyB0aGlzLmRlY29yYXRlU2VydmljZUV4Y2VwdGlvbihPYmplY3QuYXNzaWduKG5ldyBFcnJvcihtZXNzYWdlKSwge1xuICAgICAgICAgICAgICAgIG5hbWU6IGVycm9yTmFtZSxcbiAgICAgICAgICAgIH0sIGVycm9yTWV0YWRhdGEpLCBkYXRhT2JqZWN0KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjb21wb3NlKGNvbXBvc2l0ZSwgZXJyb3JJZGVudGlmaWVyLCBkZWZhdWx0TmFtZXNwYWNlKSB7XG4gICAgICAgIGxldCBuYW1lc3BhY2UgPSBkZWZhdWx0TmFtZXNwYWNlO1xuICAgICAgICBpZiAoZXJyb3JJZGVudGlmaWVyLmluY2x1ZGVzKFwiI1wiKSkge1xuICAgICAgICAgICAgW25hbWVzcGFjZV0gPSBlcnJvcklkZW50aWZpZXIuc3BsaXQoXCIjXCIpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHN0YXRpY1JlZ2lzdHJ5ID0gVHlwZVJlZ2lzdHJ5LmZvcihuYW1lc3BhY2UpO1xuICAgICAgICBjb25zdCBkZWZhdWx0U3ludGhldGljUmVnaXN0cnkgPSBUeXBlUmVnaXN0cnkuZm9yKFwic21pdGh5LnRzLnNkay5zeW50aGV0aWMuXCIgKyBkZWZhdWx0TmFtZXNwYWNlKTtcbiAgICAgICAgY29tcG9zaXRlLmNvcHlGcm9tKHN0YXRpY1JlZ2lzdHJ5KTtcbiAgICAgICAgY29tcG9zaXRlLmNvcHlGcm9tKGRlZmF1bHRTeW50aGV0aWNSZWdpc3RyeSk7XG4gICAgICAgIHRoaXMuZXJyb3JSZWdpc3RyeSA9IGNvbXBvc2l0ZTtcbiAgICB9XG4gICAgZGVjb3JhdGVTZXJ2aWNlRXhjZXB0aW9uKGV4Y2VwdGlvbiwgYWRkaXRpb25zID0ge30pIHtcbiAgICAgICAgaWYgKHRoaXMucXVlcnlDb21wYXQpIHtcbiAgICAgICAgICAgIGNvbnN0IG1zZyA9IGV4Y2VwdGlvbi5NZXNzYWdlID8/IGFkZGl0aW9ucy5NZXNzYWdlO1xuICAgICAgICAgICAgY29uc3QgZXJyb3IgPSBkZWNvcmF0ZVNlcnZpY2VFeGNlcHRpb24oZXhjZXB0aW9uLCBhZGRpdGlvbnMpO1xuICAgICAgICAgICAgaWYgKG1zZykge1xuICAgICAgICAgICAgICAgIGVycm9yLm1lc3NhZ2UgPSBtc2c7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBlcnJvck9iaiA9IGVycm9yLkVycm9yID8/IHt9O1xuICAgICAgICAgICAgZXJyb3JPYmouVHlwZSA9IGVycm9yLkVycm9yPy5UeXBlO1xuICAgICAgICAgICAgZXJyb3JPYmouQ29kZSA9IGVycm9yLkVycm9yPy5Db2RlO1xuICAgICAgICAgICAgZXJyb3JPYmouTWVzc2FnZSA9IGVycm9yLkVycm9yPy5tZXNzYWdlID8/IGVycm9yLkVycm9yPy5NZXNzYWdlID8/IG1zZztcbiAgICAgICAgICAgIGVycm9yLkVycm9yID0gZXJyb3JPYmo7XG4gICAgICAgICAgICBjb25zdCByZXFJZCA9IGVycm9yLiRtZXRhZGF0YS5yZXF1ZXN0SWQ7XG4gICAgICAgICAgICBpZiAocmVxSWQpIHtcbiAgICAgICAgICAgICAgICBlcnJvci5SZXF1ZXN0SWQgPSByZXFJZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBlcnJvcjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGVjb3JhdGVTZXJ2aWNlRXhjZXB0aW9uKGV4Y2VwdGlvbiwgYWRkaXRpb25zKTtcbiAgICB9XG4gICAgc2V0UXVlcnlDb21wYXRFcnJvcihvdXRwdXQsIHJlc3BvbnNlKSB7XG4gICAgICAgIGNvbnN0IHF1ZXJ5RXJyb3JIZWFkZXIgPSByZXNwb25zZS5oZWFkZXJzPy5bXCJ4LWFtem4tcXVlcnktZXJyb3JcIl07XG4gICAgICAgIGlmIChvdXRwdXQgIT09IHVuZGVmaW5lZCAmJiBxdWVyeUVycm9ySGVhZGVyICE9IG51bGwpIHtcbiAgICAgICAgICAgIGNvbnN0IFtDb2RlLCBUeXBlXSA9IHF1ZXJ5RXJyb3JIZWFkZXIuc3BsaXQoXCI7XCIpO1xuICAgICAgICAgICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKG91dHB1dCk7XG4gICAgICAgICAgICBjb25zdCBFcnJvciA9IHtcbiAgICAgICAgICAgICAgICBDb2RlLFxuICAgICAgICAgICAgICAgIFR5cGUsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgb3V0cHV0LkNvZGUgPSBDb2RlO1xuICAgICAgICAgICAgb3V0cHV0LlR5cGUgPSBUeXBlO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgayA9IGtleXNbaV07XG4gICAgICAgICAgICAgICAgRXJyb3JbayA9PT0gXCJtZXNzYWdlXCIgPyBcIk1lc3NhZ2VcIiA6IGtdID0gb3V0cHV0W2tdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVsZXRlIEVycm9yLl9fdHlwZTtcbiAgICAgICAgICAgIG91dHB1dC5FcnJvciA9IEVycm9yO1xuICAgICAgICB9XG4gICAgfVxuICAgIHF1ZXJ5Q29tcGF0T3V0cHV0KHF1ZXJ5Q29tcGF0RXJyb3JEYXRhLCBlcnJvckRhdGEpIHtcbiAgICAgICAgaWYgKHF1ZXJ5Q29tcGF0RXJyb3JEYXRhLkVycm9yKSB7XG4gICAgICAgICAgICBlcnJvckRhdGEuRXJyb3IgPSBxdWVyeUNvbXBhdEVycm9yRGF0YS5FcnJvcjtcbiAgICAgICAgfVxuICAgICAgICBpZiAocXVlcnlDb21wYXRFcnJvckRhdGEuVHlwZSkge1xuICAgICAgICAgICAgZXJyb3JEYXRhLlR5cGUgPSBxdWVyeUNvbXBhdEVycm9yRGF0YS5UeXBlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChxdWVyeUNvbXBhdEVycm9yRGF0YS5Db2RlKSB7XG4gICAgICAgICAgICBlcnJvckRhdGEuQ29kZSA9IHF1ZXJ5Q29tcGF0RXJyb3JEYXRhLkNvZGU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZmluZFF1ZXJ5Q29tcGF0aWJsZUVycm9yKHJlZ2lzdHJ5LCBlcnJvck5hbWUpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiByZWdpc3RyeS5nZXRTY2hlbWEoZXJyb3JOYW1lKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgcmV0dXJuIHJlZ2lzdHJ5LmZpbmQoKHNjaGVtYSkgPT4gTm9ybWFsaXplZFNjaGVtYS5vZihzY2hlbWEpLmdldE1lcmdlZFRyYWl0cygpLmF3c1F1ZXJ5RXJyb3I/LlswXSA9PT0gZXJyb3JOYW1lKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBsb2FkU21pdGh5UnBjVjJDYm9yRXJyb3JDb2RlLCBTbWl0aHlScGNWMkNib3JQcm90b2NvbCB9IGZyb20gXCJAc21pdGh5L2NvcmUvY2JvclwiO1xuaW1wb3J0IHsgTm9ybWFsaXplZFNjaGVtYSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2NoZW1hXCI7XG5pbXBvcnQgeyBQcm90b2NvbExpYiB9IGZyb20gXCIuLi9Qcm90b2NvbExpYlwiO1xuZXhwb3J0IGNsYXNzIEF3c1NtaXRoeVJwY1YyQ2JvclByb3RvY29sIGV4dGVuZHMgU21pdGh5UnBjVjJDYm9yUHJvdG9jb2wge1xuICAgIGF3c1F1ZXJ5Q29tcGF0aWJsZTtcbiAgICBtaXhpbjtcbiAgICBjb25zdHJ1Y3Rvcih7IGRlZmF1bHROYW1lc3BhY2UsIGVycm9yVHlwZVJlZ2lzdHJpZXMsIGF3c1F1ZXJ5Q29tcGF0aWJsZSwgfSkge1xuICAgICAgICBzdXBlcih7IGRlZmF1bHROYW1lc3BhY2UsIGVycm9yVHlwZVJlZ2lzdHJpZXMgfSk7XG4gICAgICAgIHRoaXMuYXdzUXVlcnlDb21wYXRpYmxlID0gISFhd3NRdWVyeUNvbXBhdGlibGU7XG4gICAgICAgIHRoaXMubWl4aW4gPSBuZXcgUHJvdG9jb2xMaWIodGhpcy5hd3NRdWVyeUNvbXBhdGlibGUpO1xuICAgIH1cbiAgICBhc3luYyBzZXJpYWxpemVSZXF1ZXN0KG9wZXJhdGlvblNjaGVtYSwgaW5wdXQsIGNvbnRleHQpIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IGF3YWl0IHN1cGVyLnNlcmlhbGl6ZVJlcXVlc3Qob3BlcmF0aW9uU2NoZW1hLCBpbnB1dCwgY29udGV4dCk7XG4gICAgICAgIGlmICh0aGlzLmF3c1F1ZXJ5Q29tcGF0aWJsZSkge1xuICAgICAgICAgICAgcmVxdWVzdC5oZWFkZXJzW1wieC1hbXpuLXF1ZXJ5LW1vZGVcIl0gPSBcInRydWVcIjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVxdWVzdDtcbiAgICB9XG4gICAgYXN5bmMgaGFuZGxlRXJyb3Iob3BlcmF0aW9uU2NoZW1hLCBjb250ZXh0LCByZXNwb25zZSwgZGF0YU9iamVjdCwgbWV0YWRhdGEpIHtcbiAgICAgICAgaWYgKHRoaXMuYXdzUXVlcnlDb21wYXRpYmxlKSB7XG4gICAgICAgICAgICB0aGlzLm1peGluLnNldFF1ZXJ5Q29tcGF0RXJyb3IoZGF0YU9iamVjdCwgcmVzcG9uc2UpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGVycm9yTmFtZSA9ICgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjb21wYXRIZWFkZXIgPSByZXNwb25zZS5oZWFkZXJzW1wieC1hbXpuLXF1ZXJ5LWVycm9yXCJdO1xuICAgICAgICAgICAgaWYgKGNvbXBhdEhlYWRlciAmJiB0aGlzLmF3c1F1ZXJ5Q29tcGF0aWJsZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBjb21wYXRIZWFkZXIuc3BsaXQoXCI7XCIpWzBdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGxvYWRTbWl0aHlScGNWMkNib3JFcnJvckNvZGUocmVzcG9uc2UsIGRhdGFPYmplY3QpID8/IFwiVW5rbm93blwiO1xuICAgICAgICB9KSgpO1xuICAgICAgICB0aGlzLm1peGluLmNvbXBvc2UodGhpcy5jb21wb3NpdGVFcnJvclJlZ2lzdHJ5LCBlcnJvck5hbWUsIHRoaXMub3B0aW9ucy5kZWZhdWx0TmFtZXNwYWNlKTtcbiAgICAgICAgY29uc3QgeyBlcnJvclNjaGVtYSwgZXJyb3JNZXRhZGF0YSB9ID0gYXdhaXQgdGhpcy5taXhpbi5nZXRFcnJvclNjaGVtYU9yVGhyb3dCYXNlRXhjZXB0aW9uKGVycm9yTmFtZSwgdGhpcy5vcHRpb25zLmRlZmF1bHROYW1lc3BhY2UsIHJlc3BvbnNlLCBkYXRhT2JqZWN0LCBtZXRhZGF0YSwgdGhpcy5hd3NRdWVyeUNvbXBhdGlibGUgPyB0aGlzLm1peGluLmZpbmRRdWVyeUNvbXBhdGlibGVFcnJvciA6IHVuZGVmaW5lZCk7XG4gICAgICAgIGNvbnN0IG5zID0gTm9ybWFsaXplZFNjaGVtYS5vZihlcnJvclNjaGVtYSk7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBkYXRhT2JqZWN0Lm1lc3NhZ2UgPz8gZGF0YU9iamVjdC5NZXNzYWdlID8/IFwiVW5rbm93bkVycm9yXCI7XG4gICAgICAgIGNvbnN0IEVycm9yQ3RvciA9IHRoaXMuY29tcG9zaXRlRXJyb3JSZWdpc3RyeS5nZXRFcnJvckN0b3IoZXJyb3JTY2hlbWEpID8/IEVycm9yO1xuICAgICAgICBjb25zdCBleGNlcHRpb24gPSBuZXcgRXJyb3JDdG9yKG1lc3NhZ2UpO1xuICAgICAgICBjb25zdCBvdXRwdXQgPSB7fTtcbiAgICAgICAgZm9yIChjb25zdCBbbmFtZSwgbWVtYmVyXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICBpZiAoZGF0YU9iamVjdFtuYW1lXSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgb3V0cHV0W25hbWVdID0gdGhpcy5kZXNlcmlhbGl6ZXIucmVhZFZhbHVlKG1lbWJlciwgZGF0YU9iamVjdFtuYW1lXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuYXdzUXVlcnlDb21wYXRpYmxlKSB7XG4gICAgICAgICAgICB0aGlzLm1peGluLnF1ZXJ5Q29tcGF0T3V0cHV0KGRhdGFPYmplY3QsIG91dHB1dCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgdGhpcy5taXhpbi5kZWNvcmF0ZVNlcnZpY2VFeGNlcHRpb24oT2JqZWN0LmFzc2lnbihleGNlcHRpb24sIGVycm9yTWV0YWRhdGEsIHtcbiAgICAgICAgICAgICRmYXVsdDogbnMuZ2V0TWVyZ2VkVHJhaXRzKCkuZXJyb3IsXG4gICAgICAgICAgICBtZXNzYWdlLFxuICAgICAgICB9LCBvdXRwdXQpLCBkYXRhT2JqZWN0KTtcbiAgICB9XG59XG4iLCAiZXhwb3J0IGNvbnN0IF90b1N0ciA9ICh2YWwpID0+IHtcbiAgICBpZiAodmFsID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHZhbDtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB2YWwgPT09IFwibnVtYmVyXCIgfHwgdHlwZW9mIHZhbCA9PT0gXCJiaWdpbnRcIikge1xuICAgICAgICBjb25zdCB3YXJuaW5nID0gbmV3IEVycm9yKGBSZWNlaXZlZCBudW1iZXIgJHt2YWx9IHdoZXJlIGEgc3RyaW5nIHdhcyBleHBlY3RlZC5gKTtcbiAgICAgICAgd2FybmluZy5uYW1lID0gXCJXYXJuaW5nXCI7XG4gICAgICAgIGNvbnNvbGUud2Fybih3YXJuaW5nKTtcbiAgICAgICAgcmV0dXJuIFN0cmluZyh2YWwpO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHZhbCA9PT0gXCJib29sZWFuXCIpIHtcbiAgICAgICAgY29uc3Qgd2FybmluZyA9IG5ldyBFcnJvcihgUmVjZWl2ZWQgYm9vbGVhbiAke3ZhbH0gd2hlcmUgYSBzdHJpbmcgd2FzIGV4cGVjdGVkLmApO1xuICAgICAgICB3YXJuaW5nLm5hbWUgPSBcIldhcm5pbmdcIjtcbiAgICAgICAgY29uc29sZS53YXJuKHdhcm5pbmcpO1xuICAgICAgICByZXR1cm4gU3RyaW5nKHZhbCk7XG4gICAgfVxuICAgIHJldHVybiB2YWw7XG59O1xuZXhwb3J0IGNvbnN0IF90b0Jvb2wgPSAodmFsKSA9PiB7XG4gICAgaWYgKHZhbCA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiB2YWw7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgdmFsID09PSBcIm51bWJlclwiKSB7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgdmFsID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIGNvbnN0IGxvd2VyY2FzZSA9IHZhbC50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBpZiAodmFsICE9PSBcIlwiICYmIGxvd2VyY2FzZSAhPT0gXCJmYWxzZVwiICYmIGxvd2VyY2FzZSAhPT0gXCJ0cnVlXCIpIHtcbiAgICAgICAgICAgIGNvbnN0IHdhcm5pbmcgPSBuZXcgRXJyb3IoYFJlY2VpdmVkIHN0cmluZyBcIiR7dmFsfVwiIHdoZXJlIGEgYm9vbGVhbiB3YXMgZXhwZWN0ZWQuYCk7XG4gICAgICAgICAgICB3YXJuaW5nLm5hbWUgPSBcIldhcm5pbmdcIjtcbiAgICAgICAgICAgIGNvbnNvbGUud2Fybih3YXJuaW5nKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsICE9PSBcIlwiICYmIGxvd2VyY2FzZSAhPT0gXCJmYWxzZVwiO1xuICAgIH1cbiAgICByZXR1cm4gdmFsO1xufTtcbmV4cG9ydCBjb25zdCBfdG9OdW0gPSAodmFsKSA9PiB7XG4gICAgaWYgKHZhbCA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiB2YWw7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgdmFsID09PSBcImJvb2xlYW5cIikge1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHZhbCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICBjb25zdCBudW0gPSBOdW1iZXIodmFsKTtcbiAgICAgICAgaWYgKG51bS50b1N0cmluZygpICE9PSB2YWwpIHtcbiAgICAgICAgICAgIGNvbnN0IHdhcm5pbmcgPSBuZXcgRXJyb3IoYFJlY2VpdmVkIHN0cmluZyBcIiR7dmFsfVwiIHdoZXJlIGEgbnVtYmVyIHdhcyBleHBlY3RlZC5gKTtcbiAgICAgICAgICAgIHdhcm5pbmcubmFtZSA9IFwiV2FybmluZ1wiO1xuICAgICAgICAgICAgY29uc29sZS53YXJuKHdhcm5pbmcpO1xuICAgICAgICAgICAgcmV0dXJuIHZhbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVtO1xuICAgIH1cbiAgICByZXR1cm4gdmFsO1xufTtcbiIsICJleHBvcnQgY2xhc3MgU2VyZGVDb250ZXh0Q29uZmlnIHtcbiAgICBzZXJkZUNvbnRleHQ7XG4gICAgc2V0U2VyZGVDb250ZXh0KHNlcmRlQ29udGV4dCkge1xuICAgICAgICB0aGlzLnNlcmRlQ29udGV4dCA9IHNlcmRlQ29udGV4dDtcbiAgICB9XG59XG4iLCAiZXhwb3J0IGNsYXNzIFVuaW9uU2VyZGUge1xuICAgIGZyb207XG4gICAgdG87XG4gICAga2V5cztcbiAgICBjb25zdHJ1Y3Rvcihmcm9tLCB0bykge1xuICAgICAgICB0aGlzLmZyb20gPSBmcm9tO1xuICAgICAgICB0aGlzLnRvID0gdG87XG4gICAgICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyh0aGlzLmZyb20pO1xuICAgICAgICBjb25zdCBzZXQgPSBuZXcgU2V0KGtleXMpO1xuICAgICAgICBzZXQuZGVsZXRlKFwiX190eXBlXCIpO1xuICAgICAgICB0aGlzLmtleXMgPSBzZXQ7XG4gICAgfVxuICAgIG1hcmsoa2V5KSB7XG4gICAgICAgIHRoaXMua2V5cy5kZWxldGUoa2V5KTtcbiAgICB9XG4gICAgaGFzVW5rbm93bigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMua2V5cy5zaXplID09PSAxICYmIE9iamVjdC5rZXlzKHRoaXMudG8pLmxlbmd0aCA9PT0gMDtcbiAgICB9XG4gICAgd3JpdGVVbmtub3duKCkge1xuICAgICAgICBpZiAodGhpcy5oYXNVbmtub3duKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IGsgPSB0aGlzLmtleXMudmFsdWVzKCkubmV4dCgpLnZhbHVlO1xuICAgICAgICAgICAgY29uc3QgdiA9IHRoaXMuZnJvbVtrXTtcbiAgICAgICAgICAgIHRoaXMudG8uJHVua25vd24gPSBbaywgdl07XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgTnVtZXJpY1ZhbHVlIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zZXJkZVwiO1xuZXhwb3J0IGZ1bmN0aW9uIGpzb25SZXZpdmVyKGtleSwgdmFsdWUsIGNvbnRleHQpIHtcbiAgICBpZiAoY29udGV4dD8uc291cmNlKSB7XG4gICAgICAgIGNvbnN0IG51bWVyaWNTdHJpbmcgPSBjb250ZXh0LnNvdXJjZTtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgaWYgKHZhbHVlID4gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIgfHwgdmFsdWUgPCBOdW1iZXIuTUlOX1NBRkVfSU5URUdFUiB8fCBudW1lcmljU3RyaW5nICE9PSBTdHJpbmcodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNGcmFjdGlvbmFsID0gbnVtZXJpY1N0cmluZy5pbmNsdWRlcyhcIi5cIik7XG4gICAgICAgICAgICAgICAgaWYgKGlzRnJhY3Rpb25hbCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IE51bWVyaWNWYWx1ZShudW1lcmljU3RyaW5nLCBcImJpZ0RlY2ltYWxcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gQmlnSW50KG51bWVyaWNTdHJpbmcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG59XG4iLCAiaW1wb3J0IHsgY29sbGVjdEJvZHkgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyB0b1V0ZjggfSBmcm9tIFwiQHNtaXRoeS91dGlsLXV0ZjhcIjtcbmV4cG9ydCBjb25zdCBjb2xsZWN0Qm9keVN0cmluZyA9IChzdHJlYW1Cb2R5LCBjb250ZXh0KSA9PiBjb2xsZWN0Qm9keShzdHJlYW1Cb2R5LCBjb250ZXh0KS50aGVuKChib2R5KSA9PiAoY29udGV4dD8udXRmOEVuY29kZXIgPz8gdG9VdGY4KShib2R5KSk7XG4iLCAiaW1wb3J0IHsgY29sbGVjdEJvZHlTdHJpbmcgfSBmcm9tIFwiLi4vY29tbW9uXCI7XG5leHBvcnQgY29uc3QgcGFyc2VKc29uQm9keSA9IChzdHJlYW1Cb2R5LCBjb250ZXh0KSA9PiBjb2xsZWN0Qm9keVN0cmluZyhzdHJlYW1Cb2R5LCBjb250ZXh0KS50aGVuKChlbmNvZGVkKSA9PiB7XG4gICAgaWYgKGVuY29kZWQubGVuZ3RoKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShlbmNvZGVkKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgaWYgKGU/Lm5hbWUgPT09IFwiU3ludGF4RXJyb3JcIikge1xuICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCBcIiRyZXNwb25zZUJvZHlUZXh0XCIsIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGVuY29kZWQsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7fTtcbn0pO1xuZXhwb3J0IGNvbnN0IHBhcnNlSnNvbkVycm9yQm9keSA9IGFzeW5jIChlcnJvckJvZHksIGNvbnRleHQpID0+IHtcbiAgICBjb25zdCB2YWx1ZSA9IGF3YWl0IHBhcnNlSnNvbkJvZHkoZXJyb3JCb2R5LCBjb250ZXh0KTtcbiAgICB2YWx1ZS5tZXNzYWdlID0gdmFsdWUubWVzc2FnZSA/PyB2YWx1ZS5NZXNzYWdlO1xuICAgIHJldHVybiB2YWx1ZTtcbn07XG5jb25zdCBmaW5kS2V5ID0gKG9iamVjdCwga2V5KSA9PiBPYmplY3Qua2V5cyhvYmplY3QpLmZpbmQoKGspID0+IGsudG9Mb3dlckNhc2UoKSA9PT0ga2V5LnRvTG93ZXJDYXNlKCkpO1xuY29uc3Qgc2FuaXRpemVFcnJvckNvZGUgPSAocmF3VmFsdWUpID0+IHtcbiAgICBsZXQgY2xlYW5WYWx1ZSA9IHJhd1ZhbHVlO1xuICAgIGlmICh0eXBlb2YgY2xlYW5WYWx1ZSA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICBjbGVhblZhbHVlID0gY2xlYW5WYWx1ZS50b1N0cmluZygpO1xuICAgIH1cbiAgICBpZiAoY2xlYW5WYWx1ZS5pbmRleE9mKFwiLFwiKSA+PSAwKSB7XG4gICAgICAgIGNsZWFuVmFsdWUgPSBjbGVhblZhbHVlLnNwbGl0KFwiLFwiKVswXTtcbiAgICB9XG4gICAgaWYgKGNsZWFuVmFsdWUuaW5kZXhPZihcIjpcIikgPj0gMCkge1xuICAgICAgICBjbGVhblZhbHVlID0gY2xlYW5WYWx1ZS5zcGxpdChcIjpcIilbMF07XG4gICAgfVxuICAgIGlmIChjbGVhblZhbHVlLmluZGV4T2YoXCIjXCIpID49IDApIHtcbiAgICAgICAgY2xlYW5WYWx1ZSA9IGNsZWFuVmFsdWUuc3BsaXQoXCIjXCIpWzFdO1xuICAgIH1cbiAgICByZXR1cm4gY2xlYW5WYWx1ZTtcbn07XG5leHBvcnQgY29uc3QgbG9hZFJlc3RKc29uRXJyb3JDb2RlID0gKG91dHB1dCwgZGF0YSkgPT4ge1xuICAgIGNvbnN0IGhlYWRlcktleSA9IGZpbmRLZXkob3V0cHV0LmhlYWRlcnMsIFwieC1hbXpuLWVycm9ydHlwZVwiKTtcbiAgICBpZiAoaGVhZGVyS2V5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIHNhbml0aXplRXJyb3JDb2RlKG91dHB1dC5oZWFkZXJzW2hlYWRlcktleV0pO1xuICAgIH1cbiAgICBpZiAoZGF0YSAmJiB0eXBlb2YgZGF0YSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICBjb25zdCBjb2RlS2V5ID0gZmluZEtleShkYXRhLCBcImNvZGVcIik7XG4gICAgICAgIGlmIChjb2RlS2V5ICYmIGRhdGFbY29kZUtleV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHNhbml0aXplRXJyb3JDb2RlKGRhdGFbY29kZUtleV0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhW1wiX190eXBlXCJdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBzYW5pdGl6ZUVycm9yQ29kZShkYXRhW1wiX190eXBlXCJdKTtcbiAgICAgICAgfVxuICAgIH1cbn07XG4iLCAiaW1wb3J0IHsgZGV0ZXJtaW5lVGltZXN0YW1wRm9ybWF0IH0gZnJvbSBcIkBzbWl0aHkvY29yZS9wcm90b2NvbHNcIjtcbmltcG9ydCB7IE5vcm1hbGl6ZWRTY2hlbWEgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3NjaGVtYVwiO1xuaW1wb3J0IHsgTGF6eUpzb25TdHJpbmcsIE51bWVyaWNWYWx1ZSwgcGFyc2VFcG9jaFRpbWVzdGFtcCwgcGFyc2VSZmMzMzM5RGF0ZVRpbWVXaXRoT2Zmc2V0LCBwYXJzZVJmYzcyMzFEYXRlVGltZSwgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3NlcmRlXCI7XG5pbXBvcnQgeyBmcm9tQmFzZTY0IH0gZnJvbSBcIkBzbWl0aHkvdXRpbC1iYXNlNjRcIjtcbmltcG9ydCB7IFNlcmRlQ29udGV4dENvbmZpZyB9IGZyb20gXCIuLi9Db25maWd1cmFibGVTZXJkZUNvbnRleHRcIjtcbmltcG9ydCB7IFVuaW9uU2VyZGUgfSBmcm9tIFwiLi4vVW5pb25TZXJkZVwiO1xuaW1wb3J0IHsganNvblJldml2ZXIgfSBmcm9tIFwiLi9qc29uUmV2aXZlclwiO1xuaW1wb3J0IHsgcGFyc2VKc29uQm9keSB9IGZyb20gXCIuL3BhcnNlSnNvbkJvZHlcIjtcbmV4cG9ydCBjbGFzcyBKc29uU2hhcGVEZXNlcmlhbGl6ZXIgZXh0ZW5kcyBTZXJkZUNvbnRleHRDb25maWcge1xuICAgIHNldHRpbmdzO1xuICAgIGNvbnN0cnVjdG9yKHNldHRpbmdzKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuc2V0dGluZ3MgPSBzZXR0aW5ncztcbiAgICB9XG4gICAgYXN5bmMgcmVhZChzY2hlbWEsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlYWQoc2NoZW1hLCB0eXBlb2YgZGF0YSA9PT0gXCJzdHJpbmdcIiA/IEpTT04ucGFyc2UoZGF0YSwganNvblJldml2ZXIpIDogYXdhaXQgcGFyc2VKc29uQm9keShkYXRhLCB0aGlzLnNlcmRlQ29udGV4dCkpO1xuICAgIH1cbiAgICByZWFkT2JqZWN0KHNjaGVtYSwgZGF0YSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVhZChzY2hlbWEsIGRhdGEpO1xuICAgIH1cbiAgICBfcmVhZChzY2hlbWEsIHZhbHVlKSB7XG4gICAgICAgIGNvbnN0IGlzT2JqZWN0ID0gdmFsdWUgIT09IG51bGwgJiYgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiO1xuICAgICAgICBjb25zdCBucyA9IE5vcm1hbGl6ZWRTY2hlbWEub2Yoc2NoZW1hKTtcbiAgICAgICAgaWYgKGlzT2JqZWN0KSB7XG4gICAgICAgICAgICBpZiAobnMuaXNTdHJ1Y3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlY29yZCA9IHZhbHVlO1xuICAgICAgICAgICAgICAgIGNvbnN0IHVuaW9uID0gbnMuaXNVbmlvblNjaGVtYSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IG91dCA9IHt9O1xuICAgICAgICAgICAgICAgIGxldCBuYW1lTWFwID0gdm9pZCAwO1xuICAgICAgICAgICAgICAgIGNvbnN0IHsganNvbk5hbWUgfSA9IHRoaXMuc2V0dGluZ3M7XG4gICAgICAgICAgICAgICAgaWYgKGpzb25OYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWVNYXAgPSB7fTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbGV0IHVuaW9uU2VyZGU7XG4gICAgICAgICAgICAgICAgaWYgKHVuaW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIHVuaW9uU2VyZGUgPSBuZXcgVW5pb25TZXJkZShyZWNvcmQsIG91dCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgW21lbWJlck5hbWUsIG1lbWJlclNjaGVtYV0gb2YgbnMuc3RydWN0SXRlcmF0b3IoKSkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgZnJvbUtleSA9IG1lbWJlck5hbWU7XG4gICAgICAgICAgICAgICAgICAgIGlmIChqc29uTmFtZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZnJvbUtleSA9IG1lbWJlclNjaGVtYS5nZXRNZXJnZWRUcmFpdHMoKS5qc29uTmFtZSA/PyBmcm9tS2V5O1xuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZU1hcFtmcm9tS2V5XSA9IG1lbWJlck5hbWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHVuaW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB1bmlvblNlcmRlLm1hcmsoZnJvbUtleSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlY29yZFtmcm9tS2V5XSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvdXRbbWVtYmVyTmFtZV0gPSB0aGlzLl9yZWFkKG1lbWJlclNjaGVtYSwgcmVjb3JkW2Zyb21LZXldKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodW5pb24pIHtcbiAgICAgICAgICAgICAgICAgICAgdW5pb25TZXJkZS53cml0ZVVua25vd24oKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAodHlwZW9mIHJlY29yZC5fX3R5cGUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBrIGluIHJlY29yZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdiA9IHJlY29yZFtrXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHQgPSBqc29uTmFtZSA/IG5hbWVNYXBba10gPz8gayA6IGs7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoISh0IGluIG91dCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRbdF0gPSB2O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBvdXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgbnMuaXNMaXN0U2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBsaXN0TWVtYmVyID0gbnMuZ2V0VmFsdWVTY2hlbWEoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBvdXQgPSBbXTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgb3V0LnB1c2godGhpcy5fcmVhZChsaXN0TWVtYmVyLCBpdGVtKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBvdXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobnMuaXNNYXBTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG1hcE1lbWJlciA9IG5zLmdldFZhbHVlU2NoZW1hKCk7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3V0ID0ge307XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBfayBpbiB2YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBvdXRbX2tdID0gdGhpcy5fcmVhZChtYXBNZW1iZXIsIHZhbHVlW19rXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBvdXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzQmxvYlNjaGVtYSgpICYmIHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgcmV0dXJuIGZyb21CYXNlNjQodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG1lZGlhVHlwZSA9IG5zLmdldE1lcmdlZFRyYWl0cygpLm1lZGlhVHlwZTtcbiAgICAgICAgaWYgKG5zLmlzU3RyaW5nU2NoZW1hKCkgJiYgdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiICYmIG1lZGlhVHlwZSkge1xuICAgICAgICAgICAgY29uc3QgaXNKc29uID0gbWVkaWFUeXBlID09PSBcImFwcGxpY2F0aW9uL2pzb25cIiB8fCBtZWRpYVR5cGUuZW5kc1dpdGgoXCIranNvblwiKTtcbiAgICAgICAgICAgIGlmIChpc0pzb24pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gTGF6eUpzb25TdHJpbmcuZnJvbSh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzVGltZXN0YW1wU2NoZW1hKCkgJiYgdmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc3QgZm9ybWF0ID0gZGV0ZXJtaW5lVGltZXN0YW1wRm9ybWF0KG5zLCB0aGlzLnNldHRpbmdzKTtcbiAgICAgICAgICAgIHN3aXRjaCAoZm9ybWF0KSB7XG4gICAgICAgICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcGFyc2VSZmMzMzM5RGF0ZVRpbWVXaXRoT2Zmc2V0KHZhbHVlKTtcbiAgICAgICAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZVJmYzcyMzFEYXRlVGltZSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgY2FzZSA3OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcGFyc2VFcG9jaFRpbWVzdGFtcCh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKFwiTWlzc2luZyB0aW1lc3RhbXAgZm9ybWF0LCBwYXJzaW5nIHZhbHVlIHdpdGggRGF0ZSBjb25zdHJ1Y3RvcjpcIiwgdmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IERhdGUodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChucy5pc0JpZ0ludGVnZXJTY2hlbWEoKSAmJiAodHlwZW9mIHZhbHVlID09PSBcIm51bWJlclwiIHx8IHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikpIHtcbiAgICAgICAgICAgIHJldHVybiBCaWdJbnQodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChucy5pc0JpZ0RlY2ltYWxTY2hlbWEoKSAmJiB2YWx1ZSAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIE51bWVyaWNWYWx1ZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHVudHlwZWQgPSB2YWx1ZTtcbiAgICAgICAgICAgIGlmICh1bnR5cGVkLnR5cGUgPT09IFwiYmlnRGVjaW1hbFwiICYmIFwic3RyaW5nXCIgaW4gdW50eXBlZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgTnVtZXJpY1ZhbHVlKHVudHlwZWQuc3RyaW5nLCB1bnR5cGVkLnR5cGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG5ldyBOdW1lcmljVmFsdWUoU3RyaW5nKHZhbHVlKSwgXCJiaWdEZWNpbWFsXCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChucy5pc051bWVyaWNTY2hlbWEoKSAmJiB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIHN3aXRjaCAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIFwiSW5maW5pdHlcIjpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEluZmluaXR5O1xuICAgICAgICAgICAgICAgIGNhc2UgXCItSW5maW5pdHlcIjpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1JbmZpbml0eTtcbiAgICAgICAgICAgICAgICBjYXNlIFwiTmFOXCI6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBOYU47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzRG9jdW1lbnRTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKGlzT2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3V0ID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyBbXSA6IHt9O1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgayBpbiB2YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB2ID0gdmFsdWVba107XG4gICAgICAgICAgICAgICAgICAgIGlmICh2IGluc3RhbmNlb2YgTnVtZXJpY1ZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvdXRba10gPSB2O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3V0W2tdID0gdGhpcy5fcmVhZChucywgdik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIG91dDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBzdHJ1Y3R1cmVkQ2xvbmUodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgTnVtZXJpY1ZhbHVlIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zZXJkZVwiO1xuY29uc3QgTlVNRVJJQ19DT05UUk9MX0NIQVIgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKDkyNSk7XG5leHBvcnQgY2xhc3MgSnNvblJlcGxhY2VyIHtcbiAgICB2YWx1ZXMgPSBuZXcgTWFwKCk7XG4gICAgY291bnRlciA9IDA7XG4gICAgc3RhZ2UgPSAwO1xuICAgIGNyZWF0ZVJlcGxhY2VyKCkge1xuICAgICAgICBpZiAodGhpcy5zdGFnZSA9PT0gMSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSBKc29uUmVwbGFjZXIgYWxyZWFkeSBjcmVhdGVkLlwiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5zdGFnZSA9PT0gMikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSBKc29uUmVwbGFjZXIgZXhoYXVzdGVkLlwiKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnN0YWdlID0gMTtcbiAgICAgICAgcmV0dXJuIChrZXksIHZhbHVlKSA9PiB7XG4gICAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBOdW1lcmljVmFsdWUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB2ID0gYCR7TlVNRVJJQ19DT05UUk9MX0NIQVIgKyBcIm52XCIgKyB0aGlzLmNvdW50ZXIrK31fYCArIHZhbHVlLnN0cmluZztcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlcy5zZXQoYFwiJHt2fVwiYCwgdmFsdWUuc3RyaW5nKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwiYmlnaW50XCIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzID0gdmFsdWUudG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICBjb25zdCB2ID0gYCR7TlVNRVJJQ19DT05UUk9MX0NIQVIgKyBcImJcIiArIHRoaXMuY291bnRlcisrfV9gICsgcztcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlcy5zZXQoYFwiJHt2fVwiYCwgcyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHY7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH07XG4gICAgfVxuICAgIHJlcGxhY2VJbkpzb24oanNvbikge1xuICAgICAgICBpZiAodGhpcy5zdGFnZSA9PT0gMCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSBKc29uUmVwbGFjZXIgbm90IGNyZWF0ZWQgeWV0LlwiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5zdGFnZSA9PT0gMikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSBKc29uUmVwbGFjZXIgZXhoYXVzdGVkLlwiKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnN0YWdlID0gMjtcbiAgICAgICAgaWYgKHRoaXMuY291bnRlciA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIGpzb247XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgdGhpcy52YWx1ZXMpIHtcbiAgICAgICAgICAgIGpzb24gPSBqc29uLnJlcGxhY2Uoa2V5LCB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGpzb247XG4gICAgfVxufVxuIiwgImltcG9ydCB7IGRldGVybWluZVRpbWVzdGFtcEZvcm1hdCB9IGZyb20gXCJAc21pdGh5L2NvcmUvcHJvdG9jb2xzXCI7XG5pbXBvcnQgeyBOb3JtYWxpemVkU2NoZW1hIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IGRhdGVUb1V0Y1N0cmluZywgZ2VuZXJhdGVJZGVtcG90ZW5jeVRva2VuLCBMYXp5SnNvblN0cmluZywgTnVtZXJpY1ZhbHVlIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zZXJkZVwiO1xuaW1wb3J0IHsgdG9CYXNlNjQgfSBmcm9tIFwiQHNtaXRoeS91dGlsLWJhc2U2NFwiO1xuaW1wb3J0IHsgU2VyZGVDb250ZXh0Q29uZmlnIH0gZnJvbSBcIi4uL0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dFwiO1xuaW1wb3J0IHsgSnNvblJlcGxhY2VyIH0gZnJvbSBcIi4vanNvblJlcGxhY2VyXCI7XG5leHBvcnQgY2xhc3MgSnNvblNoYXBlU2VyaWFsaXplciBleHRlbmRzIFNlcmRlQ29udGV4dENvbmZpZyB7XG4gICAgc2V0dGluZ3M7XG4gICAgYnVmZmVyO1xuICAgIHVzZVJlcGxhY2VyID0gZmFsc2U7XG4gICAgcm9vdFNjaGVtYTtcbiAgICBjb25zdHJ1Y3RvcihzZXR0aW5ncykge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnNldHRpbmdzID0gc2V0dGluZ3M7XG4gICAgfVxuICAgIHdyaXRlKHNjaGVtYSwgdmFsdWUpIHtcbiAgICAgICAgdGhpcy5yb290U2NoZW1hID0gTm9ybWFsaXplZFNjaGVtYS5vZihzY2hlbWEpO1xuICAgICAgICB0aGlzLmJ1ZmZlciA9IHRoaXMuX3dyaXRlKHRoaXMucm9vdFNjaGVtYSwgdmFsdWUpO1xuICAgIH1cbiAgICBmbHVzaCgpIHtcbiAgICAgICAgY29uc3QgeyByb290U2NoZW1hLCB1c2VSZXBsYWNlciB9ID0gdGhpcztcbiAgICAgICAgdGhpcy5yb290U2NoZW1hID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLnVzZVJlcGxhY2VyID0gZmFsc2U7XG4gICAgICAgIGlmIChyb290U2NoZW1hPy5pc1N0cnVjdFNjaGVtYSgpIHx8IHJvb3RTY2hlbWE/LmlzRG9jdW1lbnRTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKCF1c2VSZXBsYWNlcikge1xuICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh0aGlzLmJ1ZmZlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCByZXBsYWNlciA9IG5ldyBKc29uUmVwbGFjZXIoKTtcbiAgICAgICAgICAgIHJldHVybiByZXBsYWNlci5yZXBsYWNlSW5Kc29uKEpTT04uc3RyaW5naWZ5KHRoaXMuYnVmZmVyLCByZXBsYWNlci5jcmVhdGVSZXBsYWNlcigpLCAwKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuYnVmZmVyO1xuICAgIH1cbiAgICB3cml0ZURpc2NyaW1pbmF0ZWREb2N1bWVudChzY2hlbWEsIHZhbHVlKSB7XG4gICAgICAgIHRoaXMud3JpdGUoc2NoZW1hLCB2YWx1ZSk7XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5idWZmZXIgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgIHRoaXMuYnVmZmVyLl9fdHlwZSA9IE5vcm1hbGl6ZWRTY2hlbWEub2Yoc2NoZW1hKS5nZXROYW1lKHRydWUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIF93cml0ZShzY2hlbWEsIHZhbHVlLCBjb250YWluZXIpIHtcbiAgICAgICAgY29uc3QgaXNPYmplY3QgPSB2YWx1ZSAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCI7XG4gICAgICAgIGNvbnN0IG5zID0gTm9ybWFsaXplZFNjaGVtYS5vZihzY2hlbWEpO1xuICAgICAgICBpZiAoaXNPYmplY3QpIHtcbiAgICAgICAgICAgIGlmIChucy5pc1N0cnVjdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVjb3JkID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3V0ID0ge307XG4gICAgICAgICAgICAgICAgY29uc3QgeyBqc29uTmFtZSB9ID0gdGhpcy5zZXR0aW5ncztcbiAgICAgICAgICAgICAgICBsZXQgbmFtZU1hcCA9IHZvaWQgMDtcbiAgICAgICAgICAgICAgICBpZiAoanNvbk5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZU1hcCA9IHt9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBsZXQgb3V0Q291bnQgPSAwO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgW21lbWJlck5hbWUsIG1lbWJlclNjaGVtYV0gb2YgbnMuc3RydWN0SXRlcmF0b3IoKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzZXJpYWxpemFibGVWYWx1ZSA9IHRoaXMuX3dyaXRlKG1lbWJlclNjaGVtYSwgcmVjb3JkW21lbWJlck5hbWVdLCBucyk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzZXJpYWxpemFibGVWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGFyZ2V0S2V5ID0gbWVtYmVyTmFtZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChqc29uTmFtZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldEtleSA9IG1lbWJlclNjaGVtYS5nZXRNZXJnZWRUcmFpdHMoKS5qc29uTmFtZSA/PyBtZW1iZXJOYW1lO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVNYXBbbWVtYmVyTmFtZV0gPSB0YXJnZXRLZXk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBvdXRbdGFyZ2V0S2V5XSA9IHNlcmlhbGl6YWJsZVZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgb3V0Q291bnQrKztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAobnMuaXNVbmlvblNjaGVtYSgpICYmIG91dENvdW50ID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgJHVua25vd24gfSA9IHJlY29yZDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoJHVua25vd24pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBbaywgdl0gPSAkdW5rbm93bjtcbiAgICAgICAgICAgICAgICAgICAgICAgIG91dFtrXSA9IHRoaXMuX3dyaXRlKDE1LCB2KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmICh0eXBlb2YgcmVjb3JkLl9fdHlwZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGsgaW4gcmVjb3JkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2ID0gcmVjb3JkW2tdO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0S2V5ID0ganNvbk5hbWUgPyBuYW1lTWFwW2tdID8/IGsgOiBrO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEodGFyZ2V0S2V5IGluIG91dCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRbdGFyZ2V0S2V5XSA9IHRoaXMuX3dyaXRlKDE1LCB2KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gb3V0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpICYmIG5zLmlzTGlzdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbGlzdE1lbWJlciA9IG5zLmdldFZhbHVlU2NoZW1hKCk7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3V0ID0gW107XG4gICAgICAgICAgICAgICAgY29uc3Qgc3BhcnNlID0gISFucy5nZXRNZXJnZWRUcmFpdHMoKS5zcGFyc2U7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzcGFyc2UgfHwgaXRlbSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvdXQucHVzaCh0aGlzLl93cml0ZShsaXN0TWVtYmVyLCBpdGVtKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIG91dDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChucy5pc01hcFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbWFwTWVtYmVyID0gbnMuZ2V0VmFsdWVTY2hlbWEoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBvdXQgPSB7fTtcbiAgICAgICAgICAgICAgICBjb25zdCBzcGFyc2UgPSAhIW5zLmdldE1lcmdlZFRyYWl0cygpLnNwYXJzZTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IF9rIGluIHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IF92ID0gdmFsdWVbX2tdO1xuICAgICAgICAgICAgICAgICAgICBpZiAoc3BhcnNlIHx8IF92ICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG91dFtfa10gPSB0aGlzLl93cml0ZShtYXBNZW1iZXIsIF92KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gb3V0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgVWludDhBcnJheSAmJiAobnMuaXNCbG9iU2NoZW1hKCkgfHwgbnMuaXNEb2N1bWVudFNjaGVtYSgpKSkge1xuICAgICAgICAgICAgICAgIGlmIChucyA9PT0gdGhpcy5yb290U2NoZW1hKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuICh0aGlzLnNlcmRlQ29udGV4dD8uYmFzZTY0RW5jb2RlciA/PyB0b0Jhc2U2NCkodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSAmJiAobnMuaXNUaW1lc3RhbXBTY2hlbWEoKSB8fCBucy5pc0RvY3VtZW50U2NoZW1hKCkpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZm9ybWF0ID0gZGV0ZXJtaW5lVGltZXN0YW1wRm9ybWF0KG5zLCB0aGlzLnNldHRpbmdzKTtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGZvcm1hdCkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUudG9JU09TdHJpbmcoKS5yZXBsYWNlKFwiLjAwMFpcIiwgXCJaXCIpO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZGF0ZVRvVXRjU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA3OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlLmdldFRpbWUoKSAvIDEwMDA7XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oXCJNaXNzaW5nIHRpbWVzdGFtcCBmb3JtYXQsIHVzaW5nIGVwb2NoIHNlY29uZHNcIiwgdmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlLmdldFRpbWUoKSAvIDEwMDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgTnVtZXJpY1ZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy51c2VSZXBsYWNlciA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbHVlID09PSBudWxsICYmIGNvbnRhaW5lcj8uaXNTdHJ1Y3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgcmV0dXJuIHZvaWQgMDtcbiAgICAgICAgfVxuICAgICAgICBpZiAobnMuaXNTdHJpbmdTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJ1bmRlZmluZWRcIiAmJiBucy5pc0lkZW1wb3RlbmN5VG9rZW4oKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBnZW5lcmF0ZUlkZW1wb3RlbmN5VG9rZW4oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IG1lZGlhVHlwZSA9IG5zLmdldE1lcmdlZFRyYWl0cygpLm1lZGlhVHlwZTtcbiAgICAgICAgICAgIGlmICh2YWx1ZSAhPSBudWxsICYmIG1lZGlhVHlwZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzSnNvbiA9IG1lZGlhVHlwZSA9PT0gXCJhcHBsaWNhdGlvbi9qc29uXCIgfHwgbWVkaWFUeXBlLmVuZHNXaXRoKFwiK2pzb25cIik7XG4gICAgICAgICAgICAgICAgaWYgKGlzSnNvbikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gTGF6eUpzb25TdHJpbmcuZnJvbSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCIgJiYgbnMuaXNOdW1lcmljU2NoZW1hKCkpIHtcbiAgICAgICAgICAgIGlmIChNYXRoLmFicyh2YWx1ZSkgPT09IEluZmluaXR5IHx8IGlzTmFOKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgJiYgbnMuaXNCbG9iU2NoZW1hKCkpIHtcbiAgICAgICAgICAgIGlmIChucyA9PT0gdGhpcy5yb290U2NoZW1hKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuICh0aGlzLnNlcmRlQ29udGV4dD8uYmFzZTY0RW5jb2RlciA/PyB0b0Jhc2U2NCkodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwiYmlnaW50XCIpIHtcbiAgICAgICAgICAgIHRoaXMudXNlUmVwbGFjZXIgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChucy5pc0RvY3VtZW50U2NoZW1hKCkpIHtcbiAgICAgICAgICAgIGlmIChpc09iamVjdCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG91dCA9IEFycmF5LmlzQXJyYXkodmFsdWUpID8gW10gOiB7fTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGsgaW4gdmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdiA9IHZhbHVlW2tdO1xuICAgICAgICAgICAgICAgICAgICBpZiAodiBpbnN0YW5jZW9mIE51bWVyaWNWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51c2VSZXBsYWNlciA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBvdXRba10gPSB2O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3V0W2tdID0gdGhpcy5fd3JpdGUobnMsIHYpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBvdXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3RydWN0dXJlZENsb25lKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IFNlcmRlQ29udGV4dENvbmZpZyB9IGZyb20gXCIuLi9Db25maWd1cmFibGVTZXJkZUNvbnRleHRcIjtcbmltcG9ydCB7IEpzb25TaGFwZURlc2VyaWFsaXplciB9IGZyb20gXCIuL0pzb25TaGFwZURlc2VyaWFsaXplclwiO1xuaW1wb3J0IHsgSnNvblNoYXBlU2VyaWFsaXplciB9IGZyb20gXCIuL0pzb25TaGFwZVNlcmlhbGl6ZXJcIjtcbmV4cG9ydCBjbGFzcyBKc29uQ29kZWMgZXh0ZW5kcyBTZXJkZUNvbnRleHRDb25maWcge1xuICAgIHNldHRpbmdzO1xuICAgIGNvbnN0cnVjdG9yKHNldHRpbmdzKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuc2V0dGluZ3MgPSBzZXR0aW5ncztcbiAgICB9XG4gICAgY3JlYXRlU2VyaWFsaXplcigpIHtcbiAgICAgICAgY29uc3Qgc2VyaWFsaXplciA9IG5ldyBKc29uU2hhcGVTZXJpYWxpemVyKHRoaXMuc2V0dGluZ3MpO1xuICAgICAgICBzZXJpYWxpemVyLnNldFNlcmRlQ29udGV4dCh0aGlzLnNlcmRlQ29udGV4dCk7XG4gICAgICAgIHJldHVybiBzZXJpYWxpemVyO1xuICAgIH1cbiAgICBjcmVhdGVEZXNlcmlhbGl6ZXIoKSB7XG4gICAgICAgIGNvbnN0IGRlc2VyaWFsaXplciA9IG5ldyBKc29uU2hhcGVEZXNlcmlhbGl6ZXIodGhpcy5zZXR0aW5ncyk7XG4gICAgICAgIGRlc2VyaWFsaXplci5zZXRTZXJkZUNvbnRleHQodGhpcy5zZXJkZUNvbnRleHQpO1xuICAgICAgICByZXR1cm4gZGVzZXJpYWxpemVyO1xuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBScGNQcm90b2NvbCB9IGZyb20gXCJAc21pdGh5L2NvcmUvcHJvdG9jb2xzXCI7XG5pbXBvcnQgeyBkZXJlZiwgTm9ybWFsaXplZFNjaGVtYSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2NoZW1hXCI7XG5pbXBvcnQgeyBQcm90b2NvbExpYiB9IGZyb20gXCIuLi9Qcm90b2NvbExpYlwiO1xuaW1wb3J0IHsgSnNvbkNvZGVjIH0gZnJvbSBcIi4vSnNvbkNvZGVjXCI7XG5pbXBvcnQgeyBsb2FkUmVzdEpzb25FcnJvckNvZGUgfSBmcm9tIFwiLi9wYXJzZUpzb25Cb2R5XCI7XG5leHBvcnQgY2xhc3MgQXdzSnNvblJwY1Byb3RvY29sIGV4dGVuZHMgUnBjUHJvdG9jb2wge1xuICAgIHNlcmlhbGl6ZXI7XG4gICAgZGVzZXJpYWxpemVyO1xuICAgIHNlcnZpY2VUYXJnZXQ7XG4gICAgY29kZWM7XG4gICAgbWl4aW47XG4gICAgYXdzUXVlcnlDb21wYXRpYmxlO1xuICAgIGNvbnN0cnVjdG9yKHsgZGVmYXVsdE5hbWVzcGFjZSwgZXJyb3JUeXBlUmVnaXN0cmllcywgc2VydmljZVRhcmdldCwgYXdzUXVlcnlDb21wYXRpYmxlLCBqc29uQ29kZWMsIH0pIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgZGVmYXVsdE5hbWVzcGFjZSxcbiAgICAgICAgICAgIGVycm9yVHlwZVJlZ2lzdHJpZXMsXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnNlcnZpY2VUYXJnZXQgPSBzZXJ2aWNlVGFyZ2V0O1xuICAgICAgICB0aGlzLmNvZGVjID1cbiAgICAgICAgICAgIGpzb25Db2RlYyA/P1xuICAgICAgICAgICAgICAgIG5ldyBKc29uQ29kZWMoe1xuICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXBGb3JtYXQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHVzZVRyYWl0OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogNyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAganNvbk5hbWU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB0aGlzLnNlcmlhbGl6ZXIgPSB0aGlzLmNvZGVjLmNyZWF0ZVNlcmlhbGl6ZXIoKTtcbiAgICAgICAgdGhpcy5kZXNlcmlhbGl6ZXIgPSB0aGlzLmNvZGVjLmNyZWF0ZURlc2VyaWFsaXplcigpO1xuICAgICAgICB0aGlzLmF3c1F1ZXJ5Q29tcGF0aWJsZSA9ICEhYXdzUXVlcnlDb21wYXRpYmxlO1xuICAgICAgICB0aGlzLm1peGluID0gbmV3IFByb3RvY29sTGliKHRoaXMuYXdzUXVlcnlDb21wYXRpYmxlKTtcbiAgICB9XG4gICAgYXN5bmMgc2VyaWFsaXplUmVxdWVzdChvcGVyYXRpb25TY2hlbWEsIGlucHV0LCBjb250ZXh0KSB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSBhd2FpdCBzdXBlci5zZXJpYWxpemVSZXF1ZXN0KG9wZXJhdGlvblNjaGVtYSwgaW5wdXQsIGNvbnRleHQpO1xuICAgICAgICBpZiAoIXJlcXVlc3QucGF0aC5lbmRzV2l0aChcIi9cIikpIHtcbiAgICAgICAgICAgIHJlcXVlc3QucGF0aCArPSBcIi9cIjtcbiAgICAgICAgfVxuICAgICAgICByZXF1ZXN0LmhlYWRlcnNbXCJjb250ZW50LXR5cGVcIl0gPSBgYXBwbGljYXRpb24veC1hbXotanNvbi0ke3RoaXMuZ2V0SnNvblJwY1ZlcnNpb24oKX1gO1xuICAgICAgICByZXF1ZXN0LmhlYWRlcnNbXCJ4LWFtei10YXJnZXRcIl0gPSBgJHt0aGlzLnNlcnZpY2VUYXJnZXR9LiR7b3BlcmF0aW9uU2NoZW1hLm5hbWV9YDtcbiAgICAgICAgaWYgKHRoaXMuYXdzUXVlcnlDb21wYXRpYmxlKSB7XG4gICAgICAgICAgICByZXF1ZXN0LmhlYWRlcnNbXCJ4LWFtem4tcXVlcnktbW9kZVwiXSA9IFwidHJ1ZVwiO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkZXJlZihvcGVyYXRpb25TY2hlbWEuaW5wdXQpID09PSBcInVuaXRcIiB8fCAhcmVxdWVzdC5ib2R5KSB7XG4gICAgICAgICAgICByZXF1ZXN0LmJvZHkgPSBcInt9XCI7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlcXVlc3Q7XG4gICAgfVxuICAgIGdldFBheWxvYWRDb2RlYygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29kZWM7XG4gICAgfVxuICAgIGFzeW5jIGhhbmRsZUVycm9yKG9wZXJhdGlvblNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UsIGRhdGFPYmplY3QsIG1ldGFkYXRhKSB7XG4gICAgICAgIGlmICh0aGlzLmF3c1F1ZXJ5Q29tcGF0aWJsZSkge1xuICAgICAgICAgICAgdGhpcy5taXhpbi5zZXRRdWVyeUNvbXBhdEVycm9yKGRhdGFPYmplY3QsIHJlc3BvbnNlKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBlcnJvcklkZW50aWZpZXIgPSBsb2FkUmVzdEpzb25FcnJvckNvZGUocmVzcG9uc2UsIGRhdGFPYmplY3QpID8/IFwiVW5rbm93blwiO1xuICAgICAgICB0aGlzLm1peGluLmNvbXBvc2UodGhpcy5jb21wb3NpdGVFcnJvclJlZ2lzdHJ5LCBlcnJvcklkZW50aWZpZXIsIHRoaXMub3B0aW9ucy5kZWZhdWx0TmFtZXNwYWNlKTtcbiAgICAgICAgY29uc3QgeyBlcnJvclNjaGVtYSwgZXJyb3JNZXRhZGF0YSB9ID0gYXdhaXQgdGhpcy5taXhpbi5nZXRFcnJvclNjaGVtYU9yVGhyb3dCYXNlRXhjZXB0aW9uKGVycm9ySWRlbnRpZmllciwgdGhpcy5vcHRpb25zLmRlZmF1bHROYW1lc3BhY2UsIHJlc3BvbnNlLCBkYXRhT2JqZWN0LCBtZXRhZGF0YSwgdGhpcy5hd3NRdWVyeUNvbXBhdGlibGUgPyB0aGlzLm1peGluLmZpbmRRdWVyeUNvbXBhdGlibGVFcnJvciA6IHVuZGVmaW5lZCk7XG4gICAgICAgIGNvbnN0IG5zID0gTm9ybWFsaXplZFNjaGVtYS5vZihlcnJvclNjaGVtYSk7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBkYXRhT2JqZWN0Lm1lc3NhZ2UgPz8gZGF0YU9iamVjdC5NZXNzYWdlID8/IFwiVW5rbm93bkVycm9yXCI7XG4gICAgICAgIGNvbnN0IEVycm9yQ3RvciA9IHRoaXMuY29tcG9zaXRlRXJyb3JSZWdpc3RyeS5nZXRFcnJvckN0b3IoZXJyb3JTY2hlbWEpID8/IEVycm9yO1xuICAgICAgICBjb25zdCBleGNlcHRpb24gPSBuZXcgRXJyb3JDdG9yKG1lc3NhZ2UpO1xuICAgICAgICBjb25zdCBvdXRwdXQgPSB7fTtcbiAgICAgICAgY29uc3QgZXJyb3JEZXNlcmlhbGl6ZXIgPSB0aGlzLmNvZGVjLmNyZWF0ZURlc2VyaWFsaXplcigpO1xuICAgICAgICBmb3IgKGNvbnN0IFtuYW1lLCBtZW1iZXJdIG9mIG5zLnN0cnVjdEl0ZXJhdG9yKCkpIHtcbiAgICAgICAgICAgIGlmIChkYXRhT2JqZWN0W25hbWVdICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICBvdXRwdXRbbmFtZV0gPSBlcnJvckRlc2VyaWFsaXplci5yZWFkT2JqZWN0KG1lbWJlciwgZGF0YU9iamVjdFtuYW1lXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuYXdzUXVlcnlDb21wYXRpYmxlKSB7XG4gICAgICAgICAgICB0aGlzLm1peGluLnF1ZXJ5Q29tcGF0T3V0cHV0KGRhdGFPYmplY3QsIG91dHB1dCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgdGhpcy5taXhpbi5kZWNvcmF0ZVNlcnZpY2VFeGNlcHRpb24oT2JqZWN0LmFzc2lnbihleGNlcHRpb24sIGVycm9yTWV0YWRhdGEsIHtcbiAgICAgICAgICAgICRmYXVsdDogbnMuZ2V0TWVyZ2VkVHJhaXRzKCkuZXJyb3IsXG4gICAgICAgICAgICBtZXNzYWdlLFxuICAgICAgICB9LCBvdXRwdXQpLCBkYXRhT2JqZWN0KTtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgQXdzSnNvblJwY1Byb3RvY29sIH0gZnJvbSBcIi4vQXdzSnNvblJwY1Byb3RvY29sXCI7XG5leHBvcnQgY2xhc3MgQXdzSnNvbjFfMFByb3RvY29sIGV4dGVuZHMgQXdzSnNvblJwY1Byb3RvY29sIHtcbiAgICBjb25zdHJ1Y3Rvcih7IGRlZmF1bHROYW1lc3BhY2UsIGVycm9yVHlwZVJlZ2lzdHJpZXMsIHNlcnZpY2VUYXJnZXQsIGF3c1F1ZXJ5Q29tcGF0aWJsZSwganNvbkNvZGVjLCB9KSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIGRlZmF1bHROYW1lc3BhY2UsXG4gICAgICAgICAgICBlcnJvclR5cGVSZWdpc3RyaWVzLFxuICAgICAgICAgICAgc2VydmljZVRhcmdldCxcbiAgICAgICAgICAgIGF3c1F1ZXJ5Q29tcGF0aWJsZSxcbiAgICAgICAgICAgIGpzb25Db2RlYyxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGdldFNoYXBlSWQoKSB7XG4gICAgICAgIHJldHVybiBcImF3cy5wcm90b2NvbHMjYXdzSnNvbjFfMFwiO1xuICAgIH1cbiAgICBnZXRKc29uUnBjVmVyc2lvbigpIHtcbiAgICAgICAgcmV0dXJuIFwiMS4wXCI7XG4gICAgfVxuICAgIGdldERlZmF1bHRDb250ZW50VHlwZSgpIHtcbiAgICAgICAgcmV0dXJuIFwiYXBwbGljYXRpb24veC1hbXotanNvbi0xLjBcIjtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgQXdzSnNvblJwY1Byb3RvY29sIH0gZnJvbSBcIi4vQXdzSnNvblJwY1Byb3RvY29sXCI7XG5leHBvcnQgY2xhc3MgQXdzSnNvbjFfMVByb3RvY29sIGV4dGVuZHMgQXdzSnNvblJwY1Byb3RvY29sIHtcbiAgICBjb25zdHJ1Y3Rvcih7IGRlZmF1bHROYW1lc3BhY2UsIGVycm9yVHlwZVJlZ2lzdHJpZXMsIHNlcnZpY2VUYXJnZXQsIGF3c1F1ZXJ5Q29tcGF0aWJsZSwganNvbkNvZGVjLCB9KSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIGRlZmF1bHROYW1lc3BhY2UsXG4gICAgICAgICAgICBlcnJvclR5cGVSZWdpc3RyaWVzLFxuICAgICAgICAgICAgc2VydmljZVRhcmdldCxcbiAgICAgICAgICAgIGF3c1F1ZXJ5Q29tcGF0aWJsZSxcbiAgICAgICAgICAgIGpzb25Db2RlYyxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGdldFNoYXBlSWQoKSB7XG4gICAgICAgIHJldHVybiBcImF3cy5wcm90b2NvbHMjYXdzSnNvbjFfMVwiO1xuICAgIH1cbiAgICBnZXRKc29uUnBjVmVyc2lvbigpIHtcbiAgICAgICAgcmV0dXJuIFwiMS4xXCI7XG4gICAgfVxuICAgIGdldERlZmF1bHRDb250ZW50VHlwZSgpIHtcbiAgICAgICAgcmV0dXJuIFwiYXBwbGljYXRpb24veC1hbXotanNvbi0xLjFcIjtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgSHR0cEJpbmRpbmdQcm90b2NvbCwgSHR0cEludGVyY2VwdGluZ1NoYXBlRGVzZXJpYWxpemVyLCBIdHRwSW50ZXJjZXB0aW5nU2hhcGVTZXJpYWxpemVyLCB9IGZyb20gXCJAc21pdGh5L2NvcmUvcHJvdG9jb2xzXCI7XG5pbXBvcnQgeyBOb3JtYWxpemVkU2NoZW1hIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IFByb3RvY29sTGliIH0gZnJvbSBcIi4uL1Byb3RvY29sTGliXCI7XG5pbXBvcnQgeyBKc29uQ29kZWMgfSBmcm9tIFwiLi9Kc29uQ29kZWNcIjtcbmltcG9ydCB7IGxvYWRSZXN0SnNvbkVycm9yQ29kZSB9IGZyb20gXCIuL3BhcnNlSnNvbkJvZHlcIjtcbmV4cG9ydCBjbGFzcyBBd3NSZXN0SnNvblByb3RvY29sIGV4dGVuZHMgSHR0cEJpbmRpbmdQcm90b2NvbCB7XG4gICAgc2VyaWFsaXplcjtcbiAgICBkZXNlcmlhbGl6ZXI7XG4gICAgY29kZWM7XG4gICAgbWl4aW4gPSBuZXcgUHJvdG9jb2xMaWIoKTtcbiAgICBjb25zdHJ1Y3Rvcih7IGRlZmF1bHROYW1lc3BhY2UsIGVycm9yVHlwZVJlZ2lzdHJpZXMsIH0pIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgZGVmYXVsdE5hbWVzcGFjZSxcbiAgICAgICAgICAgIGVycm9yVHlwZVJlZ2lzdHJpZXMsXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBzZXR0aW5ncyA9IHtcbiAgICAgICAgICAgIHRpbWVzdGFtcEZvcm1hdDoge1xuICAgICAgICAgICAgICAgIHVzZVRyYWl0OiB0cnVlLFxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IDcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaHR0cEJpbmRpbmdzOiB0cnVlLFxuICAgICAgICAgICAganNvbk5hbWU6IHRydWUsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuY29kZWMgPSBuZXcgSnNvbkNvZGVjKHNldHRpbmdzKTtcbiAgICAgICAgdGhpcy5zZXJpYWxpemVyID0gbmV3IEh0dHBJbnRlcmNlcHRpbmdTaGFwZVNlcmlhbGl6ZXIodGhpcy5jb2RlYy5jcmVhdGVTZXJpYWxpemVyKCksIHNldHRpbmdzKTtcbiAgICAgICAgdGhpcy5kZXNlcmlhbGl6ZXIgPSBuZXcgSHR0cEludGVyY2VwdGluZ1NoYXBlRGVzZXJpYWxpemVyKHRoaXMuY29kZWMuY3JlYXRlRGVzZXJpYWxpemVyKCksIHNldHRpbmdzKTtcbiAgICB9XG4gICAgZ2V0U2hhcGVJZCgpIHtcbiAgICAgICAgcmV0dXJuIFwiYXdzLnByb3RvY29scyNyZXN0SnNvbjFcIjtcbiAgICB9XG4gICAgZ2V0UGF5bG9hZENvZGVjKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb2RlYztcbiAgICB9XG4gICAgc2V0U2VyZGVDb250ZXh0KHNlcmRlQ29udGV4dCkge1xuICAgICAgICB0aGlzLmNvZGVjLnNldFNlcmRlQ29udGV4dChzZXJkZUNvbnRleHQpO1xuICAgICAgICBzdXBlci5zZXRTZXJkZUNvbnRleHQoc2VyZGVDb250ZXh0KTtcbiAgICB9XG4gICAgYXN5bmMgc2VyaWFsaXplUmVxdWVzdChvcGVyYXRpb25TY2hlbWEsIGlucHV0LCBjb250ZXh0KSB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSBhd2FpdCBzdXBlci5zZXJpYWxpemVSZXF1ZXN0KG9wZXJhdGlvblNjaGVtYSwgaW5wdXQsIGNvbnRleHQpO1xuICAgICAgICBjb25zdCBpbnB1dFNjaGVtYSA9IE5vcm1hbGl6ZWRTY2hlbWEub2Yob3BlcmF0aW9uU2NoZW1hLmlucHV0KTtcbiAgICAgICAgaWYgKCFyZXF1ZXN0LmhlYWRlcnNbXCJjb250ZW50LXR5cGVcIl0pIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRlbnRUeXBlID0gdGhpcy5taXhpbi5yZXNvbHZlUmVzdENvbnRlbnRUeXBlKHRoaXMuZ2V0RGVmYXVsdENvbnRlbnRUeXBlKCksIGlucHV0U2NoZW1hKTtcbiAgICAgICAgICAgIGlmIChjb250ZW50VHlwZSkge1xuICAgICAgICAgICAgICAgIHJlcXVlc3QuaGVhZGVyc1tcImNvbnRlbnQtdHlwZVwiXSA9IGNvbnRlbnRUeXBlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChyZXF1ZXN0LmJvZHkgPT0gbnVsbCAmJiByZXF1ZXN0LmhlYWRlcnNbXCJjb250ZW50LXR5cGVcIl0gPT09IHRoaXMuZ2V0RGVmYXVsdENvbnRlbnRUeXBlKCkpIHtcbiAgICAgICAgICAgIHJlcXVlc3QuYm9keSA9IFwie31cIjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVxdWVzdDtcbiAgICB9XG4gICAgYXN5bmMgZGVzZXJpYWxpemVSZXNwb25zZShvcGVyYXRpb25TY2hlbWEsIGNvbnRleHQsIHJlc3BvbnNlKSB7XG4gICAgICAgIGNvbnN0IG91dHB1dCA9IGF3YWl0IHN1cGVyLmRlc2VyaWFsaXplUmVzcG9uc2Uob3BlcmF0aW9uU2NoZW1hLCBjb250ZXh0LCByZXNwb25zZSk7XG4gICAgICAgIGNvbnN0IG91dHB1dFNjaGVtYSA9IE5vcm1hbGl6ZWRTY2hlbWEub2Yob3BlcmF0aW9uU2NoZW1hLm91dHB1dCk7XG4gICAgICAgIGZvciAoY29uc3QgW25hbWUsIG1lbWJlcl0gb2Ygb3V0cHV0U2NoZW1hLnN0cnVjdEl0ZXJhdG9yKCkpIHtcbiAgICAgICAgICAgIGlmIChtZW1iZXIuZ2V0TWVtYmVyVHJhaXRzKCkuaHR0cFBheWxvYWQgJiYgIShuYW1lIGluIG91dHB1dCkpIHtcbiAgICAgICAgICAgICAgICBvdXRwdXRbbmFtZV0gPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvdXRwdXQ7XG4gICAgfVxuICAgIGFzeW5jIGhhbmRsZUVycm9yKG9wZXJhdGlvblNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UsIGRhdGFPYmplY3QsIG1ldGFkYXRhKSB7XG4gICAgICAgIGNvbnN0IGVycm9ySWRlbnRpZmllciA9IGxvYWRSZXN0SnNvbkVycm9yQ29kZShyZXNwb25zZSwgZGF0YU9iamVjdCkgPz8gXCJVbmtub3duXCI7XG4gICAgICAgIHRoaXMubWl4aW4uY29tcG9zZSh0aGlzLmNvbXBvc2l0ZUVycm9yUmVnaXN0cnksIGVycm9ySWRlbnRpZmllciwgdGhpcy5vcHRpb25zLmRlZmF1bHROYW1lc3BhY2UpO1xuICAgICAgICBjb25zdCB7IGVycm9yU2NoZW1hLCBlcnJvck1ldGFkYXRhIH0gPSBhd2FpdCB0aGlzLm1peGluLmdldEVycm9yU2NoZW1hT3JUaHJvd0Jhc2VFeGNlcHRpb24oZXJyb3JJZGVudGlmaWVyLCB0aGlzLm9wdGlvbnMuZGVmYXVsdE5hbWVzcGFjZSwgcmVzcG9uc2UsIGRhdGFPYmplY3QsIG1ldGFkYXRhKTtcbiAgICAgICAgY29uc3QgbnMgPSBOb3JtYWxpemVkU2NoZW1hLm9mKGVycm9yU2NoZW1hKTtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGRhdGFPYmplY3QubWVzc2FnZSA/PyBkYXRhT2JqZWN0Lk1lc3NhZ2UgPz8gXCJVbmtub3duRXJyb3JcIjtcbiAgICAgICAgY29uc3QgRXJyb3JDdG9yID0gdGhpcy5jb21wb3NpdGVFcnJvclJlZ2lzdHJ5LmdldEVycm9yQ3RvcihlcnJvclNjaGVtYSkgPz8gRXJyb3I7XG4gICAgICAgIGNvbnN0IGV4Y2VwdGlvbiA9IG5ldyBFcnJvckN0b3IobWVzc2FnZSk7XG4gICAgICAgIGF3YWl0IHRoaXMuZGVzZXJpYWxpemVIdHRwTWVzc2FnZShlcnJvclNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UsIGRhdGFPYmplY3QpO1xuICAgICAgICBjb25zdCBvdXRwdXQgPSB7fTtcbiAgICAgICAgY29uc3QgZXJyb3JEZXNlcmlhbGl6ZXIgPSB0aGlzLmNvZGVjLmNyZWF0ZURlc2VyaWFsaXplcigpO1xuICAgICAgICBmb3IgKGNvbnN0IFtuYW1lLCBtZW1iZXJdIG9mIG5zLnN0cnVjdEl0ZXJhdG9yKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IG1lbWJlci5nZXRNZXJnZWRUcmFpdHMoKS5qc29uTmFtZSA/PyBuYW1lO1xuICAgICAgICAgICAgb3V0cHV0W25hbWVdID0gZXJyb3JEZXNlcmlhbGl6ZXIucmVhZE9iamVjdChtZW1iZXIsIGRhdGFPYmplY3RbdGFyZ2V0XSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgdGhpcy5taXhpbi5kZWNvcmF0ZVNlcnZpY2VFeGNlcHRpb24oT2JqZWN0LmFzc2lnbihleGNlcHRpb24sIGVycm9yTWV0YWRhdGEsIHtcbiAgICAgICAgICAgICRmYXVsdDogbnMuZ2V0TWVyZ2VkVHJhaXRzKCkuZXJyb3IsXG4gICAgICAgICAgICBtZXNzYWdlLFxuICAgICAgICB9LCBvdXRwdXQpLCBkYXRhT2JqZWN0KTtcbiAgICB9XG4gICAgZ2V0RGVmYXVsdENvbnRlbnRUeXBlKCkge1xuICAgICAgICByZXR1cm4gXCJhcHBsaWNhdGlvbi9qc29uXCI7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IGV4cGVjdFVuaW9uIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuZXhwb3J0IGNvbnN0IGF3c0V4cGVjdFVuaW9uID0gKHZhbHVlKSA9PiB7XG4gICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIiAmJiBcIl9fdHlwZVwiIGluIHZhbHVlKSB7XG4gICAgICAgIGRlbGV0ZSB2YWx1ZS5fX3R5cGU7XG4gICAgfVxuICAgIHJldHVybiBleHBlY3RVbmlvbih2YWx1ZSk7XG59O1xuIiwgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5FbnRpdHlEZWNvZGVySW1wbCA9IGV4cG9ydHMuQ1VSUkVOQ1kgPSBleHBvcnRzLkNPTU1PTl9IVE1MID0gZXhwb3J0cy5YTUwgPSB2b2lkIDA7XG5leHBvcnRzLlhNTCA9IHtcbiAgICBhbXA6IFwiJlwiLFxuICAgIGFwb3M6IFwiJ1wiLFxuICAgIGd0OiBcIj5cIixcbiAgICBsdDogXCI8XCIsXG4gICAgcXVvdDogJ1wiJyxcbn07XG5leHBvcnRzLkNPTU1PTl9IVE1MID0ge1xuICAgIG5ic3A6IFwiXFx1MDBhMFwiLFxuICAgIGNvcHk6IFwiXFx1MDBhOVwiLFxuICAgIHJlZzogXCJcXHUwMGFlXCIsXG4gICAgdHJhZGU6IFwiXFx1MjEyMlwiLFxuICAgIG1kYXNoOiBcIlxcdTIwMTRcIixcbiAgICBuZGFzaDogXCJcXHUyMDEzXCIsXG4gICAgaGVsbGlwOiBcIlxcdTIwMjZcIixcbiAgICBsYXF1bzogXCJcXHUwMGFiXCIsXG4gICAgcmFxdW86IFwiXFx1MDBiYlwiLFxuICAgIGxzcXVvOiBcIlxcdTIwMThcIixcbiAgICByc3F1bzogXCJcXHUyMDE5XCIsXG4gICAgbGRxdW86IFwiXFx1MjAxY1wiLFxuICAgIHJkcXVvOiBcIlxcdTIwMWRcIixcbiAgICBidWxsOiBcIlxcdTIwMjJcIixcbiAgICBwYXJhOiBcIlxcdTAwYjZcIixcbiAgICBzZWN0OiBcIlxcdTAwYTdcIixcbiAgICBkZWc6IFwiXFx1MDBiMFwiLFxuICAgIGZyYWMxMjogXCJcXHUwMGJkXCIsXG4gICAgZnJhYzE0OiBcIlxcdTAwYmNcIixcbiAgICBmcmFjMzQ6IFwiXFx1MDBiZVwiLFxufTtcbmV4cG9ydHMuQ1VSUkVOQ1kgPSB7XG4gICAgY2VudDogXCJcXHUwMGEyXCIsXG4gICAgcG91bmQ6IFwiXFx1MDBhM1wiLFxuICAgIGN1cnJlbjogXCJcXHUwMGE0XCIsXG4gICAgeWVuOiBcIlxcdTAwYTVcIixcbiAgICBldXJvOiBcIlxcdTIwYWNcIixcbiAgICBkb2xsYXI6IFwiJFwiLFxuICAgIGZub2Y6IFwiXFx1MDE5MlwiLFxuICAgIGlucjogXCJcXHUyMGI5XCIsXG4gICAgYWY6IFwiXFx1MDYwYlwiLFxuICAgIGJpcnI6IFwiXFx1MTI2NVxcdTEyMmRcIixcbiAgICBwZXNvOiBcIlxcdTIwYjFcIixcbiAgICBydWI6IFwiXFx1MjBiZFwiLFxuICAgIHdvbjogXCJcXHUyMGE5XCIsXG4gICAgeXVhbjogXCJcXHUwMGE1XCIsXG4gICAgY2VkaWw6IFwiXFx1MDBiOFwiLFxufTtcbmNvbnN0IFNQRUNJQUxfQ0hBUlMgPSBuZXcgU2V0KFwiIT9cXFxcL1tdJCV7fV4mKigpPD58K1wiKTtcbmZ1bmN0aW9uIHZhbGlkYXRlRW50aXR5TmFtZShuYW1lKSB7XG4gICAgaWYgKG5hbWVbMF0gPT09IFwiI1wiKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgW0VudGl0eVJlcGxhY2VyXSBJbnZhbGlkIGNoYXJhY3RlciAnIycgaW4gZW50aXR5IG5hbWU6IFwiJHtuYW1lfVwiYCk7XG4gICAgfVxuICAgIGZvciAoY29uc3QgY2ggb2YgbmFtZSkge1xuICAgICAgICBpZiAoU1BFQ0lBTF9DSEFSUy5oYXMoY2gpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFtFbnRpdHlSZXBsYWNlcl0gSW52YWxpZCBjaGFyYWN0ZXIgJyR7Y2h9JyBpbiBlbnRpdHkgbmFtZTogXCIke25hbWV9XCJgKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbmFtZTtcbn1cbmZ1bmN0aW9uIG1lcmdlRW50aXR5TWFwcyguLi5tYXBzKSB7XG4gICAgY29uc3Qgb3V0ID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICBmb3IgKGNvbnN0IG1hcCBvZiBtYXBzKSB7XG4gICAgICAgIGlmICghbWFwKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhtYXApKSB7XG4gICAgICAgICAgICBjb25zdCByYXcgPSBtYXBba2V5XTtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgcmF3ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAgICAgb3V0W2tleV0gPSByYXc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChyYXcgJiYgdHlwZW9mIHJhdyA9PT0gXCJvYmplY3RcIiAmJiByYXcudmFsICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWwgPSByYXcudmFsO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAgICAgICAgIG91dFtrZXldID0gdmFsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gb3V0O1xufVxuY29uc3QgTElNSVRfVElFUl9FWFRFUk5BTCA9IFwiZXh0ZXJuYWxcIjtcbmNvbnN0IExJTUlUX1RJRVJfQkFTRSA9IFwiYmFzZVwiO1xuY29uc3QgTElNSVRfVElFUl9BTEwgPSBcImFsbFwiO1xuZnVuY3Rpb24gcGFyc2VMaW1pdFRpZXJzKHJhdykge1xuICAgIGlmICghcmF3IHx8IHJhdyA9PT0gTElNSVRfVElFUl9FWFRFUk5BTCkge1xuICAgICAgICByZXR1cm4gbmV3IFNldChbTElNSVRfVElFUl9FWFRFUk5BTF0pO1xuICAgIH1cbiAgICBpZiAocmF3ID09PSBMSU1JVF9USUVSX0FMTCkge1xuICAgICAgICByZXR1cm4gbmV3IFNldChbTElNSVRfVElFUl9BTExdKTtcbiAgICB9XG4gICAgaWYgKHJhdyA9PT0gTElNSVRfVElFUl9CQVNFKSB7XG4gICAgICAgIHJldHVybiBuZXcgU2V0KFtMSU1JVF9USUVSX0JBU0VdKTtcbiAgICB9XG4gICAgaWYgKEFycmF5LmlzQXJyYXkocmF3KSkge1xuICAgICAgICByZXR1cm4gbmV3IFNldChyYXcpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IFNldChbTElNSVRfVElFUl9FWFRFUk5BTF0pO1xufVxuY29uc3QgTkNSX0xFVkVMID0gT2JqZWN0LmZyZWV6ZSh7IGFsbG93OiAwLCBsZWF2ZTogMSwgcmVtb3ZlOiAyLCB0aHJvdzogMyB9KTtcbmNvbnN0IFhNTDEwX0FMTE9XRURfQzAgPSBuZXcgU2V0KFsweDA5LCAweDBhLCAweDBkXSk7XG5mdW5jdGlvbiBwYXJzZU5DUkNvbmZpZyhuY3IpIHtcbiAgICBpZiAoIW5jcikge1xuICAgICAgICByZXR1cm4geyB4bWxWZXJzaW9uOiAxLjAsIG9uTGV2ZWw6IE5DUl9MRVZFTC5hbGxvdywgbnVsbExldmVsOiBOQ1JfTEVWRUwucmVtb3ZlIH07XG4gICAgfVxuICAgIGNvbnN0IHhtbFZlcnNpb24gPSBuY3IueG1sVmVyc2lvbiA9PT0gMS4xID8gMS4xIDogMS4wO1xuICAgIGNvbnN0IG9uTGV2ZWwgPSBOQ1JfTEVWRUxbbmNyLm9uTkNSID8/IFwiYWxsb3dcIl0gPz8gTkNSX0xFVkVMLmFsbG93O1xuICAgIGNvbnN0IG51bGxMZXZlbCA9IE5DUl9MRVZFTFtuY3IubnVsbE5DUiA/PyBcInJlbW92ZVwiXSA/PyBOQ1JfTEVWRUwucmVtb3ZlO1xuICAgIGNvbnN0IGNsYW1wZWROdWxsID0gTWF0aC5tYXgobnVsbExldmVsLCBOQ1JfTEVWRUwucmVtb3ZlKTtcbiAgICByZXR1cm4geyB4bWxWZXJzaW9uLCBvbkxldmVsLCBudWxsTGV2ZWw6IGNsYW1wZWROdWxsIH07XG59XG5jb25zdCBFbnRpdHlEZWNvZGVySW1wbCA9IGNsYXNzIEVudGl0eURlY29kZXJJbXBsIHtcbiAgICBfbGltaXQ7XG4gICAgX21heFRvdGFsRXhwYW5zaW9ucztcbiAgICBfbWF4RXhwYW5kZWRMZW5ndGg7XG4gICAgX3Bvc3RDaGVjaztcbiAgICBfbGltaXRUaWVycztcbiAgICBfbnVtZXJpY0FsbG93ZWQ7XG4gICAgX2Jhc2VNYXA7XG4gICAgX2V4dGVybmFsTWFwO1xuICAgIF9pbnB1dE1hcDtcbiAgICBfdG90YWxFeHBhbnNpb25zO1xuICAgIF9leHBhbmRlZExlbmd0aDtcbiAgICBfcmVtb3ZlU2V0O1xuICAgIF9sZWF2ZVNldDtcbiAgICBfbmNyWG1sVmVyc2lvbjtcbiAgICBfbmNyT25MZXZlbDtcbiAgICBfbmNyTnVsbExldmVsO1xuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnMgPSB7fSkge1xuICAgICAgICB0aGlzLl9saW1pdCA9IG9wdGlvbnMubGltaXQgfHwge307XG4gICAgICAgIHRoaXMuX21heFRvdGFsRXhwYW5zaW9ucyA9IHRoaXMuX2xpbWl0Lm1heFRvdGFsRXhwYW5zaW9ucyB8fCAwO1xuICAgICAgICB0aGlzLl9tYXhFeHBhbmRlZExlbmd0aCA9IHRoaXMuX2xpbWl0Lm1heEV4cGFuZGVkTGVuZ3RoIHx8IDA7XG4gICAgICAgIHRoaXMuX3Bvc3RDaGVjayA9IHR5cGVvZiBvcHRpb25zLnBvc3RDaGVjayA9PT0gXCJmdW5jdGlvblwiID8gb3B0aW9ucy5wb3N0Q2hlY2sgOiAocikgPT4gcjtcbiAgICAgICAgdGhpcy5fbGltaXRUaWVycyA9IHBhcnNlTGltaXRUaWVycyh0aGlzLl9saW1pdC5hcHBseUxpbWl0c1RvID8/IExJTUlUX1RJRVJfRVhURVJOQUwpO1xuICAgICAgICB0aGlzLl9udW1lcmljQWxsb3dlZCA9IG9wdGlvbnMubnVtZXJpY0FsbG93ZWQgPz8gdHJ1ZTtcbiAgICAgICAgdGhpcy5fYmFzZU1hcCA9IG1lcmdlRW50aXR5TWFwcyhleHBvcnRzLlhNTCwgb3B0aW9ucy5uYW1lZEVudGl0aWVzIHx8IG51bGwpO1xuICAgICAgICB0aGlzLl9leHRlcm5hbE1hcCA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgICAgIHRoaXMuX2lucHV0TWFwID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgICAgdGhpcy5fdG90YWxFeHBhbnNpb25zID0gMDtcbiAgICAgICAgdGhpcy5fZXhwYW5kZWRMZW5ndGggPSAwO1xuICAgICAgICB0aGlzLl9yZW1vdmVTZXQgPSBuZXcgU2V0KG9wdGlvbnMucmVtb3ZlICYmIEFycmF5LmlzQXJyYXkob3B0aW9ucy5yZW1vdmUpID8gb3B0aW9ucy5yZW1vdmUgOiBbXSk7XG4gICAgICAgIHRoaXMuX2xlYXZlU2V0ID0gbmV3IFNldChvcHRpb25zLmxlYXZlICYmIEFycmF5LmlzQXJyYXkob3B0aW9ucy5sZWF2ZSkgPyBvcHRpb25zLmxlYXZlIDogW10pO1xuICAgICAgICBjb25zdCBuY3JDZmcgPSBwYXJzZU5DUkNvbmZpZyhvcHRpb25zLm5jcik7XG4gICAgICAgIHRoaXMuX25jclhtbFZlcnNpb24gPSBuY3JDZmcueG1sVmVyc2lvbjtcbiAgICAgICAgdGhpcy5fbmNyT25MZXZlbCA9IG5jckNmZy5vbkxldmVsO1xuICAgICAgICB0aGlzLl9uY3JOdWxsTGV2ZWwgPSBuY3JDZmcubnVsbExldmVsO1xuICAgIH1cbiAgICBzZXRFeHRlcm5hbEVudGl0aWVzKG1hcCkge1xuICAgICAgICBpZiAobWFwKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhtYXApKSB7XG4gICAgICAgICAgICAgICAgdmFsaWRhdGVFbnRpdHlOYW1lKGtleSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fZXh0ZXJuYWxNYXAgPSBtZXJnZUVudGl0eU1hcHMobWFwKTtcbiAgICB9XG4gICAgYWRkRXh0ZXJuYWxFbnRpdHkoa2V5LCB2YWx1ZSkge1xuICAgICAgICB2YWxpZGF0ZUVudGl0eU5hbWUoa2V5KTtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiAmJiB2YWx1ZS5pbmRleE9mKFwiJlwiKSA9PT0gLTEpIHtcbiAgICAgICAgICAgIHRoaXMuX2V4dGVybmFsTWFwW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBhZGRJbnB1dEVudGl0aWVzKG1hcCkge1xuICAgICAgICB0aGlzLl90b3RhbEV4cGFuc2lvbnMgPSAwO1xuICAgICAgICB0aGlzLl9leHBhbmRlZExlbmd0aCA9IDA7XG4gICAgICAgIHRoaXMuX2lucHV0TWFwID0gbWVyZ2VFbnRpdHlNYXBzKG1hcCk7XG4gICAgfVxuICAgIHJlc2V0KCkge1xuICAgICAgICB0aGlzLl9pbnB1dE1hcCA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgICAgIHRoaXMuX3RvdGFsRXhwYW5zaW9ucyA9IDA7XG4gICAgICAgIHRoaXMuX2V4cGFuZGVkTGVuZ3RoID0gMDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIHNldFhtbFZlcnNpb24odmVyc2lvbikge1xuICAgICAgICB0aGlzLl9uY3JYbWxWZXJzaW9uID0gdmVyc2lvbiA9PT0gXCIxLjFcIiB8fCB2ZXJzaW9uID09PSAxLjEgPyAxLjEgOiAxLjA7XG4gICAgfVxuICAgIGRlY29kZShzdHIpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBzdHIgIT09IFwic3RyaW5nXCIgfHwgc3RyLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIHN0cjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBvcmlnaW5hbCA9IHN0cjtcbiAgICAgICAgY29uc3QgY2h1bmtzID0gW107XG4gICAgICAgIGNvbnN0IGxlbiA9IHN0ci5sZW5ndGg7XG4gICAgICAgIGxldCBsYXN0ID0gMDtcbiAgICAgICAgbGV0IGkgPSAwO1xuICAgICAgICBjb25zdCBsaW1pdEV4cGFuc2lvbnMgPSB0aGlzLl9tYXhUb3RhbEV4cGFuc2lvbnMgPiAwO1xuICAgICAgICBjb25zdCBsaW1pdExlbmd0aCA9IHRoaXMuX21heEV4cGFuZGVkTGVuZ3RoID4gMDtcbiAgICAgICAgY29uc3QgY2hlY2tMaW1pdHMgPSBsaW1pdEV4cGFuc2lvbnMgfHwgbGltaXRMZW5ndGg7XG4gICAgICAgIHdoaWxlIChpIDwgbGVuKSB7XG4gICAgICAgICAgICBpZiAoc3RyLmNoYXJDb2RlQXQoaSkgIT09IDM4KSB7XG4gICAgICAgICAgICAgICAgaSsrO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IGogPSBpICsgMTtcbiAgICAgICAgICAgIHdoaWxlIChqIDwgbGVuICYmIHN0ci5jaGFyQ29kZUF0KGopICE9PSA1OSAmJiBqIC0gaSA8PSAzMikge1xuICAgICAgICAgICAgICAgIGorKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChqID49IGxlbiB8fCBzdHIuY2hhckNvZGVBdChqKSAhPT0gNTkpIHtcbiAgICAgICAgICAgICAgICBpKys7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCB0b2tlbiA9IHN0ci5zbGljZShpICsgMSwgaik7XG4gICAgICAgICAgICBpZiAodG9rZW4ubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgaSsrO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IHJlcGxhY2VtZW50O1xuICAgICAgICAgICAgbGV0IHRpZXI7XG4gICAgICAgICAgICBpZiAodGhpcy5fcmVtb3ZlU2V0Lmhhcyh0b2tlbikpIHtcbiAgICAgICAgICAgICAgICByZXBsYWNlbWVudCA9IFwiXCI7XG4gICAgICAgICAgICAgICAgaWYgKHRpZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICB0aWVyID0gTElNSVRfVElFUl9FWFRFUk5BTDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmICh0aGlzLl9sZWF2ZVNldC5oYXModG9rZW4pKSB7XG4gICAgICAgICAgICAgICAgaSsrO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAodG9rZW4uY2hhckNvZGVBdCgwKSA9PT0gMzUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBuY3JSZXN1bHQgPSB0aGlzLl9yZXNvbHZlTkNSKHRva2VuKTtcbiAgICAgICAgICAgICAgICBpZiAobmNyUmVzdWx0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgaSsrO1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmVwbGFjZW1lbnQgPSBuY3JSZXN1bHQ7XG4gICAgICAgICAgICAgICAgdGllciA9IExJTUlUX1RJRVJfQkFTRTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc29sdmVkID0gdGhpcy5fcmVzb2x2ZU5hbWUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHJlcGxhY2VtZW50ID0gcmVzb2x2ZWQ/LnZhbHVlO1xuICAgICAgICAgICAgICAgIHRpZXIgPSByZXNvbHZlZD8udGllcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgaSsrO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGkgPiBsYXN0KSB7XG4gICAgICAgICAgICAgICAgY2h1bmtzLnB1c2goc3RyLnNsaWNlKGxhc3QsIGkpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNodW5rcy5wdXNoKHJlcGxhY2VtZW50KTtcbiAgICAgICAgICAgIGxhc3QgPSBqICsgMTtcbiAgICAgICAgICAgIGkgPSBsYXN0O1xuICAgICAgICAgICAgaWYgKGNoZWNrTGltaXRzICYmIHRoaXMuX3RpZXJDb3VudHModGllcikpIHtcbiAgICAgICAgICAgICAgICBpZiAobGltaXRFeHBhbnNpb25zKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3RvdGFsRXhwYW5zaW9ucysrO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fdG90YWxFeHBhbnNpb25zID4gdGhpcy5fbWF4VG90YWxFeHBhbnNpb25zKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFtFbnRpdHlSZXBsYWNlcl0gRW50aXR5IGV4cGFuc2lvbiBjb3VudCBsaW1pdCBleGNlZWRlZDogYCArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYCR7dGhpcy5fdG90YWxFeHBhbnNpb25zfSA+ICR7dGhpcy5fbWF4VG90YWxFeHBhbnNpb25zfWApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChsaW1pdExlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkZWx0YSA9IHJlcGxhY2VtZW50Lmxlbmd0aCAtICh0b2tlbi5sZW5ndGggKyAyKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRlbHRhID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fZXhwYW5kZWRMZW5ndGggKz0gZGVsdGE7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fZXhwYW5kZWRMZW5ndGggPiB0aGlzLl9tYXhFeHBhbmRlZExlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgW0VudGl0eVJlcGxhY2VyXSBFeHBhbmRlZCBjb250ZW50IGxlbmd0aCBsaW1pdCBleGNlZWRlZDogYCArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGAke3RoaXMuX2V4cGFuZGVkTGVuZ3RofSA+ICR7dGhpcy5fbWF4RXhwYW5kZWRMZW5ndGh9YCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxhc3QgPCBsZW4pIHtcbiAgICAgICAgICAgIGNodW5rcy5wdXNoKHN0ci5zbGljZShsYXN0KSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gY2h1bmtzLmxlbmd0aCA9PT0gMCA/IHN0ciA6IGNodW5rcy5qb2luKFwiXCIpO1xuICAgICAgICByZXR1cm4gdGhpcy5fcG9zdENoZWNrKHJlc3VsdCwgb3JpZ2luYWwpO1xuICAgIH1cbiAgICBfdGllckNvdW50cyh0aWVyKSB7XG4gICAgICAgIGlmICh0aGlzLl9saW1pdFRpZXJzLmhhcyhMSU1JVF9USUVSX0FMTCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9saW1pdFRpZXJzLmhhcyh0aWVyKTtcbiAgICB9XG4gICAgX3Jlc29sdmVOYW1lKG5hbWUpIHtcbiAgICAgICAgaWYgKG5hbWUgaW4gdGhpcy5faW5wdXRNYXApIHtcbiAgICAgICAgICAgIHJldHVybiB7IHZhbHVlOiB0aGlzLl9pbnB1dE1hcFtuYW1lXSwgdGllcjogTElNSVRfVElFUl9FWFRFUk5BTCB9O1xuICAgICAgICB9XG4gICAgICAgIGlmIChuYW1lIGluIHRoaXMuX2V4dGVybmFsTWFwKSB7XG4gICAgICAgICAgICByZXR1cm4geyB2YWx1ZTogdGhpcy5fZXh0ZXJuYWxNYXBbbmFtZV0sIHRpZXI6IExJTUlUX1RJRVJfRVhURVJOQUwgfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobmFtZSBpbiB0aGlzLl9iYXNlTWFwKSB7XG4gICAgICAgICAgICByZXR1cm4geyB2YWx1ZTogdGhpcy5fYmFzZU1hcFtuYW1lXSwgdGllcjogTElNSVRfVElFUl9CQVNFIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgX2NsYXNzaWZ5TkNSKGNwKSB7XG4gICAgICAgIGlmIChjcCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX25jck51bGxMZXZlbDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY3AgPj0gMHhkODAwICYmIGNwIDw9IDB4ZGZmZikge1xuICAgICAgICAgICAgcmV0dXJuIE5DUl9MRVZFTC5yZW1vdmU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuX25jclhtbFZlcnNpb24gPT09IDEuMCkge1xuICAgICAgICAgICAgaWYgKGNwID49IDB4MDEgJiYgY3AgPD0gMHgxZiAmJiAhWE1MMTBfQUxMT1dFRF9DMC5oYXMoY3ApKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIE5DUl9MRVZFTC5yZW1vdmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIC0xO1xuICAgIH1cbiAgICBfYXBwbHlOQ1JBY3Rpb24oYWN0aW9uLCB0b2tlbiwgY3ApIHtcbiAgICAgICAgc3dpdGNoIChhY3Rpb24pIHtcbiAgICAgICAgICAgIGNhc2UgTkNSX0xFVkVMLmFsbG93OlxuICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmcuZnJvbUNvZGVQb2ludChjcCk7XG4gICAgICAgICAgICBjYXNlIE5DUl9MRVZFTC5yZW1vdmU6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiXCI7XG4gICAgICAgICAgICBjYXNlIE5DUl9MRVZFTC5sZWF2ZTpcbiAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgY2FzZSBOQ1JfTEVWRUwudGhyb3c6XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBbRW50aXR5RGVjb2Rlcl0gUHJvaGliaXRlZCBudW1lcmljIGNoYXJhY3RlciByZWZlcmVuY2UgYCArXG4gICAgICAgICAgICAgICAgICAgIGAmJHt0b2tlbn07IChVKyR7Y3AudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCkucGFkU3RhcnQoNCwgXCIwXCIpfSlgKTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZy5mcm9tQ29kZVBvaW50KGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBfcmVzb2x2ZU5DUih0b2tlbikge1xuICAgICAgICBjb25zdCBzZWNvbmQgPSB0b2tlbi5jaGFyQ29kZUF0KDEpO1xuICAgICAgICBsZXQgY3A7XG4gICAgICAgIGlmIChzZWNvbmQgPT09IDEyMCB8fCBzZWNvbmQgPT09IDg4KSB7XG4gICAgICAgICAgICBjcCA9IHBhcnNlSW50KHRva2VuLnNsaWNlKDIpLCAxNik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjcCA9IHBhcnNlSW50KHRva2VuLnNsaWNlKDEpLCAxMCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKE51bWJlci5pc05hTihjcCkgfHwgY3AgPCAwIHx8IGNwID4gMHgxMGZmZmYpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbWluaW11bSA9IHRoaXMuX2NsYXNzaWZ5TkNSKGNwKTtcbiAgICAgICAgaWYgKCF0aGlzLl9udW1lcmljQWxsb3dlZCAmJiBtaW5pbXVtIDwgTkNSX0xFVkVMLnJlbW92ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBlZmZlY3RpdmUgPSBtaW5pbXVtID09PSAtMSA/IHRoaXMuX25jck9uTGV2ZWwgOiBNYXRoLm1heCh0aGlzLl9uY3JPbkxldmVsLCBtaW5pbXVtKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FwcGx5TkNSQWN0aW9uKGVmZmVjdGl2ZSwgdG9rZW4sIGNwKTtcbiAgICB9XG59O1xuZXhwb3J0cy5FbnRpdHlEZWNvZGVySW1wbCA9IEVudGl0eURlY29kZXJJbXBsO1xuIiwgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5wYXJzZVhNTCA9IHBhcnNlWE1MO1xuY29uc3QgZmFzdF94bWxfcGFyc2VyXzEgPSByZXF1aXJlKFwiZmFzdC14bWwtcGFyc2VyXCIpO1xuY29uc3Qgbm9kYWJsZV9lbnRpdGllc18xID0gcmVxdWlyZShcIi4veG1sLWV4dGVybmFsL25vZGFibGVfZW50aXRpZXNcIik7XG5jb25zdCBlbnRpdHlEZWNvZGVyID0gbmV3IG5vZGFibGVfZW50aXRpZXNfMS5FbnRpdHlEZWNvZGVySW1wbCh7XG4gICAgbmFtZWRFbnRpdGllczogeyAuLi5ub2RhYmxlX2VudGl0aWVzXzEuWE1MLCAuLi5ub2RhYmxlX2VudGl0aWVzXzEuQ09NTU9OX0hUTUwsIC4uLm5vZGFibGVfZW50aXRpZXNfMS5DVVJSRU5DWSB9LFxuICAgIG51bWVyaWNBbGxvd2VkOiB0cnVlLFxuICAgIGxpbWl0OiB7XG4gICAgICAgIG1heFRvdGFsRXhwYW5zaW9uczogSW5maW5pdHksXG4gICAgfSxcbiAgICBuY3I6IHtcbiAgICAgICAgeG1sVmVyc2lvbjogMS4xLFxuICAgIH0sXG59KTtcbmNvbnN0IHBhcnNlciA9IG5ldyBmYXN0X3htbF9wYXJzZXJfMS5YTUxQYXJzZXIoe1xuICAgIGF0dHJpYnV0ZU5hbWVQcmVmaXg6IFwiXCIsXG4gICAgcHJvY2Vzc0VudGl0aWVzOiB7XG4gICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgIG1heFRvdGFsRXhwYW5zaW9uczogSW5maW5pdHksXG4gICAgfSxcbiAgICBodG1sRW50aXRpZXM6IHRydWUsXG4gICAgZW50aXR5RGVjb2Rlcjoge1xuICAgICAgICBzZXRFeHRlcm5hbEVudGl0aWVzOiAoZW50aXRpZXMpID0+IHtcbiAgICAgICAgICAgIGVudGl0eURlY29kZXIuc2V0RXh0ZXJuYWxFbnRpdGllcyhlbnRpdGllcyk7XG4gICAgICAgIH0sXG4gICAgICAgIGFkZElucHV0RW50aXRpZXM6IChlbnRpdGllcykgPT4ge1xuICAgICAgICAgICAgZW50aXR5RGVjb2Rlci5hZGRJbnB1dEVudGl0aWVzKGVudGl0aWVzKTtcbiAgICAgICAgfSxcbiAgICAgICAgcmVzZXQ6ICgpID0+IHtcbiAgICAgICAgICAgIGVudGl0eURlY29kZXIucmVzZXQoKTtcbiAgICAgICAgfSxcbiAgICAgICAgZGVjb2RlOiAodGV4dCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGVudGl0eURlY29kZXIuZGVjb2RlKHRleHQpO1xuICAgICAgICB9LFxuICAgICAgICBzZXRYbWxWZXJzaW9uOiAodmVyc2lvbikgPT4gdm9pZCB7fSxcbiAgICB9LFxuICAgIGlnbm9yZUF0dHJpYnV0ZXM6IGZhbHNlLFxuICAgIGlnbm9yZURlY2xhcmF0aW9uOiB0cnVlLFxuICAgIHBhcnNlVGFnVmFsdWU6IGZhbHNlLFxuICAgIHRyaW1WYWx1ZXM6IGZhbHNlLFxuICAgIHRhZ1ZhbHVlUHJvY2Vzc29yOiAoXywgdmFsKSA9PiAodmFsLnRyaW0oKSA9PT0gXCJcIiAmJiB2YWwuaW5jbHVkZXMoXCJcXG5cIikgPyBcIlwiIDogdW5kZWZpbmVkKSxcbiAgICBtYXhOZXN0ZWRUYWdzOiBJbmZpbml0eSxcbn0pO1xuZnVuY3Rpb24gcGFyc2VYTUwoeG1sU3RyaW5nKSB7XG4gICAgcmV0dXJuIHBhcnNlci5wYXJzZSh4bWxTdHJpbmcsIHRydWUpO1xufVxuIiwgIid1c2Ugc3RyaWN0JztcblxudmFyIHhtbFBhcnNlciA9IHJlcXVpcmUoJy4veG1sLXBhcnNlcicpO1xuXG5jb25zdCBBVFRSX0VTQ0FQRV9SRSA9IC9bJjw+XCJdL2c7XG5jb25zdCBBVFRSX0VTQ0FQRV9NQVAgPSB7XG4gICAgXCImXCI6IFwiJmFtcDtcIixcbiAgICBcIjxcIjogXCImbHQ7XCIsXG4gICAgXCI+XCI6IFwiJmd0O1wiLFxuICAgICdcIic6IFwiJnF1b3Q7XCIsXG59O1xuZnVuY3Rpb24gZXNjYXBlQXR0cmlidXRlKHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlLnJlcGxhY2UoQVRUUl9FU0NBUEVfUkUsIChjaCkgPT4gQVRUUl9FU0NBUEVfTUFQW2NoXSk7XG59XG5cbmNvbnN0IEVMRU1FTlRfRVNDQVBFX1JFID0gL1smXCInPD5cXHJcXG5cXHUwMDg1XFx1MjAyOF0vZztcbmNvbnN0IEVMRU1FTlRfRVNDQVBFX01BUCA9IHtcbiAgICBcIiZcIjogXCImYW1wO1wiLFxuICAgICdcIic6IFwiJnF1b3Q7XCIsXG4gICAgXCInXCI6IFwiJmFwb3M7XCIsXG4gICAgXCI8XCI6IFwiJmx0O1wiLFxuICAgIFwiPlwiOiBcIiZndDtcIixcbiAgICBcIlxcclwiOiBcIiYjeDBEO1wiLFxuICAgIFwiXFxuXCI6IFwiJiN4MEE7XCIsXG4gICAgXCJcXHUwMDg1XCI6IFwiJiN4ODU7XCIsXG4gICAgXCJcXHUyMDI4XCI6IFwiJiN4MjAyODtcIixcbn07XG5mdW5jdGlvbiBlc2NhcGVFbGVtZW50KHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlLnJlcGxhY2UoRUxFTUVOVF9FU0NBUEVfUkUsIChjaCkgPT4gRUxFTUVOVF9FU0NBUEVfTUFQW2NoXSk7XG59XG5cbmNsYXNzIFhtbFRleHQge1xuICAgIHZhbHVlO1xuICAgIGNvbnN0cnVjdG9yKHZhbHVlKSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB9XG4gICAgdG9TdHJpbmcoKSB7XG4gICAgICAgIHJldHVybiBlc2NhcGVFbGVtZW50KFwiXCIgKyB0aGlzLnZhbHVlKTtcbiAgICB9XG59XG5cbmNsYXNzIFhtbE5vZGUge1xuICAgIG5hbWU7XG4gICAgY2hpbGRyZW47XG4gICAgYXR0cmlidXRlcyA9IHt9O1xuICAgIHN0YXRpYyBvZihuYW1lLCBjaGlsZFRleHQsIHdpdGhOYW1lKSB7XG4gICAgICAgIGNvbnN0IG5vZGUgPSBuZXcgWG1sTm9kZShuYW1lKTtcbiAgICAgICAgaWYgKGNoaWxkVGV4dCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBub2RlLmFkZENoaWxkTm9kZShuZXcgWG1sVGV4dChjaGlsZFRleHQpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAod2l0aE5hbWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgbm9kZS53aXRoTmFtZSh3aXRoTmFtZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5vZGU7XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKG5hbWUsIGNoaWxkcmVuID0gW10pIHtcbiAgICAgICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICAgICAgdGhpcy5jaGlsZHJlbiA9IGNoaWxkcmVuO1xuICAgIH1cbiAgICB3aXRoTmFtZShuYW1lKSB7XG4gICAgICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBhZGRBdHRyaWJ1dGUobmFtZSwgdmFsdWUpIHtcbiAgICAgICAgdGhpcy5hdHRyaWJ1dGVzW25hbWVdID0gdmFsdWU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBhZGRDaGlsZE5vZGUoY2hpbGQpIHtcbiAgICAgICAgdGhpcy5jaGlsZHJlbi5wdXNoKGNoaWxkKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIHJlbW92ZUF0dHJpYnV0ZShuYW1lKSB7XG4gICAgICAgIGRlbGV0ZSB0aGlzLmF0dHJpYnV0ZXNbbmFtZV07XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBuKG5hbWUpIHtcbiAgICAgICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIGMoY2hpbGQpIHtcbiAgICAgICAgdGhpcy5jaGlsZHJlbi5wdXNoKGNoaWxkKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIGEobmFtZSwgdmFsdWUpIHtcbiAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuYXR0cmlidXRlc1tuYW1lXSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBjYyhpbnB1dCwgZmllbGQsIHdpdGhOYW1lID0gZmllbGQpIHtcbiAgICAgICAgaWYgKGlucHV0W2ZpZWxkXSAhPSBudWxsKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlID0gWG1sTm9kZS5vZihmaWVsZCwgaW5wdXRbZmllbGRdKS53aXRoTmFtZSh3aXRoTmFtZSk7XG4gICAgICAgICAgICB0aGlzLmMobm9kZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbChpbnB1dCwgbGlzdE5hbWUsIG1lbWJlck5hbWUsIHZhbHVlUHJvdmlkZXIpIHtcbiAgICAgICAgaWYgKGlucHV0W2xpc3ROYW1lXSAhPSBudWxsKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlcyA9IHZhbHVlUHJvdmlkZXIoKTtcbiAgICAgICAgICAgIG5vZGVzLm1hcCgobm9kZSkgPT4ge1xuICAgICAgICAgICAgICAgIG5vZGUud2l0aE5hbWUobWVtYmVyTmFtZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5jKG5vZGUpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbGMoaW5wdXQsIGxpc3ROYW1lLCBtZW1iZXJOYW1lLCB2YWx1ZVByb3ZpZGVyKSB7XG4gICAgICAgIGlmIChpbnB1dFtsaXN0TmFtZV0gIT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZXMgPSB2YWx1ZVByb3ZpZGVyKCk7XG4gICAgICAgICAgICBjb25zdCBjb250YWluZXJOb2RlID0gbmV3IFhtbE5vZGUobWVtYmVyTmFtZSk7XG4gICAgICAgICAgICBub2Rlcy5tYXAoKG5vZGUpID0+IHtcbiAgICAgICAgICAgICAgICBjb250YWluZXJOb2RlLmMobm9kZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuYyhjb250YWluZXJOb2RlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICB0b1N0cmluZygpIHtcbiAgICAgICAgY29uc3QgaGFzQ2hpbGRyZW4gPSBCb29sZWFuKHRoaXMuY2hpbGRyZW4ubGVuZ3RoKTtcbiAgICAgICAgbGV0IHhtbFRleHQgPSBgPCR7dGhpcy5uYW1lfWA7XG4gICAgICAgIGNvbnN0IGF0dHJpYnV0ZXMgPSB0aGlzLmF0dHJpYnV0ZXM7XG4gICAgICAgIGZvciAoY29uc3QgYXR0cmlidXRlTmFtZSBvZiBPYmplY3Qua2V5cyhhdHRyaWJ1dGVzKSkge1xuICAgICAgICAgICAgY29uc3QgYXR0cmlidXRlID0gYXR0cmlidXRlc1thdHRyaWJ1dGVOYW1lXTtcbiAgICAgICAgICAgIGlmIChhdHRyaWJ1dGUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHhtbFRleHQgKz0gYCAke2F0dHJpYnV0ZU5hbWV9PVwiJHtlc2NhcGVBdHRyaWJ1dGUoXCJcIiArIGF0dHJpYnV0ZSl9XCJgO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiAoeG1sVGV4dCArPSAhaGFzQ2hpbGRyZW4gPyBcIi8+XCIgOiBgPiR7dGhpcy5jaGlsZHJlbi5tYXAoKGMpID0+IGMudG9TdHJpbmcoKSkuam9pbihcIlwiKX08LyR7dGhpcy5uYW1lfT5gKTtcbiAgICB9XG59XG5cbmV4cG9ydHMucGFyc2VYTUwgPSB4bWxQYXJzZXIucGFyc2VYTUw7XG5leHBvcnRzLlhtbE5vZGUgPSBYbWxOb2RlO1xuZXhwb3J0cy5YbWxUZXh0ID0gWG1sVGV4dDtcbiIsICJpbXBvcnQgeyBwYXJzZVhNTCB9IGZyb20gXCJAYXdzLXNkay94bWwtYnVpbGRlclwiO1xuaW1wb3J0IHsgRnJvbVN0cmluZ1NoYXBlRGVzZXJpYWxpemVyIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9wcm90b2NvbHNcIjtcbmltcG9ydCB7IE5vcm1hbGl6ZWRTY2hlbWEgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3NjaGVtYVwiO1xuaW1wb3J0IHsgZ2V0VmFsdWVGcm9tVGV4dE5vZGUgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyB0b1V0ZjggfSBmcm9tIFwiQHNtaXRoeS91dGlsLXV0ZjhcIjtcbmltcG9ydCB7IFNlcmRlQ29udGV4dENvbmZpZyB9IGZyb20gXCIuLi9Db25maWd1cmFibGVTZXJkZUNvbnRleHRcIjtcbmltcG9ydCB7IFVuaW9uU2VyZGUgfSBmcm9tIFwiLi4vVW5pb25TZXJkZVwiO1xuZXhwb3J0IGNsYXNzIFhtbFNoYXBlRGVzZXJpYWxpemVyIGV4dGVuZHMgU2VyZGVDb250ZXh0Q29uZmlnIHtcbiAgICBzZXR0aW5ncztcbiAgICBzdHJpbmdEZXNlcmlhbGl6ZXI7XG4gICAgY29uc3RydWN0b3Ioc2V0dGluZ3MpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5zZXR0aW5ncyA9IHNldHRpbmdzO1xuICAgICAgICB0aGlzLnN0cmluZ0Rlc2VyaWFsaXplciA9IG5ldyBGcm9tU3RyaW5nU2hhcGVEZXNlcmlhbGl6ZXIoc2V0dGluZ3MpO1xuICAgIH1cbiAgICBzZXRTZXJkZUNvbnRleHQoc2VyZGVDb250ZXh0KSB7XG4gICAgICAgIHRoaXMuc2VyZGVDb250ZXh0ID0gc2VyZGVDb250ZXh0O1xuICAgICAgICB0aGlzLnN0cmluZ0Rlc2VyaWFsaXplci5zZXRTZXJkZUNvbnRleHQoc2VyZGVDb250ZXh0KTtcbiAgICB9XG4gICAgcmVhZChzY2hlbWEsIGJ5dGVzLCBrZXkpIHtcbiAgICAgICAgY29uc3QgbnMgPSBOb3JtYWxpemVkU2NoZW1hLm9mKHNjaGVtYSk7XG4gICAgICAgIGNvbnN0IG1lbWJlclNjaGVtYXMgPSBucy5nZXRNZW1iZXJTY2hlbWFzKCk7XG4gICAgICAgIGNvbnN0IGlzRXZlbnRQYXlsb2FkID0gbnMuaXNTdHJ1Y3RTY2hlbWEoKSAmJlxuICAgICAgICAgICAgbnMuaXNNZW1iZXJTY2hlbWEoKSAmJlxuICAgICAgICAgICAgISFPYmplY3QudmFsdWVzKG1lbWJlclNjaGVtYXMpLmZpbmQoKG1lbWJlck5zKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICEhbWVtYmVyTnMuZ2V0TWVtYmVyVHJhaXRzKCkuZXZlbnRQYXlsb2FkO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIGlmIChpc0V2ZW50UGF5bG9hZCkge1xuICAgICAgICAgICAgY29uc3Qgb3V0cHV0ID0ge307XG4gICAgICAgICAgICBjb25zdCBtZW1iZXJOYW1lID0gT2JqZWN0LmtleXMobWVtYmVyU2NoZW1hcylbMF07XG4gICAgICAgICAgICBjb25zdCBldmVudE1lbWJlclNjaGVtYSA9IG1lbWJlclNjaGVtYXNbbWVtYmVyTmFtZV07XG4gICAgICAgICAgICBpZiAoZXZlbnRNZW1iZXJTY2hlbWEuaXNCbG9iU2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICBvdXRwdXRbbWVtYmVyTmFtZV0gPSBieXRlcztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIG91dHB1dFttZW1iZXJOYW1lXSA9IHRoaXMucmVhZChtZW1iZXJTY2hlbWFzW21lbWJlck5hbWVdLCBieXRlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gb3V0cHV0O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHhtbFN0cmluZyA9ICh0aGlzLnNlcmRlQ29udGV4dD8udXRmOEVuY29kZXIgPz8gdG9VdGY4KShieXRlcyk7XG4gICAgICAgIGNvbnN0IHBhcnNlZE9iamVjdCA9IHRoaXMucGFyc2VYbWwoeG1sU3RyaW5nKTtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVhZFNjaGVtYShzY2hlbWEsIGtleSA/IHBhcnNlZE9iamVjdFtrZXldIDogcGFyc2VkT2JqZWN0KTtcbiAgICB9XG4gICAgcmVhZFNjaGVtYShfc2NoZW1hLCB2YWx1ZSkge1xuICAgICAgICBjb25zdCBucyA9IE5vcm1hbGl6ZWRTY2hlbWEub2YoX3NjaGVtYSk7XG4gICAgICAgIGlmIChucy5pc1VuaXRTY2hlbWEoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHRyYWl0cyA9IG5zLmdldE1lcmdlZFRyYWl0cygpO1xuICAgICAgICBpZiAobnMuaXNMaXN0U2NoZW1hKCkgJiYgIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yZWFkU2NoZW1hKG5zLCBbdmFsdWVdKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgIGNvbnN0IGZsYXQgPSAhIXRyYWl0cy54bWxGbGF0dGVuZWQ7XG4gICAgICAgICAgICBpZiAobnMuaXNMaXN0U2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBsaXN0VmFsdWUgPSBucy5nZXRWYWx1ZVNjaGVtYSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGJ1ZmZlciA9IFtdO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNvdXJjZUtleSA9IGxpc3RWYWx1ZS5nZXRNZXJnZWRUcmFpdHMoKS54bWxOYW1lID8/IFwibWVtYmVyXCI7XG4gICAgICAgICAgICAgICAgY29uc3Qgc291cmNlID0gZmxhdCA/IHZhbHVlIDogKHZhbHVlWzBdID8/IHZhbHVlKVtzb3VyY2VLZXldO1xuICAgICAgICAgICAgICAgIGlmIChzb3VyY2UgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYnVmZmVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBzb3VyY2VBcnJheSA9IEFycmF5LmlzQXJyYXkoc291cmNlKSA/IHNvdXJjZSA6IFtzb3VyY2VdO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgdiBvZiBzb3VyY2VBcnJheSkge1xuICAgICAgICAgICAgICAgICAgICBidWZmZXIucHVzaCh0aGlzLnJlYWRTY2hlbWEobGlzdFZhbHVlLCB2KSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBidWZmZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBidWZmZXIgPSB7fTtcbiAgICAgICAgICAgIGlmIChucy5pc01hcFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qga2V5TnMgPSBucy5nZXRLZXlTY2hlbWEoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBtZW1iZXJOcyA9IG5zLmdldFZhbHVlU2NoZW1hKCk7XG4gICAgICAgICAgICAgICAgbGV0IGVudHJpZXM7XG4gICAgICAgICAgICAgICAgaWYgKGZsYXQpIHtcbiAgICAgICAgICAgICAgICAgICAgZW50cmllcyA9IEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbdmFsdWVdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgZW50cmllcyA9IEFycmF5LmlzQXJyYXkodmFsdWUuZW50cnkpID8gdmFsdWUuZW50cnkgOiBbdmFsdWUuZW50cnldO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBrZXlQcm9wZXJ0eSA9IGtleU5zLmdldE1lcmdlZFRyYWl0cygpLnhtbE5hbWUgPz8gXCJrZXlcIjtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZVByb3BlcnR5ID0gbWVtYmVyTnMuZ2V0TWVyZ2VkVHJhaXRzKCkueG1sTmFtZSA/PyBcInZhbHVlXCI7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBlbnRyeSBvZiBlbnRyaWVzKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IGVudHJ5W2tleVByb3BlcnR5XTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBlbnRyeVt2YWx1ZVByb3BlcnR5XTtcbiAgICAgICAgICAgICAgICAgICAgYnVmZmVyW2tleV0gPSB0aGlzLnJlYWRTY2hlbWEobWVtYmVyTnMsIHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGJ1ZmZlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChucy5pc1N0cnVjdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdW5pb24gPSBucy5pc1VuaW9uU2NoZW1hKCk7XG4gICAgICAgICAgICAgICAgbGV0IHVuaW9uU2VyZGU7XG4gICAgICAgICAgICAgICAgaWYgKHVuaW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIHVuaW9uU2VyZGUgPSBuZXcgVW5pb25TZXJkZSh2YWx1ZSwgYnVmZmVyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBbbWVtYmVyTmFtZSwgbWVtYmVyU2NoZW1hXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1lbWJlclRyYWl0cyA9IG1lbWJlclNjaGVtYS5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sT2JqZWN0S2V5ID0gIW1lbWJlclRyYWl0cy5odHRwUGF5bG9hZFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBtZW1iZXJTY2hlbWEuZ2V0TWVtYmVyVHJhaXRzKCkueG1sTmFtZSA/PyBtZW1iZXJOYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICA6IG1lbWJlclRyYWl0cy54bWxOYW1lID8/IG1lbWJlclNjaGVtYS5nZXROYW1lKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh1bmlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdW5pb25TZXJkZS5tYXJrKHhtbE9iamVjdEtleSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlW3htbE9iamVjdEtleV0gIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyW21lbWJlck5hbWVdID0gdGhpcy5yZWFkU2NoZW1hKG1lbWJlclNjaGVtYSwgdmFsdWVbeG1sT2JqZWN0S2V5XSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHVuaW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIHVuaW9uU2VyZGUud3JpdGVVbmtub3duKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBidWZmZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobnMuaXNEb2N1bWVudFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBAYXdzLXNkay9jb3JlL3Byb3RvY29scyAtIHhtbCBkZXNlcmlhbGl6ZXIgdW5oYW5kbGVkIHNjaGVtYSB0eXBlIGZvciAke25zLmdldE5hbWUodHJ1ZSl9YCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzTGlzdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzTWFwU2NoZW1hKCkgfHwgbnMuaXNTdHJ1Y3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnN0cmluZ0Rlc2VyaWFsaXplci5yZWFkKG5zLCB2YWx1ZSk7XG4gICAgfVxuICAgIHBhcnNlWG1sKHhtbCkge1xuICAgICAgICBpZiAoeG1sLmxlbmd0aCkge1xuICAgICAgICAgICAgbGV0IHBhcnNlZE9iajtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgcGFyc2VkT2JqID0gcGFyc2VYTUwoeG1sKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgaWYgKGUgJiYgdHlwZW9mIGUgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIFwiJHJlc3BvbnNlQm9keVRleHRcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHhtbCxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCB0ZXh0Tm9kZU5hbWUgPSBcIiN0ZXh0XCI7XG4gICAgICAgICAgICBjb25zdCBrZXkgPSBPYmplY3Qua2V5cyhwYXJzZWRPYmopWzBdO1xuICAgICAgICAgICAgY29uc3QgcGFyc2VkT2JqVG9SZXR1cm4gPSBwYXJzZWRPYmpba2V5XTtcbiAgICAgICAgICAgIGlmIChwYXJzZWRPYmpUb1JldHVyblt0ZXh0Tm9kZU5hbWVdKSB7XG4gICAgICAgICAgICAgICAgcGFyc2VkT2JqVG9SZXR1cm5ba2V5XSA9IHBhcnNlZE9ialRvUmV0dXJuW3RleHROb2RlTmFtZV07XG4gICAgICAgICAgICAgICAgZGVsZXRlIHBhcnNlZE9ialRvUmV0dXJuW3RleHROb2RlTmFtZV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZ2V0VmFsdWVGcm9tVGV4dE5vZGUocGFyc2VkT2JqVG9SZXR1cm4pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7fTtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgZGV0ZXJtaW5lVGltZXN0YW1wRm9ybWF0LCBleHRlbmRlZEVuY29kZVVSSUNvbXBvbmVudCB9IGZyb20gXCJAc21pdGh5L2NvcmUvcHJvdG9jb2xzXCI7XG5pbXBvcnQgeyBOb3JtYWxpemVkU2NoZW1hIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IGdlbmVyYXRlSWRlbXBvdGVuY3lUb2tlbiwgTnVtZXJpY1ZhbHVlIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zZXJkZVwiO1xuaW1wb3J0IHsgZGF0ZVRvVXRjU3RyaW5nIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgdG9CYXNlNjQgfSBmcm9tIFwiQHNtaXRoeS91dGlsLWJhc2U2NFwiO1xuaW1wb3J0IHsgU2VyZGVDb250ZXh0Q29uZmlnIH0gZnJvbSBcIi4uL0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dFwiO1xuZXhwb3J0IGNsYXNzIFF1ZXJ5U2hhcGVTZXJpYWxpemVyIGV4dGVuZHMgU2VyZGVDb250ZXh0Q29uZmlnIHtcbiAgICBzZXR0aW5ncztcbiAgICBidWZmZXI7XG4gICAgY29uc3RydWN0b3Ioc2V0dGluZ3MpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5zZXR0aW5ncyA9IHNldHRpbmdzO1xuICAgIH1cbiAgICB3cml0ZShzY2hlbWEsIHZhbHVlLCBwcmVmaXggPSBcIlwiKSB7XG4gICAgICAgIGlmICh0aGlzLmJ1ZmZlciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmJ1ZmZlciA9IFwiXCI7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbnMgPSBOb3JtYWxpemVkU2NoZW1hLm9mKHNjaGVtYSk7XG4gICAgICAgIGlmIChwcmVmaXggJiYgIXByZWZpeC5lbmRzV2l0aChcIi5cIikpIHtcbiAgICAgICAgICAgIHByZWZpeCArPSBcIi5cIjtcbiAgICAgICAgfVxuICAgICAgICBpZiAobnMuaXNCbG9iU2NoZW1hKCkpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgfHwgdmFsdWUgaW5zdGFuY2VvZiBVaW50OEFycmF5KSB7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZUtleShwcmVmaXgpO1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVWYWx1ZSgodGhpcy5zZXJkZUNvbnRleHQ/LmJhc2U2NEVuY29kZXIgPz8gdG9CYXNlNjQpKHZhbHVlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAobnMuaXNCb29sZWFuU2NoZW1hKCkgfHwgbnMuaXNOdW1lcmljU2NoZW1hKCkgfHwgbnMuaXNTdHJpbmdTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlS2V5KHByZWZpeCk7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKFN0cmluZyh2YWx1ZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAobnMuaXNJZGVtcG90ZW5jeVRva2VuKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlS2V5KHByZWZpeCk7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKGdlbmVyYXRlSWRlbXBvdGVuY3lUb2tlbigpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChucy5pc0JpZ0ludGVnZXJTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlS2V5KHByZWZpeCk7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKFN0cmluZyh2YWx1ZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKG5zLmlzQmlnRGVjaW1hbFNjaGVtYSgpKSB7XG4gICAgICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVLZXkocHJlZml4KTtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlVmFsdWUodmFsdWUgaW5zdGFuY2VvZiBOdW1lcmljVmFsdWUgPyB2YWx1ZS5zdHJpbmcgOiBTdHJpbmcodmFsdWUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChucy5pc1RpbWVzdGFtcFNjaGVtYSgpKSB7XG4gICAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZUtleShwcmVmaXgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZvcm1hdCA9IGRldGVybWluZVRpbWVzdGFtcEZvcm1hdChucywgdGhpcy5zZXR0aW5ncyk7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChmb3JtYXQpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKHZhbHVlLnRvSVNPU3RyaW5nKCkucmVwbGFjZShcIi4wMDBaXCIsIFwiWlwiKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKGRhdGVUb1V0Y1N0cmluZyh2YWx1ZSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMud3JpdGVWYWx1ZShTdHJpbmcodmFsdWUuZ2V0VGltZSgpIC8gMTAwMCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKG5zLmlzRG9jdW1lbnRTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZSg2NCB8IDE1LCB2YWx1ZSwgcHJlZml4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGUoNCwgdmFsdWUsIHByZWZpeCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmICh2YWx1ZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlKDIxLCB2YWx1ZSwgcHJlZml4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGUoMTI4IHwgMTUsIHZhbHVlLCBwcmVmaXgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZUtleShwcmVmaXgpO1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVWYWx1ZShTdHJpbmcodmFsdWUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChucy5pc0xpc3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5zZXR0aW5ncy5zZXJpYWxpemVFbXB0eUxpc3RzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLndyaXRlS2V5KHByZWZpeCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLndyaXRlVmFsdWUoXCJcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1lbWJlciA9IG5zLmdldFZhbHVlU2NoZW1hKCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZsYXQgPSB0aGlzLnNldHRpbmdzLmZsYXR0ZW5MaXN0cyB8fCBucy5nZXRNZXJnZWRUcmFpdHMoKS54bWxGbGF0dGVuZWQ7XG4gICAgICAgICAgICAgICAgICAgIGxldCBpID0gMTtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbSA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0cmFpdHMgPSBtZW1iZXIuZ2V0TWVyZ2VkVHJhaXRzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdWZmaXggPSB0aGlzLmdldEtleShcIm1lbWJlclwiLCB0cmFpdHMueG1sTmFtZSwgdHJhaXRzLmVjMlF1ZXJ5TmFtZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSBmbGF0ID8gYCR7cHJlZml4fSR7aX1gIDogYCR7cHJlZml4fSR7c3VmZml4fS4ke2l9YDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMud3JpdGUobWVtYmVyLCBpdGVtLCBrZXkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgKytpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKG5zLmlzTWFwU2NoZW1hKCkpIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBrZXlTY2hlbWEgPSBucy5nZXRLZXlTY2hlbWEoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBtZW1iZXJTY2hlbWEgPSBucy5nZXRWYWx1ZVNjaGVtYSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZsYXQgPSBucy5nZXRNZXJnZWRUcmFpdHMoKS54bWxGbGF0dGVuZWQ7XG4gICAgICAgICAgICAgICAgbGV0IGkgPSAxO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgayBpbiB2YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB2ID0gdmFsdWVba107XG4gICAgICAgICAgICAgICAgICAgIGlmICh2ID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGtleVRyYWl0cyA9IGtleVNjaGVtYS5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qga2V5U3VmZml4ID0gdGhpcy5nZXRLZXkoXCJrZXlcIiwga2V5VHJhaXRzLnhtbE5hbWUsIGtleVRyYWl0cy5lYzJRdWVyeU5hbWUpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSBmbGF0ID8gYCR7cHJlZml4fSR7aX0uJHtrZXlTdWZmaXh9YCA6IGAke3ByZWZpeH1lbnRyeS4ke2l9LiR7a2V5U3VmZml4fWA7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbFRyYWl0cyA9IG1lbWJlclNjaGVtYS5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWVTdWZmaXggPSB0aGlzLmdldEtleShcInZhbHVlXCIsIHZhbFRyYWl0cy54bWxOYW1lLCB2YWxUcmFpdHMuZWMyUXVlcnlOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWVLZXkgPSBmbGF0ID8gYCR7cHJlZml4fSR7aX0uJHt2YWx1ZVN1ZmZpeH1gIDogYCR7cHJlZml4fWVudHJ5LiR7aX0uJHt2YWx1ZVN1ZmZpeH1gO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLndyaXRlKGtleVNjaGVtYSwgaywga2V5KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy53cml0ZShtZW1iZXJTY2hlbWEsIHYsIHZhbHVlS2V5KTtcbiAgICAgICAgICAgICAgICAgICAgKytpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChucy5pc1N0cnVjdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICBpZiAodmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICAgICAgbGV0IGRpZFdyaXRlTWVtYmVyID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBbbWVtYmVyTmFtZSwgbWVtYmVyXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZVttZW1iZXJOYW1lXSA9PSBudWxsICYmICFtZW1iZXIuaXNJZGVtcG90ZW5jeVRva2VuKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRyYWl0cyA9IG1lbWJlci5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3VmZml4ID0gdGhpcy5nZXRLZXkobWVtYmVyTmFtZSwgdHJhaXRzLnhtbE5hbWUsIHRyYWl0cy5lYzJRdWVyeU5hbWUsIFwic3RydWN0XCIpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSBgJHtwcmVmaXh9JHtzdWZmaXh9YDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy53cml0ZShtZW1iZXIsIHZhbHVlW21lbWJlck5hbWVdLCBrZXkpO1xuICAgICAgICAgICAgICAgICAgICBkaWRXcml0ZU1lbWJlciA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICghZGlkV3JpdGVNZW1iZXIgJiYgbnMuaXNVbmlvblNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgJHVua25vd24gfSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSgkdW5rbm93bikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFtrLCB2XSA9ICR1bmtub3duO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qga2V5ID0gYCR7cHJlZml4fSR7a31gO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53cml0ZSgxNSwgdiwga2V5KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChucy5pc1VuaXRTY2hlbWEoKSkge1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBAYXdzLXNkay9jb3JlL3Byb3RvY29scyAtIFF1ZXJ5U2VyaWFsaXplciB1bnJlY29nbml6ZWQgc2NoZW1hIHR5cGUgJHtucy5nZXROYW1lKHRydWUpfWApO1xuICAgICAgICB9XG4gICAgfVxuICAgIGZsdXNoKCkge1xuICAgICAgICBpZiAodGhpcy5idWZmZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSBRdWVyeVNlcmlhbGl6ZXIgY2Fubm90IGZsdXNoIHdpdGggbm90aGluZyB3cml0dGVuIHRvIGJ1ZmZlci5cIik7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc3RyID0gdGhpcy5idWZmZXI7XG4gICAgICAgIGRlbGV0ZSB0aGlzLmJ1ZmZlcjtcbiAgICAgICAgcmV0dXJuIHN0cjtcbiAgICB9XG4gICAgZ2V0S2V5KG1lbWJlck5hbWUsIHhtbE5hbWUsIGVjMlF1ZXJ5TmFtZSwga2V5U291cmNlKSB7XG4gICAgICAgIGNvbnN0IHsgZWMyLCBjYXBpdGFsaXplS2V5cyB9ID0gdGhpcy5zZXR0aW5ncztcbiAgICAgICAgaWYgKGVjMiAmJiBlYzJRdWVyeU5hbWUpIHtcbiAgICAgICAgICAgIHJldHVybiBlYzJRdWVyeU5hbWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qga2V5ID0geG1sTmFtZSA/PyBtZW1iZXJOYW1lO1xuICAgICAgICBpZiAoY2FwaXRhbGl6ZUtleXMgJiYga2V5U291cmNlID09PSBcInN0cnVjdFwiKSB7XG4gICAgICAgICAgICByZXR1cm4ga2V5WzBdLnRvVXBwZXJDYXNlKCkgKyBrZXkuc2xpY2UoMSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGtleTtcbiAgICB9XG4gICAgd3JpdGVLZXkoa2V5KSB7XG4gICAgICAgIGlmIChrZXkuZW5kc1dpdGgoXCIuXCIpKSB7XG4gICAgICAgICAgICBrZXkgPSBrZXkuc2xpY2UoMCwga2V5Lmxlbmd0aCAtIDEpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYnVmZmVyICs9IGAmJHtleHRlbmRlZEVuY29kZVVSSUNvbXBvbmVudChrZXkpfT1gO1xuICAgIH1cbiAgICB3cml0ZVZhbHVlKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuYnVmZmVyICs9IGV4dGVuZGVkRW5jb2RlVVJJQ29tcG9uZW50KHZhbHVlKTtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgY29sbGVjdEJvZHksIFJwY1Byb3RvY29sIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9wcm90b2NvbHNcIjtcbmltcG9ydCB7IGRlcmVmLCBOb3JtYWxpemVkU2NoZW1hIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IFByb3RvY29sTGliIH0gZnJvbSBcIi4uL1Byb3RvY29sTGliXCI7XG5pbXBvcnQgeyBYbWxTaGFwZURlc2VyaWFsaXplciB9IGZyb20gXCIuLi94bWwvWG1sU2hhcGVEZXNlcmlhbGl6ZXJcIjtcbmltcG9ydCB7IFF1ZXJ5U2hhcGVTZXJpYWxpemVyIH0gZnJvbSBcIi4vUXVlcnlTaGFwZVNlcmlhbGl6ZXJcIjtcbmV4cG9ydCBjbGFzcyBBd3NRdWVyeVByb3RvY29sIGV4dGVuZHMgUnBjUHJvdG9jb2wge1xuICAgIG9wdGlvbnM7XG4gICAgc2VyaWFsaXplcjtcbiAgICBkZXNlcmlhbGl6ZXI7XG4gICAgbWl4aW4gPSBuZXcgUHJvdG9jb2xMaWIoKTtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIGRlZmF1bHROYW1lc3BhY2U6IG9wdGlvbnMuZGVmYXVsdE5hbWVzcGFjZSxcbiAgICAgICAgICAgIGVycm9yVHlwZVJlZ2lzdHJpZXM6IG9wdGlvbnMuZXJyb3JUeXBlUmVnaXN0cmllcyxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgICAgIGNvbnN0IHNldHRpbmdzID0ge1xuICAgICAgICAgICAgdGltZXN0YW1wRm9ybWF0OiB7XG4gICAgICAgICAgICAgICAgdXNlVHJhaXQ6IHRydWUsXG4gICAgICAgICAgICAgICAgZGVmYXVsdDogNSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBodHRwQmluZGluZ3M6IGZhbHNlLFxuICAgICAgICAgICAgeG1sTmFtZXNwYWNlOiBvcHRpb25zLnhtbE5hbWVzcGFjZSxcbiAgICAgICAgICAgIHNlcnZpY2VOYW1lc3BhY2U6IG9wdGlvbnMuZGVmYXVsdE5hbWVzcGFjZSxcbiAgICAgICAgICAgIHNlcmlhbGl6ZUVtcHR5TGlzdHM6IHRydWUsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuc2VyaWFsaXplciA9IG5ldyBRdWVyeVNoYXBlU2VyaWFsaXplcihzZXR0aW5ncyk7XG4gICAgICAgIHRoaXMuZGVzZXJpYWxpemVyID0gbmV3IFhtbFNoYXBlRGVzZXJpYWxpemVyKHNldHRpbmdzKTtcbiAgICB9XG4gICAgZ2V0U2hhcGVJZCgpIHtcbiAgICAgICAgcmV0dXJuIFwiYXdzLnByb3RvY29scyNhd3NRdWVyeVwiO1xuICAgIH1cbiAgICBzZXRTZXJkZUNvbnRleHQoc2VyZGVDb250ZXh0KSB7XG4gICAgICAgIHRoaXMuc2VyaWFsaXplci5zZXRTZXJkZUNvbnRleHQoc2VyZGVDb250ZXh0KTtcbiAgICAgICAgdGhpcy5kZXNlcmlhbGl6ZXIuc2V0U2VyZGVDb250ZXh0KHNlcmRlQ29udGV4dCk7XG4gICAgfVxuICAgIGdldFBheWxvYWRDb2RlYygpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQVdTUXVlcnkgcHJvdG9jb2wgaGFzIG5vIHBheWxvYWQgY29kZWMuXCIpO1xuICAgIH1cbiAgICBhc3luYyBzZXJpYWxpemVSZXF1ZXN0KG9wZXJhdGlvblNjaGVtYSwgaW5wdXQsIGNvbnRleHQpIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IGF3YWl0IHN1cGVyLnNlcmlhbGl6ZVJlcXVlc3Qob3BlcmF0aW9uU2NoZW1hLCBpbnB1dCwgY29udGV4dCk7XG4gICAgICAgIGlmICghcmVxdWVzdC5wYXRoLmVuZHNXaXRoKFwiL1wiKSkge1xuICAgICAgICAgICAgcmVxdWVzdC5wYXRoICs9IFwiL1wiO1xuICAgICAgICB9XG4gICAgICAgIHJlcXVlc3QuaGVhZGVyc1tcImNvbnRlbnQtdHlwZVwiXSA9IFwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkXCI7XG4gICAgICAgIGlmIChkZXJlZihvcGVyYXRpb25TY2hlbWEuaW5wdXQpID09PSBcInVuaXRcIiB8fCAhcmVxdWVzdC5ib2R5KSB7XG4gICAgICAgICAgICByZXF1ZXN0LmJvZHkgPSBcIlwiO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGFjdGlvbiA9IG9wZXJhdGlvblNjaGVtYS5uYW1lLnNwbGl0KFwiI1wiKVsxXSA/PyBvcGVyYXRpb25TY2hlbWEubmFtZTtcbiAgICAgICAgcmVxdWVzdC5ib2R5ID0gYEFjdGlvbj0ke2FjdGlvbn0mVmVyc2lvbj0ke3RoaXMub3B0aW9ucy52ZXJzaW9ufWAgKyByZXF1ZXN0LmJvZHk7XG4gICAgICAgIGlmIChyZXF1ZXN0LmJvZHkuZW5kc1dpdGgoXCImXCIpKSB7XG4gICAgICAgICAgICByZXF1ZXN0LmJvZHkgPSByZXF1ZXN0LmJvZHkuc2xpY2UoLTEpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXF1ZXN0O1xuICAgIH1cbiAgICBhc3luYyBkZXNlcmlhbGl6ZVJlc3BvbnNlKG9wZXJhdGlvblNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UpIHtcbiAgICAgICAgY29uc3QgZGVzZXJpYWxpemVyID0gdGhpcy5kZXNlcmlhbGl6ZXI7XG4gICAgICAgIGNvbnN0IG5zID0gTm9ybWFsaXplZFNjaGVtYS5vZihvcGVyYXRpb25TY2hlbWEub3V0cHV0KTtcbiAgICAgICAgY29uc3QgZGF0YU9iamVjdCA9IHt9O1xuICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzQ29kZSA+PSAzMDApIHtcbiAgICAgICAgICAgIGNvbnN0IGJ5dGVzID0gYXdhaXQgY29sbGVjdEJvZHkocmVzcG9uc2UuYm9keSwgY29udGV4dCk7XG4gICAgICAgICAgICBpZiAoYnl0ZXMuYnl0ZUxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKGRhdGFPYmplY3QsIGF3YWl0IGRlc2VyaWFsaXplci5yZWFkKDE1LCBieXRlcykpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYXdhaXQgdGhpcy5oYW5kbGVFcnJvcihvcGVyYXRpb25TY2hlbWEsIGNvbnRleHQsIHJlc3BvbnNlLCBkYXRhT2JqZWN0LCB0aGlzLmRlc2VyaWFsaXplTWV0YWRhdGEocmVzcG9uc2UpKTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IGhlYWRlciBpbiByZXNwb25zZS5oZWFkZXJzKSB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHJlc3BvbnNlLmhlYWRlcnNbaGVhZGVyXTtcbiAgICAgICAgICAgIGRlbGV0ZSByZXNwb25zZS5oZWFkZXJzW2hlYWRlcl07XG4gICAgICAgICAgICByZXNwb25zZS5oZWFkZXJzW2hlYWRlci50b0xvd2VyQ2FzZSgpXSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNob3J0TmFtZSA9IG9wZXJhdGlvblNjaGVtYS5uYW1lLnNwbGl0KFwiI1wiKVsxXSA/PyBvcGVyYXRpb25TY2hlbWEubmFtZTtcbiAgICAgICAgY29uc3QgYXdzUXVlcnlSZXN1bHRLZXkgPSBucy5pc1N0cnVjdFNjaGVtYSgpICYmIHRoaXMudXNlTmVzdGVkUmVzdWx0KCkgPyBzaG9ydE5hbWUgKyBcIlJlc3VsdFwiIDogdW5kZWZpbmVkO1xuICAgICAgICBjb25zdCBieXRlcyA9IGF3YWl0IGNvbGxlY3RCb2R5KHJlc3BvbnNlLmJvZHksIGNvbnRleHQpO1xuICAgICAgICBpZiAoYnl0ZXMuYnl0ZUxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oZGF0YU9iamVjdCwgYXdhaXQgZGVzZXJpYWxpemVyLnJlYWQobnMsIGJ5dGVzLCBhd3NRdWVyeVJlc3VsdEtleSkpO1xuICAgICAgICB9XG4gICAgICAgIGRhdGFPYmplY3QuJG1ldGFkYXRhID0gdGhpcy5kZXNlcmlhbGl6ZU1ldGFkYXRhKHJlc3BvbnNlKTtcbiAgICAgICAgcmV0dXJuIGRhdGFPYmplY3Q7XG4gICAgfVxuICAgIHVzZU5lc3RlZFJlc3VsdCgpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGFzeW5jIGhhbmRsZUVycm9yKG9wZXJhdGlvblNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UsIGRhdGFPYmplY3QsIG1ldGFkYXRhKSB7XG4gICAgICAgIGNvbnN0IGVycm9ySWRlbnRpZmllciA9IHRoaXMubG9hZFF1ZXJ5RXJyb3JDb2RlKHJlc3BvbnNlLCBkYXRhT2JqZWN0KSA/PyBcIlVua25vd25cIjtcbiAgICAgICAgdGhpcy5taXhpbi5jb21wb3NlKHRoaXMuY29tcG9zaXRlRXJyb3JSZWdpc3RyeSwgZXJyb3JJZGVudGlmaWVyLCB0aGlzLm9wdGlvbnMuZGVmYXVsdE5hbWVzcGFjZSk7XG4gICAgICAgIGNvbnN0IGVycm9yRGF0YSA9IHRoaXMubG9hZFF1ZXJ5RXJyb3IoZGF0YU9iamVjdCkgPz8ge307XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSB0aGlzLmxvYWRRdWVyeUVycm9yTWVzc2FnZShkYXRhT2JqZWN0KTtcbiAgICAgICAgZXJyb3JEYXRhLm1lc3NhZ2UgPSBtZXNzYWdlO1xuICAgICAgICBlcnJvckRhdGEuRXJyb3IgPSB7XG4gICAgICAgICAgICBUeXBlOiBlcnJvckRhdGEuVHlwZSxcbiAgICAgICAgICAgIENvZGU6IGVycm9yRGF0YS5Db2RlLFxuICAgICAgICAgICAgTWVzc2FnZTogbWVzc2FnZSxcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgeyBlcnJvclNjaGVtYSwgZXJyb3JNZXRhZGF0YSB9ID0gYXdhaXQgdGhpcy5taXhpbi5nZXRFcnJvclNjaGVtYU9yVGhyb3dCYXNlRXhjZXB0aW9uKGVycm9ySWRlbnRpZmllciwgdGhpcy5vcHRpb25zLmRlZmF1bHROYW1lc3BhY2UsIHJlc3BvbnNlLCBlcnJvckRhdGEsIG1ldGFkYXRhLCB0aGlzLm1peGluLmZpbmRRdWVyeUNvbXBhdGlibGVFcnJvcik7XG4gICAgICAgIGNvbnN0IG5zID0gTm9ybWFsaXplZFNjaGVtYS5vZihlcnJvclNjaGVtYSk7XG4gICAgICAgIGNvbnN0IEVycm9yQ3RvciA9IHRoaXMuY29tcG9zaXRlRXJyb3JSZWdpc3RyeS5nZXRFcnJvckN0b3IoZXJyb3JTY2hlbWEpID8/IEVycm9yO1xuICAgICAgICBjb25zdCBleGNlcHRpb24gPSBuZXcgRXJyb3JDdG9yKG1lc3NhZ2UpO1xuICAgICAgICBjb25zdCBvdXRwdXQgPSB7XG4gICAgICAgICAgICBUeXBlOiBlcnJvckRhdGEuRXJyb3IuVHlwZSxcbiAgICAgICAgICAgIENvZGU6IGVycm9yRGF0YS5FcnJvci5Db2RlLFxuICAgICAgICAgICAgRXJyb3I6IGVycm9yRGF0YS5FcnJvcixcbiAgICAgICAgfTtcbiAgICAgICAgZm9yIChjb25zdCBbbmFtZSwgbWVtYmVyXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBtZW1iZXIuZ2V0TWVyZ2VkVHJhaXRzKCkueG1sTmFtZSA/PyBuYW1lO1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBlcnJvckRhdGFbdGFyZ2V0XSA/PyBkYXRhT2JqZWN0W3RhcmdldF07XG4gICAgICAgICAgICBvdXRwdXRbbmFtZV0gPSB0aGlzLmRlc2VyaWFsaXplci5yZWFkU2NoZW1hKG1lbWJlciwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IHRoaXMubWl4aW4uZGVjb3JhdGVTZXJ2aWNlRXhjZXB0aW9uKE9iamVjdC5hc3NpZ24oZXhjZXB0aW9uLCBlcnJvck1ldGFkYXRhLCB7XG4gICAgICAgICAgICAkZmF1bHQ6IG5zLmdldE1lcmdlZFRyYWl0cygpLmVycm9yLFxuICAgICAgICAgICAgbWVzc2FnZSxcbiAgICAgICAgfSwgb3V0cHV0KSwgZGF0YU9iamVjdCk7XG4gICAgfVxuICAgIGxvYWRRdWVyeUVycm9yQ29kZShvdXRwdXQsIGRhdGEpIHtcbiAgICAgICAgY29uc3QgY29kZSA9IChkYXRhLkVycm9ycz8uWzBdPy5FcnJvciA/PyBkYXRhLkVycm9ycz8uRXJyb3IgPz8gZGF0YS5FcnJvcik/LkNvZGU7XG4gICAgICAgIGlmIChjb2RlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBjb2RlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvdXRwdXQuc3RhdHVzQ29kZSA9PSA0MDQpIHtcbiAgICAgICAgICAgIHJldHVybiBcIk5vdEZvdW5kXCI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbG9hZFF1ZXJ5RXJyb3IoZGF0YSkge1xuICAgICAgICByZXR1cm4gZGF0YS5FcnJvcnM/LlswXT8uRXJyb3IgPz8gZGF0YS5FcnJvcnM/LkVycm9yID8/IGRhdGEuRXJyb3I7XG4gICAgfVxuICAgIGxvYWRRdWVyeUVycm9yTWVzc2FnZShkYXRhKSB7XG4gICAgICAgIGNvbnN0IGVycm9yRGF0YSA9IHRoaXMubG9hZFF1ZXJ5RXJyb3IoZGF0YSk7XG4gICAgICAgIHJldHVybiBlcnJvckRhdGE/Lm1lc3NhZ2UgPz8gZXJyb3JEYXRhPy5NZXNzYWdlID8/IGRhdGEubWVzc2FnZSA/PyBkYXRhLk1lc3NhZ2UgPz8gXCJVbmtub3duXCI7XG4gICAgfVxuICAgIGdldERlZmF1bHRDb250ZW50VHlwZSgpIHtcbiAgICAgICAgcmV0dXJuIFwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkXCI7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IEF3c1F1ZXJ5UHJvdG9jb2wgfSBmcm9tIFwiLi9Bd3NRdWVyeVByb3RvY29sXCI7XG5leHBvcnQgY2xhc3MgQXdzRWMyUXVlcnlQcm90b2NvbCBleHRlbmRzIEF3c1F1ZXJ5UHJvdG9jb2wge1xuICAgIG9wdGlvbnM7XG4gICAgY29uc3RydWN0b3Iob3B0aW9ucykge1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgICAgICAgY29uc3QgZWMyU2V0dGluZ3MgPSB7XG4gICAgICAgICAgICBjYXBpdGFsaXplS2V5czogdHJ1ZSxcbiAgICAgICAgICAgIGZsYXR0ZW5MaXN0czogdHJ1ZSxcbiAgICAgICAgICAgIHNlcmlhbGl6ZUVtcHR5TGlzdHM6IGZhbHNlLFxuICAgICAgICAgICAgZWMyOiB0cnVlLFxuICAgICAgICB9O1xuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMuc2VyaWFsaXplci5zZXR0aW5ncywgZWMyU2V0dGluZ3MpO1xuICAgIH1cbiAgICBnZXRTaGFwZUlkKCkge1xuICAgICAgICByZXR1cm4gXCJhd3MucHJvdG9jb2xzI2VjMlF1ZXJ5XCI7XG4gICAgfVxuICAgIHVzZU5lc3RlZFJlc3VsdCgpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cbiIsICJleHBvcnQge307XG4iLCAiaW1wb3J0IHsgcGFyc2VYTUwgfSBmcm9tIFwiQGF3cy1zZGsveG1sLWJ1aWxkZXJcIjtcbmltcG9ydCB7IGdldFZhbHVlRnJvbVRleHROb2RlIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgY29sbGVjdEJvZHlTdHJpbmcgfSBmcm9tIFwiLi4vY29tbW9uXCI7XG5leHBvcnQgY29uc3QgcGFyc2VYbWxCb2R5ID0gKHN0cmVhbUJvZHksIGNvbnRleHQpID0+IGNvbGxlY3RCb2R5U3RyaW5nKHN0cmVhbUJvZHksIGNvbnRleHQpLnRoZW4oKGVuY29kZWQpID0+IHtcbiAgICBpZiAoZW5jb2RlZC5sZW5ndGgpIHtcbiAgICAgICAgbGV0IHBhcnNlZE9iajtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHBhcnNlZE9iaiA9IHBhcnNlWE1MKGVuY29kZWQpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICBpZiAoZSAmJiB0eXBlb2YgZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCBcIiRyZXNwb25zZUJvZHlUZXh0XCIsIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGVuY29kZWQsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHRleHROb2RlTmFtZSA9IFwiI3RleHRcIjtcbiAgICAgICAgY29uc3Qga2V5ID0gT2JqZWN0LmtleXMocGFyc2VkT2JqKVswXTtcbiAgICAgICAgY29uc3QgcGFyc2VkT2JqVG9SZXR1cm4gPSBwYXJzZWRPYmpba2V5XTtcbiAgICAgICAgaWYgKHBhcnNlZE9ialRvUmV0dXJuW3RleHROb2RlTmFtZV0pIHtcbiAgICAgICAgICAgIHBhcnNlZE9ialRvUmV0dXJuW2tleV0gPSBwYXJzZWRPYmpUb1JldHVyblt0ZXh0Tm9kZU5hbWVdO1xuICAgICAgICAgICAgZGVsZXRlIHBhcnNlZE9ialRvUmV0dXJuW3RleHROb2RlTmFtZV07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGdldFZhbHVlRnJvbVRleHROb2RlKHBhcnNlZE9ialRvUmV0dXJuKTtcbiAgICB9XG4gICAgcmV0dXJuIHt9O1xufSk7XG5leHBvcnQgY29uc3QgcGFyc2VYbWxFcnJvckJvZHkgPSBhc3luYyAoZXJyb3JCb2R5LCBjb250ZXh0KSA9PiB7XG4gICAgY29uc3QgdmFsdWUgPSBhd2FpdCBwYXJzZVhtbEJvZHkoZXJyb3JCb2R5LCBjb250ZXh0KTtcbiAgICBpZiAodmFsdWUuRXJyb3IpIHtcbiAgICAgICAgdmFsdWUuRXJyb3IubWVzc2FnZSA9IHZhbHVlLkVycm9yLm1lc3NhZ2UgPz8gdmFsdWUuRXJyb3IuTWVzc2FnZTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlO1xufTtcbmV4cG9ydCBjb25zdCBsb2FkUmVzdFhtbEVycm9yQ29kZSA9IChvdXRwdXQsIGRhdGEpID0+IHtcbiAgICBpZiAoZGF0YT8uRXJyb3I/LkNvZGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gZGF0YS5FcnJvci5Db2RlO1xuICAgIH1cbiAgICBpZiAoZGF0YT8uQ29kZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiBkYXRhLkNvZGU7XG4gICAgfVxuICAgIGlmIChvdXRwdXQuc3RhdHVzQ29kZSA9PSA0MDQpIHtcbiAgICAgICAgcmV0dXJuIFwiTm90Rm91bmRcIjtcbiAgICB9XG59O1xuIiwgImltcG9ydCB7IFhtbE5vZGUsIFhtbFRleHQgfSBmcm9tIFwiQGF3cy1zZGsveG1sLWJ1aWxkZXJcIjtcbmltcG9ydCB7IGRldGVybWluZVRpbWVzdGFtcEZvcm1hdCB9IGZyb20gXCJAc21pdGh5L2NvcmUvcHJvdG9jb2xzXCI7XG5pbXBvcnQgeyBOb3JtYWxpemVkU2NoZW1hIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IGdlbmVyYXRlSWRlbXBvdGVuY3lUb2tlbiwgTnVtZXJpY1ZhbHVlIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zZXJkZVwiO1xuaW1wb3J0IHsgZGF0ZVRvVXRjU3RyaW5nIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgZnJvbUJhc2U2NCwgdG9CYXNlNjQgfSBmcm9tIFwiQHNtaXRoeS91dGlsLWJhc2U2NFwiO1xuaW1wb3J0IHsgU2VyZGVDb250ZXh0Q29uZmlnIH0gZnJvbSBcIi4uL0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dFwiO1xuZXhwb3J0IGNsYXNzIFhtbFNoYXBlU2VyaWFsaXplciBleHRlbmRzIFNlcmRlQ29udGV4dENvbmZpZyB7XG4gICAgc2V0dGluZ3M7XG4gICAgc3RyaW5nQnVmZmVyO1xuICAgIGJ5dGVCdWZmZXI7XG4gICAgYnVmZmVyO1xuICAgIGNvbnN0cnVjdG9yKHNldHRpbmdzKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuc2V0dGluZ3MgPSBzZXR0aW5ncztcbiAgICB9XG4gICAgd3JpdGUoc2NoZW1hLCB2YWx1ZSkge1xuICAgICAgICBjb25zdCBucyA9IE5vcm1hbGl6ZWRTY2hlbWEub2Yoc2NoZW1hKTtcbiAgICAgICAgaWYgKG5zLmlzU3RyaW5nU2NoZW1hKCkgJiYgdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICB0aGlzLnN0cmluZ0J1ZmZlciA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKG5zLmlzQmxvYlNjaGVtYSgpKSB7XG4gICAgICAgICAgICB0aGlzLmJ5dGVCdWZmZXIgPVxuICAgICAgICAgICAgICAgIFwiYnl0ZUxlbmd0aFwiIGluIHZhbHVlXG4gICAgICAgICAgICAgICAgICAgID8gdmFsdWVcbiAgICAgICAgICAgICAgICAgICAgOiAodGhpcy5zZXJkZUNvbnRleHQ/LmJhc2U2NERlY29kZXIgPz8gZnJvbUJhc2U2NCkodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5idWZmZXIgPSB0aGlzLndyaXRlU3RydWN0KG5zLCB2YWx1ZSwgdW5kZWZpbmVkKTtcbiAgICAgICAgICAgIGNvbnN0IHRyYWl0cyA9IG5zLmdldE1lcmdlZFRyYWl0cygpO1xuICAgICAgICAgICAgaWYgKHRyYWl0cy5odHRwUGF5bG9hZCAmJiAhdHJhaXRzLnhtbE5hbWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmJ1ZmZlci53aXRoTmFtZShucy5nZXROYW1lKCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGZsdXNoKCkge1xuICAgICAgICBpZiAodGhpcy5ieXRlQnVmZmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IGJ5dGVzID0gdGhpcy5ieXRlQnVmZmVyO1xuICAgICAgICAgICAgZGVsZXRlIHRoaXMuYnl0ZUJ1ZmZlcjtcbiAgICAgICAgICAgIHJldHVybiBieXRlcztcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5zdHJpbmdCdWZmZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgY29uc3Qgc3RyID0gdGhpcy5zdHJpbmdCdWZmZXI7XG4gICAgICAgICAgICBkZWxldGUgdGhpcy5zdHJpbmdCdWZmZXI7XG4gICAgICAgICAgICByZXR1cm4gc3RyO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGJ1ZmZlciA9IHRoaXMuYnVmZmVyO1xuICAgICAgICBpZiAodGhpcy5zZXR0aW5ncy54bWxOYW1lc3BhY2UpIHtcbiAgICAgICAgICAgIGlmICghYnVmZmVyPy5hdHRyaWJ1dGVzPy5bXCJ4bWxuc1wiXSkge1xuICAgICAgICAgICAgICAgIGJ1ZmZlci5hZGRBdHRyaWJ1dGUoXCJ4bWxuc1wiLCB0aGlzLnNldHRpbmdzLnhtbE5hbWVzcGFjZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZGVsZXRlIHRoaXMuYnVmZmVyO1xuICAgICAgICByZXR1cm4gYnVmZmVyLnRvU3RyaW5nKCk7XG4gICAgfVxuICAgIHdyaXRlU3RydWN0KG5zLCB2YWx1ZSwgcGFyZW50WG1sbnMpIHtcbiAgICAgICAgY29uc3QgdHJhaXRzID0gbnMuZ2V0TWVyZ2VkVHJhaXRzKCk7XG4gICAgICAgIGNvbnN0IG5hbWUgPSBucy5pc01lbWJlclNjaGVtYSgpICYmICF0cmFpdHMuaHR0cFBheWxvYWRcbiAgICAgICAgICAgID8gbnMuZ2V0TWVtYmVyVHJhaXRzKCkueG1sTmFtZSA/PyBucy5nZXRNZW1iZXJOYW1lKClcbiAgICAgICAgICAgIDogdHJhaXRzLnhtbE5hbWUgPz8gbnMuZ2V0TmFtZSgpO1xuICAgICAgICBpZiAoIW5hbWUgfHwgIW5zLmlzU3RydWN0U2NoZW1hKCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSB4bWwgc2VyaWFsaXplciwgY2Fubm90IHdyaXRlIHN0cnVjdCB3aXRoIGVtcHR5IG5hbWUgb3Igbm9uLXN0cnVjdCwgc2NoZW1hPSR7bnMuZ2V0TmFtZSh0cnVlKX0uYCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc3RydWN0WG1sTm9kZSA9IFhtbE5vZGUub2YobmFtZSk7XG4gICAgICAgIGNvbnN0IFt4bWxuc0F0dHIsIHhtbG5zXSA9IHRoaXMuZ2V0WG1sbnNBdHRyaWJ1dGUobnMsIHBhcmVudFhtbG5zKTtcbiAgICAgICAgZm9yIChjb25zdCBbbWVtYmVyTmFtZSwgbWVtYmVyU2NoZW1hXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICBjb25zdCB2YWwgPSB2YWx1ZVttZW1iZXJOYW1lXTtcbiAgICAgICAgICAgIGlmICh2YWwgIT0gbnVsbCB8fCBtZW1iZXJTY2hlbWEuaXNJZGVtcG90ZW5jeVRva2VuKCkpIHtcbiAgICAgICAgICAgICAgICBpZiAobWVtYmVyU2NoZW1hLmdldE1lcmdlZFRyYWl0cygpLnhtbEF0dHJpYnV0ZSkge1xuICAgICAgICAgICAgICAgICAgICBzdHJ1Y3RYbWxOb2RlLmFkZEF0dHJpYnV0ZShtZW1iZXJTY2hlbWEuZ2V0TWVyZ2VkVHJhaXRzKCkueG1sTmFtZSA/PyBtZW1iZXJOYW1lLCB0aGlzLndyaXRlU2ltcGxlKG1lbWJlclNjaGVtYSwgdmFsKSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAobWVtYmVyU2NoZW1hLmlzTGlzdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMud3JpdGVMaXN0KG1lbWJlclNjaGVtYSwgdmFsLCBzdHJ1Y3RYbWxOb2RlLCB4bWxucyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKG1lbWJlclNjaGVtYS5pc01hcFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMud3JpdGVNYXAobWVtYmVyU2NoZW1hLCB2YWwsIHN0cnVjdFhtbE5vZGUsIHhtbG5zKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAobWVtYmVyU2NoZW1hLmlzU3RydWN0U2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgc3RydWN0WG1sTm9kZS5hZGRDaGlsZE5vZGUodGhpcy53cml0ZVN0cnVjdChtZW1iZXJTY2hlbWEsIHZhbCwgeG1sbnMpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1lbWJlck5vZGUgPSBYbWxOb2RlLm9mKG1lbWJlclNjaGVtYS5nZXRNZXJnZWRUcmFpdHMoKS54bWxOYW1lID8/IG1lbWJlclNjaGVtYS5nZXRNZW1iZXJOYW1lKCkpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLndyaXRlU2ltcGxlSW50byhtZW1iZXJTY2hlbWEsIHZhbCwgbWVtYmVyTm9kZSwgeG1sbnMpO1xuICAgICAgICAgICAgICAgICAgICBzdHJ1Y3RYbWxOb2RlLmFkZENoaWxkTm9kZShtZW1iZXJOb2RlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgeyAkdW5rbm93biB9ID0gdmFsdWU7XG4gICAgICAgIGlmICgkdW5rbm93biAmJiBucy5pc1VuaW9uU2NoZW1hKCkgJiYgQXJyYXkuaXNBcnJheSgkdW5rbm93bikgJiYgT2JqZWN0LmtleXModmFsdWUpLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgY29uc3QgW2ssIHZdID0gJHVua25vd247XG4gICAgICAgICAgICBjb25zdCBub2RlID0gWG1sTm9kZS5vZihrKTtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdiAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIFhtbE5vZGUgfHwgdmFsdWUgaW5zdGFuY2VvZiBYbWxUZXh0KSB7XG4gICAgICAgICAgICAgICAgICAgIHN0cnVjdFhtbE5vZGUuYWRkQ2hpbGROb2RlKHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQGF3cy1zZGsgLSAkdW5rbm93biB1bmlvbiBtZW1iZXIgaW4gWE1MIHJlcXVpcmVzIGAgK1xuICAgICAgICAgICAgICAgICAgICAgICAgYHZhbHVlIG9mIHR5cGUgc3RyaW5nLCBAYXdzLXNkay94bWwtYnVpbGRlcjo6WG1sTm9kZSBvciBYbWxUZXh0LmApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMud3JpdGVTaW1wbGVJbnRvKDAsIHYsIG5vZGUsIHhtbG5zKTtcbiAgICAgICAgICAgIHN0cnVjdFhtbE5vZGUuYWRkQ2hpbGROb2RlKG5vZGUpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh4bWxucykge1xuICAgICAgICAgICAgc3RydWN0WG1sTm9kZS5hZGRBdHRyaWJ1dGUoeG1sbnNBdHRyLCB4bWxucyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN0cnVjdFhtbE5vZGU7XG4gICAgfVxuICAgIHdyaXRlTGlzdChsaXN0TWVtYmVyLCBhcnJheSwgY29udGFpbmVyLCBwYXJlbnRYbWxucykge1xuICAgICAgICBpZiAoIWxpc3RNZW1iZXIuaXNNZW1iZXJTY2hlbWEoKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBAYXdzLXNkay9jb3JlL3Byb3RvY29scyAtIHhtbCBzZXJpYWxpemVyLCBjYW5ub3Qgd3JpdGUgbm9uLW1lbWJlciBsaXN0OiAke2xpc3RNZW1iZXIuZ2V0TmFtZSh0cnVlKX1gKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBsaXN0VHJhaXRzID0gbGlzdE1lbWJlci5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgY29uc3QgbGlzdFZhbHVlU2NoZW1hID0gbGlzdE1lbWJlci5nZXRWYWx1ZVNjaGVtYSgpO1xuICAgICAgICBjb25zdCBsaXN0VmFsdWVUcmFpdHMgPSBsaXN0VmFsdWVTY2hlbWEuZ2V0TWVyZ2VkVHJhaXRzKCk7XG4gICAgICAgIGNvbnN0IHNwYXJzZSA9ICEhbGlzdFZhbHVlVHJhaXRzLnNwYXJzZTtcbiAgICAgICAgY29uc3QgZmxhdCA9ICEhbGlzdFRyYWl0cy54bWxGbGF0dGVuZWQ7XG4gICAgICAgIGNvbnN0IFt4bWxuc0F0dHIsIHhtbG5zXSA9IHRoaXMuZ2V0WG1sbnNBdHRyaWJ1dGUobGlzdE1lbWJlciwgcGFyZW50WG1sbnMpO1xuICAgICAgICBjb25zdCB3cml0ZUl0ZW0gPSAoY29udGFpbmVyLCB2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgaWYgKGxpc3RWYWx1ZVNjaGVtYS5pc0xpc3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVMaXN0KGxpc3RWYWx1ZVNjaGVtYSwgQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV0sIGNvbnRhaW5lciwgeG1sbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAobGlzdFZhbHVlU2NoZW1hLmlzTWFwU2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlTWFwKGxpc3RWYWx1ZVNjaGVtYSwgdmFsdWUsIGNvbnRhaW5lciwgeG1sbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAobGlzdFZhbHVlU2NoZW1hLmlzU3RydWN0U2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgPSB0aGlzLndyaXRlU3RydWN0KGxpc3RWYWx1ZVNjaGVtYSwgdmFsdWUsIHhtbG5zKTtcbiAgICAgICAgICAgICAgICBjb250YWluZXIuYWRkQ2hpbGROb2RlKHN0cnVjdC53aXRoTmFtZShmbGF0ID8gbGlzdFRyYWl0cy54bWxOYW1lID8/IGxpc3RNZW1iZXIuZ2V0TWVtYmVyTmFtZSgpIDogbGlzdFZhbHVlVHJhaXRzLnhtbE5hbWUgPz8gXCJtZW1iZXJcIikpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbGlzdEl0ZW1Ob2RlID0gWG1sTm9kZS5vZihmbGF0ID8gbGlzdFRyYWl0cy54bWxOYW1lID8/IGxpc3RNZW1iZXIuZ2V0TWVtYmVyTmFtZSgpIDogbGlzdFZhbHVlVHJhaXRzLnhtbE5hbWUgPz8gXCJtZW1iZXJcIik7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZVNpbXBsZUludG8obGlzdFZhbHVlU2NoZW1hLCB2YWx1ZSwgbGlzdEl0ZW1Ob2RlLCB4bWxucyk7XG4gICAgICAgICAgICAgICAgY29udGFpbmVyLmFkZENoaWxkTm9kZShsaXN0SXRlbU5vZGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBpZiAoZmxhdCkge1xuICAgICAgICAgICAgZm9yIChjb25zdCB2YWx1ZSBvZiBhcnJheSkge1xuICAgICAgICAgICAgICAgIGlmIChzcGFyc2UgfHwgdmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICB3cml0ZUl0ZW0oY29udGFpbmVyLCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgbGlzdE5vZGUgPSBYbWxOb2RlLm9mKGxpc3RUcmFpdHMueG1sTmFtZSA/PyBsaXN0TWVtYmVyLmdldE1lbWJlck5hbWUoKSk7XG4gICAgICAgICAgICBpZiAoeG1sbnMpIHtcbiAgICAgICAgICAgICAgICBsaXN0Tm9kZS5hZGRBdHRyaWJ1dGUoeG1sbnNBdHRyLCB4bWxucyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHZhbHVlIG9mIGFycmF5KSB7XG4gICAgICAgICAgICAgICAgaWYgKHNwYXJzZSB8fCB2YWx1ZSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHdyaXRlSXRlbShsaXN0Tm9kZSwgdmFsdWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnRhaW5lci5hZGRDaGlsZE5vZGUobGlzdE5vZGUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHdyaXRlTWFwKG1hcE1lbWJlciwgbWFwLCBjb250YWluZXIsIHBhcmVudFhtbG5zLCBjb250YWluZXJJc01hcCA9IGZhbHNlKSB7XG4gICAgICAgIGlmICghbWFwTWVtYmVyLmlzTWVtYmVyU2NoZW1hKCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSB4bWwgc2VyaWFsaXplciwgY2Fubm90IHdyaXRlIG5vbi1tZW1iZXIgbWFwOiAke21hcE1lbWJlci5nZXROYW1lKHRydWUpfWApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG1hcFRyYWl0cyA9IG1hcE1lbWJlci5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgY29uc3QgbWFwS2V5U2NoZW1hID0gbWFwTWVtYmVyLmdldEtleVNjaGVtYSgpO1xuICAgICAgICBjb25zdCBtYXBLZXlUcmFpdHMgPSBtYXBLZXlTY2hlbWEuZ2V0TWVyZ2VkVHJhaXRzKCk7XG4gICAgICAgIGNvbnN0IGtleVRhZyA9IG1hcEtleVRyYWl0cy54bWxOYW1lID8/IFwia2V5XCI7XG4gICAgICAgIGNvbnN0IG1hcFZhbHVlU2NoZW1hID0gbWFwTWVtYmVyLmdldFZhbHVlU2NoZW1hKCk7XG4gICAgICAgIGNvbnN0IG1hcFZhbHVlVHJhaXRzID0gbWFwVmFsdWVTY2hlbWEuZ2V0TWVyZ2VkVHJhaXRzKCk7XG4gICAgICAgIGNvbnN0IHZhbHVlVGFnID0gbWFwVmFsdWVUcmFpdHMueG1sTmFtZSA/PyBcInZhbHVlXCI7XG4gICAgICAgIGNvbnN0IHNwYXJzZSA9ICEhbWFwVmFsdWVUcmFpdHMuc3BhcnNlO1xuICAgICAgICBjb25zdCBmbGF0ID0gISFtYXBUcmFpdHMueG1sRmxhdHRlbmVkO1xuICAgICAgICBjb25zdCBbeG1sbnNBdHRyLCB4bWxuc10gPSB0aGlzLmdldFhtbG5zQXR0cmlidXRlKG1hcE1lbWJlciwgcGFyZW50WG1sbnMpO1xuICAgICAgICBjb25zdCBhZGRLZXlWYWx1ZSA9IChlbnRyeSwga2V5LCB2YWwpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGtleU5vZGUgPSBYbWxOb2RlLm9mKGtleVRhZywga2V5KTtcbiAgICAgICAgICAgIGNvbnN0IFtrZXlYbWxuc0F0dHIsIGtleVhtbG5zXSA9IHRoaXMuZ2V0WG1sbnNBdHRyaWJ1dGUobWFwS2V5U2NoZW1hLCB4bWxucyk7XG4gICAgICAgICAgICBpZiAoa2V5WG1sbnMpIHtcbiAgICAgICAgICAgICAgICBrZXlOb2RlLmFkZEF0dHJpYnV0ZShrZXlYbWxuc0F0dHIsIGtleVhtbG5zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVudHJ5LmFkZENoaWxkTm9kZShrZXlOb2RlKTtcbiAgICAgICAgICAgIGxldCB2YWx1ZU5vZGUgPSBYbWxOb2RlLm9mKHZhbHVlVGFnKTtcbiAgICAgICAgICAgIGlmIChtYXBWYWx1ZVNjaGVtYS5pc0xpc3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVMaXN0KG1hcFZhbHVlU2NoZW1hLCB2YWwsIHZhbHVlTm9kZSwgeG1sbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAobWFwVmFsdWVTY2hlbWEuaXNNYXBTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVNYXAobWFwVmFsdWVTY2hlbWEsIHZhbCwgdmFsdWVOb2RlLCB4bWxucywgdHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChtYXBWYWx1ZVNjaGVtYS5pc1N0cnVjdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgdmFsdWVOb2RlID0gdGhpcy53cml0ZVN0cnVjdChtYXBWYWx1ZVNjaGVtYSwgdmFsLCB4bWxucyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlU2ltcGxlSW50byhtYXBWYWx1ZVNjaGVtYSwgdmFsLCB2YWx1ZU5vZGUsIHhtbG5zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVudHJ5LmFkZENoaWxkTm9kZSh2YWx1ZU5vZGUpO1xuICAgICAgICB9O1xuICAgICAgICBpZiAoZmxhdCkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gbWFwKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsID0gbWFwW2tleV07XG4gICAgICAgICAgICAgICAgaWYgKHNwYXJzZSB8fCB2YWwgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlbnRyeSA9IFhtbE5vZGUub2YobWFwVHJhaXRzLnhtbE5hbWUgPz8gbWFwTWVtYmVyLmdldE1lbWJlck5hbWUoKSk7XG4gICAgICAgICAgICAgICAgICAgIGFkZEtleVZhbHVlKGVudHJ5LCBrZXksIHZhbCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lci5hZGRDaGlsZE5vZGUoZW50cnkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGxldCBtYXBOb2RlO1xuICAgICAgICAgICAgaWYgKCFjb250YWluZXJJc01hcCkge1xuICAgICAgICAgICAgICAgIG1hcE5vZGUgPSBYbWxOb2RlLm9mKG1hcFRyYWl0cy54bWxOYW1lID8/IG1hcE1lbWJlci5nZXRNZW1iZXJOYW1lKCkpO1xuICAgICAgICAgICAgICAgIGlmICh4bWxucykge1xuICAgICAgICAgICAgICAgICAgICBtYXBOb2RlLmFkZEF0dHJpYnV0ZSh4bWxuc0F0dHIsIHhtbG5zKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29udGFpbmVyLmFkZENoaWxkTm9kZShtYXBOb2RlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIG1hcCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbCA9IG1hcFtrZXldO1xuICAgICAgICAgICAgICAgIGlmIChzcGFyc2UgfHwgdmFsICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZW50cnkgPSBYbWxOb2RlLm9mKFwiZW50cnlcIik7XG4gICAgICAgICAgICAgICAgICAgIGFkZEtleVZhbHVlKGVudHJ5LCBrZXksIHZhbCk7XG4gICAgICAgICAgICAgICAgICAgIChjb250YWluZXJJc01hcCA/IGNvbnRhaW5lciA6IG1hcE5vZGUpLmFkZENoaWxkTm9kZShlbnRyeSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHdyaXRlU2ltcGxlKF9zY2hlbWEsIHZhbHVlKSB7XG4gICAgICAgIGlmIChudWxsID09PSB2YWx1ZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSAoWE1MIHNlcmlhbGl6ZXIpIGNhbm5vdCB3cml0ZSBudWxsIHZhbHVlLlwiKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBucyA9IE5vcm1hbGl6ZWRTY2hlbWEub2YoX3NjaGVtYSk7XG4gICAgICAgIGxldCBub2RlQ29udGVudHMgPSBudWxsO1xuICAgICAgICBpZiAodmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICBpZiAobnMuaXNCbG9iU2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICBub2RlQ29udGVudHMgPSAodGhpcy5zZXJkZUNvbnRleHQ/LmJhc2U2NEVuY29kZXIgPz8gdG9CYXNlNjQpKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKG5zLmlzVGltZXN0YW1wU2NoZW1hKCkgJiYgdmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZm9ybWF0ID0gZGV0ZXJtaW5lVGltZXN0YW1wRm9ybWF0KG5zLCB0aGlzLnNldHRpbmdzKTtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGZvcm1hdCkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgICAgICAgICAgICAgICBub2RlQ29udGVudHMgPSB2YWx1ZS50b0lTT1N0cmluZygpLnJlcGxhY2UoXCIuMDAwWlwiLCBcIlpcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgICAgICAgICAgICAgbm9kZUNvbnRlbnRzID0gZGF0ZVRvVXRjU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDc6XG4gICAgICAgICAgICAgICAgICAgICAgICBub2RlQ29udGVudHMgPSBTdHJpbmcodmFsdWUuZ2V0VGltZSgpIC8gMTAwMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihcIk1pc3NpbmcgdGltZXN0YW1wIGZvcm1hdCwgdXNpbmcgaHR0cCBkYXRlXCIsIHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vZGVDb250ZW50cyA9IGRhdGVUb1V0Y1N0cmluZyh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChucy5pc0JpZ0RlY2ltYWxTY2hlbWEoKSAmJiB2YWx1ZSkge1xuICAgICAgICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIE51bWVyaWNWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUuc3RyaW5nO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKG5zLmlzTWFwU2NoZW1hKCkgfHwgbnMuaXNMaXN0U2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJAYXdzLXNkay9jb3JlL3Byb3RvY29scyAtIHhtbCBzZXJpYWxpemVyLCBjYW5ub3QgY2FsbCBfd3JpdGUoKSBvbiBMaXN0L01hcCBzY2hlbWEsIGNhbGwgd3JpdGVMaXN0IG9yIHdyaXRlTWFwKCkgaW5zdGVhZC5cIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEBhd3Mtc2RrL2NvcmUvcHJvdG9jb2xzIC0geG1sIHNlcmlhbGl6ZXIsIHVuaGFuZGxlZCBzY2hlbWEgdHlwZSBmb3Igb2JqZWN0IHZhbHVlIGFuZCBzY2hlbWE6ICR7bnMuZ2V0TmFtZSh0cnVlKX1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAobnMuaXNCb29sZWFuU2NoZW1hKCkgfHwgbnMuaXNOdW1lcmljU2NoZW1hKCkgfHwgbnMuaXNCaWdJbnRlZ2VyU2NoZW1hKCkgfHwgbnMuaXNCaWdEZWNpbWFsU2NoZW1hKCkpIHtcbiAgICAgICAgICAgIG5vZGVDb250ZW50cyA9IFN0cmluZyh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzU3RyaW5nU2NoZW1hKCkpIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkICYmIG5zLmlzSWRlbXBvdGVuY3lUb2tlbigpKSB7XG4gICAgICAgICAgICAgICAgbm9kZUNvbnRlbnRzID0gZ2VuZXJhdGVJZGVtcG90ZW5jeVRva2VuKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBub2RlQ29udGVudHMgPSBTdHJpbmcodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChub2RlQ29udGVudHMgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5oYW5kbGVkIHNjaGVtYS12YWx1ZSBwYWlyICR7bnMuZ2V0TmFtZSh0cnVlKX09JHt2YWx1ZX1gKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbm9kZUNvbnRlbnRzO1xuICAgIH1cbiAgICB3cml0ZVNpbXBsZUludG8oX3NjaGVtYSwgdmFsdWUsIGludG8sIHBhcmVudFhtbG5zKSB7XG4gICAgICAgIGNvbnN0IG5vZGVDb250ZW50cyA9IHRoaXMud3JpdGVTaW1wbGUoX3NjaGVtYSwgdmFsdWUpO1xuICAgICAgICBjb25zdCBucyA9IE5vcm1hbGl6ZWRTY2hlbWEub2YoX3NjaGVtYSk7XG4gICAgICAgIGNvbnN0IGNvbnRlbnQgPSBuZXcgWG1sVGV4dChub2RlQ29udGVudHMpO1xuICAgICAgICBjb25zdCBbeG1sbnNBdHRyLCB4bWxuc10gPSB0aGlzLmdldFhtbG5zQXR0cmlidXRlKG5zLCBwYXJlbnRYbWxucyk7XG4gICAgICAgIGlmICh4bWxucykge1xuICAgICAgICAgICAgaW50by5hZGRBdHRyaWJ1dGUoeG1sbnNBdHRyLCB4bWxucyk7XG4gICAgICAgIH1cbiAgICAgICAgaW50by5hZGRDaGlsZE5vZGUoY29udGVudCk7XG4gICAgfVxuICAgIGdldFhtbG5zQXR0cmlidXRlKG5zLCBwYXJlbnRYbWxucykge1xuICAgICAgICBjb25zdCB0cmFpdHMgPSBucy5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgY29uc3QgW3ByZWZpeCwgeG1sbnNdID0gdHJhaXRzLnhtbE5hbWVzcGFjZSA/PyBbXTtcbiAgICAgICAgaWYgKHhtbG5zICYmIHhtbG5zICE9PSBwYXJlbnRYbWxucykge1xuICAgICAgICAgICAgcmV0dXJuIFtwcmVmaXggPyBgeG1sbnM6JHtwcmVmaXh9YCA6IFwieG1sbnNcIiwgeG1sbnNdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBbdm9pZCAwLCB2b2lkIDBdO1xuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBTZXJkZUNvbnRleHRDb25maWcgfSBmcm9tIFwiLi4vQ29uZmlndXJhYmxlU2VyZGVDb250ZXh0XCI7XG5pbXBvcnQgeyBYbWxTaGFwZURlc2VyaWFsaXplciB9IGZyb20gXCIuL1htbFNoYXBlRGVzZXJpYWxpemVyXCI7XG5pbXBvcnQgeyBYbWxTaGFwZVNlcmlhbGl6ZXIgfSBmcm9tIFwiLi9YbWxTaGFwZVNlcmlhbGl6ZXJcIjtcbmV4cG9ydCBjbGFzcyBYbWxDb2RlYyBleHRlbmRzIFNlcmRlQ29udGV4dENvbmZpZyB7XG4gICAgc2V0dGluZ3M7XG4gICAgY29uc3RydWN0b3Ioc2V0dGluZ3MpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5zZXR0aW5ncyA9IHNldHRpbmdzO1xuICAgIH1cbiAgICBjcmVhdGVTZXJpYWxpemVyKCkge1xuICAgICAgICBjb25zdCBzZXJpYWxpemVyID0gbmV3IFhtbFNoYXBlU2VyaWFsaXplcih0aGlzLnNldHRpbmdzKTtcbiAgICAgICAgc2VyaWFsaXplci5zZXRTZXJkZUNvbnRleHQodGhpcy5zZXJkZUNvbnRleHQpO1xuICAgICAgICByZXR1cm4gc2VyaWFsaXplcjtcbiAgICB9XG4gICAgY3JlYXRlRGVzZXJpYWxpemVyKCkge1xuICAgICAgICBjb25zdCBkZXNlcmlhbGl6ZXIgPSBuZXcgWG1sU2hhcGVEZXNlcmlhbGl6ZXIodGhpcy5zZXR0aW5ncyk7XG4gICAgICAgIGRlc2VyaWFsaXplci5zZXRTZXJkZUNvbnRleHQodGhpcy5zZXJkZUNvbnRleHQpO1xuICAgICAgICByZXR1cm4gZGVzZXJpYWxpemVyO1xuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBIdHRwQmluZGluZ1Byb3RvY29sLCBIdHRwSW50ZXJjZXB0aW5nU2hhcGVEZXNlcmlhbGl6ZXIsIEh0dHBJbnRlcmNlcHRpbmdTaGFwZVNlcmlhbGl6ZXIsIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9wcm90b2NvbHNcIjtcbmltcG9ydCB7IE5vcm1hbGl6ZWRTY2hlbWEgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3NjaGVtYVwiO1xuaW1wb3J0IHsgUHJvdG9jb2xMaWIgfSBmcm9tIFwiLi4vUHJvdG9jb2xMaWJcIjtcbmltcG9ydCB7IGxvYWRSZXN0WG1sRXJyb3JDb2RlIH0gZnJvbSBcIi4vcGFyc2VYbWxCb2R5XCI7XG5pbXBvcnQgeyBYbWxDb2RlYyB9IGZyb20gXCIuL1htbENvZGVjXCI7XG5leHBvcnQgY2xhc3MgQXdzUmVzdFhtbFByb3RvY29sIGV4dGVuZHMgSHR0cEJpbmRpbmdQcm90b2NvbCB7XG4gICAgY29kZWM7XG4gICAgc2VyaWFsaXplcjtcbiAgICBkZXNlcmlhbGl6ZXI7XG4gICAgbWl4aW4gPSBuZXcgUHJvdG9jb2xMaWIoKTtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgICAgICBjb25zdCBzZXR0aW5ncyA9IHtcbiAgICAgICAgICAgIHRpbWVzdGFtcEZvcm1hdDoge1xuICAgICAgICAgICAgICAgIHVzZVRyYWl0OiB0cnVlLFxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IDUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaHR0cEJpbmRpbmdzOiB0cnVlLFxuICAgICAgICAgICAgeG1sTmFtZXNwYWNlOiBvcHRpb25zLnhtbE5hbWVzcGFjZSxcbiAgICAgICAgICAgIHNlcnZpY2VOYW1lc3BhY2U6IG9wdGlvbnMuZGVmYXVsdE5hbWVzcGFjZSxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5jb2RlYyA9IG5ldyBYbWxDb2RlYyhzZXR0aW5ncyk7XG4gICAgICAgIHRoaXMuc2VyaWFsaXplciA9IG5ldyBIdHRwSW50ZXJjZXB0aW5nU2hhcGVTZXJpYWxpemVyKHRoaXMuY29kZWMuY3JlYXRlU2VyaWFsaXplcigpLCBzZXR0aW5ncyk7XG4gICAgICAgIHRoaXMuZGVzZXJpYWxpemVyID0gbmV3IEh0dHBJbnRlcmNlcHRpbmdTaGFwZURlc2VyaWFsaXplcih0aGlzLmNvZGVjLmNyZWF0ZURlc2VyaWFsaXplcigpLCBzZXR0aW5ncyk7XG4gICAgfVxuICAgIGdldFBheWxvYWRDb2RlYygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29kZWM7XG4gICAgfVxuICAgIGdldFNoYXBlSWQoKSB7XG4gICAgICAgIHJldHVybiBcImF3cy5wcm90b2NvbHMjcmVzdFhtbFwiO1xuICAgIH1cbiAgICBhc3luYyBzZXJpYWxpemVSZXF1ZXN0KG9wZXJhdGlvblNjaGVtYSwgaW5wdXQsIGNvbnRleHQpIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IGF3YWl0IHN1cGVyLnNlcmlhbGl6ZVJlcXVlc3Qob3BlcmF0aW9uU2NoZW1hLCBpbnB1dCwgY29udGV4dCk7XG4gICAgICAgIGNvbnN0IGlucHV0U2NoZW1hID0gTm9ybWFsaXplZFNjaGVtYS5vZihvcGVyYXRpb25TY2hlbWEuaW5wdXQpO1xuICAgICAgICBpZiAoIXJlcXVlc3QuaGVhZGVyc1tcImNvbnRlbnQtdHlwZVwiXSkge1xuICAgICAgICAgICAgY29uc3QgY29udGVudFR5cGUgPSB0aGlzLm1peGluLnJlc29sdmVSZXN0Q29udGVudFR5cGUodGhpcy5nZXREZWZhdWx0Q29udGVudFR5cGUoKSwgaW5wdXRTY2hlbWEpO1xuICAgICAgICAgICAgaWYgKGNvbnRlbnRUeXBlKSB7XG4gICAgICAgICAgICAgICAgcmVxdWVzdC5oZWFkZXJzW1wiY29udGVudC10eXBlXCJdID0gY29udGVudFR5cGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiByZXF1ZXN0LmJvZHkgPT09IFwic3RyaW5nXCIgJiZcbiAgICAgICAgICAgIHJlcXVlc3QuaGVhZGVyc1tcImNvbnRlbnQtdHlwZVwiXSA9PT0gdGhpcy5nZXREZWZhdWx0Q29udGVudFR5cGUoKSAmJlxuICAgICAgICAgICAgIXJlcXVlc3QuYm9keS5zdGFydHNXaXRoKFwiPD94bWwgXCIpICYmXG4gICAgICAgICAgICAhdGhpcy5oYXNVbnN0cnVjdHVyZWRQYXlsb2FkQmluZGluZyhpbnB1dFNjaGVtYSkpIHtcbiAgICAgICAgICAgIHJlcXVlc3QuYm9keSA9ICc8P3htbCB2ZXJzaW9uPVwiMS4wXCIgZW5jb2Rpbmc9XCJVVEYtOFwiPz4nICsgcmVxdWVzdC5ib2R5O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXF1ZXN0O1xuICAgIH1cbiAgICBhc3luYyBkZXNlcmlhbGl6ZVJlc3BvbnNlKG9wZXJhdGlvblNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UpIHtcbiAgICAgICAgcmV0dXJuIHN1cGVyLmRlc2VyaWFsaXplUmVzcG9uc2Uob3BlcmF0aW9uU2NoZW1hLCBjb250ZXh0LCByZXNwb25zZSk7XG4gICAgfVxuICAgIGFzeW5jIGhhbmRsZUVycm9yKG9wZXJhdGlvblNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UsIGRhdGFPYmplY3QsIG1ldGFkYXRhKSB7XG4gICAgICAgIGNvbnN0IGVycm9ySWRlbnRpZmllciA9IGxvYWRSZXN0WG1sRXJyb3JDb2RlKHJlc3BvbnNlLCBkYXRhT2JqZWN0KSA/PyBcIlVua25vd25cIjtcbiAgICAgICAgdGhpcy5taXhpbi5jb21wb3NlKHRoaXMuY29tcG9zaXRlRXJyb3JSZWdpc3RyeSwgZXJyb3JJZGVudGlmaWVyLCB0aGlzLm9wdGlvbnMuZGVmYXVsdE5hbWVzcGFjZSk7XG4gICAgICAgIGlmIChkYXRhT2JqZWN0LkVycm9yICYmIHR5cGVvZiBkYXRhT2JqZWN0LkVycm9yID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhkYXRhT2JqZWN0LkVycm9yKSkge1xuICAgICAgICAgICAgICAgIGRhdGFPYmplY3Rba2V5XSA9IGRhdGFPYmplY3QuRXJyb3Jba2V5XTtcbiAgICAgICAgICAgICAgICBpZiAoa2V5LnRvTG93ZXJDYXNlKCkgPT09IFwibWVzc2FnZVwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGRhdGFPYmplY3QubWVzc2FnZSA9IGRhdGFPYmplY3QuRXJyb3Jba2V5XTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGFPYmplY3QuUmVxdWVzdElkICYmICFtZXRhZGF0YS5yZXF1ZXN0SWQpIHtcbiAgICAgICAgICAgIG1ldGFkYXRhLnJlcXVlc3RJZCA9IGRhdGFPYmplY3QuUmVxdWVzdElkO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHsgZXJyb3JTY2hlbWEsIGVycm9yTWV0YWRhdGEgfSA9IGF3YWl0IHRoaXMubWl4aW4uZ2V0RXJyb3JTY2hlbWFPclRocm93QmFzZUV4Y2VwdGlvbihlcnJvcklkZW50aWZpZXIsIHRoaXMub3B0aW9ucy5kZWZhdWx0TmFtZXNwYWNlLCByZXNwb25zZSwgZGF0YU9iamVjdCwgbWV0YWRhdGEpO1xuICAgICAgICBjb25zdCBucyA9IE5vcm1hbGl6ZWRTY2hlbWEub2YoZXJyb3JTY2hlbWEpO1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gZGF0YU9iamVjdC5FcnJvcj8ubWVzc2FnZSA/P1xuICAgICAgICAgICAgZGF0YU9iamVjdC5FcnJvcj8uTWVzc2FnZSA/P1xuICAgICAgICAgICAgZGF0YU9iamVjdC5tZXNzYWdlID8/XG4gICAgICAgICAgICBkYXRhT2JqZWN0Lk1lc3NhZ2UgPz9cbiAgICAgICAgICAgIFwiVW5rbm93bkVycm9yXCI7XG4gICAgICAgIGNvbnN0IEVycm9yQ3RvciA9IHRoaXMuY29tcG9zaXRlRXJyb3JSZWdpc3RyeS5nZXRFcnJvckN0b3IoZXJyb3JTY2hlbWEpID8/IEVycm9yO1xuICAgICAgICBjb25zdCBleGNlcHRpb24gPSBuZXcgRXJyb3JDdG9yKG1lc3NhZ2UpO1xuICAgICAgICBhd2FpdCB0aGlzLmRlc2VyaWFsaXplSHR0cE1lc3NhZ2UoZXJyb3JTY2hlbWEsIGNvbnRleHQsIHJlc3BvbnNlLCBkYXRhT2JqZWN0KTtcbiAgICAgICAgY29uc3Qgb3V0cHV0ID0ge307XG4gICAgICAgIGNvbnN0IGVycm9yRGVzZXJpYWxpemVyID0gdGhpcy5jb2RlYy5jcmVhdGVEZXNlcmlhbGl6ZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBbbmFtZSwgbWVtYmVyXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBtZW1iZXIuZ2V0TWVyZ2VkVHJhaXRzKCkueG1sTmFtZSA/PyBuYW1lO1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBkYXRhT2JqZWN0LkVycm9yPy5bdGFyZ2V0XSA/PyBkYXRhT2JqZWN0W3RhcmdldF07XG4gICAgICAgICAgICBvdXRwdXRbbmFtZV0gPSBlcnJvckRlc2VyaWFsaXplci5yZWFkU2NoZW1hKG1lbWJlciwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IHRoaXMubWl4aW4uZGVjb3JhdGVTZXJ2aWNlRXhjZXB0aW9uKE9iamVjdC5hc3NpZ24oZXhjZXB0aW9uLCBlcnJvck1ldGFkYXRhLCB7XG4gICAgICAgICAgICAkZmF1bHQ6IG5zLmdldE1lcmdlZFRyYWl0cygpLmVycm9yLFxuICAgICAgICAgICAgbWVzc2FnZSxcbiAgICAgICAgfSwgb3V0cHV0KSwgZGF0YU9iamVjdCk7XG4gICAgfVxuICAgIGdldERlZmF1bHRDb250ZW50VHlwZSgpIHtcbiAgICAgICAgcmV0dXJuIFwiYXBwbGljYXRpb24veG1sXCI7XG4gICAgfVxuICAgIGhhc1Vuc3RydWN0dXJlZFBheWxvYWRCaW5kaW5nKG5zKSB7XG4gICAgICAgIGZvciAoY29uc3QgWywgbWVtYmVyXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICBpZiAobWVtYmVyLmdldE1lcmdlZFRyYWl0cygpLmh0dHBQYXlsb2FkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICEobWVtYmVyLmlzU3RydWN0U2NoZW1hKCkgfHwgbWVtYmVyLmlzTWFwU2NoZW1hKCkgfHwgbWVtYmVyLmlzTGlzdFNjaGVtYSgpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuIiwgImV4cG9ydCAqIGZyb20gXCIuL2Nib3IvQXdzU21pdGh5UnBjVjJDYm9yUHJvdG9jb2xcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvZXJjaW5nLXNlcmlhbGl6ZXJzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9qc29uL0F3c0pzb24xXzBQcm90b2NvbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vanNvbi9Bd3NKc29uMV8xUHJvdG9jb2xcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2pzb24vQXdzSnNvblJwY1Byb3RvY29sXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9qc29uL0F3c1Jlc3RKc29uUHJvdG9jb2xcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2pzb24vSnNvbkNvZGVjXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9qc29uL0pzb25TaGFwZURlc2VyaWFsaXplclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vanNvbi9Kc29uU2hhcGVTZXJpYWxpemVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9qc29uL2F3c0V4cGVjdFVuaW9uXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9qc29uL3BhcnNlSnNvbkJvZHlcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3F1ZXJ5L0F3c0VjMlF1ZXJ5UHJvdG9jb2xcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3F1ZXJ5L0F3c1F1ZXJ5UHJvdG9jb2xcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3F1ZXJ5L1F1ZXJ5U2VyaWFsaXplclNldHRpbmdzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9xdWVyeS9RdWVyeVNoYXBlU2VyaWFsaXplclwiO1xuZXhwb3J0ICogZnJvbSBcIi4veG1sL0F3c1Jlc3RYbWxQcm90b2NvbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4veG1sL1htbENvZGVjXCI7XG5leHBvcnQgKiBmcm9tIFwiLi94bWwvWG1sU2hhcGVEZXNlcmlhbGl6ZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3htbC9YbWxTaGFwZVNlcmlhbGl6ZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3htbC9wYXJzZVhtbEJvZHlcIjtcbiIsICJleHBvcnQgKiBmcm9tIFwiLi9zdWJtb2R1bGVzL2NsaWVudC9pbmRleFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3VibW9kdWxlcy9odHRwQXV0aFNjaGVtZXMvaW5kZXhcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL2luZGV4XCI7XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLnJlc29sdmVIdHRwQXV0aFNjaGVtZUNvbmZpZyA9IGV4cG9ydHMuZGVmYXVsdFNlY3JldHNNYW5hZ2VySHR0cEF1dGhTY2hlbWVQcm92aWRlciA9IGV4cG9ydHMuZGVmYXVsdFNlY3JldHNNYW5hZ2VySHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIgPSB2b2lkIDA7XG5jb25zdCBjb3JlXzEgPSByZXF1aXJlKFwiQGF3cy1zZGsvY29yZVwiKTtcbmNvbnN0IHV0aWxfbWlkZGxld2FyZV8xID0gcmVxdWlyZShcIkBzbWl0aHkvdXRpbC1taWRkbGV3YXJlXCIpO1xuY29uc3QgZGVmYXVsdFNlY3JldHNNYW5hZ2VySHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIgPSBhc3luYyAoY29uZmlnLCBjb250ZXh0LCBpbnB1dCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIG9wZXJhdGlvbjogKDAsIHV0aWxfbWlkZGxld2FyZV8xLmdldFNtaXRoeUNvbnRleHQpKGNvbnRleHQpLm9wZXJhdGlvbixcbiAgICAgICAgcmVnaW9uOiBhd2FpdCAoMCwgdXRpbF9taWRkbGV3YXJlXzEubm9ybWFsaXplUHJvdmlkZXIpKGNvbmZpZy5yZWdpb24pKCkgfHwgKCgpID0+IHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcImV4cGVjdGVkIGByZWdpb25gIHRvIGJlIGNvbmZpZ3VyZWQgZm9yIGBhd3MuYXV0aCNzaWd2NGBcIik7XG4gICAgICAgIH0pKCksXG4gICAgfTtcbn07XG5leHBvcnRzLmRlZmF1bHRTZWNyZXRzTWFuYWdlckh0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyID0gZGVmYXVsdFNlY3JldHNNYW5hZ2VySHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXI7XG5mdW5jdGlvbiBjcmVhdGVBd3NBdXRoU2lndjRIdHRwQXV0aE9wdGlvbihhdXRoUGFyYW1ldGVycykge1xuICAgIHJldHVybiB7XG4gICAgICAgIHNjaGVtZUlkOiBcImF3cy5hdXRoI3NpZ3Y0XCIsXG4gICAgICAgIHNpZ25pbmdQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICBuYW1lOiBcInNlY3JldHNtYW5hZ2VyXCIsXG4gICAgICAgICAgICByZWdpb246IGF1dGhQYXJhbWV0ZXJzLnJlZ2lvbixcbiAgICAgICAgfSxcbiAgICAgICAgcHJvcGVydGllc0V4dHJhY3RvcjogKGNvbmZpZywgY29udGV4dCkgPT4gKHtcbiAgICAgICAgICAgIHNpZ25pbmdQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgICAgY29uZmlnLFxuICAgICAgICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9KSxcbiAgICB9O1xufVxuY29uc3QgZGVmYXVsdFNlY3JldHNNYW5hZ2VySHR0cEF1dGhTY2hlbWVQcm92aWRlciA9IChhdXRoUGFyYW1ldGVycykgPT4ge1xuICAgIGNvbnN0IG9wdGlvbnMgPSBbXTtcbiAgICBzd2l0Y2ggKGF1dGhQYXJhbWV0ZXJzLm9wZXJhdGlvbikge1xuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICBvcHRpb25zLnB1c2goY3JlYXRlQXdzQXV0aFNpZ3Y0SHR0cEF1dGhPcHRpb24oYXV0aFBhcmFtZXRlcnMpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gb3B0aW9ucztcbn07XG5leHBvcnRzLmRlZmF1bHRTZWNyZXRzTWFuYWdlckh0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSBkZWZhdWx0U2VjcmV0c01hbmFnZXJIdHRwQXV0aFNjaGVtZVByb3ZpZGVyO1xuY29uc3QgcmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIGNvbnN0IGNvbmZpZ18wID0gKDAsIGNvcmVfMS5yZXNvbHZlQXdzU2RrU2lnVjRDb25maWcpKGNvbmZpZyk7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oY29uZmlnXzAsIHtcbiAgICAgICAgYXV0aFNjaGVtZVByZWZlcmVuY2U6ICgwLCB1dGlsX21pZGRsZXdhcmVfMS5ub3JtYWxpemVQcm92aWRlcikoY29uZmlnLmF1dGhTY2hlbWVQcmVmZXJlbmNlID8/IFtdKSxcbiAgICB9KTtcbn07XG5leHBvcnRzLnJlc29sdmVIdHRwQXV0aFNjaGVtZUNvbmZpZyA9IHJlc29sdmVIdHRwQXV0aFNjaGVtZUNvbmZpZztcbiIsICJ7XG4gIFwibmFtZVwiOiBcIkBhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXJcIixcbiAgXCJkZXNjcmlwdGlvblwiOiBcIkFXUyBTREsgZm9yIEphdmFTY3JpcHQgU2VjcmV0cyBNYW5hZ2VyIENsaWVudCBmb3IgTm9kZS5qcywgQnJvd3NlciBhbmQgUmVhY3QgTmF0aXZlXCIsXG4gIFwidmVyc2lvblwiOiBcIjMuMTAwNC4wXCIsXG4gIFwic2NyaXB0c1wiOiB7XG4gICAgXCJidWlsZFwiOiBcImNvbmN1cnJlbnRseSAneWFybjpidWlsZDp0eXBlcycgJ3lhcm46YnVpbGQ6ZXMnICYmIHlhcm4gYnVpbGQ6Y2pzXCIsXG4gICAgXCJidWlsZDpjanNcIjogXCJub2RlIC4uLy4uL3NjcmlwdHMvY29tcGlsYXRpb24vaW5saW5lIGNsaWVudC1zZWNyZXRzLW1hbmFnZXJcIixcbiAgICBcImJ1aWxkOmVzXCI6IFwidHNjIC1wIHRzY29uZmlnLmVzLmpzb25cIixcbiAgICBcImJ1aWxkOmluY2x1ZGU6ZGVwc1wiOiBcInlhcm4gZzp0dXJibyBydW4gYnVpbGQgLUY9XFxcIiRucG1fcGFja2FnZV9uYW1lXFxcIlwiLFxuICAgIFwiYnVpbGQ6dHlwZXNcIjogXCJ0c2MgLXAgdHNjb25maWcudHlwZXMuanNvblwiLFxuICAgIFwiYnVpbGQ6dHlwZXM6ZG93bmxldmVsXCI6IFwiZG93bmxldmVsLWR0cyBkaXN0LXR5cGVzIGRpc3QtdHlwZXMvdHMzLjRcIixcbiAgICBcImNsZWFuXCI6IFwicHJlbW92ZSBkaXN0LWNqcyBkaXN0LWVzIGRpc3QtdHlwZXMgdHNjb25maWcuY2pzLnRzYnVpbGRpbmZvIHRzY29uZmlnLmVzLnRzYnVpbGRpbmZvIHRzY29uZmlnLnR5cGVzLnRzYnVpbGRpbmZvXCIsXG4gICAgXCJleHRyYWN0OmRvY3NcIjogXCJhcGktZXh0cmFjdG9yIHJ1biAtLWxvY2FsXCIsXG4gICAgXCJnZW5lcmF0ZTpjbGllbnRcIjogXCJub2RlIC4uLy4uL3NjcmlwdHMvZ2VuZXJhdGUtY2xpZW50cy9zaW5nbGUtc2VydmljZSAtLXNvbG8gc2VjcmV0cy1tYW5hZ2VyXCIsXG4gICAgXCJ0ZXN0XCI6IFwieWFybiBnOnZpdGVzdCBydW4gLS1wYXNzV2l0aE5vVGVzdHNcIixcbiAgICBcInRlc3Q6aW5kZXhcIjogXCJ0c2MgLS1ub0VtaXQgLi90ZXN0L2luZGV4LXR5cGVzLnRzICYmIG5vZGUgLi90ZXN0L2luZGV4LW9iamVjdHMuc3BlYy5tanNcIixcbiAgICBcInRlc3Q6aW50ZWdyYXRpb25cIjogXCJ5YXJuIGc6dml0ZXN0IHJ1biAtLXBhc3NXaXRoTm9UZXN0cyAtYyB2aXRlc3QuY29uZmlnLmludGVnLm10c1wiLFxuICAgIFwidGVzdDppbnRlZ3JhdGlvbjp3YXRjaFwiOiBcInlhcm4gZzp2aXRlc3QgcnVuIC0tcGFzc1dpdGhOb1Rlc3RzIC1jIHZpdGVzdC5jb25maWcuaW50ZWcubXRzXCIsXG4gICAgXCJ0ZXN0OndhdGNoXCI6IFwieWFybiBnOnZpdGVzdCB3YXRjaCAtLXBhc3NXaXRoTm9UZXN0c1wiXG4gIH0sXG4gIFwibWFpblwiOiBcIi4vZGlzdC1janMvaW5kZXguanNcIixcbiAgXCJ0eXBlc1wiOiBcIi4vZGlzdC10eXBlcy9pbmRleC5kLnRzXCIsXG4gIFwibW9kdWxlXCI6IFwiLi9kaXN0LWVzL2luZGV4LmpzXCIsXG4gIFwic2lkZUVmZmVjdHNcIjogZmFsc2UsXG4gIFwiZGVwZW5kZW5jaWVzXCI6IHtcbiAgICBcIkBhd3MtY3J5cHRvL3NoYTI1Ni1icm93c2VyXCI6IFwiNS4yLjBcIixcbiAgICBcIkBhd3MtY3J5cHRvL3NoYTI1Ni1qc1wiOiBcIjUuMi4wXCIsXG4gICAgXCJAYXdzLXNkay9jb3JlXCI6IFwiXjMuOTczLjE4XCIsXG4gICAgXCJAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLW5vZGVcIjogXCJeMy45NzIuMThcIixcbiAgICBcIkBhd3Mtc2RrL21pZGRsZXdhcmUtaG9zdC1oZWFkZXJcIjogXCJeMy45NzIuN1wiLFxuICAgIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1sb2dnZXJcIjogXCJeMy45NzIuN1wiLFxuICAgIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1yZWN1cnNpb24tZGV0ZWN0aW9uXCI6IFwiXjMuOTcyLjdcIixcbiAgICBcIkBhd3Mtc2RrL21pZGRsZXdhcmUtdXNlci1hZ2VudFwiOiBcIl4zLjk3Mi4xOVwiLFxuICAgIFwiQGF3cy1zZGsvcmVnaW9uLWNvbmZpZy1yZXNvbHZlclwiOiBcIl4zLjk3Mi43XCIsXG4gICAgXCJAYXdzLXNkay90eXBlc1wiOiBcIl4zLjk3My41XCIsXG4gICAgXCJAYXdzLXNkay91dGlsLWVuZHBvaW50c1wiOiBcIl4zLjk5Ni40XCIsXG4gICAgXCJAYXdzLXNkay91dGlsLXVzZXItYWdlbnQtYnJvd3NlclwiOiBcIl4zLjk3Mi43XCIsXG4gICAgXCJAYXdzLXNkay91dGlsLXVzZXItYWdlbnQtbm9kZVwiOiBcIl4zLjk3My40XCIsXG4gICAgXCJAc21pdGh5L2NvbmZpZy1yZXNvbHZlclwiOiBcIl40LjQuMTBcIixcbiAgICBcIkBzbWl0aHkvY29yZVwiOiBcIl4zLjIzLjhcIixcbiAgICBcIkBzbWl0aHkvZmV0Y2gtaHR0cC1oYW5kbGVyXCI6IFwiXjUuMy4xM1wiLFxuICAgIFwiQHNtaXRoeS9oYXNoLW5vZGVcIjogXCJeNC4yLjExXCIsXG4gICAgXCJAc21pdGh5L2ludmFsaWQtZGVwZW5kZW5jeVwiOiBcIl40LjIuMTFcIixcbiAgICBcIkBzbWl0aHkvbWlkZGxld2FyZS1jb250ZW50LWxlbmd0aFwiOiBcIl40LjIuMTFcIixcbiAgICBcIkBzbWl0aHkvbWlkZGxld2FyZS1lbmRwb2ludFwiOiBcIl40LjQuMjJcIixcbiAgICBcIkBzbWl0aHkvbWlkZGxld2FyZS1yZXRyeVwiOiBcIl40LjQuMzlcIixcbiAgICBcIkBzbWl0aHkvbWlkZGxld2FyZS1zZXJkZVwiOiBcIl40LjIuMTJcIixcbiAgICBcIkBzbWl0aHkvbWlkZGxld2FyZS1zdGFja1wiOiBcIl40LjIuMTFcIixcbiAgICBcIkBzbWl0aHkvbm9kZS1jb25maWctcHJvdmlkZXJcIjogXCJeNC4zLjExXCIsXG4gICAgXCJAc21pdGh5L25vZGUtaHR0cC1oYW5kbGVyXCI6IFwiXjQuNC4xNFwiLFxuICAgIFwiQHNtaXRoeS9wcm90b2NvbC1odHRwXCI6IFwiXjUuMy4xMVwiLFxuICAgIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI6IFwiXjQuMTIuMlwiLFxuICAgIFwiQHNtaXRoeS90eXBlc1wiOiBcIl40LjEzLjBcIixcbiAgICBcIkBzbWl0aHkvdXJsLXBhcnNlclwiOiBcIl40LjIuMTFcIixcbiAgICBcIkBzbWl0aHkvdXRpbC1iYXNlNjRcIjogXCJeNC4zLjJcIixcbiAgICBcIkBzbWl0aHkvdXRpbC1ib2R5LWxlbmd0aC1icm93c2VyXCI6IFwiXjQuMi4yXCIsXG4gICAgXCJAc21pdGh5L3V0aWwtYm9keS1sZW5ndGgtbm9kZVwiOiBcIl40LjIuM1wiLFxuICAgIFwiQHNtaXRoeS91dGlsLWRlZmF1bHRzLW1vZGUtYnJvd3NlclwiOiBcIl40LjMuMzhcIixcbiAgICBcIkBzbWl0aHkvdXRpbC1kZWZhdWx0cy1tb2RlLW5vZGVcIjogXCJeNC4yLjQxXCIsXG4gICAgXCJAc21pdGh5L3V0aWwtZW5kcG9pbnRzXCI6IFwiXjMuMy4yXCIsXG4gICAgXCJAc21pdGh5L3V0aWwtbWlkZGxld2FyZVwiOiBcIl40LjIuMTFcIixcbiAgICBcIkBzbWl0aHkvdXRpbC1yZXRyeVwiOiBcIl40LjIuMTFcIixcbiAgICBcIkBzbWl0aHkvdXRpbC11dGY4XCI6IFwiXjQuMi4yXCIsXG4gICAgXCJ0c2xpYlwiOiBcIl4yLjYuMlwiXG4gIH0sXG4gIFwiZGV2RGVwZW5kZW5jaWVzXCI6IHtcbiAgICBcIkBzbWl0aHkvc25hcHNob3QtdGVzdGluZ1wiOiBcIl4xLjAuOVwiLFxuICAgIFwiQHRzY29uZmlnL25vZGUyMFwiOiBcIjIwLjEuOFwiLFxuICAgIFwiQHR5cGVzL25vZGVcIjogXCJeMjAuMTQuOFwiLFxuICAgIFwiY29uY3VycmVudGx5XCI6IFwiNy4wLjBcIixcbiAgICBcImRvd25sZXZlbC1kdHNcIjogXCIwLjEwLjFcIixcbiAgICBcInByZW1vdmVcIjogXCI0LjAuMFwiLFxuICAgIFwidHlwZXNjcmlwdFwiOiBcIn41LjguM1wiLFxuICAgIFwidml0ZXN0XCI6IFwiXjQuMC4xN1wiXG4gIH0sXG4gIFwiZW5naW5lc1wiOiB7XG4gICAgXCJub2RlXCI6IFwiPj0yMC4wLjBcIlxuICB9LFxuICBcInR5cGVzVmVyc2lvbnNcIjoge1xuICAgIFwiPDQuNVwiOiB7XG4gICAgICBcImRpc3QtdHlwZXMvKlwiOiBbXG4gICAgICAgIFwiZGlzdC10eXBlcy90czMuNC8qXCJcbiAgICAgIF1cbiAgICB9XG4gIH0sXG4gIFwiZmlsZXNcIjogW1xuICAgIFwiZGlzdC0qLyoqXCJcbiAgXSxcbiAgXCJhdXRob3JcIjoge1xuICAgIFwibmFtZVwiOiBcIkFXUyBTREsgZm9yIEphdmFTY3JpcHQgVGVhbVwiLFxuICAgIFwidXJsXCI6IFwiaHR0cHM6Ly9hd3MuYW1hem9uLmNvbS9qYXZhc2NyaXB0L1wiXG4gIH0sXG4gIFwibGljZW5zZVwiOiBcIkFwYWNoZS0yLjBcIixcbiAgXCJicm93c2VyXCI6IHtcbiAgICBcIi4vZGlzdC1lcy9ydW50aW1lQ29uZmlnXCI6IFwiLi9kaXN0LWVzL3J1bnRpbWVDb25maWcuYnJvd3NlclwiXG4gIH0sXG4gIFwicmVhY3QtbmF0aXZlXCI6IHtcbiAgICBcIi4vZGlzdC1lcy9ydW50aW1lQ29uZmlnXCI6IFwiLi9kaXN0LWVzL3J1bnRpbWVDb25maWcubmF0aXZlXCJcbiAgfSxcbiAgXCJob21lcGFnZVwiOiBcImh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLXNkay1qcy12My90cmVlL21haW4vY2xpZW50cy9jbGllbnQtc2VjcmV0cy1tYW5hZ2VyXCIsXG4gIFwicmVwb3NpdG9yeVwiOiB7XG4gICAgXCJ0eXBlXCI6IFwiZ2l0XCIsXG4gICAgXCJ1cmxcIjogXCJodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1zZGstanMtdjMuZ2l0XCIsXG4gICAgXCJkaXJlY3RvcnlcIjogXCJjbGllbnRzL2NsaWVudC1zZWNyZXRzLW1hbmFnZXJcIlxuICB9XG59XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgY2xpZW50ID0gcmVxdWlyZSgnQGF3cy1zZGsvY29yZS9jbGllbnQnKTtcbnZhciBwcm9wZXJ0eVByb3ZpZGVyID0gcmVxdWlyZSgnQHNtaXRoeS9wcm9wZXJ0eS1wcm92aWRlcicpO1xuXG5jb25zdCBFTlZfS0VZID0gXCJBV1NfQUNDRVNTX0tFWV9JRFwiO1xuY29uc3QgRU5WX1NFQ1JFVCA9IFwiQVdTX1NFQ1JFVF9BQ0NFU1NfS0VZXCI7XG5jb25zdCBFTlZfU0VTU0lPTiA9IFwiQVdTX1NFU1NJT05fVE9LRU5cIjtcbmNvbnN0IEVOVl9FWFBJUkFUSU9OID0gXCJBV1NfQ1JFREVOVElBTF9FWFBJUkFUSU9OXCI7XG5jb25zdCBFTlZfQ1JFREVOVElBTF9TQ09QRSA9IFwiQVdTX0NSRURFTlRJQUxfU0NPUEVcIjtcbmNvbnN0IEVOVl9BQ0NPVU5UX0lEID0gXCJBV1NfQUNDT1VOVF9JRFwiO1xuY29uc3QgZnJvbUVudiA9IChpbml0KSA9PiBhc3luYyAoKSA9PiB7XG4gICAgaW5pdD8ubG9nZ2VyPy5kZWJ1ZyhcIkBhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItZW52IC0gZnJvbUVudlwiKTtcbiAgICBjb25zdCBhY2Nlc3NLZXlJZCA9IHByb2Nlc3MuZW52W0VOVl9LRVldO1xuICAgIGNvbnN0IHNlY3JldEFjY2Vzc0tleSA9IHByb2Nlc3MuZW52W0VOVl9TRUNSRVRdO1xuICAgIGNvbnN0IHNlc3Npb25Ub2tlbiA9IHByb2Nlc3MuZW52W0VOVl9TRVNTSU9OXTtcbiAgICBjb25zdCBleHBpcnkgPSBwcm9jZXNzLmVudltFTlZfRVhQSVJBVElPTl07XG4gICAgY29uc3QgY3JlZGVudGlhbFNjb3BlID0gcHJvY2Vzcy5lbnZbRU5WX0NSRURFTlRJQUxfU0NPUEVdO1xuICAgIGNvbnN0IGFjY291bnRJZCA9IHByb2Nlc3MuZW52W0VOVl9BQ0NPVU5UX0lEXTtcbiAgICBpZiAoYWNjZXNzS2V5SWQgJiYgc2VjcmV0QWNjZXNzS2V5KSB7XG4gICAgICAgIGNvbnN0IGNyZWRlbnRpYWxzID0ge1xuICAgICAgICAgICAgYWNjZXNzS2V5SWQsXG4gICAgICAgICAgICBzZWNyZXRBY2Nlc3NLZXksXG4gICAgICAgICAgICAuLi4oc2Vzc2lvblRva2VuICYmIHsgc2Vzc2lvblRva2VuIH0pLFxuICAgICAgICAgICAgLi4uKGV4cGlyeSAmJiB7IGV4cGlyYXRpb246IG5ldyBEYXRlKGV4cGlyeSkgfSksXG4gICAgICAgICAgICAuLi4oY3JlZGVudGlhbFNjb3BlICYmIHsgY3JlZGVudGlhbFNjb3BlIH0pLFxuICAgICAgICAgICAgLi4uKGFjY291bnRJZCAmJiB7IGFjY291bnRJZCB9KSxcbiAgICAgICAgfTtcbiAgICAgICAgY2xpZW50LnNldENyZWRlbnRpYWxGZWF0dXJlKGNyZWRlbnRpYWxzLCBcIkNSRURFTlRJQUxTX0VOVl9WQVJTXCIsIFwiZ1wiKTtcbiAgICAgICAgcmV0dXJuIGNyZWRlbnRpYWxzO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoXCJVbmFibGUgdG8gZmluZCBlbnZpcm9ubWVudCB2YXJpYWJsZSBjcmVkZW50aWFscy5cIiwgeyBsb2dnZXI6IGluaXQ/LmxvZ2dlciB9KTtcbn07XG5cbmV4cG9ydHMuRU5WX0FDQ09VTlRfSUQgPSBFTlZfQUNDT1VOVF9JRDtcbmV4cG9ydHMuRU5WX0NSRURFTlRJQUxfU0NPUEUgPSBFTlZfQ1JFREVOVElBTF9TQ09QRTtcbmV4cG9ydHMuRU5WX0VYUElSQVRJT04gPSBFTlZfRVhQSVJBVElPTjtcbmV4cG9ydHMuRU5WX0tFWSA9IEVOVl9LRVk7XG5leHBvcnRzLkVOVl9TRUNSRVQgPSBFTlZfU0VDUkVUO1xuZXhwb3J0cy5FTlZfU0VTU0lPTiA9IEVOVl9TRVNTSU9OO1xuZXhwb3J0cy5mcm9tRW52ID0gZnJvbUVudjtcbiIsICJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuY2hlY2tVcmwgPSB2b2lkIDA7XG5jb25zdCBwcm9wZXJ0eV9wcm92aWRlcl8xID0gcmVxdWlyZShcIkBzbWl0aHkvcHJvcGVydHktcHJvdmlkZXJcIik7XG5jb25zdCBMT09QQkFDS19DSURSX0lQdjQgPSBcIjEyNy4wLjAuMC84XCI7XG5jb25zdCBMT09QQkFDS19DSURSX0lQdjYgPSBcIjo6MS8xMjhcIjtcbmNvbnN0IEVDU19DT05UQUlORVJfSE9TVCA9IFwiMTY5LjI1NC4xNzAuMlwiO1xuY29uc3QgRUtTX0NPTlRBSU5FUl9IT1NUX0lQdjQgPSBcIjE2OS4yNTQuMTcwLjIzXCI7XG5jb25zdCBFS1NfQ09OVEFJTkVSX0hPU1RfSVB2NiA9IFwiW2ZkMDA6ZWMyOjoyM11cIjtcbmNvbnN0IGNoZWNrVXJsID0gKHVybCwgbG9nZ2VyKSA9PiB7XG4gICAgaWYgKHVybC5wcm90b2NvbCA9PT0gXCJodHRwczpcIikge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh1cmwuaG9zdG5hbWUgPT09IEVDU19DT05UQUlORVJfSE9TVCB8fFxuICAgICAgICB1cmwuaG9zdG5hbWUgPT09IEVLU19DT05UQUlORVJfSE9TVF9JUHY0IHx8XG4gICAgICAgIHVybC5ob3N0bmFtZSA9PT0gRUtTX0NPTlRBSU5FUl9IT1NUX0lQdjYpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodXJsLmhvc3RuYW1lLmluY2x1ZGVzKFwiW1wiKSkge1xuICAgICAgICBpZiAodXJsLmhvc3RuYW1lID09PSBcIls6OjFdXCIgfHwgdXJsLmhvc3RuYW1lID09PSBcIlswMDAwOjAwMDA6MDAwMDowMDAwOjAwMDA6MDAwMDowMDAwOjAwMDFdXCIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgaWYgKHVybC5ob3N0bmFtZSA9PT0gXCJsb2NhbGhvc3RcIikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGlwQ29tcG9uZW50cyA9IHVybC5ob3N0bmFtZS5zcGxpdChcIi5cIik7XG4gICAgICAgIGNvbnN0IGluUmFuZ2UgPSAoY29tcG9uZW50KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBudW0gPSBwYXJzZUludChjb21wb25lbnQsIDEwKTtcbiAgICAgICAgICAgIHJldHVybiAwIDw9IG51bSAmJiBudW0gPD0gMjU1O1xuICAgICAgICB9O1xuICAgICAgICBpZiAoaXBDb21wb25lbnRzWzBdID09PSBcIjEyN1wiICYmXG4gICAgICAgICAgICBpblJhbmdlKGlwQ29tcG9uZW50c1sxXSkgJiZcbiAgICAgICAgICAgIGluUmFuZ2UoaXBDb21wb25lbnRzWzJdKSAmJlxuICAgICAgICAgICAgaW5SYW5nZShpcENvbXBvbmVudHNbM10pICYmXG4gICAgICAgICAgICBpcENvbXBvbmVudHMubGVuZ3RoID09PSA0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICB9XG4gICAgdGhyb3cgbmV3IHByb3BlcnR5X3Byb3ZpZGVyXzEuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKGBVUkwgbm90IGFjY2VwdGVkLiBJdCBtdXN0IGVpdGhlciBiZSBIVFRQUyBvciBtYXRjaCBvbmUgb2YgdGhlIGZvbGxvd2luZzpcbiAgLSBsb29wYmFjayBDSURSIDEyNy4wLjAuMC84IG9yIFs6OjEvMTI4XVxuICAtIEVDUyBjb250YWluZXIgaG9zdCAxNjkuMjU0LjE3MC4yXG4gIC0gRUtTIGNvbnRhaW5lciBob3N0IDE2OS4yNTQuMTcwLjIzIG9yIFtmZDAwOmVjMjo6MjNdYCwgeyBsb2dnZXIgfSk7XG59O1xuZXhwb3J0cy5jaGVja1VybCA9IGNoZWNrVXJsO1xuIiwgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5jcmVhdGVHZXRSZXF1ZXN0ID0gY3JlYXRlR2V0UmVxdWVzdDtcbmV4cG9ydHMuZ2V0Q3JlZGVudGlhbHMgPSBnZXRDcmVkZW50aWFscztcbmNvbnN0IHByb3BlcnR5X3Byb3ZpZGVyXzEgPSByZXF1aXJlKFwiQHNtaXRoeS9wcm9wZXJ0eS1wcm92aWRlclwiKTtcbmNvbnN0IHByb3RvY29sX2h0dHBfMSA9IHJlcXVpcmUoXCJAc21pdGh5L3Byb3RvY29sLWh0dHBcIik7XG5jb25zdCBzbWl0aHlfY2xpZW50XzEgPSByZXF1aXJlKFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCIpO1xuY29uc3QgdXRpbF9zdHJlYW1fMSA9IHJlcXVpcmUoXCJAc21pdGh5L3V0aWwtc3RyZWFtXCIpO1xuZnVuY3Rpb24gY3JlYXRlR2V0UmVxdWVzdCh1cmwpIHtcbiAgICByZXR1cm4gbmV3IHByb3RvY29sX2h0dHBfMS5IdHRwUmVxdWVzdCh7XG4gICAgICAgIHByb3RvY29sOiB1cmwucHJvdG9jb2wsXG4gICAgICAgIGhvc3RuYW1lOiB1cmwuaG9zdG5hbWUsXG4gICAgICAgIHBvcnQ6IE51bWJlcih1cmwucG9ydCksXG4gICAgICAgIHBhdGg6IHVybC5wYXRobmFtZSxcbiAgICAgICAgcXVlcnk6IEFycmF5LmZyb20odXJsLnNlYXJjaFBhcmFtcy5lbnRyaWVzKCkpLnJlZHVjZSgoYWNjLCBbaywgdl0pID0+IHtcbiAgICAgICAgICAgIGFjY1trXSA9IHY7XG4gICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICB9LCB7fSksXG4gICAgICAgIGZyYWdtZW50OiB1cmwuaGFzaCxcbiAgICB9KTtcbn1cbmFzeW5jIGZ1bmN0aW9uIGdldENyZWRlbnRpYWxzKHJlc3BvbnNlLCBsb2dnZXIpIHtcbiAgICBjb25zdCBzdHJlYW0gPSAoMCwgdXRpbF9zdHJlYW1fMS5zZGtTdHJlYW1NaXhpbikocmVzcG9uc2UuYm9keSk7XG4gICAgY29uc3Qgc3RyID0gYXdhaXQgc3RyZWFtLnRyYW5zZm9ybVRvU3RyaW5nKCk7XG4gICAgaWYgKHJlc3BvbnNlLnN0YXR1c0NvZGUgPT09IDIwMCkge1xuICAgICAgICBjb25zdCBwYXJzZWQgPSBKU09OLnBhcnNlKHN0cik7XG4gICAgICAgIGlmICh0eXBlb2YgcGFyc2VkLkFjY2Vzc0tleUlkICE9PSBcInN0cmluZ1wiIHx8XG4gICAgICAgICAgICB0eXBlb2YgcGFyc2VkLlNlY3JldEFjY2Vzc0tleSAhPT0gXCJzdHJpbmdcIiB8fFxuICAgICAgICAgICAgdHlwZW9mIHBhcnNlZC5Ub2tlbiAhPT0gXCJzdHJpbmdcIiB8fFxuICAgICAgICAgICAgdHlwZW9mIHBhcnNlZC5FeHBpcmF0aW9uICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlfcHJvdmlkZXJfMS5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoXCJIVFRQIGNyZWRlbnRpYWwgcHJvdmlkZXIgcmVzcG9uc2Ugbm90IG9mIHRoZSByZXF1aXJlZCBmb3JtYXQsIGFuIG9iamVjdCBtYXRjaGluZzogXCIgK1xuICAgICAgICAgICAgICAgIFwieyBBY2Nlc3NLZXlJZDogc3RyaW5nLCBTZWNyZXRBY2Nlc3NLZXk6IHN0cmluZywgVG9rZW46IHN0cmluZywgRXhwaXJhdGlvbjogc3RyaW5nKHJmYzMzMzkpIH1cIiwgeyBsb2dnZXIgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGFjY2Vzc0tleUlkOiBwYXJzZWQuQWNjZXNzS2V5SWQsXG4gICAgICAgICAgICBzZWNyZXRBY2Nlc3NLZXk6IHBhcnNlZC5TZWNyZXRBY2Nlc3NLZXksXG4gICAgICAgICAgICBzZXNzaW9uVG9rZW46IHBhcnNlZC5Ub2tlbixcbiAgICAgICAgICAgIGV4cGlyYXRpb246ICgwLCBzbWl0aHlfY2xpZW50XzEucGFyc2VSZmMzMzM5RGF0ZVRpbWUpKHBhcnNlZC5FeHBpcmF0aW9uKSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgaWYgKHJlc3BvbnNlLnN0YXR1c0NvZGUgPj0gNDAwICYmIHJlc3BvbnNlLnN0YXR1c0NvZGUgPCA1MDApIHtcbiAgICAgICAgbGV0IHBhcnNlZEJvZHkgPSB7fTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHBhcnNlZEJvZHkgPSBKU09OLnBhcnNlKHN0cik7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHsgfVxuICAgICAgICB0aHJvdyBPYmplY3QuYXNzaWduKG5ldyBwcm9wZXJ0eV9wcm92aWRlcl8xLkNyZWRlbnRpYWxzUHJvdmlkZXJFcnJvcihgU2VydmVyIHJlc3BvbmRlZCB3aXRoIHN0YXR1czogJHtyZXNwb25zZS5zdGF0dXNDb2RlfWAsIHsgbG9nZ2VyIH0pLCB7XG4gICAgICAgICAgICBDb2RlOiBwYXJzZWRCb2R5LkNvZGUsXG4gICAgICAgICAgICBNZXNzYWdlOiBwYXJzZWRCb2R5Lk1lc3NhZ2UsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgcHJvcGVydHlfcHJvdmlkZXJfMS5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoYFNlcnZlciByZXNwb25kZWQgd2l0aCBzdGF0dXM6ICR7cmVzcG9uc2Uuc3RhdHVzQ29kZX1gLCB7IGxvZ2dlciB9KTtcbn1cbiIsICJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMucmV0cnlXcmFwcGVyID0gdm9pZCAwO1xuY29uc3QgcmV0cnlXcmFwcGVyID0gKHRvUmV0cnksIG1heFJldHJpZXMsIGRlbGF5TXMpID0+IHtcbiAgICByZXR1cm4gYXN5bmMgKCkgPT4ge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1heFJldHJpZXM7ICsraSkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYXdhaXQgdG9SZXRyeSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gc2V0VGltZW91dChyZXNvbHZlLCBkZWxheU1zKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGF3YWl0IHRvUmV0cnkoKTtcbiAgICB9O1xufTtcbmV4cG9ydHMucmV0cnlXcmFwcGVyID0gcmV0cnlXcmFwcGVyO1xuIiwgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5mcm9tSHR0cCA9IHZvaWQgMDtcbmNvbnN0IHRzbGliXzEgPSByZXF1aXJlKFwidHNsaWJcIik7XG5jb25zdCBjbGllbnRfMSA9IHJlcXVpcmUoXCJAYXdzLXNkay9jb3JlL2NsaWVudFwiKTtcbmNvbnN0IG5vZGVfaHR0cF9oYW5kbGVyXzEgPSByZXF1aXJlKFwiQHNtaXRoeS9ub2RlLWh0dHAtaGFuZGxlclwiKTtcbmNvbnN0IHByb3BlcnR5X3Byb3ZpZGVyXzEgPSByZXF1aXJlKFwiQHNtaXRoeS9wcm9wZXJ0eS1wcm92aWRlclwiKTtcbmNvbnN0IHByb21pc2VzXzEgPSB0c2xpYl8xLl9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwibm9kZTpmcy9wcm9taXNlc1wiKSk7XG5jb25zdCBjaGVja1VybF8xID0gcmVxdWlyZShcIi4vY2hlY2tVcmxcIik7XG5jb25zdCByZXF1ZXN0SGVscGVyc18xID0gcmVxdWlyZShcIi4vcmVxdWVzdEhlbHBlcnNcIik7XG5jb25zdCByZXRyeV93cmFwcGVyXzEgPSByZXF1aXJlKFwiLi9yZXRyeS13cmFwcGVyXCIpO1xuY29uc3QgQVdTX0NPTlRBSU5FUl9DUkVERU5USUFMU19SRUxBVElWRV9VUkkgPSBcIkFXU19DT05UQUlORVJfQ1JFREVOVElBTFNfUkVMQVRJVkVfVVJJXCI7XG5jb25zdCBERUZBVUxUX0xJTktfTE9DQUxfSE9TVCA9IFwiaHR0cDovLzE2OS4yNTQuMTcwLjJcIjtcbmNvbnN0IEFXU19DT05UQUlORVJfQ1JFREVOVElBTFNfRlVMTF9VUkkgPSBcIkFXU19DT05UQUlORVJfQ1JFREVOVElBTFNfRlVMTF9VUklcIjtcbmNvbnN0IEFXU19DT05UQUlORVJfQVVUSE9SSVpBVElPTl9UT0tFTl9GSUxFID0gXCJBV1NfQ09OVEFJTkVSX0FVVEhPUklaQVRJT05fVE9LRU5fRklMRVwiO1xuY29uc3QgQVdTX0NPTlRBSU5FUl9BVVRIT1JJWkFUSU9OX1RPS0VOID0gXCJBV1NfQ09OVEFJTkVSX0FVVEhPUklaQVRJT05fVE9LRU5cIjtcbmNvbnN0IGZyb21IdHRwID0gKG9wdGlvbnMgPSB7fSkgPT4ge1xuICAgIG9wdGlvbnMubG9nZ2VyPy5kZWJ1ZyhcIkBhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItaHR0cCAtIGZyb21IdHRwXCIpO1xuICAgIGxldCBob3N0O1xuICAgIGNvbnN0IHJlbGF0aXZlID0gb3B0aW9ucy5hd3NDb250YWluZXJDcmVkZW50aWFsc1JlbGF0aXZlVXJpID8/IHByb2Nlc3MuZW52W0FXU19DT05UQUlORVJfQ1JFREVOVElBTFNfUkVMQVRJVkVfVVJJXTtcbiAgICBjb25zdCBmdWxsID0gb3B0aW9ucy5hd3NDb250YWluZXJDcmVkZW50aWFsc0Z1bGxVcmkgPz8gcHJvY2Vzcy5lbnZbQVdTX0NPTlRBSU5FUl9DUkVERU5USUFMU19GVUxMX1VSSV07XG4gICAgY29uc3QgdG9rZW4gPSBvcHRpb25zLmF3c0NvbnRhaW5lckF1dGhvcml6YXRpb25Ub2tlbiA/PyBwcm9jZXNzLmVudltBV1NfQ09OVEFJTkVSX0FVVEhPUklaQVRJT05fVE9LRU5dO1xuICAgIGNvbnN0IHRva2VuRmlsZSA9IG9wdGlvbnMuYXdzQ29udGFpbmVyQXV0aG9yaXphdGlvblRva2VuRmlsZSA/PyBwcm9jZXNzLmVudltBV1NfQ09OVEFJTkVSX0FVVEhPUklaQVRJT05fVE9LRU5fRklMRV07XG4gICAgY29uc3Qgd2FybiA9IG9wdGlvbnMubG9nZ2VyPy5jb25zdHJ1Y3Rvcj8ubmFtZSA9PT0gXCJOb09wTG9nZ2VyXCIgfHwgIW9wdGlvbnMubG9nZ2VyPy53YXJuXG4gICAgICAgID8gY29uc29sZS53YXJuXG4gICAgICAgIDogb3B0aW9ucy5sb2dnZXIud2Fybi5iaW5kKG9wdGlvbnMubG9nZ2VyKTtcbiAgICBpZiAocmVsYXRpdmUgJiYgZnVsbCkge1xuICAgICAgICB3YXJuKFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1odHRwOiBcIiArXG4gICAgICAgICAgICBcInlvdSBoYXZlIHNldCBib3RoIGF3c0NvbnRhaW5lckNyZWRlbnRpYWxzUmVsYXRpdmVVcmkgYW5kIGF3c0NvbnRhaW5lckNyZWRlbnRpYWxzRnVsbFVyaS5cIik7XG4gICAgICAgIHdhcm4oXCJhd3NDb250YWluZXJDcmVkZW50aWFsc0Z1bGxVcmkgd2lsbCB0YWtlIHByZWNlZGVuY2UuXCIpO1xuICAgIH1cbiAgICBpZiAodG9rZW4gJiYgdG9rZW5GaWxlKSB7XG4gICAgICAgIHdhcm4oXCJAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLWh0dHA6IFwiICtcbiAgICAgICAgICAgIFwieW91IGhhdmUgc2V0IGJvdGggYXdzQ29udGFpbmVyQXV0aG9yaXphdGlvblRva2VuIGFuZCBhd3NDb250YWluZXJBdXRob3JpemF0aW9uVG9rZW5GaWxlLlwiKTtcbiAgICAgICAgd2FybihcImF3c0NvbnRhaW5lckF1dGhvcml6YXRpb25Ub2tlbiB3aWxsIHRha2UgcHJlY2VkZW5jZS5cIik7XG4gICAgfVxuICAgIGlmIChmdWxsKSB7XG4gICAgICAgIGhvc3QgPSBmdWxsO1xuICAgIH1cbiAgICBlbHNlIGlmIChyZWxhdGl2ZSkge1xuICAgICAgICBob3N0ID0gYCR7REVGQVVMVF9MSU5LX0xPQ0FMX0hPU1R9JHtyZWxhdGl2ZX1gO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5X3Byb3ZpZGVyXzEuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKGBObyBIVFRQIGNyZWRlbnRpYWwgcHJvdmlkZXIgaG9zdCBwcm92aWRlZC5cblNldCBBV1NfQ09OVEFJTkVSX0NSRURFTlRJQUxTX0ZVTExfVVJJIG9yIEFXU19DT05UQUlORVJfQ1JFREVOVElBTFNfUkVMQVRJVkVfVVJJLmAsIHsgbG9nZ2VyOiBvcHRpb25zLmxvZ2dlciB9KTtcbiAgICB9XG4gICAgY29uc3QgdXJsID0gbmV3IFVSTChob3N0KTtcbiAgICAoMCwgY2hlY2tVcmxfMS5jaGVja1VybCkodXJsLCBvcHRpb25zLmxvZ2dlcik7XG4gICAgY29uc3QgcmVxdWVzdEhhbmRsZXIgPSBub2RlX2h0dHBfaGFuZGxlcl8xLk5vZGVIdHRwSGFuZGxlci5jcmVhdGUoe1xuICAgICAgICByZXF1ZXN0VGltZW91dDogb3B0aW9ucy50aW1lb3V0ID8/IDEwMDAsXG4gICAgICAgIGNvbm5lY3Rpb25UaW1lb3V0OiBvcHRpb25zLnRpbWVvdXQgPz8gMTAwMCxcbiAgICB9KTtcbiAgICByZXR1cm4gKDAsIHJldHJ5X3dyYXBwZXJfMS5yZXRyeVdyYXBwZXIpKGFzeW5jICgpID0+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgwLCByZXF1ZXN0SGVscGVyc18xLmNyZWF0ZUdldFJlcXVlc3QpKHVybCk7XG4gICAgICAgIGlmICh0b2tlbikge1xuICAgICAgICAgICAgcmVxdWVzdC5oZWFkZXJzLkF1dGhvcml6YXRpb24gPSB0b2tlbjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0b2tlbkZpbGUpIHtcbiAgICAgICAgICAgIHJlcXVlc3QuaGVhZGVycy5BdXRob3JpemF0aW9uID0gKGF3YWl0IHByb21pc2VzXzEuZGVmYXVsdC5yZWFkRmlsZSh0b2tlbkZpbGUpKS50b1N0cmluZygpO1xuICAgICAgICB9XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZXF1ZXN0SGFuZGxlci5oYW5kbGUocmVxdWVzdCk7XG4gICAgICAgICAgICByZXR1cm4gKDAsIHJlcXVlc3RIZWxwZXJzXzEuZ2V0Q3JlZGVudGlhbHMpKHJlc3VsdC5yZXNwb25zZSkudGhlbigoY3JlZHMpID0+ICgwLCBjbGllbnRfMS5zZXRDcmVkZW50aWFsRmVhdHVyZSkoY3JlZHMsIFwiQ1JFREVOVElBTFNfSFRUUFwiLCBcInpcIikpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlfcHJvdmlkZXJfMS5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoU3RyaW5nKGUpLCB7IGxvZ2dlcjogb3B0aW9ucy5sb2dnZXIgfSk7XG4gICAgICAgIH1cbiAgICB9LCBvcHRpb25zLm1heFJldHJpZXMgPz8gMywgb3B0aW9ucy50aW1lb3V0ID8/IDEwMDApO1xufTtcbmV4cG9ydHMuZnJvbUh0dHAgPSBmcm9tSHR0cDtcbiIsICJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuZnJvbUh0dHAgPSB2b2lkIDA7XG52YXIgZnJvbUh0dHBfMSA9IHJlcXVpcmUoXCIuL2Zyb21IdHRwL2Zyb21IdHRwXCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiZnJvbUh0dHBcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGZyb21IdHRwXzEuZnJvbUh0dHA7IH0gfSk7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgcHJvdG9jb2xIdHRwID0gcmVxdWlyZSgnQHNtaXRoeS9wcm90b2NvbC1odHRwJyk7XG5cbmZ1bmN0aW9uIHJlc29sdmVIb3N0SGVhZGVyQ29uZmlnKGlucHV0KSB7XG4gICAgcmV0dXJuIGlucHV0O1xufVxuY29uc3QgaG9zdEhlYWRlck1pZGRsZXdhcmUgPSAob3B0aW9ucykgPT4gKG5leHQpID0+IGFzeW5jIChhcmdzKSA9PiB7XG4gICAgaWYgKCFwcm90b2NvbEh0dHAuSHR0cFJlcXVlc3QuaXNJbnN0YW5jZShhcmdzLnJlcXVlc3QpKVxuICAgICAgICByZXR1cm4gbmV4dChhcmdzKTtcbiAgICBjb25zdCB7IHJlcXVlc3QgfSA9IGFyZ3M7XG4gICAgY29uc3QgeyBoYW5kbGVyUHJvdG9jb2wgPSBcIlwiIH0gPSBvcHRpb25zLnJlcXVlc3RIYW5kbGVyLm1ldGFkYXRhIHx8IHt9O1xuICAgIGlmIChoYW5kbGVyUHJvdG9jb2wuaW5kZXhPZihcImgyXCIpID49IDAgJiYgIXJlcXVlc3QuaGVhZGVyc1tcIjphdXRob3JpdHlcIl0pIHtcbiAgICAgICAgZGVsZXRlIHJlcXVlc3QuaGVhZGVyc1tcImhvc3RcIl07XG4gICAgICAgIHJlcXVlc3QuaGVhZGVyc1tcIjphdXRob3JpdHlcIl0gPSByZXF1ZXN0Lmhvc3RuYW1lICsgKHJlcXVlc3QucG9ydCA/IFwiOlwiICsgcmVxdWVzdC5wb3J0IDogXCJcIik7XG4gICAgfVxuICAgIGVsc2UgaWYgKCFyZXF1ZXN0LmhlYWRlcnNbXCJob3N0XCJdKSB7XG4gICAgICAgIGxldCBob3N0ID0gcmVxdWVzdC5ob3N0bmFtZTtcbiAgICAgICAgaWYgKHJlcXVlc3QucG9ydCAhPSBudWxsKVxuICAgICAgICAgICAgaG9zdCArPSBgOiR7cmVxdWVzdC5wb3J0fWA7XG4gICAgICAgIHJlcXVlc3QuaGVhZGVyc1tcImhvc3RcIl0gPSBob3N0O1xuICAgIH1cbiAgICByZXR1cm4gbmV4dChhcmdzKTtcbn07XG5jb25zdCBob3N0SGVhZGVyTWlkZGxld2FyZU9wdGlvbnMgPSB7XG4gICAgbmFtZTogXCJob3N0SGVhZGVyTWlkZGxld2FyZVwiLFxuICAgIHN0ZXA6IFwiYnVpbGRcIixcbiAgICBwcmlvcml0eTogXCJsb3dcIixcbiAgICB0YWdzOiBbXCJIT1NUXCJdLFxuICAgIG92ZXJyaWRlOiB0cnVlLFxufTtcbmNvbnN0IGdldEhvc3RIZWFkZXJQbHVnaW4gPSAob3B0aW9ucykgPT4gKHtcbiAgICBhcHBseVRvU3RhY2s6IChjbGllbnRTdGFjaykgPT4ge1xuICAgICAgICBjbGllbnRTdGFjay5hZGQoaG9zdEhlYWRlck1pZGRsZXdhcmUob3B0aW9ucyksIGhvc3RIZWFkZXJNaWRkbGV3YXJlT3B0aW9ucyk7XG4gICAgfSxcbn0pO1xuXG5leHBvcnRzLmdldEhvc3RIZWFkZXJQbHVnaW4gPSBnZXRIb3N0SGVhZGVyUGx1Z2luO1xuZXhwb3J0cy5ob3N0SGVhZGVyTWlkZGxld2FyZSA9IGhvc3RIZWFkZXJNaWRkbGV3YXJlO1xuZXhwb3J0cy5ob3N0SGVhZGVyTWlkZGxld2FyZU9wdGlvbnMgPSBob3N0SGVhZGVyTWlkZGxld2FyZU9wdGlvbnM7XG5leHBvcnRzLnJlc29sdmVIb3N0SGVhZGVyQ29uZmlnID0gcmVzb2x2ZUhvc3RIZWFkZXJDb25maWc7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG5jb25zdCBsb2dnZXJNaWRkbGV3YXJlID0gKCkgPT4gKG5leHQsIGNvbnRleHQpID0+IGFzeW5jIChhcmdzKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBuZXh0KGFyZ3MpO1xuICAgICAgICBjb25zdCB7IGNsaWVudE5hbWUsIGNvbW1hbmROYW1lLCBsb2dnZXIsIGR5bmFtb0RiRG9jdW1lbnRDbGllbnRPcHRpb25zID0ge30gfSA9IGNvbnRleHQ7XG4gICAgICAgIGNvbnN0IHsgb3ZlcnJpZGVJbnB1dEZpbHRlclNlbnNpdGl2ZUxvZywgb3ZlcnJpZGVPdXRwdXRGaWx0ZXJTZW5zaXRpdmVMb2cgfSA9IGR5bmFtb0RiRG9jdW1lbnRDbGllbnRPcHRpb25zO1xuICAgICAgICBjb25zdCBpbnB1dEZpbHRlclNlbnNpdGl2ZUxvZyA9IG92ZXJyaWRlSW5wdXRGaWx0ZXJTZW5zaXRpdmVMb2cgPz8gY29udGV4dC5pbnB1dEZpbHRlclNlbnNpdGl2ZUxvZztcbiAgICAgICAgY29uc3Qgb3V0cHV0RmlsdGVyU2Vuc2l0aXZlTG9nID0gb3ZlcnJpZGVPdXRwdXRGaWx0ZXJTZW5zaXRpdmVMb2cgPz8gY29udGV4dC5vdXRwdXRGaWx0ZXJTZW5zaXRpdmVMb2c7XG4gICAgICAgIGNvbnN0IHsgJG1ldGFkYXRhLCAuLi5vdXRwdXRXaXRob3V0TWV0YWRhdGEgfSA9IHJlc3BvbnNlLm91dHB1dDtcbiAgICAgICAgbG9nZ2VyPy5pbmZvPy4oe1xuICAgICAgICAgICAgY2xpZW50TmFtZSxcbiAgICAgICAgICAgIGNvbW1hbmROYW1lLFxuICAgICAgICAgICAgaW5wdXQ6IGlucHV0RmlsdGVyU2Vuc2l0aXZlTG9nKGFyZ3MuaW5wdXQpLFxuICAgICAgICAgICAgb3V0cHV0OiBvdXRwdXRGaWx0ZXJTZW5zaXRpdmVMb2cob3V0cHV0V2l0aG91dE1ldGFkYXRhKSxcbiAgICAgICAgICAgIG1ldGFkYXRhOiAkbWV0YWRhdGEsXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgfVxuICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zdCB7IGNsaWVudE5hbWUsIGNvbW1hbmROYW1lLCBsb2dnZXIsIGR5bmFtb0RiRG9jdW1lbnRDbGllbnRPcHRpb25zID0ge30gfSA9IGNvbnRleHQ7XG4gICAgICAgIGNvbnN0IHsgb3ZlcnJpZGVJbnB1dEZpbHRlclNlbnNpdGl2ZUxvZyB9ID0gZHluYW1vRGJEb2N1bWVudENsaWVudE9wdGlvbnM7XG4gICAgICAgIGNvbnN0IGlucHV0RmlsdGVyU2Vuc2l0aXZlTG9nID0gb3ZlcnJpZGVJbnB1dEZpbHRlclNlbnNpdGl2ZUxvZyA/PyBjb250ZXh0LmlucHV0RmlsdGVyU2Vuc2l0aXZlTG9nO1xuICAgICAgICBsb2dnZXI/LmVycm9yPy4oe1xuICAgICAgICAgICAgY2xpZW50TmFtZSxcbiAgICAgICAgICAgIGNvbW1hbmROYW1lLFxuICAgICAgICAgICAgaW5wdXQ6IGlucHV0RmlsdGVyU2Vuc2l0aXZlTG9nKGFyZ3MuaW5wdXQpLFxuICAgICAgICAgICAgZXJyb3IsXG4gICAgICAgICAgICBtZXRhZGF0YTogZXJyb3IuJG1ldGFkYXRhLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxufTtcbmNvbnN0IGxvZ2dlck1pZGRsZXdhcmVPcHRpb25zID0ge1xuICAgIG5hbWU6IFwibG9nZ2VyTWlkZGxld2FyZVwiLFxuICAgIHRhZ3M6IFtcIkxPR0dFUlwiXSxcbiAgICBzdGVwOiBcImluaXRpYWxpemVcIixcbiAgICBvdmVycmlkZTogdHJ1ZSxcbn07XG5jb25zdCBnZXRMb2dnZXJQbHVnaW4gPSAob3B0aW9ucykgPT4gKHtcbiAgICBhcHBseVRvU3RhY2s6IChjbGllbnRTdGFjaykgPT4ge1xuICAgICAgICBjbGllbnRTdGFjay5hZGQobG9nZ2VyTWlkZGxld2FyZSgpLCBsb2dnZXJNaWRkbGV3YXJlT3B0aW9ucyk7XG4gICAgfSxcbn0pO1xuXG5leHBvcnRzLmdldExvZ2dlclBsdWdpbiA9IGdldExvZ2dlclBsdWdpbjtcbmV4cG9ydHMubG9nZ2VyTWlkZGxld2FyZSA9IGxvZ2dlck1pZGRsZXdhcmU7XG5leHBvcnRzLmxvZ2dlck1pZGRsZXdhcmVPcHRpb25zID0gbG9nZ2VyTWlkZGxld2FyZU9wdGlvbnM7XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLnJlY3Vyc2lvbkRldGVjdGlvbk1pZGRsZXdhcmUgPSB2b2lkIDA7XG5jb25zdCBsYW1iZGFfaW52b2tlX3N0b3JlXzEgPSByZXF1aXJlKFwiQGF3cy9sYW1iZGEtaW52b2tlLXN0b3JlXCIpO1xuY29uc3QgcHJvdG9jb2xfaHR0cF8xID0gcmVxdWlyZShcIkBzbWl0aHkvcHJvdG9jb2wtaHR0cFwiKTtcbmNvbnN0IFRSQUNFX0lEX0hFQURFUl9OQU1FID0gXCJYLUFtem4tVHJhY2UtSWRcIjtcbmNvbnN0IEVOVl9MQU1CREFfRlVOQ1RJT05fTkFNRSA9IFwiQVdTX0xBTUJEQV9GVU5DVElPTl9OQU1FXCI7XG5jb25zdCBFTlZfVFJBQ0VfSUQgPSBcIl9YX0FNWk5fVFJBQ0VfSURcIjtcbmNvbnN0IHJlY3Vyc2lvbkRldGVjdGlvbk1pZGRsZXdhcmUgPSAoKSA9PiAobmV4dCkgPT4gYXN5bmMgKGFyZ3MpID0+IHtcbiAgICBjb25zdCB7IHJlcXVlc3QgfSA9IGFyZ3M7XG4gICAgaWYgKCFwcm90b2NvbF9odHRwXzEuSHR0cFJlcXVlc3QuaXNJbnN0YW5jZShyZXF1ZXN0KSkge1xuICAgICAgICByZXR1cm4gbmV4dChhcmdzKTtcbiAgICB9XG4gICAgY29uc3QgdHJhY2VJZEhlYWRlciA9IE9iamVjdC5rZXlzKHJlcXVlc3QuaGVhZGVycyA/PyB7fSkuZmluZCgoaCkgPT4gaC50b0xvd2VyQ2FzZSgpID09PSBUUkFDRV9JRF9IRUFERVJfTkFNRS50b0xvd2VyQ2FzZSgpKSA/P1xuICAgICAgICBUUkFDRV9JRF9IRUFERVJfTkFNRTtcbiAgICBpZiAocmVxdWVzdC5oZWFkZXJzLmhhc093blByb3BlcnR5KHRyYWNlSWRIZWFkZXIpKSB7XG4gICAgICAgIHJldHVybiBuZXh0KGFyZ3MpO1xuICAgIH1cbiAgICBjb25zdCBmdW5jdGlvbk5hbWUgPSBwcm9jZXNzLmVudltFTlZfTEFNQkRBX0ZVTkNUSU9OX05BTUVdO1xuICAgIGNvbnN0IHRyYWNlSWRGcm9tRW52ID0gcHJvY2Vzcy5lbnZbRU5WX1RSQUNFX0lEXTtcbiAgICBjb25zdCBpbnZva2VTdG9yZSA9IGF3YWl0IGxhbWJkYV9pbnZva2Vfc3RvcmVfMS5JbnZva2VTdG9yZS5nZXRJbnN0YW5jZUFzeW5jKCk7XG4gICAgY29uc3QgdHJhY2VJZEZyb21JbnZva2VTdG9yZSA9IGludm9rZVN0b3JlPy5nZXRYUmF5VHJhY2VJZCgpO1xuICAgIGNvbnN0IHRyYWNlSWQgPSB0cmFjZUlkRnJvbUludm9rZVN0b3JlID8/IHRyYWNlSWRGcm9tRW52O1xuICAgIGNvbnN0IG5vbkVtcHR5U3RyaW5nID0gKHN0cikgPT4gdHlwZW9mIHN0ciA9PT0gXCJzdHJpbmdcIiAmJiBzdHIubGVuZ3RoID4gMDtcbiAgICBpZiAobm9uRW1wdHlTdHJpbmcoZnVuY3Rpb25OYW1lKSAmJiBub25FbXB0eVN0cmluZyh0cmFjZUlkKSkge1xuICAgICAgICByZXF1ZXN0LmhlYWRlcnNbVFJBQ0VfSURfSEVBREVSX05BTUVdID0gdHJhY2VJZDtcbiAgICB9XG4gICAgcmV0dXJuIG5leHQoe1xuICAgICAgICAuLi5hcmdzLFxuICAgICAgICByZXF1ZXN0LFxuICAgIH0pO1xufTtcbmV4cG9ydHMucmVjdXJzaW9uRGV0ZWN0aW9uTWlkZGxld2FyZSA9IHJlY3Vyc2lvbkRldGVjdGlvbk1pZGRsZXdhcmU7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgcmVjdXJzaW9uRGV0ZWN0aW9uTWlkZGxld2FyZSA9IHJlcXVpcmUoJy4vcmVjdXJzaW9uRGV0ZWN0aW9uTWlkZGxld2FyZScpO1xuXG5jb25zdCByZWN1cnNpb25EZXRlY3Rpb25NaWRkbGV3YXJlT3B0aW9ucyA9IHtcbiAgICBzdGVwOiBcImJ1aWxkXCIsXG4gICAgdGFnczogW1wiUkVDVVJTSU9OX0RFVEVDVElPTlwiXSxcbiAgICBuYW1lOiBcInJlY3Vyc2lvbkRldGVjdGlvbk1pZGRsZXdhcmVcIixcbiAgICBvdmVycmlkZTogdHJ1ZSxcbiAgICBwcmlvcml0eTogXCJsb3dcIixcbn07XG5cbmNvbnN0IGdldFJlY3Vyc2lvbkRldGVjdGlvblBsdWdpbiA9IChvcHRpb25zKSA9PiAoe1xuICAgIGFwcGx5VG9TdGFjazogKGNsaWVudFN0YWNrKSA9PiB7XG4gICAgICAgIGNsaWVudFN0YWNrLmFkZChyZWN1cnNpb25EZXRlY3Rpb25NaWRkbGV3YXJlLnJlY3Vyc2lvbkRldGVjdGlvbk1pZGRsZXdhcmUoKSwgcmVjdXJzaW9uRGV0ZWN0aW9uTWlkZGxld2FyZU9wdGlvbnMpO1xuICAgIH0sXG59KTtcblxuZXhwb3J0cy5nZXRSZWN1cnNpb25EZXRlY3Rpb25QbHVnaW4gPSBnZXRSZWN1cnNpb25EZXRlY3Rpb25QbHVnaW47XG5PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocmVjdXJzaW9uRGV0ZWN0aW9uTWlkZGxld2FyZSwgJ19fcHJvdG9fXycpICYmXG4gICAgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChleHBvcnRzLCAnX19wcm90b19fJykgJiZcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fcHJvdG9fXycsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgdmFsdWU6IHJlY3Vyc2lvbkRldGVjdGlvbk1pZGRsZXdhcmVbJ19fcHJvdG9fXyddXG4gICAgfSk7XG5cbk9iamVjdC5rZXlzKHJlY3Vyc2lvbkRldGVjdGlvbk1pZGRsZXdhcmUpLmZvckVhY2goZnVuY3Rpb24gKGspIHtcbiAgICBpZiAoayAhPT0gJ2RlZmF1bHQnICYmICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXhwb3J0cywgaykpIGV4cG9ydHNba10gPSByZWN1cnNpb25EZXRlY3Rpb25NaWRkbGV3YXJlW2tdO1xufSk7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgdXRpbEVuZHBvaW50cyA9IHJlcXVpcmUoJ0BzbWl0aHkvdXRpbC1lbmRwb2ludHMnKTtcbnZhciB1cmxQYXJzZXIgPSByZXF1aXJlKCdAc21pdGh5L3VybC1wYXJzZXInKTtcblxuY29uc3QgaXNWaXJ0dWFsSG9zdGFibGVTM0J1Y2tldCA9ICh2YWx1ZSwgYWxsb3dTdWJEb21haW5zID0gZmFsc2UpID0+IHtcbiAgICBpZiAoYWxsb3dTdWJEb21haW5zKSB7XG4gICAgICAgIGZvciAoY29uc3QgbGFiZWwgb2YgdmFsdWUuc3BsaXQoXCIuXCIpKSB7XG4gICAgICAgICAgICBpZiAoIWlzVmlydHVhbEhvc3RhYmxlUzNCdWNrZXQobGFiZWwpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAoIXV0aWxFbmRwb2ludHMuaXNWYWxpZEhvc3RMYWJlbCh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAodmFsdWUubGVuZ3RoIDwgMyB8fCB2YWx1ZS5sZW5ndGggPiA2Mykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmICh2YWx1ZSAhPT0gdmFsdWUudG9Mb3dlckNhc2UoKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmICh1dGlsRW5kcG9pbnRzLmlzSXBBZGRyZXNzKHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xufTtcblxuY29uc3QgQVJOX0RFTElNSVRFUiA9IFwiOlwiO1xuY29uc3QgUkVTT1VSQ0VfREVMSU1JVEVSID0gXCIvXCI7XG5jb25zdCBwYXJzZUFybiA9ICh2YWx1ZSkgPT4ge1xuICAgIGNvbnN0IHNlZ21lbnRzID0gdmFsdWUuc3BsaXQoQVJOX0RFTElNSVRFUik7XG4gICAgaWYgKHNlZ21lbnRzLmxlbmd0aCA8IDYpXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIGNvbnN0IFthcm4sIHBhcnRpdGlvbiwgc2VydmljZSwgcmVnaW9uLCBhY2NvdW50SWQsIC4uLnJlc291cmNlUGF0aF0gPSBzZWdtZW50cztcbiAgICBpZiAoYXJuICE9PSBcImFyblwiIHx8IHBhcnRpdGlvbiA9PT0gXCJcIiB8fCBzZXJ2aWNlID09PSBcIlwiIHx8IHJlc291cmNlUGF0aC5qb2luKEFSTl9ERUxJTUlURVIpID09PSBcIlwiKVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICBjb25zdCByZXNvdXJjZUlkID0gcmVzb3VyY2VQYXRoLm1hcCgocmVzb3VyY2UpID0+IHJlc291cmNlLnNwbGl0KFJFU09VUkNFX0RFTElNSVRFUikpLmZsYXQoKTtcbiAgICByZXR1cm4ge1xuICAgICAgICBwYXJ0aXRpb24sXG4gICAgICAgIHNlcnZpY2UsXG4gICAgICAgIHJlZ2lvbixcbiAgICAgICAgYWNjb3VudElkLFxuICAgICAgICByZXNvdXJjZUlkLFxuICAgIH07XG59O1xuXG52YXIgcGFydGl0aW9ucyA9IFtcblx0e1xuXHRcdGlkOiBcImF3c1wiLFxuXHRcdG91dHB1dHM6IHtcblx0XHRcdGRuc1N1ZmZpeDogXCJhbWF6b25hd3MuY29tXCIsXG5cdFx0XHRkdWFsU3RhY2tEbnNTdWZmaXg6IFwiYXBpLmF3c1wiLFxuXHRcdFx0aW1wbGljaXRHbG9iYWxSZWdpb246IFwidXMtZWFzdC0xXCIsXG5cdFx0XHRuYW1lOiBcImF3c1wiLFxuXHRcdFx0c3VwcG9ydHNEdWFsU3RhY2s6IHRydWUsXG5cdFx0XHRzdXBwb3J0c0ZJUFM6IHRydWVcblx0XHR9LFxuXHRcdHJlZ2lvblJlZ2V4OiBcIl4odXN8ZXV8YXB8c2F8Y2F8bWV8YWZ8aWx8bXgpXFxcXC1cXFxcdytcXFxcLVxcXFxkKyRcIixcblx0XHRyZWdpb25zOiB7XG5cdFx0XHRcImFmLXNvdXRoLTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBZnJpY2EgKENhcGUgVG93bilcIlxuXHRcdFx0fSxcblx0XHRcdFwiYXAtZWFzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChIb25nIEtvbmcpXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLWVhc3QtMlwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFzaWEgUGFjaWZpYyAoVGFpcGVpKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJhcC1ub3J0aGVhc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFzaWEgUGFjaWZpYyAoVG9reW8pXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLW5vcnRoZWFzdC0yXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChTZW91bClcIlxuXHRcdFx0fSxcblx0XHRcdFwiYXAtbm9ydGhlYXN0LTNcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBc2lhIFBhY2lmaWMgKE9zYWthKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJhcC1zb3V0aC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChNdW1iYWkpXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLXNvdXRoLTJcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBc2lhIFBhY2lmaWMgKEh5ZGVyYWJhZClcIlxuXHRcdFx0fSxcblx0XHRcdFwiYXAtc291dGhlYXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBc2lhIFBhY2lmaWMgKFNpbmdhcG9yZSlcIlxuXHRcdFx0fSxcblx0XHRcdFwiYXAtc291dGhlYXN0LTJcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBc2lhIFBhY2lmaWMgKFN5ZG5leSlcIlxuXHRcdFx0fSxcblx0XHRcdFwiYXAtc291dGhlYXN0LTNcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBc2lhIFBhY2lmaWMgKEpha2FydGEpXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLXNvdXRoZWFzdC00XCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChNZWxib3VybmUpXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLXNvdXRoZWFzdC01XCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChNYWxheXNpYSlcIlxuXHRcdFx0fSxcblx0XHRcdFwiYXAtc291dGhlYXN0LTZcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBc2lhIFBhY2lmaWMgKE5ldyBaZWFsYW5kKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJhcC1zb3V0aGVhc3QtN1wiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFzaWEgUGFjaWZpYyAoVGhhaWxhbmQpXCJcblx0XHRcdH0sXG5cdFx0XHRcImF3cy1nbG9iYWxcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJhd3MgZ2xvYmFsIHJlZ2lvblwiXG5cdFx0XHR9LFxuXHRcdFx0XCJjYS1jZW50cmFsLTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJDYW5hZGEgKENlbnRyYWwpXCJcblx0XHRcdH0sXG5cdFx0XHRcImNhLXdlc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkNhbmFkYSBXZXN0IChDYWxnYXJ5KVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJldS1jZW50cmFsLTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJFdXJvcGUgKEZyYW5rZnVydClcIlxuXHRcdFx0fSxcblx0XHRcdFwiZXUtY2VudHJhbC0yXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiRXVyb3BlIChadXJpY2gpXCJcblx0XHRcdH0sXG5cdFx0XHRcImV1LW5vcnRoLTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJFdXJvcGUgKFN0b2NraG9sbSlcIlxuXHRcdFx0fSxcblx0XHRcdFwiZXUtc291dGgtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkV1cm9wZSAoTWlsYW4pXCJcblx0XHRcdH0sXG5cdFx0XHRcImV1LXNvdXRoLTJcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJFdXJvcGUgKFNwYWluKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJldS13ZXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJFdXJvcGUgKElyZWxhbmQpXCJcblx0XHRcdH0sXG5cdFx0XHRcImV1LXdlc3QtMlwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkV1cm9wZSAoTG9uZG9uKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJldS13ZXN0LTNcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJFdXJvcGUgKFBhcmlzKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJpbC1jZW50cmFsLTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJJc3JhZWwgKFRlbCBBdml2KVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJtZS1jZW50cmFsLTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJNaWRkbGUgRWFzdCAoVUFFKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJtZS1zb3V0aC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiTWlkZGxlIEVhc3QgKEJhaHJhaW4pXCJcblx0XHRcdH0sXG5cdFx0XHRcIm14LWNlbnRyYWwtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIk1leGljbyAoQ2VudHJhbClcIlxuXHRcdFx0fSxcblx0XHRcdFwic2EtZWFzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiU291dGggQW1lcmljYSAoU2FvIFBhdWxvKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJ1cy1lYXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJVUyBFYXN0IChOLiBWaXJnaW5pYSlcIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtZWFzdC0yXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiVVMgRWFzdCAoT2hpbylcIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtd2VzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiVVMgV2VzdCAoTi4gQ2FsaWZvcm5pYSlcIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtd2VzdC0yXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiVVMgV2VzdCAoT3JlZ29uKVwiXG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXHR7XG5cdFx0aWQ6IFwiYXdzLWNuXCIsXG5cdFx0b3V0cHV0czoge1xuXHRcdFx0ZG5zU3VmZml4OiBcImFtYXpvbmF3cy5jb20uY25cIixcblx0XHRcdGR1YWxTdGFja0Ruc1N1ZmZpeDogXCJhcGkuYW1hem9ud2Vic2VydmljZXMuY29tLmNuXCIsXG5cdFx0XHRpbXBsaWNpdEdsb2JhbFJlZ2lvbjogXCJjbi1ub3J0aHdlc3QtMVwiLFxuXHRcdFx0bmFtZTogXCJhd3MtY25cIixcblx0XHRcdHN1cHBvcnRzRHVhbFN0YWNrOiB0cnVlLFxuXHRcdFx0c3VwcG9ydHNGSVBTOiB0cnVlXG5cdFx0fSxcblx0XHRyZWdpb25SZWdleDogXCJeY25cXFxcLVxcXFx3K1xcXFwtXFxcXGQrJFwiLFxuXHRcdHJlZ2lvbnM6IHtcblx0XHRcdFwiYXdzLWNuLWdsb2JhbFwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcImF3cy1jbiBnbG9iYWwgcmVnaW9uXCJcblx0XHRcdH0sXG5cdFx0XHRcImNuLW5vcnRoLTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJDaGluYSAoQmVpamluZylcIlxuXHRcdFx0fSxcblx0XHRcdFwiY24tbm9ydGh3ZXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJDaGluYSAoTmluZ3hpYSlcIlxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0e1xuXHRcdGlkOiBcImF3cy1ldXNjXCIsXG5cdFx0b3V0cHV0czoge1xuXHRcdFx0ZG5zU3VmZml4OiBcImFtYXpvbmF3cy5ldVwiLFxuXHRcdFx0ZHVhbFN0YWNrRG5zU3VmZml4OiBcImFwaS5hbWF6b253ZWJzZXJ2aWNlcy5ldVwiLFxuXHRcdFx0aW1wbGljaXRHbG9iYWxSZWdpb246IFwiZXVzYy1kZS1lYXN0LTFcIixcblx0XHRcdG5hbWU6IFwiYXdzLWV1c2NcIixcblx0XHRcdHN1cHBvcnRzRHVhbFN0YWNrOiB0cnVlLFxuXHRcdFx0c3VwcG9ydHNGSVBTOiB0cnVlXG5cdFx0fSxcblx0XHRyZWdpb25SZWdleDogXCJeZXVzY1xcXFwtKGRlKVxcXFwtXFxcXHcrXFxcXC1cXFxcZCskXCIsXG5cdFx0cmVnaW9uczoge1xuXHRcdFx0XCJldXNjLWRlLWVhc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFXUyBFdXJvcGVhbiBTb3ZlcmVpZ24gQ2xvdWQgKEdlcm1hbnkpXCJcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdHtcblx0XHRpZDogXCJhd3MtaXNvXCIsXG5cdFx0b3V0cHV0czoge1xuXHRcdFx0ZG5zU3VmZml4OiBcImMycy5pYy5nb3ZcIixcblx0XHRcdGR1YWxTdGFja0Ruc1N1ZmZpeDogXCJhcGkuYXdzLmljLmdvdlwiLFxuXHRcdFx0aW1wbGljaXRHbG9iYWxSZWdpb246IFwidXMtaXNvLWVhc3QtMVwiLFxuXHRcdFx0bmFtZTogXCJhd3MtaXNvXCIsXG5cdFx0XHRzdXBwb3J0c0R1YWxTdGFjazogdHJ1ZSxcblx0XHRcdHN1cHBvcnRzRklQUzogdHJ1ZVxuXHRcdH0sXG5cdFx0cmVnaW9uUmVnZXg6IFwiXnVzXFxcXC1pc29cXFxcLVxcXFx3K1xcXFwtXFxcXGQrJFwiLFxuXHRcdHJlZ2lvbnM6IHtcblx0XHRcdFwiYXdzLWlzby1nbG9iYWxcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJhd3MtaXNvIGdsb2JhbCByZWdpb25cIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtaXNvLWVhc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIlVTIElTTyBFYXN0XCJcblx0XHRcdH0sXG5cdFx0XHRcInVzLWlzby13ZXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJVUyBJU08gV0VTVFwiXG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXHR7XG5cdFx0aWQ6IFwiYXdzLWlzby1iXCIsXG5cdFx0b3V0cHV0czoge1xuXHRcdFx0ZG5zU3VmZml4OiBcInNjMnMuc2dvdi5nb3ZcIixcblx0XHRcdGR1YWxTdGFja0Ruc1N1ZmZpeDogXCJhcGkuYXdzLnNjbG91ZFwiLFxuXHRcdFx0aW1wbGljaXRHbG9iYWxSZWdpb246IFwidXMtaXNvYi1lYXN0LTFcIixcblx0XHRcdG5hbWU6IFwiYXdzLWlzby1iXCIsXG5cdFx0XHRzdXBwb3J0c0R1YWxTdGFjazogdHJ1ZSxcblx0XHRcdHN1cHBvcnRzRklQUzogdHJ1ZVxuXHRcdH0sXG5cdFx0cmVnaW9uUmVnZXg6IFwiXnVzXFxcXC1pc29iXFxcXC1cXFxcdytcXFxcLVxcXFxkKyRcIixcblx0XHRyZWdpb25zOiB7XG5cdFx0XHRcImF3cy1pc28tYi1nbG9iYWxcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJhd3MtaXNvLWIgZ2xvYmFsIHJlZ2lvblwiXG5cdFx0XHR9LFxuXHRcdFx0XCJ1cy1pc29iLWVhc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIlVTIElTT0IgRWFzdCAoT2hpbylcIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtaXNvYi13ZXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJVUyBJU09CIFdlc3RcIlxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0e1xuXHRcdGlkOiBcImF3cy1pc28tZVwiLFxuXHRcdG91dHB1dHM6IHtcblx0XHRcdGRuc1N1ZmZpeDogXCJjbG91ZC5hZGMtZS51a1wiLFxuXHRcdFx0ZHVhbFN0YWNrRG5zU3VmZml4OiBcImFwaS5jbG91ZC1hd3MuYWRjLWUudWtcIixcblx0XHRcdGltcGxpY2l0R2xvYmFsUmVnaW9uOiBcImV1LWlzb2Utd2VzdC0xXCIsXG5cdFx0XHRuYW1lOiBcImF3cy1pc28tZVwiLFxuXHRcdFx0c3VwcG9ydHNEdWFsU3RhY2s6IHRydWUsXG5cdFx0XHRzdXBwb3J0c0ZJUFM6IHRydWVcblx0XHR9LFxuXHRcdHJlZ2lvblJlZ2V4OiBcIl5ldVxcXFwtaXNvZVxcXFwtXFxcXHcrXFxcXC1cXFxcZCskXCIsXG5cdFx0cmVnaW9uczoge1xuXHRcdFx0XCJhd3MtaXNvLWUtZ2xvYmFsXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiYXdzLWlzby1lIGdsb2JhbCByZWdpb25cIlxuXHRcdFx0fSxcblx0XHRcdFwiZXUtaXNvZS13ZXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJFVSBJU09FIFdlc3RcIlxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0e1xuXHRcdGlkOiBcImF3cy1pc28tZlwiLFxuXHRcdG91dHB1dHM6IHtcblx0XHRcdGRuc1N1ZmZpeDogXCJjc3AuaGNpLmljLmdvdlwiLFxuXHRcdFx0ZHVhbFN0YWNrRG5zU3VmZml4OiBcImFwaS5hd3MuaGNpLmljLmdvdlwiLFxuXHRcdFx0aW1wbGljaXRHbG9iYWxSZWdpb246IFwidXMtaXNvZi1zb3V0aC0xXCIsXG5cdFx0XHRuYW1lOiBcImF3cy1pc28tZlwiLFxuXHRcdFx0c3VwcG9ydHNEdWFsU3RhY2s6IHRydWUsXG5cdFx0XHRzdXBwb3J0c0ZJUFM6IHRydWVcblx0XHR9LFxuXHRcdHJlZ2lvblJlZ2V4OiBcIl51c1xcXFwtaXNvZlxcXFwtXFxcXHcrXFxcXC1cXFxcZCskXCIsXG5cdFx0cmVnaW9uczoge1xuXHRcdFx0XCJhd3MtaXNvLWYtZ2xvYmFsXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiYXdzLWlzby1mIGdsb2JhbCByZWdpb25cIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtaXNvZi1lYXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJVUyBJU09GIEVBU1RcIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtaXNvZi1zb3V0aC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiVVMgSVNPRiBTT1VUSFwiXG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXHR7XG5cdFx0aWQ6IFwiYXdzLXVzLWdvdlwiLFxuXHRcdG91dHB1dHM6IHtcblx0XHRcdGRuc1N1ZmZpeDogXCJhbWF6b25hd3MuY29tXCIsXG5cdFx0XHRkdWFsU3RhY2tEbnNTdWZmaXg6IFwiYXBpLmF3c1wiLFxuXHRcdFx0aW1wbGljaXRHbG9iYWxSZWdpb246IFwidXMtZ292LXdlc3QtMVwiLFxuXHRcdFx0bmFtZTogXCJhd3MtdXMtZ292XCIsXG5cdFx0XHRzdXBwb3J0c0R1YWxTdGFjazogdHJ1ZSxcblx0XHRcdHN1cHBvcnRzRklQUzogdHJ1ZVxuXHRcdH0sXG5cdFx0cmVnaW9uUmVnZXg6IFwiXnVzXFxcXC1nb3ZcXFxcLVxcXFx3K1xcXFwtXFxcXGQrJFwiLFxuXHRcdHJlZ2lvbnM6IHtcblx0XHRcdFwiYXdzLXVzLWdvdi1nbG9iYWxcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJhd3MtdXMtZ292IGdsb2JhbCByZWdpb25cIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtZ292LWVhc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFXUyBHb3ZDbG91ZCAoVVMtRWFzdClcIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtZ292LXdlc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFXUyBHb3ZDbG91ZCAoVVMtV2VzdClcIlxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXTtcbnZhciB2ZXJzaW9uID0gXCIxLjFcIjtcbnZhciBwYXJ0aXRpb25zSW5mbyA9IHtcblx0cGFydGl0aW9uczogcGFydGl0aW9ucyxcblx0dmVyc2lvbjogdmVyc2lvblxufTtcblxubGV0IHNlbGVjdGVkUGFydGl0aW9uc0luZm8gPSBwYXJ0aXRpb25zSW5mbztcbmxldCBzZWxlY3RlZFVzZXJBZ2VudFByZWZpeCA9IFwiXCI7XG5jb25zdCBwYXJ0aXRpb24gPSAodmFsdWUpID0+IHtcbiAgICBjb25zdCB7IHBhcnRpdGlvbnMgfSA9IHNlbGVjdGVkUGFydGl0aW9uc0luZm87XG4gICAgZm9yIChjb25zdCBwYXJ0aXRpb24gb2YgcGFydGl0aW9ucykge1xuICAgICAgICBjb25zdCB7IHJlZ2lvbnMsIG91dHB1dHMgfSA9IHBhcnRpdGlvbjtcbiAgICAgICAgZm9yIChjb25zdCBbcmVnaW9uLCByZWdpb25EYXRhXSBvZiBPYmplY3QuZW50cmllcyhyZWdpb25zKSkge1xuICAgICAgICAgICAgaWYgKHJlZ2lvbiA9PT0gdmFsdWUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAuLi5vdXRwdXRzLFxuICAgICAgICAgICAgICAgICAgICAuLi5yZWdpb25EYXRhLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgZm9yIChjb25zdCBwYXJ0aXRpb24gb2YgcGFydGl0aW9ucykge1xuICAgICAgICBjb25zdCB7IHJlZ2lvblJlZ2V4LCBvdXRwdXRzIH0gPSBwYXJ0aXRpb247XG4gICAgICAgIGlmIChuZXcgUmVnRXhwKHJlZ2lvblJlZ2V4KS50ZXN0KHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5vdXRwdXRzLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBERUZBVUxUX1BBUlRJVElPTiA9IHBhcnRpdGlvbnMuZmluZCgocGFydGl0aW9uKSA9PiBwYXJ0aXRpb24uaWQgPT09IFwiYXdzXCIpO1xuICAgIGlmICghREVGQVVMVF9QQVJUSVRJT04pIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiUHJvdmlkZWQgcmVnaW9uIHdhcyBub3QgZm91bmQgaW4gdGhlIHBhcnRpdGlvbiBhcnJheSBvciByZWdleCxcIiArXG4gICAgICAgICAgICBcIiBhbmQgZGVmYXVsdCBwYXJ0aXRpb24gd2l0aCBpZCAnYXdzJyBkb2Vzbid0IGV4aXN0LlwiKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgLi4uREVGQVVMVF9QQVJUSVRJT04ub3V0cHV0cyxcbiAgICB9O1xufTtcbmNvbnN0IHNldFBhcnRpdGlvbkluZm8gPSAocGFydGl0aW9uc0luZm8sIHVzZXJBZ2VudFByZWZpeCA9IFwiXCIpID0+IHtcbiAgICBzZWxlY3RlZFBhcnRpdGlvbnNJbmZvID0gcGFydGl0aW9uc0luZm87XG4gICAgc2VsZWN0ZWRVc2VyQWdlbnRQcmVmaXggPSB1c2VyQWdlbnRQcmVmaXg7XG59O1xuY29uc3QgdXNlRGVmYXVsdFBhcnRpdGlvbkluZm8gPSAoKSA9PiB7XG4gICAgc2V0UGFydGl0aW9uSW5mbyhwYXJ0aXRpb25zSW5mbywgXCJcIik7XG59O1xuY29uc3QgZ2V0VXNlckFnZW50UHJlZml4ID0gKCkgPT4gc2VsZWN0ZWRVc2VyQWdlbnRQcmVmaXg7XG5cbmNvbnN0IGF3c0VuZHBvaW50RnVuY3Rpb25zID0ge1xuICAgIGlzVmlydHVhbEhvc3RhYmxlUzNCdWNrZXQ6IGlzVmlydHVhbEhvc3RhYmxlUzNCdWNrZXQsXG4gICAgcGFyc2VBcm46IHBhcnNlQXJuLFxuICAgIHBhcnRpdGlvbjogcGFydGl0aW9uLFxufTtcbnV0aWxFbmRwb2ludHMuY3VzdG9tRW5kcG9pbnRGdW5jdGlvbnMuYXdzID0gYXdzRW5kcG9pbnRGdW5jdGlvbnM7XG5cbmNvbnN0IHJlc29sdmVEZWZhdWx0QXdzUmVnaW9uYWxFbmRwb2ludHNDb25maWcgPSAoaW5wdXQpID0+IHtcbiAgICBpZiAodHlwZW9mIGlucHV0LmVuZHBvaW50UHJvdmlkZXIgIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJAYXdzLXNkay91dGlsLWVuZHBvaW50IC0gZW5kcG9pbnRQcm92aWRlciBhbmQgZW5kcG9pbnQgbWlzc2luZyBpbiBjb25maWcgZm9yIHRoaXMgY2xpZW50LlwiKTtcbiAgICB9XG4gICAgY29uc3QgeyBlbmRwb2ludCB9ID0gaW5wdXQ7XG4gICAgaWYgKGVuZHBvaW50ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaW5wdXQuZW5kcG9pbnQgPSBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gdG9FbmRwb2ludFYxKGlucHV0LmVuZHBvaW50UHJvdmlkZXIoe1xuICAgICAgICAgICAgICAgIFJlZ2lvbjogdHlwZW9mIGlucHV0LnJlZ2lvbiA9PT0gXCJmdW5jdGlvblwiID8gYXdhaXQgaW5wdXQucmVnaW9uKCkgOiBpbnB1dC5yZWdpb24sXG4gICAgICAgICAgICAgICAgVXNlRHVhbFN0YWNrOiB0eXBlb2YgaW5wdXQudXNlRHVhbHN0YWNrRW5kcG9pbnQgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICA/IGF3YWl0IGlucHV0LnVzZUR1YWxzdGFja0VuZHBvaW50KClcbiAgICAgICAgICAgICAgICAgICAgOiBpbnB1dC51c2VEdWFsc3RhY2tFbmRwb2ludCxcbiAgICAgICAgICAgICAgICBVc2VGSVBTOiB0eXBlb2YgaW5wdXQudXNlRmlwc0VuZHBvaW50ID09PSBcImZ1bmN0aW9uXCIgPyBhd2FpdCBpbnB1dC51c2VGaXBzRW5kcG9pbnQoKSA6IGlucHV0LnVzZUZpcHNFbmRwb2ludCxcbiAgICAgICAgICAgICAgICBFbmRwb2ludDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfSwgeyBsb2dnZXI6IGlucHV0LmxvZ2dlciB9KSk7XG4gICAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiBpbnB1dDtcbn07XG5jb25zdCB0b0VuZHBvaW50VjEgPSAoZW5kcG9pbnQpID0+IHVybFBhcnNlci5wYXJzZVVybChlbmRwb2ludC51cmwpO1xuXG5leHBvcnRzLkVuZHBvaW50RXJyb3IgPSB1dGlsRW5kcG9pbnRzLkVuZHBvaW50RXJyb3I7XG5leHBvcnRzLmlzSXBBZGRyZXNzID0gdXRpbEVuZHBvaW50cy5pc0lwQWRkcmVzcztcbmV4cG9ydHMucmVzb2x2ZUVuZHBvaW50ID0gdXRpbEVuZHBvaW50cy5yZXNvbHZlRW5kcG9pbnQ7XG5leHBvcnRzLmF3c0VuZHBvaW50RnVuY3Rpb25zID0gYXdzRW5kcG9pbnRGdW5jdGlvbnM7XG5leHBvcnRzLmdldFVzZXJBZ2VudFByZWZpeCA9IGdldFVzZXJBZ2VudFByZWZpeDtcbmV4cG9ydHMucGFydGl0aW9uID0gcGFydGl0aW9uO1xuZXhwb3J0cy5yZXNvbHZlRGVmYXVsdEF3c1JlZ2lvbmFsRW5kcG9pbnRzQ29uZmlnID0gcmVzb2x2ZURlZmF1bHRBd3NSZWdpb25hbEVuZHBvaW50c0NvbmZpZztcbmV4cG9ydHMuc2V0UGFydGl0aW9uSW5mbyA9IHNldFBhcnRpdGlvbkluZm87XG5leHBvcnRzLnRvRW5kcG9pbnRWMSA9IHRvRW5kcG9pbnRWMTtcbmV4cG9ydHMudXNlRGVmYXVsdFBhcnRpdGlvbkluZm8gPSB1c2VEZWZhdWx0UGFydGl0aW9uSW5mbztcbiIsICJleHBvcnQgY29uc3Qgc3RhdGUgPSB7XG4gICAgd2FybmluZ0VtaXR0ZWQ6IGZhbHNlLFxufTtcbmV4cG9ydCBjb25zdCBlbWl0V2FybmluZ0lmVW5zdXBwb3J0ZWRWZXJzaW9uID0gKHZlcnNpb24pID0+IHtcbiAgICBpZiAodmVyc2lvbiAmJiAhc3RhdGUud2FybmluZ0VtaXR0ZWQpIHtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52LkFXU19TREtfSlNfTk9ERV9WRVJTSU9OX1NVUFBPUlRfV0FSTklOR19ESVNBQkxFRCA9PT0gXCJ0cnVlXCIpIHtcbiAgICAgICAgICAgIHN0YXRlLndhcm5pbmdFbWl0dGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB1c2VyTWFqb3JWZXJzaW9uID0gcGFyc2VJbnQodmVyc2lvbi5zdWJzdHJpbmcoMSwgdmVyc2lvbi5pbmRleE9mKFwiLlwiKSkpO1xuICAgICAgICBjb25zdCB2diA9IDIyO1xuICAgICAgICBpZiAodXNlck1ham9yVmVyc2lvbiA8IHZ2KSB7XG4gICAgICAgICAgICBzdGF0ZS53YXJuaW5nRW1pdHRlZCA9IHRydWU7XG4gICAgICAgICAgICBwcm9jZXNzLmVtaXRXYXJuaW5nKGBOb2RlVmVyc2lvblN1cHBvcnRXYXJuaW5nOiBUaGUgQVdTIFNESyBmb3IgSmF2YVNjcmlwdCAodjMpXG52ZXJzaW9ucyBwdWJsaXNoZWQgYWZ0ZXIgdGhlIGZpcnN0IHdlZWsgb2YgSmFudWFyeSAyMDI3XG53aWxsIHJlcXVpcmUgbm9kZSA+PSR7dnZ9LiBZb3UgYXJlIHJ1bm5pbmcgbm9kZSAke3ZlcnNpb259LlxuXG5UbyBjb250aW51ZSByZWNlaXZpbmcgdXBkYXRlcyB0byBBV1Mgc2VydmljZXMsIGJ1ZyBmaXhlcyxcbmFuZCBzZWN1cml0eSB1cGRhdGVzIHBsZWFzZSB1cGdyYWRlIHRvIG5vZGUgPj0ke3Z2fS5cblxuTW9yZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgYXQ6IGh0dHBzOi8vYS5jby9jODk1SkZwYCk7XG4gICAgICAgIH1cbiAgICB9XG59O1xuIiwgImV4cG9ydCBjb25zdCBsb25nUG9sbE1pZGRsZXdhcmUgPSAoKSA9PiAobmV4dCwgY29udGV4dCkgPT4gYXN5bmMgKGFyZ3MpID0+IHtcbiAgICBjb250ZXh0Ll9fcmV0cnlMb25nUG9sbCA9IHRydWU7XG4gICAgcmV0dXJuIG5leHQoYXJncyk7XG59O1xuZXhwb3J0IGNvbnN0IGxvbmdQb2xsTWlkZGxld2FyZU9wdGlvbnMgPSB7XG4gICAgbmFtZTogXCJsb25nUG9sbE1pZGRsZXdhcmVcIixcbiAgICB0YWdzOiBbXCJSRVRSWVwiXSxcbiAgICBzdGVwOiBcImluaXRpYWxpemVcIixcbiAgICBvdmVycmlkZTogdHJ1ZSxcbn07XG5leHBvcnQgY29uc3QgZ2V0TG9uZ1BvbGxQbHVnaW4gPSAob3B0aW9ucykgPT4gKHtcbiAgICBhcHBseVRvU3RhY2s6IChjbGllbnRTdGFjaykgPT4ge1xuICAgICAgICBjbGllbnRTdGFjay5hZGQobG9uZ1BvbGxNaWRkbGV3YXJlKCksIGxvbmdQb2xsTWlkZGxld2FyZU9wdGlvbnMpO1xuICAgIH0sXG59KTtcbiIsICJleHBvcnQgZnVuY3Rpb24gc2V0Q3JlZGVudGlhbEZlYXR1cmUoY3JlZGVudGlhbHMsIGZlYXR1cmUsIHZhbHVlKSB7XG4gICAgaWYgKCFjcmVkZW50aWFscy4kc291cmNlKSB7XG4gICAgICAgIGNyZWRlbnRpYWxzLiRzb3VyY2UgPSB7fTtcbiAgICB9XG4gICAgY3JlZGVudGlhbHMuJHNvdXJjZVtmZWF0dXJlXSA9IHZhbHVlO1xuICAgIHJldHVybiBjcmVkZW50aWFscztcbn1cbiIsICJpbXBvcnQgeyBSZXRyeSB9IGZyb20gXCJAc21pdGh5L3V0aWwtcmV0cnlcIjtcblJldHJ5LnYyMDI2IHx8PSB0eXBlb2YgcHJvY2VzcyA9PT0gXCJvYmplY3RcIiAmJiBwcm9jZXNzLmVudj8uQVdTX05FV19SRVRSSUVTXzIwMjYgPT09IFwidHJ1ZVwiO1xuZXhwb3J0IGZ1bmN0aW9uIHNldEZlYXR1cmUoY29udGV4dCwgZmVhdHVyZSwgdmFsdWUpIHtcbiAgICBpZiAoIWNvbnRleHQuX19hd3Nfc2RrX2NvbnRleHQpIHtcbiAgICAgICAgY29udGV4dC5fX2F3c19zZGtfY29udGV4dCA9IHtcbiAgICAgICAgICAgIGZlYXR1cmVzOiB7fSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgZWxzZSBpZiAoIWNvbnRleHQuX19hd3Nfc2RrX2NvbnRleHQuZmVhdHVyZXMpIHtcbiAgICAgICAgY29udGV4dC5fX2F3c19zZGtfY29udGV4dC5mZWF0dXJlcyA9IHt9O1xuICAgIH1cbiAgICBjb250ZXh0Ll9fYXdzX3Nka19jb250ZXh0LmZlYXR1cmVzW2ZlYXR1cmVdID0gdmFsdWU7XG59XG4iLCAiZXhwb3J0IGZ1bmN0aW9uIHNldFRva2VuRmVhdHVyZSh0b2tlbiwgZmVhdHVyZSwgdmFsdWUpIHtcbiAgICBpZiAoIXRva2VuLiRzb3VyY2UpIHtcbiAgICAgICAgdG9rZW4uJHNvdXJjZSA9IHt9O1xuICAgIH1cbiAgICB0b2tlbi4kc291cmNlW2ZlYXR1cmVdID0gdmFsdWU7XG4gICAgcmV0dXJuIHRva2VuO1xufVxuIiwgImV4cG9ydCAqIGZyb20gXCIuL2VtaXRXYXJuaW5nSWZVbnN1cHBvcnRlZFZlcnNpb25cIjtcbmV4cG9ydCB7IGdldExvbmdQb2xsUGx1Z2luIH0gZnJvbSBcIi4vbG9uZ1BvbGxNaWRkbGV3YXJlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zZXRDcmVkZW50aWFsRmVhdHVyZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc2V0RmVhdHVyZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc2V0VG9rZW5GZWF0dXJlXCI7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgY29yZSA9IHJlcXVpcmUoJ0BzbWl0aHkvY29yZScpO1xudmFyIHV0aWxFbmRwb2ludHMgPSByZXF1aXJlKCdAYXdzLXNkay91dGlsLWVuZHBvaW50cycpO1xudmFyIHByb3RvY29sSHR0cCA9IHJlcXVpcmUoJ0BzbWl0aHkvcHJvdG9jb2wtaHR0cCcpO1xudmFyIGNsaWVudCA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL2NvcmUvY2xpZW50Jyk7XG52YXIgdXRpbFJldHJ5ID0gcmVxdWlyZSgnQHNtaXRoeS91dGlsLXJldHJ5Jyk7XG5cbmNvbnN0IERFRkFVTFRfVUFfQVBQX0lEID0gdW5kZWZpbmVkO1xuZnVuY3Rpb24gaXNWYWxpZFVzZXJBZ2VudEFwcElkKGFwcElkKSB7XG4gICAgaWYgKGFwcElkID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiB0eXBlb2YgYXBwSWQgPT09IFwic3RyaW5nXCIgJiYgYXBwSWQubGVuZ3RoIDw9IDUwO1xufVxuZnVuY3Rpb24gcmVzb2x2ZVVzZXJBZ2VudENvbmZpZyhpbnB1dCkge1xuICAgIGNvbnN0IG5vcm1hbGl6ZWRBcHBJZFByb3ZpZGVyID0gY29yZS5ub3JtYWxpemVQcm92aWRlcihpbnB1dC51c2VyQWdlbnRBcHBJZCA/PyBERUZBVUxUX1VBX0FQUF9JRCk7XG4gICAgY29uc3QgeyBjdXN0b21Vc2VyQWdlbnQgfSA9IGlucHV0O1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKGlucHV0LCB7XG4gICAgICAgIGN1c3RvbVVzZXJBZ2VudDogdHlwZW9mIGN1c3RvbVVzZXJBZ2VudCA9PT0gXCJzdHJpbmdcIiA/IFtbY3VzdG9tVXNlckFnZW50XV0gOiBjdXN0b21Vc2VyQWdlbnQsXG4gICAgICAgIHVzZXJBZ2VudEFwcElkOiBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBhcHBJZCA9IGF3YWl0IG5vcm1hbGl6ZWRBcHBJZFByb3ZpZGVyKCk7XG4gICAgICAgICAgICBpZiAoIWlzVmFsaWRVc2VyQWdlbnRBcHBJZChhcHBJZCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBsb2dnZXIgPSBpbnB1dC5sb2dnZXI/LmNvbnN0cnVjdG9yPy5uYW1lID09PSBcIk5vT3BMb2dnZXJcIiB8fCAhaW5wdXQubG9nZ2VyID8gY29uc29sZSA6IGlucHV0LmxvZ2dlcjtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGFwcElkICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAgICAgICAgIGxvZ2dlcj8ud2FybihcInVzZXJBZ2VudEFwcElkIG11c3QgYmUgYSBzdHJpbmcgb3IgdW5kZWZpbmVkLlwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoYXBwSWQubGVuZ3RoID4gNTApIHtcbiAgICAgICAgICAgICAgICAgICAgbG9nZ2VyPy53YXJuKFwiVGhlIHByb3ZpZGVkIHVzZXJBZ2VudEFwcElkIGV4Y2VlZHMgdGhlIG1heGltdW0gbGVuZ3RoIG9mIDUwIGNoYXJhY3RlcnMuXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBhcHBJZDtcbiAgICAgICAgfSxcbiAgICB9KTtcbn1cblxuY29uc3QgQUNDT1VOVF9JRF9FTkRQT0lOVF9SRUdFWCA9IC9cXGR7MTJ9XFwuZGRiLztcbmFzeW5jIGZ1bmN0aW9uIGNoZWNrRmVhdHVyZXMoY29udGV4dCwgY29uZmlnLCBhcmdzKSB7XG4gICAgY29uc3QgcmVxdWVzdCA9IGFyZ3MucmVxdWVzdDtcbiAgICBpZiAocmVxdWVzdD8uaGVhZGVycz8uW1wic21pdGh5LXByb3RvY29sXCJdID09PSBcInJwYy12Mi1jYm9yXCIpIHtcbiAgICAgICAgY2xpZW50LnNldEZlYXR1cmUoY29udGV4dCwgXCJQUk9UT0NPTF9SUENfVjJfQ0JPUlwiLCBcIk1cIik7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgY29uZmlnLnJldHJ5U3RyYXRlZ3kgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICBjb25zdCByZXRyeVN0cmF0ZWd5ID0gYXdhaXQgY29uZmlnLnJldHJ5U3RyYXRlZ3koKTtcbiAgICAgICAgaWYgKHR5cGVvZiByZXRyeVN0cmF0ZWd5Lm1vZGUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIHN3aXRjaCAocmV0cnlTdHJhdGVneS5tb2RlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSB1dGlsUmV0cnkuUkVUUllfTU9ERVMuQURBUFRJVkU6XG4gICAgICAgICAgICAgICAgICAgIGNsaWVudC5zZXRGZWF0dXJlKGNvbnRleHQsIFwiUkVUUllfTU9ERV9BREFQVElWRVwiLCBcIkZcIik7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgdXRpbFJldHJ5LlJFVFJZX01PREVTLlNUQU5EQVJEOlxuICAgICAgICAgICAgICAgICAgICBjbGllbnQuc2V0RmVhdHVyZShjb250ZXh0LCBcIlJFVFJZX01PREVfU1RBTkRBUkRcIiwgXCJFXCIpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAodHlwZW9mIGNvbmZpZy5hY2NvdW50SWRFbmRwb2ludE1vZGUgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICBjb25zdCBlbmRwb2ludFYyID0gY29udGV4dC5lbmRwb2ludFYyO1xuICAgICAgICBpZiAoU3RyaW5nKGVuZHBvaW50VjI/LnVybD8uaG9zdG5hbWUpLm1hdGNoKEFDQ09VTlRfSURfRU5EUE9JTlRfUkVHRVgpKSB7XG4gICAgICAgICAgICBjbGllbnQuc2V0RmVhdHVyZShjb250ZXh0LCBcIkFDQ09VTlRfSURfRU5EUE9JTlRcIiwgXCJPXCIpO1xuICAgICAgICB9XG4gICAgICAgIHN3aXRjaCAoYXdhaXQgY29uZmlnLmFjY291bnRJZEVuZHBvaW50TW9kZT8uKCkpIHtcbiAgICAgICAgICAgIGNhc2UgXCJkaXNhYmxlZFwiOlxuICAgICAgICAgICAgICAgIGNsaWVudC5zZXRGZWF0dXJlKGNvbnRleHQsIFwiQUNDT1VOVF9JRF9NT0RFX0RJU0FCTEVEXCIsIFwiUVwiKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgXCJwcmVmZXJyZWRcIjpcbiAgICAgICAgICAgICAgICBjbGllbnQuc2V0RmVhdHVyZShjb250ZXh0LCBcIkFDQ09VTlRfSURfTU9ERV9QUkVGRVJSRURcIiwgXCJQXCIpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBcInJlcXVpcmVkXCI6XG4gICAgICAgICAgICAgICAgY2xpZW50LnNldEZlYXR1cmUoY29udGV4dCwgXCJBQ0NPVU5UX0lEX01PREVfUkVRVUlSRURcIiwgXCJSXCIpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNvbnN0IGlkZW50aXR5ID0gY29udGV4dC5fX3NtaXRoeV9jb250ZXh0Py5zZWxlY3RlZEh0dHBBdXRoU2NoZW1lPy5pZGVudGl0eTtcbiAgICBpZiAoaWRlbnRpdHk/LiRzb3VyY2UpIHtcbiAgICAgICAgY29uc3QgY3JlZGVudGlhbHMgPSBpZGVudGl0eTtcbiAgICAgICAgaWYgKGNyZWRlbnRpYWxzLmFjY291bnRJZCkge1xuICAgICAgICAgICAgY2xpZW50LnNldEZlYXR1cmUoY29udGV4dCwgXCJSRVNPTFZFRF9BQ0NPVU5UX0lEXCIsIFwiVFwiKTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhjcmVkZW50aWFscy4kc291cmNlID8/IHt9KSkge1xuICAgICAgICAgICAgY2xpZW50LnNldEZlYXR1cmUoY29udGV4dCwga2V5LCB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmNvbnN0IFVTRVJfQUdFTlQgPSBcInVzZXItYWdlbnRcIjtcbmNvbnN0IFhfQU1aX1VTRVJfQUdFTlQgPSBcIngtYW16LXVzZXItYWdlbnRcIjtcbmNvbnN0IFNQQUNFID0gXCIgXCI7XG5jb25zdCBVQV9OQU1FX1NFUEFSQVRPUiA9IFwiL1wiO1xuY29uc3QgVUFfTkFNRV9FU0NBUEVfUkVHRVggPSAvW14hJCUmJyorXFwtLl5fYHx+XFx3XS9nO1xuY29uc3QgVUFfVkFMVUVfRVNDQVBFX1JFR0VYID0gL1teISQlJicqK1xcLS5eX2B8flxcdyNdL2c7XG5jb25zdCBVQV9FU0NBUEVfQ0hBUiA9IFwiLVwiO1xuXG5jb25zdCBCWVRFX0xJTUlUID0gMTAyNDtcbmZ1bmN0aW9uIGVuY29kZUZlYXR1cmVzKGZlYXR1cmVzKSB7XG4gICAgbGV0IGJ1ZmZlciA9IFwiXCI7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gZmVhdHVyZXMpIHtcbiAgICAgICAgY29uc3QgdmFsID0gZmVhdHVyZXNba2V5XTtcbiAgICAgICAgaWYgKGJ1ZmZlci5sZW5ndGggKyB2YWwubGVuZ3RoICsgMSA8PSBCWVRFX0xJTUlUKSB7XG4gICAgICAgICAgICBpZiAoYnVmZmVyLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGJ1ZmZlciArPSBcIixcIiArIHZhbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGJ1ZmZlciArPSB2YWw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICB9XG4gICAgcmV0dXJuIGJ1ZmZlcjtcbn1cblxuY29uc3QgdXNlckFnZW50TWlkZGxld2FyZSA9IChvcHRpb25zKSA9PiAobmV4dCwgY29udGV4dCkgPT4gYXN5bmMgKGFyZ3MpID0+IHtcbiAgICBjb25zdCB7IHJlcXVlc3QgfSA9IGFyZ3M7XG4gICAgaWYgKCFwcm90b2NvbEh0dHAuSHR0cFJlcXVlc3QuaXNJbnN0YW5jZShyZXF1ZXN0KSkge1xuICAgICAgICByZXR1cm4gbmV4dChhcmdzKTtcbiAgICB9XG4gICAgY29uc3QgeyBoZWFkZXJzIH0gPSByZXF1ZXN0O1xuICAgIGNvbnN0IHVzZXJBZ2VudCA9IGNvbnRleHQ/LnVzZXJBZ2VudD8ubWFwKGVzY2FwZVVzZXJBZ2VudCkgfHwgW107XG4gICAgY29uc3QgZGVmYXVsdFVzZXJBZ2VudCA9IChhd2FpdCBvcHRpb25zLmRlZmF1bHRVc2VyQWdlbnRQcm92aWRlcigpKS5tYXAoZXNjYXBlVXNlckFnZW50KTtcbiAgICBhd2FpdCBjaGVja0ZlYXR1cmVzKGNvbnRleHQsIG9wdGlvbnMsIGFyZ3MpO1xuICAgIGNvbnN0IGF3c0NvbnRleHQgPSBjb250ZXh0O1xuICAgIGRlZmF1bHRVc2VyQWdlbnQucHVzaChgbS8ke2VuY29kZUZlYXR1cmVzKE9iamVjdC5hc3NpZ24oe30sIGNvbnRleHQuX19zbWl0aHlfY29udGV4dD8uZmVhdHVyZXMsIGF3c0NvbnRleHQuX19hd3Nfc2RrX2NvbnRleHQ/LmZlYXR1cmVzKSl9YCk7XG4gICAgY29uc3QgY3VzdG9tVXNlckFnZW50ID0gb3B0aW9ucz8uY3VzdG9tVXNlckFnZW50Py5tYXAoZXNjYXBlVXNlckFnZW50KSB8fCBbXTtcbiAgICBjb25zdCBhcHBJZCA9IGF3YWl0IG9wdGlvbnMudXNlckFnZW50QXBwSWQoKTtcbiAgICBpZiAoYXBwSWQpIHtcbiAgICAgICAgZGVmYXVsdFVzZXJBZ2VudC5wdXNoKGVzY2FwZVVzZXJBZ2VudChbYGFwcGAsIGAke2FwcElkfWBdKSk7XG4gICAgfVxuICAgIGNvbnN0IHByZWZpeCA9IHV0aWxFbmRwb2ludHMuZ2V0VXNlckFnZW50UHJlZml4KCk7XG4gICAgY29uc3Qgc2RrVXNlckFnZW50VmFsdWUgPSAocHJlZml4ID8gW3ByZWZpeF0gOiBbXSlcbiAgICAgICAgLmNvbmNhdChbLi4uZGVmYXVsdFVzZXJBZ2VudCwgLi4udXNlckFnZW50LCAuLi5jdXN0b21Vc2VyQWdlbnRdKVxuICAgICAgICAuam9pbihTUEFDRSk7XG4gICAgY29uc3Qgbm9ybWFsVUFWYWx1ZSA9IFtcbiAgICAgICAgLi4uZGVmYXVsdFVzZXJBZ2VudC5maWx0ZXIoKHNlY3Rpb24pID0+IHNlY3Rpb24uc3RhcnRzV2l0aChcImF3cy1zZGstXCIpKSxcbiAgICAgICAgLi4uY3VzdG9tVXNlckFnZW50LFxuICAgIF0uam9pbihTUEFDRSk7XG4gICAgaWYgKG9wdGlvbnMucnVudGltZSAhPT0gXCJicm93c2VyXCIpIHtcbiAgICAgICAgaWYgKG5vcm1hbFVBVmFsdWUpIHtcbiAgICAgICAgICAgIGhlYWRlcnNbWF9BTVpfVVNFUl9BR0VOVF0gPSBoZWFkZXJzW1hfQU1aX1VTRVJfQUdFTlRdXG4gICAgICAgICAgICAgICAgPyBgJHtoZWFkZXJzW1VTRVJfQUdFTlRdfSAke25vcm1hbFVBVmFsdWV9YFxuICAgICAgICAgICAgICAgIDogbm9ybWFsVUFWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBoZWFkZXJzW1VTRVJfQUdFTlRdID0gc2RrVXNlckFnZW50VmFsdWU7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBoZWFkZXJzW1hfQU1aX1VTRVJfQUdFTlRdID0gc2RrVXNlckFnZW50VmFsdWU7XG4gICAgfVxuICAgIHJldHVybiBuZXh0KHtcbiAgICAgICAgLi4uYXJncyxcbiAgICAgICAgcmVxdWVzdCxcbiAgICB9KTtcbn07XG5jb25zdCBlc2NhcGVVc2VyQWdlbnQgPSAodXNlckFnZW50UGFpcikgPT4ge1xuICAgIGNvbnN0IG5hbWUgPSB1c2VyQWdlbnRQYWlyWzBdXG4gICAgICAgIC5zcGxpdChVQV9OQU1FX1NFUEFSQVRPUilcbiAgICAgICAgLm1hcCgocGFydCkgPT4gcGFydC5yZXBsYWNlKFVBX05BTUVfRVNDQVBFX1JFR0VYLCBVQV9FU0NBUEVfQ0hBUikpXG4gICAgICAgIC5qb2luKFVBX05BTUVfU0VQQVJBVE9SKTtcbiAgICBjb25zdCB2ZXJzaW9uID0gdXNlckFnZW50UGFpclsxXT8ucmVwbGFjZShVQV9WQUxVRV9FU0NBUEVfUkVHRVgsIFVBX0VTQ0FQRV9DSEFSKTtcbiAgICBjb25zdCBwcmVmaXhTZXBhcmF0b3JJbmRleCA9IG5hbWUuaW5kZXhPZihVQV9OQU1FX1NFUEFSQVRPUik7XG4gICAgY29uc3QgcHJlZml4ID0gbmFtZS5zdWJzdHJpbmcoMCwgcHJlZml4U2VwYXJhdG9ySW5kZXgpO1xuICAgIGxldCB1YU5hbWUgPSBuYW1lLnN1YnN0cmluZyhwcmVmaXhTZXBhcmF0b3JJbmRleCArIDEpO1xuICAgIGlmIChwcmVmaXggPT09IFwiYXBpXCIpIHtcbiAgICAgICAgdWFOYW1lID0gdWFOYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgfVxuICAgIHJldHVybiBbcHJlZml4LCB1YU5hbWUsIHZlcnNpb25dXG4gICAgICAgIC5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0gJiYgaXRlbS5sZW5ndGggPiAwKVxuICAgICAgICAucmVkdWNlKChhY2MsIGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgIHN3aXRjaCAoaW5kZXgpIHtcbiAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICByZXR1cm4gYCR7YWNjfS8ke2l0ZW19YDtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGAke2FjY30jJHtpdGVtfWA7XG4gICAgICAgIH1cbiAgICB9LCBcIlwiKTtcbn07XG5jb25zdCBnZXRVc2VyQWdlbnRNaWRkbGV3YXJlT3B0aW9ucyA9IHtcbiAgICBuYW1lOiBcImdldFVzZXJBZ2VudE1pZGRsZXdhcmVcIixcbiAgICBzdGVwOiBcImJ1aWxkXCIsXG4gICAgcHJpb3JpdHk6IFwibG93XCIsXG4gICAgdGFnczogW1wiU0VUX1VTRVJfQUdFTlRcIiwgXCJVU0VSX0FHRU5UXCJdLFxuICAgIG92ZXJyaWRlOiB0cnVlLFxufTtcbmNvbnN0IGdldFVzZXJBZ2VudFBsdWdpbiA9IChjb25maWcpID0+ICh7XG4gICAgYXBwbHlUb1N0YWNrOiAoY2xpZW50U3RhY2spID0+IHtcbiAgICAgICAgY2xpZW50U3RhY2suYWRkKHVzZXJBZ2VudE1pZGRsZXdhcmUoY29uZmlnKSwgZ2V0VXNlckFnZW50TWlkZGxld2FyZU9wdGlvbnMpO1xuICAgIH0sXG59KTtcblxuZXhwb3J0cy5ERUZBVUxUX1VBX0FQUF9JRCA9IERFRkFVTFRfVUFfQVBQX0lEO1xuZXhwb3J0cy5nZXRVc2VyQWdlbnRNaWRkbGV3YXJlT3B0aW9ucyA9IGdldFVzZXJBZ2VudE1pZGRsZXdhcmVPcHRpb25zO1xuZXhwb3J0cy5nZXRVc2VyQWdlbnRQbHVnaW4gPSBnZXRVc2VyQWdlbnRQbHVnaW47XG5leHBvcnRzLnJlc29sdmVVc2VyQWdlbnRDb25maWcgPSByZXNvbHZlVXNlckFnZW50Q29uZmlnO1xuZXhwb3J0cy51c2VyQWdlbnRNaWRkbGV3YXJlID0gdXNlckFnZW50TWlkZGxld2FyZTtcbiIsICJpbXBvcnQgeyBIdHRwUmVzcG9uc2UgfSBmcm9tIFwiQHNtaXRoeS9wcm90b2NvbC1odHRwXCI7XG5leHBvcnQgY29uc3QgZ2V0RGF0ZUhlYWRlciA9IChyZXNwb25zZSkgPT4gSHR0cFJlc3BvbnNlLmlzSW5zdGFuY2UocmVzcG9uc2UpID8gcmVzcG9uc2UuaGVhZGVycz8uZGF0ZSA/PyByZXNwb25zZS5oZWFkZXJzPy5EYXRlIDogdW5kZWZpbmVkO1xuIiwgImV4cG9ydCBjb25zdCBnZXRTa2V3Q29ycmVjdGVkRGF0ZSA9IChzeXN0ZW1DbG9ja09mZnNldCkgPT4gbmV3IERhdGUoRGF0ZS5ub3coKSArIHN5c3RlbUNsb2NrT2Zmc2V0KTtcbiIsICJpbXBvcnQgeyBnZXRTa2V3Q29ycmVjdGVkRGF0ZSB9IGZyb20gXCIuL2dldFNrZXdDb3JyZWN0ZWREYXRlXCI7XG5leHBvcnQgY29uc3QgaXNDbG9ja1NrZXdlZCA9IChjbG9ja1RpbWUsIHN5c3RlbUNsb2NrT2Zmc2V0KSA9PiBNYXRoLmFicyhnZXRTa2V3Q29ycmVjdGVkRGF0ZShzeXN0ZW1DbG9ja09mZnNldCkuZ2V0VGltZSgpIC0gY2xvY2tUaW1lKSA+PSAzMDAwMDA7XG4iLCAiaW1wb3J0IHsgaXNDbG9ja1NrZXdlZCB9IGZyb20gXCIuL2lzQ2xvY2tTa2V3ZWRcIjtcbmV4cG9ydCBjb25zdCBnZXRVcGRhdGVkU3lzdGVtQ2xvY2tPZmZzZXQgPSAoY2xvY2tUaW1lLCBjdXJyZW50U3lzdGVtQ2xvY2tPZmZzZXQpID0+IHtcbiAgICBjb25zdCBjbG9ja1RpbWVJbk1zID0gRGF0ZS5wYXJzZShjbG9ja1RpbWUpO1xuICAgIGlmIChpc0Nsb2NrU2tld2VkKGNsb2NrVGltZUluTXMsIGN1cnJlbnRTeXN0ZW1DbG9ja09mZnNldCkpIHtcbiAgICAgICAgcmV0dXJuIGNsb2NrVGltZUluTXMgLSBEYXRlLm5vdygpO1xuICAgIH1cbiAgICByZXR1cm4gY3VycmVudFN5c3RlbUNsb2NrT2Zmc2V0O1xufTtcbiIsICJleHBvcnQgKiBmcm9tIFwiLi9nZXREYXRlSGVhZGVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9nZXRTa2V3Q29ycmVjdGVkRGF0ZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZ2V0VXBkYXRlZFN5c3RlbUNsb2NrT2Zmc2V0XCI7XG4iLCAiaW1wb3J0IHsgSHR0cFJlcXVlc3QgfSBmcm9tIFwiQHNtaXRoeS9wcm90b2NvbC1odHRwXCI7XG5pbXBvcnQgeyBnZXREYXRlSGVhZGVyLCBnZXRTa2V3Q29ycmVjdGVkRGF0ZSwgZ2V0VXBkYXRlZFN5c3RlbUNsb2NrT2Zmc2V0IH0gZnJvbSBcIi4uL3V0aWxzXCI7XG5jb25zdCB0aHJvd1NpZ25pbmdQcm9wZXJ0eUVycm9yID0gKG5hbWUsIHByb3BlcnR5KSA9PiB7XG4gICAgaWYgKCFwcm9wZXJ0eSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFByb3BlcnR5IFxcYCR7bmFtZX1cXGAgaXMgbm90IHJlc29sdmVkIGZvciBBV1MgU0RLIFNpZ1Y0QXV0aGApO1xuICAgIH1cbiAgICByZXR1cm4gcHJvcGVydHk7XG59O1xuZXhwb3J0IGNvbnN0IHZhbGlkYXRlU2lnbmluZ1Byb3BlcnRpZXMgPSBhc3luYyAoc2lnbmluZ1Byb3BlcnRpZXMpID0+IHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhyb3dTaWduaW5nUHJvcGVydHlFcnJvcihcImNvbnRleHRcIiwgc2lnbmluZ1Byb3BlcnRpZXMuY29udGV4dCk7XG4gICAgY29uc3QgY29uZmlnID0gdGhyb3dTaWduaW5nUHJvcGVydHlFcnJvcihcImNvbmZpZ1wiLCBzaWduaW5nUHJvcGVydGllcy5jb25maWcpO1xuICAgIGNvbnN0IGF1dGhTY2hlbWUgPSBjb250ZXh0LmVuZHBvaW50VjI/LnByb3BlcnRpZXM/LmF1dGhTY2hlbWVzPy5bMF07XG4gICAgY29uc3Qgc2lnbmVyRnVuY3Rpb24gPSB0aHJvd1NpZ25pbmdQcm9wZXJ0eUVycm9yKFwic2lnbmVyXCIsIGNvbmZpZy5zaWduZXIpO1xuICAgIGNvbnN0IHNpZ25lciA9IGF3YWl0IHNpZ25lckZ1bmN0aW9uKGF1dGhTY2hlbWUpO1xuICAgIGNvbnN0IHNpZ25pbmdSZWdpb24gPSBzaWduaW5nUHJvcGVydGllcz8uc2lnbmluZ1JlZ2lvbjtcbiAgICBjb25zdCBzaWduaW5nUmVnaW9uU2V0ID0gc2lnbmluZ1Byb3BlcnRpZXM/LnNpZ25pbmdSZWdpb25TZXQ7XG4gICAgY29uc3Qgc2lnbmluZ05hbWUgPSBzaWduaW5nUHJvcGVydGllcz8uc2lnbmluZ05hbWU7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgY29uZmlnLFxuICAgICAgICBzaWduZXIsXG4gICAgICAgIHNpZ25pbmdSZWdpb24sXG4gICAgICAgIHNpZ25pbmdSZWdpb25TZXQsXG4gICAgICAgIHNpZ25pbmdOYW1lLFxuICAgIH07XG59O1xuZXhwb3J0IGNsYXNzIEF3c1Nka1NpZ1Y0U2lnbmVyIHtcbiAgICBhc3luYyBzaWduKGh0dHBSZXF1ZXN0LCBpZGVudGl0eSwgc2lnbmluZ1Byb3BlcnRpZXMpIHtcbiAgICAgICAgaWYgKCFIdHRwUmVxdWVzdC5pc0luc3RhbmNlKGh0dHBSZXF1ZXN0KSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVGhlIHJlcXVlc3QgaXMgbm90IGFuIGluc3RhbmNlIG9mIGBIdHRwUmVxdWVzdGAgYW5kIGNhbm5vdCBiZSBzaWduZWRcIik7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdmFsaWRhdGVkUHJvcHMgPSBhd2FpdCB2YWxpZGF0ZVNpZ25pbmdQcm9wZXJ0aWVzKHNpZ25pbmdQcm9wZXJ0aWVzKTtcbiAgICAgICAgY29uc3QgeyBjb25maWcsIHNpZ25lciB9ID0gdmFsaWRhdGVkUHJvcHM7XG4gICAgICAgIGxldCB7IHNpZ25pbmdSZWdpb24sIHNpZ25pbmdOYW1lIH0gPSB2YWxpZGF0ZWRQcm9wcztcbiAgICAgICAgY29uc3QgaGFuZGxlckV4ZWN1dGlvbkNvbnRleHQgPSBzaWduaW5nUHJvcGVydGllcy5jb250ZXh0O1xuICAgICAgICBpZiAoaGFuZGxlckV4ZWN1dGlvbkNvbnRleHQ/LmF1dGhTY2hlbWVzPy5sZW5ndGggPz8gMCA+IDEpIHtcbiAgICAgICAgICAgIGNvbnN0IFtmaXJzdCwgc2Vjb25kXSA9IGhhbmRsZXJFeGVjdXRpb25Db250ZXh0LmF1dGhTY2hlbWVzO1xuICAgICAgICAgICAgaWYgKGZpcnN0Py5uYW1lID09PSBcInNpZ3Y0YVwiICYmIHNlY29uZD8ubmFtZSA9PT0gXCJzaWd2NFwiKSB7XG4gICAgICAgICAgICAgICAgc2lnbmluZ1JlZ2lvbiA9IHNlY29uZD8uc2lnbmluZ1JlZ2lvbiA/PyBzaWduaW5nUmVnaW9uO1xuICAgICAgICAgICAgICAgIHNpZ25pbmdOYW1lID0gc2Vjb25kPy5zaWduaW5nTmFtZSA/PyBzaWduaW5nTmFtZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzaWduZWRSZXF1ZXN0ID0gYXdhaXQgc2lnbmVyLnNpZ24oaHR0cFJlcXVlc3QsIHtcbiAgICAgICAgICAgIHNpZ25pbmdEYXRlOiBnZXRTa2V3Q29ycmVjdGVkRGF0ZShjb25maWcuc3lzdGVtQ2xvY2tPZmZzZXQpLFxuICAgICAgICAgICAgc2lnbmluZ1JlZ2lvbjogc2lnbmluZ1JlZ2lvbixcbiAgICAgICAgICAgIHNpZ25pbmdTZXJ2aWNlOiBzaWduaW5nTmFtZSxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBzaWduZWRSZXF1ZXN0O1xuICAgIH1cbiAgICBlcnJvckhhbmRsZXIoc2lnbmluZ1Byb3BlcnRpZXMpIHtcbiAgICAgICAgcmV0dXJuIChlcnJvcikgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc2VydmVyVGltZSA9IGVycm9yLlNlcnZlclRpbWUgPz8gZ2V0RGF0ZUhlYWRlcihlcnJvci4kcmVzcG9uc2UpO1xuICAgICAgICAgICAgaWYgKHNlcnZlclRpbWUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSB0aHJvd1NpZ25pbmdQcm9wZXJ0eUVycm9yKFwiY29uZmlnXCIsIHNpZ25pbmdQcm9wZXJ0aWVzLmNvbmZpZyk7XG4gICAgICAgICAgICAgICAgY29uc3QgaW5pdGlhbFN5c3RlbUNsb2NrT2Zmc2V0ID0gY29uZmlnLnN5c3RlbUNsb2NrT2Zmc2V0O1xuICAgICAgICAgICAgICAgIGNvbmZpZy5zeXN0ZW1DbG9ja09mZnNldCA9IGdldFVwZGF0ZWRTeXN0ZW1DbG9ja09mZnNldChzZXJ2ZXJUaW1lLCBjb25maWcuc3lzdGVtQ2xvY2tPZmZzZXQpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNsb2NrU2tld0NvcnJlY3RlZCA9IGNvbmZpZy5zeXN0ZW1DbG9ja09mZnNldCAhPT0gaW5pdGlhbFN5c3RlbUNsb2NrT2Zmc2V0O1xuICAgICAgICAgICAgICAgIGlmIChjbG9ja1NrZXdDb3JyZWN0ZWQgJiYgZXJyb3IuJG1ldGFkYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgIGVycm9yLiRtZXRhZGF0YS5jbG9ja1NrZXdDb3JyZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9O1xuICAgIH1cbiAgICBzdWNjZXNzSGFuZGxlcihodHRwUmVzcG9uc2UsIHNpZ25pbmdQcm9wZXJ0aWVzKSB7XG4gICAgICAgIGNvbnN0IGRhdGVIZWFkZXIgPSBnZXREYXRlSGVhZGVyKGh0dHBSZXNwb25zZSk7XG4gICAgICAgIGlmIChkYXRlSGVhZGVyKSB7XG4gICAgICAgICAgICBjb25zdCBjb25maWcgPSB0aHJvd1NpZ25pbmdQcm9wZXJ0eUVycm9yKFwiY29uZmlnXCIsIHNpZ25pbmdQcm9wZXJ0aWVzLmNvbmZpZyk7XG4gICAgICAgICAgICBjb25maWcuc3lzdGVtQ2xvY2tPZmZzZXQgPSBnZXRVcGRhdGVkU3lzdGVtQ2xvY2tPZmZzZXQoZGF0ZUhlYWRlciwgY29uZmlnLnN5c3RlbUNsb2NrT2Zmc2V0KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydCBjb25zdCBBV1NTREtTaWdWNFNpZ25lciA9IEF3c1Nka1NpZ1Y0U2lnbmVyO1xuIiwgImltcG9ydCB7IEh0dHBSZXF1ZXN0IH0gZnJvbSBcIkBzbWl0aHkvcHJvdG9jb2wtaHR0cFwiO1xuaW1wb3J0IHsgZ2V0U2tld0NvcnJlY3RlZERhdGUgfSBmcm9tIFwiLi4vdXRpbHNcIjtcbmltcG9ydCB7IEF3c1Nka1NpZ1Y0U2lnbmVyLCB2YWxpZGF0ZVNpZ25pbmdQcm9wZXJ0aWVzIH0gZnJvbSBcIi4vQXdzU2RrU2lnVjRTaWduZXJcIjtcbmV4cG9ydCBjbGFzcyBBd3NTZGtTaWdWNEFTaWduZXIgZXh0ZW5kcyBBd3NTZGtTaWdWNFNpZ25lciB7XG4gICAgYXN5bmMgc2lnbihodHRwUmVxdWVzdCwgaWRlbnRpdHksIHNpZ25pbmdQcm9wZXJ0aWVzKSB7XG4gICAgICAgIGlmICghSHR0cFJlcXVlc3QuaXNJbnN0YW5jZShodHRwUmVxdWVzdCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlRoZSByZXF1ZXN0IGlzIG5vdCBhbiBpbnN0YW5jZSBvZiBgSHR0cFJlcXVlc3RgIGFuZCBjYW5ub3QgYmUgc2lnbmVkXCIpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHsgY29uZmlnLCBzaWduZXIsIHNpZ25pbmdSZWdpb24sIHNpZ25pbmdSZWdpb25TZXQsIHNpZ25pbmdOYW1lIH0gPSBhd2FpdCB2YWxpZGF0ZVNpZ25pbmdQcm9wZXJ0aWVzKHNpZ25pbmdQcm9wZXJ0aWVzKTtcbiAgICAgICAgY29uc3QgY29uZmlnUmVzb2x2ZWRTaWduaW5nUmVnaW9uU2V0ID0gYXdhaXQgY29uZmlnLnNpZ3Y0YVNpZ25pbmdSZWdpb25TZXQ/LigpO1xuICAgICAgICBjb25zdCBtdWx0aVJlZ2lvbk92ZXJyaWRlID0gKGNvbmZpZ1Jlc29sdmVkU2lnbmluZ1JlZ2lvblNldCA/P1xuICAgICAgICAgICAgc2lnbmluZ1JlZ2lvblNldCA/PyBbc2lnbmluZ1JlZ2lvbl0pLmpvaW4oXCIsXCIpO1xuICAgICAgICBjb25zdCBzaWduZWRSZXF1ZXN0ID0gYXdhaXQgc2lnbmVyLnNpZ24oaHR0cFJlcXVlc3QsIHtcbiAgICAgICAgICAgIHNpZ25pbmdEYXRlOiBnZXRTa2V3Q29ycmVjdGVkRGF0ZShjb25maWcuc3lzdGVtQ2xvY2tPZmZzZXQpLFxuICAgICAgICAgICAgc2lnbmluZ1JlZ2lvbjogbXVsdGlSZWdpb25PdmVycmlkZSxcbiAgICAgICAgICAgIHNpZ25pbmdTZXJ2aWNlOiBzaWduaW5nTmFtZSxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBzaWduZWRSZXF1ZXN0O1xuICAgIH1cbn1cbiIsICJleHBvcnQgY29uc3QgZ2V0QXJyYXlGb3JDb21tYVNlcGFyYXRlZFN0cmluZyA9IChzdHIpID0+IHR5cGVvZiBzdHIgPT09IFwic3RyaW5nXCIgJiYgc3RyLmxlbmd0aCA+IDAgPyBzdHIuc3BsaXQoXCIsXCIpLm1hcCgoaXRlbSkgPT4gaXRlbS50cmltKCkpIDogW107XG4iLCAiZXhwb3J0IGNvbnN0IGdldEJlYXJlclRva2VuRW52S2V5ID0gKHNpZ25pbmdOYW1lKSA9PiBgQVdTX0JFQVJFUl9UT0tFTl8ke3NpZ25pbmdOYW1lLnJlcGxhY2UoL1tcXHMtXS9nLCBcIl9cIikudG9VcHBlckNhc2UoKX1gO1xuIiwgImltcG9ydCB7IGdldEFycmF5Rm9yQ29tbWFTZXBhcmF0ZWRTdHJpbmcgfSBmcm9tIFwiLi4vdXRpbHMvZ2V0QXJyYXlGb3JDb21tYVNlcGFyYXRlZFN0cmluZ1wiO1xuaW1wb3J0IHsgZ2V0QmVhcmVyVG9rZW5FbnZLZXkgfSBmcm9tIFwiLi4vdXRpbHMvZ2V0QmVhcmVyVG9rZW5FbnZLZXlcIjtcbmNvbnN0IE5PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9FTlZfS0VZID0gXCJBV1NfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRVwiO1xuY29uc3QgTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX0NPTkZJR19LRVkgPSBcImF1dGhfc2NoZW1lX3ByZWZlcmVuY2VcIjtcbmV4cG9ydCBjb25zdCBOT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfT1BUSU9OUyA9IHtcbiAgICBlbnZpcm9ubWVudFZhcmlhYmxlU2VsZWN0b3I6IChlbnYsIG9wdGlvbnMpID0+IHtcbiAgICAgICAgaWYgKG9wdGlvbnM/LnNpZ25pbmdOYW1lKSB7XG4gICAgICAgICAgICBjb25zdCBiZWFyZXJUb2tlbktleSA9IGdldEJlYXJlclRva2VuRW52S2V5KG9wdGlvbnMuc2lnbmluZ05hbWUpO1xuICAgICAgICAgICAgaWYgKGJlYXJlclRva2VuS2V5IGluIGVudilcbiAgICAgICAgICAgICAgICByZXR1cm4gW1wiaHR0cEJlYXJlckF1dGhcIl07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCEoTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX0VOVl9LRVkgaW4gZW52KSlcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIHJldHVybiBnZXRBcnJheUZvckNvbW1hU2VwYXJhdGVkU3RyaW5nKGVudltOT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfRU5WX0tFWV0pO1xuICAgIH0sXG4gICAgY29uZmlnRmlsZVNlbGVjdG9yOiAocHJvZmlsZSkgPT4ge1xuICAgICAgICBpZiAoIShOT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfQ09ORklHX0tFWSBpbiBwcm9maWxlKSlcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIHJldHVybiBnZXRBcnJheUZvckNvbW1hU2VwYXJhdGVkU3RyaW5nKHByb2ZpbGVbTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX0NPTkZJR19LRVldKTtcbiAgICB9LFxuICAgIGRlZmF1bHQ6IFtdLFxufTtcbiIsICJpbXBvcnQgeyBub3JtYWxpemVQcm92aWRlciB9IGZyb20gXCJAc21pdGh5L2NvcmVcIjtcbmltcG9ydCB7IFByb3ZpZGVyRXJyb3IgfSBmcm9tIFwiQHNtaXRoeS9wcm9wZXJ0eS1wcm92aWRlclwiO1xuZXhwb3J0IGNvbnN0IHJlc29sdmVBd3NTZGtTaWdWNEFDb25maWcgPSAoY29uZmlnKSA9PiB7XG4gICAgY29uZmlnLnNpZ3Y0YVNpZ25pbmdSZWdpb25TZXQgPSBub3JtYWxpemVQcm92aWRlcihjb25maWcuc2lndjRhU2lnbmluZ1JlZ2lvblNldCk7XG4gICAgcmV0dXJuIGNvbmZpZztcbn07XG5leHBvcnQgY29uc3QgTk9ERV9TSUdWNEFfQ09ORklHX09QVElPTlMgPSB7XG4gICAgZW52aXJvbm1lbnRWYXJpYWJsZVNlbGVjdG9yKGVudikge1xuICAgICAgICBpZiAoZW52LkFXU19TSUdWNEFfU0lHTklOR19SRUdJT05fU0VUKSB7XG4gICAgICAgICAgICByZXR1cm4gZW52LkFXU19TSUdWNEFfU0lHTklOR19SRUdJT05fU0VULnNwbGl0KFwiLFwiKS5tYXAoKF8pID0+IF8udHJpbSgpKTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBuZXcgUHJvdmlkZXJFcnJvcihcIkFXU19TSUdWNEFfU0lHTklOR19SRUdJT05fU0VUIG5vdCBzZXQgaW4gZW52LlwiLCB7XG4gICAgICAgICAgICB0cnlOZXh0TGluazogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgfSxcbiAgICBjb25maWdGaWxlU2VsZWN0b3IocHJvZmlsZSkge1xuICAgICAgICBpZiAocHJvZmlsZS5zaWd2NGFfc2lnbmluZ19yZWdpb25fc2V0KSB7XG4gICAgICAgICAgICByZXR1cm4gKHByb2ZpbGUuc2lndjRhX3NpZ25pbmdfcmVnaW9uX3NldCA/PyBcIlwiKS5zcGxpdChcIixcIikubWFwKChfKSA9PiBfLnRyaW0oKSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgbmV3IFByb3ZpZGVyRXJyb3IoXCJzaWd2NGFfc2lnbmluZ19yZWdpb25fc2V0IG5vdCBzZXQgaW4gcHJvZmlsZS5cIiwge1xuICAgICAgICAgICAgdHJ5TmV4dExpbms6IHRydWUsXG4gICAgICAgIH0pO1xuICAgIH0sXG4gICAgZGVmYXVsdDogdW5kZWZpbmVkLFxufTtcbiIsICJpbXBvcnQgeyBzZXRDcmVkZW50aWFsRmVhdHVyZSB9IGZyb20gXCJAYXdzLXNkay9jb3JlL2NsaWVudFwiO1xuaW1wb3J0IHsgZG9lc0lkZW50aXR5UmVxdWlyZVJlZnJlc2gsIGlzSWRlbnRpdHlFeHBpcmVkLCBtZW1vaXplSWRlbnRpdHlQcm92aWRlciwgbm9ybWFsaXplUHJvdmlkZXIsIH0gZnJvbSBcIkBzbWl0aHkvY29yZVwiO1xuaW1wb3J0IHsgU2lnbmF0dXJlVjQgfSBmcm9tIFwiQHNtaXRoeS9zaWduYXR1cmUtdjRcIjtcbmV4cG9ydCBjb25zdCByZXNvbHZlQXdzU2RrU2lnVjRDb25maWcgPSAoY29uZmlnKSA9PiB7XG4gICAgbGV0IGlucHV0Q3JlZGVudGlhbHMgPSBjb25maWcuY3JlZGVudGlhbHM7XG4gICAgbGV0IGlzVXNlclN1cHBsaWVkID0gISFjb25maWcuY3JlZGVudGlhbHM7XG4gICAgbGV0IHJlc29sdmVkQ3JlZGVudGlhbHMgPSB1bmRlZmluZWQ7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNvbmZpZywgXCJjcmVkZW50aWFsc1wiLCB7XG4gICAgICAgIHNldChjcmVkZW50aWFscykge1xuICAgICAgICAgICAgaWYgKGNyZWRlbnRpYWxzICYmIGNyZWRlbnRpYWxzICE9PSBpbnB1dENyZWRlbnRpYWxzICYmIGNyZWRlbnRpYWxzICE9PSByZXNvbHZlZENyZWRlbnRpYWxzKSB7XG4gICAgICAgICAgICAgICAgaXNVc2VyU3VwcGxpZWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaW5wdXRDcmVkZW50aWFscyA9IGNyZWRlbnRpYWxzO1xuICAgICAgICAgICAgY29uc3QgbWVtb2l6ZWRQcm92aWRlciA9IG5vcm1hbGl6ZUNyZWRlbnRpYWxQcm92aWRlcihjb25maWcsIHtcbiAgICAgICAgICAgICAgICBjcmVkZW50aWFsczogaW5wdXRDcmVkZW50aWFscyxcbiAgICAgICAgICAgICAgICBjcmVkZW50aWFsRGVmYXVsdFByb3ZpZGVyOiBjb25maWcuY3JlZGVudGlhbERlZmF1bHRQcm92aWRlcixcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29uc3QgYm91bmRQcm92aWRlciA9IGJpbmRDYWxsZXJDb25maWcoY29uZmlnLCBtZW1vaXplZFByb3ZpZGVyKTtcbiAgICAgICAgICAgIGlmIChpc1VzZXJTdXBwbGllZCAmJiAhYm91bmRQcm92aWRlci5hdHRyaWJ1dGVkKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNDcmVkZW50aWFsT2JqZWN0ID0gdHlwZW9mIGlucHV0Q3JlZGVudGlhbHMgPT09IFwib2JqZWN0XCIgJiYgaW5wdXRDcmVkZW50aWFscyAhPT0gbnVsbDtcbiAgICAgICAgICAgICAgICByZXNvbHZlZENyZWRlbnRpYWxzID0gYXN5bmMgKG9wdGlvbnMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY3JlZHMgPSBhd2FpdCBib3VuZFByb3ZpZGVyKG9wdGlvbnMpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhdHRyaWJ1dGVkQ3JlZHMgPSBjcmVkcztcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzQ3JlZGVudGlhbE9iamVjdCAmJiAoIWF0dHJpYnV0ZWRDcmVkcy4kc291cmNlIHx8IE9iamVjdC5rZXlzKGF0dHJpYnV0ZWRDcmVkcy4kc291cmNlKS5sZW5ndGggPT09IDApKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2V0Q3JlZGVudGlhbEZlYXR1cmUoYXR0cmlidXRlZENyZWRzLCBcIkNSRURFTlRJQUxTX0NPREVcIiwgXCJlXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhdHRyaWJ1dGVkQ3JlZHM7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICByZXNvbHZlZENyZWRlbnRpYWxzLm1lbW9pemVkID0gYm91bmRQcm92aWRlci5tZW1vaXplZDtcbiAgICAgICAgICAgICAgICByZXNvbHZlZENyZWRlbnRpYWxzLmNvbmZpZ0JvdW5kID0gYm91bmRQcm92aWRlci5jb25maWdCb3VuZDtcbiAgICAgICAgICAgICAgICByZXNvbHZlZENyZWRlbnRpYWxzLmF0dHJpYnV0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZWRDcmVkZW50aWFscyA9IGJvdW5kUHJvdmlkZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGdldCgpIHtcbiAgICAgICAgICAgIHJldHVybiByZXNvbHZlZENyZWRlbnRpYWxzO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgfSk7XG4gICAgY29uZmlnLmNyZWRlbnRpYWxzID0gaW5wdXRDcmVkZW50aWFscztcbiAgICBjb25zdCB7IHNpZ25pbmdFc2NhcGVQYXRoID0gdHJ1ZSwgc3lzdGVtQ2xvY2tPZmZzZXQgPSBjb25maWcuc3lzdGVtQ2xvY2tPZmZzZXQgfHwgMCwgc2hhMjU2LCB9ID0gY29uZmlnO1xuICAgIGxldCBzaWduZXI7XG4gICAgaWYgKGNvbmZpZy5zaWduZXIpIHtcbiAgICAgICAgc2lnbmVyID0gbm9ybWFsaXplUHJvdmlkZXIoY29uZmlnLnNpZ25lcik7XG4gICAgfVxuICAgIGVsc2UgaWYgKGNvbmZpZy5yZWdpb25JbmZvUHJvdmlkZXIpIHtcbiAgICAgICAgc2lnbmVyID0gKCkgPT4gbm9ybWFsaXplUHJvdmlkZXIoY29uZmlnLnJlZ2lvbikoKVxuICAgICAgICAgICAgLnRoZW4oYXN5bmMgKHJlZ2lvbikgPT4gW1xuICAgICAgICAgICAgKGF3YWl0IGNvbmZpZy5yZWdpb25JbmZvUHJvdmlkZXIocmVnaW9uLCB7XG4gICAgICAgICAgICAgICAgdXNlRmlwc0VuZHBvaW50OiBhd2FpdCBjb25maWcudXNlRmlwc0VuZHBvaW50KCksXG4gICAgICAgICAgICAgICAgdXNlRHVhbHN0YWNrRW5kcG9pbnQ6IGF3YWl0IGNvbmZpZy51c2VEdWFsc3RhY2tFbmRwb2ludCgpLFxuICAgICAgICAgICAgfSkpIHx8IHt9LFxuICAgICAgICAgICAgcmVnaW9uLFxuICAgICAgICBdKVxuICAgICAgICAgICAgLnRoZW4oKFtyZWdpb25JbmZvLCByZWdpb25dKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IHNpZ25pbmdSZWdpb24sIHNpZ25pbmdTZXJ2aWNlIH0gPSByZWdpb25JbmZvO1xuICAgICAgICAgICAgY29uZmlnLnNpZ25pbmdSZWdpb24gPSBjb25maWcuc2lnbmluZ1JlZ2lvbiB8fCBzaWduaW5nUmVnaW9uIHx8IHJlZ2lvbjtcbiAgICAgICAgICAgIGNvbmZpZy5zaWduaW5nTmFtZSA9IGNvbmZpZy5zaWduaW5nTmFtZSB8fCBzaWduaW5nU2VydmljZSB8fCBjb25maWcuc2VydmljZUlkO1xuICAgICAgICAgICAgY29uc3QgcGFyYW1zID0ge1xuICAgICAgICAgICAgICAgIC4uLmNvbmZpZyxcbiAgICAgICAgICAgICAgICBjcmVkZW50aWFsczogY29uZmlnLmNyZWRlbnRpYWxzLFxuICAgICAgICAgICAgICAgIHJlZ2lvbjogY29uZmlnLnNpZ25pbmdSZWdpb24sXG4gICAgICAgICAgICAgICAgc2VydmljZTogY29uZmlnLnNpZ25pbmdOYW1lLFxuICAgICAgICAgICAgICAgIHNoYTI1NixcbiAgICAgICAgICAgICAgICB1cmlFc2NhcGVQYXRoOiBzaWduaW5nRXNjYXBlUGF0aCxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBjb25zdCBTaWduZXJDdG9yID0gY29uZmlnLnNpZ25lckNvbnN0cnVjdG9yIHx8IFNpZ25hdHVyZVY0O1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBTaWduZXJDdG9yKHBhcmFtcyk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgc2lnbmVyID0gYXN5bmMgKGF1dGhTY2hlbWUpID0+IHtcbiAgICAgICAgICAgIGF1dGhTY2hlbWUgPSBPYmplY3QuYXNzaWduKHt9LCB7XG4gICAgICAgICAgICAgICAgbmFtZTogXCJzaWd2NFwiLFxuICAgICAgICAgICAgICAgIHNpZ25pbmdOYW1lOiBjb25maWcuc2lnbmluZ05hbWUgfHwgY29uZmlnLmRlZmF1bHRTaWduaW5nTmFtZSxcbiAgICAgICAgICAgICAgICBzaWduaW5nUmVnaW9uOiBhd2FpdCBub3JtYWxpemVQcm92aWRlcihjb25maWcucmVnaW9uKSgpLFxuICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IHt9LFxuICAgICAgICAgICAgfSwgYXV0aFNjaGVtZSk7XG4gICAgICAgICAgICBjb25zdCBzaWduaW5nUmVnaW9uID0gYXV0aFNjaGVtZS5zaWduaW5nUmVnaW9uO1xuICAgICAgICAgICAgY29uc3Qgc2lnbmluZ1NlcnZpY2UgPSBhdXRoU2NoZW1lLnNpZ25pbmdOYW1lO1xuICAgICAgICAgICAgY29uZmlnLnNpZ25pbmdSZWdpb24gPSBjb25maWcuc2lnbmluZ1JlZ2lvbiB8fCBzaWduaW5nUmVnaW9uO1xuICAgICAgICAgICAgY29uZmlnLnNpZ25pbmdOYW1lID0gY29uZmlnLnNpZ25pbmdOYW1lIHx8IHNpZ25pbmdTZXJ2aWNlIHx8IGNvbmZpZy5zZXJ2aWNlSWQ7XG4gICAgICAgICAgICBjb25zdCBwYXJhbXMgPSB7XG4gICAgICAgICAgICAgICAgLi4uY29uZmlnLFxuICAgICAgICAgICAgICAgIGNyZWRlbnRpYWxzOiBjb25maWcuY3JlZGVudGlhbHMsXG4gICAgICAgICAgICAgICAgcmVnaW9uOiBjb25maWcuc2lnbmluZ1JlZ2lvbixcbiAgICAgICAgICAgICAgICBzZXJ2aWNlOiBjb25maWcuc2lnbmluZ05hbWUsXG4gICAgICAgICAgICAgICAgc2hhMjU2LFxuICAgICAgICAgICAgICAgIHVyaUVzY2FwZVBhdGg6IHNpZ25pbmdFc2NhcGVQYXRoLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGNvbnN0IFNpZ25lckN0b3IgPSBjb25maWcuc2lnbmVyQ29uc3RydWN0b3IgfHwgU2lnbmF0dXJlVjQ7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFNpZ25lckN0b3IocGFyYW1zKTtcbiAgICAgICAgfTtcbiAgICB9XG4gICAgY29uc3QgcmVzb2x2ZWRDb25maWcgPSBPYmplY3QuYXNzaWduKGNvbmZpZywge1xuICAgICAgICBzeXN0ZW1DbG9ja09mZnNldCxcbiAgICAgICAgc2lnbmluZ0VzY2FwZVBhdGgsXG4gICAgICAgIHNpZ25lcixcbiAgICB9KTtcbiAgICByZXR1cm4gcmVzb2x2ZWRDb25maWc7XG59O1xuZXhwb3J0IGNvbnN0IHJlc29sdmVBV1NTREtTaWdWNENvbmZpZyA9IHJlc29sdmVBd3NTZGtTaWdWNENvbmZpZztcbmZ1bmN0aW9uIG5vcm1hbGl6ZUNyZWRlbnRpYWxQcm92aWRlcihjb25maWcsIHsgY3JlZGVudGlhbHMsIGNyZWRlbnRpYWxEZWZhdWx0UHJvdmlkZXIsIH0pIHtcbiAgICBsZXQgY3JlZGVudGlhbHNQcm92aWRlcjtcbiAgICBpZiAoY3JlZGVudGlhbHMpIHtcbiAgICAgICAgaWYgKCFjcmVkZW50aWFscz8ubWVtb2l6ZWQpIHtcbiAgICAgICAgICAgIGNyZWRlbnRpYWxzUHJvdmlkZXIgPSBtZW1vaXplSWRlbnRpdHlQcm92aWRlcihjcmVkZW50aWFscywgaXNJZGVudGl0eUV4cGlyZWQsIGRvZXNJZGVudGl0eVJlcXVpcmVSZWZyZXNoKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNyZWRlbnRpYWxzUHJvdmlkZXIgPSBjcmVkZW50aWFscztcbiAgICAgICAgfVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgaWYgKGNyZWRlbnRpYWxEZWZhdWx0UHJvdmlkZXIpIHtcbiAgICAgICAgICAgIGNyZWRlbnRpYWxzUHJvdmlkZXIgPSBub3JtYWxpemVQcm92aWRlcihjcmVkZW50aWFsRGVmYXVsdFByb3ZpZGVyKE9iamVjdC5hc3NpZ24oe30sIGNvbmZpZywge1xuICAgICAgICAgICAgICAgIHBhcmVudENsaWVudENvbmZpZzogY29uZmlnLFxuICAgICAgICAgICAgfSkpKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNyZWRlbnRpYWxzUHJvdmlkZXIgPSBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQGF3cy1zZGsvY29yZTo6cmVzb2x2ZUF3c1Nka1NpZ1Y0Q29uZmlnIC0gYGNyZWRlbnRpYWxzYCBub3QgcHJvdmlkZWQgYW5kIG5vIGNyZWRlbnRpYWxEZWZhdWx0UHJvdmlkZXIgd2FzIGNvbmZpZ3VyZWQuXCIpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjcmVkZW50aWFsc1Byb3ZpZGVyLm1lbW9pemVkID0gdHJ1ZTtcbiAgICByZXR1cm4gY3JlZGVudGlhbHNQcm92aWRlcjtcbn1cbmZ1bmN0aW9uIGJpbmRDYWxsZXJDb25maWcoY29uZmlnLCBjcmVkZW50aWFsc1Byb3ZpZGVyKSB7XG4gICAgaWYgKGNyZWRlbnRpYWxzUHJvdmlkZXIuY29uZmlnQm91bmQpIHtcbiAgICAgICAgcmV0dXJuIGNyZWRlbnRpYWxzUHJvdmlkZXI7XG4gICAgfVxuICAgIGNvbnN0IGZuID0gYXN5bmMgKG9wdGlvbnMpID0+IGNyZWRlbnRpYWxzUHJvdmlkZXIoeyAuLi5vcHRpb25zLCBjYWxsZXJDbGllbnRDb25maWc6IGNvbmZpZyB9KTtcbiAgICBmbi5tZW1vaXplZCA9IGNyZWRlbnRpYWxzUHJvdmlkZXIubWVtb2l6ZWQ7XG4gICAgZm4uY29uZmlnQm91bmQgPSB0cnVlO1xuICAgIHJldHVybiBmbjtcbn1cbiIsICJleHBvcnQgeyBBd3NTZGtTaWdWNFNpZ25lciwgQVdTU0RLU2lnVjRTaWduZXIsIHZhbGlkYXRlU2lnbmluZ1Byb3BlcnRpZXMgfSBmcm9tIFwiLi9Bd3NTZGtTaWdWNFNpZ25lclwiO1xuZXhwb3J0IHsgQXdzU2RrU2lnVjRBU2lnbmVyIH0gZnJvbSBcIi4vQXdzU2RrU2lnVjRBU2lnbmVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9OT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfT1BUSU9OU1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcmVzb2x2ZUF3c1Nka1NpZ1Y0QUNvbmZpZ1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcmVzb2x2ZUF3c1Nka1NpZ1Y0Q29uZmlnXCI7XG4iLCAiZXhwb3J0ICogZnJvbSBcIi4vYXdzX3Nka1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vdXRpbHMvZ2V0QmVhcmVyVG9rZW5FbnZLZXlcIjtcbiIsICJpbXBvcnQgeyByZXNvbHZlQXdzU2RrU2lnVjRDb25maWcgfSBmcm9tIFwiQGF3cy1zZGsvY29yZS9odHRwQXV0aFNjaGVtZXNcIjtcbmltcG9ydCB7IGdldFNtaXRoeUNvbnRleHQsIG5vcm1hbGl6ZVByb3ZpZGVyIH0gZnJvbSBcIkBzbWl0aHkvdXRpbC1taWRkbGV3YXJlXCI7XG5leHBvcnQgY29uc3QgZGVmYXVsdFNTT09JRENIdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlciA9IGFzeW5jIChjb25maWcsIGNvbnRleHQsIGlucHV0KSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgb3BlcmF0aW9uOiBnZXRTbWl0aHlDb250ZXh0KGNvbnRleHQpLm9wZXJhdGlvbixcbiAgICAgICAgcmVnaW9uOiAoYXdhaXQgbm9ybWFsaXplUHJvdmlkZXIoY29uZmlnLnJlZ2lvbikoKSkgfHxcbiAgICAgICAgICAgICgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiZXhwZWN0ZWQgYHJlZ2lvbmAgdG8gYmUgY29uZmlndXJlZCBmb3IgYGF3cy5hdXRoI3NpZ3Y0YFwiKTtcbiAgICAgICAgICAgIH0pKCksXG4gICAgfTtcbn07XG5mdW5jdGlvbiBjcmVhdGVBd3NBdXRoU2lndjRIdHRwQXV0aE9wdGlvbihhdXRoUGFyYW1ldGVycykge1xuICAgIHJldHVybiB7XG4gICAgICAgIHNjaGVtZUlkOiBcImF3cy5hdXRoI3NpZ3Y0XCIsXG4gICAgICAgIHNpZ25pbmdQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICBuYW1lOiBcInNzby1vYXV0aFwiLFxuICAgICAgICAgICAgcmVnaW9uOiBhdXRoUGFyYW1ldGVycy5yZWdpb24sXG4gICAgICAgIH0sXG4gICAgICAgIHByb3BlcnRpZXNFeHRyYWN0b3I6IChjb25maWcsIGNvbnRleHQpID0+ICh7XG4gICAgICAgICAgICBzaWduaW5nUHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgIGNvbmZpZyxcbiAgICAgICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgfTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVNtaXRoeUFwaU5vQXV0aEh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc2NoZW1lSWQ6IFwic21pdGh5LmFwaSNub0F1dGhcIixcbiAgICB9O1xufVxuZXhwb3J0IGNvbnN0IGRlZmF1bHRTU09PSURDSHR0cEF1dGhTY2hlbWVQcm92aWRlciA9IChhdXRoUGFyYW1ldGVycykgPT4ge1xuICAgIGNvbnN0IG9wdGlvbnMgPSBbXTtcbiAgICBzd2l0Y2ggKGF1dGhQYXJhbWV0ZXJzLm9wZXJhdGlvbikge1xuICAgICAgICBjYXNlIFwiQ3JlYXRlVG9rZW5cIjoge1xuICAgICAgICAgICAgb3B0aW9ucy5wdXNoKGNyZWF0ZVNtaXRoeUFwaU5vQXV0aEh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICBvcHRpb25zLnB1c2goY3JlYXRlQXdzQXV0aFNpZ3Y0SHR0cEF1dGhPcHRpb24oYXV0aFBhcmFtZXRlcnMpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gb3B0aW9ucztcbn07XG5leHBvcnQgY29uc3QgcmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIGNvbnN0IGNvbmZpZ18wID0gcmVzb2x2ZUF3c1Nka1NpZ1Y0Q29uZmlnKGNvbmZpZyk7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oY29uZmlnXzAsIHtcbiAgICAgICAgYXV0aFNjaGVtZVByZWZlcmVuY2U6IG5vcm1hbGl6ZVByb3ZpZGVyKGNvbmZpZy5hdXRoU2NoZW1lUHJlZmVyZW5jZSA/PyBbXSksXG4gICAgfSk7XG59O1xuIiwgImV4cG9ydCBjb25zdCByZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzID0gKG9wdGlvbnMpID0+IHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihvcHRpb25zLCB7XG4gICAgICAgIHVzZUR1YWxzdGFja0VuZHBvaW50OiBvcHRpb25zLnVzZUR1YWxzdGFja0VuZHBvaW50ID8/IGZhbHNlLFxuICAgICAgICB1c2VGaXBzRW5kcG9pbnQ6IG9wdGlvbnMudXNlRmlwc0VuZHBvaW50ID8/IGZhbHNlLFxuICAgICAgICBkZWZhdWx0U2lnbmluZ05hbWU6IFwic3NvLW9hdXRoXCIsXG4gICAgfSk7XG59O1xuZXhwb3J0IGNvbnN0IGNvbW1vblBhcmFtcyA9IHtcbiAgICBVc2VGSVBTOiB7IHR5cGU6IFwiYnVpbHRJblBhcmFtc1wiLCBuYW1lOiBcInVzZUZpcHNFbmRwb2ludFwiIH0sXG4gICAgRW5kcG9pbnQ6IHsgdHlwZTogXCJidWlsdEluUGFyYW1zXCIsIG5hbWU6IFwiZW5kcG9pbnRcIiB9LFxuICAgIFJlZ2lvbjogeyB0eXBlOiBcImJ1aWx0SW5QYXJhbXNcIiwgbmFtZTogXCJyZWdpb25cIiB9LFxuICAgIFVzZUR1YWxTdGFjazogeyB0eXBlOiBcImJ1aWx0SW5QYXJhbXNcIiwgbmFtZTogXCJ1c2VEdWFsc3RhY2tFbmRwb2ludFwiIH0sXG59O1xuIiwgIntcbiAgXCJuYW1lXCI6IFwiQGF3cy1zZGsvbmVzdGVkLWNsaWVudHNcIixcbiAgXCJ2ZXJzaW9uXCI6IFwiMy45OTcuNlwiLFxuICBcImRlc2NyaXB0aW9uXCI6IFwiTmVzdGVkIGNsaWVudHMgZm9yIEFXUyBTREsgcGFja2FnZXMuXCIsXG4gIFwibWFpblwiOiBcIi4vZGlzdC1janMvaW5kZXguanNcIixcbiAgXCJtb2R1bGVcIjogXCIuL2Rpc3QtZXMvaW5kZXguanNcIixcbiAgXCJ0eXBlc1wiOiBcIi4vZGlzdC10eXBlcy9pbmRleC5kLnRzXCIsXG4gIFwic2NyaXB0c1wiOiB7XG4gICAgXCJidWlsZFwiOiBcInlhcm4gbGludCAmJiBjb25jdXJyZW50bHkgJ3lhcm46YnVpbGQ6dHlwZXMnICd5YXJuOmJ1aWxkOmVzJyAmJiB5YXJuIGJ1aWxkOmNqc1wiLFxuICAgIFwiYnVpbGQ6Y2pzXCI6IFwibm9kZSAuLi8uLi9zY3JpcHRzL2NvbXBpbGF0aW9uL2lubGluZSBuZXN0ZWQtY2xpZW50c1wiLFxuICAgIFwiYnVpbGQ6ZXNcIjogXCJ0c2MgLXAgdHNjb25maWcuZXMuanNvblwiLFxuICAgIFwiYnVpbGQ6aW5jbHVkZTpkZXBzXCI6IFwieWFybiBnOnR1cmJvIHJ1biBidWlsZCAtRj1cXFwiJG5wbV9wYWNrYWdlX25hbWVcXFwiXCIsXG4gICAgXCJidWlsZDp0eXBlc1wiOiBcInRzYyAtcCB0c2NvbmZpZy50eXBlcy5qc29uXCIsXG4gICAgXCJidWlsZDp0eXBlczpkb3dubGV2ZWxcIjogXCJkb3dubGV2ZWwtZHRzIGRpc3QtdHlwZXMgZGlzdC10eXBlcy90czMuNFwiLFxuICAgIFwiY2xlYW5cIjogXCJwcmVtb3ZlIGRpc3QtY2pzIGRpc3QtZXMgZGlzdC10eXBlcyB0c2NvbmZpZy5janMudHNidWlsZGluZm8gdHNjb25maWcuZXMudHNidWlsZGluZm8gdHNjb25maWcudHlwZXMudHNidWlsZGluZm9cIixcbiAgICBcImxpbnRcIjogXCJub2RlIC4uLy4uL3NjcmlwdHMvdmFsaWRhdGlvbi9zdWJtb2R1bGVzLWxpbnRlci5qcyAtLXBrZyBuZXN0ZWQtY2xpZW50c1wiLFxuICAgIFwidGVzdFwiOiBcInlhcm4gZzp2aXRlc3QgcnVuXCIsXG4gICAgXCJ0ZXN0OndhdGNoXCI6IFwieWFybiBnOnZpdGVzdCB3YXRjaFwiXG4gIH0sXG4gIFwiZW5naW5lc1wiOiB7XG4gICAgXCJub2RlXCI6IFwiPj0yMC4wLjBcIlxuICB9LFxuICBcInNpZGVFZmZlY3RzXCI6IGZhbHNlLFxuICBcImF1dGhvclwiOiB7XG4gICAgXCJuYW1lXCI6IFwiQVdTIFNESyBmb3IgSmF2YVNjcmlwdCBUZWFtXCIsXG4gICAgXCJ1cmxcIjogXCJodHRwczovL2F3cy5hbWF6b24uY29tL2phdmFzY3JpcHQvXCJcbiAgfSxcbiAgXCJsaWNlbnNlXCI6IFwiQXBhY2hlLTIuMFwiLFxuICBcImRlcGVuZGVuY2llc1wiOiB7XG4gICAgXCJAYXdzLWNyeXB0by9zaGEyNTYtYnJvd3NlclwiOiBcIjUuMi4wXCIsXG4gICAgXCJAYXdzLWNyeXB0by9zaGEyNTYtanNcIjogXCI1LjIuMFwiLFxuICAgIFwiQGF3cy1zZGsvY29yZVwiOiBcIl4zLjk3NC44XCIsXG4gICAgXCJAYXdzLXNkay9taWRkbGV3YXJlLWhvc3QtaGVhZGVyXCI6IFwiXjMuOTcyLjEwXCIsXG4gICAgXCJAYXdzLXNkay9taWRkbGV3YXJlLWxvZ2dlclwiOiBcIl4zLjk3Mi4xMFwiLFxuICAgIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1yZWN1cnNpb24tZGV0ZWN0aW9uXCI6IFwiXjMuOTcyLjExXCIsXG4gICAgXCJAYXdzLXNkay9taWRkbGV3YXJlLXVzZXItYWdlbnRcIjogXCJeMy45NzIuMzhcIixcbiAgICBcIkBhd3Mtc2RrL3JlZ2lvbi1jb25maWctcmVzb2x2ZXJcIjogXCJeMy45NzIuMTNcIixcbiAgICBcIkBhd3Mtc2RrL3NpZ25hdHVyZS12NC1tdWx0aS1yZWdpb25cIjogXCJeMy45OTYuMjVcIixcbiAgICBcIkBhd3Mtc2RrL3R5cGVzXCI6IFwiXjMuOTczLjhcIixcbiAgICBcIkBhd3Mtc2RrL3V0aWwtZW5kcG9pbnRzXCI6IFwiXjMuOTk2LjhcIixcbiAgICBcIkBhd3Mtc2RrL3V0aWwtdXNlci1hZ2VudC1icm93c2VyXCI6IFwiXjMuOTcyLjEwXCIsXG4gICAgXCJAYXdzLXNkay91dGlsLXVzZXItYWdlbnQtbm9kZVwiOiBcIl4zLjk3My4yNFwiLFxuICAgIFwiQHNtaXRoeS9jb25maWctcmVzb2x2ZXJcIjogXCJeNC40LjE3XCIsXG4gICAgXCJAc21pdGh5L2NvcmVcIjogXCJeMy4yMy4xN1wiLFxuICAgIFwiQHNtaXRoeS9mZXRjaC1odHRwLWhhbmRsZXJcIjogXCJeNS4zLjE3XCIsXG4gICAgXCJAc21pdGh5L2hhc2gtbm9kZVwiOiBcIl40LjIuMTRcIixcbiAgICBcIkBzbWl0aHkvaW52YWxpZC1kZXBlbmRlbmN5XCI6IFwiXjQuMi4xNFwiLFxuICAgIFwiQHNtaXRoeS9taWRkbGV3YXJlLWNvbnRlbnQtbGVuZ3RoXCI6IFwiXjQuMi4xNFwiLFxuICAgIFwiQHNtaXRoeS9taWRkbGV3YXJlLWVuZHBvaW50XCI6IFwiXjQuNC4zMlwiLFxuICAgIFwiQHNtaXRoeS9taWRkbGV3YXJlLXJldHJ5XCI6IFwiXjQuNS43XCIsXG4gICAgXCJAc21pdGh5L21pZGRsZXdhcmUtc2VyZGVcIjogXCJeNC4yLjIwXCIsXG4gICAgXCJAc21pdGh5L21pZGRsZXdhcmUtc3RhY2tcIjogXCJeNC4yLjE0XCIsXG4gICAgXCJAc21pdGh5L25vZGUtY29uZmlnLXByb3ZpZGVyXCI6IFwiXjQuMy4xNFwiLFxuICAgIFwiQHNtaXRoeS9ub2RlLWh0dHAtaGFuZGxlclwiOiBcIl40LjYuMVwiLFxuICAgIFwiQHNtaXRoeS9wcm90b2NvbC1odHRwXCI6IFwiXjUuMy4xNFwiLFxuICAgIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI6IFwiXjQuMTIuMTNcIixcbiAgICBcIkBzbWl0aHkvdHlwZXNcIjogXCJeNC4xNC4xXCIsXG4gICAgXCJAc21pdGh5L3VybC1wYXJzZXJcIjogXCJeNC4yLjE0XCIsXG4gICAgXCJAc21pdGh5L3V0aWwtYmFzZTY0XCI6IFwiXjQuMy4yXCIsXG4gICAgXCJAc21pdGh5L3V0aWwtYm9keS1sZW5ndGgtYnJvd3NlclwiOiBcIl40LjIuMlwiLFxuICAgIFwiQHNtaXRoeS91dGlsLWJvZHktbGVuZ3RoLW5vZGVcIjogXCJeNC4yLjNcIixcbiAgICBcIkBzbWl0aHkvdXRpbC1kZWZhdWx0cy1tb2RlLWJyb3dzZXJcIjogXCJeNC4zLjQ5XCIsXG4gICAgXCJAc21pdGh5L3V0aWwtZGVmYXVsdHMtbW9kZS1ub2RlXCI6IFwiXjQuMi41NFwiLFxuICAgIFwiQHNtaXRoeS91dGlsLWVuZHBvaW50c1wiOiBcIl4zLjQuMlwiLFxuICAgIFwiQHNtaXRoeS91dGlsLW1pZGRsZXdhcmVcIjogXCJeNC4yLjE0XCIsXG4gICAgXCJAc21pdGh5L3V0aWwtcmV0cnlcIjogXCJeNC4zLjZcIixcbiAgICBcIkBzbWl0aHkvdXRpbC11dGY4XCI6IFwiXjQuMi4yXCIsXG4gICAgXCJ0c2xpYlwiOiBcIl4yLjYuMlwiXG4gIH0sXG4gIFwiZGV2RGVwZW5kZW5jaWVzXCI6IHtcbiAgICBcImNvbmN1cnJlbnRseVwiOiBcIjcuMC4wXCIsXG4gICAgXCJkb3dubGV2ZWwtZHRzXCI6IFwiMC4xMC4xXCIsXG4gICAgXCJwcmVtb3ZlXCI6IFwiNC4wLjBcIixcbiAgICBcInR5cGVzY3JpcHRcIjogXCJ+NS44LjNcIlxuICB9LFxuICBcInR5cGVzVmVyc2lvbnNcIjoge1xuICAgIFwiPDQuNVwiOiB7XG4gICAgICBcImRpc3QtdHlwZXMvKlwiOiBbXG4gICAgICAgIFwiZGlzdC10eXBlcy90czMuNC8qXCJcbiAgICAgIF1cbiAgICB9XG4gIH0sXG4gIFwiZmlsZXNcIjogW1xuICAgIFwiLi9jb2duaXRvLWlkZW50aXR5LmQudHNcIixcbiAgICBcIi4vY29nbml0by1pZGVudGl0eS5qc1wiLFxuICAgIFwiLi9zaWduaW4uZC50c1wiLFxuICAgIFwiLi9zaWduaW4uanNcIixcbiAgICBcIi4vc3NvLW9pZGMuZC50c1wiLFxuICAgIFwiLi9zc28tb2lkYy5qc1wiLFxuICAgIFwiLi9zc28uZC50c1wiLFxuICAgIFwiLi9zc28uanNcIixcbiAgICBcIi4vc3RzLmQudHNcIixcbiAgICBcIi4vc3RzLmpzXCIsXG4gICAgXCJkaXN0LSovKipcIlxuICBdLFxuICBcImJyb3dzZXJcIjoge1xuICAgIFwiLi9kaXN0LWVzL3N1Ym1vZHVsZXMvY29nbml0by1pZGVudGl0eS9ydW50aW1lQ29uZmlnXCI6IFwiLi9kaXN0LWVzL3N1Ym1vZHVsZXMvY29nbml0by1pZGVudGl0eS9ydW50aW1lQ29uZmlnLmJyb3dzZXJcIixcbiAgICBcIi4vZGlzdC1lcy9zdWJtb2R1bGVzL3NpZ25pbi9ydW50aW1lQ29uZmlnXCI6IFwiLi9kaXN0LWVzL3N1Ym1vZHVsZXMvc2lnbmluL3J1bnRpbWVDb25maWcuYnJvd3NlclwiLFxuICAgIFwiLi9kaXN0LWVzL3N1Ym1vZHVsZXMvc3NvLW9pZGMvcnVudGltZUNvbmZpZ1wiOiBcIi4vZGlzdC1lcy9zdWJtb2R1bGVzL3Nzby1vaWRjL3J1bnRpbWVDb25maWcuYnJvd3NlclwiLFxuICAgIFwiLi9kaXN0LWVzL3N1Ym1vZHVsZXMvc3NvL3J1bnRpbWVDb25maWdcIjogXCIuL2Rpc3QtZXMvc3VibW9kdWxlcy9zc28vcnVudGltZUNvbmZpZy5icm93c2VyXCIsXG4gICAgXCIuL2Rpc3QtZXMvc3VibW9kdWxlcy9zdHMvcnVudGltZUNvbmZpZ1wiOiBcIi4vZGlzdC1lcy9zdWJtb2R1bGVzL3N0cy9ydW50aW1lQ29uZmlnLmJyb3dzZXJcIlxuICB9LFxuICBcInJlYWN0LW5hdGl2ZVwiOiB7fSxcbiAgXCJob21lcGFnZVwiOiBcImh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLXNkay1qcy12My90cmVlL21haW4vcGFja2FnZXMvbmVzdGVkLWNsaWVudHNcIixcbiAgXCJyZXBvc2l0b3J5XCI6IHtcbiAgICBcInR5cGVcIjogXCJnaXRcIixcbiAgICBcInVybFwiOiBcImh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLXNkay1qcy12My5naXRcIixcbiAgICBcImRpcmVjdG9yeVwiOiBcInBhY2thZ2VzL25lc3RlZC1jbGllbnRzXCJcbiAgfSxcbiAgXCJleHBvcnRzXCI6IHtcbiAgICBcIi4vcGFja2FnZS5qc29uXCI6IFwiLi9wYWNrYWdlLmpzb25cIixcbiAgICBcIi4vc3NvLW9pZGNcIjoge1xuICAgICAgXCJ0eXBlc1wiOiBcIi4vZGlzdC10eXBlcy9zdWJtb2R1bGVzL3Nzby1vaWRjL2luZGV4LmQudHNcIixcbiAgICAgIFwibW9kdWxlXCI6IFwiLi9kaXN0LWVzL3N1Ym1vZHVsZXMvc3NvLW9pZGMvaW5kZXguanNcIixcbiAgICAgIFwibm9kZVwiOiBcIi4vZGlzdC1janMvc3VibW9kdWxlcy9zc28tb2lkYy9pbmRleC5qc1wiLFxuICAgICAgXCJpbXBvcnRcIjogXCIuL2Rpc3QtZXMvc3VibW9kdWxlcy9zc28tb2lkYy9pbmRleC5qc1wiLFxuICAgICAgXCJyZXF1aXJlXCI6IFwiLi9kaXN0LWNqcy9zdWJtb2R1bGVzL3Nzby1vaWRjL2luZGV4LmpzXCJcbiAgICB9LFxuICAgIFwiLi9zdHNcIjoge1xuICAgICAgXCJ0eXBlc1wiOiBcIi4vZGlzdC10eXBlcy9zdWJtb2R1bGVzL3N0cy9pbmRleC5kLnRzXCIsXG4gICAgICBcIm1vZHVsZVwiOiBcIi4vZGlzdC1lcy9zdWJtb2R1bGVzL3N0cy9pbmRleC5qc1wiLFxuICAgICAgXCJub2RlXCI6IFwiLi9kaXN0LWNqcy9zdWJtb2R1bGVzL3N0cy9pbmRleC5qc1wiLFxuICAgICAgXCJpbXBvcnRcIjogXCIuL2Rpc3QtZXMvc3VibW9kdWxlcy9zdHMvaW5kZXguanNcIixcbiAgICAgIFwicmVxdWlyZVwiOiBcIi4vZGlzdC1janMvc3VibW9kdWxlcy9zdHMvaW5kZXguanNcIlxuICAgIH0sXG4gICAgXCIuL3NpZ25pblwiOiB7XG4gICAgICBcInR5cGVzXCI6IFwiLi9kaXN0LXR5cGVzL3N1Ym1vZHVsZXMvc2lnbmluL2luZGV4LmQudHNcIixcbiAgICAgIFwibW9kdWxlXCI6IFwiLi9kaXN0LWVzL3N1Ym1vZHVsZXMvc2lnbmluL2luZGV4LmpzXCIsXG4gICAgICBcIm5vZGVcIjogXCIuL2Rpc3QtY2pzL3N1Ym1vZHVsZXMvc2lnbmluL2luZGV4LmpzXCIsXG4gICAgICBcImltcG9ydFwiOiBcIi4vZGlzdC1lcy9zdWJtb2R1bGVzL3NpZ25pbi9pbmRleC5qc1wiLFxuICAgICAgXCJyZXF1aXJlXCI6IFwiLi9kaXN0LWNqcy9zdWJtb2R1bGVzL3NpZ25pbi9pbmRleC5qc1wiXG4gICAgfSxcbiAgICBcIi4vY29nbml0by1pZGVudGl0eVwiOiB7XG4gICAgICBcInR5cGVzXCI6IFwiLi9kaXN0LXR5cGVzL3N1Ym1vZHVsZXMvY29nbml0by1pZGVudGl0eS9pbmRleC5kLnRzXCIsXG4gICAgICBcIm1vZHVsZVwiOiBcIi4vZGlzdC1lcy9zdWJtb2R1bGVzL2NvZ25pdG8taWRlbnRpdHkvaW5kZXguanNcIixcbiAgICAgIFwibm9kZVwiOiBcIi4vZGlzdC1janMvc3VibW9kdWxlcy9jb2duaXRvLWlkZW50aXR5L2luZGV4LmpzXCIsXG4gICAgICBcImltcG9ydFwiOiBcIi4vZGlzdC1lcy9zdWJtb2R1bGVzL2NvZ25pdG8taWRlbnRpdHkvaW5kZXguanNcIixcbiAgICAgIFwicmVxdWlyZVwiOiBcIi4vZGlzdC1janMvc3VibW9kdWxlcy9jb2duaXRvLWlkZW50aXR5L2luZGV4LmpzXCJcbiAgICB9LFxuICAgIFwiLi9zc29cIjoge1xuICAgICAgXCJ0eXBlc1wiOiBcIi4vZGlzdC10eXBlcy9zdWJtb2R1bGVzL3Nzby9pbmRleC5kLnRzXCIsXG4gICAgICBcIm1vZHVsZVwiOiBcIi4vZGlzdC1lcy9zdWJtb2R1bGVzL3Nzby9pbmRleC5qc1wiLFxuICAgICAgXCJub2RlXCI6IFwiLi9kaXN0LWNqcy9zdWJtb2R1bGVzL3Nzby9pbmRleC5qc1wiLFxuICAgICAgXCJpbXBvcnRcIjogXCIuL2Rpc3QtZXMvc3VibW9kdWxlcy9zc28vaW5kZXguanNcIixcbiAgICAgIFwicmVxdWlyZVwiOiBcIi4vZGlzdC1janMvc3VibW9kdWxlcy9zc28vaW5kZXguanNcIlxuICAgIH1cbiAgfVxufVxuIiwgIid1c2Ugc3RyaWN0JztcblxudmFyIG5vZGVfb3MgPSByZXF1aXJlKCdub2RlOm9zJyk7XG52YXIgbm9kZV9wcm9jZXNzID0gcmVxdWlyZSgnbm9kZTpwcm9jZXNzJyk7XG52YXIgdXRpbENvbmZpZ1Byb3ZpZGVyID0gcmVxdWlyZSgnQHNtaXRoeS91dGlsLWNvbmZpZy1wcm92aWRlcicpO1xudmFyIHByb21pc2VzID0gcmVxdWlyZSgnbm9kZTpmcy9wcm9taXNlcycpO1xudmFyIG5vZGVfcGF0aCA9IHJlcXVpcmUoJ25vZGU6cGF0aCcpO1xudmFyIG1pZGRsZXdhcmVVc2VyQWdlbnQgPSByZXF1aXJlKCdAYXdzLXNkay9taWRkbGV3YXJlLXVzZXItYWdlbnQnKTtcblxuY29uc3QgZ2V0UnVudGltZVVzZXJBZ2VudFBhaXIgPSAoKSA9PiB7XG4gICAgY29uc3QgcnVudGltZXNUb0NoZWNrID0gW1wiZGVub1wiLCBcImJ1blwiLCBcImxscnRcIl07XG4gICAgZm9yIChjb25zdCBydW50aW1lIG9mIHJ1bnRpbWVzVG9DaGVjaykge1xuICAgICAgICBpZiAobm9kZV9wcm9jZXNzLnZlcnNpb25zW3J1bnRpbWVdKSB7XG4gICAgICAgICAgICByZXR1cm4gW2BtZC8ke3J1bnRpbWV9YCwgbm9kZV9wcm9jZXNzLnZlcnNpb25zW3J1bnRpbWVdXTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gW1wibWQvbm9kZWpzXCIsIG5vZGVfcHJvY2Vzcy52ZXJzaW9ucy5ub2RlXTtcbn07XG5cbmNvbnN0IGdldE5vZGVNb2R1bGVzUGFyZW50RGlycyA9IChkaXJuYW1lKSA9PiB7XG4gICAgY29uc3QgY3dkID0gcHJvY2Vzcy5jd2QoKTtcbiAgICBpZiAoIWRpcm5hbWUpIHtcbiAgICAgICAgcmV0dXJuIFtjd2RdO1xuICAgIH1cbiAgICBjb25zdCBub3JtYWxpemVkUGF0aCA9IG5vZGVfcGF0aC5ub3JtYWxpemUoZGlybmFtZSk7XG4gICAgY29uc3QgcGFydHMgPSBub3JtYWxpemVkUGF0aC5zcGxpdChub2RlX3BhdGguc2VwKTtcbiAgICBjb25zdCBub2RlTW9kdWxlc0luZGV4ID0gcGFydHMuaW5kZXhPZihcIm5vZGVfbW9kdWxlc1wiKTtcbiAgICBjb25zdCBwYXJlbnREaXIgPSBub2RlTW9kdWxlc0luZGV4ICE9PSAtMSA/IHBhcnRzLnNsaWNlKDAsIG5vZGVNb2R1bGVzSW5kZXgpLmpvaW4obm9kZV9wYXRoLnNlcCkgOiBub3JtYWxpemVkUGF0aDtcbiAgICBpZiAoY3dkID09PSBwYXJlbnREaXIpIHtcbiAgICAgICAgcmV0dXJuIFtjd2RdO1xuICAgIH1cbiAgICByZXR1cm4gW3BhcmVudERpciwgY3dkXTtcbn07XG5cbmNvbnN0IFNFTVZFUl9SRUdFWCA9IC9eKDB8WzEtOV1cXGQqKVxcLigwfFsxLTldXFxkKilcXC4oMHxbMS05XVxcZCopKD86LSgoPzowfFsxLTldXFxkKnxcXGQqW2EtekEtWi1dWzAtOWEtekEtWi1dKikoPzpcXC4oPzowfFsxLTldXFxkKnxcXGQqW2EtekEtWi1dWzAtOWEtekEtWi1dKikpKikpPyg/OlxcK1swLTlhLXpBLVotXSsoPzpcXC5bMC05YS16QS1aLV0rKSopPyQvO1xuY29uc3QgZ2V0U2FuaXRpemVkVHlwZVNjcmlwdFZlcnNpb24gPSAodmVyc2lvbiA9IFwiXCIpID0+IHtcbiAgICBjb25zdCBtYXRjaCA9IHZlcnNpb24ubWF0Y2goU0VNVkVSX1JFR0VYKTtcbiAgICBpZiAoIW1hdGNoKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGNvbnN0IFttYWpvciwgbWlub3IsIHBhdGNoLCBwcmVyZWxlYXNlXSA9IFttYXRjaFsxXSwgbWF0Y2hbMl0sIG1hdGNoWzNdLCBtYXRjaFs0XV07XG4gICAgcmV0dXJuIHByZXJlbGVhc2UgPyBgJHttYWpvcn0uJHttaW5vcn0uJHtwYXRjaH0tJHtwcmVyZWxlYXNlfWAgOiBgJHttYWpvcn0uJHttaW5vcn0uJHtwYXRjaH1gO1xufTtcblxuY29uc3QgQUxMT1dFRF9QUkVGSVhFUyA9IFtcIl5cIiwgXCJ+XCIsIFwiPj1cIiwgXCI8PVwiLCBcIj5cIiwgXCI8XCJdO1xuY29uc3QgQUxMT1dFRF9ESVNUX1RBR1MgPSBbXCJsYXRlc3RcIiwgXCJiZXRhXCIsIFwiZGV2XCIsIFwicmNcIiwgXCJpbnNpZGVyc1wiLCBcIm5leHRcIl07XG5jb25zdCBnZXRTYW5pdGl6ZWREZXZUeXBlU2NyaXB0VmVyc2lvbiA9ICh2ZXJzaW9uID0gXCJcIikgPT4ge1xuICAgIGlmIChBTExPV0VEX0RJU1RfVEFHUy5pbmNsdWRlcyh2ZXJzaW9uKSkge1xuICAgICAgICByZXR1cm4gdmVyc2lvbjtcbiAgICB9XG4gICAgY29uc3QgcHJlZml4ID0gQUxMT1dFRF9QUkVGSVhFUy5maW5kKChwKSA9PiB2ZXJzaW9uLnN0YXJ0c1dpdGgocCkpID8/IFwiXCI7XG4gICAgY29uc3Qgc2FuaXRpemVkVHlwZVNjcmlwdFZlcnNpb24gPSBnZXRTYW5pdGl6ZWRUeXBlU2NyaXB0VmVyc2lvbih2ZXJzaW9uLnNsaWNlKHByZWZpeC5sZW5ndGgpKTtcbiAgICBpZiAoIXNhbml0aXplZFR5cGVTY3JpcHRWZXJzaW9uKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHJldHVybiBgJHtwcmVmaXh9JHtzYW5pdGl6ZWRUeXBlU2NyaXB0VmVyc2lvbn1gO1xufTtcblxubGV0IHRzY1ZlcnNpb247XG5jb25zdCBUU19QQUNLQUdFX0pTT04gPSBub2RlX3BhdGguam9pbihcIm5vZGVfbW9kdWxlc1wiLCBcInR5cGVzY3JpcHRcIiwgXCJwYWNrYWdlLmpzb25cIik7XG5jb25zdCBnZXRUeXBlU2NyaXB0VXNlckFnZW50UGFpciA9IGFzeW5jICgpID0+IHtcbiAgICBpZiAodHNjVmVyc2lvbiA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBlbHNlIGlmICh0eXBlb2YgdHNjVmVyc2lvbiA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICByZXR1cm4gW1wibWQvdHNjXCIsIHRzY1ZlcnNpb25dO1xuICAgIH1cbiAgICBsZXQgaXNUeXBlU2NyaXB0RGV0ZWN0aW9uRGlzYWJsZWQgPSBmYWxzZTtcbiAgICB0cnkge1xuICAgICAgICBpc1R5cGVTY3JpcHREZXRlY3Rpb25EaXNhYmxlZCA9XG4gICAgICAgICAgICB1dGlsQ29uZmlnUHJvdmlkZXIuYm9vbGVhblNlbGVjdG9yKHByb2Nlc3MuZW52LCBcIkFXU19TREtfSlNfVFlQRVNDUklQVF9ERVRFQ1RJT05fRElTQUJMRURcIiwgdXRpbENvbmZpZ1Byb3ZpZGVyLlNlbGVjdG9yVHlwZS5FTlYpIHx8IGZhbHNlO1xuICAgIH1cbiAgICBjYXRjaCB7IH1cbiAgICBpZiAoaXNUeXBlU2NyaXB0RGV0ZWN0aW9uRGlzYWJsZWQpIHtcbiAgICAgICAgdHNjVmVyc2lvbiA9IG51bGw7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGNvbnN0IGRpcm5hbWUgPSB0eXBlb2YgX19kaXJuYW1lICE9PSBcInVuZGVmaW5lZFwiID8gX19kaXJuYW1lIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IG5vZGVNb2R1bGVzUGFyZW50RGlycyA9IGdldE5vZGVNb2R1bGVzUGFyZW50RGlycyhkaXJuYW1lKTtcbiAgICBsZXQgdmVyc2lvbkZyb21BcHA7XG4gICAgZm9yIChjb25zdCBub2RlTW9kdWxlc1BhcmVudERpciBvZiBub2RlTW9kdWxlc1BhcmVudERpcnMpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGFwcFBhY2thZ2VKc29uUGF0aCA9IG5vZGVfcGF0aC5qb2luKG5vZGVNb2R1bGVzUGFyZW50RGlyLCBcInBhY2thZ2UuanNvblwiKTtcbiAgICAgICAgICAgIGNvbnN0IHBhY2thZ2VKc29uID0gYXdhaXQgcHJvbWlzZXMucmVhZEZpbGUoYXBwUGFja2FnZUpzb25QYXRoLCBcInV0Zi04XCIpO1xuICAgICAgICAgICAgY29uc3QgeyBkZXBlbmRlbmNpZXMsIGRldkRlcGVuZGVuY2llcyB9ID0gSlNPTi5wYXJzZShwYWNrYWdlSnNvbik7XG4gICAgICAgICAgICBjb25zdCB2ZXJzaW9uID0gZGV2RGVwZW5kZW5jaWVzPy50eXBlc2NyaXB0ID8/IGRlcGVuZGVuY2llcz8udHlwZXNjcmlwdDtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdmVyc2lvbiAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmVyc2lvbkZyb21BcHAgPSB2ZXJzaW9uO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2gge1xuICAgICAgICB9XG4gICAgfVxuICAgIGlmICghdmVyc2lvbkZyb21BcHApIHtcbiAgICAgICAgdHNjVmVyc2lvbiA9IG51bGw7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGxldCB2ZXJzaW9uRnJvbU5vZGVNb2R1bGVzO1xuICAgIGZvciAoY29uc3Qgbm9kZU1vZHVsZXNQYXJlbnREaXIgb2Ygbm9kZU1vZHVsZXNQYXJlbnREaXJzKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCB0c1BhY2thZ2VKc29uUGF0aCA9IG5vZGVfcGF0aC5qb2luKG5vZGVNb2R1bGVzUGFyZW50RGlyLCBUU19QQUNLQUdFX0pTT04pO1xuICAgICAgICAgICAgY29uc3QgcGFja2FnZUpzb24gPSBhd2FpdCBwcm9taXNlcy5yZWFkRmlsZSh0c1BhY2thZ2VKc29uUGF0aCwgXCJ1dGYtOFwiKTtcbiAgICAgICAgICAgIGNvbnN0IHsgdmVyc2lvbiB9ID0gSlNPTi5wYXJzZShwYWNrYWdlSnNvbik7XG4gICAgICAgICAgICBjb25zdCBzYW5pdGl6ZWRWZXJzaW9uID0gZ2V0U2FuaXRpemVkVHlwZVNjcmlwdFZlcnNpb24odmVyc2lvbik7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHNhbml0aXplZFZlcnNpb24gIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZlcnNpb25Gcm9tTm9kZU1vZHVsZXMgPSBzYW5pdGl6ZWRWZXJzaW9uO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2gge1xuICAgICAgICB9XG4gICAgfVxuICAgIGlmICh2ZXJzaW9uRnJvbU5vZGVNb2R1bGVzKSB7XG4gICAgICAgIHRzY1ZlcnNpb24gPSB2ZXJzaW9uRnJvbU5vZGVNb2R1bGVzO1xuICAgICAgICByZXR1cm4gW1wibWQvdHNjXCIsIHRzY1ZlcnNpb25dO1xuICAgIH1cbiAgICBjb25zdCBzYW5pdGl6ZWRWZXJzaW9uID0gZ2V0U2FuaXRpemVkRGV2VHlwZVNjcmlwdFZlcnNpb24odmVyc2lvbkZyb21BcHApO1xuICAgIGlmICh0eXBlb2Ygc2FuaXRpemVkVmVyc2lvbiAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICB0c2NWZXJzaW9uID0gbnVsbDtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgdHNjVmVyc2lvbiA9IGBkZXZfJHtzYW5pdGl6ZWRWZXJzaW9ufWA7XG4gICAgcmV0dXJuIFtcIm1kL3RzY1wiLCB0c2NWZXJzaW9uXTtcbn07XG5cbmNvbnN0IGNydEF2YWlsYWJpbGl0eSA9IHtcbiAgICBpc0NydEF2YWlsYWJsZTogZmFsc2UsXG59O1xuXG5jb25zdCBpc0NydEF2YWlsYWJsZSA9ICgpID0+IHtcbiAgICBpZiAoY3J0QXZhaWxhYmlsaXR5LmlzQ3J0QXZhaWxhYmxlKSB7XG4gICAgICAgIHJldHVybiBbXCJtZC9jcnQtYXZhaWxcIl07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xufTtcblxuY29uc3QgY3JlYXRlRGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyID0gKHsgc2VydmljZUlkLCBjbGllbnRWZXJzaW9uIH0pID0+IHtcbiAgICBjb25zdCBydW50aW1lVXNlckFnZW50UGFpciA9IGdldFJ1bnRpbWVVc2VyQWdlbnRQYWlyKCk7XG4gICAgcmV0dXJuIGFzeW5jIChjb25maWcpID0+IHtcbiAgICAgICAgY29uc3Qgc2VjdGlvbnMgPSBbXG4gICAgICAgICAgICBbXCJhd3Mtc2RrLWpzXCIsIGNsaWVudFZlcnNpb25dLFxuICAgICAgICAgICAgW1widWFcIiwgXCIyLjFcIl0sXG4gICAgICAgICAgICBbYG9zLyR7bm9kZV9vcy5wbGF0Zm9ybSgpfWAsIG5vZGVfb3MucmVsZWFzZSgpXSxcbiAgICAgICAgICAgIFtcImxhbmcvanNcIl0sXG4gICAgICAgICAgICBydW50aW1lVXNlckFnZW50UGFpcixcbiAgICAgICAgXTtcbiAgICAgICAgY29uc3QgdHlwZXNjcmlwdFVzZXJBZ2VudFBhaXIgPSBhd2FpdCBnZXRUeXBlU2NyaXB0VXNlckFnZW50UGFpcigpO1xuICAgICAgICBpZiAodHlwZXNjcmlwdFVzZXJBZ2VudFBhaXIpIHtcbiAgICAgICAgICAgIHNlY3Rpb25zLnB1c2godHlwZXNjcmlwdFVzZXJBZ2VudFBhaXIpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNydEF2YWlsYWJsZSA9IGlzQ3J0QXZhaWxhYmxlKCk7XG4gICAgICAgIGlmIChjcnRBdmFpbGFibGUpIHtcbiAgICAgICAgICAgIHNlY3Rpb25zLnB1c2goY3J0QXZhaWxhYmxlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc2VydmljZUlkKSB7XG4gICAgICAgICAgICBzZWN0aW9ucy5wdXNoKFtgYXBpLyR7c2VydmljZUlkfWAsIGNsaWVudFZlcnNpb25dKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobm9kZV9wcm9jZXNzLmVudi5BV1NfRVhFQ1VUSU9OX0VOVikge1xuICAgICAgICAgICAgc2VjdGlvbnMucHVzaChbYGV4ZWMtZW52LyR7bm9kZV9wcm9jZXNzLmVudi5BV1NfRVhFQ1VUSU9OX0VOVn1gXSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYXBwSWQgPSBhd2FpdCBjb25maWc/LnVzZXJBZ2VudEFwcElkPy4oKTtcbiAgICAgICAgY29uc3QgcmVzb2x2ZWRVc2VyQWdlbnQgPSBhcHBJZCA/IFsuLi5zZWN0aW9ucywgW2BhcHAvJHthcHBJZH1gXV0gOiBbLi4uc2VjdGlvbnNdO1xuICAgICAgICByZXR1cm4gcmVzb2x2ZWRVc2VyQWdlbnQ7XG4gICAgfTtcbn07XG5jb25zdCBkZWZhdWx0VXNlckFnZW50ID0gY3JlYXRlRGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyO1xuXG5jb25zdCBVQV9BUFBfSURfRU5WX05BTUUgPSBcIkFXU19TREtfVUFfQVBQX0lEXCI7XG5jb25zdCBVQV9BUFBfSURfSU5JX05BTUUgPSBcInNka191YV9hcHBfaWRcIjtcbmNvbnN0IFVBX0FQUF9JRF9JTklfTkFNRV9ERVBSRUNBVEVEID0gXCJzZGstdWEtYXBwLWlkXCI7XG5jb25zdCBOT0RFX0FQUF9JRF9DT05GSUdfT1BUSU9OUyA9IHtcbiAgICBlbnZpcm9ubWVudFZhcmlhYmxlU2VsZWN0b3I6IChlbnYpID0+IGVudltVQV9BUFBfSURfRU5WX05BTUVdLFxuICAgIGNvbmZpZ0ZpbGVTZWxlY3RvcjogKHByb2ZpbGUpID0+IHByb2ZpbGVbVUFfQVBQX0lEX0lOSV9OQU1FXSA/PyBwcm9maWxlW1VBX0FQUF9JRF9JTklfTkFNRV9ERVBSRUNBVEVEXSxcbiAgICBkZWZhdWx0OiBtaWRkbGV3YXJlVXNlckFnZW50LkRFRkFVTFRfVUFfQVBQX0lELFxufTtcblxuZXhwb3J0cy5OT0RFX0FQUF9JRF9DT05GSUdfT1BUSU9OUyA9IE5PREVfQVBQX0lEX0NPTkZJR19PUFRJT05TO1xuZXhwb3J0cy5VQV9BUFBfSURfRU5WX05BTUUgPSBVQV9BUFBfSURfRU5WX05BTUU7XG5leHBvcnRzLlVBX0FQUF9JRF9JTklfTkFNRSA9IFVBX0FQUF9JRF9JTklfTkFNRTtcbmV4cG9ydHMuY3JlYXRlRGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyID0gY3JlYXRlRGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyO1xuZXhwb3J0cy5jcnRBdmFpbGFiaWxpdHkgPSBjcnRBdmFpbGFiaWxpdHk7XG5leHBvcnRzLmRlZmF1bHRVc2VyQWdlbnQgPSBkZWZhdWx0VXNlckFnZW50O1xuIiwgImltcG9ydCB7IE5vcm1hbGl6ZWRTY2hlbWEsIFR5cGVSZWdpc3RyeSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2NoZW1hXCI7XG5pbXBvcnQgeyBkZWNvcmF0ZVNlcnZpY2VFeGNlcHRpb24gfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5leHBvcnQgY2xhc3MgUHJvdG9jb2xMaWIge1xuICAgIHF1ZXJ5Q29tcGF0O1xuICAgIGVycm9yUmVnaXN0cnk7XG4gICAgY29uc3RydWN0b3IocXVlcnlDb21wYXQgPSBmYWxzZSkge1xuICAgICAgICB0aGlzLnF1ZXJ5Q29tcGF0ID0gcXVlcnlDb21wYXQ7XG4gICAgfVxuICAgIHJlc29sdmVSZXN0Q29udGVudFR5cGUoZGVmYXVsdENvbnRlbnRUeXBlLCBpbnB1dFNjaGVtYSkge1xuICAgICAgICBjb25zdCBtZW1iZXJzID0gaW5wdXRTY2hlbWEuZ2V0TWVtYmVyU2NoZW1hcygpO1xuICAgICAgICBjb25zdCBodHRwUGF5bG9hZE1lbWJlciA9IE9iamVjdC52YWx1ZXMobWVtYmVycykuZmluZCgobSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuICEhbS5nZXRNZXJnZWRUcmFpdHMoKS5odHRwUGF5bG9hZDtcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChodHRwUGF5bG9hZE1lbWJlcikge1xuICAgICAgICAgICAgY29uc3QgbWVkaWFUeXBlID0gaHR0cFBheWxvYWRNZW1iZXIuZ2V0TWVyZ2VkVHJhaXRzKCkubWVkaWFUeXBlO1xuICAgICAgICAgICAgaWYgKG1lZGlhVHlwZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBtZWRpYVR5cGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChodHRwUGF5bG9hZE1lbWJlci5pc1N0cmluZ1NjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwidGV4dC9wbGFpblwiO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoaHR0cFBheWxvYWRNZW1iZXIuaXNCbG9iU2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW1cIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBkZWZhdWx0Q29udGVudFR5cGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoIWlucHV0U2NoZW1hLmlzVW5pdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICBjb25zdCBoYXNCb2R5ID0gT2JqZWN0LnZhbHVlcyhtZW1iZXJzKS5maW5kKChtKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBodHRwUXVlcnksIGh0dHBRdWVyeVBhcmFtcywgaHR0cEhlYWRlciwgaHR0cExhYmVsLCBodHRwUHJlZml4SGVhZGVycyB9ID0gbS5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBub1ByZWZpeEhlYWRlcnMgPSBodHRwUHJlZml4SGVhZGVycyA9PT0gdm9pZCAwO1xuICAgICAgICAgICAgICAgIHJldHVybiAhaHR0cFF1ZXJ5ICYmICFodHRwUXVlcnlQYXJhbXMgJiYgIWh0dHBIZWFkZXIgJiYgIWh0dHBMYWJlbCAmJiBub1ByZWZpeEhlYWRlcnM7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmIChoYXNCb2R5KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRDb250ZW50VHlwZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBhc3luYyBnZXRFcnJvclNjaGVtYU9yVGhyb3dCYXNlRXhjZXB0aW9uKGVycm9ySWRlbnRpZmllciwgZGVmYXVsdE5hbWVzcGFjZSwgcmVzcG9uc2UsIGRhdGFPYmplY3QsIG1ldGFkYXRhLCBnZXRFcnJvclNjaGVtYSkge1xuICAgICAgICBsZXQgZXJyb3JOYW1lID0gZXJyb3JJZGVudGlmaWVyO1xuICAgICAgICBpZiAoZXJyb3JJZGVudGlmaWVyLmluY2x1ZGVzKFwiI1wiKSkge1xuICAgICAgICAgICAgWywgZXJyb3JOYW1lXSA9IGVycm9ySWRlbnRpZmllci5zcGxpdChcIiNcIik7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZXJyb3JNZXRhZGF0YSA9IHtcbiAgICAgICAgICAgICRtZXRhZGF0YTogbWV0YWRhdGEsXG4gICAgICAgICAgICAkZmF1bHQ6IHJlc3BvbnNlLnN0YXR1c0NvZGUgPCA1MDAgPyBcImNsaWVudFwiIDogXCJzZXJ2ZXJcIixcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKCF0aGlzLmVycm9yUmVnaXN0cnkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkBhd3Mtc2RrL2NvcmUvcHJvdG9jb2xzIC0gZXJyb3IgaGFuZGxlciBub3QgaW5pdGlhbGl6ZWQuXCIpO1xuICAgICAgICB9XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBlcnJvclNjaGVtYSA9IGdldEVycm9yU2NoZW1hPy4odGhpcy5lcnJvclJlZ2lzdHJ5LCBlcnJvck5hbWUpID8/XG4gICAgICAgICAgICAgICAgdGhpcy5lcnJvclJlZ2lzdHJ5LmdldFNjaGVtYShlcnJvcklkZW50aWZpZXIpO1xuICAgICAgICAgICAgcmV0dXJuIHsgZXJyb3JTY2hlbWEsIGVycm9yTWV0YWRhdGEgfTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgZGF0YU9iamVjdC5tZXNzYWdlID0gZGF0YU9iamVjdC5tZXNzYWdlID8/IGRhdGFPYmplY3QuTWVzc2FnZSA/PyBcIlVua25vd25FcnJvclwiO1xuICAgICAgICAgICAgY29uc3Qgc3ludGhldGljID0gdGhpcy5lcnJvclJlZ2lzdHJ5O1xuICAgICAgICAgICAgY29uc3QgYmFzZUV4Y2VwdGlvblNjaGVtYSA9IHN5bnRoZXRpYy5nZXRCYXNlRXhjZXB0aW9uKCk7XG4gICAgICAgICAgICBpZiAoYmFzZUV4Y2VwdGlvblNjaGVtYSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IEVycm9yQ3RvciA9IHN5bnRoZXRpYy5nZXRFcnJvckN0b3IoYmFzZUV4Y2VwdGlvblNjaGVtYSkgPz8gRXJyb3I7XG4gICAgICAgICAgICAgICAgdGhyb3cgdGhpcy5kZWNvcmF0ZVNlcnZpY2VFeGNlcHRpb24oT2JqZWN0LmFzc2lnbihuZXcgRXJyb3JDdG9yKHsgbmFtZTogZXJyb3JOYW1lIH0pLCBlcnJvck1ldGFkYXRhKSwgZGF0YU9iamVjdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBkID0gZGF0YU9iamVjdDtcbiAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBkPy5tZXNzYWdlID8/IGQ/Lk1lc3NhZ2UgPz8gZD8uRXJyb3I/Lk1lc3NhZ2UgPz8gZD8uRXJyb3I/Lm1lc3NhZ2U7XG4gICAgICAgICAgICB0aHJvdyB0aGlzLmRlY29yYXRlU2VydmljZUV4Y2VwdGlvbihPYmplY3QuYXNzaWduKG5ldyBFcnJvcihtZXNzYWdlKSwge1xuICAgICAgICAgICAgICAgIG5hbWU6IGVycm9yTmFtZSxcbiAgICAgICAgICAgIH0sIGVycm9yTWV0YWRhdGEpLCBkYXRhT2JqZWN0KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjb21wb3NlKGNvbXBvc2l0ZSwgZXJyb3JJZGVudGlmaWVyLCBkZWZhdWx0TmFtZXNwYWNlKSB7XG4gICAgICAgIGxldCBuYW1lc3BhY2UgPSBkZWZhdWx0TmFtZXNwYWNlO1xuICAgICAgICBpZiAoZXJyb3JJZGVudGlmaWVyLmluY2x1ZGVzKFwiI1wiKSkge1xuICAgICAgICAgICAgW25hbWVzcGFjZV0gPSBlcnJvcklkZW50aWZpZXIuc3BsaXQoXCIjXCIpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHN0YXRpY1JlZ2lzdHJ5ID0gVHlwZVJlZ2lzdHJ5LmZvcihuYW1lc3BhY2UpO1xuICAgICAgICBjb25zdCBkZWZhdWx0U3ludGhldGljUmVnaXN0cnkgPSBUeXBlUmVnaXN0cnkuZm9yKFwic21pdGh5LnRzLnNkay5zeW50aGV0aWMuXCIgKyBkZWZhdWx0TmFtZXNwYWNlKTtcbiAgICAgICAgY29tcG9zaXRlLmNvcHlGcm9tKHN0YXRpY1JlZ2lzdHJ5KTtcbiAgICAgICAgY29tcG9zaXRlLmNvcHlGcm9tKGRlZmF1bHRTeW50aGV0aWNSZWdpc3RyeSk7XG4gICAgICAgIHRoaXMuZXJyb3JSZWdpc3RyeSA9IGNvbXBvc2l0ZTtcbiAgICB9XG4gICAgZGVjb3JhdGVTZXJ2aWNlRXhjZXB0aW9uKGV4Y2VwdGlvbiwgYWRkaXRpb25zID0ge30pIHtcbiAgICAgICAgaWYgKHRoaXMucXVlcnlDb21wYXQpIHtcbiAgICAgICAgICAgIGNvbnN0IG1zZyA9IGV4Y2VwdGlvbi5NZXNzYWdlID8/IGFkZGl0aW9ucy5NZXNzYWdlO1xuICAgICAgICAgICAgY29uc3QgZXJyb3IgPSBkZWNvcmF0ZVNlcnZpY2VFeGNlcHRpb24oZXhjZXB0aW9uLCBhZGRpdGlvbnMpO1xuICAgICAgICAgICAgaWYgKG1zZykge1xuICAgICAgICAgICAgICAgIGVycm9yLm1lc3NhZ2UgPSBtc2c7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBlcnJvck9iaiA9IGVycm9yLkVycm9yID8/IHt9O1xuICAgICAgICAgICAgZXJyb3JPYmouVHlwZSA9IGVycm9yLkVycm9yPy5UeXBlO1xuICAgICAgICAgICAgZXJyb3JPYmouQ29kZSA9IGVycm9yLkVycm9yPy5Db2RlO1xuICAgICAgICAgICAgZXJyb3JPYmouTWVzc2FnZSA9IGVycm9yLkVycm9yPy5tZXNzYWdlID8/IGVycm9yLkVycm9yPy5NZXNzYWdlID8/IG1zZztcbiAgICAgICAgICAgIGVycm9yLkVycm9yID0gZXJyb3JPYmo7XG4gICAgICAgICAgICBjb25zdCByZXFJZCA9IGVycm9yLiRtZXRhZGF0YS5yZXF1ZXN0SWQ7XG4gICAgICAgICAgICBpZiAocmVxSWQpIHtcbiAgICAgICAgICAgICAgICBlcnJvci5SZXF1ZXN0SWQgPSByZXFJZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBlcnJvcjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGVjb3JhdGVTZXJ2aWNlRXhjZXB0aW9uKGV4Y2VwdGlvbiwgYWRkaXRpb25zKTtcbiAgICB9XG4gICAgc2V0UXVlcnlDb21wYXRFcnJvcihvdXRwdXQsIHJlc3BvbnNlKSB7XG4gICAgICAgIGNvbnN0IHF1ZXJ5RXJyb3JIZWFkZXIgPSByZXNwb25zZS5oZWFkZXJzPy5bXCJ4LWFtem4tcXVlcnktZXJyb3JcIl07XG4gICAgICAgIGlmIChvdXRwdXQgIT09IHVuZGVmaW5lZCAmJiBxdWVyeUVycm9ySGVhZGVyICE9IG51bGwpIHtcbiAgICAgICAgICAgIGNvbnN0IFtDb2RlLCBUeXBlXSA9IHF1ZXJ5RXJyb3JIZWFkZXIuc3BsaXQoXCI7XCIpO1xuICAgICAgICAgICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKG91dHB1dCk7XG4gICAgICAgICAgICBjb25zdCBFcnJvciA9IHtcbiAgICAgICAgICAgICAgICBDb2RlLFxuICAgICAgICAgICAgICAgIFR5cGUsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgb3V0cHV0LkNvZGUgPSBDb2RlO1xuICAgICAgICAgICAgb3V0cHV0LlR5cGUgPSBUeXBlO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgayA9IGtleXNbaV07XG4gICAgICAgICAgICAgICAgRXJyb3JbayA9PT0gXCJtZXNzYWdlXCIgPyBcIk1lc3NhZ2VcIiA6IGtdID0gb3V0cHV0W2tdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVsZXRlIEVycm9yLl9fdHlwZTtcbiAgICAgICAgICAgIG91dHB1dC5FcnJvciA9IEVycm9yO1xuICAgICAgICB9XG4gICAgfVxuICAgIHF1ZXJ5Q29tcGF0T3V0cHV0KHF1ZXJ5Q29tcGF0RXJyb3JEYXRhLCBlcnJvckRhdGEpIHtcbiAgICAgICAgaWYgKHF1ZXJ5Q29tcGF0RXJyb3JEYXRhLkVycm9yKSB7XG4gICAgICAgICAgICBlcnJvckRhdGEuRXJyb3IgPSBxdWVyeUNvbXBhdEVycm9yRGF0YS5FcnJvcjtcbiAgICAgICAgfVxuICAgICAgICBpZiAocXVlcnlDb21wYXRFcnJvckRhdGEuVHlwZSkge1xuICAgICAgICAgICAgZXJyb3JEYXRhLlR5cGUgPSBxdWVyeUNvbXBhdEVycm9yRGF0YS5UeXBlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChxdWVyeUNvbXBhdEVycm9yRGF0YS5Db2RlKSB7XG4gICAgICAgICAgICBlcnJvckRhdGEuQ29kZSA9IHF1ZXJ5Q29tcGF0RXJyb3JEYXRhLkNvZGU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZmluZFF1ZXJ5Q29tcGF0aWJsZUVycm9yKHJlZ2lzdHJ5LCBlcnJvck5hbWUpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiByZWdpc3RyeS5nZXRTY2hlbWEoZXJyb3JOYW1lKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgcmV0dXJuIHJlZ2lzdHJ5LmZpbmQoKHNjaGVtYSkgPT4gTm9ybWFsaXplZFNjaGVtYS5vZihzY2hlbWEpLmdldE1lcmdlZFRyYWl0cygpLmF3c1F1ZXJ5RXJyb3I/LlswXSA9PT0gZXJyb3JOYW1lKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBsb2FkU21pdGh5UnBjVjJDYm9yRXJyb3JDb2RlLCBTbWl0aHlScGNWMkNib3JQcm90b2NvbCB9IGZyb20gXCJAc21pdGh5L2NvcmUvY2JvclwiO1xuaW1wb3J0IHsgTm9ybWFsaXplZFNjaGVtYSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2NoZW1hXCI7XG5pbXBvcnQgeyBQcm90b2NvbExpYiB9IGZyb20gXCIuLi9Qcm90b2NvbExpYlwiO1xuZXhwb3J0IGNsYXNzIEF3c1NtaXRoeVJwY1YyQ2JvclByb3RvY29sIGV4dGVuZHMgU21pdGh5UnBjVjJDYm9yUHJvdG9jb2wge1xuICAgIGF3c1F1ZXJ5Q29tcGF0aWJsZTtcbiAgICBtaXhpbjtcbiAgICBjb25zdHJ1Y3Rvcih7IGRlZmF1bHROYW1lc3BhY2UsIGVycm9yVHlwZVJlZ2lzdHJpZXMsIGF3c1F1ZXJ5Q29tcGF0aWJsZSwgfSkge1xuICAgICAgICBzdXBlcih7IGRlZmF1bHROYW1lc3BhY2UsIGVycm9yVHlwZVJlZ2lzdHJpZXMgfSk7XG4gICAgICAgIHRoaXMuYXdzUXVlcnlDb21wYXRpYmxlID0gISFhd3NRdWVyeUNvbXBhdGlibGU7XG4gICAgICAgIHRoaXMubWl4aW4gPSBuZXcgUHJvdG9jb2xMaWIodGhpcy5hd3NRdWVyeUNvbXBhdGlibGUpO1xuICAgIH1cbiAgICBhc3luYyBzZXJpYWxpemVSZXF1ZXN0KG9wZXJhdGlvblNjaGVtYSwgaW5wdXQsIGNvbnRleHQpIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IGF3YWl0IHN1cGVyLnNlcmlhbGl6ZVJlcXVlc3Qob3BlcmF0aW9uU2NoZW1hLCBpbnB1dCwgY29udGV4dCk7XG4gICAgICAgIGlmICh0aGlzLmF3c1F1ZXJ5Q29tcGF0aWJsZSkge1xuICAgICAgICAgICAgcmVxdWVzdC5oZWFkZXJzW1wieC1hbXpuLXF1ZXJ5LW1vZGVcIl0gPSBcInRydWVcIjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVxdWVzdDtcbiAgICB9XG4gICAgYXN5bmMgaGFuZGxlRXJyb3Iob3BlcmF0aW9uU2NoZW1hLCBjb250ZXh0LCByZXNwb25zZSwgZGF0YU9iamVjdCwgbWV0YWRhdGEpIHtcbiAgICAgICAgaWYgKHRoaXMuYXdzUXVlcnlDb21wYXRpYmxlKSB7XG4gICAgICAgICAgICB0aGlzLm1peGluLnNldFF1ZXJ5Q29tcGF0RXJyb3IoZGF0YU9iamVjdCwgcmVzcG9uc2UpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGVycm9yTmFtZSA9ICgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjb21wYXRIZWFkZXIgPSByZXNwb25zZS5oZWFkZXJzW1wieC1hbXpuLXF1ZXJ5LWVycm9yXCJdO1xuICAgICAgICAgICAgaWYgKGNvbXBhdEhlYWRlciAmJiB0aGlzLmF3c1F1ZXJ5Q29tcGF0aWJsZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBjb21wYXRIZWFkZXIuc3BsaXQoXCI7XCIpWzBdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGxvYWRTbWl0aHlScGNWMkNib3JFcnJvckNvZGUocmVzcG9uc2UsIGRhdGFPYmplY3QpID8/IFwiVW5rbm93blwiO1xuICAgICAgICB9KSgpO1xuICAgICAgICB0aGlzLm1peGluLmNvbXBvc2UodGhpcy5jb21wb3NpdGVFcnJvclJlZ2lzdHJ5LCBlcnJvck5hbWUsIHRoaXMub3B0aW9ucy5kZWZhdWx0TmFtZXNwYWNlKTtcbiAgICAgICAgY29uc3QgeyBlcnJvclNjaGVtYSwgZXJyb3JNZXRhZGF0YSB9ID0gYXdhaXQgdGhpcy5taXhpbi5nZXRFcnJvclNjaGVtYU9yVGhyb3dCYXNlRXhjZXB0aW9uKGVycm9yTmFtZSwgdGhpcy5vcHRpb25zLmRlZmF1bHROYW1lc3BhY2UsIHJlc3BvbnNlLCBkYXRhT2JqZWN0LCBtZXRhZGF0YSwgdGhpcy5hd3NRdWVyeUNvbXBhdGlibGUgPyB0aGlzLm1peGluLmZpbmRRdWVyeUNvbXBhdGlibGVFcnJvciA6IHVuZGVmaW5lZCk7XG4gICAgICAgIGNvbnN0IG5zID0gTm9ybWFsaXplZFNjaGVtYS5vZihlcnJvclNjaGVtYSk7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBkYXRhT2JqZWN0Lm1lc3NhZ2UgPz8gZGF0YU9iamVjdC5NZXNzYWdlID8/IFwiVW5rbm93bkVycm9yXCI7XG4gICAgICAgIGNvbnN0IEVycm9yQ3RvciA9IHRoaXMuY29tcG9zaXRlRXJyb3JSZWdpc3RyeS5nZXRFcnJvckN0b3IoZXJyb3JTY2hlbWEpID8/IEVycm9yO1xuICAgICAgICBjb25zdCBleGNlcHRpb24gPSBuZXcgRXJyb3JDdG9yKG1lc3NhZ2UpO1xuICAgICAgICBjb25zdCBvdXRwdXQgPSB7fTtcbiAgICAgICAgZm9yIChjb25zdCBbbmFtZSwgbWVtYmVyXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICBpZiAoZGF0YU9iamVjdFtuYW1lXSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgb3V0cHV0W25hbWVdID0gdGhpcy5kZXNlcmlhbGl6ZXIucmVhZFZhbHVlKG1lbWJlciwgZGF0YU9iamVjdFtuYW1lXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuYXdzUXVlcnlDb21wYXRpYmxlKSB7XG4gICAgICAgICAgICB0aGlzLm1peGluLnF1ZXJ5Q29tcGF0T3V0cHV0KGRhdGFPYmplY3QsIG91dHB1dCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgdGhpcy5taXhpbi5kZWNvcmF0ZVNlcnZpY2VFeGNlcHRpb24oT2JqZWN0LmFzc2lnbihleGNlcHRpb24sIGVycm9yTWV0YWRhdGEsIHtcbiAgICAgICAgICAgICRmYXVsdDogbnMuZ2V0TWVyZ2VkVHJhaXRzKCkuZXJyb3IsXG4gICAgICAgICAgICBtZXNzYWdlLFxuICAgICAgICB9LCBvdXRwdXQpLCBkYXRhT2JqZWN0KTtcbiAgICB9XG59XG4iLCAiZXhwb3J0IGNvbnN0IF90b1N0ciA9ICh2YWwpID0+IHtcbiAgICBpZiAodmFsID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHZhbDtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB2YWwgPT09IFwibnVtYmVyXCIgfHwgdHlwZW9mIHZhbCA9PT0gXCJiaWdpbnRcIikge1xuICAgICAgICBjb25zdCB3YXJuaW5nID0gbmV3IEVycm9yKGBSZWNlaXZlZCBudW1iZXIgJHt2YWx9IHdoZXJlIGEgc3RyaW5nIHdhcyBleHBlY3RlZC5gKTtcbiAgICAgICAgd2FybmluZy5uYW1lID0gXCJXYXJuaW5nXCI7XG4gICAgICAgIGNvbnNvbGUud2Fybih3YXJuaW5nKTtcbiAgICAgICAgcmV0dXJuIFN0cmluZyh2YWwpO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHZhbCA9PT0gXCJib29sZWFuXCIpIHtcbiAgICAgICAgY29uc3Qgd2FybmluZyA9IG5ldyBFcnJvcihgUmVjZWl2ZWQgYm9vbGVhbiAke3ZhbH0gd2hlcmUgYSBzdHJpbmcgd2FzIGV4cGVjdGVkLmApO1xuICAgICAgICB3YXJuaW5nLm5hbWUgPSBcIldhcm5pbmdcIjtcbiAgICAgICAgY29uc29sZS53YXJuKHdhcm5pbmcpO1xuICAgICAgICByZXR1cm4gU3RyaW5nKHZhbCk7XG4gICAgfVxuICAgIHJldHVybiB2YWw7XG59O1xuZXhwb3J0IGNvbnN0IF90b0Jvb2wgPSAodmFsKSA9PiB7XG4gICAgaWYgKHZhbCA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiB2YWw7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgdmFsID09PSBcIm51bWJlclwiKSB7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgdmFsID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIGNvbnN0IGxvd2VyY2FzZSA9IHZhbC50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBpZiAodmFsICE9PSBcIlwiICYmIGxvd2VyY2FzZSAhPT0gXCJmYWxzZVwiICYmIGxvd2VyY2FzZSAhPT0gXCJ0cnVlXCIpIHtcbiAgICAgICAgICAgIGNvbnN0IHdhcm5pbmcgPSBuZXcgRXJyb3IoYFJlY2VpdmVkIHN0cmluZyBcIiR7dmFsfVwiIHdoZXJlIGEgYm9vbGVhbiB3YXMgZXhwZWN0ZWQuYCk7XG4gICAgICAgICAgICB3YXJuaW5nLm5hbWUgPSBcIldhcm5pbmdcIjtcbiAgICAgICAgICAgIGNvbnNvbGUud2Fybih3YXJuaW5nKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsICE9PSBcIlwiICYmIGxvd2VyY2FzZSAhPT0gXCJmYWxzZVwiO1xuICAgIH1cbiAgICByZXR1cm4gdmFsO1xufTtcbmV4cG9ydCBjb25zdCBfdG9OdW0gPSAodmFsKSA9PiB7XG4gICAgaWYgKHZhbCA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiB2YWw7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgdmFsID09PSBcImJvb2xlYW5cIikge1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHZhbCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICBjb25zdCBudW0gPSBOdW1iZXIodmFsKTtcbiAgICAgICAgaWYgKG51bS50b1N0cmluZygpICE9PSB2YWwpIHtcbiAgICAgICAgICAgIGNvbnN0IHdhcm5pbmcgPSBuZXcgRXJyb3IoYFJlY2VpdmVkIHN0cmluZyBcIiR7dmFsfVwiIHdoZXJlIGEgbnVtYmVyIHdhcyBleHBlY3RlZC5gKTtcbiAgICAgICAgICAgIHdhcm5pbmcubmFtZSA9IFwiV2FybmluZ1wiO1xuICAgICAgICAgICAgY29uc29sZS53YXJuKHdhcm5pbmcpO1xuICAgICAgICAgICAgcmV0dXJuIHZhbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVtO1xuICAgIH1cbiAgICByZXR1cm4gdmFsO1xufTtcbiIsICJleHBvcnQgY2xhc3MgU2VyZGVDb250ZXh0Q29uZmlnIHtcbiAgICBzZXJkZUNvbnRleHQ7XG4gICAgc2V0U2VyZGVDb250ZXh0KHNlcmRlQ29udGV4dCkge1xuICAgICAgICB0aGlzLnNlcmRlQ29udGV4dCA9IHNlcmRlQ29udGV4dDtcbiAgICB9XG59XG4iLCAiZXhwb3J0IGNsYXNzIFVuaW9uU2VyZGUge1xuICAgIGZyb207XG4gICAgdG87XG4gICAga2V5cztcbiAgICBjb25zdHJ1Y3Rvcihmcm9tLCB0bykge1xuICAgICAgICB0aGlzLmZyb20gPSBmcm9tO1xuICAgICAgICB0aGlzLnRvID0gdG87XG4gICAgICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyh0aGlzLmZyb20pO1xuICAgICAgICBjb25zdCBzZXQgPSBuZXcgU2V0KGtleXMpO1xuICAgICAgICBzZXQuZGVsZXRlKFwiX190eXBlXCIpO1xuICAgICAgICB0aGlzLmtleXMgPSBzZXQ7XG4gICAgfVxuICAgIG1hcmsoa2V5KSB7XG4gICAgICAgIHRoaXMua2V5cy5kZWxldGUoa2V5KTtcbiAgICB9XG4gICAgaGFzVW5rbm93bigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMua2V5cy5zaXplID09PSAxICYmIE9iamVjdC5rZXlzKHRoaXMudG8pLmxlbmd0aCA9PT0gMDtcbiAgICB9XG4gICAgd3JpdGVVbmtub3duKCkge1xuICAgICAgICBpZiAodGhpcy5oYXNVbmtub3duKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IGsgPSB0aGlzLmtleXMudmFsdWVzKCkubmV4dCgpLnZhbHVlO1xuICAgICAgICAgICAgY29uc3QgdiA9IHRoaXMuZnJvbVtrXTtcbiAgICAgICAgICAgIHRoaXMudG8uJHVua25vd24gPSBbaywgdl07XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgTnVtZXJpY1ZhbHVlIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zZXJkZVwiO1xuZXhwb3J0IGZ1bmN0aW9uIGpzb25SZXZpdmVyKGtleSwgdmFsdWUsIGNvbnRleHQpIHtcbiAgICBpZiAoY29udGV4dD8uc291cmNlKSB7XG4gICAgICAgIGNvbnN0IG51bWVyaWNTdHJpbmcgPSBjb250ZXh0LnNvdXJjZTtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgaWYgKHZhbHVlID4gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIgfHwgdmFsdWUgPCBOdW1iZXIuTUlOX1NBRkVfSU5URUdFUiB8fCBudW1lcmljU3RyaW5nICE9PSBTdHJpbmcodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNGcmFjdGlvbmFsID0gbnVtZXJpY1N0cmluZy5pbmNsdWRlcyhcIi5cIik7XG4gICAgICAgICAgICAgICAgaWYgKGlzRnJhY3Rpb25hbCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IE51bWVyaWNWYWx1ZShudW1lcmljU3RyaW5nLCBcImJpZ0RlY2ltYWxcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gQmlnSW50KG51bWVyaWNTdHJpbmcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG59XG4iLCAiaW1wb3J0IHsgY29sbGVjdEJvZHkgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyB0b1V0ZjggfSBmcm9tIFwiQHNtaXRoeS91dGlsLXV0ZjhcIjtcbmV4cG9ydCBjb25zdCBjb2xsZWN0Qm9keVN0cmluZyA9IChzdHJlYW1Cb2R5LCBjb250ZXh0KSA9PiBjb2xsZWN0Qm9keShzdHJlYW1Cb2R5LCBjb250ZXh0KS50aGVuKChib2R5KSA9PiAoY29udGV4dD8udXRmOEVuY29kZXIgPz8gdG9VdGY4KShib2R5KSk7XG4iLCAiaW1wb3J0IHsgY29sbGVjdEJvZHlTdHJpbmcgfSBmcm9tIFwiLi4vY29tbW9uXCI7XG5leHBvcnQgY29uc3QgcGFyc2VKc29uQm9keSA9IChzdHJlYW1Cb2R5LCBjb250ZXh0KSA9PiBjb2xsZWN0Qm9keVN0cmluZyhzdHJlYW1Cb2R5LCBjb250ZXh0KS50aGVuKChlbmNvZGVkKSA9PiB7XG4gICAgaWYgKGVuY29kZWQubGVuZ3RoKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShlbmNvZGVkKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgaWYgKGU/Lm5hbWUgPT09IFwiU3ludGF4RXJyb3JcIikge1xuICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCBcIiRyZXNwb25zZUJvZHlUZXh0XCIsIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGVuY29kZWQsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7fTtcbn0pO1xuZXhwb3J0IGNvbnN0IHBhcnNlSnNvbkVycm9yQm9keSA9IGFzeW5jIChlcnJvckJvZHksIGNvbnRleHQpID0+IHtcbiAgICBjb25zdCB2YWx1ZSA9IGF3YWl0IHBhcnNlSnNvbkJvZHkoZXJyb3JCb2R5LCBjb250ZXh0KTtcbiAgICB2YWx1ZS5tZXNzYWdlID0gdmFsdWUubWVzc2FnZSA/PyB2YWx1ZS5NZXNzYWdlO1xuICAgIHJldHVybiB2YWx1ZTtcbn07XG5jb25zdCBmaW5kS2V5ID0gKG9iamVjdCwga2V5KSA9PiBPYmplY3Qua2V5cyhvYmplY3QpLmZpbmQoKGspID0+IGsudG9Mb3dlckNhc2UoKSA9PT0ga2V5LnRvTG93ZXJDYXNlKCkpO1xuY29uc3Qgc2FuaXRpemVFcnJvckNvZGUgPSAocmF3VmFsdWUpID0+IHtcbiAgICBsZXQgY2xlYW5WYWx1ZSA9IHJhd1ZhbHVlO1xuICAgIGlmICh0eXBlb2YgY2xlYW5WYWx1ZSA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICBjbGVhblZhbHVlID0gY2xlYW5WYWx1ZS50b1N0cmluZygpO1xuICAgIH1cbiAgICBpZiAoY2xlYW5WYWx1ZS5pbmRleE9mKFwiLFwiKSA+PSAwKSB7XG4gICAgICAgIGNsZWFuVmFsdWUgPSBjbGVhblZhbHVlLnNwbGl0KFwiLFwiKVswXTtcbiAgICB9XG4gICAgaWYgKGNsZWFuVmFsdWUuaW5kZXhPZihcIjpcIikgPj0gMCkge1xuICAgICAgICBjbGVhblZhbHVlID0gY2xlYW5WYWx1ZS5zcGxpdChcIjpcIilbMF07XG4gICAgfVxuICAgIGlmIChjbGVhblZhbHVlLmluZGV4T2YoXCIjXCIpID49IDApIHtcbiAgICAgICAgY2xlYW5WYWx1ZSA9IGNsZWFuVmFsdWUuc3BsaXQoXCIjXCIpWzFdO1xuICAgIH1cbiAgICByZXR1cm4gY2xlYW5WYWx1ZTtcbn07XG5leHBvcnQgY29uc3QgbG9hZFJlc3RKc29uRXJyb3JDb2RlID0gKG91dHB1dCwgZGF0YSkgPT4ge1xuICAgIGNvbnN0IGhlYWRlcktleSA9IGZpbmRLZXkob3V0cHV0LmhlYWRlcnMsIFwieC1hbXpuLWVycm9ydHlwZVwiKTtcbiAgICBpZiAoaGVhZGVyS2V5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIHNhbml0aXplRXJyb3JDb2RlKG91dHB1dC5oZWFkZXJzW2hlYWRlcktleV0pO1xuICAgIH1cbiAgICBpZiAoZGF0YSAmJiB0eXBlb2YgZGF0YSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICBjb25zdCBjb2RlS2V5ID0gZmluZEtleShkYXRhLCBcImNvZGVcIik7XG4gICAgICAgIGlmIChjb2RlS2V5ICYmIGRhdGFbY29kZUtleV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHNhbml0aXplRXJyb3JDb2RlKGRhdGFbY29kZUtleV0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhW1wiX190eXBlXCJdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBzYW5pdGl6ZUVycm9yQ29kZShkYXRhW1wiX190eXBlXCJdKTtcbiAgICAgICAgfVxuICAgIH1cbn07XG4iLCAiaW1wb3J0IHsgZGV0ZXJtaW5lVGltZXN0YW1wRm9ybWF0IH0gZnJvbSBcIkBzbWl0aHkvY29yZS9wcm90b2NvbHNcIjtcbmltcG9ydCB7IE5vcm1hbGl6ZWRTY2hlbWEgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3NjaGVtYVwiO1xuaW1wb3J0IHsgTGF6eUpzb25TdHJpbmcsIE51bWVyaWNWYWx1ZSwgcGFyc2VFcG9jaFRpbWVzdGFtcCwgcGFyc2VSZmMzMzM5RGF0ZVRpbWVXaXRoT2Zmc2V0LCBwYXJzZVJmYzcyMzFEYXRlVGltZSwgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3NlcmRlXCI7XG5pbXBvcnQgeyBmcm9tQmFzZTY0IH0gZnJvbSBcIkBzbWl0aHkvdXRpbC1iYXNlNjRcIjtcbmltcG9ydCB7IFNlcmRlQ29udGV4dENvbmZpZyB9IGZyb20gXCIuLi9Db25maWd1cmFibGVTZXJkZUNvbnRleHRcIjtcbmltcG9ydCB7IFVuaW9uU2VyZGUgfSBmcm9tIFwiLi4vVW5pb25TZXJkZVwiO1xuaW1wb3J0IHsganNvblJldml2ZXIgfSBmcm9tIFwiLi9qc29uUmV2aXZlclwiO1xuaW1wb3J0IHsgcGFyc2VKc29uQm9keSB9IGZyb20gXCIuL3BhcnNlSnNvbkJvZHlcIjtcbmV4cG9ydCBjbGFzcyBKc29uU2hhcGVEZXNlcmlhbGl6ZXIgZXh0ZW5kcyBTZXJkZUNvbnRleHRDb25maWcge1xuICAgIHNldHRpbmdzO1xuICAgIGNvbnN0cnVjdG9yKHNldHRpbmdzKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuc2V0dGluZ3MgPSBzZXR0aW5ncztcbiAgICB9XG4gICAgYXN5bmMgcmVhZChzY2hlbWEsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlYWQoc2NoZW1hLCB0eXBlb2YgZGF0YSA9PT0gXCJzdHJpbmdcIiA/IEpTT04ucGFyc2UoZGF0YSwganNvblJldml2ZXIpIDogYXdhaXQgcGFyc2VKc29uQm9keShkYXRhLCB0aGlzLnNlcmRlQ29udGV4dCkpO1xuICAgIH1cbiAgICByZWFkT2JqZWN0KHNjaGVtYSwgZGF0YSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVhZChzY2hlbWEsIGRhdGEpO1xuICAgIH1cbiAgICBfcmVhZChzY2hlbWEsIHZhbHVlKSB7XG4gICAgICAgIGNvbnN0IGlzT2JqZWN0ID0gdmFsdWUgIT09IG51bGwgJiYgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiO1xuICAgICAgICBjb25zdCBucyA9IE5vcm1hbGl6ZWRTY2hlbWEub2Yoc2NoZW1hKTtcbiAgICAgICAgaWYgKGlzT2JqZWN0KSB7XG4gICAgICAgICAgICBpZiAobnMuaXNTdHJ1Y3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlY29yZCA9IHZhbHVlO1xuICAgICAgICAgICAgICAgIGNvbnN0IHVuaW9uID0gbnMuaXNVbmlvblNjaGVtYSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IG91dCA9IHt9O1xuICAgICAgICAgICAgICAgIGxldCBuYW1lTWFwID0gdm9pZCAwO1xuICAgICAgICAgICAgICAgIGNvbnN0IHsganNvbk5hbWUgfSA9IHRoaXMuc2V0dGluZ3M7XG4gICAgICAgICAgICAgICAgaWYgKGpzb25OYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWVNYXAgPSB7fTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbGV0IHVuaW9uU2VyZGU7XG4gICAgICAgICAgICAgICAgaWYgKHVuaW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIHVuaW9uU2VyZGUgPSBuZXcgVW5pb25TZXJkZShyZWNvcmQsIG91dCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgW21lbWJlck5hbWUsIG1lbWJlclNjaGVtYV0gb2YgbnMuc3RydWN0SXRlcmF0b3IoKSkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgZnJvbUtleSA9IG1lbWJlck5hbWU7XG4gICAgICAgICAgICAgICAgICAgIGlmIChqc29uTmFtZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZnJvbUtleSA9IG1lbWJlclNjaGVtYS5nZXRNZXJnZWRUcmFpdHMoKS5qc29uTmFtZSA/PyBmcm9tS2V5O1xuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZU1hcFtmcm9tS2V5XSA9IG1lbWJlck5hbWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHVuaW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB1bmlvblNlcmRlLm1hcmsoZnJvbUtleSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlY29yZFtmcm9tS2V5XSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvdXRbbWVtYmVyTmFtZV0gPSB0aGlzLl9yZWFkKG1lbWJlclNjaGVtYSwgcmVjb3JkW2Zyb21LZXldKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodW5pb24pIHtcbiAgICAgICAgICAgICAgICAgICAgdW5pb25TZXJkZS53cml0ZVVua25vd24oKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAodHlwZW9mIHJlY29yZC5fX3R5cGUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBrIGluIHJlY29yZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdiA9IHJlY29yZFtrXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHQgPSBqc29uTmFtZSA/IG5hbWVNYXBba10gPz8gayA6IGs7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoISh0IGluIG91dCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRbdF0gPSB2O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBvdXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgbnMuaXNMaXN0U2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBsaXN0TWVtYmVyID0gbnMuZ2V0VmFsdWVTY2hlbWEoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBvdXQgPSBbXTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgb3V0LnB1c2godGhpcy5fcmVhZChsaXN0TWVtYmVyLCBpdGVtKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBvdXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobnMuaXNNYXBTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG1hcE1lbWJlciA9IG5zLmdldFZhbHVlU2NoZW1hKCk7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3V0ID0ge307XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBfayBpbiB2YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBvdXRbX2tdID0gdGhpcy5fcmVhZChtYXBNZW1iZXIsIHZhbHVlW19rXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBvdXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzQmxvYlNjaGVtYSgpICYmIHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgcmV0dXJuIGZyb21CYXNlNjQodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG1lZGlhVHlwZSA9IG5zLmdldE1lcmdlZFRyYWl0cygpLm1lZGlhVHlwZTtcbiAgICAgICAgaWYgKG5zLmlzU3RyaW5nU2NoZW1hKCkgJiYgdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiICYmIG1lZGlhVHlwZSkge1xuICAgICAgICAgICAgY29uc3QgaXNKc29uID0gbWVkaWFUeXBlID09PSBcImFwcGxpY2F0aW9uL2pzb25cIiB8fCBtZWRpYVR5cGUuZW5kc1dpdGgoXCIranNvblwiKTtcbiAgICAgICAgICAgIGlmIChpc0pzb24pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gTGF6eUpzb25TdHJpbmcuZnJvbSh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzVGltZXN0YW1wU2NoZW1hKCkgJiYgdmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc3QgZm9ybWF0ID0gZGV0ZXJtaW5lVGltZXN0YW1wRm9ybWF0KG5zLCB0aGlzLnNldHRpbmdzKTtcbiAgICAgICAgICAgIHN3aXRjaCAoZm9ybWF0KSB7XG4gICAgICAgICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcGFyc2VSZmMzMzM5RGF0ZVRpbWVXaXRoT2Zmc2V0KHZhbHVlKTtcbiAgICAgICAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZVJmYzcyMzFEYXRlVGltZSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgY2FzZSA3OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcGFyc2VFcG9jaFRpbWVzdGFtcCh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKFwiTWlzc2luZyB0aW1lc3RhbXAgZm9ybWF0LCBwYXJzaW5nIHZhbHVlIHdpdGggRGF0ZSBjb25zdHJ1Y3RvcjpcIiwgdmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IERhdGUodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChucy5pc0JpZ0ludGVnZXJTY2hlbWEoKSAmJiAodHlwZW9mIHZhbHVlID09PSBcIm51bWJlclwiIHx8IHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikpIHtcbiAgICAgICAgICAgIHJldHVybiBCaWdJbnQodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChucy5pc0JpZ0RlY2ltYWxTY2hlbWEoKSAmJiB2YWx1ZSAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIE51bWVyaWNWYWx1ZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHVudHlwZWQgPSB2YWx1ZTtcbiAgICAgICAgICAgIGlmICh1bnR5cGVkLnR5cGUgPT09IFwiYmlnRGVjaW1hbFwiICYmIFwic3RyaW5nXCIgaW4gdW50eXBlZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgTnVtZXJpY1ZhbHVlKHVudHlwZWQuc3RyaW5nLCB1bnR5cGVkLnR5cGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG5ldyBOdW1lcmljVmFsdWUoU3RyaW5nKHZhbHVlKSwgXCJiaWdEZWNpbWFsXCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChucy5pc051bWVyaWNTY2hlbWEoKSAmJiB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIHN3aXRjaCAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIFwiSW5maW5pdHlcIjpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEluZmluaXR5O1xuICAgICAgICAgICAgICAgIGNhc2UgXCItSW5maW5pdHlcIjpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1JbmZpbml0eTtcbiAgICAgICAgICAgICAgICBjYXNlIFwiTmFOXCI6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBOYU47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzRG9jdW1lbnRTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKGlzT2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3V0ID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyBbXSA6IHt9O1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgayBpbiB2YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB2ID0gdmFsdWVba107XG4gICAgICAgICAgICAgICAgICAgIGlmICh2IGluc3RhbmNlb2YgTnVtZXJpY1ZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvdXRba10gPSB2O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3V0W2tdID0gdGhpcy5fcmVhZChucywgdik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIG91dDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBzdHJ1Y3R1cmVkQ2xvbmUodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgTnVtZXJpY1ZhbHVlIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zZXJkZVwiO1xuY29uc3QgTlVNRVJJQ19DT05UUk9MX0NIQVIgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKDkyNSk7XG5leHBvcnQgY2xhc3MgSnNvblJlcGxhY2VyIHtcbiAgICB2YWx1ZXMgPSBuZXcgTWFwKCk7XG4gICAgY291bnRlciA9IDA7XG4gICAgc3RhZ2UgPSAwO1xuICAgIGNyZWF0ZVJlcGxhY2VyKCkge1xuICAgICAgICBpZiAodGhpcy5zdGFnZSA9PT0gMSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSBKc29uUmVwbGFjZXIgYWxyZWFkeSBjcmVhdGVkLlwiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5zdGFnZSA9PT0gMikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSBKc29uUmVwbGFjZXIgZXhoYXVzdGVkLlwiKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnN0YWdlID0gMTtcbiAgICAgICAgcmV0dXJuIChrZXksIHZhbHVlKSA9PiB7XG4gICAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBOdW1lcmljVmFsdWUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB2ID0gYCR7TlVNRVJJQ19DT05UUk9MX0NIQVIgKyBcIm52XCIgKyB0aGlzLmNvdW50ZXIrK31fYCArIHZhbHVlLnN0cmluZztcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlcy5zZXQoYFwiJHt2fVwiYCwgdmFsdWUuc3RyaW5nKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwiYmlnaW50XCIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzID0gdmFsdWUudG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICBjb25zdCB2ID0gYCR7TlVNRVJJQ19DT05UUk9MX0NIQVIgKyBcImJcIiArIHRoaXMuY291bnRlcisrfV9gICsgcztcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlcy5zZXQoYFwiJHt2fVwiYCwgcyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHY7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH07XG4gICAgfVxuICAgIHJlcGxhY2VJbkpzb24oanNvbikge1xuICAgICAgICBpZiAodGhpcy5zdGFnZSA9PT0gMCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSBKc29uUmVwbGFjZXIgbm90IGNyZWF0ZWQgeWV0LlwiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5zdGFnZSA9PT0gMikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSBKc29uUmVwbGFjZXIgZXhoYXVzdGVkLlwiKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnN0YWdlID0gMjtcbiAgICAgICAgaWYgKHRoaXMuY291bnRlciA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIGpzb247XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgdGhpcy52YWx1ZXMpIHtcbiAgICAgICAgICAgIGpzb24gPSBqc29uLnJlcGxhY2Uoa2V5LCB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGpzb247XG4gICAgfVxufVxuIiwgImltcG9ydCB7IGRldGVybWluZVRpbWVzdGFtcEZvcm1hdCB9IGZyb20gXCJAc21pdGh5L2NvcmUvcHJvdG9jb2xzXCI7XG5pbXBvcnQgeyBOb3JtYWxpemVkU2NoZW1hIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IGRhdGVUb1V0Y1N0cmluZywgZ2VuZXJhdGVJZGVtcG90ZW5jeVRva2VuLCBMYXp5SnNvblN0cmluZywgTnVtZXJpY1ZhbHVlIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zZXJkZVwiO1xuaW1wb3J0IHsgdG9CYXNlNjQgfSBmcm9tIFwiQHNtaXRoeS91dGlsLWJhc2U2NFwiO1xuaW1wb3J0IHsgU2VyZGVDb250ZXh0Q29uZmlnIH0gZnJvbSBcIi4uL0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dFwiO1xuaW1wb3J0IHsgSnNvblJlcGxhY2VyIH0gZnJvbSBcIi4vanNvblJlcGxhY2VyXCI7XG5leHBvcnQgY2xhc3MgSnNvblNoYXBlU2VyaWFsaXplciBleHRlbmRzIFNlcmRlQ29udGV4dENvbmZpZyB7XG4gICAgc2V0dGluZ3M7XG4gICAgYnVmZmVyO1xuICAgIHVzZVJlcGxhY2VyID0gZmFsc2U7XG4gICAgcm9vdFNjaGVtYTtcbiAgICBjb25zdHJ1Y3RvcihzZXR0aW5ncykge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnNldHRpbmdzID0gc2V0dGluZ3M7XG4gICAgfVxuICAgIHdyaXRlKHNjaGVtYSwgdmFsdWUpIHtcbiAgICAgICAgdGhpcy5yb290U2NoZW1hID0gTm9ybWFsaXplZFNjaGVtYS5vZihzY2hlbWEpO1xuICAgICAgICB0aGlzLmJ1ZmZlciA9IHRoaXMuX3dyaXRlKHRoaXMucm9vdFNjaGVtYSwgdmFsdWUpO1xuICAgIH1cbiAgICBmbHVzaCgpIHtcbiAgICAgICAgY29uc3QgeyByb290U2NoZW1hLCB1c2VSZXBsYWNlciB9ID0gdGhpcztcbiAgICAgICAgdGhpcy5yb290U2NoZW1hID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLnVzZVJlcGxhY2VyID0gZmFsc2U7XG4gICAgICAgIGlmIChyb290U2NoZW1hPy5pc1N0cnVjdFNjaGVtYSgpIHx8IHJvb3RTY2hlbWE/LmlzRG9jdW1lbnRTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKCF1c2VSZXBsYWNlcikge1xuICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh0aGlzLmJ1ZmZlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCByZXBsYWNlciA9IG5ldyBKc29uUmVwbGFjZXIoKTtcbiAgICAgICAgICAgIHJldHVybiByZXBsYWNlci5yZXBsYWNlSW5Kc29uKEpTT04uc3RyaW5naWZ5KHRoaXMuYnVmZmVyLCByZXBsYWNlci5jcmVhdGVSZXBsYWNlcigpLCAwKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuYnVmZmVyO1xuICAgIH1cbiAgICB3cml0ZURpc2NyaW1pbmF0ZWREb2N1bWVudChzY2hlbWEsIHZhbHVlKSB7XG4gICAgICAgIHRoaXMud3JpdGUoc2NoZW1hLCB2YWx1ZSk7XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5idWZmZXIgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgIHRoaXMuYnVmZmVyLl9fdHlwZSA9IE5vcm1hbGl6ZWRTY2hlbWEub2Yoc2NoZW1hKS5nZXROYW1lKHRydWUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIF93cml0ZShzY2hlbWEsIHZhbHVlLCBjb250YWluZXIpIHtcbiAgICAgICAgY29uc3QgaXNPYmplY3QgPSB2YWx1ZSAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCI7XG4gICAgICAgIGNvbnN0IG5zID0gTm9ybWFsaXplZFNjaGVtYS5vZihzY2hlbWEpO1xuICAgICAgICBpZiAoaXNPYmplY3QpIHtcbiAgICAgICAgICAgIGlmIChucy5pc1N0cnVjdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVjb3JkID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3V0ID0ge307XG4gICAgICAgICAgICAgICAgY29uc3QgeyBqc29uTmFtZSB9ID0gdGhpcy5zZXR0aW5ncztcbiAgICAgICAgICAgICAgICBsZXQgbmFtZU1hcCA9IHZvaWQgMDtcbiAgICAgICAgICAgICAgICBpZiAoanNvbk5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZU1hcCA9IHt9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBsZXQgb3V0Q291bnQgPSAwO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgW21lbWJlck5hbWUsIG1lbWJlclNjaGVtYV0gb2YgbnMuc3RydWN0SXRlcmF0b3IoKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzZXJpYWxpemFibGVWYWx1ZSA9IHRoaXMuX3dyaXRlKG1lbWJlclNjaGVtYSwgcmVjb3JkW21lbWJlck5hbWVdLCBucyk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzZXJpYWxpemFibGVWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGFyZ2V0S2V5ID0gbWVtYmVyTmFtZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChqc29uTmFtZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldEtleSA9IG1lbWJlclNjaGVtYS5nZXRNZXJnZWRUcmFpdHMoKS5qc29uTmFtZSA/PyBtZW1iZXJOYW1lO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVNYXBbbWVtYmVyTmFtZV0gPSB0YXJnZXRLZXk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBvdXRbdGFyZ2V0S2V5XSA9IHNlcmlhbGl6YWJsZVZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgb3V0Q291bnQrKztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAobnMuaXNVbmlvblNjaGVtYSgpICYmIG91dENvdW50ID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgJHVua25vd24gfSA9IHJlY29yZDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoJHVua25vd24pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBbaywgdl0gPSAkdW5rbm93bjtcbiAgICAgICAgICAgICAgICAgICAgICAgIG91dFtrXSA9IHRoaXMuX3dyaXRlKDE1LCB2KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmICh0eXBlb2YgcmVjb3JkLl9fdHlwZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGsgaW4gcmVjb3JkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2ID0gcmVjb3JkW2tdO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0S2V5ID0ganNvbk5hbWUgPyBuYW1lTWFwW2tdID8/IGsgOiBrO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEodGFyZ2V0S2V5IGluIG91dCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRbdGFyZ2V0S2V5XSA9IHRoaXMuX3dyaXRlKDE1LCB2KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gb3V0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpICYmIG5zLmlzTGlzdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbGlzdE1lbWJlciA9IG5zLmdldFZhbHVlU2NoZW1hKCk7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3V0ID0gW107XG4gICAgICAgICAgICAgICAgY29uc3Qgc3BhcnNlID0gISFucy5nZXRNZXJnZWRUcmFpdHMoKS5zcGFyc2U7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzcGFyc2UgfHwgaXRlbSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvdXQucHVzaCh0aGlzLl93cml0ZShsaXN0TWVtYmVyLCBpdGVtKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIG91dDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChucy5pc01hcFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbWFwTWVtYmVyID0gbnMuZ2V0VmFsdWVTY2hlbWEoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBvdXQgPSB7fTtcbiAgICAgICAgICAgICAgICBjb25zdCBzcGFyc2UgPSAhIW5zLmdldE1lcmdlZFRyYWl0cygpLnNwYXJzZTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IF9rIGluIHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IF92ID0gdmFsdWVbX2tdO1xuICAgICAgICAgICAgICAgICAgICBpZiAoc3BhcnNlIHx8IF92ICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG91dFtfa10gPSB0aGlzLl93cml0ZShtYXBNZW1iZXIsIF92KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gb3V0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgVWludDhBcnJheSAmJiAobnMuaXNCbG9iU2NoZW1hKCkgfHwgbnMuaXNEb2N1bWVudFNjaGVtYSgpKSkge1xuICAgICAgICAgICAgICAgIGlmIChucyA9PT0gdGhpcy5yb290U2NoZW1hKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuICh0aGlzLnNlcmRlQ29udGV4dD8uYmFzZTY0RW5jb2RlciA/PyB0b0Jhc2U2NCkodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSAmJiAobnMuaXNUaW1lc3RhbXBTY2hlbWEoKSB8fCBucy5pc0RvY3VtZW50U2NoZW1hKCkpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZm9ybWF0ID0gZGV0ZXJtaW5lVGltZXN0YW1wRm9ybWF0KG5zLCB0aGlzLnNldHRpbmdzKTtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGZvcm1hdCkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUudG9JU09TdHJpbmcoKS5yZXBsYWNlKFwiLjAwMFpcIiwgXCJaXCIpO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZGF0ZVRvVXRjU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA3OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlLmdldFRpbWUoKSAvIDEwMDA7XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oXCJNaXNzaW5nIHRpbWVzdGFtcCBmb3JtYXQsIHVzaW5nIGVwb2NoIHNlY29uZHNcIiwgdmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlLmdldFRpbWUoKSAvIDEwMDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgTnVtZXJpY1ZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy51c2VSZXBsYWNlciA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbHVlID09PSBudWxsICYmIGNvbnRhaW5lcj8uaXNTdHJ1Y3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgcmV0dXJuIHZvaWQgMDtcbiAgICAgICAgfVxuICAgICAgICBpZiAobnMuaXNTdHJpbmdTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJ1bmRlZmluZWRcIiAmJiBucy5pc0lkZW1wb3RlbmN5VG9rZW4oKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBnZW5lcmF0ZUlkZW1wb3RlbmN5VG9rZW4oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IG1lZGlhVHlwZSA9IG5zLmdldE1lcmdlZFRyYWl0cygpLm1lZGlhVHlwZTtcbiAgICAgICAgICAgIGlmICh2YWx1ZSAhPSBudWxsICYmIG1lZGlhVHlwZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzSnNvbiA9IG1lZGlhVHlwZSA9PT0gXCJhcHBsaWNhdGlvbi9qc29uXCIgfHwgbWVkaWFUeXBlLmVuZHNXaXRoKFwiK2pzb25cIik7XG4gICAgICAgICAgICAgICAgaWYgKGlzSnNvbikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gTGF6eUpzb25TdHJpbmcuZnJvbSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCIgJiYgbnMuaXNOdW1lcmljU2NoZW1hKCkpIHtcbiAgICAgICAgICAgIGlmIChNYXRoLmFicyh2YWx1ZSkgPT09IEluZmluaXR5IHx8IGlzTmFOKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgJiYgbnMuaXNCbG9iU2NoZW1hKCkpIHtcbiAgICAgICAgICAgIGlmIChucyA9PT0gdGhpcy5yb290U2NoZW1hKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuICh0aGlzLnNlcmRlQ29udGV4dD8uYmFzZTY0RW5jb2RlciA/PyB0b0Jhc2U2NCkodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwiYmlnaW50XCIpIHtcbiAgICAgICAgICAgIHRoaXMudXNlUmVwbGFjZXIgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChucy5pc0RvY3VtZW50U2NoZW1hKCkpIHtcbiAgICAgICAgICAgIGlmIChpc09iamVjdCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG91dCA9IEFycmF5LmlzQXJyYXkodmFsdWUpID8gW10gOiB7fTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGsgaW4gdmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdiA9IHZhbHVlW2tdO1xuICAgICAgICAgICAgICAgICAgICBpZiAodiBpbnN0YW5jZW9mIE51bWVyaWNWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51c2VSZXBsYWNlciA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBvdXRba10gPSB2O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3V0W2tdID0gdGhpcy5fd3JpdGUobnMsIHYpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBvdXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3RydWN0dXJlZENsb25lKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IFNlcmRlQ29udGV4dENvbmZpZyB9IGZyb20gXCIuLi9Db25maWd1cmFibGVTZXJkZUNvbnRleHRcIjtcbmltcG9ydCB7IEpzb25TaGFwZURlc2VyaWFsaXplciB9IGZyb20gXCIuL0pzb25TaGFwZURlc2VyaWFsaXplclwiO1xuaW1wb3J0IHsgSnNvblNoYXBlU2VyaWFsaXplciB9IGZyb20gXCIuL0pzb25TaGFwZVNlcmlhbGl6ZXJcIjtcbmV4cG9ydCBjbGFzcyBKc29uQ29kZWMgZXh0ZW5kcyBTZXJkZUNvbnRleHRDb25maWcge1xuICAgIHNldHRpbmdzO1xuICAgIGNvbnN0cnVjdG9yKHNldHRpbmdzKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuc2V0dGluZ3MgPSBzZXR0aW5ncztcbiAgICB9XG4gICAgY3JlYXRlU2VyaWFsaXplcigpIHtcbiAgICAgICAgY29uc3Qgc2VyaWFsaXplciA9IG5ldyBKc29uU2hhcGVTZXJpYWxpemVyKHRoaXMuc2V0dGluZ3MpO1xuICAgICAgICBzZXJpYWxpemVyLnNldFNlcmRlQ29udGV4dCh0aGlzLnNlcmRlQ29udGV4dCk7XG4gICAgICAgIHJldHVybiBzZXJpYWxpemVyO1xuICAgIH1cbiAgICBjcmVhdGVEZXNlcmlhbGl6ZXIoKSB7XG4gICAgICAgIGNvbnN0IGRlc2VyaWFsaXplciA9IG5ldyBKc29uU2hhcGVEZXNlcmlhbGl6ZXIodGhpcy5zZXR0aW5ncyk7XG4gICAgICAgIGRlc2VyaWFsaXplci5zZXRTZXJkZUNvbnRleHQodGhpcy5zZXJkZUNvbnRleHQpO1xuICAgICAgICByZXR1cm4gZGVzZXJpYWxpemVyO1xuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBScGNQcm90b2NvbCB9IGZyb20gXCJAc21pdGh5L2NvcmUvcHJvdG9jb2xzXCI7XG5pbXBvcnQgeyBkZXJlZiwgTm9ybWFsaXplZFNjaGVtYSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2NoZW1hXCI7XG5pbXBvcnQgeyBQcm90b2NvbExpYiB9IGZyb20gXCIuLi9Qcm90b2NvbExpYlwiO1xuaW1wb3J0IHsgSnNvbkNvZGVjIH0gZnJvbSBcIi4vSnNvbkNvZGVjXCI7XG5pbXBvcnQgeyBsb2FkUmVzdEpzb25FcnJvckNvZGUgfSBmcm9tIFwiLi9wYXJzZUpzb25Cb2R5XCI7XG5leHBvcnQgY2xhc3MgQXdzSnNvblJwY1Byb3RvY29sIGV4dGVuZHMgUnBjUHJvdG9jb2wge1xuICAgIHNlcmlhbGl6ZXI7XG4gICAgZGVzZXJpYWxpemVyO1xuICAgIHNlcnZpY2VUYXJnZXQ7XG4gICAgY29kZWM7XG4gICAgbWl4aW47XG4gICAgYXdzUXVlcnlDb21wYXRpYmxlO1xuICAgIGNvbnN0cnVjdG9yKHsgZGVmYXVsdE5hbWVzcGFjZSwgZXJyb3JUeXBlUmVnaXN0cmllcywgc2VydmljZVRhcmdldCwgYXdzUXVlcnlDb21wYXRpYmxlLCBqc29uQ29kZWMsIH0pIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgZGVmYXVsdE5hbWVzcGFjZSxcbiAgICAgICAgICAgIGVycm9yVHlwZVJlZ2lzdHJpZXMsXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnNlcnZpY2VUYXJnZXQgPSBzZXJ2aWNlVGFyZ2V0O1xuICAgICAgICB0aGlzLmNvZGVjID1cbiAgICAgICAgICAgIGpzb25Db2RlYyA/P1xuICAgICAgICAgICAgICAgIG5ldyBKc29uQ29kZWMoe1xuICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXBGb3JtYXQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHVzZVRyYWl0OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogNyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAganNvbk5hbWU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB0aGlzLnNlcmlhbGl6ZXIgPSB0aGlzLmNvZGVjLmNyZWF0ZVNlcmlhbGl6ZXIoKTtcbiAgICAgICAgdGhpcy5kZXNlcmlhbGl6ZXIgPSB0aGlzLmNvZGVjLmNyZWF0ZURlc2VyaWFsaXplcigpO1xuICAgICAgICB0aGlzLmF3c1F1ZXJ5Q29tcGF0aWJsZSA9ICEhYXdzUXVlcnlDb21wYXRpYmxlO1xuICAgICAgICB0aGlzLm1peGluID0gbmV3IFByb3RvY29sTGliKHRoaXMuYXdzUXVlcnlDb21wYXRpYmxlKTtcbiAgICB9XG4gICAgYXN5bmMgc2VyaWFsaXplUmVxdWVzdChvcGVyYXRpb25TY2hlbWEsIGlucHV0LCBjb250ZXh0KSB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSBhd2FpdCBzdXBlci5zZXJpYWxpemVSZXF1ZXN0KG9wZXJhdGlvblNjaGVtYSwgaW5wdXQsIGNvbnRleHQpO1xuICAgICAgICBpZiAoIXJlcXVlc3QucGF0aC5lbmRzV2l0aChcIi9cIikpIHtcbiAgICAgICAgICAgIHJlcXVlc3QucGF0aCArPSBcIi9cIjtcbiAgICAgICAgfVxuICAgICAgICByZXF1ZXN0LmhlYWRlcnNbXCJjb250ZW50LXR5cGVcIl0gPSBgYXBwbGljYXRpb24veC1hbXotanNvbi0ke3RoaXMuZ2V0SnNvblJwY1ZlcnNpb24oKX1gO1xuICAgICAgICByZXF1ZXN0LmhlYWRlcnNbXCJ4LWFtei10YXJnZXRcIl0gPSBgJHt0aGlzLnNlcnZpY2VUYXJnZXR9LiR7b3BlcmF0aW9uU2NoZW1hLm5hbWV9YDtcbiAgICAgICAgaWYgKHRoaXMuYXdzUXVlcnlDb21wYXRpYmxlKSB7XG4gICAgICAgICAgICByZXF1ZXN0LmhlYWRlcnNbXCJ4LWFtem4tcXVlcnktbW9kZVwiXSA9IFwidHJ1ZVwiO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkZXJlZihvcGVyYXRpb25TY2hlbWEuaW5wdXQpID09PSBcInVuaXRcIiB8fCAhcmVxdWVzdC5ib2R5KSB7XG4gICAgICAgICAgICByZXF1ZXN0LmJvZHkgPSBcInt9XCI7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlcXVlc3Q7XG4gICAgfVxuICAgIGdldFBheWxvYWRDb2RlYygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29kZWM7XG4gICAgfVxuICAgIGFzeW5jIGhhbmRsZUVycm9yKG9wZXJhdGlvblNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UsIGRhdGFPYmplY3QsIG1ldGFkYXRhKSB7XG4gICAgICAgIGlmICh0aGlzLmF3c1F1ZXJ5Q29tcGF0aWJsZSkge1xuICAgICAgICAgICAgdGhpcy5taXhpbi5zZXRRdWVyeUNvbXBhdEVycm9yKGRhdGFPYmplY3QsIHJlc3BvbnNlKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBlcnJvcklkZW50aWZpZXIgPSBsb2FkUmVzdEpzb25FcnJvckNvZGUocmVzcG9uc2UsIGRhdGFPYmplY3QpID8/IFwiVW5rbm93blwiO1xuICAgICAgICB0aGlzLm1peGluLmNvbXBvc2UodGhpcy5jb21wb3NpdGVFcnJvclJlZ2lzdHJ5LCBlcnJvcklkZW50aWZpZXIsIHRoaXMub3B0aW9ucy5kZWZhdWx0TmFtZXNwYWNlKTtcbiAgICAgICAgY29uc3QgeyBlcnJvclNjaGVtYSwgZXJyb3JNZXRhZGF0YSB9ID0gYXdhaXQgdGhpcy5taXhpbi5nZXRFcnJvclNjaGVtYU9yVGhyb3dCYXNlRXhjZXB0aW9uKGVycm9ySWRlbnRpZmllciwgdGhpcy5vcHRpb25zLmRlZmF1bHROYW1lc3BhY2UsIHJlc3BvbnNlLCBkYXRhT2JqZWN0LCBtZXRhZGF0YSwgdGhpcy5hd3NRdWVyeUNvbXBhdGlibGUgPyB0aGlzLm1peGluLmZpbmRRdWVyeUNvbXBhdGlibGVFcnJvciA6IHVuZGVmaW5lZCk7XG4gICAgICAgIGNvbnN0IG5zID0gTm9ybWFsaXplZFNjaGVtYS5vZihlcnJvclNjaGVtYSk7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBkYXRhT2JqZWN0Lm1lc3NhZ2UgPz8gZGF0YU9iamVjdC5NZXNzYWdlID8/IFwiVW5rbm93bkVycm9yXCI7XG4gICAgICAgIGNvbnN0IEVycm9yQ3RvciA9IHRoaXMuY29tcG9zaXRlRXJyb3JSZWdpc3RyeS5nZXRFcnJvckN0b3IoZXJyb3JTY2hlbWEpID8/IEVycm9yO1xuICAgICAgICBjb25zdCBleGNlcHRpb24gPSBuZXcgRXJyb3JDdG9yKG1lc3NhZ2UpO1xuICAgICAgICBjb25zdCBvdXRwdXQgPSB7fTtcbiAgICAgICAgY29uc3QgZXJyb3JEZXNlcmlhbGl6ZXIgPSB0aGlzLmNvZGVjLmNyZWF0ZURlc2VyaWFsaXplcigpO1xuICAgICAgICBmb3IgKGNvbnN0IFtuYW1lLCBtZW1iZXJdIG9mIG5zLnN0cnVjdEl0ZXJhdG9yKCkpIHtcbiAgICAgICAgICAgIGlmIChkYXRhT2JqZWN0W25hbWVdICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICBvdXRwdXRbbmFtZV0gPSBlcnJvckRlc2VyaWFsaXplci5yZWFkT2JqZWN0KG1lbWJlciwgZGF0YU9iamVjdFtuYW1lXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuYXdzUXVlcnlDb21wYXRpYmxlKSB7XG4gICAgICAgICAgICB0aGlzLm1peGluLnF1ZXJ5Q29tcGF0T3V0cHV0KGRhdGFPYmplY3QsIG91dHB1dCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgdGhpcy5taXhpbi5kZWNvcmF0ZVNlcnZpY2VFeGNlcHRpb24oT2JqZWN0LmFzc2lnbihleGNlcHRpb24sIGVycm9yTWV0YWRhdGEsIHtcbiAgICAgICAgICAgICRmYXVsdDogbnMuZ2V0TWVyZ2VkVHJhaXRzKCkuZXJyb3IsXG4gICAgICAgICAgICBtZXNzYWdlLFxuICAgICAgICB9LCBvdXRwdXQpLCBkYXRhT2JqZWN0KTtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgQXdzSnNvblJwY1Byb3RvY29sIH0gZnJvbSBcIi4vQXdzSnNvblJwY1Byb3RvY29sXCI7XG5leHBvcnQgY2xhc3MgQXdzSnNvbjFfMFByb3RvY29sIGV4dGVuZHMgQXdzSnNvblJwY1Byb3RvY29sIHtcbiAgICBjb25zdHJ1Y3Rvcih7IGRlZmF1bHROYW1lc3BhY2UsIGVycm9yVHlwZVJlZ2lzdHJpZXMsIHNlcnZpY2VUYXJnZXQsIGF3c1F1ZXJ5Q29tcGF0aWJsZSwganNvbkNvZGVjLCB9KSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIGRlZmF1bHROYW1lc3BhY2UsXG4gICAgICAgICAgICBlcnJvclR5cGVSZWdpc3RyaWVzLFxuICAgICAgICAgICAgc2VydmljZVRhcmdldCxcbiAgICAgICAgICAgIGF3c1F1ZXJ5Q29tcGF0aWJsZSxcbiAgICAgICAgICAgIGpzb25Db2RlYyxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGdldFNoYXBlSWQoKSB7XG4gICAgICAgIHJldHVybiBcImF3cy5wcm90b2NvbHMjYXdzSnNvbjFfMFwiO1xuICAgIH1cbiAgICBnZXRKc29uUnBjVmVyc2lvbigpIHtcbiAgICAgICAgcmV0dXJuIFwiMS4wXCI7XG4gICAgfVxuICAgIGdldERlZmF1bHRDb250ZW50VHlwZSgpIHtcbiAgICAgICAgcmV0dXJuIFwiYXBwbGljYXRpb24veC1hbXotanNvbi0xLjBcIjtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgQXdzSnNvblJwY1Byb3RvY29sIH0gZnJvbSBcIi4vQXdzSnNvblJwY1Byb3RvY29sXCI7XG5leHBvcnQgY2xhc3MgQXdzSnNvbjFfMVByb3RvY29sIGV4dGVuZHMgQXdzSnNvblJwY1Byb3RvY29sIHtcbiAgICBjb25zdHJ1Y3Rvcih7IGRlZmF1bHROYW1lc3BhY2UsIGVycm9yVHlwZVJlZ2lzdHJpZXMsIHNlcnZpY2VUYXJnZXQsIGF3c1F1ZXJ5Q29tcGF0aWJsZSwganNvbkNvZGVjLCB9KSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIGRlZmF1bHROYW1lc3BhY2UsXG4gICAgICAgICAgICBlcnJvclR5cGVSZWdpc3RyaWVzLFxuICAgICAgICAgICAgc2VydmljZVRhcmdldCxcbiAgICAgICAgICAgIGF3c1F1ZXJ5Q29tcGF0aWJsZSxcbiAgICAgICAgICAgIGpzb25Db2RlYyxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGdldFNoYXBlSWQoKSB7XG4gICAgICAgIHJldHVybiBcImF3cy5wcm90b2NvbHMjYXdzSnNvbjFfMVwiO1xuICAgIH1cbiAgICBnZXRKc29uUnBjVmVyc2lvbigpIHtcbiAgICAgICAgcmV0dXJuIFwiMS4xXCI7XG4gICAgfVxuICAgIGdldERlZmF1bHRDb250ZW50VHlwZSgpIHtcbiAgICAgICAgcmV0dXJuIFwiYXBwbGljYXRpb24veC1hbXotanNvbi0xLjFcIjtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgSHR0cEJpbmRpbmdQcm90b2NvbCwgSHR0cEludGVyY2VwdGluZ1NoYXBlRGVzZXJpYWxpemVyLCBIdHRwSW50ZXJjZXB0aW5nU2hhcGVTZXJpYWxpemVyLCB9IGZyb20gXCJAc21pdGh5L2NvcmUvcHJvdG9jb2xzXCI7XG5pbXBvcnQgeyBOb3JtYWxpemVkU2NoZW1hIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IFByb3RvY29sTGliIH0gZnJvbSBcIi4uL1Byb3RvY29sTGliXCI7XG5pbXBvcnQgeyBKc29uQ29kZWMgfSBmcm9tIFwiLi9Kc29uQ29kZWNcIjtcbmltcG9ydCB7IGxvYWRSZXN0SnNvbkVycm9yQ29kZSB9IGZyb20gXCIuL3BhcnNlSnNvbkJvZHlcIjtcbmV4cG9ydCBjbGFzcyBBd3NSZXN0SnNvblByb3RvY29sIGV4dGVuZHMgSHR0cEJpbmRpbmdQcm90b2NvbCB7XG4gICAgc2VyaWFsaXplcjtcbiAgICBkZXNlcmlhbGl6ZXI7XG4gICAgY29kZWM7XG4gICAgbWl4aW4gPSBuZXcgUHJvdG9jb2xMaWIoKTtcbiAgICBjb25zdHJ1Y3Rvcih7IGRlZmF1bHROYW1lc3BhY2UsIGVycm9yVHlwZVJlZ2lzdHJpZXMsIH0pIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgZGVmYXVsdE5hbWVzcGFjZSxcbiAgICAgICAgICAgIGVycm9yVHlwZVJlZ2lzdHJpZXMsXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBzZXR0aW5ncyA9IHtcbiAgICAgICAgICAgIHRpbWVzdGFtcEZvcm1hdDoge1xuICAgICAgICAgICAgICAgIHVzZVRyYWl0OiB0cnVlLFxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IDcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaHR0cEJpbmRpbmdzOiB0cnVlLFxuICAgICAgICAgICAganNvbk5hbWU6IHRydWUsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuY29kZWMgPSBuZXcgSnNvbkNvZGVjKHNldHRpbmdzKTtcbiAgICAgICAgdGhpcy5zZXJpYWxpemVyID0gbmV3IEh0dHBJbnRlcmNlcHRpbmdTaGFwZVNlcmlhbGl6ZXIodGhpcy5jb2RlYy5jcmVhdGVTZXJpYWxpemVyKCksIHNldHRpbmdzKTtcbiAgICAgICAgdGhpcy5kZXNlcmlhbGl6ZXIgPSBuZXcgSHR0cEludGVyY2VwdGluZ1NoYXBlRGVzZXJpYWxpemVyKHRoaXMuY29kZWMuY3JlYXRlRGVzZXJpYWxpemVyKCksIHNldHRpbmdzKTtcbiAgICB9XG4gICAgZ2V0U2hhcGVJZCgpIHtcbiAgICAgICAgcmV0dXJuIFwiYXdzLnByb3RvY29scyNyZXN0SnNvbjFcIjtcbiAgICB9XG4gICAgZ2V0UGF5bG9hZENvZGVjKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb2RlYztcbiAgICB9XG4gICAgc2V0U2VyZGVDb250ZXh0KHNlcmRlQ29udGV4dCkge1xuICAgICAgICB0aGlzLmNvZGVjLnNldFNlcmRlQ29udGV4dChzZXJkZUNvbnRleHQpO1xuICAgICAgICBzdXBlci5zZXRTZXJkZUNvbnRleHQoc2VyZGVDb250ZXh0KTtcbiAgICB9XG4gICAgYXN5bmMgc2VyaWFsaXplUmVxdWVzdChvcGVyYXRpb25TY2hlbWEsIGlucHV0LCBjb250ZXh0KSB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSBhd2FpdCBzdXBlci5zZXJpYWxpemVSZXF1ZXN0KG9wZXJhdGlvblNjaGVtYSwgaW5wdXQsIGNvbnRleHQpO1xuICAgICAgICBjb25zdCBpbnB1dFNjaGVtYSA9IE5vcm1hbGl6ZWRTY2hlbWEub2Yob3BlcmF0aW9uU2NoZW1hLmlucHV0KTtcbiAgICAgICAgaWYgKCFyZXF1ZXN0LmhlYWRlcnNbXCJjb250ZW50LXR5cGVcIl0pIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRlbnRUeXBlID0gdGhpcy5taXhpbi5yZXNvbHZlUmVzdENvbnRlbnRUeXBlKHRoaXMuZ2V0RGVmYXVsdENvbnRlbnRUeXBlKCksIGlucHV0U2NoZW1hKTtcbiAgICAgICAgICAgIGlmIChjb250ZW50VHlwZSkge1xuICAgICAgICAgICAgICAgIHJlcXVlc3QuaGVhZGVyc1tcImNvbnRlbnQtdHlwZVwiXSA9IGNvbnRlbnRUeXBlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChyZXF1ZXN0LmJvZHkgPT0gbnVsbCAmJiByZXF1ZXN0LmhlYWRlcnNbXCJjb250ZW50LXR5cGVcIl0gPT09IHRoaXMuZ2V0RGVmYXVsdENvbnRlbnRUeXBlKCkpIHtcbiAgICAgICAgICAgIHJlcXVlc3QuYm9keSA9IFwie31cIjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVxdWVzdDtcbiAgICB9XG4gICAgYXN5bmMgZGVzZXJpYWxpemVSZXNwb25zZShvcGVyYXRpb25TY2hlbWEsIGNvbnRleHQsIHJlc3BvbnNlKSB7XG4gICAgICAgIGNvbnN0IG91dHB1dCA9IGF3YWl0IHN1cGVyLmRlc2VyaWFsaXplUmVzcG9uc2Uob3BlcmF0aW9uU2NoZW1hLCBjb250ZXh0LCByZXNwb25zZSk7XG4gICAgICAgIGNvbnN0IG91dHB1dFNjaGVtYSA9IE5vcm1hbGl6ZWRTY2hlbWEub2Yob3BlcmF0aW9uU2NoZW1hLm91dHB1dCk7XG4gICAgICAgIGZvciAoY29uc3QgW25hbWUsIG1lbWJlcl0gb2Ygb3V0cHV0U2NoZW1hLnN0cnVjdEl0ZXJhdG9yKCkpIHtcbiAgICAgICAgICAgIGlmIChtZW1iZXIuZ2V0TWVtYmVyVHJhaXRzKCkuaHR0cFBheWxvYWQgJiYgIShuYW1lIGluIG91dHB1dCkpIHtcbiAgICAgICAgICAgICAgICBvdXRwdXRbbmFtZV0gPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvdXRwdXQ7XG4gICAgfVxuICAgIGFzeW5jIGhhbmRsZUVycm9yKG9wZXJhdGlvblNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UsIGRhdGFPYmplY3QsIG1ldGFkYXRhKSB7XG4gICAgICAgIGNvbnN0IGVycm9ySWRlbnRpZmllciA9IGxvYWRSZXN0SnNvbkVycm9yQ29kZShyZXNwb25zZSwgZGF0YU9iamVjdCkgPz8gXCJVbmtub3duXCI7XG4gICAgICAgIHRoaXMubWl4aW4uY29tcG9zZSh0aGlzLmNvbXBvc2l0ZUVycm9yUmVnaXN0cnksIGVycm9ySWRlbnRpZmllciwgdGhpcy5vcHRpb25zLmRlZmF1bHROYW1lc3BhY2UpO1xuICAgICAgICBjb25zdCB7IGVycm9yU2NoZW1hLCBlcnJvck1ldGFkYXRhIH0gPSBhd2FpdCB0aGlzLm1peGluLmdldEVycm9yU2NoZW1hT3JUaHJvd0Jhc2VFeGNlcHRpb24oZXJyb3JJZGVudGlmaWVyLCB0aGlzLm9wdGlvbnMuZGVmYXVsdE5hbWVzcGFjZSwgcmVzcG9uc2UsIGRhdGFPYmplY3QsIG1ldGFkYXRhKTtcbiAgICAgICAgY29uc3QgbnMgPSBOb3JtYWxpemVkU2NoZW1hLm9mKGVycm9yU2NoZW1hKTtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGRhdGFPYmplY3QubWVzc2FnZSA/PyBkYXRhT2JqZWN0Lk1lc3NhZ2UgPz8gXCJVbmtub3duRXJyb3JcIjtcbiAgICAgICAgY29uc3QgRXJyb3JDdG9yID0gdGhpcy5jb21wb3NpdGVFcnJvclJlZ2lzdHJ5LmdldEVycm9yQ3RvcihlcnJvclNjaGVtYSkgPz8gRXJyb3I7XG4gICAgICAgIGNvbnN0IGV4Y2VwdGlvbiA9IG5ldyBFcnJvckN0b3IobWVzc2FnZSk7XG4gICAgICAgIGF3YWl0IHRoaXMuZGVzZXJpYWxpemVIdHRwTWVzc2FnZShlcnJvclNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UsIGRhdGFPYmplY3QpO1xuICAgICAgICBjb25zdCBvdXRwdXQgPSB7fTtcbiAgICAgICAgY29uc3QgZXJyb3JEZXNlcmlhbGl6ZXIgPSB0aGlzLmNvZGVjLmNyZWF0ZURlc2VyaWFsaXplcigpO1xuICAgICAgICBmb3IgKGNvbnN0IFtuYW1lLCBtZW1iZXJdIG9mIG5zLnN0cnVjdEl0ZXJhdG9yKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IG1lbWJlci5nZXRNZXJnZWRUcmFpdHMoKS5qc29uTmFtZSA/PyBuYW1lO1xuICAgICAgICAgICAgb3V0cHV0W25hbWVdID0gZXJyb3JEZXNlcmlhbGl6ZXIucmVhZE9iamVjdChtZW1iZXIsIGRhdGFPYmplY3RbdGFyZ2V0XSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgdGhpcy5taXhpbi5kZWNvcmF0ZVNlcnZpY2VFeGNlcHRpb24oT2JqZWN0LmFzc2lnbihleGNlcHRpb24sIGVycm9yTWV0YWRhdGEsIHtcbiAgICAgICAgICAgICRmYXVsdDogbnMuZ2V0TWVyZ2VkVHJhaXRzKCkuZXJyb3IsXG4gICAgICAgICAgICBtZXNzYWdlLFxuICAgICAgICB9LCBvdXRwdXQpLCBkYXRhT2JqZWN0KTtcbiAgICB9XG4gICAgZ2V0RGVmYXVsdENvbnRlbnRUeXBlKCkge1xuICAgICAgICByZXR1cm4gXCJhcHBsaWNhdGlvbi9qc29uXCI7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IGV4cGVjdFVuaW9uIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuZXhwb3J0IGNvbnN0IGF3c0V4cGVjdFVuaW9uID0gKHZhbHVlKSA9PiB7XG4gICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIiAmJiBcIl9fdHlwZVwiIGluIHZhbHVlKSB7XG4gICAgICAgIGRlbGV0ZSB2YWx1ZS5fX3R5cGU7XG4gICAgfVxuICAgIHJldHVybiBleHBlY3RVbmlvbih2YWx1ZSk7XG59O1xuIiwgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5FbnRpdHlEZWNvZGVySW1wbCA9IGV4cG9ydHMuQ1VSUkVOQ1kgPSBleHBvcnRzLkNPTU1PTl9IVE1MID0gZXhwb3J0cy5YTUwgPSB2b2lkIDA7XG5leHBvcnRzLlhNTCA9IHtcbiAgICBhbXA6IFwiJlwiLFxuICAgIGFwb3M6IFwiJ1wiLFxuICAgIGd0OiBcIj5cIixcbiAgICBsdDogXCI8XCIsXG4gICAgcXVvdDogJ1wiJyxcbn07XG5leHBvcnRzLkNPTU1PTl9IVE1MID0ge1xuICAgIG5ic3A6IFwiXFx1MDBhMFwiLFxuICAgIGNvcHk6IFwiXFx1MDBhOVwiLFxuICAgIHJlZzogXCJcXHUwMGFlXCIsXG4gICAgdHJhZGU6IFwiXFx1MjEyMlwiLFxuICAgIG1kYXNoOiBcIlxcdTIwMTRcIixcbiAgICBuZGFzaDogXCJcXHUyMDEzXCIsXG4gICAgaGVsbGlwOiBcIlxcdTIwMjZcIixcbiAgICBsYXF1bzogXCJcXHUwMGFiXCIsXG4gICAgcmFxdW86IFwiXFx1MDBiYlwiLFxuICAgIGxzcXVvOiBcIlxcdTIwMThcIixcbiAgICByc3F1bzogXCJcXHUyMDE5XCIsXG4gICAgbGRxdW86IFwiXFx1MjAxY1wiLFxuICAgIHJkcXVvOiBcIlxcdTIwMWRcIixcbiAgICBidWxsOiBcIlxcdTIwMjJcIixcbiAgICBwYXJhOiBcIlxcdTAwYjZcIixcbiAgICBzZWN0OiBcIlxcdTAwYTdcIixcbiAgICBkZWc6IFwiXFx1MDBiMFwiLFxuICAgIGZyYWMxMjogXCJcXHUwMGJkXCIsXG4gICAgZnJhYzE0OiBcIlxcdTAwYmNcIixcbiAgICBmcmFjMzQ6IFwiXFx1MDBiZVwiLFxufTtcbmV4cG9ydHMuQ1VSUkVOQ1kgPSB7XG4gICAgY2VudDogXCJcXHUwMGEyXCIsXG4gICAgcG91bmQ6IFwiXFx1MDBhM1wiLFxuICAgIGN1cnJlbjogXCJcXHUwMGE0XCIsXG4gICAgeWVuOiBcIlxcdTAwYTVcIixcbiAgICBldXJvOiBcIlxcdTIwYWNcIixcbiAgICBkb2xsYXI6IFwiJFwiLFxuICAgIGZub2Y6IFwiXFx1MDE5MlwiLFxuICAgIGlucjogXCJcXHUyMGI5XCIsXG4gICAgYWY6IFwiXFx1MDYwYlwiLFxuICAgIGJpcnI6IFwiXFx1MTI2NVxcdTEyMmRcIixcbiAgICBwZXNvOiBcIlxcdTIwYjFcIixcbiAgICBydWI6IFwiXFx1MjBiZFwiLFxuICAgIHdvbjogXCJcXHUyMGE5XCIsXG4gICAgeXVhbjogXCJcXHUwMGE1XCIsXG4gICAgY2VkaWw6IFwiXFx1MDBiOFwiLFxufTtcbmNvbnN0IFNQRUNJQUxfQ0hBUlMgPSBuZXcgU2V0KFwiIT9cXFxcL1tdJCV7fV4mKigpPD58K1wiKTtcbmZ1bmN0aW9uIHZhbGlkYXRlRW50aXR5TmFtZShuYW1lKSB7XG4gICAgaWYgKG5hbWVbMF0gPT09IFwiI1wiKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgW0VudGl0eVJlcGxhY2VyXSBJbnZhbGlkIGNoYXJhY3RlciAnIycgaW4gZW50aXR5IG5hbWU6IFwiJHtuYW1lfVwiYCk7XG4gICAgfVxuICAgIGZvciAoY29uc3QgY2ggb2YgbmFtZSkge1xuICAgICAgICBpZiAoU1BFQ0lBTF9DSEFSUy5oYXMoY2gpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFtFbnRpdHlSZXBsYWNlcl0gSW52YWxpZCBjaGFyYWN0ZXIgJyR7Y2h9JyBpbiBlbnRpdHkgbmFtZTogXCIke25hbWV9XCJgKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbmFtZTtcbn1cbmZ1bmN0aW9uIG1lcmdlRW50aXR5TWFwcyguLi5tYXBzKSB7XG4gICAgY29uc3Qgb3V0ID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICBmb3IgKGNvbnN0IG1hcCBvZiBtYXBzKSB7XG4gICAgICAgIGlmICghbWFwKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhtYXApKSB7XG4gICAgICAgICAgICBjb25zdCByYXcgPSBtYXBba2V5XTtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgcmF3ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAgICAgb3V0W2tleV0gPSByYXc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChyYXcgJiYgdHlwZW9mIHJhdyA9PT0gXCJvYmplY3RcIiAmJiByYXcudmFsICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWwgPSByYXcudmFsO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAgICAgICAgIG91dFtrZXldID0gdmFsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gb3V0O1xufVxuY29uc3QgTElNSVRfVElFUl9FWFRFUk5BTCA9IFwiZXh0ZXJuYWxcIjtcbmNvbnN0IExJTUlUX1RJRVJfQkFTRSA9IFwiYmFzZVwiO1xuY29uc3QgTElNSVRfVElFUl9BTEwgPSBcImFsbFwiO1xuZnVuY3Rpb24gcGFyc2VMaW1pdFRpZXJzKHJhdykge1xuICAgIGlmICghcmF3IHx8IHJhdyA9PT0gTElNSVRfVElFUl9FWFRFUk5BTCkge1xuICAgICAgICByZXR1cm4gbmV3IFNldChbTElNSVRfVElFUl9FWFRFUk5BTF0pO1xuICAgIH1cbiAgICBpZiAocmF3ID09PSBMSU1JVF9USUVSX0FMTCkge1xuICAgICAgICByZXR1cm4gbmV3IFNldChbTElNSVRfVElFUl9BTExdKTtcbiAgICB9XG4gICAgaWYgKHJhdyA9PT0gTElNSVRfVElFUl9CQVNFKSB7XG4gICAgICAgIHJldHVybiBuZXcgU2V0KFtMSU1JVF9USUVSX0JBU0VdKTtcbiAgICB9XG4gICAgaWYgKEFycmF5LmlzQXJyYXkocmF3KSkge1xuICAgICAgICByZXR1cm4gbmV3IFNldChyYXcpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IFNldChbTElNSVRfVElFUl9FWFRFUk5BTF0pO1xufVxuY29uc3QgTkNSX0xFVkVMID0gT2JqZWN0LmZyZWV6ZSh7IGFsbG93OiAwLCBsZWF2ZTogMSwgcmVtb3ZlOiAyLCB0aHJvdzogMyB9KTtcbmNvbnN0IFhNTDEwX0FMTE9XRURfQzAgPSBuZXcgU2V0KFsweDA5LCAweDBhLCAweDBkXSk7XG5mdW5jdGlvbiBwYXJzZU5DUkNvbmZpZyhuY3IpIHtcbiAgICBpZiAoIW5jcikge1xuICAgICAgICByZXR1cm4geyB4bWxWZXJzaW9uOiAxLjAsIG9uTGV2ZWw6IE5DUl9MRVZFTC5hbGxvdywgbnVsbExldmVsOiBOQ1JfTEVWRUwucmVtb3ZlIH07XG4gICAgfVxuICAgIGNvbnN0IHhtbFZlcnNpb24gPSBuY3IueG1sVmVyc2lvbiA9PT0gMS4xID8gMS4xIDogMS4wO1xuICAgIGNvbnN0IG9uTGV2ZWwgPSBOQ1JfTEVWRUxbbmNyLm9uTkNSID8/IFwiYWxsb3dcIl0gPz8gTkNSX0xFVkVMLmFsbG93O1xuICAgIGNvbnN0IG51bGxMZXZlbCA9IE5DUl9MRVZFTFtuY3IubnVsbE5DUiA/PyBcInJlbW92ZVwiXSA/PyBOQ1JfTEVWRUwucmVtb3ZlO1xuICAgIGNvbnN0IGNsYW1wZWROdWxsID0gTWF0aC5tYXgobnVsbExldmVsLCBOQ1JfTEVWRUwucmVtb3ZlKTtcbiAgICByZXR1cm4geyB4bWxWZXJzaW9uLCBvbkxldmVsLCBudWxsTGV2ZWw6IGNsYW1wZWROdWxsIH07XG59XG5jb25zdCBFbnRpdHlEZWNvZGVySW1wbCA9IGNsYXNzIEVudGl0eURlY29kZXJJbXBsIHtcbiAgICBfbGltaXQ7XG4gICAgX21heFRvdGFsRXhwYW5zaW9ucztcbiAgICBfbWF4RXhwYW5kZWRMZW5ndGg7XG4gICAgX3Bvc3RDaGVjaztcbiAgICBfbGltaXRUaWVycztcbiAgICBfbnVtZXJpY0FsbG93ZWQ7XG4gICAgX2Jhc2VNYXA7XG4gICAgX2V4dGVybmFsTWFwO1xuICAgIF9pbnB1dE1hcDtcbiAgICBfdG90YWxFeHBhbnNpb25zO1xuICAgIF9leHBhbmRlZExlbmd0aDtcbiAgICBfcmVtb3ZlU2V0O1xuICAgIF9sZWF2ZVNldDtcbiAgICBfbmNyWG1sVmVyc2lvbjtcbiAgICBfbmNyT25MZXZlbDtcbiAgICBfbmNyTnVsbExldmVsO1xuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnMgPSB7fSkge1xuICAgICAgICB0aGlzLl9saW1pdCA9IG9wdGlvbnMubGltaXQgfHwge307XG4gICAgICAgIHRoaXMuX21heFRvdGFsRXhwYW5zaW9ucyA9IHRoaXMuX2xpbWl0Lm1heFRvdGFsRXhwYW5zaW9ucyB8fCAwO1xuICAgICAgICB0aGlzLl9tYXhFeHBhbmRlZExlbmd0aCA9IHRoaXMuX2xpbWl0Lm1heEV4cGFuZGVkTGVuZ3RoIHx8IDA7XG4gICAgICAgIHRoaXMuX3Bvc3RDaGVjayA9IHR5cGVvZiBvcHRpb25zLnBvc3RDaGVjayA9PT0gXCJmdW5jdGlvblwiID8gb3B0aW9ucy5wb3N0Q2hlY2sgOiAocikgPT4gcjtcbiAgICAgICAgdGhpcy5fbGltaXRUaWVycyA9IHBhcnNlTGltaXRUaWVycyh0aGlzLl9saW1pdC5hcHBseUxpbWl0c1RvID8/IExJTUlUX1RJRVJfRVhURVJOQUwpO1xuICAgICAgICB0aGlzLl9udW1lcmljQWxsb3dlZCA9IG9wdGlvbnMubnVtZXJpY0FsbG93ZWQgPz8gdHJ1ZTtcbiAgICAgICAgdGhpcy5fYmFzZU1hcCA9IG1lcmdlRW50aXR5TWFwcyhleHBvcnRzLlhNTCwgb3B0aW9ucy5uYW1lZEVudGl0aWVzIHx8IG51bGwpO1xuICAgICAgICB0aGlzLl9leHRlcm5hbE1hcCA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgICAgIHRoaXMuX2lucHV0TWFwID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgICAgdGhpcy5fdG90YWxFeHBhbnNpb25zID0gMDtcbiAgICAgICAgdGhpcy5fZXhwYW5kZWRMZW5ndGggPSAwO1xuICAgICAgICB0aGlzLl9yZW1vdmVTZXQgPSBuZXcgU2V0KG9wdGlvbnMucmVtb3ZlICYmIEFycmF5LmlzQXJyYXkob3B0aW9ucy5yZW1vdmUpID8gb3B0aW9ucy5yZW1vdmUgOiBbXSk7XG4gICAgICAgIHRoaXMuX2xlYXZlU2V0ID0gbmV3IFNldChvcHRpb25zLmxlYXZlICYmIEFycmF5LmlzQXJyYXkob3B0aW9ucy5sZWF2ZSkgPyBvcHRpb25zLmxlYXZlIDogW10pO1xuICAgICAgICBjb25zdCBuY3JDZmcgPSBwYXJzZU5DUkNvbmZpZyhvcHRpb25zLm5jcik7XG4gICAgICAgIHRoaXMuX25jclhtbFZlcnNpb24gPSBuY3JDZmcueG1sVmVyc2lvbjtcbiAgICAgICAgdGhpcy5fbmNyT25MZXZlbCA9IG5jckNmZy5vbkxldmVsO1xuICAgICAgICB0aGlzLl9uY3JOdWxsTGV2ZWwgPSBuY3JDZmcubnVsbExldmVsO1xuICAgIH1cbiAgICBzZXRFeHRlcm5hbEVudGl0aWVzKG1hcCkge1xuICAgICAgICBpZiAobWFwKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhtYXApKSB7XG4gICAgICAgICAgICAgICAgdmFsaWRhdGVFbnRpdHlOYW1lKGtleSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fZXh0ZXJuYWxNYXAgPSBtZXJnZUVudGl0eU1hcHMobWFwKTtcbiAgICB9XG4gICAgYWRkRXh0ZXJuYWxFbnRpdHkoa2V5LCB2YWx1ZSkge1xuICAgICAgICB2YWxpZGF0ZUVudGl0eU5hbWUoa2V5KTtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiAmJiB2YWx1ZS5pbmRleE9mKFwiJlwiKSA9PT0gLTEpIHtcbiAgICAgICAgICAgIHRoaXMuX2V4dGVybmFsTWFwW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBhZGRJbnB1dEVudGl0aWVzKG1hcCkge1xuICAgICAgICB0aGlzLl90b3RhbEV4cGFuc2lvbnMgPSAwO1xuICAgICAgICB0aGlzLl9leHBhbmRlZExlbmd0aCA9IDA7XG4gICAgICAgIHRoaXMuX2lucHV0TWFwID0gbWVyZ2VFbnRpdHlNYXBzKG1hcCk7XG4gICAgfVxuICAgIHJlc2V0KCkge1xuICAgICAgICB0aGlzLl9pbnB1dE1hcCA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgICAgIHRoaXMuX3RvdGFsRXhwYW5zaW9ucyA9IDA7XG4gICAgICAgIHRoaXMuX2V4cGFuZGVkTGVuZ3RoID0gMDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIHNldFhtbFZlcnNpb24odmVyc2lvbikge1xuICAgICAgICB0aGlzLl9uY3JYbWxWZXJzaW9uID0gdmVyc2lvbiA9PT0gXCIxLjFcIiB8fCB2ZXJzaW9uID09PSAxLjEgPyAxLjEgOiAxLjA7XG4gICAgfVxuICAgIGRlY29kZShzdHIpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBzdHIgIT09IFwic3RyaW5nXCIgfHwgc3RyLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIHN0cjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBvcmlnaW5hbCA9IHN0cjtcbiAgICAgICAgY29uc3QgY2h1bmtzID0gW107XG4gICAgICAgIGNvbnN0IGxlbiA9IHN0ci5sZW5ndGg7XG4gICAgICAgIGxldCBsYXN0ID0gMDtcbiAgICAgICAgbGV0IGkgPSAwO1xuICAgICAgICBjb25zdCBsaW1pdEV4cGFuc2lvbnMgPSB0aGlzLl9tYXhUb3RhbEV4cGFuc2lvbnMgPiAwO1xuICAgICAgICBjb25zdCBsaW1pdExlbmd0aCA9IHRoaXMuX21heEV4cGFuZGVkTGVuZ3RoID4gMDtcbiAgICAgICAgY29uc3QgY2hlY2tMaW1pdHMgPSBsaW1pdEV4cGFuc2lvbnMgfHwgbGltaXRMZW5ndGg7XG4gICAgICAgIHdoaWxlIChpIDwgbGVuKSB7XG4gICAgICAgICAgICBpZiAoc3RyLmNoYXJDb2RlQXQoaSkgIT09IDM4KSB7XG4gICAgICAgICAgICAgICAgaSsrO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IGogPSBpICsgMTtcbiAgICAgICAgICAgIHdoaWxlIChqIDwgbGVuICYmIHN0ci5jaGFyQ29kZUF0KGopICE9PSA1OSAmJiBqIC0gaSA8PSAzMikge1xuICAgICAgICAgICAgICAgIGorKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChqID49IGxlbiB8fCBzdHIuY2hhckNvZGVBdChqKSAhPT0gNTkpIHtcbiAgICAgICAgICAgICAgICBpKys7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCB0b2tlbiA9IHN0ci5zbGljZShpICsgMSwgaik7XG4gICAgICAgICAgICBpZiAodG9rZW4ubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgaSsrO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IHJlcGxhY2VtZW50O1xuICAgICAgICAgICAgbGV0IHRpZXI7XG4gICAgICAgICAgICBpZiAodGhpcy5fcmVtb3ZlU2V0Lmhhcyh0b2tlbikpIHtcbiAgICAgICAgICAgICAgICByZXBsYWNlbWVudCA9IFwiXCI7XG4gICAgICAgICAgICAgICAgaWYgKHRpZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICB0aWVyID0gTElNSVRfVElFUl9FWFRFUk5BTDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmICh0aGlzLl9sZWF2ZVNldC5oYXModG9rZW4pKSB7XG4gICAgICAgICAgICAgICAgaSsrO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAodG9rZW4uY2hhckNvZGVBdCgwKSA9PT0gMzUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBuY3JSZXN1bHQgPSB0aGlzLl9yZXNvbHZlTkNSKHRva2VuKTtcbiAgICAgICAgICAgICAgICBpZiAobmNyUmVzdWx0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgaSsrO1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmVwbGFjZW1lbnQgPSBuY3JSZXN1bHQ7XG4gICAgICAgICAgICAgICAgdGllciA9IExJTUlUX1RJRVJfQkFTRTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc29sdmVkID0gdGhpcy5fcmVzb2x2ZU5hbWUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHJlcGxhY2VtZW50ID0gcmVzb2x2ZWQ/LnZhbHVlO1xuICAgICAgICAgICAgICAgIHRpZXIgPSByZXNvbHZlZD8udGllcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgaSsrO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGkgPiBsYXN0KSB7XG4gICAgICAgICAgICAgICAgY2h1bmtzLnB1c2goc3RyLnNsaWNlKGxhc3QsIGkpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNodW5rcy5wdXNoKHJlcGxhY2VtZW50KTtcbiAgICAgICAgICAgIGxhc3QgPSBqICsgMTtcbiAgICAgICAgICAgIGkgPSBsYXN0O1xuICAgICAgICAgICAgaWYgKGNoZWNrTGltaXRzICYmIHRoaXMuX3RpZXJDb3VudHModGllcikpIHtcbiAgICAgICAgICAgICAgICBpZiAobGltaXRFeHBhbnNpb25zKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3RvdGFsRXhwYW5zaW9ucysrO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fdG90YWxFeHBhbnNpb25zID4gdGhpcy5fbWF4VG90YWxFeHBhbnNpb25zKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFtFbnRpdHlSZXBsYWNlcl0gRW50aXR5IGV4cGFuc2lvbiBjb3VudCBsaW1pdCBleGNlZWRlZDogYCArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYCR7dGhpcy5fdG90YWxFeHBhbnNpb25zfSA+ICR7dGhpcy5fbWF4VG90YWxFeHBhbnNpb25zfWApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChsaW1pdExlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkZWx0YSA9IHJlcGxhY2VtZW50Lmxlbmd0aCAtICh0b2tlbi5sZW5ndGggKyAyKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRlbHRhID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fZXhwYW5kZWRMZW5ndGggKz0gZGVsdGE7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fZXhwYW5kZWRMZW5ndGggPiB0aGlzLl9tYXhFeHBhbmRlZExlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgW0VudGl0eVJlcGxhY2VyXSBFeHBhbmRlZCBjb250ZW50IGxlbmd0aCBsaW1pdCBleGNlZWRlZDogYCArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGAke3RoaXMuX2V4cGFuZGVkTGVuZ3RofSA+ICR7dGhpcy5fbWF4RXhwYW5kZWRMZW5ndGh9YCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxhc3QgPCBsZW4pIHtcbiAgICAgICAgICAgIGNodW5rcy5wdXNoKHN0ci5zbGljZShsYXN0KSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gY2h1bmtzLmxlbmd0aCA9PT0gMCA/IHN0ciA6IGNodW5rcy5qb2luKFwiXCIpO1xuICAgICAgICByZXR1cm4gdGhpcy5fcG9zdENoZWNrKHJlc3VsdCwgb3JpZ2luYWwpO1xuICAgIH1cbiAgICBfdGllckNvdW50cyh0aWVyKSB7XG4gICAgICAgIGlmICh0aGlzLl9saW1pdFRpZXJzLmhhcyhMSU1JVF9USUVSX0FMTCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9saW1pdFRpZXJzLmhhcyh0aWVyKTtcbiAgICB9XG4gICAgX3Jlc29sdmVOYW1lKG5hbWUpIHtcbiAgICAgICAgaWYgKG5hbWUgaW4gdGhpcy5faW5wdXRNYXApIHtcbiAgICAgICAgICAgIHJldHVybiB7IHZhbHVlOiB0aGlzLl9pbnB1dE1hcFtuYW1lXSwgdGllcjogTElNSVRfVElFUl9FWFRFUk5BTCB9O1xuICAgICAgICB9XG4gICAgICAgIGlmIChuYW1lIGluIHRoaXMuX2V4dGVybmFsTWFwKSB7XG4gICAgICAgICAgICByZXR1cm4geyB2YWx1ZTogdGhpcy5fZXh0ZXJuYWxNYXBbbmFtZV0sIHRpZXI6IExJTUlUX1RJRVJfRVhURVJOQUwgfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobmFtZSBpbiB0aGlzLl9iYXNlTWFwKSB7XG4gICAgICAgICAgICByZXR1cm4geyB2YWx1ZTogdGhpcy5fYmFzZU1hcFtuYW1lXSwgdGllcjogTElNSVRfVElFUl9CQVNFIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgX2NsYXNzaWZ5TkNSKGNwKSB7XG4gICAgICAgIGlmIChjcCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX25jck51bGxMZXZlbDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY3AgPj0gMHhkODAwICYmIGNwIDw9IDB4ZGZmZikge1xuICAgICAgICAgICAgcmV0dXJuIE5DUl9MRVZFTC5yZW1vdmU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuX25jclhtbFZlcnNpb24gPT09IDEuMCkge1xuICAgICAgICAgICAgaWYgKGNwID49IDB4MDEgJiYgY3AgPD0gMHgxZiAmJiAhWE1MMTBfQUxMT1dFRF9DMC5oYXMoY3ApKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIE5DUl9MRVZFTC5yZW1vdmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIC0xO1xuICAgIH1cbiAgICBfYXBwbHlOQ1JBY3Rpb24oYWN0aW9uLCB0b2tlbiwgY3ApIHtcbiAgICAgICAgc3dpdGNoIChhY3Rpb24pIHtcbiAgICAgICAgICAgIGNhc2UgTkNSX0xFVkVMLmFsbG93OlxuICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmcuZnJvbUNvZGVQb2ludChjcCk7XG4gICAgICAgICAgICBjYXNlIE5DUl9MRVZFTC5yZW1vdmU6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiXCI7XG4gICAgICAgICAgICBjYXNlIE5DUl9MRVZFTC5sZWF2ZTpcbiAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgY2FzZSBOQ1JfTEVWRUwudGhyb3c6XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBbRW50aXR5RGVjb2Rlcl0gUHJvaGliaXRlZCBudW1lcmljIGNoYXJhY3RlciByZWZlcmVuY2UgYCArXG4gICAgICAgICAgICAgICAgICAgIGAmJHt0b2tlbn07IChVKyR7Y3AudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCkucGFkU3RhcnQoNCwgXCIwXCIpfSlgKTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZy5mcm9tQ29kZVBvaW50KGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBfcmVzb2x2ZU5DUih0b2tlbikge1xuICAgICAgICBjb25zdCBzZWNvbmQgPSB0b2tlbi5jaGFyQ29kZUF0KDEpO1xuICAgICAgICBsZXQgY3A7XG4gICAgICAgIGlmIChzZWNvbmQgPT09IDEyMCB8fCBzZWNvbmQgPT09IDg4KSB7XG4gICAgICAgICAgICBjcCA9IHBhcnNlSW50KHRva2VuLnNsaWNlKDIpLCAxNik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjcCA9IHBhcnNlSW50KHRva2VuLnNsaWNlKDEpLCAxMCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKE51bWJlci5pc05hTihjcCkgfHwgY3AgPCAwIHx8IGNwID4gMHgxMGZmZmYpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbWluaW11bSA9IHRoaXMuX2NsYXNzaWZ5TkNSKGNwKTtcbiAgICAgICAgaWYgKCF0aGlzLl9udW1lcmljQWxsb3dlZCAmJiBtaW5pbXVtIDwgTkNSX0xFVkVMLnJlbW92ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBlZmZlY3RpdmUgPSBtaW5pbXVtID09PSAtMSA/IHRoaXMuX25jck9uTGV2ZWwgOiBNYXRoLm1heCh0aGlzLl9uY3JPbkxldmVsLCBtaW5pbXVtKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FwcGx5TkNSQWN0aW9uKGVmZmVjdGl2ZSwgdG9rZW4sIGNwKTtcbiAgICB9XG59O1xuZXhwb3J0cy5FbnRpdHlEZWNvZGVySW1wbCA9IEVudGl0eURlY29kZXJJbXBsO1xuIiwgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5wYXJzZVhNTCA9IHBhcnNlWE1MO1xuY29uc3QgZmFzdF94bWxfcGFyc2VyXzEgPSByZXF1aXJlKFwiZmFzdC14bWwtcGFyc2VyXCIpO1xuY29uc3Qgbm9kYWJsZV9lbnRpdGllc18xID0gcmVxdWlyZShcIi4veG1sLWV4dGVybmFsL25vZGFibGVfZW50aXRpZXNcIik7XG5jb25zdCBlbnRpdHlEZWNvZGVyID0gbmV3IG5vZGFibGVfZW50aXRpZXNfMS5FbnRpdHlEZWNvZGVySW1wbCh7XG4gICAgbmFtZWRFbnRpdGllczogeyAuLi5ub2RhYmxlX2VudGl0aWVzXzEuWE1MLCAuLi5ub2RhYmxlX2VudGl0aWVzXzEuQ09NTU9OX0hUTUwsIC4uLm5vZGFibGVfZW50aXRpZXNfMS5DVVJSRU5DWSB9LFxuICAgIG51bWVyaWNBbGxvd2VkOiB0cnVlLFxuICAgIGxpbWl0OiB7XG4gICAgICAgIG1heFRvdGFsRXhwYW5zaW9uczogSW5maW5pdHksXG4gICAgfSxcbiAgICBuY3I6IHtcbiAgICAgICAgeG1sVmVyc2lvbjogMS4xLFxuICAgIH0sXG59KTtcbmNvbnN0IHBhcnNlciA9IG5ldyBmYXN0X3htbF9wYXJzZXJfMS5YTUxQYXJzZXIoe1xuICAgIGF0dHJpYnV0ZU5hbWVQcmVmaXg6IFwiXCIsXG4gICAgcHJvY2Vzc0VudGl0aWVzOiB7XG4gICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgIG1heFRvdGFsRXhwYW5zaW9uczogSW5maW5pdHksXG4gICAgfSxcbiAgICBodG1sRW50aXRpZXM6IHRydWUsXG4gICAgZW50aXR5RGVjb2Rlcjoge1xuICAgICAgICBzZXRFeHRlcm5hbEVudGl0aWVzOiAoZW50aXRpZXMpID0+IHtcbiAgICAgICAgICAgIGVudGl0eURlY29kZXIuc2V0RXh0ZXJuYWxFbnRpdGllcyhlbnRpdGllcyk7XG4gICAgICAgIH0sXG4gICAgICAgIGFkZElucHV0RW50aXRpZXM6IChlbnRpdGllcykgPT4ge1xuICAgICAgICAgICAgZW50aXR5RGVjb2Rlci5hZGRJbnB1dEVudGl0aWVzKGVudGl0aWVzKTtcbiAgICAgICAgfSxcbiAgICAgICAgcmVzZXQ6ICgpID0+IHtcbiAgICAgICAgICAgIGVudGl0eURlY29kZXIucmVzZXQoKTtcbiAgICAgICAgfSxcbiAgICAgICAgZGVjb2RlOiAodGV4dCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGVudGl0eURlY29kZXIuZGVjb2RlKHRleHQpO1xuICAgICAgICB9LFxuICAgICAgICBzZXRYbWxWZXJzaW9uOiAodmVyc2lvbikgPT4gdm9pZCB7fSxcbiAgICB9LFxuICAgIGlnbm9yZUF0dHJpYnV0ZXM6IGZhbHNlLFxuICAgIGlnbm9yZURlY2xhcmF0aW9uOiB0cnVlLFxuICAgIHBhcnNlVGFnVmFsdWU6IGZhbHNlLFxuICAgIHRyaW1WYWx1ZXM6IGZhbHNlLFxuICAgIHRhZ1ZhbHVlUHJvY2Vzc29yOiAoXywgdmFsKSA9PiAodmFsLnRyaW0oKSA9PT0gXCJcIiAmJiB2YWwuaW5jbHVkZXMoXCJcXG5cIikgPyBcIlwiIDogdW5kZWZpbmVkKSxcbiAgICBtYXhOZXN0ZWRUYWdzOiBJbmZpbml0eSxcbn0pO1xuZnVuY3Rpb24gcGFyc2VYTUwoeG1sU3RyaW5nKSB7XG4gICAgcmV0dXJuIHBhcnNlci5wYXJzZSh4bWxTdHJpbmcsIHRydWUpO1xufVxuIiwgIid1c2Ugc3RyaWN0JztcblxudmFyIHhtbFBhcnNlciA9IHJlcXVpcmUoJy4veG1sLXBhcnNlcicpO1xuXG5jb25zdCBBVFRSX0VTQ0FQRV9SRSA9IC9bJjw+XCJdL2c7XG5jb25zdCBBVFRSX0VTQ0FQRV9NQVAgPSB7XG4gICAgXCImXCI6IFwiJmFtcDtcIixcbiAgICBcIjxcIjogXCImbHQ7XCIsXG4gICAgXCI+XCI6IFwiJmd0O1wiLFxuICAgICdcIic6IFwiJnF1b3Q7XCIsXG59O1xuZnVuY3Rpb24gZXNjYXBlQXR0cmlidXRlKHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlLnJlcGxhY2UoQVRUUl9FU0NBUEVfUkUsIChjaCkgPT4gQVRUUl9FU0NBUEVfTUFQW2NoXSk7XG59XG5cbmNvbnN0IEVMRU1FTlRfRVNDQVBFX1JFID0gL1smXCInPD5cXHJcXG5cXHUwMDg1XFx1MjAyOF0vZztcbmNvbnN0IEVMRU1FTlRfRVNDQVBFX01BUCA9IHtcbiAgICBcIiZcIjogXCImYW1wO1wiLFxuICAgICdcIic6IFwiJnF1b3Q7XCIsXG4gICAgXCInXCI6IFwiJmFwb3M7XCIsXG4gICAgXCI8XCI6IFwiJmx0O1wiLFxuICAgIFwiPlwiOiBcIiZndDtcIixcbiAgICBcIlxcclwiOiBcIiYjeDBEO1wiLFxuICAgIFwiXFxuXCI6IFwiJiN4MEE7XCIsXG4gICAgXCJcXHUwMDg1XCI6IFwiJiN4ODU7XCIsXG4gICAgXCJcXHUyMDI4XCI6IFwiJiN4MjAyODtcIixcbn07XG5mdW5jdGlvbiBlc2NhcGVFbGVtZW50KHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlLnJlcGxhY2UoRUxFTUVOVF9FU0NBUEVfUkUsIChjaCkgPT4gRUxFTUVOVF9FU0NBUEVfTUFQW2NoXSk7XG59XG5cbmNsYXNzIFhtbFRleHQge1xuICAgIHZhbHVlO1xuICAgIGNvbnN0cnVjdG9yKHZhbHVlKSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB9XG4gICAgdG9TdHJpbmcoKSB7XG4gICAgICAgIHJldHVybiBlc2NhcGVFbGVtZW50KFwiXCIgKyB0aGlzLnZhbHVlKTtcbiAgICB9XG59XG5cbmNsYXNzIFhtbE5vZGUge1xuICAgIG5hbWU7XG4gICAgY2hpbGRyZW47XG4gICAgYXR0cmlidXRlcyA9IHt9O1xuICAgIHN0YXRpYyBvZihuYW1lLCBjaGlsZFRleHQsIHdpdGhOYW1lKSB7XG4gICAgICAgIGNvbnN0IG5vZGUgPSBuZXcgWG1sTm9kZShuYW1lKTtcbiAgICAgICAgaWYgKGNoaWxkVGV4dCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBub2RlLmFkZENoaWxkTm9kZShuZXcgWG1sVGV4dChjaGlsZFRleHQpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAod2l0aE5hbWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgbm9kZS53aXRoTmFtZSh3aXRoTmFtZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5vZGU7XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKG5hbWUsIGNoaWxkcmVuID0gW10pIHtcbiAgICAgICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICAgICAgdGhpcy5jaGlsZHJlbiA9IGNoaWxkcmVuO1xuICAgIH1cbiAgICB3aXRoTmFtZShuYW1lKSB7XG4gICAgICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBhZGRBdHRyaWJ1dGUobmFtZSwgdmFsdWUpIHtcbiAgICAgICAgdGhpcy5hdHRyaWJ1dGVzW25hbWVdID0gdmFsdWU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBhZGRDaGlsZE5vZGUoY2hpbGQpIHtcbiAgICAgICAgdGhpcy5jaGlsZHJlbi5wdXNoKGNoaWxkKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIHJlbW92ZUF0dHJpYnV0ZShuYW1lKSB7XG4gICAgICAgIGRlbGV0ZSB0aGlzLmF0dHJpYnV0ZXNbbmFtZV07XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBuKG5hbWUpIHtcbiAgICAgICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIGMoY2hpbGQpIHtcbiAgICAgICAgdGhpcy5jaGlsZHJlbi5wdXNoKGNoaWxkKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIGEobmFtZSwgdmFsdWUpIHtcbiAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuYXR0cmlidXRlc1tuYW1lXSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBjYyhpbnB1dCwgZmllbGQsIHdpdGhOYW1lID0gZmllbGQpIHtcbiAgICAgICAgaWYgKGlucHV0W2ZpZWxkXSAhPSBudWxsKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlID0gWG1sTm9kZS5vZihmaWVsZCwgaW5wdXRbZmllbGRdKS53aXRoTmFtZSh3aXRoTmFtZSk7XG4gICAgICAgICAgICB0aGlzLmMobm9kZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbChpbnB1dCwgbGlzdE5hbWUsIG1lbWJlck5hbWUsIHZhbHVlUHJvdmlkZXIpIHtcbiAgICAgICAgaWYgKGlucHV0W2xpc3ROYW1lXSAhPSBudWxsKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlcyA9IHZhbHVlUHJvdmlkZXIoKTtcbiAgICAgICAgICAgIG5vZGVzLm1hcCgobm9kZSkgPT4ge1xuICAgICAgICAgICAgICAgIG5vZGUud2l0aE5hbWUobWVtYmVyTmFtZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5jKG5vZGUpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbGMoaW5wdXQsIGxpc3ROYW1lLCBtZW1iZXJOYW1lLCB2YWx1ZVByb3ZpZGVyKSB7XG4gICAgICAgIGlmIChpbnB1dFtsaXN0TmFtZV0gIT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZXMgPSB2YWx1ZVByb3ZpZGVyKCk7XG4gICAgICAgICAgICBjb25zdCBjb250YWluZXJOb2RlID0gbmV3IFhtbE5vZGUobWVtYmVyTmFtZSk7XG4gICAgICAgICAgICBub2Rlcy5tYXAoKG5vZGUpID0+IHtcbiAgICAgICAgICAgICAgICBjb250YWluZXJOb2RlLmMobm9kZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuYyhjb250YWluZXJOb2RlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICB0b1N0cmluZygpIHtcbiAgICAgICAgY29uc3QgaGFzQ2hpbGRyZW4gPSBCb29sZWFuKHRoaXMuY2hpbGRyZW4ubGVuZ3RoKTtcbiAgICAgICAgbGV0IHhtbFRleHQgPSBgPCR7dGhpcy5uYW1lfWA7XG4gICAgICAgIGNvbnN0IGF0dHJpYnV0ZXMgPSB0aGlzLmF0dHJpYnV0ZXM7XG4gICAgICAgIGZvciAoY29uc3QgYXR0cmlidXRlTmFtZSBvZiBPYmplY3Qua2V5cyhhdHRyaWJ1dGVzKSkge1xuICAgICAgICAgICAgY29uc3QgYXR0cmlidXRlID0gYXR0cmlidXRlc1thdHRyaWJ1dGVOYW1lXTtcbiAgICAgICAgICAgIGlmIChhdHRyaWJ1dGUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHhtbFRleHQgKz0gYCAke2F0dHJpYnV0ZU5hbWV9PVwiJHtlc2NhcGVBdHRyaWJ1dGUoXCJcIiArIGF0dHJpYnV0ZSl9XCJgO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiAoeG1sVGV4dCArPSAhaGFzQ2hpbGRyZW4gPyBcIi8+XCIgOiBgPiR7dGhpcy5jaGlsZHJlbi5tYXAoKGMpID0+IGMudG9TdHJpbmcoKSkuam9pbihcIlwiKX08LyR7dGhpcy5uYW1lfT5gKTtcbiAgICB9XG59XG5cbmV4cG9ydHMucGFyc2VYTUwgPSB4bWxQYXJzZXIucGFyc2VYTUw7XG5leHBvcnRzLlhtbE5vZGUgPSBYbWxOb2RlO1xuZXhwb3J0cy5YbWxUZXh0ID0gWG1sVGV4dDtcbiIsICJpbXBvcnQgeyBwYXJzZVhNTCB9IGZyb20gXCJAYXdzLXNkay94bWwtYnVpbGRlclwiO1xuaW1wb3J0IHsgRnJvbVN0cmluZ1NoYXBlRGVzZXJpYWxpemVyIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9wcm90b2NvbHNcIjtcbmltcG9ydCB7IE5vcm1hbGl6ZWRTY2hlbWEgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3NjaGVtYVwiO1xuaW1wb3J0IHsgZ2V0VmFsdWVGcm9tVGV4dE5vZGUgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyB0b1V0ZjggfSBmcm9tIFwiQHNtaXRoeS91dGlsLXV0ZjhcIjtcbmltcG9ydCB7IFNlcmRlQ29udGV4dENvbmZpZyB9IGZyb20gXCIuLi9Db25maWd1cmFibGVTZXJkZUNvbnRleHRcIjtcbmltcG9ydCB7IFVuaW9uU2VyZGUgfSBmcm9tIFwiLi4vVW5pb25TZXJkZVwiO1xuZXhwb3J0IGNsYXNzIFhtbFNoYXBlRGVzZXJpYWxpemVyIGV4dGVuZHMgU2VyZGVDb250ZXh0Q29uZmlnIHtcbiAgICBzZXR0aW5ncztcbiAgICBzdHJpbmdEZXNlcmlhbGl6ZXI7XG4gICAgY29uc3RydWN0b3Ioc2V0dGluZ3MpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5zZXR0aW5ncyA9IHNldHRpbmdzO1xuICAgICAgICB0aGlzLnN0cmluZ0Rlc2VyaWFsaXplciA9IG5ldyBGcm9tU3RyaW5nU2hhcGVEZXNlcmlhbGl6ZXIoc2V0dGluZ3MpO1xuICAgIH1cbiAgICBzZXRTZXJkZUNvbnRleHQoc2VyZGVDb250ZXh0KSB7XG4gICAgICAgIHRoaXMuc2VyZGVDb250ZXh0ID0gc2VyZGVDb250ZXh0O1xuICAgICAgICB0aGlzLnN0cmluZ0Rlc2VyaWFsaXplci5zZXRTZXJkZUNvbnRleHQoc2VyZGVDb250ZXh0KTtcbiAgICB9XG4gICAgcmVhZChzY2hlbWEsIGJ5dGVzLCBrZXkpIHtcbiAgICAgICAgY29uc3QgbnMgPSBOb3JtYWxpemVkU2NoZW1hLm9mKHNjaGVtYSk7XG4gICAgICAgIGNvbnN0IG1lbWJlclNjaGVtYXMgPSBucy5nZXRNZW1iZXJTY2hlbWFzKCk7XG4gICAgICAgIGNvbnN0IGlzRXZlbnRQYXlsb2FkID0gbnMuaXNTdHJ1Y3RTY2hlbWEoKSAmJlxuICAgICAgICAgICAgbnMuaXNNZW1iZXJTY2hlbWEoKSAmJlxuICAgICAgICAgICAgISFPYmplY3QudmFsdWVzKG1lbWJlclNjaGVtYXMpLmZpbmQoKG1lbWJlck5zKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICEhbWVtYmVyTnMuZ2V0TWVtYmVyVHJhaXRzKCkuZXZlbnRQYXlsb2FkO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIGlmIChpc0V2ZW50UGF5bG9hZCkge1xuICAgICAgICAgICAgY29uc3Qgb3V0cHV0ID0ge307XG4gICAgICAgICAgICBjb25zdCBtZW1iZXJOYW1lID0gT2JqZWN0LmtleXMobWVtYmVyU2NoZW1hcylbMF07XG4gICAgICAgICAgICBjb25zdCBldmVudE1lbWJlclNjaGVtYSA9IG1lbWJlclNjaGVtYXNbbWVtYmVyTmFtZV07XG4gICAgICAgICAgICBpZiAoZXZlbnRNZW1iZXJTY2hlbWEuaXNCbG9iU2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICBvdXRwdXRbbWVtYmVyTmFtZV0gPSBieXRlcztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIG91dHB1dFttZW1iZXJOYW1lXSA9IHRoaXMucmVhZChtZW1iZXJTY2hlbWFzW21lbWJlck5hbWVdLCBieXRlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gb3V0cHV0O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHhtbFN0cmluZyA9ICh0aGlzLnNlcmRlQ29udGV4dD8udXRmOEVuY29kZXIgPz8gdG9VdGY4KShieXRlcyk7XG4gICAgICAgIGNvbnN0IHBhcnNlZE9iamVjdCA9IHRoaXMucGFyc2VYbWwoeG1sU3RyaW5nKTtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVhZFNjaGVtYShzY2hlbWEsIGtleSA/IHBhcnNlZE9iamVjdFtrZXldIDogcGFyc2VkT2JqZWN0KTtcbiAgICB9XG4gICAgcmVhZFNjaGVtYShfc2NoZW1hLCB2YWx1ZSkge1xuICAgICAgICBjb25zdCBucyA9IE5vcm1hbGl6ZWRTY2hlbWEub2YoX3NjaGVtYSk7XG4gICAgICAgIGlmIChucy5pc1VuaXRTY2hlbWEoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHRyYWl0cyA9IG5zLmdldE1lcmdlZFRyYWl0cygpO1xuICAgICAgICBpZiAobnMuaXNMaXN0U2NoZW1hKCkgJiYgIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yZWFkU2NoZW1hKG5zLCBbdmFsdWVdKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgIGNvbnN0IGZsYXQgPSAhIXRyYWl0cy54bWxGbGF0dGVuZWQ7XG4gICAgICAgICAgICBpZiAobnMuaXNMaXN0U2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBsaXN0VmFsdWUgPSBucy5nZXRWYWx1ZVNjaGVtYSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGJ1ZmZlciA9IFtdO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNvdXJjZUtleSA9IGxpc3RWYWx1ZS5nZXRNZXJnZWRUcmFpdHMoKS54bWxOYW1lID8/IFwibWVtYmVyXCI7XG4gICAgICAgICAgICAgICAgY29uc3Qgc291cmNlID0gZmxhdCA/IHZhbHVlIDogKHZhbHVlWzBdID8/IHZhbHVlKVtzb3VyY2VLZXldO1xuICAgICAgICAgICAgICAgIGlmIChzb3VyY2UgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYnVmZmVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBzb3VyY2VBcnJheSA9IEFycmF5LmlzQXJyYXkoc291cmNlKSA/IHNvdXJjZSA6IFtzb3VyY2VdO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgdiBvZiBzb3VyY2VBcnJheSkge1xuICAgICAgICAgICAgICAgICAgICBidWZmZXIucHVzaCh0aGlzLnJlYWRTY2hlbWEobGlzdFZhbHVlLCB2KSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBidWZmZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBidWZmZXIgPSB7fTtcbiAgICAgICAgICAgIGlmIChucy5pc01hcFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qga2V5TnMgPSBucy5nZXRLZXlTY2hlbWEoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBtZW1iZXJOcyA9IG5zLmdldFZhbHVlU2NoZW1hKCk7XG4gICAgICAgICAgICAgICAgbGV0IGVudHJpZXM7XG4gICAgICAgICAgICAgICAgaWYgKGZsYXQpIHtcbiAgICAgICAgICAgICAgICAgICAgZW50cmllcyA9IEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbdmFsdWVdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgZW50cmllcyA9IEFycmF5LmlzQXJyYXkodmFsdWUuZW50cnkpID8gdmFsdWUuZW50cnkgOiBbdmFsdWUuZW50cnldO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBrZXlQcm9wZXJ0eSA9IGtleU5zLmdldE1lcmdlZFRyYWl0cygpLnhtbE5hbWUgPz8gXCJrZXlcIjtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZVByb3BlcnR5ID0gbWVtYmVyTnMuZ2V0TWVyZ2VkVHJhaXRzKCkueG1sTmFtZSA/PyBcInZhbHVlXCI7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBlbnRyeSBvZiBlbnRyaWVzKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IGVudHJ5W2tleVByb3BlcnR5XTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBlbnRyeVt2YWx1ZVByb3BlcnR5XTtcbiAgICAgICAgICAgICAgICAgICAgYnVmZmVyW2tleV0gPSB0aGlzLnJlYWRTY2hlbWEobWVtYmVyTnMsIHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGJ1ZmZlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChucy5pc1N0cnVjdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdW5pb24gPSBucy5pc1VuaW9uU2NoZW1hKCk7XG4gICAgICAgICAgICAgICAgbGV0IHVuaW9uU2VyZGU7XG4gICAgICAgICAgICAgICAgaWYgKHVuaW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIHVuaW9uU2VyZGUgPSBuZXcgVW5pb25TZXJkZSh2YWx1ZSwgYnVmZmVyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBbbWVtYmVyTmFtZSwgbWVtYmVyU2NoZW1hXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1lbWJlclRyYWl0cyA9IG1lbWJlclNjaGVtYS5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sT2JqZWN0S2V5ID0gIW1lbWJlclRyYWl0cy5odHRwUGF5bG9hZFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBtZW1iZXJTY2hlbWEuZ2V0TWVtYmVyVHJhaXRzKCkueG1sTmFtZSA/PyBtZW1iZXJOYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICA6IG1lbWJlclRyYWl0cy54bWxOYW1lID8/IG1lbWJlclNjaGVtYS5nZXROYW1lKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh1bmlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdW5pb25TZXJkZS5tYXJrKHhtbE9iamVjdEtleSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlW3htbE9iamVjdEtleV0gIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyW21lbWJlck5hbWVdID0gdGhpcy5yZWFkU2NoZW1hKG1lbWJlclNjaGVtYSwgdmFsdWVbeG1sT2JqZWN0S2V5XSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHVuaW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIHVuaW9uU2VyZGUud3JpdGVVbmtub3duKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBidWZmZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobnMuaXNEb2N1bWVudFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBAYXdzLXNkay9jb3JlL3Byb3RvY29scyAtIHhtbCBkZXNlcmlhbGl6ZXIgdW5oYW5kbGVkIHNjaGVtYSB0eXBlIGZvciAke25zLmdldE5hbWUodHJ1ZSl9YCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzTGlzdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzTWFwU2NoZW1hKCkgfHwgbnMuaXNTdHJ1Y3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnN0cmluZ0Rlc2VyaWFsaXplci5yZWFkKG5zLCB2YWx1ZSk7XG4gICAgfVxuICAgIHBhcnNlWG1sKHhtbCkge1xuICAgICAgICBpZiAoeG1sLmxlbmd0aCkge1xuICAgICAgICAgICAgbGV0IHBhcnNlZE9iajtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgcGFyc2VkT2JqID0gcGFyc2VYTUwoeG1sKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgaWYgKGUgJiYgdHlwZW9mIGUgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIFwiJHJlc3BvbnNlQm9keVRleHRcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHhtbCxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCB0ZXh0Tm9kZU5hbWUgPSBcIiN0ZXh0XCI7XG4gICAgICAgICAgICBjb25zdCBrZXkgPSBPYmplY3Qua2V5cyhwYXJzZWRPYmopWzBdO1xuICAgICAgICAgICAgY29uc3QgcGFyc2VkT2JqVG9SZXR1cm4gPSBwYXJzZWRPYmpba2V5XTtcbiAgICAgICAgICAgIGlmIChwYXJzZWRPYmpUb1JldHVyblt0ZXh0Tm9kZU5hbWVdKSB7XG4gICAgICAgICAgICAgICAgcGFyc2VkT2JqVG9SZXR1cm5ba2V5XSA9IHBhcnNlZE9ialRvUmV0dXJuW3RleHROb2RlTmFtZV07XG4gICAgICAgICAgICAgICAgZGVsZXRlIHBhcnNlZE9ialRvUmV0dXJuW3RleHROb2RlTmFtZV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZ2V0VmFsdWVGcm9tVGV4dE5vZGUocGFyc2VkT2JqVG9SZXR1cm4pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7fTtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgZGV0ZXJtaW5lVGltZXN0YW1wRm9ybWF0LCBleHRlbmRlZEVuY29kZVVSSUNvbXBvbmVudCB9IGZyb20gXCJAc21pdGh5L2NvcmUvcHJvdG9jb2xzXCI7XG5pbXBvcnQgeyBOb3JtYWxpemVkU2NoZW1hIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IGdlbmVyYXRlSWRlbXBvdGVuY3lUb2tlbiwgTnVtZXJpY1ZhbHVlIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zZXJkZVwiO1xuaW1wb3J0IHsgZGF0ZVRvVXRjU3RyaW5nIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgdG9CYXNlNjQgfSBmcm9tIFwiQHNtaXRoeS91dGlsLWJhc2U2NFwiO1xuaW1wb3J0IHsgU2VyZGVDb250ZXh0Q29uZmlnIH0gZnJvbSBcIi4uL0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dFwiO1xuZXhwb3J0IGNsYXNzIFF1ZXJ5U2hhcGVTZXJpYWxpemVyIGV4dGVuZHMgU2VyZGVDb250ZXh0Q29uZmlnIHtcbiAgICBzZXR0aW5ncztcbiAgICBidWZmZXI7XG4gICAgY29uc3RydWN0b3Ioc2V0dGluZ3MpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5zZXR0aW5ncyA9IHNldHRpbmdzO1xuICAgIH1cbiAgICB3cml0ZShzY2hlbWEsIHZhbHVlLCBwcmVmaXggPSBcIlwiKSB7XG4gICAgICAgIGlmICh0aGlzLmJ1ZmZlciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmJ1ZmZlciA9IFwiXCI7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbnMgPSBOb3JtYWxpemVkU2NoZW1hLm9mKHNjaGVtYSk7XG4gICAgICAgIGlmIChwcmVmaXggJiYgIXByZWZpeC5lbmRzV2l0aChcIi5cIikpIHtcbiAgICAgICAgICAgIHByZWZpeCArPSBcIi5cIjtcbiAgICAgICAgfVxuICAgICAgICBpZiAobnMuaXNCbG9iU2NoZW1hKCkpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgfHwgdmFsdWUgaW5zdGFuY2VvZiBVaW50OEFycmF5KSB7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZUtleShwcmVmaXgpO1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVWYWx1ZSgodGhpcy5zZXJkZUNvbnRleHQ/LmJhc2U2NEVuY29kZXIgPz8gdG9CYXNlNjQpKHZhbHVlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAobnMuaXNCb29sZWFuU2NoZW1hKCkgfHwgbnMuaXNOdW1lcmljU2NoZW1hKCkgfHwgbnMuaXNTdHJpbmdTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlS2V5KHByZWZpeCk7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKFN0cmluZyh2YWx1ZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAobnMuaXNJZGVtcG90ZW5jeVRva2VuKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlS2V5KHByZWZpeCk7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKGdlbmVyYXRlSWRlbXBvdGVuY3lUb2tlbigpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChucy5pc0JpZ0ludGVnZXJTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlS2V5KHByZWZpeCk7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKFN0cmluZyh2YWx1ZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKG5zLmlzQmlnRGVjaW1hbFNjaGVtYSgpKSB7XG4gICAgICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVLZXkocHJlZml4KTtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlVmFsdWUodmFsdWUgaW5zdGFuY2VvZiBOdW1lcmljVmFsdWUgPyB2YWx1ZS5zdHJpbmcgOiBTdHJpbmcodmFsdWUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChucy5pc1RpbWVzdGFtcFNjaGVtYSgpKSB7XG4gICAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZUtleShwcmVmaXgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZvcm1hdCA9IGRldGVybWluZVRpbWVzdGFtcEZvcm1hdChucywgdGhpcy5zZXR0aW5ncyk7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChmb3JtYXQpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKHZhbHVlLnRvSVNPU3RyaW5nKCkucmVwbGFjZShcIi4wMDBaXCIsIFwiWlwiKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKGRhdGVUb1V0Y1N0cmluZyh2YWx1ZSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMud3JpdGVWYWx1ZShTdHJpbmcodmFsdWUuZ2V0VGltZSgpIC8gMTAwMCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKG5zLmlzRG9jdW1lbnRTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZSg2NCB8IDE1LCB2YWx1ZSwgcHJlZml4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGUoNCwgdmFsdWUsIHByZWZpeCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmICh2YWx1ZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlKDIxLCB2YWx1ZSwgcHJlZml4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGUoMTI4IHwgMTUsIHZhbHVlLCBwcmVmaXgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZUtleShwcmVmaXgpO1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVWYWx1ZShTdHJpbmcodmFsdWUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChucy5pc0xpc3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5zZXR0aW5ncy5zZXJpYWxpemVFbXB0eUxpc3RzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLndyaXRlS2V5KHByZWZpeCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLndyaXRlVmFsdWUoXCJcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1lbWJlciA9IG5zLmdldFZhbHVlU2NoZW1hKCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZsYXQgPSB0aGlzLnNldHRpbmdzLmZsYXR0ZW5MaXN0cyB8fCBucy5nZXRNZXJnZWRUcmFpdHMoKS54bWxGbGF0dGVuZWQ7XG4gICAgICAgICAgICAgICAgICAgIGxldCBpID0gMTtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbSA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0cmFpdHMgPSBtZW1iZXIuZ2V0TWVyZ2VkVHJhaXRzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdWZmaXggPSB0aGlzLmdldEtleShcIm1lbWJlclwiLCB0cmFpdHMueG1sTmFtZSwgdHJhaXRzLmVjMlF1ZXJ5TmFtZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSBmbGF0ID8gYCR7cHJlZml4fSR7aX1gIDogYCR7cHJlZml4fSR7c3VmZml4fS4ke2l9YDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMud3JpdGUobWVtYmVyLCBpdGVtLCBrZXkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgKytpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKG5zLmlzTWFwU2NoZW1hKCkpIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBrZXlTY2hlbWEgPSBucy5nZXRLZXlTY2hlbWEoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBtZW1iZXJTY2hlbWEgPSBucy5nZXRWYWx1ZVNjaGVtYSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZsYXQgPSBucy5nZXRNZXJnZWRUcmFpdHMoKS54bWxGbGF0dGVuZWQ7XG4gICAgICAgICAgICAgICAgbGV0IGkgPSAxO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgayBpbiB2YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB2ID0gdmFsdWVba107XG4gICAgICAgICAgICAgICAgICAgIGlmICh2ID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGtleVRyYWl0cyA9IGtleVNjaGVtYS5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qga2V5U3VmZml4ID0gdGhpcy5nZXRLZXkoXCJrZXlcIiwga2V5VHJhaXRzLnhtbE5hbWUsIGtleVRyYWl0cy5lYzJRdWVyeU5hbWUpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSBmbGF0ID8gYCR7cHJlZml4fSR7aX0uJHtrZXlTdWZmaXh9YCA6IGAke3ByZWZpeH1lbnRyeS4ke2l9LiR7a2V5U3VmZml4fWA7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbFRyYWl0cyA9IG1lbWJlclNjaGVtYS5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWVTdWZmaXggPSB0aGlzLmdldEtleShcInZhbHVlXCIsIHZhbFRyYWl0cy54bWxOYW1lLCB2YWxUcmFpdHMuZWMyUXVlcnlOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWVLZXkgPSBmbGF0ID8gYCR7cHJlZml4fSR7aX0uJHt2YWx1ZVN1ZmZpeH1gIDogYCR7cHJlZml4fWVudHJ5LiR7aX0uJHt2YWx1ZVN1ZmZpeH1gO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLndyaXRlKGtleVNjaGVtYSwgaywga2V5KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy53cml0ZShtZW1iZXJTY2hlbWEsIHYsIHZhbHVlS2V5KTtcbiAgICAgICAgICAgICAgICAgICAgKytpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChucy5pc1N0cnVjdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICBpZiAodmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICAgICAgbGV0IGRpZFdyaXRlTWVtYmVyID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBbbWVtYmVyTmFtZSwgbWVtYmVyXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZVttZW1iZXJOYW1lXSA9PSBudWxsICYmICFtZW1iZXIuaXNJZGVtcG90ZW5jeVRva2VuKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRyYWl0cyA9IG1lbWJlci5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3VmZml4ID0gdGhpcy5nZXRLZXkobWVtYmVyTmFtZSwgdHJhaXRzLnhtbE5hbWUsIHRyYWl0cy5lYzJRdWVyeU5hbWUsIFwic3RydWN0XCIpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSBgJHtwcmVmaXh9JHtzdWZmaXh9YDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy53cml0ZShtZW1iZXIsIHZhbHVlW21lbWJlck5hbWVdLCBrZXkpO1xuICAgICAgICAgICAgICAgICAgICBkaWRXcml0ZU1lbWJlciA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICghZGlkV3JpdGVNZW1iZXIgJiYgbnMuaXNVbmlvblNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgJHVua25vd24gfSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSgkdW5rbm93bikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFtrLCB2XSA9ICR1bmtub3duO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qga2V5ID0gYCR7cHJlZml4fSR7a31gO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53cml0ZSgxNSwgdiwga2V5KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChucy5pc1VuaXRTY2hlbWEoKSkge1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBAYXdzLXNkay9jb3JlL3Byb3RvY29scyAtIFF1ZXJ5U2VyaWFsaXplciB1bnJlY29nbml6ZWQgc2NoZW1hIHR5cGUgJHtucy5nZXROYW1lKHRydWUpfWApO1xuICAgICAgICB9XG4gICAgfVxuICAgIGZsdXNoKCkge1xuICAgICAgICBpZiAodGhpcy5idWZmZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSBRdWVyeVNlcmlhbGl6ZXIgY2Fubm90IGZsdXNoIHdpdGggbm90aGluZyB3cml0dGVuIHRvIGJ1ZmZlci5cIik7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc3RyID0gdGhpcy5idWZmZXI7XG4gICAgICAgIGRlbGV0ZSB0aGlzLmJ1ZmZlcjtcbiAgICAgICAgcmV0dXJuIHN0cjtcbiAgICB9XG4gICAgZ2V0S2V5KG1lbWJlck5hbWUsIHhtbE5hbWUsIGVjMlF1ZXJ5TmFtZSwga2V5U291cmNlKSB7XG4gICAgICAgIGNvbnN0IHsgZWMyLCBjYXBpdGFsaXplS2V5cyB9ID0gdGhpcy5zZXR0aW5ncztcbiAgICAgICAgaWYgKGVjMiAmJiBlYzJRdWVyeU5hbWUpIHtcbiAgICAgICAgICAgIHJldHVybiBlYzJRdWVyeU5hbWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qga2V5ID0geG1sTmFtZSA/PyBtZW1iZXJOYW1lO1xuICAgICAgICBpZiAoY2FwaXRhbGl6ZUtleXMgJiYga2V5U291cmNlID09PSBcInN0cnVjdFwiKSB7XG4gICAgICAgICAgICByZXR1cm4ga2V5WzBdLnRvVXBwZXJDYXNlKCkgKyBrZXkuc2xpY2UoMSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGtleTtcbiAgICB9XG4gICAgd3JpdGVLZXkoa2V5KSB7XG4gICAgICAgIGlmIChrZXkuZW5kc1dpdGgoXCIuXCIpKSB7XG4gICAgICAgICAgICBrZXkgPSBrZXkuc2xpY2UoMCwga2V5Lmxlbmd0aCAtIDEpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYnVmZmVyICs9IGAmJHtleHRlbmRlZEVuY29kZVVSSUNvbXBvbmVudChrZXkpfT1gO1xuICAgIH1cbiAgICB3cml0ZVZhbHVlKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuYnVmZmVyICs9IGV4dGVuZGVkRW5jb2RlVVJJQ29tcG9uZW50KHZhbHVlKTtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgY29sbGVjdEJvZHksIFJwY1Byb3RvY29sIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9wcm90b2NvbHNcIjtcbmltcG9ydCB7IGRlcmVmLCBOb3JtYWxpemVkU2NoZW1hIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IFByb3RvY29sTGliIH0gZnJvbSBcIi4uL1Byb3RvY29sTGliXCI7XG5pbXBvcnQgeyBYbWxTaGFwZURlc2VyaWFsaXplciB9IGZyb20gXCIuLi94bWwvWG1sU2hhcGVEZXNlcmlhbGl6ZXJcIjtcbmltcG9ydCB7IFF1ZXJ5U2hhcGVTZXJpYWxpemVyIH0gZnJvbSBcIi4vUXVlcnlTaGFwZVNlcmlhbGl6ZXJcIjtcbmV4cG9ydCBjbGFzcyBBd3NRdWVyeVByb3RvY29sIGV4dGVuZHMgUnBjUHJvdG9jb2wge1xuICAgIG9wdGlvbnM7XG4gICAgc2VyaWFsaXplcjtcbiAgICBkZXNlcmlhbGl6ZXI7XG4gICAgbWl4aW4gPSBuZXcgUHJvdG9jb2xMaWIoKTtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIGRlZmF1bHROYW1lc3BhY2U6IG9wdGlvbnMuZGVmYXVsdE5hbWVzcGFjZSxcbiAgICAgICAgICAgIGVycm9yVHlwZVJlZ2lzdHJpZXM6IG9wdGlvbnMuZXJyb3JUeXBlUmVnaXN0cmllcyxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgICAgIGNvbnN0IHNldHRpbmdzID0ge1xuICAgICAgICAgICAgdGltZXN0YW1wRm9ybWF0OiB7XG4gICAgICAgICAgICAgICAgdXNlVHJhaXQ6IHRydWUsXG4gICAgICAgICAgICAgICAgZGVmYXVsdDogNSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBodHRwQmluZGluZ3M6IGZhbHNlLFxuICAgICAgICAgICAgeG1sTmFtZXNwYWNlOiBvcHRpb25zLnhtbE5hbWVzcGFjZSxcbiAgICAgICAgICAgIHNlcnZpY2VOYW1lc3BhY2U6IG9wdGlvbnMuZGVmYXVsdE5hbWVzcGFjZSxcbiAgICAgICAgICAgIHNlcmlhbGl6ZUVtcHR5TGlzdHM6IHRydWUsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuc2VyaWFsaXplciA9IG5ldyBRdWVyeVNoYXBlU2VyaWFsaXplcihzZXR0aW5ncyk7XG4gICAgICAgIHRoaXMuZGVzZXJpYWxpemVyID0gbmV3IFhtbFNoYXBlRGVzZXJpYWxpemVyKHNldHRpbmdzKTtcbiAgICB9XG4gICAgZ2V0U2hhcGVJZCgpIHtcbiAgICAgICAgcmV0dXJuIFwiYXdzLnByb3RvY29scyNhd3NRdWVyeVwiO1xuICAgIH1cbiAgICBzZXRTZXJkZUNvbnRleHQoc2VyZGVDb250ZXh0KSB7XG4gICAgICAgIHRoaXMuc2VyaWFsaXplci5zZXRTZXJkZUNvbnRleHQoc2VyZGVDb250ZXh0KTtcbiAgICAgICAgdGhpcy5kZXNlcmlhbGl6ZXIuc2V0U2VyZGVDb250ZXh0KHNlcmRlQ29udGV4dCk7XG4gICAgfVxuICAgIGdldFBheWxvYWRDb2RlYygpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQVdTUXVlcnkgcHJvdG9jb2wgaGFzIG5vIHBheWxvYWQgY29kZWMuXCIpO1xuICAgIH1cbiAgICBhc3luYyBzZXJpYWxpemVSZXF1ZXN0KG9wZXJhdGlvblNjaGVtYSwgaW5wdXQsIGNvbnRleHQpIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IGF3YWl0IHN1cGVyLnNlcmlhbGl6ZVJlcXVlc3Qob3BlcmF0aW9uU2NoZW1hLCBpbnB1dCwgY29udGV4dCk7XG4gICAgICAgIGlmICghcmVxdWVzdC5wYXRoLmVuZHNXaXRoKFwiL1wiKSkge1xuICAgICAgICAgICAgcmVxdWVzdC5wYXRoICs9IFwiL1wiO1xuICAgICAgICB9XG4gICAgICAgIHJlcXVlc3QuaGVhZGVyc1tcImNvbnRlbnQtdHlwZVwiXSA9IFwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkXCI7XG4gICAgICAgIGlmIChkZXJlZihvcGVyYXRpb25TY2hlbWEuaW5wdXQpID09PSBcInVuaXRcIiB8fCAhcmVxdWVzdC5ib2R5KSB7XG4gICAgICAgICAgICByZXF1ZXN0LmJvZHkgPSBcIlwiO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGFjdGlvbiA9IG9wZXJhdGlvblNjaGVtYS5uYW1lLnNwbGl0KFwiI1wiKVsxXSA/PyBvcGVyYXRpb25TY2hlbWEubmFtZTtcbiAgICAgICAgcmVxdWVzdC5ib2R5ID0gYEFjdGlvbj0ke2FjdGlvbn0mVmVyc2lvbj0ke3RoaXMub3B0aW9ucy52ZXJzaW9ufWAgKyByZXF1ZXN0LmJvZHk7XG4gICAgICAgIGlmIChyZXF1ZXN0LmJvZHkuZW5kc1dpdGgoXCImXCIpKSB7XG4gICAgICAgICAgICByZXF1ZXN0LmJvZHkgPSByZXF1ZXN0LmJvZHkuc2xpY2UoLTEpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXF1ZXN0O1xuICAgIH1cbiAgICBhc3luYyBkZXNlcmlhbGl6ZVJlc3BvbnNlKG9wZXJhdGlvblNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UpIHtcbiAgICAgICAgY29uc3QgZGVzZXJpYWxpemVyID0gdGhpcy5kZXNlcmlhbGl6ZXI7XG4gICAgICAgIGNvbnN0IG5zID0gTm9ybWFsaXplZFNjaGVtYS5vZihvcGVyYXRpb25TY2hlbWEub3V0cHV0KTtcbiAgICAgICAgY29uc3QgZGF0YU9iamVjdCA9IHt9O1xuICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzQ29kZSA+PSAzMDApIHtcbiAgICAgICAgICAgIGNvbnN0IGJ5dGVzID0gYXdhaXQgY29sbGVjdEJvZHkocmVzcG9uc2UuYm9keSwgY29udGV4dCk7XG4gICAgICAgICAgICBpZiAoYnl0ZXMuYnl0ZUxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKGRhdGFPYmplY3QsIGF3YWl0IGRlc2VyaWFsaXplci5yZWFkKDE1LCBieXRlcykpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYXdhaXQgdGhpcy5oYW5kbGVFcnJvcihvcGVyYXRpb25TY2hlbWEsIGNvbnRleHQsIHJlc3BvbnNlLCBkYXRhT2JqZWN0LCB0aGlzLmRlc2VyaWFsaXplTWV0YWRhdGEocmVzcG9uc2UpKTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IGhlYWRlciBpbiByZXNwb25zZS5oZWFkZXJzKSB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHJlc3BvbnNlLmhlYWRlcnNbaGVhZGVyXTtcbiAgICAgICAgICAgIGRlbGV0ZSByZXNwb25zZS5oZWFkZXJzW2hlYWRlcl07XG4gICAgICAgICAgICByZXNwb25zZS5oZWFkZXJzW2hlYWRlci50b0xvd2VyQ2FzZSgpXSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNob3J0TmFtZSA9IG9wZXJhdGlvblNjaGVtYS5uYW1lLnNwbGl0KFwiI1wiKVsxXSA/PyBvcGVyYXRpb25TY2hlbWEubmFtZTtcbiAgICAgICAgY29uc3QgYXdzUXVlcnlSZXN1bHRLZXkgPSBucy5pc1N0cnVjdFNjaGVtYSgpICYmIHRoaXMudXNlTmVzdGVkUmVzdWx0KCkgPyBzaG9ydE5hbWUgKyBcIlJlc3VsdFwiIDogdW5kZWZpbmVkO1xuICAgICAgICBjb25zdCBieXRlcyA9IGF3YWl0IGNvbGxlY3RCb2R5KHJlc3BvbnNlLmJvZHksIGNvbnRleHQpO1xuICAgICAgICBpZiAoYnl0ZXMuYnl0ZUxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oZGF0YU9iamVjdCwgYXdhaXQgZGVzZXJpYWxpemVyLnJlYWQobnMsIGJ5dGVzLCBhd3NRdWVyeVJlc3VsdEtleSkpO1xuICAgICAgICB9XG4gICAgICAgIGRhdGFPYmplY3QuJG1ldGFkYXRhID0gdGhpcy5kZXNlcmlhbGl6ZU1ldGFkYXRhKHJlc3BvbnNlKTtcbiAgICAgICAgcmV0dXJuIGRhdGFPYmplY3Q7XG4gICAgfVxuICAgIHVzZU5lc3RlZFJlc3VsdCgpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGFzeW5jIGhhbmRsZUVycm9yKG9wZXJhdGlvblNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UsIGRhdGFPYmplY3QsIG1ldGFkYXRhKSB7XG4gICAgICAgIGNvbnN0IGVycm9ySWRlbnRpZmllciA9IHRoaXMubG9hZFF1ZXJ5RXJyb3JDb2RlKHJlc3BvbnNlLCBkYXRhT2JqZWN0KSA/PyBcIlVua25vd25cIjtcbiAgICAgICAgdGhpcy5taXhpbi5jb21wb3NlKHRoaXMuY29tcG9zaXRlRXJyb3JSZWdpc3RyeSwgZXJyb3JJZGVudGlmaWVyLCB0aGlzLm9wdGlvbnMuZGVmYXVsdE5hbWVzcGFjZSk7XG4gICAgICAgIGNvbnN0IGVycm9yRGF0YSA9IHRoaXMubG9hZFF1ZXJ5RXJyb3IoZGF0YU9iamVjdCkgPz8ge307XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSB0aGlzLmxvYWRRdWVyeUVycm9yTWVzc2FnZShkYXRhT2JqZWN0KTtcbiAgICAgICAgZXJyb3JEYXRhLm1lc3NhZ2UgPSBtZXNzYWdlO1xuICAgICAgICBlcnJvckRhdGEuRXJyb3IgPSB7XG4gICAgICAgICAgICBUeXBlOiBlcnJvckRhdGEuVHlwZSxcbiAgICAgICAgICAgIENvZGU6IGVycm9yRGF0YS5Db2RlLFxuICAgICAgICAgICAgTWVzc2FnZTogbWVzc2FnZSxcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgeyBlcnJvclNjaGVtYSwgZXJyb3JNZXRhZGF0YSB9ID0gYXdhaXQgdGhpcy5taXhpbi5nZXRFcnJvclNjaGVtYU9yVGhyb3dCYXNlRXhjZXB0aW9uKGVycm9ySWRlbnRpZmllciwgdGhpcy5vcHRpb25zLmRlZmF1bHROYW1lc3BhY2UsIHJlc3BvbnNlLCBlcnJvckRhdGEsIG1ldGFkYXRhLCB0aGlzLm1peGluLmZpbmRRdWVyeUNvbXBhdGlibGVFcnJvcik7XG4gICAgICAgIGNvbnN0IG5zID0gTm9ybWFsaXplZFNjaGVtYS5vZihlcnJvclNjaGVtYSk7XG4gICAgICAgIGNvbnN0IEVycm9yQ3RvciA9IHRoaXMuY29tcG9zaXRlRXJyb3JSZWdpc3RyeS5nZXRFcnJvckN0b3IoZXJyb3JTY2hlbWEpID8/IEVycm9yO1xuICAgICAgICBjb25zdCBleGNlcHRpb24gPSBuZXcgRXJyb3JDdG9yKG1lc3NhZ2UpO1xuICAgICAgICBjb25zdCBvdXRwdXQgPSB7XG4gICAgICAgICAgICBUeXBlOiBlcnJvckRhdGEuRXJyb3IuVHlwZSxcbiAgICAgICAgICAgIENvZGU6IGVycm9yRGF0YS5FcnJvci5Db2RlLFxuICAgICAgICAgICAgRXJyb3I6IGVycm9yRGF0YS5FcnJvcixcbiAgICAgICAgfTtcbiAgICAgICAgZm9yIChjb25zdCBbbmFtZSwgbWVtYmVyXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBtZW1iZXIuZ2V0TWVyZ2VkVHJhaXRzKCkueG1sTmFtZSA/PyBuYW1lO1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBlcnJvckRhdGFbdGFyZ2V0XSA/PyBkYXRhT2JqZWN0W3RhcmdldF07XG4gICAgICAgICAgICBvdXRwdXRbbmFtZV0gPSB0aGlzLmRlc2VyaWFsaXplci5yZWFkU2NoZW1hKG1lbWJlciwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IHRoaXMubWl4aW4uZGVjb3JhdGVTZXJ2aWNlRXhjZXB0aW9uKE9iamVjdC5hc3NpZ24oZXhjZXB0aW9uLCBlcnJvck1ldGFkYXRhLCB7XG4gICAgICAgICAgICAkZmF1bHQ6IG5zLmdldE1lcmdlZFRyYWl0cygpLmVycm9yLFxuICAgICAgICAgICAgbWVzc2FnZSxcbiAgICAgICAgfSwgb3V0cHV0KSwgZGF0YU9iamVjdCk7XG4gICAgfVxuICAgIGxvYWRRdWVyeUVycm9yQ29kZShvdXRwdXQsIGRhdGEpIHtcbiAgICAgICAgY29uc3QgY29kZSA9IChkYXRhLkVycm9ycz8uWzBdPy5FcnJvciA/PyBkYXRhLkVycm9ycz8uRXJyb3IgPz8gZGF0YS5FcnJvcik/LkNvZGU7XG4gICAgICAgIGlmIChjb2RlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBjb2RlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvdXRwdXQuc3RhdHVzQ29kZSA9PSA0MDQpIHtcbiAgICAgICAgICAgIHJldHVybiBcIk5vdEZvdW5kXCI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbG9hZFF1ZXJ5RXJyb3IoZGF0YSkge1xuICAgICAgICByZXR1cm4gZGF0YS5FcnJvcnM/LlswXT8uRXJyb3IgPz8gZGF0YS5FcnJvcnM/LkVycm9yID8/IGRhdGEuRXJyb3I7XG4gICAgfVxuICAgIGxvYWRRdWVyeUVycm9yTWVzc2FnZShkYXRhKSB7XG4gICAgICAgIGNvbnN0IGVycm9yRGF0YSA9IHRoaXMubG9hZFF1ZXJ5RXJyb3IoZGF0YSk7XG4gICAgICAgIHJldHVybiBlcnJvckRhdGE/Lm1lc3NhZ2UgPz8gZXJyb3JEYXRhPy5NZXNzYWdlID8/IGRhdGEubWVzc2FnZSA/PyBkYXRhLk1lc3NhZ2UgPz8gXCJVbmtub3duXCI7XG4gICAgfVxuICAgIGdldERlZmF1bHRDb250ZW50VHlwZSgpIHtcbiAgICAgICAgcmV0dXJuIFwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkXCI7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IEF3c1F1ZXJ5UHJvdG9jb2wgfSBmcm9tIFwiLi9Bd3NRdWVyeVByb3RvY29sXCI7XG5leHBvcnQgY2xhc3MgQXdzRWMyUXVlcnlQcm90b2NvbCBleHRlbmRzIEF3c1F1ZXJ5UHJvdG9jb2wge1xuICAgIG9wdGlvbnM7XG4gICAgY29uc3RydWN0b3Iob3B0aW9ucykge1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgICAgICAgY29uc3QgZWMyU2V0dGluZ3MgPSB7XG4gICAgICAgICAgICBjYXBpdGFsaXplS2V5czogdHJ1ZSxcbiAgICAgICAgICAgIGZsYXR0ZW5MaXN0czogdHJ1ZSxcbiAgICAgICAgICAgIHNlcmlhbGl6ZUVtcHR5TGlzdHM6IGZhbHNlLFxuICAgICAgICAgICAgZWMyOiB0cnVlLFxuICAgICAgICB9O1xuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMuc2VyaWFsaXplci5zZXR0aW5ncywgZWMyU2V0dGluZ3MpO1xuICAgIH1cbiAgICBnZXRTaGFwZUlkKCkge1xuICAgICAgICByZXR1cm4gXCJhd3MucHJvdG9jb2xzI2VjMlF1ZXJ5XCI7XG4gICAgfVxuICAgIHVzZU5lc3RlZFJlc3VsdCgpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cbiIsICJleHBvcnQge307XG4iLCAiaW1wb3J0IHsgcGFyc2VYTUwgfSBmcm9tIFwiQGF3cy1zZGsveG1sLWJ1aWxkZXJcIjtcbmltcG9ydCB7IGdldFZhbHVlRnJvbVRleHROb2RlIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgY29sbGVjdEJvZHlTdHJpbmcgfSBmcm9tIFwiLi4vY29tbW9uXCI7XG5leHBvcnQgY29uc3QgcGFyc2VYbWxCb2R5ID0gKHN0cmVhbUJvZHksIGNvbnRleHQpID0+IGNvbGxlY3RCb2R5U3RyaW5nKHN0cmVhbUJvZHksIGNvbnRleHQpLnRoZW4oKGVuY29kZWQpID0+IHtcbiAgICBpZiAoZW5jb2RlZC5sZW5ndGgpIHtcbiAgICAgICAgbGV0IHBhcnNlZE9iajtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHBhcnNlZE9iaiA9IHBhcnNlWE1MKGVuY29kZWQpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICBpZiAoZSAmJiB0eXBlb2YgZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCBcIiRyZXNwb25zZUJvZHlUZXh0XCIsIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGVuY29kZWQsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHRleHROb2RlTmFtZSA9IFwiI3RleHRcIjtcbiAgICAgICAgY29uc3Qga2V5ID0gT2JqZWN0LmtleXMocGFyc2VkT2JqKVswXTtcbiAgICAgICAgY29uc3QgcGFyc2VkT2JqVG9SZXR1cm4gPSBwYXJzZWRPYmpba2V5XTtcbiAgICAgICAgaWYgKHBhcnNlZE9ialRvUmV0dXJuW3RleHROb2RlTmFtZV0pIHtcbiAgICAgICAgICAgIHBhcnNlZE9ialRvUmV0dXJuW2tleV0gPSBwYXJzZWRPYmpUb1JldHVyblt0ZXh0Tm9kZU5hbWVdO1xuICAgICAgICAgICAgZGVsZXRlIHBhcnNlZE9ialRvUmV0dXJuW3RleHROb2RlTmFtZV07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGdldFZhbHVlRnJvbVRleHROb2RlKHBhcnNlZE9ialRvUmV0dXJuKTtcbiAgICB9XG4gICAgcmV0dXJuIHt9O1xufSk7XG5leHBvcnQgY29uc3QgcGFyc2VYbWxFcnJvckJvZHkgPSBhc3luYyAoZXJyb3JCb2R5LCBjb250ZXh0KSA9PiB7XG4gICAgY29uc3QgdmFsdWUgPSBhd2FpdCBwYXJzZVhtbEJvZHkoZXJyb3JCb2R5LCBjb250ZXh0KTtcbiAgICBpZiAodmFsdWUuRXJyb3IpIHtcbiAgICAgICAgdmFsdWUuRXJyb3IubWVzc2FnZSA9IHZhbHVlLkVycm9yLm1lc3NhZ2UgPz8gdmFsdWUuRXJyb3IuTWVzc2FnZTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlO1xufTtcbmV4cG9ydCBjb25zdCBsb2FkUmVzdFhtbEVycm9yQ29kZSA9IChvdXRwdXQsIGRhdGEpID0+IHtcbiAgICBpZiAoZGF0YT8uRXJyb3I/LkNvZGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gZGF0YS5FcnJvci5Db2RlO1xuICAgIH1cbiAgICBpZiAoZGF0YT8uQ29kZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiBkYXRhLkNvZGU7XG4gICAgfVxuICAgIGlmIChvdXRwdXQuc3RhdHVzQ29kZSA9PSA0MDQpIHtcbiAgICAgICAgcmV0dXJuIFwiTm90Rm91bmRcIjtcbiAgICB9XG59O1xuIiwgImltcG9ydCB7IFhtbE5vZGUsIFhtbFRleHQgfSBmcm9tIFwiQGF3cy1zZGsveG1sLWJ1aWxkZXJcIjtcbmltcG9ydCB7IGRldGVybWluZVRpbWVzdGFtcEZvcm1hdCB9IGZyb20gXCJAc21pdGh5L2NvcmUvcHJvdG9jb2xzXCI7XG5pbXBvcnQgeyBOb3JtYWxpemVkU2NoZW1hIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IGdlbmVyYXRlSWRlbXBvdGVuY3lUb2tlbiwgTnVtZXJpY1ZhbHVlIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zZXJkZVwiO1xuaW1wb3J0IHsgZGF0ZVRvVXRjU3RyaW5nIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgZnJvbUJhc2U2NCwgdG9CYXNlNjQgfSBmcm9tIFwiQHNtaXRoeS91dGlsLWJhc2U2NFwiO1xuaW1wb3J0IHsgU2VyZGVDb250ZXh0Q29uZmlnIH0gZnJvbSBcIi4uL0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dFwiO1xuZXhwb3J0IGNsYXNzIFhtbFNoYXBlU2VyaWFsaXplciBleHRlbmRzIFNlcmRlQ29udGV4dENvbmZpZyB7XG4gICAgc2V0dGluZ3M7XG4gICAgc3RyaW5nQnVmZmVyO1xuICAgIGJ5dGVCdWZmZXI7XG4gICAgYnVmZmVyO1xuICAgIGNvbnN0cnVjdG9yKHNldHRpbmdzKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuc2V0dGluZ3MgPSBzZXR0aW5ncztcbiAgICB9XG4gICAgd3JpdGUoc2NoZW1hLCB2YWx1ZSkge1xuICAgICAgICBjb25zdCBucyA9IE5vcm1hbGl6ZWRTY2hlbWEub2Yoc2NoZW1hKTtcbiAgICAgICAgaWYgKG5zLmlzU3RyaW5nU2NoZW1hKCkgJiYgdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICB0aGlzLnN0cmluZ0J1ZmZlciA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKG5zLmlzQmxvYlNjaGVtYSgpKSB7XG4gICAgICAgICAgICB0aGlzLmJ5dGVCdWZmZXIgPVxuICAgICAgICAgICAgICAgIFwiYnl0ZUxlbmd0aFwiIGluIHZhbHVlXG4gICAgICAgICAgICAgICAgICAgID8gdmFsdWVcbiAgICAgICAgICAgICAgICAgICAgOiAodGhpcy5zZXJkZUNvbnRleHQ/LmJhc2U2NERlY29kZXIgPz8gZnJvbUJhc2U2NCkodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5idWZmZXIgPSB0aGlzLndyaXRlU3RydWN0KG5zLCB2YWx1ZSwgdW5kZWZpbmVkKTtcbiAgICAgICAgICAgIGNvbnN0IHRyYWl0cyA9IG5zLmdldE1lcmdlZFRyYWl0cygpO1xuICAgICAgICAgICAgaWYgKHRyYWl0cy5odHRwUGF5bG9hZCAmJiAhdHJhaXRzLnhtbE5hbWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmJ1ZmZlci53aXRoTmFtZShucy5nZXROYW1lKCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGZsdXNoKCkge1xuICAgICAgICBpZiAodGhpcy5ieXRlQnVmZmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IGJ5dGVzID0gdGhpcy5ieXRlQnVmZmVyO1xuICAgICAgICAgICAgZGVsZXRlIHRoaXMuYnl0ZUJ1ZmZlcjtcbiAgICAgICAgICAgIHJldHVybiBieXRlcztcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5zdHJpbmdCdWZmZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgY29uc3Qgc3RyID0gdGhpcy5zdHJpbmdCdWZmZXI7XG4gICAgICAgICAgICBkZWxldGUgdGhpcy5zdHJpbmdCdWZmZXI7XG4gICAgICAgICAgICByZXR1cm4gc3RyO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGJ1ZmZlciA9IHRoaXMuYnVmZmVyO1xuICAgICAgICBpZiAodGhpcy5zZXR0aW5ncy54bWxOYW1lc3BhY2UpIHtcbiAgICAgICAgICAgIGlmICghYnVmZmVyPy5hdHRyaWJ1dGVzPy5bXCJ4bWxuc1wiXSkge1xuICAgICAgICAgICAgICAgIGJ1ZmZlci5hZGRBdHRyaWJ1dGUoXCJ4bWxuc1wiLCB0aGlzLnNldHRpbmdzLnhtbE5hbWVzcGFjZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZGVsZXRlIHRoaXMuYnVmZmVyO1xuICAgICAgICByZXR1cm4gYnVmZmVyLnRvU3RyaW5nKCk7XG4gICAgfVxuICAgIHdyaXRlU3RydWN0KG5zLCB2YWx1ZSwgcGFyZW50WG1sbnMpIHtcbiAgICAgICAgY29uc3QgdHJhaXRzID0gbnMuZ2V0TWVyZ2VkVHJhaXRzKCk7XG4gICAgICAgIGNvbnN0IG5hbWUgPSBucy5pc01lbWJlclNjaGVtYSgpICYmICF0cmFpdHMuaHR0cFBheWxvYWRcbiAgICAgICAgICAgID8gbnMuZ2V0TWVtYmVyVHJhaXRzKCkueG1sTmFtZSA/PyBucy5nZXRNZW1iZXJOYW1lKClcbiAgICAgICAgICAgIDogdHJhaXRzLnhtbE5hbWUgPz8gbnMuZ2V0TmFtZSgpO1xuICAgICAgICBpZiAoIW5hbWUgfHwgIW5zLmlzU3RydWN0U2NoZW1hKCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSB4bWwgc2VyaWFsaXplciwgY2Fubm90IHdyaXRlIHN0cnVjdCB3aXRoIGVtcHR5IG5hbWUgb3Igbm9uLXN0cnVjdCwgc2NoZW1hPSR7bnMuZ2V0TmFtZSh0cnVlKX0uYCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc3RydWN0WG1sTm9kZSA9IFhtbE5vZGUub2YobmFtZSk7XG4gICAgICAgIGNvbnN0IFt4bWxuc0F0dHIsIHhtbG5zXSA9IHRoaXMuZ2V0WG1sbnNBdHRyaWJ1dGUobnMsIHBhcmVudFhtbG5zKTtcbiAgICAgICAgZm9yIChjb25zdCBbbWVtYmVyTmFtZSwgbWVtYmVyU2NoZW1hXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICBjb25zdCB2YWwgPSB2YWx1ZVttZW1iZXJOYW1lXTtcbiAgICAgICAgICAgIGlmICh2YWwgIT0gbnVsbCB8fCBtZW1iZXJTY2hlbWEuaXNJZGVtcG90ZW5jeVRva2VuKCkpIHtcbiAgICAgICAgICAgICAgICBpZiAobWVtYmVyU2NoZW1hLmdldE1lcmdlZFRyYWl0cygpLnhtbEF0dHJpYnV0ZSkge1xuICAgICAgICAgICAgICAgICAgICBzdHJ1Y3RYbWxOb2RlLmFkZEF0dHJpYnV0ZShtZW1iZXJTY2hlbWEuZ2V0TWVyZ2VkVHJhaXRzKCkueG1sTmFtZSA/PyBtZW1iZXJOYW1lLCB0aGlzLndyaXRlU2ltcGxlKG1lbWJlclNjaGVtYSwgdmFsKSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAobWVtYmVyU2NoZW1hLmlzTGlzdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMud3JpdGVMaXN0KG1lbWJlclNjaGVtYSwgdmFsLCBzdHJ1Y3RYbWxOb2RlLCB4bWxucyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKG1lbWJlclNjaGVtYS5pc01hcFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMud3JpdGVNYXAobWVtYmVyU2NoZW1hLCB2YWwsIHN0cnVjdFhtbE5vZGUsIHhtbG5zKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAobWVtYmVyU2NoZW1hLmlzU3RydWN0U2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgc3RydWN0WG1sTm9kZS5hZGRDaGlsZE5vZGUodGhpcy53cml0ZVN0cnVjdChtZW1iZXJTY2hlbWEsIHZhbCwgeG1sbnMpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1lbWJlck5vZGUgPSBYbWxOb2RlLm9mKG1lbWJlclNjaGVtYS5nZXRNZXJnZWRUcmFpdHMoKS54bWxOYW1lID8/IG1lbWJlclNjaGVtYS5nZXRNZW1iZXJOYW1lKCkpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLndyaXRlU2ltcGxlSW50byhtZW1iZXJTY2hlbWEsIHZhbCwgbWVtYmVyTm9kZSwgeG1sbnMpO1xuICAgICAgICAgICAgICAgICAgICBzdHJ1Y3RYbWxOb2RlLmFkZENoaWxkTm9kZShtZW1iZXJOb2RlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgeyAkdW5rbm93biB9ID0gdmFsdWU7XG4gICAgICAgIGlmICgkdW5rbm93biAmJiBucy5pc1VuaW9uU2NoZW1hKCkgJiYgQXJyYXkuaXNBcnJheSgkdW5rbm93bikgJiYgT2JqZWN0LmtleXModmFsdWUpLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgY29uc3QgW2ssIHZdID0gJHVua25vd247XG4gICAgICAgICAgICBjb25zdCBub2RlID0gWG1sTm9kZS5vZihrKTtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdiAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIFhtbE5vZGUgfHwgdmFsdWUgaW5zdGFuY2VvZiBYbWxUZXh0KSB7XG4gICAgICAgICAgICAgICAgICAgIHN0cnVjdFhtbE5vZGUuYWRkQ2hpbGROb2RlKHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQGF3cy1zZGsgLSAkdW5rbm93biB1bmlvbiBtZW1iZXIgaW4gWE1MIHJlcXVpcmVzIGAgK1xuICAgICAgICAgICAgICAgICAgICAgICAgYHZhbHVlIG9mIHR5cGUgc3RyaW5nLCBAYXdzLXNkay94bWwtYnVpbGRlcjo6WG1sTm9kZSBvciBYbWxUZXh0LmApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMud3JpdGVTaW1wbGVJbnRvKDAsIHYsIG5vZGUsIHhtbG5zKTtcbiAgICAgICAgICAgIHN0cnVjdFhtbE5vZGUuYWRkQ2hpbGROb2RlKG5vZGUpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh4bWxucykge1xuICAgICAgICAgICAgc3RydWN0WG1sTm9kZS5hZGRBdHRyaWJ1dGUoeG1sbnNBdHRyLCB4bWxucyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN0cnVjdFhtbE5vZGU7XG4gICAgfVxuICAgIHdyaXRlTGlzdChsaXN0TWVtYmVyLCBhcnJheSwgY29udGFpbmVyLCBwYXJlbnRYbWxucykge1xuICAgICAgICBpZiAoIWxpc3RNZW1iZXIuaXNNZW1iZXJTY2hlbWEoKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBAYXdzLXNkay9jb3JlL3Byb3RvY29scyAtIHhtbCBzZXJpYWxpemVyLCBjYW5ub3Qgd3JpdGUgbm9uLW1lbWJlciBsaXN0OiAke2xpc3RNZW1iZXIuZ2V0TmFtZSh0cnVlKX1gKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBsaXN0VHJhaXRzID0gbGlzdE1lbWJlci5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgY29uc3QgbGlzdFZhbHVlU2NoZW1hID0gbGlzdE1lbWJlci5nZXRWYWx1ZVNjaGVtYSgpO1xuICAgICAgICBjb25zdCBsaXN0VmFsdWVUcmFpdHMgPSBsaXN0VmFsdWVTY2hlbWEuZ2V0TWVyZ2VkVHJhaXRzKCk7XG4gICAgICAgIGNvbnN0IHNwYXJzZSA9ICEhbGlzdFZhbHVlVHJhaXRzLnNwYXJzZTtcbiAgICAgICAgY29uc3QgZmxhdCA9ICEhbGlzdFRyYWl0cy54bWxGbGF0dGVuZWQ7XG4gICAgICAgIGNvbnN0IFt4bWxuc0F0dHIsIHhtbG5zXSA9IHRoaXMuZ2V0WG1sbnNBdHRyaWJ1dGUobGlzdE1lbWJlciwgcGFyZW50WG1sbnMpO1xuICAgICAgICBjb25zdCB3cml0ZUl0ZW0gPSAoY29udGFpbmVyLCB2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgaWYgKGxpc3RWYWx1ZVNjaGVtYS5pc0xpc3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVMaXN0KGxpc3RWYWx1ZVNjaGVtYSwgQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV0sIGNvbnRhaW5lciwgeG1sbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAobGlzdFZhbHVlU2NoZW1hLmlzTWFwU2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlTWFwKGxpc3RWYWx1ZVNjaGVtYSwgdmFsdWUsIGNvbnRhaW5lciwgeG1sbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAobGlzdFZhbHVlU2NoZW1hLmlzU3RydWN0U2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgPSB0aGlzLndyaXRlU3RydWN0KGxpc3RWYWx1ZVNjaGVtYSwgdmFsdWUsIHhtbG5zKTtcbiAgICAgICAgICAgICAgICBjb250YWluZXIuYWRkQ2hpbGROb2RlKHN0cnVjdC53aXRoTmFtZShmbGF0ID8gbGlzdFRyYWl0cy54bWxOYW1lID8/IGxpc3RNZW1iZXIuZ2V0TWVtYmVyTmFtZSgpIDogbGlzdFZhbHVlVHJhaXRzLnhtbE5hbWUgPz8gXCJtZW1iZXJcIikpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbGlzdEl0ZW1Ob2RlID0gWG1sTm9kZS5vZihmbGF0ID8gbGlzdFRyYWl0cy54bWxOYW1lID8/IGxpc3RNZW1iZXIuZ2V0TWVtYmVyTmFtZSgpIDogbGlzdFZhbHVlVHJhaXRzLnhtbE5hbWUgPz8gXCJtZW1iZXJcIik7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZVNpbXBsZUludG8obGlzdFZhbHVlU2NoZW1hLCB2YWx1ZSwgbGlzdEl0ZW1Ob2RlLCB4bWxucyk7XG4gICAgICAgICAgICAgICAgY29udGFpbmVyLmFkZENoaWxkTm9kZShsaXN0SXRlbU5vZGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBpZiAoZmxhdCkge1xuICAgICAgICAgICAgZm9yIChjb25zdCB2YWx1ZSBvZiBhcnJheSkge1xuICAgICAgICAgICAgICAgIGlmIChzcGFyc2UgfHwgdmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICB3cml0ZUl0ZW0oY29udGFpbmVyLCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgbGlzdE5vZGUgPSBYbWxOb2RlLm9mKGxpc3RUcmFpdHMueG1sTmFtZSA/PyBsaXN0TWVtYmVyLmdldE1lbWJlck5hbWUoKSk7XG4gICAgICAgICAgICBpZiAoeG1sbnMpIHtcbiAgICAgICAgICAgICAgICBsaXN0Tm9kZS5hZGRBdHRyaWJ1dGUoeG1sbnNBdHRyLCB4bWxucyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHZhbHVlIG9mIGFycmF5KSB7XG4gICAgICAgICAgICAgICAgaWYgKHNwYXJzZSB8fCB2YWx1ZSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHdyaXRlSXRlbShsaXN0Tm9kZSwgdmFsdWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnRhaW5lci5hZGRDaGlsZE5vZGUobGlzdE5vZGUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHdyaXRlTWFwKG1hcE1lbWJlciwgbWFwLCBjb250YWluZXIsIHBhcmVudFhtbG5zLCBjb250YWluZXJJc01hcCA9IGZhbHNlKSB7XG4gICAgICAgIGlmICghbWFwTWVtYmVyLmlzTWVtYmVyU2NoZW1hKCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSB4bWwgc2VyaWFsaXplciwgY2Fubm90IHdyaXRlIG5vbi1tZW1iZXIgbWFwOiAke21hcE1lbWJlci5nZXROYW1lKHRydWUpfWApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG1hcFRyYWl0cyA9IG1hcE1lbWJlci5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgY29uc3QgbWFwS2V5U2NoZW1hID0gbWFwTWVtYmVyLmdldEtleVNjaGVtYSgpO1xuICAgICAgICBjb25zdCBtYXBLZXlUcmFpdHMgPSBtYXBLZXlTY2hlbWEuZ2V0TWVyZ2VkVHJhaXRzKCk7XG4gICAgICAgIGNvbnN0IGtleVRhZyA9IG1hcEtleVRyYWl0cy54bWxOYW1lID8/IFwia2V5XCI7XG4gICAgICAgIGNvbnN0IG1hcFZhbHVlU2NoZW1hID0gbWFwTWVtYmVyLmdldFZhbHVlU2NoZW1hKCk7XG4gICAgICAgIGNvbnN0IG1hcFZhbHVlVHJhaXRzID0gbWFwVmFsdWVTY2hlbWEuZ2V0TWVyZ2VkVHJhaXRzKCk7XG4gICAgICAgIGNvbnN0IHZhbHVlVGFnID0gbWFwVmFsdWVUcmFpdHMueG1sTmFtZSA/PyBcInZhbHVlXCI7XG4gICAgICAgIGNvbnN0IHNwYXJzZSA9ICEhbWFwVmFsdWVUcmFpdHMuc3BhcnNlO1xuICAgICAgICBjb25zdCBmbGF0ID0gISFtYXBUcmFpdHMueG1sRmxhdHRlbmVkO1xuICAgICAgICBjb25zdCBbeG1sbnNBdHRyLCB4bWxuc10gPSB0aGlzLmdldFhtbG5zQXR0cmlidXRlKG1hcE1lbWJlciwgcGFyZW50WG1sbnMpO1xuICAgICAgICBjb25zdCBhZGRLZXlWYWx1ZSA9IChlbnRyeSwga2V5LCB2YWwpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGtleU5vZGUgPSBYbWxOb2RlLm9mKGtleVRhZywga2V5KTtcbiAgICAgICAgICAgIGNvbnN0IFtrZXlYbWxuc0F0dHIsIGtleVhtbG5zXSA9IHRoaXMuZ2V0WG1sbnNBdHRyaWJ1dGUobWFwS2V5U2NoZW1hLCB4bWxucyk7XG4gICAgICAgICAgICBpZiAoa2V5WG1sbnMpIHtcbiAgICAgICAgICAgICAgICBrZXlOb2RlLmFkZEF0dHJpYnV0ZShrZXlYbWxuc0F0dHIsIGtleVhtbG5zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVudHJ5LmFkZENoaWxkTm9kZShrZXlOb2RlKTtcbiAgICAgICAgICAgIGxldCB2YWx1ZU5vZGUgPSBYbWxOb2RlLm9mKHZhbHVlVGFnKTtcbiAgICAgICAgICAgIGlmIChtYXBWYWx1ZVNjaGVtYS5pc0xpc3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVMaXN0KG1hcFZhbHVlU2NoZW1hLCB2YWwsIHZhbHVlTm9kZSwgeG1sbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAobWFwVmFsdWVTY2hlbWEuaXNNYXBTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVNYXAobWFwVmFsdWVTY2hlbWEsIHZhbCwgdmFsdWVOb2RlLCB4bWxucywgdHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChtYXBWYWx1ZVNjaGVtYS5pc1N0cnVjdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgdmFsdWVOb2RlID0gdGhpcy53cml0ZVN0cnVjdChtYXBWYWx1ZVNjaGVtYSwgdmFsLCB4bWxucyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlU2ltcGxlSW50byhtYXBWYWx1ZVNjaGVtYSwgdmFsLCB2YWx1ZU5vZGUsIHhtbG5zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVudHJ5LmFkZENoaWxkTm9kZSh2YWx1ZU5vZGUpO1xuICAgICAgICB9O1xuICAgICAgICBpZiAoZmxhdCkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gbWFwKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsID0gbWFwW2tleV07XG4gICAgICAgICAgICAgICAgaWYgKHNwYXJzZSB8fCB2YWwgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlbnRyeSA9IFhtbE5vZGUub2YobWFwVHJhaXRzLnhtbE5hbWUgPz8gbWFwTWVtYmVyLmdldE1lbWJlck5hbWUoKSk7XG4gICAgICAgICAgICAgICAgICAgIGFkZEtleVZhbHVlKGVudHJ5LCBrZXksIHZhbCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lci5hZGRDaGlsZE5vZGUoZW50cnkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGxldCBtYXBOb2RlO1xuICAgICAgICAgICAgaWYgKCFjb250YWluZXJJc01hcCkge1xuICAgICAgICAgICAgICAgIG1hcE5vZGUgPSBYbWxOb2RlLm9mKG1hcFRyYWl0cy54bWxOYW1lID8/IG1hcE1lbWJlci5nZXRNZW1iZXJOYW1lKCkpO1xuICAgICAgICAgICAgICAgIGlmICh4bWxucykge1xuICAgICAgICAgICAgICAgICAgICBtYXBOb2RlLmFkZEF0dHJpYnV0ZSh4bWxuc0F0dHIsIHhtbG5zKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29udGFpbmVyLmFkZENoaWxkTm9kZShtYXBOb2RlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIG1hcCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbCA9IG1hcFtrZXldO1xuICAgICAgICAgICAgICAgIGlmIChzcGFyc2UgfHwgdmFsICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZW50cnkgPSBYbWxOb2RlLm9mKFwiZW50cnlcIik7XG4gICAgICAgICAgICAgICAgICAgIGFkZEtleVZhbHVlKGVudHJ5LCBrZXksIHZhbCk7XG4gICAgICAgICAgICAgICAgICAgIChjb250YWluZXJJc01hcCA/IGNvbnRhaW5lciA6IG1hcE5vZGUpLmFkZENoaWxkTm9kZShlbnRyeSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHdyaXRlU2ltcGxlKF9zY2hlbWEsIHZhbHVlKSB7XG4gICAgICAgIGlmIChudWxsID09PSB2YWx1ZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSAoWE1MIHNlcmlhbGl6ZXIpIGNhbm5vdCB3cml0ZSBudWxsIHZhbHVlLlwiKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBucyA9IE5vcm1hbGl6ZWRTY2hlbWEub2YoX3NjaGVtYSk7XG4gICAgICAgIGxldCBub2RlQ29udGVudHMgPSBudWxsO1xuICAgICAgICBpZiAodmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICBpZiAobnMuaXNCbG9iU2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICBub2RlQ29udGVudHMgPSAodGhpcy5zZXJkZUNvbnRleHQ/LmJhc2U2NEVuY29kZXIgPz8gdG9CYXNlNjQpKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKG5zLmlzVGltZXN0YW1wU2NoZW1hKCkgJiYgdmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZm9ybWF0ID0gZGV0ZXJtaW5lVGltZXN0YW1wRm9ybWF0KG5zLCB0aGlzLnNldHRpbmdzKTtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGZvcm1hdCkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgICAgICAgICAgICAgICBub2RlQ29udGVudHMgPSB2YWx1ZS50b0lTT1N0cmluZygpLnJlcGxhY2UoXCIuMDAwWlwiLCBcIlpcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgICAgICAgICAgICAgbm9kZUNvbnRlbnRzID0gZGF0ZVRvVXRjU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDc6XG4gICAgICAgICAgICAgICAgICAgICAgICBub2RlQ29udGVudHMgPSBTdHJpbmcodmFsdWUuZ2V0VGltZSgpIC8gMTAwMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihcIk1pc3NpbmcgdGltZXN0YW1wIGZvcm1hdCwgdXNpbmcgaHR0cCBkYXRlXCIsIHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vZGVDb250ZW50cyA9IGRhdGVUb1V0Y1N0cmluZyh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChucy5pc0JpZ0RlY2ltYWxTY2hlbWEoKSAmJiB2YWx1ZSkge1xuICAgICAgICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIE51bWVyaWNWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUuc3RyaW5nO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKG5zLmlzTWFwU2NoZW1hKCkgfHwgbnMuaXNMaXN0U2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJAYXdzLXNkay9jb3JlL3Byb3RvY29scyAtIHhtbCBzZXJpYWxpemVyLCBjYW5ub3QgY2FsbCBfd3JpdGUoKSBvbiBMaXN0L01hcCBzY2hlbWEsIGNhbGwgd3JpdGVMaXN0IG9yIHdyaXRlTWFwKCkgaW5zdGVhZC5cIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEBhd3Mtc2RrL2NvcmUvcHJvdG9jb2xzIC0geG1sIHNlcmlhbGl6ZXIsIHVuaGFuZGxlZCBzY2hlbWEgdHlwZSBmb3Igb2JqZWN0IHZhbHVlIGFuZCBzY2hlbWE6ICR7bnMuZ2V0TmFtZSh0cnVlKX1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAobnMuaXNCb29sZWFuU2NoZW1hKCkgfHwgbnMuaXNOdW1lcmljU2NoZW1hKCkgfHwgbnMuaXNCaWdJbnRlZ2VyU2NoZW1hKCkgfHwgbnMuaXNCaWdEZWNpbWFsU2NoZW1hKCkpIHtcbiAgICAgICAgICAgIG5vZGVDb250ZW50cyA9IFN0cmluZyh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzU3RyaW5nU2NoZW1hKCkpIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkICYmIG5zLmlzSWRlbXBvdGVuY3lUb2tlbigpKSB7XG4gICAgICAgICAgICAgICAgbm9kZUNvbnRlbnRzID0gZ2VuZXJhdGVJZGVtcG90ZW5jeVRva2VuKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBub2RlQ29udGVudHMgPSBTdHJpbmcodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChub2RlQ29udGVudHMgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5oYW5kbGVkIHNjaGVtYS12YWx1ZSBwYWlyICR7bnMuZ2V0TmFtZSh0cnVlKX09JHt2YWx1ZX1gKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbm9kZUNvbnRlbnRzO1xuICAgIH1cbiAgICB3cml0ZVNpbXBsZUludG8oX3NjaGVtYSwgdmFsdWUsIGludG8sIHBhcmVudFhtbG5zKSB7XG4gICAgICAgIGNvbnN0IG5vZGVDb250ZW50cyA9IHRoaXMud3JpdGVTaW1wbGUoX3NjaGVtYSwgdmFsdWUpO1xuICAgICAgICBjb25zdCBucyA9IE5vcm1hbGl6ZWRTY2hlbWEub2YoX3NjaGVtYSk7XG4gICAgICAgIGNvbnN0IGNvbnRlbnQgPSBuZXcgWG1sVGV4dChub2RlQ29udGVudHMpO1xuICAgICAgICBjb25zdCBbeG1sbnNBdHRyLCB4bWxuc10gPSB0aGlzLmdldFhtbG5zQXR0cmlidXRlKG5zLCBwYXJlbnRYbWxucyk7XG4gICAgICAgIGlmICh4bWxucykge1xuICAgICAgICAgICAgaW50by5hZGRBdHRyaWJ1dGUoeG1sbnNBdHRyLCB4bWxucyk7XG4gICAgICAgIH1cbiAgICAgICAgaW50by5hZGRDaGlsZE5vZGUoY29udGVudCk7XG4gICAgfVxuICAgIGdldFhtbG5zQXR0cmlidXRlKG5zLCBwYXJlbnRYbWxucykge1xuICAgICAgICBjb25zdCB0cmFpdHMgPSBucy5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgY29uc3QgW3ByZWZpeCwgeG1sbnNdID0gdHJhaXRzLnhtbE5hbWVzcGFjZSA/PyBbXTtcbiAgICAgICAgaWYgKHhtbG5zICYmIHhtbG5zICE9PSBwYXJlbnRYbWxucykge1xuICAgICAgICAgICAgcmV0dXJuIFtwcmVmaXggPyBgeG1sbnM6JHtwcmVmaXh9YCA6IFwieG1sbnNcIiwgeG1sbnNdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBbdm9pZCAwLCB2b2lkIDBdO1xuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBTZXJkZUNvbnRleHRDb25maWcgfSBmcm9tIFwiLi4vQ29uZmlndXJhYmxlU2VyZGVDb250ZXh0XCI7XG5pbXBvcnQgeyBYbWxTaGFwZURlc2VyaWFsaXplciB9IGZyb20gXCIuL1htbFNoYXBlRGVzZXJpYWxpemVyXCI7XG5pbXBvcnQgeyBYbWxTaGFwZVNlcmlhbGl6ZXIgfSBmcm9tIFwiLi9YbWxTaGFwZVNlcmlhbGl6ZXJcIjtcbmV4cG9ydCBjbGFzcyBYbWxDb2RlYyBleHRlbmRzIFNlcmRlQ29udGV4dENvbmZpZyB7XG4gICAgc2V0dGluZ3M7XG4gICAgY29uc3RydWN0b3Ioc2V0dGluZ3MpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5zZXR0aW5ncyA9IHNldHRpbmdzO1xuICAgIH1cbiAgICBjcmVhdGVTZXJpYWxpemVyKCkge1xuICAgICAgICBjb25zdCBzZXJpYWxpemVyID0gbmV3IFhtbFNoYXBlU2VyaWFsaXplcih0aGlzLnNldHRpbmdzKTtcbiAgICAgICAgc2VyaWFsaXplci5zZXRTZXJkZUNvbnRleHQodGhpcy5zZXJkZUNvbnRleHQpO1xuICAgICAgICByZXR1cm4gc2VyaWFsaXplcjtcbiAgICB9XG4gICAgY3JlYXRlRGVzZXJpYWxpemVyKCkge1xuICAgICAgICBjb25zdCBkZXNlcmlhbGl6ZXIgPSBuZXcgWG1sU2hhcGVEZXNlcmlhbGl6ZXIodGhpcy5zZXR0aW5ncyk7XG4gICAgICAgIGRlc2VyaWFsaXplci5zZXRTZXJkZUNvbnRleHQodGhpcy5zZXJkZUNvbnRleHQpO1xuICAgICAgICByZXR1cm4gZGVzZXJpYWxpemVyO1xuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBIdHRwQmluZGluZ1Byb3RvY29sLCBIdHRwSW50ZXJjZXB0aW5nU2hhcGVEZXNlcmlhbGl6ZXIsIEh0dHBJbnRlcmNlcHRpbmdTaGFwZVNlcmlhbGl6ZXIsIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9wcm90b2NvbHNcIjtcbmltcG9ydCB7IE5vcm1hbGl6ZWRTY2hlbWEgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3NjaGVtYVwiO1xuaW1wb3J0IHsgUHJvdG9jb2xMaWIgfSBmcm9tIFwiLi4vUHJvdG9jb2xMaWJcIjtcbmltcG9ydCB7IGxvYWRSZXN0WG1sRXJyb3JDb2RlIH0gZnJvbSBcIi4vcGFyc2VYbWxCb2R5XCI7XG5pbXBvcnQgeyBYbWxDb2RlYyB9IGZyb20gXCIuL1htbENvZGVjXCI7XG5leHBvcnQgY2xhc3MgQXdzUmVzdFhtbFByb3RvY29sIGV4dGVuZHMgSHR0cEJpbmRpbmdQcm90b2NvbCB7XG4gICAgY29kZWM7XG4gICAgc2VyaWFsaXplcjtcbiAgICBkZXNlcmlhbGl6ZXI7XG4gICAgbWl4aW4gPSBuZXcgUHJvdG9jb2xMaWIoKTtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgICAgICBjb25zdCBzZXR0aW5ncyA9IHtcbiAgICAgICAgICAgIHRpbWVzdGFtcEZvcm1hdDoge1xuICAgICAgICAgICAgICAgIHVzZVRyYWl0OiB0cnVlLFxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IDUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaHR0cEJpbmRpbmdzOiB0cnVlLFxuICAgICAgICAgICAgeG1sTmFtZXNwYWNlOiBvcHRpb25zLnhtbE5hbWVzcGFjZSxcbiAgICAgICAgICAgIHNlcnZpY2VOYW1lc3BhY2U6IG9wdGlvbnMuZGVmYXVsdE5hbWVzcGFjZSxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5jb2RlYyA9IG5ldyBYbWxDb2RlYyhzZXR0aW5ncyk7XG4gICAgICAgIHRoaXMuc2VyaWFsaXplciA9IG5ldyBIdHRwSW50ZXJjZXB0aW5nU2hhcGVTZXJpYWxpemVyKHRoaXMuY29kZWMuY3JlYXRlU2VyaWFsaXplcigpLCBzZXR0aW5ncyk7XG4gICAgICAgIHRoaXMuZGVzZXJpYWxpemVyID0gbmV3IEh0dHBJbnRlcmNlcHRpbmdTaGFwZURlc2VyaWFsaXplcih0aGlzLmNvZGVjLmNyZWF0ZURlc2VyaWFsaXplcigpLCBzZXR0aW5ncyk7XG4gICAgfVxuICAgIGdldFBheWxvYWRDb2RlYygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29kZWM7XG4gICAgfVxuICAgIGdldFNoYXBlSWQoKSB7XG4gICAgICAgIHJldHVybiBcImF3cy5wcm90b2NvbHMjcmVzdFhtbFwiO1xuICAgIH1cbiAgICBhc3luYyBzZXJpYWxpemVSZXF1ZXN0KG9wZXJhdGlvblNjaGVtYSwgaW5wdXQsIGNvbnRleHQpIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IGF3YWl0IHN1cGVyLnNlcmlhbGl6ZVJlcXVlc3Qob3BlcmF0aW9uU2NoZW1hLCBpbnB1dCwgY29udGV4dCk7XG4gICAgICAgIGNvbnN0IGlucHV0U2NoZW1hID0gTm9ybWFsaXplZFNjaGVtYS5vZihvcGVyYXRpb25TY2hlbWEuaW5wdXQpO1xuICAgICAgICBpZiAoIXJlcXVlc3QuaGVhZGVyc1tcImNvbnRlbnQtdHlwZVwiXSkge1xuICAgICAgICAgICAgY29uc3QgY29udGVudFR5cGUgPSB0aGlzLm1peGluLnJlc29sdmVSZXN0Q29udGVudFR5cGUodGhpcy5nZXREZWZhdWx0Q29udGVudFR5cGUoKSwgaW5wdXRTY2hlbWEpO1xuICAgICAgICAgICAgaWYgKGNvbnRlbnRUeXBlKSB7XG4gICAgICAgICAgICAgICAgcmVxdWVzdC5oZWFkZXJzW1wiY29udGVudC10eXBlXCJdID0gY29udGVudFR5cGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiByZXF1ZXN0LmJvZHkgPT09IFwic3RyaW5nXCIgJiZcbiAgICAgICAgICAgIHJlcXVlc3QuaGVhZGVyc1tcImNvbnRlbnQtdHlwZVwiXSA9PT0gdGhpcy5nZXREZWZhdWx0Q29udGVudFR5cGUoKSAmJlxuICAgICAgICAgICAgIXJlcXVlc3QuYm9keS5zdGFydHNXaXRoKFwiPD94bWwgXCIpICYmXG4gICAgICAgICAgICAhdGhpcy5oYXNVbnN0cnVjdHVyZWRQYXlsb2FkQmluZGluZyhpbnB1dFNjaGVtYSkpIHtcbiAgICAgICAgICAgIHJlcXVlc3QuYm9keSA9ICc8P3htbCB2ZXJzaW9uPVwiMS4wXCIgZW5jb2Rpbmc9XCJVVEYtOFwiPz4nICsgcmVxdWVzdC5ib2R5O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXF1ZXN0O1xuICAgIH1cbiAgICBhc3luYyBkZXNlcmlhbGl6ZVJlc3BvbnNlKG9wZXJhdGlvblNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UpIHtcbiAgICAgICAgcmV0dXJuIHN1cGVyLmRlc2VyaWFsaXplUmVzcG9uc2Uob3BlcmF0aW9uU2NoZW1hLCBjb250ZXh0LCByZXNwb25zZSk7XG4gICAgfVxuICAgIGFzeW5jIGhhbmRsZUVycm9yKG9wZXJhdGlvblNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UsIGRhdGFPYmplY3QsIG1ldGFkYXRhKSB7XG4gICAgICAgIGNvbnN0IGVycm9ySWRlbnRpZmllciA9IGxvYWRSZXN0WG1sRXJyb3JDb2RlKHJlc3BvbnNlLCBkYXRhT2JqZWN0KSA/PyBcIlVua25vd25cIjtcbiAgICAgICAgdGhpcy5taXhpbi5jb21wb3NlKHRoaXMuY29tcG9zaXRlRXJyb3JSZWdpc3RyeSwgZXJyb3JJZGVudGlmaWVyLCB0aGlzLm9wdGlvbnMuZGVmYXVsdE5hbWVzcGFjZSk7XG4gICAgICAgIGlmIChkYXRhT2JqZWN0LkVycm9yICYmIHR5cGVvZiBkYXRhT2JqZWN0LkVycm9yID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhkYXRhT2JqZWN0LkVycm9yKSkge1xuICAgICAgICAgICAgICAgIGRhdGFPYmplY3Rba2V5XSA9IGRhdGFPYmplY3QuRXJyb3Jba2V5XTtcbiAgICAgICAgICAgICAgICBpZiAoa2V5LnRvTG93ZXJDYXNlKCkgPT09IFwibWVzc2FnZVwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGRhdGFPYmplY3QubWVzc2FnZSA9IGRhdGFPYmplY3QuRXJyb3Jba2V5XTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGFPYmplY3QuUmVxdWVzdElkICYmICFtZXRhZGF0YS5yZXF1ZXN0SWQpIHtcbiAgICAgICAgICAgIG1ldGFkYXRhLnJlcXVlc3RJZCA9IGRhdGFPYmplY3QuUmVxdWVzdElkO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHsgZXJyb3JTY2hlbWEsIGVycm9yTWV0YWRhdGEgfSA9IGF3YWl0IHRoaXMubWl4aW4uZ2V0RXJyb3JTY2hlbWFPclRocm93QmFzZUV4Y2VwdGlvbihlcnJvcklkZW50aWZpZXIsIHRoaXMub3B0aW9ucy5kZWZhdWx0TmFtZXNwYWNlLCByZXNwb25zZSwgZGF0YU9iamVjdCwgbWV0YWRhdGEpO1xuICAgICAgICBjb25zdCBucyA9IE5vcm1hbGl6ZWRTY2hlbWEub2YoZXJyb3JTY2hlbWEpO1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gZGF0YU9iamVjdC5FcnJvcj8ubWVzc2FnZSA/P1xuICAgICAgICAgICAgZGF0YU9iamVjdC5FcnJvcj8uTWVzc2FnZSA/P1xuICAgICAgICAgICAgZGF0YU9iamVjdC5tZXNzYWdlID8/XG4gICAgICAgICAgICBkYXRhT2JqZWN0Lk1lc3NhZ2UgPz9cbiAgICAgICAgICAgIFwiVW5rbm93bkVycm9yXCI7XG4gICAgICAgIGNvbnN0IEVycm9yQ3RvciA9IHRoaXMuY29tcG9zaXRlRXJyb3JSZWdpc3RyeS5nZXRFcnJvckN0b3IoZXJyb3JTY2hlbWEpID8/IEVycm9yO1xuICAgICAgICBjb25zdCBleGNlcHRpb24gPSBuZXcgRXJyb3JDdG9yKG1lc3NhZ2UpO1xuICAgICAgICBhd2FpdCB0aGlzLmRlc2VyaWFsaXplSHR0cE1lc3NhZ2UoZXJyb3JTY2hlbWEsIGNvbnRleHQsIHJlc3BvbnNlLCBkYXRhT2JqZWN0KTtcbiAgICAgICAgY29uc3Qgb3V0cHV0ID0ge307XG4gICAgICAgIGNvbnN0IGVycm9yRGVzZXJpYWxpemVyID0gdGhpcy5jb2RlYy5jcmVhdGVEZXNlcmlhbGl6ZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBbbmFtZSwgbWVtYmVyXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBtZW1iZXIuZ2V0TWVyZ2VkVHJhaXRzKCkueG1sTmFtZSA/PyBuYW1lO1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBkYXRhT2JqZWN0LkVycm9yPy5bdGFyZ2V0XSA/PyBkYXRhT2JqZWN0W3RhcmdldF07XG4gICAgICAgICAgICBvdXRwdXRbbmFtZV0gPSBlcnJvckRlc2VyaWFsaXplci5yZWFkU2NoZW1hKG1lbWJlciwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IHRoaXMubWl4aW4uZGVjb3JhdGVTZXJ2aWNlRXhjZXB0aW9uKE9iamVjdC5hc3NpZ24oZXhjZXB0aW9uLCBlcnJvck1ldGFkYXRhLCB7XG4gICAgICAgICAgICAkZmF1bHQ6IG5zLmdldE1lcmdlZFRyYWl0cygpLmVycm9yLFxuICAgICAgICAgICAgbWVzc2FnZSxcbiAgICAgICAgfSwgb3V0cHV0KSwgZGF0YU9iamVjdCk7XG4gICAgfVxuICAgIGdldERlZmF1bHRDb250ZW50VHlwZSgpIHtcbiAgICAgICAgcmV0dXJuIFwiYXBwbGljYXRpb24veG1sXCI7XG4gICAgfVxuICAgIGhhc1Vuc3RydWN0dXJlZFBheWxvYWRCaW5kaW5nKG5zKSB7XG4gICAgICAgIGZvciAoY29uc3QgWywgbWVtYmVyXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICBpZiAobWVtYmVyLmdldE1lcmdlZFRyYWl0cygpLmh0dHBQYXlsb2FkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICEobWVtYmVyLmlzU3RydWN0U2NoZW1hKCkgfHwgbWVtYmVyLmlzTWFwU2NoZW1hKCkgfHwgbWVtYmVyLmlzTGlzdFNjaGVtYSgpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuIiwgImV4cG9ydCAqIGZyb20gXCIuL2Nib3IvQXdzU21pdGh5UnBjVjJDYm9yUHJvdG9jb2xcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvZXJjaW5nLXNlcmlhbGl6ZXJzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9qc29uL0F3c0pzb24xXzBQcm90b2NvbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vanNvbi9Bd3NKc29uMV8xUHJvdG9jb2xcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2pzb24vQXdzSnNvblJwY1Byb3RvY29sXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9qc29uL0F3c1Jlc3RKc29uUHJvdG9jb2xcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2pzb24vSnNvbkNvZGVjXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9qc29uL0pzb25TaGFwZURlc2VyaWFsaXplclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vanNvbi9Kc29uU2hhcGVTZXJpYWxpemVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9qc29uL2F3c0V4cGVjdFVuaW9uXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9qc29uL3BhcnNlSnNvbkJvZHlcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3F1ZXJ5L0F3c0VjMlF1ZXJ5UHJvdG9jb2xcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3F1ZXJ5L0F3c1F1ZXJ5UHJvdG9jb2xcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3F1ZXJ5L1F1ZXJ5U2VyaWFsaXplclNldHRpbmdzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9xdWVyeS9RdWVyeVNoYXBlU2VyaWFsaXplclwiO1xuZXhwb3J0ICogZnJvbSBcIi4veG1sL0F3c1Jlc3RYbWxQcm90b2NvbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4veG1sL1htbENvZGVjXCI7XG5leHBvcnQgKiBmcm9tIFwiLi94bWwvWG1sU2hhcGVEZXNlcmlhbGl6ZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3htbC9YbWxTaGFwZVNlcmlhbGl6ZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3htbC9wYXJzZVhtbEJvZHlcIjtcbiIsICJpbXBvcnQgeyBCaW5hcnlEZWNpc2lvbkRpYWdyYW0gfSBmcm9tIFwiQHNtaXRoeS91dGlsLWVuZHBvaW50c1wiO1xuY29uc3QgayA9IFwicmVmXCI7XG5jb25zdCBhID0gLTEsIGIgPSB0cnVlLCBjID0gXCJpc1NldFwiLCBkID0gXCJQYXJ0aXRpb25SZXN1bHRcIiwgZSA9IFwiYm9vbGVhbkVxdWFsc1wiLCBmID0gXCJnZXRBdHRyXCIsIGcgPSB7IFtrXTogXCJFbmRwb2ludFwiIH0sIGggPSB7IFtrXTogZCB9LCBpID0ge30sIGogPSBbeyBba106IFwiUmVnaW9uXCIgfV07XG5jb25zdCBfZGF0YSA9IHtcbiAgICBjb25kaXRpb25zOiBbXG4gICAgICAgIFtjLCBbZ11dLFxuICAgICAgICBbYywgal0sXG4gICAgICAgIFtcImF3cy5wYXJ0aXRpb25cIiwgaiwgZF0sXG4gICAgICAgIFtlLCBbeyBba106IFwiVXNlRklQU1wiIH0sIGJdXSxcbiAgICAgICAgW2UsIFt7IFtrXTogXCJVc2VEdWFsU3RhY2tcIiB9LCBiXV0sXG4gICAgICAgIFtlLCBbeyBmbjogZiwgYXJndjogW2gsIFwic3VwcG9ydHNEdWFsU3RhY2tcIl0gfSwgYl1dLFxuICAgICAgICBbZSwgW3sgZm46IGYsIGFyZ3Y6IFtoLCBcInN1cHBvcnRzRklQU1wiXSB9LCBiXV0sXG4gICAgICAgIFtcInN0cmluZ0VxdWFsc1wiLCBbeyBmbjogZiwgYXJndjogW2gsIFwibmFtZVwiXSB9LCBcImF3cy11cy1nb3ZcIl1dLFxuICAgIF0sXG4gICAgcmVzdWx0czogW1xuICAgICAgICBbYV0sXG4gICAgICAgIFthLCBcIkludmFsaWQgQ29uZmlndXJhdGlvbjogRklQUyBhbmQgY3VzdG9tIGVuZHBvaW50IGFyZSBub3Qgc3VwcG9ydGVkXCJdLFxuICAgICAgICBbYSwgXCJJbnZhbGlkIENvbmZpZ3VyYXRpb246IER1YWxzdGFjayBhbmQgY3VzdG9tIGVuZHBvaW50IGFyZSBub3Qgc3VwcG9ydGVkXCJdLFxuICAgICAgICBbZywgaV0sXG4gICAgICAgIFtcImh0dHBzOi8vb2lkYy1maXBzLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZHVhbFN0YWNrRG5zU3VmZml4fVwiLCBpXSxcbiAgICAgICAgW2EsIFwiRklQUyBhbmQgRHVhbFN0YWNrIGFyZSBlbmFibGVkLCBidXQgdGhpcyBwYXJ0aXRpb24gZG9lcyBub3Qgc3VwcG9ydCBvbmUgb3IgYm90aFwiXSxcbiAgICAgICAgW1wiaHR0cHM6Ly9vaWRjLntSZWdpb259LmFtYXpvbmF3cy5jb21cIiwgaV0sXG4gICAgICAgIFtcImh0dHBzOi8vb2lkYy1maXBzLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZG5zU3VmZml4fVwiLCBpXSxcbiAgICAgICAgW2EsIFwiRklQUyBpcyBlbmFibGVkIGJ1dCB0aGlzIHBhcnRpdGlvbiBkb2VzIG5vdCBzdXBwb3J0IEZJUFNcIl0sXG4gICAgICAgIFtcImh0dHBzOi8vb2lkYy57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2R1YWxTdGFja0Ruc1N1ZmZpeH1cIiwgaV0sXG4gICAgICAgIFthLCBcIkR1YWxTdGFjayBpcyBlbmFibGVkIGJ1dCB0aGlzIHBhcnRpdGlvbiBkb2VzIG5vdCBzdXBwb3J0IER1YWxTdGFja1wiXSxcbiAgICAgICAgW1wiaHR0cHM6Ly9vaWRjLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZG5zU3VmZml4fVwiLCBpXSxcbiAgICAgICAgW2EsIFwiSW52YWxpZCBDb25maWd1cmF0aW9uOiBNaXNzaW5nIFJlZ2lvblwiXSxcbiAgICBdLFxufTtcbmNvbnN0IHJvb3QgPSAyO1xuY29uc3QgciA9IDEwMF8wMDBfMDAwO1xuY29uc3Qgbm9kZXMgPSBuZXcgSW50MzJBcnJheShbXG4gICAgLTEsXG4gICAgMSxcbiAgICAtMSxcbiAgICAwLFxuICAgIDEzLFxuICAgIDMsXG4gICAgMSxcbiAgICA0LFxuICAgIHIgKyAxMixcbiAgICAyLFxuICAgIDUsXG4gICAgciArIDEyLFxuICAgIDMsXG4gICAgOCxcbiAgICA2LFxuICAgIDQsXG4gICAgNyxcbiAgICByICsgMTEsXG4gICAgNSxcbiAgICByICsgOSxcbiAgICByICsgMTAsXG4gICAgNCxcbiAgICAxMSxcbiAgICA5LFxuICAgIDYsXG4gICAgMTAsXG4gICAgciArIDgsXG4gICAgNyxcbiAgICByICsgNixcbiAgICByICsgNyxcbiAgICA1LFxuICAgIDEyLFxuICAgIHIgKyA1LFxuICAgIDYsXG4gICAgciArIDQsXG4gICAgciArIDUsXG4gICAgMyxcbiAgICByICsgMSxcbiAgICAxNCxcbiAgICA0LFxuICAgIHIgKyAyLFxuICAgIHIgKyAzLFxuXSk7XG5leHBvcnQgY29uc3QgYmRkID0gQmluYXJ5RGVjaXNpb25EaWFncmFtLmZyb20obm9kZXMsIHJvb3QsIF9kYXRhLmNvbmRpdGlvbnMsIF9kYXRhLnJlc3VsdHMpO1xuIiwgImltcG9ydCB7IGF3c0VuZHBvaW50RnVuY3Rpb25zIH0gZnJvbSBcIkBhd3Mtc2RrL3V0aWwtZW5kcG9pbnRzXCI7XG5pbXBvcnQgeyBjdXN0b21FbmRwb2ludEZ1bmN0aW9ucywgZGVjaWRlRW5kcG9pbnQsIEVuZHBvaW50Q2FjaGUgfSBmcm9tIFwiQHNtaXRoeS91dGlsLWVuZHBvaW50c1wiO1xuaW1wb3J0IHsgYmRkIH0gZnJvbSBcIi4vYmRkXCI7XG5jb25zdCBjYWNoZSA9IG5ldyBFbmRwb2ludENhY2hlKHtcbiAgICBzaXplOiA1MCxcbiAgICBwYXJhbXM6IFtcIkVuZHBvaW50XCIsIFwiUmVnaW9uXCIsIFwiVXNlRHVhbFN0YWNrXCIsIFwiVXNlRklQU1wiXSxcbn0pO1xuZXhwb3J0IGNvbnN0IGRlZmF1bHRFbmRwb2ludFJlc29sdmVyID0gKGVuZHBvaW50UGFyYW1zLCBjb250ZXh0ID0ge30pID0+IHtcbiAgICByZXR1cm4gY2FjaGUuZ2V0KGVuZHBvaW50UGFyYW1zLCAoKSA9PiBkZWNpZGVFbmRwb2ludChiZGQsIHtcbiAgICAgICAgZW5kcG9pbnRQYXJhbXM6IGVuZHBvaW50UGFyYW1zLFxuICAgICAgICBsb2dnZXI6IGNvbnRleHQubG9nZ2VyLFxuICAgIH0pKTtcbn07XG5jdXN0b21FbmRwb2ludEZ1bmN0aW9ucy5hd3MgPSBhd3NFbmRwb2ludEZ1bmN0aW9ucztcbiIsICJpbXBvcnQgeyBTZXJ2aWNlRXhjZXB0aW9uIGFzIF9fU2VydmljZUV4Y2VwdGlvbiwgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5leHBvcnQgeyBfX1NlcnZpY2VFeGNlcHRpb24gfTtcbmV4cG9ydCBjbGFzcyBTU09PSURDU2VydmljZUV4Y2VwdGlvbiBleHRlbmRzIF9fU2VydmljZUV4Y2VwdGlvbiB7XG4gICAgY29uc3RydWN0b3Iob3B0aW9ucykge1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFNTT09JRENTZXJ2aWNlRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IFNTT09JRENTZXJ2aWNlRXhjZXB0aW9uIGFzIF9fQmFzZUV4Y2VwdGlvbiB9IGZyb20gXCIuL1NTT09JRENTZXJ2aWNlRXhjZXB0aW9uXCI7XG5leHBvcnQgY2xhc3MgQWNjZXNzRGVuaWVkRXhjZXB0aW9uIGV4dGVuZHMgX19CYXNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJBY2Nlc3NEZW5pZWRFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGVycm9yO1xuICAgIHJlYXNvbjtcbiAgICBlcnJvcl9kZXNjcmlwdGlvbjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiQWNjZXNzRGVuaWVkRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEFjY2Vzc0RlbmllZEV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLmVycm9yID0gb3B0cy5lcnJvcjtcbiAgICAgICAgdGhpcy5yZWFzb24gPSBvcHRzLnJlYXNvbjtcbiAgICAgICAgdGhpcy5lcnJvcl9kZXNjcmlwdGlvbiA9IG9wdHMuZXJyb3JfZGVzY3JpcHRpb247XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIEF1dGhvcml6YXRpb25QZW5kaW5nRXhjZXB0aW9uIGV4dGVuZHMgX19CYXNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJBdXRob3JpemF0aW9uUGVuZGluZ0V4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgZXJyb3I7XG4gICAgZXJyb3JfZGVzY3JpcHRpb247XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkF1dGhvcml6YXRpb25QZW5kaW5nRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEF1dGhvcml6YXRpb25QZW5kaW5nRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuZXJyb3IgPSBvcHRzLmVycm9yO1xuICAgICAgICB0aGlzLmVycm9yX2Rlc2NyaXB0aW9uID0gb3B0cy5lcnJvcl9kZXNjcmlwdGlvbjtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgRXhwaXJlZFRva2VuRXhjZXB0aW9uIGV4dGVuZHMgX19CYXNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJFeHBpcmVkVG9rZW5FeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGVycm9yO1xuICAgIGVycm9yX2Rlc2NyaXB0aW9uO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJFeHBpcmVkVG9rZW5FeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgRXhwaXJlZFRva2VuRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuZXJyb3IgPSBvcHRzLmVycm9yO1xuICAgICAgICB0aGlzLmVycm9yX2Rlc2NyaXB0aW9uID0gb3B0cy5lcnJvcl9kZXNjcmlwdGlvbjtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb24gZXh0ZW5kcyBfX0Jhc2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIkludGVybmFsU2VydmVyRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJzZXJ2ZXJcIjtcbiAgICBlcnJvcjtcbiAgICBlcnJvcl9kZXNjcmlwdGlvbjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJzZXJ2ZXJcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5lcnJvciA9IG9wdHMuZXJyb3I7XG4gICAgICAgIHRoaXMuZXJyb3JfZGVzY3JpcHRpb24gPSBvcHRzLmVycm9yX2Rlc2NyaXB0aW9uO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBJbnZhbGlkQ2xpZW50RXhjZXB0aW9uIGV4dGVuZHMgX19CYXNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJJbnZhbGlkQ2xpZW50RXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBlcnJvcjtcbiAgICBlcnJvcl9kZXNjcmlwdGlvbjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiSW52YWxpZENsaWVudEV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBJbnZhbGlkQ2xpZW50RXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuZXJyb3IgPSBvcHRzLmVycm9yO1xuICAgICAgICB0aGlzLmVycm9yX2Rlc2NyaXB0aW9uID0gb3B0cy5lcnJvcl9kZXNjcmlwdGlvbjtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgSW52YWxpZEdyYW50RXhjZXB0aW9uIGV4dGVuZHMgX19CYXNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJJbnZhbGlkR3JhbnRFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGVycm9yO1xuICAgIGVycm9yX2Rlc2NyaXB0aW9uO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJJbnZhbGlkR3JhbnRFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgSW52YWxpZEdyYW50RXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuZXJyb3IgPSBvcHRzLmVycm9yO1xuICAgICAgICB0aGlzLmVycm9yX2Rlc2NyaXB0aW9uID0gb3B0cy5lcnJvcl9kZXNjcmlwdGlvbjtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgSW52YWxpZFJlcXVlc3RFeGNlcHRpb24gZXh0ZW5kcyBfX0Jhc2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIkludmFsaWRSZXF1ZXN0RXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBlcnJvcjtcbiAgICByZWFzb247XG4gICAgZXJyb3JfZGVzY3JpcHRpb247XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkludmFsaWRSZXF1ZXN0RXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEludmFsaWRSZXF1ZXN0RXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuZXJyb3IgPSBvcHRzLmVycm9yO1xuICAgICAgICB0aGlzLnJlYXNvbiA9IG9wdHMucmVhc29uO1xuICAgICAgICB0aGlzLmVycm9yX2Rlc2NyaXB0aW9uID0gb3B0cy5lcnJvcl9kZXNjcmlwdGlvbjtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgSW52YWxpZFNjb3BlRXhjZXB0aW9uIGV4dGVuZHMgX19CYXNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJJbnZhbGlkU2NvcGVFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGVycm9yO1xuICAgIGVycm9yX2Rlc2NyaXB0aW9uO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJJbnZhbGlkU2NvcGVFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgSW52YWxpZFNjb3BlRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuZXJyb3IgPSBvcHRzLmVycm9yO1xuICAgICAgICB0aGlzLmVycm9yX2Rlc2NyaXB0aW9uID0gb3B0cy5lcnJvcl9kZXNjcmlwdGlvbjtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgU2xvd0Rvd25FeGNlcHRpb24gZXh0ZW5kcyBfX0Jhc2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIlNsb3dEb3duRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBlcnJvcjtcbiAgICBlcnJvcl9kZXNjcmlwdGlvbjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiU2xvd0Rvd25FeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgU2xvd0Rvd25FeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5lcnJvciA9IG9wdHMuZXJyb3I7XG4gICAgICAgIHRoaXMuZXJyb3JfZGVzY3JpcHRpb24gPSBvcHRzLmVycm9yX2Rlc2NyaXB0aW9uO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBVbmF1dGhvcml6ZWRDbGllbnRFeGNlcHRpb24gZXh0ZW5kcyBfX0Jhc2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIlVuYXV0aG9yaXplZENsaWVudEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgZXJyb3I7XG4gICAgZXJyb3JfZGVzY3JpcHRpb247XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIlVuYXV0aG9yaXplZENsaWVudEV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBVbmF1dGhvcml6ZWRDbGllbnRFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5lcnJvciA9IG9wdHMuZXJyb3I7XG4gICAgICAgIHRoaXMuZXJyb3JfZGVzY3JpcHRpb24gPSBvcHRzLmVycm9yX2Rlc2NyaXB0aW9uO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBVbnN1cHBvcnRlZEdyYW50VHlwZUV4Y2VwdGlvbiBleHRlbmRzIF9fQmFzZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiVW5zdXBwb3J0ZWRHcmFudFR5cGVFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGVycm9yO1xuICAgIGVycm9yX2Rlc2NyaXB0aW9uO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJVbnN1cHBvcnRlZEdyYW50VHlwZUV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBVbnN1cHBvcnRlZEdyYW50VHlwZUV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLmVycm9yID0gb3B0cy5lcnJvcjtcbiAgICAgICAgdGhpcy5lcnJvcl9kZXNjcmlwdGlvbiA9IG9wdHMuZXJyb3JfZGVzY3JpcHRpb247XG4gICAgfVxufVxuIiwgImNvbnN0IF9BREUgPSBcIkFjY2Vzc0RlbmllZEV4Y2VwdGlvblwiO1xuY29uc3QgX0FQRSA9IFwiQXV0aG9yaXphdGlvblBlbmRpbmdFeGNlcHRpb25cIjtcbmNvbnN0IF9BVCA9IFwiQWNjZXNzVG9rZW5cIjtcbmNvbnN0IF9DUyA9IFwiQ2xpZW50U2VjcmV0XCI7XG5jb25zdCBfQ1QgPSBcIkNyZWF0ZVRva2VuXCI7XG5jb25zdCBfQ1RSID0gXCJDcmVhdGVUb2tlblJlcXVlc3RcIjtcbmNvbnN0IF9DVFJyID0gXCJDcmVhdGVUb2tlblJlc3BvbnNlXCI7XG5jb25zdCBfQ1YgPSBcIkNvZGVWZXJpZmllclwiO1xuY29uc3QgX0VURSA9IFwiRXhwaXJlZFRva2VuRXhjZXB0aW9uXCI7XG5jb25zdCBfSUNFID0gXCJJbnZhbGlkQ2xpZW50RXhjZXB0aW9uXCI7XG5jb25zdCBfSUdFID0gXCJJbnZhbGlkR3JhbnRFeGNlcHRpb25cIjtcbmNvbnN0IF9JUkUgPSBcIkludmFsaWRSZXF1ZXN0RXhjZXB0aW9uXCI7XG5jb25zdCBfSVNFID0gXCJJbnRlcm5hbFNlcnZlckV4Y2VwdGlvblwiO1xuY29uc3QgX0lTRW4gPSBcIkludmFsaWRTY29wZUV4Y2VwdGlvblwiO1xuY29uc3QgX0lUID0gXCJJZFRva2VuXCI7XG5jb25zdCBfUlQgPSBcIlJlZnJlc2hUb2tlblwiO1xuY29uc3QgX1NERSA9IFwiU2xvd0Rvd25FeGNlcHRpb25cIjtcbmNvbnN0IF9VQ0UgPSBcIlVuYXV0aG9yaXplZENsaWVudEV4Y2VwdGlvblwiO1xuY29uc3QgX1VHVEUgPSBcIlVuc3VwcG9ydGVkR3JhbnRUeXBlRXhjZXB0aW9uXCI7XG5jb25zdCBfYVQgPSBcImFjY2Vzc1Rva2VuXCI7XG5jb25zdCBfYyA9IFwiY2xpZW50XCI7XG5jb25zdCBfY0kgPSBcImNsaWVudElkXCI7XG5jb25zdCBfY1MgPSBcImNsaWVudFNlY3JldFwiO1xuY29uc3QgX2NWID0gXCJjb2RlVmVyaWZpZXJcIjtcbmNvbnN0IF9jbyA9IFwiY29kZVwiO1xuY29uc3QgX2RDID0gXCJkZXZpY2VDb2RlXCI7XG5jb25zdCBfZSA9IFwiZXJyb3JcIjtcbmNvbnN0IF9lSSA9IFwiZXhwaXJlc0luXCI7XG5jb25zdCBfZWQgPSBcImVycm9yX2Rlc2NyaXB0aW9uXCI7XG5jb25zdCBfZ1QgPSBcImdyYW50VHlwZVwiO1xuY29uc3QgX2ggPSBcImh0dHBcIjtcbmNvbnN0IF9oRSA9IFwiaHR0cEVycm9yXCI7XG5jb25zdCBfaVQgPSBcImlkVG9rZW5cIjtcbmNvbnN0IF9yID0gXCJyZWFzb25cIjtcbmNvbnN0IF9yVCA9IFwicmVmcmVzaFRva2VuXCI7XG5jb25zdCBfclUgPSBcInJlZGlyZWN0VXJpXCI7XG5jb25zdCBfcyA9IFwic21pdGh5LnRzLnNkay5zeW50aGV0aWMuY29tLmFtYXpvbmF3cy5zc29vaWRjXCI7XG5jb25zdCBfc2MgPSBcInNjb3BlXCI7XG5jb25zdCBfc2UgPSBcInNlcnZlclwiO1xuY29uc3QgX3RUID0gXCJ0b2tlblR5cGVcIjtcbmNvbnN0IG4wID0gXCJjb20uYW1hem9uYXdzLnNzb29pZGNcIjtcbmltcG9ydCB7IFR5cGVSZWdpc3RyeSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2NoZW1hXCI7XG5pbXBvcnQgeyBBY2Nlc3NEZW5pZWRFeGNlcHRpb24sIEF1dGhvcml6YXRpb25QZW5kaW5nRXhjZXB0aW9uLCBFeHBpcmVkVG9rZW5FeGNlcHRpb24sIEludGVybmFsU2VydmVyRXhjZXB0aW9uLCBJbnZhbGlkQ2xpZW50RXhjZXB0aW9uLCBJbnZhbGlkR3JhbnRFeGNlcHRpb24sIEludmFsaWRSZXF1ZXN0RXhjZXB0aW9uLCBJbnZhbGlkU2NvcGVFeGNlcHRpb24sIFNsb3dEb3duRXhjZXB0aW9uLCBVbmF1dGhvcml6ZWRDbGllbnRFeGNlcHRpb24sIFVuc3VwcG9ydGVkR3JhbnRUeXBlRXhjZXB0aW9uLCB9IGZyb20gXCIuLi9tb2RlbHMvZXJyb3JzXCI7XG5pbXBvcnQgeyBTU09PSURDU2VydmljZUV4Y2VwdGlvbiB9IGZyb20gXCIuLi9tb2RlbHMvU1NPT0lEQ1NlcnZpY2VFeGNlcHRpb25cIjtcbmNvbnN0IF9zX3JlZ2lzdHJ5ID0gVHlwZVJlZ2lzdHJ5LmZvcihfcyk7XG5leHBvcnQgdmFyIFNTT09JRENTZXJ2aWNlRXhjZXB0aW9uJCA9IFstMywgX3MsIFwiU1NPT0lEQ1NlcnZpY2VFeGNlcHRpb25cIiwgMCwgW10sIFtdXTtcbl9zX3JlZ2lzdHJ5LnJlZ2lzdGVyRXJyb3IoU1NPT0lEQ1NlcnZpY2VFeGNlcHRpb24kLCBTU09PSURDU2VydmljZUV4Y2VwdGlvbik7XG5jb25zdCBuMF9yZWdpc3RyeSA9IFR5cGVSZWdpc3RyeS5mb3IobjApO1xuZXhwb3J0IHZhciBBY2Nlc3NEZW5pZWRFeGNlcHRpb24kID0gW1xuICAgIC0zLFxuICAgIG4wLFxuICAgIF9BREUsXG4gICAgeyBbX2VdOiBfYywgW19oRV06IDQwMCB9LFxuICAgIFtfZSwgX3IsIF9lZF0sXG4gICAgWzAsIDAsIDBdLFxuXTtcbm4wX3JlZ2lzdHJ5LnJlZ2lzdGVyRXJyb3IoQWNjZXNzRGVuaWVkRXhjZXB0aW9uJCwgQWNjZXNzRGVuaWVkRXhjZXB0aW9uKTtcbmV4cG9ydCB2YXIgQXV0aG9yaXphdGlvblBlbmRpbmdFeGNlcHRpb24kID0gW1xuICAgIC0zLFxuICAgIG4wLFxuICAgIF9BUEUsXG4gICAgeyBbX2VdOiBfYywgW19oRV06IDQwMCB9LFxuICAgIFtfZSwgX2VkXSxcbiAgICBbMCwgMF0sXG5dO1xubjBfcmVnaXN0cnkucmVnaXN0ZXJFcnJvcihBdXRob3JpemF0aW9uUGVuZGluZ0V4Y2VwdGlvbiQsIEF1dGhvcml6YXRpb25QZW5kaW5nRXhjZXB0aW9uKTtcbmV4cG9ydCB2YXIgRXhwaXJlZFRva2VuRXhjZXB0aW9uJCA9IFstMywgbjAsIF9FVEUsIHsgW19lXTogX2MsIFtfaEVdOiA0MDAgfSwgW19lLCBfZWRdLCBbMCwgMF1dO1xubjBfcmVnaXN0cnkucmVnaXN0ZXJFcnJvcihFeHBpcmVkVG9rZW5FeGNlcHRpb24kLCBFeHBpcmVkVG9rZW5FeGNlcHRpb24pO1xuZXhwb3J0IHZhciBJbnRlcm5hbFNlcnZlckV4Y2VwdGlvbiQgPSBbLTMsIG4wLCBfSVNFLCB7IFtfZV06IF9zZSwgW19oRV06IDUwMCB9LCBbX2UsIF9lZF0sIFswLCAwXV07XG5uMF9yZWdpc3RyeS5yZWdpc3RlckVycm9yKEludGVybmFsU2VydmVyRXhjZXB0aW9uJCwgSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb24pO1xuZXhwb3J0IHZhciBJbnZhbGlkQ2xpZW50RXhjZXB0aW9uJCA9IFstMywgbjAsIF9JQ0UsIHsgW19lXTogX2MsIFtfaEVdOiA0MDEgfSwgW19lLCBfZWRdLCBbMCwgMF1dO1xubjBfcmVnaXN0cnkucmVnaXN0ZXJFcnJvcihJbnZhbGlkQ2xpZW50RXhjZXB0aW9uJCwgSW52YWxpZENsaWVudEV4Y2VwdGlvbik7XG5leHBvcnQgdmFyIEludmFsaWRHcmFudEV4Y2VwdGlvbiQgPSBbLTMsIG4wLCBfSUdFLCB7IFtfZV06IF9jLCBbX2hFXTogNDAwIH0sIFtfZSwgX2VkXSwgWzAsIDBdXTtcbm4wX3JlZ2lzdHJ5LnJlZ2lzdGVyRXJyb3IoSW52YWxpZEdyYW50RXhjZXB0aW9uJCwgSW52YWxpZEdyYW50RXhjZXB0aW9uKTtcbmV4cG9ydCB2YXIgSW52YWxpZFJlcXVlc3RFeGNlcHRpb24kID0gW1xuICAgIC0zLFxuICAgIG4wLFxuICAgIF9JUkUsXG4gICAgeyBbX2VdOiBfYywgW19oRV06IDQwMCB9LFxuICAgIFtfZSwgX3IsIF9lZF0sXG4gICAgWzAsIDAsIDBdLFxuXTtcbm4wX3JlZ2lzdHJ5LnJlZ2lzdGVyRXJyb3IoSW52YWxpZFJlcXVlc3RFeGNlcHRpb24kLCBJbnZhbGlkUmVxdWVzdEV4Y2VwdGlvbik7XG5leHBvcnQgdmFyIEludmFsaWRTY29wZUV4Y2VwdGlvbiQgPSBbLTMsIG4wLCBfSVNFbiwgeyBbX2VdOiBfYywgW19oRV06IDQwMCB9LCBbX2UsIF9lZF0sIFswLCAwXV07XG5uMF9yZWdpc3RyeS5yZWdpc3RlckVycm9yKEludmFsaWRTY29wZUV4Y2VwdGlvbiQsIEludmFsaWRTY29wZUV4Y2VwdGlvbik7XG5leHBvcnQgdmFyIFNsb3dEb3duRXhjZXB0aW9uJCA9IFstMywgbjAsIF9TREUsIHsgW19lXTogX2MsIFtfaEVdOiA0MDAgfSwgW19lLCBfZWRdLCBbMCwgMF1dO1xubjBfcmVnaXN0cnkucmVnaXN0ZXJFcnJvcihTbG93RG93bkV4Y2VwdGlvbiQsIFNsb3dEb3duRXhjZXB0aW9uKTtcbmV4cG9ydCB2YXIgVW5hdXRob3JpemVkQ2xpZW50RXhjZXB0aW9uJCA9IFtcbiAgICAtMyxcbiAgICBuMCxcbiAgICBfVUNFLFxuICAgIHsgW19lXTogX2MsIFtfaEVdOiA0MDAgfSxcbiAgICBbX2UsIF9lZF0sXG4gICAgWzAsIDBdLFxuXTtcbm4wX3JlZ2lzdHJ5LnJlZ2lzdGVyRXJyb3IoVW5hdXRob3JpemVkQ2xpZW50RXhjZXB0aW9uJCwgVW5hdXRob3JpemVkQ2xpZW50RXhjZXB0aW9uKTtcbmV4cG9ydCB2YXIgVW5zdXBwb3J0ZWRHcmFudFR5cGVFeGNlcHRpb24kID0gW1xuICAgIC0zLFxuICAgIG4wLFxuICAgIF9VR1RFLFxuICAgIHsgW19lXTogX2MsIFtfaEVdOiA0MDAgfSxcbiAgICBbX2UsIF9lZF0sXG4gICAgWzAsIDBdLFxuXTtcbm4wX3JlZ2lzdHJ5LnJlZ2lzdGVyRXJyb3IoVW5zdXBwb3J0ZWRHcmFudFR5cGVFeGNlcHRpb24kLCBVbnN1cHBvcnRlZEdyYW50VHlwZUV4Y2VwdGlvbik7XG5leHBvcnQgY29uc3QgZXJyb3JUeXBlUmVnaXN0cmllcyA9IFtfc19yZWdpc3RyeSwgbjBfcmVnaXN0cnldO1xudmFyIEFjY2Vzc1Rva2VuID0gWzAsIG4wLCBfQVQsIDgsIDBdO1xudmFyIENsaWVudFNlY3JldCA9IFswLCBuMCwgX0NTLCA4LCAwXTtcbnZhciBDb2RlVmVyaWZpZXIgPSBbMCwgbjAsIF9DViwgOCwgMF07XG52YXIgSWRUb2tlbiA9IFswLCBuMCwgX0lULCA4LCAwXTtcbnZhciBSZWZyZXNoVG9rZW4gPSBbMCwgbjAsIF9SVCwgOCwgMF07XG5leHBvcnQgdmFyIENyZWF0ZVRva2VuUmVxdWVzdCQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfQ1RSLFxuICAgIDAsXG4gICAgW19jSSwgX2NTLCBfZ1QsIF9kQywgX2NvLCBfclQsIF9zYywgX3JVLCBfY1ZdLFxuICAgIFswLCBbKCkgPT4gQ2xpZW50U2VjcmV0LCAwXSwgMCwgMCwgMCwgWygpID0+IFJlZnJlc2hUb2tlbiwgMF0sIDY0IHwgMCwgMCwgWygpID0+IENvZGVWZXJpZmllciwgMF1dLFxuICAgIDMsXG5dO1xuZXhwb3J0IHZhciBDcmVhdGVUb2tlblJlc3BvbnNlJCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9DVFJyLFxuICAgIDAsXG4gICAgW19hVCwgX3RULCBfZUksIF9yVCwgX2lUXSxcbiAgICBbWygpID0+IEFjY2Vzc1Rva2VuLCAwXSwgMCwgMSwgWygpID0+IFJlZnJlc2hUb2tlbiwgMF0sIFsoKSA9PiBJZFRva2VuLCAwXV0sXG5dO1xudmFyIFNjb3BlcyA9IDY0IHwgMDtcbmV4cG9ydCB2YXIgQ3JlYXRlVG9rZW4kID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0NULFxuICAgIHsgW19oXTogW1wiUE9TVFwiLCBcIi90b2tlblwiLCAyMDBdIH0sXG4gICAgKCkgPT4gQ3JlYXRlVG9rZW5SZXF1ZXN0JCxcbiAgICAoKSA9PiBDcmVhdGVUb2tlblJlc3BvbnNlJCxcbl07XG4iLCAiaW1wb3J0IHsgQXdzU2RrU2lnVjRTaWduZXIgfSBmcm9tIFwiQGF3cy1zZGsvY29yZS9odHRwQXV0aFNjaGVtZXNcIjtcbmltcG9ydCB7IEF3c1Jlc3RKc29uUHJvdG9jb2wgfSBmcm9tIFwiQGF3cy1zZGsvY29yZS9wcm90b2NvbHNcIjtcbmltcG9ydCB7IE5vQXV0aFNpZ25lciB9IGZyb20gXCJAc21pdGh5L2NvcmVcIjtcbmltcG9ydCB7IE5vT3BMb2dnZXIgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyBwYXJzZVVybCB9IGZyb20gXCJAc21pdGh5L3VybC1wYXJzZXJcIjtcbmltcG9ydCB7IGZyb21CYXNlNjQsIHRvQmFzZTY0IH0gZnJvbSBcIkBzbWl0aHkvdXRpbC1iYXNlNjRcIjtcbmltcG9ydCB7IGZyb21VdGY4LCB0b1V0ZjggfSBmcm9tIFwiQHNtaXRoeS91dGlsLXV0ZjhcIjtcbmltcG9ydCB7IGRlZmF1bHRTU09PSURDSHR0cEF1dGhTY2hlbWVQcm92aWRlciB9IGZyb20gXCIuL2F1dGgvaHR0cEF1dGhTY2hlbWVQcm92aWRlclwiO1xuaW1wb3J0IHsgZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIgfSBmcm9tIFwiLi9lbmRwb2ludC9lbmRwb2ludFJlc29sdmVyXCI7XG5pbXBvcnQgeyBlcnJvclR5cGVSZWdpc3RyaWVzIH0gZnJvbSBcIi4vc2NoZW1hcy9zY2hlbWFzXzBcIjtcbmV4cG9ydCBjb25zdCBnZXRSdW50aW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIGFwaVZlcnNpb246IFwiMjAxOS0wNi0xMFwiLFxuICAgICAgICBiYXNlNjREZWNvZGVyOiBjb25maWc/LmJhc2U2NERlY29kZXIgPz8gZnJvbUJhc2U2NCxcbiAgICAgICAgYmFzZTY0RW5jb2RlcjogY29uZmlnPy5iYXNlNjRFbmNvZGVyID8/IHRvQmFzZTY0LFxuICAgICAgICBkaXNhYmxlSG9zdFByZWZpeDogY29uZmlnPy5kaXNhYmxlSG9zdFByZWZpeCA/PyBmYWxzZSxcbiAgICAgICAgZW5kcG9pbnRQcm92aWRlcjogY29uZmlnPy5lbmRwb2ludFByb3ZpZGVyID8/IGRlZmF1bHRFbmRwb2ludFJlc29sdmVyLFxuICAgICAgICBleHRlbnNpb25zOiBjb25maWc/LmV4dGVuc2lvbnMgPz8gW10sXG4gICAgICAgIGh0dHBBdXRoU2NoZW1lUHJvdmlkZXI6IGNvbmZpZz8uaHR0cEF1dGhTY2hlbWVQcm92aWRlciA/PyBkZWZhdWx0U1NPT0lEQ0h0dHBBdXRoU2NoZW1lUHJvdmlkZXIsXG4gICAgICAgIGh0dHBBdXRoU2NoZW1lczogY29uZmlnPy5odHRwQXV0aFNjaGVtZXMgPz8gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHNjaGVtZUlkOiBcImF3cy5hdXRoI3NpZ3Y0XCIsXG4gICAgICAgICAgICAgICAgaWRlbnRpdHlQcm92aWRlcjogKGlwYykgPT4gaXBjLmdldElkZW50aXR5UHJvdmlkZXIoXCJhd3MuYXV0aCNzaWd2NFwiKSxcbiAgICAgICAgICAgICAgICBzaWduZXI6IG5ldyBBd3NTZGtTaWdWNFNpZ25lcigpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzY2hlbWVJZDogXCJzbWl0aHkuYXBpI25vQXV0aFwiLFxuICAgICAgICAgICAgICAgIGlkZW50aXR5UHJvdmlkZXI6IChpcGMpID0+IGlwYy5nZXRJZGVudGl0eVByb3ZpZGVyKFwic21pdGh5LmFwaSNub0F1dGhcIikgfHwgKGFzeW5jICgpID0+ICh7fSkpLFxuICAgICAgICAgICAgICAgIHNpZ25lcjogbmV3IE5vQXV0aFNpZ25lcigpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgbG9nZ2VyOiBjb25maWc/LmxvZ2dlciA/PyBuZXcgTm9PcExvZ2dlcigpLFxuICAgICAgICBwcm90b2NvbDogY29uZmlnPy5wcm90b2NvbCA/PyBBd3NSZXN0SnNvblByb3RvY29sLFxuICAgICAgICBwcm90b2NvbFNldHRpbmdzOiBjb25maWc/LnByb3RvY29sU2V0dGluZ3MgPz8ge1xuICAgICAgICAgICAgZGVmYXVsdE5hbWVzcGFjZTogXCJjb20uYW1hem9uYXdzLnNzb29pZGNcIixcbiAgICAgICAgICAgIGVycm9yVHlwZVJlZ2lzdHJpZXMsXG4gICAgICAgICAgICB2ZXJzaW9uOiBcIjIwMTktMDYtMTBcIixcbiAgICAgICAgICAgIHNlcnZpY2VUYXJnZXQ6IFwiQVdTU1NPT0lEQ1NlcnZpY2VcIixcbiAgICAgICAgfSxcbiAgICAgICAgc2VydmljZUlkOiBjb25maWc/LnNlcnZpY2VJZCA/PyBcIlNTTyBPSURDXCIsXG4gICAgICAgIHVybFBhcnNlcjogY29uZmlnPy51cmxQYXJzZXIgPz8gcGFyc2VVcmwsXG4gICAgICAgIHV0ZjhEZWNvZGVyOiBjb25maWc/LnV0ZjhEZWNvZGVyID8/IGZyb21VdGY4LFxuICAgICAgICB1dGY4RW5jb2RlcjogY29uZmlnPy51dGY4RW5jb2RlciA/PyB0b1V0ZjgsXG4gICAgfTtcbn07XG4iLCAiaW1wb3J0IHBhY2thZ2VJbmZvIGZyb20gXCIuLi8uLi8uLi9wYWNrYWdlLmpzb25cIjtcbmltcG9ydCB7IGVtaXRXYXJuaW5nSWZVbnN1cHBvcnRlZFZlcnNpb24gYXMgYXdzQ2hlY2tWZXJzaW9uIH0gZnJvbSBcIkBhd3Mtc2RrL2NvcmUvY2xpZW50XCI7XG5pbXBvcnQgeyBOT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfT1BUSU9OUyB9IGZyb20gXCJAYXdzLXNkay9jb3JlL2h0dHBBdXRoU2NoZW1lc1wiO1xuaW1wb3J0IHsgY3JlYXRlRGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyLCBOT0RFX0FQUF9JRF9DT05GSUdfT1BUSU9OUyB9IGZyb20gXCJAYXdzLXNkay91dGlsLXVzZXItYWdlbnQtbm9kZVwiO1xuaW1wb3J0IHsgTk9ERV9SRUdJT05fQ09ORklHX0ZJTEVfT1BUSU9OUywgTk9ERV9SRUdJT05fQ09ORklHX09QVElPTlMsIE5PREVfVVNFX0RVQUxTVEFDS19FTkRQT0lOVF9DT05GSUdfT1BUSU9OUywgTk9ERV9VU0VfRklQU19FTkRQT0lOVF9DT05GSUdfT1BUSU9OUywgfSBmcm9tIFwiQHNtaXRoeS9jb25maWctcmVzb2x2ZXJcIjtcbmltcG9ydCB7IEhhc2ggfSBmcm9tIFwiQHNtaXRoeS9oYXNoLW5vZGVcIjtcbmltcG9ydCB7IE5PREVfTUFYX0FUVEVNUFRfQ09ORklHX09QVElPTlMsIE5PREVfUkVUUllfTU9ERV9DT05GSUdfT1BUSU9OUyB9IGZyb20gXCJAc21pdGh5L21pZGRsZXdhcmUtcmV0cnlcIjtcbmltcG9ydCB7IGxvYWRDb25maWcgYXMgbG9hZE5vZGVDb25maWcgfSBmcm9tIFwiQHNtaXRoeS9ub2RlLWNvbmZpZy1wcm92aWRlclwiO1xuaW1wb3J0IHsgTm9kZUh0dHBIYW5kbGVyIGFzIFJlcXVlc3RIYW5kbGVyLCBzdHJlYW1Db2xsZWN0b3IgfSBmcm9tIFwiQHNtaXRoeS9ub2RlLWh0dHAtaGFuZGxlclwiO1xuaW1wb3J0IHsgZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbiwgbG9hZENvbmZpZ3NGb3JEZWZhdWx0TW9kZSB9IGZyb20gXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjtcbmltcG9ydCB7IGNhbGN1bGF0ZUJvZHlMZW5ndGggfSBmcm9tIFwiQHNtaXRoeS91dGlsLWJvZHktbGVuZ3RoLW5vZGVcIjtcbmltcG9ydCB7IHJlc29sdmVEZWZhdWx0c01vZGVDb25maWcgfSBmcm9tIFwiQHNtaXRoeS91dGlsLWRlZmF1bHRzLW1vZGUtbm9kZVwiO1xuaW1wb3J0IHsgREVGQVVMVF9SRVRSWV9NT0RFIH0gZnJvbSBcIkBzbWl0aHkvdXRpbC1yZXRyeVwiO1xuaW1wb3J0IHsgZ2V0UnVudGltZUNvbmZpZyBhcyBnZXRTaGFyZWRSdW50aW1lQ29uZmlnIH0gZnJvbSBcIi4vcnVudGltZUNvbmZpZy5zaGFyZWRcIjtcbmV4cG9ydCBjb25zdCBnZXRSdW50aW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIGVtaXRXYXJuaW5nSWZVbnN1cHBvcnRlZFZlcnNpb24ocHJvY2Vzcy52ZXJzaW9uKTtcbiAgICBjb25zdCBkZWZhdWx0c01vZGUgPSByZXNvbHZlRGVmYXVsdHNNb2RlQ29uZmlnKGNvbmZpZyk7XG4gICAgY29uc3QgZGVmYXVsdENvbmZpZ1Byb3ZpZGVyID0gKCkgPT4gZGVmYXVsdHNNb2RlKCkudGhlbihsb2FkQ29uZmlnc0ZvckRlZmF1bHRNb2RlKTtcbiAgICBjb25zdCBjbGllbnRTaGFyZWRWYWx1ZXMgPSBnZXRTaGFyZWRSdW50aW1lQ29uZmlnKGNvbmZpZyk7XG4gICAgYXdzQ2hlY2tWZXJzaW9uKHByb2Nlc3MudmVyc2lvbik7XG4gICAgY29uc3QgbG9hZGVyQ29uZmlnID0ge1xuICAgICAgICBwcm9maWxlOiBjb25maWc/LnByb2ZpbGUsXG4gICAgICAgIGxvZ2dlcjogY2xpZW50U2hhcmVkVmFsdWVzLmxvZ2dlcixcbiAgICB9O1xuICAgIHJldHVybiB7XG4gICAgICAgIC4uLmNsaWVudFNoYXJlZFZhbHVlcyxcbiAgICAgICAgLi4uY29uZmlnLFxuICAgICAgICBydW50aW1lOiBcIm5vZGVcIixcbiAgICAgICAgZGVmYXVsdHNNb2RlLFxuICAgICAgICBhdXRoU2NoZW1lUHJlZmVyZW5jZTogY29uZmlnPy5hdXRoU2NoZW1lUHJlZmVyZW5jZSA/PyBsb2FkTm9kZUNvbmZpZyhOT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfT1BUSU9OUywgbG9hZGVyQ29uZmlnKSxcbiAgICAgICAgYm9keUxlbmd0aENoZWNrZXI6IGNvbmZpZz8uYm9keUxlbmd0aENoZWNrZXIgPz8gY2FsY3VsYXRlQm9keUxlbmd0aCxcbiAgICAgICAgZGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyOiBjb25maWc/LmRlZmF1bHRVc2VyQWdlbnRQcm92aWRlciA/P1xuICAgICAgICAgICAgY3JlYXRlRGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyKHsgc2VydmljZUlkOiBjbGllbnRTaGFyZWRWYWx1ZXMuc2VydmljZUlkLCBjbGllbnRWZXJzaW9uOiBwYWNrYWdlSW5mby52ZXJzaW9uIH0pLFxuICAgICAgICBtYXhBdHRlbXB0czogY29uZmlnPy5tYXhBdHRlbXB0cyA/PyBsb2FkTm9kZUNvbmZpZyhOT0RFX01BWF9BVFRFTVBUX0NPTkZJR19PUFRJT05TLCBjb25maWcpLFxuICAgICAgICByZWdpb246IGNvbmZpZz8ucmVnaW9uID8/XG4gICAgICAgICAgICBsb2FkTm9kZUNvbmZpZyhOT0RFX1JFR0lPTl9DT05GSUdfT1BUSU9OUywgeyAuLi5OT0RFX1JFR0lPTl9DT05GSUdfRklMRV9PUFRJT05TLCAuLi5sb2FkZXJDb25maWcgfSksXG4gICAgICAgIHJlcXVlc3RIYW5kbGVyOiBSZXF1ZXN0SGFuZGxlci5jcmVhdGUoY29uZmlnPy5yZXF1ZXN0SGFuZGxlciA/PyBkZWZhdWx0Q29uZmlnUHJvdmlkZXIpLFxuICAgICAgICByZXRyeU1vZGU6IGNvbmZpZz8ucmV0cnlNb2RlID8/XG4gICAgICAgICAgICBsb2FkTm9kZUNvbmZpZyh7XG4gICAgICAgICAgICAgICAgLi4uTk9ERV9SRVRSWV9NT0RFX0NPTkZJR19PUFRJT05TLFxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IGFzeW5jICgpID0+IChhd2FpdCBkZWZhdWx0Q29uZmlnUHJvdmlkZXIoKSkucmV0cnlNb2RlIHx8IERFRkFVTFRfUkVUUllfTU9ERSxcbiAgICAgICAgICAgIH0sIGNvbmZpZyksXG4gICAgICAgIHNoYTI1NjogY29uZmlnPy5zaGEyNTYgPz8gSGFzaC5iaW5kKG51bGwsIFwic2hhMjU2XCIpLFxuICAgICAgICBzdHJlYW1Db2xsZWN0b3I6IGNvbmZpZz8uc3RyZWFtQ29sbGVjdG9yID8/IHN0cmVhbUNvbGxlY3RvcixcbiAgICAgICAgdXNlRHVhbHN0YWNrRW5kcG9pbnQ6IGNvbmZpZz8udXNlRHVhbHN0YWNrRW5kcG9pbnQgPz8gbG9hZE5vZGVDb25maWcoTk9ERV9VU0VfRFVBTFNUQUNLX0VORFBPSU5UX0NPTkZJR19PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgICAgICB1c2VGaXBzRW5kcG9pbnQ6IGNvbmZpZz8udXNlRmlwc0VuZHBvaW50ID8/IGxvYWROb2RlQ29uZmlnKE5PREVfVVNFX0ZJUFNfRU5EUE9JTlRfQ09ORklHX09QVElPTlMsIGxvYWRlckNvbmZpZyksXG4gICAgICAgIHVzZXJBZ2VudEFwcElkOiBjb25maWc/LnVzZXJBZ2VudEFwcElkID8/IGxvYWROb2RlQ29uZmlnKE5PREVfQVBQX0lEX0NPTkZJR19PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgIH07XG59O1xuIiwgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy53YXJuaW5nID0gdm9pZCAwO1xuZXhwb3J0cy5zdHNSZWdpb25EZWZhdWx0UmVzb2x2ZXIgPSBzdHNSZWdpb25EZWZhdWx0UmVzb2x2ZXI7XG5jb25zdCBjb25maWdfcmVzb2x2ZXJfMSA9IHJlcXVpcmUoXCJAc21pdGh5L2NvbmZpZy1yZXNvbHZlclwiKTtcbmNvbnN0IG5vZGVfY29uZmlnX3Byb3ZpZGVyXzEgPSByZXF1aXJlKFwiQHNtaXRoeS9ub2RlLWNvbmZpZy1wcm92aWRlclwiKTtcbmZ1bmN0aW9uIHN0c1JlZ2lvbkRlZmF1bHRSZXNvbHZlcihsb2FkZXJDb25maWcgPSB7fSkge1xuICAgIHJldHVybiAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKSh7XG4gICAgICAgIC4uLmNvbmZpZ19yZXNvbHZlcl8xLk5PREVfUkVHSU9OX0NPTkZJR19PUFRJT05TLFxuICAgICAgICBhc3luYyBkZWZhdWx0KCkge1xuICAgICAgICAgICAgaWYgKCFleHBvcnRzLndhcm5pbmcuc2lsZW5jZSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihcIkBhd3Mtc2RrIC0gV0FSTiAtIGRlZmF1bHQgU1RTIHJlZ2lvbiBvZiB1cy1lYXN0LTEgdXNlZC4gU2VlIEBhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXJzIFJFQURNRSBhbmQgc2V0IGEgcmVnaW9uIGV4cGxpY2l0bHkuXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIFwidXMtZWFzdC0xXCI7XG4gICAgICAgIH0sXG4gICAgfSwgeyAuLi5jb25maWdfcmVzb2x2ZXJfMS5OT0RFX1JFR0lPTl9DT05GSUdfRklMRV9PUFRJT05TLCAuLi5sb2FkZXJDb25maWcgfSk7XG59XG5leHBvcnRzLndhcm5pbmcgPSB7XG4gICAgc2lsZW5jZTogZmFsc2UsXG59O1xuIiwgIid1c2Ugc3RyaWN0JztcblxudmFyIHN0c1JlZ2lvbkRlZmF1bHRSZXNvbHZlciA9IHJlcXVpcmUoJy4vcmVnaW9uQ29uZmlnL3N0c1JlZ2lvbkRlZmF1bHRSZXNvbHZlcicpO1xudmFyIGNvbmZpZ1Jlc29sdmVyID0gcmVxdWlyZSgnQHNtaXRoeS9jb25maWctcmVzb2x2ZXInKTtcblxuY29uc3QgZ2V0QXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiA9IChydW50aW1lQ29uZmlnKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc2V0UmVnaW9uKHJlZ2lvbikge1xuICAgICAgICAgICAgcnVudGltZUNvbmZpZy5yZWdpb24gPSByZWdpb247XG4gICAgICAgIH0sXG4gICAgICAgIHJlZ2lvbigpIHtcbiAgICAgICAgICAgIHJldHVybiBydW50aW1lQ29uZmlnLnJlZ2lvbjtcbiAgICAgICAgfSxcbiAgICB9O1xufTtcbmNvbnN0IHJlc29sdmVBd3NSZWdpb25FeHRlbnNpb25Db25maWd1cmF0aW9uID0gKGF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24pID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgICByZWdpb246IGF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24ucmVnaW9uKCksXG4gICAgfTtcbn07XG5cbmV4cG9ydHMuTk9ERV9SRUdJT05fQ09ORklHX0ZJTEVfT1BUSU9OUyA9IGNvbmZpZ1Jlc29sdmVyLk5PREVfUkVHSU9OX0NPTkZJR19GSUxFX09QVElPTlM7XG5leHBvcnRzLk5PREVfUkVHSU9OX0NPTkZJR19PUFRJT05TID0gY29uZmlnUmVzb2x2ZXIuTk9ERV9SRUdJT05fQ09ORklHX09QVElPTlM7XG5leHBvcnRzLlJFR0lPTl9FTlZfTkFNRSA9IGNvbmZpZ1Jlc29sdmVyLlJFR0lPTl9FTlZfTkFNRTtcbmV4cG9ydHMuUkVHSU9OX0lOSV9OQU1FID0gY29uZmlnUmVzb2x2ZXIuUkVHSU9OX0lOSV9OQU1FO1xuZXhwb3J0cy5yZXNvbHZlUmVnaW9uQ29uZmlnID0gY29uZmlnUmVzb2x2ZXIucmVzb2x2ZVJlZ2lvbkNvbmZpZztcbmV4cG9ydHMuZ2V0QXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiA9IGdldEF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb247XG5leHBvcnRzLnJlc29sdmVBd3NSZWdpb25FeHRlbnNpb25Db25maWd1cmF0aW9uID0gcmVzb2x2ZUF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb247XG5PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc3RzUmVnaW9uRGVmYXVsdFJlc29sdmVyLCAnX19wcm90b19fJykgJiZcbiAgICAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGV4cG9ydHMsICdfX3Byb3RvX18nKSAmJlxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19wcm90b19fJywge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICB2YWx1ZTogc3RzUmVnaW9uRGVmYXVsdFJlc29sdmVyWydfX3Byb3RvX18nXVxuICAgIH0pO1xuXG5PYmplY3Qua2V5cyhzdHNSZWdpb25EZWZhdWx0UmVzb2x2ZXIpLmZvckVhY2goZnVuY3Rpb24gKGspIHtcbiAgICBpZiAoayAhPT0gJ2RlZmF1bHQnICYmICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXhwb3J0cywgaykpIGV4cG9ydHNba10gPSBzdHNSZWdpb25EZWZhdWx0UmVzb2x2ZXJba107XG59KTtcbiIsICJleHBvcnQgY29uc3QgZ2V0SHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uID0gKHJ1bnRpbWVDb25maWcpID0+IHtcbiAgICBjb25zdCBfaHR0cEF1dGhTY2hlbWVzID0gcnVudGltZUNvbmZpZy5odHRwQXV0aFNjaGVtZXM7XG4gICAgbGV0IF9odHRwQXV0aFNjaGVtZVByb3ZpZGVyID0gcnVudGltZUNvbmZpZy5odHRwQXV0aFNjaGVtZVByb3ZpZGVyO1xuICAgIGxldCBfY3JlZGVudGlhbHMgPSBydW50aW1lQ29uZmlnLmNyZWRlbnRpYWxzO1xuICAgIHJldHVybiB7XG4gICAgICAgIHNldEh0dHBBdXRoU2NoZW1lKGh0dHBBdXRoU2NoZW1lKSB7XG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IF9odHRwQXV0aFNjaGVtZXMuZmluZEluZGV4KChzY2hlbWUpID0+IHNjaGVtZS5zY2hlbWVJZCA9PT0gaHR0cEF1dGhTY2hlbWUuc2NoZW1lSWQpO1xuICAgICAgICAgICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgICAgICAgICAgIF9odHRwQXV0aFNjaGVtZXMucHVzaChodHRwQXV0aFNjaGVtZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBfaHR0cEF1dGhTY2hlbWVzLnNwbGljZShpbmRleCwgMSwgaHR0cEF1dGhTY2hlbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBodHRwQXV0aFNjaGVtZXMoKSB7XG4gICAgICAgICAgICByZXR1cm4gX2h0dHBBdXRoU2NoZW1lcztcbiAgICAgICAgfSxcbiAgICAgICAgc2V0SHR0cEF1dGhTY2hlbWVQcm92aWRlcihodHRwQXV0aFNjaGVtZVByb3ZpZGVyKSB7XG4gICAgICAgICAgICBfaHR0cEF1dGhTY2hlbWVQcm92aWRlciA9IGh0dHBBdXRoU2NoZW1lUHJvdmlkZXI7XG4gICAgICAgIH0sXG4gICAgICAgIGh0dHBBdXRoU2NoZW1lUHJvdmlkZXIoKSB7XG4gICAgICAgICAgICByZXR1cm4gX2h0dHBBdXRoU2NoZW1lUHJvdmlkZXI7XG4gICAgICAgIH0sXG4gICAgICAgIHNldENyZWRlbnRpYWxzKGNyZWRlbnRpYWxzKSB7XG4gICAgICAgICAgICBfY3JlZGVudGlhbHMgPSBjcmVkZW50aWFscztcbiAgICAgICAgfSxcbiAgICAgICAgY3JlZGVudGlhbHMoKSB7XG4gICAgICAgICAgICByZXR1cm4gX2NyZWRlbnRpYWxzO1xuICAgICAgICB9LFxuICAgIH07XG59O1xuZXhwb3J0IGNvbnN0IHJlc29sdmVIdHRwQXV0aFJ1bnRpbWVDb25maWcgPSAoY29uZmlnKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVzOiBjb25maWcuaHR0cEF1dGhTY2hlbWVzKCksXG4gICAgICAgIGh0dHBBdXRoU2NoZW1lUHJvdmlkZXI6IGNvbmZpZy5odHRwQXV0aFNjaGVtZVByb3ZpZGVyKCksXG4gICAgICAgIGNyZWRlbnRpYWxzOiBjb25maWcuY3JlZGVudGlhbHMoKSxcbiAgICB9O1xufTtcbiIsICJpbXBvcnQgeyBnZXRBd3NSZWdpb25FeHRlbnNpb25Db25maWd1cmF0aW9uLCByZXNvbHZlQXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiwgfSBmcm9tIFwiQGF3cy1zZGsvcmVnaW9uLWNvbmZpZy1yZXNvbHZlclwiO1xuaW1wb3J0IHsgZ2V0SHR0cEhhbmRsZXJFeHRlbnNpb25Db25maWd1cmF0aW9uLCByZXNvbHZlSHR0cEhhbmRsZXJSdW50aW1lQ29uZmlnIH0gZnJvbSBcIkBzbWl0aHkvcHJvdG9jb2wtaHR0cFwiO1xuaW1wb3J0IHsgZ2V0RGVmYXVsdEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24sIHJlc29sdmVEZWZhdWx0UnVudGltZUNvbmZpZyB9IGZyb20gXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjtcbmltcG9ydCB7IGdldEh0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiwgcmVzb2x2ZUh0dHBBdXRoUnVudGltZUNvbmZpZyB9IGZyb20gXCIuL2F1dGgvaHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uXCI7XG5leHBvcnQgY29uc3QgcmVzb2x2ZVJ1bnRpbWVFeHRlbnNpb25zID0gKHJ1bnRpbWVDb25maWcsIGV4dGVuc2lvbnMpID0+IHtcbiAgICBjb25zdCBleHRlbnNpb25Db25maWd1cmF0aW9uID0gT2JqZWN0LmFzc2lnbihnZXRBd3NSZWdpb25FeHRlbnNpb25Db25maWd1cmF0aW9uKHJ1bnRpbWVDb25maWcpLCBnZXREZWZhdWx0RXh0ZW5zaW9uQ29uZmlndXJhdGlvbihydW50aW1lQ29uZmlnKSwgZ2V0SHR0cEhhbmRsZXJFeHRlbnNpb25Db25maWd1cmF0aW9uKHJ1bnRpbWVDb25maWcpLCBnZXRIdHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24ocnVudGltZUNvbmZpZykpO1xuICAgIGV4dGVuc2lvbnMuZm9yRWFjaCgoZXh0ZW5zaW9uKSA9PiBleHRlbnNpb24uY29uZmlndXJlKGV4dGVuc2lvbkNvbmZpZ3VyYXRpb24pKTtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihydW50aW1lQ29uZmlnLCByZXNvbHZlQXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbihleHRlbnNpb25Db25maWd1cmF0aW9uKSwgcmVzb2x2ZURlZmF1bHRSdW50aW1lQ29uZmlnKGV4dGVuc2lvbkNvbmZpZ3VyYXRpb24pLCByZXNvbHZlSHR0cEhhbmRsZXJSdW50aW1lQ29uZmlnKGV4dGVuc2lvbkNvbmZpZ3VyYXRpb24pLCByZXNvbHZlSHR0cEF1dGhSdW50aW1lQ29uZmlnKGV4dGVuc2lvbkNvbmZpZ3VyYXRpb24pKTtcbn07XG4iLCAiaW1wb3J0IHsgZ2V0SG9zdEhlYWRlclBsdWdpbiwgcmVzb2x2ZUhvc3RIZWFkZXJDb25maWcsIH0gZnJvbSBcIkBhd3Mtc2RrL21pZGRsZXdhcmUtaG9zdC1oZWFkZXJcIjtcbmltcG9ydCB7IGdldExvZ2dlclBsdWdpbiB9IGZyb20gXCJAYXdzLXNkay9taWRkbGV3YXJlLWxvZ2dlclwiO1xuaW1wb3J0IHsgZ2V0UmVjdXJzaW9uRGV0ZWN0aW9uUGx1Z2luIH0gZnJvbSBcIkBhd3Mtc2RrL21pZGRsZXdhcmUtcmVjdXJzaW9uLWRldGVjdGlvblwiO1xuaW1wb3J0IHsgZ2V0VXNlckFnZW50UGx1Z2luLCByZXNvbHZlVXNlckFnZW50Q29uZmlnLCB9IGZyb20gXCJAYXdzLXNkay9taWRkbGV3YXJlLXVzZXItYWdlbnRcIjtcbmltcG9ydCB7IHJlc29sdmVSZWdpb25Db25maWcgfSBmcm9tIFwiQHNtaXRoeS9jb25maWctcmVzb2x2ZXJcIjtcbmltcG9ydCB7IERlZmF1bHRJZGVudGl0eVByb3ZpZGVyQ29uZmlnLCBnZXRIdHRwQXV0aFNjaGVtZUVuZHBvaW50UnVsZVNldFBsdWdpbiwgZ2V0SHR0cFNpZ25pbmdQbHVnaW4sIH0gZnJvbSBcIkBzbWl0aHkvY29yZVwiO1xuaW1wb3J0IHsgZ2V0U2NoZW1hU2VyZGVQbHVnaW4gfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3NjaGVtYVwiO1xuaW1wb3J0IHsgZ2V0Q29udGVudExlbmd0aFBsdWdpbiB9IGZyb20gXCJAc21pdGh5L21pZGRsZXdhcmUtY29udGVudC1sZW5ndGhcIjtcbmltcG9ydCB7IHJlc29sdmVFbmRwb2ludENvbmZpZywgfSBmcm9tIFwiQHNtaXRoeS9taWRkbGV3YXJlLWVuZHBvaW50XCI7XG5pbXBvcnQgeyBnZXRSZXRyeVBsdWdpbiwgcmVzb2x2ZVJldHJ5Q29uZmlnLCB9IGZyb20gXCJAc21pdGh5L21pZGRsZXdhcmUtcmV0cnlcIjtcbmltcG9ydCB7IENsaWVudCBhcyBfX0NsaWVudCwgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyBkZWZhdWx0U1NPT0lEQ0h0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyLCByZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWcsIH0gZnJvbSBcIi4vYXV0aC9odHRwQXV0aFNjaGVtZVByb3ZpZGVyXCI7XG5pbXBvcnQgeyByZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzLCB9IGZyb20gXCIuL2VuZHBvaW50L0VuZHBvaW50UGFyYW1ldGVyc1wiO1xuaW1wb3J0IHsgZ2V0UnVudGltZUNvbmZpZyBhcyBfX2dldFJ1bnRpbWVDb25maWcgfSBmcm9tIFwiLi9ydW50aW1lQ29uZmlnXCI7XG5pbXBvcnQgeyByZXNvbHZlUnVudGltZUV4dGVuc2lvbnMgfSBmcm9tIFwiLi9ydW50aW1lRXh0ZW5zaW9uc1wiO1xuZXhwb3J0IHsgX19DbGllbnQgfTtcbmV4cG9ydCBjbGFzcyBTU09PSURDQ2xpZW50IGV4dGVuZHMgX19DbGllbnQge1xuICAgIGNvbmZpZztcbiAgICBjb25zdHJ1Y3RvciguLi5bY29uZmlndXJhdGlvbl0pIHtcbiAgICAgICAgY29uc3QgX2NvbmZpZ18wID0gX19nZXRSdW50aW1lQ29uZmlnKGNvbmZpZ3VyYXRpb24gfHwge30pO1xuICAgICAgICBzdXBlcihfY29uZmlnXzApO1xuICAgICAgICB0aGlzLmluaXRDb25maWcgPSBfY29uZmlnXzA7XG4gICAgICAgIGNvbnN0IF9jb25maWdfMSA9IHJlc29sdmVDbGllbnRFbmRwb2ludFBhcmFtZXRlcnMoX2NvbmZpZ18wKTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ18yID0gcmVzb2x2ZVVzZXJBZ2VudENvbmZpZyhfY29uZmlnXzEpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzMgPSByZXNvbHZlUmV0cnlDb25maWcoX2NvbmZpZ18yKTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ180ID0gcmVzb2x2ZVJlZ2lvbkNvbmZpZyhfY29uZmlnXzMpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzUgPSByZXNvbHZlSG9zdEhlYWRlckNvbmZpZyhfY29uZmlnXzQpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzYgPSByZXNvbHZlRW5kcG9pbnRDb25maWcoX2NvbmZpZ181KTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ183ID0gcmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnKF9jb25maWdfNik7XG4gICAgICAgIGNvbnN0IF9jb25maWdfOCA9IHJlc29sdmVSdW50aW1lRXh0ZW5zaW9ucyhfY29uZmlnXzcsIGNvbmZpZ3VyYXRpb24/LmV4dGVuc2lvbnMgfHwgW10pO1xuICAgICAgICB0aGlzLmNvbmZpZyA9IF9jb25maWdfODtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGdldFNjaGVtYVNlcmRlUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShnZXRVc2VyQWdlbnRQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGdldFJldHJ5UGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShnZXRDb250ZW50TGVuZ3RoUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShnZXRIb3N0SGVhZGVyUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShnZXRMb2dnZXJQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGdldFJlY3Vyc2lvbkRldGVjdGlvblBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoZ2V0SHR0cEF1dGhTY2hlbWVFbmRwb2ludFJ1bGVTZXRQbHVnaW4odGhpcy5jb25maWcsIHtcbiAgICAgICAgICAgIGh0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyOiBkZWZhdWx0U1NPT0lEQ0h0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyLFxuICAgICAgICAgICAgaWRlbnRpdHlQcm92aWRlckNvbmZpZ1Byb3ZpZGVyOiBhc3luYyAoY29uZmlnKSA9PiBuZXcgRGVmYXVsdElkZW50aXR5UHJvdmlkZXJDb25maWcoe1xuICAgICAgICAgICAgICAgIFwiYXdzLmF1dGgjc2lndjRcIjogY29uZmlnLmNyZWRlbnRpYWxzLFxuICAgICAgICAgICAgfSksXG4gICAgICAgIH0pKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGdldEh0dHBTaWduaW5nUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgfVxuICAgIGRlc3Ryb3koKSB7XG4gICAgICAgIHN1cGVyLmRlc3Ryb3koKTtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgZ2V0RW5kcG9pbnRQbHVnaW4gfSBmcm9tIFwiQHNtaXRoeS9taWRkbGV3YXJlLWVuZHBvaW50XCI7XG5pbXBvcnQgeyBDb21tYW5kIGFzICRDb21tYW5kIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgY29tbW9uUGFyYW1zIH0gZnJvbSBcIi4uL2VuZHBvaW50L0VuZHBvaW50UGFyYW1ldGVyc1wiO1xuaW1wb3J0IHsgQ3JlYXRlVG9rZW4kIH0gZnJvbSBcIi4uL3NjaGVtYXMvc2NoZW1hc18wXCI7XG5leHBvcnQgeyAkQ29tbWFuZCB9O1xuZXhwb3J0IGNsYXNzIENyZWF0ZVRva2VuQ29tbWFuZCBleHRlbmRzICRDb21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NTU09PSURDU2VydmljZVwiLCBcIkNyZWF0ZVRva2VuXCIsIHt9KVxuICAgIC5uKFwiU1NPT0lEQ0NsaWVudFwiLCBcIkNyZWF0ZVRva2VuQ29tbWFuZFwiKVxuICAgIC5zYyhDcmVhdGVUb2tlbiQpXG4gICAgLmJ1aWxkKCkge1xufVxuIiwgImltcG9ydCB7IGNyZWF0ZUFnZ3JlZ2F0ZWRDbGllbnQgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyBDcmVhdGVUb2tlbkNvbW1hbmQsIH0gZnJvbSBcIi4vY29tbWFuZHMvQ3JlYXRlVG9rZW5Db21tYW5kXCI7XG5pbXBvcnQgeyBTU09PSURDQ2xpZW50IH0gZnJvbSBcIi4vU1NPT0lEQ0NsaWVudFwiO1xuY29uc3QgY29tbWFuZHMgPSB7XG4gICAgQ3JlYXRlVG9rZW5Db21tYW5kLFxufTtcbmV4cG9ydCBjbGFzcyBTU09PSURDIGV4dGVuZHMgU1NPT0lEQ0NsaWVudCB7XG59XG5jcmVhdGVBZ2dyZWdhdGVkQ2xpZW50KGNvbW1hbmRzLCBTU09PSURDKTtcbiIsICJleHBvcnQgKiBmcm9tIFwiLi9DcmVhdGVUb2tlbkNvbW1hbmRcIjtcbiIsICJleHBvcnQgY29uc3QgQWNjZXNzRGVuaWVkRXhjZXB0aW9uUmVhc29uID0ge1xuICAgIEtNU19BQ0NFU1NfREVOSUVEOiBcIktNU19BY2Nlc3NEZW5pZWRFeGNlcHRpb25cIixcbn07XG5leHBvcnQgY29uc3QgSW52YWxpZFJlcXVlc3RFeGNlcHRpb25SZWFzb24gPSB7XG4gICAgS01TX0RJU0FCTEVEX0tFWTogXCJLTVNfRGlzYWJsZWRFeGNlcHRpb25cIixcbiAgICBLTVNfSU5WQUxJRF9LRVlfVVNBR0U6IFwiS01TX0ludmFsaWRLZXlVc2FnZUV4Y2VwdGlvblwiLFxuICAgIEtNU19JTlZBTElEX1NUQVRFOiBcIktNU19JbnZhbGlkU3RhdGVFeGNlcHRpb25cIixcbiAgICBLTVNfS0VZX05PVF9GT1VORDogXCJLTVNfTm90Rm91bmRFeGNlcHRpb25cIixcbn07XG4iLCAiZXhwb3J0IHt9O1xuIiwgImV4cG9ydCAqIGZyb20gXCIuL1NTT09JRENDbGllbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL1NTT09JRENcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbW1hbmRzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zY2hlbWFzL3NjaGVtYXNfMFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWxzL2VudW1zXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9tb2RlbHMvZXJyb3JzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9tb2RlbHMvbW9kZWxzXzBcIjtcbmV4cG9ydCB7IFNTT09JRENTZXJ2aWNlRXhjZXB0aW9uIH0gZnJvbSBcIi4vbW9kZWxzL1NTT09JRENTZXJ2aWNlRXhjZXB0aW9uXCI7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgY2xpZW50ID0gcmVxdWlyZSgnQGF3cy1zZGsvY29yZS9jbGllbnQnKTtcbnZhciBodHRwQXV0aFNjaGVtZXMgPSByZXF1aXJlKCdAYXdzLXNkay9jb3JlL2h0dHBBdXRoU2NoZW1lcycpO1xudmFyIHByb3BlcnR5UHJvdmlkZXIgPSByZXF1aXJlKCdAc21pdGh5L3Byb3BlcnR5LXByb3ZpZGVyJyk7XG52YXIgc2hhcmVkSW5pRmlsZUxvYWRlciA9IHJlcXVpcmUoJ0BzbWl0aHkvc2hhcmVkLWluaS1maWxlLWxvYWRlcicpO1xudmFyIG5vZGVfZnMgPSByZXF1aXJlKCdub2RlOmZzJyk7XG5cbmNvbnN0IGZyb21FbnZTaWduaW5nTmFtZSA9ICh7IGxvZ2dlciwgc2lnbmluZ05hbWUgfSA9IHt9KSA9PiBhc3luYyAoKSA9PiB7XG4gICAgbG9nZ2VyPy5kZWJ1Zz8uKFwiQGF3cy1zZGsvdG9rZW4tcHJvdmlkZXJzIC0gZnJvbUVudlNpZ25pbmdOYW1lXCIpO1xuICAgIGlmICghc2lnbmluZ05hbWUpIHtcbiAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuVG9rZW5Qcm92aWRlckVycm9yKFwiUGxlYXNlIHBhc3MgJ3NpZ25pbmdOYW1lJyB0byBjb21wdXRlIGVudmlyb25tZW50IHZhcmlhYmxlIGtleVwiLCB7IGxvZ2dlciB9KTtcbiAgICB9XG4gICAgY29uc3QgYmVhcmVyVG9rZW5LZXkgPSBodHRwQXV0aFNjaGVtZXMuZ2V0QmVhcmVyVG9rZW5FbnZLZXkoc2lnbmluZ05hbWUpO1xuICAgIGlmICghKGJlYXJlclRva2VuS2V5IGluIHByb2Nlc3MuZW52KSkge1xuICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5Ub2tlblByb3ZpZGVyRXJyb3IoYFRva2VuIG5vdCBwcmVzZW50IGluICcke2JlYXJlclRva2VuS2V5fScgZW52aXJvbm1lbnQgdmFyaWFibGVgLCB7IGxvZ2dlciB9KTtcbiAgICB9XG4gICAgY29uc3QgdG9rZW4gPSB7IHRva2VuOiBwcm9jZXNzLmVudltiZWFyZXJUb2tlbktleV0gfTtcbiAgICBjbGllbnQuc2V0VG9rZW5GZWF0dXJlKHRva2VuLCBcIkJFQVJFUl9TRVJWSUNFX0VOVl9WQVJTXCIsIFwiM1wiKTtcbiAgICByZXR1cm4gdG9rZW47XG59O1xuXG5jb25zdCBFWFBJUkVfV0lORE9XX01TID0gNSAqIDYwICogMTAwMDtcbmNvbnN0IFJFRlJFU0hfTUVTU0FHRSA9IGBUbyByZWZyZXNoIHRoaXMgU1NPIHNlc3Npb24gcnVuICdhd3Mgc3NvIGxvZ2luJyB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIHByb2ZpbGUuYDtcblxuY29uc3QgZ2V0U3NvT2lkY0NsaWVudCA9IGFzeW5jIChzc29SZWdpb24sIGluaXQgPSB7fSwgY2FsbGVyQ2xpZW50Q29uZmlnKSA9PiB7XG4gICAgY29uc3QgeyBTU09PSURDQ2xpZW50IH0gPSBhd2FpdCBpbXBvcnQoJ0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL3Nzby1vaWRjJyk7XG4gICAgY29uc3QgY29hbGVzY2UgPSAocHJvcCkgPT4gaW5pdC5jbGllbnRDb25maWc/Lltwcm9wXSA/PyBpbml0LnBhcmVudENsaWVudENvbmZpZz8uW3Byb3BdID8/IGNhbGxlckNsaWVudENvbmZpZz8uW3Byb3BdO1xuICAgIGNvbnN0IHNzb09pZGNDbGllbnQgPSBuZXcgU1NPT0lEQ0NsaWVudChPYmplY3QuYXNzaWduKHt9LCBpbml0LmNsaWVudENvbmZpZyA/PyB7fSwge1xuICAgICAgICByZWdpb246IHNzb1JlZ2lvbiA/PyBpbml0LmNsaWVudENvbmZpZz8ucmVnaW9uLFxuICAgICAgICBsb2dnZXI6IGNvYWxlc2NlKFwibG9nZ2VyXCIpLFxuICAgICAgICB1c2VyQWdlbnRBcHBJZDogY29hbGVzY2UoXCJ1c2VyQWdlbnRBcHBJZFwiKSxcbiAgICB9KSk7XG4gICAgcmV0dXJuIHNzb09pZGNDbGllbnQ7XG59O1xuXG5jb25zdCBnZXROZXdTc29PaWRjVG9rZW4gPSBhc3luYyAoc3NvVG9rZW4sIHNzb1JlZ2lvbiwgaW5pdCA9IHt9LCBjYWxsZXJDbGllbnRDb25maWcpID0+IHtcbiAgICBjb25zdCB7IENyZWF0ZVRva2VuQ29tbWFuZCB9ID0gYXdhaXQgaW1wb3J0KCdAYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9zc28tb2lkYycpO1xuICAgIGNvbnN0IHNzb09pZGNDbGllbnQgPSBhd2FpdCBnZXRTc29PaWRjQ2xpZW50KHNzb1JlZ2lvbiwgaW5pdCwgY2FsbGVyQ2xpZW50Q29uZmlnKTtcbiAgICByZXR1cm4gc3NvT2lkY0NsaWVudC5zZW5kKG5ldyBDcmVhdGVUb2tlbkNvbW1hbmQoe1xuICAgICAgICBjbGllbnRJZDogc3NvVG9rZW4uY2xpZW50SWQsXG4gICAgICAgIGNsaWVudFNlY3JldDogc3NvVG9rZW4uY2xpZW50U2VjcmV0LFxuICAgICAgICByZWZyZXNoVG9rZW46IHNzb1Rva2VuLnJlZnJlc2hUb2tlbixcbiAgICAgICAgZ3JhbnRUeXBlOiBcInJlZnJlc2hfdG9rZW5cIixcbiAgICB9KSk7XG59O1xuXG5jb25zdCB2YWxpZGF0ZVRva2VuRXhwaXJ5ID0gKHRva2VuKSA9PiB7XG4gICAgaWYgKHRva2VuLmV4cGlyYXRpb24gJiYgdG9rZW4uZXhwaXJhdGlvbi5nZXRUaW1lKCkgPCBEYXRlLm5vdygpKSB7XG4gICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLlRva2VuUHJvdmlkZXJFcnJvcihgVG9rZW4gaXMgZXhwaXJlZC4gJHtSRUZSRVNIX01FU1NBR0V9YCwgZmFsc2UpO1xuICAgIH1cbn07XG5cbmNvbnN0IHZhbGlkYXRlVG9rZW5LZXkgPSAoa2V5LCB2YWx1ZSwgZm9yUmVmcmVzaCA9IGZhbHNlKSA9PiB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5Ub2tlblByb3ZpZGVyRXJyb3IoYFZhbHVlIG5vdCBwcmVzZW50IGZvciAnJHtrZXl9JyBpbiBTU08gVG9rZW4ke2ZvclJlZnJlc2ggPyBcIi4gQ2Fubm90IHJlZnJlc2hcIiA6IFwiXCJ9LiAke1JFRlJFU0hfTUVTU0FHRX1gLCBmYWxzZSk7XG4gICAgfVxufTtcblxuY29uc3QgeyB3cml0ZUZpbGUgfSA9IG5vZGVfZnMucHJvbWlzZXM7XG5jb25zdCB3cml0ZVNTT1Rva2VuVG9GaWxlID0gKGlkLCBzc29Ub2tlbikgPT4ge1xuICAgIGNvbnN0IHRva2VuRmlsZXBhdGggPSBzaGFyZWRJbmlGaWxlTG9hZGVyLmdldFNTT1Rva2VuRmlsZXBhdGgoaWQpO1xuICAgIGNvbnN0IHRva2VuU3RyaW5nID0gSlNPTi5zdHJpbmdpZnkoc3NvVG9rZW4sIG51bGwsIDIpO1xuICAgIHJldHVybiB3cml0ZUZpbGUodG9rZW5GaWxlcGF0aCwgdG9rZW5TdHJpbmcpO1xufTtcblxuY29uc3QgbGFzdFJlZnJlc2hBdHRlbXB0VGltZSA9IG5ldyBEYXRlKDApO1xuY29uc3QgZnJvbVNzbyA9IChpbml0ID0ge30pID0+IGFzeW5jICh7IGNhbGxlckNsaWVudENvbmZpZyB9ID0ge30pID0+IHtcbiAgICBpbml0LmxvZ2dlcj8uZGVidWcoXCJAYXdzLXNkay90b2tlbi1wcm92aWRlcnMgLSBmcm9tU3NvXCIpO1xuICAgIGNvbnN0IHByb2ZpbGVzID0gYXdhaXQgc2hhcmVkSW5pRmlsZUxvYWRlci5wYXJzZUtub3duRmlsZXMoaW5pdCk7XG4gICAgY29uc3QgcHJvZmlsZU5hbWUgPSBzaGFyZWRJbmlGaWxlTG9hZGVyLmdldFByb2ZpbGVOYW1lKHtcbiAgICAgICAgcHJvZmlsZTogaW5pdC5wcm9maWxlID8/IGNhbGxlckNsaWVudENvbmZpZz8ucHJvZmlsZSxcbiAgICB9KTtcbiAgICBjb25zdCBwcm9maWxlID0gcHJvZmlsZXNbcHJvZmlsZU5hbWVdO1xuICAgIGlmICghcHJvZmlsZSkge1xuICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5Ub2tlblByb3ZpZGVyRXJyb3IoYFByb2ZpbGUgJyR7cHJvZmlsZU5hbWV9JyBjb3VsZCBub3QgYmUgZm91bmQgaW4gc2hhcmVkIGNyZWRlbnRpYWxzIGZpbGUuYCwgZmFsc2UpO1xuICAgIH1cbiAgICBlbHNlIGlmICghcHJvZmlsZVtcInNzb19zZXNzaW9uXCJdKSB7XG4gICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLlRva2VuUHJvdmlkZXJFcnJvcihgUHJvZmlsZSAnJHtwcm9maWxlTmFtZX0nIGlzIG1pc3NpbmcgcmVxdWlyZWQgcHJvcGVydHkgJ3Nzb19zZXNzaW9uJy5gKTtcbiAgICB9XG4gICAgY29uc3Qgc3NvU2Vzc2lvbk5hbWUgPSBwcm9maWxlW1wic3NvX3Nlc3Npb25cIl07XG4gICAgY29uc3Qgc3NvU2Vzc2lvbnMgPSBhd2FpdCBzaGFyZWRJbmlGaWxlTG9hZGVyLmxvYWRTc29TZXNzaW9uRGF0YShpbml0KTtcbiAgICBjb25zdCBzc29TZXNzaW9uID0gc3NvU2Vzc2lvbnNbc3NvU2Vzc2lvbk5hbWVdO1xuICAgIGlmICghc3NvU2Vzc2lvbikge1xuICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5Ub2tlblByb3ZpZGVyRXJyb3IoYFNzbyBzZXNzaW9uICcke3Nzb1Nlc3Npb25OYW1lfScgY291bGQgbm90IGJlIGZvdW5kIGluIHNoYXJlZCBjcmVkZW50aWFscyBmaWxlLmAsIGZhbHNlKTtcbiAgICB9XG4gICAgZm9yIChjb25zdCBzc29TZXNzaW9uUmVxdWlyZWRLZXkgb2YgW1wic3NvX3N0YXJ0X3VybFwiLCBcInNzb19yZWdpb25cIl0pIHtcbiAgICAgICAgaWYgKCFzc29TZXNzaW9uW3Nzb1Nlc3Npb25SZXF1aXJlZEtleV0pIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLlRva2VuUHJvdmlkZXJFcnJvcihgU3NvIHNlc3Npb24gJyR7c3NvU2Vzc2lvbk5hbWV9JyBpcyBtaXNzaW5nIHJlcXVpcmVkIHByb3BlcnR5ICcke3Nzb1Nlc3Npb25SZXF1aXJlZEtleX0nLmAsIGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBzc29TZXNzaW9uW1wic3NvX3N0YXJ0X3VybFwiXTtcbiAgICBjb25zdCBzc29SZWdpb24gPSBzc29TZXNzaW9uW1wic3NvX3JlZ2lvblwiXTtcbiAgICBsZXQgc3NvVG9rZW47XG4gICAgdHJ5IHtcbiAgICAgICAgc3NvVG9rZW4gPSBhd2FpdCBzaGFyZWRJbmlGaWxlTG9hZGVyLmdldFNTT1Rva2VuRnJvbUZpbGUoc3NvU2Vzc2lvbk5hbWUpO1xuICAgIH1cbiAgICBjYXRjaCAoZSkge1xuICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5Ub2tlblByb3ZpZGVyRXJyb3IoYFRoZSBTU08gc2Vzc2lvbiB0b2tlbiBhc3NvY2lhdGVkIHdpdGggcHJvZmlsZT0ke3Byb2ZpbGVOYW1lfSB3YXMgbm90IGZvdW5kIG9yIGlzIGludmFsaWQuICR7UkVGUkVTSF9NRVNTQUdFfWAsIGZhbHNlKTtcbiAgICB9XG4gICAgdmFsaWRhdGVUb2tlbktleShcImFjY2Vzc1Rva2VuXCIsIHNzb1Rva2VuLmFjY2Vzc1Rva2VuKTtcbiAgICB2YWxpZGF0ZVRva2VuS2V5KFwiZXhwaXJlc0F0XCIsIHNzb1Rva2VuLmV4cGlyZXNBdCk7XG4gICAgY29uc3QgeyBhY2Nlc3NUb2tlbiwgZXhwaXJlc0F0IH0gPSBzc29Ub2tlbjtcbiAgICBjb25zdCBleGlzdGluZ1Rva2VuID0geyB0b2tlbjogYWNjZXNzVG9rZW4sIGV4cGlyYXRpb246IG5ldyBEYXRlKGV4cGlyZXNBdCkgfTtcbiAgICBpZiAoZXhpc3RpbmdUb2tlbi5leHBpcmF0aW9uLmdldFRpbWUoKSAtIERhdGUubm93KCkgPiBFWFBJUkVfV0lORE9XX01TKSB7XG4gICAgICAgIHJldHVybiBleGlzdGluZ1Rva2VuO1xuICAgIH1cbiAgICBpZiAoRGF0ZS5ub3coKSAtIGxhc3RSZWZyZXNoQXR0ZW1wdFRpbWUuZ2V0VGltZSgpIDwgMzAgKiAxMDAwKSB7XG4gICAgICAgIHZhbGlkYXRlVG9rZW5FeHBpcnkoZXhpc3RpbmdUb2tlbik7XG4gICAgICAgIHJldHVybiBleGlzdGluZ1Rva2VuO1xuICAgIH1cbiAgICB2YWxpZGF0ZVRva2VuS2V5KFwiY2xpZW50SWRcIiwgc3NvVG9rZW4uY2xpZW50SWQsIHRydWUpO1xuICAgIHZhbGlkYXRlVG9rZW5LZXkoXCJjbGllbnRTZWNyZXRcIiwgc3NvVG9rZW4uY2xpZW50U2VjcmV0LCB0cnVlKTtcbiAgICB2YWxpZGF0ZVRva2VuS2V5KFwicmVmcmVzaFRva2VuXCIsIHNzb1Rva2VuLnJlZnJlc2hUb2tlbiwgdHJ1ZSk7XG4gICAgdHJ5IHtcbiAgICAgICAgbGFzdFJlZnJlc2hBdHRlbXB0VGltZS5zZXRUaW1lKERhdGUubm93KCkpO1xuICAgICAgICBjb25zdCBuZXdTc29PaWRjVG9rZW4gPSBhd2FpdCBnZXROZXdTc29PaWRjVG9rZW4oc3NvVG9rZW4sIHNzb1JlZ2lvbiwgaW5pdCwgY2FsbGVyQ2xpZW50Q29uZmlnKTtcbiAgICAgICAgdmFsaWRhdGVUb2tlbktleShcImFjY2Vzc1Rva2VuXCIsIG5ld1Nzb09pZGNUb2tlbi5hY2Nlc3NUb2tlbik7XG4gICAgICAgIHZhbGlkYXRlVG9rZW5LZXkoXCJleHBpcmVzSW5cIiwgbmV3U3NvT2lkY1Rva2VuLmV4cGlyZXNJbik7XG4gICAgICAgIGNvbnN0IG5ld1Rva2VuRXhwaXJhdGlvbiA9IG5ldyBEYXRlKERhdGUubm93KCkgKyBuZXdTc29PaWRjVG9rZW4uZXhwaXJlc0luICogMTAwMCk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhd2FpdCB3cml0ZVNTT1Rva2VuVG9GaWxlKHNzb1Nlc3Npb25OYW1lLCB7XG4gICAgICAgICAgICAgICAgLi4uc3NvVG9rZW4sXG4gICAgICAgICAgICAgICAgYWNjZXNzVG9rZW46IG5ld1Nzb09pZGNUb2tlbi5hY2Nlc3NUb2tlbixcbiAgICAgICAgICAgICAgICBleHBpcmVzQXQ6IG5ld1Rva2VuRXhwaXJhdGlvbi50b0lTT1N0cmluZygpLFxuICAgICAgICAgICAgICAgIHJlZnJlc2hUb2tlbjogbmV3U3NvT2lkY1Rva2VuLnJlZnJlc2hUb2tlbixcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0b2tlbjogbmV3U3NvT2lkY1Rva2VuLmFjY2Vzc1Rva2VuLFxuICAgICAgICAgICAgZXhwaXJhdGlvbjogbmV3VG9rZW5FeHBpcmF0aW9uLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgdmFsaWRhdGVUb2tlbkV4cGlyeShleGlzdGluZ1Rva2VuKTtcbiAgICAgICAgcmV0dXJuIGV4aXN0aW5nVG9rZW47XG4gICAgfVxufTtcblxuY29uc3QgZnJvbVN0YXRpYyA9ICh7IHRva2VuLCBsb2dnZXIgfSkgPT4gYXN5bmMgKCkgPT4ge1xuICAgIGxvZ2dlcj8uZGVidWcoXCJAYXdzLXNkay90b2tlbi1wcm92aWRlcnMgLSBmcm9tU3RhdGljXCIpO1xuICAgIGlmICghdG9rZW4gfHwgIXRva2VuLnRva2VuKSB7XG4gICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLlRva2VuUHJvdmlkZXJFcnJvcihgUGxlYXNlIHBhc3MgYSB2YWxpZCB0b2tlbiB0byBmcm9tU3RhdGljYCwgZmFsc2UpO1xuICAgIH1cbiAgICByZXR1cm4gdG9rZW47XG59O1xuXG5jb25zdCBub2RlUHJvdmlkZXIgPSAoaW5pdCA9IHt9KSA9PiBwcm9wZXJ0eVByb3ZpZGVyLm1lbW9pemUocHJvcGVydHlQcm92aWRlci5jaGFpbihmcm9tU3NvKGluaXQpLCBhc3luYyAoKSA9PiB7XG4gICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuVG9rZW5Qcm92aWRlckVycm9yKFwiQ291bGQgbm90IGxvYWQgdG9rZW4gZnJvbSBhbnkgcHJvdmlkZXJzXCIsIGZhbHNlKTtcbn0pLCAodG9rZW4pID0+IHRva2VuLmV4cGlyYXRpb24gIT09IHVuZGVmaW5lZCAmJiB0b2tlbi5leHBpcmF0aW9uLmdldFRpbWUoKSAtIERhdGUubm93KCkgPCAzMDAwMDAsICh0b2tlbikgPT4gdG9rZW4uZXhwaXJhdGlvbiAhPT0gdW5kZWZpbmVkKTtcblxuZXhwb3J0cy5mcm9tRW52U2lnbmluZ05hbWUgPSBmcm9tRW52U2lnbmluZ05hbWU7XG5leHBvcnRzLmZyb21Tc28gPSBmcm9tU3NvO1xuZXhwb3J0cy5mcm9tU3RhdGljID0gZnJvbVN0YXRpYztcbmV4cG9ydHMubm9kZVByb3ZpZGVyID0gbm9kZVByb3ZpZGVyO1xuIiwgImltcG9ydCB7IHJlc29sdmVBd3NTZGtTaWdWNENvbmZpZyB9IGZyb20gXCJAYXdzLXNkay9jb3JlL2h0dHBBdXRoU2NoZW1lc1wiO1xuaW1wb3J0IHsgZ2V0U21pdGh5Q29udGV4dCwgbm9ybWFsaXplUHJvdmlkZXIgfSBmcm9tIFwiQHNtaXRoeS91dGlsLW1pZGRsZXdhcmVcIjtcbmV4cG9ydCBjb25zdCBkZWZhdWx0U1NPSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIgPSBhc3luYyAoY29uZmlnLCBjb250ZXh0LCBpbnB1dCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIG9wZXJhdGlvbjogZ2V0U21pdGh5Q29udGV4dChjb250ZXh0KS5vcGVyYXRpb24sXG4gICAgICAgIHJlZ2lvbjogKGF3YWl0IG5vcm1hbGl6ZVByb3ZpZGVyKGNvbmZpZy5yZWdpb24pKCkpIHx8XG4gICAgICAgICAgICAoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcImV4cGVjdGVkIGByZWdpb25gIHRvIGJlIGNvbmZpZ3VyZWQgZm9yIGBhd3MuYXV0aCNzaWd2NGBcIik7XG4gICAgICAgICAgICB9KSgpLFxuICAgIH07XG59O1xuZnVuY3Rpb24gY3JlYXRlQXdzQXV0aFNpZ3Y0SHR0cEF1dGhPcHRpb24oYXV0aFBhcmFtZXRlcnMpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBzY2hlbWVJZDogXCJhd3MuYXV0aCNzaWd2NFwiLFxuICAgICAgICBzaWduaW5nUHJvcGVydGllczoge1xuICAgICAgICAgICAgbmFtZTogXCJhd3Nzc29wb3J0YWxcIixcbiAgICAgICAgICAgIHJlZ2lvbjogYXV0aFBhcmFtZXRlcnMucmVnaW9uLFxuICAgICAgICB9LFxuICAgICAgICBwcm9wZXJ0aWVzRXh0cmFjdG9yOiAoY29uZmlnLCBjb250ZXh0KSA9PiAoe1xuICAgICAgICAgICAgc2lnbmluZ1Byb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICBjb25maWcsXG4gICAgICAgICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pLFxuICAgIH07XG59XG5mdW5jdGlvbiBjcmVhdGVTbWl0aHlBcGlOb0F1dGhIdHRwQXV0aE9wdGlvbihhdXRoUGFyYW1ldGVycykge1xuICAgIHJldHVybiB7XG4gICAgICAgIHNjaGVtZUlkOiBcInNtaXRoeS5hcGkjbm9BdXRoXCIsXG4gICAgfTtcbn1cbmV4cG9ydCBjb25zdCBkZWZhdWx0U1NPSHR0cEF1dGhTY2hlbWVQcm92aWRlciA9IChhdXRoUGFyYW1ldGVycykgPT4ge1xuICAgIGNvbnN0IG9wdGlvbnMgPSBbXTtcbiAgICBzd2l0Y2ggKGF1dGhQYXJhbWV0ZXJzLm9wZXJhdGlvbikge1xuICAgICAgICBjYXNlIFwiR2V0Um9sZUNyZWRlbnRpYWxzXCI6IHtcbiAgICAgICAgICAgIG9wdGlvbnMucHVzaChjcmVhdGVTbWl0aHlBcGlOb0F1dGhIdHRwQXV0aE9wdGlvbihhdXRoUGFyYW1ldGVycykpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgb3B0aW9ucy5wdXNoKGNyZWF0ZUF3c0F1dGhTaWd2NEh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG9wdGlvbnM7XG59O1xuZXhwb3J0IGNvbnN0IHJlc29sdmVIdHRwQXV0aFNjaGVtZUNvbmZpZyA9IChjb25maWcpID0+IHtcbiAgICBjb25zdCBjb25maWdfMCA9IHJlc29sdmVBd3NTZGtTaWdWNENvbmZpZyhjb25maWcpO1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKGNvbmZpZ18wLCB7XG4gICAgICAgIGF1dGhTY2hlbWVQcmVmZXJlbmNlOiBub3JtYWxpemVQcm92aWRlcihjb25maWcuYXV0aFNjaGVtZVByZWZlcmVuY2UgPz8gW10pLFxuICAgIH0pO1xufTtcbiIsICJleHBvcnQgY29uc3QgcmVzb2x2ZUNsaWVudEVuZHBvaW50UGFyYW1ldGVycyA9IChvcHRpb25zKSA9PiB7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24ob3B0aW9ucywge1xuICAgICAgICB1c2VEdWFsc3RhY2tFbmRwb2ludDogb3B0aW9ucy51c2VEdWFsc3RhY2tFbmRwb2ludCA/PyBmYWxzZSxcbiAgICAgICAgdXNlRmlwc0VuZHBvaW50OiBvcHRpb25zLnVzZUZpcHNFbmRwb2ludCA/PyBmYWxzZSxcbiAgICAgICAgZGVmYXVsdFNpZ25pbmdOYW1lOiBcImF3c3Nzb3BvcnRhbFwiLFxuICAgIH0pO1xufTtcbmV4cG9ydCBjb25zdCBjb21tb25QYXJhbXMgPSB7XG4gICAgVXNlRklQUzogeyB0eXBlOiBcImJ1aWx0SW5QYXJhbXNcIiwgbmFtZTogXCJ1c2VGaXBzRW5kcG9pbnRcIiB9LFxuICAgIEVuZHBvaW50OiB7IHR5cGU6IFwiYnVpbHRJblBhcmFtc1wiLCBuYW1lOiBcImVuZHBvaW50XCIgfSxcbiAgICBSZWdpb246IHsgdHlwZTogXCJidWlsdEluUGFyYW1zXCIsIG5hbWU6IFwicmVnaW9uXCIgfSxcbiAgICBVc2VEdWFsU3RhY2s6IHsgdHlwZTogXCJidWlsdEluUGFyYW1zXCIsIG5hbWU6IFwidXNlRHVhbHN0YWNrRW5kcG9pbnRcIiB9LFxufTtcbiIsICJpbXBvcnQgeyBCaW5hcnlEZWNpc2lvbkRpYWdyYW0gfSBmcm9tIFwiQHNtaXRoeS91dGlsLWVuZHBvaW50c1wiO1xuY29uc3QgayA9IFwicmVmXCI7XG5jb25zdCBhID0gLTEsIGIgPSB0cnVlLCBjID0gXCJpc1NldFwiLCBkID0gXCJQYXJ0aXRpb25SZXN1bHRcIiwgZSA9IFwiYm9vbGVhbkVxdWFsc1wiLCBmID0gXCJnZXRBdHRyXCIsIGcgPSB7IFtrXTogXCJFbmRwb2ludFwiIH0sIGggPSB7IFtrXTogZCB9LCBpID0ge30sIGogPSBbeyBba106IFwiUmVnaW9uXCIgfV07XG5jb25zdCBfZGF0YSA9IHtcbiAgICBjb25kaXRpb25zOiBbXG4gICAgICAgIFtjLCBbZ11dLFxuICAgICAgICBbYywgal0sXG4gICAgICAgIFtcImF3cy5wYXJ0aXRpb25cIiwgaiwgZF0sXG4gICAgICAgIFtlLCBbeyBba106IFwiVXNlRklQU1wiIH0sIGJdXSxcbiAgICAgICAgW2UsIFt7IFtrXTogXCJVc2VEdWFsU3RhY2tcIiB9LCBiXV0sXG4gICAgICAgIFtlLCBbeyBmbjogZiwgYXJndjogW2gsIFwic3VwcG9ydHNEdWFsU3RhY2tcIl0gfSwgYl1dLFxuICAgICAgICBbZSwgW3sgZm46IGYsIGFyZ3Y6IFtoLCBcInN1cHBvcnRzRklQU1wiXSB9LCBiXV0sXG4gICAgICAgIFtcInN0cmluZ0VxdWFsc1wiLCBbeyBmbjogZiwgYXJndjogW2gsIFwibmFtZVwiXSB9LCBcImF3cy11cy1nb3ZcIl1dLFxuICAgIF0sXG4gICAgcmVzdWx0czogW1xuICAgICAgICBbYV0sXG4gICAgICAgIFthLCBcIkludmFsaWQgQ29uZmlndXJhdGlvbjogRklQUyBhbmQgY3VzdG9tIGVuZHBvaW50IGFyZSBub3Qgc3VwcG9ydGVkXCJdLFxuICAgICAgICBbYSwgXCJJbnZhbGlkIENvbmZpZ3VyYXRpb246IER1YWxzdGFjayBhbmQgY3VzdG9tIGVuZHBvaW50IGFyZSBub3Qgc3VwcG9ydGVkXCJdLFxuICAgICAgICBbZywgaV0sXG4gICAgICAgIFtcImh0dHBzOi8vcG9ydGFsLnNzby1maXBzLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZHVhbFN0YWNrRG5zU3VmZml4fVwiLCBpXSxcbiAgICAgICAgW2EsIFwiRklQUyBhbmQgRHVhbFN0YWNrIGFyZSBlbmFibGVkLCBidXQgdGhpcyBwYXJ0aXRpb24gZG9lcyBub3Qgc3VwcG9ydCBvbmUgb3IgYm90aFwiXSxcbiAgICAgICAgW1wiaHR0cHM6Ly9wb3J0YWwuc3NvLntSZWdpb259LmFtYXpvbmF3cy5jb21cIiwgaV0sXG4gICAgICAgIFtcImh0dHBzOi8vcG9ydGFsLnNzby1maXBzLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZG5zU3VmZml4fVwiLCBpXSxcbiAgICAgICAgW2EsIFwiRklQUyBpcyBlbmFibGVkIGJ1dCB0aGlzIHBhcnRpdGlvbiBkb2VzIG5vdCBzdXBwb3J0IEZJUFNcIl0sXG4gICAgICAgIFtcImh0dHBzOi8vcG9ydGFsLnNzby57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2R1YWxTdGFja0Ruc1N1ZmZpeH1cIiwgaV0sXG4gICAgICAgIFthLCBcIkR1YWxTdGFjayBpcyBlbmFibGVkIGJ1dCB0aGlzIHBhcnRpdGlvbiBkb2VzIG5vdCBzdXBwb3J0IER1YWxTdGFja1wiXSxcbiAgICAgICAgW1wiaHR0cHM6Ly9wb3J0YWwuc3NvLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZG5zU3VmZml4fVwiLCBpXSxcbiAgICAgICAgW2EsIFwiSW52YWxpZCBDb25maWd1cmF0aW9uOiBNaXNzaW5nIFJlZ2lvblwiXSxcbiAgICBdLFxufTtcbmNvbnN0IHJvb3QgPSAyO1xuY29uc3QgciA9IDEwMF8wMDBfMDAwO1xuY29uc3Qgbm9kZXMgPSBuZXcgSW50MzJBcnJheShbXG4gICAgLTEsXG4gICAgMSxcbiAgICAtMSxcbiAgICAwLFxuICAgIDEzLFxuICAgIDMsXG4gICAgMSxcbiAgICA0LFxuICAgIHIgKyAxMixcbiAgICAyLFxuICAgIDUsXG4gICAgciArIDEyLFxuICAgIDMsXG4gICAgOCxcbiAgICA2LFxuICAgIDQsXG4gICAgNyxcbiAgICByICsgMTEsXG4gICAgNSxcbiAgICByICsgOSxcbiAgICByICsgMTAsXG4gICAgNCxcbiAgICAxMSxcbiAgICA5LFxuICAgIDYsXG4gICAgMTAsXG4gICAgciArIDgsXG4gICAgNyxcbiAgICByICsgNixcbiAgICByICsgNyxcbiAgICA1LFxuICAgIDEyLFxuICAgIHIgKyA1LFxuICAgIDYsXG4gICAgciArIDQsXG4gICAgciArIDUsXG4gICAgMyxcbiAgICByICsgMSxcbiAgICAxNCxcbiAgICA0LFxuICAgIHIgKyAyLFxuICAgIHIgKyAzLFxuXSk7XG5leHBvcnQgY29uc3QgYmRkID0gQmluYXJ5RGVjaXNpb25EaWFncmFtLmZyb20obm9kZXMsIHJvb3QsIF9kYXRhLmNvbmRpdGlvbnMsIF9kYXRhLnJlc3VsdHMpO1xuIiwgImltcG9ydCB7IGF3c0VuZHBvaW50RnVuY3Rpb25zIH0gZnJvbSBcIkBhd3Mtc2RrL3V0aWwtZW5kcG9pbnRzXCI7XG5pbXBvcnQgeyBjdXN0b21FbmRwb2ludEZ1bmN0aW9ucywgZGVjaWRlRW5kcG9pbnQsIEVuZHBvaW50Q2FjaGUgfSBmcm9tIFwiQHNtaXRoeS91dGlsLWVuZHBvaW50c1wiO1xuaW1wb3J0IHsgYmRkIH0gZnJvbSBcIi4vYmRkXCI7XG5jb25zdCBjYWNoZSA9IG5ldyBFbmRwb2ludENhY2hlKHtcbiAgICBzaXplOiA1MCxcbiAgICBwYXJhbXM6IFtcIkVuZHBvaW50XCIsIFwiUmVnaW9uXCIsIFwiVXNlRHVhbFN0YWNrXCIsIFwiVXNlRklQU1wiXSxcbn0pO1xuZXhwb3J0IGNvbnN0IGRlZmF1bHRFbmRwb2ludFJlc29sdmVyID0gKGVuZHBvaW50UGFyYW1zLCBjb250ZXh0ID0ge30pID0+IHtcbiAgICByZXR1cm4gY2FjaGUuZ2V0KGVuZHBvaW50UGFyYW1zLCAoKSA9PiBkZWNpZGVFbmRwb2ludChiZGQsIHtcbiAgICAgICAgZW5kcG9pbnRQYXJhbXM6IGVuZHBvaW50UGFyYW1zLFxuICAgICAgICBsb2dnZXI6IGNvbnRleHQubG9nZ2VyLFxuICAgIH0pKTtcbn07XG5jdXN0b21FbmRwb2ludEZ1bmN0aW9ucy5hd3MgPSBhd3NFbmRwb2ludEZ1bmN0aW9ucztcbiIsICJpbXBvcnQgeyBTZXJ2aWNlRXhjZXB0aW9uIGFzIF9fU2VydmljZUV4Y2VwdGlvbiwgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5leHBvcnQgeyBfX1NlcnZpY2VFeGNlcHRpb24gfTtcbmV4cG9ydCBjbGFzcyBTU09TZXJ2aWNlRXhjZXB0aW9uIGV4dGVuZHMgX19TZXJ2aWNlRXhjZXB0aW9uIHtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgU1NPU2VydmljZUV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBTU09TZXJ2aWNlRXhjZXB0aW9uIGFzIF9fQmFzZUV4Y2VwdGlvbiB9IGZyb20gXCIuL1NTT1NlcnZpY2VFeGNlcHRpb25cIjtcbmV4cG9ydCBjbGFzcyBJbnZhbGlkUmVxdWVzdEV4Y2VwdGlvbiBleHRlbmRzIF9fQmFzZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiSW52YWxpZFJlcXVlc3RFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJJbnZhbGlkUmVxdWVzdEV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBJbnZhbGlkUmVxdWVzdEV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uIGV4dGVuZHMgX19CYXNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIFRvb01hbnlSZXF1ZXN0c0V4Y2VwdGlvbiBleHRlbmRzIF9fQmFzZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiVG9vTWFueVJlcXVlc3RzRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiVG9vTWFueVJlcXVlc3RzRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFRvb01hbnlSZXF1ZXN0c0V4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBVbmF1dGhvcml6ZWRFeGNlcHRpb24gZXh0ZW5kcyBfX0Jhc2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIlVuYXV0aG9yaXplZEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIlVuYXV0aG9yaXplZEV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBVbmF1dGhvcml6ZWRFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59XG4iLCAiY29uc3QgX0FUVCA9IFwiQWNjZXNzVG9rZW5UeXBlXCI7XG5jb25zdCBfR1JDID0gXCJHZXRSb2xlQ3JlZGVudGlhbHNcIjtcbmNvbnN0IF9HUkNSID0gXCJHZXRSb2xlQ3JlZGVudGlhbHNSZXF1ZXN0XCI7XG5jb25zdCBfR1JDUmUgPSBcIkdldFJvbGVDcmVkZW50aWFsc1Jlc3BvbnNlXCI7XG5jb25zdCBfSVJFID0gXCJJbnZhbGlkUmVxdWVzdEV4Y2VwdGlvblwiO1xuY29uc3QgX1JDID0gXCJSb2xlQ3JlZGVudGlhbHNcIjtcbmNvbnN0IF9STkZFID0gXCJSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uXCI7XG5jb25zdCBfU0FLVCA9IFwiU2VjcmV0QWNjZXNzS2V5VHlwZVwiO1xuY29uc3QgX1NUVCA9IFwiU2Vzc2lvblRva2VuVHlwZVwiO1xuY29uc3QgX1RNUkUgPSBcIlRvb01hbnlSZXF1ZXN0c0V4Y2VwdGlvblwiO1xuY29uc3QgX1VFID0gXCJVbmF1dGhvcml6ZWRFeGNlcHRpb25cIjtcbmNvbnN0IF9hSSA9IFwiYWNjb3VudElkXCI7XG5jb25zdCBfYUtJID0gXCJhY2Nlc3NLZXlJZFwiO1xuY29uc3QgX2FUID0gXCJhY2Nlc3NUb2tlblwiO1xuY29uc3QgX2FpID0gXCJhY2NvdW50X2lkXCI7XG5jb25zdCBfYyA9IFwiY2xpZW50XCI7XG5jb25zdCBfZSA9IFwiZXJyb3JcIjtcbmNvbnN0IF9leCA9IFwiZXhwaXJhdGlvblwiO1xuY29uc3QgX2ggPSBcImh0dHBcIjtcbmNvbnN0IF9oRSA9IFwiaHR0cEVycm9yXCI7XG5jb25zdCBfaEggPSBcImh0dHBIZWFkZXJcIjtcbmNvbnN0IF9oUSA9IFwiaHR0cFF1ZXJ5XCI7XG5jb25zdCBfbSA9IFwibWVzc2FnZVwiO1xuY29uc3QgX3JDID0gXCJyb2xlQ3JlZGVudGlhbHNcIjtcbmNvbnN0IF9yTiA9IFwicm9sZU5hbWVcIjtcbmNvbnN0IF9ybiA9IFwicm9sZV9uYW1lXCI7XG5jb25zdCBfcyA9IFwic21pdGh5LnRzLnNkay5zeW50aGV0aWMuY29tLmFtYXpvbmF3cy5zc29cIjtcbmNvbnN0IF9zQUsgPSBcInNlY3JldEFjY2Vzc0tleVwiO1xuY29uc3QgX3NUID0gXCJzZXNzaW9uVG9rZW5cIjtcbmNvbnN0IF94YXNidCA9IFwieC1hbXotc3NvX2JlYXJlcl90b2tlblwiO1xuY29uc3QgbjAgPSBcImNvbS5hbWF6b25hd3Muc3NvXCI7XG5pbXBvcnQgeyBUeXBlUmVnaXN0cnkgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3NjaGVtYVwiO1xuaW1wb3J0IHsgSW52YWxpZFJlcXVlc3RFeGNlcHRpb24sIFJlc291cmNlTm90Rm91bmRFeGNlcHRpb24sIFRvb01hbnlSZXF1ZXN0c0V4Y2VwdGlvbiwgVW5hdXRob3JpemVkRXhjZXB0aW9uLCB9IGZyb20gXCIuLi9tb2RlbHMvZXJyb3JzXCI7XG5pbXBvcnQgeyBTU09TZXJ2aWNlRXhjZXB0aW9uIH0gZnJvbSBcIi4uL21vZGVscy9TU09TZXJ2aWNlRXhjZXB0aW9uXCI7XG5jb25zdCBfc19yZWdpc3RyeSA9IFR5cGVSZWdpc3RyeS5mb3IoX3MpO1xuZXhwb3J0IHZhciBTU09TZXJ2aWNlRXhjZXB0aW9uJCA9IFstMywgX3MsIFwiU1NPU2VydmljZUV4Y2VwdGlvblwiLCAwLCBbXSwgW11dO1xuX3NfcmVnaXN0cnkucmVnaXN0ZXJFcnJvcihTU09TZXJ2aWNlRXhjZXB0aW9uJCwgU1NPU2VydmljZUV4Y2VwdGlvbik7XG5jb25zdCBuMF9yZWdpc3RyeSA9IFR5cGVSZWdpc3RyeS5mb3IobjApO1xuZXhwb3J0IHZhciBJbnZhbGlkUmVxdWVzdEV4Y2VwdGlvbiQgPSBbLTMsIG4wLCBfSVJFLCB7IFtfZV06IF9jLCBbX2hFXTogNDAwIH0sIFtfbV0sIFswXV07XG5uMF9yZWdpc3RyeS5yZWdpc3RlckVycm9yKEludmFsaWRSZXF1ZXN0RXhjZXB0aW9uJCwgSW52YWxpZFJlcXVlc3RFeGNlcHRpb24pO1xuZXhwb3J0IHZhciBSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uJCA9IFstMywgbjAsIF9STkZFLCB7IFtfZV06IF9jLCBbX2hFXTogNDA0IH0sIFtfbV0sIFswXV07XG5uMF9yZWdpc3RyeS5yZWdpc3RlckVycm9yKFJlc291cmNlTm90Rm91bmRFeGNlcHRpb24kLCBSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uKTtcbmV4cG9ydCB2YXIgVG9vTWFueVJlcXVlc3RzRXhjZXB0aW9uJCA9IFstMywgbjAsIF9UTVJFLCB7IFtfZV06IF9jLCBbX2hFXTogNDI5IH0sIFtfbV0sIFswXV07XG5uMF9yZWdpc3RyeS5yZWdpc3RlckVycm9yKFRvb01hbnlSZXF1ZXN0c0V4Y2VwdGlvbiQsIFRvb01hbnlSZXF1ZXN0c0V4Y2VwdGlvbik7XG5leHBvcnQgdmFyIFVuYXV0aG9yaXplZEV4Y2VwdGlvbiQgPSBbLTMsIG4wLCBfVUUsIHsgW19lXTogX2MsIFtfaEVdOiA0MDEgfSwgW19tXSwgWzBdXTtcbm4wX3JlZ2lzdHJ5LnJlZ2lzdGVyRXJyb3IoVW5hdXRob3JpemVkRXhjZXB0aW9uJCwgVW5hdXRob3JpemVkRXhjZXB0aW9uKTtcbmV4cG9ydCBjb25zdCBlcnJvclR5cGVSZWdpc3RyaWVzID0gW19zX3JlZ2lzdHJ5LCBuMF9yZWdpc3RyeV07XG52YXIgQWNjZXNzVG9rZW5UeXBlID0gWzAsIG4wLCBfQVRULCA4LCAwXTtcbnZhciBTZWNyZXRBY2Nlc3NLZXlUeXBlID0gWzAsIG4wLCBfU0FLVCwgOCwgMF07XG52YXIgU2Vzc2lvblRva2VuVHlwZSA9IFswLCBuMCwgX1NUVCwgOCwgMF07XG5leHBvcnQgdmFyIEdldFJvbGVDcmVkZW50aWFsc1JlcXVlc3QkID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dSQ1IsXG4gICAgMCxcbiAgICBbX3JOLCBfYUksIF9hVF0sXG4gICAgW1xuICAgICAgICBbMCwgeyBbX2hRXTogX3JuIH1dLFxuICAgICAgICBbMCwgeyBbX2hRXTogX2FpIH1dLFxuICAgICAgICBbKCkgPT4gQWNjZXNzVG9rZW5UeXBlLCB7IFtfaEhdOiBfeGFzYnQgfV0sXG4gICAgXSxcbiAgICAzLFxuXTtcbmV4cG9ydCB2YXIgR2V0Um9sZUNyZWRlbnRpYWxzUmVzcG9uc2UkID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dSQ1JlLFxuICAgIDAsXG4gICAgW19yQ10sXG4gICAgW1soKSA9PiBSb2xlQ3JlZGVudGlhbHMkLCAwXV0sXG5dO1xuZXhwb3J0IHZhciBSb2xlQ3JlZGVudGlhbHMkID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1JDLFxuICAgIDAsXG4gICAgW19hS0ksIF9zQUssIF9zVCwgX2V4XSxcbiAgICBbMCwgWygpID0+IFNlY3JldEFjY2Vzc0tleVR5cGUsIDBdLCBbKCkgPT4gU2Vzc2lvblRva2VuVHlwZSwgMF0sIDFdLFxuXTtcbmV4cG9ydCB2YXIgR2V0Um9sZUNyZWRlbnRpYWxzJCA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9HUkMsXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIvZmVkZXJhdGlvbi9jcmVkZW50aWFsc1wiLCAyMDBdIH0sXG4gICAgKCkgPT4gR2V0Um9sZUNyZWRlbnRpYWxzUmVxdWVzdCQsXG4gICAgKCkgPT4gR2V0Um9sZUNyZWRlbnRpYWxzUmVzcG9uc2UkLFxuXTtcbiIsICJpbXBvcnQgeyBBd3NTZGtTaWdWNFNpZ25lciB9IGZyb20gXCJAYXdzLXNkay9jb3JlL2h0dHBBdXRoU2NoZW1lc1wiO1xuaW1wb3J0IHsgQXdzUmVzdEpzb25Qcm90b2NvbCB9IGZyb20gXCJAYXdzLXNkay9jb3JlL3Byb3RvY29sc1wiO1xuaW1wb3J0IHsgTm9BdXRoU2lnbmVyIH0gZnJvbSBcIkBzbWl0aHkvY29yZVwiO1xuaW1wb3J0IHsgTm9PcExvZ2dlciB9IGZyb20gXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjtcbmltcG9ydCB7IHBhcnNlVXJsIH0gZnJvbSBcIkBzbWl0aHkvdXJsLXBhcnNlclwiO1xuaW1wb3J0IHsgZnJvbUJhc2U2NCwgdG9CYXNlNjQgfSBmcm9tIFwiQHNtaXRoeS91dGlsLWJhc2U2NFwiO1xuaW1wb3J0IHsgZnJvbVV0ZjgsIHRvVXRmOCB9IGZyb20gXCJAc21pdGh5L3V0aWwtdXRmOFwiO1xuaW1wb3J0IHsgZGVmYXVsdFNTT0h0dHBBdXRoU2NoZW1lUHJvdmlkZXIgfSBmcm9tIFwiLi9hdXRoL2h0dHBBdXRoU2NoZW1lUHJvdmlkZXJcIjtcbmltcG9ydCB7IGRlZmF1bHRFbmRwb2ludFJlc29sdmVyIH0gZnJvbSBcIi4vZW5kcG9pbnQvZW5kcG9pbnRSZXNvbHZlclwiO1xuaW1wb3J0IHsgZXJyb3JUeXBlUmVnaXN0cmllcyB9IGZyb20gXCIuL3NjaGVtYXMvc2NoZW1hc18wXCI7XG5leHBvcnQgY29uc3QgZ2V0UnVudGltZUNvbmZpZyA9IChjb25maWcpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgICBhcGlWZXJzaW9uOiBcIjIwMTktMDYtMTBcIixcbiAgICAgICAgYmFzZTY0RGVjb2RlcjogY29uZmlnPy5iYXNlNjREZWNvZGVyID8/IGZyb21CYXNlNjQsXG4gICAgICAgIGJhc2U2NEVuY29kZXI6IGNvbmZpZz8uYmFzZTY0RW5jb2RlciA/PyB0b0Jhc2U2NCxcbiAgICAgICAgZGlzYWJsZUhvc3RQcmVmaXg6IGNvbmZpZz8uZGlzYWJsZUhvc3RQcmVmaXggPz8gZmFsc2UsXG4gICAgICAgIGVuZHBvaW50UHJvdmlkZXI6IGNvbmZpZz8uZW5kcG9pbnRQcm92aWRlciA/PyBkZWZhdWx0RW5kcG9pbnRSZXNvbHZlcixcbiAgICAgICAgZXh0ZW5zaW9uczogY29uZmlnPy5leHRlbnNpb25zID8/IFtdLFxuICAgICAgICBodHRwQXV0aFNjaGVtZVByb3ZpZGVyOiBjb25maWc/Lmh0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPz8gZGVmYXVsdFNTT0h0dHBBdXRoU2NoZW1lUHJvdmlkZXIsXG4gICAgICAgIGh0dHBBdXRoU2NoZW1lczogY29uZmlnPy5odHRwQXV0aFNjaGVtZXMgPz8gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHNjaGVtZUlkOiBcImF3cy5hdXRoI3NpZ3Y0XCIsXG4gICAgICAgICAgICAgICAgaWRlbnRpdHlQcm92aWRlcjogKGlwYykgPT4gaXBjLmdldElkZW50aXR5UHJvdmlkZXIoXCJhd3MuYXV0aCNzaWd2NFwiKSxcbiAgICAgICAgICAgICAgICBzaWduZXI6IG5ldyBBd3NTZGtTaWdWNFNpZ25lcigpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzY2hlbWVJZDogXCJzbWl0aHkuYXBpI25vQXV0aFwiLFxuICAgICAgICAgICAgICAgIGlkZW50aXR5UHJvdmlkZXI6IChpcGMpID0+IGlwYy5nZXRJZGVudGl0eVByb3ZpZGVyKFwic21pdGh5LmFwaSNub0F1dGhcIikgfHwgKGFzeW5jICgpID0+ICh7fSkpLFxuICAgICAgICAgICAgICAgIHNpZ25lcjogbmV3IE5vQXV0aFNpZ25lcigpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgbG9nZ2VyOiBjb25maWc/LmxvZ2dlciA/PyBuZXcgTm9PcExvZ2dlcigpLFxuICAgICAgICBwcm90b2NvbDogY29uZmlnPy5wcm90b2NvbCA/PyBBd3NSZXN0SnNvblByb3RvY29sLFxuICAgICAgICBwcm90b2NvbFNldHRpbmdzOiBjb25maWc/LnByb3RvY29sU2V0dGluZ3MgPz8ge1xuICAgICAgICAgICAgZGVmYXVsdE5hbWVzcGFjZTogXCJjb20uYW1hem9uYXdzLnNzb1wiLFxuICAgICAgICAgICAgZXJyb3JUeXBlUmVnaXN0cmllcyxcbiAgICAgICAgICAgIHZlcnNpb246IFwiMjAxOS0wNi0xMFwiLFxuICAgICAgICAgICAgc2VydmljZVRhcmdldDogXCJTV0JQb3J0YWxTZXJ2aWNlXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHNlcnZpY2VJZDogY29uZmlnPy5zZXJ2aWNlSWQgPz8gXCJTU09cIixcbiAgICAgICAgdXJsUGFyc2VyOiBjb25maWc/LnVybFBhcnNlciA/PyBwYXJzZVVybCxcbiAgICAgICAgdXRmOERlY29kZXI6IGNvbmZpZz8udXRmOERlY29kZXIgPz8gZnJvbVV0ZjgsXG4gICAgICAgIHV0ZjhFbmNvZGVyOiBjb25maWc/LnV0ZjhFbmNvZGVyID8/IHRvVXRmOCxcbiAgICB9O1xufTtcbiIsICJpbXBvcnQgcGFja2FnZUluZm8gZnJvbSBcIi4uLy4uLy4uL3BhY2thZ2UuanNvblwiO1xuaW1wb3J0IHsgZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbiBhcyBhd3NDaGVja1ZlcnNpb24gfSBmcm9tIFwiQGF3cy1zZGsvY29yZS9jbGllbnRcIjtcbmltcG9ydCB7IE5PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9PUFRJT05TIH0gZnJvbSBcIkBhd3Mtc2RrL2NvcmUvaHR0cEF1dGhTY2hlbWVzXCI7XG5pbXBvcnQgeyBjcmVhdGVEZWZhdWx0VXNlckFnZW50UHJvdmlkZXIsIE5PREVfQVBQX0lEX0NPTkZJR19PUFRJT05TIH0gZnJvbSBcIkBhd3Mtc2RrL3V0aWwtdXNlci1hZ2VudC1ub2RlXCI7XG5pbXBvcnQgeyBOT0RFX1JFR0lPTl9DT05GSUdfRklMRV9PUFRJT05TLCBOT0RFX1JFR0lPTl9DT05GSUdfT1BUSU9OUywgTk9ERV9VU0VfRFVBTFNUQUNLX0VORFBPSU5UX0NPTkZJR19PUFRJT05TLCBOT0RFX1VTRV9GSVBTX0VORFBPSU5UX0NPTkZJR19PUFRJT05TLCB9IGZyb20gXCJAc21pdGh5L2NvbmZpZy1yZXNvbHZlclwiO1xuaW1wb3J0IHsgSGFzaCB9IGZyb20gXCJAc21pdGh5L2hhc2gtbm9kZVwiO1xuaW1wb3J0IHsgTk9ERV9NQVhfQVRURU1QVF9DT05GSUdfT1BUSU9OUywgTk9ERV9SRVRSWV9NT0RFX0NPTkZJR19PUFRJT05TIH0gZnJvbSBcIkBzbWl0aHkvbWlkZGxld2FyZS1yZXRyeVwiO1xuaW1wb3J0IHsgbG9hZENvbmZpZyBhcyBsb2FkTm9kZUNvbmZpZyB9IGZyb20gXCJAc21pdGh5L25vZGUtY29uZmlnLXByb3ZpZGVyXCI7XG5pbXBvcnQgeyBOb2RlSHR0cEhhbmRsZXIgYXMgUmVxdWVzdEhhbmRsZXIsIHN0cmVhbUNvbGxlY3RvciB9IGZyb20gXCJAc21pdGh5L25vZGUtaHR0cC1oYW5kbGVyXCI7XG5pbXBvcnQgeyBlbWl0V2FybmluZ0lmVW5zdXBwb3J0ZWRWZXJzaW9uLCBsb2FkQ29uZmlnc0ZvckRlZmF1bHRNb2RlIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgY2FsY3VsYXRlQm9keUxlbmd0aCB9IGZyb20gXCJAc21pdGh5L3V0aWwtYm9keS1sZW5ndGgtbm9kZVwiO1xuaW1wb3J0IHsgcmVzb2x2ZURlZmF1bHRzTW9kZUNvbmZpZyB9IGZyb20gXCJAc21pdGh5L3V0aWwtZGVmYXVsdHMtbW9kZS1ub2RlXCI7XG5pbXBvcnQgeyBERUZBVUxUX1JFVFJZX01PREUgfSBmcm9tIFwiQHNtaXRoeS91dGlsLXJldHJ5XCI7XG5pbXBvcnQgeyBnZXRSdW50aW1lQ29uZmlnIGFzIGdldFNoYXJlZFJ1bnRpbWVDb25maWcgfSBmcm9tIFwiLi9ydW50aW1lQ29uZmlnLnNoYXJlZFwiO1xuZXhwb3J0IGNvbnN0IGdldFJ1bnRpbWVDb25maWcgPSAoY29uZmlnKSA9PiB7XG4gICAgZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbihwcm9jZXNzLnZlcnNpb24pO1xuICAgIGNvbnN0IGRlZmF1bHRzTW9kZSA9IHJlc29sdmVEZWZhdWx0c01vZGVDb25maWcoY29uZmlnKTtcbiAgICBjb25zdCBkZWZhdWx0Q29uZmlnUHJvdmlkZXIgPSAoKSA9PiBkZWZhdWx0c01vZGUoKS50aGVuKGxvYWRDb25maWdzRm9yRGVmYXVsdE1vZGUpO1xuICAgIGNvbnN0IGNsaWVudFNoYXJlZFZhbHVlcyA9IGdldFNoYXJlZFJ1bnRpbWVDb25maWcoY29uZmlnKTtcbiAgICBhd3NDaGVja1ZlcnNpb24ocHJvY2Vzcy52ZXJzaW9uKTtcbiAgICBjb25zdCBsb2FkZXJDb25maWcgPSB7XG4gICAgICAgIHByb2ZpbGU6IGNvbmZpZz8ucHJvZmlsZSxcbiAgICAgICAgbG9nZ2VyOiBjbGllbnRTaGFyZWRWYWx1ZXMubG9nZ2VyLFxuICAgIH07XG4gICAgcmV0dXJuIHtcbiAgICAgICAgLi4uY2xpZW50U2hhcmVkVmFsdWVzLFxuICAgICAgICAuLi5jb25maWcsXG4gICAgICAgIHJ1bnRpbWU6IFwibm9kZVwiLFxuICAgICAgICBkZWZhdWx0c01vZGUsXG4gICAgICAgIGF1dGhTY2hlbWVQcmVmZXJlbmNlOiBjb25maWc/LmF1dGhTY2hlbWVQcmVmZXJlbmNlID8/IGxvYWROb2RlQ29uZmlnKE5PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgICAgICBib2R5TGVuZ3RoQ2hlY2tlcjogY29uZmlnPy5ib2R5TGVuZ3RoQ2hlY2tlciA/PyBjYWxjdWxhdGVCb2R5TGVuZ3RoLFxuICAgICAgICBkZWZhdWx0VXNlckFnZW50UHJvdmlkZXI6IGNvbmZpZz8uZGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyID8/XG4gICAgICAgICAgICBjcmVhdGVEZWZhdWx0VXNlckFnZW50UHJvdmlkZXIoeyBzZXJ2aWNlSWQ6IGNsaWVudFNoYXJlZFZhbHVlcy5zZXJ2aWNlSWQsIGNsaWVudFZlcnNpb246IHBhY2thZ2VJbmZvLnZlcnNpb24gfSksXG4gICAgICAgIG1heEF0dGVtcHRzOiBjb25maWc/Lm1heEF0dGVtcHRzID8/IGxvYWROb2RlQ29uZmlnKE5PREVfTUFYX0FUVEVNUFRfQ09ORklHX09QVElPTlMsIGNvbmZpZyksXG4gICAgICAgIHJlZ2lvbjogY29uZmlnPy5yZWdpb24gPz9cbiAgICAgICAgICAgIGxvYWROb2RlQ29uZmlnKE5PREVfUkVHSU9OX0NPTkZJR19PUFRJT05TLCB7IC4uLk5PREVfUkVHSU9OX0NPTkZJR19GSUxFX09QVElPTlMsIC4uLmxvYWRlckNvbmZpZyB9KSxcbiAgICAgICAgcmVxdWVzdEhhbmRsZXI6IFJlcXVlc3RIYW5kbGVyLmNyZWF0ZShjb25maWc/LnJlcXVlc3RIYW5kbGVyID8/IGRlZmF1bHRDb25maWdQcm92aWRlciksXG4gICAgICAgIHJldHJ5TW9kZTogY29uZmlnPy5yZXRyeU1vZGUgPz9cbiAgICAgICAgICAgIGxvYWROb2RlQ29uZmlnKHtcbiAgICAgICAgICAgICAgICAuLi5OT0RFX1JFVFJZX01PREVfQ09ORklHX09QVElPTlMsXG4gICAgICAgICAgICAgICAgZGVmYXVsdDogYXN5bmMgKCkgPT4gKGF3YWl0IGRlZmF1bHRDb25maWdQcm92aWRlcigpKS5yZXRyeU1vZGUgfHwgREVGQVVMVF9SRVRSWV9NT0RFLFxuICAgICAgICAgICAgfSwgY29uZmlnKSxcbiAgICAgICAgc2hhMjU2OiBjb25maWc/LnNoYTI1NiA/PyBIYXNoLmJpbmQobnVsbCwgXCJzaGEyNTZcIiksXG4gICAgICAgIHN0cmVhbUNvbGxlY3RvcjogY29uZmlnPy5zdHJlYW1Db2xsZWN0b3IgPz8gc3RyZWFtQ29sbGVjdG9yLFxuICAgICAgICB1c2VEdWFsc3RhY2tFbmRwb2ludDogY29uZmlnPy51c2VEdWFsc3RhY2tFbmRwb2ludCA/PyBsb2FkTm9kZUNvbmZpZyhOT0RFX1VTRV9EVUFMU1RBQ0tfRU5EUE9JTlRfQ09ORklHX09QVElPTlMsIGxvYWRlckNvbmZpZyksXG4gICAgICAgIHVzZUZpcHNFbmRwb2ludDogY29uZmlnPy51c2VGaXBzRW5kcG9pbnQgPz8gbG9hZE5vZGVDb25maWcoTk9ERV9VU0VfRklQU19FTkRQT0lOVF9DT05GSUdfT1BUSU9OUywgbG9hZGVyQ29uZmlnKSxcbiAgICAgICAgdXNlckFnZW50QXBwSWQ6IGNvbmZpZz8udXNlckFnZW50QXBwSWQgPz8gbG9hZE5vZGVDb25maWcoTk9ERV9BUFBfSURfQ09ORklHX09QVElPTlMsIGxvYWRlckNvbmZpZyksXG4gICAgfTtcbn07XG4iLCAiZXhwb3J0IGNvbnN0IGdldEh0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiA9IChydW50aW1lQ29uZmlnKSA9PiB7XG4gICAgY29uc3QgX2h0dHBBdXRoU2NoZW1lcyA9IHJ1bnRpbWVDb25maWcuaHR0cEF1dGhTY2hlbWVzO1xuICAgIGxldCBfaHR0cEF1dGhTY2hlbWVQcm92aWRlciA9IHJ1bnRpbWVDb25maWcuaHR0cEF1dGhTY2hlbWVQcm92aWRlcjtcbiAgICBsZXQgX2NyZWRlbnRpYWxzID0gcnVudGltZUNvbmZpZy5jcmVkZW50aWFscztcbiAgICByZXR1cm4ge1xuICAgICAgICBzZXRIdHRwQXV0aFNjaGVtZShodHRwQXV0aFNjaGVtZSkge1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSBfaHR0cEF1dGhTY2hlbWVzLmZpbmRJbmRleCgoc2NoZW1lKSA9PiBzY2hlbWUuc2NoZW1lSWQgPT09IGh0dHBBdXRoU2NoZW1lLnNjaGVtZUlkKTtcbiAgICAgICAgICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICBfaHR0cEF1dGhTY2hlbWVzLnB1c2goaHR0cEF1dGhTY2hlbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgX2h0dHBBdXRoU2NoZW1lcy5zcGxpY2UoaW5kZXgsIDEsIGh0dHBBdXRoU2NoZW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVzKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9odHRwQXV0aFNjaGVtZXM7XG4gICAgICAgIH0sXG4gICAgICAgIHNldEh0dHBBdXRoU2NoZW1lUHJvdmlkZXIoaHR0cEF1dGhTY2hlbWVQcm92aWRlcikge1xuICAgICAgICAgICAgX2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSBodHRwQXV0aFNjaGVtZVByb3ZpZGVyO1xuICAgICAgICB9LFxuICAgICAgICBodHRwQXV0aFNjaGVtZVByb3ZpZGVyKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9odHRwQXV0aFNjaGVtZVByb3ZpZGVyO1xuICAgICAgICB9LFxuICAgICAgICBzZXRDcmVkZW50aWFscyhjcmVkZW50aWFscykge1xuICAgICAgICAgICAgX2NyZWRlbnRpYWxzID0gY3JlZGVudGlhbHM7XG4gICAgICAgIH0sXG4gICAgICAgIGNyZWRlbnRpYWxzKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9jcmVkZW50aWFscztcbiAgICAgICAgfSxcbiAgICB9O1xufTtcbmV4cG9ydCBjb25zdCByZXNvbHZlSHR0cEF1dGhSdW50aW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIGh0dHBBdXRoU2NoZW1lczogY29uZmlnLmh0dHBBdXRoU2NoZW1lcygpLFxuICAgICAgICBodHRwQXV0aFNjaGVtZVByb3ZpZGVyOiBjb25maWcuaHR0cEF1dGhTY2hlbWVQcm92aWRlcigpLFxuICAgICAgICBjcmVkZW50aWFsczogY29uZmlnLmNyZWRlbnRpYWxzKCksXG4gICAgfTtcbn07XG4iLCAiaW1wb3J0IHsgZ2V0QXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiwgcmVzb2x2ZUF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24sIH0gZnJvbSBcIkBhd3Mtc2RrL3JlZ2lvbi1jb25maWctcmVzb2x2ZXJcIjtcbmltcG9ydCB7IGdldEh0dHBIYW5kbGVyRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiwgcmVzb2x2ZUh0dHBIYW5kbGVyUnVudGltZUNvbmZpZyB9IGZyb20gXCJAc21pdGh5L3Byb3RvY29sLWh0dHBcIjtcbmltcG9ydCB7IGdldERlZmF1bHRFeHRlbnNpb25Db25maWd1cmF0aW9uLCByZXNvbHZlRGVmYXVsdFJ1bnRpbWVDb25maWcgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyBnZXRIdHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24sIHJlc29sdmVIdHRwQXV0aFJ1bnRpbWVDb25maWcgfSBmcm9tIFwiLi9hdXRoL2h0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvblwiO1xuZXhwb3J0IGNvbnN0IHJlc29sdmVSdW50aW1lRXh0ZW5zaW9ucyA9IChydW50aW1lQ29uZmlnLCBleHRlbnNpb25zKSA9PiB7XG4gICAgY29uc3QgZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiA9IE9iamVjdC5hc3NpZ24oZ2V0QXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbihydW50aW1lQ29uZmlnKSwgZ2V0RGVmYXVsdEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24ocnVudGltZUNvbmZpZyksIGdldEh0dHBIYW5kbGVyRXh0ZW5zaW9uQ29uZmlndXJhdGlvbihydW50aW1lQ29uZmlnKSwgZ2V0SHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uKHJ1bnRpbWVDb25maWcpKTtcbiAgICBleHRlbnNpb25zLmZvckVhY2goKGV4dGVuc2lvbikgPT4gZXh0ZW5zaW9uLmNvbmZpZ3VyZShleHRlbnNpb25Db25maWd1cmF0aW9uKSk7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24ocnVudGltZUNvbmZpZywgcmVzb2x2ZUF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24oZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiksIHJlc29sdmVEZWZhdWx0UnVudGltZUNvbmZpZyhleHRlbnNpb25Db25maWd1cmF0aW9uKSwgcmVzb2x2ZUh0dHBIYW5kbGVyUnVudGltZUNvbmZpZyhleHRlbnNpb25Db25maWd1cmF0aW9uKSwgcmVzb2x2ZUh0dHBBdXRoUnVudGltZUNvbmZpZyhleHRlbnNpb25Db25maWd1cmF0aW9uKSk7XG59O1xuIiwgImltcG9ydCB7IGdldEhvc3RIZWFkZXJQbHVnaW4sIHJlc29sdmVIb3N0SGVhZGVyQ29uZmlnLCB9IGZyb20gXCJAYXdzLXNkay9taWRkbGV3YXJlLWhvc3QtaGVhZGVyXCI7XG5pbXBvcnQgeyBnZXRMb2dnZXJQbHVnaW4gfSBmcm9tIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1sb2dnZXJcIjtcbmltcG9ydCB7IGdldFJlY3Vyc2lvbkRldGVjdGlvblBsdWdpbiB9IGZyb20gXCJAYXdzLXNkay9taWRkbGV3YXJlLXJlY3Vyc2lvbi1kZXRlY3Rpb25cIjtcbmltcG9ydCB7IGdldFVzZXJBZ2VudFBsdWdpbiwgcmVzb2x2ZVVzZXJBZ2VudENvbmZpZywgfSBmcm9tIFwiQGF3cy1zZGsvbWlkZGxld2FyZS11c2VyLWFnZW50XCI7XG5pbXBvcnQgeyByZXNvbHZlUmVnaW9uQ29uZmlnIH0gZnJvbSBcIkBzbWl0aHkvY29uZmlnLXJlc29sdmVyXCI7XG5pbXBvcnQgeyBEZWZhdWx0SWRlbnRpdHlQcm92aWRlckNvbmZpZywgZ2V0SHR0cEF1dGhTY2hlbWVFbmRwb2ludFJ1bGVTZXRQbHVnaW4sIGdldEh0dHBTaWduaW5nUGx1Z2luLCB9IGZyb20gXCJAc21pdGh5L2NvcmVcIjtcbmltcG9ydCB7IGdldFNjaGVtYVNlcmRlUGx1Z2luIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IGdldENvbnRlbnRMZW5ndGhQbHVnaW4gfSBmcm9tIFwiQHNtaXRoeS9taWRkbGV3YXJlLWNvbnRlbnQtbGVuZ3RoXCI7XG5pbXBvcnQgeyByZXNvbHZlRW5kcG9pbnRDb25maWcsIH0gZnJvbSBcIkBzbWl0aHkvbWlkZGxld2FyZS1lbmRwb2ludFwiO1xuaW1wb3J0IHsgZ2V0UmV0cnlQbHVnaW4sIHJlc29sdmVSZXRyeUNvbmZpZywgfSBmcm9tIFwiQHNtaXRoeS9taWRkbGV3YXJlLXJldHJ5XCI7XG5pbXBvcnQgeyBDbGllbnQgYXMgX19DbGllbnQsIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgZGVmYXVsdFNTT0h0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyLCByZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWcsIH0gZnJvbSBcIi4vYXV0aC9odHRwQXV0aFNjaGVtZVByb3ZpZGVyXCI7XG5pbXBvcnQgeyByZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzLCB9IGZyb20gXCIuL2VuZHBvaW50L0VuZHBvaW50UGFyYW1ldGVyc1wiO1xuaW1wb3J0IHsgZ2V0UnVudGltZUNvbmZpZyBhcyBfX2dldFJ1bnRpbWVDb25maWcgfSBmcm9tIFwiLi9ydW50aW1lQ29uZmlnXCI7XG5pbXBvcnQgeyByZXNvbHZlUnVudGltZUV4dGVuc2lvbnMgfSBmcm9tIFwiLi9ydW50aW1lRXh0ZW5zaW9uc1wiO1xuZXhwb3J0IHsgX19DbGllbnQgfTtcbmV4cG9ydCBjbGFzcyBTU09DbGllbnQgZXh0ZW5kcyBfX0NsaWVudCB7XG4gICAgY29uZmlnO1xuICAgIGNvbnN0cnVjdG9yKC4uLltjb25maWd1cmF0aW9uXSkge1xuICAgICAgICBjb25zdCBfY29uZmlnXzAgPSBfX2dldFJ1bnRpbWVDb25maWcoY29uZmlndXJhdGlvbiB8fCB7fSk7XG4gICAgICAgIHN1cGVyKF9jb25maWdfMCk7XG4gICAgICAgIHRoaXMuaW5pdENvbmZpZyA9IF9jb25maWdfMDtcbiAgICAgICAgY29uc3QgX2NvbmZpZ18xID0gcmVzb2x2ZUNsaWVudEVuZHBvaW50UGFyYW1ldGVycyhfY29uZmlnXzApO1xuICAgICAgICBjb25zdCBfY29uZmlnXzIgPSByZXNvbHZlVXNlckFnZW50Q29uZmlnKF9jb25maWdfMSk7XG4gICAgICAgIGNvbnN0IF9jb25maWdfMyA9IHJlc29sdmVSZXRyeUNvbmZpZyhfY29uZmlnXzIpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzQgPSByZXNvbHZlUmVnaW9uQ29uZmlnKF9jb25maWdfMyk7XG4gICAgICAgIGNvbnN0IF9jb25maWdfNSA9IHJlc29sdmVIb3N0SGVhZGVyQ29uZmlnKF9jb25maWdfNCk7XG4gICAgICAgIGNvbnN0IF9jb25maWdfNiA9IHJlc29sdmVFbmRwb2ludENvbmZpZyhfY29uZmlnXzUpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzcgPSByZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWcoX2NvbmZpZ182KTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ184ID0gcmVzb2x2ZVJ1bnRpbWVFeHRlbnNpb25zKF9jb25maWdfNywgY29uZmlndXJhdGlvbj8uZXh0ZW5zaW9ucyB8fCBbXSk7XG4gICAgICAgIHRoaXMuY29uZmlnID0gX2NvbmZpZ184O1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoZ2V0U2NoZW1hU2VyZGVQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGdldFVzZXJBZ2VudFBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoZ2V0UmV0cnlQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGdldENvbnRlbnRMZW5ndGhQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGdldEhvc3RIZWFkZXJQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGdldExvZ2dlclBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoZ2V0UmVjdXJzaW9uRGV0ZWN0aW9uUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShnZXRIdHRwQXV0aFNjaGVtZUVuZHBvaW50UnVsZVNldFBsdWdpbih0aGlzLmNvbmZpZywge1xuICAgICAgICAgICAgaHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXI6IGRlZmF1bHRTU09IdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlcixcbiAgICAgICAgICAgIGlkZW50aXR5UHJvdmlkZXJDb25maWdQcm92aWRlcjogYXN5bmMgKGNvbmZpZykgPT4gbmV3IERlZmF1bHRJZGVudGl0eVByb3ZpZGVyQ29uZmlnKHtcbiAgICAgICAgICAgICAgICBcImF3cy5hdXRoI3NpZ3Y0XCI6IGNvbmZpZy5jcmVkZW50aWFscyxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICB9KSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShnZXRIdHRwU2lnbmluZ1BsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgIH1cbiAgICBkZXN0cm95KCkge1xuICAgICAgICBzdXBlci5kZXN0cm95KCk7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IGdldEVuZHBvaW50UGx1Z2luIH0gZnJvbSBcIkBzbWl0aHkvbWlkZGxld2FyZS1lbmRwb2ludFwiO1xuaW1wb3J0IHsgQ29tbWFuZCBhcyAkQ29tbWFuZCB9IGZyb20gXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjtcbmltcG9ydCB7IGNvbW1vblBhcmFtcyB9IGZyb20gXCIuLi9lbmRwb2ludC9FbmRwb2ludFBhcmFtZXRlcnNcIjtcbmltcG9ydCB7IEdldFJvbGVDcmVkZW50aWFscyQgfSBmcm9tIFwiLi4vc2NoZW1hcy9zY2hlbWFzXzBcIjtcbmV4cG9ydCB7ICRDb21tYW5kIH07XG5leHBvcnQgY2xhc3MgR2V0Um9sZUNyZWRlbnRpYWxzQ29tbWFuZCBleHRlbmRzICRDb21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJTV0JQb3J0YWxTZXJ2aWNlXCIsIFwiR2V0Um9sZUNyZWRlbnRpYWxzXCIsIHt9KVxuICAgIC5uKFwiU1NPQ2xpZW50XCIsIFwiR2V0Um9sZUNyZWRlbnRpYWxzQ29tbWFuZFwiKVxuICAgIC5zYyhHZXRSb2xlQ3JlZGVudGlhbHMkKVxuICAgIC5idWlsZCgpIHtcbn1cbiIsICJpbXBvcnQgeyBjcmVhdGVBZ2dyZWdhdGVkQ2xpZW50IH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgR2V0Um9sZUNyZWRlbnRpYWxzQ29tbWFuZCwgfSBmcm9tIFwiLi9jb21tYW5kcy9HZXRSb2xlQ3JlZGVudGlhbHNDb21tYW5kXCI7XG5pbXBvcnQgeyBTU09DbGllbnQgfSBmcm9tIFwiLi9TU09DbGllbnRcIjtcbmNvbnN0IGNvbW1hbmRzID0ge1xuICAgIEdldFJvbGVDcmVkZW50aWFsc0NvbW1hbmQsXG59O1xuZXhwb3J0IGNsYXNzIFNTTyBleHRlbmRzIFNTT0NsaWVudCB7XG59XG5jcmVhdGVBZ2dyZWdhdGVkQ2xpZW50KGNvbW1hbmRzLCBTU08pO1xuIiwgImV4cG9ydCAqIGZyb20gXCIuL0dldFJvbGVDcmVkZW50aWFsc0NvbW1hbmRcIjtcbiIsICJleHBvcnQge307XG4iLCAiZXhwb3J0ICogZnJvbSBcIi4vU1NPQ2xpZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9TU09cIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbW1hbmRzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zY2hlbWFzL3NjaGVtYXNfMFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWxzL2Vycm9yc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWxzL21vZGVsc18wXCI7XG5leHBvcnQgeyBTU09TZXJ2aWNlRXhjZXB0aW9uIH0gZnJvbSBcIi4vbW9kZWxzL1NTT1NlcnZpY2VFeGNlcHRpb25cIjtcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBzc28gPSByZXF1aXJlKCdAYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9zc28nKTtcblxuXG5cbmV4cG9ydHMuR2V0Um9sZUNyZWRlbnRpYWxzQ29tbWFuZCA9IHNzby5HZXRSb2xlQ3JlZGVudGlhbHNDb21tYW5kO1xuZXhwb3J0cy5TU09DbGllbnQgPSBzc28uU1NPQ2xpZW50O1xuIiwgIid1c2Ugc3RyaWN0JztcblxudmFyIHByb3BlcnR5UHJvdmlkZXIgPSByZXF1aXJlKCdAc21pdGh5L3Byb3BlcnR5LXByb3ZpZGVyJyk7XG52YXIgc2hhcmVkSW5pRmlsZUxvYWRlciA9IHJlcXVpcmUoJ0BzbWl0aHkvc2hhcmVkLWluaS1maWxlLWxvYWRlcicpO1xudmFyIGNsaWVudCA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL2NvcmUvY2xpZW50Jyk7XG52YXIgdG9rZW5Qcm92aWRlcnMgPSByZXF1aXJlKCdAYXdzLXNkay90b2tlbi1wcm92aWRlcnMnKTtcblxuY29uc3QgaXNTc29Qcm9maWxlID0gKGFyZykgPT4gYXJnICYmXG4gICAgKHR5cGVvZiBhcmcuc3NvX3N0YXJ0X3VybCA9PT0gXCJzdHJpbmdcIiB8fFxuICAgICAgICB0eXBlb2YgYXJnLnNzb19hY2NvdW50X2lkID09PSBcInN0cmluZ1wiIHx8XG4gICAgICAgIHR5cGVvZiBhcmcuc3NvX3Nlc3Npb24gPT09IFwic3RyaW5nXCIgfHxcbiAgICAgICAgdHlwZW9mIGFyZy5zc29fcmVnaW9uID09PSBcInN0cmluZ1wiIHx8XG4gICAgICAgIHR5cGVvZiBhcmcuc3NvX3JvbGVfbmFtZSA9PT0gXCJzdHJpbmdcIik7XG5cbmNvbnN0IFNIT1VMRF9GQUlMX0NSRURFTlRJQUxfQ0hBSU4gPSBmYWxzZTtcbmNvbnN0IHJlc29sdmVTU09DcmVkZW50aWFscyA9IGFzeW5jICh7IHNzb1N0YXJ0VXJsLCBzc29TZXNzaW9uLCBzc29BY2NvdW50SWQsIHNzb1JlZ2lvbiwgc3NvUm9sZU5hbWUsIHNzb0NsaWVudCwgY2xpZW50Q29uZmlnLCBwYXJlbnRDbGllbnRDb25maWcsIGNhbGxlckNsaWVudENvbmZpZywgcHJvZmlsZSwgZmlsZXBhdGgsIGNvbmZpZ0ZpbGVwYXRoLCBpZ25vcmVDYWNoZSwgbG9nZ2VyLCB9KSA9PiB7XG4gICAgbGV0IHRva2VuO1xuICAgIGNvbnN0IHJlZnJlc2hNZXNzYWdlID0gYFRvIHJlZnJlc2ggdGhpcyBTU08gc2Vzc2lvbiBydW4gYXdzIHNzbyBsb2dpbiB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIHByb2ZpbGUuYDtcbiAgICBpZiAoc3NvU2Vzc2lvbikge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgX3Rva2VuID0gYXdhaXQgdG9rZW5Qcm92aWRlcnMuZnJvbVNzbyh7XG4gICAgICAgICAgICAgICAgcHJvZmlsZSxcbiAgICAgICAgICAgICAgICBmaWxlcGF0aCxcbiAgICAgICAgICAgICAgICBjb25maWdGaWxlcGF0aCxcbiAgICAgICAgICAgICAgICBpZ25vcmVDYWNoZSxcbiAgICAgICAgICAgIH0pKCk7XG4gICAgICAgICAgICB0b2tlbiA9IHtcbiAgICAgICAgICAgICAgICBhY2Nlc3NUb2tlbjogX3Rva2VuLnRva2VuLFxuICAgICAgICAgICAgICAgIGV4cGlyZXNBdDogbmV3IERhdGUoX3Rva2VuLmV4cGlyYXRpb24pLnRvSVNPU3RyaW5nKCksXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoZS5tZXNzYWdlLCB7XG4gICAgICAgICAgICAgICAgdHJ5TmV4dExpbms6IFNIT1VMRF9GQUlMX0NSRURFTlRJQUxfQ0hBSU4sXG4gICAgICAgICAgICAgICAgbG9nZ2VyLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB0b2tlbiA9IGF3YWl0IHNoYXJlZEluaUZpbGVMb2FkZXIuZ2V0U1NPVG9rZW5Gcm9tRmlsZShzc29TdGFydFVybCk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLkNyZWRlbnRpYWxzUHJvdmlkZXJFcnJvcihgVGhlIFNTTyBzZXNzaW9uIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHByb2ZpbGUgaXMgaW52YWxpZC4gJHtyZWZyZXNoTWVzc2FnZX1gLCB7XG4gICAgICAgICAgICAgICAgdHJ5TmV4dExpbms6IFNIT1VMRF9GQUlMX0NSRURFTlRJQUxfQ0hBSU4sXG4gICAgICAgICAgICAgICAgbG9nZ2VyLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKG5ldyBEYXRlKHRva2VuLmV4cGlyZXNBdCkuZ2V0VGltZSgpIC0gRGF0ZS5ub3coKSA8PSAwKSB7XG4gICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLkNyZWRlbnRpYWxzUHJvdmlkZXJFcnJvcihgVGhlIFNTTyBzZXNzaW9uIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHByb2ZpbGUgaGFzIGV4cGlyZWQuICR7cmVmcmVzaE1lc3NhZ2V9YCwge1xuICAgICAgICAgICAgdHJ5TmV4dExpbms6IFNIT1VMRF9GQUlMX0NSRURFTlRJQUxfQ0hBSU4sXG4gICAgICAgICAgICBsb2dnZXIsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCB7IGFjY2Vzc1Rva2VuIH0gPSB0b2tlbjtcbiAgICBjb25zdCB7IFNTT0NsaWVudCwgR2V0Um9sZUNyZWRlbnRpYWxzQ29tbWFuZCB9ID0gYXdhaXQgUHJvbWlzZS5yZXNvbHZlKCkudGhlbihmdW5jdGlvbiAoKSB7IHJldHVybiByZXF1aXJlKCcuL2xvYWRTc28tQktETnJzYWwuanMnKTsgfSk7XG4gICAgY29uc3Qgc3NvID0gc3NvQ2xpZW50IHx8XG4gICAgICAgIG5ldyBTU09DbGllbnQoT2JqZWN0LmFzc2lnbih7fSwgY2xpZW50Q29uZmlnID8/IHt9LCB7XG4gICAgICAgICAgICBsb2dnZXI6IGNsaWVudENvbmZpZz8ubG9nZ2VyID8/IGNhbGxlckNsaWVudENvbmZpZz8ubG9nZ2VyID8/IHBhcmVudENsaWVudENvbmZpZz8ubG9nZ2VyLFxuICAgICAgICAgICAgcmVnaW9uOiBjbGllbnRDb25maWc/LnJlZ2lvbiA/PyBzc29SZWdpb24sXG4gICAgICAgICAgICB1c2VyQWdlbnRBcHBJZDogY2xpZW50Q29uZmlnPy51c2VyQWdlbnRBcHBJZCA/PyBjYWxsZXJDbGllbnRDb25maWc/LnVzZXJBZ2VudEFwcElkID8/IHBhcmVudENsaWVudENvbmZpZz8udXNlckFnZW50QXBwSWQsXG4gICAgICAgIH0pKTtcbiAgICBsZXQgc3NvUmVzcDtcbiAgICB0cnkge1xuICAgICAgICBzc29SZXNwID0gYXdhaXQgc3NvLnNlbmQobmV3IEdldFJvbGVDcmVkZW50aWFsc0NvbW1hbmQoe1xuICAgICAgICAgICAgYWNjb3VudElkOiBzc29BY2NvdW50SWQsXG4gICAgICAgICAgICByb2xlTmFtZTogc3NvUm9sZU5hbWUsXG4gICAgICAgICAgICBhY2Nlc3NUb2tlbixcbiAgICAgICAgfSkpO1xuICAgIH1cbiAgICBjYXRjaCAoZSkge1xuICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoZSwge1xuICAgICAgICAgICAgdHJ5TmV4dExpbms6IFNIT1VMRF9GQUlMX0NSRURFTlRJQUxfQ0hBSU4sXG4gICAgICAgICAgICBsb2dnZXIsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCB7IHJvbGVDcmVkZW50aWFsczogeyBhY2Nlc3NLZXlJZCwgc2VjcmV0QWNjZXNzS2V5LCBzZXNzaW9uVG9rZW4sIGV4cGlyYXRpb24sIGNyZWRlbnRpYWxTY29wZSwgYWNjb3VudElkIH0gPSB7fSwgfSA9IHNzb1Jlc3A7XG4gICAgaWYgKCFhY2Nlc3NLZXlJZCB8fCAhc2VjcmV0QWNjZXNzS2V5IHx8ICFzZXNzaW9uVG9rZW4gfHwgIWV4cGlyYXRpb24pIHtcbiAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKFwiU1NPIHJldHVybnMgYW4gaW52YWxpZCB0ZW1wb3JhcnkgY3JlZGVudGlhbC5cIiwge1xuICAgICAgICAgICAgdHJ5TmV4dExpbms6IFNIT1VMRF9GQUlMX0NSRURFTlRJQUxfQ0hBSU4sXG4gICAgICAgICAgICBsb2dnZXIsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCBjcmVkZW50aWFscyA9IHtcbiAgICAgICAgYWNjZXNzS2V5SWQsXG4gICAgICAgIHNlY3JldEFjY2Vzc0tleSxcbiAgICAgICAgc2Vzc2lvblRva2VuLFxuICAgICAgICBleHBpcmF0aW9uOiBuZXcgRGF0ZShleHBpcmF0aW9uKSxcbiAgICAgICAgLi4uKGNyZWRlbnRpYWxTY29wZSAmJiB7IGNyZWRlbnRpYWxTY29wZSB9KSxcbiAgICAgICAgLi4uKGFjY291bnRJZCAmJiB7IGFjY291bnRJZCB9KSxcbiAgICB9O1xuICAgIGlmIChzc29TZXNzaW9uKSB7XG4gICAgICAgIGNsaWVudC5zZXRDcmVkZW50aWFsRmVhdHVyZShjcmVkZW50aWFscywgXCJDUkVERU5USUFMU19TU09cIiwgXCJzXCIpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgY2xpZW50LnNldENyZWRlbnRpYWxGZWF0dXJlKGNyZWRlbnRpYWxzLCBcIkNSRURFTlRJQUxTX1NTT19MRUdBQ1lcIiwgXCJ1XCIpO1xuICAgIH1cbiAgICByZXR1cm4gY3JlZGVudGlhbHM7XG59O1xuXG5jb25zdCB2YWxpZGF0ZVNzb1Byb2ZpbGUgPSAocHJvZmlsZSwgbG9nZ2VyKSA9PiB7XG4gICAgY29uc3QgeyBzc29fc3RhcnRfdXJsLCBzc29fYWNjb3VudF9pZCwgc3NvX3JlZ2lvbiwgc3NvX3JvbGVfbmFtZSB9ID0gcHJvZmlsZTtcbiAgICBpZiAoIXNzb19zdGFydF91cmwgfHwgIXNzb19hY2NvdW50X2lkIHx8ICFzc29fcmVnaW9uIHx8ICFzc29fcm9sZV9uYW1lKSB7XG4gICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLkNyZWRlbnRpYWxzUHJvdmlkZXJFcnJvcihgUHJvZmlsZSBpcyBjb25maWd1cmVkIHdpdGggaW52YWxpZCBTU08gY3JlZGVudGlhbHMuIFJlcXVpcmVkIHBhcmFtZXRlcnMgXCJzc29fYWNjb3VudF9pZFwiLCBgICtcbiAgICAgICAgICAgIGBcInNzb19yZWdpb25cIiwgXCJzc29fcm9sZV9uYW1lXCIsIFwic3NvX3N0YXJ0X3VybFwiLiBHb3QgJHtPYmplY3Qua2V5cyhwcm9maWxlKS5qb2luKFwiLCBcIil9XFxuUmVmZXJlbmNlOiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2xpL2xhdGVzdC91c2VyZ3VpZGUvY2xpLWNvbmZpZ3VyZS1zc28uaHRtbGAsIHsgdHJ5TmV4dExpbms6IGZhbHNlLCBsb2dnZXIgfSk7XG4gICAgfVxuICAgIHJldHVybiBwcm9maWxlO1xufTtcblxuY29uc3QgZnJvbVNTTyA9IChpbml0ID0ge30pID0+IGFzeW5jICh7IGNhbGxlckNsaWVudENvbmZpZyB9ID0ge30pID0+IHtcbiAgICBpbml0LmxvZ2dlcj8uZGVidWcoXCJAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLXNzbyAtIGZyb21TU09cIik7XG4gICAgY29uc3QgeyBzc29TdGFydFVybCwgc3NvQWNjb3VudElkLCBzc29SZWdpb24sIHNzb1JvbGVOYW1lLCBzc29TZXNzaW9uIH0gPSBpbml0O1xuICAgIGNvbnN0IHsgc3NvQ2xpZW50IH0gPSBpbml0O1xuICAgIGNvbnN0IHByb2ZpbGVOYW1lID0gc2hhcmVkSW5pRmlsZUxvYWRlci5nZXRQcm9maWxlTmFtZSh7XG4gICAgICAgIHByb2ZpbGU6IGluaXQucHJvZmlsZSA/PyBjYWxsZXJDbGllbnRDb25maWc/LnByb2ZpbGUsXG4gICAgfSk7XG4gICAgaWYgKCFzc29TdGFydFVybCAmJiAhc3NvQWNjb3VudElkICYmICFzc29SZWdpb24gJiYgIXNzb1JvbGVOYW1lICYmICFzc29TZXNzaW9uKSB7XG4gICAgICAgIGNvbnN0IHByb2ZpbGVzID0gYXdhaXQgc2hhcmVkSW5pRmlsZUxvYWRlci5wYXJzZUtub3duRmlsZXMoaW5pdCk7XG4gICAgICAgIGNvbnN0IHByb2ZpbGUgPSBwcm9maWxlc1twcm9maWxlTmFtZV07XG4gICAgICAgIGlmICghcHJvZmlsZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKGBQcm9maWxlICR7cHJvZmlsZU5hbWV9IHdhcyBub3QgZm91bmQuYCwgeyBsb2dnZXI6IGluaXQubG9nZ2VyIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmICghaXNTc29Qcm9maWxlKHByb2ZpbGUpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoYFByb2ZpbGUgJHtwcm9maWxlTmFtZX0gaXMgbm90IGNvbmZpZ3VyZWQgd2l0aCBTU08gY3JlZGVudGlhbHMuYCwge1xuICAgICAgICAgICAgICAgIGxvZ2dlcjogaW5pdC5sb2dnZXIsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocHJvZmlsZT8uc3NvX3Nlc3Npb24pIHtcbiAgICAgICAgICAgIGNvbnN0IHNzb1Nlc3Npb25zID0gYXdhaXQgc2hhcmVkSW5pRmlsZUxvYWRlci5sb2FkU3NvU2Vzc2lvbkRhdGEoaW5pdCk7XG4gICAgICAgICAgICBjb25zdCBzZXNzaW9uID0gc3NvU2Vzc2lvbnNbcHJvZmlsZS5zc29fc2Vzc2lvbl07XG4gICAgICAgICAgICBjb25zdCBjb25mbGljdE1zZyA9IGAgY29uZmlndXJhdGlvbnMgaW4gcHJvZmlsZSAke3Byb2ZpbGVOYW1lfSBhbmQgc3NvLXNlc3Npb24gJHtwcm9maWxlLnNzb19zZXNzaW9ufWA7XG4gICAgICAgICAgICBpZiAoc3NvUmVnaW9uICYmIHNzb1JlZ2lvbiAhPT0gc2Vzc2lvbi5zc29fcmVnaW9uKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKGBDb25mbGljdGluZyBTU08gcmVnaW9uYCArIGNvbmZsaWN0TXNnLCB7XG4gICAgICAgICAgICAgICAgICAgIHRyeU5leHRMaW5rOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgbG9nZ2VyOiBpbml0LmxvZ2dlcixcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzc29TdGFydFVybCAmJiBzc29TdGFydFVybCAhPT0gc2Vzc2lvbi5zc29fc3RhcnRfdXJsKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKGBDb25mbGljdGluZyBTU08gc3RhcnRfdXJsYCArIGNvbmZsaWN0TXNnLCB7XG4gICAgICAgICAgICAgICAgICAgIHRyeU5leHRMaW5rOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgbG9nZ2VyOiBpbml0LmxvZ2dlcixcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHByb2ZpbGUuc3NvX3JlZ2lvbiA9IHNlc3Npb24uc3NvX3JlZ2lvbjtcbiAgICAgICAgICAgIHByb2ZpbGUuc3NvX3N0YXJ0X3VybCA9IHNlc3Npb24uc3NvX3N0YXJ0X3VybDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB7IHNzb19zdGFydF91cmwsIHNzb19hY2NvdW50X2lkLCBzc29fcmVnaW9uLCBzc29fcm9sZV9uYW1lLCBzc29fc2Vzc2lvbiB9ID0gdmFsaWRhdGVTc29Qcm9maWxlKHByb2ZpbGUsIGluaXQubG9nZ2VyKTtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVTU09DcmVkZW50aWFscyh7XG4gICAgICAgICAgICBzc29TdGFydFVybDogc3NvX3N0YXJ0X3VybCxcbiAgICAgICAgICAgIHNzb1Nlc3Npb246IHNzb19zZXNzaW9uLFxuICAgICAgICAgICAgc3NvQWNjb3VudElkOiBzc29fYWNjb3VudF9pZCxcbiAgICAgICAgICAgIHNzb1JlZ2lvbjogc3NvX3JlZ2lvbixcbiAgICAgICAgICAgIHNzb1JvbGVOYW1lOiBzc29fcm9sZV9uYW1lLFxuICAgICAgICAgICAgc3NvQ2xpZW50OiBzc29DbGllbnQsXG4gICAgICAgICAgICBjbGllbnRDb25maWc6IGluaXQuY2xpZW50Q29uZmlnLFxuICAgICAgICAgICAgcGFyZW50Q2xpZW50Q29uZmlnOiBpbml0LnBhcmVudENsaWVudENvbmZpZyxcbiAgICAgICAgICAgIGNhbGxlckNsaWVudENvbmZpZzogaW5pdC5jYWxsZXJDbGllbnRDb25maWcsXG4gICAgICAgICAgICBwcm9maWxlOiBwcm9maWxlTmFtZSxcbiAgICAgICAgICAgIGZpbGVwYXRoOiBpbml0LmZpbGVwYXRoLFxuICAgICAgICAgICAgY29uZmlnRmlsZXBhdGg6IGluaXQuY29uZmlnRmlsZXBhdGgsXG4gICAgICAgICAgICBpZ25vcmVDYWNoZTogaW5pdC5pZ25vcmVDYWNoZSxcbiAgICAgICAgICAgIGxvZ2dlcjogaW5pdC5sb2dnZXIsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBlbHNlIGlmICghc3NvU3RhcnRVcmwgfHwgIXNzb0FjY291bnRJZCB8fCAhc3NvUmVnaW9uIHx8ICFzc29Sb2xlTmFtZSkge1xuICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoXCJJbmNvbXBsZXRlIGNvbmZpZ3VyYXRpb24uIFRoZSBmcm9tU1NPKCkgYXJndW1lbnQgaGFzaCBtdXN0IGluY2x1ZGUgXCIgK1xuICAgICAgICAgICAgJ1wic3NvU3RhcnRVcmxcIiwgXCJzc29BY2NvdW50SWRcIiwgXCJzc29SZWdpb25cIiwgXCJzc29Sb2xlTmFtZVwiJywgeyB0cnlOZXh0TGluazogZmFsc2UsIGxvZ2dlcjogaW5pdC5sb2dnZXIgfSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZVNTT0NyZWRlbnRpYWxzKHtcbiAgICAgICAgICAgIHNzb1N0YXJ0VXJsLFxuICAgICAgICAgICAgc3NvU2Vzc2lvbixcbiAgICAgICAgICAgIHNzb0FjY291bnRJZCxcbiAgICAgICAgICAgIHNzb1JlZ2lvbixcbiAgICAgICAgICAgIHNzb1JvbGVOYW1lLFxuICAgICAgICAgICAgc3NvQ2xpZW50LFxuICAgICAgICAgICAgY2xpZW50Q29uZmlnOiBpbml0LmNsaWVudENvbmZpZyxcbiAgICAgICAgICAgIHBhcmVudENsaWVudENvbmZpZzogaW5pdC5wYXJlbnRDbGllbnRDb25maWcsXG4gICAgICAgICAgICBjYWxsZXJDbGllbnRDb25maWc6IGluaXQuY2FsbGVyQ2xpZW50Q29uZmlnLFxuICAgICAgICAgICAgcHJvZmlsZTogcHJvZmlsZU5hbWUsXG4gICAgICAgICAgICBmaWxlcGF0aDogaW5pdC5maWxlcGF0aCxcbiAgICAgICAgICAgIGNvbmZpZ0ZpbGVwYXRoOiBpbml0LmNvbmZpZ0ZpbGVwYXRoLFxuICAgICAgICAgICAgaWdub3JlQ2FjaGU6IGluaXQuaWdub3JlQ2FjaGUsXG4gICAgICAgICAgICBsb2dnZXI6IGluaXQubG9nZ2VyLFxuICAgICAgICB9KTtcbiAgICB9XG59O1xuXG5leHBvcnRzLmZyb21TU08gPSBmcm9tU1NPO1xuZXhwb3J0cy5pc1Nzb1Byb2ZpbGUgPSBpc1Nzb1Byb2ZpbGU7XG5leHBvcnRzLnZhbGlkYXRlU3NvUHJvZmlsZSA9IHZhbGlkYXRlU3NvUHJvZmlsZTtcbiIsICJpbXBvcnQgeyByZXNvbHZlQXdzU2RrU2lnVjRDb25maWcgfSBmcm9tIFwiQGF3cy1zZGsvY29yZS9odHRwQXV0aFNjaGVtZXNcIjtcbmltcG9ydCB7IGdldFNtaXRoeUNvbnRleHQsIG5vcm1hbGl6ZVByb3ZpZGVyIH0gZnJvbSBcIkBzbWl0aHkvdXRpbC1taWRkbGV3YXJlXCI7XG5leHBvcnQgY29uc3QgZGVmYXVsdFNpZ25pbkh0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyID0gYXN5bmMgKGNvbmZpZywgY29udGV4dCwgaW5wdXQpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgICBvcGVyYXRpb246IGdldFNtaXRoeUNvbnRleHQoY29udGV4dCkub3BlcmF0aW9uLFxuICAgICAgICByZWdpb246IChhd2FpdCBub3JtYWxpemVQcm92aWRlcihjb25maWcucmVnaW9uKSgpKSB8fFxuICAgICAgICAgICAgKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJleHBlY3RlZCBgcmVnaW9uYCB0byBiZSBjb25maWd1cmVkIGZvciBgYXdzLmF1dGgjc2lndjRgXCIpO1xuICAgICAgICAgICAgfSkoKSxcbiAgICB9O1xufTtcbmZ1bmN0aW9uIGNyZWF0ZUF3c0F1dGhTaWd2NEh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc2NoZW1lSWQ6IFwiYXdzLmF1dGgjc2lndjRcIixcbiAgICAgICAgc2lnbmluZ1Byb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIG5hbWU6IFwic2lnbmluXCIsXG4gICAgICAgICAgICByZWdpb246IGF1dGhQYXJhbWV0ZXJzLnJlZ2lvbixcbiAgICAgICAgfSxcbiAgICAgICAgcHJvcGVydGllc0V4dHJhY3RvcjogKGNvbmZpZywgY29udGV4dCkgPT4gKHtcbiAgICAgICAgICAgIHNpZ25pbmdQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgICAgY29uZmlnLFxuICAgICAgICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9KSxcbiAgICB9O1xufVxuZnVuY3Rpb24gY3JlYXRlU21pdGh5QXBpTm9BdXRoSHR0cEF1dGhPcHRpb24oYXV0aFBhcmFtZXRlcnMpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBzY2hlbWVJZDogXCJzbWl0aHkuYXBpI25vQXV0aFwiLFxuICAgIH07XG59XG5leHBvcnQgY29uc3QgZGVmYXVsdFNpZ25pbkh0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSAoYXV0aFBhcmFtZXRlcnMpID0+IHtcbiAgICBjb25zdCBvcHRpb25zID0gW107XG4gICAgc3dpdGNoIChhdXRoUGFyYW1ldGVycy5vcGVyYXRpb24pIHtcbiAgICAgICAgY2FzZSBcIkNyZWF0ZU9BdXRoMlRva2VuXCI6IHtcbiAgICAgICAgICAgIG9wdGlvbnMucHVzaChjcmVhdGVTbWl0aHlBcGlOb0F1dGhIdHRwQXV0aE9wdGlvbihhdXRoUGFyYW1ldGVycykpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgb3B0aW9ucy5wdXNoKGNyZWF0ZUF3c0F1dGhTaWd2NEh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG9wdGlvbnM7XG59O1xuZXhwb3J0IGNvbnN0IHJlc29sdmVIdHRwQXV0aFNjaGVtZUNvbmZpZyA9IChjb25maWcpID0+IHtcbiAgICBjb25zdCBjb25maWdfMCA9IHJlc29sdmVBd3NTZGtTaWdWNENvbmZpZyhjb25maWcpO1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKGNvbmZpZ18wLCB7XG4gICAgICAgIGF1dGhTY2hlbWVQcmVmZXJlbmNlOiBub3JtYWxpemVQcm92aWRlcihjb25maWcuYXV0aFNjaGVtZVByZWZlcmVuY2UgPz8gW10pLFxuICAgIH0pO1xufTtcbiIsICJleHBvcnQgY29uc3QgcmVzb2x2ZUNsaWVudEVuZHBvaW50UGFyYW1ldGVycyA9IChvcHRpb25zKSA9PiB7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24ob3B0aW9ucywge1xuICAgICAgICB1c2VEdWFsc3RhY2tFbmRwb2ludDogb3B0aW9ucy51c2VEdWFsc3RhY2tFbmRwb2ludCA/PyBmYWxzZSxcbiAgICAgICAgdXNlRmlwc0VuZHBvaW50OiBvcHRpb25zLnVzZUZpcHNFbmRwb2ludCA/PyBmYWxzZSxcbiAgICAgICAgZGVmYXVsdFNpZ25pbmdOYW1lOiBcInNpZ25pblwiLFxuICAgIH0pO1xufTtcbmV4cG9ydCBjb25zdCBjb21tb25QYXJhbXMgPSB7XG4gICAgVXNlRklQUzogeyB0eXBlOiBcImJ1aWx0SW5QYXJhbXNcIiwgbmFtZTogXCJ1c2VGaXBzRW5kcG9pbnRcIiB9LFxuICAgIEVuZHBvaW50OiB7IHR5cGU6IFwiYnVpbHRJblBhcmFtc1wiLCBuYW1lOiBcImVuZHBvaW50XCIgfSxcbiAgICBSZWdpb246IHsgdHlwZTogXCJidWlsdEluUGFyYW1zXCIsIG5hbWU6IFwicmVnaW9uXCIgfSxcbiAgICBVc2VEdWFsU3RhY2s6IHsgdHlwZTogXCJidWlsdEluUGFyYW1zXCIsIG5hbWU6IFwidXNlRHVhbHN0YWNrRW5kcG9pbnRcIiB9LFxufTtcbiIsICJpbXBvcnQgeyBCaW5hcnlEZWNpc2lvbkRpYWdyYW0gfSBmcm9tIFwiQHNtaXRoeS91dGlsLWVuZHBvaW50c1wiO1xuY29uc3QgbSA9IFwicmVmXCI7XG5jb25zdCBhID0gLTEsIGIgPSB0cnVlLCBjID0gXCJpc1NldFwiLCBkID0gXCJQYXJ0aXRpb25SZXN1bHRcIiwgZSA9IFwiYm9vbGVhbkVxdWFsc1wiLCBmID0gXCJnZXRBdHRyXCIsIGcgPSBcInN0cmluZ0VxdWFsc1wiLCBoID0geyBbbV06IFwiRW5kcG9pbnRcIiB9LCBpID0geyBbbV06IGQgfSwgaiA9IHsgZm46IGYsIGFyZ3Y6IFtpLCBcIm5hbWVcIl0gfSwgayA9IHt9LCBsID0gW3sgW21dOiBcIlJlZ2lvblwiIH1dO1xuY29uc3QgX2RhdGEgPSB7XG4gICAgY29uZGl0aW9uczogW1xuICAgICAgICBbYywgW2hdXSxcbiAgICAgICAgW2MsIGxdLFxuICAgICAgICBbXCJhd3MucGFydGl0aW9uXCIsIGwsIGRdLFxuICAgICAgICBbZSwgW3sgW21dOiBcIlVzZUZJUFNcIiB9LCBiXV0sXG4gICAgICAgIFtlLCBbeyBbbV06IFwiVXNlRHVhbFN0YWNrXCIgfSwgYl1dLFxuICAgICAgICBbZSwgW3sgZm46IGYsIGFyZ3Y6IFtpLCBcInN1cHBvcnRzRHVhbFN0YWNrXCJdIH0sIGJdXSxcbiAgICAgICAgW2UsIFt7IGZuOiBmLCBhcmd2OiBbaSwgXCJzdXBwb3J0c0ZJUFNcIl0gfSwgYl1dLFxuICAgICAgICBbZywgW2osIFwiYXdzXCJdXSxcbiAgICAgICAgW2csIFtqLCBcImF3cy1jblwiXV0sXG4gICAgICAgIFtnLCBbaiwgXCJhd3MtdXMtZ292XCJdXSxcbiAgICBdLFxuICAgIHJlc3VsdHM6IFtcbiAgICAgICAgW2FdLFxuICAgICAgICBbYSwgXCJJbnZhbGlkIENvbmZpZ3VyYXRpb246IEZJUFMgYW5kIGN1c3RvbSBlbmRwb2ludCBhcmUgbm90IHN1cHBvcnRlZFwiXSxcbiAgICAgICAgW2EsIFwiSW52YWxpZCBDb25maWd1cmF0aW9uOiBEdWFsc3RhY2sgYW5kIGN1c3RvbSBlbmRwb2ludCBhcmUgbm90IHN1cHBvcnRlZFwiXSxcbiAgICAgICAgW2gsIGtdLFxuICAgICAgICBbXCJodHRwczovL3tSZWdpb259LnNpZ25pbi5hd3MuYW1hem9uLmNvbVwiLCBrXSxcbiAgICAgICAgW1wiaHR0cHM6Ly97UmVnaW9ufS5zaWduaW4uYW1hem9uYXdzLmNuXCIsIGtdLFxuICAgICAgICBbXCJodHRwczovL3tSZWdpb259LnNpZ25pbi5hbWF6b25hd3MtdXMtZ292LmNvbVwiLCBrXSxcbiAgICAgICAgW1wiaHR0cHM6Ly9zaWduaW4tZmlwcy57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2R1YWxTdGFja0Ruc1N1ZmZpeH1cIiwga10sXG4gICAgICAgIFthLCBcIkZJUFMgYW5kIER1YWxTdGFjayBhcmUgZW5hYmxlZCwgYnV0IHRoaXMgcGFydGl0aW9uIGRvZXMgbm90IHN1cHBvcnQgb25lIG9yIGJvdGhcIl0sXG4gICAgICAgIFtcImh0dHBzOi8vc2lnbmluLWZpcHMue1JlZ2lvbn0ue1BhcnRpdGlvblJlc3VsdCNkbnNTdWZmaXh9XCIsIGtdLFxuICAgICAgICBbYSwgXCJGSVBTIGlzIGVuYWJsZWQgYnV0IHRoaXMgcGFydGl0aW9uIGRvZXMgbm90IHN1cHBvcnQgRklQU1wiXSxcbiAgICAgICAgW1wiaHR0cHM6Ly9zaWduaW4ue1JlZ2lvbn0ue1BhcnRpdGlvblJlc3VsdCNkdWFsU3RhY2tEbnNTdWZmaXh9XCIsIGtdLFxuICAgICAgICBbYSwgXCJEdWFsU3RhY2sgaXMgZW5hYmxlZCBidXQgdGhpcyBwYXJ0aXRpb24gZG9lcyBub3Qgc3VwcG9ydCBEdWFsU3RhY2tcIl0sXG4gICAgICAgIFtcImh0dHBzOi8vc2lnbmluLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZG5zU3VmZml4fVwiLCBrXSxcbiAgICAgICAgW2EsIFwiSW52YWxpZCBDb25maWd1cmF0aW9uOiBNaXNzaW5nIFJlZ2lvblwiXSxcbiAgICBdLFxufTtcbmNvbnN0IHJvb3QgPSAyO1xuY29uc3QgciA9IDEwMF8wMDBfMDAwO1xuY29uc3Qgbm9kZXMgPSBuZXcgSW50MzJBcnJheShbXG4gICAgLTEsXG4gICAgMSxcbiAgICAtMSxcbiAgICAwLFxuICAgIDE1LFxuICAgIDMsXG4gICAgMSxcbiAgICA0LFxuICAgIHIgKyAxNCxcbiAgICAyLFxuICAgIDUsXG4gICAgciArIDE0LFxuICAgIDMsXG4gICAgMTEsXG4gICAgNixcbiAgICA0LFxuICAgIDEwLFxuICAgIDcsXG4gICAgNyxcbiAgICByICsgNCxcbiAgICA4LFxuICAgIDgsXG4gICAgciArIDUsXG4gICAgOSxcbiAgICA5LFxuICAgIHIgKyA2LFxuICAgIHIgKyAxMyxcbiAgICA1LFxuICAgIHIgKyAxMSxcbiAgICByICsgMTIsXG4gICAgNCxcbiAgICAxMyxcbiAgICAxMixcbiAgICA2LFxuICAgIHIgKyA5LFxuICAgIHIgKyAxMCxcbiAgICA1LFxuICAgIDE0LFxuICAgIHIgKyA4LFxuICAgIDYsXG4gICAgciArIDcsXG4gICAgciArIDgsXG4gICAgMyxcbiAgICByICsgMSxcbiAgICAxNixcbiAgICA0LFxuICAgIHIgKyAyLFxuICAgIHIgKyAzLFxuXSk7XG5leHBvcnQgY29uc3QgYmRkID0gQmluYXJ5RGVjaXNpb25EaWFncmFtLmZyb20obm9kZXMsIHJvb3QsIF9kYXRhLmNvbmRpdGlvbnMsIF9kYXRhLnJlc3VsdHMpO1xuIiwgImltcG9ydCB7IGF3c0VuZHBvaW50RnVuY3Rpb25zIH0gZnJvbSBcIkBhd3Mtc2RrL3V0aWwtZW5kcG9pbnRzXCI7XG5pbXBvcnQgeyBjdXN0b21FbmRwb2ludEZ1bmN0aW9ucywgZGVjaWRlRW5kcG9pbnQsIEVuZHBvaW50Q2FjaGUgfSBmcm9tIFwiQHNtaXRoeS91dGlsLWVuZHBvaW50c1wiO1xuaW1wb3J0IHsgYmRkIH0gZnJvbSBcIi4vYmRkXCI7XG5jb25zdCBjYWNoZSA9IG5ldyBFbmRwb2ludENhY2hlKHtcbiAgICBzaXplOiA1MCxcbiAgICBwYXJhbXM6IFtcIkVuZHBvaW50XCIsIFwiUmVnaW9uXCIsIFwiVXNlRHVhbFN0YWNrXCIsIFwiVXNlRklQU1wiXSxcbn0pO1xuZXhwb3J0IGNvbnN0IGRlZmF1bHRFbmRwb2ludFJlc29sdmVyID0gKGVuZHBvaW50UGFyYW1zLCBjb250ZXh0ID0ge30pID0+IHtcbiAgICByZXR1cm4gY2FjaGUuZ2V0KGVuZHBvaW50UGFyYW1zLCAoKSA9PiBkZWNpZGVFbmRwb2ludChiZGQsIHtcbiAgICAgICAgZW5kcG9pbnRQYXJhbXM6IGVuZHBvaW50UGFyYW1zLFxuICAgICAgICBsb2dnZXI6IGNvbnRleHQubG9nZ2VyLFxuICAgIH0pKTtcbn07XG5jdXN0b21FbmRwb2ludEZ1bmN0aW9ucy5hd3MgPSBhd3NFbmRwb2ludEZ1bmN0aW9ucztcbiIsICJpbXBvcnQgeyBTZXJ2aWNlRXhjZXB0aW9uIGFzIF9fU2VydmljZUV4Y2VwdGlvbiwgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5leHBvcnQgeyBfX1NlcnZpY2VFeGNlcHRpb24gfTtcbmV4cG9ydCBjbGFzcyBTaWduaW5TZXJ2aWNlRXhjZXB0aW9uIGV4dGVuZHMgX19TZXJ2aWNlRXhjZXB0aW9uIHtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgU2lnbmluU2VydmljZUV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBTaWduaW5TZXJ2aWNlRXhjZXB0aW9uIGFzIF9fQmFzZUV4Y2VwdGlvbiB9IGZyb20gXCIuL1NpZ25pblNlcnZpY2VFeGNlcHRpb25cIjtcbmV4cG9ydCBjbGFzcyBBY2Nlc3NEZW5pZWRFeGNlcHRpb24gZXh0ZW5kcyBfX0Jhc2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIkFjY2Vzc0RlbmllZEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgZXJyb3I7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkFjY2Vzc0RlbmllZEV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBBY2Nlc3NEZW5pZWRFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5lcnJvciA9IG9wdHMuZXJyb3I7XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIEludGVybmFsU2VydmVyRXhjZXB0aW9uIGV4dGVuZHMgX19CYXNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJJbnRlcm5hbFNlcnZlckV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwic2VydmVyXCI7XG4gICAgZXJyb3I7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkludGVybmFsU2VydmVyRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwic2VydmVyXCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEludGVybmFsU2VydmVyRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuZXJyb3IgPSBvcHRzLmVycm9yO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBUb29NYW55UmVxdWVzdHNFcnJvciBleHRlbmRzIF9fQmFzZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiVG9vTWFueVJlcXVlc3RzRXJyb3JcIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGVycm9yO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJUb29NYW55UmVxdWVzdHNFcnJvclwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBUb29NYW55UmVxdWVzdHNFcnJvci5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLmVycm9yID0gb3B0cy5lcnJvcjtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgVmFsaWRhdGlvbkV4Y2VwdGlvbiBleHRlbmRzIF9fQmFzZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiVmFsaWRhdGlvbkV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgZXJyb3I7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIlZhbGlkYXRpb25FeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgVmFsaWRhdGlvbkV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLmVycm9yID0gb3B0cy5lcnJvcjtcbiAgICB9XG59XG4iLCAiY29uc3QgX0FERSA9IFwiQWNjZXNzRGVuaWVkRXhjZXB0aW9uXCI7XG5jb25zdCBfQVQgPSBcIkFjY2Vzc1Rva2VuXCI7XG5jb25zdCBfQ09BVCA9IFwiQ3JlYXRlT0F1dGgyVG9rZW5cIjtcbmNvbnN0IF9DT0FUUiA9IFwiQ3JlYXRlT0F1dGgyVG9rZW5SZXF1ZXN0XCI7XG5jb25zdCBfQ09BVFJCID0gXCJDcmVhdGVPQXV0aDJUb2tlblJlcXVlc3RCb2R5XCI7XG5jb25zdCBfQ09BVFJCciA9IFwiQ3JlYXRlT0F1dGgyVG9rZW5SZXNwb25zZUJvZHlcIjtcbmNvbnN0IF9DT0FUUnIgPSBcIkNyZWF0ZU9BdXRoMlRva2VuUmVzcG9uc2VcIjtcbmNvbnN0IF9JU0UgPSBcIkludGVybmFsU2VydmVyRXhjZXB0aW9uXCI7XG5jb25zdCBfUlQgPSBcIlJlZnJlc2hUb2tlblwiO1xuY29uc3QgX1RNUkUgPSBcIlRvb01hbnlSZXF1ZXN0c0Vycm9yXCI7XG5jb25zdCBfVkUgPSBcIlZhbGlkYXRpb25FeGNlcHRpb25cIjtcbmNvbnN0IF9hS0kgPSBcImFjY2Vzc0tleUlkXCI7XG5jb25zdCBfYVQgPSBcImFjY2Vzc1Rva2VuXCI7XG5jb25zdCBfYyA9IFwiY2xpZW50XCI7XG5jb25zdCBfY0kgPSBcImNsaWVudElkXCI7XG5jb25zdCBfY1YgPSBcImNvZGVWZXJpZmllclwiO1xuY29uc3QgX2NvID0gXCJjb2RlXCI7XG5jb25zdCBfZSA9IFwiZXJyb3JcIjtcbmNvbnN0IF9lSSA9IFwiZXhwaXJlc0luXCI7XG5jb25zdCBfZ1QgPSBcImdyYW50VHlwZVwiO1xuY29uc3QgX2ggPSBcImh0dHBcIjtcbmNvbnN0IF9oRSA9IFwiaHR0cEVycm9yXCI7XG5jb25zdCBfaVQgPSBcImlkVG9rZW5cIjtcbmNvbnN0IF9qTiA9IFwianNvbk5hbWVcIjtcbmNvbnN0IF9tID0gXCJtZXNzYWdlXCI7XG5jb25zdCBfclQgPSBcInJlZnJlc2hUb2tlblwiO1xuY29uc3QgX3JVID0gXCJyZWRpcmVjdFVyaVwiO1xuY29uc3QgX3MgPSBcInNtaXRoeS50cy5zZGsuc3ludGhldGljLmNvbS5hbWF6b25hd3Muc2lnbmluXCI7XG5jb25zdCBfc0FLID0gXCJzZWNyZXRBY2Nlc3NLZXlcIjtcbmNvbnN0IF9zVCA9IFwic2Vzc2lvblRva2VuXCI7XG5jb25zdCBfc2UgPSBcInNlcnZlclwiO1xuY29uc3QgX3RJID0gXCJ0b2tlbklucHV0XCI7XG5jb25zdCBfdE8gPSBcInRva2VuT3V0cHV0XCI7XG5jb25zdCBfdFQgPSBcInRva2VuVHlwZVwiO1xuY29uc3QgbjAgPSBcImNvbS5hbWF6b25hd3Muc2lnbmluXCI7XG5pbXBvcnQgeyBUeXBlUmVnaXN0cnkgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3NjaGVtYVwiO1xuaW1wb3J0IHsgQWNjZXNzRGVuaWVkRXhjZXB0aW9uLCBJbnRlcm5hbFNlcnZlckV4Y2VwdGlvbiwgVG9vTWFueVJlcXVlc3RzRXJyb3IsIFZhbGlkYXRpb25FeGNlcHRpb24sIH0gZnJvbSBcIi4uL21vZGVscy9lcnJvcnNcIjtcbmltcG9ydCB7IFNpZ25pblNlcnZpY2VFeGNlcHRpb24gfSBmcm9tIFwiLi4vbW9kZWxzL1NpZ25pblNlcnZpY2VFeGNlcHRpb25cIjtcbmNvbnN0IF9zX3JlZ2lzdHJ5ID0gVHlwZVJlZ2lzdHJ5LmZvcihfcyk7XG5leHBvcnQgdmFyIFNpZ25pblNlcnZpY2VFeGNlcHRpb24kID0gWy0zLCBfcywgXCJTaWduaW5TZXJ2aWNlRXhjZXB0aW9uXCIsIDAsIFtdLCBbXV07XG5fc19yZWdpc3RyeS5yZWdpc3RlckVycm9yKFNpZ25pblNlcnZpY2VFeGNlcHRpb24kLCBTaWduaW5TZXJ2aWNlRXhjZXB0aW9uKTtcbmNvbnN0IG4wX3JlZ2lzdHJ5ID0gVHlwZVJlZ2lzdHJ5LmZvcihuMCk7XG5leHBvcnQgdmFyIEFjY2Vzc0RlbmllZEV4Y2VwdGlvbiQgPSBbLTMsIG4wLCBfQURFLCB7IFtfZV06IF9jIH0sIFtfZSwgX21dLCBbMCwgMF0sIDJdO1xubjBfcmVnaXN0cnkucmVnaXN0ZXJFcnJvcihBY2Nlc3NEZW5pZWRFeGNlcHRpb24kLCBBY2Nlc3NEZW5pZWRFeGNlcHRpb24pO1xuZXhwb3J0IHZhciBJbnRlcm5hbFNlcnZlckV4Y2VwdGlvbiQgPSBbLTMsIG4wLCBfSVNFLCB7IFtfZV06IF9zZSwgW19oRV06IDUwMCB9LCBbX2UsIF9tXSwgWzAsIDBdLCAyXTtcbm4wX3JlZ2lzdHJ5LnJlZ2lzdGVyRXJyb3IoSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb24kLCBJbnRlcm5hbFNlcnZlckV4Y2VwdGlvbik7XG5leHBvcnQgdmFyIFRvb01hbnlSZXF1ZXN0c0Vycm9yJCA9IFstMywgbjAsIF9UTVJFLCB7IFtfZV06IF9jLCBbX2hFXTogNDI5IH0sIFtfZSwgX21dLCBbMCwgMF0sIDJdO1xubjBfcmVnaXN0cnkucmVnaXN0ZXJFcnJvcihUb29NYW55UmVxdWVzdHNFcnJvciQsIFRvb01hbnlSZXF1ZXN0c0Vycm9yKTtcbmV4cG9ydCB2YXIgVmFsaWRhdGlvbkV4Y2VwdGlvbiQgPSBbLTMsIG4wLCBfVkUsIHsgW19lXTogX2MsIFtfaEVdOiA0MDAgfSwgW19lLCBfbV0sIFswLCAwXSwgMl07XG5uMF9yZWdpc3RyeS5yZWdpc3RlckVycm9yKFZhbGlkYXRpb25FeGNlcHRpb24kLCBWYWxpZGF0aW9uRXhjZXB0aW9uKTtcbmV4cG9ydCBjb25zdCBlcnJvclR5cGVSZWdpc3RyaWVzID0gW19zX3JlZ2lzdHJ5LCBuMF9yZWdpc3RyeV07XG52YXIgUmVmcmVzaFRva2VuID0gWzAsIG4wLCBfUlQsIDgsIDBdO1xuZXhwb3J0IHZhciBBY2Nlc3NUb2tlbiQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfQVQsXG4gICAgOCxcbiAgICBbX2FLSSwgX3NBSywgX3NUXSxcbiAgICBbXG4gICAgICAgIFswLCB7IFtfak5dOiBfYUtJIH1dLFxuICAgICAgICBbMCwgeyBbX2pOXTogX3NBSyB9XSxcbiAgICAgICAgWzAsIHsgW19qTl06IF9zVCB9XSxcbiAgICBdLFxuICAgIDMsXG5dO1xuZXhwb3J0IHZhciBDcmVhdGVPQXV0aDJUb2tlblJlcXVlc3QkID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0NPQVRSLFxuICAgIDAsXG4gICAgW190SV0sXG4gICAgW1soKSA9PiBDcmVhdGVPQXV0aDJUb2tlblJlcXVlc3RCb2R5JCwgMTZdXSxcbiAgICAxLFxuXTtcbmV4cG9ydCB2YXIgQ3JlYXRlT0F1dGgyVG9rZW5SZXF1ZXN0Qm9keSQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfQ09BVFJCLFxuICAgIDAsXG4gICAgW19jSSwgX2dULCBfY28sIF9yVSwgX2NWLCBfclRdLFxuICAgIFtcbiAgICAgICAgWzAsIHsgW19qTl06IF9jSSB9XSxcbiAgICAgICAgWzAsIHsgW19qTl06IF9nVCB9XSxcbiAgICAgICAgMCxcbiAgICAgICAgWzAsIHsgW19qTl06IF9yVSB9XSxcbiAgICAgICAgWzAsIHsgW19qTl06IF9jViB9XSxcbiAgICAgICAgWygpID0+IFJlZnJlc2hUb2tlbiwgeyBbX2pOXTogX3JUIH1dLFxuICAgIF0sXG4gICAgMixcbl07XG5leHBvcnQgdmFyIENyZWF0ZU9BdXRoMlRva2VuUmVzcG9uc2UkID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0NPQVRScixcbiAgICAwLFxuICAgIFtfdE9dLFxuICAgIFtbKCkgPT4gQ3JlYXRlT0F1dGgyVG9rZW5SZXNwb25zZUJvZHkkLCAxNl1dLFxuICAgIDEsXG5dO1xuZXhwb3J0IHZhciBDcmVhdGVPQXV0aDJUb2tlblJlc3BvbnNlQm9keSQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfQ09BVFJCcixcbiAgICAwLFxuICAgIFtfYVQsIF90VCwgX2VJLCBfclQsIF9pVF0sXG4gICAgW1xuICAgICAgICBbKCkgPT4gQWNjZXNzVG9rZW4kLCB7IFtfak5dOiBfYVQgfV0sXG4gICAgICAgIFswLCB7IFtfak5dOiBfdFQgfV0sXG4gICAgICAgIFsxLCB7IFtfak5dOiBfZUkgfV0sXG4gICAgICAgIFsoKSA9PiBSZWZyZXNoVG9rZW4sIHsgW19qTl06IF9yVCB9XSxcbiAgICAgICAgWzAsIHsgW19qTl06IF9pVCB9XSxcbiAgICBdLFxuICAgIDQsXG5dO1xuZXhwb3J0IHZhciBDcmVhdGVPQXV0aDJUb2tlbiQgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfQ09BVCxcbiAgICB7IFtfaF06IFtcIlBPU1RcIiwgXCIvdjEvdG9rZW5cIiwgMjAwXSB9LFxuICAgICgpID0+IENyZWF0ZU9BdXRoMlRva2VuUmVxdWVzdCQsXG4gICAgKCkgPT4gQ3JlYXRlT0F1dGgyVG9rZW5SZXNwb25zZSQsXG5dO1xuIiwgImltcG9ydCB7IEF3c1Nka1NpZ1Y0U2lnbmVyIH0gZnJvbSBcIkBhd3Mtc2RrL2NvcmUvaHR0cEF1dGhTY2hlbWVzXCI7XG5pbXBvcnQgeyBBd3NSZXN0SnNvblByb3RvY29sIH0gZnJvbSBcIkBhd3Mtc2RrL2NvcmUvcHJvdG9jb2xzXCI7XG5pbXBvcnQgeyBOb0F1dGhTaWduZXIgfSBmcm9tIFwiQHNtaXRoeS9jb3JlXCI7XG5pbXBvcnQgeyBOb09wTG9nZ2VyIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgcGFyc2VVcmwgfSBmcm9tIFwiQHNtaXRoeS91cmwtcGFyc2VyXCI7XG5pbXBvcnQgeyBmcm9tQmFzZTY0LCB0b0Jhc2U2NCB9IGZyb20gXCJAc21pdGh5L3V0aWwtYmFzZTY0XCI7XG5pbXBvcnQgeyBmcm9tVXRmOCwgdG9VdGY4IH0gZnJvbSBcIkBzbWl0aHkvdXRpbC11dGY4XCI7XG5pbXBvcnQgeyBkZWZhdWx0U2lnbmluSHR0cEF1dGhTY2hlbWVQcm92aWRlciB9IGZyb20gXCIuL2F1dGgvaHR0cEF1dGhTY2hlbWVQcm92aWRlclwiO1xuaW1wb3J0IHsgZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIgfSBmcm9tIFwiLi9lbmRwb2ludC9lbmRwb2ludFJlc29sdmVyXCI7XG5pbXBvcnQgeyBlcnJvclR5cGVSZWdpc3RyaWVzIH0gZnJvbSBcIi4vc2NoZW1hcy9zY2hlbWFzXzBcIjtcbmV4cG9ydCBjb25zdCBnZXRSdW50aW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIGFwaVZlcnNpb246IFwiMjAyMy0wMS0wMVwiLFxuICAgICAgICBiYXNlNjREZWNvZGVyOiBjb25maWc/LmJhc2U2NERlY29kZXIgPz8gZnJvbUJhc2U2NCxcbiAgICAgICAgYmFzZTY0RW5jb2RlcjogY29uZmlnPy5iYXNlNjRFbmNvZGVyID8/IHRvQmFzZTY0LFxuICAgICAgICBkaXNhYmxlSG9zdFByZWZpeDogY29uZmlnPy5kaXNhYmxlSG9zdFByZWZpeCA/PyBmYWxzZSxcbiAgICAgICAgZW5kcG9pbnRQcm92aWRlcjogY29uZmlnPy5lbmRwb2ludFByb3ZpZGVyID8/IGRlZmF1bHRFbmRwb2ludFJlc29sdmVyLFxuICAgICAgICBleHRlbnNpb25zOiBjb25maWc/LmV4dGVuc2lvbnMgPz8gW10sXG4gICAgICAgIGh0dHBBdXRoU2NoZW1lUHJvdmlkZXI6IGNvbmZpZz8uaHR0cEF1dGhTY2hlbWVQcm92aWRlciA/PyBkZWZhdWx0U2lnbmluSHR0cEF1dGhTY2hlbWVQcm92aWRlcixcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVzOiBjb25maWc/Lmh0dHBBdXRoU2NoZW1lcyA/PyBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgc2NoZW1lSWQ6IFwiYXdzLmF1dGgjc2lndjRcIixcbiAgICAgICAgICAgICAgICBpZGVudGl0eVByb3ZpZGVyOiAoaXBjKSA9PiBpcGMuZ2V0SWRlbnRpdHlQcm92aWRlcihcImF3cy5hdXRoI3NpZ3Y0XCIpLFxuICAgICAgICAgICAgICAgIHNpZ25lcjogbmV3IEF3c1Nka1NpZ1Y0U2lnbmVyKCksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHNjaGVtZUlkOiBcInNtaXRoeS5hcGkjbm9BdXRoXCIsXG4gICAgICAgICAgICAgICAgaWRlbnRpdHlQcm92aWRlcjogKGlwYykgPT4gaXBjLmdldElkZW50aXR5UHJvdmlkZXIoXCJzbWl0aHkuYXBpI25vQXV0aFwiKSB8fCAoYXN5bmMgKCkgPT4gKHt9KSksXG4gICAgICAgICAgICAgICAgc2lnbmVyOiBuZXcgTm9BdXRoU2lnbmVyKCksXG4gICAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBsb2dnZXI6IGNvbmZpZz8ubG9nZ2VyID8/IG5ldyBOb09wTG9nZ2VyKCksXG4gICAgICAgIHByb3RvY29sOiBjb25maWc/LnByb3RvY29sID8/IEF3c1Jlc3RKc29uUHJvdG9jb2wsXG4gICAgICAgIHByb3RvY29sU2V0dGluZ3M6IGNvbmZpZz8ucHJvdG9jb2xTZXR0aW5ncyA/PyB7XG4gICAgICAgICAgICBkZWZhdWx0TmFtZXNwYWNlOiBcImNvbS5hbWF6b25hd3Muc2lnbmluXCIsXG4gICAgICAgICAgICBlcnJvclR5cGVSZWdpc3RyaWVzLFxuICAgICAgICAgICAgdmVyc2lvbjogXCIyMDIzLTAxLTAxXCIsXG4gICAgICAgICAgICBzZXJ2aWNlVGFyZ2V0OiBcIlNpZ25pblwiLFxuICAgICAgICB9LFxuICAgICAgICBzZXJ2aWNlSWQ6IGNvbmZpZz8uc2VydmljZUlkID8/IFwiU2lnbmluXCIsXG4gICAgICAgIHVybFBhcnNlcjogY29uZmlnPy51cmxQYXJzZXIgPz8gcGFyc2VVcmwsXG4gICAgICAgIHV0ZjhEZWNvZGVyOiBjb25maWc/LnV0ZjhEZWNvZGVyID8/IGZyb21VdGY4LFxuICAgICAgICB1dGY4RW5jb2RlcjogY29uZmlnPy51dGY4RW5jb2RlciA/PyB0b1V0ZjgsXG4gICAgfTtcbn07XG4iLCAiaW1wb3J0IHBhY2thZ2VJbmZvIGZyb20gXCIuLi8uLi8uLi9wYWNrYWdlLmpzb25cIjtcbmltcG9ydCB7IGVtaXRXYXJuaW5nSWZVbnN1cHBvcnRlZFZlcnNpb24gYXMgYXdzQ2hlY2tWZXJzaW9uIH0gZnJvbSBcIkBhd3Mtc2RrL2NvcmUvY2xpZW50XCI7XG5pbXBvcnQgeyBOT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfT1BUSU9OUyB9IGZyb20gXCJAYXdzLXNkay9jb3JlL2h0dHBBdXRoU2NoZW1lc1wiO1xuaW1wb3J0IHsgY3JlYXRlRGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyLCBOT0RFX0FQUF9JRF9DT05GSUdfT1BUSU9OUyB9IGZyb20gXCJAYXdzLXNkay91dGlsLXVzZXItYWdlbnQtbm9kZVwiO1xuaW1wb3J0IHsgTk9ERV9SRUdJT05fQ09ORklHX0ZJTEVfT1BUSU9OUywgTk9ERV9SRUdJT05fQ09ORklHX09QVElPTlMsIE5PREVfVVNFX0RVQUxTVEFDS19FTkRQT0lOVF9DT05GSUdfT1BUSU9OUywgTk9ERV9VU0VfRklQU19FTkRQT0lOVF9DT05GSUdfT1BUSU9OUywgfSBmcm9tIFwiQHNtaXRoeS9jb25maWctcmVzb2x2ZXJcIjtcbmltcG9ydCB7IEhhc2ggfSBmcm9tIFwiQHNtaXRoeS9oYXNoLW5vZGVcIjtcbmltcG9ydCB7IE5PREVfTUFYX0FUVEVNUFRfQ09ORklHX09QVElPTlMsIE5PREVfUkVUUllfTU9ERV9DT05GSUdfT1BUSU9OUyB9IGZyb20gXCJAc21pdGh5L21pZGRsZXdhcmUtcmV0cnlcIjtcbmltcG9ydCB7IGxvYWRDb25maWcgYXMgbG9hZE5vZGVDb25maWcgfSBmcm9tIFwiQHNtaXRoeS9ub2RlLWNvbmZpZy1wcm92aWRlclwiO1xuaW1wb3J0IHsgTm9kZUh0dHBIYW5kbGVyIGFzIFJlcXVlc3RIYW5kbGVyLCBzdHJlYW1Db2xsZWN0b3IgfSBmcm9tIFwiQHNtaXRoeS9ub2RlLWh0dHAtaGFuZGxlclwiO1xuaW1wb3J0IHsgZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbiwgbG9hZENvbmZpZ3NGb3JEZWZhdWx0TW9kZSB9IGZyb20gXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjtcbmltcG9ydCB7IGNhbGN1bGF0ZUJvZHlMZW5ndGggfSBmcm9tIFwiQHNtaXRoeS91dGlsLWJvZHktbGVuZ3RoLW5vZGVcIjtcbmltcG9ydCB7IHJlc29sdmVEZWZhdWx0c01vZGVDb25maWcgfSBmcm9tIFwiQHNtaXRoeS91dGlsLWRlZmF1bHRzLW1vZGUtbm9kZVwiO1xuaW1wb3J0IHsgREVGQVVMVF9SRVRSWV9NT0RFIH0gZnJvbSBcIkBzbWl0aHkvdXRpbC1yZXRyeVwiO1xuaW1wb3J0IHsgZ2V0UnVudGltZUNvbmZpZyBhcyBnZXRTaGFyZWRSdW50aW1lQ29uZmlnIH0gZnJvbSBcIi4vcnVudGltZUNvbmZpZy5zaGFyZWRcIjtcbmV4cG9ydCBjb25zdCBnZXRSdW50aW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIGVtaXRXYXJuaW5nSWZVbnN1cHBvcnRlZFZlcnNpb24ocHJvY2Vzcy52ZXJzaW9uKTtcbiAgICBjb25zdCBkZWZhdWx0c01vZGUgPSByZXNvbHZlRGVmYXVsdHNNb2RlQ29uZmlnKGNvbmZpZyk7XG4gICAgY29uc3QgZGVmYXVsdENvbmZpZ1Byb3ZpZGVyID0gKCkgPT4gZGVmYXVsdHNNb2RlKCkudGhlbihsb2FkQ29uZmlnc0ZvckRlZmF1bHRNb2RlKTtcbiAgICBjb25zdCBjbGllbnRTaGFyZWRWYWx1ZXMgPSBnZXRTaGFyZWRSdW50aW1lQ29uZmlnKGNvbmZpZyk7XG4gICAgYXdzQ2hlY2tWZXJzaW9uKHByb2Nlc3MudmVyc2lvbik7XG4gICAgY29uc3QgbG9hZGVyQ29uZmlnID0ge1xuICAgICAgICBwcm9maWxlOiBjb25maWc/LnByb2ZpbGUsXG4gICAgICAgIGxvZ2dlcjogY2xpZW50U2hhcmVkVmFsdWVzLmxvZ2dlcixcbiAgICB9O1xuICAgIHJldHVybiB7XG4gICAgICAgIC4uLmNsaWVudFNoYXJlZFZhbHVlcyxcbiAgICAgICAgLi4uY29uZmlnLFxuICAgICAgICBydW50aW1lOiBcIm5vZGVcIixcbiAgICAgICAgZGVmYXVsdHNNb2RlLFxuICAgICAgICBhdXRoU2NoZW1lUHJlZmVyZW5jZTogY29uZmlnPy5hdXRoU2NoZW1lUHJlZmVyZW5jZSA/PyBsb2FkTm9kZUNvbmZpZyhOT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfT1BUSU9OUywgbG9hZGVyQ29uZmlnKSxcbiAgICAgICAgYm9keUxlbmd0aENoZWNrZXI6IGNvbmZpZz8uYm9keUxlbmd0aENoZWNrZXIgPz8gY2FsY3VsYXRlQm9keUxlbmd0aCxcbiAgICAgICAgZGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyOiBjb25maWc/LmRlZmF1bHRVc2VyQWdlbnRQcm92aWRlciA/P1xuICAgICAgICAgICAgY3JlYXRlRGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyKHsgc2VydmljZUlkOiBjbGllbnRTaGFyZWRWYWx1ZXMuc2VydmljZUlkLCBjbGllbnRWZXJzaW9uOiBwYWNrYWdlSW5mby52ZXJzaW9uIH0pLFxuICAgICAgICBtYXhBdHRlbXB0czogY29uZmlnPy5tYXhBdHRlbXB0cyA/PyBsb2FkTm9kZUNvbmZpZyhOT0RFX01BWF9BVFRFTVBUX0NPTkZJR19PUFRJT05TLCBjb25maWcpLFxuICAgICAgICByZWdpb246IGNvbmZpZz8ucmVnaW9uID8/XG4gICAgICAgICAgICBsb2FkTm9kZUNvbmZpZyhOT0RFX1JFR0lPTl9DT05GSUdfT1BUSU9OUywgeyAuLi5OT0RFX1JFR0lPTl9DT05GSUdfRklMRV9PUFRJT05TLCAuLi5sb2FkZXJDb25maWcgfSksXG4gICAgICAgIHJlcXVlc3RIYW5kbGVyOiBSZXF1ZXN0SGFuZGxlci5jcmVhdGUoY29uZmlnPy5yZXF1ZXN0SGFuZGxlciA/PyBkZWZhdWx0Q29uZmlnUHJvdmlkZXIpLFxuICAgICAgICByZXRyeU1vZGU6IGNvbmZpZz8ucmV0cnlNb2RlID8/XG4gICAgICAgICAgICBsb2FkTm9kZUNvbmZpZyh7XG4gICAgICAgICAgICAgICAgLi4uTk9ERV9SRVRSWV9NT0RFX0NPTkZJR19PUFRJT05TLFxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IGFzeW5jICgpID0+IChhd2FpdCBkZWZhdWx0Q29uZmlnUHJvdmlkZXIoKSkucmV0cnlNb2RlIHx8IERFRkFVTFRfUkVUUllfTU9ERSxcbiAgICAgICAgICAgIH0sIGNvbmZpZyksXG4gICAgICAgIHNoYTI1NjogY29uZmlnPy5zaGEyNTYgPz8gSGFzaC5iaW5kKG51bGwsIFwic2hhMjU2XCIpLFxuICAgICAgICBzdHJlYW1Db2xsZWN0b3I6IGNvbmZpZz8uc3RyZWFtQ29sbGVjdG9yID8/IHN0cmVhbUNvbGxlY3RvcixcbiAgICAgICAgdXNlRHVhbHN0YWNrRW5kcG9pbnQ6IGNvbmZpZz8udXNlRHVhbHN0YWNrRW5kcG9pbnQgPz8gbG9hZE5vZGVDb25maWcoTk9ERV9VU0VfRFVBTFNUQUNLX0VORFBPSU5UX0NPTkZJR19PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgICAgICB1c2VGaXBzRW5kcG9pbnQ6IGNvbmZpZz8udXNlRmlwc0VuZHBvaW50ID8/IGxvYWROb2RlQ29uZmlnKE5PREVfVVNFX0ZJUFNfRU5EUE9JTlRfQ09ORklHX09QVElPTlMsIGxvYWRlckNvbmZpZyksXG4gICAgICAgIHVzZXJBZ2VudEFwcElkOiBjb25maWc/LnVzZXJBZ2VudEFwcElkID8/IGxvYWROb2RlQ29uZmlnKE5PREVfQVBQX0lEX0NPTkZJR19PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgIH07XG59O1xuIiwgImV4cG9ydCBjb25zdCBnZXRIdHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24gPSAocnVudGltZUNvbmZpZykgPT4ge1xuICAgIGNvbnN0IF9odHRwQXV0aFNjaGVtZXMgPSBydW50aW1lQ29uZmlnLmh0dHBBdXRoU2NoZW1lcztcbiAgICBsZXQgX2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSBydW50aW1lQ29uZmlnLmh0dHBBdXRoU2NoZW1lUHJvdmlkZXI7XG4gICAgbGV0IF9jcmVkZW50aWFscyA9IHJ1bnRpbWVDb25maWcuY3JlZGVudGlhbHM7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc2V0SHR0cEF1dGhTY2hlbWUoaHR0cEF1dGhTY2hlbWUpIHtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gX2h0dHBBdXRoU2NoZW1lcy5maW5kSW5kZXgoKHNjaGVtZSkgPT4gc2NoZW1lLnNjaGVtZUlkID09PSBodHRwQXV0aFNjaGVtZS5zY2hlbWVJZCk7XG4gICAgICAgICAgICBpZiAoaW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgX2h0dHBBdXRoU2NoZW1lcy5wdXNoKGh0dHBBdXRoU2NoZW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIF9odHRwQXV0aFNjaGVtZXMuc3BsaWNlKGluZGV4LCAxLCBodHRwQXV0aFNjaGVtZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGh0dHBBdXRoU2NoZW1lcygpIHtcbiAgICAgICAgICAgIHJldHVybiBfaHR0cEF1dGhTY2hlbWVzO1xuICAgICAgICB9LFxuICAgICAgICBzZXRIdHRwQXV0aFNjaGVtZVByb3ZpZGVyKGh0dHBBdXRoU2NoZW1lUHJvdmlkZXIpIHtcbiAgICAgICAgICAgIF9odHRwQXV0aFNjaGVtZVByb3ZpZGVyID0gaHR0cEF1dGhTY2hlbWVQcm92aWRlcjtcbiAgICAgICAgfSxcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVQcm92aWRlcigpIHtcbiAgICAgICAgICAgIHJldHVybiBfaHR0cEF1dGhTY2hlbWVQcm92aWRlcjtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0Q3JlZGVudGlhbHMoY3JlZGVudGlhbHMpIHtcbiAgICAgICAgICAgIF9jcmVkZW50aWFscyA9IGNyZWRlbnRpYWxzO1xuICAgICAgICB9LFxuICAgICAgICBjcmVkZW50aWFscygpIHtcbiAgICAgICAgICAgIHJldHVybiBfY3JlZGVudGlhbHM7XG4gICAgICAgIH0sXG4gICAgfTtcbn07XG5leHBvcnQgY29uc3QgcmVzb2x2ZUh0dHBBdXRoUnVudGltZUNvbmZpZyA9IChjb25maWcpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgICBodHRwQXV0aFNjaGVtZXM6IGNvbmZpZy5odHRwQXV0aFNjaGVtZXMoKSxcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVQcm92aWRlcjogY29uZmlnLmh0dHBBdXRoU2NoZW1lUHJvdmlkZXIoKSxcbiAgICAgICAgY3JlZGVudGlhbHM6IGNvbmZpZy5jcmVkZW50aWFscygpLFxuICAgIH07XG59O1xuIiwgImltcG9ydCB7IGdldEF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24sIHJlc29sdmVBd3NSZWdpb25FeHRlbnNpb25Db25maWd1cmF0aW9uLCB9IGZyb20gXCJAYXdzLXNkay9yZWdpb24tY29uZmlnLXJlc29sdmVyXCI7XG5pbXBvcnQgeyBnZXRIdHRwSGFuZGxlckV4dGVuc2lvbkNvbmZpZ3VyYXRpb24sIHJlc29sdmVIdHRwSGFuZGxlclJ1bnRpbWVDb25maWcgfSBmcm9tIFwiQHNtaXRoeS9wcm90b2NvbC1odHRwXCI7XG5pbXBvcnQgeyBnZXREZWZhdWx0RXh0ZW5zaW9uQ29uZmlndXJhdGlvbiwgcmVzb2x2ZURlZmF1bHRSdW50aW1lQ29uZmlnIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgZ2V0SHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uLCByZXNvbHZlSHR0cEF1dGhSdW50aW1lQ29uZmlnIH0gZnJvbSBcIi4vYXV0aC9odHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb25cIjtcbmV4cG9ydCBjb25zdCByZXNvbHZlUnVudGltZUV4dGVuc2lvbnMgPSAocnVudGltZUNvbmZpZywgZXh0ZW5zaW9ucykgPT4ge1xuICAgIGNvbnN0IGV4dGVuc2lvbkNvbmZpZ3VyYXRpb24gPSBPYmplY3QuYXNzaWduKGdldEF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24ocnVudGltZUNvbmZpZyksIGdldERlZmF1bHRFeHRlbnNpb25Db25maWd1cmF0aW9uKHJ1bnRpbWVDb25maWcpLCBnZXRIdHRwSGFuZGxlckV4dGVuc2lvbkNvbmZpZ3VyYXRpb24ocnVudGltZUNvbmZpZyksIGdldEh0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbihydW50aW1lQ29uZmlnKSk7XG4gICAgZXh0ZW5zaW9ucy5mb3JFYWNoKChleHRlbnNpb24pID0+IGV4dGVuc2lvbi5jb25maWd1cmUoZXh0ZW5zaW9uQ29uZmlndXJhdGlvbikpO1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHJ1bnRpbWVDb25maWcsIHJlc29sdmVBd3NSZWdpb25FeHRlbnNpb25Db25maWd1cmF0aW9uKGV4dGVuc2lvbkNvbmZpZ3VyYXRpb24pLCByZXNvbHZlRGVmYXVsdFJ1bnRpbWVDb25maWcoZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiksIHJlc29sdmVIdHRwSGFuZGxlclJ1bnRpbWVDb25maWcoZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiksIHJlc29sdmVIdHRwQXV0aFJ1bnRpbWVDb25maWcoZXh0ZW5zaW9uQ29uZmlndXJhdGlvbikpO1xufTtcbiIsICJpbXBvcnQgeyBnZXRIb3N0SGVhZGVyUGx1Z2luLCByZXNvbHZlSG9zdEhlYWRlckNvbmZpZywgfSBmcm9tIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1ob3N0LWhlYWRlclwiO1xuaW1wb3J0IHsgZ2V0TG9nZ2VyUGx1Z2luIH0gZnJvbSBcIkBhd3Mtc2RrL21pZGRsZXdhcmUtbG9nZ2VyXCI7XG5pbXBvcnQgeyBnZXRSZWN1cnNpb25EZXRlY3Rpb25QbHVnaW4gfSBmcm9tIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1yZWN1cnNpb24tZGV0ZWN0aW9uXCI7XG5pbXBvcnQgeyBnZXRVc2VyQWdlbnRQbHVnaW4sIHJlc29sdmVVc2VyQWdlbnRDb25maWcsIH0gZnJvbSBcIkBhd3Mtc2RrL21pZGRsZXdhcmUtdXNlci1hZ2VudFwiO1xuaW1wb3J0IHsgcmVzb2x2ZVJlZ2lvbkNvbmZpZyB9IGZyb20gXCJAc21pdGh5L2NvbmZpZy1yZXNvbHZlclwiO1xuaW1wb3J0IHsgRGVmYXVsdElkZW50aXR5UHJvdmlkZXJDb25maWcsIGdldEh0dHBBdXRoU2NoZW1lRW5kcG9pbnRSdWxlU2V0UGx1Z2luLCBnZXRIdHRwU2lnbmluZ1BsdWdpbiwgfSBmcm9tIFwiQHNtaXRoeS9jb3JlXCI7XG5pbXBvcnQgeyBnZXRTY2hlbWFTZXJkZVBsdWdpbiB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2NoZW1hXCI7XG5pbXBvcnQgeyBnZXRDb250ZW50TGVuZ3RoUGx1Z2luIH0gZnJvbSBcIkBzbWl0aHkvbWlkZGxld2FyZS1jb250ZW50LWxlbmd0aFwiO1xuaW1wb3J0IHsgcmVzb2x2ZUVuZHBvaW50Q29uZmlnLCB9IGZyb20gXCJAc21pdGh5L21pZGRsZXdhcmUtZW5kcG9pbnRcIjtcbmltcG9ydCB7IGdldFJldHJ5UGx1Z2luLCByZXNvbHZlUmV0cnlDb25maWcsIH0gZnJvbSBcIkBzbWl0aHkvbWlkZGxld2FyZS1yZXRyeVwiO1xuaW1wb3J0IHsgQ2xpZW50IGFzIF9fQ2xpZW50LCB9IGZyb20gXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjtcbmltcG9ydCB7IGRlZmF1bHRTaWduaW5IdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlciwgcmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnLCB9IGZyb20gXCIuL2F1dGgvaHR0cEF1dGhTY2hlbWVQcm92aWRlclwiO1xuaW1wb3J0IHsgcmVzb2x2ZUNsaWVudEVuZHBvaW50UGFyYW1ldGVycywgfSBmcm9tIFwiLi9lbmRwb2ludC9FbmRwb2ludFBhcmFtZXRlcnNcIjtcbmltcG9ydCB7IGdldFJ1bnRpbWVDb25maWcgYXMgX19nZXRSdW50aW1lQ29uZmlnIH0gZnJvbSBcIi4vcnVudGltZUNvbmZpZ1wiO1xuaW1wb3J0IHsgcmVzb2x2ZVJ1bnRpbWVFeHRlbnNpb25zIH0gZnJvbSBcIi4vcnVudGltZUV4dGVuc2lvbnNcIjtcbmV4cG9ydCB7IF9fQ2xpZW50IH07XG5leHBvcnQgY2xhc3MgU2lnbmluQ2xpZW50IGV4dGVuZHMgX19DbGllbnQge1xuICAgIGNvbmZpZztcbiAgICBjb25zdHJ1Y3RvciguLi5bY29uZmlndXJhdGlvbl0pIHtcbiAgICAgICAgY29uc3QgX2NvbmZpZ18wID0gX19nZXRSdW50aW1lQ29uZmlnKGNvbmZpZ3VyYXRpb24gfHwge30pO1xuICAgICAgICBzdXBlcihfY29uZmlnXzApO1xuICAgICAgICB0aGlzLmluaXRDb25maWcgPSBfY29uZmlnXzA7XG4gICAgICAgIGNvbnN0IF9jb25maWdfMSA9IHJlc29sdmVDbGllbnRFbmRwb2ludFBhcmFtZXRlcnMoX2NvbmZpZ18wKTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ18yID0gcmVzb2x2ZVVzZXJBZ2VudENvbmZpZyhfY29uZmlnXzEpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzMgPSByZXNvbHZlUmV0cnlDb25maWcoX2NvbmZpZ18yKTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ180ID0gcmVzb2x2ZVJlZ2lvbkNvbmZpZyhfY29uZmlnXzMpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzUgPSByZXNvbHZlSG9zdEhlYWRlckNvbmZpZyhfY29uZmlnXzQpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzYgPSByZXNvbHZlRW5kcG9pbnRDb25maWcoX2NvbmZpZ181KTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ183ID0gcmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnKF9jb25maWdfNik7XG4gICAgICAgIGNvbnN0IF9jb25maWdfOCA9IHJlc29sdmVSdW50aW1lRXh0ZW5zaW9ucyhfY29uZmlnXzcsIGNvbmZpZ3VyYXRpb24/LmV4dGVuc2lvbnMgfHwgW10pO1xuICAgICAgICB0aGlzLmNvbmZpZyA9IF9jb25maWdfODtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGdldFNjaGVtYVNlcmRlUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShnZXRVc2VyQWdlbnRQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGdldFJldHJ5UGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShnZXRDb250ZW50TGVuZ3RoUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShnZXRIb3N0SGVhZGVyUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShnZXRMb2dnZXJQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGdldFJlY3Vyc2lvbkRldGVjdGlvblBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoZ2V0SHR0cEF1dGhTY2hlbWVFbmRwb2ludFJ1bGVTZXRQbHVnaW4odGhpcy5jb25maWcsIHtcbiAgICAgICAgICAgIGh0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyOiBkZWZhdWx0U2lnbmluSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIsXG4gICAgICAgICAgICBpZGVudGl0eVByb3ZpZGVyQ29uZmlnUHJvdmlkZXI6IGFzeW5jIChjb25maWcpID0+IG5ldyBEZWZhdWx0SWRlbnRpdHlQcm92aWRlckNvbmZpZyh7XG4gICAgICAgICAgICAgICAgXCJhd3MuYXV0aCNzaWd2NFwiOiBjb25maWcuY3JlZGVudGlhbHMsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgfSkpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoZ2V0SHR0cFNpZ25pbmdQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICB9XG4gICAgZGVzdHJveSgpIHtcbiAgICAgICAgc3VwZXIuZGVzdHJveSgpO1xuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBnZXRFbmRwb2ludFBsdWdpbiB9IGZyb20gXCJAc21pdGh5L21pZGRsZXdhcmUtZW5kcG9pbnRcIjtcbmltcG9ydCB7IENvbW1hbmQgYXMgJENvbW1hbmQgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyBjb21tb25QYXJhbXMgfSBmcm9tIFwiLi4vZW5kcG9pbnQvRW5kcG9pbnRQYXJhbWV0ZXJzXCI7XG5pbXBvcnQgeyBDcmVhdGVPQXV0aDJUb2tlbiQgfSBmcm9tIFwiLi4vc2NoZW1hcy9zY2hlbWFzXzBcIjtcbmV4cG9ydCB7ICRDb21tYW5kIH07XG5leHBvcnQgY2xhc3MgQ3JlYXRlT0F1dGgyVG9rZW5Db21tYW5kIGV4dGVuZHMgJENvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFtnZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIlNpZ25pblwiLCBcIkNyZWF0ZU9BdXRoMlRva2VuXCIsIHt9KVxuICAgIC5uKFwiU2lnbmluQ2xpZW50XCIsIFwiQ3JlYXRlT0F1dGgyVG9rZW5Db21tYW5kXCIpXG4gICAgLnNjKENyZWF0ZU9BdXRoMlRva2VuJClcbiAgICAuYnVpbGQoKSB7XG59XG4iLCAiaW1wb3J0IHsgY3JlYXRlQWdncmVnYXRlZENsaWVudCB9IGZyb20gXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjtcbmltcG9ydCB7IENyZWF0ZU9BdXRoMlRva2VuQ29tbWFuZCwgfSBmcm9tIFwiLi9jb21tYW5kcy9DcmVhdGVPQXV0aDJUb2tlbkNvbW1hbmRcIjtcbmltcG9ydCB7IFNpZ25pbkNsaWVudCB9IGZyb20gXCIuL1NpZ25pbkNsaWVudFwiO1xuY29uc3QgY29tbWFuZHMgPSB7XG4gICAgQ3JlYXRlT0F1dGgyVG9rZW5Db21tYW5kLFxufTtcbmV4cG9ydCBjbGFzcyBTaWduaW4gZXh0ZW5kcyBTaWduaW5DbGllbnQge1xufVxuY3JlYXRlQWdncmVnYXRlZENsaWVudChjb21tYW5kcywgU2lnbmluKTtcbiIsICJleHBvcnQgKiBmcm9tIFwiLi9DcmVhdGVPQXV0aDJUb2tlbkNvbW1hbmRcIjtcbiIsICJleHBvcnQgY29uc3QgT0F1dGgyRXJyb3JDb2RlID0ge1xuICAgIEFVVEhDT0RFX0VYUElSRUQ6IFwiQVVUSENPREVfRVhQSVJFRFwiLFxuICAgIElOU1VGRklDSUVOVF9QRVJNSVNTSU9OUzogXCJJTlNVRkZJQ0lFTlRfUEVSTUlTU0lPTlNcIixcbiAgICBJTlZBTElEX1JFUVVFU1Q6IFwiSU5WQUxJRF9SRVFVRVNUXCIsXG4gICAgU0VSVkVSX0VSUk9SOiBcInNlcnZlcl9lcnJvclwiLFxuICAgIFRPS0VOX0VYUElSRUQ6IFwiVE9LRU5fRVhQSVJFRFwiLFxuICAgIFVTRVJfQ1JFREVOVElBTFNfQ0hBTkdFRDogXCJVU0VSX0NSRURFTlRJQUxTX0NIQU5HRURcIixcbn07XG4iLCAiZXhwb3J0IHt9O1xuIiwgImV4cG9ydCAqIGZyb20gXCIuL1NpZ25pbkNsaWVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vU2lnbmluXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21tYW5kc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vc2NoZW1hcy9zY2hlbWFzXzBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21vZGVscy9lbnVtc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWxzL2Vycm9yc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWxzL21vZGVsc18wXCI7XG5leHBvcnQgeyBTaWduaW5TZXJ2aWNlRXhjZXB0aW9uIH0gZnJvbSBcIi4vbW9kZWxzL1NpZ25pblNlcnZpY2VFeGNlcHRpb25cIjtcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBjbGllbnQgPSByZXF1aXJlKCdAYXdzLXNkay9jb3JlL2NsaWVudCcpO1xudmFyIHByb3BlcnR5UHJvdmlkZXIgPSByZXF1aXJlKCdAc21pdGh5L3Byb3BlcnR5LXByb3ZpZGVyJyk7XG52YXIgc2hhcmVkSW5pRmlsZUxvYWRlciA9IHJlcXVpcmUoJ0BzbWl0aHkvc2hhcmVkLWluaS1maWxlLWxvYWRlcicpO1xudmFyIHByb3RvY29sSHR0cCA9IHJlcXVpcmUoJ0BzbWl0aHkvcHJvdG9jb2wtaHR0cCcpO1xudmFyIG5vZGVfY3J5cHRvID0gcmVxdWlyZSgnbm9kZTpjcnlwdG8nKTtcbnZhciBub2RlX2ZzID0gcmVxdWlyZSgnbm9kZTpmcycpO1xudmFyIG5vZGVfb3MgPSByZXF1aXJlKCdub2RlOm9zJyk7XG52YXIgbm9kZV9wYXRoID0gcmVxdWlyZSgnbm9kZTpwYXRoJyk7XG5cbmNsYXNzIExvZ2luQ3JlZGVudGlhbHNGZXRjaGVyIHtcbiAgICBwcm9maWxlRGF0YTtcbiAgICBpbml0O1xuICAgIGNhbGxlckNsaWVudENvbmZpZztcbiAgICBzdGF0aWMgUkVGUkVTSF9USFJFU0hPTEQgPSA1ICogNjAgKiAxMDAwO1xuICAgIGNvbnN0cnVjdG9yKHByb2ZpbGVEYXRhLCBpbml0LCBjYWxsZXJDbGllbnRDb25maWcpIHtcbiAgICAgICAgdGhpcy5wcm9maWxlRGF0YSA9IHByb2ZpbGVEYXRhO1xuICAgICAgICB0aGlzLmluaXQgPSBpbml0O1xuICAgICAgICB0aGlzLmNhbGxlckNsaWVudENvbmZpZyA9IGNhbGxlckNsaWVudENvbmZpZztcbiAgICB9XG4gICAgYXN5bmMgbG9hZENyZWRlbnRpYWxzKCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IGF3YWl0IHRoaXMubG9hZFRva2VuKCk7XG4gICAgICAgIGlmICghdG9rZW4pIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLkNyZWRlbnRpYWxzUHJvdmlkZXJFcnJvcihgRmFpbGVkIHRvIGxvYWQgYSB0b2tlbiBmb3Igc2Vzc2lvbiAke3RoaXMubG9naW5TZXNzaW9ufSwgcGxlYXNlIHJlLWF1dGhlbnRpY2F0ZSB1c2luZyBhd3MgbG9naW5gLCB7IHRyeU5leHRMaW5rOiBmYWxzZSwgbG9nZ2VyOiB0aGlzLmxvZ2dlciB9KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhY2Nlc3NUb2tlbiA9IHRva2VuLmFjY2Vzc1Rva2VuO1xuICAgICAgICBjb25zdCBub3cgPSBEYXRlLm5vdygpO1xuICAgICAgICBjb25zdCBleHBpcnlUaW1lID0gbmV3IERhdGUoYWNjZXNzVG9rZW4uZXhwaXJlc0F0KS5nZXRUaW1lKCk7XG4gICAgICAgIGNvbnN0IHRpbWVVbnRpbEV4cGlyeSA9IGV4cGlyeVRpbWUgLSBub3c7XG4gICAgICAgIGlmICh0aW1lVW50aWxFeHBpcnkgPD0gTG9naW5DcmVkZW50aWFsc0ZldGNoZXIuUkVGUkVTSF9USFJFU0hPTEQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnJlZnJlc2godG9rZW4pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBhY2Nlc3NLZXlJZDogYWNjZXNzVG9rZW4uYWNjZXNzS2V5SWQsXG4gICAgICAgICAgICBzZWNyZXRBY2Nlc3NLZXk6IGFjY2Vzc1Rva2VuLnNlY3JldEFjY2Vzc0tleSxcbiAgICAgICAgICAgIHNlc3Npb25Ub2tlbjogYWNjZXNzVG9rZW4uc2Vzc2lvblRva2VuLFxuICAgICAgICAgICAgYWNjb3VudElkOiBhY2Nlc3NUb2tlbi5hY2NvdW50SWQsXG4gICAgICAgICAgICBleHBpcmF0aW9uOiBuZXcgRGF0ZShhY2Nlc3NUb2tlbi5leHBpcmVzQXQpLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBnZXQgbG9nZ2VyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pbml0Py5sb2dnZXI7XG4gICAgfVxuICAgIGdldCBsb2dpblNlc3Npb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnByb2ZpbGVEYXRhLmxvZ2luX3Nlc3Npb247XG4gICAgfVxuICAgIGFzeW5jIHJlZnJlc2godG9rZW4pIHtcbiAgICAgICAgY29uc3QgeyBTaWduaW5DbGllbnQsIENyZWF0ZU9BdXRoMlRva2VuQ29tbWFuZCB9ID0gYXdhaXQgaW1wb3J0KCdAYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9zaWduaW4nKTtcbiAgICAgICAgY29uc3QgeyBsb2dnZXIsIHVzZXJBZ2VudEFwcElkIH0gPSB0aGlzLmNhbGxlckNsaWVudENvbmZpZyA/PyB7fTtcbiAgICAgICAgY29uc3QgaXNIMiA9IChyZXF1ZXN0SGFuZGxlcikgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3RIYW5kbGVyPy5tZXRhZGF0YT8uaGFuZGxlclByb3RvY29sID09PSBcImgyXCI7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHJlcXVlc3RIYW5kbGVyID0gaXNIMih0aGlzLmNhbGxlckNsaWVudENvbmZpZz8ucmVxdWVzdEhhbmRsZXIpXG4gICAgICAgICAgICA/IHVuZGVmaW5lZFxuICAgICAgICAgICAgOiB0aGlzLmNhbGxlckNsaWVudENvbmZpZz8ucmVxdWVzdEhhbmRsZXI7XG4gICAgICAgIGNvbnN0IHJlZ2lvbiA9IHRoaXMucHJvZmlsZURhdGEucmVnaW9uID8/IChhd2FpdCB0aGlzLmNhbGxlckNsaWVudENvbmZpZz8ucmVnaW9uPy4oKSkgPz8gcHJvY2Vzcy5lbnYuQVdTX1JFR0lPTjtcbiAgICAgICAgY29uc3QgY2xpZW50ID0gbmV3IFNpZ25pbkNsaWVudCh7XG4gICAgICAgICAgICBjcmVkZW50aWFsczoge1xuICAgICAgICAgICAgICAgIGFjY2Vzc0tleUlkOiBcIlwiLFxuICAgICAgICAgICAgICAgIHNlY3JldEFjY2Vzc0tleTogXCJcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZWdpb24sXG4gICAgICAgICAgICByZXF1ZXN0SGFuZGxlcixcbiAgICAgICAgICAgIGxvZ2dlcixcbiAgICAgICAgICAgIHVzZXJBZ2VudEFwcElkLFxuICAgICAgICAgICAgLi4udGhpcy5pbml0Py5jbGllbnRDb25maWcsXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmNyZWF0ZURQb1BJbnRlcmNlcHRvcihjbGllbnQubWlkZGxld2FyZVN0YWNrKTtcbiAgICAgICAgY29uc3QgY29tbWFuZElucHV0ID0ge1xuICAgICAgICAgICAgdG9rZW5JbnB1dDoge1xuICAgICAgICAgICAgICAgIGNsaWVudElkOiB0b2tlbi5jbGllbnRJZCxcbiAgICAgICAgICAgICAgICByZWZyZXNoVG9rZW46IHRva2VuLnJlZnJlc2hUb2tlbixcbiAgICAgICAgICAgICAgICBncmFudFR5cGU6IFwicmVmcmVzaF90b2tlblwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LnNlbmQobmV3IENyZWF0ZU9BdXRoMlRva2VuQ29tbWFuZChjb21tYW5kSW5wdXQpKTtcbiAgICAgICAgICAgIGNvbnN0IHsgYWNjZXNzS2V5SWQsIHNlY3JldEFjY2Vzc0tleSwgc2Vzc2lvblRva2VuIH0gPSByZXNwb25zZS50b2tlbk91dHB1dD8uYWNjZXNzVG9rZW4gPz8ge307XG4gICAgICAgICAgICBjb25zdCB7IHJlZnJlc2hUb2tlbiwgZXhwaXJlc0luIH0gPSByZXNwb25zZS50b2tlbk91dHB1dCA/PyB7fTtcbiAgICAgICAgICAgIGlmICghYWNjZXNzS2V5SWQgfHwgIXNlY3JldEFjY2Vzc0tleSB8fCAhc2Vzc2lvblRva2VuIHx8ICFyZWZyZXNoVG9rZW4pIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoXCJUb2tlbiByZWZyZXNoIHJlc3BvbnNlIG1pc3NpbmcgcmVxdWlyZWQgZmllbGRzXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgbG9nZ2VyOiB0aGlzLmxvZ2dlcixcbiAgICAgICAgICAgICAgICAgICAgdHJ5TmV4dExpbms6IGZhbHNlLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgZXhwaXJlc0luTXMgPSAoZXhwaXJlc0luID8/IDkwMCkgKiAxMDAwO1xuICAgICAgICAgICAgY29uc3QgZXhwaXJhdGlvbiA9IG5ldyBEYXRlKERhdGUubm93KCkgKyBleHBpcmVzSW5Ncyk7XG4gICAgICAgICAgICBjb25zdCB1cGRhdGVkVG9rZW4gPSB7XG4gICAgICAgICAgICAgICAgLi4udG9rZW4sXG4gICAgICAgICAgICAgICAgYWNjZXNzVG9rZW46IHtcbiAgICAgICAgICAgICAgICAgICAgLi4udG9rZW4uYWNjZXNzVG9rZW4sXG4gICAgICAgICAgICAgICAgICAgIGFjY2Vzc0tleUlkOiBhY2Nlc3NLZXlJZCxcbiAgICAgICAgICAgICAgICAgICAgc2VjcmV0QWNjZXNzS2V5OiBzZWNyZXRBY2Nlc3NLZXksXG4gICAgICAgICAgICAgICAgICAgIHNlc3Npb25Ub2tlbjogc2Vzc2lvblRva2VuLFxuICAgICAgICAgICAgICAgICAgICBleHBpcmVzQXQ6IGV4cGlyYXRpb24udG9JU09TdHJpbmcoKSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHJlZnJlc2hUb2tlbjogcmVmcmVzaFRva2VuLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuc2F2ZVRva2VuKHVwZGF0ZWRUb2tlbik7XG4gICAgICAgICAgICBjb25zdCBuZXdBY2Nlc3NUb2tlbiA9IHVwZGF0ZWRUb2tlbi5hY2Nlc3NUb2tlbjtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgYWNjZXNzS2V5SWQ6IG5ld0FjY2Vzc1Rva2VuLmFjY2Vzc0tleUlkLFxuICAgICAgICAgICAgICAgIHNlY3JldEFjY2Vzc0tleTogbmV3QWNjZXNzVG9rZW4uc2VjcmV0QWNjZXNzS2V5LFxuICAgICAgICAgICAgICAgIHNlc3Npb25Ub2tlbjogbmV3QWNjZXNzVG9rZW4uc2Vzc2lvblRva2VuLFxuICAgICAgICAgICAgICAgIGFjY291bnRJZDogbmV3QWNjZXNzVG9rZW4uYWNjb3VudElkLFxuICAgICAgICAgICAgICAgIGV4cGlyYXRpb24sXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgaWYgKGVycm9yLm5hbWUgPT09IFwiQWNjZXNzRGVuaWVkRXhjZXB0aW9uXCIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBlcnJvclR5cGUgPSBlcnJvci5lcnJvcjtcbiAgICAgICAgICAgICAgICBsZXQgbWVzc2FnZTtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGVycm9yVHlwZSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIFwiVE9LRU5fRVhQSVJFRFwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9IFwiWW91ciBzZXNzaW9uIGhhcyBleHBpcmVkLiBQbGVhc2UgcmVhdXRoZW50aWNhdGUuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBcIlVTRVJfQ1JFREVOVElBTFNfQ0hBTkdFRFwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJVbmFibGUgdG8gcmVmcmVzaCBjcmVkZW50aWFscyBiZWNhdXNlIG9mIGEgY2hhbmdlIGluIHlvdXIgcGFzc3dvcmQuIFBsZWFzZSByZWF1dGhlbnRpY2F0ZSB3aXRoIHlvdXIgbmV3IHBhc3N3b3JkLlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgXCJJTlNVRkZJQ0lFTlRfUEVSTUlTU0lPTlNcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVW5hYmxlIHRvIHJlZnJlc2ggY3JlZGVudGlhbHMgZHVlIHRvIGluc3VmZmljaWVudCBwZXJtaXNzaW9ucy4gWW91IG1heSBiZSBtaXNzaW5nIHBlcm1pc3Npb24gZm9yIHRoZSAnQ3JlYXRlT0F1dGgyVG9rZW4nIGFjdGlvbi5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9IGBGYWlsZWQgdG8gcmVmcmVzaCB0b2tlbjogJHtTdHJpbmcoZXJyb3IpfS4gUGxlYXNlIHJlLWF1dGhlbnRpY2F0ZSB1c2luZyBcXGBhd3MgbG9naW5cXGBgO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IobWVzc2FnZSwgeyBsb2dnZXI6IHRoaXMubG9nZ2VyLCB0cnlOZXh0TGluazogZmFsc2UgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoYEZhaWxlZCB0byByZWZyZXNoIHRva2VuOiAke1N0cmluZyhlcnJvcil9LiBQbGVhc2UgcmUtYXV0aGVudGljYXRlIHVzaW5nIGF3cyBsb2dpbmAsIHsgbG9nZ2VyOiB0aGlzLmxvZ2dlciB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBhc3luYyBsb2FkVG9rZW4oKSB7XG4gICAgICAgIGNvbnN0IHRva2VuRmlsZVBhdGggPSB0aGlzLmdldFRva2VuRmlsZVBhdGgoKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGxldCB0b2tlbkRhdGE7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHRva2VuRGF0YSA9IGF3YWl0IHNoYXJlZEluaUZpbGVMb2FkZXIucmVhZEZpbGUodG9rZW5GaWxlUGF0aCwgeyBpZ25vcmVDYWNoZTogdGhpcy5pbml0Py5pZ25vcmVDYWNoZSB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIHtcbiAgICAgICAgICAgICAgICB0b2tlbkRhdGEgPSBhd2FpdCBub2RlX2ZzLnByb21pc2VzLnJlYWRGaWxlKHRva2VuRmlsZVBhdGgsIFwidXRmOFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHRva2VuID0gSlNPTi5wYXJzZSh0b2tlbkRhdGEpO1xuICAgICAgICAgICAgY29uc3QgbWlzc2luZ0ZpZWxkcyA9IFtcImFjY2Vzc1Rva2VuXCIsIFwiY2xpZW50SWRcIiwgXCJyZWZyZXNoVG9rZW5cIiwgXCJkcG9wS2V5XCJdLmZpbHRlcigoaykgPT4gIXRva2VuW2tdKTtcbiAgICAgICAgICAgIGlmICghdG9rZW4uYWNjZXNzVG9rZW4/LmFjY291bnRJZCkge1xuICAgICAgICAgICAgICAgIG1pc3NpbmdGaWVsZHMucHVzaChcImFjY291bnRJZFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChtaXNzaW5nRmllbGRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoYFRva2VuIHZhbGlkYXRpb24gZmFpbGVkLCBtaXNzaW5nIGZpZWxkczogJHttaXNzaW5nRmllbGRzLmpvaW4oXCIsIFwiKX1gLCB7XG4gICAgICAgICAgICAgICAgICAgIGxvZ2dlcjogdGhpcy5sb2dnZXIsXG4gICAgICAgICAgICAgICAgICAgIHRyeU5leHRMaW5rOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0b2tlbjtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLkNyZWRlbnRpYWxzUHJvdmlkZXJFcnJvcihgRmFpbGVkIHRvIGxvYWQgdG9rZW4gZnJvbSAke3Rva2VuRmlsZVBhdGh9OiAke1N0cmluZyhlcnJvcil9YCwge1xuICAgICAgICAgICAgICAgIGxvZ2dlcjogdGhpcy5sb2dnZXIsXG4gICAgICAgICAgICAgICAgdHJ5TmV4dExpbms6IGZhbHNlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgYXN5bmMgc2F2ZVRva2VuKHRva2VuKSB7XG4gICAgICAgIGNvbnN0IHRva2VuRmlsZVBhdGggPSB0aGlzLmdldFRva2VuRmlsZVBhdGgoKTtcbiAgICAgICAgY29uc3QgZGlyZWN0b3J5ID0gbm9kZV9wYXRoLmRpcm5hbWUodG9rZW5GaWxlUGF0aCk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhd2FpdCBub2RlX2ZzLnByb21pc2VzLm1rZGlyKGRpcmVjdG9yeSwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIH1cbiAgICAgICAgYXdhaXQgbm9kZV9mcy5wcm9taXNlcy53cml0ZUZpbGUodG9rZW5GaWxlUGF0aCwgSlNPTi5zdHJpbmdpZnkodG9rZW4sIG51bGwsIDIpLCBcInV0ZjhcIik7XG4gICAgfVxuICAgIGdldFRva2VuRmlsZVBhdGgoKSB7XG4gICAgICAgIGNvbnN0IGRpcmVjdG9yeSA9IHByb2Nlc3MuZW52LkFXU19MT0dJTl9DQUNIRV9ESVJFQ1RPUlkgPz8gbm9kZV9wYXRoLmpvaW4obm9kZV9vcy5ob21lZGlyKCksIFwiLmF3c1wiLCBcImxvZ2luXCIsIFwiY2FjaGVcIik7XG4gICAgICAgIGNvbnN0IGxvZ2luU2Vzc2lvbkJ5dGVzID0gQnVmZmVyLmZyb20odGhpcy5sb2dpblNlc3Npb24sIFwidXRmOFwiKTtcbiAgICAgICAgY29uc3QgbG9naW5TZXNzaW9uU2hhMjU2ID0gbm9kZV9jcnlwdG8uY3JlYXRlSGFzaChcInNoYTI1NlwiKS51cGRhdGUobG9naW5TZXNzaW9uQnl0ZXMpLmRpZ2VzdChcImhleFwiKTtcbiAgICAgICAgcmV0dXJuIG5vZGVfcGF0aC5qb2luKGRpcmVjdG9yeSwgYCR7bG9naW5TZXNzaW9uU2hhMjU2fS5qc29uYCk7XG4gICAgfVxuICAgIGRlclRvUmF3U2lnbmF0dXJlKGRlclNpZ25hdHVyZSkge1xuICAgICAgICBsZXQgb2Zmc2V0ID0gMjtcbiAgICAgICAgaWYgKGRlclNpZ25hdHVyZVtvZmZzZXRdICE9PSAweDAyKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIERFUiBzaWduYXR1cmVcIik7XG4gICAgICAgIH1cbiAgICAgICAgb2Zmc2V0Kys7XG4gICAgICAgIGNvbnN0IHJMZW5ndGggPSBkZXJTaWduYXR1cmVbb2Zmc2V0KytdO1xuICAgICAgICBsZXQgciA9IGRlclNpZ25hdHVyZS5zdWJhcnJheShvZmZzZXQsIG9mZnNldCArIHJMZW5ndGgpO1xuICAgICAgICBvZmZzZXQgKz0gckxlbmd0aDtcbiAgICAgICAgaWYgKGRlclNpZ25hdHVyZVtvZmZzZXRdICE9PSAweDAyKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIERFUiBzaWduYXR1cmVcIik7XG4gICAgICAgIH1cbiAgICAgICAgb2Zmc2V0Kys7XG4gICAgICAgIGNvbnN0IHNMZW5ndGggPSBkZXJTaWduYXR1cmVbb2Zmc2V0KytdO1xuICAgICAgICBsZXQgcyA9IGRlclNpZ25hdHVyZS5zdWJhcnJheShvZmZzZXQsIG9mZnNldCArIHNMZW5ndGgpO1xuICAgICAgICByID0gclswXSA9PT0gMHgwMCA/IHIuc3ViYXJyYXkoMSkgOiByO1xuICAgICAgICBzID0gc1swXSA9PT0gMHgwMCA/IHMuc3ViYXJyYXkoMSkgOiBzO1xuICAgICAgICBjb25zdCByUGFkZGVkID0gQnVmZmVyLmNvbmNhdChbQnVmZmVyLmFsbG9jKDMyIC0gci5sZW5ndGgpLCByXSk7XG4gICAgICAgIGNvbnN0IHNQYWRkZWQgPSBCdWZmZXIuY29uY2F0KFtCdWZmZXIuYWxsb2MoMzIgLSBzLmxlbmd0aCksIHNdKTtcbiAgICAgICAgcmV0dXJuIEJ1ZmZlci5jb25jYXQoW3JQYWRkZWQsIHNQYWRkZWRdKTtcbiAgICB9XG4gICAgY3JlYXRlRFBvUEludGVyY2VwdG9yKG1pZGRsZXdhcmVTdGFjaykge1xuICAgICAgICBtaWRkbGV3YXJlU3RhY2suYWRkKChuZXh0KSA9PiBhc3luYyAoYXJncykgPT4ge1xuICAgICAgICAgICAgaWYgKHByb3RvY29sSHR0cC5IdHRwUmVxdWVzdC5pc0luc3RhbmNlKGFyZ3MucmVxdWVzdCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZXF1ZXN0ID0gYXJncy5yZXF1ZXN0O1xuICAgICAgICAgICAgICAgIGNvbnN0IGFjdHVhbEVuZHBvaW50ID0gYCR7cmVxdWVzdC5wcm90b2NvbH0vLyR7cmVxdWVzdC5ob3N0bmFtZX0ke3JlcXVlc3QucG9ydCA/IGA6JHtyZXF1ZXN0LnBvcnR9YCA6IFwiXCJ9JHtyZXF1ZXN0LnBhdGh9YDtcbiAgICAgICAgICAgICAgICBjb25zdCBkcG9wID0gYXdhaXQgdGhpcy5nZW5lcmF0ZURwb3AocmVxdWVzdC5tZXRob2QsIGFjdHVhbEVuZHBvaW50KTtcbiAgICAgICAgICAgICAgICByZXF1ZXN0LmhlYWRlcnMgPSB7XG4gICAgICAgICAgICAgICAgICAgIC4uLnJlcXVlc3QuaGVhZGVycyxcbiAgICAgICAgICAgICAgICAgICAgRFBvUDogZHBvcCxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG5leHQoYXJncyk7XG4gICAgICAgIH0sIHtcbiAgICAgICAgICAgIHN0ZXA6IFwiZmluYWxpemVSZXF1ZXN0XCIsXG4gICAgICAgICAgICBuYW1lOiBcImRwb3BJbnRlcmNlcHRvclwiLFxuICAgICAgICAgICAgb3ZlcnJpZGU6IHRydWUsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBhc3luYyBnZW5lcmF0ZURwb3AobWV0aG9kID0gXCJQT1NUXCIsIGVuZHBvaW50KSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gYXdhaXQgdGhpcy5sb2FkVG9rZW4oKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHByaXZhdGVLZXkgPSBub2RlX2NyeXB0by5jcmVhdGVQcml2YXRlS2V5KHtcbiAgICAgICAgICAgICAgICBrZXk6IHRva2VuLmRwb3BLZXksXG4gICAgICAgICAgICAgICAgZm9ybWF0OiBcInBlbVwiLFxuICAgICAgICAgICAgICAgIHR5cGU6IFwic2VjMVwiLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCBwdWJsaWNLZXkgPSBub2RlX2NyeXB0by5jcmVhdGVQdWJsaWNLZXkocHJpdmF0ZUtleSk7XG4gICAgICAgICAgICBjb25zdCBwdWJsaWNEZXIgPSBwdWJsaWNLZXkuZXhwb3J0KHsgZm9ybWF0OiBcImRlclwiLCB0eXBlOiBcInNwa2lcIiB9KTtcbiAgICAgICAgICAgIGxldCBwb2ludFN0YXJ0ID0gLTE7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHB1YmxpY0Rlci5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGlmIChwdWJsaWNEZXJbaV0gPT09IDB4MDQpIHtcbiAgICAgICAgICAgICAgICAgICAgcG9pbnRTdGFydCA9IGk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHggPSBwdWJsaWNEZXIuc2xpY2UocG9pbnRTdGFydCArIDEsIHBvaW50U3RhcnQgKyAzMyk7XG4gICAgICAgICAgICBjb25zdCB5ID0gcHVibGljRGVyLnNsaWNlKHBvaW50U3RhcnQgKyAzMywgcG9pbnRTdGFydCArIDY1KTtcbiAgICAgICAgICAgIGNvbnN0IGhlYWRlciA9IHtcbiAgICAgICAgICAgICAgICBhbGc6IFwiRVMyNTZcIixcbiAgICAgICAgICAgICAgICB0eXA6IFwiZHBvcCtqd3RcIixcbiAgICAgICAgICAgICAgICBqd2s6IHtcbiAgICAgICAgICAgICAgICAgICAga3R5OiBcIkVDXCIsXG4gICAgICAgICAgICAgICAgICAgIGNydjogXCJQLTI1NlwiLFxuICAgICAgICAgICAgICAgICAgICB4OiB4LnRvU3RyaW5nKFwiYmFzZTY0dXJsXCIpLFxuICAgICAgICAgICAgICAgICAgICB5OiB5LnRvU3RyaW5nKFwiYmFzZTY0dXJsXCIpLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY29uc3QgcGF5bG9hZCA9IHtcbiAgICAgICAgICAgICAgICBqdGk6IGNyeXB0by5yYW5kb21VVUlEKCksXG4gICAgICAgICAgICAgICAgaHRtOiBtZXRob2QsXG4gICAgICAgICAgICAgICAgaHR1OiBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBpYXQ6IE1hdGguZmxvb3IoRGF0ZS5ub3coKSAvIDEwMDApLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGNvbnN0IGhlYWRlckI2NCA9IEJ1ZmZlci5mcm9tKEpTT04uc3RyaW5naWZ5KGhlYWRlcikpLnRvU3RyaW5nKFwiYmFzZTY0dXJsXCIpO1xuICAgICAgICAgICAgY29uc3QgcGF5bG9hZEI2NCA9IEJ1ZmZlci5mcm9tKEpTT04uc3RyaW5naWZ5KHBheWxvYWQpKS50b1N0cmluZyhcImJhc2U2NHVybFwiKTtcbiAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgJHtoZWFkZXJCNjR9LiR7cGF5bG9hZEI2NH1gO1xuICAgICAgICAgICAgY29uc3QgYXNuMVNpZ25hdHVyZSA9IG5vZGVfY3J5cHRvLnNpZ24oXCJzaGEyNTZcIiwgQnVmZmVyLmZyb20obWVzc2FnZSksIHByaXZhdGVLZXkpO1xuICAgICAgICAgICAgY29uc3QgcmF3U2lnbmF0dXJlID0gdGhpcy5kZXJUb1Jhd1NpZ25hdHVyZShhc24xU2lnbmF0dXJlKTtcbiAgICAgICAgICAgIGNvbnN0IHNpZ25hdHVyZUI2NCA9IHJhd1NpZ25hdHVyZS50b1N0cmluZyhcImJhc2U2NHVybFwiKTtcbiAgICAgICAgICAgIHJldHVybiBgJHttZXNzYWdlfS4ke3NpZ25hdHVyZUI2NH1gO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKGBGYWlsZWQgdG8gZ2VuZXJhdGUgRHBvcCBwcm9vZjogJHtlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6IFN0cmluZyhlcnJvcil9YCwgeyBsb2dnZXI6IHRoaXMubG9nZ2VyLCB0cnlOZXh0TGluazogZmFsc2UgfSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmNvbnN0IGZyb21Mb2dpbkNyZWRlbnRpYWxzID0gKGluaXQpID0+IGFzeW5jICh7IGNhbGxlckNsaWVudENvbmZpZyB9ID0ge30pID0+IHtcbiAgICBpbml0Py5sb2dnZXI/LmRlYnVnPy4oXCJAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVycyAtIGZyb21Mb2dpbkNyZWRlbnRpYWxzXCIpO1xuICAgIGNvbnN0IHByb2ZpbGVzID0gYXdhaXQgc2hhcmVkSW5pRmlsZUxvYWRlci5wYXJzZUtub3duRmlsZXMoaW5pdCB8fCB7fSk7XG4gICAgY29uc3QgcHJvZmlsZU5hbWUgPSBzaGFyZWRJbmlGaWxlTG9hZGVyLmdldFByb2ZpbGVOYW1lKHtcbiAgICAgICAgcHJvZmlsZTogaW5pdD8ucHJvZmlsZSA/PyBjYWxsZXJDbGllbnRDb25maWc/LnByb2ZpbGUsXG4gICAgfSk7XG4gICAgY29uc3QgcHJvZmlsZSA9IHByb2ZpbGVzW3Byb2ZpbGVOYW1lXTtcbiAgICBpZiAoIXByb2ZpbGU/LmxvZ2luX3Nlc3Npb24pIHtcbiAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKGBQcm9maWxlICR7cHJvZmlsZU5hbWV9IGRvZXMgbm90IGNvbnRhaW4gbG9naW5fc2Vzc2lvbi5gLCB7XG4gICAgICAgICAgICB0cnlOZXh0TGluazogdHJ1ZSxcbiAgICAgICAgICAgIGxvZ2dlcjogaW5pdD8ubG9nZ2VyLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgZmV0Y2hlciA9IG5ldyBMb2dpbkNyZWRlbnRpYWxzRmV0Y2hlcihwcm9maWxlLCBpbml0LCBjYWxsZXJDbGllbnRDb25maWcpO1xuICAgIGNvbnN0IGNyZWRlbnRpYWxzID0gYXdhaXQgZmV0Y2hlci5sb2FkQ3JlZGVudGlhbHMoKTtcbiAgICByZXR1cm4gY2xpZW50LnNldENyZWRlbnRpYWxGZWF0dXJlKGNyZWRlbnRpYWxzLCBcIkNSRURFTlRJQUxTX0xPR0lOXCIsIFwiQURcIik7XG59O1xuXG5leHBvcnRzLmZyb21Mb2dpbkNyZWRlbnRpYWxzID0gZnJvbUxvZ2luQ3JlZGVudGlhbHM7XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLnRvU3RyZWFtID0gdG9TdHJlYW07XG5jb25zdCBub2RlX3N0cmVhbV8xID0gcmVxdWlyZShcIm5vZGU6c3RyZWFtXCIpO1xuZnVuY3Rpb24gdG9TdHJlYW0oYnl0ZXMpIHtcbiAgICByZXR1cm4gbm9kZV9zdHJlYW1fMS5SZWFkYWJsZS5mcm9tKEJ1ZmZlci5mcm9tKGJ5dGVzKSk7XG59XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG5jb25zdCB2YWxpZGF0ZSA9IChzdHIpID0+IHR5cGVvZiBzdHIgPT09IFwic3RyaW5nXCIgJiYgc3RyLmluZGV4T2YoXCJhcm46XCIpID09PSAwICYmIHN0ci5zcGxpdChcIjpcIikubGVuZ3RoID49IDY7XG5jb25zdCBwYXJzZSA9IChhcm4pID0+IHtcbiAgICBjb25zdCBzZWdtZW50cyA9IGFybi5zcGxpdChcIjpcIik7XG4gICAgaWYgKHNlZ21lbnRzLmxlbmd0aCA8IDYgfHwgc2VnbWVudHNbMF0gIT09IFwiYXJuXCIpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIk1hbGZvcm1lZCBBUk5cIik7XG4gICAgY29uc3QgWywgcGFydGl0aW9uLCBzZXJ2aWNlLCByZWdpb24sIGFjY291bnRJZCwgLi4ucmVzb3VyY2VdID0gc2VnbWVudHM7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcGFydGl0aW9uLFxuICAgICAgICBzZXJ2aWNlLFxuICAgICAgICByZWdpb24sXG4gICAgICAgIGFjY291bnRJZCxcbiAgICAgICAgcmVzb3VyY2U6IHJlc291cmNlLmpvaW4oXCI6XCIpLFxuICAgIH07XG59O1xuY29uc3QgYnVpbGQgPSAoYXJuT2JqZWN0KSA9PiB7XG4gICAgY29uc3QgeyBwYXJ0aXRpb24gPSBcImF3c1wiLCBzZXJ2aWNlLCByZWdpb24sIGFjY291bnRJZCwgcmVzb3VyY2UgfSA9IGFybk9iamVjdDtcbiAgICBpZiAoW3NlcnZpY2UsIHJlZ2lvbiwgYWNjb3VudElkLCByZXNvdXJjZV0uc29tZSgoc2VnbWVudCkgPT4gdHlwZW9mIHNlZ21lbnQgIT09IFwic3RyaW5nXCIpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIklucHV0IEFSTiBvYmplY3QgaXMgaW52YWxpZFwiKTtcbiAgICB9XG4gICAgcmV0dXJuIGBhcm46JHtwYXJ0aXRpb259OiR7c2VydmljZX06JHtyZWdpb259OiR7YWNjb3VudElkfToke3Jlc291cmNlfWA7XG59O1xuXG5leHBvcnRzLmJ1aWxkID0gYnVpbGQ7XG5leHBvcnRzLnBhcnNlID0gcGFyc2U7XG5leHBvcnRzLnZhbGlkYXRlID0gdmFsaWRhdGU7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgcHJvdG9jb2xIdHRwID0gcmVxdWlyZSgnQHNtaXRoeS9wcm90b2NvbC1odHRwJyk7XG52YXIgc21pdGh5Q2xpZW50ID0gcmVxdWlyZSgnQHNtaXRoeS9zbWl0aHktY2xpZW50Jyk7XG52YXIgdG9TdHJlYW0gPSByZXF1aXJlKCcuL3RvU3RyZWFtJyk7XG52YXIgdXRpbEFyblBhcnNlciA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL3V0aWwtYXJuLXBhcnNlcicpO1xudmFyIHByb3RvY29scyA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL2NvcmUvcHJvdG9jb2xzJyk7XG52YXIgc2NoZW1hID0gcmVxdWlyZSgnQHNtaXRoeS9jb3JlL3NjaGVtYScpO1xudmFyIHNpZ25hdHVyZVY0ID0gcmVxdWlyZSgnQHNtaXRoeS9zaWduYXR1cmUtdjQnKTtcbnZhciB1dGlsQ29uZmlnUHJvdmlkZXIgPSByZXF1aXJlKCdAc21pdGh5L3V0aWwtY29uZmlnLXByb3ZpZGVyJyk7XG52YXIgY2xpZW50ID0gcmVxdWlyZSgnQGF3cy1zZGsvY29yZS9jbGllbnQnKTtcbnZhciBjb3JlID0gcmVxdWlyZSgnQHNtaXRoeS9jb3JlJyk7XG52YXIgdXRpbE1pZGRsZXdhcmUgPSByZXF1aXJlKCdAc21pdGh5L3V0aWwtbWlkZGxld2FyZScpO1xuXG5jb25zdCBDT05URU5UX0xFTkdUSF9IRUFERVIgPSBcImNvbnRlbnQtbGVuZ3RoXCI7XG5jb25zdCBERUNPREVEX0NPTlRFTlRfTEVOR1RIX0hFQURFUiA9IFwieC1hbXotZGVjb2RlZC1jb250ZW50LWxlbmd0aFwiO1xuZnVuY3Rpb24gY2hlY2tDb250ZW50TGVuZ3RoSGVhZGVyKCkge1xuICAgIHJldHVybiAobmV4dCwgY29udGV4dCkgPT4gYXN5bmMgKGFyZ3MpID0+IHtcbiAgICAgICAgY29uc3QgeyByZXF1ZXN0IH0gPSBhcmdzO1xuICAgICAgICBpZiAocHJvdG9jb2xIdHRwLkh0dHBSZXF1ZXN0LmlzSW5zdGFuY2UocmVxdWVzdCkpIHtcbiAgICAgICAgICAgIGlmICghKENPTlRFTlRfTEVOR1RIX0hFQURFUiBpbiByZXF1ZXN0LmhlYWRlcnMpICYmICEoREVDT0RFRF9DT05URU5UX0xFTkdUSF9IRUFERVIgaW4gcmVxdWVzdC5oZWFkZXJzKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgQXJlIHlvdSB1c2luZyBhIFN0cmVhbSBvZiB1bmtub3duIGxlbmd0aCBhcyB0aGUgQm9keSBvZiBhIFB1dE9iamVjdCByZXF1ZXN0PyBDb25zaWRlciB1c2luZyBVcGxvYWQgaW5zdGVhZCBmcm9tIEBhd3Mtc2RrL2xpYi1zdG9yYWdlLmA7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjb250ZXh0Py5sb2dnZXI/Lndhcm4gPT09IFwiZnVuY3Rpb25cIiAmJiAhKGNvbnRleHQubG9nZ2VyIGluc3RhbmNlb2Ygc21pdGh5Q2xpZW50Lk5vT3BMb2dnZXIpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQubG9nZ2VyLndhcm4obWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4obWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXh0KHsgLi4uYXJncyB9KTtcbiAgICB9O1xufVxuY29uc3QgY2hlY2tDb250ZW50TGVuZ3RoSGVhZGVyTWlkZGxld2FyZU9wdGlvbnMgPSB7XG4gICAgc3RlcDogXCJmaW5hbGl6ZVJlcXVlc3RcIixcbiAgICB0YWdzOiBbXCJDSEVDS19DT05URU5UX0xFTkdUSF9IRUFERVJcIl0sXG4gICAgbmFtZTogXCJnZXRDaGVja0NvbnRlbnRMZW5ndGhIZWFkZXJQbHVnaW5cIixcbiAgICBvdmVycmlkZTogdHJ1ZSxcbn07XG5jb25zdCBnZXRDaGVja0NvbnRlbnRMZW5ndGhIZWFkZXJQbHVnaW4gPSAodW51c2VkKSA9PiAoe1xuICAgIGFwcGx5VG9TdGFjazogKGNsaWVudFN0YWNrKSA9PiB7XG4gICAgICAgIGNsaWVudFN0YWNrLmFkZChjaGVja0NvbnRlbnRMZW5ndGhIZWFkZXIoKSwgY2hlY2tDb250ZW50TGVuZ3RoSGVhZGVyTWlkZGxld2FyZU9wdGlvbnMpO1xuICAgIH0sXG59KTtcblxuY29uc3QgcmVnaW9uUmVkaXJlY3RFbmRwb2ludE1pZGRsZXdhcmUgPSAoY29uZmlnKSA9PiB7XG4gICAgcmV0dXJuIChuZXh0LCBjb250ZXh0KSA9PiBhc3luYyAoYXJncykgPT4ge1xuICAgICAgICBjb25zdCBvcmlnaW5hbFJlZ2lvbiA9IGF3YWl0IGNvbmZpZy5yZWdpb24oKTtcbiAgICAgICAgY29uc3QgcmVnaW9uUHJvdmlkZXJSZWYgPSBjb25maWcucmVnaW9uO1xuICAgICAgICBsZXQgdW5sb2NrID0gKCkgPT4geyB9O1xuICAgICAgICBpZiAoY29udGV4dC5fX3MzUmVnaW9uUmVkaXJlY3QpIHtcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjb25maWcsIFwicmVnaW9uXCIsIHtcbiAgICAgICAgICAgICAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbnRleHQuX19zM1JlZ2lvblJlZGlyZWN0O1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHVubG9jayA9ICgpID0+IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjb25maWcsIFwicmVnaW9uXCIsIHtcbiAgICAgICAgICAgICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogcmVnaW9uUHJvdmlkZXJSZWYsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgbmV4dChhcmdzKTtcbiAgICAgICAgICAgIGlmIChjb250ZXh0Ll9fczNSZWdpb25SZWRpcmVjdCkge1xuICAgICAgICAgICAgICAgIHVubG9jaygpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlZ2lvbiA9IGF3YWl0IGNvbmZpZy5yZWdpb24oKTtcbiAgICAgICAgICAgICAgICBpZiAob3JpZ2luYWxSZWdpb24gIT09IHJlZ2lvbikge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJSZWdpb24gd2FzIG5vdCByZXN0b3JlZCBmb2xsb3dpbmcgUzMgcmVnaW9uIHJlZGlyZWN0LlwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICB1bmxvY2soKTtcbiAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgIH1cbiAgICB9O1xufTtcbmNvbnN0IHJlZ2lvblJlZGlyZWN0RW5kcG9pbnRNaWRkbGV3YXJlT3B0aW9ucyA9IHtcbiAgICB0YWdzOiBbXCJSRUdJT05fUkVESVJFQ1RcIiwgXCJTM1wiXSxcbiAgICBuYW1lOiBcInJlZ2lvblJlZGlyZWN0RW5kcG9pbnRNaWRkbGV3YXJlXCIsXG4gICAgb3ZlcnJpZGU6IHRydWUsXG4gICAgcmVsYXRpb246IFwiYmVmb3JlXCIsXG4gICAgdG9NaWRkbGV3YXJlOiBcImVuZHBvaW50VjJNaWRkbGV3YXJlXCIsXG59O1xuXG5mdW5jdGlvbiByZWdpb25SZWRpcmVjdE1pZGRsZXdhcmUoY2xpZW50Q29uZmlnKSB7XG4gICAgcmV0dXJuIChuZXh0LCBjb250ZXh0KSA9PiBhc3luYyAoYXJncykgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IG5leHQoYXJncyk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgaWYgKGNsaWVudENvbmZpZy5mb2xsb3dSZWdpb25SZWRpcmVjdHMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzdGF0dXNDb2RlID0gZXJyPy4kbWV0YWRhdGE/Lmh0dHBTdGF0dXNDb2RlO1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzSGVhZEJ1Y2tldCA9IGNvbnRleHQuY29tbWFuZE5hbWUgPT09IFwiSGVhZEJ1Y2tldENvbW1hbmRcIjtcbiAgICAgICAgICAgICAgICBjb25zdCBidWNrZXRSZWdpb25IZWFkZXIgPSBlcnI/LiRyZXNwb25zZT8uaGVhZGVycz8uW1wieC1hbXotYnVja2V0LXJlZ2lvblwiXTtcbiAgICAgICAgICAgICAgICBpZiAoYnVja2V0UmVnaW9uSGVhZGVyKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzdGF0dXNDb2RlID09PSAzMDEgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIChzdGF0dXNDb2RlID09PSA0MDAgJiYgKGVycj8ubmFtZSA9PT0gXCJJbGxlZ2FsTG9jYXRpb25Db25zdHJhaW50RXhjZXB0aW9uXCIgfHwgaXNIZWFkQnVja2V0KSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYWN0dWFsUmVnaW9uID0gYnVja2V0UmVnaW9uSGVhZGVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQubG9nZ2VyPy5kZWJ1ZyhgUmVkaXJlY3RpbmcgZnJvbSAke2F3YWl0IGNsaWVudENvbmZpZy5yZWdpb24oKX0gdG8gJHthY3R1YWxSZWdpb259YCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC5fX3MzUmVnaW9uUmVkaXJlY3QgPSBhY3R1YWxSZWdpb247XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlJlZ2lvbiByZWRpcmVjdCBmYWlsZWQ6IFwiICsgZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV4dChhcmdzKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgfVxuICAgIH07XG59XG5jb25zdCByZWdpb25SZWRpcmVjdE1pZGRsZXdhcmVPcHRpb25zID0ge1xuICAgIHN0ZXA6IFwiaW5pdGlhbGl6ZVwiLFxuICAgIHRhZ3M6IFtcIlJFR0lPTl9SRURJUkVDVFwiLCBcIlMzXCJdLFxuICAgIG5hbWU6IFwicmVnaW9uUmVkaXJlY3RNaWRkbGV3YXJlXCIsXG4gICAgb3ZlcnJpZGU6IHRydWUsXG59O1xuY29uc3QgZ2V0UmVnaW9uUmVkaXJlY3RNaWRkbGV3YXJlUGx1Z2luID0gKGNsaWVudENvbmZpZykgPT4gKHtcbiAgICBhcHBseVRvU3RhY2s6IChjbGllbnRTdGFjaykgPT4ge1xuICAgICAgICBjbGllbnRTdGFjay5hZGQocmVnaW9uUmVkaXJlY3RNaWRkbGV3YXJlKGNsaWVudENvbmZpZyksIHJlZ2lvblJlZGlyZWN0TWlkZGxld2FyZU9wdGlvbnMpO1xuICAgICAgICBjbGllbnRTdGFjay5hZGRSZWxhdGl2ZVRvKHJlZ2lvblJlZGlyZWN0RW5kcG9pbnRNaWRkbGV3YXJlKGNsaWVudENvbmZpZyksIHJlZ2lvblJlZGlyZWN0RW5kcG9pbnRNaWRkbGV3YXJlT3B0aW9ucyk7XG4gICAgfSxcbn0pO1xuXG5jb25zdCBzM0V4cGlyZXNNaWRkbGV3YXJlID0gKGNvbmZpZykgPT4ge1xuICAgIHJldHVybiAobmV4dCwgY29udGV4dCkgPT4gYXN5bmMgKGFyZ3MpID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgbmV4dChhcmdzKTtcbiAgICAgICAgY29uc3QgeyByZXNwb25zZSB9ID0gcmVzdWx0O1xuICAgICAgICBpZiAocHJvdG9jb2xIdHRwLkh0dHBSZXNwb25zZS5pc0luc3RhbmNlKHJlc3BvbnNlKSkge1xuICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhlYWRlcnMuZXhwaXJlcykge1xuICAgICAgICAgICAgICAgIHJlc3BvbnNlLmhlYWRlcnMuZXhwaXJlc3N0cmluZyA9IHJlc3BvbnNlLmhlYWRlcnMuZXhwaXJlcztcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBzbWl0aHlDbGllbnQucGFyc2VSZmM3MjMxRGF0ZVRpbWUocmVzcG9uc2UuaGVhZGVycy5leHBpcmVzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dC5sb2dnZXI/Lndhcm4oYEFXUyBTREsgV2FybmluZyBmb3IgJHtjb250ZXh0LmNsaWVudE5hbWV9Ojoke2NvbnRleHQuY29tbWFuZE5hbWV9IHJlc3BvbnNlIHBhcnNpbmcgKCR7cmVzcG9uc2UuaGVhZGVycy5leHBpcmVzfSk6ICR7ZX1gKTtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHJlc3BvbnNlLmhlYWRlcnMuZXhwaXJlcztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9O1xufTtcbmNvbnN0IHMzRXhwaXJlc01pZGRsZXdhcmVPcHRpb25zID0ge1xuICAgIHRhZ3M6IFtcIlMzXCJdLFxuICAgIG5hbWU6IFwiczNFeHBpcmVzTWlkZGxld2FyZVwiLFxuICAgIG92ZXJyaWRlOiB0cnVlLFxuICAgIHJlbGF0aW9uOiBcImFmdGVyXCIsXG4gICAgdG9NaWRkbGV3YXJlOiBcImRlc2VyaWFsaXplck1pZGRsZXdhcmVcIixcbn07XG5jb25zdCBnZXRTM0V4cGlyZXNNaWRkbGV3YXJlUGx1Z2luID0gKGNsaWVudENvbmZpZykgPT4gKHtcbiAgICBhcHBseVRvU3RhY2s6IChjbGllbnRTdGFjaykgPT4ge1xuICAgICAgICBjbGllbnRTdGFjay5hZGRSZWxhdGl2ZVRvKHMzRXhwaXJlc01pZGRsZXdhcmUoKSwgczNFeHBpcmVzTWlkZGxld2FyZU9wdGlvbnMpO1xuICAgIH0sXG59KTtcblxuY2xhc3MgUzNFeHByZXNzSWRlbnRpdHlDYWNoZSB7XG4gICAgZGF0YTtcbiAgICBsYXN0UHVyZ2VUaW1lID0gRGF0ZS5ub3coKTtcbiAgICBzdGF0aWMgRVhQSVJFRF9DUkVERU5USUFMX1BVUkdFX0lOVEVSVkFMX01TID0gMzBfMDAwO1xuICAgIGNvbnN0cnVjdG9yKGRhdGEgPSB7fSkge1xuICAgICAgICB0aGlzLmRhdGEgPSBkYXRhO1xuICAgIH1cbiAgICBnZXQoa2V5KSB7XG4gICAgICAgIGNvbnN0IGVudHJ5ID0gdGhpcy5kYXRhW2tleV07XG4gICAgICAgIGlmICghZW50cnkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZW50cnk7XG4gICAgfVxuICAgIHNldChrZXksIGVudHJ5KSB7XG4gICAgICAgIHRoaXMuZGF0YVtrZXldID0gZW50cnk7XG4gICAgICAgIHJldHVybiBlbnRyeTtcbiAgICB9XG4gICAgZGVsZXRlKGtleSkge1xuICAgICAgICBkZWxldGUgdGhpcy5kYXRhW2tleV07XG4gICAgfVxuICAgIGFzeW5jIHB1cmdlRXhwaXJlZCgpIHtcbiAgICAgICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgICAgICAgaWYgKHRoaXMubGFzdFB1cmdlVGltZSArIFMzRXhwcmVzc0lkZW50aXR5Q2FjaGUuRVhQSVJFRF9DUkVERU5USUFMX1BVUkdFX0lOVEVSVkFMX01TID4gbm93KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gdGhpcy5kYXRhKSB7XG4gICAgICAgICAgICBjb25zdCBlbnRyeSA9IHRoaXMuZGF0YVtrZXldO1xuICAgICAgICAgICAgaWYgKCFlbnRyeS5pc1JlZnJlc2hpbmcpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjcmVkZW50aWFsID0gYXdhaXQgZW50cnkuaWRlbnRpdHk7XG4gICAgICAgICAgICAgICAgaWYgKGNyZWRlbnRpYWwuZXhwaXJhdGlvbikge1xuICAgICAgICAgICAgICAgICAgICBpZiAoY3JlZGVudGlhbC5leHBpcmF0aW9uLmdldFRpbWUoKSA8IG5vdykge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMuZGF0YVtrZXldO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5jbGFzcyBTM0V4cHJlc3NJZGVudGl0eUNhY2hlRW50cnkge1xuICAgIF9pZGVudGl0eTtcbiAgICBpc1JlZnJlc2hpbmc7XG4gICAgYWNjZXNzZWQ7XG4gICAgY29uc3RydWN0b3IoX2lkZW50aXR5LCBpc1JlZnJlc2hpbmcgPSBmYWxzZSwgYWNjZXNzZWQgPSBEYXRlLm5vdygpKSB7XG4gICAgICAgIHRoaXMuX2lkZW50aXR5ID0gX2lkZW50aXR5O1xuICAgICAgICB0aGlzLmlzUmVmcmVzaGluZyA9IGlzUmVmcmVzaGluZztcbiAgICAgICAgdGhpcy5hY2Nlc3NlZCA9IGFjY2Vzc2VkO1xuICAgIH1cbiAgICBnZXQgaWRlbnRpdHkoKSB7XG4gICAgICAgIHRoaXMuYWNjZXNzZWQgPSBEYXRlLm5vdygpO1xuICAgICAgICByZXR1cm4gdGhpcy5faWRlbnRpdHk7XG4gICAgfVxufVxuXG5jbGFzcyBTM0V4cHJlc3NJZGVudGl0eVByb3ZpZGVySW1wbCB7XG4gICAgY3JlYXRlU2Vzc2lvbkZuO1xuICAgIGNhY2hlO1xuICAgIHN0YXRpYyBSRUZSRVNIX1dJTkRPV19NUyA9IDYwXzAwMDtcbiAgICBjb25zdHJ1Y3RvcihjcmVhdGVTZXNzaW9uRm4sIGNhY2hlID0gbmV3IFMzRXhwcmVzc0lkZW50aXR5Q2FjaGUoKSkge1xuICAgICAgICB0aGlzLmNyZWF0ZVNlc3Npb25GbiA9IGNyZWF0ZVNlc3Npb25GbjtcbiAgICAgICAgdGhpcy5jYWNoZSA9IGNhY2hlO1xuICAgIH1cbiAgICBhc3luYyBnZXRTM0V4cHJlc3NJZGVudGl0eShhd3NJZGVudGl0eSwgaWRlbnRpdHlQcm9wZXJ0aWVzKSB7XG4gICAgICAgIGNvbnN0IGtleSA9IGlkZW50aXR5UHJvcGVydGllcy5CdWNrZXQ7XG4gICAgICAgIGNvbnN0IHsgY2FjaGUgfSA9IHRoaXM7XG4gICAgICAgIGNvbnN0IGVudHJ5ID0gY2FjaGUuZ2V0KGtleSk7XG4gICAgICAgIGlmIChlbnRyeSkge1xuICAgICAgICAgICAgcmV0dXJuIGVudHJ5LmlkZW50aXR5LnRoZW4oKGlkZW50aXR5KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNFeHBpcmVkID0gKGlkZW50aXR5LmV4cGlyYXRpb24/LmdldFRpbWUoKSA/PyAwKSA8IERhdGUubm93KCk7XG4gICAgICAgICAgICAgICAgaWYgKGlzRXhwaXJlZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2FjaGUuc2V0KGtleSwgbmV3IFMzRXhwcmVzc0lkZW50aXR5Q2FjaGVFbnRyeSh0aGlzLmdldElkZW50aXR5KGtleSkpKS5pZGVudGl0eTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgaXNFeHBpcmluZ1Nvb24gPSAoaWRlbnRpdHkuZXhwaXJhdGlvbj8uZ2V0VGltZSgpID8/IDApIDwgRGF0ZS5ub3coKSArIFMzRXhwcmVzc0lkZW50aXR5UHJvdmlkZXJJbXBsLlJFRlJFU0hfV0lORE9XX01TO1xuICAgICAgICAgICAgICAgIGlmIChpc0V4cGlyaW5nU29vbiAmJiAhZW50cnkuaXNSZWZyZXNoaW5nKSB7XG4gICAgICAgICAgICAgICAgICAgIGVudHJ5LmlzUmVmcmVzaGluZyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0SWRlbnRpdHkoa2V5KS50aGVuKChpZCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGUuc2V0KGtleSwgbmV3IFMzRXhwcmVzc0lkZW50aXR5Q2FjaGVFbnRyeShQcm9taXNlLnJlc29sdmUoaWQpKSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gaWRlbnRpdHk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY2FjaGUuc2V0KGtleSwgbmV3IFMzRXhwcmVzc0lkZW50aXR5Q2FjaGVFbnRyeSh0aGlzLmdldElkZW50aXR5KGtleSkpKS5pZGVudGl0eTtcbiAgICB9XG4gICAgYXN5bmMgZ2V0SWRlbnRpdHkoa2V5KSB7XG4gICAgICAgIGF3YWl0IHRoaXMuY2FjaGUucHVyZ2VFeHBpcmVkKCkuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oXCJFcnJvciB3aGlsZSBjbGVhcmluZyBleHBpcmVkIGVudHJpZXMgaW4gUzNFeHByZXNzSWRlbnRpdHlDYWNoZTogXFxuXCIgKyBlcnJvcik7XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBzZXNzaW9uID0gYXdhaXQgdGhpcy5jcmVhdGVTZXNzaW9uRm4oa2V5KTtcbiAgICAgICAgaWYgKCFzZXNzaW9uLkNyZWRlbnRpYWxzPy5BY2Nlc3NLZXlJZCB8fCAhc2Vzc2lvbi5DcmVkZW50aWFscz8uU2VjcmV0QWNjZXNzS2V5KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJzMyNjcmVhdGVTZXNzaW9uIHJlc3BvbnNlIGNyZWRlbnRpYWwgbWlzc2luZyBBY2Nlc3NLZXlJZCBvciBTZWNyZXRBY2Nlc3NLZXkuXCIpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGlkZW50aXR5ID0ge1xuICAgICAgICAgICAgYWNjZXNzS2V5SWQ6IHNlc3Npb24uQ3JlZGVudGlhbHMuQWNjZXNzS2V5SWQsXG4gICAgICAgICAgICBzZWNyZXRBY2Nlc3NLZXk6IHNlc3Npb24uQ3JlZGVudGlhbHMuU2VjcmV0QWNjZXNzS2V5LFxuICAgICAgICAgICAgc2Vzc2lvblRva2VuOiBzZXNzaW9uLkNyZWRlbnRpYWxzLlNlc3Npb25Ub2tlbixcbiAgICAgICAgICAgIGV4cGlyYXRpb246IHNlc3Npb24uQ3JlZGVudGlhbHMuRXhwaXJhdGlvbiA/IG5ldyBEYXRlKHNlc3Npb24uQ3JlZGVudGlhbHMuRXhwaXJhdGlvbikgOiB1bmRlZmluZWQsXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBpZGVudGl0eTtcbiAgICB9XG59XG5cbmNvbnN0IFMzX0VYUFJFU1NfQlVDS0VUX1RZUEUgPSBcIkRpcmVjdG9yeVwiO1xuY29uc3QgUzNfRVhQUkVTU19CQUNLRU5EID0gXCJTM0V4cHJlc3NcIjtcbmNvbnN0IFMzX0VYUFJFU1NfQVVUSF9TQ0hFTUUgPSBcInNpZ3Y0LXMzZXhwcmVzc1wiO1xuY29uc3QgU0VTU0lPTl9UT0tFTl9RVUVSWV9QQVJBTSA9IFwiWC1BbXotUzNzZXNzaW9uLVRva2VuXCI7XG5jb25zdCBTRVNTSU9OX1RPS0VOX0hFQURFUiA9IFNFU1NJT05fVE9LRU5fUVVFUllfUEFSQU0udG9Mb3dlckNhc2UoKTtcbmNvbnN0IE5PREVfRElTQUJMRV9TM19FWFBSRVNTX1NFU1NJT05fQVVUSF9FTlZfTkFNRSA9IFwiQVdTX1MzX0RJU0FCTEVfRVhQUkVTU19TRVNTSU9OX0FVVEhcIjtcbmNvbnN0IE5PREVfRElTQUJMRV9TM19FWFBSRVNTX1NFU1NJT05fQVVUSF9JTklfTkFNRSA9IFwiczNfZGlzYWJsZV9leHByZXNzX3Nlc3Npb25fYXV0aFwiO1xuY29uc3QgTk9ERV9ESVNBQkxFX1MzX0VYUFJFU1NfU0VTU0lPTl9BVVRIX09QVElPTlMgPSB7XG4gICAgZW52aXJvbm1lbnRWYXJpYWJsZVNlbGVjdG9yOiAoZW52KSA9PiB1dGlsQ29uZmlnUHJvdmlkZXIuYm9vbGVhblNlbGVjdG9yKGVudiwgTk9ERV9ESVNBQkxFX1MzX0VYUFJFU1NfU0VTU0lPTl9BVVRIX0VOVl9OQU1FLCB1dGlsQ29uZmlnUHJvdmlkZXIuU2VsZWN0b3JUeXBlLkVOViksXG4gICAgY29uZmlnRmlsZVNlbGVjdG9yOiAocHJvZmlsZSkgPT4gdXRpbENvbmZpZ1Byb3ZpZGVyLmJvb2xlYW5TZWxlY3Rvcihwcm9maWxlLCBOT0RFX0RJU0FCTEVfUzNfRVhQUkVTU19TRVNTSU9OX0FVVEhfSU5JX05BTUUsIHV0aWxDb25maWdQcm92aWRlci5TZWxlY3RvclR5cGUuQ09ORklHKSxcbiAgICBkZWZhdWx0OiBmYWxzZSxcbn07XG5cbmNsYXNzIFNpZ25hdHVyZVY0UzNFeHByZXNzIGV4dGVuZHMgc2lnbmF0dXJlVjQuU2lnbmF0dXJlVjQge1xuICAgIGFzeW5jIHNpZ25XaXRoQ3JlZGVudGlhbHMocmVxdWVzdFRvU2lnbiwgY3JlZGVudGlhbHMsIG9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgY3JlZGVudGlhbHNXaXRob3V0U2Vzc2lvblRva2VuID0gZ2V0Q3JlZGVudGlhbHNXaXRob3V0U2Vzc2lvblRva2VuKGNyZWRlbnRpYWxzKTtcbiAgICAgICAgcmVxdWVzdFRvU2lnbi5oZWFkZXJzW1NFU1NJT05fVE9LRU5fSEVBREVSXSA9IGNyZWRlbnRpYWxzLnNlc3Npb25Ub2tlbjtcbiAgICAgICAgY29uc3QgcHJpdmF0ZUFjY2VzcyA9IHRoaXM7XG4gICAgICAgIHNldFNpbmdsZU92ZXJyaWRlKHByaXZhdGVBY2Nlc3MsIGNyZWRlbnRpYWxzV2l0aG91dFNlc3Npb25Ub2tlbik7XG4gICAgICAgIHJldHVybiBwcml2YXRlQWNjZXNzLnNpZ25SZXF1ZXN0KHJlcXVlc3RUb1NpZ24sIG9wdGlvbnMgPz8ge30pO1xuICAgIH1cbiAgICBhc3luYyBwcmVzaWduV2l0aENyZWRlbnRpYWxzKHJlcXVlc3RUb1NpZ24sIGNyZWRlbnRpYWxzLCBvcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IGNyZWRlbnRpYWxzV2l0aG91dFNlc3Npb25Ub2tlbiA9IGdldENyZWRlbnRpYWxzV2l0aG91dFNlc3Npb25Ub2tlbihjcmVkZW50aWFscyk7XG4gICAgICAgIGRlbGV0ZSByZXF1ZXN0VG9TaWduLmhlYWRlcnNbU0VTU0lPTl9UT0tFTl9IRUFERVJdO1xuICAgICAgICByZXF1ZXN0VG9TaWduLmhlYWRlcnNbU0VTU0lPTl9UT0tFTl9RVUVSWV9QQVJBTV0gPSBjcmVkZW50aWFscy5zZXNzaW9uVG9rZW47XG4gICAgICAgIHJlcXVlc3RUb1NpZ24ucXVlcnkgPSByZXF1ZXN0VG9TaWduLnF1ZXJ5ID8/IHt9O1xuICAgICAgICByZXF1ZXN0VG9TaWduLnF1ZXJ5W1NFU1NJT05fVE9LRU5fUVVFUllfUEFSQU1dID0gY3JlZGVudGlhbHMuc2Vzc2lvblRva2VuO1xuICAgICAgICBjb25zdCBwcml2YXRlQWNjZXNzID0gdGhpcztcbiAgICAgICAgc2V0U2luZ2xlT3ZlcnJpZGUocHJpdmF0ZUFjY2VzcywgY3JlZGVudGlhbHNXaXRob3V0U2Vzc2lvblRva2VuKTtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJlc2lnbihyZXF1ZXN0VG9TaWduLCBvcHRpb25zKTtcbiAgICB9XG59XG5mdW5jdGlvbiBnZXRDcmVkZW50aWFsc1dpdGhvdXRTZXNzaW9uVG9rZW4oY3JlZGVudGlhbHMpIHtcbiAgICBjb25zdCBjcmVkZW50aWFsc1dpdGhvdXRTZXNzaW9uVG9rZW4gPSB7XG4gICAgICAgIGFjY2Vzc0tleUlkOiBjcmVkZW50aWFscy5hY2Nlc3NLZXlJZCxcbiAgICAgICAgc2VjcmV0QWNjZXNzS2V5OiBjcmVkZW50aWFscy5zZWNyZXRBY2Nlc3NLZXksXG4gICAgICAgIGV4cGlyYXRpb246IGNyZWRlbnRpYWxzLmV4cGlyYXRpb24sXG4gICAgfTtcbiAgICByZXR1cm4gY3JlZGVudGlhbHNXaXRob3V0U2Vzc2lvblRva2VuO1xufVxuZnVuY3Rpb24gc2V0U2luZ2xlT3ZlcnJpZGUocHJpdmF0ZUFjY2VzcywgY3JlZGVudGlhbHNXaXRob3V0U2Vzc2lvblRva2VuKSB7XG4gICAgY29uc3QgaWQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiU2lnbmF0dXJlVjRTM0V4cHJlc3MgY3JlZGVudGlhbCBvdmVycmlkZSB3YXMgY3JlYXRlZCBidXQgbm90IGNhbGxlZC5cIik7XG4gICAgfSwgMTApO1xuICAgIGNvbnN0IGN1cnJlbnRDcmVkZW50aWFsUHJvdmlkZXIgPSBwcml2YXRlQWNjZXNzLmNyZWRlbnRpYWxQcm92aWRlcjtcbiAgICBjb25zdCBvdmVycmlkZUNyZWRlbnRpYWxzUHJvdmlkZXJPbmNlID0gKCkgPT4ge1xuICAgICAgICBjbGVhclRpbWVvdXQoaWQpO1xuICAgICAgICBwcml2YXRlQWNjZXNzLmNyZWRlbnRpYWxQcm92aWRlciA9IGN1cnJlbnRDcmVkZW50aWFsUHJvdmlkZXI7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoY3JlZGVudGlhbHNXaXRob3V0U2Vzc2lvblRva2VuKTtcbiAgICB9O1xuICAgIHByaXZhdGVBY2Nlc3MuY3JlZGVudGlhbFByb3ZpZGVyID0gb3ZlcnJpZGVDcmVkZW50aWFsc1Byb3ZpZGVyT25jZTtcbn1cblxuY29uc3QgczNFeHByZXNzTWlkZGxld2FyZSA9IChvcHRpb25zKSA9PiB7XG4gICAgcmV0dXJuIChuZXh0LCBjb250ZXh0KSA9PiBhc3luYyAoYXJncykgPT4ge1xuICAgICAgICBpZiAoY29udGV4dC5lbmRwb2ludFYyKSB7XG4gICAgICAgICAgICBjb25zdCBlbmRwb2ludCA9IGNvbnRleHQuZW5kcG9pbnRWMjtcbiAgICAgICAgICAgIGNvbnN0IGlzUzNFeHByZXNzQXV0aCA9IGVuZHBvaW50LnByb3BlcnRpZXM/LmF1dGhTY2hlbWVzPy5bMF0/Lm5hbWUgPT09IFMzX0VYUFJFU1NfQVVUSF9TQ0hFTUU7XG4gICAgICAgICAgICBjb25zdCBpc1MzRXhwcmVzc0J1Y2tldCA9IGVuZHBvaW50LnByb3BlcnRpZXM/LmJhY2tlbmQgPT09IFMzX0VYUFJFU1NfQkFDS0VORCB8fFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LnByb3BlcnRpZXM/LmJ1Y2tldFR5cGUgPT09IFMzX0VYUFJFU1NfQlVDS0VUX1RZUEU7XG4gICAgICAgICAgICBpZiAoaXNTM0V4cHJlc3NCdWNrZXQpIHtcbiAgICAgICAgICAgICAgICBjbGllbnQuc2V0RmVhdHVyZShjb250ZXh0LCBcIlMzX0VYUFJFU1NfQlVDS0VUXCIsIFwiSlwiKTtcbiAgICAgICAgICAgICAgICBjb250ZXh0LmlzUzNFeHByZXNzQnVja2V0ID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc1MzRXhwcmVzc0F1dGgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZXF1ZXN0QnVja2V0ID0gYXJncy5pbnB1dC5CdWNrZXQ7XG4gICAgICAgICAgICAgICAgaWYgKHJlcXVlc3RCdWNrZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgczNFeHByZXNzSWRlbnRpdHkgPSBhd2FpdCBvcHRpb25zLnMzRXhwcmVzc0lkZW50aXR5UHJvdmlkZXIuZ2V0UzNFeHByZXNzSWRlbnRpdHkoYXdhaXQgb3B0aW9ucy5jcmVkZW50aWFscygpLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBCdWNrZXQ6IHJlcXVlc3RCdWNrZXQsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBjb250ZXh0LnMzRXhwcmVzc0lkZW50aXR5ID0gczNFeHByZXNzSWRlbnRpdHk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChwcm90b2NvbEh0dHAuSHR0cFJlcXVlc3QuaXNJbnN0YW5jZShhcmdzLnJlcXVlc3QpICYmIHMzRXhwcmVzc0lkZW50aXR5LnNlc3Npb25Ub2tlbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgYXJncy5yZXF1ZXN0LmhlYWRlcnNbU0VTU0lPTl9UT0tFTl9IRUFERVJdID0gczNFeHByZXNzSWRlbnRpdHkuc2Vzc2lvblRva2VuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXh0KGFyZ3MpO1xuICAgIH07XG59O1xuY29uc3QgczNFeHByZXNzTWlkZGxld2FyZU9wdGlvbnMgPSB7XG4gICAgbmFtZTogXCJzM0V4cHJlc3NNaWRkbGV3YXJlXCIsXG4gICAgc3RlcDogXCJidWlsZFwiLFxuICAgIHRhZ3M6IFtcIlMzXCIsIFwiUzNfRVhQUkVTU1wiXSxcbiAgICBvdmVycmlkZTogdHJ1ZSxcbn07XG5jb25zdCBnZXRTM0V4cHJlc3NQbHVnaW4gPSAob3B0aW9ucykgPT4gKHtcbiAgICBhcHBseVRvU3RhY2s6IChjbGllbnRTdGFjaykgPT4ge1xuICAgICAgICBjbGllbnRTdGFjay5hZGQoczNFeHByZXNzTWlkZGxld2FyZShvcHRpb25zKSwgczNFeHByZXNzTWlkZGxld2FyZU9wdGlvbnMpO1xuICAgIH0sXG59KTtcblxuY29uc3Qgc2lnblMzRXhwcmVzcyA9IGFzeW5jIChzM0V4cHJlc3NJZGVudGl0eSwgc2lnbmluZ09wdGlvbnMsIHJlcXVlc3QsIHNpZ1Y0TXVsdGlSZWdpb25TaWduZXIpID0+IHtcbiAgICBjb25zdCBzaWduZWRSZXF1ZXN0ID0gYXdhaXQgc2lnVjRNdWx0aVJlZ2lvblNpZ25lci5zaWduV2l0aENyZWRlbnRpYWxzKHJlcXVlc3QsIHMzRXhwcmVzc0lkZW50aXR5LCB7fSk7XG4gICAgaWYgKHNpZ25lZFJlcXVlc3QuaGVhZGVyc1tcIlgtQW16LVNlY3VyaXR5LVRva2VuXCJdIHx8IHNpZ25lZFJlcXVlc3QuaGVhZGVyc1tcIngtYW16LXNlY3VyaXR5LXRva2VuXCJdKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIlgtQW16LVNlY3VyaXR5LVRva2VuIG11c3Qgbm90IGJlIHNldCBmb3IgczMtZXhwcmVzcyByZXF1ZXN0cy5cIik7XG4gICAgfVxuICAgIHJldHVybiBzaWduZWRSZXF1ZXN0O1xufTtcblxuY29uc3QgZGVmYXVsdEVycm9ySGFuZGxlciA9IChzaWduaW5nUHJvcGVydGllcykgPT4gKGVycm9yKSA9PiB7XG4gICAgdGhyb3cgZXJyb3I7XG59O1xuY29uc3QgZGVmYXVsdFN1Y2Nlc3NIYW5kbGVyID0gKGh0dHBSZXNwb25zZSwgc2lnbmluZ1Byb3BlcnRpZXMpID0+IHsgfTtcbmNvbnN0IHMzRXhwcmVzc0h0dHBTaWduaW5nTWlkZGxld2FyZU9wdGlvbnMgPSBjb3JlLmh0dHBTaWduaW5nTWlkZGxld2FyZU9wdGlvbnM7XG5jb25zdCBzM0V4cHJlc3NIdHRwU2lnbmluZ01pZGRsZXdhcmUgPSAoY29uZmlnKSA9PiAobmV4dCwgY29udGV4dCkgPT4gYXN5bmMgKGFyZ3MpID0+IHtcbiAgICBpZiAoIXByb3RvY29sSHR0cC5IdHRwUmVxdWVzdC5pc0luc3RhbmNlKGFyZ3MucmVxdWVzdCkpIHtcbiAgICAgICAgcmV0dXJuIG5leHQoYXJncyk7XG4gICAgfVxuICAgIGNvbnN0IHNtaXRoeUNvbnRleHQgPSB1dGlsTWlkZGxld2FyZS5nZXRTbWl0aHlDb250ZXh0KGNvbnRleHQpO1xuICAgIGNvbnN0IHNjaGVtZSA9IHNtaXRoeUNvbnRleHQuc2VsZWN0ZWRIdHRwQXV0aFNjaGVtZTtcbiAgICBpZiAoIXNjaGVtZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIEh0dHBBdXRoU2NoZW1lIHdhcyBzZWxlY3RlZDogdW5hYmxlIHRvIHNpZ24gcmVxdWVzdGApO1xuICAgIH1cbiAgICBjb25zdCB7IGh0dHBBdXRoT3B0aW9uOiB7IHNpZ25pbmdQcm9wZXJ0aWVzID0ge30gfSwgaWRlbnRpdHksIHNpZ25lciwgfSA9IHNjaGVtZTtcbiAgICBsZXQgcmVxdWVzdDtcbiAgICBpZiAoY29udGV4dC5zM0V4cHJlc3NJZGVudGl0eSkge1xuICAgICAgICByZXF1ZXN0ID0gYXdhaXQgc2lnblMzRXhwcmVzcyhjb250ZXh0LnMzRXhwcmVzc0lkZW50aXR5LCBzaWduaW5nUHJvcGVydGllcywgYXJncy5yZXF1ZXN0LCBhd2FpdCBjb25maWcuc2lnbmVyKCkpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgcmVxdWVzdCA9IGF3YWl0IHNpZ25lci5zaWduKGFyZ3MucmVxdWVzdCwgaWRlbnRpdHksIHNpZ25pbmdQcm9wZXJ0aWVzKTtcbiAgICB9XG4gICAgY29uc3Qgb3V0cHV0ID0gYXdhaXQgbmV4dCh7XG4gICAgICAgIC4uLmFyZ3MsXG4gICAgICAgIHJlcXVlc3QsXG4gICAgfSkuY2F0Y2goKHNpZ25lci5lcnJvckhhbmRsZXIgfHwgZGVmYXVsdEVycm9ySGFuZGxlcikoc2lnbmluZ1Byb3BlcnRpZXMpKTtcbiAgICAoc2lnbmVyLnN1Y2Nlc3NIYW5kbGVyIHx8IGRlZmF1bHRTdWNjZXNzSGFuZGxlcikob3V0cHV0LnJlc3BvbnNlLCBzaWduaW5nUHJvcGVydGllcyk7XG4gICAgcmV0dXJuIG91dHB1dDtcbn07XG5jb25zdCBnZXRTM0V4cHJlc3NIdHRwU2lnbmluZ1BsdWdpbiA9IChjb25maWcpID0+ICh7XG4gICAgYXBwbHlUb1N0YWNrOiAoY2xpZW50U3RhY2spID0+IHtcbiAgICAgICAgY2xpZW50U3RhY2suYWRkUmVsYXRpdmVUbyhzM0V4cHJlc3NIdHRwU2lnbmluZ01pZGRsZXdhcmUoY29uZmlnKSwgY29yZS5odHRwU2lnbmluZ01pZGRsZXdhcmVPcHRpb25zKTtcbiAgICB9LFxufSk7XG5cbmNvbnN0IHJlc29sdmVTM0NvbmZpZyA9IChpbnB1dCwgeyBzZXNzaW9uLCB9KSA9PiB7XG4gICAgY29uc3QgW3MzQ2xpZW50UHJvdmlkZXIsIENyZWF0ZVNlc3Npb25Db21tYW5kQ3Rvcl0gPSBzZXNzaW9uO1xuICAgIGNvbnN0IHsgZm9yY2VQYXRoU3R5bGUsIHVzZUFjY2VsZXJhdGVFbmRwb2ludCwgZGlzYWJsZU11bHRpcmVnaW9uQWNjZXNzUG9pbnRzLCBmb2xsb3dSZWdpb25SZWRpcmVjdHMsIHMzRXhwcmVzc0lkZW50aXR5UHJvdmlkZXIsIGJ1Y2tldEVuZHBvaW50LCBleHBlY3RDb250aW51ZUhlYWRlciwgfSA9IGlucHV0O1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKGlucHV0LCB7XG4gICAgICAgIGZvcmNlUGF0aFN0eWxlOiBmb3JjZVBhdGhTdHlsZSA/PyBmYWxzZSxcbiAgICAgICAgdXNlQWNjZWxlcmF0ZUVuZHBvaW50OiB1c2VBY2NlbGVyYXRlRW5kcG9pbnQgPz8gZmFsc2UsXG4gICAgICAgIGRpc2FibGVNdWx0aXJlZ2lvbkFjY2Vzc1BvaW50czogZGlzYWJsZU11bHRpcmVnaW9uQWNjZXNzUG9pbnRzID8/IGZhbHNlLFxuICAgICAgICBmb2xsb3dSZWdpb25SZWRpcmVjdHM6IGZvbGxvd1JlZ2lvblJlZGlyZWN0cyA/PyBmYWxzZSxcbiAgICAgICAgczNFeHByZXNzSWRlbnRpdHlQcm92aWRlcjogczNFeHByZXNzSWRlbnRpdHlQcm92aWRlciA/P1xuICAgICAgICAgICAgbmV3IFMzRXhwcmVzc0lkZW50aXR5UHJvdmlkZXJJbXBsKGFzeW5jIChrZXkpID0+IHMzQ2xpZW50UHJvdmlkZXIoKS5zZW5kKG5ldyBDcmVhdGVTZXNzaW9uQ29tbWFuZEN0b3Ioe1xuICAgICAgICAgICAgICAgIEJ1Y2tldDoga2V5LFxuICAgICAgICAgICAgfSkpKSxcbiAgICAgICAgYnVja2V0RW5kcG9pbnQ6IGJ1Y2tldEVuZHBvaW50ID8/IGZhbHNlLFxuICAgICAgICBleHBlY3RDb250aW51ZUhlYWRlcjogZXhwZWN0Q29udGludWVIZWFkZXIgPz8gMl8wOTdfMTUyLFxuICAgIH0pO1xufTtcblxuY29uc3QgVEhST1dfSUZfRU1QVFlfQk9EWSA9IHtcbiAgICBDb3B5T2JqZWN0Q29tbWFuZDogdHJ1ZSxcbiAgICBVcGxvYWRQYXJ0Q29weUNvbW1hbmQ6IHRydWUsXG4gICAgQ29tcGxldGVNdWx0aXBhcnRVcGxvYWRDb21tYW5kOiB0cnVlLFxufTtcbmNvbnN0IHRocm93MjAwRXhjZXB0aW9uc01pZGRsZXdhcmUgPSAoY29uZmlnKSA9PiAobmV4dCwgY29udGV4dCkgPT4gYXN5bmMgKGFyZ3MpID0+IHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBuZXh0KGFyZ3MpO1xuICAgIGNvbnN0IHsgcmVzcG9uc2UgfSA9IHJlc3VsdDtcbiAgICBpZiAoIXByb3RvY29sSHR0cC5IdHRwUmVzcG9uc2UuaXNJbnN0YW5jZShyZXNwb25zZSkpIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgY29uc3QgeyBzdGF0dXNDb2RlLCBib2R5IH0gPSByZXNwb25zZTtcbiAgICBpZiAoc3RhdHVzQ29kZSA8IDIwMCB8fCBzdGF0dXNDb2RlID49IDMwMCkge1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICBjb25zdCBib2R5Qnl0ZXMgPSBhd2FpdCBjb2xsZWN0Qm9keShib2R5LCBjb25maWcpO1xuICAgIHJlc3BvbnNlLmJvZHkgPSB0b1N0cmVhbS50b1N0cmVhbShib2R5Qnl0ZXMpO1xuICAgIGlmIChib2R5Qnl0ZXMubGVuZ3RoID09PSAwICYmIFRIUk9XX0lGX0VNUFRZX0JPRFlbY29udGV4dC5jb21tYW5kTmFtZV0pIHtcbiAgICAgICAgY29uc3QgZXJyID0gbmV3IEVycm9yKFwiUzMgYWJvcnRlZCByZXF1ZXN0XCIpO1xuICAgICAgICBlcnIuJG1ldGFkYXRhID0ge1xuICAgICAgICAgICAgaHR0cFN0YXR1c0NvZGU6IDUwMyxcbiAgICAgICAgfTtcbiAgICAgICAgZXJyLm5hbWUgPSBcIkludGVybmFsRXJyb3JcIjtcbiAgICAgICAgdGhyb3cgZXJyO1xuICAgIH1cbiAgICBjb25zdCBib2R5U3RyaW5nVGFpbCA9IGNvbmZpZy51dGY4RW5jb2Rlcihib2R5Qnl0ZXMuc3ViYXJyYXkoYm9keUJ5dGVzLmxlbmd0aCAtIDE2KSk7XG4gICAgaWYgKGJvZHlTdHJpbmdUYWlsICYmIGJvZHlTdHJpbmdUYWlsLmVuZHNXaXRoKFwiPC9FcnJvcj5cIikpIHtcbiAgICAgICAgcmVzcG9uc2Uuc3RhdHVzQ29kZSA9IDUwMztcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbn07XG5jb25zdCBjb2xsZWN0Qm9keSA9IChzdHJlYW1Cb2R5ID0gbmV3IFVpbnQ4QXJyYXkoKSwgY29udGV4dCkgPT4ge1xuICAgIGlmIChzdHJlYW1Cb2R5IGluc3RhbmNlb2YgVWludDhBcnJheSkge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHN0cmVhbUJvZHkpO1xuICAgIH1cbiAgICByZXR1cm4gY29udGV4dC5zdHJlYW1Db2xsZWN0b3Ioc3RyZWFtQm9keSkgfHwgUHJvbWlzZS5yZXNvbHZlKG5ldyBVaW50OEFycmF5KCkpO1xufTtcbmNvbnN0IHRocm93MjAwRXhjZXB0aW9uc01pZGRsZXdhcmVPcHRpb25zID0ge1xuICAgIHJlbGF0aW9uOiBcImFmdGVyXCIsXG4gICAgdG9NaWRkbGV3YXJlOiBcImRlc2VyaWFsaXplck1pZGRsZXdhcmVcIixcbiAgICB0YWdzOiBbXCJUSFJPV18yMDBfRVhDRVBUSU9OU1wiLCBcIlMzXCJdLFxuICAgIG5hbWU6IFwidGhyb3cyMDBFeGNlcHRpb25zTWlkZGxld2FyZVwiLFxuICAgIG92ZXJyaWRlOiB0cnVlLFxufTtcbmNvbnN0IGdldFRocm93MjAwRXhjZXB0aW9uc1BsdWdpbiA9IChjb25maWcpID0+ICh7XG4gICAgYXBwbHlUb1N0YWNrOiAoY2xpZW50U3RhY2spID0+IHtcbiAgICAgICAgY2xpZW50U3RhY2suYWRkUmVsYXRpdmVUbyh0aHJvdzIwMEV4Y2VwdGlvbnNNaWRkbGV3YXJlKGNvbmZpZyksIHRocm93MjAwRXhjZXB0aW9uc01pZGRsZXdhcmVPcHRpb25zKTtcbiAgICB9LFxufSk7XG5cbmZ1bmN0aW9uIGJ1Y2tldEVuZHBvaW50TWlkZGxld2FyZShvcHRpb25zKSB7XG4gICAgcmV0dXJuIChuZXh0LCBjb250ZXh0KSA9PiBhc3luYyAoYXJncykgPT4ge1xuICAgICAgICBpZiAob3B0aW9ucy5idWNrZXRFbmRwb2ludCkge1xuICAgICAgICAgICAgY29uc3QgZW5kcG9pbnQgPSBjb250ZXh0LmVuZHBvaW50VjI7XG4gICAgICAgICAgICBpZiAoZW5kcG9pbnQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBidWNrZXQgPSBhcmdzLmlucHV0LkJ1Y2tldDtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGJ1Y2tldCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYnVja2V0RW5kcG9pbnRVcmwgPSBuZXcgVVJMKGJ1Y2tldCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LmVuZHBvaW50VjIgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBidWNrZXRFbmRwb2ludFVybCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHdhcm5pbmcgPSBgQGF3cy1zZGsvbWlkZGxld2FyZS1zZGstczM6IGJ1Y2tldEVuZHBvaW50PXRydWUgd2FzIHNldCBidXQgQnVja2V0PSR7YnVja2V0fSBjb3VsZCBub3QgYmUgcGFyc2VkIGFzIFVSTC5gO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnRleHQubG9nZ2VyPy5jb25zdHJ1Y3Rvcj8ubmFtZSA9PT0gXCJOb09wTG9nZ2VyXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4od2FybmluZyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LmxvZ2dlcj8ud2Fybj8uKHdhcm5pbmcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV4dChhcmdzKTtcbiAgICB9O1xufVxuY29uc3QgYnVja2V0RW5kcG9pbnRNaWRkbGV3YXJlT3B0aW9ucyA9IHtcbiAgICBuYW1lOiBcImJ1Y2tldEVuZHBvaW50TWlkZGxld2FyZVwiLFxuICAgIG92ZXJyaWRlOiB0cnVlLFxuICAgIHJlbGF0aW9uOiBcImFmdGVyXCIsXG4gICAgdG9NaWRkbGV3YXJlOiBcImVuZHBvaW50VjJNaWRkbGV3YXJlXCIsXG59O1xuXG5mdW5jdGlvbiB2YWxpZGF0ZUJ1Y2tldE5hbWVNaWRkbGV3YXJlKHsgYnVja2V0RW5kcG9pbnQgfSkge1xuICAgIHJldHVybiAobmV4dCkgPT4gYXN5bmMgKGFyZ3MpID0+IHtcbiAgICAgICAgY29uc3QgeyBpbnB1dDogeyBCdWNrZXQgfSwgfSA9IGFyZ3M7XG4gICAgICAgIGlmICghYnVja2V0RW5kcG9pbnQgJiYgdHlwZW9mIEJ1Y2tldCA9PT0gXCJzdHJpbmdcIiAmJiAhdXRpbEFyblBhcnNlci52YWxpZGF0ZShCdWNrZXQpICYmIEJ1Y2tldC5pbmRleE9mKFwiL1wiKSA+PSAwKSB7XG4gICAgICAgICAgICBjb25zdCBlcnIgPSBuZXcgRXJyb3IoYEJ1Y2tldCBuYW1lIHNob3VsZG4ndCBjb250YWluICcvJywgcmVjZWl2ZWQgJyR7QnVja2V0fSdgKTtcbiAgICAgICAgICAgIGVyci5uYW1lID0gXCJJbnZhbGlkQnVja2V0TmFtZVwiO1xuICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXh0KHsgLi4uYXJncyB9KTtcbiAgICB9O1xufVxuY29uc3QgdmFsaWRhdGVCdWNrZXROYW1lTWlkZGxld2FyZU9wdGlvbnMgPSB7XG4gICAgc3RlcDogXCJpbml0aWFsaXplXCIsXG4gICAgdGFnczogW1wiVkFMSURBVEVfQlVDS0VUX05BTUVcIl0sXG4gICAgbmFtZTogXCJ2YWxpZGF0ZUJ1Y2tldE5hbWVNaWRkbGV3YXJlXCIsXG4gICAgb3ZlcnJpZGU6IHRydWUsXG59O1xuY29uc3QgZ2V0VmFsaWRhdGVCdWNrZXROYW1lUGx1Z2luID0gKG9wdGlvbnMpID0+ICh7XG4gICAgYXBwbHlUb1N0YWNrOiAoY2xpZW50U3RhY2spID0+IHtcbiAgICAgICAgY2xpZW50U3RhY2suYWRkKHZhbGlkYXRlQnVja2V0TmFtZU1pZGRsZXdhcmUob3B0aW9ucyksIHZhbGlkYXRlQnVja2V0TmFtZU1pZGRsZXdhcmVPcHRpb25zKTtcbiAgICAgICAgY2xpZW50U3RhY2suYWRkUmVsYXRpdmVUbyhidWNrZXRFbmRwb2ludE1pZGRsZXdhcmUob3B0aW9ucyksIGJ1Y2tldEVuZHBvaW50TWlkZGxld2FyZU9wdGlvbnMpO1xuICAgIH0sXG59KTtcblxuY2xhc3MgUzNSZXN0WG1sUHJvdG9jb2wgZXh0ZW5kcyBwcm90b2NvbHMuQXdzUmVzdFhtbFByb3RvY29sIHtcbiAgICBhc3luYyBzZXJpYWxpemVSZXF1ZXN0KG9wZXJhdGlvblNjaGVtYSwgaW5wdXQsIGNvbnRleHQpIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IGF3YWl0IHN1cGVyLnNlcmlhbGl6ZVJlcXVlc3Qob3BlcmF0aW9uU2NoZW1hLCBpbnB1dCwgY29udGV4dCk7XG4gICAgICAgIGNvbnN0IG5zID0gc2NoZW1hLk5vcm1hbGl6ZWRTY2hlbWEub2Yob3BlcmF0aW9uU2NoZW1hLmlucHV0KTtcbiAgICAgICAgY29uc3Qgc3RhdGljU3RydWN0dXJlU2NoZW1hID0gbnMuZ2V0U2NoZW1hKCk7XG4gICAgICAgIGxldCBidWNrZXRNZW1iZXJJbmRleCA9IDA7XG4gICAgICAgIGNvbnN0IHJlcXVpcmVkTWVtYmVyQ291bnQgPSBzdGF0aWNTdHJ1Y3R1cmVTY2hlbWFbNl0gPz8gMDtcbiAgICAgICAgaWYgKGlucHV0ICYmIHR5cGVvZiBpbnB1dCA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgZm9yIChjb25zdCBbbWVtYmVyTmFtZSwgbWVtYmVyTnNdIG9mIG5zLnN0cnVjdEl0ZXJhdG9yKCkpIHtcbiAgICAgICAgICAgICAgICBpZiAoKytidWNrZXRNZW1iZXJJbmRleCA+IHJlcXVpcmVkTWVtYmVyQ291bnQpIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChtZW1iZXJOYW1lID09PSBcIkJ1Y2tldFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghaW5wdXQuQnVja2V0ICYmIG1lbWJlck5zLmdldE1lcmdlZFRyYWl0cygpLmh0dHBMYWJlbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyB2YWx1ZSBwcm92aWRlZCBmb3IgaW5wdXQgSFRUUCBsYWJlbDogQnVja2V0LmApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVxdWVzdDtcbiAgICB9XG59XG5cbmV4cG9ydHMuTk9ERV9ESVNBQkxFX1MzX0VYUFJFU1NfU0VTU0lPTl9BVVRIX09QVElPTlMgPSBOT0RFX0RJU0FCTEVfUzNfRVhQUkVTU19TRVNTSU9OX0FVVEhfT1BUSU9OUztcbmV4cG9ydHMuUzNFeHByZXNzSWRlbnRpdHlDYWNoZSA9IFMzRXhwcmVzc0lkZW50aXR5Q2FjaGU7XG5leHBvcnRzLlMzRXhwcmVzc0lkZW50aXR5Q2FjaGVFbnRyeSA9IFMzRXhwcmVzc0lkZW50aXR5Q2FjaGVFbnRyeTtcbmV4cG9ydHMuUzNFeHByZXNzSWRlbnRpdHlQcm92aWRlckltcGwgPSBTM0V4cHJlc3NJZGVudGl0eVByb3ZpZGVySW1wbDtcbmV4cG9ydHMuUzNSZXN0WG1sUHJvdG9jb2wgPSBTM1Jlc3RYbWxQcm90b2NvbDtcbmV4cG9ydHMuU2lnbmF0dXJlVjRTM0V4cHJlc3MgPSBTaWduYXR1cmVWNFMzRXhwcmVzcztcbmV4cG9ydHMuY2hlY2tDb250ZW50TGVuZ3RoSGVhZGVyID0gY2hlY2tDb250ZW50TGVuZ3RoSGVhZGVyO1xuZXhwb3J0cy5jaGVja0NvbnRlbnRMZW5ndGhIZWFkZXJNaWRkbGV3YXJlT3B0aW9ucyA9IGNoZWNrQ29udGVudExlbmd0aEhlYWRlck1pZGRsZXdhcmVPcHRpb25zO1xuZXhwb3J0cy5nZXRDaGVja0NvbnRlbnRMZW5ndGhIZWFkZXJQbHVnaW4gPSBnZXRDaGVja0NvbnRlbnRMZW5ndGhIZWFkZXJQbHVnaW47XG5leHBvcnRzLmdldFJlZ2lvblJlZGlyZWN0TWlkZGxld2FyZVBsdWdpbiA9IGdldFJlZ2lvblJlZGlyZWN0TWlkZGxld2FyZVBsdWdpbjtcbmV4cG9ydHMuZ2V0UzNFeHBpcmVzTWlkZGxld2FyZVBsdWdpbiA9IGdldFMzRXhwaXJlc01pZGRsZXdhcmVQbHVnaW47XG5leHBvcnRzLmdldFMzRXhwcmVzc0h0dHBTaWduaW5nUGx1Z2luID0gZ2V0UzNFeHByZXNzSHR0cFNpZ25pbmdQbHVnaW47XG5leHBvcnRzLmdldFMzRXhwcmVzc1BsdWdpbiA9IGdldFMzRXhwcmVzc1BsdWdpbjtcbmV4cG9ydHMuZ2V0VGhyb3cyMDBFeGNlcHRpb25zUGx1Z2luID0gZ2V0VGhyb3cyMDBFeGNlcHRpb25zUGx1Z2luO1xuZXhwb3J0cy5nZXRWYWxpZGF0ZUJ1Y2tldE5hbWVQbHVnaW4gPSBnZXRWYWxpZGF0ZUJ1Y2tldE5hbWVQbHVnaW47XG5leHBvcnRzLnJlZ2lvblJlZGlyZWN0RW5kcG9pbnRNaWRkbGV3YXJlID0gcmVnaW9uUmVkaXJlY3RFbmRwb2ludE1pZGRsZXdhcmU7XG5leHBvcnRzLnJlZ2lvblJlZGlyZWN0RW5kcG9pbnRNaWRkbGV3YXJlT3B0aW9ucyA9IHJlZ2lvblJlZGlyZWN0RW5kcG9pbnRNaWRkbGV3YXJlT3B0aW9ucztcbmV4cG9ydHMucmVnaW9uUmVkaXJlY3RNaWRkbGV3YXJlID0gcmVnaW9uUmVkaXJlY3RNaWRkbGV3YXJlO1xuZXhwb3J0cy5yZWdpb25SZWRpcmVjdE1pZGRsZXdhcmVPcHRpb25zID0gcmVnaW9uUmVkaXJlY3RNaWRkbGV3YXJlT3B0aW9ucztcbmV4cG9ydHMucmVzb2x2ZVMzQ29uZmlnID0gcmVzb2x2ZVMzQ29uZmlnO1xuZXhwb3J0cy5zM0V4cGlyZXNNaWRkbGV3YXJlID0gczNFeHBpcmVzTWlkZGxld2FyZTtcbmV4cG9ydHMuczNFeHBpcmVzTWlkZGxld2FyZU9wdGlvbnMgPSBzM0V4cGlyZXNNaWRkbGV3YXJlT3B0aW9ucztcbmV4cG9ydHMuczNFeHByZXNzSHR0cFNpZ25pbmdNaWRkbGV3YXJlID0gczNFeHByZXNzSHR0cFNpZ25pbmdNaWRkbGV3YXJlO1xuZXhwb3J0cy5zM0V4cHJlc3NIdHRwU2lnbmluZ01pZGRsZXdhcmVPcHRpb25zID0gczNFeHByZXNzSHR0cFNpZ25pbmdNaWRkbGV3YXJlT3B0aW9ucztcbmV4cG9ydHMuczNFeHByZXNzTWlkZGxld2FyZSA9IHMzRXhwcmVzc01pZGRsZXdhcmU7XG5leHBvcnRzLnMzRXhwcmVzc01pZGRsZXdhcmVPcHRpb25zID0gczNFeHByZXNzTWlkZGxld2FyZU9wdGlvbnM7XG5leHBvcnRzLnRocm93MjAwRXhjZXB0aW9uc01pZGRsZXdhcmUgPSB0aHJvdzIwMEV4Y2VwdGlvbnNNaWRkbGV3YXJlO1xuZXhwb3J0cy50aHJvdzIwMEV4Y2VwdGlvbnNNaWRkbGV3YXJlT3B0aW9ucyA9IHRocm93MjAwRXhjZXB0aW9uc01pZGRsZXdhcmVPcHRpb25zO1xuZXhwb3J0cy52YWxpZGF0ZUJ1Y2tldE5hbWVNaWRkbGV3YXJlID0gdmFsaWRhdGVCdWNrZXROYW1lTWlkZGxld2FyZTtcbmV4cG9ydHMudmFsaWRhdGVCdWNrZXROYW1lTWlkZGxld2FyZU9wdGlvbnMgPSB2YWxpZGF0ZUJ1Y2tldE5hbWVNaWRkbGV3YXJlT3B0aW9ucztcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBtaWRkbGV3YXJlU2RrUzMgPSByZXF1aXJlKCdAYXdzLXNkay9taWRkbGV3YXJlLXNkay1zMycpO1xudmFyIHNpZ25hdHVyZVY0ID0gcmVxdWlyZSgnQHNtaXRoeS9zaWduYXR1cmUtdjQnKTtcblxuY29uc3Qgc2lnbmF0dXJlVjRDcnRDb250YWluZXIgPSB7XG4gICAgQ3J0U2lnbmVyVjQ6IG51bGwsXG59O1xuXG5jbGFzcyBTaWduYXR1cmVWNE11bHRpUmVnaW9uIHtcbiAgICBzaWd2NGFTaWduZXI7XG4gICAgc2lndjRTaWduZXI7XG4gICAgc2lnbmVyT3B0aW9ucztcbiAgICBzdGF0aWMgc2lndjRhRGVwZW5kZW5jeSgpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBzaWduYXR1cmVWNENydENvbnRhaW5lci5DcnRTaWduZXJWNCA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICByZXR1cm4gXCJjcnRcIjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0eXBlb2Ygc2lnbmF0dXJlVjQuc2lnbmF0dXJlVjRhQ29udGFpbmVyLlNpZ25hdHVyZVY0YSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICByZXR1cm4gXCJqc1wiO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBcIm5vbmVcIjtcbiAgICB9XG4gICAgY29uc3RydWN0b3Iob3B0aW9ucykge1xuICAgICAgICB0aGlzLnNpZ3Y0U2lnbmVyID0gbmV3IG1pZGRsZXdhcmVTZGtTMy5TaWduYXR1cmVWNFMzRXhwcmVzcyhvcHRpb25zKTtcbiAgICAgICAgdGhpcy5zaWduZXJPcHRpb25zID0gb3B0aW9ucztcbiAgICB9XG4gICAgYXN5bmMgc2lnbihyZXF1ZXN0VG9TaWduLCBvcHRpb25zID0ge30pIHtcbiAgICAgICAgaWYgKG9wdGlvbnMuc2lnbmluZ1JlZ2lvbiA9PT0gXCIqXCIpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldFNpZ3Y0YVNpZ25lcigpLnNpZ24ocmVxdWVzdFRvU2lnbiwgb3B0aW9ucyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuc2lndjRTaWduZXIuc2lnbihyZXF1ZXN0VG9TaWduLCBvcHRpb25zKTtcbiAgICB9XG4gICAgYXN5bmMgc2lnbldpdGhDcmVkZW50aWFscyhyZXF1ZXN0VG9TaWduLCBjcmVkZW50aWFscywgb3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIGlmIChvcHRpb25zLnNpZ25pbmdSZWdpb24gPT09IFwiKlwiKSB7XG4gICAgICAgICAgICBjb25zdCBzaWduZXIgPSB0aGlzLmdldFNpZ3Y0YVNpZ25lcigpO1xuICAgICAgICAgICAgY29uc3QgQ3J0U2lnbmVyVjQgPSBzaWduYXR1cmVWNENydENvbnRhaW5lci5DcnRTaWduZXJWNDtcbiAgICAgICAgICAgIGlmIChDcnRTaWduZXJWNCAmJiBzaWduZXIgaW5zdGFuY2VvZiBDcnRTaWduZXJWNCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBzaWduZXIuc2lnbldpdGhDcmVkZW50aWFscyhyZXF1ZXN0VG9TaWduLCBjcmVkZW50aWFscywgb3B0aW9ucyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYHNpZ25XaXRoQ3JlZGVudGlhbHMgd2l0aCBzaWduaW5nUmVnaW9uICcqJyBpcyBvbmx5IHN1cHBvcnRlZCB3aGVuIHVzaW5nIHRoZSBDUlQgZGVwZW5kZW5jeSBAYXdzLXNkay9zaWduYXR1cmUtdjQtY3J0LiBgICtcbiAgICAgICAgICAgICAgICAgICAgYFBsZWFzZSBjaGVjayB3aGV0aGVyIHlvdSBoYXZlIGluc3RhbGxlZCB0aGUgXCJAYXdzLXNkay9zaWduYXR1cmUtdjQtY3J0XCIgcGFja2FnZSBleHBsaWNpdGx5LiBgICtcbiAgICAgICAgICAgICAgICAgICAgYFlvdSBtdXN0IGFsc28gcmVnaXN0ZXIgdGhlIHBhY2thZ2UgYnkgY2FsbGluZyBbcmVxdWlyZShcIkBhd3Mtc2RrL3NpZ25hdHVyZS12NC1jcnRcIik7XSBgICtcbiAgICAgICAgICAgICAgICAgICAgYG9yIGFuIEVTTSBlcXVpdmFsZW50IHN1Y2ggYXMgW2ltcG9ydCBcIkBhd3Mtc2RrL3NpZ25hdHVyZS12NC1jcnRcIjtdLiBgICtcbiAgICAgICAgICAgICAgICAgICAgYEZvciBtb3JlIGluZm9ybWF0aW9uIHBsZWFzZSBnbyB0byBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1zZGstanMtdjMjZnVuY3Rpb25hbGl0eS1yZXF1aXJpbmctYXdzLWNvbW1vbi1ydW50aW1lLWNydGApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnNpZ3Y0U2lnbmVyLnNpZ25XaXRoQ3JlZGVudGlhbHMocmVxdWVzdFRvU2lnbiwgY3JlZGVudGlhbHMsIG9wdGlvbnMpO1xuICAgIH1cbiAgICBhc3luYyBwcmVzaWduKG9yaWdpbmFsUmVxdWVzdCwgb3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIGlmIChvcHRpb25zLnNpZ25pbmdSZWdpb24gPT09IFwiKlwiKSB7XG4gICAgICAgICAgICBjb25zdCBzaWduZXIgPSB0aGlzLmdldFNpZ3Y0YVNpZ25lcigpO1xuICAgICAgICAgICAgY29uc3QgQ3J0U2lnbmVyVjQgPSBzaWduYXR1cmVWNENydENvbnRhaW5lci5DcnRTaWduZXJWNDtcbiAgICAgICAgICAgIGlmIChDcnRTaWduZXJWNCAmJiBzaWduZXIgaW5zdGFuY2VvZiBDcnRTaWduZXJWNCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBzaWduZXIucHJlc2lnbihvcmlnaW5hbFJlcXVlc3QsIG9wdGlvbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBwcmVzaWduIHdpdGggc2lnbmluZ1JlZ2lvbiAnKicgaXMgb25seSBzdXBwb3J0ZWQgd2hlbiB1c2luZyB0aGUgQ1JUIGRlcGVuZGVuY3kgQGF3cy1zZGsvc2lnbmF0dXJlLXY0LWNydC4gYCArXG4gICAgICAgICAgICAgICAgICAgIGBQbGVhc2UgY2hlY2sgd2hldGhlciB5b3UgaGF2ZSBpbnN0YWxsZWQgdGhlIFwiQGF3cy1zZGsvc2lnbmF0dXJlLXY0LWNydFwiIHBhY2thZ2UgZXhwbGljaXRseS4gYCArXG4gICAgICAgICAgICAgICAgICAgIGBZb3UgbXVzdCBhbHNvIHJlZ2lzdGVyIHRoZSBwYWNrYWdlIGJ5IGNhbGxpbmcgW3JlcXVpcmUoXCJAYXdzLXNkay9zaWduYXR1cmUtdjQtY3J0XCIpO10gYCArXG4gICAgICAgICAgICAgICAgICAgIGBvciBhbiBFU00gZXF1aXZhbGVudCBzdWNoIGFzIFtpbXBvcnQgXCJAYXdzLXNkay9zaWduYXR1cmUtdjQtY3J0XCI7XS4gYCArXG4gICAgICAgICAgICAgICAgICAgIGBGb3IgbW9yZSBpbmZvcm1hdGlvbiBwbGVhc2UgZ28gdG8gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3Mtc2RrLWpzLXYzI2Z1bmN0aW9uYWxpdHktcmVxdWlyaW5nLWF3cy1jb21tb24tcnVudGltZS1jcnRgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5zaWd2NFNpZ25lci5wcmVzaWduKG9yaWdpbmFsUmVxdWVzdCwgb3B0aW9ucyk7XG4gICAgfVxuICAgIGFzeW5jIHByZXNpZ25XaXRoQ3JlZGVudGlhbHMob3JpZ2luYWxSZXF1ZXN0LCBjcmVkZW50aWFscywgb3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIGlmIChvcHRpb25zLnNpZ25pbmdSZWdpb24gPT09IFwiKlwiKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNZXRob2QgcHJlc2lnbldpdGhDcmVkZW50aWFscyBpcyBub3Qgc3VwcG9ydGVkIGZvciBbc2lnbmluZ1JlZ2lvbj0qXS5cIik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuc2lndjRTaWduZXIucHJlc2lnbldpdGhDcmVkZW50aWFscyhvcmlnaW5hbFJlcXVlc3QsIGNyZWRlbnRpYWxzLCBvcHRpb25zKTtcbiAgICB9XG4gICAgZ2V0U2lndjRhU2lnbmVyKCkge1xuICAgICAgICBpZiAoIXRoaXMuc2lndjRhU2lnbmVyKSB7XG4gICAgICAgICAgICBjb25zdCBDcnRTaWduZXJWNCA9IHNpZ25hdHVyZVY0Q3J0Q29udGFpbmVyLkNydFNpZ25lclY0O1xuICAgICAgICAgICAgY29uc3QgSnNTaWdWNGFTaWduZXIgPSBzaWduYXR1cmVWNC5zaWduYXR1cmVWNGFDb250YWluZXIuU2lnbmF0dXJlVjRhO1xuICAgICAgICAgICAgaWYgKHRoaXMuc2lnbmVyT3B0aW9ucy5ydW50aW1lID09PSBcIm5vZGVcIikge1xuICAgICAgICAgICAgICAgIGlmICghQ3J0U2lnbmVyVjQgJiYgIUpzU2lnVjRhU2lnbmVyKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIk5laXRoZXIgQ1JUIG5vciBKUyBTaWdWNGEgaW1wbGVtZW50YXRpb24gaXMgYXZhaWxhYmxlLiBcIiArXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlBsZWFzZSBsb2FkIGVpdGhlciBAYXdzLXNkay9zaWduYXR1cmUtdjQtY3J0IG9yIEBhd3Mtc2RrL3NpZ25hdHVyZS12NGEuIFwiICtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiRm9yIG1vcmUgaW5mb3JtYXRpb24gcGxlYXNlIGdvIHRvIFwiICtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3Mtc2RrLWpzLXYzI2Z1bmN0aW9uYWxpdHktcmVxdWlyaW5nLWF3cy1jb21tb24tcnVudGltZS1jcnRcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChDcnRTaWduZXJWNCAmJiB0eXBlb2YgQ3J0U2lnbmVyVjQgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNpZ3Y0YVNpZ25lciA9IG5ldyBDcnRTaWduZXJWNCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAuLi50aGlzLnNpZ25lck9wdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICBzaWduaW5nQWxnb3JpdGhtOiAxLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoSnNTaWdWNGFTaWduZXIgJiYgdHlwZW9mIEpzU2lnVjRhU2lnbmVyID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zaWd2NGFTaWduZXIgPSBuZXcgSnNTaWdWNGFTaWduZXIoe1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5zaWduZXJPcHRpb25zLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkF2YWlsYWJsZSBTaWdWNGEgaW1wbGVtZW50YXRpb24gaXMgbm90IGEgdmFsaWQgY29uc3RydWN0b3IuIFwiICtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiUGxlYXNlIGVuc3VyZSB5b3UndmUgcHJvcGVybHkgaW1wb3J0ZWQgQGF3cy1zZGsvc2lnbmF0dXJlLXY0LWNydCBvciBAYXdzLXNkay9zaWduYXR1cmUtdjRhLlwiICtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiRm9yIG1vcmUgaW5mb3JtYXRpb24gcGxlYXNlIGdvIHRvIFwiICtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3Mtc2RrLWpzLXYzI2Z1bmN0aW9uYWxpdHktcmVxdWlyaW5nLWF3cy1jb21tb24tcnVudGltZS1jcnRcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKCFKc1NpZ1Y0YVNpZ25lciB8fCB0eXBlb2YgSnNTaWdWNGFTaWduZXIgIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJKUyBTaWdWNGEgaW1wbGVtZW50YXRpb24gaXMgbm90IGF2YWlsYWJsZSBvciBub3QgYSB2YWxpZCBjb25zdHJ1Y3Rvci4gXCIgK1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJQbGVhc2UgY2hlY2sgd2hldGhlciB5b3UgaGF2ZSBpbnN0YWxsZWQgdGhlIEBhd3Mtc2RrL3NpZ25hdHVyZS12NGEgcGFja2FnZSBleHBsaWNpdGx5LiBUaGUgQ1JUIGltcGxlbWVudGF0aW9uIGlzIG5vdCBhdmFpbGFibGUgZm9yIGJyb3dzZXJzLiBcIiArXG4gICAgICAgICAgICAgICAgICAgICAgICBcIllvdSBtdXN0IGFsc28gcmVnaXN0ZXIgdGhlIHBhY2thZ2UgYnkgY2FsbGluZyBbcmVxdWlyZSgnQGF3cy1zZGsvc2lnbmF0dXJlLXY0YScpO10gXCIgK1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJvciBhbiBFU00gZXF1aXZhbGVudCBzdWNoIGFzIFtpbXBvcnQgJ0Bhd3Mtc2RrL3NpZ25hdHVyZS12NGEnO10uIFwiICtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiRm9yIG1vcmUgaW5mb3JtYXRpb24gcGxlYXNlIGdvIHRvIFwiICtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3Mtc2RrLWpzLXYzI3VzaW5nLWphdmFzY3JpcHQtbm9uLWNydC1pbXBsZW1lbnRhdGlvbi1vZi1zaWd2NGFcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuc2lndjRhU2lnbmVyID0gbmV3IEpzU2lnVjRhU2lnbmVyKHtcbiAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5zaWduZXJPcHRpb25zLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnNpZ3Y0YVNpZ25lcjtcbiAgICB9XG59XG5cbmV4cG9ydHMuU2lnbmF0dXJlVjRNdWx0aVJlZ2lvbiA9IFNpZ25hdHVyZVY0TXVsdGlSZWdpb247XG5leHBvcnRzLnNpZ25hdHVyZVY0Q3J0Q29udGFpbmVyID0gc2lnbmF0dXJlVjRDcnRDb250YWluZXI7XG4iLCAiaW1wb3J0IHsgQmluYXJ5RGVjaXNpb25EaWFncmFtIH0gZnJvbSBcIkBzbWl0aHkvdXRpbC1lbmRwb2ludHNcIjtcbmNvbnN0IHEgPSBcInJlZlwiO1xuY29uc3QgYSA9IC0xLCBiID0gdHJ1ZSwgYyA9IFwiaXNTZXRcIiwgZCA9IFwiUGFydGl0aW9uUmVzdWx0XCIsIGUgPSBcImJvb2xlYW5FcXVhbHNcIiwgZiA9IFwic3RyaW5nRXF1YWxzXCIsIGcgPSBcImdldEF0dHJcIiwgaCA9IFwidXMtZWFzdC0xXCIsIGkgPSBcInNpZ3Y0XCIsIGogPSBcInN0c1wiLCBrID0gXCJodHRwczovL3N0cy57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH1cIiwgbCA9IHsgW3FdOiBcIkVuZHBvaW50XCIgfSwgbSA9IHsgW3FdOiBcIlJlZ2lvblwiIH0sIG4gPSB7IFtxXTogZCB9LCBvID0ge30sIHAgPSBbbV07XG5jb25zdCBfZGF0YSA9IHtcbiAgICBjb25kaXRpb25zOiBbXG4gICAgICAgIFtjLCBbbF1dLFxuICAgICAgICBbYywgcF0sXG4gICAgICAgIFtcImF3cy5wYXJ0aXRpb25cIiwgcCwgZF0sXG4gICAgICAgIFtlLCBbeyBbcV06IFwiVXNlRklQU1wiIH0sIGJdXSxcbiAgICAgICAgW2UsIFt7IFtxXTogXCJVc2VEdWFsU3RhY2tcIiB9LCBiXV0sXG4gICAgICAgIFtmLCBbbSwgXCJhd3MtZ2xvYmFsXCJdXSxcbiAgICAgICAgW2UsIFt7IFtxXTogXCJVc2VHbG9iYWxFbmRwb2ludFwiIH0sIGJdXSxcbiAgICAgICAgW2YsIFttLCBcImV1LWNlbnRyYWwtMVwiXV0sXG4gICAgICAgIFtlLCBbeyBmbjogZywgYXJndjogW24sIFwic3VwcG9ydHNEdWFsU3RhY2tcIl0gfSwgYl1dLFxuICAgICAgICBbZSwgW3sgZm46IGcsIGFyZ3Y6IFtuLCBcInN1cHBvcnRzRklQU1wiXSB9LCBiXV0sXG4gICAgICAgIFtmLCBbbSwgXCJhcC1zb3V0aC0xXCJdXSxcbiAgICAgICAgW2YsIFttLCBcImV1LW5vcnRoLTFcIl1dLFxuICAgICAgICBbZiwgW20sIFwiZXUtd2VzdC0xXCJdXSxcbiAgICAgICAgW2YsIFttLCBcImV1LXdlc3QtMlwiXV0sXG4gICAgICAgIFtmLCBbbSwgXCJldS13ZXN0LTNcIl1dLFxuICAgICAgICBbZiwgW20sIFwic2EtZWFzdC0xXCJdXSxcbiAgICAgICAgW2YsIFttLCBoXV0sXG4gICAgICAgIFtmLCBbbSwgXCJ1cy1lYXN0LTJcIl1dLFxuICAgICAgICBbZiwgW20sIFwidXMtd2VzdC0yXCJdXSxcbiAgICAgICAgW2YsIFttLCBcInVzLXdlc3QtMVwiXV0sXG4gICAgICAgIFtmLCBbbSwgXCJjYS1jZW50cmFsLTFcIl1dLFxuICAgICAgICBbZiwgW20sIFwiYXAtc291dGhlYXN0LTFcIl1dLFxuICAgICAgICBbZiwgW20sIFwiYXAtbm9ydGhlYXN0LTFcIl1dLFxuICAgICAgICBbZiwgW20sIFwiYXAtc291dGhlYXN0LTJcIl1dLFxuICAgICAgICBbZiwgW3sgZm46IGcsIGFyZ3Y6IFtuLCBcIm5hbWVcIl0gfSwgXCJhd3MtdXMtZ292XCJdXSxcbiAgICBdLFxuICAgIHJlc3VsdHM6IFtcbiAgICAgICAgW2FdLFxuICAgICAgICBbXCJodHRwczovL3N0cy5hbWF6b25hd3MuY29tXCIsIHsgYXV0aFNjaGVtZXM6IFt7IG5hbWU6IGksIHNpZ25pbmdOYW1lOiBqLCBzaWduaW5nUmVnaW9uOiBoIH1dIH1dLFxuICAgICAgICBbaywgeyBhdXRoU2NoZW1lczogW3sgbmFtZTogaSwgc2lnbmluZ05hbWU6IGosIHNpZ25pbmdSZWdpb246IFwie1JlZ2lvbn1cIiB9XSB9XSxcbiAgICAgICAgW2EsIFwiSW52YWxpZCBDb25maWd1cmF0aW9uOiBGSVBTIGFuZCBjdXN0b20gZW5kcG9pbnQgYXJlIG5vdCBzdXBwb3J0ZWRcIl0sXG4gICAgICAgIFthLCBcIkludmFsaWQgQ29uZmlndXJhdGlvbjogRHVhbHN0YWNrIGFuZCBjdXN0b20gZW5kcG9pbnQgYXJlIG5vdCBzdXBwb3J0ZWRcIl0sXG4gICAgICAgIFtsLCBvXSxcbiAgICAgICAgW1wiaHR0cHM6Ly9zdHMtZmlwcy57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2R1YWxTdGFja0Ruc1N1ZmZpeH1cIiwgb10sXG4gICAgICAgIFthLCBcIkZJUFMgYW5kIER1YWxTdGFjayBhcmUgZW5hYmxlZCwgYnV0IHRoaXMgcGFydGl0aW9uIGRvZXMgbm90IHN1cHBvcnQgb25lIG9yIGJvdGhcIl0sXG4gICAgICAgIFtcImh0dHBzOi8vc3RzLntSZWdpb259LmFtYXpvbmF3cy5jb21cIiwgb10sXG4gICAgICAgIFtcImh0dHBzOi8vc3RzLWZpcHMue1JlZ2lvbn0ue1BhcnRpdGlvblJlc3VsdCNkbnNTdWZmaXh9XCIsIG9dLFxuICAgICAgICBbYSwgXCJGSVBTIGlzIGVuYWJsZWQgYnV0IHRoaXMgcGFydGl0aW9uIGRvZXMgbm90IHN1cHBvcnQgRklQU1wiXSxcbiAgICAgICAgW1wiaHR0cHM6Ly9zdHMue1JlZ2lvbn0ue1BhcnRpdGlvblJlc3VsdCNkdWFsU3RhY2tEbnNTdWZmaXh9XCIsIG9dLFxuICAgICAgICBbYSwgXCJEdWFsU3RhY2sgaXMgZW5hYmxlZCBidXQgdGhpcyBwYXJ0aXRpb24gZG9lcyBub3Qgc3VwcG9ydCBEdWFsU3RhY2tcIl0sXG4gICAgICAgIFtrLCBvXSxcbiAgICAgICAgW2EsIFwiSW52YWxpZCBDb25maWd1cmF0aW9uOiBNaXNzaW5nIFJlZ2lvblwiXSxcbiAgICBdLFxufTtcbmNvbnN0IHJvb3QgPSAyO1xuY29uc3QgciA9IDEwMF8wMDBfMDAwO1xuY29uc3Qgbm9kZXMgPSBuZXcgSW50MzJBcnJheShbXG4gICAgLTEsXG4gICAgMSxcbiAgICAtMSxcbiAgICAwLFxuICAgIDMwLFxuICAgIDMsXG4gICAgMSxcbiAgICA0LFxuICAgIHIgKyAxNCxcbiAgICAyLFxuICAgIDUsXG4gICAgciArIDE0LFxuICAgIDMsXG4gICAgMjUsXG4gICAgNixcbiAgICA0LFxuICAgIDI0LFxuICAgIDcsXG4gICAgNSxcbiAgICByICsgMSxcbiAgICA4LFxuICAgIDYsXG4gICAgOSxcbiAgICByICsgMTMsXG4gICAgNyxcbiAgICByICsgMSxcbiAgICAxMCxcbiAgICAxMCxcbiAgICByICsgMSxcbiAgICAxMSxcbiAgICAxMSxcbiAgICByICsgMSxcbiAgICAxMixcbiAgICAxMixcbiAgICByICsgMSxcbiAgICAxMyxcbiAgICAxMyxcbiAgICByICsgMSxcbiAgICAxNCxcbiAgICAxNCxcbiAgICByICsgMSxcbiAgICAxNSxcbiAgICAxNSxcbiAgICByICsgMSxcbiAgICAxNixcbiAgICAxNixcbiAgICByICsgMSxcbiAgICAxNyxcbiAgICAxNyxcbiAgICByICsgMSxcbiAgICAxOCxcbiAgICAxOCxcbiAgICByICsgMSxcbiAgICAxOSxcbiAgICAxOSxcbiAgICByICsgMSxcbiAgICAyMCxcbiAgICAyMCxcbiAgICByICsgMSxcbiAgICAyMSxcbiAgICAyMSxcbiAgICByICsgMSxcbiAgICAyMixcbiAgICAyMixcbiAgICByICsgMSxcbiAgICAyMyxcbiAgICAyMyxcbiAgICByICsgMSxcbiAgICByICsgMixcbiAgICA4LFxuICAgIHIgKyAxMSxcbiAgICByICsgMTIsXG4gICAgNCxcbiAgICAyOCxcbiAgICAyNixcbiAgICA5LFxuICAgIDI3LFxuICAgIHIgKyAxMCxcbiAgICAyNCxcbiAgICByICsgOCxcbiAgICByICsgOSxcbiAgICA4LFxuICAgIDI5LFxuICAgIHIgKyA3LFxuICAgIDksXG4gICAgciArIDYsXG4gICAgciArIDcsXG4gICAgMyxcbiAgICByICsgMyxcbiAgICAzMSxcbiAgICA0LFxuICAgIHIgKyA0LFxuICAgIHIgKyA1LFxuXSk7XG5leHBvcnQgY29uc3QgYmRkID0gQmluYXJ5RGVjaXNpb25EaWFncmFtLmZyb20obm9kZXMsIHJvb3QsIF9kYXRhLmNvbmRpdGlvbnMsIF9kYXRhLnJlc3VsdHMpO1xuIiwgImltcG9ydCB7IGF3c0VuZHBvaW50RnVuY3Rpb25zIH0gZnJvbSBcIkBhd3Mtc2RrL3V0aWwtZW5kcG9pbnRzXCI7XG5pbXBvcnQgeyBjdXN0b21FbmRwb2ludEZ1bmN0aW9ucywgZGVjaWRlRW5kcG9pbnQsIEVuZHBvaW50Q2FjaGUgfSBmcm9tIFwiQHNtaXRoeS91dGlsLWVuZHBvaW50c1wiO1xuaW1wb3J0IHsgYmRkIH0gZnJvbSBcIi4vYmRkXCI7XG5jb25zdCBjYWNoZSA9IG5ldyBFbmRwb2ludENhY2hlKHtcbiAgICBzaXplOiA1MCxcbiAgICBwYXJhbXM6IFtcIkVuZHBvaW50XCIsIFwiUmVnaW9uXCIsIFwiVXNlRHVhbFN0YWNrXCIsIFwiVXNlRklQU1wiLCBcIlVzZUdsb2JhbEVuZHBvaW50XCJdLFxufSk7XG5leHBvcnQgY29uc3QgZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIgPSAoZW5kcG9pbnRQYXJhbXMsIGNvbnRleHQgPSB7fSkgPT4ge1xuICAgIHJldHVybiBjYWNoZS5nZXQoZW5kcG9pbnRQYXJhbXMsICgpID0+IGRlY2lkZUVuZHBvaW50KGJkZCwge1xuICAgICAgICBlbmRwb2ludFBhcmFtczogZW5kcG9pbnRQYXJhbXMsXG4gICAgICAgIGxvZ2dlcjogY29udGV4dC5sb2dnZXIsXG4gICAgfSkpO1xufTtcbmN1c3RvbUVuZHBvaW50RnVuY3Rpb25zLmF3cyA9IGF3c0VuZHBvaW50RnVuY3Rpb25zO1xuIiwgImltcG9ydCB7IHJlc29sdmVBd3NTZGtTaWdWNEFDb25maWcsIHJlc29sdmVBd3NTZGtTaWdWNENvbmZpZyB9IGZyb20gXCJAYXdzLXNkay9jb3JlL2h0dHBBdXRoU2NoZW1lc1wiO1xuaW1wb3J0IHsgU2lnbmF0dXJlVjRNdWx0aVJlZ2lvbiB9IGZyb20gXCJAYXdzLXNkay9zaWduYXR1cmUtdjQtbXVsdGktcmVnaW9uXCI7XG5pbXBvcnQgeyByZXNvbHZlUGFyYW1zIH0gZnJvbSBcIkBzbWl0aHkvbWlkZGxld2FyZS1lbmRwb2ludFwiO1xuaW1wb3J0IHsgZ2V0U21pdGh5Q29udGV4dCwgbm9ybWFsaXplUHJvdmlkZXIgfSBmcm9tIFwiQHNtaXRoeS91dGlsLW1pZGRsZXdhcmVcIjtcbmltcG9ydCB7IGRlZmF1bHRFbmRwb2ludFJlc29sdmVyIH0gZnJvbSBcIi4uL2VuZHBvaW50L2VuZHBvaW50UmVzb2x2ZXJcIjtcbmltcG9ydCB7IFNUU0NsaWVudCB9IGZyb20gXCIuLi9TVFNDbGllbnRcIjtcbmNvbnN0IGNyZWF0ZUVuZHBvaW50UnVsZVNldEh0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyID0gKGRlZmF1bHRIdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlcikgPT4gYXN5bmMgKGNvbmZpZywgY29udGV4dCwgaW5wdXQpID0+IHtcbiAgICBpZiAoIWlucHV0KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkNvdWxkIG5vdCBmaW5kIGBpbnB1dGAgZm9yIGBkZWZhdWx0RW5kcG9pbnRSdWxlU2V0SHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXJgXCIpO1xuICAgIH1cbiAgICBjb25zdCBkZWZhdWx0UGFyYW1ldGVycyA9IGF3YWl0IGRlZmF1bHRIdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlcihjb25maWcsIGNvbnRleHQsIGlucHV0KTtcbiAgICBjb25zdCBpbnN0cnVjdGlvbnNGbiA9IGdldFNtaXRoeUNvbnRleHQoY29udGV4dCk/LmNvbW1hbmRJbnN0YW5jZT8uY29uc3RydWN0b3JcbiAgICAgICAgPy5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucztcbiAgICBpZiAoIWluc3RydWN0aW9uc0ZuKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSBpcyBub3QgZGVmaW5lZCBvbiAnJHtjb250ZXh0LmNvbW1hbmROYW1lfSdgKTtcbiAgICB9XG4gICAgY29uc3QgZW5kcG9pbnRQYXJhbWV0ZXJzID0gYXdhaXQgcmVzb2x2ZVBhcmFtcyhpbnB1dCwgeyBnZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9uczogaW5zdHJ1Y3Rpb25zRm4gfSwgY29uZmlnKTtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihkZWZhdWx0UGFyYW1ldGVycywgZW5kcG9pbnRQYXJhbWV0ZXJzKTtcbn07XG5jb25zdCBfZGVmYXVsdFNUU0h0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyID0gYXN5bmMgKGNvbmZpZywgY29udGV4dCwgaW5wdXQpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgICBvcGVyYXRpb246IGdldFNtaXRoeUNvbnRleHQoY29udGV4dCkub3BlcmF0aW9uLFxuICAgICAgICByZWdpb246IChhd2FpdCBub3JtYWxpemVQcm92aWRlcihjb25maWcucmVnaW9uKSgpKSB8fFxuICAgICAgICAgICAgKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJleHBlY3RlZCBgcmVnaW9uYCB0byBiZSBjb25maWd1cmVkIGZvciBgYXdzLmF1dGgjc2lndjRgXCIpO1xuICAgICAgICAgICAgfSkoKSxcbiAgICB9O1xufTtcbmV4cG9ydCBjb25zdCBkZWZhdWx0U1RTSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIgPSBjcmVhdGVFbmRwb2ludFJ1bGVTZXRIdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlcihfZGVmYXVsdFNUU0h0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyKTtcbmZ1bmN0aW9uIGNyZWF0ZUF3c0F1dGhTaWd2NEh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc2NoZW1lSWQ6IFwiYXdzLmF1dGgjc2lndjRcIixcbiAgICAgICAgc2lnbmluZ1Byb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIG5hbWU6IFwic3RzXCIsXG4gICAgICAgICAgICByZWdpb246IGF1dGhQYXJhbWV0ZXJzLnJlZ2lvbixcbiAgICAgICAgfSxcbiAgICAgICAgcHJvcGVydGllc0V4dHJhY3RvcjogKGNvbmZpZywgY29udGV4dCkgPT4gKHtcbiAgICAgICAgICAgIHNpZ25pbmdQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgICAgY29uZmlnLFxuICAgICAgICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9KSxcbiAgICB9O1xufVxuZnVuY3Rpb24gY3JlYXRlQXdzQXV0aFNpZ3Y0YUh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc2NoZW1lSWQ6IFwiYXdzLmF1dGgjc2lndjRhXCIsXG4gICAgICAgIHNpZ25pbmdQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICBuYW1lOiBcInN0c1wiLFxuICAgICAgICAgICAgcmVnaW9uOiBhdXRoUGFyYW1ldGVycy5yZWdpb24sXG4gICAgICAgIH0sXG4gICAgICAgIHByb3BlcnRpZXNFeHRyYWN0b3I6IChjb25maWcsIGNvbnRleHQpID0+ICh7XG4gICAgICAgICAgICBzaWduaW5nUHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgIGNvbmZpZyxcbiAgICAgICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgfTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVNtaXRoeUFwaU5vQXV0aEh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc2NoZW1lSWQ6IFwic21pdGh5LmFwaSNub0F1dGhcIixcbiAgICB9O1xufVxuY29uc3QgY3JlYXRlRW5kcG9pbnRSdWxlU2V0SHR0cEF1dGhTY2hlbWVQcm92aWRlciA9IChkZWZhdWx0RW5kcG9pbnRSZXNvbHZlciwgZGVmYXVsdEh0dHBBdXRoU2NoZW1lUmVzb2x2ZXIsIGNyZWF0ZUh0dHBBdXRoT3B0aW9uRnVuY3Rpb25zKSA9PiB7XG4gICAgY29uc3QgZW5kcG9pbnRSdWxlU2V0SHR0cEF1dGhTY2hlbWVQcm92aWRlciA9IChhdXRoUGFyYW1ldGVycykgPT4ge1xuICAgICAgICBjb25zdCBlbmRwb2ludCA9IGRlZmF1bHRFbmRwb2ludFJlc29sdmVyKGF1dGhQYXJhbWV0ZXJzKTtcbiAgICAgICAgY29uc3QgYXV0aFNjaGVtZXMgPSBlbmRwb2ludC5wcm9wZXJ0aWVzPy5hdXRoU2NoZW1lcztcbiAgICAgICAgaWYgKCFhdXRoU2NoZW1lcykge1xuICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRIdHRwQXV0aFNjaGVtZVJlc29sdmVyKGF1dGhQYXJhbWV0ZXJzKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBvcHRpb25zID0gW107XG4gICAgICAgIGZvciAoY29uc3Qgc2NoZW1lIG9mIGF1dGhTY2hlbWVzKSB7XG4gICAgICAgICAgICBjb25zdCB7IG5hbWU6IHJlc29sdmVkTmFtZSwgcHJvcGVydGllcyA9IHt9LCAuLi5yZXN0IH0gPSBzY2hlbWU7XG4gICAgICAgICAgICBjb25zdCBuYW1lID0gcmVzb2x2ZWROYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICBpZiAocmVzb2x2ZWROYW1lICE9PSBuYW1lKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKGBIdHRwQXV0aFNjaGVtZSBoYXMgYmVlbiBub3JtYWxpemVkIHdpdGggbG93ZXJjYXNpbmc6ICcke3Jlc29sdmVkTmFtZX0nIHRvICcke25hbWV9J2ApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IHNjaGVtZUlkO1xuICAgICAgICAgICAgaWYgKG5hbWUgPT09IFwic2lndjRhXCIpIHtcbiAgICAgICAgICAgICAgICBzY2hlbWVJZCA9IFwiYXdzLmF1dGgjc2lndjRhXCI7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2lndjRQcmVzZW50ID0gYXV0aFNjaGVtZXMuZmluZCgocykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBuYW1lID0gcy5uYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuYW1lICE9PSBcInNpZ3Y0YVwiICYmIG5hbWUuc3RhcnRzV2l0aChcInNpZ3Y0XCIpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmIChTaWduYXR1cmVWNE11bHRpUmVnaW9uLnNpZ3Y0YURlcGVuZGVuY3koKSA9PT0gXCJub25lXCIgJiYgc2lndjRQcmVzZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKG5hbWUuc3RhcnRzV2l0aChcInNpZ3Y0XCIpKSB7XG4gICAgICAgICAgICAgICAgc2NoZW1lSWQgPSBcImF3cy5hdXRoI3NpZ3Y0XCI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gSHR0cEF1dGhTY2hlbWUgZm91bmQgaW4gJ0BzbWl0aHkucnVsZXMjZW5kcG9pbnRSdWxlU2V0JzogJyR7bmFtZX0nYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBjcmVhdGVPcHRpb24gPSBjcmVhdGVIdHRwQXV0aE9wdGlvbkZ1bmN0aW9uc1tzY2hlbWVJZF07XG4gICAgICAgICAgICBpZiAoIWNyZWF0ZU9wdGlvbikge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQ291bGQgbm90IGZpbmQgSHR0cEF1dGhPcHRpb24gY3JlYXRlIGZ1bmN0aW9uIGZvciAnJHtzY2hlbWVJZH0nYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBvcHRpb24gPSBjcmVhdGVPcHRpb24oYXV0aFBhcmFtZXRlcnMpO1xuICAgICAgICAgICAgb3B0aW9uLnNjaGVtZUlkID0gc2NoZW1lSWQ7XG4gICAgICAgICAgICBvcHRpb24uc2lnbmluZ1Byb3BlcnRpZXMgPSB7IC4uLihvcHRpb24uc2lnbmluZ1Byb3BlcnRpZXMgfHwge30pLCAuLi5yZXN0LCAuLi5wcm9wZXJ0aWVzIH07XG4gICAgICAgICAgICBvcHRpb25zLnB1c2gob3B0aW9uKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb3B0aW9ucztcbiAgICB9O1xuICAgIHJldHVybiBlbmRwb2ludFJ1bGVTZXRIdHRwQXV0aFNjaGVtZVByb3ZpZGVyO1xufTtcbmNvbnN0IF9kZWZhdWx0U1RTSHR0cEF1dGhTY2hlbWVQcm92aWRlciA9IChhdXRoUGFyYW1ldGVycykgPT4ge1xuICAgIGNvbnN0IG9wdGlvbnMgPSBbXTtcbiAgICBzd2l0Y2ggKGF1dGhQYXJhbWV0ZXJzLm9wZXJhdGlvbikge1xuICAgICAgICBjYXNlIFwiQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eVwiOiB7XG4gICAgICAgICAgICBvcHRpb25zLnB1c2goY3JlYXRlU21pdGh5QXBpTm9BdXRoSHR0cEF1dGhPcHRpb24oYXV0aFBhcmFtZXRlcnMpKTtcbiAgICAgICAgICAgIG9wdGlvbnMucHVzaChjcmVhdGVBd3NBdXRoU2lndjRhSHR0cEF1dGhPcHRpb24oYXV0aFBhcmFtZXRlcnMpKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIG9wdGlvbnMucHVzaChjcmVhdGVBd3NBdXRoU2lndjRIdHRwQXV0aE9wdGlvbihhdXRoUGFyYW1ldGVycykpO1xuICAgICAgICAgICAgb3B0aW9ucy5wdXNoKGNyZWF0ZUF3c0F1dGhTaWd2NGFIdHRwQXV0aE9wdGlvbihhdXRoUGFyYW1ldGVycykpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBvcHRpb25zO1xufTtcbmV4cG9ydCBjb25zdCBkZWZhdWx0U1RTSHR0cEF1dGhTY2hlbWVQcm92aWRlciA9IGNyZWF0ZUVuZHBvaW50UnVsZVNldEh0dHBBdXRoU2NoZW1lUHJvdmlkZXIoZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIsIF9kZWZhdWx0U1RTSHR0cEF1dGhTY2hlbWVQcm92aWRlciwge1xuICAgIFwiYXdzLmF1dGgjc2lndjRcIjogY3JlYXRlQXdzQXV0aFNpZ3Y0SHR0cEF1dGhPcHRpb24sXG4gICAgXCJhd3MuYXV0aCNzaWd2NGFcIjogY3JlYXRlQXdzQXV0aFNpZ3Y0YUh0dHBBdXRoT3B0aW9uLFxuICAgIFwic21pdGh5LmFwaSNub0F1dGhcIjogY3JlYXRlU21pdGh5QXBpTm9BdXRoSHR0cEF1dGhPcHRpb24sXG59KTtcbmV4cG9ydCBjb25zdCByZXNvbHZlU3RzQXV0aENvbmZpZyA9IChpbnB1dCkgPT4gT2JqZWN0LmFzc2lnbihpbnB1dCwge1xuICAgIHN0c0NsaWVudEN0b3I6IFNUU0NsaWVudCxcbn0pO1xuZXhwb3J0IGNvbnN0IHJlc29sdmVIdHRwQXV0aFNjaGVtZUNvbmZpZyA9IChjb25maWcpID0+IHtcbiAgICBjb25zdCBjb25maWdfMCA9IHJlc29sdmVTdHNBdXRoQ29uZmlnKGNvbmZpZyk7XG4gICAgY29uc3QgY29uZmlnXzEgPSByZXNvbHZlQXdzU2RrU2lnVjRDb25maWcoY29uZmlnXzApO1xuICAgIGNvbnN0IGNvbmZpZ18yID0gcmVzb2x2ZUF3c1Nka1NpZ1Y0QUNvbmZpZyhjb25maWdfMSk7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oY29uZmlnXzIsIHtcbiAgICAgICAgYXV0aFNjaGVtZVByZWZlcmVuY2U6IG5vcm1hbGl6ZVByb3ZpZGVyKGNvbmZpZy5hdXRoU2NoZW1lUHJlZmVyZW5jZSA/PyBbXSksXG4gICAgfSk7XG59O1xuIiwgImV4cG9ydCBjb25zdCByZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzID0gKG9wdGlvbnMpID0+IHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihvcHRpb25zLCB7XG4gICAgICAgIHVzZUR1YWxzdGFja0VuZHBvaW50OiBvcHRpb25zLnVzZUR1YWxzdGFja0VuZHBvaW50ID8/IGZhbHNlLFxuICAgICAgICB1c2VGaXBzRW5kcG9pbnQ6IG9wdGlvbnMudXNlRmlwc0VuZHBvaW50ID8/IGZhbHNlLFxuICAgICAgICB1c2VHbG9iYWxFbmRwb2ludDogb3B0aW9ucy51c2VHbG9iYWxFbmRwb2ludCA/PyBmYWxzZSxcbiAgICAgICAgZGVmYXVsdFNpZ25pbmdOYW1lOiBcInN0c1wiLFxuICAgIH0pO1xufTtcbmV4cG9ydCBjb25zdCBjb21tb25QYXJhbXMgPSB7XG4gICAgVXNlR2xvYmFsRW5kcG9pbnQ6IHsgdHlwZTogXCJidWlsdEluUGFyYW1zXCIsIG5hbWU6IFwidXNlR2xvYmFsRW5kcG9pbnRcIiB9LFxuICAgIFVzZUZJUFM6IHsgdHlwZTogXCJidWlsdEluUGFyYW1zXCIsIG5hbWU6IFwidXNlRmlwc0VuZHBvaW50XCIgfSxcbiAgICBFbmRwb2ludDogeyB0eXBlOiBcImJ1aWx0SW5QYXJhbXNcIiwgbmFtZTogXCJlbmRwb2ludFwiIH0sXG4gICAgUmVnaW9uOiB7IHR5cGU6IFwiYnVpbHRJblBhcmFtc1wiLCBuYW1lOiBcInJlZ2lvblwiIH0sXG4gICAgVXNlRHVhbFN0YWNrOiB7IHR5cGU6IFwiYnVpbHRJblBhcmFtc1wiLCBuYW1lOiBcInVzZUR1YWxzdGFja0VuZHBvaW50XCIgfSxcbn07XG4iLCAiaW1wb3J0IHsgU2VydmljZUV4Y2VwdGlvbiBhcyBfX1NlcnZpY2VFeGNlcHRpb24sIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuZXhwb3J0IHsgX19TZXJ2aWNlRXhjZXB0aW9uIH07XG5leHBvcnQgY2xhc3MgU1RTU2VydmljZUV4Y2VwdGlvbiBleHRlbmRzIF9fU2VydmljZUV4Y2VwdGlvbiB7XG4gICAgY29uc3RydWN0b3Iob3B0aW9ucykge1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFNUU1NlcnZpY2VFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgU1RTU2VydmljZUV4Y2VwdGlvbiBhcyBfX0Jhc2VFeGNlcHRpb24gfSBmcm9tIFwiLi9TVFNTZXJ2aWNlRXhjZXB0aW9uXCI7XG5leHBvcnQgY2xhc3MgRXhwaXJlZFRva2VuRXhjZXB0aW9uIGV4dGVuZHMgX19CYXNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJFeHBpcmVkVG9rZW5FeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJFeHBpcmVkVG9rZW5FeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgRXhwaXJlZFRva2VuRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIE1hbGZvcm1lZFBvbGljeURvY3VtZW50RXhjZXB0aW9uIGV4dGVuZHMgX19CYXNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJNYWxmb3JtZWRQb2xpY3lEb2N1bWVudEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIk1hbGZvcm1lZFBvbGljeURvY3VtZW50RXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIE1hbGZvcm1lZFBvbGljeURvY3VtZW50RXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIFBhY2tlZFBvbGljeVRvb0xhcmdlRXhjZXB0aW9uIGV4dGVuZHMgX19CYXNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJQYWNrZWRQb2xpY3lUb29MYXJnZUV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIlBhY2tlZFBvbGljeVRvb0xhcmdlRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFBhY2tlZFBvbGljeVRvb0xhcmdlRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIFJlZ2lvbkRpc2FibGVkRXhjZXB0aW9uIGV4dGVuZHMgX19CYXNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJSZWdpb25EaXNhYmxlZEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIlJlZ2lvbkRpc2FibGVkRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFJlZ2lvbkRpc2FibGVkRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIElEUFJlamVjdGVkQ2xhaW1FeGNlcHRpb24gZXh0ZW5kcyBfX0Jhc2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIklEUFJlamVjdGVkQ2xhaW1FeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJJRFBSZWplY3RlZENsYWltRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIElEUFJlamVjdGVkQ2xhaW1FeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgSW52YWxpZElkZW50aXR5VG9rZW5FeGNlcHRpb24gZXh0ZW5kcyBfX0Jhc2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIkludmFsaWRJZGVudGl0eVRva2VuRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiSW52YWxpZElkZW50aXR5VG9rZW5FeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgSW52YWxpZElkZW50aXR5VG9rZW5FeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgSURQQ29tbXVuaWNhdGlvbkVycm9yRXhjZXB0aW9uIGV4dGVuZHMgX19CYXNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJJRFBDb21tdW5pY2F0aW9uRXJyb3JFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgICRyZXRyeWFibGUgPSB7fTtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiSURQQ29tbXVuaWNhdGlvbkVycm9yRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIElEUENvbW11bmljYXRpb25FcnJvckV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn1cbiIsICJjb25zdCBfQSA9IFwiQXJuXCI7XG5jb25zdCBfQUtJID0gXCJBY2Nlc3NLZXlJZFwiO1xuY29uc3QgX0FSID0gXCJBc3N1bWVSb2xlXCI7XG5jb25zdCBfQVJJID0gXCJBc3N1bWVkUm9sZUlkXCI7XG5jb25zdCBfQVJSID0gXCJBc3N1bWVSb2xlUmVxdWVzdFwiO1xuY29uc3QgX0FSUnMgPSBcIkFzc3VtZVJvbGVSZXNwb25zZVwiO1xuY29uc3QgX0FSVSA9IFwiQXNzdW1lZFJvbGVVc2VyXCI7XG5jb25zdCBfQVJXV0kgPSBcIkFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlcIjtcbmNvbnN0IF9BUldXSVIgPSBcIkFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlSZXF1ZXN0XCI7XG5jb25zdCBfQVJXV0lScyA9IFwiQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eVJlc3BvbnNlXCI7XG5jb25zdCBfQXUgPSBcIkF1ZGllbmNlXCI7XG5jb25zdCBfQyA9IFwiQ3JlZGVudGlhbHNcIjtcbmNvbnN0IF9DQSA9IFwiQ29udGV4dEFzc2VydGlvblwiO1xuY29uc3QgX0RTID0gXCJEdXJhdGlvblNlY29uZHNcIjtcbmNvbnN0IF9FID0gXCJFeHBpcmF0aW9uXCI7XG5jb25zdCBfRUkgPSBcIkV4dGVybmFsSWRcIjtcbmNvbnN0IF9FVEUgPSBcIkV4cGlyZWRUb2tlbkV4Y2VwdGlvblwiO1xuY29uc3QgX0lEUENFRSA9IFwiSURQQ29tbXVuaWNhdGlvbkVycm9yRXhjZXB0aW9uXCI7XG5jb25zdCBfSURQUkNFID0gXCJJRFBSZWplY3RlZENsYWltRXhjZXB0aW9uXCI7XG5jb25zdCBfSUlURSA9IFwiSW52YWxpZElkZW50aXR5VG9rZW5FeGNlcHRpb25cIjtcbmNvbnN0IF9LID0gXCJLZXlcIjtcbmNvbnN0IF9NUERFID0gXCJNYWxmb3JtZWRQb2xpY3lEb2N1bWVudEV4Y2VwdGlvblwiO1xuY29uc3QgX1AgPSBcIlBvbGljeVwiO1xuY29uc3QgX1BBID0gXCJQb2xpY3lBcm5zXCI7XG5jb25zdCBfUEFyID0gXCJQcm92aWRlckFyblwiO1xuY29uc3QgX1BDID0gXCJQcm92aWRlZENvbnRleHRzXCI7XG5jb25zdCBfUENMVCA9IFwiUHJvdmlkZWRDb250ZXh0c0xpc3RUeXBlXCI7XG5jb25zdCBfUENyID0gXCJQcm92aWRlZENvbnRleHRcIjtcbmNvbnN0IF9QRFQgPSBcIlBvbGljeURlc2NyaXB0b3JUeXBlXCI7XG5jb25zdCBfUEkgPSBcIlByb3ZpZGVySWRcIjtcbmNvbnN0IF9QUFMgPSBcIlBhY2tlZFBvbGljeVNpemVcIjtcbmNvbnN0IF9QUFRMRSA9IFwiUGFja2VkUG9saWN5VG9vTGFyZ2VFeGNlcHRpb25cIjtcbmNvbnN0IF9QciA9IFwiUHJvdmlkZXJcIjtcbmNvbnN0IF9SQSA9IFwiUm9sZUFyblwiO1xuY29uc3QgX1JERSA9IFwiUmVnaW9uRGlzYWJsZWRFeGNlcHRpb25cIjtcbmNvbnN0IF9SU04gPSBcIlJvbGVTZXNzaW9uTmFtZVwiO1xuY29uc3QgX1NBSyA9IFwiU2VjcmV0QWNjZXNzS2V5XCI7XG5jb25zdCBfU0ZXSVQgPSBcIlN1YmplY3RGcm9tV2ViSWRlbnRpdHlUb2tlblwiO1xuY29uc3QgX1NJID0gXCJTb3VyY2VJZGVudGl0eVwiO1xuY29uc3QgX1NOID0gXCJTZXJpYWxOdW1iZXJcIjtcbmNvbnN0IF9TVCA9IFwiU2Vzc2lvblRva2VuXCI7XG5jb25zdCBfVCA9IFwiVGFnc1wiO1xuY29uc3QgX1RDID0gXCJUb2tlbkNvZGVcIjtcbmNvbnN0IF9UVEsgPSBcIlRyYW5zaXRpdmVUYWdLZXlzXCI7XG5jb25zdCBfVGEgPSBcIlRhZ1wiO1xuY29uc3QgX1YgPSBcIlZhbHVlXCI7XG5jb25zdCBfV0lUID0gXCJXZWJJZGVudGl0eVRva2VuXCI7XG5jb25zdCBfYSA9IFwiYXJuXCI7XG5jb25zdCBfYUtTVCA9IFwiYWNjZXNzS2V5U2VjcmV0VHlwZVwiO1xuY29uc3QgX2FRRSA9IFwiYXdzUXVlcnlFcnJvclwiO1xuY29uc3QgX2MgPSBcImNsaWVudFwiO1xuY29uc3QgX2NUVCA9IFwiY2xpZW50VG9rZW5UeXBlXCI7XG5jb25zdCBfZSA9IFwiZXJyb3JcIjtcbmNvbnN0IF9oRSA9IFwiaHR0cEVycm9yXCI7XG5jb25zdCBfbSA9IFwibWVzc2FnZVwiO1xuY29uc3QgX3BETFQgPSBcInBvbGljeURlc2NyaXB0b3JMaXN0VHlwZVwiO1xuY29uc3QgX3MgPSBcInNtaXRoeS50cy5zZGsuc3ludGhldGljLmNvbS5hbWF6b25hd3Muc3RzXCI7XG5jb25zdCBfdExUID0gXCJ0YWdMaXN0VHlwZVwiO1xuY29uc3QgbjAgPSBcImNvbS5hbWF6b25hd3Muc3RzXCI7XG5pbXBvcnQgeyBUeXBlUmVnaXN0cnkgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3NjaGVtYVwiO1xuaW1wb3J0IHsgRXhwaXJlZFRva2VuRXhjZXB0aW9uLCBJRFBDb21tdW5pY2F0aW9uRXJyb3JFeGNlcHRpb24sIElEUFJlamVjdGVkQ2xhaW1FeGNlcHRpb24sIEludmFsaWRJZGVudGl0eVRva2VuRXhjZXB0aW9uLCBNYWxmb3JtZWRQb2xpY3lEb2N1bWVudEV4Y2VwdGlvbiwgUGFja2VkUG9saWN5VG9vTGFyZ2VFeGNlcHRpb24sIFJlZ2lvbkRpc2FibGVkRXhjZXB0aW9uLCB9IGZyb20gXCIuLi9tb2RlbHMvZXJyb3JzXCI7XG5pbXBvcnQgeyBTVFNTZXJ2aWNlRXhjZXB0aW9uIH0gZnJvbSBcIi4uL21vZGVscy9TVFNTZXJ2aWNlRXhjZXB0aW9uXCI7XG5jb25zdCBfc19yZWdpc3RyeSA9IFR5cGVSZWdpc3RyeS5mb3IoX3MpO1xuZXhwb3J0IHZhciBTVFNTZXJ2aWNlRXhjZXB0aW9uJCA9IFstMywgX3MsIFwiU1RTU2VydmljZUV4Y2VwdGlvblwiLCAwLCBbXSwgW11dO1xuX3NfcmVnaXN0cnkucmVnaXN0ZXJFcnJvcihTVFNTZXJ2aWNlRXhjZXB0aW9uJCwgU1RTU2VydmljZUV4Y2VwdGlvbik7XG5jb25zdCBuMF9yZWdpc3RyeSA9IFR5cGVSZWdpc3RyeS5mb3IobjApO1xuZXhwb3J0IHZhciBFeHBpcmVkVG9rZW5FeGNlcHRpb24kID0gW1xuICAgIC0zLFxuICAgIG4wLFxuICAgIF9FVEUsXG4gICAgeyBbX2FRRV06IFtgRXhwaXJlZFRva2VuRXhjZXB0aW9uYCwgNDAwXSwgW19lXTogX2MsIFtfaEVdOiA0MDAgfSxcbiAgICBbX21dLFxuICAgIFswXSxcbl07XG5uMF9yZWdpc3RyeS5yZWdpc3RlckVycm9yKEV4cGlyZWRUb2tlbkV4Y2VwdGlvbiQsIEV4cGlyZWRUb2tlbkV4Y2VwdGlvbik7XG5leHBvcnQgdmFyIElEUENvbW11bmljYXRpb25FcnJvckV4Y2VwdGlvbiQgPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX0lEUENFRSxcbiAgICB7IFtfYVFFXTogW2BJRFBDb21tdW5pY2F0aW9uRXJyb3JgLCA0MDBdLCBbX2VdOiBfYywgW19oRV06IDQwMCB9LFxuICAgIFtfbV0sXG4gICAgWzBdLFxuXTtcbm4wX3JlZ2lzdHJ5LnJlZ2lzdGVyRXJyb3IoSURQQ29tbXVuaWNhdGlvbkVycm9yRXhjZXB0aW9uJCwgSURQQ29tbXVuaWNhdGlvbkVycm9yRXhjZXB0aW9uKTtcbmV4cG9ydCB2YXIgSURQUmVqZWN0ZWRDbGFpbUV4Y2VwdGlvbiQgPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX0lEUFJDRSxcbiAgICB7IFtfYVFFXTogW2BJRFBSZWplY3RlZENsYWltYCwgNDAzXSwgW19lXTogX2MsIFtfaEVdOiA0MDMgfSxcbiAgICBbX21dLFxuICAgIFswXSxcbl07XG5uMF9yZWdpc3RyeS5yZWdpc3RlckVycm9yKElEUFJlamVjdGVkQ2xhaW1FeGNlcHRpb24kLCBJRFBSZWplY3RlZENsYWltRXhjZXB0aW9uKTtcbmV4cG9ydCB2YXIgSW52YWxpZElkZW50aXR5VG9rZW5FeGNlcHRpb24kID0gW1xuICAgIC0zLFxuICAgIG4wLFxuICAgIF9JSVRFLFxuICAgIHsgW19hUUVdOiBbYEludmFsaWRJZGVudGl0eVRva2VuYCwgNDAwXSwgW19lXTogX2MsIFtfaEVdOiA0MDAgfSxcbiAgICBbX21dLFxuICAgIFswXSxcbl07XG5uMF9yZWdpc3RyeS5yZWdpc3RlckVycm9yKEludmFsaWRJZGVudGl0eVRva2VuRXhjZXB0aW9uJCwgSW52YWxpZElkZW50aXR5VG9rZW5FeGNlcHRpb24pO1xuZXhwb3J0IHZhciBNYWxmb3JtZWRQb2xpY3lEb2N1bWVudEV4Y2VwdGlvbiQgPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX01QREUsXG4gICAgeyBbX2FRRV06IFtgTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRgLCA0MDBdLCBbX2VdOiBfYywgW19oRV06IDQwMCB9LFxuICAgIFtfbV0sXG4gICAgWzBdLFxuXTtcbm4wX3JlZ2lzdHJ5LnJlZ2lzdGVyRXJyb3IoTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFeGNlcHRpb24kLCBNYWxmb3JtZWRQb2xpY3lEb2N1bWVudEV4Y2VwdGlvbik7XG5leHBvcnQgdmFyIFBhY2tlZFBvbGljeVRvb0xhcmdlRXhjZXB0aW9uJCA9IFtcbiAgICAtMyxcbiAgICBuMCxcbiAgICBfUFBUTEUsXG4gICAgeyBbX2FRRV06IFtgUGFja2VkUG9saWN5VG9vTGFyZ2VgLCA0MDBdLCBbX2VdOiBfYywgW19oRV06IDQwMCB9LFxuICAgIFtfbV0sXG4gICAgWzBdLFxuXTtcbm4wX3JlZ2lzdHJ5LnJlZ2lzdGVyRXJyb3IoUGFja2VkUG9saWN5VG9vTGFyZ2VFeGNlcHRpb24kLCBQYWNrZWRQb2xpY3lUb29MYXJnZUV4Y2VwdGlvbik7XG5leHBvcnQgdmFyIFJlZ2lvbkRpc2FibGVkRXhjZXB0aW9uJCA9IFtcbiAgICAtMyxcbiAgICBuMCxcbiAgICBfUkRFLFxuICAgIHsgW19hUUVdOiBbYFJlZ2lvbkRpc2FibGVkRXhjZXB0aW9uYCwgNDAzXSwgW19lXTogX2MsIFtfaEVdOiA0MDMgfSxcbiAgICBbX21dLFxuICAgIFswXSxcbl07XG5uMF9yZWdpc3RyeS5yZWdpc3RlckVycm9yKFJlZ2lvbkRpc2FibGVkRXhjZXB0aW9uJCwgUmVnaW9uRGlzYWJsZWRFeGNlcHRpb24pO1xuZXhwb3J0IGNvbnN0IGVycm9yVHlwZVJlZ2lzdHJpZXMgPSBbX3NfcmVnaXN0cnksIG4wX3JlZ2lzdHJ5XTtcbnZhciBhY2Nlc3NLZXlTZWNyZXRUeXBlID0gWzAsIG4wLCBfYUtTVCwgOCwgMF07XG52YXIgY2xpZW50VG9rZW5UeXBlID0gWzAsIG4wLCBfY1RULCA4LCAwXTtcbmV4cG9ydCB2YXIgQXNzdW1lZFJvbGVVc2VyJCA9IFszLCBuMCwgX0FSVSwgMCwgW19BUkksIF9BXSwgWzAsIDBdLCAyXTtcbmV4cG9ydCB2YXIgQXNzdW1lUm9sZVJlcXVlc3QkID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0FSUixcbiAgICAwLFxuICAgIFtfUkEsIF9SU04sIF9QQSwgX1AsIF9EUywgX1QsIF9UVEssIF9FSSwgX1NOLCBfVEMsIF9TSSwgX1BDXSxcbiAgICBbMCwgMCwgKCkgPT4gcG9saWN5RGVzY3JpcHRvckxpc3RUeXBlLCAwLCAxLCAoKSA9PiB0YWdMaXN0VHlwZSwgNjQgfCAwLCAwLCAwLCAwLCAwLCAoKSA9PiBQcm92aWRlZENvbnRleHRzTGlzdFR5cGVdLFxuICAgIDIsXG5dO1xuZXhwb3J0IHZhciBBc3N1bWVSb2xlUmVzcG9uc2UkID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0FSUnMsXG4gICAgMCxcbiAgICBbX0MsIF9BUlUsIF9QUFMsIF9TSV0sXG4gICAgW1soKSA9PiBDcmVkZW50aWFscyQsIDBdLCAoKSA9PiBBc3N1bWVkUm9sZVVzZXIkLCAxLCAwXSxcbl07XG5leHBvcnQgdmFyIEFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlSZXF1ZXN0JCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9BUldXSVIsXG4gICAgMCxcbiAgICBbX1JBLCBfUlNOLCBfV0lULCBfUEksIF9QQSwgX1AsIF9EU10sXG4gICAgWzAsIDAsIFsoKSA9PiBjbGllbnRUb2tlblR5cGUsIDBdLCAwLCAoKSA9PiBwb2xpY3lEZXNjcmlwdG9yTGlzdFR5cGUsIDAsIDFdLFxuICAgIDMsXG5dO1xuZXhwb3J0IHZhciBBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5UmVzcG9uc2UkID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0FSV1dJUnMsXG4gICAgMCxcbiAgICBbX0MsIF9TRldJVCwgX0FSVSwgX1BQUywgX1ByLCBfQXUsIF9TSV0sXG4gICAgW1soKSA9PiBDcmVkZW50aWFscyQsIDBdLCAwLCAoKSA9PiBBc3N1bWVkUm9sZVVzZXIkLCAxLCAwLCAwLCAwXSxcbl07XG5leHBvcnQgdmFyIENyZWRlbnRpYWxzJCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9DLFxuICAgIDAsXG4gICAgW19BS0ksIF9TQUssIF9TVCwgX0VdLFxuICAgIFswLCBbKCkgPT4gYWNjZXNzS2V5U2VjcmV0VHlwZSwgMF0sIDAsIDRdLFxuICAgIDQsXG5dO1xuZXhwb3J0IHZhciBQb2xpY3lEZXNjcmlwdG9yVHlwZSQgPSBbMywgbjAsIF9QRFQsIDAsIFtfYV0sIFswXV07XG5leHBvcnQgdmFyIFByb3ZpZGVkQ29udGV4dCQgPSBbMywgbjAsIF9QQ3IsIDAsIFtfUEFyLCBfQ0FdLCBbMCwgMF1dO1xuZXhwb3J0IHZhciBUYWckID0gWzMsIG4wLCBfVGEsIDAsIFtfSywgX1ZdLCBbMCwgMF0sIDJdO1xudmFyIHBvbGljeURlc2NyaXB0b3JMaXN0VHlwZSA9IFsxLCBuMCwgX3BETFQsIDAsICgpID0+IFBvbGljeURlc2NyaXB0b3JUeXBlJF07XG52YXIgUHJvdmlkZWRDb250ZXh0c0xpc3RUeXBlID0gWzEsIG4wLCBfUENMVCwgMCwgKCkgPT4gUHJvdmlkZWRDb250ZXh0JF07XG52YXIgdGFnS2V5TGlzdFR5cGUgPSA2NCB8IDA7XG52YXIgdGFnTGlzdFR5cGUgPSBbMSwgbjAsIF90TFQsIDAsICgpID0+IFRhZyRdO1xuZXhwb3J0IHZhciBBc3N1bWVSb2xlJCA9IFs5LCBuMCwgX0FSLCAwLCAoKSA9PiBBc3N1bWVSb2xlUmVxdWVzdCQsICgpID0+IEFzc3VtZVJvbGVSZXNwb25zZSRdO1xuZXhwb3J0IHZhciBBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5JCA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9BUldXSSxcbiAgICAwLFxuICAgICgpID0+IEFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlSZXF1ZXN0JCxcbiAgICAoKSA9PiBBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5UmVzcG9uc2UkLFxuXTtcbiIsICJpbXBvcnQgeyBBd3NTZGtTaWdWNEFTaWduZXIsIEF3c1Nka1NpZ1Y0U2lnbmVyIH0gZnJvbSBcIkBhd3Mtc2RrL2NvcmUvaHR0cEF1dGhTY2hlbWVzXCI7XG5pbXBvcnQgeyBBd3NRdWVyeVByb3RvY29sIH0gZnJvbSBcIkBhd3Mtc2RrL2NvcmUvcHJvdG9jb2xzXCI7XG5pbXBvcnQgeyBTaWduYXR1cmVWNE11bHRpUmVnaW9uIH0gZnJvbSBcIkBhd3Mtc2RrL3NpZ25hdHVyZS12NC1tdWx0aS1yZWdpb25cIjtcbmltcG9ydCB7IE5vQXV0aFNpZ25lciB9IGZyb20gXCJAc21pdGh5L2NvcmVcIjtcbmltcG9ydCB7IE5vT3BMb2dnZXIgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyBwYXJzZVVybCB9IGZyb20gXCJAc21pdGh5L3VybC1wYXJzZXJcIjtcbmltcG9ydCB7IGZyb21CYXNlNjQsIHRvQmFzZTY0IH0gZnJvbSBcIkBzbWl0aHkvdXRpbC1iYXNlNjRcIjtcbmltcG9ydCB7IGZyb21VdGY4LCB0b1V0ZjggfSBmcm9tIFwiQHNtaXRoeS91dGlsLXV0ZjhcIjtcbmltcG9ydCB7IGRlZmF1bHRTVFNIdHRwQXV0aFNjaGVtZVByb3ZpZGVyIH0gZnJvbSBcIi4vYXV0aC9odHRwQXV0aFNjaGVtZVByb3ZpZGVyXCI7XG5pbXBvcnQgeyBkZWZhdWx0RW5kcG9pbnRSZXNvbHZlciB9IGZyb20gXCIuL2VuZHBvaW50L2VuZHBvaW50UmVzb2x2ZXJcIjtcbmltcG9ydCB7IGVycm9yVHlwZVJlZ2lzdHJpZXMgfSBmcm9tIFwiLi9zY2hlbWFzL3NjaGVtYXNfMFwiO1xuZXhwb3J0IGNvbnN0IGdldFJ1bnRpbWVDb25maWcgPSAoY29uZmlnKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgYXBpVmVyc2lvbjogXCIyMDExLTA2LTE1XCIsXG4gICAgICAgIGJhc2U2NERlY29kZXI6IGNvbmZpZz8uYmFzZTY0RGVjb2RlciA/PyBmcm9tQmFzZTY0LFxuICAgICAgICBiYXNlNjRFbmNvZGVyOiBjb25maWc/LmJhc2U2NEVuY29kZXIgPz8gdG9CYXNlNjQsXG4gICAgICAgIGRpc2FibGVIb3N0UHJlZml4OiBjb25maWc/LmRpc2FibGVIb3N0UHJlZml4ID8/IGZhbHNlLFxuICAgICAgICBlbmRwb2ludFByb3ZpZGVyOiBjb25maWc/LmVuZHBvaW50UHJvdmlkZXIgPz8gZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIsXG4gICAgICAgIGV4dGVuc2lvbnM6IGNvbmZpZz8uZXh0ZW5zaW9ucyA/PyBbXSxcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVQcm92aWRlcjogY29uZmlnPy5odHRwQXV0aFNjaGVtZVByb3ZpZGVyID8/IGRlZmF1bHRTVFNIdHRwQXV0aFNjaGVtZVByb3ZpZGVyLFxuICAgICAgICBodHRwQXV0aFNjaGVtZXM6IGNvbmZpZz8uaHR0cEF1dGhTY2hlbWVzID8/IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzY2hlbWVJZDogXCJhd3MuYXV0aCNzaWd2NFwiLFxuICAgICAgICAgICAgICAgIGlkZW50aXR5UHJvdmlkZXI6IChpcGMpID0+IGlwYy5nZXRJZGVudGl0eVByb3ZpZGVyKFwiYXdzLmF1dGgjc2lndjRcIiksXG4gICAgICAgICAgICAgICAgc2lnbmVyOiBuZXcgQXdzU2RrU2lnVjRTaWduZXIoKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgc2NoZW1lSWQ6IFwiYXdzLmF1dGgjc2lndjRhXCIsXG4gICAgICAgICAgICAgICAgaWRlbnRpdHlQcm92aWRlcjogKGlwYykgPT4gaXBjLmdldElkZW50aXR5UHJvdmlkZXIoXCJhd3MuYXV0aCNzaWd2NGFcIiksXG4gICAgICAgICAgICAgICAgc2lnbmVyOiBuZXcgQXdzU2RrU2lnVjRBU2lnbmVyKCksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHNjaGVtZUlkOiBcInNtaXRoeS5hcGkjbm9BdXRoXCIsXG4gICAgICAgICAgICAgICAgaWRlbnRpdHlQcm92aWRlcjogKGlwYykgPT4gaXBjLmdldElkZW50aXR5UHJvdmlkZXIoXCJzbWl0aHkuYXBpI25vQXV0aFwiKSB8fCAoYXN5bmMgKCkgPT4gKHt9KSksXG4gICAgICAgICAgICAgICAgc2lnbmVyOiBuZXcgTm9BdXRoU2lnbmVyKCksXG4gICAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBsb2dnZXI6IGNvbmZpZz8ubG9nZ2VyID8/IG5ldyBOb09wTG9nZ2VyKCksXG4gICAgICAgIHByb3RvY29sOiBjb25maWc/LnByb3RvY29sID8/IEF3c1F1ZXJ5UHJvdG9jb2wsXG4gICAgICAgIHByb3RvY29sU2V0dGluZ3M6IGNvbmZpZz8ucHJvdG9jb2xTZXR0aW5ncyA/PyB7XG4gICAgICAgICAgICBkZWZhdWx0TmFtZXNwYWNlOiBcImNvbS5hbWF6b25hd3Muc3RzXCIsXG4gICAgICAgICAgICBlcnJvclR5cGVSZWdpc3RyaWVzLFxuICAgICAgICAgICAgeG1sTmFtZXNwYWNlOiBcImh0dHBzOi8vc3RzLmFtYXpvbmF3cy5jb20vZG9jLzIwMTEtMDYtMTUvXCIsXG4gICAgICAgICAgICB2ZXJzaW9uOiBcIjIwMTEtMDYtMTVcIixcbiAgICAgICAgICAgIHNlcnZpY2VUYXJnZXQ6IFwiQVdTU2VjdXJpdHlUb2tlblNlcnZpY2VWMjAxMTA2MTVcIixcbiAgICAgICAgfSxcbiAgICAgICAgc2VydmljZUlkOiBjb25maWc/LnNlcnZpY2VJZCA/PyBcIlNUU1wiLFxuICAgICAgICBzaWduZXJDb25zdHJ1Y3RvcjogY29uZmlnPy5zaWduZXJDb25zdHJ1Y3RvciA/PyBTaWduYXR1cmVWNE11bHRpUmVnaW9uLFxuICAgICAgICB1cmxQYXJzZXI6IGNvbmZpZz8udXJsUGFyc2VyID8/IHBhcnNlVXJsLFxuICAgICAgICB1dGY4RGVjb2RlcjogY29uZmlnPy51dGY4RGVjb2RlciA/PyBmcm9tVXRmOCxcbiAgICAgICAgdXRmOEVuY29kZXI6IGNvbmZpZz8udXRmOEVuY29kZXIgPz8gdG9VdGY4LFxuICAgIH07XG59O1xuIiwgImltcG9ydCBwYWNrYWdlSW5mbyBmcm9tIFwiLi4vLi4vLi4vcGFja2FnZS5qc29uXCI7XG5pbXBvcnQgeyBlbWl0V2FybmluZ0lmVW5zdXBwb3J0ZWRWZXJzaW9uIGFzIGF3c0NoZWNrVmVyc2lvbiB9IGZyb20gXCJAYXdzLXNkay9jb3JlL2NsaWVudFwiO1xuaW1wb3J0IHsgQXdzU2RrU2lnVjRBU2lnbmVyLCBBd3NTZGtTaWdWNFNpZ25lciwgTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX09QVElPTlMsIE5PREVfU0lHVjRBX0NPTkZJR19PUFRJT05TLCB9IGZyb20gXCJAYXdzLXNkay9jb3JlL2h0dHBBdXRoU2NoZW1lc1wiO1xuaW1wb3J0IHsgY3JlYXRlRGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyLCBOT0RFX0FQUF9JRF9DT05GSUdfT1BUSU9OUyB9IGZyb20gXCJAYXdzLXNkay91dGlsLXVzZXItYWdlbnQtbm9kZVwiO1xuaW1wb3J0IHsgTk9ERV9SRUdJT05fQ09ORklHX0ZJTEVfT1BUSU9OUywgTk9ERV9SRUdJT05fQ09ORklHX09QVElPTlMsIE5PREVfVVNFX0RVQUxTVEFDS19FTkRQT0lOVF9DT05GSUdfT1BUSU9OUywgTk9ERV9VU0VfRklQU19FTkRQT0lOVF9DT05GSUdfT1BUSU9OUywgfSBmcm9tIFwiQHNtaXRoeS9jb25maWctcmVzb2x2ZXJcIjtcbmltcG9ydCB7IE5vQXV0aFNpZ25lciB9IGZyb20gXCJAc21pdGh5L2NvcmVcIjtcbmltcG9ydCB7IEhhc2ggfSBmcm9tIFwiQHNtaXRoeS9oYXNoLW5vZGVcIjtcbmltcG9ydCB7IE5PREVfTUFYX0FUVEVNUFRfQ09ORklHX09QVElPTlMsIE5PREVfUkVUUllfTU9ERV9DT05GSUdfT1BUSU9OUyB9IGZyb20gXCJAc21pdGh5L21pZGRsZXdhcmUtcmV0cnlcIjtcbmltcG9ydCB7IGxvYWRDb25maWcgYXMgbG9hZE5vZGVDb25maWcgfSBmcm9tIFwiQHNtaXRoeS9ub2RlLWNvbmZpZy1wcm92aWRlclwiO1xuaW1wb3J0IHsgTm9kZUh0dHBIYW5kbGVyIGFzIFJlcXVlc3RIYW5kbGVyLCBzdHJlYW1Db2xsZWN0b3IgfSBmcm9tIFwiQHNtaXRoeS9ub2RlLWh0dHAtaGFuZGxlclwiO1xuaW1wb3J0IHsgZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbiwgbG9hZENvbmZpZ3NGb3JEZWZhdWx0TW9kZSB9IGZyb20gXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjtcbmltcG9ydCB7IGNhbGN1bGF0ZUJvZHlMZW5ndGggfSBmcm9tIFwiQHNtaXRoeS91dGlsLWJvZHktbGVuZ3RoLW5vZGVcIjtcbmltcG9ydCB7IHJlc29sdmVEZWZhdWx0c01vZGVDb25maWcgfSBmcm9tIFwiQHNtaXRoeS91dGlsLWRlZmF1bHRzLW1vZGUtbm9kZVwiO1xuaW1wb3J0IHsgREVGQVVMVF9SRVRSWV9NT0RFIH0gZnJvbSBcIkBzbWl0aHkvdXRpbC1yZXRyeVwiO1xuaW1wb3J0IHsgZ2V0UnVudGltZUNvbmZpZyBhcyBnZXRTaGFyZWRSdW50aW1lQ29uZmlnIH0gZnJvbSBcIi4vcnVudGltZUNvbmZpZy5zaGFyZWRcIjtcbmV4cG9ydCBjb25zdCBnZXRSdW50aW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIGVtaXRXYXJuaW5nSWZVbnN1cHBvcnRlZFZlcnNpb24ocHJvY2Vzcy52ZXJzaW9uKTtcbiAgICBjb25zdCBkZWZhdWx0c01vZGUgPSByZXNvbHZlRGVmYXVsdHNNb2RlQ29uZmlnKGNvbmZpZyk7XG4gICAgY29uc3QgZGVmYXVsdENvbmZpZ1Byb3ZpZGVyID0gKCkgPT4gZGVmYXVsdHNNb2RlKCkudGhlbihsb2FkQ29uZmlnc0ZvckRlZmF1bHRNb2RlKTtcbiAgICBjb25zdCBjbGllbnRTaGFyZWRWYWx1ZXMgPSBnZXRTaGFyZWRSdW50aW1lQ29uZmlnKGNvbmZpZyk7XG4gICAgYXdzQ2hlY2tWZXJzaW9uKHByb2Nlc3MudmVyc2lvbik7XG4gICAgY29uc3QgbG9hZGVyQ29uZmlnID0ge1xuICAgICAgICBwcm9maWxlOiBjb25maWc/LnByb2ZpbGUsXG4gICAgICAgIGxvZ2dlcjogY2xpZW50U2hhcmVkVmFsdWVzLmxvZ2dlcixcbiAgICB9O1xuICAgIHJldHVybiB7XG4gICAgICAgIC4uLmNsaWVudFNoYXJlZFZhbHVlcyxcbiAgICAgICAgLi4uY29uZmlnLFxuICAgICAgICBydW50aW1lOiBcIm5vZGVcIixcbiAgICAgICAgZGVmYXVsdHNNb2RlLFxuICAgICAgICBhdXRoU2NoZW1lUHJlZmVyZW5jZTogY29uZmlnPy5hdXRoU2NoZW1lUHJlZmVyZW5jZSA/PyBsb2FkTm9kZUNvbmZpZyhOT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfT1BUSU9OUywgbG9hZGVyQ29uZmlnKSxcbiAgICAgICAgYm9keUxlbmd0aENoZWNrZXI6IGNvbmZpZz8uYm9keUxlbmd0aENoZWNrZXIgPz8gY2FsY3VsYXRlQm9keUxlbmd0aCxcbiAgICAgICAgZGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyOiBjb25maWc/LmRlZmF1bHRVc2VyQWdlbnRQcm92aWRlciA/P1xuICAgICAgICAgICAgY3JlYXRlRGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyKHsgc2VydmljZUlkOiBjbGllbnRTaGFyZWRWYWx1ZXMuc2VydmljZUlkLCBjbGllbnRWZXJzaW9uOiBwYWNrYWdlSW5mby52ZXJzaW9uIH0pLFxuICAgICAgICBodHRwQXV0aFNjaGVtZXM6IGNvbmZpZz8uaHR0cEF1dGhTY2hlbWVzID8/IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzY2hlbWVJZDogXCJhd3MuYXV0aCNzaWd2NFwiLFxuICAgICAgICAgICAgICAgIGlkZW50aXR5UHJvdmlkZXI6IChpcGMpID0+IGlwYy5nZXRJZGVudGl0eVByb3ZpZGVyKFwiYXdzLmF1dGgjc2lndjRcIikgfHxcbiAgICAgICAgICAgICAgICAgICAgKGFzeW5jIChpZFByb3BzKSA9PiBhd2FpdCBjb25maWcuY3JlZGVudGlhbERlZmF1bHRQcm92aWRlcihpZFByb3BzPy5fX2NvbmZpZyB8fCB7fSkoKSksXG4gICAgICAgICAgICAgICAgc2lnbmVyOiBuZXcgQXdzU2RrU2lnVjRTaWduZXIoKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgc2NoZW1lSWQ6IFwiYXdzLmF1dGgjc2lndjRhXCIsXG4gICAgICAgICAgICAgICAgaWRlbnRpdHlQcm92aWRlcjogKGlwYykgPT4gaXBjLmdldElkZW50aXR5UHJvdmlkZXIoXCJhd3MuYXV0aCNzaWd2NGFcIiksXG4gICAgICAgICAgICAgICAgc2lnbmVyOiBuZXcgQXdzU2RrU2lnVjRBU2lnbmVyKCksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHNjaGVtZUlkOiBcInNtaXRoeS5hcGkjbm9BdXRoXCIsXG4gICAgICAgICAgICAgICAgaWRlbnRpdHlQcm92aWRlcjogKGlwYykgPT4gaXBjLmdldElkZW50aXR5UHJvdmlkZXIoXCJzbWl0aHkuYXBpI25vQXV0aFwiKSB8fCAoYXN5bmMgKCkgPT4gKHt9KSksXG4gICAgICAgICAgICAgICAgc2lnbmVyOiBuZXcgTm9BdXRoU2lnbmVyKCksXG4gICAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBtYXhBdHRlbXB0czogY29uZmlnPy5tYXhBdHRlbXB0cyA/PyBsb2FkTm9kZUNvbmZpZyhOT0RFX01BWF9BVFRFTVBUX0NPTkZJR19PUFRJT05TLCBjb25maWcpLFxuICAgICAgICByZWdpb246IGNvbmZpZz8ucmVnaW9uID8/XG4gICAgICAgICAgICBsb2FkTm9kZUNvbmZpZyhOT0RFX1JFR0lPTl9DT05GSUdfT1BUSU9OUywgeyAuLi5OT0RFX1JFR0lPTl9DT05GSUdfRklMRV9PUFRJT05TLCAuLi5sb2FkZXJDb25maWcgfSksXG4gICAgICAgIHJlcXVlc3RIYW5kbGVyOiBSZXF1ZXN0SGFuZGxlci5jcmVhdGUoY29uZmlnPy5yZXF1ZXN0SGFuZGxlciA/PyBkZWZhdWx0Q29uZmlnUHJvdmlkZXIpLFxuICAgICAgICByZXRyeU1vZGU6IGNvbmZpZz8ucmV0cnlNb2RlID8/XG4gICAgICAgICAgICBsb2FkTm9kZUNvbmZpZyh7XG4gICAgICAgICAgICAgICAgLi4uTk9ERV9SRVRSWV9NT0RFX0NPTkZJR19PUFRJT05TLFxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IGFzeW5jICgpID0+IChhd2FpdCBkZWZhdWx0Q29uZmlnUHJvdmlkZXIoKSkucmV0cnlNb2RlIHx8IERFRkFVTFRfUkVUUllfTU9ERSxcbiAgICAgICAgICAgIH0sIGNvbmZpZyksXG4gICAgICAgIHNoYTI1NjogY29uZmlnPy5zaGEyNTYgPz8gSGFzaC5iaW5kKG51bGwsIFwic2hhMjU2XCIpLFxuICAgICAgICBzaWd2NGFTaWduaW5nUmVnaW9uU2V0OiBjb25maWc/LnNpZ3Y0YVNpZ25pbmdSZWdpb25TZXQgPz8gbG9hZE5vZGVDb25maWcoTk9ERV9TSUdWNEFfQ09ORklHX09QVElPTlMsIGxvYWRlckNvbmZpZyksXG4gICAgICAgIHN0cmVhbUNvbGxlY3RvcjogY29uZmlnPy5zdHJlYW1Db2xsZWN0b3IgPz8gc3RyZWFtQ29sbGVjdG9yLFxuICAgICAgICB1c2VEdWFsc3RhY2tFbmRwb2ludDogY29uZmlnPy51c2VEdWFsc3RhY2tFbmRwb2ludCA/PyBsb2FkTm9kZUNvbmZpZyhOT0RFX1VTRV9EVUFMU1RBQ0tfRU5EUE9JTlRfQ09ORklHX09QVElPTlMsIGxvYWRlckNvbmZpZyksXG4gICAgICAgIHVzZUZpcHNFbmRwb2ludDogY29uZmlnPy51c2VGaXBzRW5kcG9pbnQgPz8gbG9hZE5vZGVDb25maWcoTk9ERV9VU0VfRklQU19FTkRQT0lOVF9DT05GSUdfT1BUSU9OUywgbG9hZGVyQ29uZmlnKSxcbiAgICAgICAgdXNlckFnZW50QXBwSWQ6IGNvbmZpZz8udXNlckFnZW50QXBwSWQgPz8gbG9hZE5vZGVDb25maWcoTk9ERV9BUFBfSURfQ09ORklHX09QVElPTlMsIGxvYWRlckNvbmZpZyksXG4gICAgfTtcbn07XG4iLCAiZXhwb3J0IGNvbnN0IGdldEh0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiA9IChydW50aW1lQ29uZmlnKSA9PiB7XG4gICAgY29uc3QgX2h0dHBBdXRoU2NoZW1lcyA9IHJ1bnRpbWVDb25maWcuaHR0cEF1dGhTY2hlbWVzO1xuICAgIGxldCBfaHR0cEF1dGhTY2hlbWVQcm92aWRlciA9IHJ1bnRpbWVDb25maWcuaHR0cEF1dGhTY2hlbWVQcm92aWRlcjtcbiAgICBsZXQgX2NyZWRlbnRpYWxzID0gcnVudGltZUNvbmZpZy5jcmVkZW50aWFscztcbiAgICByZXR1cm4ge1xuICAgICAgICBzZXRIdHRwQXV0aFNjaGVtZShodHRwQXV0aFNjaGVtZSkge1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSBfaHR0cEF1dGhTY2hlbWVzLmZpbmRJbmRleCgoc2NoZW1lKSA9PiBzY2hlbWUuc2NoZW1lSWQgPT09IGh0dHBBdXRoU2NoZW1lLnNjaGVtZUlkKTtcbiAgICAgICAgICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICBfaHR0cEF1dGhTY2hlbWVzLnB1c2goaHR0cEF1dGhTY2hlbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgX2h0dHBBdXRoU2NoZW1lcy5zcGxpY2UoaW5kZXgsIDEsIGh0dHBBdXRoU2NoZW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVzKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9odHRwQXV0aFNjaGVtZXM7XG4gICAgICAgIH0sXG4gICAgICAgIHNldEh0dHBBdXRoU2NoZW1lUHJvdmlkZXIoaHR0cEF1dGhTY2hlbWVQcm92aWRlcikge1xuICAgICAgICAgICAgX2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSBodHRwQXV0aFNjaGVtZVByb3ZpZGVyO1xuICAgICAgICB9LFxuICAgICAgICBodHRwQXV0aFNjaGVtZVByb3ZpZGVyKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9odHRwQXV0aFNjaGVtZVByb3ZpZGVyO1xuICAgICAgICB9LFxuICAgICAgICBzZXRDcmVkZW50aWFscyhjcmVkZW50aWFscykge1xuICAgICAgICAgICAgX2NyZWRlbnRpYWxzID0gY3JlZGVudGlhbHM7XG4gICAgICAgIH0sXG4gICAgICAgIGNyZWRlbnRpYWxzKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9jcmVkZW50aWFscztcbiAgICAgICAgfSxcbiAgICB9O1xufTtcbmV4cG9ydCBjb25zdCByZXNvbHZlSHR0cEF1dGhSdW50aW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIGh0dHBBdXRoU2NoZW1lczogY29uZmlnLmh0dHBBdXRoU2NoZW1lcygpLFxuICAgICAgICBodHRwQXV0aFNjaGVtZVByb3ZpZGVyOiBjb25maWcuaHR0cEF1dGhTY2hlbWVQcm92aWRlcigpLFxuICAgICAgICBjcmVkZW50aWFsczogY29uZmlnLmNyZWRlbnRpYWxzKCksXG4gICAgfTtcbn07XG4iLCAiaW1wb3J0IHsgZ2V0QXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiwgcmVzb2x2ZUF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24sIH0gZnJvbSBcIkBhd3Mtc2RrL3JlZ2lvbi1jb25maWctcmVzb2x2ZXJcIjtcbmltcG9ydCB7IGdldEh0dHBIYW5kbGVyRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiwgcmVzb2x2ZUh0dHBIYW5kbGVyUnVudGltZUNvbmZpZyB9IGZyb20gXCJAc21pdGh5L3Byb3RvY29sLWh0dHBcIjtcbmltcG9ydCB7IGdldERlZmF1bHRFeHRlbnNpb25Db25maWd1cmF0aW9uLCByZXNvbHZlRGVmYXVsdFJ1bnRpbWVDb25maWcgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyBnZXRIdHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24sIHJlc29sdmVIdHRwQXV0aFJ1bnRpbWVDb25maWcgfSBmcm9tIFwiLi9hdXRoL2h0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvblwiO1xuZXhwb3J0IGNvbnN0IHJlc29sdmVSdW50aW1lRXh0ZW5zaW9ucyA9IChydW50aW1lQ29uZmlnLCBleHRlbnNpb25zKSA9PiB7XG4gICAgY29uc3QgZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiA9IE9iamVjdC5hc3NpZ24oZ2V0QXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbihydW50aW1lQ29uZmlnKSwgZ2V0RGVmYXVsdEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24ocnVudGltZUNvbmZpZyksIGdldEh0dHBIYW5kbGVyRXh0ZW5zaW9uQ29uZmlndXJhdGlvbihydW50aW1lQ29uZmlnKSwgZ2V0SHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uKHJ1bnRpbWVDb25maWcpKTtcbiAgICBleHRlbnNpb25zLmZvckVhY2goKGV4dGVuc2lvbikgPT4gZXh0ZW5zaW9uLmNvbmZpZ3VyZShleHRlbnNpb25Db25maWd1cmF0aW9uKSk7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24ocnVudGltZUNvbmZpZywgcmVzb2x2ZUF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24oZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiksIHJlc29sdmVEZWZhdWx0UnVudGltZUNvbmZpZyhleHRlbnNpb25Db25maWd1cmF0aW9uKSwgcmVzb2x2ZUh0dHBIYW5kbGVyUnVudGltZUNvbmZpZyhleHRlbnNpb25Db25maWd1cmF0aW9uKSwgcmVzb2x2ZUh0dHBBdXRoUnVudGltZUNvbmZpZyhleHRlbnNpb25Db25maWd1cmF0aW9uKSk7XG59O1xuIiwgImltcG9ydCB7IGdldEhvc3RIZWFkZXJQbHVnaW4sIHJlc29sdmVIb3N0SGVhZGVyQ29uZmlnLCB9IGZyb20gXCJAYXdzLXNkay9taWRkbGV3YXJlLWhvc3QtaGVhZGVyXCI7XG5pbXBvcnQgeyBnZXRMb2dnZXJQbHVnaW4gfSBmcm9tIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1sb2dnZXJcIjtcbmltcG9ydCB7IGdldFJlY3Vyc2lvbkRldGVjdGlvblBsdWdpbiB9IGZyb20gXCJAYXdzLXNkay9taWRkbGV3YXJlLXJlY3Vyc2lvbi1kZXRlY3Rpb25cIjtcbmltcG9ydCB7IGdldFVzZXJBZ2VudFBsdWdpbiwgcmVzb2x2ZVVzZXJBZ2VudENvbmZpZywgfSBmcm9tIFwiQGF3cy1zZGsvbWlkZGxld2FyZS11c2VyLWFnZW50XCI7XG5pbXBvcnQgeyByZXNvbHZlUmVnaW9uQ29uZmlnIH0gZnJvbSBcIkBzbWl0aHkvY29uZmlnLXJlc29sdmVyXCI7XG5pbXBvcnQgeyBEZWZhdWx0SWRlbnRpdHlQcm92aWRlckNvbmZpZywgZ2V0SHR0cEF1dGhTY2hlbWVFbmRwb2ludFJ1bGVTZXRQbHVnaW4sIGdldEh0dHBTaWduaW5nUGx1Z2luLCB9IGZyb20gXCJAc21pdGh5L2NvcmVcIjtcbmltcG9ydCB7IGdldFNjaGVtYVNlcmRlUGx1Z2luIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IGdldENvbnRlbnRMZW5ndGhQbHVnaW4gfSBmcm9tIFwiQHNtaXRoeS9taWRkbGV3YXJlLWNvbnRlbnQtbGVuZ3RoXCI7XG5pbXBvcnQgeyByZXNvbHZlRW5kcG9pbnRDb25maWcsIH0gZnJvbSBcIkBzbWl0aHkvbWlkZGxld2FyZS1lbmRwb2ludFwiO1xuaW1wb3J0IHsgZ2V0UmV0cnlQbHVnaW4sIHJlc29sdmVSZXRyeUNvbmZpZywgfSBmcm9tIFwiQHNtaXRoeS9taWRkbGV3YXJlLXJldHJ5XCI7XG5pbXBvcnQgeyBDbGllbnQgYXMgX19DbGllbnQsIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgZGVmYXVsdFNUU0h0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyLCByZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWcsIH0gZnJvbSBcIi4vYXV0aC9odHRwQXV0aFNjaGVtZVByb3ZpZGVyXCI7XG5pbXBvcnQgeyByZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzLCB9IGZyb20gXCIuL2VuZHBvaW50L0VuZHBvaW50UGFyYW1ldGVyc1wiO1xuaW1wb3J0IHsgZ2V0UnVudGltZUNvbmZpZyBhcyBfX2dldFJ1bnRpbWVDb25maWcgfSBmcm9tIFwiLi9ydW50aW1lQ29uZmlnXCI7XG5pbXBvcnQgeyByZXNvbHZlUnVudGltZUV4dGVuc2lvbnMgfSBmcm9tIFwiLi9ydW50aW1lRXh0ZW5zaW9uc1wiO1xuZXhwb3J0IHsgX19DbGllbnQgfTtcbmV4cG9ydCBjbGFzcyBTVFNDbGllbnQgZXh0ZW5kcyBfX0NsaWVudCB7XG4gICAgY29uZmlnO1xuICAgIGNvbnN0cnVjdG9yKC4uLltjb25maWd1cmF0aW9uXSkge1xuICAgICAgICBjb25zdCBfY29uZmlnXzAgPSBfX2dldFJ1bnRpbWVDb25maWcoY29uZmlndXJhdGlvbiB8fCB7fSk7XG4gICAgICAgIHN1cGVyKF9jb25maWdfMCk7XG4gICAgICAgIHRoaXMuaW5pdENvbmZpZyA9IF9jb25maWdfMDtcbiAgICAgICAgY29uc3QgX2NvbmZpZ18xID0gcmVzb2x2ZUNsaWVudEVuZHBvaW50UGFyYW1ldGVycyhfY29uZmlnXzApO1xuICAgICAgICBjb25zdCBfY29uZmlnXzIgPSByZXNvbHZlVXNlckFnZW50Q29uZmlnKF9jb25maWdfMSk7XG4gICAgICAgIGNvbnN0IF9jb25maWdfMyA9IHJlc29sdmVSZXRyeUNvbmZpZyhfY29uZmlnXzIpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzQgPSByZXNvbHZlUmVnaW9uQ29uZmlnKF9jb25maWdfMyk7XG4gICAgICAgIGNvbnN0IF9jb25maWdfNSA9IHJlc29sdmVIb3N0SGVhZGVyQ29uZmlnKF9jb25maWdfNCk7XG4gICAgICAgIGNvbnN0IF9jb25maWdfNiA9IHJlc29sdmVFbmRwb2ludENvbmZpZyhfY29uZmlnXzUpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzcgPSByZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWcoX2NvbmZpZ182KTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ184ID0gcmVzb2x2ZVJ1bnRpbWVFeHRlbnNpb25zKF9jb25maWdfNywgY29uZmlndXJhdGlvbj8uZXh0ZW5zaW9ucyB8fCBbXSk7XG4gICAgICAgIHRoaXMuY29uZmlnID0gX2NvbmZpZ184O1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoZ2V0U2NoZW1hU2VyZGVQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGdldFVzZXJBZ2VudFBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoZ2V0UmV0cnlQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGdldENvbnRlbnRMZW5ndGhQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGdldEhvc3RIZWFkZXJQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGdldExvZ2dlclBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoZ2V0UmVjdXJzaW9uRGV0ZWN0aW9uUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShnZXRIdHRwQXV0aFNjaGVtZUVuZHBvaW50UnVsZVNldFBsdWdpbih0aGlzLmNvbmZpZywge1xuICAgICAgICAgICAgaHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXI6IGRlZmF1bHRTVFNIdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlcixcbiAgICAgICAgICAgIGlkZW50aXR5UHJvdmlkZXJDb25maWdQcm92aWRlcjogYXN5bmMgKGNvbmZpZykgPT4gbmV3IERlZmF1bHRJZGVudGl0eVByb3ZpZGVyQ29uZmlnKHtcbiAgICAgICAgICAgICAgICBcImF3cy5hdXRoI3NpZ3Y0XCI6IGNvbmZpZy5jcmVkZW50aWFscyxcbiAgICAgICAgICAgICAgICBcImF3cy5hdXRoI3NpZ3Y0YVwiOiBjb25maWcuY3JlZGVudGlhbHMsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgfSkpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoZ2V0SHR0cFNpZ25pbmdQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICB9XG4gICAgZGVzdHJveSgpIHtcbiAgICAgICAgc3VwZXIuZGVzdHJveSgpO1xuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBnZXRFbmRwb2ludFBsdWdpbiB9IGZyb20gXCJAc21pdGh5L21pZGRsZXdhcmUtZW5kcG9pbnRcIjtcbmltcG9ydCB7IENvbW1hbmQgYXMgJENvbW1hbmQgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyBjb21tb25QYXJhbXMgfSBmcm9tIFwiLi4vZW5kcG9pbnQvRW5kcG9pbnRQYXJhbWV0ZXJzXCI7XG5pbXBvcnQgeyBBc3N1bWVSb2xlJCB9IGZyb20gXCIuLi9zY2hlbWFzL3NjaGVtYXNfMFwiO1xuZXhwb3J0IHsgJENvbW1hbmQgfTtcbmV4cG9ydCBjbGFzcyBBc3N1bWVSb2xlQ29tbWFuZCBleHRlbmRzICRDb21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NTZWN1cml0eVRva2VuU2VydmljZVYyMDExMDYxNVwiLCBcIkFzc3VtZVJvbGVcIiwge30pXG4gICAgLm4oXCJTVFNDbGllbnRcIiwgXCJBc3N1bWVSb2xlQ29tbWFuZFwiKVxuICAgIC5zYyhBc3N1bWVSb2xlJClcbiAgICAuYnVpbGQoKSB7XG59XG4iLCAiaW1wb3J0IHsgZ2V0RW5kcG9pbnRQbHVnaW4gfSBmcm9tIFwiQHNtaXRoeS9taWRkbGV3YXJlLWVuZHBvaW50XCI7XG5pbXBvcnQgeyBDb21tYW5kIGFzICRDb21tYW5kIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgY29tbW9uUGFyYW1zIH0gZnJvbSBcIi4uL2VuZHBvaW50L0VuZHBvaW50UGFyYW1ldGVyc1wiO1xuaW1wb3J0IHsgQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eSQgfSBmcm9tIFwiLi4vc2NoZW1hcy9zY2hlbWFzXzBcIjtcbmV4cG9ydCB7ICRDb21tYW5kIH07XG5leHBvcnQgY2xhc3MgQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eUNvbW1hbmQgZXh0ZW5kcyAkQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW2dldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTU2VjdXJpdHlUb2tlblNlcnZpY2VWMjAxMTA2MTVcIiwgXCJBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5XCIsIHt9KVxuICAgIC5uKFwiU1RTQ2xpZW50XCIsIFwiQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eUNvbW1hbmRcIilcbiAgICAuc2MoQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eSQpXG4gICAgLmJ1aWxkKCkge1xufVxuIiwgImltcG9ydCB7IGNyZWF0ZUFnZ3JlZ2F0ZWRDbGllbnQgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyBBc3N1bWVSb2xlQ29tbWFuZCwgfSBmcm9tIFwiLi9jb21tYW5kcy9Bc3N1bWVSb2xlQ29tbWFuZFwiO1xuaW1wb3J0IHsgQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eUNvbW1hbmQsIH0gZnJvbSBcIi4vY29tbWFuZHMvQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eUNvbW1hbmRcIjtcbmltcG9ydCB7IFNUU0NsaWVudCB9IGZyb20gXCIuL1NUU0NsaWVudFwiO1xuY29uc3QgY29tbWFuZHMgPSB7XG4gICAgQXNzdW1lUm9sZUNvbW1hbmQsXG4gICAgQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eUNvbW1hbmQsXG59O1xuZXhwb3J0IGNsYXNzIFNUUyBleHRlbmRzIFNUU0NsaWVudCB7XG59XG5jcmVhdGVBZ2dyZWdhdGVkQ2xpZW50KGNvbW1hbmRzLCBTVFMpO1xuIiwgImV4cG9ydCAqIGZyb20gXCIuL0Fzc3VtZVJvbGVDb21tYW5kXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9Bc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5Q29tbWFuZFwiO1xuIiwgImV4cG9ydCB7fTtcbiIsICJpbXBvcnQgeyBzZXRDcmVkZW50aWFsRmVhdHVyZSB9IGZyb20gXCJAYXdzLXNkay9jb3JlL2NsaWVudFwiO1xuaW1wb3J0IHsgc3RzUmVnaW9uRGVmYXVsdFJlc29sdmVyIH0gZnJvbSBcIkBhd3Mtc2RrL3JlZ2lvbi1jb25maWctcmVzb2x2ZXJcIjtcbmltcG9ydCB7IEFzc3VtZVJvbGVDb21tYW5kIH0gZnJvbSBcIi4vY29tbWFuZHMvQXNzdW1lUm9sZUNvbW1hbmRcIjtcbmltcG9ydCB7IEFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlDb21tYW5kIH0gZnJvbSBcIi4vY29tbWFuZHMvQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eUNvbW1hbmRcIjtcbmNvbnN0IGdldEFjY291bnRJZEZyb21Bc3N1bWVkUm9sZVVzZXIgPSAoYXNzdW1lZFJvbGVVc2VyKSA9PiB7XG4gICAgaWYgKHR5cGVvZiBhc3N1bWVkUm9sZVVzZXI/LkFybiA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICBjb25zdCBhcm5Db21wb25lbnRzID0gYXNzdW1lZFJvbGVVc2VyLkFybi5zcGxpdChcIjpcIik7XG4gICAgICAgIGlmIChhcm5Db21wb25lbnRzLmxlbmd0aCA+IDQgJiYgYXJuQ29tcG9uZW50c1s0XSAhPT0gXCJcIikge1xuICAgICAgICAgICAgcmV0dXJuIGFybkNvbXBvbmVudHNbNF07XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbn07XG5jb25zdCByZXNvbHZlUmVnaW9uID0gYXN5bmMgKF9yZWdpb24sIF9wYXJlbnRSZWdpb24sIGNyZWRlbnRpYWxQcm92aWRlckxvZ2dlciwgbG9hZGVyQ29uZmlnID0ge30pID0+IHtcbiAgICBjb25zdCByZWdpb24gPSB0eXBlb2YgX3JlZ2lvbiA9PT0gXCJmdW5jdGlvblwiID8gYXdhaXQgX3JlZ2lvbigpIDogX3JlZ2lvbjtcbiAgICBjb25zdCBwYXJlbnRSZWdpb24gPSB0eXBlb2YgX3BhcmVudFJlZ2lvbiA9PT0gXCJmdW5jdGlvblwiID8gYXdhaXQgX3BhcmVudFJlZ2lvbigpIDogX3BhcmVudFJlZ2lvbjtcbiAgICBsZXQgc3RzRGVmYXVsdFJlZ2lvbiA9IFwiXCI7XG4gICAgY29uc3QgcmVzb2x2ZWRSZWdpb24gPSByZWdpb24gPz8gcGFyZW50UmVnaW9uID8/IChzdHNEZWZhdWx0UmVnaW9uID0gYXdhaXQgc3RzUmVnaW9uRGVmYXVsdFJlc29sdmVyKGxvYWRlckNvbmZpZykoKSk7XG4gICAgY3JlZGVudGlhbFByb3ZpZGVyTG9nZ2VyPy5kZWJ1Zz8uKFwiQGF3cy1zZGsvY2xpZW50LXN0czo6cmVzb2x2ZVJlZ2lvblwiLCBcImFjY2VwdGluZyBmaXJzdCBvZjpcIiwgYCR7cmVnaW9ufSAoY3JlZGVudGlhbCBwcm92aWRlciBjbGllbnRDb25maWcpYCwgYCR7cGFyZW50UmVnaW9ufSAoY29udGV4dHVhbCBjbGllbnQpYCwgYCR7c3RzRGVmYXVsdFJlZ2lvbn0gKFNUUyBkZWZhdWx0OiBBV1NfUkVHSU9OLCBwcm9maWxlIHJlZ2lvbiwgb3IgdXMtZWFzdC0xKWApO1xuICAgIHJldHVybiByZXNvbHZlZFJlZ2lvbjtcbn07XG5leHBvcnQgY29uc3QgZ2V0RGVmYXVsdFJvbGVBc3N1bWVyID0gKHN0c09wdGlvbnMsIFNUU0NsaWVudCkgPT4ge1xuICAgIGxldCBzdHNDbGllbnQ7XG4gICAgbGV0IGNsb3N1cmVTb3VyY2VDcmVkcztcbiAgICByZXR1cm4gYXN5bmMgKHNvdXJjZUNyZWRzLCBwYXJhbXMpID0+IHtcbiAgICAgICAgY2xvc3VyZVNvdXJjZUNyZWRzID0gc291cmNlQ3JlZHM7XG4gICAgICAgIGlmICghc3RzQ2xpZW50KSB7XG4gICAgICAgICAgICBjb25zdCB7IGxvZ2dlciA9IHN0c09wdGlvbnM/LnBhcmVudENsaWVudENvbmZpZz8ubG9nZ2VyLCBwcm9maWxlID0gc3RzT3B0aW9ucz8ucGFyZW50Q2xpZW50Q29uZmlnPy5wcm9maWxlLCByZWdpb24sIHJlcXVlc3RIYW5kbGVyID0gc3RzT3B0aW9ucz8ucGFyZW50Q2xpZW50Q29uZmlnPy5yZXF1ZXN0SGFuZGxlciwgY3JlZGVudGlhbFByb3ZpZGVyTG9nZ2VyLCB1c2VyQWdlbnRBcHBJZCA9IHN0c09wdGlvbnM/LnBhcmVudENsaWVudENvbmZpZz8udXNlckFnZW50QXBwSWQsIH0gPSBzdHNPcHRpb25zO1xuICAgICAgICAgICAgY29uc3QgcmVzb2x2ZWRSZWdpb24gPSBhd2FpdCByZXNvbHZlUmVnaW9uKHJlZ2lvbiwgc3RzT3B0aW9ucz8ucGFyZW50Q2xpZW50Q29uZmlnPy5yZWdpb24sIGNyZWRlbnRpYWxQcm92aWRlckxvZ2dlciwge1xuICAgICAgICAgICAgICAgIGxvZ2dlcixcbiAgICAgICAgICAgICAgICBwcm9maWxlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCBpc0NvbXBhdGlibGVSZXF1ZXN0SGFuZGxlciA9ICFpc0gyKHJlcXVlc3RIYW5kbGVyKTtcbiAgICAgICAgICAgIHN0c0NsaWVudCA9IG5ldyBTVFNDbGllbnQoe1xuICAgICAgICAgICAgICAgIC4uLnN0c09wdGlvbnMsXG4gICAgICAgICAgICAgICAgdXNlckFnZW50QXBwSWQsXG4gICAgICAgICAgICAgICAgcHJvZmlsZSxcbiAgICAgICAgICAgICAgICBjcmVkZW50aWFsRGVmYXVsdFByb3ZpZGVyOiAoKSA9PiBhc3luYyAoKSA9PiBjbG9zdXJlU291cmNlQ3JlZHMsXG4gICAgICAgICAgICAgICAgcmVnaW9uOiByZXNvbHZlZFJlZ2lvbixcbiAgICAgICAgICAgICAgICByZXF1ZXN0SGFuZGxlcjogaXNDb21wYXRpYmxlUmVxdWVzdEhhbmRsZXIgPyByZXF1ZXN0SGFuZGxlciA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBsb2dnZXI6IGxvZ2dlcixcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHsgQ3JlZGVudGlhbHMsIEFzc3VtZWRSb2xlVXNlciB9ID0gYXdhaXQgc3RzQ2xpZW50LnNlbmQobmV3IEFzc3VtZVJvbGVDb21tYW5kKHBhcmFtcykpO1xuICAgICAgICBpZiAoIUNyZWRlbnRpYWxzIHx8ICFDcmVkZW50aWFscy5BY2Nlc3NLZXlJZCB8fCAhQ3JlZGVudGlhbHMuU2VjcmV0QWNjZXNzS2V5KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgcmVzcG9uc2UgZnJvbSBTVFMuYXNzdW1lUm9sZSBjYWxsIHdpdGggcm9sZSAke3BhcmFtcy5Sb2xlQXJufWApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGFjY291bnRJZCA9IGdldEFjY291bnRJZEZyb21Bc3N1bWVkUm9sZVVzZXIoQXNzdW1lZFJvbGVVc2VyKTtcbiAgICAgICAgY29uc3QgY3JlZGVudGlhbHMgPSB7XG4gICAgICAgICAgICBhY2Nlc3NLZXlJZDogQ3JlZGVudGlhbHMuQWNjZXNzS2V5SWQsXG4gICAgICAgICAgICBzZWNyZXRBY2Nlc3NLZXk6IENyZWRlbnRpYWxzLlNlY3JldEFjY2Vzc0tleSxcbiAgICAgICAgICAgIHNlc3Npb25Ub2tlbjogQ3JlZGVudGlhbHMuU2Vzc2lvblRva2VuLFxuICAgICAgICAgICAgZXhwaXJhdGlvbjogQ3JlZGVudGlhbHMuRXhwaXJhdGlvbixcbiAgICAgICAgICAgIC4uLihDcmVkZW50aWFscy5DcmVkZW50aWFsU2NvcGUgJiYgeyBjcmVkZW50aWFsU2NvcGU6IENyZWRlbnRpYWxzLkNyZWRlbnRpYWxTY29wZSB9KSxcbiAgICAgICAgICAgIC4uLihhY2NvdW50SWQgJiYgeyBhY2NvdW50SWQgfSksXG4gICAgICAgIH07XG4gICAgICAgIHNldENyZWRlbnRpYWxGZWF0dXJlKGNyZWRlbnRpYWxzLCBcIkNSRURFTlRJQUxTX1NUU19BU1NVTUVfUk9MRVwiLCBcImlcIik7XG4gICAgICAgIHJldHVybiBjcmVkZW50aWFscztcbiAgICB9O1xufTtcbmV4cG9ydCBjb25zdCBnZXREZWZhdWx0Um9sZUFzc3VtZXJXaXRoV2ViSWRlbnRpdHkgPSAoc3RzT3B0aW9ucywgU1RTQ2xpZW50KSA9PiB7XG4gICAgbGV0IHN0c0NsaWVudDtcbiAgICByZXR1cm4gYXN5bmMgKHBhcmFtcykgPT4ge1xuICAgICAgICBpZiAoIXN0c0NsaWVudCkge1xuICAgICAgICAgICAgY29uc3QgeyBsb2dnZXIgPSBzdHNPcHRpb25zPy5wYXJlbnRDbGllbnRDb25maWc/LmxvZ2dlciwgcHJvZmlsZSA9IHN0c09wdGlvbnM/LnBhcmVudENsaWVudENvbmZpZz8ucHJvZmlsZSwgcmVnaW9uLCByZXF1ZXN0SGFuZGxlciA9IHN0c09wdGlvbnM/LnBhcmVudENsaWVudENvbmZpZz8ucmVxdWVzdEhhbmRsZXIsIGNyZWRlbnRpYWxQcm92aWRlckxvZ2dlciwgdXNlckFnZW50QXBwSWQgPSBzdHNPcHRpb25zPy5wYXJlbnRDbGllbnRDb25maWc/LnVzZXJBZ2VudEFwcElkLCB9ID0gc3RzT3B0aW9ucztcbiAgICAgICAgICAgIGNvbnN0IHJlc29sdmVkUmVnaW9uID0gYXdhaXQgcmVzb2x2ZVJlZ2lvbihyZWdpb24sIHN0c09wdGlvbnM/LnBhcmVudENsaWVudENvbmZpZz8ucmVnaW9uLCBjcmVkZW50aWFsUHJvdmlkZXJMb2dnZXIsIHtcbiAgICAgICAgICAgICAgICBsb2dnZXIsXG4gICAgICAgICAgICAgICAgcHJvZmlsZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29uc3QgaXNDb21wYXRpYmxlUmVxdWVzdEhhbmRsZXIgPSAhaXNIMihyZXF1ZXN0SGFuZGxlcik7XG4gICAgICAgICAgICBzdHNDbGllbnQgPSBuZXcgU1RTQ2xpZW50KHtcbiAgICAgICAgICAgICAgICAuLi5zdHNPcHRpb25zLFxuICAgICAgICAgICAgICAgIHVzZXJBZ2VudEFwcElkLFxuICAgICAgICAgICAgICAgIHByb2ZpbGUsXG4gICAgICAgICAgICAgICAgcmVnaW9uOiByZXNvbHZlZFJlZ2lvbixcbiAgICAgICAgICAgICAgICByZXF1ZXN0SGFuZGxlcjogaXNDb21wYXRpYmxlUmVxdWVzdEhhbmRsZXIgPyByZXF1ZXN0SGFuZGxlciA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBsb2dnZXI6IGxvZ2dlcixcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHsgQ3JlZGVudGlhbHMsIEFzc3VtZWRSb2xlVXNlciB9ID0gYXdhaXQgc3RzQ2xpZW50LnNlbmQobmV3IEFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlDb21tYW5kKHBhcmFtcykpO1xuICAgICAgICBpZiAoIUNyZWRlbnRpYWxzIHx8ICFDcmVkZW50aWFscy5BY2Nlc3NLZXlJZCB8fCAhQ3JlZGVudGlhbHMuU2VjcmV0QWNjZXNzS2V5KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgcmVzcG9uc2UgZnJvbSBTVFMuYXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eSBjYWxsIHdpdGggcm9sZSAke3BhcmFtcy5Sb2xlQXJufWApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGFjY291bnRJZCA9IGdldEFjY291bnRJZEZyb21Bc3N1bWVkUm9sZVVzZXIoQXNzdW1lZFJvbGVVc2VyKTtcbiAgICAgICAgY29uc3QgY3JlZGVudGlhbHMgPSB7XG4gICAgICAgICAgICBhY2Nlc3NLZXlJZDogQ3JlZGVudGlhbHMuQWNjZXNzS2V5SWQsXG4gICAgICAgICAgICBzZWNyZXRBY2Nlc3NLZXk6IENyZWRlbnRpYWxzLlNlY3JldEFjY2Vzc0tleSxcbiAgICAgICAgICAgIHNlc3Npb25Ub2tlbjogQ3JlZGVudGlhbHMuU2Vzc2lvblRva2VuLFxuICAgICAgICAgICAgZXhwaXJhdGlvbjogQ3JlZGVudGlhbHMuRXhwaXJhdGlvbixcbiAgICAgICAgICAgIC4uLihDcmVkZW50aWFscy5DcmVkZW50aWFsU2NvcGUgJiYgeyBjcmVkZW50aWFsU2NvcGU6IENyZWRlbnRpYWxzLkNyZWRlbnRpYWxTY29wZSB9KSxcbiAgICAgICAgICAgIC4uLihhY2NvdW50SWQgJiYgeyBhY2NvdW50SWQgfSksXG4gICAgICAgIH07XG4gICAgICAgIGlmIChhY2NvdW50SWQpIHtcbiAgICAgICAgICAgIHNldENyZWRlbnRpYWxGZWF0dXJlKGNyZWRlbnRpYWxzLCBcIlJFU09MVkVEX0FDQ09VTlRfSURcIiwgXCJUXCIpO1xuICAgICAgICB9XG4gICAgICAgIHNldENyZWRlbnRpYWxGZWF0dXJlKGNyZWRlbnRpYWxzLCBcIkNSRURFTlRJQUxTX1NUU19BU1NVTUVfUk9MRV9XRUJfSURcIiwgXCJrXCIpO1xuICAgICAgICByZXR1cm4gY3JlZGVudGlhbHM7XG4gICAgfTtcbn07XG5leHBvcnQgY29uc3QgZGVjb3JhdGVEZWZhdWx0Q3JlZGVudGlhbFByb3ZpZGVyID0gKHByb3ZpZGVyKSA9PiAoaW5wdXQpID0+IHByb3ZpZGVyKHtcbiAgICByb2xlQXNzdW1lcjogZ2V0RGVmYXVsdFJvbGVBc3N1bWVyKGlucHV0LCBpbnB1dC5zdHNDbGllbnRDdG9yKSxcbiAgICByb2xlQXNzdW1lcldpdGhXZWJJZGVudGl0eTogZ2V0RGVmYXVsdFJvbGVBc3N1bWVyV2l0aFdlYklkZW50aXR5KGlucHV0LCBpbnB1dC5zdHNDbGllbnRDdG9yKSxcbiAgICAuLi5pbnB1dCxcbn0pO1xuY29uc3QgaXNIMiA9IChyZXF1ZXN0SGFuZGxlcikgPT4ge1xuICAgIHJldHVybiByZXF1ZXN0SGFuZGxlcj8ubWV0YWRhdGE/LmhhbmRsZXJQcm90b2NvbCA9PT0gXCJoMlwiO1xufTtcbiIsICJpbXBvcnQgeyBnZXREZWZhdWx0Um9sZUFzc3VtZXIgYXMgU3RzR2V0RGVmYXVsdFJvbGVBc3N1bWVyLCBnZXREZWZhdWx0Um9sZUFzc3VtZXJXaXRoV2ViSWRlbnRpdHkgYXMgU3RzR2V0RGVmYXVsdFJvbGVBc3N1bWVyV2l0aFdlYklkZW50aXR5LCB9IGZyb20gXCIuL2RlZmF1bHRTdHNSb2xlQXNzdW1lcnNcIjtcbmltcG9ydCB7IFNUU0NsaWVudCB9IGZyb20gXCIuL1NUU0NsaWVudFwiO1xuY29uc3QgZ2V0Q3VzdG9taXphYmxlU3RzQ2xpZW50Q3RvciA9IChiYXNlQ3RvciwgY3VzdG9taXphdGlvbnMpID0+IHtcbiAgICBpZiAoIWN1c3RvbWl6YXRpb25zKVxuICAgICAgICByZXR1cm4gYmFzZUN0b3I7XG4gICAgZWxzZVxuICAgICAgICByZXR1cm4gY2xhc3MgQ3VzdG9taXphYmxlU1RTQ2xpZW50IGV4dGVuZHMgYmFzZUN0b3Ige1xuICAgICAgICAgICAgY29uc3RydWN0b3IoY29uZmlnKSB7XG4gICAgICAgICAgICAgICAgc3VwZXIoY29uZmlnKTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGN1c3RvbWl6YXRpb24gb2YgY3VzdG9taXphdGlvbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGN1c3RvbWl6YXRpb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbn07XG5leHBvcnQgY29uc3QgZ2V0RGVmYXVsdFJvbGVBc3N1bWVyID0gKHN0c09wdGlvbnMgPSB7fSwgc3RzUGx1Z2lucykgPT4gU3RzR2V0RGVmYXVsdFJvbGVBc3N1bWVyKHN0c09wdGlvbnMsIGdldEN1c3RvbWl6YWJsZVN0c0NsaWVudEN0b3IoU1RTQ2xpZW50LCBzdHNQbHVnaW5zKSk7XG5leHBvcnQgY29uc3QgZ2V0RGVmYXVsdFJvbGVBc3N1bWVyV2l0aFdlYklkZW50aXR5ID0gKHN0c09wdGlvbnMgPSB7fSwgc3RzUGx1Z2lucykgPT4gU3RzR2V0RGVmYXVsdFJvbGVBc3N1bWVyV2l0aFdlYklkZW50aXR5KHN0c09wdGlvbnMsIGdldEN1c3RvbWl6YWJsZVN0c0NsaWVudEN0b3IoU1RTQ2xpZW50LCBzdHNQbHVnaW5zKSk7XG5leHBvcnQgY29uc3QgZGVjb3JhdGVEZWZhdWx0Q3JlZGVudGlhbFByb3ZpZGVyID0gKHByb3ZpZGVyKSA9PiAoaW5wdXQpID0+IHByb3ZpZGVyKHtcbiAgICByb2xlQXNzdW1lcjogZ2V0RGVmYXVsdFJvbGVBc3N1bWVyKGlucHV0KSxcbiAgICByb2xlQXNzdW1lcldpdGhXZWJJZGVudGl0eTogZ2V0RGVmYXVsdFJvbGVBc3N1bWVyV2l0aFdlYklkZW50aXR5KGlucHV0KSxcbiAgICAuLi5pbnB1dCxcbn0pO1xuIiwgImV4cG9ydCAqIGZyb20gXCIuL1NUU0NsaWVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vU1RTXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21tYW5kc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vc2NoZW1hcy9zY2hlbWFzXzBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21vZGVscy9lcnJvcnNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21vZGVscy9tb2RlbHNfMFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZGVmYXVsdFJvbGVBc3N1bWVyc1wiO1xuZXhwb3J0IHsgU1RTU2VydmljZUV4Y2VwdGlvbiB9IGZyb20gXCIuL21vZGVscy9TVFNTZXJ2aWNlRXhjZXB0aW9uXCI7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgc2hhcmVkSW5pRmlsZUxvYWRlciA9IHJlcXVpcmUoJ0BzbWl0aHkvc2hhcmVkLWluaS1maWxlLWxvYWRlcicpO1xudmFyIHByb3BlcnR5UHJvdmlkZXIgPSByZXF1aXJlKCdAc21pdGh5L3Byb3BlcnR5LXByb3ZpZGVyJyk7XG52YXIgbm9kZV9jaGlsZF9wcm9jZXNzID0gcmVxdWlyZSgnbm9kZTpjaGlsZF9wcm9jZXNzJyk7XG52YXIgbm9kZV91dGlsID0gcmVxdWlyZSgnbm9kZTp1dGlsJyk7XG52YXIgY2xpZW50ID0gcmVxdWlyZSgnQGF3cy1zZGsvY29yZS9jbGllbnQnKTtcblxuY29uc3QgZ2V0VmFsaWRhdGVkUHJvY2Vzc0NyZWRlbnRpYWxzID0gKHByb2ZpbGVOYW1lLCBkYXRhLCBwcm9maWxlcykgPT4ge1xuICAgIGlmIChkYXRhLlZlcnNpb24gIT09IDEpIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoYFByb2ZpbGUgJHtwcm9maWxlTmFtZX0gY3JlZGVudGlhbF9wcm9jZXNzIGRpZCBub3QgcmV0dXJuIFZlcnNpb24gMS5gKTtcbiAgICB9XG4gICAgaWYgKGRhdGEuQWNjZXNzS2V5SWQgPT09IHVuZGVmaW5lZCB8fCBkYXRhLlNlY3JldEFjY2Vzc0tleSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IEVycm9yKGBQcm9maWxlICR7cHJvZmlsZU5hbWV9IGNyZWRlbnRpYWxfcHJvY2VzcyByZXR1cm5lZCBpbnZhbGlkIGNyZWRlbnRpYWxzLmApO1xuICAgIH1cbiAgICBpZiAoZGF0YS5FeHBpcmF0aW9uKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRUaW1lID0gbmV3IERhdGUoKTtcbiAgICAgICAgY29uc3QgZXhwaXJlVGltZSA9IG5ldyBEYXRlKGRhdGEuRXhwaXJhdGlvbik7XG4gICAgICAgIGlmIChleHBpcmVUaW1lIDwgY3VycmVudFRpbWUpIHtcbiAgICAgICAgICAgIHRocm93IEVycm9yKGBQcm9maWxlICR7cHJvZmlsZU5hbWV9IGNyZWRlbnRpYWxfcHJvY2VzcyByZXR1cm5lZCBleHBpcmVkIGNyZWRlbnRpYWxzLmApO1xuICAgICAgICB9XG4gICAgfVxuICAgIGxldCBhY2NvdW50SWQgPSBkYXRhLkFjY291bnRJZDtcbiAgICBpZiAoIWFjY291bnRJZCAmJiBwcm9maWxlcz8uW3Byb2ZpbGVOYW1lXT8uYXdzX2FjY291bnRfaWQpIHtcbiAgICAgICAgYWNjb3VudElkID0gcHJvZmlsZXNbcHJvZmlsZU5hbWVdLmF3c19hY2NvdW50X2lkO1xuICAgIH1cbiAgICBjb25zdCBjcmVkZW50aWFscyA9IHtcbiAgICAgICAgYWNjZXNzS2V5SWQ6IGRhdGEuQWNjZXNzS2V5SWQsXG4gICAgICAgIHNlY3JldEFjY2Vzc0tleTogZGF0YS5TZWNyZXRBY2Nlc3NLZXksXG4gICAgICAgIC4uLihkYXRhLlNlc3Npb25Ub2tlbiAmJiB7IHNlc3Npb25Ub2tlbjogZGF0YS5TZXNzaW9uVG9rZW4gfSksXG4gICAgICAgIC4uLihkYXRhLkV4cGlyYXRpb24gJiYgeyBleHBpcmF0aW9uOiBuZXcgRGF0ZShkYXRhLkV4cGlyYXRpb24pIH0pLFxuICAgICAgICAuLi4oZGF0YS5DcmVkZW50aWFsU2NvcGUgJiYgeyBjcmVkZW50aWFsU2NvcGU6IGRhdGEuQ3JlZGVudGlhbFNjb3BlIH0pLFxuICAgICAgICAuLi4oYWNjb3VudElkICYmIHsgYWNjb3VudElkIH0pLFxuICAgIH07XG4gICAgY2xpZW50LnNldENyZWRlbnRpYWxGZWF0dXJlKGNyZWRlbnRpYWxzLCBcIkNSRURFTlRJQUxTX1BST0NFU1NcIiwgXCJ3XCIpO1xuICAgIHJldHVybiBjcmVkZW50aWFscztcbn07XG5cbmNvbnN0IHJlc29sdmVQcm9jZXNzQ3JlZGVudGlhbHMgPSBhc3luYyAocHJvZmlsZU5hbWUsIHByb2ZpbGVzLCBsb2dnZXIpID0+IHtcbiAgICBjb25zdCBwcm9maWxlID0gcHJvZmlsZXNbcHJvZmlsZU5hbWVdO1xuICAgIGlmIChwcm9maWxlc1twcm9maWxlTmFtZV0pIHtcbiAgICAgICAgY29uc3QgY3JlZGVudGlhbFByb2Nlc3MgPSBwcm9maWxlW1wiY3JlZGVudGlhbF9wcm9jZXNzXCJdO1xuICAgICAgICBpZiAoY3JlZGVudGlhbFByb2Nlc3MgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgY29uc3QgZXhlY1Byb21pc2UgPSBub2RlX3V0aWwucHJvbWlzaWZ5KHNoYXJlZEluaUZpbGVMb2FkZXIuZXh0ZXJuYWxEYXRhSW50ZXJjZXB0b3I/LmdldFRva2VuUmVjb3JkPy4oKS5leGVjID8/IG5vZGVfY2hpbGRfcHJvY2Vzcy5leGVjKTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBzdGRvdXQgfSA9IGF3YWl0IGV4ZWNQcm9taXNlKGNyZWRlbnRpYWxQcm9jZXNzKTtcbiAgICAgICAgICAgICAgICBsZXQgZGF0YTtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBkYXRhID0gSlNPTi5wYXJzZShzdGRvdXQudHJpbSgpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2F0Y2gge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBFcnJvcihgUHJvZmlsZSAke3Byb2ZpbGVOYW1lfSBjcmVkZW50aWFsX3Byb2Nlc3MgcmV0dXJuZWQgaW52YWxpZCBKU09OLmApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gZ2V0VmFsaWRhdGVkUHJvY2Vzc0NyZWRlbnRpYWxzKHByb2ZpbGVOYW1lLCBkYXRhLCBwcm9maWxlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoZXJyb3IubWVzc2FnZSwgeyBsb2dnZXIgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoYFByb2ZpbGUgJHtwcm9maWxlTmFtZX0gZGlkIG5vdCBjb250YWluIGNyZWRlbnRpYWxfcHJvY2Vzcy5gLCB7IGxvZ2dlciB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKGBQcm9maWxlICR7cHJvZmlsZU5hbWV9IGNvdWxkIG5vdCBiZSBmb3VuZCBpbiBzaGFyZWQgY3JlZGVudGlhbHMgZmlsZS5gLCB7XG4gICAgICAgICAgICBsb2dnZXIsXG4gICAgICAgIH0pO1xuICAgIH1cbn07XG5cbmNvbnN0IGZyb21Qcm9jZXNzID0gKGluaXQgPSB7fSkgPT4gYXN5bmMgKHsgY2FsbGVyQ2xpZW50Q29uZmlnIH0gPSB7fSkgPT4ge1xuICAgIGluaXQubG9nZ2VyPy5kZWJ1ZyhcIkBhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItcHJvY2VzcyAtIGZyb21Qcm9jZXNzXCIpO1xuICAgIGNvbnN0IHByb2ZpbGVzID0gYXdhaXQgc2hhcmVkSW5pRmlsZUxvYWRlci5wYXJzZUtub3duRmlsZXMoaW5pdCk7XG4gICAgcmV0dXJuIHJlc29sdmVQcm9jZXNzQ3JlZGVudGlhbHMoc2hhcmVkSW5pRmlsZUxvYWRlci5nZXRQcm9maWxlTmFtZSh7XG4gICAgICAgIHByb2ZpbGU6IGluaXQucHJvZmlsZSA/PyBjYWxsZXJDbGllbnRDb25maWc/LnByb2ZpbGUsXG4gICAgfSksIHByb2ZpbGVzLCBpbml0LmxvZ2dlcik7XG59O1xuXG5leHBvcnRzLmZyb21Qcm9jZXNzID0gZnJvbVByb2Nlc3M7XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19jcmVhdGVCaW5kaW5nID0gKHRoaXMgJiYgdGhpcy5fX2NyZWF0ZUJpbmRpbmcpIHx8IChPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwgayk7XG4gICAgaWYgKCFkZXNjIHx8IChcImdldFwiIGluIGRlc2MgPyAhbS5fX2VzTW9kdWxlIDogZGVzYy53cml0YWJsZSB8fCBkZXNjLmNvbmZpZ3VyYWJsZSkpIHtcbiAgICAgIGRlc2MgPSB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiBtW2tdOyB9IH07XG4gICAgfVxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBrMiwgZGVzYyk7XG59KSA6IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgb1trMl0gPSBtW2tdO1xufSkpO1xudmFyIF9fc2V0TW9kdWxlRGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19zZXRNb2R1bGVEZWZhdWx0KSB8fCAoT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCB2KSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIFwiZGVmYXVsdFwiLCB7IGVudW1lcmFibGU6IHRydWUsIHZhbHVlOiB2IH0pO1xufSkgOiBmdW5jdGlvbihvLCB2KSB7XG4gICAgb1tcImRlZmF1bHRcIl0gPSB2O1xufSk7XG52YXIgX19pbXBvcnRTdGFyID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydFN0YXIpIHx8IChmdW5jdGlvbiAoKSB7XG4gICAgdmFyIG93bktleXMgPSBmdW5jdGlvbihvKSB7XG4gICAgICAgIG93bktleXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyB8fCBmdW5jdGlvbiAobykge1xuICAgICAgICAgICAgdmFyIGFyID0gW107XG4gICAgICAgICAgICBmb3IgKHZhciBrIGluIG8pIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobywgaykpIGFyW2FyLmxlbmd0aF0gPSBrO1xuICAgICAgICAgICAgcmV0dXJuIGFyO1xuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gb3duS2V5cyhvKTtcbiAgICB9O1xuICAgIHJldHVybiBmdW5jdGlvbiAobW9kKSB7XG4gICAgICAgIGlmIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpIHJldHVybiBtb2Q7XG4gICAgICAgIHZhciByZXN1bHQgPSB7fTtcbiAgICAgICAgaWYgKG1vZCAhPSBudWxsKSBmb3IgKHZhciBrID0gb3duS2V5cyhtb2QpLCBpID0gMDsgaSA8IGsubGVuZ3RoOyBpKyspIGlmIChrW2ldICE9PSBcImRlZmF1bHRcIikgX19jcmVhdGVCaW5kaW5nKHJlc3VsdCwgbW9kLCBrW2ldKTtcbiAgICAgICAgX19zZXRNb2R1bGVEZWZhdWx0KHJlc3VsdCwgbW9kKTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9O1xufSkoKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuZnJvbVdlYlRva2VuID0gdm9pZCAwO1xuY29uc3QgZnJvbVdlYlRva2VuID0gKGluaXQpID0+IGFzeW5jIChhd3NJZGVudGl0eVByb3BlcnRpZXMpID0+IHtcbiAgICBpbml0LmxvZ2dlcj8uZGVidWcoXCJAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLXdlYi1pZGVudGl0eSAtIGZyb21XZWJUb2tlblwiKTtcbiAgICBjb25zdCB7IHJvbGVBcm4sIHJvbGVTZXNzaW9uTmFtZSwgd2ViSWRlbnRpdHlUb2tlbiwgcHJvdmlkZXJJZCwgcG9saWN5QXJucywgcG9saWN5LCBkdXJhdGlvblNlY29uZHMgfSA9IGluaXQ7XG4gICAgbGV0IHsgcm9sZUFzc3VtZXJXaXRoV2ViSWRlbnRpdHkgfSA9IGluaXQ7XG4gICAgaWYgKCFyb2xlQXNzdW1lcldpdGhXZWJJZGVudGl0eSkge1xuICAgICAgICBjb25zdCB7IGdldERlZmF1bHRSb2xlQXNzdW1lcldpdGhXZWJJZGVudGl0eSB9ID0gYXdhaXQgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiBfX2ltcG9ydFN0YXIocmVxdWlyZShcIkBhd3Mtc2RrL25lc3RlZC1jbGllbnRzL3N0c1wiKSkpO1xuICAgICAgICByb2xlQXNzdW1lcldpdGhXZWJJZGVudGl0eSA9IGdldERlZmF1bHRSb2xlQXNzdW1lcldpdGhXZWJJZGVudGl0eSh7XG4gICAgICAgICAgICAuLi5pbml0LmNsaWVudENvbmZpZyxcbiAgICAgICAgICAgIGNyZWRlbnRpYWxQcm92aWRlckxvZ2dlcjogaW5pdC5sb2dnZXIsXG4gICAgICAgICAgICBwYXJlbnRDbGllbnRDb25maWc6IHtcbiAgICAgICAgICAgICAgICAuLi5hd3NJZGVudGl0eVByb3BlcnRpZXM/LmNhbGxlckNsaWVudENvbmZpZyxcbiAgICAgICAgICAgICAgICAuLi5pbml0LnBhcmVudENsaWVudENvbmZpZyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sIGluaXQuY2xpZW50UGx1Z2lucyk7XG4gICAgfVxuICAgIHJldHVybiByb2xlQXNzdW1lcldpdGhXZWJJZGVudGl0eSh7XG4gICAgICAgIFJvbGVBcm46IHJvbGVBcm4sXG4gICAgICAgIFJvbGVTZXNzaW9uTmFtZTogcm9sZVNlc3Npb25OYW1lID8/IGBhd3Mtc2RrLWpzLXNlc3Npb24tJHtEYXRlLm5vdygpfWAsXG4gICAgICAgIFdlYklkZW50aXR5VG9rZW46IHdlYklkZW50aXR5VG9rZW4sXG4gICAgICAgIFByb3ZpZGVySWQ6IHByb3ZpZGVySWQsXG4gICAgICAgIFBvbGljeUFybnM6IHBvbGljeUFybnMsXG4gICAgICAgIFBvbGljeTogcG9saWN5LFxuICAgICAgICBEdXJhdGlvblNlY29uZHM6IGR1cmF0aW9uU2Vjb25kcyxcbiAgICB9KTtcbn07XG5leHBvcnRzLmZyb21XZWJUb2tlbiA9IGZyb21XZWJUb2tlbjtcbiIsICJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuZnJvbVRva2VuRmlsZSA9IHZvaWQgMDtcbmNvbnN0IGNsaWVudF8xID0gcmVxdWlyZShcIkBhd3Mtc2RrL2NvcmUvY2xpZW50XCIpO1xuY29uc3QgcHJvcGVydHlfcHJvdmlkZXJfMSA9IHJlcXVpcmUoXCJAc21pdGh5L3Byb3BlcnR5LXByb3ZpZGVyXCIpO1xuY29uc3Qgc2hhcmVkX2luaV9maWxlX2xvYWRlcl8xID0gcmVxdWlyZShcIkBzbWl0aHkvc2hhcmVkLWluaS1maWxlLWxvYWRlclwiKTtcbmNvbnN0IG5vZGVfZnNfMSA9IHJlcXVpcmUoXCJub2RlOmZzXCIpO1xuY29uc3QgZnJvbVdlYlRva2VuXzEgPSByZXF1aXJlKFwiLi9mcm9tV2ViVG9rZW5cIik7XG5jb25zdCBFTlZfVE9LRU5fRklMRSA9IFwiQVdTX1dFQl9JREVOVElUWV9UT0tFTl9GSUxFXCI7XG5jb25zdCBFTlZfUk9MRV9BUk4gPSBcIkFXU19ST0xFX0FSTlwiO1xuY29uc3QgRU5WX1JPTEVfU0VTU0lPTl9OQU1FID0gXCJBV1NfUk9MRV9TRVNTSU9OX05BTUVcIjtcbmNvbnN0IGZyb21Ub2tlbkZpbGUgPSAoaW5pdCA9IHt9KSA9PiBhc3luYyAoYXdzSWRlbnRpdHlQcm9wZXJ0aWVzKSA9PiB7XG4gICAgaW5pdC5sb2dnZXI/LmRlYnVnKFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci13ZWItaWRlbnRpdHkgLSBmcm9tVG9rZW5GaWxlXCIpO1xuICAgIGNvbnN0IHdlYklkZW50aXR5VG9rZW5GaWxlID0gaW5pdD8ud2ViSWRlbnRpdHlUb2tlbkZpbGUgPz8gcHJvY2Vzcy5lbnZbRU5WX1RPS0VOX0ZJTEVdO1xuICAgIGNvbnN0IHJvbGVBcm4gPSBpbml0Py5yb2xlQXJuID8/IHByb2Nlc3MuZW52W0VOVl9ST0xFX0FSTl07XG4gICAgY29uc3Qgcm9sZVNlc3Npb25OYW1lID0gaW5pdD8ucm9sZVNlc3Npb25OYW1lID8/IHByb2Nlc3MuZW52W0VOVl9ST0xFX1NFU1NJT05fTkFNRV07XG4gICAgaWYgKCF3ZWJJZGVudGl0eVRva2VuRmlsZSB8fCAhcm9sZUFybikge1xuICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlfcHJvdmlkZXJfMS5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoXCJXZWIgaWRlbnRpdHkgY29uZmlndXJhdGlvbiBub3Qgc3BlY2lmaWVkXCIsIHtcbiAgICAgICAgICAgIGxvZ2dlcjogaW5pdC5sb2dnZXIsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCBjcmVkZW50aWFscyA9IGF3YWl0ICgwLCBmcm9tV2ViVG9rZW5fMS5mcm9tV2ViVG9rZW4pKHtcbiAgICAgICAgLi4uaW5pdCxcbiAgICAgICAgd2ViSWRlbnRpdHlUb2tlbjogc2hhcmVkX2luaV9maWxlX2xvYWRlcl8xLmV4dGVybmFsRGF0YUludGVyY2VwdG9yPy5nZXRUb2tlblJlY29yZD8uKClbd2ViSWRlbnRpdHlUb2tlbkZpbGVdID8/XG4gICAgICAgICAgICAoMCwgbm9kZV9mc18xLnJlYWRGaWxlU3luYykod2ViSWRlbnRpdHlUb2tlbkZpbGUsIHsgZW5jb2Rpbmc6IFwiYXNjaWlcIiB9KSxcbiAgICAgICAgcm9sZUFybixcbiAgICAgICAgcm9sZVNlc3Npb25OYW1lLFxuICAgIH0pKGF3c0lkZW50aXR5UHJvcGVydGllcyk7XG4gICAgaWYgKHdlYklkZW50aXR5VG9rZW5GaWxlID09PSBwcm9jZXNzLmVudltFTlZfVE9LRU5fRklMRV0pIHtcbiAgICAgICAgKDAsIGNsaWVudF8xLnNldENyZWRlbnRpYWxGZWF0dXJlKShjcmVkZW50aWFscywgXCJDUkVERU5USUFMU19FTlZfVkFSU19TVFNfV0VCX0lEX1RPS0VOXCIsIFwiaFwiKTtcbiAgICB9XG4gICAgcmV0dXJuIGNyZWRlbnRpYWxzO1xufTtcbmV4cG9ydHMuZnJvbVRva2VuRmlsZSA9IGZyb21Ub2tlbkZpbGU7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgZnJvbVRva2VuRmlsZSA9IHJlcXVpcmUoJy4vZnJvbVRva2VuRmlsZScpO1xudmFyIGZyb21XZWJUb2tlbiA9IHJlcXVpcmUoJy4vZnJvbVdlYlRva2VuJyk7XG5cblxuXG5PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZnJvbVRva2VuRmlsZSwgJ19fcHJvdG9fXycpICYmXG5cdCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXhwb3J0cywgJ19fcHJvdG9fXycpICYmXG5cdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19wcm90b19fJywge1xuXHRcdGVudW1lcmFibGU6IHRydWUsXG5cdFx0dmFsdWU6IGZyb21Ub2tlbkZpbGVbJ19fcHJvdG9fXyddXG5cdH0pO1xuXG5PYmplY3Qua2V5cyhmcm9tVG9rZW5GaWxlKS5mb3JFYWNoKGZ1bmN0aW9uIChrKSB7XG5cdGlmIChrICE9PSAnZGVmYXVsdCcgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChleHBvcnRzLCBrKSkgZXhwb3J0c1trXSA9IGZyb21Ub2tlbkZpbGVba107XG59KTtcbk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChmcm9tV2ViVG9rZW4sICdfX3Byb3RvX18nKSAmJlxuXHQhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGV4cG9ydHMsICdfX3Byb3RvX18nKSAmJlxuXHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fcHJvdG9fXycsIHtcblx0XHRlbnVtZXJhYmxlOiB0cnVlLFxuXHRcdHZhbHVlOiBmcm9tV2ViVG9rZW5bJ19fcHJvdG9fXyddXG5cdH0pO1xuXG5PYmplY3Qua2V5cyhmcm9tV2ViVG9rZW4pLmZvckVhY2goZnVuY3Rpb24gKGspIHtcblx0aWYgKGsgIT09ICdkZWZhdWx0JyAmJiAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGV4cG9ydHMsIGspKSBleHBvcnRzW2tdID0gZnJvbVdlYlRva2VuW2tdO1xufSk7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgc2hhcmVkSW5pRmlsZUxvYWRlciA9IHJlcXVpcmUoJ0BzbWl0aHkvc2hhcmVkLWluaS1maWxlLWxvYWRlcicpO1xudmFyIHByb3BlcnR5UHJvdmlkZXIgPSByZXF1aXJlKCdAc21pdGh5L3Byb3BlcnR5LXByb3ZpZGVyJyk7XG52YXIgY2xpZW50ID0gcmVxdWlyZSgnQGF3cy1zZGsvY29yZS9jbGllbnQnKTtcbnZhciBjcmVkZW50aWFsUHJvdmlkZXJMb2dpbiA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbG9naW4nKTtcblxuY29uc3QgcmVzb2x2ZUNyZWRlbnRpYWxTb3VyY2UgPSAoY3JlZGVudGlhbFNvdXJjZSwgcHJvZmlsZU5hbWUsIGxvZ2dlcikgPT4ge1xuICAgIGNvbnN0IHNvdXJjZVByb3ZpZGVyc01hcCA9IHtcbiAgICAgICAgRWNzQ29udGFpbmVyOiBhc3luYyAob3B0aW9ucykgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBmcm9tSHR0cCB9ID0gYXdhaXQgaW1wb3J0KCdAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLWh0dHAnKTtcbiAgICAgICAgICAgIGNvbnN0IHsgZnJvbUNvbnRhaW5lck1ldGFkYXRhIH0gPSBhd2FpdCBpbXBvcnQoJ0BzbWl0aHkvY3JlZGVudGlhbC1wcm92aWRlci1pbWRzJyk7XG4gICAgICAgICAgICBsb2dnZXI/LmRlYnVnKFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1pbmkgLSBjcmVkZW50aWFsX3NvdXJjZSBpcyBFY3NDb250YWluZXJcIik7XG4gICAgICAgICAgICByZXR1cm4gYXN5bmMgKCkgPT4gcHJvcGVydHlQcm92aWRlci5jaGFpbihmcm9tSHR0cChvcHRpb25zID8/IHt9KSwgZnJvbUNvbnRhaW5lck1ldGFkYXRhKG9wdGlvbnMpKSgpLnRoZW4oc2V0TmFtZWRQcm92aWRlcik7XG4gICAgICAgIH0sXG4gICAgICAgIEVjMkluc3RhbmNlTWV0YWRhdGE6IGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgICAgICAgICBsb2dnZXI/LmRlYnVnKFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1pbmkgLSBjcmVkZW50aWFsX3NvdXJjZSBpcyBFYzJJbnN0YW5jZU1ldGFkYXRhXCIpO1xuICAgICAgICAgICAgY29uc3QgeyBmcm9tSW5zdGFuY2VNZXRhZGF0YSB9ID0gYXdhaXQgaW1wb3J0KCdAc21pdGh5L2NyZWRlbnRpYWwtcHJvdmlkZXItaW1kcycpO1xuICAgICAgICAgICAgcmV0dXJuIGFzeW5jICgpID0+IGZyb21JbnN0YW5jZU1ldGFkYXRhKG9wdGlvbnMpKCkudGhlbihzZXROYW1lZFByb3ZpZGVyKTtcbiAgICAgICAgfSxcbiAgICAgICAgRW52aXJvbm1lbnQ6IGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgICAgICAgICBsb2dnZXI/LmRlYnVnKFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1pbmkgLSBjcmVkZW50aWFsX3NvdXJjZSBpcyBFbnZpcm9ubWVudFwiKTtcbiAgICAgICAgICAgIGNvbnN0IHsgZnJvbUVudiB9ID0gYXdhaXQgaW1wb3J0KCdAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLWVudicpO1xuICAgICAgICAgICAgcmV0dXJuIGFzeW5jICgpID0+IGZyb21FbnYob3B0aW9ucykoKS50aGVuKHNldE5hbWVkUHJvdmlkZXIpO1xuICAgICAgICB9LFxuICAgIH07XG4gICAgaWYgKGNyZWRlbnRpYWxTb3VyY2UgaW4gc291cmNlUHJvdmlkZXJzTWFwKSB7XG4gICAgICAgIHJldHVybiBzb3VyY2VQcm92aWRlcnNNYXBbY3JlZGVudGlhbFNvdXJjZV07XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoYFVuc3VwcG9ydGVkIGNyZWRlbnRpYWwgc291cmNlIGluIHByb2ZpbGUgJHtwcm9maWxlTmFtZX0uIEdvdCAke2NyZWRlbnRpYWxTb3VyY2V9LCBgICtcbiAgICAgICAgICAgIGBleHBlY3RlZCBFY3NDb250YWluZXIgb3IgRWMySW5zdGFuY2VNZXRhZGF0YSBvciBFbnZpcm9ubWVudC5gLCB7IGxvZ2dlciB9KTtcbiAgICB9XG59O1xuY29uc3Qgc2V0TmFtZWRQcm92aWRlciA9IChjcmVkcykgPT4gY2xpZW50LnNldENyZWRlbnRpYWxGZWF0dXJlKGNyZWRzLCBcIkNSRURFTlRJQUxTX1BST0ZJTEVfTkFNRURfUFJPVklERVJcIiwgXCJwXCIpO1xuXG5jb25zdCBpc0Fzc3VtZVJvbGVQcm9maWxlID0gKGFyZywgeyBwcm9maWxlID0gXCJkZWZhdWx0XCIsIGxvZ2dlciB9ID0ge30pID0+IHtcbiAgICByZXR1cm4gKEJvb2xlYW4oYXJnKSAmJlxuICAgICAgICB0eXBlb2YgYXJnID09PSBcIm9iamVjdFwiICYmXG4gICAgICAgIHR5cGVvZiBhcmcucm9sZV9hcm4gPT09IFwic3RyaW5nXCIgJiZcbiAgICAgICAgW1widW5kZWZpbmVkXCIsIFwic3RyaW5nXCJdLmluZGV4T2YodHlwZW9mIGFyZy5yb2xlX3Nlc3Npb25fbmFtZSkgPiAtMSAmJlxuICAgICAgICBbXCJ1bmRlZmluZWRcIiwgXCJzdHJpbmdcIl0uaW5kZXhPZih0eXBlb2YgYXJnLmV4dGVybmFsX2lkKSA+IC0xICYmXG4gICAgICAgIFtcInVuZGVmaW5lZFwiLCBcInN0cmluZ1wiXS5pbmRleE9mKHR5cGVvZiBhcmcubWZhX3NlcmlhbCkgPiAtMSAmJlxuICAgICAgICAoaXNBc3N1bWVSb2xlV2l0aFNvdXJjZVByb2ZpbGUoYXJnLCB7IHByb2ZpbGUsIGxvZ2dlciB9KSB8fCBpc0NyZWRlbnRpYWxTb3VyY2VQcm9maWxlKGFyZywgeyBwcm9maWxlLCBsb2dnZXIgfSkpKTtcbn07XG5jb25zdCBpc0Fzc3VtZVJvbGVXaXRoU291cmNlUHJvZmlsZSA9IChhcmcsIHsgcHJvZmlsZSwgbG9nZ2VyIH0pID0+IHtcbiAgICBjb25zdCB3aXRoU291cmNlUHJvZmlsZSA9IHR5cGVvZiBhcmcuc291cmNlX3Byb2ZpbGUgPT09IFwic3RyaW5nXCIgJiYgdHlwZW9mIGFyZy5jcmVkZW50aWFsX3NvdXJjZSA9PT0gXCJ1bmRlZmluZWRcIjtcbiAgICBpZiAod2l0aFNvdXJjZVByb2ZpbGUpIHtcbiAgICAgICAgbG9nZ2VyPy5kZWJ1Zz8uKGAgICAgJHtwcm9maWxlfSBpc0Fzc3VtZVJvbGVXaXRoU291cmNlUHJvZmlsZSBzb3VyY2VfcHJvZmlsZT0ke2FyZy5zb3VyY2VfcHJvZmlsZX1gKTtcbiAgICB9XG4gICAgcmV0dXJuIHdpdGhTb3VyY2VQcm9maWxlO1xufTtcbmNvbnN0IGlzQ3JlZGVudGlhbFNvdXJjZVByb2ZpbGUgPSAoYXJnLCB7IHByb2ZpbGUsIGxvZ2dlciB9KSA9PiB7XG4gICAgY29uc3Qgd2l0aFByb3ZpZGVyUHJvZmlsZSA9IHR5cGVvZiBhcmcuY3JlZGVudGlhbF9zb3VyY2UgPT09IFwic3RyaW5nXCIgJiYgdHlwZW9mIGFyZy5zb3VyY2VfcHJvZmlsZSA9PT0gXCJ1bmRlZmluZWRcIjtcbiAgICBpZiAod2l0aFByb3ZpZGVyUHJvZmlsZSkge1xuICAgICAgICBsb2dnZXI/LmRlYnVnPy4oYCAgICAke3Byb2ZpbGV9IGlzQ3JlZGVudGlhbFNvdXJjZVByb2ZpbGUgY3JlZGVudGlhbF9zb3VyY2U9JHthcmcuY3JlZGVudGlhbF9zb3VyY2V9YCk7XG4gICAgfVxuICAgIHJldHVybiB3aXRoUHJvdmlkZXJQcm9maWxlO1xufTtcbmNvbnN0IHJlc29sdmVBc3N1bWVSb2xlQ3JlZGVudGlhbHMgPSBhc3luYyAocHJvZmlsZU5hbWUsIHByb2ZpbGVzLCBvcHRpb25zLCBjYWxsZXJDbGllbnRDb25maWcsIHZpc2l0ZWRQcm9maWxlcyA9IHt9LCByZXNvbHZlUHJvZmlsZURhdGEpID0+IHtcbiAgICBvcHRpb25zLmxvZ2dlcj8uZGVidWcoXCJAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLWluaSAtIHJlc29sdmVBc3N1bWVSb2xlQ3JlZGVudGlhbHMgKFNUUylcIik7XG4gICAgY29uc3QgcHJvZmlsZURhdGEgPSBwcm9maWxlc1twcm9maWxlTmFtZV07XG4gICAgY29uc3QgeyBzb3VyY2VfcHJvZmlsZSwgcmVnaW9uIH0gPSBwcm9maWxlRGF0YTtcbiAgICBpZiAoIW9wdGlvbnMucm9sZUFzc3VtZXIpIHtcbiAgICAgICAgY29uc3QgeyBnZXREZWZhdWx0Um9sZUFzc3VtZXIgfSA9IGF3YWl0IGltcG9ydCgnQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvc3RzJyk7XG4gICAgICAgIG9wdGlvbnMucm9sZUFzc3VtZXIgPSBnZXREZWZhdWx0Um9sZUFzc3VtZXIoe1xuICAgICAgICAgICAgLi4ub3B0aW9ucy5jbGllbnRDb25maWcsXG4gICAgICAgICAgICBjcmVkZW50aWFsUHJvdmlkZXJMb2dnZXI6IG9wdGlvbnMubG9nZ2VyLFxuICAgICAgICAgICAgcGFyZW50Q2xpZW50Q29uZmlnOiB7XG4gICAgICAgICAgICAgICAgLi4uY2FsbGVyQ2xpZW50Q29uZmlnLFxuICAgICAgICAgICAgICAgIC4uLm9wdGlvbnM/LnBhcmVudENsaWVudENvbmZpZyxcbiAgICAgICAgICAgICAgICByZWdpb246IHJlZ2lvbiA/PyBvcHRpb25zPy5wYXJlbnRDbGllbnRDb25maWc/LnJlZ2lvbiA/PyBjYWxsZXJDbGllbnRDb25maWc/LnJlZ2lvbixcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sIG9wdGlvbnMuY2xpZW50UGx1Z2lucyk7XG4gICAgfVxuICAgIGlmIChzb3VyY2VfcHJvZmlsZSAmJiBzb3VyY2VfcHJvZmlsZSBpbiB2aXNpdGVkUHJvZmlsZXMpIHtcbiAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKGBEZXRlY3RlZCBhIGN5Y2xlIGF0dGVtcHRpbmcgdG8gcmVzb2x2ZSBjcmVkZW50aWFscyBmb3IgcHJvZmlsZWAgK1xuICAgICAgICAgICAgYCAke3NoYXJlZEluaUZpbGVMb2FkZXIuZ2V0UHJvZmlsZU5hbWUob3B0aW9ucyl9LiBQcm9maWxlcyB2aXNpdGVkOiBgICtcbiAgICAgICAgICAgIE9iamVjdC5rZXlzKHZpc2l0ZWRQcm9maWxlcykuam9pbihcIiwgXCIpLCB7IGxvZ2dlcjogb3B0aW9ucy5sb2dnZXIgfSk7XG4gICAgfVxuICAgIG9wdGlvbnMubG9nZ2VyPy5kZWJ1ZyhgQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1pbmkgLSBmaW5kaW5nIGNyZWRlbnRpYWwgcmVzb2x2ZXIgdXNpbmcgJHtzb3VyY2VfcHJvZmlsZSA/IGBzb3VyY2VfcHJvZmlsZT1bJHtzb3VyY2VfcHJvZmlsZX1dYCA6IGBwcm9maWxlPVske3Byb2ZpbGVOYW1lfV1gfWApO1xuICAgIGNvbnN0IHNvdXJjZUNyZWRzUHJvdmlkZXIgPSBzb3VyY2VfcHJvZmlsZVxuICAgICAgICA/IHJlc29sdmVQcm9maWxlRGF0YShzb3VyY2VfcHJvZmlsZSwgcHJvZmlsZXMsIG9wdGlvbnMsIGNhbGxlckNsaWVudENvbmZpZywge1xuICAgICAgICAgICAgLi4udmlzaXRlZFByb2ZpbGVzLFxuICAgICAgICAgICAgW3NvdXJjZV9wcm9maWxlXTogdHJ1ZSxcbiAgICAgICAgfSwgaXNDcmVkZW50aWFsU291cmNlV2l0aG91dFJvbGVBcm4ocHJvZmlsZXNbc291cmNlX3Byb2ZpbGVdID8/IHt9KSlcbiAgICAgICAgOiAoYXdhaXQgcmVzb2x2ZUNyZWRlbnRpYWxTb3VyY2UocHJvZmlsZURhdGEuY3JlZGVudGlhbF9zb3VyY2UsIHByb2ZpbGVOYW1lLCBvcHRpb25zLmxvZ2dlcikob3B0aW9ucykpKCk7XG4gICAgaWYgKGlzQ3JlZGVudGlhbFNvdXJjZVdpdGhvdXRSb2xlQXJuKHByb2ZpbGVEYXRhKSkge1xuICAgICAgICByZXR1cm4gc291cmNlQ3JlZHNQcm92aWRlci50aGVuKChjcmVkcykgPT4gY2xpZW50LnNldENyZWRlbnRpYWxGZWF0dXJlKGNyZWRzLCBcIkNSRURFTlRJQUxTX1BST0ZJTEVfU09VUkNFX1BST0ZJTEVcIiwgXCJvXCIpKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IHtcbiAgICAgICAgICAgIFJvbGVBcm46IHByb2ZpbGVEYXRhLnJvbGVfYXJuLFxuICAgICAgICAgICAgUm9sZVNlc3Npb25OYW1lOiBwcm9maWxlRGF0YS5yb2xlX3Nlc3Npb25fbmFtZSB8fCBgYXdzLXNkay1qcy0ke0RhdGUubm93KCl9YCxcbiAgICAgICAgICAgIEV4dGVybmFsSWQ6IHByb2ZpbGVEYXRhLmV4dGVybmFsX2lkLFxuICAgICAgICAgICAgRHVyYXRpb25TZWNvbmRzOiBwYXJzZUludChwcm9maWxlRGF0YS5kdXJhdGlvbl9zZWNvbmRzIHx8IFwiMzYwMFwiLCAxMCksXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHsgbWZhX3NlcmlhbCB9ID0gcHJvZmlsZURhdGE7XG4gICAgICAgIGlmIChtZmFfc2VyaWFsKSB7XG4gICAgICAgICAgICBpZiAoIW9wdGlvbnMubWZhQ29kZVByb3ZpZGVyKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKGBQcm9maWxlICR7cHJvZmlsZU5hbWV9IHJlcXVpcmVzIG11bHRpLWZhY3RvciBhdXRoZW50aWNhdGlvbiwgYnV0IG5vIE1GQSBjb2RlIGNhbGxiYWNrIHdhcyBwcm92aWRlZC5gLCB7IGxvZ2dlcjogb3B0aW9ucy5sb2dnZXIsIHRyeU5leHRMaW5rOiBmYWxzZSB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBhcmFtcy5TZXJpYWxOdW1iZXIgPSBtZmFfc2VyaWFsO1xuICAgICAgICAgICAgcGFyYW1zLlRva2VuQ29kZSA9IGF3YWl0IG9wdGlvbnMubWZhQ29kZVByb3ZpZGVyKG1mYV9zZXJpYWwpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNvdXJjZUNyZWRzID0gYXdhaXQgc291cmNlQ3JlZHNQcm92aWRlcjtcbiAgICAgICAgcmV0dXJuIG9wdGlvbnMucm9sZUFzc3VtZXIoc291cmNlQ3JlZHMsIHBhcmFtcykudGhlbigoY3JlZHMpID0+IGNsaWVudC5zZXRDcmVkZW50aWFsRmVhdHVyZShjcmVkcywgXCJDUkVERU5USUFMU19QUk9GSUxFX1NPVVJDRV9QUk9GSUxFXCIsIFwib1wiKSk7XG4gICAgfVxufTtcbmNvbnN0IGlzQ3JlZGVudGlhbFNvdXJjZVdpdGhvdXRSb2xlQXJuID0gKHNlY3Rpb24pID0+IHtcbiAgICByZXR1cm4gIXNlY3Rpb24ucm9sZV9hcm4gJiYgISFzZWN0aW9uLmNyZWRlbnRpYWxfc291cmNlO1xufTtcblxuY29uc3QgaXNMb2dpblByb2ZpbGUgPSAoZGF0YSkgPT4ge1xuICAgIHJldHVybiBCb29sZWFuKGRhdGEgJiYgZGF0YS5sb2dpbl9zZXNzaW9uKTtcbn07XG5jb25zdCByZXNvbHZlTG9naW5DcmVkZW50aWFscyA9IGFzeW5jIChwcm9maWxlTmFtZSwgb3B0aW9ucywgY2FsbGVyQ2xpZW50Q29uZmlnKSA9PiB7XG4gICAgY29uc3QgY3JlZGVudGlhbHMgPSBhd2FpdCBjcmVkZW50aWFsUHJvdmlkZXJMb2dpbi5mcm9tTG9naW5DcmVkZW50aWFscyh7XG4gICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgIHByb2ZpbGU6IHByb2ZpbGVOYW1lLFxuICAgIH0pKHsgY2FsbGVyQ2xpZW50Q29uZmlnIH0pO1xuICAgIHJldHVybiBjbGllbnQuc2V0Q3JlZGVudGlhbEZlYXR1cmUoY3JlZGVudGlhbHMsIFwiQ1JFREVOVElBTFNfUFJPRklMRV9MT0dJTlwiLCBcIkFDXCIpO1xufTtcblxuY29uc3QgaXNQcm9jZXNzUHJvZmlsZSA9IChhcmcpID0+IEJvb2xlYW4oYXJnKSAmJiB0eXBlb2YgYXJnID09PSBcIm9iamVjdFwiICYmIHR5cGVvZiBhcmcuY3JlZGVudGlhbF9wcm9jZXNzID09PSBcInN0cmluZ1wiO1xuY29uc3QgcmVzb2x2ZVByb2Nlc3NDcmVkZW50aWFscyA9IGFzeW5jIChvcHRpb25zLCBwcm9maWxlKSA9PiBpbXBvcnQoJ0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItcHJvY2VzcycpLnRoZW4oKHsgZnJvbVByb2Nlc3MgfSkgPT4gZnJvbVByb2Nlc3Moe1xuICAgIC4uLm9wdGlvbnMsXG4gICAgcHJvZmlsZSxcbn0pKCkudGhlbigoY3JlZHMpID0+IGNsaWVudC5zZXRDcmVkZW50aWFsRmVhdHVyZShjcmVkcywgXCJDUkVERU5USUFMU19QUk9GSUxFX1BST0NFU1NcIiwgXCJ2XCIpKSk7XG5cbmNvbnN0IHJlc29sdmVTc29DcmVkZW50aWFscyA9IGFzeW5jIChwcm9maWxlLCBwcm9maWxlRGF0YSwgb3B0aW9ucyA9IHt9LCBjYWxsZXJDbGllbnRDb25maWcpID0+IHtcbiAgICBjb25zdCB7IGZyb21TU08gfSA9IGF3YWl0IGltcG9ydCgnQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1zc28nKTtcbiAgICByZXR1cm4gZnJvbVNTTyh7XG4gICAgICAgIHByb2ZpbGUsXG4gICAgICAgIGxvZ2dlcjogb3B0aW9ucy5sb2dnZXIsXG4gICAgICAgIHBhcmVudENsaWVudENvbmZpZzogb3B0aW9ucy5wYXJlbnRDbGllbnRDb25maWcsXG4gICAgICAgIGNsaWVudENvbmZpZzogb3B0aW9ucy5jbGllbnRDb25maWcsXG4gICAgfSkoe1xuICAgICAgICBjYWxsZXJDbGllbnRDb25maWcsXG4gICAgfSkudGhlbigoY3JlZHMpID0+IHtcbiAgICAgICAgaWYgKHByb2ZpbGVEYXRhLnNzb19zZXNzaW9uKSB7XG4gICAgICAgICAgICByZXR1cm4gY2xpZW50LnNldENyZWRlbnRpYWxGZWF0dXJlKGNyZWRzLCBcIkNSRURFTlRJQUxTX1BST0ZJTEVfU1NPXCIsIFwiclwiKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBjbGllbnQuc2V0Q3JlZGVudGlhbEZlYXR1cmUoY3JlZHMsIFwiQ1JFREVOVElBTFNfUFJPRklMRV9TU09fTEVHQUNZXCIsIFwidFwiKTtcbiAgICAgICAgfVxuICAgIH0pO1xufTtcbmNvbnN0IGlzU3NvUHJvZmlsZSA9IChhcmcpID0+IGFyZyAmJlxuICAgICh0eXBlb2YgYXJnLnNzb19zdGFydF91cmwgPT09IFwic3RyaW5nXCIgfHxcbiAgICAgICAgdHlwZW9mIGFyZy5zc29fYWNjb3VudF9pZCA9PT0gXCJzdHJpbmdcIiB8fFxuICAgICAgICB0eXBlb2YgYXJnLnNzb19zZXNzaW9uID09PSBcInN0cmluZ1wiIHx8XG4gICAgICAgIHR5cGVvZiBhcmcuc3NvX3JlZ2lvbiA9PT0gXCJzdHJpbmdcIiB8fFxuICAgICAgICB0eXBlb2YgYXJnLnNzb19yb2xlX25hbWUgPT09IFwic3RyaW5nXCIpO1xuXG5jb25zdCBpc1N0YXRpY0NyZWRzUHJvZmlsZSA9IChhcmcpID0+IEJvb2xlYW4oYXJnKSAmJlxuICAgIHR5cGVvZiBhcmcgPT09IFwib2JqZWN0XCIgJiZcbiAgICB0eXBlb2YgYXJnLmF3c19hY2Nlc3Nfa2V5X2lkID09PSBcInN0cmluZ1wiICYmXG4gICAgdHlwZW9mIGFyZy5hd3Nfc2VjcmV0X2FjY2Vzc19rZXkgPT09IFwic3RyaW5nXCIgJiZcbiAgICBbXCJ1bmRlZmluZWRcIiwgXCJzdHJpbmdcIl0uaW5kZXhPZih0eXBlb2YgYXJnLmF3c19zZXNzaW9uX3Rva2VuKSA+IC0xICYmXG4gICAgW1widW5kZWZpbmVkXCIsIFwic3RyaW5nXCJdLmluZGV4T2YodHlwZW9mIGFyZy5hd3NfYWNjb3VudF9pZCkgPiAtMTtcbmNvbnN0IHJlc29sdmVTdGF0aWNDcmVkZW50aWFscyA9IGFzeW5jIChwcm9maWxlLCBvcHRpb25zKSA9PiB7XG4gICAgb3B0aW9ucz8ubG9nZ2VyPy5kZWJ1ZyhcIkBhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItaW5pIC0gcmVzb2x2ZVN0YXRpY0NyZWRlbnRpYWxzXCIpO1xuICAgIGNvbnN0IGNyZWRlbnRpYWxzID0ge1xuICAgICAgICBhY2Nlc3NLZXlJZDogcHJvZmlsZS5hd3NfYWNjZXNzX2tleV9pZCxcbiAgICAgICAgc2VjcmV0QWNjZXNzS2V5OiBwcm9maWxlLmF3c19zZWNyZXRfYWNjZXNzX2tleSxcbiAgICAgICAgc2Vzc2lvblRva2VuOiBwcm9maWxlLmF3c19zZXNzaW9uX3Rva2VuLFxuICAgICAgICAuLi4ocHJvZmlsZS5hd3NfY3JlZGVudGlhbF9zY29wZSAmJiB7IGNyZWRlbnRpYWxTY29wZTogcHJvZmlsZS5hd3NfY3JlZGVudGlhbF9zY29wZSB9KSxcbiAgICAgICAgLi4uKHByb2ZpbGUuYXdzX2FjY291bnRfaWQgJiYgeyBhY2NvdW50SWQ6IHByb2ZpbGUuYXdzX2FjY291bnRfaWQgfSksXG4gICAgfTtcbiAgICByZXR1cm4gY2xpZW50LnNldENyZWRlbnRpYWxGZWF0dXJlKGNyZWRlbnRpYWxzLCBcIkNSRURFTlRJQUxTX1BST0ZJTEVcIiwgXCJuXCIpO1xufTtcblxuY29uc3QgaXNXZWJJZGVudGl0eVByb2ZpbGUgPSAoYXJnKSA9PiBCb29sZWFuKGFyZykgJiZcbiAgICB0eXBlb2YgYXJnID09PSBcIm9iamVjdFwiICYmXG4gICAgdHlwZW9mIGFyZy53ZWJfaWRlbnRpdHlfdG9rZW5fZmlsZSA9PT0gXCJzdHJpbmdcIiAmJlxuICAgIHR5cGVvZiBhcmcucm9sZV9hcm4gPT09IFwic3RyaW5nXCIgJiZcbiAgICBbXCJ1bmRlZmluZWRcIiwgXCJzdHJpbmdcIl0uaW5kZXhPZih0eXBlb2YgYXJnLnJvbGVfc2Vzc2lvbl9uYW1lKSA+IC0xO1xuY29uc3QgcmVzb2x2ZVdlYklkZW50aXR5Q3JlZGVudGlhbHMgPSBhc3luYyAocHJvZmlsZSwgb3B0aW9ucywgY2FsbGVyQ2xpZW50Q29uZmlnKSA9PiBpbXBvcnQoJ0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItd2ViLWlkZW50aXR5JykudGhlbigoeyBmcm9tVG9rZW5GaWxlIH0pID0+IGZyb21Ub2tlbkZpbGUoe1xuICAgIHdlYklkZW50aXR5VG9rZW5GaWxlOiBwcm9maWxlLndlYl9pZGVudGl0eV90b2tlbl9maWxlLFxuICAgIHJvbGVBcm46IHByb2ZpbGUucm9sZV9hcm4sXG4gICAgcm9sZVNlc3Npb25OYW1lOiBwcm9maWxlLnJvbGVfc2Vzc2lvbl9uYW1lLFxuICAgIHJvbGVBc3N1bWVyV2l0aFdlYklkZW50aXR5OiBvcHRpb25zLnJvbGVBc3N1bWVyV2l0aFdlYklkZW50aXR5LFxuICAgIGxvZ2dlcjogb3B0aW9ucy5sb2dnZXIsXG4gICAgcGFyZW50Q2xpZW50Q29uZmlnOiBvcHRpb25zLnBhcmVudENsaWVudENvbmZpZyxcbn0pKHtcbiAgICBjYWxsZXJDbGllbnRDb25maWcsXG59KS50aGVuKChjcmVkcykgPT4gY2xpZW50LnNldENyZWRlbnRpYWxGZWF0dXJlKGNyZWRzLCBcIkNSRURFTlRJQUxTX1BST0ZJTEVfU1RTX1dFQl9JRF9UT0tFTlwiLCBcInFcIikpKTtcblxuY29uc3QgcmVzb2x2ZVByb2ZpbGVEYXRhID0gYXN5bmMgKHByb2ZpbGVOYW1lLCBwcm9maWxlcywgb3B0aW9ucywgY2FsbGVyQ2xpZW50Q29uZmlnLCB2aXNpdGVkUHJvZmlsZXMgPSB7fSwgaXNBc3N1bWVSb2xlUmVjdXJzaXZlQ2FsbCA9IGZhbHNlKSA9PiB7XG4gICAgY29uc3QgZGF0YSA9IHByb2ZpbGVzW3Byb2ZpbGVOYW1lXTtcbiAgICBpZiAoT2JqZWN0LmtleXModmlzaXRlZFByb2ZpbGVzKS5sZW5ndGggPiAwICYmIGlzU3RhdGljQ3JlZHNQcm9maWxlKGRhdGEpKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlU3RhdGljQ3JlZGVudGlhbHMoZGF0YSwgb3B0aW9ucyk7XG4gICAgfVxuICAgIGlmIChpc0Fzc3VtZVJvbGVSZWN1cnNpdmVDYWxsIHx8IGlzQXNzdW1lUm9sZVByb2ZpbGUoZGF0YSwgeyBwcm9maWxlOiBwcm9maWxlTmFtZSwgbG9nZ2VyOiBvcHRpb25zLmxvZ2dlciB9KSkge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZUFzc3VtZVJvbGVDcmVkZW50aWFscyhwcm9maWxlTmFtZSwgcHJvZmlsZXMsIG9wdGlvbnMsIGNhbGxlckNsaWVudENvbmZpZywgdmlzaXRlZFByb2ZpbGVzLCByZXNvbHZlUHJvZmlsZURhdGEpO1xuICAgIH1cbiAgICBpZiAoaXNTdGF0aWNDcmVkc1Byb2ZpbGUoZGF0YSkpIHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVTdGF0aWNDcmVkZW50aWFscyhkYXRhLCBvcHRpb25zKTtcbiAgICB9XG4gICAgaWYgKGlzV2ViSWRlbnRpdHlQcm9maWxlKGRhdGEpKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlV2ViSWRlbnRpdHlDcmVkZW50aWFscyhkYXRhLCBvcHRpb25zLCBjYWxsZXJDbGllbnRDb25maWcpO1xuICAgIH1cbiAgICBpZiAoaXNQcm9jZXNzUHJvZmlsZShkYXRhKSkge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZVByb2Nlc3NDcmVkZW50aWFscyhvcHRpb25zLCBwcm9maWxlTmFtZSk7XG4gICAgfVxuICAgIGlmIChpc1Nzb1Byb2ZpbGUoZGF0YSkpIHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHJlc29sdmVTc29DcmVkZW50aWFscyhwcm9maWxlTmFtZSwgZGF0YSwgb3B0aW9ucywgY2FsbGVyQ2xpZW50Q29uZmlnKTtcbiAgICB9XG4gICAgaWYgKGlzTG9naW5Qcm9maWxlKGRhdGEpKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlTG9naW5DcmVkZW50aWFscyhwcm9maWxlTmFtZSwgb3B0aW9ucywgY2FsbGVyQ2xpZW50Q29uZmlnKTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKGBDb3VsZCBub3QgcmVzb2x2ZSBjcmVkZW50aWFscyB1c2luZyBwcm9maWxlOiBbJHtwcm9maWxlTmFtZX1dIGluIGNvbmZpZ3VyYXRpb24vY3JlZGVudGlhbHMgZmlsZShzKS5gLCB7IGxvZ2dlcjogb3B0aW9ucy5sb2dnZXIgfSk7XG59O1xuXG5jb25zdCBmcm9tSW5pID0gKGluaXQgPSB7fSkgPT4gYXN5bmMgKHsgY2FsbGVyQ2xpZW50Q29uZmlnIH0gPSB7fSkgPT4ge1xuICAgIGluaXQubG9nZ2VyPy5kZWJ1ZyhcIkBhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItaW5pIC0gZnJvbUluaVwiKTtcbiAgICBjb25zdCBwcm9maWxlcyA9IGF3YWl0IHNoYXJlZEluaUZpbGVMb2FkZXIucGFyc2VLbm93bkZpbGVzKGluaXQpO1xuICAgIHJldHVybiByZXNvbHZlUHJvZmlsZURhdGEoc2hhcmVkSW5pRmlsZUxvYWRlci5nZXRQcm9maWxlTmFtZSh7XG4gICAgICAgIHByb2ZpbGU6IGluaXQucHJvZmlsZSA/PyBjYWxsZXJDbGllbnRDb25maWc/LnByb2ZpbGUsXG4gICAgfSksIHByb2ZpbGVzLCBpbml0LCBjYWxsZXJDbGllbnRDb25maWcpO1xufTtcblxuZXhwb3J0cy5mcm9tSW5pID0gZnJvbUluaTtcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBjcmVkZW50aWFsUHJvdmlkZXJFbnYgPSByZXF1aXJlKCdAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLWVudicpO1xudmFyIHByb3BlcnR5UHJvdmlkZXIgPSByZXF1aXJlKCdAc21pdGh5L3Byb3BlcnR5LXByb3ZpZGVyJyk7XG52YXIgc2hhcmVkSW5pRmlsZUxvYWRlciA9IHJlcXVpcmUoJ0BzbWl0aHkvc2hhcmVkLWluaS1maWxlLWxvYWRlcicpO1xuXG5jb25zdCBFTlZfSU1EU19ESVNBQkxFRCA9IFwiQVdTX0VDMl9NRVRBREFUQV9ESVNBQkxFRFwiO1xuY29uc3QgcmVtb3RlUHJvdmlkZXIgPSBhc3luYyAoaW5pdCkgPT4ge1xuICAgIGNvbnN0IHsgRU5WX0NNRFNfRlVMTF9VUkksIEVOVl9DTURTX1JFTEFUSVZFX1VSSSwgZnJvbUNvbnRhaW5lck1ldGFkYXRhLCBmcm9tSW5zdGFuY2VNZXRhZGF0YSB9ID0gYXdhaXQgaW1wb3J0KCdAc21pdGh5L2NyZWRlbnRpYWwtcHJvdmlkZXItaW1kcycpO1xuICAgIGlmIChwcm9jZXNzLmVudltFTlZfQ01EU19SRUxBVElWRV9VUkldIHx8IHByb2Nlc3MuZW52W0VOVl9DTURTX0ZVTExfVVJJXSkge1xuICAgICAgICBpbml0LmxvZ2dlcj8uZGVidWcoXCJAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLW5vZGUgLSByZW1vdGVQcm92aWRlcjo6ZnJvbUh0dHAvZnJvbUNvbnRhaW5lck1ldGFkYXRhXCIpO1xuICAgICAgICBjb25zdCB7IGZyb21IdHRwIH0gPSBhd2FpdCBpbXBvcnQoJ0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItaHR0cCcpO1xuICAgICAgICByZXR1cm4gcHJvcGVydHlQcm92aWRlci5jaGFpbihmcm9tSHR0cChpbml0KSwgZnJvbUNvbnRhaW5lck1ldGFkYXRhKGluaXQpKTtcbiAgICB9XG4gICAgaWYgKHByb2Nlc3MuZW52W0VOVl9JTURTX0RJU0FCTEVEXSAmJiBwcm9jZXNzLmVudltFTlZfSU1EU19ESVNBQkxFRF0gIT09IFwiZmFsc2VcIikge1xuICAgICAgICByZXR1cm4gYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKFwiRUMyIEluc3RhbmNlIE1ldGFkYXRhIFNlcnZpY2UgYWNjZXNzIGRpc2FibGVkXCIsIHsgbG9nZ2VyOiBpbml0LmxvZ2dlciB9KTtcbiAgICAgICAgfTtcbiAgICB9XG4gICAgaW5pdC5sb2dnZXI/LmRlYnVnKFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlIC0gcmVtb3RlUHJvdmlkZXI6OmZyb21JbnN0YW5jZU1ldGFkYXRhXCIpO1xuICAgIHJldHVybiBmcm9tSW5zdGFuY2VNZXRhZGF0YShpbml0KTtcbn07XG5cbmZ1bmN0aW9uIG1lbW9pemVDaGFpbihwcm92aWRlcnMsIHRyZWF0QXNFeHBpcmVkKSB7XG4gICAgY29uc3QgY2hhaW4gPSBpbnRlcm5hbENyZWF0ZUNoYWluKHByb3ZpZGVycyk7XG4gICAgbGV0IGFjdGl2ZUxvY2s7XG4gICAgbGV0IHBhc3NpdmVMb2NrO1xuICAgIGxldCBjcmVkZW50aWFscztcbiAgICBjb25zdCBwcm92aWRlciA9IGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgICAgIGlmIChvcHRpb25zPy5mb3JjZVJlZnJlc2gpIHtcbiAgICAgICAgICAgIHJldHVybiBhd2FpdCBjaGFpbihvcHRpb25zKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY3JlZGVudGlhbHM/LmV4cGlyYXRpb24pIHtcbiAgICAgICAgICAgIGlmIChjcmVkZW50aWFscz8uZXhwaXJhdGlvbj8uZ2V0VGltZSgpIDwgRGF0ZS5ub3coKSkge1xuICAgICAgICAgICAgICAgIGNyZWRlbnRpYWxzID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChhY3RpdmVMb2NrKSB7XG4gICAgICAgICAgICBhd2FpdCBhY3RpdmVMb2NrO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKCFjcmVkZW50aWFscyB8fCB0cmVhdEFzRXhwaXJlZD8uKGNyZWRlbnRpYWxzKSkge1xuICAgICAgICAgICAgaWYgKGNyZWRlbnRpYWxzKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFwYXNzaXZlTG9jaykge1xuICAgICAgICAgICAgICAgICAgICBwYXNzaXZlTG9jayA9IGNoYWluKG9wdGlvbnMpXG4gICAgICAgICAgICAgICAgICAgICAgICAudGhlbigoYykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY3JlZGVudGlhbHMgPSBjO1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFzc2l2ZUxvY2sgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGFjdGl2ZUxvY2sgPSBjaGFpbihvcHRpb25zKVxuICAgICAgICAgICAgICAgICAgICAudGhlbigoYykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjcmVkZW50aWFscyA9IGM7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBhY3RpdmVMb2NrID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiBwcm92aWRlcihvcHRpb25zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY3JlZGVudGlhbHM7XG4gICAgfTtcbiAgICByZXR1cm4gcHJvdmlkZXI7XG59XG5jb25zdCBpbnRlcm5hbENyZWF0ZUNoYWluID0gKHByb3ZpZGVycykgPT4gYXN5bmMgKGF3c0lkZW50aXR5UHJvcGVydGllcykgPT4ge1xuICAgIGxldCBsYXN0UHJvdmlkZXJFcnJvcjtcbiAgICBmb3IgKGNvbnN0IHByb3ZpZGVyIG9mIHByb3ZpZGVycykge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHByb3ZpZGVyKGF3c0lkZW50aXR5UHJvcGVydGllcyk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgbGFzdFByb3ZpZGVyRXJyb3IgPSBlcnI7XG4gICAgICAgICAgICBpZiAoZXJyPy50cnlOZXh0TGluaykge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICB9XG4gICAgfVxuICAgIHRocm93IGxhc3RQcm92aWRlckVycm9yO1xufTtcblxubGV0IG11bHRpcGxlQ3JlZGVudGlhbFNvdXJjZVdhcm5pbmdFbWl0dGVkID0gZmFsc2U7XG5jb25zdCBkZWZhdWx0UHJvdmlkZXIgPSAoaW5pdCA9IHt9KSA9PiBtZW1vaXplQ2hhaW4oW1xuICAgIGFzeW5jICgpID0+IHtcbiAgICAgICAgY29uc3QgcHJvZmlsZSA9IGluaXQucHJvZmlsZSA/PyBwcm9jZXNzLmVudltzaGFyZWRJbmlGaWxlTG9hZGVyLkVOVl9QUk9GSUxFXTtcbiAgICAgICAgaWYgKHByb2ZpbGUpIHtcbiAgICAgICAgICAgIGNvbnN0IGVudlN0YXRpY0NyZWRlbnRpYWxzQXJlU2V0ID0gcHJvY2Vzcy5lbnZbY3JlZGVudGlhbFByb3ZpZGVyRW52LkVOVl9LRVldICYmIHByb2Nlc3MuZW52W2NyZWRlbnRpYWxQcm92aWRlckVudi5FTlZfU0VDUkVUXTtcbiAgICAgICAgICAgIGlmIChlbnZTdGF0aWNDcmVkZW50aWFsc0FyZVNldCkge1xuICAgICAgICAgICAgICAgIGlmICghbXVsdGlwbGVDcmVkZW50aWFsU291cmNlV2FybmluZ0VtaXR0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgd2FybkZuID0gaW5pdC5sb2dnZXI/Lndhcm4gJiYgaW5pdC5sb2dnZXI/LmNvbnN0cnVjdG9yPy5uYW1lICE9PSBcIk5vT3BMb2dnZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPyBpbml0LmxvZ2dlci53YXJuLmJpbmQoaW5pdC5sb2dnZXIpXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnNvbGUud2FybjtcbiAgICAgICAgICAgICAgICAgICAgd2FybkZuKGBAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLW5vZGUgLSBkZWZhdWx0UHJvdmlkZXI6OmZyb21FbnYgV0FSTklORzpcbiAgICBNdWx0aXBsZSBjcmVkZW50aWFsIHNvdXJjZXMgZGV0ZWN0ZWQ6IFxuICAgIEJvdGggQVdTX1BST0ZJTEUgYW5kIHRoZSBwYWlyIEFXU19BQ0NFU1NfS0VZX0lEL0FXU19TRUNSRVRfQUNDRVNTX0tFWSBzdGF0aWMgY3JlZGVudGlhbHMgYXJlIHNldC5cbiAgICBUaGlzIFNESyB3aWxsIHByb2NlZWQgd2l0aCB0aGUgQVdTX1BST0ZJTEUgdmFsdWUuXG4gICAgXG4gICAgSG93ZXZlciwgYSBmdXR1cmUgdmVyc2lvbiBtYXkgY2hhbmdlIHRoaXMgYmVoYXZpb3IgdG8gcHJlZmVyIHRoZSBFTlYgc3RhdGljIGNyZWRlbnRpYWxzLlxuICAgIFBsZWFzZSBlbnN1cmUgdGhhdCB5b3VyIGVudmlyb25tZW50IG9ubHkgc2V0cyBlaXRoZXIgdGhlIEFXU19QUk9GSUxFIG9yIHRoZVxuICAgIEFXU19BQ0NFU1NfS0VZX0lEL0FXU19TRUNSRVRfQUNDRVNTX0tFWSBwYWlyLlxuYCk7XG4gICAgICAgICAgICAgICAgICAgIG11bHRpcGxlQ3JlZGVudGlhbFNvdXJjZVdhcm5pbmdFbWl0dGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoXCJBV1NfUFJPRklMRSBpcyBzZXQsIHNraXBwaW5nIGZyb21FbnYgcHJvdmlkZXIuXCIsIHtcbiAgICAgICAgICAgICAgICBsb2dnZXI6IGluaXQubG9nZ2VyLFxuICAgICAgICAgICAgICAgIHRyeU5leHRMaW5rOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaW5pdC5sb2dnZXI/LmRlYnVnKFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlIC0gZGVmYXVsdFByb3ZpZGVyOjpmcm9tRW52XCIpO1xuICAgICAgICByZXR1cm4gY3JlZGVudGlhbFByb3ZpZGVyRW52LmZyb21FbnYoaW5pdCkoKTtcbiAgICB9LFxuICAgIGFzeW5jIChhd3NJZGVudGl0eVByb3BlcnRpZXMpID0+IHtcbiAgICAgICAgaW5pdC5sb2dnZXI/LmRlYnVnKFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlIC0gZGVmYXVsdFByb3ZpZGVyOjpmcm9tU1NPXCIpO1xuICAgICAgICBjb25zdCB7IHNzb1N0YXJ0VXJsLCBzc29BY2NvdW50SWQsIHNzb1JlZ2lvbiwgc3NvUm9sZU5hbWUsIHNzb1Nlc3Npb24gfSA9IGluaXQ7XG4gICAgICAgIGlmICghc3NvU3RhcnRVcmwgJiYgIXNzb0FjY291bnRJZCAmJiAhc3NvUmVnaW9uICYmICFzc29Sb2xlTmFtZSAmJiAhc3NvU2Vzc2lvbikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKFwiU2tpcHBpbmcgU1NPIHByb3ZpZGVyIGluIGRlZmF1bHQgY2hhaW4gKGlucHV0cyBkbyBub3QgaW5jbHVkZSBTU08gZmllbGRzKS5cIiwgeyBsb2dnZXI6IGluaXQubG9nZ2VyIH0pO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHsgZnJvbVNTTyB9ID0gYXdhaXQgaW1wb3J0KCdAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLXNzbycpO1xuICAgICAgICByZXR1cm4gZnJvbVNTTyhpbml0KShhd3NJZGVudGl0eVByb3BlcnRpZXMpO1xuICAgIH0sXG4gICAgYXN5bmMgKGF3c0lkZW50aXR5UHJvcGVydGllcykgPT4ge1xuICAgICAgICBpbml0LmxvZ2dlcj8uZGVidWcoXCJAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLW5vZGUgLSBkZWZhdWx0UHJvdmlkZXI6OmZyb21JbmlcIik7XG4gICAgICAgIGNvbnN0IHsgZnJvbUluaSB9ID0gYXdhaXQgaW1wb3J0KCdAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLWluaScpO1xuICAgICAgICByZXR1cm4gZnJvbUluaShpbml0KShhd3NJZGVudGl0eVByb3BlcnRpZXMpO1xuICAgIH0sXG4gICAgYXN5bmMgKGF3c0lkZW50aXR5UHJvcGVydGllcykgPT4ge1xuICAgICAgICBpbml0LmxvZ2dlcj8uZGVidWcoXCJAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLW5vZGUgLSBkZWZhdWx0UHJvdmlkZXI6OmZyb21Qcm9jZXNzXCIpO1xuICAgICAgICBjb25zdCB7IGZyb21Qcm9jZXNzIH0gPSBhd2FpdCBpbXBvcnQoJ0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItcHJvY2VzcycpO1xuICAgICAgICByZXR1cm4gZnJvbVByb2Nlc3MoaW5pdCkoYXdzSWRlbnRpdHlQcm9wZXJ0aWVzKTtcbiAgICB9LFxuICAgIGFzeW5jIChhd3NJZGVudGl0eVByb3BlcnRpZXMpID0+IHtcbiAgICAgICAgaW5pdC5sb2dnZXI/LmRlYnVnKFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlIC0gZGVmYXVsdFByb3ZpZGVyOjpmcm9tVG9rZW5GaWxlXCIpO1xuICAgICAgICBjb25zdCB7IGZyb21Ub2tlbkZpbGUgfSA9IGF3YWl0IGltcG9ydCgnQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci13ZWItaWRlbnRpdHknKTtcbiAgICAgICAgcmV0dXJuIGZyb21Ub2tlbkZpbGUoaW5pdCkoYXdzSWRlbnRpdHlQcm9wZXJ0aWVzKTtcbiAgICB9LFxuICAgIGFzeW5jICgpID0+IHtcbiAgICAgICAgaW5pdC5sb2dnZXI/LmRlYnVnKFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlIC0gZGVmYXVsdFByb3ZpZGVyOjpyZW1vdGVQcm92aWRlclwiKTtcbiAgICAgICAgcmV0dXJuIChhd2FpdCByZW1vdGVQcm92aWRlcihpbml0KSkoKTtcbiAgICB9LFxuICAgIGFzeW5jICgpID0+IHtcbiAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKFwiQ291bGQgbm90IGxvYWQgY3JlZGVudGlhbHMgZnJvbSBhbnkgcHJvdmlkZXJzXCIsIHtcbiAgICAgICAgICAgIHRyeU5leHRMaW5rOiBmYWxzZSxcbiAgICAgICAgICAgIGxvZ2dlcjogaW5pdC5sb2dnZXIsXG4gICAgICAgIH0pO1xuICAgIH0sXG5dLCBjcmVkZW50aWFsc1RyZWF0ZWRBc0V4cGlyZWQpO1xuY29uc3QgY3JlZGVudGlhbHNXaWxsTmVlZFJlZnJlc2ggPSAoY3JlZGVudGlhbHMpID0+IGNyZWRlbnRpYWxzPy5leHBpcmF0aW9uICE9PSB1bmRlZmluZWQ7XG5jb25zdCBjcmVkZW50aWFsc1RyZWF0ZWRBc0V4cGlyZWQgPSAoY3JlZGVudGlhbHMpID0+IGNyZWRlbnRpYWxzPy5leHBpcmF0aW9uICE9PSB1bmRlZmluZWQgJiYgY3JlZGVudGlhbHMuZXhwaXJhdGlvbi5nZXRUaW1lKCkgLSBEYXRlLm5vdygpIDwgMzAwMDAwO1xuXG5leHBvcnRzLmNyZWRlbnRpYWxzVHJlYXRlZEFzRXhwaXJlZCA9IGNyZWRlbnRpYWxzVHJlYXRlZEFzRXhwaXJlZDtcbmV4cG9ydHMuY3JlZGVudGlhbHNXaWxsTmVlZFJlZnJlc2ggPSBjcmVkZW50aWFsc1dpbGxOZWVkUmVmcmVzaDtcbmV4cG9ydHMuZGVmYXVsdFByb3ZpZGVyID0gZGVmYXVsdFByb3ZpZGVyO1xuIiwgIid1c2Ugc3RyaWN0JztcblxudmFyIG5vZGVfb3MgPSByZXF1aXJlKCdub2RlOm9zJyk7XG52YXIgbm9kZV9wcm9jZXNzID0gcmVxdWlyZSgnbm9kZTpwcm9jZXNzJyk7XG52YXIgdXRpbENvbmZpZ1Byb3ZpZGVyID0gcmVxdWlyZSgnQHNtaXRoeS91dGlsLWNvbmZpZy1wcm92aWRlcicpO1xudmFyIHByb21pc2VzID0gcmVxdWlyZSgnbm9kZTpmcy9wcm9taXNlcycpO1xudmFyIG5vZGVfcGF0aCA9IHJlcXVpcmUoJ25vZGU6cGF0aCcpO1xudmFyIG1pZGRsZXdhcmVVc2VyQWdlbnQgPSByZXF1aXJlKCdAYXdzLXNkay9taWRkbGV3YXJlLXVzZXItYWdlbnQnKTtcblxuY29uc3QgZ2V0UnVudGltZVVzZXJBZ2VudFBhaXIgPSAoKSA9PiB7XG4gICAgY29uc3QgcnVudGltZXNUb0NoZWNrID0gW1wiZGVub1wiLCBcImJ1blwiLCBcImxscnRcIl07XG4gICAgZm9yIChjb25zdCBydW50aW1lIG9mIHJ1bnRpbWVzVG9DaGVjaykge1xuICAgICAgICBpZiAobm9kZV9wcm9jZXNzLnZlcnNpb25zW3J1bnRpbWVdKSB7XG4gICAgICAgICAgICByZXR1cm4gW2BtZC8ke3J1bnRpbWV9YCwgbm9kZV9wcm9jZXNzLnZlcnNpb25zW3J1bnRpbWVdXTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gW1wibWQvbm9kZWpzXCIsIG5vZGVfcHJvY2Vzcy52ZXJzaW9ucy5ub2RlXTtcbn07XG5cbmNvbnN0IGdldE5vZGVNb2R1bGVzUGFyZW50RGlycyA9IChkaXJuYW1lKSA9PiB7XG4gICAgY29uc3QgY3dkID0gcHJvY2Vzcy5jd2QoKTtcbiAgICBpZiAoIWRpcm5hbWUpIHtcbiAgICAgICAgcmV0dXJuIFtjd2RdO1xuICAgIH1cbiAgICBjb25zdCBub3JtYWxpemVkUGF0aCA9IG5vZGVfcGF0aC5ub3JtYWxpemUoZGlybmFtZSk7XG4gICAgY29uc3QgcGFydHMgPSBub3JtYWxpemVkUGF0aC5zcGxpdChub2RlX3BhdGguc2VwKTtcbiAgICBjb25zdCBub2RlTW9kdWxlc0luZGV4ID0gcGFydHMuaW5kZXhPZihcIm5vZGVfbW9kdWxlc1wiKTtcbiAgICBjb25zdCBwYXJlbnREaXIgPSBub2RlTW9kdWxlc0luZGV4ICE9PSAtMSA/IHBhcnRzLnNsaWNlKDAsIG5vZGVNb2R1bGVzSW5kZXgpLmpvaW4obm9kZV9wYXRoLnNlcCkgOiBub3JtYWxpemVkUGF0aDtcbiAgICBpZiAoY3dkID09PSBwYXJlbnREaXIpIHtcbiAgICAgICAgcmV0dXJuIFtjd2RdO1xuICAgIH1cbiAgICByZXR1cm4gW3BhcmVudERpciwgY3dkXTtcbn07XG5cbmNvbnN0IFNFTVZFUl9SRUdFWCA9IC9eKDB8WzEtOV1cXGQqKVxcLigwfFsxLTldXFxkKilcXC4oMHxbMS05XVxcZCopKD86LSgoPzowfFsxLTldXFxkKnxcXGQqW2EtekEtWi1dWzAtOWEtekEtWi1dKikoPzpcXC4oPzowfFsxLTldXFxkKnxcXGQqW2EtekEtWi1dWzAtOWEtekEtWi1dKikpKikpPyg/OlxcK1swLTlhLXpBLVotXSsoPzpcXC5bMC05YS16QS1aLV0rKSopPyQvO1xuY29uc3QgZ2V0U2FuaXRpemVkVHlwZVNjcmlwdFZlcnNpb24gPSAodmVyc2lvbiA9IFwiXCIpID0+IHtcbiAgICBjb25zdCBtYXRjaCA9IHZlcnNpb24ubWF0Y2goU0VNVkVSX1JFR0VYKTtcbiAgICBpZiAoIW1hdGNoKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGNvbnN0IFttYWpvciwgbWlub3IsIHBhdGNoLCBwcmVyZWxlYXNlXSA9IFttYXRjaFsxXSwgbWF0Y2hbMl0sIG1hdGNoWzNdLCBtYXRjaFs0XV07XG4gICAgcmV0dXJuIHByZXJlbGVhc2UgPyBgJHttYWpvcn0uJHttaW5vcn0uJHtwYXRjaH0tJHtwcmVyZWxlYXNlfWAgOiBgJHttYWpvcn0uJHttaW5vcn0uJHtwYXRjaH1gO1xufTtcblxuY29uc3QgQUxMT1dFRF9QUkVGSVhFUyA9IFtcIl5cIiwgXCJ+XCIsIFwiPj1cIiwgXCI8PVwiLCBcIj5cIiwgXCI8XCJdO1xuY29uc3QgQUxMT1dFRF9ESVNUX1RBR1MgPSBbXCJsYXRlc3RcIiwgXCJiZXRhXCIsIFwiZGV2XCIsIFwicmNcIiwgXCJpbnNpZGVyc1wiLCBcIm5leHRcIl07XG5jb25zdCBnZXRTYW5pdGl6ZWREZXZUeXBlU2NyaXB0VmVyc2lvbiA9ICh2ZXJzaW9uID0gXCJcIikgPT4ge1xuICAgIGlmIChBTExPV0VEX0RJU1RfVEFHUy5pbmNsdWRlcyh2ZXJzaW9uKSkge1xuICAgICAgICByZXR1cm4gdmVyc2lvbjtcbiAgICB9XG4gICAgY29uc3QgcHJlZml4ID0gQUxMT1dFRF9QUkVGSVhFUy5maW5kKChwKSA9PiB2ZXJzaW9uLnN0YXJ0c1dpdGgocCkpID8/IFwiXCI7XG4gICAgY29uc3Qgc2FuaXRpemVkVHlwZVNjcmlwdFZlcnNpb24gPSBnZXRTYW5pdGl6ZWRUeXBlU2NyaXB0VmVyc2lvbih2ZXJzaW9uLnNsaWNlKHByZWZpeC5sZW5ndGgpKTtcbiAgICBpZiAoIXNhbml0aXplZFR5cGVTY3JpcHRWZXJzaW9uKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHJldHVybiBgJHtwcmVmaXh9JHtzYW5pdGl6ZWRUeXBlU2NyaXB0VmVyc2lvbn1gO1xufTtcblxubGV0IHRzY1ZlcnNpb247XG5jb25zdCBUU19QQUNLQUdFX0pTT04gPSBub2RlX3BhdGguam9pbihcIm5vZGVfbW9kdWxlc1wiLCBcInR5cGVzY3JpcHRcIiwgXCJwYWNrYWdlLmpzb25cIik7XG5jb25zdCBnZXRUeXBlU2NyaXB0VXNlckFnZW50UGFpciA9IGFzeW5jICgpID0+IHtcbiAgICBpZiAodHNjVmVyc2lvbiA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBlbHNlIGlmICh0eXBlb2YgdHNjVmVyc2lvbiA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICByZXR1cm4gW1wibWQvdHNjXCIsIHRzY1ZlcnNpb25dO1xuICAgIH1cbiAgICBsZXQgaXNUeXBlU2NyaXB0RGV0ZWN0aW9uRGlzYWJsZWQgPSBmYWxzZTtcbiAgICB0cnkge1xuICAgICAgICBpc1R5cGVTY3JpcHREZXRlY3Rpb25EaXNhYmxlZCA9XG4gICAgICAgICAgICB1dGlsQ29uZmlnUHJvdmlkZXIuYm9vbGVhblNlbGVjdG9yKHByb2Nlc3MuZW52LCBcIkFXU19TREtfSlNfVFlQRVNDUklQVF9ERVRFQ1RJT05fRElTQUJMRURcIiwgdXRpbENvbmZpZ1Byb3ZpZGVyLlNlbGVjdG9yVHlwZS5FTlYpIHx8IGZhbHNlO1xuICAgIH1cbiAgICBjYXRjaCB7IH1cbiAgICBpZiAoaXNUeXBlU2NyaXB0RGV0ZWN0aW9uRGlzYWJsZWQpIHtcbiAgICAgICAgdHNjVmVyc2lvbiA9IG51bGw7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGNvbnN0IGRpcm5hbWUgPSB0eXBlb2YgX19kaXJuYW1lICE9PSBcInVuZGVmaW5lZFwiID8gX19kaXJuYW1lIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IG5vZGVNb2R1bGVzUGFyZW50RGlycyA9IGdldE5vZGVNb2R1bGVzUGFyZW50RGlycyhkaXJuYW1lKTtcbiAgICBsZXQgdmVyc2lvbkZyb21BcHA7XG4gICAgZm9yIChjb25zdCBub2RlTW9kdWxlc1BhcmVudERpciBvZiBub2RlTW9kdWxlc1BhcmVudERpcnMpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGFwcFBhY2thZ2VKc29uUGF0aCA9IG5vZGVfcGF0aC5qb2luKG5vZGVNb2R1bGVzUGFyZW50RGlyLCBcInBhY2thZ2UuanNvblwiKTtcbiAgICAgICAgICAgIGNvbnN0IHBhY2thZ2VKc29uID0gYXdhaXQgcHJvbWlzZXMucmVhZEZpbGUoYXBwUGFja2FnZUpzb25QYXRoLCBcInV0Zi04XCIpO1xuICAgICAgICAgICAgY29uc3QgeyBkZXBlbmRlbmNpZXMsIGRldkRlcGVuZGVuY2llcyB9ID0gSlNPTi5wYXJzZShwYWNrYWdlSnNvbik7XG4gICAgICAgICAgICBjb25zdCB2ZXJzaW9uID0gZGV2RGVwZW5kZW5jaWVzPy50eXBlc2NyaXB0ID8/IGRlcGVuZGVuY2llcz8udHlwZXNjcmlwdDtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdmVyc2lvbiAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmVyc2lvbkZyb21BcHAgPSB2ZXJzaW9uO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2gge1xuICAgICAgICB9XG4gICAgfVxuICAgIGlmICghdmVyc2lvbkZyb21BcHApIHtcbiAgICAgICAgdHNjVmVyc2lvbiA9IG51bGw7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGxldCB2ZXJzaW9uRnJvbU5vZGVNb2R1bGVzO1xuICAgIGZvciAoY29uc3Qgbm9kZU1vZHVsZXNQYXJlbnREaXIgb2Ygbm9kZU1vZHVsZXNQYXJlbnREaXJzKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCB0c1BhY2thZ2VKc29uUGF0aCA9IG5vZGVfcGF0aC5qb2luKG5vZGVNb2R1bGVzUGFyZW50RGlyLCBUU19QQUNLQUdFX0pTT04pO1xuICAgICAgICAgICAgY29uc3QgcGFja2FnZUpzb24gPSBhd2FpdCBwcm9taXNlcy5yZWFkRmlsZSh0c1BhY2thZ2VKc29uUGF0aCwgXCJ1dGYtOFwiKTtcbiAgICAgICAgICAgIGNvbnN0IHsgdmVyc2lvbiB9ID0gSlNPTi5wYXJzZShwYWNrYWdlSnNvbik7XG4gICAgICAgICAgICBjb25zdCBzYW5pdGl6ZWRWZXJzaW9uID0gZ2V0U2FuaXRpemVkVHlwZVNjcmlwdFZlcnNpb24odmVyc2lvbik7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHNhbml0aXplZFZlcnNpb24gIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZlcnNpb25Gcm9tTm9kZU1vZHVsZXMgPSBzYW5pdGl6ZWRWZXJzaW9uO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2gge1xuICAgICAgICB9XG4gICAgfVxuICAgIGlmICh2ZXJzaW9uRnJvbU5vZGVNb2R1bGVzKSB7XG4gICAgICAgIHRzY1ZlcnNpb24gPSB2ZXJzaW9uRnJvbU5vZGVNb2R1bGVzO1xuICAgICAgICByZXR1cm4gW1wibWQvdHNjXCIsIHRzY1ZlcnNpb25dO1xuICAgIH1cbiAgICBjb25zdCBzYW5pdGl6ZWRWZXJzaW9uID0gZ2V0U2FuaXRpemVkRGV2VHlwZVNjcmlwdFZlcnNpb24odmVyc2lvbkZyb21BcHApO1xuICAgIGlmICh0eXBlb2Ygc2FuaXRpemVkVmVyc2lvbiAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICB0c2NWZXJzaW9uID0gbnVsbDtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgdHNjVmVyc2lvbiA9IGBkZXZfJHtzYW5pdGl6ZWRWZXJzaW9ufWA7XG4gICAgcmV0dXJuIFtcIm1kL3RzY1wiLCB0c2NWZXJzaW9uXTtcbn07XG5cbmNvbnN0IGNydEF2YWlsYWJpbGl0eSA9IHtcbiAgICBpc0NydEF2YWlsYWJsZTogZmFsc2UsXG59O1xuXG5jb25zdCBpc0NydEF2YWlsYWJsZSA9ICgpID0+IHtcbiAgICBpZiAoY3J0QXZhaWxhYmlsaXR5LmlzQ3J0QXZhaWxhYmxlKSB7XG4gICAgICAgIHJldHVybiBbXCJtZC9jcnQtYXZhaWxcIl07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xufTtcblxuY29uc3QgY3JlYXRlRGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyID0gKHsgc2VydmljZUlkLCBjbGllbnRWZXJzaW9uIH0pID0+IHtcbiAgICBjb25zdCBydW50aW1lVXNlckFnZW50UGFpciA9IGdldFJ1bnRpbWVVc2VyQWdlbnRQYWlyKCk7XG4gICAgcmV0dXJuIGFzeW5jIChjb25maWcpID0+IHtcbiAgICAgICAgY29uc3Qgc2VjdGlvbnMgPSBbXG4gICAgICAgICAgICBbXCJhd3Mtc2RrLWpzXCIsIGNsaWVudFZlcnNpb25dLFxuICAgICAgICAgICAgW1widWFcIiwgXCIyLjFcIl0sXG4gICAgICAgICAgICBbYG9zLyR7bm9kZV9vcy5wbGF0Zm9ybSgpfWAsIG5vZGVfb3MucmVsZWFzZSgpXSxcbiAgICAgICAgICAgIFtcImxhbmcvanNcIl0sXG4gICAgICAgICAgICBydW50aW1lVXNlckFnZW50UGFpcixcbiAgICAgICAgXTtcbiAgICAgICAgY29uc3QgdHlwZXNjcmlwdFVzZXJBZ2VudFBhaXIgPSBhd2FpdCBnZXRUeXBlU2NyaXB0VXNlckFnZW50UGFpcigpO1xuICAgICAgICBpZiAodHlwZXNjcmlwdFVzZXJBZ2VudFBhaXIpIHtcbiAgICAgICAgICAgIHNlY3Rpb25zLnB1c2godHlwZXNjcmlwdFVzZXJBZ2VudFBhaXIpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNydEF2YWlsYWJsZSA9IGlzQ3J0QXZhaWxhYmxlKCk7XG4gICAgICAgIGlmIChjcnRBdmFpbGFibGUpIHtcbiAgICAgICAgICAgIHNlY3Rpb25zLnB1c2goY3J0QXZhaWxhYmxlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc2VydmljZUlkKSB7XG4gICAgICAgICAgICBzZWN0aW9ucy5wdXNoKFtgYXBpLyR7c2VydmljZUlkfWAsIGNsaWVudFZlcnNpb25dKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobm9kZV9wcm9jZXNzLmVudi5BV1NfRVhFQ1VUSU9OX0VOVikge1xuICAgICAgICAgICAgc2VjdGlvbnMucHVzaChbYGV4ZWMtZW52LyR7bm9kZV9wcm9jZXNzLmVudi5BV1NfRVhFQ1VUSU9OX0VOVn1gXSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYXBwSWQgPSBhd2FpdCBjb25maWc/LnVzZXJBZ2VudEFwcElkPy4oKTtcbiAgICAgICAgY29uc3QgcmVzb2x2ZWRVc2VyQWdlbnQgPSBhcHBJZCA/IFsuLi5zZWN0aW9ucywgW2BhcHAvJHthcHBJZH1gXV0gOiBbLi4uc2VjdGlvbnNdO1xuICAgICAgICByZXR1cm4gcmVzb2x2ZWRVc2VyQWdlbnQ7XG4gICAgfTtcbn07XG5jb25zdCBkZWZhdWx0VXNlckFnZW50ID0gY3JlYXRlRGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyO1xuXG5jb25zdCBVQV9BUFBfSURfRU5WX05BTUUgPSBcIkFXU19TREtfVUFfQVBQX0lEXCI7XG5jb25zdCBVQV9BUFBfSURfSU5JX05BTUUgPSBcInNka191YV9hcHBfaWRcIjtcbmNvbnN0IFVBX0FQUF9JRF9JTklfTkFNRV9ERVBSRUNBVEVEID0gXCJzZGstdWEtYXBwLWlkXCI7XG5jb25zdCBOT0RFX0FQUF9JRF9DT05GSUdfT1BUSU9OUyA9IHtcbiAgICBlbnZpcm9ubWVudFZhcmlhYmxlU2VsZWN0b3I6IChlbnYpID0+IGVudltVQV9BUFBfSURfRU5WX05BTUVdLFxuICAgIGNvbmZpZ0ZpbGVTZWxlY3RvcjogKHByb2ZpbGUpID0+IHByb2ZpbGVbVUFfQVBQX0lEX0lOSV9OQU1FXSA/PyBwcm9maWxlW1VBX0FQUF9JRF9JTklfTkFNRV9ERVBSRUNBVEVEXSxcbiAgICBkZWZhdWx0OiBtaWRkbGV3YXJlVXNlckFnZW50LkRFRkFVTFRfVUFfQVBQX0lELFxufTtcblxuZXhwb3J0cy5OT0RFX0FQUF9JRF9DT05GSUdfT1BUSU9OUyA9IE5PREVfQVBQX0lEX0NPTkZJR19PUFRJT05TO1xuZXhwb3J0cy5VQV9BUFBfSURfRU5WX05BTUUgPSBVQV9BUFBfSURfRU5WX05BTUU7XG5leHBvcnRzLlVBX0FQUF9JRF9JTklfTkFNRSA9IFVBX0FQUF9JRF9JTklfTkFNRTtcbmV4cG9ydHMuY3JlYXRlRGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyID0gY3JlYXRlRGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyO1xuZXhwb3J0cy5jcnRBdmFpbGFiaWxpdHkgPSBjcnRBdmFpbGFiaWxpdHk7XG5leHBvcnRzLmRlZmF1bHRVc2VyQWdlbnQgPSBkZWZhdWx0VXNlckFnZW50O1xuIiwgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5ydWxlU2V0ID0gdm9pZCAwO1xuY29uc3QgeSA9IFwicmVxdWlyZWRcIiwgeiA9IFwiZm5cIiwgQSA9IFwiYXJndlwiLCBCID0gXCJyZWZcIiwgQyA9IFwicHJvcGVydGllc1wiLCBEID0gXCJoZWFkZXJzXCI7XG5jb25zdCBhID0gdHJ1ZSwgYiA9IFwiaXNTZXRcIiwgYyA9IFwiYm9vbGVhbkVxdWFsc1wiLCBkID0gXCJlcnJvclwiLCBlID0gXCJlbmRwb2ludFwiLCBmID0gXCJ0cmVlXCIsIGcgPSBcIlBhcnRpdGlvblJlc3VsdFwiLCBoID0gXCJzdHJpbmdFcXVhbHNcIiwgaSA9IHsgW3ldOiBmYWxzZSwgXCJ0eXBlXCI6IFwic3RyaW5nXCIgfSwgaiA9IHsgW3ldOiB0cnVlLCBcImRlZmF1bHRcIjogZmFsc2UsIFwidHlwZVwiOiBcImJvb2xlYW5cIiB9LCBrID0geyBbQl06IFwiRW5kcG9pbnRcIiB9LCBsID0geyBbel06IGMsIFtBXTogW3sgW0JdOiBcIlVzZUZJUFNcIiB9LCB0cnVlXSB9LCBtID0geyBbel06IGMsIFtBXTogW3sgW0JdOiBcIlVzZUR1YWxTdGFja1wiIH0sIHRydWVdIH0sIG4gPSB7fSwgbyA9IHsgW3pdOiBcImdldEF0dHJcIiwgW0FdOiBbeyBbQl06IGcgfSwgXCJzdXBwb3J0c0ZJUFNcIl0gfSwgcCA9IHsgW3pdOiBjLCBbQV06IFt0cnVlLCB7IFt6XTogXCJnZXRBdHRyXCIsIFtBXTogW3sgW0JdOiBnIH0sIFwic3VwcG9ydHNEdWFsU3RhY2tcIl0gfV0gfSwgcSA9IHsgW3pdOiBcImdldEF0dHJcIiwgW0FdOiBbeyBbQl06IGcgfSwgXCJuYW1lXCJdIH0sIHIgPSB7IFwidXJsXCI6IFwiaHR0cHM6Ly9zZWNyZXRzbWFuYWdlci1maXBzLntSZWdpb259LmFtYXpvbmF3cy5jb21cIiwgW0NdOiB7fSwgW0RdOiB7fSB9LCBzID0geyBcInVybFwiOiBcImh0dHBzOi8vc2VjcmV0c21hbmFnZXIue1JlZ2lvbn0uYW1hem9uYXdzLmNvbVwiLCBbQ106IHt9LCBbRF06IHt9IH0sIHQgPSBbbF0sIHUgPSBbbV0sIHYgPSBbeyBbQl06IFwiUmVnaW9uXCIgfV0sIHcgPSBbeyBbel06IGgsIFtBXTogW1wiYXdzXCIsIHFdIH1dLCB4ID0gW3sgW3pdOiBoLCBbQV06IFtcImF3cy11cy1nb3ZcIiwgcV0gfV07XG5jb25zdCBfZGF0YSA9IHsgdmVyc2lvbjogXCIxLjBcIiwgcGFyYW1ldGVyczogeyBSZWdpb246IGksIFVzZUR1YWxTdGFjazogaiwgVXNlRklQUzogaiwgRW5kcG9pbnQ6IGkgfSwgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IFt7IFt6XTogYiwgW0FdOiBba10gfV0sIHJ1bGVzOiBbeyBjb25kaXRpb25zOiB0LCBlcnJvcjogXCJJbnZhbGlkIENvbmZpZ3VyYXRpb246IEZJUFMgYW5kIGN1c3RvbSBlbmRwb2ludCBhcmUgbm90IHN1cHBvcnRlZFwiLCB0eXBlOiBkIH0sIHsgY29uZGl0aW9uczogdSwgZXJyb3I6IFwiSW52YWxpZCBDb25maWd1cmF0aW9uOiBEdWFsc3RhY2sgYW5kIGN1c3RvbSBlbmRwb2ludCBhcmUgbm90IHN1cHBvcnRlZFwiLCB0eXBlOiBkIH0sIHsgZW5kcG9pbnQ6IHsgdXJsOiBrLCBbQ106IG4sIFtEXTogbiB9LCB0eXBlOiBlIH1dLCB0eXBlOiBmIH0sIHsgY29uZGl0aW9uczogW3sgW3pdOiBiLCBbQV06IHYgfV0sIHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbeyBbel06IFwiYXdzLnBhcnRpdGlvblwiLCBbQV06IHYsIGFzc2lnbjogZyB9XSwgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IFtsLCBtXSwgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IFt7IFt6XTogYywgW0FdOiBbYSwgb10gfSwgcF0sIHJ1bGVzOiBbeyBjb25kaXRpb25zOiB3LCBlbmRwb2ludDogciwgdHlwZTogZSB9LCB7IGNvbmRpdGlvbnM6IHgsIGVuZHBvaW50OiByLCB0eXBlOiBlIH0sIHsgZW5kcG9pbnQ6IHsgdXJsOiBcImh0dHBzOi8vc2VjcmV0c21hbmFnZXItZmlwcy57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2R1YWxTdGFja0Ruc1N1ZmZpeH1cIiwgW0NdOiBuLCBbRF06IG4gfSwgdHlwZTogZSB9XSwgdHlwZTogZiB9LCB7IGVycm9yOiBcIkZJUFMgYW5kIER1YWxTdGFjayBhcmUgZW5hYmxlZCwgYnV0IHRoaXMgcGFydGl0aW9uIGRvZXMgbm90IHN1cHBvcnQgb25lIG9yIGJvdGhcIiwgdHlwZTogZCB9XSwgdHlwZTogZiB9LCB7IGNvbmRpdGlvbnM6IHQsIHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbeyBbel06IGMsIFtBXTogW28sIGFdIH1dLCBydWxlczogW3sgZW5kcG9pbnQ6IHsgdXJsOiBcImh0dHBzOi8vc2VjcmV0c21hbmFnZXItZmlwcy57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH1cIiwgW0NdOiBuLCBbRF06IG4gfSwgdHlwZTogZSB9XSwgdHlwZTogZiB9LCB7IGVycm9yOiBcIkZJUFMgaXMgZW5hYmxlZCBidXQgdGhpcyBwYXJ0aXRpb24gZG9lcyBub3Qgc3VwcG9ydCBGSVBTXCIsIHR5cGU6IGQgfV0sIHR5cGU6IGYgfSwgeyBjb25kaXRpb25zOiB1LCBydWxlczogW3sgY29uZGl0aW9uczogW3BdLCBydWxlczogW3sgY29uZGl0aW9uczogdywgZW5kcG9pbnQ6IHMsIHR5cGU6IGUgfSwgeyBjb25kaXRpb25zOiBbeyBbel06IGgsIFtBXTogW1wiYXdzLWNuXCIsIHFdIH1dLCBlbmRwb2ludDogeyB1cmw6IFwiaHR0cHM6Ly9zZWNyZXRzbWFuYWdlci57UmVnaW9ufS5hbWF6b25hd3MuY29tLmNuXCIsIFtDXTogbiwgW0RdOiBuIH0sIHR5cGU6IGUgfSwgeyBjb25kaXRpb25zOiB4LCBlbmRwb2ludDogcywgdHlwZTogZSB9LCB7IGVuZHBvaW50OiB7IHVybDogXCJodHRwczovL3NlY3JldHNtYW5hZ2VyLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZHVhbFN0YWNrRG5zU3VmZml4fVwiLCBbQ106IG4sIFtEXTogbiB9LCB0eXBlOiBlIH1dLCB0eXBlOiBmIH0sIHsgZXJyb3I6IFwiRHVhbFN0YWNrIGlzIGVuYWJsZWQgYnV0IHRoaXMgcGFydGl0aW9uIGRvZXMgbm90IHN1cHBvcnQgRHVhbFN0YWNrXCIsIHR5cGU6IGQgfV0sIHR5cGU6IGYgfSwgeyBlbmRwb2ludDogeyB1cmw6IFwiaHR0cHM6Ly9zZWNyZXRzbWFuYWdlci57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH1cIiwgW0NdOiBuLCBbRF06IG4gfSwgdHlwZTogZSB9XSwgdHlwZTogZiB9XSwgdHlwZTogZiB9LCB7IGVycm9yOiBcIkludmFsaWQgQ29uZmlndXJhdGlvbjogTWlzc2luZyBSZWdpb25cIiwgdHlwZTogZCB9XSB9O1xuZXhwb3J0cy5ydWxlU2V0ID0gX2RhdGE7XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmRlZmF1bHRFbmRwb2ludFJlc29sdmVyID0gdm9pZCAwO1xuY29uc3QgdXRpbF9lbmRwb2ludHNfMSA9IHJlcXVpcmUoXCJAYXdzLXNkay91dGlsLWVuZHBvaW50c1wiKTtcbmNvbnN0IHV0aWxfZW5kcG9pbnRzXzIgPSByZXF1aXJlKFwiQHNtaXRoeS91dGlsLWVuZHBvaW50c1wiKTtcbmNvbnN0IHJ1bGVzZXRfMSA9IHJlcXVpcmUoXCIuL3J1bGVzZXRcIik7XG5jb25zdCBjYWNoZSA9IG5ldyB1dGlsX2VuZHBvaW50c18yLkVuZHBvaW50Q2FjaGUoe1xuICAgIHNpemU6IDUwLFxuICAgIHBhcmFtczogW1wiRW5kcG9pbnRcIiwgXCJSZWdpb25cIiwgXCJVc2VEdWFsU3RhY2tcIiwgXCJVc2VGSVBTXCJdLFxufSk7XG5jb25zdCBkZWZhdWx0RW5kcG9pbnRSZXNvbHZlciA9IChlbmRwb2ludFBhcmFtcywgY29udGV4dCA9IHt9KSA9PiB7XG4gICAgcmV0dXJuIGNhY2hlLmdldChlbmRwb2ludFBhcmFtcywgKCkgPT4gKDAsIHV0aWxfZW5kcG9pbnRzXzIucmVzb2x2ZUVuZHBvaW50KShydWxlc2V0XzEucnVsZVNldCwge1xuICAgICAgICBlbmRwb2ludFBhcmFtczogZW5kcG9pbnRQYXJhbXMsXG4gICAgICAgIGxvZ2dlcjogY29udGV4dC5sb2dnZXIsXG4gICAgfSkpO1xufTtcbmV4cG9ydHMuZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIgPSBkZWZhdWx0RW5kcG9pbnRSZXNvbHZlcjtcbnV0aWxfZW5kcG9pbnRzXzIuY3VzdG9tRW5kcG9pbnRGdW5jdGlvbnMuYXdzID0gdXRpbF9lbmRwb2ludHNfMS5hd3NFbmRwb2ludEZ1bmN0aW9ucztcbiIsICJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuU2VjcmV0c01hbmFnZXJTZXJ2aWNlRXhjZXB0aW9uID0gZXhwb3J0cy5fX1NlcnZpY2VFeGNlcHRpb24gPSB2b2lkIDA7XG5jb25zdCBzbWl0aHlfY2xpZW50XzEgPSByZXF1aXJlKFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19TZXJ2aWNlRXhjZXB0aW9uXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBzbWl0aHlfY2xpZW50XzEuU2VydmljZUV4Y2VwdGlvbjsgfSB9KTtcbmNsYXNzIFNlY3JldHNNYW5hZ2VyU2VydmljZUV4Y2VwdGlvbiBleHRlbmRzIHNtaXRoeV9jbGllbnRfMS5TZXJ2aWNlRXhjZXB0aW9uIHtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgU2VjcmV0c01hbmFnZXJTZXJ2aWNlRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgfVxufVxuZXhwb3J0cy5TZWNyZXRzTWFuYWdlclNlcnZpY2VFeGNlcHRpb24gPSBTZWNyZXRzTWFuYWdlclNlcnZpY2VFeGNlcHRpb247XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlB1YmxpY1BvbGljeUV4Y2VwdGlvbiA9IGV4cG9ydHMuUmVzb3VyY2VFeGlzdHNFeGNlcHRpb24gPSBleHBvcnRzLlByZWNvbmRpdGlvbk5vdE1ldEV4Y2VwdGlvbiA9IGV4cG9ydHMuTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFeGNlcHRpb24gPSBleHBvcnRzLkxpbWl0RXhjZWVkZWRFeGNlcHRpb24gPSBleHBvcnRzLkVuY3J5cHRpb25GYWlsdXJlID0gZXhwb3J0cy5SZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uID0gZXhwb3J0cy5JbnZhbGlkUmVxdWVzdEV4Y2VwdGlvbiA9IGV4cG9ydHMuSW52YWxpZFBhcmFtZXRlckV4Y2VwdGlvbiA9IGV4cG9ydHMuSW52YWxpZE5leHRUb2tlbkV4Y2VwdGlvbiA9IGV4cG9ydHMuSW50ZXJuYWxTZXJ2aWNlRXJyb3IgPSBleHBvcnRzLkRlY3J5cHRpb25GYWlsdXJlID0gdm9pZCAwO1xuY29uc3QgU2VjcmV0c01hbmFnZXJTZXJ2aWNlRXhjZXB0aW9uXzEgPSByZXF1aXJlKFwiLi9TZWNyZXRzTWFuYWdlclNlcnZpY2VFeGNlcHRpb25cIik7XG5jbGFzcyBEZWNyeXB0aW9uRmFpbHVyZSBleHRlbmRzIFNlY3JldHNNYW5hZ2VyU2VydmljZUV4Y2VwdGlvbl8xLlNlY3JldHNNYW5hZ2VyU2VydmljZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiRGVjcnlwdGlvbkZhaWx1cmVcIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIE1lc3NhZ2U7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkRlY3J5cHRpb25GYWlsdXJlXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIERlY3J5cHRpb25GYWlsdXJlLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuTWVzc2FnZSA9IG9wdHMuTWVzc2FnZTtcbiAgICB9XG59XG5leHBvcnRzLkRlY3J5cHRpb25GYWlsdXJlID0gRGVjcnlwdGlvbkZhaWx1cmU7XG5jbGFzcyBJbnRlcm5hbFNlcnZpY2VFcnJvciBleHRlbmRzIFNlY3JldHNNYW5hZ2VyU2VydmljZUV4Y2VwdGlvbl8xLlNlY3JldHNNYW5hZ2VyU2VydmljZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiSW50ZXJuYWxTZXJ2aWNlRXJyb3JcIjtcbiAgICAkZmF1bHQgPSBcInNlcnZlclwiO1xuICAgIE1lc3NhZ2U7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkludGVybmFsU2VydmljZUVycm9yXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwic2VydmVyXCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEludGVybmFsU2VydmljZUVycm9yLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuTWVzc2FnZSA9IG9wdHMuTWVzc2FnZTtcbiAgICB9XG59XG5leHBvcnRzLkludGVybmFsU2VydmljZUVycm9yID0gSW50ZXJuYWxTZXJ2aWNlRXJyb3I7XG5jbGFzcyBJbnZhbGlkTmV4dFRva2VuRXhjZXB0aW9uIGV4dGVuZHMgU2VjcmV0c01hbmFnZXJTZXJ2aWNlRXhjZXB0aW9uXzEuU2VjcmV0c01hbmFnZXJTZXJ2aWNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJJbnZhbGlkTmV4dFRva2VuRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBNZXNzYWdlO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJJbnZhbGlkTmV4dFRva2VuRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEludmFsaWROZXh0VG9rZW5FeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5NZXNzYWdlID0gb3B0cy5NZXNzYWdlO1xuICAgIH1cbn1cbmV4cG9ydHMuSW52YWxpZE5leHRUb2tlbkV4Y2VwdGlvbiA9IEludmFsaWROZXh0VG9rZW5FeGNlcHRpb247XG5jbGFzcyBJbnZhbGlkUGFyYW1ldGVyRXhjZXB0aW9uIGV4dGVuZHMgU2VjcmV0c01hbmFnZXJTZXJ2aWNlRXhjZXB0aW9uXzEuU2VjcmV0c01hbmFnZXJTZXJ2aWNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJJbnZhbGlkUGFyYW1ldGVyRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBNZXNzYWdlO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJJbnZhbGlkUGFyYW1ldGVyRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEludmFsaWRQYXJhbWV0ZXJFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5NZXNzYWdlID0gb3B0cy5NZXNzYWdlO1xuICAgIH1cbn1cbmV4cG9ydHMuSW52YWxpZFBhcmFtZXRlckV4Y2VwdGlvbiA9IEludmFsaWRQYXJhbWV0ZXJFeGNlcHRpb247XG5jbGFzcyBJbnZhbGlkUmVxdWVzdEV4Y2VwdGlvbiBleHRlbmRzIFNlY3JldHNNYW5hZ2VyU2VydmljZUV4Y2VwdGlvbl8xLlNlY3JldHNNYW5hZ2VyU2VydmljZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiSW52YWxpZFJlcXVlc3RFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIE1lc3NhZ2U7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkludmFsaWRSZXF1ZXN0RXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEludmFsaWRSZXF1ZXN0RXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuTWVzc2FnZSA9IG9wdHMuTWVzc2FnZTtcbiAgICB9XG59XG5leHBvcnRzLkludmFsaWRSZXF1ZXN0RXhjZXB0aW9uID0gSW52YWxpZFJlcXVlc3RFeGNlcHRpb247XG5jbGFzcyBSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uIGV4dGVuZHMgU2VjcmV0c01hbmFnZXJTZXJ2aWNlRXhjZXB0aW9uXzEuU2VjcmV0c01hbmFnZXJTZXJ2aWNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBNZXNzYWdlO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFJlc291cmNlTm90Rm91bmRFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5NZXNzYWdlID0gb3B0cy5NZXNzYWdlO1xuICAgIH1cbn1cbmV4cG9ydHMuUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvbiA9IFJlc291cmNlTm90Rm91bmRFeGNlcHRpb247XG5jbGFzcyBFbmNyeXB0aW9uRmFpbHVyZSBleHRlbmRzIFNlY3JldHNNYW5hZ2VyU2VydmljZUV4Y2VwdGlvbl8xLlNlY3JldHNNYW5hZ2VyU2VydmljZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiRW5jcnlwdGlvbkZhaWx1cmVcIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIE1lc3NhZ2U7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkVuY3J5cHRpb25GYWlsdXJlXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEVuY3J5cHRpb25GYWlsdXJlLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuTWVzc2FnZSA9IG9wdHMuTWVzc2FnZTtcbiAgICB9XG59XG5leHBvcnRzLkVuY3J5cHRpb25GYWlsdXJlID0gRW5jcnlwdGlvbkZhaWx1cmU7XG5jbGFzcyBMaW1pdEV4Y2VlZGVkRXhjZXB0aW9uIGV4dGVuZHMgU2VjcmV0c01hbmFnZXJTZXJ2aWNlRXhjZXB0aW9uXzEuU2VjcmV0c01hbmFnZXJTZXJ2aWNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJMaW1pdEV4Y2VlZGVkRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBNZXNzYWdlO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJMaW1pdEV4Y2VlZGVkRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIExpbWl0RXhjZWVkZWRFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5NZXNzYWdlID0gb3B0cy5NZXNzYWdlO1xuICAgIH1cbn1cbmV4cG9ydHMuTGltaXRFeGNlZWRlZEV4Y2VwdGlvbiA9IExpbWl0RXhjZWVkZWRFeGNlcHRpb247XG5jbGFzcyBNYWxmb3JtZWRQb2xpY3lEb2N1bWVudEV4Y2VwdGlvbiBleHRlbmRzIFNlY3JldHNNYW5hZ2VyU2VydmljZUV4Y2VwdGlvbl8xLlNlY3JldHNNYW5hZ2VyU2VydmljZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIE1lc3NhZ2U7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIk1hbGZvcm1lZFBvbGljeURvY3VtZW50RXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIE1hbGZvcm1lZFBvbGljeURvY3VtZW50RXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuTWVzc2FnZSA9IG9wdHMuTWVzc2FnZTtcbiAgICB9XG59XG5leHBvcnRzLk1hbGZvcm1lZFBvbGljeURvY3VtZW50RXhjZXB0aW9uID0gTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFeGNlcHRpb247XG5jbGFzcyBQcmVjb25kaXRpb25Ob3RNZXRFeGNlcHRpb24gZXh0ZW5kcyBTZWNyZXRzTWFuYWdlclNlcnZpY2VFeGNlcHRpb25fMS5TZWNyZXRzTWFuYWdlclNlcnZpY2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIlByZWNvbmRpdGlvbk5vdE1ldEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgTWVzc2FnZTtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiUHJlY29uZGl0aW9uTm90TWV0RXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFByZWNvbmRpdGlvbk5vdE1ldEV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLk1lc3NhZ2UgPSBvcHRzLk1lc3NhZ2U7XG4gICAgfVxufVxuZXhwb3J0cy5QcmVjb25kaXRpb25Ob3RNZXRFeGNlcHRpb24gPSBQcmVjb25kaXRpb25Ob3RNZXRFeGNlcHRpb247XG5jbGFzcyBSZXNvdXJjZUV4aXN0c0V4Y2VwdGlvbiBleHRlbmRzIFNlY3JldHNNYW5hZ2VyU2VydmljZUV4Y2VwdGlvbl8xLlNlY3JldHNNYW5hZ2VyU2VydmljZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiUmVzb3VyY2VFeGlzdHNFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIE1lc3NhZ2U7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIlJlc291cmNlRXhpc3RzRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFJlc291cmNlRXhpc3RzRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuTWVzc2FnZSA9IG9wdHMuTWVzc2FnZTtcbiAgICB9XG59XG5leHBvcnRzLlJlc291cmNlRXhpc3RzRXhjZXB0aW9uID0gUmVzb3VyY2VFeGlzdHNFeGNlcHRpb247XG5jbGFzcyBQdWJsaWNQb2xpY3lFeGNlcHRpb24gZXh0ZW5kcyBTZWNyZXRzTWFuYWdlclNlcnZpY2VFeGNlcHRpb25fMS5TZWNyZXRzTWFuYWdlclNlcnZpY2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIlB1YmxpY1BvbGljeUV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgTWVzc2FnZTtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiUHVibGljUG9saWN5RXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFB1YmxpY1BvbGljeUV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLk1lc3NhZ2UgPSBvcHRzLk1lc3NhZ2U7XG4gICAgfVxufVxuZXhwb3J0cy5QdWJsaWNQb2xpY3lFeGNlcHRpb24gPSBQdWJsaWNQb2xpY3lFeGNlcHRpb247XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlJlc3RvcmVTZWNyZXRSZXF1ZXN0JCA9IGV4cG9ydHMuUmVwbGljYXRpb25TdGF0dXNUeXBlJCA9IGV4cG9ydHMuUmVwbGljYXRlU2VjcmV0VG9SZWdpb25zUmVzcG9uc2UkID0gZXhwb3J0cy5SZXBsaWNhdGVTZWNyZXRUb1JlZ2lvbnNSZXF1ZXN0JCA9IGV4cG9ydHMuUmVwbGljYVJlZ2lvblR5cGUkID0gZXhwb3J0cy5SZW1vdmVSZWdpb25zRnJvbVJlcGxpY2F0aW9uUmVzcG9uc2UkID0gZXhwb3J0cy5SZW1vdmVSZWdpb25zRnJvbVJlcGxpY2F0aW9uUmVxdWVzdCQgPSBleHBvcnRzLlB1dFNlY3JldFZhbHVlUmVzcG9uc2UkID0gZXhwb3J0cy5QdXRTZWNyZXRWYWx1ZVJlcXVlc3QkID0gZXhwb3J0cy5QdXRSZXNvdXJjZVBvbGljeVJlc3BvbnNlJCA9IGV4cG9ydHMuUHV0UmVzb3VyY2VQb2xpY3lSZXF1ZXN0JCA9IGV4cG9ydHMuTGlzdFNlY3JldFZlcnNpb25JZHNSZXNwb25zZSQgPSBleHBvcnRzLkxpc3RTZWNyZXRWZXJzaW9uSWRzUmVxdWVzdCQgPSBleHBvcnRzLkxpc3RTZWNyZXRzUmVzcG9uc2UkID0gZXhwb3J0cy5MaXN0U2VjcmV0c1JlcXVlc3QkID0gZXhwb3J0cy5HZXRTZWNyZXRWYWx1ZVJlc3BvbnNlJCA9IGV4cG9ydHMuR2V0U2VjcmV0VmFsdWVSZXF1ZXN0JCA9IGV4cG9ydHMuR2V0UmVzb3VyY2VQb2xpY3lSZXNwb25zZSQgPSBleHBvcnRzLkdldFJlc291cmNlUG9saWN5UmVxdWVzdCQgPSBleHBvcnRzLkdldFJhbmRvbVBhc3N3b3JkUmVzcG9uc2UkID0gZXhwb3J0cy5HZXRSYW5kb21QYXNzd29yZFJlcXVlc3QkID0gZXhwb3J0cy5GaWx0ZXIkID0gZXhwb3J0cy5FeHRlcm5hbFNlY3JldFJvdGF0aW9uTWV0YWRhdGFJdGVtJCA9IGV4cG9ydHMuRGVzY3JpYmVTZWNyZXRSZXNwb25zZSQgPSBleHBvcnRzLkRlc2NyaWJlU2VjcmV0UmVxdWVzdCQgPSBleHBvcnRzLkRlbGV0ZVNlY3JldFJlc3BvbnNlJCA9IGV4cG9ydHMuRGVsZXRlU2VjcmV0UmVxdWVzdCQgPSBleHBvcnRzLkRlbGV0ZVJlc291cmNlUG9saWN5UmVzcG9uc2UkID0gZXhwb3J0cy5EZWxldGVSZXNvdXJjZVBvbGljeVJlcXVlc3QkID0gZXhwb3J0cy5DcmVhdGVTZWNyZXRSZXNwb25zZSQgPSBleHBvcnRzLkNyZWF0ZVNlY3JldFJlcXVlc3QkID0gZXhwb3J0cy5DYW5jZWxSb3RhdGVTZWNyZXRSZXNwb25zZSQgPSBleHBvcnRzLkNhbmNlbFJvdGF0ZVNlY3JldFJlcXVlc3QkID0gZXhwb3J0cy5CYXRjaEdldFNlY3JldFZhbHVlUmVzcG9uc2UkID0gZXhwb3J0cy5CYXRjaEdldFNlY3JldFZhbHVlUmVxdWVzdCQgPSBleHBvcnRzLkFQSUVycm9yVHlwZSQgPSBleHBvcnRzLmVycm9yVHlwZVJlZ2lzdHJpZXMgPSBleHBvcnRzLlJlc291cmNlTm90Rm91bmRFeGNlcHRpb24kID0gZXhwb3J0cy5SZXNvdXJjZUV4aXN0c0V4Y2VwdGlvbiQgPSBleHBvcnRzLlB1YmxpY1BvbGljeUV4Y2VwdGlvbiQgPSBleHBvcnRzLlByZWNvbmRpdGlvbk5vdE1ldEV4Y2VwdGlvbiQgPSBleHBvcnRzLk1hbGZvcm1lZFBvbGljeURvY3VtZW50RXhjZXB0aW9uJCA9IGV4cG9ydHMuTGltaXRFeGNlZWRlZEV4Y2VwdGlvbiQgPSBleHBvcnRzLkludmFsaWRSZXF1ZXN0RXhjZXB0aW9uJCA9IGV4cG9ydHMuSW52YWxpZFBhcmFtZXRlckV4Y2VwdGlvbiQgPSBleHBvcnRzLkludmFsaWROZXh0VG9rZW5FeGNlcHRpb24kID0gZXhwb3J0cy5JbnRlcm5hbFNlcnZpY2VFcnJvciQgPSBleHBvcnRzLkVuY3J5cHRpb25GYWlsdXJlJCA9IGV4cG9ydHMuRGVjcnlwdGlvbkZhaWx1cmUkID0gZXhwb3J0cy5TZWNyZXRzTWFuYWdlclNlcnZpY2VFeGNlcHRpb24kID0gdm9pZCAwO1xuZXhwb3J0cy5WYWxpZGF0ZVJlc291cmNlUG9saWN5JCA9IGV4cG9ydHMuVXBkYXRlU2VjcmV0VmVyc2lvblN0YWdlJCA9IGV4cG9ydHMuVXBkYXRlU2VjcmV0JCA9IGV4cG9ydHMuVW50YWdSZXNvdXJjZSQgPSBleHBvcnRzLlRhZ1Jlc291cmNlJCA9IGV4cG9ydHMuU3RvcFJlcGxpY2F0aW9uVG9SZXBsaWNhJCA9IGV4cG9ydHMuUm90YXRlU2VjcmV0JCA9IGV4cG9ydHMuUmVzdG9yZVNlY3JldCQgPSBleHBvcnRzLlJlcGxpY2F0ZVNlY3JldFRvUmVnaW9ucyQgPSBleHBvcnRzLlJlbW92ZVJlZ2lvbnNGcm9tUmVwbGljYXRpb24kID0gZXhwb3J0cy5QdXRTZWNyZXRWYWx1ZSQgPSBleHBvcnRzLlB1dFJlc291cmNlUG9saWN5JCA9IGV4cG9ydHMuTGlzdFNlY3JldFZlcnNpb25JZHMkID0gZXhwb3J0cy5MaXN0U2VjcmV0cyQgPSBleHBvcnRzLkdldFNlY3JldFZhbHVlJCA9IGV4cG9ydHMuR2V0UmVzb3VyY2VQb2xpY3kkID0gZXhwb3J0cy5HZXRSYW5kb21QYXNzd29yZCQgPSBleHBvcnRzLkRlc2NyaWJlU2VjcmV0JCA9IGV4cG9ydHMuRGVsZXRlU2VjcmV0JCA9IGV4cG9ydHMuRGVsZXRlUmVzb3VyY2VQb2xpY3kkID0gZXhwb3J0cy5DcmVhdGVTZWNyZXQkID0gZXhwb3J0cy5DYW5jZWxSb3RhdGVTZWNyZXQkID0gZXhwb3J0cy5CYXRjaEdldFNlY3JldFZhbHVlJCA9IGV4cG9ydHMuVmFsaWRhdGlvbkVycm9yc0VudHJ5JCA9IGV4cG9ydHMuVmFsaWRhdGVSZXNvdXJjZVBvbGljeVJlc3BvbnNlJCA9IGV4cG9ydHMuVmFsaWRhdGVSZXNvdXJjZVBvbGljeVJlcXVlc3QkID0gZXhwb3J0cy5VcGRhdGVTZWNyZXRWZXJzaW9uU3RhZ2VSZXNwb25zZSQgPSBleHBvcnRzLlVwZGF0ZVNlY3JldFZlcnNpb25TdGFnZVJlcXVlc3QkID0gZXhwb3J0cy5VcGRhdGVTZWNyZXRSZXNwb25zZSQgPSBleHBvcnRzLlVwZGF0ZVNlY3JldFJlcXVlc3QkID0gZXhwb3J0cy5VbnRhZ1Jlc291cmNlUmVxdWVzdCQgPSBleHBvcnRzLlRhZ1Jlc291cmNlUmVxdWVzdCQgPSBleHBvcnRzLlRhZyQgPSBleHBvcnRzLlN0b3BSZXBsaWNhdGlvblRvUmVwbGljYVJlc3BvbnNlJCA9IGV4cG9ydHMuU3RvcFJlcGxpY2F0aW9uVG9SZXBsaWNhUmVxdWVzdCQgPSBleHBvcnRzLlNlY3JldFZlcnNpb25zTGlzdEVudHJ5JCA9IGV4cG9ydHMuU2VjcmV0VmFsdWVFbnRyeSQgPSBleHBvcnRzLlNlY3JldExpc3RFbnRyeSQgPSBleHBvcnRzLlJvdGF0aW9uUnVsZXNUeXBlJCA9IGV4cG9ydHMuUm90YXRlU2VjcmV0UmVzcG9uc2UkID0gZXhwb3J0cy5Sb3RhdGVTZWNyZXRSZXF1ZXN0JCA9IGV4cG9ydHMuUmVzdG9yZVNlY3JldFJlc3BvbnNlJCA9IHZvaWQgMDtcbmNvbnN0IF9BQUQgPSBcIkF1dG9tYXRpY2FsbHlBZnRlckRheXNcIjtcbmNvbnN0IF9BUElFTFQgPSBcIkFQSUVycm9yTGlzdFR5cGVcIjtcbmNvbnN0IF9BUElFVCA9IFwiQVBJRXJyb3JUeXBlXCI7XG5jb25zdCBfQVJOID0gXCJBUk5cIjtcbmNvbnN0IF9BUlIgPSBcIkFkZFJlcGxpY2FSZWdpb25zXCI7XG5jb25zdCBfQVJSTFQgPSBcIkFkZFJlcGxpY2FSZWdpb25MaXN0VHlwZVwiO1xuY29uc3QgX0JHU1YgPSBcIkJhdGNoR2V0U2VjcmV0VmFsdWVcIjtcbmNvbnN0IF9CR1NWUiA9IFwiQmF0Y2hHZXRTZWNyZXRWYWx1ZVJlcXVlc3RcIjtcbmNvbnN0IF9CR1NWUmEgPSBcIkJhdGNoR2V0U2VjcmV0VmFsdWVSZXNwb25zZVwiO1xuY29uc3QgX0JQUCA9IFwiQmxvY2tQdWJsaWNQb2xpY3lcIjtcbmNvbnN0IF9DRCA9IFwiQ3JlYXRlZERhdGVcIjtcbmNvbnN0IF9DTiA9IFwiQ2hlY2tOYW1lXCI7XG5jb25zdCBfQ1JTID0gXCJDYW5jZWxSb3RhdGVTZWNyZXRcIjtcbmNvbnN0IF9DUlNSID0gXCJDYW5jZWxSb3RhdGVTZWNyZXRSZXF1ZXN0XCI7XG5jb25zdCBfQ1JTUmEgPSBcIkNhbmNlbFJvdGF0ZVNlY3JldFJlc3BvbnNlXCI7XG5jb25zdCBfQ1JUID0gXCJDbGllbnRSZXF1ZXN0VG9rZW5cIjtcbmNvbnN0IF9DUyA9IFwiQ3JlYXRlU2VjcmV0XCI7XG5jb25zdCBfQ1NSID0gXCJDcmVhdGVTZWNyZXRSZXF1ZXN0XCI7XG5jb25zdCBfQ1NSciA9IFwiQ3JlYXRlU2VjcmV0UmVzcG9uc2VcIjtcbmNvbnN0IF9EID0gXCJEZXNjcmlwdGlvblwiO1xuY29uc3QgX0REID0gXCJEZWxldGlvbkRhdGVcIjtcbmNvbnN0IF9ERGUgPSBcIkRlbGV0ZWREYXRlXCI7XG5jb25zdCBfREYgPSBcIkRlY3J5cHRpb25GYWlsdXJlXCI7XG5jb25zdCBfRFJQID0gXCJEZWxldGVSZXNvdXJjZVBvbGljeVwiO1xuY29uc3QgX0RSUFIgPSBcIkRlbGV0ZVJlc291cmNlUG9saWN5UmVxdWVzdFwiO1xuY29uc3QgX0RSUFJlID0gXCJEZWxldGVSZXNvdXJjZVBvbGljeVJlc3BvbnNlXCI7XG5jb25zdCBfRFMgPSBcIkRlbGV0ZVNlY3JldFwiO1xuY29uc3QgX0RTUiA9IFwiRGVsZXRlU2VjcmV0UmVxdWVzdFwiO1xuY29uc3QgX0RTUmUgPSBcIkRlbGV0ZVNlY3JldFJlc3BvbnNlXCI7XG5jb25zdCBfRFNSZXMgPSBcIkRlc2NyaWJlU2VjcmV0UmVxdWVzdFwiO1xuY29uc3QgX0RTUmVzYyA9IFwiRGVzY3JpYmVTZWNyZXRSZXNwb25zZVwiO1xuY29uc3QgX0RTZSA9IFwiRGVzY3JpYmVTZWNyZXRcIjtcbmNvbnN0IF9EdSA9IFwiRHVyYXRpb25cIjtcbmNvbnN0IF9FID0gXCJFcnJvcnNcIjtcbmNvbnN0IF9FQyA9IFwiRXJyb3JDb2RlXCI7XG5jb25zdCBfRUN4ID0gXCJFeGNsdWRlQ2hhcmFjdGVyc1wiO1xuY29uc3QgX0VGID0gXCJFbmNyeXB0aW9uRmFpbHVyZVwiO1xuY29uc3QgX0VMID0gXCJFeGNsdWRlTG93ZXJjYXNlXCI7XG5jb25zdCBfRU0gPSBcIkVycm9yTWVzc2FnZVwiO1xuY29uc3QgX0VOID0gXCJFeGNsdWRlTnVtYmVyc1wiO1xuY29uc3QgX0VQID0gXCJFeGNsdWRlUHVuY3R1YXRpb25cIjtcbmNvbnN0IF9FU1JNID0gXCJFeHRlcm5hbFNlY3JldFJvdGF0aW9uTWV0YWRhdGFcIjtcbmNvbnN0IF9FU1JNSSA9IFwiRXh0ZXJuYWxTZWNyZXRSb3RhdGlvbk1ldGFkYXRhSXRlbVwiO1xuY29uc3QgX0VTUk1UID0gXCJFeHRlcm5hbFNlY3JldFJvdGF0aW9uTWV0YWRhdGFUeXBlXCI7XG5jb25zdCBfRVNSUkEgPSBcIkV4dGVybmFsU2VjcmV0Um90YXRpb25Sb2xlQXJuXCI7XG5jb25zdCBfRVUgPSBcIkV4Y2x1ZGVVcHBlcmNhc2VcIjtcbmNvbnN0IF9GID0gXCJGaWx0ZXJzXCI7XG5jb25zdCBfRkRXUiA9IFwiRm9yY2VEZWxldGVXaXRob3V0UmVjb3ZlcnlcIjtcbmNvbnN0IF9GTFQgPSBcIkZpbHRlcnNMaXN0VHlwZVwiO1xuY29uc3QgX0ZPUlMgPSBcIkZvcmNlT3ZlcndyaXRlUmVwbGljYVNlY3JldFwiO1xuY29uc3QgX0ZpID0gXCJGaWx0ZXJcIjtcbmNvbnN0IF9HUlAgPSBcIkdldFJhbmRvbVBhc3N3b3JkXCI7XG5jb25zdCBfR1JQUiA9IFwiR2V0UmFuZG9tUGFzc3dvcmRSZXF1ZXN0XCI7XG5jb25zdCBfR1JQUmUgPSBcIkdldFJhbmRvbVBhc3N3b3JkUmVzcG9uc2VcIjtcbmNvbnN0IF9HUlBSZXQgPSBcIkdldFJlc291cmNlUG9saWN5UmVxdWVzdFwiO1xuY29uc3QgX0dSUFJldGUgPSBcIkdldFJlc291cmNlUG9saWN5UmVzcG9uc2VcIjtcbmNvbnN0IF9HUlBlID0gXCJHZXRSZXNvdXJjZVBvbGljeVwiO1xuY29uc3QgX0dTViA9IFwiR2V0U2VjcmV0VmFsdWVcIjtcbmNvbnN0IF9HU1ZSID0gXCJHZXRTZWNyZXRWYWx1ZVJlcXVlc3RcIjtcbmNvbnN0IF9HU1ZSZSA9IFwiR2V0U2VjcmV0VmFsdWVSZXNwb25zZVwiO1xuY29uc3QgX0lEID0gXCJJbmNsdWRlRGVwcmVjYXRlZFwiO1xuY29uc3QgX0lOVEUgPSBcIkludmFsaWROZXh0VG9rZW5FeGNlcHRpb25cIjtcbmNvbnN0IF9JUEQgPSBcIkluY2x1ZGVQbGFubmVkRGVsZXRpb25cIjtcbmNvbnN0IF9JUEUgPSBcIkludmFsaWRQYXJhbWV0ZXJFeGNlcHRpb25cIjtcbmNvbnN0IF9JUkUgPSBcIkludmFsaWRSZXF1ZXN0RXhjZXB0aW9uXCI7XG5jb25zdCBfSVMgPSBcIkluY2x1ZGVTcGFjZVwiO1xuY29uc3QgX0lTRSA9IFwiSW50ZXJuYWxTZXJ2aWNlRXJyb3JcIjtcbmNvbnN0IF9LID0gXCJLZXlcIjtcbmNvbnN0IF9LS0kgPSBcIkttc0tleUlkXCI7XG5jb25zdCBfS0tJbSA9IFwiS21zS2V5SWRzXCI7XG5jb25zdCBfTEFEID0gXCJMYXN0QWNjZXNzZWREYXRlXCI7XG5jb25zdCBfTENEID0gXCJMYXN0Q2hhbmdlZERhdGVcIjtcbmNvbnN0IF9MRUUgPSBcIkxpbWl0RXhjZWVkZWRFeGNlcHRpb25cIjtcbmNvbnN0IF9MUkQgPSBcIkxhc3RSb3RhdGVkRGF0ZVwiO1xuY29uc3QgX0xTID0gXCJMaXN0U2VjcmV0c1wiO1xuY29uc3QgX0xTUiA9IFwiTGlzdFNlY3JldHNSZXF1ZXN0XCI7XG5jb25zdCBfTFNSaSA9IFwiTGlzdFNlY3JldHNSZXNwb25zZVwiO1xuY29uc3QgX0xTVkkgPSBcIkxpc3RTZWNyZXRWZXJzaW9uSWRzXCI7XG5jb25zdCBfTFNWSVIgPSBcIkxpc3RTZWNyZXRWZXJzaW9uSWRzUmVxdWVzdFwiO1xuY29uc3QgX0xTVklSaSA9IFwiTGlzdFNlY3JldFZlcnNpb25JZHNSZXNwb25zZVwiO1xuY29uc3QgX00gPSBcIk1lc3NhZ2VcIjtcbmNvbnN0IF9NUERFID0gXCJNYWxmb3JtZWRQb2xpY3lEb2N1bWVudEV4Y2VwdGlvblwiO1xuY29uc3QgX01SID0gXCJNYXhSZXN1bHRzXCI7XG5jb25zdCBfTVRWSSA9IFwiTW92ZVRvVmVyc2lvbklkXCI7XG5jb25zdCBfTiA9IFwiTmFtZVwiO1xuY29uc3QgX05SRCA9IFwiTmV4dFJvdGF0aW9uRGF0ZVwiO1xuY29uc3QgX05UID0gXCJOZXh0VG9rZW5cIjtcbmNvbnN0IF9PUyA9IFwiT3duaW5nU2VydmljZVwiO1xuY29uc3QgX1BMID0gXCJQYXNzd29yZExlbmd0aFwiO1xuY29uc3QgX1BOTUUgPSBcIlByZWNvbmRpdGlvbk5vdE1ldEV4Y2VwdGlvblwiO1xuY29uc3QgX1BQRSA9IFwiUHVibGljUG9saWN5RXhjZXB0aW9uXCI7XG5jb25zdCBfUFIgPSBcIlByaW1hcnlSZWdpb25cIjtcbmNvbnN0IF9QUlAgPSBcIlB1dFJlc291cmNlUG9saWN5XCI7XG5jb25zdCBfUFJQUiA9IFwiUHV0UmVzb3VyY2VQb2xpY3lSZXF1ZXN0XCI7XG5jb25zdCBfUFJQUnUgPSBcIlB1dFJlc291cmNlUG9saWN5UmVzcG9uc2VcIjtcbmNvbnN0IF9QU1YgPSBcIlB1dFNlY3JldFZhbHVlXCI7XG5jb25zdCBfUFNWUiA9IFwiUHV0U2VjcmV0VmFsdWVSZXF1ZXN0XCI7XG5jb25zdCBfUFNWUnUgPSBcIlB1dFNlY3JldFZhbHVlUmVzcG9uc2VcIjtcbmNvbnN0IF9QVlAgPSBcIlBvbGljeVZhbGlkYXRpb25QYXNzZWRcIjtcbmNvbnN0IF9SID0gXCJSZWdpb25cIjtcbmNvbnN0IF9SRSA9IFwiUm90YXRpb25FbmFibGVkXCI7XG5jb25zdCBfUkVFID0gXCJSZXNvdXJjZUV4aXN0c0V4Y2VwdGlvblwiO1xuY29uc3QgX1JFSVQgPSBcIlJlcXVpcmVFYWNoSW5jbHVkZWRUeXBlXCI7XG5jb25zdCBfUkZWSSA9IFwiUmVtb3ZlRnJvbVZlcnNpb25JZFwiO1xuY29uc3QgX1JJID0gXCJSb3RhdGVJbW1lZGlhdGVseVwiO1xuY29uc3QgX1JMQVJOID0gXCJSb3RhdGlvbkxhbWJkYUFSTlwiO1xuY29uc3QgX1JORkUgPSBcIlJlc291cmNlTm90Rm91bmRFeGNlcHRpb25cIjtcbmNvbnN0IF9SUCA9IFwiUmFuZG9tUGFzc3dvcmRcIjtcbmNvbnN0IF9SUFQgPSBcIlJhbmRvbVBhc3N3b3JkVHlwZVwiO1xuY29uc3QgX1JQZSA9IFwiUmVzb3VyY2VQb2xpY3lcIjtcbmNvbnN0IF9SUiA9IFwiUm90YXRpb25SdWxlc1wiO1xuY29uc3QgX1JSRlIgPSBcIlJlbW92ZVJlZ2lvbnNGcm9tUmVwbGljYXRpb25cIjtcbmNvbnN0IF9SUkZSUiA9IFwiUmVtb3ZlUmVnaW9uc0Zyb21SZXBsaWNhdGlvblJlcXVlc3RcIjtcbmNvbnN0IF9SUkZSUmUgPSBcIlJlbW92ZVJlZ2lvbnNGcm9tUmVwbGljYXRpb25SZXNwb25zZVwiO1xuY29uc3QgX1JSUiA9IFwiUmVtb3ZlUmVwbGljYVJlZ2lvbnNcIjtcbmNvbnN0IF9SUlQgPSBcIlJlcGxpY2FSZWdpb25UeXBlXCI7XG5jb25zdCBfUlJUbyA9IFwiUm90YXRpb25SdWxlc1R5cGVcIjtcbmNvbnN0IF9SUyA9IFwiUmVwbGljYXRpb25TdGF0dXNcIjtcbmNvbnN0IF9SU0xUID0gXCJSZXBsaWNhdGlvblN0YXR1c0xpc3RUeXBlXCI7XG5jb25zdCBfUlNSID0gXCJSZXN0b3JlU2VjcmV0UmVxdWVzdFwiO1xuY29uc3QgX1JTUmUgPSBcIlJlc3RvcmVTZWNyZXRSZXNwb25zZVwiO1xuY29uc3QgX1JTUm8gPSBcIlJvdGF0ZVNlY3JldFJlcXVlc3RcIjtcbmNvbnN0IF9SU1JvdCA9IFwiUm90YXRlU2VjcmV0UmVzcG9uc2VcIjtcbmNvbnN0IF9SU1QgPSBcIlJlcGxpY2F0aW9uU3RhdHVzVHlwZVwiO1xuY29uc3QgX1JTVFIgPSBcIlJlcGxpY2F0ZVNlY3JldFRvUmVnaW9uc1wiO1xuY29uc3QgX1JTVFJSID0gXCJSZXBsaWNhdGVTZWNyZXRUb1JlZ2lvbnNSZXF1ZXN0XCI7XG5jb25zdCBfUlNUUlJlID0gXCJSZXBsaWNhdGVTZWNyZXRUb1JlZ2lvbnNSZXNwb25zZVwiO1xuY29uc3QgX1JTZSA9IFwiUmVzdG9yZVNlY3JldFwiO1xuY29uc3QgX1JTbyA9IFwiUm90YXRlU2VjcmV0XCI7XG5jb25zdCBfUlQgPSBcIlJvdGF0aW9uVG9rZW5cIjtcbmNvbnN0IF9SVFQgPSBcIlJvdGF0aW9uVG9rZW5UeXBlXCI7XG5jb25zdCBfUldJRCA9IFwiUmVjb3ZlcnlXaW5kb3dJbkRheXNcIjtcbmNvbnN0IF9TID0gXCJTdGF0dXNcIjtcbmNvbnN0IF9TQiA9IFwiU2VjcmV0QmluYXJ5XCI7XG5jb25zdCBfU0JUID0gXCJTZWNyZXRCaW5hcnlUeXBlXCI7XG5jb25zdCBfU0JvID0gXCJTb3J0QnlcIjtcbmNvbnN0IF9TRSA9IFwiU2NoZWR1bGVFeHByZXNzaW9uXCI7XG5jb25zdCBfU0kgPSBcIlNlY3JldElkXCI7XG5jb25zdCBfU0lMID0gXCJTZWNyZXRJZExpc3RcIjtcbmNvbnN0IF9TTCA9IFwiU2VjcmV0TGlzdFwiO1xuY29uc3QgX1NMRSA9IFwiU2VjcmV0TGlzdEVudHJ5XCI7XG5jb25zdCBfU0xUID0gXCJTZWNyZXRMaXN0VHlwZVwiO1xuY29uc3QgX1NNID0gXCJTdGF0dXNNZXNzYWdlXCI7XG5jb25zdCBfU08gPSBcIlNvcnRPcmRlclwiO1xuY29uc3QgX1NSVFIgPSBcIlN0b3BSZXBsaWNhdGlvblRvUmVwbGljYVwiO1xuY29uc3QgX1NSVFJSID0gXCJTdG9wUmVwbGljYXRpb25Ub1JlcGxpY2FSZXF1ZXN0XCI7XG5jb25zdCBfU1JUUlJ0ID0gXCJTdG9wUmVwbGljYXRpb25Ub1JlcGxpY2FSZXNwb25zZVwiO1xuY29uc3QgX1NTID0gXCJTZWNyZXRTdHJpbmdcIjtcbmNvbnN0IF9TU1QgPSBcIlNlY3JldFN0cmluZ1R5cGVcIjtcbmNvbnN0IF9TViA9IFwiU2VjcmV0VmFsdWVzXCI7XG5jb25zdCBfU1ZFID0gXCJTZWNyZXRWYWx1ZUVudHJ5XCI7XG5jb25zdCBfU1ZMRSA9IFwiU2VjcmV0VmVyc2lvbnNMaXN0RW50cnlcIjtcbmNvbnN0IF9TVkxUID0gXCJTZWNyZXRWZXJzaW9uc0xpc3RUeXBlXCI7XG5jb25zdCBfU1ZUID0gXCJTZWNyZXRWYWx1ZXNUeXBlXCI7XG5jb25zdCBfU1ZUUyA9IFwiU2VjcmV0VmVyc2lvbnNUb1N0YWdlc1wiO1xuY29uc3QgX1NWVFNNVCA9IFwiU2VjcmV0VmVyc2lvbnNUb1N0YWdlc01hcFR5cGVcIjtcbmNvbnN0IF9UID0gXCJUYWdzXCI7XG5jb25zdCBfVEsgPSBcIlRhZ0tleXNcIjtcbmNvbnN0IF9UTFQgPSBcIlRhZ0xpc3RUeXBlXCI7XG5jb25zdCBfVFIgPSBcIlRhZ1Jlc291cmNlXCI7XG5jb25zdCBfVFJSID0gXCJUYWdSZXNvdXJjZVJlcXVlc3RcIjtcbmNvbnN0IF9UYSA9IFwiVGFnXCI7XG5jb25zdCBfVHkgPSBcIlR5cGVcIjtcbmNvbnN0IF9VUiA9IFwiVW50YWdSZXNvdXJjZVwiO1xuY29uc3QgX1VSUiA9IFwiVW50YWdSZXNvdXJjZVJlcXVlc3RcIjtcbmNvbnN0IF9VUyA9IFwiVXBkYXRlU2VjcmV0XCI7XG5jb25zdCBfVVNSID0gXCJVcGRhdGVTZWNyZXRSZXF1ZXN0XCI7XG5jb25zdCBfVVNScCA9IFwiVXBkYXRlU2VjcmV0UmVzcG9uc2VcIjtcbmNvbnN0IF9VU1ZTID0gXCJVcGRhdGVTZWNyZXRWZXJzaW9uU3RhZ2VcIjtcbmNvbnN0IF9VU1ZTUiA9IFwiVXBkYXRlU2VjcmV0VmVyc2lvblN0YWdlUmVxdWVzdFwiO1xuY29uc3QgX1VTVlNScCA9IFwiVXBkYXRlU2VjcmV0VmVyc2lvblN0YWdlUmVzcG9uc2VcIjtcbmNvbnN0IF9WID0gXCJWYWx1ZVwiO1xuY29uc3QgX1ZFID0gXCJWYWxpZGF0aW9uRXJyb3JzXCI7XG5jb25zdCBfVkVFID0gXCJWYWxpZGF0aW9uRXJyb3JzRW50cnlcIjtcbmNvbnN0IF9WRVQgPSBcIlZhbGlkYXRpb25FcnJvcnNUeXBlXCI7XG5jb25zdCBfVkkgPSBcIlZlcnNpb25JZFwiO1xuY29uc3QgX1ZJVFMgPSBcIlZlcnNpb25JZHNUb1N0YWdlc1wiO1xuY29uc3QgX1ZSUCA9IFwiVmFsaWRhdGVSZXNvdXJjZVBvbGljeVwiO1xuY29uc3QgX1ZSUFIgPSBcIlZhbGlkYXRlUmVzb3VyY2VQb2xpY3lSZXF1ZXN0XCI7XG5jb25zdCBfVlJQUmEgPSBcIlZhbGlkYXRlUmVzb3VyY2VQb2xpY3lSZXNwb25zZVwiO1xuY29uc3QgX1ZTID0gXCJWZXJzaW9uU3RhZ2VcIjtcbmNvbnN0IF9WU2UgPSBcIlZlcnNpb25TdGFnZXNcIjtcbmNvbnN0IF9WYSA9IFwiVmFsdWVzXCI7XG5jb25zdCBfVmUgPSBcIlZlcnNpb25zXCI7XG5jb25zdCBfYyA9IFwiY2xpZW50XCI7XG5jb25zdCBfZSA9IFwiZXJyb3JcIjtcbmNvbnN0IF9zID0gXCJzbWl0aHkudHMuc2RrLnN5bnRoZXRpYy5jb20uYW1hem9uYXdzLnNlY3JldHNtYW5hZ2VyXCI7XG5jb25zdCBfc2UgPSBcInNlcnZlclwiO1xuY29uc3QgbjAgPSBcImNvbS5hbWF6b25hd3Muc2VjcmV0c21hbmFnZXJcIjtcbmNvbnN0IHNjaGVtYV8xID0gcmVxdWlyZShcIkBzbWl0aHkvY29yZS9zY2hlbWFcIik7XG5jb25zdCBlcnJvcnNfMSA9IHJlcXVpcmUoXCIuLi9tb2RlbHMvZXJyb3JzXCIpO1xuY29uc3QgU2VjcmV0c01hbmFnZXJTZXJ2aWNlRXhjZXB0aW9uXzEgPSByZXF1aXJlKFwiLi4vbW9kZWxzL1NlY3JldHNNYW5hZ2VyU2VydmljZUV4Y2VwdGlvblwiKTtcbmNvbnN0IF9zX3JlZ2lzdHJ5ID0gc2NoZW1hXzEuVHlwZVJlZ2lzdHJ5LmZvcihfcyk7XG5leHBvcnRzLlNlY3JldHNNYW5hZ2VyU2VydmljZUV4Y2VwdGlvbiQgPSBbLTMsIF9zLCBcIlNlY3JldHNNYW5hZ2VyU2VydmljZUV4Y2VwdGlvblwiLCAwLCBbXSwgW11dO1xuX3NfcmVnaXN0cnkucmVnaXN0ZXJFcnJvcihleHBvcnRzLlNlY3JldHNNYW5hZ2VyU2VydmljZUV4Y2VwdGlvbiQsIFNlY3JldHNNYW5hZ2VyU2VydmljZUV4Y2VwdGlvbl8xLlNlY3JldHNNYW5hZ2VyU2VydmljZUV4Y2VwdGlvbik7XG5jb25zdCBuMF9yZWdpc3RyeSA9IHNjaGVtYV8xLlR5cGVSZWdpc3RyeS5mb3IobjApO1xuZXhwb3J0cy5EZWNyeXB0aW9uRmFpbHVyZSQgPSBbLTMsIG4wLCBfREYsXG4gICAgeyBbX2VdOiBfYyB9LFxuICAgIFtfTV0sXG4gICAgWzBdXG5dO1xubjBfcmVnaXN0cnkucmVnaXN0ZXJFcnJvcihleHBvcnRzLkRlY3J5cHRpb25GYWlsdXJlJCwgZXJyb3JzXzEuRGVjcnlwdGlvbkZhaWx1cmUpO1xuZXhwb3J0cy5FbmNyeXB0aW9uRmFpbHVyZSQgPSBbLTMsIG4wLCBfRUYsXG4gICAgeyBbX2VdOiBfYyB9LFxuICAgIFtfTV0sXG4gICAgWzBdXG5dO1xubjBfcmVnaXN0cnkucmVnaXN0ZXJFcnJvcihleHBvcnRzLkVuY3J5cHRpb25GYWlsdXJlJCwgZXJyb3JzXzEuRW5jcnlwdGlvbkZhaWx1cmUpO1xuZXhwb3J0cy5JbnRlcm5hbFNlcnZpY2VFcnJvciQgPSBbLTMsIG4wLCBfSVNFLFxuICAgIHsgW19lXTogX3NlIH0sXG4gICAgW19NXSxcbiAgICBbMF1cbl07XG5uMF9yZWdpc3RyeS5yZWdpc3RlckVycm9yKGV4cG9ydHMuSW50ZXJuYWxTZXJ2aWNlRXJyb3IkLCBlcnJvcnNfMS5JbnRlcm5hbFNlcnZpY2VFcnJvcik7XG5leHBvcnRzLkludmFsaWROZXh0VG9rZW5FeGNlcHRpb24kID0gWy0zLCBuMCwgX0lOVEUsXG4gICAgeyBbX2VdOiBfYyB9LFxuICAgIFtfTV0sXG4gICAgWzBdXG5dO1xubjBfcmVnaXN0cnkucmVnaXN0ZXJFcnJvcihleHBvcnRzLkludmFsaWROZXh0VG9rZW5FeGNlcHRpb24kLCBlcnJvcnNfMS5JbnZhbGlkTmV4dFRva2VuRXhjZXB0aW9uKTtcbmV4cG9ydHMuSW52YWxpZFBhcmFtZXRlckV4Y2VwdGlvbiQgPSBbLTMsIG4wLCBfSVBFLFxuICAgIHsgW19lXTogX2MgfSxcbiAgICBbX01dLFxuICAgIFswXVxuXTtcbm4wX3JlZ2lzdHJ5LnJlZ2lzdGVyRXJyb3IoZXhwb3J0cy5JbnZhbGlkUGFyYW1ldGVyRXhjZXB0aW9uJCwgZXJyb3JzXzEuSW52YWxpZFBhcmFtZXRlckV4Y2VwdGlvbik7XG5leHBvcnRzLkludmFsaWRSZXF1ZXN0RXhjZXB0aW9uJCA9IFstMywgbjAsIF9JUkUsXG4gICAgeyBbX2VdOiBfYyB9LFxuICAgIFtfTV0sXG4gICAgWzBdXG5dO1xubjBfcmVnaXN0cnkucmVnaXN0ZXJFcnJvcihleHBvcnRzLkludmFsaWRSZXF1ZXN0RXhjZXB0aW9uJCwgZXJyb3JzXzEuSW52YWxpZFJlcXVlc3RFeGNlcHRpb24pO1xuZXhwb3J0cy5MaW1pdEV4Y2VlZGVkRXhjZXB0aW9uJCA9IFstMywgbjAsIF9MRUUsXG4gICAgeyBbX2VdOiBfYyB9LFxuICAgIFtfTV0sXG4gICAgWzBdXG5dO1xubjBfcmVnaXN0cnkucmVnaXN0ZXJFcnJvcihleHBvcnRzLkxpbWl0RXhjZWVkZWRFeGNlcHRpb24kLCBlcnJvcnNfMS5MaW1pdEV4Y2VlZGVkRXhjZXB0aW9uKTtcbmV4cG9ydHMuTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFeGNlcHRpb24kID0gWy0zLCBuMCwgX01QREUsXG4gICAgeyBbX2VdOiBfYyB9LFxuICAgIFtfTV0sXG4gICAgWzBdXG5dO1xubjBfcmVnaXN0cnkucmVnaXN0ZXJFcnJvcihleHBvcnRzLk1hbGZvcm1lZFBvbGljeURvY3VtZW50RXhjZXB0aW9uJCwgZXJyb3JzXzEuTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFeGNlcHRpb24pO1xuZXhwb3J0cy5QcmVjb25kaXRpb25Ob3RNZXRFeGNlcHRpb24kID0gWy0zLCBuMCwgX1BOTUUsXG4gICAgeyBbX2VdOiBfYyB9LFxuICAgIFtfTV0sXG4gICAgWzBdXG5dO1xubjBfcmVnaXN0cnkucmVnaXN0ZXJFcnJvcihleHBvcnRzLlByZWNvbmRpdGlvbk5vdE1ldEV4Y2VwdGlvbiQsIGVycm9yc18xLlByZWNvbmRpdGlvbk5vdE1ldEV4Y2VwdGlvbik7XG5leHBvcnRzLlB1YmxpY1BvbGljeUV4Y2VwdGlvbiQgPSBbLTMsIG4wLCBfUFBFLFxuICAgIHsgW19lXTogX2MgfSxcbiAgICBbX01dLFxuICAgIFswXVxuXTtcbm4wX3JlZ2lzdHJ5LnJlZ2lzdGVyRXJyb3IoZXhwb3J0cy5QdWJsaWNQb2xpY3lFeGNlcHRpb24kLCBlcnJvcnNfMS5QdWJsaWNQb2xpY3lFeGNlcHRpb24pO1xuZXhwb3J0cy5SZXNvdXJjZUV4aXN0c0V4Y2VwdGlvbiQgPSBbLTMsIG4wLCBfUkVFLFxuICAgIHsgW19lXTogX2MgfSxcbiAgICBbX01dLFxuICAgIFswXVxuXTtcbm4wX3JlZ2lzdHJ5LnJlZ2lzdGVyRXJyb3IoZXhwb3J0cy5SZXNvdXJjZUV4aXN0c0V4Y2VwdGlvbiQsIGVycm9yc18xLlJlc291cmNlRXhpc3RzRXhjZXB0aW9uKTtcbmV4cG9ydHMuUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvbiQgPSBbLTMsIG4wLCBfUk5GRSxcbiAgICB7IFtfZV06IF9jIH0sXG4gICAgW19NXSxcbiAgICBbMF1cbl07XG5uMF9yZWdpc3RyeS5yZWdpc3RlckVycm9yKGV4cG9ydHMuUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvbiQsIGVycm9yc18xLlJlc291cmNlTm90Rm91bmRFeGNlcHRpb24pO1xuZXhwb3J0cy5lcnJvclR5cGVSZWdpc3RyaWVzID0gW1xuICAgIF9zX3JlZ2lzdHJ5LFxuICAgIG4wX3JlZ2lzdHJ5LFxuXTtcbnZhciBSYW5kb21QYXNzd29yZFR5cGUgPSBbMCwgbjAsIF9SUFQsIDgsIDBdO1xudmFyIFJvdGF0aW9uVG9rZW5UeXBlID0gWzAsIG4wLCBfUlRULCA4LCAwXTtcbnZhciBTZWNyZXRCaW5hcnlUeXBlID0gWzAsIG4wLCBfU0JULCA4LCAyMV07XG52YXIgU2VjcmV0U3RyaW5nVHlwZSA9IFswLCBuMCwgX1NTVCwgOCwgMF07XG5leHBvcnRzLkFQSUVycm9yVHlwZSQgPSBbMywgbjAsIF9BUElFVCxcbiAgICAwLFxuICAgIFtfU0ksIF9FQywgX01dLFxuICAgIFswLCAwLCAwXVxuXTtcbmV4cG9ydHMuQmF0Y2hHZXRTZWNyZXRWYWx1ZVJlcXVlc3QkID0gWzMsIG4wLCBfQkdTVlIsXG4gICAgMCxcbiAgICBbX1NJTCwgX0YsIF9NUiwgX05UXSxcbiAgICBbNjQgfCAwLCAoKSA9PiBGaWx0ZXJzTGlzdFR5cGUsIDEsIDBdXG5dO1xuZXhwb3J0cy5CYXRjaEdldFNlY3JldFZhbHVlUmVzcG9uc2UkID0gWzMsIG4wLCBfQkdTVlJhLFxuICAgIDAsXG4gICAgW19TViwgX05ULCBfRV0sXG4gICAgW1soKSA9PiBTZWNyZXRWYWx1ZXNUeXBlLCAwXSwgMCwgKCkgPT4gQVBJRXJyb3JMaXN0VHlwZV1cbl07XG5leHBvcnRzLkNhbmNlbFJvdGF0ZVNlY3JldFJlcXVlc3QkID0gWzMsIG4wLCBfQ1JTUixcbiAgICAwLFxuICAgIFtfU0ldLFxuICAgIFswXSwgMVxuXTtcbmV4cG9ydHMuQ2FuY2VsUm90YXRlU2VjcmV0UmVzcG9uc2UkID0gWzMsIG4wLCBfQ1JTUmEsXG4gICAgMCxcbiAgICBbX0FSTiwgX04sIF9WSV0sXG4gICAgWzAsIDAsIDBdXG5dO1xuZXhwb3J0cy5DcmVhdGVTZWNyZXRSZXF1ZXN0JCA9IFszLCBuMCwgX0NTUixcbiAgICAwLFxuICAgIFtfTiwgX0NSVCwgX0QsIF9LS0ksIF9TQiwgX1NTLCBfVCwgX0FSUiwgX0ZPUlMsIF9UeV0sXG4gICAgWzAsIFswLCA0XSwgMCwgMCwgWygpID0+IFNlY3JldEJpbmFyeVR5cGUsIDBdLCBbKCkgPT4gU2VjcmV0U3RyaW5nVHlwZSwgMF0sICgpID0+IFRhZ0xpc3RUeXBlLCAoKSA9PiBBZGRSZXBsaWNhUmVnaW9uTGlzdFR5cGUsIDIsIDBdLCAxXG5dO1xuZXhwb3J0cy5DcmVhdGVTZWNyZXRSZXNwb25zZSQgPSBbMywgbjAsIF9DU1JyLFxuICAgIDAsXG4gICAgW19BUk4sIF9OLCBfVkksIF9SU10sXG4gICAgWzAsIDAsIDAsICgpID0+IFJlcGxpY2F0aW9uU3RhdHVzTGlzdFR5cGVdXG5dO1xuZXhwb3J0cy5EZWxldGVSZXNvdXJjZVBvbGljeVJlcXVlc3QkID0gWzMsIG4wLCBfRFJQUixcbiAgICAwLFxuICAgIFtfU0ldLFxuICAgIFswXSwgMVxuXTtcbmV4cG9ydHMuRGVsZXRlUmVzb3VyY2VQb2xpY3lSZXNwb25zZSQgPSBbMywgbjAsIF9EUlBSZSxcbiAgICAwLFxuICAgIFtfQVJOLCBfTl0sXG4gICAgWzAsIDBdXG5dO1xuZXhwb3J0cy5EZWxldGVTZWNyZXRSZXF1ZXN0JCA9IFszLCBuMCwgX0RTUixcbiAgICAwLFxuICAgIFtfU0ksIF9SV0lELCBfRkRXUl0sXG4gICAgWzAsIDEsIDJdLCAxXG5dO1xuZXhwb3J0cy5EZWxldGVTZWNyZXRSZXNwb25zZSQgPSBbMywgbjAsIF9EU1JlLFxuICAgIDAsXG4gICAgW19BUk4sIF9OLCBfRERdLFxuICAgIFswLCAwLCA0XVxuXTtcbmV4cG9ydHMuRGVzY3JpYmVTZWNyZXRSZXF1ZXN0JCA9IFszLCBuMCwgX0RTUmVzLFxuICAgIDAsXG4gICAgW19TSV0sXG4gICAgWzBdLCAxXG5dO1xuZXhwb3J0cy5EZXNjcmliZVNlY3JldFJlc3BvbnNlJCA9IFszLCBuMCwgX0RTUmVzYyxcbiAgICAwLFxuICAgIFtfQVJOLCBfTiwgX1R5LCBfRCwgX0tLSSwgX1JFLCBfUkxBUk4sIF9SUiwgX0VTUk0sIF9FU1JSQSwgX0xSRCwgX0xDRCwgX0xBRCwgX0REZSwgX05SRCwgX1QsIF9WSVRTLCBfT1MsIF9DRCwgX1BSLCBfUlNdLFxuICAgIFswLCAwLCAwLCAwLCAwLCAyLCAwLCAoKSA9PiBleHBvcnRzLlJvdGF0aW9uUnVsZXNUeXBlJCwgKCkgPT4gRXh0ZXJuYWxTZWNyZXRSb3RhdGlvbk1ldGFkYXRhVHlwZSwgMCwgNCwgNCwgNCwgNCwgNCwgKCkgPT4gVGFnTGlzdFR5cGUsIFsyLCBuMCwgX1NWVFNNVCwgMCwgMCwgNjQgfCAwXSwgMCwgNCwgMCwgKCkgPT4gUmVwbGljYXRpb25TdGF0dXNMaXN0VHlwZV1cbl07XG5leHBvcnRzLkV4dGVybmFsU2VjcmV0Um90YXRpb25NZXRhZGF0YUl0ZW0kID0gWzMsIG4wLCBfRVNSTUksXG4gICAgMCxcbiAgICBbX0ssIF9WXSxcbiAgICBbMCwgMF1cbl07XG5leHBvcnRzLkZpbHRlciQgPSBbMywgbjAsIF9GaSxcbiAgICAwLFxuICAgIFtfSywgX1ZhXSxcbiAgICBbMCwgNjQgfCAwXVxuXTtcbmV4cG9ydHMuR2V0UmFuZG9tUGFzc3dvcmRSZXF1ZXN0JCA9IFszLCBuMCwgX0dSUFIsXG4gICAgMCxcbiAgICBbX1BMLCBfRUN4LCBfRU4sIF9FUCwgX0VVLCBfRUwsIF9JUywgX1JFSVRdLFxuICAgIFsxLCAwLCAyLCAyLCAyLCAyLCAyLCAyXVxuXTtcbmV4cG9ydHMuR2V0UmFuZG9tUGFzc3dvcmRSZXNwb25zZSQgPSBbMywgbjAsIF9HUlBSZSxcbiAgICAwLFxuICAgIFtfUlBdLFxuICAgIFtbKCkgPT4gUmFuZG9tUGFzc3dvcmRUeXBlLCAwXV1cbl07XG5leHBvcnRzLkdldFJlc291cmNlUG9saWN5UmVxdWVzdCQgPSBbMywgbjAsIF9HUlBSZXQsXG4gICAgMCxcbiAgICBbX1NJXSxcbiAgICBbMF0sIDFcbl07XG5leHBvcnRzLkdldFJlc291cmNlUG9saWN5UmVzcG9uc2UkID0gWzMsIG4wLCBfR1JQUmV0ZSxcbiAgICAwLFxuICAgIFtfQVJOLCBfTiwgX1JQZV0sXG4gICAgWzAsIDAsIDBdXG5dO1xuZXhwb3J0cy5HZXRTZWNyZXRWYWx1ZVJlcXVlc3QkID0gWzMsIG4wLCBfR1NWUixcbiAgICAwLFxuICAgIFtfU0ksIF9WSSwgX1ZTXSxcbiAgICBbMCwgMCwgMF0sIDFcbl07XG5leHBvcnRzLkdldFNlY3JldFZhbHVlUmVzcG9uc2UkID0gWzMsIG4wLCBfR1NWUmUsXG4gICAgMCxcbiAgICBbX0FSTiwgX04sIF9WSSwgX1NCLCBfU1MsIF9WU2UsIF9DRF0sXG4gICAgWzAsIDAsIDAsIFsoKSA9PiBTZWNyZXRCaW5hcnlUeXBlLCAwXSwgWygpID0+IFNlY3JldFN0cmluZ1R5cGUsIDBdLCA2NCB8IDAsIDRdXG5dO1xuZXhwb3J0cy5MaXN0U2VjcmV0c1JlcXVlc3QkID0gWzMsIG4wLCBfTFNSLFxuICAgIDAsXG4gICAgW19JUEQsIF9NUiwgX05ULCBfRiwgX1NPLCBfU0JvXSxcbiAgICBbMiwgMSwgMCwgKCkgPT4gRmlsdGVyc0xpc3RUeXBlLCAwLCAwXVxuXTtcbmV4cG9ydHMuTGlzdFNlY3JldHNSZXNwb25zZSQgPSBbMywgbjAsIF9MU1JpLFxuICAgIDAsXG4gICAgW19TTCwgX05UXSxcbiAgICBbKCkgPT4gU2VjcmV0TGlzdFR5cGUsIDBdXG5dO1xuZXhwb3J0cy5MaXN0U2VjcmV0VmVyc2lvbklkc1JlcXVlc3QkID0gWzMsIG4wLCBfTFNWSVIsXG4gICAgMCxcbiAgICBbX1NJLCBfTVIsIF9OVCwgX0lEXSxcbiAgICBbMCwgMSwgMCwgMl0sIDFcbl07XG5leHBvcnRzLkxpc3RTZWNyZXRWZXJzaW9uSWRzUmVzcG9uc2UkID0gWzMsIG4wLCBfTFNWSVJpLFxuICAgIDAsXG4gICAgW19WZSwgX05ULCBfQVJOLCBfTl0sXG4gICAgWygpID0+IFNlY3JldFZlcnNpb25zTGlzdFR5cGUsIDAsIDAsIDBdXG5dO1xuZXhwb3J0cy5QdXRSZXNvdXJjZVBvbGljeVJlcXVlc3QkID0gWzMsIG4wLCBfUFJQUixcbiAgICAwLFxuICAgIFtfU0ksIF9SUGUsIF9CUFBdLFxuICAgIFswLCAwLCAyXSwgMlxuXTtcbmV4cG9ydHMuUHV0UmVzb3VyY2VQb2xpY3lSZXNwb25zZSQgPSBbMywgbjAsIF9QUlBSdSxcbiAgICAwLFxuICAgIFtfQVJOLCBfTl0sXG4gICAgWzAsIDBdXG5dO1xuZXhwb3J0cy5QdXRTZWNyZXRWYWx1ZVJlcXVlc3QkID0gWzMsIG4wLCBfUFNWUixcbiAgICAwLFxuICAgIFtfU0ksIF9DUlQsIF9TQiwgX1NTLCBfVlNlLCBfUlRdLFxuICAgIFswLCBbMCwgNF0sIFsoKSA9PiBTZWNyZXRCaW5hcnlUeXBlLCAwXSwgWygpID0+IFNlY3JldFN0cmluZ1R5cGUsIDBdLCA2NCB8IDAsIFsoKSA9PiBSb3RhdGlvblRva2VuVHlwZSwgMF1dLCAxXG5dO1xuZXhwb3J0cy5QdXRTZWNyZXRWYWx1ZVJlc3BvbnNlJCA9IFszLCBuMCwgX1BTVlJ1LFxuICAgIDAsXG4gICAgW19BUk4sIF9OLCBfVkksIF9WU2VdLFxuICAgIFswLCAwLCAwLCA2NCB8IDBdXG5dO1xuZXhwb3J0cy5SZW1vdmVSZWdpb25zRnJvbVJlcGxpY2F0aW9uUmVxdWVzdCQgPSBbMywgbjAsIF9SUkZSUixcbiAgICAwLFxuICAgIFtfU0ksIF9SUlJdLFxuICAgIFswLCA2NCB8IDBdLCAyXG5dO1xuZXhwb3J0cy5SZW1vdmVSZWdpb25zRnJvbVJlcGxpY2F0aW9uUmVzcG9uc2UkID0gWzMsIG4wLCBfUlJGUlJlLFxuICAgIDAsXG4gICAgW19BUk4sIF9SU10sXG4gICAgWzAsICgpID0+IFJlcGxpY2F0aW9uU3RhdHVzTGlzdFR5cGVdXG5dO1xuZXhwb3J0cy5SZXBsaWNhUmVnaW9uVHlwZSQgPSBbMywgbjAsIF9SUlQsXG4gICAgMCxcbiAgICBbX1IsIF9LS0ldLFxuICAgIFswLCAwXVxuXTtcbmV4cG9ydHMuUmVwbGljYXRlU2VjcmV0VG9SZWdpb25zUmVxdWVzdCQgPSBbMywgbjAsIF9SU1RSUixcbiAgICAwLFxuICAgIFtfU0ksIF9BUlIsIF9GT1JTXSxcbiAgICBbMCwgKCkgPT4gQWRkUmVwbGljYVJlZ2lvbkxpc3RUeXBlLCAyXSwgMlxuXTtcbmV4cG9ydHMuUmVwbGljYXRlU2VjcmV0VG9SZWdpb25zUmVzcG9uc2UkID0gWzMsIG4wLCBfUlNUUlJlLFxuICAgIDAsXG4gICAgW19BUk4sIF9SU10sXG4gICAgWzAsICgpID0+IFJlcGxpY2F0aW9uU3RhdHVzTGlzdFR5cGVdXG5dO1xuZXhwb3J0cy5SZXBsaWNhdGlvblN0YXR1c1R5cGUkID0gWzMsIG4wLCBfUlNULFxuICAgIDAsXG4gICAgW19SLCBfS0tJLCBfUywgX1NNLCBfTEFEXSxcbiAgICBbMCwgMCwgMCwgMCwgNF1cbl07XG5leHBvcnRzLlJlc3RvcmVTZWNyZXRSZXF1ZXN0JCA9IFszLCBuMCwgX1JTUixcbiAgICAwLFxuICAgIFtfU0ldLFxuICAgIFswXSwgMVxuXTtcbmV4cG9ydHMuUmVzdG9yZVNlY3JldFJlc3BvbnNlJCA9IFszLCBuMCwgX1JTUmUsXG4gICAgMCxcbiAgICBbX0FSTiwgX05dLFxuICAgIFswLCAwXVxuXTtcbmV4cG9ydHMuUm90YXRlU2VjcmV0UmVxdWVzdCQgPSBbMywgbjAsIF9SU1JvLFxuICAgIDAsXG4gICAgW19TSSwgX0NSVCwgX1JMQVJOLCBfUlIsIF9FU1JNLCBfRVNSUkEsIF9SSV0sXG4gICAgWzAsIFswLCA0XSwgMCwgKCkgPT4gZXhwb3J0cy5Sb3RhdGlvblJ1bGVzVHlwZSQsICgpID0+IEV4dGVybmFsU2VjcmV0Um90YXRpb25NZXRhZGF0YVR5cGUsIDAsIDJdLCAxXG5dO1xuZXhwb3J0cy5Sb3RhdGVTZWNyZXRSZXNwb25zZSQgPSBbMywgbjAsIF9SU1JvdCxcbiAgICAwLFxuICAgIFtfQVJOLCBfTiwgX1ZJXSxcbiAgICBbMCwgMCwgMF1cbl07XG5leHBvcnRzLlJvdGF0aW9uUnVsZXNUeXBlJCA9IFszLCBuMCwgX1JSVG8sXG4gICAgMCxcbiAgICBbX0FBRCwgX0R1LCBfU0VdLFxuICAgIFsxLCAwLCAwXVxuXTtcbmV4cG9ydHMuU2VjcmV0TGlzdEVudHJ5JCA9IFszLCBuMCwgX1NMRSxcbiAgICAwLFxuICAgIFtfQVJOLCBfTiwgX1R5LCBfRCwgX0tLSSwgX1JFLCBfUkxBUk4sIF9SUiwgX0VTUk0sIF9FU1JSQSwgX0xSRCwgX0xDRCwgX0xBRCwgX0REZSwgX05SRCwgX1QsIF9TVlRTLCBfT1MsIF9DRCwgX1BSXSxcbiAgICBbMCwgMCwgMCwgMCwgMCwgMiwgMCwgKCkgPT4gZXhwb3J0cy5Sb3RhdGlvblJ1bGVzVHlwZSQsICgpID0+IEV4dGVybmFsU2VjcmV0Um90YXRpb25NZXRhZGF0YVR5cGUsIDAsIDQsIDQsIDQsIDQsIDQsICgpID0+IFRhZ0xpc3RUeXBlLCBbMiwgbjAsIF9TVlRTTVQsIDAsIDAsIDY0IHwgMF0sIDAsIDQsIDBdXG5dO1xuZXhwb3J0cy5TZWNyZXRWYWx1ZUVudHJ5JCA9IFszLCBuMCwgX1NWRSxcbiAgICAwLFxuICAgIFtfQVJOLCBfTiwgX1ZJLCBfU0IsIF9TUywgX1ZTZSwgX0NEXSxcbiAgICBbMCwgMCwgMCwgWygpID0+IFNlY3JldEJpbmFyeVR5cGUsIDBdLCBbKCkgPT4gU2VjcmV0U3RyaW5nVHlwZSwgMF0sIDY0IHwgMCwgNF1cbl07XG5leHBvcnRzLlNlY3JldFZlcnNpb25zTGlzdEVudHJ5JCA9IFszLCBuMCwgX1NWTEUsXG4gICAgMCxcbiAgICBbX1ZJLCBfVlNlLCBfTEFELCBfQ0QsIF9LS0ltXSxcbiAgICBbMCwgNjQgfCAwLCA0LCA0LCA2NCB8IDBdXG5dO1xuZXhwb3J0cy5TdG9wUmVwbGljYXRpb25Ub1JlcGxpY2FSZXF1ZXN0JCA9IFszLCBuMCwgX1NSVFJSLFxuICAgIDAsXG4gICAgW19TSV0sXG4gICAgWzBdLCAxXG5dO1xuZXhwb3J0cy5TdG9wUmVwbGljYXRpb25Ub1JlcGxpY2FSZXNwb25zZSQgPSBbMywgbjAsIF9TUlRSUnQsXG4gICAgMCxcbiAgICBbX0FSTl0sXG4gICAgWzBdXG5dO1xuZXhwb3J0cy5UYWckID0gWzMsIG4wLCBfVGEsXG4gICAgMCxcbiAgICBbX0ssIF9WXSxcbiAgICBbMCwgMF1cbl07XG5leHBvcnRzLlRhZ1Jlc291cmNlUmVxdWVzdCQgPSBbMywgbjAsIF9UUlIsXG4gICAgMCxcbiAgICBbX1NJLCBfVF0sXG4gICAgWzAsICgpID0+IFRhZ0xpc3RUeXBlXSwgMlxuXTtcbmV4cG9ydHMuVW50YWdSZXNvdXJjZVJlcXVlc3QkID0gWzMsIG4wLCBfVVJSLFxuICAgIDAsXG4gICAgW19TSSwgX1RLXSxcbiAgICBbMCwgNjQgfCAwXSwgMlxuXTtcbmV4cG9ydHMuVXBkYXRlU2VjcmV0UmVxdWVzdCQgPSBbMywgbjAsIF9VU1IsXG4gICAgMCxcbiAgICBbX1NJLCBfQ1JULCBfRCwgX0tLSSwgX1NCLCBfU1MsIF9UeV0sXG4gICAgWzAsIFswLCA0XSwgMCwgMCwgWygpID0+IFNlY3JldEJpbmFyeVR5cGUsIDBdLCBbKCkgPT4gU2VjcmV0U3RyaW5nVHlwZSwgMF0sIDBdLCAxXG5dO1xuZXhwb3J0cy5VcGRhdGVTZWNyZXRSZXNwb25zZSQgPSBbMywgbjAsIF9VU1JwLFxuICAgIDAsXG4gICAgW19BUk4sIF9OLCBfVkldLFxuICAgIFswLCAwLCAwXVxuXTtcbmV4cG9ydHMuVXBkYXRlU2VjcmV0VmVyc2lvblN0YWdlUmVxdWVzdCQgPSBbMywgbjAsIF9VU1ZTUixcbiAgICAwLFxuICAgIFtfU0ksIF9WUywgX1JGVkksIF9NVFZJXSxcbiAgICBbMCwgMCwgMCwgMF0sIDJcbl07XG5leHBvcnRzLlVwZGF0ZVNlY3JldFZlcnNpb25TdGFnZVJlc3BvbnNlJCA9IFszLCBuMCwgX1VTVlNScCxcbiAgICAwLFxuICAgIFtfQVJOLCBfTl0sXG4gICAgWzAsIDBdXG5dO1xuZXhwb3J0cy5WYWxpZGF0ZVJlc291cmNlUG9saWN5UmVxdWVzdCQgPSBbMywgbjAsIF9WUlBSLFxuICAgIDAsXG4gICAgW19SUGUsIF9TSV0sXG4gICAgWzAsIDBdLCAxXG5dO1xuZXhwb3J0cy5WYWxpZGF0ZVJlc291cmNlUG9saWN5UmVzcG9uc2UkID0gWzMsIG4wLCBfVlJQUmEsXG4gICAgMCxcbiAgICBbX1BWUCwgX1ZFXSxcbiAgICBbMiwgKCkgPT4gVmFsaWRhdGlvbkVycm9yc1R5cGVdXG5dO1xuZXhwb3J0cy5WYWxpZGF0aW9uRXJyb3JzRW50cnkkID0gWzMsIG4wLCBfVkVFLFxuICAgIDAsXG4gICAgW19DTiwgX0VNXSxcbiAgICBbMCwgMF1cbl07XG52YXIgX19Vbml0ID0gXCJ1bml0XCI7XG52YXIgQWRkUmVwbGljYVJlZ2lvbkxpc3RUeXBlID0gWzEsIG4wLCBfQVJSTFQsXG4gICAgMCwgKCkgPT4gZXhwb3J0cy5SZXBsaWNhUmVnaW9uVHlwZSRcbl07XG52YXIgQVBJRXJyb3JMaXN0VHlwZSA9IFsxLCBuMCwgX0FQSUVMVCxcbiAgICAwLCAoKSA9PiBleHBvcnRzLkFQSUVycm9yVHlwZSRcbl07XG52YXIgRXh0ZXJuYWxTZWNyZXRSb3RhdGlvbk1ldGFkYXRhVHlwZSA9IFsxLCBuMCwgX0VTUk1ULFxuICAgIDAsICgpID0+IGV4cG9ydHMuRXh0ZXJuYWxTZWNyZXRSb3RhdGlvbk1ldGFkYXRhSXRlbSRcbl07XG52YXIgRmlsdGVyc0xpc3RUeXBlID0gWzEsIG4wLCBfRkxULFxuICAgIDAsICgpID0+IGV4cG9ydHMuRmlsdGVyJFxuXTtcbnZhciBGaWx0ZXJWYWx1ZXNTdHJpbmdMaXN0ID0gNjQgfCAwO1xudmFyIEttc0tleUlkTGlzdFR5cGUgPSA2NCB8IDA7XG52YXIgUmVtb3ZlUmVwbGljYVJlZ2lvbkxpc3RUeXBlID0gNjQgfCAwO1xudmFyIFJlcGxpY2F0aW9uU3RhdHVzTGlzdFR5cGUgPSBbMSwgbjAsIF9SU0xULFxuICAgIDAsICgpID0+IGV4cG9ydHMuUmVwbGljYXRpb25TdGF0dXNUeXBlJFxuXTtcbnZhciBTZWNyZXRJZExpc3RUeXBlID0gNjQgfCAwO1xudmFyIFNlY3JldExpc3RUeXBlID0gWzEsIG4wLCBfU0xULFxuICAgIDAsICgpID0+IGV4cG9ydHMuU2VjcmV0TGlzdEVudHJ5JFxuXTtcbnZhciBTZWNyZXRWYWx1ZXNUeXBlID0gWzEsIG4wLCBfU1ZULFxuICAgIDAsIFsoKSA9PiBleHBvcnRzLlNlY3JldFZhbHVlRW50cnkkLFxuICAgICAgICAwXVxuXTtcbnZhciBTZWNyZXRWZXJzaW9uc0xpc3RUeXBlID0gWzEsIG4wLCBfU1ZMVCxcbiAgICAwLCAoKSA9PiBleHBvcnRzLlNlY3JldFZlcnNpb25zTGlzdEVudHJ5JFxuXTtcbnZhciBTZWNyZXRWZXJzaW9uU3RhZ2VzVHlwZSA9IDY0IHwgMDtcbnZhciBUYWdLZXlMaXN0VHlwZSA9IDY0IHwgMDtcbnZhciBUYWdMaXN0VHlwZSA9IFsxLCBuMCwgX1RMVCxcbiAgICAwLCAoKSA9PiBleHBvcnRzLlRhZyRcbl07XG52YXIgVmFsaWRhdGlvbkVycm9yc1R5cGUgPSBbMSwgbjAsIF9WRVQsXG4gICAgMCwgKCkgPT4gZXhwb3J0cy5WYWxpZGF0aW9uRXJyb3JzRW50cnkkXG5dO1xudmFyIFNlY3JldFZlcnNpb25zVG9TdGFnZXNNYXBUeXBlID0gWzIsIG4wLCBfU1ZUU01ULFxuICAgIDAsIDAsIDY0IHwgMFxuXTtcbmV4cG9ydHMuQmF0Y2hHZXRTZWNyZXRWYWx1ZSQgPSBbOSwgbjAsIF9CR1NWLFxuICAgIDAsICgpID0+IGV4cG9ydHMuQmF0Y2hHZXRTZWNyZXRWYWx1ZVJlcXVlc3QkLCAoKSA9PiBleHBvcnRzLkJhdGNoR2V0U2VjcmV0VmFsdWVSZXNwb25zZSRcbl07XG5leHBvcnRzLkNhbmNlbFJvdGF0ZVNlY3JldCQgPSBbOSwgbjAsIF9DUlMsXG4gICAgMCwgKCkgPT4gZXhwb3J0cy5DYW5jZWxSb3RhdGVTZWNyZXRSZXF1ZXN0JCwgKCkgPT4gZXhwb3J0cy5DYW5jZWxSb3RhdGVTZWNyZXRSZXNwb25zZSRcbl07XG5leHBvcnRzLkNyZWF0ZVNlY3JldCQgPSBbOSwgbjAsIF9DUyxcbiAgICAwLCAoKSA9PiBleHBvcnRzLkNyZWF0ZVNlY3JldFJlcXVlc3QkLCAoKSA9PiBleHBvcnRzLkNyZWF0ZVNlY3JldFJlc3BvbnNlJFxuXTtcbmV4cG9ydHMuRGVsZXRlUmVzb3VyY2VQb2xpY3kkID0gWzksIG4wLCBfRFJQLFxuICAgIDAsICgpID0+IGV4cG9ydHMuRGVsZXRlUmVzb3VyY2VQb2xpY3lSZXF1ZXN0JCwgKCkgPT4gZXhwb3J0cy5EZWxldGVSZXNvdXJjZVBvbGljeVJlc3BvbnNlJFxuXTtcbmV4cG9ydHMuRGVsZXRlU2VjcmV0JCA9IFs5LCBuMCwgX0RTLFxuICAgIDAsICgpID0+IGV4cG9ydHMuRGVsZXRlU2VjcmV0UmVxdWVzdCQsICgpID0+IGV4cG9ydHMuRGVsZXRlU2VjcmV0UmVzcG9uc2UkXG5dO1xuZXhwb3J0cy5EZXNjcmliZVNlY3JldCQgPSBbOSwgbjAsIF9EU2UsXG4gICAgMCwgKCkgPT4gZXhwb3J0cy5EZXNjcmliZVNlY3JldFJlcXVlc3QkLCAoKSA9PiBleHBvcnRzLkRlc2NyaWJlU2VjcmV0UmVzcG9uc2UkXG5dO1xuZXhwb3J0cy5HZXRSYW5kb21QYXNzd29yZCQgPSBbOSwgbjAsIF9HUlAsXG4gICAgMCwgKCkgPT4gZXhwb3J0cy5HZXRSYW5kb21QYXNzd29yZFJlcXVlc3QkLCAoKSA9PiBleHBvcnRzLkdldFJhbmRvbVBhc3N3b3JkUmVzcG9uc2UkXG5dO1xuZXhwb3J0cy5HZXRSZXNvdXJjZVBvbGljeSQgPSBbOSwgbjAsIF9HUlBlLFxuICAgIDAsICgpID0+IGV4cG9ydHMuR2V0UmVzb3VyY2VQb2xpY3lSZXF1ZXN0JCwgKCkgPT4gZXhwb3J0cy5HZXRSZXNvdXJjZVBvbGljeVJlc3BvbnNlJFxuXTtcbmV4cG9ydHMuR2V0U2VjcmV0VmFsdWUkID0gWzksIG4wLCBfR1NWLFxuICAgIDAsICgpID0+IGV4cG9ydHMuR2V0U2VjcmV0VmFsdWVSZXF1ZXN0JCwgKCkgPT4gZXhwb3J0cy5HZXRTZWNyZXRWYWx1ZVJlc3BvbnNlJFxuXTtcbmV4cG9ydHMuTGlzdFNlY3JldHMkID0gWzksIG4wLCBfTFMsXG4gICAgMCwgKCkgPT4gZXhwb3J0cy5MaXN0U2VjcmV0c1JlcXVlc3QkLCAoKSA9PiBleHBvcnRzLkxpc3RTZWNyZXRzUmVzcG9uc2UkXG5dO1xuZXhwb3J0cy5MaXN0U2VjcmV0VmVyc2lvbklkcyQgPSBbOSwgbjAsIF9MU1ZJLFxuICAgIDAsICgpID0+IGV4cG9ydHMuTGlzdFNlY3JldFZlcnNpb25JZHNSZXF1ZXN0JCwgKCkgPT4gZXhwb3J0cy5MaXN0U2VjcmV0VmVyc2lvbklkc1Jlc3BvbnNlJFxuXTtcbmV4cG9ydHMuUHV0UmVzb3VyY2VQb2xpY3kkID0gWzksIG4wLCBfUFJQLFxuICAgIDAsICgpID0+IGV4cG9ydHMuUHV0UmVzb3VyY2VQb2xpY3lSZXF1ZXN0JCwgKCkgPT4gZXhwb3J0cy5QdXRSZXNvdXJjZVBvbGljeVJlc3BvbnNlJFxuXTtcbmV4cG9ydHMuUHV0U2VjcmV0VmFsdWUkID0gWzksIG4wLCBfUFNWLFxuICAgIDAsICgpID0+IGV4cG9ydHMuUHV0U2VjcmV0VmFsdWVSZXF1ZXN0JCwgKCkgPT4gZXhwb3J0cy5QdXRTZWNyZXRWYWx1ZVJlc3BvbnNlJFxuXTtcbmV4cG9ydHMuUmVtb3ZlUmVnaW9uc0Zyb21SZXBsaWNhdGlvbiQgPSBbOSwgbjAsIF9SUkZSLFxuICAgIDAsICgpID0+IGV4cG9ydHMuUmVtb3ZlUmVnaW9uc0Zyb21SZXBsaWNhdGlvblJlcXVlc3QkLCAoKSA9PiBleHBvcnRzLlJlbW92ZVJlZ2lvbnNGcm9tUmVwbGljYXRpb25SZXNwb25zZSRcbl07XG5leHBvcnRzLlJlcGxpY2F0ZVNlY3JldFRvUmVnaW9ucyQgPSBbOSwgbjAsIF9SU1RSLFxuICAgIDAsICgpID0+IGV4cG9ydHMuUmVwbGljYXRlU2VjcmV0VG9SZWdpb25zUmVxdWVzdCQsICgpID0+IGV4cG9ydHMuUmVwbGljYXRlU2VjcmV0VG9SZWdpb25zUmVzcG9uc2UkXG5dO1xuZXhwb3J0cy5SZXN0b3JlU2VjcmV0JCA9IFs5LCBuMCwgX1JTZSxcbiAgICAwLCAoKSA9PiBleHBvcnRzLlJlc3RvcmVTZWNyZXRSZXF1ZXN0JCwgKCkgPT4gZXhwb3J0cy5SZXN0b3JlU2VjcmV0UmVzcG9uc2UkXG5dO1xuZXhwb3J0cy5Sb3RhdGVTZWNyZXQkID0gWzksIG4wLCBfUlNvLFxuICAgIDAsICgpID0+IGV4cG9ydHMuUm90YXRlU2VjcmV0UmVxdWVzdCQsICgpID0+IGV4cG9ydHMuUm90YXRlU2VjcmV0UmVzcG9uc2UkXG5dO1xuZXhwb3J0cy5TdG9wUmVwbGljYXRpb25Ub1JlcGxpY2EkID0gWzksIG4wLCBfU1JUUixcbiAgICAwLCAoKSA9PiBleHBvcnRzLlN0b3BSZXBsaWNhdGlvblRvUmVwbGljYVJlcXVlc3QkLCAoKSA9PiBleHBvcnRzLlN0b3BSZXBsaWNhdGlvblRvUmVwbGljYVJlc3BvbnNlJFxuXTtcbmV4cG9ydHMuVGFnUmVzb3VyY2UkID0gWzksIG4wLCBfVFIsXG4gICAgMCwgKCkgPT4gZXhwb3J0cy5UYWdSZXNvdXJjZVJlcXVlc3QkLCAoKSA9PiBfX1VuaXRcbl07XG5leHBvcnRzLlVudGFnUmVzb3VyY2UkID0gWzksIG4wLCBfVVIsXG4gICAgMCwgKCkgPT4gZXhwb3J0cy5VbnRhZ1Jlc291cmNlUmVxdWVzdCQsICgpID0+IF9fVW5pdFxuXTtcbmV4cG9ydHMuVXBkYXRlU2VjcmV0JCA9IFs5LCBuMCwgX1VTLFxuICAgIDAsICgpID0+IGV4cG9ydHMuVXBkYXRlU2VjcmV0UmVxdWVzdCQsICgpID0+IGV4cG9ydHMuVXBkYXRlU2VjcmV0UmVzcG9uc2UkXG5dO1xuZXhwb3J0cy5VcGRhdGVTZWNyZXRWZXJzaW9uU3RhZ2UkID0gWzksIG4wLCBfVVNWUyxcbiAgICAwLCAoKSA9PiBleHBvcnRzLlVwZGF0ZVNlY3JldFZlcnNpb25TdGFnZVJlcXVlc3QkLCAoKSA9PiBleHBvcnRzLlVwZGF0ZVNlY3JldFZlcnNpb25TdGFnZVJlc3BvbnNlJFxuXTtcbmV4cG9ydHMuVmFsaWRhdGVSZXNvdXJjZVBvbGljeSQgPSBbOSwgbjAsIF9WUlAsXG4gICAgMCwgKCkgPT4gZXhwb3J0cy5WYWxpZGF0ZVJlc291cmNlUG9saWN5UmVxdWVzdCQsICgpID0+IGV4cG9ydHMuVmFsaWRhdGVSZXNvdXJjZVBvbGljeVJlc3BvbnNlJFxuXTtcbiIsICJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuZ2V0UnVudGltZUNvbmZpZyA9IHZvaWQgMDtcbmNvbnN0IGNvcmVfMSA9IHJlcXVpcmUoXCJAYXdzLXNkay9jb3JlXCIpO1xuY29uc3QgcHJvdG9jb2xzXzEgPSByZXF1aXJlKFwiQGF3cy1zZGsvY29yZS9wcm90b2NvbHNcIik7XG5jb25zdCBzbWl0aHlfY2xpZW50XzEgPSByZXF1aXJlKFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCIpO1xuY29uc3QgdXJsX3BhcnNlcl8xID0gcmVxdWlyZShcIkBzbWl0aHkvdXJsLXBhcnNlclwiKTtcbmNvbnN0IHV0aWxfYmFzZTY0XzEgPSByZXF1aXJlKFwiQHNtaXRoeS91dGlsLWJhc2U2NFwiKTtcbmNvbnN0IHV0aWxfdXRmOF8xID0gcmVxdWlyZShcIkBzbWl0aHkvdXRpbC11dGY4XCIpO1xuY29uc3QgaHR0cEF1dGhTY2hlbWVQcm92aWRlcl8xID0gcmVxdWlyZShcIi4vYXV0aC9odHRwQXV0aFNjaGVtZVByb3ZpZGVyXCIpO1xuY29uc3QgZW5kcG9pbnRSZXNvbHZlcl8xID0gcmVxdWlyZShcIi4vZW5kcG9pbnQvZW5kcG9pbnRSZXNvbHZlclwiKTtcbmNvbnN0IHNjaGVtYXNfMF8xID0gcmVxdWlyZShcIi4vc2NoZW1hcy9zY2hlbWFzXzBcIik7XG5jb25zdCBnZXRSdW50aW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIGFwaVZlcnNpb246IFwiMjAxNy0xMC0xN1wiLFxuICAgICAgICBiYXNlNjREZWNvZGVyOiBjb25maWc/LmJhc2U2NERlY29kZXIgPz8gdXRpbF9iYXNlNjRfMS5mcm9tQmFzZTY0LFxuICAgICAgICBiYXNlNjRFbmNvZGVyOiBjb25maWc/LmJhc2U2NEVuY29kZXIgPz8gdXRpbF9iYXNlNjRfMS50b0Jhc2U2NCxcbiAgICAgICAgZGlzYWJsZUhvc3RQcmVmaXg6IGNvbmZpZz8uZGlzYWJsZUhvc3RQcmVmaXggPz8gZmFsc2UsXG4gICAgICAgIGVuZHBvaW50UHJvdmlkZXI6IGNvbmZpZz8uZW5kcG9pbnRQcm92aWRlciA/PyBlbmRwb2ludFJlc29sdmVyXzEuZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIsXG4gICAgICAgIGV4dGVuc2lvbnM6IGNvbmZpZz8uZXh0ZW5zaW9ucyA/PyBbXSxcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVQcm92aWRlcjogY29uZmlnPy5odHRwQXV0aFNjaGVtZVByb3ZpZGVyID8/IGh0dHBBdXRoU2NoZW1lUHJvdmlkZXJfMS5kZWZhdWx0U2VjcmV0c01hbmFnZXJIdHRwQXV0aFNjaGVtZVByb3ZpZGVyLFxuICAgICAgICBodHRwQXV0aFNjaGVtZXM6IGNvbmZpZz8uaHR0cEF1dGhTY2hlbWVzID8/IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzY2hlbWVJZDogXCJhd3MuYXV0aCNzaWd2NFwiLFxuICAgICAgICAgICAgICAgIGlkZW50aXR5UHJvdmlkZXI6IChpcGMpID0+IGlwYy5nZXRJZGVudGl0eVByb3ZpZGVyKFwiYXdzLmF1dGgjc2lndjRcIiksXG4gICAgICAgICAgICAgICAgc2lnbmVyOiBuZXcgY29yZV8xLkF3c1Nka1NpZ1Y0U2lnbmVyKCksXG4gICAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBsb2dnZXI6IGNvbmZpZz8ubG9nZ2VyID8/IG5ldyBzbWl0aHlfY2xpZW50XzEuTm9PcExvZ2dlcigpLFxuICAgICAgICBwcm90b2NvbDogY29uZmlnPy5wcm90b2NvbCA/PyBwcm90b2NvbHNfMS5Bd3NKc29uMV8xUHJvdG9jb2wsXG4gICAgICAgIHByb3RvY29sU2V0dGluZ3M6IGNvbmZpZz8ucHJvdG9jb2xTZXR0aW5ncyA/PyB7XG4gICAgICAgICAgICBkZWZhdWx0TmFtZXNwYWNlOiBcImNvbS5hbWF6b25hd3Muc2VjcmV0c21hbmFnZXJcIixcbiAgICAgICAgICAgIGVycm9yVHlwZVJlZ2lzdHJpZXM6IHNjaGVtYXNfMF8xLmVycm9yVHlwZVJlZ2lzdHJpZXMsXG4gICAgICAgICAgICB2ZXJzaW9uOiBcIjIwMTctMTAtMTdcIixcbiAgICAgICAgICAgIHNlcnZpY2VUYXJnZXQ6IFwic2VjcmV0c21hbmFnZXJcIixcbiAgICAgICAgfSxcbiAgICAgICAgc2VydmljZUlkOiBjb25maWc/LnNlcnZpY2VJZCA/PyBcIlNlY3JldHMgTWFuYWdlclwiLFxuICAgICAgICB1cmxQYXJzZXI6IGNvbmZpZz8udXJsUGFyc2VyID8/IHVybF9wYXJzZXJfMS5wYXJzZVVybCxcbiAgICAgICAgdXRmOERlY29kZXI6IGNvbmZpZz8udXRmOERlY29kZXIgPz8gdXRpbF91dGY4XzEuZnJvbVV0ZjgsXG4gICAgICAgIHV0ZjhFbmNvZGVyOiBjb25maWc/LnV0ZjhFbmNvZGVyID8/IHV0aWxfdXRmOF8xLnRvVXRmOCxcbiAgICB9O1xufTtcbmV4cG9ydHMuZ2V0UnVudGltZUNvbmZpZyA9IGdldFJ1bnRpbWVDb25maWc7XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmdldFJ1bnRpbWVDb25maWcgPSB2b2lkIDA7XG5jb25zdCB0c2xpYl8xID0gcmVxdWlyZShcInRzbGliXCIpO1xuY29uc3QgcGFja2FnZV9qc29uXzEgPSB0c2xpYl8xLl9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi4vcGFja2FnZS5qc29uXCIpKTtcbmNvbnN0IGNvcmVfMSA9IHJlcXVpcmUoXCJAYXdzLXNkay9jb3JlXCIpO1xuY29uc3QgY3JlZGVudGlhbF9wcm92aWRlcl9ub2RlXzEgPSByZXF1aXJlKFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlXCIpO1xuY29uc3QgdXRpbF91c2VyX2FnZW50X25vZGVfMSA9IHJlcXVpcmUoXCJAYXdzLXNkay91dGlsLXVzZXItYWdlbnQtbm9kZVwiKTtcbmNvbnN0IGNvbmZpZ19yZXNvbHZlcl8xID0gcmVxdWlyZShcIkBzbWl0aHkvY29uZmlnLXJlc29sdmVyXCIpO1xuY29uc3QgaGFzaF9ub2RlXzEgPSByZXF1aXJlKFwiQHNtaXRoeS9oYXNoLW5vZGVcIik7XG5jb25zdCBtaWRkbGV3YXJlX3JldHJ5XzEgPSByZXF1aXJlKFwiQHNtaXRoeS9taWRkbGV3YXJlLXJldHJ5XCIpO1xuY29uc3Qgbm9kZV9jb25maWdfcHJvdmlkZXJfMSA9IHJlcXVpcmUoXCJAc21pdGh5L25vZGUtY29uZmlnLXByb3ZpZGVyXCIpO1xuY29uc3Qgbm9kZV9odHRwX2hhbmRsZXJfMSA9IHJlcXVpcmUoXCJAc21pdGh5L25vZGUtaHR0cC1oYW5kbGVyXCIpO1xuY29uc3Qgc21pdGh5X2NsaWVudF8xID0gcmVxdWlyZShcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiKTtcbmNvbnN0IHV0aWxfYm9keV9sZW5ndGhfbm9kZV8xID0gcmVxdWlyZShcIkBzbWl0aHkvdXRpbC1ib2R5LWxlbmd0aC1ub2RlXCIpO1xuY29uc3QgdXRpbF9kZWZhdWx0c19tb2RlX25vZGVfMSA9IHJlcXVpcmUoXCJAc21pdGh5L3V0aWwtZGVmYXVsdHMtbW9kZS1ub2RlXCIpO1xuY29uc3QgdXRpbF9yZXRyeV8xID0gcmVxdWlyZShcIkBzbWl0aHkvdXRpbC1yZXRyeVwiKTtcbmNvbnN0IHJ1bnRpbWVDb25maWdfc2hhcmVkXzEgPSByZXF1aXJlKFwiLi9ydW50aW1lQ29uZmlnLnNoYXJlZFwiKTtcbmNvbnN0IGdldFJ1bnRpbWVDb25maWcgPSAoY29uZmlnKSA9PiB7XG4gICAgKDAsIHNtaXRoeV9jbGllbnRfMS5lbWl0V2FybmluZ0lmVW5zdXBwb3J0ZWRWZXJzaW9uKShwcm9jZXNzLnZlcnNpb24pO1xuICAgIGNvbnN0IGRlZmF1bHRzTW9kZSA9ICgwLCB1dGlsX2RlZmF1bHRzX21vZGVfbm9kZV8xLnJlc29sdmVEZWZhdWx0c01vZGVDb25maWcpKGNvbmZpZyk7XG4gICAgY29uc3QgZGVmYXVsdENvbmZpZ1Byb3ZpZGVyID0gKCkgPT4gZGVmYXVsdHNNb2RlKCkudGhlbihzbWl0aHlfY2xpZW50XzEubG9hZENvbmZpZ3NGb3JEZWZhdWx0TW9kZSk7XG4gICAgY29uc3QgY2xpZW50U2hhcmVkVmFsdWVzID0gKDAsIHJ1bnRpbWVDb25maWdfc2hhcmVkXzEuZ2V0UnVudGltZUNvbmZpZykoY29uZmlnKTtcbiAgICAoMCwgY29yZV8xLmVtaXRXYXJuaW5nSWZVbnN1cHBvcnRlZFZlcnNpb24pKHByb2Nlc3MudmVyc2lvbik7XG4gICAgY29uc3QgbG9hZGVyQ29uZmlnID0ge1xuICAgICAgICBwcm9maWxlOiBjb25maWc/LnByb2ZpbGUsXG4gICAgICAgIGxvZ2dlcjogY2xpZW50U2hhcmVkVmFsdWVzLmxvZ2dlcixcbiAgICB9O1xuICAgIHJldHVybiB7XG4gICAgICAgIC4uLmNsaWVudFNoYXJlZFZhbHVlcyxcbiAgICAgICAgLi4uY29uZmlnLFxuICAgICAgICBydW50aW1lOiBcIm5vZGVcIixcbiAgICAgICAgZGVmYXVsdHNNb2RlLFxuICAgICAgICBhdXRoU2NoZW1lUHJlZmVyZW5jZTogY29uZmlnPy5hdXRoU2NoZW1lUHJlZmVyZW5jZSA/PyAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKShjb3JlXzEuTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX09QVElPTlMsIGxvYWRlckNvbmZpZyksXG4gICAgICAgIGJvZHlMZW5ndGhDaGVja2VyOiBjb25maWc/LmJvZHlMZW5ndGhDaGVja2VyID8/IHV0aWxfYm9keV9sZW5ndGhfbm9kZV8xLmNhbGN1bGF0ZUJvZHlMZW5ndGgsXG4gICAgICAgIGNyZWRlbnRpYWxEZWZhdWx0UHJvdmlkZXI6IGNvbmZpZz8uY3JlZGVudGlhbERlZmF1bHRQcm92aWRlciA/PyBjcmVkZW50aWFsX3Byb3ZpZGVyX25vZGVfMS5kZWZhdWx0UHJvdmlkZXIsXG4gICAgICAgIGRlZmF1bHRVc2VyQWdlbnRQcm92aWRlcjogY29uZmlnPy5kZWZhdWx0VXNlckFnZW50UHJvdmlkZXIgPz8gKDAsIHV0aWxfdXNlcl9hZ2VudF9ub2RlXzEuY3JlYXRlRGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyKSh7IHNlcnZpY2VJZDogY2xpZW50U2hhcmVkVmFsdWVzLnNlcnZpY2VJZCwgY2xpZW50VmVyc2lvbjogcGFja2FnZV9qc29uXzEuZGVmYXVsdC52ZXJzaW9uIH0pLFxuICAgICAgICBtYXhBdHRlbXB0czogY29uZmlnPy5tYXhBdHRlbXB0cyA/PyAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKShtaWRkbGV3YXJlX3JldHJ5XzEuTk9ERV9NQVhfQVRURU1QVF9DT05GSUdfT1BUSU9OUywgY29uZmlnKSxcbiAgICAgICAgcmVnaW9uOiBjb25maWc/LnJlZ2lvbiA/PyAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKShjb25maWdfcmVzb2x2ZXJfMS5OT0RFX1JFR0lPTl9DT05GSUdfT1BUSU9OUywgeyAuLi5jb25maWdfcmVzb2x2ZXJfMS5OT0RFX1JFR0lPTl9DT05GSUdfRklMRV9PUFRJT05TLCAuLi5sb2FkZXJDb25maWcgfSksXG4gICAgICAgIHJlcXVlc3RIYW5kbGVyOiBub2RlX2h0dHBfaGFuZGxlcl8xLk5vZGVIdHRwSGFuZGxlci5jcmVhdGUoY29uZmlnPy5yZXF1ZXN0SGFuZGxlciA/PyBkZWZhdWx0Q29uZmlnUHJvdmlkZXIpLFxuICAgICAgICByZXRyeU1vZGU6IGNvbmZpZz8ucmV0cnlNb2RlID8/XG4gICAgICAgICAgICAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKSh7XG4gICAgICAgICAgICAgICAgLi4ubWlkZGxld2FyZV9yZXRyeV8xLk5PREVfUkVUUllfTU9ERV9DT05GSUdfT1BUSU9OUyxcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiBhc3luYyAoKSA9PiAoYXdhaXQgZGVmYXVsdENvbmZpZ1Byb3ZpZGVyKCkpLnJldHJ5TW9kZSB8fCB1dGlsX3JldHJ5XzEuREVGQVVMVF9SRVRSWV9NT0RFLFxuICAgICAgICAgICAgfSwgY29uZmlnKSxcbiAgICAgICAgc2hhMjU2OiBjb25maWc/LnNoYTI1NiA/PyBoYXNoX25vZGVfMS5IYXNoLmJpbmQobnVsbCwgXCJzaGEyNTZcIiksXG4gICAgICAgIHN0cmVhbUNvbGxlY3RvcjogY29uZmlnPy5zdHJlYW1Db2xsZWN0b3IgPz8gbm9kZV9odHRwX2hhbmRsZXJfMS5zdHJlYW1Db2xsZWN0b3IsXG4gICAgICAgIHVzZUR1YWxzdGFja0VuZHBvaW50OiBjb25maWc/LnVzZUR1YWxzdGFja0VuZHBvaW50ID8/ICgwLCBub2RlX2NvbmZpZ19wcm92aWRlcl8xLmxvYWRDb25maWcpKGNvbmZpZ19yZXNvbHZlcl8xLk5PREVfVVNFX0RVQUxTVEFDS19FTkRQT0lOVF9DT05GSUdfT1BUSU9OUywgbG9hZGVyQ29uZmlnKSxcbiAgICAgICAgdXNlRmlwc0VuZHBvaW50OiBjb25maWc/LnVzZUZpcHNFbmRwb2ludCA/PyAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKShjb25maWdfcmVzb2x2ZXJfMS5OT0RFX1VTRV9GSVBTX0VORFBPSU5UX0NPTkZJR19PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgICAgICB1c2VyQWdlbnRBcHBJZDogY29uZmlnPy51c2VyQWdlbnRBcHBJZCA/PyAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKSh1dGlsX3VzZXJfYWdlbnRfbm9kZV8xLk5PREVfQVBQX0lEX0NPTkZJR19PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgIH07XG59O1xuZXhwb3J0cy5nZXRSdW50aW1lQ29uZmlnID0gZ2V0UnVudGltZUNvbmZpZztcbiIsICJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMud2FybmluZyA9IHZvaWQgMDtcbmV4cG9ydHMuc3RzUmVnaW9uRGVmYXVsdFJlc29sdmVyID0gc3RzUmVnaW9uRGVmYXVsdFJlc29sdmVyO1xuY29uc3QgY29uZmlnX3Jlc29sdmVyXzEgPSByZXF1aXJlKFwiQHNtaXRoeS9jb25maWctcmVzb2x2ZXJcIik7XG5jb25zdCBub2RlX2NvbmZpZ19wcm92aWRlcl8xID0gcmVxdWlyZShcIkBzbWl0aHkvbm9kZS1jb25maWctcHJvdmlkZXJcIik7XG5mdW5jdGlvbiBzdHNSZWdpb25EZWZhdWx0UmVzb2x2ZXIobG9hZGVyQ29uZmlnID0ge30pIHtcbiAgICByZXR1cm4gKDAsIG5vZGVfY29uZmlnX3Byb3ZpZGVyXzEubG9hZENvbmZpZykoe1xuICAgICAgICAuLi5jb25maWdfcmVzb2x2ZXJfMS5OT0RFX1JFR0lPTl9DT05GSUdfT1BUSU9OUyxcbiAgICAgICAgYXN5bmMgZGVmYXVsdCgpIHtcbiAgICAgICAgICAgIGlmICghZXhwb3J0cy53YXJuaW5nLnNpbGVuY2UpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oXCJAYXdzLXNkayAtIFdBUk4gLSBkZWZhdWx0IFNUUyByZWdpb24gb2YgdXMtZWFzdC0xIHVzZWQuIFNlZSBAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVycyBSRUFETUUgYW5kIHNldCBhIHJlZ2lvbiBleHBsaWNpdGx5LlwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBcInVzLWVhc3QtMVwiO1xuICAgICAgICB9LFxuICAgIH0sIHsgLi4uY29uZmlnX3Jlc29sdmVyXzEuTk9ERV9SRUdJT05fQ09ORklHX0ZJTEVfT1BUSU9OUywgLi4ubG9hZGVyQ29uZmlnIH0pO1xufVxuZXhwb3J0cy53YXJuaW5nID0ge1xuICAgIHNpbGVuY2U6IGZhbHNlLFxufTtcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBzdHNSZWdpb25EZWZhdWx0UmVzb2x2ZXIgPSByZXF1aXJlKCcuL3JlZ2lvbkNvbmZpZy9zdHNSZWdpb25EZWZhdWx0UmVzb2x2ZXInKTtcbnZhciBjb25maWdSZXNvbHZlciA9IHJlcXVpcmUoJ0BzbWl0aHkvY29uZmlnLXJlc29sdmVyJyk7XG5cbmNvbnN0IGdldEF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24gPSAocnVudGltZUNvbmZpZykgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIHNldFJlZ2lvbihyZWdpb24pIHtcbiAgICAgICAgICAgIHJ1bnRpbWVDb25maWcucmVnaW9uID0gcmVnaW9uO1xuICAgICAgICB9LFxuICAgICAgICByZWdpb24oKSB7XG4gICAgICAgICAgICByZXR1cm4gcnVudGltZUNvbmZpZy5yZWdpb247XG4gICAgICAgIH0sXG4gICAgfTtcbn07XG5jb25zdCByZXNvbHZlQXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiA9IChhd3NSZWdpb25FeHRlbnNpb25Db25maWd1cmF0aW9uKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcmVnaW9uOiBhd3NSZWdpb25FeHRlbnNpb25Db25maWd1cmF0aW9uLnJlZ2lvbigpLFxuICAgIH07XG59O1xuXG5leHBvcnRzLk5PREVfUkVHSU9OX0NPTkZJR19GSUxFX09QVElPTlMgPSBjb25maWdSZXNvbHZlci5OT0RFX1JFR0lPTl9DT05GSUdfRklMRV9PUFRJT05TO1xuZXhwb3J0cy5OT0RFX1JFR0lPTl9DT05GSUdfT1BUSU9OUyA9IGNvbmZpZ1Jlc29sdmVyLk5PREVfUkVHSU9OX0NPTkZJR19PUFRJT05TO1xuZXhwb3J0cy5SRUdJT05fRU5WX05BTUUgPSBjb25maWdSZXNvbHZlci5SRUdJT05fRU5WX05BTUU7XG5leHBvcnRzLlJFR0lPTl9JTklfTkFNRSA9IGNvbmZpZ1Jlc29sdmVyLlJFR0lPTl9JTklfTkFNRTtcbmV4cG9ydHMucmVzb2x2ZVJlZ2lvbkNvbmZpZyA9IGNvbmZpZ1Jlc29sdmVyLnJlc29sdmVSZWdpb25Db25maWc7XG5leHBvcnRzLmdldEF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24gPSBnZXRBd3NSZWdpb25FeHRlbnNpb25Db25maWd1cmF0aW9uO1xuZXhwb3J0cy5yZXNvbHZlQXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiA9IHJlc29sdmVBd3NSZWdpb25FeHRlbnNpb25Db25maWd1cmF0aW9uO1xuT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHN0c1JlZ2lvbkRlZmF1bHRSZXNvbHZlciwgJ19fcHJvdG9fXycpICYmXG4gICAgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChleHBvcnRzLCAnX19wcm90b19fJykgJiZcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fcHJvdG9fXycsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgdmFsdWU6IHN0c1JlZ2lvbkRlZmF1bHRSZXNvbHZlclsnX19wcm90b19fJ11cbiAgICB9KTtcblxuT2JqZWN0LmtleXMoc3RzUmVnaW9uRGVmYXVsdFJlc29sdmVyKS5mb3JFYWNoKGZ1bmN0aW9uIChrKSB7XG4gICAgaWYgKGsgIT09ICdkZWZhdWx0JyAmJiAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGV4cG9ydHMsIGspKSBleHBvcnRzW2tdID0gc3RzUmVnaW9uRGVmYXVsdFJlc29sdmVyW2tdO1xufSk7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgbWlkZGxld2FyZUhvc3RIZWFkZXIgPSByZXF1aXJlKCdAYXdzLXNkay9taWRkbGV3YXJlLWhvc3QtaGVhZGVyJyk7XG52YXIgbWlkZGxld2FyZUxvZ2dlciA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL21pZGRsZXdhcmUtbG9nZ2VyJyk7XG52YXIgbWlkZGxld2FyZVJlY3Vyc2lvbkRldGVjdGlvbiA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL21pZGRsZXdhcmUtcmVjdXJzaW9uLWRldGVjdGlvbicpO1xudmFyIG1pZGRsZXdhcmVVc2VyQWdlbnQgPSByZXF1aXJlKCdAYXdzLXNkay9taWRkbGV3YXJlLXVzZXItYWdlbnQnKTtcbnZhciBjb25maWdSZXNvbHZlciA9IHJlcXVpcmUoJ0BzbWl0aHkvY29uZmlnLXJlc29sdmVyJyk7XG52YXIgY29yZSA9IHJlcXVpcmUoJ0BzbWl0aHkvY29yZScpO1xudmFyIHNjaGVtYSA9IHJlcXVpcmUoJ0BzbWl0aHkvY29yZS9zY2hlbWEnKTtcbnZhciBtaWRkbGV3YXJlQ29udGVudExlbmd0aCA9IHJlcXVpcmUoJ0BzbWl0aHkvbWlkZGxld2FyZS1jb250ZW50LWxlbmd0aCcpO1xudmFyIG1pZGRsZXdhcmVFbmRwb2ludCA9IHJlcXVpcmUoJ0BzbWl0aHkvbWlkZGxld2FyZS1lbmRwb2ludCcpO1xudmFyIG1pZGRsZXdhcmVSZXRyeSA9IHJlcXVpcmUoJ0BzbWl0aHkvbWlkZGxld2FyZS1yZXRyeScpO1xudmFyIHNtaXRoeUNsaWVudCA9IHJlcXVpcmUoJ0BzbWl0aHkvc21pdGh5LWNsaWVudCcpO1xudmFyIGh0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSByZXF1aXJlKCcuL2F1dGgvaHR0cEF1dGhTY2hlbWVQcm92aWRlcicpO1xudmFyIHJ1bnRpbWVDb25maWcgPSByZXF1aXJlKCcuL3J1bnRpbWVDb25maWcnKTtcbnZhciByZWdpb25Db25maWdSZXNvbHZlciA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL3JlZ2lvbi1jb25maWctcmVzb2x2ZXInKTtcbnZhciBwcm90b2NvbEh0dHAgPSByZXF1aXJlKCdAc21pdGh5L3Byb3RvY29sLWh0dHAnKTtcbnZhciBzY2hlbWFzXzAgPSByZXF1aXJlKCcuL3NjaGVtYXMvc2NoZW1hc18wJyk7XG52YXIgZXJyb3JzID0gcmVxdWlyZSgnLi9tb2RlbHMvZXJyb3JzJyk7XG52YXIgU2VjcmV0c01hbmFnZXJTZXJ2aWNlRXhjZXB0aW9uID0gcmVxdWlyZSgnLi9tb2RlbHMvU2VjcmV0c01hbmFnZXJTZXJ2aWNlRXhjZXB0aW9uJyk7XG5cbmNvbnN0IHJlc29sdmVDbGllbnRFbmRwb2ludFBhcmFtZXRlcnMgPSAob3B0aW9ucykgPT4ge1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKG9wdGlvbnMsIHtcbiAgICAgICAgdXNlRHVhbHN0YWNrRW5kcG9pbnQ6IG9wdGlvbnMudXNlRHVhbHN0YWNrRW5kcG9pbnQgPz8gZmFsc2UsXG4gICAgICAgIHVzZUZpcHNFbmRwb2ludDogb3B0aW9ucy51c2VGaXBzRW5kcG9pbnQgPz8gZmFsc2UsXG4gICAgICAgIGRlZmF1bHRTaWduaW5nTmFtZTogXCJzZWNyZXRzbWFuYWdlclwiLFxuICAgIH0pO1xufTtcbmNvbnN0IGNvbW1vblBhcmFtcyA9IHtcbiAgICBVc2VGSVBTOiB7IHR5cGU6IFwiYnVpbHRJblBhcmFtc1wiLCBuYW1lOiBcInVzZUZpcHNFbmRwb2ludFwiIH0sXG4gICAgRW5kcG9pbnQ6IHsgdHlwZTogXCJidWlsdEluUGFyYW1zXCIsIG5hbWU6IFwiZW5kcG9pbnRcIiB9LFxuICAgIFJlZ2lvbjogeyB0eXBlOiBcImJ1aWx0SW5QYXJhbXNcIiwgbmFtZTogXCJyZWdpb25cIiB9LFxuICAgIFVzZUR1YWxTdGFjazogeyB0eXBlOiBcImJ1aWx0SW5QYXJhbXNcIiwgbmFtZTogXCJ1c2VEdWFsc3RhY2tFbmRwb2ludFwiIH0sXG59O1xuXG5jb25zdCBnZXRIdHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24gPSAocnVudGltZUNvbmZpZykgPT4ge1xuICAgIGNvbnN0IF9odHRwQXV0aFNjaGVtZXMgPSBydW50aW1lQ29uZmlnLmh0dHBBdXRoU2NoZW1lcztcbiAgICBsZXQgX2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSBydW50aW1lQ29uZmlnLmh0dHBBdXRoU2NoZW1lUHJvdmlkZXI7XG4gICAgbGV0IF9jcmVkZW50aWFscyA9IHJ1bnRpbWVDb25maWcuY3JlZGVudGlhbHM7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc2V0SHR0cEF1dGhTY2hlbWUoaHR0cEF1dGhTY2hlbWUpIHtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gX2h0dHBBdXRoU2NoZW1lcy5maW5kSW5kZXgoKHNjaGVtZSkgPT4gc2NoZW1lLnNjaGVtZUlkID09PSBodHRwQXV0aFNjaGVtZS5zY2hlbWVJZCk7XG4gICAgICAgICAgICBpZiAoaW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgX2h0dHBBdXRoU2NoZW1lcy5wdXNoKGh0dHBBdXRoU2NoZW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIF9odHRwQXV0aFNjaGVtZXMuc3BsaWNlKGluZGV4LCAxLCBodHRwQXV0aFNjaGVtZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGh0dHBBdXRoU2NoZW1lcygpIHtcbiAgICAgICAgICAgIHJldHVybiBfaHR0cEF1dGhTY2hlbWVzO1xuICAgICAgICB9LFxuICAgICAgICBzZXRIdHRwQXV0aFNjaGVtZVByb3ZpZGVyKGh0dHBBdXRoU2NoZW1lUHJvdmlkZXIpIHtcbiAgICAgICAgICAgIF9odHRwQXV0aFNjaGVtZVByb3ZpZGVyID0gaHR0cEF1dGhTY2hlbWVQcm92aWRlcjtcbiAgICAgICAgfSxcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVQcm92aWRlcigpIHtcbiAgICAgICAgICAgIHJldHVybiBfaHR0cEF1dGhTY2hlbWVQcm92aWRlcjtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0Q3JlZGVudGlhbHMoY3JlZGVudGlhbHMpIHtcbiAgICAgICAgICAgIF9jcmVkZW50aWFscyA9IGNyZWRlbnRpYWxzO1xuICAgICAgICB9LFxuICAgICAgICBjcmVkZW50aWFscygpIHtcbiAgICAgICAgICAgIHJldHVybiBfY3JlZGVudGlhbHM7XG4gICAgICAgIH0sXG4gICAgfTtcbn07XG5jb25zdCByZXNvbHZlSHR0cEF1dGhSdW50aW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIGh0dHBBdXRoU2NoZW1lczogY29uZmlnLmh0dHBBdXRoU2NoZW1lcygpLFxuICAgICAgICBodHRwQXV0aFNjaGVtZVByb3ZpZGVyOiBjb25maWcuaHR0cEF1dGhTY2hlbWVQcm92aWRlcigpLFxuICAgICAgICBjcmVkZW50aWFsczogY29uZmlnLmNyZWRlbnRpYWxzKCksXG4gICAgfTtcbn07XG5cbmNvbnN0IHJlc29sdmVSdW50aW1lRXh0ZW5zaW9ucyA9IChydW50aW1lQ29uZmlnLCBleHRlbnNpb25zKSA9PiB7XG4gICAgY29uc3QgZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiA9IE9iamVjdC5hc3NpZ24ocmVnaW9uQ29uZmlnUmVzb2x2ZXIuZ2V0QXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbihydW50aW1lQ29uZmlnKSwgc21pdGh5Q2xpZW50LmdldERlZmF1bHRFeHRlbnNpb25Db25maWd1cmF0aW9uKHJ1bnRpbWVDb25maWcpLCBwcm90b2NvbEh0dHAuZ2V0SHR0cEhhbmRsZXJFeHRlbnNpb25Db25maWd1cmF0aW9uKHJ1bnRpbWVDb25maWcpLCBnZXRIdHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24ocnVudGltZUNvbmZpZykpO1xuICAgIGV4dGVuc2lvbnMuZm9yRWFjaCgoZXh0ZW5zaW9uKSA9PiBleHRlbnNpb24uY29uZmlndXJlKGV4dGVuc2lvbkNvbmZpZ3VyYXRpb24pKTtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihydW50aW1lQ29uZmlnLCByZWdpb25Db25maWdSZXNvbHZlci5yZXNvbHZlQXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbihleHRlbnNpb25Db25maWd1cmF0aW9uKSwgc21pdGh5Q2xpZW50LnJlc29sdmVEZWZhdWx0UnVudGltZUNvbmZpZyhleHRlbnNpb25Db25maWd1cmF0aW9uKSwgcHJvdG9jb2xIdHRwLnJlc29sdmVIdHRwSGFuZGxlclJ1bnRpbWVDb25maWcoZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiksIHJlc29sdmVIdHRwQXV0aFJ1bnRpbWVDb25maWcoZXh0ZW5zaW9uQ29uZmlndXJhdGlvbikpO1xufTtcblxuY2xhc3MgU2VjcmV0c01hbmFnZXJDbGllbnQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ2xpZW50IHtcbiAgICBjb25maWc7XG4gICAgY29uc3RydWN0b3IoLi4uW2NvbmZpZ3VyYXRpb25dKSB7XG4gICAgICAgIGNvbnN0IF9jb25maWdfMCA9IHJ1bnRpbWVDb25maWcuZ2V0UnVudGltZUNvbmZpZyhjb25maWd1cmF0aW9uIHx8IHt9KTtcbiAgICAgICAgc3VwZXIoX2NvbmZpZ18wKTtcbiAgICAgICAgdGhpcy5pbml0Q29uZmlnID0gX2NvbmZpZ18wO1xuICAgICAgICBjb25zdCBfY29uZmlnXzEgPSByZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzKF9jb25maWdfMCk7XG4gICAgICAgIGNvbnN0IF9jb25maWdfMiA9IG1pZGRsZXdhcmVVc2VyQWdlbnQucmVzb2x2ZVVzZXJBZ2VudENvbmZpZyhfY29uZmlnXzEpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzMgPSBtaWRkbGV3YXJlUmV0cnkucmVzb2x2ZVJldHJ5Q29uZmlnKF9jb25maWdfMik7XG4gICAgICAgIGNvbnN0IF9jb25maWdfNCA9IGNvbmZpZ1Jlc29sdmVyLnJlc29sdmVSZWdpb25Db25maWcoX2NvbmZpZ18zKTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ181ID0gbWlkZGxld2FyZUhvc3RIZWFkZXIucmVzb2x2ZUhvc3RIZWFkZXJDb25maWcoX2NvbmZpZ180KTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ182ID0gbWlkZGxld2FyZUVuZHBvaW50LnJlc29sdmVFbmRwb2ludENvbmZpZyhfY29uZmlnXzUpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzcgPSBodHRwQXV0aFNjaGVtZVByb3ZpZGVyLnJlc29sdmVIdHRwQXV0aFNjaGVtZUNvbmZpZyhfY29uZmlnXzYpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzggPSByZXNvbHZlUnVudGltZUV4dGVuc2lvbnMoX2NvbmZpZ183LCBjb25maWd1cmF0aW9uPy5leHRlbnNpb25zIHx8IFtdKTtcbiAgICAgICAgdGhpcy5jb25maWcgPSBfY29uZmlnXzg7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShzY2hlbWEuZ2V0U2NoZW1hU2VyZGVQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKG1pZGRsZXdhcmVVc2VyQWdlbnQuZ2V0VXNlckFnZW50UGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShtaWRkbGV3YXJlUmV0cnkuZ2V0UmV0cnlQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKG1pZGRsZXdhcmVDb250ZW50TGVuZ3RoLmdldENvbnRlbnRMZW5ndGhQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKG1pZGRsZXdhcmVIb3N0SGVhZGVyLmdldEhvc3RIZWFkZXJQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKG1pZGRsZXdhcmVMb2dnZXIuZ2V0TG9nZ2VyUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShtaWRkbGV3YXJlUmVjdXJzaW9uRGV0ZWN0aW9uLmdldFJlY3Vyc2lvbkRldGVjdGlvblBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoY29yZS5nZXRIdHRwQXV0aFNjaGVtZUVuZHBvaW50UnVsZVNldFBsdWdpbih0aGlzLmNvbmZpZywge1xuICAgICAgICAgICAgaHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXI6IGh0dHBBdXRoU2NoZW1lUHJvdmlkZXIuZGVmYXVsdFNlY3JldHNNYW5hZ2VySHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIsXG4gICAgICAgICAgICBpZGVudGl0eVByb3ZpZGVyQ29uZmlnUHJvdmlkZXI6IGFzeW5jIChjb25maWcpID0+IG5ldyBjb3JlLkRlZmF1bHRJZGVudGl0eVByb3ZpZGVyQ29uZmlnKHtcbiAgICAgICAgICAgICAgICBcImF3cy5hdXRoI3NpZ3Y0XCI6IGNvbmZpZy5jcmVkZW50aWFscyxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICB9KSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShjb3JlLmdldEh0dHBTaWduaW5nUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgfVxuICAgIGRlc3Ryb3koKSB7XG4gICAgICAgIHN1cGVyLmRlc3Ryb3koKTtcbiAgICB9XG59XG5cbmNsYXNzIEJhdGNoR2V0U2VjcmV0VmFsdWVDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJzZWNyZXRzbWFuYWdlclwiLCBcIkJhdGNoR2V0U2VjcmV0VmFsdWVcIiwge30pXG4gICAgLm4oXCJTZWNyZXRzTWFuYWdlckNsaWVudFwiLCBcIkJhdGNoR2V0U2VjcmV0VmFsdWVDb21tYW5kXCIpXG4gICAgLnNjKHNjaGVtYXNfMC5CYXRjaEdldFNlY3JldFZhbHVlJClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIENhbmNlbFJvdGF0ZVNlY3JldENvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcInNlY3JldHNtYW5hZ2VyXCIsIFwiQ2FuY2VsUm90YXRlU2VjcmV0XCIsIHt9KVxuICAgIC5uKFwiU2VjcmV0c01hbmFnZXJDbGllbnRcIiwgXCJDYW5jZWxSb3RhdGVTZWNyZXRDb21tYW5kXCIpXG4gICAgLnNjKHNjaGVtYXNfMC5DYW5jZWxSb3RhdGVTZWNyZXQkKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgQ3JlYXRlU2VjcmV0Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwic2VjcmV0c21hbmFnZXJcIiwgXCJDcmVhdGVTZWNyZXRcIiwge30pXG4gICAgLm4oXCJTZWNyZXRzTWFuYWdlckNsaWVudFwiLCBcIkNyZWF0ZVNlY3JldENvbW1hbmRcIilcbiAgICAuc2Moc2NoZW1hc18wLkNyZWF0ZVNlY3JldCQpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZWxldGVSZXNvdXJjZVBvbGljeUNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcInNlY3JldHNtYW5hZ2VyXCIsIFwiRGVsZXRlUmVzb3VyY2VQb2xpY3lcIiwge30pXG4gICAgLm4oXCJTZWNyZXRzTWFuYWdlckNsaWVudFwiLCBcIkRlbGV0ZVJlc291cmNlUG9saWN5Q29tbWFuZFwiKVxuICAgIC5zYyhzY2hlbWFzXzAuRGVsZXRlUmVzb3VyY2VQb2xpY3kkKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgRGVsZXRlU2VjcmV0Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwic2VjcmV0c21hbmFnZXJcIiwgXCJEZWxldGVTZWNyZXRcIiwge30pXG4gICAgLm4oXCJTZWNyZXRzTWFuYWdlckNsaWVudFwiLCBcIkRlbGV0ZVNlY3JldENvbW1hbmRcIilcbiAgICAuc2Moc2NoZW1hc18wLkRlbGV0ZVNlY3JldCQpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZXNjcmliZVNlY3JldENvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcInNlY3JldHNtYW5hZ2VyXCIsIFwiRGVzY3JpYmVTZWNyZXRcIiwge30pXG4gICAgLm4oXCJTZWNyZXRzTWFuYWdlckNsaWVudFwiLCBcIkRlc2NyaWJlU2VjcmV0Q29tbWFuZFwiKVxuICAgIC5zYyhzY2hlbWFzXzAuRGVzY3JpYmVTZWNyZXQkKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgR2V0UmFuZG9tUGFzc3dvcmRDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJzZWNyZXRzbWFuYWdlclwiLCBcIkdldFJhbmRvbVBhc3N3b3JkXCIsIHt9KVxuICAgIC5uKFwiU2VjcmV0c01hbmFnZXJDbGllbnRcIiwgXCJHZXRSYW5kb21QYXNzd29yZENvbW1hbmRcIilcbiAgICAuc2Moc2NoZW1hc18wLkdldFJhbmRvbVBhc3N3b3JkJClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIEdldFJlc291cmNlUG9saWN5Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwic2VjcmV0c21hbmFnZXJcIiwgXCJHZXRSZXNvdXJjZVBvbGljeVwiLCB7fSlcbiAgICAubihcIlNlY3JldHNNYW5hZ2VyQ2xpZW50XCIsIFwiR2V0UmVzb3VyY2VQb2xpY3lDb21tYW5kXCIpXG4gICAgLnNjKHNjaGVtYXNfMC5HZXRSZXNvdXJjZVBvbGljeSQpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBHZXRTZWNyZXRWYWx1ZUNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcInNlY3JldHNtYW5hZ2VyXCIsIFwiR2V0U2VjcmV0VmFsdWVcIiwge30pXG4gICAgLm4oXCJTZWNyZXRzTWFuYWdlckNsaWVudFwiLCBcIkdldFNlY3JldFZhbHVlQ29tbWFuZFwiKVxuICAgIC5zYyhzY2hlbWFzXzAuR2V0U2VjcmV0VmFsdWUkKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgTGlzdFNlY3JldHNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJzZWNyZXRzbWFuYWdlclwiLCBcIkxpc3RTZWNyZXRzXCIsIHt9KVxuICAgIC5uKFwiU2VjcmV0c01hbmFnZXJDbGllbnRcIiwgXCJMaXN0U2VjcmV0c0NvbW1hbmRcIilcbiAgICAuc2Moc2NoZW1hc18wLkxpc3RTZWNyZXRzJClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIExpc3RTZWNyZXRWZXJzaW9uSWRzQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwic2VjcmV0c21hbmFnZXJcIiwgXCJMaXN0U2VjcmV0VmVyc2lvbklkc1wiLCB7fSlcbiAgICAubihcIlNlY3JldHNNYW5hZ2VyQ2xpZW50XCIsIFwiTGlzdFNlY3JldFZlcnNpb25JZHNDb21tYW5kXCIpXG4gICAgLnNjKHNjaGVtYXNfMC5MaXN0U2VjcmV0VmVyc2lvbklkcyQpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBQdXRSZXNvdXJjZVBvbGljeUNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcInNlY3JldHNtYW5hZ2VyXCIsIFwiUHV0UmVzb3VyY2VQb2xpY3lcIiwge30pXG4gICAgLm4oXCJTZWNyZXRzTWFuYWdlckNsaWVudFwiLCBcIlB1dFJlc291cmNlUG9saWN5Q29tbWFuZFwiKVxuICAgIC5zYyhzY2hlbWFzXzAuUHV0UmVzb3VyY2VQb2xpY3kkKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgUHV0U2VjcmV0VmFsdWVDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJzZWNyZXRzbWFuYWdlclwiLCBcIlB1dFNlY3JldFZhbHVlXCIsIHt9KVxuICAgIC5uKFwiU2VjcmV0c01hbmFnZXJDbGllbnRcIiwgXCJQdXRTZWNyZXRWYWx1ZUNvbW1hbmRcIilcbiAgICAuc2Moc2NoZW1hc18wLlB1dFNlY3JldFZhbHVlJClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFJlbW92ZVJlZ2lvbnNGcm9tUmVwbGljYXRpb25Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJzZWNyZXRzbWFuYWdlclwiLCBcIlJlbW92ZVJlZ2lvbnNGcm9tUmVwbGljYXRpb25cIiwge30pXG4gICAgLm4oXCJTZWNyZXRzTWFuYWdlckNsaWVudFwiLCBcIlJlbW92ZVJlZ2lvbnNGcm9tUmVwbGljYXRpb25Db21tYW5kXCIpXG4gICAgLnNjKHNjaGVtYXNfMC5SZW1vdmVSZWdpb25zRnJvbVJlcGxpY2F0aW9uJClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFJlcGxpY2F0ZVNlY3JldFRvUmVnaW9uc0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcInNlY3JldHNtYW5hZ2VyXCIsIFwiUmVwbGljYXRlU2VjcmV0VG9SZWdpb25zXCIsIHt9KVxuICAgIC5uKFwiU2VjcmV0c01hbmFnZXJDbGllbnRcIiwgXCJSZXBsaWNhdGVTZWNyZXRUb1JlZ2lvbnNDb21tYW5kXCIpXG4gICAgLnNjKHNjaGVtYXNfMC5SZXBsaWNhdGVTZWNyZXRUb1JlZ2lvbnMkKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgUmVzdG9yZVNlY3JldENvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcInNlY3JldHNtYW5hZ2VyXCIsIFwiUmVzdG9yZVNlY3JldFwiLCB7fSlcbiAgICAubihcIlNlY3JldHNNYW5hZ2VyQ2xpZW50XCIsIFwiUmVzdG9yZVNlY3JldENvbW1hbmRcIilcbiAgICAuc2Moc2NoZW1hc18wLlJlc3RvcmVTZWNyZXQkKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgUm90YXRlU2VjcmV0Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwic2VjcmV0c21hbmFnZXJcIiwgXCJSb3RhdGVTZWNyZXRcIiwge30pXG4gICAgLm4oXCJTZWNyZXRzTWFuYWdlckNsaWVudFwiLCBcIlJvdGF0ZVNlY3JldENvbW1hbmRcIilcbiAgICAuc2Moc2NoZW1hc18wLlJvdGF0ZVNlY3JldCQpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBTdG9wUmVwbGljYXRpb25Ub1JlcGxpY2FDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJzZWNyZXRzbWFuYWdlclwiLCBcIlN0b3BSZXBsaWNhdGlvblRvUmVwbGljYVwiLCB7fSlcbiAgICAubihcIlNlY3JldHNNYW5hZ2VyQ2xpZW50XCIsIFwiU3RvcFJlcGxpY2F0aW9uVG9SZXBsaWNhQ29tbWFuZFwiKVxuICAgIC5zYyhzY2hlbWFzXzAuU3RvcFJlcGxpY2F0aW9uVG9SZXBsaWNhJClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFRhZ1Jlc291cmNlQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwic2VjcmV0c21hbmFnZXJcIiwgXCJUYWdSZXNvdXJjZVwiLCB7fSlcbiAgICAubihcIlNlY3JldHNNYW5hZ2VyQ2xpZW50XCIsIFwiVGFnUmVzb3VyY2VDb21tYW5kXCIpXG4gICAgLnNjKHNjaGVtYXNfMC5UYWdSZXNvdXJjZSQpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBVbnRhZ1Jlc291cmNlQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwic2VjcmV0c21hbmFnZXJcIiwgXCJVbnRhZ1Jlc291cmNlXCIsIHt9KVxuICAgIC5uKFwiU2VjcmV0c01hbmFnZXJDbGllbnRcIiwgXCJVbnRhZ1Jlc291cmNlQ29tbWFuZFwiKVxuICAgIC5zYyhzY2hlbWFzXzAuVW50YWdSZXNvdXJjZSQpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBVcGRhdGVTZWNyZXRDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJzZWNyZXRzbWFuYWdlclwiLCBcIlVwZGF0ZVNlY3JldFwiLCB7fSlcbiAgICAubihcIlNlY3JldHNNYW5hZ2VyQ2xpZW50XCIsIFwiVXBkYXRlU2VjcmV0Q29tbWFuZFwiKVxuICAgIC5zYyhzY2hlbWFzXzAuVXBkYXRlU2VjcmV0JClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFVwZGF0ZVNlY3JldFZlcnNpb25TdGFnZUNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcInNlY3JldHNtYW5hZ2VyXCIsIFwiVXBkYXRlU2VjcmV0VmVyc2lvblN0YWdlXCIsIHt9KVxuICAgIC5uKFwiU2VjcmV0c01hbmFnZXJDbGllbnRcIiwgXCJVcGRhdGVTZWNyZXRWZXJzaW9uU3RhZ2VDb21tYW5kXCIpXG4gICAgLnNjKHNjaGVtYXNfMC5VcGRhdGVTZWNyZXRWZXJzaW9uU3RhZ2UkKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgVmFsaWRhdGVSZXNvdXJjZVBvbGljeUNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcInNlY3JldHNtYW5hZ2VyXCIsIFwiVmFsaWRhdGVSZXNvdXJjZVBvbGljeVwiLCB7fSlcbiAgICAubihcIlNlY3JldHNNYW5hZ2VyQ2xpZW50XCIsIFwiVmFsaWRhdGVSZXNvdXJjZVBvbGljeUNvbW1hbmRcIilcbiAgICAuc2Moc2NoZW1hc18wLlZhbGlkYXRlUmVzb3VyY2VQb2xpY3kkKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY29uc3QgcGFnaW5hdGVCYXRjaEdldFNlY3JldFZhbHVlID0gY29yZS5jcmVhdGVQYWdpbmF0b3IoU2VjcmV0c01hbmFnZXJDbGllbnQsIEJhdGNoR2V0U2VjcmV0VmFsdWVDb21tYW5kLCBcIk5leHRUb2tlblwiLCBcIk5leHRUb2tlblwiLCBcIk1heFJlc3VsdHNcIik7XG5cbmNvbnN0IHBhZ2luYXRlTGlzdFNlY3JldHMgPSBjb3JlLmNyZWF0ZVBhZ2luYXRvcihTZWNyZXRzTWFuYWdlckNsaWVudCwgTGlzdFNlY3JldHNDb21tYW5kLCBcIk5leHRUb2tlblwiLCBcIk5leHRUb2tlblwiLCBcIk1heFJlc3VsdHNcIik7XG5cbmNvbnN0IHBhZ2luYXRlTGlzdFNlY3JldFZlcnNpb25JZHMgPSBjb3JlLmNyZWF0ZVBhZ2luYXRvcihTZWNyZXRzTWFuYWdlckNsaWVudCwgTGlzdFNlY3JldFZlcnNpb25JZHNDb21tYW5kLCBcIk5leHRUb2tlblwiLCBcIk5leHRUb2tlblwiLCBcIk1heFJlc3VsdHNcIik7XG5cbmNvbnN0IGNvbW1hbmRzID0ge1xuICAgIEJhdGNoR2V0U2VjcmV0VmFsdWVDb21tYW5kLFxuICAgIENhbmNlbFJvdGF0ZVNlY3JldENvbW1hbmQsXG4gICAgQ3JlYXRlU2VjcmV0Q29tbWFuZCxcbiAgICBEZWxldGVSZXNvdXJjZVBvbGljeUNvbW1hbmQsXG4gICAgRGVsZXRlU2VjcmV0Q29tbWFuZCxcbiAgICBEZXNjcmliZVNlY3JldENvbW1hbmQsXG4gICAgR2V0UmFuZG9tUGFzc3dvcmRDb21tYW5kLFxuICAgIEdldFJlc291cmNlUG9saWN5Q29tbWFuZCxcbiAgICBHZXRTZWNyZXRWYWx1ZUNvbW1hbmQsXG4gICAgTGlzdFNlY3JldHNDb21tYW5kLFxuICAgIExpc3RTZWNyZXRWZXJzaW9uSWRzQ29tbWFuZCxcbiAgICBQdXRSZXNvdXJjZVBvbGljeUNvbW1hbmQsXG4gICAgUHV0U2VjcmV0VmFsdWVDb21tYW5kLFxuICAgIFJlbW92ZVJlZ2lvbnNGcm9tUmVwbGljYXRpb25Db21tYW5kLFxuICAgIFJlcGxpY2F0ZVNlY3JldFRvUmVnaW9uc0NvbW1hbmQsXG4gICAgUmVzdG9yZVNlY3JldENvbW1hbmQsXG4gICAgUm90YXRlU2VjcmV0Q29tbWFuZCxcbiAgICBTdG9wUmVwbGljYXRpb25Ub1JlcGxpY2FDb21tYW5kLFxuICAgIFRhZ1Jlc291cmNlQ29tbWFuZCxcbiAgICBVbnRhZ1Jlc291cmNlQ29tbWFuZCxcbiAgICBVcGRhdGVTZWNyZXRDb21tYW5kLFxuICAgIFVwZGF0ZVNlY3JldFZlcnNpb25TdGFnZUNvbW1hbmQsXG4gICAgVmFsaWRhdGVSZXNvdXJjZVBvbGljeUNvbW1hbmQsXG59O1xuY29uc3QgcGFnaW5hdG9ycyA9IHtcbiAgICBwYWdpbmF0ZUJhdGNoR2V0U2VjcmV0VmFsdWUsXG4gICAgcGFnaW5hdGVMaXN0U2VjcmV0cyxcbiAgICBwYWdpbmF0ZUxpc3RTZWNyZXRWZXJzaW9uSWRzLFxufTtcbmNsYXNzIFNlY3JldHNNYW5hZ2VyIGV4dGVuZHMgU2VjcmV0c01hbmFnZXJDbGllbnQge1xufVxuc21pdGh5Q2xpZW50LmNyZWF0ZUFnZ3JlZ2F0ZWRDbGllbnQoY29tbWFuZHMsIFNlY3JldHNNYW5hZ2VyLCB7IHBhZ2luYXRvcnMgfSk7XG5cbmNvbnN0IEZpbHRlck5hbWVTdHJpbmdUeXBlID0ge1xuICAgIGFsbDogXCJhbGxcIixcbiAgICBkZXNjcmlwdGlvbjogXCJkZXNjcmlwdGlvblwiLFxuICAgIG5hbWU6IFwibmFtZVwiLFxuICAgIG93bmluZ19zZXJ2aWNlOiBcIm93bmluZy1zZXJ2aWNlXCIsXG4gICAgcHJpbWFyeV9yZWdpb246IFwicHJpbWFyeS1yZWdpb25cIixcbiAgICB0YWdfa2V5OiBcInRhZy1rZXlcIixcbiAgICB0YWdfdmFsdWU6IFwidGFnLXZhbHVlXCIsXG59O1xuY29uc3QgU3RhdHVzVHlwZSA9IHtcbiAgICBGYWlsZWQ6IFwiRmFpbGVkXCIsXG4gICAgSW5Qcm9ncmVzczogXCJJblByb2dyZXNzXCIsXG4gICAgSW5TeW5jOiBcIkluU3luY1wiLFxufTtcbmNvbnN0IFNvcnRCeVR5cGUgPSB7XG4gICAgY3JlYXRlZF9kYXRlOiBcImNyZWF0ZWQtZGF0ZVwiLFxuICAgIGxhc3RfYWNjZXNzZWRfZGF0ZTogXCJsYXN0LWFjY2Vzc2VkLWRhdGVcIixcbiAgICBsYXN0X2NoYW5nZWRfZGF0ZTogXCJsYXN0LWNoYW5nZWQtZGF0ZVwiLFxuICAgIG5hbWU6IFwibmFtZVwiLFxufTtcbmNvbnN0IFNvcnRPcmRlclR5cGUgPSB7XG4gICAgYXNjOiBcImFzY1wiLFxuICAgIGRlc2M6IFwiZGVzY1wiLFxufTtcblxuZXhwb3J0cy4kQ29tbWFuZCA9IHNtaXRoeUNsaWVudC5Db21tYW5kO1xuZXhwb3J0cy5fX0NsaWVudCA9IHNtaXRoeUNsaWVudC5DbGllbnQ7XG5leHBvcnRzLlNlY3JldHNNYW5hZ2VyU2VydmljZUV4Y2VwdGlvbiA9IFNlY3JldHNNYW5hZ2VyU2VydmljZUV4Y2VwdGlvbi5TZWNyZXRzTWFuYWdlclNlcnZpY2VFeGNlcHRpb247XG5leHBvcnRzLkJhdGNoR2V0U2VjcmV0VmFsdWVDb21tYW5kID0gQmF0Y2hHZXRTZWNyZXRWYWx1ZUNvbW1hbmQ7XG5leHBvcnRzLkNhbmNlbFJvdGF0ZVNlY3JldENvbW1hbmQgPSBDYW5jZWxSb3RhdGVTZWNyZXRDb21tYW5kO1xuZXhwb3J0cy5DcmVhdGVTZWNyZXRDb21tYW5kID0gQ3JlYXRlU2VjcmV0Q29tbWFuZDtcbmV4cG9ydHMuRGVsZXRlUmVzb3VyY2VQb2xpY3lDb21tYW5kID0gRGVsZXRlUmVzb3VyY2VQb2xpY3lDb21tYW5kO1xuZXhwb3J0cy5EZWxldGVTZWNyZXRDb21tYW5kID0gRGVsZXRlU2VjcmV0Q29tbWFuZDtcbmV4cG9ydHMuRGVzY3JpYmVTZWNyZXRDb21tYW5kID0gRGVzY3JpYmVTZWNyZXRDb21tYW5kO1xuZXhwb3J0cy5GaWx0ZXJOYW1lU3RyaW5nVHlwZSA9IEZpbHRlck5hbWVTdHJpbmdUeXBlO1xuZXhwb3J0cy5HZXRSYW5kb21QYXNzd29yZENvbW1hbmQgPSBHZXRSYW5kb21QYXNzd29yZENvbW1hbmQ7XG5leHBvcnRzLkdldFJlc291cmNlUG9saWN5Q29tbWFuZCA9IEdldFJlc291cmNlUG9saWN5Q29tbWFuZDtcbmV4cG9ydHMuR2V0U2VjcmV0VmFsdWVDb21tYW5kID0gR2V0U2VjcmV0VmFsdWVDb21tYW5kO1xuZXhwb3J0cy5MaXN0U2VjcmV0VmVyc2lvbklkc0NvbW1hbmQgPSBMaXN0U2VjcmV0VmVyc2lvbklkc0NvbW1hbmQ7XG5leHBvcnRzLkxpc3RTZWNyZXRzQ29tbWFuZCA9IExpc3RTZWNyZXRzQ29tbWFuZDtcbmV4cG9ydHMuUHV0UmVzb3VyY2VQb2xpY3lDb21tYW5kID0gUHV0UmVzb3VyY2VQb2xpY3lDb21tYW5kO1xuZXhwb3J0cy5QdXRTZWNyZXRWYWx1ZUNvbW1hbmQgPSBQdXRTZWNyZXRWYWx1ZUNvbW1hbmQ7XG5leHBvcnRzLlJlbW92ZVJlZ2lvbnNGcm9tUmVwbGljYXRpb25Db21tYW5kID0gUmVtb3ZlUmVnaW9uc0Zyb21SZXBsaWNhdGlvbkNvbW1hbmQ7XG5leHBvcnRzLlJlcGxpY2F0ZVNlY3JldFRvUmVnaW9uc0NvbW1hbmQgPSBSZXBsaWNhdGVTZWNyZXRUb1JlZ2lvbnNDb21tYW5kO1xuZXhwb3J0cy5SZXN0b3JlU2VjcmV0Q29tbWFuZCA9IFJlc3RvcmVTZWNyZXRDb21tYW5kO1xuZXhwb3J0cy5Sb3RhdGVTZWNyZXRDb21tYW5kID0gUm90YXRlU2VjcmV0Q29tbWFuZDtcbmV4cG9ydHMuU2VjcmV0c01hbmFnZXIgPSBTZWNyZXRzTWFuYWdlcjtcbmV4cG9ydHMuU2VjcmV0c01hbmFnZXJDbGllbnQgPSBTZWNyZXRzTWFuYWdlckNsaWVudDtcbmV4cG9ydHMuU29ydEJ5VHlwZSA9IFNvcnRCeVR5cGU7XG5leHBvcnRzLlNvcnRPcmRlclR5cGUgPSBTb3J0T3JkZXJUeXBlO1xuZXhwb3J0cy5TdGF0dXNUeXBlID0gU3RhdHVzVHlwZTtcbmV4cG9ydHMuU3RvcFJlcGxpY2F0aW9uVG9SZXBsaWNhQ29tbWFuZCA9IFN0b3BSZXBsaWNhdGlvblRvUmVwbGljYUNvbW1hbmQ7XG5leHBvcnRzLlRhZ1Jlc291cmNlQ29tbWFuZCA9IFRhZ1Jlc291cmNlQ29tbWFuZDtcbmV4cG9ydHMuVW50YWdSZXNvdXJjZUNvbW1hbmQgPSBVbnRhZ1Jlc291cmNlQ29tbWFuZDtcbmV4cG9ydHMuVXBkYXRlU2VjcmV0Q29tbWFuZCA9IFVwZGF0ZVNlY3JldENvbW1hbmQ7XG5leHBvcnRzLlVwZGF0ZVNlY3JldFZlcnNpb25TdGFnZUNvbW1hbmQgPSBVcGRhdGVTZWNyZXRWZXJzaW9uU3RhZ2VDb21tYW5kO1xuZXhwb3J0cy5WYWxpZGF0ZVJlc291cmNlUG9saWN5Q29tbWFuZCA9IFZhbGlkYXRlUmVzb3VyY2VQb2xpY3lDb21tYW5kO1xuZXhwb3J0cy5wYWdpbmF0ZUJhdGNoR2V0U2VjcmV0VmFsdWUgPSBwYWdpbmF0ZUJhdGNoR2V0U2VjcmV0VmFsdWU7XG5leHBvcnRzLnBhZ2luYXRlTGlzdFNlY3JldFZlcnNpb25JZHMgPSBwYWdpbmF0ZUxpc3RTZWNyZXRWZXJzaW9uSWRzO1xuZXhwb3J0cy5wYWdpbmF0ZUxpc3RTZWNyZXRzID0gcGFnaW5hdGVMaXN0U2VjcmV0cztcbk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzY2hlbWFzXzAsICdfX3Byb3RvX18nKSAmJlxuICAgICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXhwb3J0cywgJ19fcHJvdG9fXycpICYmXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX3Byb3RvX18nLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIHZhbHVlOiBzY2hlbWFzXzBbJ19fcHJvdG9fXyddXG4gICAgfSk7XG5cbk9iamVjdC5rZXlzKHNjaGVtYXNfMCkuZm9yRWFjaChmdW5jdGlvbiAoaykge1xuICAgIGlmIChrICE9PSAnZGVmYXVsdCcgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChleHBvcnRzLCBrKSkgZXhwb3J0c1trXSA9IHNjaGVtYXNfMFtrXTtcbn0pO1xuT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGVycm9ycywgJ19fcHJvdG9fXycpICYmXG4gICAgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChleHBvcnRzLCAnX19wcm90b19fJykgJiZcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fcHJvdG9fXycsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgdmFsdWU6IGVycm9yc1snX19wcm90b19fJ11cbiAgICB9KTtcblxuT2JqZWN0LmtleXMoZXJyb3JzKS5mb3JFYWNoKGZ1bmN0aW9uIChrKSB7XG4gICAgaWYgKGsgIT09ICdkZWZhdWx0JyAmJiAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGV4cG9ydHMsIGspKSBleHBvcnRzW2tdID0gZXJyb3JzW2tdO1xufSk7XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLnJlc29sdmVIdHRwQXV0aFNjaGVtZUNvbmZpZyA9IGV4cG9ydHMuZGVmYXVsdExhbWJkYUh0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSBleHBvcnRzLmRlZmF1bHRMYW1iZGFIdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlciA9IHZvaWQgMDtcbmNvbnN0IGNvcmVfMSA9IHJlcXVpcmUoXCJAYXdzLXNkay9jb3JlXCIpO1xuY29uc3QgdXRpbF9taWRkbGV3YXJlXzEgPSByZXF1aXJlKFwiQHNtaXRoeS91dGlsLW1pZGRsZXdhcmVcIik7XG5jb25zdCBkZWZhdWx0TGFtYmRhSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIgPSBhc3luYyAoY29uZmlnLCBjb250ZXh0LCBpbnB1dCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIG9wZXJhdGlvbjogKDAsIHV0aWxfbWlkZGxld2FyZV8xLmdldFNtaXRoeUNvbnRleHQpKGNvbnRleHQpLm9wZXJhdGlvbixcbiAgICAgICAgcmVnaW9uOiAoYXdhaXQgKDAsIHV0aWxfbWlkZGxld2FyZV8xLm5vcm1hbGl6ZVByb3ZpZGVyKShjb25maWcucmVnaW9uKSgpKSB8fFxuICAgICAgICAgICAgKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJleHBlY3RlZCBgcmVnaW9uYCB0byBiZSBjb25maWd1cmVkIGZvciBgYXdzLmF1dGgjc2lndjRgXCIpO1xuICAgICAgICAgICAgfSkoKSxcbiAgICB9O1xufTtcbmV4cG9ydHMuZGVmYXVsdExhbWJkYUh0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyID0gZGVmYXVsdExhbWJkYUh0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyO1xuZnVuY3Rpb24gY3JlYXRlQXdzQXV0aFNpZ3Y0SHR0cEF1dGhPcHRpb24oYXV0aFBhcmFtZXRlcnMpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBzY2hlbWVJZDogXCJhd3MuYXV0aCNzaWd2NFwiLFxuICAgICAgICBzaWduaW5nUHJvcGVydGllczoge1xuICAgICAgICAgICAgbmFtZTogXCJsYW1iZGFcIixcbiAgICAgICAgICAgIHJlZ2lvbjogYXV0aFBhcmFtZXRlcnMucmVnaW9uLFxuICAgICAgICB9LFxuICAgICAgICBwcm9wZXJ0aWVzRXh0cmFjdG9yOiAoY29uZmlnLCBjb250ZXh0KSA9PiAoe1xuICAgICAgICAgICAgc2lnbmluZ1Byb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICBjb25maWcsXG4gICAgICAgICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pLFxuICAgIH07XG59XG5jb25zdCBkZWZhdWx0TGFtYmRhSHR0cEF1dGhTY2hlbWVQcm92aWRlciA9IChhdXRoUGFyYW1ldGVycykgPT4ge1xuICAgIGNvbnN0IG9wdGlvbnMgPSBbXTtcbiAgICBzd2l0Y2ggKGF1dGhQYXJhbWV0ZXJzLm9wZXJhdGlvbikge1xuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICBvcHRpb25zLnB1c2goY3JlYXRlQXdzQXV0aFNpZ3Y0SHR0cEF1dGhPcHRpb24oYXV0aFBhcmFtZXRlcnMpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gb3B0aW9ucztcbn07XG5leHBvcnRzLmRlZmF1bHRMYW1iZGFIdHRwQXV0aFNjaGVtZVByb3ZpZGVyID0gZGVmYXVsdExhbWJkYUh0dHBBdXRoU2NoZW1lUHJvdmlkZXI7XG5jb25zdCByZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWcgPSAoY29uZmlnKSA9PiB7XG4gICAgY29uc3QgY29uZmlnXzAgPSAoMCwgY29yZV8xLnJlc29sdmVBd3NTZGtTaWdWNENvbmZpZykoY29uZmlnKTtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihjb25maWdfMCwge1xuICAgICAgICBhdXRoU2NoZW1lUHJlZmVyZW5jZTogKDAsIHV0aWxfbWlkZGxld2FyZV8xLm5vcm1hbGl6ZVByb3ZpZGVyKShjb25maWcuYXV0aFNjaGVtZVByZWZlcmVuY2UgPz8gW10pLFxuICAgIH0pO1xufTtcbmV4cG9ydHMucmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnID0gcmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnO1xuIiwgIntcbiAgXCJuYW1lXCI6IFwiQGF3cy1zZGsvY2xpZW50LWxhbWJkYVwiLFxuICBcImRlc2NyaXB0aW9uXCI6IFwiQVdTIFNESyBmb3IgSmF2YVNjcmlwdCBMYW1iZGEgQ2xpZW50IGZvciBOb2RlLmpzLCBCcm93c2VyIGFuZCBSZWFjdCBOYXRpdmVcIixcbiAgXCJ2ZXJzaW9uXCI6IFwiMy45NTIuMFwiLFxuICBcInNjcmlwdHNcIjoge1xuICAgIFwiYnVpbGRcIjogXCJjb25jdXJyZW50bHkgJ3lhcm46YnVpbGQ6Y2pzJyAneWFybjpidWlsZDplcycgJ3lhcm46YnVpbGQ6dHlwZXMnXCIsXG4gICAgXCJidWlsZDpjanNcIjogXCJub2RlIC4uLy4uL3NjcmlwdHMvY29tcGlsYXRpb24vaW5saW5lIGNsaWVudC1sYW1iZGFcIixcbiAgICBcImJ1aWxkOmVzXCI6IFwidHNjIC1wIHRzY29uZmlnLmVzLmpzb25cIixcbiAgICBcImJ1aWxkOmluY2x1ZGU6ZGVwc1wiOiBcImxlcm5hIHJ1biAtLXNjb3BlICRucG1fcGFja2FnZV9uYW1lIC0taW5jbHVkZS1kZXBlbmRlbmNpZXMgYnVpbGRcIixcbiAgICBcImJ1aWxkOnR5cGVzXCI6IFwidHNjIC1wIHRzY29uZmlnLnR5cGVzLmpzb25cIixcbiAgICBcImJ1aWxkOnR5cGVzOmRvd25sZXZlbFwiOiBcImRvd25sZXZlbC1kdHMgZGlzdC10eXBlcyBkaXN0LXR5cGVzL3RzMy40XCIsXG4gICAgXCJjbGVhblwiOiBcInJpbXJhZiAuL2Rpc3QtKiAmJiByaW1yYWYgKi50c2J1aWxkaW5mb1wiLFxuICAgIFwiZXh0cmFjdDpkb2NzXCI6IFwiYXBpLWV4dHJhY3RvciBydW4gLS1sb2NhbFwiLFxuICAgIFwiZ2VuZXJhdGU6Y2xpZW50XCI6IFwibm9kZSAuLi8uLi9zY3JpcHRzL2dlbmVyYXRlLWNsaWVudHMvc2luZ2xlLXNlcnZpY2UgLS1zb2xvIGxhbWJkYVwiLFxuICAgIFwidGVzdDppbmRleFwiOiBcInRzYyAtLW5vRW1pdCAuL3Rlc3QvaW5kZXgtdHlwZXMudHMgJiYgbm9kZSAuL3Rlc3QvaW5kZXgtb2JqZWN0cy5zcGVjLm1qc1wiXG4gIH0sXG4gIFwibWFpblwiOiBcIi4vZGlzdC1janMvaW5kZXguanNcIixcbiAgXCJ0eXBlc1wiOiBcIi4vZGlzdC10eXBlcy9pbmRleC5kLnRzXCIsXG4gIFwibW9kdWxlXCI6IFwiLi9kaXN0LWVzL2luZGV4LmpzXCIsXG4gIFwic2lkZUVmZmVjdHNcIjogZmFsc2UsXG4gIFwiZGVwZW5kZW5jaWVzXCI6IHtcbiAgICBcIkBhd3MtY3J5cHRvL3NoYTI1Ni1icm93c2VyXCI6IFwiNS4yLjBcIixcbiAgICBcIkBhd3MtY3J5cHRvL3NoYTI1Ni1qc1wiOiBcIjUuMi4wXCIsXG4gICAgXCJAYXdzLXNkay9jb3JlXCI6IFwiMy45NDcuMFwiLFxuICAgIFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlXCI6IFwiMy45NTIuMFwiLFxuICAgIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1ob3N0LWhlYWRlclwiOiBcIjMuOTM2LjBcIixcbiAgICBcIkBhd3Mtc2RrL21pZGRsZXdhcmUtbG9nZ2VyXCI6IFwiMy45MzYuMFwiLFxuICAgIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1yZWN1cnNpb24tZGV0ZWN0aW9uXCI6IFwiMy45NDguMFwiLFxuICAgIFwiQGF3cy1zZGsvbWlkZGxld2FyZS11c2VyLWFnZW50XCI6IFwiMy45NDcuMFwiLFxuICAgIFwiQGF3cy1zZGsvcmVnaW9uLWNvbmZpZy1yZXNvbHZlclwiOiBcIjMuOTM2LjBcIixcbiAgICBcIkBhd3Mtc2RrL3R5cGVzXCI6IFwiMy45MzYuMFwiLFxuICAgIFwiQGF3cy1zZGsvdXRpbC1lbmRwb2ludHNcIjogXCIzLjkzNi4wXCIsXG4gICAgXCJAYXdzLXNkay91dGlsLXVzZXItYWdlbnQtYnJvd3NlclwiOiBcIjMuOTM2LjBcIixcbiAgICBcIkBhd3Mtc2RrL3V0aWwtdXNlci1hZ2VudC1ub2RlXCI6IFwiMy45NDcuMFwiLFxuICAgIFwiQHNtaXRoeS9jb25maWctcmVzb2x2ZXJcIjogXCJeNC40LjNcIixcbiAgICBcIkBzbWl0aHkvY29yZVwiOiBcIl4zLjE4LjdcIixcbiAgICBcIkBzbWl0aHkvZXZlbnRzdHJlYW0tc2VyZGUtYnJvd3NlclwiOiBcIl40LjIuNVwiLFxuICAgIFwiQHNtaXRoeS9ldmVudHN0cmVhbS1zZXJkZS1jb25maWctcmVzb2x2ZXJcIjogXCJeNC4zLjVcIixcbiAgICBcIkBzbWl0aHkvZXZlbnRzdHJlYW0tc2VyZGUtbm9kZVwiOiBcIl40LjIuNVwiLFxuICAgIFwiQHNtaXRoeS9mZXRjaC1odHRwLWhhbmRsZXJcIjogXCJeNS4zLjZcIixcbiAgICBcIkBzbWl0aHkvaGFzaC1ub2RlXCI6IFwiXjQuMi41XCIsXG4gICAgXCJAc21pdGh5L2ludmFsaWQtZGVwZW5kZW5jeVwiOiBcIl40LjIuNVwiLFxuICAgIFwiQHNtaXRoeS9taWRkbGV3YXJlLWNvbnRlbnQtbGVuZ3RoXCI6IFwiXjQuMi41XCIsXG4gICAgXCJAc21pdGh5L21pZGRsZXdhcmUtZW5kcG9pbnRcIjogXCJeNC4zLjE0XCIsXG4gICAgXCJAc21pdGh5L21pZGRsZXdhcmUtcmV0cnlcIjogXCJeNC40LjE0XCIsXG4gICAgXCJAc21pdGh5L21pZGRsZXdhcmUtc2VyZGVcIjogXCJeNC4yLjZcIixcbiAgICBcIkBzbWl0aHkvbWlkZGxld2FyZS1zdGFja1wiOiBcIl40LjIuNVwiLFxuICAgIFwiQHNtaXRoeS9ub2RlLWNvbmZpZy1wcm92aWRlclwiOiBcIl40LjMuNVwiLFxuICAgIFwiQHNtaXRoeS9ub2RlLWh0dHAtaGFuZGxlclwiOiBcIl40LjQuNVwiLFxuICAgIFwiQHNtaXRoeS9wcm90b2NvbC1odHRwXCI6IFwiXjUuMy41XCIsXG4gICAgXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjogXCJeNC45LjEwXCIsXG4gICAgXCJAc21pdGh5L3R5cGVzXCI6IFwiXjQuOS4wXCIsXG4gICAgXCJAc21pdGh5L3VybC1wYXJzZXJcIjogXCJeNC4yLjVcIixcbiAgICBcIkBzbWl0aHkvdXRpbC1iYXNlNjRcIjogXCJeNC4zLjBcIixcbiAgICBcIkBzbWl0aHkvdXRpbC1ib2R5LWxlbmd0aC1icm93c2VyXCI6IFwiXjQuMi4wXCIsXG4gICAgXCJAc21pdGh5L3V0aWwtYm9keS1sZW5ndGgtbm9kZVwiOiBcIl40LjIuMVwiLFxuICAgIFwiQHNtaXRoeS91dGlsLWRlZmF1bHRzLW1vZGUtYnJvd3NlclwiOiBcIl40LjMuMTNcIixcbiAgICBcIkBzbWl0aHkvdXRpbC1kZWZhdWx0cy1tb2RlLW5vZGVcIjogXCJeNC4yLjE2XCIsXG4gICAgXCJAc21pdGh5L3V0aWwtZW5kcG9pbnRzXCI6IFwiXjMuMi41XCIsXG4gICAgXCJAc21pdGh5L3V0aWwtbWlkZGxld2FyZVwiOiBcIl40LjIuNVwiLFxuICAgIFwiQHNtaXRoeS91dGlsLXJldHJ5XCI6IFwiXjQuMi41XCIsXG4gICAgXCJAc21pdGh5L3V0aWwtc3RyZWFtXCI6IFwiXjQuNS42XCIsXG4gICAgXCJAc21pdGh5L3V0aWwtdXRmOFwiOiBcIl40LjIuMFwiLFxuICAgIFwiQHNtaXRoeS91dGlsLXdhaXRlclwiOiBcIl40LjIuNVwiLFxuICAgIFwidHNsaWJcIjogXCJeMi42LjJcIlxuICB9LFxuICBcImRldkRlcGVuZGVuY2llc1wiOiB7XG4gICAgXCJAdHNjb25maWcvbm9kZTE4XCI6IFwiMTguMi40XCIsXG4gICAgXCJAdHlwZXMvbm9kZVwiOiBcIl4xOC4xOS42OVwiLFxuICAgIFwiY29uY3VycmVudGx5XCI6IFwiNy4wLjBcIixcbiAgICBcImRvd25sZXZlbC1kdHNcIjogXCIwLjEwLjFcIixcbiAgICBcInJpbXJhZlwiOiBcIjMuMC4yXCIsXG4gICAgXCJ0eXBlc2NyaXB0XCI6IFwifjUuOC4zXCJcbiAgfSxcbiAgXCJlbmdpbmVzXCI6IHtcbiAgICBcIm5vZGVcIjogXCI+PTE4LjAuMFwiXG4gIH0sXG4gIFwidHlwZXNWZXJzaW9uc1wiOiB7XG4gICAgXCI8NC4wXCI6IHtcbiAgICAgIFwiZGlzdC10eXBlcy8qXCI6IFtcbiAgICAgICAgXCJkaXN0LXR5cGVzL3RzMy40LypcIlxuICAgICAgXVxuICAgIH1cbiAgfSxcbiAgXCJmaWxlc1wiOiBbXG4gICAgXCJkaXN0LSovKipcIlxuICBdLFxuICBcImF1dGhvclwiOiB7XG4gICAgXCJuYW1lXCI6IFwiQVdTIFNESyBmb3IgSmF2YVNjcmlwdCBUZWFtXCIsXG4gICAgXCJ1cmxcIjogXCJodHRwczovL2F3cy5hbWF6b24uY29tL2phdmFzY3JpcHQvXCJcbiAgfSxcbiAgXCJsaWNlbnNlXCI6IFwiQXBhY2hlLTIuMFwiLFxuICBcImJyb3dzZXJcIjoge1xuICAgIFwiLi9kaXN0LWVzL3J1bnRpbWVDb25maWdcIjogXCIuL2Rpc3QtZXMvcnVudGltZUNvbmZpZy5icm93c2VyXCJcbiAgfSxcbiAgXCJyZWFjdC1uYXRpdmVcIjoge1xuICAgIFwiLi9kaXN0LWVzL3J1bnRpbWVDb25maWdcIjogXCIuL2Rpc3QtZXMvcnVudGltZUNvbmZpZy5uYXRpdmVcIlxuICB9LFxuICBcImhvbWVwYWdlXCI6IFwiaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3Mtc2RrLWpzLXYzL3RyZWUvbWFpbi9jbGllbnRzL2NsaWVudC1sYW1iZGFcIixcbiAgXCJyZXBvc2l0b3J5XCI6IHtcbiAgICBcInR5cGVcIjogXCJnaXRcIixcbiAgICBcInVybFwiOiBcImh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLXNkay1qcy12My5naXRcIixcbiAgICBcImRpcmVjdG9yeVwiOiBcImNsaWVudHMvY2xpZW50LWxhbWJkYVwiXG4gIH1cbn1cbiIsICJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMucnVsZVNldCA9IHZvaWQgMDtcbmNvbnN0IHMgPSBcInJlcXVpcmVkXCIsIHQgPSBcImZuXCIsIHUgPSBcImFyZ3ZcIiwgdiA9IFwicmVmXCI7XG5jb25zdCBhID0gdHJ1ZSwgYiA9IFwiaXNTZXRcIiwgYyA9IFwiYm9vbGVhbkVxdWFsc1wiLCBkID0gXCJlcnJvclwiLCBlID0gXCJlbmRwb2ludFwiLCBmID0gXCJ0cmVlXCIsIGcgPSBcIlBhcnRpdGlvblJlc3VsdFwiLCBoID0geyBbc106IGZhbHNlLCBcInR5cGVcIjogXCJzdHJpbmdcIiB9LCBpID0geyBbc106IHRydWUsIFwiZGVmYXVsdFwiOiBmYWxzZSwgXCJ0eXBlXCI6IFwiYm9vbGVhblwiIH0sIGogPSB7IFt2XTogXCJFbmRwb2ludFwiIH0sIGsgPSB7IFt0XTogYywgW3VdOiBbeyBbdl06IFwiVXNlRklQU1wiIH0sIHRydWVdIH0sIGwgPSB7IFt0XTogYywgW3VdOiBbeyBbdl06IFwiVXNlRHVhbFN0YWNrXCIgfSwgdHJ1ZV0gfSwgbSA9IHt9LCBuID0geyBbdF06IFwiZ2V0QXR0clwiLCBbdV06IFt7IFt2XTogZyB9LCBcInN1cHBvcnRzRklQU1wiXSB9LCBvID0geyBbdF06IGMsIFt1XTogW3RydWUsIHsgW3RdOiBcImdldEF0dHJcIiwgW3VdOiBbeyBbdl06IGcgfSwgXCJzdXBwb3J0c0R1YWxTdGFja1wiXSB9XSB9LCBwID0gW2tdLCBxID0gW2xdLCByID0gW3sgW3ZdOiBcIlJlZ2lvblwiIH1dO1xuY29uc3QgX2RhdGEgPSB7IHZlcnNpb246IFwiMS4wXCIsIHBhcmFtZXRlcnM6IHsgUmVnaW9uOiBoLCBVc2VEdWFsU3RhY2s6IGksIFVzZUZJUFM6IGksIEVuZHBvaW50OiBoIH0sIHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbeyBbdF06IGIsIFt1XTogW2pdIH1dLCBydWxlczogW3sgY29uZGl0aW9uczogcCwgZXJyb3I6IFwiSW52YWxpZCBDb25maWd1cmF0aW9uOiBGSVBTIGFuZCBjdXN0b20gZW5kcG9pbnQgYXJlIG5vdCBzdXBwb3J0ZWRcIiwgdHlwZTogZCB9LCB7IGNvbmRpdGlvbnM6IHEsIGVycm9yOiBcIkludmFsaWQgQ29uZmlndXJhdGlvbjogRHVhbHN0YWNrIGFuZCBjdXN0b20gZW5kcG9pbnQgYXJlIG5vdCBzdXBwb3J0ZWRcIiwgdHlwZTogZCB9LCB7IGVuZHBvaW50OiB7IHVybDogaiwgcHJvcGVydGllczogbSwgaGVhZGVyczogbSB9LCB0eXBlOiBlIH1dLCB0eXBlOiBmIH0sIHsgY29uZGl0aW9uczogW3sgW3RdOiBiLCBbdV06IHIgfV0sIHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbeyBbdF06IFwiYXdzLnBhcnRpdGlvblwiLCBbdV06IHIsIGFzc2lnbjogZyB9XSwgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IFtrLCBsXSwgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IFt7IFt0XTogYywgW3VdOiBbYSwgbl0gfSwgb10sIHJ1bGVzOiBbeyBlbmRwb2ludDogeyB1cmw6IFwiaHR0cHM6Ly9sYW1iZGEtZmlwcy57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2R1YWxTdGFja0Ruc1N1ZmZpeH1cIiwgcHJvcGVydGllczogbSwgaGVhZGVyczogbSB9LCB0eXBlOiBlIH1dLCB0eXBlOiBmIH0sIHsgZXJyb3I6IFwiRklQUyBhbmQgRHVhbFN0YWNrIGFyZSBlbmFibGVkLCBidXQgdGhpcyBwYXJ0aXRpb24gZG9lcyBub3Qgc3VwcG9ydCBvbmUgb3IgYm90aFwiLCB0eXBlOiBkIH1dLCB0eXBlOiBmIH0sIHsgY29uZGl0aW9uczogcCwgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IFt7IFt0XTogYywgW3VdOiBbbiwgYV0gfV0sIHJ1bGVzOiBbeyBlbmRwb2ludDogeyB1cmw6IFwiaHR0cHM6Ly9sYW1iZGEtZmlwcy57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH1cIiwgcHJvcGVydGllczogbSwgaGVhZGVyczogbSB9LCB0eXBlOiBlIH1dLCB0eXBlOiBmIH0sIHsgZXJyb3I6IFwiRklQUyBpcyBlbmFibGVkIGJ1dCB0aGlzIHBhcnRpdGlvbiBkb2VzIG5vdCBzdXBwb3J0IEZJUFNcIiwgdHlwZTogZCB9XSwgdHlwZTogZiB9LCB7IGNvbmRpdGlvbnM6IHEsIHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbb10sIHJ1bGVzOiBbeyBlbmRwb2ludDogeyB1cmw6IFwiaHR0cHM6Ly9sYW1iZGEue1JlZ2lvbn0ue1BhcnRpdGlvblJlc3VsdCNkdWFsU3RhY2tEbnNTdWZmaXh9XCIsIHByb3BlcnRpZXM6IG0sIGhlYWRlcnM6IG0gfSwgdHlwZTogZSB9XSwgdHlwZTogZiB9LCB7IGVycm9yOiBcIkR1YWxTdGFjayBpcyBlbmFibGVkIGJ1dCB0aGlzIHBhcnRpdGlvbiBkb2VzIG5vdCBzdXBwb3J0IER1YWxTdGFja1wiLCB0eXBlOiBkIH1dLCB0eXBlOiBmIH0sIHsgZW5kcG9pbnQ6IHsgdXJsOiBcImh0dHBzOi8vbGFtYmRhLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZG5zU3VmZml4fVwiLCBwcm9wZXJ0aWVzOiBtLCBoZWFkZXJzOiBtIH0sIHR5cGU6IGUgfV0sIHR5cGU6IGYgfV0sIHR5cGU6IGYgfSwgeyBlcnJvcjogXCJJbnZhbGlkIENvbmZpZ3VyYXRpb246IE1pc3NpbmcgUmVnaW9uXCIsIHR5cGU6IGQgfV0gfTtcbmV4cG9ydHMucnVsZVNldCA9IF9kYXRhO1xuIiwgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5kZWZhdWx0RW5kcG9pbnRSZXNvbHZlciA9IHZvaWQgMDtcbmNvbnN0IHV0aWxfZW5kcG9pbnRzXzEgPSByZXF1aXJlKFwiQGF3cy1zZGsvdXRpbC1lbmRwb2ludHNcIik7XG5jb25zdCB1dGlsX2VuZHBvaW50c18yID0gcmVxdWlyZShcIkBzbWl0aHkvdXRpbC1lbmRwb2ludHNcIik7XG5jb25zdCBydWxlc2V0XzEgPSByZXF1aXJlKFwiLi9ydWxlc2V0XCIpO1xuY29uc3QgY2FjaGUgPSBuZXcgdXRpbF9lbmRwb2ludHNfMi5FbmRwb2ludENhY2hlKHtcbiAgICBzaXplOiA1MCxcbiAgICBwYXJhbXM6IFtcIkVuZHBvaW50XCIsIFwiUmVnaW9uXCIsIFwiVXNlRHVhbFN0YWNrXCIsIFwiVXNlRklQU1wiXSxcbn0pO1xuY29uc3QgZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIgPSAoZW5kcG9pbnRQYXJhbXMsIGNvbnRleHQgPSB7fSkgPT4ge1xuICAgIHJldHVybiBjYWNoZS5nZXQoZW5kcG9pbnRQYXJhbXMsICgpID0+ICgwLCB1dGlsX2VuZHBvaW50c18yLnJlc29sdmVFbmRwb2ludCkocnVsZXNldF8xLnJ1bGVTZXQsIHtcbiAgICAgICAgZW5kcG9pbnRQYXJhbXM6IGVuZHBvaW50UGFyYW1zLFxuICAgICAgICBsb2dnZXI6IGNvbnRleHQubG9nZ2VyLFxuICAgIH0pKTtcbn07XG5leHBvcnRzLmRlZmF1bHRFbmRwb2ludFJlc29sdmVyID0gZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXI7XG51dGlsX2VuZHBvaW50c18yLmN1c3RvbUVuZHBvaW50RnVuY3Rpb25zLmF3cyA9IHV0aWxfZW5kcG9pbnRzXzEuYXdzRW5kcG9pbnRGdW5jdGlvbnM7XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmdldFJ1bnRpbWVDb25maWcgPSB2b2lkIDA7XG5jb25zdCBjb3JlXzEgPSByZXF1aXJlKFwiQGF3cy1zZGsvY29yZVwiKTtcbmNvbnN0IHByb3RvY29sc18xID0gcmVxdWlyZShcIkBhd3Mtc2RrL2NvcmUvcHJvdG9jb2xzXCIpO1xuY29uc3Qgc21pdGh5X2NsaWVudF8xID0gcmVxdWlyZShcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiKTtcbmNvbnN0IHVybF9wYXJzZXJfMSA9IHJlcXVpcmUoXCJAc21pdGh5L3VybC1wYXJzZXJcIik7XG5jb25zdCB1dGlsX2Jhc2U2NF8xID0gcmVxdWlyZShcIkBzbWl0aHkvdXRpbC1iYXNlNjRcIik7XG5jb25zdCB1dGlsX3V0ZjhfMSA9IHJlcXVpcmUoXCJAc21pdGh5L3V0aWwtdXRmOFwiKTtcbmNvbnN0IGh0dHBBdXRoU2NoZW1lUHJvdmlkZXJfMSA9IHJlcXVpcmUoXCIuL2F1dGgvaHR0cEF1dGhTY2hlbWVQcm92aWRlclwiKTtcbmNvbnN0IGVuZHBvaW50UmVzb2x2ZXJfMSA9IHJlcXVpcmUoXCIuL2VuZHBvaW50L2VuZHBvaW50UmVzb2x2ZXJcIik7XG5jb25zdCBnZXRSdW50aW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIGFwaVZlcnNpb246IFwiMjAxNS0wMy0zMVwiLFxuICAgICAgICBiYXNlNjREZWNvZGVyOiBjb25maWc/LmJhc2U2NERlY29kZXIgPz8gdXRpbF9iYXNlNjRfMS5mcm9tQmFzZTY0LFxuICAgICAgICBiYXNlNjRFbmNvZGVyOiBjb25maWc/LmJhc2U2NEVuY29kZXIgPz8gdXRpbF9iYXNlNjRfMS50b0Jhc2U2NCxcbiAgICAgICAgZGlzYWJsZUhvc3RQcmVmaXg6IGNvbmZpZz8uZGlzYWJsZUhvc3RQcmVmaXggPz8gZmFsc2UsXG4gICAgICAgIGVuZHBvaW50UHJvdmlkZXI6IGNvbmZpZz8uZW5kcG9pbnRQcm92aWRlciA/PyBlbmRwb2ludFJlc29sdmVyXzEuZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIsXG4gICAgICAgIGV4dGVuc2lvbnM6IGNvbmZpZz8uZXh0ZW5zaW9ucyA/PyBbXSxcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVQcm92aWRlcjogY29uZmlnPy5odHRwQXV0aFNjaGVtZVByb3ZpZGVyID8/IGh0dHBBdXRoU2NoZW1lUHJvdmlkZXJfMS5kZWZhdWx0TGFtYmRhSHR0cEF1dGhTY2hlbWVQcm92aWRlcixcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVzOiBjb25maWc/Lmh0dHBBdXRoU2NoZW1lcyA/PyBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgc2NoZW1lSWQ6IFwiYXdzLmF1dGgjc2lndjRcIixcbiAgICAgICAgICAgICAgICBpZGVudGl0eVByb3ZpZGVyOiAoaXBjKSA9PiBpcGMuZ2V0SWRlbnRpdHlQcm92aWRlcihcImF3cy5hdXRoI3NpZ3Y0XCIpLFxuICAgICAgICAgICAgICAgIHNpZ25lcjogbmV3IGNvcmVfMS5Bd3NTZGtTaWdWNFNpZ25lcigpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgbG9nZ2VyOiBjb25maWc/LmxvZ2dlciA/PyBuZXcgc21pdGh5X2NsaWVudF8xLk5vT3BMb2dnZXIoKSxcbiAgICAgICAgcHJvdG9jb2w6IGNvbmZpZz8ucHJvdG9jb2wgPz8gbmV3IHByb3RvY29sc18xLkF3c1Jlc3RKc29uUHJvdG9jb2woeyBkZWZhdWx0TmFtZXNwYWNlOiBcImNvbS5hbWF6b25hd3MubGFtYmRhXCIgfSksXG4gICAgICAgIHNlcnZpY2VJZDogY29uZmlnPy5zZXJ2aWNlSWQgPz8gXCJMYW1iZGFcIixcbiAgICAgICAgdXJsUGFyc2VyOiBjb25maWc/LnVybFBhcnNlciA/PyB1cmxfcGFyc2VyXzEucGFyc2VVcmwsXG4gICAgICAgIHV0ZjhEZWNvZGVyOiBjb25maWc/LnV0ZjhEZWNvZGVyID8/IHV0aWxfdXRmOF8xLmZyb21VdGY4LFxuICAgICAgICB1dGY4RW5jb2RlcjogY29uZmlnPy51dGY4RW5jb2RlciA/PyB1dGlsX3V0ZjhfMS50b1V0ZjgsXG4gICAgfTtcbn07XG5leHBvcnRzLmdldFJ1bnRpbWVDb25maWcgPSBnZXRSdW50aW1lQ29uZmlnO1xuIiwgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5nZXRSdW50aW1lQ29uZmlnID0gdm9pZCAwO1xuY29uc3QgdHNsaWJfMSA9IHJlcXVpcmUoXCJ0c2xpYlwiKTtcbmNvbnN0IHBhY2thZ2VfanNvbl8xID0gdHNsaWJfMS5fX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4uL3BhY2thZ2UuanNvblwiKSk7XG5jb25zdCBjb3JlXzEgPSByZXF1aXJlKFwiQGF3cy1zZGsvY29yZVwiKTtcbmNvbnN0IGNyZWRlbnRpYWxfcHJvdmlkZXJfbm9kZV8xID0gcmVxdWlyZShcIkBhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbm9kZVwiKTtcbmNvbnN0IHV0aWxfdXNlcl9hZ2VudF9ub2RlXzEgPSByZXF1aXJlKFwiQGF3cy1zZGsvdXRpbC11c2VyLWFnZW50LW5vZGVcIik7XG5jb25zdCBjb25maWdfcmVzb2x2ZXJfMSA9IHJlcXVpcmUoXCJAc21pdGh5L2NvbmZpZy1yZXNvbHZlclwiKTtcbmNvbnN0IGV2ZW50c3RyZWFtX3NlcmRlX25vZGVfMSA9IHJlcXVpcmUoXCJAc21pdGh5L2V2ZW50c3RyZWFtLXNlcmRlLW5vZGVcIik7XG5jb25zdCBoYXNoX25vZGVfMSA9IHJlcXVpcmUoXCJAc21pdGh5L2hhc2gtbm9kZVwiKTtcbmNvbnN0IG1pZGRsZXdhcmVfcmV0cnlfMSA9IHJlcXVpcmUoXCJAc21pdGh5L21pZGRsZXdhcmUtcmV0cnlcIik7XG5jb25zdCBub2RlX2NvbmZpZ19wcm92aWRlcl8xID0gcmVxdWlyZShcIkBzbWl0aHkvbm9kZS1jb25maWctcHJvdmlkZXJcIik7XG5jb25zdCBub2RlX2h0dHBfaGFuZGxlcl8xID0gcmVxdWlyZShcIkBzbWl0aHkvbm9kZS1odHRwLWhhbmRsZXJcIik7XG5jb25zdCBzbWl0aHlfY2xpZW50XzEgPSByZXF1aXJlKFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCIpO1xuY29uc3QgdXRpbF9ib2R5X2xlbmd0aF9ub2RlXzEgPSByZXF1aXJlKFwiQHNtaXRoeS91dGlsLWJvZHktbGVuZ3RoLW5vZGVcIik7XG5jb25zdCB1dGlsX2RlZmF1bHRzX21vZGVfbm9kZV8xID0gcmVxdWlyZShcIkBzbWl0aHkvdXRpbC1kZWZhdWx0cy1tb2RlLW5vZGVcIik7XG5jb25zdCB1dGlsX3JldHJ5XzEgPSByZXF1aXJlKFwiQHNtaXRoeS91dGlsLXJldHJ5XCIpO1xuY29uc3QgcnVudGltZUNvbmZpZ19zaGFyZWRfMSA9IHJlcXVpcmUoXCIuL3J1bnRpbWVDb25maWcuc2hhcmVkXCIpO1xuY29uc3QgZ2V0UnVudGltZUNvbmZpZyA9IChjb25maWcpID0+IHtcbiAgICAoMCwgc21pdGh5X2NsaWVudF8xLmVtaXRXYXJuaW5nSWZVbnN1cHBvcnRlZFZlcnNpb24pKHByb2Nlc3MudmVyc2lvbik7XG4gICAgY29uc3QgZGVmYXVsdHNNb2RlID0gKDAsIHV0aWxfZGVmYXVsdHNfbW9kZV9ub2RlXzEucmVzb2x2ZURlZmF1bHRzTW9kZUNvbmZpZykoY29uZmlnKTtcbiAgICBjb25zdCBkZWZhdWx0Q29uZmlnUHJvdmlkZXIgPSAoKSA9PiBkZWZhdWx0c01vZGUoKS50aGVuKHNtaXRoeV9jbGllbnRfMS5sb2FkQ29uZmlnc0ZvckRlZmF1bHRNb2RlKTtcbiAgICBjb25zdCBjbGllbnRTaGFyZWRWYWx1ZXMgPSAoMCwgcnVudGltZUNvbmZpZ19zaGFyZWRfMS5nZXRSdW50aW1lQ29uZmlnKShjb25maWcpO1xuICAgICgwLCBjb3JlXzEuZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbikocHJvY2Vzcy52ZXJzaW9uKTtcbiAgICBjb25zdCBsb2FkZXJDb25maWcgPSB7XG4gICAgICAgIHByb2ZpbGU6IGNvbmZpZz8ucHJvZmlsZSxcbiAgICAgICAgbG9nZ2VyOiBjbGllbnRTaGFyZWRWYWx1ZXMubG9nZ2VyLFxuICAgIH07XG4gICAgcmV0dXJuIHtcbiAgICAgICAgLi4uY2xpZW50U2hhcmVkVmFsdWVzLFxuICAgICAgICAuLi5jb25maWcsXG4gICAgICAgIHJ1bnRpbWU6IFwibm9kZVwiLFxuICAgICAgICBkZWZhdWx0c01vZGUsXG4gICAgICAgIGF1dGhTY2hlbWVQcmVmZXJlbmNlOiBjb25maWc/LmF1dGhTY2hlbWVQcmVmZXJlbmNlID8/ICgwLCBub2RlX2NvbmZpZ19wcm92aWRlcl8xLmxvYWRDb25maWcpKGNvcmVfMS5OT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfT1BUSU9OUywgbG9hZGVyQ29uZmlnKSxcbiAgICAgICAgYm9keUxlbmd0aENoZWNrZXI6IGNvbmZpZz8uYm9keUxlbmd0aENoZWNrZXIgPz8gdXRpbF9ib2R5X2xlbmd0aF9ub2RlXzEuY2FsY3VsYXRlQm9keUxlbmd0aCxcbiAgICAgICAgY3JlZGVudGlhbERlZmF1bHRQcm92aWRlcjogY29uZmlnPy5jcmVkZW50aWFsRGVmYXVsdFByb3ZpZGVyID8/IGNyZWRlbnRpYWxfcHJvdmlkZXJfbm9kZV8xLmRlZmF1bHRQcm92aWRlcixcbiAgICAgICAgZGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyOiBjb25maWc/LmRlZmF1bHRVc2VyQWdlbnRQcm92aWRlciA/P1xuICAgICAgICAgICAgKDAsIHV0aWxfdXNlcl9hZ2VudF9ub2RlXzEuY3JlYXRlRGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyKSh7IHNlcnZpY2VJZDogY2xpZW50U2hhcmVkVmFsdWVzLnNlcnZpY2VJZCwgY2xpZW50VmVyc2lvbjogcGFja2FnZV9qc29uXzEuZGVmYXVsdC52ZXJzaW9uIH0pLFxuICAgICAgICBldmVudFN0cmVhbVNlcmRlUHJvdmlkZXI6IGNvbmZpZz8uZXZlbnRTdHJlYW1TZXJkZVByb3ZpZGVyID8/IGV2ZW50c3RyZWFtX3NlcmRlX25vZGVfMS5ldmVudFN0cmVhbVNlcmRlUHJvdmlkZXIsXG4gICAgICAgIG1heEF0dGVtcHRzOiBjb25maWc/Lm1heEF0dGVtcHRzID8/ICgwLCBub2RlX2NvbmZpZ19wcm92aWRlcl8xLmxvYWRDb25maWcpKG1pZGRsZXdhcmVfcmV0cnlfMS5OT0RFX01BWF9BVFRFTVBUX0NPTkZJR19PUFRJT05TLCBjb25maWcpLFxuICAgICAgICByZWdpb246IGNvbmZpZz8ucmVnaW9uID8/XG4gICAgICAgICAgICAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKShjb25maWdfcmVzb2x2ZXJfMS5OT0RFX1JFR0lPTl9DT05GSUdfT1BUSU9OUywgeyAuLi5jb25maWdfcmVzb2x2ZXJfMS5OT0RFX1JFR0lPTl9DT05GSUdfRklMRV9PUFRJT05TLCAuLi5sb2FkZXJDb25maWcgfSksXG4gICAgICAgIHJlcXVlc3RIYW5kbGVyOiBub2RlX2h0dHBfaGFuZGxlcl8xLk5vZGVIdHRwSGFuZGxlci5jcmVhdGUoY29uZmlnPy5yZXF1ZXN0SGFuZGxlciA/PyBkZWZhdWx0Q29uZmlnUHJvdmlkZXIpLFxuICAgICAgICByZXRyeU1vZGU6IGNvbmZpZz8ucmV0cnlNb2RlID8/XG4gICAgICAgICAgICAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKSh7XG4gICAgICAgICAgICAgICAgLi4ubWlkZGxld2FyZV9yZXRyeV8xLk5PREVfUkVUUllfTU9ERV9DT05GSUdfT1BUSU9OUyxcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiBhc3luYyAoKSA9PiAoYXdhaXQgZGVmYXVsdENvbmZpZ1Byb3ZpZGVyKCkpLnJldHJ5TW9kZSB8fCB1dGlsX3JldHJ5XzEuREVGQVVMVF9SRVRSWV9NT0RFLFxuICAgICAgICAgICAgfSwgY29uZmlnKSxcbiAgICAgICAgc2hhMjU2OiBjb25maWc/LnNoYTI1NiA/PyBoYXNoX25vZGVfMS5IYXNoLmJpbmQobnVsbCwgXCJzaGEyNTZcIiksXG4gICAgICAgIHN0cmVhbUNvbGxlY3RvcjogY29uZmlnPy5zdHJlYW1Db2xsZWN0b3IgPz8gbm9kZV9odHRwX2hhbmRsZXJfMS5zdHJlYW1Db2xsZWN0b3IsXG4gICAgICAgIHVzZUR1YWxzdGFja0VuZHBvaW50OiBjb25maWc/LnVzZUR1YWxzdGFja0VuZHBvaW50ID8/ICgwLCBub2RlX2NvbmZpZ19wcm92aWRlcl8xLmxvYWRDb25maWcpKGNvbmZpZ19yZXNvbHZlcl8xLk5PREVfVVNFX0RVQUxTVEFDS19FTkRQT0lOVF9DT05GSUdfT1BUSU9OUywgbG9hZGVyQ29uZmlnKSxcbiAgICAgICAgdXNlRmlwc0VuZHBvaW50OiBjb25maWc/LnVzZUZpcHNFbmRwb2ludCA/PyAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKShjb25maWdfcmVzb2x2ZXJfMS5OT0RFX1VTRV9GSVBTX0VORFBPSU5UX0NPTkZJR19PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgICAgICB1c2VyQWdlbnRBcHBJZDogY29uZmlnPy51c2VyQWdlbnRBcHBJZCA/PyAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKSh1dGlsX3VzZXJfYWdlbnRfbm9kZV8xLk5PREVfQVBQX0lEX0NPTkZJR19PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgIH07XG59O1xuZXhwb3J0cy5nZXRSdW50aW1lQ29uZmlnID0gZ2V0UnVudGltZUNvbmZpZztcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBtaWRkbGV3YXJlSG9zdEhlYWRlciA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL21pZGRsZXdhcmUtaG9zdC1oZWFkZXInKTtcbnZhciBtaWRkbGV3YXJlTG9nZ2VyID0gcmVxdWlyZSgnQGF3cy1zZGsvbWlkZGxld2FyZS1sb2dnZXInKTtcbnZhciBtaWRkbGV3YXJlUmVjdXJzaW9uRGV0ZWN0aW9uID0gcmVxdWlyZSgnQGF3cy1zZGsvbWlkZGxld2FyZS1yZWN1cnNpb24tZGV0ZWN0aW9uJyk7XG52YXIgbWlkZGxld2FyZVVzZXJBZ2VudCA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL21pZGRsZXdhcmUtdXNlci1hZ2VudCcpO1xudmFyIGNvbmZpZ1Jlc29sdmVyID0gcmVxdWlyZSgnQHNtaXRoeS9jb25maWctcmVzb2x2ZXInKTtcbnZhciBjb3JlID0gcmVxdWlyZSgnQHNtaXRoeS9jb3JlJyk7XG52YXIgc2NoZW1hID0gcmVxdWlyZSgnQHNtaXRoeS9jb3JlL3NjaGVtYScpO1xudmFyIGV2ZW50c3RyZWFtU2VyZGVDb25maWdSZXNvbHZlciA9IHJlcXVpcmUoJ0BzbWl0aHkvZXZlbnRzdHJlYW0tc2VyZGUtY29uZmlnLXJlc29sdmVyJyk7XG52YXIgbWlkZGxld2FyZUNvbnRlbnRMZW5ndGggPSByZXF1aXJlKCdAc21pdGh5L21pZGRsZXdhcmUtY29udGVudC1sZW5ndGgnKTtcbnZhciBtaWRkbGV3YXJlRW5kcG9pbnQgPSByZXF1aXJlKCdAc21pdGh5L21pZGRsZXdhcmUtZW5kcG9pbnQnKTtcbnZhciBtaWRkbGV3YXJlUmV0cnkgPSByZXF1aXJlKCdAc21pdGh5L21pZGRsZXdhcmUtcmV0cnknKTtcbnZhciBzbWl0aHlDbGllbnQgPSByZXF1aXJlKCdAc21pdGh5L3NtaXRoeS1jbGllbnQnKTtcbnZhciBodHRwQXV0aFNjaGVtZVByb3ZpZGVyID0gcmVxdWlyZSgnLi9hdXRoL2h0dHBBdXRoU2NoZW1lUHJvdmlkZXInKTtcbnZhciBydW50aW1lQ29uZmlnID0gcmVxdWlyZSgnLi9ydW50aW1lQ29uZmlnJyk7XG52YXIgcmVnaW9uQ29uZmlnUmVzb2x2ZXIgPSByZXF1aXJlKCdAYXdzLXNkay9yZWdpb24tY29uZmlnLXJlc29sdmVyJyk7XG52YXIgcHJvdG9jb2xIdHRwID0gcmVxdWlyZSgnQHNtaXRoeS9wcm90b2NvbC1odHRwJyk7XG52YXIgdXRpbFdhaXRlciA9IHJlcXVpcmUoJ0BzbWl0aHkvdXRpbC13YWl0ZXInKTtcblxuY29uc3QgcmVzb2x2ZUNsaWVudEVuZHBvaW50UGFyYW1ldGVycyA9IChvcHRpb25zKSA9PiB7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24ob3B0aW9ucywge1xuICAgICAgICB1c2VEdWFsc3RhY2tFbmRwb2ludDogb3B0aW9ucy51c2VEdWFsc3RhY2tFbmRwb2ludCA/PyBmYWxzZSxcbiAgICAgICAgdXNlRmlwc0VuZHBvaW50OiBvcHRpb25zLnVzZUZpcHNFbmRwb2ludCA/PyBmYWxzZSxcbiAgICAgICAgZGVmYXVsdFNpZ25pbmdOYW1lOiBcImxhbWJkYVwiLFxuICAgIH0pO1xufTtcbmNvbnN0IGNvbW1vblBhcmFtcyA9IHtcbiAgICBVc2VGSVBTOiB7IHR5cGU6IFwiYnVpbHRJblBhcmFtc1wiLCBuYW1lOiBcInVzZUZpcHNFbmRwb2ludFwiIH0sXG4gICAgRW5kcG9pbnQ6IHsgdHlwZTogXCJidWlsdEluUGFyYW1zXCIsIG5hbWU6IFwiZW5kcG9pbnRcIiB9LFxuICAgIFJlZ2lvbjogeyB0eXBlOiBcImJ1aWx0SW5QYXJhbXNcIiwgbmFtZTogXCJyZWdpb25cIiB9LFxuICAgIFVzZUR1YWxTdGFjazogeyB0eXBlOiBcImJ1aWx0SW5QYXJhbXNcIiwgbmFtZTogXCJ1c2VEdWFsc3RhY2tFbmRwb2ludFwiIH0sXG59O1xuXG5jb25zdCBnZXRIdHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24gPSAocnVudGltZUNvbmZpZykgPT4ge1xuICAgIGNvbnN0IF9odHRwQXV0aFNjaGVtZXMgPSBydW50aW1lQ29uZmlnLmh0dHBBdXRoU2NoZW1lcztcbiAgICBsZXQgX2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSBydW50aW1lQ29uZmlnLmh0dHBBdXRoU2NoZW1lUHJvdmlkZXI7XG4gICAgbGV0IF9jcmVkZW50aWFscyA9IHJ1bnRpbWVDb25maWcuY3JlZGVudGlhbHM7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc2V0SHR0cEF1dGhTY2hlbWUoaHR0cEF1dGhTY2hlbWUpIHtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gX2h0dHBBdXRoU2NoZW1lcy5maW5kSW5kZXgoKHNjaGVtZSkgPT4gc2NoZW1lLnNjaGVtZUlkID09PSBodHRwQXV0aFNjaGVtZS5zY2hlbWVJZCk7XG4gICAgICAgICAgICBpZiAoaW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgX2h0dHBBdXRoU2NoZW1lcy5wdXNoKGh0dHBBdXRoU2NoZW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIF9odHRwQXV0aFNjaGVtZXMuc3BsaWNlKGluZGV4LCAxLCBodHRwQXV0aFNjaGVtZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGh0dHBBdXRoU2NoZW1lcygpIHtcbiAgICAgICAgICAgIHJldHVybiBfaHR0cEF1dGhTY2hlbWVzO1xuICAgICAgICB9LFxuICAgICAgICBzZXRIdHRwQXV0aFNjaGVtZVByb3ZpZGVyKGh0dHBBdXRoU2NoZW1lUHJvdmlkZXIpIHtcbiAgICAgICAgICAgIF9odHRwQXV0aFNjaGVtZVByb3ZpZGVyID0gaHR0cEF1dGhTY2hlbWVQcm92aWRlcjtcbiAgICAgICAgfSxcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVQcm92aWRlcigpIHtcbiAgICAgICAgICAgIHJldHVybiBfaHR0cEF1dGhTY2hlbWVQcm92aWRlcjtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0Q3JlZGVudGlhbHMoY3JlZGVudGlhbHMpIHtcbiAgICAgICAgICAgIF9jcmVkZW50aWFscyA9IGNyZWRlbnRpYWxzO1xuICAgICAgICB9LFxuICAgICAgICBjcmVkZW50aWFscygpIHtcbiAgICAgICAgICAgIHJldHVybiBfY3JlZGVudGlhbHM7XG4gICAgICAgIH0sXG4gICAgfTtcbn07XG5jb25zdCByZXNvbHZlSHR0cEF1dGhSdW50aW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIGh0dHBBdXRoU2NoZW1lczogY29uZmlnLmh0dHBBdXRoU2NoZW1lcygpLFxuICAgICAgICBodHRwQXV0aFNjaGVtZVByb3ZpZGVyOiBjb25maWcuaHR0cEF1dGhTY2hlbWVQcm92aWRlcigpLFxuICAgICAgICBjcmVkZW50aWFsczogY29uZmlnLmNyZWRlbnRpYWxzKCksXG4gICAgfTtcbn07XG5cbmNvbnN0IHJlc29sdmVSdW50aW1lRXh0ZW5zaW9ucyA9IChydW50aW1lQ29uZmlnLCBleHRlbnNpb25zKSA9PiB7XG4gICAgY29uc3QgZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiA9IE9iamVjdC5hc3NpZ24ocmVnaW9uQ29uZmlnUmVzb2x2ZXIuZ2V0QXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbihydW50aW1lQ29uZmlnKSwgc21pdGh5Q2xpZW50LmdldERlZmF1bHRFeHRlbnNpb25Db25maWd1cmF0aW9uKHJ1bnRpbWVDb25maWcpLCBwcm90b2NvbEh0dHAuZ2V0SHR0cEhhbmRsZXJFeHRlbnNpb25Db25maWd1cmF0aW9uKHJ1bnRpbWVDb25maWcpLCBnZXRIdHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24ocnVudGltZUNvbmZpZykpO1xuICAgIGV4dGVuc2lvbnMuZm9yRWFjaCgoZXh0ZW5zaW9uKSA9PiBleHRlbnNpb24uY29uZmlndXJlKGV4dGVuc2lvbkNvbmZpZ3VyYXRpb24pKTtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihydW50aW1lQ29uZmlnLCByZWdpb25Db25maWdSZXNvbHZlci5yZXNvbHZlQXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbihleHRlbnNpb25Db25maWd1cmF0aW9uKSwgc21pdGh5Q2xpZW50LnJlc29sdmVEZWZhdWx0UnVudGltZUNvbmZpZyhleHRlbnNpb25Db25maWd1cmF0aW9uKSwgcHJvdG9jb2xIdHRwLnJlc29sdmVIdHRwSGFuZGxlclJ1bnRpbWVDb25maWcoZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiksIHJlc29sdmVIdHRwQXV0aFJ1bnRpbWVDb25maWcoZXh0ZW5zaW9uQ29uZmlndXJhdGlvbikpO1xufTtcblxuY2xhc3MgTGFtYmRhQ2xpZW50IGV4dGVuZHMgc21pdGh5Q2xpZW50LkNsaWVudCB7XG4gICAgY29uZmlnO1xuICAgIGNvbnN0cnVjdG9yKC4uLltjb25maWd1cmF0aW9uXSkge1xuICAgICAgICBjb25zdCBfY29uZmlnXzAgPSBydW50aW1lQ29uZmlnLmdldFJ1bnRpbWVDb25maWcoY29uZmlndXJhdGlvbiB8fCB7fSk7XG4gICAgICAgIHN1cGVyKF9jb25maWdfMCk7XG4gICAgICAgIHRoaXMuaW5pdENvbmZpZyA9IF9jb25maWdfMDtcbiAgICAgICAgY29uc3QgX2NvbmZpZ18xID0gcmVzb2x2ZUNsaWVudEVuZHBvaW50UGFyYW1ldGVycyhfY29uZmlnXzApO1xuICAgICAgICBjb25zdCBfY29uZmlnXzIgPSBtaWRkbGV3YXJlVXNlckFnZW50LnJlc29sdmVVc2VyQWdlbnRDb25maWcoX2NvbmZpZ18xKTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ18zID0gbWlkZGxld2FyZVJldHJ5LnJlc29sdmVSZXRyeUNvbmZpZyhfY29uZmlnXzIpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzQgPSBjb25maWdSZXNvbHZlci5yZXNvbHZlUmVnaW9uQ29uZmlnKF9jb25maWdfMyk7XG4gICAgICAgIGNvbnN0IF9jb25maWdfNSA9IG1pZGRsZXdhcmVIb3N0SGVhZGVyLnJlc29sdmVIb3N0SGVhZGVyQ29uZmlnKF9jb25maWdfNCk7XG4gICAgICAgIGNvbnN0IF9jb25maWdfNiA9IG1pZGRsZXdhcmVFbmRwb2ludC5yZXNvbHZlRW5kcG9pbnRDb25maWcoX2NvbmZpZ181KTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ183ID0gZXZlbnRzdHJlYW1TZXJkZUNvbmZpZ1Jlc29sdmVyLnJlc29sdmVFdmVudFN0cmVhbVNlcmRlQ29uZmlnKF9jb25maWdfNik7XG4gICAgICAgIGNvbnN0IF9jb25maWdfOCA9IGh0dHBBdXRoU2NoZW1lUHJvdmlkZXIucmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnKF9jb25maWdfNyk7XG4gICAgICAgIGNvbnN0IF9jb25maWdfOSA9IHJlc29sdmVSdW50aW1lRXh0ZW5zaW9ucyhfY29uZmlnXzgsIGNvbmZpZ3VyYXRpb24/LmV4dGVuc2lvbnMgfHwgW10pO1xuICAgICAgICB0aGlzLmNvbmZpZyA9IF9jb25maWdfOTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKHNjaGVtYS5nZXRTY2hlbWFTZXJkZVBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UobWlkZGxld2FyZVVzZXJBZ2VudC5nZXRVc2VyQWdlbnRQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKG1pZGRsZXdhcmVSZXRyeS5nZXRSZXRyeVBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UobWlkZGxld2FyZUNvbnRlbnRMZW5ndGguZ2V0Q29udGVudExlbmd0aFBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UobWlkZGxld2FyZUhvc3RIZWFkZXIuZ2V0SG9zdEhlYWRlclBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UobWlkZGxld2FyZUxvZ2dlci5nZXRMb2dnZXJQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKG1pZGRsZXdhcmVSZWN1cnNpb25EZXRlY3Rpb24uZ2V0UmVjdXJzaW9uRGV0ZWN0aW9uUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShjb3JlLmdldEh0dHBBdXRoU2NoZW1lRW5kcG9pbnRSdWxlU2V0UGx1Z2luKHRoaXMuY29uZmlnLCB7XG4gICAgICAgICAgICBodHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlcjogaHR0cEF1dGhTY2hlbWVQcm92aWRlci5kZWZhdWx0TGFtYmRhSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIsXG4gICAgICAgICAgICBpZGVudGl0eVByb3ZpZGVyQ29uZmlnUHJvdmlkZXI6IGFzeW5jIChjb25maWcpID0+IG5ldyBjb3JlLkRlZmF1bHRJZGVudGl0eVByb3ZpZGVyQ29uZmlnKHtcbiAgICAgICAgICAgICAgICBcImF3cy5hdXRoI3NpZ3Y0XCI6IGNvbmZpZy5jcmVkZW50aWFscyxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICB9KSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShjb3JlLmdldEh0dHBTaWduaW5nUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgfVxuICAgIGRlc3Ryb3koKSB7XG4gICAgICAgIHN1cGVyLmRlc3Ryb3koKTtcbiAgICB9XG59XG5cbmxldCBMYW1iZGFTZXJ2aWNlRXhjZXB0aW9uJDEgPSBjbGFzcyBMYW1iZGFTZXJ2aWNlRXhjZXB0aW9uIGV4dGVuZHMgc21pdGh5Q2xpZW50LlNlcnZpY2VFeGNlcHRpb24ge1xuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnMpIHtcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBMYW1iZGFTZXJ2aWNlRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgfVxufTtcblxubGV0IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUV4Y2VwdGlvbiQxID0gY2xhc3MgSW52YWxpZFBhcmFtZXRlclZhbHVlRXhjZXB0aW9uIGV4dGVuZHMgTGFtYmRhU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJJbnZhbGlkUGFyYW1ldGVyVmFsdWVFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIFR5cGU7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkludmFsaWRQYXJhbWV0ZXJWYWx1ZUV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5UeXBlID0gb3B0cy5UeXBlO1xuICAgIH1cbn07XG5sZXQgUG9saWN5TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24kMSA9IGNsYXNzIFBvbGljeUxlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uIGV4dGVuZHMgTGFtYmRhU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJQb2xpY3lMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgVHlwZTtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiUG9saWN5TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgUG9saWN5TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5UeXBlID0gb3B0cy5UeXBlO1xuICAgIH1cbn07XG5sZXQgUHJlY29uZGl0aW9uRmFpbGVkRXhjZXB0aW9uJDEgPSBjbGFzcyBQcmVjb25kaXRpb25GYWlsZWRFeGNlcHRpb24gZXh0ZW5kcyBMYW1iZGFTZXJ2aWNlRXhjZXB0aW9uJDEge1xuICAgIG5hbWUgPSBcIlByZWNvbmRpdGlvbkZhaWxlZEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgVHlwZTtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiUHJlY29uZGl0aW9uRmFpbGVkRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFByZWNvbmRpdGlvbkZhaWxlZEV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLlR5cGUgPSBvcHRzLlR5cGU7XG4gICAgfVxufTtcbmxldCBSZXNvdXJjZUNvbmZsaWN0RXhjZXB0aW9uJDEgPSBjbGFzcyBSZXNvdXJjZUNvbmZsaWN0RXhjZXB0aW9uIGV4dGVuZHMgTGFtYmRhU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJSZXNvdXJjZUNvbmZsaWN0RXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBUeXBlO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJSZXNvdXJjZUNvbmZsaWN0RXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFJlc291cmNlQ29uZmxpY3RFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5UeXBlID0gb3B0cy5UeXBlO1xuICAgIH1cbn07XG5sZXQgUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvbiQxID0gY2xhc3MgUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvbiBleHRlbmRzIExhbWJkYVNlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgVHlwZTtcbiAgICBNZXNzYWdlO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFJlc291cmNlTm90Rm91bmRFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5UeXBlID0gb3B0cy5UeXBlO1xuICAgICAgICB0aGlzLk1lc3NhZ2UgPSBvcHRzLk1lc3NhZ2U7XG4gICAgfVxufTtcbmxldCBTZXJ2aWNlRXhjZXB0aW9uJDEgPSBjbGFzcyBTZXJ2aWNlRXhjZXB0aW9uIGV4dGVuZHMgTGFtYmRhU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJTZXJ2aWNlRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJzZXJ2ZXJcIjtcbiAgICBUeXBlO1xuICAgIE1lc3NhZ2U7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIlNlcnZpY2VFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJzZXJ2ZXJcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgU2VydmljZUV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLlR5cGUgPSBvcHRzLlR5cGU7XG4gICAgICAgIHRoaXMuTWVzc2FnZSA9IG9wdHMuTWVzc2FnZTtcbiAgICB9XG59O1xubGV0IFRvb01hbnlSZXF1ZXN0c0V4Y2VwdGlvbiQxID0gY2xhc3MgVG9vTWFueVJlcXVlc3RzRXhjZXB0aW9uIGV4dGVuZHMgTGFtYmRhU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJUb29NYW55UmVxdWVzdHNFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIHJldHJ5QWZ0ZXJTZWNvbmRzO1xuICAgIFR5cGU7XG4gICAgUmVhc29uO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJUb29NYW55UmVxdWVzdHNFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgVG9vTWFueVJlcXVlc3RzRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMucmV0cnlBZnRlclNlY29uZHMgPSBvcHRzLnJldHJ5QWZ0ZXJTZWNvbmRzO1xuICAgICAgICB0aGlzLlR5cGUgPSBvcHRzLlR5cGU7XG4gICAgICAgIHRoaXMuUmVhc29uID0gb3B0cy5SZWFzb247XG4gICAgfVxufTtcbmxldCBDYXBhY2l0eVByb3ZpZGVyTGltaXRFeGNlZWRlZEV4Y2VwdGlvbiQxID0gY2xhc3MgQ2FwYWNpdHlQcm92aWRlckxpbWl0RXhjZWVkZWRFeGNlcHRpb24gZXh0ZW5kcyBMYW1iZGFTZXJ2aWNlRXhjZXB0aW9uJDEge1xuICAgIG5hbWUgPSBcIkNhcGFjaXR5UHJvdmlkZXJMaW1pdEV4Y2VlZGVkRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBUeXBlO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJDYXBhY2l0eVByb3ZpZGVyTGltaXRFeGNlZWRlZEV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBDYXBhY2l0eVByb3ZpZGVyTGltaXRFeGNlZWRlZEV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLlR5cGUgPSBvcHRzLlR5cGU7XG4gICAgfVxufTtcbmxldCBSZXNvdXJjZUluVXNlRXhjZXB0aW9uJDEgPSBjbGFzcyBSZXNvdXJjZUluVXNlRXhjZXB0aW9uIGV4dGVuZHMgTGFtYmRhU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJSZXNvdXJjZUluVXNlRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBUeXBlO1xuICAgIE1lc3NhZ2U7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIlJlc291cmNlSW5Vc2VFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgUmVzb3VyY2VJblVzZUV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLlR5cGUgPSBvcHRzLlR5cGU7XG4gICAgICAgIHRoaXMuTWVzc2FnZSA9IG9wdHMuTWVzc2FnZTtcbiAgICB9XG59O1xubGV0IENvZGVTaWduaW5nQ29uZmlnTm90Rm91bmRFeGNlcHRpb24kMSA9IGNsYXNzIENvZGVTaWduaW5nQ29uZmlnTm90Rm91bmRFeGNlcHRpb24gZXh0ZW5kcyBMYW1iZGFTZXJ2aWNlRXhjZXB0aW9uJDEge1xuICAgIG5hbWUgPSBcIkNvZGVTaWduaW5nQ29uZmlnTm90Rm91bmRFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIFR5cGU7XG4gICAgTWVzc2FnZTtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiQ29kZVNpZ25pbmdDb25maWdOb3RGb3VuZEV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBDb2RlU2lnbmluZ0NvbmZpZ05vdEZvdW5kRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuVHlwZSA9IG9wdHMuVHlwZTtcbiAgICAgICAgdGhpcy5NZXNzYWdlID0gb3B0cy5NZXNzYWdlO1xuICAgIH1cbn07XG5sZXQgQ29kZVN0b3JhZ2VFeGNlZWRlZEV4Y2VwdGlvbiQxID0gY2xhc3MgQ29kZVN0b3JhZ2VFeGNlZWRlZEV4Y2VwdGlvbiBleHRlbmRzIExhbWJkYVNlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiQ29kZVN0b3JhZ2VFeGNlZWRlZEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgVHlwZTtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiQ29kZVN0b3JhZ2VFeGNlZWRlZEV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBDb2RlU3RvcmFnZUV4Y2VlZGVkRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuVHlwZSA9IG9wdHMuVHlwZTtcbiAgICB9XG59O1xubGV0IENvZGVWZXJpZmljYXRpb25GYWlsZWRFeGNlcHRpb24kMSA9IGNsYXNzIENvZGVWZXJpZmljYXRpb25GYWlsZWRFeGNlcHRpb24gZXh0ZW5kcyBMYW1iZGFTZXJ2aWNlRXhjZXB0aW9uJDEge1xuICAgIG5hbWUgPSBcIkNvZGVWZXJpZmljYXRpb25GYWlsZWRFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIFR5cGU7XG4gICAgTWVzc2FnZTtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiQ29kZVZlcmlmaWNhdGlvbkZhaWxlZEV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBDb2RlVmVyaWZpY2F0aW9uRmFpbGVkRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuVHlwZSA9IG9wdHMuVHlwZTtcbiAgICAgICAgdGhpcy5NZXNzYWdlID0gb3B0cy5NZXNzYWdlO1xuICAgIH1cbn07XG5sZXQgRnVuY3Rpb25WZXJzaW9uc1BlckNhcGFjaXR5UHJvdmlkZXJMaW1pdEV4Y2VlZGVkRXhjZXB0aW9uJDEgPSBjbGFzcyBGdW5jdGlvblZlcnNpb25zUGVyQ2FwYWNpdHlQcm92aWRlckxpbWl0RXhjZWVkZWRFeGNlcHRpb24gZXh0ZW5kcyBMYW1iZGFTZXJ2aWNlRXhjZXB0aW9uJDEge1xuICAgIG5hbWUgPSBcIkZ1bmN0aW9uVmVyc2lvbnNQZXJDYXBhY2l0eVByb3ZpZGVyTGltaXRFeGNlZWRlZEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgVHlwZTtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiRnVuY3Rpb25WZXJzaW9uc1BlckNhcGFjaXR5UHJvdmlkZXJMaW1pdEV4Y2VlZGVkRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEZ1bmN0aW9uVmVyc2lvbnNQZXJDYXBhY2l0eVByb3ZpZGVyTGltaXRFeGNlZWRlZEV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLlR5cGUgPSBvcHRzLlR5cGU7XG4gICAgfVxufTtcbmxldCBJbnZhbGlkQ29kZVNpZ25hdHVyZUV4Y2VwdGlvbiQxID0gY2xhc3MgSW52YWxpZENvZGVTaWduYXR1cmVFeGNlcHRpb24gZXh0ZW5kcyBMYW1iZGFTZXJ2aWNlRXhjZXB0aW9uJDEge1xuICAgIG5hbWUgPSBcIkludmFsaWRDb2RlU2lnbmF0dXJlRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBUeXBlO1xuICAgIE1lc3NhZ2U7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkludmFsaWRDb2RlU2lnbmF0dXJlRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEludmFsaWRDb2RlU2lnbmF0dXJlRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuVHlwZSA9IG9wdHMuVHlwZTtcbiAgICAgICAgdGhpcy5NZXNzYWdlID0gb3B0cy5NZXNzYWdlO1xuICAgIH1cbn07XG5sZXQgRHVyYWJsZUV4ZWN1dGlvbkFscmVhZHlTdGFydGVkRXhjZXB0aW9uJDEgPSBjbGFzcyBEdXJhYmxlRXhlY3V0aW9uQWxyZWFkeVN0YXJ0ZWRFeGNlcHRpb24gZXh0ZW5kcyBMYW1iZGFTZXJ2aWNlRXhjZXB0aW9uJDEge1xuICAgIG5hbWUgPSBcIkR1cmFibGVFeGVjdXRpb25BbHJlYWR5U3RhcnRlZEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgVHlwZTtcbiAgICBNZXNzYWdlO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJEdXJhYmxlRXhlY3V0aW9uQWxyZWFkeVN0YXJ0ZWRFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgRHVyYWJsZUV4ZWN1dGlvbkFscmVhZHlTdGFydGVkRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuVHlwZSA9IG9wdHMuVHlwZTtcbiAgICAgICAgdGhpcy5NZXNzYWdlID0gb3B0cy5NZXNzYWdlO1xuICAgIH1cbn07XG5sZXQgRUMyQWNjZXNzRGVuaWVkRXhjZXB0aW9uJDEgPSBjbGFzcyBFQzJBY2Nlc3NEZW5pZWRFeGNlcHRpb24gZXh0ZW5kcyBMYW1iZGFTZXJ2aWNlRXhjZXB0aW9uJDEge1xuICAgIG5hbWUgPSBcIkVDMkFjY2Vzc0RlbmllZEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwic2VydmVyXCI7XG4gICAgVHlwZTtcbiAgICBNZXNzYWdlO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJFQzJBY2Nlc3NEZW5pZWRFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJzZXJ2ZXJcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgRUMyQWNjZXNzRGVuaWVkRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuVHlwZSA9IG9wdHMuVHlwZTtcbiAgICAgICAgdGhpcy5NZXNzYWdlID0gb3B0cy5NZXNzYWdlO1xuICAgIH1cbn07XG5sZXQgRUMyVGhyb3R0bGVkRXhjZXB0aW9uJDEgPSBjbGFzcyBFQzJUaHJvdHRsZWRFeGNlcHRpb24gZXh0ZW5kcyBMYW1iZGFTZXJ2aWNlRXhjZXB0aW9uJDEge1xuICAgIG5hbWUgPSBcIkVDMlRocm90dGxlZEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwic2VydmVyXCI7XG4gICAgVHlwZTtcbiAgICBNZXNzYWdlO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJFQzJUaHJvdHRsZWRFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJzZXJ2ZXJcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgRUMyVGhyb3R0bGVkRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuVHlwZSA9IG9wdHMuVHlwZTtcbiAgICAgICAgdGhpcy5NZXNzYWdlID0gb3B0cy5NZXNzYWdlO1xuICAgIH1cbn07XG5sZXQgRUMyVW5leHBlY3RlZEV4Y2VwdGlvbiQxID0gY2xhc3MgRUMyVW5leHBlY3RlZEV4Y2VwdGlvbiBleHRlbmRzIExhbWJkYVNlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiRUMyVW5leHBlY3RlZEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwic2VydmVyXCI7XG4gICAgVHlwZTtcbiAgICBNZXNzYWdlO1xuICAgIEVDMkVycm9yQ29kZTtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiRUMyVW5leHBlY3RlZEV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcInNlcnZlclwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBFQzJVbmV4cGVjdGVkRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuVHlwZSA9IG9wdHMuVHlwZTtcbiAgICAgICAgdGhpcy5NZXNzYWdlID0gb3B0cy5NZXNzYWdlO1xuICAgICAgICB0aGlzLkVDMkVycm9yQ29kZSA9IG9wdHMuRUMyRXJyb3JDb2RlO1xuICAgIH1cbn07XG5sZXQgRUZTSU9FeGNlcHRpb24kMSA9IGNsYXNzIEVGU0lPRXhjZXB0aW9uIGV4dGVuZHMgTGFtYmRhU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJFRlNJT0V4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgVHlwZTtcbiAgICBNZXNzYWdlO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJFRlNJT0V4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBFRlNJT0V4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLlR5cGUgPSBvcHRzLlR5cGU7XG4gICAgICAgIHRoaXMuTWVzc2FnZSA9IG9wdHMuTWVzc2FnZTtcbiAgICB9XG59O1xubGV0IEVGU01vdW50Q29ubmVjdGl2aXR5RXhjZXB0aW9uJDEgPSBjbGFzcyBFRlNNb3VudENvbm5lY3Rpdml0eUV4Y2VwdGlvbiBleHRlbmRzIExhbWJkYVNlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiRUZTTW91bnRDb25uZWN0aXZpdHlFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIFR5cGU7XG4gICAgTWVzc2FnZTtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiRUZTTW91bnRDb25uZWN0aXZpdHlFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgRUZTTW91bnRDb25uZWN0aXZpdHlFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5UeXBlID0gb3B0cy5UeXBlO1xuICAgICAgICB0aGlzLk1lc3NhZ2UgPSBvcHRzLk1lc3NhZ2U7XG4gICAgfVxufTtcbmxldCBFRlNNb3VudEZhaWx1cmVFeGNlcHRpb24kMSA9IGNsYXNzIEVGU01vdW50RmFpbHVyZUV4Y2VwdGlvbiBleHRlbmRzIExhbWJkYVNlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiRUZTTW91bnRGYWlsdXJlRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBUeXBlO1xuICAgIE1lc3NhZ2U7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkVGU01vdW50RmFpbHVyZUV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBFRlNNb3VudEZhaWx1cmVFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5UeXBlID0gb3B0cy5UeXBlO1xuICAgICAgICB0aGlzLk1lc3NhZ2UgPSBvcHRzLk1lc3NhZ2U7XG4gICAgfVxufTtcbmxldCBFRlNNb3VudFRpbWVvdXRFeGNlcHRpb24kMSA9IGNsYXNzIEVGU01vdW50VGltZW91dEV4Y2VwdGlvbiBleHRlbmRzIExhbWJkYVNlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiRUZTTW91bnRUaW1lb3V0RXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBUeXBlO1xuICAgIE1lc3NhZ2U7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkVGU01vdW50VGltZW91dEV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBFRlNNb3VudFRpbWVvdXRFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5UeXBlID0gb3B0cy5UeXBlO1xuICAgICAgICB0aGlzLk1lc3NhZ2UgPSBvcHRzLk1lc3NhZ2U7XG4gICAgfVxufTtcbmxldCBFTklMaW1pdFJlYWNoZWRFeGNlcHRpb24kMSA9IGNsYXNzIEVOSUxpbWl0UmVhY2hlZEV4Y2VwdGlvbiBleHRlbmRzIExhbWJkYVNlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiRU5JTGltaXRSZWFjaGVkRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJzZXJ2ZXJcIjtcbiAgICBUeXBlO1xuICAgIE1lc3NhZ2U7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkVOSUxpbWl0UmVhY2hlZEV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcInNlcnZlclwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBFTklMaW1pdFJlYWNoZWRFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5UeXBlID0gb3B0cy5UeXBlO1xuICAgICAgICB0aGlzLk1lc3NhZ2UgPSBvcHRzLk1lc3NhZ2U7XG4gICAgfVxufTtcbmxldCBJbnZhbGlkUmVxdWVzdENvbnRlbnRFeGNlcHRpb24kMSA9IGNsYXNzIEludmFsaWRSZXF1ZXN0Q29udGVudEV4Y2VwdGlvbiBleHRlbmRzIExhbWJkYVNlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiSW52YWxpZFJlcXVlc3RDb250ZW50RXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBUeXBlO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJJbnZhbGlkUmVxdWVzdENvbnRlbnRFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgSW52YWxpZFJlcXVlc3RDb250ZW50RXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuVHlwZSA9IG9wdHMuVHlwZTtcbiAgICB9XG59O1xubGV0IEludmFsaWRSdW50aW1lRXhjZXB0aW9uJDEgPSBjbGFzcyBJbnZhbGlkUnVudGltZUV4Y2VwdGlvbiBleHRlbmRzIExhbWJkYVNlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiSW52YWxpZFJ1bnRpbWVFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcInNlcnZlclwiO1xuICAgIFR5cGU7XG4gICAgTWVzc2FnZTtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiSW52YWxpZFJ1bnRpbWVFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJzZXJ2ZXJcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgSW52YWxpZFJ1bnRpbWVFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5UeXBlID0gb3B0cy5UeXBlO1xuICAgICAgICB0aGlzLk1lc3NhZ2UgPSBvcHRzLk1lc3NhZ2U7XG4gICAgfVxufTtcbmxldCBJbnZhbGlkU2VjdXJpdHlHcm91cElERXhjZXB0aW9uJDEgPSBjbGFzcyBJbnZhbGlkU2VjdXJpdHlHcm91cElERXhjZXB0aW9uIGV4dGVuZHMgTGFtYmRhU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJJbnZhbGlkU2VjdXJpdHlHcm91cElERXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJzZXJ2ZXJcIjtcbiAgICBUeXBlO1xuICAgIE1lc3NhZ2U7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkludmFsaWRTZWN1cml0eUdyb3VwSURFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJzZXJ2ZXJcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgSW52YWxpZFNlY3VyaXR5R3JvdXBJREV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLlR5cGUgPSBvcHRzLlR5cGU7XG4gICAgICAgIHRoaXMuTWVzc2FnZSA9IG9wdHMuTWVzc2FnZTtcbiAgICB9XG59O1xubGV0IEludmFsaWRTdWJuZXRJREV4Y2VwdGlvbiQxID0gY2xhc3MgSW52YWxpZFN1Ym5ldElERXhjZXB0aW9uIGV4dGVuZHMgTGFtYmRhU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJJbnZhbGlkU3VibmV0SURFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcInNlcnZlclwiO1xuICAgIFR5cGU7XG4gICAgTWVzc2FnZTtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiSW52YWxpZFN1Ym5ldElERXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwic2VydmVyXCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEludmFsaWRTdWJuZXRJREV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLlR5cGUgPSBvcHRzLlR5cGU7XG4gICAgICAgIHRoaXMuTWVzc2FnZSA9IG9wdHMuTWVzc2FnZTtcbiAgICB9XG59O1xubGV0IEludmFsaWRaaXBGaWxlRXhjZXB0aW9uJDEgPSBjbGFzcyBJbnZhbGlkWmlwRmlsZUV4Y2VwdGlvbiBleHRlbmRzIExhbWJkYVNlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiSW52YWxpZFppcEZpbGVFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcInNlcnZlclwiO1xuICAgIFR5cGU7XG4gICAgTWVzc2FnZTtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiSW52YWxpZFppcEZpbGVFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJzZXJ2ZXJcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgSW52YWxpZFppcEZpbGVFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5UeXBlID0gb3B0cy5UeXBlO1xuICAgICAgICB0aGlzLk1lc3NhZ2UgPSBvcHRzLk1lc3NhZ2U7XG4gICAgfVxufTtcbmxldCBLTVNBY2Nlc3NEZW5pZWRFeGNlcHRpb24kMSA9IGNsYXNzIEtNU0FjY2Vzc0RlbmllZEV4Y2VwdGlvbiBleHRlbmRzIExhbWJkYVNlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiS01TQWNjZXNzRGVuaWVkRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJzZXJ2ZXJcIjtcbiAgICBUeXBlO1xuICAgIE1lc3NhZ2U7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIktNU0FjY2Vzc0RlbmllZEV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcInNlcnZlclwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBLTVNBY2Nlc3NEZW5pZWRFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5UeXBlID0gb3B0cy5UeXBlO1xuICAgICAgICB0aGlzLk1lc3NhZ2UgPSBvcHRzLk1lc3NhZ2U7XG4gICAgfVxufTtcbmxldCBLTVNEaXNhYmxlZEV4Y2VwdGlvbiQxID0gY2xhc3MgS01TRGlzYWJsZWRFeGNlcHRpb24gZXh0ZW5kcyBMYW1iZGFTZXJ2aWNlRXhjZXB0aW9uJDEge1xuICAgIG5hbWUgPSBcIktNU0Rpc2FibGVkRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJzZXJ2ZXJcIjtcbiAgICBUeXBlO1xuICAgIE1lc3NhZ2U7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIktNU0Rpc2FibGVkRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwic2VydmVyXCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEtNU0Rpc2FibGVkRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuVHlwZSA9IG9wdHMuVHlwZTtcbiAgICAgICAgdGhpcy5NZXNzYWdlID0gb3B0cy5NZXNzYWdlO1xuICAgIH1cbn07XG5sZXQgS01TSW52YWxpZFN0YXRlRXhjZXB0aW9uJDEgPSBjbGFzcyBLTVNJbnZhbGlkU3RhdGVFeGNlcHRpb24gZXh0ZW5kcyBMYW1iZGFTZXJ2aWNlRXhjZXB0aW9uJDEge1xuICAgIG5hbWUgPSBcIktNU0ludmFsaWRTdGF0ZUV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwic2VydmVyXCI7XG4gICAgVHlwZTtcbiAgICBNZXNzYWdlO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJLTVNJbnZhbGlkU3RhdGVFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJzZXJ2ZXJcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgS01TSW52YWxpZFN0YXRlRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuVHlwZSA9IG9wdHMuVHlwZTtcbiAgICAgICAgdGhpcy5NZXNzYWdlID0gb3B0cy5NZXNzYWdlO1xuICAgIH1cbn07XG5sZXQgS01TTm90Rm91bmRFeGNlcHRpb24kMSA9IGNsYXNzIEtNU05vdEZvdW5kRXhjZXB0aW9uIGV4dGVuZHMgTGFtYmRhU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJLTVNOb3RGb3VuZEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwic2VydmVyXCI7XG4gICAgVHlwZTtcbiAgICBNZXNzYWdlO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJLTVNOb3RGb3VuZEV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcInNlcnZlclwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBLTVNOb3RGb3VuZEV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLlR5cGUgPSBvcHRzLlR5cGU7XG4gICAgICAgIHRoaXMuTWVzc2FnZSA9IG9wdHMuTWVzc2FnZTtcbiAgICB9XG59O1xubGV0IE5vUHVibGlzaGVkVmVyc2lvbkV4Y2VwdGlvbiQxID0gY2xhc3MgTm9QdWJsaXNoZWRWZXJzaW9uRXhjZXB0aW9uIGV4dGVuZHMgTGFtYmRhU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJOb1B1Ymxpc2hlZFZlcnNpb25FeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIFR5cGU7XG4gICAgTWVzc2FnZTtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiTm9QdWJsaXNoZWRWZXJzaW9uRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIE5vUHVibGlzaGVkVmVyc2lvbkV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLlR5cGUgPSBvcHRzLlR5cGU7XG4gICAgICAgIHRoaXMuTWVzc2FnZSA9IG9wdHMuTWVzc2FnZTtcbiAgICB9XG59O1xubGV0IFJlY3Vyc2l2ZUludm9jYXRpb25FeGNlcHRpb24kMSA9IGNsYXNzIFJlY3Vyc2l2ZUludm9jYXRpb25FeGNlcHRpb24gZXh0ZW5kcyBMYW1iZGFTZXJ2aWNlRXhjZXB0aW9uJDEge1xuICAgIG5hbWUgPSBcIlJlY3Vyc2l2ZUludm9jYXRpb25FeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIFR5cGU7XG4gICAgTWVzc2FnZTtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiUmVjdXJzaXZlSW52b2NhdGlvbkV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBSZWN1cnNpdmVJbnZvY2F0aW9uRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuVHlwZSA9IG9wdHMuVHlwZTtcbiAgICAgICAgdGhpcy5NZXNzYWdlID0gb3B0cy5NZXNzYWdlO1xuICAgIH1cbn07XG5sZXQgUmVxdWVzdFRvb0xhcmdlRXhjZXB0aW9uJDEgPSBjbGFzcyBSZXF1ZXN0VG9vTGFyZ2VFeGNlcHRpb24gZXh0ZW5kcyBMYW1iZGFTZXJ2aWNlRXhjZXB0aW9uJDEge1xuICAgIG5hbWUgPSBcIlJlcXVlc3RUb29MYXJnZUV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgVHlwZTtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiUmVxdWVzdFRvb0xhcmdlRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFJlcXVlc3RUb29MYXJnZUV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLlR5cGUgPSBvcHRzLlR5cGU7XG4gICAgfVxufTtcbmxldCBSZXNvdXJjZU5vdFJlYWR5RXhjZXB0aW9uJDEgPSBjbGFzcyBSZXNvdXJjZU5vdFJlYWR5RXhjZXB0aW9uIGV4dGVuZHMgTGFtYmRhU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJSZXNvdXJjZU5vdFJlYWR5RXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJzZXJ2ZXJcIjtcbiAgICBUeXBlO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJSZXNvdXJjZU5vdFJlYWR5RXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwic2VydmVyXCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFJlc291cmNlTm90UmVhZHlFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5UeXBlID0gb3B0cy5UeXBlO1xuICAgIH1cbn07XG5sZXQgU2VyaWFsaXplZFJlcXVlc3RFbnRpdHlUb29MYXJnZUV4Y2VwdGlvbiQxID0gY2xhc3MgU2VyaWFsaXplZFJlcXVlc3RFbnRpdHlUb29MYXJnZUV4Y2VwdGlvbiBleHRlbmRzIExhbWJkYVNlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiU2VyaWFsaXplZFJlcXVlc3RFbnRpdHlUb29MYXJnZUV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgVHlwZTtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiU2VyaWFsaXplZFJlcXVlc3RFbnRpdHlUb29MYXJnZUV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBTZXJpYWxpemVkUmVxdWVzdEVudGl0eVRvb0xhcmdlRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuVHlwZSA9IG9wdHMuVHlwZTtcbiAgICB9XG59O1xubGV0IFNuYXBTdGFydEV4Y2VwdGlvbiQxID0gY2xhc3MgU25hcFN0YXJ0RXhjZXB0aW9uIGV4dGVuZHMgTGFtYmRhU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJTbmFwU3RhcnRFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIFR5cGU7XG4gICAgTWVzc2FnZTtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiU25hcFN0YXJ0RXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFNuYXBTdGFydEV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLlR5cGUgPSBvcHRzLlR5cGU7XG4gICAgICAgIHRoaXMuTWVzc2FnZSA9IG9wdHMuTWVzc2FnZTtcbiAgICB9XG59O1xubGV0IFNuYXBTdGFydE5vdFJlYWR5RXhjZXB0aW9uJDEgPSBjbGFzcyBTbmFwU3RhcnROb3RSZWFkeUV4Y2VwdGlvbiBleHRlbmRzIExhbWJkYVNlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiU25hcFN0YXJ0Tm90UmVhZHlFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIFR5cGU7XG4gICAgTWVzc2FnZTtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiU25hcFN0YXJ0Tm90UmVhZHlFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgU25hcFN0YXJ0Tm90UmVhZHlFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5UeXBlID0gb3B0cy5UeXBlO1xuICAgICAgICB0aGlzLk1lc3NhZ2UgPSBvcHRzLk1lc3NhZ2U7XG4gICAgfVxufTtcbmxldCBTbmFwU3RhcnRUaW1lb3V0RXhjZXB0aW9uJDEgPSBjbGFzcyBTbmFwU3RhcnRUaW1lb3V0RXhjZXB0aW9uIGV4dGVuZHMgTGFtYmRhU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJTbmFwU3RhcnRUaW1lb3V0RXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBUeXBlO1xuICAgIE1lc3NhZ2U7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIlNuYXBTdGFydFRpbWVvdXRFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgU25hcFN0YXJ0VGltZW91dEV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLlR5cGUgPSBvcHRzLlR5cGU7XG4gICAgICAgIHRoaXMuTWVzc2FnZSA9IG9wdHMuTWVzc2FnZTtcbiAgICB9XG59O1xubGV0IFN1Ym5ldElQQWRkcmVzc0xpbWl0UmVhY2hlZEV4Y2VwdGlvbiQxID0gY2xhc3MgU3VibmV0SVBBZGRyZXNzTGltaXRSZWFjaGVkRXhjZXB0aW9uIGV4dGVuZHMgTGFtYmRhU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJTdWJuZXRJUEFkZHJlc3NMaW1pdFJlYWNoZWRFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcInNlcnZlclwiO1xuICAgIFR5cGU7XG4gICAgTWVzc2FnZTtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiU3VibmV0SVBBZGRyZXNzTGltaXRSZWFjaGVkRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwic2VydmVyXCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFN1Ym5ldElQQWRkcmVzc0xpbWl0UmVhY2hlZEV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLlR5cGUgPSBvcHRzLlR5cGU7XG4gICAgICAgIHRoaXMuTWVzc2FnZSA9IG9wdHMuTWVzc2FnZTtcbiAgICB9XG59O1xubGV0IFVuc3VwcG9ydGVkTWVkaWFUeXBlRXhjZXB0aW9uJDEgPSBjbGFzcyBVbnN1cHBvcnRlZE1lZGlhVHlwZUV4Y2VwdGlvbiBleHRlbmRzIExhbWJkYVNlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiVW5zdXBwb3J0ZWRNZWRpYVR5cGVFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIFR5cGU7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIlVuc3VwcG9ydGVkTWVkaWFUeXBlRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFVuc3VwcG9ydGVkTWVkaWFUeXBlRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuVHlwZSA9IG9wdHMuVHlwZTtcbiAgICB9XG59O1xubGV0IFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdOb3RGb3VuZEV4Y2VwdGlvbiQxID0gY2xhc3MgUHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ05vdEZvdW5kRXhjZXB0aW9uIGV4dGVuZHMgTGFtYmRhU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnTm90Rm91bmRFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIFR5cGU7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIlByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdOb3RGb3VuZEV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnTm90Rm91bmRFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5UeXBlID0gb3B0cy5UeXBlO1xuICAgIH1cbn07XG5sZXQgQ2FsbGJhY2tUaW1lb3V0RXhjZXB0aW9uJDEgPSBjbGFzcyBDYWxsYmFja1RpbWVvdXRFeGNlcHRpb24gZXh0ZW5kcyBMYW1iZGFTZXJ2aWNlRXhjZXB0aW9uJDEge1xuICAgIG5hbWUgPSBcIkNhbGxiYWNrVGltZW91dEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgVHlwZTtcbiAgICBNZXNzYWdlO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJDYWxsYmFja1RpbWVvdXRFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgQ2FsbGJhY2tUaW1lb3V0RXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuVHlwZSA9IG9wdHMuVHlwZTtcbiAgICAgICAgdGhpcy5NZXNzYWdlID0gb3B0cy5NZXNzYWdlO1xuICAgIH1cbn07XG5cbmNvbnN0IF9BID0gXCJBY3Rpb25cIjtcbmNvbnN0IF9BQSA9IFwiQWxpYXNBcm5cIjtcbmNvbnN0IF9BQyA9IFwiQWxpYXNDb25maWd1cmF0aW9uXCI7XG5jb25zdCBfQUNjID0gXCJBY2Nlc3NDb25maWdzXCI7XG5jb25zdCBfQUNsID0gXCJBbGxvd0NyZWRlbnRpYWxzXCI7XG5jb25zdCBfQUZTQyA9IFwiQXBwbGllZEZ1bmN0aW9uU2NhbGluZ0NvbmZpZ1wiO1xuY29uc3QgX0FIID0gXCJBbGxvd0hlYWRlcnNcIjtcbmNvbnN0IF9BSVQgPSBcIkFsbG93ZWRJbnN0YW5jZVR5cGVzXCI7XG5jb25zdCBfQUwgPSBcIkFjY291bnRMaW1pdFwiO1xuY29uc3QgX0FMTCA9IFwiQXBwbGljYXRpb25Mb2dMZXZlbFwiO1xuY29uc3QgX0FMVlAgPSBcIkFkZExheWVyVmVyc2lvblBlcm1pc3Npb25cIjtcbmNvbnN0IF9BTFZQUiA9IFwiQWRkTGF5ZXJWZXJzaW9uUGVybWlzc2lvblJlcXVlc3RcIjtcbmNvbnN0IF9BTFZQUmQgPSBcIkFkZExheWVyVmVyc2lvblBlcm1pc3Npb25SZXNwb25zZVwiO1xuY29uc3QgX0FMbCA9IFwiQWxpYXNMaXN0XCI7XG5jb25zdCBfQU0gPSBcIkFsbG93TWV0aG9kc1wiO1xuY29uc3QgX0FNS0VTQyA9IFwiQW1hem9uTWFuYWdlZEthZmthRXZlbnRTb3VyY2VDb25maWdcIjtcbmNvbnN0IF9BTyA9IFwiQWxsb3dPcmlnaW5zXCI7XG5jb25zdCBfQU9wID0gXCJBcHBseU9uXCI7XG5jb25zdCBfQVAgPSBcIkFsbG93ZWRQdWJsaXNoZXJzXCI7XG5jb25zdCBfQVBDRSA9IFwiQXZhaWxhYmxlUHJvdmlzaW9uZWRDb25jdXJyZW50RXhlY3V0aW9uc1wiO1xuY29uc3QgX0FQQ0VsID0gXCJBbGxvY2F0ZWRQcm92aXNpb25lZENvbmN1cnJlbnRFeGVjdXRpb25zXCI7XG5jb25zdCBfQVBSID0gXCJBZGRQZXJtaXNzaW9uUmVxdWVzdFwiO1xuY29uc3QgX0FQUmQgPSBcIkFkZFBlcm1pc3Npb25SZXNwb25zZVwiO1xuY29uc3QgX0FQZCA9IFwiQWRkUGVybWlzc2lvblwiO1xuY29uc3QgX0FSQyA9IFwiQWxpYXNSb3V0aW5nQ29uZmlndXJhdGlvblwiO1xuY29uc3QgX0FUID0gXCJBdXRoVHlwZVwiO1xuY29uc3QgX0FVID0gXCJBY2NvdW50VXNhZ2VcIjtcbmNvbnN0IF9BVlcgPSBcIkFkZGl0aW9uYWxWZXJzaW9uV2VpZ2h0c1wiO1xuY29uc3QgX0FsID0gXCJBbGlhc2VzXCI7XG5jb25zdCBfQXIgPSBcIkFyY2hpdGVjdHVyZXNcIjtcbmNvbnN0IF9Bcm4gPSBcIkFyblwiO1xuY29uc3QgX0F0ID0gXCJBdHRyaWJ1dGVcIjtcbmNvbnN0IF9BdHQgPSBcIkF0dGVtcHRcIjtcbmNvbnN0IF9CID0gXCJCbG9iXCI7XG5jb25zdCBfQkJPRkUgPSBcIkJpc2VjdEJhdGNoT25GdW5jdGlvbkVycm9yXCI7XG5jb25zdCBfQk9QID0gXCJCaW5hcnlPcGVyYXRpb25QYXlsb2FkXCI7XG5jb25zdCBfQlMgPSBcIkJsb2JTdHJlYW1cIjtcbmNvbnN0IF9CU2EgPSBcIkJhdGNoU2l6ZVwiO1xuY29uc3QgX0MgPSBcIkNvbmN1cnJlbmN5XCI7XG5jb25zdCBfQ0EgPSBcIkNvbXBhdGlibGVBcmNoaXRlY3R1cmVzXCI7XG5jb25zdCBfQ0FSID0gXCJDcmVhdGVBbGlhc1JlcXVlc3RcIjtcbmNvbnN0IF9DQW8gPSBcIkNvbXBhdGlibGVBcmNoaXRlY3R1cmVcIjtcbmNvbnN0IF9DQXIgPSBcIkNyZWF0ZUFsaWFzXCI7XG5jb25zdCBfQ0F1ID0gXCJDdXJyZW50QXR0ZW1wdFwiO1xuY29uc3QgX0NDID0gXCJDbGllbnRDb250ZXh0XCI7XG5jb25zdCBfQ0NQID0gXCJDcmVhdGVDYXBhY2l0eVByb3ZpZGVyXCI7XG5jb25zdCBfQ0NQUiA9IFwiQ3JlYXRlQ2FwYWNpdHlQcm92aWRlclJlcXVlc3RcIjtcbmNvbnN0IF9DQ1BSciA9IFwiQ3JlYXRlQ2FwYWNpdHlQcm92aWRlclJlc3BvbnNlXCI7XG5jb25zdCBfQ0NTQyA9IFwiQ3JlYXRlQ29kZVNpZ25pbmdDb25maWdcIjtcbmNvbnN0IF9DQ1NDUiA9IFwiQ3JlYXRlQ29kZVNpZ25pbmdDb25maWdSZXF1ZXN0XCI7XG5jb25zdCBfQ0NTQ1JyID0gXCJDcmVhdGVDb2RlU2lnbmluZ0NvbmZpZ1Jlc3BvbnNlXCI7XG5jb25zdCBfQ0QgPSBcIkNhbGxiYWNrRGV0YWlsc1wiO1xuY29uc3QgX0NERSA9IFwiQ2hlY2twb2ludER1cmFibGVFeGVjdXRpb25cIjtcbmNvbnN0IF9DREVSID0gXCJDaGVja3BvaW50RHVyYWJsZUV4ZWN1dGlvblJlcXVlc3RcIjtcbmNvbnN0IF9DREVSaCA9IFwiQ2hlY2twb2ludER1cmFibGVFeGVjdXRpb25SZXNwb25zZVwiO1xuY29uc3QgX0NEbyA9IFwiQ29udGV4dERldGFpbHNcIjtcbmNvbnN0IF9DRHIgPSBcIkNyZWF0ZWREYXRlXCI7XG5jb25zdCBfQ0UgPSBcIkNvbmN1cnJlbnRFeGVjdXRpb25zXCI7XG5jb25zdCBfQ0VTTSA9IFwiQ3JlYXRlRXZlbnRTb3VyY2VNYXBwaW5nXCI7XG5jb25zdCBfQ0VTTVIgPSBcIkNyZWF0ZUV2ZW50U291cmNlTWFwcGluZ1JlcXVlc3RcIjtcbmNvbnN0IF9DRiA9IFwiQ3JlYXRlRnVuY3Rpb25cIjtcbmNvbnN0IF9DRkQgPSBcIkNhbGxiYWNrRmFpbGVkRGV0YWlsc1wiO1xuY29uc3QgX0NGRG8gPSBcIkNvbnRleHRGYWlsZWREZXRhaWxzXCI7XG5jb25zdCBfQ0ZSID0gXCJDcmVhdGVGdW5jdGlvblJlcXVlc3RcIjtcbmNvbnN0IF9DRlVDID0gXCJDcmVhdGVGdW5jdGlvblVybENvbmZpZ1wiO1xuY29uc3QgX0NGVUNSID0gXCJDcmVhdGVGdW5jdGlvblVybENvbmZpZ1JlcXVlc3RcIjtcbmNvbnN0IF9DRlVDUnIgPSBcIkNyZWF0ZUZ1bmN0aW9uVXJsQ29uZmlnUmVzcG9uc2VcIjtcbmNvbnN0IF9DR0kgPSBcIkNvbnN1bWVyR3JvdXBJZFwiO1xuY29uc3QgX0NJID0gXCJDYWxsYmFja0lkXCI7XG5jb25zdCBfQ0lEID0gXCJDaGFpbmVkSW52b2tlRGV0YWlsc1wiO1xuY29uc3QgX0NJRkQgPSBcIkNoYWluZWRJbnZva2VGYWlsZWREZXRhaWxzXCI7XG5jb25zdCBfQ0lPID0gXCJDaGFpbmVkSW52b2tlT3B0aW9uc1wiO1xuY29uc3QgX0NJU0QgPSBcIkNoYWluZWRJbnZva2VTdGFydGVkRGV0YWlsc1wiO1xuY29uc3QgX0NJU0RoID0gXCJDaGFpbmVkSW52b2tlU3RvcHBlZERldGFpbHNcIjtcbmNvbnN0IF9DSVNEaGEgPSBcIkNoYWluZWRJbnZva2VTdWNjZWVkZWREZXRhaWxzXCI7XG5jb25zdCBfQ0lUT0QgPSBcIkNoYWluZWRJbnZva2VUaW1lZE91dERldGFpbHNcIjtcbmNvbnN0IF9DTiA9IFwiQ29sbGVjdGlvbk5hbWVcIjtcbmNvbnN0IF9DTyA9IFwiQ2FsbGJhY2tPcHRpb25zXCI7XG5jb25zdCBfQ09vID0gXCJDb250ZXh0T3B0aW9uc1wiO1xuY29uc3QgX0NQID0gXCJDYXBhY2l0eVByb3ZpZGVyXCI7XG5jb25zdCBfQ1BBID0gXCJDYXBhY2l0eVByb3ZpZGVyQXJuXCI7XG5jb25zdCBfQ1BDID0gXCJDYXBhY2l0eVByb3ZpZGVyQ29uZmlnXCI7XG5jb25zdCBfQ1BMID0gXCJDYXBhY2l0eVByb3ZpZGVyc0xpc3RcIjtcbmNvbnN0IF9DUExFRSA9IFwiQ2FwYWNpdHlQcm92aWRlckxpbWl0RXhjZWVkZWRFeGNlcHRpb25cIjtcbmNvbnN0IF9DUE4gPSBcIkNhcGFjaXR5UHJvdmlkZXJOYW1lXCI7XG5jb25zdCBfQ1BPUkEgPSBcIkNhcGFjaXR5UHJvdmlkZXJPcGVyYXRvclJvbGVBcm5cIjtcbmNvbnN0IF9DUFBDID0gXCJDYXBhY2l0eVByb3ZpZGVyUGVybWlzc2lvbnNDb25maWdcIjtcbmNvbnN0IF9DUFNDID0gXCJDYXBhY2l0eVByb3ZpZGVyU2NhbGluZ0NvbmZpZ1wiO1xuY29uc3QgX0NQU1BMID0gXCJDYXBhY2l0eVByb3ZpZGVyU2NhbGluZ1BvbGljaWVzTGlzdFwiO1xuY29uc3QgX0NQVkMgPSBcIkNhcGFjaXR5UHJvdmlkZXJWcGNDb25maWdcIjtcbmNvbnN0IF9DUGEgPSBcIkNhcGFjaXR5UHJvdmlkZXJzXCI7XG5jb25zdCBfQ1IgPSBcIkNvbXBhdGlibGVSdW50aW1lc1wiO1xuY29uc3QgX0NSbyA9IFwiQ29tcGF0aWJsZVJ1bnRpbWVcIjtcbmNvbnN0IF9DUyA9IFwiQ29kZVNpemVcIjtcbmNvbnN0IF9DU0MgPSBcIkNvZGVTaWduaW5nQ29uZmlnXCI7XG5jb25zdCBfQ1NDQSA9IFwiQ29kZVNpZ25pbmdDb25maWdBcm5cIjtcbmNvbnN0IF9DU0NJID0gXCJDb2RlU2lnbmluZ0NvbmZpZ0lkXCI7XG5jb25zdCBfQ1NDTCA9IFwiQ29kZVNpZ25pbmdDb25maWdMaXN0XCI7XG5jb25zdCBfQ1NDTkZFID0gXCJDb2RlU2lnbmluZ0NvbmZpZ05vdEZvdW5kRXhjZXB0aW9uXCI7XG5jb25zdCBfQ1NDbyA9IFwiQ29kZVNpZ25pbmdDb25maWdzXCI7XG5jb25zdCBfQ1NEID0gXCJDYWxsYmFja1N0YXJ0ZWREZXRhaWxzXCI7XG5jb25zdCBfQ1NEYSA9IFwiQ2FsbGJhY2tTdWNjZWVkZWREZXRhaWxzXCI7XG5jb25zdCBfQ1NEbyA9IFwiQ29udGV4dFN0YXJ0ZWREZXRhaWxzXCI7XG5jb25zdCBfQ1NEb24gPSBcIkNvbnRleHRTdWNjZWVkZWREZXRhaWxzXCI7XG5jb25zdCBfQ1NFRSA9IFwiQ29kZVN0b3JhZ2VFeGNlZWRlZEV4Y2VwdGlvblwiO1xuY29uc3QgX0NTUCA9IFwiQ29kZVNpZ25pbmdQb2xpY2llc1wiO1xuY29uc3QgX0NTVSA9IFwiQ29kZVNpemVVbnppcHBlZFwiO1xuY29uc3QgX0NTWiA9IFwiQ29kZVNpemVaaXBwZWRcIjtcbmNvbnN0IF9DU28gPSBcIkNvZGVTaGEyNTZcIjtcbmNvbnN0IF9DU29uID0gXCJDb25maWdTaGEyNTZcIjtcbmNvbnN0IF9DVCA9IFwiQ2hlY2twb2ludFRva2VuXCI7XG5jb25zdCBfQ1RFID0gXCJDYWxsYmFja1RpbWVvdXRFeGNlcHRpb25cIjtcbmNvbnN0IF9DVE9EID0gXCJDYWxsYmFja1RpbWVkT3V0RGV0YWlsc1wiO1xuY29uc3QgX0NUXyA9IFwiQ29udGVudC1UeXBlXCI7XG5jb25zdCBfQ1RsID0gXCJDbGllbnRUb2tlblwiO1xuY29uc3QgX0NUciA9IFwiQ3JlYXRpb25UaW1lXCI7XG5jb25zdCBfQ1VFUyA9IFwiQ2hlY2twb2ludFVwZGF0ZWRFeGVjdXRpb25TdGF0ZVwiO1xuY29uc3QgX0NWRkUgPSBcIkNvZGVWZXJpZmljYXRpb25GYWlsZWRFeGNlcHRpb25cIjtcbmNvbnN0IF9DbyA9IFwiQ29yc1wiO1xuY29uc3QgX0NvZCA9IFwiQ29kZVwiO1xuY29uc3QgX0NvbSA9IFwiQ29tbWFuZFwiO1xuY29uc3QgX0NvbiA9IFwiQ29uZmlndXJhdGlvblwiO1xuY29uc3QgX0NvbnQgPSBcIkNvbnRlbnRcIjtcbmNvbnN0IF9EID0gXCJEZXNjcmlwdGlvblwiO1xuY29uc3QgX0RBID0gXCJEZWxldGVBbGlhc1wiO1xuY29uc3QgX0RBUiA9IFwiRGVsZXRlQWxpYXNSZXF1ZXN0XCI7XG5jb25zdCBfREMgPSBcIkRlc3RpbmF0aW9uQ29uZmlnXCI7XG5jb25zdCBfRENQID0gXCJEZWxldGVDYXBhY2l0eVByb3ZpZGVyXCI7XG5jb25zdCBfRENQUiA9IFwiRGVsZXRlQ2FwYWNpdHlQcm92aWRlclJlcXVlc3RcIjtcbmNvbnN0IF9EQ1BSZSA9IFwiRGVsZXRlQ2FwYWNpdHlQcm92aWRlclJlc3BvbnNlXCI7XG5jb25zdCBfRENTQyA9IFwiRGVsZXRlQ29kZVNpZ25pbmdDb25maWdcIjtcbmNvbnN0IF9EQ1NDUiA9IFwiRGVsZXRlQ29kZVNpZ25pbmdDb25maWdSZXF1ZXN0XCI7XG5jb25zdCBfRENTQ1JlID0gXCJEZWxldGVDb2RlU2lnbmluZ0NvbmZpZ1Jlc3BvbnNlXCI7XG5jb25zdCBfREN1ID0gXCJEdXJhYmxlQ29uZmlnXCI7XG5jb25zdCBfRERCRVNDID0gXCJEb2N1bWVudERCRXZlbnRTb3VyY2VDb25maWdcIjtcbmNvbnN0IF9ERSA9IFwiRHVyYWJsZUV4ZWN1dGlvbnNcIjtcbmNvbnN0IF9ERUEgPSBcIkR1cmFibGVFeGVjdXRpb25Bcm5cIjtcbmNvbnN0IF9ERUFTRSA9IFwiRHVyYWJsZUV4ZWN1dGlvbkFscmVhZHlTdGFydGVkRXhjZXB0aW9uXCI7XG5jb25zdCBfREVOID0gXCJEdXJhYmxlRXhlY3V0aW9uTmFtZVwiO1xuY29uc3QgX0RFU00gPSBcIkRlbGV0ZUV2ZW50U291cmNlTWFwcGluZ1wiO1xuY29uc3QgX0RFU01SID0gXCJEZWxldGVFdmVudFNvdXJjZU1hcHBpbmdSZXF1ZXN0XCI7XG5jb25zdCBfREYgPSBcIkRlbGV0ZUZ1bmN0aW9uXCI7XG5jb25zdCBfREZDID0gXCJEZWxldGVGdW5jdGlvbkNvbmN1cnJlbmN5XCI7XG5jb25zdCBfREZDUiA9IFwiRGVsZXRlRnVuY3Rpb25Db25jdXJyZW5jeVJlcXVlc3RcIjtcbmNvbnN0IF9ERkNTQyA9IFwiRGVsZXRlRnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ1wiO1xuY29uc3QgX0RGQ1NDUiA9IFwiRGVsZXRlRnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ1JlcXVlc3RcIjtcbmNvbnN0IF9ERkVJQyA9IFwiRGVsZXRlRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ1wiO1xuY29uc3QgX0RGRUlDUiA9IFwiRGVsZXRlRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ1JlcXVlc3RcIjtcbmNvbnN0IF9ERlIgPSBcIkRlbGV0ZUZ1bmN0aW9uUmVxdWVzdFwiO1xuY29uc3QgX0RGUmUgPSBcIkRlbGV0ZUZ1bmN0aW9uUmVzcG9uc2VcIjtcbmNvbnN0IF9ERlVDID0gXCJEZWxldGVGdW5jdGlvblVybENvbmZpZ1wiO1xuY29uc3QgX0RGVUNSID0gXCJEZWxldGVGdW5jdGlvblVybENvbmZpZ1JlcXVlc3RcIjtcbmNvbnN0IF9ETEMgPSBcIkRlYWRMZXR0ZXJDb25maWdcIjtcbmNvbnN0IF9ETFYgPSBcIkRlbGV0ZUxheWVyVmVyc2lvblwiO1xuY29uc3QgX0RMVlIgPSBcIkRlbGV0ZUxheWVyVmVyc2lvblJlcXVlc3RcIjtcbmNvbnN0IF9ETiA9IFwiRGF0YWJhc2VOYW1lXCI7XG5jb25zdCBfRFBDQyA9IFwiRGVsZXRlUHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ1wiO1xuY29uc3QgX0RQQ0NSID0gXCJEZWxldGVQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnUmVxdWVzdFwiO1xuY29uc3QgX0RSID0gXCJEcnlSdW5cIjtcbmNvbnN0IF9EZSA9IFwiRGVzdGluYXRpb25cIjtcbmNvbnN0IF9EdSA9IFwiRHVyYXRpb25cIjtcbmNvbnN0IF9FID0gXCJFcnJvclwiO1xuY29uc3QgX0VDID0gXCJFcnJvckNvZGVcIjtcbmNvbnN0IF9FQ0FERSA9IFwiRUMyQWNjZXNzRGVuaWVkRXhjZXB0aW9uXCI7XG5jb25zdCBfRUNFQyA9IFwiRUMyRXJyb3JDb2RlXCI7XG5jb25zdCBfRUNURSA9IFwiRUMyVGhyb3R0bGVkRXhjZXB0aW9uXCI7XG5jb25zdCBfRUNVRSA9IFwiRUMyVW5leHBlY3RlZEV4Y2VwdGlvblwiO1xuY29uc3QgX0VEID0gXCJFcnJvckRhdGFcIjtcbmNvbnN0IF9FRHIgPSBcIkVycm9yRGV0YWlsc1wiO1xuY29uc3QgX0VEeCA9IFwiRXhlY3V0aW9uRGV0YWlsc1wiO1xuY29uc3QgX0VFID0gXCJFbnZpcm9ubWVudEVycm9yXCI7XG5jb25zdCBfRUVNR0JQVkMgPSBcIkV4ZWN1dGlvbkVudmlyb25tZW50TWVtb3J5R2lCUGVyVkNwdVwiO1xuY29uc3QgX0VFdiA9IFwiRXZlbnRFcnJvclwiO1xuY29uc3QgX0VGRCA9IFwiRXhlY3V0aW9uRmFpbGVkRGV0YWlsc1wiO1xuY29uc3QgX0VGU0lPRSA9IFwiRUZTSU9FeGNlcHRpb25cIjtcbmNvbnN0IF9FRlNNQ0UgPSBcIkVGU01vdW50Q29ubmVjdGl2aXR5RXhjZXB0aW9uXCI7XG5jb25zdCBfRUZTTUZFID0gXCJFRlNNb3VudEZhaWx1cmVFeGNlcHRpb25cIjtcbmNvbnN0IF9FRlNNVEUgPSBcIkVGU01vdW50VGltZW91dEV4Y2VwdGlvblwiO1xuY29uc3QgX0VIID0gXCJFeHBvc2VIZWFkZXJzXCI7XG5jb25zdCBfRUkgPSBcIkV2ZW50SWRcIjtcbmNvbnN0IF9FSVQgPSBcIkV4Y2x1ZGVkSW5zdGFuY2VUeXBlc1wiO1xuY29uc3QgX0VJdiA9IFwiRXZlbnRJbnB1dFwiO1xuY29uc3QgX0VNID0gXCJFcnJvck1lc3NhZ2VcIjtcbmNvbnN0IF9FTklMUkUgPSBcIkVOSUxpbWl0UmVhY2hlZEV4Y2VwdGlvblwiO1xuY29uc3QgX0VPID0gXCJFcnJvck9iamVjdFwiO1xuY29uc3QgX0VQID0gXCJFbnRyeVBvaW50XCI7XG5jb25zdCBfRVIgPSBcIkVudmlyb25tZW50UmVzcG9uc2VcIjtcbmNvbnN0IF9FUkYgPSBcIkV2ZW50UmVjb3JkRm9ybWF0XCI7XG5jb25zdCBfRVJ2ID0gXCJFdmVudFJlc3VsdFwiO1xuY29uc3QgX0VTID0gXCJFcGhlbWVyYWxTdG9yYWdlXCI7XG5jb25zdCBfRVNBID0gXCJFdmVudFNvdXJjZUFyblwiO1xuY29uc3QgX0VTRCA9IFwiRXhlY3V0aW9uU3RhcnRlZERldGFpbHNcIjtcbmNvbnN0IF9FU0R4ID0gXCJFeGVjdXRpb25TdWNjZWVkZWREZXRhaWxzXCI7XG5jb25zdCBfRVNEeGUgPSBcIkV4ZWN1dGlvblN0b3BwZWREZXRhaWxzXCI7XG5jb25zdCBfRVNNID0gXCJFdmVudFNvdXJjZU1hcHBpbmdzXCI7XG5jb25zdCBfRVNNQSA9IFwiRXZlbnRTb3VyY2VNYXBwaW5nQXJuXCI7XG5jb25zdCBfRVNNQyA9IFwiRXZlbnRTb3VyY2VNYXBwaW5nQ29uZmlndXJhdGlvblwiO1xuY29uc3QgX0VTTUwgPSBcIkV2ZW50U291cmNlTWFwcGluZ3NMaXN0XCI7XG5jb25zdCBfRVNNTUMgPSBcIkV2ZW50U291cmNlTWFwcGluZ01ldHJpY3NDb25maWdcIjtcbmNvbnN0IF9FU1QgPSBcIkV2ZW50U291cmNlVG9rZW5cIjtcbmNvbnN0IF9FU3YgPSBcIkV2ZW50U3RyZWFtXCI7XG5jb25zdCBfRVQgPSBcIkVycm9yVHlwZVwiO1xuY29uc3QgX0VUT0QgPSBcIkV4ZWN1dGlvblRpbWVkT3V0RGV0YWlsc1wiO1xuY29uc3QgX0VUbiA9IFwiRW5kVGltZXN0YW1wXCI7XG5jb25zdCBfRVR2ID0gXCJFdmVudFR5cGVcIjtcbmNvbnN0IF9FVHZlID0gXCJFdmVudFRpbWVzdGFtcFwiO1xuY29uc3QgX0VUeCA9IFwiRXhlY3V0aW9uVGltZW91dFwiO1xuY29uc3QgX0VWID0gXCJFeGVjdXRlZFZlcnNpb25cIjtcbmNvbnN0IF9FVk4gPSBcIkVudmlyb25tZW50VmFyaWFibGVOYW1lXCI7XG5jb25zdCBfRVZWID0gXCJFbnZpcm9ubWVudFZhcmlhYmxlVmFsdWVcIjtcbmNvbnN0IF9FVm4gPSBcIkVudmlyb25tZW50VmFyaWFibGVzXCI7XG5jb25zdCBfRW4gPSBcIkVuYWJsZWRcIjtcbmNvbnN0IF9FbmQgPSBcIkVuZHBvaW50c1wiO1xuY29uc3QgX0VudiA9IFwiRW52aXJvbm1lbnRcIjtcbmNvbnN0IF9FdiA9IFwiRXZlbnRcIjtcbmNvbnN0IF9FdmUgPSBcIkV2ZW50c1wiO1xuY29uc3QgX0V4ID0gXCJFeGVjdXRpb25cIjtcbmNvbnN0IF9GID0gXCJGaWx0ZXJcIjtcbmNvbnN0IF9GQSA9IFwiRnVuY3Rpb25Bcm5cIjtcbmNvbnN0IF9GQXUgPSBcIkZ1bmN0aW9uQXJuc1wiO1xuY29uc3QgX0ZDID0gXCJGdW5jdGlvbkNvdW50XCI7XG5jb25zdCBfRkNFID0gXCJGaWx0ZXJDcml0ZXJpYUVycm9yXCI7XG5jb25zdCBfRkNMID0gXCJGdW5jdGlvbkNvZGVMb2NhdGlvblwiO1xuY29uc3QgX0ZDaSA9IFwiRmlsdGVyQ3JpdGVyaWFcIjtcbmNvbnN0IF9GQ3UgPSBcIkZ1bmN0aW9uQ29kZVwiO1xuY29uc3QgX0ZDdW4gPSBcIkZ1bmN0aW9uQ29uZmlndXJhdGlvblwiO1xuY29uc3QgX0ZEID0gXCJGdWxsRG9jdW1lbnRcIjtcbmNvbnN0IF9GRSA9IFwiRnVuY3Rpb25FcnJvclwiO1xuY29uc3QgX0ZFSUMgPSBcIkZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdcIjtcbmNvbnN0IF9GRUlDTCA9IFwiRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0xpc3RcIjtcbmNvbnN0IF9GRUlDdSA9IFwiRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ3NcIjtcbmNvbnN0IF9GTCA9IFwiRmlsdGVyTGlzdFwiO1xuY29uc3QgX0ZMdSA9IFwiRnVuY3Rpb25MaXN0XCI7XG5jb25zdCBfRk4gPSBcIkZ1bmN0aW9uTmFtZVwiO1xuY29uc3QgX0ZSVCA9IFwiRnVuY3Rpb25SZXNwb25zZVR5cGVzXCI7XG5jb25zdCBfRlMgPSBcIkZ1bmN0aW9uU3RhdGVcIjtcbmNvbnN0IF9GU0MgPSBcIkZpbGVTeXN0ZW1Db25maWdzXCI7XG5jb25zdCBfRlNDTCA9IFwiRmlsZVN5c3RlbUNvbmZpZ0xpc3RcIjtcbmNvbnN0IF9GU0NpID0gXCJGaWxlU3lzdGVtQ29uZmlnXCI7XG5jb25zdCBfRlNDdSA9IFwiRnVuY3Rpb25TY2FsaW5nQ29uZmlnXCI7XG5jb25zdCBfRlUgPSBcIkZ1bmN0aW9uVXJsXCI7XG5jb25zdCBfRlVBVCA9IFwiRnVuY3Rpb25VcmxBdXRoVHlwZVwiO1xuY29uc3QgX0ZVQyA9IFwiRnVuY3Rpb25VcmxDb25maWdcIjtcbmNvbnN0IF9GVUNMID0gXCJGdW5jdGlvblVybENvbmZpZ0xpc3RcIjtcbmNvbnN0IF9GVUN1ID0gXCJGdW5jdGlvblVybENvbmZpZ3NcIjtcbmNvbnN0IF9GViA9IFwiRnVuY3Rpb25WZXJzaW9uXCI7XG5jb25zdCBfRlZCQ1BMID0gXCJGdW5jdGlvblZlcnNpb25zQnlDYXBhY2l0eVByb3ZpZGVyTGlzdFwiO1xuY29uc3QgX0ZWQkNQTEkgPSBcIkZ1bmN0aW9uVmVyc2lvbnNCeUNhcGFjaXR5UHJvdmlkZXJMaXN0SXRlbVwiO1xuY29uc3QgX0ZWUENQTEVFID0gXCJGdW5jdGlvblZlcnNpb25zUGVyQ2FwYWNpdHlQcm92aWRlckxpbWl0RXhjZWVkZWRFeGNlcHRpb25cIjtcbmNvbnN0IF9GVnUgPSBcIkZ1bmN0aW9uVmVyc2lvbnNcIjtcbmNvbnN0IF9GaSA9IFwiRmlsdGVyc1wiO1xuY29uc3QgX0Z1ID0gXCJGdW5jdGlvbnNcIjtcbmNvbnN0IF9HQSA9IFwiR2V0QWxpYXNcIjtcbmNvbnN0IF9HQVIgPSBcIkdldEFsaWFzUmVxdWVzdFwiO1xuY29uc3QgX0dBUyA9IFwiR2V0QWNjb3VudFNldHRpbmdzXCI7XG5jb25zdCBfR0FTUiA9IFwiR2V0QWNjb3VudFNldHRpbmdzUmVxdWVzdFwiO1xuY29uc3QgX0dBU1JlID0gXCJHZXRBY2NvdW50U2V0dGluZ3NSZXNwb25zZVwiO1xuY29uc3QgX0dDUCA9IFwiR2V0Q2FwYWNpdHlQcm92aWRlclwiO1xuY29uc3QgX0dDUFIgPSBcIkdldENhcGFjaXR5UHJvdmlkZXJSZXF1ZXN0XCI7XG5jb25zdCBfR0NQUmUgPSBcIkdldENhcGFjaXR5UHJvdmlkZXJSZXNwb25zZVwiO1xuY29uc3QgX0dDU0MgPSBcIkdldENvZGVTaWduaW5nQ29uZmlnXCI7XG5jb25zdCBfR0NTQ1IgPSBcIkdldENvZGVTaWduaW5nQ29uZmlnUmVxdWVzdFwiO1xuY29uc3QgX0dDU0NSZSA9IFwiR2V0Q29kZVNpZ25pbmdDb25maWdSZXNwb25zZVwiO1xuY29uc3QgX0dERSA9IFwiR2V0RHVyYWJsZUV4ZWN1dGlvblwiO1xuY29uc3QgX0dERUggPSBcIkdldER1cmFibGVFeGVjdXRpb25IaXN0b3J5XCI7XG5jb25zdCBfR0RFSFIgPSBcIkdldER1cmFibGVFeGVjdXRpb25IaXN0b3J5UmVxdWVzdFwiO1xuY29uc3QgX0dERUhSZSA9IFwiR2V0RHVyYWJsZUV4ZWN1dGlvbkhpc3RvcnlSZXNwb25zZVwiO1xuY29uc3QgX0dERVIgPSBcIkdldER1cmFibGVFeGVjdXRpb25SZXF1ZXN0XCI7XG5jb25zdCBfR0RFUmUgPSBcIkdldER1cmFibGVFeGVjdXRpb25SZXNwb25zZVwiO1xuY29uc3QgX0dERVMgPSBcIkdldER1cmFibGVFeGVjdXRpb25TdGF0ZVwiO1xuY29uc3QgX0dERVNSID0gXCJHZXREdXJhYmxlRXhlY3V0aW9uU3RhdGVSZXF1ZXN0XCI7XG5jb25zdCBfR0RFU1JlID0gXCJHZXREdXJhYmxlRXhlY3V0aW9uU3RhdGVSZXNwb25zZVwiO1xuY29uc3QgX0dFU00gPSBcIkdldEV2ZW50U291cmNlTWFwcGluZ1wiO1xuY29uc3QgX0dFU01SID0gXCJHZXRFdmVudFNvdXJjZU1hcHBpbmdSZXF1ZXN0XCI7XG5jb25zdCBfR0YgPSBcIkdldEZ1bmN0aW9uXCI7XG5jb25zdCBfR0ZDID0gXCJHZXRGdW5jdGlvbkNvbmN1cnJlbmN5XCI7XG5jb25zdCBfR0ZDUiA9IFwiR2V0RnVuY3Rpb25Db25jdXJyZW5jeVJlcXVlc3RcIjtcbmNvbnN0IF9HRkNSZSA9IFwiR2V0RnVuY3Rpb25Db25jdXJyZW5jeVJlc3BvbnNlXCI7XG5jb25zdCBfR0ZDUmV0ID0gXCJHZXRGdW5jdGlvbkNvbmZpZ3VyYXRpb25SZXF1ZXN0XCI7XG5jb25zdCBfR0ZDU0MgPSBcIkdldEZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdcIjtcbmNvbnN0IF9HRkNTQ1IgPSBcIkdldEZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdSZXF1ZXN0XCI7XG5jb25zdCBfR0ZDU0NSZSA9IFwiR2V0RnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ1Jlc3BvbnNlXCI7XG5jb25zdCBfR0ZDZSA9IFwiR2V0RnVuY3Rpb25Db25maWd1cmF0aW9uXCI7XG5jb25zdCBfR0ZFSUMgPSBcIkdldEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdcIjtcbmNvbnN0IF9HRkVJQ1IgPSBcIkdldEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdSZXF1ZXN0XCI7XG5jb25zdCBfR0ZSID0gXCJHZXRGdW5jdGlvblJlcXVlc3RcIjtcbmNvbnN0IF9HRlJDID0gXCJHZXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZ1wiO1xuY29uc3QgX0dGUkNSID0gXCJHZXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZ1JlcXVlc3RcIjtcbmNvbnN0IF9HRlJDUmUgPSBcIkdldEZ1bmN0aW9uUmVjdXJzaW9uQ29uZmlnUmVzcG9uc2VcIjtcbmNvbnN0IF9HRlJlID0gXCJHZXRGdW5jdGlvblJlc3BvbnNlXCI7XG5jb25zdCBfR0ZTQyA9IFwiR2V0RnVuY3Rpb25TY2FsaW5nQ29uZmlnXCI7XG5jb25zdCBfR0ZTQ1IgPSBcIkdldEZ1bmN0aW9uU2NhbGluZ0NvbmZpZ1JlcXVlc3RcIjtcbmNvbnN0IF9HRlNDUmUgPSBcIkdldEZ1bmN0aW9uU2NhbGluZ0NvbmZpZ1Jlc3BvbnNlXCI7XG5jb25zdCBfR0ZVQyA9IFwiR2V0RnVuY3Rpb25VcmxDb25maWdcIjtcbmNvbnN0IF9HRlVDUiA9IFwiR2V0RnVuY3Rpb25VcmxDb25maWdSZXF1ZXN0XCI7XG5jb25zdCBfR0ZVQ1JlID0gXCJHZXRGdW5jdGlvblVybENvbmZpZ1Jlc3BvbnNlXCI7XG5jb25zdCBfR0xWID0gXCJHZXRMYXllclZlcnNpb25cIjtcbmNvbnN0IF9HTFZCQSA9IFwiR2V0TGF5ZXJWZXJzaW9uQnlBcm5cIjtcbmNvbnN0IF9HTFZCQVIgPSBcIkdldExheWVyVmVyc2lvbkJ5QXJuUmVxdWVzdFwiO1xuY29uc3QgX0dMVlAgPSBcIkdldExheWVyVmVyc2lvblBvbGljeVwiO1xuY29uc3QgX0dMVlBSID0gXCJHZXRMYXllclZlcnNpb25Qb2xpY3lSZXF1ZXN0XCI7XG5jb25zdCBfR0xWUFJlID0gXCJHZXRMYXllclZlcnNpb25Qb2xpY3lSZXNwb25zZVwiO1xuY29uc3QgX0dMVlIgPSBcIkdldExheWVyVmVyc2lvblJlcXVlc3RcIjtcbmNvbnN0IF9HTFZSZSA9IFwiR2V0TGF5ZXJWZXJzaW9uUmVzcG9uc2VcIjtcbmNvbnN0IF9HUCA9IFwiR2V0UG9saWN5XCI7XG5jb25zdCBfR1BDQyA9IFwiR2V0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ1wiO1xuY29uc3QgX0dQQ0NSID0gXCJHZXRQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnUmVxdWVzdFwiO1xuY29uc3QgX0dQQ0NSZSA9IFwiR2V0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ1Jlc3BvbnNlXCI7XG5jb25zdCBfR1BSID0gXCJHZXRQb2xpY3lSZXF1ZXN0XCI7XG5jb25zdCBfR1BSZSA9IFwiR2V0UG9saWN5UmVzcG9uc2VcIjtcbmNvbnN0IF9HUk1DID0gXCJHZXRSdW50aW1lTWFuYWdlbWVudENvbmZpZ1wiO1xuY29uc3QgX0dSTUNSID0gXCJHZXRSdW50aW1lTWFuYWdlbWVudENvbmZpZ1JlcXVlc3RcIjtcbmNvbnN0IF9HUk1DUmUgPSBcIkdldFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnUmVzcG9uc2VcIjtcbmNvbnN0IF9IID0gXCJIYW5kbGVyXCI7XG5jb25zdCBfSFQgPSBcIkhlYXJ0YmVhdFRpbWVvdXRcIjtcbmNvbnN0IF9IVFMgPSBcIkhlYXJ0YmVhdFRpbWVvdXRTZWNvbmRzXCI7XG5jb25zdCBfSSA9IFwiSW5wdXRcIjtcbmNvbnN0IF9JQSA9IFwiSW52b2tlQXJnc1wiO1xuY29uc3QgX0lBRkRTID0gXCJJcHY2QWxsb3dlZEZvckR1YWxTdGFja1wiO1xuY29uc3QgX0lBUiA9IFwiSW52b2tlQXN5bmNSZXF1ZXN0XCI7XG5jb25zdCBfSUFSbiA9IFwiSW52b2tlQXN5bmNSZXNwb25zZVwiO1xuY29uc3QgX0lBbiA9IFwiSW52b2tlQXN5bmNcIjtcbmNvbnN0IF9JQyA9IFwiSW1hZ2VDb25maWdcIjtcbmNvbnN0IF9JQ0QgPSBcIkludm9jYXRpb25Db21wbGV0ZWREZXRhaWxzXCI7XG5jb25zdCBfSUNFID0gXCJJbWFnZUNvbmZpZ0Vycm9yXCI7XG5jb25zdCBfSUNSID0gXCJJbWFnZUNvbmZpZ1Jlc3BvbnNlXCI7XG5jb25zdCBfSUNTRSA9IFwiSW52YWxpZENvZGVTaWduYXR1cmVFeGNlcHRpb25cIjtcbmNvbnN0IF9JQ24gPSBcIkludm9rZUNvbXBsZXRlXCI7XG5jb25zdCBfSUVEID0gXCJJbmNsdWRlRXhlY3V0aW9uRGF0YVwiO1xuY29uc3QgX0lNID0gXCJJbnZva2VNb2RlXCI7XG5jb25zdCBfSVAgPSBcIklucHV0UGF5bG9hZFwiO1xuY29uc3QgX0lQVkUgPSBcIkludmFsaWRQYXJhbWV0ZXJWYWx1ZUV4Y2VwdGlvblwiO1xuY29uc3QgX0lSID0gXCJJbnN0YW5jZVJlcXVpcmVtZW50c1wiO1xuY29uc3QgX0lSQ0UgPSBcIkludmFsaWRSZXF1ZXN0Q29udGVudEV4Y2VwdGlvblwiO1xuY29uc3QgX0lSRSA9IFwiSW52YWxpZFJ1bnRpbWVFeGNlcHRpb25cIjtcbmNvbnN0IF9JUlNVID0gXCJJbnZva2VSZXNwb25zZVN0cmVhbVVwZGF0ZVwiO1xuY29uc3QgX0lSbiA9IFwiSW52b2NhdGlvblJlcXVlc3RcIjtcbmNvbnN0IF9JUm52ID0gXCJJbnZvY2F0aW9uUmVzcG9uc2VcIjtcbmNvbnN0IF9JU0dJREUgPSBcIkludmFsaWRTZWN1cml0eUdyb3VwSURFeGNlcHRpb25cIjtcbmNvbnN0IF9JU0lERSA9IFwiSW52YWxpZFN1Ym5ldElERXhjZXB0aW9uXCI7XG5jb25zdCBfSVQgPSBcIkludm9jYXRpb25UeXBlXCI7XG5jb25zdCBfSVUgPSBcIkltYWdlVXJpXCI7XG5jb25zdCBfSVZGVSA9IFwiSW52b2tlZFZpYUZ1bmN0aW9uVXJsXCI7XG5jb25zdCBfSVdSUyA9IFwiSW52b2tlV2l0aFJlc3BvbnNlU3RyZWFtXCI7XG5jb25zdCBfSVdSU0NFID0gXCJJbnZva2VXaXRoUmVzcG9uc2VTdHJlYW1Db21wbGV0ZUV2ZW50XCI7XG5jb25zdCBfSVdSU1IgPSBcIkludm9rZVdpdGhSZXNwb25zZVN0cmVhbVJlcXVlc3RcIjtcbmNvbnN0IF9JV1JTUkUgPSBcIkludm9rZVdpdGhSZXNwb25zZVN0cmVhbVJlc3BvbnNlRXZlbnRcIjtcbmNvbnN0IF9JV1JTUm4gPSBcIkludm9rZVdpdGhSZXNwb25zZVN0cmVhbVJlc3BvbnNlXCI7XG5jb25zdCBfSVpGRSA9IFwiSW52YWxpZFppcEZpbGVFeGNlcHRpb25cIjtcbmNvbnN0IF9JZCA9IFwiSWRcIjtcbmNvbnN0IF9JbiA9IFwiSW52b2tlXCI7XG5jb25zdCBfS0tBID0gXCJLbXNLZXlBcm5cIjtcbmNvbnN0IF9LTVNBREUgPSBcIktNU0FjY2Vzc0RlbmllZEV4Y2VwdGlvblwiO1xuY29uc3QgX0tNU0RFID0gXCJLTVNEaXNhYmxlZEV4Y2VwdGlvblwiO1xuY29uc3QgX0tNU0lTRSA9IFwiS01TSW52YWxpZFN0YXRlRXhjZXB0aW9uXCI7XG5jb25zdCBfS01TS0EgPSBcIktNU0tleUFyblwiO1xuY29uc3QgX0tNU05GRSA9IFwiS01TTm90Rm91bmRFeGNlcHRpb25cIjtcbmNvbnN0IF9LU1JBQyA9IFwiS2Fma2FTY2hlbWFSZWdpc3RyeUFjY2Vzc0NvbmZpZ1wiO1xuY29uc3QgX0tTUkFDTCA9IFwiS2Fma2FTY2hlbWFSZWdpc3RyeUFjY2Vzc0NvbmZpZ0xpc3RcIjtcbmNvbnN0IF9LU1JDID0gXCJLYWZrYVNjaGVtYVJlZ2lzdHJ5Q29uZmlnXCI7XG5jb25zdCBfS1NWQyA9IFwiS2Fma2FTY2hlbWFWYWxpZGF0aW9uQ29uZmlnXCI7XG5jb25zdCBfS1NWQ0wgPSBcIkthZmthU2NoZW1hVmFsaWRhdGlvbkNvbmZpZ0xpc3RcIjtcbmNvbnN0IF9MID0gXCJMYXllcnNcIjtcbmNvbnN0IF9MQSA9IFwiTGF5ZXJBcm5cIjtcbmNvbnN0IF9MQVIgPSBcIkxpc3RBbGlhc2VzUmVxdWVzdFwiO1xuY29uc3QgX0xBUmkgPSBcIkxpc3RBbGlhc2VzUmVzcG9uc2VcIjtcbmNvbnN0IF9MQWkgPSBcIkxpc3RBbGlhc2VzXCI7XG5jb25zdCBfTEMgPSBcIkxvZ2dpbmdDb25maWdcIjtcbmNvbnN0IF9MQ1AgPSBcIkxpc3RDYXBhY2l0eVByb3ZpZGVyc1wiO1xuY29uc3QgX0xDUFIgPSBcIkxpc3RDYXBhY2l0eVByb3ZpZGVyc1JlcXVlc3RcIjtcbmNvbnN0IF9MQ1BSaSA9IFwiTGlzdENhcGFjaXR5UHJvdmlkZXJzUmVzcG9uc2VcIjtcbmNvbnN0IF9MQ1NDID0gXCJMaXN0Q29kZVNpZ25pbmdDb25maWdzXCI7XG5jb25zdCBfTENTQ1IgPSBcIkxpc3RDb2RlU2lnbmluZ0NvbmZpZ3NSZXF1ZXN0XCI7XG5jb25zdCBfTENTQ1JpID0gXCJMaXN0Q29kZVNpZ25pbmdDb25maWdzUmVzcG9uc2VcIjtcbmNvbnN0IF9MREVCRiA9IFwiTGlzdER1cmFibGVFeGVjdXRpb25zQnlGdW5jdGlvblwiO1xuY29uc3QgX0xERUJGUiA9IFwiTGlzdER1cmFibGVFeGVjdXRpb25zQnlGdW5jdGlvblJlcXVlc3RcIjtcbmNvbnN0IF9MREVCRlJpID0gXCJMaXN0RHVyYWJsZUV4ZWN1dGlvbnNCeUZ1bmN0aW9uUmVzcG9uc2VcIjtcbmNvbnN0IF9MRVNNID0gXCJMaXN0RXZlbnRTb3VyY2VNYXBwaW5nc1wiO1xuY29uc3QgX0xFU01SID0gXCJMaXN0RXZlbnRTb3VyY2VNYXBwaW5nc1JlcXVlc3RcIjtcbmNvbnN0IF9MRVNNUmkgPSBcIkxpc3RFdmVudFNvdXJjZU1hcHBpbmdzUmVzcG9uc2VcIjtcbmNvbnN0IF9MRiA9IFwiTG9nRm9ybWF0XCI7XG5jb25zdCBfTEZCQ1NDID0gXCJMaXN0RnVuY3Rpb25zQnlDb2RlU2lnbmluZ0NvbmZpZ1wiO1xuY29uc3QgX0xGQkNTQ1IgPSBcIkxpc3RGdW5jdGlvbnNCeUNvZGVTaWduaW5nQ29uZmlnUmVxdWVzdFwiO1xuY29uc3QgX0xGQkNTQ1JpID0gXCJMaXN0RnVuY3Rpb25zQnlDb2RlU2lnbmluZ0NvbmZpZ1Jlc3BvbnNlXCI7XG5jb25zdCBfTEZFSUMgPSBcIkxpc3RGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnc1wiO1xuY29uc3QgX0xGRUlDUiA9IFwiTGlzdEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdzUmVxdWVzdFwiO1xuY29uc3QgX0xGRUlDUmkgPSBcIkxpc3RGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnc1Jlc3BvbnNlXCI7XG5jb25zdCBfTEZSID0gXCJMaXN0RnVuY3Rpb25zUmVxdWVzdFwiO1xuY29uc3QgX0xGUmkgPSBcIkxpc3RGdW5jdGlvbnNSZXNwb25zZVwiO1xuY29uc3QgX0xGVUMgPSBcIkxpc3RGdW5jdGlvblVybENvbmZpZ3NcIjtcbmNvbnN0IF9MRlVDUiA9IFwiTGlzdEZ1bmN0aW9uVXJsQ29uZmlnc1JlcXVlc3RcIjtcbmNvbnN0IF9MRlVDUmkgPSBcIkxpc3RGdW5jdGlvblVybENvbmZpZ3NSZXNwb25zZVwiO1xuY29uc3QgX0xGVkJDUCA9IFwiTGlzdEZ1bmN0aW9uVmVyc2lvbnNCeUNhcGFjaXR5UHJvdmlkZXJcIjtcbmNvbnN0IF9MRlZCQ1BSID0gXCJMaXN0RnVuY3Rpb25WZXJzaW9uc0J5Q2FwYWNpdHlQcm92aWRlclJlcXVlc3RcIjtcbmNvbnN0IF9MRlZCQ1BSaSA9IFwiTGlzdEZ1bmN0aW9uVmVyc2lvbnNCeUNhcGFjaXR5UHJvdmlkZXJSZXNwb25zZVwiO1xuY29uc3QgX0xGaSA9IFwiTGlzdEZ1bmN0aW9uc1wiO1xuY29uc3QgX0xHID0gXCJMb2dHcm91cFwiO1xuY29uc3QgX0xJID0gXCJMaWNlbnNlSW5mb1wiO1xuY29uc3QgX0xMID0gXCJMYXllcnNMaXN0XCI7XG5jb25zdCBfTExJID0gXCJMYXllcnNMaXN0SXRlbVwiO1xuY29uc3QgX0xMUiA9IFwiTGlzdExheWVyc1JlcXVlc3RcIjtcbmNvbnN0IF9MTFJpID0gXCJMaXN0TGF5ZXJzUmVzcG9uc2VcIjtcbmNvbnN0IF9MTFYgPSBcIkxpc3RMYXllclZlcnNpb25zXCI7XG5jb25zdCBfTExWUiA9IFwiTGlzdExheWVyVmVyc2lvbnNSZXF1ZXN0XCI7XG5jb25zdCBfTExWUmkgPSBcIkxpc3RMYXllclZlcnNpb25zUmVzcG9uc2VcIjtcbmNvbnN0IF9MTGkgPSBcIkxpc3RMYXllcnNcIjtcbmNvbnN0IF9MTSA9IFwiTGFzdE1vZGlmaWVkXCI7XG5jb25zdCBfTE1JQ1BDID0gXCJMYW1iZGFNYW5hZ2VkSW5zdGFuY2VzQ2FwYWNpdHlQcm92aWRlckNvbmZpZ1wiO1xuY29uc3QgX0xNUCA9IFwiTG9jYWxNb3VudFBhdGhcIjtcbmNvbnN0IF9MTVQgPSBcIkxhc3RNb2RpZmllZFRpbWVcIjtcbmNvbnN0IF9MTVYgPSBcIkxhdGVzdE1hdGNoaW5nVmVyc2lvblwiO1xuY29uc3QgX0xOID0gXCJMYXllck5hbWVcIjtcbmNvbnN0IF9MUENDID0gXCJMaXN0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ3NcIjtcbmNvbnN0IF9MUENDUiA9IFwiTGlzdFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdzUmVxdWVzdFwiO1xuY29uc3QgX0xQQ0NSaSA9IFwiTGlzdFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdzUmVzcG9uc2VcIjtcbmNvbnN0IF9MUFIgPSBcIkxhc3RQcm9jZXNzaW5nUmVzdWx0XCI7XG5jb25zdCBfTFIgPSBcIkxvZ1Jlc3VsdFwiO1xuY29uc3QgX0xSTCA9IFwiTGF5ZXJzUmVmZXJlbmNlTGlzdFwiO1xuY29uc3QgX0xUID0gXCJMb2dUeXBlXCI7XG5jb25zdCBfTFRSID0gXCJMaXN0VGFnc1JlcXVlc3RcIjtcbmNvbnN0IF9MVFJpID0gXCJMaXN0VGFnc1Jlc3BvbnNlXCI7XG5jb25zdCBfTFRpID0gXCJMaXN0VGFnc1wiO1xuY29uc3QgX0xVUyA9IFwiTGFzdFVwZGF0ZVN0YXR1c1wiO1xuY29uc3QgX0xVU1IgPSBcIkxhc3RVcGRhdGVTdGF0dXNSZWFzb25cIjtcbmNvbnN0IF9MVVNSQyA9IFwiTGFzdFVwZGF0ZVN0YXR1c1JlYXNvbkNvZGVcIjtcbmNvbnN0IF9MViA9IFwiTGF5ZXJWZXJzaW9uc1wiO1xuY29uc3QgX0xWQSA9IFwiTGF5ZXJWZXJzaW9uQXJuXCI7XG5jb25zdCBfTFZCRiA9IFwiTGlzdFZlcnNpb25zQnlGdW5jdGlvblwiO1xuY29uc3QgX0xWQkZSID0gXCJMaXN0VmVyc2lvbnNCeUZ1bmN0aW9uUmVxdWVzdFwiO1xuY29uc3QgX0xWQkZSaSA9IFwiTGlzdFZlcnNpb25zQnlGdW5jdGlvblJlc3BvbnNlXCI7XG5jb25zdCBfTFZDSSA9IFwiTGF5ZXJWZXJzaW9uQ29udGVudElucHV0XCI7XG5jb25zdCBfTFZDTyA9IFwiTGF5ZXJWZXJzaW9uQ29udGVudE91dHB1dFwiO1xuY29uc3QgX0xWTCA9IFwiTGF5ZXJWZXJzaW9uc0xpc3RcIjtcbmNvbnN0IF9MVkxJID0gXCJMYXllclZlcnNpb25zTGlzdEl0ZW1cIjtcbmNvbnN0IF9MYSA9IFwiTGF5ZXJcIjtcbmNvbnN0IF9MbyA9IFwiTG9jYXRpb25cIjtcbmNvbnN0IF9NID0gXCJNZXNzYWdlXCI7XG5jb25zdCBfTUEgPSBcIk1heEFnZVwiO1xuY29uc3QgX01BYSA9IFwiTWFzdGVyQXJuXCI7XG5jb25zdCBfTUJXSVMgPSBcIk1heGltdW1CYXRjaGluZ1dpbmRvd0luU2Vjb25kc1wiO1xuY29uc3QgX01DID0gXCJNZXRyaWNzQ29uZmlnXCI7XG5jb25zdCBfTUNhID0gXCJNYXhpbXVtQ29uY3VycmVuY3lcIjtcbmNvbnN0IF9NRUFJUyA9IFwiTWF4aW11bUV2ZW50QWdlSW5TZWNvbmRzXCI7XG5jb25zdCBfTUVFID0gXCJNaW5FeGVjdXRpb25FbnZpcm9ubWVudHNcIjtcbmNvbnN0IF9NRUVhID0gXCJNYXhFeGVjdXRpb25FbnZpcm9ubWVudHNcIjtcbmNvbnN0IF9NSSA9IFwiTWF4SXRlbXNcIjtcbmNvbnN0IF9NUCA9IFwiTWluaW11bVBvbGxlcnNcIjtcbmNvbnN0IF9NUGEgPSBcIk1heGltdW1Qb2xsZXJzXCI7XG5jb25zdCBfTVIgPSBcIk1hc3RlclJlZ2lvblwiO1xuY29uc3QgX01SQSA9IFwiTWF4aW11bVJldHJ5QXR0ZW1wdHNcIjtcbmNvbnN0IF9NUkFJUyA9IFwiTWF4aW11bVJlY29yZEFnZUluU2Vjb25kc1wiO1xuY29uc3QgX01TID0gXCJNZW1vcnlTaXplXCI7XG5jb25zdCBfTVZDQyA9IFwiTWF4VkNwdUNvdW50XCI7XG5jb25zdCBfTWEgPSBcIk1hcmtlclwiO1xuY29uc3QgX01lID0gXCJNZXRyaWNzXCI7XG5jb25zdCBfTW8gPSBcIk1vZGVcIjtcbmNvbnN0IF9OID0gXCJOYW1lXCI7XG5jb25zdCBfTkFEUyA9IFwiTmV4dEF0dGVtcHREZWxheVNlY29uZHNcIjtcbmNvbnN0IF9OQVQgPSBcIk5leHRBdHRlbXB0VGltZXN0YW1wXCI7XG5jb25zdCBfTkVTID0gXCJOZXdFeGVjdXRpb25TdGF0ZVwiO1xuY29uc3QgX05NID0gXCJOZXh0TWFya2VyXCI7XG5jb25zdCBfTlBWRSA9IFwiTm9QdWJsaXNoZWRWZXJzaW9uRXhjZXB0aW9uXCI7XG5jb25zdCBfTyA9IFwiT3BlcmF0aW9uc1wiO1xuY29uc3QgX09GID0gXCJPbkZhaWx1cmVcIjtcbmNvbnN0IF9PSSA9IFwiT3JnYW5pemF0aW9uSWRcIjtcbmNvbnN0IF9PUCA9IFwiT3BlcmF0aW9uUGF5bG9hZFwiO1xuY29uc3QgX09QdSA9IFwiT3V0cHV0UGF5bG9hZFwiO1xuY29uc3QgX09TID0gXCJPblN1Y2Nlc3NcIjtcbmNvbnN0IF9PU3AgPSBcIk9wdGltaXphdGlvblN0YXR1c1wiO1xuY29uc3QgX09VID0gXCJPcGVyYXRpb25VcGRhdGVcIjtcbmNvbnN0IF9PVXAgPSBcIk9wZXJhdGlvblVwZGF0ZXNcIjtcbmNvbnN0IF9PcCA9IFwiT3BlcmF0aW9uXCI7XG5jb25zdCBfUCA9IFwiUHJpbmNpcGFsXCI7XG5jb25zdCBfUEMgPSBcIlBlcm1pc3Npb25zQ29uZmlnXCI7XG5jb25zdCBfUENDID0gXCJQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnc1wiO1xuY29uc3QgX1BDQ0wgPSBcIlByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdMaXN0XCI7XG5jb25zdCBfUENDTEkgPSBcIlByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdMaXN0SXRlbVwiO1xuY29uc3QgX1BDQ05GRSA9IFwiUHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ05vdEZvdW5kRXhjZXB0aW9uXCI7XG5jb25zdCBfUENFID0gXCJQcm92aXNpb25lZENvbmN1cnJlbnRFeGVjdXRpb25zXCI7XG5jb25zdCBfUENhID0gXCJQYXlsb2FkQ2h1bmtcIjtcbmNvbnN0IF9QRUVNQyA9IFwiUGVyRXhlY3V0aW9uRW52aXJvbm1lbnRNYXhDb25jdXJyZW5jeVwiO1xuY29uc3QgX1BGID0gXCJQYXJhbGxlbGl6YXRpb25GYWN0b3JcIjtcbmNvbnN0IF9QRkMgPSBcIlB1dEZ1bmN0aW9uQ29uY3VycmVuY3lcIjtcbmNvbnN0IF9QRkNSID0gXCJQdXRGdW5jdGlvbkNvbmN1cnJlbmN5UmVxdWVzdFwiO1xuY29uc3QgX1BGQ1NDID0gXCJQdXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnXCI7XG5jb25zdCBfUEZDU0NSID0gXCJQdXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnUmVxdWVzdFwiO1xuY29uc3QgX1BGQ1NDUnUgPSBcIlB1dEZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdSZXNwb25zZVwiO1xuY29uc3QgX1BGRSA9IFwiUHJlY29uZGl0aW9uRmFpbGVkRXhjZXB0aW9uXCI7XG5jb25zdCBfUEZFSUMgPSBcIlB1dEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdcIjtcbmNvbnN0IF9QRkVJQ1IgPSBcIlB1dEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdSZXF1ZXN0XCI7XG5jb25zdCBfUEZSQyA9IFwiUHV0RnVuY3Rpb25SZWN1cnNpb25Db25maWdcIjtcbmNvbnN0IF9QRlJDUiA9IFwiUHV0RnVuY3Rpb25SZWN1cnNpb25Db25maWdSZXF1ZXN0XCI7XG5jb25zdCBfUEZSQ1J1ID0gXCJQdXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZ1Jlc3BvbnNlXCI7XG5jb25zdCBfUEZTQyA9IFwiUHV0RnVuY3Rpb25TY2FsaW5nQ29uZmlnXCI7XG5jb25zdCBfUEZTQ1IgPSBcIlB1dEZ1bmN0aW9uU2NhbGluZ0NvbmZpZ1JlcXVlc3RcIjtcbmNvbnN0IF9QRlNDUnUgPSBcIlB1dEZ1bmN0aW9uU2NhbGluZ0NvbmZpZ1Jlc3BvbnNlXCI7XG5jb25zdCBfUEdOID0gXCJQb2xsZXJHcm91cE5hbWVcIjtcbmNvbnN0IF9QSSA9IFwiUGFyZW50SWRcIjtcbmNvbnN0IF9QTEVFID0gXCJQb2xpY3lMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvblwiO1xuY29uc3QgX1BMViA9IFwiUHVibGlzaExheWVyVmVyc2lvblwiO1xuY29uc3QgX1BMVlIgPSBcIlB1Ymxpc2hMYXllclZlcnNpb25SZXF1ZXN0XCI7XG5jb25zdCBfUExWUnUgPSBcIlB1Ymxpc2hMYXllclZlcnNpb25SZXNwb25zZVwiO1xuY29uc3QgX1BNVCA9IFwiUHJlZGVmaW5lZE1ldHJpY1R5cGVcIjtcbmNvbnN0IF9QT0lEID0gXCJQcmluY2lwYWxPcmdJRFwiO1xuY29uc3QgX1BQQyA9IFwiUHJvdmlzaW9uZWRQb2xsZXJDb25maWdcIjtcbmNvbnN0IF9QUENDID0gXCJQdXRQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnXCI7XG5jb25zdCBfUFBDQ1IgPSBcIlB1dFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdSZXF1ZXN0XCI7XG5jb25zdCBfUFBDQ1J1ID0gXCJQdXRQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnUmVzcG9uc2VcIjtcbmNvbnN0IF9QUk1DID0gXCJQdXRSdW50aW1lTWFuYWdlbWVudENvbmZpZ1wiO1xuY29uc3QgX1BSTUNSID0gXCJQdXRSdW50aW1lTWFuYWdlbWVudENvbmZpZ1JlcXVlc3RcIjtcbmNvbnN0IF9QUk1DUnUgPSBcIlB1dFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnUmVzcG9uc2VcIjtcbmNvbnN0IF9QVCA9IFwiUGFja2FnZVR5cGVcIjtcbmNvbnN0IF9QVHUgPSBcIlB1Ymxpc2hUb1wiO1xuY29uc3QgX1BWID0gXCJQdWJsaXNoVmVyc2lvblwiO1xuY29uc3QgX1BWUiA9IFwiUHVibGlzaFZlcnNpb25SZXF1ZXN0XCI7XG5jb25zdCBfUGEgPSBcIlBheWxvYWRcIjtcbmNvbnN0IF9QYXQgPSBcIlBhdHRlcm5cIjtcbmNvbnN0IF9QbyA9IFwiUG9saWN5XCI7XG5jb25zdCBfUHUgPSBcIlB1Ymxpc2hcIjtcbmNvbnN0IF9RID0gXCJRdWFsaWZpZXJcIjtcbmNvbnN0IF9RdSA9IFwiUXVldWVzXCI7XG5jb25zdCBfUiA9IFwiUmVzdWx0XCI7XG5jb25zdCBfUkEgPSBcIlJldHJ5LUFmdGVyXCI7XG5jb25zdCBfUkMgPSBcIlJvdXRpbmdDb25maWdcIjtcbmNvbnN0IF9SQ0UgPSBcIlJlc2VydmVkQ29uY3VycmVudEV4ZWN1dGlvbnNcIjtcbmNvbnN0IF9SQ0VlID0gXCJSZXNvdXJjZUNvbmZsaWN0RXhjZXB0aW9uXCI7XG5jb25zdCBfUkNlID0gXCJSZXBsYXlDaGlsZHJlblwiO1xuY29uc3QgX1JEID0gXCJSZXRyeURldGFpbHNcIjtcbmNvbnN0IF9SRlNDID0gXCJSZXF1ZXN0ZWRGdW5jdGlvblNjYWxpbmdDb25maWdcIjtcbmNvbnN0IF9SSSA9IFwiUmV2aXNpb25JZFwiO1xuY29uc3QgX1JJRSA9IFwiUmVjdXJzaXZlSW52b2NhdGlvbkV4Y2VwdGlvblwiO1xuY29uc3QgX1JJVSA9IFwiUmVzb2x2ZWRJbWFnZVVyaVwiO1xuY29uc3QgX1JJVUUgPSBcIlJlc291cmNlSW5Vc2VFeGNlcHRpb25cIjtcbmNvbnN0IF9SSWUgPSBcIlJlcXVlc3RJZFwiO1xuY29uc3QgX1JMID0gXCJSZWN1cnNpdmVMb29wXCI7XG5jb25zdCBfUkxWUCA9IFwiUmVtb3ZlTGF5ZXJWZXJzaW9uUGVybWlzc2lvblwiO1xuY29uc3QgX1JMVlBSID0gXCJSZW1vdmVMYXllclZlcnNpb25QZXJtaXNzaW9uUmVxdWVzdFwiO1xuY29uc3QgX1JORkUgPSBcIlJlc291cmNlTm90Rm91bmRFeGNlcHRpb25cIjtcbmNvbnN0IF9STlJFID0gXCJSZXNvdXJjZU5vdFJlYWR5RXhjZXB0aW9uXCI7XG5jb25zdCBfUk8gPSBcIlJldmVyc2VPcmRlclwiO1xuY29uc3QgX1JQID0gXCJSZW1vdmVQZXJtaXNzaW9uXCI7XG5jb25zdCBfUlBDRSA9IFwiUmVxdWVzdGVkUHJvdmlzaW9uZWRDb25jdXJyZW50RXhlY3V0aW9uc1wiO1xuY29uc3QgX1JQSUQgPSBcIlJldGVudGlvblBlcmlvZEluRGF5c1wiO1xuY29uc3QgX1JQUiA9IFwiUmVtb3ZlUGVybWlzc2lvblJlcXVlc3RcIjtcbmNvbnN0IF9SU0NUID0gXCJSZXNwb25zZVN0cmVhbUNvbnRlbnRUeXBlXCI7XG5jb25zdCBfUlQgPSBcIlJlcG9zaXRvcnlUeXBlXCI7XG5jb25zdCBfUlRMRSA9IFwiUmVxdWVzdFRvb0xhcmdlRXhjZXB0aW9uXCI7XG5jb25zdCBfUlZBID0gXCJSdW50aW1lVmVyc2lvbkFyblwiO1xuY29uc3QgX1JWQyA9IFwiUnVudGltZVZlcnNpb25Db25maWdcIjtcbmNvbnN0IF9SVkUgPSBcIlJ1bnRpbWVWZXJzaW9uRXJyb3JcIjtcbmNvbnN0IF9SZSA9IFwiUmVzb3VyY2VcIjtcbmNvbnN0IF9SZWEgPSBcIlJlYXNvblwiO1xuY29uc3QgX1JvID0gXCJSb2xlXCI7XG5jb25zdCBfUnUgPSBcIlJ1bnRpbWVcIjtcbmNvbnN0IF9TID0gXCJTdGF0ZW1lbnRcIjtcbmNvbnN0IF9TQSA9IFwiU291cmNlQXJuXCI7XG5jb25zdCBfU0FDID0gXCJTb3VyY2VBY2Nlc3NDb25maWd1cmF0aW9uc1wiO1xuY29uc3QgX1NBQ28gPSBcIlNvdXJjZUFjY2Vzc0NvbmZpZ3VyYXRpb25cIjtcbmNvbnN0IF9TQW8gPSBcIlNvdXJjZUFjY291bnRcIjtcbmNvbnN0IF9TQXQgPSBcIlN0YXJ0ZWRBZnRlclwiO1xuY29uc3QgX1NCID0gXCJTM0J1Y2tldFwiO1xuY29uc3QgX1NCdCA9IFwiU3RhcnRlZEJlZm9yZVwiO1xuY29uc3QgX1NDID0gXCJTY2FsaW5nQ29uZmlnXCI7XG5jb25zdCBfU0N0ID0gXCJTdGF0dXNDb2RlXCI7XG5jb25zdCBfU0QgPSBcIlN0ZXBEZXRhaWxzXCI7XG5jb25zdCBfU0RFID0gXCJTdG9wRHVyYWJsZUV4ZWN1dGlvblwiO1xuY29uc3QgX1NERUNGID0gXCJTZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrRmFpbHVyZVwiO1xuY29uc3QgX1NERUNGUiA9IFwiU2VuZER1cmFibGVFeGVjdXRpb25DYWxsYmFja0ZhaWx1cmVSZXF1ZXN0XCI7XG5jb25zdCBfU0RFQ0ZSZSA9IFwiU2VuZER1cmFibGVFeGVjdXRpb25DYWxsYmFja0ZhaWx1cmVSZXNwb25zZVwiO1xuY29uc3QgX1NERUNIID0gXCJTZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrSGVhcnRiZWF0XCI7XG5jb25zdCBfU0RFQ0hSID0gXCJTZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrSGVhcnRiZWF0UmVxdWVzdFwiO1xuY29uc3QgX1NERUNIUmUgPSBcIlNlbmREdXJhYmxlRXhlY3V0aW9uQ2FsbGJhY2tIZWFydGJlYXRSZXNwb25zZVwiO1xuY29uc3QgX1NERUNTID0gXCJTZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrU3VjY2Vzc1wiO1xuY29uc3QgX1NERUNTUiA9IFwiU2VuZER1cmFibGVFeGVjdXRpb25DYWxsYmFja1N1Y2Nlc3NSZXF1ZXN0XCI7XG5jb25zdCBfU0RFQ1NSZSA9IFwiU2VuZER1cmFibGVFeGVjdXRpb25DYWxsYmFja1N1Y2Nlc3NSZXNwb25zZVwiO1xuY29uc3QgX1NERVIgPSBcIlN0b3BEdXJhYmxlRXhlY3V0aW9uUmVxdWVzdFwiO1xuY29uc3QgX1NERVJ0ID0gXCJTdG9wRHVyYWJsZUV4ZWN1dGlvblJlc3BvbnNlXCI7XG5jb25zdCBfU0UgPSBcIlNlcnZpY2VFeGNlcHRpb25cIjtcbmNvbnN0IF9TRVQgPSBcIlNjaGVkdWxlZEVuZFRpbWVzdGFtcFwiO1xuY29uc3QgX1NGRCA9IFwiU3RlcEZhaWxlZERldGFpbHNcIjtcbmNvbnN0IF9TR0kgPSBcIlNlY3VyaXR5R3JvdXBJZHNcIjtcbmNvbnN0IF9TSSA9IFwiU3RhdGVtZW50SWRcIjtcbmNvbnN0IF9TSVBBTFJFID0gXCJTdWJuZXRJUEFkZHJlc3NMaW1pdFJlYWNoZWRFeGNlcHRpb25cIjtcbmNvbnN0IF9TSXUgPSBcIlN1Ym5ldElkc1wiO1xuY29uc3QgX1NKQSA9IFwiU2lnbmluZ0pvYkFyblwiO1xuY29uc3QgX1NLID0gXCJTM0tleVwiO1xuY29uc3QgX1NLTVNLQSA9IFwiU291cmNlS01TS2V5QXJuXCI7XG5jb25zdCBfU0xMID0gXCJTeXN0ZW1Mb2dMZXZlbFwiO1xuY29uc3QgX1NNID0gXCJTY2FsaW5nTW9kZVwiO1xuY29uc3QgX1NNRVMgPSBcIlNlbGZNYW5hZ2VkRXZlbnRTb3VyY2VcIjtcbmNvbnN0IF9TTUtFU0MgPSBcIlNlbGZNYW5hZ2VkS2Fma2FFdmVudFNvdXJjZUNvbmZpZ1wiO1xuY29uc3QgX1NPID0gXCJTdGVwT3B0aW9uc1wiO1xuY29uc3QgX1NPViA9IFwiUzNPYmplY3RWZXJzaW9uXCI7XG5jb25zdCBfU1AgPSBcIlNjYWxpbmdQb2xpY2llc1wiO1xuY29uc3QgX1NQVCA9IFwiU3RhcnRpbmdQb3NpdGlvblRpbWVzdGFtcFwiO1xuY29uc3QgX1NQVkEgPSBcIlNpZ25pbmdQcm9maWxlVmVyc2lvbkFybnNcIjtcbmNvbnN0IF9TUFZBaSA9IFwiU2lnbmluZ1Byb2ZpbGVWZXJzaW9uQXJuXCI7XG5jb25zdCBfU1B0ID0gXCJTdGFydGluZ1Bvc2l0aW9uXCI7XG5jb25zdCBfU1IgPSBcIlN0YXRlUmVhc29uXCI7XG5jb25zdCBfU1JDID0gXCJTY2hlbWFSZWdpc3RyeUNvbmZpZ1wiO1xuY29uc3QgX1NSQ3QgPSBcIlN0YXRlUmVhc29uQ29kZVwiO1xuY29uc3QgX1NSRVRMRSA9IFwiU2VyaWFsaXplZFJlcXVlc3RFbnRpdHlUb29MYXJnZUV4Y2VwdGlvblwiO1xuY29uc3QgX1NSVVJJID0gXCJTY2hlbWFSZWdpc3RyeVVSSVwiO1xuY29uc3QgX1NSdCA9IFwiU3RhdHVzUmVhc29uXCI7XG5jb25zdCBfU1MgPSBcIlNlbnNpdGl2ZVN0cmluZ1wiO1xuY29uc3QgX1NTRCA9IFwiU3RlcFN0YXJ0ZWREZXRhaWxzXCI7XG5jb25zdCBfU1NEdCA9IFwiU3RlcFN1Y2NlZWRlZERldGFpbHNcIjtcbmNvbnN0IF9TU0UgPSBcIlNuYXBTdGFydEV4Y2VwdGlvblwiO1xuY29uc3QgX1NTTlJFID0gXCJTbmFwU3RhcnROb3RSZWFkeUV4Y2VwdGlvblwiO1xuY29uc3QgX1NTUiA9IFwiU25hcFN0YXJ0UmVzcG9uc2VcIjtcbmNvbnN0IF9TU1RFID0gXCJTbmFwU3RhcnRUaW1lb3V0RXhjZXB0aW9uXCI7XG5jb25zdCBfU1NuID0gXCJTbmFwU3RhcnRcIjtcbmNvbnN0IF9TVCA9IFwiU3RhY2tUcmFjZVwiO1xuY29uc3QgX1NURSA9IFwiU3RhY2tUcmFjZUVudHJ5XCI7XG5jb25zdCBfU1RFdCA9IFwiU3RhY2tUcmFjZUVudHJpZXNcIjtcbmNvbnN0IF9TVFIgPSBcIlN0YXRlVHJhbnNpdGlvblJlYXNvblwiO1xuY29uc3QgX1NUdCA9IFwiU3RhcnRUaW1lc3RhbXBcIjtcbmNvbnN0IF9TVHRvID0gXCJTdG9wVGltZXN0YW1wXCI7XG5jb25zdCBfU1R1ID0gXCJTdWJUeXBlXCI7XG5jb25zdCBfU1ZDID0gXCJTY2hlbWFWYWxpZGF0aW9uQ29uZmlnc1wiO1xuY29uc3QgX1NpID0gXCJTaXplXCI7XG5jb25zdCBfU3QgPSBcIlN0YXRlXCI7XG5jb25zdCBfU3RhID0gXCJTdGF0dXNcIjtcbmNvbnN0IF9TdGF0ID0gXCJTdGF0dXNlc1wiO1xuY29uc3QgX1QgPSBcIlRpbWVvdXRcIjtcbmNvbnN0IF9UQSA9IFwiVGFyZ2V0QXJuXCI7XG5jb25zdCBfVEMgPSBcIlRyYWNpbmdDb25maWdcIjtcbmNvbnN0IF9UQ1IgPSBcIlRyYWNpbmdDb25maWdSZXNwb25zZVwiO1xuY29uc3QgX1RDUyA9IFwiVG90YWxDb2RlU2l6ZVwiO1xuY29uc3QgX1RDZSA9IFwiVGVuYW5jeUNvbmZpZ1wiO1xuY29uc3QgX1RFID0gXCJUYWdzRXJyb3JcIjtcbmNvbnN0IF9USCA9IFwiVHJhY2VIZWFkZXJcIjtcbmNvbnN0IF9USSA9IFwiVGVuYW50SWRcIjtcbmNvbnN0IF9USU0gPSBcIlRlbmFudElzb2xhdGlvbk1vZGVcIjtcbmNvbnN0IF9USyA9IFwiVGFnS2V5c1wiO1xuY29uc3QgX1RNUkUgPSBcIlRvb01hbnlSZXF1ZXN0c0V4Y2VwdGlvblwiO1xuY29uc3QgX1RSID0gXCJUYWdSZXNvdXJjZVwiO1xuY29uc3QgX1RSUiA9IFwiVGFnUmVzb3VyY2VSZXF1ZXN0XCI7XG5jb25zdCBfVFMgPSBcIlRpbWVvdXRTZWNvbmRzXCI7XG5jb25zdCBfVFRTUCA9IFwiVGFyZ2V0VHJhY2tpbmdTY2FsaW5nUG9saWN5XCI7XG5jb25zdCBfVFYgPSBcIlRhcmdldFZhbHVlXCI7XG5jb25zdCBfVFdJUyA9IFwiVHVtYmxpbmdXaW5kb3dJblNlY29uZHNcIjtcbmNvbnN0IF9UYSA9IFwiVGFnc1wiO1xuY29uc3QgX1RvID0gXCJUb3BpY3NcIjtcbmNvbnN0IF9UciA9IFwiVHJ1bmNhdGVkXCI7XG5jb25zdCBfVHkgPSBcIlR5cGVcIjtcbmNvbnN0IF9VID0gXCJVcGRhdGVzXCI7XG5jb25zdCBfVUEgPSBcIlVwZGF0ZUFsaWFzXCI7XG5jb25zdCBfVUFPRCA9IFwiVW50cnVzdGVkQXJ0aWZhY3RPbkRlcGxveW1lbnRcIjtcbmNvbnN0IF9VQVIgPSBcIlVwZGF0ZUFsaWFzUmVxdWVzdFwiO1xuY29uc3QgX1VDRSA9IFwiVW5yZXNlcnZlZENvbmN1cnJlbnRFeGVjdXRpb25zXCI7XG5jb25zdCBfVUNQID0gXCJVcGRhdGVDYXBhY2l0eVByb3ZpZGVyXCI7XG5jb25zdCBfVUNQUiA9IFwiVXBkYXRlQ2FwYWNpdHlQcm92aWRlclJlcXVlc3RcIjtcbmNvbnN0IF9VQ1BScCA9IFwiVXBkYXRlQ2FwYWNpdHlQcm92aWRlclJlc3BvbnNlXCI7XG5jb25zdCBfVUNTQyA9IFwiVXBkYXRlQ29kZVNpZ25pbmdDb25maWdcIjtcbmNvbnN0IF9VQ1NDUiA9IFwiVXBkYXRlQ29kZVNpZ25pbmdDb25maWdSZXF1ZXN0XCI7XG5jb25zdCBfVUNTQ1JwID0gXCJVcGRhdGVDb2RlU2lnbmluZ0NvbmZpZ1Jlc3BvbnNlXCI7XG5jb25zdCBfVUVTTSA9IFwiVXBkYXRlRXZlbnRTb3VyY2VNYXBwaW5nXCI7XG5jb25zdCBfVUVTTVIgPSBcIlVwZGF0ZUV2ZW50U291cmNlTWFwcGluZ1JlcXVlc3RcIjtcbmNvbnN0IF9VRkMgPSBcIlVwZGF0ZUZ1bmN0aW9uQ29kZVwiO1xuY29uc3QgX1VGQ1IgPSBcIlVwZGF0ZUZ1bmN0aW9uQ29kZVJlcXVlc3RcIjtcbmNvbnN0IF9VRkNScCA9IFwiVXBkYXRlRnVuY3Rpb25Db25maWd1cmF0aW9uUmVxdWVzdFwiO1xuY29uc3QgX1VGQ3AgPSBcIlVwZGF0ZUZ1bmN0aW9uQ29uZmlndXJhdGlvblwiO1xuY29uc3QgX1VGRUlDID0gXCJVcGRhdGVGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnXCI7XG5jb25zdCBfVUZFSUNSID0gXCJVcGRhdGVGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnUmVxdWVzdFwiO1xuY29uc3QgX1VGVUMgPSBcIlVwZGF0ZUZ1bmN0aW9uVXJsQ29uZmlnXCI7XG5jb25zdCBfVUZVQ1IgPSBcIlVwZGF0ZUZ1bmN0aW9uVXJsQ29uZmlnUmVxdWVzdFwiO1xuY29uc3QgX1VGVUNScCA9IFwiVXBkYXRlRnVuY3Rpb25VcmxDb25maWdSZXNwb25zZVwiO1xuY29uc3QgX1VNVEUgPSBcIlVuc3VwcG9ydGVkTWVkaWFUeXBlRXhjZXB0aW9uXCI7XG5jb25zdCBfVVIgPSBcIlVudGFnUmVzb3VyY2VcIjtcbmNvbnN0IF9VUkkgPSBcIlVSSVwiO1xuY29uc3QgX1VSTyA9IFwiVXBkYXRlUnVudGltZU9uXCI7XG5jb25zdCBfVVJSID0gXCJVbnRhZ1Jlc291cmNlUmVxdWVzdFwiO1xuY29uc3QgX1VVSUQgPSBcIlVVSURcIjtcbmNvbnN0IF9WID0gXCJWYXJpYWJsZXNcIjtcbmNvbnN0IF9WQyA9IFwiVnBjQ29uZmlnXCI7XG5jb25zdCBfVkNSID0gXCJWcGNDb25maWdSZXNwb25zZVwiO1xuY29uc3QgX1ZJID0gXCJWcGNJZFwiO1xuY29uc3QgX1ZOID0gXCJWZXJzaW9uTnVtYmVyXCI7XG5jb25zdCBfVmUgPSBcIlZlcnNpb25cIjtcbmNvbnN0IF9WZXIgPSBcIlZlcnNpb25zXCI7XG5jb25zdCBfV0NEID0gXCJXYWl0Q2FuY2VsbGVkRGV0YWlsc1wiO1xuY29uc3QgX1dEID0gXCJXb3JraW5nRGlyZWN0b3J5XCI7XG5jb25zdCBfV0RhID0gXCJXYWl0RGV0YWlsc1wiO1xuY29uc3QgX1dPID0gXCJXYWl0T3B0aW9uc1wiO1xuY29uc3QgX1dTID0gXCJXYWl0U2Vjb25kc1wiO1xuY29uc3QgX1dTRCA9IFwiV2FpdFN0YXJ0ZWREZXRhaWxzXCI7XG5jb25zdCBfV1NEYSA9IFwiV2FpdFN1Y2NlZWRlZERldGFpbHNcIjtcbmNvbnN0IF9YQUNDID0gXCJYLUFtei1DbGllbnQtQ29udGV4dFwiO1xuY29uc3QgX1hBREVBID0gXCJYLUFtei1EdXJhYmxlLUV4ZWN1dGlvbi1Bcm5cIjtcbmNvbnN0IF9YQURFTiA9IFwiWC1BbXotRHVyYWJsZS1FeGVjdXRpb24tTmFtZVwiO1xuY29uc3QgX1hBRVYgPSBcIlgtQW16LUV4ZWN1dGVkLVZlcnNpb25cIjtcbmNvbnN0IF9YQUZFID0gXCJYLUFtei1GdW5jdGlvbi1FcnJvclwiO1xuY29uc3QgX1hBSVQgPSBcIlgtQW16LUludm9jYXRpb24tVHlwZVwiO1xuY29uc3QgX1hBTFIgPSBcIlgtQW16LUxvZy1SZXN1bHRcIjtcbmNvbnN0IF9YQUxUID0gXCJYLUFtei1Mb2ctVHlwZVwiO1xuY29uc3QgX1hBVEkgPSBcIlgtQW16LVRlbmFudC1JZFwiO1xuY29uc3QgX1hBVEltID0gXCJYQW16blRyYWNlSWRcIjtcbmNvbnN0IF9aRiA9IFwiWmlwRmlsZVwiO1xuY29uc3QgX2MgPSBcImNsaWVudFwiO1xuY29uc3QgX2UgPSBcImVycm9yXCI7XG5jb25zdCBfZVAgPSBcImV2ZW50UGF5bG9hZFwiO1xuY29uc3QgX2ggPSBcImh0dHBcIjtcbmNvbnN0IF9oRSA9IFwiaHR0cEVycm9yXCI7XG5jb25zdCBfaEggPSBcImh0dHBIZWFkZXJcIjtcbmNvbnN0IF9oUSA9IFwiaHR0cFF1ZXJ5XCI7XG5jb25zdCBfbSA9IFwibWVzc2FnZVwiO1xuY29uc3QgX3JBUyA9IFwicmV0cnlBZnRlclNlY29uZHNcIjtcbmNvbnN0IF9zID0gXCJzdHJlYW1pbmdcIjtcbmNvbnN0IF9zZSA9IFwic2VydmVyXCI7XG5jb25zdCBfc20gPSBcInNtaXRoeS50cy5zZGsuc3ludGhldGljLmNvbS5hbWF6b25hd3MubGFtYmRhXCI7XG5jb25zdCBfdEsgPSBcInRhZ0tleXNcIjtcbmNvbnN0IG4wID0gXCJjb20uYW1hem9uYXdzLmxhbWJkYVwiO1xudmFyIEJpbmFyeU9wZXJhdGlvblBheWxvYWQgPSBbMCwgbjAsIF9CT1AsIDgsIDIxXTtcbnZhciBfQmxvYiA9IFswLCBuMCwgX0IsIDgsIDIxXTtcbnZhciBCbG9iU3RyZWFtID0gWzAsIG4wLCBfQlMsIHsgW19zXTogMSB9LCA0Ml07XG52YXIgRW52aXJvbm1lbnRWYXJpYWJsZU5hbWUgPSBbMCwgbjAsIF9FVk4sIDgsIDBdO1xudmFyIEVudmlyb25tZW50VmFyaWFibGVWYWx1ZSA9IFswLCBuMCwgX0VWViwgOCwgMF07XG52YXIgRXJyb3JEYXRhID0gWzAsIG4wLCBfRUQsIDgsIDBdO1xudmFyIEVycm9yTWVzc2FnZSA9IFswLCBuMCwgX0VNLCA4LCAwXTtcbnZhciBFcnJvclR5cGUgPSBbMCwgbjAsIF9FVCwgOCwgMF07XG52YXIgSW5wdXRQYXlsb2FkID0gWzAsIG4wLCBfSVAsIDgsIDBdO1xudmFyIE9wZXJhdGlvblBheWxvYWQgPSBbMCwgbjAsIF9PUCwgOCwgMF07XG52YXIgT3V0cHV0UGF5bG9hZCA9IFswLCBuMCwgX09QdSwgOCwgMF07XG52YXIgU2Vuc2l0aXZlU3RyaW5nID0gWzAsIG4wLCBfU1MsIDgsIDBdO1xudmFyIFN0YWNrVHJhY2VFbnRyeSA9IFswLCBuMCwgX1NURSwgOCwgMF07XG52YXIgQWNjb3VudExpbWl0ID0gWzMsIG4wLCBfQUwsIDAsIFtfVENTLCBfQ1NVLCBfQ1NaLCBfQ0UsIF9VQ0VdLCBbMSwgMSwgMSwgMSwgMV1dO1xudmFyIEFjY291bnRVc2FnZSA9IFszLCBuMCwgX0FVLCAwLCBbX1RDUywgX0ZDXSwgWzEsIDFdXTtcbnZhciBBZGRMYXllclZlcnNpb25QZXJtaXNzaW9uUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9BTFZQUixcbiAgICAwLFxuICAgIFtfTE4sIF9WTiwgX1NJLCBfQSwgX1AsIF9PSSwgX1JJXSxcbiAgICBbWzAsIDFdLCBbMSwgMV0sIDAsIDAsIDAsIDAsIFswLCB7IFtfaFFdOiBfUkkgfV1dLFxuXTtcbnZhciBBZGRMYXllclZlcnNpb25QZXJtaXNzaW9uUmVzcG9uc2UgPSBbMywgbjAsIF9BTFZQUmQsIDAsIFtfUywgX1JJXSwgWzAsIDBdXTtcbnZhciBBZGRQZXJtaXNzaW9uUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9BUFIsXG4gICAgMCxcbiAgICBbX0ZOLCBfU0ksIF9BLCBfUCwgX1NBLCBfU0FvLCBfRVNULCBfUSwgX1JJLCBfUE9JRCwgX0ZVQVQsIF9JVkZVXSxcbiAgICBbWzAsIDFdLCAwLCAwLCAwLCAwLCAwLCAwLCBbMCwgeyBbX2hRXTogX1EgfV0sIDAsIDAsIDAsIDJdLFxuXTtcbnZhciBBZGRQZXJtaXNzaW9uUmVzcG9uc2UgPSBbMywgbjAsIF9BUFJkLCAwLCBbX1NdLCBbMF1dO1xudmFyIEFsaWFzQ29uZmlndXJhdGlvbiA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9BQyxcbiAgICAwLFxuICAgIFtfQUEsIF9OLCBfRlYsIF9ELCBfUkMsIF9SSV0sXG4gICAgWzAsIDAsIDAsIDAsICgpID0+IEFsaWFzUm91dGluZ0NvbmZpZ3VyYXRpb24sIDBdLFxuXTtcbnZhciBBbGlhc1JvdXRpbmdDb25maWd1cmF0aW9uID0gWzMsIG4wLCBfQVJDLCAwLCBbX0FWV10sIFsxMjggfCAxXV07XG52YXIgQWxsb3dlZFB1Ymxpc2hlcnMgPSBbMywgbjAsIF9BUCwgMCwgW19TUFZBXSwgWzY0IHwgMF1dO1xudmFyIEFtYXpvbk1hbmFnZWRLYWZrYUV2ZW50U291cmNlQ29uZmlnID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0FNS0VTQyxcbiAgICAwLFxuICAgIFtfQ0dJLCBfU1JDXSxcbiAgICBbMCwgKCkgPT4gS2Fma2FTY2hlbWFSZWdpc3RyeUNvbmZpZ10sXG5dO1xudmFyIENhbGxiYWNrRGV0YWlscyA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9DRCxcbiAgICAwLFxuICAgIFtfQ0ksIF9SLCBfRV0sXG4gICAgWzAsIFsoKSA9PiBPcGVyYXRpb25QYXlsb2FkLCAwXSwgWygpID0+IEVycm9yT2JqZWN0LCAwXV0sXG5dO1xudmFyIENhbGxiYWNrRmFpbGVkRGV0YWlscyA9IFszLCBuMCwgX0NGRCwgMCwgW19FXSwgW1soKSA9PiBFdmVudEVycm9yLCAwXV1dO1xudmFyIENhbGxiYWNrT3B0aW9ucyA9IFszLCBuMCwgX0NPLCAwLCBbX1RTLCBfSFRTXSwgWzEsIDFdXTtcbnZhciBDYWxsYmFja1N0YXJ0ZWREZXRhaWxzID0gWzMsIG4wLCBfQ1NELCAwLCBbX0NJLCBfSFQsIF9UXSwgWzAsIDEsIDFdXTtcbnZhciBDYWxsYmFja1N1Y2NlZWRlZERldGFpbHMgPSBbMywgbjAsIF9DU0RhLCAwLCBbX1JdLCBbWygpID0+IEV2ZW50UmVzdWx0LCAwXV1dO1xudmFyIENhbGxiYWNrVGltZWRPdXREZXRhaWxzID0gWzMsIG4wLCBfQ1RPRCwgMCwgW19FXSwgW1soKSA9PiBFdmVudEVycm9yLCAwXV1dO1xudmFyIENhbGxiYWNrVGltZW91dEV4Y2VwdGlvbiA9IFstMywgbjAsIF9DVEUsIHsgW19lXTogX2MsIFtfaEVdOiA0MDAgfSwgW19UeSwgX01dLCBbMCwgMF1dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoQ2FsbGJhY2tUaW1lb3V0RXhjZXB0aW9uLCBDYWxsYmFja1RpbWVvdXRFeGNlcHRpb24kMSk7XG52YXIgQ2FwYWNpdHlQcm92aWRlciA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9DUCxcbiAgICAwLFxuICAgIFtfQ1BBLCBfU3QsIF9WQywgX1BDLCBfSVIsIF9DUFNDLCBfS0tBLCBfTE1dLFxuICAgIFtcbiAgICAgICAgMCxcbiAgICAgICAgMCxcbiAgICAgICAgKCkgPT4gQ2FwYWNpdHlQcm92aWRlclZwY0NvbmZpZyxcbiAgICAgICAgKCkgPT4gQ2FwYWNpdHlQcm92aWRlclBlcm1pc3Npb25zQ29uZmlnLFxuICAgICAgICAoKSA9PiBJbnN0YW5jZVJlcXVpcmVtZW50cyxcbiAgICAgICAgKCkgPT4gQ2FwYWNpdHlQcm92aWRlclNjYWxpbmdDb25maWcsXG4gICAgICAgIDAsXG4gICAgICAgIDAsXG4gICAgXSxcbl07XG52YXIgQ2FwYWNpdHlQcm92aWRlckNvbmZpZyA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9DUEMsXG4gICAgMCxcbiAgICBbX0xNSUNQQ10sXG4gICAgWygpID0+IExhbWJkYU1hbmFnZWRJbnN0YW5jZXNDYXBhY2l0eVByb3ZpZGVyQ29uZmlnXSxcbl07XG52YXIgQ2FwYWNpdHlQcm92aWRlckxpbWl0RXhjZWVkZWRFeGNlcHRpb24gPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX0NQTEVFLFxuICAgIHsgW19lXTogX2MsIFtfaEVdOiA0MDAgfSxcbiAgICBbX1R5LCBfbV0sXG4gICAgWzAsIDBdLFxuXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKENhcGFjaXR5UHJvdmlkZXJMaW1pdEV4Y2VlZGVkRXhjZXB0aW9uLCBDYXBhY2l0eVByb3ZpZGVyTGltaXRFeGNlZWRlZEV4Y2VwdGlvbiQxKTtcbnZhciBDYXBhY2l0eVByb3ZpZGVyUGVybWlzc2lvbnNDb25maWcgPSBbMywgbjAsIF9DUFBDLCAwLCBbX0NQT1JBXSwgWzBdXTtcbnZhciBDYXBhY2l0eVByb3ZpZGVyU2NhbGluZ0NvbmZpZyA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9DUFNDLFxuICAgIDAsXG4gICAgW19NVkNDLCBfU00sIF9TUF0sXG4gICAgWzEsIDAsICgpID0+IENhcGFjaXR5UHJvdmlkZXJTY2FsaW5nUG9saWNpZXNMaXN0XSxcbl07XG52YXIgQ2FwYWNpdHlQcm92aWRlclZwY0NvbmZpZyA9IFszLCBuMCwgX0NQVkMsIDAsIFtfU0l1LCBfU0dJXSwgWzY0IHwgMCwgNjQgfCAwXV07XG52YXIgQ2hhaW5lZEludm9rZURldGFpbHMgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfQ0lELFxuICAgIDAsXG4gICAgW19SLCBfRV0sXG4gICAgW1xuICAgICAgICBbKCkgPT4gT3BlcmF0aW9uUGF5bG9hZCwgMF0sXG4gICAgICAgIFsoKSA9PiBFcnJvck9iamVjdCwgMF0sXG4gICAgXSxcbl07XG52YXIgQ2hhaW5lZEludm9rZUZhaWxlZERldGFpbHMgPSBbMywgbjAsIF9DSUZELCAwLCBbX0VdLCBbWygpID0+IEV2ZW50RXJyb3IsIDBdXV07XG52YXIgQ2hhaW5lZEludm9rZU9wdGlvbnMgPSBbMywgbjAsIF9DSU8sIDAsIFtfRk4sIF9USV0sIFswLCAwXV07XG52YXIgQ2hhaW5lZEludm9rZVN0YXJ0ZWREZXRhaWxzID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0NJU0QsXG4gICAgMCxcbiAgICBbX0ZOLCBfVEksIF9JLCBfRVYsIF9ERUFdLFxuICAgIFswLCAwLCBbKCkgPT4gRXZlbnRJbnB1dCwgMF0sIDAsIDBdLFxuXTtcbnZhciBDaGFpbmVkSW52b2tlU3RvcHBlZERldGFpbHMgPSBbMywgbjAsIF9DSVNEaCwgMCwgW19FXSwgW1soKSA9PiBFdmVudEVycm9yLCAwXV1dO1xudmFyIENoYWluZWRJbnZva2VTdWNjZWVkZWREZXRhaWxzID0gWzMsIG4wLCBfQ0lTRGhhLCAwLCBbX1JdLCBbWygpID0+IEV2ZW50UmVzdWx0LCAwXV1dO1xudmFyIENoYWluZWRJbnZva2VUaW1lZE91dERldGFpbHMgPSBbMywgbjAsIF9DSVRPRCwgMCwgW19FXSwgW1soKSA9PiBFdmVudEVycm9yLCAwXV1dO1xudmFyIENoZWNrcG9pbnREdXJhYmxlRXhlY3V0aW9uUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9DREVSLFxuICAgIDAsXG4gICAgW19ERUEsIF9DVCwgX1UsIF9DVGxdLFxuICAgIFtbMCwgMV0sIDAsIFsoKSA9PiBPcGVyYXRpb25VcGRhdGVzLCAwXSwgWzAsIDRdXSxcbl07XG52YXIgQ2hlY2twb2ludER1cmFibGVFeGVjdXRpb25SZXNwb25zZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9DREVSaCxcbiAgICAwLFxuICAgIFtfQ1QsIF9ORVNdLFxuICAgIFswLCBbKCkgPT4gQ2hlY2twb2ludFVwZGF0ZWRFeGVjdXRpb25TdGF0ZSwgMF1dLFxuXTtcbnZhciBDaGVja3BvaW50VXBkYXRlZEV4ZWN1dGlvblN0YXRlID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0NVRVMsXG4gICAgMCxcbiAgICBbX08sIF9OTV0sXG4gICAgW1soKSA9PiBPcGVyYXRpb25zLCAwXSwgMF0sXG5dO1xudmFyIENvZGVTaWduaW5nQ29uZmlnID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0NTQyxcbiAgICAwLFxuICAgIFtfQ1NDSSwgX0NTQ0EsIF9ELCBfQVAsIF9DU1AsIF9MTV0sXG4gICAgWzAsIDAsIDAsICgpID0+IEFsbG93ZWRQdWJsaXNoZXJzLCAoKSA9PiBDb2RlU2lnbmluZ1BvbGljaWVzLCAwXSxcbl07XG52YXIgQ29kZVNpZ25pbmdDb25maWdOb3RGb3VuZEV4Y2VwdGlvbiA9IFtcbiAgICAtMyxcbiAgICBuMCxcbiAgICBfQ1NDTkZFLFxuICAgIHsgW19lXTogX2MsIFtfaEVdOiA0MDQgfSxcbiAgICBbX1R5LCBfTV0sXG4gICAgWzAsIDBdLFxuXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKENvZGVTaWduaW5nQ29uZmlnTm90Rm91bmRFeGNlcHRpb24sIENvZGVTaWduaW5nQ29uZmlnTm90Rm91bmRFeGNlcHRpb24kMSk7XG52YXIgQ29kZVNpZ25pbmdQb2xpY2llcyA9IFszLCBuMCwgX0NTUCwgMCwgW19VQU9EXSwgWzBdXTtcbnZhciBDb2RlU3RvcmFnZUV4Y2VlZGVkRXhjZXB0aW9uID0gW1xuICAgIC0zLFxuICAgIG4wLFxuICAgIF9DU0VFLFxuICAgIHsgW19lXTogX2MsIFtfaEVdOiA0MDAgfSxcbiAgICBbX1R5LCBfbV0sXG4gICAgWzAsIDBdLFxuXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKENvZGVTdG9yYWdlRXhjZWVkZWRFeGNlcHRpb24sIENvZGVTdG9yYWdlRXhjZWVkZWRFeGNlcHRpb24kMSk7XG52YXIgQ29kZVZlcmlmaWNhdGlvbkZhaWxlZEV4Y2VwdGlvbiA9IFtcbiAgICAtMyxcbiAgICBuMCxcbiAgICBfQ1ZGRSxcbiAgICB7IFtfZV06IF9jLCBbX2hFXTogNDAwIH0sXG4gICAgW19UeSwgX01dLFxuICAgIFswLCAwXSxcbl07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihDb2RlVmVyaWZpY2F0aW9uRmFpbGVkRXhjZXB0aW9uLCBDb2RlVmVyaWZpY2F0aW9uRmFpbGVkRXhjZXB0aW9uJDEpO1xudmFyIENvbmN1cnJlbmN5ID0gWzMsIG4wLCBfQywgMCwgW19SQ0VdLCBbMV1dO1xudmFyIENvbnRleHREZXRhaWxzID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0NEbyxcbiAgICAwLFxuICAgIFtfUkNlLCBfUiwgX0VdLFxuICAgIFsyLCBbKCkgPT4gT3BlcmF0aW9uUGF5bG9hZCwgMF0sIFsoKSA9PiBFcnJvck9iamVjdCwgMF1dLFxuXTtcbnZhciBDb250ZXh0RmFpbGVkRGV0YWlscyA9IFszLCBuMCwgX0NGRG8sIDAsIFtfRV0sIFtbKCkgPT4gRXZlbnRFcnJvciwgMF1dXTtcbnZhciBDb250ZXh0T3B0aW9ucyA9IFszLCBuMCwgX0NPbywgMCwgW19SQ2VdLCBbMl1dO1xudmFyIENvbnRleHRTdGFydGVkRGV0YWlscyA9IFszLCBuMCwgX0NTRG8sIDAsIFtdLCBbXV07XG52YXIgQ29udGV4dFN1Y2NlZWRlZERldGFpbHMgPSBbMywgbjAsIF9DU0RvbiwgMCwgW19SXSwgW1soKSA9PiBFdmVudFJlc3VsdCwgMF1dXTtcbnZhciBDb3JzID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0NvLFxuICAgIDAsXG4gICAgW19BQ2wsIF9BSCwgX0FNLCBfQU8sIF9FSCwgX01BXSxcbiAgICBbMiwgNjQgfCAwLCA2NCB8IDAsIDY0IHwgMCwgNjQgfCAwLCAxXSxcbl07XG52YXIgQ3JlYXRlQWxpYXNSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0NBUixcbiAgICAwLFxuICAgIFtfRk4sIF9OLCBfRlYsIF9ELCBfUkNdLFxuICAgIFtbMCwgMV0sIDAsIDAsIDAsICgpID0+IEFsaWFzUm91dGluZ0NvbmZpZ3VyYXRpb25dLFxuXTtcbnZhciBDcmVhdGVDYXBhY2l0eVByb3ZpZGVyUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9DQ1BSLFxuICAgIDAsXG4gICAgW19DUE4sIF9WQywgX1BDLCBfSVIsIF9DUFNDLCBfS0tBLCBfVGFdLFxuICAgIFtcbiAgICAgICAgMCxcbiAgICAgICAgKCkgPT4gQ2FwYWNpdHlQcm92aWRlclZwY0NvbmZpZyxcbiAgICAgICAgKCkgPT4gQ2FwYWNpdHlQcm92aWRlclBlcm1pc3Npb25zQ29uZmlnLFxuICAgICAgICAoKSA9PiBJbnN0YW5jZVJlcXVpcmVtZW50cyxcbiAgICAgICAgKCkgPT4gQ2FwYWNpdHlQcm92aWRlclNjYWxpbmdDb25maWcsXG4gICAgICAgIDAsXG4gICAgICAgIDEyOCB8IDAsXG4gICAgXSxcbl07XG52YXIgQ3JlYXRlQ2FwYWNpdHlQcm92aWRlclJlc3BvbnNlID0gWzMsIG4wLCBfQ0NQUnIsIDAsIFtfQ1BdLCBbKCkgPT4gQ2FwYWNpdHlQcm92aWRlcl1dO1xudmFyIENyZWF0ZUNvZGVTaWduaW5nQ29uZmlnUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9DQ1NDUixcbiAgICAwLFxuICAgIFtfRCwgX0FQLCBfQ1NQLCBfVGFdLFxuICAgIFswLCAoKSA9PiBBbGxvd2VkUHVibGlzaGVycywgKCkgPT4gQ29kZVNpZ25pbmdQb2xpY2llcywgMTI4IHwgMF0sXG5dO1xudmFyIENyZWF0ZUNvZGVTaWduaW5nQ29uZmlnUmVzcG9uc2UgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfQ0NTQ1JyLFxuICAgIDAsXG4gICAgW19DU0NdLFxuICAgIFsoKSA9PiBDb2RlU2lnbmluZ0NvbmZpZ10sXG5dO1xudmFyIENyZWF0ZUV2ZW50U291cmNlTWFwcGluZ1JlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfQ0VTTVIsXG4gICAgMCxcbiAgICBbXG4gICAgICAgIF9FU0EsXG4gICAgICAgIF9GTixcbiAgICAgICAgX0VuLFxuICAgICAgICBfQlNhLFxuICAgICAgICBfRkNpLFxuICAgICAgICBfTUJXSVMsXG4gICAgICAgIF9QRixcbiAgICAgICAgX1NQdCxcbiAgICAgICAgX1NQVCxcbiAgICAgICAgX0RDLFxuICAgICAgICBfTVJBSVMsXG4gICAgICAgIF9CQk9GRSxcbiAgICAgICAgX01SQSxcbiAgICAgICAgX1RhLFxuICAgICAgICBfVFdJUyxcbiAgICAgICAgX1RvLFxuICAgICAgICBfUXUsXG4gICAgICAgIF9TQUMsXG4gICAgICAgIF9TTUVTLFxuICAgICAgICBfRlJULFxuICAgICAgICBfQU1LRVNDLFxuICAgICAgICBfU01LRVNDLFxuICAgICAgICBfU0MsXG4gICAgICAgIF9EREJFU0MsXG4gICAgICAgIF9LTVNLQSxcbiAgICAgICAgX01DLFxuICAgICAgICBfUFBDLFxuICAgIF0sXG4gICAgW1xuICAgICAgICAwLFxuICAgICAgICAwLFxuICAgICAgICAyLFxuICAgICAgICAxLFxuICAgICAgICAoKSA9PiBGaWx0ZXJDcml0ZXJpYSxcbiAgICAgICAgMSxcbiAgICAgICAgMSxcbiAgICAgICAgMCxcbiAgICAgICAgNCxcbiAgICAgICAgKCkgPT4gRGVzdGluYXRpb25Db25maWcsXG4gICAgICAgIDEsXG4gICAgICAgIDIsXG4gICAgICAgIDEsXG4gICAgICAgIDEyOCB8IDAsXG4gICAgICAgIDEsXG4gICAgICAgIDY0IHwgMCxcbiAgICAgICAgNjQgfCAwLFxuICAgICAgICAoKSA9PiBTb3VyY2VBY2Nlc3NDb25maWd1cmF0aW9ucyxcbiAgICAgICAgKCkgPT4gU2VsZk1hbmFnZWRFdmVudFNvdXJjZSxcbiAgICAgICAgNjQgfCAwLFxuICAgICAgICAoKSA9PiBBbWF6b25NYW5hZ2VkS2Fma2FFdmVudFNvdXJjZUNvbmZpZyxcbiAgICAgICAgKCkgPT4gU2VsZk1hbmFnZWRLYWZrYUV2ZW50U291cmNlQ29uZmlnLFxuICAgICAgICAoKSA9PiBTY2FsaW5nQ29uZmlnLFxuICAgICAgICAoKSA9PiBEb2N1bWVudERCRXZlbnRTb3VyY2VDb25maWcsXG4gICAgICAgIDAsXG4gICAgICAgICgpID0+IEV2ZW50U291cmNlTWFwcGluZ01ldHJpY3NDb25maWcsXG4gICAgICAgICgpID0+IFByb3Zpc2lvbmVkUG9sbGVyQ29uZmlnLFxuICAgIF0sXG5dO1xudmFyIENyZWF0ZUZ1bmN0aW9uUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9DRlIsXG4gICAgMCxcbiAgICBbXG4gICAgICAgIF9GTixcbiAgICAgICAgX1J1LFxuICAgICAgICBfUm8sXG4gICAgICAgIF9ILFxuICAgICAgICBfQ29kLFxuICAgICAgICBfRCxcbiAgICAgICAgX1QsXG4gICAgICAgIF9NUyxcbiAgICAgICAgX1B1LFxuICAgICAgICBfVkMsXG4gICAgICAgIF9QVCxcbiAgICAgICAgX0RMQyxcbiAgICAgICAgX0VudixcbiAgICAgICAgX0tNU0tBLFxuICAgICAgICBfVEMsXG4gICAgICAgIF9UYSxcbiAgICAgICAgX0wsXG4gICAgICAgIF9GU0MsXG4gICAgICAgIF9JQyxcbiAgICAgICAgX0NTQ0EsXG4gICAgICAgIF9BcixcbiAgICAgICAgX0VTLFxuICAgICAgICBfU1NuLFxuICAgICAgICBfTEMsXG4gICAgICAgIF9DUEMsXG4gICAgICAgIF9QVHUsXG4gICAgICAgIF9EQ3UsXG4gICAgICAgIF9UQ2UsXG4gICAgXSxcbiAgICBbXG4gICAgICAgIDAsXG4gICAgICAgIDAsXG4gICAgICAgIDAsXG4gICAgICAgIDAsXG4gICAgICAgIFsoKSA9PiBGdW5jdGlvbkNvZGUsIDBdLFxuICAgICAgICAwLFxuICAgICAgICAxLFxuICAgICAgICAxLFxuICAgICAgICAyLFxuICAgICAgICAoKSA9PiBWcGNDb25maWcsXG4gICAgICAgIDAsXG4gICAgICAgICgpID0+IERlYWRMZXR0ZXJDb25maWcsXG4gICAgICAgIFsoKSA9PiBFbnZpcm9ubWVudCwgMF0sXG4gICAgICAgIDAsXG4gICAgICAgICgpID0+IFRyYWNpbmdDb25maWcsXG4gICAgICAgIDEyOCB8IDAsXG4gICAgICAgIDY0IHwgMCxcbiAgICAgICAgKCkgPT4gRmlsZVN5c3RlbUNvbmZpZ0xpc3QsXG4gICAgICAgICgpID0+IEltYWdlQ29uZmlnLFxuICAgICAgICAwLFxuICAgICAgICA2NCB8IDAsXG4gICAgICAgICgpID0+IEVwaGVtZXJhbFN0b3JhZ2UsXG4gICAgICAgICgpID0+IFNuYXBTdGFydCxcbiAgICAgICAgKCkgPT4gTG9nZ2luZ0NvbmZpZyxcbiAgICAgICAgKCkgPT4gQ2FwYWNpdHlQcm92aWRlckNvbmZpZyxcbiAgICAgICAgMCxcbiAgICAgICAgKCkgPT4gRHVyYWJsZUNvbmZpZyxcbiAgICAgICAgKCkgPT4gVGVuYW5jeUNvbmZpZyxcbiAgICBdLFxuXTtcbnZhciBDcmVhdGVGdW5jdGlvblVybENvbmZpZ1JlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfQ0ZVQ1IsXG4gICAgMCxcbiAgICBbX0ZOLCBfUSwgX0FULCBfQ28sIF9JTV0sXG4gICAgW1swLCAxXSwgWzAsIHsgW19oUV06IF9RIH1dLCAwLCAoKSA9PiBDb3JzLCAwXSxcbl07XG52YXIgQ3JlYXRlRnVuY3Rpb25VcmxDb25maWdSZXNwb25zZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9DRlVDUnIsXG4gICAgMCxcbiAgICBbX0ZVLCBfRkEsIF9BVCwgX0NvLCBfQ1RyLCBfSU1dLFxuICAgIFswLCAwLCAwLCAoKSA9PiBDb3JzLCAwLCAwXSxcbl07XG52YXIgRGVhZExldHRlckNvbmZpZyA9IFszLCBuMCwgX0RMQywgMCwgW19UQV0sIFswXV07XG52YXIgRGVsZXRlQWxpYXNSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0RBUixcbiAgICAwLFxuICAgIFtfRk4sIF9OXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIDFdLFxuICAgIF0sXG5dO1xudmFyIERlbGV0ZUNhcGFjaXR5UHJvdmlkZXJSZXF1ZXN0ID0gWzMsIG4wLCBfRENQUiwgMCwgW19DUE5dLCBbWzAsIDFdXV07XG52YXIgRGVsZXRlQ2FwYWNpdHlQcm92aWRlclJlc3BvbnNlID0gWzMsIG4wLCBfRENQUmUsIDAsIFtfQ1BdLCBbKCkgPT4gQ2FwYWNpdHlQcm92aWRlcl1dO1xudmFyIERlbGV0ZUNvZGVTaWduaW5nQ29uZmlnUmVxdWVzdCA9IFszLCBuMCwgX0RDU0NSLCAwLCBbX0NTQ0FdLCBbWzAsIDFdXV07XG52YXIgRGVsZXRlQ29kZVNpZ25pbmdDb25maWdSZXNwb25zZSA9IFszLCBuMCwgX0RDU0NSZSwgMCwgW10sIFtdXTtcbnZhciBEZWxldGVFdmVudFNvdXJjZU1hcHBpbmdSZXF1ZXN0ID0gWzMsIG4wLCBfREVTTVIsIDAsIFtfVVVJRF0sIFtbMCwgMV1dXTtcbnZhciBEZWxldGVGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnUmVxdWVzdCA9IFszLCBuMCwgX0RGQ1NDUiwgMCwgW19GTl0sIFtbMCwgMV1dXTtcbnZhciBEZWxldGVGdW5jdGlvbkNvbmN1cnJlbmN5UmVxdWVzdCA9IFszLCBuMCwgX0RGQ1IsIDAsIFtfRk5dLCBbWzAsIDFdXV07XG52YXIgRGVsZXRlRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ1JlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfREZFSUNSLFxuICAgIDAsXG4gICAgW19GTiwgX1FdLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hRXTogX1EgfV0sXG4gICAgXSxcbl07XG52YXIgRGVsZXRlRnVuY3Rpb25SZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0RGUixcbiAgICAwLFxuICAgIFtfRk4sIF9RXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oUV06IF9RIH1dLFxuICAgIF0sXG5dO1xudmFyIERlbGV0ZUZ1bmN0aW9uUmVzcG9uc2UgPSBbMywgbjAsIF9ERlJlLCAwLCBbX1NDdF0sIFtbMSwgMzJdXV07XG52YXIgRGVsZXRlRnVuY3Rpb25VcmxDb25maWdSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0RGVUNSLFxuICAgIDAsXG4gICAgW19GTiwgX1FdLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hRXTogX1EgfV0sXG4gICAgXSxcbl07XG52YXIgRGVsZXRlTGF5ZXJWZXJzaW9uUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9ETFZSLFxuICAgIDAsXG4gICAgW19MTiwgX1ZOXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzEsIDFdLFxuICAgIF0sXG5dO1xudmFyIERlbGV0ZVByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0RQQ0NSLFxuICAgIDAsXG4gICAgW19GTiwgX1FdLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hRXTogX1EgfV0sXG4gICAgXSxcbl07XG52YXIgRGVzdGluYXRpb25Db25maWcgPSBbMywgbjAsIF9EQywgMCwgW19PUywgX09GXSwgWygpID0+IE9uU3VjY2VzcywgKCkgPT4gT25GYWlsdXJlXV07XG52YXIgRG9jdW1lbnREQkV2ZW50U291cmNlQ29uZmlnID0gWzMsIG4wLCBfRERCRVNDLCAwLCBbX0ROLCBfQ04sIF9GRF0sIFswLCAwLCAwXV07XG52YXIgRHVyYWJsZUNvbmZpZyA9IFszLCBuMCwgX0RDdSwgMCwgW19SUElELCBfRVR4XSwgWzEsIDFdXTtcbnZhciBEdXJhYmxlRXhlY3V0aW9uQWxyZWFkeVN0YXJ0ZWRFeGNlcHRpb24gPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX0RFQVNFLFxuICAgIHsgW19lXTogX2MsIFtfaEVdOiA0MDkgfSxcbiAgICBbX1R5LCBfTV0sXG4gICAgWzAsIDBdLFxuXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKER1cmFibGVFeGVjdXRpb25BbHJlYWR5U3RhcnRlZEV4Y2VwdGlvbiwgRHVyYWJsZUV4ZWN1dGlvbkFscmVhZHlTdGFydGVkRXhjZXB0aW9uJDEpO1xudmFyIEVDMkFjY2Vzc0RlbmllZEV4Y2VwdGlvbiA9IFstMywgbjAsIF9FQ0FERSwgeyBbX2VdOiBfc2UsIFtfaEVdOiA1MDIgfSwgW19UeSwgX01dLCBbMCwgMF1dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoRUMyQWNjZXNzRGVuaWVkRXhjZXB0aW9uLCBFQzJBY2Nlc3NEZW5pZWRFeGNlcHRpb24kMSk7XG52YXIgRUMyVGhyb3R0bGVkRXhjZXB0aW9uID0gWy0zLCBuMCwgX0VDVEUsIHsgW19lXTogX3NlLCBbX2hFXTogNTAyIH0sIFtfVHksIF9NXSwgWzAsIDBdXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKEVDMlRocm90dGxlZEV4Y2VwdGlvbiwgRUMyVGhyb3R0bGVkRXhjZXB0aW9uJDEpO1xudmFyIEVDMlVuZXhwZWN0ZWRFeGNlcHRpb24gPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX0VDVUUsXG4gICAgeyBbX2VdOiBfc2UsIFtfaEVdOiA1MDIgfSxcbiAgICBbX1R5LCBfTSwgX0VDRUNdLFxuICAgIFswLCAwLCAwXSxcbl07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihFQzJVbmV4cGVjdGVkRXhjZXB0aW9uLCBFQzJVbmV4cGVjdGVkRXhjZXB0aW9uJDEpO1xudmFyIEVGU0lPRXhjZXB0aW9uID0gWy0zLCBuMCwgX0VGU0lPRSwgeyBbX2VdOiBfYywgW19oRV06IDQxMCB9LCBbX1R5LCBfTV0sIFswLCAwXV07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihFRlNJT0V4Y2VwdGlvbiwgRUZTSU9FeGNlcHRpb24kMSk7XG52YXIgRUZTTW91bnRDb25uZWN0aXZpdHlFeGNlcHRpb24gPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX0VGU01DRSxcbiAgICB7IFtfZV06IF9jLCBbX2hFXTogNDA4IH0sXG4gICAgW19UeSwgX01dLFxuICAgIFswLCAwXSxcbl07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihFRlNNb3VudENvbm5lY3Rpdml0eUV4Y2VwdGlvbiwgRUZTTW91bnRDb25uZWN0aXZpdHlFeGNlcHRpb24kMSk7XG52YXIgRUZTTW91bnRGYWlsdXJlRXhjZXB0aW9uID0gWy0zLCBuMCwgX0VGU01GRSwgeyBbX2VdOiBfYywgW19oRV06IDQwMyB9LCBbX1R5LCBfTV0sIFswLCAwXV07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihFRlNNb3VudEZhaWx1cmVFeGNlcHRpb24sIEVGU01vdW50RmFpbHVyZUV4Y2VwdGlvbiQxKTtcbnZhciBFRlNNb3VudFRpbWVvdXRFeGNlcHRpb24gPSBbLTMsIG4wLCBfRUZTTVRFLCB7IFtfZV06IF9jLCBbX2hFXTogNDA4IH0sIFtfVHksIF9NXSwgWzAsIDBdXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKEVGU01vdW50VGltZW91dEV4Y2VwdGlvbiwgRUZTTW91bnRUaW1lb3V0RXhjZXB0aW9uJDEpO1xudmFyIEVOSUxpbWl0UmVhY2hlZEV4Y2VwdGlvbiA9IFtcbiAgICAtMyxcbiAgICBuMCxcbiAgICBfRU5JTFJFLFxuICAgIHsgW19lXTogX3NlLCBbX2hFXTogNTAyIH0sXG4gICAgW19UeSwgX01dLFxuICAgIFswLCAwXSxcbl07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihFTklMaW1pdFJlYWNoZWRFeGNlcHRpb24sIEVOSUxpbWl0UmVhY2hlZEV4Y2VwdGlvbiQxKTtcbnZhciBFbnZpcm9ubWVudCA9IFszLCBuMCwgX0VudiwgMCwgW19WXSwgW1soKSA9PiBFbnZpcm9ubWVudFZhcmlhYmxlcywgMF1dXTtcbnZhciBFbnZpcm9ubWVudEVycm9yID0gWzMsIG4wLCBfRUUsIDAsIFtfRUMsIF9NXSwgWzAsIFsoKSA9PiBTZW5zaXRpdmVTdHJpbmcsIDBdXV07XG52YXIgRW52aXJvbm1lbnRSZXNwb25zZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9FUixcbiAgICAwLFxuICAgIFtfViwgX0VdLFxuICAgIFtcbiAgICAgICAgWygpID0+IEVudmlyb25tZW50VmFyaWFibGVzLCAwXSxcbiAgICAgICAgWygpID0+IEVudmlyb25tZW50RXJyb3IsIDBdLFxuICAgIF0sXG5dO1xudmFyIEVwaGVtZXJhbFN0b3JhZ2UgPSBbMywgbjAsIF9FUywgMCwgW19TaV0sIFsxXV07XG52YXIgRXJyb3JPYmplY3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfRU8sXG4gICAgMCxcbiAgICBbX0VNLCBfRVQsIF9FRCwgX1NUXSxcbiAgICBbXG4gICAgICAgIFsoKSA9PiBFcnJvck1lc3NhZ2UsIDBdLFxuICAgICAgICBbKCkgPT4gRXJyb3JUeXBlLCAwXSxcbiAgICAgICAgWygpID0+IEVycm9yRGF0YSwgMF0sXG4gICAgICAgIFsoKSA9PiBTdGFja1RyYWNlRW50cmllcywgMF0sXG4gICAgXSxcbl07XG52YXIgRXZlbnQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfRXYsXG4gICAgMCxcbiAgICBbXG4gICAgICAgIF9FVHYsXG4gICAgICAgIF9TVHUsXG4gICAgICAgIF9FSSxcbiAgICAgICAgX0lkLFxuICAgICAgICBfTixcbiAgICAgICAgX0VUdmUsXG4gICAgICAgIF9QSSxcbiAgICAgICAgX0VTRCxcbiAgICAgICAgX0VTRHgsXG4gICAgICAgIF9FRkQsXG4gICAgICAgIF9FVE9ELFxuICAgICAgICBfRVNEeGUsXG4gICAgICAgIF9DU0RvLFxuICAgICAgICBfQ1NEb24sXG4gICAgICAgIF9DRkRvLFxuICAgICAgICBfV1NELFxuICAgICAgICBfV1NEYSxcbiAgICAgICAgX1dDRCxcbiAgICAgICAgX1NTRCxcbiAgICAgICAgX1NTRHQsXG4gICAgICAgIF9TRkQsXG4gICAgICAgIF9DSVNELFxuICAgICAgICBfQ0lTRGhhLFxuICAgICAgICBfQ0lGRCxcbiAgICAgICAgX0NJVE9ELFxuICAgICAgICBfQ0lTRGgsXG4gICAgICAgIF9DU0QsXG4gICAgICAgIF9DU0RhLFxuICAgICAgICBfQ0ZELFxuICAgICAgICBfQ1RPRCxcbiAgICAgICAgX0lDRCxcbiAgICBdLFxuICAgIFtcbiAgICAgICAgMCxcbiAgICAgICAgMCxcbiAgICAgICAgMSxcbiAgICAgICAgMCxcbiAgICAgICAgMCxcbiAgICAgICAgNCxcbiAgICAgICAgMCxcbiAgICAgICAgWygpID0+IEV4ZWN1dGlvblN0YXJ0ZWREZXRhaWxzLCAwXSxcbiAgICAgICAgWygpID0+IEV4ZWN1dGlvblN1Y2NlZWRlZERldGFpbHMsIDBdLFxuICAgICAgICBbKCkgPT4gRXhlY3V0aW9uRmFpbGVkRGV0YWlscywgMF0sXG4gICAgICAgIFsoKSA9PiBFeGVjdXRpb25UaW1lZE91dERldGFpbHMsIDBdLFxuICAgICAgICBbKCkgPT4gRXhlY3V0aW9uU3RvcHBlZERldGFpbHMsIDBdLFxuICAgICAgICAoKSA9PiBDb250ZXh0U3RhcnRlZERldGFpbHMsXG4gICAgICAgIFsoKSA9PiBDb250ZXh0U3VjY2VlZGVkRGV0YWlscywgMF0sXG4gICAgICAgIFsoKSA9PiBDb250ZXh0RmFpbGVkRGV0YWlscywgMF0sXG4gICAgICAgICgpID0+IFdhaXRTdGFydGVkRGV0YWlscyxcbiAgICAgICAgKCkgPT4gV2FpdFN1Y2NlZWRlZERldGFpbHMsXG4gICAgICAgIFsoKSA9PiBXYWl0Q2FuY2VsbGVkRGV0YWlscywgMF0sXG4gICAgICAgICgpID0+IFN0ZXBTdGFydGVkRGV0YWlscyxcbiAgICAgICAgWygpID0+IFN0ZXBTdWNjZWVkZWREZXRhaWxzLCAwXSxcbiAgICAgICAgWygpID0+IFN0ZXBGYWlsZWREZXRhaWxzLCAwXSxcbiAgICAgICAgWygpID0+IENoYWluZWRJbnZva2VTdGFydGVkRGV0YWlscywgMF0sXG4gICAgICAgIFsoKSA9PiBDaGFpbmVkSW52b2tlU3VjY2VlZGVkRGV0YWlscywgMF0sXG4gICAgICAgIFsoKSA9PiBDaGFpbmVkSW52b2tlRmFpbGVkRGV0YWlscywgMF0sXG4gICAgICAgIFsoKSA9PiBDaGFpbmVkSW52b2tlVGltZWRPdXREZXRhaWxzLCAwXSxcbiAgICAgICAgWygpID0+IENoYWluZWRJbnZva2VTdG9wcGVkRGV0YWlscywgMF0sXG4gICAgICAgICgpID0+IENhbGxiYWNrU3RhcnRlZERldGFpbHMsXG4gICAgICAgIFsoKSA9PiBDYWxsYmFja1N1Y2NlZWRlZERldGFpbHMsIDBdLFxuICAgICAgICBbKCkgPT4gQ2FsbGJhY2tGYWlsZWREZXRhaWxzLCAwXSxcbiAgICAgICAgWygpID0+IENhbGxiYWNrVGltZWRPdXREZXRhaWxzLCAwXSxcbiAgICAgICAgWygpID0+IEludm9jYXRpb25Db21wbGV0ZWREZXRhaWxzLCAwXSxcbiAgICBdLFxuXTtcbnZhciBFdmVudEVycm9yID0gWzMsIG4wLCBfRUV2LCAwLCBbX1BhLCBfVHJdLCBbWygpID0+IEVycm9yT2JqZWN0LCAwXSwgMl1dO1xudmFyIEV2ZW50SW5wdXQgPSBbMywgbjAsIF9FSXYsIDAsIFtfUGEsIF9Ucl0sIFtbKCkgPT4gSW5wdXRQYXlsb2FkLCAwXSwgMl1dO1xudmFyIEV2ZW50UmVzdWx0ID0gWzMsIG4wLCBfRVJ2LCAwLCBbX1BhLCBfVHJdLCBbWygpID0+IE9wZXJhdGlvblBheWxvYWQsIDBdLCAyXV07XG52YXIgRXZlbnRTb3VyY2VNYXBwaW5nQ29uZmlndXJhdGlvbiA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9FU01DLFxuICAgIDAsXG4gICAgW1xuICAgICAgICBfVVVJRCxcbiAgICAgICAgX1NQdCxcbiAgICAgICAgX1NQVCxcbiAgICAgICAgX0JTYSxcbiAgICAgICAgX01CV0lTLFxuICAgICAgICBfUEYsXG4gICAgICAgIF9FU0EsXG4gICAgICAgIF9GQ2ksXG4gICAgICAgIF9GQSxcbiAgICAgICAgX0xNLFxuICAgICAgICBfTFBSLFxuICAgICAgICBfU3QsXG4gICAgICAgIF9TVFIsXG4gICAgICAgIF9EQyxcbiAgICAgICAgX1RvLFxuICAgICAgICBfUXUsXG4gICAgICAgIF9TQUMsXG4gICAgICAgIF9TTUVTLFxuICAgICAgICBfTVJBSVMsXG4gICAgICAgIF9CQk9GRSxcbiAgICAgICAgX01SQSxcbiAgICAgICAgX1RXSVMsXG4gICAgICAgIF9GUlQsXG4gICAgICAgIF9BTUtFU0MsXG4gICAgICAgIF9TTUtFU0MsXG4gICAgICAgIF9TQyxcbiAgICAgICAgX0REQkVTQyxcbiAgICAgICAgX0tNU0tBLFxuICAgICAgICBfRkNFLFxuICAgICAgICBfRVNNQSxcbiAgICAgICAgX01DLFxuICAgICAgICBfUFBDLFxuICAgIF0sXG4gICAgW1xuICAgICAgICAwLFxuICAgICAgICAwLFxuICAgICAgICA0LFxuICAgICAgICAxLFxuICAgICAgICAxLFxuICAgICAgICAxLFxuICAgICAgICAwLFxuICAgICAgICAoKSA9PiBGaWx0ZXJDcml0ZXJpYSxcbiAgICAgICAgMCxcbiAgICAgICAgNCxcbiAgICAgICAgMCxcbiAgICAgICAgMCxcbiAgICAgICAgMCxcbiAgICAgICAgKCkgPT4gRGVzdGluYXRpb25Db25maWcsXG4gICAgICAgIDY0IHwgMCxcbiAgICAgICAgNjQgfCAwLFxuICAgICAgICAoKSA9PiBTb3VyY2VBY2Nlc3NDb25maWd1cmF0aW9ucyxcbiAgICAgICAgKCkgPT4gU2VsZk1hbmFnZWRFdmVudFNvdXJjZSxcbiAgICAgICAgMSxcbiAgICAgICAgMixcbiAgICAgICAgMSxcbiAgICAgICAgMSxcbiAgICAgICAgNjQgfCAwLFxuICAgICAgICAoKSA9PiBBbWF6b25NYW5hZ2VkS2Fma2FFdmVudFNvdXJjZUNvbmZpZyxcbiAgICAgICAgKCkgPT4gU2VsZk1hbmFnZWRLYWZrYUV2ZW50U291cmNlQ29uZmlnLFxuICAgICAgICAoKSA9PiBTY2FsaW5nQ29uZmlnLFxuICAgICAgICAoKSA9PiBEb2N1bWVudERCRXZlbnRTb3VyY2VDb25maWcsXG4gICAgICAgIDAsXG4gICAgICAgICgpID0+IEZpbHRlckNyaXRlcmlhRXJyb3IsXG4gICAgICAgIDAsXG4gICAgICAgICgpID0+IEV2ZW50U291cmNlTWFwcGluZ01ldHJpY3NDb25maWcsXG4gICAgICAgICgpID0+IFByb3Zpc2lvbmVkUG9sbGVyQ29uZmlnLFxuICAgIF0sXG5dO1xudmFyIEV2ZW50U291cmNlTWFwcGluZ01ldHJpY3NDb25maWcgPSBbMywgbjAsIF9FU01NQywgMCwgW19NZV0sIFs2NCB8IDBdXTtcbnZhciBFeGVjdXRpb24gPSBbMywgbjAsIF9FeCwgMCwgW19ERUEsIF9ERU4sIF9GQSwgX1N0YSwgX1NUdCwgX0VUbl0sIFswLCAwLCAwLCAwLCA0LCA0XV07XG52YXIgRXhlY3V0aW9uRGV0YWlscyA9IFszLCBuMCwgX0VEeCwgMCwgW19JUF0sIFtbKCkgPT4gSW5wdXRQYXlsb2FkLCAwXV1dO1xudmFyIEV4ZWN1dGlvbkZhaWxlZERldGFpbHMgPSBbMywgbjAsIF9FRkQsIDAsIFtfRV0sIFtbKCkgPT4gRXZlbnRFcnJvciwgMF1dXTtcbnZhciBFeGVjdXRpb25TdGFydGVkRGV0YWlscyA9IFszLCBuMCwgX0VTRCwgMCwgW19JLCBfRVR4XSwgW1soKSA9PiBFdmVudElucHV0LCAwXSwgMV1dO1xudmFyIEV4ZWN1dGlvblN0b3BwZWREZXRhaWxzID0gWzMsIG4wLCBfRVNEeGUsIDAsIFtfRV0sIFtbKCkgPT4gRXZlbnRFcnJvciwgMF1dXTtcbnZhciBFeGVjdXRpb25TdWNjZWVkZWREZXRhaWxzID0gWzMsIG4wLCBfRVNEeCwgMCwgW19SXSwgW1soKSA9PiBFdmVudFJlc3VsdCwgMF1dXTtcbnZhciBFeGVjdXRpb25UaW1lZE91dERldGFpbHMgPSBbMywgbjAsIF9FVE9ELCAwLCBbX0VdLCBbWygpID0+IEV2ZW50RXJyb3IsIDBdXV07XG52YXIgRmlsZVN5c3RlbUNvbmZpZyA9IFszLCBuMCwgX0ZTQ2ksIDAsIFtfQXJuLCBfTE1QXSwgWzAsIDBdXTtcbnZhciBGaWx0ZXIgPSBbMywgbjAsIF9GLCAwLCBbX1BhdF0sIFswXV07XG52YXIgRmlsdGVyQ3JpdGVyaWEgPSBbMywgbjAsIF9GQ2ksIDAsIFtfRmldLCBbKCkgPT4gRmlsdGVyTGlzdF1dO1xudmFyIEZpbHRlckNyaXRlcmlhRXJyb3IgPSBbMywgbjAsIF9GQ0UsIDAsIFtfRUMsIF9NXSwgWzAsIDBdXTtcbnZhciBGdW5jdGlvbkNvZGUgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfRkN1LFxuICAgIDAsXG4gICAgW19aRiwgX1NCLCBfU0ssIF9TT1YsIF9JVSwgX1NLTVNLQV0sXG4gICAgW1soKSA9PiBfQmxvYiwgMF0sIDAsIDAsIDAsIDAsIDBdLFxuXTtcbnZhciBGdW5jdGlvbkNvZGVMb2NhdGlvbiA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9GQ0wsXG4gICAgMCxcbiAgICBbX1JULCBfTG8sIF9JVSwgX1JJVSwgX1NLTVNLQV0sXG4gICAgWzAsIDAsIDAsIDAsIDBdLFxuXTtcbnZhciBGdW5jdGlvbkNvbmZpZ3VyYXRpb24gPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfRkN1bixcbiAgICAwLFxuICAgIFtcbiAgICAgICAgX0ZOLFxuICAgICAgICBfRkEsXG4gICAgICAgIF9SdSxcbiAgICAgICAgX1JvLFxuICAgICAgICBfSCxcbiAgICAgICAgX0NTLFxuICAgICAgICBfRCxcbiAgICAgICAgX1QsXG4gICAgICAgIF9NUyxcbiAgICAgICAgX0xNLFxuICAgICAgICBfQ1NvLFxuICAgICAgICBfVmUsXG4gICAgICAgIF9WQyxcbiAgICAgICAgX0RMQyxcbiAgICAgICAgX0VudixcbiAgICAgICAgX0tNU0tBLFxuICAgICAgICBfVEMsXG4gICAgICAgIF9NQWEsXG4gICAgICAgIF9SSSxcbiAgICAgICAgX0wsXG4gICAgICAgIF9TdCxcbiAgICAgICAgX1NSLFxuICAgICAgICBfU1JDdCxcbiAgICAgICAgX0xVUyxcbiAgICAgICAgX0xVU1IsXG4gICAgICAgIF9MVVNSQyxcbiAgICAgICAgX0ZTQyxcbiAgICAgICAgX1BULFxuICAgICAgICBfSUNSLFxuICAgICAgICBfU1BWQWksXG4gICAgICAgIF9TSkEsXG4gICAgICAgIF9BcixcbiAgICAgICAgX0VTLFxuICAgICAgICBfU1NuLFxuICAgICAgICBfUlZDLFxuICAgICAgICBfTEMsXG4gICAgICAgIF9DUEMsXG4gICAgICAgIF9DU29uLFxuICAgICAgICBfREN1LFxuICAgICAgICBfVENlLFxuICAgIF0sXG4gICAgW1xuICAgICAgICAwLFxuICAgICAgICAwLFxuICAgICAgICAwLFxuICAgICAgICAwLFxuICAgICAgICAwLFxuICAgICAgICAxLFxuICAgICAgICAwLFxuICAgICAgICAxLFxuICAgICAgICAxLFxuICAgICAgICAwLFxuICAgICAgICAwLFxuICAgICAgICAwLFxuICAgICAgICAoKSA9PiBWcGNDb25maWdSZXNwb25zZSxcbiAgICAgICAgKCkgPT4gRGVhZExldHRlckNvbmZpZyxcbiAgICAgICAgWygpID0+IEVudmlyb25tZW50UmVzcG9uc2UsIDBdLFxuICAgICAgICAwLFxuICAgICAgICAoKSA9PiBUcmFjaW5nQ29uZmlnUmVzcG9uc2UsXG4gICAgICAgIDAsXG4gICAgICAgIDAsXG4gICAgICAgICgpID0+IExheWVyc1JlZmVyZW5jZUxpc3QsXG4gICAgICAgIDAsXG4gICAgICAgIDAsXG4gICAgICAgIDAsXG4gICAgICAgIDAsXG4gICAgICAgIDAsXG4gICAgICAgIDAsXG4gICAgICAgICgpID0+IEZpbGVTeXN0ZW1Db25maWdMaXN0LFxuICAgICAgICAwLFxuICAgICAgICBbKCkgPT4gSW1hZ2VDb25maWdSZXNwb25zZSwgMF0sXG4gICAgICAgIDAsXG4gICAgICAgIDAsXG4gICAgICAgIDY0IHwgMCxcbiAgICAgICAgKCkgPT4gRXBoZW1lcmFsU3RvcmFnZSxcbiAgICAgICAgKCkgPT4gU25hcFN0YXJ0UmVzcG9uc2UsXG4gICAgICAgIFsoKSA9PiBSdW50aW1lVmVyc2lvbkNvbmZpZywgMF0sXG4gICAgICAgICgpID0+IExvZ2dpbmdDb25maWcsXG4gICAgICAgICgpID0+IENhcGFjaXR5UHJvdmlkZXJDb25maWcsXG4gICAgICAgIDAsXG4gICAgICAgICgpID0+IER1cmFibGVDb25maWcsXG4gICAgICAgICgpID0+IFRlbmFuY3lDb25maWcsXG4gICAgXSxcbl07XG52YXIgRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZyA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9GRUlDLFxuICAgIDAsXG4gICAgW19MTSwgX0ZBLCBfTVJBLCBfTUVBSVMsIF9EQ10sXG4gICAgWzQsIDAsIDEsIDEsICgpID0+IERlc3RpbmF0aW9uQ29uZmlnXSxcbl07XG52YXIgRnVuY3Rpb25TY2FsaW5nQ29uZmlnID0gWzMsIG4wLCBfRlNDdSwgMCwgW19NRUUsIF9NRUVhXSwgWzEsIDFdXTtcbnZhciBGdW5jdGlvblVybENvbmZpZyA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9GVUMsXG4gICAgMCxcbiAgICBbX0ZVLCBfRkEsIF9DVHIsIF9MTVQsIF9DbywgX0FULCBfSU1dLFxuICAgIFswLCAwLCAwLCAwLCAoKSA9PiBDb3JzLCAwLCAwXSxcbl07XG52YXIgRnVuY3Rpb25WZXJzaW9uc0J5Q2FwYWNpdHlQcm92aWRlckxpc3RJdGVtID0gWzMsIG4wLCBfRlZCQ1BMSSwgMCwgW19GQSwgX1N0XSwgWzAsIDBdXTtcbnZhciBGdW5jdGlvblZlcnNpb25zUGVyQ2FwYWNpdHlQcm92aWRlckxpbWl0RXhjZWVkZWRFeGNlcHRpb24gPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX0ZWUENQTEVFLFxuICAgIHsgW19lXTogX2MsIFtfaEVdOiA0MDAgfSxcbiAgICBbX1R5LCBfbV0sXG4gICAgWzAsIDBdLFxuXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKEZ1bmN0aW9uVmVyc2lvbnNQZXJDYXBhY2l0eVByb3ZpZGVyTGltaXRFeGNlZWRlZEV4Y2VwdGlvbiwgRnVuY3Rpb25WZXJzaW9uc1BlckNhcGFjaXR5UHJvdmlkZXJMaW1pdEV4Y2VlZGVkRXhjZXB0aW9uJDEpO1xudmFyIEdldEFjY291bnRTZXR0aW5nc1JlcXVlc3QgPSBbMywgbjAsIF9HQVNSLCAwLCBbXSwgW11dO1xudmFyIEdldEFjY291bnRTZXR0aW5nc1Jlc3BvbnNlID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dBU1JlLFxuICAgIDAsXG4gICAgW19BTCwgX0FVXSxcbiAgICBbKCkgPT4gQWNjb3VudExpbWl0LCAoKSA9PiBBY2NvdW50VXNhZ2VdLFxuXTtcbnZhciBHZXRBbGlhc1JlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfR0FSLFxuICAgIDAsXG4gICAgW19GTiwgX05dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgMV0sXG4gICAgXSxcbl07XG52YXIgR2V0Q2FwYWNpdHlQcm92aWRlclJlcXVlc3QgPSBbMywgbjAsIF9HQ1BSLCAwLCBbX0NQTl0sIFtbMCwgMV1dXTtcbnZhciBHZXRDYXBhY2l0eVByb3ZpZGVyUmVzcG9uc2UgPSBbMywgbjAsIF9HQ1BSZSwgMCwgW19DUF0sIFsoKSA9PiBDYXBhY2l0eVByb3ZpZGVyXV07XG52YXIgR2V0Q29kZVNpZ25pbmdDb25maWdSZXF1ZXN0ID0gWzMsIG4wLCBfR0NTQ1IsIDAsIFtfQ1NDQV0sIFtbMCwgMV1dXTtcbnZhciBHZXRDb2RlU2lnbmluZ0NvbmZpZ1Jlc3BvbnNlID0gWzMsIG4wLCBfR0NTQ1JlLCAwLCBbX0NTQ10sIFsoKSA9PiBDb2RlU2lnbmluZ0NvbmZpZ11dO1xudmFyIEdldER1cmFibGVFeGVjdXRpb25IaXN0b3J5UmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HREVIUixcbiAgICAwLFxuICAgIFtfREVBLCBfSUVELCBfTUksIF9NYSwgX1JPXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzIsIHsgW19oUV06IF9JRUQgfV0sXG4gICAgICAgIFsxLCB7IFtfaFFdOiBfTUkgfV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfTWEgfV0sXG4gICAgICAgIFsyLCB7IFtfaFFdOiBfUk8gfV0sXG4gICAgXSxcbl07XG52YXIgR2V0RHVyYWJsZUV4ZWN1dGlvbkhpc3RvcnlSZXNwb25zZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HREVIUmUsXG4gICAgMCxcbiAgICBbX0V2ZSwgX05NXSxcbiAgICBbWygpID0+IEV2ZW50cywgMF0sIDBdLFxuXTtcbnZhciBHZXREdXJhYmxlRXhlY3V0aW9uUmVxdWVzdCA9IFszLCBuMCwgX0dERVIsIDAsIFtfREVBXSwgW1swLCAxXV1dO1xudmFyIEdldER1cmFibGVFeGVjdXRpb25SZXNwb25zZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HREVSZSxcbiAgICAwLFxuICAgIFtfREVBLCBfREVOLCBfRkEsIF9JUCwgX1IsIF9FLCBfU1R0LCBfU3RhLCBfRVRuLCBfVmUsIF9USF0sXG4gICAgWzAsIDAsIDAsIFsoKSA9PiBJbnB1dFBheWxvYWQsIDBdLCBbKCkgPT4gT3V0cHV0UGF5bG9hZCwgMF0sIFsoKSA9PiBFcnJvck9iamVjdCwgMF0sIDQsIDAsIDQsIDAsICgpID0+IFRyYWNlSGVhZGVyXSxcbl07XG52YXIgR2V0RHVyYWJsZUV4ZWN1dGlvblN0YXRlUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HREVTUixcbiAgICAwLFxuICAgIFtfREVBLCBfQ1QsIF9NYSwgX01JXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oUV06IF9DVCB9XSxcbiAgICAgICAgWzAsIHsgW19oUV06IF9NYSB9XSxcbiAgICAgICAgWzEsIHsgW19oUV06IF9NSSB9XSxcbiAgICBdLFxuXTtcbnZhciBHZXREdXJhYmxlRXhlY3V0aW9uU3RhdGVSZXNwb25zZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HREVTUmUsXG4gICAgMCxcbiAgICBbX08sIF9OTV0sXG4gICAgW1soKSA9PiBPcGVyYXRpb25zLCAwXSwgMF0sXG5dO1xudmFyIEdldEV2ZW50U291cmNlTWFwcGluZ1JlcXVlc3QgPSBbMywgbjAsIF9HRVNNUiwgMCwgW19VVUlEXSwgW1swLCAxXV1dO1xudmFyIEdldEZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdSZXF1ZXN0ID0gWzMsIG4wLCBfR0ZDU0NSLCAwLCBbX0ZOXSwgW1swLCAxXV1dO1xudmFyIEdldEZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdSZXNwb25zZSA9IFszLCBuMCwgX0dGQ1NDUmUsIDAsIFtfQ1NDQSwgX0ZOXSwgWzAsIDBdXTtcbnZhciBHZXRGdW5jdGlvbkNvbmN1cnJlbmN5UmVxdWVzdCA9IFszLCBuMCwgX0dGQ1IsIDAsIFtfRk5dLCBbWzAsIDFdXV07XG52YXIgR2V0RnVuY3Rpb25Db25jdXJyZW5jeVJlc3BvbnNlID0gWzMsIG4wLCBfR0ZDUmUsIDAsIFtfUkNFXSwgWzFdXTtcbnZhciBHZXRGdW5jdGlvbkNvbmZpZ3VyYXRpb25SZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dGQ1JldCxcbiAgICAwLFxuICAgIFtfRk4sIF9RXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oUV06IF9RIH1dLFxuICAgIF0sXG5dO1xudmFyIEdldEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dGRUlDUixcbiAgICAwLFxuICAgIFtfRk4sIF9RXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oUV06IF9RIH1dLFxuICAgIF0sXG5dO1xudmFyIEdldEZ1bmN0aW9uUmVjdXJzaW9uQ29uZmlnUmVxdWVzdCA9IFszLCBuMCwgX0dGUkNSLCAwLCBbX0ZOXSwgW1swLCAxXV1dO1xudmFyIEdldEZ1bmN0aW9uUmVjdXJzaW9uQ29uZmlnUmVzcG9uc2UgPSBbMywgbjAsIF9HRlJDUmUsIDAsIFtfUkxdLCBbMF1dO1xudmFyIEdldEZ1bmN0aW9uUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HRlIsXG4gICAgMCxcbiAgICBbX0ZOLCBfUV0sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfUSB9XSxcbiAgICBdLFxuXTtcbnZhciBHZXRGdW5jdGlvblJlc3BvbnNlID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dGUmUsXG4gICAgMCxcbiAgICBbX0NvbiwgX0NvZCwgX1RhLCBfVEUsIF9DXSxcbiAgICBbWygpID0+IEZ1bmN0aW9uQ29uZmlndXJhdGlvbiwgMF0sICgpID0+IEZ1bmN0aW9uQ29kZUxvY2F0aW9uLCAxMjggfCAwLCAoKSA9PiBUYWdzRXJyb3IsICgpID0+IENvbmN1cnJlbmN5XSxcbl07XG52YXIgR2V0RnVuY3Rpb25TY2FsaW5nQ29uZmlnUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HRlNDUixcbiAgICAwLFxuICAgIFtfRk4sIF9RXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oUV06IF9RIH1dLFxuICAgIF0sXG5dO1xudmFyIEdldEZ1bmN0aW9uU2NhbGluZ0NvbmZpZ1Jlc3BvbnNlID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dGU0NSZSxcbiAgICAwLFxuICAgIFtfRkEsIF9BRlNDLCBfUkZTQ10sXG4gICAgWzAsICgpID0+IEZ1bmN0aW9uU2NhbGluZ0NvbmZpZywgKCkgPT4gRnVuY3Rpb25TY2FsaW5nQ29uZmlnXSxcbl07XG52YXIgR2V0RnVuY3Rpb25VcmxDb25maWdSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dGVUNSLFxuICAgIDAsXG4gICAgW19GTiwgX1FdLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hRXTogX1EgfV0sXG4gICAgXSxcbl07XG52YXIgR2V0RnVuY3Rpb25VcmxDb25maWdSZXNwb25zZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HRlVDUmUsXG4gICAgMCxcbiAgICBbX0ZVLCBfRkEsIF9BVCwgX0NvLCBfQ1RyLCBfTE1ULCBfSU1dLFxuICAgIFswLCAwLCAwLCAoKSA9PiBDb3JzLCAwLCAwLCAwXSxcbl07XG52YXIgR2V0TGF5ZXJWZXJzaW9uQnlBcm5SZXF1ZXN0ID0gWzMsIG4wLCBfR0xWQkFSLCAwLCBbX0Fybl0sIFtbMCwgeyBbX2hRXTogX0FybiB9XV1dO1xudmFyIEdldExheWVyVmVyc2lvblBvbGljeVJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfR0xWUFIsXG4gICAgMCxcbiAgICBbX0xOLCBfVk5dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMSwgMV0sXG4gICAgXSxcbl07XG52YXIgR2V0TGF5ZXJWZXJzaW9uUG9saWN5UmVzcG9uc2UgPSBbMywgbjAsIF9HTFZQUmUsIDAsIFtfUG8sIF9SSV0sIFswLCAwXV07XG52YXIgR2V0TGF5ZXJWZXJzaW9uUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HTFZSLFxuICAgIDAsXG4gICAgW19MTiwgX1ZOXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzEsIDFdLFxuICAgIF0sXG5dO1xudmFyIEdldExheWVyVmVyc2lvblJlc3BvbnNlID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dMVlJlLFxuICAgIDAsXG4gICAgW19Db250LCBfTEEsIF9MVkEsIF9ELCBfQ0RyLCBfVmUsIF9DUiwgX0xJLCBfQ0FdLFxuICAgIFsoKSA9PiBMYXllclZlcnNpb25Db250ZW50T3V0cHV0LCAwLCAwLCAwLCAwLCAxLCA2NCB8IDAsIDAsIDY0IHwgMF0sXG5dO1xudmFyIEdldFBvbGljeVJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfR1BSLFxuICAgIDAsXG4gICAgW19GTiwgX1FdLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hRXTogX1EgfV0sXG4gICAgXSxcbl07XG52YXIgR2V0UG9saWN5UmVzcG9uc2UgPSBbMywgbjAsIF9HUFJlLCAwLCBbX1BvLCBfUkldLCBbMCwgMF1dO1xudmFyIEdldFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dQQ0NSLFxuICAgIDAsXG4gICAgW19GTiwgX1FdLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hRXTogX1EgfV0sXG4gICAgXSxcbl07XG52YXIgR2V0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ1Jlc3BvbnNlID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dQQ0NSZSxcbiAgICAwLFxuICAgIFtfUlBDRSwgX0FQQ0UsIF9BUENFbCwgX1N0YSwgX1NSdCwgX0xNXSxcbiAgICBbMSwgMSwgMSwgMCwgMCwgMF0sXG5dO1xudmFyIEdldFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HUk1DUixcbiAgICAwLFxuICAgIFtfRk4sIF9RXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oUV06IF9RIH1dLFxuICAgIF0sXG5dO1xudmFyIEdldFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnUmVzcG9uc2UgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfR1JNQ1JlLFxuICAgIDAsXG4gICAgW19VUk8sIF9SVkEsIF9GQV0sXG4gICAgWzAsIDAsIDBdLFxuXTtcbnZhciBJbWFnZUNvbmZpZyA9IFszLCBuMCwgX0lDLCAwLCBbX0VQLCBfQ29tLCBfV0RdLCBbNjQgfCAwLCA2NCB8IDAsIDBdXTtcbnZhciBJbWFnZUNvbmZpZ0Vycm9yID0gWzMsIG4wLCBfSUNFLCAwLCBbX0VDLCBfTV0sIFswLCBbKCkgPT4gU2Vuc2l0aXZlU3RyaW5nLCAwXV1dO1xudmFyIEltYWdlQ29uZmlnUmVzcG9uc2UgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfSUNSLFxuICAgIDAsXG4gICAgW19JQywgX0VdLFxuICAgIFsoKSA9PiBJbWFnZUNvbmZpZywgWygpID0+IEltYWdlQ29uZmlnRXJyb3IsIDBdXSxcbl07XG52YXIgSW5zdGFuY2VSZXF1aXJlbWVudHMgPSBbMywgbjAsIF9JUiwgMCwgW19BciwgX0FJVCwgX0VJVF0sIFs2NCB8IDAsIDY0IHwgMCwgNjQgfCAwXV07XG52YXIgSW52YWxpZENvZGVTaWduYXR1cmVFeGNlcHRpb24gPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX0lDU0UsXG4gICAgeyBbX2VdOiBfYywgW19oRV06IDQwMCB9LFxuICAgIFtfVHksIF9NXSxcbiAgICBbMCwgMF0sXG5dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoSW52YWxpZENvZGVTaWduYXR1cmVFeGNlcHRpb24sIEludmFsaWRDb2RlU2lnbmF0dXJlRXhjZXB0aW9uJDEpO1xudmFyIEludmFsaWRQYXJhbWV0ZXJWYWx1ZUV4Y2VwdGlvbiA9IFtcbiAgICAtMyxcbiAgICBuMCxcbiAgICBfSVBWRSxcbiAgICB7IFtfZV06IF9jLCBbX2hFXTogNDAwIH0sXG4gICAgW19UeSwgX21dLFxuICAgIFswLCAwXSxcbl07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihJbnZhbGlkUGFyYW1ldGVyVmFsdWVFeGNlcHRpb24sIEludmFsaWRQYXJhbWV0ZXJWYWx1ZUV4Y2VwdGlvbiQxKTtcbnZhciBJbnZhbGlkUmVxdWVzdENvbnRlbnRFeGNlcHRpb24gPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX0lSQ0UsXG4gICAgeyBbX2VdOiBfYywgW19oRV06IDQwMCB9LFxuICAgIFtfVHksIF9tXSxcbiAgICBbMCwgMF0sXG5dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoSW52YWxpZFJlcXVlc3RDb250ZW50RXhjZXB0aW9uLCBJbnZhbGlkUmVxdWVzdENvbnRlbnRFeGNlcHRpb24kMSk7XG52YXIgSW52YWxpZFJ1bnRpbWVFeGNlcHRpb24gPSBbLTMsIG4wLCBfSVJFLCB7IFtfZV06IF9zZSwgW19oRV06IDUwMiB9LCBbX1R5LCBfTV0sIFswLCAwXV07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihJbnZhbGlkUnVudGltZUV4Y2VwdGlvbiwgSW52YWxpZFJ1bnRpbWVFeGNlcHRpb24kMSk7XG52YXIgSW52YWxpZFNlY3VyaXR5R3JvdXBJREV4Y2VwdGlvbiA9IFtcbiAgICAtMyxcbiAgICBuMCxcbiAgICBfSVNHSURFLFxuICAgIHsgW19lXTogX3NlLCBbX2hFXTogNTAyIH0sXG4gICAgW19UeSwgX01dLFxuICAgIFswLCAwXSxcbl07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihJbnZhbGlkU2VjdXJpdHlHcm91cElERXhjZXB0aW9uLCBJbnZhbGlkU2VjdXJpdHlHcm91cElERXhjZXB0aW9uJDEpO1xudmFyIEludmFsaWRTdWJuZXRJREV4Y2VwdGlvbiA9IFstMywgbjAsIF9JU0lERSwgeyBbX2VdOiBfc2UsIFtfaEVdOiA1MDIgfSwgW19UeSwgX01dLCBbMCwgMF1dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoSW52YWxpZFN1Ym5ldElERXhjZXB0aW9uLCBJbnZhbGlkU3VibmV0SURFeGNlcHRpb24kMSk7XG52YXIgSW52YWxpZFppcEZpbGVFeGNlcHRpb24gPSBbLTMsIG4wLCBfSVpGRSwgeyBbX2VdOiBfc2UsIFtfaEVdOiA1MDIgfSwgW19UeSwgX01dLCBbMCwgMF1dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoSW52YWxpZFppcEZpbGVFeGNlcHRpb24sIEludmFsaWRaaXBGaWxlRXhjZXB0aW9uJDEpO1xudmFyIEludm9jYXRpb25Db21wbGV0ZWREZXRhaWxzID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0lDRCxcbiAgICAwLFxuICAgIFtfU1R0LCBfRVRuLCBfUkllLCBfRV0sXG4gICAgWzQsIDQsIDAsIFsoKSA9PiBFdmVudEVycm9yLCAwXV0sXG5dO1xudmFyIEludm9jYXRpb25SZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0lSbixcbiAgICAwLFxuICAgIFtfRk4sIF9JVCwgX0xULCBfQ0MsIF9ERU4sIF9QYSwgX1EsIF9USV0sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfWEFJVCB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF9YQUxUIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX1hBQ0MgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfWEFERU4gfV0sXG4gICAgICAgIFsoKSA9PiBfQmxvYiwgMTZdLFxuICAgICAgICBbMCwgeyBbX2hRXTogX1EgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfWEFUSSB9XSxcbiAgICBdLFxuXTtcbnZhciBJbnZvY2F0aW9uUmVzcG9uc2UgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfSVJudixcbiAgICAwLFxuICAgIFtfU0N0LCBfRkUsIF9MUiwgX1BhLCBfRVYsIF9ERUFdLFxuICAgIFtcbiAgICAgICAgWzEsIDMyXSxcbiAgICAgICAgWzAsIHsgW19oSF06IF9YQUZFIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX1hBTFIgfV0sXG4gICAgICAgIFsoKSA9PiBfQmxvYiwgMTZdLFxuICAgICAgICBbMCwgeyBbX2hIXTogX1hBRVYgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfWEFERUEgfV0sXG4gICAgXSxcbl07XG52YXIgSW52b2tlQXN5bmNSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0lBUixcbiAgICAwLFxuICAgIFtfRk4sIF9JQV0sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFsoKSA9PiBCbG9iU3RyZWFtLCAxNl0sXG4gICAgXSxcbl07XG52YXIgSW52b2tlQXN5bmNSZXNwb25zZSA9IFszLCBuMCwgX0lBUm4sIDAsIFtfU3RhXSwgW1sxLCAzMl1dXTtcbnZhciBJbnZva2VSZXNwb25zZVN0cmVhbVVwZGF0ZSA9IFszLCBuMCwgX0lSU1UsIDAsIFtfUGFdLCBbWygpID0+IF9CbG9iLCB7IFtfZVBdOiAxIH1dXV07XG52YXIgSW52b2tlV2l0aFJlc3BvbnNlU3RyZWFtQ29tcGxldGVFdmVudCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9JV1JTQ0UsXG4gICAgMCxcbiAgICBbX0VDLCBfRURyLCBfTFJdLFxuICAgIFswLCAwLCAwXSxcbl07XG52YXIgSW52b2tlV2l0aFJlc3BvbnNlU3RyZWFtUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9JV1JTUixcbiAgICAwLFxuICAgIFtfRk4sIF9JVCwgX0xULCBfQ0MsIF9RLCBfUGEsIF9USV0sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfWEFJVCB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF9YQUxUIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX1hBQ0MgfV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfUSB9XSxcbiAgICAgICAgWygpID0+IF9CbG9iLCAxNl0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfWEFUSSB9XSxcbiAgICBdLFxuXTtcbnZhciBJbnZva2VXaXRoUmVzcG9uc2VTdHJlYW1SZXNwb25zZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9JV1JTUm4sXG4gICAgMCxcbiAgICBbX1NDdCwgX0VWLCBfRVN2LCBfUlNDVF0sXG4gICAgW1xuICAgICAgICBbMSwgMzJdLFxuICAgICAgICBbMCwgeyBbX2hIXTogX1hBRVYgfV0sXG4gICAgICAgIFsoKSA9PiBJbnZva2VXaXRoUmVzcG9uc2VTdHJlYW1SZXNwb25zZUV2ZW50LCAxNl0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfQ1RfIH1dLFxuICAgIF0sXG5dO1xudmFyIEthZmthU2NoZW1hUmVnaXN0cnlBY2Nlc3NDb25maWcgPSBbMywgbjAsIF9LU1JBQywgMCwgW19UeSwgX1VSSV0sIFswLCAwXV07XG52YXIgS2Fma2FTY2hlbWFSZWdpc3RyeUNvbmZpZyA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9LU1JDLFxuICAgIDAsXG4gICAgW19TUlVSSSwgX0VSRiwgX0FDYywgX1NWQ10sXG4gICAgWzAsIDAsICgpID0+IEthZmthU2NoZW1hUmVnaXN0cnlBY2Nlc3NDb25maWdMaXN0LCAoKSA9PiBLYWZrYVNjaGVtYVZhbGlkYXRpb25Db25maWdMaXN0XSxcbl07XG52YXIgS2Fma2FTY2hlbWFWYWxpZGF0aW9uQ29uZmlnID0gWzMsIG4wLCBfS1NWQywgMCwgW19BdF0sIFswXV07XG52YXIgS01TQWNjZXNzRGVuaWVkRXhjZXB0aW9uID0gW1xuICAgIC0zLFxuICAgIG4wLFxuICAgIF9LTVNBREUsXG4gICAgeyBbX2VdOiBfc2UsIFtfaEVdOiA1MDIgfSxcbiAgICBbX1R5LCBfTV0sXG4gICAgWzAsIDBdLFxuXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKEtNU0FjY2Vzc0RlbmllZEV4Y2VwdGlvbiwgS01TQWNjZXNzRGVuaWVkRXhjZXB0aW9uJDEpO1xudmFyIEtNU0Rpc2FibGVkRXhjZXB0aW9uID0gWy0zLCBuMCwgX0tNU0RFLCB7IFtfZV06IF9zZSwgW19oRV06IDUwMiB9LCBbX1R5LCBfTV0sIFswLCAwXV07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihLTVNEaXNhYmxlZEV4Y2VwdGlvbiwgS01TRGlzYWJsZWRFeGNlcHRpb24kMSk7XG52YXIgS01TSW52YWxpZFN0YXRlRXhjZXB0aW9uID0gW1xuICAgIC0zLFxuICAgIG4wLFxuICAgIF9LTVNJU0UsXG4gICAgeyBbX2VdOiBfc2UsIFtfaEVdOiA1MDIgfSxcbiAgICBbX1R5LCBfTV0sXG4gICAgWzAsIDBdLFxuXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKEtNU0ludmFsaWRTdGF0ZUV4Y2VwdGlvbiwgS01TSW52YWxpZFN0YXRlRXhjZXB0aW9uJDEpO1xudmFyIEtNU05vdEZvdW5kRXhjZXB0aW9uID0gWy0zLCBuMCwgX0tNU05GRSwgeyBbX2VdOiBfc2UsIFtfaEVdOiA1MDIgfSwgW19UeSwgX01dLCBbMCwgMF1dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoS01TTm90Rm91bmRFeGNlcHRpb24sIEtNU05vdEZvdW5kRXhjZXB0aW9uJDEpO1xudmFyIExhbWJkYU1hbmFnZWRJbnN0YW5jZXNDYXBhY2l0eVByb3ZpZGVyQ29uZmlnID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0xNSUNQQyxcbiAgICAwLFxuICAgIFtfQ1BBLCBfUEVFTUMsIF9FRU1HQlBWQ10sXG4gICAgWzAsIDEsIDFdLFxuXTtcbnZhciBMYXllciA9IFszLCBuMCwgX0xhLCAwLCBbX0FybiwgX0NTLCBfU1BWQWksIF9TSkFdLCBbMCwgMSwgMCwgMF1dO1xudmFyIExheWVyc0xpc3RJdGVtID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0xMSSxcbiAgICAwLFxuICAgIFtfTE4sIF9MQSwgX0xNVl0sXG4gICAgWzAsIDAsICgpID0+IExheWVyVmVyc2lvbnNMaXN0SXRlbV0sXG5dO1xudmFyIExheWVyVmVyc2lvbkNvbnRlbnRJbnB1dCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9MVkNJLFxuICAgIDAsXG4gICAgW19TQiwgX1NLLCBfU09WLCBfWkZdLFxuICAgIFswLCAwLCAwLCBbKCkgPT4gX0Jsb2IsIDBdXSxcbl07XG52YXIgTGF5ZXJWZXJzaW9uQ29udGVudE91dHB1dCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9MVkNPLFxuICAgIDAsXG4gICAgW19MbywgX0NTbywgX0NTLCBfU1BWQWksIF9TSkFdLFxuICAgIFswLCAwLCAxLCAwLCAwXSxcbl07XG52YXIgTGF5ZXJWZXJzaW9uc0xpc3RJdGVtID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0xWTEksXG4gICAgMCxcbiAgICBbX0xWQSwgX1ZlLCBfRCwgX0NEciwgX0NSLCBfTEksIF9DQV0sXG4gICAgWzAsIDEsIDAsIDAsIDY0IHwgMCwgMCwgNjQgfCAwXSxcbl07XG52YXIgTGlzdEFsaWFzZXNSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0xBUixcbiAgICAwLFxuICAgIFtfRk4sIF9GViwgX01hLCBfTUldLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hRXTogX0ZWIH1dLFxuICAgICAgICBbMCwgeyBbX2hRXTogX01hIH1dLFxuICAgICAgICBbMSwgeyBbX2hRXTogX01JIH1dLFxuICAgIF0sXG5dO1xudmFyIExpc3RBbGlhc2VzUmVzcG9uc2UgPSBbMywgbjAsIF9MQVJpLCAwLCBbX05NLCBfQWxdLCBbMCwgKCkgPT4gQWxpYXNMaXN0XV07XG52YXIgTGlzdENhcGFjaXR5UHJvdmlkZXJzUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9MQ1BSLFxuICAgIDAsXG4gICAgW19TdCwgX01hLCBfTUldLFxuICAgIFtcbiAgICAgICAgWzAsIHsgW19oUV06IF9TdCB9XSxcbiAgICAgICAgWzAsIHsgW19oUV06IF9NYSB9XSxcbiAgICAgICAgWzEsIHsgW19oUV06IF9NSSB9XSxcbiAgICBdLFxuXTtcbnZhciBMaXN0Q2FwYWNpdHlQcm92aWRlcnNSZXNwb25zZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9MQ1BSaSxcbiAgICAwLFxuICAgIFtfQ1BhLCBfTk1dLFxuICAgIFsoKSA9PiBDYXBhY2l0eVByb3ZpZGVyc0xpc3QsIDBdLFxuXTtcbnZhciBMaXN0Q29kZVNpZ25pbmdDb25maWdzUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9MQ1NDUixcbiAgICAwLFxuICAgIFtfTWEsIF9NSV0sXG4gICAgW1xuICAgICAgICBbMCwgeyBbX2hRXTogX01hIH1dLFxuICAgICAgICBbMSwgeyBbX2hRXTogX01JIH1dLFxuICAgIF0sXG5dO1xudmFyIExpc3RDb2RlU2lnbmluZ0NvbmZpZ3NSZXNwb25zZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9MQ1NDUmksXG4gICAgMCxcbiAgICBbX05NLCBfQ1NDb10sXG4gICAgWzAsICgpID0+IENvZGVTaWduaW5nQ29uZmlnTGlzdF0sXG5dO1xudmFyIExpc3REdXJhYmxlRXhlY3V0aW9uc0J5RnVuY3Rpb25SZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0xERUJGUixcbiAgICAwLFxuICAgIFtfRk4sIF9RLCBfREVOLCBfU3RhdCwgX1NBdCwgX1NCdCwgX1JPLCBfTWEsIF9NSV0sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfUSB9XSxcbiAgICAgICAgWzAsIHsgW19oUV06IF9ERU4gfV0sXG4gICAgICAgIFs2NCB8IDAsIHsgW19oUV06IF9TdGF0IH1dLFxuICAgICAgICBbNCwgeyBbX2hRXTogX1NBdCB9XSxcbiAgICAgICAgWzQsIHsgW19oUV06IF9TQnQgfV0sXG4gICAgICAgIFsyLCB7IFtfaFFdOiBfUk8gfV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfTWEgfV0sXG4gICAgICAgIFsxLCB7IFtfaFFdOiBfTUkgfV0sXG4gICAgXSxcbl07XG52YXIgTGlzdER1cmFibGVFeGVjdXRpb25zQnlGdW5jdGlvblJlc3BvbnNlID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0xERUJGUmksXG4gICAgMCxcbiAgICBbX0RFLCBfTk1dLFxuICAgIFsoKSA9PiBEdXJhYmxlRXhlY3V0aW9ucywgMF0sXG5dO1xudmFyIExpc3RFdmVudFNvdXJjZU1hcHBpbmdzUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9MRVNNUixcbiAgICAwLFxuICAgIFtfRVNBLCBfRk4sIF9NYSwgX01JXSxcbiAgICBbXG4gICAgICAgIFswLCB7IFtfaFFdOiBfRVNBIH1dLFxuICAgICAgICBbMCwgeyBbX2hRXTogX0ZOIH1dLFxuICAgICAgICBbMCwgeyBbX2hRXTogX01hIH1dLFxuICAgICAgICBbMSwgeyBbX2hRXTogX01JIH1dLFxuICAgIF0sXG5dO1xudmFyIExpc3RFdmVudFNvdXJjZU1hcHBpbmdzUmVzcG9uc2UgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfTEVTTVJpLFxuICAgIDAsXG4gICAgW19OTSwgX0VTTV0sXG4gICAgWzAsICgpID0+IEV2ZW50U291cmNlTWFwcGluZ3NMaXN0XSxcbl07XG52YXIgTGlzdEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdzUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9MRkVJQ1IsXG4gICAgMCxcbiAgICBbX0ZOLCBfTWEsIF9NSV0sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfTWEgfV0sXG4gICAgICAgIFsxLCB7IFtfaFFdOiBfTUkgfV0sXG4gICAgXSxcbl07XG52YXIgTGlzdEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdzUmVzcG9uc2UgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfTEZFSUNSaSxcbiAgICAwLFxuICAgIFtfRkVJQ3UsIF9OTV0sXG4gICAgWygpID0+IEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdMaXN0LCAwXSxcbl07XG52YXIgTGlzdEZ1bmN0aW9uc0J5Q29kZVNpZ25pbmdDb25maWdSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0xGQkNTQ1IsXG4gICAgMCxcbiAgICBbX0NTQ0EsIF9NYSwgX01JXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oUV06IF9NYSB9XSxcbiAgICAgICAgWzEsIHsgW19oUV06IF9NSSB9XSxcbiAgICBdLFxuXTtcbnZhciBMaXN0RnVuY3Rpb25zQnlDb2RlU2lnbmluZ0NvbmZpZ1Jlc3BvbnNlID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0xGQkNTQ1JpLFxuICAgIDAsXG4gICAgW19OTSwgX0ZBdV0sXG4gICAgWzAsIDY0IHwgMF0sXG5dO1xudmFyIExpc3RGdW5jdGlvbnNSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0xGUixcbiAgICAwLFxuICAgIFtfTVIsIF9GViwgX01hLCBfTUldLFxuICAgIFtcbiAgICAgICAgWzAsIHsgW19oUV06IF9NUiB9XSxcbiAgICAgICAgWzAsIHsgW19oUV06IF9GViB9XSxcbiAgICAgICAgWzAsIHsgW19oUV06IF9NYSB9XSxcbiAgICAgICAgWzEsIHsgW19oUV06IF9NSSB9XSxcbiAgICBdLFxuXTtcbnZhciBMaXN0RnVuY3Rpb25zUmVzcG9uc2UgPSBbMywgbjAsIF9MRlJpLCAwLCBbX05NLCBfRnVdLCBbMCwgWygpID0+IEZ1bmN0aW9uTGlzdCwgMF1dXTtcbnZhciBMaXN0RnVuY3Rpb25VcmxDb25maWdzUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9MRlVDUixcbiAgICAwLFxuICAgIFtfRk4sIF9NYSwgX01JXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oUV06IF9NYSB9XSxcbiAgICAgICAgWzEsIHsgW19oUV06IF9NSSB9XSxcbiAgICBdLFxuXTtcbnZhciBMaXN0RnVuY3Rpb25VcmxDb25maWdzUmVzcG9uc2UgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfTEZVQ1JpLFxuICAgIDAsXG4gICAgW19GVUN1LCBfTk1dLFxuICAgIFsoKSA9PiBGdW5jdGlvblVybENvbmZpZ0xpc3QsIDBdLFxuXTtcbnZhciBMaXN0RnVuY3Rpb25WZXJzaW9uc0J5Q2FwYWNpdHlQcm92aWRlclJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfTEZWQkNQUixcbiAgICAwLFxuICAgIFtfQ1BOLCBfTWEsIF9NSV0sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfTWEgfV0sXG4gICAgICAgIFsxLCB7IFtfaFFdOiBfTUkgfV0sXG4gICAgXSxcbl07XG52YXIgTGlzdEZ1bmN0aW9uVmVyc2lvbnNCeUNhcGFjaXR5UHJvdmlkZXJSZXNwb25zZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9MRlZCQ1BSaSxcbiAgICAwLFxuICAgIFtfQ1BBLCBfRlZ1LCBfTk1dLFxuICAgIFswLCAoKSA9PiBGdW5jdGlvblZlcnNpb25zQnlDYXBhY2l0eVByb3ZpZGVyTGlzdCwgMF0sXG5dO1xudmFyIExpc3RMYXllcnNSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0xMUixcbiAgICAwLFxuICAgIFtfQ1JvLCBfTWEsIF9NSSwgX0NBb10sXG4gICAgW1xuICAgICAgICBbMCwgeyBbX2hRXTogX0NSbyB9XSxcbiAgICAgICAgWzAsIHsgW19oUV06IF9NYSB9XSxcbiAgICAgICAgWzEsIHsgW19oUV06IF9NSSB9XSxcbiAgICAgICAgWzAsIHsgW19oUV06IF9DQW8gfV0sXG4gICAgXSxcbl07XG52YXIgTGlzdExheWVyc1Jlc3BvbnNlID0gWzMsIG4wLCBfTExSaSwgMCwgW19OTSwgX0xdLCBbMCwgKCkgPT4gTGF5ZXJzTGlzdF1dO1xudmFyIExpc3RMYXllclZlcnNpb25zUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9MTFZSLFxuICAgIDAsXG4gICAgW19DUm8sIF9MTiwgX01hLCBfTUksIF9DQW9dLFxuICAgIFtcbiAgICAgICAgWzAsIHsgW19oUV06IF9DUm8gfV0sXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oUV06IF9NYSB9XSxcbiAgICAgICAgWzEsIHsgW19oUV06IF9NSSB9XSxcbiAgICAgICAgWzAsIHsgW19oUV06IF9DQW8gfV0sXG4gICAgXSxcbl07XG52YXIgTGlzdExheWVyVmVyc2lvbnNSZXNwb25zZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9MTFZSaSxcbiAgICAwLFxuICAgIFtfTk0sIF9MVl0sXG4gICAgWzAsICgpID0+IExheWVyVmVyc2lvbnNMaXN0XSxcbl07XG52YXIgTGlzdFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdzUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9MUENDUixcbiAgICAwLFxuICAgIFtfRk4sIF9NYSwgX01JXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oUV06IF9NYSB9XSxcbiAgICAgICAgWzEsIHsgW19oUV06IF9NSSB9XSxcbiAgICBdLFxuXTtcbnZhciBMaXN0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ3NSZXNwb25zZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9MUENDUmksXG4gICAgMCxcbiAgICBbX1BDQywgX05NXSxcbiAgICBbKCkgPT4gUHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ0xpc3QsIDBdLFxuXTtcbnZhciBMaXN0VGFnc1JlcXVlc3QgPSBbMywgbjAsIF9MVFIsIDAsIFtfUmVdLCBbWzAsIDFdXV07XG52YXIgTGlzdFRhZ3NSZXNwb25zZSA9IFszLCBuMCwgX0xUUmksIDAsIFtfVGFdLCBbMTI4IHwgMF1dO1xudmFyIExpc3RWZXJzaW9uc0J5RnVuY3Rpb25SZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0xWQkZSLFxuICAgIDAsXG4gICAgW19GTiwgX01hLCBfTUldLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hRXTogX01hIH1dLFxuICAgICAgICBbMSwgeyBbX2hRXTogX01JIH1dLFxuICAgIF0sXG5dO1xudmFyIExpc3RWZXJzaW9uc0J5RnVuY3Rpb25SZXNwb25zZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9MVkJGUmksXG4gICAgMCxcbiAgICBbX05NLCBfVmVyXSxcbiAgICBbMCwgWygpID0+IEZ1bmN0aW9uTGlzdCwgMF1dLFxuXTtcbnZhciBMb2dnaW5nQ29uZmlnID0gWzMsIG4wLCBfTEMsIDAsIFtfTEYsIF9BTEwsIF9TTEwsIF9MR10sIFswLCAwLCAwLCAwXV07XG52YXIgTm9QdWJsaXNoZWRWZXJzaW9uRXhjZXB0aW9uID0gW1xuICAgIC0zLFxuICAgIG4wLFxuICAgIF9OUFZFLFxuICAgIHsgW19lXTogX2MsIFtfaEVdOiA0MDAgfSxcbiAgICBbX1R5LCBfTV0sXG4gICAgWzAsIDBdLFxuXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKE5vUHVibGlzaGVkVmVyc2lvbkV4Y2VwdGlvbiwgTm9QdWJsaXNoZWRWZXJzaW9uRXhjZXB0aW9uJDEpO1xudmFyIE9uRmFpbHVyZSA9IFszLCBuMCwgX09GLCAwLCBbX0RlXSwgWzBdXTtcbnZhciBPblN1Y2Nlc3MgPSBbMywgbjAsIF9PUywgMCwgW19EZV0sIFswXV07XG52YXIgT3BlcmF0aW9uID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX09wLFxuICAgIDAsXG4gICAgW19JZCwgX1BJLCBfTiwgX1R5LCBfU1R1LCBfU1R0LCBfRVRuLCBfU3RhLCBfRUR4LCBfQ0RvLCBfU0QsIF9XRGEsIF9DRCwgX0NJRF0sXG4gICAgW1xuICAgICAgICAwLFxuICAgICAgICAwLFxuICAgICAgICAwLFxuICAgICAgICAwLFxuICAgICAgICAwLFxuICAgICAgICA0LFxuICAgICAgICA0LFxuICAgICAgICAwLFxuICAgICAgICBbKCkgPT4gRXhlY3V0aW9uRGV0YWlscywgMF0sXG4gICAgICAgIFsoKSA9PiBDb250ZXh0RGV0YWlscywgMF0sXG4gICAgICAgIFsoKSA9PiBTdGVwRGV0YWlscywgMF0sXG4gICAgICAgICgpID0+IFdhaXREZXRhaWxzLFxuICAgICAgICBbKCkgPT4gQ2FsbGJhY2tEZXRhaWxzLCAwXSxcbiAgICAgICAgWygpID0+IENoYWluZWRJbnZva2VEZXRhaWxzLCAwXSxcbiAgICBdLFxuXTtcbnZhciBPcGVyYXRpb25VcGRhdGUgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfT1UsXG4gICAgMCxcbiAgICBbX0lkLCBfUEksIF9OLCBfVHksIF9TVHUsIF9BLCBfUGEsIF9FLCBfQ09vLCBfU08sIF9XTywgX0NPLCBfQ0lPXSxcbiAgICBbXG4gICAgICAgIDAsXG4gICAgICAgIDAsXG4gICAgICAgIDAsXG4gICAgICAgIDAsXG4gICAgICAgIDAsXG4gICAgICAgIDAsXG4gICAgICAgIFsoKSA9PiBPcGVyYXRpb25QYXlsb2FkLCAwXSxcbiAgICAgICAgWygpID0+IEVycm9yT2JqZWN0LCAwXSxcbiAgICAgICAgKCkgPT4gQ29udGV4dE9wdGlvbnMsXG4gICAgICAgICgpID0+IFN0ZXBPcHRpb25zLFxuICAgICAgICAoKSA9PiBXYWl0T3B0aW9ucyxcbiAgICAgICAgKCkgPT4gQ2FsbGJhY2tPcHRpb25zLFxuICAgICAgICAoKSA9PiBDaGFpbmVkSW52b2tlT3B0aW9ucyxcbiAgICBdLFxuXTtcbnZhciBQb2xpY3lMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbiA9IFtcbiAgICAtMyxcbiAgICBuMCxcbiAgICBfUExFRSxcbiAgICB7IFtfZV06IF9jLCBbX2hFXTogNDAwIH0sXG4gICAgW19UeSwgX21dLFxuICAgIFswLCAwXSxcbl07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihQb2xpY3lMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbiwgUG9saWN5TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24kMSk7XG52YXIgUHJlY29uZGl0aW9uRmFpbGVkRXhjZXB0aW9uID0gWy0zLCBuMCwgX1BGRSwgeyBbX2VdOiBfYywgW19oRV06IDQxMiB9LCBbX1R5LCBfbV0sIFswLCAwXV07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihQcmVjb25kaXRpb25GYWlsZWRFeGNlcHRpb24sIFByZWNvbmRpdGlvbkZhaWxlZEV4Y2VwdGlvbiQxKTtcbnZhciBQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnTGlzdEl0ZW0gPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfUENDTEksXG4gICAgMCxcbiAgICBbX0ZBLCBfUlBDRSwgX0FQQ0UsIF9BUENFbCwgX1N0YSwgX1NSdCwgX0xNXSxcbiAgICBbMCwgMSwgMSwgMSwgMCwgMCwgMF0sXG5dO1xudmFyIFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdOb3RGb3VuZEV4Y2VwdGlvbiA9IFtcbiAgICAtMyxcbiAgICBuMCxcbiAgICBfUENDTkZFLFxuICAgIHsgW19lXTogX2MsIFtfaEVdOiA0MDQgfSxcbiAgICBbX1R5LCBfbV0sXG4gICAgWzAsIDBdLFxuXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdOb3RGb3VuZEV4Y2VwdGlvbiwgUHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ05vdEZvdW5kRXhjZXB0aW9uJDEpO1xudmFyIFByb3Zpc2lvbmVkUG9sbGVyQ29uZmlnID0gWzMsIG4wLCBfUFBDLCAwLCBbX01QLCBfTVBhLCBfUEdOXSwgWzEsIDEsIDBdXTtcbnZhciBQdWJsaXNoTGF5ZXJWZXJzaW9uUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9QTFZSLFxuICAgIDAsXG4gICAgW19MTiwgX0QsIF9Db250LCBfQ1IsIF9MSSwgX0NBXSxcbiAgICBbWzAsIDFdLCAwLCBbKCkgPT4gTGF5ZXJWZXJzaW9uQ29udGVudElucHV0LCAwXSwgNjQgfCAwLCAwLCA2NCB8IDBdLFxuXTtcbnZhciBQdWJsaXNoTGF5ZXJWZXJzaW9uUmVzcG9uc2UgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfUExWUnUsXG4gICAgMCxcbiAgICBbX0NvbnQsIF9MQSwgX0xWQSwgX0QsIF9DRHIsIF9WZSwgX0NSLCBfTEksIF9DQV0sXG4gICAgWygpID0+IExheWVyVmVyc2lvbkNvbnRlbnRPdXRwdXQsIDAsIDAsIDAsIDAsIDEsIDY0IHwgMCwgMCwgNjQgfCAwXSxcbl07XG52YXIgUHVibGlzaFZlcnNpb25SZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1BWUixcbiAgICAwLFxuICAgIFtfRk4sIF9DU28sIF9ELCBfUkksIF9QVHVdLFxuICAgIFtbMCwgMV0sIDAsIDAsIDAsIDBdLFxuXTtcbnZhciBQdXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnUmVxdWVzdCA9IFszLCBuMCwgX1BGQ1NDUiwgMCwgW19DU0NBLCBfRk5dLCBbMCwgWzAsIDFdXV07XG52YXIgUHV0RnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ1Jlc3BvbnNlID0gWzMsIG4wLCBfUEZDU0NSdSwgMCwgW19DU0NBLCBfRk5dLCBbMCwgMF1dO1xudmFyIFB1dEZ1bmN0aW9uQ29uY3VycmVuY3lSZXF1ZXN0ID0gWzMsIG4wLCBfUEZDUiwgMCwgW19GTiwgX1JDRV0sIFtbMCwgMV0sIDFdXTtcbnZhciBQdXRGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9QRkVJQ1IsXG4gICAgMCxcbiAgICBbX0ZOLCBfUSwgX01SQSwgX01FQUlTLCBfRENdLFxuICAgIFtbMCwgMV0sIFswLCB7IFtfaFFdOiBfUSB9XSwgMSwgMSwgKCkgPT4gRGVzdGluYXRpb25Db25maWddLFxuXTtcbnZhciBQdXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZ1JlcXVlc3QgPSBbMywgbjAsIF9QRlJDUiwgMCwgW19GTiwgX1JMXSwgW1swLCAxXSwgMF1dO1xudmFyIFB1dEZ1bmN0aW9uUmVjdXJzaW9uQ29uZmlnUmVzcG9uc2UgPSBbMywgbjAsIF9QRlJDUnUsIDAsIFtfUkxdLCBbMF1dO1xudmFyIFB1dEZ1bmN0aW9uU2NhbGluZ0NvbmZpZ1JlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfUEZTQ1IsXG4gICAgMCxcbiAgICBbX0ZOLCBfUSwgX0ZTQ3VdLFxuICAgIFtbMCwgMV0sIFswLCB7IFtfaFFdOiBfUSB9XSwgKCkgPT4gRnVuY3Rpb25TY2FsaW5nQ29uZmlnXSxcbl07XG52YXIgUHV0RnVuY3Rpb25TY2FsaW5nQ29uZmlnUmVzcG9uc2UgPSBbMywgbjAsIF9QRlNDUnUsIDAsIFtfRlNdLCBbMF1dO1xudmFyIFB1dFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1BQQ0NSLFxuICAgIDAsXG4gICAgW19GTiwgX1EsIF9QQ0VdLFxuICAgIFtbMCwgMV0sIFswLCB7IFtfaFFdOiBfUSB9XSwgMV0sXG5dO1xudmFyIFB1dFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdSZXNwb25zZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9QUENDUnUsXG4gICAgMCxcbiAgICBbX1JQQ0UsIF9BUENFLCBfQVBDRWwsIF9TdGEsIF9TUnQsIF9MTV0sXG4gICAgWzEsIDEsIDEsIDAsIDAsIDBdLFxuXTtcbnZhciBQdXRSdW50aW1lTWFuYWdlbWVudENvbmZpZ1JlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfUFJNQ1IsXG4gICAgMCxcbiAgICBbX0ZOLCBfUSwgX1VSTywgX1JWQV0sXG4gICAgW1swLCAxXSwgWzAsIHsgW19oUV06IF9RIH1dLCAwLCAwXSxcbl07XG52YXIgUHV0UnVudGltZU1hbmFnZW1lbnRDb25maWdSZXNwb25zZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9QUk1DUnUsXG4gICAgMCxcbiAgICBbX1VSTywgX0ZBLCBfUlZBXSxcbiAgICBbMCwgMCwgMF0sXG5dO1xudmFyIFJlY3Vyc2l2ZUludm9jYXRpb25FeGNlcHRpb24gPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX1JJRSxcbiAgICB7IFtfZV06IF9jLCBbX2hFXTogNDAwIH0sXG4gICAgW19UeSwgX01dLFxuICAgIFswLCAwXSxcbl07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihSZWN1cnNpdmVJbnZvY2F0aW9uRXhjZXB0aW9uLCBSZWN1cnNpdmVJbnZvY2F0aW9uRXhjZXB0aW9uJDEpO1xudmFyIFJlbW92ZUxheWVyVmVyc2lvblBlcm1pc3Npb25SZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1JMVlBSLFxuICAgIDAsXG4gICAgW19MTiwgX1ZOLCBfU0ksIF9SSV0sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFsxLCAxXSxcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hRXTogX1JJIH1dLFxuICAgIF0sXG5dO1xudmFyIFJlbW92ZVBlcm1pc3Npb25SZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1JQUixcbiAgICAwLFxuICAgIFtfRk4sIF9TSSwgX1EsIF9SSV0sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oUV06IF9RIH1dLFxuICAgICAgICBbMCwgeyBbX2hRXTogX1JJIH1dLFxuICAgIF0sXG5dO1xudmFyIFJlcXVlc3RUb29MYXJnZUV4Y2VwdGlvbiA9IFstMywgbjAsIF9SVExFLCB7IFtfZV06IF9jLCBbX2hFXTogNDEzIH0sIFtfVHksIF9tXSwgWzAsIDBdXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKFJlcXVlc3RUb29MYXJnZUV4Y2VwdGlvbiwgUmVxdWVzdFRvb0xhcmdlRXhjZXB0aW9uJDEpO1xudmFyIFJlc291cmNlQ29uZmxpY3RFeGNlcHRpb24gPSBbLTMsIG4wLCBfUkNFZSwgeyBbX2VdOiBfYywgW19oRV06IDQwOSB9LCBbX1R5LCBfbV0sIFswLCAwXV07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihSZXNvdXJjZUNvbmZsaWN0RXhjZXB0aW9uLCBSZXNvdXJjZUNvbmZsaWN0RXhjZXB0aW9uJDEpO1xudmFyIFJlc291cmNlSW5Vc2VFeGNlcHRpb24gPSBbLTMsIG4wLCBfUklVRSwgeyBbX2VdOiBfYywgW19oRV06IDQwMCB9LCBbX1R5LCBfTV0sIFswLCAwXV07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihSZXNvdXJjZUluVXNlRXhjZXB0aW9uLCBSZXNvdXJjZUluVXNlRXhjZXB0aW9uJDEpO1xudmFyIFJlc291cmNlTm90Rm91bmRFeGNlcHRpb24gPSBbLTMsIG4wLCBfUk5GRSwgeyBbX2VdOiBfYywgW19oRV06IDQwNCB9LCBbX1R5LCBfTV0sIFswLCAwXV07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uLCBSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uJDEpO1xudmFyIFJlc291cmNlTm90UmVhZHlFeGNlcHRpb24gPSBbLTMsIG4wLCBfUk5SRSwgeyBbX2VdOiBfc2UsIFtfaEVdOiA1MDIgfSwgW19UeSwgX21dLCBbMCwgMF1dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoUmVzb3VyY2VOb3RSZWFkeUV4Y2VwdGlvbiwgUmVzb3VyY2VOb3RSZWFkeUV4Y2VwdGlvbiQxKTtcbnZhciBSZXRyeURldGFpbHMgPSBbMywgbjAsIF9SRCwgMCwgW19DQXUsIF9OQURTXSwgWzEsIDFdXTtcbnZhciBSdW50aW1lVmVyc2lvbkNvbmZpZyA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9SVkMsXG4gICAgMCxcbiAgICBbX1JWQSwgX0VdLFxuICAgIFswLCBbKCkgPT4gUnVudGltZVZlcnNpb25FcnJvciwgMF1dLFxuXTtcbnZhciBSdW50aW1lVmVyc2lvbkVycm9yID0gWzMsIG4wLCBfUlZFLCAwLCBbX0VDLCBfTV0sIFswLCBbKCkgPT4gU2Vuc2l0aXZlU3RyaW5nLCAwXV1dO1xudmFyIFNjYWxpbmdDb25maWcgPSBbMywgbjAsIF9TQywgMCwgW19NQ2FdLCBbMV1dO1xudmFyIFNlbGZNYW5hZ2VkRXZlbnRTb3VyY2UgPSBbMywgbjAsIF9TTUVTLCAwLCBbX0VuZF0sIFtbMiwgbjAsIF9FbmQsIDAsIDAsIDY0IHwgMF1dXTtcbnZhciBTZWxmTWFuYWdlZEthZmthRXZlbnRTb3VyY2VDb25maWcgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfU01LRVNDLFxuICAgIDAsXG4gICAgW19DR0ksIF9TUkNdLFxuICAgIFswLCAoKSA9PiBLYWZrYVNjaGVtYVJlZ2lzdHJ5Q29uZmlnXSxcbl07XG52YXIgU2VuZER1cmFibGVFeGVjdXRpb25DYWxsYmFja0ZhaWx1cmVSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1NERUNGUixcbiAgICAwLFxuICAgIFtfQ0ksIF9FXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWygpID0+IEVycm9yT2JqZWN0LCAxNl0sXG4gICAgXSxcbl07XG52YXIgU2VuZER1cmFibGVFeGVjdXRpb25DYWxsYmFja0ZhaWx1cmVSZXNwb25zZSA9IFszLCBuMCwgX1NERUNGUmUsIDAsIFtdLCBbXV07XG52YXIgU2VuZER1cmFibGVFeGVjdXRpb25DYWxsYmFja0hlYXJ0YmVhdFJlcXVlc3QgPSBbMywgbjAsIF9TREVDSFIsIDAsIFtfQ0ldLCBbWzAsIDFdXV07XG52YXIgU2VuZER1cmFibGVFeGVjdXRpb25DYWxsYmFja0hlYXJ0YmVhdFJlc3BvbnNlID0gWzMsIG4wLCBfU0RFQ0hSZSwgMCwgW10sIFtdXTtcbnZhciBTZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrU3VjY2Vzc1JlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfU0RFQ1NSLFxuICAgIDAsXG4gICAgW19DSSwgX1JdLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbKCkgPT4gQmluYXJ5T3BlcmF0aW9uUGF5bG9hZCwgMTZdLFxuICAgIF0sXG5dO1xudmFyIFNlbmREdXJhYmxlRXhlY3V0aW9uQ2FsbGJhY2tTdWNjZXNzUmVzcG9uc2UgPSBbMywgbjAsIF9TREVDU1JlLCAwLCBbXSwgW11dO1xudmFyIFNlcmlhbGl6ZWRSZXF1ZXN0RW50aXR5VG9vTGFyZ2VFeGNlcHRpb24gPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX1NSRVRMRSxcbiAgICB7IFtfZV06IF9jLCBbX2hFXTogNDEzIH0sXG4gICAgW19UeSwgX21dLFxuICAgIFswLCAwXSxcbl07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihTZXJpYWxpemVkUmVxdWVzdEVudGl0eVRvb0xhcmdlRXhjZXB0aW9uLCBTZXJpYWxpemVkUmVxdWVzdEVudGl0eVRvb0xhcmdlRXhjZXB0aW9uJDEpO1xudmFyIFNlcnZpY2VFeGNlcHRpb24gPSBbLTMsIG4wLCBfU0UsIHsgW19lXTogX3NlLCBbX2hFXTogNTAwIH0sIFtfVHksIF9NXSwgWzAsIDBdXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKFNlcnZpY2VFeGNlcHRpb24sIFNlcnZpY2VFeGNlcHRpb24kMSk7XG52YXIgU25hcFN0YXJ0ID0gWzMsIG4wLCBfU1NuLCAwLCBbX0FPcF0sIFswXV07XG52YXIgU25hcFN0YXJ0RXhjZXB0aW9uID0gWy0zLCBuMCwgX1NTRSwgeyBbX2VdOiBfYywgW19oRV06IDQwMCB9LCBbX1R5LCBfTV0sIFswLCAwXV07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihTbmFwU3RhcnRFeGNlcHRpb24sIFNuYXBTdGFydEV4Y2VwdGlvbiQxKTtcbnZhciBTbmFwU3RhcnROb3RSZWFkeUV4Y2VwdGlvbiA9IFtcbiAgICAtMyxcbiAgICBuMCxcbiAgICBfU1NOUkUsXG4gICAgeyBbX2VdOiBfYywgW19oRV06IDQwOSB9LFxuICAgIFtfVHksIF9NXSxcbiAgICBbMCwgMF0sXG5dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoU25hcFN0YXJ0Tm90UmVhZHlFeGNlcHRpb24sIFNuYXBTdGFydE5vdFJlYWR5RXhjZXB0aW9uJDEpO1xudmFyIFNuYXBTdGFydFJlc3BvbnNlID0gWzMsIG4wLCBfU1NSLCAwLCBbX0FPcCwgX09TcF0sIFswLCAwXV07XG52YXIgU25hcFN0YXJ0VGltZW91dEV4Y2VwdGlvbiA9IFstMywgbjAsIF9TU1RFLCB7IFtfZV06IF9jLCBbX2hFXTogNDA4IH0sIFtfVHksIF9NXSwgWzAsIDBdXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKFNuYXBTdGFydFRpbWVvdXRFeGNlcHRpb24sIFNuYXBTdGFydFRpbWVvdXRFeGNlcHRpb24kMSk7XG52YXIgU291cmNlQWNjZXNzQ29uZmlndXJhdGlvbiA9IFszLCBuMCwgX1NBQ28sIDAsIFtfVHksIF9VUkldLCBbMCwgMF1dO1xudmFyIFN0ZXBEZXRhaWxzID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1NELFxuICAgIDAsXG4gICAgW19BdHQsIF9OQVQsIF9SLCBfRV0sXG4gICAgWzEsIDQsIFsoKSA9PiBPcGVyYXRpb25QYXlsb2FkLCAwXSwgWygpID0+IEVycm9yT2JqZWN0LCAwXV0sXG5dO1xudmFyIFN0ZXBGYWlsZWREZXRhaWxzID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1NGRCxcbiAgICAwLFxuICAgIFtfRSwgX1JEXSxcbiAgICBbWygpID0+IEV2ZW50RXJyb3IsIDBdLCAoKSA9PiBSZXRyeURldGFpbHNdLFxuXTtcbnZhciBTdGVwT3B0aW9ucyA9IFszLCBuMCwgX1NPLCAwLCBbX05BRFNdLCBbMV1dO1xudmFyIFN0ZXBTdGFydGVkRGV0YWlscyA9IFszLCBuMCwgX1NTRCwgMCwgW10sIFtdXTtcbnZhciBTdGVwU3VjY2VlZGVkRGV0YWlscyA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9TU0R0LFxuICAgIDAsXG4gICAgW19SLCBfUkRdLFxuICAgIFtbKCkgPT4gRXZlbnRSZXN1bHQsIDBdLCAoKSA9PiBSZXRyeURldGFpbHNdLFxuXTtcbnZhciBTdG9wRHVyYWJsZUV4ZWN1dGlvblJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfU0RFUixcbiAgICAwLFxuICAgIFtfREVBLCBfRV0sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFsoKSA9PiBFcnJvck9iamVjdCwgMTZdLFxuICAgIF0sXG5dO1xudmFyIFN0b3BEdXJhYmxlRXhlY3V0aW9uUmVzcG9uc2UgPSBbMywgbjAsIF9TREVSdCwgMCwgW19TVHRvXSwgWzRdXTtcbnZhciBTdWJuZXRJUEFkZHJlc3NMaW1pdFJlYWNoZWRFeGNlcHRpb24gPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX1NJUEFMUkUsXG4gICAgeyBbX2VdOiBfc2UsIFtfaEVdOiA1MDIgfSxcbiAgICBbX1R5LCBfTV0sXG4gICAgWzAsIDBdLFxuXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKFN1Ym5ldElQQWRkcmVzc0xpbWl0UmVhY2hlZEV4Y2VwdGlvbiwgU3VibmV0SVBBZGRyZXNzTGltaXRSZWFjaGVkRXhjZXB0aW9uJDEpO1xudmFyIFRhZ1Jlc291cmNlUmVxdWVzdCA9IFszLCBuMCwgX1RSUiwgMCwgW19SZSwgX1RhXSwgW1swLCAxXSwgMTI4IHwgMF1dO1xudmFyIFRhZ3NFcnJvciA9IFszLCBuMCwgX1RFLCAwLCBbX0VDLCBfTV0sIFswLCAwXV07XG52YXIgVGFyZ2V0VHJhY2tpbmdTY2FsaW5nUG9saWN5ID0gWzMsIG4wLCBfVFRTUCwgMCwgW19QTVQsIF9UVl0sIFswLCAxXV07XG52YXIgVGVuYW5jeUNvbmZpZyA9IFszLCBuMCwgX1RDZSwgMCwgW19USU1dLCBbMF1dO1xudmFyIFRvb01hbnlSZXF1ZXN0c0V4Y2VwdGlvbiA9IFtcbiAgICAtMyxcbiAgICBuMCxcbiAgICBfVE1SRSxcbiAgICB7IFtfZV06IF9jLCBbX2hFXTogNDI5IH0sXG4gICAgW19yQVMsIF9UeSwgX20sIF9SZWFdLFxuICAgIFtbMCwgeyBbX2hIXTogX1JBIH1dLCAwLCAwLCAwXSxcbl07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihUb29NYW55UmVxdWVzdHNFeGNlcHRpb24sIFRvb01hbnlSZXF1ZXN0c0V4Y2VwdGlvbiQxKTtcbnZhciBUcmFjZUhlYWRlciA9IFszLCBuMCwgX1RILCAwLCBbX1hBVEltXSwgWzBdXTtcbnZhciBUcmFjaW5nQ29uZmlnID0gWzMsIG4wLCBfVEMsIDAsIFtfTW9dLCBbMF1dO1xudmFyIFRyYWNpbmdDb25maWdSZXNwb25zZSA9IFszLCBuMCwgX1RDUiwgMCwgW19Nb10sIFswXV07XG52YXIgVW5zdXBwb3J0ZWRNZWRpYVR5cGVFeGNlcHRpb24gPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX1VNVEUsXG4gICAgeyBbX2VdOiBfYywgW19oRV06IDQxNSB9LFxuICAgIFtfVHksIF9tXSxcbiAgICBbMCwgMF0sXG5dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoVW5zdXBwb3J0ZWRNZWRpYVR5cGVFeGNlcHRpb24sIFVuc3VwcG9ydGVkTWVkaWFUeXBlRXhjZXB0aW9uJDEpO1xudmFyIFVudGFnUmVzb3VyY2VSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1VSUixcbiAgICAwLFxuICAgIFtfUmUsIF9US10sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFs2NCB8IDAsIHsgW19oUV06IF90SyB9XSxcbiAgICBdLFxuXTtcbnZhciBVcGRhdGVBbGlhc1JlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfVUFSLFxuICAgIDAsXG4gICAgW19GTiwgX04sIF9GViwgX0QsIF9SQywgX1JJXSxcbiAgICBbWzAsIDFdLCBbMCwgMV0sIDAsIDAsICgpID0+IEFsaWFzUm91dGluZ0NvbmZpZ3VyYXRpb24sIDBdLFxuXTtcbnZhciBVcGRhdGVDYXBhY2l0eVByb3ZpZGVyUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9VQ1BSLFxuICAgIDAsXG4gICAgW19DUE4sIF9DUFNDXSxcbiAgICBbWzAsIDFdLCAoKSA9PiBDYXBhY2l0eVByb3ZpZGVyU2NhbGluZ0NvbmZpZ10sXG5dO1xudmFyIFVwZGF0ZUNhcGFjaXR5UHJvdmlkZXJSZXNwb25zZSA9IFszLCBuMCwgX1VDUFJwLCAwLCBbX0NQXSwgWygpID0+IENhcGFjaXR5UHJvdmlkZXJdXTtcbnZhciBVcGRhdGVDb2RlU2lnbmluZ0NvbmZpZ1JlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfVUNTQ1IsXG4gICAgMCxcbiAgICBbX0NTQ0EsIF9ELCBfQVAsIF9DU1BdLFxuICAgIFtbMCwgMV0sIDAsICgpID0+IEFsbG93ZWRQdWJsaXNoZXJzLCAoKSA9PiBDb2RlU2lnbmluZ1BvbGljaWVzXSxcbl07XG52YXIgVXBkYXRlQ29kZVNpZ25pbmdDb25maWdSZXNwb25zZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9VQ1NDUnAsXG4gICAgMCxcbiAgICBbX0NTQ10sXG4gICAgWygpID0+IENvZGVTaWduaW5nQ29uZmlnXSxcbl07XG52YXIgVXBkYXRlRXZlbnRTb3VyY2VNYXBwaW5nUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9VRVNNUixcbiAgICAwLFxuICAgIFtcbiAgICAgICAgX1VVSUQsXG4gICAgICAgIF9GTixcbiAgICAgICAgX0VuLFxuICAgICAgICBfQlNhLFxuICAgICAgICBfRkNpLFxuICAgICAgICBfTUJXSVMsXG4gICAgICAgIF9EQyxcbiAgICAgICAgX01SQUlTLFxuICAgICAgICBfQkJPRkUsXG4gICAgICAgIF9NUkEsXG4gICAgICAgIF9QRixcbiAgICAgICAgX1NBQyxcbiAgICAgICAgX1RXSVMsXG4gICAgICAgIF9GUlQsXG4gICAgICAgIF9TQyxcbiAgICAgICAgX0FNS0VTQyxcbiAgICAgICAgX1NNS0VTQyxcbiAgICAgICAgX0REQkVTQyxcbiAgICAgICAgX0tNU0tBLFxuICAgICAgICBfTUMsXG4gICAgICAgIF9QUEMsXG4gICAgXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgMCxcbiAgICAgICAgMixcbiAgICAgICAgMSxcbiAgICAgICAgKCkgPT4gRmlsdGVyQ3JpdGVyaWEsXG4gICAgICAgIDEsXG4gICAgICAgICgpID0+IERlc3RpbmF0aW9uQ29uZmlnLFxuICAgICAgICAxLFxuICAgICAgICAyLFxuICAgICAgICAxLFxuICAgICAgICAxLFxuICAgICAgICAoKSA9PiBTb3VyY2VBY2Nlc3NDb25maWd1cmF0aW9ucyxcbiAgICAgICAgMSxcbiAgICAgICAgNjQgfCAwLFxuICAgICAgICAoKSA9PiBTY2FsaW5nQ29uZmlnLFxuICAgICAgICAoKSA9PiBBbWF6b25NYW5hZ2VkS2Fma2FFdmVudFNvdXJjZUNvbmZpZyxcbiAgICAgICAgKCkgPT4gU2VsZk1hbmFnZWRLYWZrYUV2ZW50U291cmNlQ29uZmlnLFxuICAgICAgICAoKSA9PiBEb2N1bWVudERCRXZlbnRTb3VyY2VDb25maWcsXG4gICAgICAgIDAsXG4gICAgICAgICgpID0+IEV2ZW50U291cmNlTWFwcGluZ01ldHJpY3NDb25maWcsXG4gICAgICAgICgpID0+IFByb3Zpc2lvbmVkUG9sbGVyQ29uZmlnLFxuICAgIF0sXG5dO1xudmFyIFVwZGF0ZUZ1bmN0aW9uQ29kZVJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfVUZDUixcbiAgICAwLFxuICAgIFtfRk4sIF9aRiwgX1NCLCBfU0ssIF9TT1YsIF9JVSwgX1B1LCBfRFIsIF9SSSwgX0FyLCBfU0tNU0tBLCBfUFR1XSxcbiAgICBbWzAsIDFdLCBbKCkgPT4gX0Jsb2IsIDBdLCAwLCAwLCAwLCAwLCAyLCAyLCAwLCA2NCB8IDAsIDAsIDBdLFxuXTtcbnZhciBVcGRhdGVGdW5jdGlvbkNvbmZpZ3VyYXRpb25SZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1VGQ1JwLFxuICAgIDAsXG4gICAgW19GTiwgX1JvLCBfSCwgX0QsIF9ULCBfTVMsIF9WQywgX0VudiwgX1J1LCBfRExDLCBfS01TS0EsIF9UQywgX1JJLCBfTCwgX0ZTQywgX0lDLCBfRVMsIF9TU24sIF9MQywgX0NQQywgX0RDdV0sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIDAsXG4gICAgICAgIDAsXG4gICAgICAgIDAsXG4gICAgICAgIDEsXG4gICAgICAgIDEsXG4gICAgICAgICgpID0+IFZwY0NvbmZpZyxcbiAgICAgICAgWygpID0+IEVudmlyb25tZW50LCAwXSxcbiAgICAgICAgMCxcbiAgICAgICAgKCkgPT4gRGVhZExldHRlckNvbmZpZyxcbiAgICAgICAgMCxcbiAgICAgICAgKCkgPT4gVHJhY2luZ0NvbmZpZyxcbiAgICAgICAgMCxcbiAgICAgICAgNjQgfCAwLFxuICAgICAgICAoKSA9PiBGaWxlU3lzdGVtQ29uZmlnTGlzdCxcbiAgICAgICAgKCkgPT4gSW1hZ2VDb25maWcsXG4gICAgICAgICgpID0+IEVwaGVtZXJhbFN0b3JhZ2UsXG4gICAgICAgICgpID0+IFNuYXBTdGFydCxcbiAgICAgICAgKCkgPT4gTG9nZ2luZ0NvbmZpZyxcbiAgICAgICAgKCkgPT4gQ2FwYWNpdHlQcm92aWRlckNvbmZpZyxcbiAgICAgICAgKCkgPT4gRHVyYWJsZUNvbmZpZyxcbiAgICBdLFxuXTtcbnZhciBVcGRhdGVGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9VRkVJQ1IsXG4gICAgMCxcbiAgICBbX0ZOLCBfUSwgX01SQSwgX01FQUlTLCBfRENdLFxuICAgIFtbMCwgMV0sIFswLCB7IFtfaFFdOiBfUSB9XSwgMSwgMSwgKCkgPT4gRGVzdGluYXRpb25Db25maWddLFxuXTtcbnZhciBVcGRhdGVGdW5jdGlvblVybENvbmZpZ1JlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfVUZVQ1IsXG4gICAgMCxcbiAgICBbX0ZOLCBfUSwgX0FULCBfQ28sIF9JTV0sXG4gICAgW1swLCAxXSwgWzAsIHsgW19oUV06IF9RIH1dLCAwLCAoKSA9PiBDb3JzLCAwXSxcbl07XG52YXIgVXBkYXRlRnVuY3Rpb25VcmxDb25maWdSZXNwb25zZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9VRlVDUnAsXG4gICAgMCxcbiAgICBbX0ZVLCBfRkEsIF9BVCwgX0NvLCBfQ1RyLCBfTE1ULCBfSU1dLFxuICAgIFswLCAwLCAwLCAoKSA9PiBDb3JzLCAwLCAwLCAwXSxcbl07XG52YXIgVnBjQ29uZmlnID0gWzMsIG4wLCBfVkMsIDAsIFtfU0l1LCBfU0dJLCBfSUFGRFNdLCBbNjQgfCAwLCA2NCB8IDAsIDJdXTtcbnZhciBWcGNDb25maWdSZXNwb25zZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9WQ1IsXG4gICAgMCxcbiAgICBbX1NJdSwgX1NHSSwgX1ZJLCBfSUFGRFNdLFxuICAgIFs2NCB8IDAsIDY0IHwgMCwgMCwgMl0sXG5dO1xudmFyIFdhaXRDYW5jZWxsZWREZXRhaWxzID0gWzMsIG4wLCBfV0NELCAwLCBbX0VdLCBbWygpID0+IEV2ZW50RXJyb3IsIDBdXV07XG52YXIgV2FpdERldGFpbHMgPSBbMywgbjAsIF9XRGEsIDAsIFtfU0VUXSwgWzRdXTtcbnZhciBXYWl0T3B0aW9ucyA9IFszLCBuMCwgX1dPLCAwLCBbX1dTXSwgWzFdXTtcbnZhciBXYWl0U3RhcnRlZERldGFpbHMgPSBbMywgbjAsIF9XU0QsIDAsIFtfRHUsIF9TRVRdLCBbMSwgNF1dO1xudmFyIFdhaXRTdWNjZWVkZWREZXRhaWxzID0gWzMsIG4wLCBfV1NEYSwgMCwgW19EdV0sIFsxXV07XG52YXIgX19Vbml0ID0gXCJ1bml0XCI7XG52YXIgTGFtYmRhU2VydmljZUV4Y2VwdGlvbiA9IFstMywgX3NtLCBcIkxhbWJkYVNlcnZpY2VFeGNlcHRpb25cIiwgMCwgW10sIFtdXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKF9zbSkucmVnaXN0ZXJFcnJvcihMYW1iZGFTZXJ2aWNlRXhjZXB0aW9uLCBMYW1iZGFTZXJ2aWNlRXhjZXB0aW9uJDEpO1xudmFyIEFsaWFzTGlzdCA9IFsxLCBuMCwgX0FMbCwgMCwgKCkgPT4gQWxpYXNDb25maWd1cmF0aW9uXTtcbnZhciBDYXBhY2l0eVByb3ZpZGVyU2NhbGluZ1BvbGljaWVzTGlzdCA9IFtcbiAgICAxLFxuICAgIG4wLFxuICAgIF9DUFNQTCxcbiAgICAwLFxuICAgICgpID0+IFRhcmdldFRyYWNraW5nU2NhbGluZ1BvbGljeSxcbl07XG52YXIgQ2FwYWNpdHlQcm92aWRlcnNMaXN0ID0gWzEsIG4wLCBfQ1BMLCAwLCAoKSA9PiBDYXBhY2l0eVByb3ZpZGVyXTtcbnZhciBDb2RlU2lnbmluZ0NvbmZpZ0xpc3QgPSBbMSwgbjAsIF9DU0NMLCAwLCAoKSA9PiBDb2RlU2lnbmluZ0NvbmZpZ107XG52YXIgRHVyYWJsZUV4ZWN1dGlvbnMgPSBbMSwgbjAsIF9ERSwgMCwgKCkgPT4gRXhlY3V0aW9uXTtcbnZhciBFdmVudHMgPSBbMSwgbjAsIF9FdmUsIDAsIFsoKSA9PiBFdmVudCwgMF1dO1xudmFyIEV2ZW50U291cmNlTWFwcGluZ3NMaXN0ID0gWzEsIG4wLCBfRVNNTCwgMCwgKCkgPT4gRXZlbnRTb3VyY2VNYXBwaW5nQ29uZmlndXJhdGlvbl07XG52YXIgRmlsZVN5c3RlbUNvbmZpZ0xpc3QgPSBbMSwgbjAsIF9GU0NMLCAwLCAoKSA9PiBGaWxlU3lzdGVtQ29uZmlnXTtcbnZhciBGaWx0ZXJMaXN0ID0gWzEsIG4wLCBfRkwsIDAsICgpID0+IEZpbHRlcl07XG52YXIgRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0xpc3QgPSBbMSwgbjAsIF9GRUlDTCwgMCwgKCkgPT4gRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ107XG52YXIgRnVuY3Rpb25MaXN0ID0gWzEsIG4wLCBfRkx1LCAwLCBbKCkgPT4gRnVuY3Rpb25Db25maWd1cmF0aW9uLCAwXV07XG52YXIgRnVuY3Rpb25VcmxDb25maWdMaXN0ID0gWzEsIG4wLCBfRlVDTCwgMCwgKCkgPT4gRnVuY3Rpb25VcmxDb25maWddO1xudmFyIEZ1bmN0aW9uVmVyc2lvbnNCeUNhcGFjaXR5UHJvdmlkZXJMaXN0ID0gW1xuICAgIDEsXG4gICAgbjAsXG4gICAgX0ZWQkNQTCxcbiAgICAwLFxuICAgICgpID0+IEZ1bmN0aW9uVmVyc2lvbnNCeUNhcGFjaXR5UHJvdmlkZXJMaXN0SXRlbSxcbl07XG52YXIgS2Fma2FTY2hlbWFSZWdpc3RyeUFjY2Vzc0NvbmZpZ0xpc3QgPSBbXG4gICAgMSxcbiAgICBuMCxcbiAgICBfS1NSQUNMLFxuICAgIDAsXG4gICAgKCkgPT4gS2Fma2FTY2hlbWFSZWdpc3RyeUFjY2Vzc0NvbmZpZyxcbl07XG52YXIgS2Fma2FTY2hlbWFWYWxpZGF0aW9uQ29uZmlnTGlzdCA9IFsxLCBuMCwgX0tTVkNMLCAwLCAoKSA9PiBLYWZrYVNjaGVtYVZhbGlkYXRpb25Db25maWddO1xudmFyIExheWVyc0xpc3QgPSBbMSwgbjAsIF9MTCwgMCwgKCkgPT4gTGF5ZXJzTGlzdEl0ZW1dO1xudmFyIExheWVyc1JlZmVyZW5jZUxpc3QgPSBbMSwgbjAsIF9MUkwsIDAsICgpID0+IExheWVyXTtcbnZhciBMYXllclZlcnNpb25zTGlzdCA9IFsxLCBuMCwgX0xWTCwgMCwgKCkgPT4gTGF5ZXJWZXJzaW9uc0xpc3RJdGVtXTtcbnZhciBPcGVyYXRpb25zID0gWzEsIG4wLCBfTywgMCwgWygpID0+IE9wZXJhdGlvbiwgMF1dO1xudmFyIE9wZXJhdGlvblVwZGF0ZXMgPSBbMSwgbjAsIF9PVXAsIDAsIFsoKSA9PiBPcGVyYXRpb25VcGRhdGUsIDBdXTtcbnZhciBQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnTGlzdCA9IFtcbiAgICAxLFxuICAgIG4wLFxuICAgIF9QQ0NMLFxuICAgIDAsXG4gICAgKCkgPT4gUHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ0xpc3RJdGVtLFxuXTtcbnZhciBTb3VyY2VBY2Nlc3NDb25maWd1cmF0aW9ucyA9IFsxLCBuMCwgX1NBQywgMCwgKCkgPT4gU291cmNlQWNjZXNzQ29uZmlndXJhdGlvbl07XG52YXIgU3RhY2tUcmFjZUVudHJpZXMgPSBbMSwgbjAsIF9TVEV0LCAwLCBbKCkgPT4gU3RhY2tUcmFjZUVudHJ5LCAwXV07XG52YXIgRW52aXJvbm1lbnRWYXJpYWJsZXMgPSBbXG4gICAgMixcbiAgICBuMCxcbiAgICBfRVZuLFxuICAgIDgsXG4gICAgWygpID0+IEVudmlyb25tZW50VmFyaWFibGVOYW1lLCAwXSxcbiAgICBbKCkgPT4gRW52aXJvbm1lbnRWYXJpYWJsZVZhbHVlLCAwXSxcbl07XG52YXIgSW52b2tlV2l0aFJlc3BvbnNlU3RyZWFtUmVzcG9uc2VFdmVudCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9JV1JTUkUsXG4gICAgeyBbX3NdOiAxIH0sXG4gICAgW19QQ2EsIF9JQ25dLFxuICAgIFtbKCkgPT4gSW52b2tlUmVzcG9uc2VTdHJlYW1VcGRhdGUsIDBdLCAoKSA9PiBJbnZva2VXaXRoUmVzcG9uc2VTdHJlYW1Db21wbGV0ZUV2ZW50XSxcbl07XG52YXIgQWRkTGF5ZXJWZXJzaW9uUGVybWlzc2lvbiA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9BTFZQLFxuICAgIHsgW19oXTogW1wiUE9TVFwiLCBcIi8yMDE4LTEwLTMxL2xheWVycy97TGF5ZXJOYW1lfS92ZXJzaW9ucy97VmVyc2lvbk51bWJlcn0vcG9saWN5XCIsIDIwMV0gfSxcbiAgICAoKSA9PiBBZGRMYXllclZlcnNpb25QZXJtaXNzaW9uUmVxdWVzdCxcbiAgICAoKSA9PiBBZGRMYXllclZlcnNpb25QZXJtaXNzaW9uUmVzcG9uc2UsXG5dO1xudmFyIEFkZFBlcm1pc3Npb24gPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfQVBkLFxuICAgIHsgW19oXTogW1wiUE9TVFwiLCBcIi8yMDE1LTAzLTMxL2Z1bmN0aW9ucy97RnVuY3Rpb25OYW1lfS9wb2xpY3lcIiwgMjAxXSB9LFxuICAgICgpID0+IEFkZFBlcm1pc3Npb25SZXF1ZXN0LFxuICAgICgpID0+IEFkZFBlcm1pc3Npb25SZXNwb25zZSxcbl07XG52YXIgQ2hlY2twb2ludER1cmFibGVFeGVjdXRpb24gPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfQ0RFLFxuICAgIHsgW19oXTogW1wiUE9TVFwiLCBcIi8yMDI1LTEyLTAxL2R1cmFibGUtZXhlY3V0aW9ucy97RHVyYWJsZUV4ZWN1dGlvbkFybn0vY2hlY2twb2ludFwiLCAyMDBdIH0sXG4gICAgKCkgPT4gQ2hlY2twb2ludER1cmFibGVFeGVjdXRpb25SZXF1ZXN0LFxuICAgICgpID0+IENoZWNrcG9pbnREdXJhYmxlRXhlY3V0aW9uUmVzcG9uc2UsXG5dO1xudmFyIENyZWF0ZUFsaWFzID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0NBcixcbiAgICB7IFtfaF06IFtcIlBPU1RcIiwgXCIvMjAxNS0wMy0zMS9mdW5jdGlvbnMve0Z1bmN0aW9uTmFtZX0vYWxpYXNlc1wiLCAyMDFdIH0sXG4gICAgKCkgPT4gQ3JlYXRlQWxpYXNSZXF1ZXN0LFxuICAgICgpID0+IEFsaWFzQ29uZmlndXJhdGlvbixcbl07XG52YXIgQ3JlYXRlQ2FwYWNpdHlQcm92aWRlciA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9DQ1AsXG4gICAgeyBbX2hdOiBbXCJQT1NUXCIsIFwiLzIwMjUtMTEtMzAvY2FwYWNpdHktcHJvdmlkZXJzXCIsIDIwMl0gfSxcbiAgICAoKSA9PiBDcmVhdGVDYXBhY2l0eVByb3ZpZGVyUmVxdWVzdCxcbiAgICAoKSA9PiBDcmVhdGVDYXBhY2l0eVByb3ZpZGVyUmVzcG9uc2UsXG5dO1xudmFyIENyZWF0ZUNvZGVTaWduaW5nQ29uZmlnID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0NDU0MsXG4gICAgeyBbX2hdOiBbXCJQT1NUXCIsIFwiLzIwMjAtMDQtMjIvY29kZS1zaWduaW5nLWNvbmZpZ3NcIiwgMjAxXSB9LFxuICAgICgpID0+IENyZWF0ZUNvZGVTaWduaW5nQ29uZmlnUmVxdWVzdCxcbiAgICAoKSA9PiBDcmVhdGVDb2RlU2lnbmluZ0NvbmZpZ1Jlc3BvbnNlLFxuXTtcbnZhciBDcmVhdGVFdmVudFNvdXJjZU1hcHBpbmcgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfQ0VTTSxcbiAgICB7IFtfaF06IFtcIlBPU1RcIiwgXCIvMjAxNS0wMy0zMS9ldmVudC1zb3VyY2UtbWFwcGluZ3NcIiwgMjAyXSB9LFxuICAgICgpID0+IENyZWF0ZUV2ZW50U291cmNlTWFwcGluZ1JlcXVlc3QsXG4gICAgKCkgPT4gRXZlbnRTb3VyY2VNYXBwaW5nQ29uZmlndXJhdGlvbixcbl07XG52YXIgQ3JlYXRlRnVuY3Rpb24gPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfQ0YsXG4gICAgeyBbX2hdOiBbXCJQT1NUXCIsIFwiLzIwMTUtMDMtMzEvZnVuY3Rpb25zXCIsIDIwMV0gfSxcbiAgICAoKSA9PiBDcmVhdGVGdW5jdGlvblJlcXVlc3QsXG4gICAgKCkgPT4gRnVuY3Rpb25Db25maWd1cmF0aW9uLFxuXTtcbnZhciBDcmVhdGVGdW5jdGlvblVybENvbmZpZyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9DRlVDLFxuICAgIHsgW19oXTogW1wiUE9TVFwiLCBcIi8yMDIxLTEwLTMxL2Z1bmN0aW9ucy97RnVuY3Rpb25OYW1lfS91cmxcIiwgMjAxXSB9LFxuICAgICgpID0+IENyZWF0ZUZ1bmN0aW9uVXJsQ29uZmlnUmVxdWVzdCxcbiAgICAoKSA9PiBDcmVhdGVGdW5jdGlvblVybENvbmZpZ1Jlc3BvbnNlLFxuXTtcbnZhciBEZWxldGVBbGlhcyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9EQSxcbiAgICB7IFtfaF06IFtcIkRFTEVURVwiLCBcIi8yMDE1LTAzLTMxL2Z1bmN0aW9ucy97RnVuY3Rpb25OYW1lfS9hbGlhc2VzL3tOYW1lfVwiLCAyMDRdIH0sXG4gICAgKCkgPT4gRGVsZXRlQWxpYXNSZXF1ZXN0LFxuICAgICgpID0+IF9fVW5pdCxcbl07XG52YXIgRGVsZXRlQ2FwYWNpdHlQcm92aWRlciA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9EQ1AsXG4gICAgeyBbX2hdOiBbXCJERUxFVEVcIiwgXCIvMjAyNS0xMS0zMC9jYXBhY2l0eS1wcm92aWRlcnMve0NhcGFjaXR5UHJvdmlkZXJOYW1lfVwiLCAyMDJdIH0sXG4gICAgKCkgPT4gRGVsZXRlQ2FwYWNpdHlQcm92aWRlclJlcXVlc3QsXG4gICAgKCkgPT4gRGVsZXRlQ2FwYWNpdHlQcm92aWRlclJlc3BvbnNlLFxuXTtcbnZhciBEZWxldGVDb2RlU2lnbmluZ0NvbmZpZyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9EQ1NDLFxuICAgIHsgW19oXTogW1wiREVMRVRFXCIsIFwiLzIwMjAtMDQtMjIvY29kZS1zaWduaW5nLWNvbmZpZ3Mve0NvZGVTaWduaW5nQ29uZmlnQXJufVwiLCAyMDRdIH0sXG4gICAgKCkgPT4gRGVsZXRlQ29kZVNpZ25pbmdDb25maWdSZXF1ZXN0LFxuICAgICgpID0+IERlbGV0ZUNvZGVTaWduaW5nQ29uZmlnUmVzcG9uc2UsXG5dO1xudmFyIERlbGV0ZUV2ZW50U291cmNlTWFwcGluZyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9ERVNNLFxuICAgIHsgW19oXTogW1wiREVMRVRFXCIsIFwiLzIwMTUtMDMtMzEvZXZlbnQtc291cmNlLW1hcHBpbmdzL3tVVUlEfVwiLCAyMDJdIH0sXG4gICAgKCkgPT4gRGVsZXRlRXZlbnRTb3VyY2VNYXBwaW5nUmVxdWVzdCxcbiAgICAoKSA9PiBFdmVudFNvdXJjZU1hcHBpbmdDb25maWd1cmF0aW9uLFxuXTtcbnZhciBEZWxldGVGdW5jdGlvbiA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9ERixcbiAgICB7IFtfaF06IFtcIkRFTEVURVwiLCBcIi8yMDE1LTAzLTMxL2Z1bmN0aW9ucy97RnVuY3Rpb25OYW1lfVwiLCAyMDBdIH0sXG4gICAgKCkgPT4gRGVsZXRlRnVuY3Rpb25SZXF1ZXN0LFxuICAgICgpID0+IERlbGV0ZUZ1bmN0aW9uUmVzcG9uc2UsXG5dO1xudmFyIERlbGV0ZUZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWcgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfREZDU0MsXG4gICAgeyBbX2hdOiBbXCJERUxFVEVcIiwgXCIvMjAyMC0wNi0zMC9mdW5jdGlvbnMve0Z1bmN0aW9uTmFtZX0vY29kZS1zaWduaW5nLWNvbmZpZ1wiLCAyMDRdIH0sXG4gICAgKCkgPT4gRGVsZXRlRnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ1JlcXVlc3QsXG4gICAgKCkgPT4gX19Vbml0LFxuXTtcbnZhciBEZWxldGVGdW5jdGlvbkNvbmN1cnJlbmN5ID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0RGQyxcbiAgICB7IFtfaF06IFtcIkRFTEVURVwiLCBcIi8yMDE3LTEwLTMxL2Z1bmN0aW9ucy97RnVuY3Rpb25OYW1lfS9jb25jdXJyZW5jeVwiLCAyMDRdIH0sXG4gICAgKCkgPT4gRGVsZXRlRnVuY3Rpb25Db25jdXJyZW5jeVJlcXVlc3QsXG4gICAgKCkgPT4gX19Vbml0LFxuXTtcbnZhciBEZWxldGVGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0RGRUlDLFxuICAgIHsgW19oXTogW1wiREVMRVRFXCIsIFwiLzIwMTktMDktMjUvZnVuY3Rpb25zL3tGdW5jdGlvbk5hbWV9L2V2ZW50LWludm9rZS1jb25maWdcIiwgMjA0XSB9LFxuICAgICgpID0+IERlbGV0ZUZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdSZXF1ZXN0LFxuICAgICgpID0+IF9fVW5pdCxcbl07XG52YXIgRGVsZXRlRnVuY3Rpb25VcmxDb25maWcgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfREZVQyxcbiAgICB7IFtfaF06IFtcIkRFTEVURVwiLCBcIi8yMDIxLTEwLTMxL2Z1bmN0aW9ucy97RnVuY3Rpb25OYW1lfS91cmxcIiwgMjA0XSB9LFxuICAgICgpID0+IERlbGV0ZUZ1bmN0aW9uVXJsQ29uZmlnUmVxdWVzdCxcbiAgICAoKSA9PiBfX1VuaXQsXG5dO1xudmFyIERlbGV0ZUxheWVyVmVyc2lvbiA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9ETFYsXG4gICAgeyBbX2hdOiBbXCJERUxFVEVcIiwgXCIvMjAxOC0xMC0zMS9sYXllcnMve0xheWVyTmFtZX0vdmVyc2lvbnMve1ZlcnNpb25OdW1iZXJ9XCIsIDIwNF0gfSxcbiAgICAoKSA9PiBEZWxldGVMYXllclZlcnNpb25SZXF1ZXN0LFxuICAgICgpID0+IF9fVW5pdCxcbl07XG52YXIgRGVsZXRlUHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9EUENDLFxuICAgIHsgW19oXTogW1wiREVMRVRFXCIsIFwiLzIwMTktMDktMzAvZnVuY3Rpb25zL3tGdW5jdGlvbk5hbWV9L3Byb3Zpc2lvbmVkLWNvbmN1cnJlbmN5XCIsIDIwNF0gfSxcbiAgICAoKSA9PiBEZWxldGVQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnUmVxdWVzdCxcbiAgICAoKSA9PiBfX1VuaXQsXG5dO1xudmFyIEdldEFjY291bnRTZXR0aW5ncyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9HQVMsXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIvMjAxNi0wOC0xOS9hY2NvdW50LXNldHRpbmdzXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBHZXRBY2NvdW50U2V0dGluZ3NSZXF1ZXN0LFxuICAgICgpID0+IEdldEFjY291bnRTZXR0aW5nc1Jlc3BvbnNlLFxuXTtcbnZhciBHZXRBbGlhcyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9HQSxcbiAgICB7IFtfaF06IFtcIkdFVFwiLCBcIi8yMDE1LTAzLTMxL2Z1bmN0aW9ucy97RnVuY3Rpb25OYW1lfS9hbGlhc2VzL3tOYW1lfVwiLCAyMDBdIH0sXG4gICAgKCkgPT4gR2V0QWxpYXNSZXF1ZXN0LFxuICAgICgpID0+IEFsaWFzQ29uZmlndXJhdGlvbixcbl07XG52YXIgR2V0Q2FwYWNpdHlQcm92aWRlciA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9HQ1AsXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIvMjAyNS0xMS0zMC9jYXBhY2l0eS1wcm92aWRlcnMve0NhcGFjaXR5UHJvdmlkZXJOYW1lfVwiLCAyMDBdIH0sXG4gICAgKCkgPT4gR2V0Q2FwYWNpdHlQcm92aWRlclJlcXVlc3QsXG4gICAgKCkgPT4gR2V0Q2FwYWNpdHlQcm92aWRlclJlc3BvbnNlLFxuXTtcbnZhciBHZXRDb2RlU2lnbmluZ0NvbmZpZyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9HQ1NDLFxuICAgIHsgW19oXTogW1wiR0VUXCIsIFwiLzIwMjAtMDQtMjIvY29kZS1zaWduaW5nLWNvbmZpZ3Mve0NvZGVTaWduaW5nQ29uZmlnQXJufVwiLCAyMDBdIH0sXG4gICAgKCkgPT4gR2V0Q29kZVNpZ25pbmdDb25maWdSZXF1ZXN0LFxuICAgICgpID0+IEdldENvZGVTaWduaW5nQ29uZmlnUmVzcG9uc2UsXG5dO1xudmFyIEdldER1cmFibGVFeGVjdXRpb24gPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfR0RFLFxuICAgIHsgW19oXTogW1wiR0VUXCIsIFwiLzIwMjUtMTItMDEvZHVyYWJsZS1leGVjdXRpb25zL3tEdXJhYmxlRXhlY3V0aW9uQXJufVwiLCAyMDBdIH0sXG4gICAgKCkgPT4gR2V0RHVyYWJsZUV4ZWN1dGlvblJlcXVlc3QsXG4gICAgKCkgPT4gR2V0RHVyYWJsZUV4ZWN1dGlvblJlc3BvbnNlLFxuXTtcbnZhciBHZXREdXJhYmxlRXhlY3V0aW9uSGlzdG9yeSA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9HREVILFxuICAgIHsgW19oXTogW1wiR0VUXCIsIFwiLzIwMjUtMTItMDEvZHVyYWJsZS1leGVjdXRpb25zL3tEdXJhYmxlRXhlY3V0aW9uQXJufS9oaXN0b3J5XCIsIDIwMF0gfSxcbiAgICAoKSA9PiBHZXREdXJhYmxlRXhlY3V0aW9uSGlzdG9yeVJlcXVlc3QsXG4gICAgKCkgPT4gR2V0RHVyYWJsZUV4ZWN1dGlvbkhpc3RvcnlSZXNwb25zZSxcbl07XG52YXIgR2V0RHVyYWJsZUV4ZWN1dGlvblN0YXRlID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0dERVMsXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIvMjAyNS0xMi0wMS9kdXJhYmxlLWV4ZWN1dGlvbnMve0R1cmFibGVFeGVjdXRpb25Bcm59L3N0YXRlXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBHZXREdXJhYmxlRXhlY3V0aW9uU3RhdGVSZXF1ZXN0LFxuICAgICgpID0+IEdldER1cmFibGVFeGVjdXRpb25TdGF0ZVJlc3BvbnNlLFxuXTtcbnZhciBHZXRFdmVudFNvdXJjZU1hcHBpbmcgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfR0VTTSxcbiAgICB7IFtfaF06IFtcIkdFVFwiLCBcIi8yMDE1LTAzLTMxL2V2ZW50LXNvdXJjZS1tYXBwaW5ncy97VVVJRH1cIiwgMjAwXSB9LFxuICAgICgpID0+IEdldEV2ZW50U291cmNlTWFwcGluZ1JlcXVlc3QsXG4gICAgKCkgPT4gRXZlbnRTb3VyY2VNYXBwaW5nQ29uZmlndXJhdGlvbixcbl07XG52YXIgR2V0RnVuY3Rpb24gPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfR0YsXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIvMjAxNS0wMy0zMS9mdW5jdGlvbnMve0Z1bmN0aW9uTmFtZX1cIiwgMjAwXSB9LFxuICAgICgpID0+IEdldEZ1bmN0aW9uUmVxdWVzdCxcbiAgICAoKSA9PiBHZXRGdW5jdGlvblJlc3BvbnNlLFxuXTtcbnZhciBHZXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0dGQ1NDLFxuICAgIHsgW19oXTogW1wiR0VUXCIsIFwiLzIwMjAtMDYtMzAvZnVuY3Rpb25zL3tGdW5jdGlvbk5hbWV9L2NvZGUtc2lnbmluZy1jb25maWdcIiwgMjAwXSB9LFxuICAgICgpID0+IEdldEZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdSZXF1ZXN0LFxuICAgICgpID0+IEdldEZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdSZXNwb25zZSxcbl07XG52YXIgR2V0RnVuY3Rpb25Db25jdXJyZW5jeSA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9HRkMsXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIvMjAxOS0wOS0zMC9mdW5jdGlvbnMve0Z1bmN0aW9uTmFtZX0vY29uY3VycmVuY3lcIiwgMjAwXSB9LFxuICAgICgpID0+IEdldEZ1bmN0aW9uQ29uY3VycmVuY3lSZXF1ZXN0LFxuICAgICgpID0+IEdldEZ1bmN0aW9uQ29uY3VycmVuY3lSZXNwb25zZSxcbl07XG52YXIgR2V0RnVuY3Rpb25Db25maWd1cmF0aW9uID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0dGQ2UsXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIvMjAxNS0wMy0zMS9mdW5jdGlvbnMve0Z1bmN0aW9uTmFtZX0vY29uZmlndXJhdGlvblwiLCAyMDBdIH0sXG4gICAgKCkgPT4gR2V0RnVuY3Rpb25Db25maWd1cmF0aW9uUmVxdWVzdCxcbiAgICAoKSA9PiBGdW5jdGlvbkNvbmZpZ3VyYXRpb24sXG5dO1xudmFyIEdldEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWcgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfR0ZFSUMsXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIvMjAxOS0wOS0yNS9mdW5jdGlvbnMve0Z1bmN0aW9uTmFtZX0vZXZlbnQtaW52b2tlLWNvbmZpZ1wiLCAyMDBdIH0sXG4gICAgKCkgPT4gR2V0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ1JlcXVlc3QsXG4gICAgKCkgPT4gRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZyxcbl07XG52YXIgR2V0RnVuY3Rpb25SZWN1cnNpb25Db25maWcgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfR0ZSQyxcbiAgICB7IFtfaF06IFtcIkdFVFwiLCBcIi8yMDI0LTA4LTMxL2Z1bmN0aW9ucy97RnVuY3Rpb25OYW1lfS9yZWN1cnNpb24tY29uZmlnXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBHZXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZ1JlcXVlc3QsXG4gICAgKCkgPT4gR2V0RnVuY3Rpb25SZWN1cnNpb25Db25maWdSZXNwb25zZSxcbl07XG52YXIgR2V0RnVuY3Rpb25TY2FsaW5nQ29uZmlnID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0dGU0MsXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIvMjAyNS0xMS0zMC9mdW5jdGlvbnMve0Z1bmN0aW9uTmFtZX0vZnVuY3Rpb24tc2NhbGluZy1jb25maWdcIiwgMjAwXSB9LFxuICAgICgpID0+IEdldEZ1bmN0aW9uU2NhbGluZ0NvbmZpZ1JlcXVlc3QsXG4gICAgKCkgPT4gR2V0RnVuY3Rpb25TY2FsaW5nQ29uZmlnUmVzcG9uc2UsXG5dO1xudmFyIEdldEZ1bmN0aW9uVXJsQ29uZmlnID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0dGVUMsXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIvMjAyMS0xMC0zMS9mdW5jdGlvbnMve0Z1bmN0aW9uTmFtZX0vdXJsXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBHZXRGdW5jdGlvblVybENvbmZpZ1JlcXVlc3QsXG4gICAgKCkgPT4gR2V0RnVuY3Rpb25VcmxDb25maWdSZXNwb25zZSxcbl07XG52YXIgR2V0TGF5ZXJWZXJzaW9uID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0dMVixcbiAgICB7IFtfaF06IFtcIkdFVFwiLCBcIi8yMDE4LTEwLTMxL2xheWVycy97TGF5ZXJOYW1lfS92ZXJzaW9ucy97VmVyc2lvbk51bWJlcn1cIiwgMjAwXSB9LFxuICAgICgpID0+IEdldExheWVyVmVyc2lvblJlcXVlc3QsXG4gICAgKCkgPT4gR2V0TGF5ZXJWZXJzaW9uUmVzcG9uc2UsXG5dO1xudmFyIEdldExheWVyVmVyc2lvbkJ5QXJuID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0dMVkJBLFxuICAgIHsgW19oXTogW1wiR0VUXCIsIFwiLzIwMTgtMTAtMzEvbGF5ZXJzP2ZpbmQ9TGF5ZXJWZXJzaW9uXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBHZXRMYXllclZlcnNpb25CeUFyblJlcXVlc3QsXG4gICAgKCkgPT4gR2V0TGF5ZXJWZXJzaW9uUmVzcG9uc2UsXG5dO1xudmFyIEdldExheWVyVmVyc2lvblBvbGljeSA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9HTFZQLFxuICAgIHsgW19oXTogW1wiR0VUXCIsIFwiLzIwMTgtMTAtMzEvbGF5ZXJzL3tMYXllck5hbWV9L3ZlcnNpb25zL3tWZXJzaW9uTnVtYmVyfS9wb2xpY3lcIiwgMjAwXSB9LFxuICAgICgpID0+IEdldExheWVyVmVyc2lvblBvbGljeVJlcXVlc3QsXG4gICAgKCkgPT4gR2V0TGF5ZXJWZXJzaW9uUG9saWN5UmVzcG9uc2UsXG5dO1xudmFyIEdldFBvbGljeSA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9HUCxcbiAgICB7IFtfaF06IFtcIkdFVFwiLCBcIi8yMDE1LTAzLTMxL2Z1bmN0aW9ucy97RnVuY3Rpb25OYW1lfS9wb2xpY3lcIiwgMjAwXSB9LFxuICAgICgpID0+IEdldFBvbGljeVJlcXVlc3QsXG4gICAgKCkgPT4gR2V0UG9saWN5UmVzcG9uc2UsXG5dO1xudmFyIEdldFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWcgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfR1BDQyxcbiAgICB7IFtfaF06IFtcIkdFVFwiLCBcIi8yMDE5LTA5LTMwL2Z1bmN0aW9ucy97RnVuY3Rpb25OYW1lfS9wcm92aXNpb25lZC1jb25jdXJyZW5jeVwiLCAyMDBdIH0sXG4gICAgKCkgPT4gR2V0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ1JlcXVlc3QsXG4gICAgKCkgPT4gR2V0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ1Jlc3BvbnNlLFxuXTtcbnZhciBHZXRSdW50aW1lTWFuYWdlbWVudENvbmZpZyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9HUk1DLFxuICAgIHsgW19oXTogW1wiR0VUXCIsIFwiLzIwMjEtMDctMjAvZnVuY3Rpb25zL3tGdW5jdGlvbk5hbWV9L3J1bnRpbWUtbWFuYWdlbWVudC1jb25maWdcIiwgMjAwXSB9LFxuICAgICgpID0+IEdldFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnUmVxdWVzdCxcbiAgICAoKSA9PiBHZXRSdW50aW1lTWFuYWdlbWVudENvbmZpZ1Jlc3BvbnNlLFxuXTtcbnZhciBJbnZva2UgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfSW4sXG4gICAgeyBbX2hdOiBbXCJQT1NUXCIsIFwiLzIwMTUtMDMtMzEvZnVuY3Rpb25zL3tGdW5jdGlvbk5hbWV9L2ludm9jYXRpb25zXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBJbnZvY2F0aW9uUmVxdWVzdCxcbiAgICAoKSA9PiBJbnZvY2F0aW9uUmVzcG9uc2UsXG5dO1xudmFyIEludm9rZUFzeW5jID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0lBbixcbiAgICB7IFtfaF06IFtcIlBPU1RcIiwgXCIvMjAxNC0xMS0xMy9mdW5jdGlvbnMve0Z1bmN0aW9uTmFtZX0vaW52b2tlLWFzeW5jXCIsIDIwMl0gfSxcbiAgICAoKSA9PiBJbnZva2VBc3luY1JlcXVlc3QsXG4gICAgKCkgPT4gSW52b2tlQXN5bmNSZXNwb25zZSxcbl07XG52YXIgSW52b2tlV2l0aFJlc3BvbnNlU3RyZWFtID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0lXUlMsXG4gICAgeyBbX2hdOiBbXCJQT1NUXCIsIFwiLzIwMjEtMTEtMTUvZnVuY3Rpb25zL3tGdW5jdGlvbk5hbWV9L3Jlc3BvbnNlLXN0cmVhbWluZy1pbnZvY2F0aW9uc1wiLCAyMDBdIH0sXG4gICAgKCkgPT4gSW52b2tlV2l0aFJlc3BvbnNlU3RyZWFtUmVxdWVzdCxcbiAgICAoKSA9PiBJbnZva2VXaXRoUmVzcG9uc2VTdHJlYW1SZXNwb25zZSxcbl07XG52YXIgTGlzdEFsaWFzZXMgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfTEFpLFxuICAgIHsgW19oXTogW1wiR0VUXCIsIFwiLzIwMTUtMDMtMzEvZnVuY3Rpb25zL3tGdW5jdGlvbk5hbWV9L2FsaWFzZXNcIiwgMjAwXSB9LFxuICAgICgpID0+IExpc3RBbGlhc2VzUmVxdWVzdCxcbiAgICAoKSA9PiBMaXN0QWxpYXNlc1Jlc3BvbnNlLFxuXTtcbnZhciBMaXN0Q2FwYWNpdHlQcm92aWRlcnMgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfTENQLFxuICAgIHsgW19oXTogW1wiR0VUXCIsIFwiLzIwMjUtMTEtMzAvY2FwYWNpdHktcHJvdmlkZXJzXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBMaXN0Q2FwYWNpdHlQcm92aWRlcnNSZXF1ZXN0LFxuICAgICgpID0+IExpc3RDYXBhY2l0eVByb3ZpZGVyc1Jlc3BvbnNlLFxuXTtcbnZhciBMaXN0Q29kZVNpZ25pbmdDb25maWdzID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0xDU0MsXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIvMjAyMC0wNC0yMi9jb2RlLXNpZ25pbmctY29uZmlnc1wiLCAyMDBdIH0sXG4gICAgKCkgPT4gTGlzdENvZGVTaWduaW5nQ29uZmlnc1JlcXVlc3QsXG4gICAgKCkgPT4gTGlzdENvZGVTaWduaW5nQ29uZmlnc1Jlc3BvbnNlLFxuXTtcbnZhciBMaXN0RHVyYWJsZUV4ZWN1dGlvbnNCeUZ1bmN0aW9uID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0xERUJGLFxuICAgIHsgW19oXTogW1wiR0VUXCIsIFwiLzIwMjUtMTItMDEvZnVuY3Rpb25zL3tGdW5jdGlvbk5hbWV9L2R1cmFibGUtZXhlY3V0aW9uc1wiLCAyMDBdIH0sXG4gICAgKCkgPT4gTGlzdER1cmFibGVFeGVjdXRpb25zQnlGdW5jdGlvblJlcXVlc3QsXG4gICAgKCkgPT4gTGlzdER1cmFibGVFeGVjdXRpb25zQnlGdW5jdGlvblJlc3BvbnNlLFxuXTtcbnZhciBMaXN0RXZlbnRTb3VyY2VNYXBwaW5ncyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9MRVNNLFxuICAgIHsgW19oXTogW1wiR0VUXCIsIFwiLzIwMTUtMDMtMzEvZXZlbnQtc291cmNlLW1hcHBpbmdzXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBMaXN0RXZlbnRTb3VyY2VNYXBwaW5nc1JlcXVlc3QsXG4gICAgKCkgPT4gTGlzdEV2ZW50U291cmNlTWFwcGluZ3NSZXNwb25zZSxcbl07XG52YXIgTGlzdEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdzID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0xGRUlDLFxuICAgIHsgW19oXTogW1wiR0VUXCIsIFwiLzIwMTktMDktMjUvZnVuY3Rpb25zL3tGdW5jdGlvbk5hbWV9L2V2ZW50LWludm9rZS1jb25maWcvbGlzdFwiLCAyMDBdIH0sXG4gICAgKCkgPT4gTGlzdEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdzUmVxdWVzdCxcbiAgICAoKSA9PiBMaXN0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ3NSZXNwb25zZSxcbl07XG52YXIgTGlzdEZ1bmN0aW9ucyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9MRmksXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIvMjAxNS0wMy0zMS9mdW5jdGlvbnNcIiwgMjAwXSB9LFxuICAgICgpID0+IExpc3RGdW5jdGlvbnNSZXF1ZXN0LFxuICAgICgpID0+IExpc3RGdW5jdGlvbnNSZXNwb25zZSxcbl07XG52YXIgTGlzdEZ1bmN0aW9uc0J5Q29kZVNpZ25pbmdDb25maWcgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfTEZCQ1NDLFxuICAgIHsgW19oXTogW1wiR0VUXCIsIFwiLzIwMjAtMDQtMjIvY29kZS1zaWduaW5nLWNvbmZpZ3Mve0NvZGVTaWduaW5nQ29uZmlnQXJufS9mdW5jdGlvbnNcIiwgMjAwXSB9LFxuICAgICgpID0+IExpc3RGdW5jdGlvbnNCeUNvZGVTaWduaW5nQ29uZmlnUmVxdWVzdCxcbiAgICAoKSA9PiBMaXN0RnVuY3Rpb25zQnlDb2RlU2lnbmluZ0NvbmZpZ1Jlc3BvbnNlLFxuXTtcbnZhciBMaXN0RnVuY3Rpb25VcmxDb25maWdzID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0xGVUMsXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIvMjAyMS0xMC0zMS9mdW5jdGlvbnMve0Z1bmN0aW9uTmFtZX0vdXJsc1wiLCAyMDBdIH0sXG4gICAgKCkgPT4gTGlzdEZ1bmN0aW9uVXJsQ29uZmlnc1JlcXVlc3QsXG4gICAgKCkgPT4gTGlzdEZ1bmN0aW9uVXJsQ29uZmlnc1Jlc3BvbnNlLFxuXTtcbnZhciBMaXN0RnVuY3Rpb25WZXJzaW9uc0J5Q2FwYWNpdHlQcm92aWRlciA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9MRlZCQ1AsXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIvMjAyNS0xMS0zMC9jYXBhY2l0eS1wcm92aWRlcnMve0NhcGFjaXR5UHJvdmlkZXJOYW1lfS9mdW5jdGlvbi12ZXJzaW9uc1wiLCAyMDBdIH0sXG4gICAgKCkgPT4gTGlzdEZ1bmN0aW9uVmVyc2lvbnNCeUNhcGFjaXR5UHJvdmlkZXJSZXF1ZXN0LFxuICAgICgpID0+IExpc3RGdW5jdGlvblZlcnNpb25zQnlDYXBhY2l0eVByb3ZpZGVyUmVzcG9uc2UsXG5dO1xudmFyIExpc3RMYXllcnMgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfTExpLFxuICAgIHsgW19oXTogW1wiR0VUXCIsIFwiLzIwMTgtMTAtMzEvbGF5ZXJzXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBMaXN0TGF5ZXJzUmVxdWVzdCxcbiAgICAoKSA9PiBMaXN0TGF5ZXJzUmVzcG9uc2UsXG5dO1xudmFyIExpc3RMYXllclZlcnNpb25zID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0xMVixcbiAgICB7IFtfaF06IFtcIkdFVFwiLCBcIi8yMDE4LTEwLTMxL2xheWVycy97TGF5ZXJOYW1lfS92ZXJzaW9uc1wiLCAyMDBdIH0sXG4gICAgKCkgPT4gTGlzdExheWVyVmVyc2lvbnNSZXF1ZXN0LFxuICAgICgpID0+IExpc3RMYXllclZlcnNpb25zUmVzcG9uc2UsXG5dO1xudmFyIExpc3RQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlncyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9MUENDLFxuICAgIHsgW19oXTogW1wiR0VUXCIsIFwiLzIwMTktMDktMzAvZnVuY3Rpb25zL3tGdW5jdGlvbk5hbWV9L3Byb3Zpc2lvbmVkLWNvbmN1cnJlbmN5P0xpc3Q9QUxMXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBMaXN0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ3NSZXF1ZXN0LFxuICAgICgpID0+IExpc3RQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnc1Jlc3BvbnNlLFxuXTtcbnZhciBMaXN0VGFncyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9MVGksXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIvMjAxNy0wMy0zMS90YWdzL3tSZXNvdXJjZX1cIiwgMjAwXSB9LFxuICAgICgpID0+IExpc3RUYWdzUmVxdWVzdCxcbiAgICAoKSA9PiBMaXN0VGFnc1Jlc3BvbnNlLFxuXTtcbnZhciBMaXN0VmVyc2lvbnNCeUZ1bmN0aW9uID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0xWQkYsXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIvMjAxNS0wMy0zMS9mdW5jdGlvbnMve0Z1bmN0aW9uTmFtZX0vdmVyc2lvbnNcIiwgMjAwXSB9LFxuICAgICgpID0+IExpc3RWZXJzaW9uc0J5RnVuY3Rpb25SZXF1ZXN0LFxuICAgICgpID0+IExpc3RWZXJzaW9uc0J5RnVuY3Rpb25SZXNwb25zZSxcbl07XG52YXIgUHVibGlzaExheWVyVmVyc2lvbiA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9QTFYsXG4gICAgeyBbX2hdOiBbXCJQT1NUXCIsIFwiLzIwMTgtMTAtMzEvbGF5ZXJzL3tMYXllck5hbWV9L3ZlcnNpb25zXCIsIDIwMV0gfSxcbiAgICAoKSA9PiBQdWJsaXNoTGF5ZXJWZXJzaW9uUmVxdWVzdCxcbiAgICAoKSA9PiBQdWJsaXNoTGF5ZXJWZXJzaW9uUmVzcG9uc2UsXG5dO1xudmFyIFB1Ymxpc2hWZXJzaW9uID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX1BWLFxuICAgIHsgW19oXTogW1wiUE9TVFwiLCBcIi8yMDE1LTAzLTMxL2Z1bmN0aW9ucy97RnVuY3Rpb25OYW1lfS92ZXJzaW9uc1wiLCAyMDFdIH0sXG4gICAgKCkgPT4gUHVibGlzaFZlcnNpb25SZXF1ZXN0LFxuICAgICgpID0+IEZ1bmN0aW9uQ29uZmlndXJhdGlvbixcbl07XG52YXIgUHV0RnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9QRkNTQyxcbiAgICB7IFtfaF06IFtcIlBVVFwiLCBcIi8yMDIwLTA2LTMwL2Z1bmN0aW9ucy97RnVuY3Rpb25OYW1lfS9jb2RlLXNpZ25pbmctY29uZmlnXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBQdXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnUmVxdWVzdCxcbiAgICAoKSA9PiBQdXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnUmVzcG9uc2UsXG5dO1xudmFyIFB1dEZ1bmN0aW9uQ29uY3VycmVuY3kgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfUEZDLFxuICAgIHsgW19oXTogW1wiUFVUXCIsIFwiLzIwMTctMTAtMzEvZnVuY3Rpb25zL3tGdW5jdGlvbk5hbWV9L2NvbmN1cnJlbmN5XCIsIDIwMF0gfSxcbiAgICAoKSA9PiBQdXRGdW5jdGlvbkNvbmN1cnJlbmN5UmVxdWVzdCxcbiAgICAoKSA9PiBDb25jdXJyZW5jeSxcbl07XG52YXIgUHV0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9QRkVJQyxcbiAgICB7IFtfaF06IFtcIlBVVFwiLCBcIi8yMDE5LTA5LTI1L2Z1bmN0aW9ucy97RnVuY3Rpb25OYW1lfS9ldmVudC1pbnZva2UtY29uZmlnXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBQdXRGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnUmVxdWVzdCxcbiAgICAoKSA9PiBGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnLFxuXTtcbnZhciBQdXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9QRlJDLFxuICAgIHsgW19oXTogW1wiUFVUXCIsIFwiLzIwMjQtMDgtMzEvZnVuY3Rpb25zL3tGdW5jdGlvbk5hbWV9L3JlY3Vyc2lvbi1jb25maWdcIiwgMjAwXSB9LFxuICAgICgpID0+IFB1dEZ1bmN0aW9uUmVjdXJzaW9uQ29uZmlnUmVxdWVzdCxcbiAgICAoKSA9PiBQdXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZ1Jlc3BvbnNlLFxuXTtcbnZhciBQdXRGdW5jdGlvblNjYWxpbmdDb25maWcgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfUEZTQyxcbiAgICB7IFtfaF06IFtcIlBVVFwiLCBcIi8yMDI1LTExLTMwL2Z1bmN0aW9ucy97RnVuY3Rpb25OYW1lfS9mdW5jdGlvbi1zY2FsaW5nLWNvbmZpZ1wiLCAyMDJdIH0sXG4gICAgKCkgPT4gUHV0RnVuY3Rpb25TY2FsaW5nQ29uZmlnUmVxdWVzdCxcbiAgICAoKSA9PiBQdXRGdW5jdGlvblNjYWxpbmdDb25maWdSZXNwb25zZSxcbl07XG52YXIgUHV0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9QUENDLFxuICAgIHsgW19oXTogW1wiUFVUXCIsIFwiLzIwMTktMDktMzAvZnVuY3Rpb25zL3tGdW5jdGlvbk5hbWV9L3Byb3Zpc2lvbmVkLWNvbmN1cnJlbmN5XCIsIDIwMl0gfSxcbiAgICAoKSA9PiBQdXRQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnUmVxdWVzdCxcbiAgICAoKSA9PiBQdXRQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnUmVzcG9uc2UsXG5dO1xudmFyIFB1dFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX1BSTUMsXG4gICAgeyBbX2hdOiBbXCJQVVRcIiwgXCIvMjAyMS0wNy0yMC9mdW5jdGlvbnMve0Z1bmN0aW9uTmFtZX0vcnVudGltZS1tYW5hZ2VtZW50LWNvbmZpZ1wiLCAyMDBdIH0sXG4gICAgKCkgPT4gUHV0UnVudGltZU1hbmFnZW1lbnRDb25maWdSZXF1ZXN0LFxuICAgICgpID0+IFB1dFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnUmVzcG9uc2UsXG5dO1xudmFyIFJlbW92ZUxheWVyVmVyc2lvblBlcm1pc3Npb24gPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfUkxWUCxcbiAgICB7IFtfaF06IFtcIkRFTEVURVwiLCBcIi8yMDE4LTEwLTMxL2xheWVycy97TGF5ZXJOYW1lfS92ZXJzaW9ucy97VmVyc2lvbk51bWJlcn0vcG9saWN5L3tTdGF0ZW1lbnRJZH1cIiwgMjA0XSB9LFxuICAgICgpID0+IFJlbW92ZUxheWVyVmVyc2lvblBlcm1pc3Npb25SZXF1ZXN0LFxuICAgICgpID0+IF9fVW5pdCxcbl07XG52YXIgUmVtb3ZlUGVybWlzc2lvbiA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9SUCxcbiAgICB7IFtfaF06IFtcIkRFTEVURVwiLCBcIi8yMDE1LTAzLTMxL2Z1bmN0aW9ucy97RnVuY3Rpb25OYW1lfS9wb2xpY3kve1N0YXRlbWVudElkfVwiLCAyMDRdIH0sXG4gICAgKCkgPT4gUmVtb3ZlUGVybWlzc2lvblJlcXVlc3QsXG4gICAgKCkgPT4gX19Vbml0LFxuXTtcbnZhciBTZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrRmFpbHVyZSA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9TREVDRixcbiAgICB7IFtfaF06IFtcIlBPU1RcIiwgXCIvMjAyNS0xMi0wMS9kdXJhYmxlLWV4ZWN1dGlvbi1jYWxsYmFja3Mve0NhbGxiYWNrSWR9L2ZhaWxcIiwgMjAwXSB9LFxuICAgICgpID0+IFNlbmREdXJhYmxlRXhlY3V0aW9uQ2FsbGJhY2tGYWlsdXJlUmVxdWVzdCxcbiAgICAoKSA9PiBTZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrRmFpbHVyZVJlc3BvbnNlLFxuXTtcbnZhciBTZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrSGVhcnRiZWF0ID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX1NERUNILFxuICAgIHsgW19oXTogW1wiUE9TVFwiLCBcIi8yMDI1LTEyLTAxL2R1cmFibGUtZXhlY3V0aW9uLWNhbGxiYWNrcy97Q2FsbGJhY2tJZH0vaGVhcnRiZWF0XCIsIDIwMF0gfSxcbiAgICAoKSA9PiBTZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrSGVhcnRiZWF0UmVxdWVzdCxcbiAgICAoKSA9PiBTZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrSGVhcnRiZWF0UmVzcG9uc2UsXG5dO1xudmFyIFNlbmREdXJhYmxlRXhlY3V0aW9uQ2FsbGJhY2tTdWNjZXNzID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX1NERUNTLFxuICAgIHsgW19oXTogW1wiUE9TVFwiLCBcIi8yMDI1LTEyLTAxL2R1cmFibGUtZXhlY3V0aW9uLWNhbGxiYWNrcy97Q2FsbGJhY2tJZH0vc3VjY2VlZFwiLCAyMDBdIH0sXG4gICAgKCkgPT4gU2VuZER1cmFibGVFeGVjdXRpb25DYWxsYmFja1N1Y2Nlc3NSZXF1ZXN0LFxuICAgICgpID0+IFNlbmREdXJhYmxlRXhlY3V0aW9uQ2FsbGJhY2tTdWNjZXNzUmVzcG9uc2UsXG5dO1xudmFyIFN0b3BEdXJhYmxlRXhlY3V0aW9uID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX1NERSxcbiAgICB7IFtfaF06IFtcIlBPU1RcIiwgXCIvMjAyNS0xMi0wMS9kdXJhYmxlLWV4ZWN1dGlvbnMve0R1cmFibGVFeGVjdXRpb25Bcm59L3N0b3BcIiwgMjAwXSB9LFxuICAgICgpID0+IFN0b3BEdXJhYmxlRXhlY3V0aW9uUmVxdWVzdCxcbiAgICAoKSA9PiBTdG9wRHVyYWJsZUV4ZWN1dGlvblJlc3BvbnNlLFxuXTtcbnZhciBUYWdSZXNvdXJjZSA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9UUixcbiAgICB7IFtfaF06IFtcIlBPU1RcIiwgXCIvMjAxNy0wMy0zMS90YWdzL3tSZXNvdXJjZX1cIiwgMjA0XSB9LFxuICAgICgpID0+IFRhZ1Jlc291cmNlUmVxdWVzdCxcbiAgICAoKSA9PiBfX1VuaXQsXG5dO1xudmFyIFVudGFnUmVzb3VyY2UgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfVVIsXG4gICAgeyBbX2hdOiBbXCJERUxFVEVcIiwgXCIvMjAxNy0wMy0zMS90YWdzL3tSZXNvdXJjZX1cIiwgMjA0XSB9LFxuICAgICgpID0+IFVudGFnUmVzb3VyY2VSZXF1ZXN0LFxuICAgICgpID0+IF9fVW5pdCxcbl07XG52YXIgVXBkYXRlQWxpYXMgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfVUEsXG4gICAgeyBbX2hdOiBbXCJQVVRcIiwgXCIvMjAxNS0wMy0zMS9mdW5jdGlvbnMve0Z1bmN0aW9uTmFtZX0vYWxpYXNlcy97TmFtZX1cIiwgMjAwXSB9LFxuICAgICgpID0+IFVwZGF0ZUFsaWFzUmVxdWVzdCxcbiAgICAoKSA9PiBBbGlhc0NvbmZpZ3VyYXRpb24sXG5dO1xudmFyIFVwZGF0ZUNhcGFjaXR5UHJvdmlkZXIgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfVUNQLFxuICAgIHsgW19oXTogW1wiUFVUXCIsIFwiLzIwMjUtMTEtMzAvY2FwYWNpdHktcHJvdmlkZXJzL3tDYXBhY2l0eVByb3ZpZGVyTmFtZX1cIiwgMjAyXSB9LFxuICAgICgpID0+IFVwZGF0ZUNhcGFjaXR5UHJvdmlkZXJSZXF1ZXN0LFxuICAgICgpID0+IFVwZGF0ZUNhcGFjaXR5UHJvdmlkZXJSZXNwb25zZSxcbl07XG52YXIgVXBkYXRlQ29kZVNpZ25pbmdDb25maWcgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfVUNTQyxcbiAgICB7IFtfaF06IFtcIlBVVFwiLCBcIi8yMDIwLTA0LTIyL2NvZGUtc2lnbmluZy1jb25maWdzL3tDb2RlU2lnbmluZ0NvbmZpZ0Fybn1cIiwgMjAwXSB9LFxuICAgICgpID0+IFVwZGF0ZUNvZGVTaWduaW5nQ29uZmlnUmVxdWVzdCxcbiAgICAoKSA9PiBVcGRhdGVDb2RlU2lnbmluZ0NvbmZpZ1Jlc3BvbnNlLFxuXTtcbnZhciBVcGRhdGVFdmVudFNvdXJjZU1hcHBpbmcgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfVUVTTSxcbiAgICB7IFtfaF06IFtcIlBVVFwiLCBcIi8yMDE1LTAzLTMxL2V2ZW50LXNvdXJjZS1tYXBwaW5ncy97VVVJRH1cIiwgMjAyXSB9LFxuICAgICgpID0+IFVwZGF0ZUV2ZW50U291cmNlTWFwcGluZ1JlcXVlc3QsXG4gICAgKCkgPT4gRXZlbnRTb3VyY2VNYXBwaW5nQ29uZmlndXJhdGlvbixcbl07XG52YXIgVXBkYXRlRnVuY3Rpb25Db2RlID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX1VGQyxcbiAgICB7IFtfaF06IFtcIlBVVFwiLCBcIi8yMDE1LTAzLTMxL2Z1bmN0aW9ucy97RnVuY3Rpb25OYW1lfS9jb2RlXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBVcGRhdGVGdW5jdGlvbkNvZGVSZXF1ZXN0LFxuICAgICgpID0+IEZ1bmN0aW9uQ29uZmlndXJhdGlvbixcbl07XG52YXIgVXBkYXRlRnVuY3Rpb25Db25maWd1cmF0aW9uID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX1VGQ3AsXG4gICAgeyBbX2hdOiBbXCJQVVRcIiwgXCIvMjAxNS0wMy0zMS9mdW5jdGlvbnMve0Z1bmN0aW9uTmFtZX0vY29uZmlndXJhdGlvblwiLCAyMDBdIH0sXG4gICAgKCkgPT4gVXBkYXRlRnVuY3Rpb25Db25maWd1cmF0aW9uUmVxdWVzdCxcbiAgICAoKSA9PiBGdW5jdGlvbkNvbmZpZ3VyYXRpb24sXG5dO1xudmFyIFVwZGF0ZUZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWcgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfVUZFSUMsXG4gICAgeyBbX2hdOiBbXCJQT1NUXCIsIFwiLzIwMTktMDktMjUvZnVuY3Rpb25zL3tGdW5jdGlvbk5hbWV9L2V2ZW50LWludm9rZS1jb25maWdcIiwgMjAwXSB9LFxuICAgICgpID0+IFVwZGF0ZUZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdSZXF1ZXN0LFxuICAgICgpID0+IEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWcsXG5dO1xudmFyIFVwZGF0ZUZ1bmN0aW9uVXJsQ29uZmlnID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX1VGVUMsXG4gICAgeyBbX2hdOiBbXCJQVVRcIiwgXCIvMjAyMS0xMC0zMS9mdW5jdGlvbnMve0Z1bmN0aW9uTmFtZX0vdXJsXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBVcGRhdGVGdW5jdGlvblVybENvbmZpZ1JlcXVlc3QsXG4gICAgKCkgPT4gVXBkYXRlRnVuY3Rpb25VcmxDb25maWdSZXNwb25zZSxcbl07XG5cbmNsYXNzIEFkZExheWVyVmVyc2lvblBlcm1pc3Npb25Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NHaXJBcGlTZXJ2aWNlXCIsIFwiQWRkTGF5ZXJWZXJzaW9uUGVybWlzc2lvblwiLCB7fSlcbiAgICAubihcIkxhbWJkYUNsaWVudFwiLCBcIkFkZExheWVyVmVyc2lvblBlcm1pc3Npb25Db21tYW5kXCIpXG4gICAgLnNjKEFkZExheWVyVmVyc2lvblBlcm1pc3Npb24pXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBBZGRQZXJtaXNzaW9uQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTR2lyQXBpU2VydmljZVwiLCBcIkFkZFBlcm1pc3Npb25cIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJBZGRQZXJtaXNzaW9uQ29tbWFuZFwiKVxuICAgIC5zYyhBZGRQZXJtaXNzaW9uKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgQ2hlY2twb2ludER1cmFibGVFeGVjdXRpb25Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NHaXJBcGlTZXJ2aWNlXCIsIFwiQ2hlY2twb2ludER1cmFibGVFeGVjdXRpb25cIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJDaGVja3BvaW50RHVyYWJsZUV4ZWN1dGlvbkNvbW1hbmRcIilcbiAgICAuc2MoQ2hlY2twb2ludER1cmFibGVFeGVjdXRpb24pXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBDcmVhdGVBbGlhc0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFXU0dpckFwaVNlcnZpY2VcIiwgXCJDcmVhdGVBbGlhc1wiLCB7fSlcbiAgICAubihcIkxhbWJkYUNsaWVudFwiLCBcIkNyZWF0ZUFsaWFzQ29tbWFuZFwiKVxuICAgIC5zYyhDcmVhdGVBbGlhcylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIENyZWF0ZUNhcGFjaXR5UHJvdmlkZXJDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NHaXJBcGlTZXJ2aWNlXCIsIFwiQ3JlYXRlQ2FwYWNpdHlQcm92aWRlclwiLCB7fSlcbiAgICAubihcIkxhbWJkYUNsaWVudFwiLCBcIkNyZWF0ZUNhcGFjaXR5UHJvdmlkZXJDb21tYW5kXCIpXG4gICAgLnNjKENyZWF0ZUNhcGFjaXR5UHJvdmlkZXIpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBDcmVhdGVDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFXU0dpckFwaVNlcnZpY2VcIiwgXCJDcmVhdGVDb2RlU2lnbmluZ0NvbmZpZ1wiLCB7fSlcbiAgICAubihcIkxhbWJkYUNsaWVudFwiLCBcIkNyZWF0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZFwiKVxuICAgIC5zYyhDcmVhdGVDb2RlU2lnbmluZ0NvbmZpZylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIENyZWF0ZUV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFXU0dpckFwaVNlcnZpY2VcIiwgXCJDcmVhdGVFdmVudFNvdXJjZU1hcHBpbmdcIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJDcmVhdGVFdmVudFNvdXJjZU1hcHBpbmdDb21tYW5kXCIpXG4gICAgLnNjKENyZWF0ZUV2ZW50U291cmNlTWFwcGluZylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIENyZWF0ZUZ1bmN0aW9uQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTR2lyQXBpU2VydmljZVwiLCBcIkNyZWF0ZUZ1bmN0aW9uXCIsIHt9KVxuICAgIC5uKFwiTGFtYmRhQ2xpZW50XCIsIFwiQ3JlYXRlRnVuY3Rpb25Db21tYW5kXCIpXG4gICAgLnNjKENyZWF0ZUZ1bmN0aW9uKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgQ3JlYXRlRnVuY3Rpb25VcmxDb25maWdDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NHaXJBcGlTZXJ2aWNlXCIsIFwiQ3JlYXRlRnVuY3Rpb25VcmxDb25maWdcIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJDcmVhdGVGdW5jdGlvblVybENvbmZpZ0NvbW1hbmRcIilcbiAgICAuc2MoQ3JlYXRlRnVuY3Rpb25VcmxDb25maWcpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZWxldGVBbGlhc0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFXU0dpckFwaVNlcnZpY2VcIiwgXCJEZWxldGVBbGlhc1wiLCB7fSlcbiAgICAubihcIkxhbWJkYUNsaWVudFwiLCBcIkRlbGV0ZUFsaWFzQ29tbWFuZFwiKVxuICAgIC5zYyhEZWxldGVBbGlhcylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERlbGV0ZUNhcGFjaXR5UHJvdmlkZXJDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NHaXJBcGlTZXJ2aWNlXCIsIFwiRGVsZXRlQ2FwYWNpdHlQcm92aWRlclwiLCB7fSlcbiAgICAubihcIkxhbWJkYUNsaWVudFwiLCBcIkRlbGV0ZUNhcGFjaXR5UHJvdmlkZXJDb21tYW5kXCIpXG4gICAgLnNjKERlbGV0ZUNhcGFjaXR5UHJvdmlkZXIpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZWxldGVDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFXU0dpckFwaVNlcnZpY2VcIiwgXCJEZWxldGVDb2RlU2lnbmluZ0NvbmZpZ1wiLCB7fSlcbiAgICAubihcIkxhbWJkYUNsaWVudFwiLCBcIkRlbGV0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZFwiKVxuICAgIC5zYyhEZWxldGVDb2RlU2lnbmluZ0NvbmZpZylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERlbGV0ZUV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFXU0dpckFwaVNlcnZpY2VcIiwgXCJEZWxldGVFdmVudFNvdXJjZU1hcHBpbmdcIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJEZWxldGVFdmVudFNvdXJjZU1hcHBpbmdDb21tYW5kXCIpXG4gICAgLnNjKERlbGV0ZUV2ZW50U291cmNlTWFwcGluZylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERlbGV0ZUZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NHaXJBcGlTZXJ2aWNlXCIsIFwiRGVsZXRlRnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ1wiLCB7fSlcbiAgICAubihcIkxhbWJkYUNsaWVudFwiLCBcIkRlbGV0ZUZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdDb21tYW5kXCIpXG4gICAgLnNjKERlbGV0ZUZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWcpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZWxldGVGdW5jdGlvbkNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFXU0dpckFwaVNlcnZpY2VcIiwgXCJEZWxldGVGdW5jdGlvblwiLCB7fSlcbiAgICAubihcIkxhbWJkYUNsaWVudFwiLCBcIkRlbGV0ZUZ1bmN0aW9uQ29tbWFuZFwiKVxuICAgIC5zYyhEZWxldGVGdW5jdGlvbilcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERlbGV0ZUZ1bmN0aW9uQ29uY3VycmVuY3lDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NHaXJBcGlTZXJ2aWNlXCIsIFwiRGVsZXRlRnVuY3Rpb25Db25jdXJyZW5jeVwiLCB7fSlcbiAgICAubihcIkxhbWJkYUNsaWVudFwiLCBcIkRlbGV0ZUZ1bmN0aW9uQ29uY3VycmVuY3lDb21tYW5kXCIpXG4gICAgLnNjKERlbGV0ZUZ1bmN0aW9uQ29uY3VycmVuY3kpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZWxldGVGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTR2lyQXBpU2VydmljZVwiLCBcIkRlbGV0ZUZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdcIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJEZWxldGVGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZFwiKVxuICAgIC5zYyhEZWxldGVGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgRGVsZXRlRnVuY3Rpb25VcmxDb25maWdDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NHaXJBcGlTZXJ2aWNlXCIsIFwiRGVsZXRlRnVuY3Rpb25VcmxDb25maWdcIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJEZWxldGVGdW5jdGlvblVybENvbmZpZ0NvbW1hbmRcIilcbiAgICAuc2MoRGVsZXRlRnVuY3Rpb25VcmxDb25maWcpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZWxldGVMYXllclZlcnNpb25Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NHaXJBcGlTZXJ2aWNlXCIsIFwiRGVsZXRlTGF5ZXJWZXJzaW9uXCIsIHt9KVxuICAgIC5uKFwiTGFtYmRhQ2xpZW50XCIsIFwiRGVsZXRlTGF5ZXJWZXJzaW9uQ29tbWFuZFwiKVxuICAgIC5zYyhEZWxldGVMYXllclZlcnNpb24pXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZWxldGVQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTR2lyQXBpU2VydmljZVwiLCBcIkRlbGV0ZVByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdcIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJEZWxldGVQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnQ29tbWFuZFwiKVxuICAgIC5zYyhEZWxldGVQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgR2V0QWNjb3VudFNldHRpbmdzQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTR2lyQXBpU2VydmljZVwiLCBcIkdldEFjY291bnRTZXR0aW5nc1wiLCB7fSlcbiAgICAubihcIkxhbWJkYUNsaWVudFwiLCBcIkdldEFjY291bnRTZXR0aW5nc0NvbW1hbmRcIilcbiAgICAuc2MoR2V0QWNjb3VudFNldHRpbmdzKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgR2V0QWxpYXNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NHaXJBcGlTZXJ2aWNlXCIsIFwiR2V0QWxpYXNcIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJHZXRBbGlhc0NvbW1hbmRcIilcbiAgICAuc2MoR2V0QWxpYXMpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBHZXRDYXBhY2l0eVByb3ZpZGVyQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTR2lyQXBpU2VydmljZVwiLCBcIkdldENhcGFjaXR5UHJvdmlkZXJcIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJHZXRDYXBhY2l0eVByb3ZpZGVyQ29tbWFuZFwiKVxuICAgIC5zYyhHZXRDYXBhY2l0eVByb3ZpZGVyKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgR2V0Q29kZVNpZ25pbmdDb25maWdDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NHaXJBcGlTZXJ2aWNlXCIsIFwiR2V0Q29kZVNpZ25pbmdDb25maWdcIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJHZXRDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRcIilcbiAgICAuc2MoR2V0Q29kZVNpZ25pbmdDb25maWcpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBHZXREdXJhYmxlRXhlY3V0aW9uQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTR2lyQXBpU2VydmljZVwiLCBcIkdldER1cmFibGVFeGVjdXRpb25cIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJHZXREdXJhYmxlRXhlY3V0aW9uQ29tbWFuZFwiKVxuICAgIC5zYyhHZXREdXJhYmxlRXhlY3V0aW9uKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgR2V0RHVyYWJsZUV4ZWN1dGlvbkhpc3RvcnlDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NHaXJBcGlTZXJ2aWNlXCIsIFwiR2V0RHVyYWJsZUV4ZWN1dGlvbkhpc3RvcnlcIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJHZXREdXJhYmxlRXhlY3V0aW9uSGlzdG9yeUNvbW1hbmRcIilcbiAgICAuc2MoR2V0RHVyYWJsZUV4ZWN1dGlvbkhpc3RvcnkpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBHZXREdXJhYmxlRXhlY3V0aW9uU3RhdGVDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NHaXJBcGlTZXJ2aWNlXCIsIFwiR2V0RHVyYWJsZUV4ZWN1dGlvblN0YXRlXCIsIHt9KVxuICAgIC5uKFwiTGFtYmRhQ2xpZW50XCIsIFwiR2V0RHVyYWJsZUV4ZWN1dGlvblN0YXRlQ29tbWFuZFwiKVxuICAgIC5zYyhHZXREdXJhYmxlRXhlY3V0aW9uU3RhdGUpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBHZXRFdmVudFNvdXJjZU1hcHBpbmdDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NHaXJBcGlTZXJ2aWNlXCIsIFwiR2V0RXZlbnRTb3VyY2VNYXBwaW5nXCIsIHt9KVxuICAgIC5uKFwiTGFtYmRhQ2xpZW50XCIsIFwiR2V0RXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZFwiKVxuICAgIC5zYyhHZXRFdmVudFNvdXJjZU1hcHBpbmcpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBHZXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTR2lyQXBpU2VydmljZVwiLCBcIkdldEZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdcIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJHZXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZFwiKVxuICAgIC5zYyhHZXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgR2V0RnVuY3Rpb25Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NHaXJBcGlTZXJ2aWNlXCIsIFwiR2V0RnVuY3Rpb25cIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJHZXRGdW5jdGlvbkNvbW1hbmRcIilcbiAgICAuc2MoR2V0RnVuY3Rpb24pXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBHZXRGdW5jdGlvbkNvbmN1cnJlbmN5Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTR2lyQXBpU2VydmljZVwiLCBcIkdldEZ1bmN0aW9uQ29uY3VycmVuY3lcIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJHZXRGdW5jdGlvbkNvbmN1cnJlbmN5Q29tbWFuZFwiKVxuICAgIC5zYyhHZXRGdW5jdGlvbkNvbmN1cnJlbmN5KVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgR2V0RnVuY3Rpb25Db25maWd1cmF0aW9uQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTR2lyQXBpU2VydmljZVwiLCBcIkdldEZ1bmN0aW9uQ29uZmlndXJhdGlvblwiLCB7fSlcbiAgICAubihcIkxhbWJkYUNsaWVudFwiLCBcIkdldEZ1bmN0aW9uQ29uZmlndXJhdGlvbkNvbW1hbmRcIilcbiAgICAuc2MoR2V0RnVuY3Rpb25Db25maWd1cmF0aW9uKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgR2V0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFXU0dpckFwaVNlcnZpY2VcIiwgXCJHZXRGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnXCIsIHt9KVxuICAgIC5uKFwiTGFtYmRhQ2xpZW50XCIsIFwiR2V0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmRcIilcbiAgICAuc2MoR2V0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIEdldEZ1bmN0aW9uUmVjdXJzaW9uQ29uZmlnQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTR2lyQXBpU2VydmljZVwiLCBcIkdldEZ1bmN0aW9uUmVjdXJzaW9uQ29uZmlnXCIsIHt9KVxuICAgIC5uKFwiTGFtYmRhQ2xpZW50XCIsIFwiR2V0RnVuY3Rpb25SZWN1cnNpb25Db25maWdDb21tYW5kXCIpXG4gICAgLnNjKEdldEZ1bmN0aW9uUmVjdXJzaW9uQ29uZmlnKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgR2V0RnVuY3Rpb25TY2FsaW5nQ29uZmlnQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTR2lyQXBpU2VydmljZVwiLCBcIkdldEZ1bmN0aW9uU2NhbGluZ0NvbmZpZ1wiLCB7fSlcbiAgICAubihcIkxhbWJkYUNsaWVudFwiLCBcIkdldEZ1bmN0aW9uU2NhbGluZ0NvbmZpZ0NvbW1hbmRcIilcbiAgICAuc2MoR2V0RnVuY3Rpb25TY2FsaW5nQ29uZmlnKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgR2V0RnVuY3Rpb25VcmxDb25maWdDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NHaXJBcGlTZXJ2aWNlXCIsIFwiR2V0RnVuY3Rpb25VcmxDb25maWdcIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJHZXRGdW5jdGlvblVybENvbmZpZ0NvbW1hbmRcIilcbiAgICAuc2MoR2V0RnVuY3Rpb25VcmxDb25maWcpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBHZXRMYXllclZlcnNpb25CeUFybkNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFXU0dpckFwaVNlcnZpY2VcIiwgXCJHZXRMYXllclZlcnNpb25CeUFyblwiLCB7fSlcbiAgICAubihcIkxhbWJkYUNsaWVudFwiLCBcIkdldExheWVyVmVyc2lvbkJ5QXJuQ29tbWFuZFwiKVxuICAgIC5zYyhHZXRMYXllclZlcnNpb25CeUFybilcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIEdldExheWVyVmVyc2lvbkNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFXU0dpckFwaVNlcnZpY2VcIiwgXCJHZXRMYXllclZlcnNpb25cIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJHZXRMYXllclZlcnNpb25Db21tYW5kXCIpXG4gICAgLnNjKEdldExheWVyVmVyc2lvbilcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIEdldExheWVyVmVyc2lvblBvbGljeUNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFXU0dpckFwaVNlcnZpY2VcIiwgXCJHZXRMYXllclZlcnNpb25Qb2xpY3lcIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJHZXRMYXllclZlcnNpb25Qb2xpY3lDb21tYW5kXCIpXG4gICAgLnNjKEdldExheWVyVmVyc2lvblBvbGljeSlcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIEdldFBvbGljeUNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFXU0dpckFwaVNlcnZpY2VcIiwgXCJHZXRQb2xpY3lcIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJHZXRQb2xpY3lDb21tYW5kXCIpXG4gICAgLnNjKEdldFBvbGljeSlcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIEdldFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NHaXJBcGlTZXJ2aWNlXCIsIFwiR2V0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ1wiLCB7fSlcbiAgICAubihcIkxhbWJkYUNsaWVudFwiLCBcIkdldFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdDb21tYW5kXCIpXG4gICAgLnNjKEdldFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWcpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBHZXRSdW50aW1lTWFuYWdlbWVudENvbmZpZ0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFXU0dpckFwaVNlcnZpY2VcIiwgXCJHZXRSdW50aW1lTWFuYWdlbWVudENvbmZpZ1wiLCB7fSlcbiAgICAubihcIkxhbWJkYUNsaWVudFwiLCBcIkdldFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnQ29tbWFuZFwiKVxuICAgIC5zYyhHZXRSdW50aW1lTWFuYWdlbWVudENvbmZpZylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIEludm9rZUFzeW5jQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTR2lyQXBpU2VydmljZVwiLCBcIkludm9rZUFzeW5jXCIsIHt9KVxuICAgIC5uKFwiTGFtYmRhQ2xpZW50XCIsIFwiSW52b2tlQXN5bmNDb21tYW5kXCIpXG4gICAgLnNjKEludm9rZUFzeW5jKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgSW52b2tlQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTR2lyQXBpU2VydmljZVwiLCBcIkludm9rZVwiLCB7fSlcbiAgICAubihcIkxhbWJkYUNsaWVudFwiLCBcIkludm9rZUNvbW1hbmRcIilcbiAgICAuc2MoSW52b2tlKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgSW52b2tlV2l0aFJlc3BvbnNlU3RyZWFtQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTR2lyQXBpU2VydmljZVwiLCBcIkludm9rZVdpdGhSZXNwb25zZVN0cmVhbVwiLCB7XG4gICAgZXZlbnRTdHJlYW06IHtcbiAgICAgICAgb3V0cHV0OiB0cnVlLFxuICAgIH0sXG59KVxuICAgIC5uKFwiTGFtYmRhQ2xpZW50XCIsIFwiSW52b2tlV2l0aFJlc3BvbnNlU3RyZWFtQ29tbWFuZFwiKVxuICAgIC5zYyhJbnZva2VXaXRoUmVzcG9uc2VTdHJlYW0pXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBMaXN0QWxpYXNlc0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFXU0dpckFwaVNlcnZpY2VcIiwgXCJMaXN0QWxpYXNlc1wiLCB7fSlcbiAgICAubihcIkxhbWJkYUNsaWVudFwiLCBcIkxpc3RBbGlhc2VzQ29tbWFuZFwiKVxuICAgIC5zYyhMaXN0QWxpYXNlcylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIExpc3RDYXBhY2l0eVByb3ZpZGVyc0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFXU0dpckFwaVNlcnZpY2VcIiwgXCJMaXN0Q2FwYWNpdHlQcm92aWRlcnNcIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJMaXN0Q2FwYWNpdHlQcm92aWRlcnNDb21tYW5kXCIpXG4gICAgLnNjKExpc3RDYXBhY2l0eVByb3ZpZGVycylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIExpc3RDb2RlU2lnbmluZ0NvbmZpZ3NDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NHaXJBcGlTZXJ2aWNlXCIsIFwiTGlzdENvZGVTaWduaW5nQ29uZmlnc1wiLCB7fSlcbiAgICAubihcIkxhbWJkYUNsaWVudFwiLCBcIkxpc3RDb2RlU2lnbmluZ0NvbmZpZ3NDb21tYW5kXCIpXG4gICAgLnNjKExpc3RDb2RlU2lnbmluZ0NvbmZpZ3MpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBMaXN0RHVyYWJsZUV4ZWN1dGlvbnNCeUZ1bmN0aW9uQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTR2lyQXBpU2VydmljZVwiLCBcIkxpc3REdXJhYmxlRXhlY3V0aW9uc0J5RnVuY3Rpb25cIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJMaXN0RHVyYWJsZUV4ZWN1dGlvbnNCeUZ1bmN0aW9uQ29tbWFuZFwiKVxuICAgIC5zYyhMaXN0RHVyYWJsZUV4ZWN1dGlvbnNCeUZ1bmN0aW9uKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgTGlzdEV2ZW50U291cmNlTWFwcGluZ3NDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NHaXJBcGlTZXJ2aWNlXCIsIFwiTGlzdEV2ZW50U291cmNlTWFwcGluZ3NcIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJMaXN0RXZlbnRTb3VyY2VNYXBwaW5nc0NvbW1hbmRcIilcbiAgICAuc2MoTGlzdEV2ZW50U291cmNlTWFwcGluZ3MpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBMaXN0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ3NDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NHaXJBcGlTZXJ2aWNlXCIsIFwiTGlzdEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdzXCIsIHt9KVxuICAgIC5uKFwiTGFtYmRhQ2xpZW50XCIsIFwiTGlzdEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdzQ29tbWFuZFwiKVxuICAgIC5zYyhMaXN0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ3MpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBMaXN0RnVuY3Rpb25zQnlDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFXU0dpckFwaVNlcnZpY2VcIiwgXCJMaXN0RnVuY3Rpb25zQnlDb2RlU2lnbmluZ0NvbmZpZ1wiLCB7fSlcbiAgICAubihcIkxhbWJkYUNsaWVudFwiLCBcIkxpc3RGdW5jdGlvbnNCeUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZFwiKVxuICAgIC5zYyhMaXN0RnVuY3Rpb25zQnlDb2RlU2lnbmluZ0NvbmZpZylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIExpc3RGdW5jdGlvbnNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NHaXJBcGlTZXJ2aWNlXCIsIFwiTGlzdEZ1bmN0aW9uc1wiLCB7fSlcbiAgICAubihcIkxhbWJkYUNsaWVudFwiLCBcIkxpc3RGdW5jdGlvbnNDb21tYW5kXCIpXG4gICAgLnNjKExpc3RGdW5jdGlvbnMpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBMaXN0RnVuY3Rpb25VcmxDb25maWdzQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTR2lyQXBpU2VydmljZVwiLCBcIkxpc3RGdW5jdGlvblVybENvbmZpZ3NcIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJMaXN0RnVuY3Rpb25VcmxDb25maWdzQ29tbWFuZFwiKVxuICAgIC5zYyhMaXN0RnVuY3Rpb25VcmxDb25maWdzKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgTGlzdEZ1bmN0aW9uVmVyc2lvbnNCeUNhcGFjaXR5UHJvdmlkZXJDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NHaXJBcGlTZXJ2aWNlXCIsIFwiTGlzdEZ1bmN0aW9uVmVyc2lvbnNCeUNhcGFjaXR5UHJvdmlkZXJcIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJMaXN0RnVuY3Rpb25WZXJzaW9uc0J5Q2FwYWNpdHlQcm92aWRlckNvbW1hbmRcIilcbiAgICAuc2MoTGlzdEZ1bmN0aW9uVmVyc2lvbnNCeUNhcGFjaXR5UHJvdmlkZXIpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBMaXN0TGF5ZXJzQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTR2lyQXBpU2VydmljZVwiLCBcIkxpc3RMYXllcnNcIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJMaXN0TGF5ZXJzQ29tbWFuZFwiKVxuICAgIC5zYyhMaXN0TGF5ZXJzKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgTGlzdExheWVyVmVyc2lvbnNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NHaXJBcGlTZXJ2aWNlXCIsIFwiTGlzdExheWVyVmVyc2lvbnNcIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJMaXN0TGF5ZXJWZXJzaW9uc0NvbW1hbmRcIilcbiAgICAuc2MoTGlzdExheWVyVmVyc2lvbnMpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBMaXN0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ3NDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NHaXJBcGlTZXJ2aWNlXCIsIFwiTGlzdFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdzXCIsIHt9KVxuICAgIC5uKFwiTGFtYmRhQ2xpZW50XCIsIFwiTGlzdFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdzQ29tbWFuZFwiKVxuICAgIC5zYyhMaXN0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ3MpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBMaXN0VGFnc0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFXU0dpckFwaVNlcnZpY2VcIiwgXCJMaXN0VGFnc1wiLCB7fSlcbiAgICAubihcIkxhbWJkYUNsaWVudFwiLCBcIkxpc3RUYWdzQ29tbWFuZFwiKVxuICAgIC5zYyhMaXN0VGFncylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIExpc3RWZXJzaW9uc0J5RnVuY3Rpb25Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NHaXJBcGlTZXJ2aWNlXCIsIFwiTGlzdFZlcnNpb25zQnlGdW5jdGlvblwiLCB7fSlcbiAgICAubihcIkxhbWJkYUNsaWVudFwiLCBcIkxpc3RWZXJzaW9uc0J5RnVuY3Rpb25Db21tYW5kXCIpXG4gICAgLnNjKExpc3RWZXJzaW9uc0J5RnVuY3Rpb24pXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBQdWJsaXNoTGF5ZXJWZXJzaW9uQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTR2lyQXBpU2VydmljZVwiLCBcIlB1Ymxpc2hMYXllclZlcnNpb25cIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJQdWJsaXNoTGF5ZXJWZXJzaW9uQ29tbWFuZFwiKVxuICAgIC5zYyhQdWJsaXNoTGF5ZXJWZXJzaW9uKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgUHVibGlzaFZlcnNpb25Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NHaXJBcGlTZXJ2aWNlXCIsIFwiUHVibGlzaFZlcnNpb25cIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJQdWJsaXNoVmVyc2lvbkNvbW1hbmRcIilcbiAgICAuc2MoUHVibGlzaFZlcnNpb24pXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBQdXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTR2lyQXBpU2VydmljZVwiLCBcIlB1dEZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdcIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJQdXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZFwiKVxuICAgIC5zYyhQdXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgUHV0RnVuY3Rpb25Db25jdXJyZW5jeUNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFXU0dpckFwaVNlcnZpY2VcIiwgXCJQdXRGdW5jdGlvbkNvbmN1cnJlbmN5XCIsIHt9KVxuICAgIC5uKFwiTGFtYmRhQ2xpZW50XCIsIFwiUHV0RnVuY3Rpb25Db25jdXJyZW5jeUNvbW1hbmRcIilcbiAgICAuc2MoUHV0RnVuY3Rpb25Db25jdXJyZW5jeSlcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFB1dEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NHaXJBcGlTZXJ2aWNlXCIsIFwiUHV0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ1wiLCB7fSlcbiAgICAubihcIkxhbWJkYUNsaWVudFwiLCBcIlB1dEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdDb21tYW5kXCIpXG4gICAgLnNjKFB1dEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWcpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBQdXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZ0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFXU0dpckFwaVNlcnZpY2VcIiwgXCJQdXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZ1wiLCB7fSlcbiAgICAubihcIkxhbWJkYUNsaWVudFwiLCBcIlB1dEZ1bmN0aW9uUmVjdXJzaW9uQ29uZmlnQ29tbWFuZFwiKVxuICAgIC5zYyhQdXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFB1dEZ1bmN0aW9uU2NhbGluZ0NvbmZpZ0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFXU0dpckFwaVNlcnZpY2VcIiwgXCJQdXRGdW5jdGlvblNjYWxpbmdDb25maWdcIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJQdXRGdW5jdGlvblNjYWxpbmdDb25maWdDb21tYW5kXCIpXG4gICAgLnNjKFB1dEZ1bmN0aW9uU2NhbGluZ0NvbmZpZylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFB1dFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NHaXJBcGlTZXJ2aWNlXCIsIFwiUHV0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ1wiLCB7fSlcbiAgICAubihcIkxhbWJkYUNsaWVudFwiLCBcIlB1dFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdDb21tYW5kXCIpXG4gICAgLnNjKFB1dFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWcpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBQdXRSdW50aW1lTWFuYWdlbWVudENvbmZpZ0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFXU0dpckFwaVNlcnZpY2VcIiwgXCJQdXRSdW50aW1lTWFuYWdlbWVudENvbmZpZ1wiLCB7fSlcbiAgICAubihcIkxhbWJkYUNsaWVudFwiLCBcIlB1dFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnQ29tbWFuZFwiKVxuICAgIC5zYyhQdXRSdW50aW1lTWFuYWdlbWVudENvbmZpZylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFJlbW92ZUxheWVyVmVyc2lvblBlcm1pc3Npb25Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NHaXJBcGlTZXJ2aWNlXCIsIFwiUmVtb3ZlTGF5ZXJWZXJzaW9uUGVybWlzc2lvblwiLCB7fSlcbiAgICAubihcIkxhbWJkYUNsaWVudFwiLCBcIlJlbW92ZUxheWVyVmVyc2lvblBlcm1pc3Npb25Db21tYW5kXCIpXG4gICAgLnNjKFJlbW92ZUxheWVyVmVyc2lvblBlcm1pc3Npb24pXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBSZW1vdmVQZXJtaXNzaW9uQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTR2lyQXBpU2VydmljZVwiLCBcIlJlbW92ZVBlcm1pc3Npb25cIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJSZW1vdmVQZXJtaXNzaW9uQ29tbWFuZFwiKVxuICAgIC5zYyhSZW1vdmVQZXJtaXNzaW9uKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgU2VuZER1cmFibGVFeGVjdXRpb25DYWxsYmFja0ZhaWx1cmVDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NHaXJBcGlTZXJ2aWNlXCIsIFwiU2VuZER1cmFibGVFeGVjdXRpb25DYWxsYmFja0ZhaWx1cmVcIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJTZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrRmFpbHVyZUNvbW1hbmRcIilcbiAgICAuc2MoU2VuZER1cmFibGVFeGVjdXRpb25DYWxsYmFja0ZhaWx1cmUpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBTZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrSGVhcnRiZWF0Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTR2lyQXBpU2VydmljZVwiLCBcIlNlbmREdXJhYmxlRXhlY3V0aW9uQ2FsbGJhY2tIZWFydGJlYXRcIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJTZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrSGVhcnRiZWF0Q29tbWFuZFwiKVxuICAgIC5zYyhTZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrSGVhcnRiZWF0KVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgU2VuZER1cmFibGVFeGVjdXRpb25DYWxsYmFja1N1Y2Nlc3NDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NHaXJBcGlTZXJ2aWNlXCIsIFwiU2VuZER1cmFibGVFeGVjdXRpb25DYWxsYmFja1N1Y2Nlc3NcIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJTZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrU3VjY2Vzc0NvbW1hbmRcIilcbiAgICAuc2MoU2VuZER1cmFibGVFeGVjdXRpb25DYWxsYmFja1N1Y2Nlc3MpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBTdG9wRHVyYWJsZUV4ZWN1dGlvbkNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFXU0dpckFwaVNlcnZpY2VcIiwgXCJTdG9wRHVyYWJsZUV4ZWN1dGlvblwiLCB7fSlcbiAgICAubihcIkxhbWJkYUNsaWVudFwiLCBcIlN0b3BEdXJhYmxlRXhlY3V0aW9uQ29tbWFuZFwiKVxuICAgIC5zYyhTdG9wRHVyYWJsZUV4ZWN1dGlvbilcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFRhZ1Jlc291cmNlQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTR2lyQXBpU2VydmljZVwiLCBcIlRhZ1Jlc291cmNlXCIsIHt9KVxuICAgIC5uKFwiTGFtYmRhQ2xpZW50XCIsIFwiVGFnUmVzb3VyY2VDb21tYW5kXCIpXG4gICAgLnNjKFRhZ1Jlc291cmNlKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgVW50YWdSZXNvdXJjZUNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFXU0dpckFwaVNlcnZpY2VcIiwgXCJVbnRhZ1Jlc291cmNlXCIsIHt9KVxuICAgIC5uKFwiTGFtYmRhQ2xpZW50XCIsIFwiVW50YWdSZXNvdXJjZUNvbW1hbmRcIilcbiAgICAuc2MoVW50YWdSZXNvdXJjZSlcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFVwZGF0ZUFsaWFzQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTR2lyQXBpU2VydmljZVwiLCBcIlVwZGF0ZUFsaWFzXCIsIHt9KVxuICAgIC5uKFwiTGFtYmRhQ2xpZW50XCIsIFwiVXBkYXRlQWxpYXNDb21tYW5kXCIpXG4gICAgLnNjKFVwZGF0ZUFsaWFzKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgVXBkYXRlQ2FwYWNpdHlQcm92aWRlckNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFXU0dpckFwaVNlcnZpY2VcIiwgXCJVcGRhdGVDYXBhY2l0eVByb3ZpZGVyXCIsIHt9KVxuICAgIC5uKFwiTGFtYmRhQ2xpZW50XCIsIFwiVXBkYXRlQ2FwYWNpdHlQcm92aWRlckNvbW1hbmRcIilcbiAgICAuc2MoVXBkYXRlQ2FwYWNpdHlQcm92aWRlcilcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFVwZGF0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTR2lyQXBpU2VydmljZVwiLCBcIlVwZGF0ZUNvZGVTaWduaW5nQ29uZmlnXCIsIHt9KVxuICAgIC5uKFwiTGFtYmRhQ2xpZW50XCIsIFwiVXBkYXRlQ29kZVNpZ25pbmdDb25maWdDb21tYW5kXCIpXG4gICAgLnNjKFVwZGF0ZUNvZGVTaWduaW5nQ29uZmlnKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgVXBkYXRlRXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTR2lyQXBpU2VydmljZVwiLCBcIlVwZGF0ZUV2ZW50U291cmNlTWFwcGluZ1wiLCB7fSlcbiAgICAubihcIkxhbWJkYUNsaWVudFwiLCBcIlVwZGF0ZUV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmRcIilcbiAgICAuc2MoVXBkYXRlRXZlbnRTb3VyY2VNYXBwaW5nKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgVXBkYXRlRnVuY3Rpb25Db2RlQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTR2lyQXBpU2VydmljZVwiLCBcIlVwZGF0ZUZ1bmN0aW9uQ29kZVwiLCB7fSlcbiAgICAubihcIkxhbWJkYUNsaWVudFwiLCBcIlVwZGF0ZUZ1bmN0aW9uQ29kZUNvbW1hbmRcIilcbiAgICAuc2MoVXBkYXRlRnVuY3Rpb25Db2RlKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgVXBkYXRlRnVuY3Rpb25Db25maWd1cmF0aW9uQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTR2lyQXBpU2VydmljZVwiLCBcIlVwZGF0ZUZ1bmN0aW9uQ29uZmlndXJhdGlvblwiLCB7fSlcbiAgICAubihcIkxhbWJkYUNsaWVudFwiLCBcIlVwZGF0ZUZ1bmN0aW9uQ29uZmlndXJhdGlvbkNvbW1hbmRcIilcbiAgICAuc2MoVXBkYXRlRnVuY3Rpb25Db25maWd1cmF0aW9uKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgVXBkYXRlRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFXU0dpckFwaVNlcnZpY2VcIiwgXCJVcGRhdGVGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnXCIsIHt9KVxuICAgIC5uKFwiTGFtYmRhQ2xpZW50XCIsIFwiVXBkYXRlRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmRcIilcbiAgICAuc2MoVXBkYXRlRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFVwZGF0ZUZ1bmN0aW9uVXJsQ29uZmlnQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTR2lyQXBpU2VydmljZVwiLCBcIlVwZGF0ZUZ1bmN0aW9uVXJsQ29uZmlnXCIsIHt9KVxuICAgIC5uKFwiTGFtYmRhQ2xpZW50XCIsIFwiVXBkYXRlRnVuY3Rpb25VcmxDb25maWdDb21tYW5kXCIpXG4gICAgLnNjKFVwZGF0ZUZ1bmN0aW9uVXJsQ29uZmlnKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY29uc3QgY29tbWFuZHMgPSB7XG4gICAgQWRkTGF5ZXJWZXJzaW9uUGVybWlzc2lvbkNvbW1hbmQsXG4gICAgQWRkUGVybWlzc2lvbkNvbW1hbmQsXG4gICAgQ2hlY2twb2ludER1cmFibGVFeGVjdXRpb25Db21tYW5kLFxuICAgIENyZWF0ZUFsaWFzQ29tbWFuZCxcbiAgICBDcmVhdGVDYXBhY2l0eVByb3ZpZGVyQ29tbWFuZCxcbiAgICBDcmVhdGVDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmQsXG4gICAgQ3JlYXRlRXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZCxcbiAgICBDcmVhdGVGdW5jdGlvbkNvbW1hbmQsXG4gICAgQ3JlYXRlRnVuY3Rpb25VcmxDb25maWdDb21tYW5kLFxuICAgIERlbGV0ZUFsaWFzQ29tbWFuZCxcbiAgICBEZWxldGVDYXBhY2l0eVByb3ZpZGVyQ29tbWFuZCxcbiAgICBEZWxldGVDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmQsXG4gICAgRGVsZXRlRXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZCxcbiAgICBEZWxldGVGdW5jdGlvbkNvbW1hbmQsXG4gICAgRGVsZXRlRnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmQsXG4gICAgRGVsZXRlRnVuY3Rpb25Db25jdXJyZW5jeUNvbW1hbmQsXG4gICAgRGVsZXRlRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmQsXG4gICAgRGVsZXRlRnVuY3Rpb25VcmxDb25maWdDb21tYW5kLFxuICAgIERlbGV0ZUxheWVyVmVyc2lvbkNvbW1hbmQsXG4gICAgRGVsZXRlUHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ0NvbW1hbmQsXG4gICAgR2V0QWNjb3VudFNldHRpbmdzQ29tbWFuZCxcbiAgICBHZXRBbGlhc0NvbW1hbmQsXG4gICAgR2V0Q2FwYWNpdHlQcm92aWRlckNvbW1hbmQsXG4gICAgR2V0Q29kZVNpZ25pbmdDb25maWdDb21tYW5kLFxuICAgIEdldER1cmFibGVFeGVjdXRpb25Db21tYW5kLFxuICAgIEdldER1cmFibGVFeGVjdXRpb25IaXN0b3J5Q29tbWFuZCxcbiAgICBHZXREdXJhYmxlRXhlY3V0aW9uU3RhdGVDb21tYW5kLFxuICAgIEdldEV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmQsXG4gICAgR2V0RnVuY3Rpb25Db21tYW5kLFxuICAgIEdldEZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdDb21tYW5kLFxuICAgIEdldEZ1bmN0aW9uQ29uY3VycmVuY3lDb21tYW5kLFxuICAgIEdldEZ1bmN0aW9uQ29uZmlndXJhdGlvbkNvbW1hbmQsXG4gICAgR2V0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmQsXG4gICAgR2V0RnVuY3Rpb25SZWN1cnNpb25Db25maWdDb21tYW5kLFxuICAgIEdldEZ1bmN0aW9uU2NhbGluZ0NvbmZpZ0NvbW1hbmQsXG4gICAgR2V0RnVuY3Rpb25VcmxDb25maWdDb21tYW5kLFxuICAgIEdldExheWVyVmVyc2lvbkNvbW1hbmQsXG4gICAgR2V0TGF5ZXJWZXJzaW9uQnlBcm5Db21tYW5kLFxuICAgIEdldExheWVyVmVyc2lvblBvbGljeUNvbW1hbmQsXG4gICAgR2V0UG9saWN5Q29tbWFuZCxcbiAgICBHZXRQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnQ29tbWFuZCxcbiAgICBHZXRSdW50aW1lTWFuYWdlbWVudENvbmZpZ0NvbW1hbmQsXG4gICAgSW52b2tlQ29tbWFuZCxcbiAgICBJbnZva2VBc3luY0NvbW1hbmQsXG4gICAgSW52b2tlV2l0aFJlc3BvbnNlU3RyZWFtQ29tbWFuZCxcbiAgICBMaXN0QWxpYXNlc0NvbW1hbmQsXG4gICAgTGlzdENhcGFjaXR5UHJvdmlkZXJzQ29tbWFuZCxcbiAgICBMaXN0Q29kZVNpZ25pbmdDb25maWdzQ29tbWFuZCxcbiAgICBMaXN0RHVyYWJsZUV4ZWN1dGlvbnNCeUZ1bmN0aW9uQ29tbWFuZCxcbiAgICBMaXN0RXZlbnRTb3VyY2VNYXBwaW5nc0NvbW1hbmQsXG4gICAgTGlzdEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdzQ29tbWFuZCxcbiAgICBMaXN0RnVuY3Rpb25zQ29tbWFuZCxcbiAgICBMaXN0RnVuY3Rpb25zQnlDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmQsXG4gICAgTGlzdEZ1bmN0aW9uVXJsQ29uZmlnc0NvbW1hbmQsXG4gICAgTGlzdEZ1bmN0aW9uVmVyc2lvbnNCeUNhcGFjaXR5UHJvdmlkZXJDb21tYW5kLFxuICAgIExpc3RMYXllcnNDb21tYW5kLFxuICAgIExpc3RMYXllclZlcnNpb25zQ29tbWFuZCxcbiAgICBMaXN0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ3NDb21tYW5kLFxuICAgIExpc3RUYWdzQ29tbWFuZCxcbiAgICBMaXN0VmVyc2lvbnNCeUZ1bmN0aW9uQ29tbWFuZCxcbiAgICBQdWJsaXNoTGF5ZXJWZXJzaW9uQ29tbWFuZCxcbiAgICBQdWJsaXNoVmVyc2lvbkNvbW1hbmQsXG4gICAgUHV0RnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmQsXG4gICAgUHV0RnVuY3Rpb25Db25jdXJyZW5jeUNvbW1hbmQsXG4gICAgUHV0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmQsXG4gICAgUHV0RnVuY3Rpb25SZWN1cnNpb25Db25maWdDb21tYW5kLFxuICAgIFB1dEZ1bmN0aW9uU2NhbGluZ0NvbmZpZ0NvbW1hbmQsXG4gICAgUHV0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ0NvbW1hbmQsXG4gICAgUHV0UnVudGltZU1hbmFnZW1lbnRDb25maWdDb21tYW5kLFxuICAgIFJlbW92ZUxheWVyVmVyc2lvblBlcm1pc3Npb25Db21tYW5kLFxuICAgIFJlbW92ZVBlcm1pc3Npb25Db21tYW5kLFxuICAgIFNlbmREdXJhYmxlRXhlY3V0aW9uQ2FsbGJhY2tGYWlsdXJlQ29tbWFuZCxcbiAgICBTZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrSGVhcnRiZWF0Q29tbWFuZCxcbiAgICBTZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrU3VjY2Vzc0NvbW1hbmQsXG4gICAgU3RvcER1cmFibGVFeGVjdXRpb25Db21tYW5kLFxuICAgIFRhZ1Jlc291cmNlQ29tbWFuZCxcbiAgICBVbnRhZ1Jlc291cmNlQ29tbWFuZCxcbiAgICBVcGRhdGVBbGlhc0NvbW1hbmQsXG4gICAgVXBkYXRlQ2FwYWNpdHlQcm92aWRlckNvbW1hbmQsXG4gICAgVXBkYXRlQ29kZVNpZ25pbmdDb25maWdDb21tYW5kLFxuICAgIFVwZGF0ZUV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmQsXG4gICAgVXBkYXRlRnVuY3Rpb25Db2RlQ29tbWFuZCxcbiAgICBVcGRhdGVGdW5jdGlvbkNvbmZpZ3VyYXRpb25Db21tYW5kLFxuICAgIFVwZGF0ZUZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdDb21tYW5kLFxuICAgIFVwZGF0ZUZ1bmN0aW9uVXJsQ29uZmlnQ29tbWFuZCxcbn07XG5jbGFzcyBMYW1iZGEgZXh0ZW5kcyBMYW1iZGFDbGllbnQge1xufVxuc21pdGh5Q2xpZW50LmNyZWF0ZUFnZ3JlZ2F0ZWRDbGllbnQoY29tbWFuZHMsIExhbWJkYSk7XG5cbmNvbnN0IHBhZ2luYXRlR2V0RHVyYWJsZUV4ZWN1dGlvbkhpc3RvcnkgPSBjb3JlLmNyZWF0ZVBhZ2luYXRvcihMYW1iZGFDbGllbnQsIEdldER1cmFibGVFeGVjdXRpb25IaXN0b3J5Q29tbWFuZCwgXCJNYXJrZXJcIiwgXCJOZXh0TWFya2VyXCIsIFwiTWF4SXRlbXNcIik7XG5cbmNvbnN0IHBhZ2luYXRlR2V0RHVyYWJsZUV4ZWN1dGlvblN0YXRlID0gY29yZS5jcmVhdGVQYWdpbmF0b3IoTGFtYmRhQ2xpZW50LCBHZXREdXJhYmxlRXhlY3V0aW9uU3RhdGVDb21tYW5kLCBcIk1hcmtlclwiLCBcIk5leHRNYXJrZXJcIiwgXCJNYXhJdGVtc1wiKTtcblxuY29uc3QgcGFnaW5hdGVMaXN0QWxpYXNlcyA9IGNvcmUuY3JlYXRlUGFnaW5hdG9yKExhbWJkYUNsaWVudCwgTGlzdEFsaWFzZXNDb21tYW5kLCBcIk1hcmtlclwiLCBcIk5leHRNYXJrZXJcIiwgXCJNYXhJdGVtc1wiKTtcblxuY29uc3QgcGFnaW5hdGVMaXN0Q2FwYWNpdHlQcm92aWRlcnMgPSBjb3JlLmNyZWF0ZVBhZ2luYXRvcihMYW1iZGFDbGllbnQsIExpc3RDYXBhY2l0eVByb3ZpZGVyc0NvbW1hbmQsIFwiTWFya2VyXCIsIFwiTmV4dE1hcmtlclwiLCBcIk1heEl0ZW1zXCIpO1xuXG5jb25zdCBwYWdpbmF0ZUxpc3RDb2RlU2lnbmluZ0NvbmZpZ3MgPSBjb3JlLmNyZWF0ZVBhZ2luYXRvcihMYW1iZGFDbGllbnQsIExpc3RDb2RlU2lnbmluZ0NvbmZpZ3NDb21tYW5kLCBcIk1hcmtlclwiLCBcIk5leHRNYXJrZXJcIiwgXCJNYXhJdGVtc1wiKTtcblxuY29uc3QgcGFnaW5hdGVMaXN0RHVyYWJsZUV4ZWN1dGlvbnNCeUZ1bmN0aW9uID0gY29yZS5jcmVhdGVQYWdpbmF0b3IoTGFtYmRhQ2xpZW50LCBMaXN0RHVyYWJsZUV4ZWN1dGlvbnNCeUZ1bmN0aW9uQ29tbWFuZCwgXCJNYXJrZXJcIiwgXCJOZXh0TWFya2VyXCIsIFwiTWF4SXRlbXNcIik7XG5cbmNvbnN0IHBhZ2luYXRlTGlzdEV2ZW50U291cmNlTWFwcGluZ3MgPSBjb3JlLmNyZWF0ZVBhZ2luYXRvcihMYW1iZGFDbGllbnQsIExpc3RFdmVudFNvdXJjZU1hcHBpbmdzQ29tbWFuZCwgXCJNYXJrZXJcIiwgXCJOZXh0TWFya2VyXCIsIFwiTWF4SXRlbXNcIik7XG5cbmNvbnN0IHBhZ2luYXRlTGlzdEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdzID0gY29yZS5jcmVhdGVQYWdpbmF0b3IoTGFtYmRhQ2xpZW50LCBMaXN0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ3NDb21tYW5kLCBcIk1hcmtlclwiLCBcIk5leHRNYXJrZXJcIiwgXCJNYXhJdGVtc1wiKTtcblxuY29uc3QgcGFnaW5hdGVMaXN0RnVuY3Rpb25VcmxDb25maWdzID0gY29yZS5jcmVhdGVQYWdpbmF0b3IoTGFtYmRhQ2xpZW50LCBMaXN0RnVuY3Rpb25VcmxDb25maWdzQ29tbWFuZCwgXCJNYXJrZXJcIiwgXCJOZXh0TWFya2VyXCIsIFwiTWF4SXRlbXNcIik7XG5cbmNvbnN0IHBhZ2luYXRlTGlzdEZ1bmN0aW9uVmVyc2lvbnNCeUNhcGFjaXR5UHJvdmlkZXIgPSBjb3JlLmNyZWF0ZVBhZ2luYXRvcihMYW1iZGFDbGllbnQsIExpc3RGdW5jdGlvblZlcnNpb25zQnlDYXBhY2l0eVByb3ZpZGVyQ29tbWFuZCwgXCJNYXJrZXJcIiwgXCJOZXh0TWFya2VyXCIsIFwiTWF4SXRlbXNcIik7XG5cbmNvbnN0IHBhZ2luYXRlTGlzdEZ1bmN0aW9uc0J5Q29kZVNpZ25pbmdDb25maWcgPSBjb3JlLmNyZWF0ZVBhZ2luYXRvcihMYW1iZGFDbGllbnQsIExpc3RGdW5jdGlvbnNCeUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZCwgXCJNYXJrZXJcIiwgXCJOZXh0TWFya2VyXCIsIFwiTWF4SXRlbXNcIik7XG5cbmNvbnN0IHBhZ2luYXRlTGlzdEZ1bmN0aW9ucyA9IGNvcmUuY3JlYXRlUGFnaW5hdG9yKExhbWJkYUNsaWVudCwgTGlzdEZ1bmN0aW9uc0NvbW1hbmQsIFwiTWFya2VyXCIsIFwiTmV4dE1hcmtlclwiLCBcIk1heEl0ZW1zXCIpO1xuXG5jb25zdCBwYWdpbmF0ZUxpc3RMYXllclZlcnNpb25zID0gY29yZS5jcmVhdGVQYWdpbmF0b3IoTGFtYmRhQ2xpZW50LCBMaXN0TGF5ZXJWZXJzaW9uc0NvbW1hbmQsIFwiTWFya2VyXCIsIFwiTmV4dE1hcmtlclwiLCBcIk1heEl0ZW1zXCIpO1xuXG5jb25zdCBwYWdpbmF0ZUxpc3RMYXllcnMgPSBjb3JlLmNyZWF0ZVBhZ2luYXRvcihMYW1iZGFDbGllbnQsIExpc3RMYXllcnNDb21tYW5kLCBcIk1hcmtlclwiLCBcIk5leHRNYXJrZXJcIiwgXCJNYXhJdGVtc1wiKTtcblxuY29uc3QgcGFnaW5hdGVMaXN0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ3MgPSBjb3JlLmNyZWF0ZVBhZ2luYXRvcihMYW1iZGFDbGllbnQsIExpc3RQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnc0NvbW1hbmQsIFwiTWFya2VyXCIsIFwiTmV4dE1hcmtlclwiLCBcIk1heEl0ZW1zXCIpO1xuXG5jb25zdCBwYWdpbmF0ZUxpc3RWZXJzaW9uc0J5RnVuY3Rpb24gPSBjb3JlLmNyZWF0ZVBhZ2luYXRvcihMYW1iZGFDbGllbnQsIExpc3RWZXJzaW9uc0J5RnVuY3Rpb25Db21tYW5kLCBcIk1hcmtlclwiLCBcIk5leHRNYXJrZXJcIiwgXCJNYXhJdGVtc1wiKTtcblxuY29uc3QgY2hlY2tTdGF0ZSQ1ID0gYXN5bmMgKGNsaWVudCwgaW5wdXQpID0+IHtcbiAgICBsZXQgcmVhc29uO1xuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGNsaWVudC5zZW5kKG5ldyBHZXRGdW5jdGlvbkNvbmZpZ3VyYXRpb25Db21tYW5kKGlucHV0KSk7XG4gICAgICAgIHJlYXNvbiA9IHJlc3VsdDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJldHVybkNvbXBhcmF0b3IgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5TdGF0ZTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAocmV0dXJuQ29tcGFyYXRvcigpID09PSBcIkFjdGl2ZVwiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgc3RhdGU6IHV0aWxXYWl0ZXIuV2FpdGVyU3RhdGUuU1VDQ0VTUywgcmVhc29uIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHsgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcmV0dXJuQ29tcGFyYXRvciA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LlN0YXRlO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmIChyZXR1cm5Db21wYXJhdG9yKCkgPT09IFwiRmFpbGVkXCIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBzdGF0ZTogdXRpbFdhaXRlci5XYWl0ZXJTdGF0ZS5GQUlMVVJFLCByZWFzb24gfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkgeyB9XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByZXR1cm5Db21wYXJhdG9yID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQuU3RhdGU7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKHJldHVybkNvbXBhcmF0b3IoKSA9PT0gXCJQZW5kaW5nXCIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBzdGF0ZTogdXRpbFdhaXRlci5XYWl0ZXJTdGF0ZS5SRVRSWSwgcmVhc29uIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHsgfVxuICAgIH1cbiAgICBjYXRjaCAoZXhjZXB0aW9uKSB7XG4gICAgICAgIHJlYXNvbiA9IGV4Y2VwdGlvbjtcbiAgICB9XG4gICAgcmV0dXJuIHsgc3RhdGU6IHV0aWxXYWl0ZXIuV2FpdGVyU3RhdGUuUkVUUlksIHJlYXNvbiB9O1xufTtcbmNvbnN0IHdhaXRGb3JGdW5jdGlvbkFjdGl2ZSA9IGFzeW5jIChwYXJhbXMsIGlucHV0KSA9PiB7XG4gICAgY29uc3Qgc2VydmljZURlZmF1bHRzID0geyBtaW5EZWxheTogNSwgbWF4RGVsYXk6IDMwMCB9O1xuICAgIHJldHVybiB1dGlsV2FpdGVyLmNyZWF0ZVdhaXRlcih7IC4uLnNlcnZpY2VEZWZhdWx0cywgLi4ucGFyYW1zIH0sIGlucHV0LCBjaGVja1N0YXRlJDUpO1xufTtcbmNvbnN0IHdhaXRVbnRpbEZ1bmN0aW9uQWN0aXZlID0gYXN5bmMgKHBhcmFtcywgaW5wdXQpID0+IHtcbiAgICBjb25zdCBzZXJ2aWNlRGVmYXVsdHMgPSB7IG1pbkRlbGF5OiA1LCBtYXhEZWxheTogMzAwIH07XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdXRpbFdhaXRlci5jcmVhdGVXYWl0ZXIoeyAuLi5zZXJ2aWNlRGVmYXVsdHMsIC4uLnBhcmFtcyB9LCBpbnB1dCwgY2hlY2tTdGF0ZSQ1KTtcbiAgICByZXR1cm4gdXRpbFdhaXRlci5jaGVja0V4Y2VwdGlvbnMocmVzdWx0KTtcbn07XG5cbmNvbnN0IGNoZWNrU3RhdGUkNCA9IGFzeW5jIChjbGllbnQsIGlucHV0KSA9PiB7XG4gICAgbGV0IHJlYXNvbjtcbiAgICB0cnkge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBjbGllbnQuc2VuZChuZXcgR2V0RnVuY3Rpb25Db21tYW5kKGlucHV0KSk7XG4gICAgICAgIHJlYXNvbiA9IHJlc3VsdDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJldHVybkNvbXBhcmF0b3IgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5Db25maWd1cmF0aW9uLlN0YXRlO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmIChyZXR1cm5Db21wYXJhdG9yKCkgPT09IFwiQWN0aXZlXCIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBzdGF0ZTogdXRpbFdhaXRlci5XYWl0ZXJTdGF0ZS5TVUNDRVNTLCByZWFzb24gfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkgeyB9XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByZXR1cm5Db21wYXJhdG9yID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQuQ29uZmlndXJhdGlvbi5TdGF0ZTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAocmV0dXJuQ29tcGFyYXRvcigpID09PSBcIkZhaWxlZFwiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgc3RhdGU6IHV0aWxXYWl0ZXIuV2FpdGVyU3RhdGUuRkFJTFVSRSwgcmVhc29uIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHsgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcmV0dXJuQ29tcGFyYXRvciA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LkNvbmZpZ3VyYXRpb24uU3RhdGU7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKHJldHVybkNvbXBhcmF0b3IoKSA9PT0gXCJQZW5kaW5nXCIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBzdGF0ZTogdXRpbFdhaXRlci5XYWl0ZXJTdGF0ZS5SRVRSWSwgcmVhc29uIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHsgfVxuICAgIH1cbiAgICBjYXRjaCAoZXhjZXB0aW9uKSB7XG4gICAgICAgIHJlYXNvbiA9IGV4Y2VwdGlvbjtcbiAgICB9XG4gICAgcmV0dXJuIHsgc3RhdGU6IHV0aWxXYWl0ZXIuV2FpdGVyU3RhdGUuUkVUUlksIHJlYXNvbiB9O1xufTtcbmNvbnN0IHdhaXRGb3JGdW5jdGlvbkFjdGl2ZVYyID0gYXN5bmMgKHBhcmFtcywgaW5wdXQpID0+IHtcbiAgICBjb25zdCBzZXJ2aWNlRGVmYXVsdHMgPSB7IG1pbkRlbGF5OiAxLCBtYXhEZWxheTogMzAwIH07XG4gICAgcmV0dXJuIHV0aWxXYWl0ZXIuY3JlYXRlV2FpdGVyKHsgLi4uc2VydmljZURlZmF1bHRzLCAuLi5wYXJhbXMgfSwgaW5wdXQsIGNoZWNrU3RhdGUkNCk7XG59O1xuY29uc3Qgd2FpdFVudGlsRnVuY3Rpb25BY3RpdmVWMiA9IGFzeW5jIChwYXJhbXMsIGlucHV0KSA9PiB7XG4gICAgY29uc3Qgc2VydmljZURlZmF1bHRzID0geyBtaW5EZWxheTogMSwgbWF4RGVsYXk6IDMwMCB9O1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHV0aWxXYWl0ZXIuY3JlYXRlV2FpdGVyKHsgLi4uc2VydmljZURlZmF1bHRzLCAuLi5wYXJhbXMgfSwgaW5wdXQsIGNoZWNrU3RhdGUkNCk7XG4gICAgcmV0dXJuIHV0aWxXYWl0ZXIuY2hlY2tFeGNlcHRpb25zKHJlc3VsdCk7XG59O1xuXG5jb25zdCBjaGVja1N0YXRlJDMgPSBhc3luYyAoY2xpZW50LCBpbnB1dCkgPT4ge1xuICAgIGxldCByZWFzb247XG4gICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgY2xpZW50LnNlbmQobmV3IEdldEZ1bmN0aW9uQ29tbWFuZChpbnB1dCkpO1xuICAgICAgICByZWFzb24gPSByZXN1bHQ7XG4gICAgICAgIHJldHVybiB7IHN0YXRlOiB1dGlsV2FpdGVyLldhaXRlclN0YXRlLlNVQ0NFU1MsIHJlYXNvbiB9O1xuICAgIH1cbiAgICBjYXRjaCAoZXhjZXB0aW9uKSB7XG4gICAgICAgIHJlYXNvbiA9IGV4Y2VwdGlvbjtcbiAgICAgICAgaWYgKGV4Y2VwdGlvbi5uYW1lICYmIGV4Y2VwdGlvbi5uYW1lID09IFwiUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvblwiKSB7XG4gICAgICAgICAgICByZXR1cm4geyBzdGF0ZTogdXRpbFdhaXRlci5XYWl0ZXJTdGF0ZS5SRVRSWSwgcmVhc29uIH07XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHsgc3RhdGU6IHV0aWxXYWl0ZXIuV2FpdGVyU3RhdGUuUkVUUlksIHJlYXNvbiB9O1xufTtcbmNvbnN0IHdhaXRGb3JGdW5jdGlvbkV4aXN0cyA9IGFzeW5jIChwYXJhbXMsIGlucHV0KSA9PiB7XG4gICAgY29uc3Qgc2VydmljZURlZmF1bHRzID0geyBtaW5EZWxheTogMSwgbWF4RGVsYXk6IDIwIH07XG4gICAgcmV0dXJuIHV0aWxXYWl0ZXIuY3JlYXRlV2FpdGVyKHsgLi4uc2VydmljZURlZmF1bHRzLCAuLi5wYXJhbXMgfSwgaW5wdXQsIGNoZWNrU3RhdGUkMyk7XG59O1xuY29uc3Qgd2FpdFVudGlsRnVuY3Rpb25FeGlzdHMgPSBhc3luYyAocGFyYW1zLCBpbnB1dCkgPT4ge1xuICAgIGNvbnN0IHNlcnZpY2VEZWZhdWx0cyA9IHsgbWluRGVsYXk6IDEsIG1heERlbGF5OiAyMCB9O1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHV0aWxXYWl0ZXIuY3JlYXRlV2FpdGVyKHsgLi4uc2VydmljZURlZmF1bHRzLCAuLi5wYXJhbXMgfSwgaW5wdXQsIGNoZWNrU3RhdGUkMyk7XG4gICAgcmV0dXJuIHV0aWxXYWl0ZXIuY2hlY2tFeGNlcHRpb25zKHJlc3VsdCk7XG59O1xuXG5jb25zdCBjaGVja1N0YXRlJDIgPSBhc3luYyAoY2xpZW50LCBpbnB1dCkgPT4ge1xuICAgIGxldCByZWFzb247XG4gICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgY2xpZW50LnNlbmQobmV3IEdldEZ1bmN0aW9uQ29uZmlndXJhdGlvbkNvbW1hbmQoaW5wdXQpKTtcbiAgICAgICAgcmVhc29uID0gcmVzdWx0O1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcmV0dXJuQ29tcGFyYXRvciA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0Lkxhc3RVcGRhdGVTdGF0dXM7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKHJldHVybkNvbXBhcmF0b3IoKSA9PT0gXCJTdWNjZXNzZnVsXCIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBzdGF0ZTogdXRpbFdhaXRlci5XYWl0ZXJTdGF0ZS5TVUNDRVNTLCByZWFzb24gfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkgeyB9XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByZXR1cm5Db21wYXJhdG9yID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQuTGFzdFVwZGF0ZVN0YXR1cztcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAocmV0dXJuQ29tcGFyYXRvcigpID09PSBcIkZhaWxlZFwiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgc3RhdGU6IHV0aWxXYWl0ZXIuV2FpdGVyU3RhdGUuRkFJTFVSRSwgcmVhc29uIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHsgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcmV0dXJuQ29tcGFyYXRvciA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0Lkxhc3RVcGRhdGVTdGF0dXM7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKHJldHVybkNvbXBhcmF0b3IoKSA9PT0gXCJJblByb2dyZXNzXCIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBzdGF0ZTogdXRpbFdhaXRlci5XYWl0ZXJTdGF0ZS5SRVRSWSwgcmVhc29uIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHsgfVxuICAgIH1cbiAgICBjYXRjaCAoZXhjZXB0aW9uKSB7XG4gICAgICAgIHJlYXNvbiA9IGV4Y2VwdGlvbjtcbiAgICB9XG4gICAgcmV0dXJuIHsgc3RhdGU6IHV0aWxXYWl0ZXIuV2FpdGVyU3RhdGUuUkVUUlksIHJlYXNvbiB9O1xufTtcbmNvbnN0IHdhaXRGb3JGdW5jdGlvblVwZGF0ZWQgPSBhc3luYyAocGFyYW1zLCBpbnB1dCkgPT4ge1xuICAgIGNvbnN0IHNlcnZpY2VEZWZhdWx0cyA9IHsgbWluRGVsYXk6IDUsIG1heERlbGF5OiAzMDAgfTtcbiAgICByZXR1cm4gdXRpbFdhaXRlci5jcmVhdGVXYWl0ZXIoeyAuLi5zZXJ2aWNlRGVmYXVsdHMsIC4uLnBhcmFtcyB9LCBpbnB1dCwgY2hlY2tTdGF0ZSQyKTtcbn07XG5jb25zdCB3YWl0VW50aWxGdW5jdGlvblVwZGF0ZWQgPSBhc3luYyAocGFyYW1zLCBpbnB1dCkgPT4ge1xuICAgIGNvbnN0IHNlcnZpY2VEZWZhdWx0cyA9IHsgbWluRGVsYXk6IDUsIG1heERlbGF5OiAzMDAgfTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB1dGlsV2FpdGVyLmNyZWF0ZVdhaXRlcih7IC4uLnNlcnZpY2VEZWZhdWx0cywgLi4ucGFyYW1zIH0sIGlucHV0LCBjaGVja1N0YXRlJDIpO1xuICAgIHJldHVybiB1dGlsV2FpdGVyLmNoZWNrRXhjZXB0aW9ucyhyZXN1bHQpO1xufTtcblxuY29uc3QgY2hlY2tTdGF0ZSQxID0gYXN5bmMgKGNsaWVudCwgaW5wdXQpID0+IHtcbiAgICBsZXQgcmVhc29uO1xuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGNsaWVudC5zZW5kKG5ldyBHZXRGdW5jdGlvbkNvbW1hbmQoaW5wdXQpKTtcbiAgICAgICAgcmVhc29uID0gcmVzdWx0O1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcmV0dXJuQ29tcGFyYXRvciA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LkNvbmZpZ3VyYXRpb24uTGFzdFVwZGF0ZVN0YXR1cztcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAocmV0dXJuQ29tcGFyYXRvcigpID09PSBcIlN1Y2Nlc3NmdWxcIikge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IHN0YXRlOiB1dGlsV2FpdGVyLldhaXRlclN0YXRlLlNVQ0NFU1MsIHJlYXNvbiB9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7IH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJldHVybkNvbXBhcmF0b3IgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5Db25maWd1cmF0aW9uLkxhc3RVcGRhdGVTdGF0dXM7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKHJldHVybkNvbXBhcmF0b3IoKSA9PT0gXCJGYWlsZWRcIikge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IHN0YXRlOiB1dGlsV2FpdGVyLldhaXRlclN0YXRlLkZBSUxVUkUsIHJlYXNvbiB9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7IH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJldHVybkNvbXBhcmF0b3IgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5Db25maWd1cmF0aW9uLkxhc3RVcGRhdGVTdGF0dXM7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKHJldHVybkNvbXBhcmF0b3IoKSA9PT0gXCJJblByb2dyZXNzXCIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBzdGF0ZTogdXRpbFdhaXRlci5XYWl0ZXJTdGF0ZS5SRVRSWSwgcmVhc29uIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHsgfVxuICAgIH1cbiAgICBjYXRjaCAoZXhjZXB0aW9uKSB7XG4gICAgICAgIHJlYXNvbiA9IGV4Y2VwdGlvbjtcbiAgICB9XG4gICAgcmV0dXJuIHsgc3RhdGU6IHV0aWxXYWl0ZXIuV2FpdGVyU3RhdGUuUkVUUlksIHJlYXNvbiB9O1xufTtcbmNvbnN0IHdhaXRGb3JGdW5jdGlvblVwZGF0ZWRWMiA9IGFzeW5jIChwYXJhbXMsIGlucHV0KSA9PiB7XG4gICAgY29uc3Qgc2VydmljZURlZmF1bHRzID0geyBtaW5EZWxheTogMSwgbWF4RGVsYXk6IDMwMCB9O1xuICAgIHJldHVybiB1dGlsV2FpdGVyLmNyZWF0ZVdhaXRlcih7IC4uLnNlcnZpY2VEZWZhdWx0cywgLi4ucGFyYW1zIH0sIGlucHV0LCBjaGVja1N0YXRlJDEpO1xufTtcbmNvbnN0IHdhaXRVbnRpbEZ1bmN0aW9uVXBkYXRlZFYyID0gYXN5bmMgKHBhcmFtcywgaW5wdXQpID0+IHtcbiAgICBjb25zdCBzZXJ2aWNlRGVmYXVsdHMgPSB7IG1pbkRlbGF5OiAxLCBtYXhEZWxheTogMzAwIH07XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdXRpbFdhaXRlci5jcmVhdGVXYWl0ZXIoeyAuLi5zZXJ2aWNlRGVmYXVsdHMsIC4uLnBhcmFtcyB9LCBpbnB1dCwgY2hlY2tTdGF0ZSQxKTtcbiAgICByZXR1cm4gdXRpbFdhaXRlci5jaGVja0V4Y2VwdGlvbnMocmVzdWx0KTtcbn07XG5cbmNvbnN0IGNoZWNrU3RhdGUgPSBhc3luYyAoY2xpZW50LCBpbnB1dCkgPT4ge1xuICAgIGxldCByZWFzb247XG4gICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgY2xpZW50LnNlbmQobmV3IEdldEZ1bmN0aW9uQ29uZmlndXJhdGlvbkNvbW1hbmQoaW5wdXQpKTtcbiAgICAgICAgcmVhc29uID0gcmVzdWx0O1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcmV0dXJuQ29tcGFyYXRvciA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LlN0YXRlO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmIChyZXR1cm5Db21wYXJhdG9yKCkgPT09IFwiQWN0aXZlXCIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBzdGF0ZTogdXRpbFdhaXRlci5XYWl0ZXJTdGF0ZS5TVUNDRVNTLCByZWFzb24gfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkgeyB9XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByZXR1cm5Db21wYXJhdG9yID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQuU3RhdGU7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKHJldHVybkNvbXBhcmF0b3IoKSA9PT0gXCJGYWlsZWRcIikge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IHN0YXRlOiB1dGlsV2FpdGVyLldhaXRlclN0YXRlLkZBSUxVUkUsIHJlYXNvbiB9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7IH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJldHVybkNvbXBhcmF0b3IgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5TdGF0ZTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAocmV0dXJuQ29tcGFyYXRvcigpID09PSBcIlBlbmRpbmdcIikge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IHN0YXRlOiB1dGlsV2FpdGVyLldhaXRlclN0YXRlLlJFVFJZLCByZWFzb24gfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkgeyB9XG4gICAgfVxuICAgIGNhdGNoIChleGNlcHRpb24pIHtcbiAgICAgICAgcmVhc29uID0gZXhjZXB0aW9uO1xuICAgIH1cbiAgICByZXR1cm4geyBzdGF0ZTogdXRpbFdhaXRlci5XYWl0ZXJTdGF0ZS5SRVRSWSwgcmVhc29uIH07XG59O1xuY29uc3Qgd2FpdEZvclB1Ymxpc2hlZFZlcnNpb25BY3RpdmUgPSBhc3luYyAocGFyYW1zLCBpbnB1dCkgPT4ge1xuICAgIGNvbnN0IHNlcnZpY2VEZWZhdWx0cyA9IHsgbWluRGVsYXk6IDUsIG1heERlbGF5OiAxNTYwIH07XG4gICAgcmV0dXJuIHV0aWxXYWl0ZXIuY3JlYXRlV2FpdGVyKHsgLi4uc2VydmljZURlZmF1bHRzLCAuLi5wYXJhbXMgfSwgaW5wdXQsIGNoZWNrU3RhdGUpO1xufTtcbmNvbnN0IHdhaXRVbnRpbFB1Ymxpc2hlZFZlcnNpb25BY3RpdmUgPSBhc3luYyAocGFyYW1zLCBpbnB1dCkgPT4ge1xuICAgIGNvbnN0IHNlcnZpY2VEZWZhdWx0cyA9IHsgbWluRGVsYXk6IDUsIG1heERlbGF5OiAxNTYwIH07XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdXRpbFdhaXRlci5jcmVhdGVXYWl0ZXIoeyAuLi5zZXJ2aWNlRGVmYXVsdHMsIC4uLnBhcmFtcyB9LCBpbnB1dCwgY2hlY2tTdGF0ZSk7XG4gICAgcmV0dXJuIHV0aWxXYWl0ZXIuY2hlY2tFeGNlcHRpb25zKHJlc3VsdCk7XG59O1xuXG5jb25zdCBUaHJvdHRsZVJlYXNvbiA9IHtcbiAgICBDYWxsZXJSYXRlTGltaXRFeGNlZWRlZDogXCJDYWxsZXJSYXRlTGltaXRFeGNlZWRlZFwiLFxuICAgIENvbmN1cnJlbnRJbnZvY2F0aW9uTGltaXRFeGNlZWRlZDogXCJDb25jdXJyZW50SW52b2NhdGlvbkxpbWl0RXhjZWVkZWRcIixcbiAgICBDb25jdXJyZW50U25hcHNob3RDcmVhdGVMaW1pdEV4Y2VlZGVkOiBcIkNvbmN1cnJlbnRTbmFwc2hvdENyZWF0ZUxpbWl0RXhjZWVkZWRcIixcbiAgICBGdW5jdGlvbkludm9jYXRpb25SYXRlTGltaXRFeGNlZWRlZDogXCJGdW5jdGlvbkludm9jYXRpb25SYXRlTGltaXRFeGNlZWRlZFwiLFxuICAgIFJlc2VydmVkRnVuY3Rpb25Db25jdXJyZW50SW52b2NhdGlvbkxpbWl0RXhjZWVkZWQ6IFwiUmVzZXJ2ZWRGdW5jdGlvbkNvbmN1cnJlbnRJbnZvY2F0aW9uTGltaXRFeGNlZWRlZFwiLFxuICAgIFJlc2VydmVkRnVuY3Rpb25JbnZvY2F0aW9uUmF0ZUxpbWl0RXhjZWVkZWQ6IFwiUmVzZXJ2ZWRGdW5jdGlvbkludm9jYXRpb25SYXRlTGltaXRFeGNlZWRlZFwiLFxufTtcbmNvbnN0IEZ1bmN0aW9uVXJsQXV0aFR5cGUgPSB7XG4gICAgQVdTX0lBTTogXCJBV1NfSUFNXCIsXG4gICAgTk9ORTogXCJOT05FXCIsXG59O1xuY29uc3QgS2Fma2FTY2hlbWFSZWdpc3RyeUF1dGhUeXBlID0ge1xuICAgIEJBU0lDX0FVVEg6IFwiQkFTSUNfQVVUSFwiLFxuICAgIENMSUVOVF9DRVJUSUZJQ0FURV9UTFNfQVVUSDogXCJDTElFTlRfQ0VSVElGSUNBVEVfVExTX0FVVEhcIixcbiAgICBTRVJWRVJfUk9PVF9DQV9DRVJUSUZJQ0FURTogXCJTRVJWRVJfUk9PVF9DQV9DRVJUSUZJQ0FURVwiLFxufTtcbmNvbnN0IFNjaGVtYVJlZ2lzdHJ5RXZlbnRSZWNvcmRGb3JtYXQgPSB7XG4gICAgSlNPTjogXCJKU09OXCIsXG4gICAgU09VUkNFOiBcIlNPVVJDRVwiLFxufTtcbmNvbnN0IEthZmthU2NoZW1hVmFsaWRhdGlvbkF0dHJpYnV0ZSA9IHtcbiAgICBLRVk6IFwiS0VZXCIsXG4gICAgVkFMVUU6IFwiVkFMVUVcIixcbn07XG5jb25zdCBBcHBsaWNhdGlvbkxvZ0xldmVsID0ge1xuICAgIERlYnVnOiBcIkRFQlVHXCIsXG4gICAgRXJyb3I6IFwiRVJST1JcIixcbiAgICBGYXRhbDogXCJGQVRBTFwiLFxuICAgIEluZm86IFwiSU5GT1wiLFxuICAgIFRyYWNlOiBcIlRSQUNFXCIsXG4gICAgV2FybjogXCJXQVJOXCIsXG59O1xuY29uc3QgQXJjaGl0ZWN0dXJlID0ge1xuICAgIGFybTY0OiBcImFybTY0XCIsXG4gICAgeDg2XzY0OiBcIng4Nl82NFwiLFxufTtcbmNvbnN0IENhcGFjaXR5UHJvdmlkZXJTY2FsaW5nTW9kZSA9IHtcbiAgICBBdXRvOiBcIkF1dG9cIixcbiAgICBNYW51YWw6IFwiTWFudWFsXCIsXG59O1xuY29uc3QgQ2FwYWNpdHlQcm92aWRlclByZWRlZmluZWRNZXRyaWNUeXBlID0ge1xuICAgIExhbWJkYUNhcGFjaXR5UHJvdmlkZXJBdmVyYWdlQ1BVVXRpbGl6YXRpb246IFwiTGFtYmRhQ2FwYWNpdHlQcm92aWRlckF2ZXJhZ2VDUFVVdGlsaXphdGlvblwiLFxufTtcbmNvbnN0IENhcGFjaXR5UHJvdmlkZXJTdGF0ZSA9IHtcbiAgICBBY3RpdmU6IFwiQWN0aXZlXCIsXG4gICAgRGVsZXRpbmc6IFwiRGVsZXRpbmdcIixcbiAgICBGYWlsZWQ6IFwiRmFpbGVkXCIsXG4gICAgUGVuZGluZzogXCJQZW5kaW5nXCIsXG59O1xuY29uc3QgU3RhdGUgPSB7XG4gICAgQWN0aXZlOiBcIkFjdGl2ZVwiLFxuICAgIEFjdGl2ZU5vbkludm9jYWJsZTogXCJBY3RpdmVOb25JbnZvY2FibGVcIixcbiAgICBEZWFjdGl2YXRlZDogXCJEZWFjdGl2YXRlZFwiLFxuICAgIERlYWN0aXZhdGluZzogXCJEZWFjdGl2YXRpbmdcIixcbiAgICBEZWxldGluZzogXCJEZWxldGluZ1wiLFxuICAgIEZhaWxlZDogXCJGYWlsZWRcIixcbiAgICBJbmFjdGl2ZTogXCJJbmFjdGl2ZVwiLFxuICAgIFBlbmRpbmc6IFwiUGVuZGluZ1wiLFxufTtcbmNvbnN0IE9wZXJhdGlvbkFjdGlvbiA9IHtcbiAgICBDQU5DRUw6IFwiQ0FOQ0VMXCIsXG4gICAgRkFJTDogXCJGQUlMXCIsXG4gICAgUkVUUlk6IFwiUkVUUllcIixcbiAgICBTVEFSVDogXCJTVEFSVFwiLFxuICAgIFNVQ0NFRUQ6IFwiU1VDQ0VFRFwiLFxufTtcbmNvbnN0IE9wZXJhdGlvblR5cGUgPSB7XG4gICAgQ0FMTEJBQ0s6IFwiQ0FMTEJBQ0tcIixcbiAgICBDSEFJTkVEX0lOVk9LRTogXCJDSEFJTkVEX0lOVk9LRVwiLFxuICAgIENPTlRFWFQ6IFwiQ09OVEVYVFwiLFxuICAgIEVYRUNVVElPTjogXCJFWEVDVVRJT05cIixcbiAgICBTVEVQOiBcIlNURVBcIixcbiAgICBXQUlUOiBcIldBSVRcIixcbn07XG5jb25zdCBPcGVyYXRpb25TdGF0dXMgPSB7XG4gICAgQ0FOQ0VMTEVEOiBcIkNBTkNFTExFRFwiLFxuICAgIEZBSUxFRDogXCJGQUlMRURcIixcbiAgICBQRU5ESU5HOiBcIlBFTkRJTkdcIixcbiAgICBSRUFEWTogXCJSRUFEWVwiLFxuICAgIFNUQVJURUQ6IFwiU1RBUlRFRFwiLFxuICAgIFNUT1BQRUQ6IFwiU1RPUFBFRFwiLFxuICAgIFNVQ0NFRURFRDogXCJTVUNDRUVERURcIixcbiAgICBUSU1FRF9PVVQ6IFwiVElNRURfT1VUXCIsXG59O1xuY29uc3QgQ29kZVNpZ25pbmdQb2xpY3kgPSB7XG4gICAgRW5mb3JjZTogXCJFbmZvcmNlXCIsXG4gICAgV2FybjogXCJXYXJuXCIsXG59O1xuY29uc3QgRnVsbERvY3VtZW50ID0ge1xuICAgIERlZmF1bHQ6IFwiRGVmYXVsdFwiLFxuICAgIFVwZGF0ZUxvb2t1cDogXCJVcGRhdGVMb29rdXBcIixcbn07XG5jb25zdCBGdW5jdGlvblJlc3BvbnNlVHlwZSA9IHtcbiAgICBSZXBvcnRCYXRjaEl0ZW1GYWlsdXJlczogXCJSZXBvcnRCYXRjaEl0ZW1GYWlsdXJlc1wiLFxufTtcbmNvbnN0IEV2ZW50U291cmNlTWFwcGluZ01ldHJpYyA9IHtcbiAgICBFdmVudENvdW50OiBcIkV2ZW50Q291bnRcIixcbn07XG5jb25zdCBFbmRQb2ludFR5cGUgPSB7XG4gICAgS0FGS0FfQk9PVFNUUkFQX1NFUlZFUlM6IFwiS0FGS0FfQk9PVFNUUkFQX1NFUlZFUlNcIixcbn07XG5jb25zdCBTb3VyY2VBY2Nlc3NUeXBlID0ge1xuICAgIEJBU0lDX0FVVEg6IFwiQkFTSUNfQVVUSFwiLFxuICAgIENMSUVOVF9DRVJUSUZJQ0FURV9UTFNfQVVUSDogXCJDTElFTlRfQ0VSVElGSUNBVEVfVExTX0FVVEhcIixcbiAgICBTQVNMX1NDUkFNXzI1Nl9BVVRIOiBcIlNBU0xfU0NSQU1fMjU2X0FVVEhcIixcbiAgICBTQVNMX1NDUkFNXzUxMl9BVVRIOiBcIlNBU0xfU0NSQU1fNTEyX0FVVEhcIixcbiAgICBTRVJWRVJfUk9PVF9DQV9DRVJUSUZJQ0FURTogXCJTRVJWRVJfUk9PVF9DQV9DRVJUSUZJQ0FURVwiLFxuICAgIFZJUlRVQUxfSE9TVDogXCJWSVJUVUFMX0hPU1RcIixcbiAgICBWUENfU0VDVVJJVFlfR1JPVVA6IFwiVlBDX1NFQ1VSSVRZX0dST1VQXCIsXG4gICAgVlBDX1NVQk5FVDogXCJWUENfU1VCTkVUXCIsXG59O1xuY29uc3QgRXZlbnRTb3VyY2VQb3NpdGlvbiA9IHtcbiAgICBBVF9USU1FU1RBTVA6IFwiQVRfVElNRVNUQU1QXCIsXG4gICAgTEFURVNUOiBcIkxBVEVTVFwiLFxuICAgIFRSSU1fSE9SSVpPTjogXCJUUklNX0hPUklaT05cIixcbn07XG5jb25zdCBMb2dGb3JtYXQgPSB7XG4gICAgSnNvbjogXCJKU09OXCIsXG4gICAgVGV4dDogXCJUZXh0XCIsXG59O1xuY29uc3QgU3lzdGVtTG9nTGV2ZWwgPSB7XG4gICAgRGVidWc6IFwiREVCVUdcIixcbiAgICBJbmZvOiBcIklORk9cIixcbiAgICBXYXJuOiBcIldBUk5cIixcbn07XG5jb25zdCBQYWNrYWdlVHlwZSA9IHtcbiAgICBJbWFnZTogXCJJbWFnZVwiLFxuICAgIFppcDogXCJaaXBcIixcbn07XG5jb25zdCBGdW5jdGlvblZlcnNpb25MYXRlc3RQdWJsaXNoZWQgPSB7XG4gICAgTEFURVNUX1BVQkxJU0hFRDogXCJMQVRFU1RfUFVCTElTSEVEXCIsXG59O1xuY29uc3QgUnVudGltZSA9IHtcbiAgICBkb3RuZXQxMDogXCJkb3RuZXQxMFwiLFxuICAgIGRvdG5ldDY6IFwiZG90bmV0NlwiLFxuICAgIGRvdG5ldDg6IFwiZG90bmV0OFwiLFxuICAgIGRvdG5ldGNvcmUxMDogXCJkb3RuZXRjb3JlMS4wXCIsXG4gICAgZG90bmV0Y29yZTIwOiBcImRvdG5ldGNvcmUyLjBcIixcbiAgICBkb3RuZXRjb3JlMjE6IFwiZG90bmV0Y29yZTIuMVwiLFxuICAgIGRvdG5ldGNvcmUzMTogXCJkb3RuZXRjb3JlMy4xXCIsXG4gICAgZ28xeDogXCJnbzEueFwiLFxuICAgIGphdmExMTogXCJqYXZhMTFcIixcbiAgICBqYXZhMTc6IFwiamF2YTE3XCIsXG4gICAgamF2YTIxOiBcImphdmEyMVwiLFxuICAgIGphdmEyNTogXCJqYXZhMjVcIixcbiAgICBqYXZhODogXCJqYXZhOFwiLFxuICAgIGphdmE4YWwyOiBcImphdmE4LmFsMlwiLFxuICAgIG5vZGVqczogXCJub2RlanNcIixcbiAgICBub2RlanMxMHg6IFwibm9kZWpzMTAueFwiLFxuICAgIG5vZGVqczEyeDogXCJub2RlanMxMi54XCIsXG4gICAgbm9kZWpzMTR4OiBcIm5vZGVqczE0LnhcIixcbiAgICBub2RlanMxNng6IFwibm9kZWpzMTYueFwiLFxuICAgIG5vZGVqczE4eDogXCJub2RlanMxOC54XCIsXG4gICAgbm9kZWpzMjB4OiBcIm5vZGVqczIwLnhcIixcbiAgICBub2RlanMyMng6IFwibm9kZWpzMjIueFwiLFxuICAgIG5vZGVqczI0eDogXCJub2RlanMyNC54XCIsXG4gICAgbm9kZWpzNDM6IFwibm9kZWpzNC4zXCIsXG4gICAgbm9kZWpzNDNlZGdlOiBcIm5vZGVqczQuMy1lZGdlXCIsXG4gICAgbm9kZWpzNjEwOiBcIm5vZGVqczYuMTBcIixcbiAgICBub2RlanM4MTA6IFwibm9kZWpzOC4xMFwiLFxuICAgIHByb3ZpZGVkOiBcInByb3ZpZGVkXCIsXG4gICAgcHJvdmlkZWRhbDI6IFwicHJvdmlkZWQuYWwyXCIsXG4gICAgcHJvdmlkZWRhbDIwMjM6IFwicHJvdmlkZWQuYWwyMDIzXCIsXG4gICAgcHl0aG9uMjc6IFwicHl0aG9uMi43XCIsXG4gICAgcHl0aG9uMzEwOiBcInB5dGhvbjMuMTBcIixcbiAgICBweXRob24zMTE6IFwicHl0aG9uMy4xMVwiLFxuICAgIHB5dGhvbjMxMjogXCJweXRob24zLjEyXCIsXG4gICAgcHl0aG9uMzEzOiBcInB5dGhvbjMuMTNcIixcbiAgICBweXRob24zMTQ6IFwicHl0aG9uMy4xNFwiLFxuICAgIHB5dGhvbjM2OiBcInB5dGhvbjMuNlwiLFxuICAgIHB5dGhvbjM3OiBcInB5dGhvbjMuN1wiLFxuICAgIHB5dGhvbjM4OiBcInB5dGhvbjMuOFwiLFxuICAgIHB5dGhvbjM5OiBcInB5dGhvbjMuOVwiLFxuICAgIHJ1YnkyNTogXCJydWJ5Mi41XCIsXG4gICAgcnVieTI3OiBcInJ1YnkyLjdcIixcbiAgICBydWJ5MzI6IFwicnVieTMuMlwiLFxuICAgIHJ1YnkzMzogXCJydWJ5My4zXCIsXG4gICAgcnVieTM0OiBcInJ1YnkzLjRcIixcbn07XG5jb25zdCBTbmFwU3RhcnRBcHBseU9uID0ge1xuICAgIE5vbmU6IFwiTm9uZVwiLFxuICAgIFB1Ymxpc2hlZFZlcnNpb25zOiBcIlB1Ymxpc2hlZFZlcnNpb25zXCIsXG59O1xuY29uc3QgVGVuYW50SXNvbGF0aW9uTW9kZSA9IHtcbiAgICBQRVJfVEVOQU5UOiBcIlBFUl9URU5BTlRcIixcbn07XG5jb25zdCBUcmFjaW5nTW9kZSA9IHtcbiAgICBBY3RpdmU6IFwiQWN0aXZlXCIsXG4gICAgUGFzc1Rocm91Z2g6IFwiUGFzc1Rocm91Z2hcIixcbn07XG5jb25zdCBMYXN0VXBkYXRlU3RhdHVzID0ge1xuICAgIEZhaWxlZDogXCJGYWlsZWRcIixcbiAgICBJblByb2dyZXNzOiBcIkluUHJvZ3Jlc3NcIixcbiAgICBTdWNjZXNzZnVsOiBcIlN1Y2Nlc3NmdWxcIixcbn07XG5jb25zdCBMYXN0VXBkYXRlU3RhdHVzUmVhc29uQ29kZSA9IHtcbiAgICBDYXBhY2l0eVByb3ZpZGVyU2NhbGluZ0xpbWl0RXhjZWVkZWQ6IFwiQ2FwYWNpdHlQcm92aWRlclNjYWxpbmdMaW1pdEV4Y2VlZGVkXCIsXG4gICAgRGlzYWJsZWRLTVNLZXk6IFwiRGlzYWJsZWRLTVNLZXlcIixcbiAgICBEaXNhbGxvd2VkQnlWcGNFbmNyeXB0aW9uQ29udHJvbDogXCJEaXNhbGxvd2VkQnlWcGNFbmNyeXB0aW9uQ29udHJvbFwiLFxuICAgIEVDMlJlcXVlc3RMaW1pdEV4Y2VlZGVkOiBcIkVDMlJlcXVlc3RMaW1pdEV4Y2VlZGVkXCIsXG4gICAgRUZTSU9FcnJvcjogXCJFRlNJT0Vycm9yXCIsXG4gICAgRUZTTW91bnRDb25uZWN0aXZpdHlFcnJvcjogXCJFRlNNb3VudENvbm5lY3Rpdml0eUVycm9yXCIsXG4gICAgRUZTTW91bnRGYWlsdXJlOiBcIkVGU01vdW50RmFpbHVyZVwiLFxuICAgIEVGU01vdW50VGltZW91dDogXCJFRlNNb3VudFRpbWVvdXRcIixcbiAgICBFbmlMaW1pdEV4Y2VlZGVkOiBcIkVuaUxpbWl0RXhjZWVkZWRcIixcbiAgICBGdW5jdGlvbkVycm9yOiBcIkZ1bmN0aW9uRXJyb3JcIixcbiAgICBGdW5jdGlvbkVycm9yRXh0ZW5zaW9uSW5pdEVycm9yOiBcIkZ1bmN0aW9uRXJyb3IuRXh0ZW5zaW9uSW5pdEVycm9yXCIsXG4gICAgRnVuY3Rpb25FcnJvckluaXRSZXNvdXJjZUV4aGF1c3RlZDogXCJGdW5jdGlvbkVycm9yLkluaXRSZXNvdXJjZUV4aGF1c3RlZFwiLFxuICAgIEZ1bmN0aW9uRXJyb3JJbml0VGltZW91dDogXCJGdW5jdGlvbkVycm9yLkluaXRUaW1lb3V0XCIsXG4gICAgRnVuY3Rpb25FcnJvckludmFsaWRFbnRyeVBvaW50OiBcIkZ1bmN0aW9uRXJyb3IuSW52YWxpZEVudHJ5UG9pbnRcIixcbiAgICBGdW5jdGlvbkVycm9ySW52YWxpZFdvcmtpbmdEaXJlY3Rvcnk6IFwiRnVuY3Rpb25FcnJvci5JbnZhbGlkV29ya2luZ0RpcmVjdG9yeVwiLFxuICAgIEZ1bmN0aW9uRXJyb3JQZXJtaXNzaW9uRGVuaWVkOiBcIkZ1bmN0aW9uRXJyb3IuUGVybWlzc2lvbkRlbmllZFwiLFxuICAgIEZ1bmN0aW9uRXJyb3JSdW50aW1lSW5pdEVycm9yOiBcIkZ1bmN0aW9uRXJyb3IuUnVudGltZUluaXRFcnJvclwiLFxuICAgIEZ1bmN0aW9uRXJyb3JUb29NYW55RXh0ZW5zaW9uczogXCJGdW5jdGlvbkVycm9yLlRvb01hbnlFeHRlbnNpb25zXCIsXG4gICAgSW1hZ2VBY2Nlc3NEZW5pZWQ6IFwiSW1hZ2VBY2Nlc3NEZW5pZWRcIixcbiAgICBJbWFnZURlbGV0ZWQ6IFwiSW1hZ2VEZWxldGVkXCIsXG4gICAgSW5zdWZmaWNpZW50Q2FwYWNpdHk6IFwiSW5zdWZmaWNpZW50Q2FwYWNpdHlcIixcbiAgICBJbnN1ZmZpY2llbnRSb2xlUGVybWlzc2lvbnM6IFwiSW5zdWZmaWNpZW50Um9sZVBlcm1pc3Npb25zXCIsXG4gICAgSW50ZXJuYWxFcnJvcjogXCJJbnRlcm5hbEVycm9yXCIsXG4gICAgSW52YWxpZENvbmZpZ3VyYXRpb246IFwiSW52YWxpZENvbmZpZ3VyYXRpb25cIixcbiAgICBJbnZhbGlkSW1hZ2U6IFwiSW52YWxpZEltYWdlXCIsXG4gICAgSW52YWxpZFJ1bnRpbWU6IFwiSW52YWxpZFJ1bnRpbWVcIixcbiAgICBJbnZhbGlkU2VjdXJpdHlHcm91cDogXCJJbnZhbGlkU2VjdXJpdHlHcm91cFwiLFxuICAgIEludmFsaWRTdGF0ZUtNU0tleTogXCJJbnZhbGlkU3RhdGVLTVNLZXlcIixcbiAgICBJbnZhbGlkU3VibmV0OiBcIkludmFsaWRTdWJuZXRcIixcbiAgICBJbnZhbGlkWmlwRmlsZUV4Y2VwdGlvbjogXCJJbnZhbGlkWmlwRmlsZUV4Y2VwdGlvblwiLFxuICAgIEtNU0tleUFjY2Vzc0RlbmllZDogXCJLTVNLZXlBY2Nlc3NEZW5pZWRcIixcbiAgICBLTVNLZXlOb3RGb3VuZDogXCJLTVNLZXlOb3RGb3VuZFwiLFxuICAgIFN1Ym5ldE91dE9mSVBBZGRyZXNzZXM6IFwiU3VibmV0T3V0T2ZJUEFkZHJlc3Nlc1wiLFxuICAgIFZjcHVMaW1pdEV4Y2VlZGVkOiBcIlZjcHVMaW1pdEV4Y2VlZGVkXCIsXG59O1xuY29uc3QgU25hcFN0YXJ0T3B0aW1pemF0aW9uU3RhdHVzID0ge1xuICAgIE9mZjogXCJPZmZcIixcbiAgICBPbjogXCJPblwiLFxufTtcbmNvbnN0IFN0YXRlUmVhc29uQ29kZSA9IHtcbiAgICBDYXBhY2l0eVByb3ZpZGVyU2NhbGluZ0xpbWl0RXhjZWVkZWQ6IFwiQ2FwYWNpdHlQcm92aWRlclNjYWxpbmdMaW1pdEV4Y2VlZGVkXCIsXG4gICAgQ3JlYXRpbmc6IFwiQ3JlYXRpbmdcIixcbiAgICBEaXNhYmxlZEtNU0tleTogXCJEaXNhYmxlZEtNU0tleVwiLFxuICAgIERpc2FsbG93ZWRCeVZwY0VuY3J5cHRpb25Db250cm9sOiBcIkRpc2FsbG93ZWRCeVZwY0VuY3J5cHRpb25Db250cm9sXCIsXG4gICAgRHJhaW5pbmdEdXJhYmxlRXhlY3V0aW9uczogXCJEcmFpbmluZ0R1cmFibGVFeGVjdXRpb25zXCIsXG4gICAgRUMyUmVxdWVzdExpbWl0RXhjZWVkZWQ6IFwiRUMyUmVxdWVzdExpbWl0RXhjZWVkZWRcIixcbiAgICBFRlNJT0Vycm9yOiBcIkVGU0lPRXJyb3JcIixcbiAgICBFRlNNb3VudENvbm5lY3Rpdml0eUVycm9yOiBcIkVGU01vdW50Q29ubmVjdGl2aXR5RXJyb3JcIixcbiAgICBFRlNNb3VudEZhaWx1cmU6IFwiRUZTTW91bnRGYWlsdXJlXCIsXG4gICAgRUZTTW91bnRUaW1lb3V0OiBcIkVGU01vdW50VGltZW91dFwiLFxuICAgIEVuaUxpbWl0RXhjZWVkZWQ6IFwiRW5pTGltaXRFeGNlZWRlZFwiLFxuICAgIEZ1bmN0aW9uRXJyb3I6IFwiRnVuY3Rpb25FcnJvclwiLFxuICAgIEZ1bmN0aW9uRXJyb3JFeHRlbnNpb25Jbml0RXJyb3I6IFwiRnVuY3Rpb25FcnJvci5FeHRlbnNpb25Jbml0RXJyb3JcIixcbiAgICBGdW5jdGlvbkVycm9ySW5pdFJlc291cmNlRXhoYXVzdGVkOiBcIkZ1bmN0aW9uRXJyb3IuSW5pdFJlc291cmNlRXhoYXVzdGVkXCIsXG4gICAgRnVuY3Rpb25FcnJvckluaXRUaW1lb3V0OiBcIkZ1bmN0aW9uRXJyb3IuSW5pdFRpbWVvdXRcIixcbiAgICBGdW5jdGlvbkVycm9ySW52YWxpZEVudHJ5UG9pbnQ6IFwiRnVuY3Rpb25FcnJvci5JbnZhbGlkRW50cnlQb2ludFwiLFxuICAgIEZ1bmN0aW9uRXJyb3JJbnZhbGlkV29ya2luZ0RpcmVjdG9yeTogXCJGdW5jdGlvbkVycm9yLkludmFsaWRXb3JraW5nRGlyZWN0b3J5XCIsXG4gICAgRnVuY3Rpb25FcnJvclBlcm1pc3Npb25EZW5pZWQ6IFwiRnVuY3Rpb25FcnJvci5QZXJtaXNzaW9uRGVuaWVkXCIsXG4gICAgRnVuY3Rpb25FcnJvclJ1bnRpbWVJbml0RXJyb3I6IFwiRnVuY3Rpb25FcnJvci5SdW50aW1lSW5pdEVycm9yXCIsXG4gICAgRnVuY3Rpb25FcnJvclRvb01hbnlFeHRlbnNpb25zOiBcIkZ1bmN0aW9uRXJyb3IuVG9vTWFueUV4dGVuc2lvbnNcIixcbiAgICBJZGxlOiBcIklkbGVcIixcbiAgICBJbWFnZUFjY2Vzc0RlbmllZDogXCJJbWFnZUFjY2Vzc0RlbmllZFwiLFxuICAgIEltYWdlRGVsZXRlZDogXCJJbWFnZURlbGV0ZWRcIixcbiAgICBJbnN1ZmZpY2llbnRDYXBhY2l0eTogXCJJbnN1ZmZpY2llbnRDYXBhY2l0eVwiLFxuICAgIEluc3VmZmljaWVudFJvbGVQZXJtaXNzaW9uczogXCJJbnN1ZmZpY2llbnRSb2xlUGVybWlzc2lvbnNcIixcbiAgICBJbnRlcm5hbEVycm9yOiBcIkludGVybmFsRXJyb3JcIixcbiAgICBJbnZhbGlkQ29uZmlndXJhdGlvbjogXCJJbnZhbGlkQ29uZmlndXJhdGlvblwiLFxuICAgIEludmFsaWRJbWFnZTogXCJJbnZhbGlkSW1hZ2VcIixcbiAgICBJbnZhbGlkUnVudGltZTogXCJJbnZhbGlkUnVudGltZVwiLFxuICAgIEludmFsaWRTZWN1cml0eUdyb3VwOiBcIkludmFsaWRTZWN1cml0eUdyb3VwXCIsXG4gICAgSW52YWxpZFN0YXRlS01TS2V5OiBcIkludmFsaWRTdGF0ZUtNU0tleVwiLFxuICAgIEludmFsaWRTdWJuZXQ6IFwiSW52YWxpZFN1Ym5ldFwiLFxuICAgIEludmFsaWRaaXBGaWxlRXhjZXB0aW9uOiBcIkludmFsaWRaaXBGaWxlRXhjZXB0aW9uXCIsXG4gICAgS01TS2V5QWNjZXNzRGVuaWVkOiBcIktNU0tleUFjY2Vzc0RlbmllZFwiLFxuICAgIEtNU0tleU5vdEZvdW5kOiBcIktNU0tleU5vdEZvdW5kXCIsXG4gICAgUmVzdG9yaW5nOiBcIlJlc3RvcmluZ1wiLFxuICAgIFN1Ym5ldE91dE9mSVBBZGRyZXNzZXM6IFwiU3VibmV0T3V0T2ZJUEFkZHJlc3Nlc1wiLFxuICAgIFZjcHVMaW1pdEV4Y2VlZGVkOiBcIlZjcHVMaW1pdEV4Y2VlZGVkXCIsXG59O1xuY29uc3QgSW52b2tlTW9kZSA9IHtcbiAgICBCVUZGRVJFRDogXCJCVUZGRVJFRFwiLFxuICAgIFJFU1BPTlNFX1NUUkVBTTogXCJSRVNQT05TRV9TVFJFQU1cIixcbn07XG5jb25zdCBSZWN1cnNpdmVMb29wID0ge1xuICAgIEFsbG93OiBcIkFsbG93XCIsXG4gICAgVGVybWluYXRlOiBcIlRlcm1pbmF0ZVwiLFxufTtcbmNvbnN0IFVwZGF0ZVJ1bnRpbWVPbiA9IHtcbiAgICBBdXRvOiBcIkF1dG9cIixcbiAgICBGdW5jdGlvblVwZGF0ZTogXCJGdW5jdGlvblVwZGF0ZVwiLFxuICAgIE1hbnVhbDogXCJNYW51YWxcIixcbn07XG5jb25zdCBJbnZvY2F0aW9uVHlwZSA9IHtcbiAgICBEcnlSdW46IFwiRHJ5UnVuXCIsXG4gICAgRXZlbnQ6IFwiRXZlbnRcIixcbiAgICBSZXF1ZXN0UmVzcG9uc2U6IFwiUmVxdWVzdFJlc3BvbnNlXCIsXG59O1xuY29uc3QgTG9nVHlwZSA9IHtcbiAgICBOb25lOiBcIk5vbmVcIixcbiAgICBUYWlsOiBcIlRhaWxcIixcbn07XG5jb25zdCBSZXNwb25zZVN0cmVhbWluZ0ludm9jYXRpb25UeXBlID0ge1xuICAgIERyeVJ1bjogXCJEcnlSdW5cIixcbiAgICBSZXF1ZXN0UmVzcG9uc2U6IFwiUmVxdWVzdFJlc3BvbnNlXCIsXG59O1xuY29uc3QgRnVuY3Rpb25WZXJzaW9uID0ge1xuICAgIEFMTDogXCJBTExcIixcbn07XG5jb25zdCBQcm92aXNpb25lZENvbmN1cnJlbmN5U3RhdHVzRW51bSA9IHtcbiAgICBGQUlMRUQ6IFwiRkFJTEVEXCIsXG4gICAgSU5fUFJPR1JFU1M6IFwiSU5fUFJPR1JFU1NcIixcbiAgICBSRUFEWTogXCJSRUFEWVwiLFxufTtcbmNvbnN0IEV4ZWN1dGlvblN0YXR1cyA9IHtcbiAgICBGQUlMRUQ6IFwiRkFJTEVEXCIsXG4gICAgUlVOTklORzogXCJSVU5OSU5HXCIsXG4gICAgU1RPUFBFRDogXCJTVE9QUEVEXCIsXG4gICAgU1VDQ0VFREVEOiBcIlNVQ0NFRURFRFwiLFxuICAgIFRJTUVEX09VVDogXCJUSU1FRF9PVVRcIixcbn07XG5jb25zdCBFdmVudFR5cGUgPSB7XG4gICAgQ2FsbGJhY2tGYWlsZWQ6IFwiQ2FsbGJhY2tGYWlsZWRcIixcbiAgICBDYWxsYmFja1N0YXJ0ZWQ6IFwiQ2FsbGJhY2tTdGFydGVkXCIsXG4gICAgQ2FsbGJhY2tTdWNjZWVkZWQ6IFwiQ2FsbGJhY2tTdWNjZWVkZWRcIixcbiAgICBDYWxsYmFja1RpbWVkT3V0OiBcIkNhbGxiYWNrVGltZWRPdXRcIixcbiAgICBDaGFpbmVkSW52b2tlRmFpbGVkOiBcIkNoYWluZWRJbnZva2VGYWlsZWRcIixcbiAgICBDaGFpbmVkSW52b2tlU3RhcnRlZDogXCJDaGFpbmVkSW52b2tlU3RhcnRlZFwiLFxuICAgIENoYWluZWRJbnZva2VTdG9wcGVkOiBcIkNoYWluZWRJbnZva2VTdG9wcGVkXCIsXG4gICAgQ2hhaW5lZEludm9rZVN1Y2NlZWRlZDogXCJDaGFpbmVkSW52b2tlU3VjY2VlZGVkXCIsXG4gICAgQ2hhaW5lZEludm9rZVRpbWVkT3V0OiBcIkNoYWluZWRJbnZva2VUaW1lZE91dFwiLFxuICAgIENvbnRleHRGYWlsZWQ6IFwiQ29udGV4dEZhaWxlZFwiLFxuICAgIENvbnRleHRTdGFydGVkOiBcIkNvbnRleHRTdGFydGVkXCIsXG4gICAgQ29udGV4dFN1Y2NlZWRlZDogXCJDb250ZXh0U3VjY2VlZGVkXCIsXG4gICAgRXhlY3V0aW9uRmFpbGVkOiBcIkV4ZWN1dGlvbkZhaWxlZFwiLFxuICAgIEV4ZWN1dGlvblN0YXJ0ZWQ6IFwiRXhlY3V0aW9uU3RhcnRlZFwiLFxuICAgIEV4ZWN1dGlvblN0b3BwZWQ6IFwiRXhlY3V0aW9uU3RvcHBlZFwiLFxuICAgIEV4ZWN1dGlvblN1Y2NlZWRlZDogXCJFeGVjdXRpb25TdWNjZWVkZWRcIixcbiAgICBFeGVjdXRpb25UaW1lZE91dDogXCJFeGVjdXRpb25UaW1lZE91dFwiLFxuICAgIEludm9jYXRpb25Db21wbGV0ZWQ6IFwiSW52b2NhdGlvbkNvbXBsZXRlZFwiLFxuICAgIFN0ZXBGYWlsZWQ6IFwiU3RlcEZhaWxlZFwiLFxuICAgIFN0ZXBTdGFydGVkOiBcIlN0ZXBTdGFydGVkXCIsXG4gICAgU3RlcFN1Y2NlZWRlZDogXCJTdGVwU3VjY2VlZGVkXCIsXG4gICAgV2FpdENhbmNlbGxlZDogXCJXYWl0Q2FuY2VsbGVkXCIsXG4gICAgV2FpdFN0YXJ0ZWQ6IFwiV2FpdFN0YXJ0ZWRcIixcbiAgICBXYWl0U3VjY2VlZGVkOiBcIldhaXRTdWNjZWVkZWRcIixcbn07XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIiRDb21tYW5kXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gc21pdGh5Q2xpZW50LkNvbW1hbmQ7IH1cbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19DbGllbnRcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBzbWl0aHlDbGllbnQuQ2xpZW50OyB9XG59KTtcbmV4cG9ydHMuQWRkTGF5ZXJWZXJzaW9uUGVybWlzc2lvbkNvbW1hbmQgPSBBZGRMYXllclZlcnNpb25QZXJtaXNzaW9uQ29tbWFuZDtcbmV4cG9ydHMuQWRkUGVybWlzc2lvbkNvbW1hbmQgPSBBZGRQZXJtaXNzaW9uQ29tbWFuZDtcbmV4cG9ydHMuQXBwbGljYXRpb25Mb2dMZXZlbCA9IEFwcGxpY2F0aW9uTG9nTGV2ZWw7XG5leHBvcnRzLkFyY2hpdGVjdHVyZSA9IEFyY2hpdGVjdHVyZTtcbmV4cG9ydHMuQ2FsbGJhY2tUaW1lb3V0RXhjZXB0aW9uID0gQ2FsbGJhY2tUaW1lb3V0RXhjZXB0aW9uJDE7XG5leHBvcnRzLkNhcGFjaXR5UHJvdmlkZXJMaW1pdEV4Y2VlZGVkRXhjZXB0aW9uID0gQ2FwYWNpdHlQcm92aWRlckxpbWl0RXhjZWVkZWRFeGNlcHRpb24kMTtcbmV4cG9ydHMuQ2FwYWNpdHlQcm92aWRlclByZWRlZmluZWRNZXRyaWNUeXBlID0gQ2FwYWNpdHlQcm92aWRlclByZWRlZmluZWRNZXRyaWNUeXBlO1xuZXhwb3J0cy5DYXBhY2l0eVByb3ZpZGVyU2NhbGluZ01vZGUgPSBDYXBhY2l0eVByb3ZpZGVyU2NhbGluZ01vZGU7XG5leHBvcnRzLkNhcGFjaXR5UHJvdmlkZXJTdGF0ZSA9IENhcGFjaXR5UHJvdmlkZXJTdGF0ZTtcbmV4cG9ydHMuQ2hlY2twb2ludER1cmFibGVFeGVjdXRpb25Db21tYW5kID0gQ2hlY2twb2ludER1cmFibGVFeGVjdXRpb25Db21tYW5kO1xuZXhwb3J0cy5Db2RlU2lnbmluZ0NvbmZpZ05vdEZvdW5kRXhjZXB0aW9uID0gQ29kZVNpZ25pbmdDb25maWdOb3RGb3VuZEV4Y2VwdGlvbiQxO1xuZXhwb3J0cy5Db2RlU2lnbmluZ1BvbGljeSA9IENvZGVTaWduaW5nUG9saWN5O1xuZXhwb3J0cy5Db2RlU3RvcmFnZUV4Y2VlZGVkRXhjZXB0aW9uID0gQ29kZVN0b3JhZ2VFeGNlZWRlZEV4Y2VwdGlvbiQxO1xuZXhwb3J0cy5Db2RlVmVyaWZpY2F0aW9uRmFpbGVkRXhjZXB0aW9uID0gQ29kZVZlcmlmaWNhdGlvbkZhaWxlZEV4Y2VwdGlvbiQxO1xuZXhwb3J0cy5DcmVhdGVBbGlhc0NvbW1hbmQgPSBDcmVhdGVBbGlhc0NvbW1hbmQ7XG5leHBvcnRzLkNyZWF0ZUNhcGFjaXR5UHJvdmlkZXJDb21tYW5kID0gQ3JlYXRlQ2FwYWNpdHlQcm92aWRlckNvbW1hbmQ7XG5leHBvcnRzLkNyZWF0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZCA9IENyZWF0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZDtcbmV4cG9ydHMuQ3JlYXRlRXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZCA9IENyZWF0ZUV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmQ7XG5leHBvcnRzLkNyZWF0ZUZ1bmN0aW9uQ29tbWFuZCA9IENyZWF0ZUZ1bmN0aW9uQ29tbWFuZDtcbmV4cG9ydHMuQ3JlYXRlRnVuY3Rpb25VcmxDb25maWdDb21tYW5kID0gQ3JlYXRlRnVuY3Rpb25VcmxDb25maWdDb21tYW5kO1xuZXhwb3J0cy5EZWxldGVBbGlhc0NvbW1hbmQgPSBEZWxldGVBbGlhc0NvbW1hbmQ7XG5leHBvcnRzLkRlbGV0ZUNhcGFjaXR5UHJvdmlkZXJDb21tYW5kID0gRGVsZXRlQ2FwYWNpdHlQcm92aWRlckNvbW1hbmQ7XG5leHBvcnRzLkRlbGV0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZCA9IERlbGV0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZDtcbmV4cG9ydHMuRGVsZXRlRXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZCA9IERlbGV0ZUV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmQ7XG5leHBvcnRzLkRlbGV0ZUZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdDb21tYW5kID0gRGVsZXRlRnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmQ7XG5leHBvcnRzLkRlbGV0ZUZ1bmN0aW9uQ29tbWFuZCA9IERlbGV0ZUZ1bmN0aW9uQ29tbWFuZDtcbmV4cG9ydHMuRGVsZXRlRnVuY3Rpb25Db25jdXJyZW5jeUNvbW1hbmQgPSBEZWxldGVGdW5jdGlvbkNvbmN1cnJlbmN5Q29tbWFuZDtcbmV4cG9ydHMuRGVsZXRlRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmQgPSBEZWxldGVGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZDtcbmV4cG9ydHMuRGVsZXRlRnVuY3Rpb25VcmxDb25maWdDb21tYW5kID0gRGVsZXRlRnVuY3Rpb25VcmxDb25maWdDb21tYW5kO1xuZXhwb3J0cy5EZWxldGVMYXllclZlcnNpb25Db21tYW5kID0gRGVsZXRlTGF5ZXJWZXJzaW9uQ29tbWFuZDtcbmV4cG9ydHMuRGVsZXRlUHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ0NvbW1hbmQgPSBEZWxldGVQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnQ29tbWFuZDtcbmV4cG9ydHMuRHVyYWJsZUV4ZWN1dGlvbkFscmVhZHlTdGFydGVkRXhjZXB0aW9uID0gRHVyYWJsZUV4ZWN1dGlvbkFscmVhZHlTdGFydGVkRXhjZXB0aW9uJDE7XG5leHBvcnRzLkVDMkFjY2Vzc0RlbmllZEV4Y2VwdGlvbiA9IEVDMkFjY2Vzc0RlbmllZEV4Y2VwdGlvbiQxO1xuZXhwb3J0cy5FQzJUaHJvdHRsZWRFeGNlcHRpb24gPSBFQzJUaHJvdHRsZWRFeGNlcHRpb24kMTtcbmV4cG9ydHMuRUMyVW5leHBlY3RlZEV4Y2VwdGlvbiA9IEVDMlVuZXhwZWN0ZWRFeGNlcHRpb24kMTtcbmV4cG9ydHMuRUZTSU9FeGNlcHRpb24gPSBFRlNJT0V4Y2VwdGlvbiQxO1xuZXhwb3J0cy5FRlNNb3VudENvbm5lY3Rpdml0eUV4Y2VwdGlvbiA9IEVGU01vdW50Q29ubmVjdGl2aXR5RXhjZXB0aW9uJDE7XG5leHBvcnRzLkVGU01vdW50RmFpbHVyZUV4Y2VwdGlvbiA9IEVGU01vdW50RmFpbHVyZUV4Y2VwdGlvbiQxO1xuZXhwb3J0cy5FRlNNb3VudFRpbWVvdXRFeGNlcHRpb24gPSBFRlNNb3VudFRpbWVvdXRFeGNlcHRpb24kMTtcbmV4cG9ydHMuRU5JTGltaXRSZWFjaGVkRXhjZXB0aW9uID0gRU5JTGltaXRSZWFjaGVkRXhjZXB0aW9uJDE7XG5leHBvcnRzLkVuZFBvaW50VHlwZSA9IEVuZFBvaW50VHlwZTtcbmV4cG9ydHMuRXZlbnRTb3VyY2VNYXBwaW5nTWV0cmljID0gRXZlbnRTb3VyY2VNYXBwaW5nTWV0cmljO1xuZXhwb3J0cy5FdmVudFNvdXJjZVBvc2l0aW9uID0gRXZlbnRTb3VyY2VQb3NpdGlvbjtcbmV4cG9ydHMuRXZlbnRUeXBlID0gRXZlbnRUeXBlO1xuZXhwb3J0cy5FeGVjdXRpb25TdGF0dXMgPSBFeGVjdXRpb25TdGF0dXM7XG5leHBvcnRzLkZ1bGxEb2N1bWVudCA9IEZ1bGxEb2N1bWVudDtcbmV4cG9ydHMuRnVuY3Rpb25SZXNwb25zZVR5cGUgPSBGdW5jdGlvblJlc3BvbnNlVHlwZTtcbmV4cG9ydHMuRnVuY3Rpb25VcmxBdXRoVHlwZSA9IEZ1bmN0aW9uVXJsQXV0aFR5cGU7XG5leHBvcnRzLkZ1bmN0aW9uVmVyc2lvbiA9IEZ1bmN0aW9uVmVyc2lvbjtcbmV4cG9ydHMuRnVuY3Rpb25WZXJzaW9uTGF0ZXN0UHVibGlzaGVkID0gRnVuY3Rpb25WZXJzaW9uTGF0ZXN0UHVibGlzaGVkO1xuZXhwb3J0cy5GdW5jdGlvblZlcnNpb25zUGVyQ2FwYWNpdHlQcm92aWRlckxpbWl0RXhjZWVkZWRFeGNlcHRpb24gPSBGdW5jdGlvblZlcnNpb25zUGVyQ2FwYWNpdHlQcm92aWRlckxpbWl0RXhjZWVkZWRFeGNlcHRpb24kMTtcbmV4cG9ydHMuR2V0QWNjb3VudFNldHRpbmdzQ29tbWFuZCA9IEdldEFjY291bnRTZXR0aW5nc0NvbW1hbmQ7XG5leHBvcnRzLkdldEFsaWFzQ29tbWFuZCA9IEdldEFsaWFzQ29tbWFuZDtcbmV4cG9ydHMuR2V0Q2FwYWNpdHlQcm92aWRlckNvbW1hbmQgPSBHZXRDYXBhY2l0eVByb3ZpZGVyQ29tbWFuZDtcbmV4cG9ydHMuR2V0Q29kZVNpZ25pbmdDb25maWdDb21tYW5kID0gR2V0Q29kZVNpZ25pbmdDb25maWdDb21tYW5kO1xuZXhwb3J0cy5HZXREdXJhYmxlRXhlY3V0aW9uQ29tbWFuZCA9IEdldER1cmFibGVFeGVjdXRpb25Db21tYW5kO1xuZXhwb3J0cy5HZXREdXJhYmxlRXhlY3V0aW9uSGlzdG9yeUNvbW1hbmQgPSBHZXREdXJhYmxlRXhlY3V0aW9uSGlzdG9yeUNvbW1hbmQ7XG5leHBvcnRzLkdldER1cmFibGVFeGVjdXRpb25TdGF0ZUNvbW1hbmQgPSBHZXREdXJhYmxlRXhlY3V0aW9uU3RhdGVDb21tYW5kO1xuZXhwb3J0cy5HZXRFdmVudFNvdXJjZU1hcHBpbmdDb21tYW5kID0gR2V0RXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZDtcbmV4cG9ydHMuR2V0RnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmQgPSBHZXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZDtcbmV4cG9ydHMuR2V0RnVuY3Rpb25Db21tYW5kID0gR2V0RnVuY3Rpb25Db21tYW5kO1xuZXhwb3J0cy5HZXRGdW5jdGlvbkNvbmN1cnJlbmN5Q29tbWFuZCA9IEdldEZ1bmN0aW9uQ29uY3VycmVuY3lDb21tYW5kO1xuZXhwb3J0cy5HZXRGdW5jdGlvbkNvbmZpZ3VyYXRpb25Db21tYW5kID0gR2V0RnVuY3Rpb25Db25maWd1cmF0aW9uQ29tbWFuZDtcbmV4cG9ydHMuR2V0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmQgPSBHZXRGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZDtcbmV4cG9ydHMuR2V0RnVuY3Rpb25SZWN1cnNpb25Db25maWdDb21tYW5kID0gR2V0RnVuY3Rpb25SZWN1cnNpb25Db25maWdDb21tYW5kO1xuZXhwb3J0cy5HZXRGdW5jdGlvblNjYWxpbmdDb25maWdDb21tYW5kID0gR2V0RnVuY3Rpb25TY2FsaW5nQ29uZmlnQ29tbWFuZDtcbmV4cG9ydHMuR2V0RnVuY3Rpb25VcmxDb25maWdDb21tYW5kID0gR2V0RnVuY3Rpb25VcmxDb25maWdDb21tYW5kO1xuZXhwb3J0cy5HZXRMYXllclZlcnNpb25CeUFybkNvbW1hbmQgPSBHZXRMYXllclZlcnNpb25CeUFybkNvbW1hbmQ7XG5leHBvcnRzLkdldExheWVyVmVyc2lvbkNvbW1hbmQgPSBHZXRMYXllclZlcnNpb25Db21tYW5kO1xuZXhwb3J0cy5HZXRMYXllclZlcnNpb25Qb2xpY3lDb21tYW5kID0gR2V0TGF5ZXJWZXJzaW9uUG9saWN5Q29tbWFuZDtcbmV4cG9ydHMuR2V0UG9saWN5Q29tbWFuZCA9IEdldFBvbGljeUNvbW1hbmQ7XG5leHBvcnRzLkdldFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdDb21tYW5kID0gR2V0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ0NvbW1hbmQ7XG5leHBvcnRzLkdldFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnQ29tbWFuZCA9IEdldFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnQ29tbWFuZDtcbmV4cG9ydHMuSW52YWxpZENvZGVTaWduYXR1cmVFeGNlcHRpb24gPSBJbnZhbGlkQ29kZVNpZ25hdHVyZUV4Y2VwdGlvbiQxO1xuZXhwb3J0cy5JbnZhbGlkUGFyYW1ldGVyVmFsdWVFeGNlcHRpb24gPSBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFeGNlcHRpb24kMTtcbmV4cG9ydHMuSW52YWxpZFJlcXVlc3RDb250ZW50RXhjZXB0aW9uID0gSW52YWxpZFJlcXVlc3RDb250ZW50RXhjZXB0aW9uJDE7XG5leHBvcnRzLkludmFsaWRSdW50aW1lRXhjZXB0aW9uID0gSW52YWxpZFJ1bnRpbWVFeGNlcHRpb24kMTtcbmV4cG9ydHMuSW52YWxpZFNlY3VyaXR5R3JvdXBJREV4Y2VwdGlvbiA9IEludmFsaWRTZWN1cml0eUdyb3VwSURFeGNlcHRpb24kMTtcbmV4cG9ydHMuSW52YWxpZFN1Ym5ldElERXhjZXB0aW9uID0gSW52YWxpZFN1Ym5ldElERXhjZXB0aW9uJDE7XG5leHBvcnRzLkludmFsaWRaaXBGaWxlRXhjZXB0aW9uID0gSW52YWxpZFppcEZpbGVFeGNlcHRpb24kMTtcbmV4cG9ydHMuSW52b2NhdGlvblR5cGUgPSBJbnZvY2F0aW9uVHlwZTtcbmV4cG9ydHMuSW52b2tlQXN5bmNDb21tYW5kID0gSW52b2tlQXN5bmNDb21tYW5kO1xuZXhwb3J0cy5JbnZva2VDb21tYW5kID0gSW52b2tlQ29tbWFuZDtcbmV4cG9ydHMuSW52b2tlTW9kZSA9IEludm9rZU1vZGU7XG5leHBvcnRzLkludm9rZVdpdGhSZXNwb25zZVN0cmVhbUNvbW1hbmQgPSBJbnZva2VXaXRoUmVzcG9uc2VTdHJlYW1Db21tYW5kO1xuZXhwb3J0cy5LTVNBY2Nlc3NEZW5pZWRFeGNlcHRpb24gPSBLTVNBY2Nlc3NEZW5pZWRFeGNlcHRpb24kMTtcbmV4cG9ydHMuS01TRGlzYWJsZWRFeGNlcHRpb24gPSBLTVNEaXNhYmxlZEV4Y2VwdGlvbiQxO1xuZXhwb3J0cy5LTVNJbnZhbGlkU3RhdGVFeGNlcHRpb24gPSBLTVNJbnZhbGlkU3RhdGVFeGNlcHRpb24kMTtcbmV4cG9ydHMuS01TTm90Rm91bmRFeGNlcHRpb24gPSBLTVNOb3RGb3VuZEV4Y2VwdGlvbiQxO1xuZXhwb3J0cy5LYWZrYVNjaGVtYVJlZ2lzdHJ5QXV0aFR5cGUgPSBLYWZrYVNjaGVtYVJlZ2lzdHJ5QXV0aFR5cGU7XG5leHBvcnRzLkthZmthU2NoZW1hVmFsaWRhdGlvbkF0dHJpYnV0ZSA9IEthZmthU2NoZW1hVmFsaWRhdGlvbkF0dHJpYnV0ZTtcbmV4cG9ydHMuTGFtYmRhID0gTGFtYmRhO1xuZXhwb3J0cy5MYW1iZGFDbGllbnQgPSBMYW1iZGFDbGllbnQ7XG5leHBvcnRzLkxhbWJkYVNlcnZpY2VFeGNlcHRpb24gPSBMYW1iZGFTZXJ2aWNlRXhjZXB0aW9uJDE7XG5leHBvcnRzLkxhc3RVcGRhdGVTdGF0dXMgPSBMYXN0VXBkYXRlU3RhdHVzO1xuZXhwb3J0cy5MYXN0VXBkYXRlU3RhdHVzUmVhc29uQ29kZSA9IExhc3RVcGRhdGVTdGF0dXNSZWFzb25Db2RlO1xuZXhwb3J0cy5MaXN0QWxpYXNlc0NvbW1hbmQgPSBMaXN0QWxpYXNlc0NvbW1hbmQ7XG5leHBvcnRzLkxpc3RDYXBhY2l0eVByb3ZpZGVyc0NvbW1hbmQgPSBMaXN0Q2FwYWNpdHlQcm92aWRlcnNDb21tYW5kO1xuZXhwb3J0cy5MaXN0Q29kZVNpZ25pbmdDb25maWdzQ29tbWFuZCA9IExpc3RDb2RlU2lnbmluZ0NvbmZpZ3NDb21tYW5kO1xuZXhwb3J0cy5MaXN0RHVyYWJsZUV4ZWN1dGlvbnNCeUZ1bmN0aW9uQ29tbWFuZCA9IExpc3REdXJhYmxlRXhlY3V0aW9uc0J5RnVuY3Rpb25Db21tYW5kO1xuZXhwb3J0cy5MaXN0RXZlbnRTb3VyY2VNYXBwaW5nc0NvbW1hbmQgPSBMaXN0RXZlbnRTb3VyY2VNYXBwaW5nc0NvbW1hbmQ7XG5leHBvcnRzLkxpc3RGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnc0NvbW1hbmQgPSBMaXN0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ3NDb21tYW5kO1xuZXhwb3J0cy5MaXN0RnVuY3Rpb25VcmxDb25maWdzQ29tbWFuZCA9IExpc3RGdW5jdGlvblVybENvbmZpZ3NDb21tYW5kO1xuZXhwb3J0cy5MaXN0RnVuY3Rpb25WZXJzaW9uc0J5Q2FwYWNpdHlQcm92aWRlckNvbW1hbmQgPSBMaXN0RnVuY3Rpb25WZXJzaW9uc0J5Q2FwYWNpdHlQcm92aWRlckNvbW1hbmQ7XG5leHBvcnRzLkxpc3RGdW5jdGlvbnNCeUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZCA9IExpc3RGdW5jdGlvbnNCeUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZDtcbmV4cG9ydHMuTGlzdEZ1bmN0aW9uc0NvbW1hbmQgPSBMaXN0RnVuY3Rpb25zQ29tbWFuZDtcbmV4cG9ydHMuTGlzdExheWVyVmVyc2lvbnNDb21tYW5kID0gTGlzdExheWVyVmVyc2lvbnNDb21tYW5kO1xuZXhwb3J0cy5MaXN0TGF5ZXJzQ29tbWFuZCA9IExpc3RMYXllcnNDb21tYW5kO1xuZXhwb3J0cy5MaXN0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ3NDb21tYW5kID0gTGlzdFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdzQ29tbWFuZDtcbmV4cG9ydHMuTGlzdFRhZ3NDb21tYW5kID0gTGlzdFRhZ3NDb21tYW5kO1xuZXhwb3J0cy5MaXN0VmVyc2lvbnNCeUZ1bmN0aW9uQ29tbWFuZCA9IExpc3RWZXJzaW9uc0J5RnVuY3Rpb25Db21tYW5kO1xuZXhwb3J0cy5Mb2dGb3JtYXQgPSBMb2dGb3JtYXQ7XG5leHBvcnRzLkxvZ1R5cGUgPSBMb2dUeXBlO1xuZXhwb3J0cy5Ob1B1Ymxpc2hlZFZlcnNpb25FeGNlcHRpb24gPSBOb1B1Ymxpc2hlZFZlcnNpb25FeGNlcHRpb24kMTtcbmV4cG9ydHMuT3BlcmF0aW9uQWN0aW9uID0gT3BlcmF0aW9uQWN0aW9uO1xuZXhwb3J0cy5PcGVyYXRpb25TdGF0dXMgPSBPcGVyYXRpb25TdGF0dXM7XG5leHBvcnRzLk9wZXJhdGlvblR5cGUgPSBPcGVyYXRpb25UeXBlO1xuZXhwb3J0cy5QYWNrYWdlVHlwZSA9IFBhY2thZ2VUeXBlO1xuZXhwb3J0cy5Qb2xpY3lMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbiA9IFBvbGljeUxlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uJDE7XG5leHBvcnRzLlByZWNvbmRpdGlvbkZhaWxlZEV4Y2VwdGlvbiA9IFByZWNvbmRpdGlvbkZhaWxlZEV4Y2VwdGlvbiQxO1xuZXhwb3J0cy5Qcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnTm90Rm91bmRFeGNlcHRpb24gPSBQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnTm90Rm91bmRFeGNlcHRpb24kMTtcbmV4cG9ydHMuUHJvdmlzaW9uZWRDb25jdXJyZW5jeVN0YXR1c0VudW0gPSBQcm92aXNpb25lZENvbmN1cnJlbmN5U3RhdHVzRW51bTtcbmV4cG9ydHMuUHVibGlzaExheWVyVmVyc2lvbkNvbW1hbmQgPSBQdWJsaXNoTGF5ZXJWZXJzaW9uQ29tbWFuZDtcbmV4cG9ydHMuUHVibGlzaFZlcnNpb25Db21tYW5kID0gUHVibGlzaFZlcnNpb25Db21tYW5kO1xuZXhwb3J0cy5QdXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZCA9IFB1dEZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdDb21tYW5kO1xuZXhwb3J0cy5QdXRGdW5jdGlvbkNvbmN1cnJlbmN5Q29tbWFuZCA9IFB1dEZ1bmN0aW9uQ29uY3VycmVuY3lDb21tYW5kO1xuZXhwb3J0cy5QdXRGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZCA9IFB1dEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdDb21tYW5kO1xuZXhwb3J0cy5QdXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZ0NvbW1hbmQgPSBQdXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZ0NvbW1hbmQ7XG5leHBvcnRzLlB1dEZ1bmN0aW9uU2NhbGluZ0NvbmZpZ0NvbW1hbmQgPSBQdXRGdW5jdGlvblNjYWxpbmdDb25maWdDb21tYW5kO1xuZXhwb3J0cy5QdXRQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnQ29tbWFuZCA9IFB1dFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdDb21tYW5kO1xuZXhwb3J0cy5QdXRSdW50aW1lTWFuYWdlbWVudENvbmZpZ0NvbW1hbmQgPSBQdXRSdW50aW1lTWFuYWdlbWVudENvbmZpZ0NvbW1hbmQ7XG5leHBvcnRzLlJlY3Vyc2l2ZUludm9jYXRpb25FeGNlcHRpb24gPSBSZWN1cnNpdmVJbnZvY2F0aW9uRXhjZXB0aW9uJDE7XG5leHBvcnRzLlJlY3Vyc2l2ZUxvb3AgPSBSZWN1cnNpdmVMb29wO1xuZXhwb3J0cy5SZW1vdmVMYXllclZlcnNpb25QZXJtaXNzaW9uQ29tbWFuZCA9IFJlbW92ZUxheWVyVmVyc2lvblBlcm1pc3Npb25Db21tYW5kO1xuZXhwb3J0cy5SZW1vdmVQZXJtaXNzaW9uQ29tbWFuZCA9IFJlbW92ZVBlcm1pc3Npb25Db21tYW5kO1xuZXhwb3J0cy5SZXF1ZXN0VG9vTGFyZ2VFeGNlcHRpb24gPSBSZXF1ZXN0VG9vTGFyZ2VFeGNlcHRpb24kMTtcbmV4cG9ydHMuUmVzb3VyY2VDb25mbGljdEV4Y2VwdGlvbiA9IFJlc291cmNlQ29uZmxpY3RFeGNlcHRpb24kMTtcbmV4cG9ydHMuUmVzb3VyY2VJblVzZUV4Y2VwdGlvbiA9IFJlc291cmNlSW5Vc2VFeGNlcHRpb24kMTtcbmV4cG9ydHMuUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvbiA9IFJlc291cmNlTm90Rm91bmRFeGNlcHRpb24kMTtcbmV4cG9ydHMuUmVzb3VyY2VOb3RSZWFkeUV4Y2VwdGlvbiA9IFJlc291cmNlTm90UmVhZHlFeGNlcHRpb24kMTtcbmV4cG9ydHMuUmVzcG9uc2VTdHJlYW1pbmdJbnZvY2F0aW9uVHlwZSA9IFJlc3BvbnNlU3RyZWFtaW5nSW52b2NhdGlvblR5cGU7XG5leHBvcnRzLlJ1bnRpbWUgPSBSdW50aW1lO1xuZXhwb3J0cy5TY2hlbWFSZWdpc3RyeUV2ZW50UmVjb3JkRm9ybWF0ID0gU2NoZW1hUmVnaXN0cnlFdmVudFJlY29yZEZvcm1hdDtcbmV4cG9ydHMuU2VuZER1cmFibGVFeGVjdXRpb25DYWxsYmFja0ZhaWx1cmVDb21tYW5kID0gU2VuZER1cmFibGVFeGVjdXRpb25DYWxsYmFja0ZhaWx1cmVDb21tYW5kO1xuZXhwb3J0cy5TZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrSGVhcnRiZWF0Q29tbWFuZCA9IFNlbmREdXJhYmxlRXhlY3V0aW9uQ2FsbGJhY2tIZWFydGJlYXRDb21tYW5kO1xuZXhwb3J0cy5TZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrU3VjY2Vzc0NvbW1hbmQgPSBTZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrU3VjY2Vzc0NvbW1hbmQ7XG5leHBvcnRzLlNlcmlhbGl6ZWRSZXF1ZXN0RW50aXR5VG9vTGFyZ2VFeGNlcHRpb24gPSBTZXJpYWxpemVkUmVxdWVzdEVudGl0eVRvb0xhcmdlRXhjZXB0aW9uJDE7XG5leHBvcnRzLlNlcnZpY2VFeGNlcHRpb24gPSBTZXJ2aWNlRXhjZXB0aW9uJDE7XG5leHBvcnRzLlNuYXBTdGFydEFwcGx5T24gPSBTbmFwU3RhcnRBcHBseU9uO1xuZXhwb3J0cy5TbmFwU3RhcnRFeGNlcHRpb24gPSBTbmFwU3RhcnRFeGNlcHRpb24kMTtcbmV4cG9ydHMuU25hcFN0YXJ0Tm90UmVhZHlFeGNlcHRpb24gPSBTbmFwU3RhcnROb3RSZWFkeUV4Y2VwdGlvbiQxO1xuZXhwb3J0cy5TbmFwU3RhcnRPcHRpbWl6YXRpb25TdGF0dXMgPSBTbmFwU3RhcnRPcHRpbWl6YXRpb25TdGF0dXM7XG5leHBvcnRzLlNuYXBTdGFydFRpbWVvdXRFeGNlcHRpb24gPSBTbmFwU3RhcnRUaW1lb3V0RXhjZXB0aW9uJDE7XG5leHBvcnRzLlNvdXJjZUFjY2Vzc1R5cGUgPSBTb3VyY2VBY2Nlc3NUeXBlO1xuZXhwb3J0cy5TdGF0ZSA9IFN0YXRlO1xuZXhwb3J0cy5TdGF0ZVJlYXNvbkNvZGUgPSBTdGF0ZVJlYXNvbkNvZGU7XG5leHBvcnRzLlN0b3BEdXJhYmxlRXhlY3V0aW9uQ29tbWFuZCA9IFN0b3BEdXJhYmxlRXhlY3V0aW9uQ29tbWFuZDtcbmV4cG9ydHMuU3VibmV0SVBBZGRyZXNzTGltaXRSZWFjaGVkRXhjZXB0aW9uID0gU3VibmV0SVBBZGRyZXNzTGltaXRSZWFjaGVkRXhjZXB0aW9uJDE7XG5leHBvcnRzLlN5c3RlbUxvZ0xldmVsID0gU3lzdGVtTG9nTGV2ZWw7XG5leHBvcnRzLlRhZ1Jlc291cmNlQ29tbWFuZCA9IFRhZ1Jlc291cmNlQ29tbWFuZDtcbmV4cG9ydHMuVGVuYW50SXNvbGF0aW9uTW9kZSA9IFRlbmFudElzb2xhdGlvbk1vZGU7XG5leHBvcnRzLlRocm90dGxlUmVhc29uID0gVGhyb3R0bGVSZWFzb247XG5leHBvcnRzLlRvb01hbnlSZXF1ZXN0c0V4Y2VwdGlvbiA9IFRvb01hbnlSZXF1ZXN0c0V4Y2VwdGlvbiQxO1xuZXhwb3J0cy5UcmFjaW5nTW9kZSA9IFRyYWNpbmdNb2RlO1xuZXhwb3J0cy5VbnN1cHBvcnRlZE1lZGlhVHlwZUV4Y2VwdGlvbiA9IFVuc3VwcG9ydGVkTWVkaWFUeXBlRXhjZXB0aW9uJDE7XG5leHBvcnRzLlVudGFnUmVzb3VyY2VDb21tYW5kID0gVW50YWdSZXNvdXJjZUNvbW1hbmQ7XG5leHBvcnRzLlVwZGF0ZUFsaWFzQ29tbWFuZCA9IFVwZGF0ZUFsaWFzQ29tbWFuZDtcbmV4cG9ydHMuVXBkYXRlQ2FwYWNpdHlQcm92aWRlckNvbW1hbmQgPSBVcGRhdGVDYXBhY2l0eVByb3ZpZGVyQ29tbWFuZDtcbmV4cG9ydHMuVXBkYXRlQ29kZVNpZ25pbmdDb25maWdDb21tYW5kID0gVXBkYXRlQ29kZVNpZ25pbmdDb25maWdDb21tYW5kO1xuZXhwb3J0cy5VcGRhdGVFdmVudFNvdXJjZU1hcHBpbmdDb21tYW5kID0gVXBkYXRlRXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZDtcbmV4cG9ydHMuVXBkYXRlRnVuY3Rpb25Db2RlQ29tbWFuZCA9IFVwZGF0ZUZ1bmN0aW9uQ29kZUNvbW1hbmQ7XG5leHBvcnRzLlVwZGF0ZUZ1bmN0aW9uQ29uZmlndXJhdGlvbkNvbW1hbmQgPSBVcGRhdGVGdW5jdGlvbkNvbmZpZ3VyYXRpb25Db21tYW5kO1xuZXhwb3J0cy5VcGRhdGVGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZCA9IFVwZGF0ZUZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdDb21tYW5kO1xuZXhwb3J0cy5VcGRhdGVGdW5jdGlvblVybENvbmZpZ0NvbW1hbmQgPSBVcGRhdGVGdW5jdGlvblVybENvbmZpZ0NvbW1hbmQ7XG5leHBvcnRzLlVwZGF0ZVJ1bnRpbWVPbiA9IFVwZGF0ZVJ1bnRpbWVPbjtcbmV4cG9ydHMucGFnaW5hdGVHZXREdXJhYmxlRXhlY3V0aW9uSGlzdG9yeSA9IHBhZ2luYXRlR2V0RHVyYWJsZUV4ZWN1dGlvbkhpc3Rvcnk7XG5leHBvcnRzLnBhZ2luYXRlR2V0RHVyYWJsZUV4ZWN1dGlvblN0YXRlID0gcGFnaW5hdGVHZXREdXJhYmxlRXhlY3V0aW9uU3RhdGU7XG5leHBvcnRzLnBhZ2luYXRlTGlzdEFsaWFzZXMgPSBwYWdpbmF0ZUxpc3RBbGlhc2VzO1xuZXhwb3J0cy5wYWdpbmF0ZUxpc3RDYXBhY2l0eVByb3ZpZGVycyA9IHBhZ2luYXRlTGlzdENhcGFjaXR5UHJvdmlkZXJzO1xuZXhwb3J0cy5wYWdpbmF0ZUxpc3RDb2RlU2lnbmluZ0NvbmZpZ3MgPSBwYWdpbmF0ZUxpc3RDb2RlU2lnbmluZ0NvbmZpZ3M7XG5leHBvcnRzLnBhZ2luYXRlTGlzdER1cmFibGVFeGVjdXRpb25zQnlGdW5jdGlvbiA9IHBhZ2luYXRlTGlzdER1cmFibGVFeGVjdXRpb25zQnlGdW5jdGlvbjtcbmV4cG9ydHMucGFnaW5hdGVMaXN0RXZlbnRTb3VyY2VNYXBwaW5ncyA9IHBhZ2luYXRlTGlzdEV2ZW50U291cmNlTWFwcGluZ3M7XG5leHBvcnRzLnBhZ2luYXRlTGlzdEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdzID0gcGFnaW5hdGVMaXN0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ3M7XG5leHBvcnRzLnBhZ2luYXRlTGlzdEZ1bmN0aW9uVXJsQ29uZmlncyA9IHBhZ2luYXRlTGlzdEZ1bmN0aW9uVXJsQ29uZmlncztcbmV4cG9ydHMucGFnaW5hdGVMaXN0RnVuY3Rpb25WZXJzaW9uc0J5Q2FwYWNpdHlQcm92aWRlciA9IHBhZ2luYXRlTGlzdEZ1bmN0aW9uVmVyc2lvbnNCeUNhcGFjaXR5UHJvdmlkZXI7XG5leHBvcnRzLnBhZ2luYXRlTGlzdEZ1bmN0aW9ucyA9IHBhZ2luYXRlTGlzdEZ1bmN0aW9ucztcbmV4cG9ydHMucGFnaW5hdGVMaXN0RnVuY3Rpb25zQnlDb2RlU2lnbmluZ0NvbmZpZyA9IHBhZ2luYXRlTGlzdEZ1bmN0aW9uc0J5Q29kZVNpZ25pbmdDb25maWc7XG5leHBvcnRzLnBhZ2luYXRlTGlzdExheWVyVmVyc2lvbnMgPSBwYWdpbmF0ZUxpc3RMYXllclZlcnNpb25zO1xuZXhwb3J0cy5wYWdpbmF0ZUxpc3RMYXllcnMgPSBwYWdpbmF0ZUxpc3RMYXllcnM7XG5leHBvcnRzLnBhZ2luYXRlTGlzdFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdzID0gcGFnaW5hdGVMaXN0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ3M7XG5leHBvcnRzLnBhZ2luYXRlTGlzdFZlcnNpb25zQnlGdW5jdGlvbiA9IHBhZ2luYXRlTGlzdFZlcnNpb25zQnlGdW5jdGlvbjtcbmV4cG9ydHMud2FpdEZvckZ1bmN0aW9uQWN0aXZlID0gd2FpdEZvckZ1bmN0aW9uQWN0aXZlO1xuZXhwb3J0cy53YWl0Rm9yRnVuY3Rpb25BY3RpdmVWMiA9IHdhaXRGb3JGdW5jdGlvbkFjdGl2ZVYyO1xuZXhwb3J0cy53YWl0Rm9yRnVuY3Rpb25FeGlzdHMgPSB3YWl0Rm9yRnVuY3Rpb25FeGlzdHM7XG5leHBvcnRzLndhaXRGb3JGdW5jdGlvblVwZGF0ZWQgPSB3YWl0Rm9yRnVuY3Rpb25VcGRhdGVkO1xuZXhwb3J0cy53YWl0Rm9yRnVuY3Rpb25VcGRhdGVkVjIgPSB3YWl0Rm9yRnVuY3Rpb25VcGRhdGVkVjI7XG5leHBvcnRzLndhaXRGb3JQdWJsaXNoZWRWZXJzaW9uQWN0aXZlID0gd2FpdEZvclB1Ymxpc2hlZFZlcnNpb25BY3RpdmU7XG5leHBvcnRzLndhaXRVbnRpbEZ1bmN0aW9uQWN0aXZlID0gd2FpdFVudGlsRnVuY3Rpb25BY3RpdmU7XG5leHBvcnRzLndhaXRVbnRpbEZ1bmN0aW9uQWN0aXZlVjIgPSB3YWl0VW50aWxGdW5jdGlvbkFjdGl2ZVYyO1xuZXhwb3J0cy53YWl0VW50aWxGdW5jdGlvbkV4aXN0cyA9IHdhaXRVbnRpbEZ1bmN0aW9uRXhpc3RzO1xuZXhwb3J0cy53YWl0VW50aWxGdW5jdGlvblVwZGF0ZWQgPSB3YWl0VW50aWxGdW5jdGlvblVwZGF0ZWQ7XG5leHBvcnRzLndhaXRVbnRpbEZ1bmN0aW9uVXBkYXRlZFYyID0gd2FpdFVudGlsRnVuY3Rpb25VcGRhdGVkVjI7XG5leHBvcnRzLndhaXRVbnRpbFB1Ymxpc2hlZFZlcnNpb25BY3RpdmUgPSB3YWl0VW50aWxQdWJsaXNoZWRWZXJzaW9uQWN0aXZlO1xuIiwgIid1c2Ugc3RyaWN0JztcblxudmFyIHByb3RvY29sSHR0cCA9IHJlcXVpcmUoJ0BzbWl0aHkvcHJvdG9jb2wtaHR0cCcpO1xuXG5mdW5jdGlvbiBhZGRFeHBlY3RDb250aW51ZU1pZGRsZXdhcmUob3B0aW9ucykge1xuICAgIHJldHVybiAobmV4dCkgPT4gYXN5bmMgKGFyZ3MpID0+IHtcbiAgICAgICAgY29uc3QgeyByZXF1ZXN0IH0gPSBhcmdzO1xuICAgICAgICBpZiAob3B0aW9ucy5leHBlY3RDb250aW51ZUhlYWRlciAhPT0gZmFsc2UgJiZcbiAgICAgICAgICAgIHByb3RvY29sSHR0cC5IdHRwUmVxdWVzdC5pc0luc3RhbmNlKHJlcXVlc3QpICYmXG4gICAgICAgICAgICByZXF1ZXN0LmJvZHkgJiZcbiAgICAgICAgICAgIG9wdGlvbnMucnVudGltZSA9PT0gXCJub2RlXCIgJiZcbiAgICAgICAgICAgIG9wdGlvbnMucmVxdWVzdEhhbmRsZXI/LmNvbnN0cnVjdG9yPy5uYW1lICE9PSBcIkZldGNoSHR0cEhhbmRsZXJcIikge1xuICAgICAgICAgICAgbGV0IHNlbmRIZWFkZXIgPSB0cnVlO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLmV4cGVjdENvbnRpbnVlSGVhZGVyID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYm9keUxlbmd0aCA9IE51bWJlcihyZXF1ZXN0LmhlYWRlcnM/LltcImNvbnRlbnQtbGVuZ3RoXCJdKSA/PyBvcHRpb25zLmJvZHlMZW5ndGhDaGVja2VyPy4ocmVxdWVzdC5ib2R5KSA/PyBJbmZpbml0eTtcbiAgICAgICAgICAgICAgICAgICAgc2VuZEhlYWRlciA9IGJvZHlMZW5ndGggPj0gb3B0aW9ucy5leHBlY3RDb250aW51ZUhlYWRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2F0Y2ggKGUpIHsgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgc2VuZEhlYWRlciA9ICEhb3B0aW9ucy5leHBlY3RDb250aW51ZUhlYWRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzZW5kSGVhZGVyKSB7XG4gICAgICAgICAgICAgICAgcmVxdWVzdC5oZWFkZXJzLkV4cGVjdCA9IFwiMTAwLWNvbnRpbnVlXCI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5leHQoe1xuICAgICAgICAgICAgLi4uYXJncyxcbiAgICAgICAgICAgIHJlcXVlc3QsXG4gICAgICAgIH0pO1xuICAgIH07XG59XG5jb25zdCBhZGRFeHBlY3RDb250aW51ZU1pZGRsZXdhcmVPcHRpb25zID0ge1xuICAgIHN0ZXA6IFwiYnVpbGRcIixcbiAgICB0YWdzOiBbXCJTRVRfRVhQRUNUX0hFQURFUlwiLCBcIkVYUEVDVF9IRUFERVJcIl0sXG4gICAgbmFtZTogXCJhZGRFeHBlY3RDb250aW51ZU1pZGRsZXdhcmVcIixcbiAgICBvdmVycmlkZTogdHJ1ZSxcbn07XG5jb25zdCBnZXRBZGRFeHBlY3RDb250aW51ZVBsdWdpbiA9IChvcHRpb25zKSA9PiAoe1xuICAgIGFwcGx5VG9TdGFjazogKGNsaWVudFN0YWNrKSA9PiB7XG4gICAgICAgIGNsaWVudFN0YWNrLmFkZChhZGRFeHBlY3RDb250aW51ZU1pZGRsZXdhcmUob3B0aW9ucyksIGFkZEV4cGVjdENvbnRpbnVlTWlkZGxld2FyZU9wdGlvbnMpO1xuICAgIH0sXG59KTtcblxuZXhwb3J0cy5hZGRFeHBlY3RDb250aW51ZU1pZGRsZXdhcmUgPSBhZGRFeHBlY3RDb250aW51ZU1pZGRsZXdhcmU7XG5leHBvcnRzLmFkZEV4cGVjdENvbnRpbnVlTWlkZGxld2FyZU9wdGlvbnMgPSBhZGRFeHBlY3RDb250aW51ZU1pZGRsZXdhcmVPcHRpb25zO1xuZXhwb3J0cy5nZXRBZGRFeHBlY3RDb250aW51ZVBsdWdpbiA9IGdldEFkZEV4cGVjdENvbnRpbnVlUGx1Z2luO1xuIiwgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5nZXRDcmMzMkNoZWNrc3VtQWxnb3JpdGhtRnVuY3Rpb24gPSB2b2lkIDA7XG5jb25zdCB0c2xpYl8xID0gcmVxdWlyZShcInRzbGliXCIpO1xuY29uc3QgY3JjMzJfMSA9IHJlcXVpcmUoXCJAYXdzLWNyeXB0by9jcmMzMlwiKTtcbmNvbnN0IHV0aWxfMSA9IHJlcXVpcmUoXCJAYXdzLWNyeXB0by91dGlsXCIpO1xuY29uc3QgemxpYiA9IHRzbGliXzEuX19pbXBvcnRTdGFyKHJlcXVpcmUoXCJ6bGliXCIpKTtcbmNsYXNzIE5vZGVDcmMzMiB7XG4gICAgY2hlY2tzdW0gPSAwO1xuICAgIHVwZGF0ZShkYXRhKSB7XG4gICAgICAgIHRoaXMuY2hlY2tzdW0gPSB6bGliLmNyYzMyKGRhdGEsIHRoaXMuY2hlY2tzdW0pO1xuICAgIH1cbiAgICBhc3luYyBkaWdlc3QoKSB7XG4gICAgICAgIHJldHVybiAoMCwgdXRpbF8xLm51bVRvVWludDgpKHRoaXMuY2hlY2tzdW0pO1xuICAgIH1cbiAgICByZXNldCgpIHtcbiAgICAgICAgdGhpcy5jaGVja3N1bSA9IDA7XG4gICAgfVxufVxuY29uc3QgZ2V0Q3JjMzJDaGVja3N1bUFsZ29yaXRobUZ1bmN0aW9uID0gKCkgPT4ge1xuICAgIGlmICh0eXBlb2YgemxpYi5jcmMzMiA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICByZXR1cm4gY3JjMzJfMS5Bd3NDcmMzMjtcbiAgICB9XG4gICAgcmV0dXJuIE5vZGVDcmMzMjtcbn07XG5leHBvcnRzLmdldENyYzMyQ2hlY2tzdW1BbGdvcml0aG1GdW5jdGlvbiA9IGdldENyYzMyQ2hlY2tzdW1BbGdvcml0aG1GdW5jdGlvbjtcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBjb3JlID0gcmVxdWlyZSgnQGF3cy1zZGsvY29yZScpO1xudmFyIHByb3RvY29sSHR0cCA9IHJlcXVpcmUoJ0BzbWl0aHkvcHJvdG9jb2wtaHR0cCcpO1xudmFyIHV0aWxTdHJlYW0gPSByZXF1aXJlKCdAc21pdGh5L3V0aWwtc3RyZWFtJyk7XG52YXIgaXNBcnJheUJ1ZmZlciA9IHJlcXVpcmUoJ0BzbWl0aHkvaXMtYXJyYXktYnVmZmVyJyk7XG52YXIgY3JjMzJjID0gcmVxdWlyZSgnQGF3cy1jcnlwdG8vY3JjMzJjJyk7XG52YXIgZ2V0Q3JjMzJDaGVja3N1bUFsZ29yaXRobUZ1bmN0aW9uID0gcmVxdWlyZSgnLi9nZXRDcmMzMkNoZWNrc3VtQWxnb3JpdGhtRnVuY3Rpb24nKTtcbnZhciB1dGlsVXRmOCA9IHJlcXVpcmUoJ0BzbWl0aHkvdXRpbC11dGY4Jyk7XG52YXIgdXRpbE1pZGRsZXdhcmUgPSByZXF1aXJlKCdAc21pdGh5L3V0aWwtbWlkZGxld2FyZScpO1xuXG5jb25zdCBSZXF1ZXN0Q2hlY2tzdW1DYWxjdWxhdGlvbiA9IHtcbiAgICBXSEVOX1NVUFBPUlRFRDogXCJXSEVOX1NVUFBPUlRFRFwiLFxuICAgIFdIRU5fUkVRVUlSRUQ6IFwiV0hFTl9SRVFVSVJFRFwiLFxufTtcbmNvbnN0IERFRkFVTFRfUkVRVUVTVF9DSEVDS1NVTV9DQUxDVUxBVElPTiA9IFJlcXVlc3RDaGVja3N1bUNhbGN1bGF0aW9uLldIRU5fU1VQUE9SVEVEO1xuY29uc3QgUmVzcG9uc2VDaGVja3N1bVZhbGlkYXRpb24gPSB7XG4gICAgV0hFTl9TVVBQT1JURUQ6IFwiV0hFTl9TVVBQT1JURURcIixcbiAgICBXSEVOX1JFUVVJUkVEOiBcIldIRU5fUkVRVUlSRURcIixcbn07XG5jb25zdCBERUZBVUxUX1JFU1BPTlNFX0NIRUNLU1VNX1ZBTElEQVRJT04gPSBSZXF1ZXN0Q2hlY2tzdW1DYWxjdWxhdGlvbi5XSEVOX1NVUFBPUlRFRDtcbmV4cG9ydHMuQ2hlY2tzdW1BbGdvcml0aG0gPSB2b2lkIDA7XG4oZnVuY3Rpb24gKENoZWNrc3VtQWxnb3JpdGhtKSB7XG4gICAgQ2hlY2tzdW1BbGdvcml0aG1bXCJNRDVcIl0gPSBcIk1ENVwiO1xuICAgIENoZWNrc3VtQWxnb3JpdGhtW1wiQ1JDMzJcIl0gPSBcIkNSQzMyXCI7XG4gICAgQ2hlY2tzdW1BbGdvcml0aG1bXCJDUkMzMkNcIl0gPSBcIkNSQzMyQ1wiO1xuICAgIENoZWNrc3VtQWxnb3JpdGhtW1wiQ1JDNjROVk1FXCJdID0gXCJDUkM2NE5WTUVcIjtcbiAgICBDaGVja3N1bUFsZ29yaXRobVtcIlNIQTFcIl0gPSBcIlNIQTFcIjtcbiAgICBDaGVja3N1bUFsZ29yaXRobVtcIlNIQTI1NlwiXSA9IFwiU0hBMjU2XCI7XG59KShleHBvcnRzLkNoZWNrc3VtQWxnb3JpdGhtIHx8IChleHBvcnRzLkNoZWNrc3VtQWxnb3JpdGhtID0ge30pKTtcbmV4cG9ydHMuQ2hlY2tzdW1Mb2NhdGlvbiA9IHZvaWQgMDtcbihmdW5jdGlvbiAoQ2hlY2tzdW1Mb2NhdGlvbikge1xuICAgIENoZWNrc3VtTG9jYXRpb25bXCJIRUFERVJcIl0gPSBcImhlYWRlclwiO1xuICAgIENoZWNrc3VtTG9jYXRpb25bXCJUUkFJTEVSXCJdID0gXCJ0cmFpbGVyXCI7XG59KShleHBvcnRzLkNoZWNrc3VtTG9jYXRpb24gfHwgKGV4cG9ydHMuQ2hlY2tzdW1Mb2NhdGlvbiA9IHt9KSk7XG5jb25zdCBERUZBVUxUX0NIRUNLU1VNX0FMR09SSVRITSA9IGV4cG9ydHMuQ2hlY2tzdW1BbGdvcml0aG0uQ1JDMzI7XG5cbnZhciBTZWxlY3RvclR5cGU7XG4oZnVuY3Rpb24gKFNlbGVjdG9yVHlwZSkge1xuICAgIFNlbGVjdG9yVHlwZVtcIkVOVlwiXSA9IFwiZW52XCI7XG4gICAgU2VsZWN0b3JUeXBlW1wiQ09ORklHXCJdID0gXCJzaGFyZWQgY29uZmlnIGVudHJ5XCI7XG59KShTZWxlY3RvclR5cGUgfHwgKFNlbGVjdG9yVHlwZSA9IHt9KSk7XG5jb25zdCBzdHJpbmdVbmlvblNlbGVjdG9yID0gKG9iaiwga2V5LCB1bmlvbiwgdHlwZSkgPT4ge1xuICAgIGlmICghKGtleSBpbiBvYmopKVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGNvbnN0IHZhbHVlID0gb2JqW2tleV0udG9VcHBlckNhc2UoKTtcbiAgICBpZiAoIU9iamVjdC52YWx1ZXModW5pb24pLmluY2x1ZGVzKHZhbHVlKSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBDYW5ub3QgbG9hZCAke3R5cGV9ICcke2tleX0nLiBFeHBlY3RlZCBvbmUgb2YgJHtPYmplY3QudmFsdWVzKHVuaW9uKX0sIGdvdCAnJHtvYmpba2V5XX0nLmApO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG59O1xuXG5jb25zdCBFTlZfUkVRVUVTVF9DSEVDS1NVTV9DQUxDVUxBVElPTiA9IFwiQVdTX1JFUVVFU1RfQ0hFQ0tTVU1fQ0FMQ1VMQVRJT05cIjtcbmNvbnN0IENPTkZJR19SRVFVRVNUX0NIRUNLU1VNX0NBTENVTEFUSU9OID0gXCJyZXF1ZXN0X2NoZWNrc3VtX2NhbGN1bGF0aW9uXCI7XG5jb25zdCBOT0RFX1JFUVVFU1RfQ0hFQ0tTVU1fQ0FMQ1VMQVRJT05fQ09ORklHX09QVElPTlMgPSB7XG4gICAgZW52aXJvbm1lbnRWYXJpYWJsZVNlbGVjdG9yOiAoZW52KSA9PiBzdHJpbmdVbmlvblNlbGVjdG9yKGVudiwgRU5WX1JFUVVFU1RfQ0hFQ0tTVU1fQ0FMQ1VMQVRJT04sIFJlcXVlc3RDaGVja3N1bUNhbGN1bGF0aW9uLCBTZWxlY3RvclR5cGUuRU5WKSxcbiAgICBjb25maWdGaWxlU2VsZWN0b3I6IChwcm9maWxlKSA9PiBzdHJpbmdVbmlvblNlbGVjdG9yKHByb2ZpbGUsIENPTkZJR19SRVFVRVNUX0NIRUNLU1VNX0NBTENVTEFUSU9OLCBSZXF1ZXN0Q2hlY2tzdW1DYWxjdWxhdGlvbiwgU2VsZWN0b3JUeXBlLkNPTkZJRyksXG4gICAgZGVmYXVsdDogREVGQVVMVF9SRVFVRVNUX0NIRUNLU1VNX0NBTENVTEFUSU9OLFxufTtcblxuY29uc3QgRU5WX1JFU1BPTlNFX0NIRUNLU1VNX1ZBTElEQVRJT04gPSBcIkFXU19SRVNQT05TRV9DSEVDS1NVTV9WQUxJREFUSU9OXCI7XG5jb25zdCBDT05GSUdfUkVTUE9OU0VfQ0hFQ0tTVU1fVkFMSURBVElPTiA9IFwicmVzcG9uc2VfY2hlY2tzdW1fdmFsaWRhdGlvblwiO1xuY29uc3QgTk9ERV9SRVNQT05TRV9DSEVDS1NVTV9WQUxJREFUSU9OX0NPTkZJR19PUFRJT05TID0ge1xuICAgIGVudmlyb25tZW50VmFyaWFibGVTZWxlY3RvcjogKGVudikgPT4gc3RyaW5nVW5pb25TZWxlY3RvcihlbnYsIEVOVl9SRVNQT05TRV9DSEVDS1NVTV9WQUxJREFUSU9OLCBSZXNwb25zZUNoZWNrc3VtVmFsaWRhdGlvbiwgU2VsZWN0b3JUeXBlLkVOViksXG4gICAgY29uZmlnRmlsZVNlbGVjdG9yOiAocHJvZmlsZSkgPT4gc3RyaW5nVW5pb25TZWxlY3Rvcihwcm9maWxlLCBDT05GSUdfUkVTUE9OU0VfQ0hFQ0tTVU1fVkFMSURBVElPTiwgUmVzcG9uc2VDaGVja3N1bVZhbGlkYXRpb24sIFNlbGVjdG9yVHlwZS5DT05GSUcpLFxuICAgIGRlZmF1bHQ6IERFRkFVTFRfUkVTUE9OU0VfQ0hFQ0tTVU1fVkFMSURBVElPTixcbn07XG5cbmNvbnN0IGNyYzY0TnZtZUNydENvbnRhaW5lciA9IHtcbiAgICBDcnRDcmM2NE52bWU6IG51bGwsXG59O1xuXG5jb25zdCBDTElFTlRfU1VQUE9SVEVEX0FMR09SSVRITVMgPSBbXG4gICAgZXhwb3J0cy5DaGVja3N1bUFsZ29yaXRobS5DUkMzMixcbiAgICBleHBvcnRzLkNoZWNrc3VtQWxnb3JpdGhtLkNSQzMyQyxcbiAgICBleHBvcnRzLkNoZWNrc3VtQWxnb3JpdGhtLkNSQzY0TlZNRSxcbiAgICBleHBvcnRzLkNoZWNrc3VtQWxnb3JpdGhtLlNIQTEsXG4gICAgZXhwb3J0cy5DaGVja3N1bUFsZ29yaXRobS5TSEEyNTYsXG5dO1xuY29uc3QgUFJJT1JJVFlfT1JERVJfQUxHT1JJVEhNUyA9IFtcbiAgICBleHBvcnRzLkNoZWNrc3VtQWxnb3JpdGhtLlNIQTI1NixcbiAgICBleHBvcnRzLkNoZWNrc3VtQWxnb3JpdGhtLlNIQTEsXG4gICAgZXhwb3J0cy5DaGVja3N1bUFsZ29yaXRobS5DUkMzMixcbiAgICBleHBvcnRzLkNoZWNrc3VtQWxnb3JpdGhtLkNSQzMyQyxcbiAgICBleHBvcnRzLkNoZWNrc3VtQWxnb3JpdGhtLkNSQzY0TlZNRSxcbl07XG5cbmNvbnN0IGdldENoZWNrc3VtQWxnb3JpdGhtRm9yUmVxdWVzdCA9IChpbnB1dCwgeyByZXF1ZXN0Q2hlY2tzdW1SZXF1aXJlZCwgcmVxdWVzdEFsZ29yaXRobU1lbWJlciwgcmVxdWVzdENoZWNrc3VtQ2FsY3VsYXRpb24gfSkgPT4ge1xuICAgIGlmICghcmVxdWVzdEFsZ29yaXRobU1lbWJlcikge1xuICAgICAgICByZXR1cm4gcmVxdWVzdENoZWNrc3VtQ2FsY3VsYXRpb24gPT09IFJlcXVlc3RDaGVja3N1bUNhbGN1bGF0aW9uLldIRU5fU1VQUE9SVEVEIHx8IHJlcXVlc3RDaGVja3N1bVJlcXVpcmVkXG4gICAgICAgICAgICA/IERFRkFVTFRfQ0hFQ0tTVU1fQUxHT1JJVEhNXG4gICAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgaWYgKCFpbnB1dFtyZXF1ZXN0QWxnb3JpdGhtTWVtYmVyXSkge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBjb25zdCBjaGVja3N1bUFsZ29yaXRobSA9IGlucHV0W3JlcXVlc3RBbGdvcml0aG1NZW1iZXJdO1xuICAgIGlmICghQ0xJRU5UX1NVUFBPUlRFRF9BTEdPUklUSE1TLmluY2x1ZGVzKGNoZWNrc3VtQWxnb3JpdGhtKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZSBjaGVja3N1bSBhbGdvcml0aG0gXCIke2NoZWNrc3VtQWxnb3JpdGhtfVwiIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIGNsaWVudC5gICtcbiAgICAgICAgICAgIGAgU2VsZWN0IG9uZSBvZiAke0NMSUVOVF9TVVBQT1JURURfQUxHT1JJVEhNU30uYCk7XG4gICAgfVxuICAgIHJldHVybiBjaGVja3N1bUFsZ29yaXRobTtcbn07XG5cbmNvbnN0IGdldENoZWNrc3VtTG9jYXRpb25OYW1lID0gKGFsZ29yaXRobSkgPT4gYWxnb3JpdGhtID09PSBleHBvcnRzLkNoZWNrc3VtQWxnb3JpdGhtLk1ENSA/IFwiY29udGVudC1tZDVcIiA6IGB4LWFtei1jaGVja3N1bS0ke2FsZ29yaXRobS50b0xvd2VyQ2FzZSgpfWA7XG5cbmNvbnN0IGhhc0hlYWRlciA9IChoZWFkZXIsIGhlYWRlcnMpID0+IHtcbiAgICBjb25zdCBzb3VnaHRIZWFkZXIgPSBoZWFkZXIudG9Mb3dlckNhc2UoKTtcbiAgICBmb3IgKGNvbnN0IGhlYWRlck5hbWUgb2YgT2JqZWN0LmtleXMoaGVhZGVycykpIHtcbiAgICAgICAgaWYgKHNvdWdodEhlYWRlciA9PT0gaGVhZGVyTmFtZS50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59O1xuXG5jb25zdCBoYXNIZWFkZXJXaXRoUHJlZml4ID0gKGhlYWRlclByZWZpeCwgaGVhZGVycykgPT4ge1xuICAgIGNvbnN0IHNvdWdodEhlYWRlclByZWZpeCA9IGhlYWRlclByZWZpeC50b0xvd2VyQ2FzZSgpO1xuICAgIGZvciAoY29uc3QgaGVhZGVyTmFtZSBvZiBPYmplY3Qua2V5cyhoZWFkZXJzKSkge1xuICAgICAgICBpZiAoaGVhZGVyTmFtZS50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoc291Z2h0SGVhZGVyUHJlZml4KSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufTtcblxuY29uc3QgaXNTdHJlYW1pbmcgPSAoYm9keSkgPT4gYm9keSAhPT0gdW5kZWZpbmVkICYmIHR5cGVvZiBib2R5ICE9PSBcInN0cmluZ1wiICYmICFBcnJheUJ1ZmZlci5pc1ZpZXcoYm9keSkgJiYgIWlzQXJyYXlCdWZmZXIuaXNBcnJheUJ1ZmZlcihib2R5KTtcblxuY29uc3Qgc2VsZWN0Q2hlY2tzdW1BbGdvcml0aG1GdW5jdGlvbiA9IChjaGVja3N1bUFsZ29yaXRobSwgY29uZmlnKSA9PiB7XG4gICAgc3dpdGNoIChjaGVja3N1bUFsZ29yaXRobSkge1xuICAgICAgICBjYXNlIGV4cG9ydHMuQ2hlY2tzdW1BbGdvcml0aG0uTUQ1OlxuICAgICAgICAgICAgcmV0dXJuIGNvbmZpZy5tZDU7XG4gICAgICAgIGNhc2UgZXhwb3J0cy5DaGVja3N1bUFsZ29yaXRobS5DUkMzMjpcbiAgICAgICAgICAgIHJldHVybiBnZXRDcmMzMkNoZWNrc3VtQWxnb3JpdGhtRnVuY3Rpb24uZ2V0Q3JjMzJDaGVja3N1bUFsZ29yaXRobUZ1bmN0aW9uKCk7XG4gICAgICAgIGNhc2UgZXhwb3J0cy5DaGVja3N1bUFsZ29yaXRobS5DUkMzMkM6XG4gICAgICAgICAgICByZXR1cm4gY3JjMzJjLkF3c0NyYzMyYztcbiAgICAgICAgY2FzZSBleHBvcnRzLkNoZWNrc3VtQWxnb3JpdGhtLkNSQzY0TlZNRTpcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY3JjNjROdm1lQ3J0Q29udGFpbmVyLkNydENyYzY0TnZtZSAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBQbGVhc2UgY2hlY2sgd2hldGhlciB5b3UgaGF2ZSBpbnN0YWxsZWQgdGhlIFwiQGF3cy1zZGsvY3JjNjQtbnZtZS1jcnRcIiBwYWNrYWdlIGV4cGxpY2l0bHkuIFxcbmAgK1xuICAgICAgICAgICAgICAgICAgICBgWW91IG11c3QgYWxzbyByZWdpc3RlciB0aGUgcGFja2FnZSBieSBjYWxsaW5nIFtyZXF1aXJlKFwiQGF3cy1zZGsvY3JjNjQtbnZtZS1jcnRcIik7XSBgICtcbiAgICAgICAgICAgICAgICAgICAgYG9yIGFuIEVTTSBlcXVpdmFsZW50IHN1Y2ggYXMgW2ltcG9ydCBcIkBhd3Mtc2RrL2NyYzY0LW52bWUtY3J0XCI7XS4gXFxuYCArXG4gICAgICAgICAgICAgICAgICAgIFwiRm9yIG1vcmUgaW5mb3JtYXRpb24gcGxlYXNlIGdvIHRvIFwiICtcbiAgICAgICAgICAgICAgICAgICAgXCJodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1zZGstanMtdjMjZnVuY3Rpb25hbGl0eS1yZXF1aXJpbmctYXdzLWNvbW1vbi1ydW50aW1lLWNydFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBjcmM2NE52bWVDcnRDb250YWluZXIuQ3J0Q3JjNjROdm1lO1xuICAgICAgICBjYXNlIGV4cG9ydHMuQ2hlY2tzdW1BbGdvcml0aG0uU0hBMTpcbiAgICAgICAgICAgIHJldHVybiBjb25maWcuc2hhMTtcbiAgICAgICAgY2FzZSBleHBvcnRzLkNoZWNrc3VtQWxnb3JpdGhtLlNIQTI1NjpcbiAgICAgICAgICAgIHJldHVybiBjb25maWcuc2hhMjU2O1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCBjaGVja3N1bSBhbGdvcml0aG06ICR7Y2hlY2tzdW1BbGdvcml0aG19YCk7XG4gICAgfVxufTtcblxuY29uc3Qgc3RyaW5nSGFzaGVyID0gKGNoZWNrc3VtQWxnb3JpdGhtRm4sIGJvZHkpID0+IHtcbiAgICBjb25zdCBoYXNoID0gbmV3IGNoZWNrc3VtQWxnb3JpdGhtRm4oKTtcbiAgICBoYXNoLnVwZGF0ZSh1dGlsVXRmOC50b1VpbnQ4QXJyYXkoYm9keSB8fCBcIlwiKSk7XG4gICAgcmV0dXJuIGhhc2guZGlnZXN0KCk7XG59O1xuXG5jb25zdCBmbGV4aWJsZUNoZWNrc3Vtc01pZGRsZXdhcmVPcHRpb25zID0ge1xuICAgIG5hbWU6IFwiZmxleGlibGVDaGVja3N1bXNNaWRkbGV3YXJlXCIsXG4gICAgc3RlcDogXCJidWlsZFwiLFxuICAgIHRhZ3M6IFtcIkJPRFlfQ0hFQ0tTVU1cIl0sXG4gICAgb3ZlcnJpZGU6IHRydWUsXG59O1xuY29uc3QgZmxleGlibGVDaGVja3N1bXNNaWRkbGV3YXJlID0gKGNvbmZpZywgbWlkZGxld2FyZUNvbmZpZykgPT4gKG5leHQsIGNvbnRleHQpID0+IGFzeW5jIChhcmdzKSA9PiB7XG4gICAgaWYgKCFwcm90b2NvbEh0dHAuSHR0cFJlcXVlc3QuaXNJbnN0YW5jZShhcmdzLnJlcXVlc3QpKSB7XG4gICAgICAgIHJldHVybiBuZXh0KGFyZ3MpO1xuICAgIH1cbiAgICBpZiAoaGFzSGVhZGVyV2l0aFByZWZpeChcIngtYW16LWNoZWNrc3VtLVwiLCBhcmdzLnJlcXVlc3QuaGVhZGVycykpIHtcbiAgICAgICAgcmV0dXJuIG5leHQoYXJncyk7XG4gICAgfVxuICAgIGNvbnN0IHsgcmVxdWVzdCwgaW5wdXQgfSA9IGFyZ3M7XG4gICAgY29uc3QgeyBib2R5OiByZXF1ZXN0Qm9keSwgaGVhZGVycyB9ID0gcmVxdWVzdDtcbiAgICBjb25zdCB7IGJhc2U2NEVuY29kZXIsIHN0cmVhbUhhc2hlciB9ID0gY29uZmlnO1xuICAgIGNvbnN0IHsgcmVxdWVzdENoZWNrc3VtUmVxdWlyZWQsIHJlcXVlc3RBbGdvcml0aG1NZW1iZXIgfSA9IG1pZGRsZXdhcmVDb25maWc7XG4gICAgY29uc3QgcmVxdWVzdENoZWNrc3VtQ2FsY3VsYXRpb24gPSBhd2FpdCBjb25maWcucmVxdWVzdENoZWNrc3VtQ2FsY3VsYXRpb24oKTtcbiAgICBjb25zdCByZXF1ZXN0QWxnb3JpdGhtTWVtYmVyTmFtZSA9IHJlcXVlc3RBbGdvcml0aG1NZW1iZXI/Lm5hbWU7XG4gICAgY29uc3QgcmVxdWVzdEFsZ29yaXRobU1lbWJlckh0dHBIZWFkZXIgPSByZXF1ZXN0QWxnb3JpdGhtTWVtYmVyPy5odHRwSGVhZGVyO1xuICAgIGlmIChyZXF1ZXN0QWxnb3JpdGhtTWVtYmVyTmFtZSAmJiAhaW5wdXRbcmVxdWVzdEFsZ29yaXRobU1lbWJlck5hbWVdKSB7XG4gICAgICAgIGlmIChyZXF1ZXN0Q2hlY2tzdW1DYWxjdWxhdGlvbiA9PT0gUmVxdWVzdENoZWNrc3VtQ2FsY3VsYXRpb24uV0hFTl9TVVBQT1JURUQgfHwgcmVxdWVzdENoZWNrc3VtUmVxdWlyZWQpIHtcbiAgICAgICAgICAgIGlucHV0W3JlcXVlc3RBbGdvcml0aG1NZW1iZXJOYW1lXSA9IERFRkFVTFRfQ0hFQ0tTVU1fQUxHT1JJVEhNO1xuICAgICAgICAgICAgaWYgKHJlcXVlc3RBbGdvcml0aG1NZW1iZXJIdHRwSGVhZGVyKSB7XG4gICAgICAgICAgICAgICAgaGVhZGVyc1tyZXF1ZXN0QWxnb3JpdGhtTWVtYmVySHR0cEhlYWRlcl0gPSBERUZBVUxUX0NIRUNLU1VNX0FMR09SSVRITTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBjaGVja3N1bUFsZ29yaXRobSA9IGdldENoZWNrc3VtQWxnb3JpdGhtRm9yUmVxdWVzdChpbnB1dCwge1xuICAgICAgICByZXF1ZXN0Q2hlY2tzdW1SZXF1aXJlZCxcbiAgICAgICAgcmVxdWVzdEFsZ29yaXRobU1lbWJlcjogcmVxdWVzdEFsZ29yaXRobU1lbWJlcj8ubmFtZSxcbiAgICAgICAgcmVxdWVzdENoZWNrc3VtQ2FsY3VsYXRpb24sXG4gICAgfSk7XG4gICAgbGV0IHVwZGF0ZWRCb2R5ID0gcmVxdWVzdEJvZHk7XG4gICAgbGV0IHVwZGF0ZWRIZWFkZXJzID0gaGVhZGVycztcbiAgICBpZiAoY2hlY2tzdW1BbGdvcml0aG0pIHtcbiAgICAgICAgc3dpdGNoIChjaGVja3N1bUFsZ29yaXRobSkge1xuICAgICAgICAgICAgY2FzZSBleHBvcnRzLkNoZWNrc3VtQWxnb3JpdGhtLkNSQzMyOlxuICAgICAgICAgICAgICAgIGNvcmUuc2V0RmVhdHVyZShjb250ZXh0LCBcIkZMRVhJQkxFX0NIRUNLU1VNU19SRVFfQ1JDMzJcIiwgXCJVXCIpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBleHBvcnRzLkNoZWNrc3VtQWxnb3JpdGhtLkNSQzMyQzpcbiAgICAgICAgICAgICAgICBjb3JlLnNldEZlYXR1cmUoY29udGV4dCwgXCJGTEVYSUJMRV9DSEVDS1NVTVNfUkVRX0NSQzMyQ1wiLCBcIlZcIik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIGV4cG9ydHMuQ2hlY2tzdW1BbGdvcml0aG0uQ1JDNjROVk1FOlxuICAgICAgICAgICAgICAgIGNvcmUuc2V0RmVhdHVyZShjb250ZXh0LCBcIkZMRVhJQkxFX0NIRUNLU1VNU19SRVFfQ1JDNjRcIiwgXCJXXCIpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBleHBvcnRzLkNoZWNrc3VtQWxnb3JpdGhtLlNIQTE6XG4gICAgICAgICAgICAgICAgY29yZS5zZXRGZWF0dXJlKGNvbnRleHQsIFwiRkxFWElCTEVfQ0hFQ0tTVU1TX1JFUV9TSEExXCIsIFwiWFwiKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgZXhwb3J0cy5DaGVja3N1bUFsZ29yaXRobS5TSEEyNTY6XG4gICAgICAgICAgICAgICAgY29yZS5zZXRGZWF0dXJlKGNvbnRleHQsIFwiRkxFWElCTEVfQ0hFQ0tTVU1TX1JFUV9TSEEyNTZcIiwgXCJZXCIpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNoZWNrc3VtTG9jYXRpb25OYW1lID0gZ2V0Q2hlY2tzdW1Mb2NhdGlvbk5hbWUoY2hlY2tzdW1BbGdvcml0aG0pO1xuICAgICAgICBjb25zdCBjaGVja3N1bUFsZ29yaXRobUZuID0gc2VsZWN0Q2hlY2tzdW1BbGdvcml0aG1GdW5jdGlvbihjaGVja3N1bUFsZ29yaXRobSwgY29uZmlnKTtcbiAgICAgICAgaWYgKGlzU3RyZWFtaW5nKHJlcXVlc3RCb2R5KSkge1xuICAgICAgICAgICAgY29uc3QgeyBnZXRBd3NDaHVua2VkRW5jb2RpbmdTdHJlYW0sIGJvZHlMZW5ndGhDaGVja2VyIH0gPSBjb25maWc7XG4gICAgICAgICAgICB1cGRhdGVkQm9keSA9IGdldEF3c0NodW5rZWRFbmNvZGluZ1N0cmVhbSh0eXBlb2YgY29uZmlnLnJlcXVlc3RTdHJlYW1CdWZmZXJTaXplID09PSBcIm51bWJlclwiICYmIGNvbmZpZy5yZXF1ZXN0U3RyZWFtQnVmZmVyU2l6ZSA+PSA4ICogMTAyNFxuICAgICAgICAgICAgICAgID8gdXRpbFN0cmVhbS5jcmVhdGVCdWZmZXJlZFJlYWRhYmxlKHJlcXVlc3RCb2R5LCBjb25maWcucmVxdWVzdFN0cmVhbUJ1ZmZlclNpemUsIGNvbnRleHQubG9nZ2VyKVxuICAgICAgICAgICAgICAgIDogcmVxdWVzdEJvZHksIHtcbiAgICAgICAgICAgICAgICBiYXNlNjRFbmNvZGVyLFxuICAgICAgICAgICAgICAgIGJvZHlMZW5ndGhDaGVja2VyLFxuICAgICAgICAgICAgICAgIGNoZWNrc3VtTG9jYXRpb25OYW1lLFxuICAgICAgICAgICAgICAgIGNoZWNrc3VtQWxnb3JpdGhtRm4sXG4gICAgICAgICAgICAgICAgc3RyZWFtSGFzaGVyLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB1cGRhdGVkSGVhZGVycyA9IHtcbiAgICAgICAgICAgICAgICAuLi5oZWFkZXJzLFxuICAgICAgICAgICAgICAgIFwiY29udGVudC1lbmNvZGluZ1wiOiBoZWFkZXJzW1wiY29udGVudC1lbmNvZGluZ1wiXVxuICAgICAgICAgICAgICAgICAgICA/IGAke2hlYWRlcnNbXCJjb250ZW50LWVuY29kaW5nXCJdfSxhd3MtY2h1bmtlZGBcbiAgICAgICAgICAgICAgICAgICAgOiBcImF3cy1jaHVua2VkXCIsXG4gICAgICAgICAgICAgICAgXCJ0cmFuc2Zlci1lbmNvZGluZ1wiOiBcImNodW5rZWRcIixcbiAgICAgICAgICAgICAgICBcIngtYW16LWRlY29kZWQtY29udGVudC1sZW5ndGhcIjogaGVhZGVyc1tcImNvbnRlbnQtbGVuZ3RoXCJdLFxuICAgICAgICAgICAgICAgIFwieC1hbXotY29udGVudC1zaGEyNTZcIjogXCJTVFJFQU1JTkctVU5TSUdORUQtUEFZTE9BRC1UUkFJTEVSXCIsXG4gICAgICAgICAgICAgICAgXCJ4LWFtei10cmFpbGVyXCI6IGNoZWNrc3VtTG9jYXRpb25OYW1lLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGRlbGV0ZSB1cGRhdGVkSGVhZGVyc1tcImNvbnRlbnQtbGVuZ3RoXCJdO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKCFoYXNIZWFkZXIoY2hlY2tzdW1Mb2NhdGlvbk5hbWUsIGhlYWRlcnMpKSB7XG4gICAgICAgICAgICBjb25zdCByYXdDaGVja3N1bSA9IGF3YWl0IHN0cmluZ0hhc2hlcihjaGVja3N1bUFsZ29yaXRobUZuLCByZXF1ZXN0Qm9keSk7XG4gICAgICAgICAgICB1cGRhdGVkSGVhZGVycyA9IHtcbiAgICAgICAgICAgICAgICAuLi5oZWFkZXJzLFxuICAgICAgICAgICAgICAgIFtjaGVja3N1bUxvY2F0aW9uTmFtZV06IGJhc2U2NEVuY29kZXIocmF3Q2hlY2tzdW0pLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBuZXh0KHtcbiAgICAgICAgLi4uYXJncyxcbiAgICAgICAgcmVxdWVzdDoge1xuICAgICAgICAgICAgLi4ucmVxdWVzdCxcbiAgICAgICAgICAgIGhlYWRlcnM6IHVwZGF0ZWRIZWFkZXJzLFxuICAgICAgICAgICAgYm9keTogdXBkYXRlZEJvZHksXG4gICAgICAgIH0sXG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbmNvbnN0IGZsZXhpYmxlQ2hlY2tzdW1zSW5wdXRNaWRkbGV3YXJlT3B0aW9ucyA9IHtcbiAgICBuYW1lOiBcImZsZXhpYmxlQ2hlY2tzdW1zSW5wdXRNaWRkbGV3YXJlXCIsXG4gICAgdG9NaWRkbGV3YXJlOiBcInNlcmlhbGl6ZXJNaWRkbGV3YXJlXCIsXG4gICAgcmVsYXRpb246IFwiYmVmb3JlXCIsXG4gICAgdGFnczogW1wiQk9EWV9DSEVDS1NVTVwiXSxcbiAgICBvdmVycmlkZTogdHJ1ZSxcbn07XG5jb25zdCBmbGV4aWJsZUNoZWNrc3Vtc0lucHV0TWlkZGxld2FyZSA9IChjb25maWcsIG1pZGRsZXdhcmVDb25maWcpID0+IChuZXh0LCBjb250ZXh0KSA9PiBhc3luYyAoYXJncykgPT4ge1xuICAgIGNvbnN0IGlucHV0ID0gYXJncy5pbnB1dDtcbiAgICBjb25zdCB7IHJlcXVlc3RWYWxpZGF0aW9uTW9kZU1lbWJlciB9ID0gbWlkZGxld2FyZUNvbmZpZztcbiAgICBjb25zdCByZXF1ZXN0Q2hlY2tzdW1DYWxjdWxhdGlvbiA9IGF3YWl0IGNvbmZpZy5yZXF1ZXN0Q2hlY2tzdW1DYWxjdWxhdGlvbigpO1xuICAgIGNvbnN0IHJlc3BvbnNlQ2hlY2tzdW1WYWxpZGF0aW9uID0gYXdhaXQgY29uZmlnLnJlc3BvbnNlQ2hlY2tzdW1WYWxpZGF0aW9uKCk7XG4gICAgc3dpdGNoIChyZXF1ZXN0Q2hlY2tzdW1DYWxjdWxhdGlvbikge1xuICAgICAgICBjYXNlIFJlcXVlc3RDaGVja3N1bUNhbGN1bGF0aW9uLldIRU5fUkVRVUlSRUQ6XG4gICAgICAgICAgICBjb3JlLnNldEZlYXR1cmUoY29udGV4dCwgXCJGTEVYSUJMRV9DSEVDS1NVTVNfUkVRX1dIRU5fUkVRVUlSRURcIiwgXCJhXCIpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgUmVxdWVzdENoZWNrc3VtQ2FsY3VsYXRpb24uV0hFTl9TVVBQT1JURUQ6XG4gICAgICAgICAgICBjb3JlLnNldEZlYXR1cmUoY29udGV4dCwgXCJGTEVYSUJMRV9DSEVDS1NVTVNfUkVRX1dIRU5fU1VQUE9SVEVEXCIsIFwiWlwiKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBzd2l0Y2ggKHJlc3BvbnNlQ2hlY2tzdW1WYWxpZGF0aW9uKSB7XG4gICAgICAgIGNhc2UgUmVzcG9uc2VDaGVja3N1bVZhbGlkYXRpb24uV0hFTl9SRVFVSVJFRDpcbiAgICAgICAgICAgIGNvcmUuc2V0RmVhdHVyZShjb250ZXh0LCBcIkZMRVhJQkxFX0NIRUNLU1VNU19SRVNfV0hFTl9SRVFVSVJFRFwiLCBcImNcIik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBSZXNwb25zZUNoZWNrc3VtVmFsaWRhdGlvbi5XSEVOX1NVUFBPUlRFRDpcbiAgICAgICAgICAgIGNvcmUuc2V0RmVhdHVyZShjb250ZXh0LCBcIkZMRVhJQkxFX0NIRUNLU1VNU19SRVNfV0hFTl9TVVBQT1JURURcIiwgXCJiXCIpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGlmIChyZXF1ZXN0VmFsaWRhdGlvbk1vZGVNZW1iZXIgJiYgIWlucHV0W3JlcXVlc3RWYWxpZGF0aW9uTW9kZU1lbWJlcl0pIHtcbiAgICAgICAgaWYgKHJlc3BvbnNlQ2hlY2tzdW1WYWxpZGF0aW9uID09PSBSZXNwb25zZUNoZWNrc3VtVmFsaWRhdGlvbi5XSEVOX1NVUFBPUlRFRCkge1xuICAgICAgICAgICAgaW5wdXRbcmVxdWVzdFZhbGlkYXRpb25Nb2RlTWVtYmVyXSA9IFwiRU5BQkxFRFwiO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBuZXh0KGFyZ3MpO1xufTtcblxuY29uc3QgZ2V0Q2hlY2tzdW1BbGdvcml0aG1MaXN0Rm9yUmVzcG9uc2UgPSAocmVzcG9uc2VBbGdvcml0aG1zID0gW10pID0+IHtcbiAgICBjb25zdCB2YWxpZENoZWNrc3VtQWxnb3JpdGhtcyA9IFtdO1xuICAgIGZvciAoY29uc3QgYWxnb3JpdGhtIG9mIFBSSU9SSVRZX09SREVSX0FMR09SSVRITVMpIHtcbiAgICAgICAgaWYgKCFyZXNwb25zZUFsZ29yaXRobXMuaW5jbHVkZXMoYWxnb3JpdGhtKSB8fCAhQ0xJRU5UX1NVUFBPUlRFRF9BTEdPUklUSE1TLmluY2x1ZGVzKGFsZ29yaXRobSkpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIHZhbGlkQ2hlY2tzdW1BbGdvcml0aG1zLnB1c2goYWxnb3JpdGhtKTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbGlkQ2hlY2tzdW1BbGdvcml0aG1zO1xufTtcblxuY29uc3QgaXNDaGVja3N1bVdpdGhQYXJ0TnVtYmVyID0gKGNoZWNrc3VtKSA9PiB7XG4gICAgY29uc3QgbGFzdEh5cGhlbkluZGV4ID0gY2hlY2tzdW0ubGFzdEluZGV4T2YoXCItXCIpO1xuICAgIGlmIChsYXN0SHlwaGVuSW5kZXggIT09IC0xKSB7XG4gICAgICAgIGNvbnN0IG51bWJlclBhcnQgPSBjaGVja3N1bS5zbGljZShsYXN0SHlwaGVuSW5kZXggKyAxKTtcbiAgICAgICAgaWYgKCFudW1iZXJQYXJ0LnN0YXJ0c1dpdGgoXCIwXCIpKSB7XG4gICAgICAgICAgICBjb25zdCBudW1iZXIgPSBwYXJzZUludChudW1iZXJQYXJ0LCAxMCk7XG4gICAgICAgICAgICBpZiAoIWlzTmFOKG51bWJlcikgJiYgbnVtYmVyID49IDEgJiYgbnVtYmVyIDw9IDEwMDAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufTtcblxuY29uc3QgZ2V0Q2hlY2tzdW0gPSBhc3luYyAoYm9keSwgeyBjaGVja3N1bUFsZ29yaXRobUZuLCBiYXNlNjRFbmNvZGVyIH0pID0+IGJhc2U2NEVuY29kZXIoYXdhaXQgc3RyaW5nSGFzaGVyKGNoZWNrc3VtQWxnb3JpdGhtRm4sIGJvZHkpKTtcblxuY29uc3QgdmFsaWRhdGVDaGVja3N1bUZyb21SZXNwb25zZSA9IGFzeW5jIChyZXNwb25zZSwgeyBjb25maWcsIHJlc3BvbnNlQWxnb3JpdGhtcywgbG9nZ2VyIH0pID0+IHtcbiAgICBjb25zdCBjaGVja3N1bUFsZ29yaXRobXMgPSBnZXRDaGVja3N1bUFsZ29yaXRobUxpc3RGb3JSZXNwb25zZShyZXNwb25zZUFsZ29yaXRobXMpO1xuICAgIGNvbnN0IHsgYm9keTogcmVzcG9uc2VCb2R5LCBoZWFkZXJzOiByZXNwb25zZUhlYWRlcnMgfSA9IHJlc3BvbnNlO1xuICAgIGZvciAoY29uc3QgYWxnb3JpdGhtIG9mIGNoZWNrc3VtQWxnb3JpdGhtcykge1xuICAgICAgICBjb25zdCByZXNwb25zZUhlYWRlciA9IGdldENoZWNrc3VtTG9jYXRpb25OYW1lKGFsZ29yaXRobSk7XG4gICAgICAgIGNvbnN0IGNoZWNrc3VtRnJvbVJlc3BvbnNlID0gcmVzcG9uc2VIZWFkZXJzW3Jlc3BvbnNlSGVhZGVyXTtcbiAgICAgICAgaWYgKGNoZWNrc3VtRnJvbVJlc3BvbnNlKSB7XG4gICAgICAgICAgICBsZXQgY2hlY2tzdW1BbGdvcml0aG1GbjtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY2hlY2tzdW1BbGdvcml0aG1GbiA9IHNlbGVjdENoZWNrc3VtQWxnb3JpdGhtRnVuY3Rpb24oYWxnb3JpdGhtLCBjb25maWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgaWYgKGFsZ29yaXRobSA9PT0gZXhwb3J0cy5DaGVja3N1bUFsZ29yaXRobS5DUkM2NE5WTUUpIHtcbiAgICAgICAgICAgICAgICAgICAgbG9nZ2VyPy53YXJuKGBTa2lwcGluZyAke2V4cG9ydHMuQ2hlY2tzdW1BbGdvcml0aG0uQ1JDNjROVk1FfSBjaGVja3N1bSB2YWxpZGF0aW9uOiAke2Vycm9yLm1lc3NhZ2V9YCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHsgYmFzZTY0RW5jb2RlciB9ID0gY29uZmlnO1xuICAgICAgICAgICAgaWYgKGlzU3RyZWFtaW5nKHJlc3BvbnNlQm9keSkpIHtcbiAgICAgICAgICAgICAgICByZXNwb25zZS5ib2R5ID0gdXRpbFN0cmVhbS5jcmVhdGVDaGVja3N1bVN0cmVhbSh7XG4gICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkQ2hlY2tzdW06IGNoZWNrc3VtRnJvbVJlc3BvbnNlLFxuICAgICAgICAgICAgICAgICAgICBjaGVja3N1bVNvdXJjZUxvY2F0aW9uOiByZXNwb25zZUhlYWRlcixcbiAgICAgICAgICAgICAgICAgICAgY2hlY2tzdW06IG5ldyBjaGVja3N1bUFsZ29yaXRobUZuKCksXG4gICAgICAgICAgICAgICAgICAgIHNvdXJjZTogcmVzcG9uc2VCb2R5LFxuICAgICAgICAgICAgICAgICAgICBiYXNlNjRFbmNvZGVyLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGNoZWNrc3VtID0gYXdhaXQgZ2V0Q2hlY2tzdW0ocmVzcG9uc2VCb2R5LCB7IGNoZWNrc3VtQWxnb3JpdGhtRm4sIGJhc2U2NEVuY29kZXIgfSk7XG4gICAgICAgICAgICBpZiAoY2hlY2tzdW0gPT09IGNoZWNrc3VtRnJvbVJlc3BvbnNlKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENoZWNrc3VtIG1pc21hdGNoOiBleHBlY3RlZCBcIiR7Y2hlY2tzdW19XCIgYnV0IHJlY2VpdmVkIFwiJHtjaGVja3N1bUZyb21SZXNwb25zZX1cImAgK1xuICAgICAgICAgICAgICAgIGAgaW4gcmVzcG9uc2UgaGVhZGVyIFwiJHtyZXNwb25zZUhlYWRlcn1cIi5gKTtcbiAgICAgICAgfVxuICAgIH1cbn07XG5cbmNvbnN0IGZsZXhpYmxlQ2hlY2tzdW1zUmVzcG9uc2VNaWRkbGV3YXJlT3B0aW9ucyA9IHtcbiAgICBuYW1lOiBcImZsZXhpYmxlQ2hlY2tzdW1zUmVzcG9uc2VNaWRkbGV3YXJlXCIsXG4gICAgdG9NaWRkbGV3YXJlOiBcImRlc2VyaWFsaXplck1pZGRsZXdhcmVcIixcbiAgICByZWxhdGlvbjogXCJhZnRlclwiLFxuICAgIHRhZ3M6IFtcIkJPRFlfQ0hFQ0tTVU1cIl0sXG4gICAgb3ZlcnJpZGU6IHRydWUsXG59O1xuY29uc3QgZmxleGlibGVDaGVja3N1bXNSZXNwb25zZU1pZGRsZXdhcmUgPSAoY29uZmlnLCBtaWRkbGV3YXJlQ29uZmlnKSA9PiAobmV4dCwgY29udGV4dCkgPT4gYXN5bmMgKGFyZ3MpID0+IHtcbiAgICBpZiAoIXByb3RvY29sSHR0cC5IdHRwUmVxdWVzdC5pc0luc3RhbmNlKGFyZ3MucmVxdWVzdCkpIHtcbiAgICAgICAgcmV0dXJuIG5leHQoYXJncyk7XG4gICAgfVxuICAgIGNvbnN0IGlucHV0ID0gYXJncy5pbnB1dDtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBuZXh0KGFyZ3MpO1xuICAgIGNvbnN0IHJlc3BvbnNlID0gcmVzdWx0LnJlc3BvbnNlO1xuICAgIGNvbnN0IHsgcmVxdWVzdFZhbGlkYXRpb25Nb2RlTWVtYmVyLCByZXNwb25zZUFsZ29yaXRobXMgfSA9IG1pZGRsZXdhcmVDb25maWc7XG4gICAgaWYgKHJlcXVlc3RWYWxpZGF0aW9uTW9kZU1lbWJlciAmJiBpbnB1dFtyZXF1ZXN0VmFsaWRhdGlvbk1vZGVNZW1iZXJdID09PSBcIkVOQUJMRURcIikge1xuICAgICAgICBjb25zdCB7IGNsaWVudE5hbWUsIGNvbW1hbmROYW1lIH0gPSBjb250ZXh0O1xuICAgICAgICBjb25zdCBpc1MzV2hvbGVPYmplY3RNdWx0aXBhcnRHZXRSZXNwb25zZUNoZWNrc3VtID0gY2xpZW50TmFtZSA9PT0gXCJTM0NsaWVudFwiICYmXG4gICAgICAgICAgICBjb21tYW5kTmFtZSA9PT0gXCJHZXRPYmplY3RDb21tYW5kXCIgJiZcbiAgICAgICAgICAgIGdldENoZWNrc3VtQWxnb3JpdGhtTGlzdEZvclJlc3BvbnNlKHJlc3BvbnNlQWxnb3JpdGhtcykuZXZlcnkoKGFsZ29yaXRobSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlSGVhZGVyID0gZ2V0Q2hlY2tzdW1Mb2NhdGlvbk5hbWUoYWxnb3JpdGhtKTtcbiAgICAgICAgICAgICAgICBjb25zdCBjaGVja3N1bUZyb21SZXNwb25zZSA9IHJlc3BvbnNlLmhlYWRlcnNbcmVzcG9uc2VIZWFkZXJdO1xuICAgICAgICAgICAgICAgIHJldHVybiAhY2hlY2tzdW1Gcm9tUmVzcG9uc2UgfHwgaXNDaGVja3N1bVdpdGhQYXJ0TnVtYmVyKGNoZWNrc3VtRnJvbVJlc3BvbnNlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICBpZiAoaXNTM1dob2xlT2JqZWN0TXVsdGlwYXJ0R2V0UmVzcG9uc2VDaGVja3N1bSkge1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfVxuICAgICAgICBhd2FpdCB2YWxpZGF0ZUNoZWNrc3VtRnJvbVJlc3BvbnNlKHJlc3BvbnNlLCB7XG4gICAgICAgICAgICBjb25maWcsXG4gICAgICAgICAgICByZXNwb25zZUFsZ29yaXRobXMsXG4gICAgICAgICAgICBsb2dnZXI6IGNvbnRleHQubG9nZ2VyLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbmNvbnN0IGdldEZsZXhpYmxlQ2hlY2tzdW1zUGx1Z2luID0gKGNvbmZpZywgbWlkZGxld2FyZUNvbmZpZykgPT4gKHtcbiAgICBhcHBseVRvU3RhY2s6IChjbGllbnRTdGFjaykgPT4ge1xuICAgICAgICBjbGllbnRTdGFjay5hZGQoZmxleGlibGVDaGVja3N1bXNNaWRkbGV3YXJlKGNvbmZpZywgbWlkZGxld2FyZUNvbmZpZyksIGZsZXhpYmxlQ2hlY2tzdW1zTWlkZGxld2FyZU9wdGlvbnMpO1xuICAgICAgICBjbGllbnRTdGFjay5hZGRSZWxhdGl2ZVRvKGZsZXhpYmxlQ2hlY2tzdW1zSW5wdXRNaWRkbGV3YXJlKGNvbmZpZywgbWlkZGxld2FyZUNvbmZpZyksIGZsZXhpYmxlQ2hlY2tzdW1zSW5wdXRNaWRkbGV3YXJlT3B0aW9ucyk7XG4gICAgICAgIGNsaWVudFN0YWNrLmFkZFJlbGF0aXZlVG8oZmxleGlibGVDaGVja3N1bXNSZXNwb25zZU1pZGRsZXdhcmUoY29uZmlnLCBtaWRkbGV3YXJlQ29uZmlnKSwgZmxleGlibGVDaGVja3N1bXNSZXNwb25zZU1pZGRsZXdhcmVPcHRpb25zKTtcbiAgICB9LFxufSk7XG5cbmNvbnN0IHJlc29sdmVGbGV4aWJsZUNoZWNrc3Vtc0NvbmZpZyA9IChpbnB1dCkgPT4ge1xuICAgIGNvbnN0IHsgcmVxdWVzdENoZWNrc3VtQ2FsY3VsYXRpb24sIHJlc3BvbnNlQ2hlY2tzdW1WYWxpZGF0aW9uLCByZXF1ZXN0U3RyZWFtQnVmZmVyU2l6ZSB9ID0gaW5wdXQ7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oaW5wdXQsIHtcbiAgICAgICAgcmVxdWVzdENoZWNrc3VtQ2FsY3VsYXRpb246IHV0aWxNaWRkbGV3YXJlLm5vcm1hbGl6ZVByb3ZpZGVyKHJlcXVlc3RDaGVja3N1bUNhbGN1bGF0aW9uID8/IERFRkFVTFRfUkVRVUVTVF9DSEVDS1NVTV9DQUxDVUxBVElPTiksXG4gICAgICAgIHJlc3BvbnNlQ2hlY2tzdW1WYWxpZGF0aW9uOiB1dGlsTWlkZGxld2FyZS5ub3JtYWxpemVQcm92aWRlcihyZXNwb25zZUNoZWNrc3VtVmFsaWRhdGlvbiA/PyBERUZBVUxUX1JFU1BPTlNFX0NIRUNLU1VNX1ZBTElEQVRJT04pLFxuICAgICAgICByZXF1ZXN0U3RyZWFtQnVmZmVyU2l6ZTogTnVtYmVyKHJlcXVlc3RTdHJlYW1CdWZmZXJTaXplID8/IDApLFxuICAgIH0pO1xufTtcblxuZXhwb3J0cy5DT05GSUdfUkVRVUVTVF9DSEVDS1NVTV9DQUxDVUxBVElPTiA9IENPTkZJR19SRVFVRVNUX0NIRUNLU1VNX0NBTENVTEFUSU9OO1xuZXhwb3J0cy5DT05GSUdfUkVTUE9OU0VfQ0hFQ0tTVU1fVkFMSURBVElPTiA9IENPTkZJR19SRVNQT05TRV9DSEVDS1NVTV9WQUxJREFUSU9OO1xuZXhwb3J0cy5ERUZBVUxUX0NIRUNLU1VNX0FMR09SSVRITSA9IERFRkFVTFRfQ0hFQ0tTVU1fQUxHT1JJVEhNO1xuZXhwb3J0cy5ERUZBVUxUX1JFUVVFU1RfQ0hFQ0tTVU1fQ0FMQ1VMQVRJT04gPSBERUZBVUxUX1JFUVVFU1RfQ0hFQ0tTVU1fQ0FMQ1VMQVRJT047XG5leHBvcnRzLkRFRkFVTFRfUkVTUE9OU0VfQ0hFQ0tTVU1fVkFMSURBVElPTiA9IERFRkFVTFRfUkVTUE9OU0VfQ0hFQ0tTVU1fVkFMSURBVElPTjtcbmV4cG9ydHMuRU5WX1JFUVVFU1RfQ0hFQ0tTVU1fQ0FMQ1VMQVRJT04gPSBFTlZfUkVRVUVTVF9DSEVDS1NVTV9DQUxDVUxBVElPTjtcbmV4cG9ydHMuRU5WX1JFU1BPTlNFX0NIRUNLU1VNX1ZBTElEQVRJT04gPSBFTlZfUkVTUE9OU0VfQ0hFQ0tTVU1fVkFMSURBVElPTjtcbmV4cG9ydHMuTk9ERV9SRVFVRVNUX0NIRUNLU1VNX0NBTENVTEFUSU9OX0NPTkZJR19PUFRJT05TID0gTk9ERV9SRVFVRVNUX0NIRUNLU1VNX0NBTENVTEFUSU9OX0NPTkZJR19PUFRJT05TO1xuZXhwb3J0cy5OT0RFX1JFU1BPTlNFX0NIRUNLU1VNX1ZBTElEQVRJT05fQ09ORklHX09QVElPTlMgPSBOT0RFX1JFU1BPTlNFX0NIRUNLU1VNX1ZBTElEQVRJT05fQ09ORklHX09QVElPTlM7XG5leHBvcnRzLlJlcXVlc3RDaGVja3N1bUNhbGN1bGF0aW9uID0gUmVxdWVzdENoZWNrc3VtQ2FsY3VsYXRpb247XG5leHBvcnRzLlJlc3BvbnNlQ2hlY2tzdW1WYWxpZGF0aW9uID0gUmVzcG9uc2VDaGVja3N1bVZhbGlkYXRpb247XG5leHBvcnRzLmNyYzY0TnZtZUNydENvbnRhaW5lciA9IGNyYzY0TnZtZUNydENvbnRhaW5lcjtcbmV4cG9ydHMuZmxleGlibGVDaGVja3N1bXNNaWRkbGV3YXJlID0gZmxleGlibGVDaGVja3N1bXNNaWRkbGV3YXJlO1xuZXhwb3J0cy5mbGV4aWJsZUNoZWNrc3Vtc01pZGRsZXdhcmVPcHRpb25zID0gZmxleGlibGVDaGVja3N1bXNNaWRkbGV3YXJlT3B0aW9ucztcbmV4cG9ydHMuZ2V0RmxleGlibGVDaGVja3N1bXNQbHVnaW4gPSBnZXRGbGV4aWJsZUNoZWNrc3Vtc1BsdWdpbjtcbmV4cG9ydHMucmVzb2x2ZUZsZXhpYmxlQ2hlY2tzdW1zQ29uZmlnID0gcmVzb2x2ZUZsZXhpYmxlQ2hlY2tzdW1zQ29uZmlnO1xuIiwgIlwidXNlIHN0cmljdFwiO1xudmFyIF9fZGVmUHJvcCA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eTtcbnZhciBfX2dldE93blByb3BEZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtcbnZhciBfX2dldE93blByb3BOYW1lcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzO1xudmFyIF9faGFzT3duUHJvcCA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG52YXIgX19uYW1lID0gKHRhcmdldCwgdmFsdWUpID0+IF9fZGVmUHJvcCh0YXJnZXQsIFwibmFtZVwiLCB7IHZhbHVlLCBjb25maWd1cmFibGU6IHRydWUgfSk7XG52YXIgX19leHBvcnQgPSAodGFyZ2V0LCBhbGwpID0+IHtcbiAgZm9yICh2YXIgbmFtZSBpbiBhbGwpXG4gICAgX19kZWZQcm9wKHRhcmdldCwgbmFtZSwgeyBnZXQ6IGFsbFtuYW1lXSwgZW51bWVyYWJsZTogdHJ1ZSB9KTtcbn07XG52YXIgX19jb3B5UHJvcHMgPSAodG8sIGZyb20sIGV4Y2VwdCwgZGVzYykgPT4ge1xuICBpZiAoZnJvbSAmJiB0eXBlb2YgZnJvbSA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgZnJvbSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgZm9yIChsZXQga2V5IG9mIF9fZ2V0T3duUHJvcE5hbWVzKGZyb20pKVxuICAgICAgaWYgKCFfX2hhc093blByb3AuY2FsbCh0bywga2V5KSAmJiBrZXkgIT09IGV4Y2VwdClcbiAgICAgICAgX19kZWZQcm9wKHRvLCBrZXksIHsgZ2V0OiAoKSA9PiBmcm9tW2tleV0sIGVudW1lcmFibGU6ICEoZGVzYyA9IF9fZ2V0T3duUHJvcERlc2MoZnJvbSwga2V5KSkgfHwgZGVzYy5lbnVtZXJhYmxlIH0pO1xuICB9XG4gIHJldHVybiB0bztcbn07XG52YXIgX190b0NvbW1vbkpTID0gKG1vZCkgPT4gX19jb3B5UHJvcHMoX19kZWZQcm9wKHt9LCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KSwgbW9kKTtcblxuLy8gc3JjL2luZGV4LnRzXG52YXIgaW5kZXhfZXhwb3J0cyA9IHt9O1xuX19leHBvcnQoaW5kZXhfZXhwb3J0cywge1xuICBidWlsZDogKCkgPT4gYnVpbGQsXG4gIHBhcnNlOiAoKSA9PiBwYXJzZSxcbiAgdmFsaWRhdGU6ICgpID0+IHZhbGlkYXRlXG59KTtcbm1vZHVsZS5leHBvcnRzID0gX190b0NvbW1vbkpTKGluZGV4X2V4cG9ydHMpO1xudmFyIHZhbGlkYXRlID0gLyogQF9fUFVSRV9fICovIF9fbmFtZSgoc3RyKSA9PiB0eXBlb2Ygc3RyID09PSBcInN0cmluZ1wiICYmIHN0ci5pbmRleE9mKFwiYXJuOlwiKSA9PT0gMCAmJiBzdHIuc3BsaXQoXCI6XCIpLmxlbmd0aCA+PSA2LCBcInZhbGlkYXRlXCIpO1xudmFyIHBhcnNlID0gLyogQF9fUFVSRV9fICovIF9fbmFtZSgoYXJuKSA9PiB7XG4gIGNvbnN0IHNlZ21lbnRzID0gYXJuLnNwbGl0KFwiOlwiKTtcbiAgaWYgKHNlZ21lbnRzLmxlbmd0aCA8IDYgfHwgc2VnbWVudHNbMF0gIT09IFwiYXJuXCIpIHRocm93IG5ldyBFcnJvcihcIk1hbGZvcm1lZCBBUk5cIik7XG4gIGNvbnN0IFtcbiAgICAsXG4gICAgLy9Ta2lwIFwiYXJuXCIgbGl0ZXJhbFxuICAgIHBhcnRpdGlvbixcbiAgICBzZXJ2aWNlLFxuICAgIHJlZ2lvbixcbiAgICBhY2NvdW50SWQsXG4gICAgLi4ucmVzb3VyY2VcbiAgXSA9IHNlZ21lbnRzO1xuICByZXR1cm4ge1xuICAgIHBhcnRpdGlvbixcbiAgICBzZXJ2aWNlLFxuICAgIHJlZ2lvbixcbiAgICBhY2NvdW50SWQsXG4gICAgcmVzb3VyY2U6IHJlc291cmNlLmpvaW4oXCI6XCIpXG4gIH07XG59LCBcInBhcnNlXCIpO1xudmFyIGJ1aWxkID0gLyogQF9fUFVSRV9fICovIF9fbmFtZSgoYXJuT2JqZWN0KSA9PiB7XG4gIGNvbnN0IHsgcGFydGl0aW9uID0gXCJhd3NcIiwgc2VydmljZSwgcmVnaW9uLCBhY2NvdW50SWQsIHJlc291cmNlIH0gPSBhcm5PYmplY3Q7XG4gIGlmIChbc2VydmljZSwgcmVnaW9uLCBhY2NvdW50SWQsIHJlc291cmNlXS5zb21lKChzZWdtZW50KSA9PiB0eXBlb2Ygc2VnbWVudCAhPT0gXCJzdHJpbmdcIikpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnB1dCBBUk4gb2JqZWN0IGlzIGludmFsaWRcIik7XG4gIH1cbiAgcmV0dXJuIGBhcm46JHtwYXJ0aXRpb259OiR7c2VydmljZX06JHtyZWdpb259OiR7YWNjb3VudElkfToke3Jlc291cmNlfWA7XG59LCBcImJ1aWxkXCIpO1xuLy8gQW5ub3RhdGUgdGhlIENvbW1vbkpTIGV4cG9ydCBuYW1lcyBmb3IgRVNNIGltcG9ydCBpbiBub2RlOlxuXG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgdmFsaWRhdGUsXG4gIHBhcnNlLFxuICBidWlsZFxufSk7XG5cbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBwcm90b2NvbEh0dHAgPSByZXF1aXJlKCdAc21pdGh5L3Byb3RvY29sLWh0dHAnKTtcbnZhciBzbWl0aHlDbGllbnQgPSByZXF1aXJlKCdAc21pdGh5L3NtaXRoeS1jbGllbnQnKTtcbnZhciBzaWduYXR1cmVWNCA9IHJlcXVpcmUoJ0BzbWl0aHkvc2lnbmF0dXJlLXY0Jyk7XG52YXIgdXRpbENvbmZpZ1Byb3ZpZGVyID0gcmVxdWlyZSgnQHNtaXRoeS91dGlsLWNvbmZpZy1wcm92aWRlcicpO1xudmFyIGNvcmUgPSByZXF1aXJlKCdAYXdzLXNkay9jb3JlJyk7XG52YXIgY29yZSQxID0gcmVxdWlyZSgnQHNtaXRoeS9jb3JlJyk7XG5yZXF1aXJlKCdAc21pdGh5L3R5cGVzJyk7XG52YXIgdXRpbE1pZGRsZXdhcmUgPSByZXF1aXJlKCdAc21pdGh5L3V0aWwtbWlkZGxld2FyZScpO1xudmFyIHV0aWxTdHJlYW0gPSByZXF1aXJlKCdAc21pdGh5L3V0aWwtc3RyZWFtJyk7XG52YXIgdXRpbEFyblBhcnNlciA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL3V0aWwtYXJuLXBhcnNlcicpO1xuXG5jb25zdCBDT05URU5UX0xFTkdUSF9IRUFERVIgPSBcImNvbnRlbnQtbGVuZ3RoXCI7XG5jb25zdCBERUNPREVEX0NPTlRFTlRfTEVOR1RIX0hFQURFUiA9IFwieC1hbXotZGVjb2RlZC1jb250ZW50LWxlbmd0aFwiO1xuZnVuY3Rpb24gY2hlY2tDb250ZW50TGVuZ3RoSGVhZGVyKCkge1xuICAgIHJldHVybiAobmV4dCwgY29udGV4dCkgPT4gYXN5bmMgKGFyZ3MpID0+IHtcbiAgICAgICAgY29uc3QgeyByZXF1ZXN0IH0gPSBhcmdzO1xuICAgICAgICBpZiAocHJvdG9jb2xIdHRwLkh0dHBSZXF1ZXN0LmlzSW5zdGFuY2UocmVxdWVzdCkpIHtcbiAgICAgICAgICAgIGlmICghKENPTlRFTlRfTEVOR1RIX0hFQURFUiBpbiByZXF1ZXN0LmhlYWRlcnMpICYmICEoREVDT0RFRF9DT05URU5UX0xFTkdUSF9IRUFERVIgaW4gcmVxdWVzdC5oZWFkZXJzKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgQXJlIHlvdSB1c2luZyBhIFN0cmVhbSBvZiB1bmtub3duIGxlbmd0aCBhcyB0aGUgQm9keSBvZiBhIFB1dE9iamVjdCByZXF1ZXN0PyBDb25zaWRlciB1c2luZyBVcGxvYWQgaW5zdGVhZCBmcm9tIEBhd3Mtc2RrL2xpYi1zdG9yYWdlLmA7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjb250ZXh0Py5sb2dnZXI/Lndhcm4gPT09IFwiZnVuY3Rpb25cIiAmJiAhKGNvbnRleHQubG9nZ2VyIGluc3RhbmNlb2Ygc21pdGh5Q2xpZW50Lk5vT3BMb2dnZXIpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQubG9nZ2VyLndhcm4obWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4obWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXh0KHsgLi4uYXJncyB9KTtcbiAgICB9O1xufVxuY29uc3QgY2hlY2tDb250ZW50TGVuZ3RoSGVhZGVyTWlkZGxld2FyZU9wdGlvbnMgPSB7XG4gICAgc3RlcDogXCJmaW5hbGl6ZVJlcXVlc3RcIixcbiAgICB0YWdzOiBbXCJDSEVDS19DT05URU5UX0xFTkdUSF9IRUFERVJcIl0sXG4gICAgbmFtZTogXCJnZXRDaGVja0NvbnRlbnRMZW5ndGhIZWFkZXJQbHVnaW5cIixcbiAgICBvdmVycmlkZTogdHJ1ZSxcbn07XG5jb25zdCBnZXRDaGVja0NvbnRlbnRMZW5ndGhIZWFkZXJQbHVnaW4gPSAodW51c2VkKSA9PiAoe1xuICAgIGFwcGx5VG9TdGFjazogKGNsaWVudFN0YWNrKSA9PiB7XG4gICAgICAgIGNsaWVudFN0YWNrLmFkZChjaGVja0NvbnRlbnRMZW5ndGhIZWFkZXIoKSwgY2hlY2tDb250ZW50TGVuZ3RoSGVhZGVyTWlkZGxld2FyZU9wdGlvbnMpO1xuICAgIH0sXG59KTtcblxuY29uc3QgcmVnaW9uUmVkaXJlY3RFbmRwb2ludE1pZGRsZXdhcmUgPSAoY29uZmlnKSA9PiB7XG4gICAgcmV0dXJuIChuZXh0LCBjb250ZXh0KSA9PiBhc3luYyAoYXJncykgPT4ge1xuICAgICAgICBjb25zdCBvcmlnaW5hbFJlZ2lvbiA9IGF3YWl0IGNvbmZpZy5yZWdpb24oKTtcbiAgICAgICAgY29uc3QgcmVnaW9uUHJvdmlkZXJSZWYgPSBjb25maWcucmVnaW9uO1xuICAgICAgICBsZXQgdW5sb2NrID0gKCkgPT4geyB9O1xuICAgICAgICBpZiAoY29udGV4dC5fX3MzUmVnaW9uUmVkaXJlY3QpIHtcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjb25maWcsIFwicmVnaW9uXCIsIHtcbiAgICAgICAgICAgICAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbnRleHQuX19zM1JlZ2lvblJlZGlyZWN0O1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHVubG9jayA9ICgpID0+IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjb25maWcsIFwicmVnaW9uXCIsIHtcbiAgICAgICAgICAgICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogcmVnaW9uUHJvdmlkZXJSZWYsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgbmV4dChhcmdzKTtcbiAgICAgICAgICAgIGlmIChjb250ZXh0Ll9fczNSZWdpb25SZWRpcmVjdCkge1xuICAgICAgICAgICAgICAgIHVubG9jaygpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlZ2lvbiA9IGF3YWl0IGNvbmZpZy5yZWdpb24oKTtcbiAgICAgICAgICAgICAgICBpZiAob3JpZ2luYWxSZWdpb24gIT09IHJlZ2lvbikge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJSZWdpb24gd2FzIG5vdCByZXN0b3JlZCBmb2xsb3dpbmcgUzMgcmVnaW9uIHJlZGlyZWN0LlwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICB1bmxvY2soKTtcbiAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgIH1cbiAgICB9O1xufTtcbmNvbnN0IHJlZ2lvblJlZGlyZWN0RW5kcG9pbnRNaWRkbGV3YXJlT3B0aW9ucyA9IHtcbiAgICB0YWdzOiBbXCJSRUdJT05fUkVESVJFQ1RcIiwgXCJTM1wiXSxcbiAgICBuYW1lOiBcInJlZ2lvblJlZGlyZWN0RW5kcG9pbnRNaWRkbGV3YXJlXCIsXG4gICAgb3ZlcnJpZGU6IHRydWUsXG4gICAgcmVsYXRpb246IFwiYmVmb3JlXCIsXG4gICAgdG9NaWRkbGV3YXJlOiBcImVuZHBvaW50VjJNaWRkbGV3YXJlXCIsXG59O1xuXG5mdW5jdGlvbiByZWdpb25SZWRpcmVjdE1pZGRsZXdhcmUoY2xpZW50Q29uZmlnKSB7XG4gICAgcmV0dXJuIChuZXh0LCBjb250ZXh0KSA9PiBhc3luYyAoYXJncykgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IG5leHQoYXJncyk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgaWYgKGNsaWVudENvbmZpZy5mb2xsb3dSZWdpb25SZWRpcmVjdHMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzdGF0dXNDb2RlID0gZXJyPy4kbWV0YWRhdGE/Lmh0dHBTdGF0dXNDb2RlO1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzSGVhZEJ1Y2tldCA9IGNvbnRleHQuY29tbWFuZE5hbWUgPT09IFwiSGVhZEJ1Y2tldENvbW1hbmRcIjtcbiAgICAgICAgICAgICAgICBjb25zdCBidWNrZXRSZWdpb25IZWFkZXIgPSBlcnI/LiRyZXNwb25zZT8uaGVhZGVycz8uW1wieC1hbXotYnVja2V0LXJlZ2lvblwiXTtcbiAgICAgICAgICAgICAgICBpZiAoYnVja2V0UmVnaW9uSGVhZGVyKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzdGF0dXNDb2RlID09PSAzMDEgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIChzdGF0dXNDb2RlID09PSA0MDAgJiYgKGVycj8ubmFtZSA9PT0gXCJJbGxlZ2FsTG9jYXRpb25Db25zdHJhaW50RXhjZXB0aW9uXCIgfHwgaXNIZWFkQnVja2V0KSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYWN0dWFsUmVnaW9uID0gYnVja2V0UmVnaW9uSGVhZGVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQubG9nZ2VyPy5kZWJ1ZyhgUmVkaXJlY3RpbmcgZnJvbSAke2F3YWl0IGNsaWVudENvbmZpZy5yZWdpb24oKX0gdG8gJHthY3R1YWxSZWdpb259YCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC5fX3MzUmVnaW9uUmVkaXJlY3QgPSBhY3R1YWxSZWdpb247XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlJlZ2lvbiByZWRpcmVjdCBmYWlsZWQ6IFwiICsgZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV4dChhcmdzKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgfVxuICAgIH07XG59XG5jb25zdCByZWdpb25SZWRpcmVjdE1pZGRsZXdhcmVPcHRpb25zID0ge1xuICAgIHN0ZXA6IFwiaW5pdGlhbGl6ZVwiLFxuICAgIHRhZ3M6IFtcIlJFR0lPTl9SRURJUkVDVFwiLCBcIlMzXCJdLFxuICAgIG5hbWU6IFwicmVnaW9uUmVkaXJlY3RNaWRkbGV3YXJlXCIsXG4gICAgb3ZlcnJpZGU6IHRydWUsXG59O1xuY29uc3QgZ2V0UmVnaW9uUmVkaXJlY3RNaWRkbGV3YXJlUGx1Z2luID0gKGNsaWVudENvbmZpZykgPT4gKHtcbiAgICBhcHBseVRvU3RhY2s6IChjbGllbnRTdGFjaykgPT4ge1xuICAgICAgICBjbGllbnRTdGFjay5hZGQocmVnaW9uUmVkaXJlY3RNaWRkbGV3YXJlKGNsaWVudENvbmZpZyksIHJlZ2lvblJlZGlyZWN0TWlkZGxld2FyZU9wdGlvbnMpO1xuICAgICAgICBjbGllbnRTdGFjay5hZGRSZWxhdGl2ZVRvKHJlZ2lvblJlZGlyZWN0RW5kcG9pbnRNaWRkbGV3YXJlKGNsaWVudENvbmZpZyksIHJlZ2lvblJlZGlyZWN0RW5kcG9pbnRNaWRkbGV3YXJlT3B0aW9ucyk7XG4gICAgfSxcbn0pO1xuXG5jb25zdCBzM0V4cGlyZXNNaWRkbGV3YXJlID0gKGNvbmZpZykgPT4ge1xuICAgIHJldHVybiAobmV4dCwgY29udGV4dCkgPT4gYXN5bmMgKGFyZ3MpID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgbmV4dChhcmdzKTtcbiAgICAgICAgY29uc3QgeyByZXNwb25zZSB9ID0gcmVzdWx0O1xuICAgICAgICBpZiAocHJvdG9jb2xIdHRwLkh0dHBSZXNwb25zZS5pc0luc3RhbmNlKHJlc3BvbnNlKSkge1xuICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhlYWRlcnMuZXhwaXJlcykge1xuICAgICAgICAgICAgICAgIHJlc3BvbnNlLmhlYWRlcnMuZXhwaXJlc3N0cmluZyA9IHJlc3BvbnNlLmhlYWRlcnMuZXhwaXJlcztcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBzbWl0aHlDbGllbnQucGFyc2VSZmM3MjMxRGF0ZVRpbWUocmVzcG9uc2UuaGVhZGVycy5leHBpcmVzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dC5sb2dnZXI/Lndhcm4oYEFXUyBTREsgV2FybmluZyBmb3IgJHtjb250ZXh0LmNsaWVudE5hbWV9Ojoke2NvbnRleHQuY29tbWFuZE5hbWV9IHJlc3BvbnNlIHBhcnNpbmcgKCR7cmVzcG9uc2UuaGVhZGVycy5leHBpcmVzfSk6ICR7ZX1gKTtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHJlc3BvbnNlLmhlYWRlcnMuZXhwaXJlcztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9O1xufTtcbmNvbnN0IHMzRXhwaXJlc01pZGRsZXdhcmVPcHRpb25zID0ge1xuICAgIHRhZ3M6IFtcIlMzXCJdLFxuICAgIG5hbWU6IFwiczNFeHBpcmVzTWlkZGxld2FyZVwiLFxuICAgIG92ZXJyaWRlOiB0cnVlLFxuICAgIHJlbGF0aW9uOiBcImFmdGVyXCIsXG4gICAgdG9NaWRkbGV3YXJlOiBcImRlc2VyaWFsaXplck1pZGRsZXdhcmVcIixcbn07XG5jb25zdCBnZXRTM0V4cGlyZXNNaWRkbGV3YXJlUGx1Z2luID0gKGNsaWVudENvbmZpZykgPT4gKHtcbiAgICBhcHBseVRvU3RhY2s6IChjbGllbnRTdGFjaykgPT4ge1xuICAgICAgICBjbGllbnRTdGFjay5hZGRSZWxhdGl2ZVRvKHMzRXhwaXJlc01pZGRsZXdhcmUoKSwgczNFeHBpcmVzTWlkZGxld2FyZU9wdGlvbnMpO1xuICAgIH0sXG59KTtcblxuY2xhc3MgUzNFeHByZXNzSWRlbnRpdHlDYWNoZSB7XG4gICAgZGF0YTtcbiAgICBsYXN0UHVyZ2VUaW1lID0gRGF0ZS5ub3coKTtcbiAgICBzdGF0aWMgRVhQSVJFRF9DUkVERU5USUFMX1BVUkdFX0lOVEVSVkFMX01TID0gMzBfMDAwO1xuICAgIGNvbnN0cnVjdG9yKGRhdGEgPSB7fSkge1xuICAgICAgICB0aGlzLmRhdGEgPSBkYXRhO1xuICAgIH1cbiAgICBnZXQoa2V5KSB7XG4gICAgICAgIGNvbnN0IGVudHJ5ID0gdGhpcy5kYXRhW2tleV07XG4gICAgICAgIGlmICghZW50cnkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZW50cnk7XG4gICAgfVxuICAgIHNldChrZXksIGVudHJ5KSB7XG4gICAgICAgIHRoaXMuZGF0YVtrZXldID0gZW50cnk7XG4gICAgICAgIHJldHVybiBlbnRyeTtcbiAgICB9XG4gICAgZGVsZXRlKGtleSkge1xuICAgICAgICBkZWxldGUgdGhpcy5kYXRhW2tleV07XG4gICAgfVxuICAgIGFzeW5jIHB1cmdlRXhwaXJlZCgpIHtcbiAgICAgICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgICAgICAgaWYgKHRoaXMubGFzdFB1cmdlVGltZSArIFMzRXhwcmVzc0lkZW50aXR5Q2FjaGUuRVhQSVJFRF9DUkVERU5USUFMX1BVUkdFX0lOVEVSVkFMX01TID4gbm93KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gdGhpcy5kYXRhKSB7XG4gICAgICAgICAgICBjb25zdCBlbnRyeSA9IHRoaXMuZGF0YVtrZXldO1xuICAgICAgICAgICAgaWYgKCFlbnRyeS5pc1JlZnJlc2hpbmcpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjcmVkZW50aWFsID0gYXdhaXQgZW50cnkuaWRlbnRpdHk7XG4gICAgICAgICAgICAgICAgaWYgKGNyZWRlbnRpYWwuZXhwaXJhdGlvbikge1xuICAgICAgICAgICAgICAgICAgICBpZiAoY3JlZGVudGlhbC5leHBpcmF0aW9uLmdldFRpbWUoKSA8IG5vdykge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMuZGF0YVtrZXldO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5jbGFzcyBTM0V4cHJlc3NJZGVudGl0eUNhY2hlRW50cnkge1xuICAgIF9pZGVudGl0eTtcbiAgICBpc1JlZnJlc2hpbmc7XG4gICAgYWNjZXNzZWQ7XG4gICAgY29uc3RydWN0b3IoX2lkZW50aXR5LCBpc1JlZnJlc2hpbmcgPSBmYWxzZSwgYWNjZXNzZWQgPSBEYXRlLm5vdygpKSB7XG4gICAgICAgIHRoaXMuX2lkZW50aXR5ID0gX2lkZW50aXR5O1xuICAgICAgICB0aGlzLmlzUmVmcmVzaGluZyA9IGlzUmVmcmVzaGluZztcbiAgICAgICAgdGhpcy5hY2Nlc3NlZCA9IGFjY2Vzc2VkO1xuICAgIH1cbiAgICBnZXQgaWRlbnRpdHkoKSB7XG4gICAgICAgIHRoaXMuYWNjZXNzZWQgPSBEYXRlLm5vdygpO1xuICAgICAgICByZXR1cm4gdGhpcy5faWRlbnRpdHk7XG4gICAgfVxufVxuXG5jbGFzcyBTM0V4cHJlc3NJZGVudGl0eVByb3ZpZGVySW1wbCB7XG4gICAgY3JlYXRlU2Vzc2lvbkZuO1xuICAgIGNhY2hlO1xuICAgIHN0YXRpYyBSRUZSRVNIX1dJTkRPV19NUyA9IDYwXzAwMDtcbiAgICBjb25zdHJ1Y3RvcihjcmVhdGVTZXNzaW9uRm4sIGNhY2hlID0gbmV3IFMzRXhwcmVzc0lkZW50aXR5Q2FjaGUoKSkge1xuICAgICAgICB0aGlzLmNyZWF0ZVNlc3Npb25GbiA9IGNyZWF0ZVNlc3Npb25GbjtcbiAgICAgICAgdGhpcy5jYWNoZSA9IGNhY2hlO1xuICAgIH1cbiAgICBhc3luYyBnZXRTM0V4cHJlc3NJZGVudGl0eShhd3NJZGVudGl0eSwgaWRlbnRpdHlQcm9wZXJ0aWVzKSB7XG4gICAgICAgIGNvbnN0IGtleSA9IGlkZW50aXR5UHJvcGVydGllcy5CdWNrZXQ7XG4gICAgICAgIGNvbnN0IHsgY2FjaGUgfSA9IHRoaXM7XG4gICAgICAgIGNvbnN0IGVudHJ5ID0gY2FjaGUuZ2V0KGtleSk7XG4gICAgICAgIGlmIChlbnRyeSkge1xuICAgICAgICAgICAgcmV0dXJuIGVudHJ5LmlkZW50aXR5LnRoZW4oKGlkZW50aXR5KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNFeHBpcmVkID0gKGlkZW50aXR5LmV4cGlyYXRpb24/LmdldFRpbWUoKSA/PyAwKSA8IERhdGUubm93KCk7XG4gICAgICAgICAgICAgICAgaWYgKGlzRXhwaXJlZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2FjaGUuc2V0KGtleSwgbmV3IFMzRXhwcmVzc0lkZW50aXR5Q2FjaGVFbnRyeSh0aGlzLmdldElkZW50aXR5KGtleSkpKS5pZGVudGl0eTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgaXNFeHBpcmluZ1Nvb24gPSAoaWRlbnRpdHkuZXhwaXJhdGlvbj8uZ2V0VGltZSgpID8/IDApIDwgRGF0ZS5ub3coKSArIFMzRXhwcmVzc0lkZW50aXR5UHJvdmlkZXJJbXBsLlJFRlJFU0hfV0lORE9XX01TO1xuICAgICAgICAgICAgICAgIGlmIChpc0V4cGlyaW5nU29vbiAmJiAhZW50cnkuaXNSZWZyZXNoaW5nKSB7XG4gICAgICAgICAgICAgICAgICAgIGVudHJ5LmlzUmVmcmVzaGluZyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0SWRlbnRpdHkoa2V5KS50aGVuKChpZCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGUuc2V0KGtleSwgbmV3IFMzRXhwcmVzc0lkZW50aXR5Q2FjaGVFbnRyeShQcm9taXNlLnJlc29sdmUoaWQpKSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gaWRlbnRpdHk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY2FjaGUuc2V0KGtleSwgbmV3IFMzRXhwcmVzc0lkZW50aXR5Q2FjaGVFbnRyeSh0aGlzLmdldElkZW50aXR5KGtleSkpKS5pZGVudGl0eTtcbiAgICB9XG4gICAgYXN5bmMgZ2V0SWRlbnRpdHkoa2V5KSB7XG4gICAgICAgIGF3YWl0IHRoaXMuY2FjaGUucHVyZ2VFeHBpcmVkKCkuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oXCJFcnJvciB3aGlsZSBjbGVhcmluZyBleHBpcmVkIGVudHJpZXMgaW4gUzNFeHByZXNzSWRlbnRpdHlDYWNoZTogXFxuXCIgKyBlcnJvcik7XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBzZXNzaW9uID0gYXdhaXQgdGhpcy5jcmVhdGVTZXNzaW9uRm4oa2V5KTtcbiAgICAgICAgaWYgKCFzZXNzaW9uLkNyZWRlbnRpYWxzPy5BY2Nlc3NLZXlJZCB8fCAhc2Vzc2lvbi5DcmVkZW50aWFscz8uU2VjcmV0QWNjZXNzS2V5KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJzMyNjcmVhdGVTZXNzaW9uIHJlc3BvbnNlIGNyZWRlbnRpYWwgbWlzc2luZyBBY2Nlc3NLZXlJZCBvciBTZWNyZXRBY2Nlc3NLZXkuXCIpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGlkZW50aXR5ID0ge1xuICAgICAgICAgICAgYWNjZXNzS2V5SWQ6IHNlc3Npb24uQ3JlZGVudGlhbHMuQWNjZXNzS2V5SWQsXG4gICAgICAgICAgICBzZWNyZXRBY2Nlc3NLZXk6IHNlc3Npb24uQ3JlZGVudGlhbHMuU2VjcmV0QWNjZXNzS2V5LFxuICAgICAgICAgICAgc2Vzc2lvblRva2VuOiBzZXNzaW9uLkNyZWRlbnRpYWxzLlNlc3Npb25Ub2tlbixcbiAgICAgICAgICAgIGV4cGlyYXRpb246IHNlc3Npb24uQ3JlZGVudGlhbHMuRXhwaXJhdGlvbiA/IG5ldyBEYXRlKHNlc3Npb24uQ3JlZGVudGlhbHMuRXhwaXJhdGlvbikgOiB1bmRlZmluZWQsXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBpZGVudGl0eTtcbiAgICB9XG59XG5cbmNvbnN0IFMzX0VYUFJFU1NfQlVDS0VUX1RZUEUgPSBcIkRpcmVjdG9yeVwiO1xuY29uc3QgUzNfRVhQUkVTU19CQUNLRU5EID0gXCJTM0V4cHJlc3NcIjtcbmNvbnN0IFMzX0VYUFJFU1NfQVVUSF9TQ0hFTUUgPSBcInNpZ3Y0LXMzZXhwcmVzc1wiO1xuY29uc3QgU0VTU0lPTl9UT0tFTl9RVUVSWV9QQVJBTSA9IFwiWC1BbXotUzNzZXNzaW9uLVRva2VuXCI7XG5jb25zdCBTRVNTSU9OX1RPS0VOX0hFQURFUiA9IFNFU1NJT05fVE9LRU5fUVVFUllfUEFSQU0udG9Mb3dlckNhc2UoKTtcbmNvbnN0IE5PREVfRElTQUJMRV9TM19FWFBSRVNTX1NFU1NJT05fQVVUSF9FTlZfTkFNRSA9IFwiQVdTX1MzX0RJU0FCTEVfRVhQUkVTU19TRVNTSU9OX0FVVEhcIjtcbmNvbnN0IE5PREVfRElTQUJMRV9TM19FWFBSRVNTX1NFU1NJT05fQVVUSF9JTklfTkFNRSA9IFwiczNfZGlzYWJsZV9leHByZXNzX3Nlc3Npb25fYXV0aFwiO1xuY29uc3QgTk9ERV9ESVNBQkxFX1MzX0VYUFJFU1NfU0VTU0lPTl9BVVRIX09QVElPTlMgPSB7XG4gICAgZW52aXJvbm1lbnRWYXJpYWJsZVNlbGVjdG9yOiAoZW52KSA9PiB1dGlsQ29uZmlnUHJvdmlkZXIuYm9vbGVhblNlbGVjdG9yKGVudiwgTk9ERV9ESVNBQkxFX1MzX0VYUFJFU1NfU0VTU0lPTl9BVVRIX0VOVl9OQU1FLCB1dGlsQ29uZmlnUHJvdmlkZXIuU2VsZWN0b3JUeXBlLkVOViksXG4gICAgY29uZmlnRmlsZVNlbGVjdG9yOiAocHJvZmlsZSkgPT4gdXRpbENvbmZpZ1Byb3ZpZGVyLmJvb2xlYW5TZWxlY3Rvcihwcm9maWxlLCBOT0RFX0RJU0FCTEVfUzNfRVhQUkVTU19TRVNTSU9OX0FVVEhfSU5JX05BTUUsIHV0aWxDb25maWdQcm92aWRlci5TZWxlY3RvclR5cGUuQ09ORklHKSxcbiAgICBkZWZhdWx0OiBmYWxzZSxcbn07XG5cbmNsYXNzIFNpZ25hdHVyZVY0UzNFeHByZXNzIGV4dGVuZHMgc2lnbmF0dXJlVjQuU2lnbmF0dXJlVjQge1xuICAgIGFzeW5jIHNpZ25XaXRoQ3JlZGVudGlhbHMocmVxdWVzdFRvU2lnbiwgY3JlZGVudGlhbHMsIG9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgY3JlZGVudGlhbHNXaXRob3V0U2Vzc2lvblRva2VuID0gZ2V0Q3JlZGVudGlhbHNXaXRob3V0U2Vzc2lvblRva2VuKGNyZWRlbnRpYWxzKTtcbiAgICAgICAgcmVxdWVzdFRvU2lnbi5oZWFkZXJzW1NFU1NJT05fVE9LRU5fSEVBREVSXSA9IGNyZWRlbnRpYWxzLnNlc3Npb25Ub2tlbjtcbiAgICAgICAgY29uc3QgcHJpdmF0ZUFjY2VzcyA9IHRoaXM7XG4gICAgICAgIHNldFNpbmdsZU92ZXJyaWRlKHByaXZhdGVBY2Nlc3MsIGNyZWRlbnRpYWxzV2l0aG91dFNlc3Npb25Ub2tlbik7XG4gICAgICAgIHJldHVybiBwcml2YXRlQWNjZXNzLnNpZ25SZXF1ZXN0KHJlcXVlc3RUb1NpZ24sIG9wdGlvbnMgPz8ge30pO1xuICAgIH1cbiAgICBhc3luYyBwcmVzaWduV2l0aENyZWRlbnRpYWxzKHJlcXVlc3RUb1NpZ24sIGNyZWRlbnRpYWxzLCBvcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IGNyZWRlbnRpYWxzV2l0aG91dFNlc3Npb25Ub2tlbiA9IGdldENyZWRlbnRpYWxzV2l0aG91dFNlc3Npb25Ub2tlbihjcmVkZW50aWFscyk7XG4gICAgICAgIGRlbGV0ZSByZXF1ZXN0VG9TaWduLmhlYWRlcnNbU0VTU0lPTl9UT0tFTl9IRUFERVJdO1xuICAgICAgICByZXF1ZXN0VG9TaWduLmhlYWRlcnNbU0VTU0lPTl9UT0tFTl9RVUVSWV9QQVJBTV0gPSBjcmVkZW50aWFscy5zZXNzaW9uVG9rZW47XG4gICAgICAgIHJlcXVlc3RUb1NpZ24ucXVlcnkgPSByZXF1ZXN0VG9TaWduLnF1ZXJ5ID8/IHt9O1xuICAgICAgICByZXF1ZXN0VG9TaWduLnF1ZXJ5W1NFU1NJT05fVE9LRU5fUVVFUllfUEFSQU1dID0gY3JlZGVudGlhbHMuc2Vzc2lvblRva2VuO1xuICAgICAgICBjb25zdCBwcml2YXRlQWNjZXNzID0gdGhpcztcbiAgICAgICAgc2V0U2luZ2xlT3ZlcnJpZGUocHJpdmF0ZUFjY2VzcywgY3JlZGVudGlhbHNXaXRob3V0U2Vzc2lvblRva2VuKTtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJlc2lnbihyZXF1ZXN0VG9TaWduLCBvcHRpb25zKTtcbiAgICB9XG59XG5mdW5jdGlvbiBnZXRDcmVkZW50aWFsc1dpdGhvdXRTZXNzaW9uVG9rZW4oY3JlZGVudGlhbHMpIHtcbiAgICBjb25zdCBjcmVkZW50aWFsc1dpdGhvdXRTZXNzaW9uVG9rZW4gPSB7XG4gICAgICAgIGFjY2Vzc0tleUlkOiBjcmVkZW50aWFscy5hY2Nlc3NLZXlJZCxcbiAgICAgICAgc2VjcmV0QWNjZXNzS2V5OiBjcmVkZW50aWFscy5zZWNyZXRBY2Nlc3NLZXksXG4gICAgICAgIGV4cGlyYXRpb246IGNyZWRlbnRpYWxzLmV4cGlyYXRpb24sXG4gICAgfTtcbiAgICByZXR1cm4gY3JlZGVudGlhbHNXaXRob3V0U2Vzc2lvblRva2VuO1xufVxuZnVuY3Rpb24gc2V0U2luZ2xlT3ZlcnJpZGUocHJpdmF0ZUFjY2VzcywgY3JlZGVudGlhbHNXaXRob3V0U2Vzc2lvblRva2VuKSB7XG4gICAgY29uc3QgaWQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiU2lnbmF0dXJlVjRTM0V4cHJlc3MgY3JlZGVudGlhbCBvdmVycmlkZSB3YXMgY3JlYXRlZCBidXQgbm90IGNhbGxlZC5cIik7XG4gICAgfSwgMTApO1xuICAgIGNvbnN0IGN1cnJlbnRDcmVkZW50aWFsUHJvdmlkZXIgPSBwcml2YXRlQWNjZXNzLmNyZWRlbnRpYWxQcm92aWRlcjtcbiAgICBjb25zdCBvdmVycmlkZUNyZWRlbnRpYWxzUHJvdmlkZXJPbmNlID0gKCkgPT4ge1xuICAgICAgICBjbGVhclRpbWVvdXQoaWQpO1xuICAgICAgICBwcml2YXRlQWNjZXNzLmNyZWRlbnRpYWxQcm92aWRlciA9IGN1cnJlbnRDcmVkZW50aWFsUHJvdmlkZXI7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoY3JlZGVudGlhbHNXaXRob3V0U2Vzc2lvblRva2VuKTtcbiAgICB9O1xuICAgIHByaXZhdGVBY2Nlc3MuY3JlZGVudGlhbFByb3ZpZGVyID0gb3ZlcnJpZGVDcmVkZW50aWFsc1Byb3ZpZGVyT25jZTtcbn1cblxuY29uc3QgczNFeHByZXNzTWlkZGxld2FyZSA9IChvcHRpb25zKSA9PiB7XG4gICAgcmV0dXJuIChuZXh0LCBjb250ZXh0KSA9PiBhc3luYyAoYXJncykgPT4ge1xuICAgICAgICBpZiAoY29udGV4dC5lbmRwb2ludFYyKSB7XG4gICAgICAgICAgICBjb25zdCBlbmRwb2ludCA9IGNvbnRleHQuZW5kcG9pbnRWMjtcbiAgICAgICAgICAgIGNvbnN0IGlzUzNFeHByZXNzQXV0aCA9IGVuZHBvaW50LnByb3BlcnRpZXM/LmF1dGhTY2hlbWVzPy5bMF0/Lm5hbWUgPT09IFMzX0VYUFJFU1NfQVVUSF9TQ0hFTUU7XG4gICAgICAgICAgICBjb25zdCBpc1MzRXhwcmVzc0J1Y2tldCA9IGVuZHBvaW50LnByb3BlcnRpZXM/LmJhY2tlbmQgPT09IFMzX0VYUFJFU1NfQkFDS0VORCB8fFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LnByb3BlcnRpZXM/LmJ1Y2tldFR5cGUgPT09IFMzX0VYUFJFU1NfQlVDS0VUX1RZUEU7XG4gICAgICAgICAgICBpZiAoaXNTM0V4cHJlc3NCdWNrZXQpIHtcbiAgICAgICAgICAgICAgICBjb3JlLnNldEZlYXR1cmUoY29udGV4dCwgXCJTM19FWFBSRVNTX0JVQ0tFVFwiLCBcIkpcIik7XG4gICAgICAgICAgICAgICAgY29udGV4dC5pc1MzRXhwcmVzc0J1Y2tldCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNTM0V4cHJlc3NBdXRoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdEJ1Y2tldCA9IGFyZ3MuaW5wdXQuQnVja2V0O1xuICAgICAgICAgICAgICAgIGlmIChyZXF1ZXN0QnVja2V0KSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHMzRXhwcmVzc0lkZW50aXR5ID0gYXdhaXQgb3B0aW9ucy5zM0V4cHJlc3NJZGVudGl0eVByb3ZpZGVyLmdldFMzRXhwcmVzc0lkZW50aXR5KGF3YWl0IG9wdGlvbnMuY3JlZGVudGlhbHMoKSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgQnVja2V0OiByZXF1ZXN0QnVja2V0LFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dC5zM0V4cHJlc3NJZGVudGl0eSA9IHMzRXhwcmVzc0lkZW50aXR5O1xuICAgICAgICAgICAgICAgICAgICBpZiAocHJvdG9jb2xIdHRwLkh0dHBSZXF1ZXN0LmlzSW5zdGFuY2UoYXJncy5yZXF1ZXN0KSAmJiBzM0V4cHJlc3NJZGVudGl0eS5zZXNzaW9uVG9rZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MucmVxdWVzdC5oZWFkZXJzW1NFU1NJT05fVE9LRU5fSEVBREVSXSA9IHMzRXhwcmVzc0lkZW50aXR5LnNlc3Npb25Ub2tlbjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV4dChhcmdzKTtcbiAgICB9O1xufTtcbmNvbnN0IHMzRXhwcmVzc01pZGRsZXdhcmVPcHRpb25zID0ge1xuICAgIG5hbWU6IFwiczNFeHByZXNzTWlkZGxld2FyZVwiLFxuICAgIHN0ZXA6IFwiYnVpbGRcIixcbiAgICB0YWdzOiBbXCJTM1wiLCBcIlMzX0VYUFJFU1NcIl0sXG4gICAgb3ZlcnJpZGU6IHRydWUsXG59O1xuY29uc3QgZ2V0UzNFeHByZXNzUGx1Z2luID0gKG9wdGlvbnMpID0+ICh7XG4gICAgYXBwbHlUb1N0YWNrOiAoY2xpZW50U3RhY2spID0+IHtcbiAgICAgICAgY2xpZW50U3RhY2suYWRkKHMzRXhwcmVzc01pZGRsZXdhcmUob3B0aW9ucyksIHMzRXhwcmVzc01pZGRsZXdhcmVPcHRpb25zKTtcbiAgICB9LFxufSk7XG5cbmNvbnN0IHNpZ25TM0V4cHJlc3MgPSBhc3luYyAoczNFeHByZXNzSWRlbnRpdHksIHNpZ25pbmdPcHRpb25zLCByZXF1ZXN0LCBzaWdWNE11bHRpUmVnaW9uU2lnbmVyKSA9PiB7XG4gICAgY29uc3Qgc2lnbmVkUmVxdWVzdCA9IGF3YWl0IHNpZ1Y0TXVsdGlSZWdpb25TaWduZXIuc2lnbldpdGhDcmVkZW50aWFscyhyZXF1ZXN0LCBzM0V4cHJlc3NJZGVudGl0eSwge30pO1xuICAgIGlmIChzaWduZWRSZXF1ZXN0LmhlYWRlcnNbXCJYLUFtei1TZWN1cml0eS1Ub2tlblwiXSB8fCBzaWduZWRSZXF1ZXN0LmhlYWRlcnNbXCJ4LWFtei1zZWN1cml0eS10b2tlblwiXSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJYLUFtei1TZWN1cml0eS1Ub2tlbiBtdXN0IG5vdCBiZSBzZXQgZm9yIHMzLWV4cHJlc3MgcmVxdWVzdHMuXCIpO1xuICAgIH1cbiAgICByZXR1cm4gc2lnbmVkUmVxdWVzdDtcbn07XG5cbmNvbnN0IGRlZmF1bHRFcnJvckhhbmRsZXIgPSAoc2lnbmluZ1Byb3BlcnRpZXMpID0+IChlcnJvcikgPT4ge1xuICAgIHRocm93IGVycm9yO1xufTtcbmNvbnN0IGRlZmF1bHRTdWNjZXNzSGFuZGxlciA9IChodHRwUmVzcG9uc2UsIHNpZ25pbmdQcm9wZXJ0aWVzKSA9PiB7IH07XG5jb25zdCBzM0V4cHJlc3NIdHRwU2lnbmluZ01pZGRsZXdhcmVPcHRpb25zID0gY29yZSQxLmh0dHBTaWduaW5nTWlkZGxld2FyZU9wdGlvbnM7XG5jb25zdCBzM0V4cHJlc3NIdHRwU2lnbmluZ01pZGRsZXdhcmUgPSAoY29uZmlnKSA9PiAobmV4dCwgY29udGV4dCkgPT4gYXN5bmMgKGFyZ3MpID0+IHtcbiAgICBpZiAoIXByb3RvY29sSHR0cC5IdHRwUmVxdWVzdC5pc0luc3RhbmNlKGFyZ3MucmVxdWVzdCkpIHtcbiAgICAgICAgcmV0dXJuIG5leHQoYXJncyk7XG4gICAgfVxuICAgIGNvbnN0IHNtaXRoeUNvbnRleHQgPSB1dGlsTWlkZGxld2FyZS5nZXRTbWl0aHlDb250ZXh0KGNvbnRleHQpO1xuICAgIGNvbnN0IHNjaGVtZSA9IHNtaXRoeUNvbnRleHQuc2VsZWN0ZWRIdHRwQXV0aFNjaGVtZTtcbiAgICBpZiAoIXNjaGVtZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIEh0dHBBdXRoU2NoZW1lIHdhcyBzZWxlY3RlZDogdW5hYmxlIHRvIHNpZ24gcmVxdWVzdGApO1xuICAgIH1cbiAgICBjb25zdCB7IGh0dHBBdXRoT3B0aW9uOiB7IHNpZ25pbmdQcm9wZXJ0aWVzID0ge30gfSwgaWRlbnRpdHksIHNpZ25lciwgfSA9IHNjaGVtZTtcbiAgICBsZXQgcmVxdWVzdDtcbiAgICBpZiAoY29udGV4dC5zM0V4cHJlc3NJZGVudGl0eSkge1xuICAgICAgICByZXF1ZXN0ID0gYXdhaXQgc2lnblMzRXhwcmVzcyhjb250ZXh0LnMzRXhwcmVzc0lkZW50aXR5LCBzaWduaW5nUHJvcGVydGllcywgYXJncy5yZXF1ZXN0LCBhd2FpdCBjb25maWcuc2lnbmVyKCkpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgcmVxdWVzdCA9IGF3YWl0IHNpZ25lci5zaWduKGFyZ3MucmVxdWVzdCwgaWRlbnRpdHksIHNpZ25pbmdQcm9wZXJ0aWVzKTtcbiAgICB9XG4gICAgY29uc3Qgb3V0cHV0ID0gYXdhaXQgbmV4dCh7XG4gICAgICAgIC4uLmFyZ3MsXG4gICAgICAgIHJlcXVlc3QsXG4gICAgfSkuY2F0Y2goKHNpZ25lci5lcnJvckhhbmRsZXIgfHwgZGVmYXVsdEVycm9ySGFuZGxlcikoc2lnbmluZ1Byb3BlcnRpZXMpKTtcbiAgICAoc2lnbmVyLnN1Y2Nlc3NIYW5kbGVyIHx8IGRlZmF1bHRTdWNjZXNzSGFuZGxlcikob3V0cHV0LnJlc3BvbnNlLCBzaWduaW5nUHJvcGVydGllcyk7XG4gICAgcmV0dXJuIG91dHB1dDtcbn07XG5jb25zdCBnZXRTM0V4cHJlc3NIdHRwU2lnbmluZ1BsdWdpbiA9IChjb25maWcpID0+ICh7XG4gICAgYXBwbHlUb1N0YWNrOiAoY2xpZW50U3RhY2spID0+IHtcbiAgICAgICAgY2xpZW50U3RhY2suYWRkUmVsYXRpdmVUbyhzM0V4cHJlc3NIdHRwU2lnbmluZ01pZGRsZXdhcmUoY29uZmlnKSwgY29yZSQxLmh0dHBTaWduaW5nTWlkZGxld2FyZU9wdGlvbnMpO1xuICAgIH0sXG59KTtcblxuY29uc3QgcmVzb2x2ZVMzQ29uZmlnID0gKGlucHV0LCB7IHNlc3Npb24sIH0pID0+IHtcbiAgICBjb25zdCBbczNDbGllbnRQcm92aWRlciwgQ3JlYXRlU2Vzc2lvbkNvbW1hbmRDdG9yXSA9IHNlc3Npb247XG4gICAgY29uc3QgeyBmb3JjZVBhdGhTdHlsZSwgdXNlQWNjZWxlcmF0ZUVuZHBvaW50LCBkaXNhYmxlTXVsdGlyZWdpb25BY2Nlc3NQb2ludHMsIGZvbGxvd1JlZ2lvblJlZGlyZWN0cywgczNFeHByZXNzSWRlbnRpdHlQcm92aWRlciwgYnVja2V0RW5kcG9pbnQsIGV4cGVjdENvbnRpbnVlSGVhZGVyLCB9ID0gaW5wdXQ7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oaW5wdXQsIHtcbiAgICAgICAgZm9yY2VQYXRoU3R5bGU6IGZvcmNlUGF0aFN0eWxlID8/IGZhbHNlLFxuICAgICAgICB1c2VBY2NlbGVyYXRlRW5kcG9pbnQ6IHVzZUFjY2VsZXJhdGVFbmRwb2ludCA/PyBmYWxzZSxcbiAgICAgICAgZGlzYWJsZU11bHRpcmVnaW9uQWNjZXNzUG9pbnRzOiBkaXNhYmxlTXVsdGlyZWdpb25BY2Nlc3NQb2ludHMgPz8gZmFsc2UsXG4gICAgICAgIGZvbGxvd1JlZ2lvblJlZGlyZWN0czogZm9sbG93UmVnaW9uUmVkaXJlY3RzID8/IGZhbHNlLFxuICAgICAgICBzM0V4cHJlc3NJZGVudGl0eVByb3ZpZGVyOiBzM0V4cHJlc3NJZGVudGl0eVByb3ZpZGVyID8/XG4gICAgICAgICAgICBuZXcgUzNFeHByZXNzSWRlbnRpdHlQcm92aWRlckltcGwoYXN5bmMgKGtleSkgPT4gczNDbGllbnRQcm92aWRlcigpLnNlbmQobmV3IENyZWF0ZVNlc3Npb25Db21tYW5kQ3Rvcih7XG4gICAgICAgICAgICAgICAgQnVja2V0OiBrZXksXG4gICAgICAgICAgICB9KSkpLFxuICAgICAgICBidWNrZXRFbmRwb2ludDogYnVja2V0RW5kcG9pbnQgPz8gZmFsc2UsXG4gICAgICAgIGV4cGVjdENvbnRpbnVlSGVhZGVyOiBleHBlY3RDb250aW51ZUhlYWRlciA/PyAyXzA5N18xNTIsXG4gICAgfSk7XG59O1xuXG5jb25zdCBUSFJPV19JRl9FTVBUWV9CT0RZID0ge1xuICAgIENvcHlPYmplY3RDb21tYW5kOiB0cnVlLFxuICAgIFVwbG9hZFBhcnRDb3B5Q29tbWFuZDogdHJ1ZSxcbiAgICBDb21wbGV0ZU11bHRpcGFydFVwbG9hZENvbW1hbmQ6IHRydWUsXG59O1xuY29uc3QgTUFYX0JZVEVTX1RPX0lOU1BFQ1QgPSAzMDAwO1xuY29uc3QgdGhyb3cyMDBFeGNlcHRpb25zTWlkZGxld2FyZSA9IChjb25maWcpID0+IChuZXh0LCBjb250ZXh0KSA9PiBhc3luYyAoYXJncykgPT4ge1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IG5leHQoYXJncyk7XG4gICAgY29uc3QgeyByZXNwb25zZSB9ID0gcmVzdWx0O1xuICAgIGlmICghcHJvdG9jb2xIdHRwLkh0dHBSZXNwb25zZS5pc0luc3RhbmNlKHJlc3BvbnNlKSkge1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICBjb25zdCB7IHN0YXR1c0NvZGUsIGJvZHk6IHNvdXJjZUJvZHkgfSA9IHJlc3BvbnNlO1xuICAgIGlmIChzdGF0dXNDb2RlIDwgMjAwIHx8IHN0YXR1c0NvZGUgPj0gMzAwKSB7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICAgIGNvbnN0IGlzU3BsaXR0YWJsZVN0cmVhbSA9IHR5cGVvZiBzb3VyY2VCb2R5Py5zdHJlYW0gPT09IFwiZnVuY3Rpb25cIiB8fFxuICAgICAgICB0eXBlb2Ygc291cmNlQm9keT8ucGlwZSA9PT0gXCJmdW5jdGlvblwiIHx8XG4gICAgICAgIHR5cGVvZiBzb3VyY2VCb2R5Py50ZWUgPT09IFwiZnVuY3Rpb25cIjtcbiAgICBpZiAoIWlzU3BsaXR0YWJsZVN0cmVhbSkge1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICBsZXQgYm9keUNvcHkgPSBzb3VyY2VCb2R5O1xuICAgIGxldCBib2R5ID0gc291cmNlQm9keTtcbiAgICBpZiAoc291cmNlQm9keSAmJiB0eXBlb2Ygc291cmNlQm9keSA9PT0gXCJvYmplY3RcIiAmJiAhKHNvdXJjZUJvZHkgaW5zdGFuY2VvZiBVaW50OEFycmF5KSkge1xuICAgICAgICBbYm9keUNvcHksIGJvZHldID0gYXdhaXQgdXRpbFN0cmVhbS5zcGxpdFN0cmVhbShzb3VyY2VCb2R5KTtcbiAgICB9XG4gICAgcmVzcG9uc2UuYm9keSA9IGJvZHk7XG4gICAgY29uc3QgYm9keUJ5dGVzID0gYXdhaXQgY29sbGVjdEJvZHkoYm9keUNvcHksIHtcbiAgICAgICAgc3RyZWFtQ29sbGVjdG9yOiBhc3luYyAoc3RyZWFtKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gdXRpbFN0cmVhbS5oZWFkU3RyZWFtKHN0cmVhbSwgTUFYX0JZVEVTX1RPX0lOU1BFQ1QpO1xuICAgICAgICB9LFxuICAgIH0pO1xuICAgIGlmICh0eXBlb2YgYm9keUNvcHk/LmRlc3Ryb3kgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICBib2R5Q29weS5kZXN0cm95KCk7XG4gICAgfVxuICAgIGNvbnN0IGJvZHlTdHJpbmdUYWlsID0gY29uZmlnLnV0ZjhFbmNvZGVyKGJvZHlCeXRlcy5zdWJhcnJheShib2R5Qnl0ZXMubGVuZ3RoIC0gMTYpKTtcbiAgICBpZiAoYm9keUJ5dGVzLmxlbmd0aCA9PT0gMCAmJiBUSFJPV19JRl9FTVBUWV9CT0RZW2NvbnRleHQuY29tbWFuZE5hbWVdKSB7XG4gICAgICAgIGNvbnN0IGVyciA9IG5ldyBFcnJvcihcIlMzIGFib3J0ZWQgcmVxdWVzdFwiKTtcbiAgICAgICAgZXJyLm5hbWUgPSBcIkludGVybmFsRXJyb3JcIjtcbiAgICAgICAgdGhyb3cgZXJyO1xuICAgIH1cbiAgICBpZiAoYm9keVN0cmluZ1RhaWwgJiYgYm9keVN0cmluZ1RhaWwuZW5kc1dpdGgoXCI8L0Vycm9yPlwiKSkge1xuICAgICAgICByZXNwb25zZS5zdGF0dXNDb2RlID0gNDAwO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xufTtcbmNvbnN0IGNvbGxlY3RCb2R5ID0gKHN0cmVhbUJvZHkgPSBuZXcgVWludDhBcnJheSgpLCBjb250ZXh0KSA9PiB7XG4gICAgaWYgKHN0cmVhbUJvZHkgaW5zdGFuY2VvZiBVaW50OEFycmF5KSB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoc3RyZWFtQm9keSk7XG4gICAgfVxuICAgIHJldHVybiBjb250ZXh0LnN0cmVhbUNvbGxlY3RvcihzdHJlYW1Cb2R5KSB8fCBQcm9taXNlLnJlc29sdmUobmV3IFVpbnQ4QXJyYXkoKSk7XG59O1xuY29uc3QgdGhyb3cyMDBFeGNlcHRpb25zTWlkZGxld2FyZU9wdGlvbnMgPSB7XG4gICAgcmVsYXRpb246IFwiYWZ0ZXJcIixcbiAgICB0b01pZGRsZXdhcmU6IFwiZGVzZXJpYWxpemVyTWlkZGxld2FyZVwiLFxuICAgIHRhZ3M6IFtcIlRIUk9XXzIwMF9FWENFUFRJT05TXCIsIFwiUzNcIl0sXG4gICAgbmFtZTogXCJ0aHJvdzIwMEV4Y2VwdGlvbnNNaWRkbGV3YXJlXCIsXG4gICAgb3ZlcnJpZGU6IHRydWUsXG59O1xuY29uc3QgZ2V0VGhyb3cyMDBFeGNlcHRpb25zUGx1Z2luID0gKGNvbmZpZykgPT4gKHtcbiAgICBhcHBseVRvU3RhY2s6IChjbGllbnRTdGFjaykgPT4ge1xuICAgICAgICBjbGllbnRTdGFjay5hZGRSZWxhdGl2ZVRvKHRocm93MjAwRXhjZXB0aW9uc01pZGRsZXdhcmUoY29uZmlnKSwgdGhyb3cyMDBFeGNlcHRpb25zTWlkZGxld2FyZU9wdGlvbnMpO1xuICAgIH0sXG59KTtcblxuZnVuY3Rpb24gYnVja2V0RW5kcG9pbnRNaWRkbGV3YXJlKG9wdGlvbnMpIHtcbiAgICByZXR1cm4gKG5leHQsIGNvbnRleHQpID0+IGFzeW5jIChhcmdzKSA9PiB7XG4gICAgICAgIGlmIChvcHRpb25zLmJ1Y2tldEVuZHBvaW50KSB7XG4gICAgICAgICAgICBjb25zdCBlbmRwb2ludCA9IGNvbnRleHQuZW5kcG9pbnRWMjtcbiAgICAgICAgICAgIGlmIChlbmRwb2ludCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGJ1Y2tldCA9IGFyZ3MuaW5wdXQuQnVja2V0O1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgYnVja2V0ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBidWNrZXRFbmRwb2ludFVybCA9IG5ldyBVUkwoYnVja2V0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQuZW5kcG9pbnRWMiA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5lbmRwb2ludCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGJ1Y2tldEVuZHBvaW50VXJsLFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgd2FybmluZyA9IGBAYXdzLXNkay9taWRkbGV3YXJlLXNkay1zMzogYnVja2V0RW5kcG9pbnQ9dHJ1ZSB3YXMgc2V0IGJ1dCBCdWNrZXQ9JHtidWNrZXR9IGNvdWxkIG5vdCBiZSBwYXJzZWQgYXMgVVJMLmA7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29udGV4dC5sb2dnZXI/LmNvbnN0cnVjdG9yPy5uYW1lID09PSBcIk5vT3BMb2dnZXJcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2Fybih3YXJuaW5nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQubG9nZ2VyPy53YXJuPy4od2FybmluZyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXh0KGFyZ3MpO1xuICAgIH07XG59XG5jb25zdCBidWNrZXRFbmRwb2ludE1pZGRsZXdhcmVPcHRpb25zID0ge1xuICAgIG5hbWU6IFwiYnVja2V0RW5kcG9pbnRNaWRkbGV3YXJlXCIsXG4gICAgb3ZlcnJpZGU6IHRydWUsXG4gICAgcmVsYXRpb246IFwiYWZ0ZXJcIixcbiAgICB0b01pZGRsZXdhcmU6IFwiZW5kcG9pbnRWMk1pZGRsZXdhcmVcIixcbn07XG5cbmZ1bmN0aW9uIHZhbGlkYXRlQnVja2V0TmFtZU1pZGRsZXdhcmUoeyBidWNrZXRFbmRwb2ludCB9KSB7XG4gICAgcmV0dXJuIChuZXh0KSA9PiBhc3luYyAoYXJncykgPT4ge1xuICAgICAgICBjb25zdCB7IGlucHV0OiB7IEJ1Y2tldCB9LCB9ID0gYXJncztcbiAgICAgICAgaWYgKCFidWNrZXRFbmRwb2ludCAmJiB0eXBlb2YgQnVja2V0ID09PSBcInN0cmluZ1wiICYmICF1dGlsQXJuUGFyc2VyLnZhbGlkYXRlKEJ1Y2tldCkgJiYgQnVja2V0LmluZGV4T2YoXCIvXCIpID49IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGVyciA9IG5ldyBFcnJvcihgQnVja2V0IG5hbWUgc2hvdWxkbid0IGNvbnRhaW4gJy8nLCByZWNlaXZlZCAnJHtCdWNrZXR9J2ApO1xuICAgICAgICAgICAgZXJyLm5hbWUgPSBcIkludmFsaWRCdWNrZXROYW1lXCI7XG4gICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5leHQoeyAuLi5hcmdzIH0pO1xuICAgIH07XG59XG5jb25zdCB2YWxpZGF0ZUJ1Y2tldE5hbWVNaWRkbGV3YXJlT3B0aW9ucyA9IHtcbiAgICBzdGVwOiBcImluaXRpYWxpemVcIixcbiAgICB0YWdzOiBbXCJWQUxJREFURV9CVUNLRVRfTkFNRVwiXSxcbiAgICBuYW1lOiBcInZhbGlkYXRlQnVja2V0TmFtZU1pZGRsZXdhcmVcIixcbiAgICBvdmVycmlkZTogdHJ1ZSxcbn07XG5jb25zdCBnZXRWYWxpZGF0ZUJ1Y2tldE5hbWVQbHVnaW4gPSAob3B0aW9ucykgPT4gKHtcbiAgICBhcHBseVRvU3RhY2s6IChjbGllbnRTdGFjaykgPT4ge1xuICAgICAgICBjbGllbnRTdGFjay5hZGQodmFsaWRhdGVCdWNrZXROYW1lTWlkZGxld2FyZShvcHRpb25zKSwgdmFsaWRhdGVCdWNrZXROYW1lTWlkZGxld2FyZU9wdGlvbnMpO1xuICAgICAgICBjbGllbnRTdGFjay5hZGRSZWxhdGl2ZVRvKGJ1Y2tldEVuZHBvaW50TWlkZGxld2FyZShvcHRpb25zKSwgYnVja2V0RW5kcG9pbnRNaWRkbGV3YXJlT3B0aW9ucyk7XG4gICAgfSxcbn0pO1xuXG5leHBvcnRzLk5PREVfRElTQUJMRV9TM19FWFBSRVNTX1NFU1NJT05fQVVUSF9PUFRJT05TID0gTk9ERV9ESVNBQkxFX1MzX0VYUFJFU1NfU0VTU0lPTl9BVVRIX09QVElPTlM7XG5leHBvcnRzLlMzRXhwcmVzc0lkZW50aXR5Q2FjaGUgPSBTM0V4cHJlc3NJZGVudGl0eUNhY2hlO1xuZXhwb3J0cy5TM0V4cHJlc3NJZGVudGl0eUNhY2hlRW50cnkgPSBTM0V4cHJlc3NJZGVudGl0eUNhY2hlRW50cnk7XG5leHBvcnRzLlMzRXhwcmVzc0lkZW50aXR5UHJvdmlkZXJJbXBsID0gUzNFeHByZXNzSWRlbnRpdHlQcm92aWRlckltcGw7XG5leHBvcnRzLlNpZ25hdHVyZVY0UzNFeHByZXNzID0gU2lnbmF0dXJlVjRTM0V4cHJlc3M7XG5leHBvcnRzLmNoZWNrQ29udGVudExlbmd0aEhlYWRlciA9IGNoZWNrQ29udGVudExlbmd0aEhlYWRlcjtcbmV4cG9ydHMuY2hlY2tDb250ZW50TGVuZ3RoSGVhZGVyTWlkZGxld2FyZU9wdGlvbnMgPSBjaGVja0NvbnRlbnRMZW5ndGhIZWFkZXJNaWRkbGV3YXJlT3B0aW9ucztcbmV4cG9ydHMuZ2V0Q2hlY2tDb250ZW50TGVuZ3RoSGVhZGVyUGx1Z2luID0gZ2V0Q2hlY2tDb250ZW50TGVuZ3RoSGVhZGVyUGx1Z2luO1xuZXhwb3J0cy5nZXRSZWdpb25SZWRpcmVjdE1pZGRsZXdhcmVQbHVnaW4gPSBnZXRSZWdpb25SZWRpcmVjdE1pZGRsZXdhcmVQbHVnaW47XG5leHBvcnRzLmdldFMzRXhwaXJlc01pZGRsZXdhcmVQbHVnaW4gPSBnZXRTM0V4cGlyZXNNaWRkbGV3YXJlUGx1Z2luO1xuZXhwb3J0cy5nZXRTM0V4cHJlc3NIdHRwU2lnbmluZ1BsdWdpbiA9IGdldFMzRXhwcmVzc0h0dHBTaWduaW5nUGx1Z2luO1xuZXhwb3J0cy5nZXRTM0V4cHJlc3NQbHVnaW4gPSBnZXRTM0V4cHJlc3NQbHVnaW47XG5leHBvcnRzLmdldFRocm93MjAwRXhjZXB0aW9uc1BsdWdpbiA9IGdldFRocm93MjAwRXhjZXB0aW9uc1BsdWdpbjtcbmV4cG9ydHMuZ2V0VmFsaWRhdGVCdWNrZXROYW1lUGx1Z2luID0gZ2V0VmFsaWRhdGVCdWNrZXROYW1lUGx1Z2luO1xuZXhwb3J0cy5yZWdpb25SZWRpcmVjdEVuZHBvaW50TWlkZGxld2FyZSA9IHJlZ2lvblJlZGlyZWN0RW5kcG9pbnRNaWRkbGV3YXJlO1xuZXhwb3J0cy5yZWdpb25SZWRpcmVjdEVuZHBvaW50TWlkZGxld2FyZU9wdGlvbnMgPSByZWdpb25SZWRpcmVjdEVuZHBvaW50TWlkZGxld2FyZU9wdGlvbnM7XG5leHBvcnRzLnJlZ2lvblJlZGlyZWN0TWlkZGxld2FyZSA9IHJlZ2lvblJlZGlyZWN0TWlkZGxld2FyZTtcbmV4cG9ydHMucmVnaW9uUmVkaXJlY3RNaWRkbGV3YXJlT3B0aW9ucyA9IHJlZ2lvblJlZGlyZWN0TWlkZGxld2FyZU9wdGlvbnM7XG5leHBvcnRzLnJlc29sdmVTM0NvbmZpZyA9IHJlc29sdmVTM0NvbmZpZztcbmV4cG9ydHMuczNFeHBpcmVzTWlkZGxld2FyZSA9IHMzRXhwaXJlc01pZGRsZXdhcmU7XG5leHBvcnRzLnMzRXhwaXJlc01pZGRsZXdhcmVPcHRpb25zID0gczNFeHBpcmVzTWlkZGxld2FyZU9wdGlvbnM7XG5leHBvcnRzLnMzRXhwcmVzc0h0dHBTaWduaW5nTWlkZGxld2FyZSA9IHMzRXhwcmVzc0h0dHBTaWduaW5nTWlkZGxld2FyZTtcbmV4cG9ydHMuczNFeHByZXNzSHR0cFNpZ25pbmdNaWRkbGV3YXJlT3B0aW9ucyA9IHMzRXhwcmVzc0h0dHBTaWduaW5nTWlkZGxld2FyZU9wdGlvbnM7XG5leHBvcnRzLnMzRXhwcmVzc01pZGRsZXdhcmUgPSBzM0V4cHJlc3NNaWRkbGV3YXJlO1xuZXhwb3J0cy5zM0V4cHJlc3NNaWRkbGV3YXJlT3B0aW9ucyA9IHMzRXhwcmVzc01pZGRsZXdhcmVPcHRpb25zO1xuZXhwb3J0cy50aHJvdzIwMEV4Y2VwdGlvbnNNaWRkbGV3YXJlID0gdGhyb3cyMDBFeGNlcHRpb25zTWlkZGxld2FyZTtcbmV4cG9ydHMudGhyb3cyMDBFeGNlcHRpb25zTWlkZGxld2FyZU9wdGlvbnMgPSB0aHJvdzIwMEV4Y2VwdGlvbnNNaWRkbGV3YXJlT3B0aW9ucztcbmV4cG9ydHMudmFsaWRhdGVCdWNrZXROYW1lTWlkZGxld2FyZSA9IHZhbGlkYXRlQnVja2V0TmFtZU1pZGRsZXdhcmU7XG5leHBvcnRzLnZhbGlkYXRlQnVja2V0TmFtZU1pZGRsZXdhcmVPcHRpb25zID0gdmFsaWRhdGVCdWNrZXROYW1lTWlkZGxld2FyZU9wdGlvbnM7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgbWlkZGxld2FyZVNka1MzID0gcmVxdWlyZSgnQGF3cy1zZGsvbWlkZGxld2FyZS1zZGstczMnKTtcbnZhciBzaWduYXR1cmVWNCA9IHJlcXVpcmUoJ0BzbWl0aHkvc2lnbmF0dXJlLXY0Jyk7XG5cbmNvbnN0IHNpZ25hdHVyZVY0Q3J0Q29udGFpbmVyID0ge1xuICAgIENydFNpZ25lclY0OiBudWxsLFxufTtcblxuY2xhc3MgU2lnbmF0dXJlVjRNdWx0aVJlZ2lvbiB7XG4gICAgc2lndjRhU2lnbmVyO1xuICAgIHNpZ3Y0U2lnbmVyO1xuICAgIHNpZ25lck9wdGlvbnM7XG4gICAgc3RhdGljIHNpZ3Y0YURlcGVuZGVuY3koKSB7XG4gICAgICAgIGlmICh0eXBlb2Ygc2lnbmF0dXJlVjRDcnRDb250YWluZXIuQ3J0U2lnbmVyVjQgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgcmV0dXJuIFwiY3J0XCI7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodHlwZW9mIHNpZ25hdHVyZVY0LnNpZ25hdHVyZVY0YUNvbnRhaW5lci5TaWduYXR1cmVWNGEgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgcmV0dXJuIFwianNcIjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gXCJub25lXCI7XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5zaWd2NFNpZ25lciA9IG5ldyBtaWRkbGV3YXJlU2RrUzMuU2lnbmF0dXJlVjRTM0V4cHJlc3Mob3B0aW9ucyk7XG4gICAgICAgIHRoaXMuc2lnbmVyT3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgfVxuICAgIGFzeW5jIHNpZ24ocmVxdWVzdFRvU2lnbiwgb3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIGlmIChvcHRpb25zLnNpZ25pbmdSZWdpb24gPT09IFwiKlwiKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRTaWd2NGFTaWduZXIoKS5zaWduKHJlcXVlc3RUb1NpZ24sIG9wdGlvbnMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnNpZ3Y0U2lnbmVyLnNpZ24ocmVxdWVzdFRvU2lnbiwgb3B0aW9ucyk7XG4gICAgfVxuICAgIGFzeW5jIHNpZ25XaXRoQ3JlZGVudGlhbHMocmVxdWVzdFRvU2lnbiwgY3JlZGVudGlhbHMsIG9wdGlvbnMgPSB7fSkge1xuICAgICAgICBpZiAob3B0aW9ucy5zaWduaW5nUmVnaW9uID09PSBcIipcIikge1xuICAgICAgICAgICAgY29uc3Qgc2lnbmVyID0gdGhpcy5nZXRTaWd2NGFTaWduZXIoKTtcbiAgICAgICAgICAgIGNvbnN0IENydFNpZ25lclY0ID0gc2lnbmF0dXJlVjRDcnRDb250YWluZXIuQ3J0U2lnbmVyVjQ7XG4gICAgICAgICAgICBpZiAoQ3J0U2lnbmVyVjQgJiYgc2lnbmVyIGluc3RhbmNlb2YgQ3J0U2lnbmVyVjQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc2lnbmVyLnNpZ25XaXRoQ3JlZGVudGlhbHMocmVxdWVzdFRvU2lnbiwgY3JlZGVudGlhbHMsIG9wdGlvbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBzaWduV2l0aENyZWRlbnRpYWxzIHdpdGggc2lnbmluZ1JlZ2lvbiAnKicgaXMgb25seSBzdXBwb3J0ZWQgd2hlbiB1c2luZyB0aGUgQ1JUIGRlcGVuZGVuY3kgQGF3cy1zZGsvc2lnbmF0dXJlLXY0LWNydC4gYCArXG4gICAgICAgICAgICAgICAgICAgIGBQbGVhc2UgY2hlY2sgd2hldGhlciB5b3UgaGF2ZSBpbnN0YWxsZWQgdGhlIFwiQGF3cy1zZGsvc2lnbmF0dXJlLXY0LWNydFwiIHBhY2thZ2UgZXhwbGljaXRseS4gYCArXG4gICAgICAgICAgICAgICAgICAgIGBZb3UgbXVzdCBhbHNvIHJlZ2lzdGVyIHRoZSBwYWNrYWdlIGJ5IGNhbGxpbmcgW3JlcXVpcmUoXCJAYXdzLXNkay9zaWduYXR1cmUtdjQtY3J0XCIpO10gYCArXG4gICAgICAgICAgICAgICAgICAgIGBvciBhbiBFU00gZXF1aXZhbGVudCBzdWNoIGFzIFtpbXBvcnQgXCJAYXdzLXNkay9zaWduYXR1cmUtdjQtY3J0XCI7XS4gYCArXG4gICAgICAgICAgICAgICAgICAgIGBGb3IgbW9yZSBpbmZvcm1hdGlvbiBwbGVhc2UgZ28gdG8gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3Mtc2RrLWpzLXYzI2Z1bmN0aW9uYWxpdHktcmVxdWlyaW5nLWF3cy1jb21tb24tcnVudGltZS1jcnRgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5zaWd2NFNpZ25lci5zaWduV2l0aENyZWRlbnRpYWxzKHJlcXVlc3RUb1NpZ24sIGNyZWRlbnRpYWxzLCBvcHRpb25zKTtcbiAgICB9XG4gICAgYXN5bmMgcHJlc2lnbihvcmlnaW5hbFJlcXVlc3QsIG9wdGlvbnMgPSB7fSkge1xuICAgICAgICBpZiAob3B0aW9ucy5zaWduaW5nUmVnaW9uID09PSBcIipcIikge1xuICAgICAgICAgICAgY29uc3Qgc2lnbmVyID0gdGhpcy5nZXRTaWd2NGFTaWduZXIoKTtcbiAgICAgICAgICAgIGNvbnN0IENydFNpZ25lclY0ID0gc2lnbmF0dXJlVjRDcnRDb250YWluZXIuQ3J0U2lnbmVyVjQ7XG4gICAgICAgICAgICBpZiAoQ3J0U2lnbmVyVjQgJiYgc2lnbmVyIGluc3RhbmNlb2YgQ3J0U2lnbmVyVjQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc2lnbmVyLnByZXNpZ24ob3JpZ2luYWxSZXF1ZXN0LCBvcHRpb25zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgcHJlc2lnbiB3aXRoIHNpZ25pbmdSZWdpb24gJyonIGlzIG9ubHkgc3VwcG9ydGVkIHdoZW4gdXNpbmcgdGhlIENSVCBkZXBlbmRlbmN5IEBhd3Mtc2RrL3NpZ25hdHVyZS12NC1jcnQuIGAgK1xuICAgICAgICAgICAgICAgICAgICBgUGxlYXNlIGNoZWNrIHdoZXRoZXIgeW91IGhhdmUgaW5zdGFsbGVkIHRoZSBcIkBhd3Mtc2RrL3NpZ25hdHVyZS12NC1jcnRcIiBwYWNrYWdlIGV4cGxpY2l0bHkuIGAgK1xuICAgICAgICAgICAgICAgICAgICBgWW91IG11c3QgYWxzbyByZWdpc3RlciB0aGUgcGFja2FnZSBieSBjYWxsaW5nIFtyZXF1aXJlKFwiQGF3cy1zZGsvc2lnbmF0dXJlLXY0LWNydFwiKTtdIGAgK1xuICAgICAgICAgICAgICAgICAgICBgb3IgYW4gRVNNIGVxdWl2YWxlbnQgc3VjaCBhcyBbaW1wb3J0IFwiQGF3cy1zZGsvc2lnbmF0dXJlLXY0LWNydFwiO10uIGAgK1xuICAgICAgICAgICAgICAgICAgICBgRm9yIG1vcmUgaW5mb3JtYXRpb24gcGxlYXNlIGdvIHRvIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLXNkay1qcy12MyNmdW5jdGlvbmFsaXR5LXJlcXVpcmluZy1hd3MtY29tbW9uLXJ1bnRpbWUtY3J0YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuc2lndjRTaWduZXIucHJlc2lnbihvcmlnaW5hbFJlcXVlc3QsIG9wdGlvbnMpO1xuICAgIH1cbiAgICBhc3luYyBwcmVzaWduV2l0aENyZWRlbnRpYWxzKG9yaWdpbmFsUmVxdWVzdCwgY3JlZGVudGlhbHMsIG9wdGlvbnMgPSB7fSkge1xuICAgICAgICBpZiAob3B0aW9ucy5zaWduaW5nUmVnaW9uID09PSBcIipcIikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWV0aG9kIHByZXNpZ25XaXRoQ3JlZGVudGlhbHMgaXMgbm90IHN1cHBvcnRlZCBmb3IgW3NpZ25pbmdSZWdpb249Kl0uXCIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnNpZ3Y0U2lnbmVyLnByZXNpZ25XaXRoQ3JlZGVudGlhbHMob3JpZ2luYWxSZXF1ZXN0LCBjcmVkZW50aWFscywgb3B0aW9ucyk7XG4gICAgfVxuICAgIGdldFNpZ3Y0YVNpZ25lcigpIHtcbiAgICAgICAgaWYgKCF0aGlzLnNpZ3Y0YVNpZ25lcikge1xuICAgICAgICAgICAgY29uc3QgQ3J0U2lnbmVyVjQgPSBzaWduYXR1cmVWNENydENvbnRhaW5lci5DcnRTaWduZXJWNDtcbiAgICAgICAgICAgIGNvbnN0IEpzU2lnVjRhU2lnbmVyID0gc2lnbmF0dXJlVjQuc2lnbmF0dXJlVjRhQ29udGFpbmVyLlNpZ25hdHVyZVY0YTtcbiAgICAgICAgICAgIGlmICh0aGlzLnNpZ25lck9wdGlvbnMucnVudGltZSA9PT0gXCJub2RlXCIpIHtcbiAgICAgICAgICAgICAgICBpZiAoIUNydFNpZ25lclY0ICYmICFKc1NpZ1Y0YVNpZ25lcikge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJOZWl0aGVyIENSVCBub3IgSlMgU2lnVjRhIGltcGxlbWVudGF0aW9uIGlzIGF2YWlsYWJsZS4gXCIgK1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJQbGVhc2UgbG9hZCBlaXRoZXIgQGF3cy1zZGsvc2lnbmF0dXJlLXY0LWNydCBvciBAYXdzLXNkay9zaWduYXR1cmUtdjRhLiBcIiArXG4gICAgICAgICAgICAgICAgICAgICAgICBcIkZvciBtb3JlIGluZm9ybWF0aW9uIHBsZWFzZSBnbyB0byBcIiArXG4gICAgICAgICAgICAgICAgICAgICAgICBcImh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLXNkay1qcy12MyNmdW5jdGlvbmFsaXR5LXJlcXVpcmluZy1hd3MtY29tbW9uLXJ1bnRpbWUtY3J0XCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoQ3J0U2lnbmVyVjQgJiYgdHlwZW9mIENydFNpZ25lclY0ID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zaWd2NGFTaWduZXIgPSBuZXcgQ3J0U2lnbmVyVjQoe1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5zaWduZXJPcHRpb25zLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmluZ0FsZ29yaXRobTogMSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKEpzU2lnVjRhU2lnbmVyICYmIHR5cGVvZiBKc1NpZ1Y0YVNpZ25lciA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2lndjRhU2lnbmVyID0gbmV3IEpzU2lnVjRhU2lnbmVyKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLnRoaXMuc2lnbmVyT3B0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJBdmFpbGFibGUgU2lnVjRhIGltcGxlbWVudGF0aW9uIGlzIG5vdCBhIHZhbGlkIGNvbnN0cnVjdG9yLiBcIiArXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlBsZWFzZSBlbnN1cmUgeW91J3ZlIHByb3Blcmx5IGltcG9ydGVkIEBhd3Mtc2RrL3NpZ25hdHVyZS12NC1jcnQgb3IgQGF3cy1zZGsvc2lnbmF0dXJlLXY0YS5cIiArXG4gICAgICAgICAgICAgICAgICAgICAgICBcIkZvciBtb3JlIGluZm9ybWF0aW9uIHBsZWFzZSBnbyB0byBcIiArXG4gICAgICAgICAgICAgICAgICAgICAgICBcImh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLXNkay1qcy12MyNmdW5jdGlvbmFsaXR5LXJlcXVpcmluZy1hd3MtY29tbW9uLXJ1bnRpbWUtY3J0XCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmICghSnNTaWdWNGFTaWduZXIgfHwgdHlwZW9mIEpzU2lnVjRhU2lnbmVyICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiSlMgU2lnVjRhIGltcGxlbWVudGF0aW9uIGlzIG5vdCBhdmFpbGFibGUgb3Igbm90IGEgdmFsaWQgY29uc3RydWN0b3IuIFwiICtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiUGxlYXNlIGNoZWNrIHdoZXRoZXIgeW91IGhhdmUgaW5zdGFsbGVkIHRoZSBAYXdzLXNkay9zaWduYXR1cmUtdjRhIHBhY2thZ2UgZXhwbGljaXRseS4gVGhlIENSVCBpbXBsZW1lbnRhdGlvbiBpcyBub3QgYXZhaWxhYmxlIGZvciBicm93c2Vycy4gXCIgK1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJZb3UgbXVzdCBhbHNvIHJlZ2lzdGVyIHRoZSBwYWNrYWdlIGJ5IGNhbGxpbmcgW3JlcXVpcmUoJ0Bhd3Mtc2RrL3NpZ25hdHVyZS12NGEnKTtdIFwiICtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwib3IgYW4gRVNNIGVxdWl2YWxlbnQgc3VjaCBhcyBbaW1wb3J0ICdAYXdzLXNkay9zaWduYXR1cmUtdjRhJztdLiBcIiArXG4gICAgICAgICAgICAgICAgICAgICAgICBcIkZvciBtb3JlIGluZm9ybWF0aW9uIHBsZWFzZSBnbyB0byBcIiArXG4gICAgICAgICAgICAgICAgICAgICAgICBcImh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLXNkay1qcy12MyN1c2luZy1qYXZhc2NyaXB0LW5vbi1jcnQtaW1wbGVtZW50YXRpb24tb2Ytc2lndjRhXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLnNpZ3Y0YVNpZ25lciA9IG5ldyBKc1NpZ1Y0YVNpZ25lcih7XG4gICAgICAgICAgICAgICAgICAgIC4uLnRoaXMuc2lnbmVyT3B0aW9ucyxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5zaWd2NGFTaWduZXI7XG4gICAgfVxufVxuXG5leHBvcnRzLlNpZ25hdHVyZVY0TXVsdGlSZWdpb24gPSBTaWduYXR1cmVWNE11bHRpUmVnaW9uO1xuZXhwb3J0cy5zaWduYXR1cmVWNENydENvbnRhaW5lciA9IHNpZ25hdHVyZVY0Q3J0Q29udGFpbmVyO1xuIiwgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5ydWxlU2V0ID0gdm9pZCAwO1xuY29uc3QgY3MgPSBcInJlcXVpcmVkXCIsIGN0ID0gXCJ0eXBlXCIsIGN1ID0gXCJydWxlc1wiLCBjdiA9IFwiY29uZGl0aW9uc1wiLCBjdyA9IFwiZm5cIiwgY3ggPSBcImFyZ3ZcIiwgY3kgPSBcInJlZlwiLCBjeiA9IFwiYXNzaWduXCIsIGNBID0gXCJ1cmxcIiwgY0IgPSBcInByb3BlcnRpZXNcIiwgY0MgPSBcImJhY2tlbmRcIiwgY0QgPSBcImF1dGhTY2hlbWVzXCIsIGNFID0gXCJkaXNhYmxlRG91YmxlRW5jb2RpbmdcIiwgY0YgPSBcInNpZ25pbmdOYW1lXCIsIGNHID0gXCJzaWduaW5nUmVnaW9uXCIsIGNIID0gXCJoZWFkZXJzXCIsIGNJID0gXCJzaWduaW5nUmVnaW9uU2V0XCI7XG5jb25zdCBhID0gNiwgYiA9IGZhbHNlLCBjID0gdHJ1ZSwgZCA9IFwiaXNTZXRcIiwgZSA9IFwiYm9vbGVhbkVxdWFsc1wiLCBmID0gXCJlcnJvclwiLCBnID0gXCJhd3MucGFydGl0aW9uXCIsIGggPSBcInN0cmluZ0VxdWFsc1wiLCBpID0gXCJnZXRBdHRyXCIsIGogPSBcIm5hbWVcIiwgayA9IFwic3Vic3RyaW5nXCIsIGwgPSBcImJ1Y2tldFN1ZmZpeFwiLCBtID0gXCJwYXJzZVVSTFwiLCBuID0gXCJlbmRwb2ludFwiLCBvID0gXCJ0cmVlXCIsIHAgPSBcImF3cy5pc1ZpcnR1YWxIb3N0YWJsZVMzQnVja2V0XCIsIHEgPSBcInt1cmwjc2NoZW1lfTovL3tCdWNrZXR9Lnt1cmwjYXV0aG9yaXR5fXt1cmwjcGF0aH1cIiwgciA9IFwibm90XCIsIHMgPSBcImFjY2Vzc1BvaW50U3VmZml4XCIsIHQgPSBcInt1cmwjc2NoZW1lfTovL3t1cmwjYXV0aG9yaXR5fXt1cmwjcGF0aH1cIiwgdSA9IFwiaGFyZHdhcmVUeXBlXCIsIHYgPSBcInJlZ2lvblByZWZpeFwiLCB3ID0gXCJidWNrZXRBbGlhc1N1ZmZpeFwiLCB4ID0gXCJvdXRwb3N0SWRcIiwgeSA9IFwiaXNWYWxpZEhvc3RMYWJlbFwiLCB6ID0gXCJzaWd2NGFcIiwgQSA9IFwiczMtb3V0cG9zdHNcIiwgQiA9IFwiczNcIiwgQyA9IFwie3VybCNzY2hlbWV9Oi8ve3VybCNhdXRob3JpdHl9e3VybCNub3JtYWxpemVkUGF0aH17QnVja2V0fVwiLCBEID0gXCJodHRwczovL3tCdWNrZXR9LnMzLWFjY2VsZXJhdGUue3BhcnRpdGlvblJlc3VsdCNkbnNTdWZmaXh9XCIsIEUgPSBcImh0dHBzOi8ve0J1Y2tldH0uczMue3BhcnRpdGlvblJlc3VsdCNkbnNTdWZmaXh9XCIsIEYgPSBcImF3cy5wYXJzZUFyblwiLCBHID0gXCJidWNrZXRBcm5cIiwgSCA9IFwiYXJuVHlwZVwiLCBJID0gXCJcIiwgSiA9IFwiczMtb2JqZWN0LWxhbWJkYVwiLCBLID0gXCJhY2Nlc3Nwb2ludFwiLCBMID0gXCJhY2Nlc3NQb2ludE5hbWVcIiwgTSA9IFwie3VybCNzY2hlbWV9Oi8ve2FjY2Vzc1BvaW50TmFtZX0te2J1Y2tldEFybiNhY2NvdW50SWR9Lnt1cmwjYXV0aG9yaXR5fXt1cmwjcGF0aH1cIiwgTiA9IFwibXJhcFBhcnRpdGlvblwiLCBPID0gXCJvdXRwb3N0VHlwZVwiLCBQID0gXCJhcm5QcmVmaXhcIiwgUSA9IFwie3VybCNzY2hlbWV9Oi8ve3VybCNhdXRob3JpdHl9e3VybCNub3JtYWxpemVkUGF0aH17dXJpX2VuY29kZWRfYnVja2V0fVwiLCBSID0gXCJodHRwczovL3MzLntwYXJ0aXRpb25SZXN1bHQjZG5zU3VmZml4fS97dXJpX2VuY29kZWRfYnVja2V0fVwiLCBTID0gXCJodHRwczovL3MzLntwYXJ0aXRpb25SZXN1bHQjZG5zU3VmZml4fVwiLCBUID0geyBbY3NdOiBmYWxzZSwgW2N0XTogXCJzdHJpbmdcIiB9LCBVID0geyBbY3NdOiB0cnVlLCBcImRlZmF1bHRcIjogZmFsc2UsIFtjdF06IFwiYm9vbGVhblwiIH0sIFYgPSB7IFtjc106IGZhbHNlLCBbY3RdOiBcImJvb2xlYW5cIiB9LCBXID0geyBbY3ddOiBlLCBbY3hdOiBbeyBbY3ldOiBcIkFjY2VsZXJhdGVcIiB9LCB0cnVlXSB9LCBYID0geyBbY3ddOiBlLCBbY3hdOiBbeyBbY3ldOiBcIlVzZUZJUFNcIiB9LCB0cnVlXSB9LCBZID0geyBbY3ddOiBlLCBbY3hdOiBbeyBbY3ldOiBcIlVzZUR1YWxTdGFja1wiIH0sIHRydWVdIH0sIFogPSB7IFtjd106IGQsIFtjeF06IFt7IFtjeV06IFwiRW5kcG9pbnRcIiB9XSB9LCBhYSA9IHsgW2N3XTogZywgW2N4XTogW3sgW2N5XTogXCJSZWdpb25cIiB9XSwgW2N6XTogXCJwYXJ0aXRpb25SZXN1bHRcIiB9LCBhYiA9IHsgW2N3XTogaCwgW2N4XTogW3sgW2N3XTogaSwgW2N4XTogW3sgW2N5XTogXCJwYXJ0aXRpb25SZXN1bHRcIiB9LCBqXSB9LCBcImF3cy1jblwiXSB9LCBhYyA9IHsgW2N3XTogZCwgW2N4XTogW3sgW2N5XTogXCJCdWNrZXRcIiB9XSB9LCBhZCA9IHsgW2N5XTogXCJCdWNrZXRcIiB9LCBhZSA9IHsgW2N2XTogW1ddLCBbZl06IFwiUzNFeHByZXNzIGRvZXMgbm90IHN1cHBvcnQgUzMgQWNjZWxlcmF0ZS5cIiwgW2N0XTogZiB9LCBhZiA9IHsgW2N2XTogW1osIHsgW2N3XTogbSwgW2N4XTogW3sgW2N5XTogXCJFbmRwb2ludFwiIH1dLCBbY3pdOiBcInVybFwiIH1dLCBbY3VdOiBbeyBbY3ZdOiBbeyBbY3ddOiBkLCBbY3hdOiBbeyBbY3ldOiBcIkRpc2FibGVTM0V4cHJlc3NTZXNzaW9uQXV0aFwiIH1dIH0sIHsgW2N3XTogZSwgW2N4XTogW3sgW2N5XTogXCJEaXNhYmxlUzNFeHByZXNzU2Vzc2lvbkF1dGhcIiB9LCB0cnVlXSB9XSwgW2N1XTogW3sgW2N2XTogW3sgW2N3XTogZSwgW2N4XTogW3sgW2N3XTogaSwgW2N4XTogW3sgW2N5XTogXCJ1cmxcIiB9LCBcImlzSXBcIl0gfSwgdHJ1ZV0gfV0sIFtjdV06IFt7IFtjdl06IFt7IFtjd106IFwidXJpRW5jb2RlXCIsIFtjeF06IFthZF0sIFtjel06IFwidXJpX2VuY29kZWRfYnVja2V0XCIgfV0sIFtjdV06IFt7IFtuXTogeyBbY0FdOiBcInt1cmwjc2NoZW1lfTovL3t1cmwjYXV0aG9yaXR5fS97dXJpX2VuY29kZWRfYnVja2V0fXt1cmwjcGF0aH1cIiwgW2NCXTogeyBbY0NdOiBcIlMzRXhwcmVzc1wiLCBbY0RdOiBbeyBbY0VdOiB0cnVlLCBbal06IFwic2lndjRcIiwgW2NGXTogXCJzM2V4cHJlc3NcIiwgW2NHXTogXCJ7UmVnaW9ufVwiIH1dIH0sIFtjSF06IHt9IH0sIFtjdF06IG4gfV0sIFtjdF06IG8gfV0sIFtjdF06IG8gfSwgeyBbY3ZdOiBbeyBbY3ddOiBwLCBbY3hdOiBbYWQsIGZhbHNlXSB9XSwgW2N1XTogW3sgW25dOiB7IFtjQV06IHEsIFtjQl06IHsgW2NDXTogXCJTM0V4cHJlc3NcIiwgW2NEXTogW3sgW2NFXTogdHJ1ZSwgW2pdOiBcInNpZ3Y0XCIsIFtjRl06IFwiczNleHByZXNzXCIsIFtjR106IFwie1JlZ2lvbn1cIiB9XSB9LCBbY0hdOiB7fSB9LCBbY3RdOiBuIH1dLCBbY3RdOiBvIH0sIHsgW2ZdOiBcIlMzRXhwcmVzcyBidWNrZXQgbmFtZSBpcyBub3QgYSB2YWxpZCB2aXJ0dWFsIGhvc3RhYmxlIG5hbWUuXCIsIFtjdF06IGYgfV0sIFtjdF06IG8gfSwgeyBbY3ZdOiBbeyBbY3ddOiBlLCBbY3hdOiBbeyBbY3ddOiBpLCBbY3hdOiBbeyBbY3ldOiBcInVybFwiIH0sIFwiaXNJcFwiXSB9LCB0cnVlXSB9XSwgW2N1XTogW3sgW2N2XTogW3sgW2N3XTogXCJ1cmlFbmNvZGVcIiwgW2N4XTogW2FkXSwgW2N6XTogXCJ1cmlfZW5jb2RlZF9idWNrZXRcIiB9XSwgW2N1XTogW3sgW25dOiB7IFtjQV06IFwie3VybCNzY2hlbWV9Oi8ve3VybCNhdXRob3JpdHl9L3t1cmlfZW5jb2RlZF9idWNrZXR9e3VybCNwYXRofVwiLCBbY0JdOiB7IFtjQ106IFwiUzNFeHByZXNzXCIsIFtjRF06IFt7IFtjRV06IHRydWUsIFtqXTogXCJzaWd2NC1zM2V4cHJlc3NcIiwgW2NGXTogXCJzM2V4cHJlc3NcIiwgW2NHXTogXCJ7UmVnaW9ufVwiIH1dIH0sIFtjSF06IHt9IH0sIFtjdF06IG4gfV0sIFtjdF06IG8gfV0sIFtjdF06IG8gfSwgeyBbY3ZdOiBbeyBbY3ddOiBwLCBbY3hdOiBbYWQsIGZhbHNlXSB9XSwgW2N1XTogW3sgW25dOiB7IFtjQV06IHEsIFtjQl06IHsgW2NDXTogXCJTM0V4cHJlc3NcIiwgW2NEXTogW3sgW2NFXTogdHJ1ZSwgW2pdOiBcInNpZ3Y0LXMzZXhwcmVzc1wiLCBbY0ZdOiBcInMzZXhwcmVzc1wiLCBbY0ddOiBcIntSZWdpb259XCIgfV0gfSwgW2NIXToge30gfSwgW2N0XTogbiB9XSwgW2N0XTogbyB9LCB7IFtmXTogXCJTM0V4cHJlc3MgYnVja2V0IG5hbWUgaXMgbm90IGEgdmFsaWQgdmlydHVhbCBob3N0YWJsZSBuYW1lLlwiLCBbY3RdOiBmIH1dLCBbY3RdOiBvIH0sIGFnID0geyBbY3ddOiBtLCBbY3hdOiBbeyBbY3ldOiBcIkVuZHBvaW50XCIgfV0sIFtjel06IFwidXJsXCIgfSwgYWggPSB7IFtjd106IGUsIFtjeF06IFt7IFtjd106IGksIFtjeF06IFt7IFtjeV06IFwidXJsXCIgfSwgXCJpc0lwXCJdIH0sIHRydWVdIH0sIGFpID0geyBbY3ldOiBcInVybFwiIH0sIGFqID0geyBbY3ddOiBcInVyaUVuY29kZVwiLCBbY3hdOiBbYWRdLCBbY3pdOiBcInVyaV9lbmNvZGVkX2J1Y2tldFwiIH0sIGFrID0geyBbY0NdOiBcIlMzRXhwcmVzc1wiLCBbY0RdOiBbeyBbY0VdOiB0cnVlLCBbal06IFwic2lndjRcIiwgW2NGXTogXCJzM2V4cHJlc3NcIiwgW2NHXTogXCJ7UmVnaW9ufVwiIH1dIH0sIGFsID0ge30sIGFtID0geyBbY3ddOiBwLCBbY3hdOiBbYWQsIGZhbHNlXSB9LCBhbiA9IHsgW2ZdOiBcIlMzRXhwcmVzcyBidWNrZXQgbmFtZSBpcyBub3QgYSB2YWxpZCB2aXJ0dWFsIGhvc3RhYmxlIG5hbWUuXCIsIFtjdF06IGYgfSwgYW8gPSB7IFtjd106IGQsIFtjeF06IFt7IFtjeV06IFwiVXNlUzNFeHByZXNzQ29udHJvbEVuZHBvaW50XCIgfV0gfSwgYXAgPSB7IFtjd106IGUsIFtjeF06IFt7IFtjeV06IFwiVXNlUzNFeHByZXNzQ29udHJvbEVuZHBvaW50XCIgfSwgdHJ1ZV0gfSwgYXEgPSB7IFtjd106IHIsIFtjeF06IFtaXSB9LCBhciA9IHsgW2N3XTogZSwgW2N4XTogW3sgW2N5XTogXCJVc2VEdWFsU3RhY2tcIiB9LCBmYWxzZV0gfSwgYXMgPSB7IFtjd106IGUsIFtjeF06IFt7IFtjeV06IFwiVXNlRklQU1wiIH0sIGZhbHNlXSB9LCBhdCA9IHsgW2ZdOiBcIlVucmVjb2duaXplZCBTM0V4cHJlc3MgYnVja2V0IG5hbWUgZm9ybWF0LlwiLCBbY3RdOiBmIH0sIGF1ID0geyBbY3ddOiByLCBbY3hdOiBbYWNdIH0sIGF2ID0geyBbY3ldOiB1IH0sIGF3ID0geyBbY3ZdOiBbYXFdLCBbZl06IFwiRXhwZWN0ZWQgYSBlbmRwb2ludCB0byBiZSBzcGVjaWZpZWQgYnV0IG5vIGVuZHBvaW50IHdhcyBmb3VuZFwiLCBbY3RdOiBmIH0sIGF4ID0geyBbY0RdOiBbeyBbY0VdOiB0cnVlLCBbal06IHosIFtjRl06IEEsIFtjSV06IFtcIipcIl0gfSwgeyBbY0VdOiB0cnVlLCBbal06IFwic2lndjRcIiwgW2NGXTogQSwgW2NHXTogXCJ7UmVnaW9ufVwiIH1dIH0sIGF5ID0geyBbY3ddOiBlLCBbY3hdOiBbeyBbY3ldOiBcIkZvcmNlUGF0aFN0eWxlXCIgfSwgZmFsc2VdIH0sIGF6ID0geyBbY3ldOiBcIkZvcmNlUGF0aFN0eWxlXCIgfSwgYUEgPSB7IFtjd106IGUsIFtjeF06IFt7IFtjeV06IFwiQWNjZWxlcmF0ZVwiIH0sIGZhbHNlXSB9LCBhQiA9IHsgW2N3XTogaCwgW2N4XTogW3sgW2N5XTogXCJSZWdpb25cIiB9LCBcImF3cy1nbG9iYWxcIl0gfSwgYUMgPSB7IFtjRF06IFt7IFtjRV06IHRydWUsIFtqXTogXCJzaWd2NFwiLCBbY0ZdOiBCLCBbY0ddOiBcInVzLWVhc3QtMVwiIH1dIH0sIGFEID0geyBbY3ddOiByLCBbY3hdOiBbYUJdIH0sIGFFID0geyBbY3ddOiBlLCBbY3hdOiBbeyBbY3ldOiBcIlVzZUdsb2JhbEVuZHBvaW50XCIgfSwgdHJ1ZV0gfSwgYUYgPSB7IFtjQV06IFwiaHR0cHM6Ly97QnVja2V0fS5zMy1maXBzLmR1YWxzdGFjay57UmVnaW9ufS57cGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH1cIiwgW2NCXTogeyBbY0RdOiBbeyBbY0VdOiB0cnVlLCBbal06IFwic2lndjRcIiwgW2NGXTogQiwgW2NHXTogXCJ7UmVnaW9ufVwiIH1dIH0sIFtjSF06IHt9IH0sIGFHID0geyBbY0RdOiBbeyBbY0VdOiB0cnVlLCBbal06IFwic2lndjRcIiwgW2NGXTogQiwgW2NHXTogXCJ7UmVnaW9ufVwiIH1dIH0sIGFIID0geyBbY3ddOiBlLCBbY3hdOiBbeyBbY3ldOiBcIlVzZUdsb2JhbEVuZHBvaW50XCIgfSwgZmFsc2VdIH0sIGFJID0geyBbY0FdOiBcImh0dHBzOi8ve0J1Y2tldH0uczMtZmlwcy57UmVnaW9ufS57cGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH1cIiwgW2NCXTogYUcsIFtjSF06IHt9IH0sIGFKID0geyBbY0FdOiBcImh0dHBzOi8ve0J1Y2tldH0uczMtYWNjZWxlcmF0ZS5kdWFsc3RhY2sue3BhcnRpdGlvblJlc3VsdCNkbnNTdWZmaXh9XCIsIFtjQl06IGFHLCBbY0hdOiB7fSB9LCBhSyA9IHsgW2NBXTogXCJodHRwczovL3tCdWNrZXR9LnMzLmR1YWxzdGFjay57UmVnaW9ufS57cGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH1cIiwgW2NCXTogYUcsIFtjSF06IHt9IH0sIGFMID0geyBbY3ddOiBlLCBbY3hdOiBbeyBbY3ddOiBpLCBbY3hdOiBbYWksIFwiaXNJcFwiXSB9LCBmYWxzZV0gfSwgYU0gPSB7IFtjQV06IEMsIFtjQl06IGFHLCBbY0hdOiB7fSB9LCBhTiA9IHsgW2NBXTogcSwgW2NCXTogYUcsIFtjSF06IHt9IH0sIGFPID0geyBbbl06IGFOLCBbY3RdOiBuIH0sIGFQID0geyBbY0FdOiBELCBbY0JdOiBhRywgW2NIXToge30gfSwgYVEgPSB7IFtjQV06IFwiaHR0cHM6Ly97QnVja2V0fS5zMy57UmVnaW9ufS57cGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH1cIiwgW2NCXTogYUcsIFtjSF06IHt9IH0sIGFSID0geyBbZl06IFwiSW52YWxpZCByZWdpb246IHJlZ2lvbiB3YXMgbm90IGEgdmFsaWQgRE5TIG5hbWUuXCIsIFtjdF06IGYgfSwgYVMgPSB7IFtjeV06IEcgfSwgYVQgPSB7IFtjeV06IEggfSwgYVUgPSB7IFtjd106IGksIFtjeF06IFthUywgXCJzZXJ2aWNlXCJdIH0sIGFWID0geyBbY3ldOiBMIH0sIGFXID0geyBbY3ZdOiBbWV0sIFtmXTogXCJTMyBPYmplY3QgTGFtYmRhIGRvZXMgbm90IHN1cHBvcnQgRHVhbC1zdGFja1wiLCBbY3RdOiBmIH0sIGFYID0geyBbY3ZdOiBbV10sIFtmXTogXCJTMyBPYmplY3QgTGFtYmRhIGRvZXMgbm90IHN1cHBvcnQgUzMgQWNjZWxlcmF0ZVwiLCBbY3RdOiBmIH0sIGFZID0geyBbY3ZdOiBbeyBbY3ddOiBkLCBbY3hdOiBbeyBbY3ldOiBcIkRpc2FibGVBY2Nlc3NQb2ludHNcIiB9XSB9LCB7IFtjd106IGUsIFtjeF06IFt7IFtjeV06IFwiRGlzYWJsZUFjY2Vzc1BvaW50c1wiIH0sIHRydWVdIH1dLCBbZl06IFwiQWNjZXNzIHBvaW50cyBhcmUgbm90IHN1cHBvcnRlZCBmb3IgdGhpcyBvcGVyYXRpb25cIiwgW2N0XTogZiB9LCBhWiA9IHsgW2N2XTogW3sgW2N3XTogZCwgW2N4XTogW3sgW2N5XTogXCJVc2VBcm5SZWdpb25cIiB9XSB9LCB7IFtjd106IGUsIFtjeF06IFt7IFtjeV06IFwiVXNlQXJuUmVnaW9uXCIgfSwgZmFsc2VdIH0sIHsgW2N3XTogciwgW2N4XTogW3sgW2N3XTogaCwgW2N4XTogW3sgW2N3XTogaSwgW2N4XTogW2FTLCBcInJlZ2lvblwiXSB9LCBcIntSZWdpb259XCJdIH1dIH1dLCBbZl06IFwiSW52YWxpZCBjb25maWd1cmF0aW9uOiByZWdpb24gZnJvbSBBUk4gYHtidWNrZXRBcm4jcmVnaW9ufWAgZG9lcyBub3QgbWF0Y2ggY2xpZW50IHJlZ2lvbiBge1JlZ2lvbn1gIGFuZCBVc2VBcm5SZWdpb24gaXMgYGZhbHNlYFwiLCBbY3RdOiBmIH0sIGJhID0geyBbY3ddOiBpLCBbY3hdOiBbeyBbY3ldOiBcImJ1Y2tldFBhcnRpdGlvblwiIH0sIGpdIH0sIGJiID0geyBbY3ddOiBpLCBbY3hdOiBbYVMsIFwiYWNjb3VudElkXCJdIH0sIGJjID0geyBbY0RdOiBbeyBbY0VdOiB0cnVlLCBbal06IFwic2lndjRcIiwgW2NGXTogSiwgW2NHXTogXCJ7YnVja2V0QXJuI3JlZ2lvbn1cIiB9XSB9LCBiZCA9IHsgW2ZdOiBcIkludmFsaWQgQVJOOiBUaGUgYWNjZXNzIHBvaW50IG5hbWUgbWF5IG9ubHkgY29udGFpbiBhLXosIEEtWiwgMC05IGFuZCBgLWAuIEZvdW5kOiBge2FjY2Vzc1BvaW50TmFtZX1gXCIsIFtjdF06IGYgfSwgYmUgPSB7IFtmXTogXCJJbnZhbGlkIEFSTjogVGhlIGFjY291bnQgaWQgbWF5IG9ubHkgY29udGFpbiBhLXosIEEtWiwgMC05IGFuZCBgLWAuIEZvdW5kOiBge2J1Y2tldEFybiNhY2NvdW50SWR9YFwiLCBbY3RdOiBmIH0sIGJmID0geyBbZl06IFwiSW52YWxpZCByZWdpb24gaW4gQVJOOiBge2J1Y2tldEFybiNyZWdpb259YCAoaW52YWxpZCBETlMgbmFtZSlcIiwgW2N0XTogZiB9LCBiZyA9IHsgW2ZdOiBcIkNsaWVudCB3YXMgY29uZmlndXJlZCBmb3IgcGFydGl0aW9uIGB7cGFydGl0aW9uUmVzdWx0I25hbWV9YCBidXQgQVJOIChge0J1Y2tldH1gKSBoYXMgYHtidWNrZXRQYXJ0aXRpb24jbmFtZX1gXCIsIFtjdF06IGYgfSwgYmggPSB7IFtmXTogXCJJbnZhbGlkIEFSTjogVGhlIEFSTiBtYXkgb25seSBjb250YWluIGEgc2luZ2xlIHJlc291cmNlIGNvbXBvbmVudCBhZnRlciBgYWNjZXNzcG9pbnRgLlwiLCBbY3RdOiBmIH0sIGJpID0geyBbZl06IFwiSW52YWxpZCBBUk46IEV4cGVjdGVkIGEgcmVzb3VyY2Ugb2YgdGhlIGZvcm1hdCBgYWNjZXNzcG9pbnQ6PGFjY2Vzc3BvaW50IG5hbWU+YCBidXQgbm8gbmFtZSB3YXMgcHJvdmlkZWRcIiwgW2N0XTogZiB9LCBiaiA9IHsgW2NEXTogW3sgW2NFXTogdHJ1ZSwgW2pdOiBcInNpZ3Y0XCIsIFtjRl06IEIsIFtjR106IFwie2J1Y2tldEFybiNyZWdpb259XCIgfV0gfSwgYmsgPSB7IFtjRF06IFt7IFtjRV06IHRydWUsIFtqXTogeiwgW2NGXTogQSwgW2NJXTogW1wiKlwiXSB9LCB7IFtjRV06IHRydWUsIFtqXTogXCJzaWd2NFwiLCBbY0ZdOiBBLCBbY0ddOiBcIntidWNrZXRBcm4jcmVnaW9ufVwiIH1dIH0sIGJsID0geyBbY3ddOiBGLCBbY3hdOiBbYWRdIH0sIGJtID0geyBbY0FdOiBcImh0dHBzOi8vczMtZmlwcy5kdWFsc3RhY2sue1JlZ2lvbn0ue3BhcnRpdGlvblJlc3VsdCNkbnNTdWZmaXh9L3t1cmlfZW5jb2RlZF9idWNrZXR9XCIsIFtjQl06IGFHLCBbY0hdOiB7fSB9LCBibiA9IHsgW2NBXTogXCJodHRwczovL3MzLWZpcHMue1JlZ2lvbn0ue3BhcnRpdGlvblJlc3VsdCNkbnNTdWZmaXh9L3t1cmlfZW5jb2RlZF9idWNrZXR9XCIsIFtjQl06IGFHLCBbY0hdOiB7fSB9LCBibyA9IHsgW2NBXTogXCJodHRwczovL3MzLmR1YWxzdGFjay57UmVnaW9ufS57cGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH0ve3VyaV9lbmNvZGVkX2J1Y2tldH1cIiwgW2NCXTogYUcsIFtjSF06IHt9IH0sIGJwID0geyBbY0FdOiBRLCBbY0JdOiBhRywgW2NIXToge30gfSwgYnEgPSB7IFtjQV06IFwiaHR0cHM6Ly9zMy57UmVnaW9ufS57cGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH0ve3VyaV9lbmNvZGVkX2J1Y2tldH1cIiwgW2NCXTogYUcsIFtjSF06IHt9IH0sIGJyID0geyBbY3ldOiBcIlVzZU9iamVjdExhbWJkYUVuZHBvaW50XCIgfSwgYnMgPSB7IFtjRF06IFt7IFtjRV06IHRydWUsIFtqXTogXCJzaWd2NFwiLCBbY0ZdOiBKLCBbY0ddOiBcIntSZWdpb259XCIgfV0gfSwgYnQgPSB7IFtjQV06IFwiaHR0cHM6Ly9zMy1maXBzLmR1YWxzdGFjay57UmVnaW9ufS57cGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH1cIiwgW2NCXTogYUcsIFtjSF06IHt9IH0sIGJ1ID0geyBbY0FdOiBcImh0dHBzOi8vczMtZmlwcy57UmVnaW9ufS57cGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH1cIiwgW2NCXTogYUcsIFtjSF06IHt9IH0sIGJ2ID0geyBbY0FdOiBcImh0dHBzOi8vczMuZHVhbHN0YWNrLntSZWdpb259LntwYXJ0aXRpb25SZXN1bHQjZG5zU3VmZml4fVwiLCBbY0JdOiBhRywgW2NIXToge30gfSwgYncgPSB7IFtjQV06IHQsIFtjQl06IGFHLCBbY0hdOiB7fSB9LCBieCA9IHsgW2NBXTogXCJodHRwczovL3MzLntSZWdpb259LntwYXJ0aXRpb25SZXN1bHQjZG5zU3VmZml4fVwiLCBbY0JdOiBhRywgW2NIXToge30gfSwgYnkgPSBbeyBbY3ldOiBcIlJlZ2lvblwiIH1dLCBieiA9IFt7IFtjeV06IFwiRW5kcG9pbnRcIiB9XSwgYkEgPSBbYWRdLCBiQiA9IFtXXSwgYkMgPSBbWiwgYWddLCBiRCA9IFt7IFtjd106IGQsIFtjeF06IFt7IFtjeV06IFwiRGlzYWJsZVMzRXhwcmVzc1Nlc3Npb25BdXRoXCIgfV0gfSwgeyBbY3ddOiBlLCBbY3hdOiBbeyBbY3ldOiBcIkRpc2FibGVTM0V4cHJlc3NTZXNzaW9uQXV0aFwiIH0sIHRydWVdIH1dLCBiRSA9IFthal0sIGJGID0gW2FtXSwgYkcgPSBbYWFdLCBiSCA9IFtYLCBZXSwgYkkgPSBbWCwgYXJdLCBiSiA9IFthcywgWV0sIGJLID0gW2FzLCBhcl0sIGJMID0gW3sgW2N3XTogaywgW2N4XTogW2FkLCA2LCAxNCwgdHJ1ZV0sIFtjel06IFwiczNleHByZXNzQXZhaWxhYmlsaXR5Wm9uZUlkXCIgfSwgeyBbY3ddOiBrLCBbY3hdOiBbYWQsIDE0LCAxNiwgdHJ1ZV0sIFtjel06IFwiczNleHByZXNzQXZhaWxhYmlsaXR5Wm9uZURlbGltXCIgfSwgeyBbY3ddOiBoLCBbY3hdOiBbeyBbY3ldOiBcInMzZXhwcmVzc0F2YWlsYWJpbGl0eVpvbmVEZWxpbVwiIH0sIFwiLS1cIl0gfV0sIGJNID0gW3sgW2N2XTogW1gsIFldLCBbbl06IHsgW2NBXTogXCJodHRwczovL3tCdWNrZXR9LnMzZXhwcmVzcy1maXBzLXtzM2V4cHJlc3NBdmFpbGFiaWxpdHlab25lSWR9LmR1YWxzdGFjay57UmVnaW9ufS57cGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH1cIiwgW2NCXTogYWssIFtjSF06IHt9IH0sIFtjdF06IG4gfSwgeyBbY3ZdOiBiSSwgW25dOiB7IFtjQV06IFwiaHR0cHM6Ly97QnVja2V0fS5zM2V4cHJlc3MtZmlwcy17czNleHByZXNzQXZhaWxhYmlsaXR5Wm9uZUlkfS57UmVnaW9ufS57cGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH1cIiwgW2NCXTogYWssIFtjSF06IHt9IH0sIFtjdF06IG4gfSwgeyBbY3ZdOiBiSiwgW25dOiB7IFtjQV06IFwiaHR0cHM6Ly97QnVja2V0fS5zM2V4cHJlc3Mte3MzZXhwcmVzc0F2YWlsYWJpbGl0eVpvbmVJZH0uZHVhbHN0YWNrLntSZWdpb259LntwYXJ0aXRpb25SZXN1bHQjZG5zU3VmZml4fVwiLCBbY0JdOiBhaywgW2NIXToge30gfSwgW2N0XTogbiB9LCB7IFtjdl06IGJLLCBbbl06IHsgW2NBXTogXCJodHRwczovL3tCdWNrZXR9LnMzZXhwcmVzcy17czNleHByZXNzQXZhaWxhYmlsaXR5Wm9uZUlkfS57UmVnaW9ufS57cGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH1cIiwgW2NCXTogYWssIFtjSF06IHt9IH0sIFtjdF06IG4gfV0sIGJOID0gW3sgW2N3XTogaywgW2N4XTogW2FkLCA2LCAxNSwgdHJ1ZV0sIFtjel06IFwiczNleHByZXNzQXZhaWxhYmlsaXR5Wm9uZUlkXCIgfSwgeyBbY3ddOiBrLCBbY3hdOiBbYWQsIDE1LCAxNywgdHJ1ZV0sIFtjel06IFwiczNleHByZXNzQXZhaWxhYmlsaXR5Wm9uZURlbGltXCIgfSwgeyBbY3ddOiBoLCBbY3hdOiBbeyBbY3ldOiBcInMzZXhwcmVzc0F2YWlsYWJpbGl0eVpvbmVEZWxpbVwiIH0sIFwiLS1cIl0gfV0sIGJPID0gW3sgW2N3XTogaywgW2N4XTogW2FkLCA2LCAxOSwgdHJ1ZV0sIFtjel06IFwiczNleHByZXNzQXZhaWxhYmlsaXR5Wm9uZUlkXCIgfSwgeyBbY3ddOiBrLCBbY3hdOiBbYWQsIDE5LCAyMSwgdHJ1ZV0sIFtjel06IFwiczNleHByZXNzQXZhaWxhYmlsaXR5Wm9uZURlbGltXCIgfSwgeyBbY3ddOiBoLCBbY3hdOiBbeyBbY3ldOiBcInMzZXhwcmVzc0F2YWlsYWJpbGl0eVpvbmVEZWxpbVwiIH0sIFwiLS1cIl0gfV0sIGJQID0gW3sgW2N3XTogaywgW2N4XTogW2FkLCA2LCAyMCwgdHJ1ZV0sIFtjel06IFwiczNleHByZXNzQXZhaWxhYmlsaXR5Wm9uZUlkXCIgfSwgeyBbY3ddOiBrLCBbY3hdOiBbYWQsIDIwLCAyMiwgdHJ1ZV0sIFtjel06IFwiczNleHByZXNzQXZhaWxhYmlsaXR5Wm9uZURlbGltXCIgfSwgeyBbY3ddOiBoLCBbY3hdOiBbeyBbY3ldOiBcInMzZXhwcmVzc0F2YWlsYWJpbGl0eVpvbmVEZWxpbVwiIH0sIFwiLS1cIl0gfV0sIGJRID0gW3sgW2N3XTogaywgW2N4XTogW2FkLCA2LCAyNiwgdHJ1ZV0sIFtjel06IFwiczNleHByZXNzQXZhaWxhYmlsaXR5Wm9uZUlkXCIgfSwgeyBbY3ddOiBrLCBbY3hdOiBbYWQsIDI2LCAyOCwgdHJ1ZV0sIFtjel06IFwiczNleHByZXNzQXZhaWxhYmlsaXR5Wm9uZURlbGltXCIgfSwgeyBbY3ddOiBoLCBbY3hdOiBbeyBbY3ldOiBcInMzZXhwcmVzc0F2YWlsYWJpbGl0eVpvbmVEZWxpbVwiIH0sIFwiLS1cIl0gfV0sIGJSID0gW3sgW2N2XTogW1gsIFldLCBbbl06IHsgW2NBXTogXCJodHRwczovL3tCdWNrZXR9LnMzZXhwcmVzcy1maXBzLXtzM2V4cHJlc3NBdmFpbGFiaWxpdHlab25lSWR9LmR1YWxzdGFjay57UmVnaW9ufS57cGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH1cIiwgW2NCXTogeyBbY0NdOiBcIlMzRXhwcmVzc1wiLCBbY0RdOiBbeyBbY0VdOiB0cnVlLCBbal06IFwic2lndjQtczNleHByZXNzXCIsIFtjRl06IFwiczNleHByZXNzXCIsIFtjR106IFwie1JlZ2lvbn1cIiB9XSB9LCBbY0hdOiB7fSB9LCBbY3RdOiBuIH0sIHsgW2N2XTogYkksIFtuXTogeyBbY0FdOiBcImh0dHBzOi8ve0J1Y2tldH0uczNleHByZXNzLWZpcHMte3MzZXhwcmVzc0F2YWlsYWJpbGl0eVpvbmVJZH0ue1JlZ2lvbn0ue3BhcnRpdGlvblJlc3VsdCNkbnNTdWZmaXh9XCIsIFtjQl06IHsgW2NDXTogXCJTM0V4cHJlc3NcIiwgW2NEXTogW3sgW2NFXTogdHJ1ZSwgW2pdOiBcInNpZ3Y0LXMzZXhwcmVzc1wiLCBbY0ZdOiBcInMzZXhwcmVzc1wiLCBbY0ddOiBcIntSZWdpb259XCIgfV0gfSwgW2NIXToge30gfSwgW2N0XTogbiB9LCB7IFtjdl06IGJKLCBbbl06IHsgW2NBXTogXCJodHRwczovL3tCdWNrZXR9LnMzZXhwcmVzcy17czNleHByZXNzQXZhaWxhYmlsaXR5Wm9uZUlkfS5kdWFsc3RhY2sue1JlZ2lvbn0ue3BhcnRpdGlvblJlc3VsdCNkbnNTdWZmaXh9XCIsIFtjQl06IHsgW2NDXTogXCJTM0V4cHJlc3NcIiwgW2NEXTogW3sgW2NFXTogdHJ1ZSwgW2pdOiBcInNpZ3Y0LXMzZXhwcmVzc1wiLCBbY0ZdOiBcInMzZXhwcmVzc1wiLCBbY0ddOiBcIntSZWdpb259XCIgfV0gfSwgW2NIXToge30gfSwgW2N0XTogbiB9LCB7IFtjdl06IGJLLCBbbl06IHsgW2NBXTogXCJodHRwczovL3tCdWNrZXR9LnMzZXhwcmVzcy17czNleHByZXNzQXZhaWxhYmlsaXR5Wm9uZUlkfS57UmVnaW9ufS57cGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH1cIiwgW2NCXTogeyBbY0NdOiBcIlMzRXhwcmVzc1wiLCBbY0RdOiBbeyBbY0VdOiB0cnVlLCBbal06IFwic2lndjQtczNleHByZXNzXCIsIFtjRl06IFwiczNleHByZXNzXCIsIFtjR106IFwie1JlZ2lvbn1cIiB9XSB9LCBbY0hdOiB7fSB9LCBbY3RdOiBuIH1dLCBiUyA9IFthZCwgMCwgNywgdHJ1ZV0sIGJUID0gW3sgW2N3XTogaywgW2N4XTogW2FkLCA3LCAxNSwgdHJ1ZV0sIFtjel06IFwiczNleHByZXNzQXZhaWxhYmlsaXR5Wm9uZUlkXCIgfSwgeyBbY3ddOiBrLCBbY3hdOiBbYWQsIDE1LCAxNywgdHJ1ZV0sIFtjel06IFwiczNleHByZXNzQXZhaWxhYmlsaXR5Wm9uZURlbGltXCIgfSwgeyBbY3ddOiBoLCBbY3hdOiBbeyBbY3ldOiBcInMzZXhwcmVzc0F2YWlsYWJpbGl0eVpvbmVEZWxpbVwiIH0sIFwiLS1cIl0gfV0sIGJVID0gW3sgW2N3XTogaywgW2N4XTogW2FkLCA3LCAxNiwgdHJ1ZV0sIFtjel06IFwiczNleHByZXNzQXZhaWxhYmlsaXR5Wm9uZUlkXCIgfSwgeyBbY3ddOiBrLCBbY3hdOiBbYWQsIDE2LCAxOCwgdHJ1ZV0sIFtjel06IFwiczNleHByZXNzQXZhaWxhYmlsaXR5Wm9uZURlbGltXCIgfSwgeyBbY3ddOiBoLCBbY3hdOiBbeyBbY3ldOiBcInMzZXhwcmVzc0F2YWlsYWJpbGl0eVpvbmVEZWxpbVwiIH0sIFwiLS1cIl0gfV0sIGJWID0gW3sgW2N3XTogaywgW2N4XTogW2FkLCA3LCAyMCwgdHJ1ZV0sIFtjel06IFwiczNleHByZXNzQXZhaWxhYmlsaXR5Wm9uZUlkXCIgfSwgeyBbY3ddOiBrLCBbY3hdOiBbYWQsIDIwLCAyMiwgdHJ1ZV0sIFtjel06IFwiczNleHByZXNzQXZhaWxhYmlsaXR5Wm9uZURlbGltXCIgfSwgeyBbY3ddOiBoLCBbY3hdOiBbeyBbY3ldOiBcInMzZXhwcmVzc0F2YWlsYWJpbGl0eVpvbmVEZWxpbVwiIH0sIFwiLS1cIl0gfV0sIGJXID0gW3sgW2N3XTogaywgW2N4XTogW2FkLCA3LCAyMSwgdHJ1ZV0sIFtjel06IFwiczNleHByZXNzQXZhaWxhYmlsaXR5Wm9uZUlkXCIgfSwgeyBbY3ddOiBrLCBbY3hdOiBbYWQsIDIxLCAyMywgdHJ1ZV0sIFtjel06IFwiczNleHByZXNzQXZhaWxhYmlsaXR5Wm9uZURlbGltXCIgfSwgeyBbY3ddOiBoLCBbY3hdOiBbeyBbY3ldOiBcInMzZXhwcmVzc0F2YWlsYWJpbGl0eVpvbmVEZWxpbVwiIH0sIFwiLS1cIl0gfV0sIGJYID0gW3sgW2N3XTogaywgW2N4XTogW2FkLCA3LCAyNywgdHJ1ZV0sIFtjel06IFwiczNleHByZXNzQXZhaWxhYmlsaXR5Wm9uZUlkXCIgfSwgeyBbY3ddOiBrLCBbY3hdOiBbYWQsIDI3LCAyOSwgdHJ1ZV0sIFtjel06IFwiczNleHByZXNzQXZhaWxhYmlsaXR5Wm9uZURlbGltXCIgfSwgeyBbY3ddOiBoLCBbY3hdOiBbeyBbY3ldOiBcInMzZXhwcmVzc0F2YWlsYWJpbGl0eVpvbmVEZWxpbVwiIH0sIFwiLS1cIl0gfV0sIGJZID0gW2FjXSwgYlogPSBbeyBbY3ddOiB5LCBbY3hdOiBbeyBbY3ldOiB4IH0sIGZhbHNlXSB9XSwgY2EgPSBbeyBbY3ddOiBoLCBbY3hdOiBbeyBbY3ldOiB2IH0sIFwiYmV0YVwiXSB9XSwgY2IgPSBbXCIqXCJdLCBjYyA9IFt7IFtjd106IHksIFtjeF06IFt7IFtjeV06IFwiUmVnaW9uXCIgfSwgZmFsc2VdIH1dLCBjZCA9IFt7IFtjd106IGgsIFtjeF06IFt7IFtjeV06IFwiUmVnaW9uXCIgfSwgXCJ1cy1lYXN0LTFcIl0gfV0sIGNlID0gW3sgW2N3XTogaCwgW2N4XTogW2FULCBLXSB9XSwgY2YgPSBbeyBbY3ddOiBpLCBbY3hdOiBbYVMsIFwicmVzb3VyY2VJZFsxXVwiXSwgW2N6XTogTCB9LCB7IFtjd106IHIsIFtjeF06IFt7IFtjd106IGgsIFtjeF06IFthViwgSV0gfV0gfV0sIGNnID0gW2FTLCBcInJlc291cmNlSWRbMV1cIl0sIGNoID0gW1ldLCBjaSA9IFt7IFtjd106IHIsIFtjeF06IFt7IFtjd106IGgsIFtjeF06IFt7IFtjd106IGksIFtjeF06IFthUywgXCJyZWdpb25cIl0gfSwgSV0gfV0gfV0sIGNqID0gW3sgW2N3XTogciwgW2N4XTogW3sgW2N3XTogZCwgW2N4XTogW3sgW2N3XTogaSwgW2N4XTogW2FTLCBcInJlc291cmNlSWRbMl1cIl0gfV0gfV0gfV0sIGNrID0gW2FTLCBcInJlc291cmNlSWRbMl1cIl0sIGNsID0gW3sgW2N3XTogZywgW2N4XTogW3sgW2N3XTogaSwgW2N4XTogW2FTLCBcInJlZ2lvblwiXSB9XSwgW2N6XTogXCJidWNrZXRQYXJ0aXRpb25cIiB9XSwgY20gPSBbeyBbY3ddOiBoLCBbY3hdOiBbYmEsIHsgW2N3XTogaSwgW2N4XTogW3sgW2N5XTogXCJwYXJ0aXRpb25SZXN1bHRcIiB9LCBqXSB9XSB9XSwgY24gPSBbeyBbY3ddOiB5LCBbY3hdOiBbeyBbY3ddOiBpLCBbY3hdOiBbYVMsIFwicmVnaW9uXCJdIH0sIHRydWVdIH1dLCBjbyA9IFt7IFtjd106IHksIFtjeF06IFtiYiwgZmFsc2VdIH1dLCBjcCA9IFt7IFtjd106IHksIFtjeF06IFthViwgZmFsc2VdIH1dLCBjcSA9IFtYXSwgY3IgPSBbeyBbY3ddOiB5LCBbY3hdOiBbeyBbY3ldOiBcIlJlZ2lvblwiIH0sIHRydWVdIH1dO1xuY29uc3QgX2RhdGEgPSB7IHZlcnNpb246IFwiMS4wXCIsIHBhcmFtZXRlcnM6IHsgQnVja2V0OiBULCBSZWdpb246IFQsIFVzZUZJUFM6IFUsIFVzZUR1YWxTdGFjazogVSwgRW5kcG9pbnQ6IFQsIEZvcmNlUGF0aFN0eWxlOiBVLCBBY2NlbGVyYXRlOiBVLCBVc2VHbG9iYWxFbmRwb2ludDogVSwgVXNlT2JqZWN0TGFtYmRhRW5kcG9pbnQ6IFYsIEtleTogVCwgUHJlZml4OiBULCBDb3B5U291cmNlOiBULCBEaXNhYmxlQWNjZXNzUG9pbnRzOiBWLCBEaXNhYmxlTXVsdGlSZWdpb25BY2Nlc3NQb2ludHM6IFUsIFVzZUFyblJlZ2lvbjogViwgVXNlUzNFeHByZXNzQ29udHJvbEVuZHBvaW50OiBWLCBEaXNhYmxlUzNFeHByZXNzU2Vzc2lvbkF1dGg6IFYgfSwgW2N1XTogW3sgW2N2XTogW3sgW2N3XTogZCwgW2N4XTogYnkgfV0sIFtjdV06IFt7IFtjdl06IFtXLCBYXSwgZXJyb3I6IFwiQWNjZWxlcmF0ZSBjYW5ub3QgYmUgdXNlZCB3aXRoIEZJUFNcIiwgW2N0XTogZiB9LCB7IFtjdl06IFtZLCBaXSwgZXJyb3I6IFwiQ2Fubm90IHNldCBkdWFsLXN0YWNrIGluIGNvbWJpbmF0aW9uIHdpdGggYSBjdXN0b20gZW5kcG9pbnQuXCIsIFtjdF06IGYgfSwgeyBbY3ZdOiBbWiwgWF0sIGVycm9yOiBcIkEgY3VzdG9tIGVuZHBvaW50IGNhbm5vdCBiZSBjb21iaW5lZCB3aXRoIEZJUFNcIiwgW2N0XTogZiB9LCB7IFtjdl06IFtaLCBXXSwgZXJyb3I6IFwiQSBjdXN0b20gZW5kcG9pbnQgY2Fubm90IGJlIGNvbWJpbmVkIHdpdGggUzMgQWNjZWxlcmF0ZVwiLCBbY3RdOiBmIH0sIHsgW2N2XTogW1gsIGFhLCBhYl0sIGVycm9yOiBcIlBhcnRpdGlvbiBkb2VzIG5vdCBzdXBwb3J0IEZJUFNcIiwgW2N0XTogZiB9LCB7IFtjdl06IFthYywgeyBbY3ddOiBrLCBbY3hdOiBbYWQsIDAsIGEsIGNdLCBbY3pdOiBsIH0sIHsgW2N3XTogaCwgW2N4XTogW3sgW2N5XTogbCB9LCBcIi0teC1zM1wiXSB9XSwgW2N1XTogW2FlLCBhZiwgeyBbY3ZdOiBbYW8sIGFwXSwgW2N1XTogW3sgW2N2XTogYkcsIFtjdV06IFt7IFtjdl06IFthaiwgYXFdLCBbY3VdOiBbeyBbY3ZdOiBiSCwgZW5kcG9pbnQ6IHsgW2NBXTogXCJodHRwczovL3MzZXhwcmVzcy1jb250cm9sLWZpcHMuZHVhbHN0YWNrLntSZWdpb259LntwYXJ0aXRpb25SZXN1bHQjZG5zU3VmZml4fS97dXJpX2VuY29kZWRfYnVja2V0fVwiLCBbY0JdOiBhaywgW2NIXTogYWwgfSwgW2N0XTogbiB9LCB7IFtjdl06IGJJLCBlbmRwb2ludDogeyBbY0FdOiBcImh0dHBzOi8vczNleHByZXNzLWNvbnRyb2wtZmlwcy57UmVnaW9ufS57cGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH0ve3VyaV9lbmNvZGVkX2J1Y2tldH1cIiwgW2NCXTogYWssIFtjSF06IGFsIH0sIFtjdF06IG4gfSwgeyBbY3ZdOiBiSiwgZW5kcG9pbnQ6IHsgW2NBXTogXCJodHRwczovL3MzZXhwcmVzcy1jb250cm9sLmR1YWxzdGFjay57UmVnaW9ufS57cGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH0ve3VyaV9lbmNvZGVkX2J1Y2tldH1cIiwgW2NCXTogYWssIFtjSF06IGFsIH0sIFtjdF06IG4gfSwgeyBbY3ZdOiBiSywgZW5kcG9pbnQ6IHsgW2NBXTogXCJodHRwczovL3MzZXhwcmVzcy1jb250cm9sLntSZWdpb259LntwYXJ0aXRpb25SZXN1bHQjZG5zU3VmZml4fS97dXJpX2VuY29kZWRfYnVja2V0fVwiLCBbY0JdOiBhaywgW2NIXTogYWwgfSwgW2N0XTogbiB9XSwgW2N0XTogbyB9XSwgW2N0XTogbyB9XSwgW2N0XTogbyB9LCB7IFtjdl06IGJGLCBbY3VdOiBbeyBbY3ZdOiBiRywgW2N1XTogW3sgW2N2XTogYkQsIFtjdV06IFt7IFtjdl06IGJMLCBbY3VdOiBiTSwgW2N0XTogbyB9LCB7IFtjdl06IGJOLCBbY3VdOiBiTSwgW2N0XTogbyB9LCB7IFtjdl06IGJPLCBbY3VdOiBiTSwgW2N0XTogbyB9LCB7IFtjdl06IGJQLCBbY3VdOiBiTSwgW2N0XTogbyB9LCB7IFtjdl06IGJRLCBbY3VdOiBiTSwgW2N0XTogbyB9LCBhdF0sIFtjdF06IG8gfSwgeyBbY3ZdOiBiTCwgW2N1XTogYlIsIFtjdF06IG8gfSwgeyBbY3ZdOiBiTiwgW2N1XTogYlIsIFtjdF06IG8gfSwgeyBbY3ZdOiBiTywgW2N1XTogYlIsIFtjdF06IG8gfSwgeyBbY3ZdOiBiUCwgW2N1XTogYlIsIFtjdF06IG8gfSwgeyBbY3ZdOiBiUSwgW2N1XTogYlIsIFtjdF06IG8gfSwgYXRdLCBbY3RdOiBvIH1dLCBbY3RdOiBvIH0sIGFuXSwgW2N0XTogbyB9LCB7IFtjdl06IFthYywgeyBbY3ddOiBrLCBbY3hdOiBiUywgW2N6XTogcyB9LCB7IFtjd106IGgsIFtjeF06IFt7IFtjeV06IHMgfSwgXCItLXhhLXMzXCJdIH1dLCBbY3VdOiBbYWUsIGFmLCB7IFtjdl06IGJGLCBbY3VdOiBbeyBbY3ZdOiBiRywgW2N1XTogW3sgW2N2XTogYkQsIFtjdV06IFt7IFtjdl06IGJULCBbY3VdOiBiTSwgW2N0XTogbyB9LCB7IFtjdl06IGJVLCBbY3VdOiBiTSwgW2N0XTogbyB9LCB7IFtjdl06IGJWLCBbY3VdOiBiTSwgW2N0XTogbyB9LCB7IFtjdl06IGJXLCBbY3VdOiBiTSwgW2N0XTogbyB9LCB7IFtjdl06IGJYLCBbY3VdOiBiTSwgW2N0XTogbyB9LCBhdF0sIFtjdF06IG8gfSwgeyBbY3ZdOiBiVCwgW2N1XTogYlIsIFtjdF06IG8gfSwgeyBbY3ZdOiBiVSwgW2N1XTogYlIsIFtjdF06IG8gfSwgeyBbY3ZdOiBiViwgW2N1XTogYlIsIFtjdF06IG8gfSwgeyBbY3ZdOiBiVywgW2N1XTogYlIsIFtjdF06IG8gfSwgeyBbY3ZdOiBiWCwgW2N1XTogYlIsIFtjdF06IG8gfSwgYXRdLCBbY3RdOiBvIH1dLCBbY3RdOiBvIH0sIGFuXSwgW2N0XTogbyB9LCB7IFtjdl06IFthdSwgYW8sIGFwXSwgW2N1XTogW3sgW2N2XTogYkcsIFtjdV06IFt7IFtjdl06IGJDLCBlbmRwb2ludDogeyBbY0FdOiB0LCBbY0JdOiBhaywgW2NIXTogYWwgfSwgW2N0XTogbiB9LCB7IFtjdl06IGJILCBlbmRwb2ludDogeyBbY0FdOiBcImh0dHBzOi8vczNleHByZXNzLWNvbnRyb2wtZmlwcy5kdWFsc3RhY2sue1JlZ2lvbn0ue3BhcnRpdGlvblJlc3VsdCNkbnNTdWZmaXh9XCIsIFtjQl06IGFrLCBbY0hdOiBhbCB9LCBbY3RdOiBuIH0sIHsgW2N2XTogYkksIGVuZHBvaW50OiB7IFtjQV06IFwiaHR0cHM6Ly9zM2V4cHJlc3MtY29udHJvbC1maXBzLntSZWdpb259LntwYXJ0aXRpb25SZXN1bHQjZG5zU3VmZml4fVwiLCBbY0JdOiBhaywgW2NIXTogYWwgfSwgW2N0XTogbiB9LCB7IFtjdl06IGJKLCBlbmRwb2ludDogeyBbY0FdOiBcImh0dHBzOi8vczNleHByZXNzLWNvbnRyb2wuZHVhbHN0YWNrLntSZWdpb259LntwYXJ0aXRpb25SZXN1bHQjZG5zU3VmZml4fVwiLCBbY0JdOiBhaywgW2NIXTogYWwgfSwgW2N0XTogbiB9LCB7IFtjdl06IGJLLCBlbmRwb2ludDogeyBbY0FdOiBcImh0dHBzOi8vczNleHByZXNzLWNvbnRyb2wue1JlZ2lvbn0ue3BhcnRpdGlvblJlc3VsdCNkbnNTdWZmaXh9XCIsIFtjQl06IGFrLCBbY0hdOiBhbCB9LCBbY3RdOiBuIH1dLCBbY3RdOiBvIH1dLCBbY3RdOiBvIH0sIHsgW2N2XTogW2FjLCB7IFtjd106IGssIFtjeF06IFthZCwgNDksIDUwLCBjXSwgW2N6XTogdSB9LCB7IFtjd106IGssIFtjeF06IFthZCwgOCwgMTIsIGNdLCBbY3pdOiB2IH0sIHsgW2N3XTogaywgW2N4XTogYlMsIFtjel06IHcgfSwgeyBbY3ddOiBrLCBbY3hdOiBbYWQsIDMyLCA0OSwgY10sIFtjel06IHggfSwgeyBbY3ddOiBnLCBbY3hdOiBieSwgW2N6XTogXCJyZWdpb25QYXJ0aXRpb25cIiB9LCB7IFtjd106IGgsIFtjeF06IFt7IFtjeV06IHcgfSwgXCItLW9wLXMzXCJdIH1dLCBbY3VdOiBbeyBbY3ZdOiBiWiwgW2N1XTogW3sgW2N2XTogW3sgW2N3XTogaCwgW2N4XTogW2F2LCBcImVcIl0gfV0sIFtjdV06IFt7IFtjdl06IGNhLCBbY3VdOiBbYXcsIHsgW2N2XTogYkMsIGVuZHBvaW50OiB7IFtjQV06IFwiaHR0cHM6Ly97QnVja2V0fS5lYzIue3VybCNhdXRob3JpdHl9XCIsIFtjQl06IGF4LCBbY0hdOiBhbCB9LCBbY3RdOiBuIH1dLCBbY3RdOiBvIH0sIHsgZW5kcG9pbnQ6IHsgW2NBXTogXCJodHRwczovL3tCdWNrZXR9LmVjMi5zMy1vdXRwb3N0cy57UmVnaW9ufS57cmVnaW9uUGFydGl0aW9uI2Ruc1N1ZmZpeH1cIiwgW2NCXTogYXgsIFtjSF06IGFsIH0sIFtjdF06IG4gfV0sIFtjdF06IG8gfSwgeyBbY3ZdOiBbeyBbY3ddOiBoLCBbY3hdOiBbYXYsIFwib1wiXSB9XSwgW2N1XTogW3sgW2N2XTogY2EsIFtjdV06IFthdywgeyBbY3ZdOiBiQywgZW5kcG9pbnQ6IHsgW2NBXTogXCJodHRwczovL3tCdWNrZXR9Lm9wLXtvdXRwb3N0SWR9Lnt1cmwjYXV0aG9yaXR5fVwiLCBbY0JdOiBheCwgW2NIXTogYWwgfSwgW2N0XTogbiB9XSwgW2N0XTogbyB9LCB7IGVuZHBvaW50OiB7IFtjQV06IFwiaHR0cHM6Ly97QnVja2V0fS5vcC17b3V0cG9zdElkfS5zMy1vdXRwb3N0cy57UmVnaW9ufS57cmVnaW9uUGFydGl0aW9uI2Ruc1N1ZmZpeH1cIiwgW2NCXTogYXgsIFtjSF06IGFsIH0sIFtjdF06IG4gfV0sIFtjdF06IG8gfSwgeyBlcnJvcjogXCJVbnJlY29nbml6ZWQgaGFyZHdhcmUgdHlwZTogXFxcIkV4cGVjdGVkIGhhcmR3YXJlIHR5cGUgbyBvciBlIGJ1dCBnb3Qge2hhcmR3YXJlVHlwZX1cXFwiXCIsIFtjdF06IGYgfV0sIFtjdF06IG8gfSwgeyBlcnJvcjogXCJJbnZhbGlkIEFSTjogVGhlIG91dHBvc3QgSWQgbXVzdCBvbmx5IGNvbnRhaW4gYS16LCBBLVosIDAtOSBhbmQgYC1gLlwiLCBbY3RdOiBmIH1dLCBbY3RdOiBvIH0sIHsgW2N2XTogYlksIFtjdV06IFt7IFtjdl06IFtaLCB7IFtjd106IHIsIFtjeF06IFt7IFtjd106IGQsIFtjeF06IFt7IFtjd106IG0sIFtjeF06IGJ6IH1dIH1dIH1dLCBlcnJvcjogXCJDdXN0b20gZW5kcG9pbnQgYHtFbmRwb2ludH1gIHdhcyBub3QgYSB2YWxpZCBVUklcIiwgW2N0XTogZiB9LCB7IFtjdl06IFtheSwgYW1dLCBbY3VdOiBbeyBbY3ZdOiBiRywgW2N1XTogW3sgW2N2XTogY2MsIFtjdV06IFt7IFtjdl06IFtXLCBhYl0sIGVycm9yOiBcIlMzIEFjY2VsZXJhdGUgY2Fubm90IGJlIHVzZWQgaW4gdGhpcyByZWdpb25cIiwgW2N0XTogZiB9LCB7IFtjdl06IFtZLCBYLCBhQSwgYXEsIGFCXSwgZW5kcG9pbnQ6IHsgW2NBXTogXCJodHRwczovL3tCdWNrZXR9LnMzLWZpcHMuZHVhbHN0YWNrLnVzLWVhc3QtMS57cGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH1cIiwgW2NCXTogYUMsIFtjSF06IGFsIH0sIFtjdF06IG4gfSwgeyBbY3ZdOiBbWSwgWCwgYUEsIGFxLCBhRCwgYUVdLCBbY3VdOiBbeyBlbmRwb2ludDogYUYsIFtjdF06IG4gfV0sIFtjdF06IG8gfSwgeyBbY3ZdOiBbWSwgWCwgYUEsIGFxLCBhRCwgYUhdLCBlbmRwb2ludDogYUYsIFtjdF06IG4gfSwgeyBbY3ZdOiBbYXIsIFgsIGFBLCBhcSwgYUJdLCBlbmRwb2ludDogeyBbY0FdOiBcImh0dHBzOi8ve0J1Y2tldH0uczMtZmlwcy51cy1lYXN0LTEue3BhcnRpdGlvblJlc3VsdCNkbnNTdWZmaXh9XCIsIFtjQl06IGFDLCBbY0hdOiBhbCB9LCBbY3RdOiBuIH0sIHsgW2N2XTogW2FyLCBYLCBhQSwgYXEsIGFELCBhRV0sIFtjdV06IFt7IGVuZHBvaW50OiBhSSwgW2N0XTogbiB9XSwgW2N0XTogbyB9LCB7IFtjdl06IFthciwgWCwgYUEsIGFxLCBhRCwgYUhdLCBlbmRwb2ludDogYUksIFtjdF06IG4gfSwgeyBbY3ZdOiBbWSwgYXMsIFcsIGFxLCBhQl0sIGVuZHBvaW50OiB7IFtjQV06IFwiaHR0cHM6Ly97QnVja2V0fS5zMy1hY2NlbGVyYXRlLmR1YWxzdGFjay51cy1lYXN0LTEue3BhcnRpdGlvblJlc3VsdCNkbnNTdWZmaXh9XCIsIFtjQl06IGFDLCBbY0hdOiBhbCB9LCBbY3RdOiBuIH0sIHsgW2N2XTogW1ksIGFzLCBXLCBhcSwgYUQsIGFFXSwgW2N1XTogW3sgZW5kcG9pbnQ6IGFKLCBbY3RdOiBuIH1dLCBbY3RdOiBvIH0sIHsgW2N2XTogW1ksIGFzLCBXLCBhcSwgYUQsIGFIXSwgZW5kcG9pbnQ6IGFKLCBbY3RdOiBuIH0sIHsgW2N2XTogW1ksIGFzLCBhQSwgYXEsIGFCXSwgZW5kcG9pbnQ6IHsgW2NBXTogXCJodHRwczovL3tCdWNrZXR9LnMzLmR1YWxzdGFjay51cy1lYXN0LTEue3BhcnRpdGlvblJlc3VsdCNkbnNTdWZmaXh9XCIsIFtjQl06IGFDLCBbY0hdOiBhbCB9LCBbY3RdOiBuIH0sIHsgW2N2XTogW1ksIGFzLCBhQSwgYXEsIGFELCBhRV0sIFtjdV06IFt7IGVuZHBvaW50OiBhSywgW2N0XTogbiB9XSwgW2N0XTogbyB9LCB7IFtjdl06IFtZLCBhcywgYUEsIGFxLCBhRCwgYUhdLCBlbmRwb2ludDogYUssIFtjdF06IG4gfSwgeyBbY3ZdOiBbYXIsIGFzLCBhQSwgWiwgYWcsIGFoLCBhQl0sIGVuZHBvaW50OiB7IFtjQV06IEMsIFtjQl06IGFDLCBbY0hdOiBhbCB9LCBbY3RdOiBuIH0sIHsgW2N2XTogW2FyLCBhcywgYUEsIFosIGFnLCBhTCwgYUJdLCBlbmRwb2ludDogeyBbY0FdOiBxLCBbY0JdOiBhQywgW2NIXTogYWwgfSwgW2N0XTogbiB9LCB7IFtjdl06IFthciwgYXMsIGFBLCBaLCBhZywgYWgsIGFELCBhRV0sIFtjdV06IFt7IFtjdl06IGNkLCBlbmRwb2ludDogYU0sIFtjdF06IG4gfSwgeyBlbmRwb2ludDogYU0sIFtjdF06IG4gfV0sIFtjdF06IG8gfSwgeyBbY3ZdOiBbYXIsIGFzLCBhQSwgWiwgYWcsIGFMLCBhRCwgYUVdLCBbY3VdOiBbeyBbY3ZdOiBjZCwgZW5kcG9pbnQ6IGFOLCBbY3RdOiBuIH0sIGFPXSwgW2N0XTogbyB9LCB7IFtjdl06IFthciwgYXMsIGFBLCBaLCBhZywgYWgsIGFELCBhSF0sIGVuZHBvaW50OiBhTSwgW2N0XTogbiB9LCB7IFtjdl06IFthciwgYXMsIGFBLCBaLCBhZywgYUwsIGFELCBhSF0sIGVuZHBvaW50OiBhTiwgW2N0XTogbiB9LCB7IFtjdl06IFthciwgYXMsIFcsIGFxLCBhQl0sIGVuZHBvaW50OiB7IFtjQV06IEQsIFtjQl06IGFDLCBbY0hdOiBhbCB9LCBbY3RdOiBuIH0sIHsgW2N2XTogW2FyLCBhcywgVywgYXEsIGFELCBhRV0sIFtjdV06IFt7IFtjdl06IGNkLCBlbmRwb2ludDogYVAsIFtjdF06IG4gfSwgeyBlbmRwb2ludDogYVAsIFtjdF06IG4gfV0sIFtjdF06IG8gfSwgeyBbY3ZdOiBbYXIsIGFzLCBXLCBhcSwgYUQsIGFIXSwgZW5kcG9pbnQ6IGFQLCBbY3RdOiBuIH0sIHsgW2N2XTogW2FyLCBhcywgYUEsIGFxLCBhQl0sIGVuZHBvaW50OiB7IFtjQV06IEUsIFtjQl06IGFDLCBbY0hdOiBhbCB9LCBbY3RdOiBuIH0sIHsgW2N2XTogW2FyLCBhcywgYUEsIGFxLCBhRCwgYUVdLCBbY3VdOiBbeyBbY3ZdOiBjZCwgZW5kcG9pbnQ6IHsgW2NBXTogRSwgW2NCXTogYUcsIFtjSF06IGFsIH0sIFtjdF06IG4gfSwgeyBlbmRwb2ludDogYVEsIFtjdF06IG4gfV0sIFtjdF06IG8gfSwgeyBbY3ZdOiBbYXIsIGFzLCBhQSwgYXEsIGFELCBhSF0sIGVuZHBvaW50OiBhUSwgW2N0XTogbiB9XSwgW2N0XTogbyB9LCBhUl0sIFtjdF06IG8gfV0sIFtjdF06IG8gfSwgeyBbY3ZdOiBbWiwgYWcsIHsgW2N3XTogaCwgW2N4XTogW3sgW2N3XTogaSwgW2N4XTogW2FpLCBcInNjaGVtZVwiXSB9LCBcImh0dHBcIl0gfSwgeyBbY3ddOiBwLCBbY3hdOiBbYWQsIGNdIH0sIGF5LCBhcywgYXIsIGFBXSwgW2N1XTogW3sgW2N2XTogYkcsIFtjdV06IFt7IFtjdl06IGNjLCBbY3VdOiBbYU9dLCBbY3RdOiBvIH0sIGFSXSwgW2N0XTogbyB9XSwgW2N0XTogbyB9LCB7IFtjdl06IFtheSwgeyBbY3ddOiBGLCBbY3hdOiBiQSwgW2N6XTogRyB9XSwgW2N1XTogW3sgW2N2XTogW3sgW2N3XTogaSwgW2N4XTogW2FTLCBcInJlc291cmNlSWRbMF1cIl0sIFtjel06IEggfSwgeyBbY3ddOiByLCBbY3hdOiBbeyBbY3ddOiBoLCBbY3hdOiBbYVQsIEldIH1dIH1dLCBbY3VdOiBbeyBbY3ZdOiBbeyBbY3ddOiBoLCBbY3hdOiBbYVUsIEpdIH1dLCBbY3VdOiBbeyBbY3ZdOiBjZSwgW2N1XTogW3sgW2N2XTogY2YsIFtjdV06IFthVywgYVgsIHsgW2N2XTogY2ksIFtjdV06IFthWSwgeyBbY3ZdOiBjaiwgW2N1XTogW2FaLCB7IFtjdl06IGNsLCBbY3VdOiBbeyBbY3ZdOiBiRywgW2N1XTogW3sgW2N2XTogY20sIFtjdV06IFt7IFtjdl06IGNuLCBbY3VdOiBbeyBbY3ZdOiBbeyBbY3ddOiBoLCBbY3hdOiBbYmIsIEldIH1dLCBlcnJvcjogXCJJbnZhbGlkIEFSTjogTWlzc2luZyBhY2NvdW50IGlkXCIsIFtjdF06IGYgfSwgeyBbY3ZdOiBjbywgW2N1XTogW3sgW2N2XTogY3AsIFtjdV06IFt7IFtjdl06IGJDLCBlbmRwb2ludDogeyBbY0FdOiBNLCBbY0JdOiBiYywgW2NIXTogYWwgfSwgW2N0XTogbiB9LCB7IFtjdl06IGNxLCBlbmRwb2ludDogeyBbY0FdOiBcImh0dHBzOi8ve2FjY2Vzc1BvaW50TmFtZX0te2J1Y2tldEFybiNhY2NvdW50SWR9LnMzLW9iamVjdC1sYW1iZGEtZmlwcy57YnVja2V0QXJuI3JlZ2lvbn0ue2J1Y2tldFBhcnRpdGlvbiNkbnNTdWZmaXh9XCIsIFtjQl06IGJjLCBbY0hdOiBhbCB9LCBbY3RdOiBuIH0sIHsgZW5kcG9pbnQ6IHsgW2NBXTogXCJodHRwczovL3thY2Nlc3NQb2ludE5hbWV9LXtidWNrZXRBcm4jYWNjb3VudElkfS5zMy1vYmplY3QtbGFtYmRhLntidWNrZXRBcm4jcmVnaW9ufS57YnVja2V0UGFydGl0aW9uI2Ruc1N1ZmZpeH1cIiwgW2NCXTogYmMsIFtjSF06IGFsIH0sIFtjdF06IG4gfV0sIFtjdF06IG8gfSwgYmRdLCBbY3RdOiBvIH0sIGJlXSwgW2N0XTogbyB9LCBiZl0sIFtjdF06IG8gfSwgYmddLCBbY3RdOiBvIH1dLCBbY3RdOiBvIH1dLCBbY3RdOiBvIH0sIGJoXSwgW2N0XTogbyB9LCB7IGVycm9yOiBcIkludmFsaWQgQVJOOiBidWNrZXQgQVJOIGlzIG1pc3NpbmcgYSByZWdpb25cIiwgW2N0XTogZiB9XSwgW2N0XTogbyB9LCBiaV0sIFtjdF06IG8gfSwgeyBlcnJvcjogXCJJbnZhbGlkIEFSTjogT2JqZWN0IExhbWJkYSBBUk5zIG9ubHkgc3VwcG9ydCBgYWNjZXNzcG9pbnRgIGFybiB0eXBlcywgYnV0IGZvdW5kOiBge2FyblR5cGV9YFwiLCBbY3RdOiBmIH1dLCBbY3RdOiBvIH0sIHsgW2N2XTogY2UsIFtjdV06IFt7IFtjdl06IGNmLCBbY3VdOiBbeyBbY3ZdOiBjaSwgW2N1XTogW3sgW2N2XTogY2UsIFtjdV06IFt7IFtjdl06IGNpLCBbY3VdOiBbYVksIHsgW2N2XTogY2osIFtjdV06IFthWiwgeyBbY3ZdOiBjbCwgW2N1XTogW3sgW2N2XTogYkcsIFtjdV06IFt7IFtjdl06IFt7IFtjd106IGgsIFtjeF06IFtiYSwgXCJ7cGFydGl0aW9uUmVzdWx0I25hbWV9XCJdIH1dLCBbY3VdOiBbeyBbY3ZdOiBjbiwgW2N1XTogW3sgW2N2XTogW3sgW2N3XTogaCwgW2N4XTogW2FVLCBCXSB9XSwgW2N1XTogW3sgW2N2XTogY28sIFtjdV06IFt7IFtjdl06IGNwLCBbY3VdOiBbeyBbY3ZdOiBiQiwgZXJyb3I6IFwiQWNjZXNzIFBvaW50cyBkbyBub3Qgc3VwcG9ydCBTMyBBY2NlbGVyYXRlXCIsIFtjdF06IGYgfSwgeyBbY3ZdOiBiSCwgZW5kcG9pbnQ6IHsgW2NBXTogXCJodHRwczovL3thY2Nlc3NQb2ludE5hbWV9LXtidWNrZXRBcm4jYWNjb3VudElkfS5zMy1hY2Nlc3Nwb2ludC1maXBzLmR1YWxzdGFjay57YnVja2V0QXJuI3JlZ2lvbn0ue2J1Y2tldFBhcnRpdGlvbiNkbnNTdWZmaXh9XCIsIFtjQl06IGJqLCBbY0hdOiBhbCB9LCBbY3RdOiBuIH0sIHsgW2N2XTogYkksIGVuZHBvaW50OiB7IFtjQV06IFwiaHR0cHM6Ly97YWNjZXNzUG9pbnROYW1lfS17YnVja2V0QXJuI2FjY291bnRJZH0uczMtYWNjZXNzcG9pbnQtZmlwcy57YnVja2V0QXJuI3JlZ2lvbn0ue2J1Y2tldFBhcnRpdGlvbiNkbnNTdWZmaXh9XCIsIFtjQl06IGJqLCBbY0hdOiBhbCB9LCBbY3RdOiBuIH0sIHsgW2N2XTogYkosIGVuZHBvaW50OiB7IFtjQV06IFwiaHR0cHM6Ly97YWNjZXNzUG9pbnROYW1lfS17YnVja2V0QXJuI2FjY291bnRJZH0uczMtYWNjZXNzcG9pbnQuZHVhbHN0YWNrLntidWNrZXRBcm4jcmVnaW9ufS57YnVja2V0UGFydGl0aW9uI2Ruc1N1ZmZpeH1cIiwgW2NCXTogYmosIFtjSF06IGFsIH0sIFtjdF06IG4gfSwgeyBbY3ZdOiBbYXMsIGFyLCBaLCBhZ10sIGVuZHBvaW50OiB7IFtjQV06IE0sIFtjQl06IGJqLCBbY0hdOiBhbCB9LCBbY3RdOiBuIH0sIHsgW2N2XTogYkssIGVuZHBvaW50OiB7IFtjQV06IFwiaHR0cHM6Ly97YWNjZXNzUG9pbnROYW1lfS17YnVja2V0QXJuI2FjY291bnRJZH0uczMtYWNjZXNzcG9pbnQue2J1Y2tldEFybiNyZWdpb259LntidWNrZXRQYXJ0aXRpb24jZG5zU3VmZml4fVwiLCBbY0JdOiBiaiwgW2NIXTogYWwgfSwgW2N0XTogbiB9XSwgW2N0XTogbyB9LCBiZF0sIFtjdF06IG8gfSwgYmVdLCBbY3RdOiBvIH0sIHsgZXJyb3I6IFwiSW52YWxpZCBBUk46IFRoZSBBUk4gd2FzIG5vdCBmb3IgdGhlIFMzIHNlcnZpY2UsIGZvdW5kOiB7YnVja2V0QXJuI3NlcnZpY2V9XCIsIFtjdF06IGYgfV0sIFtjdF06IG8gfSwgYmZdLCBbY3RdOiBvIH0sIGJnXSwgW2N0XTogbyB9XSwgW2N0XTogbyB9XSwgW2N0XTogbyB9LCBiaF0sIFtjdF06IG8gfV0sIFtjdF06IG8gfV0sIFtjdF06IG8gfSwgeyBbY3ZdOiBbeyBbY3ddOiB5LCBbY3hdOiBbYVYsIGNdIH1dLCBbY3VdOiBbeyBbY3ZdOiBjaCwgZXJyb3I6IFwiUzMgTVJBUCBkb2VzIG5vdCBzdXBwb3J0IGR1YWwtc3RhY2tcIiwgW2N0XTogZiB9LCB7IFtjdl06IGNxLCBlcnJvcjogXCJTMyBNUkFQIGRvZXMgbm90IHN1cHBvcnQgRklQU1wiLCBbY3RdOiBmIH0sIHsgW2N2XTogYkIsIGVycm9yOiBcIlMzIE1SQVAgZG9lcyBub3Qgc3VwcG9ydCBTMyBBY2NlbGVyYXRlXCIsIFtjdF06IGYgfSwgeyBbY3ZdOiBbeyBbY3ddOiBlLCBbY3hdOiBbeyBbY3ldOiBcIkRpc2FibGVNdWx0aVJlZ2lvbkFjY2Vzc1BvaW50c1wiIH0sIGNdIH1dLCBlcnJvcjogXCJJbnZhbGlkIGNvbmZpZ3VyYXRpb246IE11bHRpLVJlZ2lvbiBBY2Nlc3MgUG9pbnQgQVJOcyBhcmUgZGlzYWJsZWQuXCIsIFtjdF06IGYgfSwgeyBbY3ZdOiBbeyBbY3ddOiBnLCBbY3hdOiBieSwgW2N6XTogTiB9XSwgW2N1XTogW3sgW2N2XTogW3sgW2N3XTogaCwgW2N4XTogW3sgW2N3XTogaSwgW2N4XTogW3sgW2N5XTogTiB9LCBqXSB9LCB7IFtjd106IGksIFtjeF06IFthUywgXCJwYXJ0aXRpb25cIl0gfV0gfV0sIFtjdV06IFt7IGVuZHBvaW50OiB7IFtjQV06IFwiaHR0cHM6Ly97YWNjZXNzUG9pbnROYW1lfS5hY2Nlc3Nwb2ludC5zMy1nbG9iYWwue21yYXBQYXJ0aXRpb24jZG5zU3VmZml4fVwiLCBbY0JdOiB7IFtjRF06IFt7IFtjRV06IGMsIG5hbWU6IHosIFtjRl06IEIsIFtjSV06IGNiIH1dIH0sIFtjSF06IGFsIH0sIFtjdF06IG4gfV0sIFtjdF06IG8gfSwgeyBlcnJvcjogXCJDbGllbnQgd2FzIGNvbmZpZ3VyZWQgZm9yIHBhcnRpdGlvbiBge21yYXBQYXJ0aXRpb24jbmFtZX1gIGJ1dCBidWNrZXQgcmVmZXJyZWQgdG8gcGFydGl0aW9uIGB7YnVja2V0QXJuI3BhcnRpdGlvbn1gXCIsIFtjdF06IGYgfV0sIFtjdF06IG8gfV0sIFtjdF06IG8gfSwgeyBlcnJvcjogXCJJbnZhbGlkIEFjY2VzcyBQb2ludCBOYW1lXCIsIFtjdF06IGYgfV0sIFtjdF06IG8gfSwgYmldLCBbY3RdOiBvIH0sIHsgW2N2XTogW3sgW2N3XTogaCwgW2N4XTogW2FVLCBBXSB9XSwgW2N1XTogW3sgW2N2XTogY2gsIGVycm9yOiBcIlMzIE91dHBvc3RzIGRvZXMgbm90IHN1cHBvcnQgRHVhbC1zdGFja1wiLCBbY3RdOiBmIH0sIHsgW2N2XTogY3EsIGVycm9yOiBcIlMzIE91dHBvc3RzIGRvZXMgbm90IHN1cHBvcnQgRklQU1wiLCBbY3RdOiBmIH0sIHsgW2N2XTogYkIsIGVycm9yOiBcIlMzIE91dHBvc3RzIGRvZXMgbm90IHN1cHBvcnQgUzMgQWNjZWxlcmF0ZVwiLCBbY3RdOiBmIH0sIHsgW2N2XTogW3sgW2N3XTogZCwgW2N4XTogW3sgW2N3XTogaSwgW2N4XTogW2FTLCBcInJlc291cmNlSWRbNF1cIl0gfV0gfV0sIGVycm9yOiBcIkludmFsaWQgQXJuOiBPdXRwb3N0IEFjY2VzcyBQb2ludCBBUk4gY29udGFpbnMgc3ViIHJlc291cmNlc1wiLCBbY3RdOiBmIH0sIHsgW2N2XTogW3sgW2N3XTogaSwgW2N4XTogY2csIFtjel06IHggfV0sIFtjdV06IFt7IFtjdl06IGJaLCBbY3VdOiBbYVosIHsgW2N2XTogY2wsIFtjdV06IFt7IFtjdl06IGJHLCBbY3VdOiBbeyBbY3ZdOiBjbSwgW2N1XTogW3sgW2N2XTogY24sIFtjdV06IFt7IFtjdl06IGNvLCBbY3VdOiBbeyBbY3ZdOiBbeyBbY3ddOiBpLCBbY3hdOiBjaywgW2N6XTogTyB9XSwgW2N1XTogW3sgW2N2XTogW3sgW2N3XTogaSwgW2N4XTogW2FTLCBcInJlc291cmNlSWRbM11cIl0sIFtjel06IEwgfV0sIFtjdV06IFt7IFtjdl06IFt7IFtjd106IGgsIFtjeF06IFt7IFtjeV06IE8gfSwgS10gfV0sIFtjdV06IFt7IFtjdl06IGJDLCBlbmRwb2ludDogeyBbY0FdOiBcImh0dHBzOi8ve2FjY2Vzc1BvaW50TmFtZX0te2J1Y2tldEFybiNhY2NvdW50SWR9LntvdXRwb3N0SWR9Lnt1cmwjYXV0aG9yaXR5fVwiLCBbY0JdOiBiaywgW2NIXTogYWwgfSwgW2N0XTogbiB9LCB7IGVuZHBvaW50OiB7IFtjQV06IFwiaHR0cHM6Ly97YWNjZXNzUG9pbnROYW1lfS17YnVja2V0QXJuI2FjY291bnRJZH0ue291dHBvc3RJZH0uczMtb3V0cG9zdHMue2J1Y2tldEFybiNyZWdpb259LntidWNrZXRQYXJ0aXRpb24jZG5zU3VmZml4fVwiLCBbY0JdOiBiaywgW2NIXTogYWwgfSwgW2N0XTogbiB9XSwgW2N0XTogbyB9LCB7IGVycm9yOiBcIkV4cGVjdGVkIGFuIG91dHBvc3QgdHlwZSBgYWNjZXNzcG9pbnRgLCBmb3VuZCB7b3V0cG9zdFR5cGV9XCIsIFtjdF06IGYgfV0sIFtjdF06IG8gfSwgeyBlcnJvcjogXCJJbnZhbGlkIEFSTjogZXhwZWN0ZWQgYW4gYWNjZXNzIHBvaW50IG5hbWVcIiwgW2N0XTogZiB9XSwgW2N0XTogbyB9LCB7IGVycm9yOiBcIkludmFsaWQgQVJOOiBFeHBlY3RlZCBhIDQtY29tcG9uZW50IHJlc291cmNlXCIsIFtjdF06IGYgfV0sIFtjdF06IG8gfSwgYmVdLCBbY3RdOiBvIH0sIGJmXSwgW2N0XTogbyB9LCBiZ10sIFtjdF06IG8gfV0sIFtjdF06IG8gfV0sIFtjdF06IG8gfSwgeyBlcnJvcjogXCJJbnZhbGlkIEFSTjogVGhlIG91dHBvc3QgSWQgbWF5IG9ubHkgY29udGFpbiBhLXosIEEtWiwgMC05IGFuZCBgLWAuIEZvdW5kOiBge291dHBvc3RJZH1gXCIsIFtjdF06IGYgfV0sIFtjdF06IG8gfSwgeyBlcnJvcjogXCJJbnZhbGlkIEFSTjogVGhlIE91dHBvc3QgSWQgd2FzIG5vdCBzZXRcIiwgW2N0XTogZiB9XSwgW2N0XTogbyB9LCB7IGVycm9yOiBcIkludmFsaWQgQVJOOiBVbnJlY29nbml6ZWQgZm9ybWF0OiB7QnVja2V0fSAodHlwZToge2FyblR5cGV9KVwiLCBbY3RdOiBmIH1dLCBbY3RdOiBvIH0sIHsgZXJyb3I6IFwiSW52YWxpZCBBUk46IE5vIEFSTiB0eXBlIHNwZWNpZmllZFwiLCBbY3RdOiBmIH1dLCBbY3RdOiBvIH0sIHsgW2N2XTogW3sgW2N3XTogaywgW2N4XTogW2FkLCAwLCA0LCBiXSwgW2N6XTogUCB9LCB7IFtjd106IGgsIFtjeF06IFt7IFtjeV06IFAgfSwgXCJhcm46XCJdIH0sIHsgW2N3XTogciwgW2N4XTogW3sgW2N3XTogZCwgW2N4XTogW2JsXSB9XSB9XSwgZXJyb3I6IFwiSW52YWxpZCBBUk46IGB7QnVja2V0fWAgd2FzIG5vdCBhIHZhbGlkIEFSTlwiLCBbY3RdOiBmIH0sIHsgW2N2XTogW3sgW2N3XTogZSwgW2N4XTogW2F6LCBjXSB9LCBibF0sIGVycm9yOiBcIlBhdGgtc3R5bGUgYWRkcmVzc2luZyBjYW5ub3QgYmUgdXNlZCB3aXRoIEFSTiBidWNrZXRzXCIsIFtjdF06IGYgfSwgeyBbY3ZdOiBiRSwgW2N1XTogW3sgW2N2XTogYkcsIFtjdV06IFt7IFtjdl06IFthQV0sIFtjdV06IFt7IFtjdl06IFtZLCBhcSwgWCwgYUJdLCBlbmRwb2ludDogeyBbY0FdOiBcImh0dHBzOi8vczMtZmlwcy5kdWFsc3RhY2sudXMtZWFzdC0xLntwYXJ0aXRpb25SZXN1bHQjZG5zU3VmZml4fS97dXJpX2VuY29kZWRfYnVja2V0fVwiLCBbY0JdOiBhQywgW2NIXTogYWwgfSwgW2N0XTogbiB9LCB7IFtjdl06IFtZLCBhcSwgWCwgYUQsIGFFXSwgW2N1XTogW3sgZW5kcG9pbnQ6IGJtLCBbY3RdOiBuIH1dLCBbY3RdOiBvIH0sIHsgW2N2XTogW1ksIGFxLCBYLCBhRCwgYUhdLCBlbmRwb2ludDogYm0sIFtjdF06IG4gfSwgeyBbY3ZdOiBbYXIsIGFxLCBYLCBhQl0sIGVuZHBvaW50OiB7IFtjQV06IFwiaHR0cHM6Ly9zMy1maXBzLnVzLWVhc3QtMS57cGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH0ve3VyaV9lbmNvZGVkX2J1Y2tldH1cIiwgW2NCXTogYUMsIFtjSF06IGFsIH0sIFtjdF06IG4gfSwgeyBbY3ZdOiBbYXIsIGFxLCBYLCBhRCwgYUVdLCBbY3VdOiBbeyBlbmRwb2ludDogYm4sIFtjdF06IG4gfV0sIFtjdF06IG8gfSwgeyBbY3ZdOiBbYXIsIGFxLCBYLCBhRCwgYUhdLCBlbmRwb2ludDogYm4sIFtjdF06IG4gfSwgeyBbY3ZdOiBbWSwgYXEsIGFzLCBhQl0sIGVuZHBvaW50OiB7IFtjQV06IFwiaHR0cHM6Ly9zMy5kdWFsc3RhY2sudXMtZWFzdC0xLntwYXJ0aXRpb25SZXN1bHQjZG5zU3VmZml4fS97dXJpX2VuY29kZWRfYnVja2V0fVwiLCBbY0JdOiBhQywgW2NIXTogYWwgfSwgW2N0XTogbiB9LCB7IFtjdl06IFtZLCBhcSwgYXMsIGFELCBhRV0sIFtjdV06IFt7IGVuZHBvaW50OiBibywgW2N0XTogbiB9XSwgW2N0XTogbyB9LCB7IFtjdl06IFtZLCBhcSwgYXMsIGFELCBhSF0sIGVuZHBvaW50OiBibywgW2N0XTogbiB9LCB7IFtjdl06IFthciwgWiwgYWcsIGFzLCBhQl0sIGVuZHBvaW50OiB7IFtjQV06IFEsIFtjQl06IGFDLCBbY0hdOiBhbCB9LCBbY3RdOiBuIH0sIHsgW2N2XTogW2FyLCBaLCBhZywgYXMsIGFELCBhRV0sIFtjdV06IFt7IFtjdl06IGNkLCBlbmRwb2ludDogYnAsIFtjdF06IG4gfSwgeyBlbmRwb2ludDogYnAsIFtjdF06IG4gfV0sIFtjdF06IG8gfSwgeyBbY3ZdOiBbYXIsIFosIGFnLCBhcywgYUQsIGFIXSwgZW5kcG9pbnQ6IGJwLCBbY3RdOiBuIH0sIHsgW2N2XTogW2FyLCBhcSwgYXMsIGFCXSwgZW5kcG9pbnQ6IHsgW2NBXTogUiwgW2NCXTogYUMsIFtjSF06IGFsIH0sIFtjdF06IG4gfSwgeyBbY3ZdOiBbYXIsIGFxLCBhcywgYUQsIGFFXSwgW2N1XTogW3sgW2N2XTogY2QsIGVuZHBvaW50OiB7IFtjQV06IFIsIFtjQl06IGFHLCBbY0hdOiBhbCB9LCBbY3RdOiBuIH0sIHsgZW5kcG9pbnQ6IGJxLCBbY3RdOiBuIH1dLCBbY3RdOiBvIH0sIHsgW2N2XTogW2FyLCBhcSwgYXMsIGFELCBhSF0sIGVuZHBvaW50OiBicSwgW2N0XTogbiB9XSwgW2N0XTogbyB9LCB7IGVycm9yOiBcIlBhdGgtc3R5bGUgYWRkcmVzc2luZyBjYW5ub3QgYmUgdXNlZCB3aXRoIFMzIEFjY2VsZXJhdGVcIiwgW2N0XTogZiB9XSwgW2N0XTogbyB9XSwgW2N0XTogbyB9XSwgW2N0XTogbyB9LCB7IFtjdl06IFt7IFtjd106IGQsIFtjeF06IFticl0gfSwgeyBbY3ddOiBlLCBbY3hdOiBbYnIsIGNdIH1dLCBbY3VdOiBbeyBbY3ZdOiBiRywgW2N1XTogW3sgW2N2XTogY3IsIFtjdV06IFthVywgYVgsIHsgW2N2XTogYkMsIGVuZHBvaW50OiB7IFtjQV06IHQsIFtjQl06IGJzLCBbY0hdOiBhbCB9LCBbY3RdOiBuIH0sIHsgW2N2XTogY3EsIGVuZHBvaW50OiB7IFtjQV06IFwiaHR0cHM6Ly9zMy1vYmplY3QtbGFtYmRhLWZpcHMue1JlZ2lvbn0ue3BhcnRpdGlvblJlc3VsdCNkbnNTdWZmaXh9XCIsIFtjQl06IGJzLCBbY0hdOiBhbCB9LCBbY3RdOiBuIH0sIHsgZW5kcG9pbnQ6IHsgW2NBXTogXCJodHRwczovL3MzLW9iamVjdC1sYW1iZGEue1JlZ2lvbn0ue3BhcnRpdGlvblJlc3VsdCNkbnNTdWZmaXh9XCIsIFtjQl06IGJzLCBbY0hdOiBhbCB9LCBbY3RdOiBuIH1dLCBbY3RdOiBvIH0sIGFSXSwgW2N0XTogbyB9XSwgW2N0XTogbyB9LCB7IFtjdl06IFthdV0sIFtjdV06IFt7IFtjdl06IGJHLCBbY3VdOiBbeyBbY3ZdOiBjciwgW2N1XTogW3sgW2N2XTogW1gsIFksIGFxLCBhQl0sIGVuZHBvaW50OiB7IFtjQV06IFwiaHR0cHM6Ly9zMy1maXBzLmR1YWxzdGFjay51cy1lYXN0LTEue3BhcnRpdGlvblJlc3VsdCNkbnNTdWZmaXh9XCIsIFtjQl06IGFDLCBbY0hdOiBhbCB9LCBbY3RdOiBuIH0sIHsgW2N2XTogW1gsIFksIGFxLCBhRCwgYUVdLCBbY3VdOiBbeyBlbmRwb2ludDogYnQsIFtjdF06IG4gfV0sIFtjdF06IG8gfSwgeyBbY3ZdOiBbWCwgWSwgYXEsIGFELCBhSF0sIGVuZHBvaW50OiBidCwgW2N0XTogbiB9LCB7IFtjdl06IFtYLCBhciwgYXEsIGFCXSwgZW5kcG9pbnQ6IHsgW2NBXTogXCJodHRwczovL3MzLWZpcHMudXMtZWFzdC0xLntwYXJ0aXRpb25SZXN1bHQjZG5zU3VmZml4fVwiLCBbY0JdOiBhQywgW2NIXTogYWwgfSwgW2N0XTogbiB9LCB7IFtjdl06IFtYLCBhciwgYXEsIGFELCBhRV0sIFtjdV06IFt7IGVuZHBvaW50OiBidSwgW2N0XTogbiB9XSwgW2N0XTogbyB9LCB7IFtjdl06IFtYLCBhciwgYXEsIGFELCBhSF0sIGVuZHBvaW50OiBidSwgW2N0XTogbiB9LCB7IFtjdl06IFthcywgWSwgYXEsIGFCXSwgZW5kcG9pbnQ6IHsgW2NBXTogXCJodHRwczovL3MzLmR1YWxzdGFjay51cy1lYXN0LTEue3BhcnRpdGlvblJlc3VsdCNkbnNTdWZmaXh9XCIsIFtjQl06IGFDLCBbY0hdOiBhbCB9LCBbY3RdOiBuIH0sIHsgW2N2XTogW2FzLCBZLCBhcSwgYUQsIGFFXSwgW2N1XTogW3sgZW5kcG9pbnQ6IGJ2LCBbY3RdOiBuIH1dLCBbY3RdOiBvIH0sIHsgW2N2XTogW2FzLCBZLCBhcSwgYUQsIGFIXSwgZW5kcG9pbnQ6IGJ2LCBbY3RdOiBuIH0sIHsgW2N2XTogW2FzLCBhciwgWiwgYWcsIGFCXSwgZW5kcG9pbnQ6IHsgW2NBXTogdCwgW2NCXTogYUMsIFtjSF06IGFsIH0sIFtjdF06IG4gfSwgeyBbY3ZdOiBbYXMsIGFyLCBaLCBhZywgYUQsIGFFXSwgW2N1XTogW3sgW2N2XTogY2QsIGVuZHBvaW50OiBidywgW2N0XTogbiB9LCB7IGVuZHBvaW50OiBidywgW2N0XTogbiB9XSwgW2N0XTogbyB9LCB7IFtjdl06IFthcywgYXIsIFosIGFnLCBhRCwgYUhdLCBlbmRwb2ludDogYncsIFtjdF06IG4gfSwgeyBbY3ZdOiBbYXMsIGFyLCBhcSwgYUJdLCBlbmRwb2ludDogeyBbY0FdOiBTLCBbY0JdOiBhQywgW2NIXTogYWwgfSwgW2N0XTogbiB9LCB7IFtjdl06IFthcywgYXIsIGFxLCBhRCwgYUVdLCBbY3VdOiBbeyBbY3ZdOiBjZCwgZW5kcG9pbnQ6IHsgW2NBXTogUywgW2NCXTogYUcsIFtjSF06IGFsIH0sIFtjdF06IG4gfSwgeyBlbmRwb2ludDogYngsIFtjdF06IG4gfV0sIFtjdF06IG8gfSwgeyBbY3ZdOiBbYXMsIGFyLCBhcSwgYUQsIGFIXSwgZW5kcG9pbnQ6IGJ4LCBbY3RdOiBuIH1dLCBbY3RdOiBvIH0sIGFSXSwgW2N0XTogbyB9XSwgW2N0XTogbyB9XSwgW2N0XTogbyB9LCB7IGVycm9yOiBcIkEgcmVnaW9uIG11c3QgYmUgc2V0IHdoZW4gc2VuZGluZyByZXF1ZXN0cyB0byBTMy5cIiwgW2N0XTogZiB9XSB9O1xuZXhwb3J0cy5ydWxlU2V0ID0gX2RhdGE7XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmRlZmF1bHRFbmRwb2ludFJlc29sdmVyID0gdm9pZCAwO1xuY29uc3QgdXRpbF9lbmRwb2ludHNfMSA9IHJlcXVpcmUoXCJAYXdzLXNkay91dGlsLWVuZHBvaW50c1wiKTtcbmNvbnN0IHV0aWxfZW5kcG9pbnRzXzIgPSByZXF1aXJlKFwiQHNtaXRoeS91dGlsLWVuZHBvaW50c1wiKTtcbmNvbnN0IHJ1bGVzZXRfMSA9IHJlcXVpcmUoXCIuL3J1bGVzZXRcIik7XG5jb25zdCBjYWNoZSA9IG5ldyB1dGlsX2VuZHBvaW50c18yLkVuZHBvaW50Q2FjaGUoe1xuICAgIHNpemU6IDUwLFxuICAgIHBhcmFtczogW1xuICAgICAgICBcIkFjY2VsZXJhdGVcIixcbiAgICAgICAgXCJCdWNrZXRcIixcbiAgICAgICAgXCJEaXNhYmxlQWNjZXNzUG9pbnRzXCIsXG4gICAgICAgIFwiRGlzYWJsZU11bHRpUmVnaW9uQWNjZXNzUG9pbnRzXCIsXG4gICAgICAgIFwiRGlzYWJsZVMzRXhwcmVzc1Nlc3Npb25BdXRoXCIsXG4gICAgICAgIFwiRW5kcG9pbnRcIixcbiAgICAgICAgXCJGb3JjZVBhdGhTdHlsZVwiLFxuICAgICAgICBcIlJlZ2lvblwiLFxuICAgICAgICBcIlVzZUFyblJlZ2lvblwiLFxuICAgICAgICBcIlVzZUR1YWxTdGFja1wiLFxuICAgICAgICBcIlVzZUZJUFNcIixcbiAgICAgICAgXCJVc2VHbG9iYWxFbmRwb2ludFwiLFxuICAgICAgICBcIlVzZU9iamVjdExhbWJkYUVuZHBvaW50XCIsXG4gICAgICAgIFwiVXNlUzNFeHByZXNzQ29udHJvbEVuZHBvaW50XCIsXG4gICAgXSxcbn0pO1xuY29uc3QgZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIgPSAoZW5kcG9pbnRQYXJhbXMsIGNvbnRleHQgPSB7fSkgPT4ge1xuICAgIHJldHVybiBjYWNoZS5nZXQoZW5kcG9pbnRQYXJhbXMsICgpID0+ICgwLCB1dGlsX2VuZHBvaW50c18yLnJlc29sdmVFbmRwb2ludCkocnVsZXNldF8xLnJ1bGVTZXQsIHtcbiAgICAgICAgZW5kcG9pbnRQYXJhbXM6IGVuZHBvaW50UGFyYW1zLFxuICAgICAgICBsb2dnZXI6IGNvbnRleHQubG9nZ2VyLFxuICAgIH0pKTtcbn07XG5leHBvcnRzLmRlZmF1bHRFbmRwb2ludFJlc29sdmVyID0gZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXI7XG51dGlsX2VuZHBvaW50c18yLmN1c3RvbUVuZHBvaW50RnVuY3Rpb25zLmF3cyA9IHV0aWxfZW5kcG9pbnRzXzEuYXdzRW5kcG9pbnRGdW5jdGlvbnM7XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLnJlc29sdmVIdHRwQXV0aFNjaGVtZUNvbmZpZyA9IGV4cG9ydHMuZGVmYXVsdFMzSHR0cEF1dGhTY2hlbWVQcm92aWRlciA9IGV4cG9ydHMuZGVmYXVsdFMzSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIgPSB2b2lkIDA7XG5jb25zdCBjb3JlXzEgPSByZXF1aXJlKFwiQGF3cy1zZGsvY29yZVwiKTtcbmNvbnN0IHNpZ25hdHVyZV92NF9tdWx0aV9yZWdpb25fMSA9IHJlcXVpcmUoXCJAYXdzLXNkay9zaWduYXR1cmUtdjQtbXVsdGktcmVnaW9uXCIpO1xuY29uc3QgbWlkZGxld2FyZV9lbmRwb2ludF8xID0gcmVxdWlyZShcIkBzbWl0aHkvbWlkZGxld2FyZS1lbmRwb2ludFwiKTtcbmNvbnN0IHV0aWxfbWlkZGxld2FyZV8xID0gcmVxdWlyZShcIkBzbWl0aHkvdXRpbC1taWRkbGV3YXJlXCIpO1xuY29uc3QgZW5kcG9pbnRSZXNvbHZlcl8xID0gcmVxdWlyZShcIi4uL2VuZHBvaW50L2VuZHBvaW50UmVzb2x2ZXJcIik7XG5jb25zdCBjcmVhdGVFbmRwb2ludFJ1bGVTZXRIdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlciA9IChkZWZhdWx0SHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIpID0+IGFzeW5jIChjb25maWcsIGNvbnRleHQsIGlucHV0KSA9PiB7XG4gICAgaWYgKCFpbnB1dCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENvdWxkIG5vdCBmaW5kIFxcYGlucHV0XFxgIGZvciBcXGBkZWZhdWx0RW5kcG9pbnRSdWxlU2V0SHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXJcXGBgKTtcbiAgICB9XG4gICAgY29uc3QgZGVmYXVsdFBhcmFtZXRlcnMgPSBhd2FpdCBkZWZhdWx0SHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIoY29uZmlnLCBjb250ZXh0LCBpbnB1dCk7XG4gICAgY29uc3QgaW5zdHJ1Y3Rpb25zRm4gPSAoMCwgdXRpbF9taWRkbGV3YXJlXzEuZ2V0U21pdGh5Q29udGV4dCkoY29udGV4dCk/LmNvbW1hbmRJbnN0YW5jZT8uY29uc3RydWN0b3JcbiAgICAgICAgPy5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucztcbiAgICBpZiAoIWluc3RydWN0aW9uc0ZuKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSBpcyBub3QgZGVmaW5lZCBvbiBcXGAke2NvbnRleHQuY29tbWFuZE5hbWV9XFxgYCk7XG4gICAgfVxuICAgIGNvbnN0IGVuZHBvaW50UGFyYW1ldGVycyA9IGF3YWl0ICgwLCBtaWRkbGV3YXJlX2VuZHBvaW50XzEucmVzb2x2ZVBhcmFtcykoaW5wdXQsIHsgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnM6IGluc3RydWN0aW9uc0ZuIH0sIGNvbmZpZyk7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oZGVmYXVsdFBhcmFtZXRlcnMsIGVuZHBvaW50UGFyYW1ldGVycyk7XG59O1xuY29uc3QgX2RlZmF1bHRTM0h0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyID0gYXN5bmMgKGNvbmZpZywgY29udGV4dCwgaW5wdXQpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgICBvcGVyYXRpb246ICgwLCB1dGlsX21pZGRsZXdhcmVfMS5nZXRTbWl0aHlDb250ZXh0KShjb250ZXh0KS5vcGVyYXRpb24sXG4gICAgICAgIHJlZ2lvbjogKGF3YWl0ICgwLCB1dGlsX21pZGRsZXdhcmVfMS5ub3JtYWxpemVQcm92aWRlcikoY29uZmlnLnJlZ2lvbikoKSkgfHxcbiAgICAgICAgICAgICgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiZXhwZWN0ZWQgYHJlZ2lvbmAgdG8gYmUgY29uZmlndXJlZCBmb3IgYGF3cy5hdXRoI3NpZ3Y0YFwiKTtcbiAgICAgICAgICAgIH0pKCksXG4gICAgfTtcbn07XG5leHBvcnRzLmRlZmF1bHRTM0h0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyID0gY3JlYXRlRW5kcG9pbnRSdWxlU2V0SHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIoX2RlZmF1bHRTM0h0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyKTtcbmZ1bmN0aW9uIGNyZWF0ZUF3c0F1dGhTaWd2NEh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc2NoZW1lSWQ6IFwiYXdzLmF1dGgjc2lndjRcIixcbiAgICAgICAgc2lnbmluZ1Byb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIG5hbWU6IFwiczNcIixcbiAgICAgICAgICAgIHJlZ2lvbjogYXV0aFBhcmFtZXRlcnMucmVnaW9uLFxuICAgICAgICB9LFxuICAgICAgICBwcm9wZXJ0aWVzRXh0cmFjdG9yOiAoY29uZmlnLCBjb250ZXh0KSA9PiAoe1xuICAgICAgICAgICAgc2lnbmluZ1Byb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICBjb25maWcsXG4gICAgICAgICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pLFxuICAgIH07XG59XG5mdW5jdGlvbiBjcmVhdGVBd3NBdXRoU2lndjRhSHR0cEF1dGhPcHRpb24oYXV0aFBhcmFtZXRlcnMpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBzY2hlbWVJZDogXCJhd3MuYXV0aCNzaWd2NGFcIixcbiAgICAgICAgc2lnbmluZ1Byb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIG5hbWU6IFwiczNcIixcbiAgICAgICAgICAgIHJlZ2lvbjogYXV0aFBhcmFtZXRlcnMucmVnaW9uLFxuICAgICAgICB9LFxuICAgICAgICBwcm9wZXJ0aWVzRXh0cmFjdG9yOiAoY29uZmlnLCBjb250ZXh0KSA9PiAoe1xuICAgICAgICAgICAgc2lnbmluZ1Byb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICBjb25maWcsXG4gICAgICAgICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pLFxuICAgIH07XG59XG5jb25zdCBjcmVhdGVFbmRwb2ludFJ1bGVTZXRIdHRwQXV0aFNjaGVtZVByb3ZpZGVyID0gKGRlZmF1bHRFbmRwb2ludFJlc29sdmVyLCBkZWZhdWx0SHR0cEF1dGhTY2hlbWVSZXNvbHZlciwgY3JlYXRlSHR0cEF1dGhPcHRpb25GdW5jdGlvbnMpID0+IHtcbiAgICBjb25zdCBlbmRwb2ludFJ1bGVTZXRIdHRwQXV0aFNjaGVtZVByb3ZpZGVyID0gKGF1dGhQYXJhbWV0ZXJzKSA9PiB7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50ID0gZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIoYXV0aFBhcmFtZXRlcnMpO1xuICAgICAgICBjb25zdCBhdXRoU2NoZW1lcyA9IGVuZHBvaW50LnByb3BlcnRpZXM/LmF1dGhTY2hlbWVzO1xuICAgICAgICBpZiAoIWF1dGhTY2hlbWVzKSB7XG4gICAgICAgICAgICByZXR1cm4gZGVmYXVsdEh0dHBBdXRoU2NoZW1lUmVzb2x2ZXIoYXV0aFBhcmFtZXRlcnMpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBzY2hlbWUgb2YgYXV0aFNjaGVtZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgbmFtZTogcmVzb2x2ZWROYW1lLCBwcm9wZXJ0aWVzID0ge30sIC4uLnJlc3QgfSA9IHNjaGVtZTtcbiAgICAgICAgICAgIGNvbnN0IG5hbWUgPSByZXNvbHZlZE5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgIGlmIChyZXNvbHZlZE5hbWUgIT09IG5hbWUpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYEh0dHBBdXRoU2NoZW1lIGhhcyBiZWVuIG5vcm1hbGl6ZWQgd2l0aCBsb3dlcmNhc2luZzogXFxgJHtyZXNvbHZlZE5hbWV9XFxgIHRvIFxcYCR7bmFtZX1cXGBgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCBzY2hlbWVJZDtcbiAgICAgICAgICAgIGlmIChuYW1lID09PSBcInNpZ3Y0YVwiKSB7XG4gICAgICAgICAgICAgICAgc2NoZW1lSWQgPSBcImF3cy5hdXRoI3NpZ3Y0YVwiO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNpZ3Y0UHJlc2VudCA9IGF1dGhTY2hlbWVzLmZpbmQoKHMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbmFtZSA9IHMubmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmFtZSAhPT0gXCJzaWd2NGFcIiAmJiBuYW1lLnN0YXJ0c1dpdGgoXCJzaWd2NFwiKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAoc2lnbmF0dXJlX3Y0X211bHRpX3JlZ2lvbl8xLlNpZ25hdHVyZVY0TXVsdGlSZWdpb24uc2lndjRhRGVwZW5kZW5jeSgpID09PSBcIm5vbmVcIiAmJiBzaWd2NFByZXNlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAobmFtZS5zdGFydHNXaXRoKFwic2lndjRcIikpIHtcbiAgICAgICAgICAgICAgICBzY2hlbWVJZCA9IFwiYXdzLmF1dGgjc2lndjRcIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBIdHRwQXV0aFNjaGVtZSBmb3VuZCBpbiBcXGBAc21pdGh5LnJ1bGVzI2VuZHBvaW50UnVsZVNldFxcYDogXFxgJHtuYW1lfVxcYGApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgY3JlYXRlT3B0aW9uID0gY3JlYXRlSHR0cEF1dGhPcHRpb25GdW5jdGlvbnNbc2NoZW1lSWRdO1xuICAgICAgICAgICAgaWYgKCFjcmVhdGVPcHRpb24pIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENvdWxkIG5vdCBmaW5kIEh0dHBBdXRoT3B0aW9uIGNyZWF0ZSBmdW5jdGlvbiBmb3IgXFxgJHtzY2hlbWVJZH1cXGBgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IG9wdGlvbiA9IGNyZWF0ZU9wdGlvbihhdXRoUGFyYW1ldGVycyk7XG4gICAgICAgICAgICBvcHRpb24uc2NoZW1lSWQgPSBzY2hlbWVJZDtcbiAgICAgICAgICAgIG9wdGlvbi5zaWduaW5nUHJvcGVydGllcyA9IHsgLi4uKG9wdGlvbi5zaWduaW5nUHJvcGVydGllcyB8fCB7fSksIC4uLnJlc3QsIC4uLnByb3BlcnRpZXMgfTtcbiAgICAgICAgICAgIG9wdGlvbnMucHVzaChvcHRpb24pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvcHRpb25zO1xuICAgIH07XG4gICAgcmV0dXJuIGVuZHBvaW50UnVsZVNldEh0dHBBdXRoU2NoZW1lUHJvdmlkZXI7XG59O1xuY29uc3QgX2RlZmF1bHRTM0h0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSAoYXV0aFBhcmFtZXRlcnMpID0+IHtcbiAgICBjb25zdCBvcHRpb25zID0gW107XG4gICAgc3dpdGNoIChhdXRoUGFyYW1ldGVycy5vcGVyYXRpb24pIHtcbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgb3B0aW9ucy5wdXNoKGNyZWF0ZUF3c0F1dGhTaWd2NEh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSk7XG4gICAgICAgICAgICBvcHRpb25zLnB1c2goY3JlYXRlQXdzQXV0aFNpZ3Y0YUh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG9wdGlvbnM7XG59O1xuZXhwb3J0cy5kZWZhdWx0UzNIdHRwQXV0aFNjaGVtZVByb3ZpZGVyID0gY3JlYXRlRW5kcG9pbnRSdWxlU2V0SHR0cEF1dGhTY2hlbWVQcm92aWRlcihlbmRwb2ludFJlc29sdmVyXzEuZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIsIF9kZWZhdWx0UzNIdHRwQXV0aFNjaGVtZVByb3ZpZGVyLCB7XG4gICAgXCJhd3MuYXV0aCNzaWd2NFwiOiBjcmVhdGVBd3NBdXRoU2lndjRIdHRwQXV0aE9wdGlvbixcbiAgICBcImF3cy5hdXRoI3NpZ3Y0YVwiOiBjcmVhdGVBd3NBdXRoU2lndjRhSHR0cEF1dGhPcHRpb24sXG59KTtcbmNvbnN0IHJlc29sdmVIdHRwQXV0aFNjaGVtZUNvbmZpZyA9IChjb25maWcpID0+IHtcbiAgICBjb25zdCBjb25maWdfMCA9ICgwLCBjb3JlXzEucmVzb2x2ZUF3c1Nka1NpZ1Y0Q29uZmlnKShjb25maWcpO1xuICAgIGNvbnN0IGNvbmZpZ18xID0gKDAsIGNvcmVfMS5yZXNvbHZlQXdzU2RrU2lnVjRBQ29uZmlnKShjb25maWdfMCk7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oY29uZmlnXzEsIHtcbiAgICAgICAgYXV0aFNjaGVtZVByZWZlcmVuY2U6ICgwLCB1dGlsX21pZGRsZXdhcmVfMS5ub3JtYWxpemVQcm92aWRlcikoY29uZmlnLmF1dGhTY2hlbWVQcmVmZXJlbmNlID8/IFtdKSxcbiAgICB9KTtcbn07XG5leHBvcnRzLnJlc29sdmVIdHRwQXV0aFNjaGVtZUNvbmZpZyA9IHJlc29sdmVIdHRwQXV0aFNjaGVtZUNvbmZpZztcbiIsICJ7XG4gIFwibmFtZVwiOiBcIkBhd3Mtc2RrL2NsaWVudC1zM1wiLFxuICBcImRlc2NyaXB0aW9uXCI6IFwiQVdTIFNESyBmb3IgSmF2YVNjcmlwdCBTMyBDbGllbnQgZm9yIE5vZGUuanMsIEJyb3dzZXIgYW5kIFJlYWN0IE5hdGl2ZVwiLFxuICBcInZlcnNpb25cIjogXCIzLjk1Mi4wXCIsXG4gIFwic2NyaXB0c1wiOiB7XG4gICAgXCJidWlsZFwiOiBcImNvbmN1cnJlbnRseSAneWFybjpidWlsZDpjanMnICd5YXJuOmJ1aWxkOmVzJyAneWFybjpidWlsZDp0eXBlcydcIixcbiAgICBcImJ1aWxkOmNqc1wiOiBcIm5vZGUgLi4vLi4vc2NyaXB0cy9jb21waWxhdGlvbi9pbmxpbmUgY2xpZW50LXMzXCIsXG4gICAgXCJidWlsZDplc1wiOiBcInRzYyAtcCB0c2NvbmZpZy5lcy5qc29uXCIsXG4gICAgXCJidWlsZDppbmNsdWRlOmRlcHNcIjogXCJsZXJuYSBydW4gLS1zY29wZSAkbnBtX3BhY2thZ2VfbmFtZSAtLWluY2x1ZGUtZGVwZW5kZW5jaWVzIGJ1aWxkXCIsXG4gICAgXCJidWlsZDp0eXBlc1wiOiBcInRzYyAtcCB0c2NvbmZpZy50eXBlcy5qc29uXCIsXG4gICAgXCJidWlsZDp0eXBlczpkb3dubGV2ZWxcIjogXCJkb3dubGV2ZWwtZHRzIGRpc3QtdHlwZXMgZGlzdC10eXBlcy90czMuNFwiLFxuICAgIFwiY2xlYW5cIjogXCJyaW1yYWYgLi9kaXN0LSogJiYgcmltcmFmICoudHNidWlsZGluZm9cIixcbiAgICBcImV4dHJhY3Q6ZG9jc1wiOiBcImFwaS1leHRyYWN0b3IgcnVuIC0tbG9jYWxcIixcbiAgICBcImdlbmVyYXRlOmNsaWVudFwiOiBcIm5vZGUgLi4vLi4vc2NyaXB0cy9nZW5lcmF0ZS1jbGllbnRzL3NpbmdsZS1zZXJ2aWNlIC0tc29sbyBzM1wiLFxuICAgIFwidGVzdFwiOiBcInlhcm4gZzp2aXRlc3QgcnVuXCIsXG4gICAgXCJ0ZXN0OmJyb3dzZXJcIjogXCJub2RlIC4vdGVzdC9icm93c2VyLWJ1aWxkL2VzYnVpbGQgJiYgeWFybiBnOnZpdGVzdCBydW4gLWMgdml0ZXN0LmNvbmZpZy5icm93c2VyLm10c1wiLFxuICAgIFwidGVzdDpicm93c2VyOndhdGNoXCI6IFwibm9kZSAuL3Rlc3QvYnJvd3Nlci1idWlsZC9lc2J1aWxkICYmIHlhcm4gZzp2aXRlc3Qgd2F0Y2ggLWMgdml0ZXN0LmNvbmZpZy5icm93c2VyLm10c1wiLFxuICAgIFwidGVzdDplMmVcIjogXCJ5YXJuIGc6dml0ZXN0IHJ1biAtYyB2aXRlc3QuY29uZmlnLmUyZS5tdHMgJiYgeWFybiB0ZXN0OmJyb3dzZXJcIixcbiAgICBcInRlc3Q6ZTJlOndhdGNoXCI6IFwieWFybiBnOnZpdGVzdCB3YXRjaCAtYyB2aXRlc3QuY29uZmlnLmUyZS5tdHNcIixcbiAgICBcInRlc3Q6aW5kZXhcIjogXCJ0c2MgLS1ub0VtaXQgLi90ZXN0L2luZGV4LXR5cGVzLnRzICYmIG5vZGUgLi90ZXN0L2luZGV4LW9iamVjdHMuc3BlYy5tanNcIixcbiAgICBcInRlc3Q6aW50ZWdyYXRpb25cIjogXCJ5YXJuIGc6dml0ZXN0IHJ1biAtYyB2aXRlc3QuY29uZmlnLmludGVnLm10c1wiLFxuICAgIFwidGVzdDppbnRlZ3JhdGlvbjp3YXRjaFwiOiBcInlhcm4gZzp2aXRlc3Qgd2F0Y2ggLWMgdml0ZXN0LmNvbmZpZy5pbnRlZy5tdHNcIixcbiAgICBcInRlc3Q6d2F0Y2hcIjogXCJ5YXJuIGc6dml0ZXN0IHdhdGNoXCJcbiAgfSxcbiAgXCJtYWluXCI6IFwiLi9kaXN0LWNqcy9pbmRleC5qc1wiLFxuICBcInR5cGVzXCI6IFwiLi9kaXN0LXR5cGVzL2luZGV4LmQudHNcIixcbiAgXCJtb2R1bGVcIjogXCIuL2Rpc3QtZXMvaW5kZXguanNcIixcbiAgXCJzaWRlRWZmZWN0c1wiOiBmYWxzZSxcbiAgXCJkZXBlbmRlbmNpZXNcIjoge1xuICAgIFwiQGF3cy1jcnlwdG8vc2hhMS1icm93c2VyXCI6IFwiNS4yLjBcIixcbiAgICBcIkBhd3MtY3J5cHRvL3NoYTI1Ni1icm93c2VyXCI6IFwiNS4yLjBcIixcbiAgICBcIkBhd3MtY3J5cHRvL3NoYTI1Ni1qc1wiOiBcIjUuMi4wXCIsXG4gICAgXCJAYXdzLXNkay9jb3JlXCI6IFwiMy45NDcuMFwiLFxuICAgIFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlXCI6IFwiMy45NTIuMFwiLFxuICAgIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1idWNrZXQtZW5kcG9pbnRcIjogXCIzLjkzNi4wXCIsXG4gICAgXCJAYXdzLXNkay9taWRkbGV3YXJlLWV4cGVjdC1jb250aW51ZVwiOiBcIjMuOTM2LjBcIixcbiAgICBcIkBhd3Mtc2RrL21pZGRsZXdhcmUtZmxleGlibGUtY2hlY2tzdW1zXCI6IFwiMy45NDcuMFwiLFxuICAgIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1ob3N0LWhlYWRlclwiOiBcIjMuOTM2LjBcIixcbiAgICBcIkBhd3Mtc2RrL21pZGRsZXdhcmUtbG9jYXRpb24tY29uc3RyYWludFwiOiBcIjMuOTM2LjBcIixcbiAgICBcIkBhd3Mtc2RrL21pZGRsZXdhcmUtbG9nZ2VyXCI6IFwiMy45MzYuMFwiLFxuICAgIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1yZWN1cnNpb24tZGV0ZWN0aW9uXCI6IFwiMy45NDguMFwiLFxuICAgIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1zZGstczNcIjogXCIzLjk0Ny4wXCIsXG4gICAgXCJAYXdzLXNkay9taWRkbGV3YXJlLXNzZWNcIjogXCIzLjkzNi4wXCIsXG4gICAgXCJAYXdzLXNkay9taWRkbGV3YXJlLXVzZXItYWdlbnRcIjogXCIzLjk0Ny4wXCIsXG4gICAgXCJAYXdzLXNkay9yZWdpb24tY29uZmlnLXJlc29sdmVyXCI6IFwiMy45MzYuMFwiLFxuICAgIFwiQGF3cy1zZGsvc2lnbmF0dXJlLXY0LW11bHRpLXJlZ2lvblwiOiBcIjMuOTQ3LjBcIixcbiAgICBcIkBhd3Mtc2RrL3R5cGVzXCI6IFwiMy45MzYuMFwiLFxuICAgIFwiQGF3cy1zZGsvdXRpbC1lbmRwb2ludHNcIjogXCIzLjkzNi4wXCIsXG4gICAgXCJAYXdzLXNkay91dGlsLXVzZXItYWdlbnQtYnJvd3NlclwiOiBcIjMuOTM2LjBcIixcbiAgICBcIkBhd3Mtc2RrL3V0aWwtdXNlci1hZ2VudC1ub2RlXCI6IFwiMy45NDcuMFwiLFxuICAgIFwiQHNtaXRoeS9jb25maWctcmVzb2x2ZXJcIjogXCJeNC40LjNcIixcbiAgICBcIkBzbWl0aHkvY29yZVwiOiBcIl4zLjE4LjdcIixcbiAgICBcIkBzbWl0aHkvZXZlbnRzdHJlYW0tc2VyZGUtYnJvd3NlclwiOiBcIl40LjIuNVwiLFxuICAgIFwiQHNtaXRoeS9ldmVudHN0cmVhbS1zZXJkZS1jb25maWctcmVzb2x2ZXJcIjogXCJeNC4zLjVcIixcbiAgICBcIkBzbWl0aHkvZXZlbnRzdHJlYW0tc2VyZGUtbm9kZVwiOiBcIl40LjIuNVwiLFxuICAgIFwiQHNtaXRoeS9mZXRjaC1odHRwLWhhbmRsZXJcIjogXCJeNS4zLjZcIixcbiAgICBcIkBzbWl0aHkvaGFzaC1ibG9iLWJyb3dzZXJcIjogXCJeNC4yLjZcIixcbiAgICBcIkBzbWl0aHkvaGFzaC1ub2RlXCI6IFwiXjQuMi41XCIsXG4gICAgXCJAc21pdGh5L2hhc2gtc3RyZWFtLW5vZGVcIjogXCJeNC4yLjVcIixcbiAgICBcIkBzbWl0aHkvaW52YWxpZC1kZXBlbmRlbmN5XCI6IFwiXjQuMi41XCIsXG4gICAgXCJAc21pdGh5L21kNS1qc1wiOiBcIl40LjIuNVwiLFxuICAgIFwiQHNtaXRoeS9taWRkbGV3YXJlLWNvbnRlbnQtbGVuZ3RoXCI6IFwiXjQuMi41XCIsXG4gICAgXCJAc21pdGh5L21pZGRsZXdhcmUtZW5kcG9pbnRcIjogXCJeNC4zLjE0XCIsXG4gICAgXCJAc21pdGh5L21pZGRsZXdhcmUtcmV0cnlcIjogXCJeNC40LjE0XCIsXG4gICAgXCJAc21pdGh5L21pZGRsZXdhcmUtc2VyZGVcIjogXCJeNC4yLjZcIixcbiAgICBcIkBzbWl0aHkvbWlkZGxld2FyZS1zdGFja1wiOiBcIl40LjIuNVwiLFxuICAgIFwiQHNtaXRoeS9ub2RlLWNvbmZpZy1wcm92aWRlclwiOiBcIl40LjMuNVwiLFxuICAgIFwiQHNtaXRoeS9ub2RlLWh0dHAtaGFuZGxlclwiOiBcIl40LjQuNVwiLFxuICAgIFwiQHNtaXRoeS9wcm90b2NvbC1odHRwXCI6IFwiXjUuMy41XCIsXG4gICAgXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjogXCJeNC45LjEwXCIsXG4gICAgXCJAc21pdGh5L3R5cGVzXCI6IFwiXjQuOS4wXCIsXG4gICAgXCJAc21pdGh5L3VybC1wYXJzZXJcIjogXCJeNC4yLjVcIixcbiAgICBcIkBzbWl0aHkvdXRpbC1iYXNlNjRcIjogXCJeNC4zLjBcIixcbiAgICBcIkBzbWl0aHkvdXRpbC1ib2R5LWxlbmd0aC1icm93c2VyXCI6IFwiXjQuMi4wXCIsXG4gICAgXCJAc21pdGh5L3V0aWwtYm9keS1sZW5ndGgtbm9kZVwiOiBcIl40LjIuMVwiLFxuICAgIFwiQHNtaXRoeS91dGlsLWRlZmF1bHRzLW1vZGUtYnJvd3NlclwiOiBcIl40LjMuMTNcIixcbiAgICBcIkBzbWl0aHkvdXRpbC1kZWZhdWx0cy1tb2RlLW5vZGVcIjogXCJeNC4yLjE2XCIsXG4gICAgXCJAc21pdGh5L3V0aWwtZW5kcG9pbnRzXCI6IFwiXjMuMi41XCIsXG4gICAgXCJAc21pdGh5L3V0aWwtbWlkZGxld2FyZVwiOiBcIl40LjIuNVwiLFxuICAgIFwiQHNtaXRoeS91dGlsLXJldHJ5XCI6IFwiXjQuMi41XCIsXG4gICAgXCJAc21pdGh5L3V0aWwtc3RyZWFtXCI6IFwiXjQuNS42XCIsXG4gICAgXCJAc21pdGh5L3V0aWwtdXRmOFwiOiBcIl40LjIuMFwiLFxuICAgIFwiQHNtaXRoeS91dGlsLXdhaXRlclwiOiBcIl40LjIuNVwiLFxuICAgIFwidHNsaWJcIjogXCJeMi42LjJcIlxuICB9LFxuICBcImRldkRlcGVuZGVuY2llc1wiOiB7XG4gICAgXCJAYXdzLXNkay9zaWduYXR1cmUtdjQtY3J0XCI6IFwiMy45NDcuMFwiLFxuICAgIFwiQHRzY29uZmlnL25vZGUxOFwiOiBcIjE4LjIuNFwiLFxuICAgIFwiQHR5cGVzL25vZGVcIjogXCJeMTguMTkuNjlcIixcbiAgICBcImNvbmN1cnJlbnRseVwiOiBcIjcuMC4wXCIsXG4gICAgXCJkb3dubGV2ZWwtZHRzXCI6IFwiMC4xMC4xXCIsXG4gICAgXCJyaW1yYWZcIjogXCIzLjAuMlwiLFxuICAgIFwidHlwZXNjcmlwdFwiOiBcIn41LjguM1wiXG4gIH0sXG4gIFwiZW5naW5lc1wiOiB7XG4gICAgXCJub2RlXCI6IFwiPj0xOC4wLjBcIlxuICB9LFxuICBcInR5cGVzVmVyc2lvbnNcIjoge1xuICAgIFwiPDQuMFwiOiB7XG4gICAgICBcImRpc3QtdHlwZXMvKlwiOiBbXG4gICAgICAgIFwiZGlzdC10eXBlcy90czMuNC8qXCJcbiAgICAgIF1cbiAgICB9XG4gIH0sXG4gIFwiZmlsZXNcIjogW1xuICAgIFwiZGlzdC0qLyoqXCJcbiAgXSxcbiAgXCJhdXRob3JcIjoge1xuICAgIFwibmFtZVwiOiBcIkFXUyBTREsgZm9yIEphdmFTY3JpcHQgVGVhbVwiLFxuICAgIFwidXJsXCI6IFwiaHR0cHM6Ly9hd3MuYW1hem9uLmNvbS9qYXZhc2NyaXB0L1wiXG4gIH0sXG4gIFwibGljZW5zZVwiOiBcIkFwYWNoZS0yLjBcIixcbiAgXCJicm93c2VyXCI6IHtcbiAgICBcIi4vZGlzdC1lcy9ydW50aW1lQ29uZmlnXCI6IFwiLi9kaXN0LWVzL3J1bnRpbWVDb25maWcuYnJvd3NlclwiXG4gIH0sXG4gIFwicmVhY3QtbmF0aXZlXCI6IHtcbiAgICBcIi4vZGlzdC1lcy9ydW50aW1lQ29uZmlnXCI6IFwiLi9kaXN0LWVzL3J1bnRpbWVDb25maWcubmF0aXZlXCJcbiAgfSxcbiAgXCJob21lcGFnZVwiOiBcImh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLXNkay1qcy12My90cmVlL21haW4vY2xpZW50cy9jbGllbnQtczNcIixcbiAgXCJyZXBvc2l0b3J5XCI6IHtcbiAgICBcInR5cGVcIjogXCJnaXRcIixcbiAgICBcInVybFwiOiBcImh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLXNkay1qcy12My5naXRcIixcbiAgICBcImRpcmVjdG9yeVwiOiBcImNsaWVudHMvY2xpZW50LXMzXCJcbiAgfVxufVxuIiwgIid1c2Ugc3RyaWN0JztcblxudmFyIHV0aWxDb25maWdQcm92aWRlciA9IHJlcXVpcmUoJ0BzbWl0aHkvdXRpbC1jb25maWctcHJvdmlkZXInKTtcbnZhciB1dGlsQXJuUGFyc2VyID0gcmVxdWlyZSgnQGF3cy1zZGsvdXRpbC1hcm4tcGFyc2VyJyk7XG52YXIgcHJvdG9jb2xIdHRwID0gcmVxdWlyZSgnQHNtaXRoeS9wcm90b2NvbC1odHRwJyk7XG5cbmNvbnN0IE5PREVfRElTQUJMRV9NVUxUSVJFR0lPTl9BQ0NFU1NfUE9JTlRfRU5WX05BTUUgPSBcIkFXU19TM19ESVNBQkxFX01VTFRJUkVHSU9OX0FDQ0VTU19QT0lOVFNcIjtcbmNvbnN0IE5PREVfRElTQUJMRV9NVUxUSVJFR0lPTl9BQ0NFU1NfUE9JTlRfSU5JX05BTUUgPSBcInMzX2Rpc2FibGVfbXVsdGlyZWdpb25fYWNjZXNzX3BvaW50c1wiO1xuY29uc3QgTk9ERV9ESVNBQkxFX01VTFRJUkVHSU9OX0FDQ0VTU19QT0lOVF9DT05GSUdfT1BUSU9OUyA9IHtcbiAgICBlbnZpcm9ubWVudFZhcmlhYmxlU2VsZWN0b3I6IChlbnYpID0+IHV0aWxDb25maWdQcm92aWRlci5ib29sZWFuU2VsZWN0b3IoZW52LCBOT0RFX0RJU0FCTEVfTVVMVElSRUdJT05fQUNDRVNTX1BPSU5UX0VOVl9OQU1FLCB1dGlsQ29uZmlnUHJvdmlkZXIuU2VsZWN0b3JUeXBlLkVOViksXG4gICAgY29uZmlnRmlsZVNlbGVjdG9yOiAocHJvZmlsZSkgPT4gdXRpbENvbmZpZ1Byb3ZpZGVyLmJvb2xlYW5TZWxlY3Rvcihwcm9maWxlLCBOT0RFX0RJU0FCTEVfTVVMVElSRUdJT05fQUNDRVNTX1BPSU5UX0lOSV9OQU1FLCB1dGlsQ29uZmlnUHJvdmlkZXIuU2VsZWN0b3JUeXBlLkNPTkZJRyksXG4gICAgZGVmYXVsdDogZmFsc2UsXG59O1xuXG5jb25zdCBOT0RFX1VTRV9BUk5fUkVHSU9OX0VOVl9OQU1FID0gXCJBV1NfUzNfVVNFX0FSTl9SRUdJT05cIjtcbmNvbnN0IE5PREVfVVNFX0FSTl9SRUdJT05fSU5JX05BTUUgPSBcInMzX3VzZV9hcm5fcmVnaW9uXCI7XG5jb25zdCBOT0RFX1VTRV9BUk5fUkVHSU9OX0NPTkZJR19PUFRJT05TID0ge1xuICAgIGVudmlyb25tZW50VmFyaWFibGVTZWxlY3RvcjogKGVudikgPT4gdXRpbENvbmZpZ1Byb3ZpZGVyLmJvb2xlYW5TZWxlY3RvcihlbnYsIE5PREVfVVNFX0FSTl9SRUdJT05fRU5WX05BTUUsIHV0aWxDb25maWdQcm92aWRlci5TZWxlY3RvclR5cGUuRU5WKSxcbiAgICBjb25maWdGaWxlU2VsZWN0b3I6IChwcm9maWxlKSA9PiB1dGlsQ29uZmlnUHJvdmlkZXIuYm9vbGVhblNlbGVjdG9yKHByb2ZpbGUsIE5PREVfVVNFX0FSTl9SRUdJT05fSU5JX05BTUUsIHV0aWxDb25maWdQcm92aWRlci5TZWxlY3RvclR5cGUuQ09ORklHKSxcbiAgICBkZWZhdWx0OiB1bmRlZmluZWQsXG59O1xuXG5jb25zdCBET01BSU5fUEFUVEVSTiA9IC9eW2EtejAtOV1bYS16MC05XFwuXFwtXXsxLDYxfVthLXowLTldJC87XG5jb25zdCBJUF9BRERSRVNTX1BBVFRFUk4gPSAvKFxcZCtcXC4pezN9XFxkKy87XG5jb25zdCBET1RTX1BBVFRFUk4gPSAvXFwuXFwuLztcbmNvbnN0IERPVF9QQVRURVJOID0gL1xcLi87XG5jb25zdCBTM19IT1NUTkFNRV9QQVRURVJOID0gL14oLitcXC4pP3MzKC1maXBzKT8oXFwuZHVhbHN0YWNrKT9bLi1dKFthLXowLTktXSspXFwuLztcbmNvbnN0IFMzX1VTX0VBU1RfMV9BTFROQU1FX1BBVFRFUk4gPSAvXnMzKC1leHRlcm5hbC0xKT9cXC5hbWF6b25hd3NcXC5jb20kLztcbmNvbnN0IEFXU19QQVJUSVRJT05fU1VGRklYID0gXCJhbWF6b25hd3MuY29tXCI7XG5jb25zdCBpc0J1Y2tldE5hbWVPcHRpb25zID0gKG9wdGlvbnMpID0+IHR5cGVvZiBvcHRpb25zLmJ1Y2tldE5hbWUgPT09IFwic3RyaW5nXCI7XG5jb25zdCBpc0Ruc0NvbXBhdGlibGVCdWNrZXROYW1lID0gKGJ1Y2tldE5hbWUpID0+IERPTUFJTl9QQVRURVJOLnRlc3QoYnVja2V0TmFtZSkgJiYgIUlQX0FERFJFU1NfUEFUVEVSTi50ZXN0KGJ1Y2tldE5hbWUpICYmICFET1RTX1BBVFRFUk4udGVzdChidWNrZXROYW1lKTtcbmNvbnN0IGdldFJlZ2lvbmFsU3VmZml4ID0gKGhvc3RuYW1lKSA9PiB7XG4gICAgY29uc3QgcGFydHMgPSBob3N0bmFtZS5tYXRjaChTM19IT1NUTkFNRV9QQVRURVJOKTtcbiAgICByZXR1cm4gW3BhcnRzWzRdLCBob3N0bmFtZS5yZXBsYWNlKG5ldyBSZWdFeHAoYF4ke3BhcnRzWzBdfWApLCBcIlwiKV07XG59O1xuY29uc3QgZ2V0U3VmZml4ID0gKGhvc3RuYW1lKSA9PiBTM19VU19FQVNUXzFfQUxUTkFNRV9QQVRURVJOLnRlc3QoaG9zdG5hbWUpID8gW1widXMtZWFzdC0xXCIsIEFXU19QQVJUSVRJT05fU1VGRklYXSA6IGdldFJlZ2lvbmFsU3VmZml4KGhvc3RuYW1lKTtcbmNvbnN0IGdldFN1ZmZpeEZvckFybkVuZHBvaW50ID0gKGhvc3RuYW1lKSA9PiBTM19VU19FQVNUXzFfQUxUTkFNRV9QQVRURVJOLnRlc3QoaG9zdG5hbWUpXG4gICAgPyBbaG9zdG5hbWUucmVwbGFjZShgLiR7QVdTX1BBUlRJVElPTl9TVUZGSVh9YCwgXCJcIiksIEFXU19QQVJUSVRJT05fU1VGRklYXVxuICAgIDogZ2V0UmVnaW9uYWxTdWZmaXgoaG9zdG5hbWUpO1xuY29uc3QgdmFsaWRhdGVBcm5FbmRwb2ludE9wdGlvbnMgPSAob3B0aW9ucykgPT4ge1xuICAgIGlmIChvcHRpb25zLnBhdGhTdHlsZUVuZHBvaW50KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIlBhdGgtc3R5bGUgUzMgZW5kcG9pbnQgaXMgbm90IHN1cHBvcnRlZCB3aGVuIGJ1Y2tldCBpcyBhbiBBUk5cIik7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLmFjY2VsZXJhdGVFbmRwb2ludCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJBY2NlbGVyYXRlIGVuZHBvaW50IGlzIG5vdCBzdXBwb3J0ZWQgd2hlbiBidWNrZXQgaXMgYW4gQVJOXCIpO1xuICAgIH1cbiAgICBpZiAoIW9wdGlvbnMudGxzQ29tcGF0aWJsZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJIVFRQUyBpcyByZXF1aXJlZCB3aGVuIGJ1Y2tldCBpcyBhbiBBUk5cIik7XG4gICAgfVxufTtcbmNvbnN0IHZhbGlkYXRlU2VydmljZSA9IChzZXJ2aWNlKSA9PiB7XG4gICAgaWYgKHNlcnZpY2UgIT09IFwiczNcIiAmJiBzZXJ2aWNlICE9PSBcInMzLW91dHBvc3RzXCIgJiYgc2VydmljZSAhPT0gXCJzMy1vYmplY3QtbGFtYmRhXCIpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRXhwZWN0ICdzMycgb3IgJ3MzLW91dHBvc3RzJyBvciAnczMtb2JqZWN0LWxhbWJkYScgaW4gQVJOIHNlcnZpY2UgY29tcG9uZW50XCIpO1xuICAgIH1cbn07XG5jb25zdCB2YWxpZGF0ZVMzU2VydmljZSA9IChzZXJ2aWNlKSA9PiB7XG4gICAgaWYgKHNlcnZpY2UgIT09IFwiczNcIikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJFeHBlY3QgJ3MzJyBpbiBBY2Nlc3Nwb2ludCBBUk4gc2VydmljZSBjb21wb25lbnRcIik7XG4gICAgfVxufTtcbmNvbnN0IHZhbGlkYXRlT3V0cG9zdFNlcnZpY2UgPSAoc2VydmljZSkgPT4ge1xuICAgIGlmIChzZXJ2aWNlICE9PSBcInMzLW91dHBvc3RzXCIpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRXhwZWN0ICdzMy1wb3N0cycgaW4gT3V0cG9zdCBBUk4gc2VydmljZSBjb21wb25lbnRcIik7XG4gICAgfVxufTtcbmNvbnN0IHZhbGlkYXRlUGFydGl0aW9uID0gKHBhcnRpdGlvbiwgb3B0aW9ucykgPT4ge1xuICAgIGlmIChwYXJ0aXRpb24gIT09IG9wdGlvbnMuY2xpZW50UGFydGl0aW9uKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgUGFydGl0aW9uIGluIEFSTiBpcyBpbmNvbXBhdGlibGUsIGdvdCBcIiR7cGFydGl0aW9ufVwiIGJ1dCBleHBlY3RlZCBcIiR7b3B0aW9ucy5jbGllbnRQYXJ0aXRpb259XCJgKTtcbiAgICB9XG59O1xuY29uc3QgdmFsaWRhdGVSZWdpb24gPSAocmVnaW9uLCBvcHRpb25zKSA9PiB7IH07XG5jb25zdCB2YWxpZGF0ZVJlZ2lvbmFsQ2xpZW50ID0gKHJlZ2lvbikgPT4ge1xuICAgIGlmIChbXCJzMy1leHRlcm5hbC0xXCIsIFwiYXdzLWdsb2JhbFwiXS5pbmNsdWRlcyhyZWdpb24pKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgQ2xpZW50IHJlZ2lvbiAke3JlZ2lvbn0gaXMgbm90IHJlZ2lvbmFsYCk7XG4gICAgfVxufTtcbmNvbnN0IHZhbGlkYXRlQWNjb3VudElkID0gKGFjY291bnRJZCkgPT4ge1xuICAgIGlmICghL1swLTldezEyfS8uZXhlYyhhY2NvdW50SWQpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkFjY2VzcyBwb2ludCBBUk4gYWNjb3VudElEIGRvZXMgbm90IG1hdGNoIHJlZ2V4ICdbMC05XXsxMn0nXCIpO1xuICAgIH1cbn07XG5jb25zdCB2YWxpZGF0ZUROU0hvc3RMYWJlbCA9IChsYWJlbCwgb3B0aW9ucyA9IHsgdGxzQ29tcGF0aWJsZTogdHJ1ZSB9KSA9PiB7XG4gICAgaWYgKGxhYmVsLmxlbmd0aCA+PSA2NCB8fFxuICAgICAgICAhL15bYS16MC05XVthLXowLTkuLV0qW2EtejAtOV0kLy50ZXN0KGxhYmVsKSB8fFxuICAgICAgICAvKFxcZCtcXC4pezN9XFxkKy8udGVzdChsYWJlbCkgfHxcbiAgICAgICAgL1suLV17Mn0vLnRlc3QobGFiZWwpIHx8XG4gICAgICAgIChvcHRpb25zPy50bHNDb21wYXRpYmxlICYmIERPVF9QQVRURVJOLnRlc3QobGFiZWwpKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgRE5TIGxhYmVsICR7bGFiZWx9YCk7XG4gICAgfVxufTtcbmNvbnN0IHZhbGlkYXRlQ3VzdG9tRW5kcG9pbnQgPSAob3B0aW9ucykgPT4ge1xuICAgIGlmIChvcHRpb25zLmlzQ3VzdG9tRW5kcG9pbnQpIHtcbiAgICAgICAgaWYgKG9wdGlvbnMuZHVhbHN0YWNrRW5kcG9pbnQpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJEdWFsc3RhY2sgZW5kcG9pbnQgaXMgbm90IHN1cHBvcnRlZCB3aXRoIGN1c3RvbSBlbmRwb2ludFwiKTtcbiAgICAgICAgaWYgKG9wdGlvbnMuYWNjZWxlcmF0ZUVuZHBvaW50KVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQWNjZWxlcmF0ZSBlbmRwb2ludCBpcyBub3Qgc3VwcG9ydGVkIHdpdGggY3VzdG9tIGVuZHBvaW50XCIpO1xuICAgIH1cbn07XG5jb25zdCBnZXRBcm5SZXNvdXJjZXMgPSAocmVzb3VyY2UpID0+IHtcbiAgICBjb25zdCBkZWxpbWl0ZXIgPSByZXNvdXJjZS5pbmNsdWRlcyhcIjpcIikgPyBcIjpcIiA6IFwiL1wiO1xuICAgIGNvbnN0IFtyZXNvdXJjZVR5cGUsIC4uLnJlc3RdID0gcmVzb3VyY2Uuc3BsaXQoZGVsaW1pdGVyKTtcbiAgICBpZiAocmVzb3VyY2VUeXBlID09PSBcImFjY2Vzc3BvaW50XCIpIHtcbiAgICAgICAgaWYgKHJlc3QubGVuZ3RoICE9PSAxIHx8IHJlc3RbMF0gPT09IFwiXCIpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQWNjZXNzIFBvaW50IEFSTiBzaG91bGQgaGF2ZSBvbmUgcmVzb3VyY2UgYWNjZXNzcG9pbnQke2RlbGltaXRlcn17YWNjZXNzcG9pbnRuYW1lfWApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IGFjY2Vzc3BvaW50TmFtZTogcmVzdFswXSB9O1xuICAgIH1cbiAgICBlbHNlIGlmIChyZXNvdXJjZVR5cGUgPT09IFwib3V0cG9zdFwiKSB7XG4gICAgICAgIGlmICghcmVzdFswXSB8fCByZXN0WzFdICE9PSBcImFjY2Vzc3BvaW50XCIgfHwgIXJlc3RbMl0gfHwgcmVzdC5sZW5ndGggIT09IDMpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgT3V0cG9zdCBBUk4gc2hvdWxkIGhhdmUgcmVzb3VyY2Ugb3V0cG9zdCR7ZGVsaW1pdGVyfXtvdXRwb3N0SWR9JHtkZWxpbWl0ZXJ9YWNjZXNzcG9pbnQke2RlbGltaXRlcn17YWNjZXNzcG9pbnROYW1lfWApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IFtvdXRwb3N0SWQsIF8sIGFjY2Vzc3BvaW50TmFtZV0gPSByZXN0O1xuICAgICAgICByZXR1cm4geyBvdXRwb3N0SWQsIGFjY2Vzc3BvaW50TmFtZSB9O1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBBUk4gcmVzb3VyY2Ugc2hvdWxkIGJlZ2luIHdpdGggJ2FjY2Vzc3BvaW50JHtkZWxpbWl0ZXJ9JyBvciAnb3V0cG9zdCR7ZGVsaW1pdGVyfSdgKTtcbiAgICB9XG59O1xuY29uc3QgdmFsaWRhdGVOb0R1YWxzdGFjayA9IChkdWFsc3RhY2tFbmRwb2ludCkgPT4geyB9O1xuY29uc3QgdmFsaWRhdGVOb0ZJUFMgPSAodXNlRmlwc0VuZHBvaW50KSA9PiB7XG4gICAgaWYgKHVzZUZpcHNFbmRwb2ludClcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGSVBTIHJlZ2lvbiBpcyBub3Qgc3VwcG9ydGVkIHdpdGggT3V0cG9zdC5gKTtcbn07XG5jb25zdCB2YWxpZGF0ZU1yYXBBbGlhcyA9IChuYW1lKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgICAgbmFtZS5zcGxpdChcIi5cIikuZm9yRWFjaCgobGFiZWwpID0+IHtcbiAgICAgICAgICAgIHZhbGlkYXRlRE5TSG9zdExhYmVsKGxhYmVsKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNhdGNoIChlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgXCIke25hbWV9XCIgaXMgbm90IGEgRE5TIGNvbXBhdGlibGUgbmFtZS5gKTtcbiAgICB9XG59O1xuXG5jb25zdCBidWNrZXRIb3N0bmFtZSA9IChvcHRpb25zKSA9PiB7XG4gICAgdmFsaWRhdGVDdXN0b21FbmRwb2ludChvcHRpb25zKTtcbiAgICByZXR1cm4gaXNCdWNrZXROYW1lT3B0aW9ucyhvcHRpb25zKVxuICAgICAgICA/XG4gICAgICAgICAgICBnZXRFbmRwb2ludEZyb21CdWNrZXROYW1lKG9wdGlvbnMpXG4gICAgICAgIDpcbiAgICAgICAgICAgIGdldEVuZHBvaW50RnJvbUFybihvcHRpb25zKTtcbn07XG5jb25zdCBnZXRFbmRwb2ludEZyb21CdWNrZXROYW1lID0gKHsgYWNjZWxlcmF0ZUVuZHBvaW50ID0gZmFsc2UsIGNsaWVudFJlZ2lvbjogcmVnaW9uLCBiYXNlSG9zdG5hbWUsIGJ1Y2tldE5hbWUsIGR1YWxzdGFja0VuZHBvaW50ID0gZmFsc2UsIGZpcHNFbmRwb2ludCA9IGZhbHNlLCBwYXRoU3R5bGVFbmRwb2ludCA9IGZhbHNlLCB0bHNDb21wYXRpYmxlID0gdHJ1ZSwgaXNDdXN0b21FbmRwb2ludCA9IGZhbHNlLCB9KSA9PiB7XG4gICAgY29uc3QgW2NsaWVudFJlZ2lvbiwgaG9zdG5hbWVTdWZmaXhdID0gaXNDdXN0b21FbmRwb2ludCA/IFtyZWdpb24sIGJhc2VIb3N0bmFtZV0gOiBnZXRTdWZmaXgoYmFzZUhvc3RuYW1lKTtcbiAgICBpZiAocGF0aFN0eWxlRW5kcG9pbnQgfHwgIWlzRG5zQ29tcGF0aWJsZUJ1Y2tldE5hbWUoYnVja2V0TmFtZSkgfHwgKHRsc0NvbXBhdGlibGUgJiYgRE9UX1BBVFRFUk4udGVzdChidWNrZXROYW1lKSkpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGJ1Y2tldEVuZHBvaW50OiBmYWxzZSxcbiAgICAgICAgICAgIGhvc3RuYW1lOiBkdWFsc3RhY2tFbmRwb2ludCA/IGBzMy5kdWFsc3RhY2suJHtjbGllbnRSZWdpb259LiR7aG9zdG5hbWVTdWZmaXh9YCA6IGJhc2VIb3N0bmFtZSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgaWYgKGFjY2VsZXJhdGVFbmRwb2ludCkge1xuICAgICAgICBiYXNlSG9zdG5hbWUgPSBgczMtYWNjZWxlcmF0ZSR7ZHVhbHN0YWNrRW5kcG9pbnQgPyBcIi5kdWFsc3RhY2tcIiA6IFwiXCJ9LiR7aG9zdG5hbWVTdWZmaXh9YDtcbiAgICB9XG4gICAgZWxzZSBpZiAoZHVhbHN0YWNrRW5kcG9pbnQpIHtcbiAgICAgICAgYmFzZUhvc3RuYW1lID0gYHMzLmR1YWxzdGFjay4ke2NsaWVudFJlZ2lvbn0uJHtob3N0bmFtZVN1ZmZpeH1gO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICBidWNrZXRFbmRwb2ludDogdHJ1ZSxcbiAgICAgICAgaG9zdG5hbWU6IGAke2J1Y2tldE5hbWV9LiR7YmFzZUhvc3RuYW1lfWAsXG4gICAgfTtcbn07XG5jb25zdCBnZXRFbmRwb2ludEZyb21Bcm4gPSAob3B0aW9ucykgPT4ge1xuICAgIGNvbnN0IHsgaXNDdXN0b21FbmRwb2ludCwgYmFzZUhvc3RuYW1lLCBjbGllbnRSZWdpb24gfSA9IG9wdGlvbnM7XG4gICAgY29uc3QgaG9zdG5hbWVTdWZmaXggPSBpc0N1c3RvbUVuZHBvaW50ID8gYmFzZUhvc3RuYW1lIDogZ2V0U3VmZml4Rm9yQXJuRW5kcG9pbnQoYmFzZUhvc3RuYW1lKVsxXTtcbiAgICBjb25zdCB7IHBhdGhTdHlsZUVuZHBvaW50LCBhY2NlbGVyYXRlRW5kcG9pbnQgPSBmYWxzZSwgZmlwc0VuZHBvaW50ID0gZmFsc2UsIHRsc0NvbXBhdGlibGUgPSB0cnVlLCBidWNrZXROYW1lLCBjbGllbnRQYXJ0aXRpb24gPSBcImF3c1wiLCB9ID0gb3B0aW9ucztcbiAgICB2YWxpZGF0ZUFybkVuZHBvaW50T3B0aW9ucyh7IHBhdGhTdHlsZUVuZHBvaW50LCBhY2NlbGVyYXRlRW5kcG9pbnQsIHRsc0NvbXBhdGlibGUgfSk7XG4gICAgY29uc3QgeyBzZXJ2aWNlLCBwYXJ0aXRpb24sIGFjY291bnRJZCwgcmVnaW9uLCByZXNvdXJjZSB9ID0gYnVja2V0TmFtZTtcbiAgICB2YWxpZGF0ZVNlcnZpY2Uoc2VydmljZSk7XG4gICAgdmFsaWRhdGVQYXJ0aXRpb24ocGFydGl0aW9uLCB7IGNsaWVudFBhcnRpdGlvbiB9KTtcbiAgICB2YWxpZGF0ZUFjY291bnRJZChhY2NvdW50SWQpO1xuICAgIGNvbnN0IHsgYWNjZXNzcG9pbnROYW1lLCBvdXRwb3N0SWQgfSA9IGdldEFyblJlc291cmNlcyhyZXNvdXJjZSk7XG4gICAgaWYgKHNlcnZpY2UgPT09IFwiczMtb2JqZWN0LWxhbWJkYVwiKSB7XG4gICAgICAgIHJldHVybiBnZXRFbmRwb2ludEZyb21PYmplY3RMYW1iZGFBcm4oeyAuLi5vcHRpb25zLCB0bHNDb21wYXRpYmxlLCBidWNrZXROYW1lLCBhY2Nlc3Nwb2ludE5hbWUsIGhvc3RuYW1lU3VmZml4IH0pO1xuICAgIH1cbiAgICBpZiAocmVnaW9uID09PSBcIlwiKSB7XG4gICAgICAgIHJldHVybiBnZXRFbmRwb2ludEZyb21NUkFQQXJuKHsgLi4ub3B0aW9ucywgbXJhcEFsaWFzOiBhY2Nlc3Nwb2ludE5hbWUsIGhvc3RuYW1lU3VmZml4IH0pO1xuICAgIH1cbiAgICBpZiAob3V0cG9zdElkKSB7XG4gICAgICAgIHJldHVybiBnZXRFbmRwb2ludEZyb21PdXRwb3N0QXJuKHsgLi4ub3B0aW9ucywgY2xpZW50UmVnaW9uLCBvdXRwb3N0SWQsIGFjY2Vzc3BvaW50TmFtZSwgaG9zdG5hbWVTdWZmaXggfSk7XG4gICAgfVxuICAgIHJldHVybiBnZXRFbmRwb2ludEZyb21BY2Nlc3NQb2ludEFybih7IC4uLm9wdGlvbnMsIGNsaWVudFJlZ2lvbiwgYWNjZXNzcG9pbnROYW1lLCBob3N0bmFtZVN1ZmZpeCB9KTtcbn07XG5jb25zdCBnZXRFbmRwb2ludEZyb21PYmplY3RMYW1iZGFBcm4gPSAoeyBkdWFsc3RhY2tFbmRwb2ludCA9IGZhbHNlLCBmaXBzRW5kcG9pbnQgPSBmYWxzZSwgdGxzQ29tcGF0aWJsZSA9IHRydWUsIHVzZUFyblJlZ2lvbiwgY2xpZW50UmVnaW9uLCBjbGllbnRTaWduaW5nUmVnaW9uID0gY2xpZW50UmVnaW9uLCBhY2Nlc3Nwb2ludE5hbWUsIGJ1Y2tldE5hbWUsIGhvc3RuYW1lU3VmZml4LCB9KSA9PiB7XG4gICAgY29uc3QgeyBhY2NvdW50SWQsIHJlZ2lvbiwgc2VydmljZSB9ID0gYnVja2V0TmFtZTtcbiAgICB2YWxpZGF0ZVJlZ2lvbmFsQ2xpZW50KGNsaWVudFJlZ2lvbik7XG4gICAgY29uc3QgRE5TSG9zdExhYmVsID0gYCR7YWNjZXNzcG9pbnROYW1lfS0ke2FjY291bnRJZH1gO1xuICAgIHZhbGlkYXRlRE5TSG9zdExhYmVsKEROU0hvc3RMYWJlbCwgeyB0bHNDb21wYXRpYmxlIH0pO1xuICAgIGNvbnN0IGVuZHBvaW50UmVnaW9uID0gdXNlQXJuUmVnaW9uID8gcmVnaW9uIDogY2xpZW50UmVnaW9uO1xuICAgIGNvbnN0IHNpZ25pbmdSZWdpb24gPSB1c2VBcm5SZWdpb24gPyByZWdpb24gOiBjbGllbnRTaWduaW5nUmVnaW9uO1xuICAgIHJldHVybiB7XG4gICAgICAgIGJ1Y2tldEVuZHBvaW50OiB0cnVlLFxuICAgICAgICBob3N0bmFtZTogYCR7RE5TSG9zdExhYmVsfS4ke3NlcnZpY2V9JHtmaXBzRW5kcG9pbnQgPyBcIi1maXBzXCIgOiBcIlwifS4ke2VuZHBvaW50UmVnaW9ufS4ke2hvc3RuYW1lU3VmZml4fWAsXG4gICAgICAgIHNpZ25pbmdSZWdpb24sXG4gICAgICAgIHNpZ25pbmdTZXJ2aWNlOiBzZXJ2aWNlLFxuICAgIH07XG59O1xuY29uc3QgZ2V0RW5kcG9pbnRGcm9tTVJBUEFybiA9ICh7IGRpc2FibGVNdWx0aXJlZ2lvbkFjY2Vzc1BvaW50cywgZHVhbHN0YWNrRW5kcG9pbnQgPSBmYWxzZSwgaXNDdXN0b21FbmRwb2ludCwgbXJhcEFsaWFzLCBob3N0bmFtZVN1ZmZpeCwgfSkgPT4ge1xuICAgIGlmIChkaXNhYmxlTXVsdGlyZWdpb25BY2Nlc3NQb2ludHMgPT09IHRydWUpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiU0RLIGlzIGF0dGVtcHRpbmcgdG8gdXNlIGEgTVJBUCBBUk4uIFBsZWFzZSBlbmFibGUgdG8gZmVhdHVyZS5cIik7XG4gICAgfVxuICAgIHZhbGlkYXRlTXJhcEFsaWFzKG1yYXBBbGlhcyk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgYnVja2V0RW5kcG9pbnQ6IHRydWUsXG4gICAgICAgIGhvc3RuYW1lOiBgJHttcmFwQWxpYXN9JHtpc0N1c3RvbUVuZHBvaW50ID8gXCJcIiA6IGAuYWNjZXNzcG9pbnQuczMtZ2xvYmFsYH0uJHtob3N0bmFtZVN1ZmZpeH1gLFxuICAgICAgICBzaWduaW5nUmVnaW9uOiBcIipcIixcbiAgICB9O1xufTtcbmNvbnN0IGdldEVuZHBvaW50RnJvbU91dHBvc3RBcm4gPSAoeyB1c2VBcm5SZWdpb24sIGNsaWVudFJlZ2lvbiwgY2xpZW50U2lnbmluZ1JlZ2lvbiA9IGNsaWVudFJlZ2lvbiwgYnVja2V0TmFtZSwgb3V0cG9zdElkLCBkdWFsc3RhY2tFbmRwb2ludCA9IGZhbHNlLCBmaXBzRW5kcG9pbnQgPSBmYWxzZSwgdGxzQ29tcGF0aWJsZSA9IHRydWUsIGFjY2Vzc3BvaW50TmFtZSwgaXNDdXN0b21FbmRwb2ludCwgaG9zdG5hbWVTdWZmaXgsIH0pID0+IHtcbiAgICB2YWxpZGF0ZVJlZ2lvbmFsQ2xpZW50KGNsaWVudFJlZ2lvbik7XG4gICAgY29uc3QgRE5TSG9zdExhYmVsID0gYCR7YWNjZXNzcG9pbnROYW1lfS0ke2J1Y2tldE5hbWUuYWNjb3VudElkfWA7XG4gICAgdmFsaWRhdGVETlNIb3N0TGFiZWwoRE5TSG9zdExhYmVsLCB7IHRsc0NvbXBhdGlibGUgfSk7XG4gICAgY29uc3QgZW5kcG9pbnRSZWdpb24gPSB1c2VBcm5SZWdpb24gPyBidWNrZXROYW1lLnJlZ2lvbiA6IGNsaWVudFJlZ2lvbjtcbiAgICBjb25zdCBzaWduaW5nUmVnaW9uID0gdXNlQXJuUmVnaW9uID8gYnVja2V0TmFtZS5yZWdpb24gOiBjbGllbnRTaWduaW5nUmVnaW9uO1xuICAgIHZhbGlkYXRlT3V0cG9zdFNlcnZpY2UoYnVja2V0TmFtZS5zZXJ2aWNlKTtcbiAgICB2YWxpZGF0ZUROU0hvc3RMYWJlbChvdXRwb3N0SWQsIHsgdGxzQ29tcGF0aWJsZSB9KTtcbiAgICB2YWxpZGF0ZU5vRklQUyhmaXBzRW5kcG9pbnQpO1xuICAgIGNvbnN0IGhvc3RuYW1lUHJlZml4ID0gYCR7RE5TSG9zdExhYmVsfS4ke291dHBvc3RJZH1gO1xuICAgIHJldHVybiB7XG4gICAgICAgIGJ1Y2tldEVuZHBvaW50OiB0cnVlLFxuICAgICAgICBob3N0bmFtZTogYCR7aG9zdG5hbWVQcmVmaXh9JHtpc0N1c3RvbUVuZHBvaW50ID8gXCJcIiA6IGAuczMtb3V0cG9zdHMuJHtlbmRwb2ludFJlZ2lvbn1gfS4ke2hvc3RuYW1lU3VmZml4fWAsXG4gICAgICAgIHNpZ25pbmdSZWdpb24sXG4gICAgICAgIHNpZ25pbmdTZXJ2aWNlOiBcInMzLW91dHBvc3RzXCIsXG4gICAgfTtcbn07XG5jb25zdCBnZXRFbmRwb2ludEZyb21BY2Nlc3NQb2ludEFybiA9ICh7IHVzZUFyblJlZ2lvbiwgY2xpZW50UmVnaW9uLCBjbGllbnRTaWduaW5nUmVnaW9uID0gY2xpZW50UmVnaW9uLCBidWNrZXROYW1lLCBkdWFsc3RhY2tFbmRwb2ludCA9IGZhbHNlLCBmaXBzRW5kcG9pbnQgPSBmYWxzZSwgdGxzQ29tcGF0aWJsZSA9IHRydWUsIGFjY2Vzc3BvaW50TmFtZSwgaXNDdXN0b21FbmRwb2ludCwgaG9zdG5hbWVTdWZmaXgsIH0pID0+IHtcbiAgICB2YWxpZGF0ZVJlZ2lvbmFsQ2xpZW50KGNsaWVudFJlZ2lvbik7XG4gICAgY29uc3QgaG9zdG5hbWVQcmVmaXggPSBgJHthY2Nlc3Nwb2ludE5hbWV9LSR7YnVja2V0TmFtZS5hY2NvdW50SWR9YDtcbiAgICB2YWxpZGF0ZUROU0hvc3RMYWJlbChob3N0bmFtZVByZWZpeCwgeyB0bHNDb21wYXRpYmxlIH0pO1xuICAgIGNvbnN0IGVuZHBvaW50UmVnaW9uID0gdXNlQXJuUmVnaW9uID8gYnVja2V0TmFtZS5yZWdpb24gOiBjbGllbnRSZWdpb247XG4gICAgY29uc3Qgc2lnbmluZ1JlZ2lvbiA9IHVzZUFyblJlZ2lvbiA/IGJ1Y2tldE5hbWUucmVnaW9uIDogY2xpZW50U2lnbmluZ1JlZ2lvbjtcbiAgICB2YWxpZGF0ZVMzU2VydmljZShidWNrZXROYW1lLnNlcnZpY2UpO1xuICAgIHJldHVybiB7XG4gICAgICAgIGJ1Y2tldEVuZHBvaW50OiB0cnVlLFxuICAgICAgICBob3N0bmFtZTogYCR7aG9zdG5hbWVQcmVmaXh9JHtpc0N1c3RvbUVuZHBvaW50XG4gICAgICAgICAgICA/IFwiXCJcbiAgICAgICAgICAgIDogYC5zMy1hY2Nlc3Nwb2ludCR7Zmlwc0VuZHBvaW50ID8gXCItZmlwc1wiIDogXCJcIn0ke2R1YWxzdGFja0VuZHBvaW50ID8gXCIuZHVhbHN0YWNrXCIgOiBcIlwifS4ke2VuZHBvaW50UmVnaW9ufWB9LiR7aG9zdG5hbWVTdWZmaXh9YCxcbiAgICAgICAgc2lnbmluZ1JlZ2lvbixcbiAgICB9O1xufTtcblxuY29uc3QgYnVja2V0RW5kcG9pbnRNaWRkbGV3YXJlID0gKG9wdGlvbnMpID0+IChuZXh0LCBjb250ZXh0KSA9PiBhc3luYyAoYXJncykgPT4ge1xuICAgIGNvbnN0IHsgQnVja2V0OiBidWNrZXROYW1lIH0gPSBhcmdzLmlucHV0O1xuICAgIGxldCByZXBsYWNlQnVja2V0SW5QYXRoID0gb3B0aW9ucy5idWNrZXRFbmRwb2ludDtcbiAgICBjb25zdCByZXF1ZXN0ID0gYXJncy5yZXF1ZXN0O1xuICAgIGlmIChwcm90b2NvbEh0dHAuSHR0cFJlcXVlc3QuaXNJbnN0YW5jZShyZXF1ZXN0KSkge1xuICAgICAgICBpZiAob3B0aW9ucy5idWNrZXRFbmRwb2ludCkge1xuICAgICAgICAgICAgcmVxdWVzdC5ob3N0bmFtZSA9IGJ1Y2tldE5hbWU7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodXRpbEFyblBhcnNlci52YWxpZGF0ZShidWNrZXROYW1lKSkge1xuICAgICAgICAgICAgY29uc3QgYnVja2V0QXJuID0gdXRpbEFyblBhcnNlci5wYXJzZShidWNrZXROYW1lKTtcbiAgICAgICAgICAgIGNvbnN0IGNsaWVudFJlZ2lvbiA9IGF3YWl0IG9wdGlvbnMucmVnaW9uKCk7XG4gICAgICAgICAgICBjb25zdCB1c2VEdWFsc3RhY2tFbmRwb2ludCA9IGF3YWl0IG9wdGlvbnMudXNlRHVhbHN0YWNrRW5kcG9pbnQoKTtcbiAgICAgICAgICAgIGNvbnN0IHVzZUZpcHNFbmRwb2ludCA9IGF3YWl0IG9wdGlvbnMudXNlRmlwc0VuZHBvaW50KCk7XG4gICAgICAgICAgICBjb25zdCB7IHBhcnRpdGlvbiwgc2lnbmluZ1JlZ2lvbiA9IGNsaWVudFJlZ2lvbiB9ID0gKGF3YWl0IG9wdGlvbnMucmVnaW9uSW5mb1Byb3ZpZGVyKGNsaWVudFJlZ2lvbiwgeyB1c2VEdWFsc3RhY2tFbmRwb2ludCwgdXNlRmlwc0VuZHBvaW50IH0pKSB8fCB7fTtcbiAgICAgICAgICAgIGNvbnN0IHVzZUFyblJlZ2lvbiA9IGF3YWl0IG9wdGlvbnMudXNlQXJuUmVnaW9uKCk7XG4gICAgICAgICAgICBjb25zdCB7IGhvc3RuYW1lLCBidWNrZXRFbmRwb2ludCwgc2lnbmluZ1JlZ2lvbjogbW9kaWZpZWRTaWduaW5nUmVnaW9uLCBzaWduaW5nU2VydmljZSwgfSA9IGJ1Y2tldEhvc3RuYW1lKHtcbiAgICAgICAgICAgICAgICBidWNrZXROYW1lOiBidWNrZXRBcm4sXG4gICAgICAgICAgICAgICAgYmFzZUhvc3RuYW1lOiByZXF1ZXN0Lmhvc3RuYW1lLFxuICAgICAgICAgICAgICAgIGFjY2VsZXJhdGVFbmRwb2ludDogb3B0aW9ucy51c2VBY2NlbGVyYXRlRW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgZHVhbHN0YWNrRW5kcG9pbnQ6IHVzZUR1YWxzdGFja0VuZHBvaW50LFxuICAgICAgICAgICAgICAgIGZpcHNFbmRwb2ludDogdXNlRmlwc0VuZHBvaW50LFxuICAgICAgICAgICAgICAgIHBhdGhTdHlsZUVuZHBvaW50OiBvcHRpb25zLmZvcmNlUGF0aFN0eWxlLFxuICAgICAgICAgICAgICAgIHRsc0NvbXBhdGlibGU6IHJlcXVlc3QucHJvdG9jb2wgPT09IFwiaHR0cHM6XCIsXG4gICAgICAgICAgICAgICAgdXNlQXJuUmVnaW9uLFxuICAgICAgICAgICAgICAgIGNsaWVudFBhcnRpdGlvbjogcGFydGl0aW9uLFxuICAgICAgICAgICAgICAgIGNsaWVudFNpZ25pbmdSZWdpb246IHNpZ25pbmdSZWdpb24sXG4gICAgICAgICAgICAgICAgY2xpZW50UmVnaW9uOiBjbGllbnRSZWdpb24sXG4gICAgICAgICAgICAgICAgaXNDdXN0b21FbmRwb2ludDogb3B0aW9ucy5pc0N1c3RvbUVuZHBvaW50LFxuICAgICAgICAgICAgICAgIGRpc2FibGVNdWx0aXJlZ2lvbkFjY2Vzc1BvaW50czogYXdhaXQgb3B0aW9ucy5kaXNhYmxlTXVsdGlyZWdpb25BY2Nlc3NQb2ludHMoKSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWYgKG1vZGlmaWVkU2lnbmluZ1JlZ2lvbiAmJiBtb2RpZmllZFNpZ25pbmdSZWdpb24gIT09IHNpZ25pbmdSZWdpb24pIHtcbiAgICAgICAgICAgICAgICBjb250ZXh0W1wic2lnbmluZ19yZWdpb25cIl0gPSBtb2RpZmllZFNpZ25pbmdSZWdpb247XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoc2lnbmluZ1NlcnZpY2UgJiYgc2lnbmluZ1NlcnZpY2UgIT09IFwiczNcIikge1xuICAgICAgICAgICAgICAgIGNvbnRleHRbXCJzaWduaW5nX3NlcnZpY2VcIl0gPSBzaWduaW5nU2VydmljZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJlcXVlc3QuaG9zdG5hbWUgPSBob3N0bmFtZTtcbiAgICAgICAgICAgIHJlcGxhY2VCdWNrZXRJblBhdGggPSBidWNrZXRFbmRwb2ludDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGNsaWVudFJlZ2lvbiA9IGF3YWl0IG9wdGlvbnMucmVnaW9uKCk7XG4gICAgICAgICAgICBjb25zdCBkdWFsc3RhY2tFbmRwb2ludCA9IGF3YWl0IG9wdGlvbnMudXNlRHVhbHN0YWNrRW5kcG9pbnQoKTtcbiAgICAgICAgICAgIGNvbnN0IGZpcHNFbmRwb2ludCA9IGF3YWl0IG9wdGlvbnMudXNlRmlwc0VuZHBvaW50KCk7XG4gICAgICAgICAgICBjb25zdCB7IGhvc3RuYW1lLCBidWNrZXRFbmRwb2ludCB9ID0gYnVja2V0SG9zdG5hbWUoe1xuICAgICAgICAgICAgICAgIGJ1Y2tldE5hbWUsXG4gICAgICAgICAgICAgICAgY2xpZW50UmVnaW9uLFxuICAgICAgICAgICAgICAgIGJhc2VIb3N0bmFtZTogcmVxdWVzdC5ob3N0bmFtZSxcbiAgICAgICAgICAgICAgICBhY2NlbGVyYXRlRW5kcG9pbnQ6IG9wdGlvbnMudXNlQWNjZWxlcmF0ZUVuZHBvaW50LFxuICAgICAgICAgICAgICAgIGR1YWxzdGFja0VuZHBvaW50LFxuICAgICAgICAgICAgICAgIGZpcHNFbmRwb2ludCxcbiAgICAgICAgICAgICAgICBwYXRoU3R5bGVFbmRwb2ludDogb3B0aW9ucy5mb3JjZVBhdGhTdHlsZSxcbiAgICAgICAgICAgICAgICB0bHNDb21wYXRpYmxlOiByZXF1ZXN0LnByb3RvY29sID09PSBcImh0dHBzOlwiLFxuICAgICAgICAgICAgICAgIGlzQ3VzdG9tRW5kcG9pbnQ6IG9wdGlvbnMuaXNDdXN0b21FbmRwb2ludCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmVxdWVzdC5ob3N0bmFtZSA9IGhvc3RuYW1lO1xuICAgICAgICAgICAgcmVwbGFjZUJ1Y2tldEluUGF0aCA9IGJ1Y2tldEVuZHBvaW50O1xuICAgICAgICB9XG4gICAgICAgIGlmIChyZXBsYWNlQnVja2V0SW5QYXRoKSB7XG4gICAgICAgICAgICByZXF1ZXN0LnBhdGggPSByZXF1ZXN0LnBhdGgucmVwbGFjZSgvXihcXC8pP1teXFwvXSsvLCBcIlwiKTtcbiAgICAgICAgICAgIGlmIChyZXF1ZXN0LnBhdGggPT09IFwiXCIpIHtcbiAgICAgICAgICAgICAgICByZXF1ZXN0LnBhdGggPSBcIi9cIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbmV4dCh7IC4uLmFyZ3MsIHJlcXVlc3QgfSk7XG59O1xuY29uc3QgYnVja2V0RW5kcG9pbnRNaWRkbGV3YXJlT3B0aW9ucyA9IHtcbiAgICB0YWdzOiBbXCJCVUNLRVRfRU5EUE9JTlRcIl0sXG4gICAgbmFtZTogXCJidWNrZXRFbmRwb2ludE1pZGRsZXdhcmVcIixcbiAgICByZWxhdGlvbjogXCJiZWZvcmVcIixcbiAgICB0b01pZGRsZXdhcmU6IFwiaG9zdEhlYWRlck1pZGRsZXdhcmVcIixcbiAgICBvdmVycmlkZTogdHJ1ZSxcbn07XG5jb25zdCBnZXRCdWNrZXRFbmRwb2ludFBsdWdpbiA9IChvcHRpb25zKSA9PiAoe1xuICAgIGFwcGx5VG9TdGFjazogKGNsaWVudFN0YWNrKSA9PiB7XG4gICAgICAgIGNsaWVudFN0YWNrLmFkZFJlbGF0aXZlVG8oYnVja2V0RW5kcG9pbnRNaWRkbGV3YXJlKG9wdGlvbnMpLCBidWNrZXRFbmRwb2ludE1pZGRsZXdhcmVPcHRpb25zKTtcbiAgICB9LFxufSk7XG5cbmZ1bmN0aW9uIHJlc29sdmVCdWNrZXRFbmRwb2ludENvbmZpZyhpbnB1dCkge1xuICAgIGNvbnN0IHsgYnVja2V0RW5kcG9pbnQgPSBmYWxzZSwgZm9yY2VQYXRoU3R5bGUgPSBmYWxzZSwgdXNlQWNjZWxlcmF0ZUVuZHBvaW50ID0gZmFsc2UsIHVzZUFyblJlZ2lvbiwgZGlzYWJsZU11bHRpcmVnaW9uQWNjZXNzUG9pbnRzID0gZmFsc2UsIH0gPSBpbnB1dDtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihpbnB1dCwge1xuICAgICAgICBidWNrZXRFbmRwb2ludCxcbiAgICAgICAgZm9yY2VQYXRoU3R5bGUsXG4gICAgICAgIHVzZUFjY2VsZXJhdGVFbmRwb2ludCxcbiAgICAgICAgdXNlQXJuUmVnaW9uOiB0eXBlb2YgdXNlQXJuUmVnaW9uID09PSBcImZ1bmN0aW9uXCIgPyB1c2VBcm5SZWdpb24gOiAoKSA9PiBQcm9taXNlLnJlc29sdmUodXNlQXJuUmVnaW9uKSxcbiAgICAgICAgZGlzYWJsZU11bHRpcmVnaW9uQWNjZXNzUG9pbnRzOiB0eXBlb2YgZGlzYWJsZU11bHRpcmVnaW9uQWNjZXNzUG9pbnRzID09PSBcImZ1bmN0aW9uXCJcbiAgICAgICAgICAgID8gZGlzYWJsZU11bHRpcmVnaW9uQWNjZXNzUG9pbnRzXG4gICAgICAgICAgICA6ICgpID0+IFByb21pc2UucmVzb2x2ZShkaXNhYmxlTXVsdGlyZWdpb25BY2Nlc3NQb2ludHMpLFxuICAgIH0pO1xufVxuXG5leHBvcnRzLk5PREVfRElTQUJMRV9NVUxUSVJFR0lPTl9BQ0NFU1NfUE9JTlRfQ09ORklHX09QVElPTlMgPSBOT0RFX0RJU0FCTEVfTVVMVElSRUdJT05fQUNDRVNTX1BPSU5UX0NPTkZJR19PUFRJT05TO1xuZXhwb3J0cy5OT0RFX0RJU0FCTEVfTVVMVElSRUdJT05fQUNDRVNTX1BPSU5UX0VOVl9OQU1FID0gTk9ERV9ESVNBQkxFX01VTFRJUkVHSU9OX0FDQ0VTU19QT0lOVF9FTlZfTkFNRTtcbmV4cG9ydHMuTk9ERV9ESVNBQkxFX01VTFRJUkVHSU9OX0FDQ0VTU19QT0lOVF9JTklfTkFNRSA9IE5PREVfRElTQUJMRV9NVUxUSVJFR0lPTl9BQ0NFU1NfUE9JTlRfSU5JX05BTUU7XG5leHBvcnRzLk5PREVfVVNFX0FSTl9SRUdJT05fQ09ORklHX09QVElPTlMgPSBOT0RFX1VTRV9BUk5fUkVHSU9OX0NPTkZJR19PUFRJT05TO1xuZXhwb3J0cy5OT0RFX1VTRV9BUk5fUkVHSU9OX0VOVl9OQU1FID0gTk9ERV9VU0VfQVJOX1JFR0lPTl9FTlZfTkFNRTtcbmV4cG9ydHMuTk9ERV9VU0VfQVJOX1JFR0lPTl9JTklfTkFNRSA9IE5PREVfVVNFX0FSTl9SRUdJT05fSU5JX05BTUU7XG5leHBvcnRzLmJ1Y2tldEVuZHBvaW50TWlkZGxld2FyZSA9IGJ1Y2tldEVuZHBvaW50TWlkZGxld2FyZTtcbmV4cG9ydHMuYnVja2V0RW5kcG9pbnRNaWRkbGV3YXJlT3B0aW9ucyA9IGJ1Y2tldEVuZHBvaW50TWlkZGxld2FyZU9wdGlvbnM7XG5leHBvcnRzLmJ1Y2tldEhvc3RuYW1lID0gYnVja2V0SG9zdG5hbWU7XG5leHBvcnRzLmdldEFyblJlc291cmNlcyA9IGdldEFyblJlc291cmNlcztcbmV4cG9ydHMuZ2V0QnVja2V0RW5kcG9pbnRQbHVnaW4gPSBnZXRCdWNrZXRFbmRwb2ludFBsdWdpbjtcbmV4cG9ydHMuZ2V0U3VmZml4Rm9yQXJuRW5kcG9pbnQgPSBnZXRTdWZmaXhGb3JBcm5FbmRwb2ludDtcbmV4cG9ydHMucmVzb2x2ZUJ1Y2tldEVuZHBvaW50Q29uZmlnID0gcmVzb2x2ZUJ1Y2tldEVuZHBvaW50Q29uZmlnO1xuZXhwb3J0cy52YWxpZGF0ZUFjY291bnRJZCA9IHZhbGlkYXRlQWNjb3VudElkO1xuZXhwb3J0cy52YWxpZGF0ZUROU0hvc3RMYWJlbCA9IHZhbGlkYXRlRE5TSG9zdExhYmVsO1xuZXhwb3J0cy52YWxpZGF0ZU5vRHVhbHN0YWNrID0gdmFsaWRhdGVOb0R1YWxzdGFjaztcbmV4cG9ydHMudmFsaWRhdGVOb0ZJUFMgPSB2YWxpZGF0ZU5vRklQUztcbmV4cG9ydHMudmFsaWRhdGVPdXRwb3N0U2VydmljZSA9IHZhbGlkYXRlT3V0cG9zdFNlcnZpY2U7XG5leHBvcnRzLnZhbGlkYXRlUGFydGl0aW9uID0gdmFsaWRhdGVQYXJ0aXRpb247XG5leHBvcnRzLnZhbGlkYXRlUmVnaW9uID0gdmFsaWRhdGVSZWdpb247XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmdldFJ1bnRpbWVDb25maWcgPSB2b2lkIDA7XG5jb25zdCBjb3JlXzEgPSByZXF1aXJlKFwiQGF3cy1zZGsvY29yZVwiKTtcbmNvbnN0IHByb3RvY29sc18xID0gcmVxdWlyZShcIkBhd3Mtc2RrL2NvcmUvcHJvdG9jb2xzXCIpO1xuY29uc3Qgc2lnbmF0dXJlX3Y0X211bHRpX3JlZ2lvbl8xID0gcmVxdWlyZShcIkBhd3Mtc2RrL3NpZ25hdHVyZS12NC1tdWx0aS1yZWdpb25cIik7XG5jb25zdCBzbWl0aHlfY2xpZW50XzEgPSByZXF1aXJlKFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCIpO1xuY29uc3QgdXJsX3BhcnNlcl8xID0gcmVxdWlyZShcIkBzbWl0aHkvdXJsLXBhcnNlclwiKTtcbmNvbnN0IHV0aWxfYmFzZTY0XzEgPSByZXF1aXJlKFwiQHNtaXRoeS91dGlsLWJhc2U2NFwiKTtcbmNvbnN0IHV0aWxfc3RyZWFtXzEgPSByZXF1aXJlKFwiQHNtaXRoeS91dGlsLXN0cmVhbVwiKTtcbmNvbnN0IHV0aWxfdXRmOF8xID0gcmVxdWlyZShcIkBzbWl0aHkvdXRpbC11dGY4XCIpO1xuY29uc3QgaHR0cEF1dGhTY2hlbWVQcm92aWRlcl8xID0gcmVxdWlyZShcIi4vYXV0aC9odHRwQXV0aFNjaGVtZVByb3ZpZGVyXCIpO1xuY29uc3QgZW5kcG9pbnRSZXNvbHZlcl8xID0gcmVxdWlyZShcIi4vZW5kcG9pbnQvZW5kcG9pbnRSZXNvbHZlclwiKTtcbmNvbnN0IGdldFJ1bnRpbWVDb25maWcgPSAoY29uZmlnKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgYXBpVmVyc2lvbjogXCIyMDA2LTAzLTAxXCIsXG4gICAgICAgIGJhc2U2NERlY29kZXI6IGNvbmZpZz8uYmFzZTY0RGVjb2RlciA/PyB1dGlsX2Jhc2U2NF8xLmZyb21CYXNlNjQsXG4gICAgICAgIGJhc2U2NEVuY29kZXI6IGNvbmZpZz8uYmFzZTY0RW5jb2RlciA/PyB1dGlsX2Jhc2U2NF8xLnRvQmFzZTY0LFxuICAgICAgICBkaXNhYmxlSG9zdFByZWZpeDogY29uZmlnPy5kaXNhYmxlSG9zdFByZWZpeCA/PyBmYWxzZSxcbiAgICAgICAgZW5kcG9pbnRQcm92aWRlcjogY29uZmlnPy5lbmRwb2ludFByb3ZpZGVyID8/IGVuZHBvaW50UmVzb2x2ZXJfMS5kZWZhdWx0RW5kcG9pbnRSZXNvbHZlcixcbiAgICAgICAgZXh0ZW5zaW9uczogY29uZmlnPy5leHRlbnNpb25zID8/IFtdLFxuICAgICAgICBnZXRBd3NDaHVua2VkRW5jb2RpbmdTdHJlYW06IGNvbmZpZz8uZ2V0QXdzQ2h1bmtlZEVuY29kaW5nU3RyZWFtID8/IHV0aWxfc3RyZWFtXzEuZ2V0QXdzQ2h1bmtlZEVuY29kaW5nU3RyZWFtLFxuICAgICAgICBodHRwQXV0aFNjaGVtZVByb3ZpZGVyOiBjb25maWc/Lmh0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPz8gaHR0cEF1dGhTY2hlbWVQcm92aWRlcl8xLmRlZmF1bHRTM0h0dHBBdXRoU2NoZW1lUHJvdmlkZXIsXG4gICAgICAgIGh0dHBBdXRoU2NoZW1lczogY29uZmlnPy5odHRwQXV0aFNjaGVtZXMgPz8gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHNjaGVtZUlkOiBcImF3cy5hdXRoI3NpZ3Y0XCIsXG4gICAgICAgICAgICAgICAgaWRlbnRpdHlQcm92aWRlcjogKGlwYykgPT4gaXBjLmdldElkZW50aXR5UHJvdmlkZXIoXCJhd3MuYXV0aCNzaWd2NFwiKSxcbiAgICAgICAgICAgICAgICBzaWduZXI6IG5ldyBjb3JlXzEuQXdzU2RrU2lnVjRTaWduZXIoKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgc2NoZW1lSWQ6IFwiYXdzLmF1dGgjc2lndjRhXCIsXG4gICAgICAgICAgICAgICAgaWRlbnRpdHlQcm92aWRlcjogKGlwYykgPT4gaXBjLmdldElkZW50aXR5UHJvdmlkZXIoXCJhd3MuYXV0aCNzaWd2NGFcIiksXG4gICAgICAgICAgICAgICAgc2lnbmVyOiBuZXcgY29yZV8xLkF3c1Nka1NpZ1Y0QVNpZ25lcigpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgbG9nZ2VyOiBjb25maWc/LmxvZ2dlciA/PyBuZXcgc21pdGh5X2NsaWVudF8xLk5vT3BMb2dnZXIoKSxcbiAgICAgICAgcHJvdG9jb2w6IGNvbmZpZz8ucHJvdG9jb2wgPz9cbiAgICAgICAgICAgIG5ldyBwcm90b2NvbHNfMS5Bd3NSZXN0WG1sUHJvdG9jb2woe1xuICAgICAgICAgICAgICAgIGRlZmF1bHROYW1lc3BhY2U6IFwiY29tLmFtYXpvbmF3cy5zM1wiLFxuICAgICAgICAgICAgICAgIHhtbE5hbWVzcGFjZTogXCJodHRwOi8vczMuYW1hem9uYXdzLmNvbS9kb2MvMjAwNi0wMy0wMS9cIixcbiAgICAgICAgICAgIH0pLFxuICAgICAgICBzZGtTdHJlYW1NaXhpbjogY29uZmlnPy5zZGtTdHJlYW1NaXhpbiA/PyB1dGlsX3N0cmVhbV8xLnNka1N0cmVhbU1peGluLFxuICAgICAgICBzZXJ2aWNlSWQ6IGNvbmZpZz8uc2VydmljZUlkID8/IFwiUzNcIixcbiAgICAgICAgc2lnbmVyQ29uc3RydWN0b3I6IGNvbmZpZz8uc2lnbmVyQ29uc3RydWN0b3IgPz8gc2lnbmF0dXJlX3Y0X211bHRpX3JlZ2lvbl8xLlNpZ25hdHVyZVY0TXVsdGlSZWdpb24sXG4gICAgICAgIHNpZ25pbmdFc2NhcGVQYXRoOiBjb25maWc/LnNpZ25pbmdFc2NhcGVQYXRoID8/IGZhbHNlLFxuICAgICAgICB1cmxQYXJzZXI6IGNvbmZpZz8udXJsUGFyc2VyID8/IHVybF9wYXJzZXJfMS5wYXJzZVVybCxcbiAgICAgICAgdXNlQXJuUmVnaW9uOiBjb25maWc/LnVzZUFyblJlZ2lvbiA/PyB1bmRlZmluZWQsXG4gICAgICAgIHV0ZjhEZWNvZGVyOiBjb25maWc/LnV0ZjhEZWNvZGVyID8/IHV0aWxfdXRmOF8xLmZyb21VdGY4LFxuICAgICAgICB1dGY4RW5jb2RlcjogY29uZmlnPy51dGY4RW5jb2RlciA/PyB1dGlsX3V0ZjhfMS50b1V0ZjgsXG4gICAgfTtcbn07XG5leHBvcnRzLmdldFJ1bnRpbWVDb25maWcgPSBnZXRSdW50aW1lQ29uZmlnO1xuIiwgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5nZXRSdW50aW1lQ29uZmlnID0gdm9pZCAwO1xuY29uc3QgdHNsaWJfMSA9IHJlcXVpcmUoXCJ0c2xpYlwiKTtcbmNvbnN0IHBhY2thZ2VfanNvbl8xID0gdHNsaWJfMS5fX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4uL3BhY2thZ2UuanNvblwiKSk7XG5jb25zdCBjb3JlXzEgPSByZXF1aXJlKFwiQGF3cy1zZGsvY29yZVwiKTtcbmNvbnN0IGNyZWRlbnRpYWxfcHJvdmlkZXJfbm9kZV8xID0gcmVxdWlyZShcIkBhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbm9kZVwiKTtcbmNvbnN0IG1pZGRsZXdhcmVfYnVja2V0X2VuZHBvaW50XzEgPSByZXF1aXJlKFwiQGF3cy1zZGsvbWlkZGxld2FyZS1idWNrZXQtZW5kcG9pbnRcIik7XG5jb25zdCBtaWRkbGV3YXJlX2ZsZXhpYmxlX2NoZWNrc3Vtc18xID0gcmVxdWlyZShcIkBhd3Mtc2RrL21pZGRsZXdhcmUtZmxleGlibGUtY2hlY2tzdW1zXCIpO1xuY29uc3QgbWlkZGxld2FyZV9zZGtfczNfMSA9IHJlcXVpcmUoXCJAYXdzLXNkay9taWRkbGV3YXJlLXNkay1zM1wiKTtcbmNvbnN0IHV0aWxfdXNlcl9hZ2VudF9ub2RlXzEgPSByZXF1aXJlKFwiQGF3cy1zZGsvdXRpbC11c2VyLWFnZW50LW5vZGVcIik7XG5jb25zdCBjb25maWdfcmVzb2x2ZXJfMSA9IHJlcXVpcmUoXCJAc21pdGh5L2NvbmZpZy1yZXNvbHZlclwiKTtcbmNvbnN0IGV2ZW50c3RyZWFtX3NlcmRlX25vZGVfMSA9IHJlcXVpcmUoXCJAc21pdGh5L2V2ZW50c3RyZWFtLXNlcmRlLW5vZGVcIik7XG5jb25zdCBoYXNoX25vZGVfMSA9IHJlcXVpcmUoXCJAc21pdGh5L2hhc2gtbm9kZVwiKTtcbmNvbnN0IGhhc2hfc3RyZWFtX25vZGVfMSA9IHJlcXVpcmUoXCJAc21pdGh5L2hhc2gtc3RyZWFtLW5vZGVcIik7XG5jb25zdCBtaWRkbGV3YXJlX3JldHJ5XzEgPSByZXF1aXJlKFwiQHNtaXRoeS9taWRkbGV3YXJlLXJldHJ5XCIpO1xuY29uc3Qgbm9kZV9jb25maWdfcHJvdmlkZXJfMSA9IHJlcXVpcmUoXCJAc21pdGh5L25vZGUtY29uZmlnLXByb3ZpZGVyXCIpO1xuY29uc3Qgbm9kZV9odHRwX2hhbmRsZXJfMSA9IHJlcXVpcmUoXCJAc21pdGh5L25vZGUtaHR0cC1oYW5kbGVyXCIpO1xuY29uc3Qgc21pdGh5X2NsaWVudF8xID0gcmVxdWlyZShcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiKTtcbmNvbnN0IHV0aWxfYm9keV9sZW5ndGhfbm9kZV8xID0gcmVxdWlyZShcIkBzbWl0aHkvdXRpbC1ib2R5LWxlbmd0aC1ub2RlXCIpO1xuY29uc3QgdXRpbF9kZWZhdWx0c19tb2RlX25vZGVfMSA9IHJlcXVpcmUoXCJAc21pdGh5L3V0aWwtZGVmYXVsdHMtbW9kZS1ub2RlXCIpO1xuY29uc3QgdXRpbF9yZXRyeV8xID0gcmVxdWlyZShcIkBzbWl0aHkvdXRpbC1yZXRyeVwiKTtcbmNvbnN0IHJ1bnRpbWVDb25maWdfc2hhcmVkXzEgPSByZXF1aXJlKFwiLi9ydW50aW1lQ29uZmlnLnNoYXJlZFwiKTtcbmNvbnN0IGdldFJ1bnRpbWVDb25maWcgPSAoY29uZmlnKSA9PiB7XG4gICAgKDAsIHNtaXRoeV9jbGllbnRfMS5lbWl0V2FybmluZ0lmVW5zdXBwb3J0ZWRWZXJzaW9uKShwcm9jZXNzLnZlcnNpb24pO1xuICAgIGNvbnN0IGRlZmF1bHRzTW9kZSA9ICgwLCB1dGlsX2RlZmF1bHRzX21vZGVfbm9kZV8xLnJlc29sdmVEZWZhdWx0c01vZGVDb25maWcpKGNvbmZpZyk7XG4gICAgY29uc3QgZGVmYXVsdENvbmZpZ1Byb3ZpZGVyID0gKCkgPT4gZGVmYXVsdHNNb2RlKCkudGhlbihzbWl0aHlfY2xpZW50XzEubG9hZENvbmZpZ3NGb3JEZWZhdWx0TW9kZSk7XG4gICAgY29uc3QgY2xpZW50U2hhcmVkVmFsdWVzID0gKDAsIHJ1bnRpbWVDb25maWdfc2hhcmVkXzEuZ2V0UnVudGltZUNvbmZpZykoY29uZmlnKTtcbiAgICAoMCwgY29yZV8xLmVtaXRXYXJuaW5nSWZVbnN1cHBvcnRlZFZlcnNpb24pKHByb2Nlc3MudmVyc2lvbik7XG4gICAgY29uc3QgbG9hZGVyQ29uZmlnID0ge1xuICAgICAgICBwcm9maWxlOiBjb25maWc/LnByb2ZpbGUsXG4gICAgICAgIGxvZ2dlcjogY2xpZW50U2hhcmVkVmFsdWVzLmxvZ2dlcixcbiAgICB9O1xuICAgIHJldHVybiB7XG4gICAgICAgIC4uLmNsaWVudFNoYXJlZFZhbHVlcyxcbiAgICAgICAgLi4uY29uZmlnLFxuICAgICAgICBydW50aW1lOiBcIm5vZGVcIixcbiAgICAgICAgZGVmYXVsdHNNb2RlLFxuICAgICAgICBhdXRoU2NoZW1lUHJlZmVyZW5jZTogY29uZmlnPy5hdXRoU2NoZW1lUHJlZmVyZW5jZSA/PyAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKShjb3JlXzEuTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX09QVElPTlMsIGxvYWRlckNvbmZpZyksXG4gICAgICAgIGJvZHlMZW5ndGhDaGVja2VyOiBjb25maWc/LmJvZHlMZW5ndGhDaGVja2VyID8/IHV0aWxfYm9keV9sZW5ndGhfbm9kZV8xLmNhbGN1bGF0ZUJvZHlMZW5ndGgsXG4gICAgICAgIGNyZWRlbnRpYWxEZWZhdWx0UHJvdmlkZXI6IGNvbmZpZz8uY3JlZGVudGlhbERlZmF1bHRQcm92aWRlciA/PyBjcmVkZW50aWFsX3Byb3ZpZGVyX25vZGVfMS5kZWZhdWx0UHJvdmlkZXIsXG4gICAgICAgIGRlZmF1bHRVc2VyQWdlbnRQcm92aWRlcjogY29uZmlnPy5kZWZhdWx0VXNlckFnZW50UHJvdmlkZXIgPz9cbiAgICAgICAgICAgICgwLCB1dGlsX3VzZXJfYWdlbnRfbm9kZV8xLmNyZWF0ZURlZmF1bHRVc2VyQWdlbnRQcm92aWRlcikoeyBzZXJ2aWNlSWQ6IGNsaWVudFNoYXJlZFZhbHVlcy5zZXJ2aWNlSWQsIGNsaWVudFZlcnNpb246IHBhY2thZ2VfanNvbl8xLmRlZmF1bHQudmVyc2lvbiB9KSxcbiAgICAgICAgZGlzYWJsZVMzRXhwcmVzc1Nlc3Npb25BdXRoOiBjb25maWc/LmRpc2FibGVTM0V4cHJlc3NTZXNzaW9uQXV0aCA/PyAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKShtaWRkbGV3YXJlX3Nka19zM18xLk5PREVfRElTQUJMRV9TM19FWFBSRVNTX1NFU1NJT05fQVVUSF9PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgICAgICBldmVudFN0cmVhbVNlcmRlUHJvdmlkZXI6IGNvbmZpZz8uZXZlbnRTdHJlYW1TZXJkZVByb3ZpZGVyID8/IGV2ZW50c3RyZWFtX3NlcmRlX25vZGVfMS5ldmVudFN0cmVhbVNlcmRlUHJvdmlkZXIsXG4gICAgICAgIG1heEF0dGVtcHRzOiBjb25maWc/Lm1heEF0dGVtcHRzID8/ICgwLCBub2RlX2NvbmZpZ19wcm92aWRlcl8xLmxvYWRDb25maWcpKG1pZGRsZXdhcmVfcmV0cnlfMS5OT0RFX01BWF9BVFRFTVBUX0NPTkZJR19PUFRJT05TLCBjb25maWcpLFxuICAgICAgICBtZDU6IGNvbmZpZz8ubWQ1ID8/IGhhc2hfbm9kZV8xLkhhc2guYmluZChudWxsLCBcIm1kNVwiKSxcbiAgICAgICAgcmVnaW9uOiBjb25maWc/LnJlZ2lvbiA/P1xuICAgICAgICAgICAgKDAsIG5vZGVfY29uZmlnX3Byb3ZpZGVyXzEubG9hZENvbmZpZykoY29uZmlnX3Jlc29sdmVyXzEuTk9ERV9SRUdJT05fQ09ORklHX09QVElPTlMsIHsgLi4uY29uZmlnX3Jlc29sdmVyXzEuTk9ERV9SRUdJT05fQ09ORklHX0ZJTEVfT1BUSU9OUywgLi4ubG9hZGVyQ29uZmlnIH0pLFxuICAgICAgICByZXF1ZXN0Q2hlY2tzdW1DYWxjdWxhdGlvbjogY29uZmlnPy5yZXF1ZXN0Q2hlY2tzdW1DYWxjdWxhdGlvbiA/P1xuICAgICAgICAgICAgKDAsIG5vZGVfY29uZmlnX3Byb3ZpZGVyXzEubG9hZENvbmZpZykobWlkZGxld2FyZV9mbGV4aWJsZV9jaGVja3N1bXNfMS5OT0RFX1JFUVVFU1RfQ0hFQ0tTVU1fQ0FMQ1VMQVRJT05fQ09ORklHX09QVElPTlMsIGxvYWRlckNvbmZpZyksXG4gICAgICAgIHJlcXVlc3RIYW5kbGVyOiBub2RlX2h0dHBfaGFuZGxlcl8xLk5vZGVIdHRwSGFuZGxlci5jcmVhdGUoY29uZmlnPy5yZXF1ZXN0SGFuZGxlciA/PyBkZWZhdWx0Q29uZmlnUHJvdmlkZXIpLFxuICAgICAgICByZXNwb25zZUNoZWNrc3VtVmFsaWRhdGlvbjogY29uZmlnPy5yZXNwb25zZUNoZWNrc3VtVmFsaWRhdGlvbiA/P1xuICAgICAgICAgICAgKDAsIG5vZGVfY29uZmlnX3Byb3ZpZGVyXzEubG9hZENvbmZpZykobWlkZGxld2FyZV9mbGV4aWJsZV9jaGVja3N1bXNfMS5OT0RFX1JFU1BPTlNFX0NIRUNLU1VNX1ZBTElEQVRJT05fQ09ORklHX09QVElPTlMsIGxvYWRlckNvbmZpZyksXG4gICAgICAgIHJldHJ5TW9kZTogY29uZmlnPy5yZXRyeU1vZGUgPz9cbiAgICAgICAgICAgICgwLCBub2RlX2NvbmZpZ19wcm92aWRlcl8xLmxvYWRDb25maWcpKHtcbiAgICAgICAgICAgICAgICAuLi5taWRkbGV3YXJlX3JldHJ5XzEuTk9ERV9SRVRSWV9NT0RFX0NPTkZJR19PUFRJT05TLFxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IGFzeW5jICgpID0+IChhd2FpdCBkZWZhdWx0Q29uZmlnUHJvdmlkZXIoKSkucmV0cnlNb2RlIHx8IHV0aWxfcmV0cnlfMS5ERUZBVUxUX1JFVFJZX01PREUsXG4gICAgICAgICAgICB9LCBjb25maWcpLFxuICAgICAgICBzaGExOiBjb25maWc/LnNoYTEgPz8gaGFzaF9ub2RlXzEuSGFzaC5iaW5kKG51bGwsIFwic2hhMVwiKSxcbiAgICAgICAgc2hhMjU2OiBjb25maWc/LnNoYTI1NiA/PyBoYXNoX25vZGVfMS5IYXNoLmJpbmQobnVsbCwgXCJzaGEyNTZcIiksXG4gICAgICAgIHNpZ3Y0YVNpZ25pbmdSZWdpb25TZXQ6IGNvbmZpZz8uc2lndjRhU2lnbmluZ1JlZ2lvblNldCA/PyAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKShjb3JlXzEuTk9ERV9TSUdWNEFfQ09ORklHX09QVElPTlMsIGxvYWRlckNvbmZpZyksXG4gICAgICAgIHN0cmVhbUNvbGxlY3RvcjogY29uZmlnPy5zdHJlYW1Db2xsZWN0b3IgPz8gbm9kZV9odHRwX2hhbmRsZXJfMS5zdHJlYW1Db2xsZWN0b3IsXG4gICAgICAgIHN0cmVhbUhhc2hlcjogY29uZmlnPy5zdHJlYW1IYXNoZXIgPz8gaGFzaF9zdHJlYW1fbm9kZV8xLnJlYWRhYmxlU3RyZWFtSGFzaGVyLFxuICAgICAgICB1c2VBcm5SZWdpb246IGNvbmZpZz8udXNlQXJuUmVnaW9uID8/ICgwLCBub2RlX2NvbmZpZ19wcm92aWRlcl8xLmxvYWRDb25maWcpKG1pZGRsZXdhcmVfYnVja2V0X2VuZHBvaW50XzEuTk9ERV9VU0VfQVJOX1JFR0lPTl9DT05GSUdfT1BUSU9OUywgbG9hZGVyQ29uZmlnKSxcbiAgICAgICAgdXNlRHVhbHN0YWNrRW5kcG9pbnQ6IGNvbmZpZz8udXNlRHVhbHN0YWNrRW5kcG9pbnQgPz8gKDAsIG5vZGVfY29uZmlnX3Byb3ZpZGVyXzEubG9hZENvbmZpZykoY29uZmlnX3Jlc29sdmVyXzEuTk9ERV9VU0VfRFVBTFNUQUNLX0VORFBPSU5UX0NPTkZJR19PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgICAgICB1c2VGaXBzRW5kcG9pbnQ6IGNvbmZpZz8udXNlRmlwc0VuZHBvaW50ID8/ICgwLCBub2RlX2NvbmZpZ19wcm92aWRlcl8xLmxvYWRDb25maWcpKGNvbmZpZ19yZXNvbHZlcl8xLk5PREVfVVNFX0ZJUFNfRU5EUE9JTlRfQ09ORklHX09QVElPTlMsIGxvYWRlckNvbmZpZyksXG4gICAgICAgIHVzZXJBZ2VudEFwcElkOiBjb25maWc/LnVzZXJBZ2VudEFwcElkID8/ICgwLCBub2RlX2NvbmZpZ19wcm92aWRlcl8xLmxvYWRDb25maWcpKHV0aWxfdXNlcl9hZ2VudF9ub2RlXzEuTk9ERV9BUFBfSURfQ09ORklHX09QVElPTlMsIGxvYWRlckNvbmZpZyksXG4gICAgfTtcbn07XG5leHBvcnRzLmdldFJ1bnRpbWVDb25maWcgPSBnZXRSdW50aW1lQ29uZmlnO1xuIiwgIid1c2Ugc3RyaWN0JztcblxuZnVuY3Rpb24gc3NlY01pZGRsZXdhcmUob3B0aW9ucykge1xuICAgIHJldHVybiAobmV4dCkgPT4gYXN5bmMgKGFyZ3MpID0+IHtcbiAgICAgICAgY29uc3QgaW5wdXQgPSB7IC4uLmFyZ3MuaW5wdXQgfTtcbiAgICAgICAgY29uc3QgcHJvcGVydGllcyA9IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0YXJnZXQ6IFwiU1NFQ3VzdG9tZXJLZXlcIixcbiAgICAgICAgICAgICAgICBoYXNoOiBcIlNTRUN1c3RvbWVyS2V5TUQ1XCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRhcmdldDogXCJDb3B5U291cmNlU1NFQ3VzdG9tZXJLZXlcIixcbiAgICAgICAgICAgICAgICBoYXNoOiBcIkNvcHlTb3VyY2VTU0VDdXN0b21lcktleU1ENVwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXTtcbiAgICAgICAgZm9yIChjb25zdCBwcm9wIG9mIHByb3BlcnRpZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gaW5wdXRbcHJvcC50YXJnZXRdO1xuICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgbGV0IHZhbHVlRm9ySGFzaDtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc1ZhbGlkQmFzZTY0RW5jb2RlZFNTRUN1c3RvbWVyS2V5KHZhbHVlLCBvcHRpb25zKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVGb3JIYXNoID0gb3B0aW9ucy5iYXNlNjREZWNvZGVyKHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlRm9ySGFzaCA9IG9wdGlvbnMudXRmOERlY29kZXIodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbcHJvcC50YXJnZXRdID0gb3B0aW9ucy5iYXNlNjRFbmNvZGVyKHZhbHVlRm9ySGFzaCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlRm9ySGFzaCA9IEFycmF5QnVmZmVyLmlzVmlldyh2YWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgID8gbmV3IFVpbnQ4QXJyYXkodmFsdWUuYnVmZmVyLCB2YWx1ZS5ieXRlT2Zmc2V0LCB2YWx1ZS5ieXRlTGVuZ3RoKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBuZXcgVWludDhBcnJheSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIGlucHV0W3Byb3AudGFyZ2V0XSA9IG9wdGlvbnMuYmFzZTY0RW5jb2Rlcih2YWx1ZUZvckhhc2gpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBoYXNoID0gbmV3IG9wdGlvbnMubWQ1KCk7XG4gICAgICAgICAgICAgICAgaGFzaC51cGRhdGUodmFsdWVGb3JIYXNoKTtcbiAgICAgICAgICAgICAgICBpbnB1dFtwcm9wLmhhc2hdID0gb3B0aW9ucy5iYXNlNjRFbmNvZGVyKGF3YWl0IGhhc2guZGlnZXN0KCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXh0KHtcbiAgICAgICAgICAgIC4uLmFyZ3MsXG4gICAgICAgICAgICBpbnB1dCxcbiAgICAgICAgfSk7XG4gICAgfTtcbn1cbmNvbnN0IHNzZWNNaWRkbGV3YXJlT3B0aW9ucyA9IHtcbiAgICBuYW1lOiBcInNzZWNNaWRkbGV3YXJlXCIsXG4gICAgc3RlcDogXCJpbml0aWFsaXplXCIsXG4gICAgdGFnczogW1wiU1NFXCJdLFxuICAgIG92ZXJyaWRlOiB0cnVlLFxufTtcbmNvbnN0IGdldFNzZWNQbHVnaW4gPSAoY29uZmlnKSA9PiAoe1xuICAgIGFwcGx5VG9TdGFjazogKGNsaWVudFN0YWNrKSA9PiB7XG4gICAgICAgIGNsaWVudFN0YWNrLmFkZChzc2VjTWlkZGxld2FyZShjb25maWcpLCBzc2VjTWlkZGxld2FyZU9wdGlvbnMpO1xuICAgIH0sXG59KTtcbmZ1bmN0aW9uIGlzVmFsaWRCYXNlNjRFbmNvZGVkU1NFQ3VzdG9tZXJLZXkoc3RyLCBvcHRpb25zKSB7XG4gICAgY29uc3QgYmFzZTY0UmVnZXggPSAvXig/OltBLVphLXowLTkrL117NH0pKihbQS1aYS16MC05Ky9dezJ9PT18W0EtWmEtejAtOSsvXXszfT0pPyQvO1xuICAgIGlmICghYmFzZTY0UmVnZXgudGVzdChzdHIpKVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgdHJ5IHtcbiAgICAgICAgY29uc3QgZGVjb2RlZEJ5dGVzID0gb3B0aW9ucy5iYXNlNjREZWNvZGVyKHN0cik7XG4gICAgICAgIHJldHVybiBkZWNvZGVkQnl0ZXMubGVuZ3RoID09PSAzMjtcbiAgICB9XG4gICAgY2F0Y2gge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuXG5leHBvcnRzLmdldFNzZWNQbHVnaW4gPSBnZXRTc2VjUGx1Z2luO1xuZXhwb3J0cy5pc1ZhbGlkQmFzZTY0RW5jb2RlZFNTRUN1c3RvbWVyS2V5ID0gaXNWYWxpZEJhc2U2NEVuY29kZWRTU0VDdXN0b21lcktleTtcbmV4cG9ydHMuc3NlY01pZGRsZXdhcmUgPSBzc2VjTWlkZGxld2FyZTtcbmV4cG9ydHMuc3NlY01pZGRsZXdhcmVPcHRpb25zID0gc3NlY01pZGRsZXdhcmVPcHRpb25zO1xuIiwgIid1c2Ugc3RyaWN0JztcblxuZnVuY3Rpb24gbG9jYXRpb25Db25zdHJhaW50TWlkZGxld2FyZShvcHRpb25zKSB7XG4gICAgcmV0dXJuIChuZXh0KSA9PiBhc3luYyAoYXJncykgPT4ge1xuICAgICAgICBjb25zdCB7IENyZWF0ZUJ1Y2tldENvbmZpZ3VyYXRpb24gfSA9IGFyZ3MuaW5wdXQ7XG4gICAgICAgIGNvbnN0IHJlZ2lvbiA9IGF3YWl0IG9wdGlvbnMucmVnaW9uKCk7XG4gICAgICAgIGlmICghQ3JlYXRlQnVja2V0Q29uZmlndXJhdGlvbj8uTG9jYXRpb25Db25zdHJhaW50ICYmICFDcmVhdGVCdWNrZXRDb25maWd1cmF0aW9uPy5Mb2NhdGlvbikge1xuICAgICAgICAgICAgaWYgKHJlZ2lvbiAhPT0gXCJ1cy1lYXN0LTFcIikge1xuICAgICAgICAgICAgICAgIGFyZ3MuaW5wdXQuQ3JlYXRlQnVja2V0Q29uZmlndXJhdGlvbiA9IGFyZ3MuaW5wdXQuQ3JlYXRlQnVja2V0Q29uZmlndXJhdGlvbiA/PyB7fTtcbiAgICAgICAgICAgICAgICBhcmdzLmlucHV0LkNyZWF0ZUJ1Y2tldENvbmZpZ3VyYXRpb24uTG9jYXRpb25Db25zdHJhaW50ID0gcmVnaW9uO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXh0KGFyZ3MpO1xuICAgIH07XG59XG5jb25zdCBsb2NhdGlvbkNvbnN0cmFpbnRNaWRkbGV3YXJlT3B0aW9ucyA9IHtcbiAgICBzdGVwOiBcImluaXRpYWxpemVcIixcbiAgICB0YWdzOiBbXCJMT0NBVElPTl9DT05TVFJBSU5UXCIsIFwiQ1JFQVRFX0JVQ0tFVF9DT05GSUdVUkFUSU9OXCJdLFxuICAgIG5hbWU6IFwibG9jYXRpb25Db25zdHJhaW50TWlkZGxld2FyZVwiLFxuICAgIG92ZXJyaWRlOiB0cnVlLFxufTtcbmNvbnN0IGdldExvY2F0aW9uQ29uc3RyYWludFBsdWdpbiA9IChjb25maWcpID0+ICh7XG4gICAgYXBwbHlUb1N0YWNrOiAoY2xpZW50U3RhY2spID0+IHtcbiAgICAgICAgY2xpZW50U3RhY2suYWRkKGxvY2F0aW9uQ29uc3RyYWludE1pZGRsZXdhcmUoY29uZmlnKSwgbG9jYXRpb25Db25zdHJhaW50TWlkZGxld2FyZU9wdGlvbnMpO1xuICAgIH0sXG59KTtcblxuZXhwb3J0cy5nZXRMb2NhdGlvbkNvbnN0cmFpbnRQbHVnaW4gPSBnZXRMb2NhdGlvbkNvbnN0cmFpbnRQbHVnaW47XG5leHBvcnRzLmxvY2F0aW9uQ29uc3RyYWludE1pZGRsZXdhcmUgPSBsb2NhdGlvbkNvbnN0cmFpbnRNaWRkbGV3YXJlO1xuZXhwb3J0cy5sb2NhdGlvbkNvbnN0cmFpbnRNaWRkbGV3YXJlT3B0aW9ucyA9IGxvY2F0aW9uQ29uc3RyYWludE1pZGRsZXdhcmVPcHRpb25zO1xuIiwgIid1c2Ugc3RyaWN0JztcblxudmFyIG1pZGRsZXdhcmVFeHBlY3RDb250aW51ZSA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL21pZGRsZXdhcmUtZXhwZWN0LWNvbnRpbnVlJyk7XG52YXIgbWlkZGxld2FyZUZsZXhpYmxlQ2hlY2tzdW1zID0gcmVxdWlyZSgnQGF3cy1zZGsvbWlkZGxld2FyZS1mbGV4aWJsZS1jaGVja3N1bXMnKTtcbnZhciBtaWRkbGV3YXJlSG9zdEhlYWRlciA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL21pZGRsZXdhcmUtaG9zdC1oZWFkZXInKTtcbnZhciBtaWRkbGV3YXJlTG9nZ2VyID0gcmVxdWlyZSgnQGF3cy1zZGsvbWlkZGxld2FyZS1sb2dnZXInKTtcbnZhciBtaWRkbGV3YXJlUmVjdXJzaW9uRGV0ZWN0aW9uID0gcmVxdWlyZSgnQGF3cy1zZGsvbWlkZGxld2FyZS1yZWN1cnNpb24tZGV0ZWN0aW9uJyk7XG52YXIgbWlkZGxld2FyZVNka1MzID0gcmVxdWlyZSgnQGF3cy1zZGsvbWlkZGxld2FyZS1zZGstczMnKTtcbnZhciBtaWRkbGV3YXJlVXNlckFnZW50ID0gcmVxdWlyZSgnQGF3cy1zZGsvbWlkZGxld2FyZS11c2VyLWFnZW50Jyk7XG52YXIgY29uZmlnUmVzb2x2ZXIgPSByZXF1aXJlKCdAc21pdGh5L2NvbmZpZy1yZXNvbHZlcicpO1xudmFyIGNvcmUgPSByZXF1aXJlKCdAc21pdGh5L2NvcmUnKTtcbnZhciBzY2hlbWEgPSByZXF1aXJlKCdAc21pdGh5L2NvcmUvc2NoZW1hJyk7XG52YXIgZXZlbnRzdHJlYW1TZXJkZUNvbmZpZ1Jlc29sdmVyID0gcmVxdWlyZSgnQHNtaXRoeS9ldmVudHN0cmVhbS1zZXJkZS1jb25maWctcmVzb2x2ZXInKTtcbnZhciBtaWRkbGV3YXJlQ29udGVudExlbmd0aCA9IHJlcXVpcmUoJ0BzbWl0aHkvbWlkZGxld2FyZS1jb250ZW50LWxlbmd0aCcpO1xudmFyIG1pZGRsZXdhcmVFbmRwb2ludCA9IHJlcXVpcmUoJ0BzbWl0aHkvbWlkZGxld2FyZS1lbmRwb2ludCcpO1xudmFyIG1pZGRsZXdhcmVSZXRyeSA9IHJlcXVpcmUoJ0BzbWl0aHkvbWlkZGxld2FyZS1yZXRyeScpO1xudmFyIHNtaXRoeUNsaWVudCA9IHJlcXVpcmUoJ0BzbWl0aHkvc21pdGh5LWNsaWVudCcpO1xudmFyIGh0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSByZXF1aXJlKCcuL2F1dGgvaHR0cEF1dGhTY2hlbWVQcm92aWRlcicpO1xudmFyIHJ1bnRpbWVDb25maWcgPSByZXF1aXJlKCcuL3J1bnRpbWVDb25maWcnKTtcbnZhciByZWdpb25Db25maWdSZXNvbHZlciA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL3JlZ2lvbi1jb25maWctcmVzb2x2ZXInKTtcbnZhciBwcm90b2NvbEh0dHAgPSByZXF1aXJlKCdAc21pdGh5L3Byb3RvY29sLWh0dHAnKTtcbnZhciBtaWRkbGV3YXJlU3NlYyA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL21pZGRsZXdhcmUtc3NlYycpO1xudmFyIG1pZGRsZXdhcmVMb2NhdGlvbkNvbnN0cmFpbnQgPSByZXF1aXJlKCdAYXdzLXNkay9taWRkbGV3YXJlLWxvY2F0aW9uLWNvbnN0cmFpbnQnKTtcbnZhciB1dGlsV2FpdGVyID0gcmVxdWlyZSgnQHNtaXRoeS91dGlsLXdhaXRlcicpO1xuXG5jb25zdCByZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzID0gKG9wdGlvbnMpID0+IHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihvcHRpb25zLCB7XG4gICAgICAgIHVzZUZpcHNFbmRwb2ludDogb3B0aW9ucy51c2VGaXBzRW5kcG9pbnQgPz8gZmFsc2UsXG4gICAgICAgIHVzZUR1YWxzdGFja0VuZHBvaW50OiBvcHRpb25zLnVzZUR1YWxzdGFja0VuZHBvaW50ID8/IGZhbHNlLFxuICAgICAgICBmb3JjZVBhdGhTdHlsZTogb3B0aW9ucy5mb3JjZVBhdGhTdHlsZSA/PyBmYWxzZSxcbiAgICAgICAgdXNlQWNjZWxlcmF0ZUVuZHBvaW50OiBvcHRpb25zLnVzZUFjY2VsZXJhdGVFbmRwb2ludCA/PyBmYWxzZSxcbiAgICAgICAgdXNlR2xvYmFsRW5kcG9pbnQ6IG9wdGlvbnMudXNlR2xvYmFsRW5kcG9pbnQgPz8gZmFsc2UsXG4gICAgICAgIGRpc2FibGVNdWx0aXJlZ2lvbkFjY2Vzc1BvaW50czogb3B0aW9ucy5kaXNhYmxlTXVsdGlyZWdpb25BY2Nlc3NQb2ludHMgPz8gZmFsc2UsXG4gICAgICAgIGRlZmF1bHRTaWduaW5nTmFtZTogXCJzM1wiLFxuICAgIH0pO1xufTtcbmNvbnN0IGNvbW1vblBhcmFtcyA9IHtcbiAgICBGb3JjZVBhdGhTdHlsZTogeyB0eXBlOiBcImNsaWVudENvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJmb3JjZVBhdGhTdHlsZVwiIH0sXG4gICAgVXNlQXJuUmVnaW9uOiB7IHR5cGU6IFwiY2xpZW50Q29udGV4dFBhcmFtc1wiLCBuYW1lOiBcInVzZUFyblJlZ2lvblwiIH0sXG4gICAgRGlzYWJsZU11bHRpUmVnaW9uQWNjZXNzUG9pbnRzOiB7IHR5cGU6IFwiY2xpZW50Q29udGV4dFBhcmFtc1wiLCBuYW1lOiBcImRpc2FibGVNdWx0aXJlZ2lvbkFjY2Vzc1BvaW50c1wiIH0sXG4gICAgQWNjZWxlcmF0ZTogeyB0eXBlOiBcImNsaWVudENvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJ1c2VBY2NlbGVyYXRlRW5kcG9pbnRcIiB9LFxuICAgIERpc2FibGVTM0V4cHJlc3NTZXNzaW9uQXV0aDogeyB0eXBlOiBcImNsaWVudENvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJkaXNhYmxlUzNFeHByZXNzU2Vzc2lvbkF1dGhcIiB9LFxuICAgIFVzZUdsb2JhbEVuZHBvaW50OiB7IHR5cGU6IFwiYnVpbHRJblBhcmFtc1wiLCBuYW1lOiBcInVzZUdsb2JhbEVuZHBvaW50XCIgfSxcbiAgICBVc2VGSVBTOiB7IHR5cGU6IFwiYnVpbHRJblBhcmFtc1wiLCBuYW1lOiBcInVzZUZpcHNFbmRwb2ludFwiIH0sXG4gICAgRW5kcG9pbnQ6IHsgdHlwZTogXCJidWlsdEluUGFyYW1zXCIsIG5hbWU6IFwiZW5kcG9pbnRcIiB9LFxuICAgIFJlZ2lvbjogeyB0eXBlOiBcImJ1aWx0SW5QYXJhbXNcIiwgbmFtZTogXCJyZWdpb25cIiB9LFxuICAgIFVzZUR1YWxTdGFjazogeyB0eXBlOiBcImJ1aWx0SW5QYXJhbXNcIiwgbmFtZTogXCJ1c2VEdWFsc3RhY2tFbmRwb2ludFwiIH0sXG59O1xuXG5sZXQgUzNTZXJ2aWNlRXhjZXB0aW9uJDEgPSBjbGFzcyBTM1NlcnZpY2VFeGNlcHRpb24gZXh0ZW5kcyBzbWl0aHlDbGllbnQuU2VydmljZUV4Y2VwdGlvbiB7XG4gICAgY29uc3RydWN0b3Iob3B0aW9ucykge1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFMzU2VydmljZUV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn07XG5cbmxldCBOb1N1Y2hVcGxvYWQkMSA9IGNsYXNzIE5vU3VjaFVwbG9hZCBleHRlbmRzIFMzU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJOb1N1Y2hVcGxvYWRcIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJOb1N1Y2hVcGxvYWRcIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgTm9TdWNoVXBsb2FkLnByb3RvdHlwZSk7XG4gICAgfVxufTtcbmxldCBPYmplY3ROb3RJbkFjdGl2ZVRpZXJFcnJvciQxID0gY2xhc3MgT2JqZWN0Tm90SW5BY3RpdmVUaWVyRXJyb3IgZXh0ZW5kcyBTM1NlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiT2JqZWN0Tm90SW5BY3RpdmVUaWVyRXJyb3JcIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJPYmplY3ROb3RJbkFjdGl2ZVRpZXJFcnJvclwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBPYmplY3ROb3RJbkFjdGl2ZVRpZXJFcnJvci5wcm90b3R5cGUpO1xuICAgIH1cbn07XG5sZXQgQnVja2V0QWxyZWFkeUV4aXN0cyQxID0gY2xhc3MgQnVja2V0QWxyZWFkeUV4aXN0cyBleHRlbmRzIFMzU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJCdWNrZXRBbHJlYWR5RXhpc3RzXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiQnVja2V0QWxyZWFkeUV4aXN0c1wiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBCdWNrZXRBbHJlYWR5RXhpc3RzLnByb3RvdHlwZSk7XG4gICAgfVxufTtcbmxldCBCdWNrZXRBbHJlYWR5T3duZWRCeVlvdSQxID0gY2xhc3MgQnVja2V0QWxyZWFkeU93bmVkQnlZb3UgZXh0ZW5kcyBTM1NlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiQnVja2V0QWxyZWFkeU93bmVkQnlZb3VcIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJCdWNrZXRBbHJlYWR5T3duZWRCeVlvdVwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBCdWNrZXRBbHJlYWR5T3duZWRCeVlvdS5wcm90b3R5cGUpO1xuICAgIH1cbn07XG5sZXQgTm9TdWNoQnVja2V0JDEgPSBjbGFzcyBOb1N1Y2hCdWNrZXQgZXh0ZW5kcyBTM1NlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiTm9TdWNoQnVja2V0XCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiTm9TdWNoQnVja2V0XCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIE5vU3VjaEJ1Y2tldC5wcm90b3R5cGUpO1xuICAgIH1cbn07XG5sZXQgSW52YWxpZE9iamVjdFN0YXRlJDEgPSBjbGFzcyBJbnZhbGlkT2JqZWN0U3RhdGUgZXh0ZW5kcyBTM1NlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiSW52YWxpZE9iamVjdFN0YXRlXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBTdG9yYWdlQ2xhc3M7XG4gICAgQWNjZXNzVGllcjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiSW52YWxpZE9iamVjdFN0YXRlXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEludmFsaWRPYmplY3RTdGF0ZS5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLlN0b3JhZ2VDbGFzcyA9IG9wdHMuU3RvcmFnZUNsYXNzO1xuICAgICAgICB0aGlzLkFjY2Vzc1RpZXIgPSBvcHRzLkFjY2Vzc1RpZXI7XG4gICAgfVxufTtcbmxldCBOb1N1Y2hLZXkkMSA9IGNsYXNzIE5vU3VjaEtleSBleHRlbmRzIFMzU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJOb1N1Y2hLZXlcIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJOb1N1Y2hLZXlcIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgTm9TdWNoS2V5LnByb3RvdHlwZSk7XG4gICAgfVxufTtcbmxldCBOb3RGb3VuZCQxID0gY2xhc3MgTm90Rm91bmQgZXh0ZW5kcyBTM1NlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiTm90Rm91bmRcIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJOb3RGb3VuZFwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBOb3RGb3VuZC5wcm90b3R5cGUpO1xuICAgIH1cbn07XG5sZXQgRW5jcnlwdGlvblR5cGVNaXNtYXRjaCQxID0gY2xhc3MgRW5jcnlwdGlvblR5cGVNaXNtYXRjaCBleHRlbmRzIFMzU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJFbmNyeXB0aW9uVHlwZU1pc21hdGNoXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiRW5jcnlwdGlvblR5cGVNaXNtYXRjaFwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBFbmNyeXB0aW9uVHlwZU1pc21hdGNoLnByb3RvdHlwZSk7XG4gICAgfVxufTtcbmxldCBJbnZhbGlkUmVxdWVzdCQxID0gY2xhc3MgSW52YWxpZFJlcXVlc3QgZXh0ZW5kcyBTM1NlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiSW52YWxpZFJlcXVlc3RcIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJJbnZhbGlkUmVxdWVzdFwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBJbnZhbGlkUmVxdWVzdC5wcm90b3R5cGUpO1xuICAgIH1cbn07XG5sZXQgSW52YWxpZFdyaXRlT2Zmc2V0JDEgPSBjbGFzcyBJbnZhbGlkV3JpdGVPZmZzZXQgZXh0ZW5kcyBTM1NlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiSW52YWxpZFdyaXRlT2Zmc2V0XCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiSW52YWxpZFdyaXRlT2Zmc2V0XCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEludmFsaWRXcml0ZU9mZnNldC5wcm90b3R5cGUpO1xuICAgIH1cbn07XG5sZXQgVG9vTWFueVBhcnRzJDEgPSBjbGFzcyBUb29NYW55UGFydHMgZXh0ZW5kcyBTM1NlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiVG9vTWFueVBhcnRzXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiVG9vTWFueVBhcnRzXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFRvb01hbnlQYXJ0cy5wcm90b3R5cGUpO1xuICAgIH1cbn07XG5sZXQgSWRlbXBvdGVuY3lQYXJhbWV0ZXJNaXNtYXRjaCQxID0gY2xhc3MgSWRlbXBvdGVuY3lQYXJhbWV0ZXJNaXNtYXRjaCBleHRlbmRzIFMzU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJJZGVtcG90ZW5jeVBhcmFtZXRlck1pc21hdGNoXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiSWRlbXBvdGVuY3lQYXJhbWV0ZXJNaXNtYXRjaFwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBJZGVtcG90ZW5jeVBhcmFtZXRlck1pc21hdGNoLnByb3RvdHlwZSk7XG4gICAgfVxufTtcbmxldCBPYmplY3RBbHJlYWR5SW5BY3RpdmVUaWVyRXJyb3IkMSA9IGNsYXNzIE9iamVjdEFscmVhZHlJbkFjdGl2ZVRpZXJFcnJvciBleHRlbmRzIFMzU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJPYmplY3RBbHJlYWR5SW5BY3RpdmVUaWVyRXJyb3JcIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJPYmplY3RBbHJlYWR5SW5BY3RpdmVUaWVyRXJyb3JcIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgT2JqZWN0QWxyZWFkeUluQWN0aXZlVGllckVycm9yLnByb3RvdHlwZSk7XG4gICAgfVxufTtcblxuY29uc3QgX0EgPSBcIkFjY291bnRcIjtcbmNvbnN0IF9BQU8gPSBcIkFuYWx5dGljc0FuZE9wZXJhdG9yXCI7XG5jb25zdCBfQUMgPSBcIkFjY2VsZXJhdGVDb25maWd1cmF0aW9uXCI7XG5jb25zdCBfQUNMID0gXCJBY2Nlc3NDb250cm9sTGlzdFwiO1xuY29uc3QgX0FDTF8gPSBcIkFDTFwiO1xuY29uc3QgX0FDTG4gPSBcIkFuYWx5dGljc0NvbmZpZ3VyYXRpb25MaXN0XCI7XG5jb25zdCBfQUNQID0gXCJBY2Nlc3NDb250cm9sUG9saWN5XCI7XG5jb25zdCBfQUNUID0gXCJBY2Nlc3NDb250cm9sVHJhbnNsYXRpb25cIjtcbmNvbnN0IF9BQ24gPSBcIkFuYWx5dGljc0NvbmZpZ3VyYXRpb25cIjtcbmNvbnN0IF9BRCA9IFwiQWJvcnREYXRlXCI7XG5jb25zdCBfQUVEID0gXCJBbmFseXRpY3NFeHBvcnREZXN0aW5hdGlvblwiO1xuY29uc3QgX0FGID0gXCJBbmFseXRpY3NGaWx0ZXJcIjtcbmNvbnN0IF9BSCA9IFwiQWxsb3dlZEhlYWRlcnNcIjtcbmNvbnN0IF9BSGwgPSBcIkFsbG93ZWRIZWFkZXJcIjtcbmNvbnN0IF9BSSA9IFwiQWNjb3VudElkXCI7XG5jb25zdCBfQUlNVSA9IFwiQWJvcnRJbmNvbXBsZXRlTXVsdGlwYXJ0VXBsb2FkXCI7XG5jb25zdCBfQUtJID0gXCJBY2Nlc3NLZXlJZFwiO1xuY29uc3QgX0FNID0gXCJBbGxvd2VkTWV0aG9kc1wiO1xuY29uc3QgX0FNVSA9IFwiQWJvcnRNdWx0aXBhcnRVcGxvYWRcIjtcbmNvbnN0IF9BTVVPID0gXCJBYm9ydE11bHRpcGFydFVwbG9hZE91dHB1dFwiO1xuY29uc3QgX0FNVVIgPSBcIkFib3J0TXVsdGlwYXJ0VXBsb2FkUmVxdWVzdFwiO1xuY29uc3QgX0FNbCA9IFwiQWxsb3dlZE1ldGhvZFwiO1xuY29uc3QgX0FPID0gXCJBbGxvd2VkT3JpZ2luc1wiO1xuY29uc3QgX0FPbCA9IFwiQWxsb3dlZE9yaWdpblwiO1xuY29uc3QgX0FQQSA9IFwiQWNjZXNzUG9pbnRBbGlhc1wiO1xuY29uc3QgX0FQQWMgPSBcIkFjY2Vzc1BvaW50QXJuXCI7XG5jb25zdCBfQVFSRCA9IFwiQWxsb3dRdW90ZWRSZWNvcmREZWxpbWl0ZXJcIjtcbmNvbnN0IF9BUiA9IFwiQWNjZXB0UmFuZ2VzXCI7XG5jb25zdCBfQVJJID0gXCJBYm9ydFJ1bGVJZFwiO1xuY29uc3QgX0FTID0gXCJBYmFjU3RhdHVzXCI7XG5jb25zdCBfQVNCRCA9IFwiQW5hbHl0aWNzUzNCdWNrZXREZXN0aW5hdGlvblwiO1xuY29uc3QgX0FTU0VCRCA9IFwiQXBwbHlTZXJ2ZXJTaWRlRW5jcnlwdGlvbkJ5RGVmYXVsdFwiO1xuY29uc3QgX0FTciA9IFwiQXJjaGl2ZVN0YXR1c1wiO1xuY29uc3QgX0FUID0gXCJBY2Nlc3NUaWVyXCI7XG5jb25zdCBfQW4gPSBcIkFuZFwiO1xuY29uc3QgX0IgPSBcIkJ1Y2tldFwiO1xuY29uc3QgX0JBID0gXCJCdWNrZXRBcm5cIjtcbmNvbnN0IF9CQUUgPSBcIkJ1Y2tldEFscmVhZHlFeGlzdHNcIjtcbmNvbnN0IF9CQUkgPSBcIkJ1Y2tldEFjY291bnRJZFwiO1xuY29uc3QgX0JBT0JZID0gXCJCdWNrZXRBbHJlYWR5T3duZWRCeVlvdVwiO1xuY29uc3QgX0JFVCA9IFwiQmxvY2tlZEVuY3J5cHRpb25UeXBlc1wiO1xuY29uc3QgX0JHUiA9IFwiQnlwYXNzR292ZXJuYW5jZVJldGVudGlvblwiO1xuY29uc3QgX0JJID0gXCJCdWNrZXRJbmZvXCI7XG5jb25zdCBfQktFID0gXCJCdWNrZXRLZXlFbmFibGVkXCI7XG5jb25zdCBfQkxDID0gXCJCdWNrZXRMaWZlY3ljbGVDb25maWd1cmF0aW9uXCI7XG5jb25zdCBfQkxOID0gXCJCdWNrZXRMb2NhdGlvbk5hbWVcIjtcbmNvbnN0IF9CTFMgPSBcIkJ1Y2tldExvZ2dpbmdTdGF0dXNcIjtcbmNvbnN0IF9CTFQgPSBcIkJ1Y2tldExvY2F0aW9uVHlwZVwiO1xuY29uc3QgX0JOID0gXCJCdWNrZXROYW1lXCI7XG5jb25zdCBfQlAgPSBcIkJ5dGVzUHJvY2Vzc2VkXCI7XG5jb25zdCBfQlBBID0gXCJCbG9ja1B1YmxpY0FjbHNcIjtcbmNvbnN0IF9CUFAgPSBcIkJsb2NrUHVibGljUG9saWN5XCI7XG5jb25zdCBfQlIgPSBcIkJ1Y2tldFJlZ2lvblwiO1xuY29uc3QgX0JSeSA9IFwiQnl0ZXNSZXR1cm5lZFwiO1xuY29uc3QgX0JTID0gXCJCeXRlc1NjYW5uZWRcIjtcbmNvbnN0IF9CbyA9IFwiQm9keVwiO1xuY29uc3QgX0J1ID0gXCJCdWNrZXRzXCI7XG5jb25zdCBfQyA9IFwiQ2hlY2tzdW1cIjtcbmNvbnN0IF9DQSA9IFwiQ2hlY2tzdW1BbGdvcml0aG1cIjtcbmNvbnN0IF9DQUNMID0gXCJDYW5uZWRBQ0xcIjtcbmNvbnN0IF9DQiA9IFwiQ3JlYXRlQnVja2V0XCI7XG5jb25zdCBfQ0JDID0gXCJDcmVhdGVCdWNrZXRDb25maWd1cmF0aW9uXCI7XG5jb25zdCBfQ0JNQyA9IFwiQ3JlYXRlQnVja2V0TWV0YWRhdGFDb25maWd1cmF0aW9uXCI7XG5jb25zdCBfQ0JNQ1IgPSBcIkNyZWF0ZUJ1Y2tldE1ldGFkYXRhQ29uZmlndXJhdGlvblJlcXVlc3RcIjtcbmNvbnN0IF9DQk1UQyA9IFwiQ3JlYXRlQnVja2V0TWV0YWRhdGFUYWJsZUNvbmZpZ3VyYXRpb25cIjtcbmNvbnN0IF9DQk1UQ1IgPSBcIkNyZWF0ZUJ1Y2tldE1ldGFkYXRhVGFibGVDb25maWd1cmF0aW9uUmVxdWVzdFwiO1xuY29uc3QgX0NCTyA9IFwiQ3JlYXRlQnVja2V0T3V0cHV0XCI7XG5jb25zdCBfQ0JSID0gXCJDcmVhdGVCdWNrZXRSZXF1ZXN0XCI7XG5jb25zdCBfQ0MgPSBcIkNhY2hlQ29udHJvbFwiO1xuY29uc3QgX0NDUkMgPSBcIkNoZWNrc3VtQ1JDMzJcIjtcbmNvbnN0IF9DQ1JDQyA9IFwiQ2hlY2tzdW1DUkMzMkNcIjtcbmNvbnN0IF9DQ1JDTlZNRSA9IFwiQ2hlY2tzdW1DUkM2NE5WTUVcIjtcbmNvbnN0IF9DQ18gPSBcIkNhY2hlLUNvbnRyb2xcIjtcbmNvbnN0IF9DRCA9IFwiQ3JlYXRpb25EYXRlXCI7XG5jb25zdCBfQ0RfID0gXCJDb250ZW50LURpc3Bvc2l0aW9uXCI7XG5jb25zdCBfQ0RvID0gXCJDb250ZW50RGlzcG9zaXRpb25cIjtcbmNvbnN0IF9DRSA9IFwiQ29udGludWF0aW9uRXZlbnRcIjtcbmNvbnN0IF9DRV8gPSBcIkNvbnRlbnQtRW5jb2RpbmdcIjtcbmNvbnN0IF9DRW8gPSBcIkNvbnRlbnRFbmNvZGluZ1wiO1xuY29uc3QgX0NGID0gXCJDbG91ZEZ1bmN0aW9uXCI7XG5jb25zdCBfQ0ZDID0gXCJDbG91ZEZ1bmN0aW9uQ29uZmlndXJhdGlvblwiO1xuY29uc3QgX0NMID0gXCJDb250ZW50TGFuZ3VhZ2VcIjtcbmNvbnN0IF9DTF8gPSBcIkNvbnRlbnQtTGFuZ3VhZ2VcIjtcbmNvbnN0IF9DTF9fID0gXCJDb250ZW50LUxlbmd0aFwiO1xuY29uc3QgX0NMbyA9IFwiQ29udGVudExlbmd0aFwiO1xuY29uc3QgX0NNID0gXCJDb250ZW50LU1ENVwiO1xuY29uc3QgX0NNRCA9IFwiQ29udGVudE1ENVwiO1xuY29uc3QgX0NNVSA9IFwiQ29tcGxldGVkTXVsdGlwYXJ0VXBsb2FkXCI7XG5jb25zdCBfQ01VTyA9IFwiQ29tcGxldGVNdWx0aXBhcnRVcGxvYWRPdXRwdXRcIjtcbmNvbnN0IF9DTVVPciA9IFwiQ3JlYXRlTXVsdGlwYXJ0VXBsb2FkT3V0cHV0XCI7XG5jb25zdCBfQ01VUiA9IFwiQ29tcGxldGVNdWx0aXBhcnRVcGxvYWRSZXN1bHRcIjtcbmNvbnN0IF9DTVVSbyA9IFwiQ29tcGxldGVNdWx0aXBhcnRVcGxvYWRSZXF1ZXN0XCI7XG5jb25zdCBfQ01VUnIgPSBcIkNyZWF0ZU11bHRpcGFydFVwbG9hZFJlcXVlc3RcIjtcbmNvbnN0IF9DTVVvID0gXCJDb21wbGV0ZU11bHRpcGFydFVwbG9hZFwiO1xuY29uc3QgX0NNVXIgPSBcIkNyZWF0ZU11bHRpcGFydFVwbG9hZFwiO1xuY29uc3QgX0NNaCA9IFwiQ2hlY2tzdW1Nb2RlXCI7XG5jb25zdCBfQ08gPSBcIkNvcHlPYmplY3RcIjtcbmNvbnN0IF9DT08gPSBcIkNvcHlPYmplY3RPdXRwdXRcIjtcbmNvbnN0IF9DT1IgPSBcIkNvcHlPYmplY3RSZXN1bHRcIjtcbmNvbnN0IF9DT1JTQyA9IFwiQ09SU0NvbmZpZ3VyYXRpb25cIjtcbmNvbnN0IF9DT1JTUiA9IFwiQ09SU1J1bGVzXCI7XG5jb25zdCBfQ09SU1J1ID0gXCJDT1JTUnVsZVwiO1xuY29uc3QgX0NPUm8gPSBcIkNvcHlPYmplY3RSZXF1ZXN0XCI7XG5jb25zdCBfQ1AgPSBcIkNvbW1vblByZWZpeFwiO1xuY29uc3QgX0NQTCA9IFwiQ29tbW9uUHJlZml4TGlzdFwiO1xuY29uc3QgX0NQTG8gPSBcIkNvbXBsZXRlZFBhcnRMaXN0XCI7XG5jb25zdCBfQ1BSID0gXCJDb3B5UGFydFJlc3VsdFwiO1xuY29uc3QgX0NQbyA9IFwiQ29tcGxldGVkUGFydFwiO1xuY29uc3QgX0NQb20gPSBcIkNvbW1vblByZWZpeGVzXCI7XG5jb25zdCBfQ1IgPSBcIkNvbnRlbnRSYW5nZVwiO1xuY29uc3QgX0NSU0JBID0gXCJDb25maXJtUmVtb3ZlU2VsZkJ1Y2tldEFjY2Vzc1wiO1xuY29uc3QgX0NSXyA9IFwiQ29udGVudC1SYW5nZVwiO1xuY29uc3QgX0NTID0gXCJDb3B5U291cmNlXCI7XG5jb25zdCBfQ1NIQSA9IFwiQ2hlY2tzdW1TSEExXCI7XG5jb25zdCBfQ1NIQWggPSBcIkNoZWNrc3VtU0hBMjU2XCI7XG5jb25zdCBfQ1NJTSA9IFwiQ29weVNvdXJjZUlmTWF0Y2hcIjtcbmNvbnN0IF9DU0lNUyA9IFwiQ29weVNvdXJjZUlmTW9kaWZpZWRTaW5jZVwiO1xuY29uc3QgX0NTSU5NID0gXCJDb3B5U291cmNlSWZOb25lTWF0Y2hcIjtcbmNvbnN0IF9DU0lVUyA9IFwiQ29weVNvdXJjZUlmVW5tb2RpZmllZFNpbmNlXCI7XG5jb25zdCBfQ1NPID0gXCJDcmVhdGVTZXNzaW9uT3V0cHV0XCI7XG5jb25zdCBfQ1NSID0gXCJDcmVhdGVTZXNzaW9uUmVzdWx0XCI7XG5jb25zdCBfQ1NSbyA9IFwiQ29weVNvdXJjZVJhbmdlXCI7XG5jb25zdCBfQ1NSciA9IFwiQ3JlYXRlU2Vzc2lvblJlcXVlc3RcIjtcbmNvbnN0IF9DU1NTRUNBID0gXCJDb3B5U291cmNlU1NFQ3VzdG9tZXJBbGdvcml0aG1cIjtcbmNvbnN0IF9DU1NTRUNLID0gXCJDb3B5U291cmNlU1NFQ3VzdG9tZXJLZXlcIjtcbmNvbnN0IF9DU1NTRUNLTUQgPSBcIkNvcHlTb3VyY2VTU0VDdXN0b21lcktleU1ENVwiO1xuY29uc3QgX0NTViA9IFwiQ1NWXCI7XG5jb25zdCBfQ1NWSSA9IFwiQ29weVNvdXJjZVZlcnNpb25JZFwiO1xuY29uc3QgX0NTVkluID0gXCJDU1ZJbnB1dFwiO1xuY29uc3QgX0NTVk8gPSBcIkNTVk91dHB1dFwiO1xuY29uc3QgX0NTbyA9IFwiQ29uZmlndXJhdGlvblN0YXRlXCI7XG5jb25zdCBfQ1NyID0gXCJDcmVhdGVTZXNzaW9uXCI7XG5jb25zdCBfQ1QgPSBcIkNoZWNrc3VtVHlwZVwiO1xuY29uc3QgX0NUXyA9IFwiQ29udGVudC1UeXBlXCI7XG5jb25zdCBfQ1RsID0gXCJDbGllbnRUb2tlblwiO1xuY29uc3QgX0NUbyA9IFwiQ29udGVudFR5cGVcIjtcbmNvbnN0IF9DVG9tID0gXCJDb21wcmVzc2lvblR5cGVcIjtcbmNvbnN0IF9DVG9uID0gXCJDb250aW51YXRpb25Ub2tlblwiO1xuY29uc3QgX0NvID0gXCJDb25kaXRpb25cIjtcbmNvbnN0IF9Db2QgPSBcIkNvZGVcIjtcbmNvbnN0IF9Db20gPSBcIkNvbW1lbnRzXCI7XG5jb25zdCBfQ29uID0gXCJDb250ZW50c1wiO1xuY29uc3QgX0NvbnQgPSBcIkNvbnRcIjtcbmNvbnN0IF9DciA9IFwiQ3JlZGVudGlhbHNcIjtcbmNvbnN0IF9EID0gXCJEYXlzXCI7XG5jb25zdCBfREFJID0gXCJEYXlzQWZ0ZXJJbml0aWF0aW9uXCI7XG5jb25zdCBfREIgPSBcIkRlbGV0ZUJ1Y2tldFwiO1xuY29uc3QgX0RCQUMgPSBcIkRlbGV0ZUJ1Y2tldEFuYWx5dGljc0NvbmZpZ3VyYXRpb25cIjtcbmNvbnN0IF9EQkFDUiA9IFwiRGVsZXRlQnVja2V0QW5hbHl0aWNzQ29uZmlndXJhdGlvblJlcXVlc3RcIjtcbmNvbnN0IF9EQkMgPSBcIkRlbGV0ZUJ1Y2tldENvcnNcIjtcbmNvbnN0IF9EQkNSID0gXCJEZWxldGVCdWNrZXRDb3JzUmVxdWVzdFwiO1xuY29uc3QgX0RCRSA9IFwiRGVsZXRlQnVja2V0RW5jcnlwdGlvblwiO1xuY29uc3QgX0RCRVIgPSBcIkRlbGV0ZUJ1Y2tldEVuY3J5cHRpb25SZXF1ZXN0XCI7XG5jb25zdCBfREJJQyA9IFwiRGVsZXRlQnVja2V0SW52ZW50b3J5Q29uZmlndXJhdGlvblwiO1xuY29uc3QgX0RCSUNSID0gXCJEZWxldGVCdWNrZXRJbnZlbnRvcnlDb25maWd1cmF0aW9uUmVxdWVzdFwiO1xuY29uc3QgX0RCSVRDID0gXCJEZWxldGVCdWNrZXRJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9uXCI7XG5jb25zdCBfREJJVENSID0gXCJEZWxldGVCdWNrZXRJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9uUmVxdWVzdFwiO1xuY29uc3QgX0RCTCA9IFwiRGVsZXRlQnVja2V0TGlmZWN5Y2xlXCI7XG5jb25zdCBfREJMUiA9IFwiRGVsZXRlQnVja2V0TGlmZWN5Y2xlUmVxdWVzdFwiO1xuY29uc3QgX0RCTUMgPSBcIkRlbGV0ZUJ1Y2tldE1ldGFkYXRhQ29uZmlndXJhdGlvblwiO1xuY29uc3QgX0RCTUNSID0gXCJEZWxldGVCdWNrZXRNZXRhZGF0YUNvbmZpZ3VyYXRpb25SZXF1ZXN0XCI7XG5jb25zdCBfREJNQ1JlID0gXCJEZWxldGVCdWNrZXRNZXRyaWNzQ29uZmlndXJhdGlvblJlcXVlc3RcIjtcbmNvbnN0IF9EQk1DZSA9IFwiRGVsZXRlQnVja2V0TWV0cmljc0NvbmZpZ3VyYXRpb25cIjtcbmNvbnN0IF9EQk1UQyA9IFwiRGVsZXRlQnVja2V0TWV0YWRhdGFUYWJsZUNvbmZpZ3VyYXRpb25cIjtcbmNvbnN0IF9EQk1UQ1IgPSBcIkRlbGV0ZUJ1Y2tldE1ldGFkYXRhVGFibGVDb25maWd1cmF0aW9uUmVxdWVzdFwiO1xuY29uc3QgX0RCT0MgPSBcIkRlbGV0ZUJ1Y2tldE93bmVyc2hpcENvbnRyb2xzXCI7XG5jb25zdCBfREJPQ1IgPSBcIkRlbGV0ZUJ1Y2tldE93bmVyc2hpcENvbnRyb2xzUmVxdWVzdFwiO1xuY29uc3QgX0RCUCA9IFwiRGVsZXRlQnVja2V0UG9saWN5XCI7XG5jb25zdCBfREJQUiA9IFwiRGVsZXRlQnVja2V0UG9saWN5UmVxdWVzdFwiO1xuY29uc3QgX0RCUiA9IFwiRGVsZXRlQnVja2V0UmVxdWVzdFwiO1xuY29uc3QgX0RCUlIgPSBcIkRlbGV0ZUJ1Y2tldFJlcGxpY2F0aW9uUmVxdWVzdFwiO1xuY29uc3QgX0RCUmUgPSBcIkRlbGV0ZUJ1Y2tldFJlcGxpY2F0aW9uXCI7XG5jb25zdCBfREJUID0gXCJEZWxldGVCdWNrZXRUYWdnaW5nXCI7XG5jb25zdCBfREJUUiA9IFwiRGVsZXRlQnVja2V0VGFnZ2luZ1JlcXVlc3RcIjtcbmNvbnN0IF9EQlcgPSBcIkRlbGV0ZUJ1Y2tldFdlYnNpdGVcIjtcbmNvbnN0IF9EQldSID0gXCJEZWxldGVCdWNrZXRXZWJzaXRlUmVxdWVzdFwiO1xuY29uc3QgX0RFID0gXCJEYXRhRXhwb3J0XCI7XG5jb25zdCBfRElNID0gXCJEZXN0aW5hdGlvbklmTWF0Y2hcIjtcbmNvbnN0IF9ESU1TID0gXCJEZXN0aW5hdGlvbklmTW9kaWZpZWRTaW5jZVwiO1xuY29uc3QgX0RJTk0gPSBcIkRlc3RpbmF0aW9uSWZOb25lTWF0Y2hcIjtcbmNvbnN0IF9ESVVTID0gXCJEZXN0aW5hdGlvbklmVW5tb2RpZmllZFNpbmNlXCI7XG5jb25zdCBfRE0gPSBcIkRlbGV0ZU1hcmtlclwiO1xuY29uc3QgX0RNRSA9IFwiRGVsZXRlTWFya2VyRW50cnlcIjtcbmNvbnN0IF9ETVIgPSBcIkRlbGV0ZU1hcmtlclJlcGxpY2F0aW9uXCI7XG5jb25zdCBfRE1WSSA9IFwiRGVsZXRlTWFya2VyVmVyc2lvbklkXCI7XG5jb25zdCBfRE1lID0gXCJEZWxldGVNYXJrZXJzXCI7XG5jb25zdCBfRE4gPSBcIkRpc3BsYXlOYW1lXCI7XG5jb25zdCBfRE8gPSBcIkRlbGV0ZWRPYmplY3RcIjtcbmNvbnN0IF9ET08gPSBcIkRlbGV0ZU9iamVjdE91dHB1dFwiO1xuY29uc3QgX0RPT2UgPSBcIkRlbGV0ZU9iamVjdHNPdXRwdXRcIjtcbmNvbnN0IF9ET1IgPSBcIkRlbGV0ZU9iamVjdFJlcXVlc3RcIjtcbmNvbnN0IF9ET1JlID0gXCJEZWxldGVPYmplY3RzUmVxdWVzdFwiO1xuY29uc3QgX0RPVCA9IFwiRGVsZXRlT2JqZWN0VGFnZ2luZ1wiO1xuY29uc3QgX0RPVE8gPSBcIkRlbGV0ZU9iamVjdFRhZ2dpbmdPdXRwdXRcIjtcbmNvbnN0IF9ET1RSID0gXCJEZWxldGVPYmplY3RUYWdnaW5nUmVxdWVzdFwiO1xuY29uc3QgX0RPZSA9IFwiRGVsZXRlZE9iamVjdHNcIjtcbmNvbnN0IF9ET2VsID0gXCJEZWxldGVPYmplY3RcIjtcbmNvbnN0IF9ET2VsZSA9IFwiRGVsZXRlT2JqZWN0c1wiO1xuY29uc3QgX0RQQUIgPSBcIkRlbGV0ZVB1YmxpY0FjY2Vzc0Jsb2NrXCI7XG5jb25zdCBfRFBBQlIgPSBcIkRlbGV0ZVB1YmxpY0FjY2Vzc0Jsb2NrUmVxdWVzdFwiO1xuY29uc3QgX0RSID0gXCJEYXRhUmVkdW5kYW5jeVwiO1xuY29uc3QgX0RSZSA9IFwiRGVmYXVsdFJldGVudGlvblwiO1xuY29uc3QgX0RSZWwgPSBcIkRlbGV0ZVJlc3VsdFwiO1xuY29uc3QgX0RSZXMgPSBcIkRlc3RpbmF0aW9uUmVzdWx0XCI7XG5jb25zdCBfRGEgPSBcIkRhdGVcIjtcbmNvbnN0IF9EZSA9IFwiRGVsZXRlXCI7XG5jb25zdCBfRGVsID0gXCJEZWxldGVkXCI7XG5jb25zdCBfRGVsaSA9IFwiRGVsaW1pdGVyXCI7XG5jb25zdCBfRGVzID0gXCJEZXN0aW5hdGlvblwiO1xuY29uc3QgX0Rlc2MgPSBcIkRlc2NyaXB0aW9uXCI7XG5jb25zdCBfRGV0ID0gXCJEZXRhaWxzXCI7XG5jb25zdCBfRSA9IFwiRXhwaXJhdGlvblwiO1xuY29uc3QgX0VBID0gXCJFbWFpbEFkZHJlc3NcIjtcbmNvbnN0IF9FQkMgPSBcIkV2ZW50QnJpZGdlQ29uZmlndXJhdGlvblwiO1xuY29uc3QgX0VCTyA9IFwiRXhwZWN0ZWRCdWNrZXRPd25lclwiO1xuY29uc3QgX0VDID0gXCJFbmNyeXB0aW9uQ29uZmlndXJhdGlvblwiO1xuY29uc3QgX0VDciA9IFwiRXJyb3JDb2RlXCI7XG5jb25zdCBfRUQgPSBcIkVycm9yRGV0YWlsc1wiO1xuY29uc3QgX0VEciA9IFwiRXJyb3JEb2N1bWVudFwiO1xuY29uc3QgX0VFID0gXCJFbmRFdmVudFwiO1xuY29uc3QgX0VIID0gXCJFeHBvc2VIZWFkZXJzXCI7XG5jb25zdCBfRUh4ID0gXCJFeHBvc2VIZWFkZXJcIjtcbmNvbnN0IF9FTSA9IFwiRXJyb3JNZXNzYWdlXCI7XG5jb25zdCBfRU9ETSA9IFwiRXhwaXJlZE9iamVjdERlbGV0ZU1hcmtlclwiO1xuY29uc3QgX0VPUiA9IFwiRXhpc3RpbmdPYmplY3RSZXBsaWNhdGlvblwiO1xuY29uc3QgX0VTID0gXCJFeHBpcmVzU3RyaW5nXCI7XG5jb25zdCBfRVNCTyA9IFwiRXhwZWN0ZWRTb3VyY2VCdWNrZXRPd25lclwiO1xuY29uc3QgX0VUID0gXCJFbmNyeXB0aW9uVHlwZVwiO1xuY29uc3QgX0VUTCA9IFwiRW5jcnlwdGlvblR5cGVMaXN0XCI7XG5jb25zdCBfRVRNID0gXCJFbmNyeXB0aW9uVHlwZU1pc21hdGNoXCI7XG5jb25zdCBfRVRhID0gXCJFVGFnXCI7XG5jb25zdCBfRVRuID0gXCJFbmNvZGluZ1R5cGVcIjtcbmNvbnN0IF9FVHYgPSBcIkV2ZW50VGhyZXNob2xkXCI7XG5jb25zdCBfRVR4ID0gXCJFeHByZXNzaW9uVHlwZVwiO1xuY29uc3QgX0VuID0gXCJFbmNyeXB0aW9uXCI7XG5jb25zdCBfRW5hID0gXCJFbmFibGVkXCI7XG5jb25zdCBfRW5kID0gXCJFbmRcIjtcbmNvbnN0IF9FciA9IFwiRXJyb3JzXCI7XG5jb25zdCBfRXJyID0gXCJFcnJvclwiO1xuY29uc3QgX0V2ID0gXCJFdmVudHNcIjtcbmNvbnN0IF9FdmUgPSBcIkV2ZW50XCI7XG5jb25zdCBfRXggPSBcIkV4cGlyZXNcIjtcbmNvbnN0IF9FeHAgPSBcIkV4cHJlc3Npb25cIjtcbmNvbnN0IF9GID0gXCJGaWx0ZXJcIjtcbmNvbnN0IF9GRCA9IFwiRmllbGREZWxpbWl0ZXJcIjtcbmNvbnN0IF9GSEkgPSBcIkZpbGVIZWFkZXJJbmZvXCI7XG5jb25zdCBfRk8gPSBcIkZldGNoT3duZXJcIjtcbmNvbnN0IF9GUiA9IFwiRmlsdGVyUnVsZVwiO1xuY29uc3QgX0ZSTCA9IFwiRmlsdGVyUnVsZUxpc3RcIjtcbmNvbnN0IF9GUmkgPSBcIkZpbHRlclJ1bGVzXCI7XG5jb25zdCBfRmkgPSBcIkZpZWxkXCI7XG5jb25zdCBfRm8gPSBcIkZvcm1hdFwiO1xuY29uc3QgX0ZyID0gXCJGcmVxdWVuY3lcIjtcbmNvbnN0IF9HID0gXCJHcmFudHNcIjtcbmNvbnN0IF9HQkEgPSBcIkdldEJ1Y2tldEFiYWNcIjtcbmNvbnN0IF9HQkFDID0gXCJHZXRCdWNrZXRBY2NlbGVyYXRlQ29uZmlndXJhdGlvblwiO1xuY29uc3QgX0dCQUNPID0gXCJHZXRCdWNrZXRBY2NlbGVyYXRlQ29uZmlndXJhdGlvbk91dHB1dFwiO1xuY29uc3QgX0dCQUNPZSA9IFwiR2V0QnVja2V0QW5hbHl0aWNzQ29uZmlndXJhdGlvbk91dHB1dFwiO1xuY29uc3QgX0dCQUNSID0gXCJHZXRCdWNrZXRBY2NlbGVyYXRlQ29uZmlndXJhdGlvblJlcXVlc3RcIjtcbmNvbnN0IF9HQkFDUmUgPSBcIkdldEJ1Y2tldEFuYWx5dGljc0NvbmZpZ3VyYXRpb25SZXF1ZXN0XCI7XG5jb25zdCBfR0JBQ2UgPSBcIkdldEJ1Y2tldEFuYWx5dGljc0NvbmZpZ3VyYXRpb25cIjtcbmNvbnN0IF9HQkFPID0gXCJHZXRCdWNrZXRBYmFjT3V0cHV0XCI7XG5jb25zdCBfR0JBT2UgPSBcIkdldEJ1Y2tldEFjbE91dHB1dFwiO1xuY29uc3QgX0dCQVIgPSBcIkdldEJ1Y2tldEFiYWNSZXF1ZXN0XCI7XG5jb25zdCBfR0JBUmUgPSBcIkdldEJ1Y2tldEFjbFJlcXVlc3RcIjtcbmNvbnN0IF9HQkFlID0gXCJHZXRCdWNrZXRBY2xcIjtcbmNvbnN0IF9HQkMgPSBcIkdldEJ1Y2tldENvcnNcIjtcbmNvbnN0IF9HQkNPID0gXCJHZXRCdWNrZXRDb3JzT3V0cHV0XCI7XG5jb25zdCBfR0JDUiA9IFwiR2V0QnVja2V0Q29yc1JlcXVlc3RcIjtcbmNvbnN0IF9HQkUgPSBcIkdldEJ1Y2tldEVuY3J5cHRpb25cIjtcbmNvbnN0IF9HQkVPID0gXCJHZXRCdWNrZXRFbmNyeXB0aW9uT3V0cHV0XCI7XG5jb25zdCBfR0JFUiA9IFwiR2V0QnVja2V0RW5jcnlwdGlvblJlcXVlc3RcIjtcbmNvbnN0IF9HQklDID0gXCJHZXRCdWNrZXRJbnZlbnRvcnlDb25maWd1cmF0aW9uXCI7XG5jb25zdCBfR0JJQ08gPSBcIkdldEJ1Y2tldEludmVudG9yeUNvbmZpZ3VyYXRpb25PdXRwdXRcIjtcbmNvbnN0IF9HQklDUiA9IFwiR2V0QnVja2V0SW52ZW50b3J5Q29uZmlndXJhdGlvblJlcXVlc3RcIjtcbmNvbnN0IF9HQklUQyA9IFwiR2V0QnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvblwiO1xuY29uc3QgX0dCSVRDTyA9IFwiR2V0QnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvbk91dHB1dFwiO1xuY29uc3QgX0dCSVRDUiA9IFwiR2V0QnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvblJlcXVlc3RcIjtcbmNvbnN0IF9HQkwgPSBcIkdldEJ1Y2tldExvY2F0aW9uXCI7XG5jb25zdCBfR0JMQyA9IFwiR2V0QnVja2V0TGlmZWN5Y2xlQ29uZmlndXJhdGlvblwiO1xuY29uc3QgX0dCTENPID0gXCJHZXRCdWNrZXRMaWZlY3ljbGVDb25maWd1cmF0aW9uT3V0cHV0XCI7XG5jb25zdCBfR0JMQ1IgPSBcIkdldEJ1Y2tldExpZmVjeWNsZUNvbmZpZ3VyYXRpb25SZXF1ZXN0XCI7XG5jb25zdCBfR0JMTyA9IFwiR2V0QnVja2V0TG9jYXRpb25PdXRwdXRcIjtcbmNvbnN0IF9HQkxPZSA9IFwiR2V0QnVja2V0TG9nZ2luZ091dHB1dFwiO1xuY29uc3QgX0dCTFIgPSBcIkdldEJ1Y2tldExvY2F0aW9uUmVxdWVzdFwiO1xuY29uc3QgX0dCTFJlID0gXCJHZXRCdWNrZXRMb2dnaW5nUmVxdWVzdFwiO1xuY29uc3QgX0dCTGUgPSBcIkdldEJ1Y2tldExvZ2dpbmdcIjtcbmNvbnN0IF9HQk1DID0gXCJHZXRCdWNrZXRNZXRhZGF0YUNvbmZpZ3VyYXRpb25cIjtcbmNvbnN0IF9HQk1DTyA9IFwiR2V0QnVja2V0TWV0YWRhdGFDb25maWd1cmF0aW9uT3V0cHV0XCI7XG5jb25zdCBfR0JNQ09lID0gXCJHZXRCdWNrZXRNZXRyaWNzQ29uZmlndXJhdGlvbk91dHB1dFwiO1xuY29uc3QgX0dCTUNSID0gXCJHZXRCdWNrZXRNZXRhZGF0YUNvbmZpZ3VyYXRpb25SZXN1bHRcIjtcbmNvbnN0IF9HQk1DUmUgPSBcIkdldEJ1Y2tldE1ldGFkYXRhQ29uZmlndXJhdGlvblJlcXVlc3RcIjtcbmNvbnN0IF9HQk1DUmV0ID0gXCJHZXRCdWNrZXRNZXRyaWNzQ29uZmlndXJhdGlvblJlcXVlc3RcIjtcbmNvbnN0IF9HQk1DZSA9IFwiR2V0QnVja2V0TWV0cmljc0NvbmZpZ3VyYXRpb25cIjtcbmNvbnN0IF9HQk1UQyA9IFwiR2V0QnVja2V0TWV0YWRhdGFUYWJsZUNvbmZpZ3VyYXRpb25cIjtcbmNvbnN0IF9HQk1UQ08gPSBcIkdldEJ1Y2tldE1ldGFkYXRhVGFibGVDb25maWd1cmF0aW9uT3V0cHV0XCI7XG5jb25zdCBfR0JNVENSID0gXCJHZXRCdWNrZXRNZXRhZGF0YVRhYmxlQ29uZmlndXJhdGlvblJlc3VsdFwiO1xuY29uc3QgX0dCTVRDUmUgPSBcIkdldEJ1Y2tldE1ldGFkYXRhVGFibGVDb25maWd1cmF0aW9uUmVxdWVzdFwiO1xuY29uc3QgX0dCTkMgPSBcIkdldEJ1Y2tldE5vdGlmaWNhdGlvbkNvbmZpZ3VyYXRpb25cIjtcbmNvbnN0IF9HQk5DUiA9IFwiR2V0QnVja2V0Tm90aWZpY2F0aW9uQ29uZmlndXJhdGlvblJlcXVlc3RcIjtcbmNvbnN0IF9HQk9DID0gXCJHZXRCdWNrZXRPd25lcnNoaXBDb250cm9sc1wiO1xuY29uc3QgX0dCT0NPID0gXCJHZXRCdWNrZXRPd25lcnNoaXBDb250cm9sc091dHB1dFwiO1xuY29uc3QgX0dCT0NSID0gXCJHZXRCdWNrZXRPd25lcnNoaXBDb250cm9sc1JlcXVlc3RcIjtcbmNvbnN0IF9HQlAgPSBcIkdldEJ1Y2tldFBvbGljeVwiO1xuY29uc3QgX0dCUE8gPSBcIkdldEJ1Y2tldFBvbGljeU91dHB1dFwiO1xuY29uc3QgX0dCUFIgPSBcIkdldEJ1Y2tldFBvbGljeVJlcXVlc3RcIjtcbmNvbnN0IF9HQlBTID0gXCJHZXRCdWNrZXRQb2xpY3lTdGF0dXNcIjtcbmNvbnN0IF9HQlBTTyA9IFwiR2V0QnVja2V0UG9saWN5U3RhdHVzT3V0cHV0XCI7XG5jb25zdCBfR0JQU1IgPSBcIkdldEJ1Y2tldFBvbGljeVN0YXR1c1JlcXVlc3RcIjtcbmNvbnN0IF9HQlIgPSBcIkdldEJ1Y2tldFJlcGxpY2F0aW9uXCI7XG5jb25zdCBfR0JSTyA9IFwiR2V0QnVja2V0UmVwbGljYXRpb25PdXRwdXRcIjtcbmNvbnN0IF9HQlJQID0gXCJHZXRCdWNrZXRSZXF1ZXN0UGF5bWVudFwiO1xuY29uc3QgX0dCUlBPID0gXCJHZXRCdWNrZXRSZXF1ZXN0UGF5bWVudE91dHB1dFwiO1xuY29uc3QgX0dCUlBSID0gXCJHZXRCdWNrZXRSZXF1ZXN0UGF5bWVudFJlcXVlc3RcIjtcbmNvbnN0IF9HQlJSID0gXCJHZXRCdWNrZXRSZXBsaWNhdGlvblJlcXVlc3RcIjtcbmNvbnN0IF9HQlQgPSBcIkdldEJ1Y2tldFRhZ2dpbmdcIjtcbmNvbnN0IF9HQlRPID0gXCJHZXRCdWNrZXRUYWdnaW5nT3V0cHV0XCI7XG5jb25zdCBfR0JUUiA9IFwiR2V0QnVja2V0VGFnZ2luZ1JlcXVlc3RcIjtcbmNvbnN0IF9HQlYgPSBcIkdldEJ1Y2tldFZlcnNpb25pbmdcIjtcbmNvbnN0IF9HQlZPID0gXCJHZXRCdWNrZXRWZXJzaW9uaW5nT3V0cHV0XCI7XG5jb25zdCBfR0JWUiA9IFwiR2V0QnVja2V0VmVyc2lvbmluZ1JlcXVlc3RcIjtcbmNvbnN0IF9HQlcgPSBcIkdldEJ1Y2tldFdlYnNpdGVcIjtcbmNvbnN0IF9HQldPID0gXCJHZXRCdWNrZXRXZWJzaXRlT3V0cHV0XCI7XG5jb25zdCBfR0JXUiA9IFwiR2V0QnVja2V0V2Vic2l0ZVJlcXVlc3RcIjtcbmNvbnN0IF9HRkMgPSBcIkdyYW50RnVsbENvbnRyb2xcIjtcbmNvbnN0IF9HSlAgPSBcIkdsYWNpZXJKb2JQYXJhbWV0ZXJzXCI7XG5jb25zdCBfR08gPSBcIkdldE9iamVjdFwiO1xuY29uc3QgX0dPQSA9IFwiR2V0T2JqZWN0QWNsXCI7XG5jb25zdCBfR09BTyA9IFwiR2V0T2JqZWN0QWNsT3V0cHV0XCI7XG5jb25zdCBfR09BT2UgPSBcIkdldE9iamVjdEF0dHJpYnV0ZXNPdXRwdXRcIjtcbmNvbnN0IF9HT0FQID0gXCJHZXRPYmplY3RBdHRyaWJ1dGVzUGFydHNcIjtcbmNvbnN0IF9HT0FSID0gXCJHZXRPYmplY3RBY2xSZXF1ZXN0XCI7XG5jb25zdCBfR09BUmUgPSBcIkdldE9iamVjdEF0dHJpYnV0ZXNSZXNwb25zZVwiO1xuY29uc3QgX0dPQVJldCA9IFwiR2V0T2JqZWN0QXR0cmlidXRlc1JlcXVlc3RcIjtcbmNvbnN0IF9HT0FlID0gXCJHZXRPYmplY3RBdHRyaWJ1dGVzXCI7XG5jb25zdCBfR09MQyA9IFwiR2V0T2JqZWN0TG9ja0NvbmZpZ3VyYXRpb25cIjtcbmNvbnN0IF9HT0xDTyA9IFwiR2V0T2JqZWN0TG9ja0NvbmZpZ3VyYXRpb25PdXRwdXRcIjtcbmNvbnN0IF9HT0xDUiA9IFwiR2V0T2JqZWN0TG9ja0NvbmZpZ3VyYXRpb25SZXF1ZXN0XCI7XG5jb25zdCBfR09MSCA9IFwiR2V0T2JqZWN0TGVnYWxIb2xkXCI7XG5jb25zdCBfR09MSE8gPSBcIkdldE9iamVjdExlZ2FsSG9sZE91dHB1dFwiO1xuY29uc3QgX0dPTEhSID0gXCJHZXRPYmplY3RMZWdhbEhvbGRSZXF1ZXN0XCI7XG5jb25zdCBfR09PID0gXCJHZXRPYmplY3RPdXRwdXRcIjtcbmNvbnN0IF9HT1IgPSBcIkdldE9iamVjdFJlcXVlc3RcIjtcbmNvbnN0IF9HT1JPID0gXCJHZXRPYmplY3RSZXRlbnRpb25PdXRwdXRcIjtcbmNvbnN0IF9HT1JSID0gXCJHZXRPYmplY3RSZXRlbnRpb25SZXF1ZXN0XCI7XG5jb25zdCBfR09SZSA9IFwiR2V0T2JqZWN0UmV0ZW50aW9uXCI7XG5jb25zdCBfR09UID0gXCJHZXRPYmplY3RUYWdnaW5nXCI7XG5jb25zdCBfR09UTyA9IFwiR2V0T2JqZWN0VGFnZ2luZ091dHB1dFwiO1xuY29uc3QgX0dPVE9lID0gXCJHZXRPYmplY3RUb3JyZW50T3V0cHV0XCI7XG5jb25zdCBfR09UUiA9IFwiR2V0T2JqZWN0VGFnZ2luZ1JlcXVlc3RcIjtcbmNvbnN0IF9HT1RSZSA9IFwiR2V0T2JqZWN0VG9ycmVudFJlcXVlc3RcIjtcbmNvbnN0IF9HT1RlID0gXCJHZXRPYmplY3RUb3JyZW50XCI7XG5jb25zdCBfR1BBQiA9IFwiR2V0UHVibGljQWNjZXNzQmxvY2tcIjtcbmNvbnN0IF9HUEFCTyA9IFwiR2V0UHVibGljQWNjZXNzQmxvY2tPdXRwdXRcIjtcbmNvbnN0IF9HUEFCUiA9IFwiR2V0UHVibGljQWNjZXNzQmxvY2tSZXF1ZXN0XCI7XG5jb25zdCBfR1IgPSBcIkdyYW50UmVhZFwiO1xuY29uc3QgX0dSQUNQID0gXCJHcmFudFJlYWRBQ1BcIjtcbmNvbnN0IF9HVyA9IFwiR3JhbnRXcml0ZVwiO1xuY29uc3QgX0dXQUNQID0gXCJHcmFudFdyaXRlQUNQXCI7XG5jb25zdCBfR3IgPSBcIkdyYW50XCI7XG5jb25zdCBfR3JhID0gXCJHcmFudGVlXCI7XG5jb25zdCBfSEIgPSBcIkhlYWRCdWNrZXRcIjtcbmNvbnN0IF9IQk8gPSBcIkhlYWRCdWNrZXRPdXRwdXRcIjtcbmNvbnN0IF9IQlIgPSBcIkhlYWRCdWNrZXRSZXF1ZXN0XCI7XG5jb25zdCBfSEVDUkUgPSBcIkh0dHBFcnJvckNvZGVSZXR1cm5lZEVxdWFsc1wiO1xuY29uc3QgX0hOID0gXCJIb3N0TmFtZVwiO1xuY29uc3QgX0hPID0gXCJIZWFkT2JqZWN0XCI7XG5jb25zdCBfSE9PID0gXCJIZWFkT2JqZWN0T3V0cHV0XCI7XG5jb25zdCBfSE9SID0gXCJIZWFkT2JqZWN0UmVxdWVzdFwiO1xuY29uc3QgX0hSQyA9IFwiSHR0cFJlZGlyZWN0Q29kZVwiO1xuY29uc3QgX0kgPSBcIklkXCI7XG5jb25zdCBfSUMgPSBcIkludmVudG9yeUNvbmZpZ3VyYXRpb25cIjtcbmNvbnN0IF9JQ0wgPSBcIkludmVudG9yeUNvbmZpZ3VyYXRpb25MaXN0XCI7XG5jb25zdCBfSUQgPSBcIklEXCI7XG5jb25zdCBfSURuID0gXCJJbmRleERvY3VtZW50XCI7XG5jb25zdCBfSURudiA9IFwiSW52ZW50b3J5RGVzdGluYXRpb25cIjtcbmNvbnN0IF9JRSA9IFwiSXNFbmFibGVkXCI7XG5jb25zdCBfSUVuID0gXCJJbnZlbnRvcnlFbmNyeXB0aW9uXCI7XG5jb25zdCBfSUYgPSBcIkludmVudG9yeUZpbHRlclwiO1xuY29uc3QgX0lMID0gXCJJc0xhdGVzdFwiO1xuY29uc3QgX0lNID0gXCJJZk1hdGNoXCI7XG5jb25zdCBfSU1JVCA9IFwiSWZNYXRjaEluaXRpYXRlZFRpbWVcIjtcbmNvbnN0IF9JTUxNVCA9IFwiSWZNYXRjaExhc3RNb2RpZmllZFRpbWVcIjtcbmNvbnN0IF9JTVMgPSBcIklmTWF0Y2hTaXplXCI7XG5jb25zdCBfSU1TXyA9IFwiSWYtTW9kaWZpZWQtU2luY2VcIjtcbmNvbnN0IF9JTVNmID0gXCJJZk1vZGlmaWVkU2luY2VcIjtcbmNvbnN0IF9JTVVSID0gXCJJbml0aWF0ZU11bHRpcGFydFVwbG9hZFJlc3VsdFwiO1xuY29uc3QgX0lNXyA9IFwiSWYtTWF0Y2hcIjtcbmNvbnN0IF9JTk0gPSBcIklmTm9uZU1hdGNoXCI7XG5jb25zdCBfSU5NXyA9IFwiSWYtTm9uZS1NYXRjaFwiO1xuY29uc3QgX0lPRiA9IFwiSW52ZW50b3J5T3B0aW9uYWxGaWVsZHNcIjtcbmNvbnN0IF9JT1MgPSBcIkludmFsaWRPYmplY3RTdGF0ZVwiO1xuY29uc3QgX0lPViA9IFwiSW5jbHVkZWRPYmplY3RWZXJzaW9uc1wiO1xuY29uc3QgX0lQID0gXCJJc1B1YmxpY1wiO1xuY29uc3QgX0lQQSA9IFwiSWdub3JlUHVibGljQWNsc1wiO1xuY29uc3QgX0lQTSA9IFwiSWRlbXBvdGVuY3lQYXJhbWV0ZXJNaXNtYXRjaFwiO1xuY29uc3QgX0lSID0gXCJJbnZhbGlkUmVxdWVzdFwiO1xuY29uc3QgX0lSSVAgPSBcIklzUmVzdG9yZUluUHJvZ3Jlc3NcIjtcbmNvbnN0IF9JUyA9IFwiSW5wdXRTZXJpYWxpemF0aW9uXCI7XG5jb25zdCBfSVNCRCA9IFwiSW52ZW50b3J5UzNCdWNrZXREZXN0aW5hdGlvblwiO1xuY29uc3QgX0lTbiA9IFwiSW52ZW50b3J5U2NoZWR1bGVcIjtcbmNvbnN0IF9JVCA9IFwiSXNUcnVuY2F0ZWRcIjtcbmNvbnN0IF9JVEFPID0gXCJJbnRlbGxpZ2VudFRpZXJpbmdBbmRPcGVyYXRvclwiO1xuY29uc3QgX0lUQyA9IFwiSW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvblwiO1xuY29uc3QgX0lUQ0wgPSBcIkludGVsbGlnZW50VGllcmluZ0NvbmZpZ3VyYXRpb25MaXN0XCI7XG5jb25zdCBfSVRDUiA9IFwiSW52ZW50b3J5VGFibGVDb25maWd1cmF0aW9uUmVzdWx0XCI7XG5jb25zdCBfSVRDVSA9IFwiSW52ZW50b3J5VGFibGVDb25maWd1cmF0aW9uVXBkYXRlc1wiO1xuY29uc3QgX0lUQ24gPSBcIkludmVudG9yeVRhYmxlQ29uZmlndXJhdGlvblwiO1xuY29uc3QgX0lURiA9IFwiSW50ZWxsaWdlbnRUaWVyaW5nRmlsdGVyXCI7XG5jb25zdCBfSVVTID0gXCJJZlVubW9kaWZpZWRTaW5jZVwiO1xuY29uc3QgX0lVU18gPSBcIklmLVVubW9kaWZpZWQtU2luY2VcIjtcbmNvbnN0IF9JV08gPSBcIkludmFsaWRXcml0ZU9mZnNldFwiO1xuY29uc3QgX0luID0gXCJJbml0aWF0b3JcIjtcbmNvbnN0IF9JbmkgPSBcIkluaXRpYXRlZFwiO1xuY29uc3QgX0pTT04gPSBcIkpTT05cIjtcbmNvbnN0IF9KU09OSSA9IFwiSlNPTklucHV0XCI7XG5jb25zdCBfSlNPTk8gPSBcIkpTT05PdXRwdXRcIjtcbmNvbnN0IF9KVEMgPSBcIkpvdXJuYWxUYWJsZUNvbmZpZ3VyYXRpb25cIjtcbmNvbnN0IF9KVENSID0gXCJKb3VybmFsVGFibGVDb25maWd1cmF0aW9uUmVzdWx0XCI7XG5jb25zdCBfSlRDVSA9IFwiSm91cm5hbFRhYmxlQ29uZmlndXJhdGlvblVwZGF0ZXNcIjtcbmNvbnN0IF9LID0gXCJLZXlcIjtcbmNvbnN0IF9LQyA9IFwiS2V5Q291bnRcIjtcbmNvbnN0IF9LSSA9IFwiS2V5SWRcIjtcbmNvbnN0IF9LS0EgPSBcIkttc0tleUFyblwiO1xuY29uc3QgX0tNID0gXCJLZXlNYXJrZXJcIjtcbmNvbnN0IF9LTVNDID0gXCJLTVNDb250ZXh0XCI7XG5jb25zdCBfS01TS0kgPSBcIktNU0tleUlkXCI7XG5jb25zdCBfS01TTUtJRCA9IFwiS01TTWFzdGVyS2V5SURcIjtcbmNvbnN0IF9LUEUgPSBcIktleVByZWZpeEVxdWFsc1wiO1xuY29uc3QgX0wgPSBcIkxvY2F0aW9uXCI7XG5jb25zdCBfTEFNQlIgPSBcIkxpc3RBbGxNeUJ1Y2tldHNSZXN1bHRcIjtcbmNvbnN0IF9MQU1EQlIgPSBcIkxpc3RBbGxNeURpcmVjdG9yeUJ1Y2tldHNSZXN1bHRcIjtcbmNvbnN0IF9MQiA9IFwiTGlzdEJ1Y2tldHNcIjtcbmNvbnN0IF9MQkFDID0gXCJMaXN0QnVja2V0QW5hbHl0aWNzQ29uZmlndXJhdGlvbnNcIjtcbmNvbnN0IF9MQkFDTyA9IFwiTGlzdEJ1Y2tldEFuYWx5dGljc0NvbmZpZ3VyYXRpb25zT3V0cHV0XCI7XG5jb25zdCBfTEJBQ1IgPSBcIkxpc3RCdWNrZXRBbmFseXRpY3NDb25maWd1cmF0aW9uUmVzdWx0XCI7XG5jb25zdCBfTEJBQ1JpID0gXCJMaXN0QnVja2V0QW5hbHl0aWNzQ29uZmlndXJhdGlvbnNSZXF1ZXN0XCI7XG5jb25zdCBfTEJJQyA9IFwiTGlzdEJ1Y2tldEludmVudG9yeUNvbmZpZ3VyYXRpb25zXCI7XG5jb25zdCBfTEJJQ08gPSBcIkxpc3RCdWNrZXRJbnZlbnRvcnlDb25maWd1cmF0aW9uc091dHB1dFwiO1xuY29uc3QgX0xCSUNSID0gXCJMaXN0QnVja2V0SW52ZW50b3J5Q29uZmlndXJhdGlvbnNSZXF1ZXN0XCI7XG5jb25zdCBfTEJJVEMgPSBcIkxpc3RCdWNrZXRJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9uc1wiO1xuY29uc3QgX0xCSVRDTyA9IFwiTGlzdEJ1Y2tldEludGVsbGlnZW50VGllcmluZ0NvbmZpZ3VyYXRpb25zT3V0cHV0XCI7XG5jb25zdCBfTEJJVENSID0gXCJMaXN0QnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvbnNSZXF1ZXN0XCI7XG5jb25zdCBfTEJNQyA9IFwiTGlzdEJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9uc1wiO1xuY29uc3QgX0xCTUNPID0gXCJMaXN0QnVja2V0TWV0cmljc0NvbmZpZ3VyYXRpb25zT3V0cHV0XCI7XG5jb25zdCBfTEJNQ1IgPSBcIkxpc3RCdWNrZXRNZXRyaWNzQ29uZmlndXJhdGlvbnNSZXF1ZXN0XCI7XG5jb25zdCBfTEJPID0gXCJMaXN0QnVja2V0c091dHB1dFwiO1xuY29uc3QgX0xCUiA9IFwiTGlzdEJ1Y2tldHNSZXF1ZXN0XCI7XG5jb25zdCBfTEJSaSA9IFwiTGlzdEJ1Y2tldFJlc3VsdFwiO1xuY29uc3QgX0xDID0gXCJMb2NhdGlvbkNvbnN0cmFpbnRcIjtcbmNvbnN0IF9MQ2kgPSBcIkxpZmVjeWNsZUNvbmZpZ3VyYXRpb25cIjtcbmNvbnN0IF9MREIgPSBcIkxpc3REaXJlY3RvcnlCdWNrZXRzXCI7XG5jb25zdCBfTERCTyA9IFwiTGlzdERpcmVjdG9yeUJ1Y2tldHNPdXRwdXRcIjtcbmNvbnN0IF9MREJSID0gXCJMaXN0RGlyZWN0b3J5QnVja2V0c1JlcXVlc3RcIjtcbmNvbnN0IF9MRSA9IFwiTG9nZ2luZ0VuYWJsZWRcIjtcbmNvbnN0IF9MRWkgPSBcIkxpZmVjeWNsZUV4cGlyYXRpb25cIjtcbmNvbnN0IF9MRkEgPSBcIkxhbWJkYUZ1bmN0aW9uQXJuXCI7XG5jb25zdCBfTEZDID0gXCJMYW1iZGFGdW5jdGlvbkNvbmZpZ3VyYXRpb25cIjtcbmNvbnN0IF9MRkNMID0gXCJMYW1iZGFGdW5jdGlvbkNvbmZpZ3VyYXRpb25MaXN0XCI7XG5jb25zdCBfTEZDYSA9IFwiTGFtYmRhRnVuY3Rpb25Db25maWd1cmF0aW9uc1wiO1xuY29uc3QgX0xIID0gXCJMZWdhbEhvbGRcIjtcbmNvbnN0IF9MSSA9IFwiTG9jYXRpb25JbmZvXCI7XG5jb25zdCBfTElDUiA9IFwiTGlzdEludmVudG9yeUNvbmZpZ3VyYXRpb25zUmVzdWx0XCI7XG5jb25zdCBfTE0gPSBcIkxhc3RNb2RpZmllZFwiO1xuY29uc3QgX0xNQ1IgPSBcIkxpc3RNZXRyaWNzQ29uZmlndXJhdGlvbnNSZXN1bHRcIjtcbmNvbnN0IF9MTVQgPSBcIkxhc3RNb2RpZmllZFRpbWVcIjtcbmNvbnN0IF9MTVUgPSBcIkxpc3RNdWx0aXBhcnRVcGxvYWRzXCI7XG5jb25zdCBfTE1VTyA9IFwiTGlzdE11bHRpcGFydFVwbG9hZHNPdXRwdXRcIjtcbmNvbnN0IF9MTVVSID0gXCJMaXN0TXVsdGlwYXJ0VXBsb2Fkc1Jlc3VsdFwiO1xuY29uc3QgX0xNVVJpID0gXCJMaXN0TXVsdGlwYXJ0VXBsb2Fkc1JlcXVlc3RcIjtcbmNvbnN0IF9MTV8gPSBcIkxhc3QtTW9kaWZpZWRcIjtcbmNvbnN0IF9MTyA9IFwiTGlzdE9iamVjdHNcIjtcbmNvbnN0IF9MT08gPSBcIkxpc3RPYmplY3RzT3V0cHV0XCI7XG5jb25zdCBfTE9SID0gXCJMaXN0T2JqZWN0c1JlcXVlc3RcIjtcbmNvbnN0IF9MT1YgPSBcIkxpc3RPYmplY3RzVjJcIjtcbmNvbnN0IF9MT1ZPID0gXCJMaXN0T2JqZWN0c1YyT3V0cHV0XCI7XG5jb25zdCBfTE9WT2kgPSBcIkxpc3RPYmplY3RWZXJzaW9uc091dHB1dFwiO1xuY29uc3QgX0xPVlIgPSBcIkxpc3RPYmplY3RzVjJSZXF1ZXN0XCI7XG5jb25zdCBfTE9WUmkgPSBcIkxpc3RPYmplY3RWZXJzaW9uc1JlcXVlc3RcIjtcbmNvbnN0IF9MT1ZpID0gXCJMaXN0T2JqZWN0VmVyc2lvbnNcIjtcbmNvbnN0IF9MUCA9IFwiTGlzdFBhcnRzXCI7XG5jb25zdCBfTFBPID0gXCJMaXN0UGFydHNPdXRwdXRcIjtcbmNvbnN0IF9MUFIgPSBcIkxpc3RQYXJ0c1Jlc3VsdFwiO1xuY29uc3QgX0xQUmkgPSBcIkxpc3RQYXJ0c1JlcXVlc3RcIjtcbmNvbnN0IF9MUiA9IFwiTGlmZWN5Y2xlUnVsZVwiO1xuY29uc3QgX0xSQU8gPSBcIkxpZmVjeWNsZVJ1bGVBbmRPcGVyYXRvclwiO1xuY29uc3QgX0xSRiA9IFwiTGlmZWN5Y2xlUnVsZUZpbHRlclwiO1xuY29uc3QgX0xSaSA9IFwiTGlmZWN5Y2xlUnVsZXNcIjtcbmNvbnN0IF9MVlIgPSBcIkxpc3RWZXJzaW9uc1Jlc3VsdFwiO1xuY29uc3QgX00gPSBcIk1ldGFkYXRhXCI7XG5jb25zdCBfTUFPID0gXCJNZXRyaWNzQW5kT3BlcmF0b3JcIjtcbmNvbnN0IF9NQVMgPSBcIk1heEFnZVNlY29uZHNcIjtcbmNvbnN0IF9NQiA9IFwiTWF4QnVja2V0c1wiO1xuY29uc3QgX01DID0gXCJNZXRhZGF0YUNvbmZpZ3VyYXRpb25cIjtcbmNvbnN0IF9NQ0wgPSBcIk1ldHJpY3NDb25maWd1cmF0aW9uTGlzdFwiO1xuY29uc3QgX01DUiA9IFwiTWV0YWRhdGFDb25maWd1cmF0aW9uUmVzdWx0XCI7XG5jb25zdCBfTUNlID0gXCJNZXRyaWNzQ29uZmlndXJhdGlvblwiO1xuY29uc3QgX01EID0gXCJNZXRhZGF0YURpcmVjdGl2ZVwiO1xuY29uc3QgX01EQiA9IFwiTWF4RGlyZWN0b3J5QnVja2V0c1wiO1xuY29uc3QgX01EZiA9IFwiTWZhRGVsZXRlXCI7XG5jb25zdCBfTUUgPSBcIk1ldGFkYXRhRW50cnlcIjtcbmNvbnN0IF9NRiA9IFwiTWV0cmljc0ZpbHRlclwiO1xuY29uc3QgX01GQSA9IFwiTUZBXCI7XG5jb25zdCBfTUZBRCA9IFwiTUZBRGVsZXRlXCI7XG5jb25zdCBfTUsgPSBcIk1heEtleXNcIjtcbmNvbnN0IF9NTSA9IFwiTWlzc2luZ01ldGFcIjtcbmNvbnN0IF9NT1MgPSBcIk1wdU9iamVjdFNpemVcIjtcbmNvbnN0IF9NUCA9IFwiTWF4UGFydHNcIjtcbmNvbnN0IF9NVEMgPSBcIk1ldGFkYXRhVGFibGVDb25maWd1cmF0aW9uXCI7XG5jb25zdCBfTVRDUiA9IFwiTWV0YWRhdGFUYWJsZUNvbmZpZ3VyYXRpb25SZXN1bHRcIjtcbmNvbnN0IF9NVEVDID0gXCJNZXRhZGF0YVRhYmxlRW5jcnlwdGlvbkNvbmZpZ3VyYXRpb25cIjtcbmNvbnN0IF9NVSA9IFwiTXVsdGlwYXJ0VXBsb2FkXCI7XG5jb25zdCBfTVVMID0gXCJNdWx0aXBhcnRVcGxvYWRMaXN0XCI7XG5jb25zdCBfTVVhID0gXCJNYXhVcGxvYWRzXCI7XG5jb25zdCBfTWEgPSBcIk1hcmtlclwiO1xuY29uc3QgX01lID0gXCJNZXRyaWNzXCI7XG5jb25zdCBfTWVzID0gXCJNZXNzYWdlXCI7XG5jb25zdCBfTWkgPSBcIk1pbnV0ZXNcIjtcbmNvbnN0IF9NbyA9IFwiTW9kZVwiO1xuY29uc3QgX04gPSBcIk5hbWVcIjtcbmNvbnN0IF9OQyA9IFwiTm90aWZpY2F0aW9uQ29uZmlndXJhdGlvblwiO1xuY29uc3QgX05DRiA9IFwiTm90aWZpY2F0aW9uQ29uZmlndXJhdGlvbkZpbHRlclwiO1xuY29uc3QgX05DVCA9IFwiTmV4dENvbnRpbnVhdGlvblRva2VuXCI7XG5jb25zdCBfTkQgPSBcIk5vbmN1cnJlbnREYXlzXCI7XG5jb25zdCBfTkYgPSBcIk5vdEZvdW5kXCI7XG5jb25zdCBfTktNID0gXCJOZXh0S2V5TWFya2VyXCI7XG5jb25zdCBfTk0gPSBcIk5leHRNYXJrZXJcIjtcbmNvbnN0IF9OTlYgPSBcIk5ld2VyTm9uY3VycmVudFZlcnNpb25zXCI7XG5jb25zdCBfTlBOTSA9IFwiTmV4dFBhcnROdW1iZXJNYXJrZXJcIjtcbmNvbnN0IF9OU0IgPSBcIk5vU3VjaEJ1Y2tldFwiO1xuY29uc3QgX05TSyA9IFwiTm9TdWNoS2V5XCI7XG5jb25zdCBfTlNVID0gXCJOb1N1Y2hVcGxvYWRcIjtcbmNvbnN0IF9OVUlNID0gXCJOZXh0VXBsb2FkSWRNYXJrZXJcIjtcbmNvbnN0IF9OVkUgPSBcIk5vbmN1cnJlbnRWZXJzaW9uRXhwaXJhdGlvblwiO1xuY29uc3QgX05WSU0gPSBcIk5leHRWZXJzaW9uSWRNYXJrZXJcIjtcbmNvbnN0IF9OVlQgPSBcIk5vbmN1cnJlbnRWZXJzaW9uVHJhbnNpdGlvbnNcIjtcbmNvbnN0IF9OVlRMID0gXCJOb25jdXJyZW50VmVyc2lvblRyYW5zaXRpb25MaXN0XCI7XG5jb25zdCBfTlZUbyA9IFwiTm9uY3VycmVudFZlcnNpb25UcmFuc2l0aW9uXCI7XG5jb25zdCBfTyA9IFwiT3duZXJcIjtcbmNvbnN0IF9PQSA9IFwiT2JqZWN0QXR0cmlidXRlc1wiO1xuY29uc3QgX09BSUFURSA9IFwiT2JqZWN0QWxyZWFkeUluQWN0aXZlVGllckVycm9yXCI7XG5jb25zdCBfT0MgPSBcIk93bmVyc2hpcENvbnRyb2xzXCI7XG5jb25zdCBfT0NSID0gXCJPd25lcnNoaXBDb250cm9sc1J1bGVcIjtcbmNvbnN0IF9PQ1J3ID0gXCJPd25lcnNoaXBDb250cm9sc1J1bGVzXCI7XG5jb25zdCBfT0YgPSBcIk9wdGlvbmFsRmllbGRzXCI7XG5jb25zdCBfT0kgPSBcIk9iamVjdElkZW50aWZpZXJcIjtcbmNvbnN0IF9PSUwgPSBcIk9iamVjdElkZW50aWZpZXJMaXN0XCI7XG5jb25zdCBfT0wgPSBcIk91dHB1dExvY2F0aW9uXCI7XG5jb25zdCBfT0xDID0gXCJPYmplY3RMb2NrQ29uZmlndXJhdGlvblwiO1xuY29uc3QgX09MRSA9IFwiT2JqZWN0TG9ja0VuYWJsZWRcIjtcbmNvbnN0IF9PTEVGQiA9IFwiT2JqZWN0TG9ja0VuYWJsZWRGb3JCdWNrZXRcIjtcbmNvbnN0IF9PTExIID0gXCJPYmplY3RMb2NrTGVnYWxIb2xkXCI7XG5jb25zdCBfT0xMSFMgPSBcIk9iamVjdExvY2tMZWdhbEhvbGRTdGF0dXNcIjtcbmNvbnN0IF9PTE0gPSBcIk9iamVjdExvY2tNb2RlXCI7XG5jb25zdCBfT0xSID0gXCJPYmplY3RMb2NrUmV0ZW50aW9uXCI7XG5jb25zdCBfT0xSVUQgPSBcIk9iamVjdExvY2tSZXRhaW5VbnRpbERhdGVcIjtcbmNvbnN0IF9PTFJiID0gXCJPYmplY3RMb2NrUnVsZVwiO1xuY29uc3QgX09MYiA9IFwiT2JqZWN0TGlzdFwiO1xuY29uc3QgX09OSUFURSA9IFwiT2JqZWN0Tm90SW5BY3RpdmVUaWVyRXJyb3JcIjtcbmNvbnN0IF9PTyA9IFwiT2JqZWN0T3duZXJzaGlwXCI7XG5jb25zdCBfT09BID0gXCJPcHRpb25hbE9iamVjdEF0dHJpYnV0ZXNcIjtcbmNvbnN0IF9PUCA9IFwiT2JqZWN0UGFydHNcIjtcbmNvbnN0IF9PUGIgPSBcIk9iamVjdFBhcnRcIjtcbmNvbnN0IF9PUyA9IFwiT2JqZWN0U2l6ZVwiO1xuY29uc3QgX09TR1QgPSBcIk9iamVjdFNpemVHcmVhdGVyVGhhblwiO1xuY29uc3QgX09TTFQgPSBcIk9iamVjdFNpemVMZXNzVGhhblwiO1xuY29uc3QgX09TViA9IFwiT3V0cHV0U2NoZW1hVmVyc2lvblwiO1xuY29uc3QgX09TdSA9IFwiT3V0cHV0U2VyaWFsaXphdGlvblwiO1xuY29uc3QgX09WID0gXCJPYmplY3RWZXJzaW9uXCI7XG5jb25zdCBfT1ZMID0gXCJPYmplY3RWZXJzaW9uTGlzdFwiO1xuY29uc3QgX09iID0gXCJPYmplY3RzXCI7XG5jb25zdCBfT2JqID0gXCJPYmplY3RcIjtcbmNvbnN0IF9QID0gXCJQcmVmaXhcIjtcbmNvbnN0IF9QQUJDID0gXCJQdWJsaWNBY2Nlc3NCbG9ja0NvbmZpZ3VyYXRpb25cIjtcbmNvbnN0IF9QQkEgPSBcIlB1dEJ1Y2tldEFiYWNcIjtcbmNvbnN0IF9QQkFDID0gXCJQdXRCdWNrZXRBY2NlbGVyYXRlQ29uZmlndXJhdGlvblwiO1xuY29uc3QgX1BCQUNSID0gXCJQdXRCdWNrZXRBY2NlbGVyYXRlQ29uZmlndXJhdGlvblJlcXVlc3RcIjtcbmNvbnN0IF9QQkFDUnUgPSBcIlB1dEJ1Y2tldEFuYWx5dGljc0NvbmZpZ3VyYXRpb25SZXF1ZXN0XCI7XG5jb25zdCBfUEJBQ3UgPSBcIlB1dEJ1Y2tldEFuYWx5dGljc0NvbmZpZ3VyYXRpb25cIjtcbmNvbnN0IF9QQkFSID0gXCJQdXRCdWNrZXRBYmFjUmVxdWVzdFwiO1xuY29uc3QgX1BCQVJ1ID0gXCJQdXRCdWNrZXRBY2xSZXF1ZXN0XCI7XG5jb25zdCBfUEJBdSA9IFwiUHV0QnVja2V0QWNsXCI7XG5jb25zdCBfUEJDID0gXCJQdXRCdWNrZXRDb3JzXCI7XG5jb25zdCBfUEJDUiA9IFwiUHV0QnVja2V0Q29yc1JlcXVlc3RcIjtcbmNvbnN0IF9QQkUgPSBcIlB1dEJ1Y2tldEVuY3J5cHRpb25cIjtcbmNvbnN0IF9QQkVSID0gXCJQdXRCdWNrZXRFbmNyeXB0aW9uUmVxdWVzdFwiO1xuY29uc3QgX1BCSUMgPSBcIlB1dEJ1Y2tldEludmVudG9yeUNvbmZpZ3VyYXRpb25cIjtcbmNvbnN0IF9QQklDUiA9IFwiUHV0QnVja2V0SW52ZW50b3J5Q29uZmlndXJhdGlvblJlcXVlc3RcIjtcbmNvbnN0IF9QQklUQyA9IFwiUHV0QnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvblwiO1xuY29uc3QgX1BCSVRDUiA9IFwiUHV0QnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvblJlcXVlc3RcIjtcbmNvbnN0IF9QQkwgPSBcIlB1dEJ1Y2tldExvZ2dpbmdcIjtcbmNvbnN0IF9QQkxDID0gXCJQdXRCdWNrZXRMaWZlY3ljbGVDb25maWd1cmF0aW9uXCI7XG5jb25zdCBfUEJMQ08gPSBcIlB1dEJ1Y2tldExpZmVjeWNsZUNvbmZpZ3VyYXRpb25PdXRwdXRcIjtcbmNvbnN0IF9QQkxDUiA9IFwiUHV0QnVja2V0TGlmZWN5Y2xlQ29uZmlndXJhdGlvblJlcXVlc3RcIjtcbmNvbnN0IF9QQkxSID0gXCJQdXRCdWNrZXRMb2dnaW5nUmVxdWVzdFwiO1xuY29uc3QgX1BCTUMgPSBcIlB1dEJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9uXCI7XG5jb25zdCBfUEJNQ1IgPSBcIlB1dEJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9uUmVxdWVzdFwiO1xuY29uc3QgX1BCTkMgPSBcIlB1dEJ1Y2tldE5vdGlmaWNhdGlvbkNvbmZpZ3VyYXRpb25cIjtcbmNvbnN0IF9QQk5DUiA9IFwiUHV0QnVja2V0Tm90aWZpY2F0aW9uQ29uZmlndXJhdGlvblJlcXVlc3RcIjtcbmNvbnN0IF9QQk9DID0gXCJQdXRCdWNrZXRPd25lcnNoaXBDb250cm9sc1wiO1xuY29uc3QgX1BCT0NSID0gXCJQdXRCdWNrZXRPd25lcnNoaXBDb250cm9sc1JlcXVlc3RcIjtcbmNvbnN0IF9QQlAgPSBcIlB1dEJ1Y2tldFBvbGljeVwiO1xuY29uc3QgX1BCUFIgPSBcIlB1dEJ1Y2tldFBvbGljeVJlcXVlc3RcIjtcbmNvbnN0IF9QQlIgPSBcIlB1dEJ1Y2tldFJlcGxpY2F0aW9uXCI7XG5jb25zdCBfUEJSUCA9IFwiUHV0QnVja2V0UmVxdWVzdFBheW1lbnRcIjtcbmNvbnN0IF9QQlJQUiA9IFwiUHV0QnVja2V0UmVxdWVzdFBheW1lbnRSZXF1ZXN0XCI7XG5jb25zdCBfUEJSUiA9IFwiUHV0QnVja2V0UmVwbGljYXRpb25SZXF1ZXN0XCI7XG5jb25zdCBfUEJUID0gXCJQdXRCdWNrZXRUYWdnaW5nXCI7XG5jb25zdCBfUEJUUiA9IFwiUHV0QnVja2V0VGFnZ2luZ1JlcXVlc3RcIjtcbmNvbnN0IF9QQlYgPSBcIlB1dEJ1Y2tldFZlcnNpb25pbmdcIjtcbmNvbnN0IF9QQlZSID0gXCJQdXRCdWNrZXRWZXJzaW9uaW5nUmVxdWVzdFwiO1xuY29uc3QgX1BCVyA9IFwiUHV0QnVja2V0V2Vic2l0ZVwiO1xuY29uc3QgX1BCV1IgPSBcIlB1dEJ1Y2tldFdlYnNpdGVSZXF1ZXN0XCI7XG5jb25zdCBfUEMgPSBcIlBhcnRzQ291bnRcIjtcbmNvbnN0IF9QRFMgPSBcIlBhcnRpdGlvbkRhdGVTb3VyY2VcIjtcbmNvbnN0IF9QRSA9IFwiUHJvZ3Jlc3NFdmVudFwiO1xuY29uc3QgX1BJID0gXCJQYXJxdWV0SW5wdXRcIjtcbmNvbnN0IF9QTCA9IFwiUGFydHNMaXN0XCI7XG5jb25zdCBfUE4gPSBcIlBhcnROdW1iZXJcIjtcbmNvbnN0IF9QTk0gPSBcIlBhcnROdW1iZXJNYXJrZXJcIjtcbmNvbnN0IF9QTyA9IFwiUHV0T2JqZWN0XCI7XG5jb25zdCBfUE9BID0gXCJQdXRPYmplY3RBY2xcIjtcbmNvbnN0IF9QT0FPID0gXCJQdXRPYmplY3RBY2xPdXRwdXRcIjtcbmNvbnN0IF9QT0FSID0gXCJQdXRPYmplY3RBY2xSZXF1ZXN0XCI7XG5jb25zdCBfUE9MQyA9IFwiUHV0T2JqZWN0TG9ja0NvbmZpZ3VyYXRpb25cIjtcbmNvbnN0IF9QT0xDTyA9IFwiUHV0T2JqZWN0TG9ja0NvbmZpZ3VyYXRpb25PdXRwdXRcIjtcbmNvbnN0IF9QT0xDUiA9IFwiUHV0T2JqZWN0TG9ja0NvbmZpZ3VyYXRpb25SZXF1ZXN0XCI7XG5jb25zdCBfUE9MSCA9IFwiUHV0T2JqZWN0TGVnYWxIb2xkXCI7XG5jb25zdCBfUE9MSE8gPSBcIlB1dE9iamVjdExlZ2FsSG9sZE91dHB1dFwiO1xuY29uc3QgX1BPTEhSID0gXCJQdXRPYmplY3RMZWdhbEhvbGRSZXF1ZXN0XCI7XG5jb25zdCBfUE9PID0gXCJQdXRPYmplY3RPdXRwdXRcIjtcbmNvbnN0IF9QT1IgPSBcIlB1dE9iamVjdFJlcXVlc3RcIjtcbmNvbnN0IF9QT1JPID0gXCJQdXRPYmplY3RSZXRlbnRpb25PdXRwdXRcIjtcbmNvbnN0IF9QT1JSID0gXCJQdXRPYmplY3RSZXRlbnRpb25SZXF1ZXN0XCI7XG5jb25zdCBfUE9SdSA9IFwiUHV0T2JqZWN0UmV0ZW50aW9uXCI7XG5jb25zdCBfUE9UID0gXCJQdXRPYmplY3RUYWdnaW5nXCI7XG5jb25zdCBfUE9UTyA9IFwiUHV0T2JqZWN0VGFnZ2luZ091dHB1dFwiO1xuY29uc3QgX1BPVFIgPSBcIlB1dE9iamVjdFRhZ2dpbmdSZXF1ZXN0XCI7XG5jb25zdCBfUFAgPSBcIlBhcnRpdGlvbmVkUHJlZml4XCI7XG5jb25zdCBfUFBBQiA9IFwiUHV0UHVibGljQWNjZXNzQmxvY2tcIjtcbmNvbnN0IF9QUEFCUiA9IFwiUHV0UHVibGljQWNjZXNzQmxvY2tSZXF1ZXN0XCI7XG5jb25zdCBfUFMgPSBcIlBvbGljeVN0YXR1c1wiO1xuY29uc3QgX1BhID0gXCJQYXJ0c1wiO1xuY29uc3QgX1BhciA9IFwiUGFydFwiO1xuY29uc3QgX1BhcnEgPSBcIlBhcnF1ZXRcIjtcbmNvbnN0IF9QYXkgPSBcIlBheWVyXCI7XG5jb25zdCBfUGF5bCA9IFwiUGF5bG9hZFwiO1xuY29uc3QgX1BlID0gXCJQZXJtaXNzaW9uXCI7XG5jb25zdCBfUG8gPSBcIlBvbGljeVwiO1xuY29uc3QgX1ByID0gXCJQcm9ncmVzc1wiO1xuY29uc3QgX1ByaSA9IFwiUHJpb3JpdHlcIjtcbmNvbnN0IF9Qcm8gPSBcIlByb3RvY29sXCI7XG5jb25zdCBfUSA9IFwiUXVpZXRcIjtcbmNvbnN0IF9RQSA9IFwiUXVldWVBcm5cIjtcbmNvbnN0IF9RQyA9IFwiUXVvdGVDaGFyYWN0ZXJcIjtcbmNvbnN0IF9RQ0wgPSBcIlF1ZXVlQ29uZmlndXJhdGlvbkxpc3RcIjtcbmNvbnN0IF9RQ3UgPSBcIlF1ZXVlQ29uZmlndXJhdGlvbnNcIjtcbmNvbnN0IF9RQ3VlID0gXCJRdWV1ZUNvbmZpZ3VyYXRpb25cIjtcbmNvbnN0IF9RRUMgPSBcIlF1b3RlRXNjYXBlQ2hhcmFjdGVyXCI7XG5jb25zdCBfUUYgPSBcIlF1b3RlRmllbGRzXCI7XG5jb25zdCBfUXUgPSBcIlF1ZXVlXCI7XG5jb25zdCBfUiA9IFwiUnVsZXNcIjtcbmNvbnN0IF9SQVJUID0gXCJSZWRpcmVjdEFsbFJlcXVlc3RzVG9cIjtcbmNvbnN0IF9SQyA9IFwiUmVxdWVzdENoYXJnZWRcIjtcbmNvbnN0IF9SQ0MgPSBcIlJlc3BvbnNlQ2FjaGVDb250cm9sXCI7XG5jb25zdCBfUkNEID0gXCJSZXNwb25zZUNvbnRlbnREaXNwb3NpdGlvblwiO1xuY29uc3QgX1JDRSA9IFwiUmVzcG9uc2VDb250ZW50RW5jb2RpbmdcIjtcbmNvbnN0IF9SQ0wgPSBcIlJlc3BvbnNlQ29udGVudExhbmd1YWdlXCI7XG5jb25zdCBfUkNUID0gXCJSZXNwb25zZUNvbnRlbnRUeXBlXCI7XG5jb25zdCBfUkNlID0gXCJSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25cIjtcbmNvbnN0IF9SRCA9IFwiUmVjb3JkRGVsaW1pdGVyXCI7XG5jb25zdCBfUkUgPSBcIlJlc3BvbnNlRXhwaXJlc1wiO1xuY29uc3QgX1JFRCA9IFwiUmVzdG9yZUV4cGlyeURhdGVcIjtcbmNvbnN0IF9SRWUgPSBcIlJlY29yZEV4cGlyYXRpb25cIjtcbmNvbnN0IF9SRWVjID0gXCJSZWNvcmRzRXZlbnRcIjtcbmNvbnN0IF9SS0tJRCA9IFwiUmVwbGljYUttc0tleUlEXCI7XG5jb25zdCBfUktQVyA9IFwiUmVwbGFjZUtleVByZWZpeFdpdGhcIjtcbmNvbnN0IF9SS1cgPSBcIlJlcGxhY2VLZXlXaXRoXCI7XG5jb25zdCBfUk0gPSBcIlJlcGxpY2FNb2RpZmljYXRpb25zXCI7XG5jb25zdCBfUk8gPSBcIlJlbmFtZU9iamVjdFwiO1xuY29uc3QgX1JPTyA9IFwiUmVuYW1lT2JqZWN0T3V0cHV0XCI7XG5jb25zdCBfUk9PZSA9IFwiUmVzdG9yZU9iamVjdE91dHB1dFwiO1xuY29uc3QgX1JPUCA9IFwiUmVzdG9yZU91dHB1dFBhdGhcIjtcbmNvbnN0IF9ST1IgPSBcIlJlbmFtZU9iamVjdFJlcXVlc3RcIjtcbmNvbnN0IF9ST1JlID0gXCJSZXN0b3JlT2JqZWN0UmVxdWVzdFwiO1xuY29uc3QgX1JPZSA9IFwiUmVzdG9yZU9iamVjdFwiO1xuY29uc3QgX1JQID0gXCJSZXF1ZXN0UGF5ZXJcIjtcbmNvbnN0IF9SUEIgPSBcIlJlc3RyaWN0UHVibGljQnVja2V0c1wiO1xuY29uc3QgX1JQQyA9IFwiUmVxdWVzdFBheW1lbnRDb25maWd1cmF0aW9uXCI7XG5jb25zdCBfUlBlID0gXCJSZXF1ZXN0UHJvZ3Jlc3NcIjtcbmNvbnN0IF9SUiA9IFwiUm91dGluZ1J1bGVzXCI7XG5jb25zdCBfUlJBTyA9IFwiUmVwbGljYXRpb25SdWxlQW5kT3BlcmF0b3JcIjtcbmNvbnN0IF9SUkYgPSBcIlJlcGxpY2F0aW9uUnVsZUZpbHRlclwiO1xuY29uc3QgX1JSZSA9IFwiUmVwbGljYXRpb25SdWxlXCI7XG5jb25zdCBfUlJlcCA9IFwiUmVwbGljYXRpb25SdWxlc1wiO1xuY29uc3QgX1JSZXEgPSBcIlJlcXVlc3RSb3V0ZVwiO1xuY29uc3QgX1JSZXMgPSBcIlJlc3RvcmVSZXF1ZXN0XCI7XG5jb25zdCBfUlJvID0gXCJSb3V0aW5nUnVsZVwiO1xuY29uc3QgX1JTID0gXCJSZXBsaWNhdGlvblN0YXR1c1wiO1xuY29uc3QgX1JTZSA9IFwiUmVzdG9yZVN0YXR1c1wiO1xuY29uc3QgX1JTZW4gPSBcIlJlbmFtZVNvdXJjZVwiO1xuY29uc3QgX1JUID0gXCJSZXBsaWNhdGlvblRpbWVcIjtcbmNvbnN0IF9SVFYgPSBcIlJlcGxpY2F0aW9uVGltZVZhbHVlXCI7XG5jb25zdCBfUlRlID0gXCJSZXF1ZXN0VG9rZW5cIjtcbmNvbnN0IF9SVUQgPSBcIlJldGFpblVudGlsRGF0ZVwiO1xuY29uc3QgX1JhID0gXCJSYW5nZVwiO1xuY29uc3QgX1JlID0gXCJSZXN0b3JlXCI7XG5jb25zdCBfUmVjID0gXCJSZWNvcmRzXCI7XG5jb25zdCBfUmVkID0gXCJSZWRpcmVjdFwiO1xuY29uc3QgX1JldCA9IFwiUmV0ZW50aW9uXCI7XG5jb25zdCBfUm8gPSBcIlJvbGVcIjtcbmNvbnN0IF9SdSA9IFwiUnVsZVwiO1xuY29uc3QgX1MgPSBcIlN0YXR1c1wiO1xuY29uc3QgX1NBID0gXCJTdGFydEFmdGVyXCI7XG5jb25zdCBfU0FLID0gXCJTZWNyZXRBY2Nlc3NLZXlcIjtcbmNvbnN0IF9TQXMgPSBcIlNzZUFsZ29yaXRobVwiO1xuY29uc3QgX1NCID0gXCJTdHJlYW1pbmdCbG9iXCI7XG5jb25zdCBfU0JEID0gXCJTM0J1Y2tldERlc3RpbmF0aW9uXCI7XG5jb25zdCBfU0MgPSBcIlN0b3JhZ2VDbGFzc1wiO1xuY29uc3QgX1NDQSA9IFwiU3RvcmFnZUNsYXNzQW5hbHlzaXNcIjtcbmNvbnN0IF9TQ0FERSA9IFwiU3RvcmFnZUNsYXNzQW5hbHlzaXNEYXRhRXhwb3J0XCI7XG5jb25zdCBfU0NWID0gXCJTZXNzaW9uQ3JlZGVudGlhbFZhbHVlXCI7XG5jb25zdCBfU0NlID0gXCJTZXNzaW9uQ3JlZGVudGlhbHNcIjtcbmNvbnN0IF9TQ3QgPSBcIlN0YXR1c0NvZGVcIjtcbmNvbnN0IF9TRFYgPSBcIlNraXBEZXN0aW5hdGlvblZhbGlkYXRpb25cIjtcbmNvbnN0IF9TRSA9IFwiU3RhdHNFdmVudFwiO1xuY29uc3QgX1NJTSA9IFwiU291cmNlSWZNYXRjaFwiO1xuY29uc3QgX1NJTVMgPSBcIlNvdXJjZUlmTW9kaWZpZWRTaW5jZVwiO1xuY29uc3QgX1NJTk0gPSBcIlNvdXJjZUlmTm9uZU1hdGNoXCI7XG5jb25zdCBfU0lVUyA9IFwiU291cmNlSWZVbm1vZGlmaWVkU2luY2VcIjtcbmNvbnN0IF9TSyA9IFwiU1NFLUtNU1wiO1xuY29uc3QgX1NLRU8gPSBcIlNzZUttc0VuY3J5cHRlZE9iamVjdHNcIjtcbmNvbnN0IF9TS0YgPSBcIlMzS2V5RmlsdGVyXCI7XG5jb25zdCBfU0tlID0gXCJTM0tleVwiO1xuY29uc3QgX1NMID0gXCJTM0xvY2F0aW9uXCI7XG5jb25zdCBfU00gPSBcIlNlc3Npb25Nb2RlXCI7XG5jb25zdCBfU09DID0gXCJTZWxlY3RPYmplY3RDb250ZW50XCI7XG5jb25zdCBfU09DRVMgPSBcIlNlbGVjdE9iamVjdENvbnRlbnRFdmVudFN0cmVhbVwiO1xuY29uc3QgX1NPQ08gPSBcIlNlbGVjdE9iamVjdENvbnRlbnRPdXRwdXRcIjtcbmNvbnN0IF9TT0NSID0gXCJTZWxlY3RPYmplY3RDb250ZW50UmVxdWVzdFwiO1xuY29uc3QgX1NQID0gXCJTZWxlY3RQYXJhbWV0ZXJzXCI7XG5jb25zdCBfU1BpID0gXCJTaW1wbGVQcmVmaXhcIjtcbmNvbnN0IF9TUiA9IFwiU2NhblJhbmdlXCI7XG5jb25zdCBfU1MgPSBcIlNTRS1TM1wiO1xuY29uc3QgX1NTQyA9IFwiU291cmNlU2VsZWN0aW9uQ3JpdGVyaWFcIjtcbmNvbnN0IF9TU0UgPSBcIlNlcnZlclNpZGVFbmNyeXB0aW9uXCI7XG5jb25zdCBfU1NFQSA9IFwiU1NFQWxnb3JpdGhtXCI7XG5jb25zdCBfU1NFQkQgPSBcIlNlcnZlclNpZGVFbmNyeXB0aW9uQnlEZWZhdWx0XCI7XG5jb25zdCBfU1NFQyA9IFwiU2VydmVyU2lkZUVuY3J5cHRpb25Db25maWd1cmF0aW9uXCI7XG5jb25zdCBfU1NFQ0EgPSBcIlNTRUN1c3RvbWVyQWxnb3JpdGhtXCI7XG5jb25zdCBfU1NFQ0sgPSBcIlNTRUN1c3RvbWVyS2V5XCI7XG5jb25zdCBfU1NFQ0tNRCA9IFwiU1NFQ3VzdG9tZXJLZXlNRDVcIjtcbmNvbnN0IF9TU0VLTVMgPSBcIlNTRUtNU1wiO1xuY29uc3QgX1NTRUtNU0VDID0gXCJTU0VLTVNFbmNyeXB0aW9uQ29udGV4dFwiO1xuY29uc3QgX1NTRUtNU0tJID0gXCJTU0VLTVNLZXlJZFwiO1xuY29uc3QgX1NTRVIgPSBcIlNlcnZlclNpZGVFbmNyeXB0aW9uUnVsZVwiO1xuY29uc3QgX1NTRVJlID0gXCJTZXJ2ZXJTaWRlRW5jcnlwdGlvblJ1bGVzXCI7XG5jb25zdCBfU1NFUyA9IFwiU1NFUzNcIjtcbmNvbnN0IF9TVCA9IFwiU2Vzc2lvblRva2VuXCI7XG5jb25zdCBfU1REID0gXCJTM1RhYmxlc0Rlc3RpbmF0aW9uXCI7XG5jb25zdCBfU1REUiA9IFwiUzNUYWJsZXNEZXN0aW5hdGlvblJlc3VsdFwiO1xuY29uc3QgX1NfID0gXCJTM1wiO1xuY29uc3QgX1NjID0gXCJTY2hlZHVsZVwiO1xuY29uc3QgX1NpID0gXCJTaXplXCI7XG5jb25zdCBfU3QgPSBcIlN0YXJ0XCI7XG5jb25zdCBfU3RhID0gXCJTdGF0c1wiO1xuY29uc3QgX1N1ID0gXCJTdWZmaXhcIjtcbmNvbnN0IF9UID0gXCJUYWdzXCI7XG5jb25zdCBfVEEgPSBcIlRhYmxlQXJuXCI7XG5jb25zdCBfVEFvID0gXCJUb3BpY0FyblwiO1xuY29uc3QgX1RCID0gXCJUYXJnZXRCdWNrZXRcIjtcbmNvbnN0IF9UQkEgPSBcIlRhYmxlQnVja2V0QXJuXCI7XG5jb25zdCBfVEJUID0gXCJUYWJsZUJ1Y2tldFR5cGVcIjtcbmNvbnN0IF9UQyA9IFwiVGFnQ291bnRcIjtcbmNvbnN0IF9UQ0wgPSBcIlRvcGljQ29uZmlndXJhdGlvbkxpc3RcIjtcbmNvbnN0IF9UQ28gPSBcIlRvcGljQ29uZmlndXJhdGlvbnNcIjtcbmNvbnN0IF9UQ29wID0gXCJUb3BpY0NvbmZpZ3VyYXRpb25cIjtcbmNvbnN0IF9URCA9IFwiVGFnZ2luZ0RpcmVjdGl2ZVwiO1xuY29uc3QgX1RETU9TID0gXCJUcmFuc2l0aW9uRGVmYXVsdE1pbmltdW1PYmplY3RTaXplXCI7XG5jb25zdCBfVEcgPSBcIlRhcmdldEdyYW50c1wiO1xuY29uc3QgX1RHYSA9IFwiVGFyZ2V0R3JhbnRcIjtcbmNvbnN0IF9UTCA9IFwiVGllcmluZ0xpc3RcIjtcbmNvbnN0IF9UTHIgPSBcIlRyYW5zaXRpb25MaXN0XCI7XG5jb25zdCBfVE1QID0gXCJUb29NYW55UGFydHNcIjtcbmNvbnN0IF9UTiA9IFwiVGFibGVOYW1lc3BhY2VcIjtcbmNvbnN0IF9UTmEgPSBcIlRhYmxlTmFtZVwiO1xuY29uc3QgX1RPS0YgPSBcIlRhcmdldE9iamVjdEtleUZvcm1hdFwiO1xuY29uc3QgX1RQID0gXCJUYXJnZXRQcmVmaXhcIjtcbmNvbnN0IF9UUEMgPSBcIlRvdGFsUGFydHNDb3VudFwiO1xuY29uc3QgX1RTID0gXCJUYWdTZXRcIjtcbmNvbnN0IF9UU2EgPSBcIlRhYmxlU3RhdHVzXCI7XG5jb25zdCBfVGEgPSBcIlRhZ1wiO1xuY29uc3QgX1RhZyA9IFwiVGFnZ2luZ1wiO1xuY29uc3QgX1RpID0gXCJUaWVyXCI7XG5jb25zdCBfVGllID0gXCJUaWVyaW5nc1wiO1xuY29uc3QgX1RpZXIgPSBcIlRpZXJpbmdcIjtcbmNvbnN0IF9UaW0gPSBcIlRpbWVcIjtcbmNvbnN0IF9UbyA9IFwiVG9rZW5cIjtcbmNvbnN0IF9Ub3AgPSBcIlRvcGljXCI7XG5jb25zdCBfVHIgPSBcIlRyYW5zaXRpb25zXCI7XG5jb25zdCBfVHJhID0gXCJUcmFuc2l0aW9uXCI7XG5jb25zdCBfVHkgPSBcIlR5cGVcIjtcbmNvbnN0IF9VID0gXCJVcGxvYWRzXCI7XG5jb25zdCBfVUJNSVRDID0gXCJVcGRhdGVCdWNrZXRNZXRhZGF0YUludmVudG9yeVRhYmxlQ29uZmlndXJhdGlvblwiO1xuY29uc3QgX1VCTUlUQ1IgPSBcIlVwZGF0ZUJ1Y2tldE1ldGFkYXRhSW52ZW50b3J5VGFibGVDb25maWd1cmF0aW9uUmVxdWVzdFwiO1xuY29uc3QgX1VCTUpUQyA9IFwiVXBkYXRlQnVja2V0TWV0YWRhdGFKb3VybmFsVGFibGVDb25maWd1cmF0aW9uXCI7XG5jb25zdCBfVUJNSlRDUiA9IFwiVXBkYXRlQnVja2V0TWV0YWRhdGFKb3VybmFsVGFibGVDb25maWd1cmF0aW9uUmVxdWVzdFwiO1xuY29uc3QgX1VJID0gXCJVcGxvYWRJZFwiO1xuY29uc3QgX1VJTSA9IFwiVXBsb2FkSWRNYXJrZXJcIjtcbmNvbnN0IF9VTSA9IFwiVXNlck1ldGFkYXRhXCI7XG5jb25zdCBfVVAgPSBcIlVwbG9hZFBhcnRcIjtcbmNvbnN0IF9VUEMgPSBcIlVwbG9hZFBhcnRDb3B5XCI7XG5jb25zdCBfVVBDTyA9IFwiVXBsb2FkUGFydENvcHlPdXRwdXRcIjtcbmNvbnN0IF9VUENSID0gXCJVcGxvYWRQYXJ0Q29weVJlcXVlc3RcIjtcbmNvbnN0IF9VUE8gPSBcIlVwbG9hZFBhcnRPdXRwdXRcIjtcbmNvbnN0IF9VUFIgPSBcIlVwbG9hZFBhcnRSZXF1ZXN0XCI7XG5jb25zdCBfVVJJID0gXCJVUklcIjtcbmNvbnN0IF9VcCA9IFwiVXBsb2FkXCI7XG5jb25zdCBfViA9IFwiVmFsdWVcIjtcbmNvbnN0IF9WQyA9IFwiVmVyc2lvbmluZ0NvbmZpZ3VyYXRpb25cIjtcbmNvbnN0IF9WSSA9IFwiVmVyc2lvbklkXCI7XG5jb25zdCBfVklNID0gXCJWZXJzaW9uSWRNYXJrZXJcIjtcbmNvbnN0IF9WZSA9IFwiVmVyc2lvbnNcIjtcbmNvbnN0IF9WZXIgPSBcIlZlcnNpb25cIjtcbmNvbnN0IF9XQyA9IFwiV2Vic2l0ZUNvbmZpZ3VyYXRpb25cIjtcbmNvbnN0IF9XR09SID0gXCJXcml0ZUdldE9iamVjdFJlc3BvbnNlXCI7XG5jb25zdCBfV0dPUlIgPSBcIldyaXRlR2V0T2JqZWN0UmVzcG9uc2VSZXF1ZXN0XCI7XG5jb25zdCBfV09CID0gXCJXcml0ZU9mZnNldEJ5dGVzXCI7XG5jb25zdCBfV1JMID0gXCJXZWJzaXRlUmVkaXJlY3RMb2NhdGlvblwiO1xuY29uc3QgX1kgPSBcIlllYXJzXCI7XG5jb25zdCBfYXIgPSBcImFjY2VwdC1yYW5nZXNcIjtcbmNvbnN0IF9iciA9IFwiYnVja2V0LXJlZ2lvblwiO1xuY29uc3QgX2MgPSBcImNsaWVudFwiO1xuY29uc3QgX2N0ID0gXCJjb250aW51YXRpb24tdG9rZW5cIjtcbmNvbnN0IF9kID0gXCJkZWxpbWl0ZXJcIjtcbmNvbnN0IF9lID0gXCJlcnJvclwiO1xuY29uc3QgX2VQID0gXCJldmVudFBheWxvYWRcIjtcbmNvbnN0IF9lbiA9IFwiZW5kcG9pbnRcIjtcbmNvbnN0IF9ldCA9IFwiZW5jb2RpbmctdHlwZVwiO1xuY29uc3QgX2ZvID0gXCJmZXRjaC1vd25lclwiO1xuY29uc3QgX2ggPSBcImh0dHBcIjtcbmNvbnN0IF9oRSA9IFwiaHR0cEVycm9yXCI7XG5jb25zdCBfaEggPSBcImh0dHBIZWFkZXJcIjtcbmNvbnN0IF9oTCA9IFwiaG9zdExhYmVsXCI7XG5jb25zdCBfaFAgPSBcImh0dHBQYXlsb2FkXCI7XG5jb25zdCBfaFBIID0gXCJodHRwUHJlZml4SGVhZGVyc1wiO1xuY29uc3QgX2hRID0gXCJodHRwUXVlcnlcIjtcbmNvbnN0IF9oaSA9IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2VcIjtcbmNvbnN0IF9pID0gXCJpZFwiO1xuY29uc3QgX2lUID0gXCJpZGVtcG90ZW5jeVRva2VuXCI7XG5jb25zdCBfa20gPSBcImtleS1tYXJrZXJcIjtcbmNvbnN0IF9tID0gXCJtYXJrZXJcIjtcbmNvbnN0IF9tYiA9IFwibWF4LWJ1Y2tldHNcIjtcbmNvbnN0IF9tZGIgPSBcIm1heC1kaXJlY3RvcnktYnVja2V0c1wiO1xuY29uc3QgX21rID0gXCJtYXgta2V5c1wiO1xuY29uc3QgX21wID0gXCJtYXgtcGFydHNcIjtcbmNvbnN0IF9tdSA9IFwibWF4LXVwbG9hZHNcIjtcbmNvbnN0IF9wID0gXCJwcmVmaXhcIjtcbmNvbnN0IF9wTiA9IFwicGFydE51bWJlclwiO1xuY29uc3QgX3BubSA9IFwicGFydC1udW1iZXItbWFya2VyXCI7XG5jb25zdCBfcmNjID0gXCJyZXNwb25zZS1jYWNoZS1jb250cm9sXCI7XG5jb25zdCBfcmNkID0gXCJyZXNwb25zZS1jb250ZW50LWRpc3Bvc2l0aW9uXCI7XG5jb25zdCBfcmNlID0gXCJyZXNwb25zZS1jb250ZW50LWVuY29kaW5nXCI7XG5jb25zdCBfcmNsID0gXCJyZXNwb25zZS1jb250ZW50LWxhbmd1YWdlXCI7XG5jb25zdCBfcmN0ID0gXCJyZXNwb25zZS1jb250ZW50LXR5cGVcIjtcbmNvbnN0IF9yZSA9IFwicmVzcG9uc2UtZXhwaXJlc1wiO1xuY29uc3QgX3MgPSBcInN0cmVhbWluZ1wiO1xuY29uc3QgX3NhID0gXCJzdGFydC1hZnRlclwiO1xuY29uc3QgX3NtID0gXCJzbWl0aHkudHMuc2RrLnN5bnRoZXRpYy5jb20uYW1hem9uYXdzLnMzXCI7XG5jb25zdCBfdUkgPSBcInVwbG9hZElkXCI7XG5jb25zdCBfdWltID0gXCJ1cGxvYWQtaWQtbWFya2VyXCI7XG5jb25zdCBfdkkgPSBcInZlcnNpb25JZFwiO1xuY29uc3QgX3ZpbSA9IFwidmVyc2lvbi1pZC1tYXJrZXJcIjtcbmNvbnN0IF94ID0gXCJ4c2lcIjtcbmNvbnN0IF94QSA9IFwieG1sQXR0cmlidXRlXCI7XG5jb25zdCBfeEYgPSBcInhtbEZsYXR0ZW5lZFwiO1xuY29uc3QgX3hOID0gXCJ4bWxOYW1lXCI7XG5jb25zdCBfeE5tID0gXCJ4bWxOYW1lc3BhY2VcIjtcbmNvbnN0IF94YWEgPSBcIngtYW16LWFjbFwiO1xuY29uc3QgX3hhYWQgPSBcIngtYW16LWFib3J0LWRhdGVcIjtcbmNvbnN0IF94YWFwYSA9IFwieC1hbXotYWNjZXNzLXBvaW50LWFsaWFzXCI7XG5jb25zdCBfeGFhcmkgPSBcIngtYW16LWFib3J0LXJ1bGUtaWRcIjtcbmNvbnN0IF94YWFzID0gXCJ4LWFtei1hcmNoaXZlLXN0YXR1c1wiO1xuY29uc3QgX3hhYmEgPSBcIngtYW16LWJ1Y2tldC1hcm5cIjtcbmNvbnN0IF94YWJnciA9IFwieC1hbXotYnlwYXNzLWdvdmVybmFuY2UtcmV0ZW50aW9uXCI7XG5jb25zdCBfeGFibG4gPSBcIngtYW16LWJ1Y2tldC1sb2NhdGlvbi1uYW1lXCI7XG5jb25zdCBfeGFibHQgPSBcIngtYW16LWJ1Y2tldC1sb2NhdGlvbi10eXBlXCI7XG5jb25zdCBfeGFib2xlID0gXCJ4LWFtei1idWNrZXQtb2JqZWN0LWxvY2stZW5hYmxlZFwiO1xuY29uc3QgX3hhYm9sdCA9IFwieC1hbXotYnVja2V0LW9iamVjdC1sb2NrLXRva2VuXCI7XG5jb25zdCBfeGFiciA9IFwieC1hbXotYnVja2V0LXJlZ2lvblwiO1xuY29uc3QgX3hhY2EgPSBcIngtYW16LWNoZWNrc3VtLWFsZ29yaXRobVwiO1xuY29uc3QgX3hhY2MgPSBcIngtYW16LWNoZWNrc3VtLWNyYzMyXCI7XG5jb25zdCBfeGFjY18gPSBcIngtYW16LWNoZWNrc3VtLWNyYzMyY1wiO1xuY29uc3QgX3hhY2NfXyA9IFwieC1hbXotY2hlY2tzdW0tY3JjNjRudm1lXCI7XG5jb25zdCBfeGFjbSA9IFwieC1hbXotY2hlY2tzdW0tbW9kZVwiO1xuY29uc3QgX3hhY3JzYmEgPSBcIngtYW16LWNvbmZpcm0tcmVtb3ZlLXNlbGYtYnVja2V0LWFjY2Vzc1wiO1xuY29uc3QgX3hhY3MgPSBcIngtYW16LWNoZWNrc3VtLXNoYTFcIjtcbmNvbnN0IF94YWNzXyA9IFwieC1hbXotY2hlY2tzdW0tc2hhMjU2XCI7XG5jb25zdCBfeGFjc19fID0gXCJ4LWFtei1jb3B5LXNvdXJjZVwiO1xuY29uc3QgX3hhY3NpbSA9IFwieC1hbXotY29weS1zb3VyY2UtaWYtbWF0Y2hcIjtcbmNvbnN0IF94YWNzaW1zID0gXCJ4LWFtei1jb3B5LXNvdXJjZS1pZi1tb2RpZmllZC1zaW5jZVwiO1xuY29uc3QgX3hhY3Npbm0gPSBcIngtYW16LWNvcHktc291cmNlLWlmLW5vbmUtbWF0Y2hcIjtcbmNvbnN0IF94YWNzaXVzID0gXCJ4LWFtei1jb3B5LXNvdXJjZS1pZi11bm1vZGlmaWVkLXNpbmNlXCI7XG5jb25zdCBfeGFjc20gPSBcIngtYW16LWNyZWF0ZS1zZXNzaW9uLW1vZGVcIjtcbmNvbnN0IF94YWNzciA9IFwieC1hbXotY29weS1zb3VyY2UtcmFuZ2VcIjtcbmNvbnN0IF94YWNzc3NlY2EgPSBcIngtYW16LWNvcHktc291cmNlLXNlcnZlci1zaWRlLWVuY3J5cHRpb24tY3VzdG9tZXItYWxnb3JpdGhtXCI7XG5jb25zdCBfeGFjc3NzZWNrID0gXCJ4LWFtei1jb3B5LXNvdXJjZS1zZXJ2ZXItc2lkZS1lbmNyeXB0aW9uLWN1c3RvbWVyLWtleVwiO1xuY29uc3QgX3hhY3Nzc2Vja00gPSBcIngtYW16LWNvcHktc291cmNlLXNlcnZlci1zaWRlLWVuY3J5cHRpb24tY3VzdG9tZXIta2V5LU1ENVwiO1xuY29uc3QgX3hhY3N2aSA9IFwieC1hbXotY29weS1zb3VyY2UtdmVyc2lvbi1pZFwiO1xuY29uc3QgX3hhY3QgPSBcIngtYW16LWNoZWNrc3VtLXR5cGVcIjtcbmNvbnN0IF94YWN0XyA9IFwieC1hbXotY2xpZW50LXRva2VuXCI7XG5jb25zdCBfeGFkbSA9IFwieC1hbXotZGVsZXRlLW1hcmtlclwiO1xuY29uc3QgX3hhZSA9IFwieC1hbXotZXhwaXJhdGlvblwiO1xuY29uc3QgX3hhZWJvID0gXCJ4LWFtei1leHBlY3RlZC1idWNrZXQtb3duZXJcIjtcbmNvbnN0IF94YWZlYyA9IFwieC1hbXotZndkLWVycm9yLWNvZGVcIjtcbmNvbnN0IF94YWZlbSA9IFwieC1hbXotZndkLWVycm9yLW1lc3NhZ2VcIjtcbmNvbnN0IF94YWZoQ0MgPSBcIngtYW16LWZ3ZC1oZWFkZXItQ2FjaGUtQ29udHJvbFwiO1xuY29uc3QgX3hhZmhDRCA9IFwieC1hbXotZndkLWhlYWRlci1Db250ZW50LURpc3Bvc2l0aW9uXCI7XG5jb25zdCBfeGFmaENFID0gXCJ4LWFtei1md2QtaGVhZGVyLUNvbnRlbnQtRW5jb2RpbmdcIjtcbmNvbnN0IF94YWZoQ0wgPSBcIngtYW16LWZ3ZC1oZWFkZXItQ29udGVudC1MYW5ndWFnZVwiO1xuY29uc3QgX3hhZmhDUiA9IFwieC1hbXotZndkLWhlYWRlci1Db250ZW50LVJhbmdlXCI7XG5jb25zdCBfeGFmaENUID0gXCJ4LWFtei1md2QtaGVhZGVyLUNvbnRlbnQtVHlwZVwiO1xuY29uc3QgX3hhZmhFID0gXCJ4LWFtei1md2QtaGVhZGVyLUVUYWdcIjtcbmNvbnN0IF94YWZoRV8gPSBcIngtYW16LWZ3ZC1oZWFkZXItRXhwaXJlc1wiO1xuY29uc3QgX3hhZmhMTSA9IFwieC1hbXotZndkLWhlYWRlci1MYXN0LU1vZGlmaWVkXCI7XG5jb25zdCBfeGFmaGFyID0gXCJ4LWFtei1md2QtaGVhZGVyLWFjY2VwdC1yYW5nZXNcIjtcbmNvbnN0IF94YWZoeGFjYyA9IFwieC1hbXotZndkLWhlYWRlci14LWFtei1jaGVja3N1bS1jcmMzMlwiO1xuY29uc3QgX3hhZmh4YWNjXyA9IFwieC1hbXotZndkLWhlYWRlci14LWFtei1jaGVja3N1bS1jcmMzMmNcIjtcbmNvbnN0IF94YWZoeGFjY19fID0gXCJ4LWFtei1md2QtaGVhZGVyLXgtYW16LWNoZWNrc3VtLWNyYzY0bnZtZVwiO1xuY29uc3QgX3hhZmh4YWNzID0gXCJ4LWFtei1md2QtaGVhZGVyLXgtYW16LWNoZWNrc3VtLXNoYTFcIjtcbmNvbnN0IF94YWZoeGFjc18gPSBcIngtYW16LWZ3ZC1oZWFkZXIteC1hbXotY2hlY2tzdW0tc2hhMjU2XCI7XG5jb25zdCBfeGFmaHhhZG0gPSBcIngtYW16LWZ3ZC1oZWFkZXIteC1hbXotZGVsZXRlLW1hcmtlclwiO1xuY29uc3QgX3hhZmh4YWUgPSBcIngtYW16LWZ3ZC1oZWFkZXIteC1hbXotZXhwaXJhdGlvblwiO1xuY29uc3QgX3hhZmh4YW1tID0gXCJ4LWFtei1md2QtaGVhZGVyLXgtYW16LW1pc3NpbmctbWV0YVwiO1xuY29uc3QgX3hhZmh4YW1wYyA9IFwieC1hbXotZndkLWhlYWRlci14LWFtei1tcC1wYXJ0cy1jb3VudFwiO1xuY29uc3QgX3hhZmh4YW9sbGggPSBcIngtYW16LWZ3ZC1oZWFkZXIteC1hbXotb2JqZWN0LWxvY2stbGVnYWwtaG9sZFwiO1xuY29uc3QgX3hhZmh4YW9sbSA9IFwieC1hbXotZndkLWhlYWRlci14LWFtei1vYmplY3QtbG9jay1tb2RlXCI7XG5jb25zdCBfeGFmaHhhb2xydWQgPSBcIngtYW16LWZ3ZC1oZWFkZXIteC1hbXotb2JqZWN0LWxvY2stcmV0YWluLXVudGlsLWRhdGVcIjtcbmNvbnN0IF94YWZoeGFyID0gXCJ4LWFtei1md2QtaGVhZGVyLXgtYW16LXJlc3RvcmVcIjtcbmNvbnN0IF94YWZoeGFyYyA9IFwieC1hbXotZndkLWhlYWRlci14LWFtei1yZXF1ZXN0LWNoYXJnZWRcIjtcbmNvbnN0IF94YWZoeGFycyA9IFwieC1hbXotZndkLWhlYWRlci14LWFtei1yZXBsaWNhdGlvbi1zdGF0dXNcIjtcbmNvbnN0IF94YWZoeGFzYyA9IFwieC1hbXotZndkLWhlYWRlci14LWFtei1zdG9yYWdlLWNsYXNzXCI7XG5jb25zdCBfeGFmaHhhc3NlID0gXCJ4LWFtei1md2QtaGVhZGVyLXgtYW16LXNlcnZlci1zaWRlLWVuY3J5cHRpb25cIjtcbmNvbnN0IF94YWZoeGFzc2Vha2tpID0gXCJ4LWFtei1md2QtaGVhZGVyLXgtYW16LXNlcnZlci1zaWRlLWVuY3J5cHRpb24tYXdzLWttcy1rZXktaWRcIjtcbmNvbnN0IF94YWZoeGFzc2Via2UgPSBcIngtYW16LWZ3ZC1oZWFkZXIteC1hbXotc2VydmVyLXNpZGUtZW5jcnlwdGlvbi1idWNrZXQta2V5LWVuYWJsZWRcIjtcbmNvbnN0IF94YWZoeGFzc2VjYSA9IFwieC1hbXotZndkLWhlYWRlci14LWFtei1zZXJ2ZXItc2lkZS1lbmNyeXB0aW9uLWN1c3RvbWVyLWFsZ29yaXRobVwiO1xuY29uc3QgX3hhZmh4YXNzZWNrTSA9IFwieC1hbXotZndkLWhlYWRlci14LWFtei1zZXJ2ZXItc2lkZS1lbmNyeXB0aW9uLWN1c3RvbWVyLWtleS1NRDVcIjtcbmNvbnN0IF94YWZoeGF0YyA9IFwieC1hbXotZndkLWhlYWRlci14LWFtei10YWdnaW5nLWNvdW50XCI7XG5jb25zdCBfeGFmaHhhdmkgPSBcIngtYW16LWZ3ZC1oZWFkZXIteC1hbXotdmVyc2lvbi1pZFwiO1xuY29uc3QgX3hhZnMgPSBcIngtYW16LWZ3ZC1zdGF0dXNcIjtcbmNvbnN0IF94YWdmYyA9IFwieC1hbXotZ3JhbnQtZnVsbC1jb250cm9sXCI7XG5jb25zdCBfeGFnciA9IFwieC1hbXotZ3JhbnQtcmVhZFwiO1xuY29uc3QgX3hhZ3JhID0gXCJ4LWFtei1ncmFudC1yZWFkLWFjcFwiO1xuY29uc3QgX3hhZ3cgPSBcIngtYW16LWdyYW50LXdyaXRlXCI7XG5jb25zdCBfeGFnd2EgPSBcIngtYW16LWdyYW50LXdyaXRlLWFjcFwiO1xuY29uc3QgX3hhaW1pdCA9IFwieC1hbXotaWYtbWF0Y2gtaW5pdGlhdGVkLXRpbWVcIjtcbmNvbnN0IF94YWltbG10ID0gXCJ4LWFtei1pZi1tYXRjaC1sYXN0LW1vZGlmaWVkLXRpbWVcIjtcbmNvbnN0IF94YWltcyA9IFwieC1hbXotaWYtbWF0Y2gtc2l6ZVwiO1xuY29uc3QgX3hhbSA9IFwieC1hbXotbWV0YS1cIjtcbmNvbnN0IF94YW1fID0gXCJ4LWFtei1tZmFcIjtcbmNvbnN0IF94YW1kID0gXCJ4LWFtei1tZXRhZGF0YS1kaXJlY3RpdmVcIjtcbmNvbnN0IF94YW1tID0gXCJ4LWFtei1taXNzaW5nLW1ldGFcIjtcbmNvbnN0IF94YW1vcyA9IFwieC1hbXotbXAtb2JqZWN0LXNpemVcIjtcbmNvbnN0IF94YW1wID0gXCJ4LWFtei1tYXgtcGFydHNcIjtcbmNvbnN0IF94YW1wYyA9IFwieC1hbXotbXAtcGFydHMtY291bnRcIjtcbmNvbnN0IF94YW9hID0gXCJ4LWFtei1vYmplY3QtYXR0cmlidXRlc1wiO1xuY29uc3QgX3hhb2xsaCA9IFwieC1hbXotb2JqZWN0LWxvY2stbGVnYWwtaG9sZFwiO1xuY29uc3QgX3hhb2xtID0gXCJ4LWFtei1vYmplY3QtbG9jay1tb2RlXCI7XG5jb25zdCBfeGFvbHJ1ZCA9IFwieC1hbXotb2JqZWN0LWxvY2stcmV0YWluLXVudGlsLWRhdGVcIjtcbmNvbnN0IF94YW9vID0gXCJ4LWFtei1vYmplY3Qtb3duZXJzaGlwXCI7XG5jb25zdCBfeGFvb2EgPSBcIngtYW16LW9wdGlvbmFsLW9iamVjdC1hdHRyaWJ1dGVzXCI7XG5jb25zdCBfeGFvcyA9IFwieC1hbXotb2JqZWN0LXNpemVcIjtcbmNvbnN0IF94YXBubSA9IFwieC1hbXotcGFydC1udW1iZXItbWFya2VyXCI7XG5jb25zdCBfeGFyID0gXCJ4LWFtei1yZXN0b3JlXCI7XG5jb25zdCBfeGFyYyA9IFwieC1hbXotcmVxdWVzdC1jaGFyZ2VkXCI7XG5jb25zdCBfeGFyb3AgPSBcIngtYW16LXJlc3RvcmUtb3V0cHV0LXBhdGhcIjtcbmNvbnN0IF94YXJwID0gXCJ4LWFtei1yZXF1ZXN0LXBheWVyXCI7XG5jb25zdCBfeGFyciA9IFwieC1hbXotcmVxdWVzdC1yb3V0ZVwiO1xuY29uc3QgX3hhcnMgPSBcIngtYW16LXJlcGxpY2F0aW9uLXN0YXR1c1wiO1xuY29uc3QgX3hhcnNfID0gXCJ4LWFtei1yZW5hbWUtc291cmNlXCI7XG5jb25zdCBfeGFyc2ltID0gXCJ4LWFtei1yZW5hbWUtc291cmNlLWlmLW1hdGNoXCI7XG5jb25zdCBfeGFyc2ltcyA9IFwieC1hbXotcmVuYW1lLXNvdXJjZS1pZi1tb2RpZmllZC1zaW5jZVwiO1xuY29uc3QgX3hhcnNpbm0gPSBcIngtYW16LXJlbmFtZS1zb3VyY2UtaWYtbm9uZS1tYXRjaFwiO1xuY29uc3QgX3hhcnNpdXMgPSBcIngtYW16LXJlbmFtZS1zb3VyY2UtaWYtdW5tb2RpZmllZC1zaW5jZVwiO1xuY29uc3QgX3hhcnQgPSBcIngtYW16LXJlcXVlc3QtdG9rZW5cIjtcbmNvbnN0IF94YXNjID0gXCJ4LWFtei1zdG9yYWdlLWNsYXNzXCI7XG5jb25zdCBfeGFzY2EgPSBcIngtYW16LXNkay1jaGVja3N1bS1hbGdvcml0aG1cIjtcbmNvbnN0IF94YXNkdiA9IFwieC1hbXotc2tpcC1kZXN0aW5hdGlvbi12YWxpZGF0aW9uXCI7XG5jb25zdCBfeGFzZWJvID0gXCJ4LWFtei1zb3VyY2UtZXhwZWN0ZWQtYnVja2V0LW93bmVyXCI7XG5jb25zdCBfeGFzc2UgPSBcIngtYW16LXNlcnZlci1zaWRlLWVuY3J5cHRpb25cIjtcbmNvbnN0IF94YXNzZWFra2kgPSBcIngtYW16LXNlcnZlci1zaWRlLWVuY3J5cHRpb24tYXdzLWttcy1rZXktaWRcIjtcbmNvbnN0IF94YXNzZWJrZSA9IFwieC1hbXotc2VydmVyLXNpZGUtZW5jcnlwdGlvbi1idWNrZXQta2V5LWVuYWJsZWRcIjtcbmNvbnN0IF94YXNzZWMgPSBcIngtYW16LXNlcnZlci1zaWRlLWVuY3J5cHRpb24tY29udGV4dFwiO1xuY29uc3QgX3hhc3NlY2EgPSBcIngtYW16LXNlcnZlci1zaWRlLWVuY3J5cHRpb24tY3VzdG9tZXItYWxnb3JpdGhtXCI7XG5jb25zdCBfeGFzc2VjayA9IFwieC1hbXotc2VydmVyLXNpZGUtZW5jcnlwdGlvbi1jdXN0b21lci1rZXlcIjtcbmNvbnN0IF94YXNzZWNrTSA9IFwieC1hbXotc2VydmVyLXNpZGUtZW5jcnlwdGlvbi1jdXN0b21lci1rZXktTUQ1XCI7XG5jb25zdCBfeGF0ID0gXCJ4LWFtei10YWdnaW5nXCI7XG5jb25zdCBfeGF0YyA9IFwieC1hbXotdGFnZ2luZy1jb3VudFwiO1xuY29uc3QgX3hhdGQgPSBcIngtYW16LXRhZ2dpbmctZGlyZWN0aXZlXCI7XG5jb25zdCBfeGF0ZG1vcyA9IFwieC1hbXotdHJhbnNpdGlvbi1kZWZhdWx0LW1pbmltdW0tb2JqZWN0LXNpemVcIjtcbmNvbnN0IF94YXZpID0gXCJ4LWFtei12ZXJzaW9uLWlkXCI7XG5jb25zdCBfeGF3b2IgPSBcIngtYW16LXdyaXRlLW9mZnNldC1ieXRlc1wiO1xuY29uc3QgX3hhd3JsID0gXCJ4LWFtei13ZWJzaXRlLXJlZGlyZWN0LWxvY2F0aW9uXCI7XG5jb25zdCBfeHMgPSBcInhzaTp0eXBlXCI7XG5jb25zdCBuMCA9IFwiY29tLmFtYXpvbmF3cy5zM1wiO1xudmFyIENvcHlTb3VyY2VTU0VDdXN0b21lcktleSA9IFswLCBuMCwgX0NTU1NFQ0ssIDgsIDBdO1xudmFyIFNlc3Npb25DcmVkZW50aWFsVmFsdWUgPSBbMCwgbjAsIF9TQ1YsIDgsIDBdO1xudmFyIFNTRUN1c3RvbWVyS2V5ID0gWzAsIG4wLCBfU1NFQ0ssIDgsIDBdO1xudmFyIFNTRUtNU0VuY3J5cHRpb25Db250ZXh0ID0gWzAsIG4wLCBfU1NFS01TRUMsIDgsIDBdO1xudmFyIFNTRUtNU0tleUlkID0gWzAsIG4wLCBfU1NFS01TS0ksIDgsIDBdO1xudmFyIFN0cmVhbWluZ0Jsb2IgPSBbMCwgbjAsIF9TQiwgeyBbX3NdOiAxIH0sIDQyXTtcbnZhciBBYmFjU3RhdHVzID0gWzMsIG4wLCBfQVMsIDAsIFtfU10sIFswXV07XG52YXIgQWJvcnRJbmNvbXBsZXRlTXVsdGlwYXJ0VXBsb2FkID0gWzMsIG4wLCBfQUlNVSwgMCwgW19EQUldLCBbMV1dO1xudmFyIEFib3J0TXVsdGlwYXJ0VXBsb2FkT3V0cHV0ID0gWzMsIG4wLCBfQU1VTywgMCwgW19SQ10sIFtbMCwgeyBbX2hIXTogX3hhcmMgfV1dXTtcbnZhciBBYm9ydE11bHRpcGFydFVwbG9hZFJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfQU1VUixcbiAgICAwLFxuICAgIFtfQiwgX0ssIF9VSSwgX1JQLCBfRUJPLCBfSU1JVF0sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oUV06IF91SSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXJwIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZWJvIH1dLFxuICAgICAgICBbNiwgeyBbX2hIXTogX3hhaW1pdCB9XSxcbiAgICBdLFxuXTtcbnZhciBBY2NlbGVyYXRlQ29uZmlndXJhdGlvbiA9IFszLCBuMCwgX0FDLCAwLCBbX1NdLCBbMF1dO1xudmFyIEFjY2Vzc0NvbnRyb2xQb2xpY3kgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfQUNQLFxuICAgIDAsXG4gICAgW19HLCBfT10sXG4gICAgW1soKSA9PiBHcmFudHMsIHsgW194Tl06IF9BQ0wgfV0sICgpID0+IE93bmVyXSxcbl07XG52YXIgQWNjZXNzQ29udHJvbFRyYW5zbGF0aW9uID0gWzMsIG4wLCBfQUNULCAwLCBbX09dLCBbMF1dO1xudmFyIEFuYWx5dGljc0FuZE9wZXJhdG9yID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0FBTyxcbiAgICAwLFxuICAgIFtfUCwgX1RdLFxuICAgIFswLCBbKCkgPT4gVGFnU2V0LCB7IFtfeE5dOiBfVGEsIFtfeEZdOiAxIH1dXSxcbl07XG52YXIgQW5hbHl0aWNzQ29uZmlndXJhdGlvbiA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9BQ24sXG4gICAgMCxcbiAgICBbX0ksIF9GLCBfU0NBXSxcbiAgICBbMCwgWygpID0+IEFuYWx5dGljc0ZpbHRlciwgMF0sICgpID0+IFN0b3JhZ2VDbGFzc0FuYWx5c2lzXSxcbl07XG52YXIgQW5hbHl0aWNzRXhwb3J0RGVzdGluYXRpb24gPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfQUVELFxuICAgIDAsXG4gICAgW19TQkRdLFxuICAgIFsoKSA9PiBBbmFseXRpY3NTM0J1Y2tldERlc3RpbmF0aW9uXSxcbl07XG52YXIgQW5hbHl0aWNzUzNCdWNrZXREZXN0aW5hdGlvbiA9IFszLCBuMCwgX0FTQkQsIDAsIFtfRm8sIF9CQUksIF9CLCBfUF0sIFswLCAwLCAwLCAwXV07XG52YXIgQmxvY2tlZEVuY3J5cHRpb25UeXBlcyA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9CRVQsXG4gICAgMCxcbiAgICBbX0VUXSxcbiAgICBbWygpID0+IEVuY3J5cHRpb25UeXBlTGlzdCwgeyBbX3hGXTogMSB9XV0sXG5dO1xudmFyIEJ1Y2tldCA9IFszLCBuMCwgX0IsIDAsIFtfTiwgX0NELCBfQlIsIF9CQV0sIFswLCA0LCAwLCAwXV07XG52YXIgQnVja2V0QWxyZWFkeUV4aXN0cyA9IFstMywgbjAsIF9CQUUsIHsgW19lXTogX2MsIFtfaEVdOiA0MDkgfSwgW10sIFtdXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKEJ1Y2tldEFscmVhZHlFeGlzdHMsIEJ1Y2tldEFscmVhZHlFeGlzdHMkMSk7XG52YXIgQnVja2V0QWxyZWFkeU93bmVkQnlZb3UgPSBbLTMsIG4wLCBfQkFPQlksIHsgW19lXTogX2MsIFtfaEVdOiA0MDkgfSwgW10sIFtdXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKEJ1Y2tldEFscmVhZHlPd25lZEJ5WW91LCBCdWNrZXRBbHJlYWR5T3duZWRCeVlvdSQxKTtcbnZhciBCdWNrZXRJbmZvID0gWzMsIG4wLCBfQkksIDAsIFtfRFIsIF9UeV0sIFswLCAwXV07XG52YXIgQnVja2V0TGlmZWN5Y2xlQ29uZmlndXJhdGlvbiA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9CTEMsXG4gICAgMCxcbiAgICBbX1JdLFxuICAgIFtbKCkgPT4gTGlmZWN5Y2xlUnVsZXMsIHsgW194Tl06IF9SdSwgW194Rl06IDEgfV1dLFxuXTtcbnZhciBCdWNrZXRMb2dnaW5nU3RhdHVzID0gWzMsIG4wLCBfQkxTLCAwLCBbX0xFXSwgW1soKSA9PiBMb2dnaW5nRW5hYmxlZCwgMF1dXTtcbnZhciBDaGVja3N1bSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9DLFxuICAgIDAsXG4gICAgW19DQ1JDLCBfQ0NSQ0MsIF9DQ1JDTlZNRSwgX0NTSEEsIF9DU0hBaCwgX0NUXSxcbiAgICBbMCwgMCwgMCwgMCwgMCwgMF0sXG5dO1xudmFyIENvbW1vblByZWZpeCA9IFszLCBuMCwgX0NQLCAwLCBbX1BdLCBbMF1dO1xudmFyIENvbXBsZXRlZE11bHRpcGFydFVwbG9hZCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9DTVUsXG4gICAgMCxcbiAgICBbX1BhXSxcbiAgICBbWygpID0+IENvbXBsZXRlZFBhcnRMaXN0LCB7IFtfeE5dOiBfUGFyLCBbX3hGXTogMSB9XV0sXG5dO1xudmFyIENvbXBsZXRlZFBhcnQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfQ1BvLFxuICAgIDAsXG4gICAgW19FVGEsIF9DQ1JDLCBfQ0NSQ0MsIF9DQ1JDTlZNRSwgX0NTSEEsIF9DU0hBaCwgX1BOXSxcbiAgICBbMCwgMCwgMCwgMCwgMCwgMCwgMV0sXG5dO1xudmFyIENvbXBsZXRlTXVsdGlwYXJ0VXBsb2FkT3V0cHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0NNVU8sXG4gICAgeyBbX3hOXTogX0NNVVIgfSxcbiAgICBbX0wsIF9CLCBfSywgX0UsIF9FVGEsIF9DQ1JDLCBfQ0NSQ0MsIF9DQ1JDTlZNRSwgX0NTSEEsIF9DU0hBaCwgX0NULCBfU1NFLCBfVkksIF9TU0VLTVNLSSwgX0JLRSwgX1JDXSxcbiAgICBbXG4gICAgICAgIDAsXG4gICAgICAgIDAsXG4gICAgICAgIDAsXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFlIH1dLFxuICAgICAgICAwLFxuICAgICAgICAwLFxuICAgICAgICAwLFxuICAgICAgICAwLFxuICAgICAgICAwLFxuICAgICAgICAwLFxuICAgICAgICAwLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhc3NlIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhdmkgfV0sXG4gICAgICAgIFsoKSA9PiBTU0VLTVNLZXlJZCwgeyBbX2hIXTogX3hhc3NlYWtraSB9XSxcbiAgICAgICAgWzIsIHsgW19oSF06IF94YXNzZWJrZSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXJjIH1dLFxuICAgIF0sXG5dO1xudmFyIENvbXBsZXRlTXVsdGlwYXJ0VXBsb2FkUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9DTVVSbyxcbiAgICAwLFxuICAgIFtcbiAgICAgICAgX0IsXG4gICAgICAgIF9LLFxuICAgICAgICBfTVUsXG4gICAgICAgIF9VSSxcbiAgICAgICAgX0NDUkMsXG4gICAgICAgIF9DQ1JDQyxcbiAgICAgICAgX0NDUkNOVk1FLFxuICAgICAgICBfQ1NIQSxcbiAgICAgICAgX0NTSEFoLFxuICAgICAgICBfQ1QsXG4gICAgICAgIF9NT1MsXG4gICAgICAgIF9SUCxcbiAgICAgICAgX0VCTyxcbiAgICAgICAgX0lNLFxuICAgICAgICBfSU5NLFxuICAgICAgICBfU1NFQ0EsXG4gICAgICAgIF9TU0VDSyxcbiAgICAgICAgX1NTRUNLTUQsXG4gICAgXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbKCkgPT4gQ29tcGxldGVkTXVsdGlwYXJ0VXBsb2FkLCB7IFtfeE5dOiBfQ01VbywgW19oUF06IDEgfV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfdUkgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFjYyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWNjXyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWNjX18gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFjcyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWNzXyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWN0IH1dLFxuICAgICAgICBbMSwgeyBbX2hIXTogX3hhbW9zIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhcnAgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFlYm8gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfSU1fIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX0lOTV8gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFzc2VjYSB9XSxcbiAgICAgICAgWygpID0+IFNTRUN1c3RvbWVyS2V5LCB7IFtfaEhdOiBfeGFzc2VjayB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNzZWNrTSB9XSxcbiAgICBdLFxuXTtcbnZhciBDb25kaXRpb24gPSBbMywgbjAsIF9DbywgMCwgW19IRUNSRSwgX0tQRV0sIFswLCAwXV07XG52YXIgQ29udGludWF0aW9uRXZlbnQgPSBbMywgbjAsIF9DRSwgMCwgW10sIFtdXTtcbnZhciBDb3B5T2JqZWN0T3V0cHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0NPTyxcbiAgICAwLFxuICAgIFtfQ09SLCBfRSwgX0NTVkksIF9WSSwgX1NTRSwgX1NTRUNBLCBfU1NFQ0tNRCwgX1NTRUtNU0tJLCBfU1NFS01TRUMsIF9CS0UsIF9SQ10sXG4gICAgW1xuICAgICAgICBbKCkgPT4gQ29weU9iamVjdFJlc3VsdCwgMTZdLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWNzdmkgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGF2aSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNzZSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNzZWNhIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhc3NlY2tNIH1dLFxuICAgICAgICBbKCkgPT4gU1NFS01TS2V5SWQsIHsgW19oSF06IF94YXNzZWFra2kgfV0sXG4gICAgICAgIFsoKSA9PiBTU0VLTVNFbmNyeXB0aW9uQ29udGV4dCwgeyBbX2hIXTogX3hhc3NlYyB9XSxcbiAgICAgICAgWzIsIHsgW19oSF06IF94YXNzZWJrZSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXJjIH1dLFxuICAgIF0sXG5dO1xudmFyIENvcHlPYmplY3RSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0NPUm8sXG4gICAgMCxcbiAgICBbXG4gICAgICAgIF9BQ0xfLFxuICAgICAgICBfQixcbiAgICAgICAgX0NDLFxuICAgICAgICBfQ0EsXG4gICAgICAgIF9DRG8sXG4gICAgICAgIF9DRW8sXG4gICAgICAgIF9DTCxcbiAgICAgICAgX0NUbyxcbiAgICAgICAgX0NTLFxuICAgICAgICBfQ1NJTSxcbiAgICAgICAgX0NTSU1TLFxuICAgICAgICBfQ1NJTk0sXG4gICAgICAgIF9DU0lVUyxcbiAgICAgICAgX0V4LFxuICAgICAgICBfR0ZDLFxuICAgICAgICBfR1IsXG4gICAgICAgIF9HUkFDUCxcbiAgICAgICAgX0dXQUNQLFxuICAgICAgICBfSU0sXG4gICAgICAgIF9JTk0sXG4gICAgICAgIF9LLFxuICAgICAgICBfTSxcbiAgICAgICAgX01ELFxuICAgICAgICBfVEQsXG4gICAgICAgIF9TU0UsXG4gICAgICAgIF9TQyxcbiAgICAgICAgX1dSTCxcbiAgICAgICAgX1NTRUNBLFxuICAgICAgICBfU1NFQ0ssXG4gICAgICAgIF9TU0VDS01ELFxuICAgICAgICBfU1NFS01TS0ksXG4gICAgICAgIF9TU0VLTVNFQyxcbiAgICAgICAgX0JLRSxcbiAgICAgICAgX0NTU1NFQ0EsXG4gICAgICAgIF9DU1NTRUNLLFxuICAgICAgICBfQ1NTU0VDS01ELFxuICAgICAgICBfUlAsXG4gICAgICAgIF9UYWcsXG4gICAgICAgIF9PTE0sXG4gICAgICAgIF9PTFJVRCxcbiAgICAgICAgX09MTEhTLFxuICAgICAgICBfRUJPLFxuICAgICAgICBfRVNCTyxcbiAgICBdLFxuICAgIFtcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWEgfV0sXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oSF06IF9DQ18gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFjYSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF9DRF8gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfQ0VfIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX0NMXyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF9DVF8gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFjc19fIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhY3NpbSB9XSxcbiAgICAgICAgWzQsIHsgW19oSF06IF94YWNzaW1zIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhY3Npbm0gfV0sXG4gICAgICAgIFs0LCB7IFtfaEhdOiBfeGFjc2l1cyB9XSxcbiAgICAgICAgWzQsIHsgW19oSF06IF9FeCB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWdmYyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWdyIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZ3JhIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZ3dhIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX0lNXyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF9JTk1fIH1dLFxuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFsxMjggfCAwLCB7IFtfaFBIXTogX3hhbSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YW1kIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhdGQgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFzc2UgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFzYyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXdybCB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNzZWNhIH1dLFxuICAgICAgICBbKCkgPT4gU1NFQ3VzdG9tZXJLZXksIHsgW19oSF06IF94YXNzZWNrIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhc3NlY2tNIH1dLFxuICAgICAgICBbKCkgPT4gU1NFS01TS2V5SWQsIHsgW19oSF06IF94YXNzZWFra2kgfV0sXG4gICAgICAgIFsoKSA9PiBTU0VLTVNFbmNyeXB0aW9uQ29udGV4dCwgeyBbX2hIXTogX3hhc3NlYyB9XSxcbiAgICAgICAgWzIsIHsgW19oSF06IF94YXNzZWJrZSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWNzc3NlY2EgfV0sXG4gICAgICAgIFsoKSA9PiBDb3B5U291cmNlU1NFQ3VzdG9tZXJLZXksIHsgW19oSF06IF94YWNzc3NlY2sgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFjc3NzZWNrTSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXJwIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhdCB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YW9sbSB9XSxcbiAgICAgICAgWzUsIHsgW19oSF06IF94YW9scnVkIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhb2xsaCB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNlYm8gfV0sXG4gICAgXSxcbl07XG52YXIgQ29weU9iamVjdFJlc3VsdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9DT1IsXG4gICAgMCxcbiAgICBbX0VUYSwgX0xNLCBfQ1QsIF9DQ1JDLCBfQ0NSQ0MsIF9DQ1JDTlZNRSwgX0NTSEEsIF9DU0hBaF0sXG4gICAgWzAsIDQsIDAsIDAsIDAsIDAsIDAsIDBdLFxuXTtcbnZhciBDb3B5UGFydFJlc3VsdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9DUFIsXG4gICAgMCxcbiAgICBbX0VUYSwgX0xNLCBfQ0NSQywgX0NDUkNDLCBfQ0NSQ05WTUUsIF9DU0hBLCBfQ1NIQWhdLFxuICAgIFswLCA0LCAwLCAwLCAwLCAwLCAwXSxcbl07XG52YXIgQ09SU0NvbmZpZ3VyYXRpb24gPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfQ09SU0MsXG4gICAgMCxcbiAgICBbX0NPUlNSXSxcbiAgICBbWygpID0+IENPUlNSdWxlcywgeyBbX3hOXTogX0NPUlNSdSwgW194Rl06IDEgfV1dLFxuXTtcbnZhciBDT1JTUnVsZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9DT1JTUnUsXG4gICAgMCxcbiAgICBbX0lELCBfQUgsIF9BTSwgX0FPLCBfRUgsIF9NQVNdLFxuICAgIFtcbiAgICAgICAgMCxcbiAgICAgICAgWzY0IHwgMCwgeyBbX3hOXTogX0FIbCwgW194Rl06IDEgfV0sXG4gICAgICAgIFs2NCB8IDAsIHsgW194Tl06IF9BTWwsIFtfeEZdOiAxIH1dLFxuICAgICAgICBbNjQgfCAwLCB7IFtfeE5dOiBfQU9sLCBbX3hGXTogMSB9XSxcbiAgICAgICAgWzY0IHwgMCwgeyBbX3hOXTogX0VIeCwgW194Rl06IDEgfV0sXG4gICAgICAgIDEsXG4gICAgXSxcbl07XG52YXIgQ3JlYXRlQnVja2V0Q29uZmlndXJhdGlvbiA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9DQkMsXG4gICAgMCxcbiAgICBbX0xDLCBfTCwgX0IsIF9UXSxcbiAgICBbMCwgKCkgPT4gTG9jYXRpb25JbmZvLCAoKSA9PiBCdWNrZXRJbmZvLCBbKCkgPT4gVGFnU2V0LCAwXV0sXG5dO1xudmFyIENyZWF0ZUJ1Y2tldE1ldGFkYXRhQ29uZmlndXJhdGlvblJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfQ0JNQ1IsXG4gICAgMCxcbiAgICBbX0IsIF9DTUQsIF9DQSwgX01DLCBfRUJPXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oSF06IF9DTSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNjYSB9XSxcbiAgICAgICAgWygpID0+IE1ldGFkYXRhQ29uZmlndXJhdGlvbiwgeyBbX3hOXTogX01DLCBbX2hQXTogMSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICBdLFxuXTtcbnZhciBDcmVhdGVCdWNrZXRNZXRhZGF0YVRhYmxlQ29uZmlndXJhdGlvblJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfQ0JNVENSLFxuICAgIDAsXG4gICAgW19CLCBfQ01ELCBfQ0EsIF9NVEMsIF9FQk9dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hIXTogX0NNIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhc2NhIH1dLFxuICAgICAgICBbKCkgPT4gTWV0YWRhdGFUYWJsZUNvbmZpZ3VyYXRpb24sIHsgW194Tl06IF9NVEMsIFtfaFBdOiAxIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZWJvIH1dLFxuICAgIF0sXG5dO1xudmFyIENyZWF0ZUJ1Y2tldE91dHB1dCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9DQk8sXG4gICAgMCxcbiAgICBbX0wsIF9CQV0sXG4gICAgW1xuICAgICAgICBbMCwgeyBbX2hIXTogX0wgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFiYSB9XSxcbiAgICBdLFxuXTtcbnZhciBDcmVhdGVCdWNrZXRSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0NCUixcbiAgICAwLFxuICAgIFtfQUNMXywgX0IsIF9DQkMsIF9HRkMsIF9HUiwgX0dSQUNQLCBfR1csIF9HV0FDUCwgX09MRUZCLCBfT09dLFxuICAgIFtcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWEgfV0sXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWygpID0+IENyZWF0ZUJ1Y2tldENvbmZpZ3VyYXRpb24sIHsgW194Tl06IF9DQkMsIFtfaFBdOiAxIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZ2ZjIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZ3IgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFncmEgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFndyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWd3YSB9XSxcbiAgICAgICAgWzIsIHsgW19oSF06IF94YWJvbGUgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFvbyB9XSxcbiAgICBdLFxuXTtcbnZhciBDcmVhdGVNdWx0aXBhcnRVcGxvYWRPdXRwdXQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfQ01VT3IsXG4gICAgeyBbX3hOXTogX0lNVVIgfSxcbiAgICBbX0FELCBfQVJJLCBfQiwgX0ssIF9VSSwgX1NTRSwgX1NTRUNBLCBfU1NFQ0tNRCwgX1NTRUtNU0tJLCBfU1NFS01TRUMsIF9CS0UsIF9SQywgX0NBLCBfQ1RdLFxuICAgIFtcbiAgICAgICAgWzQsIHsgW19oSF06IF94YWFkIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhYXJpIH1dLFxuICAgICAgICBbMCwgeyBbX3hOXTogX0IgfV0sXG4gICAgICAgIDAsXG4gICAgICAgIDAsXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFzc2UgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFzc2VjYSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNzZWNrTSB9XSxcbiAgICAgICAgWygpID0+IFNTRUtNU0tleUlkLCB7IFtfaEhdOiBfeGFzc2Vha2tpIH1dLFxuICAgICAgICBbKCkgPT4gU1NFS01TRW5jcnlwdGlvbkNvbnRleHQsIHsgW19oSF06IF94YXNzZWMgfV0sXG4gICAgICAgIFsyLCB7IFtfaEhdOiBfeGFzc2Via2UgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFyYyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWNhIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhY3QgfV0sXG4gICAgXSxcbl07XG52YXIgQ3JlYXRlTXVsdGlwYXJ0VXBsb2FkUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9DTVVScixcbiAgICAwLFxuICAgIFtcbiAgICAgICAgX0FDTF8sXG4gICAgICAgIF9CLFxuICAgICAgICBfQ0MsXG4gICAgICAgIF9DRG8sXG4gICAgICAgIF9DRW8sXG4gICAgICAgIF9DTCxcbiAgICAgICAgX0NUbyxcbiAgICAgICAgX0V4LFxuICAgICAgICBfR0ZDLFxuICAgICAgICBfR1IsXG4gICAgICAgIF9HUkFDUCxcbiAgICAgICAgX0dXQUNQLFxuICAgICAgICBfSyxcbiAgICAgICAgX00sXG4gICAgICAgIF9TU0UsXG4gICAgICAgIF9TQyxcbiAgICAgICAgX1dSTCxcbiAgICAgICAgX1NTRUNBLFxuICAgICAgICBfU1NFQ0ssXG4gICAgICAgIF9TU0VDS01ELFxuICAgICAgICBfU1NFS01TS0ksXG4gICAgICAgIF9TU0VLTVNFQyxcbiAgICAgICAgX0JLRSxcbiAgICAgICAgX1JQLFxuICAgICAgICBfVGFnLFxuICAgICAgICBfT0xNLFxuICAgICAgICBfT0xSVUQsXG4gICAgICAgIF9PTExIUyxcbiAgICAgICAgX0VCTyxcbiAgICAgICAgX0NBLFxuICAgICAgICBfQ1QsXG4gICAgXSxcbiAgICBbXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFhIH1dLFxuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfQ0NfIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX0NEXyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF9DRV8gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfQ0xfIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX0NUXyB9XSxcbiAgICAgICAgWzQsIHsgW19oSF06IF9FeCB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWdmYyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWdyIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZ3JhIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZ3dhIH1dLFxuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFsxMjggfCAwLCB7IFtfaFBIXTogX3hhbSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNzZSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNjIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhd3JsIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhc3NlY2EgfV0sXG4gICAgICAgIFsoKSA9PiBTU0VDdXN0b21lcktleSwgeyBbX2hIXTogX3hhc3NlY2sgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFzc2Vja00gfV0sXG4gICAgICAgIFsoKSA9PiBTU0VLTVNLZXlJZCwgeyBbX2hIXTogX3hhc3NlYWtraSB9XSxcbiAgICAgICAgWygpID0+IFNTRUtNU0VuY3J5cHRpb25Db250ZXh0LCB7IFtfaEhdOiBfeGFzc2VjIH1dLFxuICAgICAgICBbMiwgeyBbX2hIXTogX3hhc3NlYmtlIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhcnAgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGF0IH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhb2xtIH1dLFxuICAgICAgICBbNSwgeyBbX2hIXTogX3hhb2xydWQgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFvbGxoIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZWJvIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhY2EgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFjdCB9XSxcbiAgICBdLFxuXTtcbnZhciBDcmVhdGVTZXNzaW9uT3V0cHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0NTTyxcbiAgICB7IFtfeE5dOiBfQ1NSIH0sXG4gICAgW19TU0UsIF9TU0VLTVNLSSwgX1NTRUtNU0VDLCBfQktFLCBfQ3JdLFxuICAgIFtcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNzZSB9XSxcbiAgICAgICAgWygpID0+IFNTRUtNU0tleUlkLCB7IFtfaEhdOiBfeGFzc2Vha2tpIH1dLFxuICAgICAgICBbKCkgPT4gU1NFS01TRW5jcnlwdGlvbkNvbnRleHQsIHsgW19oSF06IF94YXNzZWMgfV0sXG4gICAgICAgIFsyLCB7IFtfaEhdOiBfeGFzc2Via2UgfV0sXG4gICAgICAgIFsoKSA9PiBTZXNzaW9uQ3JlZGVudGlhbHMsIHsgW194Tl06IF9DciB9XSxcbiAgICBdLFxuXTtcbnZhciBDcmVhdGVTZXNzaW9uUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9DU1JyLFxuICAgIDAsXG4gICAgW19TTSwgX0IsIF9TU0UsIF9TU0VLTVNLSSwgX1NTRUtNU0VDLCBfQktFXSxcbiAgICBbXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFjc20gfV0sXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNzZSB9XSxcbiAgICAgICAgWygpID0+IFNTRUtNU0tleUlkLCB7IFtfaEhdOiBfeGFzc2Vha2tpIH1dLFxuICAgICAgICBbKCkgPT4gU1NFS01TRW5jcnlwdGlvbkNvbnRleHQsIHsgW19oSF06IF94YXNzZWMgfV0sXG4gICAgICAgIFsyLCB7IFtfaEhdOiBfeGFzc2Via2UgfV0sXG4gICAgXSxcbl07XG52YXIgQ1NWSW5wdXQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfQ1NWSW4sXG4gICAgMCxcbiAgICBbX0ZISSwgX0NvbSwgX1FFQywgX1JELCBfRkQsIF9RQywgX0FRUkRdLFxuICAgIFswLCAwLCAwLCAwLCAwLCAwLCAyXSxcbl07XG52YXIgQ1NWT3V0cHV0ID0gWzMsIG4wLCBfQ1NWTywgMCwgW19RRiwgX1FFQywgX1JELCBfRkQsIF9RQ10sIFswLCAwLCAwLCAwLCAwXV07XG52YXIgRGVmYXVsdFJldGVudGlvbiA9IFszLCBuMCwgX0RSZSwgMCwgW19NbywgX0QsIF9ZXSwgWzAsIDEsIDFdXTtcbnZhciBEZWxldGUgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfRGUsXG4gICAgMCxcbiAgICBbX09iLCBfUV0sXG4gICAgW1soKSA9PiBPYmplY3RJZGVudGlmaWVyTGlzdCwgeyBbX3hOXTogX09iaiwgW194Rl06IDEgfV0sIDJdLFxuXTtcbnZhciBEZWxldGVCdWNrZXRBbmFseXRpY3NDb25maWd1cmF0aW9uUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9EQkFDUixcbiAgICAwLFxuICAgIFtfQiwgX0ksIF9FQk9dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hRXTogX2kgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFlYm8gfV0sXG4gICAgXSxcbl07XG52YXIgRGVsZXRlQnVja2V0Q29yc1JlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfREJDUixcbiAgICAwLFxuICAgIFtfQiwgX0VCT10sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFlYm8gfV0sXG4gICAgXSxcbl07XG52YXIgRGVsZXRlQnVja2V0RW5jcnlwdGlvblJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfREJFUixcbiAgICAwLFxuICAgIFtfQiwgX0VCT10sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFlYm8gfV0sXG4gICAgXSxcbl07XG52YXIgRGVsZXRlQnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvblJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfREJJVENSLFxuICAgIDAsXG4gICAgW19CLCBfSSwgX0VCT10sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfaSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICBdLFxuXTtcbnZhciBEZWxldGVCdWNrZXRJbnZlbnRvcnlDb25maWd1cmF0aW9uUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9EQklDUixcbiAgICAwLFxuICAgIFtfQiwgX0ksIF9FQk9dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hRXTogX2kgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFlYm8gfV0sXG4gICAgXSxcbl07XG52YXIgRGVsZXRlQnVja2V0TGlmZWN5Y2xlUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9EQkxSLFxuICAgIDAsXG4gICAgW19CLCBfRUJPXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICBdLFxuXTtcbnZhciBEZWxldGVCdWNrZXRNZXRhZGF0YUNvbmZpZ3VyYXRpb25SZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0RCTUNSLFxuICAgIDAsXG4gICAgW19CLCBfRUJPXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICBdLFxuXTtcbnZhciBEZWxldGVCdWNrZXRNZXRhZGF0YVRhYmxlQ29uZmlndXJhdGlvblJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfREJNVENSLFxuICAgIDAsXG4gICAgW19CLCBfRUJPXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICBdLFxuXTtcbnZhciBEZWxldGVCdWNrZXRNZXRyaWNzQ29uZmlndXJhdGlvblJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfREJNQ1JlLFxuICAgIDAsXG4gICAgW19CLCBfSSwgX0VCT10sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfaSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICBdLFxuXTtcbnZhciBEZWxldGVCdWNrZXRPd25lcnNoaXBDb250cm9sc1JlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfREJPQ1IsXG4gICAgMCxcbiAgICBbX0IsIF9FQk9dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZWJvIH1dLFxuICAgIF0sXG5dO1xudmFyIERlbGV0ZUJ1Y2tldFBvbGljeVJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfREJQUixcbiAgICAwLFxuICAgIFtfQiwgX0VCT10sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFlYm8gfV0sXG4gICAgXSxcbl07XG52YXIgRGVsZXRlQnVja2V0UmVwbGljYXRpb25SZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0RCUlIsXG4gICAgMCxcbiAgICBbX0IsIF9FQk9dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZWJvIH1dLFxuICAgIF0sXG5dO1xudmFyIERlbGV0ZUJ1Y2tldFJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfREJSLFxuICAgIDAsXG4gICAgW19CLCBfRUJPXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICBdLFxuXTtcbnZhciBEZWxldGVCdWNrZXRUYWdnaW5nUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9EQlRSLFxuICAgIDAsXG4gICAgW19CLCBfRUJPXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICBdLFxuXTtcbnZhciBEZWxldGVCdWNrZXRXZWJzaXRlUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9EQldSLFxuICAgIDAsXG4gICAgW19CLCBfRUJPXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICBdLFxuXTtcbnZhciBEZWxldGVkT2JqZWN0ID0gWzMsIG4wLCBfRE8sIDAsIFtfSywgX1ZJLCBfRE0sIF9ETVZJXSwgWzAsIDAsIDIsIDBdXTtcbnZhciBEZWxldGVNYXJrZXJFbnRyeSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9ETUUsXG4gICAgMCxcbiAgICBbX08sIF9LLCBfVkksIF9JTCwgX0xNXSxcbiAgICBbKCkgPT4gT3duZXIsIDAsIDAsIDIsIDRdLFxuXTtcbnZhciBEZWxldGVNYXJrZXJSZXBsaWNhdGlvbiA9IFszLCBuMCwgX0RNUiwgMCwgW19TXSwgWzBdXTtcbnZhciBEZWxldGVPYmplY3RPdXRwdXQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfRE9PLFxuICAgIDAsXG4gICAgW19ETSwgX1ZJLCBfUkNdLFxuICAgIFtcbiAgICAgICAgWzIsIHsgW19oSF06IF94YWRtIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhdmkgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFyYyB9XSxcbiAgICBdLFxuXTtcbnZhciBEZWxldGVPYmplY3RSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0RPUixcbiAgICAwLFxuICAgIFtfQiwgX0ssIF9NRkEsIF9WSSwgX1JQLCBfQkdSLCBfRUJPLCBfSU0sIF9JTUxNVCwgX0lNU10sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YW1fIH1dLFxuICAgICAgICBbMCwgeyBbX2hRXTogX3ZJIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhcnAgfV0sXG4gICAgICAgIFsyLCB7IFtfaEhdOiBfeGFiZ3IgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFlYm8gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfSU1fIH1dLFxuICAgICAgICBbNiwgeyBbX2hIXTogX3hhaW1sbXQgfV0sXG4gICAgICAgIFsxLCB7IFtfaEhdOiBfeGFpbXMgfV0sXG4gICAgXSxcbl07XG52YXIgRGVsZXRlT2JqZWN0c091dHB1dCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9ET09lLFxuICAgIHsgW194Tl06IF9EUmVsIH0sXG4gICAgW19EZWwsIF9SQywgX0VyXSxcbiAgICBbXG4gICAgICAgIFsoKSA9PiBEZWxldGVkT2JqZWN0cywgeyBbX3hGXTogMSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXJjIH1dLFxuICAgICAgICBbKCkgPT4gRXJyb3JzLCB7IFtfeE5dOiBfRXJyLCBbX3hGXTogMSB9XSxcbiAgICBdLFxuXTtcbnZhciBEZWxldGVPYmplY3RzUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9ET1JlLFxuICAgIDAsXG4gICAgW19CLCBfRGUsIF9NRkEsIF9SUCwgX0JHUiwgX0VCTywgX0NBXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWygpID0+IERlbGV0ZSwgeyBbX3hOXTogX0RlLCBbX2hQXTogMSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YW1fIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhcnAgfV0sXG4gICAgICAgIFsyLCB7IFtfaEhdOiBfeGFiZ3IgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFlYm8gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFzY2EgfV0sXG4gICAgXSxcbl07XG52YXIgRGVsZXRlT2JqZWN0VGFnZ2luZ091dHB1dCA9IFszLCBuMCwgX0RPVE8sIDAsIFtfVkldLCBbWzAsIHsgW19oSF06IF94YXZpIH1dXV07XG52YXIgRGVsZXRlT2JqZWN0VGFnZ2luZ1JlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfRE9UUixcbiAgICAwLFxuICAgIFtfQiwgX0ssIF9WSSwgX0VCT10sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oUV06IF92SSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICBdLFxuXTtcbnZhciBEZWxldGVQdWJsaWNBY2Nlc3NCbG9ja1JlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfRFBBQlIsXG4gICAgMCxcbiAgICBbX0IsIF9FQk9dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZWJvIH1dLFxuICAgIF0sXG5dO1xudmFyIERlc3RpbmF0aW9uID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0RlcyxcbiAgICAwLFxuICAgIFtfQiwgX0EsIF9TQywgX0FDVCwgX0VDLCBfUlQsIF9NZV0sXG4gICAgWzAsIDAsIDAsICgpID0+IEFjY2Vzc0NvbnRyb2xUcmFuc2xhdGlvbiwgKCkgPT4gRW5jcnlwdGlvbkNvbmZpZ3VyYXRpb24sICgpID0+IFJlcGxpY2F0aW9uVGltZSwgKCkgPT4gTWV0cmljc10sXG5dO1xudmFyIERlc3RpbmF0aW9uUmVzdWx0ID0gWzMsIG4wLCBfRFJlcywgMCwgW19UQlQsIF9UQkEsIF9UTl0sIFswLCAwLCAwXV07XG52YXIgRW5jcnlwdGlvbiA9IFszLCBuMCwgX0VuLCAwLCBbX0VULCBfS01TS0ksIF9LTVNDXSwgWzAsIFsoKSA9PiBTU0VLTVNLZXlJZCwgMF0sIDBdXTtcbnZhciBFbmNyeXB0aW9uQ29uZmlndXJhdGlvbiA9IFszLCBuMCwgX0VDLCAwLCBbX1JLS0lEXSwgWzBdXTtcbnZhciBFbmNyeXB0aW9uVHlwZU1pc21hdGNoID0gWy0zLCBuMCwgX0VUTSwgeyBbX2VdOiBfYywgW19oRV06IDQwMCB9LCBbXSwgW11dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoRW5jcnlwdGlvblR5cGVNaXNtYXRjaCwgRW5jcnlwdGlvblR5cGVNaXNtYXRjaCQxKTtcbnZhciBFbmRFdmVudCA9IFszLCBuMCwgX0VFLCAwLCBbXSwgW11dO1xudmFyIF9FcnJvciA9IFszLCBuMCwgX0VyciwgMCwgW19LLCBfVkksIF9Db2QsIF9NZXNdLCBbMCwgMCwgMCwgMF1dO1xudmFyIEVycm9yRGV0YWlscyA9IFszLCBuMCwgX0VELCAwLCBbX0VDciwgX0VNXSwgWzAsIDBdXTtcbnZhciBFcnJvckRvY3VtZW50ID0gWzMsIG4wLCBfRURyLCAwLCBbX0tdLCBbMF1dO1xudmFyIEV2ZW50QnJpZGdlQ29uZmlndXJhdGlvbiA9IFszLCBuMCwgX0VCQywgMCwgW10sIFtdXTtcbnZhciBFeGlzdGluZ09iamVjdFJlcGxpY2F0aW9uID0gWzMsIG4wLCBfRU9SLCAwLCBbX1NdLCBbMF1dO1xudmFyIEZpbHRlclJ1bGUgPSBbMywgbjAsIF9GUiwgMCwgW19OLCBfVl0sIFswLCAwXV07XG52YXIgR2V0QnVja2V0QWJhY091dHB1dCA9IFszLCBuMCwgX0dCQU8sIDAsIFtfQVNdLCBbWygpID0+IEFiYWNTdGF0dXMsIDE2XV1dO1xudmFyIEdldEJ1Y2tldEFiYWNSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dCQVIsXG4gICAgMCxcbiAgICBbX0IsIF9FQk9dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZWJvIH1dLFxuICAgIF0sXG5dO1xudmFyIEdldEJ1Y2tldEFjY2VsZXJhdGVDb25maWd1cmF0aW9uT3V0cHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dCQUNPLFxuICAgIHsgW194Tl06IF9BQyB9LFxuICAgIFtfUywgX1JDXSxcbiAgICBbMCwgWzAsIHsgW19oSF06IF94YXJjIH1dXSxcbl07XG52YXIgR2V0QnVja2V0QWNjZWxlcmF0ZUNvbmZpZ3VyYXRpb25SZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dCQUNSLFxuICAgIDAsXG4gICAgW19CLCBfRUJPLCBfUlBdLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZWJvIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhcnAgfV0sXG4gICAgXSxcbl07XG52YXIgR2V0QnVja2V0QWNsT3V0cHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dCQU9lLFxuICAgIHsgW194Tl06IF9BQ1AgfSxcbiAgICBbX08sIF9HXSxcbiAgICBbKCkgPT4gT3duZXIsIFsoKSA9PiBHcmFudHMsIHsgW194Tl06IF9BQ0wgfV1dLFxuXTtcbnZhciBHZXRCdWNrZXRBY2xSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dCQVJlLFxuICAgIDAsXG4gICAgW19CLCBfRUJPXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICBdLFxuXTtcbnZhciBHZXRCdWNrZXRBbmFseXRpY3NDb25maWd1cmF0aW9uT3V0cHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dCQUNPZSxcbiAgICAwLFxuICAgIFtfQUNuXSxcbiAgICBbWygpID0+IEFuYWx5dGljc0NvbmZpZ3VyYXRpb24sIDE2XV0sXG5dO1xudmFyIEdldEJ1Y2tldEFuYWx5dGljc0NvbmZpZ3VyYXRpb25SZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dCQUNSZSxcbiAgICAwLFxuICAgIFtfQiwgX0ksIF9FQk9dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hRXTogX2kgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFlYm8gfV0sXG4gICAgXSxcbl07XG52YXIgR2V0QnVja2V0Q29yc091dHB1dCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HQkNPLFxuICAgIHsgW194Tl06IF9DT1JTQyB9LFxuICAgIFtfQ09SU1JdLFxuICAgIFtbKCkgPT4gQ09SU1J1bGVzLCB7IFtfeE5dOiBfQ09SU1J1LCBbX3hGXTogMSB9XV0sXG5dO1xudmFyIEdldEJ1Y2tldENvcnNSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dCQ1IsXG4gICAgMCxcbiAgICBbX0IsIF9FQk9dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZWJvIH1dLFxuICAgIF0sXG5dO1xudmFyIEdldEJ1Y2tldEVuY3J5cHRpb25PdXRwdXQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfR0JFTyxcbiAgICAwLFxuICAgIFtfU1NFQ10sXG4gICAgW1soKSA9PiBTZXJ2ZXJTaWRlRW5jcnlwdGlvbkNvbmZpZ3VyYXRpb24sIDE2XV0sXG5dO1xudmFyIEdldEJ1Y2tldEVuY3J5cHRpb25SZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dCRVIsXG4gICAgMCxcbiAgICBbX0IsIF9FQk9dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZWJvIH1dLFxuICAgIF0sXG5dO1xudmFyIEdldEJ1Y2tldEludGVsbGlnZW50VGllcmluZ0NvbmZpZ3VyYXRpb25PdXRwdXQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfR0JJVENPLFxuICAgIDAsXG4gICAgW19JVENdLFxuICAgIFtbKCkgPT4gSW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvbiwgMTZdXSxcbl07XG52YXIgR2V0QnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvblJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfR0JJVENSLFxuICAgIDAsXG4gICAgW19CLCBfSSwgX0VCT10sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfaSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICBdLFxuXTtcbnZhciBHZXRCdWNrZXRJbnZlbnRvcnlDb25maWd1cmF0aW9uT3V0cHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dCSUNPLFxuICAgIDAsXG4gICAgW19JQ10sXG4gICAgW1soKSA9PiBJbnZlbnRvcnlDb25maWd1cmF0aW9uLCAxNl1dLFxuXTtcbnZhciBHZXRCdWNrZXRJbnZlbnRvcnlDb25maWd1cmF0aW9uUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HQklDUixcbiAgICAwLFxuICAgIFtfQiwgX0ksIF9FQk9dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hRXTogX2kgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFlYm8gfV0sXG4gICAgXSxcbl07XG52YXIgR2V0QnVja2V0TGlmZWN5Y2xlQ29uZmlndXJhdGlvbk91dHB1dCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HQkxDTyxcbiAgICB7IFtfeE5dOiBfTENpIH0sXG4gICAgW19SLCBfVERNT1NdLFxuICAgIFtcbiAgICAgICAgWygpID0+IExpZmVjeWNsZVJ1bGVzLCB7IFtfeE5dOiBfUnUsIFtfeEZdOiAxIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhdGRtb3MgfV0sXG4gICAgXSxcbl07XG52YXIgR2V0QnVja2V0TGlmZWN5Y2xlQ29uZmlndXJhdGlvblJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfR0JMQ1IsXG4gICAgMCxcbiAgICBbX0IsIF9FQk9dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZWJvIH1dLFxuICAgIF0sXG5dO1xudmFyIEdldEJ1Y2tldExvY2F0aW9uT3V0cHV0ID0gWzMsIG4wLCBfR0JMTywgeyBbX3hOXTogX0xDIH0sIFtfTENdLCBbMF1dO1xudmFyIEdldEJ1Y2tldExvY2F0aW9uUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HQkxSLFxuICAgIDAsXG4gICAgW19CLCBfRUJPXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICBdLFxuXTtcbnZhciBHZXRCdWNrZXRMb2dnaW5nT3V0cHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dCTE9lLFxuICAgIHsgW194Tl06IF9CTFMgfSxcbiAgICBbX0xFXSxcbiAgICBbWygpID0+IExvZ2dpbmdFbmFibGVkLCAwXV0sXG5dO1xudmFyIEdldEJ1Y2tldExvZ2dpbmdSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dCTFJlLFxuICAgIDAsXG4gICAgW19CLCBfRUJPXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICBdLFxuXTtcbnZhciBHZXRCdWNrZXRNZXRhZGF0YUNvbmZpZ3VyYXRpb25PdXRwdXQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfR0JNQ08sXG4gICAgMCxcbiAgICBbX0dCTUNSXSxcbiAgICBbWygpID0+IEdldEJ1Y2tldE1ldGFkYXRhQ29uZmlndXJhdGlvblJlc3VsdCwgMTZdXSxcbl07XG52YXIgR2V0QnVja2V0TWV0YWRhdGFDb25maWd1cmF0aW9uUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HQk1DUmUsXG4gICAgMCxcbiAgICBbX0IsIF9FQk9dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZWJvIH1dLFxuICAgIF0sXG5dO1xudmFyIEdldEJ1Y2tldE1ldGFkYXRhQ29uZmlndXJhdGlvblJlc3VsdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HQk1DUixcbiAgICAwLFxuICAgIFtfTUNSXSxcbiAgICBbKCkgPT4gTWV0YWRhdGFDb25maWd1cmF0aW9uUmVzdWx0XSxcbl07XG52YXIgR2V0QnVja2V0TWV0YWRhdGFUYWJsZUNvbmZpZ3VyYXRpb25PdXRwdXQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfR0JNVENPLFxuICAgIDAsXG4gICAgW19HQk1UQ1JdLFxuICAgIFtbKCkgPT4gR2V0QnVja2V0TWV0YWRhdGFUYWJsZUNvbmZpZ3VyYXRpb25SZXN1bHQsIDE2XV0sXG5dO1xudmFyIEdldEJ1Y2tldE1ldGFkYXRhVGFibGVDb25maWd1cmF0aW9uUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HQk1UQ1JlLFxuICAgIDAsXG4gICAgW19CLCBfRUJPXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICBdLFxuXTtcbnZhciBHZXRCdWNrZXRNZXRhZGF0YVRhYmxlQ29uZmlndXJhdGlvblJlc3VsdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HQk1UQ1IsXG4gICAgMCxcbiAgICBbX01UQ1IsIF9TLCBfRXJyXSxcbiAgICBbKCkgPT4gTWV0YWRhdGFUYWJsZUNvbmZpZ3VyYXRpb25SZXN1bHQsIDAsICgpID0+IEVycm9yRGV0YWlsc10sXG5dO1xudmFyIEdldEJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9uT3V0cHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dCTUNPZSxcbiAgICAwLFxuICAgIFtfTUNlXSxcbiAgICBbWygpID0+IE1ldHJpY3NDb25maWd1cmF0aW9uLCAxNl1dLFxuXTtcbnZhciBHZXRCdWNrZXRNZXRyaWNzQ29uZmlndXJhdGlvblJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfR0JNQ1JldCxcbiAgICAwLFxuICAgIFtfQiwgX0ksIF9FQk9dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hRXTogX2kgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFlYm8gfV0sXG4gICAgXSxcbl07XG52YXIgR2V0QnVja2V0Tm90aWZpY2F0aW9uQ29uZmlndXJhdGlvblJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfR0JOQ1IsXG4gICAgMCxcbiAgICBbX0IsIF9FQk9dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZWJvIH1dLFxuICAgIF0sXG5dO1xudmFyIEdldEJ1Y2tldE93bmVyc2hpcENvbnRyb2xzT3V0cHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dCT0NPLFxuICAgIDAsXG4gICAgW19PQ10sXG4gICAgW1soKSA9PiBPd25lcnNoaXBDb250cm9scywgMTZdXSxcbl07XG52YXIgR2V0QnVja2V0T3duZXJzaGlwQ29udHJvbHNSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dCT0NSLFxuICAgIDAsXG4gICAgW19CLCBfRUJPXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICBdLFxuXTtcbnZhciBHZXRCdWNrZXRQb2xpY3lPdXRwdXQgPSBbMywgbjAsIF9HQlBPLCAwLCBbX1BvXSwgW1swLCAxNl1dXTtcbnZhciBHZXRCdWNrZXRQb2xpY3lSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dCUFIsXG4gICAgMCxcbiAgICBbX0IsIF9FQk9dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZWJvIH1dLFxuICAgIF0sXG5dO1xudmFyIEdldEJ1Y2tldFBvbGljeVN0YXR1c091dHB1dCA9IFszLCBuMCwgX0dCUFNPLCAwLCBbX1BTXSwgW1soKSA9PiBQb2xpY3lTdGF0dXMsIDE2XV1dO1xudmFyIEdldEJ1Y2tldFBvbGljeVN0YXR1c1JlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfR0JQU1IsXG4gICAgMCxcbiAgICBbX0IsIF9FQk9dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZWJvIH1dLFxuICAgIF0sXG5dO1xudmFyIEdldEJ1Y2tldFJlcGxpY2F0aW9uT3V0cHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dCUk8sXG4gICAgMCxcbiAgICBbX1JDZV0sXG4gICAgW1soKSA9PiBSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb24sIDE2XV0sXG5dO1xudmFyIEdldEJ1Y2tldFJlcGxpY2F0aW9uUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HQlJSLFxuICAgIDAsXG4gICAgW19CLCBfRUJPXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICBdLFxuXTtcbnZhciBHZXRCdWNrZXRSZXF1ZXN0UGF5bWVudE91dHB1dCA9IFszLCBuMCwgX0dCUlBPLCB7IFtfeE5dOiBfUlBDIH0sIFtfUGF5XSwgWzBdXTtcbnZhciBHZXRCdWNrZXRSZXF1ZXN0UGF5bWVudFJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfR0JSUFIsXG4gICAgMCxcbiAgICBbX0IsIF9FQk9dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZWJvIH1dLFxuICAgIF0sXG5dO1xudmFyIEdldEJ1Y2tldFRhZ2dpbmdPdXRwdXQgPSBbMywgbjAsIF9HQlRPLCB7IFtfeE5dOiBfVGFnIH0sIFtfVFNdLCBbWygpID0+IFRhZ1NldCwgMF1dXTtcbnZhciBHZXRCdWNrZXRUYWdnaW5nUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HQlRSLFxuICAgIDAsXG4gICAgW19CLCBfRUJPXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICBdLFxuXTtcbnZhciBHZXRCdWNrZXRWZXJzaW9uaW5nT3V0cHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dCVk8sXG4gICAgeyBbX3hOXTogX1ZDIH0sXG4gICAgW19TLCBfTUZBRF0sXG4gICAgWzAsIFswLCB7IFtfeE5dOiBfTURmIH1dXSxcbl07XG52YXIgR2V0QnVja2V0VmVyc2lvbmluZ1JlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfR0JWUixcbiAgICAwLFxuICAgIFtfQiwgX0VCT10sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFlYm8gfV0sXG4gICAgXSxcbl07XG52YXIgR2V0QnVja2V0V2Vic2l0ZU91dHB1dCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HQldPLFxuICAgIHsgW194Tl06IF9XQyB9LFxuICAgIFtfUkFSVCwgX0lEbiwgX0VEciwgX1JSXSxcbiAgICBbKCkgPT4gUmVkaXJlY3RBbGxSZXF1ZXN0c1RvLCAoKSA9PiBJbmRleERvY3VtZW50LCAoKSA9PiBFcnJvckRvY3VtZW50LCBbKCkgPT4gUm91dGluZ1J1bGVzLCAwXV0sXG5dO1xudmFyIEdldEJ1Y2tldFdlYnNpdGVSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dCV1IsXG4gICAgMCxcbiAgICBbX0IsIF9FQk9dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZWJvIH1dLFxuICAgIF0sXG5dO1xudmFyIEdldE9iamVjdEFjbE91dHB1dCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HT0FPLFxuICAgIHsgW194Tl06IF9BQ1AgfSxcbiAgICBbX08sIF9HLCBfUkNdLFxuICAgIFsoKSA9PiBPd25lciwgWygpID0+IEdyYW50cywgeyBbX3hOXTogX0FDTCB9XSwgWzAsIHsgW19oSF06IF94YXJjIH1dXSxcbl07XG52YXIgR2V0T2JqZWN0QWNsUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HT0FSLFxuICAgIDAsXG4gICAgW19CLCBfSywgX1ZJLCBfUlAsIF9FQk9dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfdkkgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFycCB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICBdLFxuXTtcbnZhciBHZXRPYmplY3RBdHRyaWJ1dGVzT3V0cHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dPQU9lLFxuICAgIHsgW194Tl06IF9HT0FSZSB9LFxuICAgIFtfRE0sIF9MTSwgX1ZJLCBfUkMsIF9FVGEsIF9DLCBfT1AsIF9TQywgX09TXSxcbiAgICBbXG4gICAgICAgIFsyLCB7IFtfaEhdOiBfeGFkbSB9XSxcbiAgICAgICAgWzQsIHsgW19oSF06IF9MTV8gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGF2aSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXJjIH1dLFxuICAgICAgICAwLFxuICAgICAgICAoKSA9PiBDaGVja3N1bSxcbiAgICAgICAgWygpID0+IEdldE9iamVjdEF0dHJpYnV0ZXNQYXJ0cywgMF0sXG4gICAgICAgIDAsXG4gICAgICAgIDEsXG4gICAgXSxcbl07XG52YXIgR2V0T2JqZWN0QXR0cmlidXRlc1BhcnRzID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dPQVAsXG4gICAgMCxcbiAgICBbX1RQQywgX1BOTSwgX05QTk0sIF9NUCwgX0lULCBfUGFdLFxuICAgIFtbMSwgeyBbX3hOXTogX1BDIH1dLCAwLCAwLCAxLCAyLCBbKCkgPT4gUGFydHNMaXN0LCB7IFtfeE5dOiBfUGFyLCBbX3hGXTogMSB9XV0sXG5dO1xudmFyIEdldE9iamVjdEF0dHJpYnV0ZXNSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dPQVJldCxcbiAgICAwLFxuICAgIFtfQiwgX0ssIF9WSSwgX01QLCBfUE5NLCBfU1NFQ0EsIF9TU0VDSywgX1NTRUNLTUQsIF9SUCwgX0VCTywgX09BXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hRXTogX3ZJIH1dLFxuICAgICAgICBbMSwgeyBbX2hIXTogX3hhbXAgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFwbm0gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFzc2VjYSB9XSxcbiAgICAgICAgWygpID0+IFNTRUN1c3RvbWVyS2V5LCB7IFtfaEhdOiBfeGFzc2VjayB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNzZWNrTSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXJwIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZWJvIH1dLFxuICAgICAgICBbNjQgfCAwLCB7IFtfaEhdOiBfeGFvYSB9XSxcbiAgICBdLFxuXTtcbnZhciBHZXRPYmplY3RMZWdhbEhvbGRPdXRwdXQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfR09MSE8sXG4gICAgMCxcbiAgICBbX0xIXSxcbiAgICBbWygpID0+IE9iamVjdExvY2tMZWdhbEhvbGQsIHsgW194Tl06IF9MSCwgW19oUF06IDEgfV1dLFxuXTtcbnZhciBHZXRPYmplY3RMZWdhbEhvbGRSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dPTEhSLFxuICAgIDAsXG4gICAgW19CLCBfSywgX1ZJLCBfUlAsIF9FQk9dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfdkkgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFycCB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICBdLFxuXTtcbnZhciBHZXRPYmplY3RMb2NrQ29uZmlndXJhdGlvbk91dHB1dCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HT0xDTyxcbiAgICAwLFxuICAgIFtfT0xDXSxcbiAgICBbWygpID0+IE9iamVjdExvY2tDb25maWd1cmF0aW9uLCAxNl1dLFxuXTtcbnZhciBHZXRPYmplY3RMb2NrQ29uZmlndXJhdGlvblJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfR09MQ1IsXG4gICAgMCxcbiAgICBbX0IsIF9FQk9dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZWJvIH1dLFxuICAgIF0sXG5dO1xudmFyIEdldE9iamVjdE91dHB1dCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HT08sXG4gICAgMCxcbiAgICBbXG4gICAgICAgIF9CbyxcbiAgICAgICAgX0RNLFxuICAgICAgICBfQVIsXG4gICAgICAgIF9FLFxuICAgICAgICBfUmUsXG4gICAgICAgIF9MTSxcbiAgICAgICAgX0NMbyxcbiAgICAgICAgX0VUYSxcbiAgICAgICAgX0NDUkMsXG4gICAgICAgIF9DQ1JDQyxcbiAgICAgICAgX0NDUkNOVk1FLFxuICAgICAgICBfQ1NIQSxcbiAgICAgICAgX0NTSEFoLFxuICAgICAgICBfQ1QsXG4gICAgICAgIF9NTSxcbiAgICAgICAgX1ZJLFxuICAgICAgICBfQ0MsXG4gICAgICAgIF9DRG8sXG4gICAgICAgIF9DRW8sXG4gICAgICAgIF9DTCxcbiAgICAgICAgX0NSLFxuICAgICAgICBfQ1RvLFxuICAgICAgICBfRXgsXG4gICAgICAgIF9FUyxcbiAgICAgICAgX1dSTCxcbiAgICAgICAgX1NTRSxcbiAgICAgICAgX00sXG4gICAgICAgIF9TU0VDQSxcbiAgICAgICAgX1NTRUNLTUQsXG4gICAgICAgIF9TU0VLTVNLSSxcbiAgICAgICAgX0JLRSxcbiAgICAgICAgX1NDLFxuICAgICAgICBfUkMsXG4gICAgICAgIF9SUyxcbiAgICAgICAgX1BDLFxuICAgICAgICBfVEMsXG4gICAgICAgIF9PTE0sXG4gICAgICAgIF9PTFJVRCxcbiAgICAgICAgX09MTEhTLFxuICAgIF0sXG4gICAgW1xuICAgICAgICBbKCkgPT4gU3RyZWFtaW5nQmxvYiwgMTZdLFxuICAgICAgICBbMiwgeyBbX2hIXTogX3hhZG0gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfYXIgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFlIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhciB9XSxcbiAgICAgICAgWzQsIHsgW19oSF06IF9MTV8gfV0sXG4gICAgICAgIFsxLCB7IFtfaEhdOiBfQ0xfXyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF9FVGEgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFjYyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWNjXyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWNjX18gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFjcyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWNzXyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWN0IH1dLFxuICAgICAgICBbMSwgeyBbX2hIXTogX3hhbW0gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGF2aSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF9DQ18gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfQ0RfIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX0NFXyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF9DTF8gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfQ1JfIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX0NUXyB9XSxcbiAgICAgICAgWzQsIHsgW19oSF06IF9FeCB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF9FUyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXdybCB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNzZSB9XSxcbiAgICAgICAgWzEyOCB8IDAsIHsgW19oUEhdOiBfeGFtIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhc3NlY2EgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFzc2Vja00gfV0sXG4gICAgICAgIFsoKSA9PiBTU0VLTVNLZXlJZCwgeyBbX2hIXTogX3hhc3NlYWtraSB9XSxcbiAgICAgICAgWzIsIHsgW19oSF06IF94YXNzZWJrZSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNjIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhcmMgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFycyB9XSxcbiAgICAgICAgWzEsIHsgW19oSF06IF94YW1wYyB9XSxcbiAgICAgICAgWzEsIHsgW19oSF06IF94YXRjIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhb2xtIH1dLFxuICAgICAgICBbNSwgeyBbX2hIXTogX3hhb2xydWQgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFvbGxoIH1dLFxuICAgIF0sXG5dO1xudmFyIEdldE9iamVjdFJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfR09SLFxuICAgIDAsXG4gICAgW1xuICAgICAgICBfQixcbiAgICAgICAgX0lNLFxuICAgICAgICBfSU1TZixcbiAgICAgICAgX0lOTSxcbiAgICAgICAgX0lVUyxcbiAgICAgICAgX0ssXG4gICAgICAgIF9SYSxcbiAgICAgICAgX1JDQyxcbiAgICAgICAgX1JDRCxcbiAgICAgICAgX1JDRSxcbiAgICAgICAgX1JDTCxcbiAgICAgICAgX1JDVCxcbiAgICAgICAgX1JFLFxuICAgICAgICBfVkksXG4gICAgICAgIF9TU0VDQSxcbiAgICAgICAgX1NTRUNLLFxuICAgICAgICBfU1NFQ0tNRCxcbiAgICAgICAgX1JQLFxuICAgICAgICBfUE4sXG4gICAgICAgIF9FQk8sXG4gICAgICAgIF9DTWgsXG4gICAgXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oSF06IF9JTV8gfV0sXG4gICAgICAgIFs0LCB7IFtfaEhdOiBfSU1TXyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF9JTk1fIH1dLFxuICAgICAgICBbNCwgeyBbX2hIXTogX0lVU18gfV0sXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oSF06IF9SYSB9XSxcbiAgICAgICAgWzAsIHsgW19oUV06IF9yY2MgfV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfcmNkIH1dLFxuICAgICAgICBbMCwgeyBbX2hRXTogX3JjZSB9XSxcbiAgICAgICAgWzAsIHsgW19oUV06IF9yY2wgfV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfcmN0IH1dLFxuICAgICAgICBbNiwgeyBbX2hRXTogX3JlIH1dLFxuICAgICAgICBbMCwgeyBbX2hRXTogX3ZJIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhc3NlY2EgfV0sXG4gICAgICAgIFsoKSA9PiBTU0VDdXN0b21lcktleSwgeyBbX2hIXTogX3hhc3NlY2sgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFzc2Vja00gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFycCB9XSxcbiAgICAgICAgWzEsIHsgW19oUV06IF9wTiB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWNtIH1dLFxuICAgIF0sXG5dO1xudmFyIEdldE9iamVjdFJldGVudGlvbk91dHB1dCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HT1JPLFxuICAgIDAsXG4gICAgW19SZXRdLFxuICAgIFtbKCkgPT4gT2JqZWN0TG9ja1JldGVudGlvbiwgeyBbX3hOXTogX1JldCwgW19oUF06IDEgfV1dLFxuXTtcbnZhciBHZXRPYmplY3RSZXRlbnRpb25SZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dPUlIsXG4gICAgMCxcbiAgICBbX0IsIF9LLCBfVkksIF9SUCwgX0VCT10sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oUV06IF92SSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXJwIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZWJvIH1dLFxuICAgIF0sXG5dO1xudmFyIEdldE9iamVjdFRhZ2dpbmdPdXRwdXQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfR09UTyxcbiAgICB7IFtfeE5dOiBfVGFnIH0sXG4gICAgW19WSSwgX1RTXSxcbiAgICBbXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGF2aSB9XSxcbiAgICAgICAgWygpID0+IFRhZ1NldCwgMF0sXG4gICAgXSxcbl07XG52YXIgR2V0T2JqZWN0VGFnZ2luZ1JlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfR09UUixcbiAgICAwLFxuICAgIFtfQiwgX0ssIF9WSSwgX0VCTywgX1JQXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hRXTogX3ZJIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZWJvIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhcnAgfV0sXG4gICAgXSxcbl07XG52YXIgR2V0T2JqZWN0VG9ycmVudE91dHB1dCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HT1RPZSxcbiAgICAwLFxuICAgIFtfQm8sIF9SQ10sXG4gICAgW1xuICAgICAgICBbKCkgPT4gU3RyZWFtaW5nQmxvYiwgMTZdLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhcmMgfV0sXG4gICAgXSxcbl07XG52YXIgR2V0T2JqZWN0VG9ycmVudFJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfR09UUmUsXG4gICAgMCxcbiAgICBbX0IsIF9LLCBfUlAsIF9FQk9dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFycCB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICBdLFxuXTtcbnZhciBHZXRQdWJsaWNBY2Nlc3NCbG9ja091dHB1dCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HUEFCTyxcbiAgICAwLFxuICAgIFtfUEFCQ10sXG4gICAgW1soKSA9PiBQdWJsaWNBY2Nlc3NCbG9ja0NvbmZpZ3VyYXRpb24sIDE2XV0sXG5dO1xudmFyIEdldFB1YmxpY0FjY2Vzc0Jsb2NrUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HUEFCUixcbiAgICAwLFxuICAgIFtfQiwgX0VCT10sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFlYm8gfV0sXG4gICAgXSxcbl07XG52YXIgR2xhY2llckpvYlBhcmFtZXRlcnMgPSBbMywgbjAsIF9HSlAsIDAsIFtfVGldLCBbMF1dO1xudmFyIEdyYW50ID0gWzMsIG4wLCBfR3IsIDAsIFtfR3JhLCBfUGVdLCBbWygpID0+IEdyYW50ZWUsIHsgW194Tm1dOiBbX3gsIF9oaV0gfV0sIDBdXTtcbnZhciBHcmFudGVlID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dyYSxcbiAgICAwLFxuICAgIFtfRE4sIF9FQSwgX0lELCBfVVJJLCBfVHldLFxuICAgIFswLCAwLCAwLCAwLCBbMCwgeyBbX3hOXTogX3hzLCBbX3hBXTogMSB9XV0sXG5dO1xudmFyIEhlYWRCdWNrZXRPdXRwdXQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfSEJPLFxuICAgIDAsXG4gICAgW19CQSwgX0JMVCwgX0JMTiwgX0JSLCBfQVBBXSxcbiAgICBbXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFiYSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWJsdCB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWJsbiB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWJyIH1dLFxuICAgICAgICBbMiwgeyBbX2hIXTogX3hhYXBhIH1dLFxuICAgIF0sXG5dO1xudmFyIEhlYWRCdWNrZXRSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0hCUixcbiAgICAwLFxuICAgIFtfQiwgX0VCT10sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFlYm8gfV0sXG4gICAgXSxcbl07XG52YXIgSGVhZE9iamVjdE91dHB1dCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9IT08sXG4gICAgMCxcbiAgICBbXG4gICAgICAgIF9ETSxcbiAgICAgICAgX0FSLFxuICAgICAgICBfRSxcbiAgICAgICAgX1JlLFxuICAgICAgICBfQVNyLFxuICAgICAgICBfTE0sXG4gICAgICAgIF9DTG8sXG4gICAgICAgIF9DQ1JDLFxuICAgICAgICBfQ0NSQ0MsXG4gICAgICAgIF9DQ1JDTlZNRSxcbiAgICAgICAgX0NTSEEsXG4gICAgICAgIF9DU0hBaCxcbiAgICAgICAgX0NULFxuICAgICAgICBfRVRhLFxuICAgICAgICBfTU0sXG4gICAgICAgIF9WSSxcbiAgICAgICAgX0NDLFxuICAgICAgICBfQ0RvLFxuICAgICAgICBfQ0VvLFxuICAgICAgICBfQ0wsXG4gICAgICAgIF9DVG8sXG4gICAgICAgIF9DUixcbiAgICAgICAgX0V4LFxuICAgICAgICBfRVMsXG4gICAgICAgIF9XUkwsXG4gICAgICAgIF9TU0UsXG4gICAgICAgIF9NLFxuICAgICAgICBfU1NFQ0EsXG4gICAgICAgIF9TU0VDS01ELFxuICAgICAgICBfU1NFS01TS0ksXG4gICAgICAgIF9CS0UsXG4gICAgICAgIF9TQyxcbiAgICAgICAgX1JDLFxuICAgICAgICBfUlMsXG4gICAgICAgIF9QQyxcbiAgICAgICAgX1RDLFxuICAgICAgICBfT0xNLFxuICAgICAgICBfT0xSVUQsXG4gICAgICAgIF9PTExIUyxcbiAgICBdLFxuICAgIFtcbiAgICAgICAgWzIsIHsgW19oSF06IF94YWRtIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX2FyIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXIgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFhcyB9XSxcbiAgICAgICAgWzQsIHsgW19oSF06IF9MTV8gfV0sXG4gICAgICAgIFsxLCB7IFtfaEhdOiBfQ0xfXyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWNjIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhY2NfIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhY2NfXyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWNzIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhY3NfIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhY3QgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfRVRhIH1dLFxuICAgICAgICBbMSwgeyBbX2hIXTogX3hhbW0gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGF2aSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF9DQ18gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfQ0RfIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX0NFXyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF9DTF8gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfQ1RfIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX0NSXyB9XSxcbiAgICAgICAgWzQsIHsgW19oSF06IF9FeCB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF9FUyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXdybCB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNzZSB9XSxcbiAgICAgICAgWzEyOCB8IDAsIHsgW19oUEhdOiBfeGFtIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhc3NlY2EgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFzc2Vja00gfV0sXG4gICAgICAgIFsoKSA9PiBTU0VLTVNLZXlJZCwgeyBbX2hIXTogX3hhc3NlYWtraSB9XSxcbiAgICAgICAgWzIsIHsgW19oSF06IF94YXNzZWJrZSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNjIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhcmMgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFycyB9XSxcbiAgICAgICAgWzEsIHsgW19oSF06IF94YW1wYyB9XSxcbiAgICAgICAgWzEsIHsgW19oSF06IF94YXRjIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhb2xtIH1dLFxuICAgICAgICBbNSwgeyBbX2hIXTogX3hhb2xydWQgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFvbGxoIH1dLFxuICAgIF0sXG5dO1xudmFyIEhlYWRPYmplY3RSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0hPUixcbiAgICAwLFxuICAgIFtcbiAgICAgICAgX0IsXG4gICAgICAgIF9JTSxcbiAgICAgICAgX0lNU2YsXG4gICAgICAgIF9JTk0sXG4gICAgICAgIF9JVVMsXG4gICAgICAgIF9LLFxuICAgICAgICBfUmEsXG4gICAgICAgIF9SQ0MsXG4gICAgICAgIF9SQ0QsXG4gICAgICAgIF9SQ0UsXG4gICAgICAgIF9SQ0wsXG4gICAgICAgIF9SQ1QsXG4gICAgICAgIF9SRSxcbiAgICAgICAgX1ZJLFxuICAgICAgICBfU1NFQ0EsXG4gICAgICAgIF9TU0VDSyxcbiAgICAgICAgX1NTRUNLTUQsXG4gICAgICAgIF9SUCxcbiAgICAgICAgX1BOLFxuICAgICAgICBfRUJPLFxuICAgICAgICBfQ01oLFxuICAgIF0sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfSU1fIH1dLFxuICAgICAgICBbNCwgeyBbX2hIXTogX0lNU18gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfSU5NXyB9XSxcbiAgICAgICAgWzQsIHsgW19oSF06IF9JVVNfIH1dLFxuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfUmEgfV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfcmNjIH1dLFxuICAgICAgICBbMCwgeyBbX2hRXTogX3JjZCB9XSxcbiAgICAgICAgWzAsIHsgW19oUV06IF9yY2UgfV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfcmNsIH1dLFxuICAgICAgICBbMCwgeyBbX2hRXTogX3JjdCB9XSxcbiAgICAgICAgWzYsIHsgW19oUV06IF9yZSB9XSxcbiAgICAgICAgWzAsIHsgW19oUV06IF92SSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNzZWNhIH1dLFxuICAgICAgICBbKCkgPT4gU1NFQ3VzdG9tZXJLZXksIHsgW19oSF06IF94YXNzZWNrIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhc3NlY2tNIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhcnAgfV0sXG4gICAgICAgIFsxLCB7IFtfaFFdOiBfcE4gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFlYm8gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFjbSB9XSxcbiAgICBdLFxuXTtcbnZhciBJZGVtcG90ZW5jeVBhcmFtZXRlck1pc21hdGNoID0gWy0zLCBuMCwgX0lQTSwgeyBbX2VdOiBfYywgW19oRV06IDQwMCB9LCBbXSwgW11dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoSWRlbXBvdGVuY3lQYXJhbWV0ZXJNaXNtYXRjaCwgSWRlbXBvdGVuY3lQYXJhbWV0ZXJNaXNtYXRjaCQxKTtcbnZhciBJbmRleERvY3VtZW50ID0gWzMsIG4wLCBfSURuLCAwLCBbX1N1XSwgWzBdXTtcbnZhciBJbml0aWF0b3IgPSBbMywgbjAsIF9JbiwgMCwgW19JRCwgX0ROXSwgWzAsIDBdXTtcbnZhciBJbnB1dFNlcmlhbGl6YXRpb24gPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfSVMsXG4gICAgMCxcbiAgICBbX0NTViwgX0NUb20sIF9KU09OLCBfUGFycV0sXG4gICAgWygpID0+IENTVklucHV0LCAwLCAoKSA9PiBKU09OSW5wdXQsICgpID0+IFBhcnF1ZXRJbnB1dF0sXG5dO1xudmFyIEludGVsbGlnZW50VGllcmluZ0FuZE9wZXJhdG9yID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0lUQU8sXG4gICAgMCxcbiAgICBbX1AsIF9UXSxcbiAgICBbMCwgWygpID0+IFRhZ1NldCwgeyBbX3hOXTogX1RhLCBbX3hGXTogMSB9XV0sXG5dO1xudmFyIEludGVsbGlnZW50VGllcmluZ0NvbmZpZ3VyYXRpb24gPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfSVRDLFxuICAgIDAsXG4gICAgW19JLCBfRiwgX1MsIF9UaWVdLFxuICAgIFswLCBbKCkgPT4gSW50ZWxsaWdlbnRUaWVyaW5nRmlsdGVyLCAwXSwgMCwgWygpID0+IFRpZXJpbmdMaXN0LCB7IFtfeE5dOiBfVGllciwgW194Rl06IDEgfV1dLFxuXTtcbnZhciBJbnRlbGxpZ2VudFRpZXJpbmdGaWx0ZXIgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfSVRGLFxuICAgIDAsXG4gICAgW19QLCBfVGEsIF9Bbl0sXG4gICAgWzAsICgpID0+IFRhZywgWygpID0+IEludGVsbGlnZW50VGllcmluZ0FuZE9wZXJhdG9yLCAwXV0sXG5dO1xudmFyIEludmFsaWRPYmplY3RTdGF0ZSA9IFstMywgbjAsIF9JT1MsIHsgW19lXTogX2MsIFtfaEVdOiA0MDMgfSwgW19TQywgX0FUXSwgWzAsIDBdXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKEludmFsaWRPYmplY3RTdGF0ZSwgSW52YWxpZE9iamVjdFN0YXRlJDEpO1xudmFyIEludmFsaWRSZXF1ZXN0ID0gWy0zLCBuMCwgX0lSLCB7IFtfZV06IF9jLCBbX2hFXTogNDAwIH0sIFtdLCBbXV07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihJbnZhbGlkUmVxdWVzdCwgSW52YWxpZFJlcXVlc3QkMSk7XG52YXIgSW52YWxpZFdyaXRlT2Zmc2V0ID0gWy0zLCBuMCwgX0lXTywgeyBbX2VdOiBfYywgW19oRV06IDQwMCB9LCBbXSwgW11dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoSW52YWxpZFdyaXRlT2Zmc2V0LCBJbnZhbGlkV3JpdGVPZmZzZXQkMSk7XG52YXIgSW52ZW50b3J5Q29uZmlndXJhdGlvbiA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9JQyxcbiAgICAwLFxuICAgIFtfRGVzLCBfSUUsIF9GLCBfSSwgX0lPViwgX09GLCBfU2NdLFxuICAgIFtcbiAgICAgICAgWygpID0+IEludmVudG9yeURlc3RpbmF0aW9uLCAwXSxcbiAgICAgICAgMixcbiAgICAgICAgKCkgPT4gSW52ZW50b3J5RmlsdGVyLFxuICAgICAgICAwLFxuICAgICAgICAwLFxuICAgICAgICBbKCkgPT4gSW52ZW50b3J5T3B0aW9uYWxGaWVsZHMsIDBdLFxuICAgICAgICAoKSA9PiBJbnZlbnRvcnlTY2hlZHVsZSxcbiAgICBdLFxuXTtcbnZhciBJbnZlbnRvcnlEZXN0aW5hdGlvbiA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9JRG52LFxuICAgIDAsXG4gICAgW19TQkRdLFxuICAgIFtbKCkgPT4gSW52ZW50b3J5UzNCdWNrZXREZXN0aW5hdGlvbiwgMF1dLFxuXTtcbnZhciBJbnZlbnRvcnlFbmNyeXB0aW9uID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0lFbixcbiAgICAwLFxuICAgIFtfU1NFUywgX1NTRUtNU10sXG4gICAgW1xuICAgICAgICBbKCkgPT4gU1NFUzMsIHsgW194Tl06IF9TUyB9XSxcbiAgICAgICAgWygpID0+IFNTRUtNUywgeyBbX3hOXTogX1NLIH1dLFxuICAgIF0sXG5dO1xudmFyIEludmVudG9yeUZpbHRlciA9IFszLCBuMCwgX0lGLCAwLCBbX1BdLCBbMF1dO1xudmFyIEludmVudG9yeVMzQnVja2V0RGVzdGluYXRpb24gPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfSVNCRCxcbiAgICAwLFxuICAgIFtfQUksIF9CLCBfRm8sIF9QLCBfRW5dLFxuICAgIFswLCAwLCAwLCAwLCBbKCkgPT4gSW52ZW50b3J5RW5jcnlwdGlvbiwgMF1dLFxuXTtcbnZhciBJbnZlbnRvcnlTY2hlZHVsZSA9IFszLCBuMCwgX0lTbiwgMCwgW19Gcl0sIFswXV07XG52YXIgSW52ZW50b3J5VGFibGVDb25maWd1cmF0aW9uID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0lUQ24sXG4gICAgMCxcbiAgICBbX0NTbywgX0VDXSxcbiAgICBbMCwgKCkgPT4gTWV0YWRhdGFUYWJsZUVuY3J5cHRpb25Db25maWd1cmF0aW9uXSxcbl07XG52YXIgSW52ZW50b3J5VGFibGVDb25maWd1cmF0aW9uUmVzdWx0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0lUQ1IsXG4gICAgMCxcbiAgICBbX0NTbywgX1RTYSwgX0VyciwgX1ROYSwgX1RBXSxcbiAgICBbMCwgMCwgKCkgPT4gRXJyb3JEZXRhaWxzLCAwLCAwXSxcbl07XG52YXIgSW52ZW50b3J5VGFibGVDb25maWd1cmF0aW9uVXBkYXRlcyA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9JVENVLFxuICAgIDAsXG4gICAgW19DU28sIF9FQ10sXG4gICAgWzAsICgpID0+IE1ldGFkYXRhVGFibGVFbmNyeXB0aW9uQ29uZmlndXJhdGlvbl0sXG5dO1xudmFyIEpvdXJuYWxUYWJsZUNvbmZpZ3VyYXRpb24gPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfSlRDLFxuICAgIDAsXG4gICAgW19SRWUsIF9FQ10sXG4gICAgWygpID0+IFJlY29yZEV4cGlyYXRpb24sICgpID0+IE1ldGFkYXRhVGFibGVFbmNyeXB0aW9uQ29uZmlndXJhdGlvbl0sXG5dO1xudmFyIEpvdXJuYWxUYWJsZUNvbmZpZ3VyYXRpb25SZXN1bHQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfSlRDUixcbiAgICAwLFxuICAgIFtfVFNhLCBfRXJyLCBfVE5hLCBfVEEsIF9SRWVdLFxuICAgIFswLCAoKSA9PiBFcnJvckRldGFpbHMsIDAsIDAsICgpID0+IFJlY29yZEV4cGlyYXRpb25dLFxuXTtcbnZhciBKb3VybmFsVGFibGVDb25maWd1cmF0aW9uVXBkYXRlcyA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9KVENVLFxuICAgIDAsXG4gICAgW19SRWVdLFxuICAgIFsoKSA9PiBSZWNvcmRFeHBpcmF0aW9uXSxcbl07XG52YXIgSlNPTklucHV0ID0gWzMsIG4wLCBfSlNPTkksIDAsIFtfVHldLCBbMF1dO1xudmFyIEpTT05PdXRwdXQgPSBbMywgbjAsIF9KU09OTywgMCwgW19SRF0sIFswXV07XG52YXIgTGFtYmRhRnVuY3Rpb25Db25maWd1cmF0aW9uID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0xGQyxcbiAgICAwLFxuICAgIFtfSSwgX0xGQSwgX0V2LCBfRl0sXG4gICAgWzAsIFswLCB7IFtfeE5dOiBfQ0YgfV0sIFs2NCB8IDAsIHsgW194Tl06IF9FdmUsIFtfeEZdOiAxIH1dLCBbKCkgPT4gTm90aWZpY2F0aW9uQ29uZmlndXJhdGlvbkZpbHRlciwgMF1dLFxuXTtcbnZhciBMaWZlY3ljbGVFeHBpcmF0aW9uID0gWzMsIG4wLCBfTEVpLCAwLCBbX0RhLCBfRCwgX0VPRE1dLCBbNSwgMSwgMl1dO1xudmFyIExpZmVjeWNsZVJ1bGUgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfTFIsXG4gICAgMCxcbiAgICBbX0UsIF9JRCwgX1AsIF9GLCBfUywgX1RyLCBfTlZULCBfTlZFLCBfQUlNVV0sXG4gICAgW1xuICAgICAgICAoKSA9PiBMaWZlY3ljbGVFeHBpcmF0aW9uLFxuICAgICAgICAwLFxuICAgICAgICAwLFxuICAgICAgICBbKCkgPT4gTGlmZWN5Y2xlUnVsZUZpbHRlciwgMF0sXG4gICAgICAgIDAsXG4gICAgICAgIFsoKSA9PiBUcmFuc2l0aW9uTGlzdCwgeyBbX3hOXTogX1RyYSwgW194Rl06IDEgfV0sXG4gICAgICAgIFsoKSA9PiBOb25jdXJyZW50VmVyc2lvblRyYW5zaXRpb25MaXN0LCB7IFtfeE5dOiBfTlZUbywgW194Rl06IDEgfV0sXG4gICAgICAgICgpID0+IE5vbmN1cnJlbnRWZXJzaW9uRXhwaXJhdGlvbixcbiAgICAgICAgKCkgPT4gQWJvcnRJbmNvbXBsZXRlTXVsdGlwYXJ0VXBsb2FkLFxuICAgIF0sXG5dO1xudmFyIExpZmVjeWNsZVJ1bGVBbmRPcGVyYXRvciA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9MUkFPLFxuICAgIDAsXG4gICAgW19QLCBfVCwgX09TR1QsIF9PU0xUXSxcbiAgICBbMCwgWygpID0+IFRhZ1NldCwgeyBbX3hOXTogX1RhLCBbX3hGXTogMSB9XSwgMSwgMV0sXG5dO1xudmFyIExpZmVjeWNsZVJ1bGVGaWx0ZXIgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfTFJGLFxuICAgIDAsXG4gICAgW19QLCBfVGEsIF9PU0dULCBfT1NMVCwgX0FuXSxcbiAgICBbMCwgKCkgPT4gVGFnLCAxLCAxLCBbKCkgPT4gTGlmZWN5Y2xlUnVsZUFuZE9wZXJhdG9yLCAwXV0sXG5dO1xudmFyIExpc3RCdWNrZXRBbmFseXRpY3NDb25maWd1cmF0aW9uc091dHB1dCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9MQkFDTyxcbiAgICB7IFtfeE5dOiBfTEJBQ1IgfSxcbiAgICBbX0lULCBfQ1RvbiwgX05DVCwgX0FDTG5dLFxuICAgIFsyLCAwLCAwLCBbKCkgPT4gQW5hbHl0aWNzQ29uZmlndXJhdGlvbkxpc3QsIHsgW194Tl06IF9BQ24sIFtfeEZdOiAxIH1dXSxcbl07XG52YXIgTGlzdEJ1Y2tldEFuYWx5dGljc0NvbmZpZ3VyYXRpb25zUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9MQkFDUmksXG4gICAgMCxcbiAgICBbX0IsIF9DVG9uLCBfRUJPXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oUV06IF9jdCB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICBdLFxuXTtcbnZhciBMaXN0QnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvbnNPdXRwdXQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfTEJJVENPLFxuICAgIDAsXG4gICAgW19JVCwgX0NUb24sIF9OQ1QsIF9JVENMXSxcbiAgICBbMiwgMCwgMCwgWygpID0+IEludGVsbGlnZW50VGllcmluZ0NvbmZpZ3VyYXRpb25MaXN0LCB7IFtfeE5dOiBfSVRDLCBbX3hGXTogMSB9XV0sXG5dO1xudmFyIExpc3RCdWNrZXRJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9uc1JlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfTEJJVENSLFxuICAgIDAsXG4gICAgW19CLCBfQ1RvbiwgX0VCT10sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfY3QgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFlYm8gfV0sXG4gICAgXSxcbl07XG52YXIgTGlzdEJ1Y2tldEludmVudG9yeUNvbmZpZ3VyYXRpb25zT3V0cHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0xCSUNPLFxuICAgIHsgW194Tl06IF9MSUNSIH0sXG4gICAgW19DVG9uLCBfSUNMLCBfSVQsIF9OQ1RdLFxuICAgIFswLCBbKCkgPT4gSW52ZW50b3J5Q29uZmlndXJhdGlvbkxpc3QsIHsgW194Tl06IF9JQywgW194Rl06IDEgfV0sIDIsIDBdLFxuXTtcbnZhciBMaXN0QnVja2V0SW52ZW50b3J5Q29uZmlndXJhdGlvbnNSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0xCSUNSLFxuICAgIDAsXG4gICAgW19CLCBfQ1RvbiwgX0VCT10sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfY3QgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFlYm8gfV0sXG4gICAgXSxcbl07XG52YXIgTGlzdEJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9uc091dHB1dCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9MQk1DTyxcbiAgICB7IFtfeE5dOiBfTE1DUiB9LFxuICAgIFtfSVQsIF9DVG9uLCBfTkNULCBfTUNMXSxcbiAgICBbMiwgMCwgMCwgWygpID0+IE1ldHJpY3NDb25maWd1cmF0aW9uTGlzdCwgeyBbX3hOXTogX01DZSwgW194Rl06IDEgfV1dLFxuXTtcbnZhciBMaXN0QnVja2V0TWV0cmljc0NvbmZpZ3VyYXRpb25zUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9MQk1DUixcbiAgICAwLFxuICAgIFtfQiwgX0NUb24sIF9FQk9dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hRXTogX2N0IH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZWJvIH1dLFxuICAgIF0sXG5dO1xudmFyIExpc3RCdWNrZXRzT3V0cHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0xCTyxcbiAgICB7IFtfeE5dOiBfTEFNQlIgfSxcbiAgICBbX0J1LCBfTywgX0NUb24sIF9QXSxcbiAgICBbWygpID0+IEJ1Y2tldHMsIDBdLCAoKSA9PiBPd25lciwgMCwgMF0sXG5dO1xudmFyIExpc3RCdWNrZXRzUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9MQlIsXG4gICAgMCxcbiAgICBbX01CLCBfQ1RvbiwgX1AsIF9CUl0sXG4gICAgW1xuICAgICAgICBbMSwgeyBbX2hRXTogX21iIH1dLFxuICAgICAgICBbMCwgeyBbX2hRXTogX2N0IH1dLFxuICAgICAgICBbMCwgeyBbX2hRXTogX3AgfV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfYnIgfV0sXG4gICAgXSxcbl07XG52YXIgTGlzdERpcmVjdG9yeUJ1Y2tldHNPdXRwdXQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfTERCTyxcbiAgICB7IFtfeE5dOiBfTEFNREJSIH0sXG4gICAgW19CdSwgX0NUb25dLFxuICAgIFtbKCkgPT4gQnVja2V0cywgMF0sIDBdLFxuXTtcbnZhciBMaXN0RGlyZWN0b3J5QnVja2V0c1JlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfTERCUixcbiAgICAwLFxuICAgIFtfQ1RvbiwgX01EQl0sXG4gICAgW1xuICAgICAgICBbMCwgeyBbX2hRXTogX2N0IH1dLFxuICAgICAgICBbMSwgeyBbX2hRXTogX21kYiB9XSxcbiAgICBdLFxuXTtcbnZhciBMaXN0TXVsdGlwYXJ0VXBsb2Fkc091dHB1dCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9MTVVPLFxuICAgIHsgW194Tl06IF9MTVVSIH0sXG4gICAgW19CLCBfS00sIF9VSU0sIF9OS00sIF9QLCBfRGVsaSwgX05VSU0sIF9NVWEsIF9JVCwgX1UsIF9DUG9tLCBfRVRuLCBfUkNdLFxuICAgIFtcbiAgICAgICAgMCxcbiAgICAgICAgMCxcbiAgICAgICAgMCxcbiAgICAgICAgMCxcbiAgICAgICAgMCxcbiAgICAgICAgMCxcbiAgICAgICAgMCxcbiAgICAgICAgMSxcbiAgICAgICAgMixcbiAgICAgICAgWygpID0+IE11bHRpcGFydFVwbG9hZExpc3QsIHsgW194Tl06IF9VcCwgW194Rl06IDEgfV0sXG4gICAgICAgIFsoKSA9PiBDb21tb25QcmVmaXhMaXN0LCB7IFtfeEZdOiAxIH1dLFxuICAgICAgICAwLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhcmMgfV0sXG4gICAgXSxcbl07XG52YXIgTGlzdE11bHRpcGFydFVwbG9hZHNSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0xNVVJpLFxuICAgIDAsXG4gICAgW19CLCBfRGVsaSwgX0VUbiwgX0tNLCBfTVVhLCBfUCwgX1VJTSwgX0VCTywgX1JQXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oUV06IF9kIH1dLFxuICAgICAgICBbMCwgeyBbX2hRXTogX2V0IH1dLFxuICAgICAgICBbMCwgeyBbX2hRXTogX2ttIH1dLFxuICAgICAgICBbMSwgeyBbX2hRXTogX211IH1dLFxuICAgICAgICBbMCwgeyBbX2hRXTogX3AgfV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfdWltIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZWJvIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhcnAgfV0sXG4gICAgXSxcbl07XG52YXIgTGlzdE9iamVjdHNPdXRwdXQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfTE9PLFxuICAgIHsgW194Tl06IF9MQlJpIH0sXG4gICAgW19JVCwgX01hLCBfTk0sIF9Db24sIF9OLCBfUCwgX0RlbGksIF9NSywgX0NQb20sIF9FVG4sIF9SQ10sXG4gICAgW1xuICAgICAgICAyLFxuICAgICAgICAwLFxuICAgICAgICAwLFxuICAgICAgICBbKCkgPT4gT2JqZWN0TGlzdCwgeyBbX3hGXTogMSB9XSxcbiAgICAgICAgMCxcbiAgICAgICAgMCxcbiAgICAgICAgMCxcbiAgICAgICAgMSxcbiAgICAgICAgWygpID0+IENvbW1vblByZWZpeExpc3QsIHsgW194Rl06IDEgfV0sXG4gICAgICAgIDAsXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFyYyB9XSxcbiAgICBdLFxuXTtcbnZhciBMaXN0T2JqZWN0c1JlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfTE9SLFxuICAgIDAsXG4gICAgW19CLCBfRGVsaSwgX0VUbiwgX01hLCBfTUssIF9QLCBfUlAsIF9FQk8sIF9PT0FdLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hRXTogX2QgfV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfZXQgfV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfbSB9XSxcbiAgICAgICAgWzEsIHsgW19oUV06IF9tayB9XSxcbiAgICAgICAgWzAsIHsgW19oUV06IF9wIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhcnAgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFlYm8gfV0sXG4gICAgICAgIFs2NCB8IDAsIHsgW19oSF06IF94YW9vYSB9XSxcbiAgICBdLFxuXTtcbnZhciBMaXN0T2JqZWN0c1YyT3V0cHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0xPVk8sXG4gICAgeyBbX3hOXTogX0xCUmkgfSxcbiAgICBbX0lULCBfQ29uLCBfTiwgX1AsIF9EZWxpLCBfTUssIF9DUG9tLCBfRVRuLCBfS0MsIF9DVG9uLCBfTkNULCBfU0EsIF9SQ10sXG4gICAgW1xuICAgICAgICAyLFxuICAgICAgICBbKCkgPT4gT2JqZWN0TGlzdCwgeyBbX3hGXTogMSB9XSxcbiAgICAgICAgMCxcbiAgICAgICAgMCxcbiAgICAgICAgMCxcbiAgICAgICAgMSxcbiAgICAgICAgWygpID0+IENvbW1vblByZWZpeExpc3QsIHsgW194Rl06IDEgfV0sXG4gICAgICAgIDAsXG4gICAgICAgIDEsXG4gICAgICAgIDAsXG4gICAgICAgIDAsXG4gICAgICAgIDAsXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFyYyB9XSxcbiAgICBdLFxuXTtcbnZhciBMaXN0T2JqZWN0c1YyUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9MT1ZSLFxuICAgIDAsXG4gICAgW19CLCBfRGVsaSwgX0VUbiwgX01LLCBfUCwgX0NUb24sIF9GTywgX1NBLCBfUlAsIF9FQk8sIF9PT0FdLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hRXTogX2QgfV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfZXQgfV0sXG4gICAgICAgIFsxLCB7IFtfaFFdOiBfbWsgfV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfcCB9XSxcbiAgICAgICAgWzAsIHsgW19oUV06IF9jdCB9XSxcbiAgICAgICAgWzIsIHsgW19oUV06IF9mbyB9XSxcbiAgICAgICAgWzAsIHsgW19oUV06IF9zYSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXJwIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZWJvIH1dLFxuICAgICAgICBbNjQgfCAwLCB7IFtfaEhdOiBfeGFvb2EgfV0sXG4gICAgXSxcbl07XG52YXIgTGlzdE9iamVjdFZlcnNpb25zT3V0cHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0xPVk9pLFxuICAgIHsgW194Tl06IF9MVlIgfSxcbiAgICBbX0lULCBfS00sIF9WSU0sIF9OS00sIF9OVklNLCBfVmUsIF9ETWUsIF9OLCBfUCwgX0RlbGksIF9NSywgX0NQb20sIF9FVG4sIF9SQ10sXG4gICAgW1xuICAgICAgICAyLFxuICAgICAgICAwLFxuICAgICAgICAwLFxuICAgICAgICAwLFxuICAgICAgICAwLFxuICAgICAgICBbKCkgPT4gT2JqZWN0VmVyc2lvbkxpc3QsIHsgW194Tl06IF9WZXIsIFtfeEZdOiAxIH1dLFxuICAgICAgICBbKCkgPT4gRGVsZXRlTWFya2VycywgeyBbX3hOXTogX0RNLCBbX3hGXTogMSB9XSxcbiAgICAgICAgMCxcbiAgICAgICAgMCxcbiAgICAgICAgMCxcbiAgICAgICAgMSxcbiAgICAgICAgWygpID0+IENvbW1vblByZWZpeExpc3QsIHsgW194Rl06IDEgfV0sXG4gICAgICAgIDAsXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFyYyB9XSxcbiAgICBdLFxuXTtcbnZhciBMaXN0T2JqZWN0VmVyc2lvbnNSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0xPVlJpLFxuICAgIDAsXG4gICAgW19CLCBfRGVsaSwgX0VUbiwgX0tNLCBfTUssIF9QLCBfVklNLCBfRUJPLCBfUlAsIF9PT0FdLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hRXTogX2QgfV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfZXQgfV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfa20gfV0sXG4gICAgICAgIFsxLCB7IFtfaFFdOiBfbWsgfV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfcCB9XSxcbiAgICAgICAgWzAsIHsgW19oUV06IF92aW0gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFlYm8gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFycCB9XSxcbiAgICAgICAgWzY0IHwgMCwgeyBbX2hIXTogX3hhb29hIH1dLFxuICAgIF0sXG5dO1xudmFyIExpc3RQYXJ0c091dHB1dCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9MUE8sXG4gICAgeyBbX3hOXTogX0xQUiB9LFxuICAgIFtfQUQsIF9BUkksIF9CLCBfSywgX1VJLCBfUE5NLCBfTlBOTSwgX01QLCBfSVQsIF9QYSwgX0luLCBfTywgX1NDLCBfUkMsIF9DQSwgX0NUXSxcbiAgICBbXG4gICAgICAgIFs0LCB7IFtfaEhdOiBfeGFhZCB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWFyaSB9XSxcbiAgICAgICAgMCxcbiAgICAgICAgMCxcbiAgICAgICAgMCxcbiAgICAgICAgMCxcbiAgICAgICAgMCxcbiAgICAgICAgMSxcbiAgICAgICAgMixcbiAgICAgICAgWygpID0+IFBhcnRzLCB7IFtfeE5dOiBfUGFyLCBbX3hGXTogMSB9XSxcbiAgICAgICAgKCkgPT4gSW5pdGlhdG9yLFxuICAgICAgICAoKSA9PiBPd25lcixcbiAgICAgICAgMCxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXJjIH1dLFxuICAgICAgICAwLFxuICAgICAgICAwLFxuICAgIF0sXG5dO1xudmFyIExpc3RQYXJ0c1JlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfTFBSaSxcbiAgICAwLFxuICAgIFtfQiwgX0ssIF9NUCwgX1BOTSwgX1VJLCBfUlAsIF9FQk8sIF9TU0VDQSwgX1NTRUNLLCBfU1NFQ0tNRF0sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzEsIHsgW19oUV06IF9tcCB9XSxcbiAgICAgICAgWzAsIHsgW19oUV06IF9wbm0gfV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfdUkgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFycCB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNzZWNhIH1dLFxuICAgICAgICBbKCkgPT4gU1NFQ3VzdG9tZXJLZXksIHsgW19oSF06IF94YXNzZWNrIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhc3NlY2tNIH1dLFxuICAgIF0sXG5dO1xudmFyIExvY2F0aW9uSW5mbyA9IFszLCBuMCwgX0xJLCAwLCBbX1R5LCBfTl0sIFswLCAwXV07XG52YXIgTG9nZ2luZ0VuYWJsZWQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfTEUsXG4gICAgMCxcbiAgICBbX1RCLCBfVEcsIF9UUCwgX1RPS0ZdLFxuICAgIFswLCBbKCkgPT4gVGFyZ2V0R3JhbnRzLCAwXSwgMCwgWygpID0+IFRhcmdldE9iamVjdEtleUZvcm1hdCwgMF1dLFxuXTtcbnZhciBNZXRhZGF0YUNvbmZpZ3VyYXRpb24gPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfTUMsXG4gICAgMCxcbiAgICBbX0pUQywgX0lUQ25dLFxuICAgIFsoKSA9PiBKb3VybmFsVGFibGVDb25maWd1cmF0aW9uLCAoKSA9PiBJbnZlbnRvcnlUYWJsZUNvbmZpZ3VyYXRpb25dLFxuXTtcbnZhciBNZXRhZGF0YUNvbmZpZ3VyYXRpb25SZXN1bHQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfTUNSLFxuICAgIDAsXG4gICAgW19EUmVzLCBfSlRDUiwgX0lUQ1JdLFxuICAgIFsoKSA9PiBEZXN0aW5hdGlvblJlc3VsdCwgKCkgPT4gSm91cm5hbFRhYmxlQ29uZmlndXJhdGlvblJlc3VsdCwgKCkgPT4gSW52ZW50b3J5VGFibGVDb25maWd1cmF0aW9uUmVzdWx0XSxcbl07XG52YXIgTWV0YWRhdGFFbnRyeSA9IFszLCBuMCwgX01FLCAwLCBbX04sIF9WXSwgWzAsIDBdXTtcbnZhciBNZXRhZGF0YVRhYmxlQ29uZmlndXJhdGlvbiA9IFszLCBuMCwgX01UQywgMCwgW19TVERdLCBbKCkgPT4gUzNUYWJsZXNEZXN0aW5hdGlvbl1dO1xudmFyIE1ldGFkYXRhVGFibGVDb25maWd1cmF0aW9uUmVzdWx0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX01UQ1IsXG4gICAgMCxcbiAgICBbX1NURFJdLFxuICAgIFsoKSA9PiBTM1RhYmxlc0Rlc3RpbmF0aW9uUmVzdWx0XSxcbl07XG52YXIgTWV0YWRhdGFUYWJsZUVuY3J5cHRpb25Db25maWd1cmF0aW9uID0gWzMsIG4wLCBfTVRFQywgMCwgW19TQXMsIF9LS0FdLCBbMCwgMF1dO1xudmFyIE1ldHJpY3MgPSBbMywgbjAsIF9NZSwgMCwgW19TLCBfRVR2XSwgWzAsICgpID0+IFJlcGxpY2F0aW9uVGltZVZhbHVlXV07XG52YXIgTWV0cmljc0FuZE9wZXJhdG9yID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX01BTyxcbiAgICAwLFxuICAgIFtfUCwgX1QsIF9BUEFjXSxcbiAgICBbMCwgWygpID0+IFRhZ1NldCwgeyBbX3hOXTogX1RhLCBbX3hGXTogMSB9XSwgMF0sXG5dO1xudmFyIE1ldHJpY3NDb25maWd1cmF0aW9uID0gWzMsIG4wLCBfTUNlLCAwLCBbX0ksIF9GXSwgWzAsIFsoKSA9PiBNZXRyaWNzRmlsdGVyLCAwXV1dO1xudmFyIE11bHRpcGFydFVwbG9hZCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9NVSxcbiAgICAwLFxuICAgIFtfVUksIF9LLCBfSW5pLCBfU0MsIF9PLCBfSW4sIF9DQSwgX0NUXSxcbiAgICBbMCwgMCwgNCwgMCwgKCkgPT4gT3duZXIsICgpID0+IEluaXRpYXRvciwgMCwgMF0sXG5dO1xudmFyIE5vbmN1cnJlbnRWZXJzaW9uRXhwaXJhdGlvbiA9IFszLCBuMCwgX05WRSwgMCwgW19ORCwgX05OVl0sIFsxLCAxXV07XG52YXIgTm9uY3VycmVudFZlcnNpb25UcmFuc2l0aW9uID0gWzMsIG4wLCBfTlZUbywgMCwgW19ORCwgX1NDLCBfTk5WXSwgWzEsIDAsIDFdXTtcbnZhciBOb1N1Y2hCdWNrZXQgPSBbLTMsIG4wLCBfTlNCLCB7IFtfZV06IF9jLCBbX2hFXTogNDA0IH0sIFtdLCBbXV07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihOb1N1Y2hCdWNrZXQsIE5vU3VjaEJ1Y2tldCQxKTtcbnZhciBOb1N1Y2hLZXkgPSBbLTMsIG4wLCBfTlNLLCB7IFtfZV06IF9jLCBbX2hFXTogNDA0IH0sIFtdLCBbXV07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihOb1N1Y2hLZXksIE5vU3VjaEtleSQxKTtcbnZhciBOb1N1Y2hVcGxvYWQgPSBbLTMsIG4wLCBfTlNVLCB7IFtfZV06IF9jLCBbX2hFXTogNDA0IH0sIFtdLCBbXV07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihOb1N1Y2hVcGxvYWQsIE5vU3VjaFVwbG9hZCQxKTtcbnZhciBOb3RGb3VuZCA9IFstMywgbjAsIF9ORiwgeyBbX2VdOiBfYyB9LCBbXSwgW11dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoTm90Rm91bmQsIE5vdEZvdW5kJDEpO1xudmFyIE5vdGlmaWNhdGlvbkNvbmZpZ3VyYXRpb24gPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfTkMsXG4gICAgMCxcbiAgICBbX1RDbywgX1FDdSwgX0xGQ2EsIF9FQkNdLFxuICAgIFtcbiAgICAgICAgWygpID0+IFRvcGljQ29uZmlndXJhdGlvbkxpc3QsIHsgW194Tl06IF9UQ29wLCBbX3hGXTogMSB9XSxcbiAgICAgICAgWygpID0+IFF1ZXVlQ29uZmlndXJhdGlvbkxpc3QsIHsgW194Tl06IF9RQ3VlLCBbX3hGXTogMSB9XSxcbiAgICAgICAgWygpID0+IExhbWJkYUZ1bmN0aW9uQ29uZmlndXJhdGlvbkxpc3QsIHsgW194Tl06IF9DRkMsIFtfeEZdOiAxIH1dLFxuICAgICAgICAoKSA9PiBFdmVudEJyaWRnZUNvbmZpZ3VyYXRpb24sXG4gICAgXSxcbl07XG52YXIgTm90aWZpY2F0aW9uQ29uZmlndXJhdGlvbkZpbHRlciA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9OQ0YsXG4gICAgMCxcbiAgICBbX0tdLFxuICAgIFtbKCkgPT4gUzNLZXlGaWx0ZXIsIHsgW194Tl06IF9TS2UgfV1dLFxuXTtcbnZhciBfT2JqZWN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX09iaixcbiAgICAwLFxuICAgIFtfSywgX0xNLCBfRVRhLCBfQ0EsIF9DVCwgX1NpLCBfU0MsIF9PLCBfUlNlXSxcbiAgICBbMCwgNCwgMCwgWzY0IHwgMCwgeyBbX3hGXTogMSB9XSwgMCwgMSwgMCwgKCkgPT4gT3duZXIsICgpID0+IFJlc3RvcmVTdGF0dXNdLFxuXTtcbnZhciBPYmplY3RBbHJlYWR5SW5BY3RpdmVUaWVyRXJyb3IgPSBbLTMsIG4wLCBfT0FJQVRFLCB7IFtfZV06IF9jLCBbX2hFXTogNDAzIH0sIFtdLCBbXV07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihPYmplY3RBbHJlYWR5SW5BY3RpdmVUaWVyRXJyb3IsIE9iamVjdEFscmVhZHlJbkFjdGl2ZVRpZXJFcnJvciQxKTtcbnZhciBPYmplY3RJZGVudGlmaWVyID0gWzMsIG4wLCBfT0ksIDAsIFtfSywgX1ZJLCBfRVRhLCBfTE1ULCBfU2ldLCBbMCwgMCwgMCwgNiwgMV1dO1xudmFyIE9iamVjdExvY2tDb25maWd1cmF0aW9uID0gWzMsIG4wLCBfT0xDLCAwLCBbX09MRSwgX1J1XSwgWzAsICgpID0+IE9iamVjdExvY2tSdWxlXV07XG52YXIgT2JqZWN0TG9ja0xlZ2FsSG9sZCA9IFszLCBuMCwgX09MTEgsIDAsIFtfU10sIFswXV07XG52YXIgT2JqZWN0TG9ja1JldGVudGlvbiA9IFszLCBuMCwgX09MUiwgMCwgW19NbywgX1JVRF0sIFswLCA1XV07XG52YXIgT2JqZWN0TG9ja1J1bGUgPSBbMywgbjAsIF9PTFJiLCAwLCBbX0RSZV0sIFsoKSA9PiBEZWZhdWx0UmV0ZW50aW9uXV07XG52YXIgT2JqZWN0Tm90SW5BY3RpdmVUaWVyRXJyb3IgPSBbLTMsIG4wLCBfT05JQVRFLCB7IFtfZV06IF9jLCBbX2hFXTogNDAzIH0sIFtdLCBbXV07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihPYmplY3ROb3RJbkFjdGl2ZVRpZXJFcnJvciwgT2JqZWN0Tm90SW5BY3RpdmVUaWVyRXJyb3IkMSk7XG52YXIgT2JqZWN0UGFydCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9PUGIsXG4gICAgMCxcbiAgICBbX1BOLCBfU2ksIF9DQ1JDLCBfQ0NSQ0MsIF9DQ1JDTlZNRSwgX0NTSEEsIF9DU0hBaF0sXG4gICAgWzEsIDEsIDAsIDAsIDAsIDAsIDBdLFxuXTtcbnZhciBPYmplY3RWZXJzaW9uID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX09WLFxuICAgIDAsXG4gICAgW19FVGEsIF9DQSwgX0NULCBfU2ksIF9TQywgX0ssIF9WSSwgX0lMLCBfTE0sIF9PLCBfUlNlXSxcbiAgICBbMCwgWzY0IHwgMCwgeyBbX3hGXTogMSB9XSwgMCwgMSwgMCwgMCwgMCwgMiwgNCwgKCkgPT4gT3duZXIsICgpID0+IFJlc3RvcmVTdGF0dXNdLFxuXTtcbnZhciBPdXRwdXRMb2NhdGlvbiA9IFszLCBuMCwgX09MLCAwLCBbX1NfXSwgW1soKSA9PiBTM0xvY2F0aW9uLCAwXV1dO1xudmFyIE91dHB1dFNlcmlhbGl6YXRpb24gPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfT1N1LFxuICAgIDAsXG4gICAgW19DU1YsIF9KU09OXSxcbiAgICBbKCkgPT4gQ1NWT3V0cHV0LCAoKSA9PiBKU09OT3V0cHV0XSxcbl07XG52YXIgT3duZXIgPSBbMywgbjAsIF9PLCAwLCBbX0ROLCBfSURdLCBbMCwgMF1dO1xudmFyIE93bmVyc2hpcENvbnRyb2xzID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX09DLFxuICAgIDAsXG4gICAgW19SXSxcbiAgICBbWygpID0+IE93bmVyc2hpcENvbnRyb2xzUnVsZXMsIHsgW194Tl06IF9SdSwgW194Rl06IDEgfV1dLFxuXTtcbnZhciBPd25lcnNoaXBDb250cm9sc1J1bGUgPSBbMywgbjAsIF9PQ1IsIDAsIFtfT09dLCBbMF1dO1xudmFyIFBhcnF1ZXRJbnB1dCA9IFszLCBuMCwgX1BJLCAwLCBbXSwgW11dO1xudmFyIFBhcnQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfUGFyLFxuICAgIDAsXG4gICAgW19QTiwgX0xNLCBfRVRhLCBfU2ksIF9DQ1JDLCBfQ0NSQ0MsIF9DQ1JDTlZNRSwgX0NTSEEsIF9DU0hBaF0sXG4gICAgWzEsIDQsIDAsIDEsIDAsIDAsIDAsIDAsIDBdLFxuXTtcbnZhciBQYXJ0aXRpb25lZFByZWZpeCA9IFszLCBuMCwgX1BQLCB7IFtfeE5dOiBfUFAgfSwgW19QRFNdLCBbMF1dO1xudmFyIFBvbGljeVN0YXR1cyA9IFszLCBuMCwgX1BTLCAwLCBbX0lQXSwgW1syLCB7IFtfeE5dOiBfSVAgfV1dXTtcbnZhciBQcm9ncmVzcyA9IFszLCBuMCwgX1ByLCAwLCBbX0JTLCBfQlAsIF9CUnldLCBbMSwgMSwgMV1dO1xudmFyIFByb2dyZXNzRXZlbnQgPSBbMywgbjAsIF9QRSwgMCwgW19EZXRdLCBbWygpID0+IFByb2dyZXNzLCB7IFtfZVBdOiAxIH1dXV07XG52YXIgUHVibGljQWNjZXNzQmxvY2tDb25maWd1cmF0aW9uID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1BBQkMsXG4gICAgMCxcbiAgICBbX0JQQSwgX0lQQSwgX0JQUCwgX1JQQl0sXG4gICAgW1xuICAgICAgICBbMiwgeyBbX3hOXTogX0JQQSB9XSxcbiAgICAgICAgWzIsIHsgW194Tl06IF9JUEEgfV0sXG4gICAgICAgIFsyLCB7IFtfeE5dOiBfQlBQIH1dLFxuICAgICAgICBbMiwgeyBbX3hOXTogX1JQQiB9XSxcbiAgICBdLFxuXTtcbnZhciBQdXRCdWNrZXRBYmFjUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9QQkFSLFxuICAgIDAsXG4gICAgW19CLCBfQ01ELCBfQ0EsIF9FQk8sIF9BU10sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfQ00gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFzY2EgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFlYm8gfV0sXG4gICAgICAgIFsoKSA9PiBBYmFjU3RhdHVzLCB7IFtfeE5dOiBfQVMsIFtfaFBdOiAxIH1dLFxuICAgIF0sXG5dO1xudmFyIFB1dEJ1Y2tldEFjY2VsZXJhdGVDb25maWd1cmF0aW9uUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9QQkFDUixcbiAgICAwLFxuICAgIFtfQiwgX0FDLCBfRUJPLCBfQ0FdLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbKCkgPT4gQWNjZWxlcmF0ZUNvbmZpZ3VyYXRpb24sIHsgW194Tl06IF9BQywgW19oUF06IDEgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFlYm8gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFzY2EgfV0sXG4gICAgXSxcbl07XG52YXIgUHV0QnVja2V0QWNsUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9QQkFSdSxcbiAgICAwLFxuICAgIFtfQUNMXywgX0FDUCwgX0IsIF9DTUQsIF9DQSwgX0dGQywgX0dSLCBfR1JBQ1AsIF9HVywgX0dXQUNQLCBfRUJPXSxcbiAgICBbXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFhIH1dLFxuICAgICAgICBbKCkgPT4gQWNjZXNzQ29udHJvbFBvbGljeSwgeyBbX3hOXTogX0FDUCwgW19oUF06IDEgfV0sXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oSF06IF9DTSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNjYSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWdmYyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWdyIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZ3JhIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZ3cgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFnd2EgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFlYm8gfV0sXG4gICAgXSxcbl07XG52YXIgUHV0QnVja2V0QW5hbHl0aWNzQ29uZmlndXJhdGlvblJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfUEJBQ1J1LFxuICAgIDAsXG4gICAgW19CLCBfSSwgX0FDbiwgX0VCT10sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfaSB9XSxcbiAgICAgICAgWygpID0+IEFuYWx5dGljc0NvbmZpZ3VyYXRpb24sIHsgW194Tl06IF9BQ24sIFtfaFBdOiAxIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZWJvIH1dLFxuICAgIF0sXG5dO1xudmFyIFB1dEJ1Y2tldENvcnNSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1BCQ1IsXG4gICAgMCxcbiAgICBbX0IsIF9DT1JTQywgX0NNRCwgX0NBLCBfRUJPXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWygpID0+IENPUlNDb25maWd1cmF0aW9uLCB7IFtfeE5dOiBfQ09SU0MsIFtfaFBdOiAxIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX0NNIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhc2NhIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZWJvIH1dLFxuICAgIF0sXG5dO1xudmFyIFB1dEJ1Y2tldEVuY3J5cHRpb25SZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1BCRVIsXG4gICAgMCxcbiAgICBbX0IsIF9DTUQsIF9DQSwgX1NTRUMsIF9FQk9dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hIXTogX0NNIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhc2NhIH1dLFxuICAgICAgICBbKCkgPT4gU2VydmVyU2lkZUVuY3J5cHRpb25Db25maWd1cmF0aW9uLCB7IFtfeE5dOiBfU1NFQywgW19oUF06IDEgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFlYm8gfV0sXG4gICAgXSxcbl07XG52YXIgUHV0QnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvblJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfUEJJVENSLFxuICAgIDAsXG4gICAgW19CLCBfSSwgX0VCTywgX0lUQ10sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfaSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICAgICAgWygpID0+IEludGVsbGlnZW50VGllcmluZ0NvbmZpZ3VyYXRpb24sIHsgW194Tl06IF9JVEMsIFtfaFBdOiAxIH1dLFxuICAgIF0sXG5dO1xudmFyIFB1dEJ1Y2tldEludmVudG9yeUNvbmZpZ3VyYXRpb25SZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1BCSUNSLFxuICAgIDAsXG4gICAgW19CLCBfSSwgX0lDLCBfRUJPXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oUV06IF9pIH1dLFxuICAgICAgICBbKCkgPT4gSW52ZW50b3J5Q29uZmlndXJhdGlvbiwgeyBbX3hOXTogX0lDLCBbX2hQXTogMSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICBdLFxuXTtcbnZhciBQdXRCdWNrZXRMaWZlY3ljbGVDb25maWd1cmF0aW9uT3V0cHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1BCTENPLFxuICAgIDAsXG4gICAgW19URE1PU10sXG4gICAgW1swLCB7IFtfaEhdOiBfeGF0ZG1vcyB9XV0sXG5dO1xudmFyIFB1dEJ1Y2tldExpZmVjeWNsZUNvbmZpZ3VyYXRpb25SZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1BCTENSLFxuICAgIDAsXG4gICAgW19CLCBfQ0EsIF9MQ2ksIF9FQk8sIF9URE1PU10sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFzY2EgfV0sXG4gICAgICAgIFsoKSA9PiBCdWNrZXRMaWZlY3ljbGVDb25maWd1cmF0aW9uLCB7IFtfeE5dOiBfTENpLCBbX2hQXTogMSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXRkbW9zIH1dLFxuICAgIF0sXG5dO1xudmFyIFB1dEJ1Y2tldExvZ2dpbmdSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1BCTFIsXG4gICAgMCxcbiAgICBbX0IsIF9CTFMsIF9DTUQsIF9DQSwgX0VCT10sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFsoKSA9PiBCdWNrZXRMb2dnaW5nU3RhdHVzLCB7IFtfeE5dOiBfQkxTLCBbX2hQXTogMSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF9DTSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNjYSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICBdLFxuXTtcbnZhciBQdXRCdWNrZXRNZXRyaWNzQ29uZmlndXJhdGlvblJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfUEJNQ1IsXG4gICAgMCxcbiAgICBbX0IsIF9JLCBfTUNlLCBfRUJPXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oUV06IF9pIH1dLFxuICAgICAgICBbKCkgPT4gTWV0cmljc0NvbmZpZ3VyYXRpb24sIHsgW194Tl06IF9NQ2UsIFtfaFBdOiAxIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZWJvIH1dLFxuICAgIF0sXG5dO1xudmFyIFB1dEJ1Y2tldE5vdGlmaWNhdGlvbkNvbmZpZ3VyYXRpb25SZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1BCTkNSLFxuICAgIDAsXG4gICAgW19CLCBfTkMsIF9FQk8sIF9TRFZdLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbKCkgPT4gTm90aWZpY2F0aW9uQ29uZmlndXJhdGlvbiwgeyBbX3hOXTogX05DLCBbX2hQXTogMSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICAgICAgWzIsIHsgW19oSF06IF94YXNkdiB9XSxcbiAgICBdLFxuXTtcbnZhciBQdXRCdWNrZXRPd25lcnNoaXBDb250cm9sc1JlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfUEJPQ1IsXG4gICAgMCxcbiAgICBbX0IsIF9DTUQsIF9FQk8sIF9PQywgX0NBXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oSF06IF9DTSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICAgICAgWygpID0+IE93bmVyc2hpcENvbnRyb2xzLCB7IFtfeE5dOiBfT0MsIFtfaFBdOiAxIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhc2NhIH1dLFxuICAgIF0sXG5dO1xudmFyIFB1dEJ1Y2tldFBvbGljeVJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfUEJQUixcbiAgICAwLFxuICAgIFtfQiwgX0NNRCwgX0NBLCBfQ1JTQkEsIF9QbywgX0VCT10sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfQ00gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFzY2EgfV0sXG4gICAgICAgIFsyLCB7IFtfaEhdOiBfeGFjcnNiYSB9XSxcbiAgICAgICAgWzAsIDE2XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICBdLFxuXTtcbnZhciBQdXRCdWNrZXRSZXBsaWNhdGlvblJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfUEJSUixcbiAgICAwLFxuICAgIFtfQiwgX0NNRCwgX0NBLCBfUkNlLCBfVG8sIF9FQk9dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hIXTogX0NNIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhc2NhIH1dLFxuICAgICAgICBbKCkgPT4gUmVwbGljYXRpb25Db25maWd1cmF0aW9uLCB7IFtfeE5dOiBfUkNlLCBbX2hQXTogMSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWJvbHQgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFlYm8gfV0sXG4gICAgXSxcbl07XG52YXIgUHV0QnVja2V0UmVxdWVzdFBheW1lbnRSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1BCUlBSLFxuICAgIDAsXG4gICAgW19CLCBfQ01ELCBfQ0EsIF9SUEMsIF9FQk9dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hIXTogX0NNIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhc2NhIH1dLFxuICAgICAgICBbKCkgPT4gUmVxdWVzdFBheW1lbnRDb25maWd1cmF0aW9uLCB7IFtfeE5dOiBfUlBDLCBbX2hQXTogMSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICBdLFxuXTtcbnZhciBQdXRCdWNrZXRUYWdnaW5nUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9QQlRSLFxuICAgIDAsXG4gICAgW19CLCBfQ01ELCBfQ0EsIF9UYWcsIF9FQk9dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hIXTogX0NNIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhc2NhIH1dLFxuICAgICAgICBbKCkgPT4gVGFnZ2luZywgeyBbX3hOXTogX1RhZywgW19oUF06IDEgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFlYm8gfV0sXG4gICAgXSxcbl07XG52YXIgUHV0QnVja2V0VmVyc2lvbmluZ1JlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfUEJWUixcbiAgICAwLFxuICAgIFtfQiwgX0NNRCwgX0NBLCBfTUZBLCBfVkMsIF9FQk9dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hIXTogX0NNIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhc2NhIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhbV8gfV0sXG4gICAgICAgIFsoKSA9PiBWZXJzaW9uaW5nQ29uZmlndXJhdGlvbiwgeyBbX3hOXTogX1ZDLCBbX2hQXTogMSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICBdLFxuXTtcbnZhciBQdXRCdWNrZXRXZWJzaXRlUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9QQldSLFxuICAgIDAsXG4gICAgW19CLCBfQ01ELCBfQ0EsIF9XQywgX0VCT10sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfQ00gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFzY2EgfV0sXG4gICAgICAgIFsoKSA9PiBXZWJzaXRlQ29uZmlndXJhdGlvbiwgeyBbX3hOXTogX1dDLCBbX2hQXTogMSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICBdLFxuXTtcbnZhciBQdXRPYmplY3RBY2xPdXRwdXQgPSBbMywgbjAsIF9QT0FPLCAwLCBbX1JDXSwgW1swLCB7IFtfaEhdOiBfeGFyYyB9XV1dO1xudmFyIFB1dE9iamVjdEFjbFJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfUE9BUixcbiAgICAwLFxuICAgIFtfQUNMXywgX0FDUCwgX0IsIF9DTUQsIF9DQSwgX0dGQywgX0dSLCBfR1JBQ1AsIF9HVywgX0dXQUNQLCBfSywgX1JQLCBfVkksIF9FQk9dLFxuICAgIFtcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWEgfV0sXG4gICAgICAgIFsoKSA9PiBBY2Nlc3NDb250cm9sUG9saWN5LCB7IFtfeE5dOiBfQUNQLCBbX2hQXTogMSB9XSxcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hIXTogX0NNIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhc2NhIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZ2ZjIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZ3IgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFncmEgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFndyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWd3YSB9XSxcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhcnAgfV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfdkkgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFlYm8gfV0sXG4gICAgXSxcbl07XG52YXIgUHV0T2JqZWN0TGVnYWxIb2xkT3V0cHV0ID0gWzMsIG4wLCBfUE9MSE8sIDAsIFtfUkNdLCBbWzAsIHsgW19oSF06IF94YXJjIH1dXV07XG52YXIgUHV0T2JqZWN0TGVnYWxIb2xkUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9QT0xIUixcbiAgICAwLFxuICAgIFtfQiwgX0ssIF9MSCwgX1JQLCBfVkksIF9DTUQsIF9DQSwgX0VCT10sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWygpID0+IE9iamVjdExvY2tMZWdhbEhvbGQsIHsgW194Tl06IF9MSCwgW19oUF06IDEgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFycCB9XSxcbiAgICAgICAgWzAsIHsgW19oUV06IF92SSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF9DTSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNjYSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICBdLFxuXTtcbnZhciBQdXRPYmplY3RMb2NrQ29uZmlndXJhdGlvbk91dHB1dCA9IFszLCBuMCwgX1BPTENPLCAwLCBbX1JDXSwgW1swLCB7IFtfaEhdOiBfeGFyYyB9XV1dO1xudmFyIFB1dE9iamVjdExvY2tDb25maWd1cmF0aW9uUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9QT0xDUixcbiAgICAwLFxuICAgIFtfQiwgX09MQywgX1JQLCBfVG8sIF9DTUQsIF9DQSwgX0VCT10sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFsoKSA9PiBPYmplY3RMb2NrQ29uZmlndXJhdGlvbiwgeyBbX3hOXTogX09MQywgW19oUF06IDEgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFycCB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWJvbHQgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfQ00gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFzY2EgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFlYm8gfV0sXG4gICAgXSxcbl07XG52YXIgUHV0T2JqZWN0T3V0cHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1BPTyxcbiAgICAwLFxuICAgIFtcbiAgICAgICAgX0UsXG4gICAgICAgIF9FVGEsXG4gICAgICAgIF9DQ1JDLFxuICAgICAgICBfQ0NSQ0MsXG4gICAgICAgIF9DQ1JDTlZNRSxcbiAgICAgICAgX0NTSEEsXG4gICAgICAgIF9DU0hBaCxcbiAgICAgICAgX0NULFxuICAgICAgICBfU1NFLFxuICAgICAgICBfVkksXG4gICAgICAgIF9TU0VDQSxcbiAgICAgICAgX1NTRUNLTUQsXG4gICAgICAgIF9TU0VLTVNLSSxcbiAgICAgICAgX1NTRUtNU0VDLFxuICAgICAgICBfQktFLFxuICAgICAgICBfU2ksXG4gICAgICAgIF9SQyxcbiAgICBdLFxuICAgIFtcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWUgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfRVRhIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhY2MgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFjY18gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFjY19fIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhY3MgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFjc18gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFjdCB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNzZSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXZpIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhc3NlY2EgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFzc2Vja00gfV0sXG4gICAgICAgIFsoKSA9PiBTU0VLTVNLZXlJZCwgeyBbX2hIXTogX3hhc3NlYWtraSB9XSxcbiAgICAgICAgWygpID0+IFNTRUtNU0VuY3J5cHRpb25Db250ZXh0LCB7IFtfaEhdOiBfeGFzc2VjIH1dLFxuICAgICAgICBbMiwgeyBbX2hIXTogX3hhc3NlYmtlIH1dLFxuICAgICAgICBbMSwgeyBbX2hIXTogX3hhb3MgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFyYyB9XSxcbiAgICBdLFxuXTtcbnZhciBQdXRPYmplY3RSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1BPUixcbiAgICAwLFxuICAgIFtcbiAgICAgICAgX0FDTF8sXG4gICAgICAgIF9CbyxcbiAgICAgICAgX0IsXG4gICAgICAgIF9DQyxcbiAgICAgICAgX0NEbyxcbiAgICAgICAgX0NFbyxcbiAgICAgICAgX0NMLFxuICAgICAgICBfQ0xvLFxuICAgICAgICBfQ01ELFxuICAgICAgICBfQ1RvLFxuICAgICAgICBfQ0EsXG4gICAgICAgIF9DQ1JDLFxuICAgICAgICBfQ0NSQ0MsXG4gICAgICAgIF9DQ1JDTlZNRSxcbiAgICAgICAgX0NTSEEsXG4gICAgICAgIF9DU0hBaCxcbiAgICAgICAgX0V4LFxuICAgICAgICBfSU0sXG4gICAgICAgIF9JTk0sXG4gICAgICAgIF9HRkMsXG4gICAgICAgIF9HUixcbiAgICAgICAgX0dSQUNQLFxuICAgICAgICBfR1dBQ1AsXG4gICAgICAgIF9LLFxuICAgICAgICBfV09CLFxuICAgICAgICBfTSxcbiAgICAgICAgX1NTRSxcbiAgICAgICAgX1NDLFxuICAgICAgICBfV1JMLFxuICAgICAgICBfU1NFQ0EsXG4gICAgICAgIF9TU0VDSyxcbiAgICAgICAgX1NTRUNLTUQsXG4gICAgICAgIF9TU0VLTVNLSSxcbiAgICAgICAgX1NTRUtNU0VDLFxuICAgICAgICBfQktFLFxuICAgICAgICBfUlAsXG4gICAgICAgIF9UYWcsXG4gICAgICAgIF9PTE0sXG4gICAgICAgIF9PTFJVRCxcbiAgICAgICAgX09MTEhTLFxuICAgICAgICBfRUJPLFxuICAgIF0sXG4gICAgW1xuICAgICAgICBbMCwgeyBbX2hIXTogX3hhYSB9XSxcbiAgICAgICAgWygpID0+IFN0cmVhbWluZ0Jsb2IsIDE2XSxcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hIXTogX0NDXyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF9DRF8gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfQ0VfIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX0NMXyB9XSxcbiAgICAgICAgWzEsIHsgW19oSF06IF9DTF9fIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX0NNIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX0NUXyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNjYSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWNjIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhY2NfIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhY2NfXyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWNzIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhY3NfIH1dLFxuICAgICAgICBbNCwgeyBbX2hIXTogX0V4IH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX0lNXyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF9JTk1fIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZ2ZjIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZ3IgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFncmEgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFnd2EgfV0sXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzEsIHsgW19oSF06IF94YXdvYiB9XSxcbiAgICAgICAgWzEyOCB8IDAsIHsgW19oUEhdOiBfeGFtIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhc3NlIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhc2MgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGF3cmwgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFzc2VjYSB9XSxcbiAgICAgICAgWygpID0+IFNTRUN1c3RvbWVyS2V5LCB7IFtfaEhdOiBfeGFzc2VjayB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNzZWNrTSB9XSxcbiAgICAgICAgWygpID0+IFNTRUtNU0tleUlkLCB7IFtfaEhdOiBfeGFzc2Vha2tpIH1dLFxuICAgICAgICBbKCkgPT4gU1NFS01TRW5jcnlwdGlvbkNvbnRleHQsIHsgW19oSF06IF94YXNzZWMgfV0sXG4gICAgICAgIFsyLCB7IFtfaEhdOiBfeGFzc2Via2UgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFycCB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXQgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFvbG0gfV0sXG4gICAgICAgIFs1LCB7IFtfaEhdOiBfeGFvbHJ1ZCB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YW9sbGggfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFlYm8gfV0sXG4gICAgXSxcbl07XG52YXIgUHV0T2JqZWN0UmV0ZW50aW9uT3V0cHV0ID0gWzMsIG4wLCBfUE9STywgMCwgW19SQ10sIFtbMCwgeyBbX2hIXTogX3hhcmMgfV1dXTtcbnZhciBQdXRPYmplY3RSZXRlbnRpb25SZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1BPUlIsXG4gICAgMCxcbiAgICBbX0IsIF9LLCBfUmV0LCBfUlAsIF9WSSwgX0JHUiwgX0NNRCwgX0NBLCBfRUJPXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbKCkgPT4gT2JqZWN0TG9ja1JldGVudGlvbiwgeyBbX3hOXTogX1JldCwgW19oUF06IDEgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFycCB9XSxcbiAgICAgICAgWzAsIHsgW19oUV06IF92SSB9XSxcbiAgICAgICAgWzIsIHsgW19oSF06IF94YWJnciB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF9DTSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNjYSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICBdLFxuXTtcbnZhciBQdXRPYmplY3RUYWdnaW5nT3V0cHV0ID0gWzMsIG4wLCBfUE9UTywgMCwgW19WSV0sIFtbMCwgeyBbX2hIXTogX3hhdmkgfV1dXTtcbnZhciBQdXRPYmplY3RUYWdnaW5nUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9QT1RSLFxuICAgIDAsXG4gICAgW19CLCBfSywgX1ZJLCBfQ01ELCBfQ0EsIF9UYWcsIF9FQk8sIF9SUF0sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oUV06IF92SSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF9DTSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNjYSB9XSxcbiAgICAgICAgWygpID0+IFRhZ2dpbmcsIHsgW194Tl06IF9UYWcsIFtfaFBdOiAxIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZWJvIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhcnAgfV0sXG4gICAgXSxcbl07XG52YXIgUHV0UHVibGljQWNjZXNzQmxvY2tSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1BQQUJSLFxuICAgIDAsXG4gICAgW19CLCBfQ01ELCBfQ0EsIF9QQUJDLCBfRUJPXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oSF06IF9DTSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNjYSB9XSxcbiAgICAgICAgWygpID0+IFB1YmxpY0FjY2Vzc0Jsb2NrQ29uZmlndXJhdGlvbiwgeyBbX3hOXTogX1BBQkMsIFtfaFBdOiAxIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZWJvIH1dLFxuICAgIF0sXG5dO1xudmFyIFF1ZXVlQ29uZmlndXJhdGlvbiA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9RQ3VlLFxuICAgIDAsXG4gICAgW19JLCBfUUEsIF9FdiwgX0ZdLFxuICAgIFswLCBbMCwgeyBbX3hOXTogX1F1IH1dLCBbNjQgfCAwLCB7IFtfeE5dOiBfRXZlLCBbX3hGXTogMSB9XSwgWygpID0+IE5vdGlmaWNhdGlvbkNvbmZpZ3VyYXRpb25GaWx0ZXIsIDBdXSxcbl07XG52YXIgUmVjb3JkRXhwaXJhdGlvbiA9IFszLCBuMCwgX1JFZSwgMCwgW19FLCBfRF0sIFswLCAxXV07XG52YXIgUmVjb3Jkc0V2ZW50ID0gWzMsIG4wLCBfUkVlYywgMCwgW19QYXlsXSwgW1syMSwgeyBbX2VQXTogMSB9XV1dO1xudmFyIFJlZGlyZWN0ID0gWzMsIG4wLCBfUmVkLCAwLCBbX0hOLCBfSFJDLCBfUHJvLCBfUktQVywgX1JLV10sIFswLCAwLCAwLCAwLCAwXV07XG52YXIgUmVkaXJlY3RBbGxSZXF1ZXN0c1RvID0gWzMsIG4wLCBfUkFSVCwgMCwgW19ITiwgX1Byb10sIFswLCAwXV07XG52YXIgUmVuYW1lT2JqZWN0T3V0cHV0ID0gWzMsIG4wLCBfUk9PLCAwLCBbXSwgW11dO1xudmFyIFJlbmFtZU9iamVjdFJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfUk9SLFxuICAgIDAsXG4gICAgW19CLCBfSywgX1JTZW4sIF9ESU0sIF9ESU5NLCBfRElNUywgX0RJVVMsIF9TSU0sIF9TSU5NLCBfU0lNUywgX1NJVVMsIF9DVGxdLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFyc18gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfSU1fIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX0lOTV8gfV0sXG4gICAgICAgIFs0LCB7IFtfaEhdOiBfSU1TXyB9XSxcbiAgICAgICAgWzQsIHsgW19oSF06IF9JVVNfIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhcnNpbSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXJzaW5tIH1dLFxuICAgICAgICBbNiwgeyBbX2hIXTogX3hhcnNpbXMgfV0sXG4gICAgICAgIFs2LCB7IFtfaEhdOiBfeGFyc2l1cyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWN0XywgW19pVF06IDEgfV0sXG4gICAgXSxcbl07XG52YXIgUmVwbGljYU1vZGlmaWNhdGlvbnMgPSBbMywgbjAsIF9STSwgMCwgW19TXSwgWzBdXTtcbnZhciBSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb24gPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfUkNlLFxuICAgIDAsXG4gICAgW19SbywgX1JdLFxuICAgIFswLCBbKCkgPT4gUmVwbGljYXRpb25SdWxlcywgeyBbX3hOXTogX1J1LCBbX3hGXTogMSB9XV0sXG5dO1xudmFyIFJlcGxpY2F0aW9uUnVsZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9SUmUsXG4gICAgMCxcbiAgICBbX0lELCBfUHJpLCBfUCwgX0YsIF9TLCBfU1NDLCBfRU9SLCBfRGVzLCBfRE1SXSxcbiAgICBbXG4gICAgICAgIDAsXG4gICAgICAgIDEsXG4gICAgICAgIDAsXG4gICAgICAgIFsoKSA9PiBSZXBsaWNhdGlvblJ1bGVGaWx0ZXIsIDBdLFxuICAgICAgICAwLFxuICAgICAgICAoKSA9PiBTb3VyY2VTZWxlY3Rpb25Dcml0ZXJpYSxcbiAgICAgICAgKCkgPT4gRXhpc3RpbmdPYmplY3RSZXBsaWNhdGlvbixcbiAgICAgICAgKCkgPT4gRGVzdGluYXRpb24sXG4gICAgICAgICgpID0+IERlbGV0ZU1hcmtlclJlcGxpY2F0aW9uLFxuICAgIF0sXG5dO1xudmFyIFJlcGxpY2F0aW9uUnVsZUFuZE9wZXJhdG9yID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1JSQU8sXG4gICAgMCxcbiAgICBbX1AsIF9UXSxcbiAgICBbMCwgWygpID0+IFRhZ1NldCwgeyBbX3hOXTogX1RhLCBbX3hGXTogMSB9XV0sXG5dO1xudmFyIFJlcGxpY2F0aW9uUnVsZUZpbHRlciA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9SUkYsXG4gICAgMCxcbiAgICBbX1AsIF9UYSwgX0FuXSxcbiAgICBbMCwgKCkgPT4gVGFnLCBbKCkgPT4gUmVwbGljYXRpb25SdWxlQW5kT3BlcmF0b3IsIDBdXSxcbl07XG52YXIgUmVwbGljYXRpb25UaW1lID0gWzMsIG4wLCBfUlQsIDAsIFtfUywgX1RpbV0sIFswLCAoKSA9PiBSZXBsaWNhdGlvblRpbWVWYWx1ZV1dO1xudmFyIFJlcGxpY2F0aW9uVGltZVZhbHVlID0gWzMsIG4wLCBfUlRWLCAwLCBbX01pXSwgWzFdXTtcbnZhciBSZXF1ZXN0UGF5bWVudENvbmZpZ3VyYXRpb24gPSBbMywgbjAsIF9SUEMsIDAsIFtfUGF5XSwgWzBdXTtcbnZhciBSZXF1ZXN0UHJvZ3Jlc3MgPSBbMywgbjAsIF9SUGUsIDAsIFtfRW5hXSwgWzJdXTtcbnZhciBSZXN0b3JlT2JqZWN0T3V0cHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1JPT2UsXG4gICAgMCxcbiAgICBbX1JDLCBfUk9QXSxcbiAgICBbXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFyYyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXJvcCB9XSxcbiAgICBdLFxuXTtcbnZhciBSZXN0b3JlT2JqZWN0UmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9ST1JlLFxuICAgIDAsXG4gICAgW19CLCBfSywgX1ZJLCBfUlJlcywgX1JQLCBfQ0EsIF9FQk9dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfdkkgfV0sXG4gICAgICAgIFsoKSA9PiBSZXN0b3JlUmVxdWVzdCwgeyBbX2hQXTogMSwgW194Tl06IF9SUmVzIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhcnAgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFzY2EgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFlYm8gfV0sXG4gICAgXSxcbl07XG52YXIgUmVzdG9yZVJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfUlJlcyxcbiAgICAwLFxuICAgIFtfRCwgX0dKUCwgX1R5LCBfVGksIF9EZXNjLCBfU1AsIF9PTF0sXG4gICAgWzEsICgpID0+IEdsYWNpZXJKb2JQYXJhbWV0ZXJzLCAwLCAwLCAwLCAoKSA9PiBTZWxlY3RQYXJhbWV0ZXJzLCBbKCkgPT4gT3V0cHV0TG9jYXRpb24sIDBdXSxcbl07XG52YXIgUmVzdG9yZVN0YXR1cyA9IFszLCBuMCwgX1JTZSwgMCwgW19JUklQLCBfUkVEXSwgWzIsIDRdXTtcbnZhciBSb3V0aW5nUnVsZSA9IFszLCBuMCwgX1JSbywgMCwgW19DbywgX1JlZF0sIFsoKSA9PiBDb25kaXRpb24sICgpID0+IFJlZGlyZWN0XV07XG52YXIgUzNLZXlGaWx0ZXIgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfU0tGLFxuICAgIDAsXG4gICAgW19GUmldLFxuICAgIFtbKCkgPT4gRmlsdGVyUnVsZUxpc3QsIHsgW194Tl06IF9GUiwgW194Rl06IDEgfV1dLFxuXTtcbnZhciBTM0xvY2F0aW9uID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1NMLFxuICAgIDAsXG4gICAgW19CTiwgX1AsIF9FbiwgX0NBQ0wsIF9BQ0wsIF9UYWcsIF9VTSwgX1NDXSxcbiAgICBbMCwgMCwgWygpID0+IEVuY3J5cHRpb24sIDBdLCAwLCBbKCkgPT4gR3JhbnRzLCAwXSwgWygpID0+IFRhZ2dpbmcsIDBdLCBbKCkgPT4gVXNlck1ldGFkYXRhLCAwXSwgMF0sXG5dO1xudmFyIFMzVGFibGVzRGVzdGluYXRpb24gPSBbMywgbjAsIF9TVEQsIDAsIFtfVEJBLCBfVE5hXSwgWzAsIDBdXTtcbnZhciBTM1RhYmxlc0Rlc3RpbmF0aW9uUmVzdWx0ID0gWzMsIG4wLCBfU1REUiwgMCwgW19UQkEsIF9UTmEsIF9UQSwgX1ROXSwgWzAsIDAsIDAsIDBdXTtcbnZhciBTY2FuUmFuZ2UgPSBbMywgbjAsIF9TUiwgMCwgW19TdCwgX0VuZF0sIFsxLCAxXV07XG52YXIgU2VsZWN0T2JqZWN0Q29udGVudE91dHB1dCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9TT0NPLFxuICAgIDAsXG4gICAgW19QYXlsXSxcbiAgICBbWygpID0+IFNlbGVjdE9iamVjdENvbnRlbnRFdmVudFN0cmVhbSwgMTZdXSxcbl07XG52YXIgU2VsZWN0T2JqZWN0Q29udGVudFJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfU09DUixcbiAgICAwLFxuICAgIFtfQiwgX0ssIF9TU0VDQSwgX1NTRUNLLCBfU1NFQ0tNRCwgX0V4cCwgX0VUeCwgX1JQZSwgX0lTLCBfT1N1LCBfU1IsIF9FQk9dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFzc2VjYSB9XSxcbiAgICAgICAgWygpID0+IFNTRUN1c3RvbWVyS2V5LCB7IFtfaEhdOiBfeGFzc2VjayB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNzZWNrTSB9XSxcbiAgICAgICAgMCxcbiAgICAgICAgMCxcbiAgICAgICAgKCkgPT4gUmVxdWVzdFByb2dyZXNzLFxuICAgICAgICAoKSA9PiBJbnB1dFNlcmlhbGl6YXRpb24sXG4gICAgICAgICgpID0+IE91dHB1dFNlcmlhbGl6YXRpb24sXG4gICAgICAgICgpID0+IFNjYW5SYW5nZSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICBdLFxuXTtcbnZhciBTZWxlY3RQYXJhbWV0ZXJzID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1NQLFxuICAgIDAsXG4gICAgW19JUywgX0VUeCwgX0V4cCwgX09TdV0sXG4gICAgWygpID0+IElucHV0U2VyaWFsaXphdGlvbiwgMCwgMCwgKCkgPT4gT3V0cHV0U2VyaWFsaXphdGlvbl0sXG5dO1xudmFyIFNlcnZlclNpZGVFbmNyeXB0aW9uQnlEZWZhdWx0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1NTRUJELFxuICAgIDAsXG4gICAgW19TU0VBLCBfS01TTUtJRF0sXG4gICAgWzAsIFsoKSA9PiBTU0VLTVNLZXlJZCwgMF1dLFxuXTtcbnZhciBTZXJ2ZXJTaWRlRW5jcnlwdGlvbkNvbmZpZ3VyYXRpb24gPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfU1NFQyxcbiAgICAwLFxuICAgIFtfUl0sXG4gICAgW1soKSA9PiBTZXJ2ZXJTaWRlRW5jcnlwdGlvblJ1bGVzLCB7IFtfeE5dOiBfUnUsIFtfeEZdOiAxIH1dXSxcbl07XG52YXIgU2VydmVyU2lkZUVuY3J5cHRpb25SdWxlID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1NTRVIsXG4gICAgMCxcbiAgICBbX0FTU0VCRCwgX0JLRSwgX0JFVF0sXG4gICAgW1soKSA9PiBTZXJ2ZXJTaWRlRW5jcnlwdGlvbkJ5RGVmYXVsdCwgMF0sIDIsIFsoKSA9PiBCbG9ja2VkRW5jcnlwdGlvblR5cGVzLCAwXV0sXG5dO1xudmFyIFNlc3Npb25DcmVkZW50aWFscyA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9TQ2UsXG4gICAgMCxcbiAgICBbX0FLSSwgX1NBSywgX1NULCBfRV0sXG4gICAgW1xuICAgICAgICBbMCwgeyBbX3hOXTogX0FLSSB9XSxcbiAgICAgICAgWygpID0+IFNlc3Npb25DcmVkZW50aWFsVmFsdWUsIHsgW194Tl06IF9TQUsgfV0sXG4gICAgICAgIFsoKSA9PiBTZXNzaW9uQ3JlZGVudGlhbFZhbHVlLCB7IFtfeE5dOiBfU1QgfV0sXG4gICAgICAgIFs0LCB7IFtfeE5dOiBfRSB9XSxcbiAgICBdLFxuXTtcbnZhciBTaW1wbGVQcmVmaXggPSBbMywgbjAsIF9TUGksIHsgW194Tl06IF9TUGkgfSwgW10sIFtdXTtcbnZhciBTb3VyY2VTZWxlY3Rpb25Dcml0ZXJpYSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9TU0MsXG4gICAgMCxcbiAgICBbX1NLRU8sIF9STV0sXG4gICAgWygpID0+IFNzZUttc0VuY3J5cHRlZE9iamVjdHMsICgpID0+IFJlcGxpY2FNb2RpZmljYXRpb25zXSxcbl07XG52YXIgU1NFS01TID0gWzMsIG4wLCBfU1NFS01TLCB7IFtfeE5dOiBfU0sgfSwgW19LSV0sIFtbKCkgPT4gU1NFS01TS2V5SWQsIDBdXV07XG52YXIgU3NlS21zRW5jcnlwdGVkT2JqZWN0cyA9IFszLCBuMCwgX1NLRU8sIDAsIFtfU10sIFswXV07XG52YXIgU1NFUzMgPSBbMywgbjAsIF9TU0VTLCB7IFtfeE5dOiBfU1MgfSwgW10sIFtdXTtcbnZhciBTdGF0cyA9IFszLCBuMCwgX1N0YSwgMCwgW19CUywgX0JQLCBfQlJ5XSwgWzEsIDEsIDFdXTtcbnZhciBTdGF0c0V2ZW50ID0gWzMsIG4wLCBfU0UsIDAsIFtfRGV0XSwgW1soKSA9PiBTdGF0cywgeyBbX2VQXTogMSB9XV1dO1xudmFyIFN0b3JhZ2VDbGFzc0FuYWx5c2lzID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1NDQSxcbiAgICAwLFxuICAgIFtfREVdLFxuICAgIFsoKSA9PiBTdG9yYWdlQ2xhc3NBbmFseXNpc0RhdGFFeHBvcnRdLFxuXTtcbnZhciBTdG9yYWdlQ2xhc3NBbmFseXNpc0RhdGFFeHBvcnQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfU0NBREUsXG4gICAgMCxcbiAgICBbX09TViwgX0Rlc10sXG4gICAgWzAsICgpID0+IEFuYWx5dGljc0V4cG9ydERlc3RpbmF0aW9uXSxcbl07XG52YXIgVGFnID0gWzMsIG4wLCBfVGEsIDAsIFtfSywgX1ZdLCBbMCwgMF1dO1xudmFyIFRhZ2dpbmcgPSBbMywgbjAsIF9UYWcsIDAsIFtfVFNdLCBbWygpID0+IFRhZ1NldCwgMF1dXTtcbnZhciBUYXJnZXRHcmFudCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9UR2EsXG4gICAgMCxcbiAgICBbX0dyYSwgX1BlXSxcbiAgICBbWygpID0+IEdyYW50ZWUsIHsgW194Tm1dOiBbX3gsIF9oaV0gfV0sIDBdLFxuXTtcbnZhciBUYXJnZXRPYmplY3RLZXlGb3JtYXQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfVE9LRixcbiAgICAwLFxuICAgIFtfU1BpLCBfUFBdLFxuICAgIFtcbiAgICAgICAgWygpID0+IFNpbXBsZVByZWZpeCwgeyBbX3hOXTogX1NQaSB9XSxcbiAgICAgICAgWygpID0+IFBhcnRpdGlvbmVkUHJlZml4LCB7IFtfeE5dOiBfUFAgfV0sXG4gICAgXSxcbl07XG52YXIgVGllcmluZyA9IFszLCBuMCwgX1RpZXIsIDAsIFtfRCwgX0FUXSwgWzEsIDBdXTtcbnZhciBUb29NYW55UGFydHMgPSBbLTMsIG4wLCBfVE1QLCB7IFtfZV06IF9jLCBbX2hFXTogNDAwIH0sIFtdLCBbXV07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihUb29NYW55UGFydHMsIFRvb01hbnlQYXJ0cyQxKTtcbnZhciBUb3BpY0NvbmZpZ3VyYXRpb24gPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfVENvcCxcbiAgICAwLFxuICAgIFtfSSwgX1RBbywgX0V2LCBfRl0sXG4gICAgWzAsIFswLCB7IFtfeE5dOiBfVG9wIH1dLCBbNjQgfCAwLCB7IFtfeE5dOiBfRXZlLCBbX3hGXTogMSB9XSwgWygpID0+IE5vdGlmaWNhdGlvbkNvbmZpZ3VyYXRpb25GaWx0ZXIsIDBdXSxcbl07XG52YXIgVHJhbnNpdGlvbiA9IFszLCBuMCwgX1RyYSwgMCwgW19EYSwgX0QsIF9TQ10sIFs1LCAxLCAwXV07XG52YXIgVXBkYXRlQnVja2V0TWV0YWRhdGFJbnZlbnRvcnlUYWJsZUNvbmZpZ3VyYXRpb25SZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1VCTUlUQ1IsXG4gICAgMCxcbiAgICBbX0IsIF9DTUQsIF9DQSwgX0lUQ24sIF9FQk9dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hIXTogX0NNIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhc2NhIH1dLFxuICAgICAgICBbKCkgPT4gSW52ZW50b3J5VGFibGVDb25maWd1cmF0aW9uVXBkYXRlcywgeyBbX3hOXTogX0lUQ24sIFtfaFBdOiAxIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZWJvIH1dLFxuICAgIF0sXG5dO1xudmFyIFVwZGF0ZUJ1Y2tldE1ldGFkYXRhSm91cm5hbFRhYmxlQ29uZmlndXJhdGlvblJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfVUJNSlRDUixcbiAgICAwLFxuICAgIFtfQiwgX0NNRCwgX0NBLCBfSlRDLCBfRUJPXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oSF06IF9DTSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNjYSB9XSxcbiAgICAgICAgWygpID0+IEpvdXJuYWxUYWJsZUNvbmZpZ3VyYXRpb25VcGRhdGVzLCB7IFtfeE5dOiBfSlRDLCBbX2hQXTogMSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICBdLFxuXTtcbnZhciBVcGxvYWRQYXJ0Q29weU91dHB1dCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9VUENPLFxuICAgIDAsXG4gICAgW19DU1ZJLCBfQ1BSLCBfU1NFLCBfU1NFQ0EsIF9TU0VDS01ELCBfU1NFS01TS0ksIF9CS0UsIF9SQ10sXG4gICAgW1xuICAgICAgICBbMCwgeyBbX2hIXTogX3hhY3N2aSB9XSxcbiAgICAgICAgWygpID0+IENvcHlQYXJ0UmVzdWx0LCAxNl0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFzc2UgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFzc2VjYSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNzZWNrTSB9XSxcbiAgICAgICAgWygpID0+IFNTRUtNU0tleUlkLCB7IFtfaEhdOiBfeGFzc2Vha2tpIH1dLFxuICAgICAgICBbMiwgeyBbX2hIXTogX3hhc3NlYmtlIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhcmMgfV0sXG4gICAgXSxcbl07XG52YXIgVXBsb2FkUGFydENvcHlSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1VQQ1IsXG4gICAgMCxcbiAgICBbXG4gICAgICAgIF9CLFxuICAgICAgICBfQ1MsXG4gICAgICAgIF9DU0lNLFxuICAgICAgICBfQ1NJTVMsXG4gICAgICAgIF9DU0lOTSxcbiAgICAgICAgX0NTSVVTLFxuICAgICAgICBfQ1NSbyxcbiAgICAgICAgX0ssXG4gICAgICAgIF9QTixcbiAgICAgICAgX1VJLFxuICAgICAgICBfU1NFQ0EsXG4gICAgICAgIF9TU0VDSyxcbiAgICAgICAgX1NTRUNLTUQsXG4gICAgICAgIF9DU1NTRUNBLFxuICAgICAgICBfQ1NTU0VDSyxcbiAgICAgICAgX0NTU1NFQ0tNRCxcbiAgICAgICAgX1JQLFxuICAgICAgICBfRUJPLFxuICAgICAgICBfRVNCTyxcbiAgICBdLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhY3NfXyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWNzaW0gfV0sXG4gICAgICAgIFs0LCB7IFtfaEhdOiBfeGFjc2ltcyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWNzaW5tIH1dLFxuICAgICAgICBbNCwgeyBbX2hIXTogX3hhY3NpdXMgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFjc3IgfV0sXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzEsIHsgW19oUV06IF9wTiB9XSxcbiAgICAgICAgWzAsIHsgW19oUV06IF91SSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNzZWNhIH1dLFxuICAgICAgICBbKCkgPT4gU1NFQ3VzdG9tZXJLZXksIHsgW19oSF06IF94YXNzZWNrIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhc3NlY2tNIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhY3Nzc2VjYSB9XSxcbiAgICAgICAgWygpID0+IENvcHlTb3VyY2VTU0VDdXN0b21lcktleSwgeyBbX2hIXTogX3hhY3Nzc2VjayB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWNzc3NlY2tNIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhcnAgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFlYm8gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFzZWJvIH1dLFxuICAgIF0sXG5dO1xudmFyIFVwbG9hZFBhcnRPdXRwdXQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfVVBPLFxuICAgIDAsXG4gICAgW19TU0UsIF9FVGEsIF9DQ1JDLCBfQ0NSQ0MsIF9DQ1JDTlZNRSwgX0NTSEEsIF9DU0hBaCwgX1NTRUNBLCBfU1NFQ0tNRCwgX1NTRUtNU0tJLCBfQktFLCBfUkNdLFxuICAgIFtcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNzZSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF9FVGEgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFjYyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWNjXyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWNjX18gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFjcyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWNzXyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNzZWNhIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhc3NlY2tNIH1dLFxuICAgICAgICBbKCkgPT4gU1NFS01TS2V5SWQsIHsgW19oSF06IF94YXNzZWFra2kgfV0sXG4gICAgICAgIFsyLCB7IFtfaEhdOiBfeGFzc2Via2UgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFyYyB9XSxcbiAgICBdLFxuXTtcbnZhciBVcGxvYWRQYXJ0UmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9VUFIsXG4gICAgMCxcbiAgICBbXG4gICAgICAgIF9CbyxcbiAgICAgICAgX0IsXG4gICAgICAgIF9DTG8sXG4gICAgICAgIF9DTUQsXG4gICAgICAgIF9DQSxcbiAgICAgICAgX0NDUkMsXG4gICAgICAgIF9DQ1JDQyxcbiAgICAgICAgX0NDUkNOVk1FLFxuICAgICAgICBfQ1NIQSxcbiAgICAgICAgX0NTSEFoLFxuICAgICAgICBfSyxcbiAgICAgICAgX1BOLFxuICAgICAgICBfVUksXG4gICAgICAgIF9TU0VDQSxcbiAgICAgICAgX1NTRUNLLFxuICAgICAgICBfU1NFQ0tNRCxcbiAgICAgICAgX1JQLFxuICAgICAgICBfRUJPLFxuICAgIF0sXG4gICAgW1xuICAgICAgICBbKCkgPT4gU3RyZWFtaW5nQmxvYiwgMTZdLFxuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFsxLCB7IFtfaEhdOiBfQ0xfXyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF9DTSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNjYSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWNjIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhY2NfIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhY2NfXyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWNzIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhY3NfIH1dLFxuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFsxLCB7IFtfaFFdOiBfcE4gfV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfdUkgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFzc2VjYSB9XSxcbiAgICAgICAgWygpID0+IFNTRUN1c3RvbWVyS2V5LCB7IFtfaEhdOiBfeGFzc2VjayB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNzZWNrTSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXJwIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZWJvIH1dLFxuICAgIF0sXG5dO1xudmFyIFZlcnNpb25pbmdDb25maWd1cmF0aW9uID0gWzMsIG4wLCBfVkMsIDAsIFtfTUZBRCwgX1NdLCBbWzAsIHsgW194Tl06IF9NRGYgfV0sIDBdXTtcbnZhciBXZWJzaXRlQ29uZmlndXJhdGlvbiA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9XQyxcbiAgICAwLFxuICAgIFtfRURyLCBfSURuLCBfUkFSVCwgX1JSXSxcbiAgICBbKCkgPT4gRXJyb3JEb2N1bWVudCwgKCkgPT4gSW5kZXhEb2N1bWVudCwgKCkgPT4gUmVkaXJlY3RBbGxSZXF1ZXN0c1RvLCBbKCkgPT4gUm91dGluZ1J1bGVzLCAwXV0sXG5dO1xudmFyIFdyaXRlR2V0T2JqZWN0UmVzcG9uc2VSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1dHT1JSLFxuICAgIDAsXG4gICAgW1xuICAgICAgICBfUlJlcSxcbiAgICAgICAgX1JUZSxcbiAgICAgICAgX0JvLFxuICAgICAgICBfU0N0LFxuICAgICAgICBfRUNyLFxuICAgICAgICBfRU0sXG4gICAgICAgIF9BUixcbiAgICAgICAgX0NDLFxuICAgICAgICBfQ0RvLFxuICAgICAgICBfQ0VvLFxuICAgICAgICBfQ0wsXG4gICAgICAgIF9DTG8sXG4gICAgICAgIF9DUixcbiAgICAgICAgX0NUbyxcbiAgICAgICAgX0NDUkMsXG4gICAgICAgIF9DQ1JDQyxcbiAgICAgICAgX0NDUkNOVk1FLFxuICAgICAgICBfQ1NIQSxcbiAgICAgICAgX0NTSEFoLFxuICAgICAgICBfRE0sXG4gICAgICAgIF9FVGEsXG4gICAgICAgIF9FeCxcbiAgICAgICAgX0UsXG4gICAgICAgIF9MTSxcbiAgICAgICAgX01NLFxuICAgICAgICBfTSxcbiAgICAgICAgX09MTSxcbiAgICAgICAgX09MTEhTLFxuICAgICAgICBfT0xSVUQsXG4gICAgICAgIF9QQyxcbiAgICAgICAgX1JTLFxuICAgICAgICBfUkMsXG4gICAgICAgIF9SZSxcbiAgICAgICAgX1NTRSxcbiAgICAgICAgX1NTRUNBLFxuICAgICAgICBfU1NFS01TS0ksXG4gICAgICAgIF9TU0VDS01ELFxuICAgICAgICBfU0MsXG4gICAgICAgIF9UQyxcbiAgICAgICAgX1ZJLFxuICAgICAgICBfQktFLFxuICAgIF0sXG4gICAgW1xuICAgICAgICBbMCwgeyBbX2hMXTogMSwgW19oSF06IF94YXJyIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhcnQgfV0sXG4gICAgICAgIFsoKSA9PiBTdHJlYW1pbmdCbG9iLCAxNl0sXG4gICAgICAgIFsxLCB7IFtfaEhdOiBfeGFmcyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWZlYyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWZlbSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWZoYXIgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFmaENDIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZmhDRCB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWZoQ0UgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFmaENMIH1dLFxuICAgICAgICBbMSwgeyBbX2hIXTogX0NMX18gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFmaENSIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZmhDVCB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWZoeGFjYyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWZoeGFjY18gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFmaHhhY2NfXyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWZoeGFjcyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWZoeGFjc18gfV0sXG4gICAgICAgIFsyLCB7IFtfaEhdOiBfeGFmaHhhZG0gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFmaEUgfV0sXG4gICAgICAgIFs0LCB7IFtfaEhdOiBfeGFmaEVfIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZmh4YWUgfV0sXG4gICAgICAgIFs0LCB7IFtfaEhdOiBfeGFmaExNIH1dLFxuICAgICAgICBbMSwgeyBbX2hIXTogX3hhZmh4YW1tIH1dLFxuICAgICAgICBbMTI4IHwgMCwgeyBbX2hQSF06IF94YW0gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFmaHhhb2xtIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZmh4YW9sbGggfV0sXG4gICAgICAgIFs1LCB7IFtfaEhdOiBfeGFmaHhhb2xydWQgfV0sXG4gICAgICAgIFsxLCB7IFtfaEhdOiBfeGFmaHhhbXBjIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZmh4YXJzIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZmh4YXJjIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZmh4YXIgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFmaHhhc3NlIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZmh4YXNzZWNhIH1dLFxuICAgICAgICBbKCkgPT4gU1NFS01TS2V5SWQsIHsgW19oSF06IF94YWZoeGFzc2Vha2tpIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZmh4YXNzZWNrTSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWZoeGFzYyB9XSxcbiAgICAgICAgWzEsIHsgW19oSF06IF94YWZoeGF0YyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWZoeGF2aSB9XSxcbiAgICAgICAgWzIsIHsgW19oSF06IF94YWZoeGFzc2Via2UgfV0sXG4gICAgXSxcbl07XG52YXIgX19Vbml0ID0gXCJ1bml0XCI7XG52YXIgUzNTZXJ2aWNlRXhjZXB0aW9uID0gWy0zLCBfc20sIFwiUzNTZXJ2aWNlRXhjZXB0aW9uXCIsIDAsIFtdLCBbXV07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihfc20pLnJlZ2lzdGVyRXJyb3IoUzNTZXJ2aWNlRXhjZXB0aW9uLCBTM1NlcnZpY2VFeGNlcHRpb24kMSk7XG52YXIgQW5hbHl0aWNzQ29uZmlndXJhdGlvbkxpc3QgPSBbMSwgbjAsIF9BQ0xuLCAwLCBbKCkgPT4gQW5hbHl0aWNzQ29uZmlndXJhdGlvbiwgMF1dO1xudmFyIEJ1Y2tldHMgPSBbMSwgbjAsIF9CdSwgMCwgWygpID0+IEJ1Y2tldCwgeyBbX3hOXTogX0IgfV1dO1xudmFyIENvbW1vblByZWZpeExpc3QgPSBbMSwgbjAsIF9DUEwsIDAsICgpID0+IENvbW1vblByZWZpeF07XG52YXIgQ29tcGxldGVkUGFydExpc3QgPSBbMSwgbjAsIF9DUExvLCAwLCAoKSA9PiBDb21wbGV0ZWRQYXJ0XTtcbnZhciBDT1JTUnVsZXMgPSBbMSwgbjAsIF9DT1JTUiwgMCwgWygpID0+IENPUlNSdWxlLCAwXV07XG52YXIgRGVsZXRlZE9iamVjdHMgPSBbMSwgbjAsIF9ET2UsIDAsICgpID0+IERlbGV0ZWRPYmplY3RdO1xudmFyIERlbGV0ZU1hcmtlcnMgPSBbMSwgbjAsIF9ETWUsIDAsICgpID0+IERlbGV0ZU1hcmtlckVudHJ5XTtcbnZhciBFbmNyeXB0aW9uVHlwZUxpc3QgPSBbMSwgbjAsIF9FVEwsIDAsIFswLCB7IFtfeE5dOiBfRVQgfV1dO1xudmFyIEVycm9ycyA9IFsxLCBuMCwgX0VyLCAwLCAoKSA9PiBfRXJyb3JdO1xudmFyIEZpbHRlclJ1bGVMaXN0ID0gWzEsIG4wLCBfRlJMLCAwLCAoKSA9PiBGaWx0ZXJSdWxlXTtcbnZhciBHcmFudHMgPSBbMSwgbjAsIF9HLCAwLCBbKCkgPT4gR3JhbnQsIHsgW194Tl06IF9HciB9XV07XG52YXIgSW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvbkxpc3QgPSBbXG4gICAgMSxcbiAgICBuMCxcbiAgICBfSVRDTCxcbiAgICAwLFxuICAgIFsoKSA9PiBJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9uLCAwXSxcbl07XG52YXIgSW52ZW50b3J5Q29uZmlndXJhdGlvbkxpc3QgPSBbMSwgbjAsIF9JQ0wsIDAsIFsoKSA9PiBJbnZlbnRvcnlDb25maWd1cmF0aW9uLCAwXV07XG52YXIgSW52ZW50b3J5T3B0aW9uYWxGaWVsZHMgPSBbMSwgbjAsIF9JT0YsIDAsIFswLCB7IFtfeE5dOiBfRmkgfV1dO1xudmFyIExhbWJkYUZ1bmN0aW9uQ29uZmlndXJhdGlvbkxpc3QgPSBbXG4gICAgMSxcbiAgICBuMCxcbiAgICBfTEZDTCxcbiAgICAwLFxuICAgIFsoKSA9PiBMYW1iZGFGdW5jdGlvbkNvbmZpZ3VyYXRpb24sIDBdLFxuXTtcbnZhciBMaWZlY3ljbGVSdWxlcyA9IFsxLCBuMCwgX0xSaSwgMCwgWygpID0+IExpZmVjeWNsZVJ1bGUsIDBdXTtcbnZhciBNZXRyaWNzQ29uZmlndXJhdGlvbkxpc3QgPSBbMSwgbjAsIF9NQ0wsIDAsIFsoKSA9PiBNZXRyaWNzQ29uZmlndXJhdGlvbiwgMF1dO1xudmFyIE11bHRpcGFydFVwbG9hZExpc3QgPSBbMSwgbjAsIF9NVUwsIDAsICgpID0+IE11bHRpcGFydFVwbG9hZF07XG52YXIgTm9uY3VycmVudFZlcnNpb25UcmFuc2l0aW9uTGlzdCA9IFsxLCBuMCwgX05WVEwsIDAsICgpID0+IE5vbmN1cnJlbnRWZXJzaW9uVHJhbnNpdGlvbl07XG52YXIgT2JqZWN0SWRlbnRpZmllckxpc3QgPSBbMSwgbjAsIF9PSUwsIDAsICgpID0+IE9iamVjdElkZW50aWZpZXJdO1xudmFyIE9iamVjdExpc3QgPSBbMSwgbjAsIF9PTGIsIDAsIFsoKSA9PiBfT2JqZWN0LCAwXV07XG52YXIgT2JqZWN0VmVyc2lvbkxpc3QgPSBbMSwgbjAsIF9PVkwsIDAsIFsoKSA9PiBPYmplY3RWZXJzaW9uLCAwXV07XG52YXIgT3duZXJzaGlwQ29udHJvbHNSdWxlcyA9IFsxLCBuMCwgX09DUncsIDAsICgpID0+IE93bmVyc2hpcENvbnRyb2xzUnVsZV07XG52YXIgUGFydHMgPSBbMSwgbjAsIF9QYSwgMCwgKCkgPT4gUGFydF07XG52YXIgUGFydHNMaXN0ID0gWzEsIG4wLCBfUEwsIDAsICgpID0+IE9iamVjdFBhcnRdO1xudmFyIFF1ZXVlQ29uZmlndXJhdGlvbkxpc3QgPSBbMSwgbjAsIF9RQ0wsIDAsIFsoKSA9PiBRdWV1ZUNvbmZpZ3VyYXRpb24sIDBdXTtcbnZhciBSZXBsaWNhdGlvblJ1bGVzID0gWzEsIG4wLCBfUlJlcCwgMCwgWygpID0+IFJlcGxpY2F0aW9uUnVsZSwgMF1dO1xudmFyIFJvdXRpbmdSdWxlcyA9IFsxLCBuMCwgX1JSLCAwLCBbKCkgPT4gUm91dGluZ1J1bGUsIHsgW194Tl06IF9SUm8gfV1dO1xudmFyIFNlcnZlclNpZGVFbmNyeXB0aW9uUnVsZXMgPSBbMSwgbjAsIF9TU0VSZSwgMCwgWygpID0+IFNlcnZlclNpZGVFbmNyeXB0aW9uUnVsZSwgMF1dO1xudmFyIFRhZ1NldCA9IFsxLCBuMCwgX1RTLCAwLCBbKCkgPT4gVGFnLCB7IFtfeE5dOiBfVGEgfV1dO1xudmFyIFRhcmdldEdyYW50cyA9IFsxLCBuMCwgX1RHLCAwLCBbKCkgPT4gVGFyZ2V0R3JhbnQsIHsgW194Tl06IF9HciB9XV07XG52YXIgVGllcmluZ0xpc3QgPSBbMSwgbjAsIF9UTCwgMCwgKCkgPT4gVGllcmluZ107XG52YXIgVG9waWNDb25maWd1cmF0aW9uTGlzdCA9IFsxLCBuMCwgX1RDTCwgMCwgWygpID0+IFRvcGljQ29uZmlndXJhdGlvbiwgMF1dO1xudmFyIFRyYW5zaXRpb25MaXN0ID0gWzEsIG4wLCBfVExyLCAwLCAoKSA9PiBUcmFuc2l0aW9uXTtcbnZhciBVc2VyTWV0YWRhdGEgPSBbMSwgbjAsIF9VTSwgMCwgWygpID0+IE1ldGFkYXRhRW50cnksIHsgW194Tl06IF9NRSB9XV07XG52YXIgQW5hbHl0aWNzRmlsdGVyID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0FGLFxuICAgIDAsXG4gICAgW19QLCBfVGEsIF9Bbl0sXG4gICAgWzAsICgpID0+IFRhZywgWygpID0+IEFuYWx5dGljc0FuZE9wZXJhdG9yLCAwXV0sXG5dO1xudmFyIE1ldHJpY3NGaWx0ZXIgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfTUYsXG4gICAgMCxcbiAgICBbX1AsIF9UYSwgX0FQQWMsIF9Bbl0sXG4gICAgWzAsICgpID0+IFRhZywgMCwgWygpID0+IE1ldHJpY3NBbmRPcGVyYXRvciwgMF1dLFxuXTtcbnZhciBTZWxlY3RPYmplY3RDb250ZW50RXZlbnRTdHJlYW0gPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfU09DRVMsXG4gICAgeyBbX3NdOiAxIH0sXG4gICAgW19SZWMsIF9TdGEsIF9QciwgX0NvbnQsIF9FbmRdLFxuICAgIFtbKCkgPT4gUmVjb3Jkc0V2ZW50LCAwXSwgWygpID0+IFN0YXRzRXZlbnQsIDBdLCBbKCkgPT4gUHJvZ3Jlc3NFdmVudCwgMF0sICgpID0+IENvbnRpbnVhdGlvbkV2ZW50LCAoKSA9PiBFbmRFdmVudF0sXG5dO1xudmFyIEFib3J0TXVsdGlwYXJ0VXBsb2FkID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0FNVSxcbiAgICB7IFtfaF06IFtcIkRFTEVURVwiLCBcIi97S2V5K30/eC1pZD1BYm9ydE11bHRpcGFydFVwbG9hZFwiLCAyMDRdIH0sXG4gICAgKCkgPT4gQWJvcnRNdWx0aXBhcnRVcGxvYWRSZXF1ZXN0LFxuICAgICgpID0+IEFib3J0TXVsdGlwYXJ0VXBsb2FkT3V0cHV0LFxuXTtcbnZhciBDb21wbGV0ZU11bHRpcGFydFVwbG9hZCA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9DTVVvLFxuICAgIHsgW19oXTogW1wiUE9TVFwiLCBcIi97S2V5K31cIiwgMjAwXSB9LFxuICAgICgpID0+IENvbXBsZXRlTXVsdGlwYXJ0VXBsb2FkUmVxdWVzdCxcbiAgICAoKSA9PiBDb21wbGV0ZU11bHRpcGFydFVwbG9hZE91dHB1dCxcbl07XG52YXIgQ29weU9iamVjdCA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9DTyxcbiAgICB7IFtfaF06IFtcIlBVVFwiLCBcIi97S2V5K30/eC1pZD1Db3B5T2JqZWN0XCIsIDIwMF0gfSxcbiAgICAoKSA9PiBDb3B5T2JqZWN0UmVxdWVzdCxcbiAgICAoKSA9PiBDb3B5T2JqZWN0T3V0cHV0LFxuXTtcbnZhciBDcmVhdGVCdWNrZXQgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfQ0IsXG4gICAgeyBbX2hdOiBbXCJQVVRcIiwgXCIvXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBDcmVhdGVCdWNrZXRSZXF1ZXN0LFxuICAgICgpID0+IENyZWF0ZUJ1Y2tldE91dHB1dCxcbl07XG52YXIgQ3JlYXRlQnVja2V0TWV0YWRhdGFDb25maWd1cmF0aW9uID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0NCTUMsXG4gICAgeyBbX2hdOiBbXCJQT1NUXCIsIFwiLz9tZXRhZGF0YUNvbmZpZ3VyYXRpb25cIiwgMjAwXSB9LFxuICAgICgpID0+IENyZWF0ZUJ1Y2tldE1ldGFkYXRhQ29uZmlndXJhdGlvblJlcXVlc3QsXG4gICAgKCkgPT4gX19Vbml0LFxuXTtcbnZhciBDcmVhdGVCdWNrZXRNZXRhZGF0YVRhYmxlQ29uZmlndXJhdGlvbiA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9DQk1UQyxcbiAgICB7IFtfaF06IFtcIlBPU1RcIiwgXCIvP21ldGFkYXRhVGFibGVcIiwgMjAwXSB9LFxuICAgICgpID0+IENyZWF0ZUJ1Y2tldE1ldGFkYXRhVGFibGVDb25maWd1cmF0aW9uUmVxdWVzdCxcbiAgICAoKSA9PiBfX1VuaXQsXG5dO1xudmFyIENyZWF0ZU11bHRpcGFydFVwbG9hZCA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9DTVVyLFxuICAgIHsgW19oXTogW1wiUE9TVFwiLCBcIi97S2V5K30/dXBsb2Fkc1wiLCAyMDBdIH0sXG4gICAgKCkgPT4gQ3JlYXRlTXVsdGlwYXJ0VXBsb2FkUmVxdWVzdCxcbiAgICAoKSA9PiBDcmVhdGVNdWx0aXBhcnRVcGxvYWRPdXRwdXQsXG5dO1xudmFyIENyZWF0ZVNlc3Npb24gPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfQ1NyLFxuICAgIHsgW19oXTogW1wiR0VUXCIsIFwiLz9zZXNzaW9uXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBDcmVhdGVTZXNzaW9uUmVxdWVzdCxcbiAgICAoKSA9PiBDcmVhdGVTZXNzaW9uT3V0cHV0LFxuXTtcbnZhciBEZWxldGVCdWNrZXQgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfREIsXG4gICAgeyBbX2hdOiBbXCJERUxFVEVcIiwgXCIvXCIsIDIwNF0gfSxcbiAgICAoKSA9PiBEZWxldGVCdWNrZXRSZXF1ZXN0LFxuICAgICgpID0+IF9fVW5pdCxcbl07XG52YXIgRGVsZXRlQnVja2V0QW5hbHl0aWNzQ29uZmlndXJhdGlvbiA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9EQkFDLFxuICAgIHsgW19oXTogW1wiREVMRVRFXCIsIFwiLz9hbmFseXRpY3NcIiwgMjA0XSB9LFxuICAgICgpID0+IERlbGV0ZUJ1Y2tldEFuYWx5dGljc0NvbmZpZ3VyYXRpb25SZXF1ZXN0LFxuICAgICgpID0+IF9fVW5pdCxcbl07XG52YXIgRGVsZXRlQnVja2V0Q29ycyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9EQkMsXG4gICAgeyBbX2hdOiBbXCJERUxFVEVcIiwgXCIvP2NvcnNcIiwgMjA0XSB9LFxuICAgICgpID0+IERlbGV0ZUJ1Y2tldENvcnNSZXF1ZXN0LFxuICAgICgpID0+IF9fVW5pdCxcbl07XG52YXIgRGVsZXRlQnVja2V0RW5jcnlwdGlvbiA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9EQkUsXG4gICAgeyBbX2hdOiBbXCJERUxFVEVcIiwgXCIvP2VuY3J5cHRpb25cIiwgMjA0XSB9LFxuICAgICgpID0+IERlbGV0ZUJ1Y2tldEVuY3J5cHRpb25SZXF1ZXN0LFxuICAgICgpID0+IF9fVW5pdCxcbl07XG52YXIgRGVsZXRlQnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvbiA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9EQklUQyxcbiAgICB7IFtfaF06IFtcIkRFTEVURVwiLCBcIi8/aW50ZWxsaWdlbnQtdGllcmluZ1wiLCAyMDRdIH0sXG4gICAgKCkgPT4gRGVsZXRlQnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvblJlcXVlc3QsXG4gICAgKCkgPT4gX19Vbml0LFxuXTtcbnZhciBEZWxldGVCdWNrZXRJbnZlbnRvcnlDb25maWd1cmF0aW9uID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0RCSUMsXG4gICAgeyBbX2hdOiBbXCJERUxFVEVcIiwgXCIvP2ludmVudG9yeVwiLCAyMDRdIH0sXG4gICAgKCkgPT4gRGVsZXRlQnVja2V0SW52ZW50b3J5Q29uZmlndXJhdGlvblJlcXVlc3QsXG4gICAgKCkgPT4gX19Vbml0LFxuXTtcbnZhciBEZWxldGVCdWNrZXRMaWZlY3ljbGUgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfREJMLFxuICAgIHsgW19oXTogW1wiREVMRVRFXCIsIFwiLz9saWZlY3ljbGVcIiwgMjA0XSB9LFxuICAgICgpID0+IERlbGV0ZUJ1Y2tldExpZmVjeWNsZVJlcXVlc3QsXG4gICAgKCkgPT4gX19Vbml0LFxuXTtcbnZhciBEZWxldGVCdWNrZXRNZXRhZGF0YUNvbmZpZ3VyYXRpb24gPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfREJNQyxcbiAgICB7IFtfaF06IFtcIkRFTEVURVwiLCBcIi8/bWV0YWRhdGFDb25maWd1cmF0aW9uXCIsIDIwNF0gfSxcbiAgICAoKSA9PiBEZWxldGVCdWNrZXRNZXRhZGF0YUNvbmZpZ3VyYXRpb25SZXF1ZXN0LFxuICAgICgpID0+IF9fVW5pdCxcbl07XG52YXIgRGVsZXRlQnVja2V0TWV0YWRhdGFUYWJsZUNvbmZpZ3VyYXRpb24gPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfREJNVEMsXG4gICAgeyBbX2hdOiBbXCJERUxFVEVcIiwgXCIvP21ldGFkYXRhVGFibGVcIiwgMjA0XSB9LFxuICAgICgpID0+IERlbGV0ZUJ1Y2tldE1ldGFkYXRhVGFibGVDb25maWd1cmF0aW9uUmVxdWVzdCxcbiAgICAoKSA9PiBfX1VuaXQsXG5dO1xudmFyIERlbGV0ZUJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9uID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0RCTUNlLFxuICAgIHsgW19oXTogW1wiREVMRVRFXCIsIFwiLz9tZXRyaWNzXCIsIDIwNF0gfSxcbiAgICAoKSA9PiBEZWxldGVCdWNrZXRNZXRyaWNzQ29uZmlndXJhdGlvblJlcXVlc3QsXG4gICAgKCkgPT4gX19Vbml0LFxuXTtcbnZhciBEZWxldGVCdWNrZXRPd25lcnNoaXBDb250cm9scyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9EQk9DLFxuICAgIHsgW19oXTogW1wiREVMRVRFXCIsIFwiLz9vd25lcnNoaXBDb250cm9sc1wiLCAyMDRdIH0sXG4gICAgKCkgPT4gRGVsZXRlQnVja2V0T3duZXJzaGlwQ29udHJvbHNSZXF1ZXN0LFxuICAgICgpID0+IF9fVW5pdCxcbl07XG52YXIgRGVsZXRlQnVja2V0UG9saWN5ID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0RCUCxcbiAgICB7IFtfaF06IFtcIkRFTEVURVwiLCBcIi8/cG9saWN5XCIsIDIwNF0gfSxcbiAgICAoKSA9PiBEZWxldGVCdWNrZXRQb2xpY3lSZXF1ZXN0LFxuICAgICgpID0+IF9fVW5pdCxcbl07XG52YXIgRGVsZXRlQnVja2V0UmVwbGljYXRpb24gPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfREJSZSxcbiAgICB7IFtfaF06IFtcIkRFTEVURVwiLCBcIi8/cmVwbGljYXRpb25cIiwgMjA0XSB9LFxuICAgICgpID0+IERlbGV0ZUJ1Y2tldFJlcGxpY2F0aW9uUmVxdWVzdCxcbiAgICAoKSA9PiBfX1VuaXQsXG5dO1xudmFyIERlbGV0ZUJ1Y2tldFRhZ2dpbmcgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfREJULFxuICAgIHsgW19oXTogW1wiREVMRVRFXCIsIFwiLz90YWdnaW5nXCIsIDIwNF0gfSxcbiAgICAoKSA9PiBEZWxldGVCdWNrZXRUYWdnaW5nUmVxdWVzdCxcbiAgICAoKSA9PiBfX1VuaXQsXG5dO1xudmFyIERlbGV0ZUJ1Y2tldFdlYnNpdGUgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfREJXLFxuICAgIHsgW19oXTogW1wiREVMRVRFXCIsIFwiLz93ZWJzaXRlXCIsIDIwNF0gfSxcbiAgICAoKSA9PiBEZWxldGVCdWNrZXRXZWJzaXRlUmVxdWVzdCxcbiAgICAoKSA9PiBfX1VuaXQsXG5dO1xudmFyIERlbGV0ZU9iamVjdCA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9ET2VsLFxuICAgIHsgW19oXTogW1wiREVMRVRFXCIsIFwiL3tLZXkrfT94LWlkPURlbGV0ZU9iamVjdFwiLCAyMDRdIH0sXG4gICAgKCkgPT4gRGVsZXRlT2JqZWN0UmVxdWVzdCxcbiAgICAoKSA9PiBEZWxldGVPYmplY3RPdXRwdXQsXG5dO1xudmFyIERlbGV0ZU9iamVjdHMgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfRE9lbGUsXG4gICAgeyBbX2hdOiBbXCJQT1NUXCIsIFwiLz9kZWxldGVcIiwgMjAwXSB9LFxuICAgICgpID0+IERlbGV0ZU9iamVjdHNSZXF1ZXN0LFxuICAgICgpID0+IERlbGV0ZU9iamVjdHNPdXRwdXQsXG5dO1xudmFyIERlbGV0ZU9iamVjdFRhZ2dpbmcgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfRE9ULFxuICAgIHsgW19oXTogW1wiREVMRVRFXCIsIFwiL3tLZXkrfT90YWdnaW5nXCIsIDIwNF0gfSxcbiAgICAoKSA9PiBEZWxldGVPYmplY3RUYWdnaW5nUmVxdWVzdCxcbiAgICAoKSA9PiBEZWxldGVPYmplY3RUYWdnaW5nT3V0cHV0LFxuXTtcbnZhciBEZWxldGVQdWJsaWNBY2Nlc3NCbG9jayA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9EUEFCLFxuICAgIHsgW19oXTogW1wiREVMRVRFXCIsIFwiLz9wdWJsaWNBY2Nlc3NCbG9ja1wiLCAyMDRdIH0sXG4gICAgKCkgPT4gRGVsZXRlUHVibGljQWNjZXNzQmxvY2tSZXF1ZXN0LFxuICAgICgpID0+IF9fVW5pdCxcbl07XG52YXIgR2V0QnVja2V0QWJhYyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9HQkEsXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIvP2FiYWNcIiwgMjAwXSB9LFxuICAgICgpID0+IEdldEJ1Y2tldEFiYWNSZXF1ZXN0LFxuICAgICgpID0+IEdldEJ1Y2tldEFiYWNPdXRwdXQsXG5dO1xudmFyIEdldEJ1Y2tldEFjY2VsZXJhdGVDb25maWd1cmF0aW9uID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0dCQUMsXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIvP2FjY2VsZXJhdGVcIiwgMjAwXSB9LFxuICAgICgpID0+IEdldEJ1Y2tldEFjY2VsZXJhdGVDb25maWd1cmF0aW9uUmVxdWVzdCxcbiAgICAoKSA9PiBHZXRCdWNrZXRBY2NlbGVyYXRlQ29uZmlndXJhdGlvbk91dHB1dCxcbl07XG52YXIgR2V0QnVja2V0QWNsID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0dCQWUsXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIvP2FjbFwiLCAyMDBdIH0sXG4gICAgKCkgPT4gR2V0QnVja2V0QWNsUmVxdWVzdCxcbiAgICAoKSA9PiBHZXRCdWNrZXRBY2xPdXRwdXQsXG5dO1xudmFyIEdldEJ1Y2tldEFuYWx5dGljc0NvbmZpZ3VyYXRpb24gPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfR0JBQ2UsXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIvP2FuYWx5dGljcyZ4LWlkPUdldEJ1Y2tldEFuYWx5dGljc0NvbmZpZ3VyYXRpb25cIiwgMjAwXSB9LFxuICAgICgpID0+IEdldEJ1Y2tldEFuYWx5dGljc0NvbmZpZ3VyYXRpb25SZXF1ZXN0LFxuICAgICgpID0+IEdldEJ1Y2tldEFuYWx5dGljc0NvbmZpZ3VyYXRpb25PdXRwdXQsXG5dO1xudmFyIEdldEJ1Y2tldENvcnMgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfR0JDLFxuICAgIHsgW19oXTogW1wiR0VUXCIsIFwiLz9jb3JzXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBHZXRCdWNrZXRDb3JzUmVxdWVzdCxcbiAgICAoKSA9PiBHZXRCdWNrZXRDb3JzT3V0cHV0LFxuXTtcbnZhciBHZXRCdWNrZXRFbmNyeXB0aW9uID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0dCRSxcbiAgICB7IFtfaF06IFtcIkdFVFwiLCBcIi8/ZW5jcnlwdGlvblwiLCAyMDBdIH0sXG4gICAgKCkgPT4gR2V0QnVja2V0RW5jcnlwdGlvblJlcXVlc3QsXG4gICAgKCkgPT4gR2V0QnVja2V0RW5jcnlwdGlvbk91dHB1dCxcbl07XG52YXIgR2V0QnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvbiA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9HQklUQyxcbiAgICB7IFtfaF06IFtcIkdFVFwiLCBcIi8/aW50ZWxsaWdlbnQtdGllcmluZyZ4LWlkPUdldEJ1Y2tldEludGVsbGlnZW50VGllcmluZ0NvbmZpZ3VyYXRpb25cIiwgMjAwXSB9LFxuICAgICgpID0+IEdldEJ1Y2tldEludGVsbGlnZW50VGllcmluZ0NvbmZpZ3VyYXRpb25SZXF1ZXN0LFxuICAgICgpID0+IEdldEJ1Y2tldEludGVsbGlnZW50VGllcmluZ0NvbmZpZ3VyYXRpb25PdXRwdXQsXG5dO1xudmFyIEdldEJ1Y2tldEludmVudG9yeUNvbmZpZ3VyYXRpb24gPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfR0JJQyxcbiAgICB7IFtfaF06IFtcIkdFVFwiLCBcIi8/aW52ZW50b3J5JngtaWQ9R2V0QnVja2V0SW52ZW50b3J5Q29uZmlndXJhdGlvblwiLCAyMDBdIH0sXG4gICAgKCkgPT4gR2V0QnVja2V0SW52ZW50b3J5Q29uZmlndXJhdGlvblJlcXVlc3QsXG4gICAgKCkgPT4gR2V0QnVja2V0SW52ZW50b3J5Q29uZmlndXJhdGlvbk91dHB1dCxcbl07XG52YXIgR2V0QnVja2V0TGlmZWN5Y2xlQ29uZmlndXJhdGlvbiA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9HQkxDLFxuICAgIHsgW19oXTogW1wiR0VUXCIsIFwiLz9saWZlY3ljbGVcIiwgMjAwXSB9LFxuICAgICgpID0+IEdldEJ1Y2tldExpZmVjeWNsZUNvbmZpZ3VyYXRpb25SZXF1ZXN0LFxuICAgICgpID0+IEdldEJ1Y2tldExpZmVjeWNsZUNvbmZpZ3VyYXRpb25PdXRwdXQsXG5dO1xudmFyIEdldEJ1Y2tldExvY2F0aW9uID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0dCTCxcbiAgICB7IFtfaF06IFtcIkdFVFwiLCBcIi8/bG9jYXRpb25cIiwgMjAwXSB9LFxuICAgICgpID0+IEdldEJ1Y2tldExvY2F0aW9uUmVxdWVzdCxcbiAgICAoKSA9PiBHZXRCdWNrZXRMb2NhdGlvbk91dHB1dCxcbl07XG52YXIgR2V0QnVja2V0TG9nZ2luZyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9HQkxlLFxuICAgIHsgW19oXTogW1wiR0VUXCIsIFwiLz9sb2dnaW5nXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBHZXRCdWNrZXRMb2dnaW5nUmVxdWVzdCxcbiAgICAoKSA9PiBHZXRCdWNrZXRMb2dnaW5nT3V0cHV0LFxuXTtcbnZhciBHZXRCdWNrZXRNZXRhZGF0YUNvbmZpZ3VyYXRpb24gPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfR0JNQyxcbiAgICB7IFtfaF06IFtcIkdFVFwiLCBcIi8/bWV0YWRhdGFDb25maWd1cmF0aW9uXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBHZXRCdWNrZXRNZXRhZGF0YUNvbmZpZ3VyYXRpb25SZXF1ZXN0LFxuICAgICgpID0+IEdldEJ1Y2tldE1ldGFkYXRhQ29uZmlndXJhdGlvbk91dHB1dCxcbl07XG52YXIgR2V0QnVja2V0TWV0YWRhdGFUYWJsZUNvbmZpZ3VyYXRpb24gPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfR0JNVEMsXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIvP21ldGFkYXRhVGFibGVcIiwgMjAwXSB9LFxuICAgICgpID0+IEdldEJ1Y2tldE1ldGFkYXRhVGFibGVDb25maWd1cmF0aW9uUmVxdWVzdCxcbiAgICAoKSA9PiBHZXRCdWNrZXRNZXRhZGF0YVRhYmxlQ29uZmlndXJhdGlvbk91dHB1dCxcbl07XG52YXIgR2V0QnVja2V0TWV0cmljc0NvbmZpZ3VyYXRpb24gPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfR0JNQ2UsXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIvP21ldHJpY3MmeC1pZD1HZXRCdWNrZXRNZXRyaWNzQ29uZmlndXJhdGlvblwiLCAyMDBdIH0sXG4gICAgKCkgPT4gR2V0QnVja2V0TWV0cmljc0NvbmZpZ3VyYXRpb25SZXF1ZXN0LFxuICAgICgpID0+IEdldEJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9uT3V0cHV0LFxuXTtcbnZhciBHZXRCdWNrZXROb3RpZmljYXRpb25Db25maWd1cmF0aW9uID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0dCTkMsXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIvP25vdGlmaWNhdGlvblwiLCAyMDBdIH0sXG4gICAgKCkgPT4gR2V0QnVja2V0Tm90aWZpY2F0aW9uQ29uZmlndXJhdGlvblJlcXVlc3QsXG4gICAgKCkgPT4gTm90aWZpY2F0aW9uQ29uZmlndXJhdGlvbixcbl07XG52YXIgR2V0QnVja2V0T3duZXJzaGlwQ29udHJvbHMgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfR0JPQyxcbiAgICB7IFtfaF06IFtcIkdFVFwiLCBcIi8/b3duZXJzaGlwQ29udHJvbHNcIiwgMjAwXSB9LFxuICAgICgpID0+IEdldEJ1Y2tldE93bmVyc2hpcENvbnRyb2xzUmVxdWVzdCxcbiAgICAoKSA9PiBHZXRCdWNrZXRPd25lcnNoaXBDb250cm9sc091dHB1dCxcbl07XG52YXIgR2V0QnVja2V0UG9saWN5ID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0dCUCxcbiAgICB7IFtfaF06IFtcIkdFVFwiLCBcIi8/cG9saWN5XCIsIDIwMF0gfSxcbiAgICAoKSA9PiBHZXRCdWNrZXRQb2xpY3lSZXF1ZXN0LFxuICAgICgpID0+IEdldEJ1Y2tldFBvbGljeU91dHB1dCxcbl07XG52YXIgR2V0QnVja2V0UG9saWN5U3RhdHVzID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0dCUFMsXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIvP3BvbGljeVN0YXR1c1wiLCAyMDBdIH0sXG4gICAgKCkgPT4gR2V0QnVja2V0UG9saWN5U3RhdHVzUmVxdWVzdCxcbiAgICAoKSA9PiBHZXRCdWNrZXRQb2xpY3lTdGF0dXNPdXRwdXQsXG5dO1xudmFyIEdldEJ1Y2tldFJlcGxpY2F0aW9uID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0dCUixcbiAgICB7IFtfaF06IFtcIkdFVFwiLCBcIi8/cmVwbGljYXRpb25cIiwgMjAwXSB9LFxuICAgICgpID0+IEdldEJ1Y2tldFJlcGxpY2F0aW9uUmVxdWVzdCxcbiAgICAoKSA9PiBHZXRCdWNrZXRSZXBsaWNhdGlvbk91dHB1dCxcbl07XG52YXIgR2V0QnVja2V0UmVxdWVzdFBheW1lbnQgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfR0JSUCxcbiAgICB7IFtfaF06IFtcIkdFVFwiLCBcIi8/cmVxdWVzdFBheW1lbnRcIiwgMjAwXSB9LFxuICAgICgpID0+IEdldEJ1Y2tldFJlcXVlc3RQYXltZW50UmVxdWVzdCxcbiAgICAoKSA9PiBHZXRCdWNrZXRSZXF1ZXN0UGF5bWVudE91dHB1dCxcbl07XG52YXIgR2V0QnVja2V0VGFnZ2luZyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9HQlQsXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIvP3RhZ2dpbmdcIiwgMjAwXSB9LFxuICAgICgpID0+IEdldEJ1Y2tldFRhZ2dpbmdSZXF1ZXN0LFxuICAgICgpID0+IEdldEJ1Y2tldFRhZ2dpbmdPdXRwdXQsXG5dO1xudmFyIEdldEJ1Y2tldFZlcnNpb25pbmcgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfR0JWLFxuICAgIHsgW19oXTogW1wiR0VUXCIsIFwiLz92ZXJzaW9uaW5nXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBHZXRCdWNrZXRWZXJzaW9uaW5nUmVxdWVzdCxcbiAgICAoKSA9PiBHZXRCdWNrZXRWZXJzaW9uaW5nT3V0cHV0LFxuXTtcbnZhciBHZXRCdWNrZXRXZWJzaXRlID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0dCVyxcbiAgICB7IFtfaF06IFtcIkdFVFwiLCBcIi8/d2Vic2l0ZVwiLCAyMDBdIH0sXG4gICAgKCkgPT4gR2V0QnVja2V0V2Vic2l0ZVJlcXVlc3QsXG4gICAgKCkgPT4gR2V0QnVja2V0V2Vic2l0ZU91dHB1dCxcbl07XG52YXIgR2V0T2JqZWN0ID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0dPLFxuICAgIHsgW19oXTogW1wiR0VUXCIsIFwiL3tLZXkrfT94LWlkPUdldE9iamVjdFwiLCAyMDBdIH0sXG4gICAgKCkgPT4gR2V0T2JqZWN0UmVxdWVzdCxcbiAgICAoKSA9PiBHZXRPYmplY3RPdXRwdXQsXG5dO1xudmFyIEdldE9iamVjdEFjbCA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9HT0EsXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIve0tleSt9P2FjbFwiLCAyMDBdIH0sXG4gICAgKCkgPT4gR2V0T2JqZWN0QWNsUmVxdWVzdCxcbiAgICAoKSA9PiBHZXRPYmplY3RBY2xPdXRwdXQsXG5dO1xudmFyIEdldE9iamVjdEF0dHJpYnV0ZXMgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfR09BZSxcbiAgICB7IFtfaF06IFtcIkdFVFwiLCBcIi97S2V5K30/YXR0cmlidXRlc1wiLCAyMDBdIH0sXG4gICAgKCkgPT4gR2V0T2JqZWN0QXR0cmlidXRlc1JlcXVlc3QsXG4gICAgKCkgPT4gR2V0T2JqZWN0QXR0cmlidXRlc091dHB1dCxcbl07XG52YXIgR2V0T2JqZWN0TGVnYWxIb2xkID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0dPTEgsXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIve0tleSt9P2xlZ2FsLWhvbGRcIiwgMjAwXSB9LFxuICAgICgpID0+IEdldE9iamVjdExlZ2FsSG9sZFJlcXVlc3QsXG4gICAgKCkgPT4gR2V0T2JqZWN0TGVnYWxIb2xkT3V0cHV0LFxuXTtcbnZhciBHZXRPYmplY3RMb2NrQ29uZmlndXJhdGlvbiA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9HT0xDLFxuICAgIHsgW19oXTogW1wiR0VUXCIsIFwiLz9vYmplY3QtbG9ja1wiLCAyMDBdIH0sXG4gICAgKCkgPT4gR2V0T2JqZWN0TG9ja0NvbmZpZ3VyYXRpb25SZXF1ZXN0LFxuICAgICgpID0+IEdldE9iamVjdExvY2tDb25maWd1cmF0aW9uT3V0cHV0LFxuXTtcbnZhciBHZXRPYmplY3RSZXRlbnRpb24gPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfR09SZSxcbiAgICB7IFtfaF06IFtcIkdFVFwiLCBcIi97S2V5K30/cmV0ZW50aW9uXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBHZXRPYmplY3RSZXRlbnRpb25SZXF1ZXN0LFxuICAgICgpID0+IEdldE9iamVjdFJldGVudGlvbk91dHB1dCxcbl07XG52YXIgR2V0T2JqZWN0VGFnZ2luZyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9HT1QsXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIve0tleSt9P3RhZ2dpbmdcIiwgMjAwXSB9LFxuICAgICgpID0+IEdldE9iamVjdFRhZ2dpbmdSZXF1ZXN0LFxuICAgICgpID0+IEdldE9iamVjdFRhZ2dpbmdPdXRwdXQsXG5dO1xudmFyIEdldE9iamVjdFRvcnJlbnQgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfR09UZSxcbiAgICB7IFtfaF06IFtcIkdFVFwiLCBcIi97S2V5K30/dG9ycmVudFwiLCAyMDBdIH0sXG4gICAgKCkgPT4gR2V0T2JqZWN0VG9ycmVudFJlcXVlc3QsXG4gICAgKCkgPT4gR2V0T2JqZWN0VG9ycmVudE91dHB1dCxcbl07XG52YXIgR2V0UHVibGljQWNjZXNzQmxvY2sgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfR1BBQixcbiAgICB7IFtfaF06IFtcIkdFVFwiLCBcIi8/cHVibGljQWNjZXNzQmxvY2tcIiwgMjAwXSB9LFxuICAgICgpID0+IEdldFB1YmxpY0FjY2Vzc0Jsb2NrUmVxdWVzdCxcbiAgICAoKSA9PiBHZXRQdWJsaWNBY2Nlc3NCbG9ja091dHB1dCxcbl07XG52YXIgSGVhZEJ1Y2tldCA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9IQixcbiAgICB7IFtfaF06IFtcIkhFQURcIiwgXCIvXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBIZWFkQnVja2V0UmVxdWVzdCxcbiAgICAoKSA9PiBIZWFkQnVja2V0T3V0cHV0LFxuXTtcbnZhciBIZWFkT2JqZWN0ID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0hPLFxuICAgIHsgW19oXTogW1wiSEVBRFwiLCBcIi97S2V5K31cIiwgMjAwXSB9LFxuICAgICgpID0+IEhlYWRPYmplY3RSZXF1ZXN0LFxuICAgICgpID0+IEhlYWRPYmplY3RPdXRwdXQsXG5dO1xudmFyIExpc3RCdWNrZXRBbmFseXRpY3NDb25maWd1cmF0aW9ucyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9MQkFDLFxuICAgIHsgW19oXTogW1wiR0VUXCIsIFwiLz9hbmFseXRpY3MmeC1pZD1MaXN0QnVja2V0QW5hbHl0aWNzQ29uZmlndXJhdGlvbnNcIiwgMjAwXSB9LFxuICAgICgpID0+IExpc3RCdWNrZXRBbmFseXRpY3NDb25maWd1cmF0aW9uc1JlcXVlc3QsXG4gICAgKCkgPT4gTGlzdEJ1Y2tldEFuYWx5dGljc0NvbmZpZ3VyYXRpb25zT3V0cHV0LFxuXTtcbnZhciBMaXN0QnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvbnMgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfTEJJVEMsXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIvP2ludGVsbGlnZW50LXRpZXJpbmcmeC1pZD1MaXN0QnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvbnNcIiwgMjAwXSB9LFxuICAgICgpID0+IExpc3RCdWNrZXRJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9uc1JlcXVlc3QsXG4gICAgKCkgPT4gTGlzdEJ1Y2tldEludGVsbGlnZW50VGllcmluZ0NvbmZpZ3VyYXRpb25zT3V0cHV0LFxuXTtcbnZhciBMaXN0QnVja2V0SW52ZW50b3J5Q29uZmlndXJhdGlvbnMgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfTEJJQyxcbiAgICB7IFtfaF06IFtcIkdFVFwiLCBcIi8/aW52ZW50b3J5JngtaWQ9TGlzdEJ1Y2tldEludmVudG9yeUNvbmZpZ3VyYXRpb25zXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBMaXN0QnVja2V0SW52ZW50b3J5Q29uZmlndXJhdGlvbnNSZXF1ZXN0LFxuICAgICgpID0+IExpc3RCdWNrZXRJbnZlbnRvcnlDb25maWd1cmF0aW9uc091dHB1dCxcbl07XG52YXIgTGlzdEJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9ucyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9MQk1DLFxuICAgIHsgW19oXTogW1wiR0VUXCIsIFwiLz9tZXRyaWNzJngtaWQ9TGlzdEJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9uc1wiLCAyMDBdIH0sXG4gICAgKCkgPT4gTGlzdEJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9uc1JlcXVlc3QsXG4gICAgKCkgPT4gTGlzdEJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9uc091dHB1dCxcbl07XG52YXIgTGlzdEJ1Y2tldHMgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfTEIsXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIvP3gtaWQ9TGlzdEJ1Y2tldHNcIiwgMjAwXSB9LFxuICAgICgpID0+IExpc3RCdWNrZXRzUmVxdWVzdCxcbiAgICAoKSA9PiBMaXN0QnVja2V0c091dHB1dCxcbl07XG52YXIgTGlzdERpcmVjdG9yeUJ1Y2tldHMgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfTERCLFxuICAgIHsgW19oXTogW1wiR0VUXCIsIFwiLz94LWlkPUxpc3REaXJlY3RvcnlCdWNrZXRzXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBMaXN0RGlyZWN0b3J5QnVja2V0c1JlcXVlc3QsXG4gICAgKCkgPT4gTGlzdERpcmVjdG9yeUJ1Y2tldHNPdXRwdXQsXG5dO1xudmFyIExpc3RNdWx0aXBhcnRVcGxvYWRzID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0xNVSxcbiAgICB7IFtfaF06IFtcIkdFVFwiLCBcIi8/dXBsb2Fkc1wiLCAyMDBdIH0sXG4gICAgKCkgPT4gTGlzdE11bHRpcGFydFVwbG9hZHNSZXF1ZXN0LFxuICAgICgpID0+IExpc3RNdWx0aXBhcnRVcGxvYWRzT3V0cHV0LFxuXTtcbnZhciBMaXN0T2JqZWN0cyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9MTyxcbiAgICB7IFtfaF06IFtcIkdFVFwiLCBcIi9cIiwgMjAwXSB9LFxuICAgICgpID0+IExpc3RPYmplY3RzUmVxdWVzdCxcbiAgICAoKSA9PiBMaXN0T2JqZWN0c091dHB1dCxcbl07XG52YXIgTGlzdE9iamVjdHNWMiA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9MT1YsXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIvP2xpc3QtdHlwZT0yXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBMaXN0T2JqZWN0c1YyUmVxdWVzdCxcbiAgICAoKSA9PiBMaXN0T2JqZWN0c1YyT3V0cHV0LFxuXTtcbnZhciBMaXN0T2JqZWN0VmVyc2lvbnMgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfTE9WaSxcbiAgICB7IFtfaF06IFtcIkdFVFwiLCBcIi8/dmVyc2lvbnNcIiwgMjAwXSB9LFxuICAgICgpID0+IExpc3RPYmplY3RWZXJzaW9uc1JlcXVlc3QsXG4gICAgKCkgPT4gTGlzdE9iamVjdFZlcnNpb25zT3V0cHV0LFxuXTtcbnZhciBMaXN0UGFydHMgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfTFAsXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIve0tleSt9P3gtaWQ9TGlzdFBhcnRzXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBMaXN0UGFydHNSZXF1ZXN0LFxuICAgICgpID0+IExpc3RQYXJ0c091dHB1dCxcbl07XG52YXIgUHV0QnVja2V0QWJhYyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9QQkEsXG4gICAgeyBbX2hdOiBbXCJQVVRcIiwgXCIvP2FiYWNcIiwgMjAwXSB9LFxuICAgICgpID0+IFB1dEJ1Y2tldEFiYWNSZXF1ZXN0LFxuICAgICgpID0+IF9fVW5pdCxcbl07XG52YXIgUHV0QnVja2V0QWNjZWxlcmF0ZUNvbmZpZ3VyYXRpb24gPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfUEJBQyxcbiAgICB7IFtfaF06IFtcIlBVVFwiLCBcIi8/YWNjZWxlcmF0ZVwiLCAyMDBdIH0sXG4gICAgKCkgPT4gUHV0QnVja2V0QWNjZWxlcmF0ZUNvbmZpZ3VyYXRpb25SZXF1ZXN0LFxuICAgICgpID0+IF9fVW5pdCxcbl07XG52YXIgUHV0QnVja2V0QWNsID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX1BCQXUsXG4gICAgeyBbX2hdOiBbXCJQVVRcIiwgXCIvP2FjbFwiLCAyMDBdIH0sXG4gICAgKCkgPT4gUHV0QnVja2V0QWNsUmVxdWVzdCxcbiAgICAoKSA9PiBfX1VuaXQsXG5dO1xudmFyIFB1dEJ1Y2tldEFuYWx5dGljc0NvbmZpZ3VyYXRpb24gPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfUEJBQ3UsXG4gICAgeyBbX2hdOiBbXCJQVVRcIiwgXCIvP2FuYWx5dGljc1wiLCAyMDBdIH0sXG4gICAgKCkgPT4gUHV0QnVja2V0QW5hbHl0aWNzQ29uZmlndXJhdGlvblJlcXVlc3QsXG4gICAgKCkgPT4gX19Vbml0LFxuXTtcbnZhciBQdXRCdWNrZXRDb3JzID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX1BCQyxcbiAgICB7IFtfaF06IFtcIlBVVFwiLCBcIi8/Y29yc1wiLCAyMDBdIH0sXG4gICAgKCkgPT4gUHV0QnVja2V0Q29yc1JlcXVlc3QsXG4gICAgKCkgPT4gX19Vbml0LFxuXTtcbnZhciBQdXRCdWNrZXRFbmNyeXB0aW9uID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX1BCRSxcbiAgICB7IFtfaF06IFtcIlBVVFwiLCBcIi8/ZW5jcnlwdGlvblwiLCAyMDBdIH0sXG4gICAgKCkgPT4gUHV0QnVja2V0RW5jcnlwdGlvblJlcXVlc3QsXG4gICAgKCkgPT4gX19Vbml0LFxuXTtcbnZhciBQdXRCdWNrZXRJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9uID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX1BCSVRDLFxuICAgIHsgW19oXTogW1wiUFVUXCIsIFwiLz9pbnRlbGxpZ2VudC10aWVyaW5nXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBQdXRCdWNrZXRJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9uUmVxdWVzdCxcbiAgICAoKSA9PiBfX1VuaXQsXG5dO1xudmFyIFB1dEJ1Y2tldEludmVudG9yeUNvbmZpZ3VyYXRpb24gPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfUEJJQyxcbiAgICB7IFtfaF06IFtcIlBVVFwiLCBcIi8/aW52ZW50b3J5XCIsIDIwMF0gfSxcbiAgICAoKSA9PiBQdXRCdWNrZXRJbnZlbnRvcnlDb25maWd1cmF0aW9uUmVxdWVzdCxcbiAgICAoKSA9PiBfX1VuaXQsXG5dO1xudmFyIFB1dEJ1Y2tldExpZmVjeWNsZUNvbmZpZ3VyYXRpb24gPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfUEJMQyxcbiAgICB7IFtfaF06IFtcIlBVVFwiLCBcIi8/bGlmZWN5Y2xlXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBQdXRCdWNrZXRMaWZlY3ljbGVDb25maWd1cmF0aW9uUmVxdWVzdCxcbiAgICAoKSA9PiBQdXRCdWNrZXRMaWZlY3ljbGVDb25maWd1cmF0aW9uT3V0cHV0LFxuXTtcbnZhciBQdXRCdWNrZXRMb2dnaW5nID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX1BCTCxcbiAgICB7IFtfaF06IFtcIlBVVFwiLCBcIi8/bG9nZ2luZ1wiLCAyMDBdIH0sXG4gICAgKCkgPT4gUHV0QnVja2V0TG9nZ2luZ1JlcXVlc3QsXG4gICAgKCkgPT4gX19Vbml0LFxuXTtcbnZhciBQdXRCdWNrZXRNZXRyaWNzQ29uZmlndXJhdGlvbiA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9QQk1DLFxuICAgIHsgW19oXTogW1wiUFVUXCIsIFwiLz9tZXRyaWNzXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBQdXRCdWNrZXRNZXRyaWNzQ29uZmlndXJhdGlvblJlcXVlc3QsXG4gICAgKCkgPT4gX19Vbml0LFxuXTtcbnZhciBQdXRCdWNrZXROb3RpZmljYXRpb25Db25maWd1cmF0aW9uID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX1BCTkMsXG4gICAgeyBbX2hdOiBbXCJQVVRcIiwgXCIvP25vdGlmaWNhdGlvblwiLCAyMDBdIH0sXG4gICAgKCkgPT4gUHV0QnVja2V0Tm90aWZpY2F0aW9uQ29uZmlndXJhdGlvblJlcXVlc3QsXG4gICAgKCkgPT4gX19Vbml0LFxuXTtcbnZhciBQdXRCdWNrZXRPd25lcnNoaXBDb250cm9scyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9QQk9DLFxuICAgIHsgW19oXTogW1wiUFVUXCIsIFwiLz9vd25lcnNoaXBDb250cm9sc1wiLCAyMDBdIH0sXG4gICAgKCkgPT4gUHV0QnVja2V0T3duZXJzaGlwQ29udHJvbHNSZXF1ZXN0LFxuICAgICgpID0+IF9fVW5pdCxcbl07XG52YXIgUHV0QnVja2V0UG9saWN5ID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX1BCUCxcbiAgICB7IFtfaF06IFtcIlBVVFwiLCBcIi8/cG9saWN5XCIsIDIwMF0gfSxcbiAgICAoKSA9PiBQdXRCdWNrZXRQb2xpY3lSZXF1ZXN0LFxuICAgICgpID0+IF9fVW5pdCxcbl07XG52YXIgUHV0QnVja2V0UmVwbGljYXRpb24gPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfUEJSLFxuICAgIHsgW19oXTogW1wiUFVUXCIsIFwiLz9yZXBsaWNhdGlvblwiLCAyMDBdIH0sXG4gICAgKCkgPT4gUHV0QnVja2V0UmVwbGljYXRpb25SZXF1ZXN0LFxuICAgICgpID0+IF9fVW5pdCxcbl07XG52YXIgUHV0QnVja2V0UmVxdWVzdFBheW1lbnQgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfUEJSUCxcbiAgICB7IFtfaF06IFtcIlBVVFwiLCBcIi8/cmVxdWVzdFBheW1lbnRcIiwgMjAwXSB9LFxuICAgICgpID0+IFB1dEJ1Y2tldFJlcXVlc3RQYXltZW50UmVxdWVzdCxcbiAgICAoKSA9PiBfX1VuaXQsXG5dO1xudmFyIFB1dEJ1Y2tldFRhZ2dpbmcgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfUEJULFxuICAgIHsgW19oXTogW1wiUFVUXCIsIFwiLz90YWdnaW5nXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBQdXRCdWNrZXRUYWdnaW5nUmVxdWVzdCxcbiAgICAoKSA9PiBfX1VuaXQsXG5dO1xudmFyIFB1dEJ1Y2tldFZlcnNpb25pbmcgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfUEJWLFxuICAgIHsgW19oXTogW1wiUFVUXCIsIFwiLz92ZXJzaW9uaW5nXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBQdXRCdWNrZXRWZXJzaW9uaW5nUmVxdWVzdCxcbiAgICAoKSA9PiBfX1VuaXQsXG5dO1xudmFyIFB1dEJ1Y2tldFdlYnNpdGUgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfUEJXLFxuICAgIHsgW19oXTogW1wiUFVUXCIsIFwiLz93ZWJzaXRlXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBQdXRCdWNrZXRXZWJzaXRlUmVxdWVzdCxcbiAgICAoKSA9PiBfX1VuaXQsXG5dO1xudmFyIFB1dE9iamVjdCA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9QTyxcbiAgICB7IFtfaF06IFtcIlBVVFwiLCBcIi97S2V5K30/eC1pZD1QdXRPYmplY3RcIiwgMjAwXSB9LFxuICAgICgpID0+IFB1dE9iamVjdFJlcXVlc3QsXG4gICAgKCkgPT4gUHV0T2JqZWN0T3V0cHV0LFxuXTtcbnZhciBQdXRPYmplY3RBY2wgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfUE9BLFxuICAgIHsgW19oXTogW1wiUFVUXCIsIFwiL3tLZXkrfT9hY2xcIiwgMjAwXSB9LFxuICAgICgpID0+IFB1dE9iamVjdEFjbFJlcXVlc3QsXG4gICAgKCkgPT4gUHV0T2JqZWN0QWNsT3V0cHV0LFxuXTtcbnZhciBQdXRPYmplY3RMZWdhbEhvbGQgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfUE9MSCxcbiAgICB7IFtfaF06IFtcIlBVVFwiLCBcIi97S2V5K30/bGVnYWwtaG9sZFwiLCAyMDBdIH0sXG4gICAgKCkgPT4gUHV0T2JqZWN0TGVnYWxIb2xkUmVxdWVzdCxcbiAgICAoKSA9PiBQdXRPYmplY3RMZWdhbEhvbGRPdXRwdXQsXG5dO1xudmFyIFB1dE9iamVjdExvY2tDb25maWd1cmF0aW9uID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX1BPTEMsXG4gICAgeyBbX2hdOiBbXCJQVVRcIiwgXCIvP29iamVjdC1sb2NrXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBQdXRPYmplY3RMb2NrQ29uZmlndXJhdGlvblJlcXVlc3QsXG4gICAgKCkgPT4gUHV0T2JqZWN0TG9ja0NvbmZpZ3VyYXRpb25PdXRwdXQsXG5dO1xudmFyIFB1dE9iamVjdFJldGVudGlvbiA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9QT1J1LFxuICAgIHsgW19oXTogW1wiUFVUXCIsIFwiL3tLZXkrfT9yZXRlbnRpb25cIiwgMjAwXSB9LFxuICAgICgpID0+IFB1dE9iamVjdFJldGVudGlvblJlcXVlc3QsXG4gICAgKCkgPT4gUHV0T2JqZWN0UmV0ZW50aW9uT3V0cHV0LFxuXTtcbnZhciBQdXRPYmplY3RUYWdnaW5nID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX1BPVCxcbiAgICB7IFtfaF06IFtcIlBVVFwiLCBcIi97S2V5K30/dGFnZ2luZ1wiLCAyMDBdIH0sXG4gICAgKCkgPT4gUHV0T2JqZWN0VGFnZ2luZ1JlcXVlc3QsXG4gICAgKCkgPT4gUHV0T2JqZWN0VGFnZ2luZ091dHB1dCxcbl07XG52YXIgUHV0UHVibGljQWNjZXNzQmxvY2sgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfUFBBQixcbiAgICB7IFtfaF06IFtcIlBVVFwiLCBcIi8/cHVibGljQWNjZXNzQmxvY2tcIiwgMjAwXSB9LFxuICAgICgpID0+IFB1dFB1YmxpY0FjY2Vzc0Jsb2NrUmVxdWVzdCxcbiAgICAoKSA9PiBfX1VuaXQsXG5dO1xudmFyIFJlbmFtZU9iamVjdCA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9STyxcbiAgICB7IFtfaF06IFtcIlBVVFwiLCBcIi97S2V5K30/cmVuYW1lT2JqZWN0XCIsIDIwMF0gfSxcbiAgICAoKSA9PiBSZW5hbWVPYmplY3RSZXF1ZXN0LFxuICAgICgpID0+IFJlbmFtZU9iamVjdE91dHB1dCxcbl07XG52YXIgUmVzdG9yZU9iamVjdCA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9ST2UsXG4gICAgeyBbX2hdOiBbXCJQT1NUXCIsIFwiL3tLZXkrfT9yZXN0b3JlXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBSZXN0b3JlT2JqZWN0UmVxdWVzdCxcbiAgICAoKSA9PiBSZXN0b3JlT2JqZWN0T3V0cHV0LFxuXTtcbnZhciBTZWxlY3RPYmplY3RDb250ZW50ID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX1NPQyxcbiAgICB7IFtfaF06IFtcIlBPU1RcIiwgXCIve0tleSt9P3NlbGVjdCZzZWxlY3QtdHlwZT0yXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBTZWxlY3RPYmplY3RDb250ZW50UmVxdWVzdCxcbiAgICAoKSA9PiBTZWxlY3RPYmplY3RDb250ZW50T3V0cHV0LFxuXTtcbnZhciBVcGRhdGVCdWNrZXRNZXRhZGF0YUludmVudG9yeVRhYmxlQ29uZmlndXJhdGlvbiA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9VQk1JVEMsXG4gICAgeyBbX2hdOiBbXCJQVVRcIiwgXCIvP21ldGFkYXRhSW52ZW50b3J5VGFibGVcIiwgMjAwXSB9LFxuICAgICgpID0+IFVwZGF0ZUJ1Y2tldE1ldGFkYXRhSW52ZW50b3J5VGFibGVDb25maWd1cmF0aW9uUmVxdWVzdCxcbiAgICAoKSA9PiBfX1VuaXQsXG5dO1xudmFyIFVwZGF0ZUJ1Y2tldE1ldGFkYXRhSm91cm5hbFRhYmxlQ29uZmlndXJhdGlvbiA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9VQk1KVEMsXG4gICAgeyBbX2hdOiBbXCJQVVRcIiwgXCIvP21ldGFkYXRhSm91cm5hbFRhYmxlXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBVcGRhdGVCdWNrZXRNZXRhZGF0YUpvdXJuYWxUYWJsZUNvbmZpZ3VyYXRpb25SZXF1ZXN0LFxuICAgICgpID0+IF9fVW5pdCxcbl07XG52YXIgVXBsb2FkUGFydCA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9VUCxcbiAgICB7IFtfaF06IFtcIlBVVFwiLCBcIi97S2V5K30/eC1pZD1VcGxvYWRQYXJ0XCIsIDIwMF0gfSxcbiAgICAoKSA9PiBVcGxvYWRQYXJ0UmVxdWVzdCxcbiAgICAoKSA9PiBVcGxvYWRQYXJ0T3V0cHV0LFxuXTtcbnZhciBVcGxvYWRQYXJ0Q29weSA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9VUEMsXG4gICAgeyBbX2hdOiBbXCJQVVRcIiwgXCIve0tleSt9P3gtaWQ9VXBsb2FkUGFydENvcHlcIiwgMjAwXSB9LFxuICAgICgpID0+IFVwbG9hZFBhcnRDb3B5UmVxdWVzdCxcbiAgICAoKSA9PiBVcGxvYWRQYXJ0Q29weU91dHB1dCxcbl07XG52YXIgV3JpdGVHZXRPYmplY3RSZXNwb25zZSA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9XR09SLFxuICAgIHsgW19lbl06IFtcIntSZXF1ZXN0Um91dGV9LlwiXSwgW19oXTogW1wiUE9TVFwiLCBcIi9Xcml0ZUdldE9iamVjdFJlc3BvbnNlXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBXcml0ZUdldE9iamVjdFJlc3BvbnNlUmVxdWVzdCxcbiAgICAoKSA9PiBfX1VuaXQsXG5dO1xuXG5jbGFzcyBDcmVhdGVTZXNzaW9uQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgRGlzYWJsZVMzRXhwcmVzc1Nlc3Npb25BdXRoOiB7IHR5cGU6IFwic3RhdGljQ29udGV4dFBhcmFtc1wiLCB2YWx1ZTogdHJ1ZSB9LFxuICAgIEJ1Y2tldDogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJCdWNrZXRcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKSwgbWlkZGxld2FyZVNka1MzLmdldFRocm93MjAwRXhjZXB0aW9uc1BsdWdpbihjb25maWcpXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIkNyZWF0ZVNlc3Npb25cIiwge30pXG4gICAgLm4oXCJTM0NsaWVudFwiLCBcIkNyZWF0ZVNlc3Npb25Db21tYW5kXCIpXG4gICAgLnNjKENyZWF0ZVNlc3Npb24pXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jb25zdCBnZXRIdHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24gPSAocnVudGltZUNvbmZpZykgPT4ge1xuICAgIGNvbnN0IF9odHRwQXV0aFNjaGVtZXMgPSBydW50aW1lQ29uZmlnLmh0dHBBdXRoU2NoZW1lcztcbiAgICBsZXQgX2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSBydW50aW1lQ29uZmlnLmh0dHBBdXRoU2NoZW1lUHJvdmlkZXI7XG4gICAgbGV0IF9jcmVkZW50aWFscyA9IHJ1bnRpbWVDb25maWcuY3JlZGVudGlhbHM7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc2V0SHR0cEF1dGhTY2hlbWUoaHR0cEF1dGhTY2hlbWUpIHtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gX2h0dHBBdXRoU2NoZW1lcy5maW5kSW5kZXgoKHNjaGVtZSkgPT4gc2NoZW1lLnNjaGVtZUlkID09PSBodHRwQXV0aFNjaGVtZS5zY2hlbWVJZCk7XG4gICAgICAgICAgICBpZiAoaW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgX2h0dHBBdXRoU2NoZW1lcy5wdXNoKGh0dHBBdXRoU2NoZW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIF9odHRwQXV0aFNjaGVtZXMuc3BsaWNlKGluZGV4LCAxLCBodHRwQXV0aFNjaGVtZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGh0dHBBdXRoU2NoZW1lcygpIHtcbiAgICAgICAgICAgIHJldHVybiBfaHR0cEF1dGhTY2hlbWVzO1xuICAgICAgICB9LFxuICAgICAgICBzZXRIdHRwQXV0aFNjaGVtZVByb3ZpZGVyKGh0dHBBdXRoU2NoZW1lUHJvdmlkZXIpIHtcbiAgICAgICAgICAgIF9odHRwQXV0aFNjaGVtZVByb3ZpZGVyID0gaHR0cEF1dGhTY2hlbWVQcm92aWRlcjtcbiAgICAgICAgfSxcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVQcm92aWRlcigpIHtcbiAgICAgICAgICAgIHJldHVybiBfaHR0cEF1dGhTY2hlbWVQcm92aWRlcjtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0Q3JlZGVudGlhbHMoY3JlZGVudGlhbHMpIHtcbiAgICAgICAgICAgIF9jcmVkZW50aWFscyA9IGNyZWRlbnRpYWxzO1xuICAgICAgICB9LFxuICAgICAgICBjcmVkZW50aWFscygpIHtcbiAgICAgICAgICAgIHJldHVybiBfY3JlZGVudGlhbHM7XG4gICAgICAgIH0sXG4gICAgfTtcbn07XG5jb25zdCByZXNvbHZlSHR0cEF1dGhSdW50aW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIGh0dHBBdXRoU2NoZW1lczogY29uZmlnLmh0dHBBdXRoU2NoZW1lcygpLFxuICAgICAgICBodHRwQXV0aFNjaGVtZVByb3ZpZGVyOiBjb25maWcuaHR0cEF1dGhTY2hlbWVQcm92aWRlcigpLFxuICAgICAgICBjcmVkZW50aWFsczogY29uZmlnLmNyZWRlbnRpYWxzKCksXG4gICAgfTtcbn07XG5cbmNvbnN0IHJlc29sdmVSdW50aW1lRXh0ZW5zaW9ucyA9IChydW50aW1lQ29uZmlnLCBleHRlbnNpb25zKSA9PiB7XG4gICAgY29uc3QgZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiA9IE9iamVjdC5hc3NpZ24ocmVnaW9uQ29uZmlnUmVzb2x2ZXIuZ2V0QXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbihydW50aW1lQ29uZmlnKSwgc21pdGh5Q2xpZW50LmdldERlZmF1bHRFeHRlbnNpb25Db25maWd1cmF0aW9uKHJ1bnRpbWVDb25maWcpLCBwcm90b2NvbEh0dHAuZ2V0SHR0cEhhbmRsZXJFeHRlbnNpb25Db25maWd1cmF0aW9uKHJ1bnRpbWVDb25maWcpLCBnZXRIdHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24ocnVudGltZUNvbmZpZykpO1xuICAgIGV4dGVuc2lvbnMuZm9yRWFjaCgoZXh0ZW5zaW9uKSA9PiBleHRlbnNpb24uY29uZmlndXJlKGV4dGVuc2lvbkNvbmZpZ3VyYXRpb24pKTtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihydW50aW1lQ29uZmlnLCByZWdpb25Db25maWdSZXNvbHZlci5yZXNvbHZlQXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbihleHRlbnNpb25Db25maWd1cmF0aW9uKSwgc21pdGh5Q2xpZW50LnJlc29sdmVEZWZhdWx0UnVudGltZUNvbmZpZyhleHRlbnNpb25Db25maWd1cmF0aW9uKSwgcHJvdG9jb2xIdHRwLnJlc29sdmVIdHRwSGFuZGxlclJ1bnRpbWVDb25maWcoZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiksIHJlc29sdmVIdHRwQXV0aFJ1bnRpbWVDb25maWcoZXh0ZW5zaW9uQ29uZmlndXJhdGlvbikpO1xufTtcblxuY2xhc3MgUzNDbGllbnQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ2xpZW50IHtcbiAgICBjb25maWc7XG4gICAgY29uc3RydWN0b3IoLi4uW2NvbmZpZ3VyYXRpb25dKSB7XG4gICAgICAgIGNvbnN0IF9jb25maWdfMCA9IHJ1bnRpbWVDb25maWcuZ2V0UnVudGltZUNvbmZpZyhjb25maWd1cmF0aW9uIHx8IHt9KTtcbiAgICAgICAgc3VwZXIoX2NvbmZpZ18wKTtcbiAgICAgICAgdGhpcy5pbml0Q29uZmlnID0gX2NvbmZpZ18wO1xuICAgICAgICBjb25zdCBfY29uZmlnXzEgPSByZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzKF9jb25maWdfMCk7XG4gICAgICAgIGNvbnN0IF9jb25maWdfMiA9IG1pZGRsZXdhcmVVc2VyQWdlbnQucmVzb2x2ZVVzZXJBZ2VudENvbmZpZyhfY29uZmlnXzEpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzMgPSBtaWRkbGV3YXJlRmxleGlibGVDaGVja3N1bXMucmVzb2x2ZUZsZXhpYmxlQ2hlY2tzdW1zQ29uZmlnKF9jb25maWdfMik7XG4gICAgICAgIGNvbnN0IF9jb25maWdfNCA9IG1pZGRsZXdhcmVSZXRyeS5yZXNvbHZlUmV0cnlDb25maWcoX2NvbmZpZ18zKTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ181ID0gY29uZmlnUmVzb2x2ZXIucmVzb2x2ZVJlZ2lvbkNvbmZpZyhfY29uZmlnXzQpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzYgPSBtaWRkbGV3YXJlSG9zdEhlYWRlci5yZXNvbHZlSG9zdEhlYWRlckNvbmZpZyhfY29uZmlnXzUpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzcgPSBtaWRkbGV3YXJlRW5kcG9pbnQucmVzb2x2ZUVuZHBvaW50Q29uZmlnKF9jb25maWdfNik7XG4gICAgICAgIGNvbnN0IF9jb25maWdfOCA9IGV2ZW50c3RyZWFtU2VyZGVDb25maWdSZXNvbHZlci5yZXNvbHZlRXZlbnRTdHJlYW1TZXJkZUNvbmZpZyhfY29uZmlnXzcpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzkgPSBodHRwQXV0aFNjaGVtZVByb3ZpZGVyLnJlc29sdmVIdHRwQXV0aFNjaGVtZUNvbmZpZyhfY29uZmlnXzgpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzEwID0gbWlkZGxld2FyZVNka1MzLnJlc29sdmVTM0NvbmZpZyhfY29uZmlnXzksIHsgc2Vzc2lvbjogWygpID0+IHRoaXMsIENyZWF0ZVNlc3Npb25Db21tYW5kXSB9KTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ18xMSA9IHJlc29sdmVSdW50aW1lRXh0ZW5zaW9ucyhfY29uZmlnXzEwLCBjb25maWd1cmF0aW9uPy5leHRlbnNpb25zIHx8IFtdKTtcbiAgICAgICAgdGhpcy5jb25maWcgPSBfY29uZmlnXzExO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2Uoc2NoZW1hLmdldFNjaGVtYVNlcmRlUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShtaWRkbGV3YXJlVXNlckFnZW50LmdldFVzZXJBZ2VudFBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UobWlkZGxld2FyZVJldHJ5LmdldFJldHJ5UGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShtaWRkbGV3YXJlQ29udGVudExlbmd0aC5nZXRDb250ZW50TGVuZ3RoUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShtaWRkbGV3YXJlSG9zdEhlYWRlci5nZXRIb3N0SGVhZGVyUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShtaWRkbGV3YXJlTG9nZ2VyLmdldExvZ2dlclBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UobWlkZGxld2FyZVJlY3Vyc2lvbkRldGVjdGlvbi5nZXRSZWN1cnNpb25EZXRlY3Rpb25QbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGNvcmUuZ2V0SHR0cEF1dGhTY2hlbWVFbmRwb2ludFJ1bGVTZXRQbHVnaW4odGhpcy5jb25maWcsIHtcbiAgICAgICAgICAgIGh0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyOiBodHRwQXV0aFNjaGVtZVByb3ZpZGVyLmRlZmF1bHRTM0h0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyLFxuICAgICAgICAgICAgaWRlbnRpdHlQcm92aWRlckNvbmZpZ1Byb3ZpZGVyOiBhc3luYyAoY29uZmlnKSA9PiBuZXcgY29yZS5EZWZhdWx0SWRlbnRpdHlQcm92aWRlckNvbmZpZyh7XG4gICAgICAgICAgICAgICAgXCJhd3MuYXV0aCNzaWd2NFwiOiBjb25maWcuY3JlZGVudGlhbHMsXG4gICAgICAgICAgICAgICAgXCJhd3MuYXV0aCNzaWd2NGFcIjogY29uZmlnLmNyZWRlbnRpYWxzLFxuICAgICAgICAgICAgfSksXG4gICAgICAgIH0pKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGNvcmUuZ2V0SHR0cFNpZ25pbmdQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKG1pZGRsZXdhcmVTZGtTMy5nZXRWYWxpZGF0ZUJ1Y2tldE5hbWVQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKG1pZGRsZXdhcmVFeHBlY3RDb250aW51ZS5nZXRBZGRFeHBlY3RDb250aW51ZVBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UobWlkZGxld2FyZVNka1MzLmdldFJlZ2lvblJlZGlyZWN0TWlkZGxld2FyZVBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UobWlkZGxld2FyZVNka1MzLmdldFMzRXhwcmVzc1BsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UobWlkZGxld2FyZVNka1MzLmdldFMzRXhwcmVzc0h0dHBTaWduaW5nUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgfVxuICAgIGRlc3Ryb3koKSB7XG4gICAgICAgIHN1cGVyLmRlc3Ryb3koKTtcbiAgICB9XG59XG5cbmNsYXNzIEFib3J0TXVsdGlwYXJ0VXBsb2FkQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG4gICAgS2V5OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIktleVwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpLCBtaWRkbGV3YXJlU2RrUzMuZ2V0VGhyb3cyMDBFeGNlcHRpb25zUGx1Z2luKGNvbmZpZyldO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiQWJvcnRNdWx0aXBhcnRVcGxvYWRcIiwge30pXG4gICAgLm4oXCJTM0NsaWVudFwiLCBcIkFib3J0TXVsdGlwYXJ0VXBsb2FkQ29tbWFuZFwiKVxuICAgIC5zYyhBYm9ydE11bHRpcGFydFVwbG9hZClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIENvbXBsZXRlTXVsdGlwYXJ0VXBsb2FkQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG4gICAgS2V5OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIktleVwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgICAgbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKSxcbiAgICAgICAgbWlkZGxld2FyZVNka1MzLmdldFRocm93MjAwRXhjZXB0aW9uc1BsdWdpbihjb25maWcpLFxuICAgICAgICBtaWRkbGV3YXJlU3NlYy5nZXRTc2VjUGx1Z2luKGNvbmZpZyksXG4gICAgXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIkNvbXBsZXRlTXVsdGlwYXJ0VXBsb2FkXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJDb21wbGV0ZU11bHRpcGFydFVwbG9hZENvbW1hbmRcIilcbiAgICAuc2MoQ29tcGxldGVNdWx0aXBhcnRVcGxvYWQpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBDb3B5T2JqZWN0Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgRGlzYWJsZVMzRXhwcmVzc1Nlc3Npb25BdXRoOiB7IHR5cGU6IFwic3RhdGljQ29udGV4dFBhcmFtc1wiLCB2YWx1ZTogdHJ1ZSB9LFxuICAgIEJ1Y2tldDogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJCdWNrZXRcIiB9LFxuICAgIEtleTogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJLZXlcIiB9LFxuICAgIENvcHlTb3VyY2U6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQ29weVNvdXJjZVwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgICAgbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKSxcbiAgICAgICAgbWlkZGxld2FyZVNka1MzLmdldFRocm93MjAwRXhjZXB0aW9uc1BsdWdpbihjb25maWcpLFxuICAgICAgICBtaWRkbGV3YXJlU3NlYy5nZXRTc2VjUGx1Z2luKGNvbmZpZyksXG4gICAgXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIkNvcHlPYmplY3RcIiwge30pXG4gICAgLm4oXCJTM0NsaWVudFwiLCBcIkNvcHlPYmplY3RDb21tYW5kXCIpXG4gICAgLnNjKENvcHlPYmplY3QpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBDcmVhdGVCdWNrZXRDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBVc2VTM0V4cHJlc3NDb250cm9sRW5kcG9pbnQ6IHsgdHlwZTogXCJzdGF0aWNDb250ZXh0UGFyYW1zXCIsIHZhbHVlOiB0cnVlIH0sXG4gICAgRGlzYWJsZUFjY2Vzc1BvaW50czogeyB0eXBlOiBcInN0YXRpY0NvbnRleHRQYXJhbXNcIiwgdmFsdWU6IHRydWUgfSxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW1xuICAgICAgICBtaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpLFxuICAgICAgICBtaWRkbGV3YXJlU2RrUzMuZ2V0VGhyb3cyMDBFeGNlcHRpb25zUGx1Z2luKGNvbmZpZyksXG4gICAgICAgIG1pZGRsZXdhcmVMb2NhdGlvbkNvbnN0cmFpbnQuZ2V0TG9jYXRpb25Db25zdHJhaW50UGx1Z2luKGNvbmZpZyksXG4gICAgXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIkNyZWF0ZUJ1Y2tldFwiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiQ3JlYXRlQnVja2V0Q29tbWFuZFwiKVxuICAgIC5zYyhDcmVhdGVCdWNrZXQpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBDcmVhdGVCdWNrZXRNZXRhZGF0YUNvbmZpZ3VyYXRpb25Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBVc2VTM0V4cHJlc3NDb250cm9sRW5kcG9pbnQ6IHsgdHlwZTogXCJzdGF0aWNDb250ZXh0UGFyYW1zXCIsIHZhbHVlOiB0cnVlIH0sXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgICAgbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKSxcbiAgICAgICAgbWlkZGxld2FyZUZsZXhpYmxlQ2hlY2tzdW1zLmdldEZsZXhpYmxlQ2hlY2tzdW1zUGx1Z2luKGNvbmZpZywge1xuICAgICAgICAgICAgcmVxdWVzdEFsZ29yaXRobU1lbWJlcjogeyBodHRwSGVhZGVyOiBcIngtYW16LXNkay1jaGVja3N1bS1hbGdvcml0aG1cIiwgbmFtZTogXCJDaGVja3N1bUFsZ29yaXRobVwiIH0sXG4gICAgICAgICAgICByZXF1ZXN0Q2hlY2tzdW1SZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSksXG4gICAgXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIkNyZWF0ZUJ1Y2tldE1ldGFkYXRhQ29uZmlndXJhdGlvblwiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiQ3JlYXRlQnVja2V0TWV0YWRhdGFDb25maWd1cmF0aW9uQ29tbWFuZFwiKVxuICAgIC5zYyhDcmVhdGVCdWNrZXRNZXRhZGF0YUNvbmZpZ3VyYXRpb24pXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBDcmVhdGVCdWNrZXRNZXRhZGF0YVRhYmxlQ29uZmlndXJhdGlvbkNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFVzZVMzRXhwcmVzc0NvbnRyb2xFbmRwb2ludDogeyB0eXBlOiBcInN0YXRpY0NvbnRleHRQYXJhbXNcIiwgdmFsdWU6IHRydWUgfSxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW1xuICAgICAgICBtaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpLFxuICAgICAgICBtaWRkbGV3YXJlRmxleGlibGVDaGVja3N1bXMuZ2V0RmxleGlibGVDaGVja3N1bXNQbHVnaW4oY29uZmlnLCB7XG4gICAgICAgICAgICByZXF1ZXN0QWxnb3JpdGhtTWVtYmVyOiB7IGh0dHBIZWFkZXI6IFwieC1hbXotc2RrLWNoZWNrc3VtLWFsZ29yaXRobVwiLCBuYW1lOiBcIkNoZWNrc3VtQWxnb3JpdGhtXCIgfSxcbiAgICAgICAgICAgIHJlcXVlc3RDaGVja3N1bVJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9KSxcbiAgICBdO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiQ3JlYXRlQnVja2V0TWV0YWRhdGFUYWJsZUNvbmZpZ3VyYXRpb25cIiwge30pXG4gICAgLm4oXCJTM0NsaWVudFwiLCBcIkNyZWF0ZUJ1Y2tldE1ldGFkYXRhVGFibGVDb25maWd1cmF0aW9uQ29tbWFuZFwiKVxuICAgIC5zYyhDcmVhdGVCdWNrZXRNZXRhZGF0YVRhYmxlQ29uZmlndXJhdGlvbilcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIENyZWF0ZU11bHRpcGFydFVwbG9hZENvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIEJ1Y2tldDogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJCdWNrZXRcIiB9LFxuICAgIEtleTogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJLZXlcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbXG4gICAgICAgIG1pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSksXG4gICAgICAgIG1pZGRsZXdhcmVTZGtTMy5nZXRUaHJvdzIwMEV4Y2VwdGlvbnNQbHVnaW4oY29uZmlnKSxcbiAgICAgICAgbWlkZGxld2FyZVNzZWMuZ2V0U3NlY1BsdWdpbihjb25maWcpLFxuICAgIF07XG59KVxuICAgIC5zKFwiQW1hem9uUzNcIiwgXCJDcmVhdGVNdWx0aXBhcnRVcGxvYWRcIiwge30pXG4gICAgLm4oXCJTM0NsaWVudFwiLCBcIkNyZWF0ZU11bHRpcGFydFVwbG9hZENvbW1hbmRcIilcbiAgICAuc2MoQ3JlYXRlTXVsdGlwYXJ0VXBsb2FkKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgRGVsZXRlQnVja2V0QW5hbHl0aWNzQ29uZmlndXJhdGlvbkNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFVzZVMzRXhwcmVzc0NvbnRyb2xFbmRwb2ludDogeyB0eXBlOiBcInN0YXRpY0NvbnRleHRQYXJhbXNcIiwgdmFsdWU6IHRydWUgfSxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiRGVsZXRlQnVja2V0QW5hbHl0aWNzQ29uZmlndXJhdGlvblwiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiRGVsZXRlQnVja2V0QW5hbHl0aWNzQ29uZmlndXJhdGlvbkNvbW1hbmRcIilcbiAgICAuc2MoRGVsZXRlQnVja2V0QW5hbHl0aWNzQ29uZmlndXJhdGlvbilcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERlbGV0ZUJ1Y2tldENvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFVzZVMzRXhwcmVzc0NvbnRyb2xFbmRwb2ludDogeyB0eXBlOiBcInN0YXRpY0NvbnRleHRQYXJhbXNcIiwgdmFsdWU6IHRydWUgfSxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiRGVsZXRlQnVja2V0XCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJEZWxldGVCdWNrZXRDb21tYW5kXCIpXG4gICAgLnNjKERlbGV0ZUJ1Y2tldClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERlbGV0ZUJ1Y2tldENvcnNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBVc2VTM0V4cHJlc3NDb250cm9sRW5kcG9pbnQ6IHsgdHlwZTogXCJzdGF0aWNDb250ZXh0UGFyYW1zXCIsIHZhbHVlOiB0cnVlIH0sXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIkRlbGV0ZUJ1Y2tldENvcnNcIiwge30pXG4gICAgLm4oXCJTM0NsaWVudFwiLCBcIkRlbGV0ZUJ1Y2tldENvcnNDb21tYW5kXCIpXG4gICAgLnNjKERlbGV0ZUJ1Y2tldENvcnMpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZWxldGVCdWNrZXRFbmNyeXB0aW9uQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgVXNlUzNFeHByZXNzQ29udHJvbEVuZHBvaW50OiB7IHR5cGU6IFwic3RhdGljQ29udGV4dFBhcmFtc1wiLCB2YWx1ZTogdHJ1ZSB9LFxuICAgIEJ1Y2tldDogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJCdWNrZXRcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQW1hem9uUzNcIiwgXCJEZWxldGVCdWNrZXRFbmNyeXB0aW9uXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJEZWxldGVCdWNrZXRFbmNyeXB0aW9uQ29tbWFuZFwiKVxuICAgIC5zYyhEZWxldGVCdWNrZXRFbmNyeXB0aW9uKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgRGVsZXRlQnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvbkNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFVzZVMzRXhwcmVzc0NvbnRyb2xFbmRwb2ludDogeyB0eXBlOiBcInN0YXRpY0NvbnRleHRQYXJhbXNcIiwgdmFsdWU6IHRydWUgfSxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiRGVsZXRlQnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvblwiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiRGVsZXRlQnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvbkNvbW1hbmRcIilcbiAgICAuc2MoRGVsZXRlQnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvbilcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERlbGV0ZUJ1Y2tldEludmVudG9yeUNvbmZpZ3VyYXRpb25Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBVc2VTM0V4cHJlc3NDb250cm9sRW5kcG9pbnQ6IHsgdHlwZTogXCJzdGF0aWNDb250ZXh0UGFyYW1zXCIsIHZhbHVlOiB0cnVlIH0sXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIkRlbGV0ZUJ1Y2tldEludmVudG9yeUNvbmZpZ3VyYXRpb25cIiwge30pXG4gICAgLm4oXCJTM0NsaWVudFwiLCBcIkRlbGV0ZUJ1Y2tldEludmVudG9yeUNvbmZpZ3VyYXRpb25Db21tYW5kXCIpXG4gICAgLnNjKERlbGV0ZUJ1Y2tldEludmVudG9yeUNvbmZpZ3VyYXRpb24pXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZWxldGVCdWNrZXRMaWZlY3ljbGVDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBVc2VTM0V4cHJlc3NDb250cm9sRW5kcG9pbnQ6IHsgdHlwZTogXCJzdGF0aWNDb250ZXh0UGFyYW1zXCIsIHZhbHVlOiB0cnVlIH0sXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIkRlbGV0ZUJ1Y2tldExpZmVjeWNsZVwiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiRGVsZXRlQnVja2V0TGlmZWN5Y2xlQ29tbWFuZFwiKVxuICAgIC5zYyhEZWxldGVCdWNrZXRMaWZlY3ljbGUpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZWxldGVCdWNrZXRNZXRhZGF0YUNvbmZpZ3VyYXRpb25Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBVc2VTM0V4cHJlc3NDb250cm9sRW5kcG9pbnQ6IHsgdHlwZTogXCJzdGF0aWNDb250ZXh0UGFyYW1zXCIsIHZhbHVlOiB0cnVlIH0sXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIkRlbGV0ZUJ1Y2tldE1ldGFkYXRhQ29uZmlndXJhdGlvblwiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiRGVsZXRlQnVja2V0TWV0YWRhdGFDb25maWd1cmF0aW9uQ29tbWFuZFwiKVxuICAgIC5zYyhEZWxldGVCdWNrZXRNZXRhZGF0YUNvbmZpZ3VyYXRpb24pXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZWxldGVCdWNrZXRNZXRhZGF0YVRhYmxlQ29uZmlndXJhdGlvbkNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFVzZVMzRXhwcmVzc0NvbnRyb2xFbmRwb2ludDogeyB0eXBlOiBcInN0YXRpY0NvbnRleHRQYXJhbXNcIiwgdmFsdWU6IHRydWUgfSxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiRGVsZXRlQnVja2V0TWV0YWRhdGFUYWJsZUNvbmZpZ3VyYXRpb25cIiwge30pXG4gICAgLm4oXCJTM0NsaWVudFwiLCBcIkRlbGV0ZUJ1Y2tldE1ldGFkYXRhVGFibGVDb25maWd1cmF0aW9uQ29tbWFuZFwiKVxuICAgIC5zYyhEZWxldGVCdWNrZXRNZXRhZGF0YVRhYmxlQ29uZmlndXJhdGlvbilcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERlbGV0ZUJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9uQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgVXNlUzNFeHByZXNzQ29udHJvbEVuZHBvaW50OiB7IHR5cGU6IFwic3RhdGljQ29udGV4dFBhcmFtc1wiLCB2YWx1ZTogdHJ1ZSB9LFxuICAgIEJ1Y2tldDogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJCdWNrZXRcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQW1hem9uUzNcIiwgXCJEZWxldGVCdWNrZXRNZXRyaWNzQ29uZmlndXJhdGlvblwiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiRGVsZXRlQnVja2V0TWV0cmljc0NvbmZpZ3VyYXRpb25Db21tYW5kXCIpXG4gICAgLnNjKERlbGV0ZUJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9uKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgRGVsZXRlQnVja2V0T3duZXJzaGlwQ29udHJvbHNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBVc2VTM0V4cHJlc3NDb250cm9sRW5kcG9pbnQ6IHsgdHlwZTogXCJzdGF0aWNDb250ZXh0UGFyYW1zXCIsIHZhbHVlOiB0cnVlIH0sXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIkRlbGV0ZUJ1Y2tldE93bmVyc2hpcENvbnRyb2xzXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJEZWxldGVCdWNrZXRPd25lcnNoaXBDb250cm9sc0NvbW1hbmRcIilcbiAgICAuc2MoRGVsZXRlQnVja2V0T3duZXJzaGlwQ29udHJvbHMpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZWxldGVCdWNrZXRQb2xpY3lDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBVc2VTM0V4cHJlc3NDb250cm9sRW5kcG9pbnQ6IHsgdHlwZTogXCJzdGF0aWNDb250ZXh0UGFyYW1zXCIsIHZhbHVlOiB0cnVlIH0sXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIkRlbGV0ZUJ1Y2tldFBvbGljeVwiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiRGVsZXRlQnVja2V0UG9saWN5Q29tbWFuZFwiKVxuICAgIC5zYyhEZWxldGVCdWNrZXRQb2xpY3kpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZWxldGVCdWNrZXRSZXBsaWNhdGlvbkNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFVzZVMzRXhwcmVzc0NvbnRyb2xFbmRwb2ludDogeyB0eXBlOiBcInN0YXRpY0NvbnRleHRQYXJhbXNcIiwgdmFsdWU6IHRydWUgfSxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiRGVsZXRlQnVja2V0UmVwbGljYXRpb25cIiwge30pXG4gICAgLm4oXCJTM0NsaWVudFwiLCBcIkRlbGV0ZUJ1Y2tldFJlcGxpY2F0aW9uQ29tbWFuZFwiKVxuICAgIC5zYyhEZWxldGVCdWNrZXRSZXBsaWNhdGlvbilcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERlbGV0ZUJ1Y2tldFRhZ2dpbmdDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBVc2VTM0V4cHJlc3NDb250cm9sRW5kcG9pbnQ6IHsgdHlwZTogXCJzdGF0aWNDb250ZXh0UGFyYW1zXCIsIHZhbHVlOiB0cnVlIH0sXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIkRlbGV0ZUJ1Y2tldFRhZ2dpbmdcIiwge30pXG4gICAgLm4oXCJTM0NsaWVudFwiLCBcIkRlbGV0ZUJ1Y2tldFRhZ2dpbmdDb21tYW5kXCIpXG4gICAgLnNjKERlbGV0ZUJ1Y2tldFRhZ2dpbmcpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZWxldGVCdWNrZXRXZWJzaXRlQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgVXNlUzNFeHByZXNzQ29udHJvbEVuZHBvaW50OiB7IHR5cGU6IFwic3RhdGljQ29udGV4dFBhcmFtc1wiLCB2YWx1ZTogdHJ1ZSB9LFxuICAgIEJ1Y2tldDogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJCdWNrZXRcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQW1hem9uUzNcIiwgXCJEZWxldGVCdWNrZXRXZWJzaXRlXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJEZWxldGVCdWNrZXRXZWJzaXRlQ29tbWFuZFwiKVxuICAgIC5zYyhEZWxldGVCdWNrZXRXZWJzaXRlKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgRGVsZXRlT2JqZWN0Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG4gICAgS2V5OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIktleVwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpLCBtaWRkbGV3YXJlU2RrUzMuZ2V0VGhyb3cyMDBFeGNlcHRpb25zUGx1Z2luKGNvbmZpZyldO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiRGVsZXRlT2JqZWN0XCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJEZWxldGVPYmplY3RDb21tYW5kXCIpXG4gICAgLnNjKERlbGV0ZU9iamVjdClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERlbGV0ZU9iamVjdHNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW1xuICAgICAgICBtaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpLFxuICAgICAgICBtaWRkbGV3YXJlRmxleGlibGVDaGVja3N1bXMuZ2V0RmxleGlibGVDaGVja3N1bXNQbHVnaW4oY29uZmlnLCB7XG4gICAgICAgICAgICByZXF1ZXN0QWxnb3JpdGhtTWVtYmVyOiB7IGh0dHBIZWFkZXI6IFwieC1hbXotc2RrLWNoZWNrc3VtLWFsZ29yaXRobVwiLCBuYW1lOiBcIkNoZWNrc3VtQWxnb3JpdGhtXCIgfSxcbiAgICAgICAgICAgIHJlcXVlc3RDaGVja3N1bVJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9KSxcbiAgICAgICAgbWlkZGxld2FyZVNka1MzLmdldFRocm93MjAwRXhjZXB0aW9uc1BsdWdpbihjb25maWcpLFxuICAgIF07XG59KVxuICAgIC5zKFwiQW1hem9uUzNcIiwgXCJEZWxldGVPYmplY3RzXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJEZWxldGVPYmplY3RzQ29tbWFuZFwiKVxuICAgIC5zYyhEZWxldGVPYmplY3RzKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgRGVsZXRlT2JqZWN0VGFnZ2luZ0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIEJ1Y2tldDogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJCdWNrZXRcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKSwgbWlkZGxld2FyZVNka1MzLmdldFRocm93MjAwRXhjZXB0aW9uc1BsdWdpbihjb25maWcpXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIkRlbGV0ZU9iamVjdFRhZ2dpbmdcIiwge30pXG4gICAgLm4oXCJTM0NsaWVudFwiLCBcIkRlbGV0ZU9iamVjdFRhZ2dpbmdDb21tYW5kXCIpXG4gICAgLnNjKERlbGV0ZU9iamVjdFRhZ2dpbmcpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZWxldGVQdWJsaWNBY2Nlc3NCbG9ja0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFVzZVMzRXhwcmVzc0NvbnRyb2xFbmRwb2ludDogeyB0eXBlOiBcInN0YXRpY0NvbnRleHRQYXJhbXNcIiwgdmFsdWU6IHRydWUgfSxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiRGVsZXRlUHVibGljQWNjZXNzQmxvY2tcIiwge30pXG4gICAgLm4oXCJTM0NsaWVudFwiLCBcIkRlbGV0ZVB1YmxpY0FjY2Vzc0Jsb2NrQ29tbWFuZFwiKVxuICAgIC5zYyhEZWxldGVQdWJsaWNBY2Nlc3NCbG9jaylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIEdldEJ1Y2tldEFiYWNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSksIG1pZGRsZXdhcmVTZGtTMy5nZXRUaHJvdzIwMEV4Y2VwdGlvbnNQbHVnaW4oY29uZmlnKV07XG59KVxuICAgIC5zKFwiQW1hem9uUzNcIiwgXCJHZXRCdWNrZXRBYmFjXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJHZXRCdWNrZXRBYmFjQ29tbWFuZFwiKVxuICAgIC5zYyhHZXRCdWNrZXRBYmFjKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgR2V0QnVja2V0QWNjZWxlcmF0ZUNvbmZpZ3VyYXRpb25Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBVc2VTM0V4cHJlc3NDb250cm9sRW5kcG9pbnQ6IHsgdHlwZTogXCJzdGF0aWNDb250ZXh0UGFyYW1zXCIsIHZhbHVlOiB0cnVlIH0sXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpLCBtaWRkbGV3YXJlU2RrUzMuZ2V0VGhyb3cyMDBFeGNlcHRpb25zUGx1Z2luKGNvbmZpZyldO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiR2V0QnVja2V0QWNjZWxlcmF0ZUNvbmZpZ3VyYXRpb25cIiwge30pXG4gICAgLm4oXCJTM0NsaWVudFwiLCBcIkdldEJ1Y2tldEFjY2VsZXJhdGVDb25maWd1cmF0aW9uQ29tbWFuZFwiKVxuICAgIC5zYyhHZXRCdWNrZXRBY2NlbGVyYXRlQ29uZmlndXJhdGlvbilcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIEdldEJ1Y2tldEFjbENvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFVzZVMzRXhwcmVzc0NvbnRyb2xFbmRwb2ludDogeyB0eXBlOiBcInN0YXRpY0NvbnRleHRQYXJhbXNcIiwgdmFsdWU6IHRydWUgfSxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSksIG1pZGRsZXdhcmVTZGtTMy5nZXRUaHJvdzIwMEV4Y2VwdGlvbnNQbHVnaW4oY29uZmlnKV07XG59KVxuICAgIC5zKFwiQW1hem9uUzNcIiwgXCJHZXRCdWNrZXRBY2xcIiwge30pXG4gICAgLm4oXCJTM0NsaWVudFwiLCBcIkdldEJ1Y2tldEFjbENvbW1hbmRcIilcbiAgICAuc2MoR2V0QnVja2V0QWNsKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgR2V0QnVja2V0QW5hbHl0aWNzQ29uZmlndXJhdGlvbkNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFVzZVMzRXhwcmVzc0NvbnRyb2xFbmRwb2ludDogeyB0eXBlOiBcInN0YXRpY0NvbnRleHRQYXJhbXNcIiwgdmFsdWU6IHRydWUgfSxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSksIG1pZGRsZXdhcmVTZGtTMy5nZXRUaHJvdzIwMEV4Y2VwdGlvbnNQbHVnaW4oY29uZmlnKV07XG59KVxuICAgIC5zKFwiQW1hem9uUzNcIiwgXCJHZXRCdWNrZXRBbmFseXRpY3NDb25maWd1cmF0aW9uXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJHZXRCdWNrZXRBbmFseXRpY3NDb25maWd1cmF0aW9uQ29tbWFuZFwiKVxuICAgIC5zYyhHZXRCdWNrZXRBbmFseXRpY3NDb25maWd1cmF0aW9uKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgR2V0QnVja2V0Q29yc0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFVzZVMzRXhwcmVzc0NvbnRyb2xFbmRwb2ludDogeyB0eXBlOiBcInN0YXRpY0NvbnRleHRQYXJhbXNcIiwgdmFsdWU6IHRydWUgfSxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSksIG1pZGRsZXdhcmVTZGtTMy5nZXRUaHJvdzIwMEV4Y2VwdGlvbnNQbHVnaW4oY29uZmlnKV07XG59KVxuICAgIC5zKFwiQW1hem9uUzNcIiwgXCJHZXRCdWNrZXRDb3JzXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJHZXRCdWNrZXRDb3JzQ29tbWFuZFwiKVxuICAgIC5zYyhHZXRCdWNrZXRDb3JzKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgR2V0QnVja2V0RW5jcnlwdGlvbkNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFVzZVMzRXhwcmVzc0NvbnRyb2xFbmRwb2ludDogeyB0eXBlOiBcInN0YXRpY0NvbnRleHRQYXJhbXNcIiwgdmFsdWU6IHRydWUgfSxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSksIG1pZGRsZXdhcmVTZGtTMy5nZXRUaHJvdzIwMEV4Y2VwdGlvbnNQbHVnaW4oY29uZmlnKV07XG59KVxuICAgIC5zKFwiQW1hem9uUzNcIiwgXCJHZXRCdWNrZXRFbmNyeXB0aW9uXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJHZXRCdWNrZXRFbmNyeXB0aW9uQ29tbWFuZFwiKVxuICAgIC5zYyhHZXRCdWNrZXRFbmNyeXB0aW9uKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgR2V0QnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvbkNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFVzZVMzRXhwcmVzc0NvbnRyb2xFbmRwb2ludDogeyB0eXBlOiBcInN0YXRpY0NvbnRleHRQYXJhbXNcIiwgdmFsdWU6IHRydWUgfSxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSksIG1pZGRsZXdhcmVTZGtTMy5nZXRUaHJvdzIwMEV4Y2VwdGlvbnNQbHVnaW4oY29uZmlnKV07XG59KVxuICAgIC5zKFwiQW1hem9uUzNcIiwgXCJHZXRCdWNrZXRJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9uXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJHZXRCdWNrZXRJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9uQ29tbWFuZFwiKVxuICAgIC5zYyhHZXRCdWNrZXRJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9uKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgR2V0QnVja2V0SW52ZW50b3J5Q29uZmlndXJhdGlvbkNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFVzZVMzRXhwcmVzc0NvbnRyb2xFbmRwb2ludDogeyB0eXBlOiBcInN0YXRpY0NvbnRleHRQYXJhbXNcIiwgdmFsdWU6IHRydWUgfSxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSksIG1pZGRsZXdhcmVTZGtTMy5nZXRUaHJvdzIwMEV4Y2VwdGlvbnNQbHVnaW4oY29uZmlnKV07XG59KVxuICAgIC5zKFwiQW1hem9uUzNcIiwgXCJHZXRCdWNrZXRJbnZlbnRvcnlDb25maWd1cmF0aW9uXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJHZXRCdWNrZXRJbnZlbnRvcnlDb25maWd1cmF0aW9uQ29tbWFuZFwiKVxuICAgIC5zYyhHZXRCdWNrZXRJbnZlbnRvcnlDb25maWd1cmF0aW9uKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgR2V0QnVja2V0TGlmZWN5Y2xlQ29uZmlndXJhdGlvbkNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFVzZVMzRXhwcmVzc0NvbnRyb2xFbmRwb2ludDogeyB0eXBlOiBcInN0YXRpY0NvbnRleHRQYXJhbXNcIiwgdmFsdWU6IHRydWUgfSxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSksIG1pZGRsZXdhcmVTZGtTMy5nZXRUaHJvdzIwMEV4Y2VwdGlvbnNQbHVnaW4oY29uZmlnKV07XG59KVxuICAgIC5zKFwiQW1hem9uUzNcIiwgXCJHZXRCdWNrZXRMaWZlY3ljbGVDb25maWd1cmF0aW9uXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJHZXRCdWNrZXRMaWZlY3ljbGVDb25maWd1cmF0aW9uQ29tbWFuZFwiKVxuICAgIC5zYyhHZXRCdWNrZXRMaWZlY3ljbGVDb25maWd1cmF0aW9uKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgR2V0QnVja2V0TG9jYXRpb25Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBVc2VTM0V4cHJlc3NDb250cm9sRW5kcG9pbnQ6IHsgdHlwZTogXCJzdGF0aWNDb250ZXh0UGFyYW1zXCIsIHZhbHVlOiB0cnVlIH0sXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpLCBtaWRkbGV3YXJlU2RrUzMuZ2V0VGhyb3cyMDBFeGNlcHRpb25zUGx1Z2luKGNvbmZpZyldO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiR2V0QnVja2V0TG9jYXRpb25cIiwge30pXG4gICAgLm4oXCJTM0NsaWVudFwiLCBcIkdldEJ1Y2tldExvY2F0aW9uQ29tbWFuZFwiKVxuICAgIC5zYyhHZXRCdWNrZXRMb2NhdGlvbilcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIEdldEJ1Y2tldExvZ2dpbmdDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBVc2VTM0V4cHJlc3NDb250cm9sRW5kcG9pbnQ6IHsgdHlwZTogXCJzdGF0aWNDb250ZXh0UGFyYW1zXCIsIHZhbHVlOiB0cnVlIH0sXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpLCBtaWRkbGV3YXJlU2RrUzMuZ2V0VGhyb3cyMDBFeGNlcHRpb25zUGx1Z2luKGNvbmZpZyldO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiR2V0QnVja2V0TG9nZ2luZ1wiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiR2V0QnVja2V0TG9nZ2luZ0NvbW1hbmRcIilcbiAgICAuc2MoR2V0QnVja2V0TG9nZ2luZylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIEdldEJ1Y2tldE1ldGFkYXRhQ29uZmlndXJhdGlvbkNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFVzZVMzRXhwcmVzc0NvbnRyb2xFbmRwb2ludDogeyB0eXBlOiBcInN0YXRpY0NvbnRleHRQYXJhbXNcIiwgdmFsdWU6IHRydWUgfSxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSksIG1pZGRsZXdhcmVTZGtTMy5nZXRUaHJvdzIwMEV4Y2VwdGlvbnNQbHVnaW4oY29uZmlnKV07XG59KVxuICAgIC5zKFwiQW1hem9uUzNcIiwgXCJHZXRCdWNrZXRNZXRhZGF0YUNvbmZpZ3VyYXRpb25cIiwge30pXG4gICAgLm4oXCJTM0NsaWVudFwiLCBcIkdldEJ1Y2tldE1ldGFkYXRhQ29uZmlndXJhdGlvbkNvbW1hbmRcIilcbiAgICAuc2MoR2V0QnVja2V0TWV0YWRhdGFDb25maWd1cmF0aW9uKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgR2V0QnVja2V0TWV0YWRhdGFUYWJsZUNvbmZpZ3VyYXRpb25Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBVc2VTM0V4cHJlc3NDb250cm9sRW5kcG9pbnQ6IHsgdHlwZTogXCJzdGF0aWNDb250ZXh0UGFyYW1zXCIsIHZhbHVlOiB0cnVlIH0sXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpLCBtaWRkbGV3YXJlU2RrUzMuZ2V0VGhyb3cyMDBFeGNlcHRpb25zUGx1Z2luKGNvbmZpZyldO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiR2V0QnVja2V0TWV0YWRhdGFUYWJsZUNvbmZpZ3VyYXRpb25cIiwge30pXG4gICAgLm4oXCJTM0NsaWVudFwiLCBcIkdldEJ1Y2tldE1ldGFkYXRhVGFibGVDb25maWd1cmF0aW9uQ29tbWFuZFwiKVxuICAgIC5zYyhHZXRCdWNrZXRNZXRhZGF0YVRhYmxlQ29uZmlndXJhdGlvbilcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIEdldEJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9uQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgVXNlUzNFeHByZXNzQ29udHJvbEVuZHBvaW50OiB7IHR5cGU6IFwic3RhdGljQ29udGV4dFBhcmFtc1wiLCB2YWx1ZTogdHJ1ZSB9LFxuICAgIEJ1Y2tldDogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJCdWNrZXRcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKSwgbWlkZGxld2FyZVNka1MzLmdldFRocm93MjAwRXhjZXB0aW9uc1BsdWdpbihjb25maWcpXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIkdldEJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9uXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJHZXRCdWNrZXRNZXRyaWNzQ29uZmlndXJhdGlvbkNvbW1hbmRcIilcbiAgICAuc2MoR2V0QnVja2V0TWV0cmljc0NvbmZpZ3VyYXRpb24pXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBHZXRCdWNrZXROb3RpZmljYXRpb25Db25maWd1cmF0aW9uQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgVXNlUzNFeHByZXNzQ29udHJvbEVuZHBvaW50OiB7IHR5cGU6IFwic3RhdGljQ29udGV4dFBhcmFtc1wiLCB2YWx1ZTogdHJ1ZSB9LFxuICAgIEJ1Y2tldDogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJCdWNrZXRcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKSwgbWlkZGxld2FyZVNka1MzLmdldFRocm93MjAwRXhjZXB0aW9uc1BsdWdpbihjb25maWcpXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIkdldEJ1Y2tldE5vdGlmaWNhdGlvbkNvbmZpZ3VyYXRpb25cIiwge30pXG4gICAgLm4oXCJTM0NsaWVudFwiLCBcIkdldEJ1Y2tldE5vdGlmaWNhdGlvbkNvbmZpZ3VyYXRpb25Db21tYW5kXCIpXG4gICAgLnNjKEdldEJ1Y2tldE5vdGlmaWNhdGlvbkNvbmZpZ3VyYXRpb24pXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBHZXRCdWNrZXRPd25lcnNoaXBDb250cm9sc0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFVzZVMzRXhwcmVzc0NvbnRyb2xFbmRwb2ludDogeyB0eXBlOiBcInN0YXRpY0NvbnRleHRQYXJhbXNcIiwgdmFsdWU6IHRydWUgfSxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSksIG1pZGRsZXdhcmVTZGtTMy5nZXRUaHJvdzIwMEV4Y2VwdGlvbnNQbHVnaW4oY29uZmlnKV07XG59KVxuICAgIC5zKFwiQW1hem9uUzNcIiwgXCJHZXRCdWNrZXRPd25lcnNoaXBDb250cm9sc1wiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiR2V0QnVja2V0T3duZXJzaGlwQ29udHJvbHNDb21tYW5kXCIpXG4gICAgLnNjKEdldEJ1Y2tldE93bmVyc2hpcENvbnRyb2xzKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgR2V0QnVja2V0UG9saWN5Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgVXNlUzNFeHByZXNzQ29udHJvbEVuZHBvaW50OiB7IHR5cGU6IFwic3RhdGljQ29udGV4dFBhcmFtc1wiLCB2YWx1ZTogdHJ1ZSB9LFxuICAgIEJ1Y2tldDogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJCdWNrZXRcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKSwgbWlkZGxld2FyZVNka1MzLmdldFRocm93MjAwRXhjZXB0aW9uc1BsdWdpbihjb25maWcpXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIkdldEJ1Y2tldFBvbGljeVwiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiR2V0QnVja2V0UG9saWN5Q29tbWFuZFwiKVxuICAgIC5zYyhHZXRCdWNrZXRQb2xpY3kpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBHZXRCdWNrZXRQb2xpY3lTdGF0dXNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBVc2VTM0V4cHJlc3NDb250cm9sRW5kcG9pbnQ6IHsgdHlwZTogXCJzdGF0aWNDb250ZXh0UGFyYW1zXCIsIHZhbHVlOiB0cnVlIH0sXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpLCBtaWRkbGV3YXJlU2RrUzMuZ2V0VGhyb3cyMDBFeGNlcHRpb25zUGx1Z2luKGNvbmZpZyldO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiR2V0QnVja2V0UG9saWN5U3RhdHVzXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJHZXRCdWNrZXRQb2xpY3lTdGF0dXNDb21tYW5kXCIpXG4gICAgLnNjKEdldEJ1Y2tldFBvbGljeVN0YXR1cylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIEdldEJ1Y2tldFJlcGxpY2F0aW9uQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgVXNlUzNFeHByZXNzQ29udHJvbEVuZHBvaW50OiB7IHR5cGU6IFwic3RhdGljQ29udGV4dFBhcmFtc1wiLCB2YWx1ZTogdHJ1ZSB9LFxuICAgIEJ1Y2tldDogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJCdWNrZXRcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKSwgbWlkZGxld2FyZVNka1MzLmdldFRocm93MjAwRXhjZXB0aW9uc1BsdWdpbihjb25maWcpXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIkdldEJ1Y2tldFJlcGxpY2F0aW9uXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJHZXRCdWNrZXRSZXBsaWNhdGlvbkNvbW1hbmRcIilcbiAgICAuc2MoR2V0QnVja2V0UmVwbGljYXRpb24pXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBHZXRCdWNrZXRSZXF1ZXN0UGF5bWVudENvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFVzZVMzRXhwcmVzc0NvbnRyb2xFbmRwb2ludDogeyB0eXBlOiBcInN0YXRpY0NvbnRleHRQYXJhbXNcIiwgdmFsdWU6IHRydWUgfSxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSksIG1pZGRsZXdhcmVTZGtTMy5nZXRUaHJvdzIwMEV4Y2VwdGlvbnNQbHVnaW4oY29uZmlnKV07XG59KVxuICAgIC5zKFwiQW1hem9uUzNcIiwgXCJHZXRCdWNrZXRSZXF1ZXN0UGF5bWVudFwiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiR2V0QnVja2V0UmVxdWVzdFBheW1lbnRDb21tYW5kXCIpXG4gICAgLnNjKEdldEJ1Y2tldFJlcXVlc3RQYXltZW50KVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgR2V0QnVja2V0VGFnZ2luZ0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFVzZVMzRXhwcmVzc0NvbnRyb2xFbmRwb2ludDogeyB0eXBlOiBcInN0YXRpY0NvbnRleHRQYXJhbXNcIiwgdmFsdWU6IHRydWUgfSxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSksIG1pZGRsZXdhcmVTZGtTMy5nZXRUaHJvdzIwMEV4Y2VwdGlvbnNQbHVnaW4oY29uZmlnKV07XG59KVxuICAgIC5zKFwiQW1hem9uUzNcIiwgXCJHZXRCdWNrZXRUYWdnaW5nXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJHZXRCdWNrZXRUYWdnaW5nQ29tbWFuZFwiKVxuICAgIC5zYyhHZXRCdWNrZXRUYWdnaW5nKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgR2V0QnVja2V0VmVyc2lvbmluZ0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFVzZVMzRXhwcmVzc0NvbnRyb2xFbmRwb2ludDogeyB0eXBlOiBcInN0YXRpY0NvbnRleHRQYXJhbXNcIiwgdmFsdWU6IHRydWUgfSxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSksIG1pZGRsZXdhcmVTZGtTMy5nZXRUaHJvdzIwMEV4Y2VwdGlvbnNQbHVnaW4oY29uZmlnKV07XG59KVxuICAgIC5zKFwiQW1hem9uUzNcIiwgXCJHZXRCdWNrZXRWZXJzaW9uaW5nXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJHZXRCdWNrZXRWZXJzaW9uaW5nQ29tbWFuZFwiKVxuICAgIC5zYyhHZXRCdWNrZXRWZXJzaW9uaW5nKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgR2V0QnVja2V0V2Vic2l0ZUNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFVzZVMzRXhwcmVzc0NvbnRyb2xFbmRwb2ludDogeyB0eXBlOiBcInN0YXRpY0NvbnRleHRQYXJhbXNcIiwgdmFsdWU6IHRydWUgfSxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSksIG1pZGRsZXdhcmVTZGtTMy5nZXRUaHJvdzIwMEV4Y2VwdGlvbnNQbHVnaW4oY29uZmlnKV07XG59KVxuICAgIC5zKFwiQW1hem9uUzNcIiwgXCJHZXRCdWNrZXRXZWJzaXRlXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJHZXRCdWNrZXRXZWJzaXRlQ29tbWFuZFwiKVxuICAgIC5zYyhHZXRCdWNrZXRXZWJzaXRlKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgR2V0T2JqZWN0QWNsQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG4gICAgS2V5OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIktleVwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpLCBtaWRkbGV3YXJlU2RrUzMuZ2V0VGhyb3cyMDBFeGNlcHRpb25zUGx1Z2luKGNvbmZpZyldO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiR2V0T2JqZWN0QWNsXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJHZXRPYmplY3RBY2xDb21tYW5kXCIpXG4gICAgLnNjKEdldE9iamVjdEFjbClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIEdldE9iamVjdEF0dHJpYnV0ZXNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW1xuICAgICAgICBtaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpLFxuICAgICAgICBtaWRkbGV3YXJlU2RrUzMuZ2V0VGhyb3cyMDBFeGNlcHRpb25zUGx1Z2luKGNvbmZpZyksXG4gICAgICAgIG1pZGRsZXdhcmVTc2VjLmdldFNzZWNQbHVnaW4oY29uZmlnKSxcbiAgICBdO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiR2V0T2JqZWN0QXR0cmlidXRlc1wiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiR2V0T2JqZWN0QXR0cmlidXRlc0NvbW1hbmRcIilcbiAgICAuc2MoR2V0T2JqZWN0QXR0cmlidXRlcylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIEdldE9iamVjdENvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIEJ1Y2tldDogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJCdWNrZXRcIiB9LFxuICAgIEtleTogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJLZXlcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbXG4gICAgICAgIG1pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSksXG4gICAgICAgIG1pZGRsZXdhcmVGbGV4aWJsZUNoZWNrc3Vtcy5nZXRGbGV4aWJsZUNoZWNrc3Vtc1BsdWdpbihjb25maWcsIHtcbiAgICAgICAgICAgIHJlcXVlc3RDaGVja3N1bVJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgICAgIHJlcXVlc3RWYWxpZGF0aW9uTW9kZU1lbWJlcjogXCJDaGVja3N1bU1vZGVcIixcbiAgICAgICAgICAgIHJlc3BvbnNlQWxnb3JpdGhtczogW1wiQ1JDNjROVk1FXCIsIFwiQ1JDMzJcIiwgXCJDUkMzMkNcIiwgXCJTSEEyNTZcIiwgXCJTSEExXCJdLFxuICAgICAgICB9KSxcbiAgICAgICAgbWlkZGxld2FyZVNzZWMuZ2V0U3NlY1BsdWdpbihjb25maWcpLFxuICAgICAgICBtaWRkbGV3YXJlU2RrUzMuZ2V0UzNFeHBpcmVzTWlkZGxld2FyZVBsdWdpbihjb25maWcpLFxuICAgIF07XG59KVxuICAgIC5zKFwiQW1hem9uUzNcIiwgXCJHZXRPYmplY3RcIiwge30pXG4gICAgLm4oXCJTM0NsaWVudFwiLCBcIkdldE9iamVjdENvbW1hbmRcIilcbiAgICAuc2MoR2V0T2JqZWN0KVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgR2V0T2JqZWN0TGVnYWxIb2xkQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpLCBtaWRkbGV3YXJlU2RrUzMuZ2V0VGhyb3cyMDBFeGNlcHRpb25zUGx1Z2luKGNvbmZpZyldO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiR2V0T2JqZWN0TGVnYWxIb2xkXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJHZXRPYmplY3RMZWdhbEhvbGRDb21tYW5kXCIpXG4gICAgLnNjKEdldE9iamVjdExlZ2FsSG9sZClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIEdldE9iamVjdExvY2tDb25maWd1cmF0aW9uQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpLCBtaWRkbGV3YXJlU2RrUzMuZ2V0VGhyb3cyMDBFeGNlcHRpb25zUGx1Z2luKGNvbmZpZyldO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiR2V0T2JqZWN0TG9ja0NvbmZpZ3VyYXRpb25cIiwge30pXG4gICAgLm4oXCJTM0NsaWVudFwiLCBcIkdldE9iamVjdExvY2tDb25maWd1cmF0aW9uQ29tbWFuZFwiKVxuICAgIC5zYyhHZXRPYmplY3RMb2NrQ29uZmlndXJhdGlvbilcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIEdldE9iamVjdFJldGVudGlvbkNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIEJ1Y2tldDogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJCdWNrZXRcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKSwgbWlkZGxld2FyZVNka1MzLmdldFRocm93MjAwRXhjZXB0aW9uc1BsdWdpbihjb25maWcpXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIkdldE9iamVjdFJldGVudGlvblwiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiR2V0T2JqZWN0UmV0ZW50aW9uQ29tbWFuZFwiKVxuICAgIC5zYyhHZXRPYmplY3RSZXRlbnRpb24pXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBHZXRPYmplY3RUYWdnaW5nQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpLCBtaWRkbGV3YXJlU2RrUzMuZ2V0VGhyb3cyMDBFeGNlcHRpb25zUGx1Z2luKGNvbmZpZyldO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiR2V0T2JqZWN0VGFnZ2luZ1wiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiR2V0T2JqZWN0VGFnZ2luZ0NvbW1hbmRcIilcbiAgICAuc2MoR2V0T2JqZWN0VGFnZ2luZylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIEdldE9iamVjdFRvcnJlbnRDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiR2V0T2JqZWN0VG9ycmVudFwiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiR2V0T2JqZWN0VG9ycmVudENvbW1hbmRcIilcbiAgICAuc2MoR2V0T2JqZWN0VG9ycmVudClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIEdldFB1YmxpY0FjY2Vzc0Jsb2NrQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgVXNlUzNFeHByZXNzQ29udHJvbEVuZHBvaW50OiB7IHR5cGU6IFwic3RhdGljQ29udGV4dFBhcmFtc1wiLCB2YWx1ZTogdHJ1ZSB9LFxuICAgIEJ1Y2tldDogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJCdWNrZXRcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKSwgbWlkZGxld2FyZVNka1MzLmdldFRocm93MjAwRXhjZXB0aW9uc1BsdWdpbihjb25maWcpXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIkdldFB1YmxpY0FjY2Vzc0Jsb2NrXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJHZXRQdWJsaWNBY2Nlc3NCbG9ja0NvbW1hbmRcIilcbiAgICAuc2MoR2V0UHVibGljQWNjZXNzQmxvY2spXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBIZWFkQnVja2V0Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpLCBtaWRkbGV3YXJlU2RrUzMuZ2V0VGhyb3cyMDBFeGNlcHRpb25zUGx1Z2luKGNvbmZpZyldO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiSGVhZEJ1Y2tldFwiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiSGVhZEJ1Y2tldENvbW1hbmRcIilcbiAgICAuc2MoSGVhZEJ1Y2tldClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIEhlYWRPYmplY3RDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbiAgICBLZXk6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiS2V5XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW1xuICAgICAgICBtaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpLFxuICAgICAgICBtaWRkbGV3YXJlU2RrUzMuZ2V0VGhyb3cyMDBFeGNlcHRpb25zUGx1Z2luKGNvbmZpZyksXG4gICAgICAgIG1pZGRsZXdhcmVTc2VjLmdldFNzZWNQbHVnaW4oY29uZmlnKSxcbiAgICAgICAgbWlkZGxld2FyZVNka1MzLmdldFMzRXhwaXJlc01pZGRsZXdhcmVQbHVnaW4oY29uZmlnKSxcbiAgICBdO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiSGVhZE9iamVjdFwiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiSGVhZE9iamVjdENvbW1hbmRcIilcbiAgICAuc2MoSGVhZE9iamVjdClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIExpc3RCdWNrZXRBbmFseXRpY3NDb25maWd1cmF0aW9uc0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFVzZVMzRXhwcmVzc0NvbnRyb2xFbmRwb2ludDogeyB0eXBlOiBcInN0YXRpY0NvbnRleHRQYXJhbXNcIiwgdmFsdWU6IHRydWUgfSxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSksIG1pZGRsZXdhcmVTZGtTMy5nZXRUaHJvdzIwMEV4Y2VwdGlvbnNQbHVnaW4oY29uZmlnKV07XG59KVxuICAgIC5zKFwiQW1hem9uUzNcIiwgXCJMaXN0QnVja2V0QW5hbHl0aWNzQ29uZmlndXJhdGlvbnNcIiwge30pXG4gICAgLm4oXCJTM0NsaWVudFwiLCBcIkxpc3RCdWNrZXRBbmFseXRpY3NDb25maWd1cmF0aW9uc0NvbW1hbmRcIilcbiAgICAuc2MoTGlzdEJ1Y2tldEFuYWx5dGljc0NvbmZpZ3VyYXRpb25zKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgTGlzdEJ1Y2tldEludGVsbGlnZW50VGllcmluZ0NvbmZpZ3VyYXRpb25zQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgVXNlUzNFeHByZXNzQ29udHJvbEVuZHBvaW50OiB7IHR5cGU6IFwic3RhdGljQ29udGV4dFBhcmFtc1wiLCB2YWx1ZTogdHJ1ZSB9LFxuICAgIEJ1Y2tldDogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJCdWNrZXRcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKSwgbWlkZGxld2FyZVNka1MzLmdldFRocm93MjAwRXhjZXB0aW9uc1BsdWdpbihjb25maWcpXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIkxpc3RCdWNrZXRJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9uc1wiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiTGlzdEJ1Y2tldEludGVsbGlnZW50VGllcmluZ0NvbmZpZ3VyYXRpb25zQ29tbWFuZFwiKVxuICAgIC5zYyhMaXN0QnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvbnMpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBMaXN0QnVja2V0SW52ZW50b3J5Q29uZmlndXJhdGlvbnNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBVc2VTM0V4cHJlc3NDb250cm9sRW5kcG9pbnQ6IHsgdHlwZTogXCJzdGF0aWNDb250ZXh0UGFyYW1zXCIsIHZhbHVlOiB0cnVlIH0sXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpLCBtaWRkbGV3YXJlU2RrUzMuZ2V0VGhyb3cyMDBFeGNlcHRpb25zUGx1Z2luKGNvbmZpZyldO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiTGlzdEJ1Y2tldEludmVudG9yeUNvbmZpZ3VyYXRpb25zXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJMaXN0QnVja2V0SW52ZW50b3J5Q29uZmlndXJhdGlvbnNDb21tYW5kXCIpXG4gICAgLnNjKExpc3RCdWNrZXRJbnZlbnRvcnlDb25maWd1cmF0aW9ucylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIExpc3RCdWNrZXRNZXRyaWNzQ29uZmlndXJhdGlvbnNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSksIG1pZGRsZXdhcmVTZGtTMy5nZXRUaHJvdzIwMEV4Y2VwdGlvbnNQbHVnaW4oY29uZmlnKV07XG59KVxuICAgIC5zKFwiQW1hem9uUzNcIiwgXCJMaXN0QnVja2V0TWV0cmljc0NvbmZpZ3VyYXRpb25zXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJMaXN0QnVja2V0TWV0cmljc0NvbmZpZ3VyYXRpb25zQ29tbWFuZFwiKVxuICAgIC5zYyhMaXN0QnVja2V0TWV0cmljc0NvbmZpZ3VyYXRpb25zKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgTGlzdEJ1Y2tldHNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpLCBtaWRkbGV3YXJlU2RrUzMuZ2V0VGhyb3cyMDBFeGNlcHRpb25zUGx1Z2luKGNvbmZpZyldO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiTGlzdEJ1Y2tldHNcIiwge30pXG4gICAgLm4oXCJTM0NsaWVudFwiLCBcIkxpc3RCdWNrZXRzQ29tbWFuZFwiKVxuICAgIC5zYyhMaXN0QnVja2V0cylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIExpc3REaXJlY3RvcnlCdWNrZXRzQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgVXNlUzNFeHByZXNzQ29udHJvbEVuZHBvaW50OiB7IHR5cGU6IFwic3RhdGljQ29udGV4dFBhcmFtc1wiLCB2YWx1ZTogdHJ1ZSB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKSwgbWlkZGxld2FyZVNka1MzLmdldFRocm93MjAwRXhjZXB0aW9uc1BsdWdpbihjb25maWcpXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIkxpc3REaXJlY3RvcnlCdWNrZXRzXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJMaXN0RGlyZWN0b3J5QnVja2V0c0NvbW1hbmRcIilcbiAgICAuc2MoTGlzdERpcmVjdG9yeUJ1Y2tldHMpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBMaXN0TXVsdGlwYXJ0VXBsb2Fkc0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIEJ1Y2tldDogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJCdWNrZXRcIiB9LFxuICAgIFByZWZpeDogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJQcmVmaXhcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKSwgbWlkZGxld2FyZVNka1MzLmdldFRocm93MjAwRXhjZXB0aW9uc1BsdWdpbihjb25maWcpXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIkxpc3RNdWx0aXBhcnRVcGxvYWRzXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJMaXN0TXVsdGlwYXJ0VXBsb2Fkc0NvbW1hbmRcIilcbiAgICAuc2MoTGlzdE11bHRpcGFydFVwbG9hZHMpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBMaXN0T2JqZWN0c0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIEJ1Y2tldDogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJCdWNrZXRcIiB9LFxuICAgIFByZWZpeDogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJQcmVmaXhcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKSwgbWlkZGxld2FyZVNka1MzLmdldFRocm93MjAwRXhjZXB0aW9uc1BsdWdpbihjb25maWcpXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIkxpc3RPYmplY3RzXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJMaXN0T2JqZWN0c0NvbW1hbmRcIilcbiAgICAuc2MoTGlzdE9iamVjdHMpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBMaXN0T2JqZWN0c1YyQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG4gICAgUHJlZml4OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIlByZWZpeFwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpLCBtaWRkbGV3YXJlU2RrUzMuZ2V0VGhyb3cyMDBFeGNlcHRpb25zUGx1Z2luKGNvbmZpZyldO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiTGlzdE9iamVjdHNWMlwiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiTGlzdE9iamVjdHNWMkNvbW1hbmRcIilcbiAgICAuc2MoTGlzdE9iamVjdHNWMilcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIExpc3RPYmplY3RWZXJzaW9uc0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIEJ1Y2tldDogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJCdWNrZXRcIiB9LFxuICAgIFByZWZpeDogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJQcmVmaXhcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKSwgbWlkZGxld2FyZVNka1MzLmdldFRocm93MjAwRXhjZXB0aW9uc1BsdWdpbihjb25maWcpXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIkxpc3RPYmplY3RWZXJzaW9uc1wiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiTGlzdE9iamVjdFZlcnNpb25zQ29tbWFuZFwiKVxuICAgIC5zYyhMaXN0T2JqZWN0VmVyc2lvbnMpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBMaXN0UGFydHNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbiAgICBLZXk6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiS2V5XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW1xuICAgICAgICBtaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpLFxuICAgICAgICBtaWRkbGV3YXJlU2RrUzMuZ2V0VGhyb3cyMDBFeGNlcHRpb25zUGx1Z2luKGNvbmZpZyksXG4gICAgICAgIG1pZGRsZXdhcmVTc2VjLmdldFNzZWNQbHVnaW4oY29uZmlnKSxcbiAgICBdO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiTGlzdFBhcnRzXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJMaXN0UGFydHNDb21tYW5kXCIpXG4gICAgLnNjKExpc3RQYXJ0cylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFB1dEJ1Y2tldEFiYWNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW1xuICAgICAgICBtaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpLFxuICAgICAgICBtaWRkbGV3YXJlRmxleGlibGVDaGVja3N1bXMuZ2V0RmxleGlibGVDaGVja3N1bXNQbHVnaW4oY29uZmlnLCB7XG4gICAgICAgICAgICByZXF1ZXN0QWxnb3JpdGhtTWVtYmVyOiB7IGh0dHBIZWFkZXI6IFwieC1hbXotc2RrLWNoZWNrc3VtLWFsZ29yaXRobVwiLCBuYW1lOiBcIkNoZWNrc3VtQWxnb3JpdGhtXCIgfSxcbiAgICAgICAgICAgIHJlcXVlc3RDaGVja3N1bVJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgfSksXG4gICAgXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIlB1dEJ1Y2tldEFiYWNcIiwge30pXG4gICAgLm4oXCJTM0NsaWVudFwiLCBcIlB1dEJ1Y2tldEFiYWNDb21tYW5kXCIpXG4gICAgLnNjKFB1dEJ1Y2tldEFiYWMpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBQdXRCdWNrZXRBY2NlbGVyYXRlQ29uZmlndXJhdGlvbkNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFVzZVMzRXhwcmVzc0NvbnRyb2xFbmRwb2ludDogeyB0eXBlOiBcInN0YXRpY0NvbnRleHRQYXJhbXNcIiwgdmFsdWU6IHRydWUgfSxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW1xuICAgICAgICBtaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpLFxuICAgICAgICBtaWRkbGV3YXJlRmxleGlibGVDaGVja3N1bXMuZ2V0RmxleGlibGVDaGVja3N1bXNQbHVnaW4oY29uZmlnLCB7XG4gICAgICAgICAgICByZXF1ZXN0QWxnb3JpdGhtTWVtYmVyOiB7IGh0dHBIZWFkZXI6IFwieC1hbXotc2RrLWNoZWNrc3VtLWFsZ29yaXRobVwiLCBuYW1lOiBcIkNoZWNrc3VtQWxnb3JpdGhtXCIgfSxcbiAgICAgICAgICAgIHJlcXVlc3RDaGVja3N1bVJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgfSksXG4gICAgXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIlB1dEJ1Y2tldEFjY2VsZXJhdGVDb25maWd1cmF0aW9uXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJQdXRCdWNrZXRBY2NlbGVyYXRlQ29uZmlndXJhdGlvbkNvbW1hbmRcIilcbiAgICAuc2MoUHV0QnVja2V0QWNjZWxlcmF0ZUNvbmZpZ3VyYXRpb24pXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBQdXRCdWNrZXRBY2xDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBVc2VTM0V4cHJlc3NDb250cm9sRW5kcG9pbnQ6IHsgdHlwZTogXCJzdGF0aWNDb250ZXh0UGFyYW1zXCIsIHZhbHVlOiB0cnVlIH0sXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgICAgbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKSxcbiAgICAgICAgbWlkZGxld2FyZUZsZXhpYmxlQ2hlY2tzdW1zLmdldEZsZXhpYmxlQ2hlY2tzdW1zUGx1Z2luKGNvbmZpZywge1xuICAgICAgICAgICAgcmVxdWVzdEFsZ29yaXRobU1lbWJlcjogeyBodHRwSGVhZGVyOiBcIngtYW16LXNkay1jaGVja3N1bS1hbGdvcml0aG1cIiwgbmFtZTogXCJDaGVja3N1bUFsZ29yaXRobVwiIH0sXG4gICAgICAgICAgICByZXF1ZXN0Q2hlY2tzdW1SZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSksXG4gICAgXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIlB1dEJ1Y2tldEFjbFwiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiUHV0QnVja2V0QWNsQ29tbWFuZFwiKVxuICAgIC5zYyhQdXRCdWNrZXRBY2wpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBQdXRCdWNrZXRBbmFseXRpY3NDb25maWd1cmF0aW9uQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgVXNlUzNFeHByZXNzQ29udHJvbEVuZHBvaW50OiB7IHR5cGU6IFwic3RhdGljQ29udGV4dFBhcmFtc1wiLCB2YWx1ZTogdHJ1ZSB9LFxuICAgIEJ1Y2tldDogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJCdWNrZXRcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQW1hem9uUzNcIiwgXCJQdXRCdWNrZXRBbmFseXRpY3NDb25maWd1cmF0aW9uXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJQdXRCdWNrZXRBbmFseXRpY3NDb25maWd1cmF0aW9uQ29tbWFuZFwiKVxuICAgIC5zYyhQdXRCdWNrZXRBbmFseXRpY3NDb25maWd1cmF0aW9uKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgUHV0QnVja2V0Q29yc0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFVzZVMzRXhwcmVzc0NvbnRyb2xFbmRwb2ludDogeyB0eXBlOiBcInN0YXRpY0NvbnRleHRQYXJhbXNcIiwgdmFsdWU6IHRydWUgfSxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW1xuICAgICAgICBtaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpLFxuICAgICAgICBtaWRkbGV3YXJlRmxleGlibGVDaGVja3N1bXMuZ2V0RmxleGlibGVDaGVja3N1bXNQbHVnaW4oY29uZmlnLCB7XG4gICAgICAgICAgICByZXF1ZXN0QWxnb3JpdGhtTWVtYmVyOiB7IGh0dHBIZWFkZXI6IFwieC1hbXotc2RrLWNoZWNrc3VtLWFsZ29yaXRobVwiLCBuYW1lOiBcIkNoZWNrc3VtQWxnb3JpdGhtXCIgfSxcbiAgICAgICAgICAgIHJlcXVlc3RDaGVja3N1bVJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9KSxcbiAgICBdO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiUHV0QnVja2V0Q29yc1wiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiUHV0QnVja2V0Q29yc0NvbW1hbmRcIilcbiAgICAuc2MoUHV0QnVja2V0Q29ycylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFB1dEJ1Y2tldEVuY3J5cHRpb25Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBVc2VTM0V4cHJlc3NDb250cm9sRW5kcG9pbnQ6IHsgdHlwZTogXCJzdGF0aWNDb250ZXh0UGFyYW1zXCIsIHZhbHVlOiB0cnVlIH0sXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgICAgbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKSxcbiAgICAgICAgbWlkZGxld2FyZUZsZXhpYmxlQ2hlY2tzdW1zLmdldEZsZXhpYmxlQ2hlY2tzdW1zUGx1Z2luKGNvbmZpZywge1xuICAgICAgICAgICAgcmVxdWVzdEFsZ29yaXRobU1lbWJlcjogeyBodHRwSGVhZGVyOiBcIngtYW16LXNkay1jaGVja3N1bS1hbGdvcml0aG1cIiwgbmFtZTogXCJDaGVja3N1bUFsZ29yaXRobVwiIH0sXG4gICAgICAgICAgICByZXF1ZXN0Q2hlY2tzdW1SZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSksXG4gICAgXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIlB1dEJ1Y2tldEVuY3J5cHRpb25cIiwge30pXG4gICAgLm4oXCJTM0NsaWVudFwiLCBcIlB1dEJ1Y2tldEVuY3J5cHRpb25Db21tYW5kXCIpXG4gICAgLnNjKFB1dEJ1Y2tldEVuY3J5cHRpb24pXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBQdXRCdWNrZXRJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9uQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgVXNlUzNFeHByZXNzQ29udHJvbEVuZHBvaW50OiB7IHR5cGU6IFwic3RhdGljQ29udGV4dFBhcmFtc1wiLCB2YWx1ZTogdHJ1ZSB9LFxuICAgIEJ1Y2tldDogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJCdWNrZXRcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQW1hem9uUzNcIiwgXCJQdXRCdWNrZXRJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9uXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJQdXRCdWNrZXRJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9uQ29tbWFuZFwiKVxuICAgIC5zYyhQdXRCdWNrZXRJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9uKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgUHV0QnVja2V0SW52ZW50b3J5Q29uZmlndXJhdGlvbkNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFVzZVMzRXhwcmVzc0NvbnRyb2xFbmRwb2ludDogeyB0eXBlOiBcInN0YXRpY0NvbnRleHRQYXJhbXNcIiwgdmFsdWU6IHRydWUgfSxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiUHV0QnVja2V0SW52ZW50b3J5Q29uZmlndXJhdGlvblwiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiUHV0QnVja2V0SW52ZW50b3J5Q29uZmlndXJhdGlvbkNvbW1hbmRcIilcbiAgICAuc2MoUHV0QnVja2V0SW52ZW50b3J5Q29uZmlndXJhdGlvbilcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFB1dEJ1Y2tldExpZmVjeWNsZUNvbmZpZ3VyYXRpb25Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBVc2VTM0V4cHJlc3NDb250cm9sRW5kcG9pbnQ6IHsgdHlwZTogXCJzdGF0aWNDb250ZXh0UGFyYW1zXCIsIHZhbHVlOiB0cnVlIH0sXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgICAgbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKSxcbiAgICAgICAgbWlkZGxld2FyZUZsZXhpYmxlQ2hlY2tzdW1zLmdldEZsZXhpYmxlQ2hlY2tzdW1zUGx1Z2luKGNvbmZpZywge1xuICAgICAgICAgICAgcmVxdWVzdEFsZ29yaXRobU1lbWJlcjogeyBodHRwSGVhZGVyOiBcIngtYW16LXNkay1jaGVja3N1bS1hbGdvcml0aG1cIiwgbmFtZTogXCJDaGVja3N1bUFsZ29yaXRobVwiIH0sXG4gICAgICAgICAgICByZXF1ZXN0Q2hlY2tzdW1SZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSksXG4gICAgICAgIG1pZGRsZXdhcmVTZGtTMy5nZXRUaHJvdzIwMEV4Y2VwdGlvbnNQbHVnaW4oY29uZmlnKSxcbiAgICBdO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiUHV0QnVja2V0TGlmZWN5Y2xlQ29uZmlndXJhdGlvblwiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiUHV0QnVja2V0TGlmZWN5Y2xlQ29uZmlndXJhdGlvbkNvbW1hbmRcIilcbiAgICAuc2MoUHV0QnVja2V0TGlmZWN5Y2xlQ29uZmlndXJhdGlvbilcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFB1dEJ1Y2tldExvZ2dpbmdDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBVc2VTM0V4cHJlc3NDb250cm9sRW5kcG9pbnQ6IHsgdHlwZTogXCJzdGF0aWNDb250ZXh0UGFyYW1zXCIsIHZhbHVlOiB0cnVlIH0sXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgICAgbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKSxcbiAgICAgICAgbWlkZGxld2FyZUZsZXhpYmxlQ2hlY2tzdW1zLmdldEZsZXhpYmxlQ2hlY2tzdW1zUGx1Z2luKGNvbmZpZywge1xuICAgICAgICAgICAgcmVxdWVzdEFsZ29yaXRobU1lbWJlcjogeyBodHRwSGVhZGVyOiBcIngtYW16LXNkay1jaGVja3N1bS1hbGdvcml0aG1cIiwgbmFtZTogXCJDaGVja3N1bUFsZ29yaXRobVwiIH0sXG4gICAgICAgICAgICByZXF1ZXN0Q2hlY2tzdW1SZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSksXG4gICAgXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIlB1dEJ1Y2tldExvZ2dpbmdcIiwge30pXG4gICAgLm4oXCJTM0NsaWVudFwiLCBcIlB1dEJ1Y2tldExvZ2dpbmdDb21tYW5kXCIpXG4gICAgLnNjKFB1dEJ1Y2tldExvZ2dpbmcpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBQdXRCdWNrZXRNZXRyaWNzQ29uZmlndXJhdGlvbkNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFVzZVMzRXhwcmVzc0NvbnRyb2xFbmRwb2ludDogeyB0eXBlOiBcInN0YXRpY0NvbnRleHRQYXJhbXNcIiwgdmFsdWU6IHRydWUgfSxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiUHV0QnVja2V0TWV0cmljc0NvbmZpZ3VyYXRpb25cIiwge30pXG4gICAgLm4oXCJTM0NsaWVudFwiLCBcIlB1dEJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9uQ29tbWFuZFwiKVxuICAgIC5zYyhQdXRCdWNrZXRNZXRyaWNzQ29uZmlndXJhdGlvbilcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFB1dEJ1Y2tldE5vdGlmaWNhdGlvbkNvbmZpZ3VyYXRpb25Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBVc2VTM0V4cHJlc3NDb250cm9sRW5kcG9pbnQ6IHsgdHlwZTogXCJzdGF0aWNDb250ZXh0UGFyYW1zXCIsIHZhbHVlOiB0cnVlIH0sXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIlB1dEJ1Y2tldE5vdGlmaWNhdGlvbkNvbmZpZ3VyYXRpb25cIiwge30pXG4gICAgLm4oXCJTM0NsaWVudFwiLCBcIlB1dEJ1Y2tldE5vdGlmaWNhdGlvbkNvbmZpZ3VyYXRpb25Db21tYW5kXCIpXG4gICAgLnNjKFB1dEJ1Y2tldE5vdGlmaWNhdGlvbkNvbmZpZ3VyYXRpb24pXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBQdXRCdWNrZXRPd25lcnNoaXBDb250cm9sc0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFVzZVMzRXhwcmVzc0NvbnRyb2xFbmRwb2ludDogeyB0eXBlOiBcInN0YXRpY0NvbnRleHRQYXJhbXNcIiwgdmFsdWU6IHRydWUgfSxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW1xuICAgICAgICBtaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpLFxuICAgICAgICBtaWRkbGV3YXJlRmxleGlibGVDaGVja3N1bXMuZ2V0RmxleGlibGVDaGVja3N1bXNQbHVnaW4oY29uZmlnLCB7XG4gICAgICAgICAgICByZXF1ZXN0QWxnb3JpdGhtTWVtYmVyOiB7IGh0dHBIZWFkZXI6IFwieC1hbXotc2RrLWNoZWNrc3VtLWFsZ29yaXRobVwiLCBuYW1lOiBcIkNoZWNrc3VtQWxnb3JpdGhtXCIgfSxcbiAgICAgICAgICAgIHJlcXVlc3RDaGVja3N1bVJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9KSxcbiAgICBdO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiUHV0QnVja2V0T3duZXJzaGlwQ29udHJvbHNcIiwge30pXG4gICAgLm4oXCJTM0NsaWVudFwiLCBcIlB1dEJ1Y2tldE93bmVyc2hpcENvbnRyb2xzQ29tbWFuZFwiKVxuICAgIC5zYyhQdXRCdWNrZXRPd25lcnNoaXBDb250cm9scylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFB1dEJ1Y2tldFBvbGljeUNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFVzZVMzRXhwcmVzc0NvbnRyb2xFbmRwb2ludDogeyB0eXBlOiBcInN0YXRpY0NvbnRleHRQYXJhbXNcIiwgdmFsdWU6IHRydWUgfSxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW1xuICAgICAgICBtaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpLFxuICAgICAgICBtaWRkbGV3YXJlRmxleGlibGVDaGVja3N1bXMuZ2V0RmxleGlibGVDaGVja3N1bXNQbHVnaW4oY29uZmlnLCB7XG4gICAgICAgICAgICByZXF1ZXN0QWxnb3JpdGhtTWVtYmVyOiB7IGh0dHBIZWFkZXI6IFwieC1hbXotc2RrLWNoZWNrc3VtLWFsZ29yaXRobVwiLCBuYW1lOiBcIkNoZWNrc3VtQWxnb3JpdGhtXCIgfSxcbiAgICAgICAgICAgIHJlcXVlc3RDaGVja3N1bVJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9KSxcbiAgICBdO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiUHV0QnVja2V0UG9saWN5XCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJQdXRCdWNrZXRQb2xpY3lDb21tYW5kXCIpXG4gICAgLnNjKFB1dEJ1Y2tldFBvbGljeSlcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFB1dEJ1Y2tldFJlcGxpY2F0aW9uQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgVXNlUzNFeHByZXNzQ29udHJvbEVuZHBvaW50OiB7IHR5cGU6IFwic3RhdGljQ29udGV4dFBhcmFtc1wiLCB2YWx1ZTogdHJ1ZSB9LFxuICAgIEJ1Y2tldDogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJCdWNrZXRcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbXG4gICAgICAgIG1pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSksXG4gICAgICAgIG1pZGRsZXdhcmVGbGV4aWJsZUNoZWNrc3Vtcy5nZXRGbGV4aWJsZUNoZWNrc3Vtc1BsdWdpbihjb25maWcsIHtcbiAgICAgICAgICAgIHJlcXVlc3RBbGdvcml0aG1NZW1iZXI6IHsgaHR0cEhlYWRlcjogXCJ4LWFtei1zZGstY2hlY2tzdW0tYWxnb3JpdGhtXCIsIG5hbWU6IFwiQ2hlY2tzdW1BbGdvcml0aG1cIiB9LFxuICAgICAgICAgICAgcmVxdWVzdENoZWNrc3VtUmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0pLFxuICAgIF07XG59KVxuICAgIC5zKFwiQW1hem9uUzNcIiwgXCJQdXRCdWNrZXRSZXBsaWNhdGlvblwiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiUHV0QnVja2V0UmVwbGljYXRpb25Db21tYW5kXCIpXG4gICAgLnNjKFB1dEJ1Y2tldFJlcGxpY2F0aW9uKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgUHV0QnVja2V0UmVxdWVzdFBheW1lbnRDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBVc2VTM0V4cHJlc3NDb250cm9sRW5kcG9pbnQ6IHsgdHlwZTogXCJzdGF0aWNDb250ZXh0UGFyYW1zXCIsIHZhbHVlOiB0cnVlIH0sXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgICAgbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKSxcbiAgICAgICAgbWlkZGxld2FyZUZsZXhpYmxlQ2hlY2tzdW1zLmdldEZsZXhpYmxlQ2hlY2tzdW1zUGx1Z2luKGNvbmZpZywge1xuICAgICAgICAgICAgcmVxdWVzdEFsZ29yaXRobU1lbWJlcjogeyBodHRwSGVhZGVyOiBcIngtYW16LXNkay1jaGVja3N1bS1hbGdvcml0aG1cIiwgbmFtZTogXCJDaGVja3N1bUFsZ29yaXRobVwiIH0sXG4gICAgICAgICAgICByZXF1ZXN0Q2hlY2tzdW1SZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSksXG4gICAgXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIlB1dEJ1Y2tldFJlcXVlc3RQYXltZW50XCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJQdXRCdWNrZXRSZXF1ZXN0UGF5bWVudENvbW1hbmRcIilcbiAgICAuc2MoUHV0QnVja2V0UmVxdWVzdFBheW1lbnQpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBQdXRCdWNrZXRUYWdnaW5nQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgVXNlUzNFeHByZXNzQ29udHJvbEVuZHBvaW50OiB7IHR5cGU6IFwic3RhdGljQ29udGV4dFBhcmFtc1wiLCB2YWx1ZTogdHJ1ZSB9LFxuICAgIEJ1Y2tldDogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJCdWNrZXRcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbXG4gICAgICAgIG1pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSksXG4gICAgICAgIG1pZGRsZXdhcmVGbGV4aWJsZUNoZWNrc3Vtcy5nZXRGbGV4aWJsZUNoZWNrc3Vtc1BsdWdpbihjb25maWcsIHtcbiAgICAgICAgICAgIHJlcXVlc3RBbGdvcml0aG1NZW1iZXI6IHsgaHR0cEhlYWRlcjogXCJ4LWFtei1zZGstY2hlY2tzdW0tYWxnb3JpdGhtXCIsIG5hbWU6IFwiQ2hlY2tzdW1BbGdvcml0aG1cIiB9LFxuICAgICAgICAgICAgcmVxdWVzdENoZWNrc3VtUmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0pLFxuICAgIF07XG59KVxuICAgIC5zKFwiQW1hem9uUzNcIiwgXCJQdXRCdWNrZXRUYWdnaW5nXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJQdXRCdWNrZXRUYWdnaW5nQ29tbWFuZFwiKVxuICAgIC5zYyhQdXRCdWNrZXRUYWdnaW5nKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgUHV0QnVja2V0VmVyc2lvbmluZ0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFVzZVMzRXhwcmVzc0NvbnRyb2xFbmRwb2ludDogeyB0eXBlOiBcInN0YXRpY0NvbnRleHRQYXJhbXNcIiwgdmFsdWU6IHRydWUgfSxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW1xuICAgICAgICBtaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpLFxuICAgICAgICBtaWRkbGV3YXJlRmxleGlibGVDaGVja3N1bXMuZ2V0RmxleGlibGVDaGVja3N1bXNQbHVnaW4oY29uZmlnLCB7XG4gICAgICAgICAgICByZXF1ZXN0QWxnb3JpdGhtTWVtYmVyOiB7IGh0dHBIZWFkZXI6IFwieC1hbXotc2RrLWNoZWNrc3VtLWFsZ29yaXRobVwiLCBuYW1lOiBcIkNoZWNrc3VtQWxnb3JpdGhtXCIgfSxcbiAgICAgICAgICAgIHJlcXVlc3RDaGVja3N1bVJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9KSxcbiAgICBdO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiUHV0QnVja2V0VmVyc2lvbmluZ1wiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiUHV0QnVja2V0VmVyc2lvbmluZ0NvbW1hbmRcIilcbiAgICAuc2MoUHV0QnVja2V0VmVyc2lvbmluZylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFB1dEJ1Y2tldFdlYnNpdGVDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBVc2VTM0V4cHJlc3NDb250cm9sRW5kcG9pbnQ6IHsgdHlwZTogXCJzdGF0aWNDb250ZXh0UGFyYW1zXCIsIHZhbHVlOiB0cnVlIH0sXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgICAgbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKSxcbiAgICAgICAgbWlkZGxld2FyZUZsZXhpYmxlQ2hlY2tzdW1zLmdldEZsZXhpYmxlQ2hlY2tzdW1zUGx1Z2luKGNvbmZpZywge1xuICAgICAgICAgICAgcmVxdWVzdEFsZ29yaXRobU1lbWJlcjogeyBodHRwSGVhZGVyOiBcIngtYW16LXNkay1jaGVja3N1bS1hbGdvcml0aG1cIiwgbmFtZTogXCJDaGVja3N1bUFsZ29yaXRobVwiIH0sXG4gICAgICAgICAgICByZXF1ZXN0Q2hlY2tzdW1SZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSksXG4gICAgXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIlB1dEJ1Y2tldFdlYnNpdGVcIiwge30pXG4gICAgLm4oXCJTM0NsaWVudFwiLCBcIlB1dEJ1Y2tldFdlYnNpdGVDb21tYW5kXCIpXG4gICAgLnNjKFB1dEJ1Y2tldFdlYnNpdGUpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBQdXRPYmplY3RBY2xDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbiAgICBLZXk6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiS2V5XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW1xuICAgICAgICBtaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpLFxuICAgICAgICBtaWRkbGV3YXJlRmxleGlibGVDaGVja3N1bXMuZ2V0RmxleGlibGVDaGVja3N1bXNQbHVnaW4oY29uZmlnLCB7XG4gICAgICAgICAgICByZXF1ZXN0QWxnb3JpdGhtTWVtYmVyOiB7IGh0dHBIZWFkZXI6IFwieC1hbXotc2RrLWNoZWNrc3VtLWFsZ29yaXRobVwiLCBuYW1lOiBcIkNoZWNrc3VtQWxnb3JpdGhtXCIgfSxcbiAgICAgICAgICAgIHJlcXVlc3RDaGVja3N1bVJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9KSxcbiAgICAgICAgbWlkZGxld2FyZVNka1MzLmdldFRocm93MjAwRXhjZXB0aW9uc1BsdWdpbihjb25maWcpLFxuICAgIF07XG59KVxuICAgIC5zKFwiQW1hem9uUzNcIiwgXCJQdXRPYmplY3RBY2xcIiwge30pXG4gICAgLm4oXCJTM0NsaWVudFwiLCBcIlB1dE9iamVjdEFjbENvbW1hbmRcIilcbiAgICAuc2MoUHV0T2JqZWN0QWNsKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgUHV0T2JqZWN0Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG4gICAgS2V5OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIktleVwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgICAgbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKSxcbiAgICAgICAgbWlkZGxld2FyZUZsZXhpYmxlQ2hlY2tzdW1zLmdldEZsZXhpYmxlQ2hlY2tzdW1zUGx1Z2luKGNvbmZpZywge1xuICAgICAgICAgICAgcmVxdWVzdEFsZ29yaXRobU1lbWJlcjogeyBodHRwSGVhZGVyOiBcIngtYW16LXNkay1jaGVja3N1bS1hbGdvcml0aG1cIiwgbmFtZTogXCJDaGVja3N1bUFsZ29yaXRobVwiIH0sXG4gICAgICAgICAgICByZXF1ZXN0Q2hlY2tzdW1SZXF1aXJlZDogZmFsc2UsXG4gICAgICAgIH0pLFxuICAgICAgICBtaWRkbGV3YXJlU2RrUzMuZ2V0Q2hlY2tDb250ZW50TGVuZ3RoSGVhZGVyUGx1Z2luKGNvbmZpZyksXG4gICAgICAgIG1pZGRsZXdhcmVTZGtTMy5nZXRUaHJvdzIwMEV4Y2VwdGlvbnNQbHVnaW4oY29uZmlnKSxcbiAgICAgICAgbWlkZGxld2FyZVNzZWMuZ2V0U3NlY1BsdWdpbihjb25maWcpLFxuICAgIF07XG59KVxuICAgIC5zKFwiQW1hem9uUzNcIiwgXCJQdXRPYmplY3RcIiwge30pXG4gICAgLm4oXCJTM0NsaWVudFwiLCBcIlB1dE9iamVjdENvbW1hbmRcIilcbiAgICAuc2MoUHV0T2JqZWN0KVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgUHV0T2JqZWN0TGVnYWxIb2xkQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgICAgbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKSxcbiAgICAgICAgbWlkZGxld2FyZUZsZXhpYmxlQ2hlY2tzdW1zLmdldEZsZXhpYmxlQ2hlY2tzdW1zUGx1Z2luKGNvbmZpZywge1xuICAgICAgICAgICAgcmVxdWVzdEFsZ29yaXRobU1lbWJlcjogeyBodHRwSGVhZGVyOiBcIngtYW16LXNkay1jaGVja3N1bS1hbGdvcml0aG1cIiwgbmFtZTogXCJDaGVja3N1bUFsZ29yaXRobVwiIH0sXG4gICAgICAgICAgICByZXF1ZXN0Q2hlY2tzdW1SZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSksXG4gICAgICAgIG1pZGRsZXdhcmVTZGtTMy5nZXRUaHJvdzIwMEV4Y2VwdGlvbnNQbHVnaW4oY29uZmlnKSxcbiAgICBdO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiUHV0T2JqZWN0TGVnYWxIb2xkXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJQdXRPYmplY3RMZWdhbEhvbGRDb21tYW5kXCIpXG4gICAgLnNjKFB1dE9iamVjdExlZ2FsSG9sZClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFB1dE9iamVjdExvY2tDb25maWd1cmF0aW9uQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgICAgbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKSxcbiAgICAgICAgbWlkZGxld2FyZUZsZXhpYmxlQ2hlY2tzdW1zLmdldEZsZXhpYmxlQ2hlY2tzdW1zUGx1Z2luKGNvbmZpZywge1xuICAgICAgICAgICAgcmVxdWVzdEFsZ29yaXRobU1lbWJlcjogeyBodHRwSGVhZGVyOiBcIngtYW16LXNkay1jaGVja3N1bS1hbGdvcml0aG1cIiwgbmFtZTogXCJDaGVja3N1bUFsZ29yaXRobVwiIH0sXG4gICAgICAgICAgICByZXF1ZXN0Q2hlY2tzdW1SZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSksXG4gICAgICAgIG1pZGRsZXdhcmVTZGtTMy5nZXRUaHJvdzIwMEV4Y2VwdGlvbnNQbHVnaW4oY29uZmlnKSxcbiAgICBdO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiUHV0T2JqZWN0TG9ja0NvbmZpZ3VyYXRpb25cIiwge30pXG4gICAgLm4oXCJTM0NsaWVudFwiLCBcIlB1dE9iamVjdExvY2tDb25maWd1cmF0aW9uQ29tbWFuZFwiKVxuICAgIC5zYyhQdXRPYmplY3RMb2NrQ29uZmlndXJhdGlvbilcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFB1dE9iamVjdFJldGVudGlvbkNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIEJ1Y2tldDogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJCdWNrZXRcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbXG4gICAgICAgIG1pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSksXG4gICAgICAgIG1pZGRsZXdhcmVGbGV4aWJsZUNoZWNrc3Vtcy5nZXRGbGV4aWJsZUNoZWNrc3Vtc1BsdWdpbihjb25maWcsIHtcbiAgICAgICAgICAgIHJlcXVlc3RBbGdvcml0aG1NZW1iZXI6IHsgaHR0cEhlYWRlcjogXCJ4LWFtei1zZGstY2hlY2tzdW0tYWxnb3JpdGhtXCIsIG5hbWU6IFwiQ2hlY2tzdW1BbGdvcml0aG1cIiB9LFxuICAgICAgICAgICAgcmVxdWVzdENoZWNrc3VtUmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0pLFxuICAgICAgICBtaWRkbGV3YXJlU2RrUzMuZ2V0VGhyb3cyMDBFeGNlcHRpb25zUGx1Z2luKGNvbmZpZyksXG4gICAgXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIlB1dE9iamVjdFJldGVudGlvblwiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiUHV0T2JqZWN0UmV0ZW50aW9uQ29tbWFuZFwiKVxuICAgIC5zYyhQdXRPYmplY3RSZXRlbnRpb24pXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBQdXRPYmplY3RUYWdnaW5nQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgICAgbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKSxcbiAgICAgICAgbWlkZGxld2FyZUZsZXhpYmxlQ2hlY2tzdW1zLmdldEZsZXhpYmxlQ2hlY2tzdW1zUGx1Z2luKGNvbmZpZywge1xuICAgICAgICAgICAgcmVxdWVzdEFsZ29yaXRobU1lbWJlcjogeyBodHRwSGVhZGVyOiBcIngtYW16LXNkay1jaGVja3N1bS1hbGdvcml0aG1cIiwgbmFtZTogXCJDaGVja3N1bUFsZ29yaXRobVwiIH0sXG4gICAgICAgICAgICByZXF1ZXN0Q2hlY2tzdW1SZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSksXG4gICAgICAgIG1pZGRsZXdhcmVTZGtTMy5nZXRUaHJvdzIwMEV4Y2VwdGlvbnNQbHVnaW4oY29uZmlnKSxcbiAgICBdO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiUHV0T2JqZWN0VGFnZ2luZ1wiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiUHV0T2JqZWN0VGFnZ2luZ0NvbW1hbmRcIilcbiAgICAuc2MoUHV0T2JqZWN0VGFnZ2luZylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFB1dFB1YmxpY0FjY2Vzc0Jsb2NrQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgVXNlUzNFeHByZXNzQ29udHJvbEVuZHBvaW50OiB7IHR5cGU6IFwic3RhdGljQ29udGV4dFBhcmFtc1wiLCB2YWx1ZTogdHJ1ZSB9LFxuICAgIEJ1Y2tldDogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJCdWNrZXRcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbXG4gICAgICAgIG1pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSksXG4gICAgICAgIG1pZGRsZXdhcmVGbGV4aWJsZUNoZWNrc3Vtcy5nZXRGbGV4aWJsZUNoZWNrc3Vtc1BsdWdpbihjb25maWcsIHtcbiAgICAgICAgICAgIHJlcXVlc3RBbGdvcml0aG1NZW1iZXI6IHsgaHR0cEhlYWRlcjogXCJ4LWFtei1zZGstY2hlY2tzdW0tYWxnb3JpdGhtXCIsIG5hbWU6IFwiQ2hlY2tzdW1BbGdvcml0aG1cIiB9LFxuICAgICAgICAgICAgcmVxdWVzdENoZWNrc3VtUmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0pLFxuICAgIF07XG59KVxuICAgIC5zKFwiQW1hem9uUzNcIiwgXCJQdXRQdWJsaWNBY2Nlc3NCbG9ja1wiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiUHV0UHVibGljQWNjZXNzQmxvY2tDb21tYW5kXCIpXG4gICAgLnNjKFB1dFB1YmxpY0FjY2Vzc0Jsb2NrKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgUmVuYW1lT2JqZWN0Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG4gICAgS2V5OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIktleVwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpLCBtaWRkbGV3YXJlU2RrUzMuZ2V0VGhyb3cyMDBFeGNlcHRpb25zUGx1Z2luKGNvbmZpZyldO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiUmVuYW1lT2JqZWN0XCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJSZW5hbWVPYmplY3RDb21tYW5kXCIpXG4gICAgLnNjKFJlbmFtZU9iamVjdClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFJlc3RvcmVPYmplY3RDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW1xuICAgICAgICBtaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpLFxuICAgICAgICBtaWRkbGV3YXJlRmxleGlibGVDaGVja3N1bXMuZ2V0RmxleGlibGVDaGVja3N1bXNQbHVnaW4oY29uZmlnLCB7XG4gICAgICAgICAgICByZXF1ZXN0QWxnb3JpdGhtTWVtYmVyOiB7IGh0dHBIZWFkZXI6IFwieC1hbXotc2RrLWNoZWNrc3VtLWFsZ29yaXRobVwiLCBuYW1lOiBcIkNoZWNrc3VtQWxnb3JpdGhtXCIgfSxcbiAgICAgICAgICAgIHJlcXVlc3RDaGVja3N1bVJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgfSksXG4gICAgICAgIG1pZGRsZXdhcmVTZGtTMy5nZXRUaHJvdzIwMEV4Y2VwdGlvbnNQbHVnaW4oY29uZmlnKSxcbiAgICBdO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiUmVzdG9yZU9iamVjdFwiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiUmVzdG9yZU9iamVjdENvbW1hbmRcIilcbiAgICAuc2MoUmVzdG9yZU9iamVjdClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFNlbGVjdE9iamVjdENvbnRlbnRDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW1xuICAgICAgICBtaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpLFxuICAgICAgICBtaWRkbGV3YXJlU2RrUzMuZ2V0VGhyb3cyMDBFeGNlcHRpb25zUGx1Z2luKGNvbmZpZyksXG4gICAgICAgIG1pZGRsZXdhcmVTc2VjLmdldFNzZWNQbHVnaW4oY29uZmlnKSxcbiAgICBdO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiU2VsZWN0T2JqZWN0Q29udGVudFwiLCB7XG4gICAgZXZlbnRTdHJlYW06IHtcbiAgICAgICAgb3V0cHV0OiB0cnVlLFxuICAgIH0sXG59KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJTZWxlY3RPYmplY3RDb250ZW50Q29tbWFuZFwiKVxuICAgIC5zYyhTZWxlY3RPYmplY3RDb250ZW50KVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgVXBkYXRlQnVja2V0TWV0YWRhdGFJbnZlbnRvcnlUYWJsZUNvbmZpZ3VyYXRpb25Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBVc2VTM0V4cHJlc3NDb250cm9sRW5kcG9pbnQ6IHsgdHlwZTogXCJzdGF0aWNDb250ZXh0UGFyYW1zXCIsIHZhbHVlOiB0cnVlIH0sXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgICAgbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKSxcbiAgICAgICAgbWlkZGxld2FyZUZsZXhpYmxlQ2hlY2tzdW1zLmdldEZsZXhpYmxlQ2hlY2tzdW1zUGx1Z2luKGNvbmZpZywge1xuICAgICAgICAgICAgcmVxdWVzdEFsZ29yaXRobU1lbWJlcjogeyBodHRwSGVhZGVyOiBcIngtYW16LXNkay1jaGVja3N1bS1hbGdvcml0aG1cIiwgbmFtZTogXCJDaGVja3N1bUFsZ29yaXRobVwiIH0sXG4gICAgICAgICAgICByZXF1ZXN0Q2hlY2tzdW1SZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSksXG4gICAgXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIlVwZGF0ZUJ1Y2tldE1ldGFkYXRhSW52ZW50b3J5VGFibGVDb25maWd1cmF0aW9uXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJVcGRhdGVCdWNrZXRNZXRhZGF0YUludmVudG9yeVRhYmxlQ29uZmlndXJhdGlvbkNvbW1hbmRcIilcbiAgICAuc2MoVXBkYXRlQnVja2V0TWV0YWRhdGFJbnZlbnRvcnlUYWJsZUNvbmZpZ3VyYXRpb24pXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBVcGRhdGVCdWNrZXRNZXRhZGF0YUpvdXJuYWxUYWJsZUNvbmZpZ3VyYXRpb25Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBVc2VTM0V4cHJlc3NDb250cm9sRW5kcG9pbnQ6IHsgdHlwZTogXCJzdGF0aWNDb250ZXh0UGFyYW1zXCIsIHZhbHVlOiB0cnVlIH0sXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgICAgbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKSxcbiAgICAgICAgbWlkZGxld2FyZUZsZXhpYmxlQ2hlY2tzdW1zLmdldEZsZXhpYmxlQ2hlY2tzdW1zUGx1Z2luKGNvbmZpZywge1xuICAgICAgICAgICAgcmVxdWVzdEFsZ29yaXRobU1lbWJlcjogeyBodHRwSGVhZGVyOiBcIngtYW16LXNkay1jaGVja3N1bS1hbGdvcml0aG1cIiwgbmFtZTogXCJDaGVja3N1bUFsZ29yaXRobVwiIH0sXG4gICAgICAgICAgICByZXF1ZXN0Q2hlY2tzdW1SZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSksXG4gICAgXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIlVwZGF0ZUJ1Y2tldE1ldGFkYXRhSm91cm5hbFRhYmxlQ29uZmlndXJhdGlvblwiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiVXBkYXRlQnVja2V0TWV0YWRhdGFKb3VybmFsVGFibGVDb25maWd1cmF0aW9uQ29tbWFuZFwiKVxuICAgIC5zYyhVcGRhdGVCdWNrZXRNZXRhZGF0YUpvdXJuYWxUYWJsZUNvbmZpZ3VyYXRpb24pXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBVcGxvYWRQYXJ0Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG4gICAgS2V5OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIktleVwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgICAgbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKSxcbiAgICAgICAgbWlkZGxld2FyZUZsZXhpYmxlQ2hlY2tzdW1zLmdldEZsZXhpYmxlQ2hlY2tzdW1zUGx1Z2luKGNvbmZpZywge1xuICAgICAgICAgICAgcmVxdWVzdEFsZ29yaXRobU1lbWJlcjogeyBodHRwSGVhZGVyOiBcIngtYW16LXNkay1jaGVja3N1bS1hbGdvcml0aG1cIiwgbmFtZTogXCJDaGVja3N1bUFsZ29yaXRobVwiIH0sXG4gICAgICAgICAgICByZXF1ZXN0Q2hlY2tzdW1SZXF1aXJlZDogZmFsc2UsXG4gICAgICAgIH0pLFxuICAgICAgICBtaWRkbGV3YXJlU2RrUzMuZ2V0VGhyb3cyMDBFeGNlcHRpb25zUGx1Z2luKGNvbmZpZyksXG4gICAgICAgIG1pZGRsZXdhcmVTc2VjLmdldFNzZWNQbHVnaW4oY29uZmlnKSxcbiAgICBdO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiVXBsb2FkUGFydFwiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiVXBsb2FkUGFydENvbW1hbmRcIilcbiAgICAuc2MoVXBsb2FkUGFydClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFVwbG9hZFBhcnRDb3B5Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgRGlzYWJsZVMzRXhwcmVzc1Nlc3Npb25BdXRoOiB7IHR5cGU6IFwic3RhdGljQ29udGV4dFBhcmFtc1wiLCB2YWx1ZTogdHJ1ZSB9LFxuICAgIEJ1Y2tldDogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJCdWNrZXRcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbXG4gICAgICAgIG1pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSksXG4gICAgICAgIG1pZGRsZXdhcmVTZGtTMy5nZXRUaHJvdzIwMEV4Y2VwdGlvbnNQbHVnaW4oY29uZmlnKSxcbiAgICAgICAgbWlkZGxld2FyZVNzZWMuZ2V0U3NlY1BsdWdpbihjb25maWcpLFxuICAgIF07XG59KVxuICAgIC5zKFwiQW1hem9uUzNcIiwgXCJVcGxvYWRQYXJ0Q29weVwiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiVXBsb2FkUGFydENvcHlDb21tYW5kXCIpXG4gICAgLnNjKFVwbG9hZFBhcnRDb3B5KVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgV3JpdGVHZXRPYmplY3RSZXNwb25zZUNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFVzZU9iamVjdExhbWJkYUVuZHBvaW50OiB7IHR5cGU6IFwic3RhdGljQ29udGV4dFBhcmFtc1wiLCB2YWx1ZTogdHJ1ZSB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQW1hem9uUzNcIiwgXCJXcml0ZUdldE9iamVjdFJlc3BvbnNlXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJXcml0ZUdldE9iamVjdFJlc3BvbnNlQ29tbWFuZFwiKVxuICAgIC5zYyhXcml0ZUdldE9iamVjdFJlc3BvbnNlKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY29uc3QgY29tbWFuZHMgPSB7XG4gICAgQWJvcnRNdWx0aXBhcnRVcGxvYWRDb21tYW5kLFxuICAgIENvbXBsZXRlTXVsdGlwYXJ0VXBsb2FkQ29tbWFuZCxcbiAgICBDb3B5T2JqZWN0Q29tbWFuZCxcbiAgICBDcmVhdGVCdWNrZXRDb21tYW5kLFxuICAgIENyZWF0ZUJ1Y2tldE1ldGFkYXRhQ29uZmlndXJhdGlvbkNvbW1hbmQsXG4gICAgQ3JlYXRlQnVja2V0TWV0YWRhdGFUYWJsZUNvbmZpZ3VyYXRpb25Db21tYW5kLFxuICAgIENyZWF0ZU11bHRpcGFydFVwbG9hZENvbW1hbmQsXG4gICAgQ3JlYXRlU2Vzc2lvbkNvbW1hbmQsXG4gICAgRGVsZXRlQnVja2V0Q29tbWFuZCxcbiAgICBEZWxldGVCdWNrZXRBbmFseXRpY3NDb25maWd1cmF0aW9uQ29tbWFuZCxcbiAgICBEZWxldGVCdWNrZXRDb3JzQ29tbWFuZCxcbiAgICBEZWxldGVCdWNrZXRFbmNyeXB0aW9uQ29tbWFuZCxcbiAgICBEZWxldGVCdWNrZXRJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9uQ29tbWFuZCxcbiAgICBEZWxldGVCdWNrZXRJbnZlbnRvcnlDb25maWd1cmF0aW9uQ29tbWFuZCxcbiAgICBEZWxldGVCdWNrZXRMaWZlY3ljbGVDb21tYW5kLFxuICAgIERlbGV0ZUJ1Y2tldE1ldGFkYXRhQ29uZmlndXJhdGlvbkNvbW1hbmQsXG4gICAgRGVsZXRlQnVja2V0TWV0YWRhdGFUYWJsZUNvbmZpZ3VyYXRpb25Db21tYW5kLFxuICAgIERlbGV0ZUJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9uQ29tbWFuZCxcbiAgICBEZWxldGVCdWNrZXRPd25lcnNoaXBDb250cm9sc0NvbW1hbmQsXG4gICAgRGVsZXRlQnVja2V0UG9saWN5Q29tbWFuZCxcbiAgICBEZWxldGVCdWNrZXRSZXBsaWNhdGlvbkNvbW1hbmQsXG4gICAgRGVsZXRlQnVja2V0VGFnZ2luZ0NvbW1hbmQsXG4gICAgRGVsZXRlQnVja2V0V2Vic2l0ZUNvbW1hbmQsXG4gICAgRGVsZXRlT2JqZWN0Q29tbWFuZCxcbiAgICBEZWxldGVPYmplY3RzQ29tbWFuZCxcbiAgICBEZWxldGVPYmplY3RUYWdnaW5nQ29tbWFuZCxcbiAgICBEZWxldGVQdWJsaWNBY2Nlc3NCbG9ja0NvbW1hbmQsXG4gICAgR2V0QnVja2V0QWJhY0NvbW1hbmQsXG4gICAgR2V0QnVja2V0QWNjZWxlcmF0ZUNvbmZpZ3VyYXRpb25Db21tYW5kLFxuICAgIEdldEJ1Y2tldEFjbENvbW1hbmQsXG4gICAgR2V0QnVja2V0QW5hbHl0aWNzQ29uZmlndXJhdGlvbkNvbW1hbmQsXG4gICAgR2V0QnVja2V0Q29yc0NvbW1hbmQsXG4gICAgR2V0QnVja2V0RW5jcnlwdGlvbkNvbW1hbmQsXG4gICAgR2V0QnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvbkNvbW1hbmQsXG4gICAgR2V0QnVja2V0SW52ZW50b3J5Q29uZmlndXJhdGlvbkNvbW1hbmQsXG4gICAgR2V0QnVja2V0TGlmZWN5Y2xlQ29uZmlndXJhdGlvbkNvbW1hbmQsXG4gICAgR2V0QnVja2V0TG9jYXRpb25Db21tYW5kLFxuICAgIEdldEJ1Y2tldExvZ2dpbmdDb21tYW5kLFxuICAgIEdldEJ1Y2tldE1ldGFkYXRhQ29uZmlndXJhdGlvbkNvbW1hbmQsXG4gICAgR2V0QnVja2V0TWV0YWRhdGFUYWJsZUNvbmZpZ3VyYXRpb25Db21tYW5kLFxuICAgIEdldEJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9uQ29tbWFuZCxcbiAgICBHZXRCdWNrZXROb3RpZmljYXRpb25Db25maWd1cmF0aW9uQ29tbWFuZCxcbiAgICBHZXRCdWNrZXRPd25lcnNoaXBDb250cm9sc0NvbW1hbmQsXG4gICAgR2V0QnVja2V0UG9saWN5Q29tbWFuZCxcbiAgICBHZXRCdWNrZXRQb2xpY3lTdGF0dXNDb21tYW5kLFxuICAgIEdldEJ1Y2tldFJlcGxpY2F0aW9uQ29tbWFuZCxcbiAgICBHZXRCdWNrZXRSZXF1ZXN0UGF5bWVudENvbW1hbmQsXG4gICAgR2V0QnVja2V0VGFnZ2luZ0NvbW1hbmQsXG4gICAgR2V0QnVja2V0VmVyc2lvbmluZ0NvbW1hbmQsXG4gICAgR2V0QnVja2V0V2Vic2l0ZUNvbW1hbmQsXG4gICAgR2V0T2JqZWN0Q29tbWFuZCxcbiAgICBHZXRPYmplY3RBY2xDb21tYW5kLFxuICAgIEdldE9iamVjdEF0dHJpYnV0ZXNDb21tYW5kLFxuICAgIEdldE9iamVjdExlZ2FsSG9sZENvbW1hbmQsXG4gICAgR2V0T2JqZWN0TG9ja0NvbmZpZ3VyYXRpb25Db21tYW5kLFxuICAgIEdldE9iamVjdFJldGVudGlvbkNvbW1hbmQsXG4gICAgR2V0T2JqZWN0VGFnZ2luZ0NvbW1hbmQsXG4gICAgR2V0T2JqZWN0VG9ycmVudENvbW1hbmQsXG4gICAgR2V0UHVibGljQWNjZXNzQmxvY2tDb21tYW5kLFxuICAgIEhlYWRCdWNrZXRDb21tYW5kLFxuICAgIEhlYWRPYmplY3RDb21tYW5kLFxuICAgIExpc3RCdWNrZXRBbmFseXRpY3NDb25maWd1cmF0aW9uc0NvbW1hbmQsXG4gICAgTGlzdEJ1Y2tldEludGVsbGlnZW50VGllcmluZ0NvbmZpZ3VyYXRpb25zQ29tbWFuZCxcbiAgICBMaXN0QnVja2V0SW52ZW50b3J5Q29uZmlndXJhdGlvbnNDb21tYW5kLFxuICAgIExpc3RCdWNrZXRNZXRyaWNzQ29uZmlndXJhdGlvbnNDb21tYW5kLFxuICAgIExpc3RCdWNrZXRzQ29tbWFuZCxcbiAgICBMaXN0RGlyZWN0b3J5QnVja2V0c0NvbW1hbmQsXG4gICAgTGlzdE11bHRpcGFydFVwbG9hZHNDb21tYW5kLFxuICAgIExpc3RPYmplY3RzQ29tbWFuZCxcbiAgICBMaXN0T2JqZWN0c1YyQ29tbWFuZCxcbiAgICBMaXN0T2JqZWN0VmVyc2lvbnNDb21tYW5kLFxuICAgIExpc3RQYXJ0c0NvbW1hbmQsXG4gICAgUHV0QnVja2V0QWJhY0NvbW1hbmQsXG4gICAgUHV0QnVja2V0QWNjZWxlcmF0ZUNvbmZpZ3VyYXRpb25Db21tYW5kLFxuICAgIFB1dEJ1Y2tldEFjbENvbW1hbmQsXG4gICAgUHV0QnVja2V0QW5hbHl0aWNzQ29uZmlndXJhdGlvbkNvbW1hbmQsXG4gICAgUHV0QnVja2V0Q29yc0NvbW1hbmQsXG4gICAgUHV0QnVja2V0RW5jcnlwdGlvbkNvbW1hbmQsXG4gICAgUHV0QnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvbkNvbW1hbmQsXG4gICAgUHV0QnVja2V0SW52ZW50b3J5Q29uZmlndXJhdGlvbkNvbW1hbmQsXG4gICAgUHV0QnVja2V0TGlmZWN5Y2xlQ29uZmlndXJhdGlvbkNvbW1hbmQsXG4gICAgUHV0QnVja2V0TG9nZ2luZ0NvbW1hbmQsXG4gICAgUHV0QnVja2V0TWV0cmljc0NvbmZpZ3VyYXRpb25Db21tYW5kLFxuICAgIFB1dEJ1Y2tldE5vdGlmaWNhdGlvbkNvbmZpZ3VyYXRpb25Db21tYW5kLFxuICAgIFB1dEJ1Y2tldE93bmVyc2hpcENvbnRyb2xzQ29tbWFuZCxcbiAgICBQdXRCdWNrZXRQb2xpY3lDb21tYW5kLFxuICAgIFB1dEJ1Y2tldFJlcGxpY2F0aW9uQ29tbWFuZCxcbiAgICBQdXRCdWNrZXRSZXF1ZXN0UGF5bWVudENvbW1hbmQsXG4gICAgUHV0QnVja2V0VGFnZ2luZ0NvbW1hbmQsXG4gICAgUHV0QnVja2V0VmVyc2lvbmluZ0NvbW1hbmQsXG4gICAgUHV0QnVja2V0V2Vic2l0ZUNvbW1hbmQsXG4gICAgUHV0T2JqZWN0Q29tbWFuZCxcbiAgICBQdXRPYmplY3RBY2xDb21tYW5kLFxuICAgIFB1dE9iamVjdExlZ2FsSG9sZENvbW1hbmQsXG4gICAgUHV0T2JqZWN0TG9ja0NvbmZpZ3VyYXRpb25Db21tYW5kLFxuICAgIFB1dE9iamVjdFJldGVudGlvbkNvbW1hbmQsXG4gICAgUHV0T2JqZWN0VGFnZ2luZ0NvbW1hbmQsXG4gICAgUHV0UHVibGljQWNjZXNzQmxvY2tDb21tYW5kLFxuICAgIFJlbmFtZU9iamVjdENvbW1hbmQsXG4gICAgUmVzdG9yZU9iamVjdENvbW1hbmQsXG4gICAgU2VsZWN0T2JqZWN0Q29udGVudENvbW1hbmQsXG4gICAgVXBkYXRlQnVja2V0TWV0YWRhdGFJbnZlbnRvcnlUYWJsZUNvbmZpZ3VyYXRpb25Db21tYW5kLFxuICAgIFVwZGF0ZUJ1Y2tldE1ldGFkYXRhSm91cm5hbFRhYmxlQ29uZmlndXJhdGlvbkNvbW1hbmQsXG4gICAgVXBsb2FkUGFydENvbW1hbmQsXG4gICAgVXBsb2FkUGFydENvcHlDb21tYW5kLFxuICAgIFdyaXRlR2V0T2JqZWN0UmVzcG9uc2VDb21tYW5kLFxufTtcbmNsYXNzIFMzIGV4dGVuZHMgUzNDbGllbnQge1xufVxuc21pdGh5Q2xpZW50LmNyZWF0ZUFnZ3JlZ2F0ZWRDbGllbnQoY29tbWFuZHMsIFMzKTtcblxuY29uc3QgcGFnaW5hdGVMaXN0QnVja2V0cyA9IGNvcmUuY3JlYXRlUGFnaW5hdG9yKFMzQ2xpZW50LCBMaXN0QnVja2V0c0NvbW1hbmQsIFwiQ29udGludWF0aW9uVG9rZW5cIiwgXCJDb250aW51YXRpb25Ub2tlblwiLCBcIk1heEJ1Y2tldHNcIik7XG5cbmNvbnN0IHBhZ2luYXRlTGlzdERpcmVjdG9yeUJ1Y2tldHMgPSBjb3JlLmNyZWF0ZVBhZ2luYXRvcihTM0NsaWVudCwgTGlzdERpcmVjdG9yeUJ1Y2tldHNDb21tYW5kLCBcIkNvbnRpbnVhdGlvblRva2VuXCIsIFwiQ29udGludWF0aW9uVG9rZW5cIiwgXCJNYXhEaXJlY3RvcnlCdWNrZXRzXCIpO1xuXG5jb25zdCBwYWdpbmF0ZUxpc3RPYmplY3RzVjIgPSBjb3JlLmNyZWF0ZVBhZ2luYXRvcihTM0NsaWVudCwgTGlzdE9iamVjdHNWMkNvbW1hbmQsIFwiQ29udGludWF0aW9uVG9rZW5cIiwgXCJOZXh0Q29udGludWF0aW9uVG9rZW5cIiwgXCJNYXhLZXlzXCIpO1xuXG5jb25zdCBwYWdpbmF0ZUxpc3RQYXJ0cyA9IGNvcmUuY3JlYXRlUGFnaW5hdG9yKFMzQ2xpZW50LCBMaXN0UGFydHNDb21tYW5kLCBcIlBhcnROdW1iZXJNYXJrZXJcIiwgXCJOZXh0UGFydE51bWJlck1hcmtlclwiLCBcIk1heFBhcnRzXCIpO1xuXG5jb25zdCBjaGVja1N0YXRlJDMgPSBhc3luYyAoY2xpZW50LCBpbnB1dCkgPT4ge1xuICAgIGxldCByZWFzb247XG4gICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgY2xpZW50LnNlbmQobmV3IEhlYWRCdWNrZXRDb21tYW5kKGlucHV0KSk7XG4gICAgICAgIHJlYXNvbiA9IHJlc3VsdDtcbiAgICAgICAgcmV0dXJuIHsgc3RhdGU6IHV0aWxXYWl0ZXIuV2FpdGVyU3RhdGUuU1VDQ0VTUywgcmVhc29uIH07XG4gICAgfVxuICAgIGNhdGNoIChleGNlcHRpb24pIHtcbiAgICAgICAgcmVhc29uID0gZXhjZXB0aW9uO1xuICAgICAgICBpZiAoZXhjZXB0aW9uLm5hbWUgJiYgZXhjZXB0aW9uLm5hbWUgPT0gXCJOb3RGb3VuZFwiKSB7XG4gICAgICAgICAgICByZXR1cm4geyBzdGF0ZTogdXRpbFdhaXRlci5XYWl0ZXJTdGF0ZS5SRVRSWSwgcmVhc29uIH07XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHsgc3RhdGU6IHV0aWxXYWl0ZXIuV2FpdGVyU3RhdGUuUkVUUlksIHJlYXNvbiB9O1xufTtcbmNvbnN0IHdhaXRGb3JCdWNrZXRFeGlzdHMgPSBhc3luYyAocGFyYW1zLCBpbnB1dCkgPT4ge1xuICAgIGNvbnN0IHNlcnZpY2VEZWZhdWx0cyA9IHsgbWluRGVsYXk6IDUsIG1heERlbGF5OiAxMjAgfTtcbiAgICByZXR1cm4gdXRpbFdhaXRlci5jcmVhdGVXYWl0ZXIoeyAuLi5zZXJ2aWNlRGVmYXVsdHMsIC4uLnBhcmFtcyB9LCBpbnB1dCwgY2hlY2tTdGF0ZSQzKTtcbn07XG5jb25zdCB3YWl0VW50aWxCdWNrZXRFeGlzdHMgPSBhc3luYyAocGFyYW1zLCBpbnB1dCkgPT4ge1xuICAgIGNvbnN0IHNlcnZpY2VEZWZhdWx0cyA9IHsgbWluRGVsYXk6IDUsIG1heERlbGF5OiAxMjAgfTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB1dGlsV2FpdGVyLmNyZWF0ZVdhaXRlcih7IC4uLnNlcnZpY2VEZWZhdWx0cywgLi4ucGFyYW1zIH0sIGlucHV0LCBjaGVja1N0YXRlJDMpO1xuICAgIHJldHVybiB1dGlsV2FpdGVyLmNoZWNrRXhjZXB0aW9ucyhyZXN1bHQpO1xufTtcblxuY29uc3QgY2hlY2tTdGF0ZSQyID0gYXN5bmMgKGNsaWVudCwgaW5wdXQpID0+IHtcbiAgICBsZXQgcmVhc29uO1xuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGNsaWVudC5zZW5kKG5ldyBIZWFkQnVja2V0Q29tbWFuZChpbnB1dCkpO1xuICAgICAgICByZWFzb24gPSByZXN1bHQ7XG4gICAgfVxuICAgIGNhdGNoIChleGNlcHRpb24pIHtcbiAgICAgICAgcmVhc29uID0gZXhjZXB0aW9uO1xuICAgICAgICBpZiAoZXhjZXB0aW9uLm5hbWUgJiYgZXhjZXB0aW9uLm5hbWUgPT0gXCJOb3RGb3VuZFwiKSB7XG4gICAgICAgICAgICByZXR1cm4geyBzdGF0ZTogdXRpbFdhaXRlci5XYWl0ZXJTdGF0ZS5TVUNDRVNTLCByZWFzb24gfTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4geyBzdGF0ZTogdXRpbFdhaXRlci5XYWl0ZXJTdGF0ZS5SRVRSWSwgcmVhc29uIH07XG59O1xuY29uc3Qgd2FpdEZvckJ1Y2tldE5vdEV4aXN0cyA9IGFzeW5jIChwYXJhbXMsIGlucHV0KSA9PiB7XG4gICAgY29uc3Qgc2VydmljZURlZmF1bHRzID0geyBtaW5EZWxheTogNSwgbWF4RGVsYXk6IDEyMCB9O1xuICAgIHJldHVybiB1dGlsV2FpdGVyLmNyZWF0ZVdhaXRlcih7IC4uLnNlcnZpY2VEZWZhdWx0cywgLi4ucGFyYW1zIH0sIGlucHV0LCBjaGVja1N0YXRlJDIpO1xufTtcbmNvbnN0IHdhaXRVbnRpbEJ1Y2tldE5vdEV4aXN0cyA9IGFzeW5jIChwYXJhbXMsIGlucHV0KSA9PiB7XG4gICAgY29uc3Qgc2VydmljZURlZmF1bHRzID0geyBtaW5EZWxheTogNSwgbWF4RGVsYXk6IDEyMCB9O1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHV0aWxXYWl0ZXIuY3JlYXRlV2FpdGVyKHsgLi4uc2VydmljZURlZmF1bHRzLCAuLi5wYXJhbXMgfSwgaW5wdXQsIGNoZWNrU3RhdGUkMik7XG4gICAgcmV0dXJuIHV0aWxXYWl0ZXIuY2hlY2tFeGNlcHRpb25zKHJlc3VsdCk7XG59O1xuXG5jb25zdCBjaGVja1N0YXRlJDEgPSBhc3luYyAoY2xpZW50LCBpbnB1dCkgPT4ge1xuICAgIGxldCByZWFzb247XG4gICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgY2xpZW50LnNlbmQobmV3IEhlYWRPYmplY3RDb21tYW5kKGlucHV0KSk7XG4gICAgICAgIHJlYXNvbiA9IHJlc3VsdDtcbiAgICAgICAgcmV0dXJuIHsgc3RhdGU6IHV0aWxXYWl0ZXIuV2FpdGVyU3RhdGUuU1VDQ0VTUywgcmVhc29uIH07XG4gICAgfVxuICAgIGNhdGNoIChleGNlcHRpb24pIHtcbiAgICAgICAgcmVhc29uID0gZXhjZXB0aW9uO1xuICAgICAgICBpZiAoZXhjZXB0aW9uLm5hbWUgJiYgZXhjZXB0aW9uLm5hbWUgPT0gXCJOb3RGb3VuZFwiKSB7XG4gICAgICAgICAgICByZXR1cm4geyBzdGF0ZTogdXRpbFdhaXRlci5XYWl0ZXJTdGF0ZS5SRVRSWSwgcmVhc29uIH07XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHsgc3RhdGU6IHV0aWxXYWl0ZXIuV2FpdGVyU3RhdGUuUkVUUlksIHJlYXNvbiB9O1xufTtcbmNvbnN0IHdhaXRGb3JPYmplY3RFeGlzdHMgPSBhc3luYyAocGFyYW1zLCBpbnB1dCkgPT4ge1xuICAgIGNvbnN0IHNlcnZpY2VEZWZhdWx0cyA9IHsgbWluRGVsYXk6IDUsIG1heERlbGF5OiAxMjAgfTtcbiAgICByZXR1cm4gdXRpbFdhaXRlci5jcmVhdGVXYWl0ZXIoeyAuLi5zZXJ2aWNlRGVmYXVsdHMsIC4uLnBhcmFtcyB9LCBpbnB1dCwgY2hlY2tTdGF0ZSQxKTtcbn07XG5jb25zdCB3YWl0VW50aWxPYmplY3RFeGlzdHMgPSBhc3luYyAocGFyYW1zLCBpbnB1dCkgPT4ge1xuICAgIGNvbnN0IHNlcnZpY2VEZWZhdWx0cyA9IHsgbWluRGVsYXk6IDUsIG1heERlbGF5OiAxMjAgfTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB1dGlsV2FpdGVyLmNyZWF0ZVdhaXRlcih7IC4uLnNlcnZpY2VEZWZhdWx0cywgLi4ucGFyYW1zIH0sIGlucHV0LCBjaGVja1N0YXRlJDEpO1xuICAgIHJldHVybiB1dGlsV2FpdGVyLmNoZWNrRXhjZXB0aW9ucyhyZXN1bHQpO1xufTtcblxuY29uc3QgY2hlY2tTdGF0ZSA9IGFzeW5jIChjbGllbnQsIGlucHV0KSA9PiB7XG4gICAgbGV0IHJlYXNvbjtcbiAgICB0cnkge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBjbGllbnQuc2VuZChuZXcgSGVhZE9iamVjdENvbW1hbmQoaW5wdXQpKTtcbiAgICAgICAgcmVhc29uID0gcmVzdWx0O1xuICAgIH1cbiAgICBjYXRjaCAoZXhjZXB0aW9uKSB7XG4gICAgICAgIHJlYXNvbiA9IGV4Y2VwdGlvbjtcbiAgICAgICAgaWYgKGV4Y2VwdGlvbi5uYW1lICYmIGV4Y2VwdGlvbi5uYW1lID09IFwiTm90Rm91bmRcIikge1xuICAgICAgICAgICAgcmV0dXJuIHsgc3RhdGU6IHV0aWxXYWl0ZXIuV2FpdGVyU3RhdGUuU1VDQ0VTUywgcmVhc29uIH07XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHsgc3RhdGU6IHV0aWxXYWl0ZXIuV2FpdGVyU3RhdGUuUkVUUlksIHJlYXNvbiB9O1xufTtcbmNvbnN0IHdhaXRGb3JPYmplY3ROb3RFeGlzdHMgPSBhc3luYyAocGFyYW1zLCBpbnB1dCkgPT4ge1xuICAgIGNvbnN0IHNlcnZpY2VEZWZhdWx0cyA9IHsgbWluRGVsYXk6IDUsIG1heERlbGF5OiAxMjAgfTtcbiAgICByZXR1cm4gdXRpbFdhaXRlci5jcmVhdGVXYWl0ZXIoeyAuLi5zZXJ2aWNlRGVmYXVsdHMsIC4uLnBhcmFtcyB9LCBpbnB1dCwgY2hlY2tTdGF0ZSk7XG59O1xuY29uc3Qgd2FpdFVudGlsT2JqZWN0Tm90RXhpc3RzID0gYXN5bmMgKHBhcmFtcywgaW5wdXQpID0+IHtcbiAgICBjb25zdCBzZXJ2aWNlRGVmYXVsdHMgPSB7IG1pbkRlbGF5OiA1LCBtYXhEZWxheTogMTIwIH07XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdXRpbFdhaXRlci5jcmVhdGVXYWl0ZXIoeyAuLi5zZXJ2aWNlRGVmYXVsdHMsIC4uLnBhcmFtcyB9LCBpbnB1dCwgY2hlY2tTdGF0ZSk7XG4gICAgcmV0dXJuIHV0aWxXYWl0ZXIuY2hlY2tFeGNlcHRpb25zKHJlc3VsdCk7XG59O1xuXG5jb25zdCBCdWNrZXRBYmFjU3RhdHVzID0ge1xuICAgIERpc2FibGVkOiBcIkRpc2FibGVkXCIsXG4gICAgRW5hYmxlZDogXCJFbmFibGVkXCIsXG59O1xuY29uc3QgUmVxdWVzdENoYXJnZWQgPSB7XG4gICAgcmVxdWVzdGVyOiBcInJlcXVlc3RlclwiLFxufTtcbmNvbnN0IFJlcXVlc3RQYXllciA9IHtcbiAgICByZXF1ZXN0ZXI6IFwicmVxdWVzdGVyXCIsXG59O1xuY29uc3QgQnVja2V0QWNjZWxlcmF0ZVN0YXR1cyA9IHtcbiAgICBFbmFibGVkOiBcIkVuYWJsZWRcIixcbiAgICBTdXNwZW5kZWQ6IFwiU3VzcGVuZGVkXCIsXG59O1xuY29uc3QgVHlwZSA9IHtcbiAgICBBbWF6b25DdXN0b21lckJ5RW1haWw6IFwiQW1hem9uQ3VzdG9tZXJCeUVtYWlsXCIsXG4gICAgQ2Fub25pY2FsVXNlcjogXCJDYW5vbmljYWxVc2VyXCIsXG4gICAgR3JvdXA6IFwiR3JvdXBcIixcbn07XG5jb25zdCBQZXJtaXNzaW9uID0ge1xuICAgIEZVTExfQ09OVFJPTDogXCJGVUxMX0NPTlRST0xcIixcbiAgICBSRUFEOiBcIlJFQURcIixcbiAgICBSRUFEX0FDUDogXCJSRUFEX0FDUFwiLFxuICAgIFdSSVRFOiBcIldSSVRFXCIsXG4gICAgV1JJVEVfQUNQOiBcIldSSVRFX0FDUFwiLFxufTtcbmNvbnN0IE93bmVyT3ZlcnJpZGUgPSB7XG4gICAgRGVzdGluYXRpb246IFwiRGVzdGluYXRpb25cIixcbn07XG5jb25zdCBDaGVja3N1bVR5cGUgPSB7XG4gICAgQ09NUE9TSVRFOiBcIkNPTVBPU0lURVwiLFxuICAgIEZVTExfT0JKRUNUOiBcIkZVTExfT0JKRUNUXCIsXG59O1xuY29uc3QgU2VydmVyU2lkZUVuY3J5cHRpb24gPSB7XG4gICAgQUVTMjU2OiBcIkFFUzI1NlwiLFxuICAgIGF3c19mc3g6IFwiYXdzOmZzeFwiLFxuICAgIGF3c19rbXM6IFwiYXdzOmttc1wiLFxuICAgIGF3c19rbXNfZHNzZTogXCJhd3M6a21zOmRzc2VcIixcbn07XG5jb25zdCBPYmplY3RDYW5uZWRBQ0wgPSB7XG4gICAgYXV0aGVudGljYXRlZF9yZWFkOiBcImF1dGhlbnRpY2F0ZWQtcmVhZFwiLFxuICAgIGF3c19leGVjX3JlYWQ6IFwiYXdzLWV4ZWMtcmVhZFwiLFxuICAgIGJ1Y2tldF9vd25lcl9mdWxsX2NvbnRyb2w6IFwiYnVja2V0LW93bmVyLWZ1bGwtY29udHJvbFwiLFxuICAgIGJ1Y2tldF9vd25lcl9yZWFkOiBcImJ1Y2tldC1vd25lci1yZWFkXCIsXG4gICAgcHJpdmF0ZTogXCJwcml2YXRlXCIsXG4gICAgcHVibGljX3JlYWQ6IFwicHVibGljLXJlYWRcIixcbiAgICBwdWJsaWNfcmVhZF93cml0ZTogXCJwdWJsaWMtcmVhZC13cml0ZVwiLFxufTtcbmNvbnN0IENoZWNrc3VtQWxnb3JpdGhtID0ge1xuICAgIENSQzMyOiBcIkNSQzMyXCIsXG4gICAgQ1JDMzJDOiBcIkNSQzMyQ1wiLFxuICAgIENSQzY0TlZNRTogXCJDUkM2NE5WTUVcIixcbiAgICBTSEExOiBcIlNIQTFcIixcbiAgICBTSEEyNTY6IFwiU0hBMjU2XCIsXG59O1xuY29uc3QgTWV0YWRhdGFEaXJlY3RpdmUgPSB7XG4gICAgQ09QWTogXCJDT1BZXCIsXG4gICAgUkVQTEFDRTogXCJSRVBMQUNFXCIsXG59O1xuY29uc3QgT2JqZWN0TG9ja0xlZ2FsSG9sZFN0YXR1cyA9IHtcbiAgICBPRkY6IFwiT0ZGXCIsXG4gICAgT046IFwiT05cIixcbn07XG5jb25zdCBPYmplY3RMb2NrTW9kZSA9IHtcbiAgICBDT01QTElBTkNFOiBcIkNPTVBMSUFOQ0VcIixcbiAgICBHT1ZFUk5BTkNFOiBcIkdPVkVSTkFOQ0VcIixcbn07XG5jb25zdCBTdG9yYWdlQ2xhc3MgPSB7XG4gICAgREVFUF9BUkNISVZFOiBcIkRFRVBfQVJDSElWRVwiLFxuICAgIEVYUFJFU1NfT05FWk9ORTogXCJFWFBSRVNTX09ORVpPTkVcIixcbiAgICBGU1hfT05UQVA6IFwiRlNYX09OVEFQXCIsXG4gICAgRlNYX09QRU5aRlM6IFwiRlNYX09QRU5aRlNcIixcbiAgICBHTEFDSUVSOiBcIkdMQUNJRVJcIixcbiAgICBHTEFDSUVSX0lSOiBcIkdMQUNJRVJfSVJcIixcbiAgICBJTlRFTExJR0VOVF9USUVSSU5HOiBcIklOVEVMTElHRU5UX1RJRVJJTkdcIixcbiAgICBPTkVaT05FX0lBOiBcIk9ORVpPTkVfSUFcIixcbiAgICBPVVRQT1NUUzogXCJPVVRQT1NUU1wiLFxuICAgIFJFRFVDRURfUkVEVU5EQU5DWTogXCJSRURVQ0VEX1JFRFVOREFOQ1lcIixcbiAgICBTTk9XOiBcIlNOT1dcIixcbiAgICBTVEFOREFSRDogXCJTVEFOREFSRFwiLFxuICAgIFNUQU5EQVJEX0lBOiBcIlNUQU5EQVJEX0lBXCIsXG59O1xuY29uc3QgVGFnZ2luZ0RpcmVjdGl2ZSA9IHtcbiAgICBDT1BZOiBcIkNPUFlcIixcbiAgICBSRVBMQUNFOiBcIlJFUExBQ0VcIixcbn07XG5jb25zdCBCdWNrZXRDYW5uZWRBQ0wgPSB7XG4gICAgYXV0aGVudGljYXRlZF9yZWFkOiBcImF1dGhlbnRpY2F0ZWQtcmVhZFwiLFxuICAgIHByaXZhdGU6IFwicHJpdmF0ZVwiLFxuICAgIHB1YmxpY19yZWFkOiBcInB1YmxpYy1yZWFkXCIsXG4gICAgcHVibGljX3JlYWRfd3JpdGU6IFwicHVibGljLXJlYWQtd3JpdGVcIixcbn07XG5jb25zdCBEYXRhUmVkdW5kYW5jeSA9IHtcbiAgICBTaW5nbGVBdmFpbGFiaWxpdHlab25lOiBcIlNpbmdsZUF2YWlsYWJpbGl0eVpvbmVcIixcbiAgICBTaW5nbGVMb2NhbFpvbmU6IFwiU2luZ2xlTG9jYWxab25lXCIsXG59O1xuY29uc3QgQnVja2V0VHlwZSA9IHtcbiAgICBEaXJlY3Rvcnk6IFwiRGlyZWN0b3J5XCIsXG59O1xuY29uc3QgTG9jYXRpb25UeXBlID0ge1xuICAgIEF2YWlsYWJpbGl0eVpvbmU6IFwiQXZhaWxhYmlsaXR5Wm9uZVwiLFxuICAgIExvY2FsWm9uZTogXCJMb2NhbFpvbmVcIixcbn07XG5jb25zdCBCdWNrZXRMb2NhdGlvbkNvbnN0cmFpbnQgPSB7XG4gICAgRVU6IFwiRVVcIixcbiAgICBhZl9zb3V0aF8xOiBcImFmLXNvdXRoLTFcIixcbiAgICBhcF9lYXN0XzE6IFwiYXAtZWFzdC0xXCIsXG4gICAgYXBfbm9ydGhlYXN0XzE6IFwiYXAtbm9ydGhlYXN0LTFcIixcbiAgICBhcF9ub3J0aGVhc3RfMjogXCJhcC1ub3J0aGVhc3QtMlwiLFxuICAgIGFwX25vcnRoZWFzdF8zOiBcImFwLW5vcnRoZWFzdC0zXCIsXG4gICAgYXBfc291dGhfMTogXCJhcC1zb3V0aC0xXCIsXG4gICAgYXBfc291dGhfMjogXCJhcC1zb3V0aC0yXCIsXG4gICAgYXBfc291dGhlYXN0XzE6IFwiYXAtc291dGhlYXN0LTFcIixcbiAgICBhcF9zb3V0aGVhc3RfMjogXCJhcC1zb3V0aGVhc3QtMlwiLFxuICAgIGFwX3NvdXRoZWFzdF8zOiBcImFwLXNvdXRoZWFzdC0zXCIsXG4gICAgYXBfc291dGhlYXN0XzQ6IFwiYXAtc291dGhlYXN0LTRcIixcbiAgICBhcF9zb3V0aGVhc3RfNTogXCJhcC1zb3V0aGVhc3QtNVwiLFxuICAgIGNhX2NlbnRyYWxfMTogXCJjYS1jZW50cmFsLTFcIixcbiAgICBjbl9ub3J0aF8xOiBcImNuLW5vcnRoLTFcIixcbiAgICBjbl9ub3J0aHdlc3RfMTogXCJjbi1ub3J0aHdlc3QtMVwiLFxuICAgIGV1X2NlbnRyYWxfMTogXCJldS1jZW50cmFsLTFcIixcbiAgICBldV9jZW50cmFsXzI6IFwiZXUtY2VudHJhbC0yXCIsXG4gICAgZXVfbm9ydGhfMTogXCJldS1ub3J0aC0xXCIsXG4gICAgZXVfc291dGhfMTogXCJldS1zb3V0aC0xXCIsXG4gICAgZXVfc291dGhfMjogXCJldS1zb3V0aC0yXCIsXG4gICAgZXVfd2VzdF8xOiBcImV1LXdlc3QtMVwiLFxuICAgIGV1X3dlc3RfMjogXCJldS13ZXN0LTJcIixcbiAgICBldV93ZXN0XzM6IFwiZXUtd2VzdC0zXCIsXG4gICAgaWxfY2VudHJhbF8xOiBcImlsLWNlbnRyYWwtMVwiLFxuICAgIG1lX2NlbnRyYWxfMTogXCJtZS1jZW50cmFsLTFcIixcbiAgICBtZV9zb3V0aF8xOiBcIm1lLXNvdXRoLTFcIixcbiAgICBzYV9lYXN0XzE6IFwic2EtZWFzdC0xXCIsXG4gICAgdXNfZWFzdF8yOiBcInVzLWVhc3QtMlwiLFxuICAgIHVzX2dvdl9lYXN0XzE6IFwidXMtZ292LWVhc3QtMVwiLFxuICAgIHVzX2dvdl93ZXN0XzE6IFwidXMtZ292LXdlc3QtMVwiLFxuICAgIHVzX3dlc3RfMTogXCJ1cy13ZXN0LTFcIixcbiAgICB1c193ZXN0XzI6IFwidXMtd2VzdC0yXCIsXG59O1xuY29uc3QgT2JqZWN0T3duZXJzaGlwID0ge1xuICAgIEJ1Y2tldE93bmVyRW5mb3JjZWQ6IFwiQnVja2V0T3duZXJFbmZvcmNlZFwiLFxuICAgIEJ1Y2tldE93bmVyUHJlZmVycmVkOiBcIkJ1Y2tldE93bmVyUHJlZmVycmVkXCIsXG4gICAgT2JqZWN0V3JpdGVyOiBcIk9iamVjdFdyaXRlclwiLFxufTtcbmNvbnN0IEludmVudG9yeUNvbmZpZ3VyYXRpb25TdGF0ZSA9IHtcbiAgICBESVNBQkxFRDogXCJESVNBQkxFRFwiLFxuICAgIEVOQUJMRUQ6IFwiRU5BQkxFRFwiLFxufTtcbmNvbnN0IFRhYmxlU3NlQWxnb3JpdGhtID0ge1xuICAgIEFFUzI1NjogXCJBRVMyNTZcIixcbiAgICBhd3Nfa21zOiBcImF3czprbXNcIixcbn07XG5jb25zdCBFeHBpcmF0aW9uU3RhdGUgPSB7XG4gICAgRElTQUJMRUQ6IFwiRElTQUJMRURcIixcbiAgICBFTkFCTEVEOiBcIkVOQUJMRURcIixcbn07XG5jb25zdCBTZXNzaW9uTW9kZSA9IHtcbiAgICBSZWFkT25seTogXCJSZWFkT25seVwiLFxuICAgIFJlYWRXcml0ZTogXCJSZWFkV3JpdGVcIixcbn07XG5jb25zdCBBbmFseXRpY3NTM0V4cG9ydEZpbGVGb3JtYXQgPSB7XG4gICAgQ1NWOiBcIkNTVlwiLFxufTtcbmNvbnN0IFN0b3JhZ2VDbGFzc0FuYWx5c2lzU2NoZW1hVmVyc2lvbiA9IHtcbiAgICBWXzE6IFwiVl8xXCIsXG59O1xuY29uc3QgRW5jcnlwdGlvblR5cGUgPSB7XG4gICAgTk9ORTogXCJOT05FXCIsXG4gICAgU1NFX0M6IFwiU1NFLUNcIixcbn07XG5jb25zdCBJbnRlbGxpZ2VudFRpZXJpbmdTdGF0dXMgPSB7XG4gICAgRGlzYWJsZWQ6IFwiRGlzYWJsZWRcIixcbiAgICBFbmFibGVkOiBcIkVuYWJsZWRcIixcbn07XG5jb25zdCBJbnRlbGxpZ2VudFRpZXJpbmdBY2Nlc3NUaWVyID0ge1xuICAgIEFSQ0hJVkVfQUNDRVNTOiBcIkFSQ0hJVkVfQUNDRVNTXCIsXG4gICAgREVFUF9BUkNISVZFX0FDQ0VTUzogXCJERUVQX0FSQ0hJVkVfQUNDRVNTXCIsXG59O1xuY29uc3QgSW52ZW50b3J5Rm9ybWF0ID0ge1xuICAgIENTVjogXCJDU1ZcIixcbiAgICBPUkM6IFwiT1JDXCIsXG4gICAgUGFycXVldDogXCJQYXJxdWV0XCIsXG59O1xuY29uc3QgSW52ZW50b3J5SW5jbHVkZWRPYmplY3RWZXJzaW9ucyA9IHtcbiAgICBBbGw6IFwiQWxsXCIsXG4gICAgQ3VycmVudDogXCJDdXJyZW50XCIsXG59O1xuY29uc3QgSW52ZW50b3J5T3B0aW9uYWxGaWVsZCA9IHtcbiAgICBCdWNrZXRLZXlTdGF0dXM6IFwiQnVja2V0S2V5U3RhdHVzXCIsXG4gICAgQ2hlY2tzdW1BbGdvcml0aG06IFwiQ2hlY2tzdW1BbGdvcml0aG1cIixcbiAgICBFVGFnOiBcIkVUYWdcIixcbiAgICBFbmNyeXB0aW9uU3RhdHVzOiBcIkVuY3J5cHRpb25TdGF0dXNcIixcbiAgICBJbnRlbGxpZ2VudFRpZXJpbmdBY2Nlc3NUaWVyOiBcIkludGVsbGlnZW50VGllcmluZ0FjY2Vzc1RpZXJcIixcbiAgICBJc011bHRpcGFydFVwbG9hZGVkOiBcIklzTXVsdGlwYXJ0VXBsb2FkZWRcIixcbiAgICBMYXN0TW9kaWZpZWREYXRlOiBcIkxhc3RNb2RpZmllZERhdGVcIixcbiAgICBMaWZlY3ljbGVFeHBpcmF0aW9uRGF0ZTogXCJMaWZlY3ljbGVFeHBpcmF0aW9uRGF0ZVwiLFxuICAgIE9iamVjdEFjY2Vzc0NvbnRyb2xMaXN0OiBcIk9iamVjdEFjY2Vzc0NvbnRyb2xMaXN0XCIsXG4gICAgT2JqZWN0TG9ja0xlZ2FsSG9sZFN0YXR1czogXCJPYmplY3RMb2NrTGVnYWxIb2xkU3RhdHVzXCIsXG4gICAgT2JqZWN0TG9ja01vZGU6IFwiT2JqZWN0TG9ja01vZGVcIixcbiAgICBPYmplY3RMb2NrUmV0YWluVW50aWxEYXRlOiBcIk9iamVjdExvY2tSZXRhaW5VbnRpbERhdGVcIixcbiAgICBPYmplY3RPd25lcjogXCJPYmplY3RPd25lclwiLFxuICAgIFJlcGxpY2F0aW9uU3RhdHVzOiBcIlJlcGxpY2F0aW9uU3RhdHVzXCIsXG4gICAgU2l6ZTogXCJTaXplXCIsXG4gICAgU3RvcmFnZUNsYXNzOiBcIlN0b3JhZ2VDbGFzc1wiLFxufTtcbmNvbnN0IEludmVudG9yeUZyZXF1ZW5jeSA9IHtcbiAgICBEYWlseTogXCJEYWlseVwiLFxuICAgIFdlZWtseTogXCJXZWVrbHlcIixcbn07XG5jb25zdCBUcmFuc2l0aW9uU3RvcmFnZUNsYXNzID0ge1xuICAgIERFRVBfQVJDSElWRTogXCJERUVQX0FSQ0hJVkVcIixcbiAgICBHTEFDSUVSOiBcIkdMQUNJRVJcIixcbiAgICBHTEFDSUVSX0lSOiBcIkdMQUNJRVJfSVJcIixcbiAgICBJTlRFTExJR0VOVF9USUVSSU5HOiBcIklOVEVMTElHRU5UX1RJRVJJTkdcIixcbiAgICBPTkVaT05FX0lBOiBcIk9ORVpPTkVfSUFcIixcbiAgICBTVEFOREFSRF9JQTogXCJTVEFOREFSRF9JQVwiLFxufTtcbmNvbnN0IEV4cGlyYXRpb25TdGF0dXMgPSB7XG4gICAgRGlzYWJsZWQ6IFwiRGlzYWJsZWRcIixcbiAgICBFbmFibGVkOiBcIkVuYWJsZWRcIixcbn07XG5jb25zdCBUcmFuc2l0aW9uRGVmYXVsdE1pbmltdW1PYmplY3RTaXplID0ge1xuICAgIGFsbF9zdG9yYWdlX2NsYXNzZXNfMTI4SzogXCJhbGxfc3RvcmFnZV9jbGFzc2VzXzEyOEtcIixcbiAgICB2YXJpZXNfYnlfc3RvcmFnZV9jbGFzczogXCJ2YXJpZXNfYnlfc3RvcmFnZV9jbGFzc1wiLFxufTtcbmNvbnN0IEJ1Y2tldExvZ3NQZXJtaXNzaW9uID0ge1xuICAgIEZVTExfQ09OVFJPTDogXCJGVUxMX0NPTlRST0xcIixcbiAgICBSRUFEOiBcIlJFQURcIixcbiAgICBXUklURTogXCJXUklURVwiLFxufTtcbmNvbnN0IFBhcnRpdGlvbkRhdGVTb3VyY2UgPSB7XG4gICAgRGVsaXZlcnlUaW1lOiBcIkRlbGl2ZXJ5VGltZVwiLFxuICAgIEV2ZW50VGltZTogXCJFdmVudFRpbWVcIixcbn07XG5jb25zdCBTM1RhYmxlc0J1Y2tldFR5cGUgPSB7XG4gICAgYXdzOiBcImF3c1wiLFxuICAgIGN1c3RvbWVyOiBcImN1c3RvbWVyXCIsXG59O1xuY29uc3QgRXZlbnQgPSB7XG4gICAgczNfSW50ZWxsaWdlbnRUaWVyaW5nOiBcInMzOkludGVsbGlnZW50VGllcmluZ1wiLFxuICAgIHMzX0xpZmVjeWNsZUV4cGlyYXRpb25fOiBcInMzOkxpZmVjeWNsZUV4cGlyYXRpb246KlwiLFxuICAgIHMzX0xpZmVjeWNsZUV4cGlyYXRpb25fRGVsZXRlOiBcInMzOkxpZmVjeWNsZUV4cGlyYXRpb246RGVsZXRlXCIsXG4gICAgczNfTGlmZWN5Y2xlRXhwaXJhdGlvbl9EZWxldGVNYXJrZXJDcmVhdGVkOiBcInMzOkxpZmVjeWNsZUV4cGlyYXRpb246RGVsZXRlTWFya2VyQ3JlYXRlZFwiLFxuICAgIHMzX0xpZmVjeWNsZVRyYW5zaXRpb246IFwiczM6TGlmZWN5Y2xlVHJhbnNpdGlvblwiLFxuICAgIHMzX09iamVjdEFjbF9QdXQ6IFwiczM6T2JqZWN0QWNsOlB1dFwiLFxuICAgIHMzX09iamVjdENyZWF0ZWRfOiBcInMzOk9iamVjdENyZWF0ZWQ6KlwiLFxuICAgIHMzX09iamVjdENyZWF0ZWRfQ29tcGxldGVNdWx0aXBhcnRVcGxvYWQ6IFwiczM6T2JqZWN0Q3JlYXRlZDpDb21wbGV0ZU11bHRpcGFydFVwbG9hZFwiLFxuICAgIHMzX09iamVjdENyZWF0ZWRfQ29weTogXCJzMzpPYmplY3RDcmVhdGVkOkNvcHlcIixcbiAgICBzM19PYmplY3RDcmVhdGVkX1Bvc3Q6IFwiczM6T2JqZWN0Q3JlYXRlZDpQb3N0XCIsXG4gICAgczNfT2JqZWN0Q3JlYXRlZF9QdXQ6IFwiczM6T2JqZWN0Q3JlYXRlZDpQdXRcIixcbiAgICBzM19PYmplY3RSZW1vdmVkXzogXCJzMzpPYmplY3RSZW1vdmVkOipcIixcbiAgICBzM19PYmplY3RSZW1vdmVkX0RlbGV0ZTogXCJzMzpPYmplY3RSZW1vdmVkOkRlbGV0ZVwiLFxuICAgIHMzX09iamVjdFJlbW92ZWRfRGVsZXRlTWFya2VyQ3JlYXRlZDogXCJzMzpPYmplY3RSZW1vdmVkOkRlbGV0ZU1hcmtlckNyZWF0ZWRcIixcbiAgICBzM19PYmplY3RSZXN0b3JlXzogXCJzMzpPYmplY3RSZXN0b3JlOipcIixcbiAgICBzM19PYmplY3RSZXN0b3JlX0NvbXBsZXRlZDogXCJzMzpPYmplY3RSZXN0b3JlOkNvbXBsZXRlZFwiLFxuICAgIHMzX09iamVjdFJlc3RvcmVfRGVsZXRlOiBcInMzOk9iamVjdFJlc3RvcmU6RGVsZXRlXCIsXG4gICAgczNfT2JqZWN0UmVzdG9yZV9Qb3N0OiBcInMzOk9iamVjdFJlc3RvcmU6UG9zdFwiLFxuICAgIHMzX09iamVjdFRhZ2dpbmdfOiBcInMzOk9iamVjdFRhZ2dpbmc6KlwiLFxuICAgIHMzX09iamVjdFRhZ2dpbmdfRGVsZXRlOiBcInMzOk9iamVjdFRhZ2dpbmc6RGVsZXRlXCIsXG4gICAgczNfT2JqZWN0VGFnZ2luZ19QdXQ6IFwiczM6T2JqZWN0VGFnZ2luZzpQdXRcIixcbiAgICBzM19SZWR1Y2VkUmVkdW5kYW5jeUxvc3RPYmplY3Q6IFwiczM6UmVkdWNlZFJlZHVuZGFuY3lMb3N0T2JqZWN0XCIsXG4gICAgczNfUmVwbGljYXRpb25fOiBcInMzOlJlcGxpY2F0aW9uOipcIixcbiAgICBzM19SZXBsaWNhdGlvbl9PcGVyYXRpb25GYWlsZWRSZXBsaWNhdGlvbjogXCJzMzpSZXBsaWNhdGlvbjpPcGVyYXRpb25GYWlsZWRSZXBsaWNhdGlvblwiLFxuICAgIHMzX1JlcGxpY2F0aW9uX09wZXJhdGlvbk1pc3NlZFRocmVzaG9sZDogXCJzMzpSZXBsaWNhdGlvbjpPcGVyYXRpb25NaXNzZWRUaHJlc2hvbGRcIixcbiAgICBzM19SZXBsaWNhdGlvbl9PcGVyYXRpb25Ob3RUcmFja2VkOiBcInMzOlJlcGxpY2F0aW9uOk9wZXJhdGlvbk5vdFRyYWNrZWRcIixcbiAgICBzM19SZXBsaWNhdGlvbl9PcGVyYXRpb25SZXBsaWNhdGVkQWZ0ZXJUaHJlc2hvbGQ6IFwiczM6UmVwbGljYXRpb246T3BlcmF0aW9uUmVwbGljYXRlZEFmdGVyVGhyZXNob2xkXCIsXG59O1xuY29uc3QgRmlsdGVyUnVsZU5hbWUgPSB7XG4gICAgcHJlZml4OiBcInByZWZpeFwiLFxuICAgIHN1ZmZpeDogXCJzdWZmaXhcIixcbn07XG5jb25zdCBEZWxldGVNYXJrZXJSZXBsaWNhdGlvblN0YXR1cyA9IHtcbiAgICBEaXNhYmxlZDogXCJEaXNhYmxlZFwiLFxuICAgIEVuYWJsZWQ6IFwiRW5hYmxlZFwiLFxufTtcbmNvbnN0IE1ldHJpY3NTdGF0dXMgPSB7XG4gICAgRGlzYWJsZWQ6IFwiRGlzYWJsZWRcIixcbiAgICBFbmFibGVkOiBcIkVuYWJsZWRcIixcbn07XG5jb25zdCBSZXBsaWNhdGlvblRpbWVTdGF0dXMgPSB7XG4gICAgRGlzYWJsZWQ6IFwiRGlzYWJsZWRcIixcbiAgICBFbmFibGVkOiBcIkVuYWJsZWRcIixcbn07XG5jb25zdCBFeGlzdGluZ09iamVjdFJlcGxpY2F0aW9uU3RhdHVzID0ge1xuICAgIERpc2FibGVkOiBcIkRpc2FibGVkXCIsXG4gICAgRW5hYmxlZDogXCJFbmFibGVkXCIsXG59O1xuY29uc3QgUmVwbGljYU1vZGlmaWNhdGlvbnNTdGF0dXMgPSB7XG4gICAgRGlzYWJsZWQ6IFwiRGlzYWJsZWRcIixcbiAgICBFbmFibGVkOiBcIkVuYWJsZWRcIixcbn07XG5jb25zdCBTc2VLbXNFbmNyeXB0ZWRPYmplY3RzU3RhdHVzID0ge1xuICAgIERpc2FibGVkOiBcIkRpc2FibGVkXCIsXG4gICAgRW5hYmxlZDogXCJFbmFibGVkXCIsXG59O1xuY29uc3QgUmVwbGljYXRpb25SdWxlU3RhdHVzID0ge1xuICAgIERpc2FibGVkOiBcIkRpc2FibGVkXCIsXG4gICAgRW5hYmxlZDogXCJFbmFibGVkXCIsXG59O1xuY29uc3QgUGF5ZXIgPSB7XG4gICAgQnVja2V0T3duZXI6IFwiQnVja2V0T3duZXJcIixcbiAgICBSZXF1ZXN0ZXI6IFwiUmVxdWVzdGVyXCIsXG59O1xuY29uc3QgTUZBRGVsZXRlU3RhdHVzID0ge1xuICAgIERpc2FibGVkOiBcIkRpc2FibGVkXCIsXG4gICAgRW5hYmxlZDogXCJFbmFibGVkXCIsXG59O1xuY29uc3QgQnVja2V0VmVyc2lvbmluZ1N0YXR1cyA9IHtcbiAgICBFbmFibGVkOiBcIkVuYWJsZWRcIixcbiAgICBTdXNwZW5kZWQ6IFwiU3VzcGVuZGVkXCIsXG59O1xuY29uc3QgUHJvdG9jb2wgPSB7XG4gICAgaHR0cDogXCJodHRwXCIsXG4gICAgaHR0cHM6IFwiaHR0cHNcIixcbn07XG5jb25zdCBSZXBsaWNhdGlvblN0YXR1cyA9IHtcbiAgICBDT01QTEVURTogXCJDT01QTEVURVwiLFxuICAgIENPTVBMRVRFRDogXCJDT01QTEVURURcIixcbiAgICBGQUlMRUQ6IFwiRkFJTEVEXCIsXG4gICAgUEVORElORzogXCJQRU5ESU5HXCIsXG4gICAgUkVQTElDQTogXCJSRVBMSUNBXCIsXG59O1xuY29uc3QgQ2hlY2tzdW1Nb2RlID0ge1xuICAgIEVOQUJMRUQ6IFwiRU5BQkxFRFwiLFxufTtcbmNvbnN0IE9iamVjdEF0dHJpYnV0ZXMgPSB7XG4gICAgQ0hFQ0tTVU06IFwiQ2hlY2tzdW1cIixcbiAgICBFVEFHOiBcIkVUYWdcIixcbiAgICBPQkpFQ1RfUEFSVFM6IFwiT2JqZWN0UGFydHNcIixcbiAgICBPQkpFQ1RfU0laRTogXCJPYmplY3RTaXplXCIsXG4gICAgU1RPUkFHRV9DTEFTUzogXCJTdG9yYWdlQ2xhc3NcIixcbn07XG5jb25zdCBPYmplY3RMb2NrRW5hYmxlZCA9IHtcbiAgICBFbmFibGVkOiBcIkVuYWJsZWRcIixcbn07XG5jb25zdCBPYmplY3RMb2NrUmV0ZW50aW9uTW9kZSA9IHtcbiAgICBDT01QTElBTkNFOiBcIkNPTVBMSUFOQ0VcIixcbiAgICBHT1ZFUk5BTkNFOiBcIkdPVkVSTkFOQ0VcIixcbn07XG5jb25zdCBBcmNoaXZlU3RhdHVzID0ge1xuICAgIEFSQ0hJVkVfQUNDRVNTOiBcIkFSQ0hJVkVfQUNDRVNTXCIsXG4gICAgREVFUF9BUkNISVZFX0FDQ0VTUzogXCJERUVQX0FSQ0hJVkVfQUNDRVNTXCIsXG59O1xuY29uc3QgRW5jb2RpbmdUeXBlID0ge1xuICAgIHVybDogXCJ1cmxcIixcbn07XG5jb25zdCBPYmplY3RTdG9yYWdlQ2xhc3MgPSB7XG4gICAgREVFUF9BUkNISVZFOiBcIkRFRVBfQVJDSElWRVwiLFxuICAgIEVYUFJFU1NfT05FWk9ORTogXCJFWFBSRVNTX09ORVpPTkVcIixcbiAgICBGU1hfT05UQVA6IFwiRlNYX09OVEFQXCIsXG4gICAgRlNYX09QRU5aRlM6IFwiRlNYX09QRU5aRlNcIixcbiAgICBHTEFDSUVSOiBcIkdMQUNJRVJcIixcbiAgICBHTEFDSUVSX0lSOiBcIkdMQUNJRVJfSVJcIixcbiAgICBJTlRFTExJR0VOVF9USUVSSU5HOiBcIklOVEVMTElHRU5UX1RJRVJJTkdcIixcbiAgICBPTkVaT05FX0lBOiBcIk9ORVpPTkVfSUFcIixcbiAgICBPVVRQT1NUUzogXCJPVVRQT1NUU1wiLFxuICAgIFJFRFVDRURfUkVEVU5EQU5DWTogXCJSRURVQ0VEX1JFRFVOREFOQ1lcIixcbiAgICBTTk9XOiBcIlNOT1dcIixcbiAgICBTVEFOREFSRDogXCJTVEFOREFSRFwiLFxuICAgIFNUQU5EQVJEX0lBOiBcIlNUQU5EQVJEX0lBXCIsXG59O1xuY29uc3QgT3B0aW9uYWxPYmplY3RBdHRyaWJ1dGVzID0ge1xuICAgIFJFU1RPUkVfU1RBVFVTOiBcIlJlc3RvcmVTdGF0dXNcIixcbn07XG5jb25zdCBPYmplY3RWZXJzaW9uU3RvcmFnZUNsYXNzID0ge1xuICAgIFNUQU5EQVJEOiBcIlNUQU5EQVJEXCIsXG59O1xuY29uc3QgTUZBRGVsZXRlID0ge1xuICAgIERpc2FibGVkOiBcIkRpc2FibGVkXCIsXG4gICAgRW5hYmxlZDogXCJFbmFibGVkXCIsXG59O1xuY29uc3QgVGllciA9IHtcbiAgICBCdWxrOiBcIkJ1bGtcIixcbiAgICBFeHBlZGl0ZWQ6IFwiRXhwZWRpdGVkXCIsXG4gICAgU3RhbmRhcmQ6IFwiU3RhbmRhcmRcIixcbn07XG5jb25zdCBFeHByZXNzaW9uVHlwZSA9IHtcbiAgICBTUUw6IFwiU1FMXCIsXG59O1xuY29uc3QgQ29tcHJlc3Npb25UeXBlID0ge1xuICAgIEJaSVAyOiBcIkJaSVAyXCIsXG4gICAgR1pJUDogXCJHWklQXCIsXG4gICAgTk9ORTogXCJOT05FXCIsXG59O1xuY29uc3QgRmlsZUhlYWRlckluZm8gPSB7XG4gICAgSUdOT1JFOiBcIklHTk9SRVwiLFxuICAgIE5PTkU6IFwiTk9ORVwiLFxuICAgIFVTRTogXCJVU0VcIixcbn07XG5jb25zdCBKU09OVHlwZSA9IHtcbiAgICBET0NVTUVOVDogXCJET0NVTUVOVFwiLFxuICAgIExJTkVTOiBcIkxJTkVTXCIsXG59O1xuY29uc3QgUXVvdGVGaWVsZHMgPSB7XG4gICAgQUxXQVlTOiBcIkFMV0FZU1wiLFxuICAgIEFTTkVFREVEOiBcIkFTTkVFREVEXCIsXG59O1xuY29uc3QgUmVzdG9yZVJlcXVlc3RUeXBlID0ge1xuICAgIFNFTEVDVDogXCJTRUxFQ1RcIixcbn07XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIiRDb21tYW5kXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gc21pdGh5Q2xpZW50LkNvbW1hbmQ7IH1cbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19DbGllbnRcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBzbWl0aHlDbGllbnQuQ2xpZW50OyB9XG59KTtcbmV4cG9ydHMuQWJvcnRNdWx0aXBhcnRVcGxvYWRDb21tYW5kID0gQWJvcnRNdWx0aXBhcnRVcGxvYWRDb21tYW5kO1xuZXhwb3J0cy5BbmFseXRpY3NTM0V4cG9ydEZpbGVGb3JtYXQgPSBBbmFseXRpY3NTM0V4cG9ydEZpbGVGb3JtYXQ7XG5leHBvcnRzLkFyY2hpdmVTdGF0dXMgPSBBcmNoaXZlU3RhdHVzO1xuZXhwb3J0cy5CdWNrZXRBYmFjU3RhdHVzID0gQnVja2V0QWJhY1N0YXR1cztcbmV4cG9ydHMuQnVja2V0QWNjZWxlcmF0ZVN0YXR1cyA9IEJ1Y2tldEFjY2VsZXJhdGVTdGF0dXM7XG5leHBvcnRzLkJ1Y2tldEFscmVhZHlFeGlzdHMgPSBCdWNrZXRBbHJlYWR5RXhpc3RzJDE7XG5leHBvcnRzLkJ1Y2tldEFscmVhZHlPd25lZEJ5WW91ID0gQnVja2V0QWxyZWFkeU93bmVkQnlZb3UkMTtcbmV4cG9ydHMuQnVja2V0Q2FubmVkQUNMID0gQnVja2V0Q2FubmVkQUNMO1xuZXhwb3J0cy5CdWNrZXRMb2NhdGlvbkNvbnN0cmFpbnQgPSBCdWNrZXRMb2NhdGlvbkNvbnN0cmFpbnQ7XG5leHBvcnRzLkJ1Y2tldExvZ3NQZXJtaXNzaW9uID0gQnVja2V0TG9nc1Blcm1pc3Npb247XG5leHBvcnRzLkJ1Y2tldFR5cGUgPSBCdWNrZXRUeXBlO1xuZXhwb3J0cy5CdWNrZXRWZXJzaW9uaW5nU3RhdHVzID0gQnVja2V0VmVyc2lvbmluZ1N0YXR1cztcbmV4cG9ydHMuQ2hlY2tzdW1BbGdvcml0aG0gPSBDaGVja3N1bUFsZ29yaXRobTtcbmV4cG9ydHMuQ2hlY2tzdW1Nb2RlID0gQ2hlY2tzdW1Nb2RlO1xuZXhwb3J0cy5DaGVja3N1bVR5cGUgPSBDaGVja3N1bVR5cGU7XG5leHBvcnRzLkNvbXBsZXRlTXVsdGlwYXJ0VXBsb2FkQ29tbWFuZCA9IENvbXBsZXRlTXVsdGlwYXJ0VXBsb2FkQ29tbWFuZDtcbmV4cG9ydHMuQ29tcHJlc3Npb25UeXBlID0gQ29tcHJlc3Npb25UeXBlO1xuZXhwb3J0cy5Db3B5T2JqZWN0Q29tbWFuZCA9IENvcHlPYmplY3RDb21tYW5kO1xuZXhwb3J0cy5DcmVhdGVCdWNrZXRDb21tYW5kID0gQ3JlYXRlQnVja2V0Q29tbWFuZDtcbmV4cG9ydHMuQ3JlYXRlQnVja2V0TWV0YWRhdGFDb25maWd1cmF0aW9uQ29tbWFuZCA9IENyZWF0ZUJ1Y2tldE1ldGFkYXRhQ29uZmlndXJhdGlvbkNvbW1hbmQ7XG5leHBvcnRzLkNyZWF0ZUJ1Y2tldE1ldGFkYXRhVGFibGVDb25maWd1cmF0aW9uQ29tbWFuZCA9IENyZWF0ZUJ1Y2tldE1ldGFkYXRhVGFibGVDb25maWd1cmF0aW9uQ29tbWFuZDtcbmV4cG9ydHMuQ3JlYXRlTXVsdGlwYXJ0VXBsb2FkQ29tbWFuZCA9IENyZWF0ZU11bHRpcGFydFVwbG9hZENvbW1hbmQ7XG5leHBvcnRzLkNyZWF0ZVNlc3Npb25Db21tYW5kID0gQ3JlYXRlU2Vzc2lvbkNvbW1hbmQ7XG5leHBvcnRzLkRhdGFSZWR1bmRhbmN5ID0gRGF0YVJlZHVuZGFuY3k7XG5leHBvcnRzLkRlbGV0ZUJ1Y2tldEFuYWx5dGljc0NvbmZpZ3VyYXRpb25Db21tYW5kID0gRGVsZXRlQnVja2V0QW5hbHl0aWNzQ29uZmlndXJhdGlvbkNvbW1hbmQ7XG5leHBvcnRzLkRlbGV0ZUJ1Y2tldENvbW1hbmQgPSBEZWxldGVCdWNrZXRDb21tYW5kO1xuZXhwb3J0cy5EZWxldGVCdWNrZXRDb3JzQ29tbWFuZCA9IERlbGV0ZUJ1Y2tldENvcnNDb21tYW5kO1xuZXhwb3J0cy5EZWxldGVCdWNrZXRFbmNyeXB0aW9uQ29tbWFuZCA9IERlbGV0ZUJ1Y2tldEVuY3J5cHRpb25Db21tYW5kO1xuZXhwb3J0cy5EZWxldGVCdWNrZXRJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9uQ29tbWFuZCA9IERlbGV0ZUJ1Y2tldEludGVsbGlnZW50VGllcmluZ0NvbmZpZ3VyYXRpb25Db21tYW5kO1xuZXhwb3J0cy5EZWxldGVCdWNrZXRJbnZlbnRvcnlDb25maWd1cmF0aW9uQ29tbWFuZCA9IERlbGV0ZUJ1Y2tldEludmVudG9yeUNvbmZpZ3VyYXRpb25Db21tYW5kO1xuZXhwb3J0cy5EZWxldGVCdWNrZXRMaWZlY3ljbGVDb21tYW5kID0gRGVsZXRlQnVja2V0TGlmZWN5Y2xlQ29tbWFuZDtcbmV4cG9ydHMuRGVsZXRlQnVja2V0TWV0YWRhdGFDb25maWd1cmF0aW9uQ29tbWFuZCA9IERlbGV0ZUJ1Y2tldE1ldGFkYXRhQ29uZmlndXJhdGlvbkNvbW1hbmQ7XG5leHBvcnRzLkRlbGV0ZUJ1Y2tldE1ldGFkYXRhVGFibGVDb25maWd1cmF0aW9uQ29tbWFuZCA9IERlbGV0ZUJ1Y2tldE1ldGFkYXRhVGFibGVDb25maWd1cmF0aW9uQ29tbWFuZDtcbmV4cG9ydHMuRGVsZXRlQnVja2V0TWV0cmljc0NvbmZpZ3VyYXRpb25Db21tYW5kID0gRGVsZXRlQnVja2V0TWV0cmljc0NvbmZpZ3VyYXRpb25Db21tYW5kO1xuZXhwb3J0cy5EZWxldGVCdWNrZXRPd25lcnNoaXBDb250cm9sc0NvbW1hbmQgPSBEZWxldGVCdWNrZXRPd25lcnNoaXBDb250cm9sc0NvbW1hbmQ7XG5leHBvcnRzLkRlbGV0ZUJ1Y2tldFBvbGljeUNvbW1hbmQgPSBEZWxldGVCdWNrZXRQb2xpY3lDb21tYW5kO1xuZXhwb3J0cy5EZWxldGVCdWNrZXRSZXBsaWNhdGlvbkNvbW1hbmQgPSBEZWxldGVCdWNrZXRSZXBsaWNhdGlvbkNvbW1hbmQ7XG5leHBvcnRzLkRlbGV0ZUJ1Y2tldFRhZ2dpbmdDb21tYW5kID0gRGVsZXRlQnVja2V0VGFnZ2luZ0NvbW1hbmQ7XG5leHBvcnRzLkRlbGV0ZUJ1Y2tldFdlYnNpdGVDb21tYW5kID0gRGVsZXRlQnVja2V0V2Vic2l0ZUNvbW1hbmQ7XG5leHBvcnRzLkRlbGV0ZU1hcmtlclJlcGxpY2F0aW9uU3RhdHVzID0gRGVsZXRlTWFya2VyUmVwbGljYXRpb25TdGF0dXM7XG5leHBvcnRzLkRlbGV0ZU9iamVjdENvbW1hbmQgPSBEZWxldGVPYmplY3RDb21tYW5kO1xuZXhwb3J0cy5EZWxldGVPYmplY3RUYWdnaW5nQ29tbWFuZCA9IERlbGV0ZU9iamVjdFRhZ2dpbmdDb21tYW5kO1xuZXhwb3J0cy5EZWxldGVPYmplY3RzQ29tbWFuZCA9IERlbGV0ZU9iamVjdHNDb21tYW5kO1xuZXhwb3J0cy5EZWxldGVQdWJsaWNBY2Nlc3NCbG9ja0NvbW1hbmQgPSBEZWxldGVQdWJsaWNBY2Nlc3NCbG9ja0NvbW1hbmQ7XG5leHBvcnRzLkVuY29kaW5nVHlwZSA9IEVuY29kaW5nVHlwZTtcbmV4cG9ydHMuRW5jcnlwdGlvblR5cGUgPSBFbmNyeXB0aW9uVHlwZTtcbmV4cG9ydHMuRW5jcnlwdGlvblR5cGVNaXNtYXRjaCA9IEVuY3J5cHRpb25UeXBlTWlzbWF0Y2gkMTtcbmV4cG9ydHMuRXZlbnQgPSBFdmVudDtcbmV4cG9ydHMuRXhpc3RpbmdPYmplY3RSZXBsaWNhdGlvblN0YXR1cyA9IEV4aXN0aW5nT2JqZWN0UmVwbGljYXRpb25TdGF0dXM7XG5leHBvcnRzLkV4cGlyYXRpb25TdGF0ZSA9IEV4cGlyYXRpb25TdGF0ZTtcbmV4cG9ydHMuRXhwaXJhdGlvblN0YXR1cyA9IEV4cGlyYXRpb25TdGF0dXM7XG5leHBvcnRzLkV4cHJlc3Npb25UeXBlID0gRXhwcmVzc2lvblR5cGU7XG5leHBvcnRzLkZpbGVIZWFkZXJJbmZvID0gRmlsZUhlYWRlckluZm87XG5leHBvcnRzLkZpbHRlclJ1bGVOYW1lID0gRmlsdGVyUnVsZU5hbWU7XG5leHBvcnRzLkdldEJ1Y2tldEFiYWNDb21tYW5kID0gR2V0QnVja2V0QWJhY0NvbW1hbmQ7XG5leHBvcnRzLkdldEJ1Y2tldEFjY2VsZXJhdGVDb25maWd1cmF0aW9uQ29tbWFuZCA9IEdldEJ1Y2tldEFjY2VsZXJhdGVDb25maWd1cmF0aW9uQ29tbWFuZDtcbmV4cG9ydHMuR2V0QnVja2V0QWNsQ29tbWFuZCA9IEdldEJ1Y2tldEFjbENvbW1hbmQ7XG5leHBvcnRzLkdldEJ1Y2tldEFuYWx5dGljc0NvbmZpZ3VyYXRpb25Db21tYW5kID0gR2V0QnVja2V0QW5hbHl0aWNzQ29uZmlndXJhdGlvbkNvbW1hbmQ7XG5leHBvcnRzLkdldEJ1Y2tldENvcnNDb21tYW5kID0gR2V0QnVja2V0Q29yc0NvbW1hbmQ7XG5leHBvcnRzLkdldEJ1Y2tldEVuY3J5cHRpb25Db21tYW5kID0gR2V0QnVja2V0RW5jcnlwdGlvbkNvbW1hbmQ7XG5leHBvcnRzLkdldEJ1Y2tldEludGVsbGlnZW50VGllcmluZ0NvbmZpZ3VyYXRpb25Db21tYW5kID0gR2V0QnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvbkNvbW1hbmQ7XG5leHBvcnRzLkdldEJ1Y2tldEludmVudG9yeUNvbmZpZ3VyYXRpb25Db21tYW5kID0gR2V0QnVja2V0SW52ZW50b3J5Q29uZmlndXJhdGlvbkNvbW1hbmQ7XG5leHBvcnRzLkdldEJ1Y2tldExpZmVjeWNsZUNvbmZpZ3VyYXRpb25Db21tYW5kID0gR2V0QnVja2V0TGlmZWN5Y2xlQ29uZmlndXJhdGlvbkNvbW1hbmQ7XG5leHBvcnRzLkdldEJ1Y2tldExvY2F0aW9uQ29tbWFuZCA9IEdldEJ1Y2tldExvY2F0aW9uQ29tbWFuZDtcbmV4cG9ydHMuR2V0QnVja2V0TG9nZ2luZ0NvbW1hbmQgPSBHZXRCdWNrZXRMb2dnaW5nQ29tbWFuZDtcbmV4cG9ydHMuR2V0QnVja2V0TWV0YWRhdGFDb25maWd1cmF0aW9uQ29tbWFuZCA9IEdldEJ1Y2tldE1ldGFkYXRhQ29uZmlndXJhdGlvbkNvbW1hbmQ7XG5leHBvcnRzLkdldEJ1Y2tldE1ldGFkYXRhVGFibGVDb25maWd1cmF0aW9uQ29tbWFuZCA9IEdldEJ1Y2tldE1ldGFkYXRhVGFibGVDb25maWd1cmF0aW9uQ29tbWFuZDtcbmV4cG9ydHMuR2V0QnVja2V0TWV0cmljc0NvbmZpZ3VyYXRpb25Db21tYW5kID0gR2V0QnVja2V0TWV0cmljc0NvbmZpZ3VyYXRpb25Db21tYW5kO1xuZXhwb3J0cy5HZXRCdWNrZXROb3RpZmljYXRpb25Db25maWd1cmF0aW9uQ29tbWFuZCA9IEdldEJ1Y2tldE5vdGlmaWNhdGlvbkNvbmZpZ3VyYXRpb25Db21tYW5kO1xuZXhwb3J0cy5HZXRCdWNrZXRPd25lcnNoaXBDb250cm9sc0NvbW1hbmQgPSBHZXRCdWNrZXRPd25lcnNoaXBDb250cm9sc0NvbW1hbmQ7XG5leHBvcnRzLkdldEJ1Y2tldFBvbGljeUNvbW1hbmQgPSBHZXRCdWNrZXRQb2xpY3lDb21tYW5kO1xuZXhwb3J0cy5HZXRCdWNrZXRQb2xpY3lTdGF0dXNDb21tYW5kID0gR2V0QnVja2V0UG9saWN5U3RhdHVzQ29tbWFuZDtcbmV4cG9ydHMuR2V0QnVja2V0UmVwbGljYXRpb25Db21tYW5kID0gR2V0QnVja2V0UmVwbGljYXRpb25Db21tYW5kO1xuZXhwb3J0cy5HZXRCdWNrZXRSZXF1ZXN0UGF5bWVudENvbW1hbmQgPSBHZXRCdWNrZXRSZXF1ZXN0UGF5bWVudENvbW1hbmQ7XG5leHBvcnRzLkdldEJ1Y2tldFRhZ2dpbmdDb21tYW5kID0gR2V0QnVja2V0VGFnZ2luZ0NvbW1hbmQ7XG5leHBvcnRzLkdldEJ1Y2tldFZlcnNpb25pbmdDb21tYW5kID0gR2V0QnVja2V0VmVyc2lvbmluZ0NvbW1hbmQ7XG5leHBvcnRzLkdldEJ1Y2tldFdlYnNpdGVDb21tYW5kID0gR2V0QnVja2V0V2Vic2l0ZUNvbW1hbmQ7XG5leHBvcnRzLkdldE9iamVjdEFjbENvbW1hbmQgPSBHZXRPYmplY3RBY2xDb21tYW5kO1xuZXhwb3J0cy5HZXRPYmplY3RBdHRyaWJ1dGVzQ29tbWFuZCA9IEdldE9iamVjdEF0dHJpYnV0ZXNDb21tYW5kO1xuZXhwb3J0cy5HZXRPYmplY3RDb21tYW5kID0gR2V0T2JqZWN0Q29tbWFuZDtcbmV4cG9ydHMuR2V0T2JqZWN0TGVnYWxIb2xkQ29tbWFuZCA9IEdldE9iamVjdExlZ2FsSG9sZENvbW1hbmQ7XG5leHBvcnRzLkdldE9iamVjdExvY2tDb25maWd1cmF0aW9uQ29tbWFuZCA9IEdldE9iamVjdExvY2tDb25maWd1cmF0aW9uQ29tbWFuZDtcbmV4cG9ydHMuR2V0T2JqZWN0UmV0ZW50aW9uQ29tbWFuZCA9IEdldE9iamVjdFJldGVudGlvbkNvbW1hbmQ7XG5leHBvcnRzLkdldE9iamVjdFRhZ2dpbmdDb21tYW5kID0gR2V0T2JqZWN0VGFnZ2luZ0NvbW1hbmQ7XG5leHBvcnRzLkdldE9iamVjdFRvcnJlbnRDb21tYW5kID0gR2V0T2JqZWN0VG9ycmVudENvbW1hbmQ7XG5leHBvcnRzLkdldFB1YmxpY0FjY2Vzc0Jsb2NrQ29tbWFuZCA9IEdldFB1YmxpY0FjY2Vzc0Jsb2NrQ29tbWFuZDtcbmV4cG9ydHMuSGVhZEJ1Y2tldENvbW1hbmQgPSBIZWFkQnVja2V0Q29tbWFuZDtcbmV4cG9ydHMuSGVhZE9iamVjdENvbW1hbmQgPSBIZWFkT2JqZWN0Q29tbWFuZDtcbmV4cG9ydHMuSWRlbXBvdGVuY3lQYXJhbWV0ZXJNaXNtYXRjaCA9IElkZW1wb3RlbmN5UGFyYW1ldGVyTWlzbWF0Y2gkMTtcbmV4cG9ydHMuSW50ZWxsaWdlbnRUaWVyaW5nQWNjZXNzVGllciA9IEludGVsbGlnZW50VGllcmluZ0FjY2Vzc1RpZXI7XG5leHBvcnRzLkludGVsbGlnZW50VGllcmluZ1N0YXR1cyA9IEludGVsbGlnZW50VGllcmluZ1N0YXR1cztcbmV4cG9ydHMuSW52YWxpZE9iamVjdFN0YXRlID0gSW52YWxpZE9iamVjdFN0YXRlJDE7XG5leHBvcnRzLkludmFsaWRSZXF1ZXN0ID0gSW52YWxpZFJlcXVlc3QkMTtcbmV4cG9ydHMuSW52YWxpZFdyaXRlT2Zmc2V0ID0gSW52YWxpZFdyaXRlT2Zmc2V0JDE7XG5leHBvcnRzLkludmVudG9yeUNvbmZpZ3VyYXRpb25TdGF0ZSA9IEludmVudG9yeUNvbmZpZ3VyYXRpb25TdGF0ZTtcbmV4cG9ydHMuSW52ZW50b3J5Rm9ybWF0ID0gSW52ZW50b3J5Rm9ybWF0O1xuZXhwb3J0cy5JbnZlbnRvcnlGcmVxdWVuY3kgPSBJbnZlbnRvcnlGcmVxdWVuY3k7XG5leHBvcnRzLkludmVudG9yeUluY2x1ZGVkT2JqZWN0VmVyc2lvbnMgPSBJbnZlbnRvcnlJbmNsdWRlZE9iamVjdFZlcnNpb25zO1xuZXhwb3J0cy5JbnZlbnRvcnlPcHRpb25hbEZpZWxkID0gSW52ZW50b3J5T3B0aW9uYWxGaWVsZDtcbmV4cG9ydHMuSlNPTlR5cGUgPSBKU09OVHlwZTtcbmV4cG9ydHMuTGlzdEJ1Y2tldEFuYWx5dGljc0NvbmZpZ3VyYXRpb25zQ29tbWFuZCA9IExpc3RCdWNrZXRBbmFseXRpY3NDb25maWd1cmF0aW9uc0NvbW1hbmQ7XG5leHBvcnRzLkxpc3RCdWNrZXRJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9uc0NvbW1hbmQgPSBMaXN0QnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvbnNDb21tYW5kO1xuZXhwb3J0cy5MaXN0QnVja2V0SW52ZW50b3J5Q29uZmlndXJhdGlvbnNDb21tYW5kID0gTGlzdEJ1Y2tldEludmVudG9yeUNvbmZpZ3VyYXRpb25zQ29tbWFuZDtcbmV4cG9ydHMuTGlzdEJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9uc0NvbW1hbmQgPSBMaXN0QnVja2V0TWV0cmljc0NvbmZpZ3VyYXRpb25zQ29tbWFuZDtcbmV4cG9ydHMuTGlzdEJ1Y2tldHNDb21tYW5kID0gTGlzdEJ1Y2tldHNDb21tYW5kO1xuZXhwb3J0cy5MaXN0RGlyZWN0b3J5QnVja2V0c0NvbW1hbmQgPSBMaXN0RGlyZWN0b3J5QnVja2V0c0NvbW1hbmQ7XG5leHBvcnRzLkxpc3RNdWx0aXBhcnRVcGxvYWRzQ29tbWFuZCA9IExpc3RNdWx0aXBhcnRVcGxvYWRzQ29tbWFuZDtcbmV4cG9ydHMuTGlzdE9iamVjdFZlcnNpb25zQ29tbWFuZCA9IExpc3RPYmplY3RWZXJzaW9uc0NvbW1hbmQ7XG5leHBvcnRzLkxpc3RPYmplY3RzQ29tbWFuZCA9IExpc3RPYmplY3RzQ29tbWFuZDtcbmV4cG9ydHMuTGlzdE9iamVjdHNWMkNvbW1hbmQgPSBMaXN0T2JqZWN0c1YyQ29tbWFuZDtcbmV4cG9ydHMuTGlzdFBhcnRzQ29tbWFuZCA9IExpc3RQYXJ0c0NvbW1hbmQ7XG5leHBvcnRzLkxvY2F0aW9uVHlwZSA9IExvY2F0aW9uVHlwZTtcbmV4cG9ydHMuTUZBRGVsZXRlID0gTUZBRGVsZXRlO1xuZXhwb3J0cy5NRkFEZWxldGVTdGF0dXMgPSBNRkFEZWxldGVTdGF0dXM7XG5leHBvcnRzLk1ldGFkYXRhRGlyZWN0aXZlID0gTWV0YWRhdGFEaXJlY3RpdmU7XG5leHBvcnRzLk1ldHJpY3NTdGF0dXMgPSBNZXRyaWNzU3RhdHVzO1xuZXhwb3J0cy5Ob1N1Y2hCdWNrZXQgPSBOb1N1Y2hCdWNrZXQkMTtcbmV4cG9ydHMuTm9TdWNoS2V5ID0gTm9TdWNoS2V5JDE7XG5leHBvcnRzLk5vU3VjaFVwbG9hZCA9IE5vU3VjaFVwbG9hZCQxO1xuZXhwb3J0cy5Ob3RGb3VuZCA9IE5vdEZvdW5kJDE7XG5leHBvcnRzLk9iamVjdEFscmVhZHlJbkFjdGl2ZVRpZXJFcnJvciA9IE9iamVjdEFscmVhZHlJbkFjdGl2ZVRpZXJFcnJvciQxO1xuZXhwb3J0cy5PYmplY3RBdHRyaWJ1dGVzID0gT2JqZWN0QXR0cmlidXRlcztcbmV4cG9ydHMuT2JqZWN0Q2FubmVkQUNMID0gT2JqZWN0Q2FubmVkQUNMO1xuZXhwb3J0cy5PYmplY3RMb2NrRW5hYmxlZCA9IE9iamVjdExvY2tFbmFibGVkO1xuZXhwb3J0cy5PYmplY3RMb2NrTGVnYWxIb2xkU3RhdHVzID0gT2JqZWN0TG9ja0xlZ2FsSG9sZFN0YXR1cztcbmV4cG9ydHMuT2JqZWN0TG9ja01vZGUgPSBPYmplY3RMb2NrTW9kZTtcbmV4cG9ydHMuT2JqZWN0TG9ja1JldGVudGlvbk1vZGUgPSBPYmplY3RMb2NrUmV0ZW50aW9uTW9kZTtcbmV4cG9ydHMuT2JqZWN0Tm90SW5BY3RpdmVUaWVyRXJyb3IgPSBPYmplY3ROb3RJbkFjdGl2ZVRpZXJFcnJvciQxO1xuZXhwb3J0cy5PYmplY3RPd25lcnNoaXAgPSBPYmplY3RPd25lcnNoaXA7XG5leHBvcnRzLk9iamVjdFN0b3JhZ2VDbGFzcyA9IE9iamVjdFN0b3JhZ2VDbGFzcztcbmV4cG9ydHMuT2JqZWN0VmVyc2lvblN0b3JhZ2VDbGFzcyA9IE9iamVjdFZlcnNpb25TdG9yYWdlQ2xhc3M7XG5leHBvcnRzLk9wdGlvbmFsT2JqZWN0QXR0cmlidXRlcyA9IE9wdGlvbmFsT2JqZWN0QXR0cmlidXRlcztcbmV4cG9ydHMuT3duZXJPdmVycmlkZSA9IE93bmVyT3ZlcnJpZGU7XG5leHBvcnRzLlBhcnRpdGlvbkRhdGVTb3VyY2UgPSBQYXJ0aXRpb25EYXRlU291cmNlO1xuZXhwb3J0cy5QYXllciA9IFBheWVyO1xuZXhwb3J0cy5QZXJtaXNzaW9uID0gUGVybWlzc2lvbjtcbmV4cG9ydHMuUHJvdG9jb2wgPSBQcm90b2NvbDtcbmV4cG9ydHMuUHV0QnVja2V0QWJhY0NvbW1hbmQgPSBQdXRCdWNrZXRBYmFjQ29tbWFuZDtcbmV4cG9ydHMuUHV0QnVja2V0QWNjZWxlcmF0ZUNvbmZpZ3VyYXRpb25Db21tYW5kID0gUHV0QnVja2V0QWNjZWxlcmF0ZUNvbmZpZ3VyYXRpb25Db21tYW5kO1xuZXhwb3J0cy5QdXRCdWNrZXRBY2xDb21tYW5kID0gUHV0QnVja2V0QWNsQ29tbWFuZDtcbmV4cG9ydHMuUHV0QnVja2V0QW5hbHl0aWNzQ29uZmlndXJhdGlvbkNvbW1hbmQgPSBQdXRCdWNrZXRBbmFseXRpY3NDb25maWd1cmF0aW9uQ29tbWFuZDtcbmV4cG9ydHMuUHV0QnVja2V0Q29yc0NvbW1hbmQgPSBQdXRCdWNrZXRDb3JzQ29tbWFuZDtcbmV4cG9ydHMuUHV0QnVja2V0RW5jcnlwdGlvbkNvbW1hbmQgPSBQdXRCdWNrZXRFbmNyeXB0aW9uQ29tbWFuZDtcbmV4cG9ydHMuUHV0QnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvbkNvbW1hbmQgPSBQdXRCdWNrZXRJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9uQ29tbWFuZDtcbmV4cG9ydHMuUHV0QnVja2V0SW52ZW50b3J5Q29uZmlndXJhdGlvbkNvbW1hbmQgPSBQdXRCdWNrZXRJbnZlbnRvcnlDb25maWd1cmF0aW9uQ29tbWFuZDtcbmV4cG9ydHMuUHV0QnVja2V0TGlmZWN5Y2xlQ29uZmlndXJhdGlvbkNvbW1hbmQgPSBQdXRCdWNrZXRMaWZlY3ljbGVDb25maWd1cmF0aW9uQ29tbWFuZDtcbmV4cG9ydHMuUHV0QnVja2V0TG9nZ2luZ0NvbW1hbmQgPSBQdXRCdWNrZXRMb2dnaW5nQ29tbWFuZDtcbmV4cG9ydHMuUHV0QnVja2V0TWV0cmljc0NvbmZpZ3VyYXRpb25Db21tYW5kID0gUHV0QnVja2V0TWV0cmljc0NvbmZpZ3VyYXRpb25Db21tYW5kO1xuZXhwb3J0cy5QdXRCdWNrZXROb3RpZmljYXRpb25Db25maWd1cmF0aW9uQ29tbWFuZCA9IFB1dEJ1Y2tldE5vdGlmaWNhdGlvbkNvbmZpZ3VyYXRpb25Db21tYW5kO1xuZXhwb3J0cy5QdXRCdWNrZXRPd25lcnNoaXBDb250cm9sc0NvbW1hbmQgPSBQdXRCdWNrZXRPd25lcnNoaXBDb250cm9sc0NvbW1hbmQ7XG5leHBvcnRzLlB1dEJ1Y2tldFBvbGljeUNvbW1hbmQgPSBQdXRCdWNrZXRQb2xpY3lDb21tYW5kO1xuZXhwb3J0cy5QdXRCdWNrZXRSZXBsaWNhdGlvbkNvbW1hbmQgPSBQdXRCdWNrZXRSZXBsaWNhdGlvbkNvbW1hbmQ7XG5leHBvcnRzLlB1dEJ1Y2tldFJlcXVlc3RQYXltZW50Q29tbWFuZCA9IFB1dEJ1Y2tldFJlcXVlc3RQYXltZW50Q29tbWFuZDtcbmV4cG9ydHMuUHV0QnVja2V0VGFnZ2luZ0NvbW1hbmQgPSBQdXRCdWNrZXRUYWdnaW5nQ29tbWFuZDtcbmV4cG9ydHMuUHV0QnVja2V0VmVyc2lvbmluZ0NvbW1hbmQgPSBQdXRCdWNrZXRWZXJzaW9uaW5nQ29tbWFuZDtcbmV4cG9ydHMuUHV0QnVja2V0V2Vic2l0ZUNvbW1hbmQgPSBQdXRCdWNrZXRXZWJzaXRlQ29tbWFuZDtcbmV4cG9ydHMuUHV0T2JqZWN0QWNsQ29tbWFuZCA9IFB1dE9iamVjdEFjbENvbW1hbmQ7XG5leHBvcnRzLlB1dE9iamVjdENvbW1hbmQgPSBQdXRPYmplY3RDb21tYW5kO1xuZXhwb3J0cy5QdXRPYmplY3RMZWdhbEhvbGRDb21tYW5kID0gUHV0T2JqZWN0TGVnYWxIb2xkQ29tbWFuZDtcbmV4cG9ydHMuUHV0T2JqZWN0TG9ja0NvbmZpZ3VyYXRpb25Db21tYW5kID0gUHV0T2JqZWN0TG9ja0NvbmZpZ3VyYXRpb25Db21tYW5kO1xuZXhwb3J0cy5QdXRPYmplY3RSZXRlbnRpb25Db21tYW5kID0gUHV0T2JqZWN0UmV0ZW50aW9uQ29tbWFuZDtcbmV4cG9ydHMuUHV0T2JqZWN0VGFnZ2luZ0NvbW1hbmQgPSBQdXRPYmplY3RUYWdnaW5nQ29tbWFuZDtcbmV4cG9ydHMuUHV0UHVibGljQWNjZXNzQmxvY2tDb21tYW5kID0gUHV0UHVibGljQWNjZXNzQmxvY2tDb21tYW5kO1xuZXhwb3J0cy5RdW90ZUZpZWxkcyA9IFF1b3RlRmllbGRzO1xuZXhwb3J0cy5SZW5hbWVPYmplY3RDb21tYW5kID0gUmVuYW1lT2JqZWN0Q29tbWFuZDtcbmV4cG9ydHMuUmVwbGljYU1vZGlmaWNhdGlvbnNTdGF0dXMgPSBSZXBsaWNhTW9kaWZpY2F0aW9uc1N0YXR1cztcbmV4cG9ydHMuUmVwbGljYXRpb25SdWxlU3RhdHVzID0gUmVwbGljYXRpb25SdWxlU3RhdHVzO1xuZXhwb3J0cy5SZXBsaWNhdGlvblN0YXR1cyA9IFJlcGxpY2F0aW9uU3RhdHVzO1xuZXhwb3J0cy5SZXBsaWNhdGlvblRpbWVTdGF0dXMgPSBSZXBsaWNhdGlvblRpbWVTdGF0dXM7XG5leHBvcnRzLlJlcXVlc3RDaGFyZ2VkID0gUmVxdWVzdENoYXJnZWQ7XG5leHBvcnRzLlJlcXVlc3RQYXllciA9IFJlcXVlc3RQYXllcjtcbmV4cG9ydHMuUmVzdG9yZU9iamVjdENvbW1hbmQgPSBSZXN0b3JlT2JqZWN0Q29tbWFuZDtcbmV4cG9ydHMuUmVzdG9yZVJlcXVlc3RUeXBlID0gUmVzdG9yZVJlcXVlc3RUeXBlO1xuZXhwb3J0cy5TMyA9IFMzO1xuZXhwb3J0cy5TM0NsaWVudCA9IFMzQ2xpZW50O1xuZXhwb3J0cy5TM1NlcnZpY2VFeGNlcHRpb24gPSBTM1NlcnZpY2VFeGNlcHRpb24kMTtcbmV4cG9ydHMuUzNUYWJsZXNCdWNrZXRUeXBlID0gUzNUYWJsZXNCdWNrZXRUeXBlO1xuZXhwb3J0cy5TZWxlY3RPYmplY3RDb250ZW50Q29tbWFuZCA9IFNlbGVjdE9iamVjdENvbnRlbnRDb21tYW5kO1xuZXhwb3J0cy5TZXJ2ZXJTaWRlRW5jcnlwdGlvbiA9IFNlcnZlclNpZGVFbmNyeXB0aW9uO1xuZXhwb3J0cy5TZXNzaW9uTW9kZSA9IFNlc3Npb25Nb2RlO1xuZXhwb3J0cy5Tc2VLbXNFbmNyeXB0ZWRPYmplY3RzU3RhdHVzID0gU3NlS21zRW5jcnlwdGVkT2JqZWN0c1N0YXR1cztcbmV4cG9ydHMuU3RvcmFnZUNsYXNzID0gU3RvcmFnZUNsYXNzO1xuZXhwb3J0cy5TdG9yYWdlQ2xhc3NBbmFseXNpc1NjaGVtYVZlcnNpb24gPSBTdG9yYWdlQ2xhc3NBbmFseXNpc1NjaGVtYVZlcnNpb247XG5leHBvcnRzLlRhYmxlU3NlQWxnb3JpdGhtID0gVGFibGVTc2VBbGdvcml0aG07XG5leHBvcnRzLlRhZ2dpbmdEaXJlY3RpdmUgPSBUYWdnaW5nRGlyZWN0aXZlO1xuZXhwb3J0cy5UaWVyID0gVGllcjtcbmV4cG9ydHMuVG9vTWFueVBhcnRzID0gVG9vTWFueVBhcnRzJDE7XG5leHBvcnRzLlRyYW5zaXRpb25EZWZhdWx0TWluaW11bU9iamVjdFNpemUgPSBUcmFuc2l0aW9uRGVmYXVsdE1pbmltdW1PYmplY3RTaXplO1xuZXhwb3J0cy5UcmFuc2l0aW9uU3RvcmFnZUNsYXNzID0gVHJhbnNpdGlvblN0b3JhZ2VDbGFzcztcbmV4cG9ydHMuVHlwZSA9IFR5cGU7XG5leHBvcnRzLlVwZGF0ZUJ1Y2tldE1ldGFkYXRhSW52ZW50b3J5VGFibGVDb25maWd1cmF0aW9uQ29tbWFuZCA9IFVwZGF0ZUJ1Y2tldE1ldGFkYXRhSW52ZW50b3J5VGFibGVDb25maWd1cmF0aW9uQ29tbWFuZDtcbmV4cG9ydHMuVXBkYXRlQnVja2V0TWV0YWRhdGFKb3VybmFsVGFibGVDb25maWd1cmF0aW9uQ29tbWFuZCA9IFVwZGF0ZUJ1Y2tldE1ldGFkYXRhSm91cm5hbFRhYmxlQ29uZmlndXJhdGlvbkNvbW1hbmQ7XG5leHBvcnRzLlVwbG9hZFBhcnRDb21tYW5kID0gVXBsb2FkUGFydENvbW1hbmQ7XG5leHBvcnRzLlVwbG9hZFBhcnRDb3B5Q29tbWFuZCA9IFVwbG9hZFBhcnRDb3B5Q29tbWFuZDtcbmV4cG9ydHMuV3JpdGVHZXRPYmplY3RSZXNwb25zZUNvbW1hbmQgPSBXcml0ZUdldE9iamVjdFJlc3BvbnNlQ29tbWFuZDtcbmV4cG9ydHMucGFnaW5hdGVMaXN0QnVja2V0cyA9IHBhZ2luYXRlTGlzdEJ1Y2tldHM7XG5leHBvcnRzLnBhZ2luYXRlTGlzdERpcmVjdG9yeUJ1Y2tldHMgPSBwYWdpbmF0ZUxpc3REaXJlY3RvcnlCdWNrZXRzO1xuZXhwb3J0cy5wYWdpbmF0ZUxpc3RPYmplY3RzVjIgPSBwYWdpbmF0ZUxpc3RPYmplY3RzVjI7XG5leHBvcnRzLnBhZ2luYXRlTGlzdFBhcnRzID0gcGFnaW5hdGVMaXN0UGFydHM7XG5leHBvcnRzLndhaXRGb3JCdWNrZXRFeGlzdHMgPSB3YWl0Rm9yQnVja2V0RXhpc3RzO1xuZXhwb3J0cy53YWl0Rm9yQnVja2V0Tm90RXhpc3RzID0gd2FpdEZvckJ1Y2tldE5vdEV4aXN0cztcbmV4cG9ydHMud2FpdEZvck9iamVjdEV4aXN0cyA9IHdhaXRGb3JPYmplY3RFeGlzdHM7XG5leHBvcnRzLndhaXRGb3JPYmplY3ROb3RFeGlzdHMgPSB3YWl0Rm9yT2JqZWN0Tm90RXhpc3RzO1xuZXhwb3J0cy53YWl0VW50aWxCdWNrZXRFeGlzdHMgPSB3YWl0VW50aWxCdWNrZXRFeGlzdHM7XG5leHBvcnRzLndhaXRVbnRpbEJ1Y2tldE5vdEV4aXN0cyA9IHdhaXRVbnRpbEJ1Y2tldE5vdEV4aXN0cztcbmV4cG9ydHMud2FpdFVudGlsT2JqZWN0RXhpc3RzID0gd2FpdFVudGlsT2JqZWN0RXhpc3RzO1xuZXhwb3J0cy53YWl0VW50aWxPYmplY3ROb3RFeGlzdHMgPSB3YWl0VW50aWxPYmplY3ROb3RFeGlzdHM7XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLnJlc29sdmVIdHRwQXV0aFNjaGVtZUNvbmZpZyA9IGV4cG9ydHMuZGVmYXVsdENsb3VkV2F0Y2hMb2dzSHR0cEF1dGhTY2hlbWVQcm92aWRlciA9IGV4cG9ydHMuZGVmYXVsdENsb3VkV2F0Y2hMb2dzSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIgPSB2b2lkIDA7XG5jb25zdCBjb3JlXzEgPSByZXF1aXJlKFwiQGF3cy1zZGsvY29yZVwiKTtcbmNvbnN0IHV0aWxfbWlkZGxld2FyZV8xID0gcmVxdWlyZShcIkBzbWl0aHkvdXRpbC1taWRkbGV3YXJlXCIpO1xuY29uc3QgZGVmYXVsdENsb3VkV2F0Y2hMb2dzSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIgPSBhc3luYyAoY29uZmlnLCBjb250ZXh0LCBpbnB1dCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIG9wZXJhdGlvbjogKDAsIHV0aWxfbWlkZGxld2FyZV8xLmdldFNtaXRoeUNvbnRleHQpKGNvbnRleHQpLm9wZXJhdGlvbixcbiAgICAgICAgcmVnaW9uOiAoYXdhaXQgKDAsIHV0aWxfbWlkZGxld2FyZV8xLm5vcm1hbGl6ZVByb3ZpZGVyKShjb25maWcucmVnaW9uKSgpKSB8fFxuICAgICAgICAgICAgKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJleHBlY3RlZCBgcmVnaW9uYCB0byBiZSBjb25maWd1cmVkIGZvciBgYXdzLmF1dGgjc2lndjRgXCIpO1xuICAgICAgICAgICAgfSkoKSxcbiAgICB9O1xufTtcbmV4cG9ydHMuZGVmYXVsdENsb3VkV2F0Y2hMb2dzSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIgPSBkZWZhdWx0Q2xvdWRXYXRjaExvZ3NIdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlcjtcbmZ1bmN0aW9uIGNyZWF0ZUF3c0F1dGhTaWd2NEh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc2NoZW1lSWQ6IFwiYXdzLmF1dGgjc2lndjRcIixcbiAgICAgICAgc2lnbmluZ1Byb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIG5hbWU6IFwibG9nc1wiLFxuICAgICAgICAgICAgcmVnaW9uOiBhdXRoUGFyYW1ldGVycy5yZWdpb24sXG4gICAgICAgIH0sXG4gICAgICAgIHByb3BlcnRpZXNFeHRyYWN0b3I6IChjb25maWcsIGNvbnRleHQpID0+ICh7XG4gICAgICAgICAgICBzaWduaW5nUHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgIGNvbmZpZyxcbiAgICAgICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgfTtcbn1cbmNvbnN0IGRlZmF1bHRDbG91ZFdhdGNoTG9nc0h0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSAoYXV0aFBhcmFtZXRlcnMpID0+IHtcbiAgICBjb25zdCBvcHRpb25zID0gW107XG4gICAgc3dpdGNoIChhdXRoUGFyYW1ldGVycy5vcGVyYXRpb24pIHtcbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgb3B0aW9ucy5wdXNoKGNyZWF0ZUF3c0F1dGhTaWd2NEh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG9wdGlvbnM7XG59O1xuZXhwb3J0cy5kZWZhdWx0Q2xvdWRXYXRjaExvZ3NIdHRwQXV0aFNjaGVtZVByb3ZpZGVyID0gZGVmYXVsdENsb3VkV2F0Y2hMb2dzSHR0cEF1dGhTY2hlbWVQcm92aWRlcjtcbmNvbnN0IHJlc29sdmVIdHRwQXV0aFNjaGVtZUNvbmZpZyA9IChjb25maWcpID0+IHtcbiAgICBjb25zdCBjb25maWdfMCA9ICgwLCBjb3JlXzEucmVzb2x2ZUF3c1Nka1NpZ1Y0Q29uZmlnKShjb25maWcpO1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKGNvbmZpZ18wLCB7XG4gICAgICAgIGF1dGhTY2hlbWVQcmVmZXJlbmNlOiAoMCwgdXRpbF9taWRkbGV3YXJlXzEubm9ybWFsaXplUHJvdmlkZXIpKGNvbmZpZy5hdXRoU2NoZW1lUHJlZmVyZW5jZSA/PyBbXSksXG4gICAgfSk7XG59O1xuZXhwb3J0cy5yZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWcgPSByZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWc7XG4iLCAie1xuICBcIm5hbWVcIjogXCJAYXdzLXNkay9jbGllbnQtY2xvdWR3YXRjaC1sb2dzXCIsXG4gIFwiZGVzY3JpcHRpb25cIjogXCJBV1MgU0RLIGZvciBKYXZhU2NyaXB0IENsb3Vkd2F0Y2ggTG9ncyBDbGllbnQgZm9yIE5vZGUuanMsIEJyb3dzZXIgYW5kIFJlYWN0IE5hdGl2ZVwiLFxuICBcInZlcnNpb25cIjogXCIzLjk1Mi4wXCIsXG4gIFwic2NyaXB0c1wiOiB7XG4gICAgXCJidWlsZFwiOiBcImNvbmN1cnJlbnRseSAneWFybjpidWlsZDpjanMnICd5YXJuOmJ1aWxkOmVzJyAneWFybjpidWlsZDp0eXBlcydcIixcbiAgICBcImJ1aWxkOmNqc1wiOiBcIm5vZGUgLi4vLi4vc2NyaXB0cy9jb21waWxhdGlvbi9pbmxpbmUgY2xpZW50LWNsb3Vkd2F0Y2gtbG9nc1wiLFxuICAgIFwiYnVpbGQ6ZXNcIjogXCJ0c2MgLXAgdHNjb25maWcuZXMuanNvblwiLFxuICAgIFwiYnVpbGQ6aW5jbHVkZTpkZXBzXCI6IFwibGVybmEgcnVuIC0tc2NvcGUgJG5wbV9wYWNrYWdlX25hbWUgLS1pbmNsdWRlLWRlcGVuZGVuY2llcyBidWlsZFwiLFxuICAgIFwiYnVpbGQ6dHlwZXNcIjogXCJ0c2MgLXAgdHNjb25maWcudHlwZXMuanNvblwiLFxuICAgIFwiYnVpbGQ6dHlwZXM6ZG93bmxldmVsXCI6IFwiZG93bmxldmVsLWR0cyBkaXN0LXR5cGVzIGRpc3QtdHlwZXMvdHMzLjRcIixcbiAgICBcImNsZWFuXCI6IFwicmltcmFmIC4vZGlzdC0qICYmIHJpbXJhZiAqLnRzYnVpbGRpbmZvXCIsXG4gICAgXCJleHRyYWN0OmRvY3NcIjogXCJhcGktZXh0cmFjdG9yIHJ1biAtLWxvY2FsXCIsXG4gICAgXCJnZW5lcmF0ZTpjbGllbnRcIjogXCJub2RlIC4uLy4uL3NjcmlwdHMvZ2VuZXJhdGUtY2xpZW50cy9zaW5nbGUtc2VydmljZSAtLXNvbG8gY2xvdWR3YXRjaC1sb2dzXCIsXG4gICAgXCJ0ZXN0OmUyZVwiOiBcInlhcm4gZzp2aXRlc3QgcnVuIC1jIHZpdGVzdC5jb25maWcuZTJlLm10c1wiLFxuICAgIFwidGVzdDplMmU6d2F0Y2hcIjogXCJ5YXJuIGc6dml0ZXN0IHdhdGNoIC1jIHZpdGVzdC5jb25maWcuZTJlLm10c1wiLFxuICAgIFwidGVzdDppbmRleFwiOiBcInRzYyAtLW5vRW1pdCAuL3Rlc3QvaW5kZXgtdHlwZXMudHMgJiYgbm9kZSAuL3Rlc3QvaW5kZXgtb2JqZWN0cy5zcGVjLm1qc1wiXG4gIH0sXG4gIFwibWFpblwiOiBcIi4vZGlzdC1janMvaW5kZXguanNcIixcbiAgXCJ0eXBlc1wiOiBcIi4vZGlzdC10eXBlcy9pbmRleC5kLnRzXCIsXG4gIFwibW9kdWxlXCI6IFwiLi9kaXN0LWVzL2luZGV4LmpzXCIsXG4gIFwic2lkZUVmZmVjdHNcIjogZmFsc2UsXG4gIFwiZGVwZW5kZW5jaWVzXCI6IHtcbiAgICBcIkBhd3MtY3J5cHRvL3NoYTI1Ni1icm93c2VyXCI6IFwiNS4yLjBcIixcbiAgICBcIkBhd3MtY3J5cHRvL3NoYTI1Ni1qc1wiOiBcIjUuMi4wXCIsXG4gICAgXCJAYXdzLXNkay9jb3JlXCI6IFwiMy45NDcuMFwiLFxuICAgIFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlXCI6IFwiMy45NTIuMFwiLFxuICAgIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1ob3N0LWhlYWRlclwiOiBcIjMuOTM2LjBcIixcbiAgICBcIkBhd3Mtc2RrL21pZGRsZXdhcmUtbG9nZ2VyXCI6IFwiMy45MzYuMFwiLFxuICAgIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1yZWN1cnNpb24tZGV0ZWN0aW9uXCI6IFwiMy45NDguMFwiLFxuICAgIFwiQGF3cy1zZGsvbWlkZGxld2FyZS11c2VyLWFnZW50XCI6IFwiMy45NDcuMFwiLFxuICAgIFwiQGF3cy1zZGsvcmVnaW9uLWNvbmZpZy1yZXNvbHZlclwiOiBcIjMuOTM2LjBcIixcbiAgICBcIkBhd3Mtc2RrL3R5cGVzXCI6IFwiMy45MzYuMFwiLFxuICAgIFwiQGF3cy1zZGsvdXRpbC1lbmRwb2ludHNcIjogXCIzLjkzNi4wXCIsXG4gICAgXCJAYXdzLXNkay91dGlsLXVzZXItYWdlbnQtYnJvd3NlclwiOiBcIjMuOTM2LjBcIixcbiAgICBcIkBhd3Mtc2RrL3V0aWwtdXNlci1hZ2VudC1ub2RlXCI6IFwiMy45NDcuMFwiLFxuICAgIFwiQHNtaXRoeS9jb25maWctcmVzb2x2ZXJcIjogXCJeNC40LjNcIixcbiAgICBcIkBzbWl0aHkvY29yZVwiOiBcIl4zLjE4LjdcIixcbiAgICBcIkBzbWl0aHkvZXZlbnRzdHJlYW0tc2VyZGUtYnJvd3NlclwiOiBcIl40LjIuNVwiLFxuICAgIFwiQHNtaXRoeS9ldmVudHN0cmVhbS1zZXJkZS1jb25maWctcmVzb2x2ZXJcIjogXCJeNC4zLjVcIixcbiAgICBcIkBzbWl0aHkvZXZlbnRzdHJlYW0tc2VyZGUtbm9kZVwiOiBcIl40LjIuNVwiLFxuICAgIFwiQHNtaXRoeS9mZXRjaC1odHRwLWhhbmRsZXJcIjogXCJeNS4zLjZcIixcbiAgICBcIkBzbWl0aHkvaGFzaC1ub2RlXCI6IFwiXjQuMi41XCIsXG4gICAgXCJAc21pdGh5L2ludmFsaWQtZGVwZW5kZW5jeVwiOiBcIl40LjIuNVwiLFxuICAgIFwiQHNtaXRoeS9taWRkbGV3YXJlLWNvbnRlbnQtbGVuZ3RoXCI6IFwiXjQuMi41XCIsXG4gICAgXCJAc21pdGh5L21pZGRsZXdhcmUtZW5kcG9pbnRcIjogXCJeNC4zLjE0XCIsXG4gICAgXCJAc21pdGh5L21pZGRsZXdhcmUtcmV0cnlcIjogXCJeNC40LjE0XCIsXG4gICAgXCJAc21pdGh5L21pZGRsZXdhcmUtc2VyZGVcIjogXCJeNC4yLjZcIixcbiAgICBcIkBzbWl0aHkvbWlkZGxld2FyZS1zdGFja1wiOiBcIl40LjIuNVwiLFxuICAgIFwiQHNtaXRoeS9ub2RlLWNvbmZpZy1wcm92aWRlclwiOiBcIl40LjMuNVwiLFxuICAgIFwiQHNtaXRoeS9ub2RlLWh0dHAtaGFuZGxlclwiOiBcIl40LjQuNVwiLFxuICAgIFwiQHNtaXRoeS9wcm90b2NvbC1odHRwXCI6IFwiXjUuMy41XCIsXG4gICAgXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjogXCJeNC45LjEwXCIsXG4gICAgXCJAc21pdGh5L3R5cGVzXCI6IFwiXjQuOS4wXCIsXG4gICAgXCJAc21pdGh5L3VybC1wYXJzZXJcIjogXCJeNC4yLjVcIixcbiAgICBcIkBzbWl0aHkvdXRpbC1iYXNlNjRcIjogXCJeNC4zLjBcIixcbiAgICBcIkBzbWl0aHkvdXRpbC1ib2R5LWxlbmd0aC1icm93c2VyXCI6IFwiXjQuMi4wXCIsXG4gICAgXCJAc21pdGh5L3V0aWwtYm9keS1sZW5ndGgtbm9kZVwiOiBcIl40LjIuMVwiLFxuICAgIFwiQHNtaXRoeS91dGlsLWRlZmF1bHRzLW1vZGUtYnJvd3NlclwiOiBcIl40LjMuMTNcIixcbiAgICBcIkBzbWl0aHkvdXRpbC1kZWZhdWx0cy1tb2RlLW5vZGVcIjogXCJeNC4yLjE2XCIsXG4gICAgXCJAc21pdGh5L3V0aWwtZW5kcG9pbnRzXCI6IFwiXjMuMi41XCIsXG4gICAgXCJAc21pdGh5L3V0aWwtbWlkZGxld2FyZVwiOiBcIl40LjIuNVwiLFxuICAgIFwiQHNtaXRoeS91dGlsLXJldHJ5XCI6IFwiXjQuMi41XCIsXG4gICAgXCJAc21pdGh5L3V0aWwtdXRmOFwiOiBcIl40LjIuMFwiLFxuICAgIFwidHNsaWJcIjogXCJeMi42LjJcIlxuICB9LFxuICBcImRldkRlcGVuZGVuY2llc1wiOiB7XG4gICAgXCJAdHNjb25maWcvbm9kZTE4XCI6IFwiMTguMi40XCIsXG4gICAgXCJAdHlwZXMvbm9kZVwiOiBcIl4xOC4xOS42OVwiLFxuICAgIFwiY29uY3VycmVudGx5XCI6IFwiNy4wLjBcIixcbiAgICBcImRvd25sZXZlbC1kdHNcIjogXCIwLjEwLjFcIixcbiAgICBcInJpbXJhZlwiOiBcIjMuMC4yXCIsXG4gICAgXCJ0eXBlc2NyaXB0XCI6IFwifjUuOC4zXCJcbiAgfSxcbiAgXCJlbmdpbmVzXCI6IHtcbiAgICBcIm5vZGVcIjogXCI+PTE4LjAuMFwiXG4gIH0sXG4gIFwidHlwZXNWZXJzaW9uc1wiOiB7XG4gICAgXCI8NC4wXCI6IHtcbiAgICAgIFwiZGlzdC10eXBlcy8qXCI6IFtcbiAgICAgICAgXCJkaXN0LXR5cGVzL3RzMy40LypcIlxuICAgICAgXVxuICAgIH1cbiAgfSxcbiAgXCJmaWxlc1wiOiBbXG4gICAgXCJkaXN0LSovKipcIlxuICBdLFxuICBcImF1dGhvclwiOiB7XG4gICAgXCJuYW1lXCI6IFwiQVdTIFNESyBmb3IgSmF2YVNjcmlwdCBUZWFtXCIsXG4gICAgXCJ1cmxcIjogXCJodHRwczovL2F3cy5hbWF6b24uY29tL2phdmFzY3JpcHQvXCJcbiAgfSxcbiAgXCJsaWNlbnNlXCI6IFwiQXBhY2hlLTIuMFwiLFxuICBcImJyb3dzZXJcIjoge1xuICAgIFwiLi9kaXN0LWVzL3J1bnRpbWVDb25maWdcIjogXCIuL2Rpc3QtZXMvcnVudGltZUNvbmZpZy5icm93c2VyXCJcbiAgfSxcbiAgXCJyZWFjdC1uYXRpdmVcIjoge1xuICAgIFwiLi9kaXN0LWVzL3J1bnRpbWVDb25maWdcIjogXCIuL2Rpc3QtZXMvcnVudGltZUNvbmZpZy5uYXRpdmVcIlxuICB9LFxuICBcImhvbWVwYWdlXCI6IFwiaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3Mtc2RrLWpzLXYzL3RyZWUvbWFpbi9jbGllbnRzL2NsaWVudC1jbG91ZHdhdGNoLWxvZ3NcIixcbiAgXCJyZXBvc2l0b3J5XCI6IHtcbiAgICBcInR5cGVcIjogXCJnaXRcIixcbiAgICBcInVybFwiOiBcImh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLXNkay1qcy12My5naXRcIixcbiAgICBcImRpcmVjdG9yeVwiOiBcImNsaWVudHMvY2xpZW50LWNsb3Vkd2F0Y2gtbG9nc1wiXG4gIH1cbn1cbiIsICJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMucnVsZVNldCA9IHZvaWQgMDtcbmNvbnN0IHUgPSBcInJlcXVpcmVkXCIsIHYgPSBcImZuXCIsIHcgPSBcImFyZ3ZcIiwgeCA9IFwicmVmXCI7XG5jb25zdCBhID0gdHJ1ZSwgYiA9IFwiaXNTZXRcIiwgYyA9IFwiYm9vbGVhbkVxdWFsc1wiLCBkID0gXCJlcnJvclwiLCBlID0gXCJlbmRwb2ludFwiLCBmID0gXCJ0cmVlXCIsIGcgPSBcIlBhcnRpdGlvblJlc3VsdFwiLCBoID0gXCJzdHJpbmdFcXVhbHNcIiwgaSA9IHsgW3VdOiBmYWxzZSwgXCJ0eXBlXCI6IFwic3RyaW5nXCIgfSwgaiA9IHsgW3VdOiB0cnVlLCBcImRlZmF1bHRcIjogZmFsc2UsIFwidHlwZVwiOiBcImJvb2xlYW5cIiB9LCBrID0geyBbeF06IFwiRW5kcG9pbnRcIiB9LCBsID0geyBbdl06IGMsIFt3XTogW3sgW3hdOiBcIlVzZUZJUFNcIiB9LCB0cnVlXSB9LCBtID0geyBbdl06IGMsIFt3XTogW3sgW3hdOiBcIlVzZUR1YWxTdGFja1wiIH0sIHRydWVdIH0sIG4gPSB7fSwgbyA9IHsgW3hdOiBcIlJlZ2lvblwiIH0sIHAgPSB7IFt2XTogXCJnZXRBdHRyXCIsIFt3XTogW3sgW3hdOiBnIH0sIFwic3VwcG9ydHNGSVBTXCJdIH0sIHEgPSB7IFt2XTogYywgW3ddOiBbdHJ1ZSwgeyBbdl06IFwiZ2V0QXR0clwiLCBbd106IFt7IFt4XTogZyB9LCBcInN1cHBvcnRzRHVhbFN0YWNrXCJdIH1dIH0sIHIgPSBbbF0sIHMgPSBbbV0sIHQgPSBbb107XG5jb25zdCBfZGF0YSA9IHsgdmVyc2lvbjogXCIxLjBcIiwgcGFyYW1ldGVyczogeyBSZWdpb246IGksIFVzZUR1YWxTdGFjazogaiwgVXNlRklQUzogaiwgRW5kcG9pbnQ6IGkgfSwgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IFt7IFt2XTogYiwgW3ddOiBba10gfV0sIHJ1bGVzOiBbeyBjb25kaXRpb25zOiByLCBlcnJvcjogXCJJbnZhbGlkIENvbmZpZ3VyYXRpb246IEZJUFMgYW5kIGN1c3RvbSBlbmRwb2ludCBhcmUgbm90IHN1cHBvcnRlZFwiLCB0eXBlOiBkIH0sIHsgY29uZGl0aW9uczogcywgZXJyb3I6IFwiSW52YWxpZCBDb25maWd1cmF0aW9uOiBEdWFsc3RhY2sgYW5kIGN1c3RvbSBlbmRwb2ludCBhcmUgbm90IHN1cHBvcnRlZFwiLCB0eXBlOiBkIH0sIHsgZW5kcG9pbnQ6IHsgdXJsOiBrLCBwcm9wZXJ0aWVzOiBuLCBoZWFkZXJzOiBuIH0sIHR5cGU6IGUgfV0sIHR5cGU6IGYgfSwgeyBjb25kaXRpb25zOiBbeyBbdl06IGIsIFt3XTogdCB9XSwgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IFt7IFt2XTogXCJhd3MucGFydGl0aW9uXCIsIFt3XTogdCwgYXNzaWduOiBnIH1dLCBydWxlczogW3sgY29uZGl0aW9uczogW2wsIG1dLCBydWxlczogW3sgY29uZGl0aW9uczogW3sgW3ZdOiBjLCBbd106IFthLCBwXSB9LCBxXSwgcnVsZXM6IFt7IGVuZHBvaW50OiB7IHVybDogXCJodHRwczovL2xvZ3MtZmlwcy57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2R1YWxTdGFja0Ruc1N1ZmZpeH1cIiwgcHJvcGVydGllczogbiwgaGVhZGVyczogbiB9LCB0eXBlOiBlIH1dLCB0eXBlOiBmIH0sIHsgZXJyb3I6IFwiRklQUyBhbmQgRHVhbFN0YWNrIGFyZSBlbmFibGVkLCBidXQgdGhpcyBwYXJ0aXRpb24gZG9lcyBub3Qgc3VwcG9ydCBvbmUgb3IgYm90aFwiLCB0eXBlOiBkIH1dLCB0eXBlOiBmIH0sIHsgY29uZGl0aW9uczogciwgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IFt7IFt2XTogYywgW3ddOiBbcCwgYV0gfV0sIHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbeyBbdl06IGgsIFt3XTogW28sIFwidXMtZ292LWVhc3QtMVwiXSB9XSwgZW5kcG9pbnQ6IHsgdXJsOiBcImh0dHBzOi8vbG9ncy51cy1nb3YtZWFzdC0xLmFtYXpvbmF3cy5jb21cIiwgcHJvcGVydGllczogbiwgaGVhZGVyczogbiB9LCB0eXBlOiBlIH0sIHsgY29uZGl0aW9uczogW3sgW3ZdOiBoLCBbd106IFtvLCBcInVzLWdvdi13ZXN0LTFcIl0gfV0sIGVuZHBvaW50OiB7IHVybDogXCJodHRwczovL2xvZ3MudXMtZ292LXdlc3QtMS5hbWF6b25hd3MuY29tXCIsIHByb3BlcnRpZXM6IG4sIGhlYWRlcnM6IG4gfSwgdHlwZTogZSB9LCB7IGVuZHBvaW50OiB7IHVybDogXCJodHRwczovL2xvZ3MtZmlwcy57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH1cIiwgcHJvcGVydGllczogbiwgaGVhZGVyczogbiB9LCB0eXBlOiBlIH1dLCB0eXBlOiBmIH0sIHsgZXJyb3I6IFwiRklQUyBpcyBlbmFibGVkIGJ1dCB0aGlzIHBhcnRpdGlvbiBkb2VzIG5vdCBzdXBwb3J0IEZJUFNcIiwgdHlwZTogZCB9XSwgdHlwZTogZiB9LCB7IGNvbmRpdGlvbnM6IHMsIHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbcV0sIHJ1bGVzOiBbeyBlbmRwb2ludDogeyB1cmw6IFwiaHR0cHM6Ly9sb2dzLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZHVhbFN0YWNrRG5zU3VmZml4fVwiLCBwcm9wZXJ0aWVzOiBuLCBoZWFkZXJzOiBuIH0sIHR5cGU6IGUgfV0sIHR5cGU6IGYgfSwgeyBlcnJvcjogXCJEdWFsU3RhY2sgaXMgZW5hYmxlZCBidXQgdGhpcyBwYXJ0aXRpb24gZG9lcyBub3Qgc3VwcG9ydCBEdWFsU3RhY2tcIiwgdHlwZTogZCB9XSwgdHlwZTogZiB9LCB7IGVuZHBvaW50OiB7IHVybDogXCJodHRwczovL2xvZ3Mue1JlZ2lvbn0ue1BhcnRpdGlvblJlc3VsdCNkbnNTdWZmaXh9XCIsIHByb3BlcnRpZXM6IG4sIGhlYWRlcnM6IG4gfSwgdHlwZTogZSB9XSwgdHlwZTogZiB9XSwgdHlwZTogZiB9LCB7IGVycm9yOiBcIkludmFsaWQgQ29uZmlndXJhdGlvbjogTWlzc2luZyBSZWdpb25cIiwgdHlwZTogZCB9XSB9O1xuZXhwb3J0cy5ydWxlU2V0ID0gX2RhdGE7XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmRlZmF1bHRFbmRwb2ludFJlc29sdmVyID0gdm9pZCAwO1xuY29uc3QgdXRpbF9lbmRwb2ludHNfMSA9IHJlcXVpcmUoXCJAYXdzLXNkay91dGlsLWVuZHBvaW50c1wiKTtcbmNvbnN0IHV0aWxfZW5kcG9pbnRzXzIgPSByZXF1aXJlKFwiQHNtaXRoeS91dGlsLWVuZHBvaW50c1wiKTtcbmNvbnN0IHJ1bGVzZXRfMSA9IHJlcXVpcmUoXCIuL3J1bGVzZXRcIik7XG5jb25zdCBjYWNoZSA9IG5ldyB1dGlsX2VuZHBvaW50c18yLkVuZHBvaW50Q2FjaGUoe1xuICAgIHNpemU6IDUwLFxuICAgIHBhcmFtczogW1wiRW5kcG9pbnRcIiwgXCJSZWdpb25cIiwgXCJVc2VEdWFsU3RhY2tcIiwgXCJVc2VGSVBTXCJdLFxufSk7XG5jb25zdCBkZWZhdWx0RW5kcG9pbnRSZXNvbHZlciA9IChlbmRwb2ludFBhcmFtcywgY29udGV4dCA9IHt9KSA9PiB7XG4gICAgcmV0dXJuIGNhY2hlLmdldChlbmRwb2ludFBhcmFtcywgKCkgPT4gKDAsIHV0aWxfZW5kcG9pbnRzXzIucmVzb2x2ZUVuZHBvaW50KShydWxlc2V0XzEucnVsZVNldCwge1xuICAgICAgICBlbmRwb2ludFBhcmFtczogZW5kcG9pbnRQYXJhbXMsXG4gICAgICAgIGxvZ2dlcjogY29udGV4dC5sb2dnZXIsXG4gICAgfSkpO1xufTtcbmV4cG9ydHMuZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIgPSBkZWZhdWx0RW5kcG9pbnRSZXNvbHZlcjtcbnV0aWxfZW5kcG9pbnRzXzIuY3VzdG9tRW5kcG9pbnRGdW5jdGlvbnMuYXdzID0gdXRpbF9lbmRwb2ludHNfMS5hd3NFbmRwb2ludEZ1bmN0aW9ucztcbiIsICJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuZ2V0UnVudGltZUNvbmZpZyA9IHZvaWQgMDtcbmNvbnN0IGNvcmVfMSA9IHJlcXVpcmUoXCJAYXdzLXNkay9jb3JlXCIpO1xuY29uc3QgcHJvdG9jb2xzXzEgPSByZXF1aXJlKFwiQGF3cy1zZGsvY29yZS9wcm90b2NvbHNcIik7XG5jb25zdCBzbWl0aHlfY2xpZW50XzEgPSByZXF1aXJlKFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCIpO1xuY29uc3QgdXJsX3BhcnNlcl8xID0gcmVxdWlyZShcIkBzbWl0aHkvdXJsLXBhcnNlclwiKTtcbmNvbnN0IHV0aWxfYmFzZTY0XzEgPSByZXF1aXJlKFwiQHNtaXRoeS91dGlsLWJhc2U2NFwiKTtcbmNvbnN0IHV0aWxfdXRmOF8xID0gcmVxdWlyZShcIkBzbWl0aHkvdXRpbC11dGY4XCIpO1xuY29uc3QgaHR0cEF1dGhTY2hlbWVQcm92aWRlcl8xID0gcmVxdWlyZShcIi4vYXV0aC9odHRwQXV0aFNjaGVtZVByb3ZpZGVyXCIpO1xuY29uc3QgZW5kcG9pbnRSZXNvbHZlcl8xID0gcmVxdWlyZShcIi4vZW5kcG9pbnQvZW5kcG9pbnRSZXNvbHZlclwiKTtcbmNvbnN0IGdldFJ1bnRpbWVDb25maWcgPSAoY29uZmlnKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgYXBpVmVyc2lvbjogXCIyMDE0LTAzLTI4XCIsXG4gICAgICAgIGJhc2U2NERlY29kZXI6IGNvbmZpZz8uYmFzZTY0RGVjb2RlciA/PyB1dGlsX2Jhc2U2NF8xLmZyb21CYXNlNjQsXG4gICAgICAgIGJhc2U2NEVuY29kZXI6IGNvbmZpZz8uYmFzZTY0RW5jb2RlciA/PyB1dGlsX2Jhc2U2NF8xLnRvQmFzZTY0LFxuICAgICAgICBkaXNhYmxlSG9zdFByZWZpeDogY29uZmlnPy5kaXNhYmxlSG9zdFByZWZpeCA/PyBmYWxzZSxcbiAgICAgICAgZW5kcG9pbnRQcm92aWRlcjogY29uZmlnPy5lbmRwb2ludFByb3ZpZGVyID8/IGVuZHBvaW50UmVzb2x2ZXJfMS5kZWZhdWx0RW5kcG9pbnRSZXNvbHZlcixcbiAgICAgICAgZXh0ZW5zaW9uczogY29uZmlnPy5leHRlbnNpb25zID8/IFtdLFxuICAgICAgICBodHRwQXV0aFNjaGVtZVByb3ZpZGVyOiBjb25maWc/Lmh0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPz8gaHR0cEF1dGhTY2hlbWVQcm92aWRlcl8xLmRlZmF1bHRDbG91ZFdhdGNoTG9nc0h0dHBBdXRoU2NoZW1lUHJvdmlkZXIsXG4gICAgICAgIGh0dHBBdXRoU2NoZW1lczogY29uZmlnPy5odHRwQXV0aFNjaGVtZXMgPz8gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHNjaGVtZUlkOiBcImF3cy5hdXRoI3NpZ3Y0XCIsXG4gICAgICAgICAgICAgICAgaWRlbnRpdHlQcm92aWRlcjogKGlwYykgPT4gaXBjLmdldElkZW50aXR5UHJvdmlkZXIoXCJhd3MuYXV0aCNzaWd2NFwiKSxcbiAgICAgICAgICAgICAgICBzaWduZXI6IG5ldyBjb3JlXzEuQXdzU2RrU2lnVjRTaWduZXIoKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIGxvZ2dlcjogY29uZmlnPy5sb2dnZXIgPz8gbmV3IHNtaXRoeV9jbGllbnRfMS5Ob09wTG9nZ2VyKCksXG4gICAgICAgIHByb3RvY29sOiBjb25maWc/LnByb3RvY29sID8/XG4gICAgICAgICAgICBuZXcgcHJvdG9jb2xzXzEuQXdzSnNvbjFfMVByb3RvY29sKHtcbiAgICAgICAgICAgICAgICBkZWZhdWx0TmFtZXNwYWNlOiBcImNvbS5hbWF6b25hd3MuY2xvdWR3YXRjaGxvZ3NcIixcbiAgICAgICAgICAgICAgICBzZXJ2aWNlVGFyZ2V0OiBcIkxvZ3NfMjAxNDAzMjhcIixcbiAgICAgICAgICAgICAgICBhd3NRdWVyeUNvbXBhdGlibGU6IGZhbHNlLFxuICAgICAgICAgICAgfSksXG4gICAgICAgIHNlcnZpY2VJZDogY29uZmlnPy5zZXJ2aWNlSWQgPz8gXCJDbG91ZFdhdGNoIExvZ3NcIixcbiAgICAgICAgdXJsUGFyc2VyOiBjb25maWc/LnVybFBhcnNlciA/PyB1cmxfcGFyc2VyXzEucGFyc2VVcmwsXG4gICAgICAgIHV0ZjhEZWNvZGVyOiBjb25maWc/LnV0ZjhEZWNvZGVyID8/IHV0aWxfdXRmOF8xLmZyb21VdGY4LFxuICAgICAgICB1dGY4RW5jb2RlcjogY29uZmlnPy51dGY4RW5jb2RlciA/PyB1dGlsX3V0ZjhfMS50b1V0ZjgsXG4gICAgfTtcbn07XG5leHBvcnRzLmdldFJ1bnRpbWVDb25maWcgPSBnZXRSdW50aW1lQ29uZmlnO1xuIiwgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5nZXRSdW50aW1lQ29uZmlnID0gdm9pZCAwO1xuY29uc3QgdHNsaWJfMSA9IHJlcXVpcmUoXCJ0c2xpYlwiKTtcbmNvbnN0IHBhY2thZ2VfanNvbl8xID0gdHNsaWJfMS5fX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4uL3BhY2thZ2UuanNvblwiKSk7XG5jb25zdCBjb3JlXzEgPSByZXF1aXJlKFwiQGF3cy1zZGsvY29yZVwiKTtcbmNvbnN0IGNyZWRlbnRpYWxfcHJvdmlkZXJfbm9kZV8xID0gcmVxdWlyZShcIkBhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbm9kZVwiKTtcbmNvbnN0IHV0aWxfdXNlcl9hZ2VudF9ub2RlXzEgPSByZXF1aXJlKFwiQGF3cy1zZGsvdXRpbC11c2VyLWFnZW50LW5vZGVcIik7XG5jb25zdCBjb25maWdfcmVzb2x2ZXJfMSA9IHJlcXVpcmUoXCJAc21pdGh5L2NvbmZpZy1yZXNvbHZlclwiKTtcbmNvbnN0IGV2ZW50c3RyZWFtX3NlcmRlX25vZGVfMSA9IHJlcXVpcmUoXCJAc21pdGh5L2V2ZW50c3RyZWFtLXNlcmRlLW5vZGVcIik7XG5jb25zdCBoYXNoX25vZGVfMSA9IHJlcXVpcmUoXCJAc21pdGh5L2hhc2gtbm9kZVwiKTtcbmNvbnN0IG1pZGRsZXdhcmVfcmV0cnlfMSA9IHJlcXVpcmUoXCJAc21pdGh5L21pZGRsZXdhcmUtcmV0cnlcIik7XG5jb25zdCBub2RlX2NvbmZpZ19wcm92aWRlcl8xID0gcmVxdWlyZShcIkBzbWl0aHkvbm9kZS1jb25maWctcHJvdmlkZXJcIik7XG5jb25zdCBub2RlX2h0dHBfaGFuZGxlcl8xID0gcmVxdWlyZShcIkBzbWl0aHkvbm9kZS1odHRwLWhhbmRsZXJcIik7XG5jb25zdCBzbWl0aHlfY2xpZW50XzEgPSByZXF1aXJlKFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCIpO1xuY29uc3QgdXRpbF9ib2R5X2xlbmd0aF9ub2RlXzEgPSByZXF1aXJlKFwiQHNtaXRoeS91dGlsLWJvZHktbGVuZ3RoLW5vZGVcIik7XG5jb25zdCB1dGlsX2RlZmF1bHRzX21vZGVfbm9kZV8xID0gcmVxdWlyZShcIkBzbWl0aHkvdXRpbC1kZWZhdWx0cy1tb2RlLW5vZGVcIik7XG5jb25zdCB1dGlsX3JldHJ5XzEgPSByZXF1aXJlKFwiQHNtaXRoeS91dGlsLXJldHJ5XCIpO1xuY29uc3QgcnVudGltZUNvbmZpZ19zaGFyZWRfMSA9IHJlcXVpcmUoXCIuL3J1bnRpbWVDb25maWcuc2hhcmVkXCIpO1xuY29uc3QgZ2V0UnVudGltZUNvbmZpZyA9IChjb25maWcpID0+IHtcbiAgICAoMCwgc21pdGh5X2NsaWVudF8xLmVtaXRXYXJuaW5nSWZVbnN1cHBvcnRlZFZlcnNpb24pKHByb2Nlc3MudmVyc2lvbik7XG4gICAgY29uc3QgZGVmYXVsdHNNb2RlID0gKDAsIHV0aWxfZGVmYXVsdHNfbW9kZV9ub2RlXzEucmVzb2x2ZURlZmF1bHRzTW9kZUNvbmZpZykoY29uZmlnKTtcbiAgICBjb25zdCBkZWZhdWx0Q29uZmlnUHJvdmlkZXIgPSAoKSA9PiBkZWZhdWx0c01vZGUoKS50aGVuKHNtaXRoeV9jbGllbnRfMS5sb2FkQ29uZmlnc0ZvckRlZmF1bHRNb2RlKTtcbiAgICBjb25zdCBjbGllbnRTaGFyZWRWYWx1ZXMgPSAoMCwgcnVudGltZUNvbmZpZ19zaGFyZWRfMS5nZXRSdW50aW1lQ29uZmlnKShjb25maWcpO1xuICAgICgwLCBjb3JlXzEuZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbikocHJvY2Vzcy52ZXJzaW9uKTtcbiAgICBjb25zdCBsb2FkZXJDb25maWcgPSB7XG4gICAgICAgIHByb2ZpbGU6IGNvbmZpZz8ucHJvZmlsZSxcbiAgICAgICAgbG9nZ2VyOiBjbGllbnRTaGFyZWRWYWx1ZXMubG9nZ2VyLFxuICAgIH07XG4gICAgcmV0dXJuIHtcbiAgICAgICAgLi4uY2xpZW50U2hhcmVkVmFsdWVzLFxuICAgICAgICAuLi5jb25maWcsXG4gICAgICAgIHJ1bnRpbWU6IFwibm9kZVwiLFxuICAgICAgICBkZWZhdWx0c01vZGUsXG4gICAgICAgIGF1dGhTY2hlbWVQcmVmZXJlbmNlOiBjb25maWc/LmF1dGhTY2hlbWVQcmVmZXJlbmNlID8/ICgwLCBub2RlX2NvbmZpZ19wcm92aWRlcl8xLmxvYWRDb25maWcpKGNvcmVfMS5OT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfT1BUSU9OUywgbG9hZGVyQ29uZmlnKSxcbiAgICAgICAgYm9keUxlbmd0aENoZWNrZXI6IGNvbmZpZz8uYm9keUxlbmd0aENoZWNrZXIgPz8gdXRpbF9ib2R5X2xlbmd0aF9ub2RlXzEuY2FsY3VsYXRlQm9keUxlbmd0aCxcbiAgICAgICAgY3JlZGVudGlhbERlZmF1bHRQcm92aWRlcjogY29uZmlnPy5jcmVkZW50aWFsRGVmYXVsdFByb3ZpZGVyID8/IGNyZWRlbnRpYWxfcHJvdmlkZXJfbm9kZV8xLmRlZmF1bHRQcm92aWRlcixcbiAgICAgICAgZGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyOiBjb25maWc/LmRlZmF1bHRVc2VyQWdlbnRQcm92aWRlciA/P1xuICAgICAgICAgICAgKDAsIHV0aWxfdXNlcl9hZ2VudF9ub2RlXzEuY3JlYXRlRGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyKSh7IHNlcnZpY2VJZDogY2xpZW50U2hhcmVkVmFsdWVzLnNlcnZpY2VJZCwgY2xpZW50VmVyc2lvbjogcGFja2FnZV9qc29uXzEuZGVmYXVsdC52ZXJzaW9uIH0pLFxuICAgICAgICBldmVudFN0cmVhbVNlcmRlUHJvdmlkZXI6IGNvbmZpZz8uZXZlbnRTdHJlYW1TZXJkZVByb3ZpZGVyID8/IGV2ZW50c3RyZWFtX3NlcmRlX25vZGVfMS5ldmVudFN0cmVhbVNlcmRlUHJvdmlkZXIsXG4gICAgICAgIG1heEF0dGVtcHRzOiBjb25maWc/Lm1heEF0dGVtcHRzID8/ICgwLCBub2RlX2NvbmZpZ19wcm92aWRlcl8xLmxvYWRDb25maWcpKG1pZGRsZXdhcmVfcmV0cnlfMS5OT0RFX01BWF9BVFRFTVBUX0NPTkZJR19PUFRJT05TLCBjb25maWcpLFxuICAgICAgICByZWdpb246IGNvbmZpZz8ucmVnaW9uID8/XG4gICAgICAgICAgICAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKShjb25maWdfcmVzb2x2ZXJfMS5OT0RFX1JFR0lPTl9DT05GSUdfT1BUSU9OUywgeyAuLi5jb25maWdfcmVzb2x2ZXJfMS5OT0RFX1JFR0lPTl9DT05GSUdfRklMRV9PUFRJT05TLCAuLi5sb2FkZXJDb25maWcgfSksXG4gICAgICAgIHJlcXVlc3RIYW5kbGVyOiBub2RlX2h0dHBfaGFuZGxlcl8xLk5vZGVIdHRwSGFuZGxlci5jcmVhdGUoY29uZmlnPy5yZXF1ZXN0SGFuZGxlciA/PyBkZWZhdWx0Q29uZmlnUHJvdmlkZXIpLFxuICAgICAgICByZXRyeU1vZGU6IGNvbmZpZz8ucmV0cnlNb2RlID8/XG4gICAgICAgICAgICAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKSh7XG4gICAgICAgICAgICAgICAgLi4ubWlkZGxld2FyZV9yZXRyeV8xLk5PREVfUkVUUllfTU9ERV9DT05GSUdfT1BUSU9OUyxcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiBhc3luYyAoKSA9PiAoYXdhaXQgZGVmYXVsdENvbmZpZ1Byb3ZpZGVyKCkpLnJldHJ5TW9kZSB8fCB1dGlsX3JldHJ5XzEuREVGQVVMVF9SRVRSWV9NT0RFLFxuICAgICAgICAgICAgfSwgY29uZmlnKSxcbiAgICAgICAgc2hhMjU2OiBjb25maWc/LnNoYTI1NiA/PyBoYXNoX25vZGVfMS5IYXNoLmJpbmQobnVsbCwgXCJzaGEyNTZcIiksXG4gICAgICAgIHN0cmVhbUNvbGxlY3RvcjogY29uZmlnPy5zdHJlYW1Db2xsZWN0b3IgPz8gbm9kZV9odHRwX2hhbmRsZXJfMS5zdHJlYW1Db2xsZWN0b3IsXG4gICAgICAgIHVzZUR1YWxzdGFja0VuZHBvaW50OiBjb25maWc/LnVzZUR1YWxzdGFja0VuZHBvaW50ID8/ICgwLCBub2RlX2NvbmZpZ19wcm92aWRlcl8xLmxvYWRDb25maWcpKGNvbmZpZ19yZXNvbHZlcl8xLk5PREVfVVNFX0RVQUxTVEFDS19FTkRQT0lOVF9DT05GSUdfT1BUSU9OUywgbG9hZGVyQ29uZmlnKSxcbiAgICAgICAgdXNlRmlwc0VuZHBvaW50OiBjb25maWc/LnVzZUZpcHNFbmRwb2ludCA/PyAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKShjb25maWdfcmVzb2x2ZXJfMS5OT0RFX1VTRV9GSVBTX0VORFBPSU5UX0NPTkZJR19PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgICAgICB1c2VyQWdlbnRBcHBJZDogY29uZmlnPy51c2VyQWdlbnRBcHBJZCA/PyAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKSh1dGlsX3VzZXJfYWdlbnRfbm9kZV8xLk5PREVfQVBQX0lEX0NPTkZJR19PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgIH07XG59O1xuZXhwb3J0cy5nZXRSdW50aW1lQ29uZmlnID0gZ2V0UnVudGltZUNvbmZpZztcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBtaWRkbGV3YXJlSG9zdEhlYWRlciA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL21pZGRsZXdhcmUtaG9zdC1oZWFkZXInKTtcbnZhciBtaWRkbGV3YXJlTG9nZ2VyID0gcmVxdWlyZSgnQGF3cy1zZGsvbWlkZGxld2FyZS1sb2dnZXInKTtcbnZhciBtaWRkbGV3YXJlUmVjdXJzaW9uRGV0ZWN0aW9uID0gcmVxdWlyZSgnQGF3cy1zZGsvbWlkZGxld2FyZS1yZWN1cnNpb24tZGV0ZWN0aW9uJyk7XG52YXIgbWlkZGxld2FyZVVzZXJBZ2VudCA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL21pZGRsZXdhcmUtdXNlci1hZ2VudCcpO1xudmFyIGNvbmZpZ1Jlc29sdmVyID0gcmVxdWlyZSgnQHNtaXRoeS9jb25maWctcmVzb2x2ZXInKTtcbnZhciBjb3JlID0gcmVxdWlyZSgnQHNtaXRoeS9jb3JlJyk7XG52YXIgc2NoZW1hID0gcmVxdWlyZSgnQHNtaXRoeS9jb3JlL3NjaGVtYScpO1xudmFyIGV2ZW50c3RyZWFtU2VyZGVDb25maWdSZXNvbHZlciA9IHJlcXVpcmUoJ0BzbWl0aHkvZXZlbnRzdHJlYW0tc2VyZGUtY29uZmlnLXJlc29sdmVyJyk7XG52YXIgbWlkZGxld2FyZUNvbnRlbnRMZW5ndGggPSByZXF1aXJlKCdAc21pdGh5L21pZGRsZXdhcmUtY29udGVudC1sZW5ndGgnKTtcbnZhciBtaWRkbGV3YXJlRW5kcG9pbnQgPSByZXF1aXJlKCdAc21pdGh5L21pZGRsZXdhcmUtZW5kcG9pbnQnKTtcbnZhciBtaWRkbGV3YXJlUmV0cnkgPSByZXF1aXJlKCdAc21pdGh5L21pZGRsZXdhcmUtcmV0cnknKTtcbnZhciBzbWl0aHlDbGllbnQgPSByZXF1aXJlKCdAc21pdGh5L3NtaXRoeS1jbGllbnQnKTtcbnZhciBodHRwQXV0aFNjaGVtZVByb3ZpZGVyID0gcmVxdWlyZSgnLi9hdXRoL2h0dHBBdXRoU2NoZW1lUHJvdmlkZXInKTtcbnZhciBydW50aW1lQ29uZmlnID0gcmVxdWlyZSgnLi9ydW50aW1lQ29uZmlnJyk7XG52YXIgcmVnaW9uQ29uZmlnUmVzb2x2ZXIgPSByZXF1aXJlKCdAYXdzLXNkay9yZWdpb24tY29uZmlnLXJlc29sdmVyJyk7XG52YXIgcHJvdG9jb2xIdHRwID0gcmVxdWlyZSgnQHNtaXRoeS9wcm90b2NvbC1odHRwJyk7XG5cbmNvbnN0IHJlc29sdmVDbGllbnRFbmRwb2ludFBhcmFtZXRlcnMgPSAob3B0aW9ucykgPT4ge1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKG9wdGlvbnMsIHtcbiAgICAgICAgdXNlRHVhbHN0YWNrRW5kcG9pbnQ6IG9wdGlvbnMudXNlRHVhbHN0YWNrRW5kcG9pbnQgPz8gZmFsc2UsXG4gICAgICAgIHVzZUZpcHNFbmRwb2ludDogb3B0aW9ucy51c2VGaXBzRW5kcG9pbnQgPz8gZmFsc2UsXG4gICAgICAgIGRlZmF1bHRTaWduaW5nTmFtZTogXCJsb2dzXCIsXG4gICAgfSk7XG59O1xuY29uc3QgY29tbW9uUGFyYW1zID0ge1xuICAgIFVzZUZJUFM6IHsgdHlwZTogXCJidWlsdEluUGFyYW1zXCIsIG5hbWU6IFwidXNlRmlwc0VuZHBvaW50XCIgfSxcbiAgICBFbmRwb2ludDogeyB0eXBlOiBcImJ1aWx0SW5QYXJhbXNcIiwgbmFtZTogXCJlbmRwb2ludFwiIH0sXG4gICAgUmVnaW9uOiB7IHR5cGU6IFwiYnVpbHRJblBhcmFtc1wiLCBuYW1lOiBcInJlZ2lvblwiIH0sXG4gICAgVXNlRHVhbFN0YWNrOiB7IHR5cGU6IFwiYnVpbHRJblBhcmFtc1wiLCBuYW1lOiBcInVzZUR1YWxzdGFja0VuZHBvaW50XCIgfSxcbn07XG5cbmNvbnN0IGdldEh0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiA9IChydW50aW1lQ29uZmlnKSA9PiB7XG4gICAgY29uc3QgX2h0dHBBdXRoU2NoZW1lcyA9IHJ1bnRpbWVDb25maWcuaHR0cEF1dGhTY2hlbWVzO1xuICAgIGxldCBfaHR0cEF1dGhTY2hlbWVQcm92aWRlciA9IHJ1bnRpbWVDb25maWcuaHR0cEF1dGhTY2hlbWVQcm92aWRlcjtcbiAgICBsZXQgX2NyZWRlbnRpYWxzID0gcnVudGltZUNvbmZpZy5jcmVkZW50aWFscztcbiAgICByZXR1cm4ge1xuICAgICAgICBzZXRIdHRwQXV0aFNjaGVtZShodHRwQXV0aFNjaGVtZSkge1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSBfaHR0cEF1dGhTY2hlbWVzLmZpbmRJbmRleCgoc2NoZW1lKSA9PiBzY2hlbWUuc2NoZW1lSWQgPT09IGh0dHBBdXRoU2NoZW1lLnNjaGVtZUlkKTtcbiAgICAgICAgICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICBfaHR0cEF1dGhTY2hlbWVzLnB1c2goaHR0cEF1dGhTY2hlbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgX2h0dHBBdXRoU2NoZW1lcy5zcGxpY2UoaW5kZXgsIDEsIGh0dHBBdXRoU2NoZW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVzKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9odHRwQXV0aFNjaGVtZXM7XG4gICAgICAgIH0sXG4gICAgICAgIHNldEh0dHBBdXRoU2NoZW1lUHJvdmlkZXIoaHR0cEF1dGhTY2hlbWVQcm92aWRlcikge1xuICAgICAgICAgICAgX2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSBodHRwQXV0aFNjaGVtZVByb3ZpZGVyO1xuICAgICAgICB9LFxuICAgICAgICBodHRwQXV0aFNjaGVtZVByb3ZpZGVyKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9odHRwQXV0aFNjaGVtZVByb3ZpZGVyO1xuICAgICAgICB9LFxuICAgICAgICBzZXRDcmVkZW50aWFscyhjcmVkZW50aWFscykge1xuICAgICAgICAgICAgX2NyZWRlbnRpYWxzID0gY3JlZGVudGlhbHM7XG4gICAgICAgIH0sXG4gICAgICAgIGNyZWRlbnRpYWxzKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9jcmVkZW50aWFscztcbiAgICAgICAgfSxcbiAgICB9O1xufTtcbmNvbnN0IHJlc29sdmVIdHRwQXV0aFJ1bnRpbWVDb25maWcgPSAoY29uZmlnKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVzOiBjb25maWcuaHR0cEF1dGhTY2hlbWVzKCksXG4gICAgICAgIGh0dHBBdXRoU2NoZW1lUHJvdmlkZXI6IGNvbmZpZy5odHRwQXV0aFNjaGVtZVByb3ZpZGVyKCksXG4gICAgICAgIGNyZWRlbnRpYWxzOiBjb25maWcuY3JlZGVudGlhbHMoKSxcbiAgICB9O1xufTtcblxuY29uc3QgcmVzb2x2ZVJ1bnRpbWVFeHRlbnNpb25zID0gKHJ1bnRpbWVDb25maWcsIGV4dGVuc2lvbnMpID0+IHtcbiAgICBjb25zdCBleHRlbnNpb25Db25maWd1cmF0aW9uID0gT2JqZWN0LmFzc2lnbihyZWdpb25Db25maWdSZXNvbHZlci5nZXRBd3NSZWdpb25FeHRlbnNpb25Db25maWd1cmF0aW9uKHJ1bnRpbWVDb25maWcpLCBzbWl0aHlDbGllbnQuZ2V0RGVmYXVsdEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24ocnVudGltZUNvbmZpZyksIHByb3RvY29sSHR0cC5nZXRIdHRwSGFuZGxlckV4dGVuc2lvbkNvbmZpZ3VyYXRpb24ocnVudGltZUNvbmZpZyksIGdldEh0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbihydW50aW1lQ29uZmlnKSk7XG4gICAgZXh0ZW5zaW9ucy5mb3JFYWNoKChleHRlbnNpb24pID0+IGV4dGVuc2lvbi5jb25maWd1cmUoZXh0ZW5zaW9uQ29uZmlndXJhdGlvbikpO1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHJ1bnRpbWVDb25maWcsIHJlZ2lvbkNvbmZpZ1Jlc29sdmVyLnJlc29sdmVBd3NSZWdpb25FeHRlbnNpb25Db25maWd1cmF0aW9uKGV4dGVuc2lvbkNvbmZpZ3VyYXRpb24pLCBzbWl0aHlDbGllbnQucmVzb2x2ZURlZmF1bHRSdW50aW1lQ29uZmlnKGV4dGVuc2lvbkNvbmZpZ3VyYXRpb24pLCBwcm90b2NvbEh0dHAucmVzb2x2ZUh0dHBIYW5kbGVyUnVudGltZUNvbmZpZyhleHRlbnNpb25Db25maWd1cmF0aW9uKSwgcmVzb2x2ZUh0dHBBdXRoUnVudGltZUNvbmZpZyhleHRlbnNpb25Db25maWd1cmF0aW9uKSk7XG59O1xuXG5jbGFzcyBDbG91ZFdhdGNoTG9nc0NsaWVudCBleHRlbmRzIHNtaXRoeUNsaWVudC5DbGllbnQge1xuICAgIGNvbmZpZztcbiAgICBjb25zdHJ1Y3RvciguLi5bY29uZmlndXJhdGlvbl0pIHtcbiAgICAgICAgY29uc3QgX2NvbmZpZ18wID0gcnVudGltZUNvbmZpZy5nZXRSdW50aW1lQ29uZmlnKGNvbmZpZ3VyYXRpb24gfHwge30pO1xuICAgICAgICBzdXBlcihfY29uZmlnXzApO1xuICAgICAgICB0aGlzLmluaXRDb25maWcgPSBfY29uZmlnXzA7XG4gICAgICAgIGNvbnN0IF9jb25maWdfMSA9IHJlc29sdmVDbGllbnRFbmRwb2ludFBhcmFtZXRlcnMoX2NvbmZpZ18wKTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ18yID0gbWlkZGxld2FyZVVzZXJBZ2VudC5yZXNvbHZlVXNlckFnZW50Q29uZmlnKF9jb25maWdfMSk7XG4gICAgICAgIGNvbnN0IF9jb25maWdfMyA9IG1pZGRsZXdhcmVSZXRyeS5yZXNvbHZlUmV0cnlDb25maWcoX2NvbmZpZ18yKTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ180ID0gY29uZmlnUmVzb2x2ZXIucmVzb2x2ZVJlZ2lvbkNvbmZpZyhfY29uZmlnXzMpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzUgPSBtaWRkbGV3YXJlSG9zdEhlYWRlci5yZXNvbHZlSG9zdEhlYWRlckNvbmZpZyhfY29uZmlnXzQpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzYgPSBtaWRkbGV3YXJlRW5kcG9pbnQucmVzb2x2ZUVuZHBvaW50Q29uZmlnKF9jb25maWdfNSk7XG4gICAgICAgIGNvbnN0IF9jb25maWdfNyA9IGV2ZW50c3RyZWFtU2VyZGVDb25maWdSZXNvbHZlci5yZXNvbHZlRXZlbnRTdHJlYW1TZXJkZUNvbmZpZyhfY29uZmlnXzYpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzggPSBodHRwQXV0aFNjaGVtZVByb3ZpZGVyLnJlc29sdmVIdHRwQXV0aFNjaGVtZUNvbmZpZyhfY29uZmlnXzcpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzkgPSByZXNvbHZlUnVudGltZUV4dGVuc2lvbnMoX2NvbmZpZ184LCBjb25maWd1cmF0aW9uPy5leHRlbnNpb25zIHx8IFtdKTtcbiAgICAgICAgdGhpcy5jb25maWcgPSBfY29uZmlnXzk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShzY2hlbWEuZ2V0U2NoZW1hU2VyZGVQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKG1pZGRsZXdhcmVVc2VyQWdlbnQuZ2V0VXNlckFnZW50UGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShtaWRkbGV3YXJlUmV0cnkuZ2V0UmV0cnlQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKG1pZGRsZXdhcmVDb250ZW50TGVuZ3RoLmdldENvbnRlbnRMZW5ndGhQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKG1pZGRsZXdhcmVIb3N0SGVhZGVyLmdldEhvc3RIZWFkZXJQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKG1pZGRsZXdhcmVMb2dnZXIuZ2V0TG9nZ2VyUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShtaWRkbGV3YXJlUmVjdXJzaW9uRGV0ZWN0aW9uLmdldFJlY3Vyc2lvbkRldGVjdGlvblBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoY29yZS5nZXRIdHRwQXV0aFNjaGVtZUVuZHBvaW50UnVsZVNldFBsdWdpbih0aGlzLmNvbmZpZywge1xuICAgICAgICAgICAgaHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXI6IGh0dHBBdXRoU2NoZW1lUHJvdmlkZXIuZGVmYXVsdENsb3VkV2F0Y2hMb2dzSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIsXG4gICAgICAgICAgICBpZGVudGl0eVByb3ZpZGVyQ29uZmlnUHJvdmlkZXI6IGFzeW5jIChjb25maWcpID0+IG5ldyBjb3JlLkRlZmF1bHRJZGVudGl0eVByb3ZpZGVyQ29uZmlnKHtcbiAgICAgICAgICAgICAgICBcImF3cy5hdXRoI3NpZ3Y0XCI6IGNvbmZpZy5jcmVkZW50aWFscyxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICB9KSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShjb3JlLmdldEh0dHBTaWduaW5nUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgfVxuICAgIGRlc3Ryb3koKSB7XG4gICAgICAgIHN1cGVyLmRlc3Ryb3koKTtcbiAgICB9XG59XG5cbmxldCBDbG91ZFdhdGNoTG9nc1NlcnZpY2VFeGNlcHRpb24kMSA9IGNsYXNzIENsb3VkV2F0Y2hMb2dzU2VydmljZUV4Y2VwdGlvbiBleHRlbmRzIHNtaXRoeUNsaWVudC5TZXJ2aWNlRXhjZXB0aW9uIHtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgfVxufTtcblxubGV0IEFjY2Vzc0RlbmllZEV4Y2VwdGlvbiQxID0gY2xhc3MgQWNjZXNzRGVuaWVkRXhjZXB0aW9uIGV4dGVuZHMgQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlRXhjZXB0aW9uJDEge1xuICAgIG5hbWUgPSBcIkFjY2Vzc0RlbmllZEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkFjY2Vzc0RlbmllZEV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBBY2Nlc3NEZW5pZWRFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59O1xubGV0IEludmFsaWRQYXJhbWV0ZXJFeGNlcHRpb24kMSA9IGNsYXNzIEludmFsaWRQYXJhbWV0ZXJFeGNlcHRpb24gZXh0ZW5kcyBDbG91ZFdhdGNoTG9nc1NlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiSW52YWxpZFBhcmFtZXRlckV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkludmFsaWRQYXJhbWV0ZXJFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgSW52YWxpZFBhcmFtZXRlckV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn07XG5sZXQgT3BlcmF0aW9uQWJvcnRlZEV4Y2VwdGlvbiQxID0gY2xhc3MgT3BlcmF0aW9uQWJvcnRlZEV4Y2VwdGlvbiBleHRlbmRzIENsb3VkV2F0Y2hMb2dzU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJPcGVyYXRpb25BYm9ydGVkRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiT3BlcmF0aW9uQWJvcnRlZEV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBPcGVyYXRpb25BYm9ydGVkRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgfVxufTtcbmxldCBSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uJDEgPSBjbGFzcyBSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uIGV4dGVuZHMgQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlRXhjZXB0aW9uJDEge1xuICAgIG5hbWUgPSBcIlJlc291cmNlTm90Rm91bmRFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFJlc291cmNlTm90Rm91bmRFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59O1xubGV0IFNlcnZpY2VVbmF2YWlsYWJsZUV4Y2VwdGlvbiQxID0gY2xhc3MgU2VydmljZVVuYXZhaWxhYmxlRXhjZXB0aW9uIGV4dGVuZHMgQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlRXhjZXB0aW9uJDEge1xuICAgIG5hbWUgPSBcIlNlcnZpY2VVbmF2YWlsYWJsZUV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwic2VydmVyXCI7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIlNlcnZpY2VVbmF2YWlsYWJsZUV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcInNlcnZlclwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBTZXJ2aWNlVW5hdmFpbGFibGVFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59O1xubGV0IEludGVybmFsU2VydmVyRXhjZXB0aW9uJDEgPSBjbGFzcyBJbnRlcm5hbFNlcnZlckV4Y2VwdGlvbiBleHRlbmRzIENsb3VkV2F0Y2hMb2dzU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJJbnRlcm5hbFNlcnZlckV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwic2VydmVyXCI7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkludGVybmFsU2VydmVyRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwic2VydmVyXCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEludGVybmFsU2VydmVyRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgfVxufTtcbmxldCBUaHJvdHRsaW5nRXhjZXB0aW9uJDEgPSBjbGFzcyBUaHJvdHRsaW5nRXhjZXB0aW9uIGV4dGVuZHMgQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlRXhjZXB0aW9uJDEge1xuICAgIG5hbWUgPSBcIlRocm90dGxpbmdFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJUaHJvdHRsaW5nRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFRocm90dGxpbmdFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59O1xubGV0IFZhbGlkYXRpb25FeGNlcHRpb24kMSA9IGNsYXNzIFZhbGlkYXRpb25FeGNlcHRpb24gZXh0ZW5kcyBDbG91ZFdhdGNoTG9nc1NlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiVmFsaWRhdGlvbkV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIlZhbGlkYXRpb25FeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgVmFsaWRhdGlvbkV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn07XG5sZXQgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbiQxID0gY2xhc3MgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbiBleHRlbmRzIENsb3VkV2F0Y2hMb2dzU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgfVxufTtcbmxldCBDb25mbGljdEV4Y2VwdGlvbiQxID0gY2xhc3MgQ29uZmxpY3RFeGNlcHRpb24gZXh0ZW5kcyBDbG91ZFdhdGNoTG9nc1NlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiQ29uZmxpY3RFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJDb25mbGljdEV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBDb25mbGljdEV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn07XG5sZXQgU2VydmljZVF1b3RhRXhjZWVkZWRFeGNlcHRpb24kMSA9IGNsYXNzIFNlcnZpY2VRdW90YUV4Y2VlZGVkRXhjZXB0aW9uIGV4dGVuZHMgQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlRXhjZXB0aW9uJDEge1xuICAgIG5hbWUgPSBcIlNlcnZpY2VRdW90YUV4Y2VlZGVkRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiU2VydmljZVF1b3RhRXhjZWVkZWRFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgU2VydmljZVF1b3RhRXhjZWVkZWRFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59O1xubGV0IExpbWl0RXhjZWVkZWRFeGNlcHRpb24kMSA9IGNsYXNzIExpbWl0RXhjZWVkZWRFeGNlcHRpb24gZXh0ZW5kcyBDbG91ZFdhdGNoTG9nc1NlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiTGltaXRFeGNlZWRlZEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkxpbWl0RXhjZWVkZWRFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgTGltaXRFeGNlZWRlZEV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn07XG5sZXQgUmVzb3VyY2VBbHJlYWR5RXhpc3RzRXhjZXB0aW9uJDEgPSBjbGFzcyBSZXNvdXJjZUFscmVhZHlFeGlzdHNFeGNlcHRpb24gZXh0ZW5kcyBDbG91ZFdhdGNoTG9nc1NlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiUmVzb3VyY2VBbHJlYWR5RXhpc3RzRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiUmVzb3VyY2VBbHJlYWR5RXhpc3RzRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFJlc291cmNlQWxyZWFkeUV4aXN0c0V4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn07XG5sZXQgRGF0YUFscmVhZHlBY2NlcHRlZEV4Y2VwdGlvbiQxID0gY2xhc3MgRGF0YUFscmVhZHlBY2NlcHRlZEV4Y2VwdGlvbiBleHRlbmRzIENsb3VkV2F0Y2hMb2dzU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJEYXRhQWxyZWFkeUFjY2VwdGVkRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBleHBlY3RlZFNlcXVlbmNlVG9rZW47XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkRhdGFBbHJlYWR5QWNjZXB0ZWRFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgRGF0YUFscmVhZHlBY2NlcHRlZEV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLmV4cGVjdGVkU2VxdWVuY2VUb2tlbiA9IG9wdHMuZXhwZWN0ZWRTZXF1ZW5jZVRva2VuO1xuICAgIH1cbn07XG5sZXQgSW50ZXJuYWxTdHJlYW1pbmdFeGNlcHRpb24kMSA9IGNsYXNzIEludGVybmFsU3RyZWFtaW5nRXhjZXB0aW9uIGV4dGVuZHMgQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlRXhjZXB0aW9uJDEge1xuICAgIG5hbWUgPSBcIkludGVybmFsU3RyZWFtaW5nRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiSW50ZXJuYWxTdHJlYW1pbmdFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgSW50ZXJuYWxTdHJlYW1pbmdFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59O1xubGV0IEludmFsaWRTZXF1ZW5jZVRva2VuRXhjZXB0aW9uJDEgPSBjbGFzcyBJbnZhbGlkU2VxdWVuY2VUb2tlbkV4Y2VwdGlvbiBleHRlbmRzIENsb3VkV2F0Y2hMb2dzU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJJbnZhbGlkU2VxdWVuY2VUb2tlbkV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgZXhwZWN0ZWRTZXF1ZW5jZVRva2VuO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJJbnZhbGlkU2VxdWVuY2VUb2tlbkV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBJbnZhbGlkU2VxdWVuY2VUb2tlbkV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLmV4cGVjdGVkU2VxdWVuY2VUb2tlbiA9IG9wdHMuZXhwZWN0ZWRTZXF1ZW5jZVRva2VuO1xuICAgIH1cbn07XG5sZXQgVW5yZWNvZ25pemVkQ2xpZW50RXhjZXB0aW9uJDEgPSBjbGFzcyBVbnJlY29nbml6ZWRDbGllbnRFeGNlcHRpb24gZXh0ZW5kcyBDbG91ZFdhdGNoTG9nc1NlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiVW5yZWNvZ25pemVkQ2xpZW50RXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiVW5yZWNvZ25pemVkQ2xpZW50RXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFVucmVjb2duaXplZENsaWVudEV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn07XG5sZXQgU2Vzc2lvblN0cmVhbWluZ0V4Y2VwdGlvbiQxID0gY2xhc3MgU2Vzc2lvblN0cmVhbWluZ0V4Y2VwdGlvbiBleHRlbmRzIENsb3VkV2F0Y2hMb2dzU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJTZXNzaW9uU3RyZWFtaW5nRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiU2Vzc2lvblN0cmVhbWluZ0V4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBTZXNzaW9uU3RyZWFtaW5nRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgfVxufTtcbmxldCBTZXNzaW9uVGltZW91dEV4Y2VwdGlvbiQxID0gY2xhc3MgU2Vzc2lvblRpbWVvdXRFeGNlcHRpb24gZXh0ZW5kcyBDbG91ZFdhdGNoTG9nc1NlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiU2Vzc2lvblRpbWVvdXRFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJTZXNzaW9uVGltZW91dEV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBTZXNzaW9uVGltZW91dEV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn07XG5sZXQgTWFsZm9ybWVkUXVlcnlFeGNlcHRpb24kMSA9IGNsYXNzIE1hbGZvcm1lZFF1ZXJ5RXhjZXB0aW9uIGV4dGVuZHMgQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlRXhjZXB0aW9uJDEge1xuICAgIG5hbWUgPSBcIk1hbGZvcm1lZFF1ZXJ5RXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBxdWVyeUNvbXBpbGVFcnJvcjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiTWFsZm9ybWVkUXVlcnlFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgTWFsZm9ybWVkUXVlcnlFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5xdWVyeUNvbXBpbGVFcnJvciA9IG9wdHMucXVlcnlDb21waWxlRXJyb3I7XG4gICAgfVxufTtcbmxldCBUb29NYW55VGFnc0V4Y2VwdGlvbiQxID0gY2xhc3MgVG9vTWFueVRhZ3NFeGNlcHRpb24gZXh0ZW5kcyBDbG91ZFdhdGNoTG9nc1NlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiVG9vTWFueVRhZ3NFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIHJlc291cmNlTmFtZTtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiVG9vTWFueVRhZ3NFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgVG9vTWFueVRhZ3NFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5yZXNvdXJjZU5hbWUgPSBvcHRzLnJlc291cmNlTmFtZTtcbiAgICB9XG59O1xuXG5jb25zdCBfQSA9IFwiQW5vbWFseVwiO1xuY29uc3QgX0FEID0gXCJBbm9tYWx5RGV0ZWN0b3JcIjtcbmNvbnN0IF9BREUgPSBcIkFjY2Vzc0RlbmllZEV4Y2VwdGlvblwiO1xuY29uc3QgX0FEbiA9IFwiQW5vbWFseURldGVjdG9yc1wiO1xuY29uc3QgX0FGID0gXCJBbGxvd2VkRmllbGRzXCI7XG5jb25zdCBfQUsgPSBcIkFkZEtleXNcIjtcbmNvbnN0IF9BS0UgPSBcIkFkZEtleUVudHJ5XCI7XG5jb25zdCBfQUtFZCA9IFwiQWRkS2V5RW50cmllc1wiO1xuY29uc3QgX0FLSyA9IFwiQXNzb2NpYXRlS21zS2V5XCI7XG5jb25zdCBfQUtLUiA9IFwiQXNzb2NpYXRlS21zS2V5UmVxdWVzdFwiO1xuY29uc3QgX0FMR1MgPSBcIkFnZ3JlZ2F0ZUxvZ0dyb3VwU3VtbWFyeVwiO1xuY29uc3QgX0FMR1NnID0gXCJBZ2dyZWdhdGVMb2dHcm91cFN1bW1hcmllc1wiO1xuY29uc3QgX0FQID0gXCJBY2NvdW50UG9saWN5XCI7XG5jb25zdCBfQVBjID0gXCJBY2NvdW50UG9saWNpZXNcIjtcbmNvbnN0IF9BU1RTVEkgPSBcIkFzc29jaWF0ZVNvdXJjZVRvUzNUYWJsZUludGVncmF0aW9uXCI7XG5jb25zdCBfQVNUU1RJUiA9IFwiQXNzb2NpYXRlU291cmNlVG9TM1RhYmxlSW50ZWdyYXRpb25SZXF1ZXN0XCI7XG5jb25zdCBfQVNUU1RJUnMgPSBcIkFzc29jaWF0ZVNvdXJjZVRvUzNUYWJsZUludGVncmF0aW9uUmVzcG9uc2VcIjtcbmNvbnN0IF9BbiA9IFwiQW5vbWFsaWVzXCI7XG5jb25zdCBfQ0QgPSBcIkNyZWF0ZURlbGl2ZXJ5XCI7XG5jb25zdCBfQ0RSID0gXCJDcmVhdGVEZWxpdmVyeVJlcXVlc3RcIjtcbmNvbnN0IF9DRFJyID0gXCJDcmVhdGVEZWxpdmVyeVJlc3BvbnNlXCI7XG5jb25zdCBfQ0UgPSBcIkNvbmZsaWN0RXhjZXB0aW9uXCI7XG5jb25zdCBfQ0VUID0gXCJDYW5jZWxFeHBvcnRUYXNrXCI7XG5jb25zdCBfQ0VUUiA9IFwiQ2FuY2VsRXhwb3J0VGFza1JlcXVlc3RcIjtcbmNvbnN0IF9DRVRSciA9IFwiQ3JlYXRlRXhwb3J0VGFza1JlcXVlc3RcIjtcbmNvbnN0IF9DRVRScmUgPSBcIkNyZWF0ZUV4cG9ydFRhc2tSZXNwb25zZVwiO1xuY29uc3QgX0NFVHIgPSBcIkNyZWF0ZUV4cG9ydFRhc2tcIjtcbmNvbnN0IF9DSVQgPSBcIkNhbmNlbEltcG9ydFRhc2tcIjtcbmNvbnN0IF9DSVRSID0gXCJDYW5jZWxJbXBvcnRUYXNrUmVxdWVzdFwiO1xuY29uc3QgX0NJVFJhID0gXCJDYW5jZWxJbXBvcnRUYXNrUmVzcG9uc2VcIjtcbmNvbnN0IF9DSVRSciA9IFwiQ3JlYXRlSW1wb3J0VGFza1JlcXVlc3RcIjtcbmNvbnN0IF9DSVRScmUgPSBcIkNyZWF0ZUltcG9ydFRhc2tSZXNwb25zZVwiO1xuY29uc3QgX0NJVHIgPSBcIkNyZWF0ZUltcG9ydFRhc2tcIjtcbmNvbnN0IF9DTEFEID0gXCJDcmVhdGVMb2dBbm9tYWx5RGV0ZWN0b3JcIjtcbmNvbnN0IF9DTEFEUiA9IFwiQ3JlYXRlTG9nQW5vbWFseURldGVjdG9yUmVxdWVzdFwiO1xuY29uc3QgX0NMQURSciA9IFwiQ3JlYXRlTG9nQW5vbWFseURldGVjdG9yUmVzcG9uc2VcIjtcbmNvbnN0IF9DTEcgPSBcIkNyZWF0ZUxvZ0dyb3VwXCI7XG5jb25zdCBfQ0xHUiA9IFwiQ3JlYXRlTG9nR3JvdXBSZXF1ZXN0XCI7XG5jb25zdCBfQ0xTID0gXCJDcmVhdGVMb2dTdHJlYW1cIjtcbmNvbnN0IF9DTFNSID0gXCJDcmVhdGVMb2dTdHJlYW1SZXF1ZXN0XCI7XG5jb25zdCBfQ1NRID0gXCJDcmVhdGVTY2hlZHVsZWRRdWVyeVwiO1xuY29uc3QgX0NTUVIgPSBcIkNyZWF0ZVNjaGVkdWxlZFF1ZXJ5UmVxdWVzdFwiO1xuY29uc3QgX0NTUVJyID0gXCJDcmVhdGVTY2hlZHVsZWRRdWVyeVJlc3BvbnNlXCI7XG5jb25zdCBfQ1NWID0gXCJDU1ZcIjtcbmNvbnN0IF9DVCA9IFwiQ29uZmlndXJhdGlvblRlbXBsYXRlXCI7XG5jb25zdCBfQ1REQ1YgPSBcIkNvbmZpZ3VyYXRpb25UZW1wbGF0ZURlbGl2ZXJ5Q29uZmlnVmFsdWVzXCI7XG5jb25zdCBfQ1RvID0gXCJDb25maWd1cmF0aW9uVGVtcGxhdGVzXCI7XG5jb25zdCBfQ1YgPSBcIkNvcHlWYWx1ZVwiO1xuY29uc3QgX0NWRSA9IFwiQ29weVZhbHVlRW50cnlcIjtcbmNvbnN0IF9DVkVvID0gXCJDb3B5VmFsdWVFbnRyaWVzXCI7XG5jb25zdCBfRCA9IFwiRGVsaXZlcnlcIjtcbmNvbnN0IF9EQUFFID0gXCJEYXRhQWxyZWFkeUFjY2VwdGVkRXhjZXB0aW9uXCI7XG5jb25zdCBfREFQID0gXCJEZWxldGVBY2NvdW50UG9saWN5XCI7XG5jb25zdCBfREFQUiA9IFwiRGVsZXRlQWNjb3VudFBvbGljeVJlcXVlc3RcIjtcbmNvbnN0IF9EQVBSZSA9IFwiRGVzY3JpYmVBY2NvdW50UG9saWNpZXNSZXF1ZXN0XCI7XG5jb25zdCBfREFQUmVzID0gXCJEZXNjcmliZUFjY291bnRQb2xpY2llc1Jlc3BvbnNlXCI7XG5jb25zdCBfREFQZSA9IFwiRGVzY3JpYmVBY2NvdW50UG9saWNpZXNcIjtcbmNvbnN0IF9EQyA9IFwiRGVzdGluYXRpb25Db25maWd1cmF0aW9uXCI7XG5jb25zdCBfRENUID0gXCJEZXNjcmliZUNvbmZpZ3VyYXRpb25UZW1wbGF0ZXNcIjtcbmNvbnN0IF9EQ1RSID0gXCJEZXNjcmliZUNvbmZpZ3VyYXRpb25UZW1wbGF0ZXNSZXF1ZXN0XCI7XG5jb25zdCBfRENUUmUgPSBcIkRlc2NyaWJlQ29uZmlndXJhdGlvblRlbXBsYXRlc1Jlc3BvbnNlXCI7XG5jb25zdCBfREQgPSBcIkRlbGl2ZXJ5RGVzdGluYXRpb25cIjtcbmNvbnN0IF9EREMgPSBcIkRlbGl2ZXJ5RGVzdGluYXRpb25Db25maWd1cmF0aW9uXCI7XG5jb25zdCBfREREID0gXCJEZWxldGVEZWxpdmVyeURlc3RpbmF0aW9uXCI7XG5jb25zdCBfREREUCA9IFwiRGVsZXRlRGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeVwiO1xuY29uc3QgX0RERFBSID0gXCJEZWxldGVEZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5UmVxdWVzdFwiO1xuY29uc3QgX0RERFIgPSBcIkRlbGV0ZURlbGl2ZXJ5RGVzdGluYXRpb25SZXF1ZXN0XCI7XG5jb25zdCBfREREUmUgPSBcIkRlc2NyaWJlRGVsaXZlcnlEZXN0aW5hdGlvbnNSZXF1ZXN0XCI7XG5jb25zdCBfREREUmVzID0gXCJEZXNjcmliZURlbGl2ZXJ5RGVzdGluYXRpb25zUmVzcG9uc2VcIjtcbmNvbnN0IF9ERERlID0gXCJEZXNjcmliZURlbGl2ZXJ5RGVzdGluYXRpb25zXCI7XG5jb25zdCBfRERQUCA9IFwiRGVsZXRlRGF0YVByb3RlY3Rpb25Qb2xpY3lcIjtcbmNvbnN0IF9ERFBQUiA9IFwiRGVsZXRlRGF0YVByb3RlY3Rpb25Qb2xpY3lSZXF1ZXN0XCI7XG5jb25zdCBfRERSID0gXCJEZWxldGVEZWxpdmVyeVJlcXVlc3RcIjtcbmNvbnN0IF9ERFJlID0gXCJEZWxldGVEZXN0aW5hdGlvblJlcXVlc3RcIjtcbmNvbnN0IF9ERFJlcyA9IFwiRGVzY3JpYmVEZWxpdmVyaWVzUmVxdWVzdFwiO1xuY29uc3QgX0REUmVzYyA9IFwiRGVzY3JpYmVEZWxpdmVyaWVzUmVzcG9uc2VcIjtcbmNvbnN0IF9ERFJlc2NyID0gXCJEZXNjcmliZURlc3RpbmF0aW9uc1JlcXVlc3RcIjtcbmNvbnN0IF9ERFJlc2NyaSA9IFwiRGVzY3JpYmVEZXN0aW5hdGlvbnNSZXNwb25zZVwiO1xuY29uc3QgX0REUyA9IFwiRGVsZXRlRGVsaXZlcnlTb3VyY2VcIjtcbmNvbnN0IF9ERFNSID0gXCJEZWxldGVEZWxpdmVyeVNvdXJjZVJlcXVlc3RcIjtcbmNvbnN0IF9ERFNSZSA9IFwiRGVzY3JpYmVEZWxpdmVyeVNvdXJjZXNSZXF1ZXN0XCI7XG5jb25zdCBfRERTUmVzID0gXCJEZXNjcmliZURlbGl2ZXJ5U291cmNlc1Jlc3BvbnNlXCI7XG5jb25zdCBfRERTZSA9IFwiRGVzY3JpYmVEZWxpdmVyeVNvdXJjZXNcIjtcbmNvbnN0IF9ERGUgPSBcIkRlbGl2ZXJ5RGVzdGluYXRpb25zXCI7XG5jb25zdCBfRERlbCA9IFwiRGVsZXRlRGVsaXZlcnlcIjtcbmNvbnN0IF9ERGVsZSA9IFwiRGVsZXRlRGVzdGluYXRpb25cIjtcbmNvbnN0IF9ERGVzID0gXCJEZXNjcmliZURlbGl2ZXJpZXNcIjtcbmNvbnN0IF9ERGVzYyA9IFwiRGVzY3JpYmVEZXN0aW5hdGlvbnNcIjtcbmNvbnN0IF9ERVQgPSBcIkRlc2NyaWJlRXhwb3J0VGFza3NcIjtcbmNvbnN0IF9ERVRSID0gXCJEZXNjcmliZUV4cG9ydFRhc2tzUmVxdWVzdFwiO1xuY29uc3QgX0RFVFJlID0gXCJEZXNjcmliZUV4cG9ydFRhc2tzUmVzcG9uc2VcIjtcbmNvbnN0IF9ERkkgPSBcIkRlc2NyaWJlRmllbGRJbmRleGVzXCI7XG5jb25zdCBfREZJUiA9IFwiRGVzY3JpYmVGaWVsZEluZGV4ZXNSZXF1ZXN0XCI7XG5jb25zdCBfREZJUmUgPSBcIkRlc2NyaWJlRmllbGRJbmRleGVzUmVzcG9uc2VcIjtcbmNvbnN0IF9ESSA9IFwiRGVsZXRlSW50ZWdyYXRpb25cIjtcbmNvbnN0IF9ESVAgPSBcIkRlbGV0ZUluZGV4UG9saWN5XCI7XG5jb25zdCBfRElQUiA9IFwiRGVsZXRlSW5kZXhQb2xpY3lSZXF1ZXN0XCI7XG5jb25zdCBfRElQUmUgPSBcIkRlbGV0ZUluZGV4UG9saWN5UmVzcG9uc2VcIjtcbmNvbnN0IF9ESVBSZXMgPSBcIkRlc2NyaWJlSW5kZXhQb2xpY2llc1JlcXVlc3RcIjtcbmNvbnN0IF9ESVBSZXNjID0gXCJEZXNjcmliZUluZGV4UG9saWNpZXNSZXNwb25zZVwiO1xuY29uc3QgX0RJUGUgPSBcIkRlc2NyaWJlSW5kZXhQb2xpY2llc1wiO1xuY29uc3QgX0RJUiA9IFwiRGVsZXRlSW50ZWdyYXRpb25SZXF1ZXN0XCI7XG5jb25zdCBfRElSZSA9IFwiRGVsZXRlSW50ZWdyYXRpb25SZXNwb25zZVwiO1xuY29uc3QgX0RJVCA9IFwiRGVzY3JpYmVJbXBvcnRUYXNrc1wiO1xuY29uc3QgX0RJVEIgPSBcIkRlc2NyaWJlSW1wb3J0VGFza0JhdGNoZXNcIjtcbmNvbnN0IF9ESVRCUiA9IFwiRGVzY3JpYmVJbXBvcnRUYXNrQmF0Y2hlc1JlcXVlc3RcIjtcbmNvbnN0IF9ESVRCUmUgPSBcIkRlc2NyaWJlSW1wb3J0VGFza0JhdGNoZXNSZXNwb25zZVwiO1xuY29uc3QgX0RJVFIgPSBcIkRlc2NyaWJlSW1wb3J0VGFza3NSZXF1ZXN0XCI7XG5jb25zdCBfRElUUmUgPSBcIkRlc2NyaWJlSW1wb3J0VGFza3NSZXNwb25zZVwiO1xuY29uc3QgX0RLID0gXCJEZWxldGVLZXlzXCI7XG5jb25zdCBfREtLID0gXCJEaXNhc3NvY2lhdGVLbXNLZXlcIjtcbmNvbnN0IF9ES0tSID0gXCJEaXNhc3NvY2lhdGVLbXNLZXlSZXF1ZXN0XCI7XG5jb25zdCBfRExBRCA9IFwiRGVsZXRlTG9nQW5vbWFseURldGVjdG9yXCI7XG5jb25zdCBfRExBRFIgPSBcIkRlbGV0ZUxvZ0Fub21hbHlEZXRlY3RvclJlcXVlc3RcIjtcbmNvbnN0IF9ETEcgPSBcIkRlbGV0ZUxvZ0dyb3VwXCI7XG5jb25zdCBfRExHUiA9IFwiRGVsZXRlTG9nR3JvdXBSZXF1ZXN0XCI7XG5jb25zdCBfRExHUmUgPSBcIkRlc2NyaWJlTG9nR3JvdXBzUmVxdWVzdFwiO1xuY29uc3QgX0RMR1JlcyA9IFwiRGVzY3JpYmVMb2dHcm91cHNSZXNwb25zZVwiO1xuY29uc3QgX0RMR2UgPSBcIkRlc2NyaWJlTG9nR3JvdXBzXCI7XG5jb25zdCBfRExTID0gXCJEZWxldGVMb2dTdHJlYW1cIjtcbmNvbnN0IF9ETFNSID0gXCJEZWxldGVMb2dTdHJlYW1SZXF1ZXN0XCI7XG5jb25zdCBfRExTUmUgPSBcIkRlc2NyaWJlTG9nU3RyZWFtc1JlcXVlc3RcIjtcbmNvbnN0IF9ETFNSZXMgPSBcIkRlc2NyaWJlTG9nU3RyZWFtc1Jlc3BvbnNlXCI7XG5jb25zdCBfRExTZSA9IFwiRGVzY3JpYmVMb2dTdHJlYW1zXCI7XG5jb25zdCBfRE1GID0gXCJEZWxldGVNZXRyaWNGaWx0ZXJcIjtcbmNvbnN0IF9ETUZSID0gXCJEZWxldGVNZXRyaWNGaWx0ZXJSZXF1ZXN0XCI7XG5jb25zdCBfRE1GUmUgPSBcIkRlc2NyaWJlTWV0cmljRmlsdGVyc1JlcXVlc3RcIjtcbmNvbnN0IF9ETUZSZXMgPSBcIkRlc2NyaWJlTWV0cmljRmlsdGVyc1Jlc3BvbnNlXCI7XG5jb25zdCBfRE1GZSA9IFwiRGVzY3JpYmVNZXRyaWNGaWx0ZXJzXCI7XG5jb25zdCBfRE5QID0gXCJEZXN0aW5hdGlvbk5hbWVQcmVmaXhcIjtcbmNvbnN0IF9EUSA9IFwiRGVzY3JpYmVRdWVyaWVzXCI7XG5jb25zdCBfRFFEID0gXCJEZWxldGVRdWVyeURlZmluaXRpb25cIjtcbmNvbnN0IF9EUURSID0gXCJEZWxldGVRdWVyeURlZmluaXRpb25SZXF1ZXN0XCI7XG5jb25zdCBfRFFEUmUgPSBcIkRlbGV0ZVF1ZXJ5RGVmaW5pdGlvblJlc3BvbnNlXCI7XG5jb25zdCBfRFFEUmVzID0gXCJEZXNjcmliZVF1ZXJ5RGVmaW5pdGlvbnNSZXF1ZXN0XCI7XG5jb25zdCBfRFFEUmVzYyA9IFwiRGVzY3JpYmVRdWVyeURlZmluaXRpb25zUmVzcG9uc2VcIjtcbmNvbnN0IF9EUURlID0gXCJEZXNjcmliZVF1ZXJ5RGVmaW5pdGlvbnNcIjtcbmNvbnN0IF9EUVIgPSBcIkRlc2NyaWJlUXVlcmllc1JlcXVlc3RcIjtcbmNvbnN0IF9EUVJlID0gXCJEZXNjcmliZVF1ZXJpZXNSZXNwb25zZVwiO1xuY29uc3QgX0RSUCA9IFwiRGVsZXRlUmVzb3VyY2VQb2xpY3lcIjtcbmNvbnN0IF9EUlBSID0gXCJEZWxldGVSZXNvdXJjZVBvbGljeVJlcXVlc3RcIjtcbmNvbnN0IF9EUlBSZSA9IFwiRGVsZXRlUmV0ZW50aW9uUG9saWN5UmVxdWVzdFwiO1xuY29uc3QgX0RSUFJlcyA9IFwiRGVzY3JpYmVSZXNvdXJjZVBvbGljaWVzUmVxdWVzdFwiO1xuY29uc3QgX0RSUFJlc2MgPSBcIkRlc2NyaWJlUmVzb3VyY2VQb2xpY2llc1Jlc3BvbnNlXCI7XG5jb25zdCBfRFJQZSA9IFwiRGVsZXRlUmV0ZW50aW9uUG9saWN5XCI7XG5jb25zdCBfRFJQZXMgPSBcIkRlc2NyaWJlUmVzb3VyY2VQb2xpY2llc1wiO1xuY29uc3QgX0RTID0gXCJEYXRhU291cmNlXCI7XG5jb25zdCBfRFNGID0gXCJEYXRhU291cmNlRmlsdGVyXCI7XG5jb25zdCBfRFNGUiA9IFwiRGVsZXRlU3Vic2NyaXB0aW9uRmlsdGVyUmVxdWVzdFwiO1xuY29uc3QgX0RTRlJlID0gXCJEZXNjcmliZVN1YnNjcmlwdGlvbkZpbHRlcnNSZXF1ZXN0XCI7XG5jb25zdCBfRFNGUmVzID0gXCJEZXNjcmliZVN1YnNjcmlwdGlvbkZpbHRlcnNSZXNwb25zZVwiO1xuY29uc3QgX0RTRlNUSSA9IFwiRGlzYXNzb2NpYXRlU291cmNlRnJvbVMzVGFibGVJbnRlZ3JhdGlvblwiO1xuY29uc3QgX0RTRlNUSVIgPSBcIkRpc2Fzc29jaWF0ZVNvdXJjZUZyb21TM1RhYmxlSW50ZWdyYXRpb25SZXF1ZXN0XCI7XG5jb25zdCBfRFNGU1RJUmkgPSBcIkRpc2Fzc29jaWF0ZVNvdXJjZUZyb21TM1RhYmxlSW50ZWdyYXRpb25SZXNwb25zZVwiO1xuY29uc3QgX0RTRmEgPSBcIkRhdGFTb3VyY2VGaWx0ZXJzXCI7XG5jb25zdCBfRFNGZSA9IFwiRGVsZXRlU3Vic2NyaXB0aW9uRmlsdGVyXCI7XG5jb25zdCBfRFNGZXMgPSBcIkRlc2NyaWJlU3Vic2NyaXB0aW9uRmlsdGVyc1wiO1xuY29uc3QgX0RTUSA9IFwiRGVsZXRlU2NoZWR1bGVkUXVlcnlcIjtcbmNvbnN0IF9EU1FSID0gXCJEZWxldGVTY2hlZHVsZWRRdWVyeVJlcXVlc3RcIjtcbmNvbnN0IF9EU1FSZSA9IFwiRGVsZXRlU2NoZWR1bGVkUXVlcnlSZXNwb25zZVwiO1xuY29uc3QgX0RTZSA9IFwiRGVsaXZlcnlTb3VyY2VcIjtcbmNvbnN0IF9EU2VsID0gXCJEZWxpdmVyeVNvdXJjZXNcIjtcbmNvbnN0IF9EVCA9IFwiRGVsZXRlVHJhbnNmb3JtZXJcIjtcbmNvbnN0IF9EVEMgPSBcIkRhdGVUaW1lQ29udmVydGVyXCI7XG5jb25zdCBfRFRSID0gXCJEZWxldGVUcmFuc2Zvcm1lclJlcXVlc3RcIjtcbmNvbnN0IF9EZSA9IFwiRGVzdGluYXRpb25cIjtcbmNvbnN0IF9EZWwgPSBcIkRlbGl2ZXJpZXNcIjtcbmNvbnN0IF9EZXMgPSBcIkRlc3RpbmF0aW9uc1wiO1xuY29uc3QgX0UgPSBcIkVudGl0eVwiO1xuY29uc3QgX0VUID0gXCJFeHBvcnRUYXNrXCI7XG5jb25zdCBfRVRFSSA9IFwiRXhwb3J0VGFza0V4ZWN1dGlvbkluZm9cIjtcbmNvbnN0IF9FVFMgPSBcIkV4cG9ydFRhc2tTdGF0dXNcIjtcbmNvbnN0IF9FVHggPSBcIkV4cG9ydFRhc2tzXCI7XG5jb25zdCBfRkQgPSBcIkZpZWxkc0RhdGFcIjtcbmNvbnN0IF9GSSA9IFwiRmllbGRJbmRleFwiO1xuY29uc3QgX0ZJaSA9IFwiRmllbGRJbmRleGVzXCI7XG5jb25zdCBfRkxFID0gXCJGaWx0ZXJlZExvZ0V2ZW50XCI7XG5jb25zdCBfRkxFUiA9IFwiRmlsdGVyTG9nRXZlbnRzUmVxdWVzdFwiO1xuY29uc3QgX0ZMRVJpID0gXCJGaWx0ZXJMb2dFdmVudHNSZXNwb25zZVwiO1xuY29uc3QgX0ZMRWkgPSBcIkZpbHRlcmVkTG9nRXZlbnRzXCI7XG5jb25zdCBfRkxFaWwgPSBcIkZpbHRlckxvZ0V2ZW50c1wiO1xuY29uc3QgX0cgPSBcIkdyb2tcIjtcbmNvbnN0IF9HRCA9IFwiR2V0RGVsaXZlcnlcIjtcbmNvbnN0IF9HREQgPSBcIkdldERlbGl2ZXJ5RGVzdGluYXRpb25cIjtcbmNvbnN0IF9HRERQID0gXCJHZXREZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5XCI7XG5jb25zdCBfR0REUFIgPSBcIkdldERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lSZXF1ZXN0XCI7XG5jb25zdCBfR0REUFJlID0gXCJHZXREZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5UmVzcG9uc2VcIjtcbmNvbnN0IF9HRERSID0gXCJHZXREZWxpdmVyeURlc3RpbmF0aW9uUmVxdWVzdFwiO1xuY29uc3QgX0dERFJlID0gXCJHZXREZWxpdmVyeURlc3RpbmF0aW9uUmVzcG9uc2VcIjtcbmNvbnN0IF9HRFBQID0gXCJHZXREYXRhUHJvdGVjdGlvblBvbGljeVwiO1xuY29uc3QgX0dEUFBSID0gXCJHZXREYXRhUHJvdGVjdGlvblBvbGljeVJlcXVlc3RcIjtcbmNvbnN0IF9HRFBQUmUgPSBcIkdldERhdGFQcm90ZWN0aW9uUG9saWN5UmVzcG9uc2VcIjtcbmNvbnN0IF9HRFIgPSBcIkdldERlbGl2ZXJ5UmVxdWVzdFwiO1xuY29uc3QgX0dEUmUgPSBcIkdldERlbGl2ZXJ5UmVzcG9uc2VcIjtcbmNvbnN0IF9HRFMgPSBcIkdldERlbGl2ZXJ5U291cmNlXCI7XG5jb25zdCBfR0RTUiA9IFwiR2V0RGVsaXZlcnlTb3VyY2VSZXF1ZXN0XCI7XG5jb25zdCBfR0RTUmUgPSBcIkdldERlbGl2ZXJ5U291cmNlUmVzcG9uc2VcIjtcbmNvbnN0IF9HSSA9IFwiR3JvdXBpbmdJZGVudGlmaWVyXCI7XG5jb25zdCBfR0lSID0gXCJHZXRJbnRlZ3JhdGlvblJlcXVlc3RcIjtcbmNvbnN0IF9HSVJlID0gXCJHZXRJbnRlZ3JhdGlvblJlc3BvbnNlXCI7XG5jb25zdCBfR0llID0gXCJHZXRJbnRlZ3JhdGlvblwiO1xuY29uc3QgX0dJciA9IFwiR3JvdXBpbmdJZGVudGlmaWVyc1wiO1xuY29uc3QgX0dMQUQgPSBcIkdldExvZ0Fub21hbHlEZXRlY3RvclwiO1xuY29uc3QgX0dMQURSID0gXCJHZXRMb2dBbm9tYWx5RGV0ZWN0b3JSZXF1ZXN0XCI7XG5jb25zdCBfR0xBRFJlID0gXCJHZXRMb2dBbm9tYWx5RGV0ZWN0b3JSZXNwb25zZVwiO1xuY29uc3QgX0dMRSA9IFwiR2V0TG9nRXZlbnRzXCI7XG5jb25zdCBfR0xFUiA9IFwiR2V0TG9nRXZlbnRzUmVxdWVzdFwiO1xuY29uc3QgX0dMRVJlID0gXCJHZXRMb2dFdmVudHNSZXNwb25zZVwiO1xuY29uc3QgX0dMRiA9IFwiR2V0TG9nRmllbGRzXCI7XG5jb25zdCBfR0xGUiA9IFwiR2V0TG9nRmllbGRzUmVxdWVzdFwiO1xuY29uc3QgX0dMRlJlID0gXCJHZXRMb2dGaWVsZHNSZXNwb25zZVwiO1xuY29uc3QgX0dMR0YgPSBcIkdldExvZ0dyb3VwRmllbGRzXCI7XG5jb25zdCBfR0xHRlIgPSBcIkdldExvZ0dyb3VwRmllbGRzUmVxdWVzdFwiO1xuY29uc3QgX0dMR0ZSZSA9IFwiR2V0TG9nR3JvdXBGaWVsZHNSZXNwb25zZVwiO1xuY29uc3QgX0dMTyA9IFwiR2V0TG9nT2JqZWN0XCI7XG5jb25zdCBfR0xPUiA9IFwiR2V0TG9nT2JqZWN0UmVxdWVzdFwiO1xuY29uc3QgX0dMT1JTID0gXCJHZXRMb2dPYmplY3RSZXNwb25zZVN0cmVhbVwiO1xuY29uc3QgX0dMT1JlID0gXCJHZXRMb2dPYmplY3RSZXNwb25zZVwiO1xuY29uc3QgX0dMUiA9IFwiR2V0TG9nUmVjb3JkXCI7XG5jb25zdCBfR0xSUiA9IFwiR2V0TG9nUmVjb3JkUmVxdWVzdFwiO1xuY29uc3QgX0dMUlJlID0gXCJHZXRMb2dSZWNvcmRSZXNwb25zZVwiO1xuY29uc3QgX0dRUiA9IFwiR2V0UXVlcnlSZXN1bHRzXCI7XG5jb25zdCBfR1FSUiA9IFwiR2V0UXVlcnlSZXN1bHRzUmVxdWVzdFwiO1xuY29uc3QgX0dRUlJlID0gXCJHZXRRdWVyeVJlc3VsdHNSZXNwb25zZVwiO1xuY29uc3QgX0dTUSA9IFwiR2V0U2NoZWR1bGVkUXVlcnlcIjtcbmNvbnN0IF9HU1FIID0gXCJHZXRTY2hlZHVsZWRRdWVyeUhpc3RvcnlcIjtcbmNvbnN0IF9HU1FIUiA9IFwiR2V0U2NoZWR1bGVkUXVlcnlIaXN0b3J5UmVxdWVzdFwiO1xuY29uc3QgX0dTUUhSZSA9IFwiR2V0U2NoZWR1bGVkUXVlcnlIaXN0b3J5UmVzcG9uc2VcIjtcbmNvbnN0IF9HU1FSID0gXCJHZXRTY2hlZHVsZWRRdWVyeVJlcXVlc3RcIjtcbmNvbnN0IF9HU1FSZSA9IFwiR2V0U2NoZWR1bGVkUXVlcnlSZXNwb25zZVwiO1xuY29uc3QgX0dUID0gXCJHZXRUcmFuc2Zvcm1lclwiO1xuY29uc3QgX0dUUiA9IFwiR2V0VHJhbnNmb3JtZXJSZXF1ZXN0XCI7XG5jb25zdCBfR1RSZSA9IFwiR2V0VHJhbnNmb3JtZXJSZXNwb25zZVwiO1xuY29uc3QgX0kgPSBcIkltcG9ydFwiO1xuY29uc3QgX0lCID0gXCJJbXBvcnRCYXRjaFwiO1xuY29uc3QgX0lCTCA9IFwiSW1wb3J0QmF0Y2hMaXN0XCI7XG5jb25zdCBfSUQgPSBcIkludGVncmF0aW9uRGV0YWlsc1wiO1xuY29uc3QgX0lGID0gXCJJbXBvcnRGaWx0ZXJcIjtcbmNvbnN0IF9JTCA9IFwiSW1wb3J0TGlzdFwiO1xuY29uc3QgX0lMRSA9IFwiSW5wdXRMb2dFdmVudFwiO1xuY29uc3QgX0lMRW4gPSBcIklucHV0TG9nRXZlbnRzXCI7XG5jb25zdCBfSU9FID0gXCJJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uXCI7XG5jb25zdCBfSVAgPSBcIkluZGV4UG9saWN5XCI7XG5jb25zdCBfSVBFID0gXCJJbnZhbGlkUGFyYW1ldGVyRXhjZXB0aW9uXCI7XG5jb25zdCBfSVBuID0gXCJJbmRleFBvbGljaWVzXCI7XG5jb25zdCBfSVMgPSBcIkltcG9ydFN0YXRpc3RpY3NcIjtcbmNvbnN0IF9JU0UgPSBcIkludGVybmFsU2VydmVyRXhjZXB0aW9uXCI7XG5jb25zdCBfSVNFbiA9IFwiSW50ZXJuYWxTdHJlYW1pbmdFeGNlcHRpb25cIjtcbmNvbnN0IF9JU1RFID0gXCJJbnZhbGlkU2VxdWVuY2VUb2tlbkV4Y2VwdGlvblwiO1xuY29uc3QgX0lTbiA9IFwiSW50ZWdyYXRpb25TdW1tYXJ5XCI7XG5jb25zdCBfSVNudCA9IFwiSW50ZWdyYXRpb25TdW1tYXJpZXNcIjtcbmNvbnN0IF9MQSA9IFwiTGlzdEFub21hbGllc1wiO1xuY29uc3QgX0xBTEdTID0gXCJMaXN0QWdncmVnYXRlTG9nR3JvdXBTdW1tYXJpZXNcIjtcbmNvbnN0IF9MQUxHU1IgPSBcIkxpc3RBZ2dyZWdhdGVMb2dHcm91cFN1bW1hcmllc1JlcXVlc3RcIjtcbmNvbnN0IF9MQUxHU1JpID0gXCJMaXN0QWdncmVnYXRlTG9nR3JvdXBTdW1tYXJpZXNSZXNwb25zZVwiO1xuY29uc3QgX0xBUiA9IFwiTGlzdEFub21hbGllc1JlcXVlc3RcIjtcbmNvbnN0IF9MQVJpID0gXCJMaXN0QW5vbWFsaWVzUmVzcG9uc2VcIjtcbmNvbnN0IF9MQ1MgPSBcIkxvd2VyQ2FzZVN0cmluZ1wiO1xuY29uc3QgX0xFID0gXCJMb2dFdmVudFwiO1xuY29uc3QgX0xFRSA9IFwiTGltaXRFeGNlZWRlZEV4Y2VwdGlvblwiO1xuY29uc3QgX0xGTCA9IFwiTG9nRmllbGRzTGlzdFwiO1xuY29uc3QgX0xGTEkgPSBcIkxvZ0ZpZWxkc0xpc3RJdGVtXCI7XG5jb25zdCBfTEZUID0gXCJMb2dGaWVsZFR5cGVcIjtcbmNvbnN0IF9MRyA9IFwiTG9nR3JvdXBcIjtcbmNvbnN0IF9MR0YgPSBcIkxvZ0dyb3VwRmllbGRcIjtcbmNvbnN0IF9MR0ZMID0gXCJMb2dHcm91cEZpZWxkTGlzdFwiO1xuY29uc3QgX0xHUyA9IFwiTG9nR3JvdXBTdW1tYXJ5XCI7XG5jb25zdCBfTEdTbyA9IFwiTG9nR3JvdXBTdW1tYXJpZXNcIjtcbmNvbnN0IF9MR28gPSBcIkxvZ0dyb3Vwc1wiO1xuY29uc3QgX0xJID0gXCJMaXN0SW50ZWdyYXRpb25zXCI7XG5jb25zdCBfTElSID0gXCJMaXN0SW50ZWdyYXRpb25zUmVxdWVzdFwiO1xuY29uc3QgX0xJUmkgPSBcIkxpc3RJbnRlZ3JhdGlvbnNSZXNwb25zZVwiO1xuY29uc3QgX0xMQUQgPSBcIkxpc3RMb2dBbm9tYWx5RGV0ZWN0b3JzXCI7XG5jb25zdCBfTExBRFIgPSBcIkxpc3RMb2dBbm9tYWx5RGV0ZWN0b3JzUmVxdWVzdFwiO1xuY29uc3QgX0xMQURSaSA9IFwiTGlzdExvZ0Fub21hbHlEZXRlY3RvcnNSZXNwb25zZVwiO1xuY29uc3QgX0xMRyA9IFwiTGlzdExvZ0dyb3Vwc1wiO1xuY29uc3QgX0xMR0ZRID0gXCJMaXN0TG9nR3JvdXBzRm9yUXVlcnlcIjtcbmNvbnN0IF9MTEdGUVIgPSBcIkxpc3RMb2dHcm91cHNGb3JRdWVyeVJlcXVlc3RcIjtcbmNvbnN0IF9MTEdGUVJpID0gXCJMaXN0TG9nR3JvdXBzRm9yUXVlcnlSZXNwb25zZVwiO1xuY29uc3QgX0xMR1IgPSBcIkxpc3RMb2dHcm91cHNSZXF1ZXN0XCI7XG5jb25zdCBfTExHUmkgPSBcIkxpc3RMb2dHcm91cHNSZXNwb25zZVwiO1xuY29uc3QgX0xTID0gXCJMb2dTdHJlYW1cIjtcbmNvbnN0IF9MU0ZTVEkgPSBcIkxpc3RTb3VyY2VzRm9yUzNUYWJsZUludGVncmF0aW9uXCI7XG5jb25zdCBfTFNGU1RJUiA9IFwiTGlzdFNvdXJjZXNGb3JTM1RhYmxlSW50ZWdyYXRpb25SZXF1ZXN0XCI7XG5jb25zdCBfTFNGU1RJUmkgPSBcIkxpc3RTb3VyY2VzRm9yUzNUYWJsZUludGVncmF0aW9uUmVzcG9uc2VcIjtcbmNvbnN0IF9MU1EgPSBcIkxpc3RTY2hlZHVsZWRRdWVyaWVzXCI7XG5jb25zdCBfTFNRUiA9IFwiTGlzdFNjaGVkdWxlZFF1ZXJpZXNSZXF1ZXN0XCI7XG5jb25zdCBfTFNRUmkgPSBcIkxpc3RTY2hlZHVsZWRRdWVyaWVzUmVzcG9uc2VcIjtcbmNvbnN0IF9MU28gPSBcIkxvZ1NhbXBsZXNcIjtcbmNvbnN0IF9MU29nID0gXCJMb2dTdHJlYW1zXCI7XG5jb25zdCBfTFRGUiA9IFwiTGlzdFRhZ3NGb3JSZXNvdXJjZVwiO1xuY29uc3QgX0xURlJSID0gXCJMaXN0VGFnc0ZvclJlc291cmNlUmVxdWVzdFwiO1xuY29uc3QgX0xURlJSaSA9IFwiTGlzdFRhZ3NGb3JSZXNvdXJjZVJlc3BvbnNlXCI7XG5jb25zdCBfTFRMRyA9IFwiTGlzdFRhZ3NMb2dHcm91cFwiO1xuY29uc3QgX0xUTEdSID0gXCJMaXN0VGFnc0xvZ0dyb3VwUmVxdWVzdFwiO1xuY29uc3QgX0xUTEdSaSA9IFwiTGlzdFRhZ3NMb2dHcm91cFJlc3BvbnNlXCI7XG5jb25zdCBfTFRNID0gXCJMaXN0VG9NYXBcIjtcbmNvbnN0IF9MVFNMRSA9IFwiTGl2ZVRhaWxTZXNzaW9uTG9nRXZlbnRcIjtcbmNvbnN0IF9MVFNNID0gXCJMaXZlVGFpbFNlc3Npb25NZXRhZGF0YVwiO1xuY29uc3QgX0xUU1IgPSBcIkxpdmVUYWlsU2Vzc2lvblJlc3VsdHNcIjtcbmNvbnN0IF9MVFNTID0gXCJMaXZlVGFpbFNlc3Npb25TdGFydFwiO1xuY29uc3QgX0xUU1UgPSBcIkxpdmVUYWlsU2Vzc2lvblVwZGF0ZVwiO1xuY29uc3QgX01GID0gXCJNZXRyaWNGaWx0ZXJcIjtcbmNvbnN0IF9NRk0gPSBcIk1ldHJpY0ZpbHRlck1hdGNoZXNcIjtcbmNvbnN0IF9NRk1SID0gXCJNZXRyaWNGaWx0ZXJNYXRjaFJlY29yZFwiO1xuY29uc3QgX01GZSA9IFwiTWV0cmljRmlsdGVyc1wiO1xuY29uc3QgX01LID0gXCJNb3ZlS2V5c1wiO1xuY29uc3QgX01LRSA9IFwiTW92ZUtleUVudHJ5XCI7XG5jb25zdCBfTUtFbyA9IFwiTW92ZUtleUVudHJpZXNcIjtcbmNvbnN0IF9NUUUgPSBcIk1hbGZvcm1lZFF1ZXJ5RXhjZXB0aW9uXCI7XG5jb25zdCBfTVQgPSBcIk1ldHJpY1RyYW5zZm9ybWF0aW9uXCI7XG5jb25zdCBfTVRlID0gXCJNZXRyaWNUcmFuc2Zvcm1hdGlvbnNcIjtcbmNvbnN0IF9PQUUgPSBcIk9wZXJhdGlvbkFib3J0ZWRFeGNlcHRpb25cIjtcbmNvbnN0IF9PTEUgPSBcIk91dHB1dExvZ0V2ZW50XCI7XG5jb25zdCBfT0xFdSA9IFwiT3V0cHV0TG9nRXZlbnRzXCI7XG5jb25zdCBfT1NBID0gXCJPcGVuU2VhcmNoQXBwbGljYXRpb25cIjtcbmNvbnN0IF9PU0MgPSBcIk9wZW5TZWFyY2hDb2xsZWN0aW9uXCI7XG5jb25zdCBfT1NEQVAgPSBcIk9wZW5TZWFyY2hEYXRhQWNjZXNzUG9saWN5XCI7XG5jb25zdCBfT1NEUyA9IFwiT3BlblNlYXJjaERhdGFTb3VyY2VcIjtcbmNvbnN0IF9PU0VQID0gXCJPcGVuU2VhcmNoRW5jcnlwdGlvblBvbGljeVwiO1xuY29uc3QgX09TSUQgPSBcIk9wZW5TZWFyY2hJbnRlZ3JhdGlvbkRldGFpbHNcIjtcbmNvbnN0IF9PU0xQID0gXCJPcGVuU2VhcmNoTGlmZWN5Y2xlUG9saWN5XCI7XG5jb25zdCBfT1NOUCA9IFwiT3BlblNlYXJjaE5ldHdvcmtQb2xpY3lcIjtcbmNvbnN0IF9PU1JDID0gXCJPcGVuU2VhcmNoUmVzb3VyY2VDb25maWdcIjtcbmNvbnN0IF9PU1JTID0gXCJPcGVuU2VhcmNoUmVzb3VyY2VTdGF0dXNcIjtcbmNvbnN0IF9PU1cgPSBcIk9wZW5TZWFyY2hXb3Jrc3BhY2VcIjtcbmNvbnN0IF9QID0gXCJQb2xpY3lcIjtcbmNvbnN0IF9QQVAgPSBcIlB1dEFjY291bnRQb2xpY3lcIjtcbmNvbnN0IF9QQVBSID0gXCJQdXRBY2NvdW50UG9saWN5UmVxdWVzdFwiO1xuY29uc3QgX1BBUFJ1ID0gXCJQdXRBY2NvdW50UG9saWN5UmVzcG9uc2VcIjtcbmNvbnN0IF9QQyA9IFwiUGFyc2VDbG91ZGZyb250XCI7XG5jb25zdCBfUEQgPSBcIlB1dERlc3RpbmF0aW9uXCI7XG5jb25zdCBfUEREID0gXCJQdXREZWxpdmVyeURlc3RpbmF0aW9uXCI7XG5jb25zdCBfUEREUCA9IFwiUHV0RGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeVwiO1xuY29uc3QgX1BERFBSID0gXCJQdXREZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5UmVxdWVzdFwiO1xuY29uc3QgX1BERFBSdSA9IFwiUHV0RGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeVJlc3BvbnNlXCI7XG5jb25zdCBfUEREUiA9IFwiUHV0RGVsaXZlcnlEZXN0aW5hdGlvblJlcXVlc3RcIjtcbmNvbnN0IF9QRERSdSA9IFwiUHV0RGVsaXZlcnlEZXN0aW5hdGlvblJlc3BvbnNlXCI7XG5jb25zdCBfUERQID0gXCJQdXREZXN0aW5hdGlvblBvbGljeVwiO1xuY29uc3QgX1BEUFAgPSBcIlB1dERhdGFQcm90ZWN0aW9uUG9saWN5XCI7XG5jb25zdCBfUERQUFIgPSBcIlB1dERhdGFQcm90ZWN0aW9uUG9saWN5UmVxdWVzdFwiO1xuY29uc3QgX1BEUFBSdSA9IFwiUHV0RGF0YVByb3RlY3Rpb25Qb2xpY3lSZXNwb25zZVwiO1xuY29uc3QgX1BEUFIgPSBcIlB1dERlc3RpbmF0aW9uUG9saWN5UmVxdWVzdFwiO1xuY29uc3QgX1BEUiA9IFwiUHV0RGVzdGluYXRpb25SZXF1ZXN0XCI7XG5jb25zdCBfUERSdSA9IFwiUHV0RGVzdGluYXRpb25SZXNwb25zZVwiO1xuY29uc3QgX1BEUyA9IFwiUHV0RGVsaXZlcnlTb3VyY2VcIjtcbmNvbnN0IF9QRFNSID0gXCJQdXREZWxpdmVyeVNvdXJjZVJlcXVlc3RcIjtcbmNvbnN0IF9QRFNSdSA9IFwiUHV0RGVsaXZlcnlTb3VyY2VSZXNwb25zZVwiO1xuY29uc3QgX1BJID0gXCJQdXRJbnRlZ3JhdGlvblwiO1xuY29uc3QgX1BJUCA9IFwiUHV0SW5kZXhQb2xpY3lcIjtcbmNvbnN0IF9QSVBSID0gXCJQdXRJbmRleFBvbGljeVJlcXVlc3RcIjtcbmNvbnN0IF9QSVBSdSA9IFwiUHV0SW5kZXhQb2xpY3lSZXNwb25zZVwiO1xuY29uc3QgX1BJUiA9IFwiUHV0SW50ZWdyYXRpb25SZXF1ZXN0XCI7XG5jb25zdCBfUElSdSA9IFwiUHV0SW50ZWdyYXRpb25SZXNwb25zZVwiO1xuY29uc3QgX1BKU09OID0gXCJQYXJzZUpTT05cIjtcbmNvbnN0IF9QS1YgPSBcIlBhcnNlS2V5VmFsdWVcIjtcbmNvbnN0IF9QTEUgPSBcIlB1dExvZ0V2ZW50c1wiO1xuY29uc3QgX1BMRVIgPSBcIlB1dExvZ0V2ZW50c1JlcXVlc3RcIjtcbmNvbnN0IF9QTEVSdSA9IFwiUHV0TG9nRXZlbnRzUmVzcG9uc2VcIjtcbmNvbnN0IF9QTEdEUCA9IFwiUHV0TG9nR3JvdXBEZWxldGlvblByb3RlY3Rpb25cIjtcbmNvbnN0IF9QTEdEUFIgPSBcIlB1dExvZ0dyb3VwRGVsZXRpb25Qcm90ZWN0aW9uUmVxdWVzdFwiO1xuY29uc3QgX1BNRiA9IFwiUHV0TWV0cmljRmlsdGVyXCI7XG5jb25zdCBfUE1GUiA9IFwiUHV0TWV0cmljRmlsdGVyUmVxdWVzdFwiO1xuY29uc3QgX1BQID0gXCJQYXJzZVBvc3RncmVzXCI7XG5jb25zdCBfUFFEID0gXCJQdXRRdWVyeURlZmluaXRpb25cIjtcbmNvbnN0IF9QUURSID0gXCJQdXRRdWVyeURlZmluaXRpb25SZXF1ZXN0XCI7XG5jb25zdCBfUFFEUnUgPSBcIlB1dFF1ZXJ5RGVmaW5pdGlvblJlc3BvbnNlXCI7XG5jb25zdCBfUFIgPSBcIlBhcnNlUm91dGU1M1wiO1xuY29uc3QgX1BSUCA9IFwiUHV0UmVzb3VyY2VQb2xpY3lcIjtcbmNvbnN0IF9QUlBSID0gXCJQdXRSZXNvdXJjZVBvbGljeVJlcXVlc3RcIjtcbmNvbnN0IF9QUlBSdSA9IFwiUHV0UmVzb3VyY2VQb2xpY3lSZXNwb25zZVwiO1xuY29uc3QgX1BSUFJ1dCA9IFwiUHV0UmV0ZW50aW9uUG9saWN5UmVxdWVzdFwiO1xuY29uc3QgX1BSUHUgPSBcIlB1dFJldGVudGlvblBvbGljeVwiO1xuY29uc3QgX1BTRiA9IFwiUHV0U3Vic2NyaXB0aW9uRmlsdGVyXCI7XG5jb25zdCBfUFNGUiA9IFwiUHV0U3Vic2NyaXB0aW9uRmlsdGVyUmVxdWVzdFwiO1xuY29uc3QgX1BUID0gXCJQYXR0ZXJuVG9rZW5cIjtcbmNvbnN0IF9QVE9DU0YgPSBcIlBhcnNlVG9PQ1NGXCI7XG5jb25zdCBfUFRSID0gXCJQdXRUcmFuc2Zvcm1lclJlcXVlc3RcIjtcbmNvbnN0IF9QVGEgPSBcIlBhdHRlcm5Ub2tlbnNcIjtcbmNvbnN0IF9QVHUgPSBcIlB1dFRyYW5zZm9ybWVyXCI7XG5jb25zdCBfUFZQQyA9IFwiUGFyc2VWUENcIjtcbmNvbnN0IF9QV0FGID0gXCJQYXJzZVdBRlwiO1xuY29uc3QgX1ByID0gXCJQcm9jZXNzb3JcIjtcbmNvbnN0IF9Qcm8gPSBcIlByb2Nlc3NvcnNcIjtcbmNvbnN0IF9RQ0UgPSBcIlF1ZXJ5Q29tcGlsZUVycm9yXCI7XG5jb25zdCBfUUNFTCA9IFwiUXVlcnlDb21waWxlRXJyb3JMb2NhdGlvblwiO1xuY29uc3QgX1FEID0gXCJRdWVyeURlZmluaXRpb25cIjtcbmNvbnN0IF9RREwgPSBcIlF1ZXJ5RGVmaW5pdGlvbkxpc3RcIjtcbmNvbnN0IF9RSSA9IFwiUXVlcnlJbmZvXCI7XG5jb25zdCBfUUlMID0gXCJRdWVyeUluZm9MaXN0XCI7XG5jb25zdCBfUVIgPSBcIlF1ZXJ5UmVzdWx0c1wiO1xuY29uc3QgX1FTID0gXCJRdWVyeVN0YXRpc3RpY3NcIjtcbmNvbnN0IF9SQUVFID0gXCJSZXNvdXJjZUFscmVhZHlFeGlzdHNFeGNlcHRpb25cIjtcbmNvbnN0IF9SQyA9IFwiUmVzb3VyY2VDb25maWdcIjtcbmNvbnN0IF9SRUkgPSBcIlJlamVjdGVkRW50aXR5SW5mb1wiO1xuY29uc3QgX1JGID0gXCJSZWNvcmRGaWVsZFwiO1xuY29uc3QgX1JGZSA9IFwiUmVzdWx0RmllbGRcIjtcbmNvbnN0IF9SSyA9IFwiUmVuYW1lS2V5c1wiO1xuY29uc3QgX1JLRSA9IFwiUmVuYW1lS2V5RW50cnlcIjtcbmNvbnN0IF9SS0VlID0gXCJSZW5hbWVLZXlFbnRyaWVzXCI7XG5jb25zdCBfUkxFSSA9IFwiUmVqZWN0ZWRMb2dFdmVudHNJbmZvXCI7XG5jb25zdCBfUk5GRSA9IFwiUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvblwiO1xuY29uc3QgX1JQID0gXCJSZXNvdXJjZVBvbGljeVwiO1xuY29uc3QgX1JQZSA9IFwiUmVzb3VyY2VQb2xpY2llc1wiO1xuY29uc3QgX1JSID0gXCJSZXN1bHRSb3dzXCI7XG5jb25zdCBfU0MgPSBcIlMzQ29uZmlndXJhdGlvblwiO1xuY29uc3QgX1NEQyA9IFwiUzNEZWxpdmVyeUNvbmZpZ3VyYXRpb25cIjtcbmNvbnN0IF9TRiA9IFwiU3Vic2NyaXB0aW9uRmlsdGVyXCI7XG5jb25zdCBfU0Z1ID0gXCJTdWJzY3JpcHRpb25GaWx0ZXJzXCI7XG5jb25zdCBfU0xTID0gXCJTZWFyY2hlZExvZ1N0cmVhbVwiO1xuY29uc3QgX1NMU2UgPSBcIlNlYXJjaGVkTG9nU3RyZWFtc1wiO1xuY29uc3QgX1NMVCA9IFwiU3RhcnRMaXZlVGFpbFwiO1xuY29uc3QgX1NMVFIgPSBcIlN0YXJ0TGl2ZVRhaWxSZXF1ZXN0XCI7XG5jb25zdCBfU0xUUlMgPSBcIlN0YXJ0TGl2ZVRhaWxSZXNwb25zZVN0cmVhbVwiO1xuY29uc3QgX1NMVFJ0ID0gXCJTdGFydExpdmVUYWlsUmVzcG9uc2VcIjtcbmNvbnN0IF9TUCA9IFwiU3VwcHJlc3Npb25QZXJpb2RcIjtcbmNvbnN0IF9TUSA9IFwiU3RhcnRRdWVyeVwiO1xuY29uc3QgX1NRRCA9IFwiU2NoZWR1bGVkUXVlcnlEZXN0aW5hdGlvblwiO1xuY29uc3QgX1NRREwgPSBcIlNjaGVkdWxlZFF1ZXJ5RGVzdGluYXRpb25MaXN0XCI7XG5jb25zdCBfU1FFRSA9IFwiU2VydmljZVF1b3RhRXhjZWVkZWRFeGNlcHRpb25cIjtcbmNvbnN0IF9TUVIgPSBcIlN0YXJ0UXVlcnlSZXF1ZXN0XCI7XG5jb25zdCBfU1FSdCA9IFwiU3RhcnRRdWVyeVJlc3BvbnNlXCI7XG5jb25zdCBfU1FSdG8gPSBcIlN0b3BRdWVyeVJlcXVlc3RcIjtcbmNvbnN0IF9TUVJ0b3AgPSBcIlN0b3BRdWVyeVJlc3BvbnNlXCI7XG5jb25zdCBfU1FTID0gXCJTY2hlZHVsZWRRdWVyeVN1bW1hcnlcIjtcbmNvbnN0IF9TUVNMID0gXCJTY2hlZHVsZWRRdWVyeVN1bW1hcnlMaXN0XCI7XG5jb25zdCBfU1F0ID0gXCJTdG9wUXVlcnlcIjtcbmNvbnN0IF9TUyA9IFwiU3BsaXRTdHJpbmdcIjtcbmNvbnN0IF9TU0UgPSBcIlNlc3Npb25TdHJlYW1pbmdFeGNlcHRpb25cIjtcbmNvbnN0IF9TU0VwID0gXCJTcGxpdFN0cmluZ0VudHJ5XCI7XG5jb25zdCBfU1NFcGwgPSBcIlNwbGl0U3RyaW5nRW50cmllc1wiO1xuY29uc3QgX1NTRXUgPSBcIlN1YnN0aXR1dGVTdHJpbmdFbnRyeVwiO1xuY29uc3QgX1NTRXViID0gXCJTdWJzdGl0dXRlU3RyaW5nRW50cmllc1wiO1xuY29uc3QgX1NTdSA9IFwiU3Vic3RpdHV0ZVN0cmluZ1wiO1xuY29uc3QgX1NURSA9IFwiU2Vzc2lvblRpbWVvdXRFeGNlcHRpb25cIjtcbmNvbnN0IF9TVElTID0gXCJTM1RhYmxlSW50ZWdyYXRpb25Tb3VyY2VcIjtcbmNvbnN0IF9TVElTYSA9IFwiUzNUYWJsZUludGVncmF0aW9uU291cmNlc1wiO1xuY29uc3QgX1NVRSA9IFwiU2VydmljZVVuYXZhaWxhYmxlRXhjZXB0aW9uXCI7XG5jb25zdCBfVEMgPSBcIlR5cGVDb252ZXJ0ZXJcIjtcbmNvbnN0IF9UQ0UgPSBcIlR5cGVDb252ZXJ0ZXJFbnRyeVwiO1xuY29uc3QgX1RDRXkgPSBcIlR5cGVDb252ZXJ0ZXJFbnRyaWVzXCI7XG5jb25zdCBfVEUgPSBcIlRocm90dGxpbmdFeGNlcHRpb25cIjtcbmNvbnN0IF9USFIgPSBcIlRyaWdnZXJIaXN0b3J5UmVjb3JkXCI7XG5jb25zdCBfVEhSTCA9IFwiVHJpZ2dlckhpc3RvcnlSZWNvcmRMaXN0XCI7XG5jb25zdCBfVEwgPSBcIlRyYW5zZm9ybWVkTG9nc1wiO1xuY29uc3QgX1RMRyA9IFwiVGFnTG9nR3JvdXBcIjtcbmNvbnN0IF9UTEdSID0gXCJUYWdMb2dHcm91cFJlcXVlc3RcIjtcbmNvbnN0IF9UTFIgPSBcIlRyYW5zZm9ybWVkTG9nUmVjb3JkXCI7XG5jb25zdCBfVE1GID0gXCJUZXN0TWV0cmljRmlsdGVyXCI7XG5jb25zdCBfVE1GUiA9IFwiVGVzdE1ldHJpY0ZpbHRlclJlcXVlc3RcIjtcbmNvbnN0IF9UTUZSZSA9IFwiVGVzdE1ldHJpY0ZpbHRlclJlc3BvbnNlXCI7XG5jb25zdCBfVE1URSA9IFwiVG9vTWFueVRhZ3NFeGNlcHRpb25cIjtcbmNvbnN0IF9UUiA9IFwiVGFnUmVzb3VyY2VcIjtcbmNvbnN0IF9UUlIgPSBcIlRhZ1Jlc291cmNlUmVxdWVzdFwiO1xuY29uc3QgX1RTID0gXCJUcmltU3RyaW5nXCI7XG5jb25zdCBfVFQgPSBcIlRlc3RUcmFuc2Zvcm1lclwiO1xuY29uc3QgX1RUUiA9IFwiVGVzdFRyYW5zZm9ybWVyUmVxdWVzdFwiO1xuY29uc3QgX1RUUmUgPSBcIlRlc3RUcmFuc2Zvcm1lclJlc3BvbnNlXCI7XG5jb25zdCBfVUEgPSBcIlVwZGF0ZUFub21hbHlcIjtcbmNvbnN0IF9VQVIgPSBcIlVwZGF0ZUFub21hbHlSZXF1ZXN0XCI7XG5jb25zdCBfVUNFID0gXCJVbnJlY29nbml6ZWRDbGllbnRFeGNlcHRpb25cIjtcbmNvbnN0IF9VQ1MgPSBcIlVwcGVyQ2FzZVN0cmluZ1wiO1xuY29uc3QgX1VEQyA9IFwiVXBkYXRlRGVsaXZlcnlDb25maWd1cmF0aW9uXCI7XG5jb25zdCBfVURDUiA9IFwiVXBkYXRlRGVsaXZlcnlDb25maWd1cmF0aW9uUmVxdWVzdFwiO1xuY29uc3QgX1VEQ1JwID0gXCJVcGRhdGVEZWxpdmVyeUNvbmZpZ3VyYXRpb25SZXNwb25zZVwiO1xuY29uc3QgX1VMQUQgPSBcIlVwZGF0ZUxvZ0Fub21hbHlEZXRlY3RvclwiO1xuY29uc3QgX1VMQURSID0gXCJVcGRhdGVMb2dBbm9tYWx5RGV0ZWN0b3JSZXF1ZXN0XCI7XG5jb25zdCBfVUxHID0gXCJVbnRhZ0xvZ0dyb3VwXCI7XG5jb25zdCBfVUxHUiA9IFwiVW50YWdMb2dHcm91cFJlcXVlc3RcIjtcbmNvbnN0IF9VUiA9IFwiVW50YWdSZXNvdXJjZVwiO1xuY29uc3QgX1VSUiA9IFwiVW50YWdSZXNvdXJjZVJlcXVlc3RcIjtcbmNvbnN0IF9VU1EgPSBcIlVwZGF0ZVNjaGVkdWxlZFF1ZXJ5XCI7XG5jb25zdCBfVVNRUiA9IFwiVXBkYXRlU2NoZWR1bGVkUXVlcnlSZXF1ZXN0XCI7XG5jb25zdCBfVVNRUnAgPSBcIlVwZGF0ZVNjaGVkdWxlZFF1ZXJ5UmVzcG9uc2VcIjtcbmNvbnN0IF9WRSA9IFwiVmFsaWRhdGlvbkV4Y2VwdGlvblwiO1xuY29uc3QgX2EgPSBcImFjdGl2ZVwiO1xuY29uc3QgX2FBID0gXCJhcHBsaWNhdGlvbkFyblwiO1xuY29uc3QgX2FBRkFWTERGUiA9IFwiYWxsb3dlZEFjdGlvbkZvckFsbG93VmVuZGVkTG9nc0RlbGl2ZXJ5Rm9yUmVzb3VyY2VcIjtcbmNvbnN0IF9hRCA9IFwiYW5vbWFseURldGVjdG9yc1wiO1xuY29uc3QgX2FEQSA9IFwiYW5vbWFseURldGVjdG9yQXJuXCI7XG5jb25zdCBfYURTID0gXCJhbm9tYWx5RGV0ZWN0b3JTdGF0dXNcIjtcbmNvbnN0IF9hRSA9IFwiYXBwbGljYXRpb25FbmRwb2ludFwiO1xuY29uc3QgX2FGID0gXCJhbGxvd2VkRmllbGRzXCI7XG5jb25zdCBfYUZEID0gXCJhbGxvd2VkRmllbGREZWxpbWl0ZXJzXCI7XG5jb25zdCBfYUkgPSBcImFjY291bnRJZFwiO1xuY29uc3QgX2FJYyA9IFwiYWNjb3VudElkZW50aWZpZXJzXCI7XG5jb25zdCBfYUluID0gXCJhbm9tYWx5SWRcIjtcbmNvbnN0IF9hSXAgPSBcImFwcGxpY2F0aW9uSWRcIjtcbmNvbnN0IF9hSyA9IFwiYWRkS2V5c1wiO1xuY29uc3QgX2FMR1MgPSBcImFnZ3JlZ2F0ZUxvZ0dyb3VwU3VtbWFyaWVzXCI7XG5jb25zdCBfYU9GID0gXCJhbGxvd2VkT3V0cHV0Rm9ybWF0c1wiO1xuY29uc3QgX2FPVEwgPSBcImFwcGx5T25UcmFuc2Zvcm1lZExvZ3NcIjtcbmNvbnN0IF9hUCA9IFwiYWNjb3VudFBvbGljaWVzXCI7XG5jb25zdCBfYVBjID0gXCJhY2Nlc3NQb2xpY3lcIjtcbmNvbnN0IF9hUGNjID0gXCJhY2NvdW50UG9saWN5XCI7XG5jb25zdCBfYVNQRiA9IFwiYWxsb3dlZFN1ZmZpeFBhdGhGaWVsZHNcIjtcbmNvbnN0IF9hVlQgPSBcImFub21hbHlWaXNpYmlsaXR5VGltZVwiO1xuY29uc3QgX2FuID0gXCJhbm9tYWxpZXNcIjtcbmNvbnN0IF9hcCA9IFwiYXBwbGljYXRpb25cIjtcbmNvbnN0IF9hciA9IFwiYXJuXCI7XG5jb25zdCBfYXQgPSBcImF0dHJpYnV0ZXNcIjtcbmNvbnN0IF9iID0gXCJiYXNlbGluZVwiO1xuY29uc3QgX2JJID0gXCJiYXRjaElkXCI7XG5jb25zdCBfYklTID0gXCJiYXRjaEltcG9ydFN0YXR1c1wiO1xuY29uc3QgX2JJeSA9IFwiYnl0ZXNJbXBvcnRlZFwiO1xuY29uc3QgX2JTID0gXCJieXRlc1NjYW5uZWRcIjtcbmNvbnN0IF9jID0gXCJjbGllbnRcIjtcbmNvbnN0IF9jQSA9IFwiY29sbGVjdGlvbkFyblwiO1xuY29uc3QgX2NFID0gXCJjb2xsZWN0aW9uRW5kcG9pbnRcIjtcbmNvbnN0IF9jVCA9IFwiY3JlYXRpb25UaW1lXCI7XG5jb25zdCBfY1RTID0gXCJjcmVhdGlvblRpbWVTdGFtcFwiO1xuY29uc3QgX2NUU3IgPSBcImNyZWF0ZWRUaW1lU3RhbXBcIjtcbmNvbnN0IF9jVGwgPSBcImNsaWVudFRva2VuXCI7XG5jb25zdCBfY1RvID0gXCJjb25maWd1cmF0aW9uVGVtcGxhdGVzXCI7XG5jb25zdCBfY1RvbSA9IFwiY29tcGxldGlvblRpbWVcIjtcbmNvbnN0IF9jVHIgPSBcImNyZWF0ZVRpbWVcIjtcbmNvbnN0IF9jViA9IFwiY29weVZhbHVlXCI7XG5jb25zdCBfY28gPSBcImNvbHVtbnNcIjtcbmNvbnN0IF9jb2QgPSBcImNvZGVcIjtcbmNvbnN0IF9jb2wgPSBcImNvbGxlY3Rpb25cIjtcbmNvbnN0IF9jcyA9IFwiY3N2XCI7XG5jb25zdCBfZCA9IFwiZGVzY3JpcHRpb25cIjtcbmNvbnN0IF9kQSA9IFwiZGVzdGluYXRpb25Bcm5cIjtcbmNvbnN0IF9kQyA9IFwiZGVzdGluYXRpb25Db25maWd1cmF0aW9uXCI7XG5jb25zdCBfZEQgPSBcImRlbGl2ZXJ5RGVzdGluYXRpb25zXCI7XG5jb25zdCBfZERBID0gXCJkZWxpdmVyeURlc3RpbmF0aW9uQXJuXCI7XG5jb25zdCBfZERDID0gXCJkZWxpdmVyeURlc3RpbmF0aW9uQ29uZmlndXJhdGlvblwiO1xuY29uc3QgX2REQ1YgPSBcImRlZmF1bHREZWxpdmVyeUNvbmZpZ1ZhbHVlc1wiO1xuY29uc3QgX2RETiA9IFwiZGVsaXZlcnlEZXN0aW5hdGlvbk5hbWVcIjtcbmNvbnN0IF9kRFAgPSBcImRlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lcIjtcbmNvbnN0IF9kRFQgPSBcImRlbGl2ZXJ5RGVzdGluYXRpb25UeXBlXCI7XG5jb25zdCBfZERUZSA9IFwiZGVsaXZlcnlEZXN0aW5hdGlvblR5cGVzXCI7XG5jb25zdCBfZERlID0gXCJkZWxpdmVyeURlc3RpbmF0aW9uXCI7XG5jb25zdCBfZEkgPSBcImRlc3RpbmF0aW9uSWRlbnRpZmllclwiO1xuY29uc3QgX2RLID0gXCJkZWxldGVLZXlzXCI7XG5jb25zdCBfZE4gPSBcImRldGVjdG9yTmFtZVwiO1xuY29uc3QgX2ROZSA9IFwiZGVzdGluYXRpb25OYW1lXCI7XG5jb25zdCBfZFAgPSBcImRlc3RpbmF0aW9uUHJlZml4XCI7XG5jb25zdCBfZFBFID0gXCJkZWxldGlvblByb3RlY3Rpb25FbmFibGVkXCI7XG5jb25zdCBfZFBTID0gXCJkYXRhUHJvdGVjdGlvblN0YXR1c1wiO1xuY29uc3QgX2RSQSA9IFwiZGVzdGluYXRpb25SZXNvdXJjZUFyblwiO1xuY29uc3QgX2RTID0gXCJkYXRhU291cmNlXCI7XG5jb25zdCBfZFNOID0gXCJkZWxpdmVyeVNvdXJjZU5hbWVcIjtcbmNvbnN0IF9kU05hID0gXCJkYXRhU291cmNlTmFtZVwiO1xuY29uc3QgX2RTUkEgPSBcImRhdGFTb3VyY2VSb2xlQXJuXCI7XG5jb25zdCBfZFNUID0gXCJkYXRhU291cmNlVHlwZVwiO1xuY29uc3QgX2RTYSA9IFwiZGF0YVNvdXJjZXNcIjtcbmNvbnN0IF9kU2UgPSBcImRlbGl2ZXJ5U291cmNlc1wiO1xuY29uc3QgX2RTZWwgPSBcImRlbGl2ZXJ5U291cmNlXCI7XG5jb25zdCBfZFQgPSBcImRlc3RpbmF0aW9uVHlwZVwiO1xuY29uc3QgX2RUQyA9IFwiZGF0ZVRpbWVDb252ZXJ0ZXJcIjtcbmNvbnN0IF9kVFAgPSBcImR5bmFtaWNUb2tlblBvc2l0aW9uXCI7XG5jb25zdCBfZFYgPSBcImRlZmF1bHRWYWx1ZVwiO1xuY29uc3QgX2RWUCA9IFwiZGFzaGJvYXJkVmlld2VyUHJpbmNpcGFsc1wiO1xuY29uc3QgX2RhID0gXCJkYXRhXCI7XG5jb25zdCBfZGUgPSBcImRlbGl2ZXJ5XCI7XG5jb25zdCBfZGVsID0gXCJkZWxpbWl0ZXJcIjtcbmNvbnN0IF9kZWxpID0gXCJkZWxpdmVyaWVzXCI7XG5jb25zdCBfZGVzID0gXCJkZXN0aW5hdGlvblwiO1xuY29uc3QgX2Rlc2MgPSBcImRlc2NlbmRpbmdcIjtcbmNvbnN0IF9kZXN0ID0gXCJkZXN0aW5hdGlvbnNcIjtcbmNvbnN0IF9kaSA9IFwiZGltZW5zaW9uc1wiO1xuY29uc3QgX2RpcyA9IFwiZGlzdHJpYnV0aW9uXCI7XG5jb25zdCBfZSA9IFwiZXJyb3JcIjtcbmNvbnN0IF9lQlMgPSBcImVzdGltYXRlZEJ5dGVzU2tpcHBlZFwiO1xuY29uc3QgX2VDTyA9IFwiZW5kQ2hhck9mZnNldFwiO1xuY29uc3QgX2VFVCA9IFwiZW5kRXZlbnRUaW1lXCI7XG5jb25zdCBfZUYgPSBcImV2YWx1YXRpb25GcmVxdWVuY3lcIjtcbmNvbnN0IF9lSENQID0gXCJlbmFibGVIaXZlQ29tcGF0aWJsZVBhdGhcIjtcbmNvbnN0IF9lSSA9IFwiZXhlY3V0aW9uSW5mb1wiO1xuY29uc3QgX2VJdiA9IFwiZXZlbnRJZFwiO1xuY29uc3QgX2VLID0gXCJlbmNyeXB0aW9uS2V5XCI7XG5jb25zdCBfZUxFRUkgPSBcImV4cGlyZWRMb2dFdmVudEVuZEluZGV4XCI7XG5jb25zdCBfZU0gPSBcImVycm9yTWVzc2FnZVwiO1xuY29uc3QgX2VNdiA9IFwiZXZlbnRNZXNzYWdlXCI7XG5jb25zdCBfZU4gPSBcImV2ZW50TnVtYmVyXCI7XG5jb25zdCBfZVAgPSBcImVuY3J5cHRpb25Qb2xpY3lcIjtcbmNvbnN0IF9lUkEgPSBcImV4ZWN1dGlvblJvbGVBcm5cIjtcbmNvbnN0IF9lUkkgPSBcImV4cGVjdGVkUmV2aXNpb25JZFwiO1xuY29uc3QgX2VSUyA9IFwiZXN0aW1hdGVkUmVjb3Jkc1NraXBwZWRcIjtcbmNvbnN0IF9lUyA9IFwiZXhlY3V0aW9uU3RhdHVzZXNcIjtcbmNvbnN0IF9lU0YgPSBcImVtaXRTeXN0ZW1GaWVsZHNcIjtcbmNvbnN0IF9lU0ZEID0gXCJlbWl0U3lzdGVtRmllbGREaW1lbnNpb25zXCI7XG5jb25zdCBfZVNUID0gXCJleHBlY3RlZFNlcXVlbmNlVG9rZW5cIjtcbmNvbnN0IF9lU3YgPSBcImV2ZW50U291cmNlXCI7XG5jb25zdCBfZVN4ID0gXCJleGVjdXRpb25TdGF0dXNcIjtcbmNvbnN0IF9lVCA9IFwiZXhwb3J0VGFza3NcIjtcbmNvbnN0IF9lVG4gPSBcImVuZFRpbWVcIjtcbmNvbnN0IF9lVHIgPSBcImVycm9yVHlwZVwiO1xuY29uc3QgX2VWID0gXCJleHRyYWN0ZWRWYWx1ZXNcIjtcbmNvbnN0IF9lbCA9IFwiZWxlbWVudFwiO1xuY29uc3QgX2VuID0gXCJlbnRyaWVzXCI7XG5jb25zdCBfZW5hID0gXCJlbmFibGVkXCI7XG5jb25zdCBfZW5kID0gXCJlbmRwb2ludFwiO1xuY29uc3QgX2VudCA9IFwiZW50aXR5XCI7XG5jb25zdCBfZW51ID0gXCJlbnVtZXJhdGlvbnNcIjtcbmNvbnN0IF9ldiA9IFwiZXZlbnRzXCI7XG5jb25zdCBfZiA9IFwiZnJvbVwiO1xuY29uc3QgX2ZEID0gXCJmaWVsZERlbGltaXRlclwiO1xuY29uc3QgX2ZFID0gXCJmbGF0dGVuZWRFbGVtZW50XCI7XG5jb25zdCBfZkVUID0gXCJmaXJzdEV2ZW50VGltZVwiO1xuY29uc3QgX2ZFVGkgPSBcImZpcnN0RXZlbnRUaW1lc3RhbXBcIjtcbmNvbnN0IF9mSSA9IFwiZmllbGRJbmRleGVzXCI7XG5jb25zdCBfZklOID0gXCJmaWVsZEluZGV4TmFtZVwiO1xuY29uc3QgX2ZJTmkgPSBcImZpZWxkSW5kZXhOYW1lc1wiO1xuY29uc3QgX2ZMR0EgPSBcImZpbHRlckxvZ0dyb3VwQXJuXCI7XG5jb25zdCBfZk4gPSBcImZpbHRlck5hbWVcIjtcbmNvbnN0IF9mTlAgPSBcImZpbHRlck5hbWVQcmVmaXhcIjtcbmNvbnN0IF9mUCA9IFwiZmlsdGVyUGF0dGVyblwiO1xuY29uc3QgX2ZTID0gXCJmaXJzdFNlZW5cIjtcbmNvbnN0IF9mU0MgPSBcImZpZWxkU2VsZWN0aW9uQ3JpdGVyaWFcIjtcbmNvbnN0IF9mU2kgPSBcImZpZWxkU3RyZWFtXCI7XG5jb25zdCBfZlUgPSBcImZvcmNlVXBkYXRlXCI7XG5jb25zdCBfZmkgPSBcImZpZWxkc1wiO1xuY29uc3QgX2ZpZSA9IFwiZmllbGRcIjtcbmNvbnN0IF9mbCA9IFwiZmxhdHRlblwiO1xuY29uc3QgX2ZvID0gXCJmb3JjZVwiO1xuY29uc3QgX2cgPSBcImdyb2tcIjtcbmNvbnN0IF9nQiA9IFwiZ3JvdXBCeVwiO1xuY29uc3QgX2dJID0gXCJncm91cGluZ0lkZW50aWZpZXJzXCI7XG5jb25zdCBfaCA9IFwiaGlzdG9ncmFtXCI7XG5jb25zdCBfaEUgPSBcImh0dHBFcnJvclwiO1xuY29uc3QgX2kgPSBcImlkZW50aWZpZXJcIjtcbmNvbnN0IF9pQSA9IFwiaW50ZWdyYXRpb25Bcm5cIjtcbmNvbnN0IF9pQiA9IFwiaW1wb3J0QmF0Y2hlc1wiO1xuY29uc3QgX2lEID0gXCJpbnRlZ3JhdGlvbkRldGFpbHNcIjtcbmNvbnN0IF9pREEgPSBcImltcG9ydERlc3RpbmF0aW9uQXJuXCI7XG5jb25zdCBfaURzID0gXCJpc0R5bmFtaWNcIjtcbmNvbnN0IF9pRiA9IFwiaW1wb3J0RmlsdGVyXCI7XG5jb25zdCBfaUkgPSBcImltcG9ydElkXCI7XG5jb25zdCBfaUxBID0gXCJpbmNsdWRlTGlua2VkQWNjb3VudHNcIjtcbmNvbnN0IF9pTiA9IFwiaW50ZWdyYXRpb25OYW1lXCI7XG5jb25zdCBfaU5QID0gXCJpbnRlZ3JhdGlvbk5hbWVQcmVmaXhcIjtcbmNvbnN0IF9pUCA9IFwiaW5kZXhQb2xpY2llc1wiO1xuY29uc3QgX2lQTFMgPSBcImlzUGF0dGVybkxldmVsU3VwcHJlc3Npb25cIjtcbmNvbnN0IF9pUG4gPSBcImluaGVyaXRlZFByb3BlcnRpZXNcIjtcbmNvbnN0IF9pUG5kID0gXCJpbmRleFBvbGljeVwiO1xuY29uc3QgX2lSQSA9IFwiaW1wb3J0Um9sZUFyblwiO1xuY29uc3QgX2lTID0gXCJpbXBvcnRTdGF0aXN0aWNzXCI7XG5jb25zdCBfaVNBID0gXCJpbXBvcnRTb3VyY2VBcm5cIjtcbmNvbnN0IF9pU20gPSBcImltcG9ydFN0YXR1c1wiO1xuY29uc3QgX2lTbiA9IFwiaW50ZWdyYXRpb25TdGF0dXNcIjtcbmNvbnN0IF9pU250ID0gXCJpbnRlZ3JhdGlvblN1bW1hcmllc1wiO1xuY29uc3QgX2lUID0gXCJpbmdlc3Rpb25UaW1lXCI7XG5jb25zdCBfaVROID0gXCJpbmZlcnJlZFRva2VuTmFtZVwiO1xuY29uc3QgX2lUbiA9IFwiaW50ZWdyYXRpb25UeXBlXCI7XG5jb25zdCBfaWQgPSBcImlkXCI7XG5jb25zdCBfaW0gPSBcImltcG9ydHNcIjtcbmNvbnN0IF9pbiA9IFwiaW50ZXJsZWF2ZWRcIjtcbmNvbnN0IF9rID0gXCJrZXlcIjtcbmNvbnN0IF9rQSA9IFwia2V5QXR0cmlidXRlc1wiO1xuY29uc3QgX2tLQSA9IFwia21zS2V5QXJuXCI7XG5jb25zdCBfa0tJID0gXCJrbXNLZXlJZFwiO1xuY29uc3QgX2tQID0gXCJrZXlQcmVmaXhcIjtcbmNvbnN0IF9rVkQgPSBcImtleVZhbHVlRGVsaW1pdGVyXCI7XG5jb25zdCBfbCA9IFwibG9jYWxlXCI7XG5jb25zdCBfbENTID0gXCJsb3dlckNhc2VTdHJpbmdcIjtcbmNvbnN0IF9sRSA9IFwibG9nRXZlbnRzXCI7XG5jb25zdCBfbEVGUCA9IFwibG9nRXZlbnRGaWx0ZXJQYXR0ZXJuXCI7XG5jb25zdCBfbEVNID0gXCJsb2dFdmVudE1lc3NhZ2VzXCI7XG5jb25zdCBfbEVTID0gXCJsYXN0RXhlY3V0aW9uU3RhdHVzXCI7XG5jb25zdCBfbEVUID0gXCJsYXN0RXZlbnRUaW1lXCI7XG5jb25zdCBfbEVUYSA9IFwibGFzdEV2ZW50VGltZXN0YW1wXCI7XG5jb25zdCBfbEYgPSBcImxvZ0ZpZWxkc1wiO1xuY29uc3QgX2xGTiA9IFwibG9nRmllbGROYW1lXCI7XG5jb25zdCBfbEZUID0gXCJsb2dGaWVsZFR5cGVcIjtcbmNvbnN0IF9sRyA9IFwibG9nR3JvdXBzXCI7XG5jb25zdCBfbEdBID0gXCJsb2dHcm91cEFyblwiO1xuY29uc3QgX2xHQUwgPSBcImxvZ0dyb3VwQXJuTGlzdFwiO1xuY29uc3QgX2xHQyA9IFwibG9nR3JvdXBDb3VudFwiO1xuY29uc3QgX2xHQ28gPSBcImxvZ0dyb3VwQ2xhc3NcIjtcbmNvbnN0IF9sR0YgPSBcImxvZ0dyb3VwRmllbGRzXCI7XG5jb25zdCBfbEdJID0gXCJsb2dHcm91cElkZW50aWZpZXJzXCI7XG5jb25zdCBfbEdJbyA9IFwibG9nR3JvdXBJZGVudGlmaWVyXCI7XG5jb25zdCBfbEdOID0gXCJsb2dHcm91cE5hbWVcIjtcbmNvbnN0IF9sR05QID0gXCJsb2dHcm91cE5hbWVQcmVmaXhcIjtcbmNvbnN0IF9sR05QbyA9IFwibG9nR3JvdXBOYW1lUGF0dGVyblwiO1xuY29uc3QgX2xHTm8gPSBcImxvZ0dyb3VwTmFtZXNcIjtcbmNvbnN0IF9sR1MgPSBcImxvZ0dyb3Vwc1NjYW5uZWRcIjtcbmNvbnN0IF9sSVQgPSBcImxhc3RJbmdlc3Rpb25UaW1lXCI7XG5jb25zdCBfbE0gPSBcImxhc3RNb2RpZmllZFwiO1xuY29uc3QgX2xNVCA9IFwibGFzdE1vZGlmaWVkVGltZVwiO1xuY29uc3QgX2xNVFMgPSBcImxhc3RNb2RpZmllZFRpbWVTdGFtcFwiO1xuY29uc3QgX2xPUCA9IFwibG9nT2JqZWN0UG9pbnRlclwiO1xuY29uc3QgX2xQID0gXCJsaWZlY3ljbGVQb2xpY3lcIjtcbmNvbnN0IF9sUiA9IFwibG9nUmVjb3JkXCI7XG5jb25zdCBfbFJQID0gXCJsb2dSZWNvcmRQb2ludGVyXCI7XG5jb25zdCBfbFMgPSBcImxhc3RTZWVuXCI7XG5jb25zdCBfbFNOID0gXCJsb2dTdHJlYW1OYW1lXCI7XG5jb25zdCBfbFNOUCA9IFwibG9nU3RyZWFtTmFtZVByZWZpeFwiO1xuY29uc3QgX2xTTlBvID0gXCJsb2dTdHJlYW1OYW1lUHJlZml4ZXNcIjtcbmNvbnN0IF9sU05vID0gXCJsb2dTdHJlYW1OYW1lc1wiO1xuY29uc3QgX2xTVCA9IFwibGFzdFNjYW5UaW1lXCI7XG5jb25zdCBfbFNvID0gXCJsb2dTYW1wbGVzXCI7XG5jb25zdCBfbFNvZyA9IFwibG9nU3RyZWFtc1wiO1xuY29uc3QgX2xUID0gXCJsb2dUeXBlXCI7XG5jb25zdCBfbFRNID0gXCJsaXN0VG9NYXBcIjtcbmNvbnN0IF9sVFQgPSBcImxhc3RUcmlnZ2VyZWRUaW1lXCI7XG5jb25zdCBfbFRvID0gXCJsb2dUeXBlc1wiO1xuY29uc3QgX2xVVCA9IFwibGFzdFVwZGF0ZWRUaW1lXCI7XG5jb25zdCBfbFVUYSA9IFwibGFzdFVwZGF0ZVRpbWVcIjtcbmNvbnN0IF9saSA9IFwibGltaXRcIjtcbmNvbnN0IF9sbyA9IFwibG9jYXRpb25cIjtcbmNvbnN0IF9tID0gXCJtZXNzYWdlXCI7XG5jb25zdCBfbUYgPSBcIm1ldHJpY0ZpbHRlcnNcIjtcbmNvbnN0IF9tRkMgPSBcIm1ldHJpY0ZpbHRlckNvdW50XCI7XG5jb25zdCBfbUsgPSBcIm1vdmVLZXlzXCI7XG5jb25zdCBfbU4gPSBcIm1ldHJpY05hbWVcIjtcbmNvbnN0IF9tTmUgPSBcIm1ldHJpY05hbWVzcGFjZVwiO1xuY29uc3QgX21QID0gXCJtYXRjaFBhdHRlcm5zXCI7XG5jb25zdCBfbVIgPSBcIm1heFJlc3VsdHNcIjtcbmNvbnN0IF9tVCA9IFwibWV0cmljVHJhbnNmb3JtYXRpb25zXCI7XG5jb25zdCBfbVYgPSBcIm1ldHJpY1ZhbHVlXCI7XG5jb25zdCBfbVZhID0gXCJtYXBwaW5nVmVyc2lvblwiO1xuY29uc3QgX21hID0gXCJtYXRjaFwiO1xuY29uc3QgX21hbiA9IFwibWFuZGF0b3J5XCI7XG5jb25zdCBfbWF0ID0gXCJtYXRjaGVzXCI7XG5jb25zdCBfbiA9IFwibmFtZVwiO1xuY29uc3QgX25CVCA9IFwibmV4dEJhY2t3YXJkVG9rZW5cIjtcbmNvbnN0IF9uRlQgPSBcIm5leHRGb3J3YXJkVG9rZW5cIjtcbmNvbnN0IF9uTVYgPSBcIm5vbk1hdGNoVmFsdWVcIjtcbmNvbnN0IF9uUCA9IFwibmV0d29ya1BvbGljeVwiO1xuY29uc3QgX25TVCA9IFwibmV4dFNlcXVlbmNlVG9rZW5cIjtcbmNvbnN0IF9uVCA9IFwibmV4dFRva2VuXCI7XG5jb25zdCBfb0IgPSBcIm9yZGVyQnlcIjtcbmNvbnN0IF9vRiA9IFwib3V0cHV0Rm9ybWF0XCI7XG5jb25zdCBfb0lFID0gXCJvdmVyd3JpdGVJZkV4aXN0c1wiO1xuY29uc3QgX29TSUQgPSBcIm9wZW5TZWFyY2hJbnRlZ3JhdGlvbkRldGFpbHNcIjtcbmNvbnN0IF9vU1JDID0gXCJvcGVuU2VhcmNoUmVzb3VyY2VDb25maWdcIjtcbmNvbnN0IF9vViA9IFwib2NzZlZlcnNpb25cIjtcbmNvbnN0IF9wID0gXCJwcmlvcml0eVwiO1xuY29uc3QgX3BDID0gXCJwYXJzZUNsb3VkZnJvbnRcIjtcbmNvbnN0IF9wRCA9IFwicG9saWN5RG9jdW1lbnRcIjtcbmNvbnN0IF9wSSA9IFwicGF0dGVybklkXCI7XG5jb25zdCBfcElyID0gXCJwcm9jZXNzZWRJZGVudGlmaWVyXCI7XG5jb25zdCBfcEpTT04gPSBcInBhcnNlSlNPTlwiO1xuY29uc3QgX3BLViA9IFwicGFyc2VLZXlWYWx1ZVwiO1xuY29uc3QgX3BOID0gXCJwb2xpY3lOYW1lXCI7XG5jb25zdCBfcFAgPSBcInBhcnNlUG9zdGdyZXNcIjtcbmNvbnN0IF9wUiA9IFwicGF0dGVyblJlZ2V4XCI7XG5jb25zdCBfcFJhID0gXCJwYXJzZVJvdXRlNTNcIjtcbmNvbnN0IF9wUyA9IFwicGF0dGVyblN0cmluZ1wiO1xuY29uc3QgX3BTbyA9IFwicG9saWN5U2NvcGVcIjtcbmNvbnN0IF9wVCA9IFwicG9saWN5VHlwZVwiO1xuY29uc3QgX3BUT0NTRiA9IFwicGFyc2VUb09DU0ZcIjtcbmNvbnN0IF9wVGEgPSBcInBhdHRlcm5Ub2tlbnNcIjtcbmNvbnN0IF9wVlBDID0gXCJwYXJzZVZQQ1wiO1xuY29uc3QgX3BXQUYgPSBcInBhcnNlV0FGXCI7XG5jb25zdCBfcGUgPSBcInBlcmNlbnRcIjtcbmNvbnN0IF9wbyA9IFwicG9saWN5XCI7XG5jb25zdCBfcSA9IFwicXVlcmllc1wiO1xuY29uc3QgX3FDID0gXCJxdW90ZUNoYXJhY3RlclwiO1xuY29uc3QgX3FDRSA9IFwicXVlcnlDb21waWxlRXJyb3JcIjtcbmNvbnN0IF9xRCA9IFwicXVlcnlEZWZpbml0aW9uc1wiO1xuY29uc3QgX3FESSA9IFwicXVlcnlEZWZpbml0aW9uSWRcIjtcbmNvbnN0IF9xRE5QID0gXCJxdWVyeURlZmluaXRpb25OYW1lUHJlZml4XCI7XG5jb25zdCBfcUkgPSBcInF1ZXJ5SWRcIjtcbmNvbnN0IF9xTCA9IFwicXVlcnlMYW5ndWFnZVwiO1xuY29uc3QgX3FTID0gXCJxdWVyeVN0cmluZ1wiO1xuY29uc3QgX3IgPSBcInJlc3VsdHNcIjtcbmNvbnN0IF9yQSA9IFwicmVzb3VyY2VBcm5cIjtcbmNvbnN0IF9yQWUgPSBcInJlc291cmNlQXJuc1wiO1xuY29uc3QgX3JBbyA9IFwicm9sZUFyblwiO1xuY29uc3QgX3JDID0gXCJyZXNvdXJjZUNvbmZpZ1wiO1xuY29uc3QgX3JEID0gXCJyZXRlbnRpb25EYXlzXCI7XG5jb25zdCBfckVJID0gXCJyZWplY3RlZEVudGl0eUluZm9cIjtcbmNvbnN0IF9yRiA9IFwicmVjb3JkRmllbGRzXCI7XG5jb25zdCBfckkgPSBcInJlc291cmNlSWRlbnRpZmllclwiO1xuY29uc3QgX3JJRCA9IFwicmV0ZW50aW9uSW5EYXlzXCI7XG5jb25zdCBfckllID0gXCJyZXF1ZXN0SWRcIjtcbmNvbnN0IF9ySWV2ID0gXCJyZXZpc2lvbklkXCI7XG5jb25zdCBfcksgPSBcInJlbmFtZUtleXNcIjtcbmNvbnN0IF9yTEVJID0gXCJyZWplY3RlZExvZ0V2ZW50c0luZm9cIjtcbmNvbnN0IF9yTSA9IFwicmVjb3Jkc01hdGNoZWRcIjtcbmNvbnN0IF9yTiA9IFwicmVzb3VyY2VOYW1lXCI7XG5jb25zdCBfclAgPSBcInJlc291cmNlUG9saWNpZXNcIjtcbmNvbnN0IF9yUGUgPSBcInJlc291cmNlUG9saWN5XCI7XG5jb25zdCBfclMgPSBcInJlY29yZHNTY2FubmVkXCI7XG5jb25zdCBfclNlID0gXCJyZXNwb25zZVN0cmVhbVwiO1xuY29uc3QgX3JUID0gXCJyZXNvdXJjZVR5cGVcIjtcbmNvbnN0IF9yVGUgPSBcInJlc291cmNlVHlwZXNcIjtcbmNvbnN0IF9yVGVuID0gXCJyZW5hbWVUb1wiO1xuY29uc3QgX3MgPSBcInNjb3BlXCI7XG5jb25zdCBfc0IgPSBcInN0b3JlZEJ5dGVzXCI7XG5jb25zdCBfc0MgPSBcInNlbGVjdGlvbkNyaXRlcmlhXCI7XG5jb25zdCBfc0NPID0gXCJzdGFydENoYXJPZmZzZXRcIjtcbmNvbnN0IF9zQ2UgPSBcInNlYXJjaGVkQ29tcGxldGVseVwiO1xuY29uc3QgX3NDbyA9IFwiczNDb25maWd1cmF0aW9uXCI7XG5jb25zdCBfc0N0ID0gXCJzdGF0dXNDb2RlXCI7XG5jb25zdCBfc0QgPSBcInN1cHByZXNzZWREYXRlXCI7XG5jb25zdCBfc0RDID0gXCJzM0RlbGl2ZXJ5Q29uZmlndXJhdGlvblwiO1xuY29uc3QgX3NFID0gXCJzY2hlZHVsZUV4cHJlc3Npb25cIjtcbmNvbnN0IF9zRVQgPSBcInNjaGVkdWxlRW5kVGltZVwiO1xuY29uc3QgX3NFVHQgPSBcInN0YXJ0RXZlbnRUaW1lXCI7XG5jb25zdCBfc0YgPSBcInN1YnNjcmlwdGlvbkZpbHRlcnNcIjtcbmNvbnN0IF9zRkggPSBcInN0YXJ0RnJvbUhlYWRcIjtcbmNvbnN0IF9zSSA9IFwic2Vzc2lvbklkXCI7XG5jb25zdCBfc0xTID0gXCJzZWFyY2hlZExvZ1N0cmVhbXNcIjtcbmNvbnN0IF9zTSA9IFwic2Vzc2lvbk1ldGFkYXRhXCI7XG5jb25zdCBfc010ID0gXCJzdGF0dXNNZXNzYWdlXCI7XG5jb25zdCBfc1AgPSBcInN1ZmZpeFBhdGhcIjtcbmNvbnN0IF9zUHUgPSBcInN1cHByZXNzaW9uUGVyaW9kXCI7XG5jb25zdCBfc1EgPSBcInNjaGVkdWxlZFF1ZXJpZXNcIjtcbmNvbnN0IF9zUUEgPSBcInNjaGVkdWxlZFF1ZXJ5QXJuXCI7XG5jb25zdCBfc1IgPSBcInNlc3Npb25SZXN1bHRzXCI7XG5jb25zdCBfc1J0ID0gXCJzdGF0dXNSZWFzb25cIjtcbmNvbnN0IF9zUyA9IFwic3VwcHJlc3Npb25TdGF0ZVwiO1xuY29uc3QgX3NTVCA9IFwic2NoZWR1bGVTdGFydFRpbWVcIjtcbmNvbnN0IF9zU2UgPSBcInNlc3Npb25TdGFydFwiO1xuY29uc3QgX3NTcCA9IFwic3BsaXRTdHJpbmdcIjtcbmNvbnN0IF9zU3UgPSBcInN1YnN0aXR1dGVTdHJpbmdcIjtcbmNvbnN0IF9zVCA9IFwic291cmNlVGltZXpvbmVcIjtcbmNvbnN0IF9zVE8gPSBcInN0YXJ0VGltZU9mZnNldFwiO1xuY29uc3QgX3NUZSA9IFwic2VxdWVuY2VUb2tlblwiO1xuY29uc3QgX3NUdCA9IFwic3RhcnRUaW1lXCI7XG5jb25zdCBfc1R1ID0gXCJzdXBwcmVzc2lvblR5cGVcIjtcbmNvbnN0IF9zVSA9IFwic3VwcHJlc3NlZFVudGlsXCI7XG5jb25zdCBfc1VlID0gXCJzZXNzaW9uVXBkYXRlXCI7XG5jb25zdCBfc1V1ID0gXCJzdXBwcmVzc2lvblVuaXRcIjtcbmNvbnN0IF9zYSA9IFwic2FtcGxlZFwiO1xuY29uc3QgX3NlID0gXCJzZXJ2aWNlXCI7XG5jb25zdCBfc2VyID0gXCJzZXJ2ZXJcIjtcbmNvbnN0IF9zbSA9IFwic21pdGh5LnRzLnNkay5zeW50aGV0aWMuY29tLmFtYXpvbmF3cy5jbG91ZHdhdGNobG9nc1wiO1xuY29uc3QgX3NvID0gXCJzb3VyY2VcIjtcbmNvbnN0IF9zb3UgPSBcInNvdXJjZXNcIjtcbmNvbnN0IF9zdCA9IFwic3RhdGVcIjtcbmNvbnN0IF9zdGEgPSBcInN0YXR1c1wiO1xuY29uc3QgX3N0YXQgPSBcInN0YXRpc3RpY3NcIjtcbmNvbnN0IF9zdHIgPSBcInN0cmVhbWluZ1wiO1xuY29uc3QgX3N1ID0gXCJzdXBwcmVzc2VkXCI7XG5jb25zdCBfc3VjID0gXCJzdWNjZXNzXCI7XG5jb25zdCBfdCA9IFwidGFyZ2V0XCI7XG5jb25zdCBfdEEgPSBcInRhcmdldEFyblwiO1xuY29uc3QgX3RDID0gXCJ0cmFuc2Zvcm1lckNvbmZpZ1wiO1xuY29uc3QgX3RDeSA9IFwidHlwZUNvbnZlcnRlclwiO1xuY29uc3QgX3RFTSA9IFwidHJhbnNmb3JtZWRFdmVudE1lc3NhZ2VcIjtcbmNvbnN0IF90RiA9IFwidGFyZ2V0Rm9ybWF0XCI7XG5jb25zdCBfdEggPSBcInRyaWdnZXJIaXN0b3J5XCI7XG5jb25zdCBfdEkgPSBcInRhc2tJZFwiO1xuY29uc3QgX3RLID0gXCJ0YWdLZXlzXCI7XG5jb25zdCBfdEwgPSBcInRyYW5zZm9ybWVkTG9nc1wiO1xuY29uc3QgX3ROID0gXCJ0YXNrTmFtZVwiO1xuY29uc3QgX3ROTEVTSSA9IFwidG9vTmV3TG9nRXZlbnRTdGFydEluZGV4XCI7XG5jb25zdCBfdE9MRUVJID0gXCJ0b29PbGRMb2dFdmVudEVuZEluZGV4XCI7XG5jb25zdCBfdFMgPSBcInRva2VuU3RyaW5nXCI7XG5jb25zdCBfdFNyID0gXCJ0cmltU3RyaW5nXCI7XG5jb25zdCBfdFQgPSBcInRhcmdldFRpbWV6b25lXCI7XG5jb25zdCBfdFRyID0gXCJ0cmlnZ2VyZWRUaW1lc3RhbXBcIjtcbmNvbnN0IF90YSA9IFwidGFnc1wiO1xuY29uc3QgX3RpID0gXCJ0aW1lem9uZVwiO1xuY29uc3QgX3RpbSA9IFwidGltZXN0YW1wXCI7XG5jb25zdCBfdGltZSA9IFwidGltZVwiO1xuY29uc3QgX3RvID0gXCJ0b1wiO1xuY29uc3QgX3R5ID0gXCJ0eXBlXCI7XG5jb25zdCBfdSA9IFwidW5tYXNrXCI7XG5jb25zdCBfdUNTID0gXCJ1cHBlckNhc2VTdHJpbmdcIjtcbmNvbnN0IF91U1QgPSBcInVwbG9hZFNlcXVlbmNlVG9rZW5cIjtcbmNvbnN0IF91biA9IFwidW5pdFwiO1xuY29uc3QgX3YgPSBcInZhbHVlXCI7XG5jb25zdCBfdksgPSBcInZhbHVlS2V5XCI7XG5jb25zdCBfdyA9IFwid29ya3NwYWNlXCI7XG5jb25zdCBfd0kgPSBcIndvcmtzcGFjZUlkXCI7XG5jb25zdCBfd0sgPSBcIndpdGhLZXlzXCI7XG5jb25zdCBuMCA9IFwiY29tLmFtYXpvbmF3cy5jbG91ZHdhdGNobG9nc1wiO1xudmFyIEFjY2Vzc0RlbmllZEV4Y2VwdGlvbiA9IFstMywgbjAsIF9BREUsIHsgW19lXTogX2MgfSwgW19tXSwgWzBdXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKEFjY2Vzc0RlbmllZEV4Y2VwdGlvbiwgQWNjZXNzRGVuaWVkRXhjZXB0aW9uJDEpO1xudmFyIEFjY291bnRQb2xpY3kgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfQVAsXG4gICAgMCxcbiAgICBbX3BOLCBfcEQsIF9sVVQsIF9wVCwgX3MsIF9zQywgX2FJXSxcbiAgICBbMCwgMCwgMSwgMCwgMCwgMCwgMF0sXG5dO1xudmFyIEFkZEtleUVudHJ5ID0gWzMsIG4wLCBfQUtFLCAwLCBbX2ssIF92LCBfb0lFXSwgWzAsIDAsIDJdXTtcbnZhciBBZGRLZXlzID0gWzMsIG4wLCBfQUssIDAsIFtfZW5dLCBbKCkgPT4gQWRkS2V5RW50cmllc11dO1xudmFyIEFnZ3JlZ2F0ZUxvZ0dyb3VwU3VtbWFyeSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9BTEdTLFxuICAgIDAsXG4gICAgW19sR0MsIF9nSV0sXG4gICAgWzEsICgpID0+IEdyb3VwaW5nSWRlbnRpZmllcnNdLFxuXTtcbnZhciBBbm9tYWx5ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0EsXG4gICAgMCxcbiAgICBbX2FJbiwgX3BJLCBfYURBLCBfcFMsIF9wUiwgX3AsIF9mUywgX2xTLCBfZCwgX2EsIF9zdCwgX2gsIF9sU28sIF9wVGEsIF9sR0FMLCBfc3UsIF9zRCwgX3NVLCBfaVBMU10sXG4gICAgWzAsIDAsIDAsIDAsIDAsIDAsIDEsIDEsIDAsIDIsIDAsIDEyOCB8IDEsICgpID0+IExvZ1NhbXBsZXMsICgpID0+IFBhdHRlcm5Ub2tlbnMsIDY0IHwgMCwgMiwgMSwgMSwgMl0sXG5dO1xudmFyIEFub21hbHlEZXRlY3RvciA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9BRCxcbiAgICAwLFxuICAgIFtfYURBLCBfZE4sIF9sR0FMLCBfZUYsIF9mUCwgX2FEUywgX2tLSSwgX2NUUywgX2xNVFMsIF9hVlRdLFxuICAgIFswLCAwLCA2NCB8IDAsIDAsIDAsIDAsIDAsIDEsIDEsIDFdLFxuXTtcbnZhciBBc3NvY2lhdGVLbXNLZXlSZXF1ZXN0ID0gWzMsIG4wLCBfQUtLUiwgMCwgW19sR04sIF9rS0ksIF9ySV0sIFswLCAwLCAwXV07XG52YXIgQXNzb2NpYXRlU291cmNlVG9TM1RhYmxlSW50ZWdyYXRpb25SZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0FTVFNUSVIsXG4gICAgMCxcbiAgICBbX2lBLCBfZFNdLFxuICAgIFswLCAoKSA9PiBEYXRhU291cmNlXSxcbl07XG52YXIgQXNzb2NpYXRlU291cmNlVG9TM1RhYmxlSW50ZWdyYXRpb25SZXNwb25zZSA9IFszLCBuMCwgX0FTVFNUSVJzLCAwLCBbX2ldLCBbMF1dO1xudmFyIENhbmNlbEV4cG9ydFRhc2tSZXF1ZXN0ID0gWzMsIG4wLCBfQ0VUUiwgMCwgW190SV0sIFswXV07XG52YXIgQ2FuY2VsSW1wb3J0VGFza1JlcXVlc3QgPSBbMywgbjAsIF9DSVRSLCAwLCBbX2lJXSwgWzBdXTtcbnZhciBDYW5jZWxJbXBvcnRUYXNrUmVzcG9uc2UgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfQ0lUUmEsXG4gICAgMCxcbiAgICBbX2lJLCBfaVMsIF9pU20sIF9jVCwgX2xVVF0sXG4gICAgWzAsICgpID0+IEltcG9ydFN0YXRpc3RpY3MsIDAsIDEsIDFdLFxuXTtcbnZhciBDb25maWd1cmF0aW9uVGVtcGxhdGUgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfQ1QsXG4gICAgMCxcbiAgICBbX3NlLCBfbFQsIF9yVCwgX2REVCwgX2REQ1YsIF9hRiwgX2FPRiwgX2FBRkFWTERGUiwgX2FGRCwgX2FTUEZdLFxuICAgIFswLCAwLCAwLCAwLCAoKSA9PiBDb25maWd1cmF0aW9uVGVtcGxhdGVEZWxpdmVyeUNvbmZpZ1ZhbHVlcywgKCkgPT4gQWxsb3dlZEZpZWxkcywgNjQgfCAwLCAwLCA2NCB8IDAsIDY0IHwgMF0sXG5dO1xudmFyIENvbmZpZ3VyYXRpb25UZW1wbGF0ZURlbGl2ZXJ5Q29uZmlnVmFsdWVzID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0NURENWLFxuICAgIDAsXG4gICAgW19yRiwgX2ZELCBfc0RDXSxcbiAgICBbNjQgfCAwLCAwLCAoKSA9PiBTM0RlbGl2ZXJ5Q29uZmlndXJhdGlvbl0sXG5dO1xudmFyIENvbmZsaWN0RXhjZXB0aW9uID0gWy0zLCBuMCwgX0NFLCB7IFtfZV06IF9jIH0sIFtfbV0sIFswXV07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihDb25mbGljdEV4Y2VwdGlvbiwgQ29uZmxpY3RFeGNlcHRpb24kMSk7XG52YXIgQ29weVZhbHVlID0gWzMsIG4wLCBfQ1YsIDAsIFtfZW5dLCBbKCkgPT4gQ29weVZhbHVlRW50cmllc11dO1xudmFyIENvcHlWYWx1ZUVudHJ5ID0gWzMsIG4wLCBfQ1ZFLCAwLCBbX3NvLCBfdCwgX29JRV0sIFswLCAwLCAyXV07XG52YXIgQ3JlYXRlRGVsaXZlcnlSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0NEUixcbiAgICAwLFxuICAgIFtfZFNOLCBfZERBLCBfckYsIF9mRCwgX3NEQywgX3RhXSxcbiAgICBbMCwgMCwgNjQgfCAwLCAwLCAoKSA9PiBTM0RlbGl2ZXJ5Q29uZmlndXJhdGlvbiwgMTI4IHwgMF0sXG5dO1xudmFyIENyZWF0ZURlbGl2ZXJ5UmVzcG9uc2UgPSBbMywgbjAsIF9DRFJyLCAwLCBbX2RlXSwgWygpID0+IERlbGl2ZXJ5XV07XG52YXIgQ3JlYXRlRXhwb3J0VGFza1JlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfQ0VUUnIsXG4gICAgMCxcbiAgICBbX3ROLCBfbEdOLCBfbFNOUCwgX2YsIF90bywgX2RlcywgX2RQXSxcbiAgICBbMCwgMCwgMCwgMSwgMSwgMCwgMF0sXG5dO1xudmFyIENyZWF0ZUV4cG9ydFRhc2tSZXNwb25zZSA9IFszLCBuMCwgX0NFVFJyZSwgMCwgW190SV0sIFswXV07XG52YXIgQ3JlYXRlSW1wb3J0VGFza1JlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfQ0lUUnIsXG4gICAgMCxcbiAgICBbX2lTQSwgX2lSQSwgX2lGXSxcbiAgICBbMCwgMCwgKCkgPT4gSW1wb3J0RmlsdGVyXSxcbl07XG52YXIgQ3JlYXRlSW1wb3J0VGFza1Jlc3BvbnNlID0gWzMsIG4wLCBfQ0lUUnJlLCAwLCBbX2lJLCBfaURBLCBfY1RdLCBbMCwgMCwgMV1dO1xudmFyIENyZWF0ZUxvZ0Fub21hbHlEZXRlY3RvclJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfQ0xBRFIsXG4gICAgMCxcbiAgICBbX2xHQUwsIF9kTiwgX2VGLCBfZlAsIF9rS0ksIF9hVlQsIF90YV0sXG4gICAgWzY0IHwgMCwgMCwgMCwgMCwgMCwgMSwgMTI4IHwgMF0sXG5dO1xudmFyIENyZWF0ZUxvZ0Fub21hbHlEZXRlY3RvclJlc3BvbnNlID0gWzMsIG4wLCBfQ0xBRFJyLCAwLCBbX2FEQV0sIFswXV07XG52YXIgQ3JlYXRlTG9nR3JvdXBSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0NMR1IsXG4gICAgMCxcbiAgICBbX2xHTiwgX2tLSSwgX3RhLCBfbEdDbywgX2RQRV0sXG4gICAgWzAsIDAsIDEyOCB8IDAsIDAsIDJdLFxuXTtcbnZhciBDcmVhdGVMb2dTdHJlYW1SZXF1ZXN0ID0gWzMsIG4wLCBfQ0xTUiwgMCwgW19sR04sIF9sU05dLCBbMCwgMF1dO1xudmFyIENyZWF0ZVNjaGVkdWxlZFF1ZXJ5UmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9DU1FSLFxuICAgIDAsXG4gICAgW19uLCBfZCwgX3FMLCBfcVMsIF9sR0ksIF9zRSwgX3RpLCBfc1RPLCBfZEMsIF9zU1QsIF9zRVQsIF9lUkEsIF9zdCwgX3RhXSxcbiAgICBbMCwgMCwgMCwgMCwgNjQgfCAwLCAwLCAwLCAxLCAoKSA9PiBEZXN0aW5hdGlvbkNvbmZpZ3VyYXRpb24sIDEsIDEsIDAsIDAsIDEyOCB8IDBdLFxuXTtcbnZhciBDcmVhdGVTY2hlZHVsZWRRdWVyeVJlc3BvbnNlID0gWzMsIG4wLCBfQ1NRUnIsIDAsIFtfc1FBLCBfc3RdLCBbMCwgMF1dO1xudmFyIENTViA9IFszLCBuMCwgX0NTViwgMCwgW19xQywgX2RlbCwgX2NvLCBfc29dLCBbMCwgMCwgNjQgfCAwLCAwXV07XG52YXIgRGF0YUFscmVhZHlBY2NlcHRlZEV4Y2VwdGlvbiA9IFstMywgbjAsIF9EQUFFLCB7IFtfZV06IF9jIH0sIFtfZVNULCBfbV0sIFswLCAwXV07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihEYXRhQWxyZWFkeUFjY2VwdGVkRXhjZXB0aW9uLCBEYXRhQWxyZWFkeUFjY2VwdGVkRXhjZXB0aW9uJDEpO1xudmFyIERhdGFTb3VyY2UgPSBbMywgbjAsIF9EUywgMCwgW19uLCBfdHldLCBbMCwgMF1dO1xudmFyIERhdGFTb3VyY2VGaWx0ZXIgPSBbMywgbjAsIF9EU0YsIDAsIFtfbiwgX3R5XSwgWzAsIDBdXTtcbnZhciBEYXRlVGltZUNvbnZlcnRlciA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9EVEMsXG4gICAgMCxcbiAgICBbX3NvLCBfdCwgX3RGLCBfbVAsIF9zVCwgX3RULCBfbF0sXG4gICAgWzAsIDAsIDAsIDY0IHwgMCwgMCwgMCwgMF0sXG5dO1xudmFyIERlbGV0ZUFjY291bnRQb2xpY3lSZXF1ZXN0ID0gWzMsIG4wLCBfREFQUiwgMCwgW19wTiwgX3BUXSwgWzAsIDBdXTtcbnZhciBEZWxldGVEYXRhUHJvdGVjdGlvblBvbGljeVJlcXVlc3QgPSBbMywgbjAsIF9ERFBQUiwgMCwgW19sR0lvXSwgWzBdXTtcbnZhciBEZWxldGVEZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5UmVxdWVzdCA9IFszLCBuMCwgX0RERFBSLCAwLCBbX2RETl0sIFswXV07XG52YXIgRGVsZXRlRGVsaXZlcnlEZXN0aW5hdGlvblJlcXVlc3QgPSBbMywgbjAsIF9ERERSLCAwLCBbX25dLCBbMF1dO1xudmFyIERlbGV0ZURlbGl2ZXJ5UmVxdWVzdCA9IFszLCBuMCwgX0REUiwgMCwgW19pZF0sIFswXV07XG52YXIgRGVsZXRlRGVsaXZlcnlTb3VyY2VSZXF1ZXN0ID0gWzMsIG4wLCBfRERTUiwgMCwgW19uXSwgWzBdXTtcbnZhciBEZWxldGVEZXN0aW5hdGlvblJlcXVlc3QgPSBbMywgbjAsIF9ERFJlLCAwLCBbX2ROZV0sIFswXV07XG52YXIgRGVsZXRlSW5kZXhQb2xpY3lSZXF1ZXN0ID0gWzMsIG4wLCBfRElQUiwgMCwgW19sR0lvXSwgWzBdXTtcbnZhciBEZWxldGVJbmRleFBvbGljeVJlc3BvbnNlID0gWzMsIG4wLCBfRElQUmUsIDAsIFtdLCBbXV07XG52YXIgRGVsZXRlSW50ZWdyYXRpb25SZXF1ZXN0ID0gWzMsIG4wLCBfRElSLCAwLCBbX2lOLCBfZm9dLCBbMCwgMl1dO1xudmFyIERlbGV0ZUludGVncmF0aW9uUmVzcG9uc2UgPSBbMywgbjAsIF9ESVJlLCAwLCBbXSwgW11dO1xudmFyIERlbGV0ZUtleXMgPSBbMywgbjAsIF9ESywgMCwgW193S10sIFs2NCB8IDBdXTtcbnZhciBEZWxldGVMb2dBbm9tYWx5RGV0ZWN0b3JSZXF1ZXN0ID0gWzMsIG4wLCBfRExBRFIsIDAsIFtfYURBXSwgWzBdXTtcbnZhciBEZWxldGVMb2dHcm91cFJlcXVlc3QgPSBbMywgbjAsIF9ETEdSLCAwLCBbX2xHTl0sIFswXV07XG52YXIgRGVsZXRlTG9nU3RyZWFtUmVxdWVzdCA9IFszLCBuMCwgX0RMU1IsIDAsIFtfbEdOLCBfbFNOXSwgWzAsIDBdXTtcbnZhciBEZWxldGVNZXRyaWNGaWx0ZXJSZXF1ZXN0ID0gWzMsIG4wLCBfRE1GUiwgMCwgW19sR04sIF9mTl0sIFswLCAwXV07XG52YXIgRGVsZXRlUXVlcnlEZWZpbml0aW9uUmVxdWVzdCA9IFszLCBuMCwgX0RRRFIsIDAsIFtfcURJXSwgWzBdXTtcbnZhciBEZWxldGVRdWVyeURlZmluaXRpb25SZXNwb25zZSA9IFszLCBuMCwgX0RRRFJlLCAwLCBbX3N1Y10sIFsyXV07XG52YXIgRGVsZXRlUmVzb3VyY2VQb2xpY3lSZXF1ZXN0ID0gWzMsIG4wLCBfRFJQUiwgMCwgW19wTiwgX3JBLCBfZVJJXSwgWzAsIDAsIDBdXTtcbnZhciBEZWxldGVSZXRlbnRpb25Qb2xpY3lSZXF1ZXN0ID0gWzMsIG4wLCBfRFJQUmUsIDAsIFtfbEdOXSwgWzBdXTtcbnZhciBEZWxldGVTY2hlZHVsZWRRdWVyeVJlcXVlc3QgPSBbMywgbjAsIF9EU1FSLCAwLCBbX2ldLCBbMF1dO1xudmFyIERlbGV0ZVNjaGVkdWxlZFF1ZXJ5UmVzcG9uc2UgPSBbMywgbjAsIF9EU1FSZSwgMCwgW10sIFtdXTtcbnZhciBEZWxldGVTdWJzY3JpcHRpb25GaWx0ZXJSZXF1ZXN0ID0gWzMsIG4wLCBfRFNGUiwgMCwgW19sR04sIF9mTl0sIFswLCAwXV07XG52YXIgRGVsZXRlVHJhbnNmb3JtZXJSZXF1ZXN0ID0gWzMsIG4wLCBfRFRSLCAwLCBbX2xHSW9dLCBbMF1dO1xudmFyIERlbGl2ZXJ5ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0QsXG4gICAgMCxcbiAgICBbX2lkLCBfYXIsIF9kU04sIF9kREEsIF9kRFQsIF9yRiwgX2ZELCBfc0RDLCBfdGFdLFxuICAgIFswLCAwLCAwLCAwLCAwLCA2NCB8IDAsIDAsICgpID0+IFMzRGVsaXZlcnlDb25maWd1cmF0aW9uLCAxMjggfCAwXSxcbl07XG52YXIgRGVsaXZlcnlEZXN0aW5hdGlvbiA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9ERCxcbiAgICAwLFxuICAgIFtfbiwgX2FyLCBfZERULCBfb0YsIF9kREMsIF90YV0sXG4gICAgWzAsIDAsIDAsIDAsICgpID0+IERlbGl2ZXJ5RGVzdGluYXRpb25Db25maWd1cmF0aW9uLCAxMjggfCAwXSxcbl07XG52YXIgRGVsaXZlcnlEZXN0aW5hdGlvbkNvbmZpZ3VyYXRpb24gPSBbMywgbjAsIF9EREMsIDAsIFtfZFJBXSwgWzBdXTtcbnZhciBEZWxpdmVyeVNvdXJjZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9EU2UsXG4gICAgMCxcbiAgICBbX24sIF9hciwgX3JBZSwgX3NlLCBfbFQsIF90YV0sXG4gICAgWzAsIDAsIDY0IHwgMCwgMCwgMCwgMTI4IHwgMF0sXG5dO1xudmFyIERlc2NyaWJlQWNjb3VudFBvbGljaWVzUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9EQVBSZSxcbiAgICAwLFxuICAgIFtfcFQsIF9wTiwgX2FJYywgX25UXSxcbiAgICBbMCwgMCwgNjQgfCAwLCAwXSxcbl07XG52YXIgRGVzY3JpYmVBY2NvdW50UG9saWNpZXNSZXNwb25zZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9EQVBSZXMsXG4gICAgMCxcbiAgICBbX2FQLCBfblRdLFxuICAgIFsoKSA9PiBBY2NvdW50UG9saWNpZXMsIDBdLFxuXTtcbnZhciBEZXNjcmliZUNvbmZpZ3VyYXRpb25UZW1wbGF0ZXNSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0RDVFIsXG4gICAgMCxcbiAgICBbX3NlLCBfbFRvLCBfclRlLCBfZERUZSwgX25ULCBfbGldLFxuICAgIFswLCA2NCB8IDAsIDY0IHwgMCwgNjQgfCAwLCAwLCAxXSxcbl07XG52YXIgRGVzY3JpYmVDb25maWd1cmF0aW9uVGVtcGxhdGVzUmVzcG9uc2UgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfRENUUmUsXG4gICAgMCxcbiAgICBbX2NUbywgX25UXSxcbiAgICBbKCkgPT4gQ29uZmlndXJhdGlvblRlbXBsYXRlcywgMF0sXG5dO1xudmFyIERlc2NyaWJlRGVsaXZlcmllc1JlcXVlc3QgPSBbMywgbjAsIF9ERFJlcywgMCwgW19uVCwgX2xpXSwgWzAsIDFdXTtcbnZhciBEZXNjcmliZURlbGl2ZXJpZXNSZXNwb25zZSA9IFszLCBuMCwgX0REUmVzYywgMCwgW19kZWxpLCBfblRdLCBbKCkgPT4gRGVsaXZlcmllcywgMF1dO1xudmFyIERlc2NyaWJlRGVsaXZlcnlEZXN0aW5hdGlvbnNSZXF1ZXN0ID0gWzMsIG4wLCBfREREUmUsIDAsIFtfblQsIF9saV0sIFswLCAxXV07XG52YXIgRGVzY3JpYmVEZWxpdmVyeURlc3RpbmF0aW9uc1Jlc3BvbnNlID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0RERFJlcyxcbiAgICAwLFxuICAgIFtfZEQsIF9uVF0sXG4gICAgWygpID0+IERlbGl2ZXJ5RGVzdGluYXRpb25zLCAwXSxcbl07XG52YXIgRGVzY3JpYmVEZWxpdmVyeVNvdXJjZXNSZXF1ZXN0ID0gWzMsIG4wLCBfRERTUmUsIDAsIFtfblQsIF9saV0sIFswLCAxXV07XG52YXIgRGVzY3JpYmVEZWxpdmVyeVNvdXJjZXNSZXNwb25zZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9ERFNSZXMsXG4gICAgMCxcbiAgICBbX2RTZSwgX25UXSxcbiAgICBbKCkgPT4gRGVsaXZlcnlTb3VyY2VzLCAwXSxcbl07XG52YXIgRGVzY3JpYmVEZXN0aW5hdGlvbnNSZXF1ZXN0ID0gWzMsIG4wLCBfRERSZXNjciwgMCwgW19ETlAsIF9uVCwgX2xpXSwgWzAsIDAsIDFdXTtcbnZhciBEZXNjcmliZURlc3RpbmF0aW9uc1Jlc3BvbnNlID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0REUmVzY3JpLFxuICAgIDAsXG4gICAgW19kZXN0LCBfblRdLFxuICAgIFsoKSA9PiBEZXN0aW5hdGlvbnMsIDBdLFxuXTtcbnZhciBEZXNjcmliZUV4cG9ydFRhc2tzUmVxdWVzdCA9IFszLCBuMCwgX0RFVFIsIDAsIFtfdEksIF9zQ3QsIF9uVCwgX2xpXSwgWzAsIDAsIDAsIDFdXTtcbnZhciBEZXNjcmliZUV4cG9ydFRhc2tzUmVzcG9uc2UgPSBbMywgbjAsIF9ERVRSZSwgMCwgW19lVCwgX25UXSwgWygpID0+IEV4cG9ydFRhc2tzLCAwXV07XG52YXIgRGVzY3JpYmVGaWVsZEluZGV4ZXNSZXF1ZXN0ID0gWzMsIG4wLCBfREZJUiwgMCwgW19sR0ksIF9uVF0sIFs2NCB8IDAsIDBdXTtcbnZhciBEZXNjcmliZUZpZWxkSW5kZXhlc1Jlc3BvbnNlID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0RGSVJlLFxuICAgIDAsXG4gICAgW19mSSwgX25UXSxcbiAgICBbKCkgPT4gRmllbGRJbmRleGVzLCAwXSxcbl07XG52YXIgRGVzY3JpYmVJbXBvcnRUYXNrQmF0Y2hlc1JlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfRElUQlIsXG4gICAgMCxcbiAgICBbX2lJLCBfYklTLCBfbGksIF9uVF0sXG4gICAgWzAsIDY0IHwgMCwgMSwgMF0sXG5dO1xudmFyIERlc2NyaWJlSW1wb3J0VGFza0JhdGNoZXNSZXNwb25zZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9ESVRCUmUsXG4gICAgMCxcbiAgICBbX2lTQSwgX2lJLCBfaUIsIF9uVF0sXG4gICAgWzAsIDAsICgpID0+IEltcG9ydEJhdGNoTGlzdCwgMF0sXG5dO1xudmFyIERlc2NyaWJlSW1wb3J0VGFza3NSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0RJVFIsXG4gICAgMCxcbiAgICBbX2lJLCBfaVNtLCBfaVNBLCBfbGksIF9uVF0sXG4gICAgWzAsIDAsIDAsIDEsIDBdLFxuXTtcbnZhciBEZXNjcmliZUltcG9ydFRhc2tzUmVzcG9uc2UgPSBbMywgbjAsIF9ESVRSZSwgMCwgW19pbSwgX25UXSwgWygpID0+IEltcG9ydExpc3QsIDBdXTtcbnZhciBEZXNjcmliZUluZGV4UG9saWNpZXNSZXF1ZXN0ID0gWzMsIG4wLCBfRElQUmVzLCAwLCBbX2xHSSwgX25UXSwgWzY0IHwgMCwgMF1dO1xudmFyIERlc2NyaWJlSW5kZXhQb2xpY2llc1Jlc3BvbnNlID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0RJUFJlc2MsXG4gICAgMCxcbiAgICBbX2lQLCBfblRdLFxuICAgIFsoKSA9PiBJbmRleFBvbGljaWVzLCAwXSxcbl07XG52YXIgRGVzY3JpYmVMb2dHcm91cHNSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0RMR1JlLFxuICAgIDAsXG4gICAgW19hSWMsIF9sR05QLCBfbEdOUG8sIF9uVCwgX2xpLCBfaUxBLCBfbEdDbywgX2xHSV0sXG4gICAgWzY0IHwgMCwgMCwgMCwgMCwgMSwgMiwgMCwgNjQgfCAwXSxcbl07XG52YXIgRGVzY3JpYmVMb2dHcm91cHNSZXNwb25zZSA9IFszLCBuMCwgX0RMR1JlcywgMCwgW19sRywgX25UXSwgWygpID0+IExvZ0dyb3VwcywgMF1dO1xudmFyIERlc2NyaWJlTG9nU3RyZWFtc1JlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfRExTUmUsXG4gICAgMCxcbiAgICBbX2xHTiwgX2xHSW8sIF9sU05QLCBfb0IsIF9kZXNjLCBfblQsIF9saV0sXG4gICAgWzAsIDAsIDAsIDAsIDIsIDAsIDFdLFxuXTtcbnZhciBEZXNjcmliZUxvZ1N0cmVhbXNSZXNwb25zZSA9IFszLCBuMCwgX0RMU1JlcywgMCwgW19sU29nLCBfblRdLCBbKCkgPT4gTG9nU3RyZWFtcywgMF1dO1xudmFyIERlc2NyaWJlTWV0cmljRmlsdGVyc1JlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfRE1GUmUsXG4gICAgMCxcbiAgICBbX2xHTiwgX2ZOUCwgX25ULCBfbGksIF9tTiwgX21OZV0sXG4gICAgWzAsIDAsIDAsIDEsIDAsIDBdLFxuXTtcbnZhciBEZXNjcmliZU1ldHJpY0ZpbHRlcnNSZXNwb25zZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9ETUZSZXMsXG4gICAgMCxcbiAgICBbX21GLCBfblRdLFxuICAgIFsoKSA9PiBNZXRyaWNGaWx0ZXJzLCAwXSxcbl07XG52YXIgRGVzY3JpYmVRdWVyaWVzUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9EUVIsXG4gICAgMCxcbiAgICBbX2xHTiwgX3N0YSwgX21SLCBfblQsIF9xTF0sXG4gICAgWzAsIDAsIDEsIDAsIDBdLFxuXTtcbnZhciBEZXNjcmliZVF1ZXJpZXNSZXNwb25zZSA9IFszLCBuMCwgX0RRUmUsIDAsIFtfcSwgX25UXSwgWygpID0+IFF1ZXJ5SW5mb0xpc3QsIDBdXTtcbnZhciBEZXNjcmliZVF1ZXJ5RGVmaW5pdGlvbnNSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0RRRFJlcyxcbiAgICAwLFxuICAgIFtfcUwsIF9xRE5QLCBfbVIsIF9uVF0sXG4gICAgWzAsIDAsIDEsIDBdLFxuXTtcbnZhciBEZXNjcmliZVF1ZXJ5RGVmaW5pdGlvbnNSZXNwb25zZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9EUURSZXNjLFxuICAgIDAsXG4gICAgW19xRCwgX25UXSxcbiAgICBbKCkgPT4gUXVlcnlEZWZpbml0aW9uTGlzdCwgMF0sXG5dO1xudmFyIERlc2NyaWJlUmVzb3VyY2VQb2xpY2llc1JlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfRFJQUmVzLFxuICAgIDAsXG4gICAgW19uVCwgX2xpLCBfckEsIF9wU29dLFxuICAgIFswLCAxLCAwLCAwXSxcbl07XG52YXIgRGVzY3JpYmVSZXNvdXJjZVBvbGljaWVzUmVzcG9uc2UgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfRFJQUmVzYyxcbiAgICAwLFxuICAgIFtfclAsIF9uVF0sXG4gICAgWygpID0+IFJlc291cmNlUG9saWNpZXMsIDBdLFxuXTtcbnZhciBEZXNjcmliZVN1YnNjcmlwdGlvbkZpbHRlcnNSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0RTRlJlLFxuICAgIDAsXG4gICAgW19sR04sIF9mTlAsIF9uVCwgX2xpXSxcbiAgICBbMCwgMCwgMCwgMV0sXG5dO1xudmFyIERlc2NyaWJlU3Vic2NyaXB0aW9uRmlsdGVyc1Jlc3BvbnNlID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0RTRlJlcyxcbiAgICAwLFxuICAgIFtfc0YsIF9uVF0sXG4gICAgWygpID0+IFN1YnNjcmlwdGlvbkZpbHRlcnMsIDBdLFxuXTtcbnZhciBEZXN0aW5hdGlvbiA9IFszLCBuMCwgX0RlLCAwLCBbX2ROZSwgX3RBLCBfckFvLCBfYVBjLCBfYXIsIF9jVF0sIFswLCAwLCAwLCAwLCAwLCAxXV07XG52YXIgRGVzdGluYXRpb25Db25maWd1cmF0aW9uID0gWzMsIG4wLCBfREMsIDAsIFtfc0NvXSwgWygpID0+IFMzQ29uZmlndXJhdGlvbl1dO1xudmFyIERpc2Fzc29jaWF0ZUttc0tleVJlcXVlc3QgPSBbMywgbjAsIF9ES0tSLCAwLCBbX2xHTiwgX3JJXSwgWzAsIDBdXTtcbnZhciBEaXNhc3NvY2lhdGVTb3VyY2VGcm9tUzNUYWJsZUludGVncmF0aW9uUmVxdWVzdCA9IFszLCBuMCwgX0RTRlNUSVIsIDAsIFtfaV0sIFswXV07XG52YXIgRGlzYXNzb2NpYXRlU291cmNlRnJvbVMzVGFibGVJbnRlZ3JhdGlvblJlc3BvbnNlID0gWzMsIG4wLCBfRFNGU1RJUmksIDAsIFtfaV0sIFswXV07XG52YXIgRW50aXR5ID0gWzMsIG4wLCBfRSwgMCwgW19rQSwgX2F0XSwgWzEyOCB8IDAsIDEyOCB8IDBdXTtcbnZhciBFeHBvcnRUYXNrID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0VULFxuICAgIDAsXG4gICAgW190SSwgX3ROLCBfbEdOLCBfZiwgX3RvLCBfZGVzLCBfZFAsIF9zdGEsIF9lSV0sXG4gICAgWzAsIDAsIDAsIDEsIDEsIDAsIDAsICgpID0+IEV4cG9ydFRhc2tTdGF0dXMsICgpID0+IEV4cG9ydFRhc2tFeGVjdXRpb25JbmZvXSxcbl07XG52YXIgRXhwb3J0VGFza0V4ZWN1dGlvbkluZm8gPSBbMywgbjAsIF9FVEVJLCAwLCBbX2NULCBfY1RvbV0sIFsxLCAxXV07XG52YXIgRXhwb3J0VGFza1N0YXR1cyA9IFszLCBuMCwgX0VUUywgMCwgW19jb2QsIF9tXSwgWzAsIDBdXTtcbnZhciBGaWVsZEluZGV4ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0ZJLFxuICAgIDAsXG4gICAgW19sR0lvLCBfZklOLCBfbFNULCBfZkVULCBfbEVULCBfdHldLFxuICAgIFswLCAwLCAxLCAxLCAxLCAwXSxcbl07XG52YXIgRmllbGRzRGF0YSA9IFszLCBuMCwgX0ZELCAwLCBbX2RhXSwgWzIxXV07XG52YXIgRmlsdGVyZWRMb2dFdmVudCA9IFszLCBuMCwgX0ZMRSwgMCwgW19sU04sIF90aW0sIF9tLCBfaVQsIF9lSXZdLCBbMCwgMSwgMCwgMSwgMF1dO1xudmFyIEZpbHRlckxvZ0V2ZW50c1JlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfRkxFUixcbiAgICAwLFxuICAgIFtfbEdOLCBfbEdJbywgX2xTTm8sIF9sU05QLCBfc1R0LCBfZVRuLCBfZlAsIF9uVCwgX2xpLCBfaW4sIF91XSxcbiAgICBbMCwgMCwgNjQgfCAwLCAwLCAxLCAxLCAwLCAwLCAxLCAyLCAyXSxcbl07XG52YXIgRmlsdGVyTG9nRXZlbnRzUmVzcG9uc2UgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfRkxFUmksXG4gICAgMCxcbiAgICBbX2V2LCBfc0xTLCBfblRdLFxuICAgIFsoKSA9PiBGaWx0ZXJlZExvZ0V2ZW50cywgKCkgPT4gU2VhcmNoZWRMb2dTdHJlYW1zLCAwXSxcbl07XG52YXIgR2V0RGF0YVByb3RlY3Rpb25Qb2xpY3lSZXF1ZXN0ID0gWzMsIG4wLCBfR0RQUFIsIDAsIFtfbEdJb10sIFswXV07XG52YXIgR2V0RGF0YVByb3RlY3Rpb25Qb2xpY3lSZXNwb25zZSA9IFszLCBuMCwgX0dEUFBSZSwgMCwgW19sR0lvLCBfcEQsIF9sVVRdLCBbMCwgMCwgMV1dO1xudmFyIEdldERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lSZXF1ZXN0ID0gWzMsIG4wLCBfR0REUFIsIDAsIFtfZEROXSwgWzBdXTtcbnZhciBHZXREZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5UmVzcG9uc2UgPSBbMywgbjAsIF9HRERQUmUsIDAsIFtfcG9dLCBbKCkgPT4gUG9saWN5XV07XG52YXIgR2V0RGVsaXZlcnlEZXN0aW5hdGlvblJlcXVlc3QgPSBbMywgbjAsIF9HRERSLCAwLCBbX25dLCBbMF1dO1xudmFyIEdldERlbGl2ZXJ5RGVzdGluYXRpb25SZXNwb25zZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HRERSZSxcbiAgICAwLFxuICAgIFtfZERlXSxcbiAgICBbKCkgPT4gRGVsaXZlcnlEZXN0aW5hdGlvbl0sXG5dO1xudmFyIEdldERlbGl2ZXJ5UmVxdWVzdCA9IFszLCBuMCwgX0dEUiwgMCwgW19pZF0sIFswXV07XG52YXIgR2V0RGVsaXZlcnlSZXNwb25zZSA9IFszLCBuMCwgX0dEUmUsIDAsIFtfZGVdLCBbKCkgPT4gRGVsaXZlcnldXTtcbnZhciBHZXREZWxpdmVyeVNvdXJjZVJlcXVlc3QgPSBbMywgbjAsIF9HRFNSLCAwLCBbX25dLCBbMF1dO1xudmFyIEdldERlbGl2ZXJ5U291cmNlUmVzcG9uc2UgPSBbMywgbjAsIF9HRFNSZSwgMCwgW19kU2VsXSwgWygpID0+IERlbGl2ZXJ5U291cmNlXV07XG52YXIgR2V0SW50ZWdyYXRpb25SZXF1ZXN0ID0gWzMsIG4wLCBfR0lSLCAwLCBbX2lOXSwgWzBdXTtcbnZhciBHZXRJbnRlZ3JhdGlvblJlc3BvbnNlID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dJUmUsXG4gICAgMCxcbiAgICBbX2lOLCBfaVRuLCBfaVNuLCBfaURdLFxuICAgIFswLCAwLCAwLCAoKSA9PiBJbnRlZ3JhdGlvbkRldGFpbHNdLFxuXTtcbnZhciBHZXRMb2dBbm9tYWx5RGV0ZWN0b3JSZXF1ZXN0ID0gWzMsIG4wLCBfR0xBRFIsIDAsIFtfYURBXSwgWzBdXTtcbnZhciBHZXRMb2dBbm9tYWx5RGV0ZWN0b3JSZXNwb25zZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HTEFEUmUsXG4gICAgMCxcbiAgICBbX2ROLCBfbEdBTCwgX2VGLCBfZlAsIF9hRFMsIF9rS0ksIF9jVFMsIF9sTVRTLCBfYVZUXSxcbiAgICBbMCwgNjQgfCAwLCAwLCAwLCAwLCAwLCAxLCAxLCAxXSxcbl07XG52YXIgR2V0TG9nRXZlbnRzUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HTEVSLFxuICAgIDAsXG4gICAgW19sR04sIF9sR0lvLCBfbFNOLCBfc1R0LCBfZVRuLCBfblQsIF9saSwgX3NGSCwgX3VdLFxuICAgIFswLCAwLCAwLCAxLCAxLCAwLCAxLCAyLCAyXSxcbl07XG52YXIgR2V0TG9nRXZlbnRzUmVzcG9uc2UgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfR0xFUmUsXG4gICAgMCxcbiAgICBbX2V2LCBfbkZULCBfbkJUXSxcbiAgICBbKCkgPT4gT3V0cHV0TG9nRXZlbnRzLCAwLCAwXSxcbl07XG52YXIgR2V0TG9nRmllbGRzUmVxdWVzdCA9IFszLCBuMCwgX0dMRlIsIDAsIFtfZFNOYSwgX2RTVF0sIFswLCAwXV07XG52YXIgR2V0TG9nRmllbGRzUmVzcG9uc2UgPSBbMywgbjAsIF9HTEZSZSwgMCwgW19sRl0sIFsoKSA9PiBMb2dGaWVsZHNMaXN0XV07XG52YXIgR2V0TG9nR3JvdXBGaWVsZHNSZXF1ZXN0ID0gWzMsIG4wLCBfR0xHRlIsIDAsIFtfbEdOLCBfdGltZSwgX2xHSW9dLCBbMCwgMSwgMF1dO1xudmFyIEdldExvZ0dyb3VwRmllbGRzUmVzcG9uc2UgPSBbMywgbjAsIF9HTEdGUmUsIDAsIFtfbEdGXSwgWygpID0+IExvZ0dyb3VwRmllbGRMaXN0XV07XG52YXIgR2V0TG9nT2JqZWN0UmVxdWVzdCA9IFszLCBuMCwgX0dMT1IsIDAsIFtfdSwgX2xPUF0sIFsyLCAwXV07XG52YXIgR2V0TG9nT2JqZWN0UmVzcG9uc2UgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfR0xPUmUsXG4gICAgMCxcbiAgICBbX2ZTaV0sXG4gICAgW1soKSA9PiBHZXRMb2dPYmplY3RSZXNwb25zZVN0cmVhbSwgMF1dLFxuXTtcbnZhciBHZXRMb2dSZWNvcmRSZXF1ZXN0ID0gWzMsIG4wLCBfR0xSUiwgMCwgW19sUlAsIF91XSwgWzAsIDJdXTtcbnZhciBHZXRMb2dSZWNvcmRSZXNwb25zZSA9IFszLCBuMCwgX0dMUlJlLCAwLCBbX2xSXSwgWzEyOCB8IDBdXTtcbnZhciBHZXRRdWVyeVJlc3VsdHNSZXF1ZXN0ID0gWzMsIG4wLCBfR1FSUiwgMCwgW19xSV0sIFswXV07XG52YXIgR2V0UXVlcnlSZXN1bHRzUmVzcG9uc2UgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfR1FSUmUsXG4gICAgMCxcbiAgICBbX3FMLCBfciwgX3N0YXQsIF9zdGEsIF9lS10sXG4gICAgWzAsICgpID0+IFF1ZXJ5UmVzdWx0cywgKCkgPT4gUXVlcnlTdGF0aXN0aWNzLCAwLCAwXSxcbl07XG52YXIgR2V0U2NoZWR1bGVkUXVlcnlIaXN0b3J5UmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HU1FIUixcbiAgICAwLFxuICAgIFtfaSwgX3NUdCwgX2VUbiwgX2VTLCBfbVIsIF9uVF0sXG4gICAgWzAsIDEsIDEsIDY0IHwgMCwgMSwgMF0sXG5dO1xudmFyIEdldFNjaGVkdWxlZFF1ZXJ5SGlzdG9yeVJlc3BvbnNlID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dTUUhSZSxcbiAgICAwLFxuICAgIFtfbiwgX3NRQSwgX3RILCBfblRdLFxuICAgIFswLCAwLCAoKSA9PiBUcmlnZ2VySGlzdG9yeVJlY29yZExpc3QsIDBdLFxuXTtcbnZhciBHZXRTY2hlZHVsZWRRdWVyeVJlcXVlc3QgPSBbMywgbjAsIF9HU1FSLCAwLCBbX2ldLCBbMF1dO1xudmFyIEdldFNjaGVkdWxlZFF1ZXJ5UmVzcG9uc2UgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfR1NRUmUsXG4gICAgMCxcbiAgICBbX3NRQSwgX24sIF9kLCBfcUwsIF9xUywgX2xHSSwgX3NFLCBfdGksIF9zVE8sIF9kQywgX3N0LCBfbFRULCBfbEVTLCBfc1NULCBfc0VULCBfZVJBLCBfY1QsIF9sVVRdLFxuICAgIFswLCAwLCAwLCAwLCAwLCA2NCB8IDAsIDAsIDAsIDEsICgpID0+IERlc3RpbmF0aW9uQ29uZmlndXJhdGlvbiwgMCwgMSwgMCwgMSwgMSwgMCwgMSwgMV0sXG5dO1xudmFyIEdldFRyYW5zZm9ybWVyUmVxdWVzdCA9IFszLCBuMCwgX0dUUiwgMCwgW19sR0lvXSwgWzBdXTtcbnZhciBHZXRUcmFuc2Zvcm1lclJlc3BvbnNlID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dUUmUsXG4gICAgMCxcbiAgICBbX2xHSW8sIF9jVCwgX2xNVCwgX3RDXSxcbiAgICBbMCwgMSwgMSwgKCkgPT4gUHJvY2Vzc29yc10sXG5dO1xudmFyIEdyb2sgPSBbMywgbjAsIF9HLCAwLCBbX3NvLCBfbWFdLCBbMCwgMF1dO1xudmFyIEdyb3VwaW5nSWRlbnRpZmllciA9IFszLCBuMCwgX0dJLCAwLCBbX2ssIF92XSwgWzAsIDBdXTtcbnZhciBJbXBvcnQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfSSxcbiAgICAwLFxuICAgIFtfaUksIF9pU0EsIF9pU20sIF9pREEsIF9pUywgX2lGLCBfY1QsIF9sVVQsIF9lTV0sXG4gICAgWzAsIDAsIDAsIDAsICgpID0+IEltcG9ydFN0YXRpc3RpY3MsICgpID0+IEltcG9ydEZpbHRlciwgMSwgMSwgMF0sXG5dO1xudmFyIEltcG9ydEJhdGNoID0gWzMsIG4wLCBfSUIsIDAsIFtfYkksIF9zdGEsIF9lTV0sIFswLCAwLCAwXV07XG52YXIgSW1wb3J0RmlsdGVyID0gWzMsIG4wLCBfSUYsIDAsIFtfc0VUdCwgX2VFVF0sIFsxLCAxXV07XG52YXIgSW1wb3J0U3RhdGlzdGljcyA9IFszLCBuMCwgX0lTLCAwLCBbX2JJeV0sIFsxXV07XG52YXIgSW5kZXhQb2xpY3kgPSBbMywgbjAsIF9JUCwgMCwgW19sR0lvLCBfbFVUYSwgX3BELCBfcE4sIF9zb10sIFswLCAxLCAwLCAwLCAwXV07XG52YXIgSW5wdXRMb2dFdmVudCA9IFszLCBuMCwgX0lMRSwgMCwgW190aW0sIF9tXSwgWzEsIDBdXTtcbnZhciBJbnRlZ3JhdGlvblN1bW1hcnkgPSBbMywgbjAsIF9JU24sIDAsIFtfaU4sIF9pVG4sIF9pU25dLCBbMCwgMCwgMF1dO1xudmFyIEludGVybmFsU2VydmVyRXhjZXB0aW9uID0gWy0zLCBuMCwgX0lTRSwgeyBbX2VdOiBfc2VyLCBbX2hFXTogNTAwIH0sIFtfbV0sIFswXV07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihJbnRlcm5hbFNlcnZlckV4Y2VwdGlvbiwgSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb24kMSk7XG52YXIgSW50ZXJuYWxTdHJlYW1pbmdFeGNlcHRpb24gPSBbLTMsIG4wLCBfSVNFbiwgeyBbX2VdOiBfYyB9LCBbX21dLCBbMF1dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoSW50ZXJuYWxTdHJlYW1pbmdFeGNlcHRpb24sIEludGVybmFsU3RyZWFtaW5nRXhjZXB0aW9uJDEpO1xudmFyIEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24gPSBbLTMsIG4wLCBfSU9FLCB7IFtfZV06IF9jIH0sIFtfbV0sIFswXV07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uLCBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uJDEpO1xudmFyIEludmFsaWRQYXJhbWV0ZXJFeGNlcHRpb24gPSBbLTMsIG4wLCBfSVBFLCB7IFtfZV06IF9jIH0sIFtfbV0sIFswXV07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihJbnZhbGlkUGFyYW1ldGVyRXhjZXB0aW9uLCBJbnZhbGlkUGFyYW1ldGVyRXhjZXB0aW9uJDEpO1xudmFyIEludmFsaWRTZXF1ZW5jZVRva2VuRXhjZXB0aW9uID0gWy0zLCBuMCwgX0lTVEUsIHsgW19lXTogX2MgfSwgW19lU1QsIF9tXSwgWzAsIDBdXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKEludmFsaWRTZXF1ZW5jZVRva2VuRXhjZXB0aW9uLCBJbnZhbGlkU2VxdWVuY2VUb2tlbkV4Y2VwdGlvbiQxKTtcbnZhciBMaW1pdEV4Y2VlZGVkRXhjZXB0aW9uID0gWy0zLCBuMCwgX0xFRSwgeyBbX2VdOiBfYyB9LCBbX21dLCBbMF1dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoTGltaXRFeGNlZWRlZEV4Y2VwdGlvbiwgTGltaXRFeGNlZWRlZEV4Y2VwdGlvbiQxKTtcbnZhciBMaXN0QWdncmVnYXRlTG9nR3JvdXBTdW1tYXJpZXNSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0xBTEdTUixcbiAgICAwLFxuICAgIFtfYUljLCBfaUxBLCBfbEdDbywgX2xHTlBvLCBfZFNhLCBfZ0IsIF9uVCwgX2xpXSxcbiAgICBbNjQgfCAwLCAyLCAwLCAwLCAoKSA9PiBEYXRhU291cmNlRmlsdGVycywgMCwgMCwgMV0sXG5dO1xudmFyIExpc3RBZ2dyZWdhdGVMb2dHcm91cFN1bW1hcmllc1Jlc3BvbnNlID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0xBTEdTUmksXG4gICAgMCxcbiAgICBbX2FMR1MsIF9uVF0sXG4gICAgWygpID0+IEFnZ3JlZ2F0ZUxvZ0dyb3VwU3VtbWFyaWVzLCAwXSxcbl07XG52YXIgTGlzdEFub21hbGllc1JlcXVlc3QgPSBbMywgbjAsIF9MQVIsIDAsIFtfYURBLCBfc1MsIF9saSwgX25UXSwgWzAsIDAsIDEsIDBdXTtcbnZhciBMaXN0QW5vbWFsaWVzUmVzcG9uc2UgPSBbMywgbjAsIF9MQVJpLCAwLCBbX2FuLCBfblRdLCBbKCkgPT4gQW5vbWFsaWVzLCAwXV07XG52YXIgTGlzdEludGVncmF0aW9uc1JlcXVlc3QgPSBbMywgbjAsIF9MSVIsIDAsIFtfaU5QLCBfaVRuLCBfaVNuXSwgWzAsIDAsIDBdXTtcbnZhciBMaXN0SW50ZWdyYXRpb25zUmVzcG9uc2UgPSBbMywgbjAsIF9MSVJpLCAwLCBbX2lTbnRdLCBbKCkgPT4gSW50ZWdyYXRpb25TdW1tYXJpZXNdXTtcbnZhciBMaXN0TG9nQW5vbWFseURldGVjdG9yc1JlcXVlc3QgPSBbMywgbjAsIF9MTEFEUiwgMCwgW19mTEdBLCBfbGksIF9uVF0sIFswLCAxLCAwXV07XG52YXIgTGlzdExvZ0Fub21hbHlEZXRlY3RvcnNSZXNwb25zZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9MTEFEUmksXG4gICAgMCxcbiAgICBbX2FELCBfblRdLFxuICAgIFsoKSA9PiBBbm9tYWx5RGV0ZWN0b3JzLCAwXSxcbl07XG52YXIgTGlzdExvZ0dyb3Vwc0ZvclF1ZXJ5UmVxdWVzdCA9IFszLCBuMCwgX0xMR0ZRUiwgMCwgW19xSSwgX25ULCBfbVJdLCBbMCwgMCwgMV1dO1xudmFyIExpc3RMb2dHcm91cHNGb3JRdWVyeVJlc3BvbnNlID0gWzMsIG4wLCBfTExHRlFSaSwgMCwgW19sR0ksIF9uVF0sIFs2NCB8IDAsIDBdXTtcbnZhciBMaXN0TG9nR3JvdXBzUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9MTEdSLFxuICAgIDAsXG4gICAgW19sR05QbywgX2xHQ28sIF9pTEEsIF9hSWMsIF9uVCwgX2xpLCBfZFNhLCBfZklOaV0sXG4gICAgWzAsIDAsIDIsIDY0IHwgMCwgMCwgMSwgKCkgPT4gRGF0YVNvdXJjZUZpbHRlcnMsIDY0IHwgMF0sXG5dO1xudmFyIExpc3RMb2dHcm91cHNSZXNwb25zZSA9IFszLCBuMCwgX0xMR1JpLCAwLCBbX2xHLCBfblRdLCBbKCkgPT4gTG9nR3JvdXBTdW1tYXJpZXMsIDBdXTtcbnZhciBMaXN0U2NoZWR1bGVkUXVlcmllc1JlcXVlc3QgPSBbMywgbjAsIF9MU1FSLCAwLCBbX21SLCBfblQsIF9zdF0sIFsxLCAwLCAwXV07XG52YXIgTGlzdFNjaGVkdWxlZFF1ZXJpZXNSZXNwb25zZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9MU1FSaSxcbiAgICAwLFxuICAgIFtfblQsIF9zUV0sXG4gICAgWzAsICgpID0+IFNjaGVkdWxlZFF1ZXJ5U3VtbWFyeUxpc3RdLFxuXTtcbnZhciBMaXN0U291cmNlc0ZvclMzVGFibGVJbnRlZ3JhdGlvblJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfTFNGU1RJUixcbiAgICAwLFxuICAgIFtfaUEsIF9tUiwgX25UXSxcbiAgICBbMCwgMSwgMF0sXG5dO1xudmFyIExpc3RTb3VyY2VzRm9yUzNUYWJsZUludGVncmF0aW9uUmVzcG9uc2UgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfTFNGU1RJUmksXG4gICAgMCxcbiAgICBbX3NvdSwgX25UXSxcbiAgICBbKCkgPT4gUzNUYWJsZUludGVncmF0aW9uU291cmNlcywgMF0sXG5dO1xudmFyIExpc3RUYWdzRm9yUmVzb3VyY2VSZXF1ZXN0ID0gWzMsIG4wLCBfTFRGUlIsIDAsIFtfckFdLCBbMF1dO1xudmFyIExpc3RUYWdzRm9yUmVzb3VyY2VSZXNwb25zZSA9IFszLCBuMCwgX0xURlJSaSwgMCwgW190YV0sIFsxMjggfCAwXV07XG52YXIgTGlzdFRhZ3NMb2dHcm91cFJlcXVlc3QgPSBbMywgbjAsIF9MVExHUiwgMCwgW19sR05dLCBbMF1dO1xudmFyIExpc3RUYWdzTG9nR3JvdXBSZXNwb25zZSA9IFszLCBuMCwgX0xUTEdSaSwgMCwgW190YV0sIFsxMjggfCAwXV07XG52YXIgTGlzdFRvTWFwID0gWzMsIG4wLCBfTFRNLCAwLCBbX3NvLCBfaywgX3ZLLCBfdCwgX2ZsLCBfZkVdLCBbMCwgMCwgMCwgMCwgMiwgMF1dO1xudmFyIExpdmVUYWlsU2Vzc2lvbkxvZ0V2ZW50ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0xUU0xFLFxuICAgIDAsXG4gICAgW19sU04sIF9sR0lvLCBfbSwgX3RpbSwgX2lUXSxcbiAgICBbMCwgMCwgMCwgMSwgMV0sXG5dO1xudmFyIExpdmVUYWlsU2Vzc2lvbk1ldGFkYXRhID0gWzMsIG4wLCBfTFRTTSwgMCwgW19zYV0sIFsyXV07XG52YXIgTGl2ZVRhaWxTZXNzaW9uU3RhcnQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfTFRTUyxcbiAgICAwLFxuICAgIFtfckllLCBfc0ksIF9sR0ksIF9sU05vLCBfbFNOUG8sIF9sRUZQXSxcbiAgICBbMCwgMCwgNjQgfCAwLCA2NCB8IDAsIDY0IHwgMCwgMF0sXG5dO1xudmFyIExpdmVUYWlsU2Vzc2lvblVwZGF0ZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9MVFNVLFxuICAgIDAsXG4gICAgW19zTSwgX3NSXSxcbiAgICBbKCkgPT4gTGl2ZVRhaWxTZXNzaW9uTWV0YWRhdGEsICgpID0+IExpdmVUYWlsU2Vzc2lvblJlc3VsdHNdLFxuXTtcbnZhciBMb2dFdmVudCA9IFszLCBuMCwgX0xFLCAwLCBbX3RpbSwgX21dLCBbMSwgMF1dO1xudmFyIExvZ0ZpZWxkc0xpc3RJdGVtID0gWzMsIG4wLCBfTEZMSSwgMCwgW19sRk4sIF9sRlRdLCBbMCwgKCkgPT4gTG9nRmllbGRUeXBlXV07XG52YXIgTG9nRmllbGRUeXBlID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0xGVCxcbiAgICAwLFxuICAgIFtfdHksIF9lbCwgX2ZpXSxcbiAgICBbMCwgKCkgPT4gTG9nRmllbGRUeXBlLCAoKSA9PiBMb2dGaWVsZHNMaXN0XSxcbl07XG52YXIgTG9nR3JvdXAgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfTEcsXG4gICAgMCxcbiAgICBbX2xHTiwgX2NULCBfcklELCBfbUZDLCBfYXIsIF9zQiwgX2tLSSwgX2RQUywgX2lQbiwgX2xHQ28sIF9sR0EsIF9kUEVdLFxuICAgIFswLCAxLCAxLCAxLCAwLCAxLCAwLCAwLCA2NCB8IDAsIDAsIDAsIDJdLFxuXTtcbnZhciBMb2dHcm91cEZpZWxkID0gWzMsIG4wLCBfTEdGLCAwLCBbX24sIF9wZV0sIFswLCAxXV07XG52YXIgTG9nR3JvdXBTdW1tYXJ5ID0gWzMsIG4wLCBfTEdTLCAwLCBbX2xHTiwgX2xHQSwgX2xHQ29dLCBbMCwgMCwgMF1dO1xudmFyIExvZ1N0cmVhbSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9MUyxcbiAgICAwLFxuICAgIFtfbFNOLCBfY1QsIF9mRVRpLCBfbEVUYSwgX2xJVCwgX3VTVCwgX2FyLCBfc0JdLFxuICAgIFswLCAxLCAxLCAxLCAxLCAwLCAwLCAxXSxcbl07XG52YXIgTG93ZXJDYXNlU3RyaW5nID0gWzMsIG4wLCBfTENTLCAwLCBbX3dLXSwgWzY0IHwgMF1dO1xudmFyIE1hbGZvcm1lZFF1ZXJ5RXhjZXB0aW9uID0gW1xuICAgIC0zLFxuICAgIG4wLFxuICAgIF9NUUUsXG4gICAgeyBbX2VdOiBfYyB9LFxuICAgIFtfcUNFLCBfbV0sXG4gICAgWygpID0+IFF1ZXJ5Q29tcGlsZUVycm9yLCAwXSxcbl07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihNYWxmb3JtZWRRdWVyeUV4Y2VwdGlvbiwgTWFsZm9ybWVkUXVlcnlFeGNlcHRpb24kMSk7XG52YXIgTWV0cmljRmlsdGVyID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX01GLFxuICAgIDAsXG4gICAgW19mTiwgX2ZQLCBfbVQsIF9jVCwgX2xHTiwgX2FPVEwsIF9mU0MsIF9lU0ZEXSxcbiAgICBbMCwgMCwgKCkgPT4gTWV0cmljVHJhbnNmb3JtYXRpb25zLCAxLCAwLCAyLCAwLCA2NCB8IDBdLFxuXTtcbnZhciBNZXRyaWNGaWx0ZXJNYXRjaFJlY29yZCA9IFszLCBuMCwgX01GTVIsIDAsIFtfZU4sIF9lTXYsIF9lVl0sIFsxLCAwLCAxMjggfCAwXV07XG52YXIgTWV0cmljVHJhbnNmb3JtYXRpb24gPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfTVQsXG4gICAgMCxcbiAgICBbX21OLCBfbU5lLCBfbVYsIF9kViwgX2RpLCBfdW5dLFxuICAgIFswLCAwLCAwLCAxLCAxMjggfCAwLCAwXSxcbl07XG52YXIgTW92ZUtleUVudHJ5ID0gWzMsIG4wLCBfTUtFLCAwLCBbX3NvLCBfdCwgX29JRV0sIFswLCAwLCAyXV07XG52YXIgTW92ZUtleXMgPSBbMywgbjAsIF9NSywgMCwgW19lbl0sIFsoKSA9PiBNb3ZlS2V5RW50cmllc11dO1xudmFyIE9wZW5TZWFyY2hBcHBsaWNhdGlvbiA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9PU0EsXG4gICAgMCxcbiAgICBbX2FFLCBfYUEsIF9hSXAsIF9zdGFdLFxuICAgIFswLCAwLCAwLCAoKSA9PiBPcGVuU2VhcmNoUmVzb3VyY2VTdGF0dXNdLFxuXTtcbnZhciBPcGVuU2VhcmNoQ29sbGVjdGlvbiA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9PU0MsXG4gICAgMCxcbiAgICBbX2NFLCBfY0EsIF9zdGFdLFxuICAgIFswLCAwLCAoKSA9PiBPcGVuU2VhcmNoUmVzb3VyY2VTdGF0dXNdLFxuXTtcbnZhciBPcGVuU2VhcmNoRGF0YUFjY2Vzc1BvbGljeSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9PU0RBUCxcbiAgICAwLFxuICAgIFtfcE4sIF9zdGFdLFxuICAgIFswLCAoKSA9PiBPcGVuU2VhcmNoUmVzb3VyY2VTdGF0dXNdLFxuXTtcbnZhciBPcGVuU2VhcmNoRGF0YVNvdXJjZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9PU0RTLFxuICAgIDAsXG4gICAgW19kU05hLCBfc3RhXSxcbiAgICBbMCwgKCkgPT4gT3BlblNlYXJjaFJlc291cmNlU3RhdHVzXSxcbl07XG52YXIgT3BlblNlYXJjaEVuY3J5cHRpb25Qb2xpY3kgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfT1NFUCxcbiAgICAwLFxuICAgIFtfcE4sIF9zdGFdLFxuICAgIFswLCAoKSA9PiBPcGVuU2VhcmNoUmVzb3VyY2VTdGF0dXNdLFxuXTtcbnZhciBPcGVuU2VhcmNoSW50ZWdyYXRpb25EZXRhaWxzID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX09TSUQsXG4gICAgMCxcbiAgICBbX2RTLCBfYXAsIF9jb2wsIF93LCBfZVAsIF9uUCwgX2FQYywgX2xQXSxcbiAgICBbXG4gICAgICAgICgpID0+IE9wZW5TZWFyY2hEYXRhU291cmNlLFxuICAgICAgICAoKSA9PiBPcGVuU2VhcmNoQXBwbGljYXRpb24sXG4gICAgICAgICgpID0+IE9wZW5TZWFyY2hDb2xsZWN0aW9uLFxuICAgICAgICAoKSA9PiBPcGVuU2VhcmNoV29ya3NwYWNlLFxuICAgICAgICAoKSA9PiBPcGVuU2VhcmNoRW5jcnlwdGlvblBvbGljeSxcbiAgICAgICAgKCkgPT4gT3BlblNlYXJjaE5ldHdvcmtQb2xpY3ksXG4gICAgICAgICgpID0+IE9wZW5TZWFyY2hEYXRhQWNjZXNzUG9saWN5LFxuICAgICAgICAoKSA9PiBPcGVuU2VhcmNoTGlmZWN5Y2xlUG9saWN5LFxuICAgIF0sXG5dO1xudmFyIE9wZW5TZWFyY2hMaWZlY3ljbGVQb2xpY3kgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfT1NMUCxcbiAgICAwLFxuICAgIFtfcE4sIF9zdGFdLFxuICAgIFswLCAoKSA9PiBPcGVuU2VhcmNoUmVzb3VyY2VTdGF0dXNdLFxuXTtcbnZhciBPcGVuU2VhcmNoTmV0d29ya1BvbGljeSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9PU05QLFxuICAgIDAsXG4gICAgW19wTiwgX3N0YV0sXG4gICAgWzAsICgpID0+IE9wZW5TZWFyY2hSZXNvdXJjZVN0YXR1c10sXG5dO1xudmFyIE9wZW5TZWFyY2hSZXNvdXJjZUNvbmZpZyA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9PU1JDLFxuICAgIDAsXG4gICAgW19rS0EsIF9kU1JBLCBfZFZQLCBfYUEsIF9yRF0sXG4gICAgWzAsIDAsIDY0IHwgMCwgMCwgMV0sXG5dO1xudmFyIE9wZW5TZWFyY2hSZXNvdXJjZVN0YXR1cyA9IFszLCBuMCwgX09TUlMsIDAsIFtfc3RhLCBfc010XSwgWzAsIDBdXTtcbnZhciBPcGVuU2VhcmNoV29ya3NwYWNlID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX09TVyxcbiAgICAwLFxuICAgIFtfd0ksIF9zdGFdLFxuICAgIFswLCAoKSA9PiBPcGVuU2VhcmNoUmVzb3VyY2VTdGF0dXNdLFxuXTtcbnZhciBPcGVyYXRpb25BYm9ydGVkRXhjZXB0aW9uID0gWy0zLCBuMCwgX09BRSwgeyBbX2VdOiBfYyB9LCBbX21dLCBbMF1dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoT3BlcmF0aW9uQWJvcnRlZEV4Y2VwdGlvbiwgT3BlcmF0aW9uQWJvcnRlZEV4Y2VwdGlvbiQxKTtcbnZhciBPdXRwdXRMb2dFdmVudCA9IFszLCBuMCwgX09MRSwgMCwgW190aW0sIF9tLCBfaVRdLCBbMSwgMCwgMV1dO1xudmFyIFBhcnNlQ2xvdWRmcm9udCA9IFszLCBuMCwgX1BDLCAwLCBbX3NvXSwgWzBdXTtcbnZhciBQYXJzZUpTT04gPSBbMywgbjAsIF9QSlNPTiwgMCwgW19zbywgX2Rlc10sIFswLCAwXV07XG52YXIgUGFyc2VLZXlWYWx1ZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9QS1YsXG4gICAgMCxcbiAgICBbX3NvLCBfZGVzLCBfZkQsIF9rVkQsIF9rUCwgX25NViwgX29JRV0sXG4gICAgWzAsIDAsIDAsIDAsIDAsIDAsIDJdLFxuXTtcbnZhciBQYXJzZVBvc3RncmVzID0gWzMsIG4wLCBfUFAsIDAsIFtfc29dLCBbMF1dO1xudmFyIFBhcnNlUm91dGU1MyA9IFszLCBuMCwgX1BSLCAwLCBbX3NvXSwgWzBdXTtcbnZhciBQYXJzZVRvT0NTRiA9IFszLCBuMCwgX1BUT0NTRiwgMCwgW19zbywgX2VTdiwgX29WLCBfbVZhXSwgWzAsIDAsIDAsIDBdXTtcbnZhciBQYXJzZVZQQyA9IFszLCBuMCwgX1BWUEMsIDAsIFtfc29dLCBbMF1dO1xudmFyIFBhcnNlV0FGID0gWzMsIG4wLCBfUFdBRiwgMCwgW19zb10sIFswXV07XG52YXIgUGF0dGVyblRva2VuID0gWzMsIG4wLCBfUFQsIDAsIFtfZFRQLCBfaURzLCBfdFMsIF9lbnUsIF9pVE5dLCBbMSwgMiwgMCwgMTI4IHwgMSwgMF1dO1xudmFyIFBvbGljeSA9IFszLCBuMCwgX1AsIDAsIFtfZERQXSwgWzBdXTtcbnZhciBQcm9jZXNzb3IgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfUHIsXG4gICAgMCxcbiAgICBbXG4gICAgICAgIF9hSyxcbiAgICAgICAgX2NWLFxuICAgICAgICBfY3MsXG4gICAgICAgIF9kVEMsXG4gICAgICAgIF9kSyxcbiAgICAgICAgX2csXG4gICAgICAgIF9sVE0sXG4gICAgICAgIF9sQ1MsXG4gICAgICAgIF9tSyxcbiAgICAgICAgX3BDLFxuICAgICAgICBfcEpTT04sXG4gICAgICAgIF9wS1YsXG4gICAgICAgIF9wUmEsXG4gICAgICAgIF9wVE9DU0YsXG4gICAgICAgIF9wUCxcbiAgICAgICAgX3BWUEMsXG4gICAgICAgIF9wV0FGLFxuICAgICAgICBfckssXG4gICAgICAgIF9zU3AsXG4gICAgICAgIF9zU3UsXG4gICAgICAgIF90U3IsXG4gICAgICAgIF90Q3ksXG4gICAgICAgIF91Q1MsXG4gICAgXSxcbiAgICBbXG4gICAgICAgICgpID0+IEFkZEtleXMsXG4gICAgICAgICgpID0+IENvcHlWYWx1ZSxcbiAgICAgICAgKCkgPT4gQ1NWLFxuICAgICAgICAoKSA9PiBEYXRlVGltZUNvbnZlcnRlcixcbiAgICAgICAgKCkgPT4gRGVsZXRlS2V5cyxcbiAgICAgICAgKCkgPT4gR3JvayxcbiAgICAgICAgKCkgPT4gTGlzdFRvTWFwLFxuICAgICAgICAoKSA9PiBMb3dlckNhc2VTdHJpbmcsXG4gICAgICAgICgpID0+IE1vdmVLZXlzLFxuICAgICAgICAoKSA9PiBQYXJzZUNsb3VkZnJvbnQsXG4gICAgICAgICgpID0+IFBhcnNlSlNPTixcbiAgICAgICAgKCkgPT4gUGFyc2VLZXlWYWx1ZSxcbiAgICAgICAgKCkgPT4gUGFyc2VSb3V0ZTUzLFxuICAgICAgICAoKSA9PiBQYXJzZVRvT0NTRixcbiAgICAgICAgKCkgPT4gUGFyc2VQb3N0Z3JlcyxcbiAgICAgICAgKCkgPT4gUGFyc2VWUEMsXG4gICAgICAgICgpID0+IFBhcnNlV0FGLFxuICAgICAgICAoKSA9PiBSZW5hbWVLZXlzLFxuICAgICAgICAoKSA9PiBTcGxpdFN0cmluZyxcbiAgICAgICAgKCkgPT4gU3Vic3RpdHV0ZVN0cmluZyxcbiAgICAgICAgKCkgPT4gVHJpbVN0cmluZyxcbiAgICAgICAgKCkgPT4gVHlwZUNvbnZlcnRlcixcbiAgICAgICAgKCkgPT4gVXBwZXJDYXNlU3RyaW5nLFxuICAgIF0sXG5dO1xudmFyIFB1dEFjY291bnRQb2xpY3lSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1BBUFIsXG4gICAgMCxcbiAgICBbX3BOLCBfcEQsIF9wVCwgX3MsIF9zQ10sXG4gICAgWzAsIDAsIDAsIDAsIDBdLFxuXTtcbnZhciBQdXRBY2NvdW50UG9saWN5UmVzcG9uc2UgPSBbMywgbjAsIF9QQVBSdSwgMCwgW19hUGNjXSwgWygpID0+IEFjY291bnRQb2xpY3ldXTtcbnZhciBQdXREYXRhUHJvdGVjdGlvblBvbGljeVJlcXVlc3QgPSBbMywgbjAsIF9QRFBQUiwgMCwgW19sR0lvLCBfcERdLCBbMCwgMF1dO1xudmFyIFB1dERhdGFQcm90ZWN0aW9uUG9saWN5UmVzcG9uc2UgPSBbMywgbjAsIF9QRFBQUnUsIDAsIFtfbEdJbywgX3BELCBfbFVUXSwgWzAsIDAsIDFdXTtcbnZhciBQdXREZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5UmVxdWVzdCA9IFszLCBuMCwgX1BERFBSLCAwLCBbX2RETiwgX2REUF0sIFswLCAwXV07XG52YXIgUHV0RGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeVJlc3BvbnNlID0gWzMsIG4wLCBfUEREUFJ1LCAwLCBbX3BvXSwgWygpID0+IFBvbGljeV1dO1xudmFyIFB1dERlbGl2ZXJ5RGVzdGluYXRpb25SZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1BERFIsXG4gICAgMCxcbiAgICBbX24sIF9vRiwgX2REQywgX2REVCwgX3RhXSxcbiAgICBbMCwgMCwgKCkgPT4gRGVsaXZlcnlEZXN0aW5hdGlvbkNvbmZpZ3VyYXRpb24sIDAsIDEyOCB8IDBdLFxuXTtcbnZhciBQdXREZWxpdmVyeURlc3RpbmF0aW9uUmVzcG9uc2UgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfUEREUnUsXG4gICAgMCxcbiAgICBbX2REZV0sXG4gICAgWygpID0+IERlbGl2ZXJ5RGVzdGluYXRpb25dLFxuXTtcbnZhciBQdXREZWxpdmVyeVNvdXJjZVJlcXVlc3QgPSBbMywgbjAsIF9QRFNSLCAwLCBbX24sIF9yQSwgX2xULCBfdGFdLCBbMCwgMCwgMCwgMTI4IHwgMF1dO1xudmFyIFB1dERlbGl2ZXJ5U291cmNlUmVzcG9uc2UgPSBbMywgbjAsIF9QRFNSdSwgMCwgW19kU2VsXSwgWygpID0+IERlbGl2ZXJ5U291cmNlXV07XG52YXIgUHV0RGVzdGluYXRpb25Qb2xpY3lSZXF1ZXN0ID0gWzMsIG4wLCBfUERQUiwgMCwgW19kTmUsIF9hUGMsIF9mVV0sIFswLCAwLCAyXV07XG52YXIgUHV0RGVzdGluYXRpb25SZXF1ZXN0ID0gWzMsIG4wLCBfUERSLCAwLCBbX2ROZSwgX3RBLCBfckFvLCBfdGFdLCBbMCwgMCwgMCwgMTI4IHwgMF1dO1xudmFyIFB1dERlc3RpbmF0aW9uUmVzcG9uc2UgPSBbMywgbjAsIF9QRFJ1LCAwLCBbX2Rlc10sIFsoKSA9PiBEZXN0aW5hdGlvbl1dO1xudmFyIFB1dEluZGV4UG9saWN5UmVxdWVzdCA9IFszLCBuMCwgX1BJUFIsIDAsIFtfbEdJbywgX3BEXSwgWzAsIDBdXTtcbnZhciBQdXRJbmRleFBvbGljeVJlc3BvbnNlID0gWzMsIG4wLCBfUElQUnUsIDAsIFtfaVBuZF0sIFsoKSA9PiBJbmRleFBvbGljeV1dO1xudmFyIFB1dEludGVncmF0aW9uUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9QSVIsXG4gICAgMCxcbiAgICBbX2lOLCBfckMsIF9pVG5dLFxuICAgIFswLCAoKSA9PiBSZXNvdXJjZUNvbmZpZywgMF0sXG5dO1xudmFyIFB1dEludGVncmF0aW9uUmVzcG9uc2UgPSBbMywgbjAsIF9QSVJ1LCAwLCBbX2lOLCBfaVNuXSwgWzAsIDBdXTtcbnZhciBQdXRMb2dFdmVudHNSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1BMRVIsXG4gICAgMCxcbiAgICBbX2xHTiwgX2xTTiwgX2xFLCBfc1RlLCBfZW50XSxcbiAgICBbMCwgMCwgKCkgPT4gSW5wdXRMb2dFdmVudHMsIDAsICgpID0+IEVudGl0eV0sXG5dO1xudmFyIFB1dExvZ0V2ZW50c1Jlc3BvbnNlID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1BMRVJ1LFxuICAgIDAsXG4gICAgW19uU1QsIF9yTEVJLCBfckVJXSxcbiAgICBbMCwgKCkgPT4gUmVqZWN0ZWRMb2dFdmVudHNJbmZvLCAoKSA9PiBSZWplY3RlZEVudGl0eUluZm9dLFxuXTtcbnZhciBQdXRMb2dHcm91cERlbGV0aW9uUHJvdGVjdGlvblJlcXVlc3QgPSBbMywgbjAsIF9QTEdEUFIsIDAsIFtfbEdJbywgX2RQRV0sIFswLCAyXV07XG52YXIgUHV0TWV0cmljRmlsdGVyUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9QTUZSLFxuICAgIDAsXG4gICAgW19sR04sIF9mTiwgX2ZQLCBfbVQsIF9hT1RMLCBfZlNDLCBfZVNGRF0sXG4gICAgWzAsIDAsIDAsICgpID0+IE1ldHJpY1RyYW5zZm9ybWF0aW9ucywgMiwgMCwgNjQgfCAwXSxcbl07XG52YXIgUHV0UXVlcnlEZWZpbml0aW9uUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9QUURSLFxuICAgIDAsXG4gICAgW19xTCwgX24sIF9xREksIF9sR05vLCBfcVMsIF9jVGxdLFxuICAgIFswLCAwLCAwLCA2NCB8IDAsIDAsIFswLCA0XV0sXG5dO1xudmFyIFB1dFF1ZXJ5RGVmaW5pdGlvblJlc3BvbnNlID0gWzMsIG4wLCBfUFFEUnUsIDAsIFtfcURJXSwgWzBdXTtcbnZhciBQdXRSZXNvdXJjZVBvbGljeVJlcXVlc3QgPSBbMywgbjAsIF9QUlBSLCAwLCBbX3BOLCBfcEQsIF9yQSwgX2VSSV0sIFswLCAwLCAwLCAwXV07XG52YXIgUHV0UmVzb3VyY2VQb2xpY3lSZXNwb25zZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9QUlBSdSxcbiAgICAwLFxuICAgIFtfclBlLCBfcklldl0sXG4gICAgWygpID0+IFJlc291cmNlUG9saWN5LCAwXSxcbl07XG52YXIgUHV0UmV0ZW50aW9uUG9saWN5UmVxdWVzdCA9IFszLCBuMCwgX1BSUFJ1dCwgMCwgW19sR04sIF9ySURdLCBbMCwgMV1dO1xudmFyIFB1dFN1YnNjcmlwdGlvbkZpbHRlclJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfUFNGUixcbiAgICAwLFxuICAgIFtfbEdOLCBfZk4sIF9mUCwgX2RBLCBfckFvLCBfZGlzLCBfYU9UTCwgX2ZTQywgX2VTRl0sXG4gICAgWzAsIDAsIDAsIDAsIDAsIDAsIDIsIDAsIDY0IHwgMF0sXG5dO1xudmFyIFB1dFRyYW5zZm9ybWVyUmVxdWVzdCA9IFszLCBuMCwgX1BUUiwgMCwgW19sR0lvLCBfdENdLCBbMCwgKCkgPT4gUHJvY2Vzc29yc11dO1xudmFyIFF1ZXJ5Q29tcGlsZUVycm9yID0gWzMsIG4wLCBfUUNFLCAwLCBbX2xvLCBfbV0sIFsoKSA9PiBRdWVyeUNvbXBpbGVFcnJvckxvY2F0aW9uLCAwXV07XG52YXIgUXVlcnlDb21waWxlRXJyb3JMb2NhdGlvbiA9IFszLCBuMCwgX1FDRUwsIDAsIFtfc0NPLCBfZUNPXSwgWzEsIDFdXTtcbnZhciBRdWVyeURlZmluaXRpb24gPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfUUQsXG4gICAgMCxcbiAgICBbX3FMLCBfcURJLCBfbiwgX3FTLCBfbE0sIF9sR05vXSxcbiAgICBbMCwgMCwgMCwgMCwgMSwgNjQgfCAwXSxcbl07XG52YXIgUXVlcnlJbmZvID0gWzMsIG4wLCBfUUksIDAsIFtfcUwsIF9xSSwgX3FTLCBfc3RhLCBfY1RyLCBfbEdOXSwgWzAsIDAsIDAsIDAsIDEsIDBdXTtcbnZhciBRdWVyeVN0YXRpc3RpY3MgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfUVMsXG4gICAgMCxcbiAgICBbX3JNLCBfclMsIF9lUlMsIF9iUywgX2VCUywgX2xHU10sXG4gICAgWzEsIDEsIDEsIDEsIDEsIDFdLFxuXTtcbnZhciBSZWNvcmRGaWVsZCA9IFszLCBuMCwgX1JGLCAwLCBbX24sIF9tYW5dLCBbMCwgMl1dO1xudmFyIFJlamVjdGVkRW50aXR5SW5mbyA9IFszLCBuMCwgX1JFSSwgMCwgW19lVHJdLCBbMF1dO1xudmFyIFJlamVjdGVkTG9nRXZlbnRzSW5mbyA9IFszLCBuMCwgX1JMRUksIDAsIFtfdE5MRVNJLCBfdE9MRUVJLCBfZUxFRUldLCBbMSwgMSwgMV1dO1xudmFyIFJlbmFtZUtleUVudHJ5ID0gWzMsIG4wLCBfUktFLCAwLCBbX2ssIF9yVGVuLCBfb0lFXSwgWzAsIDAsIDJdXTtcbnZhciBSZW5hbWVLZXlzID0gWzMsIG4wLCBfUkssIDAsIFtfZW5dLCBbKCkgPT4gUmVuYW1lS2V5RW50cmllc11dO1xudmFyIFJlc291cmNlQWxyZWFkeUV4aXN0c0V4Y2VwdGlvbiA9IFstMywgbjAsIF9SQUVFLCB7IFtfZV06IF9jIH0sIFtfbV0sIFswXV07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihSZXNvdXJjZUFscmVhZHlFeGlzdHNFeGNlcHRpb24sIFJlc291cmNlQWxyZWFkeUV4aXN0c0V4Y2VwdGlvbiQxKTtcbnZhciBSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uID0gWy0zLCBuMCwgX1JORkUsIHsgW19lXTogX2MgfSwgW19tXSwgWzBdXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKFJlc291cmNlTm90Rm91bmRFeGNlcHRpb24sIFJlc291cmNlTm90Rm91bmRFeGNlcHRpb24kMSk7XG52YXIgUmVzb3VyY2VQb2xpY3kgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfUlAsXG4gICAgMCxcbiAgICBbX3BOLCBfcEQsIF9sVVQsIF9wU28sIF9yQSwgX3JJZXZdLFxuICAgIFswLCAwLCAxLCAwLCAwLCAwXSxcbl07XG52YXIgUmVzdWx0RmllbGQgPSBbMywgbjAsIF9SRmUsIDAsIFtfZmllLCBfdl0sIFswLCAwXV07XG52YXIgUzNDb25maWd1cmF0aW9uID0gWzMsIG4wLCBfU0MsIDAsIFtfZEksIF9yQW9dLCBbMCwgMF1dO1xudmFyIFMzRGVsaXZlcnlDb25maWd1cmF0aW9uID0gWzMsIG4wLCBfU0RDLCAwLCBbX3NQLCBfZUhDUF0sIFswLCAyXV07XG52YXIgUzNUYWJsZUludGVncmF0aW9uU291cmNlID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1NUSVMsXG4gICAgMCxcbiAgICBbX2ksIF9kUywgX3N0YSwgX3NSdCwgX2NUU3JdLFxuICAgIFswLCAoKSA9PiBEYXRhU291cmNlLCAwLCAwLCAxXSxcbl07XG52YXIgU2NoZWR1bGVkUXVlcnlEZXN0aW5hdGlvbiA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9TUUQsXG4gICAgMCxcbiAgICBbX2RULCBfZEksIF9zdGEsIF9wSXIsIF9lTV0sXG4gICAgWzAsIDAsIDAsIDAsIDBdLFxuXTtcbnZhciBTY2hlZHVsZWRRdWVyeVN1bW1hcnkgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfU1FTLFxuICAgIDAsXG4gICAgW19zUUEsIF9uLCBfc3QsIF9sVFQsIF9sRVMsIF9zRSwgX3RpLCBfZEMsIF9jVCwgX2xVVF0sXG4gICAgWzAsIDAsIDAsIDEsIDAsIDAsIDAsICgpID0+IERlc3RpbmF0aW9uQ29uZmlndXJhdGlvbiwgMSwgMV0sXG5dO1xudmFyIFNlYXJjaGVkTG9nU3RyZWFtID0gWzMsIG4wLCBfU0xTLCAwLCBbX2xTTiwgX3NDZV0sIFswLCAyXV07XG52YXIgU2VydmljZVF1b3RhRXhjZWVkZWRFeGNlcHRpb24gPSBbLTMsIG4wLCBfU1FFRSwgeyBbX2VdOiBfYyB9LCBbX21dLCBbMF1dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoU2VydmljZVF1b3RhRXhjZWVkZWRFeGNlcHRpb24sIFNlcnZpY2VRdW90YUV4Y2VlZGVkRXhjZXB0aW9uJDEpO1xudmFyIFNlcnZpY2VVbmF2YWlsYWJsZUV4Y2VwdGlvbiA9IFstMywgbjAsIF9TVUUsIHsgW19lXTogX3NlciB9LCBbX21dLCBbMF1dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoU2VydmljZVVuYXZhaWxhYmxlRXhjZXB0aW9uLCBTZXJ2aWNlVW5hdmFpbGFibGVFeGNlcHRpb24kMSk7XG52YXIgU2Vzc2lvblN0cmVhbWluZ0V4Y2VwdGlvbiA9IFstMywgbjAsIF9TU0UsIHsgW19lXTogX2MgfSwgW19tXSwgWzBdXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKFNlc3Npb25TdHJlYW1pbmdFeGNlcHRpb24sIFNlc3Npb25TdHJlYW1pbmdFeGNlcHRpb24kMSk7XG52YXIgU2Vzc2lvblRpbWVvdXRFeGNlcHRpb24gPSBbLTMsIG4wLCBfU1RFLCB7IFtfZV06IF9jIH0sIFtfbV0sIFswXV07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihTZXNzaW9uVGltZW91dEV4Y2VwdGlvbiwgU2Vzc2lvblRpbWVvdXRFeGNlcHRpb24kMSk7XG52YXIgU3BsaXRTdHJpbmcgPSBbMywgbjAsIF9TUywgMCwgW19lbl0sIFsoKSA9PiBTcGxpdFN0cmluZ0VudHJpZXNdXTtcbnZhciBTcGxpdFN0cmluZ0VudHJ5ID0gWzMsIG4wLCBfU1NFcCwgMCwgW19zbywgX2RlbF0sIFswLCAwXV07XG52YXIgU3RhcnRMaXZlVGFpbFJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfU0xUUixcbiAgICAwLFxuICAgIFtfbEdJLCBfbFNObywgX2xTTlBvLCBfbEVGUF0sXG4gICAgWzY0IHwgMCwgNjQgfCAwLCA2NCB8IDAsIDBdLFxuXTtcbnZhciBTdGFydExpdmVUYWlsUmVzcG9uc2UgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfU0xUUnQsXG4gICAgMCxcbiAgICBbX3JTZV0sXG4gICAgW1soKSA9PiBTdGFydExpdmVUYWlsUmVzcG9uc2VTdHJlYW0sIDBdXSxcbl07XG52YXIgU3RhcnRRdWVyeVJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfU1FSLFxuICAgIDAsXG4gICAgW19xTCwgX2xHTiwgX2xHTm8sIF9sR0ksIF9zVHQsIF9lVG4sIF9xUywgX2xpXSxcbiAgICBbMCwgMCwgNjQgfCAwLCA2NCB8IDAsIDEsIDEsIDAsIDFdLFxuXTtcbnZhciBTdGFydFF1ZXJ5UmVzcG9uc2UgPSBbMywgbjAsIF9TUVJ0LCAwLCBbX3FJXSwgWzBdXTtcbnZhciBTdG9wUXVlcnlSZXF1ZXN0ID0gWzMsIG4wLCBfU1FSdG8sIDAsIFtfcUldLCBbMF1dO1xudmFyIFN0b3BRdWVyeVJlc3BvbnNlID0gWzMsIG4wLCBfU1FSdG9wLCAwLCBbX3N1Y10sIFsyXV07XG52YXIgU3Vic2NyaXB0aW9uRmlsdGVyID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1NGLFxuICAgIDAsXG4gICAgW19mTiwgX2xHTiwgX2ZQLCBfZEEsIF9yQW8sIF9kaXMsIF9hT1RMLCBfY1QsIF9mU0MsIF9lU0ZdLFxuICAgIFswLCAwLCAwLCAwLCAwLCAwLCAyLCAxLCAwLCA2NCB8IDBdLFxuXTtcbnZhciBTdWJzdGl0dXRlU3RyaW5nID0gWzMsIG4wLCBfU1N1LCAwLCBbX2VuXSwgWygpID0+IFN1YnN0aXR1dGVTdHJpbmdFbnRyaWVzXV07XG52YXIgU3Vic3RpdHV0ZVN0cmluZ0VudHJ5ID0gWzMsIG4wLCBfU1NFdSwgMCwgW19zbywgX2YsIF90b10sIFswLCAwLCAwXV07XG52YXIgU3VwcHJlc3Npb25QZXJpb2QgPSBbMywgbjAsIF9TUCwgMCwgW192LCBfc1V1XSwgWzEsIDBdXTtcbnZhciBUYWdMb2dHcm91cFJlcXVlc3QgPSBbMywgbjAsIF9UTEdSLCAwLCBbX2xHTiwgX3RhXSwgWzAsIDEyOCB8IDBdXTtcbnZhciBUYWdSZXNvdXJjZVJlcXVlc3QgPSBbMywgbjAsIF9UUlIsIDAsIFtfckEsIF90YV0sIFswLCAxMjggfCAwXV07XG52YXIgVGVzdE1ldHJpY0ZpbHRlclJlcXVlc3QgPSBbMywgbjAsIF9UTUZSLCAwLCBbX2ZQLCBfbEVNXSwgWzAsIDY0IHwgMF1dO1xudmFyIFRlc3RNZXRyaWNGaWx0ZXJSZXNwb25zZSA9IFszLCBuMCwgX1RNRlJlLCAwLCBbX21hdF0sIFsoKSA9PiBNZXRyaWNGaWx0ZXJNYXRjaGVzXV07XG52YXIgVGVzdFRyYW5zZm9ybWVyUmVxdWVzdCA9IFszLCBuMCwgX1RUUiwgMCwgW190QywgX2xFTV0sIFsoKSA9PiBQcm9jZXNzb3JzLCA2NCB8IDBdXTtcbnZhciBUZXN0VHJhbnNmb3JtZXJSZXNwb25zZSA9IFszLCBuMCwgX1RUUmUsIDAsIFtfdExdLCBbKCkgPT4gVHJhbnNmb3JtZWRMb2dzXV07XG52YXIgVGhyb3R0bGluZ0V4Y2VwdGlvbiA9IFstMywgbjAsIF9URSwgeyBbX2VdOiBfYyB9LCBbX21dLCBbMF1dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoVGhyb3R0bGluZ0V4Y2VwdGlvbiwgVGhyb3R0bGluZ0V4Y2VwdGlvbiQxKTtcbnZhciBUb29NYW55VGFnc0V4Y2VwdGlvbiA9IFstMywgbjAsIF9UTVRFLCB7IFtfZV06IF9jLCBbX2hFXTogNDAwIH0sIFtfbSwgX3JOXSwgWzAsIDBdXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKFRvb01hbnlUYWdzRXhjZXB0aW9uLCBUb29NYW55VGFnc0V4Y2VwdGlvbiQxKTtcbnZhciBUcmFuc2Zvcm1lZExvZ1JlY29yZCA9IFszLCBuMCwgX1RMUiwgMCwgW19lTiwgX2VNdiwgX3RFTV0sIFsxLCAwLCAwXV07XG52YXIgVHJpZ2dlckhpc3RvcnlSZWNvcmQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfVEhSLFxuICAgIDAsXG4gICAgW19xSSwgX2VTeCwgX3RUciwgX2VNLCBfZGVzdF0sXG4gICAgWzAsIDAsIDEsIDAsICgpID0+IFNjaGVkdWxlZFF1ZXJ5RGVzdGluYXRpb25MaXN0XSxcbl07XG52YXIgVHJpbVN0cmluZyA9IFszLCBuMCwgX1RTLCAwLCBbX3dLXSwgWzY0IHwgMF1dO1xudmFyIFR5cGVDb252ZXJ0ZXIgPSBbMywgbjAsIF9UQywgMCwgW19lbl0sIFsoKSA9PiBUeXBlQ29udmVydGVyRW50cmllc11dO1xudmFyIFR5cGVDb252ZXJ0ZXJFbnRyeSA9IFszLCBuMCwgX1RDRSwgMCwgW19rLCBfdHldLCBbMCwgMF1dO1xudmFyIFVucmVjb2duaXplZENsaWVudEV4Y2VwdGlvbiA9IFstMywgbjAsIF9VQ0UsIHsgW19lXTogX2MgfSwgW19tXSwgWzBdXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKFVucmVjb2duaXplZENsaWVudEV4Y2VwdGlvbiwgVW5yZWNvZ25pemVkQ2xpZW50RXhjZXB0aW9uJDEpO1xudmFyIFVudGFnTG9nR3JvdXBSZXF1ZXN0ID0gWzMsIG4wLCBfVUxHUiwgMCwgW19sR04sIF90YV0sIFswLCA2NCB8IDBdXTtcbnZhciBVbnRhZ1Jlc291cmNlUmVxdWVzdCA9IFszLCBuMCwgX1VSUiwgMCwgW19yQSwgX3RLXSwgWzAsIDY0IHwgMF1dO1xudmFyIFVwZGF0ZUFub21hbHlSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1VBUixcbiAgICAwLFxuICAgIFtfYUluLCBfcEksIF9hREEsIF9zVHUsIF9zUHUsIF9iXSxcbiAgICBbMCwgMCwgMCwgMCwgKCkgPT4gU3VwcHJlc3Npb25QZXJpb2QsIDJdLFxuXTtcbnZhciBVcGRhdGVEZWxpdmVyeUNvbmZpZ3VyYXRpb25SZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1VEQ1IsXG4gICAgMCxcbiAgICBbX2lkLCBfckYsIF9mRCwgX3NEQ10sXG4gICAgWzAsIDY0IHwgMCwgMCwgKCkgPT4gUzNEZWxpdmVyeUNvbmZpZ3VyYXRpb25dLFxuXTtcbnZhciBVcGRhdGVEZWxpdmVyeUNvbmZpZ3VyYXRpb25SZXNwb25zZSA9IFszLCBuMCwgX1VEQ1JwLCAwLCBbXSwgW11dO1xudmFyIFVwZGF0ZUxvZ0Fub21hbHlEZXRlY3RvclJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfVUxBRFIsXG4gICAgMCxcbiAgICBbX2FEQSwgX2VGLCBfZlAsIF9hVlQsIF9lbmFdLFxuICAgIFswLCAwLCAwLCAxLCAyXSxcbl07XG52YXIgVXBkYXRlU2NoZWR1bGVkUXVlcnlSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1VTUVIsXG4gICAgMCxcbiAgICBbX2ksIF9kLCBfcUwsIF9xUywgX2xHSSwgX3NFLCBfdGksIF9zVE8sIF9kQywgX3NTVCwgX3NFVCwgX2VSQSwgX3N0XSxcbiAgICBbMCwgMCwgMCwgMCwgNjQgfCAwLCAwLCAwLCAxLCAoKSA9PiBEZXN0aW5hdGlvbkNvbmZpZ3VyYXRpb24sIDEsIDEsIDAsIDBdLFxuXTtcbnZhciBVcGRhdGVTY2hlZHVsZWRRdWVyeVJlc3BvbnNlID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1VTUVJwLFxuICAgIDAsXG4gICAgW19zUUEsIF9uLCBfZCwgX3FMLCBfcVMsIF9sR0ksIF9zRSwgX3RpLCBfc1RPLCBfZEMsIF9zdCwgX2xUVCwgX2xFUywgX3NTVCwgX3NFVCwgX2VSQSwgX2NULCBfbFVUXSxcbiAgICBbMCwgMCwgMCwgMCwgMCwgNjQgfCAwLCAwLCAwLCAxLCAoKSA9PiBEZXN0aW5hdGlvbkNvbmZpZ3VyYXRpb24sIDAsIDEsIDAsIDEsIDEsIDAsIDEsIDFdLFxuXTtcbnZhciBVcHBlckNhc2VTdHJpbmcgPSBbMywgbjAsIF9VQ1MsIDAsIFtfd0tdLCBbNjQgfCAwXV07XG52YXIgVmFsaWRhdGlvbkV4Y2VwdGlvbiA9IFstMywgbjAsIF9WRSwgeyBbX2VdOiBfYyB9LCBbX21dLCBbMF1dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoVmFsaWRhdGlvbkV4Y2VwdGlvbiwgVmFsaWRhdGlvbkV4Y2VwdGlvbiQxKTtcbnZhciBfX1VuaXQgPSBcInVuaXRcIjtcbnZhciBDbG91ZFdhdGNoTG9nc1NlcnZpY2VFeGNlcHRpb24gPSBbLTMsIF9zbSwgXCJDbG91ZFdhdGNoTG9nc1NlcnZpY2VFeGNlcHRpb25cIiwgMCwgW10sIFtdXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKF9zbSkucmVnaXN0ZXJFcnJvcihDbG91ZFdhdGNoTG9nc1NlcnZpY2VFeGNlcHRpb24sIENsb3VkV2F0Y2hMb2dzU2VydmljZUV4Y2VwdGlvbiQxKTtcbnZhciBBY2NvdW50UG9saWNpZXMgPSBbMSwgbjAsIF9BUGMsIDAsICgpID0+IEFjY291bnRQb2xpY3ldO1xudmFyIEFkZEtleUVudHJpZXMgPSBbMSwgbjAsIF9BS0VkLCAwLCAoKSA9PiBBZGRLZXlFbnRyeV07XG52YXIgQWdncmVnYXRlTG9nR3JvdXBTdW1tYXJpZXMgPSBbMSwgbjAsIF9BTEdTZywgMCwgKCkgPT4gQWdncmVnYXRlTG9nR3JvdXBTdW1tYXJ5XTtcbnZhciBBbGxvd2VkRmllbGRzID0gWzEsIG4wLCBfQUYsIDAsICgpID0+IFJlY29yZEZpZWxkXTtcbnZhciBBbm9tYWxpZXMgPSBbMSwgbjAsIF9BbiwgMCwgKCkgPT4gQW5vbWFseV07XG52YXIgQW5vbWFseURldGVjdG9ycyA9IFsxLCBuMCwgX0FEbiwgMCwgKCkgPT4gQW5vbWFseURldGVjdG9yXTtcbnZhciBDb25maWd1cmF0aW9uVGVtcGxhdGVzID0gWzEsIG4wLCBfQ1RvLCAwLCAoKSA9PiBDb25maWd1cmF0aW9uVGVtcGxhdGVdO1xudmFyIENvcHlWYWx1ZUVudHJpZXMgPSBbMSwgbjAsIF9DVkVvLCAwLCAoKSA9PiBDb3B5VmFsdWVFbnRyeV07XG52YXIgRGF0YVNvdXJjZUZpbHRlcnMgPSBbMSwgbjAsIF9EU0ZhLCAwLCAoKSA9PiBEYXRhU291cmNlRmlsdGVyXTtcbnZhciBEZWxpdmVyaWVzID0gWzEsIG4wLCBfRGVsLCAwLCAoKSA9PiBEZWxpdmVyeV07XG52YXIgRGVsaXZlcnlEZXN0aW5hdGlvbnMgPSBbMSwgbjAsIF9ERGUsIDAsICgpID0+IERlbGl2ZXJ5RGVzdGluYXRpb25dO1xudmFyIERlbGl2ZXJ5U291cmNlcyA9IFsxLCBuMCwgX0RTZWwsIDAsICgpID0+IERlbGl2ZXJ5U291cmNlXTtcbnZhciBEZXN0aW5hdGlvbnMgPSBbMSwgbjAsIF9EZXMsIDAsICgpID0+IERlc3RpbmF0aW9uXTtcbnZhciBFeHBvcnRUYXNrcyA9IFsxLCBuMCwgX0VUeCwgMCwgKCkgPT4gRXhwb3J0VGFza107XG52YXIgRmllbGRJbmRleGVzID0gWzEsIG4wLCBfRklpLCAwLCAoKSA9PiBGaWVsZEluZGV4XTtcbnZhciBGaWx0ZXJlZExvZ0V2ZW50cyA9IFsxLCBuMCwgX0ZMRWksIDAsICgpID0+IEZpbHRlcmVkTG9nRXZlbnRdO1xudmFyIEdyb3VwaW5nSWRlbnRpZmllcnMgPSBbMSwgbjAsIF9HSXIsIDAsICgpID0+IEdyb3VwaW5nSWRlbnRpZmllcl07XG52YXIgSW1wb3J0QmF0Y2hMaXN0ID0gWzEsIG4wLCBfSUJMLCAwLCAoKSA9PiBJbXBvcnRCYXRjaF07XG52YXIgSW1wb3J0TGlzdCA9IFsxLCBuMCwgX0lMLCAwLCAoKSA9PiBJbXBvcnRdO1xudmFyIEluZGV4UG9saWNpZXMgPSBbMSwgbjAsIF9JUG4sIDAsICgpID0+IEluZGV4UG9saWN5XTtcbnZhciBJbnB1dExvZ0V2ZW50cyA9IFsxLCBuMCwgX0lMRW4sIDAsICgpID0+IElucHV0TG9nRXZlbnRdO1xudmFyIEludGVncmF0aW9uU3VtbWFyaWVzID0gWzEsIG4wLCBfSVNudCwgMCwgKCkgPT4gSW50ZWdyYXRpb25TdW1tYXJ5XTtcbnZhciBMaXZlVGFpbFNlc3Npb25SZXN1bHRzID0gWzEsIG4wLCBfTFRTUiwgMCwgKCkgPT4gTGl2ZVRhaWxTZXNzaW9uTG9nRXZlbnRdO1xudmFyIExvZ0ZpZWxkc0xpc3QgPSBbMSwgbjAsIF9MRkwsIDAsICgpID0+IExvZ0ZpZWxkc0xpc3RJdGVtXTtcbnZhciBMb2dHcm91cEZpZWxkTGlzdCA9IFsxLCBuMCwgX0xHRkwsIDAsICgpID0+IExvZ0dyb3VwRmllbGRdO1xudmFyIExvZ0dyb3VwcyA9IFsxLCBuMCwgX0xHbywgMCwgKCkgPT4gTG9nR3JvdXBdO1xudmFyIExvZ0dyb3VwU3VtbWFyaWVzID0gWzEsIG4wLCBfTEdTbywgMCwgKCkgPT4gTG9nR3JvdXBTdW1tYXJ5XTtcbnZhciBMb2dTYW1wbGVzID0gWzEsIG4wLCBfTFNvLCAwLCAoKSA9PiBMb2dFdmVudF07XG52YXIgTG9nU3RyZWFtcyA9IFsxLCBuMCwgX0xTb2csIDAsICgpID0+IExvZ1N0cmVhbV07XG52YXIgTWV0cmljRmlsdGVyTWF0Y2hlcyA9IFsxLCBuMCwgX01GTSwgMCwgKCkgPT4gTWV0cmljRmlsdGVyTWF0Y2hSZWNvcmRdO1xudmFyIE1ldHJpY0ZpbHRlcnMgPSBbMSwgbjAsIF9NRmUsIDAsICgpID0+IE1ldHJpY0ZpbHRlcl07XG52YXIgTWV0cmljVHJhbnNmb3JtYXRpb25zID0gWzEsIG4wLCBfTVRlLCAwLCAoKSA9PiBNZXRyaWNUcmFuc2Zvcm1hdGlvbl07XG52YXIgTW92ZUtleUVudHJpZXMgPSBbMSwgbjAsIF9NS0VvLCAwLCAoKSA9PiBNb3ZlS2V5RW50cnldO1xudmFyIE91dHB1dExvZ0V2ZW50cyA9IFsxLCBuMCwgX09MRXUsIDAsICgpID0+IE91dHB1dExvZ0V2ZW50XTtcbnZhciBQYXR0ZXJuVG9rZW5zID0gWzEsIG4wLCBfUFRhLCAwLCAoKSA9PiBQYXR0ZXJuVG9rZW5dO1xudmFyIFByb2Nlc3NvcnMgPSBbMSwgbjAsIF9Qcm8sIDAsICgpID0+IFByb2Nlc3Nvcl07XG52YXIgUXVlcnlEZWZpbml0aW9uTGlzdCA9IFsxLCBuMCwgX1FETCwgMCwgKCkgPT4gUXVlcnlEZWZpbml0aW9uXTtcbnZhciBRdWVyeUluZm9MaXN0ID0gWzEsIG4wLCBfUUlMLCAwLCAoKSA9PiBRdWVyeUluZm9dO1xudmFyIFF1ZXJ5UmVzdWx0cyA9IFsxLCBuMCwgX1FSLCAwLCAoKSA9PiBSZXN1bHRSb3dzXTtcbnZhciBSZW5hbWVLZXlFbnRyaWVzID0gWzEsIG4wLCBfUktFZSwgMCwgKCkgPT4gUmVuYW1lS2V5RW50cnldO1xudmFyIFJlc291cmNlUG9saWNpZXMgPSBbMSwgbjAsIF9SUGUsIDAsICgpID0+IFJlc291cmNlUG9saWN5XTtcbnZhciBSZXN1bHRSb3dzID0gWzEsIG4wLCBfUlIsIDAsICgpID0+IFJlc3VsdEZpZWxkXTtcbnZhciBTM1RhYmxlSW50ZWdyYXRpb25Tb3VyY2VzID0gWzEsIG4wLCBfU1RJU2EsIDAsICgpID0+IFMzVGFibGVJbnRlZ3JhdGlvblNvdXJjZV07XG52YXIgU2NoZWR1bGVkUXVlcnlEZXN0aW5hdGlvbkxpc3QgPSBbMSwgbjAsIF9TUURMLCAwLCAoKSA9PiBTY2hlZHVsZWRRdWVyeURlc3RpbmF0aW9uXTtcbnZhciBTY2hlZHVsZWRRdWVyeVN1bW1hcnlMaXN0ID0gWzEsIG4wLCBfU1FTTCwgMCwgKCkgPT4gU2NoZWR1bGVkUXVlcnlTdW1tYXJ5XTtcbnZhciBTZWFyY2hlZExvZ1N0cmVhbXMgPSBbMSwgbjAsIF9TTFNlLCAwLCAoKSA9PiBTZWFyY2hlZExvZ1N0cmVhbV07XG52YXIgU3BsaXRTdHJpbmdFbnRyaWVzID0gWzEsIG4wLCBfU1NFcGwsIDAsICgpID0+IFNwbGl0U3RyaW5nRW50cnldO1xudmFyIFN1YnNjcmlwdGlvbkZpbHRlcnMgPSBbMSwgbjAsIF9TRnUsIDAsICgpID0+IFN1YnNjcmlwdGlvbkZpbHRlcl07XG52YXIgU3Vic3RpdHV0ZVN0cmluZ0VudHJpZXMgPSBbMSwgbjAsIF9TU0V1YiwgMCwgKCkgPT4gU3Vic3RpdHV0ZVN0cmluZ0VudHJ5XTtcbnZhciBUcmFuc2Zvcm1lZExvZ3MgPSBbMSwgbjAsIF9UTCwgMCwgKCkgPT4gVHJhbnNmb3JtZWRMb2dSZWNvcmRdO1xudmFyIFRyaWdnZXJIaXN0b3J5UmVjb3JkTGlzdCA9IFsxLCBuMCwgX1RIUkwsIDAsICgpID0+IFRyaWdnZXJIaXN0b3J5UmVjb3JkXTtcbnZhciBUeXBlQ29udmVydGVyRW50cmllcyA9IFsxLCBuMCwgX1RDRXksIDAsICgpID0+IFR5cGVDb252ZXJ0ZXJFbnRyeV07XG52YXIgR2V0TG9nT2JqZWN0UmVzcG9uc2VTdHJlYW0gPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfR0xPUlMsXG4gICAgeyBbX3N0cl06IDEgfSxcbiAgICBbX2ZpLCBfSVNFbl0sXG4gICAgWygpID0+IEZpZWxkc0RhdGEsIFsoKSA9PiBJbnRlcm5hbFN0cmVhbWluZ0V4Y2VwdGlvbiwgMF1dLFxuXTtcbnZhciBJbnRlZ3JhdGlvbkRldGFpbHMgPSBbMywgbjAsIF9JRCwgMCwgW19vU0lEXSwgWygpID0+IE9wZW5TZWFyY2hJbnRlZ3JhdGlvbkRldGFpbHNdXTtcbnZhciBSZXNvdXJjZUNvbmZpZyA9IFszLCBuMCwgX1JDLCAwLCBbX29TUkNdLCBbKCkgPT4gT3BlblNlYXJjaFJlc291cmNlQ29uZmlnXV07XG52YXIgU3RhcnRMaXZlVGFpbFJlc3BvbnNlU3RyZWFtID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1NMVFJTLFxuICAgIHsgW19zdHJdOiAxIH0sXG4gICAgW19zU2UsIF9zVWUsIF9TVEUsIF9TU0VdLFxuICAgIFtcbiAgICAgICAgKCkgPT4gTGl2ZVRhaWxTZXNzaW9uU3RhcnQsXG4gICAgICAgICgpID0+IExpdmVUYWlsU2Vzc2lvblVwZGF0ZSxcbiAgICAgICAgWygpID0+IFNlc3Npb25UaW1lb3V0RXhjZXB0aW9uLCAwXSxcbiAgICAgICAgWygpID0+IFNlc3Npb25TdHJlYW1pbmdFeGNlcHRpb24sIDBdLFxuICAgIF0sXG5dO1xudmFyIEFzc29jaWF0ZUttc0tleSA9IFs5LCBuMCwgX0FLSywgMCwgKCkgPT4gQXNzb2NpYXRlS21zS2V5UmVxdWVzdCwgKCkgPT4gX19Vbml0XTtcbnZhciBBc3NvY2lhdGVTb3VyY2VUb1MzVGFibGVJbnRlZ3JhdGlvbiA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9BU1RTVEksXG4gICAgMCxcbiAgICAoKSA9PiBBc3NvY2lhdGVTb3VyY2VUb1MzVGFibGVJbnRlZ3JhdGlvblJlcXVlc3QsXG4gICAgKCkgPT4gQXNzb2NpYXRlU291cmNlVG9TM1RhYmxlSW50ZWdyYXRpb25SZXNwb25zZSxcbl07XG52YXIgQ2FuY2VsRXhwb3J0VGFzayA9IFs5LCBuMCwgX0NFVCwgMCwgKCkgPT4gQ2FuY2VsRXhwb3J0VGFza1JlcXVlc3QsICgpID0+IF9fVW5pdF07XG52YXIgQ2FuY2VsSW1wb3J0VGFzayA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9DSVQsXG4gICAgMCxcbiAgICAoKSA9PiBDYW5jZWxJbXBvcnRUYXNrUmVxdWVzdCxcbiAgICAoKSA9PiBDYW5jZWxJbXBvcnRUYXNrUmVzcG9uc2UsXG5dO1xudmFyIENyZWF0ZURlbGl2ZXJ5ID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0NELFxuICAgIDAsXG4gICAgKCkgPT4gQ3JlYXRlRGVsaXZlcnlSZXF1ZXN0LFxuICAgICgpID0+IENyZWF0ZURlbGl2ZXJ5UmVzcG9uc2UsXG5dO1xudmFyIENyZWF0ZUV4cG9ydFRhc2sgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfQ0VUcixcbiAgICAwLFxuICAgICgpID0+IENyZWF0ZUV4cG9ydFRhc2tSZXF1ZXN0LFxuICAgICgpID0+IENyZWF0ZUV4cG9ydFRhc2tSZXNwb25zZSxcbl07XG52YXIgQ3JlYXRlSW1wb3J0VGFzayA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9DSVRyLFxuICAgIDAsXG4gICAgKCkgPT4gQ3JlYXRlSW1wb3J0VGFza1JlcXVlc3QsXG4gICAgKCkgPT4gQ3JlYXRlSW1wb3J0VGFza1Jlc3BvbnNlLFxuXTtcbnZhciBDcmVhdGVMb2dBbm9tYWx5RGV0ZWN0b3IgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfQ0xBRCxcbiAgICAwLFxuICAgICgpID0+IENyZWF0ZUxvZ0Fub21hbHlEZXRlY3RvclJlcXVlc3QsXG4gICAgKCkgPT4gQ3JlYXRlTG9nQW5vbWFseURldGVjdG9yUmVzcG9uc2UsXG5dO1xudmFyIENyZWF0ZUxvZ0dyb3VwID0gWzksIG4wLCBfQ0xHLCAwLCAoKSA9PiBDcmVhdGVMb2dHcm91cFJlcXVlc3QsICgpID0+IF9fVW5pdF07XG52YXIgQ3JlYXRlTG9nU3RyZWFtID0gWzksIG4wLCBfQ0xTLCAwLCAoKSA9PiBDcmVhdGVMb2dTdHJlYW1SZXF1ZXN0LCAoKSA9PiBfX1VuaXRdO1xudmFyIENyZWF0ZVNjaGVkdWxlZFF1ZXJ5ID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0NTUSxcbiAgICAwLFxuICAgICgpID0+IENyZWF0ZVNjaGVkdWxlZFF1ZXJ5UmVxdWVzdCxcbiAgICAoKSA9PiBDcmVhdGVTY2hlZHVsZWRRdWVyeVJlc3BvbnNlLFxuXTtcbnZhciBEZWxldGVBY2NvdW50UG9saWN5ID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0RBUCxcbiAgICAwLFxuICAgICgpID0+IERlbGV0ZUFjY291bnRQb2xpY3lSZXF1ZXN0LFxuICAgICgpID0+IF9fVW5pdCxcbl07XG52YXIgRGVsZXRlRGF0YVByb3RlY3Rpb25Qb2xpY3kgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfRERQUCxcbiAgICAwLFxuICAgICgpID0+IERlbGV0ZURhdGFQcm90ZWN0aW9uUG9saWN5UmVxdWVzdCxcbiAgICAoKSA9PiBfX1VuaXQsXG5dO1xudmFyIERlbGV0ZURlbGl2ZXJ5ID0gWzksIG4wLCBfRERlbCwgMCwgKCkgPT4gRGVsZXRlRGVsaXZlcnlSZXF1ZXN0LCAoKSA9PiBfX1VuaXRdO1xudmFyIERlbGV0ZURlbGl2ZXJ5RGVzdGluYXRpb24gPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfRERELFxuICAgIDAsXG4gICAgKCkgPT4gRGVsZXRlRGVsaXZlcnlEZXN0aW5hdGlvblJlcXVlc3QsXG4gICAgKCkgPT4gX19Vbml0LFxuXTtcbnZhciBEZWxldGVEZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5ID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0RERFAsXG4gICAgMCxcbiAgICAoKSA9PiBEZWxldGVEZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5UmVxdWVzdCxcbiAgICAoKSA9PiBfX1VuaXQsXG5dO1xudmFyIERlbGV0ZURlbGl2ZXJ5U291cmNlID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0REUyxcbiAgICAwLFxuICAgICgpID0+IERlbGV0ZURlbGl2ZXJ5U291cmNlUmVxdWVzdCxcbiAgICAoKSA9PiBfX1VuaXQsXG5dO1xudmFyIERlbGV0ZURlc3RpbmF0aW9uID0gWzksIG4wLCBfRERlbGUsIDAsICgpID0+IERlbGV0ZURlc3RpbmF0aW9uUmVxdWVzdCwgKCkgPT4gX19Vbml0XTtcbnZhciBEZWxldGVJbmRleFBvbGljeSA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9ESVAsXG4gICAgMCxcbiAgICAoKSA9PiBEZWxldGVJbmRleFBvbGljeVJlcXVlc3QsXG4gICAgKCkgPT4gRGVsZXRlSW5kZXhQb2xpY3lSZXNwb25zZSxcbl07XG52YXIgRGVsZXRlSW50ZWdyYXRpb24gPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfREksXG4gICAgMCxcbiAgICAoKSA9PiBEZWxldGVJbnRlZ3JhdGlvblJlcXVlc3QsXG4gICAgKCkgPT4gRGVsZXRlSW50ZWdyYXRpb25SZXNwb25zZSxcbl07XG52YXIgRGVsZXRlTG9nQW5vbWFseURldGVjdG9yID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0RMQUQsXG4gICAgMCxcbiAgICAoKSA9PiBEZWxldGVMb2dBbm9tYWx5RGV0ZWN0b3JSZXF1ZXN0LFxuICAgICgpID0+IF9fVW5pdCxcbl07XG52YXIgRGVsZXRlTG9nR3JvdXAgPSBbOSwgbjAsIF9ETEcsIDAsICgpID0+IERlbGV0ZUxvZ0dyb3VwUmVxdWVzdCwgKCkgPT4gX19Vbml0XTtcbnZhciBEZWxldGVMb2dTdHJlYW0gPSBbOSwgbjAsIF9ETFMsIDAsICgpID0+IERlbGV0ZUxvZ1N0cmVhbVJlcXVlc3QsICgpID0+IF9fVW5pdF07XG52YXIgRGVsZXRlTWV0cmljRmlsdGVyID0gWzksIG4wLCBfRE1GLCAwLCAoKSA9PiBEZWxldGVNZXRyaWNGaWx0ZXJSZXF1ZXN0LCAoKSA9PiBfX1VuaXRdO1xudmFyIERlbGV0ZVF1ZXJ5RGVmaW5pdGlvbiA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9EUUQsXG4gICAgMCxcbiAgICAoKSA9PiBEZWxldGVRdWVyeURlZmluaXRpb25SZXF1ZXN0LFxuICAgICgpID0+IERlbGV0ZVF1ZXJ5RGVmaW5pdGlvblJlc3BvbnNlLFxuXTtcbnZhciBEZWxldGVSZXNvdXJjZVBvbGljeSA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9EUlAsXG4gICAgMCxcbiAgICAoKSA9PiBEZWxldGVSZXNvdXJjZVBvbGljeVJlcXVlc3QsXG4gICAgKCkgPT4gX19Vbml0LFxuXTtcbnZhciBEZWxldGVSZXRlbnRpb25Qb2xpY3kgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfRFJQZSxcbiAgICAwLFxuICAgICgpID0+IERlbGV0ZVJldGVudGlvblBvbGljeVJlcXVlc3QsXG4gICAgKCkgPT4gX19Vbml0LFxuXTtcbnZhciBEZWxldGVTY2hlZHVsZWRRdWVyeSA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9EU1EsXG4gICAgMCxcbiAgICAoKSA9PiBEZWxldGVTY2hlZHVsZWRRdWVyeVJlcXVlc3QsXG4gICAgKCkgPT4gRGVsZXRlU2NoZWR1bGVkUXVlcnlSZXNwb25zZSxcbl07XG52YXIgRGVsZXRlU3Vic2NyaXB0aW9uRmlsdGVyID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0RTRmUsXG4gICAgMCxcbiAgICAoKSA9PiBEZWxldGVTdWJzY3JpcHRpb25GaWx0ZXJSZXF1ZXN0LFxuICAgICgpID0+IF9fVW5pdCxcbl07XG52YXIgRGVsZXRlVHJhbnNmb3JtZXIgPSBbOSwgbjAsIF9EVCwgMCwgKCkgPT4gRGVsZXRlVHJhbnNmb3JtZXJSZXF1ZXN0LCAoKSA9PiBfX1VuaXRdO1xudmFyIERlc2NyaWJlQWNjb3VudFBvbGljaWVzID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0RBUGUsXG4gICAgMCxcbiAgICAoKSA9PiBEZXNjcmliZUFjY291bnRQb2xpY2llc1JlcXVlc3QsXG4gICAgKCkgPT4gRGVzY3JpYmVBY2NvdW50UG9saWNpZXNSZXNwb25zZSxcbl07XG52YXIgRGVzY3JpYmVDb25maWd1cmF0aW9uVGVtcGxhdGVzID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0RDVCxcbiAgICAwLFxuICAgICgpID0+IERlc2NyaWJlQ29uZmlndXJhdGlvblRlbXBsYXRlc1JlcXVlc3QsXG4gICAgKCkgPT4gRGVzY3JpYmVDb25maWd1cmF0aW9uVGVtcGxhdGVzUmVzcG9uc2UsXG5dO1xudmFyIERlc2NyaWJlRGVsaXZlcmllcyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9ERGVzLFxuICAgIDAsXG4gICAgKCkgPT4gRGVzY3JpYmVEZWxpdmVyaWVzUmVxdWVzdCxcbiAgICAoKSA9PiBEZXNjcmliZURlbGl2ZXJpZXNSZXNwb25zZSxcbl07XG52YXIgRGVzY3JpYmVEZWxpdmVyeURlc3RpbmF0aW9ucyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9ERERlLFxuICAgIDAsXG4gICAgKCkgPT4gRGVzY3JpYmVEZWxpdmVyeURlc3RpbmF0aW9uc1JlcXVlc3QsXG4gICAgKCkgPT4gRGVzY3JpYmVEZWxpdmVyeURlc3RpbmF0aW9uc1Jlc3BvbnNlLFxuXTtcbnZhciBEZXNjcmliZURlbGl2ZXJ5U291cmNlcyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9ERFNlLFxuICAgIDAsXG4gICAgKCkgPT4gRGVzY3JpYmVEZWxpdmVyeVNvdXJjZXNSZXF1ZXN0LFxuICAgICgpID0+IERlc2NyaWJlRGVsaXZlcnlTb3VyY2VzUmVzcG9uc2UsXG5dO1xudmFyIERlc2NyaWJlRGVzdGluYXRpb25zID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0REZXNjLFxuICAgIDAsXG4gICAgKCkgPT4gRGVzY3JpYmVEZXN0aW5hdGlvbnNSZXF1ZXN0LFxuICAgICgpID0+IERlc2NyaWJlRGVzdGluYXRpb25zUmVzcG9uc2UsXG5dO1xudmFyIERlc2NyaWJlRXhwb3J0VGFza3MgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfREVULFxuICAgIDAsXG4gICAgKCkgPT4gRGVzY3JpYmVFeHBvcnRUYXNrc1JlcXVlc3QsXG4gICAgKCkgPT4gRGVzY3JpYmVFeHBvcnRUYXNrc1Jlc3BvbnNlLFxuXTtcbnZhciBEZXNjcmliZUZpZWxkSW5kZXhlcyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9ERkksXG4gICAgMCxcbiAgICAoKSA9PiBEZXNjcmliZUZpZWxkSW5kZXhlc1JlcXVlc3QsXG4gICAgKCkgPT4gRGVzY3JpYmVGaWVsZEluZGV4ZXNSZXNwb25zZSxcbl07XG52YXIgRGVzY3JpYmVJbXBvcnRUYXNrQmF0Y2hlcyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9ESVRCLFxuICAgIDAsXG4gICAgKCkgPT4gRGVzY3JpYmVJbXBvcnRUYXNrQmF0Y2hlc1JlcXVlc3QsXG4gICAgKCkgPT4gRGVzY3JpYmVJbXBvcnRUYXNrQmF0Y2hlc1Jlc3BvbnNlLFxuXTtcbnZhciBEZXNjcmliZUltcG9ydFRhc2tzID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0RJVCxcbiAgICAwLFxuICAgICgpID0+IERlc2NyaWJlSW1wb3J0VGFza3NSZXF1ZXN0LFxuICAgICgpID0+IERlc2NyaWJlSW1wb3J0VGFza3NSZXNwb25zZSxcbl07XG52YXIgRGVzY3JpYmVJbmRleFBvbGljaWVzID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0RJUGUsXG4gICAgMCxcbiAgICAoKSA9PiBEZXNjcmliZUluZGV4UG9saWNpZXNSZXF1ZXN0LFxuICAgICgpID0+IERlc2NyaWJlSW5kZXhQb2xpY2llc1Jlc3BvbnNlLFxuXTtcbnZhciBEZXNjcmliZUxvZ0dyb3VwcyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9ETEdlLFxuICAgIDAsXG4gICAgKCkgPT4gRGVzY3JpYmVMb2dHcm91cHNSZXF1ZXN0LFxuICAgICgpID0+IERlc2NyaWJlTG9nR3JvdXBzUmVzcG9uc2UsXG5dO1xudmFyIERlc2NyaWJlTG9nU3RyZWFtcyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9ETFNlLFxuICAgIDAsXG4gICAgKCkgPT4gRGVzY3JpYmVMb2dTdHJlYW1zUmVxdWVzdCxcbiAgICAoKSA9PiBEZXNjcmliZUxvZ1N0cmVhbXNSZXNwb25zZSxcbl07XG52YXIgRGVzY3JpYmVNZXRyaWNGaWx0ZXJzID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0RNRmUsXG4gICAgMCxcbiAgICAoKSA9PiBEZXNjcmliZU1ldHJpY0ZpbHRlcnNSZXF1ZXN0LFxuICAgICgpID0+IERlc2NyaWJlTWV0cmljRmlsdGVyc1Jlc3BvbnNlLFxuXTtcbnZhciBEZXNjcmliZVF1ZXJpZXMgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfRFEsXG4gICAgMCxcbiAgICAoKSA9PiBEZXNjcmliZVF1ZXJpZXNSZXF1ZXN0LFxuICAgICgpID0+IERlc2NyaWJlUXVlcmllc1Jlc3BvbnNlLFxuXTtcbnZhciBEZXNjcmliZVF1ZXJ5RGVmaW5pdGlvbnMgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfRFFEZSxcbiAgICAwLFxuICAgICgpID0+IERlc2NyaWJlUXVlcnlEZWZpbml0aW9uc1JlcXVlc3QsXG4gICAgKCkgPT4gRGVzY3JpYmVRdWVyeURlZmluaXRpb25zUmVzcG9uc2UsXG5dO1xudmFyIERlc2NyaWJlUmVzb3VyY2VQb2xpY2llcyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9EUlBlcyxcbiAgICAwLFxuICAgICgpID0+IERlc2NyaWJlUmVzb3VyY2VQb2xpY2llc1JlcXVlc3QsXG4gICAgKCkgPT4gRGVzY3JpYmVSZXNvdXJjZVBvbGljaWVzUmVzcG9uc2UsXG5dO1xudmFyIERlc2NyaWJlU3Vic2NyaXB0aW9uRmlsdGVycyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9EU0ZlcyxcbiAgICAwLFxuICAgICgpID0+IERlc2NyaWJlU3Vic2NyaXB0aW9uRmlsdGVyc1JlcXVlc3QsXG4gICAgKCkgPT4gRGVzY3JpYmVTdWJzY3JpcHRpb25GaWx0ZXJzUmVzcG9uc2UsXG5dO1xudmFyIERpc2Fzc29jaWF0ZUttc0tleSA9IFs5LCBuMCwgX0RLSywgMCwgKCkgPT4gRGlzYXNzb2NpYXRlS21zS2V5UmVxdWVzdCwgKCkgPT4gX19Vbml0XTtcbnZhciBEaXNhc3NvY2lhdGVTb3VyY2VGcm9tUzNUYWJsZUludGVncmF0aW9uID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0RTRlNUSSxcbiAgICAwLFxuICAgICgpID0+IERpc2Fzc29jaWF0ZVNvdXJjZUZyb21TM1RhYmxlSW50ZWdyYXRpb25SZXF1ZXN0LFxuICAgICgpID0+IERpc2Fzc29jaWF0ZVNvdXJjZUZyb21TM1RhYmxlSW50ZWdyYXRpb25SZXNwb25zZSxcbl07XG52YXIgRmlsdGVyTG9nRXZlbnRzID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0ZMRWlsLFxuICAgIDAsXG4gICAgKCkgPT4gRmlsdGVyTG9nRXZlbnRzUmVxdWVzdCxcbiAgICAoKSA9PiBGaWx0ZXJMb2dFdmVudHNSZXNwb25zZSxcbl07XG52YXIgR2V0RGF0YVByb3RlY3Rpb25Qb2xpY3kgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfR0RQUCxcbiAgICAwLFxuICAgICgpID0+IEdldERhdGFQcm90ZWN0aW9uUG9saWN5UmVxdWVzdCxcbiAgICAoKSA9PiBHZXREYXRhUHJvdGVjdGlvblBvbGljeVJlc3BvbnNlLFxuXTtcbnZhciBHZXREZWxpdmVyeSA9IFs5LCBuMCwgX0dELCAwLCAoKSA9PiBHZXREZWxpdmVyeVJlcXVlc3QsICgpID0+IEdldERlbGl2ZXJ5UmVzcG9uc2VdO1xudmFyIEdldERlbGl2ZXJ5RGVzdGluYXRpb24gPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfR0RELFxuICAgIDAsXG4gICAgKCkgPT4gR2V0RGVsaXZlcnlEZXN0aW5hdGlvblJlcXVlc3QsXG4gICAgKCkgPT4gR2V0RGVsaXZlcnlEZXN0aW5hdGlvblJlc3BvbnNlLFxuXTtcbnZhciBHZXREZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5ID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0dERFAsXG4gICAgMCxcbiAgICAoKSA9PiBHZXREZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5UmVxdWVzdCxcbiAgICAoKSA9PiBHZXREZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5UmVzcG9uc2UsXG5dO1xudmFyIEdldERlbGl2ZXJ5U291cmNlID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0dEUyxcbiAgICAwLFxuICAgICgpID0+IEdldERlbGl2ZXJ5U291cmNlUmVxdWVzdCxcbiAgICAoKSA9PiBHZXREZWxpdmVyeVNvdXJjZVJlc3BvbnNlLFxuXTtcbnZhciBHZXRJbnRlZ3JhdGlvbiA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9HSWUsXG4gICAgMCxcbiAgICAoKSA9PiBHZXRJbnRlZ3JhdGlvblJlcXVlc3QsXG4gICAgKCkgPT4gR2V0SW50ZWdyYXRpb25SZXNwb25zZSxcbl07XG52YXIgR2V0TG9nQW5vbWFseURldGVjdG9yID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0dMQUQsXG4gICAgMCxcbiAgICAoKSA9PiBHZXRMb2dBbm9tYWx5RGV0ZWN0b3JSZXF1ZXN0LFxuICAgICgpID0+IEdldExvZ0Fub21hbHlEZXRlY3RvclJlc3BvbnNlLFxuXTtcbnZhciBHZXRMb2dFdmVudHMgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfR0xFLFxuICAgIDAsXG4gICAgKCkgPT4gR2V0TG9nRXZlbnRzUmVxdWVzdCxcbiAgICAoKSA9PiBHZXRMb2dFdmVudHNSZXNwb25zZSxcbl07XG52YXIgR2V0TG9nRmllbGRzID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0dMRixcbiAgICAwLFxuICAgICgpID0+IEdldExvZ0ZpZWxkc1JlcXVlc3QsXG4gICAgKCkgPT4gR2V0TG9nRmllbGRzUmVzcG9uc2UsXG5dO1xudmFyIEdldExvZ0dyb3VwRmllbGRzID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0dMR0YsXG4gICAgMCxcbiAgICAoKSA9PiBHZXRMb2dHcm91cEZpZWxkc1JlcXVlc3QsXG4gICAgKCkgPT4gR2V0TG9nR3JvdXBGaWVsZHNSZXNwb25zZSxcbl07XG52YXIgR2V0TG9nT2JqZWN0ID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0dMTyxcbiAgICB7IFtfZW5kXTogW1wic3RyZWFtaW5nLVwiXSB9LFxuICAgICgpID0+IEdldExvZ09iamVjdFJlcXVlc3QsXG4gICAgKCkgPT4gR2V0TG9nT2JqZWN0UmVzcG9uc2UsXG5dO1xudmFyIEdldExvZ1JlY29yZCA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9HTFIsXG4gICAgMCxcbiAgICAoKSA9PiBHZXRMb2dSZWNvcmRSZXF1ZXN0LFxuICAgICgpID0+IEdldExvZ1JlY29yZFJlc3BvbnNlLFxuXTtcbnZhciBHZXRRdWVyeVJlc3VsdHMgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfR1FSLFxuICAgIDAsXG4gICAgKCkgPT4gR2V0UXVlcnlSZXN1bHRzUmVxdWVzdCxcbiAgICAoKSA9PiBHZXRRdWVyeVJlc3VsdHNSZXNwb25zZSxcbl07XG52YXIgR2V0U2NoZWR1bGVkUXVlcnkgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfR1NRLFxuICAgIDAsXG4gICAgKCkgPT4gR2V0U2NoZWR1bGVkUXVlcnlSZXF1ZXN0LFxuICAgICgpID0+IEdldFNjaGVkdWxlZFF1ZXJ5UmVzcG9uc2UsXG5dO1xudmFyIEdldFNjaGVkdWxlZFF1ZXJ5SGlzdG9yeSA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9HU1FILFxuICAgIDAsXG4gICAgKCkgPT4gR2V0U2NoZWR1bGVkUXVlcnlIaXN0b3J5UmVxdWVzdCxcbiAgICAoKSA9PiBHZXRTY2hlZHVsZWRRdWVyeUhpc3RvcnlSZXNwb25zZSxcbl07XG52YXIgR2V0VHJhbnNmb3JtZXIgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfR1QsXG4gICAgMCxcbiAgICAoKSA9PiBHZXRUcmFuc2Zvcm1lclJlcXVlc3QsXG4gICAgKCkgPT4gR2V0VHJhbnNmb3JtZXJSZXNwb25zZSxcbl07XG52YXIgTGlzdEFnZ3JlZ2F0ZUxvZ0dyb3VwU3VtbWFyaWVzID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0xBTEdTLFxuICAgIDAsXG4gICAgKCkgPT4gTGlzdEFnZ3JlZ2F0ZUxvZ0dyb3VwU3VtbWFyaWVzUmVxdWVzdCxcbiAgICAoKSA9PiBMaXN0QWdncmVnYXRlTG9nR3JvdXBTdW1tYXJpZXNSZXNwb25zZSxcbl07XG52YXIgTGlzdEFub21hbGllcyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9MQSxcbiAgICAwLFxuICAgICgpID0+IExpc3RBbm9tYWxpZXNSZXF1ZXN0LFxuICAgICgpID0+IExpc3RBbm9tYWxpZXNSZXNwb25zZSxcbl07XG52YXIgTGlzdEludGVncmF0aW9ucyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9MSSxcbiAgICAwLFxuICAgICgpID0+IExpc3RJbnRlZ3JhdGlvbnNSZXF1ZXN0LFxuICAgICgpID0+IExpc3RJbnRlZ3JhdGlvbnNSZXNwb25zZSxcbl07XG52YXIgTGlzdExvZ0Fub21hbHlEZXRlY3RvcnMgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfTExBRCxcbiAgICAwLFxuICAgICgpID0+IExpc3RMb2dBbm9tYWx5RGV0ZWN0b3JzUmVxdWVzdCxcbiAgICAoKSA9PiBMaXN0TG9nQW5vbWFseURldGVjdG9yc1Jlc3BvbnNlLFxuXTtcbnZhciBMaXN0TG9nR3JvdXBzID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0xMRyxcbiAgICAwLFxuICAgICgpID0+IExpc3RMb2dHcm91cHNSZXF1ZXN0LFxuICAgICgpID0+IExpc3RMb2dHcm91cHNSZXNwb25zZSxcbl07XG52YXIgTGlzdExvZ0dyb3Vwc0ZvclF1ZXJ5ID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0xMR0ZRLFxuICAgIDAsXG4gICAgKCkgPT4gTGlzdExvZ0dyb3Vwc0ZvclF1ZXJ5UmVxdWVzdCxcbiAgICAoKSA9PiBMaXN0TG9nR3JvdXBzRm9yUXVlcnlSZXNwb25zZSxcbl07XG52YXIgTGlzdFNjaGVkdWxlZFF1ZXJpZXMgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfTFNRLFxuICAgIDAsXG4gICAgKCkgPT4gTGlzdFNjaGVkdWxlZFF1ZXJpZXNSZXF1ZXN0LFxuICAgICgpID0+IExpc3RTY2hlZHVsZWRRdWVyaWVzUmVzcG9uc2UsXG5dO1xudmFyIExpc3RTb3VyY2VzRm9yUzNUYWJsZUludGVncmF0aW9uID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0xTRlNUSSxcbiAgICAwLFxuICAgICgpID0+IExpc3RTb3VyY2VzRm9yUzNUYWJsZUludGVncmF0aW9uUmVxdWVzdCxcbiAgICAoKSA9PiBMaXN0U291cmNlc0ZvclMzVGFibGVJbnRlZ3JhdGlvblJlc3BvbnNlLFxuXTtcbnZhciBMaXN0VGFnc0ZvclJlc291cmNlID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0xURlIsXG4gICAgMCxcbiAgICAoKSA9PiBMaXN0VGFnc0ZvclJlc291cmNlUmVxdWVzdCxcbiAgICAoKSA9PiBMaXN0VGFnc0ZvclJlc291cmNlUmVzcG9uc2UsXG5dO1xudmFyIExpc3RUYWdzTG9nR3JvdXAgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfTFRMRyxcbiAgICAwLFxuICAgICgpID0+IExpc3RUYWdzTG9nR3JvdXBSZXF1ZXN0LFxuICAgICgpID0+IExpc3RUYWdzTG9nR3JvdXBSZXNwb25zZSxcbl07XG52YXIgUHV0QWNjb3VudFBvbGljeSA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9QQVAsXG4gICAgMCxcbiAgICAoKSA9PiBQdXRBY2NvdW50UG9saWN5UmVxdWVzdCxcbiAgICAoKSA9PiBQdXRBY2NvdW50UG9saWN5UmVzcG9uc2UsXG5dO1xudmFyIFB1dERhdGFQcm90ZWN0aW9uUG9saWN5ID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX1BEUFAsXG4gICAgMCxcbiAgICAoKSA9PiBQdXREYXRhUHJvdGVjdGlvblBvbGljeVJlcXVlc3QsXG4gICAgKCkgPT4gUHV0RGF0YVByb3RlY3Rpb25Qb2xpY3lSZXNwb25zZSxcbl07XG52YXIgUHV0RGVsaXZlcnlEZXN0aW5hdGlvbiA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9QREQsXG4gICAgMCxcbiAgICAoKSA9PiBQdXREZWxpdmVyeURlc3RpbmF0aW9uUmVxdWVzdCxcbiAgICAoKSA9PiBQdXREZWxpdmVyeURlc3RpbmF0aW9uUmVzcG9uc2UsXG5dO1xudmFyIFB1dERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3kgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfUEREUCxcbiAgICAwLFxuICAgICgpID0+IFB1dERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lSZXF1ZXN0LFxuICAgICgpID0+IFB1dERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lSZXNwb25zZSxcbl07XG52YXIgUHV0RGVsaXZlcnlTb3VyY2UgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfUERTLFxuICAgIDAsXG4gICAgKCkgPT4gUHV0RGVsaXZlcnlTb3VyY2VSZXF1ZXN0LFxuICAgICgpID0+IFB1dERlbGl2ZXJ5U291cmNlUmVzcG9uc2UsXG5dO1xudmFyIFB1dERlc3RpbmF0aW9uID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX1BELFxuICAgIDAsXG4gICAgKCkgPT4gUHV0RGVzdGluYXRpb25SZXF1ZXN0LFxuICAgICgpID0+IFB1dERlc3RpbmF0aW9uUmVzcG9uc2UsXG5dO1xudmFyIFB1dERlc3RpbmF0aW9uUG9saWN5ID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX1BEUCxcbiAgICAwLFxuICAgICgpID0+IFB1dERlc3RpbmF0aW9uUG9saWN5UmVxdWVzdCxcbiAgICAoKSA9PiBfX1VuaXQsXG5dO1xudmFyIFB1dEluZGV4UG9saWN5ID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX1BJUCxcbiAgICAwLFxuICAgICgpID0+IFB1dEluZGV4UG9saWN5UmVxdWVzdCxcbiAgICAoKSA9PiBQdXRJbmRleFBvbGljeVJlc3BvbnNlLFxuXTtcbnZhciBQdXRJbnRlZ3JhdGlvbiA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9QSSxcbiAgICAwLFxuICAgICgpID0+IFB1dEludGVncmF0aW9uUmVxdWVzdCxcbiAgICAoKSA9PiBQdXRJbnRlZ3JhdGlvblJlc3BvbnNlLFxuXTtcbnZhciBQdXRMb2dFdmVudHMgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfUExFLFxuICAgIDAsXG4gICAgKCkgPT4gUHV0TG9nRXZlbnRzUmVxdWVzdCxcbiAgICAoKSA9PiBQdXRMb2dFdmVudHNSZXNwb25zZSxcbl07XG52YXIgUHV0TG9nR3JvdXBEZWxldGlvblByb3RlY3Rpb24gPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfUExHRFAsXG4gICAgMCxcbiAgICAoKSA9PiBQdXRMb2dHcm91cERlbGV0aW9uUHJvdGVjdGlvblJlcXVlc3QsXG4gICAgKCkgPT4gX19Vbml0LFxuXTtcbnZhciBQdXRNZXRyaWNGaWx0ZXIgPSBbOSwgbjAsIF9QTUYsIDAsICgpID0+IFB1dE1ldHJpY0ZpbHRlclJlcXVlc3QsICgpID0+IF9fVW5pdF07XG52YXIgUHV0UXVlcnlEZWZpbml0aW9uID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX1BRRCxcbiAgICAwLFxuICAgICgpID0+IFB1dFF1ZXJ5RGVmaW5pdGlvblJlcXVlc3QsXG4gICAgKCkgPT4gUHV0UXVlcnlEZWZpbml0aW9uUmVzcG9uc2UsXG5dO1xudmFyIFB1dFJlc291cmNlUG9saWN5ID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX1BSUCxcbiAgICAwLFxuICAgICgpID0+IFB1dFJlc291cmNlUG9saWN5UmVxdWVzdCxcbiAgICAoKSA9PiBQdXRSZXNvdXJjZVBvbGljeVJlc3BvbnNlLFxuXTtcbnZhciBQdXRSZXRlbnRpb25Qb2xpY3kgPSBbOSwgbjAsIF9QUlB1LCAwLCAoKSA9PiBQdXRSZXRlbnRpb25Qb2xpY3lSZXF1ZXN0LCAoKSA9PiBfX1VuaXRdO1xudmFyIFB1dFN1YnNjcmlwdGlvbkZpbHRlciA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9QU0YsXG4gICAgMCxcbiAgICAoKSA9PiBQdXRTdWJzY3JpcHRpb25GaWx0ZXJSZXF1ZXN0LFxuICAgICgpID0+IF9fVW5pdCxcbl07XG52YXIgUHV0VHJhbnNmb3JtZXIgPSBbOSwgbjAsIF9QVHUsIDAsICgpID0+IFB1dFRyYW5zZm9ybWVyUmVxdWVzdCwgKCkgPT4gX19Vbml0XTtcbnZhciBTdGFydExpdmVUYWlsID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX1NMVCxcbiAgICB7IFtfZW5kXTogW1wic3RyZWFtaW5nLVwiXSB9LFxuICAgICgpID0+IFN0YXJ0TGl2ZVRhaWxSZXF1ZXN0LFxuICAgICgpID0+IFN0YXJ0TGl2ZVRhaWxSZXNwb25zZSxcbl07XG52YXIgU3RhcnRRdWVyeSA9IFs5LCBuMCwgX1NRLCAwLCAoKSA9PiBTdGFydFF1ZXJ5UmVxdWVzdCwgKCkgPT4gU3RhcnRRdWVyeVJlc3BvbnNlXTtcbnZhciBTdG9wUXVlcnkgPSBbOSwgbjAsIF9TUXQsIDAsICgpID0+IFN0b3BRdWVyeVJlcXVlc3QsICgpID0+IFN0b3BRdWVyeVJlc3BvbnNlXTtcbnZhciBUYWdMb2dHcm91cCA9IFs5LCBuMCwgX1RMRywgMCwgKCkgPT4gVGFnTG9nR3JvdXBSZXF1ZXN0LCAoKSA9PiBfX1VuaXRdO1xudmFyIFRhZ1Jlc291cmNlID0gWzksIG4wLCBfVFIsIDAsICgpID0+IFRhZ1Jlc291cmNlUmVxdWVzdCwgKCkgPT4gX19Vbml0XTtcbnZhciBUZXN0TWV0cmljRmlsdGVyID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX1RNRixcbiAgICAwLFxuICAgICgpID0+IFRlc3RNZXRyaWNGaWx0ZXJSZXF1ZXN0LFxuICAgICgpID0+IFRlc3RNZXRyaWNGaWx0ZXJSZXNwb25zZSxcbl07XG52YXIgVGVzdFRyYW5zZm9ybWVyID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX1RULFxuICAgIDAsXG4gICAgKCkgPT4gVGVzdFRyYW5zZm9ybWVyUmVxdWVzdCxcbiAgICAoKSA9PiBUZXN0VHJhbnNmb3JtZXJSZXNwb25zZSxcbl07XG52YXIgVW50YWdMb2dHcm91cCA9IFs5LCBuMCwgX1VMRywgMCwgKCkgPT4gVW50YWdMb2dHcm91cFJlcXVlc3QsICgpID0+IF9fVW5pdF07XG52YXIgVW50YWdSZXNvdXJjZSA9IFs5LCBuMCwgX1VSLCAwLCAoKSA9PiBVbnRhZ1Jlc291cmNlUmVxdWVzdCwgKCkgPT4gX19Vbml0XTtcbnZhciBVcGRhdGVBbm9tYWx5ID0gWzksIG4wLCBfVUEsIDAsICgpID0+IFVwZGF0ZUFub21hbHlSZXF1ZXN0LCAoKSA9PiBfX1VuaXRdO1xudmFyIFVwZGF0ZURlbGl2ZXJ5Q29uZmlndXJhdGlvbiA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9VREMsXG4gICAgMCxcbiAgICAoKSA9PiBVcGRhdGVEZWxpdmVyeUNvbmZpZ3VyYXRpb25SZXF1ZXN0LFxuICAgICgpID0+IFVwZGF0ZURlbGl2ZXJ5Q29uZmlndXJhdGlvblJlc3BvbnNlLFxuXTtcbnZhciBVcGRhdGVMb2dBbm9tYWx5RGV0ZWN0b3IgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfVUxBRCxcbiAgICAwLFxuICAgICgpID0+IFVwZGF0ZUxvZ0Fub21hbHlEZXRlY3RvclJlcXVlc3QsXG4gICAgKCkgPT4gX19Vbml0LFxuXTtcbnZhciBVcGRhdGVTY2hlZHVsZWRRdWVyeSA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9VU1EsXG4gICAgMCxcbiAgICAoKSA9PiBVcGRhdGVTY2hlZHVsZWRRdWVyeVJlcXVlc3QsXG4gICAgKCkgPT4gVXBkYXRlU2NoZWR1bGVkUXVlcnlSZXNwb25zZSxcbl07XG5cbmNsYXNzIEFzc29jaWF0ZUttc0tleUNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkxvZ3NfMjAxNDAzMjhcIiwgXCJBc3NvY2lhdGVLbXNLZXlcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoTG9nc0NsaWVudFwiLCBcIkFzc29jaWF0ZUttc0tleUNvbW1hbmRcIilcbiAgICAuc2MoQXNzb2NpYXRlS21zS2V5KVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgQXNzb2NpYXRlU291cmNlVG9TM1RhYmxlSW50ZWdyYXRpb25Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiQXNzb2NpYXRlU291cmNlVG9TM1RhYmxlSW50ZWdyYXRpb25cIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoTG9nc0NsaWVudFwiLCBcIkFzc29jaWF0ZVNvdXJjZVRvUzNUYWJsZUludGVncmF0aW9uQ29tbWFuZFwiKVxuICAgIC5zYyhBc3NvY2lhdGVTb3VyY2VUb1MzVGFibGVJbnRlZ3JhdGlvbilcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIENhbmNlbEV4cG9ydFRhc2tDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiQ2FuY2VsRXhwb3J0VGFza1wiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiQ2FuY2VsRXhwb3J0VGFza0NvbW1hbmRcIilcbiAgICAuc2MoQ2FuY2VsRXhwb3J0VGFzaylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIENhbmNlbEltcG9ydFRhc2tDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiQ2FuY2VsSW1wb3J0VGFza1wiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiQ2FuY2VsSW1wb3J0VGFza0NvbW1hbmRcIilcbiAgICAuc2MoQ2FuY2VsSW1wb3J0VGFzaylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIENyZWF0ZURlbGl2ZXJ5Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIkNyZWF0ZURlbGl2ZXJ5XCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJDcmVhdGVEZWxpdmVyeUNvbW1hbmRcIilcbiAgICAuc2MoQ3JlYXRlRGVsaXZlcnkpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBDcmVhdGVFeHBvcnRUYXNrQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIkNyZWF0ZUV4cG9ydFRhc2tcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoTG9nc0NsaWVudFwiLCBcIkNyZWF0ZUV4cG9ydFRhc2tDb21tYW5kXCIpXG4gICAgLnNjKENyZWF0ZUV4cG9ydFRhc2spXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBDcmVhdGVJbXBvcnRUYXNrQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIkNyZWF0ZUltcG9ydFRhc2tcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoTG9nc0NsaWVudFwiLCBcIkNyZWF0ZUltcG9ydFRhc2tDb21tYW5kXCIpXG4gICAgLnNjKENyZWF0ZUltcG9ydFRhc2spXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBDcmVhdGVMb2dBbm9tYWx5RGV0ZWN0b3JDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiQ3JlYXRlTG9nQW5vbWFseURldGVjdG9yXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJDcmVhdGVMb2dBbm9tYWx5RGV0ZWN0b3JDb21tYW5kXCIpXG4gICAgLnNjKENyZWF0ZUxvZ0Fub21hbHlEZXRlY3RvcilcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIENyZWF0ZUxvZ0dyb3VwQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIkNyZWF0ZUxvZ0dyb3VwXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJDcmVhdGVMb2dHcm91cENvbW1hbmRcIilcbiAgICAuc2MoQ3JlYXRlTG9nR3JvdXApXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBDcmVhdGVMb2dTdHJlYW1Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiQ3JlYXRlTG9nU3RyZWFtXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJDcmVhdGVMb2dTdHJlYW1Db21tYW5kXCIpXG4gICAgLnNjKENyZWF0ZUxvZ1N0cmVhbSlcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIENyZWF0ZVNjaGVkdWxlZFF1ZXJ5Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIkNyZWF0ZVNjaGVkdWxlZFF1ZXJ5XCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJDcmVhdGVTY2hlZHVsZWRRdWVyeUNvbW1hbmRcIilcbiAgICAuc2MoQ3JlYXRlU2NoZWR1bGVkUXVlcnkpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZWxldGVBY2NvdW50UG9saWN5Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIkRlbGV0ZUFjY291bnRQb2xpY3lcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoTG9nc0NsaWVudFwiLCBcIkRlbGV0ZUFjY291bnRQb2xpY3lDb21tYW5kXCIpXG4gICAgLnNjKERlbGV0ZUFjY291bnRQb2xpY3kpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZWxldGVEYXRhUHJvdGVjdGlvblBvbGljeUNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkxvZ3NfMjAxNDAzMjhcIiwgXCJEZWxldGVEYXRhUHJvdGVjdGlvblBvbGljeVwiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiRGVsZXRlRGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kXCIpXG4gICAgLnNjKERlbGV0ZURhdGFQcm90ZWN0aW9uUG9saWN5KVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgRGVsZXRlRGVsaXZlcnlDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiRGVsZXRlRGVsaXZlcnlcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoTG9nc0NsaWVudFwiLCBcIkRlbGV0ZURlbGl2ZXJ5Q29tbWFuZFwiKVxuICAgIC5zYyhEZWxldGVEZWxpdmVyeSlcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERlbGV0ZURlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiRGVsZXRlRGVsaXZlcnlEZXN0aW5hdGlvblwiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiRGVsZXRlRGVsaXZlcnlEZXN0aW5hdGlvbkNvbW1hbmRcIilcbiAgICAuc2MoRGVsZXRlRGVsaXZlcnlEZXN0aW5hdGlvbilcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERlbGV0ZURlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiRGVsZXRlRGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeVwiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiRGVsZXRlRGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeUNvbW1hbmRcIilcbiAgICAuc2MoRGVsZXRlRGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeSlcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERlbGV0ZURlbGl2ZXJ5U291cmNlQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIkRlbGV0ZURlbGl2ZXJ5U291cmNlXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJEZWxldGVEZWxpdmVyeVNvdXJjZUNvbW1hbmRcIilcbiAgICAuc2MoRGVsZXRlRGVsaXZlcnlTb3VyY2UpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZWxldGVEZXN0aW5hdGlvbkNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkxvZ3NfMjAxNDAzMjhcIiwgXCJEZWxldGVEZXN0aW5hdGlvblwiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiRGVsZXRlRGVzdGluYXRpb25Db21tYW5kXCIpXG4gICAgLnNjKERlbGV0ZURlc3RpbmF0aW9uKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgRGVsZXRlSW5kZXhQb2xpY3lDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiRGVsZXRlSW5kZXhQb2xpY3lcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoTG9nc0NsaWVudFwiLCBcIkRlbGV0ZUluZGV4UG9saWN5Q29tbWFuZFwiKVxuICAgIC5zYyhEZWxldGVJbmRleFBvbGljeSlcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERlbGV0ZUludGVncmF0aW9uQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIkRlbGV0ZUludGVncmF0aW9uXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJEZWxldGVJbnRlZ3JhdGlvbkNvbW1hbmRcIilcbiAgICAuc2MoRGVsZXRlSW50ZWdyYXRpb24pXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZWxldGVMb2dBbm9tYWx5RGV0ZWN0b3JDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiRGVsZXRlTG9nQW5vbWFseURldGVjdG9yXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJEZWxldGVMb2dBbm9tYWx5RGV0ZWN0b3JDb21tYW5kXCIpXG4gICAgLnNjKERlbGV0ZUxvZ0Fub21hbHlEZXRlY3RvcilcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERlbGV0ZUxvZ0dyb3VwQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIkRlbGV0ZUxvZ0dyb3VwXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJEZWxldGVMb2dHcm91cENvbW1hbmRcIilcbiAgICAuc2MoRGVsZXRlTG9nR3JvdXApXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZWxldGVMb2dTdHJlYW1Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiRGVsZXRlTG9nU3RyZWFtXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJEZWxldGVMb2dTdHJlYW1Db21tYW5kXCIpXG4gICAgLnNjKERlbGV0ZUxvZ1N0cmVhbSlcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERlbGV0ZU1ldHJpY0ZpbHRlckNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkxvZ3NfMjAxNDAzMjhcIiwgXCJEZWxldGVNZXRyaWNGaWx0ZXJcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoTG9nc0NsaWVudFwiLCBcIkRlbGV0ZU1ldHJpY0ZpbHRlckNvbW1hbmRcIilcbiAgICAuc2MoRGVsZXRlTWV0cmljRmlsdGVyKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgRGVsZXRlUXVlcnlEZWZpbml0aW9uQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIkRlbGV0ZVF1ZXJ5RGVmaW5pdGlvblwiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiRGVsZXRlUXVlcnlEZWZpbml0aW9uQ29tbWFuZFwiKVxuICAgIC5zYyhEZWxldGVRdWVyeURlZmluaXRpb24pXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZWxldGVSZXNvdXJjZVBvbGljeUNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkxvZ3NfMjAxNDAzMjhcIiwgXCJEZWxldGVSZXNvdXJjZVBvbGljeVwiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiRGVsZXRlUmVzb3VyY2VQb2xpY3lDb21tYW5kXCIpXG4gICAgLnNjKERlbGV0ZVJlc291cmNlUG9saWN5KVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgRGVsZXRlUmV0ZW50aW9uUG9saWN5Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIkRlbGV0ZVJldGVudGlvblBvbGljeVwiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiRGVsZXRlUmV0ZW50aW9uUG9saWN5Q29tbWFuZFwiKVxuICAgIC5zYyhEZWxldGVSZXRlbnRpb25Qb2xpY3kpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZWxldGVTY2hlZHVsZWRRdWVyeUNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkxvZ3NfMjAxNDAzMjhcIiwgXCJEZWxldGVTY2hlZHVsZWRRdWVyeVwiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiRGVsZXRlU2NoZWR1bGVkUXVlcnlDb21tYW5kXCIpXG4gICAgLnNjKERlbGV0ZVNjaGVkdWxlZFF1ZXJ5KVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgRGVsZXRlU3Vic2NyaXB0aW9uRmlsdGVyQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIkRlbGV0ZVN1YnNjcmlwdGlvbkZpbHRlclwiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiRGVsZXRlU3Vic2NyaXB0aW9uRmlsdGVyQ29tbWFuZFwiKVxuICAgIC5zYyhEZWxldGVTdWJzY3JpcHRpb25GaWx0ZXIpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZWxldGVUcmFuc2Zvcm1lckNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkxvZ3NfMjAxNDAzMjhcIiwgXCJEZWxldGVUcmFuc2Zvcm1lclwiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiRGVsZXRlVHJhbnNmb3JtZXJDb21tYW5kXCIpXG4gICAgLnNjKERlbGV0ZVRyYW5zZm9ybWVyKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgRGVzY3JpYmVBY2NvdW50UG9saWNpZXNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiRGVzY3JpYmVBY2NvdW50UG9saWNpZXNcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoTG9nc0NsaWVudFwiLCBcIkRlc2NyaWJlQWNjb3VudFBvbGljaWVzQ29tbWFuZFwiKVxuICAgIC5zYyhEZXNjcmliZUFjY291bnRQb2xpY2llcylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERlc2NyaWJlQ29uZmlndXJhdGlvblRlbXBsYXRlc0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkxvZ3NfMjAxNDAzMjhcIiwgXCJEZXNjcmliZUNvbmZpZ3VyYXRpb25UZW1wbGF0ZXNcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoTG9nc0NsaWVudFwiLCBcIkRlc2NyaWJlQ29uZmlndXJhdGlvblRlbXBsYXRlc0NvbW1hbmRcIilcbiAgICAuc2MoRGVzY3JpYmVDb25maWd1cmF0aW9uVGVtcGxhdGVzKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgRGVzY3JpYmVEZWxpdmVyaWVzQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIkRlc2NyaWJlRGVsaXZlcmllc1wiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiRGVzY3JpYmVEZWxpdmVyaWVzQ29tbWFuZFwiKVxuICAgIC5zYyhEZXNjcmliZURlbGl2ZXJpZXMpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZXNjcmliZURlbGl2ZXJ5RGVzdGluYXRpb25zQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIkRlc2NyaWJlRGVsaXZlcnlEZXN0aW5hdGlvbnNcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoTG9nc0NsaWVudFwiLCBcIkRlc2NyaWJlRGVsaXZlcnlEZXN0aW5hdGlvbnNDb21tYW5kXCIpXG4gICAgLnNjKERlc2NyaWJlRGVsaXZlcnlEZXN0aW5hdGlvbnMpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZXNjcmliZURlbGl2ZXJ5U291cmNlc0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkxvZ3NfMjAxNDAzMjhcIiwgXCJEZXNjcmliZURlbGl2ZXJ5U291cmNlc1wiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiRGVzY3JpYmVEZWxpdmVyeVNvdXJjZXNDb21tYW5kXCIpXG4gICAgLnNjKERlc2NyaWJlRGVsaXZlcnlTb3VyY2VzKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgRGVzY3JpYmVEZXN0aW5hdGlvbnNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiRGVzY3JpYmVEZXN0aW5hdGlvbnNcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoTG9nc0NsaWVudFwiLCBcIkRlc2NyaWJlRGVzdGluYXRpb25zQ29tbWFuZFwiKVxuICAgIC5zYyhEZXNjcmliZURlc3RpbmF0aW9ucylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERlc2NyaWJlRXhwb3J0VGFza3NDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiRGVzY3JpYmVFeHBvcnRUYXNrc1wiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiRGVzY3JpYmVFeHBvcnRUYXNrc0NvbW1hbmRcIilcbiAgICAuc2MoRGVzY3JpYmVFeHBvcnRUYXNrcylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERlc2NyaWJlRmllbGRJbmRleGVzQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIkRlc2NyaWJlRmllbGRJbmRleGVzXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJEZXNjcmliZUZpZWxkSW5kZXhlc0NvbW1hbmRcIilcbiAgICAuc2MoRGVzY3JpYmVGaWVsZEluZGV4ZXMpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZXNjcmliZUltcG9ydFRhc2tCYXRjaGVzQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIkRlc2NyaWJlSW1wb3J0VGFza0JhdGNoZXNcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoTG9nc0NsaWVudFwiLCBcIkRlc2NyaWJlSW1wb3J0VGFza0JhdGNoZXNDb21tYW5kXCIpXG4gICAgLnNjKERlc2NyaWJlSW1wb3J0VGFza0JhdGNoZXMpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZXNjcmliZUltcG9ydFRhc2tzQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIkRlc2NyaWJlSW1wb3J0VGFza3NcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoTG9nc0NsaWVudFwiLCBcIkRlc2NyaWJlSW1wb3J0VGFza3NDb21tYW5kXCIpXG4gICAgLnNjKERlc2NyaWJlSW1wb3J0VGFza3MpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZXNjcmliZUluZGV4UG9saWNpZXNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiRGVzY3JpYmVJbmRleFBvbGljaWVzXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJEZXNjcmliZUluZGV4UG9saWNpZXNDb21tYW5kXCIpXG4gICAgLnNjKERlc2NyaWJlSW5kZXhQb2xpY2llcylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERlc2NyaWJlTG9nR3JvdXBzQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIkRlc2NyaWJlTG9nR3JvdXBzXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJEZXNjcmliZUxvZ0dyb3Vwc0NvbW1hbmRcIilcbiAgICAuc2MoRGVzY3JpYmVMb2dHcm91cHMpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZXNjcmliZUxvZ1N0cmVhbXNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiRGVzY3JpYmVMb2dTdHJlYW1zXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJEZXNjcmliZUxvZ1N0cmVhbXNDb21tYW5kXCIpXG4gICAgLnNjKERlc2NyaWJlTG9nU3RyZWFtcylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERlc2NyaWJlTWV0cmljRmlsdGVyc0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkxvZ3NfMjAxNDAzMjhcIiwgXCJEZXNjcmliZU1ldHJpY0ZpbHRlcnNcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoTG9nc0NsaWVudFwiLCBcIkRlc2NyaWJlTWV0cmljRmlsdGVyc0NvbW1hbmRcIilcbiAgICAuc2MoRGVzY3JpYmVNZXRyaWNGaWx0ZXJzKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgRGVzY3JpYmVRdWVyaWVzQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIkRlc2NyaWJlUXVlcmllc1wiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiRGVzY3JpYmVRdWVyaWVzQ29tbWFuZFwiKVxuICAgIC5zYyhEZXNjcmliZVF1ZXJpZXMpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZXNjcmliZVF1ZXJ5RGVmaW5pdGlvbnNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiRGVzY3JpYmVRdWVyeURlZmluaXRpb25zXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJEZXNjcmliZVF1ZXJ5RGVmaW5pdGlvbnNDb21tYW5kXCIpXG4gICAgLnNjKERlc2NyaWJlUXVlcnlEZWZpbml0aW9ucylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERlc2NyaWJlUmVzb3VyY2VQb2xpY2llc0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkxvZ3NfMjAxNDAzMjhcIiwgXCJEZXNjcmliZVJlc291cmNlUG9saWNpZXNcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoTG9nc0NsaWVudFwiLCBcIkRlc2NyaWJlUmVzb3VyY2VQb2xpY2llc0NvbW1hbmRcIilcbiAgICAuc2MoRGVzY3JpYmVSZXNvdXJjZVBvbGljaWVzKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgRGVzY3JpYmVTdWJzY3JpcHRpb25GaWx0ZXJzQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIkRlc2NyaWJlU3Vic2NyaXB0aW9uRmlsdGVyc1wiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiRGVzY3JpYmVTdWJzY3JpcHRpb25GaWx0ZXJzQ29tbWFuZFwiKVxuICAgIC5zYyhEZXNjcmliZVN1YnNjcmlwdGlvbkZpbHRlcnMpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEaXNhc3NvY2lhdGVLbXNLZXlDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiRGlzYXNzb2NpYXRlS21zS2V5XCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJEaXNhc3NvY2lhdGVLbXNLZXlDb21tYW5kXCIpXG4gICAgLnNjKERpc2Fzc29jaWF0ZUttc0tleSlcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERpc2Fzc29jaWF0ZVNvdXJjZUZyb21TM1RhYmxlSW50ZWdyYXRpb25Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiRGlzYXNzb2NpYXRlU291cmNlRnJvbVMzVGFibGVJbnRlZ3JhdGlvblwiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiRGlzYXNzb2NpYXRlU291cmNlRnJvbVMzVGFibGVJbnRlZ3JhdGlvbkNvbW1hbmRcIilcbiAgICAuc2MoRGlzYXNzb2NpYXRlU291cmNlRnJvbVMzVGFibGVJbnRlZ3JhdGlvbilcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIEZpbHRlckxvZ0V2ZW50c0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkxvZ3NfMjAxNDAzMjhcIiwgXCJGaWx0ZXJMb2dFdmVudHNcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoTG9nc0NsaWVudFwiLCBcIkZpbHRlckxvZ0V2ZW50c0NvbW1hbmRcIilcbiAgICAuc2MoRmlsdGVyTG9nRXZlbnRzKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgR2V0RGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiR2V0RGF0YVByb3RlY3Rpb25Qb2xpY3lcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoTG9nc0NsaWVudFwiLCBcIkdldERhdGFQcm90ZWN0aW9uUG9saWN5Q29tbWFuZFwiKVxuICAgIC5zYyhHZXREYXRhUHJvdGVjdGlvblBvbGljeSlcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIEdldERlbGl2ZXJ5Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIkdldERlbGl2ZXJ5XCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJHZXREZWxpdmVyeUNvbW1hbmRcIilcbiAgICAuc2MoR2V0RGVsaXZlcnkpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBHZXREZWxpdmVyeURlc3RpbmF0aW9uQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIkdldERlbGl2ZXJ5RGVzdGluYXRpb25cIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoTG9nc0NsaWVudFwiLCBcIkdldERlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kXCIpXG4gICAgLnNjKEdldERlbGl2ZXJ5RGVzdGluYXRpb24pXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBHZXREZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIkdldERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoTG9nc0NsaWVudFwiLCBcIkdldERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kXCIpXG4gICAgLnNjKEdldERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3kpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBHZXREZWxpdmVyeVNvdXJjZUNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkxvZ3NfMjAxNDAzMjhcIiwgXCJHZXREZWxpdmVyeVNvdXJjZVwiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiR2V0RGVsaXZlcnlTb3VyY2VDb21tYW5kXCIpXG4gICAgLnNjKEdldERlbGl2ZXJ5U291cmNlKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgR2V0SW50ZWdyYXRpb25Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiR2V0SW50ZWdyYXRpb25cIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoTG9nc0NsaWVudFwiLCBcIkdldEludGVncmF0aW9uQ29tbWFuZFwiKVxuICAgIC5zYyhHZXRJbnRlZ3JhdGlvbilcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIEdldExvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkxvZ3NfMjAxNDAzMjhcIiwgXCJHZXRMb2dBbm9tYWx5RGV0ZWN0b3JcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoTG9nc0NsaWVudFwiLCBcIkdldExvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmRcIilcbiAgICAuc2MoR2V0TG9nQW5vbWFseURldGVjdG9yKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgR2V0TG9nRXZlbnRzQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIkdldExvZ0V2ZW50c1wiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiR2V0TG9nRXZlbnRzQ29tbWFuZFwiKVxuICAgIC5zYyhHZXRMb2dFdmVudHMpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBHZXRMb2dGaWVsZHNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiR2V0TG9nRmllbGRzXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJHZXRMb2dGaWVsZHNDb21tYW5kXCIpXG4gICAgLnNjKEdldExvZ0ZpZWxkcylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIEdldExvZ0dyb3VwRmllbGRzQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIkdldExvZ0dyb3VwRmllbGRzXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJHZXRMb2dHcm91cEZpZWxkc0NvbW1hbmRcIilcbiAgICAuc2MoR2V0TG9nR3JvdXBGaWVsZHMpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBHZXRMb2dPYmplY3RDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiR2V0TG9nT2JqZWN0XCIsIHtcbiAgICBldmVudFN0cmVhbToge1xuICAgICAgICBvdXRwdXQ6IHRydWUsXG4gICAgfSxcbn0pXG4gICAgLm4oXCJDbG91ZFdhdGNoTG9nc0NsaWVudFwiLCBcIkdldExvZ09iamVjdENvbW1hbmRcIilcbiAgICAuc2MoR2V0TG9nT2JqZWN0KVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgR2V0TG9nUmVjb3JkQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIkdldExvZ1JlY29yZFwiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiR2V0TG9nUmVjb3JkQ29tbWFuZFwiKVxuICAgIC5zYyhHZXRMb2dSZWNvcmQpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBHZXRRdWVyeVJlc3VsdHNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiR2V0UXVlcnlSZXN1bHRzXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJHZXRRdWVyeVJlc3VsdHNDb21tYW5kXCIpXG4gICAgLnNjKEdldFF1ZXJ5UmVzdWx0cylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIEdldFNjaGVkdWxlZFF1ZXJ5Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIkdldFNjaGVkdWxlZFF1ZXJ5XCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJHZXRTY2hlZHVsZWRRdWVyeUNvbW1hbmRcIilcbiAgICAuc2MoR2V0U2NoZWR1bGVkUXVlcnkpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBHZXRTY2hlZHVsZWRRdWVyeUhpc3RvcnlDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiR2V0U2NoZWR1bGVkUXVlcnlIaXN0b3J5XCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJHZXRTY2hlZHVsZWRRdWVyeUhpc3RvcnlDb21tYW5kXCIpXG4gICAgLnNjKEdldFNjaGVkdWxlZFF1ZXJ5SGlzdG9yeSlcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIEdldFRyYW5zZm9ybWVyQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIkdldFRyYW5zZm9ybWVyXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJHZXRUcmFuc2Zvcm1lckNvbW1hbmRcIilcbiAgICAuc2MoR2V0VHJhbnNmb3JtZXIpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBMaXN0QWdncmVnYXRlTG9nR3JvdXBTdW1tYXJpZXNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiTGlzdEFnZ3JlZ2F0ZUxvZ0dyb3VwU3VtbWFyaWVzXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJMaXN0QWdncmVnYXRlTG9nR3JvdXBTdW1tYXJpZXNDb21tYW5kXCIpXG4gICAgLnNjKExpc3RBZ2dyZWdhdGVMb2dHcm91cFN1bW1hcmllcylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIExpc3RBbm9tYWxpZXNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiTGlzdEFub21hbGllc1wiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiTGlzdEFub21hbGllc0NvbW1hbmRcIilcbiAgICAuc2MoTGlzdEFub21hbGllcylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIExpc3RJbnRlZ3JhdGlvbnNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiTGlzdEludGVncmF0aW9uc1wiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiTGlzdEludGVncmF0aW9uc0NvbW1hbmRcIilcbiAgICAuc2MoTGlzdEludGVncmF0aW9ucylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIExpc3RMb2dBbm9tYWx5RGV0ZWN0b3JzQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIkxpc3RMb2dBbm9tYWx5RGV0ZWN0b3JzXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJMaXN0TG9nQW5vbWFseURldGVjdG9yc0NvbW1hbmRcIilcbiAgICAuc2MoTGlzdExvZ0Fub21hbHlEZXRlY3RvcnMpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBMaXN0TG9nR3JvdXBzQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIkxpc3RMb2dHcm91cHNcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoTG9nc0NsaWVudFwiLCBcIkxpc3RMb2dHcm91cHNDb21tYW5kXCIpXG4gICAgLnNjKExpc3RMb2dHcm91cHMpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBMaXN0TG9nR3JvdXBzRm9yUXVlcnlDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiTGlzdExvZ0dyb3Vwc0ZvclF1ZXJ5XCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJMaXN0TG9nR3JvdXBzRm9yUXVlcnlDb21tYW5kXCIpXG4gICAgLnNjKExpc3RMb2dHcm91cHNGb3JRdWVyeSlcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIExpc3RTY2hlZHVsZWRRdWVyaWVzQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIkxpc3RTY2hlZHVsZWRRdWVyaWVzXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJMaXN0U2NoZWR1bGVkUXVlcmllc0NvbW1hbmRcIilcbiAgICAuc2MoTGlzdFNjaGVkdWxlZFF1ZXJpZXMpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBMaXN0U291cmNlc0ZvclMzVGFibGVJbnRlZ3JhdGlvbkNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkxvZ3NfMjAxNDAzMjhcIiwgXCJMaXN0U291cmNlc0ZvclMzVGFibGVJbnRlZ3JhdGlvblwiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiTGlzdFNvdXJjZXNGb3JTM1RhYmxlSW50ZWdyYXRpb25Db21tYW5kXCIpXG4gICAgLnNjKExpc3RTb3VyY2VzRm9yUzNUYWJsZUludGVncmF0aW9uKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkxvZ3NfMjAxNDAzMjhcIiwgXCJMaXN0VGFnc0ZvclJlc291cmNlXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZFwiKVxuICAgIC5zYyhMaXN0VGFnc0ZvclJlc291cmNlKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgTGlzdFRhZ3NMb2dHcm91cENvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkxvZ3NfMjAxNDAzMjhcIiwgXCJMaXN0VGFnc0xvZ0dyb3VwXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJMaXN0VGFnc0xvZ0dyb3VwQ29tbWFuZFwiKVxuICAgIC5zYyhMaXN0VGFnc0xvZ0dyb3VwKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgUHV0QWNjb3VudFBvbGljeUNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkxvZ3NfMjAxNDAzMjhcIiwgXCJQdXRBY2NvdW50UG9saWN5XCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJQdXRBY2NvdW50UG9saWN5Q29tbWFuZFwiKVxuICAgIC5zYyhQdXRBY2NvdW50UG9saWN5KVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgUHV0RGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiUHV0RGF0YVByb3RlY3Rpb25Qb2xpY3lcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoTG9nc0NsaWVudFwiLCBcIlB1dERhdGFQcm90ZWN0aW9uUG9saWN5Q29tbWFuZFwiKVxuICAgIC5zYyhQdXREYXRhUHJvdGVjdGlvblBvbGljeSlcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFB1dERlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiUHV0RGVsaXZlcnlEZXN0aW5hdGlvblwiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiUHV0RGVsaXZlcnlEZXN0aW5hdGlvbkNvbW1hbmRcIilcbiAgICAuc2MoUHV0RGVsaXZlcnlEZXN0aW5hdGlvbilcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFB1dERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiUHV0RGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeVwiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiUHV0RGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeUNvbW1hbmRcIilcbiAgICAuc2MoUHV0RGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeSlcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFB1dERlbGl2ZXJ5U291cmNlQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIlB1dERlbGl2ZXJ5U291cmNlXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJQdXREZWxpdmVyeVNvdXJjZUNvbW1hbmRcIilcbiAgICAuc2MoUHV0RGVsaXZlcnlTb3VyY2UpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBQdXREZXN0aW5hdGlvbkNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkxvZ3NfMjAxNDAzMjhcIiwgXCJQdXREZXN0aW5hdGlvblwiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiUHV0RGVzdGluYXRpb25Db21tYW5kXCIpXG4gICAgLnNjKFB1dERlc3RpbmF0aW9uKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgUHV0RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiUHV0RGVzdGluYXRpb25Qb2xpY3lcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoTG9nc0NsaWVudFwiLCBcIlB1dERlc3RpbmF0aW9uUG9saWN5Q29tbWFuZFwiKVxuICAgIC5zYyhQdXREZXN0aW5hdGlvblBvbGljeSlcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFB1dEluZGV4UG9saWN5Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIlB1dEluZGV4UG9saWN5XCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJQdXRJbmRleFBvbGljeUNvbW1hbmRcIilcbiAgICAuc2MoUHV0SW5kZXhQb2xpY3kpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBQdXRJbnRlZ3JhdGlvbkNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkxvZ3NfMjAxNDAzMjhcIiwgXCJQdXRJbnRlZ3JhdGlvblwiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiUHV0SW50ZWdyYXRpb25Db21tYW5kXCIpXG4gICAgLnNjKFB1dEludGVncmF0aW9uKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgUHV0TG9nRXZlbnRzQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIlB1dExvZ0V2ZW50c1wiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiUHV0TG9nRXZlbnRzQ29tbWFuZFwiKVxuICAgIC5zYyhQdXRMb2dFdmVudHMpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBQdXRMb2dHcm91cERlbGV0aW9uUHJvdGVjdGlvbkNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkxvZ3NfMjAxNDAzMjhcIiwgXCJQdXRMb2dHcm91cERlbGV0aW9uUHJvdGVjdGlvblwiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiUHV0TG9nR3JvdXBEZWxldGlvblByb3RlY3Rpb25Db21tYW5kXCIpXG4gICAgLnNjKFB1dExvZ0dyb3VwRGVsZXRpb25Qcm90ZWN0aW9uKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgUHV0TWV0cmljRmlsdGVyQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIlB1dE1ldHJpY0ZpbHRlclwiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiUHV0TWV0cmljRmlsdGVyQ29tbWFuZFwiKVxuICAgIC5zYyhQdXRNZXRyaWNGaWx0ZXIpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBQdXRRdWVyeURlZmluaXRpb25Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiUHV0UXVlcnlEZWZpbml0aW9uXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJQdXRRdWVyeURlZmluaXRpb25Db21tYW5kXCIpXG4gICAgLnNjKFB1dFF1ZXJ5RGVmaW5pdGlvbilcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFB1dFJlc291cmNlUG9saWN5Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIlB1dFJlc291cmNlUG9saWN5XCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJQdXRSZXNvdXJjZVBvbGljeUNvbW1hbmRcIilcbiAgICAuc2MoUHV0UmVzb3VyY2VQb2xpY3kpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBQdXRSZXRlbnRpb25Qb2xpY3lDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiUHV0UmV0ZW50aW9uUG9saWN5XCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJQdXRSZXRlbnRpb25Qb2xpY3lDb21tYW5kXCIpXG4gICAgLnNjKFB1dFJldGVudGlvblBvbGljeSlcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFB1dFN1YnNjcmlwdGlvbkZpbHRlckNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkxvZ3NfMjAxNDAzMjhcIiwgXCJQdXRTdWJzY3JpcHRpb25GaWx0ZXJcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoTG9nc0NsaWVudFwiLCBcIlB1dFN1YnNjcmlwdGlvbkZpbHRlckNvbW1hbmRcIilcbiAgICAuc2MoUHV0U3Vic2NyaXB0aW9uRmlsdGVyKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgUHV0VHJhbnNmb3JtZXJDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiUHV0VHJhbnNmb3JtZXJcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoTG9nc0NsaWVudFwiLCBcIlB1dFRyYW5zZm9ybWVyQ29tbWFuZFwiKVxuICAgIC5zYyhQdXRUcmFuc2Zvcm1lcilcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFN0YXJ0TGl2ZVRhaWxDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiU3RhcnRMaXZlVGFpbFwiLCB7XG4gICAgZXZlbnRTdHJlYW06IHtcbiAgICAgICAgb3V0cHV0OiB0cnVlLFxuICAgIH0sXG59KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJTdGFydExpdmVUYWlsQ29tbWFuZFwiKVxuICAgIC5zYyhTdGFydExpdmVUYWlsKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgU3RhcnRRdWVyeUNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkxvZ3NfMjAxNDAzMjhcIiwgXCJTdGFydFF1ZXJ5XCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJTdGFydFF1ZXJ5Q29tbWFuZFwiKVxuICAgIC5zYyhTdGFydFF1ZXJ5KVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgU3RvcFF1ZXJ5Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIlN0b3BRdWVyeVwiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiU3RvcFF1ZXJ5Q29tbWFuZFwiKVxuICAgIC5zYyhTdG9wUXVlcnkpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBUYWdMb2dHcm91cENvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkxvZ3NfMjAxNDAzMjhcIiwgXCJUYWdMb2dHcm91cFwiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiVGFnTG9nR3JvdXBDb21tYW5kXCIpXG4gICAgLnNjKFRhZ0xvZ0dyb3VwKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgVGFnUmVzb3VyY2VDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiVGFnUmVzb3VyY2VcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoTG9nc0NsaWVudFwiLCBcIlRhZ1Jlc291cmNlQ29tbWFuZFwiKVxuICAgIC5zYyhUYWdSZXNvdXJjZSlcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFRlc3RNZXRyaWNGaWx0ZXJDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiVGVzdE1ldHJpY0ZpbHRlclwiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiVGVzdE1ldHJpY0ZpbHRlckNvbW1hbmRcIilcbiAgICAuc2MoVGVzdE1ldHJpY0ZpbHRlcilcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFRlc3RUcmFuc2Zvcm1lckNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkxvZ3NfMjAxNDAzMjhcIiwgXCJUZXN0VHJhbnNmb3JtZXJcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoTG9nc0NsaWVudFwiLCBcIlRlc3RUcmFuc2Zvcm1lckNvbW1hbmRcIilcbiAgICAuc2MoVGVzdFRyYW5zZm9ybWVyKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgVW50YWdMb2dHcm91cENvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkxvZ3NfMjAxNDAzMjhcIiwgXCJVbnRhZ0xvZ0dyb3VwXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJVbnRhZ0xvZ0dyb3VwQ29tbWFuZFwiKVxuICAgIC5zYyhVbnRhZ0xvZ0dyb3VwKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgVW50YWdSZXNvdXJjZUNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkxvZ3NfMjAxNDAzMjhcIiwgXCJVbnRhZ1Jlc291cmNlXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJVbnRhZ1Jlc291cmNlQ29tbWFuZFwiKVxuICAgIC5zYyhVbnRhZ1Jlc291cmNlKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgVXBkYXRlQW5vbWFseUNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkxvZ3NfMjAxNDAzMjhcIiwgXCJVcGRhdGVBbm9tYWx5XCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJVcGRhdGVBbm9tYWx5Q29tbWFuZFwiKVxuICAgIC5zYyhVcGRhdGVBbm9tYWx5KVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgVXBkYXRlRGVsaXZlcnlDb25maWd1cmF0aW9uQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIlVwZGF0ZURlbGl2ZXJ5Q29uZmlndXJhdGlvblwiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiVXBkYXRlRGVsaXZlcnlDb25maWd1cmF0aW9uQ29tbWFuZFwiKVxuICAgIC5zYyhVcGRhdGVEZWxpdmVyeUNvbmZpZ3VyYXRpb24pXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBVcGRhdGVMb2dBbm9tYWx5RGV0ZWN0b3JDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiVXBkYXRlTG9nQW5vbWFseURldGVjdG9yXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJVcGRhdGVMb2dBbm9tYWx5RGV0ZWN0b3JDb21tYW5kXCIpXG4gICAgLnNjKFVwZGF0ZUxvZ0Fub21hbHlEZXRlY3RvcilcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFVwZGF0ZVNjaGVkdWxlZFF1ZXJ5Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIlVwZGF0ZVNjaGVkdWxlZFF1ZXJ5XCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJVcGRhdGVTY2hlZHVsZWRRdWVyeUNvbW1hbmRcIilcbiAgICAuc2MoVXBkYXRlU2NoZWR1bGVkUXVlcnkpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jb25zdCBjb21tYW5kcyA9IHtcbiAgICBBc3NvY2lhdGVLbXNLZXlDb21tYW5kLFxuICAgIEFzc29jaWF0ZVNvdXJjZVRvUzNUYWJsZUludGVncmF0aW9uQ29tbWFuZCxcbiAgICBDYW5jZWxFeHBvcnRUYXNrQ29tbWFuZCxcbiAgICBDYW5jZWxJbXBvcnRUYXNrQ29tbWFuZCxcbiAgICBDcmVhdGVEZWxpdmVyeUNvbW1hbmQsXG4gICAgQ3JlYXRlRXhwb3J0VGFza0NvbW1hbmQsXG4gICAgQ3JlYXRlSW1wb3J0VGFza0NvbW1hbmQsXG4gICAgQ3JlYXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZCxcbiAgICBDcmVhdGVMb2dHcm91cENvbW1hbmQsXG4gICAgQ3JlYXRlTG9nU3RyZWFtQ29tbWFuZCxcbiAgICBDcmVhdGVTY2hlZHVsZWRRdWVyeUNvbW1hbmQsXG4gICAgRGVsZXRlQWNjb3VudFBvbGljeUNvbW1hbmQsXG4gICAgRGVsZXRlRGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kLFxuICAgIERlbGV0ZURlbGl2ZXJ5Q29tbWFuZCxcbiAgICBEZWxldGVEZWxpdmVyeURlc3RpbmF0aW9uQ29tbWFuZCxcbiAgICBEZWxldGVEZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5Q29tbWFuZCxcbiAgICBEZWxldGVEZWxpdmVyeVNvdXJjZUNvbW1hbmQsXG4gICAgRGVsZXRlRGVzdGluYXRpb25Db21tYW5kLFxuICAgIERlbGV0ZUluZGV4UG9saWN5Q29tbWFuZCxcbiAgICBEZWxldGVJbnRlZ3JhdGlvbkNvbW1hbmQsXG4gICAgRGVsZXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZCxcbiAgICBEZWxldGVMb2dHcm91cENvbW1hbmQsXG4gICAgRGVsZXRlTG9nU3RyZWFtQ29tbWFuZCxcbiAgICBEZWxldGVNZXRyaWNGaWx0ZXJDb21tYW5kLFxuICAgIERlbGV0ZVF1ZXJ5RGVmaW5pdGlvbkNvbW1hbmQsXG4gICAgRGVsZXRlUmVzb3VyY2VQb2xpY3lDb21tYW5kLFxuICAgIERlbGV0ZVJldGVudGlvblBvbGljeUNvbW1hbmQsXG4gICAgRGVsZXRlU2NoZWR1bGVkUXVlcnlDb21tYW5kLFxuICAgIERlbGV0ZVN1YnNjcmlwdGlvbkZpbHRlckNvbW1hbmQsXG4gICAgRGVsZXRlVHJhbnNmb3JtZXJDb21tYW5kLFxuICAgIERlc2NyaWJlQWNjb3VudFBvbGljaWVzQ29tbWFuZCxcbiAgICBEZXNjcmliZUNvbmZpZ3VyYXRpb25UZW1wbGF0ZXNDb21tYW5kLFxuICAgIERlc2NyaWJlRGVsaXZlcmllc0NvbW1hbmQsXG4gICAgRGVzY3JpYmVEZWxpdmVyeURlc3RpbmF0aW9uc0NvbW1hbmQsXG4gICAgRGVzY3JpYmVEZWxpdmVyeVNvdXJjZXNDb21tYW5kLFxuICAgIERlc2NyaWJlRGVzdGluYXRpb25zQ29tbWFuZCxcbiAgICBEZXNjcmliZUV4cG9ydFRhc2tzQ29tbWFuZCxcbiAgICBEZXNjcmliZUZpZWxkSW5kZXhlc0NvbW1hbmQsXG4gICAgRGVzY3JpYmVJbXBvcnRUYXNrQmF0Y2hlc0NvbW1hbmQsXG4gICAgRGVzY3JpYmVJbXBvcnRUYXNrc0NvbW1hbmQsXG4gICAgRGVzY3JpYmVJbmRleFBvbGljaWVzQ29tbWFuZCxcbiAgICBEZXNjcmliZUxvZ0dyb3Vwc0NvbW1hbmQsXG4gICAgRGVzY3JpYmVMb2dTdHJlYW1zQ29tbWFuZCxcbiAgICBEZXNjcmliZU1ldHJpY0ZpbHRlcnNDb21tYW5kLFxuICAgIERlc2NyaWJlUXVlcmllc0NvbW1hbmQsXG4gICAgRGVzY3JpYmVRdWVyeURlZmluaXRpb25zQ29tbWFuZCxcbiAgICBEZXNjcmliZVJlc291cmNlUG9saWNpZXNDb21tYW5kLFxuICAgIERlc2NyaWJlU3Vic2NyaXB0aW9uRmlsdGVyc0NvbW1hbmQsXG4gICAgRGlzYXNzb2NpYXRlS21zS2V5Q29tbWFuZCxcbiAgICBEaXNhc3NvY2lhdGVTb3VyY2VGcm9tUzNUYWJsZUludGVncmF0aW9uQ29tbWFuZCxcbiAgICBGaWx0ZXJMb2dFdmVudHNDb21tYW5kLFxuICAgIEdldERhdGFQcm90ZWN0aW9uUG9saWN5Q29tbWFuZCxcbiAgICBHZXREZWxpdmVyeUNvbW1hbmQsXG4gICAgR2V0RGVsaXZlcnlEZXN0aW5hdGlvbkNvbW1hbmQsXG4gICAgR2V0RGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeUNvbW1hbmQsXG4gICAgR2V0RGVsaXZlcnlTb3VyY2VDb21tYW5kLFxuICAgIEdldEludGVncmF0aW9uQ29tbWFuZCxcbiAgICBHZXRMb2dBbm9tYWx5RGV0ZWN0b3JDb21tYW5kLFxuICAgIEdldExvZ0V2ZW50c0NvbW1hbmQsXG4gICAgR2V0TG9nRmllbGRzQ29tbWFuZCxcbiAgICBHZXRMb2dHcm91cEZpZWxkc0NvbW1hbmQsXG4gICAgR2V0TG9nT2JqZWN0Q29tbWFuZCxcbiAgICBHZXRMb2dSZWNvcmRDb21tYW5kLFxuICAgIEdldFF1ZXJ5UmVzdWx0c0NvbW1hbmQsXG4gICAgR2V0U2NoZWR1bGVkUXVlcnlDb21tYW5kLFxuICAgIEdldFNjaGVkdWxlZFF1ZXJ5SGlzdG9yeUNvbW1hbmQsXG4gICAgR2V0VHJhbnNmb3JtZXJDb21tYW5kLFxuICAgIExpc3RBZ2dyZWdhdGVMb2dHcm91cFN1bW1hcmllc0NvbW1hbmQsXG4gICAgTGlzdEFub21hbGllc0NvbW1hbmQsXG4gICAgTGlzdEludGVncmF0aW9uc0NvbW1hbmQsXG4gICAgTGlzdExvZ0Fub21hbHlEZXRlY3RvcnNDb21tYW5kLFxuICAgIExpc3RMb2dHcm91cHNDb21tYW5kLFxuICAgIExpc3RMb2dHcm91cHNGb3JRdWVyeUNvbW1hbmQsXG4gICAgTGlzdFNjaGVkdWxlZFF1ZXJpZXNDb21tYW5kLFxuICAgIExpc3RTb3VyY2VzRm9yUzNUYWJsZUludGVncmF0aW9uQ29tbWFuZCxcbiAgICBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZCxcbiAgICBMaXN0VGFnc0xvZ0dyb3VwQ29tbWFuZCxcbiAgICBQdXRBY2NvdW50UG9saWN5Q29tbWFuZCxcbiAgICBQdXREYXRhUHJvdGVjdGlvblBvbGljeUNvbW1hbmQsXG4gICAgUHV0RGVsaXZlcnlEZXN0aW5hdGlvbkNvbW1hbmQsXG4gICAgUHV0RGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeUNvbW1hbmQsXG4gICAgUHV0RGVsaXZlcnlTb3VyY2VDb21tYW5kLFxuICAgIFB1dERlc3RpbmF0aW9uQ29tbWFuZCxcbiAgICBQdXREZXN0aW5hdGlvblBvbGljeUNvbW1hbmQsXG4gICAgUHV0SW5kZXhQb2xpY3lDb21tYW5kLFxuICAgIFB1dEludGVncmF0aW9uQ29tbWFuZCxcbiAgICBQdXRMb2dFdmVudHNDb21tYW5kLFxuICAgIFB1dExvZ0dyb3VwRGVsZXRpb25Qcm90ZWN0aW9uQ29tbWFuZCxcbiAgICBQdXRNZXRyaWNGaWx0ZXJDb21tYW5kLFxuICAgIFB1dFF1ZXJ5RGVmaW5pdGlvbkNvbW1hbmQsXG4gICAgUHV0UmVzb3VyY2VQb2xpY3lDb21tYW5kLFxuICAgIFB1dFJldGVudGlvblBvbGljeUNvbW1hbmQsXG4gICAgUHV0U3Vic2NyaXB0aW9uRmlsdGVyQ29tbWFuZCxcbiAgICBQdXRUcmFuc2Zvcm1lckNvbW1hbmQsXG4gICAgU3RhcnRMaXZlVGFpbENvbW1hbmQsXG4gICAgU3RhcnRRdWVyeUNvbW1hbmQsXG4gICAgU3RvcFF1ZXJ5Q29tbWFuZCxcbiAgICBUYWdMb2dHcm91cENvbW1hbmQsXG4gICAgVGFnUmVzb3VyY2VDb21tYW5kLFxuICAgIFRlc3RNZXRyaWNGaWx0ZXJDb21tYW5kLFxuICAgIFRlc3RUcmFuc2Zvcm1lckNvbW1hbmQsXG4gICAgVW50YWdMb2dHcm91cENvbW1hbmQsXG4gICAgVW50YWdSZXNvdXJjZUNvbW1hbmQsXG4gICAgVXBkYXRlQW5vbWFseUNvbW1hbmQsXG4gICAgVXBkYXRlRGVsaXZlcnlDb25maWd1cmF0aW9uQ29tbWFuZCxcbiAgICBVcGRhdGVMb2dBbm9tYWx5RGV0ZWN0b3JDb21tYW5kLFxuICAgIFVwZGF0ZVNjaGVkdWxlZFF1ZXJ5Q29tbWFuZCxcbn07XG5jbGFzcyBDbG91ZFdhdGNoTG9ncyBleHRlbmRzIENsb3VkV2F0Y2hMb2dzQ2xpZW50IHtcbn1cbnNtaXRoeUNsaWVudC5jcmVhdGVBZ2dyZWdhdGVkQ2xpZW50KGNvbW1hbmRzLCBDbG91ZFdhdGNoTG9ncyk7XG5cbmNvbnN0IHBhZ2luYXRlRGVzY3JpYmVDb25maWd1cmF0aW9uVGVtcGxhdGVzID0gY29yZS5jcmVhdGVQYWdpbmF0b3IoQ2xvdWRXYXRjaExvZ3NDbGllbnQsIERlc2NyaWJlQ29uZmlndXJhdGlvblRlbXBsYXRlc0NvbW1hbmQsIFwibmV4dFRva2VuXCIsIFwibmV4dFRva2VuXCIsIFwibGltaXRcIik7XG5cbmNvbnN0IHBhZ2luYXRlRGVzY3JpYmVEZWxpdmVyaWVzID0gY29yZS5jcmVhdGVQYWdpbmF0b3IoQ2xvdWRXYXRjaExvZ3NDbGllbnQsIERlc2NyaWJlRGVsaXZlcmllc0NvbW1hbmQsIFwibmV4dFRva2VuXCIsIFwibmV4dFRva2VuXCIsIFwibGltaXRcIik7XG5cbmNvbnN0IHBhZ2luYXRlRGVzY3JpYmVEZWxpdmVyeURlc3RpbmF0aW9ucyA9IGNvcmUuY3JlYXRlUGFnaW5hdG9yKENsb3VkV2F0Y2hMb2dzQ2xpZW50LCBEZXNjcmliZURlbGl2ZXJ5RGVzdGluYXRpb25zQ29tbWFuZCwgXCJuZXh0VG9rZW5cIiwgXCJuZXh0VG9rZW5cIiwgXCJsaW1pdFwiKTtcblxuY29uc3QgcGFnaW5hdGVEZXNjcmliZURlbGl2ZXJ5U291cmNlcyA9IGNvcmUuY3JlYXRlUGFnaW5hdG9yKENsb3VkV2F0Y2hMb2dzQ2xpZW50LCBEZXNjcmliZURlbGl2ZXJ5U291cmNlc0NvbW1hbmQsIFwibmV4dFRva2VuXCIsIFwibmV4dFRva2VuXCIsIFwibGltaXRcIik7XG5cbmNvbnN0IHBhZ2luYXRlRGVzY3JpYmVEZXN0aW5hdGlvbnMgPSBjb3JlLmNyZWF0ZVBhZ2luYXRvcihDbG91ZFdhdGNoTG9nc0NsaWVudCwgRGVzY3JpYmVEZXN0aW5hdGlvbnNDb21tYW5kLCBcIm5leHRUb2tlblwiLCBcIm5leHRUb2tlblwiLCBcImxpbWl0XCIpO1xuXG5jb25zdCBwYWdpbmF0ZURlc2NyaWJlTG9nR3JvdXBzID0gY29yZS5jcmVhdGVQYWdpbmF0b3IoQ2xvdWRXYXRjaExvZ3NDbGllbnQsIERlc2NyaWJlTG9nR3JvdXBzQ29tbWFuZCwgXCJuZXh0VG9rZW5cIiwgXCJuZXh0VG9rZW5cIiwgXCJsaW1pdFwiKTtcblxuY29uc3QgcGFnaW5hdGVEZXNjcmliZUxvZ1N0cmVhbXMgPSBjb3JlLmNyZWF0ZVBhZ2luYXRvcihDbG91ZFdhdGNoTG9nc0NsaWVudCwgRGVzY3JpYmVMb2dTdHJlYW1zQ29tbWFuZCwgXCJuZXh0VG9rZW5cIiwgXCJuZXh0VG9rZW5cIiwgXCJsaW1pdFwiKTtcblxuY29uc3QgcGFnaW5hdGVEZXNjcmliZU1ldHJpY0ZpbHRlcnMgPSBjb3JlLmNyZWF0ZVBhZ2luYXRvcihDbG91ZFdhdGNoTG9nc0NsaWVudCwgRGVzY3JpYmVNZXRyaWNGaWx0ZXJzQ29tbWFuZCwgXCJuZXh0VG9rZW5cIiwgXCJuZXh0VG9rZW5cIiwgXCJsaW1pdFwiKTtcblxuY29uc3QgcGFnaW5hdGVEZXNjcmliZVN1YnNjcmlwdGlvbkZpbHRlcnMgPSBjb3JlLmNyZWF0ZVBhZ2luYXRvcihDbG91ZFdhdGNoTG9nc0NsaWVudCwgRGVzY3JpYmVTdWJzY3JpcHRpb25GaWx0ZXJzQ29tbWFuZCwgXCJuZXh0VG9rZW5cIiwgXCJuZXh0VG9rZW5cIiwgXCJsaW1pdFwiKTtcblxuY29uc3QgcGFnaW5hdGVGaWx0ZXJMb2dFdmVudHMgPSBjb3JlLmNyZWF0ZVBhZ2luYXRvcihDbG91ZFdhdGNoTG9nc0NsaWVudCwgRmlsdGVyTG9nRXZlbnRzQ29tbWFuZCwgXCJuZXh0VG9rZW5cIiwgXCJuZXh0VG9rZW5cIiwgXCJsaW1pdFwiKTtcblxuY29uc3QgcGFnaW5hdGVHZXRMb2dFdmVudHMgPSBjb3JlLmNyZWF0ZVBhZ2luYXRvcihDbG91ZFdhdGNoTG9nc0NsaWVudCwgR2V0TG9nRXZlbnRzQ29tbWFuZCwgXCJuZXh0VG9rZW5cIiwgXCJuZXh0Rm9yd2FyZFRva2VuXCIsIFwibGltaXRcIik7XG5cbmNvbnN0IHBhZ2luYXRlR2V0U2NoZWR1bGVkUXVlcnlIaXN0b3J5ID0gY29yZS5jcmVhdGVQYWdpbmF0b3IoQ2xvdWRXYXRjaExvZ3NDbGllbnQsIEdldFNjaGVkdWxlZFF1ZXJ5SGlzdG9yeUNvbW1hbmQsIFwibmV4dFRva2VuXCIsIFwibmV4dFRva2VuXCIsIFwibWF4UmVzdWx0c1wiKTtcblxuY29uc3QgcGFnaW5hdGVMaXN0QWdncmVnYXRlTG9nR3JvdXBTdW1tYXJpZXMgPSBjb3JlLmNyZWF0ZVBhZ2luYXRvcihDbG91ZFdhdGNoTG9nc0NsaWVudCwgTGlzdEFnZ3JlZ2F0ZUxvZ0dyb3VwU3VtbWFyaWVzQ29tbWFuZCwgXCJuZXh0VG9rZW5cIiwgXCJuZXh0VG9rZW5cIiwgXCJsaW1pdFwiKTtcblxuY29uc3QgcGFnaW5hdGVMaXN0QW5vbWFsaWVzID0gY29yZS5jcmVhdGVQYWdpbmF0b3IoQ2xvdWRXYXRjaExvZ3NDbGllbnQsIExpc3RBbm9tYWxpZXNDb21tYW5kLCBcIm5leHRUb2tlblwiLCBcIm5leHRUb2tlblwiLCBcImxpbWl0XCIpO1xuXG5jb25zdCBwYWdpbmF0ZUxpc3RMb2dBbm9tYWx5RGV0ZWN0b3JzID0gY29yZS5jcmVhdGVQYWdpbmF0b3IoQ2xvdWRXYXRjaExvZ3NDbGllbnQsIExpc3RMb2dBbm9tYWx5RGV0ZWN0b3JzQ29tbWFuZCwgXCJuZXh0VG9rZW5cIiwgXCJuZXh0VG9rZW5cIiwgXCJsaW1pdFwiKTtcblxuY29uc3QgcGFnaW5hdGVMaXN0TG9nR3JvdXBzRm9yUXVlcnkgPSBjb3JlLmNyZWF0ZVBhZ2luYXRvcihDbG91ZFdhdGNoTG9nc0NsaWVudCwgTGlzdExvZ0dyb3Vwc0ZvclF1ZXJ5Q29tbWFuZCwgXCJuZXh0VG9rZW5cIiwgXCJuZXh0VG9rZW5cIiwgXCJtYXhSZXN1bHRzXCIpO1xuXG5jb25zdCBwYWdpbmF0ZUxpc3RTY2hlZHVsZWRRdWVyaWVzID0gY29yZS5jcmVhdGVQYWdpbmF0b3IoQ2xvdWRXYXRjaExvZ3NDbGllbnQsIExpc3RTY2hlZHVsZWRRdWVyaWVzQ29tbWFuZCwgXCJuZXh0VG9rZW5cIiwgXCJuZXh0VG9rZW5cIiwgXCJtYXhSZXN1bHRzXCIpO1xuXG5jb25zdCBwYWdpbmF0ZUxpc3RTb3VyY2VzRm9yUzNUYWJsZUludGVncmF0aW9uID0gY29yZS5jcmVhdGVQYWdpbmF0b3IoQ2xvdWRXYXRjaExvZ3NDbGllbnQsIExpc3RTb3VyY2VzRm9yUzNUYWJsZUludGVncmF0aW9uQ29tbWFuZCwgXCJuZXh0VG9rZW5cIiwgXCJuZXh0VG9rZW5cIiwgXCJtYXhSZXN1bHRzXCIpO1xuXG5jb25zdCBQb2xpY3lUeXBlID0ge1xuICAgIERBVEFfUFJPVEVDVElPTl9QT0xJQ1k6IFwiREFUQV9QUk9URUNUSU9OX1BPTElDWVwiLFxuICAgIEZJRUxEX0lOREVYX1BPTElDWTogXCJGSUVMRF9JTkRFWF9QT0xJQ1lcIixcbiAgICBNRVRSSUNfRVhUUkFDVElPTl9QT0xJQ1k6IFwiTUVUUklDX0VYVFJBQ1RJT05fUE9MSUNZXCIsXG4gICAgU1VCU0NSSVBUSU9OX0ZJTFRFUl9QT0xJQ1k6IFwiU1VCU0NSSVBUSU9OX0ZJTFRFUl9QT0xJQ1lcIixcbiAgICBUUkFOU0ZPUk1FUl9QT0xJQ1k6IFwiVFJBTlNGT1JNRVJfUE9MSUNZXCIsXG59O1xuY29uc3QgU2NvcGUgPSB7XG4gICAgQUxMOiBcIkFMTFwiLFxufTtcbmNvbnN0IEFjdGlvblN0YXR1cyA9IHtcbiAgICBDTElFTlRfRVJST1I6IFwiQ0xJRU5UX0VSUk9SXCIsXG4gICAgQ09NUExFVEU6IFwiQ09NUExFVEVcIixcbiAgICBGQUlMRUQ6IFwiRkFJTEVEXCIsXG4gICAgSU5fUFJPR1JFU1M6IFwiSU5fUFJPR1JFU1NcIixcbn07XG5jb25zdCBTdGF0ZSA9IHtcbiAgICBBY3RpdmU6IFwiQWN0aXZlXCIsXG4gICAgQmFzZWxpbmU6IFwiQmFzZWxpbmVcIixcbiAgICBTdXBwcmVzc2VkOiBcIlN1cHByZXNzZWRcIixcbn07XG5jb25zdCBBbm9tYWx5RGV0ZWN0b3JTdGF0dXMgPSB7XG4gICAgQU5BTFlaSU5HOiBcIkFOQUxZWklOR1wiLFxuICAgIERFTEVURUQ6IFwiREVMRVRFRFwiLFxuICAgIEZBSUxFRDogXCJGQUlMRURcIixcbiAgICBJTklUSUFMSVpJTkc6IFwiSU5JVElBTElaSU5HXCIsXG4gICAgUEFVU0VEOiBcIlBBVVNFRFwiLFxuICAgIFRSQUlOSU5HOiBcIlRSQUlOSU5HXCIsXG59O1xuY29uc3QgRXZhbHVhdGlvbkZyZXF1ZW5jeSA9IHtcbiAgICBGSUZURUVOX01JTjogXCJGSUZURUVOX01JTlwiLFxuICAgIEZJVkVfTUlOOiBcIkZJVkVfTUlOXCIsXG4gICAgT05FX0hPVVI6IFwiT05FX0hPVVJcIixcbiAgICBPTkVfTUlOOiBcIk9ORV9NSU5cIixcbiAgICBURU5fTUlOOiBcIlRFTl9NSU5cIixcbiAgICBUSElSVFlfTUlOOiBcIlRISVJUWV9NSU5cIixcbn07XG5jb25zdCBJbXBvcnRTdGF0dXMgPSB7XG4gICAgQ0FOQ0VMTEVEOiBcIkNBTkNFTExFRFwiLFxuICAgIENPTVBMRVRFRDogXCJDT01QTEVURURcIixcbiAgICBGQUlMRUQ6IFwiRkFJTEVEXCIsXG4gICAgSU5fUFJPR1JFU1M6IFwiSU5fUFJPR1JFU1NcIixcbn07XG5jb25zdCBPdXRwdXRGb3JtYXQgPSB7XG4gICAgSlNPTjogXCJqc29uXCIsXG4gICAgUEFSUVVFVDogXCJwYXJxdWV0XCIsXG4gICAgUExBSU46IFwicGxhaW5cIixcbiAgICBSQVc6IFwicmF3XCIsXG4gICAgVzNDOiBcInczY1wiLFxufTtcbmNvbnN0IERlbGl2ZXJ5RGVzdGluYXRpb25UeXBlID0ge1xuICAgIENXTDogXCJDV0xcIixcbiAgICBGSDogXCJGSFwiLFxuICAgIFMzOiBcIlMzXCIsXG4gICAgWFJBWTogXCJYUkFZXCIsXG59O1xuY29uc3QgTG9nR3JvdXBDbGFzcyA9IHtcbiAgICBERUxJVkVSWTogXCJERUxJVkVSWVwiLFxuICAgIElORlJFUVVFTlRfQUNDRVNTOiBcIklORlJFUVVFTlRfQUNDRVNTXCIsXG4gICAgU1RBTkRBUkQ6IFwiU1RBTkRBUkRcIixcbn07XG5jb25zdCBRdWVyeUxhbmd1YWdlID0ge1xuICAgIENXTEk6IFwiQ1dMSVwiLFxuICAgIFBQTDogXCJQUExcIixcbiAgICBTUUw6IFwiU1FMXCIsXG59O1xuY29uc3QgU2NoZWR1bGVkUXVlcnlTdGF0ZSA9IHtcbiAgICBESVNBQkxFRDogXCJESVNBQkxFRFwiLFxuICAgIEVOQUJMRUQ6IFwiRU5BQkxFRFwiLFxufTtcbmNvbnN0IERhdGFQcm90ZWN0aW9uU3RhdHVzID0ge1xuICAgIEFDVElWQVRFRDogXCJBQ1RJVkFURURcIixcbiAgICBBUkNISVZFRDogXCJBUkNISVZFRFwiLFxuICAgIERFTEVURUQ6IFwiREVMRVRFRFwiLFxuICAgIERJU0FCTEVEOiBcIkRJU0FCTEVEXCIsXG59O1xuY29uc3QgRXhwb3J0VGFza1N0YXR1c0NvZGUgPSB7XG4gICAgQ0FOQ0VMTEVEOiBcIkNBTkNFTExFRFwiLFxuICAgIENPTVBMRVRFRDogXCJDT01QTEVURURcIixcbiAgICBGQUlMRUQ6IFwiRkFJTEVEXCIsXG4gICAgUEVORElORzogXCJQRU5ESU5HXCIsXG4gICAgUEVORElOR19DQU5DRUw6IFwiUEVORElOR19DQU5DRUxcIixcbiAgICBSVU5OSU5HOiBcIlJVTk5JTkdcIixcbn07XG5jb25zdCBJbmRleFR5cGUgPSB7XG4gICAgRkFDRVQ6IFwiRkFDRVRcIixcbiAgICBGSUVMRF9JTkRFWDogXCJGSUVMRF9JTkRFWFwiLFxufTtcbmNvbnN0IEluZGV4U291cmNlID0ge1xuICAgIEFDQ09VTlQ6IFwiQUNDT1VOVFwiLFxuICAgIExPR19HUk9VUDogXCJMT0dfR1JPVVBcIixcbn07XG5jb25zdCBJbmhlcml0ZWRQcm9wZXJ0eSA9IHtcbiAgICBBQ0NPVU5UX0RBVEFfUFJPVEVDVElPTjogXCJBQ0NPVU5UX0RBVEFfUFJPVEVDVElPTlwiLFxufTtcbmNvbnN0IE9yZGVyQnkgPSB7XG4gICAgTGFzdEV2ZW50VGltZTogXCJMYXN0RXZlbnRUaW1lXCIsXG4gICAgTG9nU3RyZWFtTmFtZTogXCJMb2dTdHJlYW1OYW1lXCIsXG59O1xuY29uc3QgU3RhbmRhcmRVbml0ID0ge1xuICAgIEJpdHM6IFwiQml0c1wiLFxuICAgIEJpdHNTZWNvbmQ6IFwiQml0cy9TZWNvbmRcIixcbiAgICBCeXRlczogXCJCeXRlc1wiLFxuICAgIEJ5dGVzU2Vjb25kOiBcIkJ5dGVzL1NlY29uZFwiLFxuICAgIENvdW50OiBcIkNvdW50XCIsXG4gICAgQ291bnRTZWNvbmQ6IFwiQ291bnQvU2Vjb25kXCIsXG4gICAgR2lnYWJpdHM6IFwiR2lnYWJpdHNcIixcbiAgICBHaWdhYml0c1NlY29uZDogXCJHaWdhYml0cy9TZWNvbmRcIixcbiAgICBHaWdhYnl0ZXM6IFwiR2lnYWJ5dGVzXCIsXG4gICAgR2lnYWJ5dGVzU2Vjb25kOiBcIkdpZ2FieXRlcy9TZWNvbmRcIixcbiAgICBLaWxvYml0czogXCJLaWxvYml0c1wiLFxuICAgIEtpbG9iaXRzU2Vjb25kOiBcIktpbG9iaXRzL1NlY29uZFwiLFxuICAgIEtpbG9ieXRlczogXCJLaWxvYnl0ZXNcIixcbiAgICBLaWxvYnl0ZXNTZWNvbmQ6IFwiS2lsb2J5dGVzL1NlY29uZFwiLFxuICAgIE1lZ2FiaXRzOiBcIk1lZ2FiaXRzXCIsXG4gICAgTWVnYWJpdHNTZWNvbmQ6IFwiTWVnYWJpdHMvU2Vjb25kXCIsXG4gICAgTWVnYWJ5dGVzOiBcIk1lZ2FieXRlc1wiLFxuICAgIE1lZ2FieXRlc1NlY29uZDogXCJNZWdhYnl0ZXMvU2Vjb25kXCIsXG4gICAgTWljcm9zZWNvbmRzOiBcIk1pY3Jvc2Vjb25kc1wiLFxuICAgIE1pbGxpc2Vjb25kczogXCJNaWxsaXNlY29uZHNcIixcbiAgICBOb25lOiBcIk5vbmVcIixcbiAgICBQZXJjZW50OiBcIlBlcmNlbnRcIixcbiAgICBTZWNvbmRzOiBcIlNlY29uZHNcIixcbiAgICBUZXJhYml0czogXCJUZXJhYml0c1wiLFxuICAgIFRlcmFiaXRzU2Vjb25kOiBcIlRlcmFiaXRzL1NlY29uZFwiLFxuICAgIFRlcmFieXRlczogXCJUZXJhYnl0ZXNcIixcbiAgICBUZXJhYnl0ZXNTZWNvbmQ6IFwiVGVyYWJ5dGVzL1NlY29uZFwiLFxufTtcbmNvbnN0IFF1ZXJ5U3RhdHVzID0ge1xuICAgIENhbmNlbGxlZDogXCJDYW5jZWxsZWRcIixcbiAgICBDb21wbGV0ZTogXCJDb21wbGV0ZVwiLFxuICAgIEZhaWxlZDogXCJGYWlsZWRcIixcbiAgICBSdW5uaW5nOiBcIlJ1bm5pbmdcIixcbiAgICBTY2hlZHVsZWQ6IFwiU2NoZWR1bGVkXCIsXG4gICAgVGltZW91dDogXCJUaW1lb3V0XCIsXG4gICAgVW5rbm93bjogXCJVbmtub3duXCIsXG59O1xuY29uc3QgUG9saWN5U2NvcGUgPSB7XG4gICAgQUNDT1VOVDogXCJBQ0NPVU5UXCIsXG4gICAgUkVTT1VSQ0U6IFwiUkVTT1VSQ0VcIixcbn07XG5jb25zdCBEaXN0cmlidXRpb24gPSB7XG4gICAgQnlMb2dTdHJlYW06IFwiQnlMb2dTdHJlYW1cIixcbiAgICBSYW5kb206IFwiUmFuZG9tXCIsXG59O1xuY29uc3QgRW50aXR5UmVqZWN0aW9uRXJyb3JUeXBlID0ge1xuICAgIEVOVElUWV9TSVpFX1RPT19MQVJHRTogXCJFbnRpdHlTaXplVG9vTGFyZ2VcIixcbiAgICBJTlZBTElEX0FUVFJJQlVURVM6IFwiSW52YWxpZEF0dHJpYnV0ZXNcIixcbiAgICBJTlZBTElEX0VOVElUWTogXCJJbnZhbGlkRW50aXR5XCIsXG4gICAgSU5WQUxJRF9LRVlfQVRUUklCVVRFOiBcIkludmFsaWRLZXlBdHRyaWJ1dGVzXCIsXG4gICAgSU5WQUxJRF9UWVBFX1ZBTFVFOiBcIkludmFsaWRUeXBlVmFsdWVcIixcbiAgICBNSVNTSU5HX1JFUVVJUkVEX0ZJRUxEUzogXCJNaXNzaW5nUmVxdWlyZWRGaWVsZHNcIixcbiAgICBVTlNVUFBPUlRFRF9MT0dfR1JPVVBfVFlQRTogXCJVbnN1cHBvcnRlZExvZ0dyb3VwVHlwZVwiLFxufTtcbmNvbnN0IEV2ZW50U291cmNlID0ge1xuICAgIEFXU1dBRjogXCJBV1NXQUZcIixcbiAgICBDTE9VRF9UUkFJTDogXCJDbG91ZFRyYWlsXCIsXG4gICAgRUtTX0FVRElUOiBcIkVLU0F1ZGl0XCIsXG4gICAgUk9VVEU1M19SRVNPTFZFUjogXCJSb3V0ZTUzUmVzb2x2ZXJcIixcbiAgICBWUENfRkxPVzogXCJWUENGbG93XCIsXG59O1xuY29uc3QgRXhlY3V0aW9uU3RhdHVzID0ge1xuICAgIENvbXBsZXRlOiBcIkNvbXBsZXRlXCIsXG4gICAgRmFpbGVkOiBcIkZhaWxlZFwiLFxuICAgIEludmFsaWRRdWVyeTogXCJJbnZhbGlkUXVlcnlcIixcbiAgICBSdW5uaW5nOiBcIlJ1bm5pbmdcIixcbiAgICBUaW1lb3V0OiBcIlRpbWVvdXRcIixcbn07XG5jb25zdCBGbGF0dGVuZWRFbGVtZW50ID0ge1xuICAgIEZJUlNUOiBcImZpcnN0XCIsXG4gICAgTEFTVDogXCJsYXN0XCIsXG59O1xuY29uc3QgT3BlblNlYXJjaFJlc291cmNlU3RhdHVzVHlwZSA9IHtcbiAgICBBQ1RJVkU6IFwiQUNUSVZFXCIsXG4gICAgRVJST1I6IFwiRVJST1JcIixcbiAgICBOT1RfRk9VTkQ6IFwiTk9UX0ZPVU5EXCIsXG59O1xuY29uc3QgSW50ZWdyYXRpb25TdGF0dXMgPSB7XG4gICAgQUNUSVZFOiBcIkFDVElWRVwiLFxuICAgIEZBSUxFRDogXCJGQUlMRURcIixcbiAgICBQUk9WSVNJT05JTkc6IFwiUFJPVklTSU9OSU5HXCIsXG59O1xuY29uc3QgSW50ZWdyYXRpb25UeXBlID0ge1xuICAgIE9QRU5TRUFSQ0g6IFwiT1BFTlNFQVJDSFwiLFxufTtcbmNvbnN0IFNjaGVkdWxlZFF1ZXJ5RGVzdGluYXRpb25UeXBlID0ge1xuICAgIFMzOiBcIlMzXCIsXG59O1xuY29uc3QgT0NTRlZlcnNpb24gPSB7XG4gICAgVjFfMTogXCJWMS4xXCIsXG4gICAgVjFfNTogXCJWMS41XCIsXG59O1xuY29uc3QgVHlwZSA9IHtcbiAgICBCT09MRUFOOiBcImJvb2xlYW5cIixcbiAgICBET1VCTEU6IFwiZG91YmxlXCIsXG4gICAgSU5URUdFUjogXCJpbnRlZ2VyXCIsXG4gICAgU1RSSU5HOiBcInN0cmluZ1wiLFxufTtcbmNvbnN0IExpc3RBZ2dyZWdhdGVMb2dHcm91cFN1bW1hcmllc0dyb3VwQnkgPSB7XG4gICAgREFUQV9TT1VSQ0VfTkFNRV9BTkRfVFlQRTogXCJEQVRBX1NPVVJDRV9OQU1FX0FORF9UWVBFXCIsXG4gICAgREFUQV9TT1VSQ0VfTkFNRV9UWVBFX0FORF9GT1JNQVQ6IFwiREFUQV9TT1VSQ0VfTkFNRV9UWVBFX0FORF9GT1JNQVRcIixcbn07XG5jb25zdCBTdXBwcmVzc2lvblN0YXRlID0ge1xuICAgIFNVUFBSRVNTRUQ6IFwiU1VQUFJFU1NFRFwiLFxuICAgIFVOU1VQUFJFU1NFRDogXCJVTlNVUFBSRVNTRURcIixcbn07XG5jb25zdCBTM1RhYmxlSW50ZWdyYXRpb25Tb3VyY2VTdGF0dXMgPSB7XG4gICAgQUNUSVZFOiBcIkFDVElWRVwiLFxuICAgIERBVEFfU09VUkNFX0RFTEVURV9JTl9QUk9HUkVTUzogXCJEQVRBX1NPVVJDRV9ERUxFVEVfSU5fUFJPR1JFU1NcIixcbiAgICBGQUlMRUQ6IFwiRkFJTEVEXCIsXG4gICAgVU5IRUFMVEhZOiBcIlVOSEVBTFRIWVwiLFxufTtcbmNvbnN0IFN1cHByZXNzaW9uVW5pdCA9IHtcbiAgICBIT1VSUzogXCJIT1VSU1wiLFxuICAgIE1JTlVURVM6IFwiTUlOVVRFU1wiLFxuICAgIFNFQ09ORFM6IFwiU0VDT05EU1wiLFxufTtcbmNvbnN0IFN1cHByZXNzaW9uVHlwZSA9IHtcbiAgICBJTkZJTklURTogXCJJTkZJTklURVwiLFxuICAgIExJTUlURUQ6IFwiTElNSVRFRFwiLFxufTtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiJENvbW1hbmRcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBzbWl0aHlDbGllbnQuQ29tbWFuZDsgfVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX0NsaWVudFwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHNtaXRoeUNsaWVudC5DbGllbnQ7IH1cbn0pO1xuZXhwb3J0cy5BY2Nlc3NEZW5pZWRFeGNlcHRpb24gPSBBY2Nlc3NEZW5pZWRFeGNlcHRpb24kMTtcbmV4cG9ydHMuQWN0aW9uU3RhdHVzID0gQWN0aW9uU3RhdHVzO1xuZXhwb3J0cy5Bbm9tYWx5RGV0ZWN0b3JTdGF0dXMgPSBBbm9tYWx5RGV0ZWN0b3JTdGF0dXM7XG5leHBvcnRzLkFzc29jaWF0ZUttc0tleUNvbW1hbmQgPSBBc3NvY2lhdGVLbXNLZXlDb21tYW5kO1xuZXhwb3J0cy5Bc3NvY2lhdGVTb3VyY2VUb1MzVGFibGVJbnRlZ3JhdGlvbkNvbW1hbmQgPSBBc3NvY2lhdGVTb3VyY2VUb1MzVGFibGVJbnRlZ3JhdGlvbkNvbW1hbmQ7XG5leHBvcnRzLkNhbmNlbEV4cG9ydFRhc2tDb21tYW5kID0gQ2FuY2VsRXhwb3J0VGFza0NvbW1hbmQ7XG5leHBvcnRzLkNhbmNlbEltcG9ydFRhc2tDb21tYW5kID0gQ2FuY2VsSW1wb3J0VGFza0NvbW1hbmQ7XG5leHBvcnRzLkNsb3VkV2F0Y2hMb2dzID0gQ2xvdWRXYXRjaExvZ3M7XG5leHBvcnRzLkNsb3VkV2F0Y2hMb2dzQ2xpZW50ID0gQ2xvdWRXYXRjaExvZ3NDbGllbnQ7XG5leHBvcnRzLkNsb3VkV2F0Y2hMb2dzU2VydmljZUV4Y2VwdGlvbiA9IENsb3VkV2F0Y2hMb2dzU2VydmljZUV4Y2VwdGlvbiQxO1xuZXhwb3J0cy5Db25mbGljdEV4Y2VwdGlvbiA9IENvbmZsaWN0RXhjZXB0aW9uJDE7XG5leHBvcnRzLkNyZWF0ZURlbGl2ZXJ5Q29tbWFuZCA9IENyZWF0ZURlbGl2ZXJ5Q29tbWFuZDtcbmV4cG9ydHMuQ3JlYXRlRXhwb3J0VGFza0NvbW1hbmQgPSBDcmVhdGVFeHBvcnRUYXNrQ29tbWFuZDtcbmV4cG9ydHMuQ3JlYXRlSW1wb3J0VGFza0NvbW1hbmQgPSBDcmVhdGVJbXBvcnRUYXNrQ29tbWFuZDtcbmV4cG9ydHMuQ3JlYXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZCA9IENyZWF0ZUxvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmQ7XG5leHBvcnRzLkNyZWF0ZUxvZ0dyb3VwQ29tbWFuZCA9IENyZWF0ZUxvZ0dyb3VwQ29tbWFuZDtcbmV4cG9ydHMuQ3JlYXRlTG9nU3RyZWFtQ29tbWFuZCA9IENyZWF0ZUxvZ1N0cmVhbUNvbW1hbmQ7XG5leHBvcnRzLkNyZWF0ZVNjaGVkdWxlZFF1ZXJ5Q29tbWFuZCA9IENyZWF0ZVNjaGVkdWxlZFF1ZXJ5Q29tbWFuZDtcbmV4cG9ydHMuRGF0YUFscmVhZHlBY2NlcHRlZEV4Y2VwdGlvbiA9IERhdGFBbHJlYWR5QWNjZXB0ZWRFeGNlcHRpb24kMTtcbmV4cG9ydHMuRGF0YVByb3RlY3Rpb25TdGF0dXMgPSBEYXRhUHJvdGVjdGlvblN0YXR1cztcbmV4cG9ydHMuRGVsZXRlQWNjb3VudFBvbGljeUNvbW1hbmQgPSBEZWxldGVBY2NvdW50UG9saWN5Q29tbWFuZDtcbmV4cG9ydHMuRGVsZXRlRGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kID0gRGVsZXRlRGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kO1xuZXhwb3J0cy5EZWxldGVEZWxpdmVyeUNvbW1hbmQgPSBEZWxldGVEZWxpdmVyeUNvbW1hbmQ7XG5leHBvcnRzLkRlbGV0ZURlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kID0gRGVsZXRlRGVsaXZlcnlEZXN0aW5hdGlvbkNvbW1hbmQ7XG5leHBvcnRzLkRlbGV0ZURlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kID0gRGVsZXRlRGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeUNvbW1hbmQ7XG5leHBvcnRzLkRlbGV0ZURlbGl2ZXJ5U291cmNlQ29tbWFuZCA9IERlbGV0ZURlbGl2ZXJ5U291cmNlQ29tbWFuZDtcbmV4cG9ydHMuRGVsZXRlRGVzdGluYXRpb25Db21tYW5kID0gRGVsZXRlRGVzdGluYXRpb25Db21tYW5kO1xuZXhwb3J0cy5EZWxldGVJbmRleFBvbGljeUNvbW1hbmQgPSBEZWxldGVJbmRleFBvbGljeUNvbW1hbmQ7XG5leHBvcnRzLkRlbGV0ZUludGVncmF0aW9uQ29tbWFuZCA9IERlbGV0ZUludGVncmF0aW9uQ29tbWFuZDtcbmV4cG9ydHMuRGVsZXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZCA9IERlbGV0ZUxvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmQ7XG5leHBvcnRzLkRlbGV0ZUxvZ0dyb3VwQ29tbWFuZCA9IERlbGV0ZUxvZ0dyb3VwQ29tbWFuZDtcbmV4cG9ydHMuRGVsZXRlTG9nU3RyZWFtQ29tbWFuZCA9IERlbGV0ZUxvZ1N0cmVhbUNvbW1hbmQ7XG5leHBvcnRzLkRlbGV0ZU1ldHJpY0ZpbHRlckNvbW1hbmQgPSBEZWxldGVNZXRyaWNGaWx0ZXJDb21tYW5kO1xuZXhwb3J0cy5EZWxldGVRdWVyeURlZmluaXRpb25Db21tYW5kID0gRGVsZXRlUXVlcnlEZWZpbml0aW9uQ29tbWFuZDtcbmV4cG9ydHMuRGVsZXRlUmVzb3VyY2VQb2xpY3lDb21tYW5kID0gRGVsZXRlUmVzb3VyY2VQb2xpY3lDb21tYW5kO1xuZXhwb3J0cy5EZWxldGVSZXRlbnRpb25Qb2xpY3lDb21tYW5kID0gRGVsZXRlUmV0ZW50aW9uUG9saWN5Q29tbWFuZDtcbmV4cG9ydHMuRGVsZXRlU2NoZWR1bGVkUXVlcnlDb21tYW5kID0gRGVsZXRlU2NoZWR1bGVkUXVlcnlDb21tYW5kO1xuZXhwb3J0cy5EZWxldGVTdWJzY3JpcHRpb25GaWx0ZXJDb21tYW5kID0gRGVsZXRlU3Vic2NyaXB0aW9uRmlsdGVyQ29tbWFuZDtcbmV4cG9ydHMuRGVsZXRlVHJhbnNmb3JtZXJDb21tYW5kID0gRGVsZXRlVHJhbnNmb3JtZXJDb21tYW5kO1xuZXhwb3J0cy5EZWxpdmVyeURlc3RpbmF0aW9uVHlwZSA9IERlbGl2ZXJ5RGVzdGluYXRpb25UeXBlO1xuZXhwb3J0cy5EZXNjcmliZUFjY291bnRQb2xpY2llc0NvbW1hbmQgPSBEZXNjcmliZUFjY291bnRQb2xpY2llc0NvbW1hbmQ7XG5leHBvcnRzLkRlc2NyaWJlQ29uZmlndXJhdGlvblRlbXBsYXRlc0NvbW1hbmQgPSBEZXNjcmliZUNvbmZpZ3VyYXRpb25UZW1wbGF0ZXNDb21tYW5kO1xuZXhwb3J0cy5EZXNjcmliZURlbGl2ZXJpZXNDb21tYW5kID0gRGVzY3JpYmVEZWxpdmVyaWVzQ29tbWFuZDtcbmV4cG9ydHMuRGVzY3JpYmVEZWxpdmVyeURlc3RpbmF0aW9uc0NvbW1hbmQgPSBEZXNjcmliZURlbGl2ZXJ5RGVzdGluYXRpb25zQ29tbWFuZDtcbmV4cG9ydHMuRGVzY3JpYmVEZWxpdmVyeVNvdXJjZXNDb21tYW5kID0gRGVzY3JpYmVEZWxpdmVyeVNvdXJjZXNDb21tYW5kO1xuZXhwb3J0cy5EZXNjcmliZURlc3RpbmF0aW9uc0NvbW1hbmQgPSBEZXNjcmliZURlc3RpbmF0aW9uc0NvbW1hbmQ7XG5leHBvcnRzLkRlc2NyaWJlRXhwb3J0VGFza3NDb21tYW5kID0gRGVzY3JpYmVFeHBvcnRUYXNrc0NvbW1hbmQ7XG5leHBvcnRzLkRlc2NyaWJlRmllbGRJbmRleGVzQ29tbWFuZCA9IERlc2NyaWJlRmllbGRJbmRleGVzQ29tbWFuZDtcbmV4cG9ydHMuRGVzY3JpYmVJbXBvcnRUYXNrQmF0Y2hlc0NvbW1hbmQgPSBEZXNjcmliZUltcG9ydFRhc2tCYXRjaGVzQ29tbWFuZDtcbmV4cG9ydHMuRGVzY3JpYmVJbXBvcnRUYXNrc0NvbW1hbmQgPSBEZXNjcmliZUltcG9ydFRhc2tzQ29tbWFuZDtcbmV4cG9ydHMuRGVzY3JpYmVJbmRleFBvbGljaWVzQ29tbWFuZCA9IERlc2NyaWJlSW5kZXhQb2xpY2llc0NvbW1hbmQ7XG5leHBvcnRzLkRlc2NyaWJlTG9nR3JvdXBzQ29tbWFuZCA9IERlc2NyaWJlTG9nR3JvdXBzQ29tbWFuZDtcbmV4cG9ydHMuRGVzY3JpYmVMb2dTdHJlYW1zQ29tbWFuZCA9IERlc2NyaWJlTG9nU3RyZWFtc0NvbW1hbmQ7XG5leHBvcnRzLkRlc2NyaWJlTWV0cmljRmlsdGVyc0NvbW1hbmQgPSBEZXNjcmliZU1ldHJpY0ZpbHRlcnNDb21tYW5kO1xuZXhwb3J0cy5EZXNjcmliZVF1ZXJpZXNDb21tYW5kID0gRGVzY3JpYmVRdWVyaWVzQ29tbWFuZDtcbmV4cG9ydHMuRGVzY3JpYmVRdWVyeURlZmluaXRpb25zQ29tbWFuZCA9IERlc2NyaWJlUXVlcnlEZWZpbml0aW9uc0NvbW1hbmQ7XG5leHBvcnRzLkRlc2NyaWJlUmVzb3VyY2VQb2xpY2llc0NvbW1hbmQgPSBEZXNjcmliZVJlc291cmNlUG9saWNpZXNDb21tYW5kO1xuZXhwb3J0cy5EZXNjcmliZVN1YnNjcmlwdGlvbkZpbHRlcnNDb21tYW5kID0gRGVzY3JpYmVTdWJzY3JpcHRpb25GaWx0ZXJzQ29tbWFuZDtcbmV4cG9ydHMuRGlzYXNzb2NpYXRlS21zS2V5Q29tbWFuZCA9IERpc2Fzc29jaWF0ZUttc0tleUNvbW1hbmQ7XG5leHBvcnRzLkRpc2Fzc29jaWF0ZVNvdXJjZUZyb21TM1RhYmxlSW50ZWdyYXRpb25Db21tYW5kID0gRGlzYXNzb2NpYXRlU291cmNlRnJvbVMzVGFibGVJbnRlZ3JhdGlvbkNvbW1hbmQ7XG5leHBvcnRzLkRpc3RyaWJ1dGlvbiA9IERpc3RyaWJ1dGlvbjtcbmV4cG9ydHMuRW50aXR5UmVqZWN0aW9uRXJyb3JUeXBlID0gRW50aXR5UmVqZWN0aW9uRXJyb3JUeXBlO1xuZXhwb3J0cy5FdmFsdWF0aW9uRnJlcXVlbmN5ID0gRXZhbHVhdGlvbkZyZXF1ZW5jeTtcbmV4cG9ydHMuRXZlbnRTb3VyY2UgPSBFdmVudFNvdXJjZTtcbmV4cG9ydHMuRXhlY3V0aW9uU3RhdHVzID0gRXhlY3V0aW9uU3RhdHVzO1xuZXhwb3J0cy5FeHBvcnRUYXNrU3RhdHVzQ29kZSA9IEV4cG9ydFRhc2tTdGF0dXNDb2RlO1xuZXhwb3J0cy5GaWx0ZXJMb2dFdmVudHNDb21tYW5kID0gRmlsdGVyTG9nRXZlbnRzQ29tbWFuZDtcbmV4cG9ydHMuRmxhdHRlbmVkRWxlbWVudCA9IEZsYXR0ZW5lZEVsZW1lbnQ7XG5leHBvcnRzLkdldERhdGFQcm90ZWN0aW9uUG9saWN5Q29tbWFuZCA9IEdldERhdGFQcm90ZWN0aW9uUG9saWN5Q29tbWFuZDtcbmV4cG9ydHMuR2V0RGVsaXZlcnlDb21tYW5kID0gR2V0RGVsaXZlcnlDb21tYW5kO1xuZXhwb3J0cy5HZXREZWxpdmVyeURlc3RpbmF0aW9uQ29tbWFuZCA9IEdldERlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kO1xuZXhwb3J0cy5HZXREZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5Q29tbWFuZCA9IEdldERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kO1xuZXhwb3J0cy5HZXREZWxpdmVyeVNvdXJjZUNvbW1hbmQgPSBHZXREZWxpdmVyeVNvdXJjZUNvbW1hbmQ7XG5leHBvcnRzLkdldEludGVncmF0aW9uQ29tbWFuZCA9IEdldEludGVncmF0aW9uQ29tbWFuZDtcbmV4cG9ydHMuR2V0TG9nQW5vbWFseURldGVjdG9yQ29tbWFuZCA9IEdldExvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmQ7XG5leHBvcnRzLkdldExvZ0V2ZW50c0NvbW1hbmQgPSBHZXRMb2dFdmVudHNDb21tYW5kO1xuZXhwb3J0cy5HZXRMb2dGaWVsZHNDb21tYW5kID0gR2V0TG9nRmllbGRzQ29tbWFuZDtcbmV4cG9ydHMuR2V0TG9nR3JvdXBGaWVsZHNDb21tYW5kID0gR2V0TG9nR3JvdXBGaWVsZHNDb21tYW5kO1xuZXhwb3J0cy5HZXRMb2dPYmplY3RDb21tYW5kID0gR2V0TG9nT2JqZWN0Q29tbWFuZDtcbmV4cG9ydHMuR2V0TG9nUmVjb3JkQ29tbWFuZCA9IEdldExvZ1JlY29yZENvbW1hbmQ7XG5leHBvcnRzLkdldFF1ZXJ5UmVzdWx0c0NvbW1hbmQgPSBHZXRRdWVyeVJlc3VsdHNDb21tYW5kO1xuZXhwb3J0cy5HZXRTY2hlZHVsZWRRdWVyeUNvbW1hbmQgPSBHZXRTY2hlZHVsZWRRdWVyeUNvbW1hbmQ7XG5leHBvcnRzLkdldFNjaGVkdWxlZFF1ZXJ5SGlzdG9yeUNvbW1hbmQgPSBHZXRTY2hlZHVsZWRRdWVyeUhpc3RvcnlDb21tYW5kO1xuZXhwb3J0cy5HZXRUcmFuc2Zvcm1lckNvbW1hbmQgPSBHZXRUcmFuc2Zvcm1lckNvbW1hbmQ7XG5leHBvcnRzLkltcG9ydFN0YXR1cyA9IEltcG9ydFN0YXR1cztcbmV4cG9ydHMuSW5kZXhTb3VyY2UgPSBJbmRleFNvdXJjZTtcbmV4cG9ydHMuSW5kZXhUeXBlID0gSW5kZXhUeXBlO1xuZXhwb3J0cy5Jbmhlcml0ZWRQcm9wZXJ0eSA9IEluaGVyaXRlZFByb3BlcnR5O1xuZXhwb3J0cy5JbnRlZ3JhdGlvblN0YXR1cyA9IEludGVncmF0aW9uU3RhdHVzO1xuZXhwb3J0cy5JbnRlZ3JhdGlvblR5cGUgPSBJbnRlZ3JhdGlvblR5cGU7XG5leHBvcnRzLkludGVybmFsU2VydmVyRXhjZXB0aW9uID0gSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb24kMTtcbmV4cG9ydHMuSW50ZXJuYWxTdHJlYW1pbmdFeGNlcHRpb24gPSBJbnRlcm5hbFN0cmVhbWluZ0V4Y2VwdGlvbiQxO1xuZXhwb3J0cy5JbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uID0gSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbiQxO1xuZXhwb3J0cy5JbnZhbGlkUGFyYW1ldGVyRXhjZXB0aW9uID0gSW52YWxpZFBhcmFtZXRlckV4Y2VwdGlvbiQxO1xuZXhwb3J0cy5JbnZhbGlkU2VxdWVuY2VUb2tlbkV4Y2VwdGlvbiA9IEludmFsaWRTZXF1ZW5jZVRva2VuRXhjZXB0aW9uJDE7XG5leHBvcnRzLkxpbWl0RXhjZWVkZWRFeGNlcHRpb24gPSBMaW1pdEV4Y2VlZGVkRXhjZXB0aW9uJDE7XG5leHBvcnRzLkxpc3RBZ2dyZWdhdGVMb2dHcm91cFN1bW1hcmllc0NvbW1hbmQgPSBMaXN0QWdncmVnYXRlTG9nR3JvdXBTdW1tYXJpZXNDb21tYW5kO1xuZXhwb3J0cy5MaXN0QWdncmVnYXRlTG9nR3JvdXBTdW1tYXJpZXNHcm91cEJ5ID0gTGlzdEFnZ3JlZ2F0ZUxvZ0dyb3VwU3VtbWFyaWVzR3JvdXBCeTtcbmV4cG9ydHMuTGlzdEFub21hbGllc0NvbW1hbmQgPSBMaXN0QW5vbWFsaWVzQ29tbWFuZDtcbmV4cG9ydHMuTGlzdEludGVncmF0aW9uc0NvbW1hbmQgPSBMaXN0SW50ZWdyYXRpb25zQ29tbWFuZDtcbmV4cG9ydHMuTGlzdExvZ0Fub21hbHlEZXRlY3RvcnNDb21tYW5kID0gTGlzdExvZ0Fub21hbHlEZXRlY3RvcnNDb21tYW5kO1xuZXhwb3J0cy5MaXN0TG9nR3JvdXBzQ29tbWFuZCA9IExpc3RMb2dHcm91cHNDb21tYW5kO1xuZXhwb3J0cy5MaXN0TG9nR3JvdXBzRm9yUXVlcnlDb21tYW5kID0gTGlzdExvZ0dyb3Vwc0ZvclF1ZXJ5Q29tbWFuZDtcbmV4cG9ydHMuTGlzdFNjaGVkdWxlZFF1ZXJpZXNDb21tYW5kID0gTGlzdFNjaGVkdWxlZFF1ZXJpZXNDb21tYW5kO1xuZXhwb3J0cy5MaXN0U291cmNlc0ZvclMzVGFibGVJbnRlZ3JhdGlvbkNvbW1hbmQgPSBMaXN0U291cmNlc0ZvclMzVGFibGVJbnRlZ3JhdGlvbkNvbW1hbmQ7XG5leHBvcnRzLkxpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kID0gTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmQ7XG5leHBvcnRzLkxpc3RUYWdzTG9nR3JvdXBDb21tYW5kID0gTGlzdFRhZ3NMb2dHcm91cENvbW1hbmQ7XG5leHBvcnRzLkxvZ0dyb3VwQ2xhc3MgPSBMb2dHcm91cENsYXNzO1xuZXhwb3J0cy5NYWxmb3JtZWRRdWVyeUV4Y2VwdGlvbiA9IE1hbGZvcm1lZFF1ZXJ5RXhjZXB0aW9uJDE7XG5leHBvcnRzLk9DU0ZWZXJzaW9uID0gT0NTRlZlcnNpb247XG5leHBvcnRzLk9wZW5TZWFyY2hSZXNvdXJjZVN0YXR1c1R5cGUgPSBPcGVuU2VhcmNoUmVzb3VyY2VTdGF0dXNUeXBlO1xuZXhwb3J0cy5PcGVyYXRpb25BYm9ydGVkRXhjZXB0aW9uID0gT3BlcmF0aW9uQWJvcnRlZEV4Y2VwdGlvbiQxO1xuZXhwb3J0cy5PcmRlckJ5ID0gT3JkZXJCeTtcbmV4cG9ydHMuT3V0cHV0Rm9ybWF0ID0gT3V0cHV0Rm9ybWF0O1xuZXhwb3J0cy5Qb2xpY3lTY29wZSA9IFBvbGljeVNjb3BlO1xuZXhwb3J0cy5Qb2xpY3lUeXBlID0gUG9saWN5VHlwZTtcbmV4cG9ydHMuUHV0QWNjb3VudFBvbGljeUNvbW1hbmQgPSBQdXRBY2NvdW50UG9saWN5Q29tbWFuZDtcbmV4cG9ydHMuUHV0RGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kID0gUHV0RGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kO1xuZXhwb3J0cy5QdXREZWxpdmVyeURlc3RpbmF0aW9uQ29tbWFuZCA9IFB1dERlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kO1xuZXhwb3J0cy5QdXREZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5Q29tbWFuZCA9IFB1dERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kO1xuZXhwb3J0cy5QdXREZWxpdmVyeVNvdXJjZUNvbW1hbmQgPSBQdXREZWxpdmVyeVNvdXJjZUNvbW1hbmQ7XG5leHBvcnRzLlB1dERlc3RpbmF0aW9uQ29tbWFuZCA9IFB1dERlc3RpbmF0aW9uQ29tbWFuZDtcbmV4cG9ydHMuUHV0RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kID0gUHV0RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kO1xuZXhwb3J0cy5QdXRJbmRleFBvbGljeUNvbW1hbmQgPSBQdXRJbmRleFBvbGljeUNvbW1hbmQ7XG5leHBvcnRzLlB1dEludGVncmF0aW9uQ29tbWFuZCA9IFB1dEludGVncmF0aW9uQ29tbWFuZDtcbmV4cG9ydHMuUHV0TG9nRXZlbnRzQ29tbWFuZCA9IFB1dExvZ0V2ZW50c0NvbW1hbmQ7XG5leHBvcnRzLlB1dExvZ0dyb3VwRGVsZXRpb25Qcm90ZWN0aW9uQ29tbWFuZCA9IFB1dExvZ0dyb3VwRGVsZXRpb25Qcm90ZWN0aW9uQ29tbWFuZDtcbmV4cG9ydHMuUHV0TWV0cmljRmlsdGVyQ29tbWFuZCA9IFB1dE1ldHJpY0ZpbHRlckNvbW1hbmQ7XG5leHBvcnRzLlB1dFF1ZXJ5RGVmaW5pdGlvbkNvbW1hbmQgPSBQdXRRdWVyeURlZmluaXRpb25Db21tYW5kO1xuZXhwb3J0cy5QdXRSZXNvdXJjZVBvbGljeUNvbW1hbmQgPSBQdXRSZXNvdXJjZVBvbGljeUNvbW1hbmQ7XG5leHBvcnRzLlB1dFJldGVudGlvblBvbGljeUNvbW1hbmQgPSBQdXRSZXRlbnRpb25Qb2xpY3lDb21tYW5kO1xuZXhwb3J0cy5QdXRTdWJzY3JpcHRpb25GaWx0ZXJDb21tYW5kID0gUHV0U3Vic2NyaXB0aW9uRmlsdGVyQ29tbWFuZDtcbmV4cG9ydHMuUHV0VHJhbnNmb3JtZXJDb21tYW5kID0gUHV0VHJhbnNmb3JtZXJDb21tYW5kO1xuZXhwb3J0cy5RdWVyeUxhbmd1YWdlID0gUXVlcnlMYW5ndWFnZTtcbmV4cG9ydHMuUXVlcnlTdGF0dXMgPSBRdWVyeVN0YXR1cztcbmV4cG9ydHMuUmVzb3VyY2VBbHJlYWR5RXhpc3RzRXhjZXB0aW9uID0gUmVzb3VyY2VBbHJlYWR5RXhpc3RzRXhjZXB0aW9uJDE7XG5leHBvcnRzLlJlc291cmNlTm90Rm91bmRFeGNlcHRpb24gPSBSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uJDE7XG5leHBvcnRzLlMzVGFibGVJbnRlZ3JhdGlvblNvdXJjZVN0YXR1cyA9IFMzVGFibGVJbnRlZ3JhdGlvblNvdXJjZVN0YXR1cztcbmV4cG9ydHMuU2NoZWR1bGVkUXVlcnlEZXN0aW5hdGlvblR5cGUgPSBTY2hlZHVsZWRRdWVyeURlc3RpbmF0aW9uVHlwZTtcbmV4cG9ydHMuU2NoZWR1bGVkUXVlcnlTdGF0ZSA9IFNjaGVkdWxlZFF1ZXJ5U3RhdGU7XG5leHBvcnRzLlNjb3BlID0gU2NvcGU7XG5leHBvcnRzLlNlcnZpY2VRdW90YUV4Y2VlZGVkRXhjZXB0aW9uID0gU2VydmljZVF1b3RhRXhjZWVkZWRFeGNlcHRpb24kMTtcbmV4cG9ydHMuU2VydmljZVVuYXZhaWxhYmxlRXhjZXB0aW9uID0gU2VydmljZVVuYXZhaWxhYmxlRXhjZXB0aW9uJDE7XG5leHBvcnRzLlNlc3Npb25TdHJlYW1pbmdFeGNlcHRpb24gPSBTZXNzaW9uU3RyZWFtaW5nRXhjZXB0aW9uJDE7XG5leHBvcnRzLlNlc3Npb25UaW1lb3V0RXhjZXB0aW9uID0gU2Vzc2lvblRpbWVvdXRFeGNlcHRpb24kMTtcbmV4cG9ydHMuU3RhbmRhcmRVbml0ID0gU3RhbmRhcmRVbml0O1xuZXhwb3J0cy5TdGFydExpdmVUYWlsQ29tbWFuZCA9IFN0YXJ0TGl2ZVRhaWxDb21tYW5kO1xuZXhwb3J0cy5TdGFydFF1ZXJ5Q29tbWFuZCA9IFN0YXJ0UXVlcnlDb21tYW5kO1xuZXhwb3J0cy5TdGF0ZSA9IFN0YXRlO1xuZXhwb3J0cy5TdG9wUXVlcnlDb21tYW5kID0gU3RvcFF1ZXJ5Q29tbWFuZDtcbmV4cG9ydHMuU3VwcHJlc3Npb25TdGF0ZSA9IFN1cHByZXNzaW9uU3RhdGU7XG5leHBvcnRzLlN1cHByZXNzaW9uVHlwZSA9IFN1cHByZXNzaW9uVHlwZTtcbmV4cG9ydHMuU3VwcHJlc3Npb25Vbml0ID0gU3VwcHJlc3Npb25Vbml0O1xuZXhwb3J0cy5UYWdMb2dHcm91cENvbW1hbmQgPSBUYWdMb2dHcm91cENvbW1hbmQ7XG5leHBvcnRzLlRhZ1Jlc291cmNlQ29tbWFuZCA9IFRhZ1Jlc291cmNlQ29tbWFuZDtcbmV4cG9ydHMuVGVzdE1ldHJpY0ZpbHRlckNvbW1hbmQgPSBUZXN0TWV0cmljRmlsdGVyQ29tbWFuZDtcbmV4cG9ydHMuVGVzdFRyYW5zZm9ybWVyQ29tbWFuZCA9IFRlc3RUcmFuc2Zvcm1lckNvbW1hbmQ7XG5leHBvcnRzLlRocm90dGxpbmdFeGNlcHRpb24gPSBUaHJvdHRsaW5nRXhjZXB0aW9uJDE7XG5leHBvcnRzLlRvb01hbnlUYWdzRXhjZXB0aW9uID0gVG9vTWFueVRhZ3NFeGNlcHRpb24kMTtcbmV4cG9ydHMuVHlwZSA9IFR5cGU7XG5leHBvcnRzLlVucmVjb2duaXplZENsaWVudEV4Y2VwdGlvbiA9IFVucmVjb2duaXplZENsaWVudEV4Y2VwdGlvbiQxO1xuZXhwb3J0cy5VbnRhZ0xvZ0dyb3VwQ29tbWFuZCA9IFVudGFnTG9nR3JvdXBDb21tYW5kO1xuZXhwb3J0cy5VbnRhZ1Jlc291cmNlQ29tbWFuZCA9IFVudGFnUmVzb3VyY2VDb21tYW5kO1xuZXhwb3J0cy5VcGRhdGVBbm9tYWx5Q29tbWFuZCA9IFVwZGF0ZUFub21hbHlDb21tYW5kO1xuZXhwb3J0cy5VcGRhdGVEZWxpdmVyeUNvbmZpZ3VyYXRpb25Db21tYW5kID0gVXBkYXRlRGVsaXZlcnlDb25maWd1cmF0aW9uQ29tbWFuZDtcbmV4cG9ydHMuVXBkYXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZCA9IFVwZGF0ZUxvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmQ7XG5leHBvcnRzLlVwZGF0ZVNjaGVkdWxlZFF1ZXJ5Q29tbWFuZCA9IFVwZGF0ZVNjaGVkdWxlZFF1ZXJ5Q29tbWFuZDtcbmV4cG9ydHMuVmFsaWRhdGlvbkV4Y2VwdGlvbiA9IFZhbGlkYXRpb25FeGNlcHRpb24kMTtcbmV4cG9ydHMucGFnaW5hdGVEZXNjcmliZUNvbmZpZ3VyYXRpb25UZW1wbGF0ZXMgPSBwYWdpbmF0ZURlc2NyaWJlQ29uZmlndXJhdGlvblRlbXBsYXRlcztcbmV4cG9ydHMucGFnaW5hdGVEZXNjcmliZURlbGl2ZXJpZXMgPSBwYWdpbmF0ZURlc2NyaWJlRGVsaXZlcmllcztcbmV4cG9ydHMucGFnaW5hdGVEZXNjcmliZURlbGl2ZXJ5RGVzdGluYXRpb25zID0gcGFnaW5hdGVEZXNjcmliZURlbGl2ZXJ5RGVzdGluYXRpb25zO1xuZXhwb3J0cy5wYWdpbmF0ZURlc2NyaWJlRGVsaXZlcnlTb3VyY2VzID0gcGFnaW5hdGVEZXNjcmliZURlbGl2ZXJ5U291cmNlcztcbmV4cG9ydHMucGFnaW5hdGVEZXNjcmliZURlc3RpbmF0aW9ucyA9IHBhZ2luYXRlRGVzY3JpYmVEZXN0aW5hdGlvbnM7XG5leHBvcnRzLnBhZ2luYXRlRGVzY3JpYmVMb2dHcm91cHMgPSBwYWdpbmF0ZURlc2NyaWJlTG9nR3JvdXBzO1xuZXhwb3J0cy5wYWdpbmF0ZURlc2NyaWJlTG9nU3RyZWFtcyA9IHBhZ2luYXRlRGVzY3JpYmVMb2dTdHJlYW1zO1xuZXhwb3J0cy5wYWdpbmF0ZURlc2NyaWJlTWV0cmljRmlsdGVycyA9IHBhZ2luYXRlRGVzY3JpYmVNZXRyaWNGaWx0ZXJzO1xuZXhwb3J0cy5wYWdpbmF0ZURlc2NyaWJlU3Vic2NyaXB0aW9uRmlsdGVycyA9IHBhZ2luYXRlRGVzY3JpYmVTdWJzY3JpcHRpb25GaWx0ZXJzO1xuZXhwb3J0cy5wYWdpbmF0ZUZpbHRlckxvZ0V2ZW50cyA9IHBhZ2luYXRlRmlsdGVyTG9nRXZlbnRzO1xuZXhwb3J0cy5wYWdpbmF0ZUdldExvZ0V2ZW50cyA9IHBhZ2luYXRlR2V0TG9nRXZlbnRzO1xuZXhwb3J0cy5wYWdpbmF0ZUdldFNjaGVkdWxlZFF1ZXJ5SGlzdG9yeSA9IHBhZ2luYXRlR2V0U2NoZWR1bGVkUXVlcnlIaXN0b3J5O1xuZXhwb3J0cy5wYWdpbmF0ZUxpc3RBZ2dyZWdhdGVMb2dHcm91cFN1bW1hcmllcyA9IHBhZ2luYXRlTGlzdEFnZ3JlZ2F0ZUxvZ0dyb3VwU3VtbWFyaWVzO1xuZXhwb3J0cy5wYWdpbmF0ZUxpc3RBbm9tYWxpZXMgPSBwYWdpbmF0ZUxpc3RBbm9tYWxpZXM7XG5leHBvcnRzLnBhZ2luYXRlTGlzdExvZ0Fub21hbHlEZXRlY3RvcnMgPSBwYWdpbmF0ZUxpc3RMb2dBbm9tYWx5RGV0ZWN0b3JzO1xuZXhwb3J0cy5wYWdpbmF0ZUxpc3RMb2dHcm91cHNGb3JRdWVyeSA9IHBhZ2luYXRlTGlzdExvZ0dyb3Vwc0ZvclF1ZXJ5O1xuZXhwb3J0cy5wYWdpbmF0ZUxpc3RTY2hlZHVsZWRRdWVyaWVzID0gcGFnaW5hdGVMaXN0U2NoZWR1bGVkUXVlcmllcztcbmV4cG9ydHMucGFnaW5hdGVMaXN0U291cmNlc0ZvclMzVGFibGVJbnRlZ3JhdGlvbiA9IHBhZ2luYXRlTGlzdFNvdXJjZXNGb3JTM1RhYmxlSW50ZWdyYXRpb247XG4iLCAiLypcbiAqIENvcHlyaWdodCAoYykgMjAyNSwgU2FsZXNmb3JjZSwgSW5jLlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yXG4gKiBGb3IgZnVsbCBsaWNlbnNlIHRleHQsIHNlZSB0aGUgbGljZW5zZS50eHQgZmlsZSBpbiB0aGUgcmVwbyByb290IG9yIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICovXG5pbXBvcnQgdHlwZSB7RXhwcmVzc30gZnJvbSAnZXhwcmVzcyc7XG5pbXBvcnQge2NyZWF0ZUFwcH0gZnJvbSAnLi9hcHAvc2VydmVyLmpzJztcbmltcG9ydCB7U2VydmVybGVzc0FkYXB0ZXIsIGdldEZsYXR0ZW5lZEhlYWRlcnNNYXB9IGZyb20gJ0BoNGFkL3NlcnZlcmxlc3MtYWRhcHRlcic7XG5pbXBvcnQge0RlZmF1bHRIYW5kbGVyfSBmcm9tICdAaDRhZC9zZXJ2ZXJsZXNzLWFkYXB0ZXIvbGliL2hhbmRsZXJzL2RlZmF1bHQnO1xuaW1wb3J0IHtDYWxsYmFja1Jlc29sdmVyfSBmcm9tICdAaDRhZC9zZXJ2ZXJsZXNzLWFkYXB0ZXIvbGliL3Jlc29sdmVycy9jYWxsYmFjayc7XG5pbXBvcnQge0FwaUdhdGV3YXlWMUFkYXB0ZXJ9IGZyb20gJ0BoNGFkL3NlcnZlcmxlc3MtYWRhcHRlci9saWIvYWRhcHRlcnMvYXdzJztcbmltcG9ydCB7RXhwcmVzc0ZyYW1ld29ya30gZnJvbSAnQGg0YWQvc2VydmVybGVzcy1hZGFwdGVyL2xpYi9mcmFtZXdvcmtzL2V4cHJlc3MnO1xuaW1wb3J0IHR5cGUge0FQSUdhdGV3YXlQcm94eUV2ZW50LCBDb250ZXh0LCBBUElHYXRld2F5UHJveHlSZXN1bHQsIENhbGxiYWNrfSBmcm9tICdhd3MtbGFtYmRhJztcblxuZXhwb3J0IGNvbnN0IENPTlRFTlRfVFlQRSA9ICdjb250ZW50LXR5cGUnO1xuZXhwb3J0IGNvbnN0IFhfT1JJR0lOQUxfQ09OVEVOVF9UWVBFID0gJ3gtb3JpZ2luYWwtY29udGVudC10eXBlJztcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbnR5cGUgSGFuZGxlckZ1bmN0aW9uID0gKGV2ZW50OiBBUElHYXRld2F5UHJveHlFdmVudCwgY29udGV4dDogQ29udGV4dCwgY2FsbGJhY2s6IENhbGxiYWNrKSA9PiBhbnk7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG5leHBvcnQgY29uc3QgcHJvY2Vzc0xhbWJkYVJlc3BvbnNlID0gKHJlc3BvbnNlOiBBUElHYXRld2F5UHJveHlSZXN1bHQsIGV2ZW50OiBBUElHYXRld2F5UHJveHlFdmVudCk6IGFueSA9PiB7XG4gIGlmICghcmVzcG9uc2UpIHJldHVybiByZXNwb25zZTtcblxuICBjb25zdCBjb3JyZWxhdGlvbklkID0gZXZlbnQuaGVhZGVycz8uWyd4LWNvcnJlbGF0aW9uLWlkJ107XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgY29uc3Qgam9pbmVkSGVhZGVycyA9IGdldEZsYXR0ZW5lZEhlYWRlcnNNYXAocmVzcG9uc2UubXVsdGlWYWx1ZUhlYWRlcnMgfHwgKHt9IGFzIGFueSksICcsJywgdHJ1ZSk7XG4gIGpvaW5lZEhlYWRlcnMuZGF0ZSA9IG5ldyBEYXRlKCkudG9VVENTdHJpbmcoKTtcbiAgZGVsZXRlIHJlc3BvbnNlLm11bHRpVmFsdWVIZWFkZXJzO1xuXG4gIGlmIChjb3JyZWxhdGlvbklkKSB7XG4gICAgam9pbmVkSGVhZGVyc1sneC1jb3JyZWxhdGlvbi1pZCddID0gY29ycmVsYXRpb25JZDtcbiAgfVxuXG4gIGNvbnN0IG9yaWdpbmFsQ29udGVudFR5cGUgPSBqb2luZWRIZWFkZXJzW1hfT1JJR0lOQUxfQ09OVEVOVF9UWVBFXTtcbiAgaWYgKG9yaWdpbmFsQ29udGVudFR5cGUpIHtcbiAgICBqb2luZWRIZWFkZXJzW0NPTlRFTlRfVFlQRV0gPSBvcmlnaW5hbENvbnRlbnRUeXBlO1xuICAgIGRlbGV0ZSBqb2luZWRIZWFkZXJzW1hfT1JJR0lOQUxfQ09OVEVOVF9UWVBFXTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgLi4ucmVzcG9uc2UsXG4gICAgaGVhZGVyczogam9pbmVkSGVhZGVycyxcbiAgfTtcbn07XG5cbmNvbnN0IGNyZWF0ZUxhbWJkYUhhbmRsZXIgPSAoYXBwOiBFeHByZXNzKTogSGFuZGxlckZ1bmN0aW9uID0+IHtcbiAgcmV0dXJuIChldmVudDogQVBJR2F0ZXdheVByb3h5RXZlbnQsIGNvbnRleHQ6IENvbnRleHQsIGNhbGxiYWNrOiBDYWxsYmFjaykgPT4ge1xuICAgIGNvbnN0IHNlcnZlcmxlc3NBZGFwdGVySGFuZGxlciA9IFNlcnZlcmxlc3NBZGFwdGVyLm5ldyhhcHApXG4gICAgICAuc2V0RnJhbWV3b3JrKG5ldyBFeHByZXNzRnJhbWV3b3JrKCkpXG4gICAgICAuc2V0SGFuZGxlcihuZXcgRGVmYXVsdEhhbmRsZXIoKSlcbiAgICAgIC5zZXRSZXNvbHZlcihuZXcgQ2FsbGJhY2tSZXNvbHZlcigpKVxuICAgICAgLmFkZEFkYXB0ZXIobmV3IEFwaUdhdGV3YXlWMUFkYXB0ZXIoe2xvd2VyY2FzZVJlcXVlc3RIZWFkZXJzOiB0cnVlLCB0aHJvd09uQ2h1bmtlZFRyYW5zZmVyRW5jb2Rpbmc6IGZhbHNlfSkpXG4gICAgICAuYnVpbGQoKSBhcyBIYW5kbGVyRnVuY3Rpb247XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIChjb250ZXh0IGFzIGFueSkuY2FsbGJhY2tXYWl0c0ZvckVtcHR5RXZlbnRMb29wID0gZmFsc2U7XG5cbiAgICBjb25zdCBtYW5hZ2VkQ2FsbGJhY2sgPSAoZXJyOiBFcnJvciB8IG51bGwsIHJlc3BvbnNlOiBBUElHYXRld2F5UHJveHlSZXN1bHQpID0+IHtcbiAgICAgIHJldHVybiBjYWxsYmFjayhlcnIsIHByb2Nlc3NMYW1iZGFSZXNwb25zZShyZXNwb25zZSwgZXZlbnQpKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIHNlcnZlcmxlc3NBZGFwdGVySGFuZGxlcihldmVudCwgY29udGV4dCwgbWFuYWdlZENhbGxiYWNrIGFzIENhbGxiYWNrKTtcbiAgfTtcbn07XG5cbmNvbnN0IG1ydEFwcCA9IGNyZWF0ZUFwcCgpO1xuXG5leHBvcnQgY29uc3QgYXBwID0gbXJ0QXBwO1xuZXhwb3J0IGNvbnN0IGdldCA9IGNyZWF0ZUxhbWJkYUhhbmRsZXIobXJ0QXBwKTtcbiIsICIvKlxuICogQ29weXJpZ2h0IChjKSAyMDI1LCBTYWxlc2ZvcmNlLCBJbmMuXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTJcbiAqIEZvciBmdWxsIGxpY2Vuc2UgdGV4dCwgc2VlIHRoZSBsaWNlbnNlLnR4dCBmaWxlIGluIHRoZSByZXBvIHJvb3Qgb3IgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKi9cbmltcG9ydCBleHByZXNzLCB7dHlwZSBFeHByZXNzLCB0eXBlIFJlcXVlc3QsIHR5cGUgUmVzcG9uc2UsIHR5cGUgTmV4dEZ1bmN0aW9uLCB0eXBlIFJlcXVlc3RIYW5kbGVyfSBmcm9tICdleHByZXNzJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHtmaWxlVVJMVG9QYXRofSBmcm9tICd1cmwnO1xuaW1wb3J0IGJhc2ljQXV0aCBmcm9tICdleHByZXNzLWJhc2ljLWF1dGgnO1xuaW1wb3J0IHtcbiAgY3JlYXRlTVJUUHJveHlNaWRkbGV3YXJlcyxcbiAgY3JlYXRlTVJUUmVxdWVzdFByb2Nlc3Nvck1pZGRsZXdhcmUsXG4gIGNyZWF0ZU1SVFN0YXRpY0Fzc2V0U2VydmluZ01pZGRsZXdhcmUsXG4gIGlzTG9jYWwsXG4gIGNyZWF0ZU1SVENvbW1vbk1pZGRsZXdhcmUsXG4gIGNyZWF0ZU1SVENsZWFuVXBNaWRkbGV3YXJlLFxuICBNZXRyaWNzU2VuZGVyLFxuICBnZXREaW1lbnNpb25zLFxufSBmcm9tICdAc2FsZXNmb3JjZS9tcnQtdXRpbGl0aWVzJztcbmltcG9ydCB7XG4gIGVjaG8sXG4gIGV4Y2VwdGlvbixcbiAgdGxzVmVyc2lvblRlc3QsXG4gIGNhY2hlVGVzdCxcbiAgbWVtb3J5VGVzdCxcbiAgY29va2llVGVzdCxcbiAgaGVhZGVyVGVzdCxcbiAgcmVzcG9uc2VIZWFkZXJzVGVzdCxcbiAgbG9nZ2luZ01pZGRsZXdhcmUsXG4gIGVudkJhc2VQYXRoTWlkZGxld2FyZSxcbiAgc3RyZWFtaW5nVGVzdCxcbiAgc3NyQnVuZGxlRmlsZVRlc3QsXG4gIHN0cmVhbWluZ1Jlc3BvbnNlTGFyZ2UsXG4gIG11bHRpVmFsdWVIZWFkZXJzVGVzdCxcbiAgc2V0U3RhdHVzVGVzdCxcbiAgd2luc3RvbkxvZ2dpbmcsXG4gIG1hc3NMb2dnaW5nLFxuICBkZWxheWVkTG9nZ2luZyxcbiAgbGFyZ2VMb2dnaW5nLFxuICB0cmFjZUxvZ2dpbmcsXG4gIGRhdGFTdG9yZVRlc3QsXG4gIHNlY3JldHNNYW5hZ2VyVGVzdCxcbiAgcHJveHlUcmFuc2Zvcm1hdGlvblRlc3QsXG59IGZyb20gJy4uL3V0aWxzL3JlZmVyZW5jZS1yb3V0ZXMuanMnO1xuaW1wb3J0IHtpc29sYXRpb25UZXN0c30gZnJvbSAnLi4vdXRpbHMvaXNvbGF0aW9uLWFjdGlvbnMuanMnO1xuXG5jb25zdCBleHRyYVJlbWFwcGVkSGVhZGVyc01pZGRsZXdhcmUgPSAocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlLCBuZXh0OiBOZXh0RnVuY3Rpb24pID0+IHtcbiAgcmVzLnNldCgnc2VydmVyJywgJ21ydC1yZWZlcmVuY2UtYXBwJyk7XG4gIG5leHQoKTtcbn07XG5cbmNvbnN0IGNyZWF0ZVJlcXVlc3RUaW1pbmdNaWRkbGV3YXJlID0gKGFwcDogQXBwV2l0aE1ldHJpY3MpID0+IChyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UsIG5leHQ6IE5leHRGdW5jdGlvbikgPT4ge1xuICByZXMubG9jYWxzLnJlcXVlc3RTdGFydFRpbWUgPSBEYXRlLm5vdygpO1xuICBjb25zdCBhZnRlclJlc3BvbnNlID0gKCkgPT4ge1xuICAgIGNvbnN0IHJlc3BvbnNlVGltZSA9IERhdGUubm93KCkgLSByZXMubG9jYWxzLnJlcXVlc3RTdGFydFRpbWU7XG4gICAgaWYgKGFwcC5tZXRyaWNzKSB7XG4gICAgICBjb25zdCBtZXRyaWNzID0gW1xuICAgICAgICB7bmFtZTogJ1JlcXVlc3RUaW1lJywgdmFsdWU6IHJlc3BvbnNlVGltZSwgdW5pdDogJ01pbGxpc2Vjb25kcycsIGRpbWVuc2lvbnM6IGdldERpbWVuc2lvbnMoKX0sXG4gICAgICBdO1xuICAgICAgY29uc3QgcmVxdWVzdFJlc3VsdCA9IHtuYW1lOiAnUmVxdWVzdFN1Y2Nlc3MnLCB2YWx1ZTogMSwgdW5pdDogJ0NvdW50JywgZGltZW5zaW9uczogZ2V0RGltZW5zaW9ucygpfTtcbiAgICAgIGlmIChyZXMuc3RhdHVzQ29kZSA9PT0gNDA0KSB7XG4gICAgICAgIHJlcXVlc3RSZXN1bHQubmFtZSA9ICdSZXF1ZXN0RmFpbGVkNDA0JztcbiAgICAgIH0gZWxzZSBpZiAocmVzLnN0YXR1c0NvZGUgPj0gNDAwICYmIHJlcy5zdGF0dXNDb2RlIDw9IDQ5OSkge1xuICAgICAgICByZXF1ZXN0UmVzdWx0Lm5hbWUgPSAnUmVxdWVzdEZhaWxlZDQwMCc7XG4gICAgICB9IGVsc2UgaWYgKHJlcy5zdGF0dXNDb2RlID49IDUwMCAmJiByZXMuc3RhdHVzQ29kZSA8PSA1OTkpIHtcbiAgICAgICAgcmVxdWVzdFJlc3VsdC5uYW1lID0gJ1JlcXVlc3RGYWlsZWQ1MDAnO1xuICAgICAgfVxuICAgICAgbWV0cmljcy5wdXNoKHJlcXVlc3RSZXN1bHQpO1xuICAgICAgYXBwLm1ldHJpY3Muc2VuZChtZXRyaWNzLCB0cnVlKTtcbiAgICB9XG4gIH07XG4gIHJlcy5vbignZmluaXNoJywgYWZ0ZXJSZXNwb25zZSk7XG4gIHJlcy5vbignZXJyb3InLCBhZnRlclJlc3BvbnNlKTtcbiAgbmV4dCgpO1xufTtcblxudHlwZSBBcHBXaXRoTWV0cmljcyA9IEV4cHJlc3MgJiB7XG4gIG1ldHJpY3M6IE1ldHJpY3NTZW5kZXI7XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlQXBwID0gKCk6IEFwcFdpdGhNZXRyaWNzID0+IHtcbiAgY29uc3QgYXBwID0gZXhwcmVzcygpIGFzIEFwcFdpdGhNZXRyaWNzO1xuICBhcHAuZGlzYWJsZSgneC1wb3dlcmVkLWJ5Jyk7XG4gIGFwcC51c2UoZXh0cmFSZW1hcHBlZEhlYWRlcnNNaWRkbGV3YXJlKTtcbiAgYXBwLm1ldHJpY3MgPSBNZXRyaWNzU2VuZGVyLmdldFNlbmRlcigpO1xuICBhcHAudXNlKGNyZWF0ZVJlcXVlc3RUaW1pbmdNaWRkbGV3YXJlKGFwcCkpO1xuICBhcHAudXNlKGNyZWF0ZU1SVENvbW1vbk1pZGRsZXdhcmUoKSBhcyBSZXF1ZXN0SGFuZGxlcik7XG5cbiAgaWYgKGlzTG9jYWwoKSkge1xuICAgIGNvbnN0IF9fZGlybmFtZSA9IHBhdGguZGlybmFtZShmaWxlVVJMVG9QYXRoKGltcG9ydC5tZXRhLnVybCkpO1xuICAgIGNvbnN0IHJwRXh0ZW5zaW9uID0gcHJvY2Vzcy5lbnYuUlBfRVhURU5TSU9OID8gJy50cycgOiAnLmpzJztcbiAgICBjb25zdCByZXF1ZXN0UHJvY2Vzc29yUGF0aCA9IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsIGAuLi9yZXF1ZXN0LXByb2Nlc3NvciR7cnBFeHRlbnNpb259YCk7XG4gICAgY29uc29sZS5sb2coJ1VzaW5nIHJlcXVlc3QgcHJvY2Vzc29yOicsIHJlcXVlc3RQcm9jZXNzb3JQYXRoKTtcblxuICAgIGNvbnN0IHByb3h5Q29uZmlncyA9IFtcbiAgICAgIHtcbiAgICAgICAgaG9zdDogJ2h0dHBzOi8vcGxheWdyb3VuZC0yMngtdXMtd2VzdC0xLm1vYmlmeS1zdG9yZWZyb250LmNvbScsXG4gICAgICAgIHBhdGg6ICdhcGknLFxuICAgICAgfSxcbiAgICBdO1xuICAgIGFwcC51c2UoY3JlYXRlTVJUUmVxdWVzdFByb2Nlc3Nvck1pZGRsZXdhcmUocmVxdWVzdFByb2Nlc3NvclBhdGgsIHByb3h5Q29uZmlncykgYXMgUmVxdWVzdEhhbmRsZXIpO1xuICAgIGNvbnN0IG1ydFByb3hpZXMgPSBjcmVhdGVNUlRQcm94eU1pZGRsZXdhcmVzKHByb3h5Q29uZmlncyk7XG4gICAgbXJ0UHJveGllcy5mb3JFYWNoKChwcm94eSkgPT4ge1xuICAgICAgYXBwLnVzZShwcm94eS5wYXRoLCBwcm94eS5mbik7XG4gICAgfSk7XG4gICAgY29uc3Qgc3RhdGljQXNzZXREaXIgPSBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnLi4vc3RhdGljJyk7XG4gICAgY29uc29sZS5sb2coJ1VzaW5nIHN0YXRpYyBhc3NldCBkaXJlY3Rvcnk6Jywgc3RhdGljQXNzZXREaXIpO1xuICAgIGFwcC51c2UoXG4gICAgICBgL21vYmlmeS9idW5kbGUvJHtwcm9jZXNzLmVudi5CVU5ETEVfSUQgfHwgJzEnfS9zdGF0aWMvYCxcbiAgICAgIGNyZWF0ZU1SVFN0YXRpY0Fzc2V0U2VydmluZ01pZGRsZXdhcmUoc3RhdGljQXNzZXREaXIpIGFzIFJlcXVlc3RIYW5kbGVyLFxuICAgICk7XG4gIH1cbiAgYXBwLnVzZShjcmVhdGVNUlRDbGVhblVwTWlkZGxld2FyZSgpIGFzIFJlcXVlc3RIYW5kbGVyKTtcblxuICBhcHAuZ2V0KCcvZmF2aWNvbi5pY28nLCBleHByZXNzLnN0YXRpYygnc3RhdGljL2Zhdmljb24uaWNvJykpO1xuICBhcHAuZ2V0KCcvcm9ib3RzLnR4dCcsIGV4cHJlc3Muc3RhdGljKCdzdGF0aWMvcm9ib3RzLnR4dCcpKTtcblxuICBhcHAudXNlKChyZXEsIHJlcywgbmV4dCkgPT4ge1xuICAgIHJlcy5zZXQoJ0NhY2hlLUNvbnRyb2wnLCAnbm8tY2FjaGUnKTtcbiAgICByZXR1cm4gbmV4dCgpO1xuICB9KTtcblxuICBhcHAudXNlKGxvZ2dpbmdNaWRkbGV3YXJlKTtcbiAgYXBwLnVzZShlbnZCYXNlUGF0aE1pZGRsZXdhcmUpO1xuXG4gIGFwcC5hbGwoJy9leGNlcHRpb24nLCBleGNlcHRpb24pO1xuICBhcHAuZ2V0KCcvdGxzJywgdGxzVmVyc2lvblRlc3QpO1xuICBhcHAuZ2V0KCcvY2FjaGUnLCBjYWNoZVRlc3QpO1xuICBhcHAuZ2V0KCcvY2FjaGUvOmR1cmF0aW9uJywgY2FjaGVUZXN0KTtcbiAgYXBwLmdldCgnL21lbXRlc3QnLCBtZW1vcnlUZXN0KTtcbiAgYXBwLmdldCgnL2Nvb2tpZScsIGNvb2tpZVRlc3QpO1xuICBhcHAuZ2V0KCcvaGVhZGVycycsIGhlYWRlclRlc3QpO1xuICBhcHAuZ2V0KCcvaXNvbGF0aW9uJywgaXNvbGF0aW9uVGVzdHMpO1xuICBhcHAuZ2V0KCcvc2V0LXJlc3BvbnNlLWhlYWRlcnMnLCByZXNwb25zZUhlYWRlcnNUZXN0KTtcbiAgYXBwLmdldCgnL211bHRpLXZhbHVlLWhlYWRlcnMnLCBtdWx0aVZhbHVlSGVhZGVyc1Rlc3QpO1xuICBhcHAuZ2V0KCcvc3RyZWFtaW5nJywgc3RyZWFtaW5nVGVzdCk7XG4gIGFwcC5nZXQoJy9zc3Itc2hhcmVkJywgc3NyQnVuZGxlRmlsZVRlc3QpO1xuICBhcHAuZ2V0KCcvc3RyZWFtaW5nLWxhcmdlJywgc3RyZWFtaW5nUmVzcG9uc2VMYXJnZSk7XG4gIGFwcC5nZXQoJy9zZXQtc3RhdHVzJywgc2V0U3RhdHVzVGVzdCk7XG4gIGFwcC5nZXQoJy93aW5zdG9uLWxvZ2dpbmcnLCB3aW5zdG9uTG9nZ2luZyk7XG4gIGFwcC5nZXQoJy9kZWxheWVkLWxvZ2dpbmcnLCBkZWxheWVkTG9nZ2luZyk7XG4gIGFwcC5nZXQoJy9tYXNzLWxvZ2dpbmcnLCBtYXNzTG9nZ2luZyk7XG4gIGFwcC5nZXQoJy9sYXJnZS1sb2dnaW5nJywgbGFyZ2VMb2dnaW5nKTtcbiAgYXBwLmdldCgnL3RyYWNlLWxvZ2dpbmcnLCB0cmFjZUxvZ2dpbmcpO1xuICBhcHAuZ2V0KCcvZGF0YS1zdG9yZS86a2V5JywgZGF0YVN0b3JlVGVzdCk7XG4gIGFwcC5nZXQoJy9zZWNyZXRzLW1hbmFnZXInLCBzZWNyZXRzTWFuYWdlclRlc3QpO1xuICBhcHAuZ2V0KCcvcHJveHktdHJhbnNmb3JtYXRpb24nLCBwcm94eVRyYW5zZm9ybWF0aW9uVGVzdCk7XG5cbiAgYXBwLmFsbCgnL2F1dGgvbG9nb3V0JywgKHJlcSwgcmVzKSA9PiByZXMuc3RhdHVzKDQwMSkuc2VuZCgnTG9nZ2VkIG91dCcpKTtcbiAgYXBwLnVzZShcbiAgICAnL2F1dGh7KmFsaWFzfScsXG4gICAgYmFzaWNBdXRoKHtcbiAgICAgIHVzZXJzOiB7bW9iaWZ5OiAnc3VwZXJzZWNyZXQnfSxcbiAgICAgIGNoYWxsZW5nZTogdHJ1ZSxcbiAgICAgIHJlYWxtOiBwcm9jZXNzLmVudi5FWFRFUk5BTF9ET01BSU5fTkFNRSB8fCAnZWNoby10ZXN0JyxcbiAgICB9KSxcbiAgKTtcbiAgYXBwLmFsbCgnL2F1dGh7KmFsaWFzfScsIGVjaG8pO1xuICBhcHAuYWxsKCcveypzcGxhdH0nLCBlY2hvKTtcbiAgYXBwLnNldCgnanNvbiBzcGFjZXMnLCA0KTtcbiAgcmV0dXJuIGFwcDtcbn07XG4iLCAiLypcbiAqIENvcHlyaWdodCAoYykgMjAyNSwgU2FsZXNmb3JjZSwgSW5jLlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yXG4gKiBGb3IgZnVsbCBsaWNlbnNlIHRleHQsIHNlZSB0aGUgbGljZW5zZS50eHQgZmlsZSBpbiB0aGUgcmVwbyByb290IG9yIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICovXG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgSW1wb3J0IGRhdGEtc3RvcmUgc3ltYm9scyBmcm9tIGBAc2FsZXNmb3JjZS9tcnQtdXRpbGl0aWVzL2RhdGEtc3RvcmVgLlxuICogVGhpcyBjb21wYXRpYmlsaXR5IHBhdGggaXMga2VwdCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eS5cbiAqL1xuZXhwb3J0ICogZnJvbSAnLi4vZGF0YS1zdG9yZS9pbmRleC5qcyc7XG4iLCAiLypcbiAqIENvcHlyaWdodCAoYykgMjAyNSwgU2FsZXNmb3JjZSwgSW5jLlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yXG4gKiBGb3IgZnVsbCBsaWNlbnNlIHRleHQsIHNlZSB0aGUgbGljZW5zZS50eHQgZmlsZSBpbiB0aGUgcmVwbyByb290IG9yIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICovXG5cbi8qKlxuICogRGV0ZXJtaW5lcyBpZiB0aGUgYXBwbGljYXRpb24gaXMgcnVubmluZyBpbiBhIGxvY2FsIGRldmVsb3BtZW50IGVudmlyb25tZW50LlxuICpcbiAqIFRoaXMgZnVuY3Rpb24gY2hlY2tzIGZvciB0aGUgcHJlc2VuY2Ugb2YgdGhlIEFXU19MQU1CREFfRlVOQ1RJT05fTkFNRSBlbnZpcm9ubWVudFxuICogdmFyaWFibGUgdG8gZGV0ZXJtaW5lIGlmIHRoZSBjb2RlIGlzIHJ1bm5pbmcgaW4gQVdTIExhbWJkYSAocHJvZHVjdGlvbikgb3JcbiAqIGxvY2FsbHkgKGRldmVsb3BtZW50KS5cbiAqXG4gKiBAcmV0dXJucyBUcnVlIGlmIHJ1bm5pbmcgbG9jYWxseSwgZmFsc2UgaWYgcnVubmluZyBpbiBBV1MgTGFtYmRhXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGlmIChpc0xvY2FsKCkpIHtcbiAqICAgY29uc29sZS5sb2coJ1J1bm5pbmcgaW4gZGV2ZWxvcG1lbnQgbW9kZScpO1xuICogfSBlbHNlIHtcbiAqICAgY29uc29sZS5sb2coJ1J1bm5pbmcgaW4gcHJvZHVjdGlvbiAoQVdTIExhbWJkYSknKTtcbiAqIH1cbiAqIGBgYFxuICovXG5leHBvcnQgY29uc3QgaXNMb2NhbCA9ICgpOiBib29sZWFuID0+IHtcbiAgcmV0dXJuICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocHJvY2Vzcy5lbnYsICdBV1NfTEFNQkRBX0ZVTkNUSU9OX05BTUUnKTtcbn07XG5cbi8qKlxuICogTG9nIGFuIGludGVybmFsIE1SVCBlcnJvci5cbiAqXG4gKiBAcGFyYW0gbmFtZXNwYWNlIE5hbWVzcGFjZSBmb3IgdGhlIGVycm9yIChlLmcuIGRhdGFfc3RvcmUsIHJlZGlyZWN0KSB0byBmYWNpbGl0YXRlIHNlYXJjaGluZ1xuICogQHBhcmFtIGVyciBFcnJvciB0byBsb2dcbiAqIEBwYXJhbSBjb250ZXh0IE9wdGlvbmFsIGNvbnRleHQgdG8gaW5jbHVkZSBpbiB0aGUgbG9nXG4gKi9cbmV4cG9ydCBjb25zdCBsb2dNUlRFcnJvciA9IChuYW1lc3BhY2U6IHN0cmluZywgZXJyOiB1bmtub3duLCBjb250ZXh0PzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+IHtcbiAgY29uc3QgZXJyb3IgPSBlcnIgaW5zdGFuY2VvZiBFcnJvciA/IGVyciA6IG5ldyBFcnJvcihTdHJpbmcoZXJyKSk7XG4gIGNvbnNvbGUuZXJyb3IoXG4gICAgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgW2BfX01SVF9fJHtuYW1lc3BhY2V9YF06ICdlcnJvcicsXG4gICAgICB0eXBlOiAnTVJUX2ludGVybmFsJyxcbiAgICAgIGVycm9yOiBlcnJvci5tZXNzYWdlLFxuICAgICAgc3RhY2s6IGVycm9yLnN0YWNrLFxuICAgICAgLi4uY29udGV4dCxcbiAgICB9KSxcbiAgKTtcbn07XG4iLCAiLypcbiAqIENvcHlyaWdodCAoYykgMjAyNSwgU2FsZXNmb3JjZSwgSW5jLlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yXG4gKiBGb3IgZnVsbCBsaWNlbnNlIHRleHQsIHNlZSB0aGUgbGljZW5zZS50eHQgZmlsZSBpbiB0aGUgcmVwbyByb290IG9yIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICovXG5cbi8qKlxuICogQGZpbGVvdmVydmlldyBTU1IgKFNlcnZlci1TaWRlIFJlbmRlcmluZykgUHJveHlpbmcgdXRpbGl0aWVzIGZvciBNUlQgbWlkZGxld2FyZS5cbiAqXG4gKiBUaGlzIG1vZHVsZSBwcm92aWRlcyB1dGlsaXRpZXMgZm9yIGhhbmRsaW5nIEhUVFAgaGVhZGVycywgY29va2llcywgYW5kIHByb3h5aW5nXG4gKiBpbiBib3RoIEV4cHJlc3MuanMgYXBwbGljYXRpb25zIGFuZCBBV1MgTGFtYmRhQEVkZ2UgZnVuY3Rpb25zLiBJdCdzIGRlc2lnbmVkXG4gKiB0byB3b3JrIGluIG11bHRpcGxlIGNvbnRleHRzIHdoaWxlIG1haW50YWluaW5nIGNvbnNpc3RlbmN5LlxuICpcbiAqIFNwZWNpYWwgcmVxdWlyZW1lbnRzOlxuICogLSBEb24ndCBhZGQgYW55IGZ1bmN0aW9uYWxpdHkgaW4gaGVyZSB0aGF0IGlzIG5vdCByZXF1aXJlZCBieSB0aGUgcHJveHlpbmcgY29kZVxuICogLSBBdm9pZCBpbXBvcnRpbmcgYW55IG90aGVyIG1vZHVsZXMgbm90IGV4cGxpY2l0bHkgdXNlZCBieSB0aGlzIGNvZGVcbiAqIC0gTXVzdCB3b3JrIGluIGJvdGggRXhwcmVzcy5qcyBhbmQgTGFtYmRhQEVkZ2UgZW52aXJvbm1lbnRzXG4gKlxuICogQGF1dGhvciBTYWxlc2ZvcmNlIENvbW1lcmNlIENsb3VkXG4gKiBAdmVyc2lvbiAwLjAuMVxuICovXG5cbi8qXG5UaGVyZSBhcmUgc29tZSBzcGVjaWFsIHJlcXVpcmVtZW50cyBmb3IgdGhpcyBtb2R1bGUsIHdoaWNoIGlzIHVzZWQgaW4gdGhlXG5TREsgYW5kIGFsc28gaW4gTGFtYmRhQEVkZ2UgZnVuY3Rpb25zIHJ1biBieSBDbG91ZEZyb250LiBTcGVjaWZpY2FsbHk6XG4tIERvbid0IGFkZCBhbnkgZnVuY3Rpb25hbGl0eSBpbiBoZXJlIHRoYXQgaXMgbm90IHJlcXVpcmVkIGJ5IHRoZVxucHJveHlpbmcgY29kZS5cbi0gQXZvaWQgaW1wb3J0aW5nIGFueSBvdGhlciBtb2R1bGVzIG5vdCBleHBsaWNpdGx5IHVzZWQgYnkgdGhpcyBjb2RlXG4qL1xuXG5pbXBvcnQge3BhcnNlIGFzIHBhcnNlU2V0Q29va2llfSBmcm9tICdzZXQtY29va2llLXBhcnNlcic7XG5pbXBvcnQge3RyYWluQ2FzZX0gZnJvbSAnY2hhbmdlLWNhc2UnO1xuaW1wb3J0IHtVUkx9IGZyb20gJ3VybCc7XG5pbXBvcnQgdHlwZSB7SW5jb21pbmdIdHRwSGVhZGVyc30gZnJvbSAnaHR0cCc7XG5cbmNvbnN0IEFDX0FMTE9XX09SSUdJTiA9ICdhY2Nlc3MtY29udHJvbC1hbGxvdy1vcmlnaW4nO1xuY29uc3QgSE9TVCA9ICdob3N0JztcbmNvbnN0IExPQ0FUSU9OID0gJ2xvY2F0aW9uJztcbmNvbnN0IE9SSUdJTiA9ICdvcmlnaW4nO1xuY29uc3QgU0VUX0NPT0tJRSA9ICdzZXQtY29va2llJztcbmNvbnN0IFVTRVJfQUdFTlQgPSAndXNlci1hZ2VudCc7XG5cbmNvbnN0IEhFQURFUl9GT1JNQVRTID0gWydodHRwJywgJ2F3cyddIGFzIGNvbnN0O1xuZXhwb3J0IGNvbnN0IFhfUFJPWFlfUkVRVUVTVF9VUkwgPSAneC1wcm94eS1yZXF1ZXN0LXVybCc7XG5leHBvcnQgY29uc3QgWF9NT0JJRllfUkVRVUVTVF9DTEFTUyA9ICd4LW1vYmlmeS1yZXF1ZXN0LWNsYXNzJztcbmV4cG9ydCBjb25zdCBNQVhfVVJMX0xFTkdUSF9CWVRFUyA9IDgxOTI7XG5cbnR5cGUgSGVhZGVyRm9ybWF0ID0gKHR5cGVvZiBIRUFERVJfRk9STUFUUylbbnVtYmVyXTtcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgcGFyc2VkIGNvb2tpZSBvYmplY3QgZnJvbSBzZXQtY29va2llLXBhcnNlclxuICovXG5pbnRlcmZhY2UgUGFyc2VkQ29va2llIHtcbiAgbmFtZTogc3RyaW5nO1xuICB2YWx1ZTogc3RyaW5nO1xuICBwYXRoPzogc3RyaW5nO1xuICBleHBpcmVzPzogRGF0ZTtcbiAgZG9tYWluPzogc3RyaW5nO1xuICBtYXhBZ2U/OiBudW1iZXI7XG4gIHNlY3VyZT86IGJvb2xlYW47XG4gIGh0dHBPbmx5PzogYm9vbGVhbjtcbiAgc2FtZVNpdGU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIHBhcnNlZCBob3N0IHdpdGggaXRzIGNvbXBvbmVudHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQYXJzZWRIb3N0IHtcbiAgLyoqIFRoZSBob3N0ICgxMC4xMC4xMC4xMDpwb3J0KSwgd2hpY2ggaW5jbHVkZXMgdGhlIHBvcnQgKGlmIGFueSkgKi9cbiAgaG9zdDogc3RyaW5nO1xuICAvKiogVGhlIGhvc3RuYW1lICgxMC4xMC4xMC4xMCksIHdoaWNoIGV4Y2x1ZGVzIHRoZSBwb3J0ICovXG4gIGhvc3RuYW1lOiBzdHJpbmc7XG4gIC8qKiBUaGUgaG9zdCdzIHBvcnQgKi9cbiAgcG9ydD86IHN0cmluZztcbiAgLyoqIFdoZXRoZXIgdGhlIGhvc3RuYW1lIGlzIGFuIElQIG9yIGxvY2FsaG9zdCAqL1xuICBpc0lQT3JMb2NhbGhvc3Q6IGJvb2xlYW47XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIGhvc3QgYW5kIHBvcnQgdGVzdCBjb25maWd1cmF0aW9uXG4gKi9cbmludGVyZmFjZSBIb3N0QW5kUG9ydFRlc3Qge1xuICB0eXBlOiBzdHJpbmcgfCBudWxsO1xuICByZWdleHA6IFJlZ0V4cDtcbiAgaXNJUE9yTG9jYWxob3N0OiBib29sZWFuO1xuICBoYXNQb3J0OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgQVdTIExhbWJkYSBFdmVudCBoZWFkZXJzIGZvcm1hdFxuICovXG5pbnRlcmZhY2UgQVdTSGVhZGVyVmFsdWUge1xuICBrZXk6IHN0cmluZztcbiAgdmFsdWU6IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgQVdTSGVhZGVycyA9IFJlY29yZDxzdHJpbmcsIEFXU0hlYWRlclZhbHVlW10+O1xuXG4vKipcbiAqIFJlcHJlc2VudHMgSFRUUCBJbmNvbWluZ01lc3NhZ2UgaGVhZGVycyBmb3JtYXRcbiAqL1xuZXhwb3J0IHR5cGUgSFRUUEhlYWRlcnMgPSBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBzdHJpbmdbXT47XG5cbi8qKlxuICogVGhpcyBjbGFzcyBwcm92aWRlcyBhIHJlcHJlc2VudGF0aW9uIG9mIEhUVFAgcmVxdWVzdCBvciByZXNwb25zZVxuICogaGVhZGVycywgdGhhdCBvcGVyYXRlcyBpbiB0aGUgc2FtZSB3YXkgaW4gbXVsdGlwbGUgY29udGV4dHNcbiAqIChpLmUuIHdpdGhpbiB0aGUgRXhwcmVzcyBhcHAgYXMgd2VsbCBhcyB0aGUgcmVxdWVzdC1wcm9jZXNzb3IpLlxuICpcbiAqIFdpdGhpbiBhIEhlYWRlcnMgaW5zdGFuY2UsIGhlYWRlcnMgYXJlIHJlZmVyZW5jZWQgdXNpbmcgbG93ZXItY2FzZVxuICogbmFtZXMuIFVzZSBnZXRIZWFkZXIgdG8gYWNjZXNzIHRoZSB2YWx1ZSBmb3IgYSBoZWFkZXIuIElmIHRoZXJlXG4gKiBhcmUgbXVsdGlwbGUgdmFsdWVzLCB0aGlzIHdpbGwgcmV0dXJuIHRoZSBmaXJzdCB2YWx1ZS4gVGhpcyBjbGFzc1xuICogaW50ZXJuYWxseSBzdXBwb3J0cyByb3VuZC10cmlwIHByZXNlcnZhdGlvbiBvZiBtdWx0aS12YWx1ZSBoZWFkZXJzLFxuICogYnV0IGRvZXMgbm90IHlldCBwcm92aWRlIGEgd2F5IHRvIGFjY2VzcyB0aGVtLlxuICovXG5leHBvcnQgY2xhc3MgSGVhZGVycyB7XG4gIHByaXZhdGUgaHR0cEZvcm1hdDogYm9vbGVhbjtcbiAgcHJpdmF0ZSBoZWFkZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT47XG4gIHByaXZhdGUgX21vZGlmaWVkOiBib29sZWFuO1xuXG4gIC8qXG4gICAgQSBMYW1iZGFARWRnZSBldmVudCBjb250YWlucyBoZWFkZXJzIGluIHRoaXMgZm9ybTpcbiAgICBcImhlYWRlcnNcIjoge1xuICAgICAgICBcImhvc3RcIjogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIFwia2V5XCI6IFwiSG9zdFwiLFxuICAgICAgICAgICAgICAgIFwidmFsdWVcIjogXCJkMTExMTExYWJjZGVmOC5jbG91ZGZyb250Lm5ldFwiXG4gICAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgIFwidXNlci1hZ2VudFwiOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgXCJrZXlcIjogXCJVc2VyLUFnZW50XCIsXG4gICAgICAgICAgICAgICAgXCJ2YWx1ZVwiOiBcImN1cmwvNy4xOC4xXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgIH1cblxuICAgIFRoZSBodHRwLkluY29taW5nTWVzc2FnZSBmb3JtYXQgaXMgYSBzaW1wbGUgb2JqZWN0OlxuICAgIHtcbiAgICAgICAgJ3VzZXItYWdlbnQnOiAnY3VybC83LjIyLjAnLFxuICAgICAgICBob3N0OiAnMTI3LjAuMC4xOjgwMDAnXG4gICAgfVxuXG4gICAgSG93ZXZlciwgZm9yIEluY29taW5nTWVzc2FnZTpcbiAgICBEdXBsaWNhdGVzIG9mIGFnZSwgYXV0aG9yaXphdGlvbiwgY29udGVudC1sZW5ndGgsIGNvbnRlbnQtdHlwZSwgZXRhZyxcbiAgICBleHBpcmVzLCBmcm9tLCBob3N0LCBpZi1tb2RpZmllZC1zaW5jZSwgaWYtdW5tb2RpZmllZC1zaW5jZSxcbiAgICBsYXN0LW1vZGlmaWVkLCBsb2NhdGlvbiwgbWF4LWZvcndhcmRzLCBwcm94eS1hdXRob3JpemF0aW9uLCByZWZlcmVyLFxuICAgIHJldHJ5LWFmdGVyLCBvciB1c2VyLWFnZW50IGFyZSBkaXNjYXJkZWQuXG4gICAgVGhlIHZhbHVlIGZvciBzZXQtY29va2llIGlzIGFsd2F5cyBhbiBhcnJheS4gRHVwbGljYXRlcyBhcmUgYWRkZWQgdG8gdGhlIGFycmF5LlxuICAgIEZvciBhbGwgb3RoZXIgaGVhZGVycywgdGhlIHZhbHVlcyBhcmUgam9pbmVkIHRvZ2V0aGVyIHdpdGggJywnXG5cbiAgICAqL1xuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3QgYSBIZWFkZXJzIG9iamVjdCBmcm9tIGVpdGhlciBhbiBBV1MgTGFtYmRhIEV2ZW50IGhlYWRlcnNcbiAgICogb2JqZWN0LCBvciBhbiBodHRwLkluY29taW5nTWVzc2FnZSBoZWFkZXJzIG9iamVjdC5cbiAgICpcbiAgICogUHJvamVjdCBjb2RlIHNob3VsZCBuZXZlciBuZWVkIHRvIGNhbGwgdGhpcyBjb25zdHJ1Y3Rvci5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIGhlYWRlcnMgdGhlIGlucHV0IGhlYWRlcnNcbiAgICogQHBhcmFtIGZvcm1hdCBlaXRoZXIgJ2h0dHAnIG9yICdhd3MnXG4gICAqL1xuICBjb25zdHJ1Y3RvcihoZWFkZXJzOiBBV1NIZWFkZXJzIHwgSFRUUEhlYWRlcnMgfCBJbmNvbWluZ0h0dHBIZWFkZXJzLCBmb3JtYXQ6IEhlYWRlckZvcm1hdCkge1xuICAgIGlmICghSEVBREVSX0ZPUk1BVFMuaW5jbHVkZXMoZm9ybWF0KSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBIZWFkZXJzIGZvcm1hdCBtdXN0IGJlIG9uZSBvZiAke0hFQURFUl9GT1JNQVRTLmpvaW4oJywgJyl9YCk7XG4gICAgfVxuICAgIHRoaXMuaHR0cEZvcm1hdCA9IGZvcm1hdCA9PT0gJ2h0dHAnO1xuXG4gICAgLy8gV2l0aGluIHRoaXMgY2xhc3MsIGhlYWRlcnMgYXJlIHJlcHJlc2VudGVkIGJ5IGFuIG9iamVjdCB0aGF0IG1hcHNcbiAgICAvLyBoZWFkZXIgbmFtZXMgKGxvd2VyLWNhc2UpIHRvIGFycmF5cyBvZiB2YWx1ZXMuXG4gICAgdGhpcy5oZWFkZXJzID0ge307XG5cbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlc10gb2YgT2JqZWN0LmVudHJpZXMoaGVhZGVycykpIHtcbiAgICAgIC8vIEZvciBodHRwIGZvcm1hdCwgdGhlIHZhbHVlIHdpbGwgYmUgYSBjb21tYS1zZXBhcmF0ZWRcbiAgICAgIC8vIGxpc3Qgb2YgdmFsdWVzIChodHRwczovL3d3dy53My5vcmcvUHJvdG9jb2xzL3JmYzI2MTYvcmZjMjYxNi1zZWM0Lmh0bWwjc2VjNC4yKVxuICAgICAgLy8gRm9yIEFXUyBmb3JtYXQsIHRoZSB2YWx1ZSBpcyBhbiBhcnJheSBvZiBrZXkvdmFsdWUgb2JqZWN0cy5cbiAgICAgIGlmICh0aGlzLmh0dHBGb3JtYXQpIHtcbiAgICAgICAgLy8gVGhlIFNldC1Db29raWUgaGVhZGVyIGlzIGFsd2F5cyBwYXNzZWQgdG8gdXMgYXMgYW4gYXJyYXksXG4gICAgICAgIC8vIHNvIHdlIGRvIG5vdCBzcGxpdC5cbiAgICAgICAgaWYgKGtleSA9PT0gU0VUX0NPT0tJRSkge1xuICAgICAgICAgIHRoaXMuaGVhZGVyc1trZXldID0gKHZhbHVlcyBhcyBzdHJpbmdbXSkuc2xpY2UoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmhlYWRlcnNba2V5XSA9ICh2YWx1ZXMgYXMgc3RyaW5nKS5zcGxpdCgvLFxccyovKS5tYXAoKHZhbHVlKSA9PiB2YWx1ZS50cmltKCkpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmhlYWRlcnNba2V5XSA9ICh2YWx1ZXMgYXMgQVdTSGVhZGVyVmFsdWVbXSkubWFwKCh2YWx1ZSkgPT4gdmFsdWUudmFsdWUudHJpbSgpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLl9tb2RpZmllZCA9IGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0cnVlIGlmIGFuZCBvbmx5IGlmIGFueSBzZXQgb3IgZGVsZXRlIG1ldGhvZHMgd2VyZSBjYWxsZWQgb25cbiAgICogdGhpcyBpbnN0YW5jZSBhZnRlciBjb25zdHJ1Y3Rpb24uIFRoaXMgZG9lcyBub3QgYWN0dWFsbHkgdGVzdCBpZlxuICAgKiB0aGUgaGVhZGVycyB2YWx1ZXMgaGF2ZSBiZWVuIGNoYW5nZWQsIGp1c3Qgd2hldGhlciBhbnkgbXV0YXRpbmdcbiAgICogbWV0aG9kcyBoYXZlIGJlZW4gY2FsbGVkLlxuICAgKiBAcmV0dXJucyB7Qm9vbGVhbn1cbiAgICovXG4gIGdldCBtb2RpZmllZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fbW9kaWZpZWQ7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGFuIGFycmF5IG9mIHRoZSBoZWFkZXIga2V5cyAoYWxsIGxvd2VyLWNhc2UpXG4gICAqL1xuICBrZXlzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5oZWFkZXJzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHZhbHVlIG9mIHRoZSBzZXQtY29va2llIGhlYWRlcihzKSwgcmV0dXJuaW5nIGFuIGFycmF5XG4gICAqIG9mIHN0cmluZ3MuIEFsd2F5cyByZXR1cm5zIGFuIGFycmF5LCBldmVuIGlmIGl0J3MgZW1wdHkuXG4gICAqL1xuICBnZXRTZXRDb29raWUoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmhlYWRlcnNbU0VUX0NPT0tJRV0gfHwgW107XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSB2YWx1ZSBvZiB0aGUgc2V0LWNvb2tpZSBoZWFkZXIocylcbiAgICogQHBhcmFtIHZhbHVlcyBBcnJheSBvZiBzZXQtY29va2llIGhlYWRlciB2YWx1ZXNcbiAgICovXG4gIHNldFNldENvb2tpZSh2YWx1ZXM6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgdGhpcy5fbW9kaWZpZWQgPSB0cnVlO1xuXG4gICAgaWYgKCEodmFsdWVzICYmIHZhbHVlcy5sZW5ndGgpKSB7XG4gICAgICBkZWxldGUgdGhpcy5oZWFkZXJzW1NFVF9DT09LSUVdO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIENsb25lIHRoZSBhcnJheVxuICAgIHRoaXMuaGVhZGVyc1tTRVRfQ09PS0lFXSA9IHZhbHVlcy5zbGljZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgRklSU1QgdmFsdWUgb2YgdGhlIGhlYWRlciB3aXRoIHRoZSBnaXZlbiBrZXkuXG4gICAqIFRoaXMgaXMgZm9yIHNpbmdsZS12YWx1ZSBoZWFkZXJzIG9ubHk6IExvY2F0aW9uLCBBY2Nlc3MtQ29udHJvbC0qLCBldGNcbiAgICogSWYgdGhlIGhlYWRlciBpcyBub3QgcHJlc2VudCwgcmV0dXJucyB1bmRlZmluZWQuXG4gICAqIEBwYXJhbSBrZXkgaGVhZGVyIG5hbWVcbiAgICovXG4gIGdldEhlYWRlcihrZXk6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3Qga2V5TEMgPSBrZXkudG9Mb3dlckNhc2UoKTtcbiAgICBjb25zdCB2YWx1ZXMgPSB0aGlzLmhlYWRlcnNba2V5TENdO1xuICAgIGlmICghdmFsdWVzKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWVzWzBdO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgdmFsdWUgb2YgdGhlIGhlYWRlciB3aXRoIHRoZSBnaXZlbiBrZXkuIFRoaXMgaXMgZm9yIHNpbmdsZS1cbiAgICogdmFsdWUgaGVhZGVycyBvbmx5IChzZWUgZ2V0SGVhZGVyKS4gU2V0dGluZyB0aGUgdmFsdWUgcmVtb3ZlcyBBTEwgb3RoZXJcbiAgICogdmFsdWVzIGZvciB0aGUgZ2l2ZW4ga2V5LlxuICAgKiBAcGFyYW0ga2V5IGhlYWRlciBuYW1lXG4gICAqIEBwYXJhbSB2YWx1ZSBoZWFkZXIgdmFsdWVcbiAgICovXG4gIHNldEhlYWRlcihrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuX21vZGlmaWVkID0gdHJ1ZTtcbiAgICBjb25zdCBrZXlMQyA9IGtleS50b0xvd2VyQ2FzZSgpO1xuICAgIHRoaXMuaGVhZGVyc1trZXlMQ10gPSBbdmFsdWVdO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBhbnkgaGVhZGVyIHdpdGggdGhlIGdpdmVuIGtleVxuICAgKiBAcGFyYW0ga2V5IGhlYWRlciBuYW1lIHRvIHJlbW92ZVxuICAgKi9cbiAgZGVsZXRlSGVhZGVyKGtleTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5fbW9kaWZpZWQgPSB0cnVlO1xuICAgIGNvbnN0IGtleUxDID0ga2V5LnRvTG93ZXJDYXNlKCk7XG4gICAgZGVsZXRlIHRoaXMuaGVhZGVyc1trZXlMQ107XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBoZWFkZXJzIGluIEFXUyAoTGFtYmRhIGV2ZW50KSBmb3JtYXQuXG4gICAqXG4gICAqIFByb2plY3QgY29kZSBzaG91bGQgbmV2ZXIgbmVlZCB0byB1c2UgdGhpcyBtZXRob2QuXG4gICAqL1xuICB0b0FXU0Zvcm1hdCgpOiBBV1NIZWFkZXJzIHtcbiAgICBjb25zdCByZXN1bHQ6IEFXU0hlYWRlcnMgPSB7fTtcbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlc10gb2YgT2JqZWN0LmVudHJpZXModGhpcy5oZWFkZXJzKSkge1xuICAgICAgLy8gU29tZSBjdXN0b21lciBzZXJ2ZXJzIHJldHVybiBoZWFkZXJzIHdpdGggdW51c3VhbCBrZXlzOyBmb3JcbiAgICAgIC8vIGV4YW1wbGUsICdjYWNoZWRfcmVzcG9uc2UnLiBVbmRlcnNjb3JlcyBhcmUgdGVjaG5pY2FsbHkgbGVnYWxcbiAgICAgIC8vIGluIGhlYWRlciBrZXlzLCBidXQgYXJlIHVuZXhwZWN0ZWQuIFRoZSBwcm9ibGVtIGlzIHRoYXQgdGhlXG4gICAgICAvLyBoZWFkZXItY2FzZSBwYWNrYWdlIG1hcHMgdW5kZXJzY29yZSB0byAnLScgdG8gZ2V0IFwibGVnYWxcIlxuICAgICAgLy8gbmFtZXMsIHdoaWNoIGJyZWFrcyBMYW1iZGEgdmFsaWRhdGlvbi4gU28gaWYgdGhlIGtleVxuICAgICAgLy8gY29udGFpbnMgYW4gdW5kZXJzY29yZSwgd2UgdXNlIGl0IGFzLWlzLlxuICAgICAgY29uc3QgZmluYWxLZXkgPSBrZXkuaW5jbHVkZXMoJ18nKSA/IGtleSA6IHRyYWluQ2FzZShrZXkpO1xuICAgICAgcmVzdWx0W2tleV0gPSB2YWx1ZXMubWFwKCh2YWx1ZSkgPT4gKHtcbiAgICAgICAga2V5OiBmaW5hbEtleSxcbiAgICAgICAgdmFsdWUsXG4gICAgICB9KSk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBoZWFkZXJzIGluIEV4cHJlc3MgKGh0dHAuSW5jb21pbmdNZXNzYWdlKSBmb3JtYXQuXG4gICAqXG4gICAqIFJGQzI2MTYgYWxsb3dzIHNvbWUgZmxleGliaWxpdHkgaW4gaG93IG11bHRpcGxlIHZhbHVlcyBhcmVcbiAgICogY29tYmluZWQgaW50byBhIHNpbmdsZSBoZWFkZXIgdmFsdWUuIFdlIHNlcGFyYXRlIHdpdGggJywgJ1xuICAgKiByYXRoZXIgdGhhbiBqdXN0ICcsJyB0byBtYWludGFpbiBwcmV2aW91cyBiZWhhdmlvdXIuXG4gICAqXG4gICAqIFByb2plY3QgY29kZSBzaG91bGQgbmV2ZXIgbmVlZCB0byB1c2UgdGhpcyBtZXRob2QuXG4gICAqL1xuICB0b0hUVFBGb3JtYXQoKTogSFRUUEhlYWRlcnMge1xuICAgIGNvbnN0IHJlc3VsdDogSFRUUEhlYWRlcnMgPSB7fTtcbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlc10gb2YgT2JqZWN0LmVudHJpZXModGhpcy5oZWFkZXJzKSkge1xuICAgICAgLy8gVGhlIFNldC1Db29raWUgaGVhZGVyIGlzIGFsd2F5cyByZXR1cm5lZCBhcyBhbiBhcnJheVxuICAgICAgaWYgKGtleSA9PT0gU0VUX0NPT0tJRSkge1xuICAgICAgICByZXN1bHRba2V5XSA9IHZhbHVlcy5zbGljZSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzdWx0W2tleV0gPSB2YWx1ZXMuam9pbignLCAnKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIGhlYWRlcnMgaW4gdGhlIHNhbWUgZm9ybWF0IChhd3Mgb3IgaHR0cCkgdGhhdCB3YXNcbiAgICogdXNlZCB0byBjb25zdHJ1Y3QgdGhlbS5cbiAgICpcbiAgICogUHJvamVjdCBjb2RlIHNob3VsZCBuZXZlciBuZWVkIHRvIHVzZSB0aGlzIG1ldGhvZC5cbiAgICovXG4gIHRvT2JqZWN0KCk6IEFXU0hlYWRlcnMgfCBIVFRQSGVhZGVycyB8IEluY29taW5nSHR0cEhlYWRlcnMge1xuICAgIHJldHVybiB0aGlzLmh0dHBGb3JtYXQgPyB0aGlzLnRvSFRUUEZvcm1hdCgpIDogdGhpcy50b0FXU0Zvcm1hdCgpO1xuICB9XG59XG5cbmNvbnN0IGRheU5hbWVzID0gWydTdW4nLCAnTW9uJywgJ1R1ZScsICdXZWQnLCAnVGh1JywgJ0ZyaScsICdTYXQnXTtcbmNvbnN0IG1vbnRoQWJiciA9IFsnSmFuJywgJ0ZlYicsICdNYXInLCAnQXByJywgJ01heScsICdKdW4nLCAnSnVsJywgJ0F1ZycsICdTZXAnLCAnT2N0JywgJ05vdicsICdEZWMnXTtcblxuLy8gUmV0dXJuIHRoZSBnaXZlbiBudW1iZXIgYXMgYSAyLWRpZ2l0IHN0cmluZyB3aXRoIGEgbGVhZGluZyB6ZXJvXG5jb25zdCBsZWFkaW5nWmVybyA9IChuOiBudW1iZXIpOiBzdHJpbmcgPT4ge1xuICBjb25zdCBzID0gTnVtYmVyKG4pLnRvU3RyaW5nKCk7XG4gIHJldHVybiBzLmxlbmd0aCA+IDEgPyBzIDogYDAke3N9YDtcbn07XG5cbi8qKlxuICogUmV0dXJuIHRoZSBnaXZlbiBkYXRlIGFzIGFuIFJGQzExMjMtZm9ybWF0IHN0cmluZywgc3VpdGFibGUgZm9yXG4gKiB1c2UgaW4gYSBTZXQtQ29va2llIG9yIERhdGUgaGVhZGVyLiBUaGUgcmVzdWx0IGlzIGFsd2F5cyBpbiBVVEMuXG4gKiBAZnVuY3Rpb25cbiAqIEBwYXJhbSBkYXRlIERhdGUgb2JqZWN0XG4gKiBAcmV0dXJucyBSRkMxMTIzIGZvcm1hdHRlZCBkYXRlIHN0cmluZ1xuICovXG5leHBvcnQgY29uc3QgcmZjMTEyMyA9IChkYXRlOiBEYXRlKTogc3RyaW5nID0+IHtcbiAgY29uc3QgdGltZSA9IFtcbiAgICBsZWFkaW5nWmVybyhkYXRlLmdldFVUQ0hvdXJzKCkpLFxuICAgIGxlYWRpbmdaZXJvKGRhdGUuZ2V0VVRDTWludXRlcygpKSxcbiAgICBsZWFkaW5nWmVybyhkYXRlLmdldFVUQ1NlY29uZHMoKSksXG4gIF0uam9pbignOicpO1xuICByZXR1cm4gW1xuICAgIGAke2RheU5hbWVzW2RhdGUuZ2V0VVRDRGF5KCldfSxgLFxuICAgIGxlYWRpbmdaZXJvKGRhdGUuZ2V0VVRDRGF0ZSgpKSxcbiAgICBtb250aEFiYnJbZGF0ZS5nZXRVVENNb250aCgpXSxcbiAgICBkYXRlLmdldFVUQ0Z1bGxZZWFyKCksXG4gICAgdGltZSxcbiAgICAnR01UJyxcbiAgXS5qb2luKCcgJyk7XG59O1xuXG4vKipcbiAqIEdpdmVuIGEgY29va2llIG9iamVjdCBwYXJzZWQgYnkgc2V0LWNvb2tpZS1wYXJzZXIsXG4gKiByZXR1cm4gYSBzZXQtY29va2llIGhlYWRlciB2YWx1ZSBmb3IgaXQuXG4gKiBAcHJpdmF0ZVxuICovXG5leHBvcnQgY29uc3QgY29va2llQXNTdHJpbmcgPSAoY29va2llOiBQYXJzZWRDb29raWUpOiBzdHJpbmcgPT4ge1xuICBjb25zdCBlbGVtZW50cyA9IFtgJHtjb29raWUubmFtZX09JHtjb29raWUudmFsdWV9YF07XG4gIGlmIChjb29raWUucGF0aCkge1xuICAgIGVsZW1lbnRzLnB1c2goYFBhdGg9JHtjb29raWUucGF0aH1gKTtcbiAgfVxuICBpZiAoY29va2llLmV4cGlyZXMpIHtcbiAgICAvLyBUaGlzIGlzIGEgRGF0ZSBvYmplY3QgYW5kIG11c3QgYmUgcmVwcmVzZW50ZWQgYXNcbiAgICAvLyBhbiBIVFRQLWRhdGUgdGltZXN0YW1wIChSRkMxMTIzIGZvcm1hdCkuIEZvciBleGFtcGxlLFxuICAgIC8vIFdlZCwgMjQtT2N0LTIwMTggMDA6MTM6MjAgR01UXG4gICAgZWxlbWVudHMucHVzaChgRXhwaXJlcz0ke3JmYzExMjMoY29va2llLmV4cGlyZXMpfWApO1xuICB9XG4gIGlmIChjb29raWUuZG9tYWluKSB7XG4gICAgZWxlbWVudHMucHVzaChgRG9tYWluPSR7Y29va2llLmRvbWFpbn1gKTtcbiAgfVxuICBpZiAoY29va2llLm1heEFnZSkge1xuICAgIGVsZW1lbnRzLnB1c2goYE1heC1BZ2U9JHtjb29raWUubWF4QWdlfWApO1xuICB9XG4gIGlmIChjb29raWUuc2VjdXJlKSB7XG4gICAgZWxlbWVudHMucHVzaCgnU2VjdXJlJyk7XG4gIH1cbiAgaWYgKGNvb2tpZS5odHRwT25seSkge1xuICAgIGVsZW1lbnRzLnB1c2goJ0h0dHBPbmx5Jyk7XG4gIH1cbiAgaWYgKGNvb2tpZS5zYW1lU2l0ZSkge1xuICAgIGVsZW1lbnRzLnB1c2goYFNhbWVTaXRlPSR7Y29va2llLnNhbWVTaXRlfWApO1xuICB9XG4gIHJldHVybiBlbGVtZW50cy5qb2luKCc7ICcpO1xufTtcblxuY29uc3QgSVBWNiA9ICdJUFY2JztcbmNvbnN0IElQVjQgPSAnSVBWNCc7XG5jb25zdCBMT0NBTEhPU1QgPSAnbG9jYWxob3N0JztcblxuLyoqXG4gKiBBbiBhcnJheSBvZiB7dHlwZSwgcmVnZXhwLCBpc0lQT3JMb2NhbGhvc3R9IG9iamVjdHMsIHdoZXJlIHRoZSB0eXBlIGlzIHVzZWRcbiAqIHRvIGRldGVybWluZSBob3cgdG8gZ2V0IGEgcG9ydCwgcmVnZXhwIHdpbGwgc3BvdCBhbiBJUHY0LCBJUHY2IG9yIGhvc3RuYW1lLFxuICogYW5kIHRoZSBpc0lQT3JMb2NhbGhvc3QgZmxhZyBpcyB0cnVlIGZvciBJUCBhZGRyZXNzZXMgb3IgbG9jYWhvc3QsIGZhbHNlIGZvclxuICogaG9zdG5hbWVzLiBUaGUgbWFpbiByZWFzb24gZm9yIGRldGVjdGluZyBJUCBhZGRyZXNzL2xvY2FsaG9zdCBpcyB0byBkZXRlcm1pbmVcbiAqIHdoZXRoZXIgaXQgY2FuIGhhdmUgc3ViZG9tYWlucy5cbiAqIEBwcml2YXRlXG4gKi9cbmNvbnN0IEhPU1RfQU5EX1BPUlRfVEVTVFM6IEhvc3RBbmRQb3J0VGVzdFtdID0gW1xuICAvLyBJUFY2IGFkZHJlc3MgcGx1cyBwb3J0XG4gIHtcbiAgICB0eXBlOiBJUFY2LFxuICAgIHJlZ2V4cDogL15cXFsoW2EtZkEtRjAtOTpdKylcXF06KFxcZCspJC8sXG4gICAgaXNJUE9yTG9jYWxob3N0OiB0cnVlLFxuICAgIGhhc1BvcnQ6IHRydWUsXG4gIH0sXG4gIC8vIElQVjYgYWRkcmVzcyB3aXRob3V0IHBvcnRcbiAge1xuICAgIHR5cGU6IElQVjYsXG4gICAgcmVnZXhwOiAvXihbYS1mQS1GMC05Ol0rKSQvLFxuICAgIGlzSVBPckxvY2FsaG9zdDogdHJ1ZSxcbiAgICBoYXNQb3J0OiBmYWxzZSxcbiAgfSxcbiAgLy8gSVBWNCBhZGRyZXNzIHBsdXMgcG9ydFxuICB7XG4gICAgdHlwZTogSVBWNCxcbiAgICByZWdleHA6IC9eKFxcZCtcXC5cXGQrXFwuXFxkK1xcLlxcZCspOihcXGQrKSQvLFxuICAgIGlzSVBPckxvY2FsaG9zdDogdHJ1ZSxcbiAgICBoYXNQb3J0OiB0cnVlLFxuICB9LFxuICAvLyBJUFY0IGFkZHJlc3MgcGx1cyB3aXRob3V0IHBvcnRcbiAge1xuICAgIHR5cGU6IElQVjQsXG4gICAgcmVnZXhwOiAvXihcXGQrXFwuXFxkK1xcLlxcZCtcXC5cXGQrKSQvLFxuICAgIGlzSVBPckxvY2FsaG9zdDogdHJ1ZSxcbiAgICBoYXNQb3J0OiBmYWxzZSxcbiAgfSxcbiAgLy8gbG9jYWxob3N0IHBsdXMgcG9ydFxuICB7XG4gICAgdHlwZTogTE9DQUxIT1NULFxuICAgIHJlZ2V4cDogL14obG9jYWxob3N0KTooXFxkKykkLyxcbiAgICBpc0lQT3JMb2NhbGhvc3Q6IHRydWUsXG4gICAgaGFzUG9ydDogdHJ1ZSxcbiAgfSxcbiAgLy8gbG9jYWxob3N0IHdpdGhvdXQgcG9ydFxuICB7XG4gICAgdHlwZTogTE9DQUxIT1NULFxuICAgIHJlZ2V4cDogL14obG9jYWxob3N0KSQvLFxuICAgIGlzSVBPckxvY2FsaG9zdDogdHJ1ZSxcbiAgICBoYXNQb3J0OiBmYWxzZSxcbiAgfSxcbiAgLy8gaG9zdG5hbWUgcGx1cyBwb3J0XG4gIHtcbiAgICB0eXBlOiBudWxsLFxuICAgIHJlZ2V4cDogLyguKyk6XFxkKy8sXG4gICAgaXNJUE9yTG9jYWxob3N0OiBmYWxzZSwgLy8gRmFsc2UgbWVhbnMgdGhlIGhvc3RuYW1lIG1heSBoYXZlIGEgc3ViZG9tYWluXG4gICAgaGFzUG9ydDogdHJ1ZSxcbiAgfSxcbl07XG5cbi8qKlxuICogR2l2ZW4gYSBob3N0bmFtZSB0aGF0IG1heSBiZSBhIGhvc3RuYW1lIG9yIGlwIGFkZHJlc3Mgb3B0aW9uYWxseVxuICogZm9sbG93ZWQgYnkgYSBwb3J0LCByZXR1cm4gYW4gb2JqZWN0IHdpdGggJ2hvc3QnIGJlaW5nIHRoZSBpcCBhZGRyZXNzLFxuICogdGhlIGhvc3RuYW1lLCBhIHBvcnQgKGlmIHRoZXJlIGlzIG9uZSksIGFuZCAnaXNJUE9yTG9jYWxob3N0JyB0cnVlIGZvciBhbiBpcFxuICogYWRkcmVzcyBvciBsb2NhbGhvc3QsIGZhbHNlIGZvciBhIGhvc3RuYW1lXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIGhvc3QgQ2FuIGJlIGxvY2FsaG9zdCwgYW4gSVAgb3IgZG9tYWluIG5hbWVcbiAqIEByZXR1cm4gUGFyc2VkSG9zdCBvYmplY3RcbiAqL1xuZXhwb3J0IGNvbnN0IHBhcnNlSG9zdCA9IChob3N0OiBzdHJpbmcpOiBQYXJzZWRIb3N0ID0+IHtcbiAgZm9yIChjb25zdCB0ZXN0IG9mIEhPU1RfQU5EX1BPUlRfVEVTVFMpIHtcbiAgICBjb25zdCBtYXRjaCA9IHRlc3QucmVnZXhwLmV4ZWMoaG9zdCk7XG5cbiAgICBpZiAoIW1hdGNoKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQ6IFBhcnNlZEhvc3QgPSB7XG4gICAgICBob3N0LFxuICAgICAgaG9zdG5hbWU6IG1hdGNoWzFdLFxuICAgICAgaXNJUE9yTG9jYWxob3N0OiB0ZXN0LmlzSVBPckxvY2FsaG9zdCxcbiAgICB9O1xuXG4gICAgLy8gU3BsaXQgYXBhcnQgYW5kIGdldCB0aGUgaG9zdG5hbWUgYW5kIHBvcnQgZnJvbSB0aGUgaG9zdFxuICAgIGlmICh0ZXN0Lmhhc1BvcnQpIHtcbiAgICAgIGxldCBwYXJ0czogc3RyaW5nW107XG4gICAgICBzd2l0Y2ggKHRlc3QudHlwZSkge1xuICAgICAgICBjYXNlIElQVjY6XG4gICAgICAgICAgLy8gRmlsdGVyIG91dCBlbXB0eSBub2RlcyBmcm9tdCBoZSBhcnJheS4gV2Ugb25seSBjYXJlIGFib3V0XG4gICAgICAgICAgLy8gdGhlIG9uZXMgdGhhdCBoYXZlIHZhbHVlc1xuICAgICAgICAgIHBhcnRzID0gcmVzdWx0Lmhvc3Quc3BsaXQodGVzdC5yZWdleHApLmZpbHRlcigocGFydCkgPT4gcGFydC5sZW5ndGggPiAwKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBJUFY0OlxuICAgICAgICBjYXNlIExPQ0FMSE9TVDpcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBwYXJ0cyA9IHJlc3VsdC5ob3N0LnNwbGl0KCc6Jyk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBbcmVzdWx0Lmhvc3RuYW1lLCByZXN1bHQucG9ydF0gPSBwYXJ0cztcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBob3N0LFxuICAgIGhvc3RuYW1lOiBob3N0LFxuICAgIGlzSVBPckxvY2FsaG9zdDogZmFsc2UsXG4gIH07XG59O1xuXG4vLyBDb29raWUgZG9tYWluIHJld3JpdGUgbG9naWMgZm9yIHJld3JpdGVTZXRDb29raWVzIGJlbG93XG5leHBvcnQgY29uc3QgcmV3cml0ZURvbWFpbiA9IChkb21haW46IHN0cmluZywgYXBwSG9zdG5hbWU6IHN0cmluZywgdGFyZ2V0SG9zdDogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgLy8gU3RyaXAgYW55IGxlYWRpbmcgZG90cyBvZmYgdGhlIGRvbWFpbiBhbmQgc3BsaXQgaW50byBlbGVtZW50c1xuICBjb25zdCBkb21haW5FbGVtZW50cyA9IGRvbWFpbi5zcGxpdCgnLicpLmZpbHRlcigoeCkgPT4geCk7XG4gIGNvbnN0IGRvbWFpblN0cmluZyA9IGRvbWFpbkVsZW1lbnRzLmpvaW4oJy4nKTtcblxuICAvLyBEb2VzIHRoZSBhcHBIb3N0bmFtZSBpbmNsdWRlIGEgcG9ydCBudW1iZXI/IFdlIG5lZWQgYSB2ZXJzaW9uXG4gIC8vIG9mIGl0IHdpdGhvdXQgdGhlIHBvcnQgKGhvc3RuYW1lKSBiZWNhdXNlIHNldC1jb29raWUgZG9tYWlucyBjYW5ub3RcbiAgLy8gaW5jbHVkZSBwb3J0cy4gV2UgY2FuJ3QganVzdCB0ZXN0IGZvciAnOicgYmVjYXVzZSB0aGUgaG9zdCBtaWdodCBiZSBhblxuICAvLyBpcHY2IGFkZHJlc3MuIEFuIGlwdjYgYWRkcmVzcyBjb250YWluaW5nIGEgcG9ydCBjb250YWlucyB0aGVcbiAgLy8gYWN0dWFsIElQIHN1cnJvdW5kZWQgYnkgW10gKGUuZy4gWzIwMDE6ZGI4OjoxXTo4MDgwKVxuICAvLyBSRkMzOTg2XG4gIGNvbnN0IHBhcnNlZEhvc3QgPSBwYXJzZUhvc3QoYXBwSG9zdG5hbWUpO1xuXG4gIC8vIElmIHRoZSB0YXJnZXQgaG9zdCBlcXVhbHMgb3IgZW5kcyB3aXRoIHRoZSBkb21haW5TdHJpbmdcbiAgLy8gdmFsdWUsIHRoZW4gd2UgY2hhbmdlIHRoZSBkb21haW4gdG8gYmUgdGhlIGFwcEhvc3RuYW1lXG4gIC8vICh0aG91Z2ggZm9yIGxvY2FsaG9zdCwgd2Ugc3RyaXAgb2ZmIHRoZSBwb3J0IG51bWJlcilcbiAgaWYgKHRhcmdldEhvc3QgPT09IGRvbWFpblN0cmluZykge1xuICAgIC8vIFN0cmFpZ2h0IHJlcGxhY2VtZW50XG4gICAgcmV0dXJuIHBhcnNlZEhvc3QuaG9zdG5hbWU7XG4gIH1cblxuICBpZiAoIXRhcmdldEhvc3QuZW5kc1dpdGgoZG9tYWluU3RyaW5nKSkge1xuICAgIC8vIFRoaXJkLXBhcnR5IGNvb2tpZS4uLiBsZWF2ZSB1bmNoYW5nZWRcbiAgICByZXR1cm4gZG9tYWluO1xuICB9XG5cbiAgLy8gQ29va2llIGlzIHNldCBmb3IgYSBzdWJkb21haW4uXG4gIGlmIChwYXJzZWRIb3N0LmlzSVBPckxvY2FsaG9zdCkge1xuICAgIC8vIE5vIHN1YmRvbWFpbnMgZm9yIElQIGFkZHJlc3NlcyBvciBsb2NhbGhvc3QsIHNvIHJldHVybiBqdXN0IHRoYXQgZG9tYWluXG4gICAgcmV0dXJuIHBhcnNlZEhvc3QuaG9zdG5hbWU7XG4gIH1cblxuICAvLyBUaGlzIGlzIHRyaWNreS4uLiB0aGVyZSdzIG5vIHN0YW5kYXJkIHdheSB0byBnZXQgdGhlIGRvbWFpbiBmb3JcbiAgLy8gYSBob3N0bmFtZS4gV2UgdXNlIGEgc2hvcnRjdXQgLSB3ZSBidWlsZCB1cCBhIHN1YmRvbWFpbiBiYXNlZCBvbiB0aGVcbiAgLy8gYXBwSG9zdCB0aGF0IGhhcyB0aGUgc2FtZSBudW1iZXIgb2YgZWxlbWVudHMgYXMgdGhlIGNvb2tpZSBkb21haW4uXG4gIGNvbnN0IHRhcmdldEhvc3RFbGVtZW50cyA9IHRhcmdldEhvc3Quc3BsaXQoJy4nKTtcbiAgLy8gV29yayBvdXQgaG93IG1hbnkgZWxlbWVudHMgaGF2ZSBiZWVuIHJlbW92ZWQgdG8gZm9ybSB0aGUgc3ViZG9tYWluXG4gIGNvbnN0IHN0cmlwcGVkT2ZmID0gdGFyZ2V0SG9zdEVsZW1lbnRzLmxlbmd0aCAtIGRvbWFpbkVsZW1lbnRzLmxlbmd0aDtcbiAgLy8gU3RyaXAgdGhlIHNhbWUgbnVtYmVyIG9mIGVsZW1lbnRzIG9mZiB0aGUgYXBwSG9zdFxuICBjb25zdCBhcHBIb3N0bmFtZUVsZW1lbnRzID0gcGFyc2VkSG9zdC5ob3N0bmFtZS5zcGxpdCgnLicpO1xuICByZXR1cm4gYXBwSG9zdG5hbWVFbGVtZW50cy5zbGljZShzdHJpcHBlZE9mZikuam9pbignLicpO1xufTtcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciByZXdyaXRlU2V0Q29va2llcyBmdW5jdGlvblxuICovXG5pbnRlcmZhY2UgUmV3cml0ZVNldENvb2tpZXNQYXJhbXMge1xuICAvKiogdGhlIGhvc3RuYW1lIChob3N0K3BvcnQpIHVuZGVyIHdoaWNoIHRoZSBFeHByZXNzIGFwcCBpcyBydW5uaW5nIChlLmcuIGxvY2FsaG9zdDozNDQzIGZvciBhIGxvY2FsIGRldiBzZXJ2ZXIpICovXG4gIGFwcEhvc3RuYW1lOiBzdHJpbmc7XG4gIC8qKiBBcnJheSBvZiBzZXQtY29va2llIGhlYWRlciB2YWx1ZXMgKi9cbiAgc2V0Q29va2llczogc3RyaW5nW107XG4gIC8qKiB0aGUgdGFyZ2V0IGhvc3RuYW1lIChob3N0K3BvcnQpICovXG4gIHRhcmdldEhvc3Q6IHN0cmluZztcbiAgLyoqIHRydWUgdG8gbG9nIG9wZXJhdGlvbnMgKi9cbiAgbG9nZ2luZz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogR2l2ZW4gYSBoZWFkZXJzIG9iamVjdCwgcmV3cml0ZSBhbnkgc2V0LWNvb2tpZSBoZWFkZXJzIGluIGl0XG4gKiBzbyB0aGF0IHRoZXkgYXBwbHkgdG8gdGhlIGFwcCBob3N0bmFtZSByYXRoZXIgdGhhbiB0aGUgdGFyZ2V0XG4gKiBob3N0bmFtZS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHBhcmFtcyBDb25maWd1cmF0aW9uIG9iamVjdCBmb3IgcmV3cml0aW5nIHNldC1jb29raWVzXG4gKiBAcmV0dXJucyBzdHJpbmdbXSBvZiByZXdyaXR0ZW4gc2V0LWNvb2tpZSBoZWFkZXIgdmFsdWVzXG4gKi9cbmV4cG9ydCBjb25zdCByZXdyaXRlU2V0Q29va2llcyA9ICh7XG4gIGFwcEhvc3RuYW1lLFxuICBzZXRDb29raWVzLFxuICB0YXJnZXRIb3N0LFxuICBsb2dnaW5nID0gZmFsc2UsXG59OiBSZXdyaXRlU2V0Q29va2llc1BhcmFtcyk6IHN0cmluZ1tdID0+IHtcbiAgaWYgKCEoc2V0Q29va2llcyAmJiBzZXRDb29raWVzLmxlbmd0aCkpIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICAvLyBQYXJzZSB0aGUgc2V0LWNvb2tpZSBoZWFkZXJzIGludG8gYSBzZXQgb2Ygb2JqZWN0c1xuICBjb25zdCBvbGRDb29raWVzID0gcGFyc2VTZXRDb29raWUoc2V0Q29va2llcywge2RlY29kZVZhbHVlczogZmFsc2V9KTtcblxuICAvLyBNYXAgdGhlIG9sZENvb2tpZXMgYXJyYXkgaW50byBhbiBhcnJheSBvZiB1cGRhdGVkIG9iamVjdHNcbiAgY29uc3QgbmV3Q29va2llcyA9IG9sZENvb2tpZXMubWFwKChjb29raWUpID0+IHtcbiAgICBpZiAoY29va2llLmRvbWFpbikge1xuICAgICAgY29uc3QgbmV3RG9tYWluID0gcmV3cml0ZURvbWFpbihjb29raWUuZG9tYWluLCBhcHBIb3N0bmFtZSwgdGFyZ2V0SG9zdCk7XG5cbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICBpZiAobG9nZ2luZykge1xuICAgICAgICBjb25zb2xlLmxvZyhgUmV3cml0aW5nIHByb3h5IHJlc3BvbnNlIHNldC1jb29raWUgaGVhZGVyIGRvbWFpbiBmcm9tIFwiJHtjb29raWUuZG9tYWlufVwiIHRvIFwiJHtuZXdEb21haW59XCJgKTtcbiAgICAgIH1cblxuICAgICAgY29va2llLmRvbWFpbiA9IG5ld0RvbWFpbjtcbiAgICB9XG5cbiAgICByZXR1cm4gY29va2llO1xuICB9KTtcblxuICAvLyBDb252ZXJ0IHRoZSBjb29raWVzIGJhY2sgdG8gc3RyaW5nIHZhbHVlc1xuICByZXR1cm4gbmV3Q29va2llcy5tYXAoY29va2llQXNTdHJpbmcpO1xufTtcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciByZXdyaXRlUHJveHlSZXNwb25zZUhlYWRlcnMgZnVuY3Rpb25cbiAqL1xuaW50ZXJmYWNlIFJld3JpdGVQcm94eVJlc3BvbnNlSGVhZGVyc1BhcmFtcyB7XG4gIC8qKiB0aGUgaG9zdG5hbWUgKGhvc3QrcG9ydCkgdW5kZXIgd2hpY2ggdGhlIEV4cHJlc3MgYXBwIGlzIHJ1bm5pbmcgKGUuZy4gbG9jYWxob3N0OjM0NDMgZm9yIGEgbG9jYWwgZGV2IHNlcnZlcikgKi9cbiAgYXBwSG9zdG5hbWU6IHN0cmluZztcbiAgLyoqIHRydWUgZm9yIGEgY2FjaGluZyBwcm94eSwgZmFsc2UgZm9yIGEgc3RhbmRhcmQgcHJveHkgKi9cbiAgY2FjaGluZzogYm9vbGVhbjtcbiAgLyoqIHRoZSBoZWFkZXJzIHRvIGJlIHJld3JpdHRlbiAqL1xuICBoZWFkZXJzOiBBV1NIZWFkZXJzIHwgSFRUUEhlYWRlcnMgfCBJbmNvbWluZ0h0dHBIZWFkZXJzO1xuICAvKiogJ2F3cycgb3IgJ2h0dHAnIC0gdGhlIGZvcm1hdCBvZiB0aGUgJ2hlYWRlcnMnIHBhcmFtZXRlciAqL1xuICBoZWFkZXJGb3JtYXQ/OiBIZWFkZXJGb3JtYXQ7XG4gIC8qKiB0aGUgcGF0aCBiZWluZyBwcm94aWVkIChlLmcuIC9tb2JpZnkvcHJveHkvYmFzZS8pICovXG4gIHByb3h5UGF0aDogc3RyaW5nO1xuICAvKiogdGhlIFVSTCBmcm9tIHRoZSByZXF1ZXN0IHRoYXQgcHJvbXB0ZWQgdGhlIHJlc3BvbnNlLiBJZiBwcmVzZW50LCB1c2VkIHRvIHNldCB0aGUgWC1Qcm94eS1SZXF1ZXN0LVVybCBoZWFkZXIuIFRoaXMgc2hvdWxkIGJlIHRoZSByZXF1ZXN0IFVSTCBzZW50IHRvIHRoZSB0YXJnZXQgaG9zdCwgbm90IGNvbnRhaW5pbmcgYW55IC9tb2JpZnkvcHJveHkvLi4uIHBhcnQuICovXG4gIHJlcXVlc3RVcmw/OiBzdHJpbmc7XG4gIC8qKiB0aGUgcHJvdG9jb2wgdG8gdXNlIHRvIG1ha2UgcmVxdWVzdHMgdG8gdGhlIHRhcmdldCAoJ2h0dHAnIG9yICdodHRwcycpICovXG4gIHRhcmdldFByb3RvY29sOiBzdHJpbmc7XG4gIC8qKiB0aGUgdGFyZ2V0IGhvc3RuYW1lIChob3N0K3BvcnQpICovXG4gIHRhcmdldEhvc3Q6IHN0cmluZztcbiAgLyoqIHRoZSBwcm90b2NvbCB0byB1c2UgdG8gbWFrZSByZXF1ZXN0cyB0byB0aGUgb3JpZ2luICgnaHR0cCcgb3IgJ2h0dHBzJywgZGVmYXVsdHMgdG8gJ2h0dHBzJyksIHVzZSBvZiB1bmVuY3J5cHRlZCBwcm90b2NvbCBpcyBvbmx5IGFsbG93ZWQgaW4gbG9jYWwgZGV2ZWxvcG1lbnQgKi9cbiAgYXBwUHJvdG9jb2w/OiBzdHJpbmc7XG4gIC8qKiB0cnVlIHRvIGxvZyBvcGVyYXRpb25zICovXG4gIGxvZ2dpbmc/OiBib29sZWFuO1xuICAvKiogdGhlIHJlc3BvbnNlIHN0YXR1cyBjb2RlICovXG4gIHN0YXR1c0NvZGU/OiBudW1iZXI7XG59XG5cbi8qKlxuICogUmV3cml0ZSBoZWFkZXJzIGZvciBhIHByb3hpZWQgcmVzcG9uc2UuXG4gKlxuICogMS4gSWYgdGhlIG9yaWdpbmFsIGRvbWFpbiBhcHBlYXJzIGluIHRoZVxuICogQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luIGhlYWRlciwgaXQncyByZXBsYWNlZCB3aXRoIHRoZVxuICogYXBwT3JpZ2luLlxuICogMi4gSWYgdGhlIHJlc3BvbnNlIGlzIGEgMzB4IHJlZGlyZWN0aW9uIGFuZCBjb250YWlucyBhIExvY2F0aW9uXG4gKiBoZWFkZXIgb24gdGhlIHRhcmdldCBob3N0LCB0aGF0IGhlYWRlciBpcyByZXdyaXR0ZW4gdG8gdXNlIHRoZVxuICogYXBwIGhvc3QgYW5kIHByb3h5IHBhdGguXG4gKlxuICogRm9yIGEgY2FjaGluZyBwcm94eSwgd2UgYWxzbyByZW1vdmUgYW55IFNldC1Db29raWUgaGVhZGVycyAtIGNhY2hpbmdcbiAqIHByb3hpZXMgZG9uJ3QgcGFzcyBDb29raWUgaGVhZGVycyBmb3IgcmVxdWVzdHMgYW5kIGRvbid0IGFsbG93IFNldC1Db29raWVcbiAqIGluIHJlc3BvbnNlcywgc28gdGhhdCB0aGV5IG1heSBiZSBjYWNoZWQgaW5kZXBlbmRlbnRseSBvZiBhbnkgY29va2llXG4gKiB2YWx1ZXMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSBwYXJhbXMgQ29uZmlndXJhdGlvbiBvYmplY3QgZm9yIHJld3JpdGluZyBwcm94eSByZXNwb25zZSBoZWFkZXJzXG4gKiBAcmV0dXJucyB0aGUgbW9kaWZpZWQgcmVzcG9uc2UgaGVhZGVyc1xuICovXG5leHBvcnQgY29uc3QgcmV3cml0ZVByb3h5UmVzcG9uc2VIZWFkZXJzID0gKHtcbiAgYXBwSG9zdG5hbWUsXG4gIGNhY2hpbmcsXG4gIGhlYWRlcnMsXG4gIGhlYWRlckZvcm1hdCA9ICdodHRwJyxcbiAgcHJveHlQYXRoLFxuICByZXF1ZXN0VXJsLFxuICBzdGF0dXNDb2RlID0gMjAwLFxuICB0YXJnZXRQcm90b2NvbCxcbiAgdGFyZ2V0SG9zdCxcbiAgYXBwUHJvdG9jb2wgPSAnaHR0cHMnLFxuICBsb2dnaW5nID0gZmFsc2UsXG59OiBSZXdyaXRlUHJveHlSZXNwb25zZUhlYWRlcnNQYXJhbXMpOiBBV1NIZWFkZXJzIHwgSFRUUEhlYWRlcnMgfCBJbmNvbWluZ0h0dHBIZWFkZXJzID0+IHtcbiAgY29uc3Qgd29ya2luZ0hlYWRlcnMgPSBuZXcgSGVhZGVycyhcbiAgICBoZWFkZXJzID8gKHsuLi5oZWFkZXJzfSBhcyBBV1NIZWFkZXJzIHwgSFRUUEhlYWRlcnMgfCBJbmNvbWluZ0h0dHBIZWFkZXJzKSA6IHt9LFxuICAgIGhlYWRlckZvcm1hdCxcbiAgKTtcblxuICBjb25zdCBhcHBPcmlnaW4gPSBgJHthcHBQcm90b2NvbH06Ly8ke2FwcEhvc3RuYW1lfWA7XG4gIGNvbnN0IHRhcmdldE9yaWdpbiA9IGAke3RhcmdldFByb3RvY29sfTovLyR7dGFyZ2V0SG9zdH1gO1xuXG4gIC8vIFNldCB0aGUgWC1Qcm94eS1SZXF1ZXN0LVVybCBoZWFkZXIsIGlmIHdlIGhhdmUgdGhlIHJlcXVlc3QgVVJMXG4gIGlmIChyZXF1ZXN0VXJsKSB7XG4gICAgLy8gSWYgdGhlIHJlcXVlc3RVcmwgaXMganVzdCBhIHBhdGgsIHByZXBlbmQgdGhlIHRhcmdldE9yaWdpbi5cbiAgICAvLyBJbmNsdWRpbmcgdGhlIGZ1bGwgVVJMIGFzIGEgaGVhZGVyIHZhbHVlIHJpc2tzIGV4Y2VlZGluZyBsaW1pdHNcbiAgICAvLyBvbiBoZWFkZXIgdmFsdWUgc2l6ZXMuIENsb3VkRnJvbnQgbGltaXRzIFVSTHMgdG8gODE5MiBieXRlcy5cbiAgICAvLyBFdmVuIHRob3VnaCBBUEkgR2F0ZXdheSBoYXMgYSBoZWFkZXIgdmFsdWUgbGltaXQgb2ZcbiAgICAvLyAxMDI0MCBieXRlcywgd2UgY2hvb3NlIHRvIGxpbWl0IHRoZSBsZW5ndGggb2YgdGhlIGhlYWRlclxuICAgIC8vIHZhbHVlIHRvIDgxOTIgYnl0ZXMuXG4gICAgY29uc3QgZnVsbFJlcXVlc3RVcmwgPSAocmVxdWVzdFVybC5zdGFydHNXaXRoKCcvJykgPyBgJHt0YXJnZXRPcmlnaW59JHtyZXF1ZXN0VXJsfWAgOiByZXF1ZXN0VXJsKS5zbGljZShcbiAgICAgIDAsXG4gICAgICBNQVhfVVJMX0xFTkdUSF9CWVRFUyxcbiAgICApO1xuICAgIGlmIChsb2dnaW5nKSB7XG4gICAgICBjb25zb2xlLmxvZyhgU2V0dGluZyBwcm94eSByZXNwb25zZSAke1hfUFJPWFlfUkVRVUVTVF9VUkx9IGhlYWRlciB0byBcIiR7ZnVsbFJlcXVlc3RVcmx9XCJgKTtcbiAgICB9XG4gICAgd29ya2luZ0hlYWRlcnMuc2V0SGVhZGVyKFhfUFJPWFlfUkVRVUVTVF9VUkwsIGZ1bGxSZXF1ZXN0VXJsKTtcbiAgfVxuXG4gIC8vIEdldCBhIHZlcnNpb24gb2YgdGhlIHByb3h5UGF0aCB0aGF0IGRvZXMgbm90IGVuZCBpbiBhIHNsYXNoXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIGNvbnN0IHByb3h5UGF0aEJhc2UgPSBwcm94eVBhdGguZW5kc1dpdGgoJy8nKSA/IHByb3h5UGF0aC5zbGljZSgwLCAtMSkgOiBwcm94eVBhdGg7XG5cbiAgY29uc3QgYWxsb3dPcmlnaW4gPSB3b3JraW5nSGVhZGVycy5nZXRIZWFkZXIoQUNfQUxMT1dfT1JJR0lOKTtcbiAgaWYgKGxvZ2dpbmcgJiYgYWxsb3dPcmlnaW4pIHtcbiAgICBjb25zb2xlLmxvZyhgSGVhZGVyICR7QUNfQUxMT1dfT1JJR0lOfSBoYXMgdmFsdWUgXCIke2FsbG93T3JpZ2lufVwiYCk7XG4gIH1cbiAgaWYgKGFsbG93T3JpZ2luID09PSB0YXJnZXRPcmlnaW4pIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChsb2dnaW5nKSB7XG4gICAgICBjb25zb2xlLmxvZyhgUmV3cml0aW5nIHByb3h5IHJlc3BvbnNlICR7QUNfQUxMT1dfT1JJR0lOfSBoZWFkZXIgdG8gXCIke2FwcE9yaWdpbn1cImApO1xuICAgIH1cbiAgICB3b3JraW5nSGVhZGVycy5zZXRIZWFkZXIoQUNfQUxMT1dfT1JJR0lOLCBhcHBPcmlnaW4pO1xuICB9XG5cbiAgaWYgKGNhY2hpbmcpIHtcbiAgICAvLyBGb3IgYSBjYWNoaW5nIHByb3h5LCByZW1vdmUgYW55IFNldC1Db29raWUgaGVhZGVyc1xuICAgIHdvcmtpbmdIZWFkZXJzLmRlbGV0ZUhlYWRlcihTRVRfQ09PS0lFKTtcbiAgfSBlbHNlIHtcbiAgICAvLyBGb3IgYSBzdGFuZGFyZCBwcm94eSwgcmV3cml0ZSBkb21haW5zIGluIGFueSBzZXQtY29va2llIGhlYWRlcnMuXG4gICAgY29uc3QgdXBkYXRlZENvb2tpZXMgPSByZXdyaXRlU2V0Q29va2llcyh7XG4gICAgICBhcHBIb3N0bmFtZSxcbiAgICAgIHNldENvb2tpZXM6IHdvcmtpbmdIZWFkZXJzLmdldFNldENvb2tpZSgpLFxuICAgICAgdGFyZ2V0SG9zdCxcbiAgICAgIGxvZ2dpbmcsXG4gICAgfSk7XG4gICAgd29ya2luZ0hlYWRlcnMuc2V0U2V0Q29va2llKHVwZGF0ZWRDb29raWVzKTtcbiAgfVxuXG4gIC8vIEhhbmRsZSBhbnkgcmVkaXJlY3RcbiAgaWYgKHN0YXR1c0NvZGUgPj0gMzAxICYmIHN0YXR1c0NvZGUgPD0gMzA4KSB7XG4gICAgaWYgKGxvZ2dpbmcpIHtcbiAgICAgIGNvbnNvbGUubG9nKGBTdGF0dXMgY29kZSBpcyAke3N0YXR1c0NvZGV9LCBjaGVja2luZyBMb2NhdGlvbiBoZWFkZXJgKTtcbiAgICB9XG4gICAgY29uc3QgbG9jYXRpb24gPSB3b3JraW5nSGVhZGVycy5nZXRIZWFkZXIoTE9DQVRJT04pO1xuICAgIGlmIChsb2dnaW5nKSB7XG4gICAgICBjb25zb2xlLmxvZyhgTG9jYXRpb24gaGVhZGVyIGhhcyB2YWx1ZSBcIiR7bG9jYXRpb259XCJgKTtcbiAgICB9XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChsb2NhdGlvbikge1xuICAgICAgLy8gVGhlIExvY2F0aW9uIGhlYWRlciBpcyBkZWZpbmVkIGFzIGEgVVJMLCBtZWFuaW5nIHRoYXQgaXRcbiAgICAgIC8vIGNhbiBiZSBib3RoIHByb3RvY29sLSBhbmQgaG9zdC1yZWxhdGl2ZSwgc28gd2UgZXhwYW5kIGl0XG4gICAgICAvLyByZWxhdGl2ZSB0byB0aGUgdGFyZ2V0T3JpZ2luLlxuICAgICAgY29uc3QgbG9jVXJsID0gbmV3IFVSTChsb2NhdGlvbiwgdGFyZ2V0T3JpZ2luKTtcblxuICAgICAgLy8gSWYgdGhlIGxvY2F0aW9uIGhlYWRlciBVUkwgaXMgb24gdGhlIHRhcmdldE9yaWdpbiwgd2UgcmV3cml0ZSBpdC5cbiAgICAgIGlmIChsb2NVcmwucHJvdG9jb2wgPT09IGAke3RhcmdldFByb3RvY29sfTpgICYmIGxvY1VybC5ob3N0ID09PSB0YXJnZXRIb3N0KSB7XG4gICAgICAgIC8vIFJld3JpdGUgdGhlIExvY2F0aW9uIHZhbHVlIHRvIG1hcCB0byB0aGUgcHJveHkgcGF0aFxuICAgICAgICAvLyBvbiB0aGUgYXBwIGhvc3QuXG4gICAgICAgIGxvY1VybC5wcm90b2NvbCA9IGFwcFByb3RvY29sO1xuICAgICAgICBsb2NVcmwuaG9zdCA9IGFwcEhvc3RuYW1lO1xuICAgICAgICAvLyBTaW5jZSB0aGUgcHJveHlQYXRoIGVuZHMgd2l0aCBhIHNsYXNoIGFuZCBsb2NVcmwucGF0aG5hbWVcbiAgICAgICAgLy8gd2lsbCBzdGFydCB3aXRoIGEgc2xhc2gsIHdlIG5lZWQgdG9cbiAgICAgICAgbG9jVXJsLnBhdGhuYW1lID0gcHJveHlQYXRoQmFzZSArIGxvY1VybC5wYXRobmFtZTtcbiAgICAgICAgY29uc3QgbmV3TG9jYXRpb24gPSBsb2NVcmwudG9TdHJpbmcoKTtcbiAgICAgICAgd29ya2luZ0hlYWRlcnMuc2V0SGVhZGVyKExPQ0FUSU9OLCBuZXdMb2NhdGlvbik7XG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgIGlmIChsb2dnaW5nKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coYFJld3JpdGluZyBwcm94eSByZXNwb25zZSBMb2NhdGlvbiBoZWFkZXIgZnJvbSBcIiR7bG9jYXRpb259XCIgdG8gXCIke25ld0xvY2F0aW9ufVwiYCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gd29ya2luZ0hlYWRlcnMudG9PYmplY3QoKTtcbn07XG5cbi8qKlxuICogTGlzdCBvZiB4LSBoZWFkZXJzIHRoYXQgYXJlIHJlbW92ZWQgZnJvbSBwcm94aWVkIHJlcXVlc3RzLlxuICogQHByaXZhdGVcbiAqL1xuZXhwb3J0IGNvbnN0IFhfSEVBREVSU19UT19SRU1PVkVfUFJPWFk6IHN0cmluZ1tdID0gWyd4LW1vYmlmeS1hY2Nlc3Mta2V5JywgJ3gtc2ZkYy1hY2Nlc3MtY29udHJvbCddO1xuXG4vKipcbiAqIExpc3Qgb2YgeC0gaGVhZGVycyB0aGF0IGFyZSByZW1vdmVkIGZyb20gb3JpZ2luIHJlcXVlc3RzLlxuICogQHByaXZhdGVcbiAqL1xuZXhwb3J0IGNvbnN0IFhfSEVBREVSU19UT19SRU1PVkVfT1JJR0lOOiBzdHJpbmdbXSA9IFtcbiAgJ3gtYXBpLWtleScsXG4gICd4LWFwaWdhdGV3YXktZXZlbnQnLFxuICAneC1hcGlnYXRld2F5LWNvbnRleHQnLFxuICAneC1tb2JpZnktYWNjZXNzLWtleScsXG4gICd4LXNmZGMtYWNjZXNzLWNvbnRyb2wnLFxuXTtcblxuLyoqXG4gKiBYLWhlYWRlciBrZXkgYW5kIHZhbHVlcyB0byBhZGQgdG8gcHJveGllZCByZXF1ZXN0c1xuICogQHByaXZhdGVcbiAqL1xuZXhwb3J0IGNvbnN0IFhfSEVBREVSU19UT19BREQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICd4LW1vYmlmeSc6ICd0cnVlJyxcbn07XG5cbi8qKlxuICogTGlzdCBvZiBoZWFkZXJzIHRoYXQgYXJlIGFsbG93ZWQgZm9yIGEgY2FjaGluZyBwcm94eSByZXF1ZXN0LlxuICogVGhpcyBtdXN0IG1hdGNoIHRoZSBhbGxvd2xpc3QgdGhhdCBDbG91ZEZyb250IHVzZXMgZm9yIGFcbiAqIENhY2hlQmVoYXZpb3IgdGhhdCBkb2VzIG5vdCBwYXNzIGNvb2tpZXMgYW5kIGlzIG5vdCBjb25maWd1cmVkXG4gKiB0byBjYWNoZSBiYXNlZCBvbiBoZWFkZXJzLlxuICpcbiAqIFRoaXMgaXMgYSBtYXAgZnJvbSBsb3dlci1jYXNlIGhlYWRlciBuYW1lIHRvICd0cnVlJyAtIHdlIHVzZSBhbiBvYmplY3RcbiAqIHRvIG1ha2UgbG9va3VwcyBmYXN0LCBzaW5jZSB0aGlzIG1hcHBpbmcgbWlnaHQgYmUgdXNlZCBmb3IgbWFueSByZXF1ZXN0cy5cbiAqXG4gKiBBbHNvIHNlZSB3aGF0IGlzIGNvbmZpZ3VyZWQgaW4gdGhlIFNTUiBNYW5hZ2VyIChzc3ItaW5mcmFzdHJ1Y3R1cmUgcmVwbyksXG4gKiBpbiB0aGUgQ2xvdWRGcm9udCBjb25maWd1cmF0aW9uLiBUaGlzIGxpc3QgaXMgYSBzdXBlcnNldCBvZiB0aGF0IGxpc3QsXG4gKiBzaW5jZSB0aGUgcHJveHlpbmcgY29kZSBtdXN0IGFsc28gYWxsb3cgaGVhZGVycyB0aGF0IGl0IGFkZHMsIHN1Y2ggYXNcbiAqIEhvc3QsIE9yaWdpbiwgZXRjLlxuICpcbiAqIFNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRGcm9udC9sYXRlc3QvRGV2ZWxvcGVyR3VpZGUvaGVhZGVyLWNhY2hpbmcuaHRtbFxuICogU2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25DbG91ZEZyb250L2xhdGVzdC9EZXZlbG9wZXJHdWlkZS9Db29raWVzLmh0bWxcbiAqXG4gKiBAcHJpdmF0ZVxuICovXG5leHBvcnQgY29uc3QgQUxMT1dFRF9DQUNISU5HX1BST1hZX1JFUVVFU1RfSEVBREVSUzogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4gPSB7XG4gIC8vIFRoaXMgaXMgdGhlIHNldCBvZiBoZWFkZXJzIGFsbG93ZWQgZm9yIENsb3VkRnJvbnRcbiAgYWNjZXB0OiB0cnVlLFxuICAnYWNjZXB0LWNoYXJzZXQnOiB0cnVlLFxuICAnYWNjZXB0LWVuY29kaW5nJzogdHJ1ZSxcbiAgJ2FjY2VwdC1sYW5ndWFnZSc6IHRydWUsXG4gIGF1dGhvcml6YXRpb246IHRydWUsXG4gIHJhbmdlOiB0cnVlLFxuXG4gIC8vIFRoZXNlIGhlYWRlcnMgbXVzdCBiZSBwcmVzZXJ2ZWQgaW4gdGhlIHJlcXVlc3Qgc28gdGhhdFxuICAvLyBoZWFkZXIgcHJvY2Vzc2luZyB3b3JrcyBjb3JyZWN0bHkuXG4gIGhvc3Q6IHRydWUsXG4gIG9yaWdpbjogdHJ1ZSxcblxuICAvLyBXaGVyZSBDbG91ZEZyb250IGRvZXMgdGhlIHByb3h5aW5nLCB0aGVzZSBoZWFkZXJzIGFyZVxuICAvLyBnZW5lcmF0ZWQgYnkgQ2xvdWRGcm9udCBpdHNlbGYuIFdoZXJlIHRoZSBFeHByZXNzIGFwcFxuICAvLyBkb2VzIGl0LCB3ZSBmb3J3YXJkIHRoZW0uXG4gICdpZi1tYXRjaCc6IHRydWUsXG4gICdpZi1tb2RpZmllZC1zaW5jZSc6IHRydWUsXG4gICdpZi1ub25lLW1hdGNoJzogdHJ1ZSxcbiAgJ2lmLXJhbmdlJzogdHJ1ZSxcbiAgJ2lmLXVubW9kaWZpZWQtc2luY2UnOiB0cnVlLFxufTtcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciByZXdyaXRlUHJveHlSZXF1ZXN0SGVhZGVycyBmdW5jdGlvblxuICovXG5pbnRlcmZhY2UgUmV3cml0ZVByb3h5UmVxdWVzdEhlYWRlcnNQYXJhbXMge1xuICAvKiogdHJ1ZSBmb3IgYSBjYWNoaW5nIHByb3h5LCBmYWxzZSBmb3IgYSBzdGFuZGFyZCBwcm94eSAqL1xuICBjYWNoaW5nPzogYm9vbGVhbjtcbiAgLyoqIHRoZSBoZWFkZXJzIHRvIGJlIHJld3JpdHRlbiAqL1xuICBoZWFkZXJzPzogQVdTSGVhZGVycyB8IEhUVFBIZWFkZXJzIHwgSW5jb21pbmdIdHRwSGVhZGVycztcbiAgLyoqICdhd3MnIG9yICdodHRwJyAtIHRoZSBmb3JtYXQgb2YgdGhlICdoZWFkZXJzJyBwYXJhbWV0ZXIgKi9cbiAgaGVhZGVyRm9ybWF0PzogSGVhZGVyRm9ybWF0O1xuICAvKiogdGhlIHByb3RvY29sIHRvIHVzZSB0byBtYWtlIHJlcXVlc3RzIHRvIHRoZSB0YXJnZXQgKCdodHRwJyBvciAnaHR0cHMnKSAqL1xuICB0YXJnZXRQcm90b2NvbDogc3RyaW5nO1xuICAvKiogdGhlIHRhcmdldCBob3N0bmFtZSAoaG9zdCtwb3J0KSAqL1xuICB0YXJnZXRIb3N0OiBzdHJpbmc7XG4gIC8qKiB0cnVlIHRvIGxvZyBvcGVyYXRpb25zICovXG4gIGxvZ2dpbmc/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFJld3JpdGUgaGVhZGVycyBmb3IgYSByZXF1ZXN0IHRoYXQgaXMgYmVpbmcgcHJveGllZC5cbiAqXG4gKiAxLiBJZiB0aGUgcmVxdWVzdCBjb250YWlucyBhIEhvc3QgaGVhZGVyLCByZXdyaXRlIGl0IHNvIHRoYXQgdGhlXG4gKiB2YWx1ZSBpcyB0aGUgdGFyZ2V0IGhvc3QuXG4gKiAyLiBJZiB0aGUgcmVxdWVzdCBjb250YWlucyBhbiBPcmlnaW4gaGVhZGVyLCByZXdyaXRlIGl0IHNvIHRoYXQgdGhlXG4gKiB2YWx1ZSBpcyB0aGUgdGFyZ2V0IGhvc3QuXG4gKiAzLiBBTEwgb3RoZXIgaGVhZGVyIHZhbHVlcyBhcmUgbGVmdCB1bmNoYW5nZWQuIElmIHRoZXkgYXJlIG11bHRpLXZhbHVlXG4gKiBoZWFkZXJzIHdob3NlIHZhbHVlcyBhcmUgc3RvcmVkIGFzIGFycmF5cywgdGhlIHZhbHVlcyBhcmUgbGVmdCBhcyBhcnJheXMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSBwYXJhbXMgQ29uZmlndXJhdGlvbiBvYmplY3QgZm9yIHJld3JpdGluZyBwcm94eSByZXF1ZXN0IGhlYWRlcnNcbiAqIEByZXR1cm5zIHRoZSBtb2RpZmllZCByZXF1ZXN0IGhlYWRlcnNcbiAqL1xuZXhwb3J0IGNvbnN0IHJld3JpdGVQcm94eVJlcXVlc3RIZWFkZXJzID0gKHtcbiAgY2FjaGluZyA9IGZhbHNlLFxuICBoZWFkZXJzLFxuICBoZWFkZXJGb3JtYXQgPSAnaHR0cCcsXG4gIHRhcmdldFByb3RvY29sLFxuICB0YXJnZXRIb3N0LFxuICBsb2dnaW5nID0gZmFsc2UsXG59OiBSZXdyaXRlUHJveHlSZXF1ZXN0SGVhZGVyc1BhcmFtcyk6IEFXU0hlYWRlcnMgfCBIVFRQSGVhZGVycyB8IEluY29taW5nSHR0cEhlYWRlcnMgPT4ge1xuICBpZiAoIWhlYWRlcnMpIHtcbiAgICByZXR1cm4ge307XG4gIH1cbiAgY29uc3Qgd29ya2luZ0hlYWRlcnMgPSBuZXcgSGVhZGVycyh7Li4uaGVhZGVyc30sIGhlYWRlckZvcm1hdCk7XG5cbiAgLy8gU3RyaXAgb3V0IHNvbWUgc3BlY2lmaWMgWC1oZWFkZXJzXG4gIFhfSEVBREVSU19UT19SRU1PVkVfUFJPWFkuZm9yRWFjaCgoa2V5KSA9PiB3b3JraW5nSGVhZGVycy5kZWxldGVIZWFkZXIoa2V5KSk7XG5cbiAgLy8gRm9yIGEgY2FjaGluZyBwcm94eSwgYXBwbHkgc3BlY2lhbCBoZWFkZXIgcHJvY2Vzc2luZ1xuICBpZiAoY2FjaGluZykge1xuICAgIC8vIFJlbW92ZSBhbnkgaGVhZGVycyB0aGF0IGFyZSBub3Qgb24gdGhlIGFsbG93bGlzdFxuICAgIHdvcmtpbmdIZWFkZXJzLmtleXMoKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgIGlmICghQUxMT1dFRF9DQUNISU5HX1BST1hZX1JFUVVFU1RfSEVBREVSU1trZXldKSB7XG4gICAgICAgIHdvcmtpbmdIZWFkZXJzLmRlbGV0ZUhlYWRlcihrZXkpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gT3ZlcnJpZGUgdXNlci1hZ2VudCAtIG1pbWljIHRoZSBiZWhhdmlvdXIgb2YgQ2xvdWRGcm9udFxuICAgIHdvcmtpbmdIZWFkZXJzLnNldEhlYWRlcihVU0VSX0FHRU5ULCAnQW1hem9uIENsb3VkRnJvbnQnKTtcbiAgfVxuXG4gIC8vIEZpeCB1cCBhbnkgSG9zdCBoZWFkZXIuIFdlIGlnbm9yZSBhbnkgY3VycmVudCB2YWx1ZSBhbmRcbiAgLy8gYWx3YXlzIHJlcGxhY2UgaXQgd2l0aCB0aGUgdGFyZ2V0IGhvc3QuXG4gIC8vIEhvc3Q6IDxob3N0Pjo8cG9ydD5cbiAgY29uc3QgaG9zdEhlYWRlciA9IHdvcmtpbmdIZWFkZXJzLmdldEhlYWRlcihIT1NUKTtcbiAgaWYgKGhvc3RIZWFkZXIgIT09IHRhcmdldEhvc3QpIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChsb2dnaW5nKSB7XG4gICAgICBjb25zb2xlLmxvZyhgUmV3cml0aW5nIHByb3h5IHJlcXVlc3QgSG9zdCBoZWFkZXIgZnJvbSBcIiR7aG9zdEhlYWRlcn1cIiB0byBcIiR7dGFyZ2V0SG9zdH1cImApO1xuICAgIH1cbiAgICB3b3JraW5nSGVhZGVycy5zZXRIZWFkZXIoSE9TVCwgdGFyZ2V0SG9zdCk7XG4gIH1cblxuICAvLyBGaXggdXAgYW55IE9yaWdpbiBoZWFkZXIuIFdlIGlnbm9yZSBhbnkgY3VycmVudCB2YWx1ZSBhbmRcbiAgLy8gYWx3YXlzIHJlcGxhY2UgaXQgd2l0aCB0aGUgdGFyZ2V0T3JpZ2luXG4gIC8vIE9yaWdpbjogPHNjaGVtZT4gXCI6Ly9cIiA8aG9zdG5hbWU+IFsgXCI6XCIgPHBvcnQ+IF1cbiAgY29uc3Qgb3JpZ2luSGVhZGVyID0gd29ya2luZ0hlYWRlcnMuZ2V0SGVhZGVyKE9SSUdJTik7XG4gIGNvbnN0IHRhcmdldE9yaWdpbiA9IGAke3RhcmdldFByb3RvY29sfTovLyR7dGFyZ2V0SG9zdH1gO1xuICBpZiAob3JpZ2luSGVhZGVyICYmIG9yaWdpbkhlYWRlciAhPT0gdGFyZ2V0T3JpZ2luKSB7XG4gICAgd29ya2luZ0hlYWRlcnMuc2V0SGVhZGVyKE9SSUdJTiwgdGFyZ2V0T3JpZ2luKTtcbiAgfVxuXG4gIC8vIFJlcGxhY2Ugc29tZSBoZWFkZXJzIHdpdGggaGFyZHdpcmVkIHZhbHVlc1xuICBpZiAod29ya2luZ0hlYWRlcnMuZ2V0SGVhZGVyKFVTRVJfQUdFTlQpKSB7XG4gICAgLy8gTWltaWMgdGhlIGJlaGF2aW91ciBvZiBDbG91ZEZyb250XG4gICAgd29ya2luZ0hlYWRlcnMuc2V0SGVhZGVyKFVTRVJfQUdFTlQsICdBbWF6b24gQ2xvdWRGcm9udCcpO1xuICB9XG5cbiAgLy8gQWRkIHNvbWUgc3BlY2lmaWMgWC1oZWFkZXJzXG4gIE9iamVjdC5lbnRyaWVzKFhfSEVBREVSU19UT19BREQpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgIHdvcmtpbmdIZWFkZXJzLnNldEhlYWRlcihrZXksIHZhbHVlKTtcbiAgfSk7XG5cbiAgcmV0dXJuIHdvcmtpbmdIZWFkZXJzLnRvT2JqZWN0KCk7XG59O1xuIiwgIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjUsIFNhbGVzZm9yY2UsIEluYy5cbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMlxuICogRm9yIGZ1bGwgbGljZW5zZSB0ZXh0LCBzZWUgdGhlIGxpY2Vuc2UudHh0IGZpbGUgaW4gdGhlIHJlcG8gcm9vdCBvciBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqL1xuXG4vKipcbiAqIEBmaWxlb3ZlcnZpZXcgUHJveHkgY29uZmlndXJhdGlvbiB1dGlsaXRpZXMgZm9yIE1SVCBtaWRkbGV3YXJlLlxuICpcbiAqIFRoaXMgbW9kdWxlIHByb3ZpZGVzIGZ1bmN0aW9ucyBmb3IgY29uZmlndXJpbmcgSFRUUCBwcm94eSBtaWRkbGV3YXJlLFxuICogaW5jbHVkaW5nIHJlcXVlc3QvcmVzcG9uc2UgaGVhZGVyIHJld3JpdGluZyBhbmQgcHJveHkgc2V0dXAgZm9yIGV4dGVybmFsIHNlcnZpY2VzLlxuICogSXQncyBkZXNpZ25lZCB0byB3b3JrIHdpdGggaHR0cC1wcm94eS1taWRkbGV3YXJlIGFuZCBpbnRlZ3JhdGVzIHdpdGggdGhlIFNTUiBwcm94eWluZyB1dGlsaXRpZXMuXG4gKlxuICogQGF1dGhvciBTYWxlc2ZvcmNlIENvbW1lcmNlIENsb3VkXG4gKiBAdmVyc2lvbiAwLjAuMVxuICovXG5cbmltcG9ydCB0eXBlIHtJbmNvbWluZ01lc3NhZ2UsIFNlcnZlclJlc3BvbnNlLCBDbGllbnRSZXF1ZXN0LCBJbmNvbWluZ0h0dHBIZWFkZXJzfSBmcm9tICdodHRwJztcbmltcG9ydCB7cmV3cml0ZVByb3h5UmVxdWVzdEhlYWRlcnMsIHJld3JpdGVQcm94eVJlc3BvbnNlSGVhZGVycywgdHlwZSBIVFRQSGVhZGVyc30gZnJvbSAnLi9zc3ItcHJveHlpbmcuanMnO1xuaW1wb3J0IHtjcmVhdGVQcm94eU1pZGRsZXdhcmUsIHR5cGUgT3B0aW9ucywgdHlwZSBSZXF1ZXN0SGFuZGxlcn0gZnJvbSAnaHR0cC1wcm94eS1taWRkbGV3YXJlJztcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciBhcHBseVByb3h5UmVxdWVzdEhlYWRlcnMgZnVuY3Rpb25cbiAqL1xuaW50ZXJmYWNlIEFwcGx5UHJveHlSZXF1ZXN0SGVhZGVyc1BhcmFtcyB7XG4gIC8qKiBUaGUgcHJveHkgcmVxdWVzdCBvYmplY3QgZnJvbSBodHRwLXByb3h5LW1pZGRsZXdhcmUgKi9cbiAgcHJveHlSZXF1ZXN0OiBDbGllbnRSZXF1ZXN0O1xuICAvKiogVGhlIGluY29taW5nIHJlcXVlc3Qgb2JqZWN0ICovXG4gIGluY29taW5nUmVxdWVzdDogSW5jb21pbmdNZXNzYWdlO1xuICAvKiogV2hldGhlciB0aGlzIGlzIGEgY2FjaGluZyBwcm94eSAqL1xuICBjYWNoaW5nPzogYm9vbGVhbjtcbiAgLyoqIFRoZSBwcm94eSBwYXRoIGJlaW5nIHVzZWQgKi9cbiAgcHJveHlQYXRoOiBzdHJpbmc7XG4gIC8qKiBUaGUgdGFyZ2V0IGhvc3QgdG8gcHJveHkgdG8gKi9cbiAgdGFyZ2V0SG9zdDogc3RyaW5nO1xuICAvKiogVGhlIHByb3RvY29sIHRvIHVzZSBmb3IgdGhlIHRhcmdldCAqL1xuICB0YXJnZXRQcm90b2NvbDogc3RyaW5nO1xuICAvKiogQGludGVybmFsIFRlc3QgaG9vazogb3ZlcnJpZGUgcmV3cml0ZSBmdW5jdGlvbiAqL1xuICByZXdyaXRlUmVxdWVzdEhlYWRlcnM/OiAoXG4gICAgb3B0czogUGFyYW1ldGVyczx0eXBlb2YgcmV3cml0ZVByb3h5UmVxdWVzdEhlYWRlcnM+WzBdLFxuICApID0+IFJldHVyblR5cGU8dHlwZW9mIHJld3JpdGVQcm94eVJlcXVlc3RIZWFkZXJzPjtcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciBjb25maWd1cmVQcm94eSBmdW5jdGlvblxuICovXG5pbnRlcmZhY2UgQ29uZmlndXJlUHJveHlQYXJhbXMge1xuICAvKiogVGhlIGhvc3RuYW1lIHdoZXJlIHRoZSBFeHByZXNzIGFwcCBpcyBydW5uaW5nICovXG4gIGFwcEhvc3RuYW1lOiBzdHJpbmc7XG4gIC8qKiBUaGUgcHJveHkgcGF0aCBwYXR0ZXJuICovXG4gIHByb3h5UGF0aDogc3RyaW5nO1xuICAvKiogVGhlIHByb3RvY29sIHRvIHVzZSBmb3IgdGhlIHRhcmdldCAqL1xuICB0YXJnZXRQcm90b2NvbDogc3RyaW5nO1xuICAvKiogVGhlIHRhcmdldCBob3N0IHRvIHByb3h5IHRvICovXG4gIHRhcmdldEhvc3Q6IHN0cmluZztcbiAgLyoqIFRoZSBwcm90b2NvbCB0byB1c2UgZm9yIHRoZSBhcHAgKGRlZmF1bHRzIHRvIGh0dHBzKSAqL1xuICBhcHBQcm90b2NvbD86IHN0cmluZztcbiAgLyoqIFdoZXRoZXIgdGhpcyBpcyBhIGNhY2hpbmcgcHJveHkgKi9cbiAgY2FjaGluZz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogT3B0aW9uYWwgdGVzdCBob29rOiBwcm92aWRlIGEgY3VzdG9tIGNyZWF0ZVByb3h5TWlkZGxld2FyZSBpbXBsZW1lbnRhdGlvbi5cbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgdHlwZSBDcmVhdGVQcm94eU1pZGRsZXdhcmVGbiA9IChjb25maWc6IE9wdGlvbnM8SW5jb21pbmdNZXNzYWdlLCBTZXJ2ZXJSZXNwb25zZT4pID0+IFJlcXVlc3RIYW5kbGVyO1xuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gb2JqZWN0IGZvciBhIHByb3h5XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJveHlDb25maWcge1xuICAvKiogVGhlIHRhcmdldCBob3N0IFVSTCAqL1xuICBob3N0OiBzdHJpbmc7XG4gIC8qKiBUaGUgcHJveHkgcGF0aCBwYXR0ZXJuICovXG4gIHBhdGg6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXR1cm4gdHlwZSBmb3IgY29uZmlndXJlUHJveHkgZnVuY3Rpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm94eVJlc3VsdCB7XG4gIC8qKiBUaGUgcHJveHkgbWlkZGxld2FyZSBmdW5jdGlvbiAqL1xuICBmbjogUmVxdWVzdEhhbmRsZXI7XG4gIC8qKiBUaGUgcHJveHkgcGF0aCBwYXR0ZXJuICovXG4gIHBhdGg6IHN0cmluZztcbn1cblxuY29uc3Qgc3RyaXBQcm94eVBhdGhSRSA9IC9eXFwvbW9iaWZ5XFwvKHByb3h5fGNhY2hpbmcpXFwvKFteL10rKS87XG5cbi8qKlxuICogQXBwbGllcyBwcm94eSByZXF1ZXN0IGhlYWRlcnMgYnkgcmV3cml0aW5nIGFuZCBjb3B5aW5nIGhlYWRlcnMgZnJvbSB0aGUgaW5jb21pbmcgcmVxdWVzdFxuICogdG8gdGhlIHByb3h5IHJlcXVlc3QgdXNpbmcgdGhlIFNTUiBwcm94eWluZyB1dGlsaXRpZXMuXG4gKlxuICogVGhpcyBmdW5jdGlvbiBoYW5kbGVzIGhlYWRlciB0cmFuc2Zvcm1hdGlvbiwgYWRkaXRpb24sIGFuZCByZW1vdmFsIGZvciBwcm94eSByZXF1ZXN0cyxcbiAqIGVuc3VyaW5nIHRoYXQgdGhlIHByb3hpZWQgcmVxdWVzdCBoYXMgdGhlIGNvcnJlY3QgaGVhZGVycyBmb3IgdGhlIHRhcmdldCBzZXJ2aWNlLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBQYXJhbWV0ZXJzIGZvciBhcHBseWluZyBwcm94eSByZXF1ZXN0IGhlYWRlcnNcbiAqIEBwYXJhbSBwYXJhbXMucHJveHlSZXF1ZXN0IC0gVGhlIHByb3h5IHJlcXVlc3Qgb2JqZWN0IGZyb20gaHR0cC1wcm94eS1taWRkbGV3YXJlXG4gKiBAcGFyYW0gcGFyYW1zLmluY29taW5nUmVxdWVzdCAtIFRoZSBpbmNvbWluZyByZXF1ZXN0IG9iamVjdFxuICogQHBhcmFtIHBhcmFtcy5jYWNoaW5nIC0gV2hldGhlciB0aGlzIGlzIGEgY2FjaGluZyBwcm94eSAoZGVmYXVsdHMgdG8gZmFsc2UpXG4gKiBAcGFyYW0gcGFyYW1zLnByb3h5UGF0aCAtIFRoZSBwcm94eSBwYXRoIGJlaW5nIHVzZWRcbiAqIEBwYXJhbSBwYXJhbXMudGFyZ2V0SG9zdCAtIFRoZSB0YXJnZXQgaG9zdCB0byBwcm94eSB0b1xuICogQHBhcmFtIHBhcmFtcy50YXJnZXRQcm90b2NvbCAtIFRoZSBwcm90b2NvbCB0byB1c2UgZm9yIHRoZSB0YXJnZXRcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogYXBwbHlQcm94eVJlcXVlc3RIZWFkZXJzKHtcbiAqICAgcHJveHlSZXF1ZXN0OiBjbGllbnRSZXF1ZXN0LFxuICogICBpbmNvbWluZ1JlcXVlc3Q6IGluY29taW5nTWVzc2FnZSxcbiAqICAgY2FjaGluZzogZmFsc2UsXG4gKiAgIHByb3h5UGF0aDogJ2FwaScsXG4gKiAgIHRhcmdldEhvc3Q6ICdhcGkuZXhhbXBsZS5jb20nLFxuICogICB0YXJnZXRQcm90b2NvbDogJ2h0dHBzJ1xuICogfSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNvbnN0IGFwcGx5UHJveHlSZXF1ZXN0SGVhZGVycyA9ICh7XG4gIHByb3h5UmVxdWVzdCxcbiAgaW5jb21pbmdSZXF1ZXN0LFxuICBjYWNoaW5nID0gZmFsc2UsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgcHJveHlQYXRoLFxuICB0YXJnZXRIb3N0LFxuICB0YXJnZXRQcm90b2NvbCxcbiAgcmV3cml0ZVJlcXVlc3RIZWFkZXJzOiByZXdyaXRlRm4sXG59OiBBcHBseVByb3h5UmVxdWVzdEhlYWRlcnNQYXJhbXMpOiB2b2lkID0+IHtcbiAgY29uc3QgaGVhZGVycyA9IGluY29taW5nUmVxdWVzdC5oZWFkZXJzO1xuXG4gIGNvbnN0IHJld3JpdGUgPSByZXdyaXRlRm4gPz8gcmV3cml0ZVByb3h5UmVxdWVzdEhlYWRlcnM7XG4gIGNvbnN0IG5ld0hlYWRlcnMgPSByZXdyaXRlKHtcbiAgICBjYWNoaW5nLFxuICAgIGhlYWRlcnM6IGhlYWRlcnMgYXMgSFRUUEhlYWRlcnMsXG4gICAgaGVhZGVyRm9ybWF0OiAnaHR0cCcsXG4gICAgdGFyZ2V0SG9zdCxcbiAgICB0YXJnZXRQcm90b2NvbCxcbiAgfSk7XG5cbiAgLy8gQ29weSBhbnkgbmV3IGFuZCB1cGRhdGVkIGhlYWRlcnMgdG8gdGhlIHByb3h5UmVxdWVzdFxuICAvLyB1c2luZyBzZXRIZWFkZXIuXG4gIE9iamVjdC5lbnRyaWVzKG5ld0hlYWRlcnMpLmZvckVhY2goXG4gICAgLy8gc2V0SGVhZGVyIGFsd2F5cyByZXBsYWNlcyBhbnkgY3VycmVudCB2YWx1ZS5cbiAgICAoW2tleSwgdmFsdWVdKSA9PiBwcm94eVJlcXVlc3Quc2V0SGVhZGVyKGtleSwgdmFsdWUgYXMgc3RyaW5nIHwgbnVtYmVyIHwgcmVhZG9ubHkgc3RyaW5nW10pLFxuICApO1xuXG4gIC8vIEhhbmRsZSBkZWxldGlvbiBvZiBoZWFkZXJzLlxuICAvLyBJdGVyYXRlIG92ZXIgdGhlIGtleXMgb2YgaW5jb21pbmdSZXF1ZXN0LmhlYWRlcnMgLSBmb3IgZXZlcnlcbiAgLy8ga2V5LCBpZiB0aGUgdmFsdWUgaXMgbm90IHByZXNlbnQgaW4gbmV3SGVhZGVycywgd2UgcmVtb3ZlXG4gIC8vIHRoYXQgdmFsdWUgZnJvbSBwcm94eVJlcXVlc3QncyBoZWFkZXJzLlxuICBPYmplY3Qua2V5cyhoZWFkZXJzKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAvLyBXZSBkZWxldGUgdGhlIGhlYWRlciBvbiBhbnkgZmFsc3kgdmFsdWUsIHNpbmNlXG4gICAgLy8gdGhlcmUncyBubyB1c2UgY2FzZSB3aGVyZSB3ZSBzdXBwbHkgYW4gZW1wdHkgaGVhZGVyXG4gICAgLy8gdmFsdWUuXG4gICAgaWYgKCFuZXdIZWFkZXJzW2tleV0pIHtcbiAgICAgIHByb3h5UmVxdWVzdC5yZW1vdmVIZWFkZXIoa2V5KTtcbiAgICB9XG4gIH0pO1xufTtcblxuLyoqXG4gKiBDb25maWd1cmVzIGEgc2luZ2xlIHByb3h5IG1pZGRsZXdhcmUgd2l0aCB0aGUgc3BlY2lmaWVkIHBhcmFtZXRlcnMuXG4gKlxuICogVGhpcyBmdW5jdGlvbiBjcmVhdGVzIGEgY29tcGxldGUgcHJveHkgY29uZmlndXJhdGlvbiBpbmNsdWRpbmcgcmVxdWVzdC9yZXNwb25zZVxuICogaGVhZGVyIHJld3JpdGluZywgZXJyb3IgaGFuZGxpbmcsIGFuZCBjb29raWUgZG9tYWluIHJld3JpdGluZy4gVGhlIGNvbmZpZ3VyYXRpb25cbiAqIGlzIGRlc2lnbmVkIHRvIG1hdGNoIENsb3VkRnJvbnQgYmVoYXZpb3IgZm9yIGNvbnNpc3RlbmN5IGJldHdlZW4gbG9jYWwgZGV2ZWxvcG1lbnRcbiAqIGFuZCBwcm9kdWN0aW9uIGVudmlyb25tZW50cy5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gQ29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzIGZvciB0aGUgcHJveHlcbiAqIEBwYXJhbSBwYXJhbXMuYXBwSG9zdG5hbWUgLSBUaGUgaG9zdG5hbWUgd2hlcmUgdGhlIEV4cHJlc3MgYXBwIGlzIHJ1bm5pbmdcbiAqIEBwYXJhbSBwYXJhbXMucHJveHlQYXRoIC0gVGhlIHByb3h5IHBhdGggcGF0dGVyblxuICogQHBhcmFtIHBhcmFtcy50YXJnZXRQcm90b2NvbCAtIFRoZSBwcm90b2NvbCB0byB1c2UgZm9yIHRoZSB0YXJnZXRcbiAqIEBwYXJhbSBwYXJhbXMudGFyZ2V0SG9zdCAtIFRoZSB0YXJnZXQgaG9zdCB0byBwcm94eSB0b1xuICogQHBhcmFtIHBhcmFtcy5hcHBQcm90b2NvbCAtIFRoZSBwcm90b2NvbCB0byB1c2UgZm9yIHRoZSBhcHAgKGRlZmF1bHRzIHRvICdodHRwcycpXG4gKiBAcGFyYW0gcGFyYW1zLmNhY2hpbmcgLSBXaGV0aGVyIHRoaXMgaXMgYSBjYWNoaW5nIHByb3h5XG4gKiBAcmV0dXJucyBQcm94eSByZXN1bHQgY29udGFpbmluZyB0aGUgbWlkZGxld2FyZSBmdW5jdGlvbiBhbmQgcGF0aFxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBwcm94eSA9IGNvbmZpZ3VyZVByb3h5KHtcbiAqICAgYXBwSG9zdG5hbWU6ICdsb2NhbGhvc3Q6MzAwMCcsXG4gKiAgIHByb3h5UGF0aDogJ2FwaScsXG4gKiAgIHRhcmdldFByb3RvY29sOiAnaHR0cHMnLFxuICogICB0YXJnZXRIb3N0OiAnYXBpLmV4YW1wbGUuY29tJyxcbiAqICAgYXBwUHJvdG9jb2w6ICdodHRwcycsXG4gKiAgIGNhY2hpbmc6IGZhbHNlXG4gKiB9KTtcbiAqXG4gKiBhcHAudXNlKGAvbW9iaWZ5L3Byb3h5LyR7cHJveHkucGF0aH1gLCBwcm94eS5mbik7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNvbnN0IGNvbmZpZ3VyZVByb3h5ID0gKFxuICB7XG4gICAgYXBwSG9zdG5hbWUsXG4gICAgcHJveHlQYXRoLFxuICAgIHRhcmdldFByb3RvY29sLFxuICAgIHRhcmdldEhvc3QsXG4gICAgYXBwUHJvdG9jb2wgPSAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqLyAnaHR0cHMnLFxuICAgIGNhY2hpbmcsXG4gIH06IENvbmZpZ3VyZVByb3h5UGFyYW1zLFxuICBjcmVhdGVQcm94eUZuPzogQ3JlYXRlUHJveHlNaWRkbGV3YXJlRm4sXG4pOiBQcm94eVJlc3VsdCA9PiB7XG4gIGNvbnN0IGNyZWF0ZVByb3h5ID0gY3JlYXRlUHJveHlGbiA/PyBjcmVhdGVQcm94eU1pZGRsZXdhcmU7XG4gIC8vIFRoaXMgY29uZmlndXJhdGlvbiBtdXN0IG1hdGNoIHRoZSBiZWhhdmlvdXIgb2YgdGhlIHByb3h5aW5nXG4gIC8vIGluIENsb3VkRnJvbnQuXG4gIGNvbnN0IHRhcmdldE9yaWdpbiA9IGAke3RhcmdldFByb3RvY29sfTovLyR7dGFyZ2V0SG9zdH1gO1xuICBjb25zdCBjb25maWcgPSB7XG4gICAgLy8gVGhlIG5hbWUgb2YgdGhlIGNoYW5nZU9yaWdpbiBvcHRpb24gaXMgbWlzbGVhZGluZyAtIGl0IGNvbmZpZ3VyZXNcbiAgICAvLyB0aGUgcHJveHlpbmcgY29kZSBpbiBodHRwLXByb3h5IHRvIHJld3JpdGUgdGhlIEhvc3QgaGVhZGVyIChub3RcbiAgICAvLyBhbnkgT3JpZ2luIGhlYWRlcikgb2YgdGhlIG91dGdvaW5nIHJlcXVlc3QuIFRoZSBIb3N0IGhlYWRlciBpc1xuICAgIC8vIGFsc28gZml4ZWQgdXAgaW4gcmV3cml0ZVByb3h5UmVxdWVzdEhlYWRlcnMsIGJ1dCB0aGF0XG4gICAgLy8gZG9lc24ndCB3b3JrIGNvcnJlY3RseSB3aXRoIGh0dHAtcHJveHksIGJlY2F1c2UgdGhlIGh0dHBzXG4gICAgLy8gY29ubmVjdGlvbiB0byB0aGUgdGFyZ2V0IGlzIG1hZGUgKmJlZm9yZSogdGhlIHJlcXVlc3QgaGVhZGVyc1xuICAgIC8vIGFyZSBtb2RpZmllZCBieSB0aGUgb25Qcm94eVJlcSBldmVudCBoYW5kbGVyLiBTbyB3ZSBzZXQgdGhpc1xuICAgIC8vIGZsYWcgdHJ1ZSB0byBnZXQgY29ycmVjdCBiZWhhdmlvdXIuXG4gICAgY2hhbmdlT3JpZ2luOiB0cnVlLFxuXG4gICAgLy8gUmV3cml0ZSB0aGUgZG9tYWluIGluIHNldC1jb29raWUgaGVhZGVycyBpbiByZXNwb25zZXMsIGlmIGl0XG4gICAgLy8gbWF0Y2hlcyB0aGUgdGFyZ2V0SG9zdC5cbiAgICBjb29raWVEb21haW5SZXdyaXRlOiB7XG4gICAgICB0YXJnZXRIb3N0OiBhcHBIb3N0bmFtZSxcbiAgICB9LFxuXG4gICAgLy8gV2UgZG9uJ3QgZG8gY29va2llICpwYXRoKiByZXdyaXRpbmcgLSBpdCdzIGNvbXBsZXguXG4gICAgY29va2llUGF0aFJld3JpdGU6IGZhbHNlLFxuXG4gICAgLy8gTmVpdGhlciBDbG91ZEZyb250IG5vciB0aGUgbG9jYWwgRXhwcmVzcyBhcHAgd2lsbCBmb2xsb3cgcmVkaXJlY3RcbiAgICAvLyByZXNwb25zZXMgdG8gcHJveHkgcmVxdWVzdHMuIFRoZSByZXNwb25zZXMgYXJlIHJldHVybmVkIHRvIHRoZVxuICAgIC8vIGNsaWVudC5cbiAgICBmb2xsb3dSZWRpcmVjdHM6IGZhbHNlLFxuXG4gICAgb25FcnJvcjogKGVycjogRXJyb3IsIHJlcTogSW5jb21pbmdNZXNzYWdlLCByZXM6IFNlcnZlclJlc3BvbnNlKSA9PiB7XG4gICAgICByZXMud3JpdGVIZWFkKDUwMCwge1xuICAgICAgICAnQ29udGVudC1UeXBlJzogJ3RleHQvcGxhaW4nLFxuICAgICAgfSk7XG4gICAgICByZXMuZW5kKGBFcnJvciBpbiBwcm94eSByZXF1ZXN0IHRvICR7cmVxLnVybH06ICR7ZXJyfWApO1xuICAgIH0sXG5cbiAgICBvblByb3h5UmVxOiAocHJveHlSZXF1ZXN0OiBDbGllbnRSZXF1ZXN0LCBpbmNvbWluZ1JlcXVlc3Q6IEluY29taW5nTWVzc2FnZSkgPT4ge1xuICAgICAgYXBwbHlQcm94eVJlcXVlc3RIZWFkZXJzKHtcbiAgICAgICAgcHJveHlSZXF1ZXN0LFxuICAgICAgICBpbmNvbWluZ1JlcXVlc3QsXG4gICAgICAgIGNhY2hpbmcsXG4gICAgICAgIHByb3h5UGF0aCxcbiAgICAgICAgdGFyZ2V0SG9zdCxcbiAgICAgICAgdGFyZ2V0UHJvdG9jb2wsXG4gICAgICB9KTtcbiAgICB9LFxuXG4gICAgb25Qcm94eVJlczogKHByb3h5UmVzcG9uc2U6IEluY29taW5nTWVzc2FnZSwgcmVxOiBJbmNvbWluZ01lc3NhZ2UpID0+IHtcbiAgICAgIGNvbnN0IHJlcXVlc3RVcmwgPSByZXEudXJsPy5yZXBsYWNlKHN0cmlwUHJveHlQYXRoUkUsICcnKTtcblxuICAgICAgLy8gUmV3cml0ZSBrZXkgaGVhZGVyc1xuICAgICAgcHJveHlSZXNwb25zZS5oZWFkZXJzID0gcmV3cml0ZVByb3h5UmVzcG9uc2VIZWFkZXJzKHtcbiAgICAgICAgYXBwSG9zdG5hbWUsXG4gICAgICAgIGNhY2hpbmc6ICEhY2FjaGluZyxcbiAgICAgICAgdGFyZ2V0SG9zdCxcbiAgICAgICAgdGFyZ2V0UHJvdG9jb2wsXG4gICAgICAgIGFwcFByb3RvY29sLFxuICAgICAgICBwcm94eVBhdGgsXG4gICAgICAgIHN0YXR1c0NvZGU6IHByb3h5UmVzcG9uc2Uuc3RhdHVzQ29kZSxcbiAgICAgICAgaGVhZGVyczogcHJveHlSZXNwb25zZS5oZWFkZXJzLFxuICAgICAgICBoZWFkZXJGb3JtYXQ6ICdodHRwJyxcbiAgICAgICAgcmVxdWVzdFVybCxcbiAgICAgIH0pIGFzIEluY29taW5nSHR0cEhlYWRlcnM7XG4gICAgfSxcblxuICAgIC8vIFRoZSBvcmlnaW4gKHByb3RvY29sICsgaG9zdCkgdG8gd2hpY2ggd2UgcHJveHlcbiAgICB0YXJnZXQ6IHRhcmdldE9yaWdpbixcbiAgfTtcblxuICBjb25zdCBwcm94eUZ1bmMgPSBjcmVhdGVQcm94eShjb25maWcgYXMgT3B0aW9uczxJbmNvbWluZ01lc3NhZ2UsIFNlcnZlclJlc3BvbnNlPik7XG4gIHJldHVybiB7Zm46IHByb3h5RnVuYywgcGF0aDogcHJveHlQYXRofTtcbn07XG5cbi8qKlxuICogQ29uZmlndXJlcyBtdWx0aXBsZSBwcm94eSBtaWRkbGV3YXJlcyBmcm9tIGFuIGFycmF5IG9mIHByb3h5IGNvbmZpZ3VyYXRpb25zLlxuICpcbiAqIFRoaXMgZnVuY3Rpb24gcHJvY2Vzc2VzIGFuIGFycmF5IG9mIHByb3h5IGNvbmZpZ3VyYXRpb25zIGFuZCBjcmVhdGVzIGNvcnJlc3BvbmRpbmdcbiAqIHByb3h5IG1pZGRsZXdhcmUgZnVuY3Rpb25zIGZvciBlYWNoIG9uZS4gSXQgYXV0b21hdGljYWxseSBkZXRlcm1pbmVzIHRoZSB0YXJnZXRcbiAqIHByb3RvY29sIGZyb20gdGhlIGhvc3QgVVJMIGFuZCBjcmVhdGVzIG5vbi1jYWNoaW5nIHByb3hpZXMgYnkgZGVmYXVsdC5cbiAqXG4gKiBAcGFyYW0gcHJveHlDb25maWdzIC0gQXJyYXkgb2YgcHJveHkgY29uZmlndXJhdGlvbnNcbiAqIEBwYXJhbSBhcHBIb3N0bmFtZSAtIFRoZSBob3N0bmFtZSB3aGVyZSB0aGUgRXhwcmVzcyBhcHAgaXMgcnVubmluZ1xuICogQHBhcmFtIGFwcFByb3RvY29sIC0gVGhlIHByb3RvY29sIHRvIHVzZSBmb3IgdGhlIGFwcCAoZGVmYXVsdHMgdG8gJ2h0dHBzJylcbiAqIEByZXR1cm5zIEFycmF5IG9mIHByb3h5IHJlc3VsdHMgY29udGFpbmluZyBtaWRkbGV3YXJlIGZ1bmN0aW9ucyBhbmQgcGF0aHNcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgcHJveHlDb25maWdzID0gW1xuICogICB7IGhvc3Q6ICdodHRwczovL2FwaS5leGFtcGxlLmNvbScsIHBhdGg6ICdhcGknIH0sXG4gKiAgIHsgaG9zdDogJ2h0dHA6Ly9pbnRlcm5hbC5zZXJ2aWNlLmNvbScsIHBhdGg6ICdpbnRlcm5hbCcgfVxuICogXTtcbiAqXG4gKiBjb25zdCBwcm94aWVzID0gY29uZmlndXJlUHJveHlpbmcocHJveHlDb25maWdzLCAnbG9jYWxob3N0OjMwMDAnLCAnaHR0cHMnKTtcbiAqXG4gKiBwcm94aWVzLmZvckVhY2goKHsgZm4sIHBhdGggfSkgPT4ge1xuICogICBhcHAudXNlKGAvbW9iaWZ5L3Byb3h5LyR7cGF0aH1gLCBmbik7XG4gKiB9KTtcbiAqIGBgYFxuICovXG5leHBvcnQgY29uc3QgY29uZmlndXJlUHJveHlpbmcgPSAoXG4gIHByb3h5Q29uZmlnczogUHJveHlDb25maWdbXSxcbiAgYXBwSG9zdG5hbWU6IHN0cmluZyxcbiAgYXBwUHJvdG9jb2w6IHN0cmluZyA9ICdodHRwcycsXG4gIGNyZWF0ZVByb3h5Rm4/OiBDcmVhdGVQcm94eU1pZGRsZXdhcmVGbixcbik6IFByb3h5UmVzdWx0W10gPT4ge1xuICBjb25zdCBwcm94aWVzOiBQcm94eVJlc3VsdFtdID0gW107XG4gIHByb3h5Q29uZmlncy5mb3JFYWNoKChjb25maWcpID0+IHtcbiAgICBjb25zdCB0YXJnZXRQcm90b2NvbCA9IGNvbmZpZy5ob3N0LnN0YXJ0c1dpdGgoJ2h0dHBzOi8vJykgPyAnaHR0cHMnIDogJ2h0dHAnO1xuICAgIGNvbnN0IHRhcmdldEhvc3QgPSBjb25maWcuaG9zdC5yZXBsYWNlKGAke3RhcmdldFByb3RvY29sfTovL2AsICcnKTtcbiAgICBjb25zdCBwcm94eSA9IGNvbmZpZ3VyZVByb3h5KFxuICAgICAge1xuICAgICAgICBwcm94eVBhdGg6IGNvbmZpZy5wYXRoLFxuICAgICAgICB0YXJnZXRQcm90b2NvbCxcbiAgICAgICAgdGFyZ2V0SG9zdCxcbiAgICAgICAgYXBwUHJvdG9jb2wsXG4gICAgICAgIGFwcEhvc3RuYW1lLFxuICAgICAgICBjYWNoaW5nOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgICBjcmVhdGVQcm94eUZuLFxuICAgICk7XG4gICAgcHJveGllcy5wdXNoKHByb3h5KTtcbiAgfSk7XG4gIHJldHVybiBwcm94aWVzO1xufTtcbiIsICIvKlxuICogQ29weXJpZ2h0IChjKSAyMDI1LCBTYWxlc2ZvcmNlLCBJbmMuXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTJcbiAqIEZvciBmdWxsIGxpY2Vuc2UgdGV4dCwgc2VlIHRoZSBsaWNlbnNlLnR4dCBmaWxlIGluIHRoZSByZXBvIHJvb3Qgb3IgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKi9cblxuLyoqXG4gKiBAZmlsZW92ZXJ2aWV3IE1SVCAoTWFuYWdlZCBSdW50aW1lKSBNaWRkbGV3YXJlIGZvciBFeHByZXNzLmpzIGFwcGxpY2F0aW9ucy5cbiAqXG4gKiBUaGlzIG1vZHVsZSBwcm92aWRlcyBtaWRkbGV3YXJlIGZ1bmN0aW9ucyBmb3IgaGFuZGxpbmcgcmVxdWVzdHMgaW4gYSBtYW5hZ2VkIHJ1bnRpbWUgZW52aXJvbm1lbnQsXG4gKiBpbmNsdWRpbmcgcmVxdWVzdCBwcm9jZXNzaW5nLCBwcm94eSBjb25maWd1cmF0aW9uLCBzdGF0aWMgYXNzZXQgc2VydmluZywgYW5kIGxvY2FsIGRldmVsb3BtZW50XG4gKiB1dGlsaXRpZXMuIEl0J3MgZGVzaWduZWQgdG8gd29yayB3aXRoIFNhbGVzZm9yY2UgQ29tbWVyY2UgQ2xvdWQncyBtYW5hZ2VkIHJ1bnRpbWUgcGxhdGZvcm0uXG4gKlxuICogQGF1dGhvciBTYWxlc2ZvcmNlIENvbW1lcmNlIENsb3VkXG4gKiBAdmVyc2lvbiAwLjAuMVxuICovXG5cbmltcG9ydCB7SGVhZGVyc30gZnJvbSAnLi4vdXRpbHMvc3NyLXByb3h5aW5nLmpzJztcbmltcG9ydCB7XG4gIGNvbmZpZ3VyZVByb3h5aW5nLFxuICB0eXBlIFByb3h5UmVzdWx0LFxuICB0eXBlIFByb3h5Q29uZmlnLFxuICB0eXBlIENyZWF0ZVByb3h5TWlkZGxld2FyZUZuLFxufSBmcm9tICcuLi91dGlscy9jb25maWd1cmUtcHJveHlpbmcuanMnO1xuaW1wb3J0IGV4cHJlc3MsIHt0eXBlIFJlcXVlc3RIYW5kbGVyLCB0eXBlIFJlcXVlc3QsIHR5cGUgUmVzcG9uc2UsIHR5cGUgTmV4dEZ1bmN0aW9ufSBmcm9tICdleHByZXNzJztcbmltcG9ydCBmcyBmcm9tICdmcyc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCBtaW1lVHlwZXMgZnJvbSAnbWltZS10eXBlcyc7XG5pbXBvcnQgcXMgZnJvbSAncXMnO1xuXG5jb25zdCBNT0JJRllfUEFUSCA9ICcvbW9iaWZ5JztcbmNvbnN0IFBST1hZX1BBVEhfQkFTRSA9IGAke01PQklGWV9QQVRIfS9wcm94eWA7XG5jb25zdCBDQUNISU5HX1BBVEhfQkFTRSA9IGAke01PQklGWV9QQVRIfS9jYWNoaW5nYDtcbmNvbnN0IEJVTkRMRV9QQVRIX0JBU0UgPSBgJHtNT0JJRllfUEFUSH0vYnVuZGxlYDtcbmNvbnN0IHByb3h5QmFzZVBhdGggPSBQUk9YWV9QQVRIX0JBU0U7XG5jb25zdCBidW5kbGVCYXNlUGF0aCA9IEJVTkRMRV9QQVRIX0JBU0U7XG5jb25zdCBYX0hFQURFUlNfVE9fUkVNT1ZFX09SSUdJTiA9IFtcbiAgJ3gtYXBpLWtleScsXG4gICd4LWFwaWdhdGV3YXktZXZlbnQnLFxuICAneC1hcGlnYXRld2F5LWNvbnRleHQnLFxuICAneC1tb2JpZnktYWNjZXNzLWtleScsXG4gICd4LXNmZGMtYWNjZXNzLWNvbnRyb2wnLFxuXTtcbmV4cG9ydCBjb25zdCBYX01PQklGWV9SRVFVRVNUX0NMQVNTID0gJ3gtbW9iaWZ5LXJlcXVlc3QtY2xhc3MnO1xuZXhwb3J0IGNvbnN0IFhfTU9CSUZZX1FVRVJZU1RSSU5HID0gJ3gtbW9iaWZ5LXF1ZXJ5c3RyaW5nJztcbmV4cG9ydCBjb25zdCBYX01PQklGWV9SRVFVRVNUX1BST0NFU1NPUl9MT0NBTCA9ICd4LW1vYmlmeS1ycC1sb2NhbCc7XG5jb25zdCBDT05URU5UX1RZUEUgPSAnY29udGVudC10eXBlJztcbmNvbnN0IE5PX0NBQ0hFID0gJ21heC1hZ2U9MCwgbm9jYWNoZSwgbm9zdG9yZSwgbXVzdC1yZXZhbGlkYXRlJztcblxuLyoqXG4gKiBDaGVja3MgaWYgYSBVUkwgaXMgZm9yIGEgYnVuZGxlIG9yIHByb3h5IHBhdGggdGhhdCBzaG91bGQgYmUgc2tpcHBlZCBieSByZXF1ZXN0IHByb2Nlc3NpbmcuXG4gKlxuICogQHBhcmFtIHVybCAtIFRoZSBVUkwgdG8gY2hlY2tcbiAqIEByZXR1cm5zIFRydWUgaWYgdGhlIFVSTCBzdGFydHMgd2l0aCBhIHByb3h5IG9yIGJ1bmRsZSBiYXNlIHBhdGhcbiAqIEBwcml2YXRlXG4gKi9cbmNvbnN0IF9pc0J1bmRsZU9yUHJveHlQYXRoID0gKHVybDogc3RyaW5nKSA9PiB7XG4gIHJldHVybiB1cmwuc3RhcnRzV2l0aChwcm94eUJhc2VQYXRoKSB8fCB1cmwuc3RhcnRzV2l0aChidW5kbGVCYXNlUGF0aCk7XG59O1xuXG4vKipcbiAqIER5bmFtaWNhbGx5IGltcG9ydHMgYSByZXF1ZXN0IHByb2Nlc3NvciBtb2R1bGUgaWYgaXQgZXhpc3RzLlxuICpcbiAqIEBwYXJhbSByZXF1ZXN0UHJvY2Vzc29yUGF0aCAtIFRoZSBmaWxlIHBhdGggdG8gdGhlIHJlcXVlc3QgcHJvY2Vzc29yIG1vZHVsZVxuICogQHJldHVybnMgVGhlIGRlZmF1bHQgZXhwb3J0IG9mIHRoZSBtb2R1bGUsIG9yIG51bGwgaWYgdGhlIGZpbGUgZG9lc24ndCBleGlzdFxuICogQHByaXZhdGVcbiAqL1xuY29uc3QgX2dldFJlcXVlc3RQcm9jZXNzb3IgPSBhc3luYyAocmVxdWVzdFByb2Nlc3NvclBhdGg6IHN0cmluZyB8IHVuZGVmaW5lZCkgPT4ge1xuICBpZiAocmVxdWVzdFByb2Nlc3NvclBhdGggJiYgZnMuZXhpc3RzU3luYyhyZXF1ZXN0UHJvY2Vzc29yUGF0aCkpIHtcbiAgICBjb25zdCBtb2R1bGUgPSBhd2FpdCBpbXBvcnQocmVxdWVzdFByb2Nlc3NvclBhdGgpO1xuICAgIHJldHVybiBtb2R1bGU7XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59O1xuXG4vKipcbiAqIFJldHJpZXZlcyByZXF1ZXN0IHByb2Nlc3NvciBwYXJhbWV0ZXJzIGZyb20gZW52aXJvbm1lbnQgdmFyaWFibGVzIHdpdGggZGVmYXVsdHMuXG4gKlxuICogVGhpcyBmdW5jdGlvbiByZWFkcyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdG8gZGV0ZXJtaW5lIHRoZSBhcHBsaWNhdGlvbiBob3N0bmFtZSxcbiAqIGRlcGxveW1lbnQgdGFyZ2V0LCBhbmQgZW52aXJvbm1lbnQuIEl0IHByb3ZpZGVzIHNlbnNpYmxlIGRlZmF1bHRzIGZvciBsb2NhbCBkZXZlbG9wbWVudC5cbiAqXG4gKiBAcmV0dXJucyBPYmplY3QgY29udGFpbmluZyBhcHBIb3N0bmFtZSwgZGVwbG95VGFyZ2V0LCBhbmQgZW52aXJvbm1lbnRcbiAqIEBwcml2YXRlXG4gKi9cbmNvbnN0IGdldFJlcXVlc3RQcm9jZXNzb3JQYXJhbWV0ZXJzID0gKCk6IHthcHBIb3N0bmFtZTogc3RyaW5nOyBkZXBsb3lUYXJnZXQ6IHN0cmluZzsgZW52aXJvbm1lbnQ6IHN0cmluZ30gPT4ge1xuICByZXR1cm4ge1xuICAgIGFwcEhvc3RuYW1lOiBwcm9jZXNzLmVudi5FWFRFUk5BTF9ET01BSU5fTkFNRSB8fCAnbG9jYWxob3N0OjI0MDEnLFxuICAgIGRlcGxveVRhcmdldDogcHJvY2Vzcy5lbnYuREVQTE9ZX1RBUkdFVCB8fCAnbG9jYWwtdGFyZ2V0JyxcbiAgICBlbnZpcm9ubWVudDogcHJvY2Vzcy5lbnYuRU5WSVJPTk1FTlQgfHwgJ2RldmVsb3BtZW50JyxcbiAgfTtcbn07XG5cbi8qKlxuICogVXBkYXRlcyB0aGUgcmVxdWVzdCdzIHBhdGggYW5kIHF1ZXJ5c3RyaW5nLCBhbmQgcGFyc2VzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzLlxuICpcbiAqIFRoaXMgZnVuY3Rpb24gdXBkYXRlcyB0aGUgRXhwcmVzcyByZXF1ZXN0IG9iamVjdCdzIG9yaWdpbmFsVXJsIGFuZCBxdWVyeSBwcm9wZXJ0aWVzLlxuICogSXQgaGFuZGxlcyBib3RoIGNhc2VzIHdoZXJlIGEgcXVlcnlzdHJpbmcgaXMgcHJlc2VudCBhbmQgd2hlcmUgaXQncyBub3QuIEZvciBFeHByZXNzIDVcbiAqIGNvbXBhdGliaWxpdHksIGl0IHVzZXMgT2JqZWN0LmRlZmluZVByb3BlcnR5IHRvIHVwZGF0ZSB0aGUgcXVlcnkgb2JqZWN0IHNpbmNlIGRpcmVjdFxuICogbW9kaWZpY2F0aW9uIGlzIG5vIGxvbmdlciBhbGxvd2VkLlxuICpcbiAqIEBwYXJhbSByZXEgLSBFeHByZXNzIHJlcXVlc3Qgb2JqZWN0IHRvIHVwZGF0ZVxuICogQHBhcmFtIHVwZGF0ZWRQYXRoIC0gVGhlIG5ldyBwYXRoIHRvIHNldFxuICogQHBhcmFtIHVwZGF0ZWRRdWVyeXN0cmluZyAtIFRoZSBuZXcgcXVlcnlzdHJpbmcgKG9wdGlvbmFsLCBpZiB1bmRlZmluZWQgdGhlIHF1ZXJ5c3RyaW5nIGlzIHJlbW92ZWQpXG4gKiBAcHJpdmF0ZVxuICovXG5jb25zdCB1cGRhdGVQYXRoQW5kUXVlcnlTdHJpbmcgPSAocmVxOiBSZXF1ZXN0LCB1cGRhdGVkUGF0aDogc3RyaW5nLCB1cGRhdGVkUXVlcnlzdHJpbmc6IHN0cmluZyB8IHVuZGVmaW5lZCkgPT4ge1xuICBsZXQgbmV3UXVlcnkgPSB7fTtcbiAgaWYgKHVwZGF0ZWRRdWVyeXN0cmluZykge1xuICAgIG5ld1F1ZXJ5ID0gcXMucGFyc2UodXBkYXRlZFF1ZXJ5c3RyaW5nKTtcbiAgICByZXEub3JpZ2luYWxVcmwgPSBgJHt1cGRhdGVkUGF0aH0/JHt1cGRhdGVkUXVlcnlzdHJpbmd9YDtcbiAgfSBlbHNlIHtcbiAgICByZXEub3JpZ2luYWxVcmwgPSB1cGRhdGVkUGF0aDtcbiAgfVxuICAvLyBFeHByZXNzIDUgbm8gbG9uZ2VyIGFsbG93cyBkaXJlY3QgbW9kaWZpY2F0aW9uIG9mIHRoZSBxdWVyeSBwcm9wZXJ0eVxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkocmVxLCAncXVlcnknLCB7XG4gICAgdmFsdWU6IHsuLi5uZXdRdWVyeX0sXG4gICAgd3JpdGFibGU6IHRydWUsXG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBjb25maWd1cmFibGU6IHRydWUsXG4gIH0pO1xufTtcblxuLyoqXG4gKiBSZW1vdmVzIGludGVybmFsIE1SVCBoZWFkZXJzIGFuZCBBUEkgR2F0ZXdheSBoZWFkZXJzIGZyb20gdGhlIHJlcXVlc3QuXG4gKlxuICogVGhpcyBmdW5jdGlvbiBjbGVhbnMgdXAgaGVhZGVycyB0aGF0IHNob3VsZCBub3QgYmUgZm9yd2FyZGVkIHRvIGRvd25zdHJlYW0gc2VydmljZXMuXG4gKiBJdCByZW1vdmVzIEFQSSBHYXRld2F5LXNwZWNpZmljIGhlYWRlcnMgYW5kIGludGVybmFsIE1SVCBoZWFkZXJzLiBXaGVuIGNhbGxlZCBmcm9tXG4gKiB0aGUgY2xlYW51cCBtaWRkbGV3YXJlLCBpdCBhbHNvIHJlbW92ZXMgdGhlIFhfTU9CSUZZX1JFUVVFU1RfUFJPQ0VTU09SX0xPQ0FMIGhlYWRlclxuICogdG8gaW5kaWNhdGUgdGhhdCBjbGVhbnVwIGhhcyBiZWVuIHBlcmZvcm1lZC5cbiAqXG4gKiBAcGFyYW0gcmVxIC0gRXhwcmVzcyByZXF1ZXN0IG9iamVjdCB0byBjbGVhbiB1cFxuICogQHBhcmFtIGNsZWFudXBMb2NhbFJlcXVlc3RQcm9jZXNzb3JIZWFkZXIgLSBJZiB0cnVlLCByZW1vdmVzIFhfTU9CSUZZX1JFUVVFU1RfUFJPQ0VTU09SX0xPQ0FMIGhlYWRlclxuICogQHByaXZhdGVcbiAqL1xuY29uc3QgY2xlYW5VcEhlYWRlcnMgPSAocmVxOiBSZXF1ZXN0LCBjbGVhbnVwTG9jYWxSZXF1ZXN0UHJvY2Vzc29ySGVhZGVyOiBib29sZWFuID0gZmFsc2UpID0+IHtcbiAgLy8gSWYgdGhlIGNsZWFudXAgaXMgaGFwcGVuaW5nIGluIHRoZSBsb2NhbCByZXF1ZXN0IHByb2Nlc3NvclxuICAvLyB3ZSBkb24ndCB3YW50IHRvIHJlbW92ZSB0aGUgWF9NT0JJRllfUkVRVUVTVF9QUk9DRVNTT1JfTE9DQUwgaGVhZGVyXG4gIC8vIGJlY2F1c2Ugd2UgbmVlZCB0byBub3Qgb3ZlcndyaXRlIGl0IGluIHRoZSBjbGVhbnVwIG1pZGRsZXdhcmVcbiAgaWYgKGNsZWFudXBMb2NhbFJlcXVlc3RQcm9jZXNzb3JIZWFkZXIpIHtcbiAgICBkZWxldGUgcmVxLmhlYWRlcnNbWF9NT0JJRllfUkVRVUVTVF9QUk9DRVNTT1JfTE9DQUxdO1xuICB9XG4gIFhfSEVBREVSU19UT19SRU1PVkVfT1JJR0lOLmZvckVhY2goKGtleSkgPT4ge1xuICAgIGRlbGV0ZSByZXEuaGVhZGVyc1trZXldO1xuICB9KTtcbn07XG5cbi8qKlxuICogUmV0cmlldmVzIGFuZCBwcm9jZXNzZXMgdGhlIHF1ZXJ5c3RyaW5nIGZyb20gdGhlIHgtbW9iaWZ5LXF1ZXJ5c3RyaW5nIGhlYWRlci5cbiAqXG4gKiBUaGlzIGZ1bmN0aW9uIGNoZWNrcyBmb3IgdGhlIHgtbW9iaWZ5LXF1ZXJ5c3RyaW5nIGhlYWRlciBhbmQgdXNlcyBpdCBhcyB0aGVcbiAqIGRlZmluaXRpdmUgcXVlcnlzdHJpbmcgaWYgcHJlc2VudCBhbmQgbm9uLWVtcHR5LiBUaGlzIGhlYWRlciBpcyB1c2VkIGluIHByb2R1Y3Rpb25cbiAqIGVudmlyb25tZW50cyB0byBvdmVycmlkZSB0aGUgVVJMIHF1ZXJ5c3RyaW5nLCBidXQgaXMgYWxzbyBoYW5kbGVkIGluIGxvY2FsIGRldmVsb3BtZW50XG4gKiB0byBhbGxvdyBmb3IgdGVzdGluZy4gQWZ0ZXIgcHJvY2Vzc2luZywgdGhlIGhlYWRlciBpcyByZW1vdmVkIGZyb20gdGhlIHJlcXVlc3QuXG4gKlxuICogSWYgdGhlIGhlYWRlciBpcyBwcmVzZW50IGJ1dCBlbXB0eSwgb3IgaWYgaXQncyBub3QgcHJlc2VudCBhdCBhbGwsIHRoZSBvcmlnaW5hbFxuICogcXVlcnlzdHJpbmcgaXMgcmV0dXJuZWQgdW5jaGFuZ2VkLlxuICpcbiAqIEBwYXJhbSByZXEgLSBFeHByZXNzIHJlcXVlc3Qgb2JqZWN0IGNvbnRhaW5pbmcgdGhlIGhlYWRlcnNcbiAqIEBwYXJhbSBvcmlnaW5hbFF1ZXJ5c3RyaW5nIC0gVGhlIG9yaWdpbmFsIHF1ZXJ5c3RyaW5nIGZyb20gdGhlIFVSTCAobWF5IGJlIHVuZGVmaW5lZClcbiAqIEByZXR1cm5zIFRoZSBxdWVyeXN0cmluZyB0byB1c2UgKGZyb20gaGVhZGVyIGlmIHByZXNlbnQgYW5kIG5vbi1lbXB0eSwgb3RoZXJ3aXNlIG9yaWdpbmFsKVxuICogQHByaXZhdGVcbiAqL1xuY29uc3QgZ2V0TW9iaWZ5UXVlcnlTdHJpbmcgPSAocmVxOiBSZXF1ZXN0LCBvcmlnaW5hbFF1ZXJ5c3RyaW5nOiBzdHJpbmcgfCB1bmRlZmluZWQpID0+IHtcbiAgLy8gSWYgdGhlcmUncyBhbiB4LXF1ZXJ5c3RyaW5nIGhlYWRlciwgdXNlIHRoYXQgYXMgdGhlIGRlZmluaXRpdmVcbiAgLy8gcXVlcnlzdHJpbmcuIFRoaXMgaGVhZGVyIGlzIHVzZWQgaW4gcHJvZHVjdGlvbiwgbm90IGluIGxvY2FsIGRldixcbiAgLy8gYnV0IHdlIGFsd2F5cyBoYW5kbGUgaXQgaGVyZSB0byBhbGxvdyBmb3IgdGVzdGluZy5cbiAgbGV0IHVwZGF0ZWRRdWVyeXN0cmluZyA9IG9yaWdpbmFsUXVlcnlzdHJpbmc7XG4gIGNvbnN0IHhRdWVyeVN0cmluZyA9IHJlcS5oZWFkZXJzW1hfTU9CSUZZX1FVRVJZU1RSSU5HXTtcbiAgaWYgKHhRdWVyeVN0cmluZyAmJiB4UXVlcnlTdHJpbmcgIT09ICcnKSB7XG4gICAgdXBkYXRlZFF1ZXJ5c3RyaW5nID0geFF1ZXJ5U3RyaW5nIGFzIHN0cmluZztcbiAgfVxuICBkZWxldGUgcmVxLmhlYWRlcnNbWF9NT0JJRllfUVVFUllTVFJJTkddO1xuICByZXR1cm4gdXBkYXRlZFF1ZXJ5c3RyaW5nO1xufTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgbWlkZGxld2FyZSBmdW5jdGlvbiB0aGF0IHByb2Nlc3NlcyBpbmNvbWluZyByZXF1ZXN0cyB1c2luZyBhIGN1c3RvbSByZXF1ZXN0IHByb2Nlc3Nvci5cbiAqXG4gKiBUaGlzIG1pZGRsZXdhcmUgaGFuZGxlczpcbiAqIC0gU2tpcHBpbmcgcHJvY2Vzc2luZyBmb3IgcHJveHkgYW5kIGJ1bmRsZSBwYXRoc1xuICogLSBMb2FkaW5nIGFuZCBleGVjdXRpbmcgY3VzdG9tIHJlcXVlc3QgcHJvY2Vzc29yc1xuICogLSBQcm9jZXNzaW5nIGN1c3RvbSBxdWVyeSBzdHJpbmdzIGZyb20gaGVhZGVyc1xuICogLSBSZW1vdmluZyBBUEkgR2F0ZXdheSBoZWFkZXJzXG4gKiAtIEVuZm9yY2luZyBIVFRQIG1ldGhvZCByZXN0cmljdGlvbnMgZm9yIHJvb3QgcGF0aFxuICogLSBVcGRhdGluZyByZXF1ZXN0IHBhdGhzIGFuZCBxdWVyeSBzdHJpbmdzIHdoZW4gcGF0aHMgY2hhbmdlXG4gKlxuICogQHBhcmFtIHJlcXVlc3RQcm9jZXNzb3JQYXRoIC0gUGF0aCB0byB0aGUgcmVxdWVzdCBwcm9jZXNzb3IgbW9kdWxlIGZpbGVcbiAqIEBwYXJhbSBwcm94eUNvbmZpZ3MgLSBBcnJheSBvZiBwcm94eSBjb25maWd1cmF0aW9uc1xuICogQHJldHVybnMgRXhwcmVzcyBtaWRkbGV3YXJlIGZ1bmN0aW9uXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IG1pZGRsZXdhcmUgPSBjcmVhdGVNUlRSZXF1ZXN0UHJvY2Vzc29yTWlkZGxld2FyZShcbiAqICAgJy9wYXRoL3RvL3Byb2Nlc3Nvci5qcycsXG4gKiAgIFt7IGhvc3Q6ICdodHRwczovL2FwaS5leGFtcGxlLmNvbScsIHBhdGg6ICdhcGknIH1dXG4gKiApO1xuICogYXBwLnVzZShtaWRkbGV3YXJlKTtcbiAqIGBgYFxuICovXG5leHBvcnQgY29uc3QgY3JlYXRlTVJUUmVxdWVzdFByb2Nlc3Nvck1pZGRsZXdhcmUgPSAoXG4gIHJlcXVlc3RQcm9jZXNzb3JQYXRoOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gIHByb3h5Q29uZmlnczogUHJveHlDb25maWdbXSB8IHVuZGVmaW5lZCxcbik6IFJlcXVlc3RIYW5kbGVyID0+IHtcbiAgY29uc3QgcHJvY2Vzc0luY29taW5nUmVxdWVzdCA9IGFzeW5jIChyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpID0+IHtcbiAgICAvLyBJZiB0aGUgcmVxdWVzdCBpcyBmb3IgYSBwcm94eSBvciBidW5kbGUgcGF0aCwgZG8gbm90aGluZ1xuICAgIGlmIChfaXNCdW5kbGVPclByb3h5UGF0aChyZXEub3JpZ2luYWxVcmwpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcmVxdWVzdFByb2Nlc3NvciA9IGF3YWl0IF9nZXRSZXF1ZXN0UHJvY2Vzc29yKHJlcXVlc3RQcm9jZXNzb3JQYXRoKTtcbiAgICBjb25zdCBvcmlnaW5hbFF1ZXJ5c3RyaW5nID0gcmVxLm9yaWdpbmFsVXJsLnNwbGl0KCc/JylbMV07XG5cbiAgICAvLyBJZiB0aGVyZSdzIG5vIHF1ZXJ5c3RyaW5nIHRoZSB2YWx1ZSB3aWxsIGJlIHVuZGVmaW5lZFxuICAgIC8vIGJ1dCBUeXBlU2NyaXB0IHdpbGwgY29tcGxhaW4gaWYgd2UgZG9uJ3QgZXhwbGljaXRseSBzZXQgaXQgdG8gdW5kZWZpbmVkLlxuICAgIGxldCB1cGRhdGVkUXVlcnlzdHJpbmcgPSBvcmlnaW5hbFF1ZXJ5c3RyaW5nIHx8IHVuZGVmaW5lZDtcbiAgICBsZXQgdXBkYXRlZFBhdGggPSByZXEub3JpZ2luYWxVcmwuc3BsaXQoJz8nKVswXTtcblxuICAgIHVwZGF0ZWRRdWVyeXN0cmluZyA9IGdldE1vYmlmeVF1ZXJ5U3RyaW5nKHJlcSwgdXBkYXRlZFF1ZXJ5c3RyaW5nKTtcbiAgICBpZiAocmVxdWVzdFByb2Nlc3Nvcikge1xuICAgICAgLy8gQWxsb3cgdGhlIHByb2Nlc3NvciB0byBoYW5kbGUgdGhpcyByZXF1ZXN0LiBCZWNhdXNlIHRoaXMgY29kZVxuICAgICAgLy8gcnVucyBvbmx5IGluIHRoZSBsb2NhbCBkZXZlbG9wbWVudCBzZXJ2ZXIsIHdlIGludGVudGlvbmFsbHkgZG9cbiAgICAgIC8vIG5vdCBzd2FsbG93IGVycm9ycyAtIHdlIHdhbnQgdGhlbSB0byBoYXBwZW4gYW5kIHNob3cgdXAgb24gdGhlXG4gICAgICAvLyBjb25zb2xlIGJlY2F1c2UgdGhhdCdzIGhvdyBkZXZlbG9wZXJzIGNhbiB0ZXN0IHRoZSBwcm9jZXNzb3IuXG4gICAgICBjb25zdCBoZWFkZXJzID0gbmV3IEhlYWRlcnMocmVxLmhlYWRlcnMsICdodHRwJyk7XG5cbiAgICAgIGNvbnN0IHthcHBIb3N0bmFtZSwgZGVwbG95VGFyZ2V0LCBlbnZpcm9ubWVudH0gPSBnZXRSZXF1ZXN0UHJvY2Vzc29yUGFyYW1ldGVycygpO1xuXG4gICAgICBjb25zdCBwcm9jZXNzZWQgPSByZXF1ZXN0UHJvY2Vzc29yLnByb2Nlc3NSZXF1ZXN0KHtcbiAgICAgICAgaGVhZGVycyxcbiAgICAgICAgcGF0aDogcmVxLnBhdGgsXG4gICAgICAgIHF1ZXJ5c3RyaW5nOiB1cGRhdGVkUXVlcnlzdHJpbmcsXG5cbiAgICAgICAgZ2V0UmVxdWVzdENsYXNzOiAoKSA9PiBoZWFkZXJzLmdldEhlYWRlcihYX01PQklGWV9SRVFVRVNUX0NMQVNTKSxcbiAgICAgICAgc2V0UmVxdWVzdENsYXNzOiAodmFsdWU6IHN0cmluZykgPT4gaGVhZGVycy5zZXRIZWFkZXIoWF9NT0JJRllfUkVRVUVTVF9DTEFTUywgdmFsdWUpLFxuXG4gICAgICAgIC8vIFRoaXMgbWF0Y2hlcyB0aGUgc2V0IG9mIHBhcmFtZXRlcnMgcGFzc2VkIGluIHRoZVxuICAgICAgICAvLyBMYW1iZGFARWRnZSBjb250ZXh0LlxuICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgZGVwbG95VGFyZ2V0LFxuICAgICAgICAgIGFwcEhvc3RuYW1lLFxuICAgICAgICAgIHByb3h5Q29uZmlnczogcHJveHlDb25maWdzIHx8IFtdLFxuICAgICAgICAgIGVudmlyb25tZW50LFxuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICAgIC8vIEFpZCBkZWJ1Z2dpbmcgYnkgY2hlY2tpbmcgdGhlIHJldHVybiB2YWx1ZVxuICAgICAgY29uc29sZS5hc3NlcnQoXG4gICAgICAgIHByb2Nlc3NlZCAmJiAncGF0aCcgaW4gcHJvY2Vzc2VkICYmICdxdWVyeXN0cmluZycgaW4gcHJvY2Vzc2VkLFxuICAgICAgICAnRXhwZWN0ZWQgcHJvY2Vzc1JlcXVlc3QgdG8gcmV0dXJuIGFuIG9iamVjdCB3aXRoICcgK1xuICAgICAgICAgICdcInBhdGhcIiBhbmQgXCJxdWVyeXN0cmluZ1wiIHByb3BlcnRpZXMsICcgK1xuICAgICAgICAgIGBidXQgZ290ICR7SlNPTi5zdHJpbmdpZnkocHJvY2Vzc2VkLCBudWxsLCAyKX1gLFxuICAgICAgKTtcblxuICAgICAgLy8gVXBkYXRlIHRoZSByZXF1ZXN0LlxuICAgICAgdXBkYXRlZFF1ZXJ5c3RyaW5nID0gcHJvY2Vzc2VkLnF1ZXJ5c3RyaW5nO1xuICAgICAgdXBkYXRlZFBhdGggPSBwcm9jZXNzZWQucGF0aDtcblxuICAgICAgaWYgKGhlYWRlcnMubW9kaWZpZWQpIHtcbiAgICAgICAgcmVxLmhlYWRlcnMgPSBoZWFkZXJzLnRvT2JqZWN0KCkgYXMgUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgc3RyaW5nW10+O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFVwZGF0ZSB0aGUgcmVxdWVzdC5cbiAgICBpZiAodXBkYXRlZFF1ZXJ5c3RyaW5nICE9PSBvcmlnaW5hbFF1ZXJ5c3RyaW5nKSB7XG4gICAgICB1cGRhdGVQYXRoQW5kUXVlcnlTdHJpbmcocmVxLCB1cGRhdGVkUGF0aCwgdXBkYXRlZFF1ZXJ5c3RyaW5nKTtcbiAgICB9XG5cbiAgICAvLyBHZXQgdGhlIHJlcXVlc3QgY2xhc3MgYW5kIHN0b3JlIGl0IGZvciBnZW5lcmFsIHVzZS4gV2VcbiAgICAvLyBtdXN0IGRvIHRoaXMgQUZURVIgdGhlIHJlcXVlc3QtcHJvY2Vzc29yLCBiZWNhdXNlIHRoYXQnc1xuICAgIC8vIHdoYXQgbWF5IHNldCB0aGUgcmVxdWVzdCBjbGFzcy5cbiAgICByZXMubG9jYWxzLnJlcXVlc3RDbGFzcyA9IHJlcS5oZWFkZXJzW1hfTU9CSUZZX1JFUVVFU1RfQ0xBU1NdO1xuICAgIHJlcS5oZWFkZXJzW1hfTU9CSUZZX1JFUVVFU1RfUFJPQ0VTU09SX0xPQ0FMXSA9ICd0cnVlJzsgLy8gTWFyayB0aGUgcmVxdWVzdCBhcyBwcm9jZXNzZWQgYnkgdGhlIHJlcXVlc3QgcHJvY2Vzc29yXG4gIH07XG5cbiAgY29uc3Qgc3NyUmVxdWVzdFByb2Nlc3Nvck1pZGRsZXdhcmUgPSAocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlLCBuZXh0OiBOZXh0RnVuY3Rpb24pID0+IHtcbiAgICAvLyBJZiB0aGUgcGF0aCBpcyAvLCB3ZSBlbmZvcmNlIHRoYXQgdGhlIG9ubHkgbWV0aG9kc1xuICAgIC8vIGFsbG93ZWQgYXJlIEdFVCwgSEVBRCBvciBPUFRJT05TLiBUaGlzIGlzIGEgcmVzdHJpY3Rpb25cbiAgICAvLyBpbXBvc2VkIGJ5IEFQSSBHYXRld2F5OiB3ZSBlbmZvcmNlIGl0IGhlcmUgc28gdGhhdCB0aGVcbiAgICAvLyBsb2NhbCBkZXYgc2VydmVyIGhhcyB0aGUgc2FtZSBiZWhhdmlvdXIuXG4gICAgaWYgKHJlcS5wYXRoID09PSAnLycgJiYgIVsnR0VUJywgJ0hFQUQnLCAnT1BUSU9OUyddLmluY2x1ZGVzKHJlcS5tZXRob2QpKSB7XG4gICAgICByZXMuc2VuZFN0YXR1cyg0MDUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIEFwcGx5IGN1c3RvbSBxdWVyeSBwYXJhbWV0ZXIgcGFyc2luZyBhbmQgZm9yd2FyZCBlcnJvcnMgdmlhIG5leHQoKVxuICAgIHByb2Nlc3NJbmNvbWluZ1JlcXVlc3QocmVxLCByZXMpXG4gICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgIC8vIFN0cmlwIG91dCBBUEkgR2F0ZXdheSBoZWFkZXJzIGZyb20gdGhlIGluY29taW5nIHJlcXVlc3QuIFdlXG4gICAgICAgIC8vIGRvIHRoYXQgbm93IHNvIHRoYXQgdGhlIHJlc3Qgb2YgdGhlIGNvZGUgZG9uJ3QgaGF2ZSB0byBkZWFsXG4gICAgICAgIC8vIHdpdGggdGhlc2UgaGVhZGVycywgd2hpY2ggY2FuIGJlIGxhcmdlIGFuZCBtYXkgYmUgYWNjaWRlbnRhbGx5XG4gICAgICAgIC8vIGZvcndhcmRlZCB0byBvdGhlciBzZXJ2ZXJzLlxuICAgICAgICBjbGVhblVwSGVhZGVycyhyZXEsIGZhbHNlKTtcblxuICAgICAgICAvLyBIYW5kIG9mZiB0byB0aGUgbmV4dCBtaWRkbGV3YXJlXG4gICAgICAgIG5leHQoKTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICBuZXh0KGVycik7XG4gICAgICB9KTtcbiAgfTtcblxuICByZXR1cm4gc3NyUmVxdWVzdFByb2Nlc3Nvck1pZGRsZXdhcmU7XG59O1xuXG4vKipcbiAqIENyZWF0ZXMgcHJveHkgbWlkZGxld2FyZSBmdW5jdGlvbnMgZm9yIHRoZSBzcGVjaWZpZWQgcHJveHkgY29uZmlndXJhdGlvbnMuXG4gKlxuICogVGhpcyBmdW5jdGlvbiBjcmVhdGVzIEV4cHJlc3MgbWlkZGxld2FyZSBmdW5jdGlvbnMgdGhhdCBoYW5kbGUgcHJveHlpbmcgcmVxdWVzdHNcbiAqIHRvIGV4dGVybmFsIHNlcnZpY2VzLiBJdCBjYW4gb3B0aW9uYWxseSBjcmVhdGUgYm90aCByZWd1bGFyIHByb3h5IGFuZCBjYWNoaW5nXG4gKiBwcm94eSBtaWRkbGV3YXJlcyBmb3IgZWFjaCBjb25maWd1cmF0aW9uLiBUaGUgYXBwIGhvc3RuYW1lIGlzIGF1dG9tYXRpY2FsbHlcbiAqIHJldHJpZXZlZCBmcm9tIGVudmlyb25tZW50IHZhcmlhYmxlcyAoRVhURVJOQUxfRE9NQUlOX05BTUUgb3IgZGVmYXVsdHMgdG8gJ2xvY2FsaG9zdDoyNDAxJykuXG4gKlxuICogQHBhcmFtIHByb3h5Q29uZmlncyAtIEFycmF5IG9mIHByb3h5IGNvbmZpZ3VyYXRpb25zXG4gKiBAcGFyYW0gYXBwUHJvdG9jb2wgLSBUaGUgcHJvdG9jb2wgdG8gdXNlIGZvciB0aGUgYXBwIChkZWZhdWx0cyB0byAnaHR0cCcpXG4gKiBAcGFyYW0gaW5jbHVkZUNhY2hpbmcgLSBXaGV0aGVyIHRvIGluY2x1ZGUgY2FjaGluZyBwcm94eSBtaWRkbGV3YXJlcyAoZGVmYXVsdHMgdG8gZmFsc2UpXG4gKiBAcmV0dXJucyBBcnJheSBvZiBwcm94eSBtaWRkbGV3YXJlIHJlc3VsdHMgd2l0aCB0aGVpciBwYXRoc1xuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBwcm94eU1pZGRsZXdhcmVzID0gY3JlYXRlTVJUUHJveHlNaWRkbGV3YXJlcyhcbiAqICAgW3sgaG9zdDogJ2h0dHBzOi8vYXBpLmV4YW1wbGUuY29tJywgcGF0aDogJ2FwaScgfV0sXG4gKiAgICdodHRwcycsXG4gKiAgIHRydWUgLy8gSW5jbHVkZSBjYWNoaW5nIG1pZGRsZXdhcmVzXG4gKiApO1xuICpcbiAqIHByb3h5TWlkZGxld2FyZXMuZm9yRWFjaCgoeyBmbiwgcGF0aCB9KSA9PiB7XG4gKiAgIGFwcC51c2UocGF0aCwgZm4pO1xuICogfSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNvbnN0IGNyZWF0ZU1SVFByb3h5TWlkZGxld2FyZXMgPSAoXG4gIHByb3h5Q29uZmlnczogUHJveHlDb25maWdbXSxcbiAgYXBwUHJvdG9jb2w6IHN0cmluZyA9ICdodHRwJyxcbiAgaW5jbHVkZUNhY2hpbmc6IGJvb2xlYW4gPSBmYWxzZSxcbiAgY3JlYXRlUHJveHlGbj86IENyZWF0ZVByb3h5TWlkZGxld2FyZUZuLFxuKTogUHJveHlSZXN1bHRbXSA9PiB7XG4gIGlmICghcHJveHlDb25maWdzKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG4gIGNvbnN0IHthcHBIb3N0bmFtZX0gPSBnZXRSZXF1ZXN0UHJvY2Vzc29yUGFyYW1ldGVycygpO1xuICBjb25zdCBwcm94aWVzOiBQcm94eVJlc3VsdFtdID0gY29uZmlndXJlUHJveHlpbmcocHJveHlDb25maWdzLCBhcHBIb3N0bmFtZSwgYXBwUHJvdG9jb2wsIGNyZWF0ZVByb3h5Rm4pO1xuICBjb25zdCBtaWRkbGV3YXJlczogUHJveHlSZXN1bHRbXSA9IFtdO1xuICBwcm94aWVzLmZvckVhY2goKHByb3h5KSA9PiB7XG4gICAgY29uc3QgcHJveHlQYXRoID0gYCR7UFJPWFlfUEFUSF9CQVNFfS8ke3Byb3h5LnBhdGh9YDtcbiAgICBjb25zdCBjYWNoaW5nUHJveHlQYXRoID0gYCR7Q0FDSElOR19QQVRIX0JBU0V9LyR7cHJveHkucGF0aH1gO1xuICAgIG1pZGRsZXdhcmVzLnB1c2goe2ZuOiBwcm94eS5mbiwgcGF0aDogcHJveHlQYXRofSk7XG4gICAgaWYgKGluY2x1ZGVDYWNoaW5nKSB7XG4gICAgICBtaWRkbGV3YXJlcy5wdXNoKHtmbjogcHJveHkuZm4sIHBhdGg6IGNhY2hpbmdQcm94eVBhdGh9KTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gbWlkZGxld2FyZXM7XG59O1xuXG4vKipcbiAqIFNldHMgYXBwcm9wcmlhdGUgSFRUUCBoZWFkZXJzIGZvciBsb2NhbCBhc3NldCBmaWxlcy5cbiAqXG4gKiBUaGlzIGZ1bmN0aW9uIHNldHMgY29udGVudC10eXBlLCBjYWNoaW5nLCBhbmQgb3RoZXIgaGVhZGVycyBmb3Igc3RhdGljIGFzc2V0c1xuICogc2VydmVkIGZyb20gdGhlIGxvY2FsIGZpbGVzeXN0ZW0uIEl0IHVzZXMgdGhlIGZpbGUncyBtb2RpZmljYXRpb24gdGltZSBmb3JcbiAqIEVUYWcgYW5kIExhc3QtTW9kaWZpZWQgaGVhZGVycywgYW5kIHNldHMgbm8tY2FjaGUgZGlyZWN0aXZlcyBmb3IgbG9jYWwgYXNzZXRzLlxuICpcbiAqIEBwYXJhbSByZXMgLSBFeHByZXNzIHJlc3BvbnNlIG9iamVjdFxuICogQHBhcmFtIGFzc2V0UGF0aCAtIFBhdGggdG8gdGhlIGFzc2V0IGZpbGVcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogYXBwLnVzZSgnL3N0YXRpYycsIGV4cHJlc3Muc3RhdGljKCdwdWJsaWMnLCB7XG4gKiAgIHNldEhlYWRlcnM6IHNldExvY2FsQXNzZXRIZWFkZXJzXG4gKiB9KSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNvbnN0IHNldExvY2FsQXNzZXRIZWFkZXJzID0gKHJlczogUmVzcG9uc2UsIGFzc2V0UGF0aDogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IGJhc2UgPSBwYXRoLmJhc2VuYW1lKGFzc2V0UGF0aCk7XG4gIGNvbnN0IGNvbnRlbnRUeXBlID0gbWltZVR5cGVzLmxvb2t1cChiYXNlKSB8fCAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJztcblxuICByZXMuc2V0KENPTlRFTlRfVFlQRSwgY29udGVudFR5cGUpO1xuXG4gIC8vIFN0YXQgdGhlIGZpbGUgYW5kIHJldHVybiB0aGUgbGFzdC1tb2RpZmllZCBEYXRlXG4gIC8vIGluIFJGQzExMjMgZm9ybWF0LiBBbHNvIHVzZSB0aGF0IHZhbHVlIGFzIHRoZSBFVGFnXG4gIC8vIGFuZCBMYXN0LU1vZGlmaWVkXG4gIGNvbnN0IG10aW1lID0gZnMuc3RhdFN5bmMoYXNzZXRQYXRoKS5tdGltZTtcbiAgY29uc3QgbXRpbWVSRkMxMTIzID0gbXRpbWUudG9VVENTdHJpbmcoKTtcbiAgcmVzLnNldCgnZGF0ZScsIG10aW1lUkZDMTEyMyk7XG4gIHJlcy5zZXQoJ2xhc3QtbW9kaWZpZWQnLCBtdGltZVJGQzExMjMpO1xuICByZXMuc2V0KCdldGFnJywgbXRpbWUuZ2V0VGltZSgpLnRvU3RyaW5nKCkpO1xuXG4gIC8vIFdlIGRvbid0IGNhY2hlIGxvY2FsIGJ1bmRsZSBhc3NldHNcbiAgcmVzLnNldCgnY2FjaGUtY29udHJvbCcsIE5PX0NBQ0hFKTtcbn07XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBFeHByZXNzIHN0YXRpYyBtaWRkbGV3YXJlIGNvbmZpZ3VyZWQgZm9yIE1SVCBhc3NldCBzZXJ2aW5nLlxuICpcbiAqIFRoaXMgZnVuY3Rpb24gY3JlYXRlcyBhIHN0YXRpYyBmaWxlIHNlcnZpbmcgbWlkZGxld2FyZSB3aXRoIE1SVC1zcGVjaWZpY1xuICogY29uZmlndXJhdGlvbnMgaW5jbHVkaW5nIGN1c3RvbSBoZWFkZXIgc2V0dGluZyBhbmQgc2VjdXJpdHkgb3B0aW9ucy5cbiAqXG4gKiBAcGFyYW0gc3RhdGljQXNzZXREaXIgLSBEaXJlY3RvcnkgcGF0aCBjb250YWluaW5nIHN0YXRpYyBhc3NldHNcbiAqIEByZXR1cm5zIEV4cHJlc3Mgc3RhdGljIG1pZGRsZXdhcmUgZnVuY3Rpb25cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3Qgc3RhdGljTWlkZGxld2FyZSA9IGNyZWF0ZU1SVFN0YXRpY0Fzc2V0U2VydmluZ01pZGRsZXdhcmUoJy9wYXRoL3RvL2Fzc2V0cycpO1xuICogYXBwLnVzZSgnL3N0YXRpYycsIHN0YXRpY01pZGRsZXdhcmUpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBjb25zdCBjcmVhdGVNUlRTdGF0aWNBc3NldFNlcnZpbmdNaWRkbGV3YXJlID0gKHN0YXRpY0Fzc2V0RGlyOiBzdHJpbmcpOiBSZXF1ZXN0SGFuZGxlciA9PiB7XG4gIHJldHVybiBleHByZXNzLnN0YXRpYyhzdGF0aWNBc3NldERpciwge1xuICAgIGRvdGZpbGVzOiAnZGVueScsXG4gICAgc2V0SGVhZGVyczogc2V0TG9jYWxBc3NldEhlYWRlcnMsXG4gICAgZmFsbHRocm91Z2g6IGZhbHNlLFxuICB9KTtcbn07XG5cbi8qKlxuICogQ3JlYXRlcyBhIGNvbW1vbiBtaWRkbGV3YXJlIGZ1bmN0aW9uIHRoYXQgc2V0cyB0aGUgaG9zdCBoZWFkZXIgYmFzZWQgb24gZW52aXJvbm1lbnQgdmFyaWFibGVzLlxuICpcbiAqIFRoZSBob3N0IGhlYWRlciBpcyBzZXQgdG8gRVhURVJOQUxfRE9NQUlOX05BTUUgaWYgYXZhaWxhYmxlLCBvdGhlcndpc2UgZGVmYXVsdHMgdG8gJ2xvY2FsaG9zdDoyNDAxJy5cbiAqIFVzZSB0aGlzIG1pZGRsZXdhcmUgaW4gYWxsIGVudmlyb25tZW50cyAobG9jYWwgYW5kIGRlcGxveWVkKSwgYXQgdGhlIHRvcCBvZiB5b3VyIG1pZGRsZXdhcmUgc3RhY2suXG4gKlxuICogQHJldHVybnMgRXhwcmVzcyBtaWRkbGV3YXJlIGZ1bmN0aW9uXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IG1pZGRsZXdhcmUgPSBjcmVhdGVNUlRDb21tb25NaWRkbGV3YXJlKCk7XG4gKiBhcHAudXNlKG1pZGRsZXdhcmUpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBjb25zdCBjcmVhdGVNUlRDb21tb25NaWRkbGV3YXJlID0gKCk6IFJlcXVlc3RIYW5kbGVyID0+IHtcbiAgcmV0dXJuIChyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UsIG5leHQ6IE5leHRGdW5jdGlvbikgPT4ge1xuICAgIHJlcS5oZWFkZXJzLmhvc3QgPSBwcm9jZXNzLmVudi5FWFRFUk5BTF9ET01BSU5fTkFNRSB8fCAnbG9jYWxob3N0OjI0MDEnO1xuICAgIG5leHQoKTtcbiAgfTtcbn07XG5cbi8qKlxuICogQ3JlYXRlcyBhIGNsZWFudXAgbWlkZGxld2FyZSBmdW5jdGlvbiB0aGF0IHJlbW92ZXMgaW50ZXJuYWwgaGVhZGVycyBhbmQgY2xlYW5zIHVwIHJlcXVlc3Qgc3RhdGUuXG4gKlxuICogVGhpcyBtaWRkbGV3YXJlIHBlcmZvcm1zIGNsZWFudXAgb3BlcmF0aW9ucyBvbiByZXF1ZXN0czpcbiAqIC0gUmVtb3ZlcyBpbnRlcm5hbCBNUlQgaGVhZGVycyAoWF9NT0JJRllfUkVRVUVTVF9QUk9DRVNTT1JfTE9DQUwsIFhfTU9CSUZZX1FVRVJZU1RSSU5HKVxuICogLSBSZW1vdmVzIEFQSSBHYXRld2F5IGhlYWRlcnMgdGhhdCBzaG91bGRuJ3QgYmUgZm9yd2FyZGVkXG4gKiAtIE9wdGlvbmFsbHkgdXBkYXRlcyB0aGUgcGF0aCBhbmQgcXVlcnlzdHJpbmcgaWYgdGhlIHJlcXVlc3Qgd2Fzbid0IHByb2Nlc3NlZCBieSB0aGUgcmVxdWVzdCBwcm9jZXNzb3JcbiAqXG4gKiBVc2UgdGhpcyBtaWRkbGV3YXJlIGluIGFsbCBlbnZpcm9ubWVudHMgKGxvY2FsIGFuZCBkZXBsb3llZCksIGF0IHRoZSBlbmQgb2YgdGhlIG1pZGRsZXdhcmUgY2hhaW4sXG4gKiB0byBlbnN1cmUgYWxsIGludGVybmFsIGhlYWRlcnMgYXJlIHJlbW92ZWQgYmVmb3JlIHRoZSByZXF1ZXN0IGlzIGhhbmRsZWQgYnkgdGhlIGFwcGxpY2F0aW9uLlxuICpcbiAqIEByZXR1cm5zIEV4cHJlc3MgbWlkZGxld2FyZSBmdW5jdGlvblxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBjbGVhbnVwTWlkZGxld2FyZSA9IGNyZWF0ZU1SVENsZWFuVXBNaWRkbGV3YXJlKCk7XG4gKiBhcHAudXNlKGNsZWFudXBNaWRkbGV3YXJlKTtcbiAqIGBgYFxuICovXG5leHBvcnQgY29uc3QgY3JlYXRlTVJUQ2xlYW5VcE1pZGRsZXdhcmUgPSAoKTogUmVxdWVzdEhhbmRsZXIgPT4ge1xuICByZXR1cm4gKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSwgbmV4dDogTmV4dEZ1bmN0aW9uKSA9PiB7XG4gICAgaWYgKCFyZXEuaGVhZGVyc1tYX01PQklGWV9SRVFVRVNUX1BST0NFU1NPUl9MT0NBTF0pIHtcbiAgICAgIGNvbnN0IG9yaWdpbmFsUXVlcnlzdHJpbmcgPSByZXEub3JpZ2luYWxVcmwuc3BsaXQoJz8nKVsxXSB8fCB1bmRlZmluZWQ7XG4gICAgICBjb25zdCB1cGRhdGVkUXVlcnlzdHJpbmcgPSBnZXRNb2JpZnlRdWVyeVN0cmluZyhyZXEsIG9yaWdpbmFsUXVlcnlzdHJpbmcpO1xuICAgICAgY29uc3QgdXBkYXRlZFBhdGggPSByZXEub3JpZ2luYWxVcmwuc3BsaXQoJz8nKVswXTtcbiAgICAgIHVwZGF0ZVBhdGhBbmRRdWVyeVN0cmluZyhyZXEsIHVwZGF0ZWRQYXRoLCB1cGRhdGVkUXVlcnlzdHJpbmcpO1xuICAgIH1cbiAgICBjbGVhblVwSGVhZGVycyhyZXEsIHRydWUpO1xuICAgIG5leHQoKTtcbiAgfTtcbn07XG4iLCAiLypcbiAqIENvcHlyaWdodCAoYykgMjAyNSwgU2FsZXNmb3JjZSwgSW5jLlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yXG4gKiBGb3IgZnVsbCBsaWNlbnNlIHRleHQsIHNlZSB0aGUgbGljZW5zZS50eHQgZmlsZSBpbiB0aGUgcmVwbyByb290IG9yIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICovXG5cbmltcG9ydCB7Q2xvdWRXYXRjaENsaWVudCwgUHV0TWV0cmljRGF0YUNvbW1hbmQsIHR5cGUgU3RhbmRhcmRVbml0LCB0eXBlIE1ldHJpY0RhdHVtfSBmcm9tICdAYXdzLXNkay9jbGllbnQtY2xvdWR3YXRjaCc7XG5pbXBvcnQge2lzTG9jYWx9IGZyb20gJy4uL3V0aWxzL3V0aWxzLmpzJztcblxuY29uc3QgaXNSZW1vdGUgPSAoKTogYm9vbGVhbiA9PiAhaXNMb2NhbCgpO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9OQU1FU1BBQ0UgPSAnc3NyJztcblxuZXhwb3J0IGNvbnN0IGdldERpbWVuc2lvbnMgPSAoKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9PiB7XG4gIHJldHVybiB7XG4gICAgUHJvamVjdDogcHJvY2Vzcy5lbnYuTU9CSUZZX1BST1BFUlRZX0lEIHx8ICdVTktOT1dOJyxcbiAgICBUYXJnZXQ6IHByb2Nlc3MuZW52LkRFUExPWV9UQVJHRVQgfHwgJ1VOS05PV04nLFxuICB9O1xufTtcblxuLyoqXG4gKiBJbnB1dCBtZXRyaWMgZm9yIHNlbmRpbmcgdG8gQ2xvdWRXYXRjaC5cbiAqXG4gKiBAcHJvcGVydHkgbmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBtZXRyaWMgKHJlcXVpcmVkKVxuICogQHByb3BlcnR5IHZhbHVlIC0gVGhlIG51bWVyaWMgdmFsdWUgb2YgdGhlIG1ldHJpYyAob3B0aW9uYWwsIGRlZmF1bHRzIHRvIDApXG4gKiBAcHJvcGVydHkgdGltZXN0YW1wIC0gVGhlIHRpbWVzdGFtcCBmb3IgdGhlIG1ldHJpYyAob3B0aW9uYWwsIGRlZmF1bHRzIHRvIGN1cnJlbnQgdGltZSlcbiAqIEBwcm9wZXJ0eSB1bml0IC0gVGhlIHVuaXQgZm9yIHRoZSBtZXRyaWMgKG9wdGlvbmFsLCBkZWZhdWx0cyB0byAnQ291bnQnKVxuICogQHByb3BlcnR5IGRpbWVuc2lvbnMgLSBLZXktdmFsdWUgcGFpcnMgZm9yIG1ldHJpYyBkaW1lbnNpb25zIChvcHRpb25hbClcbiAqL1xuaW50ZXJmYWNlIElucHV0TWV0cmljIHtcbiAgbmFtZTogc3RyaW5nO1xuICB2YWx1ZT86IG51bWJlcjtcbiAgdGltZXN0YW1wPzogRGF0ZTtcbiAgdW5pdD86IHN0cmluZztcbiAgZGltZW5zaW9ucz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG59XG5cbi8qKlxuICogQSBjbGFzcyB0aGF0IGhhbmRsZXMgYXN5bmNocm9ub3VzIHNlbmRpbmcgb2YgQ2xvdWRXYXRjaCBtZXRyaWNzLlxuICpcbiAqIFRoaXMgY2xhc3MgdXNlcyBhIHNpbmdsZXRvbiBwYXR0ZXJuLiBVc2UgTWV0cmljc1NlbmRlci5nZXRTZW5kZXIoKVxuICogdG8gZ2V0IHRoZSBzaW5nbGV0b24gaW5zdGFuY2UuIE1ldHJpY3MgY2FuIGJlIHF1ZXVlZCBhbmQgc2VudCBpblxuICogYmF0Y2hlcywgb3Igc2VudCBpbW1lZGlhdGVseS4gVGhlIGNsYXNzIGF1dG9tYXRpY2FsbHkgYmF0Y2hlcyBtZXRyaWNzXG4gKiBpbnRvIGdyb3VwcyBvZiAyMCAoQ2xvdWRXYXRjaCdzIGxpbWl0IHBlciByZXF1ZXN0KS5cbiAqXG4gKiBJbiBsb2NhbCBkZXZlbG9wbWVudCBlbnZpcm9ubWVudHMsIG1ldHJpY3MgYXJlIHF1ZXVlZCBidXQgbm90IHNlbnRcbiAqIHVubGVzcyB0aGUgU0VORF9DV19NRVRSSUNTIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIHNldC5cbiAqL1xuZXhwb3J0IGNsYXNzIE1ldHJpY3NTZW5kZXIge1xuICBwcml2YXRlIF9DVzogQ2xvdWRXYXRjaENsaWVudCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9xdWV1ZTogTWV0cmljRGF0dW1bXSA9IFtdO1xuICBzdGF0aWMgX292ZXJyaWRlOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgc3RhdGljIF9pbnN0YW5jZTogTWV0cmljc1NlbmRlciB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBAaW50ZXJuYWwgVGVzdCBob29rOiBpbmplY3QgYSBDbG91ZFdhdGNoIGNsaWVudCBmb3IgdW5pdCB0ZXN0cyAqL1xuICBzdGF0aWMgX3Rlc3RDbGllbnQ6IENsb3VkV2F0Y2hDbGllbnQgfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKCkge1xuICAgIC8vIENsb3VkV2F0Y2ggY2xpZW50IHVzZWQgdG8gc2VuZCBtZXRyaWNzLiBGb3IgYSBsb2NhbCBkZXYgc2VydmVyLFxuICAgIC8vIHRoaXMgd2lsbCByZW1haW4gZmFsc3ksIHNpbmNlIGEgbG9jYWwgZGV2IHNlcnZlciBkb2Vzbid0IGFjdHVhbGx5XG4gICAgLy8gc2VuZCBtZXRyaWNzICh1bmxlc3MgU0VORF9DV19NRVRSSUNTIGlzIGRlZmluZWQgZm9yIHRlc3RpbmcpLlxuICAgIHRoaXMuX0NXID0gbnVsbDtcblxuICAgIC8vIEEgcXVldWUgb2YgbWV0cmljcyB3YWl0aW5nIHRvIGJlIHNlbnQuIEVhY2ggaXMgYSBzaW5nbGVcbiAgICAvLyBuYW1lL3ZhbHVlIG1ldHJpYywgYW5kIHRoZXkgYWNjdW11bGF0ZSBvbiB0aGlzIHF1ZXVlXG4gICAgLy8gdW50aWwgYmF0Y2hlZCB1cCBpbnRvIGEgcHV0TWV0cmljRGF0YSBjYWxsLlxuICAgIHRoaXMuX3F1ZXVlID0gW107XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBudW1iZXIgb2YgbWV0cmljcyB3YWl0aW5nIHRvIGJlIHNlbnRcbiAgICogQHJldHVybnMge251bWJlcn1cbiAgICovXG4gIGdldCBxdWV1ZUxlbmd0aCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9xdWV1ZS5sZW5ndGg7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgQ2xvdWRXYXRjaCBBV1MgU0RLIGNsaWVudCwgb3IgcmV0dXJuIGEgZmFsc3kgdmFsdWVcbiAgICogaWYgdGhpcyBNZXRyaWNzU2VuZGVyIGlzIG5vdCBhY3R1YWxseSBzZW5kaW5nIG1ldHJpY3MuXG4gICAqXG4gICAqIFRoZSBjbGllbnQgaXMgb25seSBjcmVhdGVkIHdoZW4gcnVubmluZyBpbiBhIHJlbW90ZSBlbnZpcm9ubWVudFxuICAgKiAoQVdTIExhbWJkYSkgb3Igd2hlbiBTRU5EX0NXX01FVFJJQ1MgZW52aXJvbm1lbnQgdmFyaWFibGUgaXMgc2V0LlxuICAgKiBUaGUgY2xpZW50IGlzIGNvbmZpZ3VyZWQgd2l0aCBtYXhBdHRlbXB0czogMSB0byBwcmV2ZW50IHJldHJpZXNcbiAgICogYW5kIHJlZHVjZSBsYXRlbmN5IHVuZGVyIGhpZ2ggbG9hZC5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHJldHVybnMge0Nsb3VkV2F0Y2hDbGllbnR8bnVsbH0gVGhlIENsb3VkV2F0Y2ggY2xpZW50LCBvciBudWxsIGlmIG5vdCBzZW5kaW5nIG1ldHJpY3NcbiAgICovXG4gIHByaXZhdGUgX3NldHVwKCk6IENsb3VkV2F0Y2hDbGllbnQgfCBudWxsIHtcbiAgICBpZiAoTWV0cmljc1NlbmRlci5fdGVzdENsaWVudCkge1xuICAgICAgdGhpcy5fQ1cgPSBNZXRyaWNzU2VuZGVyLl90ZXN0Q2xpZW50O1xuICAgICAgcmV0dXJuIHRoaXMuX0NXO1xuICAgIH1cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIGlmICghdGhpcy5fQ1cgJiYgKGlzUmVtb3RlKCkgfHwgTWV0cmljc1NlbmRlci5fb3ZlcnJpZGUpKSB7XG4gICAgICAvLyBUaGUgQVdTX1JFR0lPTiB2YXJpYWJsZSBpcyBkZWZpbmVkIGJ5IHRoZSBMYW1iZGFcbiAgICAgIC8vIGVudmlyb25tZW50LlxuICAgICAgLy8gU2V0dGluZyBtYXhBdHRlbXB0cyB0byAxIHdpbGwgcHJldmVudCB0aGUgU0RLIGZyb20gcmV0cnlpbmcuXG4gICAgICAvLyBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIHVuZGVyIGhpZ2ggbG9hZCwgdGhlcmUgd2lsbCBiZSBiYWNrcHJlc3N1cmVcbiAgICAgIC8vIG9uIHRoZSBMYW1iZGEgZnVuY3Rpb24sIGFuZCBjYXVzaW5nIHNldmVyZSBwZXJmb3JtYW5jZSBpc3N1ZXMgKDQwMC01MDBtcyBsYXRlbmN5KVxuICAgICAgdGhpcy5fQ1cgPSBuZXcgQ2xvdWRXYXRjaENsaWVudCh7XG4gICAgICAgIHJlZ2lvbjogcHJvY2Vzcy5lbnYuQVdTX1JFR0lPTiB8fCAndXMtZWFzdC0xJyxcbiAgICAgICAgbWF4QXR0ZW1wdHM6IDEsXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX0NXO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnQgSW5wdXRNZXRyaWMgdG8gTWV0cmljRGF0dW0gZm9ybWF0XG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSBtZXRyaWMgLSBJbnB1dCBtZXRyaWMgdG8gY29udmVydFxuICAgKiBAcGFyYW0gZGVmYXVsdFRpbWVzdGFtcCAtIERlZmF1bHQgdGltZXN0YW1wIHRvIHVzZSBpZiBub3QgcHJvdmlkZWRcbiAgICogQHJldHVybnMgQ29udmVydGVkIG1ldHJpYyBkYXR1bVxuICAgKi9cbiAgcHJpdmF0ZSBfY29udmVydFRvTWV0cmljRGF0dW0obWV0cmljOiBJbnB1dE1ldHJpYywgZGVmYXVsdFRpbWVzdGFtcDogRGF0ZSk6IE1ldHJpY0RhdHVtIHtcbiAgICBjb25zdCBtZXRyaWNEYXRhOiBNZXRyaWNEYXR1bSA9IHtcbiAgICAgIE1ldHJpY05hbWU6IG1ldHJpYy5uYW1lLFxuICAgICAgVmFsdWU6IG1ldHJpYy52YWx1ZSB8fCAwLFxuICAgICAgVGltZXN0YW1wOiBtZXRyaWMudGltZXN0YW1wIGluc3RhbmNlb2YgRGF0ZSA/IG1ldHJpYy50aW1lc3RhbXAgOiBkZWZhdWx0VGltZXN0YW1wLFxuICAgICAgVW5pdDogKG1ldHJpYy51bml0IHx8ICdDb3VudCcpIGFzIFN0YW5kYXJkVW5pdCxcbiAgICB9O1xuXG4gICAgaWYgKG1ldHJpYy5kaW1lbnNpb25zKSB7XG4gICAgICBjb25zdCBkaW1lbnNpb25zOiBBcnJheTx7TmFtZTogc3RyaW5nOyBWYWx1ZTogc3RyaW5nfT4gPSBbXTtcbiAgICAgIE9iamVjdC5lbnRyaWVzKG1ldHJpYy5kaW1lbnNpb25zKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgZGltZW5zaW9ucy5wdXNoKHtcbiAgICAgICAgICAgIE5hbWU6IGtleSxcbiAgICAgICAgICAgIFZhbHVlOiB2YWx1ZSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBpZiAoZGltZW5zaW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgIG1ldHJpY0RhdGEuRGltZW5zaW9ucyA9IGRpbWVuc2lvbnM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG1ldHJpY0RhdGE7XG4gIH1cblxuICAvKipcbiAgICogU2VuZCBtZXRyaWNzIHRvIENsb3VkV2F0Y2ggdXNpbmcgcHV0TWV0cmljRGF0YS5cbiAgICpcbiAgICogRXJyb3JzIGFyZSBjYXVnaHQgYW5kIGxvZ2dlZCBidXQgbm90IHJlLXRocm93bi4gSWYgdGhlIGNsaWVudFxuICAgKiBpcyBudWxsIChsb2NhbCBlbnZpcm9ubWVudCB3aXRob3V0IFNFTkRfQ1dfTUVUUklDUyksIHRoaXMgbWV0aG9kXG4gICAqIHJldHVybnMgaW1tZWRpYXRlbHkgd2l0aG91dCBzZW5kaW5nLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0gY3cgLSBDbG91ZFdhdGNoIGNsaWVudCAobWF5IGJlIG51bGwpXG4gICAqIEBwYXJhbSBtZXRyaWNzIC0gQXJyYXkgb2YgTWV0cmljRGF0dW0gdG8gc2VuZFxuICAgKiBAcmV0dXJucyBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgc2VuZCBvcGVyYXRpb24gY29tcGxldGVzIChvciBpbW1lZGlhdGVseSBpZiBjbGllbnQgaXMgbnVsbClcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgX3B1dE1ldHJpY0RhdGEoY3c6IENsb3VkV2F0Y2hDbGllbnQgfCBudWxsLCBtZXRyaWNzOiBNZXRyaWNEYXR1bVtdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICBpZiAoIWN3KSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNvbW1hbmQgPSBuZXcgUHV0TWV0cmljRGF0YUNvbW1hbmQoe1xuICAgICAgICBNZXRyaWNEYXRhOiBtZXRyaWNzLFxuICAgICAgICBOYW1lc3BhY2U6IERFRkFVTFRfTkFNRVNQQUNFLFxuICAgICAgfSk7XG4gICAgICBhd2FpdCBjdy5zZW5kKGNvbW1hbmQpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgY29uc29sZS53YXJuKGBNZXRyaWNzOiBlcnJvciBzZW5kaW5nIGRhdGE6ICR7ZXJyfWApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBCYXRjaCBhbmQgc2VuZCBtZXRyaWNzLiBIYW5kbGVzIGJhdGNoaW5nIGludG8gZ3JvdXBzIG9mIDIwIChDbG91ZFdhdGNoIGxpbWl0KVxuICAgKiBhbmQgc2VuZHMgdGhlbSBhc3luY2hyb25vdXNseSAoZmlyZSBhbmQgZm9yZ2V0KS4gRXJyb3JzIGFyZSBsb2dnZWQgYnV0IG5vdCByYWlzZWQuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSBtZXRyaWNzIC0gQXJyYXkgb2YgbWV0cmljcyB0byBzZW5kXG4gICAqL1xuICBwcml2YXRlIF9zZW5kQmF0Y2hlZE1ldHJpY3MobWV0cmljczogTWV0cmljRGF0dW1bXSk6IHZvaWQge1xuICAgIGlmIChtZXRyaWNzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGN3ID0gdGhpcy5fc2V0dXAoKTtcbiAgICBjb25zdCBwcm9taXNlczogUHJvbWlzZTx2b2lkPltdID0gW107XG4gICAgY29uc3QgYmF0Y2hTaXplID0gMjA7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1ldHJpY3MubGVuZ3RoOyBpICs9IGJhdGNoU2l6ZSkge1xuICAgICAgY29uc3QgYmF0Y2ggPSBtZXRyaWNzLnNsaWNlKGksIGkgKyBiYXRjaFNpemUpO1xuICAgICAgcHJvbWlzZXMucHVzaCh0aGlzLl9wdXRNZXRyaWNEYXRhKGN3LCBiYXRjaCkpO1xuICAgIH1cblxuICAgIC8vIFdhaXQgZm9yIGFsbCBwcm9taXNlcyB0byBjb21wbGV0ZSwgbG9nIGFueSBlcnJvcnMgYnV0IGRvbid0IHJhaXNlIHRoZW1cbiAgICBQcm9taXNlLmFsbChwcm9taXNlcykuY2F0Y2goXG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgKGVycikgPT4ge1xuICAgICAgICBjb25zb2xlLndhcm4oYE1ldHJpY3M6IGVycm9yIGR1cmluZyBiYXRjaCBzZW5kOiAke2Vycn1gKTtcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZW5kIGFueSBxdWV1ZWQgbWV0cmljcy4gUmV0dXJucyBhIFByb21pc2UgdGhhdCByZXNvbHZlcyBpbW1lZGlhdGVseVxuICAgKiBhZnRlciBzdGFydGluZyB0aGUgc2VuZCBvcGVyYXRpb25zIChmaXJlIGFuZCBmb3JnZXQpLiBFcnJvcnMgYXJlIGxvZ2dlZFxuICAgKiBidXQgbm90IHJhaXNlZC4gVGhlIHF1ZXVlIGlzIGNsZWFyZWQgYmVmb3JlIHNlbmRpbmcgYmVnaW5zLlxuICAgKlxuICAgKiBAcmV0dXJucyBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgaW1tZWRpYXRlbHkgYWZ0ZXIgc3RhcnRpbmcgc2VuZCBvcGVyYXRpb25zXG4gICAqL1xuICBmbHVzaCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBtZXRyaWNzVG9TZW5kID0gWy4uLnRoaXMuX3F1ZXVlXTtcbiAgICB0aGlzLl9xdWV1ZSA9IFtdO1xuICAgIHRoaXMuX3NlbmRCYXRjaGVkTWV0cmljcyhtZXRyaWNzVG9TZW5kKTtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIG9uZSBvciBtb3JlIGN1c3RvbSBtZXRyaWMgdmFsdWVzIHRvIHRoZSBxdWV1ZSBvZiB0aG9zZSB3YWl0aW5nXG4gICAqIHRvIGJlIHNlbnQsIG9yIHNlbmQgdGhlbSBpbW1lZGlhdGVseS4gVGhpcyBmdW5jdGlvbiBzdXBwb3J0cyBzaW1wbGVcbiAgICogbmFtZS1hbmQtdmFsdWUgbWV0cmljcy4gSXQgZG9lc24ndCBzdXBwb3J0IG1vcmUgY29tcGxleCBDbG91ZFdhdGNoIHR5cGVzLlxuICAgKlxuICAgKiBBIG1ldHJpYyBpcyBhbiBvYmplY3Qgd2l0aCBhdCBsZWFzdCAnbmFtZScgKHN0cmluZykgYW5kIG9wdGlvbmFsbHkgJ3ZhbHVlJ1xuICAgKiAobnVtYmVyLCBkZWZhdWx0cyB0byAwKS4gSXQgbWF5IGFsc28gb3B0aW9uYWxseSBpbmNsdWRlICd0aW1lc3RhbXAnXG4gICAqIChkZWZhdWx0cyB0byB0aGUgdGltZSBvZiB0aGUgY2FsbCB0byBzZW5kKCkpLCBhbmQgJ3VuaXQnLCB3aGljaFxuICAgKiBtdXN0IGJlIG9uZSBvZiBTZWNvbmRzLCBNaWNyb3NlY29uZHMsIE1pbGxpc2Vjb25kcywgQnl0ZXMsIEtpbG9ieXRlcyxcbiAgICogTWVnYWJ5dGVzLCBHaWdhYnl0ZXMsIFRlcmFieXRlcywgQml0cywgS2lsb2JpdHMsIE1lZ2FiaXRzLCBHaWdhYml0cyxcbiAgICogVGVyYWJpdHMsIFBlcmNlbnQsIENvdW50LCBCeXRlcy9TZWNvbmQsIEtpbG9ieXRlcy9TZWNvbmQsXG4gICAqIE1lZ2FieXRlcy9TZWNvbmQsIEdpZ2FieXRlcy9TZWNvbmQsIFRlcmFieXRlcy9TZWNvbmQsXG4gICAqIEJpdHMvU2Vjb25kLCBLaWxvYml0cy9TZWNvbmQsIE1lZ2FiaXRzL1NlY29uZCwgR2lnYWJpdHMvU2Vjb25kLFxuICAgKiBUZXJhYml0cy9TZWNvbmQsIENvdW50L1NlY29uZCBvciBOb25lIChkZWZhdWx0cyB0byAnQ291bnQnKS5cbiAgICogVGhlcmUgbWF5IGFsc28gYmUgYSAnZGltZW5zaW9ucydcbiAgICogb2JqZWN0LCB3aGljaCBoYXMgZGltZW5zaW9uIG5hbWVzIGFzIGtleXMgYW5kIGRpbWVuc2lvblxuICAgKiB2YWx1ZXMgYXMgdmFsdWVzLiBFbXB0eSBvciBmYWxzeSBkaW1lbnNpb24gdmFsdWVzIGFyZSBmaWx0ZXJlZCBvdXQuXG4gICAqXG4gICAqIEluIGEgbG9jYWwgZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnQsIG1ldHJpY3MgYXJlIHF1ZXVlZCBidXQgbm90IHNlbnRcbiAgICogdW5sZXNzIHRoZSBTRU5EX0NXX01FVFJJQ1MgZW52aXJvbm1lbnQgdmFyaWFibGUgaXMgc2V0LiBUaGlzIGFsbG93c1xuICAgKiBmb3IgdGVzdGluZyBtZXRyaWMgc2VuZGluZyBiZWhhdmlvciBsb2NhbGx5LlxuICAgKlxuICAgKiBUaGUgbWV0cmljcyBhcmUgYWRkZWQgdG8gYW4gaW50ZXJuYWwgcXVldWUgc28gdGhhdCB0aGV5IGNhbiBiZVxuICAgKiBiYXRjaGVkIHVwIHRvIHNlbmQgbW9yZSBlZmZpY2llbnRseS4gVGhleSBhcmUgb25seSBzZW50IHdoZW5cbiAgICogZmx1c2goKSBpcyBjYWxsZWQsIHVubGVzcyBpbW1lZGlhdGUgaXMgdHJ1ZS5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIG1ldHJpY3MgLSBBcnJheSBvZiBJbnB1dE1ldHJpYyBvYmplY3RzIHRvIHNlbmRcbiAgICogQHBhcmFtIGltbWVkaWF0ZSAtIElmIHRydWUsIHNlbmQgbWV0cmljcyBpbW1lZGlhdGVseSBpbnN0ZWFkIG9mIHF1ZXVpbmcgKGRlZmF1bHQ6IGZhbHNlKVxuICAgKi9cbiAgc2VuZChtZXRyaWNzOiBJbnB1dE1ldHJpY1tdLCBpbW1lZGlhdGU6IGJvb2xlYW4gPSBmYWxzZSk6IHZvaWQge1xuICAgIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XG4gICAgY29uc3QgbWV0cmljRGF0YUFycmF5OiBNZXRyaWNEYXR1bVtdID0gbWV0cmljcy5tYXAoKG1ldHJpYykgPT4gdGhpcy5fY29udmVydFRvTWV0cmljRGF0dW0obWV0cmljLCBub3cpKTtcblxuICAgIGlmIChpbW1lZGlhdGUpIHtcbiAgICAgIC8vIFNlbmQgaW1tZWRpYXRlbHkgd2l0aG91dCB3YWl0aW5nIChmaXJlIGFuZCBmb3JnZXQpXG4gICAgICB0aGlzLl9zZW5kQmF0Y2hlZE1ldHJpY3MobWV0cmljRGF0YUFycmF5KTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gQWRkIHRvIHF1ZXVlXG4gICAgICB0aGlzLl9xdWV1ZS5wdXNoKC4uLm1ldHJpY0RhdGFBcnJheSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgc2luZ2xldG9uIE1ldHJpY3NTZW5kZXIgaW5zdGFuY2UuXG4gICAqXG4gICAqIENyZWF0ZXMgYSBuZXcgaW5zdGFuY2UgaWYgb25lIGRvZXNuJ3QgZXhpc3QsIG90aGVyd2lzZSByZXR1cm5zXG4gICAqIHRoZSBleGlzdGluZyBpbnN0YW5jZS5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIHNpbmdsZXRvbiBNZXRyaWNzU2VuZGVyIGluc3RhbmNlXG4gICAqL1xuICBzdGF0aWMgZ2V0U2VuZGVyKCk6IE1ldHJpY3NTZW5kZXIge1xuICAgIGlmICghTWV0cmljc1NlbmRlci5faW5zdGFuY2UpIHtcbiAgICAgIE1ldHJpY3NTZW5kZXIuX2luc3RhbmNlID0gbmV3IE1ldHJpY3NTZW5kZXIoKTtcbiAgICB9XG4gICAgcmV0dXJuIE1ldHJpY3NTZW5kZXIuX2luc3RhbmNlO1xuICB9XG59XG5cbi8vIEFsbG93IHRoZSBwcmVzZW5jZSBvZiBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZSB0b1xuLy8gZW5hYmxlIHNlbmRpbmcgb2YgQ2xvdWRXYXRjaCBtZXRyaWNzIChmb3IgbG9jYWxcbi8vIGludGVncmF0aW9uIHRlc3RpbmcpXG5NZXRyaWNzU2VuZGVyLl9vdmVycmlkZSA9ICEhcHJvY2Vzcy5lbnYuU0VORF9DV19NRVRSSUNTO1xuIiwgIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjUsIFNhbGVzZm9yY2UsIEluYy5cbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMlxuICogRm9yIGZ1bGwgbGljZW5zZSB0ZXh0LCBzZWUgdGhlIGxpY2Vuc2UudHh0IGZpbGUgaW4gdGhlIHJlcG8gcm9vdCBvciBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqL1xuXG5pbXBvcnQge1NlcnZlclJlc3BvbnNlfSBmcm9tICdodHRwJztcbmltcG9ydCB7cGlwZWxpbmV9IGZyb20gJ25vZGU6c3RyZWFtL3Byb21pc2VzJztcbmltcG9ydCB6bGliLCB7XG4gIHR5cGUgQnJvdGxpQ29tcHJlc3MsXG4gIHR5cGUgR3ppcCxcbiAgdHlwZSBEZWZsYXRlLFxuICB0eXBlIFpzdGRDb21wcmVzcyxcbiAgdHlwZSBabGliT3B0aW9ucyxcbiAgdHlwZSBCcm90bGlPcHRpb25zLFxuICB0eXBlIFpzdGRPcHRpb25zLFxufSBmcm9tICdub2RlOnpsaWInO1xuaW1wb3J0IE5lZ290aWF0b3IgZnJvbSAnbmVnb3RpYXRvcic7XG5pbXBvcnQgY29tcHJlc3NpYmxlIGZyb20gJ2NvbXByZXNzaWJsZSc7XG5pbXBvcnQgdHlwZSB7QVBJR2F0ZXdheVByb3h5RXZlbnQsIENvbnRleHR9IGZyb20gJ2F3cy1sYW1iZGEnO1xuaW1wb3J0IHR5cGUge0V4cHJlc3MsIFJlcXVlc3QsIFJlc3BvbnNlfSBmcm9tICdleHByZXNzJztcbmltcG9ydCB0eXBlIHtXcml0YWJsZX0gZnJvbSAnc3RyZWFtJztcbmltcG9ydCB7U2VydmVybGVzc1JlcXVlc3R9IGZyb20gJ0BoNGFkL3NlcnZlcmxlc3MtYWRhcHRlcic7XG5cbi8qKlxuICogSGVhZGVyIGtleXMgdG8gY29weSBmcm9tIHRoZSByZXF1ZXN0IHRvIHRoZSByZXNwb25zZS5cbiAqIFRoZXNlIGhlYWRlcnMgYXJlIHR5cGljYWxseSB1c2VkIGZvciB0cmFjaW5nLCBjb3JyZWxhdGlvbiwgb3Igb3RoZXIgcmVxdWVzdC9yZXNwb25zZSBtYXRjaGluZyBwdXJwb3Nlcy5cbiAqL1xuY29uc3QgUkVRVUVTVF9IRUFERVJTX1RPX0NPUFkgPSBbJ3gtY29ycmVsYXRpb24taWQnXSBhcyBjb25zdDtcblxuLy8gQ2hlY2sgaWYgenN0ZCBjb21wcmVzc2lvbiBpcyBhdmFpbGFibGUgKE5vZGUuanMgdjIyLjE1LjArKVxubGV0IGNyZWF0ZVpzdGRDb21wcmVzczogKChvcHRpb25zPzogWnN0ZE9wdGlvbnMpID0+IFpzdGRDb21wcmVzcykgfCB1bmRlZmluZWQ7XG50cnkge1xuICAvLyBUcnkgdG8gaW1wb3J0IGNyZWF0ZVpzdGRDb21wcmVzcyAtIGl0IG1heSBub3QgZXhpc3QgaW4gb2xkZXIgTm9kZS5qcyB2ZXJzaW9uc1xuICBpZiAodHlwZW9mIHpsaWIuY3JlYXRlWnN0ZENvbXByZXNzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgY3JlYXRlWnN0ZENvbXByZXNzID0gemxpYi5jcmVhdGVac3RkQ29tcHJlc3M7XG4gIH1cbn0gY2F0Y2gge1xuICAvLyB6c3RkIG5vdCBhdmFpbGFibGVcbn1cblxuLy8gRGVjbGFyZSBnbG9iYWwgYXdzbGFtYmRhIHR5cGUgZm9yIEFXUyBMYW1iZGEgcnVudGltZVxuZGVjbGFyZSBjb25zdCBhd3NsYW1iZGE6IHtcbiAgSHR0cFJlc3BvbnNlU3RyZWFtOiB7XG4gICAgZnJvbShcbiAgICAgIHN0cmVhbTogV3JpdGFibGUsXG4gICAgICBtZXRhZGF0YToge1xuICAgICAgICBzdGF0dXNDb2RlOiBudW1iZXI7XG4gICAgICAgIGhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkPjtcbiAgICAgIH0sXG4gICAgKTogV3JpdGFibGU7XG4gIH07XG59O1xuXG5pbnRlcmZhY2UgRXhwcmVzc1JlcXVlc3QgZXh0ZW5kcyBSZXF1ZXN0IHtcbiAgYXBpR2F0ZXdheT86IHtcbiAgICBldmVudDogQVBJR2F0ZXdheVByb3h5RXZlbnQ7XG4gICAgY29udGV4dDogQ29udGV4dDtcbiAgfTtcbn1cblxuaW50ZXJmYWNlIEV4cHJlc3NSZXNwb25zZSBleHRlbmRzIFJlc3BvbnNlIHtcbiAgZmx1c2hhYmxlPzogYm9vbGVhbjtcbn1cblxuaW50ZXJmYWNlIFN0cmVhbU1ldGFkYXRhIHtcbiAgc3RhdHVzQ29kZTogbnVtYmVyO1xuICBoZWFkZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBzdHJpbmdbXSB8IHVuZGVmaW5lZD47XG4gIG11bHRpVmFsdWVIZWFkZXJzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nW10gfCB1bmRlZmluZWQ+O1xuICBjb29raWVzPzogc3RyaW5nW107XG59XG5cbnR5cGUgQ29tcHJlc3Npb25TdHJlYW0gPSBCcm90bGlDb21wcmVzcyB8IEd6aXAgfCBEZWZsYXRlIHwgWnN0ZENvbXByZXNzO1xuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgcmVzcG9uc2UgY29tcHJlc3Npb24uXG4gKlxuICogQHByb3BlcnR5IGVuYWJsZWQgLSBXaGV0aGVyIGNvbXByZXNzaW9uIGlzIGVuYWJsZWQuIFNldCB0byBmYWxzZSB0byBkaXNhYmxlIGNvbXByZXNzaW9uIGVudGlyZWx5LlxuICogICAgICAgICAgICAgICAgICAgICBEZWZhdWx0cyB0byB0cnVlIChjb21wcmVzc2lvbiBlbmFibGVkKS5cbiAqIEBwcm9wZXJ0eSBlbmNvZGluZyAtIFRoZSBjb21wcmVzc2lvbiBlbmNvZGluZyB0byB1c2UgKCdicicsICd6c3RkJywgJ2d6aXAnLCAnZGVmbGF0ZScpLlxuICogICAgICAgICAgICAgICAgICAgICAgSWYgbm90IHNwZWNpZmllZCwgdGhlIGJlc3QgZW5jb2Rpbmcgd2lsbCBiZSBuZWdvdGlhdGVkIGJhc2VkIG9uIEFjY2VwdC1FbmNvZGluZyBoZWFkZXIuXG4gKiBAcHJvcGVydHkgb3B0aW9ucyAgLSBDb21wcmVzc2lvbiBsaWJyYXJ5IG9wdGlvbnMuIFRoaXMgY2FuIGluY2x1ZGUgYW55IG9mIHRoZSBvcHRpb25zIGFjY2VwdGVkIGJ5XG4gKiAgICAgICAgICAgICAgICAgICAgICB6bGliLCBCcm90bGksIG9yIFpzdGQsIGFzIGRlZmluZWQgaW4gdGhlIHpsaWIgbGlicmFyeSwgYW5kIHdpbGwgYmUgcGFzc2VkXG4gKiAgICAgICAgICAgICAgICAgICAgICBkaXJlY3RseSB0byB0aGUgY29ycmVzcG9uZGluZyBjb21wcmVzc2lvbiBsaWJyYXJ5LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbXByZXNzaW9uQ29uZmlnIHtcbiAgZW5hYmxlZDogYm9vbGVhbjtcbiAgZW5jb2Rpbmc/OiAnYnInIHwgJ3pzdGQnIHwgJ2d6aXAnIHwgJ2RlZmxhdGUnO1xuICBvcHRpb25zPzogWmxpYk9wdGlvbnMgfCBCcm90bGlPcHRpb25zIHwgWnN0ZE9wdGlvbnM7XG59XG5cbnR5cGUgQXN5bmNIYW5kbGVyRnVuY3Rpb24gPSAoZXZlbnQ6IEFQSUdhdGV3YXlQcm94eUV2ZW50LCBjb250ZXh0OiBDb250ZXh0KSA9PiBQcm9taXNlPHZvaWQ+O1xuXG4vKipcbiAqIENyZWF0ZXMgYSBMYW1iZGEgQWRhcHRlciB0aGF0IHdyYXBzIGFuIEV4cHJlc3MgYXBwIGFuZCBzdXBwb3J0cyByZXNwb25zZSBzdHJlYW1pbmdcbiAqIGZvciBBUEkgR2F0ZXdheSB2MSBwcm94eSBpbnRlZ3JhdGlvbiB1c2luZyBBV1MgTGFtYmRhIHJlc3BvbnNlIHN0cmVhbWluZ1xuICpcbiAqIEBwYXJhbSBhcHAgLSBFeHByZXNzIGFwcGxpY2F0aW9uIGluc3RhbmNlXG4gKiBAcGFyYW0gcmVzcG9uc2VTdHJlYW0gLSBBV1MgTGFtYmRhIHJlc3BvbnNlIHN0cmVhbVxuICogQHBhcmFtIGNvbXByZXNzaW9uQ29uZmlnIC0gT3B0aW9uYWwgY29tcHJlc3Npb24gY29uZmlndXJhdGlvblxuICogQHJldHVybnMgTGFtYmRhIGhhbmRsZXIgZnVuY3Rpb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVN0cmVhbWluZ0xhbWJkYUFkYXB0ZXIoXG4gIGFwcDogRXhwcmVzcyxcbiAgcmVzcG9uc2VTdHJlYW06IFdyaXRhYmxlLFxuICBjb21wcmVzc2lvbkNvbmZpZzogQ29tcHJlc3Npb25Db25maWcgPSB7ZW5hYmxlZDogdHJ1ZX0sXG4pOiBBc3luY0hhbmRsZXJGdW5jdGlvbiB7XG4gIGNvbnN0IGhhbmRsZXIgPSBhc3luYyAoZXZlbnQ6IEFQSUdhdGV3YXlQcm94eUV2ZW50LCBjb250ZXh0OiBDb250ZXh0KTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHN0cmVhbVJlc3BvbnNlKGV2ZW50LCByZXNwb25zZVN0cmVhbSwgY29udGV4dCwgYXBwLCBjb21wcmVzc2lvbkNvbmZpZyk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGluIHN0cmVhbWluZyBoYW5kbGVyOicsIGVycm9yKTtcbiAgICAgIGNvbnN0IGlzU3RyZWFtT3BlbiA9XG4gICAgICAgIHJlc3BvbnNlU3RyZWFtICYmIHJlc3BvbnNlU3RyZWFtLndyaXRhYmxlICYmICFyZXNwb25zZVN0cmVhbS5kZXN0cm95ZWQgJiYgIXJlc3BvbnNlU3RyZWFtLndyaXRhYmxlRW5kZWQ7XG5cbiAgICAgIGlmIChpc1N0cmVhbU9wZW4gJiYgdHlwZW9mIHJlc3BvbnNlU3RyZWFtLndyaXRlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogU3RyaW5nKGVycm9yKTtcbiAgICAgICAgcmVzcG9uc2VTdHJlYW0ud3JpdGUoYEludGVybmFsIFNlcnZlciBFcnJvcjogJHtlcnJvck1lc3NhZ2V9YCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdbZXJyb3IgaGFuZGxlcl0gQ2Fubm90IHdyaXRlIGVycm9yIC0gc3RyZWFtIGlzIGNsb3NlZCcpO1xuICAgICAgfVxuICAgIH0gZmluYWxseSB7XG4gICAgICBjb25zdCBpc1N0cmVhbU9wZW4gPVxuICAgICAgICByZXNwb25zZVN0cmVhbSAmJiByZXNwb25zZVN0cmVhbS53cml0YWJsZSAmJiAhcmVzcG9uc2VTdHJlYW0uZGVzdHJveWVkICYmICFyZXNwb25zZVN0cmVhbS53cml0YWJsZUVuZGVkO1xuICAgICAgaWYgKGlzU3RyZWFtT3BlbiAmJiB0eXBlb2YgcmVzcG9uc2VTdHJlYW0uZW5kID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJlc3BvbnNlU3RyZWFtLmVuZCgpO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICByZXR1cm4gaGFuZGxlcjtcbn1cblxuLyoqXG4gKiBTdHJlYW1zIHRoZSByZXNwb25zZSBmcm9tIEV4cHJlc3MgYXBwIHVzaW5nIEFXUyBMYW1iZGEgSHR0cFJlc3BvbnNlU3RyZWFtXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHN0cmVhbVJlc3BvbnNlKFxuICBldmVudDogQVBJR2F0ZXdheVByb3h5RXZlbnQsXG4gIHJlc3BvbnNlU3RyZWFtOiBXcml0YWJsZSxcbiAgY29udGV4dDogQ29udGV4dCxcbiAgYXBwOiBFeHByZXNzLFxuICBjb21wcmVzc2lvbkNvbmZpZz86IENvbXByZXNzaW9uQ29uZmlnLFxuKTogUHJvbWlzZTx2b2lkPiB7XG4gIC8vIENvbnZlcnQgQVBJIEdhdGV3YXkgZXZlbnQgdG8gRXhwcmVzcy1jb21wYXRpYmxlIHJlcXVlc3RcbiAgY29uc3QgZXhwcmVzc1JlcXVlc3QgPSBjcmVhdGVFeHByZXNzUmVxdWVzdChldmVudCwgY29udGV4dCk7XG5cbiAgY29uc3QgZXhwcmVzc1Jlc3BvbnNlID0gY3JlYXRlRXhwcmVzc1Jlc3BvbnNlKHJlc3BvbnNlU3RyZWFtLCBldmVudCwgY29udGV4dCwgZXhwcmVzc1JlcXVlc3QsIGNvbXByZXNzaW9uQ29uZmlnKTtcblxuICAvLyBQcm9jZXNzIHRoZSByZXF1ZXN0IHRocm91Z2ggRXhwcmVzcyBhcHBcbiAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBsZXQgcmVzb2x2ZWQgPSBmYWxzZTtcbiAgICBjb25zdCByZXNvbHZlT25jZSA9ICgpID0+IHtcbiAgICAgIGlmICghcmVzb2x2ZWQpIHtcbiAgICAgICAgcmVzb2x2ZWQgPSB0cnVlO1xuICAgICAgICByZXNvbHZlKCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IHJlamVjdE9uY2UgPSAoZXJyOiBFcnJvcikgPT4ge1xuICAgICAgaWYgKCFyZXNvbHZlZCkge1xuICAgICAgICByZXNvbHZlZCA9IHRydWU7XG4gICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICAvLyBTZWUgZXZlbnRzIGRlZmluZWQgZm9yIGhodHAuc2VydmVyUmVzcG9uc2UgaW50ZXJmYWNlIGhlcmU6XG4gICAgLy8gaHR0cHM6Ly9ub2RlanMub3JnL2RvY3MvbGF0ZXN0LXYyNC54L2FwaS9odHRwLmh0bWwjY2xhc3MtaHR0cHNlcnZlcnJlc3BvbnNlXG5cbiAgICAvLyBIYW5kbGUgcmVzcG9uc2UgZmluaXNoXG4gICAgZXhwcmVzc1Jlc3BvbnNlLm9uY2UoJ2ZpbmlzaCcsIHJlc29sdmVPbmNlKTtcbiAgICAvLyBoYW5kbGUgcmVzcG9uc2UgY2xvc2UsIGVpdGhlciBhZnRlciBhICdmaW5pc2gnIG9yIGlmIHVuZGVybHlpbmdcbiAgICAvLyBjb25uZWN0aW9uIGlzIGNsb3NlZCBlYXJseVxuICAgIGV4cHJlc3NSZXNwb25zZS5vbmNlKCdjbG9zZScsIHJlc29sdmVPbmNlKTtcblxuICAgIC8vIEhhbmRsZSByZXNwb25zZSBlcnJvcnNcbiAgICBleHByZXNzUmVzcG9uc2Uub25jZSgnZXJyb3InLCByZWplY3RPbmNlKTtcblxuICAgIHRyeSB7XG4gICAgICBhcHAoZXhwcmVzc1JlcXVlc3QsIGV4cHJlc3NSZXNwb25zZSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGluIHN0cmVhbVJlc3BvbnNlOicsIGVycm9yKTtcbiAgICAgIHJlamVjdE9uY2UoZXJyb3IgYXMgRXJyb3IpO1xuICAgIH1cbiAgfSk7XG59XG5cbi8qKlxuICogQnVpbGRzIGEgZnVsbCBVUkwgcGF0aCB3aXRoIHF1ZXJ5IHN0cmluZyBmcm9tIEFQSSBHYXRld2F5IGV2ZW50XG4gKiBNZXJnZXMgbXVsdGlWYWx1ZVF1ZXJ5U3RyaW5nUGFyYW1ldGVycyBhbmQgcXVlcnlTdHJpbmdQYXJhbWV0ZXJzXG4gKi9cbmNvbnN0IGdldFBhdGhGcm9tRXZlbnQgPSAoZXZlbnQ6IEFQSUdhdGV3YXlQcm94eUV2ZW50KTogc3RyaW5nID0+IHtcbiAgY29uc3QgcGF0aCA9IGV2ZW50LnBhdGg7XG5cbiAgLy8gU3RhcnQgd2l0aCBtdWx0aS12YWx1ZSBxdWVyeSBwYXJhbWV0ZXJzIChhbHJlYWR5IGFycmF5cyksIGZpbHRlcmluZyBvdXQgdW5kZWZpbmVkIHZhbHVlc1xuICBjb25zdCBtZXJnZWRQYXJhbXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPiA9IHt9O1xuICBpZiAoZXZlbnQubXVsdGlWYWx1ZVF1ZXJ5U3RyaW5nUGFyYW1ldGVycykge1xuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVzXSBvZiBPYmplY3QuZW50cmllcyhldmVudC5tdWx0aVZhbHVlUXVlcnlTdHJpbmdQYXJhbWV0ZXJzKSkge1xuICAgICAgaWYgKHZhbHVlcykge1xuICAgICAgICBtZXJnZWRQYXJhbXNba2V5XSA9IFsuLi52YWx1ZXNdO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIE1lcmdlIGluIHNpbmdsZS12YWx1ZSBxdWVyeSBwYXJhbWV0ZXJzLCBjb252ZXJ0aW5nIHRvIGFycmF5c1xuICBpZiAoZXZlbnQucXVlcnlTdHJpbmdQYXJhbWV0ZXJzKSB7XG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoZXZlbnQucXVlcnlTdHJpbmdQYXJhbWV0ZXJzKSkge1xuICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIGNvbnRpbnVlO1xuXG4gICAgICAvLyBBZGQgdG8gZXhpc3RpbmcgYXJyYXkgb3IgY3JlYXRlIG5ldyBvbmVcbiAgICAgIGlmIChtZXJnZWRQYXJhbXNba2V5XSkge1xuICAgICAgICBpZiAoIW1lcmdlZFBhcmFtc1trZXldLmluY2x1ZGVzKHZhbHVlKSkge1xuICAgICAgICAgIG1lcmdlZFBhcmFtc1trZXldLnB1c2godmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBtZXJnZWRQYXJhbXNba2V5XSA9IFt2YWx1ZV07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gQnVpbGQgcXVlcnkgc3RyaW5nXG4gIGNvbnN0IHNlYXJjaFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKTtcbiAgZm9yIChjb25zdCBba2V5LCB2YWx1ZXNdIG9mIE9iamVjdC5lbnRyaWVzKG1lcmdlZFBhcmFtcykpIHtcbiAgICBmb3IgKGNvbnN0IHZhbHVlIG9mIHZhbHVlcykge1xuICAgICAgc2VhcmNoUGFyYW1zLmFwcGVuZChrZXksIHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBjb25zdCBxdWVyeVN0cmluZyA9IHNlYXJjaFBhcmFtcy50b1N0cmluZygpO1xuICByZXR1cm4gcXVlcnlTdHJpbmcgPyBgJHtwYXRofT8ke3F1ZXJ5U3RyaW5nfWAgOiBwYXRoO1xufTtcblxuLyoqXG4gKiBDb252ZXJ0cyBBUEkgR2F0ZXdheSBldmVudCB0byBFeHByZXNzLWNvbXBhdGlibGUgcmVxdWVzdCBvYmplY3RcbiAqIENyZWF0ZXMgYSBwcm9wZXIgSW5jb21pbmdNZXNzYWdlLWxpa2Ugb2JqZWN0IHdpdGggc3RyZWFtIHByb3BlcnRpZXNcbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUV4cHJlc3NSZXF1ZXN0KGV2ZW50OiBBUElHYXRld2F5UHJveHlFdmVudCwgY29udGV4dDogQ29udGV4dCk6IEV4cHJlc3NSZXF1ZXN0IHtcbiAgY29uc3Qge2h0dHBNZXRob2QsIGhlYWRlcnMsIG11bHRpVmFsdWVIZWFkZXJzLCBib2R5LCBpc0Jhc2U2NEVuY29kZWQsIHJlcXVlc3RDb250ZXh0fSA9IGV2ZW50O1xuXG4gIGNvbnN0IHJlbW90ZUFkZHJlc3MgPSByZXF1ZXN0Q29udGV4dD8uaWRlbnRpdHk/LnNvdXJjZUlwID8/IHVuZGVmaW5lZDtcblxuICBjb25zdCBib2R5RW5jb2RpbmcgPSBpc0Jhc2U2NEVuY29kZWQgPyAnYmFzZTY0JyA6ICd1dGYtOCc7XG4gIGNvbnN0IHJlcXVlc3RCb2R5OiBCdWZmZXIgfCB1bmRlZmluZWQgPSBib2R5ID8gQnVmZmVyLmZyb20oYm9keSwgYm9keUVuY29kaW5nKSA6IHVuZGVmaW5lZDtcblxuICAvLyBOb3JtYWxpemUgaGVhZGVycyB0byBsb3dlcmNhc2Uga2V5cyBmb3IgY2FzZS1pbnNlbnNpdGl2ZSBsb29rdXBcbiAgY29uc3Qgbm9ybWFsaXplZEhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcbiAgaWYgKGhlYWRlcnMpIHtcbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhoZWFkZXJzKSkge1xuICAgICAgY29uc3Qgbm9ybWFsaXplZEtleSA9IGtleS50b0xvd2VyQ2FzZSgpO1xuICAgICAgLy8gSWYgdmFsdWUgaXMgYW4gYXJyYXksIHRha2UgdGhlIGZpcnN0IG9uZTsgb3RoZXJ3aXNlIHVzZSB0aGUgdmFsdWVcbiAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSBjb250aW51ZTtcbiAgICAgIG5vcm1hbGl6ZWRIZWFkZXJzW25vcm1hbGl6ZWRLZXldID0gdmFsdWU7XG4gICAgfVxuICB9XG4gIGZvciAoY29uc3QgbXVsdGlWYWx1ZUhlYWRlcktleSBvZiBPYmplY3Qua2V5cyhtdWx0aVZhbHVlSGVhZGVycyB8fCB7fSkpIHtcbiAgICBjb25zdCB2YWx1ZSA9IG11bHRpVmFsdWVIZWFkZXJzW211bHRpVmFsdWVIZWFkZXJLZXldO1xuICAgIGlmICghdmFsdWUgfHwgdmFsdWUubGVuZ3RoIDw9IDEpIGNvbnRpbnVlO1xuICAgIG5vcm1hbGl6ZWRIZWFkZXJzW211bHRpVmFsdWVIZWFkZXJLZXldID0gdmFsdWUuam9pbignLCcpO1xuICB9XG5cbiAgY29uc3QgcmVxdWVzdCA9IG5ldyBTZXJ2ZXJsZXNzUmVxdWVzdCh7XG4gICAgbWV0aG9kOiBodHRwTWV0aG9kLFxuICAgIHVybDogZ2V0UGF0aEZyb21FdmVudChldmVudCksXG4gICAgaGVhZGVyczogbm9ybWFsaXplZEhlYWRlcnMsXG4gICAgYm9keTogcmVxdWVzdEJvZHksXG4gICAgcmVtb3RlQWRkcmVzcyxcbiAgfSk7XG5cbiAgLy8gQWRkIEV4cHJlc3Mtc3BlY2lmaWMgcHJvcGVydGllcyB0aGF0IGFyZW4ndCBwYXJ0IG9mIEluY29taW5nTWVzc2FnZVxuICAvLyBJbmNvbWluZ01lc3NhZ2UgZG9lc24ndCBoYXZlIHF1ZXJ5LCBwYXJhbXMsIGV0Yy4gLSB0aGVzZSBhcmUgYWRkZWQgYnkgRXhwcmVzc1xuICBjb25zdCByZXEgPSByZXF1ZXN0IGFzIHVua25vd24gYXMgRXhwcmVzc1JlcXVlc3Q7XG5cbiAgLy8gRXhwcmVzcy1saWtlIG1ldGhvZHNcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHJlcSwgJ2dldCcsIHtcbiAgICB2YWx1ZSh0aGlzOiBFeHByZXNzUmVxdWVzdCwgaGVhZGVyTmFtZTogc3RyaW5nKTogc3RyaW5nIHwgc3RyaW5nW10gfCB1bmRlZmluZWQge1xuICAgICAgcmV0dXJuIHRoaXMuaGVhZGVyc1toZWFkZXJOYW1lLnRvTG93ZXJDYXNlKCldO1xuICAgIH0sXG4gICAgd3JpdGFibGU6IHRydWUsXG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBjb25maWd1cmFibGU6IHRydWUsXG4gIH0pO1xuXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyZXEsICdoZWFkZXInLCB7XG4gICAgdmFsdWUodGhpczogRXhwcmVzc1JlcXVlc3QsIGhlYWRlck5hbWU6IHN0cmluZyk6IHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkIHtcbiAgICAgIHJldHVybiB0aGlzLmdldChoZWFkZXJOYW1lKTtcbiAgICB9LFxuICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICB9KTtcblxuICByZXR1cm4gcmVxO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiBhIGNvbnRlbnQgdHlwZSBpcyBjb21wcmVzc2libGUgdXNpbmcgdGhlIGNvbXByZXNzaWJsZSBwYWNrYWdlXG4gKlxuICogQHBhcmFtIGNvbnRlbnRUeXBlIC0gVGhlIGNvbnRlbnQgdHlwZSB0byBjaGVjayAoZS5nLiwgJ3RleHQvaHRtbCcsICdhcHBsaWNhdGlvbi9qc29uJylcbiAqIEByZXR1cm5zIHRydWUgaWYgdGhlIGNvbnRlbnQgdHlwZSBpcyBjb21wcmVzc2libGUsIGZhbHNlIG90aGVyd2lzZVxuICovXG5mdW5jdGlvbiBpc0NvbXByZXNzaWJsZShjb250ZW50VHlwZTogc3RyaW5nIHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XG4gIGlmICghY29udGVudFR5cGUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gISFjb21wcmVzc2libGUoY29udGVudFR5cGUpO1xufVxuXG5jb25zdCBpc051bGxPclVuZGVmaW5lZCA9ICh2YWx1ZTogdW5rbm93bik6IGJvb2xlYW4gPT4gdmFsdWUgPT0gbnVsbDtcblxuLyoqXG4gKiBEZXRlcm1pbmVzIHRoZSBiZXN0IGVuY29kaW5nIGJhc2VkIG9uIEFjY2VwdC1FbmNvZGluZyBoZWFkZXIgdXNpbmcgdGhlIG5lZ290aWF0b3IgcGFja2FnZVxuICogUHJlZmVycyBlbmNvZGluZ3MgaW4gb3JkZXI6IGJyIChicm90bGkpLCB6c3RkIChpZiBhdmFpbGFibGUpLCBnemlwLCBkZWZsYXRlXG4gKlxuICogQHBhcmFtIGFjY2VwdEVuY29kaW5nIC0gVGhlIEFjY2VwdC1FbmNvZGluZyBoZWFkZXIgdmFsdWUgZnJvbSB0aGUgcmVxdWVzdFxuICogQHBhcmFtIGNvbXByZXNzaW9uQ29uZmlnIC0gT3B0aW9uYWwgY29tcHJlc3Npb24gY29uZmlndXJhdGlvblxuICogQHJldHVybnMgVGhlIGJlc3QgYXZhaWxhYmxlIGVuY29kaW5nIG9yIG51bGwgaWYgbm9uZSBhcmUgc3VwcG9ydGVkXG4gKi9cbmZ1bmN0aW9uIGdldEJlc3RFbmNvZGluZyhcbiAgYWNjZXB0RW5jb2Rpbmc6IHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkLFxuICBjb21wcmVzc2lvbkNvbmZpZz86IENvbXByZXNzaW9uQ29uZmlnLFxuKTogc3RyaW5nIHwgbnVsbCB7XG4gIC8vIElmIGNvbXByZXNzaW9uIGlzIGV4cGxpY2l0bHkgZGlzYWJsZWQsIHJldHVybiBudWxsXG4gIGlmIChjb21wcmVzc2lvbkNvbmZpZz8uZW5hYmxlZCA9PT0gZmFsc2UpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8vIElmIG92ZXJyaWRlIGVuY29kaW5nIGlzIHByb3ZpZGVkLCB1c2UgaXQgcmVnYXJkbGVzcyBvZiBBY2NlcHQtRW5jb2RpbmcgaGVhZGVyXG4gIGlmIChjb21wcmVzc2lvbkNvbmZpZz8uZW5jb2RpbmcpIHtcbiAgICByZXR1cm4gY29tcHJlc3Npb25Db25maWcuZW5jb2Rpbmc7XG4gIH1cbiAgaWYgKCFhY2NlcHRFbmNvZGluZykge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIGNvbnN0IG5lZ290aWF0b3IgPSBuZXcgTmVnb3RpYXRvcih7aGVhZGVyczogeydhY2NlcHQtZW5jb2RpbmcnOiBhY2NlcHRFbmNvZGluZ319KTtcblxuICAvLyBCdWlsZCBhdmFpbGFibGUgZW5jb2RpbmdzIGxpc3QgYmFzZWQgb24gd2hhdCdzIHN1cHBvcnRlZFxuICAvLyBPcmRlciBvZiBwcmVmZXJlbmNlOiBiciAoYnJvdGxpKSwgenN0ZCAoaWYgYXZhaWxhYmxlKSwgZ3ppcCwgZGVmbGF0ZVxuICBjb25zdCBhdmFpbGFibGVFbmNvZGluZ3M6IHN0cmluZ1tdID0gWydicicsICdnemlwJywgJ2RlZmxhdGUnXTtcbiAgaWYgKGNyZWF0ZVpzdGRDb21wcmVzcykge1xuICAgIGF2YWlsYWJsZUVuY29kaW5ncy5wdXNoKCd6c3RkJyk7XG4gIH1cblxuICBjb25zdCBiZXN0RW5jb2RpbmcgPSBuZWdvdGlhdG9yLmVuY29kaW5nKGF2YWlsYWJsZUVuY29kaW5ncyk7XG5cbiAgcmV0dXJuIGJlc3RFbmNvZGluZyB8fCBudWxsO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBjb21wcmVzc2lvbiBzdHJlYW0gYmFzZWQgb24gdGhlIGVuY29kaW5nIHR5cGVcbiAqXG4gKiBAcGFyYW0gZW5jb2RpbmcgLSBUaGUgZW5jb2RpbmcgdHlwZSAoJ2JyJywgJ3pzdGQnLCAnZ3ppcCcsIG9yICdkZWZsYXRlJylcbiAqIEBwYXJhbSBjb21wcmVzc2lvbkNvbmZpZyAtIFRoZSBjb21wcmVzc2lvbiBjb25maWd1cmF0aW9uIG9wdGlvbnNcbiAqIEByZXR1cm5zIEEgY29tcHJlc3Npb24gc3RyZWFtIChCcm90bGlDb21wcmVzcywgWnN0ZENvbXByZXNzLCBHemlwLCBvciBEZWZsYXRlKVxuICogQHRocm93cyBFcnJvciBpZiB0aGUgZW5jb2RpbmcgaXMgbm90IHN1cHBvcnRlZFxuICovXG5mdW5jdGlvbiBjcmVhdGVDb21wcmVzc2lvblN0cmVhbShlbmNvZGluZzogc3RyaW5nLCBjb21wcmVzc2lvbkNvbmZpZz86IENvbXByZXNzaW9uQ29uZmlnKTogQ29tcHJlc3Npb25TdHJlYW0ge1xuICBjb25zdCBvcHRpb25zID0gY29tcHJlc3Npb25Db25maWc/Lm9wdGlvbnMgfHwgdW5kZWZpbmVkO1xuICBzd2l0Y2ggKGVuY29kaW5nKSB7XG4gICAgY2FzZSAnYnInOlxuICAgICAgcmV0dXJuIHpsaWIuY3JlYXRlQnJvdGxpQ29tcHJlc3Mob3B0aW9ucyBhcyBCcm90bGlPcHRpb25zKTtcbiAgICBjYXNlICd6c3RkJzpcbiAgICAgIGlmICghY3JlYXRlWnN0ZENvbXByZXNzKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignenN0ZCBjb21wcmVzc2lvbiBpcyBub3QgYXZhaWxhYmxlIGluIHRoaXMgTm9kZS5qcyB2ZXJzaW9uIChyZXF1aXJlcyB2MjIuMTUuMCspJyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gY3JlYXRlWnN0ZENvbXByZXNzKG9wdGlvbnMgYXMgWnN0ZE9wdGlvbnMpO1xuICAgIGNhc2UgJ2d6aXAnOlxuICAgICAgcmV0dXJuIHpsaWIuY3JlYXRlR3ppcChvcHRpb25zIGFzIFpsaWJPcHRpb25zKTtcbiAgICBjYXNlICdkZWZsYXRlJzpcbiAgICAgIHJldHVybiB6bGliLmNyZWF0ZURlZmxhdGUob3B0aW9ucyBhcyBabGliT3B0aW9ucyk7XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgZW5jb2Rpbmc6ICR7ZW5jb2Rpbmd9YCk7XG4gIH1cbn1cblxuLyoqXG4gKiBDcmVhdGVzIEV4cHJlc3MtY29tcGF0aWJsZSByZXNwb25zZSBvYmplY3QgdGhhdCBwcm9wZXJseSBleHRlbmRzIFNlcnZlclJlc3BvbnNlXG4gKlxuICogVGhpcyBmdW5jdGlvbiBjcmVhdGVzIGEgcmVzcG9uc2Ugb2JqZWN0IHRoYXQ6XG4gKiAtIFN1cHBvcnRzIEFXUyBMYW1iZGEgcmVzcG9uc2Ugc3RyZWFtaW5nIHZpYSBIdHRwUmVzcG9uc2VTdHJlYW1cbiAqIC0gQXV0b21hdGljYWxseSBjb21wcmVzc2VzIHJlc3BvbnNlcyBiYXNlZCBvbiBBY2NlcHQtRW5jb2RpbmcgaGVhZGVyXG4gKiAtIFVzZXMgbmVnb3RpYXRvciB0byBzZWxlY3QgdGhlIGJlc3QgYXZhaWxhYmxlIGVuY29kaW5nIChiciwgenN0ZCBpZiBhdmFpbGFibGUsIGd6aXAsIGRlZmxhdGUpXG4gKiAtIFVzZXMgY29tcHJlc3NpYmxlIHBhY2thZ2UgdG8gZGV0ZXJtaW5lIGlmIGNvbnRlbnQgc2hvdWxkIGJlIGNvbXByZXNzZWRcbiAqXG4gKiBDb21wcmVzc2lvbiBmbG93OlxuICogMS4gQ2hlY2sgQWNjZXB0LUVuY29kaW5nIGhlYWRlciBhbmQgc2VsZWN0IGJlc3QgZW5jb2RpbmdcbiAqIDIuIENyZWF0ZSBIdHRwUmVzcG9uc2VTdHJlYW0gd2l0aCBtZXRhZGF0YVxuICogMy4gSWYgY29tcHJlc3Npb24gaXMgYXBwbGljYWJsZSwgY3JlYXRlIGNvbXByZXNzaW9uIHN0cmVhbSBhbmQgcGlwZSB0byBodHRwUmVzcG9uc2VTdHJlYW1cbiAqIDQuIFdyaXRlIGRhdGEgdG8gY29tcHJlc3Npb24gc3RyZWFtIChvciBodHRwUmVzcG9uc2VTdHJlYW0gaWYgbm8gY29tcHJlc3Npb24pXG4gKiA1LiBFbmQgY29tcHJlc3Npb24gc3RyZWFtLCB3aGljaCBhdXRvbWF0aWNhbGx5IGVuZHMgaHR0cFJlc3BvbnNlU3RyZWFtXG4gKlxuICogQHBhcmFtIHJlc3BvbnNlU3RyZWFtIC0gVGhlIEFXUyBMYW1iZGEgcmVzcG9uc2Ugc3RyZWFtXG4gKiBAcGFyYW0gbWV0aG9kIC0gVGhlIEhUVFAgbWV0aG9kIChHRVQsIFBPU1QsIGV0Yy4pXG4gKiBAcGFyYW0gcmVxdWVzdCAtIE9wdGlvbmFsIEV4cHJlc3MgcmVxdWVzdCBvYmplY3QgKHVzZWQgdG8gY2hlY2sgQWNjZXB0LUVuY29kaW5nIGhlYWRlcilcbiAqIEByZXR1cm5zIEV4cHJlc3MtY29tcGF0aWJsZSByZXNwb25zZSBvYmplY3RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUV4cHJlc3NSZXNwb25zZShcbiAgcmVzcG9uc2VTdHJlYW06IFdyaXRhYmxlLFxuICBldmVudDogQVBJR2F0ZXdheVByb3h5RXZlbnQsXG4gIGNvbnRleHQ6IENvbnRleHQsXG4gIHJlcXVlc3Q/OiBFeHByZXNzUmVxdWVzdCxcbiAgY29tcHJlc3Npb25Db25maWc/OiBDb21wcmVzc2lvbkNvbmZpZyxcbik6IEV4cHJlc3NSZXNwb25zZSB7XG4gIGNvbnN0IG1ldGhvZCA9IGV2ZW50Lmh0dHBNZXRob2Q7XG4gIGxldCBzdGF0dXNDb2RlID0gMjAwO1xuICBsZXQgc3RhdHVzTWVzc2FnZTogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICBjb25zdCBoZWFkZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBzdHJpbmdbXSB8IHVuZGVmaW5lZD4gPSB7fTtcbiAgbGV0IHJlc3BvbnNlU3RhcnRlZCA9IGZhbHNlO1xuICBsZXQgaHR0cFJlc3BvbnNlU3RyZWFtOiBXcml0YWJsZSB8IG51bGwgPSBudWxsO1xuXG4gIC8vIERldGVybWluZSBpZiBjb21wcmVzc2lvbiBzaG91bGQgYmUgdXNlZCBiYXNlZCBvbiBBY2NlcHQtRW5jb2RpbmcgaGVhZGVyXG4gIGNvbnN0IGFjY2VwdEVuY29kaW5nID0gcmVxdWVzdD8uZ2V0KCdhY2NlcHQtZW5jb2RpbmcnKSB8fCAnaWRlbnRpdHknO1xuICBjb25zdCBzZWxlY3RlZEVuY29kaW5nID0gZ2V0QmVzdEVuY29kaW5nKGFjY2VwdEVuY29kaW5nLCBjb21wcmVzc2lvbkNvbmZpZykgfHwgJ2lkZW50aXR5JztcbiAgbGV0IGNvbXByZXNzaW9uU3RyZWFtOiBDb21wcmVzc2lvblN0cmVhbSB8IG51bGwgPSBudWxsO1xuICBsZXQgc2hvdWxkQ29tcHJlc3MgPSBmYWxzZTtcbiAgbGV0IGNvbXByZXNzaW9uSW5pdGlhbGl6ZWQgPSBmYWxzZTtcblxuICAvLyBIZWxwZXIgZnVuY3Rpb24gdG8gY2hlY2sgaWYgc3RyZWFtIGlzIHN0aWxsIHdyaXRhYmxlXG4gIGNvbnN0IGlzU3RyZWFtT3BlbiA9ICgpOiBib29sZWFuID0+IHtcbiAgICBjb25zdCBzdHJlYW1Ub0NoZWNrID0gY29tcHJlc3Npb25TdHJlYW0gfHwgaHR0cFJlc3BvbnNlU3RyZWFtIHx8IHJlc3BvbnNlU3RyZWFtO1xuICAgIHJldHVybiBzdHJlYW1Ub0NoZWNrICYmIHN0cmVhbVRvQ2hlY2sud3JpdGFibGUgJiYgIXN0cmVhbVRvQ2hlY2suZGVzdHJveWVkICYmICFzdHJlYW1Ub0NoZWNrLndyaXRhYmxlRW5kZWQ7XG4gIH07XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemVzIGNvbXByZXNzaW9uIHN0cmVhbSBhbmQgcGlwZXMgaXQgdG8gaHR0cFJlc3BvbnNlU3RyZWFtXG4gICAqIFRoaXMgbXVzdCBiZSBjYWxsZWQgYWZ0ZXIgaHR0cFJlc3BvbnNlU3RyZWFtIGlzIGNyZWF0ZWRcbiAgICpcbiAgICogQHBhcmFtIGh0dHBSZXNwb25zZVN0cmVhbSAtIFRoZSBIdHRwUmVzcG9uc2VTdHJlYW0gdG8gcGlwZSBjb21wcmVzc2VkIGRhdGEgdG9cbiAgICogQHBhcmFtIHNlbGVjdGVkRW5jb2RpbmcgLSBUaGUgZW5jb2RpbmcgdG8gdXNlIChiciwgZ3ppcCwgb3IgZGVmbGF0ZSlcbiAgICovXG4gIGNvbnN0IGluaXRpYWxpemVDb21wcmVzc2lvbiA9ICgpOiB2b2lkID0+IHtcbiAgICBpZiAoIWh0dHBSZXNwb25zZVN0cmVhbSB8fCBjb21wcmVzc2lvbkluaXRpYWxpemVkIHx8ICFzZWxlY3RlZEVuY29kaW5nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIC8vIENyZWF0ZSBjb21wcmVzc2lvbiBzdHJlYW0gYmFzZWQgb24gc2VsZWN0ZWQgZW5jb2RpbmdcbiAgICAgIGNvbXByZXNzaW9uU3RyZWFtID0gY3JlYXRlQ29tcHJlc3Npb25TdHJlYW0oc2VsZWN0ZWRFbmNvZGluZywgY29tcHJlc3Npb25Db25maWcpO1xuXG4gICAgICAvLyBTZXQgdXAgZXJyb3IgaGFuZGxpbmcgZm9yIGNvbXByZXNzaW9uIHN0cmVhbVxuICAgICAgY29tcHJlc3Npb25TdHJlYW0ub24oJ2Vycm9yJywgKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdDb21wcmVzc2lvbiBzdHJlYW0gZXJyb3I6JywgZXJyb3IpO1xuICAgICAgICBzaG91bGRDb21wcmVzcyA9IGZhbHNlO1xuICAgICAgfSk7XG5cbiAgICAgIC8vIFBpcGUgY29tcHJlc3Npb24gc3RyZWFtIHRvIGh0dHBSZXNwb25zZVN0cmVhbVxuICAgICAgLy8gVGhlIHsgZW5kOiB0cnVlIH0gb3B0aW9uIGVuc3VyZXMgaHR0cFJlc3BvbnNlU3RyZWFtIGlzIGVuZGVkIHdoZW4gY29tcHJlc3Npb25TdHJlYW0gZW5kc1xuICAgICAgY29tcHJlc3Npb25TdHJlYW0ucGlwZShodHRwUmVzcG9uc2VTdHJlYW0sIHtlbmQ6IHRydWV9KTtcblxuICAgICAgc2hvdWxkQ29tcHJlc3MgPSB0cnVlO1xuICAgICAgY29tcHJlc3Npb25Jbml0aWFsaXplZCA9IHRydWU7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHNldHRpbmcgdXAgY29tcHJlc3Npb246JywgZXJyb3IpO1xuICAgICAgc2hvdWxkQ29tcHJlc3MgPSBmYWxzZTtcbiAgICAgIGNvbXByZXNzaW9uU3RyZWFtID0gbnVsbDtcbiAgICB9XG4gIH07XG5cbiAgLyoqXG4gICAqIFdyaXRlcyBhIGNodW5rIHRvIHRoZSBhcHByb3ByaWF0ZSBzdHJlYW0gKGNvbXByZXNzaW9uIHN0cmVhbSBpZiBlbmFibGVkLCBvdGhlcndpc2UgaHR0cFJlc3BvbnNlU3RyZWFtKVxuICAgKlxuICAgKiBAcGFyYW0gY2h1bmsgLSBUaGUgZGF0YSBjaHVuayB0byB3cml0ZVxuICAgKiBAcmV0dXJucyB0cnVlIGlmIHRoZSBjaHVuayB3YXMgd3JpdHRlbiBzdWNjZXNzZnVsbHksIGZhbHNlIG90aGVyd2lzZVxuICAgKi9cbiAgY29uc3Qgd3JpdGVDaHVuayA9IChjaHVuaz86IHN0cmluZyB8IEJ1ZmZlciB8IFVpbnQ4QXJyYXkpOiBib29sZWFuID0+IHtcbiAgICAvLyBEb24ndCB3cml0ZSBudWxsLCB1bmRlZmluZWRcbiAgICBpZiAoaXNOdWxsT3JVbmRlZmluZWQoY2h1bmspIHx8ICFpc1N0cmVhbU9wZW4oKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBpZiAoc2hvdWxkQ29tcHJlc3MgJiYgY29tcHJlc3Npb25TdHJlYW0gJiYgY29tcHJlc3Npb25TdHJlYW0ud3JpdGFibGUpIHtcbiAgICAgICAgLy8gV3JpdGUgdG8gY29tcHJlc3Npb24gc3RyZWFtLCB3aGljaCB3aWxsIGNvbXByZXNzIGFuZCBwaXBlIHRvIGh0dHBSZXNwb25zZVN0cmVhbVxuICAgICAgICByZXR1cm4gY29tcHJlc3Npb25TdHJlYW0ud3JpdGUoY2h1bmspO1xuICAgICAgfSBlbHNlIGlmIChodHRwUmVzcG9uc2VTdHJlYW0gJiYgaHR0cFJlc3BvbnNlU3RyZWFtLndyaXRhYmxlKSB7XG4gICAgICAgIC8vIE5vIGNvbXByZXNzaW9uLCB3cml0ZSBkaXJlY3RseSB0byBodHRwUmVzcG9uc2VTdHJlYW1cbiAgICAgICAgcmV0dXJuIGh0dHBSZXNwb25zZVN0cmVhbS53cml0ZShjaHVuayk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHdyaXRpbmcgY2h1bms6JywgZXJyb3IpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBpc0NvbXByZXNzaW9uRW5hYmxlZCA9IChjb250ZW50VHlwZVN0cjogc3RyaW5nIHwgdW5kZWZpbmVkKTogYm9vbGVhbiA9PiB7XG4gICAgY29uc3QgZW5hYmxlZCA9IGNvbXByZXNzaW9uQ29uZmlnPy5lbmFibGVkID8/IHRydWU7XG4gICAgcmV0dXJuICEhKHNlbGVjdGVkRW5jb2RpbmcgJiYgc2VsZWN0ZWRFbmNvZGluZyAhPT0gJ2lkZW50aXR5JyAmJiBpc0NvbXByZXNzaWJsZShjb250ZW50VHlwZVN0cikgJiYgZW5hYmxlZCk7XG4gIH07XG5cbiAgY29uc3QgZ2V0Q29udGVudFR5cGUgPSAocmVzcG9uc2U6IEV4cHJlc3NSZXNwb25zZSk6IHN0cmluZyB8IHVuZGVmaW5lZCA9PiB7XG4gICAgY29uc3QgY29udGVudFR5cGUgPSByZXNwb25zZS5nZXRIZWFkZXIoJ2NvbnRlbnQtdHlwZScpO1xuICAgIGlmIChBcnJheS5pc0FycmF5KGNvbnRlbnRUeXBlKSkge1xuICAgICAgcmV0dXJuIGNvbnRlbnRUeXBlLmpvaW4oJywnKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBjb250ZW50VHlwZSA9PT0gJ251bWJlcicpIHtcbiAgICAgIHJldHVybiBTdHJpbmcoY29udGVudFR5cGUpO1xuICAgIH1cbiAgICByZXR1cm4gY29udGVudFR5cGU7XG4gIH07XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemVzIHRoZSByZXNwb25zZSBieTpcbiAgICogMS4gQ29sbGVjdGluZyBoZWFkZXJzXG4gICAqIDIuIERldGVybWluaW5nIGlmIGNvbXByZXNzaW9uIHNob3VsZCBiZSB1c2VkXG4gICAqIDMuIENyZWF0aW5nIEh0dHBSZXNwb25zZVN0cmVhbSB3aXRoIG1ldGFkYXRhXG4gICAqIDQuIFNldHRpbmcgdXAgY29tcHJlc3Npb24gc3RyZWFtIGlmIG5lZWRlZFxuICAgKlxuICAgKiBUaGlzIG11c3QgYmUgY2FsbGVkIGJlZm9yZSBhbnkgZGF0YSBpcyB3cml0dGVuIHRvIHRoZSByZXNwb25zZS5cbiAgICpcbiAgICogQHBhcmFtIHJlc3BvbnNlIC0gVGhlIEV4cHJlc3MgcmVzcG9uc2Ugb2JqZWN0XG4gICAqL1xuICBjb25zdCBpbml0aWFsaXplUmVzcG9uc2UgPSAocmVzcG9uc2U6IEV4cHJlc3NSZXNwb25zZSk6IHZvaWQgPT4ge1xuICAgIGlmIChyZXNwb25zZVN0YXJ0ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIWlzU3RyZWFtT3BlbigpKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdDYW5ub3QgaW5pdGlhbGl6ZSByZXNwb25zZSAtIHN0cmVhbSBpcyBjbG9zZWQnKTtcbiAgICAgIGVtaXRDbG9zZU9uY2UocmVzcG9uc2UpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIENvbGxlY3QgYWxsIGN1cnJlbnQgaGVhZGVycyBmcm9tIHRoZSByZXNwb25zZVxuICAgIGNvbnN0IGN1cnJlbnRIZWFkZXJzID0gcmVzcG9uc2UuZ2V0SGVhZGVycygpO1xuICAgIE9iamVjdC5hc3NpZ24oaGVhZGVycywgY3VycmVudEhlYWRlcnMpO1xuXG4gICAgZm9yIChjb25zdCBoZWFkZXIgb2YgUkVRVUVTVF9IRUFERVJTX1RPX0NPUFkpIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gcmVxdWVzdD8uZ2V0KGhlYWRlcik7XG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgaGVhZGVyc1toZWFkZXJdID0gdmFsdWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgY29udGVudFR5cGUgPSBnZXRDb250ZW50VHlwZShyZXNwb25zZSk7XG5cbiAgICBpZiAoaXNDb21wcmVzc2lvbkVuYWJsZWQoY29udGVudFR5cGUpKSB7XG4gICAgICBoZWFkZXJzWydjb250ZW50LWVuY29kaW5nJ10gPSBzZWxlY3RlZEVuY29kaW5nO1xuICAgICAgcmVzcG9uc2Uuc2V0SGVhZGVyKCdDb250ZW50LUVuY29kaW5nJywgc2VsZWN0ZWRFbmNvZGluZyk7XG4gICAgfVxuICAgIC8vIFJlbW92ZSBDb250ZW50LUxlbmd0aCBoZWFkZXIgd2hlbiBjb21wcmVzc2lvbiBpcyBlbmFibGVkIHNpbmNlIHRoZSBsZW5ndGggd2lsbCBjaGFuZ2VcbiAgICBkZWxldGUgaGVhZGVyc1snY29udGVudC1sZW5ndGgnXTtcbiAgICByZXNwb25zZS5yZW1vdmVIZWFkZXIoJ2NvbnRlbnQtbGVuZ3RoJyk7XG5cbiAgICAvLyBDcmVhdGUgSHR0cFJlc3BvbnNlU3RyZWFtIHdpdGggbWV0YWRhdGFcbiAgICAvLyBUaGlzIHdyaXRlcyB0aGUgSFRUUCBzdGF0dXMgYW5kIGhlYWRlcnMgdG8gdGhlIHN0cmVhbVxuICAgIGNvbnN0IG1ldGFkYXRhOiBTdHJlYW1NZXRhZGF0YSA9IHtcbiAgICAgIHN0YXR1c0NvZGU6IHJlc3BvbnNlLnN0YXR1c0NvZGUgfHwgc3RhdHVzQ29kZSxcbiAgICAgIGhlYWRlcnMsXG4gICAgfTtcblxuICAgIGNvbnN0IGNvb2tpZXMgPSBtZXRhZGF0YS5oZWFkZXJzWydzZXQtY29va2llJ107XG4gICAgaWYgKGNvb2tpZXMpIHtcbiAgICAgIG1ldGFkYXRhLmNvb2tpZXMgPSBBcnJheS5pc0FycmF5KGNvb2tpZXMpID8gY29va2llcyA6IFtjb29raWVzXTtcbiAgICAgIGRlbGV0ZSBtZXRhZGF0YS5oZWFkZXJzWydzZXQtY29va2llJ107XG4gICAgfVxuICAgIG1ldGFkYXRhLmhlYWRlcnMgPSBjb252ZXJ0SGVhZGVycyhtZXRhZGF0YS5oZWFkZXJzKTtcblxuICAgIGh0dHBSZXNwb25zZVN0cmVhbSA9IGF3c2xhbWJkYS5IdHRwUmVzcG9uc2VTdHJlYW0uZnJvbShyZXNwb25zZVN0cmVhbSwgbWV0YWRhdGEpO1xuXG4gICAgLy8gQmluZCAnZmluaXNoJyBhbmQgJ2Nsb3NlJyBoYW5kbGVycyB0byBlbWl0IHRoZSBzYW1lIGV2ZW50cyBvbiB0aGUgcmVzcG9uc2Ugb2JqZWN0XG4gICAgaHR0cFJlc3BvbnNlU3RyZWFtLm9uKCdmaW5pc2gnLCAoKSA9PiB7XG4gICAgICByZXNwb25zZS5maW5pc2hlZCA9IHRydWU7XG4gICAgICByZXNwb25zZS5lbWl0KCdmaW5pc2gnKTtcbiAgICB9KTtcbiAgICBodHRwUmVzcG9uc2VTdHJlYW0ub24oJ2Nsb3NlJywgKCkgPT4ge1xuICAgICAgcmVzcG9uc2UuZW1pdCgnY2xvc2UnKTtcbiAgICB9KTtcblxuICAgIC8vIFNldCB1cCBjb21wcmVzc2lvbiBzdHJlYW0gaWYgY29tcHJlc3Npb24gaXMgZW5hYmxlZFxuICAgIC8vIFRoZSBjb21wcmVzc2lvbiBzdHJlYW0gcGlwZXMgdG8gaHR0cFJlc3BvbnNlU3RyZWFtLCB3aGljaCBwaXBlcyB0byByZXNwb25zZVN0cmVhbVxuICAgIC8vICdpZGVudGl0eScgbWVhbnMgbm8gZW5jb2RpbmcsIHNvIHdlIHNob3VsZCBub3QgaW5pdGlhbGl6ZSBjb21wcmVzc2lvbiBmb3IgaXRcbiAgICBpZiAoaXNDb21wcmVzc2lvbkVuYWJsZWQoY29udGVudFR5cGUpKSB7XG4gICAgICBpbml0aWFsaXplQ29tcHJlc3Npb24oKTtcbiAgICB9XG5cbiAgICByZXNwb25zZVN0YXJ0ZWQgPSB0cnVlO1xuICB9O1xuXG4gIC8vIEhlbHBlciBmdW5jdGlvbiB0byBjb252ZXJ0IGhlYWRlcnMgdG8gdGhlIGV4cGVjdGVkIGZvcm1hdFxuICBjb25zdCBjb252ZXJ0SGVhZGVycyA9IChcbiAgICBoZWFkZXJzVG9Db252ZXJ0OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBzdHJpbmdbXSB8IG51bWJlciB8IHVuZGVmaW5lZD4sXG4gICk6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkPiA9PiB7XG4gICAgY29uc3QgY29udmVydGVkOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoaGVhZGVyc1RvQ29udmVydCkpIHtcbiAgICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgIGNvbnZlcnRlZFtrZXldID0gdmFsdWUuam9pbignLCcpO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICBjb252ZXJ0ZWRba2V5XSA9IFN0cmluZyh2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29udmVydGVkW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY29udmVydGVkO1xuICB9O1xuXG4gIC8qKlxuICAgKiBQaXBlcyBkYXRhIGZyb20gdGhlIGNvbXByZXNzaW9uIHN0cmVhbSAoaWYgZW5hYmxlZCkgb3IgaHR0cFJlc3BvbnNlU3RyZWFtIHRvIGEgZGVzdGluYXRpb25cbiAgICogTm90ZTogVGhpcyBpcyBhIHNpbXBsaWZpZWQgaW1wbGVtZW50YXRpb24gZm9yIEFQSSBjb21wYXRpYmlsaXR5XG4gICAqXG4gICAqIEBwYXJhbSBkZXN0aW5hdGlvbiAtIFRoZSBkZXN0aW5hdGlvbiBzdHJlYW0gdG8gcGlwZSB0b1xuICAgKiBAcmV0dXJucyB0cnVlIGlmIHRoZSBwaXBlIG9wZXJhdGlvbiB3YXMgc3VjY2Vzc2Z1bCwgZmFsc2Ugb3RoZXJ3aXNlXG4gICAqL1xuICBjb25zdCBwaXBlVG9EZXN0aW5hdGlvbiA9IGFzeW5jIChkZXN0aW5hdGlvbjogV3JpdGFibGUpOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgICBpZiAoIWlzU3RyZWFtT3BlbigpKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdbcGlwZVRvRGVzdGluYXRpb25dIENhbm5vdCBwaXBlIC0gc3RyZWFtIGlzIGNsb3NlZCcpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIE5vdGU6IHBpcGVUb0Rlc3RpbmF0aW9uIGlzIGNhbGxlZCBmcm9tIHJlcy5waXBlKCkgd2hpY2ggYWxyZWFkeSBjYWxscyBpbml0aWFsaXplUmVzcG9uc2VcbiAgICAvLyBTbyBjb21wcmVzc2lvbiBzaG91bGQgYWxyZWFkeSBiZSBpbml0aWFsaXplZCBpZiBuZWVkZWRcbiAgICB0cnkge1xuICAgICAgLy8gUGlwZSBmcm9tIGNvbXByZXNzaW9uIHN0cmVhbSBpZiBhdmFpbGFibGUsIG90aGVyd2lzZSBmcm9tIGh0dHBSZXNwb25zZVN0cmVhbVxuICAgICAgY29uc3Qgc291cmNlU3RyZWFtID0gY29tcHJlc3Npb25TdHJlYW0gfHwgaHR0cFJlc3BvbnNlU3RyZWFtO1xuICAgICAgaWYgKCFzb3VyY2VTdHJlYW0pIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignW3BpcGVUb0Rlc3RpbmF0aW9uXSBObyBzb3VyY2Ugc3RyZWFtIGF2YWlsYWJsZScpO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgLSBQaXBlbGluZSBleHBlY3RzIFJlYWRhYmxlLCBidXQgY29tcHJlc3Npb24gc3RyZWFtcyBhcmUgVHJhbnNmb3JtIHN0cmVhbXNcbiAgICAgIGF3YWl0IHBpcGVsaW5lKHNvdXJjZVN0cmVhbSwgZGVzdGluYXRpb24pO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1twaXBlVG9EZXN0aW5hdGlvbl0gUGlwZWxpbmUgZXJyb3I6JywgZXJyb3IpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfTtcblxuICAvLyBAdHMtZXhwZWN0LWVycm9yIC0gU2VydmVyUmVzcG9uc2UgY29uc3RydWN0b3IgZXhwZWN0cyBJbmNvbWluZ01lc3NhZ2UsIGJ1dCB3ZSdyZSBjcmVhdGluZyBhIG1pbmltYWwgbW9ja1xuICBjb25zdCByZXMgPSBuZXcgU2VydmVyUmVzcG9uc2Uoe1xuICAgIG1ldGhvZCxcbiAgfSkgYXMgRXhwcmVzc1Jlc3BvbnNlO1xuXG4gIC8vIE92ZXJyaWRlIHN0YXR1c01lc3NhZ2UgcHJvcGVydHkgdG8gdHJhY2sgY3VzdG9tIHN0YXR1cyBtZXNzYWdlc1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkocmVzLCAnc3RhdHVzTWVzc2FnZScsIHtcbiAgICBnZXQoKSB7XG4gICAgICByZXR1cm4gc3RhdHVzTWVzc2FnZTtcbiAgICB9LFxuICAgIHNldCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICBzdGF0dXNNZXNzYWdlID0gdmFsdWU7XG4gICAgfSxcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgfSk7XG5cbiAgLy8gT3ZlcnJpZGUgaGVhZGVyc1NlbnQgcHJvcGVydHkgdG8gdHJhY2sgd2hlbiBoZWFkZXJzIGFyZSBzZW50XG4gIC8vIFRoaXMgaXMgcmVhZG9ubHkgaW4gdGhlIHBhcmVudCBjbGFzcywgc28gd2Ugb3ZlcnJpZGUgaXQgdG8gYmUgd3JpdGFibGVcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHJlcywgJ2hlYWRlcnNTZW50Jywge1xuICAgIGdldCgpIHtcbiAgICAgIHJldHVybiByZXNwb25zZVN0YXJ0ZWQ7XG4gICAgfSxcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgfSk7XG5cbiAgLy8gT3ZlcnJpZGUgdGhlIGNvcmUgc3RyZWFtaW5nIG1ldGhvZHMgdG8gd29yayB3aXRoIEFXUyBMYW1iZGEgUmVzcG9uc2UgU3RyZWFtaW5nXG4gIC8vIEB0cy1leHBlY3QtZXJyb3IgLSBUeXBlIHNpZ25hdHVyZSBkb2Vzbid0IG1hdGNoIFNlcnZlclJlc3BvbnNlLndyaXRlSGVhZCBleGFjdGx5LCBidXQgb3VyIGltcGxlbWVudGF0aW9uIGlzIGNvbXBhdGlibGVcbiAgcmVzLndyaXRlSGVhZCA9IGZ1bmN0aW9uIChcbiAgICBjb2RlOiBudW1iZXIsXG4gICAgcmVhc29uUGhyYXNlPzogc3RyaW5nIHwgUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgc3RyaW5nW10gfCB1bmRlZmluZWQ+LFxuICAgIGhlYWRlck9iaj86IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkPixcbiAgKSB7XG4gICAgaWYgKHR5cGVvZiByZWFzb25QaHJhc2UgPT09ICdvYmplY3QnKSB7XG4gICAgICBoZWFkZXJPYmogPSByZWFzb25QaHJhc2U7XG4gICAgICByZWFzb25QaHJhc2UgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgc3RhdHVzQ29kZSA9IGNvZGUgfHwgdGhpcy5zdGF0dXNDb2RlIHx8IHN0YXR1c0NvZGU7XG4gICAgdGhpcy5zdGF0dXNDb2RlID0gc3RhdHVzQ29kZTtcblxuICAgIC8vIFNldCBzdGF0dXNNZXNzYWdlIGlmIHByb3ZpZGVkXG4gICAgaWYgKHJlYXNvblBocmFzZSkge1xuICAgICAgc3RhdHVzTWVzc2FnZSA9IHJlYXNvblBocmFzZTtcbiAgICB9XG5cbiAgICBpZiAoaGVhZGVyT2JqKSB7XG4gICAgICBPYmplY3QuYXNzaWduKGhlYWRlcnMsIGhlYWRlck9iaik7XG4gICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhoZWFkZXJPYmopKSB7XG4gICAgICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdGhpcy5zZXRIZWFkZXIoa2V5LCB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBDb2xsZWN0IGFsbCBjdXJyZW50IGhlYWRlcnNcbiAgICBjb25zdCBjdXJyZW50SGVhZGVycyA9IHRoaXMuZ2V0SGVhZGVycygpO1xuICAgIE9iamVjdC5hc3NpZ24oaGVhZGVycywgY3VycmVudEhlYWRlcnMpO1xuXG4gICAgaW5pdGlhbGl6ZVJlc3BvbnNlKHRoaXMpO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG5cbiAgcmVzLndyaXRlID0gZnVuY3Rpb24gKGNodW5rOiBzdHJpbmcgfCBCdWZmZXIgfCBVaW50OEFycmF5KTogYm9vbGVhbiB7XG4gICAgaWYgKCFpc1N0cmVhbU9wZW4oKSkge1xuICAgICAgY29uc29sZS5lcnJvcihgQ2Fubm90IHdyaXRlIC0gc3RyZWFtIGlzIGNsb3NlZGApO1xuICAgICAgZW1pdENsb3NlT25jZSh0aGlzKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpbml0aWFsaXplUmVzcG9uc2UodGhpcyk7XG5cbiAgICBpZiAoIWlzTnVsbE9yVW5kZWZpbmVkKGNodW5rKSkge1xuICAgICAgcmV0dXJuIHdyaXRlQ2h1bmsoY2h1bmspO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTsgLy8gU2VydmVyUmVzcG9uc2Uud3JpdGUgcmV0dXJucyBib29sZWFuXG4gIH07XG5cbiAgY29uc3QgX2ZsdXNoID0gKCkgPT4ge1xuICAgIGlmIChcbiAgICAgIHNob3VsZENvbXByZXNzICYmXG4gICAgICBjb21wcmVzc2lvblN0cmVhbSAmJlxuICAgICAgY29tcHJlc3Npb25TdHJlYW0ud3JpdGFibGUgJiZcbiAgICAgIHR5cGVvZiBjb21wcmVzc2lvblN0cmVhbS5mbHVzaCA9PT0gJ2Z1bmN0aW9uJ1xuICAgICkge1xuICAgICAgY29tcHJlc3Npb25TdHJlYW0uZmx1c2goKTtcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgaHR0cFJlc3BvbnNlU3RyZWFtICYmXG4gICAgICBodHRwUmVzcG9uc2VTdHJlYW0ud3JpdGFibGUgJiZcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgLSBmbHVzaCBkb2Vzbid0IGV4aXN0IG9uIFdyaXRhYmxlLCBidXQgd2UncmUgYWRkaW5nIGl0XG4gICAgICB0eXBlb2YgaHR0cFJlc3BvbnNlU3RyZWFtLmZsdXNoID09PSAnZnVuY3Rpb24nXG4gICAgKSB7XG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIC0gZmx1c2ggZG9lc24ndCBleGlzdCBvbiBXcml0YWJsZSwgYnV0IHdlJ3JlIGFkZGluZyBpdFxuICAgICAgaHR0cFJlc3BvbnNlU3RyZWFtLmZsdXNoKCk7XG4gICAgfVxuICB9O1xuXG4gIGxldCBlbWl0dGVkQ2xvc2UgPSBmYWxzZTtcbiAgY29uc3QgZW1pdENsb3NlT25jZSA9IChyZXNwb25zZTogRXhwcmVzc1Jlc3BvbnNlKSA9PiB7XG4gICAgaWYgKGVtaXR0ZWRDbG9zZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICByZXNwb25zZS5lbWl0KCdjbG9zZScpO1xuICAgIGVtaXR0ZWRDbG9zZSA9IHRydWU7XG4gIH07XG5cbiAgLyoqXG4gICAqIEVuZHMgdGhlIGFwcHJvcHJpYXRlIHN0cmVhbShzKSBhbmQgZW1pdHMgdGhlIGZpbmlzaCBldmVudFxuICAgKiBJZiBjb21wcmVzc2lvbiBpcyBlbmFibGVkLCBlbmRzIHRoZSBjb21wcmVzc2lvbiBzdHJlYW0gd2hpY2ggd2lsbCBhdXRvbWF0aWNhbGx5XG4gICAqIGVuZCBodHRwUmVzcG9uc2VTdHJlYW0gZHVlIHRvIHRoZSBwaXBlIHdpdGggeyBlbmQ6IHRydWUgfVxuICAgKlxuICAgKiBAcGFyYW0gcmVzcG9uc2UgLSBUaGUgRXhwcmVzcyByZXNwb25zZSBvYmplY3QgdG8gZW1pdCBmaW5pc2ggZXZlbnQgb25cbiAgICovXG4gIGNvbnN0IGVuZFN0cmVhbSA9IChyZXNwb25zZTogRXhwcmVzc1Jlc3BvbnNlKTogdm9pZCA9PiB7XG4gICAgY29uc3Qgc3RyZWFtID0gKHNob3VsZENvbXByZXNzICYmIGNvbXByZXNzaW9uU3RyZWFtKSB8fCAoaHR0cFJlc3BvbnNlU3RyZWFtPy53cml0YWJsZSAmJiBodHRwUmVzcG9uc2VTdHJlYW0pO1xuICAgIGlmIChzdHJlYW0pIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIF9mbHVzaCgpO1xuICAgICAgICBzdHJlYW0uZW5kKCk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKGBFcnJvciBlbmRpbmcgc3RyZWFtOmAsIGVycm9yKTtcbiAgICAgICAgcmVzcG9uc2UuZmluaXNoZWQgPSB0cnVlO1xuICAgICAgICBlbWl0Q2xvc2VPbmNlKHJlc3BvbnNlKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5lcnJvcihgQ2Fubm90IGNhbGwgZW5kKCkgLSBzdHJlYW0gaXMgY2xvc2VkYCk7XG4gICAgICAvLyBTdGlsbCBlbWl0IGZpbmlzaCB0byBwcmV2ZW50IGhhbmdpbmdcbiAgICAgIHJlc3BvbnNlLmZpbmlzaGVkID0gdHJ1ZTtcbiAgICAgIGVtaXRDbG9zZU9uY2UocmVzcG9uc2UpO1xuICAgIH1cbiAgfTtcblxuICAvLyBAdHMtZXhwZWN0LWVycm9yIC0gVHlwZSBzaWduYXR1cmUgZG9lc24ndCBtYXRjaCBTZXJ2ZXJSZXNwb25zZS5lbmQgZXhhY3RseSwgYnV0IG91ciBpbXBsZW1lbnRhdGlvbiBpcyBjb21wYXRpYmxlXG4gIHJlcy5lbmQgPSBmdW5jdGlvbiAoY2h1bms/OiBzdHJpbmcgfCBCdWZmZXIgfCBVaW50OEFycmF5KSB7XG4gICAgaWYgKCFpc1N0cmVhbU9wZW4oKSkge1xuICAgICAgY29uc29sZS5lcnJvcihgQ2Fubm90IGVuZCAtIHN0cmVhbSBpcyBhbHJlYWR5IGNsb3NlZGApO1xuICAgICAgZW1pdENsb3NlT25jZSh0aGlzKTtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIGluaXRpYWxpemVSZXNwb25zZSh0aGlzKTtcblxuICAgIC8vIENodW5rcyBjYW4gYmUgZmFsc3kgKCcnLCAwLCBldGMuKSBidXQgbm90IG51bGwgb3IgdW5kZWZpbmVkXG4gICAgaWYgKCFpc051bGxPclVuZGVmaW5lZChjaHVuaykpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHdyaXRlQ2h1bmsoY2h1bmspO1xuICAgICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgICAgLy8gQmFja3ByZXNzdXJlIC0gd2FpdCBmb3IgZHJhaW4gZXZlbnQgYmVmb3JlIGVuZGluZ1xuICAgICAgICBjb25zdCBzdHJlYW1Ub1dhaXQgPSBjb21wcmVzc2lvblN0cmVhbSB8fCBodHRwUmVzcG9uc2VTdHJlYW07XG4gICAgICAgIGlmIChzdHJlYW1Ub1dhaXQpIHtcbiAgICAgICAgICBzdHJlYW1Ub1dhaXQub25jZSgnZHJhaW4nLCAoKSA9PiB7XG4gICAgICAgICAgICBlbmRTdHJlYW0odGhpcyk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZW5kU3RyZWFtKHRoaXMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEVuZCB0aGUgc3RyZWFtKHMpIGFuZCBlbWl0IGZpbmlzaCBldmVudFxuICAgIGVuZFN0cmVhbSh0aGlzKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfTtcblxuICAvLyBBZGQgRXhwcmVzcy1zcGVjaWZpYyBtZXRob2RzIHRoYXQgYXJlbid0IGluIFNlcnZlclJlc3BvbnNlXG4gIHJlcy5zdGF0dXMgPSBmdW5jdGlvbiAoY29kZTogbnVtYmVyLCBtZXNzYWdlPzogc3RyaW5nKSB7XG4gICAgdGhpcy5zdGF0dXNDb2RlID0gY29kZTtcbiAgICBpZiAobWVzc2FnZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnN0YXR1c01lc3NhZ2UgPSBtZXNzYWdlO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfTtcblxuICByZXMuc2V0ID0gZnVuY3Rpb24gKGZpZWxkOiBzdHJpbmcgfCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBzdHJpbmdbXSB8IHVuZGVmaW5lZD4sIHZhbHVlPzogc3RyaW5nIHwgc3RyaW5nW10pIHtcbiAgICBpZiAodHlwZW9mIGZpZWxkID09PSAnb2JqZWN0Jykge1xuICAgICAgZm9yIChjb25zdCBba2V5LCB2YWxdIG9mIE9iamVjdC5lbnRyaWVzKGZpZWxkKSkge1xuICAgICAgICBpZiAodmFsICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICB0aGlzLnNldEhlYWRlcihrZXksIHZhbCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5zZXRIZWFkZXIoZmllbGQsIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG5cbiAgLy8gQHRzLWV4cGVjdC1lcnJvciAtIFR5cGUgc2lnbmF0dXJlIGRvZXNuJ3QgbWF0Y2ggRXhwcmVzc1Jlc3BvbnNlLmFwcGVuZCBleGFjdGx5LCBidXQgb3VyIGltcGxlbWVudGF0aW9uIGlzIGNvbXBhdGlibGVcbiAgcmVzLmFwcGVuZCA9IGZ1bmN0aW9uIChmaWVsZDogc3RyaW5nLCB2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10pOiB0aGlzIHtcbiAgICBjb25zdCBwcmV2VmFsdWUgPSB0aGlzLmdldEhlYWRlcihmaWVsZCk7XG5cbiAgICBpZiAocHJldlZhbHVlKSB7XG4gICAgICAvLyBJZiBoZWFkZXIgYWxyZWFkeSBleGlzdHMsIGFwcGVuZCB0aGUgdmFsdWVcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHByZXZWYWx1ZSkpIHtcbiAgICAgICAgdGhpcy5zZXRIZWFkZXIoZmllbGQsIHByZXZWYWx1ZS5jb25jYXQodmFsdWUgYXMgc3RyaW5nW10pKTtcbiAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgdGhpcy5zZXRIZWFkZXIoZmllbGQsIFtwcmV2VmFsdWUgYXMgc3RyaW5nXS5jb25jYXQodmFsdWUpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2V0SGVhZGVyKGZpZWxkLCBbcHJldlZhbHVlIGFzIHN0cmluZywgdmFsdWVdKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gSWYgaGVhZGVyIGRvZXNuJ3QgZXhpc3QsIGp1c3Qgc2V0IGl0XG4gICAgICB0aGlzLnNldEhlYWRlcihmaWVsZCwgdmFsdWUpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzO1xuICB9O1xuXG4gIHJlcy5mbHVzaEhlYWRlcnMgPSBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKCFyZXNwb25zZVN0YXJ0ZWQpIHtcbiAgICAgIGlmICghaXNTdHJlYW1PcGVuKCkpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignW3Jlcy5mbHVzaEhlYWRlcnNdIENhbm5vdCBmbHVzaCBoZWFkZXJzIC0gc3RyZWFtIGlzIGNsb3NlZCcpO1xuICAgICAgICBlbWl0Q2xvc2VPbmNlKHRoaXMpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH1cblxuICAgICAgLy8gQ29sbGVjdCBhbGwgY3VycmVudCBoZWFkZXJzIGFuZCBzZW5kIHRoZW1cbiAgICAgIC8vIGdldEhlYWRlcnMoKSByZXR1cm5zIGFsbCBoZWFkZXJzIGZyb20gU2VydmVyUmVzcG9uc2UsIGluY2x1ZGluZyB0aG9zZSBzZXQgdmlhIHNldCgpL3NldEhlYWRlcigpXG4gICAgICAvLyBUaGlzIGlzIHRoZSBzb3VyY2Ugb2YgdHJ1dGggZm9yIGFsbCBoZWFkZXJzXG4gICAgICBjb25zdCBjdXJyZW50SGVhZGVycyA9IHRoaXMuZ2V0SGVhZGVycygpO1xuICAgICAgLy8gTWVyZ2Ugd2l0aCBsb2NhbCBoZWFkZXJzIHZhcmlhYmxlIHRvIGluY2x1ZGUgYW55IGhlYWRlcnMgc2V0IHZpYSB3cml0ZUhlYWRcbiAgICAgIC8vIGN1cnJlbnRIZWFkZXJzIHRha2VzIHByZWNlZGVuY2UgYXMgaXQncyB0aGUgYXV0aG9yaXRhdGl2ZSBzb3VyY2UgZnJvbSBTZXJ2ZXJSZXNwb25zZVxuICAgICAgT2JqZWN0LmFzc2lnbihoZWFkZXJzLCBjdXJyZW50SGVhZGVycyk7XG4gICAgfVxuXG4gICAgaW5pdGlhbGl6ZVJlc3BvbnNlKHRoaXMpO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG5cbiAgcmVzLmpzb24gPSBmdW5jdGlvbiAob2JqOiB1bmtub3duKSB7XG4gICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcbiAgICB0aGlzLmVuZChKU09OLnN0cmluZ2lmeShvYmopKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfTtcblxuICByZXMuc2VuZCA9IGZ1bmN0aW9uIChib2R5OiBzdHJpbmcgfCBvYmplY3QpIHtcbiAgICBpZiAodHlwZW9mIGJvZHkgPT09ICdvYmplY3QnICYmIGJvZHkgIT09IG51bGwpIHtcbiAgICAgIHJldHVybiB0aGlzLmpzb24oYm9keSk7XG4gICAgfVxuICAgIC8vIENvbnZlcnQgbm9uLXN0cmluZyB2YWx1ZXMgdG8gc3RyaW5nXG4gICAgY29uc3QgYm9keVN0cmluZyA9IHR5cGVvZiBib2R5ID09PSAnc3RyaW5nJyA/IGJvZHkgOiBTdHJpbmcoYm9keSk7XG4gICAgdGhpcy5lbmQoYm9keVN0cmluZyk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG5cbiAgLy8gQHRzLWV4cGVjdC1lcnJvciAtIFR5cGUgc2lnbmF0dXJlIGRvZXNuJ3QgbWF0Y2ggRXhwcmVzc1Jlc3BvbnNlLnJlZGlyZWN0IGV4YWN0bHksIGJ1dCBvdXIgaW1wbGVtZW50YXRpb24gaXMgY29tcGF0aWJsZVxuICByZXMucmVkaXJlY3QgPSBmdW5jdGlvbiAodXJsOiBzdHJpbmcpIHtcbiAgICB0aGlzLnN0YXR1cygzMDIpO1xuICAgIHRoaXMuc2V0SGVhZGVyKCdMb2NhdGlvbicsIHVybCk7XG4gICAgdGhpcy5lbmQoKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfTtcblxuICAvLyBBZGQgZmx1c2ggbWV0aG9kIGZvciBzdHJlYW1pbmcgcmVzcG9uc2VzIChpbXBvcnRhbnQgZm9yIFJTQylcbiAgLy8gQHRzLWV4cGVjdC1lcnJvciAtIGZsdXNoIGRvZXNuJ3QgZXhpc3Qgb24gRXhwcmVzc1Jlc3BvbnNlIHR5cGUsIGJ1dCB3ZSdyZSBhZGRpbmcgaXRcbiAgcmVzLmZsdXNoID0gZnVuY3Rpb24gKCkge1xuICAgIGlmICghaXNTdHJlYW1PcGVuKCkpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYENhbm5vdCBmbHVzaCAtIHN0cmVhbSBpcyBjbG9zZWRgKTtcbiAgICAgIGVtaXRDbG9zZU9uY2UodGhpcyk7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBpbml0aWFsaXplUmVzcG9uc2UodGhpcyk7XG5cbiAgICAvLyBGbHVzaCB0aGUgY29tcHJlc3Npb24gc3RyZWFtIGlmIGl0IGV4aXN0cyBhbmQgc3VwcG9ydHMgaXRcbiAgICAvLyBUaGlzIGVuc3VyZXMgYW55IGJ1ZmZlcmVkIGNvbXByZXNzZWQgZGF0YSBpcyB3cml0dGVuIGltbWVkaWF0ZWx5XG4gICAgdHJ5IHtcbiAgICAgIF9mbHVzaCgpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBFcnJvciBmbHVzaGluZzpgLCBlcnJvcik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG5cbiAgLy8gVHJhY2sgcGlwZWQgZGVzdGluYXRpb25zIGZvciB1bnBpcGUgc3VwcG9ydFxuICBjb25zdCBwaXBlZERlc3RpbmF0aW9ucyA9IG5ldyBTZXQ8V3JpdGFibGU+KCk7XG5cbiAgLy8gQWRkIHBpcGUgbWV0aG9kIGZvciBzdHJlYW1pbmcgcmVzcG9uc2VzIChjb21tb25seSB1c2VkIGluIEV4cHJlc3MpXG4gIC8vIEB0cy1leHBlY3QtZXJyb3IgLSBUeXBlIHNpZ25hdHVyZSBkb2Vzbid0IG1hdGNoIEV4cHJlc3NSZXNwb25zZS5waXBlIGV4YWN0bHksIGJ1dCBvdXIgaW1wbGVtZW50YXRpb24gaXMgY29tcGF0aWJsZVxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIHJlcy5waXBlID0gZnVuY3Rpb24gKGRlc3RpbmF0aW9uOiBXcml0YWJsZSwgb3B0aW9ucz86IHtlbmQ/OiBib29sZWFufSkge1xuICAgIGlmICghaXNTdHJlYW1PcGVuKCkpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1tyZXMucGlwZV0gQ2Fubm90IHBpcGUgLSBzdHJlYW0gaXMgY2xvc2VkJyk7XG4gICAgICByZXR1cm4gZGVzdGluYXRpb247XG4gICAgfVxuXG4gICAgaW5pdGlhbGl6ZVJlc3BvbnNlKHRoaXMpO1xuXG4gICAgLy8gVHJhY2sgdGhlIGRlc3RpbmF0aW9uIGZvciB1bnBpcGUgc3VwcG9ydFxuICAgIHBpcGVkRGVzdGluYXRpb25zLmFkZChkZXN0aW5hdGlvbik7XG5cbiAgICAvLyBVc2UgYWN0dWFsIE5vZGUuanMgcGlwZWxpbmUgZm9yIHBpcGUgb3BlcmF0aW9uc1xuICAgIHBpcGVUb0Rlc3RpbmF0aW9uKGRlc3RpbmF0aW9uKVxuICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICBwaXBlZERlc3RpbmF0aW9ucy5kZWxldGUoZGVzdGluYXRpb24pO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcignW3Jlcy5waXBlXSBQaXBlbGluZSBlcnJvcjonLCBlcnJvcik7XG4gICAgICAgIHBpcGVkRGVzdGluYXRpb25zLmRlbGV0ZShkZXN0aW5hdGlvbik7XG4gICAgICB9KTtcblxuICAgIHJldHVybiBkZXN0aW5hdGlvbjtcbiAgfTtcblxuICAvLyBBZGQgdW5waXBlIG1ldGhvZCB0byByZW1vdmUgcGlwZSBkZXN0aW5hdGlvbnNcbiAgLy8gQHRzLWV4cGVjdC1lcnJvciAtIHVucGlwZSBkb2Vzbid0IGV4aXN0IG9uIEV4cHJlc3NSZXNwb25zZSB0eXBlLCBidXQgd2UncmUgYWRkaW5nIGl0XG4gIHJlcy51bnBpcGUgPSBmdW5jdGlvbiAoZGVzdGluYXRpb24/OiBXcml0YWJsZSkge1xuICAgIGlmIChkZXN0aW5hdGlvbikge1xuICAgICAgcGlwZWREZXN0aW5hdGlvbnMuZGVsZXRlKGRlc3RpbmF0aW9uKTtcbiAgICAgIC8vIEluIGEgcmVhbCBpbXBsZW1lbnRhdGlvbiwgeW91J2QgbmVlZCB0byBoYW5kbGUgdW5waXBlIG1vcmUgY2FyZWZ1bGx5XG4gICAgICAvLyBGb3Igbm93LCB3ZSBqdXN0IHRyYWNrIGl0XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFVucGlwZSBhbGwgZGVzdGluYXRpb25zXG4gICAgICBwaXBlZERlc3RpbmF0aW9ucy5jbGVhcigpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzO1xuICB9O1xuXG4gIC8vIE1ha2UgcmVzcG9uc2UgZmx1c2hhYmxlIChmbGFnIHVzZWQgYnkgc29tZSBmcmFtZXdvcmtzKVxuICByZXMuZmx1c2hhYmxlID0gdHJ1ZTtcblxuICByZXR1cm4gcmVzO1xufVxuIiwgInZhciBjPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgZD0oYSxiKT0+YyhhLFwibmFtZVwiLHt2YWx1ZTpiLGNvbmZpZ3VyYWJsZTohMH0pO2V4cG9ydHtkIGFzIGF9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y2h1bmstUVdQVklYMlQubWpzLm1hcCIsICIvLyBBVFRSSUJVVElPTjogaHR0cHM6Ly9naXRodWIuY29tL2RvdWdtb3Njcm9wL3NlcnZlcmxlc3MtaHR0cFxuaW1wb3J0IHsgSW5jb21pbmdNZXNzYWdlIH0gZnJvbSAnbm9kZTpodHRwJztcbmltcG9ydCB0eXBlIHsgQWRkcmVzc0luZm8gfSBmcm9tICdub2RlOm5ldCc7XG5pbXBvcnQgdHlwZSB7IFNpbmdsZVZhbHVlSGVhZGVycyB9IGZyb20gJy4uL0B0eXBlcyc7XG5pbXBvcnQgeyBOT19PUCB9IGZyb20gJy4uL2NvcmUnO1xuXG5jb25zdCBIVFRQU19QT1JUID0gNDQzO1xuXG4vKipcbiAqIFRoZSBwcm9wZXJ0aWVzIHRvIGNyZWF0ZSBhIHtAbGluayBTZXJ2ZXJsZXNzUmVxdWVzdH1cbiAqXG4gKiBAYnJlYWRjcnVtYiBOZXR3b3JrIC8gU2VydmVybGVzc1JlcXVlc3RcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZXJ2ZXJsZXNzUmVxdWVzdFByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBIVFRQIE1ldGhvZCBvZiB0aGUgcmVxdWVzdFxuICAgKi9cbiAgbWV0aG9kOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBVUkwgcmVxdWVzdGVkXG4gICAqL1xuICB1cmw6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGhlYWRlcnMgZnJvbSB0aGUgZXZlbnQgc291cmNlXG4gICAqL1xuICBoZWFkZXJzOiBTaW5nbGVWYWx1ZUhlYWRlcnM7XG5cbiAgLyoqXG4gICAqIFRoZSBib2R5IGZyb20gdGhlIGV2ZW50IHNvdXJjZVxuICAgKi9cbiAgYm9keT86IEJ1ZmZlciB8IFVpbnQ4QXJyYXk7XG5cbiAgLyoqXG4gICAqIFRoZSBJUCBBZGRyZXNzIGZyb20gY2FsbGVyXG4gICAqL1xuICByZW1vdGVBZGRyZXNzPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRoZSBjbGFzcyB0aGF0IHJlcHJlc2VudHMgYW4ge0BsaW5rIGh0dHAjSW5jb21pbmdNZXNzYWdlfSBjcmVhdGVkIGJ5IHRoZSBsaWJyYXJ5IHRvIHJlcHJlc2VudCBhbiBhY3R1YWwgcmVxdWVzdCB0byB0aGUgZnJhbWV3b3JrLlxuICpcbiAqIEBicmVhZGNydW1iIE5ldHdvcmsgLyBTZXJ2ZXJsZXNzUmVxdWVzdFxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY2xhc3MgU2VydmVybGVzc1JlcXVlc3QgZXh0ZW5kcyBJbmNvbWluZ01lc3NhZ2Uge1xuICBjb25zdHJ1Y3Rvcih7XG4gICAgbWV0aG9kLFxuICAgIHVybCxcbiAgICBoZWFkZXJzLFxuICAgIGJvZHksXG4gICAgcmVtb3RlQWRkcmVzcyxcbiAgfTogU2VydmVybGVzc1JlcXVlc3RQcm9wcykge1xuICAgIHN1cGVyKHtcbiAgICAgIGVuY3J5cHRlZDogdHJ1ZSxcbiAgICAgIHJlYWRhYmxlOiB0cnVlLCAvLyBjcmVkaXRzIHRvIEBwbmtwIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9Db2RlR2VuaWVBcHAvc2VydmVybGVzcy1leHByZXNzL3B1bGwvNjkyXG4gICAgICByZW1vdGVBZGRyZXNzLFxuICAgICAgYWRkcmVzczogKCkgPT4gKHsgcG9ydDogSFRUUFNfUE9SVCB9KSBhcyBBZGRyZXNzSW5mbyxcbiAgICAgIG9uOiBOT19PUCxcbiAgICAgIHJlbW92ZUxpc3RlbmVyOiBOT19PUCxcbiAgICAgIHJlbW92ZUV2ZW50TGlzdGVuZXI6IE5PX09QLFxuICAgICAgZW5kOiBOT19PUCxcbiAgICAgIGRlc3Ryb3k6IE5PX09QLFxuICAgIH0gYXMgYW55KTtcblxuICAgIHRoaXMuc3RhdHVzQ29kZSA9IDIwMDtcbiAgICB0aGlzLnN0YXR1c01lc3NhZ2UgPSAnT0snO1xuICAgIHRoaXMuY29tcGxldGUgPSB0cnVlO1xuICAgIHRoaXMuaHR0cFZlcnNpb24gPSAnMS4xJztcbiAgICB0aGlzLmh0dHBWZXJzaW9uTWFqb3IgPSAxO1xuICAgIHRoaXMuaHR0cFZlcnNpb25NaW5vciA9IDE7XG4gICAgdGhpcy5tZXRob2QgPSBtZXRob2Q7XG4gICAgdGhpcy5oZWFkZXJzID0gaGVhZGVycztcbiAgICB0aGlzLmJvZHkgPSBib2R5O1xuICAgIHRoaXMudXJsID0gdXJsO1xuICAgIHRoaXMuaXAgPSByZW1vdGVBZGRyZXNzO1xuXG4gICAgdGhpcy5fcmVhZCA9ICgpID0+IHtcbiAgICAgIHRoaXMucHVzaChib2R5KTtcbiAgICAgIHRoaXMucHVzaChudWxsKTtcbiAgICB9O1xuICB9XG5cbiAgaXA/OiBzdHJpbmc7XG4gIGJvZHk/OiBCdWZmZXIgfCBVaW50OEFycmF5O1xufVxuIiwgIi8qKlxuICogRGVmYXVsdCBlbmNvZGluZ3MgdGhhdCBhcmUgdHJlYXRlZCBhcyBiaW5hcnksIHRoZXkgYXJlIGNvbXBhcmVkIHdpdGggdGhlIGBDb250ZW50LUVuY29kaW5nYCBoZWFkZXIuXG4gKlxuICogQGJyZWFkY3J1bWIgQ29yZSAvIENvbnN0YW50c1xuICogQGRlZmF1bHRWYWx1ZSBbJ2d6aXAnLCAnZGVmbGF0ZScsICdiciddXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX0JJTkFSWV9FTkNPRElOR1M6IHN0cmluZ1tdID0gWydnemlwJywgJ2RlZmxhdGUnLCAnYnInXTtcblxuLyoqXG4gKiBEZWZhdWx0IGNvbnRlbnQgdHlwZXMgdGhhdCBhcmUgdHJlYXRlZCBhcyBiaW5hcnksIHRoZXkgYXJlIGNvbXBhcmVkIHdpdGggdGhlIGBDb250ZW50LVR5cGVgIGhlYWRlci5cbiAqXG4gKiBAYnJlYWRjcnVtYiBDb3JlIC8gQ29uc3RhbnRzXG4gKiBAZGVmYXVsdFZhbHVlIFsnaW1hZ2UvcG5nJywgJ2ltYWdlL2pwZWcnLCAnaW1hZ2UvanBnJywgJ2ltYWdlL2F2aWYnLCAnaW1hZ2UvYm1wJywgJ2ltYWdlL3gtcG5nJywgJ2ltYWdlL2dpZicsICdpbWFnZS93ZWJwJywgJ3ZpZGVvL21wNCcsICdhcHBsaWNhdGlvbi9wZGYnXVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9CSU5BUllfQ09OVEVOVF9UWVBFUzogc3RyaW5nW10gPSBbXG4gICdpbWFnZS9wbmcnLFxuICAnaW1hZ2UvanBlZycsXG4gICdpbWFnZS9qcGcnLFxuICAnaW1hZ2UvYXZpZicsXG4gICdpbWFnZS9ibXAnLFxuICAnaW1hZ2UveC1wbmcnLFxuICAnaW1hZ2UvZ2lmJyxcbiAgJ2ltYWdlL3dlYnAnLFxuICAndmlkZW8vbXA0JyxcbiAgJ2FwcGxpY2F0aW9uL3BkZicsXG5dO1xuXG4vKipcbiAqIFR5cGUgYWxpYXMgZm9yIGVtcHR5IHJlc3BvbnNlIGFuZCBjYW4gYmUgdXNlZCBvbiBzb21lIGFkYXB0ZXJzIHdoZW4gdGhlIGFkYXB0ZXIgZG9lcyBub3QgbmVlZCB0byByZXR1cm4gYSByZXNwb25zZS5cbiAqXG4gKiBAYnJlYWRjcnVtYiBDb3JlIC8gQ29uc3RhbnRzXG4gKiBAcHVibGljXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzXG5leHBvcnQgdHlwZSBJRW1wdHlSZXNwb25zZSA9IHt9O1xuXG4vKipcbiAqIENvbnN0YW50IGZvciBlbXB0eSByZXNwb25zZSBhbmQgY2FuIGJlIHVzZWQgb24gc29tZSBhZGFwdGVycyB3aGVuIHRoZSBhZGFwdGVyIGRvZXMgbm90IG5lZWQgdG8gcmV0dXJuIGEgcmVzcG9uc2UuXG4gKlxuICogQGJyZWFkY3J1bWIgQ29yZSAvIENvbnN0YW50c1xuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgRW1wdHlSZXNwb25zZTogSUVtcHR5UmVzcG9uc2UgPSB7fTtcbiIsICIvKipcbiAqIFRoZSB0eXBlIHRoYXQgcmVwcmVzZW50cyB0aGUgb2JqZWN0IHRoYXQgaGFuZGxlcyB0aGUgcmVmZXJlbmNlcyB0byB0aGUgZXZlbnQgY3JlYXRlZCBieSB0aGUgc2VydmVybGVzcyB0cmlnZ2VyIG9yIGNvbnRleHQgY3JlYXRlZCBieSB0aGUgc2VydmVybGVzcyBlbnZpcm9ubWVudC5cbiAqXG4gKiBAYnJlYWRjcnVtYiBDb3JlIC8gQ3VycmVudCBJbnZva2VcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IHR5cGUgQ3VycmVudEludm9rZTxURXZlbnQsIFRDb250ZXh0PiA9IHtcbiAgLyoqXG4gICAqIFRoZSBldmVudCBjcmVhdGVkIGJ5IHRoZSBzZXJ2ZXJsZXNzIHRyaWdnZXJcbiAgICpcbiAgICogQHJlbWFya3MgSXQncyBvbmx5IG51bGwgd2hlbiB5b3UgY2FsbCB7QGxpbmsgZ2V0Q3VycmVudEludm9rZX0gb3V0c2lkZSB0aGlzIGxpYnJhcnkncyBwaXBlbGluZS5cbiAgICovXG4gIGV2ZW50OiBURXZlbnQgfCBudWxsO1xuXG4gIC8qKlxuICAgKiBUaGUgY29udGV4dCBjcmVhdGVkIGJ5IHRoZSBzZXJ2ZXJsZXNzIGVudmlyb25tZW50XG4gICAqXG4gICAqIEByZW1hcmtzIEl0J3Mgb25seSBudWxsIHdoZW4geW91IGNhbGwge0BsaW5rIGdldEN1cnJlbnRJbnZva2V9IG91dHNpZGUgdGhpcyBsaWJyYXJ5J3MgcGlwZWxpbmUuXG4gICAqL1xuICBjb250ZXh0OiBUQ29udGV4dCB8IG51bGw7XG59O1xuXG5jb25zdCBjdXJyZW50SW52b2tlOiBDdXJyZW50SW52b2tlPGFueSwgYW55PiA9IHtcbiAgY29udGV4dDogbnVsbCxcbiAgZXZlbnQ6IG51bGwsXG59O1xuXG4vKipcbiAqIEdldCB0aGUgcmVmZXJlbmNlIHRvIHRoZSBldmVudCBjcmVhdGVkIGJ5IHRoZSBzZXJ2ZXJsZXNzIHRyaWdnZXIgb3IgY29udGV4dCBjcmVhdGVkIGJ5IHRoZSBzZXJ2ZXJsZXNzIGVudmlyb25tZW50LlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBpbXBvcnQgdHlwZSB7IEFMQkV2ZW50LCBDb250ZXh0IH0gZnJvbSAnYXdzLWxhbWJkYSc7XG4gKlxuICogLy8gaW5zaWRlIHRoZSBtZXRob2QgdGhhdCBoYW5kbGVzIHRoZSBhd3MgYWxiIHJlcXVlc3QuXG4gKiBjb25zdCB7IGV2ZW50LCBjb250ZXh0IH0gPSBnZXRDdXJyZW50SW52b2tlPEFMQkV2ZW50LCBDb250ZXh0PigpO1xuICogYGBgXG4gKlxuICogQGJyZWFkY3J1bWIgQ29yZSAvIEN1cnJlbnQgSW52b2tlXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRDdXJyZW50SW52b2tlPFRFdmVudCA9IGFueSwgVENvbnRleHQgPSBhbnk+KCk6IEN1cnJlbnRJbnZva2U8XG4gIFRFdmVudCxcbiAgVENvbnRleHRcbj4ge1xuICByZXR1cm4gY3VycmVudEludm9rZTtcbn1cblxuLyoqXG4gKiBNZXRob2QgdGhhdCBzYXZlcyB0byB0aGUgZXZlbnQgY3JlYXRlZCBieSB0aGUgc2VydmVybGVzcyB0cmlnZ2VyIG9yIGNvbnRleHQgY3JlYXRlZCBieSB0aGUgc2VydmVybGVzcyBlbnZpcm9ubWVudC5cbiAqXG4gKiBAcmVtYXJrcyBUaGlzIG1ldGhvZCBNVVNUIE5PVCBiZSBjYWxsZWQgYnkgeW91LCB0aGlzIG1ldGhvZCBNVVNUIG9ubHkgYmUgdXNlZCBpbnRlcm5hbGx5IGluIHRoaXMgbGlicmFyeS5cbiAqXG4gKiBAcGFyYW0gZXZlbnQgLSBUaGUgZXZlbnQgY3JlYXRlZCBieSB0aGUgc2VydmVybGVzcyB0cmlnZ2VyXG4gKiBAcGFyYW0gY29udGV4dCAtIFRoZSBjb250ZXh0IGNyZWF0ZWQgYnkgdGhlIHNlcnZlcmxlc3MgZW52aXJvbm1lbnRcbiAqXG4gKiBAYnJlYWRjcnVtYiBDb3JlIC8gQ3VycmVudCBJbnZva2VcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNldEN1cnJlbnRJbnZva2U8VEV2ZW50ID0gYW55LCBUQ29udGV4dCA9IGFueT4oe1xuICBldmVudCxcbiAgY29udGV4dCxcbn06IEN1cnJlbnRJbnZva2U8VEV2ZW50LCBUQ29udGV4dD4pIHtcbiAgY3VycmVudEludm9rZS5ldmVudCA9IGV2ZW50O1xuICBjdXJyZW50SW52b2tlLmNvbnRleHQgPSBjb250ZXh0O1xufVxuIiwgIi8qKlxuICogR2V0IHRoZSBldmVudCBib2R5IGFzIGJ1ZmZlciBmcm9tIGJvZHkgc3RyaW5nIHdpdGggY29udGVudCBsZW5ndGhcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgYm9keSA9ICd7fSc7XG4gKiBjb25zdCBbYnVmZmVyLCBjb250ZW50TGVuZ3RoXSA9IGdldEV2ZW50Qm9keUFzQnVmZmVyKGJvZHksIGZhbHNlKTtcbiAqIGNvbnNvbGUubG9nKGJ1ZmZlcik7XG4gKiAvLyA8QnVmZmVyIDdiIDdkPlxuICogY29uc29sZS5sb2coY29udGVudExlbmd0aCk7XG4gKiAvLyAyXG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0gYm9keSAtIFRoZSBib2R5IHN0cmluZyB0aGF0IGNhbiBiZSBlbmNvZGVkIG9yIG5vdFxuICogQHBhcmFtIGlzQmFzZTY0RW5jb2RlZCAtIFRlbGxzIGlmIGJvZHkgc3RyaW5nIGlzIGVuY29kZWQgaW4gYmFzZTY0XG4gKlxuICogQGJyZWFkY3J1bWIgQ29yZVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RXZlbnRCb2R5QXNCdWZmZXIoXG4gIGJvZHk6IHN0cmluZyxcbiAgaXNCYXNlNjRFbmNvZGVkOiBib29sZWFuLFxuKTogW2JvZHk6IEJ1ZmZlciwgY29udGVudExlbmd0aDogbnVtYmVyXSB7XG4gIGNvbnN0IGVuY29kaW5nOiBCdWZmZXJFbmNvZGluZyA9IGlzQmFzZTY0RW5jb2RlZCA/ICdiYXNlNjQnIDogJ3V0ZjgnO1xuXG4gIGNvbnN0IGJ1ZmZlciA9IEJ1ZmZlci5mcm9tKGJvZHksIGVuY29kaW5nKTtcbiAgY29uc3QgY29udGVudExlbmd0aCA9IEJ1ZmZlci5ieXRlTGVuZ3RoKGJ1ZmZlciwgZW5jb2RpbmcpO1xuXG4gIHJldHVybiBbYnVmZmVyLCBjb250ZW50TGVuZ3RoXTtcbn1cbiIsICIvLyNyZWdpb24gSW1wb3J0c1xuXG5pbXBvcnQgdHlwZSB7IEJvdGhWYWx1ZUhlYWRlcnMgfSBmcm9tICcuLi9AdHlwZXMnO1xuXG4vLyNlbmRyZWdpb25cblxuLyoqXG4gKiBUcmFuc2Zvcm0gYSBoZWFkZXIgbWFwIGFuZCBtYWtlIHN1cmUgdGhlIHZhbHVlIGlzIG5vdCBhbiBhcnJheVxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBoZWFkZXJzID0geyAnYWNjZXB0LWVuY29kaW5nJzogJ2d6aXAnLCAnYWNjZXB0LWxhbmd1YWdlJzogWydlbi1VUycsICdlbjtxPTAuOSddIH07XG4gKiBjb25zdCBmbGF0dGVuZWRIZWFkZXJzID0gZ2V0RmxhdHRlbmVkSGVhZGVyc01hcChoZWFkZXJzLCAnLCcsIHRydWUpO1xuICogY29uc29sZS5sb2coZmxhdHRlbmVkSGVhZGVycyk7XG4gKiAvLyB7ICdhY2NlcHQtZW5jb2RpbmcnOiAnZ3ppcCcsICdhY2NlcHQtbGFuZ3VhZ2UnOiAnZW4tVVMsZW47cT0wLjknIH1cbiAqIGBgYFxuICpcbiAqIEBwYXJhbSBoZWFkZXJzTWFwIC0gVGhlIGluaXRpYWwgaGVhZGVyc1xuICogQHBhcmFtIHNlcGFyYXRvciAtIFRoZSBzZXBhcmF0b3IgdXNlZCB3aGVuIHdlIGpvaW4gdGhlIGFycmF5IG9mIGhlYWRlcidzIHZhbHVlXG4gKiBAcGFyYW0gbG93ZXJDYXNlS2V5IC0gU2hvdWxkIHB1dCBhbGwga2V5cyBpbiBsb3dlcmNhc2VcbiAqXG4gKiBAYnJlYWRjcnVtYiBDb3JlIC8gSGVhZGVyc1xuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RmxhdHRlbmVkSGVhZGVyc01hcChcbiAgaGVhZGVyc01hcDogQm90aFZhbHVlSGVhZGVycyxcbiAgc2VwYXJhdG9yOiBzdHJpbmcgPSAnLCcsXG4gIGxvd2VyQ2FzZUtleTogYm9vbGVhbiA9IGZhbHNlLFxuKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhoZWFkZXJzTWFwKS5yZWR1Y2UoKGFjYywgaGVhZGVyS2V5KSA9PiB7XG4gICAgY29uc3QgbmV3S2V5ID0gbG93ZXJDYXNlS2V5ID8gaGVhZGVyS2V5LnRvTG93ZXJDYXNlKCkgOiBoZWFkZXJLZXk7XG4gICAgY29uc3QgaGVhZGVyVmFsdWUgPSBoZWFkZXJzTWFwW2hlYWRlcktleV07XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheShoZWFkZXJWYWx1ZSkpIGFjY1tuZXdLZXldID0gaGVhZGVyVmFsdWUuam9pbihzZXBhcmF0b3IpO1xuICAgIGVsc2UgYWNjW25ld0tleV0gPSAoaGVhZGVyVmFsdWUgPz8gJycpICsgJyc7XG5cbiAgICByZXR1cm4gYWNjO1xuICB9LCB7fSk7XG59XG5cbi8qKlxuICogVHJhbnNmb3JtcyBhIGhlYWRlciBtYXAgaW50byBhIG11bHRpLXZhbHVlIG1hcCBoZWFkZXIuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGhlYWRlcnMgPSB7ICdhY2NlcHQtZW5jb2RpbmcnOiAnZ3ppcCcsICdjb25uZWN0aW9uJzogWydrZWVwLWFsaXZlJ10gfTtcbiAqIGNvbnN0IG11bHRpVmFsdWVIZWFkZXJzID0gZ2V0TXVsdGlWYWx1ZUhlYWRlcnNNYXAoaGVhZGVycyk7XG4gKiBjb25zb2xlLmxvZyhtdWx0aVZhbHVlSGVhZGVycyk7XG4gKiAvLyB7ICdhY2NlcHQtZW5jb2RpbmcnOiBbJ2d6aXAnXSwgJ2Nvbm5lY3Rpb24nOiBbJ2tlZXAtYWxpdmUnXSB9XG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0gaGVhZGVyc01hcCAtIFRoZSBpbml0aWFsIGhlYWRlcnNcbiAqXG4gKiBAYnJlYWRjcnVtYiBDb3JlIC8gSGVhZGVyc1xuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TXVsdGlWYWx1ZUhlYWRlcnNNYXAoXG4gIGhlYWRlcnNNYXA6IEJvdGhWYWx1ZUhlYWRlcnMsXG4pOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4ge1xuICByZXR1cm4gT2JqZWN0LmtleXMoaGVhZGVyc01hcCkucmVkdWNlKChhY2MsIGhlYWRlcktleSkgPT4ge1xuICAgIGNvbnN0IGhlYWRlclZhbHVlID0gaGVhZGVyc01hcFtoZWFkZXJLZXldO1xuXG4gICAgYWNjW2hlYWRlcktleS50b0xvd2VyQ2FzZSgpXSA9IEFycmF5LmlzQXJyYXkoaGVhZGVyVmFsdWUpXG4gICAgICA/IGhlYWRlclZhbHVlLm1hcChTdHJpbmcpXG4gICAgICA6IFtTdHJpbmcoaGVhZGVyVmFsdWUpXTtcblxuICAgIHJldHVybiBhY2M7XG4gIH0sIHt9KTtcbn1cblxuLyoqXG4gKiBUaGUgd3JhcHBlciB0aGF0IGhvbGRzIHRoZSBpbmZvcm1hdGlvbiBhYm91dCBzaW5nbGUgdmFsdWUgaGVhZGVycyBhbmQgY29va2llc1xuICpcbiAqIEBicmVhZGNydW1iIENvcmUgLyBIZWFkZXJzXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCB0eXBlIEZsYXR0ZW5lZEhlYWRlcnNBbmRDb29raWVzID0ge1xuICAvKipcbiAgICogSnVzdCB0aGUgc2luZ2xlIHZhbHVlIGhlYWRlcnNcbiAgICovXG4gIGhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5cbiAgLyoqXG4gICAqIFRoZSBsaXN0IG9mIGNvb2tpZXNcbiAgICovXG4gIGNvb2tpZXM6IHN0cmluZ1tdO1xufTtcblxuLyoqXG4gKiBUcmFuc2Zvcm1zIGEgaGVhZGVyIG1hcCBpbnRvIGEgc2luZ2xlIHZhbHVlIGhlYWRlcnMgYW5kIGNvb2tpZXNcbiAqXG4gKiBAcGFyYW0gaGVhZGVyc01hcCAtIFRoZSBpbml0aWFsIGhlYWRlcnNcbiAqXG4gKiBAYnJlYWRjcnVtYiBDb3JlIC8gSGVhZGVyc1xuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RmxhdHRlbmVkSGVhZGVyc01hcEFuZENvb2tpZXMoXG4gIGhlYWRlcnNNYXA6IEJvdGhWYWx1ZUhlYWRlcnMsXG4pOiBGbGF0dGVuZWRIZWFkZXJzQW5kQ29va2llcyB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhoZWFkZXJzTWFwKS5yZWR1Y2UoXG4gICAgKGFjYywgaGVhZGVyS2V5KSA9PiB7XG4gICAgICBjb25zdCBoZWFkZXJWYWx1ZSA9IGhlYWRlcnNNYXBbaGVhZGVyS2V5XTtcbiAgICAgIGNvbnN0IGxvd2VySGVhZGVyS2V5ID0gaGVhZGVyS2V5LnRvTG93ZXJDYXNlKCk7XG5cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGhlYWRlclZhbHVlKSkge1xuICAgICAgICBpZiAobG93ZXJIZWFkZXJLZXkgIT09ICdzZXQtY29va2llJylcbiAgICAgICAgICBhY2MuaGVhZGVyc1toZWFkZXJLZXldID0gaGVhZGVyVmFsdWUuam9pbignLCcpO1xuICAgICAgICBlbHNlIGFjYy5jb29raWVzLnB1c2goLi4uaGVhZGVyVmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGxvd2VySGVhZGVyS2V5ID09PSAnc2V0LWNvb2tpZScgJiYgaGVhZGVyVmFsdWUgIT09IHVuZGVmaW5lZClcbiAgICAgICAgICBhY2MuY29va2llcy5wdXNoKGhlYWRlclZhbHVlID8/ICcnKTtcbiAgICAgICAgZWxzZSBhY2MuaGVhZGVyc1toZWFkZXJLZXldID0gU3RyaW5nKGhlYWRlclZhbHVlID8/ICcnKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LFxuICAgIHtcbiAgICAgIGNvb2tpZXM6IFtdLFxuICAgICAgaGVhZGVyczoge30sXG4gICAgfSBhcyBGbGF0dGVuZWRIZWFkZXJzQW5kQ29va2llcyxcbiAgKTtcbn1cblxuLyoqXG4gKiBQYXJzZSBIVFRQIFJhdyBIZWFkZXJzXG4gKiBBdHRyaWJ1dGlvbiB0byB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL2tlc2xhL3BhcnNlLWhlYWRlcnMvYmxvYi9tYXN0ZXIvcGFyc2UtaGVhZGVycy5qc31cbiAqXG4gKiBAcGFyYW0gaGVhZGVycyAtIFRoZSByYXcgaGVhZGVyc1xuICpcbiAqIEBicmVhZGNydW1iIENvcmUgLyBIZWFkZXJzXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUhlYWRlcnMoXG4gIGhlYWRlcnM6IHN0cmluZyxcbik6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IHN0cmluZ1tdPiB7XG4gIGlmICghaGVhZGVycykgcmV0dXJuIHt9O1xuXG4gIGNvbnN0IHJlc3VsdCA9IHt9O1xuICBjb25zdCBoZWFkZXJzQXJyID0gaGVhZGVycy50cmltKCkuc3BsaXQoJ1xcbicpO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgaGVhZGVyc0Fyci5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IHJvdyA9IGhlYWRlcnNBcnJbaV07XG4gICAgY29uc3QgaW5kZXggPSByb3cuaW5kZXhPZignOicpO1xuICAgIGNvbnN0IGtleSA9IHJvdy5zbGljZSgwLCBpbmRleCkudHJpbSgpLnRvTG93ZXJDYXNlKCk7XG4gICAgY29uc3QgdmFsdWUgPSByb3cuc2xpY2UoaW5kZXggKyAxKS50cmltKCk7XG5cbiAgICBpZiAodHlwZW9mIHJlc3VsdFtrZXldID09PSAndW5kZWZpbmVkJykgcmVzdWx0W2tleV0gPSB2YWx1ZTtcbiAgICBlbHNlIGlmIChBcnJheS5pc0FycmF5KHJlc3VsdFtrZXldKSkgcmVzdWx0W2tleV0ucHVzaCh2YWx1ZSk7XG4gICAgZWxzZSByZXN1bHRba2V5XSA9IFtyZXN1bHRba2V5XSwgdmFsdWVdO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGtleXNUb0xvd2VyY2FzZTxUIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4+KFxuICBvYmo6IFQsXG4pOiB7IFtLIGluIGtleW9mIFQgYXMgTG93ZXJjYXNlPHN0cmluZyAmIEs+XTogVFtLXSB9IHtcbiAgY29uc3QgcmVzdWx0OiBhbnkgPSB7fTtcbiAgZm9yIChjb25zdCBbaywgdl0gb2YgT2JqZWN0LmVudHJpZXMob2JqKSkgcmVzdWx0W2sudG9Mb3dlckNhc2UoKV0gPSB2O1xuXG4gIHJldHVybiByZXN1bHQgYXMgeyBbSyBpbiBrZXlvZiBUIGFzIExvd2VyY2FzZTxzdHJpbmcgJiBLPl06IFRbS10gfTtcbn1cbiIsICIvLyBBVFRSSUJVVElPTjogaHR0cHM6Ly9naXRodWIuY29tL2RvdWdtb3Njcm9wL3NlcnZlcmxlc3MtaHR0cFxuXG4vLyNyZWdpb24gSW1wb3J0c1xuXG5pbXBvcnQgdHlwZSB7IEJpbmFyeVNldHRpbmdzLCBCb3RoVmFsdWVIZWFkZXJzIH0gZnJvbSAnLi4vQHR5cGVzJztcblxuLy8jZW5kcmVnaW9uXG5cbi8qKlxuICogVGhlIGZ1bmN0aW9uIHRoYXQgZGV0ZXJtaW5lcyBieSB0aGUgY29udGVudCBlbmNvZGluZyB3aGV0aGVyIHRoZSByZXNwb25zZSBzaG91bGQgYmUgdHJlYXRlZCBhcyBiaW5hcnlcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgaGVhZGVycyA9IHsgJ2NvbnRlbnQtZW5jb2RpbmcnOiAnZ3ppcCcgfTtcbiAqIGNvbnN0IGlzQmluYXJ5ID0gaXNDb250ZW50RW5jb2RpbmdCaW5hcnkoaGVhZGVycywgWydnemlwJ10pO1xuICogY29uc29sZS5sb2coaXNCaW5hcnkpO1xuICogLy8gdHJ1ZVxuICogYGBgXG4gKlxuICogQHBhcmFtIGhlYWRlcnMgLSBUaGUgaGVhZGVycyBvZiB0aGUgcmVzcG9uc2VcbiAqIEBwYXJhbSBiaW5hcnlFbmNvZGluZ1R5cGVzIC0gVGhlIGxpc3Qgb2YgY29udGVudCBlbmNvZGluZ3MgdGhhdCB3aWxsIGJlIHRyZWF0ZWQgYXMgYmluYXJ5XG4gKlxuICogQGJyZWFkY3J1bWIgQ29yZSAvIGlzQmluYXJ5XG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0NvbnRlbnRFbmNvZGluZ0JpbmFyeShcbiAgaGVhZGVyczogQm90aFZhbHVlSGVhZGVycyxcbiAgYmluYXJ5RW5jb2RpbmdUeXBlczogc3RyaW5nW10sXG4pOiBib29sZWFuIHtcbiAgbGV0IGNvbnRlbnRFbmNvZGluZ3MgPSBoZWFkZXJzWydjb250ZW50LWVuY29kaW5nJ107XG5cbiAgaWYgKCFjb250ZW50RW5jb2RpbmdzKSByZXR1cm4gZmFsc2U7XG5cbiAgaWYgKCFBcnJheS5pc0FycmF5KGNvbnRlbnRFbmNvZGluZ3MpKVxuICAgIGNvbnRlbnRFbmNvZGluZ3MgPSBjb250ZW50RW5jb2RpbmdzLnNwbGl0KCcsJyk7XG5cbiAgcmV0dXJuIGNvbnRlbnRFbmNvZGluZ3Muc29tZSh2YWx1ZSA9PlxuICAgIGJpbmFyeUVuY29kaW5nVHlwZXMuaW5jbHVkZXModmFsdWUudHJpbSgpKSxcbiAgKTtcbn1cblxuLyoqXG4gKiBUaGUgZnVuY3Rpb24gdGhhdCByZXR1cm5zIHRoZSBjb250ZW50IHR5cGUgb2YgaGVhZGVyc1xuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBoZWFkZXJzID0geyAnY29udGVudC10eXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH07XG4gKiBjb25zdCBjb250ZW50VHlwZSA9IGdldENvbnRlbnRUeXBlKGhlYWRlcnMpO1xuICogY29uc29sZS5sb2coY29udGVudFR5cGUpO1xuICogLy8gYXBwbGljYXRpb24vanNvblxuICogYGBgXG4gKlxuICogQHBhcmFtIGhlYWRlcnMgLSBUaGUgaGVhZGVycyBvZiB0aGUgcmVzcG9uc2VcbiAqXG4gKiBAYnJlYWRjcnVtYiBDb3JlIC8gaXNCaW5hcnlcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldENvbnRlbnRUeXBlKGhlYWRlcnM6IEJvdGhWYWx1ZUhlYWRlcnMpOiBzdHJpbmcge1xuICBjb25zdCBjb250ZW50VHlwZUhlYWRlclJhdyA9IGhlYWRlcnNbJ2NvbnRlbnQtdHlwZSddO1xuICBjb25zdCBjb250ZW50VHlwZUhlYWRlciA9IEFycmF5LmlzQXJyYXkoY29udGVudFR5cGVIZWFkZXJSYXcpXG4gICAgPyBjb250ZW50VHlwZUhlYWRlclJhd1swXSB8fCAnJ1xuICAgIDogY29udGVudFR5cGVIZWFkZXJSYXcgfHwgJyc7XG5cbiAgaWYgKCFjb250ZW50VHlwZUhlYWRlclJhdykgcmV0dXJuICcnO1xuXG4gIC8vIG9ubHkgY29tcGFyZSBtaW1lIHR5cGU7IGlnbm9yZSBlbmNvZGluZyBwYXJ0XG4gIGNvbnN0IGNvbnRlbnRUeXBlU3RhcnQgPSBjb250ZW50VHlwZUhlYWRlci5pbmRleE9mKCc7Jyk7XG5cbiAgaWYgKGNvbnRlbnRUeXBlU3RhcnQgPT09IC0xKSByZXR1cm4gY29udGVudFR5cGVIZWFkZXI7XG5cbiAgcmV0dXJuIGNvbnRlbnRUeXBlSGVhZGVyLnNsaWNlKDAsIGNvbnRlbnRUeXBlU3RhcnQpO1xufVxuXG4vKipcbiAqIFRoZSBmdW5jdGlvbiB0aGF0IGRldGVybWluZXMgYnkgdGhlIGNvbnRlbnQgdHlwZSB3aGV0aGVyIHRoZSByZXNwb25zZSBzaG91bGQgYmUgdHJlYXRlZCBhcyBiaW5hcnlcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgaGVhZGVycyA9IHsgJ2NvbnRlbnQtdHlwZSc6ICdpbWFnZS9wbmcnIH07XG4gKiBjb25zdCBpc0JpbmFyeSA9IGlzQ29udGVudFR5cGVCaW5hcnkoaGVhZGVycywgbmV3IE1hcChbWydpbWFnZS9wbmcnLCB0cnVlXV0pKTtcbiAqIGNvbnNvbGUubG9nKGlzQmluYXJ5KTtcbiAqIC8vIHRydWVcbiAqIGBgYFxuICpcbiAqIEBwYXJhbSBoZWFkZXJzIC0gVGhlIGhlYWRlcnMgb2YgdGhlIHJlc3BvbnNlXG4gKiBAcGFyYW0gYmluYXJ5Q29udGVudFR5cGVzIC0gVGhlIGxpc3Qgb2YgY29udGVudCB0eXBlcyB0aGF0IHdpbGwgYmUgdHJlYXRlZCBhcyBiaW5hcnlcbiAqXG4gKiBAYnJlYWRjcnVtYiBDb3JlIC8gaXNCaW5hcnlcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQ29udGVudFR5cGVCaW5hcnkoXG4gIGhlYWRlcnM6IEJvdGhWYWx1ZUhlYWRlcnMsXG4gIGJpbmFyeUNvbnRlbnRUeXBlczogc3RyaW5nW10sXG4pIHtcbiAgY29uc3QgY29udGVudFR5cGUgPSBnZXRDb250ZW50VHlwZShoZWFkZXJzKTtcblxuICBpZiAoIWNvbnRlbnRUeXBlKSByZXR1cm4gZmFsc2U7XG5cbiAgcmV0dXJuIGJpbmFyeUNvbnRlbnRUeXBlcy5pbmNsdWRlcyhjb250ZW50VHlwZS50cmltKCkpO1xufVxuXG4vKipcbiAqIFRoZSBmdW5jdGlvbiB1c2VkIHRvIGRldGVybWluZSBmcm9tIHRoZSBoZWFkZXJzIGFuZCB0aGUgYmluYXJ5IHNldHRpbmdzIGlmIGEgcmVzcG9uc2Ugc2hvdWxkIGJlIGVuY29kZWQgb3Igbm90XG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGhlYWRlcnMgPSB7ICdjb250ZW50LXR5cGUnOiAnaW1hZ2UvcG5nJywgJ2NvbnRlbnQtZW5jb2RpbmcnOiAnZ3ppcCcgfTtcbiAqIGNvbnN0IGlzQ29udGVudEJpbmFyeSA9IGlzQmluYXJ5KGhlYWRlcnMsIHsgY29udGVudEVuY29kaW5nczogWydnemlwJ10sIGNvbnRlbnRUeXBlczogWydpbWFnZS9wbmcnXSB9KTtcbiAqIGNvbnNvbGUubG9nKGlzQ29udGVudEJpbmFyeSk7XG4gKiAvLyB0cnVlXG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0gaGVhZGVycyAtIFRoZSBoZWFkZXJzIG9mIHRoZSByZXNwb25zZVxuICogQHBhcmFtIGJpbmFyeVNldHRpbmdzIC0gVGhlIHNldHRpbmdzIGZvciB0aGUgdmFsaWRhdGlvblxuICpcbiAqIEBicmVhZGNydW1iIENvcmUgLyBpc0JpbmFyeVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gaXNCaW5hcnkoXG4gIGhlYWRlcnM6IEJvdGhWYWx1ZUhlYWRlcnMsXG4gIGJpbmFyeVNldHRpbmdzOiBCaW5hcnlTZXR0aW5ncyxcbik6IGJvb2xlYW4ge1xuICBpZiAoJ2lzQmluYXJ5JyBpbiBiaW5hcnlTZXR0aW5ncykge1xuICAgIGlmIChiaW5hcnlTZXR0aW5ncy5pc0JpbmFyeSA9PT0gZmFsc2UpIHJldHVybiBmYWxzZTtcblxuICAgIHJldHVybiBiaW5hcnlTZXR0aW5ncy5pc0JpbmFyeShoZWFkZXJzKTtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgaXNDb250ZW50RW5jb2RpbmdCaW5hcnkoaGVhZGVycywgYmluYXJ5U2V0dGluZ3MuY29udGVudEVuY29kaW5ncykgfHxcbiAgICBpc0NvbnRlbnRUeXBlQmluYXJ5KGhlYWRlcnMsIGJpbmFyeVNldHRpbmdzLmNvbnRlbnRUeXBlcylcbiAgKTtcbn1cbiIsICIvKipcbiAqIE5vIG9wZXJhdGlvbiBmdW5jdGlvbiBpcyB1c2VkIHdoZW4gd2UgbmVlZCB0byBwYXNzIGEgZnVuY3Rpb24sIGJ1dCB3ZSBkb24ndCB3YW50IHRvIHNwZWNpZnkgYW55IGJlaGF2aW9yLlxuICpcbiAqIEBicmVhZGNydW1iIENvcmVcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IE5PX09QOiAoLi4uYXJnczogYW55W10pID0+IGFueSA9ICgpID0+IHZvaWQgMDtcbiIsICJpbXBvcnQgeyBOT19PUCB9IGZyb20gJy4vbm8tb3AnO1xuXG4vKipcbiAqIFRoZSB0eXBlIHJlcHJlc2VudGluZyB0aGUgcG9zc2libGUgbG9nIGxldmVscyB0byBjaG9vc2UgZnJvbS5cbiAqXG4gKiBAYnJlYWRjcnVtYiBDb3JlIC8gTG9nZ2VyXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCB0eXBlIExvZ0xldmVscyA9XG4gIHwgJ2RlYnVnJ1xuICB8ICd2ZXJib3NlJ1xuICB8ICdpbmZvJ1xuICB8ICd3YXJuJ1xuICB8ICdlcnJvcidcbiAgfCAnbm9uZSc7XG5cbi8qKlxuICogVGhlIG9wdGlvbnMgdG8gY3VzdG9taXplIHtAbGluayBJTG9nZ2VyfVxuICpcbiAqIEBicmVhZGNydW1iIENvcmUgLyBMb2dnZXJcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IHR5cGUgTG9nZ2VyT3B0aW9ucyA9IHtcbiAgLyoqXG4gICAqIFNlbGVjdCB0aGUgbG9nIGxldmVsLCB7QGxpbmsgTG9nTGV2ZWxzIHwgc2VlIG1vcmV9LlxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIGVycm9yXG4gICAqL1xuICBsZXZlbDogTG9nTGV2ZWxzO1xufTtcblxuLyoqXG4gKiBUaGUgbG9nIGZ1bmN0aW9uIHVzZWQgaW4gYW55IGxldmVsLlxuICpcbiAqIEBicmVhZGNydW1iIENvcmUgLyBMb2dnZXJcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IHR5cGUgTG9nZ2VyRk4gPSAobWVzc2FnZTogYW55LCAuLi5hZGRpdGlvbmFsOiBhbnlbXSkgPT4gdm9pZDtcblxuLyoqXG4gKiBUaGUgaW50ZXJmYWNlIHJlcHJlc2VudGluZyB0aGUgbG9nZ2VyLCB5b3UgY2FuIHByb3ZpZGUgYSBjdXN0b20gbG9nZ2VyIGJ5IGltcGxlbWVudGluZyB0aGlzIGludGVyZmFjZS5cbiAqXG4gKiBAYnJlYWRjcnVtYiBDb3JlIC8gTG9nZ2VyXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCB0eXBlIElMb2dnZXIgPSBSZWNvcmQ8RXhjbHVkZTxMb2dMZXZlbHMsICdub25lJz4sIExvZ2dlckZOPjtcblxuLyoqXG4gKiBUaGUgc3ltYm9sIHVzZWQgdG8gY2hlY2sgYWdhaW5zdCBhbiBJTG9nZ2VyIGluc3RhY2UgdG8gdmVyaWZ5IGlmIHRoYXQgSUxvZ2dlciB3YXMgY3JlYXRlZCBieSB0aGlzIGxpYnJhcnlcbiAqXG4gKiBAYnJlYWRjcnVtYiBDb3JlIC8gTG9nZ2VyXG4gKiBAcHVibGljXG4gKi9cbmNvbnN0IEludGVybmFsTG9nZ2VyU3ltYm9sID0gU3ltYm9sKCdJbnRlcm5hbExvZ2dlcicpO1xuXG5jb25zdCBsb2dMZXZlbHM6IFJlY29yZDxcbiAgTG9nTGV2ZWxzLFxuICBbbGV2ZWw6IExvZ0xldmVscywgY29uc29sZU1ldGhvZDoga2V5b2YgQ29uc29sZV1bXVxuPiA9IHtcbiAgZGVidWc6IFtcbiAgICBbJ2RlYnVnJywgJ2RlYnVnJ10sXG4gICAgWyd2ZXJib3NlJywgJ2RlYnVnJ10sXG4gICAgWydpbmZvJywgJ2luZm8nXSxcbiAgICBbJ2Vycm9yJywgJ2Vycm9yJ10sXG4gICAgWyd3YXJuJywgJ3dhcm4nXSxcbiAgXSxcbiAgdmVyYm9zZTogW1xuICAgIFsndmVyYm9zZScsICdkZWJ1ZyddLFxuICAgIFsnaW5mbycsICdpbmZvJ10sXG4gICAgWydlcnJvcicsICdlcnJvciddLFxuICAgIFsnd2FybicsICd3YXJuJ10sXG4gIF0sXG4gIGluZm86IFtcbiAgICBbJ2luZm8nLCAnaW5mbyddLFxuICAgIFsnZXJyb3InLCAnZXJyb3InXSxcbiAgICBbJ3dhcm4nLCAnd2FybiddLFxuICBdLFxuICB3YXJuOiBbXG4gICAgWyd3YXJuJywgJ3dhcm4nXSxcbiAgICBbJ2Vycm9yJywgJ2Vycm9yJ10sXG4gIF0sXG4gIGVycm9yOiBbWydlcnJvcicsICdlcnJvciddXSxcbiAgbm9uZTogW10sXG59O1xuXG5jb25zdCBsYXp5UHJpbnQgPSAodmFsdWU6ICgpID0+IGFueSB8IHVua25vd24pID0+IHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJykgcmV0dXJuIHZhbHVlKCk7XG5cbiAgcmV0dXJuIHZhbHVlO1xufTtcblxuY29uc3QgcHJpbnQgPVxuICAoZm46IHN0cmluZykgPT5cbiAgKG1lc3NhZ2U6IGFueSwgLi4uYWRkaXRpb25hbDogKCgpID0+IGFueSlbXSkgPT5cbiAgICBjb25zb2xlW2ZuXShtZXNzYWdlLCAuLi5hZGRpdGlvbmFsLm1hcChsYXp5UHJpbnQpKTtcblxuLyoqXG4gKiBUaGUgbWV0aG9kIHVzZWQgdG8gY3JlYXRlIGEgc2ltcGxlIGxvZ2dlciBpbnN0YW5jZSB0byB1c2UgaW4gdGhpcyBsaWJyYXJ5LlxuICpcbiAqIEByZW1hcmtzIEJlaGluZCB0aGUgc2NlbmVzLCB0aGlzIHNpbXBsZSBsb2dnZXIgc2VuZHMgdGhlIG1lc3NhZ2UgdG8gdGhlIGBjb25zb2xlYCBtZXRob2RzLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBsb2dnZXIgPSBjcmVhdGVEZWZhdWx0TG9nZ2VyKCk7XG4gKlxuICogbG9nZ2VyLmVycm9yKCdBbiBlcnJvciBoYXBwZW5zLicpO1xuICogLy8gQW4gZXJyb3IgaGFwcGVucy5cbiAqIGBgYFxuICpcbiAqIEBwYXJhbSBsZXZlbCAtIFNlbGVjdCB0aGUgbGV2ZWwgb2YgdGhlIGxvZ1xuICpcbiAqIEBicmVhZGNydW1iIENvcmUgLyBMb2dnZXJcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZURlZmF1bHRMb2dnZXIoXG4gIHsgbGV2ZWwgfTogTG9nZ2VyT3B0aW9ucyA9IHsgbGV2ZWw6ICdlcnJvcicgfSxcbik6IElMb2dnZXIge1xuICBjb25zdCBsZXZlbHMgPSBsb2dMZXZlbHNbbGV2ZWxdO1xuXG4gIGlmICghbGV2ZWxzKSB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgbG9nIGxldmVsJyk7XG5cbiAgY29uc3QgbG9nZ2VyID0ge1xuICAgIFtJbnRlcm5hbExvZ2dlclN5bWJvbF06IHRydWUsXG4gICAgZXJyb3I6IE5PX09QLFxuICAgIGRlYnVnOiBOT19PUCxcbiAgICBpbmZvOiBOT19PUCxcbiAgICB2ZXJib3NlOiBOT19PUCxcbiAgICB3YXJuOiBOT19PUCxcbiAgfSBhcyBJTG9nZ2VyO1xuXG4gIGZvciAoY29uc3QgW2xldmVsLCBjb25zb2xlTWV0aG9kXSBvZiBsZXZlbHMpXG4gICAgbG9nZ2VyW2xldmVsXSA9IHByaW50KGNvbnNvbGVNZXRob2QpO1xuXG4gIHJldHVybiBsb2dnZXI7XG59XG5cbi8qKlxuICogVGhlIG1ldGhvZCB1c2VkIHRvIGNoY2sgaWYgbG9nZ2VyIHdhcyBjcmVhdGVkIGJ5IHRoaXMgbGlicmFyeSwgb3IgaXQgd2FzIGRlZmluZWQgYnkgdGhlIHVzZXIuXG4gKlxuICogQHBhcmFtIGxvZ2dlciAtIFRoZSBpbnN0YW5jZSBvZiB0aGUgbG9nZ2VyIHRvIGNoZWNrXG4gKlxuICogQGJyZWFkY3J1bWIgQ29yZSAvIExvZ2dlclxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gaXNJbnRlcm5hbExvZ2dlcihsb2dnZXI6IElMb2dnZXIpOiBib29sZWFuIHtcbiAgcmV0dXJuICEhbG9nZ2VyW0ludGVybmFsTG9nZ2VyU3ltYm9sXTtcbn1cbiIsICIvKipcbiAqIFJldHVybiB0aGUgZGVmYXVsdFZhbHVlIHdoZXRoZXIgdGhlIHZhbHVlIGlzIHVuZGVmaW5lZCwgb3RoZXJ3aXNlLCByZXR1cm4gdGhlIHZhbHVlLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCB2YWx1ZTEgPSBnZXREZWZhdWx0SWZVbmRlZmluZWQodW5kZWZpbmVkLCB0cnVlKTtcbiAqIGNvbnN0IHZhbHVlMiA9IGdldERlZmF1bHRJZlVuZGVmaW5lZChmYWxzZSwgdHJ1ZSk7XG4gKlxuICogY29uc29sZS5sb2codmFsdWUxKTtcbiAqIC8vIHRydWVcbiAqIGNvbnNvbGUubG9nKHZhbHVlMik7XG4gKiAvLyBmYWxzZVxuICogYGBgXG4gKlxuICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIHRvIGJlIGNoZWNrZWRcbiAqIEBwYXJhbSBkZWZhdWx0VmFsdWUgLSBUaGUgZGVmYXVsdCB2YWx1ZSB3aGVuIHZhbHVlIGlzIHVuZGVmaW5lZFxuICpcbiAqIEBicmVhZGNydW1iIENvcmVcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldERlZmF1bHRJZlVuZGVmaW5lZDxUPihcbiAgdmFsdWU6IFQgfCB1bmRlZmluZWQsXG4gIGRlZmF1bHRWYWx1ZTogVCxcbik6IFQge1xuICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcblxuICByZXR1cm4gdmFsdWU7XG59XG4iLCAiLyoqXG4gKiBUcmFuc2Zvcm0gdGhlIHBhdGggYW5kIGEgbWFwIG9mIHF1ZXJ5IHBhcmFtcyB0byBhIHN0cmluZyB3aXRoIGZvcm1hdHRlZCBxdWVyeSBwYXJhbXNcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgcGF0aCA9ICcvcGV0cy9zZWFyY2gnO1xuICogY29uc3QgcXVlcnlQYXJhbXMgPSB7IGJhdGF0YTogdW5kZWZpbmVkLCBwZXRUeXBlOiBbICdkb2cnLCAnZmlzaCcgXSB9O1xuICogY29uc3QgcmVzdWx0ID0gZ2V0UGF0aFdpdGhRdWVyeVN0cmluZ1BhcmFtcyhwYXRoLCBxdWVyeVBhcmFtcyk7XG4gKiBjb25zb2xlLmxvZyhyZXN1bHQpO1xuICogLy8gL3BldHMvc2VhcmNoP2JhdGF0YT0mcGV0VHlwZT1kb2cmcGV0VHlwZT1maXNoXG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0gcGF0aCAtIFRoZSBwYXRoXG4gKiBAcGFyYW0gcXVlcnlQYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1zXG4gKlxuICogQGJyZWFkY3J1bWIgQ29yZSAvIFBhdGhcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFBhdGhXaXRoUXVlcnlTdHJpbmdQYXJhbXMoXG4gIHBhdGg6IHN0cmluZyxcbiAgcXVlcnlQYXJhbXM6XG4gICAgfCBzdHJpbmdcbiAgICB8IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkPlxuICAgIHwgdW5kZWZpbmVkXG4gICAgfCBudWxsLFxuKTogc3RyaW5nIHtcbiAgaWYgKFN0cmluZyhxdWVyeVBhcmFtcyB8fCAnJykubGVuZ3RoID09PSAwKSByZXR1cm4gcGF0aDtcblxuICBpZiAodHlwZW9mIHF1ZXJ5UGFyYW1zID09PSAnc3RyaW5nJykgcmV0dXJuIGAke3BhdGh9PyR7cXVlcnlQYXJhbXN9YDtcblxuICBjb25zdCBxdWVyeVBhcmFtc1N0cmluZyA9IGdldFF1ZXJ5UGFyYW1zU3RyaW5nRnJvbVJlY29yZChxdWVyeVBhcmFtcyk7XG5cbiAgaWYgKCFxdWVyeVBhcmFtc1N0cmluZykgcmV0dXJuIHBhdGg7XG5cbiAgcmV0dXJuIGAke3BhdGh9PyR7cXVlcnlQYXJhbXNTdHJpbmd9YDtcbn1cblxuLyoqXG4gKiBNYXAgcXVlcnkgcGFyYW1zIHRvIGEgc3RyaW5nIHdpdGggZm9ybWF0dGVkIHF1ZXJ5IHBhcmFtc1xuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBxdWVyeVBhcmFtcyA9IHsgYmF0YXRhOiB1bmRlZmluZWQsIHBldFR5cGU6IFsgJ2RvZycsICdmaXNoJyBdIH07XG4gKiBjb25zdCByZXN1bHQgPSBnZXRRdWVyeVBhcmFtc1N0cmluZ0Zyb21SZWNvcmQocXVlcnlQYXJhbXMpO1xuICogY29uc29sZS5sb2cocmVzdWx0KTtcbiAqIC8vIGJhdGF0YT0mcGV0VHlwZT1kb2cmcGV0VHlwZT1maXNoXG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0gcXVlcnlQYXJhbXNSZWNvcmQgLSBUaGUgcXVlcnkgcGFyYW1zIHJlY29yZFxuICpcbiAqIEBicmVhZGNydW1iIENvcmUgLyBQYXRoXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRRdWVyeVBhcmFtc1N0cmluZ0Zyb21SZWNvcmQoXG4gIHF1ZXJ5UGFyYW1zUmVjb3JkOlxuICAgIHwgUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgc3RyaW5nW10gfCB1bmRlZmluZWQ+XG4gICAgfCB1bmRlZmluZWRcbiAgICB8IG51bGwsXG4pOiBzdHJpbmcge1xuICBjb25zdCBzZWFyY2hQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKCk7XG5cbiAgY29uc3QgbXVsdGlWYWx1ZUhlYWRlcnNFbnRyaWVzOiBbc3RyaW5nLCBzdHJpbmcgfCBzdHJpbmdbXSB8IHVuZGVmaW5lZF1bXSA9XG4gICAgT2JqZWN0LmVudHJpZXMocXVlcnlQYXJhbXNSZWNvcmQgfHwge30pO1xuXG4gIGlmIChtdWx0aVZhbHVlSGVhZGVyc0VudHJpZXMubGVuZ3RoID09PSAwKSByZXR1cm4gJyc7XG5cbiAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgbXVsdGlWYWx1ZUhlYWRlcnNFbnRyaWVzKSB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgc2VhcmNoUGFyYW1zLmFwcGVuZChrZXksIHZhbHVlIHx8ICcnKTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgYXJyYXlWYWx1ZSBvZiB2YWx1ZSkgc2VhcmNoUGFyYW1zLmFwcGVuZChrZXksIGFycmF5VmFsdWUpO1xuICB9XG5cbiAgcmV0dXJuIHNlYXJjaFBhcmFtcy50b1N0cmluZygpO1xufVxuXG4vKipcbiAqIFR5cGUgb2YgdGhlIGZ1bmN0aW9uIHRvIHN0cmlwIGJhc2UgcGF0aFxuICpcbiAqIEBicmVhZGNydW1iIENvcmUgLyBQYXRoXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCB0eXBlIFN0cmlwQmFzZVBhdGhGbiA9IChwYXRoOiBzdHJpbmcpID0+IHN0cmluZztcblxuY29uc3QgTk9PUEJhc2VQYXRoOiBTdHJpcEJhc2VQYXRoRm4gPSAocGF0aDogc3RyaW5nKSA9PiBwYXRoO1xuXG4vKipcbiAqIEdldCB0aGUgc3RyaXAgYmFzZSBwYXRoIGZ1bmN0aW9uXG4gKlxuICogQHBhcmFtIGJhc2VQYXRoIC0gVGhlIGJhc2UgcGF0aFxuICpcbiAqIEBicmVhZGNydW1iIENvcmUgLyBQYXRoXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFN0cmlwQmFzZVBhdGgoXG4gIGJhc2VQYXRoOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4pOiBTdHJpcEJhc2VQYXRoRm4ge1xuICBpZiAoIWJhc2VQYXRoKSByZXR1cm4gTk9PUEJhc2VQYXRoO1xuXG4gIGNvbnN0IGxlbmd0aCA9IGJhc2VQYXRoLmxlbmd0aDtcblxuICByZXR1cm4gKHBhdGg6IHN0cmluZykgPT4ge1xuICAgIGlmIChwYXRoLnN0YXJ0c1dpdGgoYmFzZVBhdGgpKVxuICAgICAgcmV0dXJuIHBhdGguc2xpY2UocGF0aC5pbmRleE9mKGJhc2VQYXRoKSArIGxlbmd0aCwgcGF0aC5sZW5ndGgpIHx8ICcvJztcblxuICAgIHJldHVybiBwYXRoO1xuICB9O1xufVxuIiwgIi8vI3JlZ2lvbiBJbXBvcnRzXG5cbmltcG9ydCB7IFJlYWRhYmxlLCBXcml0YWJsZSB9IGZyb20gJ25vZGU6c3RyZWFtJztcblxuLy8jZW5kcmVnaW9uXG5cbi8qKlxuICogQ2hlY2sgaWYgc3RyZWFtIGFscmVhZHkgZW5kZWRcbiAqXG4gKiBAcGFyYW0gc3RyZWFtIC0gVGhlIHN0cmVhbVxuICpcbiAqIEBicmVhZGNydW1iIENvcmUgLyBTdHJlYW1cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzU3RyZWFtRW5kZWQoc3RyZWFtOiBSZWFkYWJsZSB8IFdyaXRhYmxlKTogYm9vbGVhbiB7XG4gIGlmICgncmVhZGFibGVFbmRlZCcgaW4gc3RyZWFtICYmIHN0cmVhbS5yZWFkYWJsZUVuZGVkKSByZXR1cm4gdHJ1ZTtcblxuICBpZiAoJ3dyaXRhYmxlRW5kZWQnIGluIHN0cmVhbSAmJiBzdHJlYW0ud3JpdGFibGVFbmRlZCkgcmV0dXJuIHRydWU7XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG4vKipcbiAqIFdhaXQgYXN5bmNocm9ub3VzIHRoZSBzdHJlYW0gdG8gY29tcGxldGVcbiAqXG4gKiBAcGFyYW0gc3RyZWFtIC0gVGhlIHN0cmVhbVxuICpcbiAqIEBicmVhZGNydW1iIENvcmUgLyBTdHJlYW1cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdhaXRGb3JTdHJlYW1Db21wbGV0ZTxUU3RyZWFtIGV4dGVuZHMgUmVhZGFibGUgfCBXcml0YWJsZT4oXG4gIHN0cmVhbTogVFN0cmVhbSxcbik6IFByb21pc2U8VFN0cmVhbT4ge1xuICBpZiAoaXNTdHJlYW1FbmRlZChzdHJlYW0pKSByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHN0cmVhbSk7XG5cbiAgcmV0dXJuIG5ldyBQcm9taXNlPFRTdHJlYW0+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAvLyBSZWFkaW5nIHRoZSB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL25vZGVqcy9ub2RlL2Jsb2IvdjEyLjIyLjkvbGliL2V2ZW50cy5qcyNMMjYyIHwgZW1pdCBzb3VyY2UgY29kZX0sXG4gICAgLy8gaXQncyBhbG1vc3QgaW1wb3NzaWJsZSB0byBjb21wbGV0ZSBiZWluZyBjYWxsZWQgdHdpY2UgYmVjYXVzZSB0aGUgZW1pdCBmdW5jdGlvbiBydW5zIHN5bmNocm9ub3VzbHkgYW5kIHJlbW92ZXMgdGhlIG90aGVyIGxpc3RlbmVycyxcbiAgICAvLyBidXQgSSdsbCBsZWF2ZSBpdCBhdCB0aGF0IGJlY2F1c2UgSSBkaWRuJ3Qgd3JpdGUgdGhhdCBjb2RlLCBzbyBJIGNvdWxkbid0IGZpZ3VyZSBvdXQgd2hhdCB0aGUgYXV0aG9yIHRob3VnaHQgd2hlbiBoZSB3cm90ZSB0aGlzLlxuICAgIGxldCBpc0NvbXBsZXRlID0gZmFsc2U7XG5cbiAgICBmdW5jdGlvbiBjb21wbGV0ZShlcnI6IGFueSkge1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgIGlmIChpc0NvbXBsZXRlKSByZXR1cm47XG5cbiAgICAgIGlzQ29tcGxldGUgPSB0cnVlO1xuXG4gICAgICBzdHJlYW0ucmVtb3ZlTGlzdGVuZXIoJ2Vycm9yJywgY29tcGxldGUpO1xuICAgICAgc3RyZWFtLnJlbW92ZUxpc3RlbmVyKCdlbmQnLCBjb21wbGV0ZSk7XG4gICAgICBzdHJlYW0ucmVtb3ZlTGlzdGVuZXIoJ2ZpbmlzaCcsIGNvbXBsZXRlKTtcblxuICAgICAgaWYgKGVycikgcmVqZWN0KGVycik7XG4gICAgICBlbHNlIHJlc29sdmUoc3RyZWFtKTtcbiAgICB9XG5cbiAgICBzdHJlYW0ub25jZSgnZXJyb3InLCBjb21wbGV0ZSk7XG4gICAgc3RyZWFtLm9uY2UoJ2VuZCcsIGNvbXBsZXRlKTtcbiAgICBzdHJlYW0ub25jZSgnZmluaXNoJywgY29tcGxldGUpO1xuICB9KTtcbn1cbiIsICIvLyBBVFRSSUJVVElPTjogaHR0cHM6Ly9naXRodWIuY29tL2RvdWdtb3Njcm9wL3NlcnZlcmxlc3MtaHR0cFxuaW1wb3J0IHsgSW5jb21pbmdNZXNzYWdlLCBTZXJ2ZXJSZXNwb25zZSB9IGZyb20gJ25vZGU6aHR0cCc7XG5pbXBvcnQgdHlwZSB7IFNvY2tldCB9IGZyb20gJ25vZGU6bmV0JztcbmltcG9ydCB7IE5PX09QIH0gZnJvbSAnLi4vY29yZSc7XG5pbXBvcnQgeyBnZXRTdHJpbmcgfSBmcm9tICcuL3V0aWxzJztcblxuY29uc3QgaGVhZGVyRW5kID0gJ1xcclxcblxcclxcbic7XG5jb25zdCBlbmRDaHVua2VkID0gJzBcXHJcXG5cXHJcXG4nO1xuXG5jb25zdCBCT0RZID0gU3ltYm9sKCdSZXNwb25zZSBib2R5Jyk7XG5jb25zdCBIRUFERVJTID0gU3ltYm9sKCdSZXNwb25zZSBoZWFkZXJzJyk7XG5cbmZ1bmN0aW9uIGFkZERhdGEoc3RyZWFtOiBTZXJ2ZXJsZXNzUmVzcG9uc2UsIGRhdGE6IFVpbnQ4QXJyYXkgfCBzdHJpbmcpIHtcbiAgaWYgKFxuICAgIEJ1ZmZlci5pc0J1ZmZlcihkYXRhKSB8fFxuICAgIHR5cGVvZiBkYXRhID09PSAnc3RyaW5nJyB8fFxuICAgIGRhdGEgaW5zdGFuY2VvZiBVaW50OEFycmF5XG4gIClcbiAgICBzdHJlYW1bQk9EWV0ucHVzaChCdWZmZXIuZnJvbShkYXRhKSk7XG4gIGVsc2UgdGhyb3cgbmV3IEVycm9yKGByZXNwb25zZS53cml0ZSgpIG9mIHVuZXhwZWN0ZWQgdHlwZTogJHt0eXBlb2YgZGF0YX1gKTtcbn1cblxuLyoqXG4gKiBUaGUgcHJvcGVydGllcyB0byBjcmVhdGUgYSB7QGxpbmsgU2VydmVybGVzc1Jlc3BvbnNlfS5cbiAqXG4gKiBAYnJlYWRjcnVtYiBOZXR3b3JrIC8gU2VydmVybGVzc1Jlc3BvbnNlXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VydmVybGVzc1Jlc3BvbnNlUHJvcHMge1xuICAvKipcbiAgICogVGhlIEhUVFAgTWV0aG9kIGZyb20gcmVxdWVzdFxuICAgKi9cbiAgbWV0aG9kPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRoZSBjbGFzcyB0aGF0IHJlcHJlc2VudHMgYSByZXNwb25zZSBpbnN0YW5jZSB1c2VkIHRvIHNlbmQgdG8gdGhlIGZyYW1ld29yayBhbmQgd2FpdCB1bnRpbCB0aGUgZnJhbWV3b3JrIGZpbmlzaGVzIHByb2Nlc3NpbmcgdGhlIHJlcXVlc3QuXG4gKiBPbmNlIGl0J3MgaGFwcGVucywgd2UgdXNlIHRoZSBwcm9wZXJ0aWVzIGZyb20gdGhpcyByZXNwb25zZSB0byBidWlsdCB0aGUgcmVzcG9uc2UgdG8gdGhlIGNsb3VkLlxuICpcbiAqIEBicmVhZGNydW1iIE5ldHdvcmsgLyBTZXJ2ZXJsZXNzUmVzcG9uc2VcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNsYXNzIFNlcnZlcmxlc3NSZXNwb25zZSBleHRlbmRzIFNlcnZlclJlc3BvbnNlIHtcbiAgY29uc3RydWN0b3IoeyBtZXRob2QgfTogU2VydmVybGVzc1Jlc3BvbnNlUHJvcHMpIHtcbiAgICBzdXBlcih7IG1ldGhvZCB9IGFzIGFueSk7XG5cbiAgICB0aGlzW0JPRFldID0gW107XG4gICAgdGhpc1tIRUFERVJTXSA9IHt9O1xuXG4gICAgdGhpcy51c2VDaHVua2VkRW5jb2RpbmdCeURlZmF1bHQgPSBmYWxzZTtcbiAgICB0aGlzLmNodW5rZWRFbmNvZGluZyA9IGZhbHNlO1xuICAgIHRoaXMuX2hlYWRlciA9ICcnO1xuXG4gICAgLy8gdGhpcyBpZ25vcmUgaXMgdXNlZCBiZWNhdXNlIEkgbmVlZCB0byBpZ25vcmUgdGhlc2Ugd3JpdGUgY2FsbHM6XG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL25vZGVqcy9ub2RlL2Jsb2IvbWFpbi9saWIvX2h0dHBfb3V0Z29pbmcuanMjTDkzNC1MOTM1XG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL25vZGVqcy9ub2RlL2Jsb2IvbWFpbi9saWIvX2h0dHBfb3V0Z29pbmcuanMjTDkzN1xuICAgIGxldCB3cml0ZXNUb0lnbm9yZSA9IDE7XG5cbiAgICBjb25zdCBzb2NrZXQ6IFBhcnRpYWw8U29ja2V0PiAmIHsgX3dyaXRhYmxlU3RhdGU6IGFueSB9ID0ge1xuICAgICAgX3dyaXRhYmxlU3RhdGU6IHt9LFxuICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICBvbjogTk9fT1AsXG4gICAgICByZW1vdmVMaXN0ZW5lcjogTk9fT1AsXG4gICAgICBkZXN0cm95OiBOT19PUCxcbiAgICAgIGNvcms6IE5PX09QLFxuICAgICAgdW5jb3JrOiBOT19PUCxcbiAgICAgIHdyaXRlOiAoXG4gICAgICAgIGRhdGE6IFVpbnQ4QXJyYXkgfCBzdHJpbmcsXG4gICAgICAgIGVuY29kaW5nPzogc3RyaW5nIHwgbnVsbCB8ICgoKSA9PiB2b2lkKSxcbiAgICAgICAgY2I/OiAoKSA9PiB2b2lkLFxuICAgICAgKTogYW55ID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiBlbmNvZGluZyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIGNiID0gZW5jb2Rpbmc7XG4gICAgICAgICAgZW5jb2RpbmcgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuX2hlYWRlciA9PT0gJycgfHwgdGhpcy5fd3JvdGVIZWFkZXIpIHtcbiAgICAgICAgICBpZiAoIXRoaXMuY2h1bmtlZEVuY29kaW5nKSBhZGREYXRhKHRoaXMsIGRhdGEpO1xuICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaWYgKHdyaXRlc1RvSWdub3JlID4gMCkgd3JpdGVzVG9JZ25vcmUtLTtcbiAgICAgICAgICAgIGVsc2UgaWYgKGRhdGEgIT09IGVuZENodW5rZWQpIHtcbiAgICAgICAgICAgICAgYWRkRGF0YSh0aGlzLCBkYXRhKTtcbiAgICAgICAgICAgICAgd3JpdGVzVG9JZ25vcmUgPSAzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBzdHJpbmcgPSBnZXRTdHJpbmcoZGF0YSk7XG4gICAgICAgICAgY29uc3QgaW5kZXggPSBzdHJpbmcuaW5kZXhPZihoZWFkZXJFbmQpO1xuXG4gICAgICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICAgICAgY29uc3QgcmVtYWluZGVyID0gc3RyaW5nLnNsaWNlKGluZGV4ICsgaGVhZGVyRW5kLmxlbmd0aCk7XG5cbiAgICAgICAgICAgIGlmIChyZW1haW5kZXIgJiYgIXRoaXMuY2h1bmtlZEVuY29kaW5nKSBhZGREYXRhKHRoaXMsIHJlbWFpbmRlcik7XG5cbiAgICAgICAgICAgIHRoaXMuX3dyb3RlSGVhZGVyID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIGNiID09PSAnZnVuY3Rpb24nKSBjYigpO1xuICAgICAgfSxcbiAgICB9O1xuXG4gICAgdGhpcy5hc3NpZ25Tb2NrZXQoc29ja2V0IGFzIHVua25vd24gYXMgU29ja2V0KTtcbiAgfVxuXG4gIF9oZWFkZXI6IHN0cmluZztcbiAgX2hlYWRlcnM/OiBSZWNvcmQ8YW55LCBhbnk+O1xuICBfd3JvdGVIZWFkZXI/OiBib29sZWFuO1xuXG4gIFtCT0RZXTogYW55W107XG4gIFtIRUFERVJTXTogUmVjb3JkPGFueSwgYW55PjtcblxuICBnZXQgaGVhZGVycygpOiBSZWNvcmQ8YW55LCBhbnk+IHtcbiAgICByZXR1cm4gdGhpc1tIRUFERVJTXTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tKHJlczogSW5jb21pbmdNZXNzYWdlKSB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBuZXcgU2VydmVybGVzc1Jlc3BvbnNlKHsgbWV0aG9kOiByZXMubWV0aG9kIH0pO1xuXG4gICAgcmVzcG9uc2Uuc3RhdHVzQ29kZSA9IHJlcy5zdGF0dXNDb2RlIHx8IDA7XG4gICAgcmVzcG9uc2VbSEVBREVSU10gPSByZXMuaGVhZGVycztcbiAgICByZXNwb25zZVtCT0RZXSA9IChyZXMgYXMgYW55KS5ib2R5ID8gW0J1ZmZlci5mcm9tKChyZXMgYXMgYW55KS5ib2R5KV0gOiBbXTtcbiAgICByZXNwb25zZS5lbmQoKTtcblxuICAgIHJldHVybiByZXNwb25zZTtcbiAgfVxuXG4gIHN0YXRpYyBib2R5KHJlczogU2VydmVybGVzc1Jlc3BvbnNlKTogQnVmZmVyIHtcbiAgICByZXR1cm4gQnVmZmVyLmNvbmNhdChyZXNbQk9EWV0pO1xuICB9XG5cbiAgc3RhdGljIGhlYWRlcnMocmVzOiBTZXJ2ZXJsZXNzUmVzcG9uc2UpIHtcbiAgICBjb25zdCBoZWFkZXJzID0gcmVzLmdldEhlYWRlcnMoKTtcblxuICAgIHJldHVybiBPYmplY3QuYXNzaWduKGhlYWRlcnMsIHJlc1tIRUFERVJTXSk7XG4gIH1cblxuICBvdmVycmlkZSBzZXRIZWFkZXIoXG4gICAga2V5OiBzdHJpbmcsXG4gICAgdmFsdWU6IG51bWJlciB8IHN0cmluZyB8IHJlYWRvbmx5IHN0cmluZ1tdLFxuICApOiBhbnkge1xuICAgIGlmICh0aGlzLl93cm90ZUhlYWRlcikgdGhpc1tIRUFERVJTXVtrZXldID0gdmFsdWU7XG4gICAgZWxzZSBzdXBlci5zZXRIZWFkZXIoa2V5LCB2YWx1ZSk7XG4gIH1cblxuICBvdmVycmlkZSB3cml0ZUhlYWQoXG4gICAgc3RhdHVzQ29kZTogbnVtYmVyLFxuICAgIHN0YXR1c01lc3NhZ2U/OiBzdHJpbmcgfCBhbnkgfCBhbnlbXSxcbiAgICBvYmo/OiBhbnkgfCBhbnlbXSxcbiAgKTogYW55IHtcbiAgICBjb25zdCBoZWFkZXJzT2JqT3JBcnJheSA9XG4gICAgICB0eXBlb2Ygc3RhdHVzTWVzc2FnZSA9PT0gJ3N0cmluZycgPyBvYmogOiBzdGF0dXNNZXNzYWdlO1xuXG4gICAgY29uc3QgYXJyYXlIZWFkZXJzID0gQXJyYXkuaXNBcnJheShoZWFkZXJzT2JqT3JBcnJheSlcbiAgICAgID8gaGVhZGVyc09iak9yQXJyYXlcbiAgICAgIDogW2hlYWRlcnNPYmpPckFycmF5IHx8IHt9XTtcblxuICAgIGZvciAoY29uc3QgaGVhZGVycyBvZiBhcnJheUhlYWRlcnMpIHtcbiAgICAgIGZvciAoY29uc3QgbmFtZSBpbiBoZWFkZXJzKSB7XG4gICAgICAgIHRoaXMuc2V0SGVhZGVyKG5hbWUsIGhlYWRlcnNbbmFtZV0hKTtcblxuICAgICAgICBpZiAoIXRoaXMuX3dyb3RlSGVhZGVyKSB7XG4gICAgICAgICAgLy8gd2Ugb25seSBuZWVkIHRvIGluaXRpYXRlIHN1cGVyLmhlYWRlcnMgb25jZVxuICAgICAgICAgIC8vIHdyaXRlSGVhZCB3aWxsIGFkZCB0aGUgb3RoZXIgaGVhZGVycyBpdHNlbGZcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmNhbGxOYXRpdmVXcml0ZUhlYWQoc3RhdHVzQ29kZSwgc3RhdHVzTWVzc2FnZSwgb2JqKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJIHVzZSBpZ25vcmUgaGVyZSBiZWNhdXNlIGluIG5vZGVqcyAxMi54LCBzdGF0dXNNZXNzYWdlIGNhbiBiZSBzdHJpbmcgfCBPdXRnb2luZ0h0dHBIZWFkZXJzXG4gICAqIEJ1dCBpbiBub2RlanMgXFw+PTE0LngsIHN0YXR1c01lc3NhZ2UgY2FuIGFsc28gYmUgT3V0Z29pbmdIdHRwSGVhZGVyc1tdXG4gICAqIEkgdGFrZSBjYXJlIG9mIHRoZXNlIGNhc2VzIGFib3ZlLCBidXQgaGVyZSBJIGNhbid0IGhhbmRsZSBpdCB3ZWxsLCBzbyBJIGdpdmUgdXBcbiAgICogbm9kZWpzIDEyLnggcmVmOiBodHRwczovL2dpdGh1Yi5jb20vRGVmaW5pdGVseVR5cGVkL0RlZmluaXRlbHlUeXBlZC9ibG9iL21hc3Rlci90eXBlcy9ub2RlL3YxMi9odHRwLmQudHMjTDIyOVxuICAgKiBub2RlanMgMTQueCByZWY6IGh0dHBzOi8vZ2l0aHViLmNvbS9EZWZpbml0ZWx5VHlwZWQvRGVmaW5pdGVseVR5cGVkL2Jsb2IvbWFzdGVyL3R5cGVzL25vZGUvdjE0L2h0dHAuZC50cyNMMjYzXG4gICAqL1xuICBwcm90ZWN0ZWQgY2FsbE5hdGl2ZVdyaXRlSGVhZChcbiAgICBzdGF0dXNDb2RlOiBudW1iZXIsXG4gICAgc3RhdHVzTWVzc2FnZT86IHN0cmluZyB8IGFueSB8IGFueVtdLFxuICAgIG9iaj86IGFueSB8IGFueVtdLFxuICApOiB0aGlzIHtcbiAgICByZXR1cm4gc3VwZXIud3JpdGVIZWFkKHN0YXR1c0NvZGUsIHN0YXR1c01lc3NhZ2UsIG9iaik7XG4gIH1cbn1cbiIsICIvKipcbiAqIEdldCB0aGUgZGF0YSBmcm9tIGEgYnVmZmVyLCBzdHJpbmcsIG9yIFVpbnQ4QXJyYXlcbiAqXG4gKiBAYnJlYWRjcnVtYiBOZXR3b3JrXG4gKiBAcGFyYW0gZGF0YSAtIFRoZSBkYXRhIHRoYXQgd2FzIHdyaXR0ZW4gaW5zaWRlIHRoZSBzdHJlYW1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFN0cmluZyhkYXRhOiBCdWZmZXIgfCBzdHJpbmcgfCB1bmtub3duKSB7XG4gIGlmIChCdWZmZXIuaXNCdWZmZXIoZGF0YSkpIHJldHVybiBkYXRhLnRvU3RyaW5nKCd1dGY4Jyk7XG4gIGVsc2UgaWYgKHR5cGVvZiBkYXRhID09PSAnc3RyaW5nJykgcmV0dXJuIGRhdGE7XG4gIGVsc2UgaWYgKGRhdGEgaW5zdGFuY2VvZiBVaW50OEFycmF5KSByZXR1cm4gbmV3IFRleHREZWNvZGVyKCkuZGVjb2RlKGRhdGEpO1xuICBlbHNlIHRocm93IG5ldyBFcnJvcihgcmVzcG9uc2Uud3JpdGUoKSBvZiB1bmV4cGVjdGVkIHR5cGU6ICR7dHlwZW9mIGRhdGF9YCk7XG59XG4iLCAiaW1wb3J0IHsgU2VydmVyUmVzcG9uc2UgfSBmcm9tICdub2RlOmh0dHAnO1xuaW1wb3J0IHR5cGUgeyBTb2NrZXQgfSBmcm9tICdub2RlOm5ldCc7XG5pbXBvcnQgdHlwZSB7IFdyaXRhYmxlIH0gZnJvbSAnbm9kZTpzdHJlYW0nO1xuaW1wb3J0IHR5cGUgeyBCb3RoVmFsdWVIZWFkZXJzIH0gZnJvbSAnLi4vQHR5cGVzJztcbmltcG9ydCB7IHR5cGUgSUxvZ2dlciwgTk9fT1AsIHBhcnNlSGVhZGVycyB9IGZyb20gJy4uL2NvcmUnO1xuaW1wb3J0IHsgZ2V0U3RyaW5nIH0gZnJvbSAnLi91dGlscyc7XG5cbi8vIGhlYWRlciBvciBkYXRhIGNybGZcbmNvbnN0IGNybGZCdWZmZXIgPSBCdWZmZXIuZnJvbSgnXFxyXFxuJyk7XG5cbmNvbnN0IGVuZENodW5rZWQgPSAnMFxcclxcblxcclxcbic7XG5jb25zdCBoZWFkZXJFbmQgPSAnXFxyXFxuXFxyXFxuJztcbmNvbnN0IGVuZFN0YXR1c1NlcGFyYXRvciA9ICdcXHJcXG4nO1xuXG4vKipcbiAqIFRoZSBwcm9wZXJ0aWVzIHRvIGNyZWF0ZSBhIHtAbGluayBTZXJ2ZXJsZXNzU3RyZWFtUmVzcG9uc2V9LlxuICpcbiAqIEBicmVhZGNydW1iIE5ldHdvcmsgLyBTZXJ2ZXJsZXNzU3RyZWFtUmVzcG9uc2VcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZXJ2ZXJsZXNzU3RyZWFtUmVzcG9uc2VQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgSFRUUCBNZXRob2QgZnJvbSByZXF1ZXN0XG4gICAqL1xuICBtZXRob2Q/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBjYWxsYmFjayB0byByZWNlaXZlIHRoZSBoZWFkZXJzIHdoZW4gdGhleSBhcmUgd3JpdHRlbiB0byB0aGUgc3RyZWFtXG4gICAqIFlvdSBuZWVkIHRvIHJldHVybiBhIHdyaXRhYmxlIHN0cmVhbSBiZSBhYmxlIHRvIGNvbnRpbnVlIHdyaXRpbmcgdGhlIHJlc3BvbnNlXG4gICAqXG4gICAqIEBwYXJhbSBzdGF0dXNDb2RlIC0gVGhlIHN0YXR1cyBjb2RlIG9mIHRoZSByZXNwb25zZVxuICAgKiBAcGFyYW0gaGVhZGVycyAtIFRoZSBoZWFkZXJzIG9mIHRoZSByZXNwb25zZVxuICAgKi9cbiAgb25SZWNlaXZlSGVhZGVyczogKHN0YXR1c0NvZGU6IG51bWJlciwgaGVhZGVyczogQm90aFZhbHVlSGVhZGVycykgPT4gV3JpdGFibGU7XG5cbiAgLyoqXG4gICAqIEluc3RhbmNlIG9mIHRoZSBsb2dnZXJcbiAgICovXG4gIGxvZzogSUxvZ2dlcjtcbn1cblxuLyoqXG4gKiBUaGUgY2xhc3MgdGhhdCByZXByZXNlbnRzIGEgcmVzcG9uc2UgaW5zdGFuY2UgdXNlZCB0byBzZW5kIHRvIHRoZSBmcmFtZXdvcmsgYW5kIHdhaXQgdW50aWwgdGhlIGZyYW1ld29yayBmaW5pc2hlcyBwcm9jZXNzaW5nIHRoZSByZXF1ZXN0LlxuICogVGhpcyByZXNwb25zZSBpcyBzcGVjaWFsbHkgYnVpbHQgdG8gZGVhbCB3aXRoIHRyYW5zZmVyLWVuY29kaW5nOiBjaHVua2VkXG4gKlxuICogQGJyZWFkY3J1bWIgTmV0d29yayAvIFNlcnZlcmxlc3NTdHJlYW1SZXNwb25zZVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY2xhc3MgU2VydmVybGVzc1N0cmVhbVJlc3BvbnNlIGV4dGVuZHMgU2VydmVyUmVzcG9uc2Uge1xuICBjb25zdHJ1Y3Rvcih7XG4gICAgbWV0aG9kLFxuICAgIG9uUmVjZWl2ZUhlYWRlcnMsXG4gICAgbG9nLFxuICB9OiBTZXJ2ZXJsZXNzU3RyZWFtUmVzcG9uc2VQcm9wcykge1xuICAgIHN1cGVyKHsgbWV0aG9kIH0gYXMgYW55KTtcblxuICAgIHRoaXMudXNlQ2h1bmtlZEVuY29kaW5nQnlEZWZhdWx0ID0gdHJ1ZTtcbiAgICB0aGlzLmNodW5rZWRFbmNvZGluZyA9IHRydWU7XG5cbiAgICBsZXQgaW50ZXJuYWxXcml0YWJsZTogV3JpdGFibGUgfCBudWxsID0gbnVsbDtcbiAgICBsZXQgZmlyc3RDcmxmQnVmZmVyRW5jb3VudGVyZWQgPSBmYWxzZTtcbiAgICBsZXQgY2h1bmtFbmNvdW50ZXJlZCA9IGZhbHNlO1xuXG4gICAgY29uc3Qgc29ja2V0OiBQYXJ0aWFsPFNvY2tldD4gJiB7IF93cml0YWJsZVN0YXRlOiBhbnkgfSA9IHtcbiAgICAgIF93cml0YWJsZVN0YXRlOiB7fSxcbiAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgb246IE5PX09QLFxuICAgICAgcmVtb3ZlTGlzdGVuZXI6IE5PX09QLFxuICAgICAgZGVzdHJveTogTk9fT1AsXG4gICAgICBjb3JrOiBOT19PUCxcbiAgICAgIHVuY29yazogTk9fT1AsXG4gICAgICB3cml0ZTogKFxuICAgICAgICBkYXRhOiBVaW50OEFycmF5IHwgc3RyaW5nLFxuICAgICAgICBlbmNvZGluZz86IHN0cmluZyB8IG51bGwgfCAoKCkgPT4gdm9pZCksXG4gICAgICAgIGNiPzogKCkgPT4gdm9pZCxcbiAgICAgICk6IGFueSA9PiB7XG4gICAgICAgIC8vIHZlcnkgdW5saWtlbHksIEkgZG9uJ3QgZXZlbiBrbm93IGhvdyB0byByZXByb2R1Y2UgdGhpcywgYnV0IGV4aXN0IG9uIHR5cGVzXG4gICAgICAgIC8vIGlzdGFuYnVsIGlnbm9yZSBpZlxuICAgICAgICBpZiAodHlwZW9mIGVuY29kaW5nID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgY2IgPSBlbmNvZGluZztcbiAgICAgICAgICBlbmNvZGluZyA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBsb2cuZGVidWcoJ1NFUlZFUkxFU1NfQURBUFRFUjpSRVNQT05TRV9TVFJFQU06REFUQScsICgpID0+ICh7XG4gICAgICAgICAgZGF0YTogQnVmZmVyLmlzQnVmZmVyKGRhdGEpID8gZGF0YS50b1N0cmluZygndXRmOCcpIDogZGF0YSxcbiAgICAgICAgICBlbmNvZGluZyxcbiAgICAgICAgfSkpO1xuXG4gICAgICAgIGlmICghaW50ZXJuYWxXcml0YWJsZSkge1xuICAgICAgICAgIGNvbnN0IHN0cmluZ0RhdGEgPSBnZXRTdHJpbmcoZGF0YSk7XG4gICAgICAgICAgY29uc3QgZW5kU3RhdHVzSW5kZXggPSBzdHJpbmdEYXRhLmluZGV4T2YoZW5kU3RhdHVzU2VwYXJhdG9yKTtcbiAgICAgICAgICBjb25zdCBzdGF0dXMgPSArc3RyaW5nRGF0YS5zbGljZSgwLCBlbmRTdGF0dXNJbmRleCkuc3BsaXQoJyAnKVsxXTtcbiAgICAgICAgICBjb25zdCBlbmRIZWFkZXJJbmRleCA9IHN0cmluZ0RhdGEuaW5kZXhPZihoZWFkZXJFbmQpO1xuXG4gICAgICAgICAgY29uc3QgaGVhZGVyRGF0YSA9IHN0cmluZ0RhdGEuc2xpY2UoXG4gICAgICAgICAgICBlbmRTdGF0dXNJbmRleCArIDIsXG4gICAgICAgICAgICBlbmRIZWFkZXJJbmRleCxcbiAgICAgICAgICApO1xuICAgICAgICAgIGNvbnN0IGhlYWRlcnMgPSBwYXJzZUhlYWRlcnMoaGVhZGVyRGF0YSk7XG4gICAgICAgICAgbG9nLmRlYnVnKFxuICAgICAgICAgICAgJ1NFUlZFUkxFU1NfQURBUFRFUjpSRVNQT05TRV9TVFJFQU06RlJBTUVXT1JLX0hFQURFUlMnLFxuICAgICAgICAgICAgKCkgPT4gKHtcbiAgICAgICAgICAgICAgaGVhZGVycyxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBpbnRlcm5hbFdyaXRhYmxlID0gb25SZWNlaXZlSGVhZGVycyhzdGF0dXMsIGhlYWRlcnMpO1xuXG4gICAgICAgICAgLy8gSWYgd2UgZ2V0IGFuIGVuZENodW5rZWQgcmlnaHQgYWZ0ZXIgaGVhZGVyIHdoaWNoIG1lYW5zIHRoZSByZXNwb25zZSBib2R5IGlzIGVtcHR5LCB3ZSBuZWVkIHRvIGltbWVkaWF0ZWx5IGVuZCB0aGUgd3JpdGFibGVcbiAgICAgICAgICBpZiAoc3RyaW5nRGF0YS5zdWJzdHJpbmcoZW5kSGVhZGVySW5kZXggKyA0KSA9PT0gZW5kQ2h1bmtlZClcbiAgICAgICAgICAgIGludGVybmFsV3JpdGFibGUuZW5kKCk7XG5cbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIG5vZGUgc2VuZHMgdGhlIGxhc3QgY2h1bmsgY3JsZiBhcyBhIHN0cmluZzpcbiAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL25vZGVqcy9ub2RlL2Jsb2IvdjIyLjguMC9saWIvX2h0dHBfb3V0Z29pbmcuanMjTDExMzFcbiAgICAgICAgaWYgKGRhdGEgPT09IGVuZENodW5rZWQpIHtcbiAgICAgICAgICBpbnRlcm5hbFdyaXRhYmxlLmVuZChjYik7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBjaGVjayBmb3IgaGVhZGVyIG9yIGRhdGEgY3JsZlxuICAgICAgICAvLyBub2RlIHNlbmRzIHRoZSBoZWFkZXIgYW5kIGRhdGEgY3JsZiBhcyBhIGJ1ZmZlclxuICAgICAgICAvLyBiZWxvdyBjb2RlIGlzIGFsaWduZWQgdG8gZm9sbG93aW5nIG5vZGUgaW1wbGVtZW50YXRpb24gb2YgdGhlIEhUVFAvMS4xIGNodW5rZWQgdHJhbnNmZXIgY29kaW5nOlxuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vbm9kZWpzL25vZGUvYmxvYi92MjIuOC4wL2xpYi9faHR0cF9vdXRnb2luZy5qcyNMMTAxMi1MMTAxNVxuICAgICAgICAvLyBmb3IgcmVmZXJlbmNlOiBodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL3JmYzkxMTIjc2VjdGlvbi03XG4gICAgICAgIGlmIChCdWZmZXIuaXNCdWZmZXIoZGF0YSkgJiYgY3JsZkJ1ZmZlci5lcXVhbHMoZGF0YSkpIHtcbiAgICAgICAgICBjb25zdCBpc0hlYWRlckNybGYgPSAhZmlyc3RDcmxmQnVmZmVyRW5jb3VudGVyZWQ7XG4gICAgICAgICAgaWYgKGlzSGVhZGVyQ3JsZikge1xuICAgICAgICAgICAgZmlyc3RDcmxmQnVmZmVyRW5jb3VudGVyZWQgPSB0cnVlO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgaXNEYXRhQ3JsZiA9IGZpcnN0Q3JsZkJ1ZmZlckVuY291bnRlcmVkICYmIGNodW5rRW5jb3VudGVyZWQ7XG4gICAgICAgICAgaWYgKGlzRGF0YUNybGYpIHtcbiAgICAgICAgICAgIC8vIGRvbmUgd2l0aCBjaHVua1xuICAgICAgICAgICAgZmlyc3RDcmxmQnVmZmVyRW5jb3VudGVyZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIGNodW5rRW5jb3VudGVyZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIHRoZSBjcmxmICppcyogdGhlIGNodW5rXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpc0NvbnRlbnRMZW5ndGggPSAhZmlyc3RDcmxmQnVmZmVyRW5jb3VudGVyZWQ7XG4gICAgICAgIGlmIChpc0NvbnRlbnRMZW5ndGgpIHtcbiAgICAgICAgICAvLyBkaXNjYXJkIGNvbnRlbnQgbGVuZ3RoXG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB3cml0ZSBjaHVua1xuICAgICAgICBjaHVua0VuY291bnRlcmVkID0gdHJ1ZTtcbiAgICAgICAgaW50ZXJuYWxXcml0YWJsZS53cml0ZShkYXRhLCBjYik7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfSxcbiAgICB9O1xuXG4gICAgdGhpcy5hc3NpZ25Tb2NrZXQoc29ja2V0IGFzIHVua25vd24gYXMgU29ja2V0KTtcbiAgfVxufVxuIiwgIi8vI3JlZ2lvbiBJbXBvcnRzXG5cbmltcG9ydCB0eXBlIHsgQmluYXJ5U2V0dGluZ3MgfSBmcm9tICcuLi9AdHlwZXMnO1xuaW1wb3J0IHR5cGUge1xuICBBZGFwdGVyQ29udHJhY3QsXG4gIEFkYXB0ZXJSZXF1ZXN0LFxuICBGcmFtZXdvcmtDb250cmFjdCxcbiAgSGFuZGxlckNvbnRyYWN0LFxuICBSZXNvbHZlckNvbnRyYWN0LFxuICBTZXJ2ZXJsZXNzSGFuZGxlcixcbn0gZnJvbSAnLi4vY29udHJhY3RzJztcbmltcG9ydCB7IFNlcnZlcmxlc3NSZXF1ZXN0LCBTZXJ2ZXJsZXNzUmVzcG9uc2UgfSBmcm9tICcuLi9uZXR3b3JrJztcbmltcG9ydCB0eXBlIHsgSUxvZ2dlciB9IGZyb20gJy4vaW5kZXgnO1xuXG4vLyNlbmRyZWdpb25cblxuLyoqXG4gKiBUaGUgYWJzdHJhY3QgY2xhc3MgdGhhdCByZXByZXNlbnRzIHRoZSBiYXNlIGNsYXNzIGZvciBhIGhhbmRsZXJcbiAqXG4gKiBAYnJlYWRjcnVtYiBDb3JlXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlSGFuZGxlcjxcbiAgVEFwcCxcbiAgVEV2ZW50LFxuICBUQ29udGV4dCxcbiAgVENhbGxiYWNrLFxuICBUUmVzcG9uc2UsXG4gIFRSZXR1cm4sXG4+IGltcGxlbWVudHNcbiAgICBIYW5kbGVyQ29udHJhY3Q8VEFwcCwgVEV2ZW50LCBUQ29udGV4dCwgVENhbGxiYWNrLCBUUmVzcG9uc2UsIFRSZXR1cm4+XG57XG4gIC8vI3JlZ2lvbiBQdWJsaWMgTWV0aG9kc1xuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGhhbmRsZXIgdGhhdCB3aWxsIGhhbmRsZSBzZXJ2ZXJsZXNzIHJlcXVlc3RzXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0SGFuZGxlcihcbiAgICBhcHA6IFRBcHAsXG4gICAgZnJhbWV3b3JrOiBGcmFtZXdvcmtDb250cmFjdDxUQXBwPixcbiAgICBhZGFwdGVyczogQWRhcHRlckNvbnRyYWN0PFRFdmVudCwgVENvbnRleHQsIFRSZXNwb25zZT5bXSxcbiAgICByZXNvbHZlckZhY3Rvcnk6IFJlc29sdmVyQ29udHJhY3Q8XG4gICAgICBURXZlbnQsXG4gICAgICBUQ29udGV4dCxcbiAgICAgIFRDYWxsYmFjayxcbiAgICAgIFRSZXNwb25zZSxcbiAgICAgIFRSZXR1cm5cbiAgICA+LFxuICAgIGJpbmFyeVNldHRpbmdzOiBCaW5hcnlTZXR0aW5ncyxcbiAgICByZXNwb25kV2l0aEVycm9yczogYm9vbGVhbixcbiAgICBsb2c6IElMb2dnZXIsXG4gICk6IFNlcnZlcmxlc3NIYW5kbGVyPFRSZXR1cm4+O1xuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBQcm90ZWN0ZWQgTWV0aG9kc1xuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGFkYXB0ZXIgdG8gaGFuZGxlIGEgc3BlY2lmaWMgZXZlbnQgYW5kIGNvbnRleHRcbiAgICpcbiAgICogQHBhcmFtIGV2ZW50IC0gVGhlIGV2ZW50IHNlbnQgYnkgc2VydmVybGVzc1xuICAgKiBAcGFyYW0gY29udGV4dCAtIFRoZSBjb250ZXh0IHNlbnQgYnkgc2VydmVybGVzc1xuICAgKiBAcGFyYW0gYWRhcHRlcnMgLSBUaGUgbGlzdCBvZiBhZGFwdGVyc1xuICAgKiBAcGFyYW0gbG9nIC0gVGhlIGluc3RhbmNlIG9mIGxvZ2dlclxuICAgKi9cbiAgcHJvdGVjdGVkIGdldEFkYXB0ZXJCeUV2ZW50QW5kQ29udGV4dChcbiAgICBldmVudDogVEV2ZW50LFxuICAgIGNvbnRleHQ6IFRDb250ZXh0LFxuICAgIGFkYXB0ZXJzOiBBZGFwdGVyQ29udHJhY3Q8VEV2ZW50LCBUQ29udGV4dCwgVFJlc3BvbnNlPltdLFxuICAgIGxvZzogSUxvZ2dlcixcbiAgKTogQWRhcHRlckNvbnRyYWN0PFRFdmVudCwgVENvbnRleHQsIFRSZXNwb25zZT4ge1xuICAgIGNvbnN0IHJlc29sdmVkQWRhcHRlcnMgPSBhZGFwdGVycy5maWx0ZXIoYWRhcHRlciA9PlxuICAgICAgYWRhcHRlci5jYW5IYW5kbGUoZXZlbnQsIGNvbnRleHQsIGxvZyksXG4gICAgKTtcblxuICAgIGlmIChyZXNvbHZlZEFkYXB0ZXJzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcIlNFUlZFUkxFU1NfQURBUFRFUjogQ291bGRuJ3QgZmluZCBhZGFwdGVyIHRvIGhhbmRsZSB0aGlzIGV2ZW50LlwiLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAocmVzb2x2ZWRBZGFwdGVycy5sZW5ndGggPiAxKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBTRVJWRVJMRVNTX0FEQVBURVI6IFR3byBvciBtb3JlIGFkYXB0ZXJzIHdhcyByZXNvbHZlZCBieSB0aGUgZXZlbnQsIHRoZSBhZGFwdGVycyBhcmU6ICR7YWRhcHRlcnNcbiAgICAgICAgICAubWFwKGFkYXB0ZXIgPT4gYWRhcHRlci5nZXRBZGFwdGVyTmFtZSgpKVxuICAgICAgICAgIC5qb2luKCcsICcpfS5gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzb2x2ZWRBZGFwdGVyc1swXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgc2VydmVybGVzcyByZXF1ZXN0IGFuZCByZXNwb25zZSBmcm1vIHRoZSBhZGFwdGVyIHJlcXVlc3RcbiAgICpcbiAgICogQHBhcmFtIHJlcXVlc3RWYWx1ZXMgLSBUaGUgcmVxdWVzdCB2YWx1ZXMgZnJvbSBhZGFwdGVyXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0U2VydmVybGVzc1JlcXVlc3RSZXNwb25zZUZyb21BZGFwdGVyUmVxdWVzdChcbiAgICByZXF1ZXN0VmFsdWVzOiBBZGFwdGVyUmVxdWVzdCxcbiAgKTogW3JlcXVlc3Q6IFNlcnZlcmxlc3NSZXF1ZXN0LCByZXNwb25zZTogU2VydmVybGVzc1Jlc3BvbnNlXSB7XG4gICAgY29uc3QgcmVxdWVzdCA9IG5ldyBTZXJ2ZXJsZXNzUmVxdWVzdCh7XG4gICAgICBtZXRob2Q6IHJlcXVlc3RWYWx1ZXMubWV0aG9kLFxuICAgICAgaGVhZGVyczogcmVxdWVzdFZhbHVlcy5oZWFkZXJzLFxuICAgICAgYm9keTogcmVxdWVzdFZhbHVlcy5ib2R5LFxuICAgICAgcmVtb3RlQWRkcmVzczogcmVxdWVzdFZhbHVlcy5yZW1vdGVBZGRyZXNzLFxuICAgICAgdXJsOiByZXF1ZXN0VmFsdWVzLnBhdGgsXG4gICAgfSk7XG5cbiAgICBjb25zdCByZXNwb25zZSA9IG5ldyBTZXJ2ZXJsZXNzUmVzcG9uc2Uoe1xuICAgICAgbWV0aG9kOiByZXF1ZXN0VmFsdWVzLm1ldGhvZCxcbiAgICB9KTtcblxuICAgIHJldHVybiBbcmVxdWVzdCwgcmVzcG9uc2VdO1xuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG59XG4iLCAiLy8jcmVnaW9uIEltcG9ydHNcblxuaW1wb3J0IHR5cGUgeyBCaW5hcnlTZXR0aW5ncyB9IGZyb20gJy4vQHR5cGVzJztcbmltcG9ydCB0eXBlIHtcbiAgQWRhcHRlckNvbnRyYWN0LFxuICBGcmFtZXdvcmtDb250cmFjdCxcbiAgSGFuZGxlckNvbnRyYWN0LFxuICBSZXNvbHZlckNvbnRyYWN0LFxuICBTZXJ2ZXJsZXNzSGFuZGxlcixcbn0gZnJvbSAnLi9jb250cmFjdHMnO1xuaW1wb3J0IHtcbiAgREVGQVVMVF9CSU5BUllfQ09OVEVOVF9UWVBFUyxcbiAgREVGQVVMVF9CSU5BUllfRU5DT0RJTkdTLFxuICB0eXBlIElMb2dnZXIsXG4gIGNyZWF0ZURlZmF1bHRMb2dnZXIsXG59IGZyb20gJy4vY29yZSc7XG5cbi8vI2VuZHJlZ2lvblxuXG4vKipcbiAqIFRoZSBjbGFzcyB1c2VkIHRvIGJ1aWxkIHRoZSBzZXJ2ZXJsZXNzIGhhbmRsZXIuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGFwcCA9IGV4cHJlc3MoKTtcbiAqIGV4cG9ydCBjb25zdCBoYW5kbGVyID0gU2VydmVybGVzc0FkYXB0ZXIubmV3KGFwcClcbiAqICAgLnNldEZyYW1ld29yayhuZXcgRXhwcmVzc0ZyYW1ld29yaygpKVxuICogICAuc2V0SGFuZGxlcihuZXcgRGVmYXVsdEhhbmRsZXIoKSlcbiAqICAgLnNldFJlc29sdmVyKG5ldyBQcm9taXNlUmVzb2x2ZXIoKSlcbiAqICAgLnNldFJlc3BvbmRXaXRoRXJyb3JzKHRydWUpXG4gKiAgIC5hZGRBZGFwdGVyKG5ldyBBbGJBZGFwdGVyKCkpXG4gKiAgIC5hZGRBZGFwdGVyKG5ldyBTUVNBZGFwdGVyKCkpXG4gKiAgIC5hZGRBZGFwdGVyKG5ldyBTTlNBZGFwdGVyKCkpXG4gKiAgIC5idWlsZCgpO1xuICogYGBgXG4gKlxuICogQGJyZWFkY3J1bWIgU2VydmVybGVzc0FkYXB0ZXJcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNsYXNzIFNlcnZlcmxlc3NBZGFwdGVyPFxuICBUQXBwLFxuICBURXZlbnQsXG4gIFRDb250ZXh0LFxuICBUQ2FsbGJhY2ssXG4gIFRSZXNwb25zZSxcbiAgVFJldHVybixcbj4ge1xuICAvLyNyZWdpb24gQ29uc3RydWN0b3JcblxuICAvKipcbiAgICogRGVmYXVsdCBjb25zdHJ1Y3RvclxuICAgKi9cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihhcHA6IFRBcHApIHtcbiAgICB0aGlzLmFwcCA9IGFwcDtcbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBQcm90ZWN0ZWQgUHJvcGVydGllc1xuXG4gIC8qKlxuICAgKiBUaGUgaW5zdGFuY2Ugb2YgdGhlIGFwcCAoZXhwcmVzcywgaGFwaSwga29hLCBldGMuLi4pXG4gICAqL1xuICBwcm90ZWN0ZWQgYXBwOiBUQXBwO1xuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBQcm90ZWN0ZWQgUHJvcGVydGllc1xuXG4gIC8qKlxuICAgKiBTZXR0aW5ncyBmb3Igd2hldGhlciB0aGUgcmVzcG9uc2Ugc2hvdWxkIGJlIHRyZWF0ZWQgYXMgYmluYXJ5IG9yIG5vdFxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIGBjb250ZW50RW5jb2RpbmdzYCBhbmQgYGNvbnRlbnRUeXBlc2AgYXJlIHNldCB3aXRoIHtAbGluayBERUZBVUxUX0JJTkFSWV9FTkNPRElOR1N9IGFuZCB7QGxpbmsgREVGQVVMVF9CSU5BUllfQ09OVEVOVF9UWVBFU30sIHJlc3BlY3RpdmVseS5cbiAgICovXG4gIHByb3RlY3RlZCBiaW5hcnlTZXR0aW5nczogQmluYXJ5U2V0dGluZ3MgPSB7XG4gICAgY29udGVudEVuY29kaW5nczogREVGQVVMVF9CSU5BUllfRU5DT0RJTkdTLFxuICAgIGNvbnRlbnRUeXBlczogREVGQVVMVF9CSU5BUllfQ09OVEVOVF9UWVBFUyxcbiAgfTtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGVycm9yIHN0YWNrIHNob3VsZCBiZSBpbmNsdWRlZCBpbiB0aGUgcmVzcG9uc2Ugb3Igbm90XG4gICAqXG4gICAqIEByZW1hcmtzIFRoZXNlIGVycm9ycyB3aWxsIG9ubHkgYmUgaW5jbHVkZWQgd2hlbiBhbiBlcnJvciBvY2N1cnMgd2hpbGUgZm9yd2FyZGluZyB0aGUgZXZlbnQgdG8gdGhlIGZyYW1ld29ya1xuICAgKiBAZGVmYXVsdFZhbHVlIFRydWUgd2hlbiBOT0RFX0VOViBpcyBlcXVhbCB0byBgZGV2ZWxvcG1lbnRgXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVzcG9uZFdpdGhFcnJvcnM6IGJvb2xlYW4gPSBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50JztcblxuICAvKipcbiAgICogVGhlIGluc3RhbmNlIG9mIHRoZSBsb2dnZXIgc2VydmljZVxuICAgKi9cbiAgcHJvdGVjdGVkIGxvZzogSUxvZ2dlciA9IGNyZWF0ZURlZmF1bHRMb2dnZXIoKTtcblxuICAvKipcbiAgICogVGhlIGxpc3Qgb2YgYWRhcHRlcnMgdXNlZCB0byBoYW5kbGUgYW4gZXZlbnQncyByZXF1ZXN0IGFuZCByZXNwb25zZVxuICAgKi9cbiAgcHJvdGVjdGVkIGFkYXB0ZXJzOiBBZGFwdGVyQ29udHJhY3Q8VEV2ZW50LCBUQ29udGV4dCwgVFJlc3BvbnNlPltdID0gW107XG5cbiAgLyoqXG4gICAqIFRoZSBmcmFtZXdvcmsgdGhhdCB3aWxsIHByb2Nlc3MgcmVxdWVzdHNcbiAgICovXG4gIHByb3RlY3RlZCBmcmFtZXdvcms/OiBGcmFtZXdvcmtDb250cmFjdDxUQXBwPjtcblxuICAvKipcbiAgICogVGhlIHJlc29sdmVyIHRoYXQgYWltcyB0byByZXNvbHZlIHRoZSByZXNwb25zZSB0byBzZXJ2ZXJsZXNzIGFuZCBzdG9wIGl0cyBleGVjdXRpb24gd2hlbiB0aGUgcmVxdWVzdCBlbmRzXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVzb2x2ZXI/OiBSZXNvbHZlckNvbnRyYWN0PFxuICAgIFRFdmVudCxcbiAgICBUQ29udGV4dCxcbiAgICBUQ2FsbGJhY2ssXG4gICAgVFJlc3BvbnNlLFxuICAgIFRSZXR1cm5cbiAgPjtcblxuICAvKipcbiAgICogVGhlIGhhbmRsZXIgdGhhdCB3aWxsIGdldCB0aGUgZXZlbnQsIGNvbnRleHQgYW5kIGNhbGxiYWNrIGFuZCBwYXNzIGl0IHRvIHRoZSBhZGFwdGVyIGFuZCBmcmFtZXdvcmtcbiAgICovXG4gIHByb3RlY3RlZCBoYW5kbGVyPzogSGFuZGxlckNvbnRyYWN0PFxuICAgIFRBcHAsXG4gICAgVEV2ZW50LFxuICAgIFRDb250ZXh0LFxuICAgIFRDYWxsYmFjayxcbiAgICBUUmVzcG9uc2UsXG4gICAgVFJldHVyblxuICA+O1xuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBTdGF0aWMgTWV0aG9kc1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBidWlsZGVyIHdpdGggYXBwIChleHByZXNzLCBoYXBpLCBrb2EsIGV0Yy4uLilcbiAgICpcbiAgICogQHBhcmFtIGFwcCAtIFRoZSBpbnN0YW5jZSBvZiB0aGUgYXBwXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG5ldzxcbiAgICBUQXBwLFxuICAgIFRFdmVudCxcbiAgICBUQ29udGV4dCA9IGFueSxcbiAgICBUQ2FsbGJhY2sgPSBhbnksXG4gICAgVFJlc3BvbnNlID0gYW55LFxuICAgIFRSZXR1cm4gPSBhbnksXG4gID4oXG4gICAgYXBwOiBUQXBwLFxuICApOiBTZXJ2ZXJsZXNzQWRhcHRlcjxUQXBwLCBURXZlbnQsIFRDb250ZXh0LCBUQ2FsbGJhY2ssIFRSZXNwb25zZSwgVFJldHVybj4ge1xuICAgIHJldHVybiBuZXcgU2VydmVybGVzc0FkYXB0ZXIoYXBwKTtcbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBCdWlsZGVyIE1ldGhvZHNcblxuICAvKipcbiAgICogRGVmaW5lcyB0aGUgaGFuZGxlciB0aGF0IHdpbGwgZ2V0IHRoZSBldmVudCwgY29udGV4dCBhbmQgY2FsbGJhY2sgYW5kIHBhc3MgaXQgdG8gdGhlIGFkYXB0ZXIgYW5kIGZyYW1ld29ya1xuICAgKlxuICAgKiBAcGFyYW0gaGFuZGxlciAtIFRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgaGFuZGxlciBjb250cmFjdFxuICAgKi9cbiAgcHVibGljIHNldEhhbmRsZXIoXG4gICAgaGFuZGxlcjogSGFuZGxlckNvbnRyYWN0PFxuICAgICAgVEFwcCxcbiAgICAgIFRFdmVudCxcbiAgICAgIFRDb250ZXh0LFxuICAgICAgVENhbGxiYWNrLFxuICAgICAgVFJlc3BvbnNlLFxuICAgICAgVFJldHVyblxuICAgID4sXG4gICk6IE9taXQ8dGhpcywgJ3NldEhhbmRsZXInPiB7XG4gICAgaWYgKHRoaXMuaGFuZGxlcilcbiAgICAgIHRocm93IG5ldyBFcnJvcignU0VSVkVSTEVTU19BREFQVEVSOiBUaGUgaGFuZGxlciBzaG91bGQgbm90IHNldCB0d2ljZS4nKTtcblxuICAgIHRoaXMuaGFuZGxlciA9IGhhbmRsZXI7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZpbmVzIHRoZSByZXNvbHZlciB0aGF0IGFpbXMgdG8gcmVzb2x2ZSB0aGUgcmVzcG9uc2UgdG8gc2VydmVybGVzcyBhbmQgc3RvcCBpdHMgZXhlY3V0aW9uIHdoZW4gdGhlIHJlcXVlc3QgZW5kc1xuICAgKlxuICAgKiBAcGFyYW0gcmVzb2x2ZXIgLSBUaGUgaW1wbGVtZW50YXRpb24gb2YgdGhlIHJlc29sdmVyIGNvbnRyYWN0XG4gICAqL1xuICBwdWJsaWMgc2V0UmVzb2x2ZXIoXG4gICAgcmVzb2x2ZXI6IFJlc29sdmVyQ29udHJhY3Q8VEV2ZW50LCBUQ29udGV4dCwgVENhbGxiYWNrLCBUUmVzcG9uc2UsIFRSZXR1cm4+LFxuICApOiBPbWl0PHRoaXMsICdzZXRSZXNvbHZlcic+IHtcbiAgICBpZiAodGhpcy5yZXNvbHZlcilcbiAgICAgIHRocm93IG5ldyBFcnJvcignU0VSVkVSTEVTU19BREFQVEVSOiBUaGUgcmVzb2x2ZXIgc2hvdWxkIG5vdCBzZXQgdHdpY2UuJyk7XG5cbiAgICB0aGlzLnJlc29sdmVyID0gcmVzb2x2ZXI7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZpbmVzIHRoZSBmcmFtZXdvcmsgdGhhdCB3aWxsIHByb2Nlc3MgcmVxdWVzdHNcbiAgICpcbiAgICogQHBhcmFtIGZyYW1ld29yayAtIFRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgZnJhbWV3b3JrIGNvbnRyYWN0XG4gICAqL1xuICBwdWJsaWMgc2V0RnJhbWV3b3JrKFxuICAgIGZyYW1ld29yazogRnJhbWV3b3JrQ29udHJhY3Q8VEFwcD4sXG4gICk6IE9taXQ8dGhpcywgJ3NldEZyYW1ld29yayc+IHtcbiAgICBpZiAodGhpcy5mcmFtZXdvcmspIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ1NFUlZFUkxFU1NfQURBUFRFUjogVGhlIGZyYW1ld29yayBzaG91bGQgbm90IHNldCB0d2ljZS4nLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLmZyYW1ld29yayA9IGZyYW1ld29yaztcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIERlZmluZXMgdGhlIGxvZ2dlciBzZXJ2aWNlIHVzZWQgZHVyaW5nIHRoZSBleGVjdXRpb24gb2YgdGhlIGhhbmRsZXJcbiAgICpcbiAgICogQHBhcmFtIGxvZ2dlciAtIFRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgbG9nZ2VyXG4gICAqL1xuICBwdWJsaWMgc2V0TG9nZ2VyKGxvZ2dlcjogSUxvZ2dlcik6IE9taXQ8dGhpcywgJ3NldExvZ2dlcic+IHtcbiAgICB0aGlzLmxvZyA9IGxvZ2dlcjtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIERlZmluZXMgdGhlIGJpbmFyeSBzZXR0aW5ncyBmb3Igd2hldGhlciB0aGUgcmVzcG9uc2Ugc2hvdWxkIGJlIHRyZWF0ZWQgYXMgYmluYXJ5IG9yIG5vdFxuICAgKlxuICAgKiBAcGFyYW0gYmluYXJ5U2V0dGluZ3MgLSBUaGUgYmluYXJ5IHNldHRpbmdzXG4gICAqL1xuICBwdWJsaWMgc2V0QmluYXJ5U2V0dGluZ3MoXG4gICAgYmluYXJ5U2V0dGluZ3M6IEJpbmFyeVNldHRpbmdzLFxuICApOiBPbWl0PHRoaXMsICdzZXRCaW5hcnlTZXR0aW5ncyc+IHtcbiAgICB0aGlzLmJpbmFyeVNldHRpbmdzID0ge1xuICAgICAgLi4udGhpcy5iaW5hcnlTZXR0aW5ncyxcbiAgICAgIC4uLmJpbmFyeVNldHRpbmdzLFxuICAgIH07XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZpbmVzIHRoZSByZXNwb25zZVdpdGhFcnJvcnMsIGEgcHJvcGVydHkgdGhhdCBpbmRpY2F0ZXMgd2hldGhlciB0aGUgZXJyb3Igc3RhY2sgc2hvdWxkIGJlIGluY2x1ZGVkIGluIHRoZSByZXNwb25zZSBvciBub3RcbiAgICpcbiAgICogQHBhcmFtIHJlc3BvbmRXaXRoRXJyb3JzIC0gU2hvdWxkIGluY2x1ZGUgb3Igbm90IHRoZSBlcnJvcnMgaW4gcmVzcG9uc2VcbiAgICovXG4gIHB1YmxpYyBzZXRSZXNwb25kV2l0aEVycm9ycyhcbiAgICByZXNwb25kV2l0aEVycm9yczogYm9vbGVhbixcbiAgKTogT21pdDx0aGlzLCAnc2V0UmVzcG9uZFdpdGhFcnJvcnMnPiB7XG4gICAgdGhpcy5yZXNwb25kV2l0aEVycm9ycyA9IHJlc3BvbmRXaXRoRXJyb3JzO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGFuIGFkYXB0ZXIgdG8gdGhlIGFkYXB0ZXJzIGxpc3QgdG8gaGFuZGxlIHRoZSBldmVudCBjb21pbmcgZnJvbSBhbnkgc2VydmVybGVzcyBldmVudCBzb3VyY2VcbiAgICpcbiAgICogQHBhcmFtIGFkYXB0ZXIgLSBUaGUgaW1wbGVtZW50YXRpb24gb2YgdGhlIGFkYXB0ZXIgY29udHJhY3RcbiAgICovXG4gIHB1YmxpYyBhZGRBZGFwdGVyKFxuICAgIGFkYXB0ZXI6IEFkYXB0ZXJDb250cmFjdDxURXZlbnQsIFRDb250ZXh0LCBUUmVzcG9uc2U+LFxuICApOiBQaWNrPHRoaXMsICdhZGRBZGFwdGVyJyB8ICdidWlsZCc+IHtcbiAgICB0aGlzLmFkYXB0ZXJzLnB1c2goYWRhcHRlcik7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgYnVpbGRlciBtZXRob2QgdGhhdCByZXR1cm5zIHRoZSBoYW5kbGVyIGZ1bmN0aW9uIHRvIGJlIGV4cG9ydGVkIGZvciBzZXJ2ZXJsZXNzIGNvbnN1bXB0aW9uXG4gICAqL1xuICBwdWJsaWMgYnVpbGQoKTogU2VydmVybGVzc0hhbmRsZXI8VFJldHVybj4ge1xuICAgIGlmICghdGhpcy5yZXNvbHZlcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnU0VSVkVSTEVTU19BREFQVEVSOiBJcyByZXF1aXJlZCB0byBzZXQgYSByZXNvbHZlciBiZWZvcmUgYnVpbGQuJyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmZyYW1ld29yaykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnU0VSVkVSTEVTU19BREFQVEVSOiBJcyByZXF1aXJlZCB0byBzZXQgYSBmcmFtZXdvcmsgYmVmb3JlIGJ1aWxkLicsXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5oYW5kbGVyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdTRVJWRVJMRVNTX0FEQVBURVI6IElzIHJlcXVpcmVkIHRvIHNldCBhIGhhbmRsZXIgYmVmb3JlIGJ1aWxkLicsXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmFkYXB0ZXJzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnU0VSVkVSTEVTU19BREFQVEVSOiBJcyByZXF1aXJlZCB0byBzZXQgYXQgbGVhc3Qgb25lIGFkYXB0ZXIuJyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuaGFuZGxlci5nZXRIYW5kbGVyKFxuICAgICAgdGhpcy5hcHAsXG4gICAgICB0aGlzLmZyYW1ld29yayxcbiAgICAgIHRoaXMuYWRhcHRlcnMsXG4gICAgICB0aGlzLnJlc29sdmVyLFxuICAgICAgdGhpcy5iaW5hcnlTZXR0aW5ncyxcbiAgICAgIHRoaXMucmVzcG9uZFdpdGhFcnJvcnMsXG4gICAgICB0aGlzLmxvZyxcbiAgICApO1xuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG59XG4iLCAiLypcbiAqIENvcHlyaWdodCAoYykgMjAyNSwgU2FsZXNmb3JjZSwgSW5jLlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yXG4gKiBGb3IgZnVsbCBsaWNlbnNlIHRleHQsIHNlZSB0aGUgbGljZW5zZS50eHQgZmlsZSBpbiB0aGUgcmVwbyByb290IG9yIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICovXG5pbXBvcnQgdHlwZSB7UmVxdWVzdCwgUmVzcG9uc2UsIE5leHRGdW5jdGlvbn0gZnJvbSAnZXhwcmVzcyc7XG5pbXBvcnQgZnMgZnJvbSAnZnMvcHJvbWlzZXMnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQge2ZpbGVVUkxUb1BhdGh9IGZyb20gJ3VybCc7XG5pbXBvcnQgd2luc3RvbiBmcm9tICd3aW5zdG9uJztcbmltcG9ydCBjcnlwdG8gZnJvbSAnY3J5cHRvJztcbmltcG9ydCB7U2VjcmV0c01hbmFnZXJDbGllbnQsIEdldFNlY3JldFZhbHVlQ29tbWFuZH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlcic7XG5pbXBvcnQge0RhdGFTdG9yZSwgRGF0YVN0b3JlTm90Rm91bmRFcnJvciwgRGF0YVN0b3JlU2VydmljZUVycm9yLCBEYXRhU3RvcmVVbmF2YWlsYWJsZUVycm9yfSBmcm9tICdAc2FsZXNmb3JjZS9tcnQtdXRpbGl0aWVzJztcblxuY29uc3QgX19kaXJuYW1lID0gcGF0aC5kaXJuYW1lKGZpbGVVUkxUb1BhdGgoaW1wb3J0Lm1ldGEudXJsKSk7XG5cbmNsYXNzIEludGVudGlvbmFsRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIGNvbnN0cnVjdG9yKGRpYWdub3N0aWNzOiBhbnksIC4uLnBhcmFtczogYW55W10pIHtcbiAgICBzdXBlciguLi5wYXJhbXMpO1xuICAgIHRoaXMubWVzc2FnZSA9IEpTT04uc3RyaW5naWZ5KGRpYWdub3N0aWNzLCBudWxsLCAyKTtcbiAgICB0aGlzLm5hbWUgPSAnSW50ZW50aW9uYWxFcnJvcic7XG4gIH1cbn1cblxuY29uc3QgRU5WU19UT19FWFBPU0UgPSBbXG4gICdhd3NfZXhlY3V0aW9uX2VudicsXG4gICdhd3NfbGFtYmRhX2Z1bmN0aW9uX21lbW9yeV9zaXplJyxcbiAgJ2F3c19sYW1iZGFfZnVuY3Rpb25fbmFtZScsXG4gICdhd3NfbGFtYmRhX2Z1bmN0aW9uX3ZlcnNpb24nLFxuICAnYXdzX2xhbWJkYV9sb2dfZ3JvdXBfbmFtZScsXG4gICdhd3NfbGFtYmRhX2xvZ19zdHJlYW1fbmFtZScsXG4gICdhd3NfcmVnaW9uJyxcbiAgJ2J1bmRsZV9pZCcsXG4gICdjdXN0b21lcl8qJyxcbiAgJ2RlcGxveV9pZCcsXG4gICdkZXBsb3lfdGFyZ2V0JyxcbiAgJ2V4dGVybmFsX2RvbWFpbl9uYW1lJyxcbiAgJ21vYmlmeV9wcm9wZXJ0eV9pZCcsXG4gICdtcnRfYWxsb3dfY29va2llcycsXG4gICdtcnRfZW52X2Jhc2VfcGF0aCcsXG4gICdub2RlX2VudicsXG4gICdub2RlX29wdGlvbnMnLFxuICAndHonLFxuXTtcblxuY29uc3QgQkFEU1NMX1RMUzFfMV9VUkwgPSAnaHR0cHM6Ly90bHMtdjEtMS5iYWRzc2wuY29tOjEwMTEvJztcbmNvbnN0IEJBRFNTTF9UTFMxXzJfVVJMID0gJ2h0dHBzOi8vdGxzLXYxLTIuYmFkc3NsLmNvbToxMDEyLyc7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG5jb25zdCBzb3J0T2JqZWN0S2V5cyA9IChvOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogUmVjb3JkPHN0cmluZywgYW55PiA9PiB7XG4gIHJldHVybiBPYmplY3QuYXNzaWduKFxuICAgIHt9LFxuICAgIC4uLk9iamVjdC5rZXlzKG8pXG4gICAgICAuc29ydCgpXG4gICAgICAubWFwKChrKSA9PiAoe1trXTogb1trXX0pKSxcbiAgKTtcbn07XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG5jb25zdCBmaWx0ZXJBbmRTb3J0T2JqZWN0S2V5cyA9IChvOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LCB3aGl0ZWxpc3Q6IHN0cmluZ1tdKTogUmVjb3JkPHN0cmluZywgYW55PiA9PlxuICBvICYmXG4gIE9iamVjdC5rZXlzKG8pXG4gICAgLmZpbHRlcigoa2V5KSA9PiB7XG4gICAgICBjb25zdCBrZXlsYyA9IGtleS50b0xvd2VyQ2FzZSgpLnRyaW0oKTtcbiAgICAgIHJldHVybiB3aGl0ZWxpc3Quc29tZShcbiAgICAgICAgKHBhdHRlcm4pID0+IChwYXR0ZXJuLmVuZHNXaXRoKCcqJykgJiYga2V5bGMuc3RhcnRzV2l0aChwYXR0ZXJuLnNsaWNlKDAsIC0xKSkpIHx8IHBhdHRlcm4gPT09IGtleWxjLFxuICAgICAgKTtcbiAgICB9KVxuICAgIC5zb3J0KClcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIC5yZWR1Y2UoKGFjYzogUmVjb3JkPHN0cmluZywgYW55Piwga2V5KSA9PiB7XG4gICAgICBhY2Nba2V5XSA9IG9ba2V5XTtcbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwge30pO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuY29uc3QganNvbkZyb21SZXF1ZXN0ID0gKHJlcTogUmVxdWVzdCwgYWRkaXRpb25hbF9pbmZvPzogYW55KTogYW55ID0+IHtcbiAgcmV0dXJuIHtcbiAgICBhcmdzOiByZXEucXVlcnksXG4gICAgcHJvdG9jb2w6IHJlcS5wcm90b2NvbCxcbiAgICBtZXRob2Q6IHJlcS5tZXRob2QsXG4gICAgcGF0aDogcmVxLnBhdGgsXG4gICAgcXVlcnk6IHJlcS5xdWVyeSxcbiAgICByb3V0ZV9wYXRoOiByZXEucm91dGUucGF0aCxcbiAgICBib2R5OiByZXEuYm9keSxcbiAgICBoZWFkZXJzOiBzb3J0T2JqZWN0S2V5cyhyZXEuaGVhZGVycyksXG4gICAgaXA6IHJlcS5pcCxcbiAgICBlbnY6IGZpbHRlckFuZFNvcnRPYmplY3RLZXlzKHByb2Nlc3MuZW52LCBFTlZTX1RPX0VYUE9TRSksXG4gICAgdGltZXN0YW1wOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgLi4uKHR5cGVvZiBhZGRpdGlvbmFsX2luZm8gPT09ICdvYmplY3QnID8ge2FkZGl0aW9uYWxfaW5mb30gOiB7fSksXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZWNobyA9IChyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpID0+IHJlcy5qc29uKGpzb25Gcm9tUmVxdWVzdChyZXEpKTtcblxuZXhwb3J0IGNvbnN0IGV4Y2VwdGlvbiA9IChyZXE6IFJlcXVlc3QpID0+IHtcbiAgdGhyb3cgbmV3IEludGVudGlvbmFsRXJyb3IoanNvbkZyb21SZXF1ZXN0KHJlcSkpO1xufTtcblxuZXhwb3J0IGNvbnN0IHRsc1ZlcnNpb25UZXN0ID0gYXN5bmMgKF86IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpID0+IHtcbiAgY29uc3QgcmVzcG9uc2UxMSA9IGF3YWl0IGZldGNoKEJBRFNTTF9UTFMxXzFfVVJMKVxuICAgIC50aGVuKChyZXNwb25zZSkgPT4gcmVzcG9uc2Uub2spXG4gICAgLmNhdGNoKCgpID0+IGZhbHNlKTtcbiAgY29uc3QgcmVzcG9uc2UxMiA9IGF3YWl0IGZldGNoKEJBRFNTTF9UTFMxXzJfVVJMKVxuICAgIC50aGVuKChyZXNwb25zZSkgPT4gcmVzcG9uc2Uub2spXG4gICAgLmNhdGNoKCgpID0+IGZhbHNlKTtcbiAgcmVzLmhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcbiAgcmVzLnNlbmQoSlNPTi5zdHJpbmdpZnkoeyd0bHMxLjEnOiByZXNwb25zZTExLCAndGxzMS4yJzogcmVzcG9uc2UxMn0sIG51bGwsIDQpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBjYWNoZVRlc3QgPSBhc3luYyAocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSA9PiB7XG4gIGxldCBkdXJhdGlvbiA9IFN0cmluZyhyZXEucGFyYW1zLmR1cmF0aW9uIHx8ICc2MCcpO1xuICBpZiAoaXNOYU4ocGFyc2VJbnQoZHVyYXRpb24pKSkge1xuICAgIGR1cmF0aW9uID0gJzYwJztcbiAgfVxuICByZXMuc2V0KCdDYWNoZS1Db250cm9sJywgYHMtbWF4YWdlPSR7ZHVyYXRpb259YCk7XG4gIHJlcy5qc29uKGpzb25Gcm9tUmVxdWVzdChyZXEpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBjb29raWVUZXN0ID0gYXN5bmMgKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSkgPT4ge1xuICBpZiAoT2JqZWN0Lmhhc093bihyZXEucXVlcnksICduYW1lJykpIHtcbiAgICBjb25zdCBuYW1lID0gcmVxLnF1ZXJ5Lm5hbWUgYXMgc3RyaW5nO1xuICAgIGNvbnN0IHZhbHVlID0gcmVxLnF1ZXJ5LnZhbHVlIGFzIHN0cmluZztcbiAgICByZXMuY29va2llKG5hbWUsIHZhbHVlKTtcbiAgfVxuICByZXMuc2V0KCdDYWNoZS1Db250cm9sJywgJ3ByaXZhdGUsIG1heC1hZ2U9NjAnKTtcbiAgcmVzLmpzb24oanNvbkZyb21SZXF1ZXN0KHJlcSkpO1xufTtcblxuZXhwb3J0IGNvbnN0IHJlc3BvbnNlSGVhZGVyc1Rlc3QgPSBhc3luYyAocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSA9PiB7XG4gIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHJlcS5xdWVyeSkpIHtcbiAgICByZXMuc2V0KGtleSwgdmFsdWUgYXMgc3RyaW5nIHwgc3RyaW5nW10gfCB1bmRlZmluZWQpO1xuICB9XG4gIHJlcy5qc29uKGpzb25Gcm9tUmVxdWVzdChyZXEpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBtdWx0aVZhbHVlSGVhZGVyc1Rlc3QgPSBhc3luYyAocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSA9PiB7XG4gIHJlcy5zZXQoJ1gtTXVsdGktVmFsdWUtSGVhZGVyJywgWyd2YWx1ZTEnLCAndmFsdWUyJywgJ3ZhbHVlMyddKTtcbiAgcmVzLmpzb24oanNvbkZyb21SZXF1ZXN0KHJlcSkpO1xufTtcblxuZXhwb3J0IGNvbnN0IHNldFN0YXR1c1Rlc3QgPSBhc3luYyAocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSA9PiB7XG4gIGNvbnN0IHN0YXR1cyA9IHJlcS5xdWVyeS5zdGF0dXMgPyBwYXJzZUludChyZXEucXVlcnkuc3RhdHVzIGFzIHN0cmluZykgOiAyMDA7XG4gIHJlcy5zdGF0dXMoc3RhdHVzKTtcbiAgcmVzLnNldCgnWC1TdGF0dXMtQ29kZScsIHN0YXR1cy50b1N0cmluZygpKTtcbiAgcmVzLmpzb24oanNvbkZyb21SZXF1ZXN0KHJlcSkpO1xufTtcblxuZXhwb3J0IGNvbnN0IG1lbW9yeVRlc3QgPSBhc3luYyAocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSA9PiB7XG4gIGNvbnN0IG1lbW9yeV9iZWZvcmUgPSBwcm9jZXNzLm1lbW9yeVVzYWdlKCk7XG4gIGNvbnN0IHRlc3RfY291bnQgPSByZXE/LnF1ZXJ5Py5jb3VudCA/IHBhcnNlSW50KHJlcS5xdWVyeS5jb3VudCBhcyBzdHJpbmcpIDogMTtcbiAgY29uc3QgdGVzdF9zaXplID0gcmVxPy5xdWVyeT8uc2l6ZSA/IHBhcnNlSW50KHJlcS5xdWVyeS5zaXplIGFzIHN0cmluZykgOiAxMDI0O1xuICBjb25zdCBmb3JjZV9nYyA9XG4gICAgZ2xvYmFsPy5nYyAmJlxuICAgIHJlcT8ucXVlcnkgJiZcbiAgICAocGFyc2VCb29sZWFuKHJlcS5xdWVyeS5mb3JjZWdjIGFzIHN0cmluZykgfHwgcGFyc2VCb29sZWFuKHJlcS5xdWVyeS5nYyBhcyBzdHJpbmcpKTtcblxuICBjb25zdCBtYWxsb2NfdGltZV9zdGFydCA9IERhdGUubm93KCk7XG4gIGFsbG9jYXRlTWVtb3J5KHRlc3RfY291bnQsIHRlc3Rfc2l6ZSk7XG4gIGNvbnN0IG1hbGxvY190aW1lX21zID0gRGF0ZS5ub3coKSAtIG1hbGxvY190aW1lX3N0YXJ0O1xuXG4gIGNvbnN0IGdjX3RpbWVfc3RhcnQgPSBEYXRlLm5vdygpO1xuICBpZiAoZm9yY2VfZ2MgJiYgZ2xvYmFsLmdjKSB7XG4gICAgZ2xvYmFsLmdjKCk7XG4gIH1cbiAgY29uc3QgZ2NfdGltZV9tcyA9IERhdGUubm93KCkgLSBnY190aW1lX3N0YXJ0O1xuXG4gIGNvbnN0IG1lbW9yeV9hZnRlciA9IHByb2Nlc3MubWVtb3J5VXNhZ2UoKTtcbiAgY29uc3QgbWVtb3J5X2RlbHRhID0gY2FsY3VsYXRlTnVtZXJpY0RlbHRhcyhtZW1vcnlfYWZ0ZXIsIG1lbW9yeV9iZWZvcmUpO1xuICBjb25zdCBmYWN0b3IgPSAxMDtcbiAgY29uc3QgdGVzdF90b3RhbF9hbGxvY19tYiA9IE1hdGgucm91bmQoKCh0ZXN0X2NvdW50ICogdGVzdF9zaXplKSAvIDEwMjQgLyAxMDI0KSAqIGZhY3RvcikgLyBmYWN0b3I7XG4gIGNvbnN0IGFkZGl0aW9uYWxfaW5mbyA9IHtcbiAgICBtZW1vcnlfZW5kOiBtZW1vcnlfYWZ0ZXIsXG4gICAgbWVtb3J5X2RlbHRhLFxuICAgIG1hbGxvY190aW1lOiBtYWxsb2NfdGltZV9tcyxcbiAgICBnY190aW1lOiBnY190aW1lX21zLFxuICAgIGZvcmNlX2djLFxuICAgIHRlc3RfY291bnQsXG4gICAgdGVzdF9zaXplLFxuICAgIHRlc3RfdG90YWxfYWxsb2NfbWIsXG4gIH07XG4gIHJlcy5qc29uKGpzb25Gcm9tUmVxdWVzdChyZXEsIGFkZGl0aW9uYWxfaW5mbykpO1xufTtcblxuY29uc3QgYWxsb2NhdGVNZW1vcnkgPSAodGVzdF9jb3VudDogbnVtYmVyLCB0ZXN0X3NpemU6IG51bWJlcik6IG51bWJlciA9PiB7XG4gIGNvbnN0IGJ1ZmZlcjogQnVmZmVyW10gPSBbXTtcbiAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IHRlc3RfY291bnQ7IGluZGV4KyspIHtcbiAgICBidWZmZXIucHVzaChCdWZmZXIuYWxsb2ModGVzdF9zaXplLCAwLCAnYXNjaWknKSk7XG4gIH1cbiAgcmV0dXJuIGJ1ZmZlci5sZW5ndGg7XG59O1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuY29uc3QgY2FsY3VsYXRlTnVtZXJpY0RlbHRhcyA9IChvYmoxOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LCBvYmoyOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogUmVjb3JkPHN0cmluZywgbnVtYmVyPiA9PiB7XG4gIGNvbnN0IGRlbHRhOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+ID0ge307XG4gIGZvciAoY29uc3Qga2V5IGluIG9iajEpIHtcbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iajEsIGtleSkgJiYgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iajIsIGtleSkpIHtcbiAgICAgIGlmICh0eXBlb2Ygb2JqMVtrZXldID09PSAnbnVtYmVyJyAmJiB0eXBlb2Ygb2JqMltrZXldID09PSAnbnVtYmVyJykge1xuICAgICAgICBkZWx0YVtrZXldID0gb2JqMVtrZXldIC0gb2JqMltrZXldO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gZGVsdGE7XG59O1xuXG5jb25zdCBwYXJzZUJvb2xlYW4gPSAoc3RyaW5nX3ZhbHVlOiBzdHJpbmcpID0+IHtcbiAgaWYgKFxuICAgIHN0cmluZ192YWx1ZSA9PT0gbnVsbCB8fFxuICAgIHN0cmluZ192YWx1ZSA9PT0gdW5kZWZpbmVkIHx8XG4gICAgdHlwZW9mIHN0cmluZ192YWx1ZSAhPT0gJ3N0cmluZycgfHxcbiAgICBzdHJpbmdfdmFsdWUudHJpbSgpID09PSAnJ1xuICApIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgY29uc3QgbG93ZXJDYXNlVmFsdWUgPSBzdHJpbmdfdmFsdWUudG9Mb3dlckNhc2UoKTtcbiAgcmV0dXJuIChcbiAgICBsb3dlckNhc2VWYWx1ZSA9PT0gJ3RydWUnIHx8XG4gICAgbG93ZXJDYXNlVmFsdWUgPT09ICcxJyB8fFxuICAgIGxvd2VyQ2FzZVZhbHVlID09PSAnb24nIHx8XG4gICAgbG93ZXJDYXNlVmFsdWUgPT09ICdlbmFibGUnIHx8XG4gICAgbG93ZXJDYXNlVmFsdWUgPT09ICdlbmFibGVkJyB8fFxuICAgIGxvd2VyQ2FzZVZhbHVlID09PSAneWVzJ1xuICApO1xufTtcblxuZXhwb3J0IGNvbnN0IGhlYWRlclRlc3QgPSBhc3luYyAocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSA9PiB7XG4gIHJlcy5qc29uKHtoZWFkZXJzOiBzb3J0T2JqZWN0S2V5cyhyZXEuaGVhZGVycyl9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBsb2dnaW5nTWlkZGxld2FyZSA9IChyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UsIG5leHQ6IE5leHRGdW5jdGlvbikgPT4ge1xuICBjb25zb2xlLmxvZyhgUmVxdWVzdDogJHtyZXEubWV0aG9kfSAke3JlcS5vcmlnaW5hbFVybH1gKTtcbiAgY29uc29sZS5sb2coYFJlcXVlc3QgaGVhZGVyczogJHtKU09OLnN0cmluZ2lmeShyZXEuaGVhZGVycywgbnVsbCwgMil9YCk7XG4gIGNvbnN0IHZhbHVlcyA9IHtcbiAgICBzdHJpbmc6ICdzdHJpbmcgdmFsdWUnLFxuICAgIG51bWJlcjogMTIzNDU2Nzg5MCxcbiAgICBib29sZWFuOiB0cnVlLFxuICAgIG51bGw6IG51bGwsXG4gICAgdW5kZWZpbmVkLFxuICAgIE5hTixcbiAgICBvYmplY3Q6IHtmb286ICdiYXInfSxcbiAgICBhcnJheTogWzEsIDIsIDNdLFxuICAgIGRhdGU6IG5ldyBEYXRlKCksXG4gIH07XG4gIGZvciAoY29uc3QgdmFsdWUgb2YgT2JqZWN0LnZhbHVlcyh2YWx1ZXMpKSB7XG4gICAgY29uc29sZS5sb2codmFsdWUpO1xuICB9XG4gIHJlcy5vbignZmluaXNoJywgKCkgPT4ge1xuICAgIGNvbnN0IHN0YXR1c0NvZGUgPSByZXMuaGVhZGVyc1NlbnQgPyBTdHJpbmcocmVzLnN0YXR1c0NvZGUpIDogU3RyaW5nKC0xKTtcbiAgICBjb25zb2xlLmxvZyhgUmVzcG9uc2Ugc3RhdHVzOiAke3N0YXR1c0NvZGV9YCk7XG4gICAgaWYgKHJlcy5oZWFkZXJzU2VudCkge1xuICAgICAgY29uc3QgaGVhZGVycyA9IEpTT04uc3RyaW5naWZ5KHJlcy5nZXRIZWFkZXJzKCksIG51bGwsIDIpO1xuICAgICAgY29uc29sZS5sb2coYFJlc3BvbnNlIGhlYWRlcnM6ICR7aGVhZGVyc31gKTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gbmV4dCgpO1xufTtcblxuZXhwb3J0IGNvbnN0IGVudkJhc2VQYXRoTWlkZGxld2FyZSA9IChyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UsIG5leHQ6IE5leHRGdW5jdGlvbikgPT4ge1xuICBjb25zdCBiYXNlUGF0aCA9IHByb2Nlc3MuZW52Lk1SVF9FTlZfQkFTRV9QQVRIO1xuICBjb25zb2xlLmRlYnVnKGBCYXNlIHBhdGg6IEJhc2UgcGF0aDogJHtiYXNlUGF0aH1gKTtcbiAgY29uc29sZS5kZWJ1ZyhgUmVxdWVzdCBwYXRoOiBSZXF1ZXN0IHBhdGg6ICR7cmVxLnVybH1gKTtcbiAgaWYgKGJhc2VQYXRoICYmIChyZXEucGF0aC5zdGFydHNXaXRoKGAke2Jhc2VQYXRofS9gKSB8fCByZXEucGF0aCA9PT0gYmFzZVBhdGgpKSB7XG4gICAgcmVxLnVybCA9IHJlcS51cmwuc2xpY2UoYmFzZVBhdGgubGVuZ3RoKSB8fCAnLyc7XG4gICAgY29uc29sZS5kZWJ1ZyhgQmFzZSBwYXRoOiBSZXdyb3RlICR7YmFzZVBhdGh9IC0+IE9yaWdpbmFsIHVybDogJHtyZXEub3JpZ2luYWxVcmx9IC0+IE5ldyB1cmw6ICR7cmVxLnVybH1gKTtcbiAgfVxuICByZXR1cm4gbmV4dCgpO1xufTtcblxuZXhwb3J0IGNvbnN0IHN0cmVhbWluZ1Rlc3QgPSBhc3luYyAocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSA9PiB7XG4gIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICd0ZXh0L3BsYWluJyk7XG4gIGNvbnN0IGRlbGF5TXMgPSAyMDtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCAxMDA7IGkrKykge1xuICAgIHJlcy53cml0ZShgSGVyZSBpcyBhIHN0cmVhbWluZyBjaHVuayR7aX1cXG5gKTtcbiAgICBpZiAoaSA8IDk5KSB7XG4gICAgICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gc2V0VGltZW91dChyZXNvbHZlLCBkZWxheU1zKSk7XG4gICAgfVxuICB9XG4gIHJlcy5lbmQoKTtcbn07XG5cbmV4cG9ydCBjb25zdCBzc3JCdW5kbGVGaWxlVGVzdCA9IGFzeW5jIChyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCBmaWxlTmFtZSA9IGAke19fZGlybmFtZX0vc3RhdGljL2V4YW1wbGUuanNvbmA7XG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IGZzLnJlYWRGaWxlKGZpbGVOYW1lLCB7ZW5jb2Rpbmc6ICd1dGY4J30pO1xuICAgIGNvbnN0IGpzb25EYXRhID0gSlNPTi5wYXJzZShkYXRhKTtcbiAgICByZXMuanNvbihqc29uRGF0YSk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmVzLnN0YXR1cyg1MDApLmpzb24oe2Vycm9yfSk7XG4gIH1cbn07XG5cbmNvbnN0IGdlbmVyYXRlUmFuZG9tVGV4dCA9IChudW1DaGFyczogbnVtYmVyKTogc3RyaW5nID0+IHtcbiAgY29uc3QgYWxwaGFiZXQgPSAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eic7XG4gIGxldCByZXN1bHQgPSAnJztcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBudW1DaGFyczsgaSsrKSB7XG4gICAgcmVzdWx0ICs9IGFscGhhYmV0W01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGFscGhhYmV0Lmxlbmd0aCldO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59O1xuXG5leHBvcnQgY29uc3Qgc3RyZWFtaW5nUmVzcG9uc2VMYXJnZSA9IChyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpID0+IHtcbiAgaWYgKHByb2Nlc3MuZW52Lk1SVF9CVU5ETEVfVFlQRSAhPT0gJ3N0cmVhbScpIHtcbiAgICByZXMuc3RhdHVzKDIwMCk7XG4gICAgcmVzLmpzb24oe3N0cmVhbWluZzogZmFsc2V9KTtcbiAgICByZXR1cm47XG4gIH1cbiAgcmVzLnN0YXR1cygyMDApO1xuICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAndGV4dC9wbGFpbicpO1xuICByZXMud3JpdGUoJ1RoaXMgaXMgdGhlIGZpcnN0IHBpZWNlIG9mIHN0cmVhbWVkIGRhdGEuXFxuJyk7XG4gIGNvbnN0IHN0YXJ0VGltZSA9IERhdGUubm93KCk7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgMjA7IGkrKykge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY29uc3QgaXRlbSA9IGAke0RhdGUubm93KCkgLSBzdGFydFRpbWV9bXMgVGhpcyBpcyB0aGUgJHtpICsgMX0gcGllY2Ugb2Ygc3RyZWFtZWQgZGF0YSBhZnRlciBhIGRlbGF5ICR7Z2VuZXJhdGVSYW5kb21UZXh0KDEwMjQpfS5cXG5gO1xuICAgICAgcmVzLndyaXRlKGl0ZW0pO1xuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciAtIGZsdXNoIGFkZGVkIGJ5IHN0cmVhbWluZyBhZGFwdGVyXG4gICAgICByZXMuZmx1c2goKTtcbiAgICAgIGlmIChpID09PSAxOSkge1xuICAgICAgICByZXMuZW5kKCk7XG4gICAgICB9XG4gICAgfSwgaSAqIDUwMCk7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCB3aW5zdG9uTG9nZ2luZyA9IChyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpID0+IHtcbiAgY29uc3QgbG9nZ2VyID0gd2luc3Rvbi5jcmVhdGVMb2dnZXIoe1xuICAgIGxldmVsOiAnaW5mbycsXG4gICAgZm9ybWF0OiB3aW5zdG9uLmZvcm1hdC5qc29uKCksXG4gICAgZGVmYXVsdE1ldGE6IHtzZXJ2aWNlOiAndXNlci1zZXJ2aWNlJ30sXG4gIH0pO1xuICBsb2dnZXIuYWRkKG5ldyB3aW5zdG9uLnRyYW5zcG9ydHMuQ29uc29sZSh7Zm9ybWF0OiB3aW5zdG9uLmZvcm1hdC5qc29uKCl9KSk7XG4gIGxvZ2dlci5sb2coJ2luZm8nLCAnanNvbiBsb2cgdXNpbmcgd2luc3RvbiB0aGF0IHRyaWdnZXJzIEtleUVycm9yJyk7XG4gIGxvZ2dlci5sb2coe1xuICAgIG1ldGFkYXRhOiAnZGVmaW5lZCBieSBjdXN0JyxcbiAgICBsZXZlbDogJ2luZm8nLFxuICAgIGxvZzogJ2pzb24gbG9nIHVzaW5nIHdpbnN0b24nLFxuICAgIHRlbGVtZXRyeUV2ZW50OiAndGVsZW1ldHJ5RXZlbnQgZmllbGQgZGVmaW5lZCBieSBjdXN0b21lcicsXG4gIH0gYXMgdW5rbm93biBhcyB3aW5zdG9uLkxvZ0VudHJ5KTtcbiAgY29uc29sZS5sb2coeyd3aW5zdG9uLXRlc3QnOiAndGhpcyBpcyBhIGpzb24gbG9nIHVzaW5nIGNvbnNvbGUubG9nJ30pO1xuICBjb25zb2xlLndhcm4oeyd3aW5zdG9uLXRlc3QnOiAndGhpcyBpcyBhIGpzb24gbG9nIHVzaW5nIGNvbnNvbGUud2Fybid9KTtcbiAgY29uc29sZS5kZWJ1Zyh7J3dpbnN0b24tdGVzdCc6ICd0aGlzIGlzIGEganNvbiBsb2cgdXNpbmcgY29uc29sZS5kZWJ1Zyd9KTtcbiAgY29uc29sZS5pbmZvKHsnd2luc3Rvbi10ZXN0JzogJ3RoaXMgaXMgYSBqc29uIGxvZyB1c2luZyBjb25zb2xlLmluZm8nfSk7XG4gIGNvbnNvbGUuZXJyb3Ioeyd3aW5zdG9uLXRlc3QnOiAndGhpcyBpcyBhIGpzb24gbG9nIHVzaW5nIGNvbnNvbGUuZXJyb3InfSk7XG4gIHJlcy5qc29uKHttZXNzYWdlOiAnV2luc3RvbiBsb2dnaW5nIGNvbXBsZXRlZCd9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWxheWVkTG9nZ2luZyA9IGFzeW5jIChyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpID0+IHtcbiAgY29uc3QgZGVsYXkgPSByZXEucXVlcnkuZGVsYXkgPyBwYXJzZUludChyZXEucXVlcnkuZGVsYXkgYXMgc3RyaW5nKSA6IDEwMDAwO1xuICBjb25zdCBzdGFydFRpbWUgPSBEYXRlLm5vdygpO1xuICBjb25zb2xlLmxvZyh7ZHVyYXRpb246IERhdGUubm93KCkgLSBzdGFydFRpbWUsIG1lc3NhZ2U6IGBQcmUtZGVsYXllZCBsb2dnaW5nICR7ZGVsYXl9bXNgfSk7XG4gIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIGRlbGF5KSk7XG4gIGNvbnNvbGUubG9nKHtkdXJhdGlvbjogRGF0ZS5ub3coKSAtIHN0YXJ0VGltZSwgbWVzc2FnZTogYERlbGF5ZWQgbG9nZ2luZyAke2RlbGF5fW1zYH0pO1xuICByZXMuanNvbih7ZHVyYXRpb246IERhdGUubm93KCkgLSBzdGFydFRpbWUsIG1lc3NhZ2U6IGBEZWxheWVkIGxvZ2dpbmcgJHtkZWxheX1tc2B9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBtYXNzTG9nZ2luZyA9IChyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpID0+IHtcbiAgY29uc3QgY291bnQgPSByZXEucXVlcnkuY291bnQgPyBwYXJzZUludChyZXEucXVlcnkuY291bnQgYXMgc3RyaW5nKSA6IDEwMDAwO1xuICBjb25zdCB0ZXh0RW5jb2RlciA9IG5ldyBUZXh0RW5jb2RlcigpO1xuICBjb25zdCBzdGFydFRpbWUgPSBEYXRlLm5vdygpO1xuICBsZXQgc2l6ZSA9IDA7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgY291bnQ7IGkrKykge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBgTWFzcyBsb2dnaW5nICR7aX0gb2YgJHtjb3VudH1gO1xuICAgIHNpemUgKz0gdGV4dEVuY29kZXIuZW5jb2RlKG1lc3NhZ2UpLmxlbmd0aDtcbiAgICBjb25zb2xlLmxvZyhtZXNzYWdlKTtcbiAgfVxuICBjb25zdCBzaXplSW5LQiA9IChzaXplIC8gMTAyNCkudG9GaXhlZCgyKTtcbiAgcmVzLmpzb24oe2R1cmF0aW9uOiBEYXRlLm5vdygpIC0gc3RhcnRUaW1lLCBtZXNzYWdlOiBgTWFzcyBsb2dnaW5nICR7Y291bnR9IGxvZ3NgLCBzaXplOiBgJHtzaXplSW5LQn1LQmB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBsYXJnZUxvZ2dpbmcgPSAocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSA9PiB7XG4gIGNvbnN0IGNvdW50ID0gcmVxLnF1ZXJ5LmNvdW50ID8gcGFyc2VJbnQocmVxLnF1ZXJ5LmNvdW50IGFzIHN0cmluZykgOiAxMDAwMDtcbiAgY29uc3QgdGV4dEVuY29kZXIgPSBuZXcgVGV4dEVuY29kZXIoKTtcbiAgY29uc3Qgc3RhcnRUaW1lID0gRGF0ZS5ub3coKTtcbiAgbGV0IHNpemUgPSAwO1xuICBsZXQgbWVzc2FnZSA9ICcnO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHtcbiAgICBjb25zdCBtc2cgPSBgTWFzcyBsb2dnaW5nICR7aX0gb2YgJHtjb3VudH1gO1xuICAgIHNpemUgKz0gdGV4dEVuY29kZXIuZW5jb2RlKG1zZykubGVuZ3RoO1xuICAgIG1lc3NhZ2UgKz0gbXNnO1xuICB9XG4gIGNvbnNvbGUubG9nKG1lc3NhZ2UpO1xuICBjb25zdCBzaXplSW5LQiA9IChzaXplIC8gMTAyNCkudG9GaXhlZCgyKTtcbiAgcmVzLmpzb24oe2R1cmF0aW9uOiBEYXRlLm5vdygpIC0gc3RhcnRUaW1lLCBtZXNzYWdlOiAnTGFyZ2UgbG9nZ2luZycsIHNpemU6IGAke3NpemVJbktCfUtCYH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IHRyYWNlTG9nZ2luZyA9IChyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpID0+IHtcbiAgY29uc3Qgc3RhcnQgPSBbbmV3IERhdGUoKS5nZXRUaW1lKCksIE51bWJlcihwcm9jZXNzLmhydGltZS5iaWdpbnQoKSldO1xuICBjb25zdCB0cmFjZSA9IHtcbiAgICBuYW1lOiAnbXJ0LnJlZi50cmFjZScsXG4gICAgdHJhY2VJZDogY3J5cHRvLnJhbmRvbUJ5dGVzKDE2KS50b1N0cmluZygnaGV4JyksXG4gICAgaWQ6IGNyeXB0by5yYW5kb21CeXRlcyg4KS50b1N0cmluZygnaGV4JyksXG4gICAgZm9yd2FyZFRyYWNlOiB0cnVlLFxuICAgIHN0YXJ0X3RpbWU6IHN0YXJ0LFxuICAgIGVuZF90aW1lOiBbbmV3IERhdGUoKS5nZXRUaW1lKCksIE51bWJlcihwcm9jZXNzLmhydGltZS5iaWdpbnQoKSldLFxuICB9O1xuICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeSh0cmFjZSkpO1xuICByZXMuanNvbih0cmFjZSk7XG59O1xuXG5leHBvcnQgY29uc3QgZGF0YVN0b3JlVGVzdCA9IGFzeW5jIChyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpID0+IHtcbiAgY29uc3Qgc3RvcmUgPSBEYXRhU3RvcmUuZ2V0RGF0YVN0b3JlKCk7XG4gIGlmICghc3RvcmUuaXNEYXRhU3RvcmVBdmFpbGFibGUoKSkge1xuICAgIHJldHVybiByZXMuanNvbih7ZGF0YVN0b3JlOiBmYWxzZX0pO1xuICB9XG4gIGxldCByZXN1bHQ7XG4gIHRyeSB7XG4gICAgcmVzdWx0ID0gYXdhaXQgc3RvcmUuZ2V0RW50cnkoU3RyaW5nKHJlcS5wYXJhbXMua2V5KSk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGlmIChlcnIgaW5zdGFuY2VvZiBEYXRhU3RvcmVVbmF2YWlsYWJsZUVycm9yKSB7XG4gICAgICByZXR1cm4gcmVzLnN0YXR1cyg0MDApLmpzb24oe2Vycm9yOiBlcnIubWVzc2FnZX0pO1xuICAgIH0gZWxzZSBpZiAoZXJyIGluc3RhbmNlb2YgRGF0YVN0b3JlTm90Rm91bmRFcnJvcikge1xuICAgICAgcmV0dXJuIHJlcy5zdGF0dXMoNDA0KS5qc29uKHtlcnJvcjogZXJyLm1lc3NhZ2V9KTtcbiAgICB9IGVsc2UgaWYgKGVyciBpbnN0YW5jZW9mIERhdGFTdG9yZVNlcnZpY2VFcnJvcikge1xuICAgICAgcmV0dXJuIHJlcy5zdGF0dXMoNTAwKS5qc29uKHtlcnJvcjogZXJyLm1lc3NhZ2V9KTtcbiAgICB9XG4gICAgdGhyb3cgZXJyO1xuICB9XG4gIHJldHVybiByZXMuanNvbihyZXN1bHQpO1xufTtcblxuZXhwb3J0IGNvbnN0IHNlY3JldHNNYW5hZ2VyVGVzdCA9IGFzeW5jIChyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpID0+IHtcbiAgY29uc3Qgc2VjcmV0SWQgPSByZXEucXVlcnkuc2VjcmV0SWQgYXMgc3RyaW5nO1xuICBpZiAoIXNlY3JldElkKSB7XG4gICAgcmV0dXJuIHJlcy5zdGF0dXMoNDAwKS5qc29uKHtlcnJvcjogJ01pc3NpbmcgcmVxdWlyZWQgcXVlcnkgcGFyYW1ldGVyOiBzZWNyZXRJZCd9KTtcbiAgfVxuICBjb25zdCBjbGllbnQgPSBuZXcgU2VjcmV0c01hbmFnZXJDbGllbnQoe3JlZ2lvbjogcHJvY2Vzcy5lbnYuQVdTX1JFR0lPTn0pO1xuICBjb25zdCBjb21tYW5kID0gbmV3IEdldFNlY3JldFZhbHVlQ29tbWFuZCh7U2VjcmV0SWQ6IHNlY3JldElkfSk7XG4gIHRyeSB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuc2VuZChjb21tYW5kKTtcbiAgICByZXR1cm4gcmVzLnN0YXR1cygyMDApLmpzb24oe1xuICAgICAgc3VjY2VzczogdHJ1ZSxcbiAgICAgIHNlY3JldElkLFxuICAgICAgYXJuOiByZXNwb25zZS5BUk4sXG4gICAgICB2ZXJzaW9uSWQ6IHJlc3BvbnNlLlZlcnNpb25JZCxcbiAgICAgIGhhc1NlY3JldFN0cmluZzogISFyZXNwb25zZS5TZWNyZXRTdHJpbmcsXG4gICAgICBoYXNTZWNyZXRCaW5hcnk6ICEhcmVzcG9uc2UuU2VjcmV0QmluYXJ5LFxuICAgIH0pO1xuICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgIGNvbnN0IGVyciA9IGVycm9yIGFzIHtuYW1lPzogc3RyaW5nOyBjb2RlPzogc3RyaW5nOyBtZXNzYWdlPzogc3RyaW5nfTtcbiAgICBjb25zdCBlcnJvckNvZGUgPSBlcnIubmFtZSB8fCBlcnIuY29kZTtcbiAgICBsZXQgc3RhdHVzQ29kZSA9IDUwMDtcbiAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBlcnIubWVzc2FnZSB8fCAnVW5rbm93biBlcnJvcic7XG4gICAgc3dpdGNoIChlcnJvckNvZGUpIHtcbiAgICAgIGNhc2UgJ1Jlc291cmNlTm90Rm91bmRFeGNlcHRpb24nOlxuICAgICAgICBzdGF0dXNDb2RlID0gNDA0O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0ludmFsaWRSZXF1ZXN0RXhjZXB0aW9uJzpcbiAgICAgIGNhc2UgJ0ludmFsaWRQYXJhbWV0ZXJFeGNlcHRpb24nOlxuICAgICAgICBzdGF0dXNDb2RlID0gNDAwO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0RlY3J5cHRpb25GYWlsdXJlJzpcbiAgICAgIGNhc2UgJ0ludGVybmFsU2VydmljZUVycm9yJzpcbiAgICAgICAgc3RhdHVzQ29kZSA9IDUwMDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdBY2Nlc3NEZW5pZWRFeGNlcHRpb24nOlxuICAgICAgICBzdGF0dXNDb2RlID0gNDAzO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHN0YXR1c0NvZGUgPSA1MDA7XG4gICAgfVxuICAgIHJldHVybiByZXMuc3RhdHVzKHN0YXR1c0NvZGUpLmpzb24oe3N1Y2Nlc3M6IGZhbHNlLCBlcnJvcjogZXJyb3JNZXNzYWdlLCBlcnJvckNvZGUsIHNlY3JldElkfSk7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBwcm94eVRyYW5zZm9ybWF0aW9uVGVzdCA9IChyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpID0+IHtcbiAgY29uc3Qgc2l0ZUlkID0gcmVxLmhlYWRlcnNbJ3gtc2l0ZS1pZCddIGFzIHN0cmluZztcbiAgY29uc3QgYXV0aEhlYWRlciA9IHJlcS5oZWFkZXJzLmF1dGhvcml6YXRpb24gYXMgc3RyaW5nO1xuICBjb25zdCBjb29raWVzID0gcmVxLmhlYWRlcnMuY29va2llIGFzIHN0cmluZztcblxuICBjb25zdCBjb29raWVNYXA6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcbiAgaWYgKGNvb2tpZXMpIHtcbiAgICBjb29raWVzLnNwbGl0KCc7JykuZm9yRWFjaCgoY29va2llKSA9PiB7XG4gICAgICBjb25zdCBba2V5LCB2YWx1ZV0gPSBjb29raWUudHJpbSgpLnNwbGl0KCc9Jyk7XG4gICAgICBpZiAoa2V5ICYmIHZhbHVlKSB7XG4gICAgICAgIGNvb2tpZU1hcFtrZXldID0gdmFsdWU7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBjb25zdCBleHBlY3RlZENvb2tpZU5hbWUgPSBzaXRlSWQgPyBgY2MtYXRfJHtzaXRlSWR9YCA6IG51bGw7XG4gIGNvbnN0IGV4cGVjdGVkQ29va2llVmFsdWUgPSBleHBlY3RlZENvb2tpZU5hbWUgPyBjb29raWVNYXBbZXhwZWN0ZWRDb29raWVOYW1lXSA6IG51bGw7XG4gIGNvbnN0IHNmZGNEd3NpZEZyb21IZWFkZXIgPSByZXEuaGVhZGVycy5zZmRjX2R3c2lkIGFzIHN0cmluZztcblxuICBjb25zdCB2YWxpZGF0aW9ucyA9IHtcbiAgICBzaXRlSWRQcmVzZW50OiAhIXNpdGVJZCxcbiAgICBzaXRlSWQsXG4gICAgYXV0aEhlYWRlclByZXNlbnQ6ICEhYXV0aEhlYWRlcixcbiAgICBhdXRoSGVhZGVyLFxuICAgIGV4cGVjdGVkQ29va2llTmFtZSxcbiAgICBleHBlY3RlZENvb2tpZVZhbHVlLFxuICAgIGF1dGhIZWFkZXJNYXRjaGVzQ29va2llOiBmYWxzZSxcbiAgICBzZmRjX2R3c2lkUHJlc2VudDogISFzZmRjRHdzaWRGcm9tSGVhZGVyLFxuICAgIHNmZGNfZHdzaWRWYWx1ZTogc2ZkY0R3c2lkRnJvbUhlYWRlcixcbiAgICBkd3NpZFByZXNlbnQ6ICEhY29va2llTWFwLmR3c2lkLFxuICAgIGR3c2lkVmFsdWU6IGNvb2tpZU1hcC5kd3NpZCxcbiAgICBzZmRjX2R3c2lkTWF0Y2hlc0R3c2lkOiBzZmRjRHdzaWRGcm9tSGVhZGVyID09PSBjb29raWVNYXAuZHdzaWQsXG4gIH07XG5cbiAgaWYgKGF1dGhIZWFkZXIgJiYgZXhwZWN0ZWRDb29raWVWYWx1ZSkge1xuICAgIGNvbnN0IGV4cGVjdGVkQXV0aEhlYWRlciA9IGBCZWFyZXIgJHtleHBlY3RlZENvb2tpZVZhbHVlfWA7XG4gICAgdmFsaWRhdGlvbnMuYXV0aEhlYWRlck1hdGNoZXNDb29raWUgPSBhdXRoSGVhZGVyID09PSBleHBlY3RlZEF1dGhIZWFkZXI7XG4gIH1cblxuICBjb25zdCBhbGxWYWxpZGF0aW9uc1Bhc3NlZCA9XG4gICAgdmFsaWRhdGlvbnMuc2l0ZUlkUHJlc2VudCAmJlxuICAgIHZhbGlkYXRpb25zLmF1dGhIZWFkZXJQcmVzZW50ICYmXG4gICAgdmFsaWRhdGlvbnMuYXV0aEhlYWRlck1hdGNoZXNDb29raWUgJiZcbiAgICB2YWxpZGF0aW9ucy5zZmRjX2R3c2lkUHJlc2VudCAmJlxuICAgIHZhbGlkYXRpb25zLnNmZGNfZHdzaWRNYXRjaGVzRHdzaWQ7XG5cbiAgcmV0dXJuIHJlcy5qc29uKHtcbiAgICBzdWNjZXNzOiBhbGxWYWxpZGF0aW9uc1Bhc3NlZCxcbiAgICB2YWxpZGF0aW9ucyxcbiAgICBhbGxDb29raWVzOiBjb29raWVNYXAsXG4gICAgaGVhZGVyczoge1xuICAgICAgJ3gtc2l0ZS1pZCc6IHJlcS5oZWFkZXJzWyd4LXNpdGUtaWQnXSxcbiAgICAgIGF1dGhvcml6YXRpb246IHJlcS5oZWFkZXJzLmF1dGhvcml6YXRpb24sXG4gICAgICBjb29raWU6IHJlcS5oZWFkZXJzLmNvb2tpZSxcbiAgICAgIHNmZGNfZHdzaWQ6IHJlcS5oZWFkZXJzLnNmZGNfZHdzaWQsXG4gICAgfSxcbiAgfSk7XG59O1xuIiwgIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjUsIFNhbGVzZm9yY2UsIEluYy5cbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMlxuICogRm9yIGZ1bGwgbGljZW5zZSB0ZXh0LCBzZWUgdGhlIGxpY2Vuc2UudHh0IGZpbGUgaW4gdGhlIHJlcG8gcm9vdCBvciBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqL1xuaW1wb3J0IHtMYW1iZGFDbGllbnQsIEludm9rZUNvbW1hbmQsIHR5cGUgSW52b2tlQ29tbWFuZElucHV0fSBmcm9tICdAYXdzLXNkay9jbGllbnQtbGFtYmRhJztcbmltcG9ydCB7UzNDbGllbnQsIEdldE9iamVjdENvbW1hbmQsIHR5cGUgR2V0T2JqZWN0Q29tbWFuZElucHV0fSBmcm9tICdAYXdzLXNkay9jbGllbnQtczMnO1xuaW1wb3J0IHtDbG91ZFdhdGNoTG9nc0NsaWVudCwgQ3JlYXRlTG9nU3RyZWFtQ29tbWFuZCwgdHlwZSBDcmVhdGVMb2dTdHJlYW1Db21tYW5kSW5wdXR9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1jbG91ZHdhdGNoLWxvZ3MnO1xuaW1wb3J0IHtEeW5hbW9EQkNsaWVudH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiJztcbmltcG9ydCB7RHluYW1vREJEb2N1bWVudENsaWVudCwgR2V0Q29tbWFuZH0gZnJvbSAnQGF3cy1zZGsvbGliLWR5bmFtb2RiJztcbmltcG9ydCB0eXBlIHtSZXF1ZXN0LCBSZXNwb25zZX0gZnJvbSAnZXhwcmVzcyc7XG5cbmludGVyZmFjZSBJc29sYXRpb25UZXN0UGFyYW1zIHtcbiAgRnVuY3Rpb25OYW1lPzogc3RyaW5nO1xuICBCdWNrZXQ/OiBzdHJpbmc7XG4gIEtleT86IHN0cmluZztcbiAgUmVnaW9uPzogc3RyaW5nO1xuICBsb2dHcm91cE5hbWU/OiBzdHJpbmc7XG4gIGRhbEtleT86IHN0cmluZztcbiAgZGFsUHJvamVjdEVudmlyb25tZW50Pzogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgVGVzdFJlc3VsdCB7XG4gIFtrZXk6IHN0cmluZ106IGJvb2xlYW47XG59XG5cbmNvbnN0IGhhc0Vycm9yTmFtZSA9IChlcnJvcjogdW5rbm93biwgbmFtZTogc3RyaW5nKTogYm9vbGVhbiA9PiB7XG4gIGlmICh0eXBlb2YgZXJyb3IgIT09ICdvYmplY3QnIHx8IGVycm9yID09PSBudWxsKSByZXR1cm4gZmFsc2U7XG4gIGNvbnN0IGF3c0Vycm9yID0gZXJyb3IgYXMge25hbWU/OiBzdHJpbmc7IG1lc3NhZ2U/OiBzdHJpbmd9O1xuICByZXR1cm4gYXdzRXJyb3IubmFtZSA9PT0gbmFtZSB8fCBhd3NFcnJvci5tZXNzYWdlID09PSBuYW1lO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzb2xhdGlvbk9yaWdpbkxhbWJkYVRlc3QgPSBhc3luYyAoaW5wdXQ6IEludm9rZUNvbW1hbmRJbnB1dCk6IFByb21pc2U8Ym9vbGVhbj4gPT4ge1xuICBjb25zdCBjbGllbnQgPSBuZXcgTGFtYmRhQ2xpZW50KCk7XG4gIHRyeSB7XG4gICAgYXdhaXQgY2xpZW50LnNlbmQobmV3IEludm9rZUNvbW1hbmQoaW5wdXQpKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGlmIChoYXNFcnJvck5hbWUoZSwgJ0FjY2Vzc0RlbmllZEV4Y2VwdGlvbicpKSByZXR1cm4gdHJ1ZTtcbiAgICBjb25zb2xlLmVycm9yKGUpO1xuICB9XG4gIGNvbnNvbGUuZXJyb3IoJ0xhbWJkYSBpc29sYXRpb24gdGVzdCBmYWlsZWQhJyk7XG4gIHJldHVybiBmYWxzZTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc29sYXRpb25TM1Rlc3QgPSBhc3luYyAoaW5wdXQ6IEdldE9iamVjdENvbW1hbmRJbnB1dCAmIHtSZWdpb24/OiBzdHJpbmd9KTogUHJvbWlzZTxib29sZWFuPiA9PiB7XG4gIGNvbnN0IHJlZ2lvbiA9IGlucHV0LlJlZ2lvbiB8fCBwcm9jZXNzLmVudi5BV1NfUkVHSU9OIHx8ICd1cy1lYXN0LTEnO1xuICBjb25zdCBjbGllbnQgPSBuZXcgUzNDbGllbnQoe3JlZ2lvbn0pO1xuICBkZWxldGUgaW5wdXQuUmVnaW9uO1xuICB0cnkge1xuICAgIGF3YWl0IGNsaWVudC5zZW5kKG5ldyBHZXRPYmplY3RDb21tYW5kKGlucHV0KSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBpZiAoaGFzRXJyb3JOYW1lKGUsICdBY2Nlc3NEZW5pZWQnKSkgcmV0dXJuIHRydWU7XG4gICAgY29uc29sZS5lcnJvcihlKTtcbiAgfVxuICBjb25zb2xlLmVycm9yKCdTMyBpc29sYXRpb24gdGVzdCBmYWlsZWQhJyk7XG4gIHJldHVybiBmYWxzZTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc29sYXRpb25Mb2dzVGVzdCA9IGFzeW5jIChpbnB1dDogQ3JlYXRlTG9nU3RyZWFtQ29tbWFuZElucHV0KTogUHJvbWlzZTxib29sZWFuPiA9PiB7XG4gIGNvbnN0IGNsaWVudCA9IG5ldyBDbG91ZFdhdGNoTG9nc0NsaWVudCgpO1xuICB0cnkge1xuICAgIGNvbnN0IHJhbmRvbVN0cmluZyA9IE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnNsaWNlKDIsIDcpO1xuICAgIGF3YWl0IGNsaWVudC5zZW5kKG5ldyBDcmVhdGVMb2dTdHJlYW1Db21tYW5kKHsuLi5pbnB1dCwgbG9nU3RyZWFtTmFtZTogYG5ld19sb2dfc3RyZWFtXyR7cmFuZG9tU3RyaW5nfWB9KSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBpZiAoaGFzRXJyb3JOYW1lKGUsICdBY2Nlc3NEZW5pZWRFeGNlcHRpb24nKSkgcmV0dXJuIHRydWU7XG4gICAgY29uc29sZS5lcnJvcihlKTtcbiAgfVxuICBjb25zb2xlLmVycm9yKCdMb2cgZ3JvdXAgaXNvbGF0aW9uIHRlc3QgZmFpbGVkIScpO1xuICByZXR1cm4gZmFsc2U7XG59O1xuXG5leHBvcnQgY29uc3QgaXNvbGF0aW9uRGFsVGVzdCA9IGFzeW5jIChpbnB1dDoge2RhbEtleT86IHN0cmluZzsgZGFsUHJvamVjdEVudmlyb25tZW50Pzogc3RyaW5nfSk6IFByb21pc2U8Ym9vbGVhbj4gPT4ge1xuICBpZiAoIXByb2Nlc3MuZW52LkFXU19SRUdJT04gfHwgIWlucHV0LmRhbEtleSB8fCAhaW5wdXQuZGFsUHJvamVjdEVudmlyb25tZW50KSB7XG4gICAgY29uc29sZS5lcnJvcignREFMIGlzb2xhdGlvbiB0ZXN0IGZhaWxlZDogbWlzc2luZyByZXF1aXJlZCBwYXJhbWV0ZXJzJyk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGNvbnN0IHRhYmxlTmFtZSA9IGBEYXRhQWNjZXNzTGF5ZXItJHtwcm9jZXNzLmVudi5BV1NfUkVHSU9OfWA7XG4gIGNvbnN0IGRkYkNsaWVudCA9IER5bmFtb0RCRG9jdW1lbnRDbGllbnQuZnJvbShuZXcgRHluYW1vREJDbGllbnQoe3JlZ2lvbjogcHJvY2Vzcy5lbnYuQVdTX1JFR0lPTn0pKTtcbiAgdHJ5IHtcbiAgICBhd2FpdCBkZGJDbGllbnQuc2VuZChcbiAgICAgIG5ldyBHZXRDb21tYW5kKHtcbiAgICAgICAgVGFibGVOYW1lOiB0YWJsZU5hbWUsXG4gICAgICAgIEtleToge3Byb2plY3RFbnZpcm9ubWVudDogaW5wdXQuZGFsUHJvamVjdEVudmlyb25tZW50LCBrZXk6IGlucHV0LmRhbEtleX0sXG4gICAgICB9KSxcbiAgICApO1xuICB9IGNhdGNoIChlKSB7XG4gICAgaWYgKGhhc0Vycm9yTmFtZShlLCAnQWNjZXNzRGVuaWVkRXhjZXB0aW9uJykpIHJldHVybiB0cnVlO1xuICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gIH1cbiAgY29uc29sZS5lcnJvcihcIkRBTCBpc29sYXRpb24gdGVzdCBmYWlsZWQ6IFRhcmdldCBCIGFjY2Vzc2VkIFRhcmdldCBBJ3MgREFMIGVudHJ5XCIpO1xuICByZXR1cm4gZmFsc2U7XG59O1xuXG5leHBvcnQgY29uc3QgZXhlY3V0ZUlzb2xhdGlvblRlc3RzID0gYXN5bmMgKHBhcmFtczogSXNvbGF0aW9uVGVzdFBhcmFtcyk6IFByb21pc2U8VGVzdFJlc3VsdD4gPT4ge1xuICBjb25zdCB0ZXN0cyA9IFtcbiAgICB7bmFtZTogJ29yaWdpbicsIGtleXM6IFsnRnVuY3Rpb25OYW1lJ10sIGZuOiBpc29sYXRpb25PcmlnaW5MYW1iZGFUZXN0fSxcbiAgICB7bmFtZTogJ3N0b3JhZ2UnLCBrZXlzOiBbJ0J1Y2tldCcsICdLZXknLCAnUmVnaW9uJ10sIGZuOiBpc29sYXRpb25TM1Rlc3R9LFxuICAgIHtuYW1lOiAnbG9ncycsIGtleXM6IFsnbG9nR3JvdXBOYW1lJ10sIGZuOiBpc29sYXRpb25Mb2dzVGVzdH0sXG4gICAge25hbWU6ICdkYWwnLCBrZXlzOiBbJ2RhbEtleScsICdkYWxQcm9qZWN0RW52aXJvbm1lbnQnXSwgZm46IGlzb2xhdGlvbkRhbFRlc3R9LFxuICBdO1xuICBjb25zdCByZXN1bHRzOiBUZXN0UmVzdWx0ID0ge307XG4gIGZvciAoY29uc3QgdGVzdCBvZiB0ZXN0cykge1xuICAgIGNvbnN0IHtrZXlzLCBmbiwgbmFtZX0gPSB0ZXN0O1xuICAgIGNvbnN0IGlucHV0ID0gT2JqZWN0LmtleXMocGFyYW1zKVxuICAgICAgLmZpbHRlcigoa2V5KSA9PiBrZXlzLmluY2x1ZGVzKGtleSkpXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgLnJlZHVjZSgob2JqOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LCBrZXkpID0+IHtcbiAgICAgICAgb2JqW2tleV0gPSBwYXJhbXNba2V5IGFzIGtleW9mIElzb2xhdGlvblRlc3RQYXJhbXNdO1xuICAgICAgICByZXR1cm4gb2JqO1xuICAgICAgfSwge30pO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcmVzdWx0c1tuYW1lXSA9IGF3YWl0IGZuKGlucHV0IGFzIGFueSk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdHM7XG59O1xuXG5leHBvcnQgY29uc3QgaXNvbGF0aW9uVGVzdHMgPSBhc3luYyAocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCBleGVjdXRlSXNvbGF0aW9uVGVzdHMocmVxLnF1ZXJ5KTtcbiAgcmVzLmhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcbiAgcmVzLnNlbmQoSlNPTi5zdHJpbmdpZnkocmVzdWx0cywgbnVsbCwgNCkpO1xufTtcbiIsICIvLyNyZWdpb24gSW1wb3J0c1xuXG5pbXBvcnQgdXRpbCBmcm9tICdub2RlOnV0aWwnO1xuaW1wb3J0IHR5cGUgeyBCaW5hcnlTZXR0aW5ncywgU2luZ2xlVmFsdWVIZWFkZXJzIH0gZnJvbSAnLi4vLi4vQHR5cGVzJztcbmltcG9ydCB0eXBlIHtcbiAgQWRhcHRlckNvbnRyYWN0LFxuICBBZGFwdGVyUmVxdWVzdCxcbiAgRnJhbWV3b3JrQ29udHJhY3QsXG4gIFJlc29sdmVyQ29udHJhY3QsXG4gIFNlcnZlcmxlc3NIYW5kbGVyLFxufSBmcm9tICcuLi8uLi9jb250cmFjdHMnO1xuaW1wb3J0IHtcbiAgQmFzZUhhbmRsZXIsXG4gIHR5cGUgSUxvZ2dlcixcbiAgaXNCaW5hcnksXG4gIHNldEN1cnJlbnRJbnZva2UsXG4gIHdhaXRGb3JTdHJlYW1Db21wbGV0ZSxcbn0gZnJvbSAnLi4vLi4vY29yZSc7XG5pbXBvcnQgeyBTZXJ2ZXJsZXNzUmVzcG9uc2UgfSBmcm9tICcuLi8uLi9uZXR3b3JrJztcblxuLy8jZW5kcmVnaW9uXG5cbi8qKlxuICogVGhlIGNsYXNzIHRoYXQgaW1wbGVtZW50cyBhIGRlZmF1bHQgc2VydmVybGVzcyBoYW5kbGVyIGNvbnNpc3Rpbmcgb2YgYSBmdW5jdGlvbiB3aXRoIGV2ZW50LCBjb250ZXh0IGFuZCBjYWxsYmFjayBwYXJhbWV0ZXJzIHJlc3BlY3RpdmVseVxuICpcbiAqIEBicmVhZGNydW1iIEhhbmRsZXJzIC8gRGVmYXVsdEhhbmRsZXJcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNsYXNzIERlZmF1bHRIYW5kbGVyPFxuICBUQXBwLFxuICBURXZlbnQsXG4gIFRDb250ZXh0LFxuICBUQ2FsbGJhY2ssXG4gIFRSZXNwb25zZSxcbiAgVFJldHVybixcbj4gZXh0ZW5kcyBCYXNlSGFuZGxlcjxUQXBwLCBURXZlbnQsIFRDb250ZXh0LCBUQ2FsbGJhY2ssIFRSZXNwb25zZSwgVFJldHVybj4ge1xuICAvLyNyZWdpb24gUHVibGljIE1ldGhvZHNcblxuICAvKipcbiAgICoge0Bpbmhlcml0RG9jfVxuICAgKi9cbiAgcHVibGljIGdldEhhbmRsZXIoXG4gICAgYXBwOiBUQXBwLFxuICAgIGZyYW1ld29yazogRnJhbWV3b3JrQ29udHJhY3Q8VEFwcD4sXG4gICAgYWRhcHRlcnM6IEFkYXB0ZXJDb250cmFjdDxURXZlbnQsIFRDb250ZXh0LCBUUmVzcG9uc2U+W10sXG4gICAgcmVzb2x2ZXJGYWN0b3J5OiBSZXNvbHZlckNvbnRyYWN0PFxuICAgICAgVEV2ZW50LFxuICAgICAgVENvbnRleHQsXG4gICAgICBUQ2FsbGJhY2ssXG4gICAgICBUUmVzcG9uc2UsXG4gICAgICBUUmV0dXJuXG4gICAgPixcbiAgICBiaW5hcnlTZXR0aW5nczogQmluYXJ5U2V0dGluZ3MsXG4gICAgcmVzcG9uZFdpdGhFcnJvcnM6IGJvb2xlYW4sXG4gICAgbG9nOiBJTG9nZ2VyLFxuICApOiBTZXJ2ZXJsZXNzSGFuZGxlcjxUUmV0dXJuPiB7XG4gICAgcmV0dXJuIChldmVudDogVEV2ZW50LCBjb250ZXh0OiBUQ29udGV4dCwgY2FsbGJhY2s/OiBUQ2FsbGJhY2spID0+IHtcbiAgICAgIHRoaXMub25SZWNlaXZlUmVxdWVzdChcbiAgICAgICAgbG9nLFxuICAgICAgICBldmVudCxcbiAgICAgICAgY29udGV4dCxcbiAgICAgICAgYmluYXJ5U2V0dGluZ3MsXG4gICAgICAgIHJlc3BvbmRXaXRoRXJyb3JzLFxuICAgICAgKTtcblxuICAgICAgY29uc3QgYWRhcHRlciA9IHRoaXMuZ2V0QWRhcHRlckJ5RXZlbnRBbmRDb250ZXh0KFxuICAgICAgICBldmVudCxcbiAgICAgICAgY29udGV4dCxcbiAgICAgICAgYWRhcHRlcnMsXG4gICAgICAgIGxvZyxcbiAgICAgICk7XG5cbiAgICAgIHRoaXMub25SZXNvbHZlQWRhcHRlcihsb2csIGFkYXB0ZXIpO1xuXG4gICAgICBzZXRDdXJyZW50SW52b2tlKHsgZXZlbnQsIGNvbnRleHQgfSk7XG5cbiAgICAgIGNvbnN0IHJlc29sdmVyID0gcmVzb2x2ZXJGYWN0b3J5LmNyZWF0ZVJlc29sdmVyKHtcbiAgICAgICAgZXZlbnQsXG4gICAgICAgIGNvbnRleHQsXG4gICAgICAgIGNhbGxiYWNrLFxuICAgICAgICBsb2csXG4gICAgICAgIHJlc3BvbmRXaXRoRXJyb3JzLFxuICAgICAgICBhZGFwdGVyLFxuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiByZXNvbHZlci5ydW4oKCkgPT5cbiAgICAgICAgdGhpcy5mb3J3YXJkUmVxdWVzdFRvRnJhbWV3b3JrKFxuICAgICAgICAgIGFwcCxcbiAgICAgICAgICBmcmFtZXdvcmssXG4gICAgICAgICAgZXZlbnQsXG4gICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICBhZGFwdGVyLFxuICAgICAgICAgIGJpbmFyeVNldHRpbmdzLFxuICAgICAgICAgIGxvZyxcbiAgICAgICAgKSxcbiAgICAgICk7XG4gICAgfTtcbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBIb29rc1xuXG4gIC8qKlxuICAgKiBUaGUgaG9vayBleGVjdXRlZCBvbiByZWNlaXZlIGEgcmVxdWVzdCwgYmVmb3JlIHRoZSByZXF1ZXN0IGlzIGJlaW5nIHByb2Nlc3NlZFxuICAgKlxuICAgKiBAcGFyYW0gbG9nIC0gVGhlIGluc3RhbmNlIG9mIGxvZ2dlclxuICAgKiBAcGFyYW0gZXZlbnQgLSBUaGUgZXZlbnQgc2VudCBieSBzZXJ2ZXJsZXNzXG4gICAqIEBwYXJhbSBjb250ZXh0IC0gVGhlIGNvbnRleHQgc2VudCBieSBzZXJ2ZXJsZXNzXG4gICAqIEBwYXJhbSBiaW5hcnlTZXR0aW5ncyAtIFRoZSBiaW5hcnkgc2V0dGluZ3NcbiAgICogQHBhcmFtIHJlc3BvbmRXaXRoRXJyb3JzIC0gSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGVycm9yIHN0YWNrIHNob3VsZCBiZSBpbmNsdWRlZCBpbiB0aGUgcmVzcG9uc2Ugb3Igbm90XG4gICAqL1xuICBwcm90ZWN0ZWQgb25SZWNlaXZlUmVxdWVzdChcbiAgICBsb2c6IElMb2dnZXIsXG4gICAgZXZlbnQ6IFRFdmVudCxcbiAgICBjb250ZXh0OiBUQ29udGV4dCxcbiAgICBiaW5hcnlTZXR0aW5nczogQmluYXJ5U2V0dGluZ3MsXG4gICAgcmVzcG9uZFdpdGhFcnJvcnM6IGJvb2xlYW4sXG4gICk6IHZvaWQge1xuICAgIGxvZy5kZWJ1ZygnU0VSVkVSTEVTU19BREFQVEVSOlBST1hZJywgKCkgPT4gKHtcbiAgICAgIGV2ZW50OiB1dGlsLmluc3BlY3QoZXZlbnQsIHsgZGVwdGg6IG51bGwgfSksXG4gICAgICBjb250ZXh0OiB1dGlsLmluc3BlY3QoY29udGV4dCwgeyBkZXB0aDogbnVsbCB9KSxcbiAgICAgIGJpbmFyeVNldHRpbmdzLFxuICAgICAgcmVzcG9uZFdpdGhFcnJvcnMsXG4gICAgfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBob29rIGV4ZWN1dGVkIGFmdGVyIHJlc29sdmUgdGhlIGFkYXB0ZXIgdGhhdCB3aWxsIGJlIHVzZWQgdG8gaGFuZGxlIHRoZSByZXF1ZXN0IGFuZCByZXNwb25zZVxuICAgKlxuICAgKiBAcGFyYW0gbG9nIC0gVGhlIGluc3RhbmNlIG9mIGxvZ2dlclxuICAgKiBAcGFyYW0gYWRhcHRlciAtIFRoZSBhZGFwdGVyIHJlc29sdmVkXG4gICAqL1xuICBwcm90ZWN0ZWQgb25SZXNvbHZlQWRhcHRlcihcbiAgICBsb2c6IElMb2dnZXIsXG4gICAgYWRhcHRlcjogQWRhcHRlckNvbnRyYWN0PFRFdmVudCwgVENvbnRleHQsIFRSZXNwb25zZT4sXG4gICk6IHZvaWQge1xuICAgIGxvZy5kZWJ1ZyhcbiAgICAgICdTRVJWRVJMRVNTX0FEQVBURVI6UkVTT0xWRURfQURBUFRFUl9OQU1FOiAnLFxuICAgICAgYWRhcHRlci5nZXRBZGFwdGVyTmFtZSgpLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGhvb2sgZXhlY3V0ZWQgYWZ0ZXIgcmVzb2x2ZXMgdGhlIHJlcXVlc3QgdmFsdWVzIHRoYXQgd2lsbCBiZSBzZW50IHRvIHRoZSBmcmFtZXdvcmtcbiAgICpcbiAgICogQHBhcmFtIGxvZyAtIFRoZSBpbnN0YW5jZSBvZiBsb2dnZXJcbiAgICogQHBhcmFtIHJlcXVlc3RWYWx1ZXMgLSBUaGUgcmVxdWVzdCB2YWx1ZXMgcmV0dXJuZWQgYnkgdGhlIGFkYXB0ZXJcbiAgICovXG4gIHByb3RlY3RlZCBvblJlc29sdmVSZXF1ZXN0VmFsdWVzKFxuICAgIGxvZzogSUxvZ2dlcixcbiAgICByZXF1ZXN0VmFsdWVzOiBBZGFwdGVyUmVxdWVzdCxcbiAgKTogdm9pZCB7XG4gICAgbG9nLmRlYnVnKFxuICAgICAgJ1NFUlZFUkxFU1NfQURBUFRFUjpGT1JXQVJEX1JFUVVFU1RfVE9fRlJBTUVXT1JLOlJFUVVFU1RfVkFMVUVTJyxcbiAgICAgICgpID0+ICh7XG4gICAgICAgIHJlcXVlc3RWYWx1ZXM6IHtcbiAgICAgICAgICAuLi5yZXF1ZXN0VmFsdWVzLFxuICAgICAgICAgIGJvZHk6IHJlcXVlc3RWYWx1ZXMuYm9keT8udG9TdHJpbmcoKSxcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGhvb2sgZXhlY3V0ZWQgYWZ0ZXIgaGFuZGxpbmcgdGhlIHJlc3BvbnNlIHNlbnQgYnkgdGhlIGZyYW1ld29ya1xuICAgKlxuICAgKiBAcGFyYW0gbG9nIC0gVGhlIGluc3RhbmNlIG9mIGxvZ2dlclxuICAgKiBAcGFyYW0gcmVzcG9uc2UgLSBUaGUgcmVzcG9uc2Ugc2VudCBieSB0aGUgZnJhbWV3b3JrXG4gICAqL1xuICBwcm90ZWN0ZWQgb25SZXNvbHZlRm9yd2FyZGVkUmVzcG9uc2VUb0ZyYW1ld29yayhcbiAgICBsb2c6IElMb2dnZXIsXG4gICAgcmVzcG9uc2U6IFNlcnZlcmxlc3NSZXNwb25zZSxcbiAgKTogdm9pZCB7XG4gICAgbG9nLmRlYnVnKFxuICAgICAgJ1NFUlZFUkxFU1NfQURBUFRFUjpGT1JXQVJEX1JFUVVFU1RfVE9fRlJBTUVXT1JLOlJFU1BPTlNFJyxcbiAgICAgICgpID0+ICh7XG4gICAgICAgIHJlc3BvbnNlLFxuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgaG9vayBleGVjdXRlZCBiZWZvcmUgc2VuZGluZyByZXNwb25zZSB0byB0aGUgc2VydmVybGVzc1xuICAgKlxuICAgKiBAcGFyYW0gbG9nIC0gVGhlIGluc3RhbmNlIG9mIGxvZ2dlclxuICAgKiBAcGFyYW0gc3RhdHVzQ29kZSAtIFRoZSBzdGF0dXMgY29kZSBvZiB0aGUgcmVzcG9uc2VcbiAgICogQHBhcmFtIGJvZHkgLSBUaGUgYm9keSBvZiB0aGUgcmVzcG9uc2VcbiAgICogQHBhcmFtIGhlYWRlcnMgLSBUaGUgaGVhZGVycyBvZiB0aGUgcmVzcG9uc2VcbiAgICogQHBhcmFtIGlzQmFzZTY0RW5jb2RlZCAtIEluZGljYXRlcyB3aGV0aGVyIHRoZSByZXNwb25zZSB3YXMgZW5jb2RlZCBhcyBiaW5hcnkgb3Igbm90XG4gICAqL1xuICBwcm90ZWN0ZWQgb25Gb3J3YXJkUmVzcG9uc2UoXG4gICAgbG9nOiBJTG9nZ2VyLFxuICAgIHN0YXR1c0NvZGU6IG51bWJlcixcbiAgICBib2R5OiBzdHJpbmcsXG4gICAgaGVhZGVyczogU2luZ2xlVmFsdWVIZWFkZXJzLFxuICAgIGlzQmFzZTY0RW5jb2RlZDogYm9vbGVhbixcbiAgKSB7XG4gICAgbG9nLmRlYnVnKFxuICAgICAgJ1NFUlZFUkxFU1NfQURBUFRFUjpGT1JXQVJEX1JFU1BPTlNFOkVWRU5UX1NPVVJDRV9SRVNQT05TRV9QQVJBTVMnLFxuICAgICAgKCkgPT4gKHtcbiAgICAgICAgc3RhdHVzQ29kZSxcbiAgICAgICAgYm9keSxcbiAgICAgICAgaGVhZGVycyxcbiAgICAgICAgaXNCYXNlNjRFbmNvZGVkLFxuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgaG9vayBleGVjdXRlZCBiZWZvcmUgc2VuZGluZyByZXNwb25zZSB0byB0aGUgc2VydmVybGVzcyB3aXRoIHJlc3BvbnNlIGZyb20gYWRhcHRlclxuICAgKlxuICAgKiBAcGFyYW0gbG9nIC0gVGhlIGluc3RhbmNlIG9mIGxvZ2dlclxuICAgKiBAcGFyYW0gc3VjY2Vzc1Jlc3BvbnNlIC0gVGhlIHN1Y2Nlc3MgcmVzcG9uc2UgcmVzb2x2ZWQgYnkgdGhlIGFkYXB0ZXJcbiAgICogQHBhcmFtIGJvZHkgLSBUaGUgYm9keSBvZiB0aGUgcmVzcG9uc2Ugc2VudCBieSB0aGUgZnJhbWV3b3JrXG4gICAqL1xuICBwcm90ZWN0ZWQgb25Gb3J3YXJkUmVzcG9uc2VBZGFwdGVyUmVzcG9uc2UoXG4gICAgbG9nOiBJTG9nZ2VyLFxuICAgIHN1Y2Nlc3NSZXNwb25zZTogVFJlc3BvbnNlLFxuICAgIGJvZHk6IHN0cmluZyxcbiAgKSB7XG4gICAgbG9nLmRlYnVnKFxuICAgICAgJ1NFUlZFUkxFU1NfQURBUFRFUjpGT1JXQVJEX1JFU1BPTlNFOkVWRU5UX1NPVVJDRV9SRVNQT05TRScsXG4gICAgICAoKSA9PiAoe1xuICAgICAgICBzdWNjZXNzUmVzcG9uc2U6IHV0aWwuaW5zcGVjdChzdWNjZXNzUmVzcG9uc2UsIHsgZGVwdGg6IG51bGwgfSksXG4gICAgICAgIGJvZHksXG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIFByb3RlY3RlZCBNZXRob2RzXG5cbiAgLyoqXG4gICAqIFRoZSBmdW5jdGlvbiB0byBmb3J3YXJkIHRoZSBldmVudCB0byB0aGUgZnJhbWV3b3JrXG4gICAqXG4gICAqIEBwYXJhbSBhcHAgLSBUaGUgaW5zdGFuY2Ugb2YgdGhlIGFwcCAoZXhwcmVzcywgaGFwaSwgZXRjLi4uKVxuICAgKiBAcGFyYW0gZnJhbWV3b3JrIC0gVGhlIGZyYW1ld29yayB0aGF0IHdpbGwgcHJvY2VzcyByZXF1ZXN0c1xuICAgKiBAcGFyYW0gZXZlbnQgLSBUaGUgZXZlbnQgc2VudCBieSBzZXJ2ZXJsZXNzXG4gICAqIEBwYXJhbSBjb250ZXh0IC0gVGhlIGNvbnRleHQgc2VudCBieSBzZXJ2ZXJsZXNzXG4gICAqIEBwYXJhbSBhZGFwdGVyIC0gVGhlIGFkYXB0ZXIgcmVzb2x2ZWQgdG8gdGhpcyBldmVudFxuICAgKiBAcGFyYW0gbG9nIC0gVGhlIGluc3RhbmNlIG9mIGxvZ2dlclxuICAgKiBAcGFyYW0gYmluYXJ5U2V0dGluZ3MgLSBUaGUgYmluYXJ5IHNldHRpbmdzXG4gICAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgZm9yd2FyZFJlcXVlc3RUb0ZyYW1ld29yayhcbiAgICBhcHA6IFRBcHAsXG4gICAgZnJhbWV3b3JrOiBGcmFtZXdvcmtDb250cmFjdDxUQXBwPixcbiAgICBldmVudDogVEV2ZW50LFxuICAgIGNvbnRleHQ6IFRDb250ZXh0LFxuICAgIGFkYXB0ZXI6IEFkYXB0ZXJDb250cmFjdDxURXZlbnQsIFRDb250ZXh0LCBUUmVzcG9uc2U+LFxuICAgIGJpbmFyeVNldHRpbmdzOiBCaW5hcnlTZXR0aW5ncyxcbiAgICBsb2c6IElMb2dnZXIsXG4gICk6IFByb21pc2U8VFJlc3BvbnNlPiB7XG4gICAgY29uc3QgcmVxdWVzdFZhbHVlcyA9IGFkYXB0ZXIuZ2V0UmVxdWVzdChldmVudCwgY29udGV4dCwgbG9nKTtcblxuICAgIHRoaXMub25SZXNvbHZlUmVxdWVzdFZhbHVlcyhsb2csIHJlcXVlc3RWYWx1ZXMpO1xuXG4gICAgY29uc3QgW3JlcXVlc3QsIHJlc3BvbnNlXSA9XG4gICAgICB0aGlzLmdldFNlcnZlcmxlc3NSZXF1ZXN0UmVzcG9uc2VGcm9tQWRhcHRlclJlcXVlc3QocmVxdWVzdFZhbHVlcyk7XG5cbiAgICBmcmFtZXdvcmsuc2VuZFJlcXVlc3QoYXBwLCByZXF1ZXN0LCByZXNwb25zZSk7XG5cbiAgICBhd2FpdCB3YWl0Rm9yU3RyZWFtQ29tcGxldGUocmVzcG9uc2UpO1xuXG4gICAgdGhpcy5vblJlc29sdmVGb3J3YXJkZWRSZXNwb25zZVRvRnJhbWV3b3JrKGxvZywgcmVzcG9uc2UpO1xuXG4gICAgcmV0dXJuIHRoaXMuZm9yd2FyZFJlc3BvbnNlKGV2ZW50LCByZXNwb25zZSwgYWRhcHRlciwgYmluYXJ5U2V0dGluZ3MsIGxvZyk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGZ1bmN0aW9uIHRvIGZvcndhcmQgdGhlIHJlc3BvbnNlIGJhY2sgdG8gdGhlIHNlcnZlcmxlc3NcbiAgICpcbiAgICogQHBhcmFtIGV2ZW50IC0gVGhlIGV2ZW50IHNlbnQgYnkgc2VydmVybGVzc1xuICAgKiBAcGFyYW0gcmVzcG9uc2UgLSBUaGUgcmVzcG9uc2Ugb2YgdGhlIGZyYW1ld29ya1xuICAgKiBAcGFyYW0gYWRhcHRlciAtIFRoZSBhZGFwdGVyIHJlc29sdmVkIHRvIHRoaXMgZXZlbnRcbiAgICogQHBhcmFtIGJpbmFyeVNldHRpbmdzIC0gVGhlIGJpbmFyeSBzZXR0aW5nc1xuICAgKiBAcGFyYW0gbG9nIC0gVGhlIGluc3RhbmNlIG9mIGxvZ2dlclxuICAgKi9cbiAgcHJvdGVjdGVkIGZvcndhcmRSZXNwb25zZShcbiAgICBldmVudDogVEV2ZW50LFxuICAgIHJlc3BvbnNlOiBTZXJ2ZXJsZXNzUmVzcG9uc2UsXG4gICAgYWRhcHRlcjogQWRhcHRlckNvbnRyYWN0PFRFdmVudCwgVENvbnRleHQsIFRSZXNwb25zZT4sXG4gICAgYmluYXJ5U2V0dGluZ3M6IEJpbmFyeVNldHRpbmdzLFxuICAgIGxvZzogSUxvZ2dlcixcbiAgKTogVFJlc3BvbnNlIHtcbiAgICBjb25zdCBzdGF0dXNDb2RlID0gcmVzcG9uc2Uuc3RhdHVzQ29kZTtcbiAgICBjb25zdCBoZWFkZXJzID0gU2VydmVybGVzc1Jlc3BvbnNlLmhlYWRlcnMocmVzcG9uc2UpO1xuICAgIGNvbnN0IGlzQmFzZTY0RW5jb2RlZCA9IGlzQmluYXJ5KGhlYWRlcnMsIGJpbmFyeVNldHRpbmdzKTtcbiAgICBjb25zdCBlbmNvZGluZyA9IGlzQmFzZTY0RW5jb2RlZCA/ICdiYXNlNjQnIDogJ3V0ZjgnO1xuICAgIGNvbnN0IGJvZHkgPSBTZXJ2ZXJsZXNzUmVzcG9uc2UuYm9keShyZXNwb25zZSkudG9TdHJpbmcoZW5jb2RpbmcpO1xuICAgIGNvbnN0IGxvZ0JvZHkgPSBpc0Jhc2U2NEVuY29kZWQgPyAnW0JBU0U2NF9FTkNPREVEXScgOiBib2R5O1xuXG4gICAgdGhpcy5vbkZvcndhcmRSZXNwb25zZShsb2csIHN0YXR1c0NvZGUsIGxvZ0JvZHksIGhlYWRlcnMsIGlzQmFzZTY0RW5jb2RlZCk7XG5cbiAgICBjb25zdCBzdWNjZXNzUmVzcG9uc2UgPSBhZGFwdGVyLmdldFJlc3BvbnNlKHtcbiAgICAgIGV2ZW50LFxuICAgICAgc3RhdHVzQ29kZSxcbiAgICAgIGJvZHksXG4gICAgICBoZWFkZXJzLFxuICAgICAgaXNCYXNlNjRFbmNvZGVkLFxuICAgICAgcmVzcG9uc2UsXG4gICAgICBsb2csXG4gICAgfSk7XG5cbiAgICB0aGlzLm9uRm9yd2FyZFJlc3BvbnNlQWRhcHRlclJlc3BvbnNlKGxvZywgc3VjY2Vzc1Jlc3BvbnNlLCBsb2dCb2R5KTtcblxuICAgIHJldHVybiBzdWNjZXNzUmVzcG9uc2U7XG4gIH1cblxuICAvLyNlbmRyZWdpb25cbn1cbiIsICIvLyNyZWdpb24gSW1wb3J0c1xuXG5pbXBvcnQgdHlwZSB7XG4gIERlbGVnYXRlZFJlc29sdmVyLFxuICBSZXNvbHZlcixcbiAgUmVzb2x2ZXJDb250cmFjdCxcbiAgUmVzb2x2ZXJQcm9wcyxcbn0gZnJvbSAnLi4vLi4vY29udHJhY3RzJztcblxuLy8jZW5kcmVnaW9uXG5cbi8qKlxuICogVGhlIGRlZmF1bHQgc2lnbmF0dXJlIG9mIHRoZSBjYWxsYmFjayBzZW50IGJ5IHNlcnZlcmxlc3NcbiAqXG4gKiBAYnJlYWRjcnVtYiBSZXNvbHZlcnMgLyBDYWxsYmFja1Jlc29sdmVyXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCB0eXBlIFNlcnZlcmxlc3NDYWxsYmFjazxUUmVzcG9uc2U+ID0gKFxuICBlcnJvcjogRXJyb3IgfCBudWxsLFxuICBzdWNjZXNzOiBUUmVzcG9uc2UgfCBudWxsLFxuKSA9PiB2b2lkO1xuXG4vKipcbiAqIFRoZSBjbGFzcyB0aGF0IGltcGxlbWVudHMgdGhlIHJlc29sdmVyIHVzaW5nIHRoZSBjYWxsYmFjayBmdW5jdGlvbiBzZW50IGJ5IHNlcnZlcmxlc3NcbiAqXG4gKiBAcmVtYXJrcyBUbyB1c2UgdGhpcyByZXNvbHZlciBvbiBBV1MsIHlvdSBNVVNUIGxlYXZlIGB7QGxpbmsgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvbm9kZWpzLWNvbnRleHQuaHRtbCB8IGNhbGxiYWNrV2FpdHNGb3JFbXB0eUV2ZW50TG9vcH1gIGFzIHRydWUsIG90aGVyd2lzZSwgQVdTIHdpbGwgbm90IHdhaXQgZm9yIHRoaXMgcmVzb2x2ZXIgdG8gcmVzb2x2ZS5cbiAqXG4gKiBAYnJlYWRjcnVtYiBSZXNvbHZlcnMgLyBDYWxsYmFja1Jlc29sdmVyXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjbGFzcyBDYWxsYmFja1Jlc29sdmVyPFRFdmVudCwgVENvbnRleHQsIFRSZXNwb25zZT5cbiAgaW1wbGVtZW50c1xuICAgIFJlc29sdmVyQ29udHJhY3Q8VEV2ZW50LCBUQ29udGV4dCwgU2VydmVybGVzc0NhbGxiYWNrPGFueT4sIFRSZXNwb25zZSwgdm9pZD5cbntcbiAgLyoqXG4gICAqIHtAaW5oZXJpdERvY31cbiAgICovXG4gIHB1YmxpYyBjcmVhdGVSZXNvbHZlcih7XG4gICAgY2FsbGJhY2ssXG4gICAgZXZlbnQsXG4gICAgbG9nLFxuICAgIHJlc3BvbmRXaXRoRXJyb3JzLFxuICAgIGFkYXB0ZXIsXG4gIH06IFJlc29sdmVyUHJvcHM8XG4gICAgVEV2ZW50LFxuICAgIFRDb250ZXh0LFxuICAgIFNlcnZlcmxlc3NDYWxsYmFjazxhbnk+LFxuICAgIFRSZXNwb25zZVxuICA+KTogUmVzb2x2ZXI8YW55LCB2b2lkPiB7XG4gICAgaWYgKCFjYWxsYmFjaykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnQ291bGQgbm90IGZpZ3VyZSBvdXQgaG93IHRvIGNyZWF0ZSB0aGUgcmVzb2x2ZXIgYmVjYXVzZSB0aGUgXCJjYWxsYmFja1wiIGFyZ3VtZW50IHdhcyBub3Qgc2VudC4nLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBkZWxlZ2F0ZWRSZXNvbHZlcjogRGVsZWdhdGVkUmVzb2x2ZXI8YW55PiA9IHtcbiAgICAgIHN1Y2NlZWQ6IHJlc3BvbnNlID0+IGNhbGxiYWNrKG51bGwsIHJlc3BvbnNlKSxcbiAgICAgIGZhaWw6IGVycm9yID0+IGNhbGxiYWNrKGVycm9yLCBudWxsKSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHJ1bjogdGFzayA9PiB7XG4gICAgICAgIHRhc2soKVxuICAgICAgICAgIC50aGVuKHJlc3BvbnNlID0+IGRlbGVnYXRlZFJlc29sdmVyLnN1Y2NlZWQocmVzcG9uc2UpKVxuICAgICAgICAgIC5jYXRjaChlcnJvciA9PiB7XG4gICAgICAgICAgICBsb2cuZXJyb3IoXG4gICAgICAgICAgICAgICdTRVJWRVJMRVNTX0FEQVBURVI6UkVTUE9ORF9UT19FVkVOVF9TT1VSQ0VfV0lUSF9FUlJPUicsXG4gICAgICAgICAgICAgIGVycm9yLFxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgYWRhcHRlci5vbkVycm9yV2hpbGVGb3J3YXJkaW5nKHtcbiAgICAgICAgICAgICAgZGVsZWdhdGVkUmVzb2x2ZXIsXG4gICAgICAgICAgICAgIGVycm9yLFxuICAgICAgICAgICAgICBsb2csXG4gICAgICAgICAgICAgIGV2ZW50LFxuICAgICAgICAgICAgICByZXNwb25kV2l0aEVycm9ycyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgfSxcbiAgICB9O1xuICB9XG59XG4iLCAiLy8jcmVnaW9uIEltcG9ydHNcblxuaW1wb3J0IHR5cGUgeyBBTEJFdmVudCwgQUxCUmVzdWx0LCBDb250ZXh0IH0gZnJvbSAnYXdzLWxhbWJkYSc7XG5pbXBvcnQgdHlwZSB7XG4gIEFkYXB0ZXJDb250cmFjdCxcbiAgQWRhcHRlclJlcXVlc3QsXG4gIEdldFJlc3BvbnNlQWRhcHRlclByb3BzLFxuICBPbkVycm9yUHJvcHMsXG59IGZyb20gJy4uLy4uL2NvbnRyYWN0cyc7XG5pbXBvcnQge1xuICB0eXBlIFN0cmlwQmFzZVBhdGhGbixcbiAgYnVpbGRTdHJpcEJhc2VQYXRoLFxuICBnZXRFdmVudEJvZHlBc0J1ZmZlcixcbiAgZ2V0RmxhdHRlbmVkSGVhZGVyc01hcCxcbiAgZ2V0TXVsdGlWYWx1ZUhlYWRlcnNNYXAsXG4gIGdldFBhdGhXaXRoUXVlcnlTdHJpbmdQYXJhbXMsXG59IGZyb20gJy4uLy4uL2NvcmUnO1xuXG4vLyNlbmRyZWdpb25cblxuLyoqXG4gKiBUaGUgb3B0aW9ucyB0byBjdXN0b21pemUgdGhlIHtAbGluayBBbGJBZGFwdGVyfVxuICpcbiAqIEBicmVhZGNydW1iIEFkYXB0ZXJzIC8gQVdTIC8gQWxiQWRhcHRlclxuICogQHB1YmxpY1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEFsYkFkYXB0ZXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIFN0cmlwIGJhc2UgcGF0aCBmb3IgY3VzdG9tIGRvbWFpbnNcbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSAnJ1xuICAgKi9cbiAgc3RyaXBCYXNlUGF0aD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGUgYWRhcHRlciB0byBoYW5kbGUgcmVxdWVzdHMgZnJvbSBBV1MgQUxCXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHN0cmlwQmFzZVBhdGggPSAnL2FueS9jdXN0b20vYmFzZS9wYXRoJzsgLy8gZGVmYXVsdCAnJ1xuICogY29uc3QgYWRhcHRlciA9IG5ldyBBbGJBZGFwdGVyKHsgc3RyaXBCYXNlUGF0aCB9KTtcbiAqIGBgYFxuICpcbiAqIHtAbGluayBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9zZXJ2aWNlcy1hbGIuaHRtbCB8IEV2ZW50IFJlZmVyZW5jZX1cbiAqXG4gKiBAYnJlYWRjcnVtYiBBZGFwdGVycyAvIEFXUyAvIEFsYkFkYXB0ZXJcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNsYXNzIEFsYkFkYXB0ZXJcbiAgaW1wbGVtZW50cyBBZGFwdGVyQ29udHJhY3Q8QUxCRXZlbnQsIENvbnRleHQsIEFMQlJlc3VsdD5cbntcbiAgLy8jcmVnaW9uIENvbnN0cnVjdG9yXG5cbiAgLyoqXG4gICAqIERlZmF1bHQgY29uc3RydWN0b3JcbiAgICpcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyB0byBjdXN0b21pemUgdGhlIHtAbGluayBBbGJBZGFwdGVyfVxuICAgKi9cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHJlYWRvbmx5IG9wdGlvbnM/OiBBbGJBZGFwdGVyT3B0aW9ucykge1xuICAgIHRoaXMuc3RyaXBQYXRoRm4gPSBidWlsZFN0cmlwQmFzZVBhdGgodGhpcy5vcHRpb25zPy5zdHJpcEJhc2VQYXRoKTtcbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBQcm90ZWN0ZWQgUHJvcGVydGllc1xuXG4gIC8qKlxuICAgKiBTdHJpcCBiYXNlIHBhdGggZnVuY3Rpb25cbiAgICovXG4gIHByb3RlY3RlZCBzdHJpcFBhdGhGbjogU3RyaXBCYXNlUGF0aEZuO1xuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBQdWJsaWMgTWV0aG9kc1xuXG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2N9XG4gICAqL1xuICBwdWJsaWMgZ2V0QWRhcHRlck5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gQWxiQWRhcHRlci5uYW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIHtAaW5oZXJpdERvY31cbiAgICovXG4gIHB1YmxpYyBjYW5IYW5kbGUoZXZlbnQ6IHVua25vd24pOiBldmVudCBpcyBBTEJFdmVudCB7XG4gICAgY29uc3QgYWxiRXZlbnQgPSBldmVudCBhcyBQYXJ0aWFsPEFMQkV2ZW50PjtcblxuICAgIHJldHVybiAhIShhbGJFdmVudD8ucmVxdWVzdENvbnRleHQgJiYgYWxiRXZlbnQucmVxdWVzdENvbnRleHQuZWxiKTtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2N9XG4gICAqL1xuICBwdWJsaWMgZ2V0UmVxdWVzdChldmVudDogQUxCRXZlbnQpOiBBZGFwdGVyUmVxdWVzdCB7XG4gICAgY29uc3QgbWV0aG9kID0gZXZlbnQuaHR0cE1ldGhvZDtcbiAgICBjb25zdCBwYXRoID0gdGhpcy5nZXRQYXRoRnJvbUV2ZW50KGV2ZW50KTtcblxuICAgIGNvbnN0IGhlYWRlcnMgPSBldmVudC5tdWx0aVZhbHVlSGVhZGVyc1xuICAgICAgPyBnZXRGbGF0dGVuZWRIZWFkZXJzTWFwKGV2ZW50Lm11bHRpVmFsdWVIZWFkZXJzLCAnLCcsIHRydWUpXG4gICAgICA6IGV2ZW50LmhlYWRlcnMhO1xuXG4gICAgbGV0IGJvZHk6IEJ1ZmZlciB8IHVuZGVmaW5lZDtcblxuICAgIGlmIChldmVudC5ib2R5KSB7XG4gICAgICBjb25zdCBbYnVmZmVyQm9keSwgY29udGVudExlbmd0aF0gPSBnZXRFdmVudEJvZHlBc0J1ZmZlcihcbiAgICAgICAgZXZlbnQuYm9keSxcbiAgICAgICAgZXZlbnQuaXNCYXNlNjRFbmNvZGVkLFxuICAgICAgKTtcblxuICAgICAgYm9keSA9IGJ1ZmZlckJvZHk7XG4gICAgICBoZWFkZXJzWydjb250ZW50LWxlbmd0aCddID0gU3RyaW5nKGNvbnRlbnRMZW5ndGgpO1xuICAgIH1cblxuICAgIGxldCByZW1vdGVBZGRyZXNzID0gJyc7XG5cbiAgICAvLyByZWY6IGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9lbGFzdGljbG9hZGJhbGFuY2luZy9sYXRlc3QvYXBwbGljYXRpb24veC1mb3J3YXJkZWQtaGVhZGVycy5odG1sI3gtZm9yd2FyZGVkLWZvclxuICAgIGlmIChoZWFkZXJzWyd4LWZvcndhcmRlZC1mb3InXSkgcmVtb3RlQWRkcmVzcyA9IGhlYWRlcnNbJ3gtZm9yd2FyZGVkLWZvciddO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIG1ldGhvZCxcbiAgICAgIGhlYWRlcnMsXG4gICAgICBib2R5LFxuICAgICAgcmVtb3RlQWRkcmVzcyxcbiAgICAgIHBhdGgsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2N9XG4gICAqL1xuICBwdWJsaWMgZ2V0UmVzcG9uc2Uoe1xuICAgIGV2ZW50LFxuICAgIGhlYWRlcnM6IHJlc3BvbnNlSGVhZGVycyxcbiAgICBib2R5LFxuICAgIGlzQmFzZTY0RW5jb2RlZCxcbiAgICBzdGF0dXNDb2RlLFxuICB9OiBHZXRSZXNwb25zZUFkYXB0ZXJQcm9wczxBTEJFdmVudD4pOiBBTEJSZXN1bHQge1xuICAgIGNvbnN0IG11bHRpVmFsdWVIZWFkZXJzID0gIWV2ZW50LmhlYWRlcnNcbiAgICAgID8gZ2V0TXVsdGlWYWx1ZUhlYWRlcnNNYXAocmVzcG9uc2VIZWFkZXJzKVxuICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICBjb25zdCBoZWFkZXJzID0gZXZlbnQuaGVhZGVyc1xuICAgICAgPyBnZXRGbGF0dGVuZWRIZWFkZXJzTWFwKHJlc3BvbnNlSGVhZGVycylcbiAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgaWYgKGhlYWRlcnMgJiYgaGVhZGVyc1sndHJhbnNmZXItZW5jb2RpbmcnXSA9PT0gJ2NodW5rZWQnKVxuICAgICAgZGVsZXRlIGhlYWRlcnNbJ3RyYW5zZmVyLWVuY29kaW5nJ107XG5cbiAgICBpZiAoXG4gICAgICBtdWx0aVZhbHVlSGVhZGVycyAmJlxuICAgICAgbXVsdGlWYWx1ZUhlYWRlcnNbJ3RyYW5zZmVyLWVuY29kaW5nJ10/LmluY2x1ZGVzKCdjaHVua2VkJylcbiAgICApXG4gICAgICBkZWxldGUgbXVsdGlWYWx1ZUhlYWRlcnNbJ3RyYW5zZmVyLWVuY29kaW5nJ107XG5cbiAgICByZXR1cm4ge1xuICAgICAgc3RhdHVzQ29kZSxcbiAgICAgIGJvZHksXG4gICAgICBoZWFkZXJzLFxuICAgICAgbXVsdGlWYWx1ZUhlYWRlcnMsXG4gICAgICBpc0Jhc2U2NEVuY29kZWQsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2N9XG4gICAqL1xuICBwdWJsaWMgb25FcnJvcldoaWxlRm9yd2FyZGluZyh7XG4gICAgZXJyb3IsXG4gICAgZGVsZWdhdGVkUmVzb2x2ZXIsXG4gICAgcmVzcG9uZFdpdGhFcnJvcnMsXG4gICAgZXZlbnQsXG4gICAgbG9nLFxuICB9OiBPbkVycm9yUHJvcHM8QUxCRXZlbnQsIEFMQlJlc3VsdD4pOiB2b2lkIHtcbiAgICBjb25zdCBib2R5ID0gcmVzcG9uZFdpdGhFcnJvcnMgPyBlcnJvci5zdGFjayB8fCAnJyA6ICcnO1xuICAgIGNvbnN0IGVycm9yUmVzcG9uc2UgPSB0aGlzLmdldFJlc3BvbnNlKHtcbiAgICAgIGV2ZW50LFxuICAgICAgc3RhdHVzQ29kZTogNTAwLFxuICAgICAgYm9keSxcbiAgICAgIGhlYWRlcnM6IHt9LFxuICAgICAgaXNCYXNlNjRFbmNvZGVkOiBmYWxzZSxcbiAgICAgIGxvZyxcbiAgICB9KTtcblxuICAgIGRlbGVnYXRlZFJlc29sdmVyLnN1Y2NlZWQoZXJyb3JSZXNwb25zZSk7XG4gIH1cblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gUHJvdGVjdGVkIE1ldGhvZHNcblxuICAvKipcbiAgICogR2V0IHBhdGggZnJvbSBldmVudCB3aXRoIHF1ZXJ5IHN0cmluZ3NcbiAgICpcbiAgICogQHBhcmFtIGV2ZW50IC0gVGhlIGV2ZW50IHNlbnQgYnkgc2VydmVybGVzc1xuICAgKi9cbiAgcHJvdGVjdGVkIGdldFBhdGhGcm9tRXZlbnQoZXZlbnQ6IEFMQkV2ZW50KTogc3RyaW5nIHtcbiAgICBjb25zdCBwYXRoID0gdGhpcy5zdHJpcFBhdGhGbihldmVudC5wYXRoKTtcblxuICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0gZXZlbnQuaGVhZGVyc1xuICAgICAgPyBldmVudC5xdWVyeVN0cmluZ1BhcmFtZXRlcnNcbiAgICAgIDogZXZlbnQubXVsdGlWYWx1ZVF1ZXJ5U3RyaW5nUGFyYW1ldGVycztcblxuICAgIHJldHVybiBnZXRQYXRoV2l0aFF1ZXJ5U3RyaW5nUGFyYW1zKHBhdGgsIHF1ZXJ5UGFyYW1zIHx8IHt9KTtcbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxufVxuIiwgIi8vI3JlZ2lvbiBJbXBvcnRzXG5cbmltcG9ydCB0eXBlIHsgQVBJR2F0ZXdheVByb3h5UmVzdWx0LCBDb250ZXh0IH0gZnJvbSAnYXdzLWxhbWJkYSc7XG5pbXBvcnQgdHlwZSB7IEFQSUdhdGV3YXlQcm94eUV2ZW50IH0gZnJvbSAnYXdzLWxhbWJkYS90cmlnZ2VyL2FwaS1nYXRld2F5LXByb3h5JztcbmltcG9ydCB0eXBlIHtcbiAgQWRhcHRlckNvbnRyYWN0LFxuICBBZGFwdGVyUmVxdWVzdCxcbiAgR2V0UmVzcG9uc2VBZGFwdGVyUHJvcHMsXG4gIE9uRXJyb3JQcm9wcyxcbn0gZnJvbSAnLi4vLi4vY29udHJhY3RzJztcbmltcG9ydCB7IGtleXNUb0xvd2VyY2FzZSB9IGZyb20gJy4uLy4uL2NvcmUnO1xuaW1wb3J0IHtcbiAgdHlwZSBTdHJpcEJhc2VQYXRoRm4sXG4gIGJ1aWxkU3RyaXBCYXNlUGF0aCxcbiAgZ2V0RGVmYXVsdElmVW5kZWZpbmVkLFxuICBnZXRFdmVudEJvZHlBc0J1ZmZlcixcbiAgZ2V0TXVsdGlWYWx1ZUhlYWRlcnNNYXAsXG4gIGdldFBhdGhXaXRoUXVlcnlTdHJpbmdQYXJhbXMsXG59IGZyb20gJy4uLy4uL2NvcmUnO1xuXG4vLyNlbmRyZWdpb25cblxuLyoqXG4gKiBUaGUgb3B0aW9ucyB0byBjdXN0b21pemUgdGhlIHtAbGluayBBcGlHYXRld2F5VjFBZGFwdGVyfVxuICpcbiAqIEBicmVhZGNydW1iIEFkYXB0ZXJzIC8gQVdTIC8gQXBpR2F0ZXdheVYxQWRhcHRlclxuICogQHB1YmxpY1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEFwaUdhdGV3YXlWMU9wdGlvbnMge1xuICAvKipcbiAgICogU3RyaXAgYmFzZSBwYXRoIGZvciBjdXN0b20gZG9tYWluc1xuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlICcnXG4gICAqL1xuICBzdHJpcEJhc2VQYXRoPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaHJvdyBhbiBleGNlcHRpb24gd2hlbiB5b3Ugc2VuZCB0aGUgYHRyYW5zZmVyLWVuY29kaW5nPWNodW5rZWRgLCBjdXJyZW50bHksIEFQSSBHYXRld2F5IGRvZXNuJ3Qgc3VwcG9ydCBjaHVua2VkIHRyYW5zZmVyLlxuICAgKiBJZiB0aGlzIGlzIHNldCB0byBgZmFsc2VgLCB3ZSB3aWxsIHJlbW92ZSB0aGUgYHRyYW5zZmVyLWVuY29kaW5nYCBoZWFkZXIgZnJvbSB0aGUgcmVzcG9uc2UgYW5kIGJ1ZmZlciB0aGUgcmVzcG9uc2UgYm9keVxuICAgKiB3aGlsZSB3ZSByZW1vdmUgdGhlIHNwZWNpYWwgY2hhcmFjdGVycyBpbnNlcnRlZCBieSB0aGUgY2h1bmtlZCBlbmNvZGluZy5cbiAgICpcbiAgICogQHJlbWFya3MgVG8gbGVhcm4gbW9yZSBodHRwczovL2dpdGh1Yi5jb20vSDRhZC9zZXJ2ZXJsZXNzLWFkYXB0ZXIvaXNzdWVzLzE2NVxuICAgKiBAZGVmYXVsdFZhbHVlIHRydWVcbiAgICovXG4gIHRocm93T25DaHVua2VkVHJhbnNmZXJFbmNvZGluZz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEVtdWxhdGVzIHRoZSBiZWhhdmlvciBvZiBOb2RlLmpzIGBodHRwYCBtb2R1bGUgYnkgZW5zdXJpbmcgYWxsIHJlcXVlc3QgaGVhZGVycyBhcmUgbG93ZXJjYXNlLlxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIGZhbHNlXG4gICAqL1xuICBsb3dlcmNhc2VSZXF1ZXN0SGVhZGVycz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogVGhlIGFkYXB0ZXIgdG8gaGFuZGxlIHJlcXVlc3RzIGZyb20gQVdTIEFwaSBHYXRld2F5IFYxXG4gKlxuICogQXMgcGVyIHtAbGluayBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYXBpZ2F0ZXdheS9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvYXBpLWdhdGV3YXkta25vd24taXNzdWVzLmh0bWwgfCBrbm93IGlzc3Vlc30sIHdlIHRocm93IGFuIGV4Y2VwdGlvbiB3aGVuIHlvdSBzZW5kIHRoZSBgdHJhbnNmZXItZW5jb2Rpbmc9Y2h1bmtlZGAsIGN1cnJlbnRseSwgQVBJIEdhdGV3YXkgZG9lc24ndCBzdXBwb3J0IGNodW5rZWQgdHJhbnNmZXIuXG4gKlxuICogQHJlbWFya3MgVGhpcyBhZGFwdGVyIGlzIG5vdCBmdWxseSBjb21wYXRpYmxlIHdpdGggXFxAdmVuZGlhL3NlcnZlcmxlc3MtZXhwcmVzcywgb24gXFxAdmVuZGlhIHRoZXkgZmlsdGVyIGB0cmFuc2Zlci1lbmNvZGluZz1jaHVua2VkYCBidXQgd2UgdGhyb3cgYW4gZXhjZXB0aW9uLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBzdHJpcEJhc2VQYXRoID0gJy9hbnkvY3VzdG9tL2Jhc2UvcGF0aCc7IC8vIGRlZmF1bHQgJydcbiAqIGNvbnN0IGFkYXB0ZXIgPSBuZXcgQXBpR2F0ZXdheVYxQWRhcHRlcih7IHN0cmlwQmFzZVBhdGggfSk7XG4gKiBgYGBcbiAqXG4gKiB7QGxpbmsgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FwaWdhdGV3YXkvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL2h0dHAtYXBpLWRldmVsb3AtaW50ZWdyYXRpb25zLWxhbWJkYS5odG1sIHwgRXZlbnQgUmVmZXJlbmNlfVxuICpcbiAqIEBicmVhZGNydW1iIEFkYXB0ZXJzIC8gQVdTIC8gQXBpR2F0ZXdheVYxQWRhcHRlclxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY2xhc3MgQXBpR2F0ZXdheVYxQWRhcHRlclxuICBpbXBsZW1lbnRzXG4gICAgQWRhcHRlckNvbnRyYWN0PEFQSUdhdGV3YXlQcm94eUV2ZW50LCBDb250ZXh0LCBBUElHYXRld2F5UHJveHlSZXN1bHQ+XG57XG4gIC8vI3JlZ2lvbiBDb25zdHJ1Y3RvclxuXG4gIC8qKlxuICAgKiBEZWZhdWx0IGNvbnN0cnVjdG9yXG4gICAqXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgdG8gY3VzdG9taXplIHRoZSB7QGxpbmsgQXBpR2F0ZXdheVYxQWRhcHRlcn1cbiAgICovXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCByZWFkb25seSBvcHRpb25zPzogQXBpR2F0ZXdheVYxT3B0aW9ucykge1xuICAgIHRoaXMuc3RyaXBQYXRoRm4gPSBidWlsZFN0cmlwQmFzZVBhdGgodGhpcy5vcHRpb25zPy5zdHJpcEJhc2VQYXRoKTtcbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBQcm90ZWN0ZWQgUHJvcGVydGllc1xuXG4gIC8qKlxuICAgKiBTdHJpcCBiYXNlIHBhdGggZnVuY3Rpb25cbiAgICovXG4gIHByb3RlY3RlZCBzdHJpcFBhdGhGbjogU3RyaXBCYXNlUGF0aEZuO1xuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBQdWJsaWMgTWV0aG9kc1xuXG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2N9XG4gICAqL1xuICBwdWJsaWMgZ2V0QWRhcHRlck5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gQXBpR2F0ZXdheVYxQWRhcHRlci5uYW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIHtAaW5oZXJpdERvY31cbiAgICovXG4gIHB1YmxpYyBjYW5IYW5kbGUoZXZlbnQ6IHVua25vd24pOiBldmVudCBpcyBBUElHYXRld2F5UHJveHlFdmVudCB7XG4gICAgY29uc3QgcGFydGlhbEV2ZW50VjEgPSBldmVudCBhcyBQYXJ0aWFsPEFQSUdhdGV3YXlQcm94eUV2ZW50PiAmIHtcbiAgICAgIHZlcnNpb24/OiAnMi4wJztcbiAgICB9O1xuXG4gICAgcmV0dXJuICEhKFxuICAgICAgcGFydGlhbEV2ZW50VjE/LnJlcXVlc3RDb250ZXh0ICYmXG4gICAgICBwYXJ0aWFsRXZlbnRWMS52ZXJzaW9uICE9PSAnMi4wJyAmJlxuICAgICAgcGFydGlhbEV2ZW50VjEuaGVhZGVycyAmJlxuICAgICAgcGFydGlhbEV2ZW50VjEubXVsdGlWYWx1ZUhlYWRlcnMgJiZcbiAgICAgICgocGFydGlhbEV2ZW50VjEucXVlcnlTdHJpbmdQYXJhbWV0ZXJzID09PSBudWxsICYmXG4gICAgICAgIHBhcnRpYWxFdmVudFYxLm11bHRpVmFsdWVRdWVyeVN0cmluZ1BhcmFtZXRlcnMgPT09IG51bGwpIHx8XG4gICAgICAgIChwYXJ0aWFsRXZlbnRWMS5xdWVyeVN0cmluZ1BhcmFtZXRlcnMgJiZcbiAgICAgICAgICBwYXJ0aWFsRXZlbnRWMS5tdWx0aVZhbHVlUXVlcnlTdHJpbmdQYXJhbWV0ZXJzKSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIHtAaW5oZXJpdERvY31cbiAgICovXG4gIHB1YmxpYyBnZXRSZXF1ZXN0KGV2ZW50OiBBUElHYXRld2F5UHJveHlFdmVudCk6IEFkYXB0ZXJSZXF1ZXN0IHtcbiAgICBjb25zdCBtZXRob2QgPSBldmVudC5odHRwTWV0aG9kO1xuICAgIGNvbnN0IGhlYWRlcnMgPSB0aGlzLm9wdGlvbnM/Lmxvd2VyY2FzZVJlcXVlc3RIZWFkZXJzXG4gICAgICA/IGtleXNUb0xvd2VyY2FzZShldmVudC5oZWFkZXJzKVxuICAgICAgOiB7IC4uLmV2ZW50LmhlYWRlcnMgfTtcblxuICAgIGZvciAoY29uc3QgbXVsdGlWYWx1ZUhlYWRlcktleSBvZiBPYmplY3Qua2V5cyhcbiAgICAgIGV2ZW50Lm11bHRpVmFsdWVIZWFkZXJzIHx8IHt9LFxuICAgICkpIHtcbiAgICAgIGNvbnN0IGhlYWRlclZhbHVlID0gZXZlbnQubXVsdGlWYWx1ZUhlYWRlcnNbbXVsdGlWYWx1ZUhlYWRlcktleV07XG5cbiAgICAgIC8vIGV2ZW50LmhlYWRlcnMgYnkgZGVmYXVsdCBvbmx5IHN0aWNrIHdpdGggZmlyc3QgdmFsdWUgaWYgdGhleSBzZWUgbXVsdGlwbGUgaGVhZGVyc1xuICAgICAgLy8gdGhlIG90aGVyIHZhbHVlcyB3aWxsIG9ubHkgYXBwZWFyIG9uIG11bHRpVmFsdWVIZWFkZXJLZXksIGluIHRoaXMgY2FzZVxuICAgICAgLy8gd2UgbG9vayBmb3IgaGVhZGVycyB3aXRoIG1vcmUgdGhhbiAxIGxlbmd0aCB3aGljaCBpcyB0aGUgd3JvbmcgdmFsdWVzIG9uIGV2ZW50LmhlYWRlcnNcbiAgICAgIC8vIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hcGlnYXRld2F5L2xhdGVzdC9kZXZlbG9wZXJndWlkZS9odHRwLWFwaS1kZXZlbG9wLWludGVncmF0aW9ucy1sYW1iZGEuaHRtbFxuICAgICAgaWYgKCFoZWFkZXJWYWx1ZSB8fCBoZWFkZXJWYWx1ZT8ubGVuZ3RoIDw9IDEpIGNvbnRpbnVlO1xuXG4gICAgICBoZWFkZXJzW211bHRpVmFsdWVIZWFkZXJLZXldID0gaGVhZGVyVmFsdWUuam9pbignLCcpO1xuICAgIH1cblxuICAgIGNvbnN0IHBhdGggPSB0aGlzLmdldFBhdGhGcm9tRXZlbnQoZXZlbnQpO1xuXG4gICAgbGV0IGJvZHk6IEJ1ZmZlciB8IHVuZGVmaW5lZDtcblxuICAgIGlmIChldmVudC5ib2R5KSB7XG4gICAgICBjb25zdCBbYnVmZmVyQm9keSwgY29udGVudExlbmd0aF0gPSBnZXRFdmVudEJvZHlBc0J1ZmZlcihcbiAgICAgICAgZXZlbnQuYm9keSxcbiAgICAgICAgZXZlbnQuaXNCYXNlNjRFbmNvZGVkLFxuICAgICAgKTtcblxuICAgICAgYm9keSA9IGJ1ZmZlckJvZHk7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3Jlc3RyaWN0LXBsdXMtb3BlcmFuZHNcbiAgICAgIGhlYWRlcnNbJ2NvbnRlbnQtbGVuZ3RoJ10gPSBjb250ZW50TGVuZ3RoICsgJyc7XG4gICAgfVxuXG4gICAgY29uc3QgcmVtb3RlQWRkcmVzcyA9IGV2ZW50LnJlcXVlc3RDb250ZXh0LmlkZW50aXR5LnNvdXJjZUlwO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIG1ldGhvZCxcbiAgICAgIGhlYWRlcnMsXG4gICAgICBib2R5LFxuICAgICAgcmVtb3RlQWRkcmVzcyxcbiAgICAgIHBhdGgsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2N9XG4gICAqL1xuICBwdWJsaWMgZ2V0UmVzcG9uc2Uoe1xuICAgIGhlYWRlcnM6IHJlc3BvbnNlSGVhZGVycyxcbiAgICBib2R5LFxuICAgIGlzQmFzZTY0RW5jb2RlZCxcbiAgICBzdGF0dXNDb2RlLFxuICAgIHJlc3BvbnNlLFxuICB9OiBHZXRSZXNwb25zZUFkYXB0ZXJQcm9wczxBUElHYXRld2F5UHJveHlFdmVudD4pOiBBUElHYXRld2F5UHJveHlSZXN1bHQge1xuICAgIGNvbnN0IG11bHRpVmFsdWVIZWFkZXJzID0gZ2V0TXVsdGlWYWx1ZUhlYWRlcnNNYXAocmVzcG9uc2VIZWFkZXJzKTtcblxuICAgIGNvbnN0IHNob3VsZFRocm93T25DaHVua2VkVHJhbnNmZXJFbmNvZGluZyA9IGdldERlZmF1bHRJZlVuZGVmaW5lZChcbiAgICAgIHRoaXMub3B0aW9ucz8udGhyb3dPbkNodW5rZWRUcmFuc2ZlckVuY29kaW5nLFxuICAgICAgdHJ1ZSxcbiAgICApO1xuICAgIGNvbnN0IHRyYW5zZmVyRW5jb2RpbmdIZWFkZXIgPSBtdWx0aVZhbHVlSGVhZGVyc1sndHJhbnNmZXItZW5jb2RpbmcnXTtcbiAgICBjb25zdCBoYXNUcmFuc2ZlckVuY29kaW5nQ2h1bmtlZCA9IHRyYW5zZmVyRW5jb2RpbmdIZWFkZXI/LnNvbWUodmFsdWUgPT5cbiAgICAgIHZhbHVlLmluY2x1ZGVzKCdjaHVua2VkJyksXG4gICAgKTtcblxuICAgIGlmIChoYXNUcmFuc2ZlckVuY29kaW5nQ2h1bmtlZCB8fCByZXNwb25zZT8uY2h1bmtlZEVuY29kaW5nKSB7XG4gICAgICBpZiAoc2hvdWxkVGhyb3dPbkNodW5rZWRUcmFuc2ZlckVuY29kaW5nKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAnY2h1bmtlZCBlbmNvZGluZyBpbiBoZWFkZXJzIGlzIG5vdCBzdXBwb3J0ZWQgYnkgQVBJIEdhdGV3YXkgVjEnLFxuICAgICAgICApO1xuICAgICAgfSBlbHNlIGRlbGV0ZSBtdWx0aVZhbHVlSGVhZGVyc1sndHJhbnNmZXItZW5jb2RpbmcnXTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgc3RhdHVzQ29kZSxcbiAgICAgIGJvZHksXG4gICAgICBtdWx0aVZhbHVlSGVhZGVycyxcbiAgICAgIGlzQmFzZTY0RW5jb2RlZCxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIHtAaW5oZXJpdERvY31cbiAgICovXG4gIHB1YmxpYyBvbkVycm9yV2hpbGVGb3J3YXJkaW5nKHtcbiAgICBlcnJvcixcbiAgICBkZWxlZ2F0ZWRSZXNvbHZlcixcbiAgICByZXNwb25kV2l0aEVycm9ycyxcbiAgICBldmVudCxcbiAgICBsb2csXG4gIH06IE9uRXJyb3JQcm9wczxBUElHYXRld2F5UHJveHlFdmVudCwgQVBJR2F0ZXdheVByb3h5UmVzdWx0Pik6IHZvaWQge1xuICAgIGNvbnN0IGJvZHkgPSByZXNwb25kV2l0aEVycm9ycyA/IGVycm9yLnN0YWNrIDogJyc7XG4gICAgY29uc3QgZXJyb3JSZXNwb25zZSA9IHRoaXMuZ2V0UmVzcG9uc2Uoe1xuICAgICAgZXZlbnQsXG4gICAgICBzdGF0dXNDb2RlOiA1MDAsXG4gICAgICBib2R5OiBib2R5IHx8ICcnLFxuICAgICAgaGVhZGVyczoge30sXG4gICAgICBpc0Jhc2U2NEVuY29kZWQ6IGZhbHNlLFxuICAgICAgbG9nLFxuICAgIH0pO1xuXG4gICAgZGVsZWdhdGVkUmVzb2x2ZXIuc3VjY2VlZChlcnJvclJlc3BvbnNlKTtcbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBQcm90ZWN0ZWQgTWV0aG9kc1xuXG4gIC8qKlxuICAgKiBHZXQgcGF0aCBmcm9tIGV2ZW50IHdpdGggcXVlcnkgc3RyaW5nc1xuICAgKlxuICAgKiBAcGFyYW0gZXZlbnQgLSBUaGUgZXZlbnQgc2VudCBieSBzZXJ2ZXJsZXNzXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0UGF0aEZyb21FdmVudChldmVudDogQVBJR2F0ZXdheVByb3h5RXZlbnQpOiBzdHJpbmcge1xuICAgIGNvbnN0IHBhdGggPSB0aGlzLnN0cmlwUGF0aEZuKGV2ZW50LnBhdGgpO1xuICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0gZXZlbnQubXVsdGlWYWx1ZVF1ZXJ5U3RyaW5nUGFyYW1ldGVycyB8fCB7fTtcblxuICAgIGlmIChldmVudC5xdWVyeVN0cmluZ1BhcmFtZXRlcnMpIHtcbiAgICAgIGZvciAoY29uc3QgcXVlcnlTdHJpbmdLZXkgb2YgT2JqZWN0LmtleXMoZXZlbnQucXVlcnlTdHJpbmdQYXJhbWV0ZXJzKSkge1xuICAgICAgICBjb25zdCBxdWVyeVN0cmluZ1ZhbHVlID0gZXZlbnQucXVlcnlTdHJpbmdQYXJhbWV0ZXJzW3F1ZXJ5U3RyaW5nS2V5XTtcblxuICAgICAgICBpZiAocXVlcnlTdHJpbmdWYWx1ZSA9PT0gdW5kZWZpbmVkKSBjb250aW51ZTtcblxuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkocXVlcnlQYXJhbXNbcXVlcnlTdHJpbmdLZXldKSlcbiAgICAgICAgICBxdWVyeVBhcmFtc1txdWVyeVN0cmluZ0tleV0gPSBbXTtcblxuICAgICAgICBpZiAocXVlcnlQYXJhbXNbcXVlcnlTdHJpbmdLZXldIS5pbmNsdWRlcyhxdWVyeVN0cmluZ1ZhbHVlKSkgY29udGludWU7XG5cbiAgICAgICAgcXVlcnlQYXJhbXNbcXVlcnlTdHJpbmdLZXldIS5wdXNoKHF1ZXJ5U3RyaW5nVmFsdWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBnZXRQYXRoV2l0aFF1ZXJ5U3RyaW5nUGFyYW1zKHBhdGgsIHF1ZXJ5UGFyYW1zKTtcbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxufVxuIiwgIi8vI3JlZ2lvbiBJbXBvcnRzXG5cbmltcG9ydCB0eXBlIHsgQVBJR2F0ZXdheVByb3h5RXZlbnRWMiwgQ29udGV4dCB9IGZyb20gJ2F3cy1sYW1iZGEnO1xuaW1wb3J0IHR5cGUgeyBBUElHYXRld2F5UHJveHlTdHJ1Y3R1cmVkUmVzdWx0VjIgfSBmcm9tICdhd3MtbGFtYmRhL3RyaWdnZXIvYXBpLWdhdGV3YXktcHJveHknO1xuaW1wb3J0IHR5cGUge1xuICBBZGFwdGVyQ29udHJhY3QsXG4gIEFkYXB0ZXJSZXF1ZXN0LFxuICBHZXRSZXNwb25zZUFkYXB0ZXJQcm9wcyxcbiAgT25FcnJvclByb3BzLFxufSBmcm9tICcuLi8uLi9jb250cmFjdHMnO1xuaW1wb3J0IHtcbiAgdHlwZSBTdHJpcEJhc2VQYXRoRm4sXG4gIGJ1aWxkU3RyaXBCYXNlUGF0aCxcbiAgZ2V0RGVmYXVsdElmVW5kZWZpbmVkLFxuICBnZXRFdmVudEJvZHlBc0J1ZmZlcixcbiAgZ2V0RmxhdHRlbmVkSGVhZGVyc01hcEFuZENvb2tpZXMsXG4gIGdldFBhdGhXaXRoUXVlcnlTdHJpbmdQYXJhbXMsXG59IGZyb20gJy4uLy4uL2NvcmUnO1xuXG4vLyNlbmRyZWdpb25cblxuLyoqXG4gKiBUaGUgb3B0aW9ucyB0byBjdXN0b21pemUgdGhlIHtAbGluayBBcGlHYXRld2F5VjJBZGFwdGVyfVxuICpcbiAqIEBicmVhZGNydW1iIEFkYXB0ZXJzIC8gQVdTIC8gQXBpR2F0ZXdheVYyQWRhcHRlclxuICogQHB1YmxpY1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEFwaUdhdGV3YXlWMk9wdGlvbnMge1xuICAvKipcbiAgICogU3RyaXAgYmFzZSBwYXRoIGZvciBjdXN0b20gZG9tYWluc1xuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlICcnXG4gICAqL1xuICBzdHJpcEJhc2VQYXRoPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaHJvdyBhbiBleGNlcHRpb24gd2hlbiB5b3Ugc2VuZCB0aGUgYHRyYW5zZmVyLWVuY29kaW5nPWNodW5rZWRgLCBjdXJyZW50bHksIEFQSSBHYXRld2F5IGRvZXNuJ3Qgc3VwcG9ydCBjaHVua2VkIHRyYW5zZmVyLlxuICAgKiBJZiB0aGlzIGlzIHNldCB0byBgZmFsc2VgLCB3ZSB3aWxsIHJlbW92ZSB0aGUgYHRyYW5zZmVyLWVuY29kaW5nYCBoZWFkZXIgZnJvbSB0aGUgcmVzcG9uc2UgYW5kIGJ1ZmZlciB0aGUgcmVzcG9uc2UgYm9keVxuICAgKiB3aGlsZSB3ZSByZW1vdmUgdGhlIHNwZWNpYWwgY2hhcmFjdGVycyBpbnNlcnRlZCBieSB0aGUgY2h1bmtlZCBlbmNvZGluZy5cbiAgICpcbiAgICogQHJlbWFya3MgVG8gbGVhcm4gbW9yZSBodHRwczovL2dpdGh1Yi5jb20vSDRhZC9zZXJ2ZXJsZXNzLWFkYXB0ZXIvaXNzdWVzLzE2NVxuICAgKiBAZGVmYXVsdFZhbHVlIHRydWVcbiAgICovXG4gIHRocm93T25DaHVua2VkVHJhbnNmZXJFbmNvZGluZz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogVGhlIGFkYXB0ZXIgdG8gaGFuZGxlIHJlcXVlc3RzIGZyb20gQVdTIEFwaSBHYXRld2F5IFYyXG4gKlxuICogQXMgcGVyIHtAbGluayBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYXBpZ2F0ZXdheS9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvYXBpLWdhdGV3YXkta25vd24taXNzdWVzLmh0bWwgfCBrbm93IGlzc3Vlc30sIHdlIHRocm93IGFuIGV4Y2VwdGlvbiB3aGVuIHlvdSBzZW5kIHRoZSBgdHJhbnNmZXItZW5jb2Rpbmc9Y2h1bmtlZGAuXG4gKiBCdXQsIGlmIHlvdSB1c2UgdGhpcyBhZGFwdGVyIHRvIGFjY2VwdCByZXF1ZXN0cyBmcm9tIEZ1bmN0aW9uIFVSTCwgeW91IGNhbiBhY2NlcHQgdGhlIGB0cmFuc2Zlci1lbmNvZGluZz1jaHVua2VkYCBjaGFuZ2luZyB0aGUgbWV0aG9kIG9mIGludm9jYXRpb24gZnJvbSBgQlVGRkVSRURgIHRvIGBSRVNQT05TRV9TVFJFQU1gLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBzdHJpcEJhc2VQYXRoID0gJy9hbnkvY3VzdG9tL2Jhc2UvcGF0aCc7IC8vIGRlZmF1bHQgJydcbiAqIGNvbnN0IGFkYXB0ZXIgPSBuZXcgQXBpR2F0ZXdheVYyQWRhcHRlcih7IHN0cmlwQmFzZVBhdGggfSk7XG4gKiBgYGBcbiAqXG4gKiB7QGxpbmsgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FwaWdhdGV3YXkvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL2h0dHAtYXBpLWRldmVsb3AtaW50ZWdyYXRpb25zLWxhbWJkYS5odG1sIHwgRXZlbnQgUmVmZXJlbmNlfVxuICpcbiAqIEBicmVhZGNydW1iIEFkYXB0ZXJzIC8gQVdTIC8gQXBpR2F0ZXdheVYyQWRhcHRlclxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY2xhc3MgQXBpR2F0ZXdheVYyQWRhcHRlclxuICBpbXBsZW1lbnRzXG4gICAgQWRhcHRlckNvbnRyYWN0PFxuICAgICAgQVBJR2F0ZXdheVByb3h5RXZlbnRWMixcbiAgICAgIENvbnRleHQsXG4gICAgICBBUElHYXRld2F5UHJveHlTdHJ1Y3R1cmVkUmVzdWx0VjJcbiAgICA+XG57XG4gIC8vI3JlZ2lvbiBDb25zdHJ1Y3RvclxuXG4gIC8qKlxuICAgKiBEZWZhdWx0IGNvbnN0cnVjdG9yXG4gICAqXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgdG8gY3VzdG9taXplIHRoZSB7QGxpbmsgQXBpR2F0ZXdheVYyQWRhcHRlcn1cbiAgICovXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCByZWFkb25seSBvcHRpb25zPzogQXBpR2F0ZXdheVYyT3B0aW9ucykge1xuICAgIHRoaXMuc3RyaXBQYXRoRm4gPSBidWlsZFN0cmlwQmFzZVBhdGgodGhpcy5vcHRpb25zPy5zdHJpcEJhc2VQYXRoKTtcbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBQcm90ZWN0ZWQgUHJvcGVydGllc1xuXG4gIC8qKlxuICAgKiBTdHJpcCBiYXNlIHBhdGggZnVuY3Rpb25cbiAgICovXG4gIHByb3RlY3RlZCBzdHJpcFBhdGhGbjogU3RyaXBCYXNlUGF0aEZuO1xuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBQdWJsaWMgTWV0aG9kc1xuXG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2N9XG4gICAqL1xuICBwdWJsaWMgZ2V0QWRhcHRlck5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gQXBpR2F0ZXdheVYyQWRhcHRlci5uYW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIHtAaW5oZXJpdERvY31cbiAgICovXG4gIHB1YmxpYyBjYW5IYW5kbGUoZXZlbnQ6IHVua25vd24pOiBldmVudCBpcyBBUElHYXRld2F5UHJveHlFdmVudFYyIHtcbiAgICBjb25zdCBhcGlHYXRld2F5RXZlbnQgPSBldmVudCBhcyBQYXJ0aWFsPEFQSUdhdGV3YXlQcm94eUV2ZW50VjI+ICYge1xuICAgICAgdmVyc2lvbj86IHN0cmluZztcbiAgICB9O1xuXG4gICAgcmV0dXJuICEhKFxuICAgICAgYXBpR2F0ZXdheUV2ZW50Py5yZXF1ZXN0Q29udGV4dCAmJiBhcGlHYXRld2F5RXZlbnQudmVyc2lvbiA9PT0gJzIuMCdcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIHtAaW5oZXJpdERvY31cbiAgICovXG4gIHB1YmxpYyBnZXRSZXF1ZXN0KGV2ZW50OiBBUElHYXRld2F5UHJveHlFdmVudFYyKTogQWRhcHRlclJlcXVlc3Qge1xuICAgIGNvbnN0IG1ldGhvZCA9IGV2ZW50LnJlcXVlc3RDb250ZXh0Lmh0dHAubWV0aG9kO1xuICAgIGNvbnN0IHBhdGggPSB0aGlzLmdldFBhdGhGcm9tRXZlbnQoZXZlbnQpO1xuICAgIC8vIGFjY29yZHMgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FwaWdhdGV3YXkvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL2h0dHAtYXBpLWRldmVsb3AtaW50ZWdyYXRpb25zLWxhbWJkYS5odG1sXG4gICAgLy8gYWxsIGhlYWRlcnMgYXJlIGxvd2VyY2FzZWQgYW5kIGNhbm5vdCBiZSBhcnJheVxuICAgIC8vIHNvIG5vIG5lZWQgdG8gZm9ybWF0LCBqdXN0IGEgc2hhbGxvdyBjb3B5IHdpbGwgd29yayBoZXJlXG4gICAgY29uc3QgaGVhZGVycyA9IHsgLi4uZXZlbnQuaGVhZGVycyB9O1xuXG4gICAgaWYgKGV2ZW50LmNvb2tpZXMpIGhlYWRlcnMuY29va2llID0gZXZlbnQuY29va2llcy5qb2luKCc7ICcpO1xuXG4gICAgbGV0IGJvZHk6IEJ1ZmZlciB8IHVuZGVmaW5lZDtcblxuICAgIGlmIChldmVudC5ib2R5KSB7XG4gICAgICBjb25zdCBbYnVmZmVyQm9keSwgY29udGVudExlbmd0aF0gPSBnZXRFdmVudEJvZHlBc0J1ZmZlcihcbiAgICAgICAgZXZlbnQuYm9keSxcbiAgICAgICAgZXZlbnQuaXNCYXNlNjRFbmNvZGVkLFxuICAgICAgKTtcblxuICAgICAgYm9keSA9IGJ1ZmZlckJvZHk7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3Jlc3RyaWN0LXBsdXMtb3BlcmFuZHNcbiAgICAgIGhlYWRlcnNbJ2NvbnRlbnQtbGVuZ3RoJ10gPSBjb250ZW50TGVuZ3RoICsgJyc7XG4gICAgfVxuXG4gICAgY29uc3QgcmVtb3RlQWRkcmVzcyA9IGV2ZW50LnJlcXVlc3RDb250ZXh0Lmh0dHAuc291cmNlSXA7XG5cbiAgICByZXR1cm4ge1xuICAgICAgbWV0aG9kLFxuICAgICAgaGVhZGVycyxcbiAgICAgIGJvZHksXG4gICAgICByZW1vdGVBZGRyZXNzLFxuICAgICAgcGF0aCxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIHtAaW5oZXJpdERvY31cbiAgICovXG4gIHB1YmxpYyBnZXRSZXNwb25zZSh7XG4gICAgaGVhZGVyczogcmVzcG9uc2VIZWFkZXJzLFxuICAgIGJvZHksXG4gICAgaXNCYXNlNjRFbmNvZGVkLFxuICAgIHN0YXR1c0NvZGUsXG4gICAgcmVzcG9uc2UsXG4gIH06IEdldFJlc3BvbnNlQWRhcHRlclByb3BzPEFQSUdhdGV3YXlQcm94eUV2ZW50VjI+KTogQVBJR2F0ZXdheVByb3h5U3RydWN0dXJlZFJlc3VsdFYyIHtcbiAgICBjb25zdCB7IGNvb2tpZXMsIGhlYWRlcnMgfSA9XG4gICAgICBnZXRGbGF0dGVuZWRIZWFkZXJzTWFwQW5kQ29va2llcyhyZXNwb25zZUhlYWRlcnMpO1xuXG4gICAgY29uc3Qgc2hvdWxkVGhyb3dPbkNodW5rZWRUcmFuc2ZlckVuY29kaW5nID0gZ2V0RGVmYXVsdElmVW5kZWZpbmVkKFxuICAgICAgdGhpcy5vcHRpb25zPy50aHJvd09uQ2h1bmtlZFRyYW5zZmVyRW5jb2RpbmcsXG4gICAgICB0cnVlLFxuICAgICk7XG5cbiAgICBjb25zdCB0cmFuc2ZlckVuY29kaW5nSGVhZGVyOiBzdHJpbmcgfCB1bmRlZmluZWQgPVxuICAgICAgaGVhZGVyc1sndHJhbnNmZXItZW5jb2RpbmcnXTtcblxuICAgIGNvbnN0IGhhc1RyYW5zZmVyRW5jb2RpbmdDaHVua2VkID1cbiAgICAgIHRyYW5zZmVyRW5jb2RpbmdIZWFkZXIgJiYgdHJhbnNmZXJFbmNvZGluZ0hlYWRlci5pbmNsdWRlcygnY2h1bmtlZCcpO1xuXG4gICAgaWYgKGhhc1RyYW5zZmVyRW5jb2RpbmdDaHVua2VkIHx8IHJlc3BvbnNlPy5jaHVua2VkRW5jb2RpbmcpIHtcbiAgICAgIGlmIChzaG91bGRUaHJvd09uQ2h1bmtlZFRyYW5zZmVyRW5jb2RpbmcpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICdjaHVua2VkIGVuY29kaW5nIGluIGhlYWRlcnMgaXMgbm90IHN1cHBvcnRlZCBieSBBUEkgR2F0ZXdheSBWMicsXG4gICAgICAgICk7XG4gICAgICB9IGVsc2UgZGVsZXRlIGhlYWRlcnNbJ3RyYW5zZmVyLWVuY29kaW5nJ107XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIHN0YXR1c0NvZGUsXG4gICAgICBib2R5LFxuICAgICAgaGVhZGVycyxcbiAgICAgIGlzQmFzZTY0RW5jb2RlZCxcbiAgICAgIGNvb2tpZXMsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2N9XG4gICAqL1xuICBwdWJsaWMgb25FcnJvcldoaWxlRm9yd2FyZGluZyh7XG4gICAgZXJyb3IsXG4gICAgZGVsZWdhdGVkUmVzb2x2ZXIsXG4gICAgcmVzcG9uZFdpdGhFcnJvcnMsXG4gICAgZXZlbnQsXG4gICAgbG9nLFxuICB9OiBPbkVycm9yUHJvcHM8XG4gICAgQVBJR2F0ZXdheVByb3h5RXZlbnRWMixcbiAgICBBUElHYXRld2F5UHJveHlTdHJ1Y3R1cmVkUmVzdWx0VjJcbiAgPik6IHZvaWQge1xuICAgIGNvbnN0IGJvZHkgPSByZXNwb25kV2l0aEVycm9ycyA/IGVycm9yLnN0YWNrIDogJyc7XG4gICAgY29uc3QgZXJyb3JSZXNwb25zZSA9IHRoaXMuZ2V0UmVzcG9uc2Uoe1xuICAgICAgZXZlbnQsXG4gICAgICBzdGF0dXNDb2RlOiA1MDAsXG4gICAgICBib2R5OiBib2R5IHx8ICcnLFxuICAgICAgaGVhZGVyczoge30sXG4gICAgICBpc0Jhc2U2NEVuY29kZWQ6IGZhbHNlLFxuICAgICAgbG9nLFxuICAgIH0pO1xuXG4gICAgZGVsZWdhdGVkUmVzb2x2ZXIuc3VjY2VlZChlcnJvclJlc3BvbnNlKTtcbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBQcm90ZWN0ZWQgTWV0aG9kc1xuXG4gIC8qKlxuICAgKiBHZXQgcGF0aCBmcm9tIGV2ZW50IHdpdGggcXVlcnkgc3RyaW5nc1xuICAgKlxuICAgKiBAcGFyYW0gZXZlbnQgLSBUaGUgZXZlbnQgc2VudCBieSBzZXJ2ZXJsZXNzXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0UGF0aEZyb21FdmVudChldmVudDogQVBJR2F0ZXdheVByb3h5RXZlbnRWMik6IHN0cmluZyB7XG4gICAgY29uc3QgcGF0aCA9IHRoaXMuc3RyaXBQYXRoRm4oZXZlbnQucmF3UGF0aCk7XG4gICAgY29uc3QgcXVlcnlQYXJhbXMgPSBldmVudC5yYXdRdWVyeVN0cmluZztcblxuICAgIHJldHVybiBnZXRQYXRoV2l0aFF1ZXJ5U3RyaW5nUGFyYW1zKHBhdGgsIHF1ZXJ5UGFyYW1zIHx8IHt9KTtcbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxufVxuIiwgIi8vI3JlZ2lvbiBJbXBvcnRzXG5cbmltcG9ydCB0eXBlIHsgQ29udGV4dCwgU1FTQmF0Y2hJdGVtRmFpbHVyZSB9IGZyb20gJ2F3cy1sYW1iZGEnO1xuaW1wb3J0IHR5cGUge1xuICBBZGFwdGVyQ29udHJhY3QsXG4gIEFkYXB0ZXJSZXF1ZXN0LFxuICBHZXRSZXNwb25zZUFkYXB0ZXJQcm9wcyxcbiAgT25FcnJvclByb3BzLFxufSBmcm9tICcuLi8uLi8uLi9jb250cmFjdHMnO1xuaW1wb3J0IHtcbiAgRW1wdHlSZXNwb25zZSxcbiAgdHlwZSBJRW1wdHlSZXNwb25zZSxcbiAgZ2V0RXZlbnRCb2R5QXNCdWZmZXIsXG59IGZyb20gJy4uLy4uLy4uL2NvcmUnO1xuXG4vLyNlbmRyZWdpb25cblxuLyoqXG4gKiBUaGUgb3B0aW9ucyB0byBjdXN0b21pemUgdGhlIHtAbGluayBBd3NTaW1wbGVBZGFwdGVyfVxuICpcbiAqIEBicmVhZGNydW1iIEFkYXB0ZXJzIC8gQVdTIC8gQVdTIFNpbXBsZSBBZGFwdGVyXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQVdTU2ltcGxlQWRhcHRlck9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIHBhdGggdGhhdCB3aWxsIGJlIHVzZWQgdG8gY3JlYXRlIGEgcmVxdWVzdCB0byBiZSBmb3J3YXJkZWQgdG8gdGhlIGZyYW1ld29yay5cbiAgICovXG4gIGZvcndhcmRQYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBodHRwIG1ldGhvZCB0aGF0IHdpbGwgYmUgdXNlZCB0byBjcmVhdGUgYSByZXF1ZXN0IHRvIGJlIGZvcndhcmRlZCB0byB0aGUgZnJhbWV3b3JrLlxuICAgKi9cbiAgZm9yd2FyZE1ldGhvZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVdTIFNlcnZpY2UgaG9zdCB0aGF0IHdpbGwgYmUgaW5qZWN0ZWQgaW5zaWRlIGhlYWRlcnMgdG8gZGV2ZWxvcGVyIGJlaW5nIGFibGUgdG8gdmFsaWRhdGUgaWYgcmVxdWVzdCBvcmlnaW5hdGUgZnJvbSB0aGUgbGlicmFyeS5cbiAgICovXG4gIGhvc3Q6IHN0cmluZztcblxuICAvKipcbiAgICogVGVsbHMgaWYgdGhpcyBhZGFwdGVyIHNob3VsZCBzdXBwb3J0IGJhdGNoIGl0ZW0gZmFpbHVyZXMuXG4gICAqL1xuICBiYXRjaD86IHRydWUgfCBmYWxzZTtcbn1cblxuLyoqXG4gKiBUaGUgYmF0Y2ggaXRlbSBmYWlsdXJlIHJlc3BvbnNlIGV4cGVjdGVkIGZyb20gdGhlIEFQSSBzZXJ2ZXJcbiAqXG4gKiBAYnJlYWRjcnVtYiBBZGFwdGVycyAvIEFXUyAvIEFXUyBTaW1wbGUgQWRhcHRlclxuICogQHB1YmxpY1xuICovXG5leHBvcnQgdHlwZSBCYXRjaEl0ZW1GYWlsdXJlUmVzcG9uc2UgPSBTUVNCYXRjaEl0ZW1GYWlsdXJlO1xuXG4vKipcbiAqIFRoZSBwb3NzaWJsZSBvcHRpb25zIG9mIHJlc3BvbnNlIGZvciB7QGxpbmsgQXdzU2ltcGxlQWRhcHRlcn1cbiAqXG4gKiBAYnJlYWRjcnVtYiBBZGFwdGVycyAvIEFXUyAvIEFXUyBTaW1wbGUgQWRhcHRlclxuICogQHB1YmxpY1xuICovXG5leHBvcnQgdHlwZSBBV1NTaW1wbGVBZGFwdGVyUmVzcG9uc2VUeXBlID1cbiAgfCBCYXRjaEl0ZW1GYWlsdXJlUmVzcG9uc2VcbiAgfCBJRW1wdHlSZXNwb25zZTtcblxuLyoqXG4gKiBUaGUgYWJzdHJhY3QgYWRhcHRlciB0byB1c2UgdG8gaW1wbGVtZW50IG90aGVyIHNpbXBsZSBBV1MgYWRhcHRlcnNcbiAqXG4gKiBAYnJlYWRjcnVtYiBBZGFwdGVycyAvIEFXUyAvIEFXUyBTaW1wbGUgQWRhcHRlclxuICogQHB1YmxpY1xuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQXdzU2ltcGxlQWRhcHRlcjxURXZlbnQ+XG4gIGltcGxlbWVudHMgQWRhcHRlckNvbnRyYWN0PFRFdmVudCwgQ29udGV4dCwgQVdTU2ltcGxlQWRhcHRlclJlc3BvbnNlVHlwZT5cbntcbiAgLy8jcmVnaW9uIENvbnN0cnVjdG9yXG5cbiAgLyoqXG4gICAqIERlZmF1bHQgY29uc3RydWN0b3JcbiAgICpcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyB0byBjdXN0b21pemUgdGhlIHtAbGluayBBd3NTaW1wbGVBZGFwdGVyfVxuICAgKi9cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHJlYWRvbmx5IG9wdGlvbnM6IEFXU1NpbXBsZUFkYXB0ZXJPcHRpb25zKSB7fVxuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBQdWJsaWMgTWV0aG9kc1xuXG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2N9XG4gICAqL1xuICBwdWJsaWMgZ2V0QWRhcHRlck5hbWUoKTogc3RyaW5nIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ25vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2N9XG4gICAqL1xuICBwdWJsaWMgY2FuSGFuZGxlKF86IHVua25vd24pOiBfIGlzIFRFdmVudCB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICAvKipcbiAgICoge0Bpbmhlcml0RG9jfVxuICAgKi9cbiAgcHVibGljIGdldFJlcXVlc3QoZXZlbnQ6IFRFdmVudCk6IEFkYXB0ZXJSZXF1ZXN0IHtcbiAgICBjb25zdCBwYXRoID0gdGhpcy5vcHRpb25zLmZvcndhcmRQYXRoO1xuICAgIGNvbnN0IG1ldGhvZCA9IHRoaXMub3B0aW9ucy5mb3J3YXJkTWV0aG9kO1xuXG4gICAgY29uc3QgW2JvZHksIGNvbnRlbnRMZW5ndGhdID0gZ2V0RXZlbnRCb2R5QXNCdWZmZXIoXG4gICAgICBKU09OLnN0cmluZ2lmeShldmVudCksXG4gICAgICBmYWxzZSxcbiAgICApO1xuXG4gICAgY29uc3QgaGVhZGVycyA9IHtcbiAgICAgIGhvc3Q6IHRoaXMub3B0aW9ucy5ob3N0LFxuICAgICAgJ2NvbnRlbnQtdHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICdjb250ZW50LWxlbmd0aCc6IFN0cmluZyhjb250ZW50TGVuZ3RoKSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIG1ldGhvZCxcbiAgICAgIGhlYWRlcnMsXG4gICAgICBib2R5LFxuICAgICAgcGF0aCxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIHtAaW5oZXJpdERvY31cbiAgICovXG4gIHB1YmxpYyBnZXRSZXNwb25zZSh7XG4gICAgYm9keSxcbiAgICBoZWFkZXJzLFxuICAgIGlzQmFzZTY0RW5jb2RlZCxcbiAgICBldmVudCxcbiAgICBzdGF0dXNDb2RlLFxuICB9OiBHZXRSZXNwb25zZUFkYXB0ZXJQcm9wczxURXZlbnQ+KTogQVdTU2ltcGxlQWRhcHRlclJlc3BvbnNlVHlwZSB7XG4gICAgaWYgKHRoaXMuaGFzSW52YWxpZFN0YXR1c0NvZGUoc3RhdHVzQ29kZSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkoeyBib2R5LCBoZWFkZXJzLCBpc0Jhc2U2NEVuY29kZWQsIGV2ZW50LCBzdGF0dXNDb2RlIH0pLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMub3B0aW9ucy5iYXRjaCkgcmV0dXJuIEVtcHR5UmVzcG9uc2U7XG5cbiAgICBpZiAoaXNCYXNlNjRFbmNvZGVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdTRVJWRVJMRVNTX0FEQVBURVI6IFRoZSByZXNwb25zZSBjb3VsZCBub3QgYmUgYmFzZTY0IGVuY29kZWQgd2hlbiB5b3Ugc2V0IGJhdGNoOiB0cnVlLCB0aGUgcmVzcG9uc2Ugc2hvdWxkIGJlIGEgSlNPTi4nLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoIWJvZHkpIHJldHVybiBFbXB0eVJlc3BvbnNlO1xuXG4gICAgcmV0dXJuIEpTT04ucGFyc2UoYm9keSk7XG4gIH1cblxuICAvKipcbiAgICoge0Bpbmhlcml0RG9jfVxuICAgKi9cbiAgcHVibGljIG9uRXJyb3JXaGlsZUZvcndhcmRpbmcoe1xuICAgIGVycm9yLFxuICAgIGRlbGVnYXRlZFJlc29sdmVyLFxuICB9OiBPbkVycm9yUHJvcHM8VEV2ZW50LCBBV1NTaW1wbGVBZGFwdGVyUmVzcG9uc2VUeXBlPik6IHZvaWQge1xuICAgIGRlbGVnYXRlZFJlc29sdmVyLmZhaWwoZXJyb3IpO1xuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIFByb3RlY3RlZCBNZXRob2RzXG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIHRoZSBzdGF0dXMgY29kZSBpcyBpbnZhbGlkXG4gICAqXG4gICAqIEBwYXJhbSBzdGF0dXNDb2RlIC0gVGhlIHN0YXR1cyBjb2RlXG4gICAqL1xuICBwcm90ZWN0ZWQgaGFzSW52YWxpZFN0YXR1c0NvZGUoc3RhdHVzQ29kZTogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHN0YXR1c0NvZGUgPCAyMDAgfHwgc3RhdHVzQ29kZSA+PSA0MDA7XG4gIH1cblxuICAvLyNlbmRyZWdpb25cbn1cbiIsICIvLyNyZWdpb24gSW1wb3J0c1xuXG5pbXBvcnQgdHlwZSB7IER5bmFtb0RCU3RyZWFtRXZlbnQgfSBmcm9tICdhd3MtbGFtYmRhJztcbmltcG9ydCB7IGdldERlZmF1bHRJZlVuZGVmaW5lZCB9IGZyb20gJy4uLy4uL2NvcmUnO1xuaW1wb3J0IHsgdHlwZSBBV1NTaW1wbGVBZGFwdGVyT3B0aW9ucywgQXdzU2ltcGxlQWRhcHRlciB9IGZyb20gJy4vYmFzZS9pbmRleCc7XG5cbi8vI2VuZHJlZ2lvblxuXG4vKipcbiAqIFRoZSBvcHRpb25zIHRvIGN1c3RvbWl6ZSB0aGUge0BsaW5rIER5bmFtb0RCQWRhcHRlcn1cbiAqXG4gKiBAYnJlYWRjcnVtYiBBZGFwdGVycyAvIEFXUyAvIER5bmFtb0RCQWRhcHRlclxuICogQHB1YmxpY1xuICovXG5leHBvcnQgaW50ZXJmYWNlIER5bmFtb0RCQWRhcHRlck9wdGlvbnNcbiAgZXh0ZW5kcyBQaWNrPEFXU1NpbXBsZUFkYXB0ZXJPcHRpb25zLCAnYmF0Y2gnPiB7XG4gIC8qKlxuICAgKiBUaGUgcGF0aCB0aGF0IHdpbGwgYmUgdXNlZCB0byBjcmVhdGUgYSByZXF1ZXN0IHRvIGJlIGZvcndhcmRlZCB0byB0aGUgZnJhbWV3b3JrLlxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIC9keW5hbW9cbiAgICovXG4gIGR5bmFtb0RCRm9yd2FyZFBhdGg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBodHRwIG1ldGhvZCB0aGF0IHdpbGwgYmUgdXNlZCB0byBjcmVhdGUgYSByZXF1ZXN0IHRvIGJlIGZvcndhcmRlZCB0byB0aGUgZnJhbWV3b3JrLlxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIFBPU1RcbiAgICovXG4gIGR5bmFtb0RCRm9yd2FyZE1ldGhvZD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGUgYWRhcHRlciB0byBoYW5kbGUgcmVxdWVzdHMgZnJvbSBBV1MgRHluYW1vREIuXG4gKlxuICogVGhlIG9wdGlvbiBvZiBgcmVzcG9uc2VXaXRoRXJyb3JzYCBpcyBpZ25vcmVkIGJ5IHRoaXMgYWRhcHRlciBhbmQgd2UgYWx3YXlzIGNhbGwgYHJlc29sdmVyLmZhaWxgIHdpdGggdGhlIGVycm9yLlxuICpcbiAqIHtAbGluayBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy93aXRoLWRkYi5odG1sIHwgRXZlbnQgUmVmZXJlbmNlfVxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBkeW5hbW9EQkZvcndhcmRQYXRoID0gJy95b3VyL3JvdXRlL2R5bmFtbyc7IC8vIGRlZmF1bHQgL2R5bmFtb1xuICogY29uc3QgZHluYW1vREJGb3J3YXJkTWV0aG9kID0gJ1BPU1QnOyAvLyBkZWZhdWx0IFBPU1RcbiAqIGNvbnN0IGFkYXB0ZXIgPSBuZXcgRHluYW1vREJBZGFwdGVyKHsgZHluYW1vREJGb3J3YXJkUGF0aCwgZHluYW1vREJGb3J3YXJkTWV0aG9kIH0pO1xuICogYGBgXG4gKlxuICogQGJyZWFkY3J1bWIgQWRhcHRlcnMgLyBBV1MgLyBEeW5hbW9EQkFkYXB0ZXJcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNsYXNzIER5bmFtb0RCQWRhcHRlciBleHRlbmRzIEF3c1NpbXBsZUFkYXB0ZXI8RHluYW1vREJTdHJlYW1FdmVudD4ge1xuICAvLyNyZWdpb24gQ29uc3RydWN0b3JcblxuICAvKipcbiAgICogRGVmYXVsdCBjb25zdHJ1Y3RvclxuICAgKlxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIHRvIGN1c3RvbWl6ZSB0aGUge0BsaW5rIER5bmFtb0RCQWRhcHRlcn1cbiAgICovXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM/OiBEeW5hbW9EQkFkYXB0ZXJPcHRpb25zKSB7XG4gICAgc3VwZXIoe1xuICAgICAgZm9yd2FyZFBhdGg6IGdldERlZmF1bHRJZlVuZGVmaW5lZChcbiAgICAgICAgb3B0aW9ucz8uZHluYW1vREJGb3J3YXJkUGF0aCxcbiAgICAgICAgJy9keW5hbW8nLFxuICAgICAgKSxcbiAgICAgIGZvcndhcmRNZXRob2Q6IGdldERlZmF1bHRJZlVuZGVmaW5lZChcbiAgICAgICAgb3B0aW9ucz8uZHluYW1vREJGb3J3YXJkTWV0aG9kLFxuICAgICAgICAnUE9TVCcsXG4gICAgICApLFxuICAgICAgYmF0Y2g6IG9wdGlvbnM/LmJhdGNoLFxuICAgICAgaG9zdDogJ2R5bmFtb2RiLmFtYXpvbmF3cy5jb20nLFxuICAgIH0pO1xuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIFB1YmxpYyBNZXRob2RzXG5cbiAgLyoqXG4gICAqIHtAaW5oZXJpdERvY31cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBnZXRBZGFwdGVyTmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBEeW5hbW9EQkFkYXB0ZXIubmFtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2N9XG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgY2FuSGFuZGxlKGV2ZW50OiB1bmtub3duKTogZXZlbnQgaXMgRHluYW1vREJTdHJlYW1FdmVudCB7XG4gICAgY29uc3QgZHluYW1vREJldmVudCA9IGV2ZW50IGFzIFBhcnRpYWw8RHluYW1vREJTdHJlYW1FdmVudD47XG5cbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoZHluYW1vREJldmVudD8uUmVjb3JkcykpIHJldHVybiBmYWxzZTtcblxuICAgIGNvbnN0IGV2ZW50U291cmNlID0gZHluYW1vREJldmVudC5SZWNvcmRzWzBdPy5ldmVudFNvdXJjZTtcblxuICAgIHJldHVybiBldmVudFNvdXJjZSA9PT0gJ2F3czpkeW5hbW9kYic7XG4gIH1cblxuICAvLyNlbmRyZWdpb25cbn1cbiIsICIvLyNyZWdpb24gSW1wb3J0c1xuXG5pbXBvcnQgdHlwZSB7IEV2ZW50QnJpZGdlRXZlbnQgfSBmcm9tICdhd3MtbGFtYmRhJztcbmltcG9ydCB7IGdldERlZmF1bHRJZlVuZGVmaW5lZCB9IGZyb20gJy4uLy4uL2NvcmUnO1xuaW1wb3J0IHsgQXdzU2ltcGxlQWRhcHRlciB9IGZyb20gJy4vYmFzZSc7XG5cbi8vI2VuZHJlZ2lvblxuXG4vKipcbiAqIFRoZSBvcHRpb25zIHRvIGN1c3RvbWl6ZSB0aGUge0BsaW5rIEV2ZW50QnJpZGdlQWRhcHRlcn1cbiAqXG4gKiBAYnJlYWRjcnVtYiBBZGFwdGVycyAvIEFXUyAvIEV2ZW50QnJpZGdlQWRhcHRlclxuICogQHB1YmxpY1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50QnJpZGdlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgcGF0aCB0aGF0IHdpbGwgYmUgdXNlZCB0byBjcmVhdGUgYSByZXF1ZXN0IHRvIGJlIGZvcndhcmRlZCB0byB0aGUgZnJhbWV3b3JrLlxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIC9ldmVudGJyaWRnZVxuICAgKi9cbiAgZXZlbnRCcmlkZ2VGb3J3YXJkUGF0aD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGh0dHAgbWV0aG9kIHRoYXQgd2lsbCBiZSB1c2VkIHRvIGNyZWF0ZSBhIHJlcXVlc3QgdG8gYmUgZm9yd2FyZGVkIHRvIHRoZSBmcmFtZXdvcmsuXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgUE9TVFxuICAgKi9cbiAgZXZlbnRCcmlkZ2VGb3J3YXJkTWV0aG9kPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEp1c3QgYSB0eXBlIGFsaWFzIHRvIGlnbm9yZSBnZW5lcmljIHR5cGVzIGluIHRoZSBldmVudFxuICpcbiAqIEBicmVhZGNydW1iIEFkYXB0ZXJzIC8gQVdTIC8gRXZlbnRCcmlkZ2VBZGFwdGVyXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCB0eXBlIEV2ZW50QnJpZGdlRXZlbnRBbGwgPSBFdmVudEJyaWRnZUV2ZW50PGFueSwgYW55PjtcblxuLyoqXG4gKiBUaGUgYWRhcHRlciB0byBoYW5kbGUgcmVxdWVzdHMgZnJvbSBBV1MgRXZlbnRCcmlkZ2UgKENsb3Vkd2F0Y2ggRXZlbnRzKS5cbiAqXG4gKiBUaGUgb3B0aW9uIG9mIGByZXNwb25zZVdpdGhFcnJvcnNgIGlzIGlnbm9yZWQgYnkgdGhpcyBhZGFwdGVyIGFuZCB3ZSBhbHdheXMgY2FsbCBgcmVzb2x2ZXIuZmFpbGAgd2l0aCB0aGUgZXJyb3IuXG4gKlxuICoge0BsaW5rIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL3NlcnZpY2VzLWNsb3Vkd2F0Y2hldmVudHMuaHRtbCB8IEV2ZW50IFJlZmVyZW5jZX1cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgZXZlbnRCcmlkZ2VGb3J3YXJkUGF0aCA9ICcveW91ci9yb3V0ZS9ldmVudGJyaWRnZSc7IC8vIGRlZmF1bHQgL2V2ZW50YnJpZGdlXG4gKiBjb25zdCBldmVudEJyaWRnZUZvcndhcmRNZXRob2QgPSAnUE9TVCc7IC8vIGRlZmF1bHQgUE9TVFxuICogY29uc3QgYWRhcHRlciA9IG5ldyBFdmVudEJyaWRnZUFkYXB0ZXIoeyBldmVudEJyaWRnZUZvcndhcmRQYXRoLCBldmVudEJyaWRnZUZvcndhcmRNZXRob2QgfSk7XG4gKiBgYGBcbiAqXG4gKiBAYnJlYWRjcnVtYiBBZGFwdGVycyAvIEFXUyAvIEV2ZW50QnJpZGdlQWRhcHRlclxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY2xhc3MgRXZlbnRCcmlkZ2VBZGFwdGVyIGV4dGVuZHMgQXdzU2ltcGxlQWRhcHRlcjxFdmVudEJyaWRnZUV2ZW50QWxsPiB7XG4gIC8vI3JlZ2lvbiBDb25zdHJ1Y3RvclxuXG4gIC8qKlxuICAgKiBEZWZhdWx0IGNvbnN0cnVjdG9yXG4gICAqXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgdG8gY3VzdG9taXplIHRoZSB7QGxpbmsgRXZlbnRCcmlkZ2VBZGFwdGVyfVxuICAgKi9cbiAgY29uc3RydWN0b3Iob3B0aW9ucz86IEV2ZW50QnJpZGdlT3B0aW9ucykge1xuICAgIHN1cGVyKHtcbiAgICAgIGZvcndhcmRQYXRoOiBnZXREZWZhdWx0SWZVbmRlZmluZWQoXG4gICAgICAgIG9wdGlvbnM/LmV2ZW50QnJpZGdlRm9yd2FyZFBhdGgsXG4gICAgICAgICcvZXZlbnRicmlkZ2UnLFxuICAgICAgKSxcbiAgICAgIGZvcndhcmRNZXRob2Q6IGdldERlZmF1bHRJZlVuZGVmaW5lZChcbiAgICAgICAgb3B0aW9ucz8uZXZlbnRCcmlkZ2VGb3J3YXJkTWV0aG9kLFxuICAgICAgICAnUE9TVCcsXG4gICAgICApLFxuICAgICAgYmF0Y2g6IGZhbHNlLFxuICAgICAgaG9zdDogJ2V2ZW50cy5hbWF6b25hd3MuY29tJyxcbiAgICB9KTtcbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBQdWJsaWMgTWV0aG9kc1xuXG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2N9XG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0QWRhcHRlck5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gRXZlbnRCcmlkZ2VBZGFwdGVyLm5hbWU7XG4gIH1cblxuICAvKipcbiAgICoge0Bpbmhlcml0RG9jfVxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGNhbkhhbmRsZShldmVudDogdW5rbm93bik6IGV2ZW50IGlzIEV2ZW50QnJpZGdlRXZlbnRBbGwge1xuICAgIGNvbnN0IGV2ZW50QnJpZGdlRXZlbnQgPSBldmVudCBhcyBQYXJ0aWFsPEV2ZW50QnJpZGdlRXZlbnRBbGw+O1xuXG4gICAgLy8gdGhhbmtzIHRvIEBjbnVzcyBpbiBodHRwczovL2dpdGh1Yi5jb20vdmVuZGlhL3NlcnZlcmxlc3MtZXhwcmVzcy9ibG9iL2I1ZGE2MDcwYjhkZDJmYjY3NGMxZjcwMzVkZDdlZGZlZjFkYzgzYTIvc3JjL2V2ZW50LXNvdXJjZXMvdXRpbHMuanMjTDg3XG4gICAgcmV0dXJuICEhKFxuICAgICAgZXZlbnRCcmlkZ2VFdmVudCAmJlxuICAgICAgZXZlbnRCcmlkZ2VFdmVudC52ZXJzaW9uICYmXG4gICAgICBldmVudEJyaWRnZUV2ZW50LnZlcnNpb24gPT09ICcwJyAmJlxuICAgICAgZXZlbnRCcmlkZ2VFdmVudC5pZCAmJlxuICAgICAgZXZlbnRCcmlkZ2VFdmVudFsnZGV0YWlsLXR5cGUnXSAmJlxuICAgICAgZXZlbnRCcmlkZ2VFdmVudC5zb3VyY2UgJiZcbiAgICAgIGV2ZW50QnJpZGdlRXZlbnQuYWNjb3VudCAmJlxuICAgICAgZXZlbnRCcmlkZ2VFdmVudC50aW1lICYmXG4gICAgICBldmVudEJyaWRnZUV2ZW50LnJlZ2lvbiAmJlxuICAgICAgZXZlbnRCcmlkZ2VFdmVudC5yZXNvdXJjZXMgJiZcbiAgICAgIEFycmF5LmlzQXJyYXkoZXZlbnRCcmlkZ2VFdmVudC5yZXNvdXJjZXMpICYmXG4gICAgICBldmVudEJyaWRnZUV2ZW50LmRldGFpbCAmJlxuICAgICAgdHlwZW9mIGV2ZW50QnJpZGdlRXZlbnQuZGV0YWlsID09PSAnb2JqZWN0JyAmJlxuICAgICAgIUFycmF5LmlzQXJyYXkoZXZlbnRCcmlkZ2VFdmVudC5kZXRhaWwpXG4gICAgKTtcbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxufVxuIiwgIi8vI3JlZ2lvbiBJbXBvcnRzXG5cbmltcG9ydCB0eXBlIHsgQ2xvdWRGcm9udFJlcXVlc3QsIENvbnRleHQgfSBmcm9tICdhd3MtbGFtYmRhJztcbmltcG9ydCB0eXBlIHtcbiAgQ2xvdWRGcm9udEV2ZW50LFxuICBDbG91ZEZyb250SGVhZGVycyxcbiAgQ2xvdWRGcm9udFJlc3VsdFJlc3BvbnNlLFxufSBmcm9tICdhd3MtbGFtYmRhL2NvbW1vbi9jbG91ZGZyb250JztcbmltcG9ydCB0eXBlIHtcbiAgQ2xvdWRGcm9udFJlcXVlc3RFdmVudCxcbiAgQ2xvdWRGcm9udFJlcXVlc3RSZXN1bHQsXG59IGZyb20gJ2F3cy1sYW1iZGEvdHJpZ2dlci9jbG91ZGZyb250LXJlcXVlc3QnO1xuaW1wb3J0IHR5cGUge1xuICBCb3RoVmFsdWVIZWFkZXJzLFxuICBDb25jcmV0ZSxcbiAgU2luZ2xlVmFsdWVIZWFkZXJzLFxufSBmcm9tICcuLi8uLi9AdHlwZXMnO1xuaW1wb3J0IHR5cGUge1xuICBBZGFwdGVyQ29udHJhY3QsXG4gIEFkYXB0ZXJSZXF1ZXN0LFxuICBHZXRSZXNwb25zZUFkYXB0ZXJQcm9wcyxcbiAgT25FcnJvclByb3BzLFxufSBmcm9tICcuLi8uLi9jb250cmFjdHMnO1xuaW1wb3J0IHtcbiAgZ2V0RGVmYXVsdElmVW5kZWZpbmVkLFxuICBnZXRFdmVudEJvZHlBc0J1ZmZlcixcbiAgZ2V0UGF0aFdpdGhRdWVyeVN0cmluZ1BhcmFtcyxcbn0gZnJvbSAnLi4vLi4vY29yZSc7XG5cbi8vI2VuZHJlZ2lvblxuXG4vKipcbiAqIFRoZSB0eXBlIGFsaWFzIHRvIGluZGljYXRlIHdoZXJlIHdlIGdldCB0aGUgZGVmYXVsdCB2YWx1ZSBvZiBxdWVyeSBzdHJpbmcgdG8gY3JlYXRlIHRoZSByZXF1ZXN0LlxuICpcbiAqIEBicmVhZGNydW1iIEFkYXB0ZXJzIC8gQVdTIC8gTGFtYmRhRWRnZUFkYXB0ZXJcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IHR5cGUgRGVmYXVsdFF1ZXJ5U3RyaW5nID1cbiAgQ2xvdWRGcm9udFJlcXVlc3RFdmVudFsnUmVjb3JkcyddW251bWJlcl1bJ2NmJ11bJ3JlcXVlc3QnXVsncXVlcnlzdHJpbmcnXTtcblxuLyoqXG4gKiBUaGUgdHlwZSBhbGlhcyB0byBpbmRpY2F0ZSB3aGVyZSB3ZSBnZXQgdGhlIGRlZmF1bHQgdmFsdWUgb2YgcGF0aCB0byBjcmVhdGUgdGhlIHJlcXVlc3QuXG4gKlxuICogQGJyZWFkY3J1bWIgQWRhcHRlcnMgLyBBV1MgLyBMYW1iZGFFZGdlQWRhcHRlclxuICogQHB1YmxpY1xuICovXG5leHBvcnQgdHlwZSBEZWZhdWx0Rm9yd2FyZFBhdGggPVxuICBDbG91ZEZyb250UmVxdWVzdEV2ZW50WydSZWNvcmRzJ11bbnVtYmVyXVsnY2YnXVsncmVxdWVzdCddWyd1cmknXTtcblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBib2R5IG9mIHRoZSBuZXcgdmVyc2lvbiBvZiBMYW1iZGFcXEBlZGdlLCB3aGljaCB1c2VzIHRoZSBgYm9keWAgcHJvcGVydHkgaW5zaWRlIGByZXF1ZXN0YCBhcyB0aGUgYm9keSAobGlicmFyeSkgb2YgdGhlIHJlcXVlc3QuXG4gKlxuICogQGJyZWFkY3J1bWIgQWRhcHRlcnMgLyBBV1MgLyBMYW1iZGFFZGdlQWRhcHRlclxuICogQHB1YmxpY1xuICovXG5leHBvcnQgdHlwZSBOZXdMYW1iZGFFZGdlQm9keSA9XG4gIENsb3VkRnJvbnRSZXF1ZXN0RXZlbnRbJ1JlY29yZHMnXVtudW1iZXJdWydjZiddWydyZXF1ZXN0J11bJ2JvZHknXTtcblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBib2R5IG9mIHRoZSBvbGQgdmVyc2lvbiBvZiBMYW1iZGFcXEBlZGdlIHN1cHBvcnRlZCBieSBcXEB2ZW5kaWEvc2VydmVybGVzcy1leHByZXNzIHdoaWNoIHJldHVybnMgdGhlIGBkYXRhYCBwcm9wZXJ0eSB3aXRoaW4gYGJvZHlgIGZvciB0aGUgYm9keSAobGlicmFyeSkgb2YgdGhlIHJlcXVlc3QuXG4gKlxuICogQGJyZWFkY3J1bWIgQWRhcHRlcnMgLyBBV1MgLyBMYW1iZGFFZGdlQWRhcHRlclxuICogQHB1YmxpY1xuICovXG5leHBvcnQgdHlwZSBPbGRMYW1iZGFFZGdlQm9keSA9IENvbmNyZXRlPFxuICBDbG91ZEZyb250UmVxdWVzdEV2ZW50WydSZWNvcmRzJ11bbnVtYmVyXVsnY2YnXVsncmVxdWVzdCddXG4+Wydib2R5J11bJ2RhdGEnXTtcblxuLyoqXG4gKiBUaGUgbGlzdCB3YXMgY3JlYXRlZCBiYXNlZCBvbiB7QGxpbmsgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkNsb3VkRnJvbnQvbGF0ZXN0L0RldmVsb3Blckd1aWRlL2VkZ2UtZnVuY3Rpb25zLXJlc3RyaWN0aW9ucy5odG1sIHwgdGhlc2UgZG9jc30gaW4gdGhlIFwiRGlzYWxsb3dlZCBIZWFkZXJzXCIgc2VjdGlvbi5cbiAqXG4gKiBAYnJlYWRjcnVtYiBBZGFwdGVycyAvIEFXUyAvIExhbWJkYUVkZ2VBZGFwdGVyIC8gQ29uc3RhbnRzXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX0xBTUJEQV9FREdFX0RJU0FMTE9XRURfSEVBREVSUzogKHN0cmluZyB8IFJlZ0V4cClbXSA9IFtcbiAgJ0Nvbm5lY3Rpb24nLFxuICAnRXhwZWN0JyxcbiAgJ0tlZXAtQWxpdmUnLFxuICAnUHJveHktQXV0aGVudGljYXRlJyxcbiAgJ1Byb3h5LUF1dGhvcml6YXRpb24nLFxuICAnUHJveHktQ29ubmVjdGlvbicsXG4gICdUcmFpbGVyJyxcbiAgJ1VwZ3JhZGUnLFxuICAnWC1BY2NlbC1CdWZmZXJpbmcnLFxuICAnWC1BY2NlbC1DaGFyc2V0JyxcbiAgJ1gtQWNjZWwtTGltaXQtUmF0ZScsXG4gICdYLUFjY2VsLVJlZGlyZWN0JyxcbiAgLyhYLUFtei1DZi0pKC4qKS9naW0sXG4gICdYLUNhY2hlJyxcbiAgLyhYLUVkZ2UtKSguKikvZ2ltLFxuICAnWC1Gb3J3YXJkZWQtUHJvdG8nLFxuICAnWC1SZWFsLUlQJyxcbl07XG5cbi8qKlxuICogVGhlIGRlZmF1bHQgbWF4IHJlc3BvbnNlIHNpemUgaW4gYnl0ZXMgb2Ygdmlld2VyIHJlcXVlc3QgYW5kIHZpZXdlciByZXNwb25zZS5cbiAqXG4gKiBAZGVmYXVsdFZhbHVlIDEwMjQgKiA0MCA9IDQwOTYwID0gNDBLQlxuICpcbiAqIHtAbGluayBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRGcm9udC9sYXRlc3QvRGV2ZWxvcGVyR3VpZGUvY2xvdWRmcm9udC1saW1pdHMuaHRtbCB8IFJlZmVyZW5jZX1cbiAqXG4gKiBAYnJlYWRjcnVtYiBBZGFwdGVycyAvIEFXUyAvIExhbWJkYUVkZ2VBZGFwdGVyIC8gQ29uc3RhbnRzXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX1ZJRVdFUl9NQVhfUkVTUE9OU0VfU0laRV9JTl9CWVRFUyA9IDEwMjQgKiA0MDtcblxuLyoqXG4gKiBUaGUgZGVmYXVsdCBtYXggcmVzcG9uc2Ugc2l6ZSBpbiBieXRlcyBvZiBvcmlnaW4gcmVxdWVzdCBhbmQgb3JpZ2luIHJlc3BvbnNlLlxuICpcbiAqIEBkZWZhdWx0VmFsdWUgMTAyNCAqIDEwMjQgPSAxMDQ4NTc2ID0gMU1CXG4gKlxuICoge0BsaW5rIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25DbG91ZEZyb250L2xhdGVzdC9EZXZlbG9wZXJHdWlkZS9jbG91ZGZyb250LWxpbWl0cy5odG1sIHwgUmVmZXJlbmNlfVxuICpcbiAqIEBicmVhZGNydW1iIEFkYXB0ZXJzIC8gQVdTIC8gTGFtYmRhRWRnZUFkYXB0ZXIgLyBDb25zdGFudHNcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfT1JJR0lOX01BWF9SRVNQT05TRV9TSVpFX0lOX0JZVEVTID0gMTAyNCAqIDEwMjQ7XG5cbi8qKlxuICogVGhlIG9wdGlvbnMgdG8gY3VzdG9taXplIHRoZSB7QGxpbmsgTGFtYmRhRWRnZUFkYXB0ZXJ9LlxuICpcbiAqIEBicmVhZGNydW1iIEFkYXB0ZXJzIC8gQVdTIC8gTGFtYmRhRWRnZUFkYXB0ZXJcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMYW1iZGFFZGdlQWRhcHRlck9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIG1heCByZXNwb25zZSBzaXplIGluIGJ5dGVzIG9mIHZpZXdlciByZXF1ZXN0IGFuZCB2aWV3ZXIgcmVzcG9uc2UuXG4gICAqXG4gICAqIHtAbGluayBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRGcm9udC9sYXRlc3QvRGV2ZWxvcGVyR3VpZGUvY2xvdWRmcm9udC1saW1pdHMuaHRtbCB8IFJlZmVyZW5jZX1cbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSB7QGxpbmsgREVGQVVMVF9WSUVXRVJfTUFYX1JFU1BPTlNFX1NJWkVfSU5fQllURVN9XG4gICAqL1xuICB2aWV3ZXJNYXhSZXNwb25zZVNpemVJbkJ5dGVzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgbWF4IHJlc3BvbnNlIHNpemUgaW4gYnl0ZXMgb2Ygb3JpZ2luIHJlcXVlc3QgYW5kIG9yaWdpbiByZXNwb25zZS5cbiAgICpcbiAgICoge0BsaW5rIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25DbG91ZEZyb250L2xhdGVzdC9EZXZlbG9wZXJHdWlkZS9jbG91ZGZyb250LWxpbWl0cy5odG1sIHwgUmVmZXJlbmNlfVxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIHtAbGluayBERUZBVUxUX09SSUdJTl9NQVhfUkVTUE9OU0VfU0laRV9JTl9CWVRFU31cbiAgICovXG4gIG9yaWdpbk1heFJlc3BvbnNlU2l6ZUluQnl0ZXM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBmdW5jdGlvbiBjYWxsZWQgd2hlbiB0aGUgcmVzcG9uc2Ugc2l6ZSBleGNlZWQgdGhlIG1heCBsaW1pdHMgb2YgdGhlIExhbWJkYVxcQGVkZ2VcbiAgICpcbiAgICogQHBhcmFtIHJlc3BvbnNlIC0gVGhlIHJlc3BvbnNlIGZyb20gZnJhbWV3b3JrIHRoYXQgZXhjZWVkIHRoZSBsaW1pdCBvZiBMYW1iZGFcXEBlZGdlXG4gICAqIEBkZWZhdWx0VmFsdWUgdW5kZWZpbmVkXG4gICAqL1xuICBvblJlc3BvbnNlU2l6ZUV4Y2VlZExpbWl0PzogKFxuICAgIHJlc3BvbnNlOiBDbG91ZEZyb250UmVxdWVzdFJlc3VsdCxcbiAgKSA9PiBDbG91ZEZyb250UmVxdWVzdFJlc3VsdDtcblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBwYXRoIHRvIGJlIHVzZWQgdG8gY3JlYXRlIGEgcmVxdWVzdCB0byB0aGUgZnJhbWV3b3JrXG4gICAqXG4gICAqIEByZW1hcmtzIFlvdSBNVVNUIGFwcGVuZCB0aGUgcXVlcnkgcGFyYW1zIGZyb20ge0BsaW5rIERlZmF1bHRRdWVyeVN0cmluZ30sIHlvdSBjYW4gdXNlIHRoZSBoZWxwZXIge0BsaW5rIGdldFBhdGhXaXRoUXVlcnlTdHJpbmdQYXJhbXN9LlxuICAgKlxuICAgKiBAcGFyYW0gZXZlbnQgLSBUaGUgZXZlbnQgc2VudCBieSB0aGUgc2VydmVybGVzc1xuICAgKiBAZGVmYXVsdFZhbHVlIFRoZSB2YWx1ZSBmcm9tIHtAbGluayBEZWZhdWx0Rm9yd2FyZFBhdGh9XG4gICAqL1xuICBnZXRQYXRoRnJvbUV2ZW50PzogKFxuICAgIGV2ZW50OiBDbG91ZEZyb250UmVxdWVzdEV2ZW50WydSZWNvcmRzJ11bbnVtYmVyXSxcbiAgKSA9PiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBoZWFkZXJzIHRoYXQgd2lsbCBiZSBzdHJpcHBlZCBmcm9tIHRoZSBoZWFkZXJzIG9iamVjdCBiZWNhdXNlIExhbWJkYVxcQGVkZ2Ugd2lsbCBmYWlsIGlmIHRoZXNlIGhlYWRlcnMgYXJlIHBhc3NlZCBpbiB0aGUgcmVzcG9uc2UuXG4gICAqXG4gICAqIEByZW1hcmtzIEFsbCBoZWFkZXJzIHdpbGwgYmUgY29tcGFyZWQgd2l0aCBvdGhlciBoZWFkZXJzIHVzaW5nIHRvTG93ZXJDYXNlLCBidXQgZm9yIHRoZSBSZWdFeHAsIGlmIHlvdSBtb2RpZnkgdGhpcyBsaXN0LCB5b3UgbXVzdCBwdXQgdGhlIGZsYWcgYC9nbWlgIGF0IHRoZSBlbmQgb2YgdGhlIFJlZ0V4cCAoZXg6IGAvKFgtQW16LUNmLSkoLiopL2dpbWApXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgVG8gZ2V0IHRoZSBmdWxsIGxpc3QsIHNlZSB7QGxpbmsgREVGQVVMVF9MQU1CREFfRURHRV9ESVNBTExPV0VEX0hFQURFUlN9LlxuICAgKi9cbiAgZGlzYWxsb3dlZEhlYWRlcnM/OiAoc3RyaW5nIHwgUmVnRXhwKVtdO1xuXG4gIC8qKlxuICAgKiBJZiB5b3Ugd2FudCB0byBjaGFuZ2UgaG93IHdlIGNoZWNrIGFnYWluc3QgdGhlIGhlYWRlciBpZiBpdCBzaG91bGQgYmUgc3RyaXBwZWQsIHlvdSBjYW4gcGFzcyBhIGZ1bmN0aW9uIHRvIHRoaXMgcHJvcGVydHkuXG4gICAqXG4gICAqIEBwYXJhbSBoZWFkZXIgLSBUaGUgaGVhZGVyIG9mIHRoZSByZXNwb25zZVxuICAgKiBAZGVmYXVsdFZhbHVlIFRoZSBkZWZhdWx0IG1ldGhvZCBpcyBpbXBsZW1lbnRlZCB0byB0ZXN0IHRoZSBoZWFkZXIgYWdhaW5zdCB0aGUgbGlzdCB7QGxpbmsgTGFtYmRhRWRnZUFkYXB0ZXJPcHRpb25zLmRpc2FsbG93ZWRIZWFkZXJzfS5cbiAgICovXG4gIHNob3VsZFN0cmlwSGVhZGVyPzogKGhlYWRlcjogc3RyaW5nKSA9PiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBCeSBkZWZhdWx0LCB0aGUge0BsaW5rIGF3cy1sYW1iZGEjQ2xvdWRGcm9udFJlcXVlc3RSZXN1bHR9IGhhcyB0aGUgYGhlYWRlcnNgIHByb3BlcnR5LCBidXQgd2UgYWxzbyBoYXZlIHRoZSBoZWFkZXJzIHNlbnQgYnkgdGhlIGZyYW1ld29yayB0b28uXG4gICAqIFNvIHRoaXMgc2V0dGluZyB0ZWxscyB1cyBob3cgdG8gaGFuZGxlIHRoaXMgY2FzZSwgaWYgeW91IHBhc3MgYHRydWVgIHRvIHRoaXMgcHJvcGVydHksIHdlIHdpbGwgdXNlIHRoZSBmcmFtZXdvcmsgaGVhZGVycy5cbiAgICogT3RoZXJ3aXNlLCB3ZSB3aWxsIGZvcndhcmQgdGhlIGJvZHkgYmFjayB0byBjbG91ZGZyb250IHdpdGhvdXQgbW9kaWZ5aW5nIG9yIHRyeWluZyB0byBzZXQgdGhlIGBoZWFkZXJzYCBwcm9wZXJ0eSBpbnNpZGUge0BsaW5rIGF3cy1sYW1iZGEjQ2xvdWRGcm9udFJlcXVlc3RSZXN1bHR9LlxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIGZhbHNlXG4gICAqL1xuICBzaG91bGRVc2VIZWFkZXJzRnJvbUZyYW1ld29yaz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogVGhlIGFkYXB0ZXIgdG8gaGFuZGxlIHJlcXVlc3RzIGZyb20gQVdTIExhbWJkYVxcQEVkZ2UuXG4gKlxuICogVGhpcyBhZGFwdGVyIGlzIG5vdCBmdWxseSBjb21wYXRpYmxlIHdpdGggTGFtYmRhXFxAZWRnZSBzdXBwb3J0ZWQgYnkgXFxAdmVuZGlhL3NlcnZlcmxlc3MtZXhwcmVzcywgdGhlIHJlcXVlc3QgYm9keSB3YXMgbW9kaWZpZWQgdG8gcmV0dXJuIHtAbGluayBOZXdMYW1iZGFFZGdlQm9keX0gaW5zdGVhZCB7QGxpbmsgT2xkTGFtYmRhRWRnZUJvZHl9LlxuICogQWxzbywgdGhlIHJlc3BvbnNlIGhhcyBiZWVuIG1vZGlmaWVkIHRvIHJldHVybiBlbnRpcmUgYm9keSBzZW50IGJ5IHRoZSBmcmFtZXdvcmssIGluIHRoaXMgZm9ybSB5b3UgTVVTVCByZXR1cm4gdGhlIGJvZHkgZnJvbSB0aGUgZnJhbWV3b3JrIGluIHRoZSBmb3JtYXQgb2Yge0BsaW5rIGF3cy1sYW1iZGEjQ2xvdWRGcm9udFJlcXVlc3RSZXN1bHR9LlxuICogQW5kIHdoZW4gd2UgZ2V0IGFuIGVycm9yIGR1cmluZyB0aGUgZm9yd2FyZGluZyB0byB0aGUgZnJhbWV3b3JrLCB3ZSBjYWxsIGByZXNvbHZlci5mYWlsYCBpbnN0ZWFkIG9mIHRyeWluZyB0byByZXR1cm4gc3RhdHVzIDUwMCBsaWtlIHRoZSBvbGQgaW1wbGVtZW50YXRpb24gd2FzLlxuICpcbiAqIHtAbGluayBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9sYW1iZGEtZWRnZS5odG1sIHwgTGFtYmRhIGVkZ2UgZG9jc31cbiAqIHtAbGluayBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRGcm9udC9sYXRlc3QvRGV2ZWxvcGVyR3VpZGUvbGFtYmRhLWV2ZW50LXN0cnVjdHVyZS5odG1sIHwgRXZlbnQgUmVmZXJlbmNlfVxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBnZXRQYXRoRnJvbUV2ZW50ID0gKCkgPT4gJy9sYW1iZGEvZWRnZSc7IC8vIHdpbGwgZm9yd2FyZCBhbGwgcmVxdWVzdHMgdG8gdGhlIHNhbWUgZW5kcG9pbnRcbiAqIGNvbnN0IGFkYXB0ZXIgPSBuZXcgTGFtYmRhRWRnZUFkYXB0ZXIoeyBnZXRQYXRoRnJvbUV2ZW50IH0pO1xuICogYGBgXG4gKlxuICogQGJyZWFkY3J1bWIgQWRhcHRlcnMgLyBBV1MgLyBMYW1iZGFFZGdlQWRhcHRlclxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY2xhc3MgTGFtYmRhRWRnZUFkYXB0ZXJcbiAgaW1wbGVtZW50c1xuICAgIEFkYXB0ZXJDb250cmFjdDxDbG91ZEZyb250UmVxdWVzdEV2ZW50LCBDb250ZXh0LCBDbG91ZEZyb250UmVxdWVzdFJlc3VsdD5cbntcbiAgLy8jcmVnaW9uIENvbnN0cnVjdG9yXG5cbiAgLyoqXG4gICAqIERlZmF1bHQgY29uc3RydWN0b3JcbiAgICpcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyB0byBjdXN0b21pemUgdGhlIHtAbGluayBMYW1iZGFFZGdlQWRhcHRlcn1cbiAgICovXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCByZWFkb25seSBvcHRpb25zPzogTGFtYmRhRWRnZUFkYXB0ZXJPcHRpb25zKSB7XG4gICAgY29uc3QgZGlzYWxsb3dlZEhlYWRlcnMgPSBnZXREZWZhdWx0SWZVbmRlZmluZWQoXG4gICAgICB0aGlzLm9wdGlvbnM/LmRpc2FsbG93ZWRIZWFkZXJzLFxuICAgICAgREVGQVVMVF9MQU1CREFfRURHRV9ESVNBTExPV0VEX0hFQURFUlMsXG4gICAgKTtcblxuICAgIHRoaXMuY2FjaGVkRGlzYWxsb3dlZEhlYWRlcnMgPSBkaXNhbGxvd2VkSGVhZGVycy5tYXAoZGlzYWxsb3dlZEhlYWRlciA9PiB7XG4gICAgICBpZiAoZGlzYWxsb3dlZEhlYWRlciBpbnN0YW5jZW9mIFJlZ0V4cCkgcmV0dXJuIGRpc2FsbG93ZWRIZWFkZXI7XG5cbiAgICAgIHJldHVybiBuZXcgUmVnRXhwKGAoJHtkaXNhbGxvd2VkSGVhZGVyfSlgLCAnZ2ltJyk7XG4gICAgfSk7XG4gIH1cblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gUHJvdGVjdGVkIFByb3BlcnRpZXNcblxuICAvKipcbiAgICogVGhpcyBwcm9wZXJ0eSBpcyB1c2VkIHRvIGNhY2hlIHRoZSBkaXNhbGxvd2VkIGhlYWRlcnMgaW4gYFJlZ0V4cGAgdmVyc2lvbiwgZXZlbiBpZiB5b3UgcHJvdmlkZSBhIHN0cmluZyBpbiBgZGlzYWxsb3dlZEhlYWRlcmAsIHdlIHdpbGwgY2FjaGUgaXQgaW4gYW4gaW5zdGFuY2Ugb2YgYFJlZ0V4cGAuXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2FjaGVkRGlzYWxsb3dlZEhlYWRlcnM6IFJlZ0V4cFtdO1xuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBQdWJsaWMgTWV0aG9kc1xuXG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2N9XG4gICAqL1xuICBwdWJsaWMgZ2V0QWRhcHRlck5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gTGFtYmRhRWRnZUFkYXB0ZXIubmFtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2N9XG4gICAqL1xuICBwdWJsaWMgY2FuSGFuZGxlKGV2ZW50OiB1bmtub3duKTogZXZlbnQgaXMgQ2xvdWRGcm9udFJlcXVlc3RFdmVudCB7XG4gICAgY29uc3QgbGFtYmRhRWRnZUV2ZW50ID0gZXZlbnQgYXMgUGFydGlhbDxDbG91ZEZyb250UmVxdWVzdEV2ZW50PjtcblxuICAgIGlmICghQXJyYXkuaXNBcnJheShsYW1iZGFFZGdlRXZlbnQ/LlJlY29yZHMpKSByZXR1cm4gZmFsc2U7XG5cbiAgICBjb25zdCBldmVudFR5cGUgPSBsYW1iZGFFZGdlRXZlbnQuUmVjb3Jkc1swXT8uY2Y/LmNvbmZpZz8uZXZlbnRUeXBlO1xuICAgIGNvbnN0IHZhbGlkRXZlbnRUeXBlczogQ2xvdWRGcm9udEV2ZW50Wydjb25maWcnXVsnZXZlbnRUeXBlJ11bXSA9IFtcbiAgICAgICdvcmlnaW4tcmVzcG9uc2UnLFxuICAgICAgJ29yaWdpbi1yZXF1ZXN0JyxcbiAgICAgICd2aWV3ZXItcmVzcG9uc2UnLFxuICAgICAgJ3ZpZXdlci1yZXF1ZXN0JyxcbiAgICBdO1xuXG4gICAgcmV0dXJuIHZhbGlkRXZlbnRUeXBlcy5pbmNsdWRlcyhldmVudFR5cGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIHtAaW5oZXJpdERvY31cbiAgICovXG4gIHB1YmxpYyBnZXRSZXF1ZXN0KGV2ZW50OiBDbG91ZEZyb250UmVxdWVzdEV2ZW50KTogQWRhcHRlclJlcXVlc3Qge1xuICAgIGNvbnN0IHJlcXVlc3QgPSBldmVudC5SZWNvcmRzWzBdO1xuICAgIGNvbnN0IGNsb3VkRnJvbnRSZXF1ZXN0ID0gcmVxdWVzdC5jZi5yZXF1ZXN0O1xuXG4gICAgY29uc3QgbWV0aG9kID0gY2xvdWRGcm9udFJlcXVlc3QubWV0aG9kO1xuXG4gICAgY29uc3QgcGF0aEZyb21PcHRpb25zID0gdGhpcy5vcHRpb25zPy5nZXRQYXRoRnJvbUV2ZW50XG4gICAgICA/IHRoaXMub3B0aW9ucy5nZXRQYXRoRnJvbUV2ZW50KHJlcXVlc3QpXG4gICAgICA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBkZWZhdWx0UGF0aCA9IGdldFBhdGhXaXRoUXVlcnlTdHJpbmdQYXJhbXMoXG4gICAgICBjbG91ZEZyb250UmVxdWVzdC51cmksXG4gICAgICBjbG91ZEZyb250UmVxdWVzdC5xdWVyeXN0cmluZyxcbiAgICApO1xuICAgIGNvbnN0IHBhdGggPSBnZXREZWZhdWx0SWZVbmRlZmluZWQocGF0aEZyb21PcHRpb25zLCBkZWZhdWx0UGF0aCk7XG5cbiAgICBjb25zdCByZW1vdGVBZGRyZXNzID0gY2xvdWRGcm9udFJlcXVlc3QuY2xpZW50SXA7XG5cbiAgICBjb25zdCBoZWFkZXJzID1cbiAgICAgIHRoaXMuZ2V0RmxhdHRlbmVkSGVhZGVyc0Zyb21DbG91ZGZyb250UmVxdWVzdChjbG91ZEZyb250UmVxdWVzdCk7XG5cbiAgICBsZXQgYm9keTogQnVmZmVyIHwgdW5kZWZpbmVkO1xuXG4gICAgaWYgKGNsb3VkRnJvbnRSZXF1ZXN0LmJvZHkpIHtcbiAgICAgIGNvbnN0IFtidWZmZXIsIGNvbnRlbnRMZW5ndGhdID0gZ2V0RXZlbnRCb2R5QXNCdWZmZXIoXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KGNsb3VkRnJvbnRSZXF1ZXN0LmJvZHkpLFxuICAgICAgICBmYWxzZSxcbiAgICAgICk7XG5cbiAgICAgIGJvZHkgPSBidWZmZXI7XG4gICAgICBoZWFkZXJzWydjb250ZW50LWxlbmd0aCddID0gY29udGVudExlbmd0aC50b1N0cmluZygpO1xuICAgIH1cblxuICAgIGNvbnN0IHsgaG9zdCB9ID0gaGVhZGVycztcblxuICAgIHJldHVybiB7XG4gICAgICBtZXRob2QsXG4gICAgICBwYXRoLFxuICAgICAgaGVhZGVycyxcbiAgICAgIGJvZHksXG4gICAgICByZW1vdGVBZGRyZXNzLFxuICAgICAgaG9zdCxcbiAgICAgIGhvc3RuYW1lOiBob3N0LFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICoge0Bpbmhlcml0RG9jfVxuICAgKi9cbiAgcHVibGljIGdldFJlc3BvbnNlKFxuICAgIHByb3BzOiBHZXRSZXNwb25zZUFkYXB0ZXJQcm9wczxDbG91ZEZyb250UmVxdWVzdEV2ZW50PixcbiAgKTogQ2xvdWRGcm9udFJlcXVlc3RSZXN1bHQge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gdGhpcy5nZXRSZXNwb25zZVRvTGFtYmRhRWRnZShwcm9wcyk7XG4gICAgY29uc3QgcmVzcG9uc2VUb1NlcnZpY2VCeXRlcyA9IG5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShcbiAgICAgIEpTT04uc3RyaW5naWZ5KHJlc3BvbnNlKSxcbiAgICApLmxlbmd0aDtcblxuICAgIGNvbnN0IGlzT3JpZ2luUmVxdWVzdE9yUmVzcG9uc2UgPSB0aGlzLmlzRXZlbnRUeXBlT3JpZ2luKFxuICAgICAgcHJvcHMuZXZlbnQuUmVjb3Jkc1swXS5jZi5jb25maWcsXG4gICAgKTtcbiAgICBjb25zdCBtYXhTaXplSW5CeXRlcyA9IGlzT3JpZ2luUmVxdWVzdE9yUmVzcG9uc2VcbiAgICAgID8gZ2V0RGVmYXVsdElmVW5kZWZpbmVkKFxuICAgICAgICAgIHRoaXMub3B0aW9ucz8ub3JpZ2luTWF4UmVzcG9uc2VTaXplSW5CeXRlcyxcbiAgICAgICAgICBERUZBVUxUX09SSUdJTl9NQVhfUkVTUE9OU0VfU0laRV9JTl9CWVRFUyxcbiAgICAgICAgKVxuICAgICAgOiBnZXREZWZhdWx0SWZVbmRlZmluZWQoXG4gICAgICAgICAgdGhpcy5vcHRpb25zPy52aWV3ZXJNYXhSZXNwb25zZVNpemVJbkJ5dGVzLFxuICAgICAgICAgIERFRkFVTFRfVklFV0VSX01BWF9SRVNQT05TRV9TSVpFX0lOX0JZVEVTLFxuICAgICAgICApO1xuXG4gICAgaWYgKHJlc3BvbnNlVG9TZXJ2aWNlQnl0ZXMgPD0gbWF4U2l6ZUluQnl0ZXMpIHJldHVybiByZXNwb25zZTtcblxuICAgIGlmICh0aGlzLm9wdGlvbnM/Lm9uUmVzcG9uc2VTaXplRXhjZWVkTGltaXQpXG4gICAgICB0aGlzLm9wdGlvbnMub25SZXNwb25zZVNpemVFeGNlZWRMaW1pdChyZXNwb25zZSk7XG4gICAgZWxzZSB7XG4gICAgICBwcm9wcy5sb2cuZXJyb3IoXG4gICAgICAgIGBTRVJWRVJMRVNTX0FEQVBURVI6TEFNQkRBX0VER0VfQURBUFRFUjogTWF4IHJlc3BvbnNlIHNpemUgZXhjZWVkZWQ6ICR7cmVzcG9uc2VUb1NlcnZpY2VCeXRlc30gb2YgdGhlIG1heCBvZiAke21heFNpemVJbkJ5dGVzfS5gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzcG9uc2U7XG4gIH1cblxuICAvKipcbiAgICoge0Bpbmhlcml0RG9jfVxuICAgKi9cbiAgcHVibGljIG9uRXJyb3JXaGlsZUZvcndhcmRpbmcoe1xuICAgIGVycm9yLFxuICAgIGRlbGVnYXRlZFJlc29sdmVyLFxuICB9OiBPbkVycm9yUHJvcHM8Q2xvdWRGcm9udFJlcXVlc3RFdmVudCwgQ2xvdWRGcm9udFJlcXVlc3RSZXN1bHQ+KTogdm9pZCB7XG4gICAgZGVsZWdhdGVkUmVzb2x2ZXIuZmFpbChlcnJvcik7XG4gIH1cblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gUHJvdGVjdGVkIE1ldGhvZHNcblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgaGVhZGVycyB3aXRoIHRoZSBmbGF0dGVuZWQgKG5vbi1saXN0KSB2YWx1ZXMgb2YgdGhlIGNsb3VkZnJvbnQgcmVxdWVzdCBoZWFkZXJzXG4gICAqXG4gICAqIEBwYXJhbSBjbG91ZEZyb250UmVxdWVzdCAtIFRoZSBjbG91ZGZyb250IHJlcXVlc3RcbiAgICovXG4gIHByb3RlY3RlZCBnZXRGbGF0dGVuZWRIZWFkZXJzRnJvbUNsb3VkZnJvbnRSZXF1ZXN0KFxuICAgIGNsb3VkRnJvbnRSZXF1ZXN0OiBDbG91ZEZyb250UmVxdWVzdCxcbiAgKTogU2luZ2xlVmFsdWVIZWFkZXJzIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMoY2xvdWRGcm9udFJlcXVlc3QuaGVhZGVycykucmVkdWNlKChhY2MsIGhlYWRlcktleSkgPT4ge1xuICAgICAgY29uc3QgaGVhZGVyVmFsdWUgPSBjbG91ZEZyb250UmVxdWVzdC5oZWFkZXJzW2hlYWRlcktleV07XG5cbiAgICAgIGFjY1toZWFkZXJLZXldID0gaGVhZGVyVmFsdWUubWFwKGhlYWRlciA9PiBoZWFkZXIudmFsdWUpLmpvaW4oJywnKTtcblxuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCB7fSBhcyBTaW5nbGVWYWx1ZUhlYWRlcnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGZyYW1ld29yayByZXNwb25zZSBpbiB0aGUgZm9ybWF0IHJlcXVpcmVkIGJ5IHRoZSBMYW1iZGFcXEBlZGdlLlxuICAgKlxuICAgKiBAcGFyYW0gYm9keSAtIFRoZSBib2R5IG9mIHRoZSByZXNwb25zZVxuICAgKiBAcGFyYW0gZnJhbWV3b3JrSGVhZGVycyAtIFRoZSBoZWFkZXJzIGZyb20gdGhlIGZyYW1ld29ya1xuICAgKi9cbiAgcHJvdGVjdGVkIGdldFJlc3BvbnNlVG9MYW1iZGFFZGdlKHtcbiAgICBib2R5LFxuICAgIGhlYWRlcnM6IGZyYW1ld29ya0hlYWRlcnMsXG4gIH06IEdldFJlc3BvbnNlQWRhcHRlclByb3BzPENsb3VkRnJvbnRSZXF1ZXN0RXZlbnQ+KTogQ2xvdWRGcm9udFJlcXVlc3RSZXN1bHQge1xuICAgIGNvbnN0IHNob3VsZFVzZUhlYWRlcnNGcm9tRnJhbWV3b3JrID0gZ2V0RGVmYXVsdElmVW5kZWZpbmVkKFxuICAgICAgdGhpcy5vcHRpb25zPy5zaG91bGRVc2VIZWFkZXJzRnJvbUZyYW1ld29yayxcbiAgICAgIGZhbHNlLFxuICAgICk7XG5cbiAgICBjb25zdCBwYXJzZWRCb2R5OiBDbG91ZEZyb250UmVzdWx0UmVzcG9uc2UgfCBDbG91ZEZyb250UmVxdWVzdCA9XG4gICAgICBKU09OLnBhcnNlKGJvZHkpO1xuXG4gICAgaWYgKHBhcnNlZEJvZHkuaGVhZGVycykge1xuICAgICAgcGFyc2VkQm9keS5oZWFkZXJzID0gT2JqZWN0LmtleXMocGFyc2VkQm9keS5oZWFkZXJzKS5yZWR1Y2UoXG4gICAgICAgIChhY2MsIGhlYWRlcikgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLnNob3VsZFN0cmlwSGVhZGVyKGhlYWRlcikpIHJldHVybiBhY2M7XG5cbiAgICAgICAgICBhY2NbaGVhZGVyXSA9IHBhcnNlZEJvZHkuaGVhZGVycyFbaGVhZGVyXTtcblxuICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH0sXG4gICAgICAgIHt9IGFzIENsb3VkRnJvbnRIZWFkZXJzLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoIXNob3VsZFVzZUhlYWRlcnNGcm9tRnJhbWV3b3JrKSByZXR1cm4gcGFyc2VkQm9keTtcblxuICAgIHBhcnNlZEJvZHkuaGVhZGVycyA9IHRoaXMuZ2V0SGVhZGVyc0ZvckNsb3VkZnJvbnRSZXNwb25zZShmcmFtZXdvcmtIZWFkZXJzKTtcblxuICAgIHJldHVybiBwYXJzZWRCb2R5O1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgaGVhZGVycyBpbiBDbG91ZGZyb250IFJlc3BvbnNlIGZvcm1hdC5cbiAgICpcbiAgICogQHBhcmFtIG9yaWdpbmFsSGVhZGVycyAtIFRoZSBvcmlnaW5hbCB2ZXJzaW9uIG9mIHRoZSByZXF1ZXN0IHNlbnQgYnkgdGhlIGZyYW1ld29ya1xuICAgKi9cbiAgcHJvdGVjdGVkIGdldEhlYWRlcnNGb3JDbG91ZGZyb250UmVzcG9uc2UoXG4gICAgb3JpZ2luYWxIZWFkZXJzOiBCb3RoVmFsdWVIZWFkZXJzLFxuICApOiBDbG91ZEZyb250SGVhZGVycyB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKG9yaWdpbmFsSGVhZGVycykucmVkdWNlKChhY2MsIGhlYWRlcktleSkgPT4ge1xuICAgICAgaWYgKHRoaXMuc2hvdWxkU3RyaXBIZWFkZXIoaGVhZGVyS2V5KSkgcmV0dXJuIGFjYztcblxuICAgICAgaWYgKCFhY2NbaGVhZGVyS2V5XSkgYWNjW2hlYWRlcktleV0gPSBbXTtcblxuICAgICAgY29uc3QgaGVhZGVyVmFsdWUgPSBvcmlnaW5hbEhlYWRlcnNbaGVhZGVyS2V5XTtcblxuICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGhlYWRlclZhbHVlKSkge1xuICAgICAgICBhY2NbaGVhZGVyS2V5XS5wdXNoKHtcbiAgICAgICAgICBrZXk6IGhlYWRlcktleSxcbiAgICAgICAgICB2YWx1ZTogaGVhZGVyVmFsdWUgfHwgJycsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGhlYWRlcnNBcnJheSA9IGhlYWRlclZhbHVlLm1hcCh2YWx1ZSA9PiAoe1xuICAgICAgICBrZXk6IGhlYWRlcktleSxcbiAgICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgfSkpO1xuXG4gICAgICBhY2NbaGVhZGVyS2V5XS5wdXNoKC4uLmhlYWRlcnNBcnJheSk7XG5cbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwge30gYXMgQ2xvdWRGcm9udEhlYWRlcnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGluZm9ybWF0aW9uIGlmIHdlIHNob3VsZCByZW1vdmUgdGhlIHJlc3BvbnNlIGhlYWRlclxuICAgKlxuICAgKiBAcGFyYW0gaGVhZGVyS2V5IC0gVGhlIGhlYWRlciB0aGF0IHdpbGwgYmUgdGVzdGVkXG4gICAqL1xuICBwcm90ZWN0ZWQgc2hvdWxkU3RyaXBIZWFkZXIoaGVhZGVyS2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5vcHRpb25zPy5zaG91bGRTdHJpcEhlYWRlcilcbiAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMuc2hvdWxkU3RyaXBIZWFkZXIoaGVhZGVyS2V5KTtcblxuICAgIGNvbnN0IGhlYWRlcktleUxvd2VyQ2FzZSA9IGhlYWRlcktleS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgZm9yIChjb25zdCBzdHJpcEhlYWRlcklmIG9mIHRoaXMuY2FjaGVkRGlzYWxsb3dlZEhlYWRlcnMpIHtcbiAgICAgIGlmICghc3RyaXBIZWFkZXJJZi50ZXN0KGhlYWRlcktleUxvd2VyQ2FzZSkpIGNvbnRpbnVlO1xuXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBldmVudCBpcyBmcm9tIG9yaWdpbiBvciBpcyBmcm9tIHZpZXdlci5cbiAgICpcbiAgICogQHBhcmFtIGNvbnRlbnQgLSBUaGUgZXZlbnQgc2VudCBieSBBV1Mgb3IgdGhlIHJlc3BvbnNlIHNlbnQgYnkgdGhlIGZyYW1ld29ya1xuICAgKi9cbiAgcHJvdGVjdGVkIGlzRXZlbnRUeXBlT3JpZ2luKGNvbnRlbnQ6IENsb3VkRnJvbnRFdmVudFsnY29uZmlnJ10pOiBib29sZWFuIHtcbiAgICByZXR1cm4gY29udGVudC5ldmVudFR5cGUuaW5jbHVkZXMoJ29yaWdpbicpO1xuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG59XG4iLCAiLy8jcmVnaW9uIEltcG9ydHNcblxuaW1wb3J0IHR5cGUgeyBTM0V2ZW50IH0gZnJvbSAnYXdzLWxhbWJkYSc7XG5pbXBvcnQgeyBnZXREZWZhdWx0SWZVbmRlZmluZWQgfSBmcm9tICcuLi8uLi9jb3JlJztcbmltcG9ydCB7IEF3c1NpbXBsZUFkYXB0ZXIgfSBmcm9tICcuL2Jhc2UvaW5kZXgnO1xuXG4vLyNlbmRyZWdpb25cblxuLyoqXG4gKiBUaGUgb3B0aW9ucyB0byBjdXN0b21pemUgdGhlIHtAbGluayBTM0FkYXB0ZXJ9XG4gKlxuICogQGJyZWFkY3J1bWIgQWRhcHRlcnMgLyBBV1MgLyBTM0FkYXB0ZXJcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTM0FkYXB0ZXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBwYXRoIHRoYXQgd2lsbCBiZSB1c2VkIHRvIGNyZWF0ZSBhIHJlcXVlc3QgdG8gYmUgZm9yd2FyZGVkIHRvIHRoZSBmcmFtZXdvcmsuXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgL3MzXG4gICAqL1xuICBzM0ZvcndhcmRQYXRoPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgaHR0cCBtZXRob2QgdGhhdCB3aWxsIGJlIHVzZWQgdG8gY3JlYXRlIGEgcmVxdWVzdCB0byBiZSBmb3J3YXJkZWQgdG8gdGhlIGZyYW1ld29yay5cbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSBQT1NUXG4gICAqL1xuICBzM0ZvcndhcmRNZXRob2Q/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlIGFkYXB0ZXIgdG8gaGFuZGxlIHJlcXVlc3RzIGZyb20gQVdTIFMzLlxuICpcbiAqIFRoZSBvcHRpb24gb2YgYHJlc3BvbnNlV2l0aEVycm9yc2AgaXMgaWdub3JlZCBieSB0aGlzIGFkYXB0ZXIgYW5kIHdlIGFsd2F5cyBjYWxsIGByZXNvbHZlci5mYWlsYCB3aXRoIHRoZSBlcnJvci5cbiAqXG4gKiB7QGxpbmsgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvd2l0aC1zMy5odG1sIHwgRXZlbnQgUmVmZXJlbmNlfVxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBzM0ZvcndhcmRQYXRoID0gJy95b3VyL3JvdXRlL3MzJzsgLy8gZGVmYXVsdCAvczNcbiAqIGNvbnN0IHMzRm9yd2FyZE1ldGhvZCA9ICdQT1NUJzsgLy8gZGVmYXVsdCBQT1NUXG4gKiBjb25zdCBhZGFwdGVyID0gbmV3IFMzQWRhcHRlcih7IHMzRm9yd2FyZFBhdGgsIHMzRm9yd2FyZE1ldGhvZCB9KTtcbiAqIGBgYFxuICpcbiAqIEBicmVhZGNydW1iIEFkYXB0ZXJzIC8gQVdTIC8gUzNBZGFwdGVyXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjbGFzcyBTM0FkYXB0ZXIgZXh0ZW5kcyBBd3NTaW1wbGVBZGFwdGVyPFMzRXZlbnQ+IHtcbiAgLy8jcmVnaW9uIENvbnN0cnVjdG9yXG5cbiAgLyoqXG4gICAqIERlZmF1bHQgY29uc3RydWN0b3JcbiAgICpcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyB0byBjdXN0b21pemUgdGhlIHtAbGluayBTTlNBZGFwdGVyfVxuICAgKi9cbiAgY29uc3RydWN0b3Iob3B0aW9ucz86IFMzQWRhcHRlck9wdGlvbnMpIHtcbiAgICBzdXBlcih7XG4gICAgICBmb3J3YXJkUGF0aDogZ2V0RGVmYXVsdElmVW5kZWZpbmVkKG9wdGlvbnM/LnMzRm9yd2FyZFBhdGgsICcvczMnKSxcbiAgICAgIGZvcndhcmRNZXRob2Q6IGdldERlZmF1bHRJZlVuZGVmaW5lZChvcHRpb25zPy5zM0ZvcndhcmRNZXRob2QsICdQT1NUJyksXG4gICAgICBiYXRjaDogZmFsc2UsXG4gICAgICBob3N0OiAnczMuYW1hem9uYXdzLmNvbScsXG4gICAgfSk7XG4gIH1cblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gUHVibGljIE1ldGhvZHNcblxuICAvKipcbiAgICoge0Bpbmhlcml0RG9jfVxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGdldEFkYXB0ZXJOYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFMzQWRhcHRlci5uYW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIHtAaW5oZXJpdERvY31cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBjYW5IYW5kbGUoZXZlbnQ6IHVua25vd24pOiBldmVudCBpcyBTM0V2ZW50IHtcbiAgICBjb25zdCBzM0V2ZW50ID0gZXZlbnQgYXMgUGFydGlhbDxTM0V2ZW50PjtcblxuICAgIGlmICghQXJyYXkuaXNBcnJheShzM0V2ZW50Py5SZWNvcmRzKSkgcmV0dXJuIGZhbHNlO1xuXG4gICAgY29uc3QgZXZlbnRTb3VyY2UgPSBzM0V2ZW50LlJlY29yZHNbMF0/LmV2ZW50U291cmNlO1xuXG4gICAgcmV0dXJuIGV2ZW50U291cmNlID09PSAnYXdzOnMzJztcbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxufVxuIiwgIi8vI3JlZ2lvbiBJbXBvcnRzXG5cbmltcG9ydCB0eXBlIHsgU05TRXZlbnQgfSBmcm9tICdhd3MtbGFtYmRhJztcbmltcG9ydCB7IGdldERlZmF1bHRJZlVuZGVmaW5lZCB9IGZyb20gJy4uLy4uL2NvcmUnO1xuaW1wb3J0IHsgQXdzU2ltcGxlQWRhcHRlciB9IGZyb20gJy4vYmFzZSc7XG5cbi8vI2VuZHJlZ2lvblxuXG4vKipcbiAqIFRoZSBvcHRpb25zIHRvIGN1c3RvbWl6ZSB0aGUge0BsaW5rIFNOU0FkYXB0ZXJ9XG4gKlxuICogQGJyZWFkY3J1bWIgQWRhcHRlcnMgLyBBV1MgLyBTTlNBZGFwdGVyXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU05TQWRhcHRlck9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIHBhdGggdGhhdCB3aWxsIGJlIHVzZWQgdG8gY3JlYXRlIGEgcmVxdWVzdCB0byBiZSBmb3J3YXJkZWQgdG8gdGhlIGZyYW1ld29yay5cbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSAvc25zXG4gICAqL1xuICBzbnNGb3J3YXJkUGF0aD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGh0dHAgbWV0aG9kIHRoYXQgd2lsbCBiZSB1c2VkIHRvIGNyZWF0ZSBhIHJlcXVlc3QgdG8gYmUgZm9yd2FyZGVkIHRvIHRoZSBmcmFtZXdvcmsuXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgUE9TVFxuICAgKi9cbiAgc25zRm9yd2FyZE1ldGhvZD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGUgYWRhcHRlciB0byBoYW5kbGUgcmVxdWVzdHMgZnJvbSBBV1MgU05TLlxuICpcbiAqIFRoZSBvcHRpb24gb2YgYHJlc3BvbnNlV2l0aEVycm9yc2AgaXMgaWdub3JlZCBieSB0aGlzIGFkYXB0ZXIgYW5kIHdlIGFsd2F5cyBjYWxsIGByZXNvbHZlci5mYWlsYCB3aXRoIHRoZSBlcnJvci5cbiAqXG4gKiB7QGxpbmsgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvd2l0aC1zbnMuaHRtbCB8IEV2ZW50IFJlZmVyZW5jZX1cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3Qgc25zRm9yd2FyZFBhdGggPSAnL3lvdXIvcm91dGUvc25zJzsgLy8gZGVmYXVsdCAvc25zXG4gKiBjb25zdCBzbnNGb3J3YXJkTWV0aG9kID0gJ1BPU1QnOyAvLyBkZWZhdWx0IFBPU1RcbiAqIGNvbnN0IGFkYXB0ZXIgPSBuZXcgU05TQWRhcHRlcih7IHNuc0ZvcndhcmRQYXRoLCBzbnNGb3J3YXJkTWV0aG9kIH0pO1xuICogYGBgXG4gKlxuICogQGJyZWFkY3J1bWIgQWRhcHRlcnMgLyBBV1MgLyBTTlNBZGFwdGVyXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjbGFzcyBTTlNBZGFwdGVyIGV4dGVuZHMgQXdzU2ltcGxlQWRhcHRlcjxTTlNFdmVudD4ge1xuICAvLyNyZWdpb24gQ29uc3RydWN0b3JcblxuICAvKipcbiAgICogRGVmYXVsdCBjb25zdHJ1Y3RvclxuICAgKlxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIHRvIGN1c3RvbWl6ZSB0aGUge0BsaW5rIFNOU0FkYXB0ZXJ9XG4gICAqL1xuICBjb25zdHJ1Y3RvcihvcHRpb25zPzogU05TQWRhcHRlck9wdGlvbnMpIHtcbiAgICBzdXBlcih7XG4gICAgICBmb3J3YXJkUGF0aDogZ2V0RGVmYXVsdElmVW5kZWZpbmVkKG9wdGlvbnM/LnNuc0ZvcndhcmRQYXRoLCAnL3NucycpLFxuICAgICAgZm9yd2FyZE1ldGhvZDogZ2V0RGVmYXVsdElmVW5kZWZpbmVkKG9wdGlvbnM/LnNuc0ZvcndhcmRNZXRob2QsICdQT1NUJyksXG4gICAgICBiYXRjaDogZmFsc2UsXG4gICAgICBob3N0OiAnc25zLmFtYXpvbmF3cy5jb20nLFxuICAgIH0pO1xuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIFB1YmxpYyBNZXRob2RzXG5cbiAgLyoqXG4gICAqIHtAaW5oZXJpdERvY31cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBnZXRBZGFwdGVyTmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBTTlNBZGFwdGVyLm5hbWU7XG4gIH1cblxuICAvKipcbiAgICoge0Bpbmhlcml0RG9jfVxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGNhbkhhbmRsZShldmVudDogdW5rbm93bik6IGV2ZW50IGlzIFNOU0V2ZW50IHtcbiAgICBjb25zdCBzbnNFdmVudCA9IGV2ZW50IGFzIFBhcnRpYWw8U05TRXZlbnQ+O1xuXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHNuc0V2ZW50Py5SZWNvcmRzKSkgcmV0dXJuIGZhbHNlO1xuXG4gICAgY29uc3QgZXZlbnRTb3VyY2UgPSBzbnNFdmVudC5SZWNvcmRzWzBdPy5FdmVudFNvdXJjZTtcblxuICAgIHJldHVybiBldmVudFNvdXJjZSA9PT0gJ2F3czpzbnMnO1xuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG59XG4iLCAiLy8jcmVnaW9uIEltcG9ydHNcblxuaW1wb3J0IHR5cGUgeyBTUVNFdmVudCB9IGZyb20gJ2F3cy1sYW1iZGEnO1xuaW1wb3J0IHsgZ2V0RGVmYXVsdElmVW5kZWZpbmVkIH0gZnJvbSAnLi4vLi4vY29yZSc7XG5pbXBvcnQgeyB0eXBlIEFXU1NpbXBsZUFkYXB0ZXJPcHRpb25zLCBBd3NTaW1wbGVBZGFwdGVyIH0gZnJvbSAnLi9iYXNlL2luZGV4JztcblxuLy8jZW5kcmVnaW9uXG5cbi8qKlxuICogVGhlIG9wdGlvbnMgdG8gY3VzdG9taXplIHRoZSB7QGxpbmsgU1FTQWRhcHRlcn1cbiAqXG4gKiBAYnJlYWRjcnVtYiBBZGFwdGVycyAvIEFXUyAvIFNRU0FkYXB0ZXJcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTUVNBZGFwdGVyT3B0aW9uc1xuICBleHRlbmRzIFBpY2s8QVdTU2ltcGxlQWRhcHRlck9wdGlvbnMsICdiYXRjaCc+IHtcbiAgLyoqXG4gICAqIFRoZSBwYXRoIHRoYXQgd2lsbCBiZSB1c2VkIHRvIGNyZWF0ZSBhIHJlcXVlc3QgdG8gYmUgZm9yd2FyZGVkIHRvIHRoZSBmcmFtZXdvcmsuXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgL3Nxc1xuICAgKi9cbiAgc3FzRm9yd2FyZFBhdGg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBodHRwIG1ldGhvZCB0aGF0IHdpbGwgYmUgdXNlZCB0byBjcmVhdGUgYSByZXF1ZXN0IHRvIGJlIGZvcndhcmRlZCB0byB0aGUgZnJhbWV3b3JrLlxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIFBPU1RcbiAgICovXG4gIHNxc0ZvcndhcmRNZXRob2Q/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlIGFkYXB0ZXIgdG8gaGFuZGxlIHJlcXVlc3RzIGZyb20gQVdTIFNRUy5cbiAqXG4gKiBUaGUgb3B0aW9uIG9mIGByZXNwb25zZVdpdGhFcnJvcnNgIGlzIGlnbm9yZWQgYnkgdGhpcyBhZGFwdGVyIGFuZCB3ZSBhbHdheXMgY2FsbCBgcmVzb2x2ZXIuZmFpbGAgd2l0aCB0aGUgZXJyb3IuXG4gKlxuICoge0BsaW5rIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL3dpdGgtc3FzLmh0bWwgfCBFdmVudCBSZWZlcmVuY2V9XG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHNxc0ZvcndhcmRQYXRoID0gJy95b3VyL3JvdXRlL3Nxcyc7IC8vIGRlZmF1bHQgL3Nxc1xuICogY29uc3Qgc3FzRm9yd2FyZE1ldGhvZCA9ICdQT1NUJzsgLy8gZGVmYXVsdCBQT1NUXG4gKiBjb25zdCBhZGFwdGVyID0gbmV3IFNRU0FkYXB0ZXIoeyBzcXNGb3J3YXJkUGF0aCwgc3FzRm9yd2FyZE1ldGhvZCB9KTtcbiAqIGBgYFxuICpcbiAqIEBicmVhZGNydW1iIEFkYXB0ZXJzIC8gQVdTIC8gU1FTQWRhcHRlclxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY2xhc3MgU1FTQWRhcHRlciBleHRlbmRzIEF3c1NpbXBsZUFkYXB0ZXI8U1FTRXZlbnQ+IHtcbiAgLy8jcmVnaW9uIENvbnN0cnVjdG9yXG5cbiAgLyoqXG4gICAqIERlZmF1bHQgY29uc3RydWN0b3JcbiAgICpcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyB0byBjdXN0b21pemUgdGhlIHtAbGluayBTTlNBZGFwdGVyfVxuICAgKi9cbiAgY29uc3RydWN0b3Iob3B0aW9ucz86IFNRU0FkYXB0ZXJPcHRpb25zKSB7XG4gICAgc3VwZXIoe1xuICAgICAgZm9yd2FyZFBhdGg6IGdldERlZmF1bHRJZlVuZGVmaW5lZChvcHRpb25zPy5zcXNGb3J3YXJkUGF0aCwgJy9zcXMnKSxcbiAgICAgIGZvcndhcmRNZXRob2Q6IGdldERlZmF1bHRJZlVuZGVmaW5lZChvcHRpb25zPy5zcXNGb3J3YXJkTWV0aG9kLCAnUE9TVCcpLFxuICAgICAgYmF0Y2g6IG9wdGlvbnM/LmJhdGNoLFxuICAgICAgaG9zdDogJ3Nxcy5hbWF6b25hd3MuY29tJyxcbiAgICB9KTtcbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBQdWJsaWMgTWV0aG9kc1xuXG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2N9XG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0QWRhcHRlck5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gU1FTQWRhcHRlci5uYW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIHtAaW5oZXJpdERvY31cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBjYW5IYW5kbGUoZXZlbnQ6IHVua25vd24pOiBldmVudCBpcyBTUVNFdmVudCB7XG4gICAgY29uc3Qgc3FzRXZlbnQgPSBldmVudCBhcyBQYXJ0aWFsPFNRU0V2ZW50PjtcblxuICAgIGlmICghQXJyYXkuaXNBcnJheShzcXNFdmVudD8uUmVjb3JkcykpIHJldHVybiBmYWxzZTtcblxuICAgIGNvbnN0IGV2ZW50U291cmNlID0gc3FzRXZlbnQuUmVjb3Jkc1swXT8uZXZlbnRTb3VyY2U7XG5cbiAgICByZXR1cm4gZXZlbnRTb3VyY2UgPT09ICdhd3M6c3FzJztcbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxufVxuIiwgIi8vI3JlZ2lvbiBJbXBvcnRzXG5cbmltcG9ydCB0eXBlIHsgQ2xvdWRGcm9udFJlcXVlc3QsIENvbnRleHQgfSBmcm9tICdhd3MtbGFtYmRhJztcbmltcG9ydCB0eXBlIHtcbiAgQ2xvdWRGcm9udEhlYWRlcnMsXG4gIENsb3VkRnJvbnRSZXN1bHRSZXNwb25zZSxcbn0gZnJvbSAnYXdzLWxhbWJkYS9jb21tb24vY2xvdWRmcm9udCc7XG5pbXBvcnQgdHlwZSB7XG4gIENsb3VkRnJvbnRSZXF1ZXN0RXZlbnQsXG4gIENsb3VkRnJvbnRSZXF1ZXN0UmVzdWx0LFxufSBmcm9tICdhd3MtbGFtYmRhL3RyaWdnZXIvY2xvdWRmcm9udC1yZXF1ZXN0JztcbmltcG9ydCB0eXBlIHsgQm90aFZhbHVlSGVhZGVycywgU2luZ2xlVmFsdWVIZWFkZXJzIH0gZnJvbSAnLi4vLi4vQHR5cGVzJztcbmltcG9ydCB0eXBlIHtcbiAgQWRhcHRlckNvbnRyYWN0LFxuICBBZGFwdGVyUmVxdWVzdCxcbiAgR2V0UmVzcG9uc2VBZGFwdGVyUHJvcHMsXG4gIE9uRXJyb3JQcm9wcyxcbn0gZnJvbSAnLi4vLi4vY29udHJhY3RzJztcbmltcG9ydCB7XG4gIHR5cGUgU3RyaXBCYXNlUGF0aEZuLFxuICBidWlsZFN0cmlwQmFzZVBhdGgsXG4gIGdldERlZmF1bHRJZlVuZGVmaW5lZCxcbiAgZ2V0RXZlbnRCb2R5QXNCdWZmZXIsXG4gIGdldFBhdGhXaXRoUXVlcnlTdHJpbmdQYXJhbXMsXG59IGZyb20gJy4uLy4uL2NvcmUnO1xuaW1wb3J0IHtcbiAgREVGQVVMVF9MQU1CREFfRURHRV9ESVNBTExPV0VEX0hFQURFUlMsXG4gIERFRkFVTFRfT1JJR0lOX01BWF9SRVNQT05TRV9TSVpFX0lOX0JZVEVTLFxuICBERUZBVUxUX1ZJRVdFUl9NQVhfUkVTUE9OU0VfU0laRV9JTl9CWVRFUyxcbn0gZnJvbSAnLi9sYW1iZGEtZWRnZS5hZGFwdGVyJztcblxuLy8jZW5kcmVnaW9uXG5cbi8vI2VuZHJlZ2lvblxuXG4vKipcbiAqIFRoZSBvcHRpb25zIHRvIGN1c3RvbWl6ZSB0aGUge0BsaW5rIFJlcXVlc3RMYW1iZGFFZGdlQWRhcHRlcn0uXG4gKlxuICogQGJyZWFkY3J1bWIgQWRhcHRlcnMgLyBBV1MgLyBSZXF1ZXN0TGFtYmRhRWRnZUFkYXB0ZXJcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXF1ZXN0TGFtYmRhRWRnZUFkYXB0ZXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIFN0cmlwIGJhc2UgcGF0aCBmb3IgY3VzdG9tIHBhdGhzLCBsaWtlIGAvYXBpYC5cbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSAnJ1xuICAgKi9cbiAgc3RyaXBCYXNlUGF0aD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG1heCByZXNwb25zZSBzaXplIGluIGJ5dGVzIG9mIHZpZXdlciByZXF1ZXN0IGFuZCB2aWV3ZXIgcmVzcG9uc2UuXG4gICAqXG4gICAqIHtAbGluayBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRGcm9udC9sYXRlc3QvRGV2ZWxvcGVyR3VpZGUvY2xvdWRmcm9udC1saW1pdHMuaHRtbCB8IFJlZmVyZW5jZX1cbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSB7QGxpbmsgREVGQVVMVF9WSUVXRVJfTUFYX1JFU1BPTlNFX1NJWkVfSU5fQllURVN9XG4gICAqL1xuICB2aWV3ZXJNYXhSZXNwb25zZVNpemVJbkJ5dGVzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgbWF4IHJlc3BvbnNlIHNpemUgaW4gYnl0ZXMgb2Ygb3JpZ2luIHJlcXVlc3QgYW5kIG9yaWdpbiByZXNwb25zZS5cbiAgICpcbiAgICoge0BsaW5rIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25DbG91ZEZyb250L2xhdGVzdC9EZXZlbG9wZXJHdWlkZS9jbG91ZGZyb250LWxpbWl0cy5odG1sIHwgUmVmZXJlbmNlfVxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIHtAbGluayBERUZBVUxUX09SSUdJTl9NQVhfUkVTUE9OU0VfU0laRV9JTl9CWVRFU31cbiAgICovXG4gIG9yaWdpbk1heFJlc3BvbnNlU2l6ZUluQnl0ZXM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBmdW5jdGlvbiBjYWxsZWQgd2hlbiB0aGUgcmVzcG9uc2Ugc2l6ZSBleGNlZWQgdGhlIG1heCBsaW1pdHMgb2YgdGhlIExhbWJkYVxcQGVkZ2VcbiAgICpcbiAgICogQHBhcmFtIHJlc3BvbnNlIC0gVGhlIHJlc3BvbnNlIGZyb20gZnJhbWV3b3JrIHRoYXQgZXhjZWVkIHRoZSBsaW1pdCBvZiBMYW1iZGFcXEBlZGdlXG4gICAqIEBkZWZhdWx0VmFsdWUgdW5kZWZpbmVkXG4gICAqL1xuICBvblJlc3BvbnNlU2l6ZUV4Y2VlZExpbWl0PzogKFxuICAgIHJlc3BvbnNlOiBDbG91ZEZyb250UmVxdWVzdFJlc3VsdCxcbiAgKSA9PiBDbG91ZEZyb250UmVxdWVzdFJlc3VsdDtcblxuICAvKipcbiAgICogVGhlIGhlYWRlcnMgdGhhdCB3aWxsIGJlIHN0cmlwcGVkIGZyb20gdGhlIGhlYWRlcnMgb2JqZWN0IGJlY2F1c2UgTGFtYmRhXFxAZWRnZSB3aWxsIGZhaWwgaWYgdGhlc2UgaGVhZGVycyBhcmUgcGFzc2VkIGluIHRoZSByZXNwb25zZS5cbiAgICpcbiAgICogQHJlbWFya3MgQWxsIGhlYWRlcnMgd2lsbCBiZSBjb21wYXJlZCB3aXRoIG90aGVyIGhlYWRlcnMgdXNpbmcgdG9Mb3dlckNhc2UsIGJ1dCBmb3IgdGhlIFJlZ0V4cCwgaWYgeW91IG1vZGlmeSB0aGlzIGxpc3QsIHlvdSBtdXN0IHB1dCB0aGUgZmxhZyBgL2dtaWAgYXQgdGhlIGVuZCBvZiB0aGUgUmVnRXhwIChleDogYC8oWC1BbXotQ2YtKSguKikvZ2ltYClcbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSBUbyBnZXQgdGhlIGZ1bGwgbGlzdCwgc2VlIHtAbGluayBERUZBVUxUX0xBTUJEQV9FREdFX0RJU0FMTE9XRURfSEVBREVSU30uXG4gICAqL1xuICBkaXNhbGxvd2VkSGVhZGVycz86IChzdHJpbmcgfCBSZWdFeHApW107XG5cbiAgLyoqXG4gICAqIElmIHlvdSB3YW50IHRvIGNoYW5nZSBob3cgd2UgY2hlY2sgYWdhaW5zdCB0aGUgaGVhZGVyIGlmIGl0IHNob3VsZCBiZSBzdHJpcHBlZCwgeW91IGNhbiBwYXNzIGEgZnVuY3Rpb24gdG8gdGhpcyBwcm9wZXJ0eS5cbiAgICpcbiAgICogQHBhcmFtIGhlYWRlciAtIFRoZSBoZWFkZXIgb2YgdGhlIHJlc3BvbnNlXG4gICAqIEBkZWZhdWx0VmFsdWUgVGhlIGRlZmF1bHQgbWV0aG9kIGlzIGltcGxlbWVudGVkIHRvIHRlc3QgdGhlIGhlYWRlciBhZ2FpbnN0IHRoZSBsaXN0IHtAbGluayBSZXF1ZXN0TGFtYmRhRWRnZUFkYXB0ZXJPcHRpb25zLmRpc2FsbG93ZWRIZWFkZXJzfS5cbiAgICovXG4gIHNob3VsZFN0cmlwSGVhZGVyPzogKGhlYWRlcjogc3RyaW5nKSA9PiBib29sZWFuO1xufVxuXG4vKipcbiAqIFRoZSBhZGFwdGVyIHRvIGhhbmRsZSByZXF1ZXN0cyBmcm9tIEFXUyBMYW1iZGFcXEBFZGdlIG9mIHRoZSB0eXBlIFZpZXdlciBSZXF1ZXN0LlxuICpcbiAqIFRoZSBpZGVhIG9mIHRoaXMgQWRhcHRlciBpcyB0byB5b3UgYmUgYWJsZSB0byBleHBvc2UgeW91ciBmcmFtZXdvcmsgdG8gdGhlIEVkZ2UsIGxpa2Ugd2hlbiB5b3UgYnVpbGQgZm9yIENsb3VkZnJvbnQuXG4gKlxuICoge0BsaW5rIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL2xhbWJkYS1lZGdlLmh0bWwgfCBMYW1iZGEgZWRnZSBkb2NzfVxuICoge0BsaW5rIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25DbG91ZEZyb250L2xhdGVzdC9EZXZlbG9wZXJHdWlkZS9sYW1iZGEtZXZlbnQtc3RydWN0dXJlLmh0bWwgfCBFdmVudCBSZWZlcmVuY2V9XG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHN0cmlwQmFzZVBhdGggPSAnL2FwaSc7IC8vIGluIGNhc2UgeW91IGhhdmUgY29uZmlndXJlIHRoZSBjbG91ZGZyb250IHRvIGZvcndhcmQgdGhlIHBhdGggL2FwaSB0byB5b3VyIGxhbWJkYVxuICogY29uc3QgYWRhcHRlciA9IG5ldyBSZXF1ZXN0TGFtYmRhRWRnZUFkYXB0ZXIoeyBzdHJpcEJhc2VQYXRoIH0pO1xuICogYGBgXG4gKlxuICogQGJyZWFkY3J1bWIgQWRhcHRlcnMgLyBBV1MgLyBSZXF1ZXN0TGFtYmRhRWRnZUFkYXB0ZXJcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNsYXNzIFJlcXVlc3RMYW1iZGFFZGdlQWRhcHRlclxuICBpbXBsZW1lbnRzXG4gICAgQWRhcHRlckNvbnRyYWN0PENsb3VkRnJvbnRSZXF1ZXN0RXZlbnQsIENvbnRleHQsIENsb3VkRnJvbnRSZXN1bHRSZXNwb25zZT5cbntcbiAgLy8jcmVnaW9uIENvbnN0cnVjdG9yXG5cbiAgLyoqXG4gICAqIERlZmF1bHQgY29uc3RydWN0b3JcbiAgICpcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyB0byBjdXN0b21pemUgdGhlIHtAbGluayBSZXF1ZXN0TGFtYmRhRWRnZUFkYXB0ZXJ9XG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgcmVhZG9ubHkgb3B0aW9ucz86IFJlcXVlc3RMYW1iZGFFZGdlQWRhcHRlck9wdGlvbnMpIHtcbiAgICB0aGlzLnN0cmlwUGF0aEZuID0gYnVpbGRTdHJpcEJhc2VQYXRoKHRoaXMub3B0aW9ucz8uc3RyaXBCYXNlUGF0aCk7XG5cbiAgICBjb25zdCBkaXNhbGxvd2VkSGVhZGVycyA9IGdldERlZmF1bHRJZlVuZGVmaW5lZChcbiAgICAgIHRoaXMub3B0aW9ucz8uZGlzYWxsb3dlZEhlYWRlcnMsXG4gICAgICBERUZBVUxUX0xBTUJEQV9FREdFX0RJU0FMTE9XRURfSEVBREVSUyxcbiAgICApO1xuXG4gICAgdGhpcy5jYWNoZWREaXNhbGxvd2VkSGVhZGVycyA9IGRpc2FsbG93ZWRIZWFkZXJzLm1hcChkaXNhbGxvd2VkSGVhZGVyID0+IHtcbiAgICAgIGlmIChkaXNhbGxvd2VkSGVhZGVyIGluc3RhbmNlb2YgUmVnRXhwKSByZXR1cm4gZGlzYWxsb3dlZEhlYWRlcjtcblxuICAgICAgcmV0dXJuIG5ldyBSZWdFeHAoYCgke2Rpc2FsbG93ZWRIZWFkZXJ9KWAsICdnaW0nKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBQcm90ZWN0ZWQgUHJvcGVydGllc1xuXG4gIC8qKlxuICAgKiBTdHJpcCBiYXNlIHBhdGggZnVuY3Rpb25cbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSBzdHJpcFBhdGhGbjogU3RyaXBCYXNlUGF0aEZuO1xuXG4gIC8qKlxuICAgKiBUaGlzIHByb3BlcnR5IGlzIHVzZWQgdG8gY2FjaGUgdGhlIGRpc2FsbG93ZWQgaGVhZGVycyBpbiBgUmVnRXhwYCB2ZXJzaW9uLCBldmVuIGlmIHlvdSBwcm92aWRlIGEgc3RyaW5nIGluIGBkaXNhbGxvd2VkSGVhZGVyYCwgd2Ugd2lsbCBjYWNoZSBpdCBpbiBhbiBpbnN0YW5jZSBvZiBgUmVnRXhwYC5cbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSBjYWNoZWREaXNhbGxvd2VkSGVhZGVyczogUmVnRXhwW107XG5cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIFB1YmxpYyBNZXRob2RzXG5cbiAgLyoqXG4gICAqIHtAaW5oZXJpdERvY31cbiAgICovXG4gIHB1YmxpYyBnZXRBZGFwdGVyTmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBSZXF1ZXN0TGFtYmRhRWRnZUFkYXB0ZXIubmFtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2N9XG4gICAqL1xuICBwdWJsaWMgY2FuSGFuZGxlKGV2ZW50OiB1bmtub3duKTogZXZlbnQgaXMgQ2xvdWRGcm9udFJlcXVlc3RFdmVudCB7XG4gICAgY29uc3QgbGFtYmRhRWRnZUV2ZW50ID0gZXZlbnQgYXMgUGFydGlhbDxDbG91ZEZyb250UmVxdWVzdEV2ZW50PjtcblxuICAgIGlmICghQXJyYXkuaXNBcnJheShsYW1iZGFFZGdlRXZlbnQ/LlJlY29yZHMpKSByZXR1cm4gZmFsc2U7XG5cbiAgICBjb25zdCBldmVudFR5cGUgPSBsYW1iZGFFZGdlRXZlbnQuUmVjb3Jkc1swXT8uY2Y/LmNvbmZpZz8uZXZlbnRUeXBlO1xuXG4gICAgcmV0dXJuIGV2ZW50VHlwZSA9PT0gJ3ZpZXdlci1yZXF1ZXN0JyB8fCBldmVudFR5cGUgPT09ICdvcmlnaW4tcmVxdWVzdCc7XG4gIH1cblxuICAvKipcbiAgICoge0Bpbmhlcml0RG9jfVxuICAgKi9cbiAgcHVibGljIGdldFJlcXVlc3QoZXZlbnQ6IENsb3VkRnJvbnRSZXF1ZXN0RXZlbnQpOiBBZGFwdGVyUmVxdWVzdCB7XG4gICAgY29uc3QgcmVxdWVzdCA9IGV2ZW50LlJlY29yZHNbMF07XG4gICAgY29uc3QgY2xvdWRGcm9udFJlcXVlc3QgPSByZXF1ZXN0LmNmLnJlcXVlc3Q7XG5cbiAgICBjb25zdCBtZXRob2QgPSBjbG91ZEZyb250UmVxdWVzdC5tZXRob2Q7XG5cbiAgICBjb25zdCBwYXRoID0gdGhpcy5zdHJpcFBhdGhGbihcbiAgICAgIGdldFBhdGhXaXRoUXVlcnlTdHJpbmdQYXJhbXMoXG4gICAgICAgIGNsb3VkRnJvbnRSZXF1ZXN0LnVyaSxcbiAgICAgICAgY2xvdWRGcm9udFJlcXVlc3QucXVlcnlzdHJpbmcsXG4gICAgICApLFxuICAgICk7XG4gICAgY29uc3QgcmVtb3RlQWRkcmVzcyA9IGNsb3VkRnJvbnRSZXF1ZXN0LmNsaWVudElwO1xuXG4gICAgY29uc3QgaGVhZGVycyA9XG4gICAgICB0aGlzLmdldEZsYXR0ZW5lZEhlYWRlcnNGcm9tQ2xvdWRmcm9udFJlcXVlc3QoY2xvdWRGcm9udFJlcXVlc3QpO1xuXG4gICAgbGV0IGJvZHk6IEJ1ZmZlciB8IHVuZGVmaW5lZDtcblxuICAgIGlmIChjbG91ZEZyb250UmVxdWVzdC5ib2R5KSB7XG4gICAgICBjb25zdCBbYnVmZmVyLCBjb250ZW50TGVuZ3RoXSA9IGdldEV2ZW50Qm9keUFzQnVmZmVyKFxuICAgICAgICBjbG91ZEZyb250UmVxdWVzdC5ib2R5LmRhdGEsXG4gICAgICAgIGNsb3VkRnJvbnRSZXF1ZXN0LmJvZHkuZW5jb2RpbmcgPT09ICdiYXNlNjQnLFxuICAgICAgKTtcblxuICAgICAgYm9keSA9IGJ1ZmZlcjtcbiAgICAgIGhlYWRlcnNbJ2NvbnRlbnQtbGVuZ3RoJ10gPSBjb250ZW50TGVuZ3RoLnRvU3RyaW5nKCk7XG4gICAgfVxuXG4gICAgY29uc3QgeyBob3N0IH0gPSBoZWFkZXJzO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIG1ldGhvZCxcbiAgICAgIHBhdGgsXG4gICAgICBoZWFkZXJzLFxuICAgICAgYm9keSxcbiAgICAgIHJlbW90ZUFkZHJlc3MsXG4gICAgICBob3N0LFxuICAgICAgaG9zdG5hbWU6IGhvc3QsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2N9XG4gICAqL1xuICBwdWJsaWMgZ2V0UmVzcG9uc2Uoe1xuICAgIGJvZHksXG4gICAgaGVhZGVyczogZnJhbWV3b3JrSGVhZGVycyxcbiAgICBpc0Jhc2U2NEVuY29kZWQsXG4gICAgc3RhdHVzQ29kZSxcbiAgICBsb2csXG4gICAgZXZlbnQsXG4gIH06IEdldFJlc3BvbnNlQWRhcHRlclByb3BzPENsb3VkRnJvbnRSZXF1ZXN0RXZlbnQ+KTogQ2xvdWRGcm9udFJlc3VsdFJlc3BvbnNlIHtcbiAgICBjb25zdCBoZWFkZXJzID0gdGhpcy5nZXRIZWFkZXJzRm9yQ2xvdWRmcm9udFJlc3BvbnNlKGZyYW1ld29ya0hlYWRlcnMpO1xuXG4gICAgY29uc3QgbWF4U2l6ZUluQnl0ZXMgPVxuICAgICAgZXZlbnQuUmVjb3Jkc1swXS5jZi5jb25maWcuZXZlbnRUeXBlID09PSAnb3JpZ2luLXJlcXVlc3QnXG4gICAgICAgID8gZ2V0RGVmYXVsdElmVW5kZWZpbmVkKFxuICAgICAgICAgICAgdGhpcy5vcHRpb25zPy5vcmlnaW5NYXhSZXNwb25zZVNpemVJbkJ5dGVzLFxuICAgICAgICAgICAgREVGQVVMVF9PUklHSU5fTUFYX1JFU1BPTlNFX1NJWkVfSU5fQllURVMsXG4gICAgICAgICAgKVxuICAgICAgICA6IGdldERlZmF1bHRJZlVuZGVmaW5lZChcbiAgICAgICAgICAgIHRoaXMub3B0aW9ucz8udmlld2VyTWF4UmVzcG9uc2VTaXplSW5CeXRlcyxcbiAgICAgICAgICAgIERFRkFVTFRfVklFV0VSX01BWF9SRVNQT05TRV9TSVpFX0lOX0JZVEVTLFxuICAgICAgICAgICk7XG5cbiAgICBjb25zdCByZXNwb25zZTogQ2xvdWRGcm9udFJlc3VsdFJlc3BvbnNlID0ge1xuICAgICAgYm9keSxcbiAgICAgIHN0YXR1czogc3RhdHVzQ29kZS50b1N0cmluZygpLFxuICAgICAgYm9keUVuY29kaW5nOiBpc0Jhc2U2NEVuY29kZWQgPyAnYmFzZTY0JyA6ICd0ZXh0JyxcbiAgICAgIGhlYWRlcnMsXG4gICAgfTtcblxuICAgIC8vIHByb2JhYmx5IGlzIG5vdCBjb3JyZWN0bHkgYWNjdXJhdGUsIGJ1dCBpdCdzIGEgZ29vZCBhcHByb3hpbWF0aW9uXG4gICAgY29uc3QgYm9keUxlbmd0aCA9IGJvZHkubGVuZ3RoO1xuXG4gICAgaWYgKGJvZHlMZW5ndGggPD0gbWF4U2l6ZUluQnl0ZXMpIHJldHVybiByZXNwb25zZTtcblxuICAgIGlmICh0aGlzLm9wdGlvbnM/Lm9uUmVzcG9uc2VTaXplRXhjZWVkTGltaXQpXG4gICAgICB0aGlzLm9wdGlvbnMub25SZXNwb25zZVNpemVFeGNlZWRMaW1pdChyZXNwb25zZSk7XG4gICAgZWxzZSB7XG4gICAgICBsb2cuZXJyb3IoXG4gICAgICAgIGBTRVJWRVJMRVNTX0FEQVBURVI6TEFNQkRBX0VER0VfQURBUFRFUjogTWF4IHJlc3BvbnNlIHNpemUgZXhjZWVkZWQ6ICR7Ym9keUxlbmd0aH0gb2YgdGhlIG1heCBvZiAke21heFNpemVJbkJ5dGVzfS5gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzcG9uc2U7XG4gIH1cblxuICAvKipcbiAgICoge0Bpbmhlcml0RG9jfVxuICAgKi9cbiAgcHVibGljIG9uRXJyb3JXaGlsZUZvcndhcmRpbmcoe1xuICAgIGVycm9yLFxuICAgIGRlbGVnYXRlZFJlc29sdmVyLFxuICAgIHJlc3BvbmRXaXRoRXJyb3JzLFxuICAgIGxvZyxcbiAgICBldmVudCxcbiAgfTogT25FcnJvclByb3BzPENsb3VkRnJvbnRSZXF1ZXN0RXZlbnQsIENsb3VkRnJvbnRSZXF1ZXN0UmVzdWx0Pik6IHZvaWQge1xuICAgIGNvbnN0IGJvZHkgPSByZXNwb25kV2l0aEVycm9ycyA/IGVycm9yLnN0YWNrIDogJyc7XG4gICAgY29uc3QgZXJyb3JSZXNwb25zZSA9IHRoaXMuZ2V0UmVzcG9uc2Uoe1xuICAgICAgZXZlbnQsXG4gICAgICBzdGF0dXNDb2RlOiA1MDAsXG4gICAgICBib2R5OiBib2R5IHx8ICcnLFxuICAgICAgaGVhZGVyczoge30sXG4gICAgICBpc0Jhc2U2NEVuY29kZWQ6IGZhbHNlLFxuICAgICAgbG9nLFxuICAgIH0pO1xuXG4gICAgZGVsZWdhdGVkUmVzb2x2ZXIuc3VjY2VlZChlcnJvclJlc3BvbnNlKTtcbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBQcm90ZWN0ZWQgTWV0aG9kc1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBoZWFkZXJzIHdpdGggdGhlIGZsYXR0ZW5lZCAobm9uLWxpc3QpIHZhbHVlcyBvZiB0aGUgY2xvdWRmcm9udCByZXF1ZXN0IGhlYWRlcnNcbiAgICpcbiAgICogQHBhcmFtIGNsb3VkRnJvbnRSZXF1ZXN0IC0gVGhlIGNsb3VkZnJvbnQgcmVxdWVzdFxuICAgKi9cbiAgcHJvdGVjdGVkIGdldEZsYXR0ZW5lZEhlYWRlcnNGcm9tQ2xvdWRmcm9udFJlcXVlc3QoXG4gICAgY2xvdWRGcm9udFJlcXVlc3Q6IENsb3VkRnJvbnRSZXF1ZXN0LFxuICApOiBTaW5nbGVWYWx1ZUhlYWRlcnMge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyhjbG91ZEZyb250UmVxdWVzdC5oZWFkZXJzKS5yZWR1Y2UoKGFjYywgaGVhZGVyS2V5KSA9PiB7XG4gICAgICBjb25zdCBoZWFkZXJWYWx1ZSA9IGNsb3VkRnJvbnRSZXF1ZXN0LmhlYWRlcnNbaGVhZGVyS2V5XTtcblxuICAgICAgaWYgKGhlYWRlclZhbHVlLmxlbmd0aCA9PT0gMSkgYWNjW2hlYWRlcktleV0gPSBoZWFkZXJWYWx1ZVswXS52YWx1ZTtcbiAgICAgIGVsc2UgYWNjW2hlYWRlcktleV0gPSBoZWFkZXJWYWx1ZS5tYXAoaGVhZGVyID0+IGhlYWRlci52YWx1ZSkuam9pbignLCcpO1xuXG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIHt9IGFzIFNpbmdsZVZhbHVlSGVhZGVycyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBoZWFkZXJzIGluIENsb3VkZnJvbnQgUmVzcG9uc2UgZm9ybWF0LlxuICAgKlxuICAgKiBAcGFyYW0gb3JpZ2luYWxIZWFkZXJzIC0gVGhlIG9yaWdpbmFsIHZlcnNpb24gb2YgdGhlIHJlcXVlc3Qgc2VudCBieSB0aGUgZnJhbWV3b3JrXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0SGVhZGVyc0ZvckNsb3VkZnJvbnRSZXNwb25zZShcbiAgICBvcmlnaW5hbEhlYWRlcnM6IEJvdGhWYWx1ZUhlYWRlcnMsXG4gICk6IENsb3VkRnJvbnRIZWFkZXJzIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMob3JpZ2luYWxIZWFkZXJzKS5yZWR1Y2UoKGFjYywgaGVhZGVyS2V5KSA9PiB7XG4gICAgICBpZiAodGhpcy5zaG91bGRTdHJpcEhlYWRlcihoZWFkZXJLZXkpKSByZXR1cm4gYWNjO1xuXG4gICAgICBjb25zdCBsb3dlcmNhc2VIZWFkZXJLZXkgPSBoZWFkZXJLZXkudG9Mb3dlckNhc2UoKTtcblxuICAgICAgaWYgKCFhY2NbbG93ZXJjYXNlSGVhZGVyS2V5XSkgYWNjW2xvd2VyY2FzZUhlYWRlcktleV0gPSBbXTtcblxuICAgICAgY29uc3QgaGVhZGVyVmFsdWUgPSBvcmlnaW5hbEhlYWRlcnNbaGVhZGVyS2V5XTtcblxuICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGhlYWRlclZhbHVlKSkge1xuICAgICAgICBhY2NbbG93ZXJjYXNlSGVhZGVyS2V5XS5wdXNoKHtcbiAgICAgICAgICBrZXk6IGhlYWRlcktleSxcbiAgICAgICAgICB2YWx1ZTogaGVhZGVyVmFsdWUgfHwgJycsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGhlYWRlcnNBcnJheSA9IGhlYWRlclZhbHVlLm1hcCh2YWx1ZSA9PiAoe1xuICAgICAgICBrZXk6IGhlYWRlcktleSxcbiAgICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgfSkpO1xuXG4gICAgICBhY2NbbG93ZXJjYXNlSGVhZGVyS2V5XS5wdXNoKC4uLmhlYWRlcnNBcnJheSk7XG5cbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwge30gYXMgQ2xvdWRGcm9udEhlYWRlcnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGluZm9ybWF0aW9uIGlmIHdlIHNob3VsZCByZW1vdmUgdGhlIHJlc3BvbnNlIGhlYWRlclxuICAgKlxuICAgKiBAcGFyYW0gaGVhZGVyS2V5IC0gVGhlIGhlYWRlciB0aGF0IHdpbGwgYmUgdGVzdGVkXG4gICAqL1xuICBwcm90ZWN0ZWQgc2hvdWxkU3RyaXBIZWFkZXIoaGVhZGVyS2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5vcHRpb25zPy5zaG91bGRTdHJpcEhlYWRlcilcbiAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMuc2hvdWxkU3RyaXBIZWFkZXIoaGVhZGVyS2V5KTtcblxuICAgIGNvbnN0IGhlYWRlcktleUxvd2VyQ2FzZSA9IGhlYWRlcktleS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgZm9yIChjb25zdCBzdHJpcEhlYWRlcklmIG9mIHRoaXMuY2FjaGVkRGlzYWxsb3dlZEhlYWRlcnMpIHtcbiAgICAgIGlmICghc3RyaXBIZWFkZXJJZi50ZXN0KGhlYWRlcktleUxvd2VyQ2FzZSkpIGNvbnRpbnVlO1xuXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvLyNlbmRyZWdpb25cbn1cbiIsICIvLyNyZWdpb25cblxuaW1wb3J0IHR5cGUgeyBJbmNvbWluZ01lc3NhZ2UsIFNlcnZlclJlc3BvbnNlIH0gZnJvbSAnaHR0cCc7XG5pbXBvcnQgdHlwZSB7IEV4cHJlc3MgfSBmcm9tICdleHByZXNzJztcbmltcG9ydCB0eXBlIHsgRnJhbWV3b3JrQ29udHJhY3QgfSBmcm9tICcuLi8uLi9jb250cmFjdHMnO1xuXG4vLyNlbmRyZWdpb25cblxuLyoqXG4gKiBUaGUgZnJhbWV3b3JrIHRoYXQgZm9yd2FyZHMgcmVxdWVzdHMgdG8gZXhwcmVzcyBoYW5kbGVyXG4gKlxuICogQGJyZWFkY3J1bWIgRnJhbWV3b3JrcyAvIEV4cHJlc3NGcmFtZXdvcmtcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNsYXNzIEV4cHJlc3NGcmFtZXdvcmsgaW1wbGVtZW50cyBGcmFtZXdvcmtDb250cmFjdDxFeHByZXNzPiB7XG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2N9XG4gICAqL1xuICBwdWJsaWMgc2VuZFJlcXVlc3QoXG4gICAgYXBwOiBFeHByZXNzLFxuICAgIHJlcXVlc3Q6IEluY29taW5nTWVzc2FnZSxcbiAgICByZXNwb25zZTogU2VydmVyUmVzcG9uc2UsXG4gICk6IHZvaWQge1xuICAgIGFwcChyZXF1ZXN0LCByZXNwb25zZSk7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICJxckJBQUEsSUFBQUEsR0FBQUMsRUFBQSxDQUFBQyxJQUFBQyxLQUFBLGNBZUEsSUFBSUMsR0FBUSxRQUFRLE9BQU8sRUFBRSxjQUFjLEVBQ3ZDQyxHQUFPLFFBQVEsV0FBVyxFQUMxQkMsSUFBSyxRQUFRLFNBQVMsRUFPdEJDLElBQVVGLEdBQUssUUFDZkcsR0FBV0gsR0FBSyxTQUNoQkksSUFBVUosR0FBSyxRQUNmSyxHQUFPTCxHQUFLLEtBQ1pNLElBQVVOLEdBQUssUUFPbkJGLEdBQU8sUUFBVVMsR0FnQmpCLFNBQVNBLEdBQUtDLEVBQU1DLEVBQVMsQ0FDM0IsSUFBSUMsRUFBT0QsR0FBVyxDQUFDLEVBT3ZCLEdBTEEsS0FBSyxjQUFnQkMsRUFBSyxjQUMxQixLQUFLLElBQU1OLElBQVFJLENBQUksRUFDdkIsS0FBSyxLQUFPQSxFQUNaLEtBQUssS0FBT0UsRUFBSyxLQUViLENBQUMsS0FBSyxLQUFPLENBQUMsS0FBSyxjQUNyQixNQUFNLElBQUksTUFBTSxnRUFBZ0UsRUFHbEYsSUFBSUMsRUFBV0gsRUFXZixHQVRLLEtBQUssTUFFUixLQUFLLElBQU0sS0FBSyxjQUFjLENBQUMsSUFBTSxJQUNqQyxJQUFNLEtBQUssY0FDWCxLQUFLLGNBRVRHLEdBQVksS0FBSyxLQUdmLENBQUNELEVBQUssUUFB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QUcsZ0JBQWdCLENBQUUsQ0FBQyxFQUFHLFNBQVVJLEdBQUcsQ0FBQ3RCLEVBQUMsRUFBR1MsRUFBRSxFQUFHLENBQUUsV0FBWSxDQUFDLENBQUUsQ0FBQ1IsRUFBQyxFQUFHSSxHQUFHLENBQUNILEVBQUMsRUFBRyxDQUFDZ0IsR0FBRyxZQUFZLENBQUUsQ0FBQyxFQUFHLFNBQVVJLEdBQUcsQ0FBQ3RCLEVBQUMsRUFBR1MsRUFBRSxFQUFHLENBQUUsV0FBWSxDQUFDLENBQUUsQ0FBQ1IsRUFBQyxFQUFHSSxHQUFHLENBQUNILEVBQUMsRUFBRyxDQUFDZ0IsR0FBRyxnQkFBZ0IsQ0FBRSxDQUFDLEVBQUcsU0FBVUksR0FBRyxDQUFDdEIsRUFBQyxFQUFHUyxFQUFFLEVBQUcsQ0FBRSxXQUFZLENBQUMsQ0FBRSxDQUFDUixFQUFDLEVBQUdJLEdBQUcsQ0FBQ0gsRUFBQyxFQUFHLENBQUNnQixHQUFHLGdCQUFnQixDQUFFLENBQUMsRUFBRyxTQUFVSSxHQUFHLENBQUN0QixFQUFDLEVBQUdTLEVBQUUsRUFBR2UsSUFBRyxDQUFFLFdBQVksQ0FBQyxDQUFFLENBQUN2QixFQUFDLEVBQUdJLEdBQUcsQ0FBQ0gsRUFBQyxFQUFHLENBQUNnQixHQUFHLGNBQWMsQ0FBRSxDQUFDLEVBQUcsU0FBVUksR0FBRyxDQUFDdEIsRUFBQyxFQUFHUyxFQUFFLEVBQUcsQ0FBRSxXQUFZLENBQUMsQ0FBRSxDQUFDUixFQUFDLEVBQUdJLEdBQUcsQ0FBQ0gsRUFBQyxFQUFHLENBQUNnQixHQUFHLGNBQWMsQ0FBRSxDQUFDLEVBQUcsU0FBVUksR0FBRyxDQUFDdEIsRUFBQyxFQUFHUyxFQUFFLEVBQUcsQ0FBRSxXQUFZLENBQUMsQ0FBRSxDQUFDUixFQUFDLEVBQUdJLEdBQUcsQ0FBQ0gsRUFBQyxFQUFHLENBQUNnQixHQUFHLFlBQVksQ0FBRSxDQUFDLEVBQUcsU0FBVUksR0FBRyxDQUFDdEIsRUFBQyxFQUFHUyxFQUFFLEVBQUcsQ0FBRSxXQUFZLENBQUMsQ0FBRSxDQUFDUixFQUFDLEVBQUdJLEdBQUcsQ0FBQ0gsRUFBQyxFQUFHLENBQUNnQixHQUFHLFdBQVcsQ0FBRSxDQUFDLEVBQUcsU0FBVUksR0FBRyxDQUFDdEIsRUFBQyxFQUFHUyxFQUFFLEVBQUcsQ0FBRSxXQUFZLENBQUMsQ0FBRSxDQUFDUixFQUFDLEVBQUdJLEdBQUcsQ0FBQ0gsRUFBQyxFQUFHLENBQUNnQixHQUFHLFdBQVcsQ0FBRSxDQUFDLEVBQUcsU0FBVUksR0FBRyxDQUFDdEIsRUFBQyxFQUFHUyxFQUFFLEVBQUcsQ0FBRSxXQUFZLENBQUMsQ0FBRSxDQUFDUixFQUFDLEVBQUdJLEdBQUcsQ0FBQ0gsRUFBQyxFQUFHLENBQUNnQixHQUFHLFdBQVcsQ0FBRSxDQUFDLEVBQUcsU0FBVUksR0FBRyxDQUFDdEIsRUFBQyxFQUFHUyxFQUFFLEVBQUcsQ0FBRSxXQUFZLENBQUMsQ0FBRSxDQUFDUixFQUFDLEVBQUdJLEdBQUcsQ0FBQ0gsRUFBQyxFQUFHLENBQUNnQixHQUFHLFdBQVcsQ0FBRSxDQUFDLEVBQUcsU0FBVUksR0FBRyxDQUFDdEIsRUFBQyxFQUFHUyxFQUFFLEVBQUcsQ0FBRSxXQUFZLENBQUMsQ0FBRSxDQUFDUixFQUFDLEVBQUdJLEdBQUcsQ0FBQ0gsRUFBQyxFQUFHLENBQUNnQixHQUFHVixHQUFDLENBQUUsQ0FBQyxFQUFHLFNBQVVjLEdBQUcsQ0FBQ3RCLEVBQUMsRUFBR1MsRUFBRSxFQUFHLENBQUUsV0FBWSxDQUFDLENBQUUsQ0FBQ1IsRUFBQyxFQUFHSSxHQUFHLENBQUNILEVBQUMsRUFBRyxDQUFDZ0IsR0FBRyxXQUFXLENBQUUsQ0FBQyxFQUFHLFNBQVVJLEdBQUcsQ0FBQ3RCLEVBQUMsRUFBR1MsRUFBRSxFQUFHLENBQUUsV0FBWSxDQUFDLENBQUUsQ0FBQ1IsRUFBQyxFQUFHSSxHQUFHLENBQUNILEVBQUMsRUFBRyxDQUFDZ0IsR0FBRyxXQUFXLENBQUUsQ0FBQyxFQUFHLFNBQVVJLEdBQUcsQ0FBQ3RCLEVBQUMsRUFBR1MsRUFBRSxFQUFHLENBQUUsV0FBWSxDQUFDLENBQUUsQ0FBQ1IsRUFBQyxFQUFHSSxHQUFHLENBQUNI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QUcsdUJBQXdCLENBQUMsQ0FBRSxFQUFHLENBQUUsQ0FBQ0YsRUFBQyxFQUFHLE1BQU8sQ0FBQ0MsRUFBQyxFQUFHLENBQUMsQ0FBRSxDQUFDRCxFQUFDLEVBQUdVLEdBQUcsQ0FBQ1QsRUFBQyxFQUFHLENBQUMsQ0FBRSxDQUFDQyxFQUFDLEVBQUcsdUJBQXdCLEVBQUcsVUFBVSxDQUFFLENBQUMsQ0FBRSxFQUFHLENBQUUsQ0FBQ0YsRUFBQyxFQUFHVSxHQUFHLENBQUNULEVBQUMsRUFBRyxDQUFDOEIsR0FBRyxLQUFLLENBQUUsRUFBRyxDQUFFLENBQUMvQixFQUFDLEVBQUcsTUFBTyxDQUFDQyxFQUFDLEVBQUcsQ0FBQ3NCLEVBQUMsQ0FBRSxFQUFHLENBQUUsQ0FBQ3ZCLEVBQUMsRUFBRyxRQUFTLENBQUNDLEVBQUMsRUFBRyxDQUFDLENBQUUsQ0FBQ0MsRUFBQyxFQUFHLGFBQWMsQ0FBQyxDQUFFLEVBQUcsQ0FBRSxDQUFDRixFQUFDLEVBQUcsZUFBZ0IsQ0FBQ0MsRUFBQyxFQUFHLENBQUMsQ0FBRSxDQUFDQyxFQUFDLEVBQUcsYUFBYyxDQUFDLEVBQUcsQ0FBQ0MsRUFBQyxFQUFHLFdBQVksRUFBRyxDQUFFLENBQUNILEVBQUMsRUFBR1UsR0FBRyxDQUFDVCxFQUFDLEVBQUcsQ0FBQyxDQUFFLENBQUNELEVBQUMsRUFBRyxVQUFXLENBQUNDLEVBQUMsRUFBRyxDQUFDLENBQUUsQ0FBQ0MsRUFBQyxFQUFHLFdBQVksRUFBRyxTQUFTLENBQUUsRUFBR1ksRUFBQyxDQUFFLEVBQUcsQ0FBRSxDQUFDZCxFQUFDLEVBQUcsbUJBQW9CLENBQUNDLEVBQUMsRUFBRyxDQUFDLENBQUUsQ0FBQ0QsRUFBQyxFQUFHLFVBQVcsQ0FBQ0MsRUFBQyxFQUFHLENBQUMsQ0FBRSxDQUFDQyxFQUFDLEVBQUcsV0FBWSxFQUFHLFFBQVEsQ0FBRSxFQUFHLEVBQUssQ0FBRSxFQUFHLENBQUUsQ0FBQ0YsRUFBQyxFQUFHVSxHQUFHLENBQUNULEVBQUMsRUFBRyxDQUFDLENBQUUsQ0FBQ0QsRUFBQyxFQUFHLFVBQVcsQ0FBQ0MsRUFBQyxFQUFHLENBQUMsQ0FBRSxDQUFDQyxFQUFDLEVBQUcsV0FBWSxFQUFHLFFBQVEsQ0FBRSxFQUFHLFVBQVUsQ0FBRSxFQUFHLENBQUUsQ0FBQ0YsRUFBQyxFQUFHLG1CQUFvQixDQUFDQyxFQUFDLEVBQUcsQ0FBQyxDQUFFLENBQUNELEVBQUMsRUFBRyxVQUFXLENBQUNDLEVBQUMsRUFBRyxDQUFDLENBQUUsQ0FBQ0MsRUFBQyxFQUFHLFdBQVksRUFBRyxXQUFXLENBQUUsRUFBRyxFQUFLLENBQUUsQ0FBQyxFQUFHdUMsSUFBSSxDQUFDLENBQUUsQ0FBQ3pDLEVBQUMsRUFBRyxRQUFTLENBQUNDLEVBQUMsRUFBRyxDQUFDLENBQUUsQ0FBQ0MsRUFBQyxFQUFHLHVCQUF3QixDQUFDLENBQUUsRUFBRyxDQUFFLENBQUNGLEVBQUMsRUFBRyxNQUFPLENBQUNDLEVBQUMsRUFBRyxDQUFDLENBQUUsQ0FBQ0QsRUFBQyxFQUFHVSxHQUFHLENBQUNULEVBQUMsRUFBRyxDQUFDLENBQUUsQ0FBQ0MsRUFBQyxFQUFHLHVCQUF3QixFQUFHLFVBQVUsQ0FBRSxDQUFDLENBQUUsRUFBRyxDQUFFLENBQUNGLEVBQUMsRUFBR1UsR0FBRyxDQUFDVCxFQUFDLEVBQUcsQ0FBQzhCLEdBQUcsS0FBSyxDQUFFLEVBQUcsQ0FBRSxDQUFDL0IsRUFBQyxFQUFHLE1BQU8sQ0FBQ0MsRUFBQyxFQUFHLENBQUNzQixFQUFDLENBQUUsRUFBRyxDQUFFLENBQUN2QixFQUFDLEVBQUcsUUFBUyxDQUFDQyxFQUFDLEVBQUcsQ0FBQyxDQUFFLENBQUNDLEVBQUMsRUFBRyxpQkFBa0IsQ0FBQyxDQUFFLEVBQUcsQ0FBRSxDQUFDRixFQUFDLEVBQUcsVUFBVyxDQUFDQyxFQUFDLEVBQUcsQ0FBQyxDQUFFLENBQUNDLEVBQUMsRUFBRyxpQkFBa0IsRUFBRyxLQUFLLEVBQUcsQ0FBQ0MsRUFBQyxFQUFHLFVBQVcsRUFBRyxDQUFFLENBQUNILEVBQUMsRUFBRyxlQUFnQixDQUFDQyxFQUFDLEVBQUcsQ0FBQyxDQUFFLENBQUNDLEVBQUMsRUFBRyxVQUFXLENBQUMsRUFBRyxDQUFDQyxFQUFDLEVBQUcsV0FBWSxFQUFHLENBQUUsQ0FBQ0gsRUFBQyxFQUFHVSxHQUFHLENBQUNULEVBQUMsRUFBRyxDQUFDLENBQUUsQ0FBQ0QsRUFBQyxFQUFHLFVBQVcsQ0FBQ0MsRUFBQyxFQUFHLENBQUMsQ0FBRSxDQUFDQyxFQUFDLEVBQUcsV0FBWSxFQUFHLFNBQVMsQ0FBRSxFQUFHWSxFQUFDLENBQUUsRUFBRyxDQUFFLENBQUNkLEVBQUMsRUFBRyxtQkFBb0IsQ0FBQ0MsRUFBQyxFQUFHLENBQUMsQ0FBRSxDQUFDRCxFQUFDLEVBQUcsVUFBVyxDQUFDQyxFQUFDLEVBQUcsQ0FBQyxDQUFFLENBQUNDLEVBQUMsRUFBRyxXQUFZLEVBQUcsUUFBUSxDQUFFLEVBQUcsRUFBSyxDQUFFLEVBQUcsQ0FBRSxDQUFDRixFQUFDLEVBQUdVLEdBQUcsQ0FBQ1QsRUFBQyxFQUFHLENBQUMsQ0FBRSxDQUFDRCxFQUFDLEVBQUcsVUFBVyxDQUFDQyxFQUFDLEVBQUcsQ0FBQyxDQUFFLENBQUNDLEVBQUMsRUFBRyxXQUFZLEVBQUcsUUFBUSxDQUFFLEVBQUcsVUFBVSxDQUFFLEVBQUcsQ0FBRSxDQUFDRixFQUFDLEVBQUcsbUJBQW9CLENBQUNDLEVBQUMsRUFBRyxDQUFDLENBQUUsQ0FBQ0QsRUFBQyxFQUFHLFVBQVcsQ0FBQ0MsRUFBQyxFQUFHLENBQUMsQ0FBRSxDQUFDQyxFQUFDLEVBQUcsV0FBWSxFQUFHLFdBQVcsQ0FBRSxFQUFHLEVBQUssQ0FBRSxDQUFDLEVBQUd3QyxJQUFJLENBQUMsQ0FBRSxDQUFDMUMsRUFBQyxFQUFHLFFBQVMsQ0FBQ0MsRUFBQyxFQUFHLENBQUMsQ0FBRSxDQUFDQyxFQUFDLEVBQUcsdUJBQXdCLENBQUMsQ0FBRSxFQUFHLENBQUUsQ0FBQ0YsRUFBQyxFQUFHLE1BQU8sQ0FBQ0MsRUFBQyxFQUFHLENBQUMsQ0FBRSxDQUFDRCxFQUFDLEVBQUdVLEdBQUcsQ0FBQ1QsRUFBQyxFQUFHLENBQUMsQ0FBRSxDQUFDQyxFQUFDLEVB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QyxFQUFHSSxHQUFHLENBQUNILEVBQUMsRUFBRyxDQUFDZ0IsR0FBRyxjQUFjLENBQUUsQ0FBQyxFQUFHLFNBQVVJLEdBQUcsQ0FBQ3RCLEVBQUMsRUFBR1MsRUFBRSxFQUFHLENBQUUsV0FBWSxDQUFDLENBQUUsQ0FBQ1IsRUFBQyxFQUFHSSxHQUFHLENBQUNILEVBQUMsRUFBRyxDQUFDZ0IsR0FBRyxZQUFZLENBQUUsQ0FBQyxFQUFHLFNBQVVJLEdBQUcsQ0FBQ3RCLEVBQUMsRUFBR1MsRUFBRSxFQUFHLENBQUUsV0FBWSxDQUFDLENBQUUsQ0FBQ1IsRUFBQyxFQUFHSSxHQUFHLENBQUNILEVBQUMsRUFBRyxDQUFDZ0IsR0FBRyxXQUFXLENBQUUsQ0FBQyxFQUFHLFNBQVVJLEdBQUcsQ0FBQ3RCLEVBQUMsRUFBR1MsRUFBRSxFQUFHLENBQUUsV0FBWSxDQUFDLENBQUUsQ0FBQ1IsRUFBQyxFQUFHSSxHQUFHLENBQUNILEVBQUMsRUFBRyxDQUFDZ0IsR0FBRyxXQUFXLENBQUUsQ0FBQyxFQUFHLFNBQVVJLEdBQUcsQ0FBQ3RCLEVBQUMsRUFBR1MsRUFBRSxFQUFHLENBQUUsV0FBWSxDQUFDLENBQUUsQ0FBQ1IsRUFBQyxFQUFHSSxHQUFHLENBQUNILEVBQUMsRUFBRyxDQUFDZ0IsR0FBRyxXQUFXLENBQUUsQ0FBQyxFQUFHLFNBQVVJLEdBQUcsQ0FBQ3RCLEVBQUMsRUFBR1MsRUFBRSxFQUFHLENBQUUsV0FBWSxDQUFDLENBQUUsQ0FBQ1IsRUFBQyxFQUFHSSxHQUFHLENBQUNILEVBQUMsRUFBRyxDQUFDZ0IsR0FBRyxXQUFXLENBQUUsQ0FBQyxFQUFHLFNBQVVJLEdBQUcsQ0FBQ3RCLEVBQUMsRUFBR1MsRUFBRSxFQUFHLENBQUUsV0FBWSxDQUFDLENBQUUsQ0FBQ1IsRUFBQyxFQUFHSSxHQUFHLENBQUNILEVBQUMsRUFBRyxDQUFDZ0IsR0FBR1YsR0FBQyxDQUFFLENBQUMsRUFBRyxTQUFVYyxHQUFHLENBQUN0QixFQUFDLEVBQUdTLEVBQUUsRUFBRyxDQUFFLFdBQVksQ0FBQyxDQUFFLENBQUNS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LEdBQ0EseUNBQUFDLEdBQ0EsOENBQUFDLEdBQ0EsNkJBQUFDLEdBQ0EscUJBQUF0QyxHQUNBLG9CQUFBd0MsR0FDQSwwQ0FBQUQsR0FDQSx3QkFBQUUsR0FDQSw4QkFBQUMsR0FDQSxtREFBQUMsR0FDQSwwQ0FBQUMsR0FDQSw2QkFBQUMsR0FDQSx5Q0FBQUMsR0FDQSw4Q0FBQUMsR0FDQSx3Q0FBQUMsR0FDQSxxQ0FBQUMsR0FDQSwwQkFBQUMsR0FDQSwrQkFBQUMsR0FDQSwyQkFBQUMsR0FDQSwyQkFBQUMsR0FDQSxvQkFBQUMsR0FDQSxxQkFBQUMsR0FDQSwyQkFBQUMsR0FDQSwrQkFBQUMsR0FDQSxxQkFBQUMsR0FDQSx3Q0FBQUMsR0FDQSxvQkFBQUMsR0FDQSx1Q0FBQUMsR0FDQSxxQkFBQUMsR0FDQSwyQkFBQUMsR0FDQSxnREFBQUMsR0FDQSx1Q0FBQUMsR0FDQSx1Q0FBQUMsR0FDQSx5QkFBQUMsR0FDQSx3QkFBQUMsR0FDQSxzQ0FBQUMsR0FDQSwyQ0FBQUMsR0FDQSxxQ0FBQUMsR0FDQSwwQ0FBQUMsR0FDQSxrQ0FBQUMsR0FDQSx1QkFBQUMsR0FDQSw2QkFBQUMsR0FDQSw0QkFBQUMsR0FDQSwrQkFBQUMsR0FDQSx3QkFBQUMsR0FDQSwyQkFBQUMsR0FDQSx3QkFBQUMsR0FDQSxpQkFBQUcsR0FDQSxvQkFBQUYsR0FDQSwyQkFBQUMsR0FDQSwwQkFBQUUsR0FDQSxrQ0FBQUMsR0FDQSwwQkFBQUMsR0FDQSx3QkFBQUMsR0FDQSx3QkFBQUMsR0FDQSw0QkFBQUMsR0FDQSxrQkFBQUMsR0FDQSxrQkFBQUMsR0FDQSx5Q0FBQUMsR0FDQSxrREFBQUMsR0FDQSx5Q0FBQUMsR0FDQSx1Q0FBQUMsR0FDQSxtQkFBQUMsR0FDQSw0QkFBQUMsR0FDQSw0QkFBQUMsR0FDQSxtQkFBQUMsR0FDQSxxQkFBQUMsR0FDQSwwQkFBQUMsR0FDQSxpQkFBQUMsR0FDQSxxQkFBQUMsR0FDQSx3Q0FBQUMsR0FDQSxvQkFBQUMsR0FDQSx1Q0FBQUMsR0FDQSxxQkFBQUMsR0FDQSwyQkFBQUMsR0FDQSxnREFB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WSxFQUM1QyxPQUFPSCxFQUFTLGtCQUVaRSxJQUNGQyxFQUFjLGtCQUFrQixFQUFJRCxHQUd0QyxJQUFNRyxFQUFzQkYsRUFBY0wsRUFBdUIsRUFDakUsT0FBSU8sSUFDRkYsRUFBY04sR0FBWSxFQUFJUSxFQUM5QixPQUFPRixFQUFjTCxFQUF1QixHQUd2QyxDQUNMLEdBQUdFLEVBQ0gsUUFBU0csQ0FDWCxDQUNGLEVBRU1HLElBQXVCQyxHQUNwQixDQUFDTixFQUE2Qk8sRUFBa0JDLElBQXVCLENBQzVFLElBQU1DLEVBQTJCQyxJQUFrQixJQUFJSixDQUFHLEVBQ3ZELGFBQWEsSUFBSUssR0FBa0IsRUFDbkMsV0FBVyxJQUFJQyxFQUFnQixFQUMvQixZQUFZLElBQUlDLEdBQWtCLEVBQ2xDLFdBQVcsSUFBSUMsSUFBb0IsQ0FBQyx3QkFBeUIsR0FBTSwrQkFBZ0MsRUFBSyxDQUFDLENBQUMsRUFDMUcsTUFBTSxFQUdULE9BQUNQLEVBQWdCLCtCQUFpQyxHQU0zQ0UsRUFBeUJULEVBQU9PLEVBSmYsQ0FBQ1EsRUFBbUJoQixJQUNuQ1MsRUFBU08sRUFBS2pCLElBQXNCQyxFQUFVQyxDQUFLLENBQUMsQ0FHYyxDQUM3RSxFQUdJZ0IsSUFBU0MsSUFBVSxFQUVaWCxJQUFNVSxJQUNORSxJQUFNYixJQUFvQlcsR0FBTSIsCiAgIm5hbWVzIjogWyJyZXF1aXJlX3ZpZXciLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJkZWJ1ZyIsICJwYXRoIiwgImZzIiwgImRpcm5hbWUiLCAiYmFzZW5hbWUiLCAiZXh0bmFtZSIsICJqb2luIiwgInJlc29sdmUiLCAiVmlldyIsICJuYW1lIiwgIm9wdGlvbnMiLCAib3B0cyIsICJmaWxlTmFtZSIsICJtb2QiLCAiZm4iLCAicm9vdHMiLCAiaSIsICJyb290IiwgImxvYyIsICJkaXIiLCAiZmlsZSIsICJjYWxsYmFjayIsICJzeW5jIiwgImFyZ3MiLCAiY250eCIsICJleHQiLCAic3RhdCIsICJ0cnlTdGF0IiwgInJlcXVpcmVfdXRpbHMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgIk1FVEhPRFMiLCAiY29udGVudFR5cGUiLCAiZXRhZyIsICJtaW1lIiwgInByb3h5YWRkciIsICJxcyIsICJxdWVyeXN0cmluZyIsICJtZXRob2QiLCAiY3JlYXRlRVRhZ0dlbmVyYXRvciIsICJ0eXBlIiwgImFjY2VwdFBhcmFtcyIsICJ0eXBlcyIsICJzdHIiLCAibGVuZ3RoIiwgImNvbG9uSW5kZXgiLCAiaW5kZXgiLCAicmV0IiwgInNwbGl0SW5kZXgiLCAiZW5kSW5kZXgiLCAia2V5IiwgInZhbHVlIiwgInZhbCIsICJmbiIsICJwYXJzZUV4dGVuZGVkUXVlcnlTdHJpbmciLCAiYSIsICJpIiwgInYiLCAiY2hhcnNldCIsICJwYXJzZWQiLCAib3B0aW9ucyIsICJib2R5IiwgImVuY29kaW5nIiwgImJ1ZiIsICJyZXF1aXJlX2FwcGxpY2F0aW9uIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiZmluYWxoYW5kbGVyIiwgImRlYnVnIiwgIlZpZXciLCAiaHR0cCIsICJtZXRob2RzIiwgImNvbXBpbGVFVGFnIiwgImNvbXBpbGVRdWVyeVBhcnNlciIsICJjb21waWxlVHJ1c3QiLCAicmVzb2x2ZSIsICJvbmNlIiwgIlJvdXRlciIsICJzbGljZSIsICJmbGF0dGVuIiwgImFwcCIsICJ0cnVzdFByb3h5RGVmYXVsdFN5bWJvbCIsICJyb3V0ZXIiLCAiZW52IiwgInBhcmVudCIsICJyZXEiLCAicmVzIiwgImNhbGxiYWNrIiwgImRvbmUiLCAibG9nZXJyb3IiLCAiZm4iLCAib2Zmc2V0IiwgInBhdGgiLCAiYXJnIiwgImZucyIsICJuZXh0IiwgIm9yaWciLCAiZXJyIiwgImV4dCIsICJleHRlbnNpb24iLCAibmFtZSIsICJpIiwgInNldHRpbmciLCAidmFsIiwgIm1ldGhvZCIsICJyb3V0ZSIsICJhcmdzIiwgIm9wdGlvbnMiLCAiY2FjaGUiLCAiZW5naW5lcyIsICJvcHRzIiwgInZpZXciLCAicmVuZGVyT3B0aW9ucyIsICJkaXJzIiwgInRyeVJlbmRlciIsICJzZXJ2ZXIiLCAicmVxdWlyZV9yZXF1ZXN0IiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiYWNjZXB0cyIsICJpc0lQIiwgInR5cGVpcyIsICJodHRwIiwgImZyZXNoIiwgInBhcnNlUmFuZ2UiLCAicGFyc2UiLCAicHJveHlhZGRyIiwgInJlcSIsICJuYW1lIiwgImxjIiwgImFjY2VwdCIsICJzaXplIiwgIm9wdGlvbnMiLCAicmFuZ2UiLCAiZGVmaW5lR2V0dGVyIiwgInF1ZXJ5cGFyc2UiLCAicXVlcnlzdHJpbmciLCAidHlwZXMiLCAiYXJyIiwgImkiLCAicHJvdG8iLCAidHJ1c3QiLCAiaGVhZGVyIiwgImluZGV4IiwgImFkZHJzIiwgImhvc3RuYW1lIiwgIm9mZnNldCIsICJzdWJkb21haW5zIiwgInZhbCIsICJob3N0IiwgIm1ldGhvZCIsICJyZXMiLCAic3RhdHVzIiwgIm9iaiIsICJnZXR0ZXIiLCAicmVxdWlyZV9yZXNwb25zZSIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImNvbnRlbnREaXNwb3NpdGlvbiIsICJjcmVhdGVFcnJvciIsICJlbmNvZGVVcmwiLCAiZXNjYXBlSHRtbCIsICJodHRwIiwgIm9uRmluaXNoZWQiLCAibWltZSIsICJwYXRoIiwgInBhdGhJc0Fic29sdXRlIiwgInN0YXR1c2VzIiwgInNpZ24iLCAibm9ybWFsaXplVHlwZSIsICJub3JtYWxpemVUeXBlcyIsICJzZXRDaGFyc2V0IiwgImNvb2tpZSIsICJzZW5kIiwgImV4dG5hbWUiLCAicmVzb2x2ZSIsICJ2YXJ5IiwgInJlcyIsICJjb2RlIiwgImxpbmtzIiwgImxpbmsiLCAicmVsIiwgInNpbmdsZUxpbmsiLCAiYm9keSIsICJjaHVuayIsICJlbmNvZGluZyIsICJyZXEiLCAidHlwZSIsICJhcHAiLCAiZXRhZ0ZuIiwgImdlbmVyYXRlRVRhZyIsICJsZW4iLCAiZXRhZyIsICJvYmoiLCAiZXNjYXBlIiwgInJlcGxhY2VyIiwgInNwYWNlcyIsICJzdHJpbmdpZnkiLCAiY2FsbGJhY2siLCAic3RhdHVzQ29kZSIsICJvcHRpb25zIiwgImRvbmUiLCAibmV4dCIsICJvcHRzIiwgInBhdGhuYW1lIiwgImZpbGUiLCAic2VuZGZpbGUiLCAiZXJyIiwgImZpbGVuYW1lIiwgIm5hbWUiLCAiaGVhZGVycyIsICJrZXlzIiwgImkiLCAia2V5IiwgImZ1bGxQYXRoIiwgImN0IiwgInYiLCAiZmllbGQiLCAidmFsIiwgInByZXYiLCAidmFsdWUiLCAic2VjcmV0IiwgInNpZ25lZCIsICJtYXhBZ2UiLCAidXJsIiwgImFkZHJlc3MiLCAic3RhdHVzIiwgInUiLCAidmlldyIsICJzZWxmIiwgInN0ciIsICJzdHJlYW1pbmciLCAib25hYm9ydGVkIiwgIm9uZGlyZWN0b3J5IiwgIm9uZXJyb3IiLCAib25lbmQiLCAib25maWxlIiwgIm9uZmluaXNoIiwgIm9uc3RyZWFtIiwgImsiLCAianNvbiIsICJjIiwgInJlcXVpcmVfZXhwcmVzcyIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImJvZHlQYXJzZXIiLCAiRXZlbnRFbWl0dGVyIiwgIm1peGluIiwgInByb3RvIiwgIlJvdXRlciIsICJyZXEiLCAicmVzIiwgImNyZWF0ZUFwcGxpY2F0aW9uIiwgImFwcCIsICJuZXh0IiwgInJlcXVpcmVfZXhwcmVzcyIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgInJlcXVpcmVfZXhwcmVzc19iYXNpY19hdXRoIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiYXV0aCIsICJhc3NlcnQiLCAidGltaW5nU2FmZUVxdWFsIiwgInNhZmVDb21wYXJlIiwgInVzZXJJbnB1dCIsICJzZWNyZXQiLCAidXNlcklucHV0TGVuZ3RoIiwgInNlY3JldExlbmd0aCIsICJ1c2VySW5wdXRCdWZmZXIiLCAic2VjcmV0QnVmZmVyIiwgImVuc3VyZUZ1bmN0aW9uIiwgIm9wdGlvbiIsICJkZWZhdWx0VmFsdWUiLCAiYnVpbGRNaWRkbGV3YXJlIiwgIm9wdGlvbnMiLCAiY2hhbGxlbmdlIiwgInVzZXJzIiwgImF1dGhvcml6ZXIiLCAic3RhdGljVXNlcnNBdXRob3JpemVyIiwgImlzQXN5bmMiLCAiZ2V0UmVzcG9uc2VCb2R5IiwgInJlYWxtIiwgInVzZXJuYW1lIiwgInBhc3N3b3JkIiwgImkiLCAicmVxIiwgInJlcyIsICJuZXh0IiwgImF1dGhlbnRpY2F0aW9uIiwgInVuYXV0aG9yaXplZCIsICJhdXRob3JpemVyQ2FsbGJhY2siLCAiY2hhbGxlbmdlU3RyaW5nIiwgInJlYWxtTmFtZSIsICJyZXNwb25zZSIsICJlcnIiLCAiYXBwcm92ZWQiLCAidmFsaWRhdGVBY2NvdW50SWRFbmRwb2ludE1vZGUiLCAidmFsdWUiLCAiQUNDT1VOVF9JRF9FTkRQT0lOVF9NT0RFX1ZBTFVFUyIsICJERUZBVUxUX0FDQ09VTlRfSURfRU5EUE9JTlRfTU9ERSIsICJpbml0X0FjY291bnRJZEVuZHBvaW50TW9kZUNvbnN0YW50cyIsICJfX2VzbU1pbiIsICJpbXBvcnRfdXRpbF9taWRkbGV3YXJlIiwgInJlc29sdmVBY2NvdW50SWRFbmRwb2ludE1vZGVDb25maWciLCAiaW5pdF9BY2NvdW50SWRFbmRwb2ludE1vZGVDb25maWdSZXNvbHZlciIsICJfX2VzbU1pbiIsICJpbml0X0FjY291bnRJZEVuZHBvaW50TW9kZUNvbnN0YW50cyIsICJpbnB1dCIsICJhY2NvdW50SWRFbmRwb2ludE1vZGUiLCAiYWNjb3VudElkRW5kcG9pbnRNb2RlUHJvdmlkZXIiLCAiREVGQVVMVF9BQ0NPVU5UX0lEX0VORFBPSU5UX01PREUiLCAiYWNjSWRNb2RlIiwgInZhbGlkYXRlQWNjb3VudElkRW5kcG9pbnRNb2RlIiwgImVyciIsICJfdGhyb3ciLCAiRU5WX0FDQ09VTlRfSURfRU5EUE9JTlRfTU9ERSIsICJDT05GSUdfQUNDT1VOVF9JRF9FTkRQT0lOVF9NT0RFIiwgIk5PREVfQUNDT1VOVF9JRF9FTkRQT0lOVF9NT0RFX0NPTkZJR19PUFRJT05TIiwgImluaXRfTm9kZUFjY291bnRJZEVuZHBvaW50TW9kZUNvbmZpZ09wdGlvbnMiLCAiX19lc21NaW4iLCAiaW5pdF9BY2NvdW50SWRFbmRwb2ludE1vZGVDb25zdGFudHMiLCAibWVzc2FnZSIsICJlbnYiLCAidmFsdWUiLCAidmFsaWRhdGVBY2NvdW50SWRFbmRwb2ludE1vZGUiLCAicHJvZmlsZSIsICJERUZBVUxUX0FDQ09VTlRfSURfRU5EUE9JTlRfTU9ERSIsICJhY2NvdW50X2lkX2VuZHBvaW50X2V4cG9ydHMiLCAiX19leHBvcnQiLCAiQUNDT1VOVF9JRF9FTkRQT0lOVF9NT0RFX1ZBTFVFUyIsICJDT05GSUdfQUNDT1VOVF9JRF9FTkRQT0lOVF9NT0RFIiwgIkRFRkFVTFRfQUNDT1VOVF9JRF9FTkRQT0lOVF9NT0RFIiwgIkVOVl9BQ0NPVU5UX0lEX0VORFBPSU5UX01PREUiLCAiTk9ERV9BQ0NPVU5UX0lEX0VORFBPSU5UX01PREVfQ09ORklHX09QVElPTlMiLCAicmVzb2x2ZUFjY291bnRJZEVuZHBvaW50TW9kZUNvbmZpZyIsICJ2YWxpZGF0ZUFjY291bnRJZEVuZHBvaW50TW9kZSIsICJpbml0X2FjY291bnRfaWRfZW5kcG9pbnQiLCAiX19lc21NaW4iLCAiaW5pdF9BY2NvdW50SWRFbmRwb2ludE1vZGVDb25maWdSZXNvbHZlciIsICJpbml0X0FjY291bnRJZEVuZHBvaW50TW9kZUNvbnN0YW50cyIsICJpbml0X05vZGVBY2NvdW50SWRFbmRwb2ludE1vZGVDb25maWdPcHRpb25zIiwgInJlcXVpcmVfZGlzdF9janMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgIkxSVUNhY2hlIiwgIkVuZHBvaW50Q2FjaGUiLCAiY2FwYWNpdHkiLCAia2V5IiwgImVuZHBvaW50c1dpdGhFeHBpcnkiLCAiZW5kcG9pbnRzIiwgImVuZHBvaW50IiwgInZhbHVlIiwgIm5vdyIsICJBZGRyZXNzIiwgIkNhY2hlUGVyaW9kSW5NaW51dGVzIiwgInJlcXVpcmVfZGlzdF9janMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgInByb3RvY29sSHR0cCIsICJlbmRwb2ludENhY2hlIiwgIkVOVl9FTkRQT0lOVF9ESVNDT1ZFUlkiLCAiQ09ORklHX0VORFBPSU5UX0RJU0NPVkVSWSIsICJpc0ZhbHN5IiwgInZhbHVlIiwgIk5PREVfRU5EUE9JTlRfRElTQ09WRVJZX0NPTkZJR19PUFRJT05TIiwgImVudiIsICJpIiwgImVudktleSIsICJwcm9maWxlIiwgImdldENhY2hlS2V5IiwgImNvbW1hbmROYW1lIiwgImNvbmZpZyIsICJvcHRpb25zIiwgImFjY2Vzc0tleUlkIiwgImlkZW50aWZpZXJzIiwgImFjYyIsICJrZXkiLCAicmVxdWVzdFF1ZXVlIiwgInVwZGF0ZURpc2NvdmVyZWRFbmRwb2ludEluQ2FjaGUiLCAicmVzb2x2ZSIsICJyZWplY3QiLCAiY2FjaGVLZXkiLCAiZW5kcG9pbnRzIiwgInBsYWNlaG9sZGVyRW5kcG9pbnRzIiwgImNvbW1hbmQiLCAicmVzdWx0IiwgImVycm9yIiwgImVycm9yVG9UaHJvdyIsICJlbmRwb2ludERpc2NvdmVyeU1pZGRsZXdhcmUiLCAibWlkZGxld2FyZUNvbmZpZyIsICJuZXh0IiwgImNvbnRleHQiLCAiYXJncyIsICJlbmRwb2ludERpc2NvdmVyeUNvbW1hbmRDdG9yIiwgImlzRGlzY292ZXJlZEVuZHBvaW50UmVxdWlyZWQiLCAiY2xpZW50TmFtZSIsICJpc0VuZHBvaW50RGlzY292ZXJ5RW5hYmxlZCIsICJyZXF1ZXN0IiwgImVuZHBvaW50IiwgImVuZHBvaW50RGlzY292ZXJ5TWlkZGxld2FyZU9wdGlvbnMiLCAiZ2V0RW5kcG9pbnREaXNjb3ZlcnlQbHVnaW4iLCAicGx1Z2luQ29uZmlnIiwgImNvbW1hbmRTdGFjayIsICJnZXRFbmRwb2ludERpc2NvdmVyeVJlcXVpcmVkUGx1Z2luIiwgImdldEVuZHBvaW50RGlzY292ZXJ5T3B0aW9uYWxQbHVnaW4iLCAicmVzb2x2ZUVuZHBvaW50RGlzY292ZXJ5Q29uZmlnIiwgImlucHV0IiwgImVuZHBvaW50Q2FjaGVTaXplIiwgImVuZHBvaW50RGlzY292ZXJ5RW5hYmxlZCIsICJlbmRwb2ludERpc2NvdmVyeUVuYWJsZWRQcm92aWRlciIsICJyZXF1aXJlX2Rpc3RfY2pzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJwcm90b2NvbEh0dHAiLCAicmVzb2x2ZUhvc3RIZWFkZXJDb25maWciLCAiaW5wdXQiLCAiaG9zdEhlYWRlck1pZGRsZXdhcmUiLCAib3B0aW9ucyIsICJuZXh0IiwgImFyZ3MiLCAicmVxdWVzdCIsICJoYW5kbGVyUHJvdG9jb2wiLCAiaG9zdCIsICJob3N0SGVhZGVyTWlkZGxld2FyZU9wdGlvbnMiLCAiZ2V0SG9zdEhlYWRlclBsdWdpbiIsICJjbGllbnRTdGFjayIsICJyZXF1aXJlX2Rpc3RfY2pzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJsb2dnZXJNaWRkbGV3YXJlIiwgIm5leHQiLCAiY29udGV4dCIsICJhcmdzIiwgInJlc3BvbnNlIiwgImNsaWVudE5hbWUiLCAiY29tbWFuZE5hbWUiLCAibG9nZ2VyIiwgImR5bmFtb0RiRG9jdW1lbnRDbGllbnRPcHRpb25zIiwgIm92ZXJyaWRlSW5wdXRGaWx0ZXJTZW5zaXRpdmVMb2ciLCAib3ZlcnJpZGVPdXRwdXRGaWx0ZXJTZW5zaXRpdmVMb2ciLCAiaW5wdXRGaWx0ZXJTZW5zaXRpdmVMb2ciLCAib3V0cHV0RmlsdGVyU2Vuc2l0aXZlTG9nIiwgIiRtZXRhZGF0YSIsICJvdXRwdXRXaXRob3V0TWV0YWRhdGEiLCAiZXJyb3IiLCAibG9nZ2VyTWlkZGxld2FyZU9wdGlvbnMiLCAiZ2V0TG9nZ2VyUGx1Z2luIiwgIm9wdGlvbnMiLCAiY2xpZW50U3RhY2siLCAicmVxdWlyZV9yZWN1cnNpb25EZXRlY3Rpb25NaWRkbGV3YXJlIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJsYW1iZGFfaW52b2tlX3N0b3JlXzEiLCAicHJvdG9jb2xfaHR0cF8xIiwgIlRSQUNFX0lEX0hFQURFUl9OQU1FIiwgIkVOVl9MQU1CREFfRlVOQ1RJT05fTkFNRSIsICJFTlZfVFJBQ0VfSUQiLCAicmVjdXJzaW9uRGV0ZWN0aW9uTWlkZGxld2FyZSIsICJuZXh0IiwgImFyZ3MiLCAicmVxdWVzdCIsICJ0cmFjZUlkSGVhZGVyIiwgImgiLCAiZnVuY3Rpb25OYW1lIiwgInRyYWNlSWRGcm9tRW52IiwgInRyYWNlSWQiLCAibm9uRW1wdHlTdHJpbmciLCAic3RyIiwgInJlcXVpcmVfZGlzdF9janMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgInJlY3Vyc2lvbkRldGVjdGlvbk1pZGRsZXdhcmUiLCAicmVjdXJzaW9uRGV0ZWN0aW9uTWlkZGxld2FyZU9wdGlvbnMiLCAiZ2V0UmVjdXJzaW9uRGV0ZWN0aW9uUGx1Z2luIiwgIm9wdGlvbnMiLCAiY2xpZW50U3RhY2siLCAiayIsICJyZXF1aXJlX2Rpc3RfY2pzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJ1dGlsRW5kcG9pbnRzIiwgInVybFBhcnNlciIsICJpc1ZpcnR1YWxIb3N0YWJsZVMzQnVja2V0IiwgInZhbHVlIiwgImFsbG93U3ViRG9tYWlucyIsICJsYWJlbCIsICJBUk5fREVMSU1JVEVSIiwgIlJFU09VUkNFX0RFTElNSVRFUiIsICJwYXJzZUFybiIsICJzZWdtZW50cyIsICJhcm4iLCAicGFydGl0aW9uIiwgInNlcnZpY2UiLCAicmVnaW9uIiwgImFjY291bnRJZCIsICJyZXNvdXJjZVBhdGgiLCAicmVzb3VyY2VJZCIsICJyZXNvdXJjZSIsICJwYXJ0aXRpb25zIiwgInZlcnNpb24iLCAicGFydGl0aW9uc0luZm8iLCAic2VsZWN0ZWRQYXJ0aXRpb25zSW5mbyIsICJzZWxlY3RlZFVzZXJBZ2VudFByZWZpeCIsICJyZWdpb25zIiwgIm91dHB1dHMiLCAicmVnaW9uRGF0YSIsICJyZWdpb25SZWdleCIsICJERUZBVUxUX1BBUlRJVElPTiIsICJzZXRQYXJ0aXRpb25JbmZvIiwgInVzZXJBZ2VudFByZWZpeCIsICJ1c2VEZWZhdWx0UGFydGl0aW9uSW5mbyIsICJnZXRVc2VyQWdlbnRQcmVmaXgiLCAiYXdzRW5kcG9pbnRGdW5jdGlvbnMiLCAicmVzb2x2ZURlZmF1bHRBd3NSZWdpb25hbEVuZHBvaW50c0NvbmZpZyIsICJpbnB1dCIsICJlbmRwb2ludCIsICJ0b0VuZHBvaW50VjEiLCAic3RhdGUiLCAiZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbiIsICJpbml0X2VtaXRXYXJuaW5nSWZVbnN1cHBvcnRlZFZlcnNpb24iLCAiX19lc21NaW4iLCAidmVyc2lvbiIsICJzZXRDcmVkZW50aWFsRmVhdHVyZSIsICJjcmVkZW50aWFscyIsICJmZWF0dXJlIiwgInZhbHVlIiwgImluaXRfc2V0Q3JlZGVudGlhbEZlYXR1cmUiLCAiX19lc21NaW4iLCAic2V0RmVhdHVyZSIsICJjb250ZXh0IiwgImZlYXR1cmUiLCAidmFsdWUiLCAiaW5pdF9zZXRGZWF0dXJlIiwgIl9fZXNtTWluIiwgInNldFRva2VuRmVhdHVyZSIsICJ0b2tlbiIsICJmZWF0dXJlIiwgInZhbHVlIiwgImluaXRfc2V0VG9rZW5GZWF0dXJlIiwgIl9fZXNtTWluIiwgImNsaWVudF9leHBvcnRzIiwgIl9fZXhwb3J0IiwgImVtaXRXYXJuaW5nSWZVbnN1cHBvcnRlZFZlcnNpb24iLCAic2V0Q3JlZGVudGlhbEZlYXR1cmUiLCAic2V0RmVhdHVyZSIsICJzZXRUb2tlbkZlYXR1cmUiLCAic3RhdGUiLCAiaW5pdF9jbGllbnQiLCAiX19lc21NaW4iLCAiaW5pdF9lbWl0V2FybmluZ0lmVW5zdXBwb3J0ZWRWZXJzaW9uIiwgImluaXRfc2V0Q3JlZGVudGlhbEZlYXR1cmUiLCAiaW5pdF9zZXRGZWF0dXJlIiwgImluaXRfc2V0VG9rZW5GZWF0dXJlIiwgImltcG9ydF9wcm90b2NvbF9odHRwIiwgImdldERhdGVIZWFkZXIiLCAiaW5pdF9nZXREYXRlSGVhZGVyIiwgIl9fZXNtTWluIiwgInJlc3BvbnNlIiwgImdldFNrZXdDb3JyZWN0ZWREYXRlIiwgImluaXRfZ2V0U2tld0NvcnJlY3RlZERhdGUiLCAiX19lc21NaW4iLCAic3lzdGVtQ2xvY2tPZmZzZXQiLCAiaXNDbG9ja1NrZXdlZCIsICJpbml0X2lzQ2xvY2tTa2V3ZWQiLCAiX19lc21NaW4iLCAiaW5pdF9nZXRTa2V3Q29ycmVjdGVkRGF0ZSIsICJjbG9ja1RpbWUiLCAic3lzdGVtQ2xvY2tPZmZzZXQiLCAiZ2V0U2tld0NvcnJlY3RlZERhdGUiLCAiZ2V0VXBkYXRlZFN5c3RlbUNsb2NrT2Zmc2V0IiwgImluaXRfZ2V0VXBkYXRlZFN5c3RlbUNsb2NrT2Zmc2V0IiwgIl9fZXNtTWluIiwgImluaXRfaXNDbG9ja1NrZXdlZCIsICJjbG9ja1RpbWUiLCAiY3VycmVudFN5c3RlbUNsb2NrT2Zmc2V0IiwgImNsb2NrVGltZUluTXMiLCAiaXNDbG9ja1NrZXdlZCIsICJpbml0X3V0aWxzIiwgIl9fZXNtTWluIiwgImluaXRfZ2V0RGF0ZUhlYWRlciIsICJpbml0X2dldFNrZXdDb3JyZWN0ZWREYXRlIiwgImluaXRfZ2V0VXBkYXRlZFN5c3RlbUNsb2NrT2Zmc2V0IiwgImltcG9ydF9wcm90b2NvbF9odHRwIiwgInRocm93U2lnbmluZ1Byb3BlcnR5RXJyb3IiLCAidmFsaWRhdGVTaWduaW5nUHJvcGVydGllcyIsICJBd3NTZGtTaWdWNFNpZ25lciIsICJBV1NTREtTaWdWNFNpZ25lciIsICJpbml0X0F3c1Nka1NpZ1Y0U2lnbmVyIiwgIl9fZXNtTWluIiwgImluaXRfdXRpbHMiLCAibmFtZSIsICJwcm9wZXJ0eSIsICJzaWduaW5nUHJvcGVydGllcyIsICJjb250ZXh0IiwgImNvbmZpZyIsICJhdXRoU2NoZW1lIiwgInNpZ25lciIsICJzaWduaW5nUmVnaW9uIiwgInNpZ25pbmdSZWdpb25TZXQiLCAic2lnbmluZ05hbWUiLCAiaHR0cFJlcXVlc3QiLCAiaWRlbnRpdHkiLCAidmFsaWRhdGVkUHJvcHMiLCAiaGFuZGxlckV4ZWN1dGlvbkNvbnRleHQiLCAiZmlyc3QiLCAic2Vjb25kIiwgImdldFNrZXdDb3JyZWN0ZWREYXRlIiwgImVycm9yIiwgInNlcnZlclRpbWUiLCAiZ2V0RGF0ZUhlYWRlciIsICJpbml0aWFsU3lzdGVtQ2xvY2tPZmZzZXQiLCAiZ2V0VXBkYXRlZFN5c3RlbUNsb2NrT2Zmc2V0IiwgImh0dHBSZXNwb25zZSIsICJkYXRlSGVhZGVyIiwgImltcG9ydF9wcm90b2NvbF9odHRwIiwgIkF3c1Nka1NpZ1Y0QVNpZ25lciIsICJpbml0X0F3c1Nka1NpZ1Y0QVNpZ25lciIsICJfX2VzbU1pbiIsICJpbml0X3V0aWxzIiwgImluaXRfQXdzU2RrU2lnVjRTaWduZXIiLCAiQXdzU2RrU2lnVjRTaWduZXIiLCAiaHR0cFJlcXVlc3QiLCAiaWRlbnRpdHkiLCAic2lnbmluZ1Byb3BlcnRpZXMiLCAiY29uZmlnIiwgInNpZ25lciIsICJzaWduaW5nUmVnaW9uIiwgInNpZ25pbmdSZWdpb25TZXQiLCAic2lnbmluZ05hbWUiLCAidmFsaWRhdGVTaWduaW5nUHJvcGVydGllcyIsICJtdWx0aVJlZ2lvbk92ZXJyaWRlIiwgImdldFNrZXdDb3JyZWN0ZWREYXRlIiwgImdldEFycmF5Rm9yQ29tbWFTZXBhcmF0ZWRTdHJpbmciLCAiaW5pdF9nZXRBcnJheUZvckNvbW1hU2VwYXJhdGVkU3RyaW5nIiwgIl9fZXNtTWluIiwgInN0ciIsICJpdGVtIiwgImdldEJlYXJlclRva2VuRW52S2V5IiwgImluaXRfZ2V0QmVhcmVyVG9rZW5FbnZLZXkiLCAiX19lc21NaW4iLCAic2lnbmluZ05hbWUiLCAiTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX0VOVl9LRVkiLCAiTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX0NPTkZJR19LRVkiLCAiTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX09QVElPTlMiLCAiaW5pdF9OT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfT1BUSU9OUyIsICJfX2VzbU1pbiIsICJpbml0X2dldEFycmF5Rm9yQ29tbWFTZXBhcmF0ZWRTdHJpbmciLCAiaW5pdF9nZXRCZWFyZXJUb2tlbkVudktleSIsICJlbnYiLCAib3B0aW9ucyIsICJnZXRCZWFyZXJUb2tlbkVudktleSIsICJnZXRBcnJheUZvckNvbW1hU2VwYXJhdGVkU3RyaW5nIiwgInByb2ZpbGUiLCAiaW1wb3J0X2NvcmUiLCAiaW1wb3J0X3Byb3BlcnR5X3Byb3ZpZGVyIiwgInJlc29sdmVBd3NTZGtTaWdWNEFDb25maWciLCAiTk9ERV9TSUdWNEFfQ09ORklHX09QVElPTlMiLCAiaW5pdF9yZXNvbHZlQXdzU2RrU2lnVjRBQ29uZmlnIiwgIl9fZXNtTWluIiwgImNvbmZpZyIsICJlbnYiLCAiXyIsICJwcm9maWxlIiwgIm5vcm1hbGl6ZUNyZWRlbnRpYWxQcm92aWRlciIsICJjb25maWciLCAiY3JlZGVudGlhbHMiLCAiY3JlZGVudGlhbERlZmF1bHRQcm92aWRlciIsICJjcmVkZW50aWFsc1Byb3ZpZGVyIiwgImJpbmRDYWxsZXJDb25maWciLCAiZm4iLCAib3B0aW9ucyIsICJpbXBvcnRfY29yZSIsICJpbXBvcnRfc2lnbmF0dXJlX3Y0IiwgInJlc29sdmVBd3NTZGtTaWdWNENvbmZpZyIsICJyZXNvbHZlQVdTU0RLU2lnVjRDb25maWciLCAiaW5pdF9yZXNvbHZlQXdzU2RrU2lnVjRDb25maWciLCAiX19lc21NaW4iLCAiaW5pdF9jbGllbnQiLCAiaW5wdXRDcmVkZW50aWFscyIsICJpc1VzZXJTdXBwbGllZCIsICJyZXNvbHZlZENyZWRlbnRpYWxzIiwgIm1lbW9pemVkUHJvdmlkZXIiLCAiYm91bmRQcm92aWRlciIsICJpc0NyZWRlbnRpYWxPYmplY3QiLCAiYXR0cmlidXRlZENyZWRzIiwgInNldENyZWRlbnRpYWxGZWF0dXJlIiwgInNpZ25pbmdFc2NhcGVQYXRoIiwgInN5c3RlbUNsb2NrT2Zmc2V0IiwgInNoYTI1NiIsICJzaWduZXIiLCAicmVnaW9uIiwgInJlZ2lvbkluZm8iLCAic2lnbmluZ1JlZ2lvbiIsICJzaWduaW5nU2VydmljZSIsICJwYXJhbXMiLCAiU2lnbmVyQ3RvciIsICJhdXRoU2NoZW1lIiwgImluaXRfYXdzX3NkayIsICJfX2VzbU1pbiIsICJpbml0X0F3c1Nka1NpZ1Y0U2lnbmVyIiwgImluaXRfQXdzU2RrU2lnVjRBU2lnbmVyIiwgImluaXRfTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX09QVElPTlMiLCAiaW5pdF9yZXNvbHZlQXdzU2RrU2lnVjRBQ29uZmlnIiwgImluaXRfcmVzb2x2ZUF3c1Nka1NpZ1Y0Q29uZmlnIiwgImh0dHBBdXRoU2NoZW1lc19leHBvcnRzIiwgIl9fZXhwb3J0IiwgIkFXU1NES1NpZ1Y0U2lnbmVyIiwgIkF3c1Nka1NpZ1Y0QVNpZ25lciIsICJBd3NTZGtTaWdWNFNpZ25lciIsICJOT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfT1BUSU9OUyIsICJOT0RFX1NJR1Y0QV9DT05GSUdfT1BUSU9OUyIsICJnZXRCZWFyZXJUb2tlbkVudktleSIsICJyZXNvbHZlQVdTU0RLU2lnVjRDb25maWciLCAicmVzb2x2ZUF3c1Nka1NpZ1Y0QUNvbmZpZyIsICJyZXNvbHZlQXdzU2RrU2lnVjRDb25maWciLCAidmFsaWRhdGVTaWduaW5nUHJvcGVydGllcyIsICJpbml0X2h0dHBBdXRoU2NoZW1lcyIsICJfX2VzbU1pbiIsICJpbml0X2F3c19zZGsiLCAiaW5pdF9nZXRCZWFyZXJUb2tlbkVudktleSIsICJpbXBvcnRfc2NoZW1hIiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgIlByb3RvY29sTGliIiwgImluaXRfUHJvdG9jb2xMaWIiLCAiX19lc21NaW4iLCAicXVlcnlDb21wYXQiLCAiZGVmYXVsdENvbnRlbnRUeXBlIiwgImlucHV0U2NoZW1hIiwgIm1lbWJlcnMiLCAiaHR0cFBheWxvYWRNZW1iZXIiLCAibSIsICJtZWRpYVR5cGUiLCAiaHR0cFF1ZXJ5IiwgImh0dHBRdWVyeVBhcmFtcyIsICJodHRwSGVhZGVyIiwgImh0dHBMYWJlbCIsICJodHRwUHJlZml4SGVhZGVycyIsICJlcnJvcklkZW50aWZpZXIiLCAiZGVmYXVsdE5hbWVzcGFjZSIsICJyZXNwb25zZSIsICJkYXRhT2JqZWN0IiwgIm1ldGFkYXRhIiwgImdldEVycm9yU2NoZW1hIiwgIm5hbWVzcGFjZSIsICJlcnJvck5hbWUiLCAiZXJyb3JNZXRhZGF0YSIsICJyZWdpc3RyeSIsICJzeW50aGV0aWMiLCAiYmFzZUV4Y2VwdGlvblNjaGVtYSIsICJFcnJvckN0b3IiLCAiZXhjZXB0aW9uIiwgImFkZGl0aW9ucyIsICJtc2ciLCAiZXJyb3IiLCAicmVxSWQiLCAib3V0cHV0IiwgInF1ZXJ5RXJyb3JIZWFkZXIiLCAiQ29kZSIsICJUeXBlIiwgImVudHJpZXMiLCAiRXJyb3IiLCAiayIsICJ2IiwgInF1ZXJ5Q29tcGF0RXJyb3JEYXRhIiwgImVycm9yRGF0YSIsICJzY2hlbWEiLCAiaW1wb3J0X2Nib3IiLCAiaW1wb3J0X3NjaGVtYSIsICJBd3NTbWl0aHlScGNWMkNib3JQcm90b2NvbCIsICJpbml0X0F3c1NtaXRoeVJwY1YyQ2JvclByb3RvY29sIiwgIl9fZXNtTWluIiwgImluaXRfUHJvdG9jb2xMaWIiLCAiZGVmYXVsdE5hbWVzcGFjZSIsICJhd3NRdWVyeUNvbXBhdGlibGUiLCAiUHJvdG9jb2xMaWIiLCAib3BlcmF0aW9uU2NoZW1hIiwgImlucHV0IiwgImNvbnRleHQiLCAicmVxdWVzdCIsICJyZXNwb25zZSIsICJkYXRhT2JqZWN0IiwgIm1ldGFkYXRhIiwgImVycm9yTmFtZSIsICJjb21wYXRIZWFkZXIiLCAiZXJyb3JTY2hlbWEiLCAiZXJyb3JNZXRhZGF0YSIsICJucyIsICJtZXNzYWdlIiwgIkVycm9yQ3RvciIsICJleGNlcHRpb24iLCAib3V0cHV0IiwgIm5hbWUiLCAibWVtYmVyIiwgIl90b1N0ciIsICJfdG9Cb29sIiwgIl90b051bSIsICJpbml0X2NvZXJjaW5nX3NlcmlhbGl6ZXJzIiwgIl9fZXNtTWluIiwgInZhbCIsICJ3YXJuaW5nIiwgImxvd2VyY2FzZSIsICJudW0iLCAiU2VyZGVDb250ZXh0Q29uZmlnIiwgImluaXRfQ29uZmlndXJhYmxlU2VyZGVDb250ZXh0IiwgIl9fZXNtTWluIiwgInNlcmRlQ29udGV4dCIsICJVbmlvblNlcmRlIiwgImluaXRfVW5pb25TZXJkZSIsICJfX2VzbU1pbiIsICJmcm9tIiwgInRvIiwgImsiLCAia2V5IiwgInYiLCAianNvblJldml2ZXIiLCAia2V5IiwgInZhbHVlIiwgImNvbnRleHQiLCAibnVtZXJpY1N0cmluZyIsICJpbXBvcnRfc2VyZGUiLCAiaW5pdF9qc29uUmV2aXZlciIsICJfX2VzbU1pbiIsICJpbXBvcnRfc21pdGh5X2NsaWVudCIsICJpbXBvcnRfdXRpbF91dGY4IiwgImNvbGxlY3RCb2R5U3RyaW5nIiwgImluaXRfY29tbW9uIiwgIl9fZXNtTWluIiwgInN0cmVhbUJvZHkiLCAiY29udGV4dCIsICJib2R5IiwgInBhcnNlSnNvbkJvZHkiLCAicGFyc2VKc29uRXJyb3JCb2R5IiwgImxvYWRSZXN0SnNvbkVycm9yQ29kZSIsICJpbml0X3BhcnNlSnNvbkJvZHkiLCAiX19lc21NaW4iLCAiaW5pdF9jb21tb24iLCAic3RyZWFtQm9keSIsICJjb250ZXh0IiwgImNvbGxlY3RCb2R5U3RyaW5nIiwgImVuY29kZWQiLCAiZSIsICJlcnJvckJvZHkiLCAidmFsdWUiLCAib3V0cHV0IiwgImRhdGEiLCAiZmluZEtleSIsICJvYmplY3QiLCAia2V5IiwgImsiLCAic2FuaXRpemVFcnJvckNvZGUiLCAicmF3VmFsdWUiLCAiY2xlYW5WYWx1ZSIsICJoZWFkZXJLZXkiLCAiY29kZUtleSIsICJpbXBvcnRfcHJvdG9jb2xzIiwgImltcG9ydF9zY2hlbWEiLCAiaW1wb3J0X3NlcmRlIiwgImltcG9ydF91dGlsX2Jhc2U2NCIsICJKc29uU2hhcGVEZXNlcmlhbGl6ZXIiLCAiaW5pdF9Kc29uU2hhcGVEZXNlcmlhbGl6ZXIiLCAiX19lc21NaW4iLCAiaW5pdF9Db25maWd1cmFibGVTZXJkZUNvbnRleHQiLCAiaW5pdF9VbmlvblNlcmRlIiwgImluaXRfanNvblJldml2ZXIiLCAiaW5pdF9wYXJzZUpzb25Cb2R5IiwgIlNlcmRlQ29udGV4dENvbmZpZyIsICJzZXR0aW5ncyIsICJzY2hlbWEiLCAiZGF0YSIsICJqc29uUmV2aXZlciIsICJwYXJzZUpzb25Cb2R5IiwgInZhbHVlIiwgImlzT2JqZWN0IiwgIm5zIiwgInJlY29yZCIsICJ1bmlvbiIsICJvdXQiLCAibmFtZU1hcCIsICJqc29uTmFtZSIsICJ1bmlvblNlcmRlIiwgIlVuaW9uU2VyZGUiLCAibWVtYmVyTmFtZSIsICJtZW1iZXJTY2hlbWEiLCAiZnJvbUtleSIsICJrIiwgInYiLCAidCIsICJsaXN0TWVtYmVyIiwgInNwYXJzZSIsICJpdGVtIiwgIm1hcE1lbWJlciIsICJfayIsICJfdiIsICJtZWRpYVR5cGUiLCAidW50eXBlZCIsICJpbXBvcnRfc2VyZGUiLCAiTlVNRVJJQ19DT05UUk9MX0NIQVIiLCAiSnNvblJlcGxhY2VyIiwgImluaXRfanNvblJlcGxhY2VyIiwgIl9fZXNtTWluIiwgImtleSIsICJ2YWx1ZSIsICJ2IiwgInMiLCAianNvbiIsICJpbXBvcnRfcHJvdG9jb2xzIiwgImltcG9ydF9zY2hlbWEiLCAiaW1wb3J0X3NlcmRlIiwgImltcG9ydF91dGlsX2Jhc2U2NCIsICJKc29uU2hhcGVTZXJpYWxpemVyIiwgImluaXRfSnNvblNoYXBlU2VyaWFsaXplciIsICJfX2VzbU1pbiIsICJpbml0X0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dCIsICJpbml0X2pzb25SZXBsYWNlciIsICJTZXJkZUNvbnRleHRDb25maWciLCAic2V0dGluZ3MiLCAic2NoZW1hIiwgInZhbHVlIiwgInJvb3RTY2hlbWEiLCAidXNlUmVwbGFjZXIiLCAicmVwbGFjZXIiLCAiSnNvblJlcGxhY2VyIiwgImNvbnRhaW5lciIsICJpc09iamVjdCIsICJucyIsICJyZWNvcmQiLCAib3V0IiwgImpzb25OYW1lIiwgIm5hbWVNYXAiLCAibWVtYmVyTmFtZSIsICJtZW1iZXJTY2hlbWEiLCAic2VyaWFsaXphYmxlVmFsdWUiLCAidGFyZ2V0S2V5IiwgIiR1bmtub3duIiwgImsiLCAidiIsICJsaXN0TWVtYmVyIiwgInNwYXJzZSIsICJpdGVtIiwgIm1hcE1lbWJlciIsICJfayIsICJfdiIsICJtZWRpYVR5cGUiLCAiSnNvbkNvZGVjIiwgImluaXRfSnNvbkNvZGVjIiwgIl9fZXNtTWluIiwgImluaXRfQ29uZmlndXJhYmxlU2VyZGVDb250ZXh0IiwgImluaXRfSnNvblNoYXBlRGVzZXJpYWxpemVyIiwgImluaXRfSnNvblNoYXBlU2VyaWFsaXplciIsICJTZXJkZUNvbnRleHRDb25maWciLCAic2V0dGluZ3MiLCAic2VyaWFsaXplciIsICJKc29uU2hhcGVTZXJpYWxpemVyIiwgImRlc2VyaWFsaXplciIsICJKc29uU2hhcGVEZXNlcmlhbGl6ZXIiLCAiaW1wb3J0X3Byb3RvY29scyIsICJpbXBvcnRfc2NoZW1hIiwgIkF3c0pzb25ScGNQcm90b2NvbCIsICJpbml0X0F3c0pzb25ScGNQcm90b2NvbCIsICJfX2VzbU1pbiIsICJpbml0X1Byb3RvY29sTGliIiwgImluaXRfSnNvbkNvZGVjIiwgImluaXRfcGFyc2VKc29uQm9keSIsICJkZWZhdWx0TmFtZXNwYWNlIiwgInNlcnZpY2VUYXJnZXQiLCAiYXdzUXVlcnlDb21wYXRpYmxlIiwgImpzb25Db2RlYyIsICJKc29uQ29kZWMiLCAiUHJvdG9jb2xMaWIiLCAib3BlcmF0aW9uU2NoZW1hIiwgImlucHV0IiwgImNvbnRleHQiLCAicmVxdWVzdCIsICJyZXNwb25zZSIsICJkYXRhT2JqZWN0IiwgIm1ldGFkYXRhIiwgImVycm9ySWRlbnRpZmllciIsICJsb2FkUmVzdEpzb25FcnJvckNvZGUiLCAiZXJyb3JTY2hlbWEiLCAiZXJyb3JNZXRhZGF0YSIsICJucyIsICJtZXNzYWdlIiwgIkVycm9yQ3RvciIsICJleGNlcHRpb24iLCAib3V0cHV0IiwgIm5hbWUiLCAibWVtYmVyIiwgIkF3c0pzb24xXzBQcm90b2NvbCIsICJpbml0X0F3c0pzb24xXzBQcm90b2NvbCIsICJfX2VzbU1pbiIsICJpbml0X0F3c0pzb25ScGNQcm90b2NvbCIsICJBd3NKc29uUnBjUHJvdG9jb2wiLCAiZGVmYXVsdE5hbWVzcGFjZSIsICJzZXJ2aWNlVGFyZ2V0IiwgImF3c1F1ZXJ5Q29tcGF0aWJsZSIsICJqc29uQ29kZWMiLCAiQXdzSnNvbjFfMVByb3RvY29sIiwgImluaXRfQXdzSnNvbjFfMVByb3RvY29sIiwgIl9fZXNtTWluIiwgImluaXRfQXdzSnNvblJwY1Byb3RvY29sIiwgIkF3c0pzb25ScGNQcm90b2NvbCIsICJkZWZhdWx0TmFtZXNwYWNlIiwgInNlcnZpY2VUYXJnZXQiLCAiYXdzUXVlcnlDb21wYXRpYmxlIiwgImpzb25Db2RlYyIsICJpbXBvcnRfcHJvdG9jb2xzIiwgImltcG9ydF9zY2hlbWEiLCAiQXdzUmVzdEpzb25Qcm90b2NvbCIsICJpbml0X0F3c1Jlc3RKc29uUHJvdG9jb2wiLCAiX19lc21NaW4iLCAiaW5pdF9Qcm90b2NvbExpYiIsICJpbml0X0pzb25Db2RlYyIsICJpbml0X3BhcnNlSnNvbkJvZHkiLCAiUHJvdG9jb2xMaWIiLCAiZGVmYXVsdE5hbWVzcGFjZSIsICJzZXR0aW5ncyIsICJKc29uQ29kZWMiLCAic2VyZGVDb250ZXh0IiwgIm9wZXJhdGlvblNjaGVtYSIsICJpbnB1dCIsICJjb250ZXh0IiwgInJlcXVlc3QiLCAiaW5wdXRTY2hlbWEiLCAiY29udGVudFR5cGUiLCAicmVzcG9uc2UiLCAib3V0cHV0IiwgIm91dHB1dFNjaGVtYSIsICJuYW1lIiwgIm1lbWJlciIsICJkYXRhT2JqZWN0IiwgIm1ldGFkYXRhIiwgImVycm9ySWRlbnRpZmllciIsICJsb2FkUmVzdEpzb25FcnJvckNvZGUiLCAiZXJyb3JTY2hlbWEiLCAiZXJyb3JNZXRhZGF0YSIsICJucyIsICJtZXNzYWdlIiwgIkVycm9yQ3RvciIsICJleGNlcHRpb24iLCAidGFyZ2V0IiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgImF3c0V4cGVjdFVuaW9uIiwgImluaXRfYXdzRXhwZWN0VW5pb24iLCAiX19lc21NaW4iLCAidmFsdWUiLCAicmVxdWlyZV94bWxfcGFyc2VyIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJwYXJzZVhNTCIsICJmYXN0X3htbF9wYXJzZXJfMSIsICJwYXJzZXIiLCAiXyIsICJ2YWwiLCAieG1sU3RyaW5nIiwgInJlcXVpcmVfZGlzdF9janMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgInhtbFBhcnNlciIsICJlc2NhcGVBdHRyaWJ1dGUiLCAidmFsdWUiLCAiZXNjYXBlRWxlbWVudCIsICJYbWxUZXh0IiwgIlhtbE5vZGUiLCAiX1htbE5vZGUiLCAibmFtZSIsICJjaGlsZFRleHQiLCAid2l0aE5hbWUiLCAibm9kZSIsICJjaGlsZHJlbiIsICJjaGlsZCIsICJpbnB1dCIsICJmaWVsZCIsICJsaXN0TmFtZSIsICJtZW1iZXJOYW1lIiwgInZhbHVlUHJvdmlkZXIiLCAibm9kZXMiLCAiY29udGFpbmVyTm9kZSIsICJoYXNDaGlsZHJlbiIsICJ4bWxUZXh0IiwgImF0dHJpYnV0ZXMiLCAiYXR0cmlidXRlTmFtZSIsICJhdHRyaWJ1dGUiLCAiYyIsICJpbXBvcnRfeG1sX2J1aWxkZXIiLCAiaW1wb3J0X3Byb3RvY29scyIsICJpbXBvcnRfc2NoZW1hIiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgImltcG9ydF91dGlsX3V0ZjgiLCAiWG1sU2hhcGVEZXNlcmlhbGl6ZXIiLCAiaW5pdF9YbWxTaGFwZURlc2VyaWFsaXplciIsICJfX2VzbU1pbiIsICJpbml0X0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dCIsICJpbml0X1VuaW9uU2VyZGUiLCAiU2VyZGVDb250ZXh0Q29uZmlnIiwgInNldHRpbmdzIiwgInNlcmRlQ29udGV4dCIsICJzY2hlbWEiLCAiYnl0ZXMiLCAia2V5IiwgIm5zIiwgIm1lbWJlclNjaGVtYXMiLCAibWVtYmVyTnMiLCAib3V0cHV0IiwgIm1lbWJlck5hbWUiLCAieG1sU3RyaW5nIiwgInBhcnNlZE9iamVjdCIsICJfc2NoZW1hIiwgInZhbHVlIiwgInRyYWl0cyIsICJzcGFyc2UiLCAiZmxhdCIsICJsaXN0VmFsdWUiLCAiYnVmZmVyIiwgInNvdXJjZUtleSIsICJzb3VyY2UiLCAic291cmNlQXJyYXkiLCAidiIsICJrZXlOcyIsICJlbnRyaWVzIiwgImtleVByb3BlcnR5IiwgInZhbHVlUHJvcGVydHkiLCAiZW50cnkiLCAidW5pb24iLCAidW5pb25TZXJkZSIsICJVbmlvblNlcmRlIiwgIm1lbWJlclNjaGVtYSIsICJtZW1iZXJUcmFpdHMiLCAieG1sT2JqZWN0S2V5IiwgInhtbCIsICJwYXJzZWRPYmoiLCAiZSIsICJ0ZXh0Tm9kZU5hbWUiLCAicGFyc2VkT2JqVG9SZXR1cm4iLCAiaW1wb3J0X3Byb3RvY29scyIsICJpbXBvcnRfc2NoZW1hIiwgImltcG9ydF9zZXJkZSIsICJpbXBvcnRfc21pdGh5X2NsaWVudCIsICJpbXBvcnRfdXRpbF9iYXNlNjQiLCAiUXVlcnlTaGFwZVNlcmlhbGl6ZXIiLCAiaW5pdF9RdWVyeVNoYXBlU2VyaWFsaXplciIsICJfX2VzbU1pbiIsICJpbml0X0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dCIsICJTZXJkZUNvbnRleHRDb25maWciLCAic2V0dGluZ3MiLCAic2NoZW1hIiwgInZhbHVlIiwgInByZWZpeCIsICJucyIsICJtZW1iZXIiLCAiZmxhdCIsICJpIiwgIml0ZW0iLCAidHJhaXRzIiwgInN1ZmZpeCIsICJrZXkiLCAia2V5U2NoZW1hIiwgIm1lbWJlclNjaGVtYSIsICJrIiwgInYiLCAia2V5VHJhaXRzIiwgImtleVN1ZmZpeCIsICJ2YWxUcmFpdHMiLCAidmFsdWVTdWZmaXgiLCAidmFsdWVLZXkiLCAiZGlkV3JpdGVNZW1iZXIiLCAibWVtYmVyTmFtZSIsICIkdW5rbm93biIsICJzdHIiLCAieG1sTmFtZSIsICJlYzJRdWVyeU5hbWUiLCAia2V5U291cmNlIiwgImVjMiIsICJjYXBpdGFsaXplS2V5cyIsICJpbXBvcnRfcHJvdG9jb2xzIiwgImltcG9ydF9zY2hlbWEiLCAiQXdzUXVlcnlQcm90b2NvbCIsICJpbml0X0F3c1F1ZXJ5UHJvdG9jb2wiLCAiX19lc21NaW4iLCAiaW5pdF9Qcm90b2NvbExpYiIsICJpbml0X1htbFNoYXBlRGVzZXJpYWxpemVyIiwgImluaXRfUXVlcnlTaGFwZVNlcmlhbGl6ZXIiLCAiUHJvdG9jb2xMaWIiLCAib3B0aW9ucyIsICJzZXR0aW5ncyIsICJRdWVyeVNoYXBlU2VyaWFsaXplciIsICJYbWxTaGFwZURlc2VyaWFsaXplciIsICJzZXJkZUNvbnRleHQiLCAib3BlcmF0aW9uU2NoZW1hIiwgImlucHV0IiwgImNvbnRleHQiLCAicmVxdWVzdCIsICJhY3Rpb24iLCAicmVzcG9uc2UiLCAiZGVzZXJpYWxpemVyIiwgIm5zIiwgImRhdGFPYmplY3QiLCAiYnl0ZXMiLCAiaGVhZGVyIiwgInZhbHVlIiwgInNob3J0TmFtZSIsICJhd3NRdWVyeVJlc3VsdEtleSIsICJtZXRhZGF0YSIsICJlcnJvcklkZW50aWZpZXIiLCAiZXJyb3JEYXRhIiwgIm1lc3NhZ2UiLCAiZXJyb3JTY2hlbWEiLCAiZXJyb3JNZXRhZGF0YSIsICJFcnJvckN0b3IiLCAiZXhjZXB0aW9uIiwgIm91dHB1dCIsICJuYW1lIiwgIm1lbWJlciIsICJ0YXJnZXQiLCAiZGF0YSIsICJjb2RlIiwgIkF3c0VjMlF1ZXJ5UHJvdG9jb2wiLCAiaW5pdF9Bd3NFYzJRdWVyeVByb3RvY29sIiwgIl9fZXNtTWluIiwgImluaXRfQXdzUXVlcnlQcm90b2NvbCIsICJBd3NRdWVyeVByb3RvY29sIiwgIm9wdGlvbnMiLCAiZWMyU2V0dGluZ3MiLCAiaW1wb3J0X3htbF9idWlsZGVyIiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgInBhcnNlWG1sQm9keSIsICJwYXJzZVhtbEVycm9yQm9keSIsICJsb2FkUmVzdFhtbEVycm9yQ29kZSIsICJpbml0X3BhcnNlWG1sQm9keSIsICJfX2VzbU1pbiIsICJpbml0X2NvbW1vbiIsICJzdHJlYW1Cb2R5IiwgImNvbnRleHQiLCAiY29sbGVjdEJvZHlTdHJpbmciLCAiZW5jb2RlZCIsICJwYXJzZWRPYmoiLCAiZSIsICJ0ZXh0Tm9kZU5hbWUiLCAia2V5IiwgInBhcnNlZE9ialRvUmV0dXJuIiwgImVycm9yQm9keSIsICJ2YWx1ZSIsICJvdXRwdXQiLCAiZGF0YSIsICJpbXBvcnRfeG1sX2J1aWxkZXIiLCAiaW1wb3J0X3Byb3RvY29scyIsICJpbXBvcnRfc2NoZW1hIiwgImltcG9ydF9zZXJkZSIsICJpbXBvcnRfc21pdGh5X2NsaWVudCIsICJpbXBvcnRfdXRpbF9iYXNlNjQiLCAiWG1sU2hhcGVTZXJpYWxpemVyIiwgImluaXRfWG1sU2hhcGVTZXJpYWxpemVyIiwgIl9fZXNtTWluIiwgImluaXRfQ29uZmlndXJhYmxlU2VyZGVDb250ZXh0IiwgIlNlcmRlQ29udGV4dENvbmZpZyIsICJzZXR0aW5ncyIsICJzY2hlbWEiLCAidmFsdWUiLCAibnMiLCAidHJhaXRzIiwgImJ5dGVzIiwgInN0ciIsICJidWZmZXIiLCAicGFyZW50WG1sbnMiLCAibmFtZSIsICJzdHJ1Y3RYbWxOb2RlIiwgInhtbG5zQXR0ciIsICJ4bWxucyIsICJtZW1iZXJOYW1lIiwgIm1lbWJlclNjaGVtYSIsICJ2YWwiLCAibWVtYmVyTm9kZSIsICIkdW5rbm93biIsICJrIiwgInYiLCAibm9kZSIsICJsaXN0TWVtYmVyIiwgImFycmF5IiwgImNvbnRhaW5lciIsICJsaXN0VHJhaXRzIiwgImxpc3RWYWx1ZVNjaGVtYSIsICJsaXN0VmFsdWVUcmFpdHMiLCAic3BhcnNlIiwgImZsYXQiLCAid3JpdGVJdGVtIiwgInN0cnVjdCIsICJsaXN0SXRlbU5vZGUiLCAibGlzdE5vZGUiLCAibWFwTWVtYmVyIiwgIm1hcCIsICJjb250YWluZXJJc01hcCIsICJtYXBUcmFpdHMiLCAibWFwS2V5U2NoZW1hIiwgImtleVRhZyIsICJtYXBWYWx1ZVNjaGVtYSIsICJtYXBWYWx1ZVRyYWl0cyIsICJ2YWx1ZVRhZyIsICJhZGRLZXlWYWx1ZSIsICJlbnRyeSIsICJrZXkiLCAia2V5Tm9kZSIsICJrZXlYbWxuc0F0dHIiLCAia2V5WG1sbnMiLCAidmFsdWVOb2RlIiwgIm1hcE5vZGUiLCAiX3NjaGVtYSIsICJub2RlQ29udGVudHMiLCAiaW50byIsICJjb250ZW50IiwgInByZWZpeCIsICJYbWxDb2RlYyIsICJpbml0X1htbENvZGVjIiwgIl9fZXNtTWluIiwgImluaXRfQ29uZmlndXJhYmxlU2VyZGVDb250ZXh0IiwgImluaXRfWG1sU2hhcGVEZXNlcmlhbGl6ZXIiLCAiaW5pdF9YbWxTaGFwZVNlcmlhbGl6ZXIiLCAiU2VyZGVDb250ZXh0Q29uZmlnIiwgInNldHRpbmdzIiwgInNlcmlhbGl6ZXIiLCAiWG1sU2hhcGVTZXJpYWxpemVyIiwgImRlc2VyaWFsaXplciIsICJYbWxTaGFwZURlc2VyaWFsaXplciIsICJpbXBvcnRfcHJvdG9jb2xzIiwgImltcG9ydF9zY2hlbWEiLCAiQXdzUmVzdFhtbFByb3RvY29sIiwgImluaXRfQXdzUmVzdFhtbFByb3RvY29sIiwgIl9fZXNtTWluIiwgImluaXRfUHJvdG9jb2xMaWIiLCAiaW5pdF9wYXJzZVhtbEJvZHkiLCAiaW5pdF9YbWxDb2RlYyIsICJQcm90b2NvbExpYiIsICJvcHRpb25zIiwgInNldHRpbmdzIiwgIlhtbENvZGVjIiwgIm9wZXJhdGlvblNjaGVtYSIsICJpbnB1dCIsICJjb250ZXh0IiwgInJlcXVlc3QiLCAiaW5wdXRTY2hlbWEiLCAiY29udGVudFR5cGUiLCAicmVzcG9uc2UiLCAiZGF0YU9iamVjdCIsICJtZXRhZGF0YSIsICJlcnJvcklkZW50aWZpZXIiLCAibG9hZFJlc3RYbWxFcnJvckNvZGUiLCAia2V5IiwgImVycm9yU2NoZW1hIiwgImVycm9yTWV0YWRhdGEiLCAibnMiLCAibWVzc2FnZSIsICJFcnJvckN0b3IiLCAiZXhjZXB0aW9uIiwgIm91dHB1dCIsICJuYW1lIiwgIm1lbWJlciIsICJ0YXJnZXQiLCAidmFsdWUiLCAicHJvdG9jb2xzX2V4cG9ydHMiLCAiX19leHBvcnQiLCAiQXdzRWMyUXVlcnlQcm90b2NvbCIsICJBd3NKc29uMV8wUHJvdG9jb2wiLCAiQXdzSnNvbjFfMVByb3RvY29sIiwgIkF3c0pzb25ScGNQcm90b2NvbCIsICJBd3NRdWVyeVByb3RvY29sIiwgIkF3c1Jlc3RKc29uUHJvdG9jb2wiLCAiQXdzUmVzdFhtbFByb3RvY29sIiwgIkF3c1NtaXRoeVJwY1YyQ2JvclByb3RvY29sIiwgIkpzb25Db2RlYyIsICJKc29uU2hhcGVEZXNlcmlhbGl6ZXIiLCAiSnNvblNoYXBlU2VyaWFsaXplciIsICJYbWxDb2RlYyIsICJYbWxTaGFwZURlc2VyaWFsaXplciIsICJYbWxTaGFwZVNlcmlhbGl6ZXIiLCAiX3RvQm9vbCIsICJfdG9OdW0iLCAiX3RvU3RyIiwgImF3c0V4cGVjdFVuaW9uIiwgImxvYWRSZXN0SnNvbkVycm9yQ29kZSIsICJsb2FkUmVzdFhtbEVycm9yQ29kZSIsICJwYXJzZUpzb25Cb2R5IiwgInBhcnNlSnNvbkVycm9yQm9keSIsICJwYXJzZVhtbEJvZHkiLCAicGFyc2VYbWxFcnJvckJvZHkiLCAiaW5pdF9wcm90b2NvbHMiLCAiX19lc21NaW4iLCAiaW5pdF9Bd3NTbWl0aHlScGNWMkNib3JQcm90b2NvbCIsICJpbml0X2NvZXJjaW5nX3NlcmlhbGl6ZXJzIiwgImluaXRfQXdzSnNvbjFfMFByb3RvY29sIiwgImluaXRfQXdzSnNvbjFfMVByb3RvY29sIiwgImluaXRfQXdzSnNvblJwY1Byb3RvY29sIiwgImluaXRfQXdzUmVzdEpzb25Qcm90b2NvbCIsICJpbml0X0pzb25Db2RlYyIsICJpbml0X0pzb25TaGFwZURlc2VyaWFsaXplciIsICJpbml0X0pzb25TaGFwZVNlcmlhbGl6ZXIiLCAiaW5pdF9hd3NFeHBlY3RVbmlvbiIsICJpbml0X3BhcnNlSnNvbkJvZHkiLCAiaW5pdF9Bd3NFYzJRdWVyeVByb3RvY29sIiwgImluaXRfQXdzUXVlcnlQcm90b2NvbCIsICJpbml0X0F3c1Jlc3RYbWxQcm90b2NvbCIsICJpbml0X1htbENvZGVjIiwgImluaXRfWG1sU2hhcGVEZXNlcmlhbGl6ZXIiLCAiaW5pdF9YbWxTaGFwZVNlcmlhbGl6ZXIiLCAiaW5pdF9wYXJzZVhtbEJvZHkiLCAiZGlzdF9lc19leHBvcnRzIiwgIl9fZXhwb3J0IiwgIkFXU1NES1NpZ1Y0U2lnbmVyIiwgIkF3c0VjMlF1ZXJ5UHJvdG9jb2wiLCAiQXdzSnNvbjFfMFByb3RvY29sIiwgIkF3c0pzb24xXzFQcm90b2NvbCIsICJBd3NKc29uUnBjUHJvdG9jb2wiLCAiQXdzUXVlcnlQcm90b2NvbCIsICJBd3NSZXN0SnNvblByb3RvY29sIiwgIkF3c1Jlc3RYbWxQcm90b2NvbCIsICJBd3NTZGtTaWdWNEFTaWduZXIiLCAiQXdzU2RrU2lnVjRTaWduZXIiLCAiQXdzU21pdGh5UnBjVjJDYm9yUHJvdG9jb2wiLCAiSnNvbkNvZGVjIiwgIkpzb25TaGFwZURlc2VyaWFsaXplciIsICJKc29uU2hhcGVTZXJpYWxpemVyIiwgIk5PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9PUFRJT05TIiwgIk5PREVfU0lHVjRBX0NPTkZJR19PUFRJT05TIiwgIlhtbENvZGVjIiwgIlhtbFNoYXBlRGVzZXJpYWxpemVyIiwgIlhtbFNoYXBlU2VyaWFsaXplciIsICJfdG9Cb29sIiwgIl90b051bSIsICJfdG9TdHIiLCAiYXdzRXhwZWN0VW5pb24iLCAiZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbiIsICJnZXRCZWFyZXJUb2tlbkVudktleSIsICJsb2FkUmVzdEpzb25FcnJvckNvZGUiLCAibG9hZFJlc3RYbWxFcnJvckNvZGUiLCAicGFyc2VKc29uQm9keSIsICJwYXJzZUpzb25FcnJvckJvZHkiLCAicGFyc2VYbWxCb2R5IiwgInBhcnNlWG1sRXJyb3JCb2R5IiwgInJlc29sdmVBV1NTREtTaWdWNENvbmZpZyIsICJyZXNvbHZlQXdzU2RrU2lnVjRBQ29uZmlnIiwgInJlc29sdmVBd3NTZGtTaWdWNENvbmZpZyIsICJzZXRDcmVkZW50aWFsRmVhdHVyZSIsICJzZXRGZWF0dXJlIiwgInNldFRva2VuRmVhdHVyZSIsICJzdGF0ZSIsICJ2YWxpZGF0ZVNpZ25pbmdQcm9wZXJ0aWVzIiwgImluaXRfZGlzdF9lcyIsICJfX2VzbU1pbiIsICJpbml0X2NsaWVudCIsICJpbml0X2h0dHBBdXRoU2NoZW1lcyIsICJpbml0X3Byb3RvY29scyIsICJyZXF1aXJlX2Rpc3RfY2pzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJjb3JlIiwgInV0aWxFbmRwb2ludHMiLCAicHJvdG9jb2xIdHRwIiwgImNvcmUkMSIsICJERUZBVUxUX1VBX0FQUF9JRCIsICJpc1ZhbGlkVXNlckFnZW50QXBwSWQiLCAiYXBwSWQiLCAicmVzb2x2ZVVzZXJBZ2VudENvbmZpZyIsICJpbnB1dCIsICJub3JtYWxpemVkQXBwSWRQcm92aWRlciIsICJjdXN0b21Vc2VyQWdlbnQiLCAibG9nZ2VyIiwgIkFDQ09VTlRfSURfRU5EUE9JTlRfUkVHRVgiLCAiY2hlY2tGZWF0dXJlcyIsICJjb250ZXh0IiwgImNvbmZpZyIsICJhcmdzIiwgInJldHJ5U3RyYXRlZ3kiLCAiZW5kcG9pbnRWMiIsICJpZGVudGl0eSIsICJjcmVkZW50aWFscyIsICJrZXkiLCAidmFsdWUiLCAiVVNFUl9BR0VOVCIsICJYX0FNWl9VU0VSX0FHRU5UIiwgIlNQQUNFIiwgIlVBX05BTUVfU0VQQVJBVE9SIiwgIlVBX05BTUVfRVNDQVBFX1JFR0VYIiwgIlVBX1ZBTFVFX0VTQ0FQRV9SRUdFWCIsICJVQV9FU0NBUEVfQ0hBUiIsICJCWVRFX0xJTUlUIiwgImVuY29kZUZlYXR1cmVzIiwgImZlYXR1cmVzIiwgImJ1ZmZlciIsICJ2YWwiLCAidXNlckFnZW50TWlkZGxld2FyZSIsICJvcHRpb25zIiwgIm5leHQiLCAicmVxdWVzdCIsICJoZWFkZXJzIiwgInVzZXJBZ2VudCIsICJlc2NhcGVVc2VyQWdlbnQiLCAiZGVmYXVsdFVzZXJBZ2VudCIsICJhd3NDb250ZXh0IiwgInByZWZpeCIsICJzZGtVc2VyQWdlbnRWYWx1ZSIsICJub3JtYWxVQVZhbHVlIiwgInNlY3Rpb24iLCAidXNlckFnZW50UGFpciIsICJuYW1lIiwgInBhcnQiLCAidmVyc2lvbiIsICJwcmVmaXhTZXBhcmF0b3JJbmRleCIsICJ1YU5hbWUiLCAiaXRlbSIsICJhY2MiLCAiaW5kZXgiLCAiZ2V0VXNlckFnZW50TWlkZGxld2FyZU9wdGlvbnMiLCAiZ2V0VXNlckFnZW50UGx1Z2luIiwgImNsaWVudFN0YWNrIiwgInJlcXVpcmVfaHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAiY29yZV8xIiwgInV0aWxfbWlkZGxld2FyZV8xIiwgImRlZmF1bHREeW5hbW9EQkh0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyIiwgImNvbmZpZyIsICJjb250ZXh0IiwgImlucHV0IiwgImNyZWF0ZUF3c0F1dGhTaWd2NEh0dHBBdXRoT3B0aW9uIiwgImF1dGhQYXJhbWV0ZXJzIiwgImRlZmF1bHREeW5hbW9EQkh0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAib3B0aW9ucyIsICJyZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWciLCAiY29uZmlnXzAiLCAicmVxdWlyZV9wYWNrYWdlIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAicmVxdWlyZV9kaXN0X2NqcyIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAiY2xpZW50IiwgInByb3BlcnR5UHJvdmlkZXIiLCAiRU5WX0tFWSIsICJFTlZfU0VDUkVUIiwgIkVOVl9TRVNTSU9OIiwgIkVOVl9FWFBJUkFUSU9OIiwgIkVOVl9DUkVERU5USUFMX1NDT1BFIiwgIkVOVl9BQ0NPVU5UX0lEIiwgImZyb21FbnYiLCAiaW5pdCIsICJhY2Nlc3NLZXlJZCIsICJzZWNyZXRBY2Nlc3NLZXkiLCAic2Vzc2lvblRva2VuIiwgImV4cGlyeSIsICJjcmVkZW50aWFsU2NvcGUiLCAiYWNjb3VudElkIiwgImNyZWRlbnRpYWxzIiwgInJlcXVpcmVfY2hlY2tVcmwiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgInByb3BlcnR5X3Byb3ZpZGVyXzEiLCAiRUNTX0NPTlRBSU5FUl9IT1NUIiwgIkVLU19DT05UQUlORVJfSE9TVF9JUHY0IiwgIkVLU19DT05UQUlORVJfSE9TVF9JUHY2IiwgImNoZWNrVXJsIiwgInVybCIsICJsb2dnZXIiLCAiaXBDb21wb25lbnRzIiwgImluUmFuZ2UiLCAiY29tcG9uZW50IiwgIm51bSIsICJyZXF1aXJlX3JlcXVlc3RIZWxwZXJzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJjcmVhdGVHZXRSZXF1ZXN0IiwgImdldENyZWRlbnRpYWxzIiwgInByb3BlcnR5X3Byb3ZpZGVyXzEiLCAicHJvdG9jb2xfaHR0cF8xIiwgInNtaXRoeV9jbGllbnRfMSIsICJ1dGlsX3N0cmVhbV8xIiwgInVybCIsICJhY2MiLCAiayIsICJ2IiwgInJlc3BvbnNlIiwgImxvZ2dlciIsICJzdHIiLCAicGFyc2VkIiwgInBhcnNlZEJvZHkiLCAicmVxdWlyZV9yZXRyeV93cmFwcGVyIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJyZXRyeVdyYXBwZXIiLCAidG9SZXRyeSIsICJtYXhSZXRyaWVzIiwgImRlbGF5TXMiLCAiaSIsICJyZXNvbHZlIiwgInJlcXVpcmVfZnJvbUh0dHAiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgInRzbGliXzEiLCAiY2xpZW50XzEiLCAibm9kZV9odHRwX2hhbmRsZXJfMSIsICJwcm9wZXJ0eV9wcm92aWRlcl8xIiwgInByb21pc2VzXzEiLCAiY2hlY2tVcmxfMSIsICJyZXF1ZXN0SGVscGVyc18xIiwgInJldHJ5X3dyYXBwZXJfMSIsICJBV1NfQ09OVEFJTkVSX0NSRURFTlRJQUxTX1JFTEFUSVZFX1VSSSIsICJERUZBVUxUX0xJTktfTE9DQUxfSE9TVCIsICJBV1NfQ09OVEFJTkVSX0NSRURFTlRJQUxTX0ZVTExfVVJJIiwgIkFXU19DT05UQUlORVJfQVVUSE9SSVpBVElPTl9UT0tFTl9GSUxFIiwgIkFXU19DT05UQUlORVJfQVVUSE9SSVpBVElPTl9UT0tFTiIsICJmcm9tSHR0cCIsICJvcHRpb25zIiwgImhvc3QiLCAicmVsYXRpdmUiLCAiZnVsbCIsICJ0b2tlbiIsICJ0b2tlbkZpbGUiLCAid2FybiIsICJ1cmwiLCAicmVxdWVzdEhhbmRsZXIiLCAicmVxdWVzdCIsICJyZXN1bHQiLCAiY3JlZHMiLCAiZSIsICJyZXF1aXJlX2Rpc3RfY2pzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJmcm9tSHR0cF8xIiwgImNyZWF0ZUF3c0F1dGhTaWd2NEh0dHBBdXRoT3B0aW9uIiwgImF1dGhQYXJhbWV0ZXJzIiwgImNvbmZpZyIsICJjb250ZXh0IiwgImNyZWF0ZVNtaXRoeUFwaU5vQXV0aEh0dHBBdXRoT3B0aW9uIiwgImltcG9ydF91dGlsX21pZGRsZXdhcmUiLCAiZGVmYXVsdFNTT09JRENIdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlciIsICJkZWZhdWx0U1NPT0lEQ0h0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAicmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnIiwgImluaXRfaHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJfX2VzbU1pbiIsICJpbml0X2Rpc3RfZXMiLCAiaW5wdXQiLCAib3B0aW9ucyIsICJjb25maWdfMCIsICJyZXNvbHZlQXdzU2RrU2lnVjRDb25maWciLCAicmVzb2x2ZUNsaWVudEVuZHBvaW50UGFyYW1ldGVycyIsICJjb21tb25QYXJhbXMiLCAiaW5pdF9FbmRwb2ludFBhcmFtZXRlcnMiLCAiX19lc21NaW4iLCAib3B0aW9ucyIsICJwYWNrYWdlX2RlZmF1bHQiLCAiaW5pdF9wYWNrYWdlIiwgIl9fZXNtTWluIiwgInJlcXVpcmVfZGlzdF9janMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgIm9zIiwgInByb2Nlc3MiLCAibWlkZGxld2FyZVVzZXJBZ2VudCIsICJnZXRSdW50aW1lVXNlckFnZW50UGFpciIsICJydW50aW1lc1RvQ2hlY2siLCAicnVudGltZSIsICJjcnRBdmFpbGFiaWxpdHkiLCAiaXNDcnRBdmFpbGFibGUiLCAiY3JlYXRlRGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyIiwgInNlcnZpY2VJZCIsICJjbGllbnRWZXJzaW9uIiwgInJ1bnRpbWVVc2VyQWdlbnRQYWlyIiwgImNvbmZpZyIsICJzZWN0aW9ucyIsICJjcnRBdmFpbGFibGUiLCAiYXBwSWQiLCAiZGVmYXVsdFVzZXJBZ2VudCIsICJVQV9BUFBfSURfRU5WX05BTUUiLCAiVUFfQVBQX0lEX0lOSV9OQU1FIiwgIlVBX0FQUF9JRF9JTklfTkFNRV9ERVBSRUNBVEVEIiwgIk5PREVfQVBQX0lEX0NPTkZJR19PUFRJT05TIiwgImVudiIsICJwcm9maWxlIiwgInJlcXVpcmVfZGlzdF9janMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgInV0aWxFbmRwb2ludHMiLCAidXJsUGFyc2VyIiwgImlzVmlydHVhbEhvc3RhYmxlUzNCdWNrZXQiLCAidmFsdWUiLCAiYWxsb3dTdWJEb21haW5zIiwgImxhYmVsIiwgIkFSTl9ERUxJTUlURVIiLCAiUkVTT1VSQ0VfREVMSU1JVEVSIiwgInBhcnNlQXJuIiwgInNlZ21lbnRzIiwgImFybiIsICJwYXJ0aXRpb24iLCAic2VydmljZSIsICJyZWdpb24iLCAiYWNjb3VudElkIiwgInJlc291cmNlUGF0aCIsICJyZXNvdXJjZUlkIiwgInJlc291cmNlIiwgInBhcnRpdGlvbnMiLCAidmVyc2lvbiIsICJwYXJ0aXRpb25zSW5mbyIsICJzZWxlY3RlZFBhcnRpdGlvbnNJbmZvIiwgInNlbGVjdGVkVXNlckFnZW50UHJlZml4IiwgInJlZ2lvbnMiLCAib3V0cHV0cyIsICJyZWdpb25EYXRhIiwgInJlZ2lvblJlZ2V4IiwgIkRFRkFVTFRfUEFSVElUSU9OIiwgInNldFBhcnRpdGlvbkluZm8iLCAidXNlckFnZW50UHJlZml4IiwgInVzZURlZmF1bHRQYXJ0aXRpb25JbmZvIiwgImdldFVzZXJBZ2VudFByZWZpeCIsICJhd3NFbmRwb2ludEZ1bmN0aW9ucyIsICJyZXNvbHZlRGVmYXVsdEF3c1JlZ2lvbmFsRW5kcG9pbnRzQ29uZmlnIiwgImlucHV0IiwgImVuZHBvaW50IiwgInRvRW5kcG9pbnRWMSIsICJ1IiwgInYiLCAidyIsICJ4IiwgImIiLCAiYyIsICJkIiwgImUiLCAiZiIsICJnIiwgImgiLCAiaSIsICJqIiwgImsiLCAibCIsICJtIiwgIm4iLCAibyIsICJwIiwgInEiLCAiciIsICJzIiwgInQiLCAiX2RhdGEiLCAicnVsZVNldCIsICJpbml0X3J1bGVzZXQiLCAiX19lc21NaW4iLCAiaW1wb3J0X3V0aWxfZW5kcG9pbnRzIiwgImNhY2hlIiwgImRlZmF1bHRFbmRwb2ludFJlc29sdmVyIiwgImluaXRfZW5kcG9pbnRSZXNvbHZlciIsICJfX2VzbU1pbiIsICJpbml0X3J1bGVzZXQiLCAiZW5kcG9pbnRQYXJhbXMiLCAiY29udGV4dCIsICJydWxlU2V0IiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgIlNTT09JRENTZXJ2aWNlRXhjZXB0aW9uIiwgImluaXRfU1NPT0lEQ1NlcnZpY2VFeGNlcHRpb24iLCAiX19lc21NaW4iLCAiX1NTT09JRENTZXJ2aWNlRXhjZXB0aW9uIiwgIl9fU2VydmljZUV4Y2VwdGlvbiIsICJvcHRpb25zIiwgIkFjY2Vzc0RlbmllZEV4Y2VwdGlvbiIsICJBdXRob3JpemF0aW9uUGVuZGluZ0V4Y2VwdGlvbiIsICJFeHBpcmVkVG9rZW5FeGNlcHRpb24iLCAiSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb24iLCAiSW52YWxpZENsaWVudEV4Y2VwdGlvbiIsICJJbnZhbGlkR3JhbnRFeGNlcHRpb24iLCAiSW52YWxpZFJlcXVlc3RFeGNlcHRpb24iLCAiSW52YWxpZFNjb3BlRXhjZXB0aW9uIiwgIlNsb3dEb3duRXhjZXB0aW9uIiwgIlVuYXV0aG9yaXplZENsaWVudEV4Y2VwdGlvbiIsICJVbnN1cHBvcnRlZEdyYW50VHlwZUV4Y2VwdGlvbiIsICJpbml0X2Vycm9ycyIsICJfX2VzbU1pbiIsICJpbml0X1NTT09JRENTZXJ2aWNlRXhjZXB0aW9uIiwgIl9BY2Nlc3NEZW5pZWRFeGNlcHRpb24iLCAiU1NPT0lEQ1NlcnZpY2VFeGNlcHRpb24iLCAib3B0cyIsICJfQXV0aG9yaXphdGlvblBlbmRpbmdFeGNlcHRpb24iLCAiX0V4cGlyZWRUb2tlbkV4Y2VwdGlvbiIsICJfSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb24iLCAiX0ludmFsaWRDbGllbnRFeGNlcHRpb24iLCAiX0ludmFsaWRHcmFudEV4Y2VwdGlvbiIsICJfSW52YWxpZFJlcXVlc3RFeGNlcHRpb24iLCAiX0ludmFsaWRTY29wZUV4Y2VwdGlvbiIsICJfU2xvd0Rvd25FeGNlcHRpb24iLCAiX1VuYXV0aG9yaXplZENsaWVudEV4Y2VwdGlvbiIsICJfVW5zdXBwb3J0ZWRHcmFudFR5cGVFeGNlcHRpb24iLCAiaW1wb3J0X3NjaGVtYSIsICJfQURFIiwgIl9BUEUiLCAiX0FUIiwgIl9DUyIsICJfQ1QiLCAiX0NUUiIsICJfQ1RSciIsICJfQ1YiLCAiX0VURSIsICJfSUNFIiwgIl9JR0UiLCAiX0lSRSIsICJfSVNFIiwgIl9JU0VuIiwgIl9JVCIsICJfUlQiLCAiX1NERSIsICJfVUNFIiwgIl9VR1RFIiwgIl9hVCIsICJfYyIsICJfY0kiLCAiX2NTIiwgIl9jViIsICJfY28iLCAiX2RDIiwgIl9lIiwgIl9lSSIsICJfZWQiLCAiX2dUIiwgIl9oIiwgIl9oRSIsICJfaVQiLCAiX3IiLCAiX3JUIiwgIl9yVSIsICJfcyIsICJfc2MiLCAiX3NlIiwgIl90VCIsICJuMCIsICJfc19yZWdpc3RyeSIsICJTU09PSURDU2VydmljZUV4Y2VwdGlvbiQiLCAibjBfcmVnaXN0cnkiLCAiQWNjZXNzRGVuaWVkRXhjZXB0aW9uJCIsICJBdXRob3JpemF0aW9uUGVuZGluZ0V4Y2VwdGlvbiQiLCAiRXhwaXJlZFRva2VuRXhjZXB0aW9uJCIsICJJbnRlcm5hbFNlcnZlckV4Y2VwdGlvbiQiLCAiSW52YWxpZENsaWVudEV4Y2VwdGlvbiQiLCAiSW52YWxpZEdyYW50RXhjZXB0aW9uJCIsICJJbnZhbGlkUmVxdWVzdEV4Y2VwdGlvbiQiLCAiSW52YWxpZFNjb3BlRXhjZXB0aW9uJCIsICJTbG93RG93bkV4Y2VwdGlvbiQiLCAiVW5hdXRob3JpemVkQ2xpZW50RXhjZXB0aW9uJCIsICJVbnN1cHBvcnRlZEdyYW50VHlwZUV4Y2VwdGlvbiQiLCAiZXJyb3JUeXBlUmVnaXN0cmllcyIsICJBY2Nlc3NUb2tlbiIsICJDbGllbnRTZWNyZXQiLCAiQ29kZVZlcmlmaWVyIiwgIklkVG9rZW4iLCAiUmVmcmVzaFRva2VuIiwgIkNyZWF0ZVRva2VuUmVxdWVzdCQiLCAiQ3JlYXRlVG9rZW5SZXNwb25zZSQiLCAiQ3JlYXRlVG9rZW4kIiwgImluaXRfc2NoZW1hc18wIiwgIl9fZXNtTWluIiwgImluaXRfZXJyb3JzIiwgImluaXRfU1NPT0lEQ1NlcnZpY2VFeGNlcHRpb24iLCAiU1NPT0lEQ1NlcnZpY2VFeGNlcHRpb24iLCAiQWNjZXNzRGVuaWVkRXhjZXB0aW9uIiwgIkF1dGhvcml6YXRpb25QZW5kaW5nRXhjZXB0aW9uIiwgIkV4cGlyZWRUb2tlbkV4Y2VwdGlvbiIsICJJbnRlcm5hbFNlcnZlckV4Y2VwdGlvbiIsICJJbnZhbGlkQ2xpZW50RXhjZXB0aW9uIiwgIkludmFsaWRHcmFudEV4Y2VwdGlvbiIsICJJbnZhbGlkUmVxdWVzdEV4Y2VwdGlvbiIsICJJbnZhbGlkU2NvcGVFeGNlcHRpb24iLCAiU2xvd0Rvd25FeGNlcHRpb24iLCAiVW5hdXRob3JpemVkQ2xpZW50RXhjZXB0aW9uIiwgIlVuc3VwcG9ydGVkR3JhbnRUeXBlRXhjZXB0aW9uIiwgImltcG9ydF9jb3JlIiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgImltcG9ydF91cmxfcGFyc2VyIiwgImltcG9ydF91dGlsX2Jhc2U2NCIsICJpbXBvcnRfdXRpbF91dGY4IiwgImdldFJ1bnRpbWVDb25maWciLCAiaW5pdF9ydW50aW1lQ29uZmlnX3NoYXJlZCIsICJfX2VzbU1pbiIsICJpbml0X2Rpc3RfZXMiLCAiaW5pdF9wcm90b2NvbHMiLCAiaW5pdF9odHRwQXV0aFNjaGVtZVByb3ZpZGVyIiwgImluaXRfZW5kcG9pbnRSZXNvbHZlciIsICJpbml0X3NjaGVtYXNfMCIsICJjb25maWciLCAiZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIiLCAiZGVmYXVsdFNTT09JRENIdHRwQXV0aFNjaGVtZVByb3ZpZGVyIiwgImlwYyIsICJBd3NTZGtTaWdWNFNpZ25lciIsICJBd3NSZXN0SnNvblByb3RvY29sIiwgImVycm9yVHlwZVJlZ2lzdHJpZXMiLCAiaW1wb3J0X3V0aWxfdXNlcl9hZ2VudF9ub2RlIiwgImltcG9ydF9jb25maWdfcmVzb2x2ZXIiLCAiaW1wb3J0X2hhc2hfbm9kZSIsICJpbXBvcnRfbWlkZGxld2FyZV9yZXRyeSIsICJpbXBvcnRfbm9kZV9jb25maWdfcHJvdmlkZXIiLCAiaW1wb3J0X25vZGVfaHR0cF9oYW5kbGVyIiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgImltcG9ydF91dGlsX2JvZHlfbGVuZ3RoX25vZGUiLCAiaW1wb3J0X3V0aWxfZGVmYXVsdHNfbW9kZV9ub2RlIiwgImltcG9ydF91dGlsX3JldHJ5IiwgImdldFJ1bnRpbWVDb25maWciLCAiaW5pdF9ydW50aW1lQ29uZmlnIiwgIl9fZXNtTWluIiwgImluaXRfcGFja2FnZSIsICJpbml0X2Rpc3RfZXMiLCAiaW5pdF9ydW50aW1lQ29uZmlnX3NoYXJlZCIsICJjb25maWciLCAiZGVmYXVsdHNNb2RlIiwgImRlZmF1bHRDb25maWdQcm92aWRlciIsICJjbGllbnRTaGFyZWRWYWx1ZXMiLCAiZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbiIsICJsb2FkZXJDb25maWciLCAibG9hZE5vZGVDb25maWciLCAiTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX09QVElPTlMiLCAicGFja2FnZV9kZWZhdWx0IiwgIlJlcXVlc3RIYW5kbGVyIiwgInJlcXVpcmVfc3RzUmVnaW9uRGVmYXVsdFJlc29sdmVyIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJzdHNSZWdpb25EZWZhdWx0UmVzb2x2ZXIiLCAiY29uZmlnX3Jlc29sdmVyXzEiLCAibm9kZV9jb25maWdfcHJvdmlkZXJfMSIsICJsb2FkZXJDb25maWciLCAicmVxdWlyZV9kaXN0X2NqcyIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAic3RzUmVnaW9uRGVmYXVsdFJlc29sdmVyIiwgImNvbmZpZ1Jlc29sdmVyIiwgImdldEF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24iLCAicnVudGltZUNvbmZpZyIsICJyZWdpb24iLCAicmVzb2x2ZUF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24iLCAiYXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiIsICJrIiwgImdldEh0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiIsICJyZXNvbHZlSHR0cEF1dGhSdW50aW1lQ29uZmlnIiwgImluaXRfaHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uIiwgIl9fZXNtTWluIiwgInJ1bnRpbWVDb25maWciLCAiX2h0dHBBdXRoU2NoZW1lcyIsICJfaHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJfY3JlZGVudGlhbHMiLCAiaHR0cEF1dGhTY2hlbWUiLCAiaW5kZXgiLCAic2NoZW1lIiwgImh0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAiY3JlZGVudGlhbHMiLCAiY29uZmlnIiwgImltcG9ydF9yZWdpb25fY29uZmlnX3Jlc29sdmVyIiwgImltcG9ydF9wcm90b2NvbF9odHRwIiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgInJlc29sdmVSdW50aW1lRXh0ZW5zaW9ucyIsICJpbml0X3J1bnRpbWVFeHRlbnNpb25zIiwgIl9fZXNtTWluIiwgImluaXRfaHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uIiwgInJ1bnRpbWVDb25maWciLCAiZXh0ZW5zaW9ucyIsICJleHRlbnNpb25Db25maWd1cmF0aW9uIiwgImdldEh0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiIsICJleHRlbnNpb24iLCAicmVzb2x2ZUh0dHBBdXRoUnVudGltZUNvbmZpZyIsICJpbXBvcnRfbWlkZGxld2FyZV9ob3N0X2hlYWRlciIsICJpbXBvcnRfbWlkZGxld2FyZV9sb2dnZXIiLCAiaW1wb3J0X21pZGRsZXdhcmVfcmVjdXJzaW9uX2RldGVjdGlvbiIsICJpbXBvcnRfbWlkZGxld2FyZV91c2VyX2FnZW50IiwgImltcG9ydF9jb25maWdfcmVzb2x2ZXIiLCAiaW1wb3J0X2NvcmUiLCAiaW1wb3J0X3NjaGVtYSIsICJpbXBvcnRfbWlkZGxld2FyZV9jb250ZW50X2xlbmd0aCIsICJpbXBvcnRfbWlkZGxld2FyZV9lbmRwb2ludCIsICJpbXBvcnRfbWlkZGxld2FyZV9yZXRyeSIsICJpbXBvcnRfc21pdGh5X2NsaWVudCIsICJTU09PSURDQ2xpZW50IiwgImluaXRfU1NPT0lEQ0NsaWVudCIsICJfX2VzbU1pbiIsICJpbml0X2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAiaW5pdF9FbmRwb2ludFBhcmFtZXRlcnMiLCAiaW5pdF9ydW50aW1lQ29uZmlnIiwgImluaXRfcnVudGltZUV4dGVuc2lvbnMiLCAiX19DbGllbnQiLCAiY29uZmlndXJhdGlvbiIsICJfY29uZmlnXzAiLCAiZ2V0UnVudGltZUNvbmZpZyIsICJfY29uZmlnXzEiLCAicmVzb2x2ZUNsaWVudEVuZHBvaW50UGFyYW1ldGVycyIsICJfY29uZmlnXzIiLCAiX2NvbmZpZ18zIiwgIl9jb25maWdfNCIsICJfY29uZmlnXzUiLCAiX2NvbmZpZ182IiwgIl9jb25maWdfNyIsICJyZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWciLCAiX2NvbmZpZ184IiwgInJlc29sdmVSdW50aW1lRXh0ZW5zaW9ucyIsICJkZWZhdWx0U1NPT0lEQ0h0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyIiwgImNvbmZpZyIsICJpbXBvcnRfbWlkZGxld2FyZV9lbmRwb2ludCIsICJpbXBvcnRfc21pdGh5X2NsaWVudCIsICJDcmVhdGVUb2tlbkNvbW1hbmQiLCAiaW5pdF9DcmVhdGVUb2tlbkNvbW1hbmQiLCAiX19lc21NaW4iLCAiaW5pdF9FbmRwb2ludFBhcmFtZXRlcnMiLCAiaW5pdF9zY2hlbWFzXzAiLCAiJENvbW1hbmQiLCAiY29tbW9uUGFyYW1zIiwgIkNvbW1hbmQiLCAiY3MiLCAiY29uZmlnIiwgIm8iLCAiQ3JlYXRlVG9rZW4kIiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgImNvbW1hbmRzIiwgIlNTT09JREMiLCAiaW5pdF9TU09PSURDIiwgIl9fZXNtTWluIiwgImluaXRfQ3JlYXRlVG9rZW5Db21tYW5kIiwgImluaXRfU1NPT0lEQ0NsaWVudCIsICJDcmVhdGVUb2tlbkNvbW1hbmQiLCAiU1NPT0lEQ0NsaWVudCIsICJpbml0X2NvbW1hbmRzIiwgIl9fZXNtTWluIiwgImluaXRfQ3JlYXRlVG9rZW5Db21tYW5kIiwgIkFjY2Vzc0RlbmllZEV4Y2VwdGlvblJlYXNvbiIsICJJbnZhbGlkUmVxdWVzdEV4Y2VwdGlvblJlYXNvbiIsICJpbml0X2VudW1zIiwgIl9fZXNtTWluIiwgImluaXRfbW9kZWxzXzAiLCAiX19lc21NaW4iLCAic3NvX29pZGNfZXhwb3J0cyIsICJfX2V4cG9ydCIsICIkQ29tbWFuZCIsICJBY2Nlc3NEZW5pZWRFeGNlcHRpb24iLCAiQWNjZXNzRGVuaWVkRXhjZXB0aW9uJCIsICJBY2Nlc3NEZW5pZWRFeGNlcHRpb25SZWFzb24iLCAiQXV0aG9yaXphdGlvblBlbmRpbmdFeGNlcHRpb24iLCAiQXV0aG9yaXphdGlvblBlbmRpbmdFeGNlcHRpb24kIiwgIkNyZWF0ZVRva2VuJCIsICJDcmVhdGVUb2tlbkNvbW1hbmQiLCAiQ3JlYXRlVG9rZW5SZXF1ZXN0JCIsICJDcmVhdGVUb2tlblJlc3BvbnNlJCIsICJFeHBpcmVkVG9rZW5FeGNlcHRpb24iLCAiRXhwaXJlZFRva2VuRXhjZXB0aW9uJCIsICJJbnRlcm5hbFNlcnZlckV4Y2VwdGlvbiIsICJJbnRlcm5hbFNlcnZlckV4Y2VwdGlvbiQiLCAiSW52YWxpZENsaWVudEV4Y2VwdGlvbiIsICJJbnZhbGlkQ2xpZW50RXhjZXB0aW9uJCIsICJJbnZhbGlkR3JhbnRFeGNlcHRpb24iLCAiSW52YWxpZEdyYW50RXhjZXB0aW9uJCIsICJJbnZhbGlkUmVxdWVzdEV4Y2VwdGlvbiIsICJJbnZhbGlkUmVxdWVzdEV4Y2VwdGlvbiQiLCAiSW52YWxpZFJlcXVlc3RFeGNlcHRpb25SZWFzb24iLCAiSW52YWxpZFNjb3BlRXhjZXB0aW9uIiwgIkludmFsaWRTY29wZUV4Y2VwdGlvbiQiLCAiU1NPT0lEQyIsICJTU09PSURDQ2xpZW50IiwgIlNTT09JRENTZXJ2aWNlRXhjZXB0aW9uIiwgIlNTT09JRENTZXJ2aWNlRXhjZXB0aW9uJCIsICJTbG93RG93bkV4Y2VwdGlvbiIsICJTbG93RG93bkV4Y2VwdGlvbiQiLCAiVW5hdXRob3JpemVkQ2xpZW50RXhjZXB0aW9uIiwgIlVuYXV0aG9yaXplZENsaWVudEV4Y2VwdGlvbiQiLCAiVW5zdXBwb3J0ZWRHcmFudFR5cGVFeGNlcHRpb24iLCAiVW5zdXBwb3J0ZWRHcmFudFR5cGVFeGNlcHRpb24kIiwgIl9fQ2xpZW50IiwgImVycm9yVHlwZVJlZ2lzdHJpZXMiLCAiaW5pdF9zc29fb2lkYyIsICJfX2VzbU1pbiIsICJpbml0X1NTT09JRENDbGllbnQiLCAiaW5pdF9TU09PSURDIiwgImluaXRfY29tbWFuZHMiLCAiaW5pdF9zY2hlbWFzXzAiLCAiaW5pdF9lbnVtcyIsICJpbml0X2Vycm9ycyIsICJpbml0X21vZGVsc18wIiwgImluaXRfU1NPT0lEQ1NlcnZpY2VFeGNlcHRpb24iLCAicmVxdWlyZV9kaXN0X2NqcyIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAiY2xpZW50IiwgImh0dHBBdXRoU2NoZW1lcyIsICJwcm9wZXJ0eVByb3ZpZGVyIiwgInNoYXJlZEluaUZpbGVMb2FkZXIiLCAiZnMiLCAiZnJvbUVudlNpZ25pbmdOYW1lIiwgImxvZ2dlciIsICJzaWduaW5nTmFtZSIsICJiZWFyZXJUb2tlbktleSIsICJ0b2tlbiIsICJFWFBJUkVfV0lORE9XX01TIiwgIlJFRlJFU0hfTUVTU0FHRSIsICJnZXRTc29PaWRjQ2xpZW50IiwgInNzb1JlZ2lvbiIsICJpbml0IiwgImNhbGxlckNsaWVudENvbmZpZyIsICJTU09PSURDQ2xpZW50IiwgImNvYWxlc2NlIiwgInByb3AiLCAiZ2V0TmV3U3NvT2lkY1Rva2VuIiwgInNzb1Rva2VuIiwgIkNyZWF0ZVRva2VuQ29tbWFuZCIsICJ2YWxpZGF0ZVRva2VuRXhwaXJ5IiwgInZhbGlkYXRlVG9rZW5LZXkiLCAia2V5IiwgInZhbHVlIiwgImZvclJlZnJlc2giLCAid3JpdGVGaWxlIiwgIndyaXRlU1NPVG9rZW5Ub0ZpbGUiLCAiaWQiLCAidG9rZW5GaWxlcGF0aCIsICJ0b2tlblN0cmluZyIsICJsYXN0UmVmcmVzaEF0dGVtcHRUaW1lIiwgImZyb21Tc28iLCAicHJvZmlsZXMiLCAicHJvZmlsZU5hbWUiLCAicHJvZmlsZSIsICJzc29TZXNzaW9uTmFtZSIsICJzc29TZXNzaW9uIiwgInNzb1Nlc3Npb25SZXF1aXJlZEtleSIsICJhY2Nlc3NUb2tlbiIsICJleHBpcmVzQXQiLCAiZXhpc3RpbmdUb2tlbiIsICJuZXdTc29PaWRjVG9rZW4iLCAibmV3VG9rZW5FeHBpcmF0aW9uIiwgImZyb21TdGF0aWMiLCAibm9kZVByb3ZpZGVyIiwgInJlcXVpcmVfaHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAiY29yZV8xIiwgInV0aWxfbWlkZGxld2FyZV8xIiwgImRlZmF1bHRTU09IdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlciIsICJjb25maWciLCAiY29udGV4dCIsICJpbnB1dCIsICJjcmVhdGVBd3NBdXRoU2lndjRIdHRwQXV0aE9wdGlvbiIsICJhdXRoUGFyYW1ldGVycyIsICJjcmVhdGVTbWl0aHlBcGlOb0F1dGhIdHRwQXV0aE9wdGlvbiIsICJkZWZhdWx0U1NPSHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJvcHRpb25zIiwgInJlc29sdmVIdHRwQXV0aFNjaGVtZUNvbmZpZyIsICJjb25maWdfMCIsICJyZXF1aXJlX3BhY2thZ2UiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJyZXF1aXJlX2Rpc3RfY2pzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJ1dGlsRW5kcG9pbnRzIiwgInVybFBhcnNlciIsICJpc1ZpcnR1YWxIb3N0YWJsZVMzQnVja2V0IiwgInZhbHVlIiwgImFsbG93U3ViRG9tYWlucyIsICJsYWJlbCIsICJBUk5fREVMSU1JVEVSIiwgIlJFU09VUkNFX0RFTElNSVRFUiIsICJwYXJzZUFybiIsICJzZWdtZW50cyIsICJhcm4iLCAicGFydGl0aW9uIiwgInNlcnZpY2UiLCAicmVnaW9uIiwgImFjY291bnRJZCIsICJyZXNvdXJjZVBhdGgiLCAicmVzb3VyY2VJZCIsICJyZXNvdXJjZSIsICJwYXJ0aXRpb25zIiwgInZlcnNpb24iLCAicGFydGl0aW9uc0luZm8iLCAic2VsZWN0ZWRQYXJ0aXRpb25zSW5mbyIsICJzZWxlY3RlZFVzZXJBZ2VudFByZWZpeCIsICJyZWdpb25zIiwgIm91dHB1dHMiLCAicmVnaW9uRGF0YSIsICJyZWdpb25SZWdleCIsICJERUZBVUxUX1BBUlRJVElPTiIsICJzZXRQYXJ0aXRpb25JbmZvIiwgInVzZXJBZ2VudFByZWZpeCIsICJ1c2VEZWZhdWx0UGFydGl0aW9uSW5mbyIsICJnZXRVc2VyQWdlbnRQcmVmaXgiLCAiYXdzRW5kcG9pbnRGdW5jdGlvbnMiLCAicmVzb2x2ZURlZmF1bHRBd3NSZWdpb25hbEVuZHBvaW50c0NvbmZpZyIsICJpbnB1dCIsICJlbmRwb2ludCIsICJ0b0VuZHBvaW50VjEiLCAicmVxdWlyZV9ydWxlc2V0IiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJ1IiwgInYiLCAidyIsICJ4IiwgImEiLCAiYiIsICJjIiwgImQiLCAiZSIsICJmIiwgImciLCAiaCIsICJpIiwgImoiLCAiayIsICJsIiwgIm0iLCAibiIsICJvIiwgInAiLCAicSIsICJyIiwgInMiLCAidCIsICJfZGF0YSIsICJyZXF1aXJlX2VuZHBvaW50UmVzb2x2ZXIiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgInV0aWxfZW5kcG9pbnRzXzEiLCAidXRpbF9lbmRwb2ludHNfMiIsICJydWxlc2V0XzEiLCAiY2FjaGUiLCAiZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIiLCAiZW5kcG9pbnRQYXJhbXMiLCAiY29udGV4dCIsICJyZXF1aXJlX1NTT1NlcnZpY2VFeGNlcHRpb24iLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgInNtaXRoeV9jbGllbnRfMSIsICJTU09TZXJ2aWNlRXhjZXB0aW9uIiwgIl9TU09TZXJ2aWNlRXhjZXB0aW9uIiwgIm9wdGlvbnMiLCAicmVxdWlyZV9lcnJvcnMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgIlNTT1NlcnZpY2VFeGNlcHRpb25fMSIsICJJbnZhbGlkUmVxdWVzdEV4Y2VwdGlvbiIsICJfSW52YWxpZFJlcXVlc3RFeGNlcHRpb24iLCAib3B0cyIsICJSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uIiwgIl9SZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uIiwgIlRvb01hbnlSZXF1ZXN0c0V4Y2VwdGlvbiIsICJfVG9vTWFueVJlcXVlc3RzRXhjZXB0aW9uIiwgIlVuYXV0aG9yaXplZEV4Y2VwdGlvbiIsICJfVW5hdXRob3JpemVkRXhjZXB0aW9uIiwgInJlcXVpcmVfc2NoZW1hc18wIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJfQUkiLCAiX0FMVCIsICJfQVRUIiwgIl9HUkMiLCAiX0dSQ1IiLCAiX0dSQ1JlIiwgIl9JUkUiLCAiX0wiLCAiX0xBIiwgIl9MQVIiLCAiX0xBUlIiLCAiX0xBUlJpIiwgIl9MQVJpIiwgIl9MQVJpcyIsICJfTFIiLCAiX1JDIiwgIl9SSSIsICJfUkxUIiwgIl9STkZFIiwgIl9TQUtUIiwgIl9TVFQiLCAiX1RNUkUiLCAiX1VFIiwgIl9hSSIsICJfYUtJIiwgIl9hTCIsICJfYU4iLCAiX2FUIiwgIl9haSIsICJfYyIsICJfZSIsICJfZUEiLCAiX2V4IiwgIl9oIiwgIl9oRSIsICJfaEgiLCAiX2hRIiwgIl9tIiwgIl9tUiIsICJfbXIiLCAiX25UIiwgIl9udCIsICJfckMiLCAiX3JMIiwgIl9yTiIsICJfcm4iLCAiX3MiLCAiX3NBSyIsICJfc1QiLCAiX3hhc2J0IiwgIm4wIiwgInNjaGVtYV8xIiwgImVycm9yc18xIiwgIlNTT1NlcnZpY2VFeGNlcHRpb25fMSIsICJfc19yZWdpc3RyeSIsICJuMF9yZWdpc3RyeSIsICJBY2Nlc3NUb2tlblR5cGUiLCAiU2VjcmV0QWNjZXNzS2V5VHlwZSIsICJTZXNzaW9uVG9rZW5UeXBlIiwgIlJvbGVMaXN0VHlwZSIsICJBY2NvdW50TGlzdFR5cGUiLCAiX19Vbml0IiwgInJlcXVpcmVfcnVudGltZUNvbmZpZ19zaGFyZWQiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgImNvcmVfMSIsICJwcm90b2NvbHNfMSIsICJjb3JlXzIiLCAic21pdGh5X2NsaWVudF8xIiwgInVybF9wYXJzZXJfMSIsICJ1dGlsX2Jhc2U2NF8xIiwgInV0aWxfdXRmOF8xIiwgImh0dHBBdXRoU2NoZW1lUHJvdmlkZXJfMSIsICJlbmRwb2ludFJlc29sdmVyXzEiLCAic2NoZW1hc18wXzEiLCAiZ2V0UnVudGltZUNvbmZpZyIsICJjb25maWciLCAiaXBjIiwgInJlcXVpcmVfcnVudGltZUNvbmZpZyIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAidHNsaWJfMSIsICJwYWNrYWdlX2pzb25fMSIsICJjb3JlXzEiLCAidXRpbF91c2VyX2FnZW50X25vZGVfMSIsICJjb25maWdfcmVzb2x2ZXJfMSIsICJoYXNoX25vZGVfMSIsICJtaWRkbGV3YXJlX3JldHJ5XzEiLCAibm9kZV9jb25maWdfcHJvdmlkZXJfMSIsICJub2RlX2h0dHBfaGFuZGxlcl8xIiwgInNtaXRoeV9jbGllbnRfMSIsICJ1dGlsX2JvZHlfbGVuZ3RoX25vZGVfMSIsICJ1dGlsX2RlZmF1bHRzX21vZGVfbm9kZV8xIiwgInV0aWxfcmV0cnlfMSIsICJydW50aW1lQ29uZmlnX3NoYXJlZF8xIiwgImdldFJ1bnRpbWVDb25maWciLCAiY29uZmlnIiwgImRlZmF1bHRzTW9kZSIsICJkZWZhdWx0Q29uZmlnUHJvdmlkZXIiLCAiY2xpZW50U2hhcmVkVmFsdWVzIiwgImxvYWRlckNvbmZpZyIsICJyZXF1aXJlX2Rpc3RfY2pzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJtaWRkbGV3YXJlSG9zdEhlYWRlciIsICJtaWRkbGV3YXJlTG9nZ2VyIiwgIm1pZGRsZXdhcmVSZWN1cnNpb25EZXRlY3Rpb24iLCAibWlkZGxld2FyZVVzZXJBZ2VudCIsICJjb25maWdSZXNvbHZlciIsICJjb3JlIiwgInNjaGVtYSIsICJtaWRkbGV3YXJlQ29udGVudExlbmd0aCIsICJtaWRkbGV3YXJlRW5kcG9pbnQiLCAibWlkZGxld2FyZVJldHJ5IiwgInNtaXRoeUNsaWVudCIsICJodHRwQXV0aFNjaGVtZVByb3ZpZGVyIiwgInJ1bnRpbWVDb25maWciLCAicmVnaW9uQ29uZmlnUmVzb2x2ZXIiLCAicHJvdG9jb2xIdHRwIiwgInNjaGVtYXNfMCIsICJlcnJvcnMiLCAiU1NPU2VydmljZUV4Y2VwdGlvbiIsICJyZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzIiwgIm9wdGlvbnMiLCAiY29tbW9uUGFyYW1zIiwgImdldEh0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiIsICJfaHR0cEF1dGhTY2hlbWVzIiwgIl9odHRwQXV0aFNjaGVtZVByb3ZpZGVyIiwgIl9jcmVkZW50aWFscyIsICJodHRwQXV0aFNjaGVtZSIsICJpbmRleCIsICJzY2hlbWUiLCAiY3JlZGVudGlhbHMiLCAicmVzb2x2ZUh0dHBBdXRoUnVudGltZUNvbmZpZyIsICJjb25maWciLCAicmVzb2x2ZVJ1bnRpbWVFeHRlbnNpb25zIiwgImV4dGVuc2lvbnMiLCAiZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiIsICJleHRlbnNpb24iLCAiU1NPQ2xpZW50IiwgImNvbmZpZ3VyYXRpb24iLCAiX2NvbmZpZ18wIiwgIl9jb25maWdfMSIsICJfY29uZmlnXzIiLCAiX2NvbmZpZ18zIiwgIl9jb25maWdfNCIsICJfY29uZmlnXzUiLCAiX2NvbmZpZ182IiwgIl9jb25maWdfNyIsICJfY29uZmlnXzgiLCAiR2V0Um9sZUNyZWRlbnRpYWxzQ29tbWFuZCIsICJDb21tYW5kIiwgImNzIiwgIm8iLCAiTGlzdEFjY291bnRSb2xlc0NvbW1hbmQiLCAiTGlzdEFjY291bnRzQ29tbWFuZCIsICJMb2dvdXRDb21tYW5kIiwgInBhZ2luYXRlTGlzdEFjY291bnRSb2xlcyIsICJwYWdpbmF0ZUxpc3RBY2NvdW50cyIsICJjb21tYW5kcyIsICJwYWdpbmF0b3JzIiwgIlNTTyIsICJrIiwgInJlcXVpcmVfbG9hZFNzb19CdzdWU3ZsTyIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAiY2xpZW50U3NvIiwgInJlcXVpcmVfZGlzdF9janMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgInByb3BlcnR5UHJvdmlkZXIiLCAic2hhcmVkSW5pRmlsZUxvYWRlciIsICJjbGllbnQiLCAidG9rZW5Qcm92aWRlcnMiLCAiaXNTc29Qcm9maWxlIiwgImFyZyIsICJTSE9VTERfRkFJTF9DUkVERU5USUFMX0NIQUlOIiwgInJlc29sdmVTU09DcmVkZW50aWFscyIsICJzc29TdGFydFVybCIsICJzc29TZXNzaW9uIiwgInNzb0FjY291bnRJZCIsICJzc29SZWdpb24iLCAic3NvUm9sZU5hbWUiLCAic3NvQ2xpZW50IiwgImNsaWVudENvbmZpZyIsICJwYXJlbnRDbGllbnRDb25maWciLCAiY2FsbGVyQ2xpZW50Q29uZmlnIiwgInByb2ZpbGUiLCAiZmlsZXBhdGgiLCAiY29uZmlnRmlsZXBhdGgiLCAiaWdub3JlQ2FjaGUiLCAibG9nZ2VyIiwgInRva2VuIiwgInJlZnJlc2hNZXNzYWdlIiwgIl90b2tlbiIsICJlIiwgImFjY2Vzc1Rva2VuIiwgIlNTT0NsaWVudCIsICJHZXRSb2xlQ3JlZGVudGlhbHNDb21tYW5kIiwgInNzbyIsICJzc29SZXNwIiwgImFjY2Vzc0tleUlkIiwgInNlY3JldEFjY2Vzc0tleSIsICJzZXNzaW9uVG9rZW4iLCAiZXhwaXJhdGlvbiIsICJjcmVkZW50aWFsU2NvcGUiLCAiYWNjb3VudElkIiwgImNyZWRlbnRpYWxzIiwgInZhbGlkYXRlU3NvUHJvZmlsZSIsICJzc29fc3RhcnRfdXJsIiwgInNzb19hY2NvdW50X2lkIiwgInNzb19yZWdpb24iLCAic3NvX3JvbGVfbmFtZSIsICJmcm9tU1NPIiwgImluaXQiLCAicHJvZmlsZU5hbWUiLCAic2Vzc2lvbiIsICJjb25mbGljdE1zZyIsICJzc29fc2Vzc2lvbiIsICJjcmVhdGVBd3NBdXRoU2lndjRIdHRwQXV0aE9wdGlvbiIsICJhdXRoUGFyYW1ldGVycyIsICJjb25maWciLCAiY29udGV4dCIsICJjcmVhdGVTbWl0aHlBcGlOb0F1dGhIdHRwQXV0aE9wdGlvbiIsICJpbXBvcnRfdXRpbF9taWRkbGV3YXJlIiwgImRlZmF1bHRTaWduaW5IdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlciIsICJkZWZhdWx0U2lnbmluSHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJyZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWciLCAiaW5pdF9odHRwQXV0aFNjaGVtZVByb3ZpZGVyIiwgIl9fZXNtTWluIiwgImluaXRfZGlzdF9lcyIsICJpbnB1dCIsICJvcHRpb25zIiwgImNvbmZpZ18wIiwgInJlc29sdmVBd3NTZGtTaWdWNENvbmZpZyIsICJyZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzIiwgImNvbW1vblBhcmFtcyIsICJpbml0X0VuZHBvaW50UGFyYW1ldGVycyIsICJfX2VzbU1pbiIsICJvcHRpb25zIiwgInUiLCAidiIsICJ3IiwgIngiLCAiYiIsICJjIiwgImQiLCAiZSIsICJmIiwgImciLCAiaCIsICJpIiwgImoiLCAiayIsICJsIiwgIm0iLCAibiIsICJvIiwgInAiLCAicSIsICJyIiwgInMiLCAidCIsICJfZGF0YSIsICJydWxlU2V0IiwgImluaXRfcnVsZXNldCIsICJfX2VzbU1pbiIsICJpbXBvcnRfdXRpbF9lbmRwb2ludHMiLCAiY2FjaGUiLCAiZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIiLCAiaW5pdF9lbmRwb2ludFJlc29sdmVyIiwgIl9fZXNtTWluIiwgImluaXRfcnVsZXNldCIsICJlbmRwb2ludFBhcmFtcyIsICJjb250ZXh0IiwgInJ1bGVTZXQiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAiU2lnbmluU2VydmljZUV4Y2VwdGlvbiIsICJpbml0X1NpZ25pblNlcnZpY2VFeGNlcHRpb24iLCAiX19lc21NaW4iLCAiX1NpZ25pblNlcnZpY2VFeGNlcHRpb24iLCAiX19TZXJ2aWNlRXhjZXB0aW9uIiwgIm9wdGlvbnMiLCAiQWNjZXNzRGVuaWVkRXhjZXB0aW9uIiwgIkludGVybmFsU2VydmVyRXhjZXB0aW9uIiwgIlRvb01hbnlSZXF1ZXN0c0Vycm9yIiwgIlZhbGlkYXRpb25FeGNlcHRpb24iLCAiaW5pdF9lcnJvcnMiLCAiX19lc21NaW4iLCAiaW5pdF9TaWduaW5TZXJ2aWNlRXhjZXB0aW9uIiwgIl9BY2Nlc3NEZW5pZWRFeGNlcHRpb24iLCAiU2lnbmluU2VydmljZUV4Y2VwdGlvbiIsICJvcHRzIiwgIl9JbnRlcm5hbFNlcnZlckV4Y2VwdGlvbiIsICJfVG9vTWFueVJlcXVlc3RzRXJyb3IiLCAiX1ZhbGlkYXRpb25FeGNlcHRpb24iLCAiaW1wb3J0X3NjaGVtYSIsICJfQURFIiwgIl9BVCIsICJfQ09BVCIsICJfQ09BVFIiLCAiX0NPQVRSQiIsICJfQ09BVFJCciIsICJfQ09BVFJyIiwgIl9JU0UiLCAiX1JUIiwgIl9UTVJFIiwgIl9WRSIsICJfYUtJIiwgIl9hVCIsICJfYyIsICJfY0kiLCAiX2NWIiwgIl9jbyIsICJfZSIsICJfZUkiLCAiX2dUIiwgIl9oIiwgIl9oRSIsICJfaVQiLCAiX2pOIiwgIl9tIiwgIl9yVCIsICJfclUiLCAiX3MiLCAiX3NBSyIsICJfc1QiLCAiX3NlIiwgIl90SSIsICJfdE8iLCAiX3RUIiwgIm4wIiwgIl9zX3JlZ2lzdHJ5IiwgIlNpZ25pblNlcnZpY2VFeGNlcHRpb24kIiwgIm4wX3JlZ2lzdHJ5IiwgIkFjY2Vzc0RlbmllZEV4Y2VwdGlvbiQiLCAiSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb24kIiwgIlRvb01hbnlSZXF1ZXN0c0Vycm9yJCIsICJWYWxpZGF0aW9uRXhjZXB0aW9uJCIsICJlcnJvclR5cGVSZWdpc3RyaWVzIiwgIlJlZnJlc2hUb2tlbiIsICJBY2Nlc3NUb2tlbiQiLCAiQ3JlYXRlT0F1dGgyVG9rZW5SZXF1ZXN0JCIsICJDcmVhdGVPQXV0aDJUb2tlblJlcXVlc3RCb2R5JCIsICJDcmVhdGVPQXV0aDJUb2tlblJlc3BvbnNlJCIsICJDcmVhdGVPQXV0aDJUb2tlblJlc3BvbnNlQm9keSQiLCAiQ3JlYXRlT0F1dGgyVG9rZW4kIiwgImluaXRfc2NoZW1hc18wIiwgIl9fZXNtTWluIiwgImluaXRfZXJyb3JzIiwgImluaXRfU2lnbmluU2VydmljZUV4Y2VwdGlvbiIsICJTaWduaW5TZXJ2aWNlRXhjZXB0aW9uIiwgIkFjY2Vzc0RlbmllZEV4Y2VwdGlvbiIsICJJbnRlcm5hbFNlcnZlckV4Y2VwdGlvbiIsICJUb29NYW55UmVxdWVzdHNFcnJvciIsICJWYWxpZGF0aW9uRXhjZXB0aW9uIiwgImltcG9ydF9jb3JlIiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgImltcG9ydF91cmxfcGFyc2VyIiwgImltcG9ydF91dGlsX2Jhc2U2NCIsICJpbXBvcnRfdXRpbF91dGY4IiwgImdldFJ1bnRpbWVDb25maWciLCAiaW5pdF9ydW50aW1lQ29uZmlnX3NoYXJlZCIsICJfX2VzbU1pbiIsICJpbml0X2Rpc3RfZXMiLCAiaW5pdF9wcm90b2NvbHMiLCAiaW5pdF9odHRwQXV0aFNjaGVtZVByb3ZpZGVyIiwgImluaXRfZW5kcG9pbnRSZXNvbHZlciIsICJpbml0X3NjaGVtYXNfMCIsICJjb25maWciLCAiZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIiLCAiZGVmYXVsdFNpZ25pbkh0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAiaXBjIiwgIkF3c1Nka1NpZ1Y0U2lnbmVyIiwgIkF3c1Jlc3RKc29uUHJvdG9jb2wiLCAiZXJyb3JUeXBlUmVnaXN0cmllcyIsICJpbXBvcnRfdXRpbF91c2VyX2FnZW50X25vZGUiLCAiaW1wb3J0X2NvbmZpZ19yZXNvbHZlciIsICJpbXBvcnRfaGFzaF9ub2RlIiwgImltcG9ydF9taWRkbGV3YXJlX3JldHJ5IiwgImltcG9ydF9ub2RlX2NvbmZpZ19wcm92aWRlciIsICJpbXBvcnRfbm9kZV9odHRwX2hhbmRsZXIiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAiaW1wb3J0X3V0aWxfYm9keV9sZW5ndGhfbm9kZSIsICJpbXBvcnRfdXRpbF9kZWZhdWx0c19tb2RlX25vZGUiLCAiaW1wb3J0X3V0aWxfcmV0cnkiLCAiZ2V0UnVudGltZUNvbmZpZyIsICJpbml0X3J1bnRpbWVDb25maWciLCAiX19lc21NaW4iLCAiaW5pdF9wYWNrYWdlIiwgImluaXRfZGlzdF9lcyIsICJpbml0X3J1bnRpbWVDb25maWdfc2hhcmVkIiwgImNvbmZpZyIsICJkZWZhdWx0c01vZGUiLCAiZGVmYXVsdENvbmZpZ1Byb3ZpZGVyIiwgImNsaWVudFNoYXJlZFZhbHVlcyIsICJlbWl0V2FybmluZ0lmVW5zdXBwb3J0ZWRWZXJzaW9uIiwgImxvYWRlckNvbmZpZyIsICJsb2FkTm9kZUNvbmZpZyIsICJOT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfT1BUSU9OUyIsICJwYWNrYWdlX2RlZmF1bHQiLCAiUmVxdWVzdEhhbmRsZXIiLCAiZ2V0SHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uIiwgInJlc29sdmVIdHRwQXV0aFJ1bnRpbWVDb25maWciLCAiaW5pdF9odHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24iLCAiX19lc21NaW4iLCAicnVudGltZUNvbmZpZyIsICJfaHR0cEF1dGhTY2hlbWVzIiwgIl9odHRwQXV0aFNjaGVtZVByb3ZpZGVyIiwgIl9jcmVkZW50aWFscyIsICJodHRwQXV0aFNjaGVtZSIsICJpbmRleCIsICJzY2hlbWUiLCAiaHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJjcmVkZW50aWFscyIsICJjb25maWciLCAiaW1wb3J0X3JlZ2lvbl9jb25maWdfcmVzb2x2ZXIiLCAiaW1wb3J0X3Byb3RvY29sX2h0dHAiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAicmVzb2x2ZVJ1bnRpbWVFeHRlbnNpb25zIiwgImluaXRfcnVudGltZUV4dGVuc2lvbnMiLCAiX19lc21NaW4iLCAiaW5pdF9odHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24iLCAicnVudGltZUNvbmZpZyIsICJleHRlbnNpb25zIiwgImV4dGVuc2lvbkNvbmZpZ3VyYXRpb24iLCAiZ2V0SHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uIiwgImV4dGVuc2lvbiIsICJyZXNvbHZlSHR0cEF1dGhSdW50aW1lQ29uZmlnIiwgImltcG9ydF9taWRkbGV3YXJlX2hvc3RfaGVhZGVyIiwgImltcG9ydF9taWRkbGV3YXJlX2xvZ2dlciIsICJpbXBvcnRfbWlkZGxld2FyZV9yZWN1cnNpb25fZGV0ZWN0aW9uIiwgImltcG9ydF9taWRkbGV3YXJlX3VzZXJfYWdlbnQiLCAiaW1wb3J0X2NvbmZpZ19yZXNvbHZlciIsICJpbXBvcnRfY29yZSIsICJpbXBvcnRfc2NoZW1hIiwgImltcG9ydF9taWRkbGV3YXJlX2NvbnRlbnRfbGVuZ3RoIiwgImltcG9ydF9taWRkbGV3YXJlX2VuZHBvaW50IiwgImltcG9ydF9taWRkbGV3YXJlX3JldHJ5IiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgIlNpZ25pbkNsaWVudCIsICJpbml0X1NpZ25pbkNsaWVudCIsICJfX2VzbU1pbiIsICJpbml0X2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAiaW5pdF9FbmRwb2ludFBhcmFtZXRlcnMiLCAiaW5pdF9ydW50aW1lQ29uZmlnIiwgImluaXRfcnVudGltZUV4dGVuc2lvbnMiLCAiX19DbGllbnQiLCAiY29uZmlndXJhdGlvbiIsICJfY29uZmlnXzAiLCAiZ2V0UnVudGltZUNvbmZpZyIsICJfY29uZmlnXzEiLCAicmVzb2x2ZUNsaWVudEVuZHBvaW50UGFyYW1ldGVycyIsICJfY29uZmlnXzIiLCAiX2NvbmZpZ18zIiwgIl9jb25maWdfNCIsICJfY29uZmlnXzUiLCAiX2NvbmZpZ182IiwgIl9jb25maWdfNyIsICJyZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWciLCAiX2NvbmZpZ184IiwgInJlc29sdmVSdW50aW1lRXh0ZW5zaW9ucyIsICJkZWZhdWx0U2lnbmluSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIiLCAiY29uZmlnIiwgImltcG9ydF9taWRkbGV3YXJlX2VuZHBvaW50IiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgIkNyZWF0ZU9BdXRoMlRva2VuQ29tbWFuZCIsICJpbml0X0NyZWF0ZU9BdXRoMlRva2VuQ29tbWFuZCIsICJfX2VzbU1pbiIsICJpbml0X0VuZHBvaW50UGFyYW1ldGVycyIsICJpbml0X3NjaGVtYXNfMCIsICIkQ29tbWFuZCIsICJjb21tb25QYXJhbXMiLCAiQ29tbWFuZCIsICJjcyIsICJjb25maWciLCAibyIsICJDcmVhdGVPQXV0aDJUb2tlbiQiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAiY29tbWFuZHMiLCAiU2lnbmluIiwgImluaXRfU2lnbmluIiwgIl9fZXNtTWluIiwgImluaXRfQ3JlYXRlT0F1dGgyVG9rZW5Db21tYW5kIiwgImluaXRfU2lnbmluQ2xpZW50IiwgIkNyZWF0ZU9BdXRoMlRva2VuQ29tbWFuZCIsICJTaWduaW5DbGllbnQiLCAiaW5pdF9jb21tYW5kcyIsICJfX2VzbU1pbiIsICJpbml0X0NyZWF0ZU9BdXRoMlRva2VuQ29tbWFuZCIsICJPQXV0aDJFcnJvckNvZGUiLCAiaW5pdF9lbnVtcyIsICJfX2VzbU1pbiIsICJpbml0X21vZGVsc18wIiwgIl9fZXNtTWluIiwgInNpZ25pbl9leHBvcnRzIiwgIl9fZXhwb3J0IiwgIiRDb21tYW5kIiwgIkFjY2Vzc0RlbmllZEV4Y2VwdGlvbiIsICJBY2Nlc3NEZW5pZWRFeGNlcHRpb24kIiwgIkFjY2Vzc1Rva2VuJCIsICJDcmVhdGVPQXV0aDJUb2tlbiQiLCAiQ3JlYXRlT0F1dGgyVG9rZW5Db21tYW5kIiwgIkNyZWF0ZU9BdXRoMlRva2VuUmVxdWVzdCQiLCAiQ3JlYXRlT0F1dGgyVG9rZW5SZXF1ZXN0Qm9keSQiLCAiQ3JlYXRlT0F1dGgyVG9rZW5SZXNwb25zZSQiLCAiQ3JlYXRlT0F1dGgyVG9rZW5SZXNwb25zZUJvZHkkIiwgIkludGVybmFsU2VydmVyRXhjZXB0aW9uIiwgIkludGVybmFsU2VydmVyRXhjZXB0aW9uJCIsICJPQXV0aDJFcnJvckNvZGUiLCAiU2lnbmluIiwgIlNpZ25pbkNsaWVudCIsICJTaWduaW5TZXJ2aWNlRXhjZXB0aW9uIiwgIlNpZ25pblNlcnZpY2VFeGNlcHRpb24kIiwgIlRvb01hbnlSZXF1ZXN0c0Vycm9yIiwgIlRvb01hbnlSZXF1ZXN0c0Vycm9yJCIsICJWYWxpZGF0aW9uRXhjZXB0aW9uIiwgIlZhbGlkYXRpb25FeGNlcHRpb24kIiwgIl9fQ2xpZW50IiwgImVycm9yVHlwZVJlZ2lzdHJpZXMiLCAiaW5pdF9zaWduaW4iLCAiX19lc21NaW4iLCAiaW5pdF9TaWduaW5DbGllbnQiLCAiaW5pdF9TaWduaW4iLCAiaW5pdF9jb21tYW5kcyIsICJpbml0X3NjaGVtYXNfMCIsICJpbml0X2VudW1zIiwgImluaXRfZXJyb3JzIiwgImluaXRfbW9kZWxzXzAiLCAiaW5pdF9TaWduaW5TZXJ2aWNlRXhjZXB0aW9uIiwgInJlcXVpcmVfZGlzdF9janMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgImNsaWVudCIsICJwcm9wZXJ0eVByb3ZpZGVyIiwgInNoYXJlZEluaUZpbGVMb2FkZXIiLCAicHJvdG9jb2xIdHRwIiwgIm5vZGVfY3J5cHRvIiwgIm5vZGVfZnMiLCAibm9kZV9vcyIsICJub2RlX3BhdGgiLCAiTG9naW5DcmVkZW50aWFsc0ZldGNoZXIiLCAiX0xvZ2luQ3JlZGVudGlhbHNGZXRjaGVyIiwgInByb2ZpbGVEYXRhIiwgImluaXQiLCAiY2FsbGVyQ2xpZW50Q29uZmlnIiwgInRva2VuIiwgImFjY2Vzc1Rva2VuIiwgIm5vdyIsICJTaWduaW5DbGllbnQiLCAiQ3JlYXRlT0F1dGgyVG9rZW5Db21tYW5kIiwgImxvZ2dlciIsICJ1c2VyQWdlbnRBcHBJZCIsICJyZXF1ZXN0SGFuZGxlciIsICJyZWdpb24iLCAiY29tbWFuZElucHV0IiwgInJlc3BvbnNlIiwgImFjY2Vzc0tleUlkIiwgInNlY3JldEFjY2Vzc0tleSIsICJzZXNzaW9uVG9rZW4iLCAicmVmcmVzaFRva2VuIiwgImV4cGlyZXNJbiIsICJleHBpcmVzSW5NcyIsICJleHBpcmF0aW9uIiwgInVwZGF0ZWRUb2tlbiIsICJuZXdBY2Nlc3NUb2tlbiIsICJlcnJvciIsICJlcnJvclR5cGUiLCAibWVzc2FnZSIsICJ0b2tlbkZpbGVQYXRoIiwgInRva2VuRGF0YSIsICJtaXNzaW5nRmllbGRzIiwgImsiLCAiZGlyZWN0b3J5IiwgImxvZ2luU2Vzc2lvbkJ5dGVzIiwgImxvZ2luU2Vzc2lvblNoYTI1NiIsICJkZXJTaWduYXR1cmUiLCAib2Zmc2V0IiwgInJMZW5ndGgiLCAiciIsICJzTGVuZ3RoIiwgInMiLCAiclBhZGRlZCIsICJzUGFkZGVkIiwgIm1pZGRsZXdhcmVTdGFjayIsICJuZXh0IiwgImFyZ3MiLCAicmVxdWVzdCIsICJhY3R1YWxFbmRwb2ludCIsICJkcG9wIiwgIm1ldGhvZCIsICJlbmRwb2ludCIsICJwcml2YXRlS2V5IiwgInB1YmxpY0RlciIsICJwb2ludFN0YXJ0IiwgImkiLCAieCIsICJ5IiwgImhlYWRlciIsICJwYXlsb2FkIiwgImhlYWRlckI2NCIsICJwYXlsb2FkQjY0IiwgImFzbjFTaWduYXR1cmUiLCAic2lnbmF0dXJlQjY0IiwgImZyb21Mb2dpbkNyZWRlbnRpYWxzIiwgInByb2ZpbGVzIiwgInByb2ZpbGVOYW1lIiwgInByb2ZpbGUiLCAiY3JlZGVudGlhbHMiLCAiY3JlYXRlQXdzQXV0aFNpZ3Y0SHR0cEF1dGhPcHRpb24iLCAiYXV0aFBhcmFtZXRlcnMiLCAiY29uZmlnIiwgImNvbnRleHQiLCAiY3JlYXRlU21pdGh5QXBpTm9BdXRoSHR0cEF1dGhPcHRpb24iLCAiaW1wb3J0X3V0aWxfbWlkZGxld2FyZSIsICJkZWZhdWx0U1RTSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIiLCAiZGVmYXVsdFNUU0h0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAicmVzb2x2ZVN0c0F1dGhDb25maWciLCAicmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnIiwgImluaXRfaHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJfX2VzbU1pbiIsICJpbml0X2Rpc3RfZXMiLCAiaW5pdF9TVFNDbGllbnQiLCAiaW5wdXQiLCAib3B0aW9ucyIsICJTVFNDbGllbnQiLCAiY29uZmlnXzAiLCAiY29uZmlnXzEiLCAicmVzb2x2ZUF3c1Nka1NpZ1Y0Q29uZmlnIiwgInJlc29sdmVDbGllbnRFbmRwb2ludFBhcmFtZXRlcnMiLCAiY29tbW9uUGFyYW1zIiwgImluaXRfRW5kcG9pbnRQYXJhbWV0ZXJzIiwgIl9fZXNtTWluIiwgIm9wdGlvbnMiLCAiRiIsICJHIiwgIkgiLCAiSSIsICJKIiwgImMiLCAiZCIsICJlIiwgImYiLCAiZyIsICJoIiwgImkiLCAiaiIsICJrIiwgImwiLCAibSIsICJuIiwgIm8iLCAicCIsICJxIiwgInIiLCAicyIsICJ0IiwgInUiLCAidiIsICJ3IiwgIngiLCAieSIsICJ6IiwgIkEiLCAiQiIsICJDIiwgIkQiLCAiRSIsICJfZGF0YSIsICJydWxlU2V0IiwgImluaXRfcnVsZXNldCIsICJfX2VzbU1pbiIsICJpbXBvcnRfdXRpbF9lbmRwb2ludHMiLCAiY2FjaGUiLCAiZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIiLCAiaW5pdF9lbmRwb2ludFJlc29sdmVyIiwgIl9fZXNtTWluIiwgImluaXRfcnVsZXNldCIsICJlbmRwb2ludFBhcmFtcyIsICJjb250ZXh0IiwgInJ1bGVTZXQiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAiU1RTU2VydmljZUV4Y2VwdGlvbiIsICJpbml0X1NUU1NlcnZpY2VFeGNlcHRpb24iLCAiX19lc21NaW4iLCAiX1NUU1NlcnZpY2VFeGNlcHRpb24iLCAiX19TZXJ2aWNlRXhjZXB0aW9uIiwgIm9wdGlvbnMiLCAiRXhwaXJlZFRva2VuRXhjZXB0aW9uIiwgIk1hbGZvcm1lZFBvbGljeURvY3VtZW50RXhjZXB0aW9uIiwgIlBhY2tlZFBvbGljeVRvb0xhcmdlRXhjZXB0aW9uIiwgIlJlZ2lvbkRpc2FibGVkRXhjZXB0aW9uIiwgIklEUFJlamVjdGVkQ2xhaW1FeGNlcHRpb24iLCAiSW52YWxpZElkZW50aXR5VG9rZW5FeGNlcHRpb24iLCAiSURQQ29tbXVuaWNhdGlvbkVycm9yRXhjZXB0aW9uIiwgImluaXRfZXJyb3JzIiwgIl9fZXNtTWluIiwgImluaXRfU1RTU2VydmljZUV4Y2VwdGlvbiIsICJfRXhwaXJlZFRva2VuRXhjZXB0aW9uIiwgIlNUU1NlcnZpY2VFeGNlcHRpb24iLCAib3B0cyIsICJfTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFeGNlcHRpb24iLCAiX1BhY2tlZFBvbGljeVRvb0xhcmdlRXhjZXB0aW9uIiwgIl9SZWdpb25EaXNhYmxlZEV4Y2VwdGlvbiIsICJfSURQUmVqZWN0ZWRDbGFpbUV4Y2VwdGlvbiIsICJfSW52YWxpZElkZW50aXR5VG9rZW5FeGNlcHRpb24iLCAiX0lEUENvbW11bmljYXRpb25FcnJvckV4Y2VwdGlvbiIsICJpbXBvcnRfc2NoZW1hIiwgIl9BIiwgIl9BS0kiLCAiX0FSIiwgIl9BUkkiLCAiX0FSUiIsICJfQVJScyIsICJfQVJVIiwgIl9BUldXSSIsICJfQVJXV0lSIiwgIl9BUldXSVJzIiwgIl9BdSIsICJfQyIsICJfQ0EiLCAiX0RTIiwgIl9FIiwgIl9FSSIsICJfRVRFIiwgIl9JRFBDRUUiLCAiX0lEUFJDRSIsICJfSUlURSIsICJfSyIsICJfTVBERSIsICJfUCIsICJfUEEiLCAiX1BBciIsICJfUEMiLCAiX1BDTFQiLCAiX1BDciIsICJfUERUIiwgIl9QSSIsICJfUFBTIiwgIl9QUFRMRSIsICJfUHIiLCAiX1JBIiwgIl9SREUiLCAiX1JTTiIsICJfU0FLIiwgIl9TRldJVCIsICJfU0kiLCAiX1NOIiwgIl9TVCIsICJfVCIsICJfVEMiLCAiX1RUSyIsICJfVGEiLCAiX1YiLCAiX1dJVCIsICJfYSIsICJfYUtTVCIsICJfYVFFIiwgIl9jIiwgIl9jVFQiLCAiX2UiLCAiX2hFIiwgIl9tIiwgIl9wRExUIiwgIl9zIiwgIl90TFQiLCAibjAiLCAiX3NfcmVnaXN0cnkiLCAiU1RTU2VydmljZUV4Y2VwdGlvbiQiLCAibjBfcmVnaXN0cnkiLCAiRXhwaXJlZFRva2VuRXhjZXB0aW9uJCIsICJJRFBDb21tdW5pY2F0aW9uRXJyb3JFeGNlcHRpb24kIiwgIklEUFJlamVjdGVkQ2xhaW1FeGNlcHRpb24kIiwgIkludmFsaWRJZGVudGl0eVRva2VuRXhjZXB0aW9uJCIsICJNYWxmb3JtZWRQb2xpY3lEb2N1bWVudEV4Y2VwdGlvbiQiLCAiUGFja2VkUG9saWN5VG9vTGFyZ2VFeGNlcHRpb24kIiwgIlJlZ2lvbkRpc2FibGVkRXhjZXB0aW9uJCIsICJlcnJvclR5cGVSZWdpc3RyaWVzIiwgImFjY2Vzc0tleVNlY3JldFR5cGUiLCAiY2xpZW50VG9rZW5UeXBlIiwgIkFzc3VtZWRSb2xlVXNlciQiLCAiQXNzdW1lUm9sZVJlcXVlc3QkIiwgIkFzc3VtZVJvbGVSZXNwb25zZSQiLCAiQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eVJlcXVlc3QkIiwgIkFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlSZXNwb25zZSQiLCAiQ3JlZGVudGlhbHMkIiwgIlBvbGljeURlc2NyaXB0b3JUeXBlJCIsICJQcm92aWRlZENvbnRleHQkIiwgIlRhZyQiLCAicG9saWN5RGVzY3JpcHRvckxpc3RUeXBlIiwgIlByb3ZpZGVkQ29udGV4dHNMaXN0VHlwZSIsICJ0YWdMaXN0VHlwZSIsICJBc3N1bWVSb2xlJCIsICJBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5JCIsICJpbml0X3NjaGVtYXNfMCIsICJfX2VzbU1pbiIsICJpbml0X2Vycm9ycyIsICJpbml0X1NUU1NlcnZpY2VFeGNlcHRpb24iLCAiU1RTU2VydmljZUV4Y2VwdGlvbiIsICJFeHBpcmVkVG9rZW5FeGNlcHRpb24iLCAiSURQQ29tbXVuaWNhdGlvbkVycm9yRXhjZXB0aW9uIiwgIklEUFJlamVjdGVkQ2xhaW1FeGNlcHRpb24iLCAiSW52YWxpZElkZW50aXR5VG9rZW5FeGNlcHRpb24iLCAiTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFeGNlcHRpb24iLCAiUGFja2VkUG9saWN5VG9vTGFyZ2VFeGNlcHRpb24iLCAiUmVnaW9uRGlzYWJsZWRFeGNlcHRpb24iLCAiaW1wb3J0X2NvcmUiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAiaW1wb3J0X3VybF9wYXJzZXIiLCAiaW1wb3J0X3V0aWxfYmFzZTY0IiwgImltcG9ydF91dGlsX3V0ZjgiLCAiZ2V0UnVudGltZUNvbmZpZyIsICJpbml0X3J1bnRpbWVDb25maWdfc2hhcmVkIiwgIl9fZXNtTWluIiwgImluaXRfZGlzdF9lcyIsICJpbml0X3Byb3RvY29scyIsICJpbml0X2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAiaW5pdF9lbmRwb2ludFJlc29sdmVyIiwgImluaXRfc2NoZW1hc18wIiwgImNvbmZpZyIsICJkZWZhdWx0RW5kcG9pbnRSZXNvbHZlciIsICJkZWZhdWx0U1RTSHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJpcGMiLCAiQXdzU2RrU2lnVjRTaWduZXIiLCAiQXdzUXVlcnlQcm90b2NvbCIsICJlcnJvclR5cGVSZWdpc3RyaWVzIiwgImltcG9ydF91dGlsX3VzZXJfYWdlbnRfbm9kZSIsICJpbXBvcnRfY29uZmlnX3Jlc29sdmVyIiwgImltcG9ydF9jb3JlIiwgImltcG9ydF9oYXNoX25vZGUiLCAiaW1wb3J0X21pZGRsZXdhcmVfcmV0cnkiLCAiaW1wb3J0X25vZGVfY29uZmlnX3Byb3ZpZGVyIiwgImltcG9ydF9ub2RlX2h0dHBfaGFuZGxlciIsICJpbXBvcnRfc21pdGh5X2NsaWVudCIsICJpbXBvcnRfdXRpbF9ib2R5X2xlbmd0aF9ub2RlIiwgImltcG9ydF91dGlsX2RlZmF1bHRzX21vZGVfbm9kZSIsICJpbXBvcnRfdXRpbF9yZXRyeSIsICJnZXRSdW50aW1lQ29uZmlnIiwgImluaXRfcnVudGltZUNvbmZpZyIsICJfX2VzbU1pbiIsICJpbml0X3BhY2thZ2UiLCAiaW5pdF9kaXN0X2VzIiwgImluaXRfcnVudGltZUNvbmZpZ19zaGFyZWQiLCAiY29uZmlnIiwgImRlZmF1bHRzTW9kZSIsICJkZWZhdWx0Q29uZmlnUHJvdmlkZXIiLCAiY2xpZW50U2hhcmVkVmFsdWVzIiwgImVtaXRXYXJuaW5nSWZVbnN1cHBvcnRlZFZlcnNpb24iLCAibG9hZGVyQ29uZmlnIiwgImxvYWROb2RlQ29uZmlnIiwgIk5PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9PUFRJT05TIiwgInBhY2thZ2VfZGVmYXVsdCIsICJpcGMiLCAiaWRQcm9wcyIsICJBd3NTZGtTaWdWNFNpZ25lciIsICJSZXF1ZXN0SGFuZGxlciIsICJnZXRIdHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24iLCAicmVzb2x2ZUh0dHBBdXRoUnVudGltZUNvbmZpZyIsICJpbml0X2h0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiIsICJfX2VzbU1pbiIsICJydW50aW1lQ29uZmlnIiwgIl9odHRwQXV0aFNjaGVtZXMiLCAiX2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAiX2NyZWRlbnRpYWxzIiwgImh0dHBBdXRoU2NoZW1lIiwgImluZGV4IiwgInNjaGVtZSIsICJodHRwQXV0aFNjaGVtZVByb3ZpZGVyIiwgImNyZWRlbnRpYWxzIiwgImNvbmZpZyIsICJpbXBvcnRfcmVnaW9uX2NvbmZpZ19yZXNvbHZlciIsICJpbXBvcnRfcHJvdG9jb2xfaHR0cCIsICJpbXBvcnRfc21pdGh5X2NsaWVudCIsICJyZXNvbHZlUnVudGltZUV4dGVuc2lvbnMiLCAiaW5pdF9ydW50aW1lRXh0ZW5zaW9ucyIsICJfX2VzbU1pbiIsICJpbml0X2h0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiIsICJydW50aW1lQ29uZmlnIiwgImV4dGVuc2lvbnMiLCAiZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiIsICJnZXRIdHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24iLCAiZXh0ZW5zaW9uIiwgInJlc29sdmVIdHRwQXV0aFJ1bnRpbWVDb25maWciLCAiaW1wb3J0X21pZGRsZXdhcmVfaG9zdF9oZWFkZXIiLCAiaW1wb3J0X21pZGRsZXdhcmVfbG9nZ2VyIiwgImltcG9ydF9taWRkbGV3YXJlX3JlY3Vyc2lvbl9kZXRlY3Rpb24iLCAiaW1wb3J0X21pZGRsZXdhcmVfdXNlcl9hZ2VudCIsICJpbXBvcnRfY29uZmlnX3Jlc29sdmVyIiwgImltcG9ydF9jb3JlIiwgImltcG9ydF9zY2hlbWEiLCAiaW1wb3J0X21pZGRsZXdhcmVfY29udGVudF9sZW5ndGgiLCAiaW1wb3J0X21pZGRsZXdhcmVfZW5kcG9pbnQiLCAiaW1wb3J0X21pZGRsZXdhcmVfcmV0cnkiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAiU1RTQ2xpZW50IiwgImluaXRfU1RTQ2xpZW50IiwgIl9fZXNtTWluIiwgImluaXRfaHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJpbml0X0VuZHBvaW50UGFyYW1ldGVycyIsICJpbml0X3J1bnRpbWVDb25maWciLCAiaW5pdF9ydW50aW1lRXh0ZW5zaW9ucyIsICJfX0NsaWVudCIsICJjb25maWd1cmF0aW9uIiwgIl9jb25maWdfMCIsICJnZXRSdW50aW1lQ29uZmlnIiwgIl9jb25maWdfMSIsICJyZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzIiwgIl9jb25maWdfMiIsICJfY29uZmlnXzMiLCAiX2NvbmZpZ180IiwgIl9jb25maWdfNSIsICJfY29uZmlnXzYiLCAiX2NvbmZpZ183IiwgInJlc29sdmVIdHRwQXV0aFNjaGVtZUNvbmZpZyIsICJfY29uZmlnXzgiLCAicmVzb2x2ZVJ1bnRpbWVFeHRlbnNpb25zIiwgImRlZmF1bHRTVFNIdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlciIsICJjb25maWciLCAiaW1wb3J0X21pZGRsZXdhcmVfZW5kcG9pbnQiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAiQXNzdW1lUm9sZUNvbW1hbmQiLCAiaW5pdF9Bc3N1bWVSb2xlQ29tbWFuZCIsICJfX2VzbU1pbiIsICJpbml0X0VuZHBvaW50UGFyYW1ldGVycyIsICJpbml0X3NjaGVtYXNfMCIsICIkQ29tbWFuZCIsICJjb21tb25QYXJhbXMiLCAiQ29tbWFuZCIsICJjcyIsICJjb25maWciLCAibyIsICJBc3N1bWVSb2xlJCIsICJpbXBvcnRfbWlkZGxld2FyZV9lbmRwb2ludCIsICJpbXBvcnRfc21pdGh5X2NsaWVudCIsICJBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5Q29tbWFuZCIsICJpbml0X0Fzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlDb21tYW5kIiwgIl9fZXNtTWluIiwgImluaXRfRW5kcG9pbnRQYXJhbWV0ZXJzIiwgImluaXRfc2NoZW1hc18wIiwgIiRDb21tYW5kIiwgImNvbW1vblBhcmFtcyIsICJDb21tYW5kIiwgImNzIiwgImNvbmZpZyIsICJvIiwgIkFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHkkIiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgImNvbW1hbmRzIiwgIlNUUyIsICJpbml0X1NUUyIsICJfX2VzbU1pbiIsICJpbml0X0Fzc3VtZVJvbGVDb21tYW5kIiwgImluaXRfQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eUNvbW1hbmQiLCAiaW5pdF9TVFNDbGllbnQiLCAiQXNzdW1lUm9sZUNvbW1hbmQiLCAiQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eUNvbW1hbmQiLCAiU1RTQ2xpZW50IiwgImluaXRfY29tbWFuZHMiLCAiX19lc21NaW4iLCAiaW5pdF9Bc3N1bWVSb2xlQ29tbWFuZCIsICJpbml0X0Fzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlDb21tYW5kIiwgImluaXRfbW9kZWxzXzAiLCAiX19lc21NaW4iLCAiaW1wb3J0X3JlZ2lvbl9jb25maWdfcmVzb2x2ZXIiLCAiZ2V0QWNjb3VudElkRnJvbUFzc3VtZWRSb2xlVXNlciIsICJyZXNvbHZlUmVnaW9uIiwgImdldERlZmF1bHRSb2xlQXNzdW1lciIsICJnZXREZWZhdWx0Um9sZUFzc3VtZXJXaXRoV2ViSWRlbnRpdHkiLCAiaXNIMiIsICJpbml0X2RlZmF1bHRTdHNSb2xlQXNzdW1lcnMiLCAiX19lc21NaW4iLCAiaW5pdF9jbGllbnQiLCAiaW5pdF9Bc3N1bWVSb2xlQ29tbWFuZCIsICJpbml0X0Fzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlDb21tYW5kIiwgImFzc3VtZWRSb2xlVXNlciIsICJhcm5Db21wb25lbnRzIiwgIl9yZWdpb24iLCAiX3BhcmVudFJlZ2lvbiIsICJjcmVkZW50aWFsUHJvdmlkZXJMb2dnZXIiLCAibG9hZGVyQ29uZmlnIiwgInJlZ2lvbiIsICJwYXJlbnRSZWdpb24iLCAic3RzRGVmYXVsdFJlZ2lvbiIsICJyZXNvbHZlZFJlZ2lvbiIsICJzdHNPcHRpb25zIiwgIlNUU0NsaWVudCIsICJzdHNDbGllbnQiLCAiY2xvc3VyZVNvdXJjZUNyZWRzIiwgInNvdXJjZUNyZWRzIiwgInBhcmFtcyIsICJsb2dnZXIiLCAicHJvZmlsZSIsICJyZXF1ZXN0SGFuZGxlciIsICJ1c2VyQWdlbnRBcHBJZCIsICJpc0NvbXBhdGlibGVSZXF1ZXN0SGFuZGxlciIsICJDcmVkZW50aWFscyIsICJBc3N1bWVkUm9sZVVzZXIiLCAiQXNzdW1lUm9sZUNvbW1hbmQiLCAiYWNjb3VudElkIiwgImNyZWRlbnRpYWxzIiwgInNldENyZWRlbnRpYWxGZWF0dXJlIiwgIkFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlDb21tYW5kIiwgImdldEN1c3RvbWl6YWJsZVN0c0NsaWVudEN0b3IiLCAiZ2V0RGVmYXVsdFJvbGVBc3N1bWVyIiwgImdldERlZmF1bHRSb2xlQXNzdW1lcldpdGhXZWJJZGVudGl0eSIsICJkZWNvcmF0ZURlZmF1bHRDcmVkZW50aWFsUHJvdmlkZXIiLCAiaW5pdF9kZWZhdWx0Um9sZUFzc3VtZXJzIiwgIl9fZXNtTWluIiwgImluaXRfZGVmYXVsdFN0c1JvbGVBc3N1bWVycyIsICJpbml0X1NUU0NsaWVudCIsICJiYXNlQ3RvciIsICJjdXN0b21pemF0aW9ucyIsICJjb25maWciLCAiY3VzdG9taXphdGlvbiIsICJzdHNPcHRpb25zIiwgInN0c1BsdWdpbnMiLCAiU1RTQ2xpZW50IiwgInByb3ZpZGVyIiwgImlucHV0IiwgInN0c19leHBvcnRzIiwgIl9fZXhwb3J0IiwgIkFzc3VtZVJvbGUkIiwgIkFzc3VtZVJvbGVDb21tYW5kIiwgIkFzc3VtZVJvbGVSZXF1ZXN0JCIsICJBc3N1bWVSb2xlUmVzcG9uc2UkIiwgIkFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHkkIiwgIkFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlDb21tYW5kIiwgIkFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlSZXF1ZXN0JCIsICJBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5UmVzcG9uc2UkIiwgIkFzc3VtZWRSb2xlVXNlciQiLCAiQ3JlZGVudGlhbHMkIiwgIkV4cGlyZWRUb2tlbkV4Y2VwdGlvbiIsICJFeHBpcmVkVG9rZW5FeGNlcHRpb24kIiwgIklEUENvbW11bmljYXRpb25FcnJvckV4Y2VwdGlvbiIsICJJRFBDb21tdW5pY2F0aW9uRXJyb3JFeGNlcHRpb24kIiwgIklEUFJlamVjdGVkQ2xhaW1FeGNlcHRpb24iLCAiSURQUmVqZWN0ZWRDbGFpbUV4Y2VwdGlvbiQiLCAiSW52YWxpZElkZW50aXR5VG9rZW5FeGNlcHRpb24iLCAiSW52YWxpZElkZW50aXR5VG9rZW5FeGNlcHRpb24kIiwgIk1hbGZvcm1lZFBvbGljeURvY3VtZW50RXhjZXB0aW9uIiwgIk1hbGZvcm1lZFBvbGljeURvY3VtZW50RXhjZXB0aW9uJCIsICJQYWNrZWRQb2xpY3lUb29MYXJnZUV4Y2VwdGlvbiIsICJQYWNrZWRQb2xpY3lUb29MYXJnZUV4Y2VwdGlvbiQiLCAiUG9saWN5RGVzY3JpcHRvclR5cGUkIiwgIlByb3ZpZGVkQ29udGV4dCQiLCAiUmVnaW9uRGlzYWJsZWRFeGNlcHRpb24iLCAiUmVnaW9uRGlzYWJsZWRFeGNlcHRpb24kIiwgIlNUUyIsICJTVFNDbGllbnQiLCAiU1RTU2VydmljZUV4Y2VwdGlvbiIsICJTVFNTZXJ2aWNlRXhjZXB0aW9uJCIsICJUYWckIiwgIl9fQ2xpZW50IiwgImRlY29yYXRlRGVmYXVsdENyZWRlbnRpYWxQcm92aWRlciIsICJlcnJvclR5cGVSZWdpc3RyaWVzIiwgImdldERlZmF1bHRSb2xlQXNzdW1lciIsICJnZXREZWZhdWx0Um9sZUFzc3VtZXJXaXRoV2ViSWRlbnRpdHkiLCAiaW5pdF9zdHMiLCAiX19lc21NaW4iLCAiaW5pdF9TVFNDbGllbnQiLCAiaW5pdF9TVFMiLCAiaW5pdF9jb21tYW5kcyIsICJpbml0X3NjaGVtYXNfMCIsICJpbml0X2Vycm9ycyIsICJpbml0X21vZGVsc18wIiwgImluaXRfZGVmYXVsdFJvbGVBc3N1bWVycyIsICJpbml0X1NUU1NlcnZpY2VFeGNlcHRpb24iLCAicmVxdWlyZV9kaXN0X2NqcyIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAic2hhcmVkSW5pRmlsZUxvYWRlciIsICJwcm9wZXJ0eVByb3ZpZGVyIiwgImNoaWxkX3Byb2Nlc3MiLCAidXRpbCIsICJjbGllbnQiLCAiZ2V0VmFsaWRhdGVkUHJvY2Vzc0NyZWRlbnRpYWxzIiwgInByb2ZpbGVOYW1lIiwgImRhdGEiLCAicHJvZmlsZXMiLCAiY3VycmVudFRpbWUiLCAiYWNjb3VudElkIiwgImNyZWRlbnRpYWxzIiwgInJlc29sdmVQcm9jZXNzQ3JlZGVudGlhbHMiLCAibG9nZ2VyIiwgInByb2ZpbGUiLCAiY3JlZGVudGlhbFByb2Nlc3MiLCAiZXhlY1Byb21pc2UiLCAic3Rkb3V0IiwgImVycm9yIiwgImZyb21Qcm9jZXNzIiwgImluaXQiLCAiY2FsbGVyQ2xpZW50Q29uZmlnIiwgInJlcXVpcmVfZnJvbVdlYlRva2VuIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJfX2NyZWF0ZUJpbmRpbmciLCAibyIsICJtIiwgImsiLCAiazIiLCAiZGVzYyIsICJfX3NldE1vZHVsZURlZmF1bHQiLCAidiIsICJfX2ltcG9ydFN0YXIiLCAib3duS2V5cyIsICJhciIsICJtb2QiLCAicmVzdWx0IiwgImkiLCAiZnJvbVdlYlRva2VuIiwgImluaXQiLCAiYXdzSWRlbnRpdHlQcm9wZXJ0aWVzIiwgInJvbGVBcm4iLCAicm9sZVNlc3Npb25OYW1lIiwgIndlYklkZW50aXR5VG9rZW4iLCAicHJvdmlkZXJJZCIsICJwb2xpY3lBcm5zIiwgInBvbGljeSIsICJkdXJhdGlvblNlY29uZHMiLCAicm9sZUFzc3VtZXJXaXRoV2ViSWRlbnRpdHkiLCAiZ2V0RGVmYXVsdFJvbGVBc3N1bWVyV2l0aFdlYklkZW50aXR5IiwgInJlcXVpcmVfZnJvbVRva2VuRmlsZSIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAiY2xpZW50XzEiLCAicHJvcGVydHlfcHJvdmlkZXJfMSIsICJzaGFyZWRfaW5pX2ZpbGVfbG9hZGVyXzEiLCAiZnNfMSIsICJmcm9tV2ViVG9rZW5fMSIsICJFTlZfVE9LRU5fRklMRSIsICJFTlZfUk9MRV9BUk4iLCAiRU5WX1JPTEVfU0VTU0lPTl9OQU1FIiwgImZyb21Ub2tlbkZpbGUiLCAiaW5pdCIsICJhd3NJZGVudGl0eVByb3BlcnRpZXMiLCAid2ViSWRlbnRpdHlUb2tlbkZpbGUiLCAicm9sZUFybiIsICJyb2xlU2Vzc2lvbk5hbWUiLCAiY3JlZGVudGlhbHMiLCAicmVxdWlyZV9kaXN0X2NqcyIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAiZnJvbVRva2VuRmlsZSIsICJmcm9tV2ViVG9rZW4iLCAiayIsICJyZXF1aXJlX2Rpc3RfY2pzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJzaGFyZWRJbmlGaWxlTG9hZGVyIiwgInByb3BlcnR5UHJvdmlkZXIiLCAiY2xpZW50IiwgImNyZWRlbnRpYWxQcm92aWRlckxvZ2luIiwgInJlc29sdmVDcmVkZW50aWFsU291cmNlIiwgImNyZWRlbnRpYWxTb3VyY2UiLCAicHJvZmlsZU5hbWUiLCAibG9nZ2VyIiwgInNvdXJjZVByb3ZpZGVyc01hcCIsICJvcHRpb25zIiwgImZyb21IdHRwIiwgImZyb21Db250YWluZXJNZXRhZGF0YSIsICJzZXROYW1lZFByb3ZpZGVyIiwgImZyb21JbnN0YW5jZU1ldGFkYXRhIiwgImZyb21FbnYiLCAiY3JlZHMiLCAiaXNBc3N1bWVSb2xlUHJvZmlsZSIsICJhcmciLCAicHJvZmlsZSIsICJpc0Fzc3VtZVJvbGVXaXRoU291cmNlUHJvZmlsZSIsICJpc0NyZWRlbnRpYWxTb3VyY2VQcm9maWxlIiwgIndpdGhTb3VyY2VQcm9maWxlIiwgIndpdGhQcm92aWRlclByb2ZpbGUiLCAicmVzb2x2ZUFzc3VtZVJvbGVDcmVkZW50aWFscyIsICJwcm9maWxlcyIsICJjYWxsZXJDbGllbnRDb25maWciLCAidmlzaXRlZFByb2ZpbGVzIiwgInJlc29sdmVQcm9maWxlRGF0YSIsICJwcm9maWxlRGF0YSIsICJzb3VyY2VfcHJvZmlsZSIsICJyZWdpb24iLCAiZ2V0RGVmYXVsdFJvbGVBc3N1bWVyIiwgInNvdXJjZUNyZWRzUHJvdmlkZXIiLCAiaXNDcmVkZW50aWFsU291cmNlV2l0aG91dFJvbGVBcm4iLCAicGFyYW1zIiwgIm1mYV9zZXJpYWwiLCAic291cmNlQ3JlZHMiLCAic2VjdGlvbiIsICJpc0xvZ2luUHJvZmlsZSIsICJkYXRhIiwgInJlc29sdmVMb2dpbkNyZWRlbnRpYWxzIiwgImNyZWRlbnRpYWxzIiwgImlzUHJvY2Vzc1Byb2ZpbGUiLCAicmVzb2x2ZVByb2Nlc3NDcmVkZW50aWFscyIsICJmcm9tUHJvY2VzcyIsICJyZXNvbHZlU3NvQ3JlZGVudGlhbHMiLCAiZnJvbVNTTyIsICJpc1Nzb1Byb2ZpbGUiLCAiaXNTdGF0aWNDcmVkc1Byb2ZpbGUiLCAicmVzb2x2ZVN0YXRpY0NyZWRlbnRpYWxzIiwgImlzV2ViSWRlbnRpdHlQcm9maWxlIiwgInJlc29sdmVXZWJJZGVudGl0eUNyZWRlbnRpYWxzIiwgImZyb21Ub2tlbkZpbGUiLCAiaXNBc3N1bWVSb2xlUmVjdXJzaXZlQ2FsbCIsICJmcm9tSW5pIiwgImluaXQiLCAicmVxdWlyZV9kaXN0X2NqcyIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAiY3JlZGVudGlhbFByb3ZpZGVyRW52IiwgInByb3BlcnR5UHJvdmlkZXIiLCAic2hhcmVkSW5pRmlsZUxvYWRlciIsICJFTlZfSU1EU19ESVNBQkxFRCIsICJyZW1vdGVQcm92aWRlciIsICJpbml0IiwgIkVOVl9DTURTX0ZVTExfVVJJIiwgIkVOVl9DTURTX1JFTEFUSVZFX1VSSSIsICJmcm9tQ29udGFpbmVyTWV0YWRhdGEiLCAiZnJvbUluc3RhbmNlTWV0YWRhdGEiLCAiZnJvbUh0dHAiLCAibWVtb2l6ZUNoYWluIiwgInByb3ZpZGVycyIsICJ0cmVhdEFzRXhwaXJlZCIsICJjaGFpbiIsICJpbnRlcm5hbENyZWF0ZUNoYWluIiwgImFjdGl2ZUxvY2siLCAicGFzc2l2ZUxvY2siLCAiY3JlZGVudGlhbHMiLCAicHJvdmlkZXIiLCAib3B0aW9ucyIsICJhd3NJZGVudGl0eVByb3BlcnRpZXMiLCAibGFzdFByb3ZpZGVyRXJyb3IiLCAiZXJyIiwgIm11bHRpcGxlQ3JlZGVudGlhbFNvdXJjZVdhcm5pbmdFbWl0dGVkIiwgImRlZmF1bHRQcm92aWRlciIsICJzc29TdGFydFVybCIsICJzc29BY2NvdW50SWQiLCAic3NvUmVnaW9uIiwgInNzb1JvbGVOYW1lIiwgInNzb1Nlc3Npb24iLCAiZnJvbVNTTyIsICJmcm9tSW5pIiwgImZyb21Qcm9jZXNzIiwgImZyb21Ub2tlbkZpbGUiLCAiY3JlZGVudGlhbHNUcmVhdGVkQXNFeHBpcmVkIiwgImNyZWRlbnRpYWxzV2lsbE5lZWRSZWZyZXNoIiwgImltcG9ydF9zY2hlbWEiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAiUHJvdG9jb2xMaWIiLCAiaW5pdF9Qcm90b2NvbExpYiIsICJfX2VzbU1pbiIsICJxdWVyeUNvbXBhdCIsICJkZWZhdWx0Q29udGVudFR5cGUiLCAiaW5wdXRTY2hlbWEiLCAibWVtYmVycyIsICJodHRwUGF5bG9hZE1lbWJlciIsICJtIiwgIm1lZGlhVHlwZSIsICJodHRwUXVlcnkiLCAiaHR0cFF1ZXJ5UGFyYW1zIiwgImh0dHBIZWFkZXIiLCAiaHR0cExhYmVsIiwgImh0dHBQcmVmaXhIZWFkZXJzIiwgImVycm9ySWRlbnRpZmllciIsICJkZWZhdWx0TmFtZXNwYWNlIiwgInJlc3BvbnNlIiwgImRhdGFPYmplY3QiLCAibWV0YWRhdGEiLCAiZ2V0RXJyb3JTY2hlbWEiLCAibmFtZXNwYWNlIiwgImVycm9yTmFtZSIsICJlcnJvck1ldGFkYXRhIiwgInJlZ2lzdHJ5IiwgInN5bnRoZXRpYyIsICJiYXNlRXhjZXB0aW9uU2NoZW1hIiwgIkVycm9yQ3RvciIsICJleGNlcHRpb24iLCAiYWRkaXRpb25zIiwgIm1zZyIsICJlcnJvciIsICJyZXFJZCIsICJvdXRwdXQiLCAicXVlcnlFcnJvckhlYWRlciIsICJDb2RlIiwgIlR5cGUiLCAiZW50cmllcyIsICJFcnJvciIsICJrIiwgInYiLCAicXVlcnlDb21wYXRFcnJvckRhdGEiLCAiZXJyb3JEYXRhIiwgInNjaGVtYSIsICJpbXBvcnRfY2JvciIsICJpbXBvcnRfc2NoZW1hIiwgIkF3c1NtaXRoeVJwY1YyQ2JvclByb3RvY29sIiwgImluaXRfQXdzU21pdGh5UnBjVjJDYm9yUHJvdG9jb2wiLCAiX19lc21NaW4iLCAiaW5pdF9Qcm90b2NvbExpYiIsICJkZWZhdWx0TmFtZXNwYWNlIiwgImF3c1F1ZXJ5Q29tcGF0aWJsZSIsICJQcm90b2NvbExpYiIsICJvcGVyYXRpb25TY2hlbWEiLCAiaW5wdXQiLCAiY29udGV4dCIsICJyZXF1ZXN0IiwgInJlc3BvbnNlIiwgImRhdGFPYmplY3QiLCAibWV0YWRhdGEiLCAiZXJyb3JOYW1lIiwgImNvbXBhdEhlYWRlciIsICJlcnJvclNjaGVtYSIsICJlcnJvck1ldGFkYXRhIiwgIm5zIiwgIm1lc3NhZ2UiLCAiRXJyb3JDdG9yIiwgImV4Y2VwdGlvbiIsICJvdXRwdXQiLCAibmFtZSIsICJtZW1iZXIiLCAiX3RvU3RyIiwgIl90b0Jvb2wiLCAiX3RvTnVtIiwgImluaXRfY29lcmNpbmdfc2VyaWFsaXplcnMiLCAiX19lc21NaW4iLCAidmFsIiwgIndhcm5pbmciLCAibG93ZXJjYXNlIiwgIm51bSIsICJTZXJkZUNvbnRleHRDb25maWciLCAiaW5pdF9Db25maWd1cmFibGVTZXJkZUNvbnRleHQiLCAiX19lc21NaW4iLCAic2VyZGVDb250ZXh0IiwgIlVuaW9uU2VyZGUiLCAiaW5pdF9VbmlvblNlcmRlIiwgIl9fZXNtTWluIiwgImZyb20iLCAidG8iLCAiayIsICJrZXkiLCAidiIsICJqc29uUmV2aXZlciIsICJrZXkiLCAidmFsdWUiLCAiY29udGV4dCIsICJudW1lcmljU3RyaW5nIiwgImltcG9ydF9zZXJkZSIsICJpbml0X2pzb25SZXZpdmVyIiwgIl9fZXNtTWluIiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgImltcG9ydF91dGlsX3V0ZjgiLCAiY29sbGVjdEJvZHlTdHJpbmciLCAiaW5pdF9jb21tb24iLCAiX19lc21NaW4iLCAic3RyZWFtQm9keSIsICJjb250ZXh0IiwgImJvZHkiLCAicGFyc2VKc29uQm9keSIsICJwYXJzZUpzb25FcnJvckJvZHkiLCAibG9hZFJlc3RKc29uRXJyb3JDb2RlIiwgImluaXRfcGFyc2VKc29uQm9keSIsICJfX2VzbU1pbiIsICJpbml0X2NvbW1vbiIsICJzdHJlYW1Cb2R5IiwgImNvbnRleHQiLCAiY29sbGVjdEJvZHlTdHJpbmciLCAiZW5jb2RlZCIsICJlIiwgImVycm9yQm9keSIsICJ2YWx1ZSIsICJvdXRwdXQiLCAiZGF0YSIsICJmaW5kS2V5IiwgIm9iamVjdCIsICJrZXkiLCAiayIsICJzYW5pdGl6ZUVycm9yQ29kZSIsICJyYXdWYWx1ZSIsICJjbGVhblZhbHVlIiwgImhlYWRlcktleSIsICJjb2RlS2V5IiwgImltcG9ydF9wcm90b2NvbHMiLCAiaW1wb3J0X3NjaGVtYSIsICJpbXBvcnRfc2VyZGUiLCAiaW1wb3J0X3V0aWxfYmFzZTY0IiwgIkpzb25TaGFwZURlc2VyaWFsaXplciIsICJpbml0X0pzb25TaGFwZURlc2VyaWFsaXplciIsICJfX2VzbU1pbiIsICJpbml0X0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dCIsICJpbml0X1VuaW9uU2VyZGUiLCAiaW5pdF9qc29uUmV2aXZlciIsICJpbml0X3BhcnNlSnNvbkJvZHkiLCAiU2VyZGVDb250ZXh0Q29uZmlnIiwgInNldHRpbmdzIiwgInNjaGVtYSIsICJkYXRhIiwgImpzb25SZXZpdmVyIiwgInBhcnNlSnNvbkJvZHkiLCAidmFsdWUiLCAiaXNPYmplY3QiLCAibnMiLCAicmVjb3JkIiwgInVuaW9uIiwgIm91dCIsICJuYW1lTWFwIiwgImpzb25OYW1lIiwgInVuaW9uU2VyZGUiLCAiVW5pb25TZXJkZSIsICJtZW1iZXJOYW1lIiwgIm1lbWJlclNjaGVtYSIsICJmcm9tS2V5IiwgImsiLCAidiIsICJ0IiwgImxpc3RNZW1iZXIiLCAic3BhcnNlIiwgIml0ZW0iLCAibWFwTWVtYmVyIiwgIl9rIiwgIl92IiwgIm1lZGlhVHlwZSIsICJ1bnR5cGVkIiwgImltcG9ydF9zZXJkZSIsICJOVU1FUklDX0NPTlRST0xfQ0hBUiIsICJKc29uUmVwbGFjZXIiLCAiaW5pdF9qc29uUmVwbGFjZXIiLCAiX19lc21NaW4iLCAia2V5IiwgInZhbHVlIiwgInYiLCAicyIsICJqc29uIiwgImltcG9ydF9wcm90b2NvbHMiLCAiaW1wb3J0X3NjaGVtYSIsICJpbXBvcnRfc2VyZGUiLCAiaW1wb3J0X3V0aWxfYmFzZTY0IiwgIkpzb25TaGFwZVNlcmlhbGl6ZXIiLCAiaW5pdF9Kc29uU2hhcGVTZXJpYWxpemVyIiwgIl9fZXNtTWluIiwgImluaXRfQ29uZmlndXJhYmxlU2VyZGVDb250ZXh0IiwgImluaXRfanNvblJlcGxhY2VyIiwgIlNlcmRlQ29udGV4dENvbmZpZyIsICJzZXR0aW5ncyIsICJzY2hlbWEiLCAidmFsdWUiLCAicm9vdFNjaGVtYSIsICJ1c2VSZXBsYWNlciIsICJyZXBsYWNlciIsICJKc29uUmVwbGFjZXIiLCAiY29udGFpbmVyIiwgImlzT2JqZWN0IiwgIm5zIiwgInJlY29yZCIsICJvdXQiLCAianNvbk5hbWUiLCAibmFtZU1hcCIsICJtZW1iZXJOYW1lIiwgIm1lbWJlclNjaGVtYSIsICJzZXJpYWxpemFibGVWYWx1ZSIsICJ0YXJnZXRLZXkiLCAiJHVua25vd24iLCAiayIsICJ2IiwgImxpc3RNZW1iZXIiLCAic3BhcnNlIiwgIml0ZW0iLCAibWFwTWVtYmVyIiwgIl9rIiwgIl92IiwgIm1lZGlhVHlwZSIsICJKc29uQ29kZWMiLCAiaW5pdF9Kc29uQ29kZWMiLCAiX19lc21NaW4iLCAiaW5pdF9Db25maWd1cmFibGVTZXJkZUNvbnRleHQiLCAiaW5pdF9Kc29uU2hhcGVEZXNlcmlhbGl6ZXIiLCAiaW5pdF9Kc29uU2hhcGVTZXJpYWxpemVyIiwgIlNlcmRlQ29udGV4dENvbmZpZyIsICJzZXR0aW5ncyIsICJzZXJpYWxpemVyIiwgIkpzb25TaGFwZVNlcmlhbGl6ZXIiLCAiZGVzZXJpYWxpemVyIiwgIkpzb25TaGFwZURlc2VyaWFsaXplciIsICJpbXBvcnRfcHJvdG9jb2xzIiwgImltcG9ydF9zY2hlbWEiLCAiQXdzSnNvblJwY1Byb3RvY29sIiwgImluaXRfQXdzSnNvblJwY1Byb3RvY29sIiwgIl9fZXNtTWluIiwgImluaXRfUHJvdG9jb2xMaWIiLCAiaW5pdF9Kc29uQ29kZWMiLCAiaW5pdF9wYXJzZUpzb25Cb2R5IiwgImRlZmF1bHROYW1lc3BhY2UiLCAic2VydmljZVRhcmdldCIsICJhd3NRdWVyeUNvbXBhdGlibGUiLCAianNvbkNvZGVjIiwgIkpzb25Db2RlYyIsICJQcm90b2NvbExpYiIsICJvcGVyYXRpb25TY2hlbWEiLCAiaW5wdXQiLCAiY29udGV4dCIsICJyZXF1ZXN0IiwgInJlc3BvbnNlIiwgImRhdGFPYmplY3QiLCAibWV0YWRhdGEiLCAiZXJyb3JJZGVudGlmaWVyIiwgImxvYWRSZXN0SnNvbkVycm9yQ29kZSIsICJlcnJvclNjaGVtYSIsICJlcnJvck1ldGFkYXRhIiwgIm5zIiwgIm1lc3NhZ2UiLCAiRXJyb3JDdG9yIiwgImV4Y2VwdGlvbiIsICJvdXRwdXQiLCAibmFtZSIsICJtZW1iZXIiLCAiQXdzSnNvbjFfMFByb3RvY29sIiwgImluaXRfQXdzSnNvbjFfMFByb3RvY29sIiwgIl9fZXNtTWluIiwgImluaXRfQXdzSnNvblJwY1Byb3RvY29sIiwgIkF3c0pzb25ScGNQcm90b2NvbCIsICJkZWZhdWx0TmFtZXNwYWNlIiwgInNlcnZpY2VUYXJnZXQiLCAiYXdzUXVlcnlDb21wYXRpYmxlIiwgImpzb25Db2RlYyIsICJBd3NKc29uMV8xUHJvdG9jb2wiLCAiaW5pdF9Bd3NKc29uMV8xUHJvdG9jb2wiLCAiX19lc21NaW4iLCAiaW5pdF9Bd3NKc29uUnBjUHJvdG9jb2wiLCAiQXdzSnNvblJwY1Byb3RvY29sIiwgImRlZmF1bHROYW1lc3BhY2UiLCAic2VydmljZVRhcmdldCIsICJhd3NRdWVyeUNvbXBhdGlibGUiLCAianNvbkNvZGVjIiwgImltcG9ydF9wcm90b2NvbHMiLCAiaW1wb3J0X3NjaGVtYSIsICJBd3NSZXN0SnNvblByb3RvY29sIiwgImluaXRfQXdzUmVzdEpzb25Qcm90b2NvbCIsICJfX2VzbU1pbiIsICJpbml0X1Byb3RvY29sTGliIiwgImluaXRfSnNvbkNvZGVjIiwgImluaXRfcGFyc2VKc29uQm9keSIsICJQcm90b2NvbExpYiIsICJkZWZhdWx0TmFtZXNwYWNlIiwgInNldHRpbmdzIiwgIkpzb25Db2RlYyIsICJzZXJkZUNvbnRleHQiLCAib3BlcmF0aW9uU2NoZW1hIiwgImlucHV0IiwgImNvbnRleHQiLCAicmVxdWVzdCIsICJpbnB1dFNjaGVtYSIsICJjb250ZW50VHlwZSIsICJyZXNwb25zZSIsICJvdXRwdXQiLCAib3V0cHV0U2NoZW1hIiwgIm5hbWUiLCAibWVtYmVyIiwgImRhdGFPYmplY3QiLCAibWV0YWRhdGEiLCAiZXJyb3JJZGVudGlmaWVyIiwgImxvYWRSZXN0SnNvbkVycm9yQ29kZSIsICJlcnJvclNjaGVtYSIsICJlcnJvck1ldGFkYXRhIiwgIm5zIiwgIm1lc3NhZ2UiLCAiRXJyb3JDdG9yIiwgImV4Y2VwdGlvbiIsICJ0YXJnZXQiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAiYXdzRXhwZWN0VW5pb24iLCAiaW5pdF9hd3NFeHBlY3RVbmlvbiIsICJfX2VzbU1pbiIsICJ2YWx1ZSIsICJyZXF1aXJlX3htbF9wYXJzZXIiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgInBhcnNlWE1MIiwgImZhc3RfeG1sX3BhcnNlcl8xIiwgInBhcnNlciIsICJfIiwgInZhbCIsICJ4bWxTdHJpbmciLCAicmVxdWlyZV9kaXN0X2NqcyIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAieG1sUGFyc2VyIiwgImVzY2FwZUF0dHJpYnV0ZSIsICJ2YWx1ZSIsICJlc2NhcGVFbGVtZW50IiwgIlhtbFRleHQiLCAiWG1sTm9kZSIsICJfWG1sTm9kZSIsICJuYW1lIiwgImNoaWxkVGV4dCIsICJ3aXRoTmFtZSIsICJub2RlIiwgImNoaWxkcmVuIiwgImNoaWxkIiwgImlucHV0IiwgImZpZWxkIiwgImxpc3ROYW1lIiwgIm1lbWJlck5hbWUiLCAidmFsdWVQcm92aWRlciIsICJub2RlcyIsICJjb250YWluZXJOb2RlIiwgImhhc0NoaWxkcmVuIiwgInhtbFRleHQiLCAiYXR0cmlidXRlcyIsICJhdHRyaWJ1dGVOYW1lIiwgImF0dHJpYnV0ZSIsICJjIiwgImltcG9ydF94bWxfYnVpbGRlciIsICJpbXBvcnRfcHJvdG9jb2xzIiwgImltcG9ydF9zY2hlbWEiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAiaW1wb3J0X3V0aWxfdXRmOCIsICJYbWxTaGFwZURlc2VyaWFsaXplciIsICJpbml0X1htbFNoYXBlRGVzZXJpYWxpemVyIiwgIl9fZXNtTWluIiwgImluaXRfQ29uZmlndXJhYmxlU2VyZGVDb250ZXh0IiwgImluaXRfVW5pb25TZXJkZSIsICJTZXJkZUNvbnRleHRDb25maWciLCAic2V0dGluZ3MiLCAic2VyZGVDb250ZXh0IiwgInNjaGVtYSIsICJieXRlcyIsICJrZXkiLCAibnMiLCAibWVtYmVyU2NoZW1hcyIsICJtZW1iZXJOcyIsICJvdXRwdXQiLCAibWVtYmVyTmFtZSIsICJ4bWxTdHJpbmciLCAicGFyc2VkT2JqZWN0IiwgIl9zY2hlbWEiLCAidmFsdWUiLCAidHJhaXRzIiwgInNwYXJzZSIsICJmbGF0IiwgImxpc3RWYWx1ZSIsICJidWZmZXIiLCAic291cmNlS2V5IiwgInNvdXJjZSIsICJzb3VyY2VBcnJheSIsICJ2IiwgImtleU5zIiwgImVudHJpZXMiLCAia2V5UHJvcGVydHkiLCAidmFsdWVQcm9wZXJ0eSIsICJlbnRyeSIsICJ1bmlvbiIsICJ1bmlvblNlcmRlIiwgIlVuaW9uU2VyZGUiLCAibWVtYmVyU2NoZW1hIiwgIm1lbWJlclRyYWl0cyIsICJ4bWxPYmplY3RLZXkiLCAieG1sIiwgInBhcnNlZE9iaiIsICJlIiwgInRleHROb2RlTmFtZSIsICJwYXJzZWRPYmpUb1JldHVybiIsICJpbXBvcnRfcHJvdG9jb2xzIiwgImltcG9ydF9zY2hlbWEiLCAiaW1wb3J0X3NlcmRlIiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgImltcG9ydF91dGlsX2Jhc2U2NCIsICJRdWVyeVNoYXBlU2VyaWFsaXplciIsICJpbml0X1F1ZXJ5U2hhcGVTZXJpYWxpemVyIiwgIl9fZXNtTWluIiwgImluaXRfQ29uZmlndXJhYmxlU2VyZGVDb250ZXh0IiwgIlNlcmRlQ29udGV4dENvbmZpZyIsICJzZXR0aW5ncyIsICJzY2hlbWEiLCAidmFsdWUiLCAicHJlZml4IiwgIm5zIiwgIm1lbWJlciIsICJmbGF0IiwgImkiLCAiaXRlbSIsICJ0cmFpdHMiLCAic3VmZml4IiwgImtleSIsICJrZXlTY2hlbWEiLCAibWVtYmVyU2NoZW1hIiwgImsiLCAidiIsICJrZXlUcmFpdHMiLCAia2V5U3VmZml4IiwgInZhbFRyYWl0cyIsICJ2YWx1ZVN1ZmZpeCIsICJ2YWx1ZUtleSIsICJkaWRXcml0ZU1lbWJlciIsICJtZW1iZXJOYW1lIiwgIiR1bmtub3duIiwgInN0ciIsICJ4bWxOYW1lIiwgImVjMlF1ZXJ5TmFtZSIsICJrZXlTb3VyY2UiLCAiZWMyIiwgImNhcGl0YWxpemVLZXlzIiwgImltcG9ydF9wcm90b2NvbHMiLCAiaW1wb3J0X3NjaGVtYSIsICJBd3NRdWVyeVByb3RvY29sIiwgImluaXRfQXdzUXVlcnlQcm90b2NvbCIsICJfX2VzbU1pbiIsICJpbml0X1Byb3RvY29sTGliIiwgImluaXRfWG1sU2hhcGVEZXNlcmlhbGl6ZXIiLCAiaW5pdF9RdWVyeVNoYXBlU2VyaWFsaXplciIsICJQcm90b2NvbExpYiIsICJvcHRpb25zIiwgInNldHRpbmdzIiwgIlF1ZXJ5U2hhcGVTZXJpYWxpemVyIiwgIlhtbFNoYXBlRGVzZXJpYWxpemVyIiwgInNlcmRlQ29udGV4dCIsICJvcGVyYXRpb25TY2hlbWEiLCAiaW5wdXQiLCAiY29udGV4dCIsICJyZXF1ZXN0IiwgImFjdGlvbiIsICJyZXNwb25zZSIsICJkZXNlcmlhbGl6ZXIiLCAibnMiLCAiZGF0YU9iamVjdCIsICJieXRlcyIsICJoZWFkZXIiLCAidmFsdWUiLCAic2hvcnROYW1lIiwgImF3c1F1ZXJ5UmVzdWx0S2V5IiwgIm1ldGFkYXRhIiwgImVycm9ySWRlbnRpZmllciIsICJlcnJvckRhdGEiLCAibWVzc2FnZSIsICJlcnJvclNjaGVtYSIsICJlcnJvck1ldGFkYXRhIiwgIkVycm9yQ3RvciIsICJleGNlcHRpb24iLCAib3V0cHV0IiwgIm5hbWUiLCAibWVtYmVyIiwgInRhcmdldCIsICJkYXRhIiwgImNvZGUiLCAiQXdzRWMyUXVlcnlQcm90b2NvbCIsICJpbml0X0F3c0VjMlF1ZXJ5UHJvdG9jb2wiLCAiX19lc21NaW4iLCAiaW5pdF9Bd3NRdWVyeVByb3RvY29sIiwgIkF3c1F1ZXJ5UHJvdG9jb2wiLCAib3B0aW9ucyIsICJlYzJTZXR0aW5ncyIsICJpbXBvcnRfeG1sX2J1aWxkZXIiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAicGFyc2VYbWxCb2R5IiwgInBhcnNlWG1sRXJyb3JCb2R5IiwgImxvYWRSZXN0WG1sRXJyb3JDb2RlIiwgImluaXRfcGFyc2VYbWxCb2R5IiwgIl9fZXNtTWluIiwgImluaXRfY29tbW9uIiwgInN0cmVhbUJvZHkiLCAiY29udGV4dCIsICJjb2xsZWN0Qm9keVN0cmluZyIsICJlbmNvZGVkIiwgInBhcnNlZE9iaiIsICJlIiwgInRleHROb2RlTmFtZSIsICJrZXkiLCAicGFyc2VkT2JqVG9SZXR1cm4iLCAiZXJyb3JCb2R5IiwgInZhbHVlIiwgIm91dHB1dCIsICJkYXRhIiwgImltcG9ydF94bWxfYnVpbGRlciIsICJpbXBvcnRfcHJvdG9jb2xzIiwgImltcG9ydF9zY2hlbWEiLCAiaW1wb3J0X3NlcmRlIiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgImltcG9ydF91dGlsX2Jhc2U2NCIsICJYbWxTaGFwZVNlcmlhbGl6ZXIiLCAiaW5pdF9YbWxTaGFwZVNlcmlhbGl6ZXIiLCAiX19lc21NaW4iLCAiaW5pdF9Db25maWd1cmFibGVTZXJkZUNvbnRleHQiLCAiU2VyZGVDb250ZXh0Q29uZmlnIiwgInNldHRpbmdzIiwgInNjaGVtYSIsICJ2YWx1ZSIsICJucyIsICJ0cmFpdHMiLCAiYnl0ZXMiLCAic3RyIiwgImJ1ZmZlciIsICJwYXJlbnRYbWxucyIsICJuYW1lIiwgInN0cnVjdFhtbE5vZGUiLCAieG1sbnNBdHRyIiwgInhtbG5zIiwgIm1lbWJlck5hbWUiLCAibWVtYmVyU2NoZW1hIiwgInZhbCIsICJtZW1iZXJOb2RlIiwgIiR1bmtub3duIiwgImsiLCAidiIsICJub2RlIiwgImxpc3RNZW1iZXIiLCAiYXJyYXkiLCAiY29udGFpbmVyIiwgImxpc3RUcmFpdHMiLCAibGlzdFZhbHVlU2NoZW1hIiwgImxpc3RWYWx1ZVRyYWl0cyIsICJzcGFyc2UiLCAiZmxhdCIsICJ3cml0ZUl0ZW0iLCAic3RydWN0IiwgImxpc3RJdGVtTm9kZSIsICJsaXN0Tm9kZSIsICJtYXBNZW1iZXIiLCAibWFwIiwgImNvbnRhaW5lcklzTWFwIiwgIm1hcFRyYWl0cyIsICJtYXBLZXlTY2hlbWEiLCAia2V5VGFnIiwgIm1hcFZhbHVlU2NoZW1hIiwgIm1hcFZhbHVlVHJhaXRzIiwgInZhbHVlVGFnIiwgImFkZEtleVZhbHVlIiwgImVudHJ5IiwgImtleSIsICJrZXlOb2RlIiwgImtleVhtbG5zQXR0ciIsICJrZXlYbWxucyIsICJ2YWx1ZU5vZGUiLCAibWFwTm9kZSIsICJfc2NoZW1hIiwgIm5vZGVDb250ZW50cyIsICJpbnRvIiwgImNvbnRlbnQiLCAicHJlZml4IiwgIlhtbENvZGVjIiwgImluaXRfWG1sQ29kZWMiLCAiX19lc21NaW4iLCAiaW5pdF9Db25maWd1cmFibGVTZXJkZUNvbnRleHQiLCAiaW5pdF9YbWxTaGFwZURlc2VyaWFsaXplciIsICJpbml0X1htbFNoYXBlU2VyaWFsaXplciIsICJTZXJkZUNvbnRleHRDb25maWciLCAic2V0dGluZ3MiLCAic2VyaWFsaXplciIsICJYbWxTaGFwZVNlcmlhbGl6ZXIiLCAiZGVzZXJpYWxpemVyIiwgIlhtbFNoYXBlRGVzZXJpYWxpemVyIiwgImltcG9ydF9wcm90b2NvbHMiLCAiaW1wb3J0X3NjaGVtYSIsICJBd3NSZXN0WG1sUHJvdG9jb2wiLCAiaW5pdF9Bd3NSZXN0WG1sUHJvdG9jb2wiLCAiX19lc21NaW4iLCAiaW5pdF9Qcm90b2NvbExpYiIsICJpbml0X3BhcnNlWG1sQm9keSIsICJpbml0X1htbENvZGVjIiwgIlByb3RvY29sTGliIiwgIm9wdGlvbnMiLCAic2V0dGluZ3MiLCAiWG1sQ29kZWMiLCAib3BlcmF0aW9uU2NoZW1hIiwgImlucHV0IiwgImNvbnRleHQiLCAicmVxdWVzdCIsICJpbnB1dFNjaGVtYSIsICJjb250ZW50VHlwZSIsICJyZXNwb25zZSIsICJkYXRhT2JqZWN0IiwgIm1ldGFkYXRhIiwgImVycm9ySWRlbnRpZmllciIsICJsb2FkUmVzdFhtbEVycm9yQ29kZSIsICJrZXkiLCAiZXJyb3JTY2hlbWEiLCAiZXJyb3JNZXRhZGF0YSIsICJucyIsICJtZXNzYWdlIiwgIkVycm9yQ3RvciIsICJleGNlcHRpb24iLCAib3V0cHV0IiwgIm5hbWUiLCAibWVtYmVyIiwgInRhcmdldCIsICJ2YWx1ZSIsICJwcm90b2NvbHNfZXhwb3J0cyIsICJfX2V4cG9ydCIsICJBd3NFYzJRdWVyeVByb3RvY29sIiwgIkF3c0pzb24xXzBQcm90b2NvbCIsICJBd3NKc29uMV8xUHJvdG9jb2wiLCAiQXdzSnNvblJwY1Byb3RvY29sIiwgIkF3c1F1ZXJ5UHJvdG9jb2wiLCAiQXdzUmVzdEpzb25Qcm90b2NvbCIsICJBd3NSZXN0WG1sUHJvdG9jb2wiLCAiQXdzU21pdGh5UnBjVjJDYm9yUHJvdG9jb2wiLCAiSnNvbkNvZGVjIiwgIkpzb25TaGFwZURlc2VyaWFsaXplciIsICJKc29uU2hhcGVTZXJpYWxpemVyIiwgIlhtbENvZGVjIiwgIlhtbFNoYXBlRGVzZXJpYWxpemVyIiwgIlhtbFNoYXBlU2VyaWFsaXplciIsICJfdG9Cb29sIiwgIl90b051bSIsICJfdG9TdHIiLCAiYXdzRXhwZWN0VW5pb24iLCAibG9hZFJlc3RKc29uRXJyb3JDb2RlIiwgImxvYWRSZXN0WG1sRXJyb3JDb2RlIiwgInBhcnNlSnNvbkJvZHkiLCAicGFyc2VKc29uRXJyb3JCb2R5IiwgInBhcnNlWG1sQm9keSIsICJwYXJzZVhtbEVycm9yQm9keSIsICJpbml0X3Byb3RvY29scyIsICJfX2VzbU1pbiIsICJpbml0X0F3c1NtaXRoeVJwY1YyQ2JvclByb3RvY29sIiwgImluaXRfY29lcmNpbmdfc2VyaWFsaXplcnMiLCAiaW5pdF9Bd3NKc29uMV8wUHJvdG9jb2wiLCAiaW5pdF9Bd3NKc29uMV8xUHJvdG9jb2wiLCAiaW5pdF9Bd3NKc29uUnBjUHJvdG9jb2wiLCAiaW5pdF9Bd3NSZXN0SnNvblByb3RvY29sIiwgImluaXRfSnNvbkNvZGVjIiwgImluaXRfSnNvblNoYXBlRGVzZXJpYWxpemVyIiwgImluaXRfSnNvblNoYXBlU2VyaWFsaXplciIsICJpbml0X2F3c0V4cGVjdFVuaW9uIiwgImluaXRfcGFyc2VKc29uQm9keSIsICJpbml0X0F3c0VjMlF1ZXJ5UHJvdG9jb2wiLCAiaW5pdF9Bd3NRdWVyeVByb3RvY29sIiwgImluaXRfQXdzUmVzdFhtbFByb3RvY29sIiwgImluaXRfWG1sQ29kZWMiLCAiaW5pdF9YbWxTaGFwZURlc2VyaWFsaXplciIsICJpbml0X1htbFNoYXBlU2VyaWFsaXplciIsICJpbml0X3BhcnNlWG1sQm9keSIsICJyZXF1aXJlX2Rpc3RfY2pzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJwcm90b2NvbHMiLCAic2NoZW1hIiwgInNtaXRoeUNsaWVudCIsICJ1dGlsQmFzZTY0IiwgIkR5bmFtb0RCSnNvbkNvZGVjIiwgInNlcmlhbGl6ZXIiLCAiRHluYW1vREJKc29uU2hhcGVTZXJpYWxpemVyIiwgImRlc2VyaWFsaXplciIsICJEeW5hbW9EQkpzb25TaGFwZURlc2VyaWFsaXplciIsICJBVFRSSUJVVEVfVkFMVUUiLCAic2NoZW1hJDEiLCAidmFsdWUiLCAiY29udGFpbmVyIiwgIm5zIiwgImF2IiwgIm91dCIsICJiYXNlNjRFbmNvZGUiLCAidiIsICJrIiwgImJhc2U2NERlY29kZXIiLCAicmVxdWlyZV9kaXN0X2NqcyIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAidXRpbEVuZHBvaW50cyIsICJ1cmxQYXJzZXIiLCAiaXNWaXJ0dWFsSG9zdGFibGVTM0J1Y2tldCIsICJ2YWx1ZSIsICJhbGxvd1N1YkRvbWFpbnMiLCAibGFiZWwiLCAiQVJOX0RFTElNSVRFUiIsICJSRVNPVVJDRV9ERUxJTUlURVIiLCAicGFyc2VBcm4iLCAic2VnbWVudHMiLCAiYXJuIiwgInBhcnRpdGlvbiIsICJzZXJ2aWNlIiwgInJlZ2lvbiIsICJhY2NvdW50SWQiLCAicmVzb3VyY2VQYXRoIiwgInJlc291cmNlSWQiLCAicmVzb3VyY2UiLCAicGFydGl0aW9ucyIsICJ2ZXJzaW9uIiwgInBhcnRpdGlvbnNJbmZvIiwgInNlbGVjdGVkUGFydGl0aW9uc0luZm8iLCAic2VsZWN0ZWRVc2VyQWdlbnRQcmVmaXgiLCAicmVnaW9ucyIsICJvdXRwdXRzIiwgInJlZ2lvbkRhdGEiLCAicmVnaW9uUmVnZXgiLCAiREVGQVVMVF9QQVJUSVRJT04iLCAic2V0UGFydGl0aW9uSW5mbyIsICJ1c2VyQWdlbnRQcmVmaXgiLCAidXNlRGVmYXVsdFBhcnRpdGlvbkluZm8iLCAiZ2V0VXNlckFnZW50UHJlZml4IiwgImF3c0VuZHBvaW50RnVuY3Rpb25zIiwgInJlc29sdmVEZWZhdWx0QXdzUmVnaW9uYWxFbmRwb2ludHNDb25maWciLCAiaW5wdXQiLCAiZW5kcG9pbnQiLCAidG9FbmRwb2ludFYxIiwgInJlcXVpcmVfcnVsZXNldCIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAiSyIsICJMIiwgIk0iLCAiTiIsICJPIiwgIlAiLCAiUSIsICJSIiwgIlMiLCAiVCIsICJVIiwgIlYiLCAiYSIsICJiIiwgImMiLCAiZCIsICJlIiwgImYiLCAiZyIsICJoIiwgImkiLCAiaiIsICJrIiwgImwiLCAibSIsICJuIiwgIm8iLCAicCIsICJxIiwgInIiLCAicyIsICJ0IiwgInUiLCAidiIsICJ3IiwgIngiLCAieSIsICJ6IiwgIkEiLCAiQiIsICJDIiwgIkQiLCAiRSIsICJGIiwgIkciLCAiSCIsICJJIiwgIkoiLCAiX2RhdGEiLCAicmVxdWlyZV9lbmRwb2ludFJlc29sdmVyIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJ1dGlsX2VuZHBvaW50c18xIiwgInV0aWxfZW5kcG9pbnRzXzIiLCAicnVsZXNldF8xIiwgImNhY2hlIiwgImRlZmF1bHRFbmRwb2ludFJlc29sdmVyIiwgImVuZHBvaW50UGFyYW1zIiwgImNvbnRleHQiLCAicmVxdWlyZV9ydW50aW1lQ29uZmlnX3NoYXJlZCIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAiY29yZV8xIiwgInByb3RvY29sc18xIiwgImR5bmFtb2RiX2NvZGVjXzEiLCAic21pdGh5X2NsaWVudF8xIiwgInVybF9wYXJzZXJfMSIsICJ1dGlsX2Jhc2U2NF8xIiwgInV0aWxfdXRmOF8xIiwgImh0dHBBdXRoU2NoZW1lUHJvdmlkZXJfMSIsICJlbmRwb2ludFJlc29sdmVyXzEiLCAiZ2V0UnVudGltZUNvbmZpZyIsICJjb25maWciLCAiaXBjIiwgInJlcXVpcmVfcnVudGltZUNvbmZpZyIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAidHNsaWJfMSIsICJwYWNrYWdlX2pzb25fMSIsICJjb3JlXzEiLCAiYWNjb3VudF9pZF9lbmRwb2ludF8xIiwgImNyZWRlbnRpYWxfcHJvdmlkZXJfbm9kZV8xIiwgIm1pZGRsZXdhcmVfZW5kcG9pbnRfZGlzY292ZXJ5XzEiLCAidXRpbF91c2VyX2FnZW50X25vZGVfMSIsICJjb25maWdfcmVzb2x2ZXJfMSIsICJoYXNoX25vZGVfMSIsICJtaWRkbGV3YXJlX3JldHJ5XzEiLCAibm9kZV9jb25maWdfcHJvdmlkZXJfMSIsICJub2RlX2h0dHBfaGFuZGxlcl8xIiwgInNtaXRoeV9jbGllbnRfMSIsICJ1dGlsX2JvZHlfbGVuZ3RoX25vZGVfMSIsICJ1dGlsX2RlZmF1bHRzX21vZGVfbm9kZV8xIiwgInV0aWxfcmV0cnlfMSIsICJydW50aW1lQ29uZmlnX3NoYXJlZF8xIiwgImdldFJ1bnRpbWVDb25maWciLCAiY29uZmlnIiwgImRlZmF1bHRzTW9kZSIsICJkZWZhdWx0Q29uZmlnUHJvdmlkZXIiLCAiY2xpZW50U2hhcmVkVmFsdWVzIiwgImxvYWRlckNvbmZpZyIsICJyZXF1aXJlX2Rpc3RfY2pzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJhY2NvdW50SWRFbmRwb2ludCIsICJtaWRkbGV3YXJlRW5kcG9pbnREaXNjb3ZlcnkiLCAibWlkZGxld2FyZUhvc3RIZWFkZXIiLCAibWlkZGxld2FyZUxvZ2dlciIsICJtaWRkbGV3YXJlUmVjdXJzaW9uRGV0ZWN0aW9uIiwgIm1pZGRsZXdhcmVVc2VyQWdlbnQiLCAiY29uZmlnUmVzb2x2ZXIiLCAiY29yZSIsICJzY2hlbWEiLCAibWlkZGxld2FyZUNvbnRlbnRMZW5ndGgiLCAibWlkZGxld2FyZUVuZHBvaW50IiwgIm1pZGRsZXdhcmVSZXRyeSIsICJzbWl0aHlDbGllbnQiLCAiaHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJydW50aW1lQ29uZmlnIiwgInJlZ2lvbkNvbmZpZ1Jlc29sdmVyIiwgInByb3RvY29sSHR0cCIsICJ1dGlsV2FpdGVyIiwgInJlc29sdmVDbGllbnRFbmRwb2ludFBhcmFtZXRlcnMiLCAib3B0aW9ucyIsICJjb21tb25QYXJhbXMiLCAiRHluYW1vREJTZXJ2aWNlRXhjZXB0aW9uIiwgIl9EeW5hbW9EQlNlcnZpY2VFeGNlcHRpb24iLCAiQmFja3VwSW5Vc2VFeGNlcHRpb24iLCAiX0JhY2t1cEluVXNlRXhjZXB0aW9uIiwgIm9wdHMiLCAiQmFja3VwTm90Rm91bmRFeGNlcHRpb24iLCAiX0JhY2t1cE5vdEZvdW5kRXhjZXB0aW9uIiwgIkludGVybmFsU2VydmVyRXJyb3IiLCAiX0ludGVybmFsU2VydmVyRXJyb3IiLCAiUmVxdWVzdExpbWl0RXhjZWVkZWQiLCAiX1JlcXVlc3RMaW1pdEV4Y2VlZGVkIiwgIlRocm90dGxpbmdFeGNlcHRpb24iLCAiX1Rocm90dGxpbmdFeGNlcHRpb24iLCAiSW52YWxpZEVuZHBvaW50RXhjZXB0aW9uIiwgIl9JbnZhbGlkRW5kcG9pbnRFeGNlcHRpb24iLCAiUHJvdmlzaW9uZWRUaHJvdWdocHV0RXhjZWVkZWRFeGNlcHRpb24iLCAiX1Byb3Zpc2lvbmVkVGhyb3VnaHB1dEV4Y2VlZGVkRXhjZXB0aW9uIiwgIlJlc291cmNlTm90Rm91bmRFeGNlcHRpb24iLCAiX1Jlc291cmNlTm90Rm91bmRFeGNlcHRpb24iLCAiSXRlbUNvbGxlY3Rpb25TaXplTGltaXRFeGNlZWRlZEV4Y2VwdGlvbiIsICJfSXRlbUNvbGxlY3Rpb25TaXplTGltaXRFeGNlZWRlZEV4Y2VwdGlvbiIsICJSZXBsaWNhdGVkV3JpdGVDb25mbGljdEV4Y2VwdGlvbiIsICJfUmVwbGljYXRlZFdyaXRlQ29uZmxpY3RFeGNlcHRpb24iLCAiQ29udGludW91c0JhY2t1cHNVbmF2YWlsYWJsZUV4Y2VwdGlvbiIsICJfQ29udGludW91c0JhY2t1cHNVbmF2YWlsYWJsZUV4Y2VwdGlvbiIsICJMaW1pdEV4Y2VlZGVkRXhjZXB0aW9uIiwgIl9MaW1pdEV4Y2VlZGVkRXhjZXB0aW9uIiwgIlRhYmxlSW5Vc2VFeGNlcHRpb24iLCAiX1RhYmxlSW5Vc2VFeGNlcHRpb24iLCAiVGFibGVOb3RGb3VuZEV4Y2VwdGlvbiIsICJfVGFibGVOb3RGb3VuZEV4Y2VwdGlvbiIsICJHbG9iYWxUYWJsZUFscmVhZHlFeGlzdHNFeGNlcHRpb24iLCAiX0dsb2JhbFRhYmxlQWxyZWFkeUV4aXN0c0V4Y2VwdGlvbiIsICJSZXNvdXJjZUluVXNlRXhjZXB0aW9uIiwgIl9SZXNvdXJjZUluVXNlRXhjZXB0aW9uIiwgIlRyYW5zYWN0aW9uQ29uZmxpY3RFeGNlcHRpb24iLCAiX1RyYW5zYWN0aW9uQ29uZmxpY3RFeGNlcHRpb24iLCAiUG9saWN5Tm90Rm91bmRFeGNlcHRpb24iLCAiX1BvbGljeU5vdEZvdW5kRXhjZXB0aW9uIiwgIkV4cG9ydE5vdEZvdW5kRXhjZXB0aW9uIiwgIl9FeHBvcnROb3RGb3VuZEV4Y2VwdGlvbiIsICJHbG9iYWxUYWJsZU5vdEZvdW5kRXhjZXB0aW9uIiwgIl9HbG9iYWxUYWJsZU5vdEZvdW5kRXhjZXB0aW9uIiwgIkltcG9ydE5vdEZvdW5kRXhjZXB0aW9uIiwgIl9JbXBvcnROb3RGb3VuZEV4Y2VwdGlvbiIsICJEdXBsaWNhdGVJdGVtRXhjZXB0aW9uIiwgIl9EdXBsaWNhdGVJdGVtRXhjZXB0aW9uIiwgIklkZW1wb3RlbnRQYXJhbWV0ZXJNaXNtYXRjaEV4Y2VwdGlvbiIsICJfSWRlbXBvdGVudFBhcmFtZXRlck1pc21hdGNoRXhjZXB0aW9uIiwgIlRyYW5zYWN0aW9uSW5Qcm9ncmVzc0V4Y2VwdGlvbiIsICJfVHJhbnNhY3Rpb25JblByb2dyZXNzRXhjZXB0aW9uIiwgIkV4cG9ydENvbmZsaWN0RXhjZXB0aW9uIiwgIl9FeHBvcnRDb25mbGljdEV4Y2VwdGlvbiIsICJJbnZhbGlkRXhwb3J0VGltZUV4Y2VwdGlvbiIsICJfSW52YWxpZEV4cG9ydFRpbWVFeGNlcHRpb24iLCAiUG9pbnRJblRpbWVSZWNvdmVyeVVuYXZhaWxhYmxlRXhjZXB0aW9uIiwgIl9Qb2ludEluVGltZVJlY292ZXJ5VW5hdmFpbGFibGVFeGNlcHRpb24iLCAiSW1wb3J0Q29uZmxpY3RFeGNlcHRpb24iLCAiX0ltcG9ydENvbmZsaWN0RXhjZXB0aW9uIiwgIlRhYmxlQWxyZWFkeUV4aXN0c0V4Y2VwdGlvbiIsICJfVGFibGVBbHJlYWR5RXhpc3RzRXhjZXB0aW9uIiwgIkludmFsaWRSZXN0b3JlVGltZUV4Y2VwdGlvbiIsICJfSW52YWxpZFJlc3RvcmVUaW1lRXhjZXB0aW9uIiwgIlJlcGxpY2FBbHJlYWR5RXhpc3RzRXhjZXB0aW9uIiwgIl9SZXBsaWNhQWxyZWFkeUV4aXN0c0V4Y2VwdGlvbiIsICJSZXBsaWNhTm90Rm91bmRFeGNlcHRpb24iLCAiX1JlcGxpY2FOb3RGb3VuZEV4Y2VwdGlvbiIsICJJbmRleE5vdEZvdW5kRXhjZXB0aW9uIiwgIl9JbmRleE5vdEZvdW5kRXhjZXB0aW9uIiwgIkNvbmRpdGlvbmFsQ2hlY2tGYWlsZWRFeGNlcHRpb24iLCAiX0NvbmRpdGlvbmFsQ2hlY2tGYWlsZWRFeGNlcHRpb24iLCAiVHJhbnNhY3Rpb25DYW5jZWxlZEV4Y2VwdGlvbiIsICJfVHJhbnNhY3Rpb25DYW5jZWxlZEV4Y2VwdGlvbiIsICJfQSIsICJfQUJBIiwgIl9BQ0RUUCIsICJfQUQiLCAiX0FEVCIsICJfQUR0IiwgIl9BTSIsICJfQU1SQ1UiLCAiX0FNV0NVIiwgIl9BTiIsICJfQVIiLCAiX0FTIiwgIl9BU0QiLCAiX0FTUEQiLCAiX0FTUERMIiwgIl9BU1BVIiwgIl9BU1JBIiwgIl9BU1NEIiwgIl9BU1NVIiwgIl9BU1RUU1BDRCIsICJfQVNUVFNQQ1UiLCAiX0FUIiwgIl9BVEciLCAiX0FVIiwgIl9BViIsICJfQVZMIiwgIl9BVlUiLCAiX0FkIiwgIl9BdCIsICJfQiIsICJfQkEiLCAiX0JDRFQiLCAiX0JEIiwgIl9CRGEiLCAiX0JFRFQiLCAiX0JFUyIsICJfQkVTSSIsICJfQkVTTyIsICJfQkdJIiwgIl9CR0lJIiwgIl9CR0lPIiwgIl9CR1JNIiwgIl9CR1JNYSIsICJfQklVRSIsICJfQk0iLCAiX0JNTyIsICJfQk1TIiwgIl9CTiIsICJfQk5GRSIsICJfQk9PTCIsICJfQlMiLCAiX0JTQiIsICJfQlNCaSIsICJfQlNFIiwgIl9CU1IiLCAiX0JTUmEiLCAiX0JTXyIsICJfQlNhIiwgIl9CU2FjIiwgIl9CVCIsICJfQldJIiwgIl9CV0lJIiwgIl9CV0lPIiwgIl9CV0lSTSIsICJfQl8iLCAiX0MiLCAiX0NCIiwgIl9DQkQiLCAiX0NCSSIsICJfQ0JPIiwgIl9DQlMiLCAiX0NCVUUiLCAiX0NDIiwgIl9DQ0ZFIiwgIl9DQ00iLCAiX0NDbyIsICJfQ0RUIiwgIl9DRSIsICJfQ0dTSUEiLCAiX0NHVCIsICJfQ0dUSSIsICJfQ0dUTyIsICJfQ0dUV0dNQSIsICJfQ0lBIiwgIl9DSU0iLCAiX0NJUkwiLCAiX0NJUyIsICJfQ0lTbyIsICJfQ0lTb24iLCAiX0NPIiwgIl9DT28iLCAiX0NPcyIsICJfQ1BJTSIsICJfQ1IiLCAiX0NSQSIsICJfQ1JHTUEiLCAiX0NSTCIsICJfQ1JTUkEiLCAiX0NSVCIsICJfQ1JhIiwgIl9DUmFuIiwgIl9DVCIsICJfQ1RJIiwgIl9DVE8iLCAiX0NUciIsICJfQ1UiLCAiX0NXTEdBIiwgIl9DYSIsICJfQ28iLCAiX0NvdSIsICJfQ3IiLCAiX0NzIiwgIl9EIiwgIl9EQiIsICJfREJJIiwgIl9EQkllIiwgIl9EQk8iLCAiX0RCT2UiLCAiX0RCZSIsICJfRENCIiwgIl9EQ0JJIiwgIl9EQ0JPIiwgIl9EQ0kiLCAiX0RDSUkiLCAiX0RDSU8iLCAiX0RFIiwgIl9ERUkiLCAiX0RFTyIsICJfREVSIiwgIl9ERVJlIiwgIl9ERWUiLCAiX0RHU0lBIiwgIl9ER1QiLCAiX0RHVEkiLCAiX0RHVE8iLCAiX0RHVFMiLCAiX0RHVFNJIiwgIl9ER1RTTyIsICJfREdUV0dNQSIsICJfREkiLCAiX0RJRSIsICJfRElJIiwgIl9ESUllIiwgIl9ESU8iLCAiX0RJT2UiLCAiX0RJZSIsICJfREtTRCIsICJfREtTREkiLCAiX0RLU0RPIiwgIl9ES1NEaSIsICJfREwiLCAiX0RMSSIsICJfRExPIiwgIl9EUEUiLCAiX0RSIiwgIl9EUkEiLCAiX0RSR01BIiwgIl9EUlAiLCAiX0RSUEkiLCAiX0RSUE8iLCAiX0RTIiwgIl9EU0QiLCAiX0RTSSIsICJfRFQiLCAiX0RUSSIsICJfRFRJZSIsICJfRFRPIiwgIl9EVE9lIiwgIl9EVFJBUyIsICJfRFRSQVNJIiwgIl9EVFJBU08iLCAiX0RUVEwiLCAiX0RUVExJIiwgIl9EVFRMTyIsICJfRFRlIiwgIl9EZSIsICJfRSIsICJfRUEiLCAiX0VBTSIsICJfRUFOIiwgIl9FQVYiLCAiX0VBVk0iLCAiX0VBVngiLCAiX0VDIiwgIl9FQ0UiLCAiX0VEIiwgIl9FRHgiLCAiX0VGIiwgIl9FRlQiLCAiX0VLU0MiLCAiX0VLU0QiLCAiX0VNIiwgIl9FTiIsICJfRU5GRSIsICJfRVJEVCIsICJfRVJJIiwgIl9FUyIsICJfRVNCQSIsICJfRVNHVE4iLCAiX0VTSSIsICJfRVNLIiwgIl9FU08iLCAiX0VTVE4iLCAiX0VTeCIsICJfRVN4ZSIsICJfRVN4cCIsICJfRVQiLCAiX0VUSSIsICJfRVRPIiwgIl9FVFQiLCAiX0VUVFBJVCIsICJfRVRUUElUSSIsICJfRVRUUElUTyIsICJfRVR4IiwgIl9FVHhlIiwgIl9FVHhwIiwgIl9FVlQiLCAiX0VuIiwgIl9FbmEiLCAiX0VuZCIsICJfRXgiLCAiX0V4aSIsICJfRkMiLCAiX0ZDTSIsICJfRkUiLCAiX0ZFaSIsICJfRk0iLCAiX0ciLCAiX0dJIiwgIl9HSUkiLCAiX0dJTyIsICJfR1JQIiwgIl9HUlBJIiwgIl9HUlBPIiwgIl9HU0kiLCAiX0dTSUFTVSIsICJfR1NJQVNVTCIsICJfR1NJRCIsICJfR1NJREwiLCAiX0dTSUkiLCAiX0dTSUwiLCAiX0dTSU8iLCAiX0dTSVUiLCAiX0dTSVVMIiwgIl9HU0lVbCIsICJfR1NJV1REIiwgIl9HU0lsIiwgIl9HVCIsICJfR1RBIiwgIl9HVEFFRSIsICJfR1RCTSIsICJfR1REIiwgIl9HVEdTSVNVIiwgIl9HVEdTSVNVTCIsICJfR1RMIiwgIl9HVE4iLCAiX0dUTkZFIiwgIl9HVFBXQ0FTU1UiLCAiX0dUUFdDVSIsICJfR1RTIiwgIl9HVFYiLCAiX0dUVyIsICJfR1RXRCIsICJfR1RXREwiLCAiX0dUV0dVIiwgIl9HVFdHVUwiLCAiX0dUV1UiLCAiX0dUbCIsICJfSEwiLCAiX0kiLCAiX0lBIiwgIl9JQW4iLCAiX0lDIiwgIl9JQ0UiLCAiX0lDSyIsICJfSUNLQU0iLCAiX0lDTSIsICJfSUNNTSIsICJfSUNNUFQiLCAiX0lDU0xFRSIsICJfSUNUIiwgIl9JRURUIiwgIl9JRUUiLCAiX0lFUyIsICJfSUVURSIsICJfSUYiLCAiX0lGTyIsICJfSUlDIiwgIl9JTCIsICJfSU4iLCAiX0lORkUiLCAiX0lORkVuIiwgIl9JUE1FIiwgIl9JUiIsICJfSVJMIiwgIl9JUlRFIiwgIl9JUyIsICJfSVNCIiwgIl9JU0UiLCAiX0lTTCIsICJfSVNtIiwgIl9JU21wIiwgIl9JVCIsICJfSVREIiwgIl9JVEkiLCAiX0lUTyIsICJfSXQiLCAiX0siLCAiX0tBQSIsICJfS0MiLCAiX0tDRSIsICJfS0RTRCIsICJfS0RTRGkiLCAiX0tMIiwgIl9LTVNNS0EiLCAiX0tNU01LSSIsICJfS1MiLCAiX0tTREkiLCAiX0tTRE8iLCAiX0tTRSIsICJfS1QiLCAiX0tlIiwgIl9MIiwgIl9MQVYiLCAiX0xCIiwgIl9MQkkiLCAiX0xCTyIsICJfTENJIiwgIl9MQ0lJIiwgIl9MQ0lPIiwgIl9MRERUIiwgIl9MRSIsICJfTEVCQSIsICJfTEVFIiwgIl9MRUdUTiIsICJfTEVJIiwgIl9MRUsiLCAiX0xFTyIsICJfTEVUTiIsICJfTEdUIiwgIl9MR1RJIiwgIl9MR1RPIiwgIl9MSSIsICJfTElEVCIsICJfTElJIiwgIl9MSU8iLCAiX0xSRFQiLCAiX0xTQSIsICJfTFNJIiwgIl9MU0lEIiwgIl9MU0lETCIsICJfTFNJSSIsICJfTFNJTCIsICJfTFNJTyIsICJfTFNJbyIsICJfTFNMIiwgIl9MVCIsICJfTFRJIiwgIl9MVE8iLCAiX0xUT1IiLCAiX0xUT1JJIiwgIl9MVE9STyIsICJfTFVEVCIsICJfTFVUUFBSRFQiLCAiX0xfIiwgIl9NIiwgIl9NQVYiLCAiX01SIiwgIl9NUkMiLCAiX01SUlUiLCAiX01VIiwgIl9NVWEiLCAiX01XUlUiLCAiX01fIiwgIl9OIiwgIl9OS0EiLCAiX05PRFQiLCAiX05TIiwgIl9OVCIsICJfTlVMTCIsICJfT0RUIiwgIl9PRFRPIiwgIl9QIiwgIl9QRSIsICJfUEkiLCAiX1BJQyIsICJfUElJIiwgIl9QSUlBTSIsICJfUElPIiwgIl9QSVRSRCIsICJfUElUUkUiLCAiX1BJVFJTIiwgIl9QSVRSU28iLCAiX1BJVFJVRSIsICJfUE4iLCAiX1BORkUiLCAiX1BRTEJSIiwgIl9QUUxCUmEiLCAiX1BSIiwgIl9QUkNBU1MiLCAiX1BSQ0FTU1UiLCAiX1BSQ0FTVSIsICJfUFJDVSIsICJfUFJQIiwgIl9QUlBJIiwgIl9QUlBPIiwgIl9QUyIsICJfUFNCIiwgIl9QU1AiLCAiX1BTYSIsICJfUFNhciIsICJfUFQiLCAiX1BURCIsICJfUFRFRSIsICJfUFRPIiwgIl9QVHIiLCAiX1BXQ0FTUyIsICJfUFdDQVNTVSIsICJfUFdDQVNVIiwgIl9QV0NVIiwgIl9QbyIsICJfUHIiLCAiX1B1IiwgIl9RIiwgIl9RRiIsICJfUUkiLCAiX1FPIiwgIl9SIiwgIl9SQSIsICJfUkFFRSIsICJfUkFTRCIsICJfUkFTREwiLCAiX1JBU1UiLCAiX1JBU1VMIiwgIl9SQk1TIiwgIl9SQ0MiLCAiX1JDVSIsICJfUkQiLCAiX1JETCIsICJfUkRUIiwgIl9SRyIsICJfUkdTSSIsICJfUkdTSUFTRCIsICJfUkdTSUFTREwiLCAiX1JHU0lBU1UiLCAiX1JHU0lBU1VMIiwgIl9SR1NJRCIsICJfUkdTSURMIiwgIl9SR1NJTCIsICJfUkdTSVMiLCAiX1JHU0lTRCIsICJfUkdTSVNETCIsICJfUkdTSVNVIiwgIl9SR1NJU1VMIiwgIl9SR1NJVSIsICJfUkdVIiwgIl9SR1VMIiwgIl9SSSIsICJfUklDTSIsICJfUklEVCIsICJfUklQIiwgIl9SSVVFIiwgIl9SSWUiLCAiX1JMIiwgIl9STEUiLCAiX1JOIiwgIl9STkZFIiwgIl9STkZFZSIsICJfUlAiLCAiX1JQSUQiLCAiX1JQUkNBU1MiLCAiX1JQUkNBU1NVIiwgIl9SUFJDQVNVIiwgIl9SUFJDVSIsICJfUlBXQ0FTUyIsICJfUlBXQ1UiLCAiX1JTIiwgIl9SU0QiLCAiX1JTREwiLCAiX1JTRGUiLCAiX1JTUFAiLCAiX1JTVSIsICJfUlNVTCIsICJfUlNlIiwgIl9SU2VzIiwgIl9SVEMiLCAiX1JUQ1MiLCAiX1JURkIiLCAiX1JURkJJIiwgIl9SVEZCTyIsICJfUlRUUElUIiwgIl9SVFRQSVRJIiwgIl9SVFRQSVRPIiwgIl9SVSIsICJfUlVMIiwgIl9SVVBTIiwgIl9SVWUiLCAiX1JWIiwgIl9SVk9DQ0YiLCAiX1JXQ0UiLCAiX1JlIiwgIl9SZXAiLCAiX1MiLCAiX1NBIiwgIl9TQiIsICJfU0JBIiwgIl9TQk8iLCAiX1NCUyIsICJfU0MiLCAiX1NEIiwgIl9TRSIsICJfU0VSR0IiLCAiX1NGIiwgIl9TSSIsICJfU0lDIiwgIl9TSUNNIiwgIl9TSUYiLCAiX1NLUCIsICJfU08iLCAiX1NPQyIsICJfU1AiLCAiX1NQVSIsICJfU1ByIiwgIl9TUyIsICJfU1NBIiwgIl9TU0VEIiwgIl9TU0VTIiwgIl9TU0VTTyIsICJfU1NFVCIsICJfU1NLS0kiLCAiX1NTXyIsICJfU1QiLCAiX1NUQSIsICJfU1REIiwgIl9TVEZEIiwgIl9TVE4iLCAiX1NWVCIsICJfU18iLCAiX1NjIiwgIl9TZSIsICJfU2VnIiwgIl9TdCIsICJfU3RhIiwgIl9UIiwgIl9UQSIsICJfVEFFRSIsICJfVEFTRCIsICJfVEMiLCAiX1RDRFQiLCAiX1RDRSIsICJfVENFciIsICJfVENPIiwgIl9UQ1AiLCAiX1RDUyIsICJfVEQiLCAiX1RFIiwgIl9UR0kiLCAiX1RHSUkiLCAiX1RHSUwiLCAiX1RHSU8iLCAiX1RHSXIiLCAiX1RJIiwgIl9USVBFIiwgIl9USVVFIiwgIl9USXIiLCAiX1RLIiwgIl9UTCIsICJfVE1SQ1UiLCAiX1RNV0NVIiwgIl9UTiIsICJfVE5GRSIsICJfVE5hIiwgIl9UUiIsICJfVFJJIiwgIl9UUkwiLCAiX1RSTEIiLCAiX1RSVUIiLCAiX1RSYSIsICJfVFJoIiwgIl9UUyIsICJfVFNCIiwgIl9UU2EiLCAiX1RTbyIsICJfVFRMRCIsICJfVFRMUyIsICJfVFRMU2kiLCAiX1RUTiIsICJfVFRTUEMiLCAiX1RWIiwgIl9UV0kiLCAiX1RXSUkiLCAiX1RXSUwiLCAiX1RXSU8iLCAiX1RXSXIiLCAiX1RXVEQiLCAiX1RhIiwgIl9UYWciLCAiX1UiLCAiX1VDQiIsICJfVUNCSSIsICJfVUNCTyIsICJfVUNJIiwgIl9VQ0lJIiwgIl9VQ0lPIiwgIl9VRSIsICJfVUdTSUEiLCAiX1VHVCIsICJfVUdUSSIsICJfVUdUTyIsICJfVUdUUyIsICJfVUdUU0kiLCAiX1VHVFNPIiwgIl9VSSIsICJfVUlJIiwgIl9VSU8iLCAiX1VJcCIsICJfVUsiLCAiX1VLU0MiLCAiX1VLU0QiLCAiX1VLU0RJIiwgIl9VS1NETyIsICJfVUxSVCIsICJfVVIiLCAiX1VSR01BIiwgIl9VUkkiLCAiX1VUIiwgIl9VVEkiLCAiX1VUTyIsICJfVVRSQVMiLCAiX1VUUkFTSSIsICJfVVRSQVNPIiwgIl9VVFRMIiwgIl9VVFRMSSIsICJfVVRUTE8iLCAiX1YiLCAiX1dDVSIsICJfV1IiLCAiX1dSciIsICJfV1MiLCAiX1dUIiwgIl9XVVBTIiwgIl9hUUUiLCAiX2MiLCAiX2UiLCAiX2hFIiwgIl9oSCIsICJfbSIsICJfciIsICJfcmUiLCAiX3MiLCAiX3NtIiwgIl90UiIsICJfeGFjcnNyYSIsICJuMCIsICJBcmNoaXZhbFN1bW1hcnkkIiwgIkF0dHJpYnV0ZURlZmluaXRpb24kIiwgIkF0dHJpYnV0ZVZhbHVlVXBkYXRlJCIsICJBdHRyaWJ1dGVWYWx1ZSQiLCAiQXV0b1NjYWxpbmdQb2xpY3lEZXNjcmlwdGlvbiQiLCAiQXV0b1NjYWxpbmdUYXJnZXRUcmFja2luZ1NjYWxpbmdQb2xpY3lDb25maWd1cmF0aW9uRGVzY3JpcHRpb24kIiwgIkF1dG9TY2FsaW5nUG9saWN5VXBkYXRlJCIsICJBdXRvU2NhbGluZ1RhcmdldFRyYWNraW5nU2NhbGluZ1BvbGljeUNvbmZpZ3VyYXRpb25VcGRhdGUkIiwgIkF1dG9TY2FsaW5nU2V0dGluZ3NEZXNjcmlwdGlvbiQiLCAiQXV0b1NjYWxpbmdQb2xpY3lEZXNjcmlwdGlvbkxpc3QiLCAiQXV0b1NjYWxpbmdTZXR0aW5nc1VwZGF0ZSQiLCAiQmFja3VwRGVzY3JpcHRpb24kIiwgIkJhY2t1cERldGFpbHMkIiwgIlNvdXJjZVRhYmxlRGV0YWlscyQiLCAiU291cmNlVGFibGVGZWF0dXJlRGV0YWlscyQiLCAiQmFja3VwSW5Vc2VFeGNlcHRpb24kIiwgIkJhY2t1cE5vdEZvdW5kRXhjZXB0aW9uJCIsICJCYWNrdXBTdW1tYXJ5JCIsICJCYXRjaEV4ZWN1dGVTdGF0ZW1lbnRJbnB1dCQiLCAiUGFydGlRTEJhdGNoUmVxdWVzdCIsICJCYXRjaEV4ZWN1dGVTdGF0ZW1lbnRPdXRwdXQkIiwgIlBhcnRpUUxCYXRjaFJlc3BvbnNlIiwgIkNvbnN1bWVkQ2FwYWNpdHlNdWx0aXBsZSIsICJCYXRjaEdldEl0ZW1JbnB1dCQiLCAiQmF0Y2hHZXRSZXF1ZXN0TWFwIiwgIkJhdGNoR2V0SXRlbU91dHB1dCQiLCAiQmF0Y2hHZXRSZXNwb25zZU1hcCIsICJCYXRjaFN0YXRlbWVudEVycm9yJCIsICJBdHRyaWJ1dGVNYXAiLCAiQmF0Y2hTdGF0ZW1lbnRSZXF1ZXN0JCIsICJQcmVwYXJlZFN0YXRlbWVudFBhcmFtZXRlcnMiLCAiQmF0Y2hTdGF0ZW1lbnRSZXNwb25zZSQiLCAiQmF0Y2hXcml0ZUl0ZW1JbnB1dCQiLCAiQmF0Y2hXcml0ZUl0ZW1SZXF1ZXN0TWFwIiwgIkJhdGNoV3JpdGVJdGVtT3V0cHV0JCIsICJJdGVtQ29sbGVjdGlvbk1ldHJpY3NQZXJUYWJsZSIsICJCaWxsaW5nTW9kZVN1bW1hcnkkIiwgIkNhbmNlbGxhdGlvblJlYXNvbiQiLCAiQ2FwYWNpdHkkIiwgIkNvbmRpdGlvbiQiLCAiQXR0cmlidXRlVmFsdWVMaXN0IiwgIkNvbmRpdGlvbmFsQ2hlY2tGYWlsZWRFeGNlcHRpb24kIiwgIkNvbmRpdGlvbkNoZWNrJCIsICJLZXkiLCAiRXhwcmVzc2lvbkF0dHJpYnV0ZVZhbHVlTWFwIiwgIkNvbnN1bWVkQ2FwYWNpdHkkIiwgIlNlY29uZGFyeUluZGV4ZXNDYXBhY2l0eU1hcCIsICJDb250aW51b3VzQmFja3Vwc0Rlc2NyaXB0aW9uJCIsICJQb2ludEluVGltZVJlY292ZXJ5RGVzY3JpcHRpb24kIiwgIkNvbnRpbnVvdXNCYWNrdXBzVW5hdmFpbGFibGVFeGNlcHRpb24kIiwgIkNvbnRyaWJ1dG9ySW5zaWdodHNTdW1tYXJ5JCIsICJDcmVhdGVCYWNrdXBJbnB1dCQiLCAiQ3JlYXRlQmFja3VwT3V0cHV0JCIsICJDcmVhdGVHbG9iYWxTZWNvbmRhcnlJbmRleEFjdGlvbiQiLCAiS2V5U2NoZW1hIiwgIlByb2plY3Rpb24kIiwgIlByb3Zpc2lvbmVkVGhyb3VnaHB1dCQiLCAiT25EZW1hbmRUaHJvdWdocHV0JCIsICJXYXJtVGhyb3VnaHB1dCQiLCAiQ3JlYXRlR2xvYmFsVGFibGVJbnB1dCQiLCAiUmVwbGljYUxpc3QiLCAiQ3JlYXRlR2xvYmFsVGFibGVPdXRwdXQkIiwgIkdsb2JhbFRhYmxlRGVzY3JpcHRpb24kIiwgIkNyZWF0ZUdsb2JhbFRhYmxlV2l0bmVzc0dyb3VwTWVtYmVyQWN0aW9uJCIsICJDcmVhdGVSZXBsaWNhQWN0aW9uJCIsICJDcmVhdGVSZXBsaWNhdGlvbkdyb3VwTWVtYmVyQWN0aW9uJCIsICJQcm92aXNpb25lZFRocm91Z2hwdXRPdmVycmlkZSQiLCAiT25EZW1hbmRUaHJvdWdocHV0T3ZlcnJpZGUkIiwgIlJlcGxpY2FHbG9iYWxTZWNvbmRhcnlJbmRleExpc3QiLCAiQ3JlYXRlVGFibGVJbnB1dCQiLCAiQXR0cmlidXRlRGVmaW5pdGlvbnMiLCAiTG9jYWxTZWNvbmRhcnlJbmRleExpc3QiLCAiR2xvYmFsU2Vjb25kYXJ5SW5kZXhMaXN0IiwgIlN0cmVhbVNwZWNpZmljYXRpb24kIiwgIlNTRVNwZWNpZmljYXRpb24kIiwgIlRhZ0xpc3QiLCAiQ3JlYXRlVGFibGVPdXRwdXQkIiwgIlRhYmxlRGVzY3JpcHRpb24kIiwgIkNzdk9wdGlvbnMkIiwgIkRlbGV0ZSQiLCAiRGVsZXRlQmFja3VwSW5wdXQkIiwgIkRlbGV0ZUJhY2t1cE91dHB1dCQiLCAiRGVsZXRlR2xvYmFsU2Vjb25kYXJ5SW5kZXhBY3Rpb24kIiwgIkRlbGV0ZUdsb2JhbFRhYmxlV2l0bmVzc0dyb3VwTWVtYmVyQWN0aW9uJCIsICJEZWxldGVJdGVtSW5wdXQkIiwgIkV4cGVjdGVkQXR0cmlidXRlTWFwIiwgIkRlbGV0ZUl0ZW1PdXRwdXQkIiwgIkl0ZW1Db2xsZWN0aW9uTWV0cmljcyQiLCAiRGVsZXRlUmVwbGljYUFjdGlvbiQiLCAiRGVsZXRlUmVwbGljYXRpb25Hcm91cE1lbWJlckFjdGlvbiQiLCAiRGVsZXRlUmVxdWVzdCQiLCAiRGVsZXRlUmVzb3VyY2VQb2xpY3lJbnB1dCQiLCAiRGVsZXRlUmVzb3VyY2VQb2xpY3lPdXRwdXQkIiwgIkRlbGV0ZVRhYmxlSW5wdXQkIiwgIkRlbGV0ZVRhYmxlT3V0cHV0JCIsICJEZXNjcmliZUJhY2t1cElucHV0JCIsICJEZXNjcmliZUJhY2t1cE91dHB1dCQiLCAiRGVzY3JpYmVDb250aW51b3VzQmFja3Vwc0lucHV0JCIsICJEZXNjcmliZUNvbnRpbnVvdXNCYWNrdXBzT3V0cHV0JCIsICJEZXNjcmliZUNvbnRyaWJ1dG9ySW5zaWdodHNJbnB1dCQiLCAiRGVzY3JpYmVDb250cmlidXRvckluc2lnaHRzT3V0cHV0JCIsICJGYWlsdXJlRXhjZXB0aW9uJCIsICJEZXNjcmliZUVuZHBvaW50c1JlcXVlc3QkIiwgIkRlc2NyaWJlRW5kcG9pbnRzUmVzcG9uc2UkIiwgIkVuZHBvaW50cyIsICJEZXNjcmliZUV4cG9ydElucHV0JCIsICJEZXNjcmliZUV4cG9ydE91dHB1dCQiLCAiRXhwb3J0RGVzY3JpcHRpb24kIiwgIkRlc2NyaWJlR2xvYmFsVGFibGVJbnB1dCQiLCAiRGVzY3JpYmVHbG9iYWxUYWJsZU91dHB1dCQiLCAiRGVzY3JpYmVHbG9iYWxUYWJsZVNldHRpbmdzSW5wdXQkIiwgIkRlc2NyaWJlR2xvYmFsVGFibGVTZXR0aW5nc091dHB1dCQiLCAiUmVwbGljYVNldHRpbmdzRGVzY3JpcHRpb25MaXN0IiwgIkRlc2NyaWJlSW1wb3J0SW5wdXQkIiwgIkRlc2NyaWJlSW1wb3J0T3V0cHV0JCIsICJJbXBvcnRUYWJsZURlc2NyaXB0aW9uJCIsICJEZXNjcmliZUtpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvbklucHV0JCIsICJEZXNjcmliZUtpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvbk91dHB1dCQiLCAiS2luZXNpc0RhdGFTdHJlYW1EZXN0aW5hdGlvbnMiLCAiRGVzY3JpYmVMaW1pdHNJbnB1dCQiLCAiRGVzY3JpYmVMaW1pdHNPdXRwdXQkIiwgIkRlc2NyaWJlVGFibGVJbnB1dCQiLCAiRGVzY3JpYmVUYWJsZU91dHB1dCQiLCAiRGVzY3JpYmVUYWJsZVJlcGxpY2FBdXRvU2NhbGluZ0lucHV0JCIsICJEZXNjcmliZVRhYmxlUmVwbGljYUF1dG9TY2FsaW5nT3V0cHV0JCIsICJUYWJsZUF1dG9TY2FsaW5nRGVzY3JpcHRpb24kIiwgIkRlc2NyaWJlVGltZVRvTGl2ZUlucHV0JCIsICJEZXNjcmliZVRpbWVUb0xpdmVPdXRwdXQkIiwgIlRpbWVUb0xpdmVEZXNjcmlwdGlvbiQiLCAiRHVwbGljYXRlSXRlbUV4Y2VwdGlvbiQiLCAiRW5hYmxlS2luZXNpc1N0cmVhbWluZ0NvbmZpZ3VyYXRpb24kIiwgIkVuZHBvaW50JCIsICJFeGVjdXRlU3RhdGVtZW50SW5wdXQkIiwgIkV4ZWN1dGVTdGF0ZW1lbnRPdXRwdXQkIiwgIkl0ZW1MaXN0IiwgIkV4ZWN1dGVUcmFuc2FjdGlvbklucHV0JCIsICJQYXJhbWV0ZXJpemVkU3RhdGVtZW50cyIsICJFeGVjdXRlVHJhbnNhY3Rpb25PdXRwdXQkIiwgIkl0ZW1SZXNwb25zZUxpc3QiLCAiRXhwZWN0ZWRBdHRyaWJ1dGVWYWx1ZSQiLCAiRXhwb3J0Q29uZmxpY3RFeGNlcHRpb24kIiwgIkluY3JlbWVudGFsRXhwb3J0U3BlY2lmaWNhdGlvbiQiLCAiRXhwb3J0Tm90Rm91bmRFeGNlcHRpb24kIiwgIkV4cG9ydFN1bW1hcnkkIiwgIkV4cG9ydFRhYmxlVG9Qb2ludEluVGltZUlucHV0JCIsICJFeHBvcnRUYWJsZVRvUG9pbnRJblRpbWVPdXRwdXQkIiwgIkdldCQiLCAiR2V0SXRlbUlucHV0JCIsICJHZXRJdGVtT3V0cHV0JCIsICJHZXRSZXNvdXJjZVBvbGljeUlucHV0JCIsICJHZXRSZXNvdXJjZVBvbGljeU91dHB1dCQiLCAiR2xvYmFsU2Vjb25kYXJ5SW5kZXgkIiwgIkdsb2JhbFNlY29uZGFyeUluZGV4QXV0b1NjYWxpbmdVcGRhdGUkIiwgIkdsb2JhbFNlY29uZGFyeUluZGV4RGVzY3JpcHRpb24kIiwgIlByb3Zpc2lvbmVkVGhyb3VnaHB1dERlc2NyaXB0aW9uJCIsICJHbG9iYWxTZWNvbmRhcnlJbmRleFdhcm1UaHJvdWdocHV0RGVzY3JpcHRpb24kIiwgIkdsb2JhbFNlY29uZGFyeUluZGV4SW5mbyQiLCAiR2xvYmFsU2Vjb25kYXJ5SW5kZXhVcGRhdGUkIiwgIlVwZGF0ZUdsb2JhbFNlY29uZGFyeUluZGV4QWN0aW9uJCIsICJHbG9iYWxUYWJsZSQiLCAiR2xvYmFsVGFibGVBbHJlYWR5RXhpc3RzRXhjZXB0aW9uJCIsICJSZXBsaWNhRGVzY3JpcHRpb25MaXN0IiwgIkdsb2JhbFRhYmxlR2xvYmFsU2Vjb25kYXJ5SW5kZXhTZXR0aW5nc1VwZGF0ZSQiLCAiR2xvYmFsVGFibGVOb3RGb3VuZEV4Y2VwdGlvbiQiLCAiR2xvYmFsVGFibGVXaXRuZXNzRGVzY3JpcHRpb24kIiwgIkdsb2JhbFRhYmxlV2l0bmVzc0dyb3VwVXBkYXRlJCIsICJJZGVtcG90ZW50UGFyYW1ldGVyTWlzbWF0Y2hFeGNlcHRpb24kIiwgIkltcG9ydENvbmZsaWN0RXhjZXB0aW9uJCIsICJJbXBvcnROb3RGb3VuZEV4Y2VwdGlvbiQiLCAiSW1wb3J0U3VtbWFyeSQiLCAiUzNCdWNrZXRTb3VyY2UkIiwgIklucHV0Rm9ybWF0T3B0aW9ucyQiLCAiVGFibGVDcmVhdGlvblBhcmFtZXRlcnMkIiwgIkltcG9ydFRhYmxlSW5wdXQkIiwgIkltcG9ydFRhYmxlT3V0cHV0JCIsICJJbmRleE5vdEZvdW5kRXhjZXB0aW9uJCIsICJJbnRlcm5hbFNlcnZlckVycm9yJCIsICJJbnZhbGlkRW5kcG9pbnRFeGNlcHRpb24kIiwgIkludmFsaWRFeHBvcnRUaW1lRXhjZXB0aW9uJCIsICJJbnZhbGlkUmVzdG9yZVRpbWVFeGNlcHRpb24kIiwgIkl0ZW1Db2xsZWN0aW9uS2V5QXR0cmlidXRlTWFwIiwgIkl0ZW1Db2xsZWN0aW9uU2l6ZUxpbWl0RXhjZWVkZWRFeGNlcHRpb24kIiwgIkl0ZW1SZXNwb25zZSQiLCAiS2V5c0FuZEF0dHJpYnV0ZXMkIiwgIktleUxpc3QiLCAiS2V5U2NoZW1hRWxlbWVudCQiLCAiS2luZXNpc0RhdGFTdHJlYW1EZXN0aW5hdGlvbiQiLCAiS2luZXNpc1N0cmVhbWluZ0Rlc3RpbmF0aW9uSW5wdXQkIiwgIktpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvbk91dHB1dCQiLCAiTGltaXRFeGNlZWRlZEV4Y2VwdGlvbiQiLCAiTGlzdEJhY2t1cHNJbnB1dCQiLCAiTGlzdEJhY2t1cHNPdXRwdXQkIiwgIkJhY2t1cFN1bW1hcmllcyIsICJMaXN0Q29udHJpYnV0b3JJbnNpZ2h0c0lucHV0JCIsICJMaXN0Q29udHJpYnV0b3JJbnNpZ2h0c091dHB1dCQiLCAiQ29udHJpYnV0b3JJbnNpZ2h0c1N1bW1hcmllcyIsICJMaXN0RXhwb3J0c0lucHV0JCIsICJMaXN0RXhwb3J0c091dHB1dCQiLCAiRXhwb3J0U3VtbWFyaWVzIiwgIkxpc3RHbG9iYWxUYWJsZXNJbnB1dCQiLCAiTGlzdEdsb2JhbFRhYmxlc091dHB1dCQiLCAiR2xvYmFsVGFibGVMaXN0IiwgIkxpc3RJbXBvcnRzSW5wdXQkIiwgIkxpc3RJbXBvcnRzT3V0cHV0JCIsICJJbXBvcnRTdW1tYXJ5TGlzdCIsICJMaXN0VGFibGVzSW5wdXQkIiwgIkxpc3RUYWJsZXNPdXRwdXQkIiwgIkxpc3RUYWdzT2ZSZXNvdXJjZUlucHV0JCIsICJMaXN0VGFnc09mUmVzb3VyY2VPdXRwdXQkIiwgIkxvY2FsU2Vjb25kYXJ5SW5kZXgkIiwgIkxvY2FsU2Vjb25kYXJ5SW5kZXhEZXNjcmlwdGlvbiQiLCAiTG9jYWxTZWNvbmRhcnlJbmRleEluZm8kIiwgIlBhcmFtZXRlcml6ZWRTdGF0ZW1lbnQkIiwgIlBvaW50SW5UaW1lUmVjb3ZlcnlTcGVjaWZpY2F0aW9uJCIsICJQb2ludEluVGltZVJlY292ZXJ5VW5hdmFpbGFibGVFeGNlcHRpb24kIiwgIlBvbGljeU5vdEZvdW5kRXhjZXB0aW9uJCIsICJQcm92aXNpb25lZFRocm91Z2hwdXRFeGNlZWRlZEV4Y2VwdGlvbiQiLCAiVGhyb3R0bGluZ1JlYXNvbkxpc3QiLCAiUHV0JCIsICJQdXRJdGVtSW5wdXRBdHRyaWJ1dGVNYXAiLCAiUHV0SXRlbUlucHV0JCIsICJQdXRJdGVtT3V0cHV0JCIsICJQdXRSZXF1ZXN0JCIsICJQdXRSZXNvdXJjZVBvbGljeUlucHV0JCIsICJQdXRSZXNvdXJjZVBvbGljeU91dHB1dCQiLCAiUXVlcnlJbnB1dCQiLCAiS2V5Q29uZGl0aW9ucyIsICJGaWx0ZXJDb25kaXRpb25NYXAiLCAiUXVlcnlPdXRwdXQkIiwgIlJlcGxpY2EkIiwgIlJlcGxpY2FBbHJlYWR5RXhpc3RzRXhjZXB0aW9uJCIsICJSZXBsaWNhQXV0b1NjYWxpbmdEZXNjcmlwdGlvbiQiLCAiUmVwbGljYUdsb2JhbFNlY29uZGFyeUluZGV4QXV0b1NjYWxpbmdEZXNjcmlwdGlvbkxpc3QiLCAiUmVwbGljYUF1dG9TY2FsaW5nVXBkYXRlJCIsICJSZXBsaWNhR2xvYmFsU2Vjb25kYXJ5SW5kZXhBdXRvU2NhbGluZ1VwZGF0ZUxpc3QiLCAiUmVwbGljYURlc2NyaXB0aW9uJCIsICJUYWJsZVdhcm1UaHJvdWdocHV0RGVzY3JpcHRpb24kIiwgIlJlcGxpY2FHbG9iYWxTZWNvbmRhcnlJbmRleERlc2NyaXB0aW9uTGlzdCIsICJUYWJsZUNsYXNzU3VtbWFyeSQiLCAiUmVwbGljYUdsb2JhbFNlY29uZGFyeUluZGV4JCIsICJSZXBsaWNhR2xvYmFsU2Vjb25kYXJ5SW5kZXhBdXRvU2NhbGluZ0Rlc2NyaXB0aW9uJCIsICJSZXBsaWNhR2xvYmFsU2Vjb25kYXJ5SW5kZXhBdXRvU2NhbGluZ1VwZGF0ZSQiLCAiUmVwbGljYUdsb2JhbFNlY29uZGFyeUluZGV4RGVzY3JpcHRpb24kIiwgIlJlcGxpY2FHbG9iYWxTZWNvbmRhcnlJbmRleFNldHRpbmdzRGVzY3JpcHRpb24kIiwgIlJlcGxpY2FHbG9iYWxTZWNvbmRhcnlJbmRleFNldHRpbmdzVXBkYXRlJCIsICJSZXBsaWNhTm90Rm91bmRFeGNlcHRpb24kIiwgIlJlcGxpY2FTZXR0aW5nc0Rlc2NyaXB0aW9uJCIsICJSZXBsaWNhR2xvYmFsU2Vjb25kYXJ5SW5kZXhTZXR0aW5nc0Rlc2NyaXB0aW9uTGlzdCIsICJSZXBsaWNhU2V0dGluZ3NVcGRhdGUkIiwgIlJlcGxpY2FHbG9iYWxTZWNvbmRhcnlJbmRleFNldHRpbmdzVXBkYXRlTGlzdCIsICJSZXBsaWNhdGVkV3JpdGVDb25mbGljdEV4Y2VwdGlvbiQiLCAiUmVwbGljYXRpb25Hcm91cFVwZGF0ZSQiLCAiVXBkYXRlUmVwbGljYXRpb25Hcm91cE1lbWJlckFjdGlvbiQiLCAiUmVwbGljYVVwZGF0ZSQiLCAiUmVxdWVzdExpbWl0RXhjZWVkZWQkIiwgIlJlc291cmNlSW5Vc2VFeGNlcHRpb24kIiwgIlJlc291cmNlTm90Rm91bmRFeGNlcHRpb24kIiwgIlJlc3RvcmVTdW1tYXJ5JCIsICJSZXN0b3JlVGFibGVGcm9tQmFja3VwSW5wdXQkIiwgIlJlc3RvcmVUYWJsZUZyb21CYWNrdXBPdXRwdXQkIiwgIlJlc3RvcmVUYWJsZVRvUG9pbnRJblRpbWVJbnB1dCQiLCAiUmVzdG9yZVRhYmxlVG9Qb2ludEluVGltZU91dHB1dCQiLCAiU2NhbklucHV0JCIsICJTY2FuT3V0cHV0JCIsICJMb2NhbFNlY29uZGFyeUluZGV4ZXMiLCAiR2xvYmFsU2Vjb25kYXJ5SW5kZXhlcyIsICJTU0VEZXNjcmlwdGlvbiQiLCAiVGFibGVBbHJlYWR5RXhpc3RzRXhjZXB0aW9uJCIsICJSZXBsaWNhQXV0b1NjYWxpbmdEZXNjcmlwdGlvbkxpc3QiLCAiTG9jYWxTZWNvbmRhcnlJbmRleERlc2NyaXB0aW9uTGlzdCIsICJHbG9iYWxTZWNvbmRhcnlJbmRleERlc2NyaXB0aW9uTGlzdCIsICJHbG9iYWxUYWJsZVdpdG5lc3NEZXNjcmlwdGlvbkxpc3QiLCAiVGFibGVJblVzZUV4Y2VwdGlvbiQiLCAiVGFibGVOb3RGb3VuZEV4Y2VwdGlvbiQiLCAiVGFnJCIsICJUYWdSZXNvdXJjZUlucHV0JCIsICJUaHJvdHRsaW5nRXhjZXB0aW9uJCIsICJUaHJvdHRsaW5nUmVhc29uJCIsICJUaW1lVG9MaXZlU3BlY2lmaWNhdGlvbiQiLCAiVHJhbnNhY3RHZXRJdGVtJCIsICJUcmFuc2FjdEdldEl0ZW1zSW5wdXQkIiwgIlRyYW5zYWN0R2V0SXRlbUxpc3QiLCAiVHJhbnNhY3RHZXRJdGVtc091dHB1dCQiLCAiVHJhbnNhY3Rpb25DYW5jZWxlZEV4Y2VwdGlvbiQiLCAiQ2FuY2VsbGF0aW9uUmVhc29uTGlzdCIsICJUcmFuc2FjdGlvbkNvbmZsaWN0RXhjZXB0aW9uJCIsICJUcmFuc2FjdGlvbkluUHJvZ3Jlc3NFeGNlcHRpb24kIiwgIlRyYW5zYWN0V3JpdGVJdGVtJCIsICJVcGRhdGUkIiwgIlRyYW5zYWN0V3JpdGVJdGVtc0lucHV0JCIsICJUcmFuc2FjdFdyaXRlSXRlbUxpc3QiLCAiVHJhbnNhY3RXcml0ZUl0ZW1zT3V0cHV0JCIsICJVbnRhZ1Jlc291cmNlSW5wdXQkIiwgIlVwZGF0ZUNvbnRpbnVvdXNCYWNrdXBzSW5wdXQkIiwgIlVwZGF0ZUNvbnRpbnVvdXNCYWNrdXBzT3V0cHV0JCIsICJVcGRhdGVDb250cmlidXRvckluc2lnaHRzSW5wdXQkIiwgIlVwZGF0ZUNvbnRyaWJ1dG9ySW5zaWdodHNPdXRwdXQkIiwgIlVwZGF0ZUdsb2JhbFRhYmxlSW5wdXQkIiwgIlJlcGxpY2FVcGRhdGVMaXN0IiwgIlVwZGF0ZUdsb2JhbFRhYmxlT3V0cHV0JCIsICJVcGRhdGVHbG9iYWxUYWJsZVNldHRpbmdzSW5wdXQkIiwgIkdsb2JhbFRhYmxlR2xvYmFsU2Vjb25kYXJ5SW5kZXhTZXR0aW5nc1VwZGF0ZUxpc3QiLCAiUmVwbGljYVNldHRpbmdzVXBkYXRlTGlzdCIsICJVcGRhdGVHbG9iYWxUYWJsZVNldHRpbmdzT3V0cHV0JCIsICJVcGRhdGVJdGVtSW5wdXQkIiwgIkF0dHJpYnV0ZVVwZGF0ZXMiLCAiVXBkYXRlSXRlbU91dHB1dCQiLCAiVXBkYXRlS2luZXNpc1N0cmVhbWluZ0NvbmZpZ3VyYXRpb24kIiwgIlVwZGF0ZUtpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvbklucHV0JCIsICJVcGRhdGVLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb25PdXRwdXQkIiwgIlVwZGF0ZVRhYmxlSW5wdXQkIiwgIkdsb2JhbFNlY29uZGFyeUluZGV4VXBkYXRlTGlzdCIsICJSZXBsaWNhdGlvbkdyb3VwVXBkYXRlTGlzdCIsICJHbG9iYWxUYWJsZVdpdG5lc3NHcm91cFVwZGF0ZUxpc3QiLCAiVXBkYXRlVGFibGVPdXRwdXQkIiwgIlVwZGF0ZVRhYmxlUmVwbGljYUF1dG9TY2FsaW5nSW5wdXQkIiwgIkdsb2JhbFNlY29uZGFyeUluZGV4QXV0b1NjYWxpbmdVcGRhdGVMaXN0IiwgIlJlcGxpY2FBdXRvU2NhbGluZ1VwZGF0ZUxpc3QiLCAiVXBkYXRlVGFibGVSZXBsaWNhQXV0b1NjYWxpbmdPdXRwdXQkIiwgIlVwZGF0ZVRpbWVUb0xpdmVJbnB1dCQiLCAiVXBkYXRlVGltZVRvTGl2ZU91dHB1dCQiLCAiV3JpdGVSZXF1ZXN0JCIsICJfX1VuaXQiLCAiRHluYW1vREJTZXJ2aWNlRXhjZXB0aW9uJCIsICJJdGVtQ29sbGVjdGlvbk1ldHJpY3NNdWx0aXBsZSIsICJMaXN0QXR0cmlidXRlVmFsdWUiLCAiV3JpdGVSZXF1ZXN0cyIsICJNYXBBdHRyaWJ1dGVWYWx1ZSIsICJCYXRjaEV4ZWN1dGVTdGF0ZW1lbnQkIiwgIkJhdGNoR2V0SXRlbSQiLCAiQmF0Y2hXcml0ZUl0ZW0kIiwgIkNyZWF0ZUJhY2t1cCQiLCAiQ3JlYXRlR2xvYmFsVGFibGUkIiwgIkNyZWF0ZVRhYmxlJCIsICJEZWxldGVCYWNrdXAkIiwgIkRlbGV0ZUl0ZW0kIiwgIkRlbGV0ZVJlc291cmNlUG9saWN5JCIsICJEZWxldGVUYWJsZSQiLCAiRGVzY3JpYmVCYWNrdXAkIiwgIkRlc2NyaWJlQ29udGludW91c0JhY2t1cHMkIiwgIkRlc2NyaWJlQ29udHJpYnV0b3JJbnNpZ2h0cyQiLCAiRGVzY3JpYmVFbmRwb2ludHMkIiwgIkRlc2NyaWJlRXhwb3J0JCIsICJEZXNjcmliZUdsb2JhbFRhYmxlJCIsICJEZXNjcmliZUdsb2JhbFRhYmxlU2V0dGluZ3MkIiwgIkRlc2NyaWJlSW1wb3J0JCIsICJEZXNjcmliZUtpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvbiQiLCAiRGVzY3JpYmVMaW1pdHMkIiwgIkRlc2NyaWJlVGFibGUkIiwgIkRlc2NyaWJlVGFibGVSZXBsaWNhQXV0b1NjYWxpbmckIiwgIkRlc2NyaWJlVGltZVRvTGl2ZSQiLCAiRGlzYWJsZUtpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvbiQiLCAiRW5hYmxlS2luZXNpc1N0cmVhbWluZ0Rlc3RpbmF0aW9uJCIsICJFeGVjdXRlU3RhdGVtZW50JCIsICJFeGVjdXRlVHJhbnNhY3Rpb24kIiwgIkV4cG9ydFRhYmxlVG9Qb2ludEluVGltZSQiLCAiR2V0SXRlbSQiLCAiR2V0UmVzb3VyY2VQb2xpY3kkIiwgIkltcG9ydFRhYmxlJCIsICJMaXN0QmFja3VwcyQiLCAiTGlzdENvbnRyaWJ1dG9ySW5zaWdodHMkIiwgIkxpc3RFeHBvcnRzJCIsICJMaXN0R2xvYmFsVGFibGVzJCIsICJMaXN0SW1wb3J0cyQiLCAiTGlzdFRhYmxlcyQiLCAiTGlzdFRhZ3NPZlJlc291cmNlJCIsICJQdXRJdGVtJCIsICJQdXRSZXNvdXJjZVBvbGljeSQiLCAiUXVlcnkkIiwgIlJlc3RvcmVUYWJsZUZyb21CYWNrdXAkIiwgIlJlc3RvcmVUYWJsZVRvUG9pbnRJblRpbWUkIiwgIlNjYW4kIiwgIlRhZ1Jlc291cmNlJCIsICJUcmFuc2FjdEdldEl0ZW1zJCIsICJUcmFuc2FjdFdyaXRlSXRlbXMkIiwgIlVudGFnUmVzb3VyY2UkIiwgIlVwZGF0ZUNvbnRpbnVvdXNCYWNrdXBzJCIsICJVcGRhdGVDb250cmlidXRvckluc2lnaHRzJCIsICJVcGRhdGVHbG9iYWxUYWJsZSQiLCAiVXBkYXRlR2xvYmFsVGFibGVTZXR0aW5ncyQiLCAiVXBkYXRlSXRlbSQiLCAiVXBkYXRlS2luZXNpc1N0cmVhbWluZ0Rlc3RpbmF0aW9uJCIsICJVcGRhdGVUYWJsZSQiLCAiVXBkYXRlVGFibGVSZXBsaWNhQXV0b1NjYWxpbmckIiwgIlVwZGF0ZVRpbWVUb0xpdmUkIiwgIkRlc2NyaWJlRW5kcG9pbnRzQ29tbWFuZCIsICJDb21tYW5kIiwgImNzIiwgImNvbmZpZyIsICJvIiwgImdldEh0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiIsICJfaHR0cEF1dGhTY2hlbWVzIiwgIl9odHRwQXV0aFNjaGVtZVByb3ZpZGVyIiwgIl9jcmVkZW50aWFscyIsICJodHRwQXV0aFNjaGVtZSIsICJpbmRleCIsICJzY2hlbWUiLCAiY3JlZGVudGlhbHMiLCAicmVzb2x2ZUh0dHBBdXRoUnVudGltZUNvbmZpZyIsICJyZXNvbHZlUnVudGltZUV4dGVuc2lvbnMiLCAiZXh0ZW5zaW9ucyIsICJleHRlbnNpb25Db25maWd1cmF0aW9uIiwgImV4dGVuc2lvbiIsICJEeW5hbW9EQkNsaWVudCIsICJjb25maWd1cmF0aW9uIiwgIl9jb25maWdfMCIsICJfY29uZmlnXzEiLCAiX2NvbmZpZ18yIiwgIl9jb25maWdfMyIsICJfY29uZmlnXzQiLCAiX2NvbmZpZ181IiwgIl9jb25maWdfNiIsICJfY29uZmlnXzciLCAiX2NvbmZpZ184IiwgIl9jb25maWdfOSIsICJfY29uZmlnXzEwIiwgIkJhdGNoRXhlY3V0ZVN0YXRlbWVudENvbW1hbmQiLCAiQmF0Y2hHZXRJdGVtQ29tbWFuZCIsICJpbnB1dCIsICJCYXRjaFdyaXRlSXRlbUNvbW1hbmQiLCAiQ3JlYXRlQmFja3VwQ29tbWFuZCIsICJDcmVhdGVHbG9iYWxUYWJsZUNvbW1hbmQiLCAiQ3JlYXRlVGFibGVDb21tYW5kIiwgIkRlbGV0ZUJhY2t1cENvbW1hbmQiLCAiRGVsZXRlSXRlbUNvbW1hbmQiLCAiRGVsZXRlUmVzb3VyY2VQb2xpY3lDb21tYW5kIiwgIkRlbGV0ZVRhYmxlQ29tbWFuZCIsICJEZXNjcmliZUJhY2t1cENvbW1hbmQiLCAiRGVzY3JpYmVDb250aW51b3VzQmFja3Vwc0NvbW1hbmQiLCAiRGVzY3JpYmVDb250cmlidXRvckluc2lnaHRzQ29tbWFuZCIsICJEZXNjcmliZUV4cG9ydENvbW1hbmQiLCAiRGVzY3JpYmVHbG9iYWxUYWJsZUNvbW1hbmQiLCAiRGVzY3JpYmVHbG9iYWxUYWJsZVNldHRpbmdzQ29tbWFuZCIsICJEZXNjcmliZUltcG9ydENvbW1hbmQiLCAiRGVzY3JpYmVLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb25Db21tYW5kIiwgIkRlc2NyaWJlTGltaXRzQ29tbWFuZCIsICJEZXNjcmliZVRhYmxlQ29tbWFuZCIsICJEZXNjcmliZVRhYmxlUmVwbGljYUF1dG9TY2FsaW5nQ29tbWFuZCIsICJEZXNjcmliZVRpbWVUb0xpdmVDb21tYW5kIiwgIkRpc2FibGVLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb25Db21tYW5kIiwgIkVuYWJsZUtpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvbkNvbW1hbmQiLCAiRXhlY3V0ZVN0YXRlbWVudENvbW1hbmQiLCAiRXhlY3V0ZVRyYW5zYWN0aW9uQ29tbWFuZCIsICJFeHBvcnRUYWJsZVRvUG9pbnRJblRpbWVDb21tYW5kIiwgIkdldEl0ZW1Db21tYW5kIiwgIkdldFJlc291cmNlUG9saWN5Q29tbWFuZCIsICJJbXBvcnRUYWJsZUNvbW1hbmQiLCAiTGlzdEJhY2t1cHNDb21tYW5kIiwgIkxpc3RDb250cmlidXRvckluc2lnaHRzQ29tbWFuZCIsICJMaXN0RXhwb3J0c0NvbW1hbmQiLCAiTGlzdEdsb2JhbFRhYmxlc0NvbW1hbmQiLCAiTGlzdEltcG9ydHNDb21tYW5kIiwgIkxpc3RUYWJsZXNDb21tYW5kIiwgIkxpc3RUYWdzT2ZSZXNvdXJjZUNvbW1hbmQiLCAiUHV0SXRlbUNvbW1hbmQiLCAiUHV0UmVzb3VyY2VQb2xpY3lDb21tYW5kIiwgIlF1ZXJ5Q29tbWFuZCIsICJSZXN0b3JlVGFibGVGcm9tQmFja3VwQ29tbWFuZCIsICJSZXN0b3JlVGFibGVUb1BvaW50SW5UaW1lQ29tbWFuZCIsICJTY2FuQ29tbWFuZCIsICJUYWdSZXNvdXJjZUNvbW1hbmQiLCAiVHJhbnNhY3RHZXRJdGVtc0NvbW1hbmQiLCAib2JqIiwgIlRyYW5zYWN0V3JpdGVJdGVtc0NvbW1hbmQiLCAiaSIsICJVbnRhZ1Jlc291cmNlQ29tbWFuZCIsICJVcGRhdGVDb250aW51b3VzQmFja3Vwc0NvbW1hbmQiLCAiVXBkYXRlQ29udHJpYnV0b3JJbnNpZ2h0c0NvbW1hbmQiLCAiVXBkYXRlR2xvYmFsVGFibGVDb21tYW5kIiwgIlVwZGF0ZUdsb2JhbFRhYmxlU2V0dGluZ3NDb21tYW5kIiwgIlVwZGF0ZUl0ZW1Db21tYW5kIiwgIlVwZGF0ZUtpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvbkNvbW1hbmQiLCAiVXBkYXRlVGFibGVDb21tYW5kIiwgIlVwZGF0ZVRhYmxlUmVwbGljYUF1dG9TY2FsaW5nQ29tbWFuZCIsICJVcGRhdGVUaW1lVG9MaXZlQ29tbWFuZCIsICJwYWdpbmF0ZUxpc3RDb250cmlidXRvckluc2lnaHRzIiwgInBhZ2luYXRlTGlzdEV4cG9ydHMiLCAicGFnaW5hdGVMaXN0SW1wb3J0cyIsICJwYWdpbmF0ZUxpc3RUYWJsZXMiLCAicGFnaW5hdGVRdWVyeSIsICJwYWdpbmF0ZVNjYW4iLCAiY2hlY2tTdGF0ZSQ1IiwgImNsaWVudCIsICJyZWFzb24iLCAicmVzdWx0IiwgImV4Y2VwdGlvbiIsICJ3YWl0Rm9yQ29udHJpYnV0b3JJbnNpZ2h0c0VuYWJsZWQiLCAicGFyYW1zIiwgInNlcnZpY2VEZWZhdWx0cyIsICJ3YWl0VW50aWxDb250cmlidXRvckluc2lnaHRzRW5hYmxlZCIsICJjaGVja1N0YXRlJDQiLCAid2FpdEZvckV4cG9ydENvbXBsZXRlZCIsICJ3YWl0VW50aWxFeHBvcnRDb21wbGV0ZWQiLCAiY2hlY2tTdGF0ZSQzIiwgIndhaXRGb3JJbXBvcnRDb21wbGV0ZWQiLCAid2FpdFVudGlsSW1wb3J0Q29tcGxldGVkIiwgImNoZWNrU3RhdGUkMiIsICJyZXR1cm5Db21wYXJhdG9yIiwgImVsZW1lbnRfMiIsICJhbnlTdHJpbmdFcV80IiwgImZpbHRlclJlc18yIiwgImVsZW1lbnRfMSIsICJ3YWl0Rm9yS2luZXNpc1N0cmVhbWluZ0Rlc3RpbmF0aW9uQWN0aXZlIiwgIndhaXRVbnRpbEtpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvbkFjdGl2ZSIsICJjaGVja1N0YXRlJDEiLCAid2FpdEZvclRhYmxlRXhpc3RzIiwgIndhaXRVbnRpbFRhYmxlRXhpc3RzIiwgImNoZWNrU3RhdGUiLCAid2FpdEZvclRhYmxlTm90RXhpc3RzIiwgIndhaXRVbnRpbFRhYmxlTm90RXhpc3RzIiwgImNvbW1hbmRzIiwgInBhZ2luYXRvcnMiLCAid2FpdGVycyIsICJEeW5hbW9EQiIsICJBcHByb3hpbWF0ZUNyZWF0aW9uRGF0ZVRpbWVQcmVjaXNpb24iLCAiQXR0cmlidXRlQWN0aW9uIiwgIlNjYWxhckF0dHJpYnV0ZVR5cGUiLCAiQmFja3VwU3RhdHVzIiwgIkJhY2t1cFR5cGUiLCAiQmlsbGluZ01vZGUiLCAiS2V5VHlwZSIsICJQcm9qZWN0aW9uVHlwZSIsICJTU0VUeXBlIiwgIlNTRVN0YXR1cyIsICJTdHJlYW1WaWV3VHlwZSIsICJUaW1lVG9MaXZlU3RhdHVzIiwgIkJhY2t1cFR5cGVGaWx0ZXIiLCAiUmV0dXJuQ29uc3VtZWRDYXBhY2l0eSIsICJSZXR1cm5WYWx1ZXNPbkNvbmRpdGlvbkNoZWNrRmFpbHVyZSIsICJCYXRjaFN0YXRlbWVudEVycm9yQ29kZUVudW0iLCAiUmV0dXJuSXRlbUNvbGxlY3Rpb25NZXRyaWNzIiwgIkNvbXBhcmlzb25PcGVyYXRvciIsICJDb25kaXRpb25hbE9wZXJhdG9yIiwgIkNvbnRpbnVvdXNCYWNrdXBzU3RhdHVzIiwgIlBvaW50SW5UaW1lUmVjb3ZlcnlTdGF0dXMiLCAiQ29udHJpYnV0b3JJbnNpZ2h0c0FjdGlvbiIsICJDb250cmlidXRvckluc2lnaHRzTW9kZSIsICJDb250cmlidXRvckluc2lnaHRzU3RhdHVzIiwgIkdsb2JhbFRhYmxlU3RhdHVzIiwgIkluZGV4U3RhdHVzIiwgIlJlcGxpY2FTdGF0dXMiLCAiVGFibGVDbGFzcyIsICJUYWJsZVN0YXR1cyIsICJXaXRuZXNzU3RhdHVzIiwgIk11bHRpUmVnaW9uQ29uc2lzdGVuY3kiLCAiUmV0dXJuVmFsdWUiLCAiRXhwb3J0Rm9ybWF0IiwgIkV4cG9ydFN0YXR1cyIsICJFeHBvcnRUeXBlIiwgIkV4cG9ydFZpZXdUeXBlIiwgIlMzU3NlQWxnb3JpdGhtIiwgIkltcG9ydFN0YXR1cyIsICJJbnB1dENvbXByZXNzaW9uVHlwZSIsICJJbnB1dEZvcm1hdCIsICJEZXN0aW5hdGlvblN0YXR1cyIsICJTZWxlY3QiLCAic3RhdGUiLCAiZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbiIsICJpbml0X2VtaXRXYXJuaW5nSWZVbnN1cHBvcnRlZFZlcnNpb24iLCAiX19lc21NaW4iLCAidmVyc2lvbiIsICJzZXRDcmVkZW50aWFsRmVhdHVyZSIsICJjcmVkZW50aWFscyIsICJmZWF0dXJlIiwgInZhbHVlIiwgImluaXRfc2V0Q3JlZGVudGlhbEZlYXR1cmUiLCAiX19lc21NaW4iLCAic2V0RmVhdHVyZSIsICJjb250ZXh0IiwgImZlYXR1cmUiLCAidmFsdWUiLCAiaW5pdF9zZXRGZWF0dXJlIiwgIl9fZXNtTWluIiwgInNldFRva2VuRmVhdHVyZSIsICJ0b2tlbiIsICJmZWF0dXJlIiwgInZhbHVlIiwgImluaXRfc2V0VG9rZW5GZWF0dXJlIiwgIl9fZXNtTWluIiwgImluaXRfY2xpZW50IiwgIl9fZXNtTWluIiwgImluaXRfZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbiIsICJpbml0X3NldENyZWRlbnRpYWxGZWF0dXJlIiwgImluaXRfc2V0RmVhdHVyZSIsICJpbml0X3NldFRva2VuRmVhdHVyZSIsICJpbXBvcnRfcHJvdG9jb2xfaHR0cCIsICJnZXREYXRlSGVhZGVyIiwgImluaXRfZ2V0RGF0ZUhlYWRlciIsICJfX2VzbU1pbiIsICJyZXNwb25zZSIsICJnZXRTa2V3Q29ycmVjdGVkRGF0ZSIsICJpbml0X2dldFNrZXdDb3JyZWN0ZWREYXRlIiwgIl9fZXNtTWluIiwgInN5c3RlbUNsb2NrT2Zmc2V0IiwgImlzQ2xvY2tTa2V3ZWQiLCAiaW5pdF9pc0Nsb2NrU2tld2VkIiwgIl9fZXNtTWluIiwgImluaXRfZ2V0U2tld0NvcnJlY3RlZERhdGUiLCAiY2xvY2tUaW1lIiwgInN5c3RlbUNsb2NrT2Zmc2V0IiwgImdldFNrZXdDb3JyZWN0ZWREYXRlIiwgImdldFVwZGF0ZWRTeXN0ZW1DbG9ja09mZnNldCIsICJpbml0X2dldFVwZGF0ZWRTeXN0ZW1DbG9ja09mZnNldCIsICJfX2VzbU1pbiIsICJpbml0X2lzQ2xvY2tTa2V3ZWQiLCAiY2xvY2tUaW1lIiwgImN1cnJlbnRTeXN0ZW1DbG9ja09mZnNldCIsICJjbG9ja1RpbWVJbk1zIiwgImlzQ2xvY2tTa2V3ZWQiLCAiaW5pdF91dGlscyIsICJfX2VzbU1pbiIsICJpbml0X2dldERhdGVIZWFkZXIiLCAiaW5pdF9nZXRTa2V3Q29ycmVjdGVkRGF0ZSIsICJpbml0X2dldFVwZGF0ZWRTeXN0ZW1DbG9ja09mZnNldCIsICJpbXBvcnRfcHJvdG9jb2xfaHR0cCIsICJ0aHJvd1NpZ25pbmdQcm9wZXJ0eUVycm9yIiwgInZhbGlkYXRlU2lnbmluZ1Byb3BlcnRpZXMiLCAiQXdzU2RrU2lnVjRTaWduZXIiLCAiQVdTU0RLU2lnVjRTaWduZXIiLCAiaW5pdF9Bd3NTZGtTaWdWNFNpZ25lciIsICJfX2VzbU1pbiIsICJpbml0X3V0aWxzIiwgIm5hbWUiLCAicHJvcGVydHkiLCAic2lnbmluZ1Byb3BlcnRpZXMiLCAiY29udGV4dCIsICJjb25maWciLCAiYXV0aFNjaGVtZSIsICJzaWduZXIiLCAic2lnbmluZ1JlZ2lvbiIsICJzaWduaW5nUmVnaW9uU2V0IiwgInNpZ25pbmdOYW1lIiwgImh0dHBSZXF1ZXN0IiwgImlkZW50aXR5IiwgInZhbGlkYXRlZFByb3BzIiwgImhhbmRsZXJFeGVjdXRpb25Db250ZXh0IiwgImZpcnN0IiwgInNlY29uZCIsICJnZXRTa2V3Q29ycmVjdGVkRGF0ZSIsICJlcnJvciIsICJzZXJ2ZXJUaW1lIiwgImdldERhdGVIZWFkZXIiLCAiaW5pdGlhbFN5c3RlbUNsb2NrT2Zmc2V0IiwgImdldFVwZGF0ZWRTeXN0ZW1DbG9ja09mZnNldCIsICJodHRwUmVzcG9uc2UiLCAiZGF0ZUhlYWRlciIsICJpbXBvcnRfcHJvdG9jb2xfaHR0cCIsICJBd3NTZGtTaWdWNEFTaWduZXIiLCAiaW5pdF9Bd3NTZGtTaWdWNEFTaWduZXIiLCAiX19lc21NaW4iLCAiaW5pdF91dGlscyIsICJpbml0X0F3c1Nka1NpZ1Y0U2lnbmVyIiwgIkF3c1Nka1NpZ1Y0U2lnbmVyIiwgImh0dHBSZXF1ZXN0IiwgImlkZW50aXR5IiwgInNpZ25pbmdQcm9wZXJ0aWVzIiwgImNvbmZpZyIsICJzaWduZXIiLCAic2lnbmluZ1JlZ2lvbiIsICJzaWduaW5nUmVnaW9uU2V0IiwgInNpZ25pbmdOYW1lIiwgInZhbGlkYXRlU2lnbmluZ1Byb3BlcnRpZXMiLCAibXVsdGlSZWdpb25PdmVycmlkZSIsICJnZXRTa2V3Q29ycmVjdGVkRGF0ZSIsICJnZXRBcnJheUZvckNvbW1hU2VwYXJhdGVkU3RyaW5nIiwgImluaXRfZ2V0QXJyYXlGb3JDb21tYVNlcGFyYXRlZFN0cmluZyIsICJfX2VzbU1pbiIsICJzdHIiLCAiaXRlbSIsICJnZXRCZWFyZXJUb2tlbkVudktleSIsICJpbml0X2dldEJlYXJlclRva2VuRW52S2V5IiwgIl9fZXNtTWluIiwgInNpZ25pbmdOYW1lIiwgIk5PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9FTlZfS0VZIiwgIk5PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9DT05GSUdfS0VZIiwgIk5PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9PUFRJT05TIiwgImluaXRfTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX09QVElPTlMiLCAiX19lc21NaW4iLCAiaW5pdF9nZXRBcnJheUZvckNvbW1hU2VwYXJhdGVkU3RyaW5nIiwgImluaXRfZ2V0QmVhcmVyVG9rZW5FbnZLZXkiLCAiZW52IiwgIm9wdGlvbnMiLCAiZ2V0QmVhcmVyVG9rZW5FbnZLZXkiLCAiZ2V0QXJyYXlGb3JDb21tYVNlcGFyYXRlZFN0cmluZyIsICJwcm9maWxlIiwgImltcG9ydF9jb3JlIiwgImltcG9ydF9wcm9wZXJ0eV9wcm92aWRlciIsICJyZXNvbHZlQXdzU2RrU2lnVjRBQ29uZmlnIiwgIk5PREVfU0lHVjRBX0NPTkZJR19PUFRJT05TIiwgImluaXRfcmVzb2x2ZUF3c1Nka1NpZ1Y0QUNvbmZpZyIsICJfX2VzbU1pbiIsICJjb25maWciLCAiZW52IiwgIl8iLCAicHJvZmlsZSIsICJub3JtYWxpemVDcmVkZW50aWFsUHJvdmlkZXIiLCAiY29uZmlnIiwgImNyZWRlbnRpYWxzIiwgImNyZWRlbnRpYWxEZWZhdWx0UHJvdmlkZXIiLCAiY3JlZGVudGlhbHNQcm92aWRlciIsICJiaW5kQ2FsbGVyQ29uZmlnIiwgImZuIiwgIm9wdGlvbnMiLCAiaW1wb3J0X2NvcmUiLCAiaW1wb3J0X3NpZ25hdHVyZV92NCIsICJyZXNvbHZlQXdzU2RrU2lnVjRDb25maWciLCAicmVzb2x2ZUFXU1NES1NpZ1Y0Q29uZmlnIiwgImluaXRfcmVzb2x2ZUF3c1Nka1NpZ1Y0Q29uZmlnIiwgIl9fZXNtTWluIiwgImluaXRfY2xpZW50IiwgImlucHV0Q3JlZGVudGlhbHMiLCAiaXNVc2VyU3VwcGxpZWQiLCAicmVzb2x2ZWRDcmVkZW50aWFscyIsICJtZW1vaXplZFByb3ZpZGVyIiwgImJvdW5kUHJvdmlkZXIiLCAiaXNDcmVkZW50aWFsT2JqZWN0IiwgImF0dHJpYnV0ZWRDcmVkcyIsICJzZXRDcmVkZW50aWFsRmVhdHVyZSIsICJzaWduaW5nRXNjYXBlUGF0aCIsICJzeXN0ZW1DbG9ja09mZnNldCIsICJzaGEyNTYiLCAic2lnbmVyIiwgInJlZ2lvbiIsICJyZWdpb25JbmZvIiwgInNpZ25pbmdSZWdpb24iLCAic2lnbmluZ1NlcnZpY2UiLCAicGFyYW1zIiwgIlNpZ25lckN0b3IiLCAiYXV0aFNjaGVtZSIsICJpbml0X2F3c19zZGsiLCAiX19lc21NaW4iLCAiaW5pdF9Bd3NTZGtTaWdWNFNpZ25lciIsICJpbml0X0F3c1Nka1NpZ1Y0QVNpZ25lciIsICJpbml0X05PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9PUFRJT05TIiwgImluaXRfcmVzb2x2ZUF3c1Nka1NpZ1Y0QUNvbmZpZyIsICJpbml0X3Jlc29sdmVBd3NTZGtTaWdWNENvbmZpZyIsICJpbml0X2h0dHBBdXRoU2NoZW1lcyIsICJfX2VzbU1pbiIsICJpbml0X2F3c19zZGsiLCAiaW5pdF9nZXRCZWFyZXJUb2tlbkVudktleSIsICJpbXBvcnRfc2NoZW1hIiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgIlByb3RvY29sTGliIiwgImluaXRfUHJvdG9jb2xMaWIiLCAiX19lc21NaW4iLCAicXVlcnlDb21wYXQiLCAiZGVmYXVsdENvbnRlbnRUeXBlIiwgImlucHV0U2NoZW1hIiwgIm1lbWJlcnMiLCAiaHR0cFBheWxvYWRNZW1iZXIiLCAibSIsICJtZWRpYVR5cGUiLCAiaHR0cFF1ZXJ5IiwgImh0dHBRdWVyeVBhcmFtcyIsICJodHRwSGVhZGVyIiwgImh0dHBMYWJlbCIsICJodHRwUHJlZml4SGVhZGVycyIsICJlcnJvcklkZW50aWZpZXIiLCAiZGVmYXVsdE5hbWVzcGFjZSIsICJyZXNwb25zZSIsICJkYXRhT2JqZWN0IiwgIm1ldGFkYXRhIiwgImdldEVycm9yU2NoZW1hIiwgIm5hbWVzcGFjZSIsICJlcnJvck5hbWUiLCAiZXJyb3JNZXRhZGF0YSIsICJyZWdpc3RyeSIsICJzeW50aGV0aWMiLCAiYmFzZUV4Y2VwdGlvblNjaGVtYSIsICJFcnJvckN0b3IiLCAiZXhjZXB0aW9uIiwgImFkZGl0aW9ucyIsICJtc2ciLCAiZXJyb3IiLCAicmVxSWQiLCAib3V0cHV0IiwgInF1ZXJ5RXJyb3JIZWFkZXIiLCAiQ29kZSIsICJUeXBlIiwgImVudHJpZXMiLCAiRXJyb3IiLCAiayIsICJ2IiwgInF1ZXJ5Q29tcGF0RXJyb3JEYXRhIiwgImVycm9yRGF0YSIsICJzY2hlbWEiLCAiaW1wb3J0X2Nib3IiLCAiaW1wb3J0X3NjaGVtYSIsICJBd3NTbWl0aHlScGNWMkNib3JQcm90b2NvbCIsICJpbml0X0F3c1NtaXRoeVJwY1YyQ2JvclByb3RvY29sIiwgIl9fZXNtTWluIiwgImluaXRfUHJvdG9jb2xMaWIiLCAiZGVmYXVsdE5hbWVzcGFjZSIsICJhd3NRdWVyeUNvbXBhdGlibGUiLCAiUHJvdG9jb2xMaWIiLCAib3BlcmF0aW9uU2NoZW1hIiwgImlucHV0IiwgImNvbnRleHQiLCAicmVxdWVzdCIsICJyZXNwb25zZSIsICJkYXRhT2JqZWN0IiwgIm1ldGFkYXRhIiwgImVycm9yTmFtZSIsICJjb21wYXRIZWFkZXIiLCAiZXJyb3JTY2hlbWEiLCAiZXJyb3JNZXRhZGF0YSIsICJucyIsICJtZXNzYWdlIiwgIkVycm9yQ3RvciIsICJleGNlcHRpb24iLCAib3V0cHV0IiwgIm5hbWUiLCAibWVtYmVyIiwgIl90b1N0ciIsICJfdG9Cb29sIiwgIl90b051bSIsICJpbml0X2NvZXJjaW5nX3NlcmlhbGl6ZXJzIiwgIl9fZXNtTWluIiwgInZhbCIsICJ3YXJuaW5nIiwgImxvd2VyY2FzZSIsICJudW0iLCAiU2VyZGVDb250ZXh0Q29uZmlnIiwgImluaXRfQ29uZmlndXJhYmxlU2VyZGVDb250ZXh0IiwgIl9fZXNtTWluIiwgInNlcmRlQ29udGV4dCIsICJVbmlvblNlcmRlIiwgImluaXRfVW5pb25TZXJkZSIsICJfX2VzbU1pbiIsICJmcm9tIiwgInRvIiwgImsiLCAia2V5IiwgInYiLCAianNvblJldml2ZXIiLCAia2V5IiwgInZhbHVlIiwgImNvbnRleHQiLCAibnVtZXJpY1N0cmluZyIsICJpbXBvcnRfc2VyZGUiLCAiaW5pdF9qc29uUmV2aXZlciIsICJfX2VzbU1pbiIsICJpbXBvcnRfc21pdGh5X2NsaWVudCIsICJpbXBvcnRfdXRpbF91dGY4IiwgImNvbGxlY3RCb2R5U3RyaW5nIiwgImluaXRfY29tbW9uIiwgIl9fZXNtTWluIiwgInN0cmVhbUJvZHkiLCAiY29udGV4dCIsICJib2R5IiwgInBhcnNlSnNvbkJvZHkiLCAicGFyc2VKc29uRXJyb3JCb2R5IiwgImxvYWRSZXN0SnNvbkVycm9yQ29kZSIsICJpbml0X3BhcnNlSnNvbkJvZHkiLCAiX19lc21NaW4iLCAiaW5pdF9jb21tb24iLCAic3RyZWFtQm9keSIsICJjb250ZXh0IiwgImNvbGxlY3RCb2R5U3RyaW5nIiwgImVuY29kZWQiLCAiZSIsICJlcnJvckJvZHkiLCAidmFsdWUiLCAib3V0cHV0IiwgImRhdGEiLCAiZmluZEtleSIsICJvYmplY3QiLCAia2V5IiwgImsiLCAic2FuaXRpemVFcnJvckNvZGUiLCAicmF3VmFsdWUiLCAiY2xlYW5WYWx1ZSIsICJoZWFkZXJLZXkiLCAiY29kZUtleSIsICJpbXBvcnRfcHJvdG9jb2xzIiwgImltcG9ydF9zY2hlbWEiLCAiaW1wb3J0X3NlcmRlIiwgImltcG9ydF91dGlsX2Jhc2U2NCIsICJKc29uU2hhcGVEZXNlcmlhbGl6ZXIiLCAiaW5pdF9Kc29uU2hhcGVEZXNlcmlhbGl6ZXIiLCAiX19lc21NaW4iLCAiaW5pdF9Db25maWd1cmFibGVTZXJkZUNvbnRleHQiLCAiaW5pdF9VbmlvblNlcmRlIiwgImluaXRfanNvblJldml2ZXIiLCAiaW5pdF9wYXJzZUpzb25Cb2R5IiwgIlNlcmRlQ29udGV4dENvbmZpZyIsICJzZXR0aW5ncyIsICJzY2hlbWEiLCAiZGF0YSIsICJqc29uUmV2aXZlciIsICJwYXJzZUpzb25Cb2R5IiwgInZhbHVlIiwgImlzT2JqZWN0IiwgIm5zIiwgInJlY29yZCIsICJ1bmlvbiIsICJvdXQiLCAibmFtZU1hcCIsICJqc29uTmFtZSIsICJ1bmlvblNlcmRlIiwgIlVuaW9uU2VyZGUiLCAibWVtYmVyTmFtZSIsICJtZW1iZXJTY2hlbWEiLCAiZnJvbUtleSIsICJrIiwgInYiLCAidCIsICJsaXN0TWVtYmVyIiwgInNwYXJzZSIsICJpdGVtIiwgIm1hcE1lbWJlciIsICJfayIsICJfdiIsICJtZWRpYVR5cGUiLCAidW50eXBlZCIsICJpbXBvcnRfc2VyZGUiLCAiTlVNRVJJQ19DT05UUk9MX0NIQVIiLCAiSnNvblJlcGxhY2VyIiwgImluaXRfanNvblJlcGxhY2VyIiwgIl9fZXNtTWluIiwgImtleSIsICJ2YWx1ZSIsICJ2IiwgInMiLCAianNvbiIsICJpbXBvcnRfcHJvdG9jb2xzIiwgImltcG9ydF9zY2hlbWEiLCAiaW1wb3J0X3NlcmRlIiwgImltcG9ydF91dGlsX2Jhc2U2NCIsICJKc29uU2hhcGVTZXJpYWxpemVyIiwgImluaXRfSnNvblNoYXBlU2VyaWFsaXplciIsICJfX2VzbU1pbiIsICJpbml0X0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dCIsICJpbml0X2pzb25SZXBsYWNlciIsICJTZXJkZUNvbnRleHRDb25maWciLCAic2V0dGluZ3MiLCAic2NoZW1hIiwgInZhbHVlIiwgInJvb3RTY2hlbWEiLCAidXNlUmVwbGFjZXIiLCAicmVwbGFjZXIiLCAiSnNvblJlcGxhY2VyIiwgImNvbnRhaW5lciIsICJpc09iamVjdCIsICJucyIsICJyZWNvcmQiLCAib3V0IiwgImpzb25OYW1lIiwgIm5hbWVNYXAiLCAibWVtYmVyTmFtZSIsICJtZW1iZXJTY2hlbWEiLCAic2VyaWFsaXphYmxlVmFsdWUiLCAidGFyZ2V0S2V5IiwgIiR1bmtub3duIiwgImsiLCAidiIsICJsaXN0TWVtYmVyIiwgInNwYXJzZSIsICJpdGVtIiwgIm1hcE1lbWJlciIsICJfayIsICJfdiIsICJtZWRpYVR5cGUiLCAiSnNvbkNvZGVjIiwgImluaXRfSnNvbkNvZGVjIiwgIl9fZXNtTWluIiwgImluaXRfQ29uZmlndXJhYmxlU2VyZGVDb250ZXh0IiwgImluaXRfSnNvblNoYXBlRGVzZXJpYWxpemVyIiwgImluaXRfSnNvblNoYXBlU2VyaWFsaXplciIsICJTZXJkZUNvbnRleHRDb25maWciLCAic2V0dGluZ3MiLCAic2VyaWFsaXplciIsICJKc29uU2hhcGVTZXJpYWxpemVyIiwgImRlc2VyaWFsaXplciIsICJKc29uU2hhcGVEZXNlcmlhbGl6ZXIiLCAiaW1wb3J0X3Byb3RvY29scyIsICJpbXBvcnRfc2NoZW1hIiwgIkF3c0pzb25ScGNQcm90b2NvbCIsICJpbml0X0F3c0pzb25ScGNQcm90b2NvbCIsICJfX2VzbU1pbiIsICJpbml0X1Byb3RvY29sTGliIiwgImluaXRfSnNvbkNvZGVjIiwgImluaXRfcGFyc2VKc29uQm9keSIsICJkZWZhdWx0TmFtZXNwYWNlIiwgInNlcnZpY2VUYXJnZXQiLCAiYXdzUXVlcnlDb21wYXRpYmxlIiwgImpzb25Db2RlYyIsICJKc29uQ29kZWMiLCAiUHJvdG9jb2xMaWIiLCAib3BlcmF0aW9uU2NoZW1hIiwgImlucHV0IiwgImNvbnRleHQiLCAicmVxdWVzdCIsICJyZXNwb25zZSIsICJkYXRhT2JqZWN0IiwgIm1ldGFkYXRhIiwgImVycm9ySWRlbnRpZmllciIsICJsb2FkUmVzdEpzb25FcnJvckNvZGUiLCAiZXJyb3JTY2hlbWEiLCAiZXJyb3JNZXRhZGF0YSIsICJucyIsICJtZXNzYWdlIiwgIkVycm9yQ3RvciIsICJleGNlcHRpb24iLCAib3V0cHV0IiwgIm5hbWUiLCAibWVtYmVyIiwgIkF3c0pzb24xXzBQcm90b2NvbCIsICJpbml0X0F3c0pzb24xXzBQcm90b2NvbCIsICJfX2VzbU1pbiIsICJpbml0X0F3c0pzb25ScGNQcm90b2NvbCIsICJBd3NKc29uUnBjUHJvdG9jb2wiLCAiZGVmYXVsdE5hbWVzcGFjZSIsICJzZXJ2aWNlVGFyZ2V0IiwgImF3c1F1ZXJ5Q29tcGF0aWJsZSIsICJqc29uQ29kZWMiLCAiQXdzSnNvbjFfMVByb3RvY29sIiwgImluaXRfQXdzSnNvbjFfMVByb3RvY29sIiwgIl9fZXNtTWluIiwgImluaXRfQXdzSnNvblJwY1Byb3RvY29sIiwgIkF3c0pzb25ScGNQcm90b2NvbCIsICJkZWZhdWx0TmFtZXNwYWNlIiwgInNlcnZpY2VUYXJnZXQiLCAiYXdzUXVlcnlDb21wYXRpYmxlIiwgImpzb25Db2RlYyIsICJpbXBvcnRfcHJvdG9jb2xzIiwgImltcG9ydF9zY2hlbWEiLCAiQXdzUmVzdEpzb25Qcm90b2NvbCIsICJpbml0X0F3c1Jlc3RKc29uUHJvdG9jb2wiLCAiX19lc21NaW4iLCAiaW5pdF9Qcm90b2NvbExpYiIsICJpbml0X0pzb25Db2RlYyIsICJpbml0X3BhcnNlSnNvbkJvZHkiLCAiUHJvdG9jb2xMaWIiLCAiZGVmYXVsdE5hbWVzcGFjZSIsICJzZXR0aW5ncyIsICJKc29uQ29kZWMiLCAic2VyZGVDb250ZXh0IiwgIm9wZXJhdGlvblNjaGVtYSIsICJpbnB1dCIsICJjb250ZXh0IiwgInJlcXVlc3QiLCAiaW5wdXRTY2hlbWEiLCAiY29udGVudFR5cGUiLCAicmVzcG9uc2UiLCAib3V0cHV0IiwgIm91dHB1dFNjaGVtYSIsICJuYW1lIiwgIm1lbWJlciIsICJkYXRhT2JqZWN0IiwgIm1ldGFkYXRhIiwgImVycm9ySWRlbnRpZmllciIsICJsb2FkUmVzdEpzb25FcnJvckNvZGUiLCAiZXJyb3JTY2hlbWEiLCAiZXJyb3JNZXRhZGF0YSIsICJucyIsICJtZXNzYWdlIiwgIkVycm9yQ3RvciIsICJleGNlcHRpb24iLCAidGFyZ2V0IiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgImF3c0V4cGVjdFVuaW9uIiwgImluaXRfYXdzRXhwZWN0VW5pb24iLCAiX19lc21NaW4iLCAidmFsdWUiLCAicmVxdWlyZV94bWxfcGFyc2VyIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJwYXJzZVhNTCIsICJmYXN0X3htbF9wYXJzZXJfMSIsICJwYXJzZXIiLCAiXyIsICJ2YWwiLCAieG1sU3RyaW5nIiwgInJlcXVpcmVfZGlzdF9janMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgInhtbFBhcnNlciIsICJlc2NhcGVBdHRyaWJ1dGUiLCAidmFsdWUiLCAiZXNjYXBlRWxlbWVudCIsICJYbWxUZXh0IiwgIlhtbE5vZGUiLCAiX1htbE5vZGUiLCAibmFtZSIsICJjaGlsZFRleHQiLCAid2l0aE5hbWUiLCAibm9kZSIsICJjaGlsZHJlbiIsICJjaGlsZCIsICJpbnB1dCIsICJmaWVsZCIsICJsaXN0TmFtZSIsICJtZW1iZXJOYW1lIiwgInZhbHVlUHJvdmlkZXIiLCAibm9kZXMiLCAiY29udGFpbmVyTm9kZSIsICJoYXNDaGlsZHJlbiIsICJ4bWxUZXh0IiwgImF0dHJpYnV0ZXMiLCAiYXR0cmlidXRlTmFtZSIsICJhdHRyaWJ1dGUiLCAiYyIsICJpbXBvcnRfeG1sX2J1aWxkZXIiLCAiaW1wb3J0X3Byb3RvY29scyIsICJpbXBvcnRfc2NoZW1hIiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgImltcG9ydF91dGlsX3V0ZjgiLCAiWG1sU2hhcGVEZXNlcmlhbGl6ZXIiLCAiaW5pdF9YbWxTaGFwZURlc2VyaWFsaXplciIsICJfX2VzbU1pbiIsICJpbml0X0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dCIsICJpbml0X1VuaW9uU2VyZGUiLCAiU2VyZGVDb250ZXh0Q29uZmlnIiwgInNldHRpbmdzIiwgInNlcmRlQ29udGV4dCIsICJzY2hlbWEiLCAiYnl0ZXMiLCAia2V5IiwgIm5zIiwgIm1lbWJlclNjaGVtYXMiLCAibWVtYmVyTnMiLCAib3V0cHV0IiwgIm1lbWJlck5hbWUiLCAieG1sU3RyaW5nIiwgInBhcnNlZE9iamVjdCIsICJfc2NoZW1hIiwgInZhbHVlIiwgInRyYWl0cyIsICJzcGFyc2UiLCAiZmxhdCIsICJsaXN0VmFsdWUiLCAiYnVmZmVyIiwgInNvdXJjZUtleSIsICJzb3VyY2UiLCAic291cmNlQXJyYXkiLCAidiIsICJrZXlOcyIsICJlbnRyaWVzIiwgImtleVByb3BlcnR5IiwgInZhbHVlUHJvcGVydHkiLCAiZW50cnkiLCAidW5pb24iLCAidW5pb25TZXJkZSIsICJVbmlvblNlcmRlIiwgIm1lbWJlclNjaGVtYSIsICJtZW1iZXJUcmFpdHMiLCAieG1sT2JqZWN0S2V5IiwgInhtbCIsICJwYXJzZWRPYmoiLCAiZSIsICJ0ZXh0Tm9kZU5hbWUiLCAicGFyc2VkT2JqVG9SZXR1cm4iLCAiaW1wb3J0X3Byb3RvY29scyIsICJpbXBvcnRfc2NoZW1hIiwgImltcG9ydF9zZXJkZSIsICJpbXBvcnRfc21pdGh5X2NsaWVudCIsICJpbXBvcnRfdXRpbF9iYXNlNjQiLCAiUXVlcnlTaGFwZVNlcmlhbGl6ZXIiLCAiaW5pdF9RdWVyeVNoYXBlU2VyaWFsaXplciIsICJfX2VzbU1pbiIsICJpbml0X0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dCIsICJTZXJkZUNvbnRleHRDb25maWciLCAic2V0dGluZ3MiLCAic2NoZW1hIiwgInZhbHVlIiwgInByZWZpeCIsICJucyIsICJtZW1iZXIiLCAiZmxhdCIsICJpIiwgIml0ZW0iLCAidHJhaXRzIiwgInN1ZmZpeCIsICJrZXkiLCAia2V5U2NoZW1hIiwgIm1lbWJlclNjaGVtYSIsICJrIiwgInYiLCAia2V5VHJhaXRzIiwgImtleVN1ZmZpeCIsICJ2YWxUcmFpdHMiLCAidmFsdWVTdWZmaXgiLCAidmFsdWVLZXkiLCAiZGlkV3JpdGVNZW1iZXIiLCAibWVtYmVyTmFtZSIsICIkdW5rbm93biIsICJzdHIiLCAieG1sTmFtZSIsICJlYzJRdWVyeU5hbWUiLCAia2V5U291cmNlIiwgImVjMiIsICJjYXBpdGFsaXplS2V5cyIsICJpbXBvcnRfcHJvdG9jb2xzIiwgImltcG9ydF9zY2hlbWEiLCAiQXdzUXVlcnlQcm90b2NvbCIsICJpbml0X0F3c1F1ZXJ5UHJvdG9jb2wiLCAiX19lc21NaW4iLCAiaW5pdF9Qcm90b2NvbExpYiIsICJpbml0X1htbFNoYXBlRGVzZXJpYWxpemVyIiwgImluaXRfUXVlcnlTaGFwZVNlcmlhbGl6ZXIiLCAiUHJvdG9jb2xMaWIiLCAib3B0aW9ucyIsICJzZXR0aW5ncyIsICJRdWVyeVNoYXBlU2VyaWFsaXplciIsICJYbWxTaGFwZURlc2VyaWFsaXplciIsICJzZXJkZUNvbnRleHQiLCAib3BlcmF0aW9uU2NoZW1hIiwgImlucHV0IiwgImNvbnRleHQiLCAicmVxdWVzdCIsICJhY3Rpb24iLCAicmVzcG9uc2UiLCAiZGVzZXJpYWxpemVyIiwgIm5zIiwgImRhdGFPYmplY3QiLCAiYnl0ZXMiLCAiaGVhZGVyIiwgInZhbHVlIiwgInNob3J0TmFtZSIsICJhd3NRdWVyeVJlc3VsdEtleSIsICJtZXRhZGF0YSIsICJlcnJvcklkZW50aWZpZXIiLCAiZXJyb3JEYXRhIiwgIm1lc3NhZ2UiLCAiZXJyb3JTY2hlbWEiLCAiZXJyb3JNZXRhZGF0YSIsICJFcnJvckN0b3IiLCAiZXhjZXB0aW9uIiwgIm91dHB1dCIsICJuYW1lIiwgIm1lbWJlciIsICJ0YXJnZXQiLCAiZGF0YSIsICJjb2RlIiwgIkF3c0VjMlF1ZXJ5UHJvdG9jb2wiLCAiaW5pdF9Bd3NFYzJRdWVyeVByb3RvY29sIiwgIl9fZXNtTWluIiwgImluaXRfQXdzUXVlcnlQcm90b2NvbCIsICJBd3NRdWVyeVByb3RvY29sIiwgIm9wdGlvbnMiLCAiZWMyU2V0dGluZ3MiLCAiaW1wb3J0X3htbF9idWlsZGVyIiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgInBhcnNlWG1sQm9keSIsICJwYXJzZVhtbEVycm9yQm9keSIsICJsb2FkUmVzdFhtbEVycm9yQ29kZSIsICJpbml0X3BhcnNlWG1sQm9keSIsICJfX2VzbU1pbiIsICJpbml0X2NvbW1vbiIsICJzdHJlYW1Cb2R5IiwgImNvbnRleHQiLCAiY29sbGVjdEJvZHlTdHJpbmciLCAiZW5jb2RlZCIsICJwYXJzZWRPYmoiLCAiZSIsICJ0ZXh0Tm9kZU5hbWUiLCAia2V5IiwgInBhcnNlZE9ialRvUmV0dXJuIiwgImVycm9yQm9keSIsICJ2YWx1ZSIsICJvdXRwdXQiLCAiZGF0YSIsICJpbXBvcnRfeG1sX2J1aWxkZXIiLCAiaW1wb3J0X3Byb3RvY29scyIsICJpbXBvcnRfc2NoZW1hIiwgImltcG9ydF9zZXJkZSIsICJpbXBvcnRfc21pdGh5X2NsaWVudCIsICJpbXBvcnRfdXRpbF9iYXNlNjQiLCAiWG1sU2hhcGVTZXJpYWxpemVyIiwgImluaXRfWG1sU2hhcGVTZXJpYWxpemVyIiwgIl9fZXNtTWluIiwgImluaXRfQ29uZmlndXJhYmxlU2VyZGVDb250ZXh0IiwgIlNlcmRlQ29udGV4dENvbmZpZyIsICJzZXR0aW5ncyIsICJzY2hlbWEiLCAidmFsdWUiLCAibnMiLCAidHJhaXRzIiwgImJ5dGVzIiwgInN0ciIsICJidWZmZXIiLCAicGFyZW50WG1sbnMiLCAibmFtZSIsICJzdHJ1Y3RYbWxOb2RlIiwgInhtbG5zQXR0ciIsICJ4bWxucyIsICJtZW1iZXJOYW1lIiwgIm1lbWJlclNjaGVtYSIsICJ2YWwiLCAibWVtYmVyTm9kZSIsICIkdW5rbm93biIsICJrIiwgInYiLCAibm9kZSIsICJsaXN0TWVtYmVyIiwgImFycmF5IiwgImNvbnRhaW5lciIsICJsaXN0VHJhaXRzIiwgImxpc3RWYWx1ZVNjaGVtYSIsICJsaXN0VmFsdWVUcmFpdHMiLCAic3BhcnNlIiwgImZsYXQiLCAid3JpdGVJdGVtIiwgInN0cnVjdCIsICJsaXN0SXRlbU5vZGUiLCAibGlzdE5vZGUiLCAibWFwTWVtYmVyIiwgIm1hcCIsICJjb250YWluZXJJc01hcCIsICJtYXBUcmFpdHMiLCAibWFwS2V5U2NoZW1hIiwgImtleVRhZyIsICJtYXBWYWx1ZVNjaGVtYSIsICJtYXBWYWx1ZVRyYWl0cyIsICJ2YWx1ZVRhZyIsICJhZGRLZXlWYWx1ZSIsICJlbnRyeSIsICJrZXkiLCAia2V5Tm9kZSIsICJrZXlYbWxuc0F0dHIiLCAia2V5WG1sbnMiLCAidmFsdWVOb2RlIiwgIm1hcE5vZGUiLCAiX3NjaGVtYSIsICJub2RlQ29udGVudHMiLCAiaW50byIsICJjb250ZW50IiwgInByZWZpeCIsICJYbWxDb2RlYyIsICJpbml0X1htbENvZGVjIiwgIl9fZXNtTWluIiwgImluaXRfQ29uZmlndXJhYmxlU2VyZGVDb250ZXh0IiwgImluaXRfWG1sU2hhcGVEZXNlcmlhbGl6ZXIiLCAiaW5pdF9YbWxTaGFwZVNlcmlhbGl6ZXIiLCAiU2VyZGVDb250ZXh0Q29uZmlnIiwgInNldHRpbmdzIiwgInNlcmlhbGl6ZXIiLCAiWG1sU2hhcGVTZXJpYWxpemVyIiwgImRlc2VyaWFsaXplciIsICJYbWxTaGFwZURlc2VyaWFsaXplciIsICJpbXBvcnRfcHJvdG9jb2xzIiwgImltcG9ydF9zY2hlbWEiLCAiQXdzUmVzdFhtbFByb3RvY29sIiwgImluaXRfQXdzUmVzdFhtbFByb3RvY29sIiwgIl9fZXNtTWluIiwgImluaXRfUHJvdG9jb2xMaWIiLCAiaW5pdF9wYXJzZVhtbEJvZHkiLCAiaW5pdF9YbWxDb2RlYyIsICJQcm90b2NvbExpYiIsICJvcHRpb25zIiwgInNldHRpbmdzIiwgIlhtbENvZGVjIiwgIm9wZXJhdGlvblNjaGVtYSIsICJpbnB1dCIsICJjb250ZXh0IiwgInJlcXVlc3QiLCAiaW5wdXRTY2hlbWEiLCAiY29udGVudFR5cGUiLCAicmVzcG9uc2UiLCAiZGF0YU9iamVjdCIsICJtZXRhZGF0YSIsICJlcnJvcklkZW50aWZpZXIiLCAibG9hZFJlc3RYbWxFcnJvckNvZGUiLCAia2V5IiwgImVycm9yU2NoZW1hIiwgImVycm9yTWV0YWRhdGEiLCAibnMiLCAibWVzc2FnZSIsICJFcnJvckN0b3IiLCAiZXhjZXB0aW9uIiwgIm91dHB1dCIsICJuYW1lIiwgIm1lbWJlciIsICJ0YXJnZXQiLCAidmFsdWUiLCAiaW5pdF9wcm90b2NvbHMiLCAiX19lc21NaW4iLCAiaW5pdF9Bd3NTbWl0aHlScGNWMkNib3JQcm90b2NvbCIsICJpbml0X2NvZXJjaW5nX3NlcmlhbGl6ZXJzIiwgImluaXRfQXdzSnNvbjFfMFByb3RvY29sIiwgImluaXRfQXdzSnNvbjFfMVByb3RvY29sIiwgImluaXRfQXdzSnNvblJwY1Byb3RvY29sIiwgImluaXRfQXdzUmVzdEpzb25Qcm90b2NvbCIsICJpbml0X0pzb25Db2RlYyIsICJpbml0X0pzb25TaGFwZURlc2VyaWFsaXplciIsICJpbml0X0pzb25TaGFwZVNlcmlhbGl6ZXIiLCAiaW5pdF9hd3NFeHBlY3RVbmlvbiIsICJpbml0X3BhcnNlSnNvbkJvZHkiLCAiaW5pdF9Bd3NFYzJRdWVyeVByb3RvY29sIiwgImluaXRfQXdzUXVlcnlQcm90b2NvbCIsICJpbml0X0F3c1Jlc3RYbWxQcm90b2NvbCIsICJpbml0X1htbENvZGVjIiwgImluaXRfWG1sU2hhcGVEZXNlcmlhbGl6ZXIiLCAiaW5pdF9YbWxTaGFwZVNlcmlhbGl6ZXIiLCAiaW5pdF9wYXJzZVhtbEJvZHkiLCAiZGlzdF9lc19leHBvcnRzIiwgIl9fZXhwb3J0IiwgIkFXU1NES1NpZ1Y0U2lnbmVyIiwgIkF3c0VjMlF1ZXJ5UHJvdG9jb2wiLCAiQXdzSnNvbjFfMFByb3RvY29sIiwgIkF3c0pzb24xXzFQcm90b2NvbCIsICJBd3NKc29uUnBjUHJvdG9jb2wiLCAiQXdzUXVlcnlQcm90b2NvbCIsICJBd3NSZXN0SnNvblByb3RvY29sIiwgIkF3c1Jlc3RYbWxQcm90b2NvbCIsICJBd3NTZGtTaWdWNEFTaWduZXIiLCAiQXdzU2RrU2lnVjRTaWduZXIiLCAiQXdzU21pdGh5UnBjVjJDYm9yUHJvdG9jb2wiLCAiSnNvbkNvZGVjIiwgIkpzb25TaGFwZURlc2VyaWFsaXplciIsICJKc29uU2hhcGVTZXJpYWxpemVyIiwgIk5PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9PUFRJT05TIiwgIk5PREVfU0lHVjRBX0NPTkZJR19PUFRJT05TIiwgIlhtbENvZGVjIiwgIlhtbFNoYXBlRGVzZXJpYWxpemVyIiwgIlhtbFNoYXBlU2VyaWFsaXplciIsICJfdG9Cb29sIiwgIl90b051bSIsICJfdG9TdHIiLCAiYXdzRXhwZWN0VW5pb24iLCAiZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbiIsICJnZXRCZWFyZXJUb2tlbkVudktleSIsICJsb2FkUmVzdEpzb25FcnJvckNvZGUiLCAibG9hZFJlc3RYbWxFcnJvckNvZGUiLCAicGFyc2VKc29uQm9keSIsICJwYXJzZUpzb25FcnJvckJvZHkiLCAicGFyc2VYbWxCb2R5IiwgInBhcnNlWG1sRXJyb3JCb2R5IiwgInJlc29sdmVBV1NTREtTaWdWNENvbmZpZyIsICJyZXNvbHZlQXdzU2RrU2lnVjRBQ29uZmlnIiwgInJlc29sdmVBd3NTZGtTaWdWNENvbmZpZyIsICJzZXRDcmVkZW50aWFsRmVhdHVyZSIsICJzZXRGZWF0dXJlIiwgInNldFRva2VuRmVhdHVyZSIsICJzdGF0ZSIsICJ2YWxpZGF0ZVNpZ25pbmdQcm9wZXJ0aWVzIiwgImluaXRfZGlzdF9lcyIsICJfX2VzbU1pbiIsICJpbml0X2NsaWVudCIsICJpbml0X2h0dHBBdXRoU2NoZW1lcyIsICJpbml0X3Byb3RvY29scyIsICJyZXF1aXJlX2Rpc3RfY2pzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJOdW1iZXJWYWx1ZSIsICJfTnVtYmVyVmFsdWUiLCAidmFsdWUiLCAidmFsdWVPZiIsICJzdHJpbmdWYWx1ZSIsICJjb252ZXJ0VG9BdHRyIiwgImRhdGEiLCAib3B0aW9ucyIsICJjb252ZXJ0VG9OdWxsQXR0ciIsICJjb252ZXJ0VG9MaXN0QXR0ciIsICJjb252ZXJ0VG9TZXRBdHRyIiwgImNvbnZlcnRUb01hcEF0dHJGcm9tSXRlcmFibGUiLCAiY29udmVydFRvTWFwQXR0ckZyb21FbnVtZXJhYmxlUHJvcHMiLCAiaXNCaW5hcnkiLCAiY29udmVydFRvQmluYXJ5QXR0ciIsICJjb252ZXJ0VG9OdW1iZXJBdHRyIiwgImNvbnZlcnRUb0JpZ0ludEF0dHIiLCAiY29udmVydFRvU3RyaW5nQXR0ciIsICJpdGVtIiwgInNldCIsICJzZXRUb09wZXJhdGUiLCAiXyIsICJudW0iLCAibWFwIiwgImtleSIsICJ2YWxpZGF0ZUJpZ0ludEFuZFRocm93IiwgImVycm9yUHJlZml4IiwgInZhbCIsICJiaW5hcnlUeXBlcyIsICJjb252ZXJ0VG9OYXRpdmUiLCAiY29udmVydE51bWJlciIsICJjb252ZXJ0QmluYXJ5IiwgImNvbnZlcnRTdHJpbmciLCAiY29udmVydExpc3QiLCAiY29udmVydE1hcCIsICJudW1TdHJpbmciLCAiaW5maW5pdHlWYWx1ZXMiLCAiYmluYXJ5VmFsdWUiLCAibGlzdCIsICJhY2MiLCAibWFyc2hhbGwiLCAiYXR0cmlidXRlVmFsdWUiLCAidW5tYXJzaGFsbCIsICJyZXF1aXJlX2Rpc3RfY2pzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJzbWl0aHlDbGllbnQiLCAiY29yZSIsICJ1dGlsRHluYW1vZGIiLCAiY2xpZW50RHluYW1vZGIiLCAiY29yZSQxIiwgIlNFTEYiLCAiQUxMX1ZBTFVFUyIsICJBTExfTUVNQkVSUyIsICJORVhUX0xFVkVMIiwgInByb2Nlc3NPYmoiLCAib2JqIiwgInByb2Nlc3NGdW5jIiwgImtleU5vZGVzIiwgImtleXMiLCAiZ29Ub05leHRMZXZlbCIsICJzb21lQ2hpbGRyZW4iLCAiYWxsQ2hpbGRyZW4iLCAicHJvY2Vzc0tleXNJbk9iaiIsICJwcm9jZXNzQWxsS2V5c0luT2JqIiwgImFjYyIsICJrIiwgInYiLCAiYWNjdW11bGF0b3IiLCAiaXRlbSIsICJub2RlS2V5IiwgIm5vZGVzIiwgInByb2Nlc3NlZFZhbHVlIiwgImtleSIsICJ2YWx1ZSIsICJtYXJzaGFsbElucHV0IiwgIm9wdGlvbnMiLCAidG9NYXJzaGFsbCIsICJ1bm1hcnNoYWxsT3V0cHV0IiwgIkR5bmFtb0RCRG9jdW1lbnRDbGllbnRDb21tYW5kIiwgImNvbmZpZ3VyYXRpb24iLCAibWFyc2hhbGxPcHRpb25zIiwgInVubWFyc2hhbGxPcHRpb25zIiwgIm5leHQiLCAiY29udGV4dCIsICJhcmdzIiwgImRlc2VyaWFsaXplZCIsICJCYXRjaEV4ZWN1dGVTdGF0ZW1lbnRDb21tYW5kIiwgImlucHV0IiwgImNsaWVudFN0YWNrIiwgInN0YWNrIiwgImhhbmRsZXIiLCAiQmF0Y2hHZXRDb21tYW5kIiwgIkJhdGNoV3JpdGVDb21tYW5kIiwgIkRlbGV0ZUNvbW1hbmQiLCAiRXhlY3V0ZVN0YXRlbWVudENvbW1hbmQiLCAiRXhlY3V0ZVRyYW5zYWN0aW9uQ29tbWFuZCIsICJHZXRDb21tYW5kIiwgIlB1dENvbW1hbmQiLCAiUXVlcnlDb21tYW5kIiwgIlNjYW5Db21tYW5kIiwgIlRyYW5zYWN0R2V0Q29tbWFuZCIsICJUcmFuc2FjdFdyaXRlQ29tbWFuZCIsICJVcGRhdGVDb21tYW5kIiwgIkR5bmFtb0RCRG9jdW1lbnRDbGllbnQiLCAiX0R5bmFtb0RCRG9jdW1lbnRDbGllbnQiLCAiY2xpZW50IiwgInRyYW5zbGF0ZUNvbmZpZyIsICJwYWdpbmF0ZVF1ZXJ5IiwgInBhZ2luYXRlU2NhbiIsICJEeW5hbW9EQkRvY3VtZW50IiwgIl9EeW5hbW9EQkRvY3VtZW50IiwgIm9wdGlvbnNPckNiIiwgImNiIiwgImNvbW1hbmQiLCAicmVxdWlyZV9kaXN0X2NqcyIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAicHJvdG9jb2xIdHRwIiwgInJlc29sdmVIb3N0SGVhZGVyQ29uZmlnIiwgImlucHV0IiwgImhvc3RIZWFkZXJNaWRkbGV3YXJlIiwgIm9wdGlvbnMiLCAibmV4dCIsICJhcmdzIiwgInJlcXVlc3QiLCAiaGFuZGxlclByb3RvY29sIiwgImhvc3QiLCAiaG9zdEhlYWRlck1pZGRsZXdhcmVPcHRpb25zIiwgImdldEhvc3RIZWFkZXJQbHVnaW4iLCAiY2xpZW50U3RhY2siLCAicmVxdWlyZV9kaXN0X2NqcyIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAibG9nZ2VyTWlkZGxld2FyZSIsICJuZXh0IiwgImNvbnRleHQiLCAiYXJncyIsICJyZXNwb25zZSIsICJjbGllbnROYW1lIiwgImNvbW1hbmROYW1lIiwgImxvZ2dlciIsICJkeW5hbW9EYkRvY3VtZW50Q2xpZW50T3B0aW9ucyIsICJvdmVycmlkZUlucHV0RmlsdGVyU2Vuc2l0aXZlTG9nIiwgIm92ZXJyaWRlT3V0cHV0RmlsdGVyU2Vuc2l0aXZlTG9nIiwgImlucHV0RmlsdGVyU2Vuc2l0aXZlTG9nIiwgIm91dHB1dEZpbHRlclNlbnNpdGl2ZUxvZyIsICIkbWV0YWRhdGEiLCAib3V0cHV0V2l0aG91dE1ldGFkYXRhIiwgImVycm9yIiwgImxvZ2dlck1pZGRsZXdhcmVPcHRpb25zIiwgImdldExvZ2dlclBsdWdpbiIsICJvcHRpb25zIiwgImNsaWVudFN0YWNrIiwgInJlcXVpcmVfcmVjdXJzaW9uRGV0ZWN0aW9uTWlkZGxld2FyZSIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAibGFtYmRhX2ludm9rZV9zdG9yZV8xIiwgInByb3RvY29sX2h0dHBfMSIsICJUUkFDRV9JRF9IRUFERVJfTkFNRSIsICJFTlZfTEFNQkRBX0ZVTkNUSU9OX05BTUUiLCAiRU5WX1RSQUNFX0lEIiwgInJlY3Vyc2lvbkRldGVjdGlvbk1pZGRsZXdhcmUiLCAibmV4dCIsICJhcmdzIiwgInJlcXVlc3QiLCAidHJhY2VJZEhlYWRlciIsICJoIiwgImZ1bmN0aW9uTmFtZSIsICJ0cmFjZUlkRnJvbUVudiIsICJ0cmFjZUlkIiwgIm5vbkVtcHR5U3RyaW5nIiwgInN0ciIsICJyZXF1aXJlX2Rpc3RfY2pzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJyZWN1cnNpb25EZXRlY3Rpb25NaWRkbGV3YXJlIiwgInJlY3Vyc2lvbkRldGVjdGlvbk1pZGRsZXdhcmVPcHRpb25zIiwgImdldFJlY3Vyc2lvbkRldGVjdGlvblBsdWdpbiIsICJvcHRpb25zIiwgImNsaWVudFN0YWNrIiwgImsiLCAicmVxdWlyZV9kaXN0X2NqcyIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAidXRpbEVuZHBvaW50cyIsICJ1cmxQYXJzZXIiLCAiaXNWaXJ0dWFsSG9zdGFibGVTM0J1Y2tldCIsICJ2YWx1ZSIsICJhbGxvd1N1YkRvbWFpbnMiLCAibGFiZWwiLCAiQVJOX0RFTElNSVRFUiIsICJSRVNPVVJDRV9ERUxJTUlURVIiLCAicGFyc2VBcm4iLCAic2VnbWVudHMiLCAiYXJuIiwgInBhcnRpdGlvbiIsICJzZXJ2aWNlIiwgInJlZ2lvbiIsICJhY2NvdW50SWQiLCAicmVzb3VyY2VQYXRoIiwgInJlc291cmNlSWQiLCAicmVzb3VyY2UiLCAicGFydGl0aW9ucyIsICJ2ZXJzaW9uIiwgInBhcnRpdGlvbnNJbmZvIiwgInNlbGVjdGVkUGFydGl0aW9uc0luZm8iLCAic2VsZWN0ZWRVc2VyQWdlbnRQcmVmaXgiLCAicmVnaW9ucyIsICJvdXRwdXRzIiwgInJlZ2lvbkRhdGEiLCAicmVnaW9uUmVnZXgiLCAiREVGQVVMVF9QQVJUSVRJT04iLCAic2V0UGFydGl0aW9uSW5mbyIsICJ1c2VyQWdlbnRQcmVmaXgiLCAidXNlRGVmYXVsdFBhcnRpdGlvbkluZm8iLCAiZ2V0VXNlckFnZW50UHJlZml4IiwgImF3c0VuZHBvaW50RnVuY3Rpb25zIiwgInJlc29sdmVEZWZhdWx0QXdzUmVnaW9uYWxFbmRwb2ludHNDb25maWciLCAiaW5wdXQiLCAiZW5kcG9pbnQiLCAidG9FbmRwb2ludFYxIiwgInN0YXRlIiwgImVtaXRXYXJuaW5nSWZVbnN1cHBvcnRlZFZlcnNpb24iLCAiaW5pdF9lbWl0V2FybmluZ0lmVW5zdXBwb3J0ZWRWZXJzaW9uIiwgIl9fZXNtTWluIiwgInZlcnNpb24iLCAic2V0Q3JlZGVudGlhbEZlYXR1cmUiLCAiY3JlZGVudGlhbHMiLCAiZmVhdHVyZSIsICJ2YWx1ZSIsICJpbml0X3NldENyZWRlbnRpYWxGZWF0dXJlIiwgIl9fZXNtTWluIiwgInNldEZlYXR1cmUiLCAiY29udGV4dCIsICJmZWF0dXJlIiwgInZhbHVlIiwgImluaXRfc2V0RmVhdHVyZSIsICJfX2VzbU1pbiIsICJzZXRUb2tlbkZlYXR1cmUiLCAidG9rZW4iLCAiZmVhdHVyZSIsICJ2YWx1ZSIsICJpbml0X3NldFRva2VuRmVhdHVyZSIsICJfX2VzbU1pbiIsICJjbGllbnRfZXhwb3J0cyIsICJfX2V4cG9ydCIsICJlbWl0V2FybmluZ0lmVW5zdXBwb3J0ZWRWZXJzaW9uIiwgInNldENyZWRlbnRpYWxGZWF0dXJlIiwgInNldEZlYXR1cmUiLCAic2V0VG9rZW5GZWF0dXJlIiwgInN0YXRlIiwgImluaXRfY2xpZW50IiwgIl9fZXNtTWluIiwgImluaXRfZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbiIsICJpbml0X3NldENyZWRlbnRpYWxGZWF0dXJlIiwgImluaXRfc2V0RmVhdHVyZSIsICJpbml0X3NldFRva2VuRmVhdHVyZSIsICJpbXBvcnRfcHJvdG9jb2xfaHR0cCIsICJnZXREYXRlSGVhZGVyIiwgImluaXRfZ2V0RGF0ZUhlYWRlciIsICJfX2VzbU1pbiIsICJyZXNwb25zZSIsICJnZXRTa2V3Q29ycmVjdGVkRGF0ZSIsICJpbml0X2dldFNrZXdDb3JyZWN0ZWREYXRlIiwgIl9fZXNtTWluIiwgInN5c3RlbUNsb2NrT2Zmc2V0IiwgImlzQ2xvY2tTa2V3ZWQiLCAiaW5pdF9pc0Nsb2NrU2tld2VkIiwgIl9fZXNtTWluIiwgImluaXRfZ2V0U2tld0NvcnJlY3RlZERhdGUiLCAiY2xvY2tUaW1lIiwgInN5c3RlbUNsb2NrT2Zmc2V0IiwgImdldFNrZXdDb3JyZWN0ZWREYXRlIiwgImdldFVwZGF0ZWRTeXN0ZW1DbG9ja09mZnNldCIsICJpbml0X2dldFVwZGF0ZWRTeXN0ZW1DbG9ja09mZnNldCIsICJfX2VzbU1pbiIsICJpbml0X2lzQ2xvY2tTa2V3ZWQiLCAiY2xvY2tUaW1lIiwgImN1cnJlbnRTeXN0ZW1DbG9ja09mZnNldCIsICJjbG9ja1RpbWVJbk1zIiwgImlzQ2xvY2tTa2V3ZWQiLCAiaW5pdF91dGlscyIsICJfX2VzbU1pbiIsICJpbml0X2dldERhdGVIZWFkZXIiLCAiaW5pdF9nZXRTa2V3Q29ycmVjdGVkRGF0ZSIsICJpbml0X2dldFVwZGF0ZWRTeXN0ZW1DbG9ja09mZnNldCIsICJpbXBvcnRfcHJvdG9jb2xfaHR0cCIsICJ0aHJvd1NpZ25pbmdQcm9wZXJ0eUVycm9yIiwgInZhbGlkYXRlU2lnbmluZ1Byb3BlcnRpZXMiLCAiQXdzU2RrU2lnVjRTaWduZXIiLCAiQVdTU0RLU2lnVjRTaWduZXIiLCAiaW5pdF9Bd3NTZGtTaWdWNFNpZ25lciIsICJfX2VzbU1pbiIsICJpbml0X3V0aWxzIiwgIm5hbWUiLCAicHJvcGVydHkiLCAic2lnbmluZ1Byb3BlcnRpZXMiLCAiY29udGV4dCIsICJjb25maWciLCAiYXV0aFNjaGVtZSIsICJzaWduZXIiLCAic2lnbmluZ1JlZ2lvbiIsICJzaWduaW5nUmVnaW9uU2V0IiwgInNpZ25pbmdOYW1lIiwgImh0dHBSZXF1ZXN0IiwgImlkZW50aXR5IiwgInZhbGlkYXRlZFByb3BzIiwgImhhbmRsZXJFeGVjdXRpb25Db250ZXh0IiwgImZpcnN0IiwgInNlY29uZCIsICJnZXRTa2V3Q29ycmVjdGVkRGF0ZSIsICJlcnJvciIsICJzZXJ2ZXJUaW1lIiwgImdldERhdGVIZWFkZXIiLCAiaW5pdGlhbFN5c3RlbUNsb2NrT2Zmc2V0IiwgImdldFVwZGF0ZWRTeXN0ZW1DbG9ja09mZnNldCIsICJodHRwUmVzcG9uc2UiLCAiZGF0ZUhlYWRlciIsICJpbXBvcnRfcHJvdG9jb2xfaHR0cCIsICJBd3NTZGtTaWdWNEFTaWduZXIiLCAiaW5pdF9Bd3NTZGtTaWdWNEFTaWduZXIiLCAiX19lc21NaW4iLCAiaW5pdF91dGlscyIsICJpbml0X0F3c1Nka1NpZ1Y0U2lnbmVyIiwgIkF3c1Nka1NpZ1Y0U2lnbmVyIiwgImh0dHBSZXF1ZXN0IiwgImlkZW50aXR5IiwgInNpZ25pbmdQcm9wZXJ0aWVzIiwgImNvbmZpZyIsICJzaWduZXIiLCAic2lnbmluZ1JlZ2lvbiIsICJzaWduaW5nUmVnaW9uU2V0IiwgInNpZ25pbmdOYW1lIiwgInZhbGlkYXRlU2lnbmluZ1Byb3BlcnRpZXMiLCAibXVsdGlSZWdpb25PdmVycmlkZSIsICJnZXRTa2V3Q29ycmVjdGVkRGF0ZSIsICJnZXRBcnJheUZvckNvbW1hU2VwYXJhdGVkU3RyaW5nIiwgImluaXRfZ2V0QXJyYXlGb3JDb21tYVNlcGFyYXRlZFN0cmluZyIsICJfX2VzbU1pbiIsICJzdHIiLCAiaXRlbSIsICJnZXRCZWFyZXJUb2tlbkVudktleSIsICJpbml0X2dldEJlYXJlclRva2VuRW52S2V5IiwgIl9fZXNtTWluIiwgInNpZ25pbmdOYW1lIiwgIk5PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9FTlZfS0VZIiwgIk5PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9DT05GSUdfS0VZIiwgIk5PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9PUFRJT05TIiwgImluaXRfTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX09QVElPTlMiLCAiX19lc21NaW4iLCAiaW5pdF9nZXRBcnJheUZvckNvbW1hU2VwYXJhdGVkU3RyaW5nIiwgImluaXRfZ2V0QmVhcmVyVG9rZW5FbnZLZXkiLCAiZW52IiwgIm9wdGlvbnMiLCAiZ2V0QmVhcmVyVG9rZW5FbnZLZXkiLCAiZ2V0QXJyYXlGb3JDb21tYVNlcGFyYXRlZFN0cmluZyIsICJwcm9maWxlIiwgImltcG9ydF9jb3JlIiwgImltcG9ydF9wcm9wZXJ0eV9wcm92aWRlciIsICJyZXNvbHZlQXdzU2RrU2lnVjRBQ29uZmlnIiwgIk5PREVfU0lHVjRBX0NPTkZJR19PUFRJT05TIiwgImluaXRfcmVzb2x2ZUF3c1Nka1NpZ1Y0QUNvbmZpZyIsICJfX2VzbU1pbiIsICJjb25maWciLCAiZW52IiwgIl8iLCAicHJvZmlsZSIsICJub3JtYWxpemVDcmVkZW50aWFsUHJvdmlkZXIiLCAiY29uZmlnIiwgImNyZWRlbnRpYWxzIiwgImNyZWRlbnRpYWxEZWZhdWx0UHJvdmlkZXIiLCAiY3JlZGVudGlhbHNQcm92aWRlciIsICJiaW5kQ2FsbGVyQ29uZmlnIiwgImZuIiwgIm9wdGlvbnMiLCAiaW1wb3J0X2NvcmUiLCAiaW1wb3J0X3NpZ25hdHVyZV92NCIsICJyZXNvbHZlQXdzU2RrU2lnVjRDb25maWciLCAicmVzb2x2ZUFXU1NES1NpZ1Y0Q29uZmlnIiwgImluaXRfcmVzb2x2ZUF3c1Nka1NpZ1Y0Q29uZmlnIiwgIl9fZXNtTWluIiwgImluaXRfY2xpZW50IiwgImlucHV0Q3JlZGVudGlhbHMiLCAiaXNVc2VyU3VwcGxpZWQiLCAicmVzb2x2ZWRDcmVkZW50aWFscyIsICJtZW1vaXplZFByb3ZpZGVyIiwgImJvdW5kUHJvdmlkZXIiLCAiY3JlZHMiLCAic2V0Q3JlZGVudGlhbEZlYXR1cmUiLCAic2lnbmluZ0VzY2FwZVBhdGgiLCAic3lzdGVtQ2xvY2tPZmZzZXQiLCAic2hhMjU2IiwgInNpZ25lciIsICJyZWdpb24iLCAicmVnaW9uSW5mbyIsICJzaWduaW5nUmVnaW9uIiwgInNpZ25pbmdTZXJ2aWNlIiwgInBhcmFtcyIsICJTaWduZXJDdG9yIiwgImF1dGhTY2hlbWUiLCAiaW5pdF9hd3Nfc2RrIiwgIl9fZXNtTWluIiwgImluaXRfQXdzU2RrU2lnVjRTaWduZXIiLCAiaW5pdF9Bd3NTZGtTaWdWNEFTaWduZXIiLCAiaW5pdF9OT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfT1BUSU9OUyIsICJpbml0X3Jlc29sdmVBd3NTZGtTaWdWNEFDb25maWciLCAiaW5pdF9yZXNvbHZlQXdzU2RrU2lnVjRDb25maWciLCAiaHR0cEF1dGhTY2hlbWVzX2V4cG9ydHMiLCAiX19leHBvcnQiLCAiQVdTU0RLU2lnVjRTaWduZXIiLCAiQXdzU2RrU2lnVjRBU2lnbmVyIiwgIkF3c1Nka1NpZ1Y0U2lnbmVyIiwgIk5PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9PUFRJT05TIiwgIk5PREVfU0lHVjRBX0NPTkZJR19PUFRJT05TIiwgImdldEJlYXJlclRva2VuRW52S2V5IiwgInJlc29sdmVBV1NTREtTaWdWNENvbmZpZyIsICJyZXNvbHZlQXdzU2RrU2lnVjRBQ29uZmlnIiwgInJlc29sdmVBd3NTZGtTaWdWNENvbmZpZyIsICJ2YWxpZGF0ZVNpZ25pbmdQcm9wZXJ0aWVzIiwgImluaXRfaHR0cEF1dGhTY2hlbWVzIiwgIl9fZXNtTWluIiwgImluaXRfYXdzX3NkayIsICJpbml0X2dldEJlYXJlclRva2VuRW52S2V5IiwgImltcG9ydF9zY2hlbWEiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAiUHJvdG9jb2xMaWIiLCAiaW5pdF9Qcm90b2NvbExpYiIsICJfX2VzbU1pbiIsICJxdWVyeUNvbXBhdCIsICJkZWZhdWx0Q29udGVudFR5cGUiLCAiaW5wdXRTY2hlbWEiLCAibWVtYmVycyIsICJodHRwUGF5bG9hZE1lbWJlciIsICJtIiwgIm1lZGlhVHlwZSIsICJodHRwUXVlcnkiLCAiaHR0cFF1ZXJ5UGFyYW1zIiwgImh0dHBIZWFkZXIiLCAiaHR0cExhYmVsIiwgImh0dHBQcmVmaXhIZWFkZXJzIiwgImVycm9ySWRlbnRpZmllciIsICJkZWZhdWx0TmFtZXNwYWNlIiwgInJlc3BvbnNlIiwgImRhdGFPYmplY3QiLCAibWV0YWRhdGEiLCAiZ2V0RXJyb3JTY2hlbWEiLCAibmFtZXNwYWNlIiwgImVycm9yTmFtZSIsICJlcnJvck1ldGFkYXRhIiwgInJlZ2lzdHJ5IiwgInN5bnRoZXRpYyIsICJiYXNlRXhjZXB0aW9uU2NoZW1hIiwgIkVycm9yQ3RvciIsICJleGNlcHRpb24iLCAiYWRkaXRpb25zIiwgIm1zZyIsICJlcnJvciIsICJyZXFJZCIsICJvdXRwdXQiLCAicXVlcnlFcnJvckhlYWRlciIsICJDb2RlIiwgIlR5cGUiLCAiZW50cmllcyIsICJFcnJvciIsICJrIiwgInYiLCAicXVlcnlDb21wYXRFcnJvckRhdGEiLCAiZXJyb3JEYXRhIiwgInNjaGVtYSIsICJpbXBvcnRfY2JvciIsICJpbXBvcnRfc2NoZW1hIiwgIkF3c1NtaXRoeVJwY1YyQ2JvclByb3RvY29sIiwgImluaXRfQXdzU21pdGh5UnBjVjJDYm9yUHJvdG9jb2wiLCAiX19lc21NaW4iLCAiaW5pdF9Qcm90b2NvbExpYiIsICJkZWZhdWx0TmFtZXNwYWNlIiwgImF3c1F1ZXJ5Q29tcGF0aWJsZSIsICJQcm90b2NvbExpYiIsICJvcGVyYXRpb25TY2hlbWEiLCAiaW5wdXQiLCAiY29udGV4dCIsICJyZXF1ZXN0IiwgInJlc3BvbnNlIiwgImRhdGFPYmplY3QiLCAibWV0YWRhdGEiLCAiZXJyb3JOYW1lIiwgImNvbXBhdEhlYWRlciIsICJlcnJvclNjaGVtYSIsICJlcnJvck1ldGFkYXRhIiwgIm5zIiwgIm1lc3NhZ2UiLCAiRXJyb3JDdG9yIiwgImV4Y2VwdGlvbiIsICJvdXRwdXQiLCAibmFtZSIsICJtZW1iZXIiLCAiX3RvU3RyIiwgIl90b0Jvb2wiLCAiX3RvTnVtIiwgImluaXRfY29lcmNpbmdfc2VyaWFsaXplcnMiLCAiX19lc21NaW4iLCAidmFsIiwgIndhcm5pbmciLCAibG93ZXJjYXNlIiwgIm51bSIsICJTZXJkZUNvbnRleHRDb25maWciLCAiaW5pdF9Db25maWd1cmFibGVTZXJkZUNvbnRleHQiLCAiX19lc21NaW4iLCAic2VyZGVDb250ZXh0IiwgInNlcmlhbGl6aW5nU3RydWN0SXRlcmF0b3IiLCAibnMiLCAic291cmNlT2JqZWN0IiwgInN0cnVjdCIsICJpIiwgImtleSIsICJtZW1iZXJTY2hlbWEiLCAibWVtYmVyTnMiLCAiZGVzZXJpYWxpemluZ1N0cnVjdEl0ZXJhdG9yIiwgIm5hbWVUcmFpdCIsICJrZXlzUmVtYWluaW5nIiwgImsiLCAic2VyaWFsaXphdGlvbktleSIsICJpbXBvcnRfc2NoZW1hIiwgImluaXRfc3RydWN0SXRlcmF0b3IiLCAiX19lc21NaW4iLCAianNvblJldml2ZXIiLCAia2V5IiwgInZhbHVlIiwgImNvbnRleHQiLCAibnVtZXJpY1N0cmluZyIsICJpbXBvcnRfc2VyZGUiLCAiaW5pdF9qc29uUmV2aXZlciIsICJfX2VzbU1pbiIsICJpbXBvcnRfc21pdGh5X2NsaWVudCIsICJpbXBvcnRfdXRpbF91dGY4IiwgImNvbGxlY3RCb2R5U3RyaW5nIiwgImluaXRfY29tbW9uIiwgIl9fZXNtTWluIiwgInN0cmVhbUJvZHkiLCAiY29udGV4dCIsICJib2R5IiwgInBhcnNlSnNvbkJvZHkiLCAicGFyc2VKc29uRXJyb3JCb2R5IiwgImxvYWRSZXN0SnNvbkVycm9yQ29kZSIsICJpbml0X3BhcnNlSnNvbkJvZHkiLCAiX19lc21NaW4iLCAiaW5pdF9jb21tb24iLCAic3RyZWFtQm9keSIsICJjb250ZXh0IiwgImNvbGxlY3RCb2R5U3RyaW5nIiwgImVuY29kZWQiLCAiZSIsICJlcnJvckJvZHkiLCAidmFsdWUiLCAib3V0cHV0IiwgImRhdGEiLCAiZmluZEtleSIsICJvYmplY3QiLCAia2V5IiwgImsiLCAic2FuaXRpemVFcnJvckNvZGUiLCAicmF3VmFsdWUiLCAiY2xlYW5WYWx1ZSIsICJoZWFkZXJLZXkiLCAiY29kZUtleSIsICJpbXBvcnRfcHJvdG9jb2xzIiwgImltcG9ydF9zY2hlbWEiLCAiaW1wb3J0X3NlcmRlIiwgImltcG9ydF91dGlsX2Jhc2U2NCIsICJKc29uU2hhcGVEZXNlcmlhbGl6ZXIiLCAiaW5pdF9Kc29uU2hhcGVEZXNlcmlhbGl6ZXIiLCAiX19lc21NaW4iLCAiaW5pdF9Db25maWd1cmFibGVTZXJkZUNvbnRleHQiLCAiaW5pdF9zdHJ1Y3RJdGVyYXRvciIsICJpbml0X2pzb25SZXZpdmVyIiwgImluaXRfcGFyc2VKc29uQm9keSIsICJTZXJkZUNvbnRleHRDb25maWciLCAic2V0dGluZ3MiLCAic2NoZW1hIiwgImRhdGEiLCAianNvblJldml2ZXIiLCAicGFyc2VKc29uQm9keSIsICJ2YWx1ZSIsICJpc09iamVjdCIsICJucyIsICJvdXQiLCAibWVtYmVyTmFtZSIsICJtZW1iZXJTY2hlbWEiLCAiZGVzZXJpYWxpemluZ1N0cnVjdEl0ZXJhdG9yIiwgImZyb21LZXkiLCAiZGVzZXJpYWxpemVkVmFsdWUiLCAibGlzdE1lbWJlciIsICJzcGFyc2UiLCAiaXRlbSIsICJtYXBNZW1iZXIiLCAiX2siLCAiX3YiLCAibWVkaWFUeXBlIiwgInVudHlwZWQiLCAiayIsICJ2IiwgImltcG9ydF9zZXJkZSIsICJOVU1FUklDX0NPTlRST0xfQ0hBUiIsICJKc29uUmVwbGFjZXIiLCAiaW5pdF9qc29uUmVwbGFjZXIiLCAiX19lc21NaW4iLCAia2V5IiwgInZhbHVlIiwgInYiLCAicyIsICJqc29uIiwgImltcG9ydF9wcm90b2NvbHMiLCAiaW1wb3J0X3NjaGVtYSIsICJpbXBvcnRfc2VyZGUiLCAiaW1wb3J0X3V0aWxfYmFzZTY0IiwgIkpzb25TaGFwZVNlcmlhbGl6ZXIiLCAiaW5pdF9Kc29uU2hhcGVTZXJpYWxpemVyIiwgIl9fZXNtTWluIiwgImluaXRfQ29uZmlndXJhYmxlU2VyZGVDb250ZXh0IiwgImluaXRfc3RydWN0SXRlcmF0b3IiLCAiaW5pdF9qc29uUmVwbGFjZXIiLCAiU2VyZGVDb250ZXh0Q29uZmlnIiwgInNldHRpbmdzIiwgInNjaGVtYSIsICJ2YWx1ZSIsICJyb290U2NoZW1hIiwgInVzZVJlcGxhY2VyIiwgInJlcGxhY2VyIiwgIkpzb25SZXBsYWNlciIsICJjb250YWluZXIiLCAiaXNPYmplY3QiLCAibnMiLCAib3V0IiwgIm1lbWJlck5hbWUiLCAibWVtYmVyU2NoZW1hIiwgInNlcmlhbGl6aW5nU3RydWN0SXRlcmF0b3IiLCAic2VyaWFsaXphYmxlVmFsdWUiLCAianNvbk5hbWUiLCAidGFyZ2V0S2V5IiwgImxpc3RNZW1iZXIiLCAic3BhcnNlIiwgIml0ZW0iLCAibWFwTWVtYmVyIiwgIl9rIiwgIl92IiwgIm1lZGlhVHlwZSIsICJrIiwgInYiLCAiSnNvbkNvZGVjIiwgImluaXRfSnNvbkNvZGVjIiwgIl9fZXNtTWluIiwgImluaXRfQ29uZmlndXJhYmxlU2VyZGVDb250ZXh0IiwgImluaXRfSnNvblNoYXBlRGVzZXJpYWxpemVyIiwgImluaXRfSnNvblNoYXBlU2VyaWFsaXplciIsICJTZXJkZUNvbnRleHRDb25maWciLCAic2V0dGluZ3MiLCAic2VyaWFsaXplciIsICJKc29uU2hhcGVTZXJpYWxpemVyIiwgImRlc2VyaWFsaXplciIsICJKc29uU2hhcGVEZXNlcmlhbGl6ZXIiLCAiaW1wb3J0X3Byb3RvY29scyIsICJpbXBvcnRfc2NoZW1hIiwgIkF3c0pzb25ScGNQcm90b2NvbCIsICJpbml0X0F3c0pzb25ScGNQcm90b2NvbCIsICJfX2VzbU1pbiIsICJpbml0X1Byb3RvY29sTGliIiwgImluaXRfSnNvbkNvZGVjIiwgImluaXRfcGFyc2VKc29uQm9keSIsICJkZWZhdWx0TmFtZXNwYWNlIiwgInNlcnZpY2VUYXJnZXQiLCAiYXdzUXVlcnlDb21wYXRpYmxlIiwgImpzb25Db2RlYyIsICJKc29uQ29kZWMiLCAiUHJvdG9jb2xMaWIiLCAib3BlcmF0aW9uU2NoZW1hIiwgImlucHV0IiwgImNvbnRleHQiLCAicmVxdWVzdCIsICJyZXNwb25zZSIsICJkYXRhT2JqZWN0IiwgIm1ldGFkYXRhIiwgImVycm9ySWRlbnRpZmllciIsICJsb2FkUmVzdEpzb25FcnJvckNvZGUiLCAiZXJyb3JTY2hlbWEiLCAiZXJyb3JNZXRhZGF0YSIsICJucyIsICJtZXNzYWdlIiwgIkVycm9yQ3RvciIsICJleGNlcHRpb24iLCAib3V0cHV0IiwgIm5hbWUiLCAibWVtYmVyIiwgIkF3c0pzb24xXzBQcm90b2NvbCIsICJpbml0X0F3c0pzb24xXzBQcm90b2NvbCIsICJfX2VzbU1pbiIsICJpbml0X0F3c0pzb25ScGNQcm90b2NvbCIsICJBd3NKc29uUnBjUHJvdG9jb2wiLCAiZGVmYXVsdE5hbWVzcGFjZSIsICJzZXJ2aWNlVGFyZ2V0IiwgImF3c1F1ZXJ5Q29tcGF0aWJsZSIsICJqc29uQ29kZWMiLCAiQXdzSnNvbjFfMVByb3RvY29sIiwgImluaXRfQXdzSnNvbjFfMVByb3RvY29sIiwgIl9fZXNtTWluIiwgImluaXRfQXdzSnNvblJwY1Byb3RvY29sIiwgIkF3c0pzb25ScGNQcm90b2NvbCIsICJkZWZhdWx0TmFtZXNwYWNlIiwgInNlcnZpY2VUYXJnZXQiLCAiYXdzUXVlcnlDb21wYXRpYmxlIiwgImpzb25Db2RlYyIsICJpbXBvcnRfcHJvdG9jb2xzIiwgImltcG9ydF9zY2hlbWEiLCAiQXdzUmVzdEpzb25Qcm90b2NvbCIsICJpbml0X0F3c1Jlc3RKc29uUHJvdG9jb2wiLCAiX19lc21NaW4iLCAiaW5pdF9Qcm90b2NvbExpYiIsICJpbml0X0pzb25Db2RlYyIsICJpbml0X3BhcnNlSnNvbkJvZHkiLCAiUHJvdG9jb2xMaWIiLCAiZGVmYXVsdE5hbWVzcGFjZSIsICJzZXR0aW5ncyIsICJKc29uQ29kZWMiLCAic2VyZGVDb250ZXh0IiwgIm9wZXJhdGlvblNjaGVtYSIsICJpbnB1dCIsICJjb250ZXh0IiwgInJlcXVlc3QiLCAiaW5wdXRTY2hlbWEiLCAiY29udGVudFR5cGUiLCAicmVzcG9uc2UiLCAib3V0cHV0IiwgIm91dHB1dFNjaGVtYSIsICJuYW1lIiwgIm1lbWJlciIsICJkYXRhT2JqZWN0IiwgIm1ldGFkYXRhIiwgImVycm9ySWRlbnRpZmllciIsICJsb2FkUmVzdEpzb25FcnJvckNvZGUiLCAiZXJyb3JTY2hlbWEiLCAiZXJyb3JNZXRhZGF0YSIsICJucyIsICJtZXNzYWdlIiwgIkVycm9yQ3RvciIsICJleGNlcHRpb24iLCAidGFyZ2V0IiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgImF3c0V4cGVjdFVuaW9uIiwgImluaXRfYXdzRXhwZWN0VW5pb24iLCAiX19lc21NaW4iLCAidmFsdWUiLCAicmVxdWlyZV94bWxfcGFyc2VyIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJwYXJzZVhNTCIsICJmYXN0X3htbF9wYXJzZXJfMSIsICJwYXJzZXIiLCAiXyIsICJ2YWwiLCAieG1sU3RyaW5nIiwgInJlcXVpcmVfZGlzdF9janMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgInhtbFBhcnNlciIsICJlc2NhcGVBdHRyaWJ1dGUiLCAidmFsdWUiLCAiZXNjYXBlRWxlbWVudCIsICJYbWxUZXh0IiwgIlhtbE5vZGUiLCAiX1htbE5vZGUiLCAibmFtZSIsICJjaGlsZFRleHQiLCAid2l0aE5hbWUiLCAibm9kZSIsICJjaGlsZHJlbiIsICJjaGlsZCIsICJpbnB1dCIsICJmaWVsZCIsICJsaXN0TmFtZSIsICJtZW1iZXJOYW1lIiwgInZhbHVlUHJvdmlkZXIiLCAibm9kZXMiLCAiY29udGFpbmVyTm9kZSIsICJoYXNDaGlsZHJlbiIsICJ4bWxUZXh0IiwgImF0dHJpYnV0ZXMiLCAiYXR0cmlidXRlTmFtZSIsICJhdHRyaWJ1dGUiLCAiYyIsICJpbXBvcnRfeG1sX2J1aWxkZXIiLCAiaW1wb3J0X3Byb3RvY29scyIsICJpbXBvcnRfc2NoZW1hIiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgImltcG9ydF91dGlsX3V0ZjgiLCAiWG1sU2hhcGVEZXNlcmlhbGl6ZXIiLCAiaW5pdF9YbWxTaGFwZURlc2VyaWFsaXplciIsICJfX2VzbU1pbiIsICJpbml0X0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dCIsICJTZXJkZUNvbnRleHRDb25maWciLCAic2V0dGluZ3MiLCAic2VyZGVDb250ZXh0IiwgInNjaGVtYSIsICJieXRlcyIsICJrZXkiLCAibnMiLCAibWVtYmVyU2NoZW1hcyIsICJtZW1iZXJOcyIsICJvdXRwdXQiLCAibWVtYmVyTmFtZSIsICJ4bWxTdHJpbmciLCAicGFyc2VkT2JqZWN0IiwgIl9zY2hlbWEiLCAidmFsdWUiLCAidHJhaXRzIiwgInNwYXJzZSIsICJmbGF0IiwgImxpc3RWYWx1ZSIsICJidWZmZXIiLCAic291cmNlS2V5IiwgInNvdXJjZSIsICJzb3VyY2VBcnJheSIsICJ2IiwgImtleU5zIiwgImVudHJpZXMiLCAia2V5UHJvcGVydHkiLCAidmFsdWVQcm9wZXJ0eSIsICJlbnRyeSIsICJtZW1iZXJTY2hlbWEiLCAibWVtYmVyVHJhaXRzIiwgInhtbE9iamVjdEtleSIsICJ4bWwiLCAicGFyc2VkT2JqIiwgImUiLCAidGV4dE5vZGVOYW1lIiwgInBhcnNlZE9ialRvUmV0dXJuIiwgImltcG9ydF9wcm90b2NvbHMiLCAiaW1wb3J0X3NjaGVtYSIsICJpbXBvcnRfc2VyZGUiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAiaW1wb3J0X3V0aWxfYmFzZTY0IiwgIlF1ZXJ5U2hhcGVTZXJpYWxpemVyIiwgImluaXRfUXVlcnlTaGFwZVNlcmlhbGl6ZXIiLCAiX19lc21NaW4iLCAiaW5pdF9Db25maWd1cmFibGVTZXJkZUNvbnRleHQiLCAiaW5pdF9zdHJ1Y3RJdGVyYXRvciIsICJTZXJkZUNvbnRleHRDb25maWciLCAic2V0dGluZ3MiLCAic2NoZW1hIiwgInZhbHVlIiwgInByZWZpeCIsICJucyIsICJtZW1iZXIiLCAiZmxhdCIsICJpIiwgIml0ZW0iLCAic3VmZml4IiwgImtleSIsICJrZXlTY2hlbWEiLCAibWVtYmVyU2NoZW1hIiwgImsiLCAidiIsICJrZXlTdWZmaXgiLCAidmFsdWVTdWZmaXgiLCAidmFsdWVLZXkiLCAibWVtYmVyTmFtZSIsICJzZXJpYWxpemluZ1N0cnVjdEl0ZXJhdG9yIiwgInN0ciIsICJ4bWxOYW1lIiwgImltcG9ydF9wcm90b2NvbHMiLCAiaW1wb3J0X3NjaGVtYSIsICJBd3NRdWVyeVByb3RvY29sIiwgImluaXRfQXdzUXVlcnlQcm90b2NvbCIsICJfX2VzbU1pbiIsICJpbml0X1Byb3RvY29sTGliIiwgImluaXRfWG1sU2hhcGVEZXNlcmlhbGl6ZXIiLCAiaW5pdF9RdWVyeVNoYXBlU2VyaWFsaXplciIsICJQcm90b2NvbExpYiIsICJvcHRpb25zIiwgInNldHRpbmdzIiwgIlF1ZXJ5U2hhcGVTZXJpYWxpemVyIiwgIlhtbFNoYXBlRGVzZXJpYWxpemVyIiwgInNlcmRlQ29udGV4dCIsICJvcGVyYXRpb25TY2hlbWEiLCAiaW5wdXQiLCAiY29udGV4dCIsICJyZXF1ZXN0IiwgImFjdGlvbiIsICJyZXNwb25zZSIsICJkZXNlcmlhbGl6ZXIiLCAibnMiLCAiZGF0YU9iamVjdCIsICJieXRlcyIsICJoZWFkZXIiLCAidmFsdWUiLCAic2hvcnROYW1lIiwgImF3c1F1ZXJ5UmVzdWx0S2V5IiwgIm1ldGFkYXRhIiwgImVycm9ySWRlbnRpZmllciIsICJlcnJvckRhdGEiLCAibWVzc2FnZSIsICJlcnJvclNjaGVtYSIsICJlcnJvck1ldGFkYXRhIiwgIkVycm9yQ3RvciIsICJleGNlcHRpb24iLCAib3V0cHV0IiwgIm5hbWUiLCAibWVtYmVyIiwgInRhcmdldCIsICJkYXRhIiwgImNvZGUiLCAiQXdzRWMyUXVlcnlQcm90b2NvbCIsICJpbml0X0F3c0VjMlF1ZXJ5UHJvdG9jb2wiLCAiX19lc21NaW4iLCAiaW5pdF9Bd3NRdWVyeVByb3RvY29sIiwgIkF3c1F1ZXJ5UHJvdG9jb2wiLCAib3B0aW9ucyIsICJlYzJTZXR0aW5ncyIsICJpbXBvcnRfeG1sX2J1aWxkZXIiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAicGFyc2VYbWxCb2R5IiwgInBhcnNlWG1sRXJyb3JCb2R5IiwgImxvYWRSZXN0WG1sRXJyb3JDb2RlIiwgImluaXRfcGFyc2VYbWxCb2R5IiwgIl9fZXNtTWluIiwgImluaXRfY29tbW9uIiwgInN0cmVhbUJvZHkiLCAiY29udGV4dCIsICJjb2xsZWN0Qm9keVN0cmluZyIsICJlbmNvZGVkIiwgInBhcnNlZE9iaiIsICJlIiwgInRleHROb2RlTmFtZSIsICJrZXkiLCAicGFyc2VkT2JqVG9SZXR1cm4iLCAiZXJyb3JCb2R5IiwgInZhbHVlIiwgIm91dHB1dCIsICJkYXRhIiwgImltcG9ydF94bWxfYnVpbGRlciIsICJpbXBvcnRfcHJvdG9jb2xzIiwgImltcG9ydF9zY2hlbWEiLCAiaW1wb3J0X3NlcmRlIiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgImltcG9ydF91dGlsX2Jhc2U2NCIsICJYbWxTaGFwZVNlcmlhbGl6ZXIiLCAiaW5pdF9YbWxTaGFwZVNlcmlhbGl6ZXIiLCAiX19lc21NaW4iLCAiaW5pdF9Db25maWd1cmFibGVTZXJkZUNvbnRleHQiLCAiaW5pdF9zdHJ1Y3RJdGVyYXRvciIsICJTZXJkZUNvbnRleHRDb25maWciLCAic2V0dGluZ3MiLCAic2NoZW1hIiwgInZhbHVlIiwgIm5zIiwgInRyYWl0cyIsICJieXRlcyIsICJzdHIiLCAiYnVmZmVyIiwgInBhcmVudFhtbG5zIiwgIm5hbWUiLCAic3RydWN0WG1sTm9kZSIsICJ4bWxuc0F0dHIiLCAieG1sbnMiLCAibWVtYmVyTmFtZSIsICJtZW1iZXJTY2hlbWEiLCAic2VyaWFsaXppbmdTdHJ1Y3RJdGVyYXRvciIsICJ2YWwiLCAibWVtYmVyTm9kZSIsICJsaXN0TWVtYmVyIiwgImFycmF5IiwgImNvbnRhaW5lciIsICJsaXN0VHJhaXRzIiwgImxpc3RWYWx1ZVNjaGVtYSIsICJsaXN0VmFsdWVUcmFpdHMiLCAic3BhcnNlIiwgImZsYXQiLCAid3JpdGVJdGVtIiwgInN0cnVjdCIsICJsaXN0SXRlbU5vZGUiLCAibGlzdE5vZGUiLCAibWFwTWVtYmVyIiwgIm1hcCIsICJjb250YWluZXJJc01hcCIsICJtYXBUcmFpdHMiLCAibWFwS2V5U2NoZW1hIiwgImtleVRhZyIsICJtYXBWYWx1ZVNjaGVtYSIsICJtYXBWYWx1ZVRyYWl0cyIsICJ2YWx1ZVRhZyIsICJhZGRLZXlWYWx1ZSIsICJlbnRyeSIsICJrZXkiLCAia2V5Tm9kZSIsICJrZXlYbWxuc0F0dHIiLCAia2V5WG1sbnMiLCAidmFsdWVOb2RlIiwgIm1hcE5vZGUiLCAiX3NjaGVtYSIsICJub2RlQ29udGVudHMiLCAiaW50byIsICJjb250ZW50IiwgInByZWZpeCIsICJYbWxDb2RlYyIsICJpbml0X1htbENvZGVjIiwgIl9fZXNtTWluIiwgImluaXRfQ29uZmlndXJhYmxlU2VyZGVDb250ZXh0IiwgImluaXRfWG1sU2hhcGVEZXNlcmlhbGl6ZXIiLCAiaW5pdF9YbWxTaGFwZVNlcmlhbGl6ZXIiLCAiU2VyZGVDb250ZXh0Q29uZmlnIiwgInNldHRpbmdzIiwgInNlcmlhbGl6ZXIiLCAiWG1sU2hhcGVTZXJpYWxpemVyIiwgImRlc2VyaWFsaXplciIsICJYbWxTaGFwZURlc2VyaWFsaXplciIsICJpbXBvcnRfcHJvdG9jb2xzIiwgImltcG9ydF9zY2hlbWEiLCAiQXdzUmVzdFhtbFByb3RvY29sIiwgImluaXRfQXdzUmVzdFhtbFByb3RvY29sIiwgIl9fZXNtTWluIiwgImluaXRfUHJvdG9jb2xMaWIiLCAiaW5pdF9wYXJzZVhtbEJvZHkiLCAiaW5pdF9YbWxDb2RlYyIsICJQcm90b2NvbExpYiIsICJvcHRpb25zIiwgInNldHRpbmdzIiwgIlhtbENvZGVjIiwgIm9wZXJhdGlvblNjaGVtYSIsICJpbnB1dCIsICJjb250ZXh0IiwgInJlcXVlc3QiLCAiaW5wdXRTY2hlbWEiLCAiY29udGVudFR5cGUiLCAicmVzcG9uc2UiLCAiZGF0YU9iamVjdCIsICJtZXRhZGF0YSIsICJlcnJvcklkZW50aWZpZXIiLCAibG9hZFJlc3RYbWxFcnJvckNvZGUiLCAiZXJyb3JTY2hlbWEiLCAiZXJyb3JNZXRhZGF0YSIsICJucyIsICJtZXNzYWdlIiwgIkVycm9yQ3RvciIsICJleGNlcHRpb24iLCAib3V0cHV0IiwgIm5hbWUiLCAibWVtYmVyIiwgInRhcmdldCIsICJ2YWx1ZSIsICJwcm90b2NvbHNfZXhwb3J0cyIsICJfX2V4cG9ydCIsICJBd3NFYzJRdWVyeVByb3RvY29sIiwgIkF3c0pzb24xXzBQcm90b2NvbCIsICJBd3NKc29uMV8xUHJvdG9jb2wiLCAiQXdzSnNvblJwY1Byb3RvY29sIiwgIkF3c1F1ZXJ5UHJvdG9jb2wiLCAiQXdzUmVzdEpzb25Qcm90b2NvbCIsICJBd3NSZXN0WG1sUHJvdG9jb2wiLCAiQXdzU21pdGh5UnBjVjJDYm9yUHJvdG9jb2wiLCAiSnNvbkNvZGVjIiwgIkpzb25TaGFwZURlc2VyaWFsaXplciIsICJKc29uU2hhcGVTZXJpYWxpemVyIiwgIlhtbENvZGVjIiwgIlhtbFNoYXBlRGVzZXJpYWxpemVyIiwgIlhtbFNoYXBlU2VyaWFsaXplciIsICJfdG9Cb29sIiwgIl90b051bSIsICJfdG9TdHIiLCAiYXdzRXhwZWN0VW5pb24iLCAibG9hZFJlc3RKc29uRXJyb3JDb2RlIiwgImxvYWRSZXN0WG1sRXJyb3JDb2RlIiwgInBhcnNlSnNvbkJvZHkiLCAicGFyc2VKc29uRXJyb3JCb2R5IiwgInBhcnNlWG1sQm9keSIsICJwYXJzZVhtbEVycm9yQm9keSIsICJpbml0X3Byb3RvY29scyIsICJfX2VzbU1pbiIsICJpbml0X0F3c1NtaXRoeVJwY1YyQ2JvclByb3RvY29sIiwgImluaXRfY29lcmNpbmdfc2VyaWFsaXplcnMiLCAiaW5pdF9Bd3NKc29uMV8wUHJvdG9jb2wiLCAiaW5pdF9Bd3NKc29uMV8xUHJvdG9jb2wiLCAiaW5pdF9Bd3NKc29uUnBjUHJvdG9jb2wiLCAiaW5pdF9Bd3NSZXN0SnNvblByb3RvY29sIiwgImluaXRfSnNvbkNvZGVjIiwgImluaXRfSnNvblNoYXBlRGVzZXJpYWxpemVyIiwgImluaXRfSnNvblNoYXBlU2VyaWFsaXplciIsICJpbml0X2F3c0V4cGVjdFVuaW9uIiwgImluaXRfcGFyc2VKc29uQm9keSIsICJpbml0X0F3c0VjMlF1ZXJ5UHJvdG9jb2wiLCAiaW5pdF9Bd3NRdWVyeVByb3RvY29sIiwgImluaXRfQXdzUmVzdFhtbFByb3RvY29sIiwgImluaXRfWG1sQ29kZWMiLCAiaW5pdF9YbWxTaGFwZURlc2VyaWFsaXplciIsICJpbml0X1htbFNoYXBlU2VyaWFsaXplciIsICJpbml0X3BhcnNlWG1sQm9keSIsICJkaXN0X2VzX2V4cG9ydHMiLCAiX19leHBvcnQiLCAiQVdTU0RLU2lnVjRTaWduZXIiLCAiQXdzRWMyUXVlcnlQcm90b2NvbCIsICJBd3NKc29uMV8wUHJvdG9jb2wiLCAiQXdzSnNvbjFfMVByb3RvY29sIiwgIkF3c0pzb25ScGNQcm90b2NvbCIsICJBd3NRdWVyeVByb3RvY29sIiwgIkF3c1Jlc3RKc29uUHJvdG9jb2wiLCAiQXdzUmVzdFhtbFByb3RvY29sIiwgIkF3c1Nka1NpZ1Y0QVNpZ25lciIsICJBd3NTZGtTaWdWNFNpZ25lciIsICJBd3NTbWl0aHlScGNWMkNib3JQcm90b2NvbCIsICJKc29uQ29kZWMiLCAiSnNvblNoYXBlRGVzZXJpYWxpemVyIiwgIkpzb25TaGFwZVNlcmlhbGl6ZXIiLCAiTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX09QVElPTlMiLCAiTk9ERV9TSUdWNEFfQ09ORklHX09QVElPTlMiLCAiWG1sQ29kZWMiLCAiWG1sU2hhcGVEZXNlcmlhbGl6ZXIiLCAiWG1sU2hhcGVTZXJpYWxpemVyIiwgIl90b0Jvb2wiLCAiX3RvTnVtIiwgIl90b1N0ciIsICJhd3NFeHBlY3RVbmlvbiIsICJlbWl0V2FybmluZ0lmVW5zdXBwb3J0ZWRWZXJzaW9uIiwgImdldEJlYXJlclRva2VuRW52S2V5IiwgImxvYWRSZXN0SnNvbkVycm9yQ29kZSIsICJsb2FkUmVzdFhtbEVycm9yQ29kZSIsICJwYXJzZUpzb25Cb2R5IiwgInBhcnNlSnNvbkVycm9yQm9keSIsICJwYXJzZVhtbEJvZHkiLCAicGFyc2VYbWxFcnJvckJvZHkiLCAicmVzb2x2ZUFXU1NES1NpZ1Y0Q29uZmlnIiwgInJlc29sdmVBd3NTZGtTaWdWNEFDb25maWciLCAicmVzb2x2ZUF3c1Nka1NpZ1Y0Q29uZmlnIiwgInNldENyZWRlbnRpYWxGZWF0dXJlIiwgInNldEZlYXR1cmUiLCAic2V0VG9rZW5GZWF0dXJlIiwgInN0YXRlIiwgInZhbGlkYXRlU2lnbmluZ1Byb3BlcnRpZXMiLCAiaW5pdF9kaXN0X2VzIiwgIl9fZXNtTWluIiwgImluaXRfY2xpZW50IiwgImluaXRfaHR0cEF1dGhTY2hlbWVzIiwgImluaXRfcHJvdG9jb2xzIiwgInJlcXVpcmVfZGlzdF9janMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgImNvcmUiLCAidXRpbEVuZHBvaW50cyIsICJwcm90b2NvbEh0dHAiLCAiY29yZSQxIiwgIkRFRkFVTFRfVUFfQVBQX0lEIiwgImlzVmFsaWRVc2VyQWdlbnRBcHBJZCIsICJhcHBJZCIsICJyZXNvbHZlVXNlckFnZW50Q29uZmlnIiwgImlucHV0IiwgIm5vcm1hbGl6ZWRBcHBJZFByb3ZpZGVyIiwgImN1c3RvbVVzZXJBZ2VudCIsICJsb2dnZXIiLCAiQUNDT1VOVF9JRF9FTkRQT0lOVF9SRUdFWCIsICJjaGVja0ZlYXR1cmVzIiwgImNvbnRleHQiLCAiY29uZmlnIiwgImFyZ3MiLCAicmV0cnlTdHJhdGVneSIsICJlbmRwb2ludFYyIiwgImlkZW50aXR5IiwgImNyZWRlbnRpYWxzIiwgImtleSIsICJ2YWx1ZSIsICJVU0VSX0FHRU5UIiwgIlhfQU1aX1VTRVJfQUdFTlQiLCAiU1BBQ0UiLCAiVUFfTkFNRV9TRVBBUkFUT1IiLCAiVUFfTkFNRV9FU0NBUEVfUkVHRVgiLCAiVUFfVkFMVUVfRVNDQVBFX1JFR0VYIiwgIlVBX0VTQ0FQRV9DSEFSIiwgIkJZVEVfTElNSVQiLCAiZW5jb2RlRmVhdHVyZXMiLCAiZmVhdHVyZXMiLCAiYnVmZmVyIiwgInZhbCIsICJ1c2VyQWdlbnRNaWRkbGV3YXJlIiwgIm9wdGlvbnMiLCAibmV4dCIsICJyZXF1ZXN0IiwgImhlYWRlcnMiLCAidXNlckFnZW50IiwgImVzY2FwZVVzZXJBZ2VudCIsICJkZWZhdWx0VXNlckFnZW50IiwgImF3c0NvbnRleHQiLCAicHJlZml4IiwgInNka1VzZXJBZ2VudFZhbHVlIiwgIm5vcm1hbFVBVmFsdWUiLCAic2VjdGlvbiIsICJ1c2VyQWdlbnRQYWlyIiwgIm5hbWUiLCAicGFydCIsICJ2ZXJzaW9uIiwgInByZWZpeFNlcGFyYXRvckluZGV4IiwgInVhTmFtZSIsICJpdGVtIiwgImFjYyIsICJpbmRleCIsICJnZXRVc2VyQWdlbnRNaWRkbGV3YXJlT3B0aW9ucyIsICJnZXRVc2VyQWdlbnRQbHVnaW4iLCAiY2xpZW50U3RhY2siLCAicmVxdWlyZV9odHRwQXV0aFNjaGVtZVByb3ZpZGVyIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJjb3JlXzEiLCAidXRpbF9taWRkbGV3YXJlXzEiLCAiZGVmYXVsdENsb3VkV2F0Y2hIdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlciIsICJjb25maWciLCAiY29udGV4dCIsICJpbnB1dCIsICJjcmVhdGVBd3NBdXRoU2lndjRIdHRwQXV0aE9wdGlvbiIsICJhdXRoUGFyYW1ldGVycyIsICJkZWZhdWx0Q2xvdWRXYXRjaEh0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAib3B0aW9ucyIsICJyZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWciLCAiY29uZmlnXzAiLCAicmVxdWlyZV9wYWNrYWdlIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAicmVxdWlyZV9kaXN0X2NqcyIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAiY2xpZW50IiwgInByb3BlcnR5UHJvdmlkZXIiLCAiRU5WX0tFWSIsICJFTlZfU0VDUkVUIiwgIkVOVl9TRVNTSU9OIiwgIkVOVl9FWFBJUkFUSU9OIiwgIkVOVl9DUkVERU5USUFMX1NDT1BFIiwgIkVOVl9BQ0NPVU5UX0lEIiwgImZyb21FbnYiLCAiaW5pdCIsICJhY2Nlc3NLZXlJZCIsICJzZWNyZXRBY2Nlc3NLZXkiLCAic2Vzc2lvblRva2VuIiwgImV4cGlyeSIsICJjcmVkZW50aWFsU2NvcGUiLCAiYWNjb3VudElkIiwgImNyZWRlbnRpYWxzIiwgInJlcXVpcmVfY2hlY2tVcmwiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgInByb3BlcnR5X3Byb3ZpZGVyXzEiLCAiRUNTX0NPTlRBSU5FUl9IT1NUIiwgIkVLU19DT05UQUlORVJfSE9TVF9JUHY0IiwgIkVLU19DT05UQUlORVJfSE9TVF9JUHY2IiwgImNoZWNrVXJsIiwgInVybCIsICJsb2dnZXIiLCAiaXBDb21wb25lbnRzIiwgImluUmFuZ2UiLCAiY29tcG9uZW50IiwgIm51bSIsICJyZXF1aXJlX3JlcXVlc3RIZWxwZXJzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJjcmVhdGVHZXRSZXF1ZXN0IiwgImdldENyZWRlbnRpYWxzIiwgInByb3BlcnR5X3Byb3ZpZGVyXzEiLCAicHJvdG9jb2xfaHR0cF8xIiwgInNtaXRoeV9jbGllbnRfMSIsICJ1dGlsX3N0cmVhbV8xIiwgInVybCIsICJhY2MiLCAiayIsICJ2IiwgInJlc3BvbnNlIiwgImxvZ2dlciIsICJzdHIiLCAicGFyc2VkIiwgInBhcnNlZEJvZHkiLCAicmVxdWlyZV9yZXRyeV93cmFwcGVyIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJyZXRyeVdyYXBwZXIiLCAidG9SZXRyeSIsICJtYXhSZXRyaWVzIiwgImRlbGF5TXMiLCAiaSIsICJyZXNvbHZlIiwgInJlcXVpcmVfZnJvbUh0dHAiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgInRzbGliXzEiLCAiY2xpZW50XzEiLCAibm9kZV9odHRwX2hhbmRsZXJfMSIsICJwcm9wZXJ0eV9wcm92aWRlcl8xIiwgInByb21pc2VzXzEiLCAiY2hlY2tVcmxfMSIsICJyZXF1ZXN0SGVscGVyc18xIiwgInJldHJ5X3dyYXBwZXJfMSIsICJBV1NfQ09OVEFJTkVSX0NSRURFTlRJQUxTX1JFTEFUSVZFX1VSSSIsICJERUZBVUxUX0xJTktfTE9DQUxfSE9TVCIsICJBV1NfQ09OVEFJTkVSX0NSRURFTlRJQUxTX0ZVTExfVVJJIiwgIkFXU19DT05UQUlORVJfQVVUSE9SSVpBVElPTl9UT0tFTl9GSUxFIiwgIkFXU19DT05UQUlORVJfQVVUSE9SSVpBVElPTl9UT0tFTiIsICJmcm9tSHR0cCIsICJvcHRpb25zIiwgImhvc3QiLCAicmVsYXRpdmUiLCAiZnVsbCIsICJ0b2tlbiIsICJ0b2tlbkZpbGUiLCAid2FybiIsICJ1cmwiLCAicmVxdWVzdEhhbmRsZXIiLCAicmVxdWVzdCIsICJyZXN1bHQiLCAiY3JlZHMiLCAiZSIsICJyZXF1aXJlX2Rpc3RfY2pzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJmcm9tSHR0cF8xIiwgImNyZWF0ZUF3c0F1dGhTaWd2NEh0dHBBdXRoT3B0aW9uIiwgImF1dGhQYXJhbWV0ZXJzIiwgImNvbmZpZyIsICJjb250ZXh0IiwgImNyZWF0ZVNtaXRoeUFwaU5vQXV0aEh0dHBBdXRoT3B0aW9uIiwgImltcG9ydF91dGlsX21pZGRsZXdhcmUiLCAiZGVmYXVsdFNTT09JRENIdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlciIsICJkZWZhdWx0U1NPT0lEQ0h0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAicmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnIiwgImluaXRfaHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJfX2VzbU1pbiIsICJpbml0X2Rpc3RfZXMiLCAiaW5wdXQiLCAib3B0aW9ucyIsICJjb25maWdfMCIsICJyZXNvbHZlQXdzU2RrU2lnVjRDb25maWciLCAicmVzb2x2ZUNsaWVudEVuZHBvaW50UGFyYW1ldGVycyIsICJjb21tb25QYXJhbXMiLCAiaW5pdF9FbmRwb2ludFBhcmFtZXRlcnMiLCAiX19lc21NaW4iLCAib3B0aW9ucyIsICJwYWNrYWdlX2RlZmF1bHQiLCAiaW5pdF9wYWNrYWdlIiwgIl9fZXNtTWluIiwgInJlcXVpcmVfZGlzdF9janMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgIm9zIiwgInByb2Nlc3MiLCAibWlkZGxld2FyZVVzZXJBZ2VudCIsICJjcnRBdmFpbGFiaWxpdHkiLCAiaXNDcnRBdmFpbGFibGUiLCAiY3JlYXRlRGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyIiwgInNlcnZpY2VJZCIsICJjbGllbnRWZXJzaW9uIiwgImNvbmZpZyIsICJzZWN0aW9ucyIsICJjcnRBdmFpbGFibGUiLCAiYXBwSWQiLCAiZGVmYXVsdFVzZXJBZ2VudCIsICJVQV9BUFBfSURfRU5WX05BTUUiLCAiVUFfQVBQX0lEX0lOSV9OQU1FIiwgIlVBX0FQUF9JRF9JTklfTkFNRV9ERVBSRUNBVEVEIiwgIk5PREVfQVBQX0lEX0NPTkZJR19PUFRJT05TIiwgImVudiIsICJwcm9maWxlIiwgInUiLCAidiIsICJ3IiwgIngiLCAiYiIsICJjIiwgImQiLCAiZSIsICJmIiwgImciLCAiaCIsICJpIiwgImoiLCAiayIsICJsIiwgIm0iLCAibiIsICJvIiwgInAiLCAicSIsICJyIiwgInMiLCAidCIsICJfZGF0YSIsICJydWxlU2V0IiwgImluaXRfcnVsZXNldCIsICJfX2VzbU1pbiIsICJpbXBvcnRfdXRpbF9lbmRwb2ludHMiLCAiY2FjaGUiLCAiZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIiLCAiaW5pdF9lbmRwb2ludFJlc29sdmVyIiwgIl9fZXNtTWluIiwgImluaXRfcnVsZXNldCIsICJlbmRwb2ludFBhcmFtcyIsICJjb250ZXh0IiwgInJ1bGVTZXQiLCAiaW1wb3J0X2NvcmUiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAiaW1wb3J0X3VybF9wYXJzZXIiLCAiaW1wb3J0X3V0aWxfYmFzZTY0IiwgImltcG9ydF91dGlsX3V0ZjgiLCAiZ2V0UnVudGltZUNvbmZpZyIsICJpbml0X3J1bnRpbWVDb25maWdfc2hhcmVkIiwgIl9fZXNtTWluIiwgImluaXRfZGlzdF9lcyIsICJpbml0X3Byb3RvY29scyIsICJpbml0X2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAiaW5pdF9lbmRwb2ludFJlc29sdmVyIiwgImNvbmZpZyIsICJkZWZhdWx0RW5kcG9pbnRSZXNvbHZlciIsICJkZWZhdWx0U1NPT0lEQ0h0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAiaXBjIiwgIkF3c1Nka1NpZ1Y0U2lnbmVyIiwgIkF3c1Jlc3RKc29uUHJvdG9jb2wiLCAiaW1wb3J0X3V0aWxfdXNlcl9hZ2VudF9ub2RlIiwgImltcG9ydF9jb25maWdfcmVzb2x2ZXIiLCAiaW1wb3J0X2hhc2hfbm9kZSIsICJpbXBvcnRfbWlkZGxld2FyZV9yZXRyeSIsICJpbXBvcnRfbm9kZV9jb25maWdfcHJvdmlkZXIiLCAiaW1wb3J0X25vZGVfaHR0cF9oYW5kbGVyIiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgImltcG9ydF91dGlsX2JvZHlfbGVuZ3RoX25vZGUiLCAiaW1wb3J0X3V0aWxfZGVmYXVsdHNfbW9kZV9ub2RlIiwgImltcG9ydF91dGlsX3JldHJ5IiwgImdldFJ1bnRpbWVDb25maWciLCAiaW5pdF9ydW50aW1lQ29uZmlnIiwgIl9fZXNtTWluIiwgImluaXRfcGFja2FnZSIsICJpbml0X2Rpc3RfZXMiLCAiaW5pdF9ydW50aW1lQ29uZmlnX3NoYXJlZCIsICJjb25maWciLCAiZGVmYXVsdHNNb2RlIiwgImRlZmF1bHRDb25maWdQcm92aWRlciIsICJjbGllbnRTaGFyZWRWYWx1ZXMiLCAiZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbiIsICJsb2FkZXJDb25maWciLCAibG9hZE5vZGVDb25maWciLCAiTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX09QVElPTlMiLCAicGFja2FnZV9kZWZhdWx0IiwgIlJlcXVlc3RIYW5kbGVyIiwgInJlcXVpcmVfc3RzUmVnaW9uRGVmYXVsdFJlc29sdmVyIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJzdHNSZWdpb25EZWZhdWx0UmVzb2x2ZXIiLCAiY29uZmlnX3Jlc29sdmVyXzEiLCAibm9kZV9jb25maWdfcHJvdmlkZXJfMSIsICJsb2FkZXJDb25maWciLCAicmVxdWlyZV9kaXN0X2NqcyIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAiY29uZmlnUmVzb2x2ZXIiLCAic3RzUmVnaW9uRGVmYXVsdFJlc29sdmVyIiwgImdldEF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24iLCAicnVudGltZUNvbmZpZyIsICJyZWdpb24iLCAicmVzb2x2ZUF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24iLCAiYXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiIsICJrIiwgImdldEh0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiIsICJyZXNvbHZlSHR0cEF1dGhSdW50aW1lQ29uZmlnIiwgImluaXRfaHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uIiwgIl9fZXNtTWluIiwgInJ1bnRpbWVDb25maWciLCAiX2h0dHBBdXRoU2NoZW1lcyIsICJfaHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJfY3JlZGVudGlhbHMiLCAiaHR0cEF1dGhTY2hlbWUiLCAiaW5kZXgiLCAic2NoZW1lIiwgImh0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAiY3JlZGVudGlhbHMiLCAiY29uZmlnIiwgImltcG9ydF9yZWdpb25fY29uZmlnX3Jlc29sdmVyIiwgImltcG9ydF9wcm90b2NvbF9odHRwIiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgInJlc29sdmVSdW50aW1lRXh0ZW5zaW9ucyIsICJpbml0X3J1bnRpbWVFeHRlbnNpb25zIiwgIl9fZXNtTWluIiwgImluaXRfaHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uIiwgInJ1bnRpbWVDb25maWciLCAiZXh0ZW5zaW9ucyIsICJleHRlbnNpb25Db25maWd1cmF0aW9uIiwgImdldEh0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiIsICJleHRlbnNpb24iLCAicmVzb2x2ZUh0dHBBdXRoUnVudGltZUNvbmZpZyIsICJpbXBvcnRfbWlkZGxld2FyZV9ob3N0X2hlYWRlciIsICJpbXBvcnRfbWlkZGxld2FyZV9sb2dnZXIiLCAiaW1wb3J0X21pZGRsZXdhcmVfcmVjdXJzaW9uX2RldGVjdGlvbiIsICJpbXBvcnRfbWlkZGxld2FyZV91c2VyX2FnZW50IiwgImltcG9ydF9jb25maWdfcmVzb2x2ZXIiLCAiaW1wb3J0X2NvcmUiLCAiaW1wb3J0X3NjaGVtYSIsICJpbXBvcnRfbWlkZGxld2FyZV9jb250ZW50X2xlbmd0aCIsICJpbXBvcnRfbWlkZGxld2FyZV9lbmRwb2ludCIsICJpbXBvcnRfbWlkZGxld2FyZV9yZXRyeSIsICJpbXBvcnRfc21pdGh5X2NsaWVudCIsICJTU09PSURDQ2xpZW50IiwgImluaXRfU1NPT0lEQ0NsaWVudCIsICJfX2VzbU1pbiIsICJpbml0X2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAiaW5pdF9FbmRwb2ludFBhcmFtZXRlcnMiLCAiaW5pdF9ydW50aW1lQ29uZmlnIiwgImluaXRfcnVudGltZUV4dGVuc2lvbnMiLCAiX19DbGllbnQiLCAiY29uZmlndXJhdGlvbiIsICJfY29uZmlnXzAiLCAiZ2V0UnVudGltZUNvbmZpZyIsICJfY29uZmlnXzEiLCAicmVzb2x2ZUNsaWVudEVuZHBvaW50UGFyYW1ldGVycyIsICJfY29uZmlnXzIiLCAiX2NvbmZpZ18zIiwgIl9jb25maWdfNCIsICJfY29uZmlnXzUiLCAiX2NvbmZpZ182IiwgIl9jb25maWdfNyIsICJyZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWciLCAiX2NvbmZpZ184IiwgInJlc29sdmVSdW50aW1lRXh0ZW5zaW9ucyIsICJkZWZhdWx0U1NPT0lEQ0h0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyIiwgImNvbmZpZyIsICJpbXBvcnRfc21pdGh5X2NsaWVudCIsICJTU09PSURDU2VydmljZUV4Y2VwdGlvbiIsICJpbml0X1NTT09JRENTZXJ2aWNlRXhjZXB0aW9uIiwgIl9fZXNtTWluIiwgIl9TU09PSURDU2VydmljZUV4Y2VwdGlvbiIsICJfX1NlcnZpY2VFeGNlcHRpb24iLCAib3B0aW9ucyIsICJBY2Nlc3NEZW5pZWRFeGNlcHRpb24iLCAiQXV0aG9yaXphdGlvblBlbmRpbmdFeGNlcHRpb24iLCAiRXhwaXJlZFRva2VuRXhjZXB0aW9uIiwgIkludGVybmFsU2VydmVyRXhjZXB0aW9uIiwgIkludmFsaWRDbGllbnRFeGNlcHRpb24iLCAiSW52YWxpZEdyYW50RXhjZXB0aW9uIiwgIkludmFsaWRSZXF1ZXN0RXhjZXB0aW9uIiwgIkludmFsaWRTY29wZUV4Y2VwdGlvbiIsICJTbG93RG93bkV4Y2VwdGlvbiIsICJVbmF1dGhvcml6ZWRDbGllbnRFeGNlcHRpb24iLCAiVW5zdXBwb3J0ZWRHcmFudFR5cGVFeGNlcHRpb24iLCAiaW5pdF9lcnJvcnMiLCAiX19lc21NaW4iLCAiaW5pdF9TU09PSURDU2VydmljZUV4Y2VwdGlvbiIsICJfQWNjZXNzRGVuaWVkRXhjZXB0aW9uIiwgIlNTT09JRENTZXJ2aWNlRXhjZXB0aW9uIiwgIm9wdHMiLCAiX0F1dGhvcml6YXRpb25QZW5kaW5nRXhjZXB0aW9uIiwgIl9FeHBpcmVkVG9rZW5FeGNlcHRpb24iLCAiX0ludGVybmFsU2VydmVyRXhjZXB0aW9uIiwgIl9JbnZhbGlkQ2xpZW50RXhjZXB0aW9uIiwgIl9JbnZhbGlkR3JhbnRFeGNlcHRpb24iLCAiX0ludmFsaWRSZXF1ZXN0RXhjZXB0aW9uIiwgIl9JbnZhbGlkU2NvcGVFeGNlcHRpb24iLCAiX1Nsb3dEb3duRXhjZXB0aW9uIiwgIl9VbmF1dGhvcml6ZWRDbGllbnRFeGNlcHRpb24iLCAiX1Vuc3VwcG9ydGVkR3JhbnRUeXBlRXhjZXB0aW9uIiwgImltcG9ydF9zY2hlbWEiLCAiX0FERSIsICJfQVBFIiwgIl9BVCIsICJfQ1MiLCAiX0NUIiwgIl9DVFIiLCAiX0NUUnIiLCAiX0NWIiwgIl9FVEUiLCAiX0lDRSIsICJfSUdFIiwgIl9JUkUiLCAiX0lTRSIsICJfSVNFbiIsICJfSVQiLCAiX1JUIiwgIl9TREUiLCAiX1VDRSIsICJfVUdURSIsICJfYVQiLCAiX2MiLCAiX2NJIiwgIl9jUyIsICJfY1YiLCAiX2NvIiwgIl9kQyIsICJfZSIsICJfZUkiLCAiX2VkIiwgIl9nVCIsICJfaCIsICJfaEUiLCAiX2lUIiwgIl9yIiwgIl9yVCIsICJfclUiLCAiX3MiLCAiX3NlIiwgIl9zbSIsICJfdFQiLCAibjAiLCAiQWNjZXNzVG9rZW4iLCAiQ2xpZW50U2VjcmV0IiwgIkNvZGVWZXJpZmllciIsICJJZFRva2VuIiwgIlJlZnJlc2hUb2tlbiIsICJBY2Nlc3NEZW5pZWRFeGNlcHRpb24iLCAiQXV0aG9yaXphdGlvblBlbmRpbmdFeGNlcHRpb24iLCAiQ3JlYXRlVG9rZW5SZXF1ZXN0IiwgIkNyZWF0ZVRva2VuUmVzcG9uc2UiLCAiRXhwaXJlZFRva2VuRXhjZXB0aW9uIiwgIkludGVybmFsU2VydmVyRXhjZXB0aW9uIiwgIkludmFsaWRDbGllbnRFeGNlcHRpb24iLCAiSW52YWxpZEdyYW50RXhjZXB0aW9uIiwgIkludmFsaWRSZXF1ZXN0RXhjZXB0aW9uIiwgIkludmFsaWRTY29wZUV4Y2VwdGlvbiIsICJTbG93RG93bkV4Y2VwdGlvbiIsICJVbmF1dGhvcml6ZWRDbGllbnRFeGNlcHRpb24iLCAiVW5zdXBwb3J0ZWRHcmFudFR5cGVFeGNlcHRpb24iLCAiU1NPT0lEQ1NlcnZpY2VFeGNlcHRpb24iLCAiQ3JlYXRlVG9rZW4iLCAiaW5pdF9zY2hlbWFzXzAiLCAiX19lc21NaW4iLCAiaW5pdF9lcnJvcnMiLCAiaW5pdF9TU09PSURDU2VydmljZUV4Y2VwdGlvbiIsICJpbXBvcnRfbWlkZGxld2FyZV9lbmRwb2ludCIsICJpbXBvcnRfc21pdGh5X2NsaWVudCIsICJDcmVhdGVUb2tlbkNvbW1hbmQiLCAiaW5pdF9DcmVhdGVUb2tlbkNvbW1hbmQiLCAiX19lc21NaW4iLCAiaW5pdF9FbmRwb2ludFBhcmFtZXRlcnMiLCAiaW5pdF9zY2hlbWFzXzAiLCAiJENvbW1hbmQiLCAiY29tbW9uUGFyYW1zIiwgIkNvbW1hbmQiLCAiY3MiLCAiY29uZmlnIiwgIm8iLCAiQ3JlYXRlVG9rZW4iLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAiY29tbWFuZHMiLCAiU1NPT0lEQyIsICJpbml0X1NTT09JREMiLCAiX19lc21NaW4iLCAiaW5pdF9DcmVhdGVUb2tlbkNvbW1hbmQiLCAiaW5pdF9TU09PSURDQ2xpZW50IiwgIkNyZWF0ZVRva2VuQ29tbWFuZCIsICJTU09PSURDQ2xpZW50IiwgImluaXRfY29tbWFuZHMiLCAiX19lc21NaW4iLCAiaW5pdF9DcmVhdGVUb2tlbkNvbW1hbmQiLCAiQWNjZXNzRGVuaWVkRXhjZXB0aW9uUmVhc29uIiwgIkludmFsaWRSZXF1ZXN0RXhjZXB0aW9uUmVhc29uIiwgImluaXRfZW51bXMiLCAiX19lc21NaW4iLCAic3NvX29pZGNfZXhwb3J0cyIsICJfX2V4cG9ydCIsICIkQ29tbWFuZCIsICJBY2Nlc3NEZW5pZWRFeGNlcHRpb24iLCAiQWNjZXNzRGVuaWVkRXhjZXB0aW9uUmVhc29uIiwgIkF1dGhvcml6YXRpb25QZW5kaW5nRXhjZXB0aW9uIiwgIkNyZWF0ZVRva2VuQ29tbWFuZCIsICJFeHBpcmVkVG9rZW5FeGNlcHRpb24iLCAiSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb24iLCAiSW52YWxpZENsaWVudEV4Y2VwdGlvbiIsICJJbnZhbGlkR3JhbnRFeGNlcHRpb24iLCAiSW52YWxpZFJlcXVlc3RFeGNlcHRpb24iLCAiSW52YWxpZFJlcXVlc3RFeGNlcHRpb25SZWFzb24iLCAiSW52YWxpZFNjb3BlRXhjZXB0aW9uIiwgIlNTT09JREMiLCAiU1NPT0lEQ0NsaWVudCIsICJTU09PSURDU2VydmljZUV4Y2VwdGlvbiIsICJTbG93RG93bkV4Y2VwdGlvbiIsICJVbmF1dGhvcml6ZWRDbGllbnRFeGNlcHRpb24iLCAiVW5zdXBwb3J0ZWRHcmFudFR5cGVFeGNlcHRpb24iLCAiX19DbGllbnQiLCAiaW5pdF9zc29fb2lkYyIsICJfX2VzbU1pbiIsICJpbml0X1NTT09JRENDbGllbnQiLCAiaW5pdF9TU09PSURDIiwgImluaXRfY29tbWFuZHMiLCAiaW5pdF9lbnVtcyIsICJpbml0X2Vycm9ycyIsICJpbml0X1NTT09JRENTZXJ2aWNlRXhjZXB0aW9uIiwgInJlcXVpcmVfZGlzdF9janMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgImNsaWVudCIsICJodHRwQXV0aFNjaGVtZXMiLCAicHJvcGVydHlQcm92aWRlciIsICJzaGFyZWRJbmlGaWxlTG9hZGVyIiwgImZzIiwgImZyb21FbnZTaWduaW5nTmFtZSIsICJsb2dnZXIiLCAic2lnbmluZ05hbWUiLCAiYmVhcmVyVG9rZW5LZXkiLCAidG9rZW4iLCAiRVhQSVJFX1dJTkRPV19NUyIsICJSRUZSRVNIX01FU1NBR0UiLCAiZ2V0U3NvT2lkY0NsaWVudCIsICJzc29SZWdpb24iLCAiaW5pdCIsICJjYWxsZXJDbGllbnRDb25maWciLCAiU1NPT0lEQ0NsaWVudCIsICJjb2FsZXNjZSIsICJwcm9wIiwgImdldE5ld1Nzb09pZGNUb2tlbiIsICJzc29Ub2tlbiIsICJDcmVhdGVUb2tlbkNvbW1hbmQiLCAidmFsaWRhdGVUb2tlbkV4cGlyeSIsICJ2YWxpZGF0ZVRva2VuS2V5IiwgImtleSIsICJ2YWx1ZSIsICJmb3JSZWZyZXNoIiwgIndyaXRlRmlsZSIsICJ3cml0ZVNTT1Rva2VuVG9GaWxlIiwgImlkIiwgInRva2VuRmlsZXBhdGgiLCAidG9rZW5TdHJpbmciLCAibGFzdFJlZnJlc2hBdHRlbXB0VGltZSIsICJmcm9tU3NvIiwgInByb2ZpbGVzIiwgInByb2ZpbGVOYW1lIiwgInByb2ZpbGUiLCAic3NvU2Vzc2lvbk5hbWUiLCAic3NvU2Vzc2lvbiIsICJzc29TZXNzaW9uUmVxdWlyZWRLZXkiLCAiYWNjZXNzVG9rZW4iLCAiZXhwaXJlc0F0IiwgImV4aXN0aW5nVG9rZW4iLCAibmV3U3NvT2lkY1Rva2VuIiwgIm5ld1Rva2VuRXhwaXJhdGlvbiIsICJmcm9tU3RhdGljIiwgIm5vZGVQcm92aWRlciIsICJyZXF1aXJlX2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgImNvcmVfMSIsICJ1dGlsX21pZGRsZXdhcmVfMSIsICJkZWZhdWx0U1NPSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIiLCAiY29uZmlnIiwgImNvbnRleHQiLCAiaW5wdXQiLCAiY3JlYXRlQXdzQXV0aFNpZ3Y0SHR0cEF1dGhPcHRpb24iLCAiYXV0aFBhcmFtZXRlcnMiLCAiY3JlYXRlU21pdGh5QXBpTm9BdXRoSHR0cEF1dGhPcHRpb24iLCAiZGVmYXVsdFNTT0h0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAib3B0aW9ucyIsICJyZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWciLCAiY29uZmlnXzAiLCAicmVxdWlyZV9wYWNrYWdlIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAicmVxdWlyZV9ydWxlc2V0IiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJ1IiwgInYiLCAidyIsICJ4IiwgImEiLCAiYiIsICJjIiwgImQiLCAiZSIsICJmIiwgImciLCAiaCIsICJpIiwgImoiLCAiayIsICJsIiwgIm0iLCAibiIsICJvIiwgInAiLCAicSIsICJyIiwgInMiLCAidCIsICJfZGF0YSIsICJyZXF1aXJlX2VuZHBvaW50UmVzb2x2ZXIiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgInV0aWxfZW5kcG9pbnRzXzEiLCAidXRpbF9lbmRwb2ludHNfMiIsICJydWxlc2V0XzEiLCAiY2FjaGUiLCAiZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIiLCAiZW5kcG9pbnRQYXJhbXMiLCAiY29udGV4dCIsICJyZXF1aXJlX3J1bnRpbWVDb25maWdfc2hhcmVkIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJjb3JlXzEiLCAicHJvdG9jb2xzXzEiLCAiY29yZV8yIiwgInNtaXRoeV9jbGllbnRfMSIsICJ1cmxfcGFyc2VyXzEiLCAidXRpbF9iYXNlNjRfMSIsICJ1dGlsX3V0ZjhfMSIsICJodHRwQXV0aFNjaGVtZVByb3ZpZGVyXzEiLCAiZW5kcG9pbnRSZXNvbHZlcl8xIiwgImdldFJ1bnRpbWVDb25maWciLCAiY29uZmlnIiwgImlwYyIsICJyZXF1aXJlX3J1bnRpbWVDb25maWciLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgInRzbGliXzEiLCAicGFja2FnZV9qc29uXzEiLCAiY29yZV8xIiwgInV0aWxfdXNlcl9hZ2VudF9ub2RlXzEiLCAiY29uZmlnX3Jlc29sdmVyXzEiLCAiaGFzaF9ub2RlXzEiLCAibWlkZGxld2FyZV9yZXRyeV8xIiwgIm5vZGVfY29uZmlnX3Byb3ZpZGVyXzEiLCAibm9kZV9odHRwX2hhbmRsZXJfMSIsICJzbWl0aHlfY2xpZW50XzEiLCAidXRpbF9ib2R5X2xlbmd0aF9ub2RlXzEiLCAidXRpbF9kZWZhdWx0c19tb2RlX25vZGVfMSIsICJ1dGlsX3JldHJ5XzEiLCAicnVudGltZUNvbmZpZ19zaGFyZWRfMSIsICJnZXRSdW50aW1lQ29uZmlnIiwgImNvbmZpZyIsICJkZWZhdWx0c01vZGUiLCAiZGVmYXVsdENvbmZpZ1Byb3ZpZGVyIiwgImNsaWVudFNoYXJlZFZhbHVlcyIsICJsb2FkZXJDb25maWciLCAicmVxdWlyZV9kaXN0X2NqcyIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAibWlkZGxld2FyZUhvc3RIZWFkZXIiLCAibWlkZGxld2FyZUxvZ2dlciIsICJtaWRkbGV3YXJlUmVjdXJzaW9uRGV0ZWN0aW9uIiwgIm1pZGRsZXdhcmVVc2VyQWdlbnQiLCAiY29uZmlnUmVzb2x2ZXIiLCAiY29yZSIsICJzY2hlbWEiLCAibWlkZGxld2FyZUNvbnRlbnRMZW5ndGgiLCAibWlkZGxld2FyZUVuZHBvaW50IiwgIm1pZGRsZXdhcmVSZXRyeSIsICJzbWl0aHlDbGllbnQiLCAiaHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJydW50aW1lQ29uZmlnIiwgInJlZ2lvbkNvbmZpZ1Jlc29sdmVyIiwgInByb3RvY29sSHR0cCIsICJyZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzIiwgIm9wdGlvbnMiLCAiY29tbW9uUGFyYW1zIiwgImdldEh0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiIsICJfaHR0cEF1dGhTY2hlbWVzIiwgIl9odHRwQXV0aFNjaGVtZVByb3ZpZGVyIiwgIl9jcmVkZW50aWFscyIsICJodHRwQXV0aFNjaGVtZSIsICJpbmRleCIsICJzY2hlbWUiLCAiY3JlZGVudGlhbHMiLCAicmVzb2x2ZUh0dHBBdXRoUnVudGltZUNvbmZpZyIsICJjb25maWciLCAicmVzb2x2ZVJ1bnRpbWVFeHRlbnNpb25zIiwgImV4dGVuc2lvbnMiLCAiZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiIsICJleHRlbnNpb24iLCAiU1NPQ2xpZW50IiwgImNvbmZpZ3VyYXRpb24iLCAiX2NvbmZpZ18wIiwgIl9jb25maWdfMSIsICJfY29uZmlnXzIiLCAiX2NvbmZpZ18zIiwgIl9jb25maWdfNCIsICJfY29uZmlnXzUiLCAiX2NvbmZpZ182IiwgIl9jb25maWdfNyIsICJfY29uZmlnXzgiLCAiU1NPU2VydmljZUV4Y2VwdGlvbiQxIiwgIlNTT1NlcnZpY2VFeGNlcHRpb24iLCAiSW52YWxpZFJlcXVlc3RFeGNlcHRpb24kMSIsICJJbnZhbGlkUmVxdWVzdEV4Y2VwdGlvbiIsICJvcHRzIiwgIlJlc291cmNlTm90Rm91bmRFeGNlcHRpb24kMSIsICJSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uIiwgIlRvb01hbnlSZXF1ZXN0c0V4Y2VwdGlvbiQxIiwgIlRvb01hbnlSZXF1ZXN0c0V4Y2VwdGlvbiIsICJVbmF1dGhvcml6ZWRFeGNlcHRpb24kMSIsICJVbmF1dGhvcml6ZWRFeGNlcHRpb24iLCAiX0FJIiwgIl9BTFQiLCAiX0FUVCIsICJfR1JDIiwgIl9HUkNSIiwgIl9HUkNSZSIsICJfSVJFIiwgIl9MIiwgIl9MQSIsICJfTEFSIiwgIl9MQVJSIiwgIl9MQVJSaSIsICJfTEFSaSIsICJfTEFSaXMiLCAiX0xSIiwgIl9SQyIsICJfUkkiLCAiX1JMVCIsICJfUk5GRSIsICJfU0FLVCIsICJfU1RUIiwgIl9UTVJFIiwgIl9VRSIsICJfYUkiLCAiX2FLSSIsICJfYUwiLCAiX2FOIiwgIl9hVCIsICJfYWkiLCAiX2MiLCAiX2UiLCAiX2VBIiwgIl9leCIsICJfaCIsICJfaEUiLCAiX2hIIiwgIl9oUSIsICJfbSIsICJfbVIiLCAiX21yIiwgIl9uVCIsICJfbnQiLCAiX3JDIiwgIl9yTCIsICJfck4iLCAiX3JuIiwgIl9zIiwgIl9zQUsiLCAiX3NUIiwgIl94YXNidCIsICJuMCIsICJBY2Nlc3NUb2tlblR5cGUiLCAiU2VjcmV0QWNjZXNzS2V5VHlwZSIsICJTZXNzaW9uVG9rZW5UeXBlIiwgIkFjY291bnRJbmZvIiwgIkdldFJvbGVDcmVkZW50aWFsc1JlcXVlc3QiLCAiR2V0Um9sZUNyZWRlbnRpYWxzUmVzcG9uc2UiLCAiUm9sZUNyZWRlbnRpYWxzIiwgIkxpc3RBY2NvdW50Um9sZXNSZXF1ZXN0IiwgIkxpc3RBY2NvdW50Um9sZXNSZXNwb25zZSIsICJSb2xlTGlzdFR5cGUiLCAiTGlzdEFjY291bnRzUmVxdWVzdCIsICJMaXN0QWNjb3VudHNSZXNwb25zZSIsICJBY2NvdW50TGlzdFR5cGUiLCAiTG9nb3V0UmVxdWVzdCIsICJSb2xlSW5mbyIsICJfX1VuaXQiLCAiR2V0Um9sZUNyZWRlbnRpYWxzIiwgIkxpc3RBY2NvdW50Um9sZXMiLCAiTGlzdEFjY291bnRzIiwgIkxvZ291dCIsICJHZXRSb2xlQ3JlZGVudGlhbHNDb21tYW5kIiwgIkNvbW1hbmQiLCAiY3MiLCAibyIsICJMaXN0QWNjb3VudFJvbGVzQ29tbWFuZCIsICJMaXN0QWNjb3VudHNDb21tYW5kIiwgIkxvZ291dENvbW1hbmQiLCAiY29tbWFuZHMiLCAiU1NPIiwgInBhZ2luYXRlTGlzdEFjY291bnRSb2xlcyIsICJwYWdpbmF0ZUxpc3RBY2NvdW50cyIsICJyZXF1aXJlX2xvYWRTc29fQ1Z5OGlxc1oiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgImNsaWVudFNzbyIsICJyZXF1aXJlX2Rpc3RfY2pzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJwcm9wZXJ0eVByb3ZpZGVyIiwgInNoYXJlZEluaUZpbGVMb2FkZXIiLCAiY2xpZW50IiwgInRva2VuUHJvdmlkZXJzIiwgImlzU3NvUHJvZmlsZSIsICJhcmciLCAiU0hPVUxEX0ZBSUxfQ1JFREVOVElBTF9DSEFJTiIsICJyZXNvbHZlU1NPQ3JlZGVudGlhbHMiLCAic3NvU3RhcnRVcmwiLCAic3NvU2Vzc2lvbiIsICJzc29BY2NvdW50SWQiLCAic3NvUmVnaW9uIiwgInNzb1JvbGVOYW1lIiwgInNzb0NsaWVudCIsICJjbGllbnRDb25maWciLCAicGFyZW50Q2xpZW50Q29uZmlnIiwgImNhbGxlckNsaWVudENvbmZpZyIsICJwcm9maWxlIiwgImZpbGVwYXRoIiwgImNvbmZpZ0ZpbGVwYXRoIiwgImlnbm9yZUNhY2hlIiwgImxvZ2dlciIsICJ0b2tlbiIsICJyZWZyZXNoTWVzc2FnZSIsICJfdG9rZW4iLCAiZSIsICJhY2Nlc3NUb2tlbiIsICJTU09DbGllbnQiLCAiR2V0Um9sZUNyZWRlbnRpYWxzQ29tbWFuZCIsICJzc28iLCAic3NvUmVzcCIsICJhY2Nlc3NLZXlJZCIsICJzZWNyZXRBY2Nlc3NLZXkiLCAic2Vzc2lvblRva2VuIiwgImV4cGlyYXRpb24iLCAiY3JlZGVudGlhbFNjb3BlIiwgImFjY291bnRJZCIsICJjcmVkZW50aWFscyIsICJ2YWxpZGF0ZVNzb1Byb2ZpbGUiLCAic3NvX3N0YXJ0X3VybCIsICJzc29fYWNjb3VudF9pZCIsICJzc29fcmVnaW9uIiwgInNzb19yb2xlX25hbWUiLCAiZnJvbVNTTyIsICJpbml0IiwgInByb2ZpbGVOYW1lIiwgInNlc3Npb24iLCAiY29uZmxpY3RNc2ciLCAic3NvX3Nlc3Npb24iLCAiY3JlYXRlQXdzQXV0aFNpZ3Y0SHR0cEF1dGhPcHRpb24iLCAiYXV0aFBhcmFtZXRlcnMiLCAiY29uZmlnIiwgImNvbnRleHQiLCAiY3JlYXRlU21pdGh5QXBpTm9BdXRoSHR0cEF1dGhPcHRpb24iLCAiaW1wb3J0X3V0aWxfbWlkZGxld2FyZSIsICJkZWZhdWx0U2lnbmluSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIiLCAiZGVmYXVsdFNpZ25pbkh0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAicmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnIiwgImluaXRfaHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJfX2VzbU1pbiIsICJpbml0X2Rpc3RfZXMiLCAiaW5wdXQiLCAib3B0aW9ucyIsICJjb25maWdfMCIsICJyZXNvbHZlQXdzU2RrU2lnVjRDb25maWciLCAicmVzb2x2ZUNsaWVudEVuZHBvaW50UGFyYW1ldGVycyIsICJjb21tb25QYXJhbXMiLCAiaW5pdF9FbmRwb2ludFBhcmFtZXRlcnMiLCAiX19lc21NaW4iLCAib3B0aW9ucyIsICJwYWNrYWdlX2RlZmF1bHQiLCAiaW5pdF9wYWNrYWdlIiwgIl9fZXNtTWluIiwgInUiLCAidiIsICJ3IiwgIngiLCAiYiIsICJjIiwgImQiLCAiZSIsICJmIiwgImciLCAiaCIsICJpIiwgImoiLCAiayIsICJsIiwgIm0iLCAibiIsICJvIiwgInAiLCAicSIsICJyIiwgInMiLCAidCIsICJfZGF0YSIsICJydWxlU2V0IiwgImluaXRfcnVsZXNldCIsICJfX2VzbU1pbiIsICJpbXBvcnRfdXRpbF9lbmRwb2ludHMiLCAiY2FjaGUiLCAiZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIiLCAiaW5pdF9lbmRwb2ludFJlc29sdmVyIiwgIl9fZXNtTWluIiwgImluaXRfcnVsZXNldCIsICJlbmRwb2ludFBhcmFtcyIsICJjb250ZXh0IiwgInJ1bGVTZXQiLCAiaW1wb3J0X2NvcmUiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAiaW1wb3J0X3VybF9wYXJzZXIiLCAiaW1wb3J0X3V0aWxfYmFzZTY0IiwgImltcG9ydF91dGlsX3V0ZjgiLCAiZ2V0UnVudGltZUNvbmZpZyIsICJpbml0X3J1bnRpbWVDb25maWdfc2hhcmVkIiwgIl9fZXNtTWluIiwgImluaXRfZGlzdF9lcyIsICJpbml0X3Byb3RvY29scyIsICJpbml0X2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAiaW5pdF9lbmRwb2ludFJlc29sdmVyIiwgImNvbmZpZyIsICJkZWZhdWx0RW5kcG9pbnRSZXNvbHZlciIsICJkZWZhdWx0U2lnbmluSHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJpcGMiLCAiQXdzU2RrU2lnVjRTaWduZXIiLCAiQXdzUmVzdEpzb25Qcm90b2NvbCIsICJpbXBvcnRfdXRpbF91c2VyX2FnZW50X25vZGUiLCAiaW1wb3J0X2NvbmZpZ19yZXNvbHZlciIsICJpbXBvcnRfaGFzaF9ub2RlIiwgImltcG9ydF9taWRkbGV3YXJlX3JldHJ5IiwgImltcG9ydF9ub2RlX2NvbmZpZ19wcm92aWRlciIsICJpbXBvcnRfbm9kZV9odHRwX2hhbmRsZXIiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAiaW1wb3J0X3V0aWxfYm9keV9sZW5ndGhfbm9kZSIsICJpbXBvcnRfdXRpbF9kZWZhdWx0c19tb2RlX25vZGUiLCAiaW1wb3J0X3V0aWxfcmV0cnkiLCAiZ2V0UnVudGltZUNvbmZpZyIsICJpbml0X3J1bnRpbWVDb25maWciLCAiX19lc21NaW4iLCAiaW5pdF9wYWNrYWdlIiwgImluaXRfZGlzdF9lcyIsICJpbml0X3J1bnRpbWVDb25maWdfc2hhcmVkIiwgImNvbmZpZyIsICJkZWZhdWx0c01vZGUiLCAiZGVmYXVsdENvbmZpZ1Byb3ZpZGVyIiwgImNsaWVudFNoYXJlZFZhbHVlcyIsICJlbWl0V2FybmluZ0lmVW5zdXBwb3J0ZWRWZXJzaW9uIiwgImxvYWRlckNvbmZpZyIsICJsb2FkTm9kZUNvbmZpZyIsICJOT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfT1BUSU9OUyIsICJwYWNrYWdlX2RlZmF1bHQiLCAiUmVxdWVzdEhhbmRsZXIiLCAiZ2V0SHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uIiwgInJlc29sdmVIdHRwQXV0aFJ1bnRpbWVDb25maWciLCAiaW5pdF9odHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24iLCAiX19lc21NaW4iLCAicnVudGltZUNvbmZpZyIsICJfaHR0cEF1dGhTY2hlbWVzIiwgIl9odHRwQXV0aFNjaGVtZVByb3ZpZGVyIiwgIl9jcmVkZW50aWFscyIsICJodHRwQXV0aFNjaGVtZSIsICJpbmRleCIsICJzY2hlbWUiLCAiaHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJjcmVkZW50aWFscyIsICJjb25maWciLCAiaW1wb3J0X3JlZ2lvbl9jb25maWdfcmVzb2x2ZXIiLCAiaW1wb3J0X3Byb3RvY29sX2h0dHAiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAicmVzb2x2ZVJ1bnRpbWVFeHRlbnNpb25zIiwgImluaXRfcnVudGltZUV4dGVuc2lvbnMiLCAiX19lc21NaW4iLCAiaW5pdF9odHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24iLCAicnVudGltZUNvbmZpZyIsICJleHRlbnNpb25zIiwgImV4dGVuc2lvbkNvbmZpZ3VyYXRpb24iLCAiZ2V0SHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uIiwgImV4dGVuc2lvbiIsICJyZXNvbHZlSHR0cEF1dGhSdW50aW1lQ29uZmlnIiwgImltcG9ydF9taWRkbGV3YXJlX2hvc3RfaGVhZGVyIiwgImltcG9ydF9taWRkbGV3YXJlX2xvZ2dlciIsICJpbXBvcnRfbWlkZGxld2FyZV9yZWN1cnNpb25fZGV0ZWN0aW9uIiwgImltcG9ydF9taWRkbGV3YXJlX3VzZXJfYWdlbnQiLCAiaW1wb3J0X2NvbmZpZ19yZXNvbHZlciIsICJpbXBvcnRfY29yZSIsICJpbXBvcnRfc2NoZW1hIiwgImltcG9ydF9taWRkbGV3YXJlX2NvbnRlbnRfbGVuZ3RoIiwgImltcG9ydF9taWRkbGV3YXJlX2VuZHBvaW50IiwgImltcG9ydF9taWRkbGV3YXJlX3JldHJ5IiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgIlNpZ25pbkNsaWVudCIsICJpbml0X1NpZ25pbkNsaWVudCIsICJfX2VzbU1pbiIsICJpbml0X2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAiaW5pdF9FbmRwb2ludFBhcmFtZXRlcnMiLCAiaW5pdF9ydW50aW1lQ29uZmlnIiwgImluaXRfcnVudGltZUV4dGVuc2lvbnMiLCAiX19DbGllbnQiLCAiY29uZmlndXJhdGlvbiIsICJfY29uZmlnXzAiLCAiZ2V0UnVudGltZUNvbmZpZyIsICJfY29uZmlnXzEiLCAicmVzb2x2ZUNsaWVudEVuZHBvaW50UGFyYW1ldGVycyIsICJfY29uZmlnXzIiLCAiX2NvbmZpZ18zIiwgIl9jb25maWdfNCIsICJfY29uZmlnXzUiLCAiX2NvbmZpZ182IiwgIl9jb25maWdfNyIsICJyZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWciLCAiX2NvbmZpZ184IiwgInJlc29sdmVSdW50aW1lRXh0ZW5zaW9ucyIsICJkZWZhdWx0U2lnbmluSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIiLCAiY29uZmlnIiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgIlNpZ25pblNlcnZpY2VFeGNlcHRpb24iLCAiaW5pdF9TaWduaW5TZXJ2aWNlRXhjZXB0aW9uIiwgIl9fZXNtTWluIiwgIl9TaWduaW5TZXJ2aWNlRXhjZXB0aW9uIiwgIl9fU2VydmljZUV4Y2VwdGlvbiIsICJvcHRpb25zIiwgIkFjY2Vzc0RlbmllZEV4Y2VwdGlvbiIsICJJbnRlcm5hbFNlcnZlckV4Y2VwdGlvbiIsICJUb29NYW55UmVxdWVzdHNFcnJvciIsICJWYWxpZGF0aW9uRXhjZXB0aW9uIiwgImluaXRfZXJyb3JzIiwgIl9fZXNtTWluIiwgImluaXRfU2lnbmluU2VydmljZUV4Y2VwdGlvbiIsICJfQWNjZXNzRGVuaWVkRXhjZXB0aW9uIiwgIlNpZ25pblNlcnZpY2VFeGNlcHRpb24iLCAib3B0cyIsICJfSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb24iLCAiX1Rvb01hbnlSZXF1ZXN0c0Vycm9yIiwgIl9WYWxpZGF0aW9uRXhjZXB0aW9uIiwgImltcG9ydF9zY2hlbWEiLCAiX0FERSIsICJfQVQiLCAiX0NPQVQiLCAiX0NPQVRSIiwgIl9DT0FUUkIiLCAiX0NPQVRSQnIiLCAiX0NPQVRSciIsICJfSVNFIiwgIl9SVCIsICJfVE1SRSIsICJfVkUiLCAiX2FLSSIsICJfYVQiLCAiX2MiLCAiX2NJIiwgIl9jViIsICJfY28iLCAiX2UiLCAiX2VJIiwgIl9nVCIsICJfaCIsICJfaEUiLCAiX2lUIiwgIl9qTiIsICJfbSIsICJfclQiLCAiX3JVIiwgIl9zIiwgIl9zQUsiLCAiX3NUIiwgIl9zbSIsICJfdEkiLCAiX3RPIiwgIl90VCIsICJuMCIsICJSZWZyZXNoVG9rZW4iLCAiQWNjZXNzRGVuaWVkRXhjZXB0aW9uIiwgIkFjY2Vzc1Rva2VuIiwgIkNyZWF0ZU9BdXRoMlRva2VuUmVxdWVzdCIsICJDcmVhdGVPQXV0aDJUb2tlblJlcXVlc3RCb2R5IiwgIkNyZWF0ZU9BdXRoMlRva2VuUmVzcG9uc2UiLCAiQ3JlYXRlT0F1dGgyVG9rZW5SZXNwb25zZUJvZHkiLCAiSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb24iLCAiVG9vTWFueVJlcXVlc3RzRXJyb3IiLCAiVmFsaWRhdGlvbkV4Y2VwdGlvbiIsICJTaWduaW5TZXJ2aWNlRXhjZXB0aW9uIiwgIkNyZWF0ZU9BdXRoMlRva2VuIiwgImluaXRfc2NoZW1hc18wIiwgIl9fZXNtTWluIiwgImluaXRfZXJyb3JzIiwgImluaXRfU2lnbmluU2VydmljZUV4Y2VwdGlvbiIsICJpbXBvcnRfbWlkZGxld2FyZV9lbmRwb2ludCIsICJpbXBvcnRfc21pdGh5X2NsaWVudCIsICJDcmVhdGVPQXV0aDJUb2tlbkNvbW1hbmQiLCAiaW5pdF9DcmVhdGVPQXV0aDJUb2tlbkNvbW1hbmQiLCAiX19lc21NaW4iLCAiaW5pdF9FbmRwb2ludFBhcmFtZXRlcnMiLCAiaW5pdF9zY2hlbWFzXzAiLCAiJENvbW1hbmQiLCAiY29tbW9uUGFyYW1zIiwgIkNvbW1hbmQiLCAiY3MiLCAiY29uZmlnIiwgIm8iLCAiQ3JlYXRlT0F1dGgyVG9rZW4iLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAiY29tbWFuZHMiLCAiU2lnbmluIiwgImluaXRfU2lnbmluIiwgIl9fZXNtTWluIiwgImluaXRfQ3JlYXRlT0F1dGgyVG9rZW5Db21tYW5kIiwgImluaXRfU2lnbmluQ2xpZW50IiwgIkNyZWF0ZU9BdXRoMlRva2VuQ29tbWFuZCIsICJTaWduaW5DbGllbnQiLCAiaW5pdF9jb21tYW5kcyIsICJfX2VzbU1pbiIsICJpbml0X0NyZWF0ZU9BdXRoMlRva2VuQ29tbWFuZCIsICJPQXV0aDJFcnJvckNvZGUiLCAiaW5pdF9lbnVtcyIsICJfX2VzbU1pbiIsICJzaWduaW5fZXhwb3J0cyIsICJfX2V4cG9ydCIsICIkQ29tbWFuZCIsICJBY2Nlc3NEZW5pZWRFeGNlcHRpb24iLCAiQ3JlYXRlT0F1dGgyVG9rZW5Db21tYW5kIiwgIkludGVybmFsU2VydmVyRXhjZXB0aW9uIiwgIk9BdXRoMkVycm9yQ29kZSIsICJTaWduaW4iLCAiU2lnbmluQ2xpZW50IiwgIlNpZ25pblNlcnZpY2VFeGNlcHRpb24iLCAiVG9vTWFueVJlcXVlc3RzRXJyb3IiLCAiVmFsaWRhdGlvbkV4Y2VwdGlvbiIsICJfX0NsaWVudCIsICJpbml0X3NpZ25pbiIsICJfX2VzbU1pbiIsICJpbml0X1NpZ25pbkNsaWVudCIsICJpbml0X1NpZ25pbiIsICJpbml0X2NvbW1hbmRzIiwgImluaXRfZW51bXMiLCAiaW5pdF9lcnJvcnMiLCAiaW5pdF9TaWduaW5TZXJ2aWNlRXhjZXB0aW9uIiwgInJlcXVpcmVfZGlzdF9janMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgImNsaWVudCIsICJwcm9wZXJ0eVByb3ZpZGVyIiwgInNoYXJlZEluaUZpbGVMb2FkZXIiLCAicHJvdG9jb2xIdHRwIiwgIm5vZGVfY3J5cHRvIiwgIm5vZGVfZnMiLCAibm9kZV9vcyIsICJub2RlX3BhdGgiLCAiTG9naW5DcmVkZW50aWFsc0ZldGNoZXIiLCAiX0xvZ2luQ3JlZGVudGlhbHNGZXRjaGVyIiwgInByb2ZpbGVEYXRhIiwgImluaXQiLCAiY2FsbGVyQ2xpZW50Q29uZmlnIiwgInRva2VuIiwgImFjY2Vzc1Rva2VuIiwgIm5vdyIsICJTaWduaW5DbGllbnQiLCAiQ3JlYXRlT0F1dGgyVG9rZW5Db21tYW5kIiwgImxvZ2dlciIsICJ1c2VyQWdlbnRBcHBJZCIsICJyZXF1ZXN0SGFuZGxlciIsICJyZWdpb24iLCAiY29tbWFuZElucHV0IiwgInJlc3BvbnNlIiwgImFjY2Vzc0tleUlkIiwgInNlY3JldEFjY2Vzc0tleSIsICJzZXNzaW9uVG9rZW4iLCAicmVmcmVzaFRva2VuIiwgImV4cGlyZXNJbiIsICJleHBpcmVzSW5NcyIsICJleHBpcmF0aW9uIiwgInVwZGF0ZWRUb2tlbiIsICJuZXdBY2Nlc3NUb2tlbiIsICJlcnJvciIsICJlcnJvclR5cGUiLCAibWVzc2FnZSIsICJ0b2tlbkZpbGVQYXRoIiwgInRva2VuRGF0YSIsICJtaXNzaW5nRmllbGRzIiwgImsiLCAiZGlyZWN0b3J5IiwgImxvZ2luU2Vzc2lvbkJ5dGVzIiwgImxvZ2luU2Vzc2lvblNoYTI1NiIsICJkZXJTaWduYXR1cmUiLCAib2Zmc2V0IiwgInJMZW5ndGgiLCAiciIsICJzTGVuZ3RoIiwgInMiLCAiclBhZGRlZCIsICJzUGFkZGVkIiwgIm1pZGRsZXdhcmVTdGFjayIsICJuZXh0IiwgImFyZ3MiLCAicmVxdWVzdCIsICJhY3R1YWxFbmRwb2ludCIsICJkcG9wIiwgIm1ldGhvZCIsICJlbmRwb2ludCIsICJwcml2YXRlS2V5IiwgInB1YmxpY0RlciIsICJwb2ludFN0YXJ0IiwgImkiLCAieCIsICJ5IiwgImhlYWRlciIsICJwYXlsb2FkIiwgImhlYWRlckI2NCIsICJwYXlsb2FkQjY0IiwgImFzbjFTaWduYXR1cmUiLCAic2lnbmF0dXJlQjY0IiwgImZyb21Mb2dpbkNyZWRlbnRpYWxzIiwgInByb2ZpbGVzIiwgInByb2ZpbGVOYW1lIiwgInByb2ZpbGUiLCAiY3JlZGVudGlhbHMiLCAiY3JlYXRlQXdzQXV0aFNpZ3Y0SHR0cEF1dGhPcHRpb24iLCAiYXV0aFBhcmFtZXRlcnMiLCAiY29uZmlnIiwgImNvbnRleHQiLCAiY3JlYXRlU21pdGh5QXBpTm9BdXRoSHR0cEF1dGhPcHRpb24iLCAiaW1wb3J0X3V0aWxfbWlkZGxld2FyZSIsICJkZWZhdWx0U1RTSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIiLCAiZGVmYXVsdFNUU0h0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAicmVzb2x2ZVN0c0F1dGhDb25maWciLCAicmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnIiwgImluaXRfaHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJfX2VzbU1pbiIsICJpbml0X2Rpc3RfZXMiLCAiaW5pdF9TVFNDbGllbnQiLCAiaW5wdXQiLCAib3B0aW9ucyIsICJTVFNDbGllbnQiLCAiY29uZmlnXzAiLCAiY29uZmlnXzEiLCAicmVzb2x2ZUF3c1Nka1NpZ1Y0Q29uZmlnIiwgInJlc29sdmVDbGllbnRFbmRwb2ludFBhcmFtZXRlcnMiLCAiY29tbW9uUGFyYW1zIiwgImluaXRfRW5kcG9pbnRQYXJhbWV0ZXJzIiwgIl9fZXNtTWluIiwgIm9wdGlvbnMiLCAiRiIsICJHIiwgIkgiLCAiSSIsICJKIiwgImMiLCAiZCIsICJlIiwgImYiLCAiZyIsICJoIiwgImkiLCAiaiIsICJrIiwgImwiLCAibSIsICJuIiwgIm8iLCAicCIsICJxIiwgInIiLCAicyIsICJ0IiwgInUiLCAidiIsICJ3IiwgIngiLCAieSIsICJ6IiwgIkEiLCAiQiIsICJDIiwgIkQiLCAiRSIsICJfZGF0YSIsICJydWxlU2V0IiwgImluaXRfcnVsZXNldCIsICJfX2VzbU1pbiIsICJpbXBvcnRfdXRpbF9lbmRwb2ludHMiLCAiY2FjaGUiLCAiZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIiLCAiaW5pdF9lbmRwb2ludFJlc29sdmVyIiwgIl9fZXNtTWluIiwgImluaXRfcnVsZXNldCIsICJlbmRwb2ludFBhcmFtcyIsICJjb250ZXh0IiwgInJ1bGVTZXQiLCAiaW1wb3J0X2NvcmUiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAiaW1wb3J0X3VybF9wYXJzZXIiLCAiaW1wb3J0X3V0aWxfYmFzZTY0IiwgImltcG9ydF91dGlsX3V0ZjgiLCAiZ2V0UnVudGltZUNvbmZpZyIsICJpbml0X3J1bnRpbWVDb25maWdfc2hhcmVkIiwgIl9fZXNtTWluIiwgImluaXRfZGlzdF9lcyIsICJpbml0X3Byb3RvY29scyIsICJpbml0X2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAiaW5pdF9lbmRwb2ludFJlc29sdmVyIiwgImNvbmZpZyIsICJkZWZhdWx0RW5kcG9pbnRSZXNvbHZlciIsICJkZWZhdWx0U1RTSHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJpcGMiLCAiQXdzU2RrU2lnVjRTaWduZXIiLCAiQXdzUXVlcnlQcm90b2NvbCIsICJpbXBvcnRfdXRpbF91c2VyX2FnZW50X25vZGUiLCAiaW1wb3J0X2NvbmZpZ19yZXNvbHZlciIsICJpbXBvcnRfY29yZSIsICJpbXBvcnRfaGFzaF9ub2RlIiwgImltcG9ydF9taWRkbGV3YXJlX3JldHJ5IiwgImltcG9ydF9ub2RlX2NvbmZpZ19wcm92aWRlciIsICJpbXBvcnRfbm9kZV9odHRwX2hhbmRsZXIiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAiaW1wb3J0X3V0aWxfYm9keV9sZW5ndGhfbm9kZSIsICJpbXBvcnRfdXRpbF9kZWZhdWx0c19tb2RlX25vZGUiLCAiaW1wb3J0X3V0aWxfcmV0cnkiLCAiZ2V0UnVudGltZUNvbmZpZyIsICJpbml0X3J1bnRpbWVDb25maWciLCAiX19lc21NaW4iLCAiaW5pdF9wYWNrYWdlIiwgImluaXRfZGlzdF9lcyIsICJpbml0X3J1bnRpbWVDb25maWdfc2hhcmVkIiwgImNvbmZpZyIsICJkZWZhdWx0c01vZGUiLCAiZGVmYXVsdENvbmZpZ1Byb3ZpZGVyIiwgImNsaWVudFNoYXJlZFZhbHVlcyIsICJlbWl0V2FybmluZ0lmVW5zdXBwb3J0ZWRWZXJzaW9uIiwgImxvYWRlckNvbmZpZyIsICJsb2FkTm9kZUNvbmZpZyIsICJOT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfT1BUSU9OUyIsICJwYWNrYWdlX2RlZmF1bHQiLCAiaXBjIiwgImlkUHJvcHMiLCAiQXdzU2RrU2lnVjRTaWduZXIiLCAiUmVxdWVzdEhhbmRsZXIiLCAiZ2V0SHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uIiwgInJlc29sdmVIdHRwQXV0aFJ1bnRpbWVDb25maWciLCAiaW5pdF9odHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24iLCAiX19lc21NaW4iLCAicnVudGltZUNvbmZpZyIsICJfaHR0cEF1dGhTY2hlbWVzIiwgIl9odHRwQXV0aFNjaGVtZVByb3ZpZGVyIiwgIl9jcmVkZW50aWFscyIsICJodHRwQXV0aFNjaGVtZSIsICJpbmRleCIsICJzY2hlbWUiLCAiaHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJjcmVkZW50aWFscyIsICJjb25maWciLCAiaW1wb3J0X3JlZ2lvbl9jb25maWdfcmVzb2x2ZXIiLCAiaW1wb3J0X3Byb3RvY29sX2h0dHAiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAicmVzb2x2ZVJ1bnRpbWVFeHRlbnNpb25zIiwgImluaXRfcnVudGltZUV4dGVuc2lvbnMiLCAiX19lc21NaW4iLCAiaW5pdF9odHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24iLCAicnVudGltZUNvbmZpZyIsICJleHRlbnNpb25zIiwgImV4dGVuc2lvbkNvbmZpZ3VyYXRpb24iLCAiZ2V0SHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uIiwgImV4dGVuc2lvbiIsICJyZXNvbHZlSHR0cEF1dGhSdW50aW1lQ29uZmlnIiwgImltcG9ydF9taWRkbGV3YXJlX2hvc3RfaGVhZGVyIiwgImltcG9ydF9taWRkbGV3YXJlX2xvZ2dlciIsICJpbXBvcnRfbWlkZGxld2FyZV9yZWN1cnNpb25fZGV0ZWN0aW9uIiwgImltcG9ydF9taWRkbGV3YXJlX3VzZXJfYWdlbnQiLCAiaW1wb3J0X2NvbmZpZ19yZXNvbHZlciIsICJpbXBvcnRfY29yZSIsICJpbXBvcnRfc2NoZW1hIiwgImltcG9ydF9taWRkbGV3YXJlX2NvbnRlbnRfbGVuZ3RoIiwgImltcG9ydF9taWRkbGV3YXJlX2VuZHBvaW50IiwgImltcG9ydF9taWRkbGV3YXJlX3JldHJ5IiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgIlNUU0NsaWVudCIsICJpbml0X1NUU0NsaWVudCIsICJfX2VzbU1pbiIsICJpbml0X2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAiaW5pdF9FbmRwb2ludFBhcmFtZXRlcnMiLCAiaW5pdF9ydW50aW1lQ29uZmlnIiwgImluaXRfcnVudGltZUV4dGVuc2lvbnMiLCAiX19DbGllbnQiLCAiY29uZmlndXJhdGlvbiIsICJfY29uZmlnXzAiLCAiZ2V0UnVudGltZUNvbmZpZyIsICJfY29uZmlnXzEiLCAicmVzb2x2ZUNsaWVudEVuZHBvaW50UGFyYW1ldGVycyIsICJfY29uZmlnXzIiLCAiX2NvbmZpZ18zIiwgIl9jb25maWdfNCIsICJfY29uZmlnXzUiLCAiX2NvbmZpZ182IiwgIl9jb25maWdfNyIsICJyZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWciLCAiX2NvbmZpZ184IiwgInJlc29sdmVSdW50aW1lRXh0ZW5zaW9ucyIsICJkZWZhdWx0U1RTSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIiLCAiY29uZmlnIiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgIlNUU1NlcnZpY2VFeGNlcHRpb24iLCAiaW5pdF9TVFNTZXJ2aWNlRXhjZXB0aW9uIiwgIl9fZXNtTWluIiwgIl9TVFNTZXJ2aWNlRXhjZXB0aW9uIiwgIl9fU2VydmljZUV4Y2VwdGlvbiIsICJvcHRpb25zIiwgIkV4cGlyZWRUb2tlbkV4Y2VwdGlvbiIsICJNYWxmb3JtZWRQb2xpY3lEb2N1bWVudEV4Y2VwdGlvbiIsICJQYWNrZWRQb2xpY3lUb29MYXJnZUV4Y2VwdGlvbiIsICJSZWdpb25EaXNhYmxlZEV4Y2VwdGlvbiIsICJJRFBSZWplY3RlZENsYWltRXhjZXB0aW9uIiwgIkludmFsaWRJZGVudGl0eVRva2VuRXhjZXB0aW9uIiwgIklEUENvbW11bmljYXRpb25FcnJvckV4Y2VwdGlvbiIsICJpbml0X2Vycm9ycyIsICJfX2VzbU1pbiIsICJpbml0X1NUU1NlcnZpY2VFeGNlcHRpb24iLCAiX0V4cGlyZWRUb2tlbkV4Y2VwdGlvbiIsICJTVFNTZXJ2aWNlRXhjZXB0aW9uIiwgIm9wdHMiLCAiX01hbGZvcm1lZFBvbGljeURvY3VtZW50RXhjZXB0aW9uIiwgIl9QYWNrZWRQb2xpY3lUb29MYXJnZUV4Y2VwdGlvbiIsICJfUmVnaW9uRGlzYWJsZWRFeGNlcHRpb24iLCAiX0lEUFJlamVjdGVkQ2xhaW1FeGNlcHRpb24iLCAiX0ludmFsaWRJZGVudGl0eVRva2VuRXhjZXB0aW9uIiwgIl9JRFBDb21tdW5pY2F0aW9uRXJyb3JFeGNlcHRpb24iLCAiaW1wb3J0X3NjaGVtYSIsICJfQSIsICJfQUtJIiwgIl9BUiIsICJfQVJJIiwgIl9BUlIiLCAiX0FSUnMiLCAiX0FSVSIsICJfQVJXV0kiLCAiX0FSV1dJUiIsICJfQVJXV0lScyIsICJfQXUiLCAiX0MiLCAiX0NBIiwgIl9EUyIsICJfRSIsICJfRUkiLCAiX0VURSIsICJfSURQQ0VFIiwgIl9JRFBSQ0UiLCAiX0lJVEUiLCAiX0siLCAiX01QREUiLCAiX1AiLCAiX1BBIiwgIl9QQXIiLCAiX1BDIiwgIl9QQ0xUIiwgIl9QQ3IiLCAiX1BEVCIsICJfUEkiLCAiX1BQUyIsICJfUFBUTEUiLCAiX1ByIiwgIl9SQSIsICJfUkRFIiwgIl9SU04iLCAiX1NBSyIsICJfU0ZXSVQiLCAiX1NJIiwgIl9TTiIsICJfU1QiLCAiX1QiLCAiX1RDIiwgIl9UVEsiLCAiX1RhIiwgIl9WIiwgIl9XSVQiLCAiX2EiLCAiX2FLU1QiLCAiX2FRRSIsICJfYyIsICJfY1RUIiwgIl9lIiwgIl9oRSIsICJfbSIsICJfcERMVCIsICJfcyIsICJfdExUIiwgIm4wIiwgImFjY2Vzc0tleVNlY3JldFR5cGUiLCAiY2xpZW50VG9rZW5UeXBlIiwgIkFzc3VtZWRSb2xlVXNlciIsICJBc3N1bWVSb2xlUmVxdWVzdCIsICJBc3N1bWVSb2xlUmVzcG9uc2UiLCAiQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eVJlcXVlc3QiLCAiQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eVJlc3BvbnNlIiwgIkNyZWRlbnRpYWxzIiwgIkV4cGlyZWRUb2tlbkV4Y2VwdGlvbiIsICJJRFBDb21tdW5pY2F0aW9uRXJyb3JFeGNlcHRpb24iLCAiSURQUmVqZWN0ZWRDbGFpbUV4Y2VwdGlvbiIsICJJbnZhbGlkSWRlbnRpdHlUb2tlbkV4Y2VwdGlvbiIsICJNYWxmb3JtZWRQb2xpY3lEb2N1bWVudEV4Y2VwdGlvbiIsICJQYWNrZWRQb2xpY3lUb29MYXJnZUV4Y2VwdGlvbiIsICJQb2xpY3lEZXNjcmlwdG9yVHlwZSIsICJQcm92aWRlZENvbnRleHQiLCAiUmVnaW9uRGlzYWJsZWRFeGNlcHRpb24iLCAiVGFnIiwgIlNUU1NlcnZpY2VFeGNlcHRpb24iLCAicG9saWN5RGVzY3JpcHRvckxpc3RUeXBlIiwgIlByb3ZpZGVkQ29udGV4dHNMaXN0VHlwZSIsICJ0YWdMaXN0VHlwZSIsICJBc3N1bWVSb2xlIiwgIkFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHkiLCAiaW5pdF9zY2hlbWFzXzAiLCAiX19lc21NaW4iLCAiaW5pdF9lcnJvcnMiLCAiaW5pdF9TVFNTZXJ2aWNlRXhjZXB0aW9uIiwgImltcG9ydF9taWRkbGV3YXJlX2VuZHBvaW50IiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgIkFzc3VtZVJvbGVDb21tYW5kIiwgImluaXRfQXNzdW1lUm9sZUNvbW1hbmQiLCAiX19lc21NaW4iLCAiaW5pdF9FbmRwb2ludFBhcmFtZXRlcnMiLCAiaW5pdF9zY2hlbWFzXzAiLCAiJENvbW1hbmQiLCAiY29tbW9uUGFyYW1zIiwgIkNvbW1hbmQiLCAiY3MiLCAiY29uZmlnIiwgIm8iLCAiQXNzdW1lUm9sZSIsICJpbXBvcnRfbWlkZGxld2FyZV9lbmRwb2ludCIsICJpbXBvcnRfc21pdGh5X2NsaWVudCIsICJBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5Q29tbWFuZCIsICJpbml0X0Fzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlDb21tYW5kIiwgIl9fZXNtTWluIiwgImluaXRfRW5kcG9pbnRQYXJhbWV0ZXJzIiwgImluaXRfc2NoZW1hc18wIiwgIiRDb21tYW5kIiwgImNvbW1vblBhcmFtcyIsICJDb21tYW5kIiwgImNzIiwgImNvbmZpZyIsICJvIiwgIkFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHkiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAiY29tbWFuZHMiLCAiU1RTIiwgImluaXRfU1RTIiwgIl9fZXNtTWluIiwgImluaXRfQXNzdW1lUm9sZUNvbW1hbmQiLCAiaW5pdF9Bc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5Q29tbWFuZCIsICJpbml0X1NUU0NsaWVudCIsICJBc3N1bWVSb2xlQ29tbWFuZCIsICJBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5Q29tbWFuZCIsICJTVFNDbGllbnQiLCAiaW5pdF9jb21tYW5kcyIsICJfX2VzbU1pbiIsICJpbml0X0Fzc3VtZVJvbGVDb21tYW5kIiwgImluaXRfQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eUNvbW1hbmQiLCAiaW1wb3J0X3JlZ2lvbl9jb25maWdfcmVzb2x2ZXIiLCAiZ2V0QWNjb3VudElkRnJvbUFzc3VtZWRSb2xlVXNlciIsICJyZXNvbHZlUmVnaW9uIiwgImdldERlZmF1bHRSb2xlQXNzdW1lciIsICJnZXREZWZhdWx0Um9sZUFzc3VtZXJXaXRoV2ViSWRlbnRpdHkiLCAiaXNIMiIsICJpbml0X2RlZmF1bHRTdHNSb2xlQXNzdW1lcnMiLCAiX19lc21NaW4iLCAiaW5pdF9jbGllbnQiLCAiaW5pdF9Bc3N1bWVSb2xlQ29tbWFuZCIsICJpbml0X0Fzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlDb21tYW5kIiwgImFzc3VtZWRSb2xlVXNlciIsICJhcm5Db21wb25lbnRzIiwgIl9yZWdpb24iLCAiX3BhcmVudFJlZ2lvbiIsICJjcmVkZW50aWFsUHJvdmlkZXJMb2dnZXIiLCAibG9hZGVyQ29uZmlnIiwgInJlZ2lvbiIsICJwYXJlbnRSZWdpb24iLCAic3RzRGVmYXVsdFJlZ2lvbiIsICJyZXNvbHZlZFJlZ2lvbiIsICJzdHNPcHRpb25zIiwgIlNUU0NsaWVudCIsICJzdHNDbGllbnQiLCAiY2xvc3VyZVNvdXJjZUNyZWRzIiwgInNvdXJjZUNyZWRzIiwgInBhcmFtcyIsICJsb2dnZXIiLCAicHJvZmlsZSIsICJyZXF1ZXN0SGFuZGxlciIsICJ1c2VyQWdlbnRBcHBJZCIsICJpc0NvbXBhdGlibGVSZXF1ZXN0SGFuZGxlciIsICJDcmVkZW50aWFscyIsICJBc3N1bWVkUm9sZVVzZXIiLCAiQXNzdW1lUm9sZUNvbW1hbmQiLCAiYWNjb3VudElkIiwgImNyZWRlbnRpYWxzIiwgInNldENyZWRlbnRpYWxGZWF0dXJlIiwgIkFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlDb21tYW5kIiwgImdldEN1c3RvbWl6YWJsZVN0c0NsaWVudEN0b3IiLCAiZ2V0RGVmYXVsdFJvbGVBc3N1bWVyIiwgImdldERlZmF1bHRSb2xlQXNzdW1lcldpdGhXZWJJZGVudGl0eSIsICJkZWNvcmF0ZURlZmF1bHRDcmVkZW50aWFsUHJvdmlkZXIiLCAiaW5pdF9kZWZhdWx0Um9sZUFzc3VtZXJzIiwgIl9fZXNtTWluIiwgImluaXRfZGVmYXVsdFN0c1JvbGVBc3N1bWVycyIsICJpbml0X1NUU0NsaWVudCIsICJiYXNlQ3RvciIsICJjdXN0b21pemF0aW9ucyIsICJjb25maWciLCAiY3VzdG9taXphdGlvbiIsICJzdHNPcHRpb25zIiwgInN0c1BsdWdpbnMiLCAiU1RTQ2xpZW50IiwgInByb3ZpZGVyIiwgImlucHV0IiwgInN0c19leHBvcnRzIiwgIl9fZXhwb3J0IiwgIkFzc3VtZVJvbGVDb21tYW5kIiwgIkFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlDb21tYW5kIiwgIkV4cGlyZWRUb2tlbkV4Y2VwdGlvbiIsICJJRFBDb21tdW5pY2F0aW9uRXJyb3JFeGNlcHRpb24iLCAiSURQUmVqZWN0ZWRDbGFpbUV4Y2VwdGlvbiIsICJJbnZhbGlkSWRlbnRpdHlUb2tlbkV4Y2VwdGlvbiIsICJNYWxmb3JtZWRQb2xpY3lEb2N1bWVudEV4Y2VwdGlvbiIsICJQYWNrZWRQb2xpY3lUb29MYXJnZUV4Y2VwdGlvbiIsICJSZWdpb25EaXNhYmxlZEV4Y2VwdGlvbiIsICJTVFMiLCAiU1RTQ2xpZW50IiwgIlNUU1NlcnZpY2VFeGNlcHRpb24iLCAiX19DbGllbnQiLCAiZGVjb3JhdGVEZWZhdWx0Q3JlZGVudGlhbFByb3ZpZGVyIiwgImdldERlZmF1bHRSb2xlQXNzdW1lciIsICJnZXREZWZhdWx0Um9sZUFzc3VtZXJXaXRoV2ViSWRlbnRpdHkiLCAiaW5pdF9zdHMiLCAiX19lc21NaW4iLCAiaW5pdF9TVFNDbGllbnQiLCAiaW5pdF9TVFMiLCAiaW5pdF9jb21tYW5kcyIsICJpbml0X2Vycm9ycyIsICJpbml0X2RlZmF1bHRSb2xlQXNzdW1lcnMiLCAiaW5pdF9TVFNTZXJ2aWNlRXhjZXB0aW9uIiwgInJlcXVpcmVfZGlzdF9janMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgInNoYXJlZEluaUZpbGVMb2FkZXIiLCAicHJvcGVydHlQcm92aWRlciIsICJjaGlsZF9wcm9jZXNzIiwgInV0aWwiLCAiY2xpZW50IiwgImdldFZhbGlkYXRlZFByb2Nlc3NDcmVkZW50aWFscyIsICJwcm9maWxlTmFtZSIsICJkYXRhIiwgInByb2ZpbGVzIiwgImN1cnJlbnRUaW1lIiwgImFjY291bnRJZCIsICJjcmVkZW50aWFscyIsICJyZXNvbHZlUHJvY2Vzc0NyZWRlbnRpYWxzIiwgImxvZ2dlciIsICJwcm9maWxlIiwgImNyZWRlbnRpYWxQcm9jZXNzIiwgImV4ZWNQcm9taXNlIiwgInN0ZG91dCIsICJlcnJvciIsICJmcm9tUHJvY2VzcyIsICJpbml0IiwgImNhbGxlckNsaWVudENvbmZpZyIsICJyZXF1aXJlX2Zyb21XZWJUb2tlbiIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAiX19jcmVhdGVCaW5kaW5nIiwgIm8iLCAibSIsICJrIiwgImsyIiwgImRlc2MiLCAiX19zZXRNb2R1bGVEZWZhdWx0IiwgInYiLCAiX19pbXBvcnRTdGFyIiwgIm93bktleXMiLCAiYXIiLCAibW9kIiwgInJlc3VsdCIsICJpIiwgImZyb21XZWJUb2tlbiIsICJpbml0IiwgImF3c0lkZW50aXR5UHJvcGVydGllcyIsICJyb2xlQXJuIiwgInJvbGVTZXNzaW9uTmFtZSIsICJ3ZWJJZGVudGl0eVRva2VuIiwgInByb3ZpZGVySWQiLCAicG9saWN5QXJucyIsICJwb2xpY3kiLCAiZHVyYXRpb25TZWNvbmRzIiwgInJvbGVBc3N1bWVyV2l0aFdlYklkZW50aXR5IiwgImdldERlZmF1bHRSb2xlQXNzdW1lcldpdGhXZWJJZGVudGl0eSIsICJyZXF1aXJlX2Zyb21Ub2tlbkZpbGUiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgImNsaWVudF8xIiwgInByb3BlcnR5X3Byb3ZpZGVyXzEiLCAic2hhcmVkX2luaV9maWxlX2xvYWRlcl8xIiwgImZzXzEiLCAiZnJvbVdlYlRva2VuXzEiLCAiRU5WX1RPS0VOX0ZJTEUiLCAiRU5WX1JPTEVfQVJOIiwgIkVOVl9ST0xFX1NFU1NJT05fTkFNRSIsICJmcm9tVG9rZW5GaWxlIiwgImluaXQiLCAiYXdzSWRlbnRpdHlQcm9wZXJ0aWVzIiwgIndlYklkZW50aXR5VG9rZW5GaWxlIiwgInJvbGVBcm4iLCAicm9sZVNlc3Npb25OYW1lIiwgImNyZWRlbnRpYWxzIiwgInJlcXVpcmVfZGlzdF9janMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgImZyb21Ub2tlbkZpbGUiLCAiZnJvbVdlYlRva2VuIiwgImsiLCAicmVxdWlyZV9kaXN0X2NqcyIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAic2hhcmVkSW5pRmlsZUxvYWRlciIsICJwcm9wZXJ0eVByb3ZpZGVyIiwgImNsaWVudCIsICJjcmVkZW50aWFsUHJvdmlkZXJMb2dpbiIsICJyZXNvbHZlQ3JlZGVudGlhbFNvdXJjZSIsICJjcmVkZW50aWFsU291cmNlIiwgInByb2ZpbGVOYW1lIiwgImxvZ2dlciIsICJzb3VyY2VQcm92aWRlcnNNYXAiLCAib3B0aW9ucyIsICJmcm9tSHR0cCIsICJmcm9tQ29udGFpbmVyTWV0YWRhdGEiLCAic2V0TmFtZWRQcm92aWRlciIsICJmcm9tSW5zdGFuY2VNZXRhZGF0YSIsICJmcm9tRW52IiwgImNyZWRzIiwgImlzQXNzdW1lUm9sZVByb2ZpbGUiLCAiYXJnIiwgInByb2ZpbGUiLCAiaXNBc3N1bWVSb2xlV2l0aFNvdXJjZVByb2ZpbGUiLCAiaXNDcmVkZW50aWFsU291cmNlUHJvZmlsZSIsICJ3aXRoU291cmNlUHJvZmlsZSIsICJ3aXRoUHJvdmlkZXJQcm9maWxlIiwgInJlc29sdmVBc3N1bWVSb2xlQ3JlZGVudGlhbHMiLCAicHJvZmlsZXMiLCAiY2FsbGVyQ2xpZW50Q29uZmlnIiwgInZpc2l0ZWRQcm9maWxlcyIsICJyZXNvbHZlUHJvZmlsZURhdGEiLCAicHJvZmlsZURhdGEiLCAic291cmNlX3Byb2ZpbGUiLCAicmVnaW9uIiwgImdldERlZmF1bHRSb2xlQXNzdW1lciIsICJzb3VyY2VDcmVkc1Byb3ZpZGVyIiwgImlzQ3JlZGVudGlhbFNvdXJjZVdpdGhvdXRSb2xlQXJuIiwgInBhcmFtcyIsICJtZmFfc2VyaWFsIiwgInNvdXJjZUNyZWRzIiwgInNlY3Rpb24iLCAiaXNMb2dpblByb2ZpbGUiLCAiZGF0YSIsICJyZXNvbHZlTG9naW5DcmVkZW50aWFscyIsICJjcmVkZW50aWFscyIsICJpc1Byb2Nlc3NQcm9maWxlIiwgInJlc29sdmVQcm9jZXNzQ3JlZGVudGlhbHMiLCAiZnJvbVByb2Nlc3MiLCAicmVzb2x2ZVNzb0NyZWRlbnRpYWxzIiwgImZyb21TU08iLCAiaXNTc29Qcm9maWxlIiwgImlzU3RhdGljQ3JlZHNQcm9maWxlIiwgInJlc29sdmVTdGF0aWNDcmVkZW50aWFscyIsICJpc1dlYklkZW50aXR5UHJvZmlsZSIsICJyZXNvbHZlV2ViSWRlbnRpdHlDcmVkZW50aWFscyIsICJmcm9tVG9rZW5GaWxlIiwgImlzQXNzdW1lUm9sZVJlY3Vyc2l2ZUNhbGwiLCAiZnJvbUluaSIsICJpbml0IiwgInJlcXVpcmVfZGlzdF9janMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgImNyZWRlbnRpYWxQcm92aWRlckVudiIsICJwcm9wZXJ0eVByb3ZpZGVyIiwgInNoYXJlZEluaUZpbGVMb2FkZXIiLCAiRU5WX0lNRFNfRElTQUJMRUQiLCAicmVtb3RlUHJvdmlkZXIiLCAiaW5pdCIsICJFTlZfQ01EU19GVUxMX1VSSSIsICJFTlZfQ01EU19SRUxBVElWRV9VUkkiLCAiZnJvbUNvbnRhaW5lck1ldGFkYXRhIiwgImZyb21JbnN0YW5jZU1ldGFkYXRhIiwgImZyb21IdHRwIiwgIm1lbW9pemVDaGFpbiIsICJwcm92aWRlcnMiLCAidHJlYXRBc0V4cGlyZWQiLCAiY2hhaW4iLCAiaW50ZXJuYWxDcmVhdGVDaGFpbiIsICJhY3RpdmVMb2NrIiwgInBhc3NpdmVMb2NrIiwgImNyZWRlbnRpYWxzIiwgInByb3ZpZGVyIiwgIm9wdGlvbnMiLCAiYXdzSWRlbnRpdHlQcm9wZXJ0aWVzIiwgImxhc3RQcm92aWRlckVycm9yIiwgImVyciIsICJtdWx0aXBsZUNyZWRlbnRpYWxTb3VyY2VXYXJuaW5nRW1pdHRlZCIsICJkZWZhdWx0UHJvdmlkZXIiLCAic3NvU3RhcnRVcmwiLCAic3NvQWNjb3VudElkIiwgInNzb1JlZ2lvbiIsICJzc29Sb2xlTmFtZSIsICJzc29TZXNzaW9uIiwgImZyb21TU08iLCAiZnJvbUluaSIsICJmcm9tUHJvY2VzcyIsICJmcm9tVG9rZW5GaWxlIiwgImNyZWRlbnRpYWxzVHJlYXRlZEFzRXhwaXJlZCIsICJjcmVkZW50aWFsc1dpbGxOZWVkUmVmcmVzaCIsICJyZXF1aXJlX3J1bGVzZXQiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgInciLCAieCIsICJ5IiwgInoiLCAiQSIsICJCIiwgImEiLCAiYiIsICJjIiwgImQiLCAiZSIsICJmIiwgImciLCAiaCIsICJpIiwgImoiLCAiayIsICJsIiwgIm0iLCAibiIsICJvIiwgInAiLCAicSIsICJyIiwgInMiLCAidCIsICJ1IiwgInYiLCAiX2RhdGEiLCAicmVxdWlyZV9lbmRwb2ludFJlc29sdmVyIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJ1dGlsX2VuZHBvaW50c18xIiwgInV0aWxfZW5kcG9pbnRzXzIiLCAicnVsZXNldF8xIiwgImNhY2hlIiwgImRlZmF1bHRFbmRwb2ludFJlc29sdmVyIiwgImVuZHBvaW50UGFyYW1zIiwgImNvbnRleHQiLCAicmVxdWlyZV9ydW50aW1lQ29uZmlnX3NoYXJlZCIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAiY29yZV8xIiwgInByb3RvY29sc18xIiwgInNtaXRoeV9jbGllbnRfMSIsICJ1cmxfcGFyc2VyXzEiLCAidXRpbF9iYXNlNjRfMSIsICJ1dGlsX3V0ZjhfMSIsICJodHRwQXV0aFNjaGVtZVByb3ZpZGVyXzEiLCAiZW5kcG9pbnRSZXNvbHZlcl8xIiwgImdldFJ1bnRpbWVDb25maWciLCAiY29uZmlnIiwgImlwYyIsICJyZXF1aXJlX3J1bnRpbWVDb25maWciLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgInRzbGliXzEiLCAicGFja2FnZV9qc29uXzEiLCAiY29yZV8xIiwgImNyZWRlbnRpYWxfcHJvdmlkZXJfbm9kZV8xIiwgInV0aWxfdXNlcl9hZ2VudF9ub2RlXzEiLCAiY29uZmlnX3Jlc29sdmVyXzEiLCAiaGFzaF9ub2RlXzEiLCAibWlkZGxld2FyZV9jb21wcmVzc2lvbl8xIiwgIm1pZGRsZXdhcmVfcmV0cnlfMSIsICJub2RlX2NvbmZpZ19wcm92aWRlcl8xIiwgIm5vZGVfaHR0cF9oYW5kbGVyXzEiLCAic21pdGh5X2NsaWVudF8xIiwgInV0aWxfYm9keV9sZW5ndGhfbm9kZV8xIiwgInV0aWxfZGVmYXVsdHNfbW9kZV9ub2RlXzEiLCAidXRpbF9yZXRyeV8xIiwgInJ1bnRpbWVDb25maWdfc2hhcmVkXzEiLCAiZ2V0UnVudGltZUNvbmZpZyIsICJjb25maWciLCAiZGVmYXVsdHNNb2RlIiwgImRlZmF1bHRDb25maWdQcm92aWRlciIsICJjbGllbnRTaGFyZWRWYWx1ZXMiLCAibG9hZGVyQ29uZmlnIiwgInJlcXVpcmVfZGlzdF9janMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgIm1pZGRsZXdhcmVIb3N0SGVhZGVyIiwgIm1pZGRsZXdhcmVMb2dnZXIiLCAibWlkZGxld2FyZVJlY3Vyc2lvbkRldGVjdGlvbiIsICJtaWRkbGV3YXJlVXNlckFnZW50IiwgImNvbmZpZ1Jlc29sdmVyIiwgImNvcmUiLCAic2NoZW1hIiwgIm1pZGRsZXdhcmVDb21wcmVzc2lvbiIsICJtaWRkbGV3YXJlQ29udGVudExlbmd0aCIsICJtaWRkbGV3YXJlRW5kcG9pbnQiLCAibWlkZGxld2FyZVJldHJ5IiwgInNtaXRoeUNsaWVudCIsICJodHRwQXV0aFNjaGVtZVByb3ZpZGVyIiwgInJ1bnRpbWVDb25maWciLCAicmVnaW9uQ29uZmlnUmVzb2x2ZXIiLCAicHJvdG9jb2xIdHRwIiwgInV0aWxXYWl0ZXIiLCAicmVzb2x2ZUNsaWVudEVuZHBvaW50UGFyYW1ldGVycyIsICJvcHRpb25zIiwgImNvbW1vblBhcmFtcyIsICJnZXRIdHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24iLCAiX2h0dHBBdXRoU2NoZW1lcyIsICJfaHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJfY3JlZGVudGlhbHMiLCAiaHR0cEF1dGhTY2hlbWUiLCAiaW5kZXgiLCAic2NoZW1lIiwgImNyZWRlbnRpYWxzIiwgInJlc29sdmVIdHRwQXV0aFJ1bnRpbWVDb25maWciLCAiY29uZmlnIiwgInJlc29sdmVSdW50aW1lRXh0ZW5zaW9ucyIsICJleHRlbnNpb25zIiwgImV4dGVuc2lvbkNvbmZpZ3VyYXRpb24iLCAiZXh0ZW5zaW9uIiwgIkNsb3VkV2F0Y2hDbGllbnQiLCAiY29uZmlndXJhdGlvbiIsICJfY29uZmlnXzAiLCAiX2NvbmZpZ18xIiwgIl9jb25maWdfMiIsICJfY29uZmlnXzMiLCAiX2NvbmZpZ180IiwgIl9jb25maWdfNSIsICJfY29uZmlnXzYiLCAiX2NvbmZpZ183IiwgIl9jb25maWdfOCIsICJfY29uZmlnXzkiLCAiQ2xvdWRXYXRjaFNlcnZpY2VFeGNlcHRpb24kMSIsICJDbG91ZFdhdGNoU2VydmljZUV4Y2VwdGlvbiIsICJDb25jdXJyZW50TW9kaWZpY2F0aW9uRXhjZXB0aW9uJDEiLCAiQ29uY3VycmVudE1vZGlmaWNhdGlvbkV4Y2VwdGlvbiIsICJvcHRzIiwgIkNvbmZsaWN0RXhjZXB0aW9uJDEiLCAiQ29uZmxpY3RFeGNlcHRpb24iLCAiRGFzaGJvYXJkSW52YWxpZElucHV0RXJyb3IkMSIsICJEYXNoYm9hcmRJbnZhbGlkSW5wdXRFcnJvciIsICJEYXNoYm9hcmROb3RGb3VuZEVycm9yJDEiLCAiRGFzaGJvYXJkTm90Rm91bmRFcnJvciIsICJSZXNvdXJjZU5vdEZvdW5kJDEiLCAiUmVzb3VyY2VOb3RGb3VuZCIsICJJbnRlcm5hbFNlcnZpY2VGYXVsdCQxIiwgIkludGVybmFsU2VydmljZUZhdWx0IiwgIkludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkV4Y2VwdGlvbiQxIiwgIkludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkV4Y2VwdGlvbiIsICJJbnZhbGlkUGFyYW1ldGVyVmFsdWVFeGNlcHRpb24kMSIsICJJbnZhbGlkUGFyYW1ldGVyVmFsdWVFeGNlcHRpb24iLCAiTWlzc2luZ1JlcXVpcmVkUGFyYW1ldGVyRXhjZXB0aW9uJDEiLCAiTWlzc2luZ1JlcXVpcmVkUGFyYW1ldGVyRXhjZXB0aW9uIiwgIlJlc291cmNlTm90Rm91bmRFeGNlcHRpb24kMSIsICJSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uIiwgIkludmFsaWROZXh0VG9rZW4kMSIsICJJbnZhbGlkTmV4dFRva2VuIiwgIkxpbWl0RXhjZWVkZWRFeGNlcHRpb24kMSIsICJMaW1pdEV4Y2VlZGVkRXhjZXB0aW9uIiwgIkxpbWl0RXhjZWVkZWRGYXVsdCQxIiwgIkxpbWl0RXhjZWVkZWRGYXVsdCIsICJJbnZhbGlkRm9ybWF0RmF1bHQkMSIsICJJbnZhbGlkRm9ybWF0RmF1bHQiLCAiX0EiLCAiX0FBIiwgIl9BQVYiLCAiX0FBbCIsICJfQUMiLCAiX0FDQSIsICJfQUNJIiwgIl9BQ1VUIiwgIl9BQ2wiLCAiX0FEIiwgIl9BREMiLCAiX0FERVRSIiwgIl9BRFQiLCAiX0FEbCIsICJfQURuIiwgIl9BRSIsICJfQUhJIiwgIl9BSElsIiwgIl9BSSIsICJfQU4iLCAiX0FOUCIsICJfQU5sIiwgIl9BT1RMIiwgIl9BUCIsICJfQVIiLCAiX0FTIiwgIl9BU0IiLCAiX0FTRVAiLCAiX0FTUiIsICJfQVNXUCIsICJfQVNkIiwgIl9BU2ciLCAiX0FUIiwgIl9BVGwiLCAiX0FVQyIsICJfQVYiLCAiX0FWcCIsICJfQXIiLCAiX0F0IiwgIl9CRiIsICJfQyIsICJfQ0EiLCAiX0NBbyIsICJfQ0FvbSIsICJfQ0QiLCAiX0NFIiwgIl9DSSIsICJfQ01FIiwgIl9DTyIsICJfQ09BTiIsICJfQ28iLCAiX0NvZCIsICJfQ291IiwgIl9EIiwgIl9EQSIsICJfREFBIiwgIl9EQUFJIiwgIl9EQUMiLCAiX0RBQ0kiLCAiX0RBQ08iLCAiX0RBRCIsICJfREFESSIsICJfREFESWUiLCAiX0RBRE8iLCAiX0RBRE9lIiwgIl9EQURlIiwgIl9EQUZNIiwgIl9EQUZNSSIsICJfREFGTU8iLCAiX0RBSCIsICJfREFISSIsICJfREFITyIsICJfREFJIiwgIl9EQUllIiwgIl9EQU8iLCAiX0RBZSIsICJfREFlcyIsICJfREIiLCAiX0REIiwgIl9EREkiLCAiX0RETyIsICJfREUiLCAiX0RFYSIsICJfREYiLCAiX0RGaSIsICJfRElJRSIsICJfRElSIiwgIl9ESVJJIiwgIl9ESVJJZSIsICJfRElSSWkiLCAiX0RJUk8iLCAiX0RJUk9lIiwgIl9ESVJPaSIsICJfRElSZSIsICJfRElSaSIsICJfRE1TIiwgIl9ETVNJIiwgIl9ETVNPIiwgIl9ETiIsICJfRE5GRSIsICJfRE5QIiwgIl9ETmEiLCAiX0RQIiwgIl9EVEEiLCAiX0RWTSIsICJfRFZNYSIsICJfRGEiLCAiX0RhdCIsICJfRGUiLCAiX0RpIiwgIl9FIiwgIl9FQUEiLCAiX0VBQUkiLCAiX0VEIiwgIl9FRiIsICJfRUlSIiwgIl9FSVJJIiwgIl9FSVJPIiwgIl9FTFNDUCIsICJfRU1EIiwgIl9FTURMIiwgIl9FUCIsICJfRVMiLCAiX0VTdiIsICJfRVN4IiwgIl9FVCIsICJfRVRSIiwgIl9FVHgiLCAiX0VuIiwgIl9FeCIsICJfRiIsICJfRkEiLCAiX0ZDIiwgIl9GRCIsICJfRlIiLCAiX0dEIiwgIl9HREkiLCAiX0dETyIsICJfR0lSUiIsICJfR0lSUkkiLCAiX0dJUlJPIiwgIl9HTUQiLCAiX0dNREkiLCAiX0dNRE8iLCAiX0dNUyIsICJfR01TSSIsICJfR01TSWUiLCAiX0dNU08iLCAiX0dNU09lIiwgIl9HTVNlIiwgIl9HTVdJIiwgIl9HTVdJSSIsICJfR01XSU8iLCAiX0hEIiwgIl9ISVQiLCAiX0hTIiwgIl9JIiwgIl9JREEiLCAiX0lGIiwgIl9JRkYiLCAiX0lMQSIsICJfSUxBTSIsICJfSU0iLCAiX0lOVCIsICJfSVBDRSIsICJfSVBWRSIsICJfSVIiLCAiX0lSQyIsICJfSVJDRCIsICJfSVJDRG4iLCAiX0lSQ24iLCAiX0lSTUQiLCAiX0lSTURuIiwgIl9JUm4iLCAiX0lTRiIsICJfSyIsICJfS0EiLCAiX0tMIiwgIl9LZSIsICJfTCIsICJfTEQiLCAiX0xESSIsICJfTERPIiwgIl9MRUUiLCAiX0xFRiIsICJfTE0iLCAiX0xNSSIsICJfTE1JUiIsICJfTE1JUkkiLCAiX0xNSVJPIiwgIl9MTU8iLCAiX0xNUyIsICJfTE1TSSIsICJfTE1TTyIsICJfTE1pIiwgIl9MTyIsICJfTFRGUiIsICJfTFRGUkkiLCAiX0xURlJPIiwgIl9MVUQiLCAiX00iLCAiX01BIiwgIl9NQWUiLCAiX01DIiwgIl9NQ0MiLCAiX01DViIsICJfTUQiLCAiX01EUSIsICJfTURRZSIsICJfTURSIiwgIl9NRFJNIiwgIl9NRFJlIiwgIl9NRGEiLCAiX01EZSIsICJfTURlcyIsICJfTURldCIsICJfTU1BRCIsICJfTU4iLCAiX01OZSIsICJfTVIiLCAiX01SRCIsICJfTVJEYSIsICJfTVJQRSIsICJfTVJTIiwgIl9NUmEiLCAiX01SYW4iLCAiX01SYW5hIiwgIl9NUyIsICJfTVNFIiwgIl9NU0VlIiwgIl9NU0YiLCAiX01TRmUiLCAiX01TU0MiLCAiX01TU0NlIiwgIl9NU1NJTSIsICJfTVNTTSIsICJfTVQiLCAiX01XIiwgIl9NV0kiLCAiX01hIiwgIl9NZSIsICJfTWVzIiwgIl9NZXQiLCAiX01pIiwgIl9OIiwgIl9OVCIsICJfTmEiLCAiX05hbSIsICJfT0EiLCAiX09BdyIsICJfT0IiLCAiX09GIiwgIl9PS0EiLCAiX1AiLCAiX1BBRCIsICJfUEFESSIsICJfUEFETyIsICJfUENBIiwgIl9QQ0FJIiwgIl9QRCIsICJfUERJIiwgIl9QRE8iLCAiX1BGIiwgIl9QSVIiLCAiX1BJUkkiLCAiX1BJUk8iLCAiX1BNQSIsICJfUE1BSSIsICJfUE1EIiwgIl9QTURJIiwgIl9QTUlSIiwgIl9QTUlSSSIsICJfUE1JUk8iLCAiX1BNUyIsICJfUE1TSSIsICJfUE1TTyIsICJfUE9BTiIsICJfUFMiLCAiX1IiLCAiX1JBIiwgIl9SQVJOIiwgIl9SQWUiLCAiX1JEIiwgIl9SRHUiLCAiX1JJIiwgIl9STiIsICJfUk5GIiwgIl9STkZFIiwgIl9STnUiLCAiX1JTIiwgIl9SVCIsICJfUyIsICJfU0FTIiwgIl9TQVNJIiwgIl9TQiIsICJfU0MiLCAiX1NDdCIsICJfU0N0YSIsICJfU0QiLCAiX1NFViIsICJfU01BRCIsICJfU01TIiwgIl9TTVNJIiwgIl9TTVNJdCIsICJfU01TTyIsICJfU01TT3QiLCAiX1NNU3QiLCAiX1NSIiwgIl9TUkQiLCAiX1NSdCIsICJfU1MiLCAiX1NUIiwgIl9TVFQiLCAiX1NVVCIsICJfU1YiLCAiX1NWdCIsICJfU2MiLCAiX1NpIiwgIl9TdCIsICJfU3RhIiwgIl9TdGF0IiwgIl9TdSIsICJfVCIsICJfVEsiLCAiX1RMIiwgIl9UTUQiLCAiX1RNSSIsICJfVE4iLCAiX1RSIiwgIl9UUkkiLCAiX1RSTyIsICJfVGEiLCAiX1RhZyIsICJfVGgiLCAiX1RpIiwgIl9UaW0iLCAiX1UiLCAiX1VDIiwgIl9VUiIsICJfVVJJIiwgIl9VUk8iLCAiX1YiLCAiX1ZhIiwgIl9hUUUiLCAiX2MiLCAiX2RWTSIsICJfZSIsICJfaEUiLCAiX20iLCAiX3MiLCAiX3NtIiwgIm4wIiwgIkFsYXJtQ29udHJpYnV0b3IiLCAiQWxhcm1IaXN0b3J5SXRlbSIsICJBbm9tYWx5RGV0ZWN0b3IiLCAiRGltZW5zaW9ucyIsICJBbm9tYWx5RGV0ZWN0b3JDb25maWd1cmF0aW9uIiwgIk1ldHJpY0NoYXJhY3RlcmlzdGljcyIsICJTaW5nbGVNZXRyaWNBbm9tYWx5RGV0ZWN0b3IiLCAiTWV0cmljTWF0aEFub21hbHlEZXRlY3RvciIsICJBbm9tYWx5RGV0ZWN0b3JFeGNsdWRlZFRpbWVSYW5nZXMiLCAiQ29tcG9zaXRlQWxhcm0iLCAiRGFzaGJvYXJkRW50cnkiLCAiRGFzaGJvYXJkVmFsaWRhdGlvbk1lc3NhZ2VzIiwgIkRhc2hib2FyZFZhbGlkYXRpb25NZXNzYWdlIiwgIkRhdGFwb2ludCIsICJEZWxldGVBbGFybXNJbnB1dCIsICJEZWxldGVBbm9tYWx5RGV0ZWN0b3JJbnB1dCIsICJEZWxldGVBbm9tYWx5RGV0ZWN0b3JPdXRwdXQiLCAiRGVsZXRlRGFzaGJvYXJkc0lucHV0IiwgIkRlbGV0ZURhc2hib2FyZHNPdXRwdXQiLCAiRGVsZXRlSW5zaWdodFJ1bGVzSW5wdXQiLCAiRGVsZXRlSW5zaWdodFJ1bGVzT3V0cHV0IiwgIkJhdGNoRmFpbHVyZXMiLCAiRGVsZXRlTWV0cmljU3RyZWFtSW5wdXQiLCAiRGVsZXRlTWV0cmljU3RyZWFtT3V0cHV0IiwgIkRlc2NyaWJlQWxhcm1Db250cmlidXRvcnNJbnB1dCIsICJEZXNjcmliZUFsYXJtQ29udHJpYnV0b3JzT3V0cHV0IiwgIkFsYXJtQ29udHJpYnV0b3JzIiwgIkRlc2NyaWJlQWxhcm1IaXN0b3J5SW5wdXQiLCAiRGVzY3JpYmVBbGFybUhpc3RvcnlPdXRwdXQiLCAiQWxhcm1IaXN0b3J5SXRlbXMiLCAiRGVzY3JpYmVBbGFybXNGb3JNZXRyaWNJbnB1dCIsICJEZXNjcmliZUFsYXJtc0Zvck1ldHJpY091dHB1dCIsICJNZXRyaWNBbGFybXMiLCAiRGVzY3JpYmVBbGFybXNJbnB1dCIsICJEZXNjcmliZUFsYXJtc091dHB1dCIsICJDb21wb3NpdGVBbGFybXMiLCAiRGVzY3JpYmVBbm9tYWx5RGV0ZWN0b3JzSW5wdXQiLCAiRGVzY3JpYmVBbm9tYWx5RGV0ZWN0b3JzT3V0cHV0IiwgIkFub21hbHlEZXRlY3RvcnMiLCAiRGVzY3JpYmVJbnNpZ2h0UnVsZXNJbnB1dCIsICJEZXNjcmliZUluc2lnaHRSdWxlc091dHB1dCIsICJJbnNpZ2h0UnVsZXMiLCAiRGltZW5zaW9uIiwgIkRpbWVuc2lvbkZpbHRlciIsICJEaXNhYmxlQWxhcm1BY3Rpb25zSW5wdXQiLCAiRGlzYWJsZUluc2lnaHRSdWxlc0lucHV0IiwgIkRpc2FibGVJbnNpZ2h0UnVsZXNPdXRwdXQiLCAiRW5hYmxlQWxhcm1BY3Rpb25zSW5wdXQiLCAiRW5hYmxlSW5zaWdodFJ1bGVzSW5wdXQiLCAiRW5hYmxlSW5zaWdodFJ1bGVzT3V0cHV0IiwgIkVudGl0eSIsICJFbnRpdHlNZXRyaWNEYXRhIiwgIk1ldHJpY0RhdGEiLCAiR2V0RGFzaGJvYXJkSW5wdXQiLCAiR2V0RGFzaGJvYXJkT3V0cHV0IiwgIkdldEluc2lnaHRSdWxlUmVwb3J0SW5wdXQiLCAiR2V0SW5zaWdodFJ1bGVSZXBvcnRPdXRwdXQiLCAiSW5zaWdodFJ1bGVDb250cmlidXRvcnMiLCAiSW5zaWdodFJ1bGVNZXRyaWNEYXRhcG9pbnRzIiwgIkdldE1ldHJpY0RhdGFJbnB1dCIsICJNZXRyaWNEYXRhUXVlcmllcyIsICJMYWJlbE9wdGlvbnMiLCAiR2V0TWV0cmljRGF0YU91dHB1dCIsICJNZXRyaWNEYXRhUmVzdWx0cyIsICJNZXRyaWNEYXRhUmVzdWx0TWVzc2FnZXMiLCAiR2V0TWV0cmljU3RhdGlzdGljc0lucHV0IiwgIkdldE1ldHJpY1N0YXRpc3RpY3NPdXRwdXQiLCAiRGF0YXBvaW50cyIsICJHZXRNZXRyaWNTdHJlYW1JbnB1dCIsICJHZXRNZXRyaWNTdHJlYW1PdXRwdXQiLCAiTWV0cmljU3RyZWFtRmlsdGVycyIsICJNZXRyaWNTdHJlYW1TdGF0aXN0aWNzQ29uZmlndXJhdGlvbnMiLCAiR2V0TWV0cmljV2lkZ2V0SW1hZ2VJbnB1dCIsICJHZXRNZXRyaWNXaWRnZXRJbWFnZU91dHB1dCIsICJJbnNpZ2h0UnVsZSIsICJJbnNpZ2h0UnVsZUNvbnRyaWJ1dG9yIiwgIkluc2lnaHRSdWxlQ29udHJpYnV0b3JEYXRhcG9pbnRzIiwgIkluc2lnaHRSdWxlQ29udHJpYnV0b3JEYXRhcG9pbnQiLCAiSW5zaWdodFJ1bGVNZXRyaWNEYXRhcG9pbnQiLCAiTGlzdERhc2hib2FyZHNJbnB1dCIsICJMaXN0RGFzaGJvYXJkc091dHB1dCIsICJEYXNoYm9hcmRFbnRyaWVzIiwgIkxpc3RNYW5hZ2VkSW5zaWdodFJ1bGVzSW5wdXQiLCAiTGlzdE1hbmFnZWRJbnNpZ2h0UnVsZXNPdXRwdXQiLCAiTWFuYWdlZFJ1bGVEZXNjcmlwdGlvbnMiLCAiTGlzdE1ldHJpY3NJbnB1dCIsICJEaW1lbnNpb25GaWx0ZXJzIiwgIkxpc3RNZXRyaWNzT3V0cHV0IiwgIk1ldHJpY3MiLCAiTGlzdE1ldHJpY1N0cmVhbXNJbnB1dCIsICJMaXN0TWV0cmljU3RyZWFtc091dHB1dCIsICJNZXRyaWNTdHJlYW1FbnRyaWVzIiwgIkxpc3RUYWdzRm9yUmVzb3VyY2VJbnB1dCIsICJMaXN0VGFnc0ZvclJlc291cmNlT3V0cHV0IiwgIlRhZ0xpc3QiLCAiTWFuYWdlZFJ1bGUiLCAiTWFuYWdlZFJ1bGVEZXNjcmlwdGlvbiIsICJNYW5hZ2VkUnVsZVN0YXRlIiwgIk1lc3NhZ2VEYXRhIiwgIk1ldHJpYyIsICJNZXRyaWNBbGFybSIsICJNZXRyaWNEYXRhUXVlcnkiLCAiTWV0cmljU3RhdCIsICJNZXRyaWNEYXRhUmVzdWx0IiwgIk1ldHJpY0RhdHVtIiwgIlN0YXRpc3RpY1NldCIsICJNZXRyaWNTdHJlYW1FbnRyeSIsICJNZXRyaWNTdHJlYW1GaWx0ZXIiLCAiTWV0cmljU3RyZWFtU3RhdGlzdGljc0NvbmZpZ3VyYXRpb24iLCAiTWV0cmljU3RyZWFtU3RhdGlzdGljc0luY2x1ZGVNZXRyaWNzIiwgIk1ldHJpY1N0cmVhbVN0YXRpc3RpY3NNZXRyaWMiLCAiUGFydGlhbEZhaWx1cmUiLCAiUHV0QW5vbWFseURldGVjdG9ySW5wdXQiLCAiUHV0QW5vbWFseURldGVjdG9yT3V0cHV0IiwgIlB1dENvbXBvc2l0ZUFsYXJtSW5wdXQiLCAiUHV0RGFzaGJvYXJkSW5wdXQiLCAiUHV0RGFzaGJvYXJkT3V0cHV0IiwgIlB1dEluc2lnaHRSdWxlSW5wdXQiLCAiUHV0SW5zaWdodFJ1bGVPdXRwdXQiLCAiUHV0TWFuYWdlZEluc2lnaHRSdWxlc0lucHV0IiwgIk1hbmFnZWRSdWxlcyIsICJQdXRNYW5hZ2VkSW5zaWdodFJ1bGVzT3V0cHV0IiwgIlB1dE1ldHJpY0FsYXJtSW5wdXQiLCAiUHV0TWV0cmljRGF0YUlucHV0IiwgIkVudGl0eU1ldHJpY0RhdGFMaXN0IiwgIlB1dE1ldHJpY1N0cmVhbUlucHV0IiwgIlB1dE1ldHJpY1N0cmVhbU91dHB1dCIsICJSYW5nZSIsICJTZXRBbGFybVN0YXRlSW5wdXQiLCAiU3RhcnRNZXRyaWNTdHJlYW1zSW5wdXQiLCAiU3RhcnRNZXRyaWNTdHJlYW1zT3V0cHV0IiwgIlN0b3BNZXRyaWNTdHJlYW1zSW5wdXQiLCAiU3RvcE1ldHJpY1N0cmVhbXNPdXRwdXQiLCAiVGFnIiwgIlRhZ1Jlc291cmNlSW5wdXQiLCAiVGFnUmVzb3VyY2VPdXRwdXQiLCAiVW50YWdSZXNvdXJjZUlucHV0IiwgIlVudGFnUmVzb3VyY2VPdXRwdXQiLCAiX19Vbml0IiwgIkRlbGV0ZUFsYXJtcyIsICJEZWxldGVBbm9tYWx5RGV0ZWN0b3IiLCAiRGVsZXRlRGFzaGJvYXJkcyIsICJEZWxldGVJbnNpZ2h0UnVsZXMiLCAiRGVsZXRlTWV0cmljU3RyZWFtIiwgIkRlc2NyaWJlQWxhcm1Db250cmlidXRvcnMiLCAiRGVzY3JpYmVBbGFybUhpc3RvcnkiLCAiRGVzY3JpYmVBbGFybXMiLCAiRGVzY3JpYmVBbGFybXNGb3JNZXRyaWMiLCAiRGVzY3JpYmVBbm9tYWx5RGV0ZWN0b3JzIiwgIkRlc2NyaWJlSW5zaWdodFJ1bGVzIiwgIkRpc2FibGVBbGFybUFjdGlvbnMiLCAiRGlzYWJsZUluc2lnaHRSdWxlcyIsICJFbmFibGVBbGFybUFjdGlvbnMiLCAiRW5hYmxlSW5zaWdodFJ1bGVzIiwgIkdldERhc2hib2FyZCIsICJHZXRJbnNpZ2h0UnVsZVJlcG9ydCIsICJHZXRNZXRyaWNEYXRhIiwgIkdldE1ldHJpY1N0YXRpc3RpY3MiLCAiR2V0TWV0cmljU3RyZWFtIiwgIkdldE1ldHJpY1dpZGdldEltYWdlIiwgIkxpc3REYXNoYm9hcmRzIiwgIkxpc3RNYW5hZ2VkSW5zaWdodFJ1bGVzIiwgIkxpc3RNZXRyaWNzIiwgIkxpc3RNZXRyaWNTdHJlYW1zIiwgIkxpc3RUYWdzRm9yUmVzb3VyY2UiLCAiUHV0QW5vbWFseURldGVjdG9yIiwgIlB1dENvbXBvc2l0ZUFsYXJtIiwgIlB1dERhc2hib2FyZCIsICJQdXRJbnNpZ2h0UnVsZSIsICJQdXRNYW5hZ2VkSW5zaWdodFJ1bGVzIiwgIlB1dE1ldHJpY0FsYXJtIiwgIlB1dE1ldHJpY0RhdGEiLCAiUHV0TWV0cmljU3RyZWFtIiwgIlNldEFsYXJtU3RhdGUiLCAiU3RhcnRNZXRyaWNTdHJlYW1zIiwgIlN0b3BNZXRyaWNTdHJlYW1zIiwgIlRhZ1Jlc291cmNlIiwgIlVudGFnUmVzb3VyY2UiLCAiRGVsZXRlQWxhcm1zQ29tbWFuZCIsICJDb21tYW5kIiwgImNzIiwgIm8iLCAiRGVsZXRlQW5vbWFseURldGVjdG9yQ29tbWFuZCIsICJEZWxldGVEYXNoYm9hcmRzQ29tbWFuZCIsICJEZWxldGVJbnNpZ2h0UnVsZXNDb21tYW5kIiwgIkRlbGV0ZU1ldHJpY1N0cmVhbUNvbW1hbmQiLCAiRGVzY3JpYmVBbGFybUNvbnRyaWJ1dG9yc0NvbW1hbmQiLCAiRGVzY3JpYmVBbGFybUhpc3RvcnlDb21tYW5kIiwgIkRlc2NyaWJlQWxhcm1zQ29tbWFuZCIsICJEZXNjcmliZUFsYXJtc0Zvck1ldHJpY0NvbW1hbmQiLCAiRGVzY3JpYmVBbm9tYWx5RGV0ZWN0b3JzQ29tbWFuZCIsICJEZXNjcmliZUluc2lnaHRSdWxlc0NvbW1hbmQiLCAiRGlzYWJsZUFsYXJtQWN0aW9uc0NvbW1hbmQiLCAiRGlzYWJsZUluc2lnaHRSdWxlc0NvbW1hbmQiLCAiRW5hYmxlQWxhcm1BY3Rpb25zQ29tbWFuZCIsICJFbmFibGVJbnNpZ2h0UnVsZXNDb21tYW5kIiwgIkdldERhc2hib2FyZENvbW1hbmQiLCAiR2V0SW5zaWdodFJ1bGVSZXBvcnRDb21tYW5kIiwgIkdldE1ldHJpY0RhdGFDb21tYW5kIiwgIkdldE1ldHJpY1N0YXRpc3RpY3NDb21tYW5kIiwgIkdldE1ldHJpY1N0cmVhbUNvbW1hbmQiLCAiR2V0TWV0cmljV2lkZ2V0SW1hZ2VDb21tYW5kIiwgIkxpc3REYXNoYm9hcmRzQ29tbWFuZCIsICJMaXN0TWFuYWdlZEluc2lnaHRSdWxlc0NvbW1hbmQiLCAiTGlzdE1ldHJpY3NDb21tYW5kIiwgIkxpc3RNZXRyaWNTdHJlYW1zQ29tbWFuZCIsICJMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZCIsICJQdXRBbm9tYWx5RGV0ZWN0b3JDb21tYW5kIiwgIlB1dENvbXBvc2l0ZUFsYXJtQ29tbWFuZCIsICJQdXREYXNoYm9hcmRDb21tYW5kIiwgIlB1dEluc2lnaHRSdWxlQ29tbWFuZCIsICJQdXRNYW5hZ2VkSW5zaWdodFJ1bGVzQ29tbWFuZCIsICJQdXRNZXRyaWNBbGFybUNvbW1hbmQiLCAiUHV0TWV0cmljRGF0YUNvbW1hbmQiLCAiUHV0TWV0cmljU3RyZWFtQ29tbWFuZCIsICJTZXRBbGFybVN0YXRlQ29tbWFuZCIsICJTdGFydE1ldHJpY1N0cmVhbXNDb21tYW5kIiwgIlN0b3BNZXRyaWNTdHJlYW1zQ29tbWFuZCIsICJUYWdSZXNvdXJjZUNvbW1hbmQiLCAiVW50YWdSZXNvdXJjZUNvbW1hbmQiLCAiY29tbWFuZHMiLCAiQ2xvdWRXYXRjaCIsICJwYWdpbmF0ZURlc2NyaWJlQWxhcm1IaXN0b3J5IiwgInBhZ2luYXRlRGVzY3JpYmVBbGFybXMiLCAicGFnaW5hdGVEZXNjcmliZUFub21hbHlEZXRlY3RvcnMiLCAicGFnaW5hdGVEZXNjcmliZUluc2lnaHRSdWxlcyIsICJwYWdpbmF0ZUdldE1ldHJpY0RhdGEiLCAicGFnaW5hdGVMaXN0RGFzaGJvYXJkcyIsICJwYWdpbmF0ZUxpc3RNYW5hZ2VkSW5zaWdodFJ1bGVzIiwgInBhZ2luYXRlTGlzdE1ldHJpY1N0cmVhbXMiLCAicGFnaW5hdGVMaXN0TWV0cmljcyIsICJjaGVja1N0YXRlJDEiLCAiY2xpZW50IiwgImlucHV0IiwgInJlYXNvbiIsICJyZXN1bHQiLCAiZXhjZXB0aW9uIiwgIndhaXRGb3JBbGFybUV4aXN0cyIsICJwYXJhbXMiLCAic2VydmljZURlZmF1bHRzIiwgIndhaXRVbnRpbEFsYXJtRXhpc3RzIiwgImNoZWNrU3RhdGUiLCAid2FpdEZvckNvbXBvc2l0ZUFsYXJtRXhpc3RzIiwgIndhaXRVbnRpbENvbXBvc2l0ZUFsYXJtRXhpc3RzIiwgIkFjdGlvbnNTdXBwcmVzc2VkQnkiLCAiQWxhcm1UeXBlIiwgIkhpc3RvcnlJdGVtVHlwZSIsICJTdGFuZGFyZFVuaXQiLCAiQW5vbWFseURldGVjdG9yU3RhdGVWYWx1ZSIsICJBbm9tYWx5RGV0ZWN0b3JUeXBlIiwgIkNvbXBhcmlzb25PcGVyYXRvciIsICJTdGF0ZVZhbHVlIiwgIlNjYW5CeSIsICJFdmFsdWF0aW9uU3RhdGUiLCAiU3RhdGlzdGljIiwgIlN0YXR1c0NvZGUiLCAiTWV0cmljU3RyZWFtT3V0cHV0Rm9ybWF0IiwgIlJlY2VudGx5QWN0aXZlIiwgInJlcXVpcmVfY2hhcnNldCIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgInByZWZlcnJlZENoYXJzZXRzIiwgInNpbXBsZUNoYXJzZXRSZWdFeHAiLCAicGFyc2VBY2NlcHRDaGFyc2V0IiwgImFjY2VwdCIsICJhY2NlcHRzIiwgImkiLCAiaiIsICJjaGFyc2V0IiwgInBhcnNlQ2hhcnNldCIsICJzdHIiLCAibWF0Y2giLCAicSIsICJwYXJhbXMiLCAicCIsICJnZXRDaGFyc2V0UHJpb3JpdHkiLCAiYWNjZXB0ZWQiLCAiaW5kZXgiLCAicHJpb3JpdHkiLCAic3BlYyIsICJzcGVjaWZ5IiwgInMiLCAicHJvdmlkZWQiLCAiaXNRdWFsaXR5IiwgImNvbXBhcmVTcGVjcyIsICJnZXRGdWxsQ2hhcnNldCIsICJwcmlvcml0aWVzIiwgInR5cGUiLCAiYSIsICJiIiwgInJlcXVpcmVfZW5jb2RpbmciLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJwcmVmZXJyZWRFbmNvZGluZ3MiLCAic2ltcGxlRW5jb2RpbmdSZWdFeHAiLCAicGFyc2VBY2NlcHRFbmNvZGluZyIsICJhY2NlcHQiLCAiYWNjZXB0cyIsICJoYXNJZGVudGl0eSIsICJtaW5RdWFsaXR5IiwgImkiLCAiaiIsICJlbmNvZGluZyIsICJwYXJzZUVuY29kaW5nIiwgInNwZWNpZnkiLCAic3RyIiwgIm1hdGNoIiwgInEiLCAicGFyYW1zIiwgInAiLCAiZ2V0RW5jb2RpbmdQcmlvcml0eSIsICJhY2NlcHRlZCIsICJpbmRleCIsICJwcmlvcml0eSIsICJzcGVjIiwgInMiLCAicHJvdmlkZWQiLCAicHJlZmVycmVkIiwgImNvbXBhcmF0b3IiLCAiYiIsICJhUHJlZmVycmVkIiwgImJQcmVmZXJyZWQiLCAiY29tcGFyZVNwZWNzIiwgImlzUXVhbGl0eSIsICJnZXRGdWxsRW5jb2RpbmciLCAicHJpb3JpdGllcyIsICJ0eXBlIiwgImEiLCAicmVxdWlyZV9sYW5ndWFnZSIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgInByZWZlcnJlZExhbmd1YWdlcyIsICJzaW1wbGVMYW5ndWFnZVJlZ0V4cCIsICJwYXJzZUFjY2VwdExhbmd1YWdlIiwgImFjY2VwdCIsICJhY2NlcHRzIiwgImkiLCAiaiIsICJsYW5ndWFnZSIsICJwYXJzZUxhbmd1YWdlIiwgInN0ciIsICJtYXRjaCIsICJwcmVmaXgiLCAic3VmZml4IiwgImZ1bGwiLCAicSIsICJwYXJhbXMiLCAicCIsICJnZXRMYW5ndWFnZVByaW9yaXR5IiwgImFjY2VwdGVkIiwgImluZGV4IiwgInByaW9yaXR5IiwgInNwZWMiLCAic3BlY2lmeSIsICJwcm92aWRlZCIsICJpc1F1YWxpdHkiLCAiY29tcGFyZVNwZWNzIiwgImdldEZ1bGxMYW5ndWFnZSIsICJwcmlvcml0aWVzIiwgInR5cGUiLCAiYSIsICJiIiwgInJlcXVpcmVfbWVkaWFUeXBlIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAicHJlZmVycmVkTWVkaWFUeXBlcyIsICJzaW1wbGVNZWRpYVR5cGVSZWdFeHAiLCAicGFyc2VBY2NlcHQiLCAiYWNjZXB0IiwgImFjY2VwdHMiLCAic3BsaXRNZWRpYVR5cGVzIiwgImkiLCAiaiIsICJtZWRpYVR5cGUiLCAicGFyc2VNZWRpYVR5cGUiLCAic3RyIiwgIm1hdGNoIiwgInBhcmFtcyIsICJxIiwgInN1YnR5cGUiLCAidHlwZSIsICJrdnBzIiwgInNwbGl0UGFyYW1ldGVycyIsICJzcGxpdEtleVZhbHVlUGFpciIsICJwYWlyIiwgImtleSIsICJ2YWwiLCAidmFsdWUiLCAiZ2V0TWVkaWFUeXBlUHJpb3JpdHkiLCAiYWNjZXB0ZWQiLCAiaW5kZXgiLCAicHJpb3JpdHkiLCAic3BlYyIsICJzcGVjaWZ5IiwgInAiLCAia2V5cyIsICJrIiwgInByb3ZpZGVkIiwgImlzUXVhbGl0eSIsICJjb21wYXJlU3BlY3MiLCAiZ2V0RnVsbFR5cGUiLCAicHJpb3JpdGllcyIsICJhIiwgImIiLCAicXVvdGVDb3VudCIsICJzdHJpbmciLCAiY291bnQiLCAicGFyYW1ldGVycyIsICJyZXF1aXJlX25lZ290aWF0b3IiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJwcmVmZXJyZWRDaGFyc2V0cyIsICJwcmVmZXJyZWRFbmNvZGluZ3MiLCAicHJlZmVycmVkTGFuZ3VhZ2VzIiwgInByZWZlcnJlZE1lZGlhVHlwZXMiLCAiTmVnb3RpYXRvciIsICJyZXF1ZXN0IiwgImF2YWlsYWJsZSIsICJzZXQiLCAib3B0cyIsICJvcHRpb25zIiwgInJlcXVpcmVfY29tcHJlc3NpYmxlIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiZGIiLCAiQ09NUFJFU1NJQkxFX1RZUEVfUkVHRVhQIiwgIkVYVFJBQ1RfVFlQRV9SRUdFWFAiLCAiY29tcHJlc3NpYmxlIiwgInR5cGUiLCAibWF0Y2giLCAibWltZSIsICJkYXRhIiwgInJlcXVpcmVfY29tbW9uIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJmb3JtYXQiLCAicHJvcCIsICJvYmoiLCAidHlwZSIsICJwcm9wcyIsICJub3RpY2UiLCAicmVxdWlyZV9wYWNrYWdlIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAicmVxdWlyZV9jb25zb2xlIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAib3MiLCAiTEVWRUwiLCAiTUVTU0FHRSIsICJUcmFuc3BvcnRTdHJlYW0iLCAib3B0aW9ucyIsICJpbmZvIiwgImNhbGxiYWNrIiwgInN0ckFycmF5IiwgImVyck1zZyIsICJzZXQiLCAiZWwiLCAicmVxdWlyZV90YWlsX2ZpbGUiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJmcyIsICJTdHJpbmdEZWNvZGVyIiwgIlN0cmVhbSIsICJub29wIiwgIm9wdGlvbnMiLCAiaXRlciIsICJidWZmZXIiLCAiZGVjb2RlIiwgInN0cmVhbSIsICJidWZmIiwgInBvcyIsICJyb3ciLCAiZXJyIiwgImZkIiwgInJlYWQiLCAiZXJyb3IiLCAiYnl0ZXMiLCAiZGF0YSIsICJsIiwgImkiLCAicmVxdWlyZV9maWxlIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiZnMiLCAicGF0aCIsICJhc3luY1NlcmllcyIsICJ6bGliIiwgIk1FU1NBR0UiLCAiU3RyZWFtIiwgIlBhc3NUaHJvdWdoIiwgIlRyYW5zcG9ydFN0cmVhbSIsICJkZWJ1ZyIsICJvcyIsICJ0YWlsRmlsZSIsICJvcHRpb25zIiwgInRocm93SWYiLCAidGFyZ2V0IiwgImFyZ3MiLCAibmFtZSIsICJjYWxsYmFjayIsICJpbmZvIiwgIm91dHB1dCIsICJieXRlcyIsICJsb2dnZWQiLCAid3JpdHRlbiIsICJub3JtYWxpemVRdWVyeSIsICJmaWxlIiwgImJ1ZmYiLCAicmVzdWx0cyIsICJyb3ciLCAic3RyZWFtIiwgImVyciIsICJkYXRhIiwgImwiLCAiaSIsICJhZGQiLCAiYXR0ZW1wdCIsICJsb2ciLCAiY2hlY2siLCAicHVzaCIsICJlIiwgIm9iaiIsICJrZXkiLCAidGltZSIsICJ0YWlsIiwgImxpbmUiLCAic2l6ZSIsICJmdWxscGF0aCIsICJzdGF0IiwgImNiIiwgInNvdXJjZSIsICJkZXN0IiwgImV4dCIsICJiYXNlbmFtZSIsICJ0YXNrcyIsICJudW0iLCAiaXNSb3RhdGlvbiIsICJvbGRlc3QiLCAiaXNPbGRlc3QiLCAiaXNaaXBwZWQiLCAiZmlsZVBhdGgiLCAieCIsICJmaWxlTmFtZSIsICJ0bXBwYXRoIiwgImV4aXN0cyIsICJzcmMiLCAiZ3ppcCIsICJpbnAiLCAib3V0IiwgImRpclBhdGgiLCAicmVxdWlyZV9odHRwIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiaHR0cCIsICJodHRwcyIsICJTdHJlYW0iLCAiVHJhbnNwb3J0U3RyZWFtIiwgImNvbmZpZ3VyZSIsICJvcHRpb25zIiwgImluZm8iLCAiY2FsbGJhY2siLCAiZXJyIiwgInJlcyIsICJhdXRoIiwgInBhdGgiLCAiYm9keSIsICJlIiwgInN0cmVhbSIsICJidWZmIiwgInJlcSIsICJkYXRhIiwgImwiLCAiaSIsICJtZSIsICJiYXRjaE9wdGlvbnNDb3B5IiwgImhlYWRlcnMiLCAianNvblN0cmluZ2lmeSIsICJyZXF1aXJlX3N0cmVhbSIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImlzU3RyZWFtIiwgIk1FU1NBR0UiLCAib3MiLCAiVHJhbnNwb3J0U3RyZWFtIiwgIm9wdGlvbnMiLCAiaW5mbyIsICJjYWxsYmFjayIsICJyZXF1aXJlX3RyYW5zcG9ydHMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgInJlcXVpcmVfY29uZmlnIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJsb2dmb3JtIiwgImNvbmZpZ3MiLCAicmVxdWlyZV9leGNlcHRpb25fc3RyZWFtIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiV3JpdGFibGUiLCAidHJhbnNwb3J0IiwgImluZm8iLCAiZW5jIiwgImNhbGxiYWNrIiwgInJlcXVpcmVfZXhjZXB0aW9uX2hhbmRsZXIiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJvcyIsICJhc3luY0ZvckVhY2giLCAiZGVidWciLCAib25jZSIsICJzdGFja1RyYWNlIiwgIkV4Y2VwdGlvblN0cmVhbSIsICJsb2dnZXIiLCAiYXJncyIsICJhcmciLCAiaGFuZGxlciIsICJ3cmFwcGVyIiwgImVyciIsICJtZXNzYWdlIiwgInNpdGUiLCAiaW5mbyIsICJoYW5kbGVycyIsICJkb0V4aXQiLCAidGltZW91dCIsICJncmFjZWZ1bEV4aXQiLCAibmV4dCIsICJkb25lIiwgInRyYW5zcG9ydCIsICJvbkRvbmUiLCAiZXZlbnQiLCAid3JhcCIsICJyZXF1aXJlX3JlamVjdGlvbl9zdHJlYW0iLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJXcml0YWJsZSIsICJ0cmFuc3BvcnQiLCAiaW5mbyIsICJlbmMiLCAiY2FsbGJhY2siLCAicmVxdWlyZV9yZWplY3Rpb25faGFuZGxlciIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgIm9zIiwgImFzeW5jRm9yRWFjaCIsICJkZWJ1ZyIsICJvbmNlIiwgInN0YWNrVHJhY2UiLCAiUmVqZWN0aW9uU3RyZWFtIiwgImxvZ2dlciIsICJhcmdzIiwgImFyZyIsICJoYW5kbGVyIiwgIndyYXBwZXIiLCAiZXJyIiwgIm1lc3NhZ2UiLCAic2l0ZSIsICJpbmZvIiwgImhhbmRsZXJzIiwgImRvRXhpdCIsICJ0aW1lb3V0IiwgImdyYWNlZnVsRXhpdCIsICJuZXh0IiwgImRvbmUiLCAidHJhbnNwb3J0IiwgIm9uRG9uZSIsICJldmVudCIsICJ3cmFwIiwgInJlcXVpcmVfcHJvZmlsZXIiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJQcm9maWxlciIsICJsb2dnZXIiLCAiTG9nZ2VyIiwgImFyZ3MiLCAiaW5mbyIsICJyZXF1aXJlX2xvZ2dlciIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgIlN0cmVhbSIsICJUcmFuc2Zvcm0iLCAiYXN5bmNGb3JFYWNoIiwgIkxFVkVMIiwgIlNQTEFUIiwgImlzU3RyZWFtIiwgIkV4Y2VwdGlvbkhhbmRsZXIiLCAiUmVqZWN0aW9uSGFuZGxlciIsICJMZWdhY3lUcmFuc3BvcnRTdHJlYW0iLCAiUHJvZmlsZXIiLCAid2FybiIsICJjb25maWciLCAiZm9ybWF0UmVnRXhwIiwgIkxvZ2dlciIsICJvcHRpb25zIiwgImRlZmF1bHRSZXF1ZXN0TWV0YWRhdGEiLCAibG9nZ2VyIiwgImluZm8iLCAiaW5mb0Nsb25lIiwgInNpbGVudCIsICJmb3JtYXQiLCAiZGVmYXVsdE1ldGEiLCAibGV2ZWxzIiwgImxldmVsIiwgImV4aXRPbkVycm9yIiwgInRyYW5zcG9ydHMiLCAiY29sb3JzIiwgImVtaXRFcnJzIiwgImZvcm1hdHRlcnMiLCAicGFkTGV2ZWxzIiwgInJld3JpdGVycyIsICJzdHJpcENvbG9ycyIsICJleGNlcHRpb25IYW5kbGVycyIsICJyZWplY3Rpb25IYW5kbGVycyIsICJ0cmFuc3BvcnQiLCAiY29uZmlndXJlZExldmVsVmFsdWUiLCAiZ2V0TGV2ZWxWYWx1ZSIsICJtYXgiLCAibGV2ZWxWYWx1ZSIsICJnaXZlbkxldmVsVmFsdWUiLCAidHJhbnNwb3J0TGV2ZWxWYWx1ZSIsICJtc2ciLCAic3BsYXQiLCAibWV0YSIsICJlbmMiLCAiY2FsbGJhY2siLCAibmV4dCIsICJ0YXJnZXQiLCAibWF0Y2giLCAicmVzdWx0cyIsICJxdWVyeU9iamVjdCIsICJxdWVyeVRyYW5zcG9ydCIsICJlcnIiLCAicmVzIiwgImFkZFJlc3VsdHMiLCAicmVzdWx0IiwgIm91dCIsICJzdHJlYW1zIiwgImkiLCAic3RyIiwgImxvZyIsICJpZCIsICJhcmdzIiwgInRpbWUiLCAidGltZUVuZCIsICJldmVudCIsICJ0cmFuc3BvcnRFdmVudCIsICJ2YWx1ZSIsICJwaXBlcyIsICJyZXF1aXJlX2NyZWF0ZV9sb2dnZXIiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJMRVZFTCIsICJjb25maWciLCAiTG9nZ2VyIiwgImRlYnVnIiwgImlzTGV2ZWxFbmFibGVkRnVuY3Rpb25OYW1lIiwgImxldmVsIiwgIm9wdHMiLCAiRGVyaXZlZExvZ2dlciIsICJvcHRpb25zIiwgImxvZ2dlciIsICJhcmdzIiwgInNlbGYiLCAibXNnIiwgImluZm8iLCAicmVxdWlyZV9jb250YWluZXIiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJjcmVhdGVMb2dnZXIiLCAib3B0aW9ucyIsICJpZCIsICJleGlzdGluZyIsICJsb2dnZXIiLCAidmFsIiwgImtleSIsICJyZXF1aXJlX3dpbnN0b24iLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgImxvZ2Zvcm0iLCAid2FybiIsICJkZWZhdWx0TG9nZ2VyIiwgIm1ldGhvZCIsICJhcmdzIiwgInZhbCIsICJwcm9wIiwgInJlcXVpcmVfZGlzdF9janMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgInByb3RvY29sSHR0cCIsICJyZXNvbHZlSG9zdEhlYWRlckNvbmZpZyIsICJpbnB1dCIsICJob3N0SGVhZGVyTWlkZGxld2FyZSIsICJvcHRpb25zIiwgIm5leHQiLCAiYXJncyIsICJyZXF1ZXN0IiwgImhhbmRsZXJQcm90b2NvbCIsICJob3N0IiwgImhvc3RIZWFkZXJNaWRkbGV3YXJlT3B0aW9ucyIsICJnZXRIb3N0SGVhZGVyUGx1Z2luIiwgImNsaWVudFN0YWNrIiwgInJlcXVpcmVfZGlzdF9janMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgImxvZ2dlck1pZGRsZXdhcmUiLCAibmV4dCIsICJjb250ZXh0IiwgImFyZ3MiLCAicmVzcG9uc2UiLCAiY2xpZW50TmFtZSIsICJjb21tYW5kTmFtZSIsICJsb2dnZXIiLCAiZHluYW1vRGJEb2N1bWVudENsaWVudE9wdGlvbnMiLCAib3ZlcnJpZGVJbnB1dEZpbHRlclNlbnNpdGl2ZUxvZyIsICJvdmVycmlkZU91dHB1dEZpbHRlclNlbnNpdGl2ZUxvZyIsICJpbnB1dEZpbHRlclNlbnNpdGl2ZUxvZyIsICJvdXRwdXRGaWx0ZXJTZW5zaXRpdmVMb2ciLCAiJG1ldGFkYXRhIiwgIm91dHB1dFdpdGhvdXRNZXRhZGF0YSIsICJlcnJvciIsICJsb2dnZXJNaWRkbGV3YXJlT3B0aW9ucyIsICJnZXRMb2dnZXJQbHVnaW4iLCAib3B0aW9ucyIsICJjbGllbnRTdGFjayIsICJyZXF1aXJlX3JlY3Vyc2lvbkRldGVjdGlvbk1pZGRsZXdhcmUiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgImxhbWJkYV9pbnZva2Vfc3RvcmVfMSIsICJwcm90b2NvbF9odHRwXzEiLCAiVFJBQ0VfSURfSEVBREVSX05BTUUiLCAiRU5WX0xBTUJEQV9GVU5DVElPTl9OQU1FIiwgIkVOVl9UUkFDRV9JRCIsICJyZWN1cnNpb25EZXRlY3Rpb25NaWRkbGV3YXJlIiwgIm5leHQiLCAiYXJncyIsICJyZXF1ZXN0IiwgInRyYWNlSWRIZWFkZXIiLCAiaCIsICJmdW5jdGlvbk5hbWUiLCAidHJhY2VJZEZyb21FbnYiLCAidHJhY2VJZCIsICJub25FbXB0eVN0cmluZyIsICJzdHIiLCAicmVxdWlyZV9kaXN0X2NqcyIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAicmVjdXJzaW9uRGV0ZWN0aW9uTWlkZGxld2FyZSIsICJyZWN1cnNpb25EZXRlY3Rpb25NaWRkbGV3YXJlT3B0aW9ucyIsICJnZXRSZWN1cnNpb25EZXRlY3Rpb25QbHVnaW4iLCAib3B0aW9ucyIsICJjbGllbnRTdGFjayIsICJrIiwgInJlcXVpcmVfZGlzdF9janMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgInV0aWxFbmRwb2ludHMiLCAidXJsUGFyc2VyIiwgImlzVmlydHVhbEhvc3RhYmxlUzNCdWNrZXQiLCAidmFsdWUiLCAiYWxsb3dTdWJEb21haW5zIiwgImxhYmVsIiwgIkFSTl9ERUxJTUlURVIiLCAiUkVTT1VSQ0VfREVMSU1JVEVSIiwgInBhcnNlQXJuIiwgInNlZ21lbnRzIiwgImFybiIsICJwYXJ0aXRpb24iLCAic2VydmljZSIsICJyZWdpb24iLCAiYWNjb3VudElkIiwgInJlc291cmNlUGF0aCIsICJyZXNvdXJjZUlkIiwgInJlc291cmNlIiwgInBhcnRpdGlvbnMiLCAidmVyc2lvbiIsICJwYXJ0aXRpb25zSW5mbyIsICJzZWxlY3RlZFBhcnRpdGlvbnNJbmZvIiwgInNlbGVjdGVkVXNlckFnZW50UHJlZml4IiwgInJlZ2lvbnMiLCAib3V0cHV0cyIsICJyZWdpb25EYXRhIiwgInJlZ2lvblJlZ2V4IiwgIkRFRkFVTFRfUEFSVElUSU9OIiwgInNldFBhcnRpdGlvbkluZm8iLCAidXNlckFnZW50UHJlZml4IiwgInVzZURlZmF1bHRQYXJ0aXRpb25JbmZvIiwgImdldFVzZXJBZ2VudFByZWZpeCIsICJhd3NFbmRwb2ludEZ1bmN0aW9ucyIsICJyZXNvbHZlRGVmYXVsdEF3c1JlZ2lvbmFsRW5kcG9pbnRzQ29uZmlnIiwgImlucHV0IiwgImVuZHBvaW50IiwgInRvRW5kcG9pbnRWMSIsICJzdGF0ZSIsICJlbWl0V2FybmluZ0lmVW5zdXBwb3J0ZWRWZXJzaW9uIiwgImluaXRfZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbiIsICJfX2VzbU1pbiIsICJ2ZXJzaW9uIiwgInVzZXJNYWpvclZlcnNpb24iLCAidnYiLCAibG9uZ1BvbGxNaWRkbGV3YXJlIiwgImxvbmdQb2xsTWlkZGxld2FyZU9wdGlvbnMiLCAiZ2V0TG9uZ1BvbGxQbHVnaW4iLCAiaW5pdF9sb25nUG9sbE1pZGRsZXdhcmUiLCAiX19lc21NaW4iLCAibmV4dCIsICJjb250ZXh0IiwgImFyZ3MiLCAib3B0aW9ucyIsICJjbGllbnRTdGFjayIsICJzZXRDcmVkZW50aWFsRmVhdHVyZSIsICJjcmVkZW50aWFscyIsICJmZWF0dXJlIiwgInZhbHVlIiwgImluaXRfc2V0Q3JlZGVudGlhbEZlYXR1cmUiLCAiX19lc21NaW4iLCAic2V0RmVhdHVyZSIsICJjb250ZXh0IiwgImZlYXR1cmUiLCAidmFsdWUiLCAiaW1wb3J0X3V0aWxfcmV0cnkiLCAiaW5pdF9zZXRGZWF0dXJlIiwgIl9fZXNtTWluIiwgInNldFRva2VuRmVhdHVyZSIsICJ0b2tlbiIsICJmZWF0dXJlIiwgInZhbHVlIiwgImluaXRfc2V0VG9rZW5GZWF0dXJlIiwgIl9fZXNtTWluIiwgImNsaWVudF9leHBvcnRzIiwgIl9fZXhwb3J0IiwgImVtaXRXYXJuaW5nSWZVbnN1cHBvcnRlZFZlcnNpb24iLCAiZ2V0TG9uZ1BvbGxQbHVnaW4iLCAic2V0Q3JlZGVudGlhbEZlYXR1cmUiLCAic2V0RmVhdHVyZSIsICJzZXRUb2tlbkZlYXR1cmUiLCAic3RhdGUiLCAiaW5pdF9jbGllbnQiLCAiX19lc21NaW4iLCAiaW5pdF9lbWl0V2FybmluZ0lmVW5zdXBwb3J0ZWRWZXJzaW9uIiwgImluaXRfbG9uZ1BvbGxNaWRkbGV3YXJlIiwgImluaXRfc2V0Q3JlZGVudGlhbEZlYXR1cmUiLCAiaW5pdF9zZXRGZWF0dXJlIiwgImluaXRfc2V0VG9rZW5GZWF0dXJlIiwgInJlcXVpcmVfZGlzdF9janMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgImNvcmUiLCAidXRpbEVuZHBvaW50cyIsICJwcm90b2NvbEh0dHAiLCAiY2xpZW50IiwgInV0aWxSZXRyeSIsICJERUZBVUxUX1VBX0FQUF9JRCIsICJpc1ZhbGlkVXNlckFnZW50QXBwSWQiLCAiYXBwSWQiLCAicmVzb2x2ZVVzZXJBZ2VudENvbmZpZyIsICJpbnB1dCIsICJub3JtYWxpemVkQXBwSWRQcm92aWRlciIsICJjdXN0b21Vc2VyQWdlbnQiLCAibG9nZ2VyIiwgIkFDQ09VTlRfSURfRU5EUE9JTlRfUkVHRVgiLCAiY2hlY2tGZWF0dXJlcyIsICJjb250ZXh0IiwgImNvbmZpZyIsICJhcmdzIiwgInJldHJ5U3RyYXRlZ3kiLCAiZW5kcG9pbnRWMiIsICJpZGVudGl0eSIsICJjcmVkZW50aWFscyIsICJrZXkiLCAidmFsdWUiLCAiVVNFUl9BR0VOVCIsICJYX0FNWl9VU0VSX0FHRU5UIiwgIlNQQUNFIiwgIlVBX05BTUVfU0VQQVJBVE9SIiwgIlVBX05BTUVfRVNDQVBFX1JFR0VYIiwgIlVBX1ZBTFVFX0VTQ0FQRV9SRUdFWCIsICJVQV9FU0NBUEVfQ0hBUiIsICJCWVRFX0xJTUlUIiwgImVuY29kZUZlYXR1cmVzIiwgImZlYXR1cmVzIiwgImJ1ZmZlciIsICJ2YWwiLCAidXNlckFnZW50TWlkZGxld2FyZSIsICJvcHRpb25zIiwgIm5leHQiLCAicmVxdWVzdCIsICJoZWFkZXJzIiwgInVzZXJBZ2VudCIsICJlc2NhcGVVc2VyQWdlbnQiLCAiZGVmYXVsdFVzZXJBZ2VudCIsICJhd3NDb250ZXh0IiwgInByZWZpeCIsICJzZGtVc2VyQWdlbnRWYWx1ZSIsICJub3JtYWxVQVZhbHVlIiwgInNlY3Rpb24iLCAidXNlckFnZW50UGFpciIsICJuYW1lIiwgInBhcnQiLCAidmVyc2lvbiIsICJwcmVmaXhTZXBhcmF0b3JJbmRleCIsICJ1YU5hbWUiLCAiaXRlbSIsICJhY2MiLCAiaW5kZXgiLCAiZ2V0VXNlckFnZW50TWlkZGxld2FyZU9wdGlvbnMiLCAiZ2V0VXNlckFnZW50UGx1Z2luIiwgImNsaWVudFN0YWNrIiwgImltcG9ydF9wcm90b2NvbF9odHRwIiwgImdldERhdGVIZWFkZXIiLCAiaW5pdF9nZXREYXRlSGVhZGVyIiwgIl9fZXNtTWluIiwgInJlc3BvbnNlIiwgImdldFNrZXdDb3JyZWN0ZWREYXRlIiwgImluaXRfZ2V0U2tld0NvcnJlY3RlZERhdGUiLCAiX19lc21NaW4iLCAic3lzdGVtQ2xvY2tPZmZzZXQiLCAiaXNDbG9ja1NrZXdlZCIsICJpbml0X2lzQ2xvY2tTa2V3ZWQiLCAiX19lc21NaW4iLCAiaW5pdF9nZXRTa2V3Q29ycmVjdGVkRGF0ZSIsICJjbG9ja1RpbWUiLCAic3lzdGVtQ2xvY2tPZmZzZXQiLCAiZ2V0U2tld0NvcnJlY3RlZERhdGUiLCAiZ2V0VXBkYXRlZFN5c3RlbUNsb2NrT2Zmc2V0IiwgImluaXRfZ2V0VXBkYXRlZFN5c3RlbUNsb2NrT2Zmc2V0IiwgIl9fZXNtTWluIiwgImluaXRfaXNDbG9ja1NrZXdlZCIsICJjbG9ja1RpbWUiLCAiY3VycmVudFN5c3RlbUNsb2NrT2Zmc2V0IiwgImNsb2NrVGltZUluTXMiLCAiaXNDbG9ja1NrZXdlZCIsICJpbml0X3V0aWxzIiwgIl9fZXNtTWluIiwgImluaXRfZ2V0RGF0ZUhlYWRlciIsICJpbml0X2dldFNrZXdDb3JyZWN0ZWREYXRlIiwgImluaXRfZ2V0VXBkYXRlZFN5c3RlbUNsb2NrT2Zmc2V0IiwgImltcG9ydF9wcm90b2NvbF9odHRwIiwgInRocm93U2lnbmluZ1Byb3BlcnR5RXJyb3IiLCAidmFsaWRhdGVTaWduaW5nUHJvcGVydGllcyIsICJBd3NTZGtTaWdWNFNpZ25lciIsICJBV1NTREtTaWdWNFNpZ25lciIsICJpbml0X0F3c1Nka1NpZ1Y0U2lnbmVyIiwgIl9fZXNtTWluIiwgImluaXRfdXRpbHMiLCAibmFtZSIsICJwcm9wZXJ0eSIsICJzaWduaW5nUHJvcGVydGllcyIsICJjb250ZXh0IiwgImNvbmZpZyIsICJhdXRoU2NoZW1lIiwgInNpZ25lciIsICJzaWduaW5nUmVnaW9uIiwgInNpZ25pbmdSZWdpb25TZXQiLCAic2lnbmluZ05hbWUiLCAiaHR0cFJlcXVlc3QiLCAiaWRlbnRpdHkiLCAidmFsaWRhdGVkUHJvcHMiLCAiaGFuZGxlckV4ZWN1dGlvbkNvbnRleHQiLCAiZmlyc3QiLCAic2Vjb25kIiwgImdldFNrZXdDb3JyZWN0ZWREYXRlIiwgImVycm9yIiwgInNlcnZlclRpbWUiLCAiZ2V0RGF0ZUhlYWRlciIsICJpbml0aWFsU3lzdGVtQ2xvY2tPZmZzZXQiLCAiZ2V0VXBkYXRlZFN5c3RlbUNsb2NrT2Zmc2V0IiwgImh0dHBSZXNwb25zZSIsICJkYXRlSGVhZGVyIiwgImltcG9ydF9wcm90b2NvbF9odHRwIiwgIkF3c1Nka1NpZ1Y0QVNpZ25lciIsICJpbml0X0F3c1Nka1NpZ1Y0QVNpZ25lciIsICJfX2VzbU1pbiIsICJpbml0X3V0aWxzIiwgImluaXRfQXdzU2RrU2lnVjRTaWduZXIiLCAiQXdzU2RrU2lnVjRTaWduZXIiLCAiaHR0cFJlcXVlc3QiLCAiaWRlbnRpdHkiLCAic2lnbmluZ1Byb3BlcnRpZXMiLCAiY29uZmlnIiwgInNpZ25lciIsICJzaWduaW5nUmVnaW9uIiwgInNpZ25pbmdSZWdpb25TZXQiLCAic2lnbmluZ05hbWUiLCAidmFsaWRhdGVTaWduaW5nUHJvcGVydGllcyIsICJtdWx0aVJlZ2lvbk92ZXJyaWRlIiwgImdldFNrZXdDb3JyZWN0ZWREYXRlIiwgImdldEFycmF5Rm9yQ29tbWFTZXBhcmF0ZWRTdHJpbmciLCAiaW5pdF9nZXRBcnJheUZvckNvbW1hU2VwYXJhdGVkU3RyaW5nIiwgIl9fZXNtTWluIiwgInN0ciIsICJpdGVtIiwgImdldEJlYXJlclRva2VuRW52S2V5IiwgImluaXRfZ2V0QmVhcmVyVG9rZW5FbnZLZXkiLCAiX19lc21NaW4iLCAic2lnbmluZ05hbWUiLCAiTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX0VOVl9LRVkiLCAiTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX0NPTkZJR19LRVkiLCAiTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX09QVElPTlMiLCAiaW5pdF9OT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfT1BUSU9OUyIsICJfX2VzbU1pbiIsICJpbml0X2dldEFycmF5Rm9yQ29tbWFTZXBhcmF0ZWRTdHJpbmciLCAiaW5pdF9nZXRCZWFyZXJUb2tlbkVudktleSIsICJlbnYiLCAib3B0aW9ucyIsICJnZXRCZWFyZXJUb2tlbkVudktleSIsICJnZXRBcnJheUZvckNvbW1hU2VwYXJhdGVkU3RyaW5nIiwgInByb2ZpbGUiLCAiaW1wb3J0X2NvcmUiLCAiaW1wb3J0X3Byb3BlcnR5X3Byb3ZpZGVyIiwgInJlc29sdmVBd3NTZGtTaWdWNEFDb25maWciLCAiTk9ERV9TSUdWNEFfQ09ORklHX09QVElPTlMiLCAiaW5pdF9yZXNvbHZlQXdzU2RrU2lnVjRBQ29uZmlnIiwgIl9fZXNtTWluIiwgImNvbmZpZyIsICJlbnYiLCAiXyIsICJwcm9maWxlIiwgIm5vcm1hbGl6ZUNyZWRlbnRpYWxQcm92aWRlciIsICJjb25maWciLCAiY3JlZGVudGlhbHMiLCAiY3JlZGVudGlhbERlZmF1bHRQcm92aWRlciIsICJjcmVkZW50aWFsc1Byb3ZpZGVyIiwgImJpbmRDYWxsZXJDb25maWciLCAiZm4iLCAib3B0aW9ucyIsICJpbXBvcnRfY29yZSIsICJpbXBvcnRfc2lnbmF0dXJlX3Y0IiwgInJlc29sdmVBd3NTZGtTaWdWNENvbmZpZyIsICJyZXNvbHZlQVdTU0RLU2lnVjRDb25maWciLCAiaW5pdF9yZXNvbHZlQXdzU2RrU2lnVjRDb25maWciLCAiX19lc21NaW4iLCAiaW5pdF9jbGllbnQiLCAiaW5wdXRDcmVkZW50aWFscyIsICJpc1VzZXJTdXBwbGllZCIsICJyZXNvbHZlZENyZWRlbnRpYWxzIiwgIm1lbW9pemVkUHJvdmlkZXIiLCAiYm91bmRQcm92aWRlciIsICJpc0NyZWRlbnRpYWxPYmplY3QiLCAiYXR0cmlidXRlZENyZWRzIiwgInNldENyZWRlbnRpYWxGZWF0dXJlIiwgInNpZ25pbmdFc2NhcGVQYXRoIiwgInN5c3RlbUNsb2NrT2Zmc2V0IiwgInNoYTI1NiIsICJzaWduZXIiLCAicmVnaW9uIiwgInJlZ2lvbkluZm8iLCAic2lnbmluZ1JlZ2lvbiIsICJzaWduaW5nU2VydmljZSIsICJwYXJhbXMiLCAiU2lnbmVyQ3RvciIsICJhdXRoU2NoZW1lIiwgImluaXRfYXdzX3NkayIsICJfX2VzbU1pbiIsICJpbml0X0F3c1Nka1NpZ1Y0U2lnbmVyIiwgImluaXRfQXdzU2RrU2lnVjRBU2lnbmVyIiwgImluaXRfTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX09QVElPTlMiLCAiaW5pdF9yZXNvbHZlQXdzU2RrU2lnVjRBQ29uZmlnIiwgImluaXRfcmVzb2x2ZUF3c1Nka1NpZ1Y0Q29uZmlnIiwgImh0dHBBdXRoU2NoZW1lc19leHBvcnRzIiwgIl9fZXhwb3J0IiwgIkFXU1NES1NpZ1Y0U2lnbmVyIiwgIkF3c1Nka1NpZ1Y0QVNpZ25lciIsICJBd3NTZGtTaWdWNFNpZ25lciIsICJOT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfT1BUSU9OUyIsICJOT0RFX1NJR1Y0QV9DT05GSUdfT1BUSU9OUyIsICJnZXRCZWFyZXJUb2tlbkVudktleSIsICJyZXNvbHZlQVdTU0RLU2lnVjRDb25maWciLCAicmVzb2x2ZUF3c1Nka1NpZ1Y0QUNvbmZpZyIsICJyZXNvbHZlQXdzU2RrU2lnVjRDb25maWciLCAidmFsaWRhdGVTaWduaW5nUHJvcGVydGllcyIsICJpbml0X2h0dHBBdXRoU2NoZW1lcyIsICJfX2VzbU1pbiIsICJpbml0X2F3c19zZGsiLCAiaW5pdF9nZXRCZWFyZXJUb2tlbkVudktleSIsICJpbXBvcnRfc2NoZW1hIiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgIlByb3RvY29sTGliIiwgImluaXRfUHJvdG9jb2xMaWIiLCAiX19lc21NaW4iLCAicXVlcnlDb21wYXQiLCAiZGVmYXVsdENvbnRlbnRUeXBlIiwgImlucHV0U2NoZW1hIiwgIm1lbWJlcnMiLCAiaHR0cFBheWxvYWRNZW1iZXIiLCAibSIsICJtZWRpYVR5cGUiLCAiaHR0cFF1ZXJ5IiwgImh0dHBRdWVyeVBhcmFtcyIsICJodHRwSGVhZGVyIiwgImh0dHBMYWJlbCIsICJodHRwUHJlZml4SGVhZGVycyIsICJlcnJvcklkZW50aWZpZXIiLCAiZGVmYXVsdE5hbWVzcGFjZSIsICJyZXNwb25zZSIsICJkYXRhT2JqZWN0IiwgIm1ldGFkYXRhIiwgImdldEVycm9yU2NoZW1hIiwgImVycm9yTmFtZSIsICJlcnJvck1ldGFkYXRhIiwgInN5bnRoZXRpYyIsICJiYXNlRXhjZXB0aW9uU2NoZW1hIiwgIkVycm9yQ3RvciIsICJkIiwgIm1lc3NhZ2UiLCAiY29tcG9zaXRlIiwgIm5hbWVzcGFjZSIsICJzdGF0aWNSZWdpc3RyeSIsICJkZWZhdWx0U3ludGhldGljUmVnaXN0cnkiLCAiZXhjZXB0aW9uIiwgImFkZGl0aW9ucyIsICJtc2ciLCAiZXJyb3IiLCAiZXJyb3JPYmoiLCAicmVxSWQiLCAib3V0cHV0IiwgInF1ZXJ5RXJyb3JIZWFkZXIiLCAiQ29kZSIsICJUeXBlIiwgImtleXMiLCAiRXJyb3IiLCAiaSIsICJrIiwgInF1ZXJ5Q29tcGF0RXJyb3JEYXRhIiwgImVycm9yRGF0YSIsICJyZWdpc3RyeSIsICJzY2hlbWEiLCAiaW1wb3J0X2Nib3IiLCAiaW1wb3J0X3NjaGVtYSIsICJBd3NTbWl0aHlScGNWMkNib3JQcm90b2NvbCIsICJpbml0X0F3c1NtaXRoeVJwY1YyQ2JvclByb3RvY29sIiwgIl9fZXNtTWluIiwgImluaXRfUHJvdG9jb2xMaWIiLCAiZGVmYXVsdE5hbWVzcGFjZSIsICJlcnJvclR5cGVSZWdpc3RyaWVzIiwgImF3c1F1ZXJ5Q29tcGF0aWJsZSIsICJQcm90b2NvbExpYiIsICJvcGVyYXRpb25TY2hlbWEiLCAiaW5wdXQiLCAiY29udGV4dCIsICJyZXF1ZXN0IiwgInJlc3BvbnNlIiwgImRhdGFPYmplY3QiLCAibWV0YWRhdGEiLCAiZXJyb3JOYW1lIiwgImNvbXBhdEhlYWRlciIsICJlcnJvclNjaGVtYSIsICJlcnJvck1ldGFkYXRhIiwgIm5zIiwgIm1lc3NhZ2UiLCAiRXJyb3JDdG9yIiwgImV4Y2VwdGlvbiIsICJvdXRwdXQiLCAibmFtZSIsICJtZW1iZXIiLCAiX3RvU3RyIiwgIl90b0Jvb2wiLCAiX3RvTnVtIiwgImluaXRfY29lcmNpbmdfc2VyaWFsaXplcnMiLCAiX19lc21NaW4iLCAidmFsIiwgIndhcm5pbmciLCAibG93ZXJjYXNlIiwgIm51bSIsICJTZXJkZUNvbnRleHRDb25maWciLCAiaW5pdF9Db25maWd1cmFibGVTZXJkZUNvbnRleHQiLCAiX19lc21NaW4iLCAic2VyZGVDb250ZXh0IiwgIlVuaW9uU2VyZGUiLCAiaW5pdF9VbmlvblNlcmRlIiwgIl9fZXNtTWluIiwgImZyb20iLCAidG8iLCAia2V5cyIsICJzZXQiLCAia2V5IiwgImsiLCAidiIsICJqc29uUmV2aXZlciIsICJrZXkiLCAidmFsdWUiLCAiY29udGV4dCIsICJudW1lcmljU3RyaW5nIiwgImltcG9ydF9zZXJkZSIsICJpbml0X2pzb25SZXZpdmVyIiwgIl9fZXNtTWluIiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgImltcG9ydF91dGlsX3V0ZjgiLCAiY29sbGVjdEJvZHlTdHJpbmciLCAiaW5pdF9jb21tb24iLCAiX19lc21NaW4iLCAic3RyZWFtQm9keSIsICJjb250ZXh0IiwgImJvZHkiLCAicGFyc2VKc29uQm9keSIsICJwYXJzZUpzb25FcnJvckJvZHkiLCAiZmluZEtleSIsICJzYW5pdGl6ZUVycm9yQ29kZSIsICJsb2FkUmVzdEpzb25FcnJvckNvZGUiLCAiaW5pdF9wYXJzZUpzb25Cb2R5IiwgIl9fZXNtTWluIiwgImluaXRfY29tbW9uIiwgInN0cmVhbUJvZHkiLCAiY29udGV4dCIsICJjb2xsZWN0Qm9keVN0cmluZyIsICJlbmNvZGVkIiwgImUiLCAiZXJyb3JCb2R5IiwgInZhbHVlIiwgIm9iamVjdCIsICJrZXkiLCAiayIsICJyYXdWYWx1ZSIsICJjbGVhblZhbHVlIiwgIm91dHB1dCIsICJkYXRhIiwgImhlYWRlcktleSIsICJjb2RlS2V5IiwgImltcG9ydF9wcm90b2NvbHMiLCAiaW1wb3J0X3NjaGVtYSIsICJpbXBvcnRfc2VyZGUiLCAiaW1wb3J0X3V0aWxfYmFzZTY0IiwgIkpzb25TaGFwZURlc2VyaWFsaXplciIsICJpbml0X0pzb25TaGFwZURlc2VyaWFsaXplciIsICJfX2VzbU1pbiIsICJpbml0X0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dCIsICJpbml0X1VuaW9uU2VyZGUiLCAiaW5pdF9qc29uUmV2aXZlciIsICJpbml0X3BhcnNlSnNvbkJvZHkiLCAiU2VyZGVDb250ZXh0Q29uZmlnIiwgInNldHRpbmdzIiwgInNjaGVtYSIsICJkYXRhIiwgImpzb25SZXZpdmVyIiwgInBhcnNlSnNvbkJvZHkiLCAidmFsdWUiLCAiaXNPYmplY3QiLCAibnMiLCAicmVjb3JkIiwgInVuaW9uIiwgIm91dCIsICJuYW1lTWFwIiwgImpzb25OYW1lIiwgInVuaW9uU2VyZGUiLCAiVW5pb25TZXJkZSIsICJtZW1iZXJOYW1lIiwgIm1lbWJlclNjaGVtYSIsICJmcm9tS2V5IiwgImsiLCAidiIsICJ0IiwgImxpc3RNZW1iZXIiLCAiaXRlbSIsICJtYXBNZW1iZXIiLCAiX2siLCAibWVkaWFUeXBlIiwgInVudHlwZWQiLCAiaW1wb3J0X3NlcmRlIiwgIk5VTUVSSUNfQ09OVFJPTF9DSEFSIiwgIkpzb25SZXBsYWNlciIsICJpbml0X2pzb25SZXBsYWNlciIsICJfX2VzbU1pbiIsICJrZXkiLCAidmFsdWUiLCAidiIsICJzIiwgImpzb24iLCAiaW1wb3J0X3Byb3RvY29scyIsICJpbXBvcnRfc2NoZW1hIiwgImltcG9ydF9zZXJkZSIsICJpbXBvcnRfdXRpbF9iYXNlNjQiLCAiSnNvblNoYXBlU2VyaWFsaXplciIsICJpbml0X0pzb25TaGFwZVNlcmlhbGl6ZXIiLCAiX19lc21NaW4iLCAiaW5pdF9Db25maWd1cmFibGVTZXJkZUNvbnRleHQiLCAiaW5pdF9qc29uUmVwbGFjZXIiLCAiU2VyZGVDb250ZXh0Q29uZmlnIiwgInNldHRpbmdzIiwgInNjaGVtYSIsICJ2YWx1ZSIsICJyb290U2NoZW1hIiwgInVzZVJlcGxhY2VyIiwgInJlcGxhY2VyIiwgIkpzb25SZXBsYWNlciIsICJjb250YWluZXIiLCAiaXNPYmplY3QiLCAibnMiLCAicmVjb3JkIiwgIm91dCIsICJqc29uTmFtZSIsICJuYW1lTWFwIiwgIm91dENvdW50IiwgIm1lbWJlck5hbWUiLCAibWVtYmVyU2NoZW1hIiwgInNlcmlhbGl6YWJsZVZhbHVlIiwgInRhcmdldEtleSIsICIkdW5rbm93biIsICJrIiwgInYiLCAibGlzdE1lbWJlciIsICJzcGFyc2UiLCAiaXRlbSIsICJtYXBNZW1iZXIiLCAiX2siLCAiX3YiLCAibWVkaWFUeXBlIiwgIkpzb25Db2RlYyIsICJpbml0X0pzb25Db2RlYyIsICJfX2VzbU1pbiIsICJpbml0X0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dCIsICJpbml0X0pzb25TaGFwZURlc2VyaWFsaXplciIsICJpbml0X0pzb25TaGFwZVNlcmlhbGl6ZXIiLCAiU2VyZGVDb250ZXh0Q29uZmlnIiwgInNldHRpbmdzIiwgInNlcmlhbGl6ZXIiLCAiSnNvblNoYXBlU2VyaWFsaXplciIsICJkZXNlcmlhbGl6ZXIiLCAiSnNvblNoYXBlRGVzZXJpYWxpemVyIiwgImltcG9ydF9wcm90b2NvbHMiLCAiaW1wb3J0X3NjaGVtYSIsICJBd3NKc29uUnBjUHJvdG9jb2wiLCAiaW5pdF9Bd3NKc29uUnBjUHJvdG9jb2wiLCAiX19lc21NaW4iLCAiaW5pdF9Qcm90b2NvbExpYiIsICJpbml0X0pzb25Db2RlYyIsICJpbml0X3BhcnNlSnNvbkJvZHkiLCAiZGVmYXVsdE5hbWVzcGFjZSIsICJlcnJvclR5cGVSZWdpc3RyaWVzIiwgInNlcnZpY2VUYXJnZXQiLCAiYXdzUXVlcnlDb21wYXRpYmxlIiwgImpzb25Db2RlYyIsICJKc29uQ29kZWMiLCAiUHJvdG9jb2xMaWIiLCAib3BlcmF0aW9uU2NoZW1hIiwgImlucHV0IiwgImNvbnRleHQiLCAicmVxdWVzdCIsICJyZXNwb25zZSIsICJkYXRhT2JqZWN0IiwgIm1ldGFkYXRhIiwgImVycm9ySWRlbnRpZmllciIsICJsb2FkUmVzdEpzb25FcnJvckNvZGUiLCAiZXJyb3JTY2hlbWEiLCAiZXJyb3JNZXRhZGF0YSIsICJucyIsICJtZXNzYWdlIiwgIkVycm9yQ3RvciIsICJleGNlcHRpb24iLCAib3V0cHV0IiwgImVycm9yRGVzZXJpYWxpemVyIiwgIm5hbWUiLCAibWVtYmVyIiwgIkF3c0pzb24xXzBQcm90b2NvbCIsICJpbml0X0F3c0pzb24xXzBQcm90b2NvbCIsICJfX2VzbU1pbiIsICJpbml0X0F3c0pzb25ScGNQcm90b2NvbCIsICJBd3NKc29uUnBjUHJvdG9jb2wiLCAiZGVmYXVsdE5hbWVzcGFjZSIsICJlcnJvclR5cGVSZWdpc3RyaWVzIiwgInNlcnZpY2VUYXJnZXQiLCAiYXdzUXVlcnlDb21wYXRpYmxlIiwgImpzb25Db2RlYyIsICJBd3NKc29uMV8xUHJvdG9jb2wiLCAiaW5pdF9Bd3NKc29uMV8xUHJvdG9jb2wiLCAiX19lc21NaW4iLCAiaW5pdF9Bd3NKc29uUnBjUHJvdG9jb2wiLCAiQXdzSnNvblJwY1Byb3RvY29sIiwgImRlZmF1bHROYW1lc3BhY2UiLCAiZXJyb3JUeXBlUmVnaXN0cmllcyIsICJzZXJ2aWNlVGFyZ2V0IiwgImF3c1F1ZXJ5Q29tcGF0aWJsZSIsICJqc29uQ29kZWMiLCAiaW1wb3J0X3Byb3RvY29scyIsICJpbXBvcnRfc2NoZW1hIiwgIkF3c1Jlc3RKc29uUHJvdG9jb2wiLCAiaW5pdF9Bd3NSZXN0SnNvblByb3RvY29sIiwgIl9fZXNtTWluIiwgImluaXRfUHJvdG9jb2xMaWIiLCAiaW5pdF9Kc29uQ29kZWMiLCAiaW5pdF9wYXJzZUpzb25Cb2R5IiwgIlByb3RvY29sTGliIiwgImRlZmF1bHROYW1lc3BhY2UiLCAiZXJyb3JUeXBlUmVnaXN0cmllcyIsICJzZXR0aW5ncyIsICJKc29uQ29kZWMiLCAic2VyZGVDb250ZXh0IiwgIm9wZXJhdGlvblNjaGVtYSIsICJpbnB1dCIsICJjb250ZXh0IiwgInJlcXVlc3QiLCAiaW5wdXRTY2hlbWEiLCAiY29udGVudFR5cGUiLCAicmVzcG9uc2UiLCAib3V0cHV0IiwgIm91dHB1dFNjaGVtYSIsICJuYW1lIiwgIm1lbWJlciIsICJkYXRhT2JqZWN0IiwgIm1ldGFkYXRhIiwgImVycm9ySWRlbnRpZmllciIsICJsb2FkUmVzdEpzb25FcnJvckNvZGUiLCAiZXJyb3JTY2hlbWEiLCAiZXJyb3JNZXRhZGF0YSIsICJucyIsICJtZXNzYWdlIiwgIkVycm9yQ3RvciIsICJleGNlcHRpb24iLCAiZXJyb3JEZXNlcmlhbGl6ZXIiLCAidGFyZ2V0IiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgImF3c0V4cGVjdFVuaW9uIiwgImluaXRfYXdzRXhwZWN0VW5pb24iLCAiX19lc21NaW4iLCAidmFsdWUiLCAicmVxdWlyZV9ub2RhYmxlX2VudGl0aWVzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJTUEVDSUFMX0NIQVJTIiwgInZhbGlkYXRlRW50aXR5TmFtZSIsICJuYW1lIiwgImNoIiwgIm1lcmdlRW50aXR5TWFwcyIsICJtYXBzIiwgIm91dCIsICJtYXAiLCAia2V5IiwgInJhdyIsICJ2YWwiLCAiTElNSVRfVElFUl9FWFRFUk5BTCIsICJMSU1JVF9USUVSX0JBU0UiLCAiTElNSVRfVElFUl9BTEwiLCAicGFyc2VMaW1pdFRpZXJzIiwgIk5DUl9MRVZFTCIsICJYTUwxMF9BTExPV0VEX0MwIiwgInBhcnNlTkNSQ29uZmlnIiwgIm5jciIsICJ4bWxWZXJzaW9uIiwgIm9uTGV2ZWwiLCAibnVsbExldmVsIiwgImNsYW1wZWROdWxsIiwgIkVudGl0eURlY29kZXJJbXBsIiwgIm9wdGlvbnMiLCAiciIsICJuY3JDZmciLCAidmFsdWUiLCAidmVyc2lvbiIsICJzdHIiLCAib3JpZ2luYWwiLCAiY2h1bmtzIiwgImxlbiIsICJsYXN0IiwgImxpbWl0RXhwYW5zaW9ucyIsICJsaW1pdExlbmd0aCIsICJjaGVja0xpbWl0cyIsICJqIiwgInRva2VuIiwgInJlcGxhY2VtZW50IiwgInRpZXIiLCAibmNyUmVzdWx0IiwgInJlc29sdmVkIiwgImRlbHRhIiwgInJlc3VsdCIsICJjcCIsICJhY3Rpb24iLCAic2Vjb25kIiwgIm1pbmltdW0iLCAiZWZmZWN0aXZlIiwgInJlcXVpcmVfeG1sX3BhcnNlciIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAicGFyc2VYTUwiLCAiZmFzdF94bWxfcGFyc2VyXzEiLCAibm9kYWJsZV9lbnRpdGllc18xIiwgImVudGl0eURlY29kZXIiLCAicGFyc2VyIiwgImVudGl0aWVzIiwgInRleHQiLCAidmVyc2lvbiIsICJfIiwgInZhbCIsICJ4bWxTdHJpbmciLCAicmVxdWlyZV9kaXN0X2NqcyIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAieG1sUGFyc2VyIiwgIkFUVFJfRVNDQVBFX1JFIiwgIkFUVFJfRVNDQVBFX01BUCIsICJlc2NhcGVBdHRyaWJ1dGUiLCAidmFsdWUiLCAiY2giLCAiRUxFTUVOVF9FU0NBUEVfUkUiLCAiRUxFTUVOVF9FU0NBUEVfTUFQIiwgImVzY2FwZUVsZW1lbnQiLCAiWG1sVGV4dCIsICJYbWxOb2RlIiwgIl9YbWxOb2RlIiwgIm5hbWUiLCAiY2hpbGRUZXh0IiwgIndpdGhOYW1lIiwgIm5vZGUiLCAiY2hpbGRyZW4iLCAiY2hpbGQiLCAiaW5wdXQiLCAiZmllbGQiLCAibGlzdE5hbWUiLCAibWVtYmVyTmFtZSIsICJ2YWx1ZVByb3ZpZGVyIiwgIm5vZGVzIiwgImNvbnRhaW5lck5vZGUiLCAiaGFzQ2hpbGRyZW4iLCAieG1sVGV4dCIsICJhdHRyaWJ1dGVzIiwgImF0dHJpYnV0ZU5hbWUiLCAiYXR0cmlidXRlIiwgImMiLCAiaW1wb3J0X3htbF9idWlsZGVyIiwgImltcG9ydF9wcm90b2NvbHMiLCAiaW1wb3J0X3NjaGVtYSIsICJpbXBvcnRfc21pdGh5X2NsaWVudCIsICJpbXBvcnRfdXRpbF91dGY4IiwgIlhtbFNoYXBlRGVzZXJpYWxpemVyIiwgImluaXRfWG1sU2hhcGVEZXNlcmlhbGl6ZXIiLCAiX19lc21NaW4iLCAiaW5pdF9Db25maWd1cmFibGVTZXJkZUNvbnRleHQiLCAiaW5pdF9VbmlvblNlcmRlIiwgIlNlcmRlQ29udGV4dENvbmZpZyIsICJzZXR0aW5ncyIsICJzZXJkZUNvbnRleHQiLCAic2NoZW1hIiwgImJ5dGVzIiwgImtleSIsICJucyIsICJtZW1iZXJTY2hlbWFzIiwgIm1lbWJlck5zIiwgIm91dHB1dCIsICJtZW1iZXJOYW1lIiwgInhtbFN0cmluZyIsICJwYXJzZWRPYmplY3QiLCAiX3NjaGVtYSIsICJ2YWx1ZSIsICJ0cmFpdHMiLCAiZmxhdCIsICJsaXN0VmFsdWUiLCAiYnVmZmVyIiwgInNvdXJjZUtleSIsICJzb3VyY2UiLCAic291cmNlQXJyYXkiLCAidiIsICJrZXlOcyIsICJlbnRyaWVzIiwgImtleVByb3BlcnR5IiwgInZhbHVlUHJvcGVydHkiLCAiZW50cnkiLCAidW5pb24iLCAidW5pb25TZXJkZSIsICJVbmlvblNlcmRlIiwgIm1lbWJlclNjaGVtYSIsICJtZW1iZXJUcmFpdHMiLCAieG1sT2JqZWN0S2V5IiwgInhtbCIsICJwYXJzZWRPYmoiLCAiZSIsICJ0ZXh0Tm9kZU5hbWUiLCAicGFyc2VkT2JqVG9SZXR1cm4iLCAiaW1wb3J0X3Byb3RvY29scyIsICJpbXBvcnRfc2NoZW1hIiwgImltcG9ydF9zZXJkZSIsICJpbXBvcnRfc21pdGh5X2NsaWVudCIsICJpbXBvcnRfdXRpbF9iYXNlNjQiLCAiUXVlcnlTaGFwZVNlcmlhbGl6ZXIiLCAiaW5pdF9RdWVyeVNoYXBlU2VyaWFsaXplciIsICJfX2VzbU1pbiIsICJpbml0X0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dCIsICJTZXJkZUNvbnRleHRDb25maWciLCAic2V0dGluZ3MiLCAic2NoZW1hIiwgInZhbHVlIiwgInByZWZpeCIsICJucyIsICJtZW1iZXIiLCAiZmxhdCIsICJpIiwgIml0ZW0iLCAidHJhaXRzIiwgInN1ZmZpeCIsICJrZXkiLCAia2V5U2NoZW1hIiwgIm1lbWJlclNjaGVtYSIsICJrIiwgInYiLCAia2V5VHJhaXRzIiwgImtleVN1ZmZpeCIsICJ2YWxUcmFpdHMiLCAidmFsdWVTdWZmaXgiLCAidmFsdWVLZXkiLCAiZGlkV3JpdGVNZW1iZXIiLCAibWVtYmVyTmFtZSIsICIkdW5rbm93biIsICJzdHIiLCAieG1sTmFtZSIsICJlYzJRdWVyeU5hbWUiLCAia2V5U291cmNlIiwgImVjMiIsICJjYXBpdGFsaXplS2V5cyIsICJpbXBvcnRfcHJvdG9jb2xzIiwgImltcG9ydF9zY2hlbWEiLCAiQXdzUXVlcnlQcm90b2NvbCIsICJpbml0X0F3c1F1ZXJ5UHJvdG9jb2wiLCAiX19lc21NaW4iLCAiaW5pdF9Qcm90b2NvbExpYiIsICJpbml0X1htbFNoYXBlRGVzZXJpYWxpemVyIiwgImluaXRfUXVlcnlTaGFwZVNlcmlhbGl6ZXIiLCAiUHJvdG9jb2xMaWIiLCAib3B0aW9ucyIsICJzZXR0aW5ncyIsICJRdWVyeVNoYXBlU2VyaWFsaXplciIsICJYbWxTaGFwZURlc2VyaWFsaXplciIsICJzZXJkZUNvbnRleHQiLCAib3BlcmF0aW9uU2NoZW1hIiwgImlucHV0IiwgImNvbnRleHQiLCAicmVxdWVzdCIsICJhY3Rpb24iLCAicmVzcG9uc2UiLCAiZGVzZXJpYWxpemVyIiwgIm5zIiwgImRhdGFPYmplY3QiLCAiYnl0ZXMiLCAiaGVhZGVyIiwgInZhbHVlIiwgInNob3J0TmFtZSIsICJhd3NRdWVyeVJlc3VsdEtleSIsICJtZXRhZGF0YSIsICJlcnJvcklkZW50aWZpZXIiLCAiZXJyb3JEYXRhIiwgIm1lc3NhZ2UiLCAiZXJyb3JTY2hlbWEiLCAiZXJyb3JNZXRhZGF0YSIsICJFcnJvckN0b3IiLCAiZXhjZXB0aW9uIiwgIm91dHB1dCIsICJuYW1lIiwgIm1lbWJlciIsICJ0YXJnZXQiLCAiZGF0YSIsICJjb2RlIiwgIkF3c0VjMlF1ZXJ5UHJvdG9jb2wiLCAiaW5pdF9Bd3NFYzJRdWVyeVByb3RvY29sIiwgIl9fZXNtTWluIiwgImluaXRfQXdzUXVlcnlQcm90b2NvbCIsICJBd3NRdWVyeVByb3RvY29sIiwgIm9wdGlvbnMiLCAiZWMyU2V0dGluZ3MiLCAiaW5pdF9RdWVyeVNlcmlhbGl6ZXJTZXR0aW5ncyIsICJfX2VzbU1pbiIsICJpbXBvcnRfeG1sX2J1aWxkZXIiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAicGFyc2VYbWxCb2R5IiwgInBhcnNlWG1sRXJyb3JCb2R5IiwgImxvYWRSZXN0WG1sRXJyb3JDb2RlIiwgImluaXRfcGFyc2VYbWxCb2R5IiwgIl9fZXNtTWluIiwgImluaXRfY29tbW9uIiwgInN0cmVhbUJvZHkiLCAiY29udGV4dCIsICJjb2xsZWN0Qm9keVN0cmluZyIsICJlbmNvZGVkIiwgInBhcnNlZE9iaiIsICJlIiwgInRleHROb2RlTmFtZSIsICJrZXkiLCAicGFyc2VkT2JqVG9SZXR1cm4iLCAiZXJyb3JCb2R5IiwgInZhbHVlIiwgIm91dHB1dCIsICJkYXRhIiwgImltcG9ydF94bWxfYnVpbGRlciIsICJpbXBvcnRfcHJvdG9jb2xzIiwgImltcG9ydF9zY2hlbWEiLCAiaW1wb3J0X3NlcmRlIiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgImltcG9ydF91dGlsX2Jhc2U2NCIsICJYbWxTaGFwZVNlcmlhbGl6ZXIiLCAiaW5pdF9YbWxTaGFwZVNlcmlhbGl6ZXIiLCAiX19lc21NaW4iLCAiaW5pdF9Db25maWd1cmFibGVTZXJkZUNvbnRleHQiLCAiU2VyZGVDb250ZXh0Q29uZmlnIiwgInNldHRpbmdzIiwgInNjaGVtYSIsICJ2YWx1ZSIsICJucyIsICJ0cmFpdHMiLCAiYnl0ZXMiLCAic3RyIiwgImJ1ZmZlciIsICJwYXJlbnRYbWxucyIsICJuYW1lIiwgInN0cnVjdFhtbE5vZGUiLCAieG1sbnNBdHRyIiwgInhtbG5zIiwgIm1lbWJlck5hbWUiLCAibWVtYmVyU2NoZW1hIiwgInZhbCIsICJtZW1iZXJOb2RlIiwgIiR1bmtub3duIiwgImsiLCAidiIsICJub2RlIiwgImxpc3RNZW1iZXIiLCAiYXJyYXkiLCAiY29udGFpbmVyIiwgImxpc3RUcmFpdHMiLCAibGlzdFZhbHVlU2NoZW1hIiwgImxpc3RWYWx1ZVRyYWl0cyIsICJzcGFyc2UiLCAiZmxhdCIsICJ3cml0ZUl0ZW0iLCAic3RydWN0IiwgImxpc3RJdGVtTm9kZSIsICJsaXN0Tm9kZSIsICJtYXBNZW1iZXIiLCAibWFwIiwgImNvbnRhaW5lcklzTWFwIiwgIm1hcFRyYWl0cyIsICJtYXBLZXlTY2hlbWEiLCAia2V5VGFnIiwgIm1hcFZhbHVlU2NoZW1hIiwgIm1hcFZhbHVlVHJhaXRzIiwgInZhbHVlVGFnIiwgImFkZEtleVZhbHVlIiwgImVudHJ5IiwgImtleSIsICJrZXlOb2RlIiwgImtleVhtbG5zQXR0ciIsICJrZXlYbWxucyIsICJ2YWx1ZU5vZGUiLCAibWFwTm9kZSIsICJfc2NoZW1hIiwgIm5vZGVDb250ZW50cyIsICJpbnRvIiwgImNvbnRlbnQiLCAicHJlZml4IiwgIlhtbENvZGVjIiwgImluaXRfWG1sQ29kZWMiLCAiX19lc21NaW4iLCAiaW5pdF9Db25maWd1cmFibGVTZXJkZUNvbnRleHQiLCAiaW5pdF9YbWxTaGFwZURlc2VyaWFsaXplciIsICJpbml0X1htbFNoYXBlU2VyaWFsaXplciIsICJTZXJkZUNvbnRleHRDb25maWciLCAic2V0dGluZ3MiLCAic2VyaWFsaXplciIsICJYbWxTaGFwZVNlcmlhbGl6ZXIiLCAiZGVzZXJpYWxpemVyIiwgIlhtbFNoYXBlRGVzZXJpYWxpemVyIiwgImltcG9ydF9wcm90b2NvbHMiLCAiaW1wb3J0X3NjaGVtYSIsICJBd3NSZXN0WG1sUHJvdG9jb2wiLCAiaW5pdF9Bd3NSZXN0WG1sUHJvdG9jb2wiLCAiX19lc21NaW4iLCAiaW5pdF9Qcm90b2NvbExpYiIsICJpbml0X3BhcnNlWG1sQm9keSIsICJpbml0X1htbENvZGVjIiwgIlByb3RvY29sTGliIiwgIm9wdGlvbnMiLCAic2V0dGluZ3MiLCAiWG1sQ29kZWMiLCAib3BlcmF0aW9uU2NoZW1hIiwgImlucHV0IiwgImNvbnRleHQiLCAicmVxdWVzdCIsICJpbnB1dFNjaGVtYSIsICJjb250ZW50VHlwZSIsICJyZXNwb25zZSIsICJkYXRhT2JqZWN0IiwgIm1ldGFkYXRhIiwgImVycm9ySWRlbnRpZmllciIsICJsb2FkUmVzdFhtbEVycm9yQ29kZSIsICJrZXkiLCAiZXJyb3JTY2hlbWEiLCAiZXJyb3JNZXRhZGF0YSIsICJucyIsICJtZXNzYWdlIiwgIkVycm9yQ3RvciIsICJleGNlcHRpb24iLCAib3V0cHV0IiwgImVycm9yRGVzZXJpYWxpemVyIiwgIm5hbWUiLCAibWVtYmVyIiwgInRhcmdldCIsICJ2YWx1ZSIsICJwcm90b2NvbHNfZXhwb3J0cyIsICJfX2V4cG9ydCIsICJBd3NFYzJRdWVyeVByb3RvY29sIiwgIkF3c0pzb24xXzBQcm90b2NvbCIsICJBd3NKc29uMV8xUHJvdG9jb2wiLCAiQXdzSnNvblJwY1Byb3RvY29sIiwgIkF3c1F1ZXJ5UHJvdG9jb2wiLCAiQXdzUmVzdEpzb25Qcm90b2NvbCIsICJBd3NSZXN0WG1sUHJvdG9jb2wiLCAiQXdzU21pdGh5UnBjVjJDYm9yUHJvdG9jb2wiLCAiSnNvbkNvZGVjIiwgIkpzb25TaGFwZURlc2VyaWFsaXplciIsICJKc29uU2hhcGVTZXJpYWxpemVyIiwgIlF1ZXJ5U2hhcGVTZXJpYWxpemVyIiwgIlhtbENvZGVjIiwgIlhtbFNoYXBlRGVzZXJpYWxpemVyIiwgIlhtbFNoYXBlU2VyaWFsaXplciIsICJfdG9Cb29sIiwgIl90b051bSIsICJfdG9TdHIiLCAiYXdzRXhwZWN0VW5pb24iLCAibG9hZFJlc3RKc29uRXJyb3JDb2RlIiwgImxvYWRSZXN0WG1sRXJyb3JDb2RlIiwgInBhcnNlSnNvbkJvZHkiLCAicGFyc2VKc29uRXJyb3JCb2R5IiwgInBhcnNlWG1sQm9keSIsICJwYXJzZVhtbEVycm9yQm9keSIsICJpbml0X3Byb3RvY29scyIsICJfX2VzbU1pbiIsICJpbml0X0F3c1NtaXRoeVJwY1YyQ2JvclByb3RvY29sIiwgImluaXRfY29lcmNpbmdfc2VyaWFsaXplcnMiLCAiaW5pdF9Bd3NKc29uMV8wUHJvdG9jb2wiLCAiaW5pdF9Bd3NKc29uMV8xUHJvdG9jb2wiLCAiaW5pdF9Bd3NKc29uUnBjUHJvdG9jb2wiLCAiaW5pdF9Bd3NSZXN0SnNvblByb3RvY29sIiwgImluaXRfSnNvbkNvZGVjIiwgImluaXRfSnNvblNoYXBlRGVzZXJpYWxpemVyIiwgImluaXRfSnNvblNoYXBlU2VyaWFsaXplciIsICJpbml0X2F3c0V4cGVjdFVuaW9uIiwgImluaXRfcGFyc2VKc29uQm9keSIsICJpbml0X0F3c0VjMlF1ZXJ5UHJvdG9jb2wiLCAiaW5pdF9Bd3NRdWVyeVByb3RvY29sIiwgImluaXRfUXVlcnlTZXJpYWxpemVyU2V0dGluZ3MiLCAiaW5pdF9RdWVyeVNoYXBlU2VyaWFsaXplciIsICJpbml0X0F3c1Jlc3RYbWxQcm90b2NvbCIsICJpbml0X1htbENvZGVjIiwgImluaXRfWG1sU2hhcGVEZXNlcmlhbGl6ZXIiLCAiaW5pdF9YbWxTaGFwZVNlcmlhbGl6ZXIiLCAiaW5pdF9wYXJzZVhtbEJvZHkiLCAiZGlzdF9lc19leHBvcnRzIiwgIl9fZXhwb3J0IiwgIkFXU1NES1NpZ1Y0U2lnbmVyIiwgIkF3c0VjMlF1ZXJ5UHJvdG9jb2wiLCAiQXdzSnNvbjFfMFByb3RvY29sIiwgIkF3c0pzb24xXzFQcm90b2NvbCIsICJBd3NKc29uUnBjUHJvdG9jb2wiLCAiQXdzUXVlcnlQcm90b2NvbCIsICJBd3NSZXN0SnNvblByb3RvY29sIiwgIkF3c1Jlc3RYbWxQcm90b2NvbCIsICJBd3NTZGtTaWdWNEFTaWduZXIiLCAiQXdzU2RrU2lnVjRTaWduZXIiLCAiQXdzU21pdGh5UnBjVjJDYm9yUHJvdG9jb2wiLCAiSnNvbkNvZGVjIiwgIkpzb25TaGFwZURlc2VyaWFsaXplciIsICJKc29uU2hhcGVTZXJpYWxpemVyIiwgIk5PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9PUFRJT05TIiwgIk5PREVfU0lHVjRBX0NPTkZJR19PUFRJT05TIiwgIlF1ZXJ5U2hhcGVTZXJpYWxpemVyIiwgIlhtbENvZGVjIiwgIlhtbFNoYXBlRGVzZXJpYWxpemVyIiwgIlhtbFNoYXBlU2VyaWFsaXplciIsICJfdG9Cb29sIiwgIl90b051bSIsICJfdG9TdHIiLCAiYXdzRXhwZWN0VW5pb24iLCAiZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbiIsICJnZXRCZWFyZXJUb2tlbkVudktleSIsICJnZXRMb25nUG9sbFBsdWdpbiIsICJsb2FkUmVzdEpzb25FcnJvckNvZGUiLCAibG9hZFJlc3RYbWxFcnJvckNvZGUiLCAicGFyc2VKc29uQm9keSIsICJwYXJzZUpzb25FcnJvckJvZHkiLCAicGFyc2VYbWxCb2R5IiwgInBhcnNlWG1sRXJyb3JCb2R5IiwgInJlc29sdmVBV1NTREtTaWdWNENvbmZpZyIsICJyZXNvbHZlQXdzU2RrU2lnVjRBQ29uZmlnIiwgInJlc29sdmVBd3NTZGtTaWdWNENvbmZpZyIsICJzZXRDcmVkZW50aWFsRmVhdHVyZSIsICJzZXRGZWF0dXJlIiwgInNldFRva2VuRmVhdHVyZSIsICJzdGF0ZSIsICJ2YWxpZGF0ZVNpZ25pbmdQcm9wZXJ0aWVzIiwgImluaXRfZGlzdF9lcyIsICJfX2VzbU1pbiIsICJpbml0X2NsaWVudCIsICJpbml0X2h0dHBBdXRoU2NoZW1lcyIsICJpbml0X3Byb3RvY29scyIsICJyZXF1aXJlX2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgImNvcmVfMSIsICJ1dGlsX21pZGRsZXdhcmVfMSIsICJkZWZhdWx0U2VjcmV0c01hbmFnZXJIdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlciIsICJjb25maWciLCAiY29udGV4dCIsICJpbnB1dCIsICJjcmVhdGVBd3NBdXRoU2lndjRIdHRwQXV0aE9wdGlvbiIsICJhdXRoUGFyYW1ldGVycyIsICJkZWZhdWx0U2VjcmV0c01hbmFnZXJIdHRwQXV0aFNjaGVtZVByb3ZpZGVyIiwgIm9wdGlvbnMiLCAicmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnIiwgImNvbmZpZ18wIiwgInJlcXVpcmVfcGFja2FnZSIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgInJlcXVpcmVfZGlzdF9janMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgImNsaWVudCIsICJwcm9wZXJ0eVByb3ZpZGVyIiwgIkVOVl9LRVkiLCAiRU5WX1NFQ1JFVCIsICJFTlZfU0VTU0lPTiIsICJFTlZfRVhQSVJBVElPTiIsICJFTlZfQ1JFREVOVElBTF9TQ09QRSIsICJFTlZfQUNDT1VOVF9JRCIsICJmcm9tRW52IiwgImluaXQiLCAiYWNjZXNzS2V5SWQiLCAic2VjcmV0QWNjZXNzS2V5IiwgInNlc3Npb25Ub2tlbiIsICJleHBpcnkiLCAiY3JlZGVudGlhbFNjb3BlIiwgImFjY291bnRJZCIsICJjcmVkZW50aWFscyIsICJyZXF1aXJlX2NoZWNrVXJsIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJwcm9wZXJ0eV9wcm92aWRlcl8xIiwgIkVDU19DT05UQUlORVJfSE9TVCIsICJFS1NfQ09OVEFJTkVSX0hPU1RfSVB2NCIsICJFS1NfQ09OVEFJTkVSX0hPU1RfSVB2NiIsICJjaGVja1VybCIsICJ1cmwiLCAibG9nZ2VyIiwgImlwQ29tcG9uZW50cyIsICJpblJhbmdlIiwgImNvbXBvbmVudCIsICJudW0iLCAicmVxdWlyZV9yZXF1ZXN0SGVscGVycyIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAiY3JlYXRlR2V0UmVxdWVzdCIsICJnZXRDcmVkZW50aWFscyIsICJwcm9wZXJ0eV9wcm92aWRlcl8xIiwgInByb3RvY29sX2h0dHBfMSIsICJzbWl0aHlfY2xpZW50XzEiLCAidXRpbF9zdHJlYW1fMSIsICJ1cmwiLCAiYWNjIiwgImsiLCAidiIsICJyZXNwb25zZSIsICJsb2dnZXIiLCAic3RyIiwgInBhcnNlZCIsICJwYXJzZWRCb2R5IiwgInJlcXVpcmVfcmV0cnlfd3JhcHBlciIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAicmV0cnlXcmFwcGVyIiwgInRvUmV0cnkiLCAibWF4UmV0cmllcyIsICJkZWxheU1zIiwgImkiLCAicmVzb2x2ZSIsICJyZXF1aXJlX2Zyb21IdHRwIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJ0c2xpYl8xIiwgImNsaWVudF8xIiwgIm5vZGVfaHR0cF9oYW5kbGVyXzEiLCAicHJvcGVydHlfcHJvdmlkZXJfMSIsICJwcm9taXNlc18xIiwgImNoZWNrVXJsXzEiLCAicmVxdWVzdEhlbHBlcnNfMSIsICJyZXRyeV93cmFwcGVyXzEiLCAiQVdTX0NPTlRBSU5FUl9DUkVERU5USUFMU19SRUxBVElWRV9VUkkiLCAiREVGQVVMVF9MSU5LX0xPQ0FMX0hPU1QiLCAiQVdTX0NPTlRBSU5FUl9DUkVERU5USUFMU19GVUxMX1VSSSIsICJBV1NfQ09OVEFJTkVSX0FVVEhPUklaQVRJT05fVE9LRU5fRklMRSIsICJBV1NfQ09OVEFJTkVSX0FVVEhPUklaQVRJT05fVE9LRU4iLCAiZnJvbUh0dHAiLCAib3B0aW9ucyIsICJob3N0IiwgInJlbGF0aXZlIiwgImZ1bGwiLCAidG9rZW4iLCAidG9rZW5GaWxlIiwgIndhcm4iLCAidXJsIiwgInJlcXVlc3RIYW5kbGVyIiwgInJlcXVlc3QiLCAicmVzdWx0IiwgImNyZWRzIiwgImUiLCAicmVxdWlyZV9kaXN0X2NqcyIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAiZnJvbUh0dHBfMSIsICJyZXF1aXJlX2Rpc3RfY2pzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJwcm90b2NvbEh0dHAiLCAicmVzb2x2ZUhvc3RIZWFkZXJDb25maWciLCAiaW5wdXQiLCAiaG9zdEhlYWRlck1pZGRsZXdhcmUiLCAib3B0aW9ucyIsICJuZXh0IiwgImFyZ3MiLCAicmVxdWVzdCIsICJoYW5kbGVyUHJvdG9jb2wiLCAiaG9zdCIsICJob3N0SGVhZGVyTWlkZGxld2FyZU9wdGlvbnMiLCAiZ2V0SG9zdEhlYWRlclBsdWdpbiIsICJjbGllbnRTdGFjayIsICJyZXF1aXJlX2Rpc3RfY2pzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJsb2dnZXJNaWRkbGV3YXJlIiwgIm5leHQiLCAiY29udGV4dCIsICJhcmdzIiwgInJlc3BvbnNlIiwgImNsaWVudE5hbWUiLCAiY29tbWFuZE5hbWUiLCAibG9nZ2VyIiwgImR5bmFtb0RiRG9jdW1lbnRDbGllbnRPcHRpb25zIiwgIm92ZXJyaWRlSW5wdXRGaWx0ZXJTZW5zaXRpdmVMb2ciLCAib3ZlcnJpZGVPdXRwdXRGaWx0ZXJTZW5zaXRpdmVMb2ciLCAiaW5wdXRGaWx0ZXJTZW5zaXRpdmVMb2ciLCAib3V0cHV0RmlsdGVyU2Vuc2l0aXZlTG9nIiwgIiRtZXRhZGF0YSIsICJvdXRwdXRXaXRob3V0TWV0YWRhdGEiLCAiZXJyb3IiLCAibG9nZ2VyTWlkZGxld2FyZU9wdGlvbnMiLCAiZ2V0TG9nZ2VyUGx1Z2luIiwgIm9wdGlvbnMiLCAiY2xpZW50U3RhY2siLCAicmVxdWlyZV9yZWN1cnNpb25EZXRlY3Rpb25NaWRkbGV3YXJlIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJsYW1iZGFfaW52b2tlX3N0b3JlXzEiLCAicHJvdG9jb2xfaHR0cF8xIiwgIlRSQUNFX0lEX0hFQURFUl9OQU1FIiwgIkVOVl9MQU1CREFfRlVOQ1RJT05fTkFNRSIsICJFTlZfVFJBQ0VfSUQiLCAicmVjdXJzaW9uRGV0ZWN0aW9uTWlkZGxld2FyZSIsICJuZXh0IiwgImFyZ3MiLCAicmVxdWVzdCIsICJ0cmFjZUlkSGVhZGVyIiwgImgiLCAiZnVuY3Rpb25OYW1lIiwgInRyYWNlSWRGcm9tRW52IiwgInRyYWNlSWQiLCAibm9uRW1wdHlTdHJpbmciLCAic3RyIiwgInJlcXVpcmVfZGlzdF9janMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgInJlY3Vyc2lvbkRldGVjdGlvbk1pZGRsZXdhcmUiLCAicmVjdXJzaW9uRGV0ZWN0aW9uTWlkZGxld2FyZU9wdGlvbnMiLCAiZ2V0UmVjdXJzaW9uRGV0ZWN0aW9uUGx1Z2luIiwgIm9wdGlvbnMiLCAiY2xpZW50U3RhY2siLCAiayIsICJyZXF1aXJlX2Rpc3RfY2pzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJ1dGlsRW5kcG9pbnRzIiwgInVybFBhcnNlciIsICJpc1ZpcnR1YWxIb3N0YWJsZVMzQnVja2V0IiwgInZhbHVlIiwgImFsbG93U3ViRG9tYWlucyIsICJsYWJlbCIsICJBUk5fREVMSU1JVEVSIiwgIlJFU09VUkNFX0RFTElNSVRFUiIsICJwYXJzZUFybiIsICJzZWdtZW50cyIsICJhcm4iLCAicGFydGl0aW9uIiwgInNlcnZpY2UiLCAicmVnaW9uIiwgImFjY291bnRJZCIsICJyZXNvdXJjZVBhdGgiLCAicmVzb3VyY2VJZCIsICJyZXNvdXJjZSIsICJwYXJ0aXRpb25zIiwgInZlcnNpb24iLCAicGFydGl0aW9uc0luZm8iLCAic2VsZWN0ZWRQYXJ0aXRpb25zSW5mbyIsICJzZWxlY3RlZFVzZXJBZ2VudFByZWZpeCIsICJyZWdpb25zIiwgIm91dHB1dHMiLCAicmVnaW9uRGF0YSIsICJyZWdpb25SZWdleCIsICJERUZBVUxUX1BBUlRJVElPTiIsICJzZXRQYXJ0aXRpb25JbmZvIiwgInVzZXJBZ2VudFByZWZpeCIsICJ1c2VEZWZhdWx0UGFydGl0aW9uSW5mbyIsICJnZXRVc2VyQWdlbnRQcmVmaXgiLCAiYXdzRW5kcG9pbnRGdW5jdGlvbnMiLCAicmVzb2x2ZURlZmF1bHRBd3NSZWdpb25hbEVuZHBvaW50c0NvbmZpZyIsICJpbnB1dCIsICJlbmRwb2ludCIsICJ0b0VuZHBvaW50VjEiLCAic3RhdGUiLCAiZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbiIsICJpbml0X2VtaXRXYXJuaW5nSWZVbnN1cHBvcnRlZFZlcnNpb24iLCAiX19lc21NaW4iLCAidmVyc2lvbiIsICJ1c2VyTWFqb3JWZXJzaW9uIiwgInZ2IiwgImxvbmdQb2xsTWlkZGxld2FyZSIsICJsb25nUG9sbE1pZGRsZXdhcmVPcHRpb25zIiwgImdldExvbmdQb2xsUGx1Z2luIiwgImluaXRfbG9uZ1BvbGxNaWRkbGV3YXJlIiwgIl9fZXNtTWluIiwgIm5leHQiLCAiY29udGV4dCIsICJhcmdzIiwgIm9wdGlvbnMiLCAiY2xpZW50U3RhY2siLCAic2V0Q3JlZGVudGlhbEZlYXR1cmUiLCAiY3JlZGVudGlhbHMiLCAiZmVhdHVyZSIsICJ2YWx1ZSIsICJpbml0X3NldENyZWRlbnRpYWxGZWF0dXJlIiwgIl9fZXNtTWluIiwgInNldEZlYXR1cmUiLCAiY29udGV4dCIsICJmZWF0dXJlIiwgInZhbHVlIiwgImltcG9ydF91dGlsX3JldHJ5IiwgImluaXRfc2V0RmVhdHVyZSIsICJfX2VzbU1pbiIsICJzZXRUb2tlbkZlYXR1cmUiLCAidG9rZW4iLCAiZmVhdHVyZSIsICJ2YWx1ZSIsICJpbml0X3NldFRva2VuRmVhdHVyZSIsICJfX2VzbU1pbiIsICJjbGllbnRfZXhwb3J0cyIsICJfX2V4cG9ydCIsICJlbWl0V2FybmluZ0lmVW5zdXBwb3J0ZWRWZXJzaW9uIiwgImdldExvbmdQb2xsUGx1Z2luIiwgInNldENyZWRlbnRpYWxGZWF0dXJlIiwgInNldEZlYXR1cmUiLCAic2V0VG9rZW5GZWF0dXJlIiwgInN0YXRlIiwgImluaXRfY2xpZW50IiwgIl9fZXNtTWluIiwgImluaXRfZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbiIsICJpbml0X2xvbmdQb2xsTWlkZGxld2FyZSIsICJpbml0X3NldENyZWRlbnRpYWxGZWF0dXJlIiwgImluaXRfc2V0RmVhdHVyZSIsICJpbml0X3NldFRva2VuRmVhdHVyZSIsICJyZXF1aXJlX2Rpc3RfY2pzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJjb3JlIiwgInV0aWxFbmRwb2ludHMiLCAicHJvdG9jb2xIdHRwIiwgImNsaWVudCIsICJ1dGlsUmV0cnkiLCAiREVGQVVMVF9VQV9BUFBfSUQiLCAiaXNWYWxpZFVzZXJBZ2VudEFwcElkIiwgImFwcElkIiwgInJlc29sdmVVc2VyQWdlbnRDb25maWciLCAiaW5wdXQiLCAibm9ybWFsaXplZEFwcElkUHJvdmlkZXIiLCAiY3VzdG9tVXNlckFnZW50IiwgImxvZ2dlciIsICJBQ0NPVU5UX0lEX0VORFBPSU5UX1JFR0VYIiwgImNoZWNrRmVhdHVyZXMiLCAiY29udGV4dCIsICJjb25maWciLCAiYXJncyIsICJyZXRyeVN0cmF0ZWd5IiwgImVuZHBvaW50VjIiLCAiaWRlbnRpdHkiLCAiY3JlZGVudGlhbHMiLCAia2V5IiwgInZhbHVlIiwgIlVTRVJfQUdFTlQiLCAiWF9BTVpfVVNFUl9BR0VOVCIsICJTUEFDRSIsICJVQV9OQU1FX1NFUEFSQVRPUiIsICJVQV9OQU1FX0VTQ0FQRV9SRUdFWCIsICJVQV9WQUxVRV9FU0NBUEVfUkVHRVgiLCAiVUFfRVNDQVBFX0NIQVIiLCAiQllURV9MSU1JVCIsICJlbmNvZGVGZWF0dXJlcyIsICJmZWF0dXJlcyIsICJidWZmZXIiLCAidmFsIiwgInVzZXJBZ2VudE1pZGRsZXdhcmUiLCAib3B0aW9ucyIsICJuZXh0IiwgInJlcXVlc3QiLCAiaGVhZGVycyIsICJ1c2VyQWdlbnQiLCAiZXNjYXBlVXNlckFnZW50IiwgImRlZmF1bHRVc2VyQWdlbnQiLCAiYXdzQ29udGV4dCIsICJwcmVmaXgiLCAic2RrVXNlckFnZW50VmFsdWUiLCAibm9ybWFsVUFWYWx1ZSIsICJzZWN0aW9uIiwgInVzZXJBZ2VudFBhaXIiLCAibmFtZSIsICJwYXJ0IiwgInZlcnNpb24iLCAicHJlZml4U2VwYXJhdG9ySW5kZXgiLCAidWFOYW1lIiwgIml0ZW0iLCAiYWNjIiwgImluZGV4IiwgImdldFVzZXJBZ2VudE1pZGRsZXdhcmVPcHRpb25zIiwgImdldFVzZXJBZ2VudFBsdWdpbiIsICJjbGllbnRTdGFjayIsICJpbXBvcnRfcHJvdG9jb2xfaHR0cCIsICJnZXREYXRlSGVhZGVyIiwgImluaXRfZ2V0RGF0ZUhlYWRlciIsICJfX2VzbU1pbiIsICJyZXNwb25zZSIsICJnZXRTa2V3Q29ycmVjdGVkRGF0ZSIsICJpbml0X2dldFNrZXdDb3JyZWN0ZWREYXRlIiwgIl9fZXNtTWluIiwgInN5c3RlbUNsb2NrT2Zmc2V0IiwgImlzQ2xvY2tTa2V3ZWQiLCAiaW5pdF9pc0Nsb2NrU2tld2VkIiwgIl9fZXNtTWluIiwgImluaXRfZ2V0U2tld0NvcnJlY3RlZERhdGUiLCAiY2xvY2tUaW1lIiwgInN5c3RlbUNsb2NrT2Zmc2V0IiwgImdldFNrZXdDb3JyZWN0ZWREYXRlIiwgImdldFVwZGF0ZWRTeXN0ZW1DbG9ja09mZnNldCIsICJpbml0X2dldFVwZGF0ZWRTeXN0ZW1DbG9ja09mZnNldCIsICJfX2VzbU1pbiIsICJpbml0X2lzQ2xvY2tTa2V3ZWQiLCAiY2xvY2tUaW1lIiwgImN1cnJlbnRTeXN0ZW1DbG9ja09mZnNldCIsICJjbG9ja1RpbWVJbk1zIiwgImlzQ2xvY2tTa2V3ZWQiLCAiaW5pdF91dGlscyIsICJfX2VzbU1pbiIsICJpbml0X2dldERhdGVIZWFkZXIiLCAiaW5pdF9nZXRTa2V3Q29ycmVjdGVkRGF0ZSIsICJpbml0X2dldFVwZGF0ZWRTeXN0ZW1DbG9ja09mZnNldCIsICJpbXBvcnRfcHJvdG9jb2xfaHR0cCIsICJ0aHJvd1NpZ25pbmdQcm9wZXJ0eUVycm9yIiwgInZhbGlkYXRlU2lnbmluZ1Byb3BlcnRpZXMiLCAiQXdzU2RrU2lnVjRTaWduZXIiLCAiaW5pdF9Bd3NTZGtTaWdWNFNpZ25lciIsICJfX2VzbU1pbiIsICJpbml0X3V0aWxzIiwgIm5hbWUiLCAicHJvcGVydHkiLCAic2lnbmluZ1Byb3BlcnRpZXMiLCAiY29udGV4dCIsICJjb25maWciLCAiYXV0aFNjaGVtZSIsICJzaWduZXIiLCAic2lnbmluZ1JlZ2lvbiIsICJzaWduaW5nUmVnaW9uU2V0IiwgInNpZ25pbmdOYW1lIiwgImh0dHBSZXF1ZXN0IiwgImlkZW50aXR5IiwgInZhbGlkYXRlZFByb3BzIiwgImhhbmRsZXJFeGVjdXRpb25Db250ZXh0IiwgImZpcnN0IiwgInNlY29uZCIsICJnZXRTa2V3Q29ycmVjdGVkRGF0ZSIsICJlcnJvciIsICJzZXJ2ZXJUaW1lIiwgImdldERhdGVIZWFkZXIiLCAiaW5pdGlhbFN5c3RlbUNsb2NrT2Zmc2V0IiwgImdldFVwZGF0ZWRTeXN0ZW1DbG9ja09mZnNldCIsICJodHRwUmVzcG9uc2UiLCAiZGF0ZUhlYWRlciIsICJpbXBvcnRfcHJvdG9jb2xfaHR0cCIsICJBd3NTZGtTaWdWNEFTaWduZXIiLCAiaW5pdF9Bd3NTZGtTaWdWNEFTaWduZXIiLCAiX19lc21NaW4iLCAiaW5pdF91dGlscyIsICJpbml0X0F3c1Nka1NpZ1Y0U2lnbmVyIiwgIkF3c1Nka1NpZ1Y0U2lnbmVyIiwgImh0dHBSZXF1ZXN0IiwgImlkZW50aXR5IiwgInNpZ25pbmdQcm9wZXJ0aWVzIiwgImNvbmZpZyIsICJzaWduZXIiLCAic2lnbmluZ1JlZ2lvbiIsICJzaWduaW5nUmVnaW9uU2V0IiwgInNpZ25pbmdOYW1lIiwgInZhbGlkYXRlU2lnbmluZ1Byb3BlcnRpZXMiLCAibXVsdGlSZWdpb25PdmVycmlkZSIsICJnZXRTa2V3Q29ycmVjdGVkRGF0ZSIsICJnZXRBcnJheUZvckNvbW1hU2VwYXJhdGVkU3RyaW5nIiwgImluaXRfZ2V0QXJyYXlGb3JDb21tYVNlcGFyYXRlZFN0cmluZyIsICJfX2VzbU1pbiIsICJzdHIiLCAiaXRlbSIsICJnZXRCZWFyZXJUb2tlbkVudktleSIsICJpbml0X2dldEJlYXJlclRva2VuRW52S2V5IiwgIl9fZXNtTWluIiwgInNpZ25pbmdOYW1lIiwgIk5PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9FTlZfS0VZIiwgIk5PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9DT05GSUdfS0VZIiwgIk5PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9PUFRJT05TIiwgImluaXRfTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX09QVElPTlMiLCAiX19lc21NaW4iLCAiaW5pdF9nZXRBcnJheUZvckNvbW1hU2VwYXJhdGVkU3RyaW5nIiwgImluaXRfZ2V0QmVhcmVyVG9rZW5FbnZLZXkiLCAiZW52IiwgIm9wdGlvbnMiLCAiZ2V0QmVhcmVyVG9rZW5FbnZLZXkiLCAiZ2V0QXJyYXlGb3JDb21tYVNlcGFyYXRlZFN0cmluZyIsICJwcm9maWxlIiwgImltcG9ydF9jb3JlIiwgImltcG9ydF9wcm9wZXJ0eV9wcm92aWRlciIsICJyZXNvbHZlQXdzU2RrU2lnVjRBQ29uZmlnIiwgIk5PREVfU0lHVjRBX0NPTkZJR19PUFRJT05TIiwgImluaXRfcmVzb2x2ZUF3c1Nka1NpZ1Y0QUNvbmZpZyIsICJfX2VzbU1pbiIsICJjb25maWciLCAiZW52IiwgIl8iLCAicHJvZmlsZSIsICJub3JtYWxpemVDcmVkZW50aWFsUHJvdmlkZXIiLCAiY29uZmlnIiwgImNyZWRlbnRpYWxzIiwgImNyZWRlbnRpYWxEZWZhdWx0UHJvdmlkZXIiLCAiY3JlZGVudGlhbHNQcm92aWRlciIsICJiaW5kQ2FsbGVyQ29uZmlnIiwgImZuIiwgIm9wdGlvbnMiLCAiaW1wb3J0X2NvcmUiLCAiaW1wb3J0X3NpZ25hdHVyZV92NCIsICJyZXNvbHZlQXdzU2RrU2lnVjRDb25maWciLCAiaW5pdF9yZXNvbHZlQXdzU2RrU2lnVjRDb25maWciLCAiX19lc21NaW4iLCAiaW5pdF9jbGllbnQiLCAiaW5wdXRDcmVkZW50aWFscyIsICJpc1VzZXJTdXBwbGllZCIsICJyZXNvbHZlZENyZWRlbnRpYWxzIiwgIm1lbW9pemVkUHJvdmlkZXIiLCAiYm91bmRQcm92aWRlciIsICJpc0NyZWRlbnRpYWxPYmplY3QiLCAiYXR0cmlidXRlZENyZWRzIiwgInNldENyZWRlbnRpYWxGZWF0dXJlIiwgInNpZ25pbmdFc2NhcGVQYXRoIiwgInN5c3RlbUNsb2NrT2Zmc2V0IiwgInNoYTI1NiIsICJzaWduZXIiLCAicmVnaW9uIiwgInJlZ2lvbkluZm8iLCAic2lnbmluZ1JlZ2lvbiIsICJzaWduaW5nU2VydmljZSIsICJwYXJhbXMiLCAiU2lnbmVyQ3RvciIsICJhdXRoU2NoZW1lIiwgImluaXRfYXdzX3NkayIsICJfX2VzbU1pbiIsICJpbml0X0F3c1Nka1NpZ1Y0U2lnbmVyIiwgImluaXRfQXdzU2RrU2lnVjRBU2lnbmVyIiwgImluaXRfTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX09QVElPTlMiLCAiaW5pdF9yZXNvbHZlQXdzU2RrU2lnVjRBQ29uZmlnIiwgImluaXRfcmVzb2x2ZUF3c1Nka1NpZ1Y0Q29uZmlnIiwgImluaXRfaHR0cEF1dGhTY2hlbWVzIiwgIl9fZXNtTWluIiwgImluaXRfYXdzX3NkayIsICJpbml0X2dldEJlYXJlclRva2VuRW52S2V5IiwgImNyZWF0ZUF3c0F1dGhTaWd2NEh0dHBBdXRoT3B0aW9uIiwgImF1dGhQYXJhbWV0ZXJzIiwgImNvbmZpZyIsICJjb250ZXh0IiwgImNyZWF0ZVNtaXRoeUFwaU5vQXV0aEh0dHBBdXRoT3B0aW9uIiwgImltcG9ydF91dGlsX21pZGRsZXdhcmUiLCAiZGVmYXVsdFNTT09JRENIdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlciIsICJkZWZhdWx0U1NPT0lEQ0h0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAicmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnIiwgImluaXRfaHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJfX2VzbU1pbiIsICJpbml0X2h0dHBBdXRoU2NoZW1lcyIsICJpbnB1dCIsICJvcHRpb25zIiwgImNvbmZpZ18wIiwgInJlc29sdmVBd3NTZGtTaWdWNENvbmZpZyIsICJyZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzIiwgImNvbW1vblBhcmFtcyIsICJpbml0X0VuZHBvaW50UGFyYW1ldGVycyIsICJfX2VzbU1pbiIsICJvcHRpb25zIiwgInBhY2thZ2VfZGVmYXVsdCIsICJpbml0X3BhY2thZ2UiLCAiX19lc21NaW4iLCAicmVxdWlyZV9kaXN0X2NqcyIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAibm9kZV9vcyIsICJub2RlX3Byb2Nlc3MiLCAidXRpbENvbmZpZ1Byb3ZpZGVyIiwgInByb21pc2VzIiwgIm5vZGVfcGF0aCIsICJtaWRkbGV3YXJlVXNlckFnZW50IiwgImdldFJ1bnRpbWVVc2VyQWdlbnRQYWlyIiwgInJ1bnRpbWVzVG9DaGVjayIsICJydW50aW1lIiwgImdldE5vZGVNb2R1bGVzUGFyZW50RGlycyIsICJkaXJuYW1lIiwgImN3ZCIsICJub3JtYWxpemVkUGF0aCIsICJwYXJ0cyIsICJub2RlTW9kdWxlc0luZGV4IiwgInBhcmVudERpciIsICJTRU1WRVJfUkVHRVgiLCAiZ2V0U2FuaXRpemVkVHlwZVNjcmlwdFZlcnNpb24iLCAidmVyc2lvbiIsICJtYXRjaCIsICJtYWpvciIsICJtaW5vciIsICJwYXRjaCIsICJwcmVyZWxlYXNlIiwgIkFMTE9XRURfUFJFRklYRVMiLCAiQUxMT1dFRF9ESVNUX1RBR1MiLCAiZ2V0U2FuaXRpemVkRGV2VHlwZVNjcmlwdFZlcnNpb24iLCAicHJlZml4IiwgInAiLCAic2FuaXRpemVkVHlwZVNjcmlwdFZlcnNpb24iLCAidHNjVmVyc2lvbiIsICJUU19QQUNLQUdFX0pTT04iLCAiZ2V0VHlwZVNjcmlwdFVzZXJBZ2VudFBhaXIiLCAiaXNUeXBlU2NyaXB0RGV0ZWN0aW9uRGlzYWJsZWQiLCAibm9kZU1vZHVsZXNQYXJlbnREaXJzIiwgInZlcnNpb25Gcm9tQXBwIiwgIm5vZGVNb2R1bGVzUGFyZW50RGlyIiwgImFwcFBhY2thZ2VKc29uUGF0aCIsICJwYWNrYWdlSnNvbiIsICJkZXBlbmRlbmNpZXMiLCAiZGV2RGVwZW5kZW5jaWVzIiwgInZlcnNpb25Gcm9tTm9kZU1vZHVsZXMiLCAidHNQYWNrYWdlSnNvblBhdGgiLCAic2FuaXRpemVkVmVyc2lvbiIsICJjcnRBdmFpbGFiaWxpdHkiLCAiaXNDcnRBdmFpbGFibGUiLCAiY3JlYXRlRGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyIiwgInNlcnZpY2VJZCIsICJjbGllbnRWZXJzaW9uIiwgInJ1bnRpbWVVc2VyQWdlbnRQYWlyIiwgImNvbmZpZyIsICJzZWN0aW9ucyIsICJ0eXBlc2NyaXB0VXNlckFnZW50UGFpciIsICJjcnRBdmFpbGFibGUiLCAiYXBwSWQiLCAiZGVmYXVsdFVzZXJBZ2VudCIsICJVQV9BUFBfSURfRU5WX05BTUUiLCAiVUFfQVBQX0lEX0lOSV9OQU1FIiwgIlVBX0FQUF9JRF9JTklfTkFNRV9ERVBSRUNBVEVEIiwgIk5PREVfQVBQX0lEX0NPTkZJR19PUFRJT05TIiwgImVudiIsICJwcm9maWxlIiwgImltcG9ydF9zY2hlbWEiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAiUHJvdG9jb2xMaWIiLCAiaW5pdF9Qcm90b2NvbExpYiIsICJfX2VzbU1pbiIsICJxdWVyeUNvbXBhdCIsICJkZWZhdWx0Q29udGVudFR5cGUiLCAiaW5wdXRTY2hlbWEiLCAibWVtYmVycyIsICJodHRwUGF5bG9hZE1lbWJlciIsICJtIiwgIm1lZGlhVHlwZSIsICJodHRwUXVlcnkiLCAiaHR0cFF1ZXJ5UGFyYW1zIiwgImh0dHBIZWFkZXIiLCAiaHR0cExhYmVsIiwgImh0dHBQcmVmaXhIZWFkZXJzIiwgImVycm9ySWRlbnRpZmllciIsICJkZWZhdWx0TmFtZXNwYWNlIiwgInJlc3BvbnNlIiwgImRhdGFPYmplY3QiLCAibWV0YWRhdGEiLCAiZ2V0RXJyb3JTY2hlbWEiLCAiZXJyb3JOYW1lIiwgImVycm9yTWV0YWRhdGEiLCAic3ludGhldGljIiwgImJhc2VFeGNlcHRpb25TY2hlbWEiLCAiRXJyb3JDdG9yIiwgImQiLCAibWVzc2FnZSIsICJjb21wb3NpdGUiLCAibmFtZXNwYWNlIiwgInN0YXRpY1JlZ2lzdHJ5IiwgImRlZmF1bHRTeW50aGV0aWNSZWdpc3RyeSIsICJleGNlcHRpb24iLCAiYWRkaXRpb25zIiwgIm1zZyIsICJlcnJvciIsICJlcnJvck9iaiIsICJyZXFJZCIsICJvdXRwdXQiLCAicXVlcnlFcnJvckhlYWRlciIsICJDb2RlIiwgIlR5cGUiLCAia2V5cyIsICJFcnJvciIsICJpIiwgImsiLCAicXVlcnlDb21wYXRFcnJvckRhdGEiLCAiZXJyb3JEYXRhIiwgInJlZ2lzdHJ5IiwgInNjaGVtYSIsICJpbXBvcnRfY2JvciIsICJpbXBvcnRfc2NoZW1hIiwgIkF3c1NtaXRoeVJwY1YyQ2JvclByb3RvY29sIiwgImluaXRfQXdzU21pdGh5UnBjVjJDYm9yUHJvdG9jb2wiLCAiX19lc21NaW4iLCAiaW5pdF9Qcm90b2NvbExpYiIsICJkZWZhdWx0TmFtZXNwYWNlIiwgImVycm9yVHlwZVJlZ2lzdHJpZXMiLCAiYXdzUXVlcnlDb21wYXRpYmxlIiwgIlByb3RvY29sTGliIiwgIm9wZXJhdGlvblNjaGVtYSIsICJpbnB1dCIsICJjb250ZXh0IiwgInJlcXVlc3QiLCAicmVzcG9uc2UiLCAiZGF0YU9iamVjdCIsICJtZXRhZGF0YSIsICJlcnJvck5hbWUiLCAiY29tcGF0SGVhZGVyIiwgImVycm9yU2NoZW1hIiwgImVycm9yTWV0YWRhdGEiLCAibnMiLCAibWVzc2FnZSIsICJFcnJvckN0b3IiLCAiZXhjZXB0aW9uIiwgIm91dHB1dCIsICJuYW1lIiwgIm1lbWJlciIsICJfdG9TdHIiLCAiX3RvQm9vbCIsICJfdG9OdW0iLCAiaW5pdF9jb2VyY2luZ19zZXJpYWxpemVycyIsICJfX2VzbU1pbiIsICJ2YWwiLCAid2FybmluZyIsICJsb3dlcmNhc2UiLCAibnVtIiwgIlNlcmRlQ29udGV4dENvbmZpZyIsICJpbml0X0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dCIsICJfX2VzbU1pbiIsICJzZXJkZUNvbnRleHQiLCAiVW5pb25TZXJkZSIsICJpbml0X1VuaW9uU2VyZGUiLCAiX19lc21NaW4iLCAiZnJvbSIsICJ0byIsICJrZXlzIiwgInNldCIsICJrZXkiLCAiayIsICJ2IiwgImpzb25SZXZpdmVyIiwgImtleSIsICJ2YWx1ZSIsICJjb250ZXh0IiwgIm51bWVyaWNTdHJpbmciLCAiaW1wb3J0X3NlcmRlIiwgImluaXRfanNvblJldml2ZXIiLCAiX19lc21NaW4iLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAiaW1wb3J0X3V0aWxfdXRmOCIsICJjb2xsZWN0Qm9keVN0cmluZyIsICJpbml0X2NvbW1vbiIsICJfX2VzbU1pbiIsICJzdHJlYW1Cb2R5IiwgImNvbnRleHQiLCAiYm9keSIsICJwYXJzZUpzb25Cb2R5IiwgInBhcnNlSnNvbkVycm9yQm9keSIsICJmaW5kS2V5IiwgInNhbml0aXplRXJyb3JDb2RlIiwgImxvYWRSZXN0SnNvbkVycm9yQ29kZSIsICJpbml0X3BhcnNlSnNvbkJvZHkiLCAiX19lc21NaW4iLCAiaW5pdF9jb21tb24iLCAic3RyZWFtQm9keSIsICJjb250ZXh0IiwgImNvbGxlY3RCb2R5U3RyaW5nIiwgImVuY29kZWQiLCAiZSIsICJlcnJvckJvZHkiLCAidmFsdWUiLCAib2JqZWN0IiwgImtleSIsICJrIiwgInJhd1ZhbHVlIiwgImNsZWFuVmFsdWUiLCAib3V0cHV0IiwgImRhdGEiLCAiaGVhZGVyS2V5IiwgImNvZGVLZXkiLCAiaW1wb3J0X3Byb3RvY29scyIsICJpbXBvcnRfc2NoZW1hIiwgImltcG9ydF9zZXJkZSIsICJpbXBvcnRfdXRpbF9iYXNlNjQiLCAiSnNvblNoYXBlRGVzZXJpYWxpemVyIiwgImluaXRfSnNvblNoYXBlRGVzZXJpYWxpemVyIiwgIl9fZXNtTWluIiwgImluaXRfQ29uZmlndXJhYmxlU2VyZGVDb250ZXh0IiwgImluaXRfVW5pb25TZXJkZSIsICJpbml0X2pzb25SZXZpdmVyIiwgImluaXRfcGFyc2VKc29uQm9keSIsICJTZXJkZUNvbnRleHRDb25maWciLCAic2V0dGluZ3MiLCAic2NoZW1hIiwgImRhdGEiLCAianNvblJldml2ZXIiLCAicGFyc2VKc29uQm9keSIsICJ2YWx1ZSIsICJpc09iamVjdCIsICJucyIsICJyZWNvcmQiLCAidW5pb24iLCAib3V0IiwgIm5hbWVNYXAiLCAianNvbk5hbWUiLCAidW5pb25TZXJkZSIsICJVbmlvblNlcmRlIiwgIm1lbWJlck5hbWUiLCAibWVtYmVyU2NoZW1hIiwgImZyb21LZXkiLCAiayIsICJ2IiwgInQiLCAibGlzdE1lbWJlciIsICJpdGVtIiwgIm1hcE1lbWJlciIsICJfayIsICJtZWRpYVR5cGUiLCAidW50eXBlZCIsICJpbXBvcnRfc2VyZGUiLCAiTlVNRVJJQ19DT05UUk9MX0NIQVIiLCAiSnNvblJlcGxhY2VyIiwgImluaXRfanNvblJlcGxhY2VyIiwgIl9fZXNtTWluIiwgImtleSIsICJ2YWx1ZSIsICJ2IiwgInMiLCAianNvbiIsICJpbXBvcnRfcHJvdG9jb2xzIiwgImltcG9ydF9zY2hlbWEiLCAiaW1wb3J0X3NlcmRlIiwgImltcG9ydF91dGlsX2Jhc2U2NCIsICJKc29uU2hhcGVTZXJpYWxpemVyIiwgImluaXRfSnNvblNoYXBlU2VyaWFsaXplciIsICJfX2VzbU1pbiIsICJpbml0X0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dCIsICJpbml0X2pzb25SZXBsYWNlciIsICJTZXJkZUNvbnRleHRDb25maWciLCAic2V0dGluZ3MiLCAic2NoZW1hIiwgInZhbHVlIiwgInJvb3RTY2hlbWEiLCAidXNlUmVwbGFjZXIiLCAicmVwbGFjZXIiLCAiSnNvblJlcGxhY2VyIiwgImNvbnRhaW5lciIsICJpc09iamVjdCIsICJucyIsICJyZWNvcmQiLCAib3V0IiwgImpzb25OYW1lIiwgIm5hbWVNYXAiLCAib3V0Q291bnQiLCAibWVtYmVyTmFtZSIsICJtZW1iZXJTY2hlbWEiLCAic2VyaWFsaXphYmxlVmFsdWUiLCAidGFyZ2V0S2V5IiwgIiR1bmtub3duIiwgImsiLCAidiIsICJsaXN0TWVtYmVyIiwgInNwYXJzZSIsICJpdGVtIiwgIm1hcE1lbWJlciIsICJfayIsICJfdiIsICJtZWRpYVR5cGUiLCAiSnNvbkNvZGVjIiwgImluaXRfSnNvbkNvZGVjIiwgIl9fZXNtTWluIiwgImluaXRfQ29uZmlndXJhYmxlU2VyZGVDb250ZXh0IiwgImluaXRfSnNvblNoYXBlRGVzZXJpYWxpemVyIiwgImluaXRfSnNvblNoYXBlU2VyaWFsaXplciIsICJTZXJkZUNvbnRleHRDb25maWciLCAic2V0dGluZ3MiLCAic2VyaWFsaXplciIsICJKc29uU2hhcGVTZXJpYWxpemVyIiwgImRlc2VyaWFsaXplciIsICJKc29uU2hhcGVEZXNlcmlhbGl6ZXIiLCAiaW1wb3J0X3Byb3RvY29scyIsICJpbXBvcnRfc2NoZW1hIiwgIkF3c0pzb25ScGNQcm90b2NvbCIsICJpbml0X0F3c0pzb25ScGNQcm90b2NvbCIsICJfX2VzbU1pbiIsICJpbml0X1Byb3RvY29sTGliIiwgImluaXRfSnNvbkNvZGVjIiwgImluaXRfcGFyc2VKc29uQm9keSIsICJkZWZhdWx0TmFtZXNwYWNlIiwgImVycm9yVHlwZVJlZ2lzdHJpZXMiLCAic2VydmljZVRhcmdldCIsICJhd3NRdWVyeUNvbXBhdGlibGUiLCAianNvbkNvZGVjIiwgIkpzb25Db2RlYyIsICJQcm90b2NvbExpYiIsICJvcGVyYXRpb25TY2hlbWEiLCAiaW5wdXQiLCAiY29udGV4dCIsICJyZXF1ZXN0IiwgInJlc3BvbnNlIiwgImRhdGFPYmplY3QiLCAibWV0YWRhdGEiLCAiZXJyb3JJZGVudGlmaWVyIiwgImxvYWRSZXN0SnNvbkVycm9yQ29kZSIsICJlcnJvclNjaGVtYSIsICJlcnJvck1ldGFkYXRhIiwgIm5zIiwgIm1lc3NhZ2UiLCAiRXJyb3JDdG9yIiwgImV4Y2VwdGlvbiIsICJvdXRwdXQiLCAiZXJyb3JEZXNlcmlhbGl6ZXIiLCAibmFtZSIsICJtZW1iZXIiLCAiQXdzSnNvbjFfMFByb3RvY29sIiwgImluaXRfQXdzSnNvbjFfMFByb3RvY29sIiwgIl9fZXNtTWluIiwgImluaXRfQXdzSnNvblJwY1Byb3RvY29sIiwgIkF3c0pzb25ScGNQcm90b2NvbCIsICJkZWZhdWx0TmFtZXNwYWNlIiwgImVycm9yVHlwZVJlZ2lzdHJpZXMiLCAic2VydmljZVRhcmdldCIsICJhd3NRdWVyeUNvbXBhdGlibGUiLCAianNvbkNvZGVjIiwgIkF3c0pzb24xXzFQcm90b2NvbCIsICJpbml0X0F3c0pzb24xXzFQcm90b2NvbCIsICJfX2VzbU1pbiIsICJpbml0X0F3c0pzb25ScGNQcm90b2NvbCIsICJBd3NKc29uUnBjUHJvdG9jb2wiLCAiZGVmYXVsdE5hbWVzcGFjZSIsICJlcnJvclR5cGVSZWdpc3RyaWVzIiwgInNlcnZpY2VUYXJnZXQiLCAiYXdzUXVlcnlDb21wYXRpYmxlIiwgImpzb25Db2RlYyIsICJpbXBvcnRfcHJvdG9jb2xzIiwgImltcG9ydF9zY2hlbWEiLCAiQXdzUmVzdEpzb25Qcm90b2NvbCIsICJpbml0X0F3c1Jlc3RKc29uUHJvdG9jb2wiLCAiX19lc21NaW4iLCAiaW5pdF9Qcm90b2NvbExpYiIsICJpbml0X0pzb25Db2RlYyIsICJpbml0X3BhcnNlSnNvbkJvZHkiLCAiUHJvdG9jb2xMaWIiLCAiZGVmYXVsdE5hbWVzcGFjZSIsICJlcnJvclR5cGVSZWdpc3RyaWVzIiwgInNldHRpbmdzIiwgIkpzb25Db2RlYyIsICJzZXJkZUNvbnRleHQiLCAib3BlcmF0aW9uU2NoZW1hIiwgImlucHV0IiwgImNvbnRleHQiLCAicmVxdWVzdCIsICJpbnB1dFNjaGVtYSIsICJjb250ZW50VHlwZSIsICJyZXNwb25zZSIsICJvdXRwdXQiLCAib3V0cHV0U2NoZW1hIiwgIm5hbWUiLCAibWVtYmVyIiwgImRhdGFPYmplY3QiLCAibWV0YWRhdGEiLCAiZXJyb3JJZGVudGlmaWVyIiwgImxvYWRSZXN0SnNvbkVycm9yQ29kZSIsICJlcnJvclNjaGVtYSIsICJlcnJvck1ldGFkYXRhIiwgIm5zIiwgIm1lc3NhZ2UiLCAiRXJyb3JDdG9yIiwgImV4Y2VwdGlvbiIsICJlcnJvckRlc2VyaWFsaXplciIsICJ0YXJnZXQiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAiYXdzRXhwZWN0VW5pb24iLCAiaW5pdF9hd3NFeHBlY3RVbmlvbiIsICJfX2VzbU1pbiIsICJ2YWx1ZSIsICJyZXF1aXJlX25vZGFibGVfZW50aXRpZXMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgIlNQRUNJQUxfQ0hBUlMiLCAidmFsaWRhdGVFbnRpdHlOYW1lIiwgIm5hbWUiLCAiY2giLCAibWVyZ2VFbnRpdHlNYXBzIiwgIm1hcHMiLCAib3V0IiwgIm1hcCIsICJrZXkiLCAicmF3IiwgInZhbCIsICJMSU1JVF9USUVSX0VYVEVSTkFMIiwgIkxJTUlUX1RJRVJfQkFTRSIsICJMSU1JVF9USUVSX0FMTCIsICJwYXJzZUxpbWl0VGllcnMiLCAiTkNSX0xFVkVMIiwgIlhNTDEwX0FMTE9XRURfQzAiLCAicGFyc2VOQ1JDb25maWciLCAibmNyIiwgInhtbFZlcnNpb24iLCAib25MZXZlbCIsICJudWxsTGV2ZWwiLCAiY2xhbXBlZE51bGwiLCAiRW50aXR5RGVjb2RlckltcGwiLCAib3B0aW9ucyIsICJyIiwgIm5jckNmZyIsICJ2YWx1ZSIsICJ2ZXJzaW9uIiwgInN0ciIsICJvcmlnaW5hbCIsICJjaHVua3MiLCAibGVuIiwgImxhc3QiLCAibGltaXRFeHBhbnNpb25zIiwgImxpbWl0TGVuZ3RoIiwgImNoZWNrTGltaXRzIiwgImoiLCAidG9rZW4iLCAicmVwbGFjZW1lbnQiLCAidGllciIsICJuY3JSZXN1bHQiLCAicmVzb2x2ZWQiLCAiZGVsdGEiLCAicmVzdWx0IiwgImNwIiwgImFjdGlvbiIsICJzZWNvbmQiLCAibWluaW11bSIsICJlZmZlY3RpdmUiLCAicmVxdWlyZV94bWxfcGFyc2VyIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJwYXJzZVhNTCIsICJmYXN0X3htbF9wYXJzZXJfMSIsICJub2RhYmxlX2VudGl0aWVzXzEiLCAiZW50aXR5RGVjb2RlciIsICJwYXJzZXIiLCAiZW50aXRpZXMiLCAidGV4dCIsICJ2ZXJzaW9uIiwgIl8iLCAidmFsIiwgInhtbFN0cmluZyIsICJyZXF1aXJlX2Rpc3RfY2pzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJ4bWxQYXJzZXIiLCAiQVRUUl9FU0NBUEVfUkUiLCAiQVRUUl9FU0NBUEVfTUFQIiwgImVzY2FwZUF0dHJpYnV0ZSIsICJ2YWx1ZSIsICJjaCIsICJFTEVNRU5UX0VTQ0FQRV9SRSIsICJFTEVNRU5UX0VTQ0FQRV9NQVAiLCAiZXNjYXBlRWxlbWVudCIsICJYbWxUZXh0IiwgIlhtbE5vZGUiLCAiX1htbE5vZGUiLCAibmFtZSIsICJjaGlsZFRleHQiLCAid2l0aE5hbWUiLCAibm9kZSIsICJjaGlsZHJlbiIsICJjaGlsZCIsICJpbnB1dCIsICJmaWVsZCIsICJsaXN0TmFtZSIsICJtZW1iZXJOYW1lIiwgInZhbHVlUHJvdmlkZXIiLCAibm9kZXMiLCAiY29udGFpbmVyTm9kZSIsICJoYXNDaGlsZHJlbiIsICJ4bWxUZXh0IiwgImF0dHJpYnV0ZXMiLCAiYXR0cmlidXRlTmFtZSIsICJhdHRyaWJ1dGUiLCAiYyIsICJpbXBvcnRfeG1sX2J1aWxkZXIiLCAiaW1wb3J0X3Byb3RvY29scyIsICJpbXBvcnRfc2NoZW1hIiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgImltcG9ydF91dGlsX3V0ZjgiLCAiWG1sU2hhcGVEZXNlcmlhbGl6ZXIiLCAiaW5pdF9YbWxTaGFwZURlc2VyaWFsaXplciIsICJfX2VzbU1pbiIsICJpbml0X0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dCIsICJpbml0X1VuaW9uU2VyZGUiLCAiU2VyZGVDb250ZXh0Q29uZmlnIiwgInNldHRpbmdzIiwgInNlcmRlQ29udGV4dCIsICJzY2hlbWEiLCAiYnl0ZXMiLCAia2V5IiwgIm5zIiwgIm1lbWJlclNjaGVtYXMiLCAibWVtYmVyTnMiLCAib3V0cHV0IiwgIm1lbWJlck5hbWUiLCAieG1sU3RyaW5nIiwgInBhcnNlZE9iamVjdCIsICJfc2NoZW1hIiwgInZhbHVlIiwgInRyYWl0cyIsICJmbGF0IiwgImxpc3RWYWx1ZSIsICJidWZmZXIiLCAic291cmNlS2V5IiwgInNvdXJjZSIsICJzb3VyY2VBcnJheSIsICJ2IiwgImtleU5zIiwgImVudHJpZXMiLCAia2V5UHJvcGVydHkiLCAidmFsdWVQcm9wZXJ0eSIsICJlbnRyeSIsICJ1bmlvbiIsICJ1bmlvblNlcmRlIiwgIlVuaW9uU2VyZGUiLCAibWVtYmVyU2NoZW1hIiwgIm1lbWJlclRyYWl0cyIsICJ4bWxPYmplY3RLZXkiLCAieG1sIiwgInBhcnNlZE9iaiIsICJlIiwgInRleHROb2RlTmFtZSIsICJwYXJzZWRPYmpUb1JldHVybiIsICJpbXBvcnRfcHJvdG9jb2xzIiwgImltcG9ydF9zY2hlbWEiLCAiaW1wb3J0X3NlcmRlIiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgImltcG9ydF91dGlsX2Jhc2U2NCIsICJRdWVyeVNoYXBlU2VyaWFsaXplciIsICJpbml0X1F1ZXJ5U2hhcGVTZXJpYWxpemVyIiwgIl9fZXNtTWluIiwgImluaXRfQ29uZmlndXJhYmxlU2VyZGVDb250ZXh0IiwgIlNlcmRlQ29udGV4dENvbmZpZyIsICJzZXR0aW5ncyIsICJzY2hlbWEiLCAidmFsdWUiLCAicHJlZml4IiwgIm5zIiwgIm1lbWJlciIsICJmbGF0IiwgImkiLCAiaXRlbSIsICJ0cmFpdHMiLCAic3VmZml4IiwgImtleSIsICJrZXlTY2hlbWEiLCAibWVtYmVyU2NoZW1hIiwgImsiLCAidiIsICJrZXlUcmFpdHMiLCAia2V5U3VmZml4IiwgInZhbFRyYWl0cyIsICJ2YWx1ZVN1ZmZpeCIsICJ2YWx1ZUtleSIsICJkaWRXcml0ZU1lbWJlciIsICJtZW1iZXJOYW1lIiwgIiR1bmtub3duIiwgInN0ciIsICJ4bWxOYW1lIiwgImVjMlF1ZXJ5TmFtZSIsICJrZXlTb3VyY2UiLCAiZWMyIiwgImNhcGl0YWxpemVLZXlzIiwgImltcG9ydF9wcm90b2NvbHMiLCAiaW1wb3J0X3NjaGVtYSIsICJBd3NRdWVyeVByb3RvY29sIiwgImluaXRfQXdzUXVlcnlQcm90b2NvbCIsICJfX2VzbU1pbiIsICJpbml0X1Byb3RvY29sTGliIiwgImluaXRfWG1sU2hhcGVEZXNlcmlhbGl6ZXIiLCAiaW5pdF9RdWVyeVNoYXBlU2VyaWFsaXplciIsICJQcm90b2NvbExpYiIsICJvcHRpb25zIiwgInNldHRpbmdzIiwgIlF1ZXJ5U2hhcGVTZXJpYWxpemVyIiwgIlhtbFNoYXBlRGVzZXJpYWxpemVyIiwgInNlcmRlQ29udGV4dCIsICJvcGVyYXRpb25TY2hlbWEiLCAiaW5wdXQiLCAiY29udGV4dCIsICJyZXF1ZXN0IiwgImFjdGlvbiIsICJyZXNwb25zZSIsICJkZXNlcmlhbGl6ZXIiLCAibnMiLCAiZGF0YU9iamVjdCIsICJieXRlcyIsICJoZWFkZXIiLCAidmFsdWUiLCAic2hvcnROYW1lIiwgImF3c1F1ZXJ5UmVzdWx0S2V5IiwgIm1ldGFkYXRhIiwgImVycm9ySWRlbnRpZmllciIsICJlcnJvckRhdGEiLCAibWVzc2FnZSIsICJlcnJvclNjaGVtYSIsICJlcnJvck1ldGFkYXRhIiwgIkVycm9yQ3RvciIsICJleGNlcHRpb24iLCAib3V0cHV0IiwgIm5hbWUiLCAibWVtYmVyIiwgInRhcmdldCIsICJkYXRhIiwgImNvZGUiLCAiQXdzRWMyUXVlcnlQcm90b2NvbCIsICJpbml0X0F3c0VjMlF1ZXJ5UHJvdG9jb2wiLCAiX19lc21NaW4iLCAiaW5pdF9Bd3NRdWVyeVByb3RvY29sIiwgIkF3c1F1ZXJ5UHJvdG9jb2wiLCAib3B0aW9ucyIsICJlYzJTZXR0aW5ncyIsICJpbml0X1F1ZXJ5U2VyaWFsaXplclNldHRpbmdzIiwgIl9fZXNtTWluIiwgImltcG9ydF94bWxfYnVpbGRlciIsICJpbXBvcnRfc21pdGh5X2NsaWVudCIsICJwYXJzZVhtbEJvZHkiLCAicGFyc2VYbWxFcnJvckJvZHkiLCAibG9hZFJlc3RYbWxFcnJvckNvZGUiLCAiaW5pdF9wYXJzZVhtbEJvZHkiLCAiX19lc21NaW4iLCAiaW5pdF9jb21tb24iLCAic3RyZWFtQm9keSIsICJjb250ZXh0IiwgImNvbGxlY3RCb2R5U3RyaW5nIiwgImVuY29kZWQiLCAicGFyc2VkT2JqIiwgImUiLCAidGV4dE5vZGVOYW1lIiwgImtleSIsICJwYXJzZWRPYmpUb1JldHVybiIsICJlcnJvckJvZHkiLCAidmFsdWUiLCAib3V0cHV0IiwgImRhdGEiLCAiaW1wb3J0X3htbF9idWlsZGVyIiwgImltcG9ydF9wcm90b2NvbHMiLCAiaW1wb3J0X3NjaGVtYSIsICJpbXBvcnRfc2VyZGUiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAiaW1wb3J0X3V0aWxfYmFzZTY0IiwgIlhtbFNoYXBlU2VyaWFsaXplciIsICJpbml0X1htbFNoYXBlU2VyaWFsaXplciIsICJfX2VzbU1pbiIsICJpbml0X0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dCIsICJTZXJkZUNvbnRleHRDb25maWciLCAic2V0dGluZ3MiLCAic2NoZW1hIiwgInZhbHVlIiwgIm5zIiwgInRyYWl0cyIsICJieXRlcyIsICJzdHIiLCAiYnVmZmVyIiwgInBhcmVudFhtbG5zIiwgIm5hbWUiLCAic3RydWN0WG1sTm9kZSIsICJ4bWxuc0F0dHIiLCAieG1sbnMiLCAibWVtYmVyTmFtZSIsICJtZW1iZXJTY2hlbWEiLCAidmFsIiwgIm1lbWJlck5vZGUiLCAiJHVua25vd24iLCAiayIsICJ2IiwgIm5vZGUiLCAibGlzdE1lbWJlciIsICJhcnJheSIsICJjb250YWluZXIiLCAibGlzdFRyYWl0cyIsICJsaXN0VmFsdWVTY2hlbWEiLCAibGlzdFZhbHVlVHJhaXRzIiwgInNwYXJzZSIsICJmbGF0IiwgIndyaXRlSXRlbSIsICJzdHJ1Y3QiLCAibGlzdEl0ZW1Ob2RlIiwgImxpc3ROb2RlIiwgIm1hcE1lbWJlciIsICJtYXAiLCAiY29udGFpbmVySXNNYXAiLCAibWFwVHJhaXRzIiwgIm1hcEtleVNjaGVtYSIsICJrZXlUYWciLCAibWFwVmFsdWVTY2hlbWEiLCAibWFwVmFsdWVUcmFpdHMiLCAidmFsdWVUYWciLCAiYWRkS2V5VmFsdWUiLCAiZW50cnkiLCAia2V5IiwgImtleU5vZGUiLCAia2V5WG1sbnNBdHRyIiwgImtleVhtbG5zIiwgInZhbHVlTm9kZSIsICJtYXBOb2RlIiwgIl9zY2hlbWEiLCAibm9kZUNvbnRlbnRzIiwgImludG8iLCAiY29udGVudCIsICJwcmVmaXgiLCAiWG1sQ29kZWMiLCAiaW5pdF9YbWxDb2RlYyIsICJfX2VzbU1pbiIsICJpbml0X0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dCIsICJpbml0X1htbFNoYXBlRGVzZXJpYWxpemVyIiwgImluaXRfWG1sU2hhcGVTZXJpYWxpemVyIiwgIlNlcmRlQ29udGV4dENvbmZpZyIsICJzZXR0aW5ncyIsICJzZXJpYWxpemVyIiwgIlhtbFNoYXBlU2VyaWFsaXplciIsICJkZXNlcmlhbGl6ZXIiLCAiWG1sU2hhcGVEZXNlcmlhbGl6ZXIiLCAiaW1wb3J0X3Byb3RvY29scyIsICJpbXBvcnRfc2NoZW1hIiwgIkF3c1Jlc3RYbWxQcm90b2NvbCIsICJpbml0X0F3c1Jlc3RYbWxQcm90b2NvbCIsICJfX2VzbU1pbiIsICJpbml0X1Byb3RvY29sTGliIiwgImluaXRfcGFyc2VYbWxCb2R5IiwgImluaXRfWG1sQ29kZWMiLCAiUHJvdG9jb2xMaWIiLCAib3B0aW9ucyIsICJzZXR0aW5ncyIsICJYbWxDb2RlYyIsICJvcGVyYXRpb25TY2hlbWEiLCAiaW5wdXQiLCAiY29udGV4dCIsICJyZXF1ZXN0IiwgImlucHV0U2NoZW1hIiwgImNvbnRlbnRUeXBlIiwgInJlc3BvbnNlIiwgImRhdGFPYmplY3QiLCAibWV0YWRhdGEiLCAiZXJyb3JJZGVudGlmaWVyIiwgImxvYWRSZXN0WG1sRXJyb3JDb2RlIiwgImtleSIsICJlcnJvclNjaGVtYSIsICJlcnJvck1ldGFkYXRhIiwgIm5zIiwgIm1lc3NhZ2UiLCAiRXJyb3JDdG9yIiwgImV4Y2VwdGlvbiIsICJvdXRwdXQiLCAiZXJyb3JEZXNlcmlhbGl6ZXIiLCAibmFtZSIsICJtZW1iZXIiLCAidGFyZ2V0IiwgInZhbHVlIiwgInByb3RvY29sc19leHBvcnRzIiwgIl9fZXhwb3J0IiwgIkF3c0VjMlF1ZXJ5UHJvdG9jb2wiLCAiQXdzSnNvbjFfMFByb3RvY29sIiwgIkF3c0pzb24xXzFQcm90b2NvbCIsICJBd3NKc29uUnBjUHJvdG9jb2wiLCAiQXdzUXVlcnlQcm90b2NvbCIsICJBd3NSZXN0SnNvblByb3RvY29sIiwgIkF3c1Jlc3RYbWxQcm90b2NvbCIsICJBd3NTbWl0aHlScGNWMkNib3JQcm90b2NvbCIsICJKc29uQ29kZWMiLCAiSnNvblNoYXBlRGVzZXJpYWxpemVyIiwgIkpzb25TaGFwZVNlcmlhbGl6ZXIiLCAiUXVlcnlTaGFwZVNlcmlhbGl6ZXIiLCAiWG1sQ29kZWMiLCAiWG1sU2hhcGVEZXNlcmlhbGl6ZXIiLCAiWG1sU2hhcGVTZXJpYWxpemVyIiwgIl90b0Jvb2wiLCAiX3RvTnVtIiwgIl90b1N0ciIsICJhd3NFeHBlY3RVbmlvbiIsICJsb2FkUmVzdEpzb25FcnJvckNvZGUiLCAibG9hZFJlc3RYbWxFcnJvckNvZGUiLCAicGFyc2VKc29uQm9keSIsICJwYXJzZUpzb25FcnJvckJvZHkiLCAicGFyc2VYbWxCb2R5IiwgInBhcnNlWG1sRXJyb3JCb2R5IiwgImluaXRfcHJvdG9jb2xzIiwgIl9fZXNtTWluIiwgImluaXRfQXdzU21pdGh5UnBjVjJDYm9yUHJvdG9jb2wiLCAiaW5pdF9jb2VyY2luZ19zZXJpYWxpemVycyIsICJpbml0X0F3c0pzb24xXzBQcm90b2NvbCIsICJpbml0X0F3c0pzb24xXzFQcm90b2NvbCIsICJpbml0X0F3c0pzb25ScGNQcm90b2NvbCIsICJpbml0X0F3c1Jlc3RKc29uUHJvdG9jb2wiLCAiaW5pdF9Kc29uQ29kZWMiLCAiaW5pdF9Kc29uU2hhcGVEZXNlcmlhbGl6ZXIiLCAiaW5pdF9Kc29uU2hhcGVTZXJpYWxpemVyIiwgImluaXRfYXdzRXhwZWN0VW5pb24iLCAiaW5pdF9wYXJzZUpzb25Cb2R5IiwgImluaXRfQXdzRWMyUXVlcnlQcm90b2NvbCIsICJpbml0X0F3c1F1ZXJ5UHJvdG9jb2wiLCAiaW5pdF9RdWVyeVNlcmlhbGl6ZXJTZXR0aW5ncyIsICJpbml0X1F1ZXJ5U2hhcGVTZXJpYWxpemVyIiwgImluaXRfQXdzUmVzdFhtbFByb3RvY29sIiwgImluaXRfWG1sQ29kZWMiLCAiaW5pdF9YbWxTaGFwZURlc2VyaWFsaXplciIsICJpbml0X1htbFNoYXBlU2VyaWFsaXplciIsICJpbml0X3BhcnNlWG1sQm9keSIsICJpbXBvcnRfdXRpbF9lbmRwb2ludHMiLCAiayIsICJhIiwgImIiLCAiYyIsICJkIiwgImUiLCAiZiIsICJnIiwgImgiLCAiaSIsICJqIiwgIl9kYXRhIiwgInJvb3QiLCAiciIsICJub2RlcyIsICJiZGQiLCAiaW5pdF9iZGQiLCAiX19lc21NaW4iLCAiaW1wb3J0X3V0aWxfZW5kcG9pbnRzIiwgImNhY2hlIiwgImRlZmF1bHRFbmRwb2ludFJlc29sdmVyIiwgImluaXRfZW5kcG9pbnRSZXNvbHZlciIsICJfX2VzbU1pbiIsICJpbml0X2JkZCIsICJlbmRwb2ludFBhcmFtcyIsICJjb250ZXh0IiwgImJkZCIsICJpbXBvcnRfc21pdGh5X2NsaWVudCIsICJTU09PSURDU2VydmljZUV4Y2VwdGlvbiIsICJpbml0X1NTT09JRENTZXJ2aWNlRXhjZXB0aW9uIiwgIl9fZXNtTWluIiwgIl9TU09PSURDU2VydmljZUV4Y2VwdGlvbiIsICJfX1NlcnZpY2VFeGNlcHRpb24iLCAib3B0aW9ucyIsICJBY2Nlc3NEZW5pZWRFeGNlcHRpb24iLCAiQXV0aG9yaXphdGlvblBlbmRpbmdFeGNlcHRpb24iLCAiRXhwaXJlZFRva2VuRXhjZXB0aW9uIiwgIkludGVybmFsU2VydmVyRXhjZXB0aW9uIiwgIkludmFsaWRDbGllbnRFeGNlcHRpb24iLCAiSW52YWxpZEdyYW50RXhjZXB0aW9uIiwgIkludmFsaWRSZXF1ZXN0RXhjZXB0aW9uIiwgIkludmFsaWRTY29wZUV4Y2VwdGlvbiIsICJTbG93RG93bkV4Y2VwdGlvbiIsICJVbmF1dGhvcml6ZWRDbGllbnRFeGNlcHRpb24iLCAiVW5zdXBwb3J0ZWRHcmFudFR5cGVFeGNlcHRpb24iLCAiaW5pdF9lcnJvcnMiLCAiX19lc21NaW4iLCAiaW5pdF9TU09PSURDU2VydmljZUV4Y2VwdGlvbiIsICJfQWNjZXNzRGVuaWVkRXhjZXB0aW9uIiwgIlNTT09JRENTZXJ2aWNlRXhjZXB0aW9uIiwgIm9wdHMiLCAiX0F1dGhvcml6YXRpb25QZW5kaW5nRXhjZXB0aW9uIiwgIl9FeHBpcmVkVG9rZW5FeGNlcHRpb24iLCAiX0ludGVybmFsU2VydmVyRXhjZXB0aW9uIiwgIl9JbnZhbGlkQ2xpZW50RXhjZXB0aW9uIiwgIl9JbnZhbGlkR3JhbnRFeGNlcHRpb24iLCAiX0ludmFsaWRSZXF1ZXN0RXhjZXB0aW9uIiwgIl9JbnZhbGlkU2NvcGVFeGNlcHRpb24iLCAiX1Nsb3dEb3duRXhjZXB0aW9uIiwgIl9VbmF1dGhvcml6ZWRDbGllbnRFeGNlcHRpb24iLCAiX1Vuc3VwcG9ydGVkR3JhbnRUeXBlRXhjZXB0aW9uIiwgImltcG9ydF9zY2hlbWEiLCAiX0FERSIsICJfQVBFIiwgIl9BVCIsICJfQ1MiLCAiX0NUIiwgIl9DVFIiLCAiX0NUUnIiLCAiX0NWIiwgIl9FVEUiLCAiX0lDRSIsICJfSUdFIiwgIl9JUkUiLCAiX0lTRSIsICJfSVNFbiIsICJfSVQiLCAiX1JUIiwgIl9TREUiLCAiX1VDRSIsICJfVUdURSIsICJfYVQiLCAiX2MiLCAiX2NJIiwgIl9jUyIsICJfY1YiLCAiX2NvIiwgIl9kQyIsICJfZSIsICJfZUkiLCAiX2VkIiwgIl9nVCIsICJfaCIsICJfaEUiLCAiX2lUIiwgIl9yIiwgIl9yVCIsICJfclUiLCAiX3MiLCAiX3NjIiwgIl9zZSIsICJfdFQiLCAibjAiLCAiX3NfcmVnaXN0cnkiLCAiU1NPT0lEQ1NlcnZpY2VFeGNlcHRpb24kIiwgIm4wX3JlZ2lzdHJ5IiwgIkFjY2Vzc0RlbmllZEV4Y2VwdGlvbiQiLCAiQXV0aG9yaXphdGlvblBlbmRpbmdFeGNlcHRpb24kIiwgIkV4cGlyZWRUb2tlbkV4Y2VwdGlvbiQiLCAiSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb24kIiwgIkludmFsaWRDbGllbnRFeGNlcHRpb24kIiwgIkludmFsaWRHcmFudEV4Y2VwdGlvbiQiLCAiSW52YWxpZFJlcXVlc3RFeGNlcHRpb24kIiwgIkludmFsaWRTY29wZUV4Y2VwdGlvbiQiLCAiU2xvd0Rvd25FeGNlcHRpb24kIiwgIlVuYXV0aG9yaXplZENsaWVudEV4Y2VwdGlvbiQiLCAiVW5zdXBwb3J0ZWRHcmFudFR5cGVFeGNlcHRpb24kIiwgImVycm9yVHlwZVJlZ2lzdHJpZXMiLCAiQWNjZXNzVG9rZW4iLCAiQ2xpZW50U2VjcmV0IiwgIkNvZGVWZXJpZmllciIsICJJZFRva2VuIiwgIlJlZnJlc2hUb2tlbiIsICJDcmVhdGVUb2tlblJlcXVlc3QkIiwgIkNyZWF0ZVRva2VuUmVzcG9uc2UkIiwgIkNyZWF0ZVRva2VuJCIsICJpbml0X3NjaGVtYXNfMCIsICJfX2VzbU1pbiIsICJpbml0X2Vycm9ycyIsICJpbml0X1NTT09JRENTZXJ2aWNlRXhjZXB0aW9uIiwgIlNTT09JRENTZXJ2aWNlRXhjZXB0aW9uIiwgIkFjY2Vzc0RlbmllZEV4Y2VwdGlvbiIsICJBdXRob3JpemF0aW9uUGVuZGluZ0V4Y2VwdGlvbiIsICJFeHBpcmVkVG9rZW5FeGNlcHRpb24iLCAiSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb24iLCAiSW52YWxpZENsaWVudEV4Y2VwdGlvbiIsICJJbnZhbGlkR3JhbnRFeGNlcHRpb24iLCAiSW52YWxpZFJlcXVlc3RFeGNlcHRpb24iLCAiSW52YWxpZFNjb3BlRXhjZXB0aW9uIiwgIlNsb3dEb3duRXhjZXB0aW9uIiwgIlVuYXV0aG9yaXplZENsaWVudEV4Y2VwdGlvbiIsICJVbnN1cHBvcnRlZEdyYW50VHlwZUV4Y2VwdGlvbiIsICJpbXBvcnRfY29yZSIsICJpbXBvcnRfc21pdGh5X2NsaWVudCIsICJpbXBvcnRfdXJsX3BhcnNlciIsICJpbXBvcnRfdXRpbF9iYXNlNjQiLCAiaW1wb3J0X3V0aWxfdXRmOCIsICJnZXRSdW50aW1lQ29uZmlnIiwgImluaXRfcnVudGltZUNvbmZpZ19zaGFyZWQiLCAiX19lc21NaW4iLCAiaW5pdF9odHRwQXV0aFNjaGVtZXMiLCAiaW5pdF9wcm90b2NvbHMiLCAiaW5pdF9odHRwQXV0aFNjaGVtZVByb3ZpZGVyIiwgImluaXRfZW5kcG9pbnRSZXNvbHZlciIsICJpbml0X3NjaGVtYXNfMCIsICJjb25maWciLCAiZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIiLCAiZGVmYXVsdFNTT09JRENIdHRwQXV0aFNjaGVtZVByb3ZpZGVyIiwgImlwYyIsICJBd3NTZGtTaWdWNFNpZ25lciIsICJBd3NSZXN0SnNvblByb3RvY29sIiwgImVycm9yVHlwZVJlZ2lzdHJpZXMiLCAiaW1wb3J0X3V0aWxfdXNlcl9hZ2VudF9ub2RlIiwgImltcG9ydF9jb25maWdfcmVzb2x2ZXIiLCAiaW1wb3J0X2hhc2hfbm9kZSIsICJpbXBvcnRfbWlkZGxld2FyZV9yZXRyeSIsICJpbXBvcnRfbm9kZV9jb25maWdfcHJvdmlkZXIiLCAiaW1wb3J0X25vZGVfaHR0cF9oYW5kbGVyIiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgImltcG9ydF91dGlsX2JvZHlfbGVuZ3RoX25vZGUiLCAiaW1wb3J0X3V0aWxfZGVmYXVsdHNfbW9kZV9ub2RlIiwgImltcG9ydF91dGlsX3JldHJ5IiwgImdldFJ1bnRpbWVDb25maWciLCAiaW5pdF9ydW50aW1lQ29uZmlnIiwgIl9fZXNtTWluIiwgImluaXRfcGFja2FnZSIsICJpbml0X2NsaWVudCIsICJpbml0X2h0dHBBdXRoU2NoZW1lcyIsICJpbml0X3J1bnRpbWVDb25maWdfc2hhcmVkIiwgImNvbmZpZyIsICJkZWZhdWx0c01vZGUiLCAiZGVmYXVsdENvbmZpZ1Byb3ZpZGVyIiwgImNsaWVudFNoYXJlZFZhbHVlcyIsICJlbWl0V2FybmluZ0lmVW5zdXBwb3J0ZWRWZXJzaW9uIiwgImxvYWRlckNvbmZpZyIsICJsb2FkTm9kZUNvbmZpZyIsICJOT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfT1BUSU9OUyIsICJwYWNrYWdlX2RlZmF1bHQiLCAiUmVxdWVzdEhhbmRsZXIiLCAicmVxdWlyZV9zdHNSZWdpb25EZWZhdWx0UmVzb2x2ZXIiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgInN0c1JlZ2lvbkRlZmF1bHRSZXNvbHZlciIsICJjb25maWdfcmVzb2x2ZXJfMSIsICJub2RlX2NvbmZpZ19wcm92aWRlcl8xIiwgImxvYWRlckNvbmZpZyIsICJyZXF1aXJlX2Rpc3RfY2pzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJzdHNSZWdpb25EZWZhdWx0UmVzb2x2ZXIiLCAiY29uZmlnUmVzb2x2ZXIiLCAiZ2V0QXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiIsICJydW50aW1lQ29uZmlnIiwgInJlZ2lvbiIsICJyZXNvbHZlQXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiIsICJhd3NSZWdpb25FeHRlbnNpb25Db25maWd1cmF0aW9uIiwgImsiLCAiZ2V0SHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uIiwgInJlc29sdmVIdHRwQXV0aFJ1bnRpbWVDb25maWciLCAiaW5pdF9odHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24iLCAiX19lc21NaW4iLCAicnVudGltZUNvbmZpZyIsICJfaHR0cEF1dGhTY2hlbWVzIiwgIl9odHRwQXV0aFNjaGVtZVByb3ZpZGVyIiwgIl9jcmVkZW50aWFscyIsICJodHRwQXV0aFNjaGVtZSIsICJpbmRleCIsICJzY2hlbWUiLCAiaHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJjcmVkZW50aWFscyIsICJjb25maWciLCAiaW1wb3J0X3JlZ2lvbl9jb25maWdfcmVzb2x2ZXIiLCAiaW1wb3J0X3Byb3RvY29sX2h0dHAiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAicmVzb2x2ZVJ1bnRpbWVFeHRlbnNpb25zIiwgImluaXRfcnVudGltZUV4dGVuc2lvbnMiLCAiX19lc21NaW4iLCAiaW5pdF9odHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24iLCAicnVudGltZUNvbmZpZyIsICJleHRlbnNpb25zIiwgImV4dGVuc2lvbkNvbmZpZ3VyYXRpb24iLCAiZ2V0SHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uIiwgImV4dGVuc2lvbiIsICJyZXNvbHZlSHR0cEF1dGhSdW50aW1lQ29uZmlnIiwgImltcG9ydF9taWRkbGV3YXJlX2hvc3RfaGVhZGVyIiwgImltcG9ydF9taWRkbGV3YXJlX2xvZ2dlciIsICJpbXBvcnRfbWlkZGxld2FyZV9yZWN1cnNpb25fZGV0ZWN0aW9uIiwgImltcG9ydF9taWRkbGV3YXJlX3VzZXJfYWdlbnQiLCAiaW1wb3J0X2NvbmZpZ19yZXNvbHZlciIsICJpbXBvcnRfY29yZSIsICJpbXBvcnRfc2NoZW1hIiwgImltcG9ydF9taWRkbGV3YXJlX2NvbnRlbnRfbGVuZ3RoIiwgImltcG9ydF9taWRkbGV3YXJlX2VuZHBvaW50IiwgImltcG9ydF9taWRkbGV3YXJlX3JldHJ5IiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgIlNTT09JRENDbGllbnQiLCAiaW5pdF9TU09PSURDQ2xpZW50IiwgIl9fZXNtTWluIiwgImluaXRfaHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJpbml0X0VuZHBvaW50UGFyYW1ldGVycyIsICJpbml0X3J1bnRpbWVDb25maWciLCAiaW5pdF9ydW50aW1lRXh0ZW5zaW9ucyIsICJfX0NsaWVudCIsICJjb25maWd1cmF0aW9uIiwgIl9jb25maWdfMCIsICJnZXRSdW50aW1lQ29uZmlnIiwgIl9jb25maWdfMSIsICJyZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzIiwgIl9jb25maWdfMiIsICJfY29uZmlnXzMiLCAiX2NvbmZpZ180IiwgIl9jb25maWdfNSIsICJfY29uZmlnXzYiLCAiX2NvbmZpZ183IiwgInJlc29sdmVIdHRwQXV0aFNjaGVtZUNvbmZpZyIsICJfY29uZmlnXzgiLCAicmVzb2x2ZVJ1bnRpbWVFeHRlbnNpb25zIiwgImRlZmF1bHRTU09PSURDSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIiLCAiY29uZmlnIiwgImltcG9ydF9taWRkbGV3YXJlX2VuZHBvaW50IiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgIkNyZWF0ZVRva2VuQ29tbWFuZCIsICJpbml0X0NyZWF0ZVRva2VuQ29tbWFuZCIsICJfX2VzbU1pbiIsICJpbml0X0VuZHBvaW50UGFyYW1ldGVycyIsICJpbml0X3NjaGVtYXNfMCIsICIkQ29tbWFuZCIsICJjb21tb25QYXJhbXMiLCAiQ29tbWFuZCIsICJjcyIsICJjb25maWciLCAibyIsICJDcmVhdGVUb2tlbiQiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAiY29tbWFuZHMiLCAiU1NPT0lEQyIsICJpbml0X1NTT09JREMiLCAiX19lc21NaW4iLCAiaW5pdF9DcmVhdGVUb2tlbkNvbW1hbmQiLCAiaW5pdF9TU09PSURDQ2xpZW50IiwgIkNyZWF0ZVRva2VuQ29tbWFuZCIsICJTU09PSURDQ2xpZW50IiwgImluaXRfY29tbWFuZHMiLCAiX19lc21NaW4iLCAiaW5pdF9DcmVhdGVUb2tlbkNvbW1hbmQiLCAiQWNjZXNzRGVuaWVkRXhjZXB0aW9uUmVhc29uIiwgIkludmFsaWRSZXF1ZXN0RXhjZXB0aW9uUmVhc29uIiwgImluaXRfZW51bXMiLCAiX19lc21NaW4iLCAiaW5pdF9tb2RlbHNfMCIsICJfX2VzbU1pbiIsICJzc29fb2lkY19leHBvcnRzIiwgIl9fZXhwb3J0IiwgIiRDb21tYW5kIiwgIkFjY2Vzc0RlbmllZEV4Y2VwdGlvbiIsICJBY2Nlc3NEZW5pZWRFeGNlcHRpb24kIiwgIkFjY2Vzc0RlbmllZEV4Y2VwdGlvblJlYXNvbiIsICJBdXRob3JpemF0aW9uUGVuZGluZ0V4Y2VwdGlvbiIsICJBdXRob3JpemF0aW9uUGVuZGluZ0V4Y2VwdGlvbiQiLCAiQ3JlYXRlVG9rZW4kIiwgIkNyZWF0ZVRva2VuQ29tbWFuZCIsICJDcmVhdGVUb2tlblJlcXVlc3QkIiwgIkNyZWF0ZVRva2VuUmVzcG9uc2UkIiwgIkV4cGlyZWRUb2tlbkV4Y2VwdGlvbiIsICJFeHBpcmVkVG9rZW5FeGNlcHRpb24kIiwgIkludGVybmFsU2VydmVyRXhjZXB0aW9uIiwgIkludGVybmFsU2VydmVyRXhjZXB0aW9uJCIsICJJbnZhbGlkQ2xpZW50RXhjZXB0aW9uIiwgIkludmFsaWRDbGllbnRFeGNlcHRpb24kIiwgIkludmFsaWRHcmFudEV4Y2VwdGlvbiIsICJJbnZhbGlkR3JhbnRFeGNlcHRpb24kIiwgIkludmFsaWRSZXF1ZXN0RXhjZXB0aW9uIiwgIkludmFsaWRSZXF1ZXN0RXhjZXB0aW9uJCIsICJJbnZhbGlkUmVxdWVzdEV4Y2VwdGlvblJlYXNvbiIsICJJbnZhbGlkU2NvcGVFeGNlcHRpb24iLCAiSW52YWxpZFNjb3BlRXhjZXB0aW9uJCIsICJTU09PSURDIiwgIlNTT09JRENDbGllbnQiLCAiU1NPT0lEQ1NlcnZpY2VFeGNlcHRpb24iLCAiU1NPT0lEQ1NlcnZpY2VFeGNlcHRpb24kIiwgIlNsb3dEb3duRXhjZXB0aW9uIiwgIlNsb3dEb3duRXhjZXB0aW9uJCIsICJVbmF1dGhvcml6ZWRDbGllbnRFeGNlcHRpb24iLCAiVW5hdXRob3JpemVkQ2xpZW50RXhjZXB0aW9uJCIsICJVbnN1cHBvcnRlZEdyYW50VHlwZUV4Y2VwdGlvbiIsICJVbnN1cHBvcnRlZEdyYW50VHlwZUV4Y2VwdGlvbiQiLCAiX19DbGllbnQiLCAiZXJyb3JUeXBlUmVnaXN0cmllcyIsICJpbml0X3Nzb19vaWRjIiwgIl9fZXNtTWluIiwgImluaXRfU1NPT0lEQ0NsaWVudCIsICJpbml0X1NTT09JREMiLCAiaW5pdF9jb21tYW5kcyIsICJpbml0X3NjaGVtYXNfMCIsICJpbml0X2VudW1zIiwgImluaXRfZXJyb3JzIiwgImluaXRfbW9kZWxzXzAiLCAiaW5pdF9TU09PSURDU2VydmljZUV4Y2VwdGlvbiIsICJyZXF1aXJlX2Rpc3RfY2pzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJjbGllbnQiLCAiaHR0cEF1dGhTY2hlbWVzIiwgInByb3BlcnR5UHJvdmlkZXIiLCAic2hhcmVkSW5pRmlsZUxvYWRlciIsICJub2RlX2ZzIiwgImZyb21FbnZTaWduaW5nTmFtZSIsICJsb2dnZXIiLCAic2lnbmluZ05hbWUiLCAiYmVhcmVyVG9rZW5LZXkiLCAidG9rZW4iLCAiRVhQSVJFX1dJTkRPV19NUyIsICJSRUZSRVNIX01FU1NBR0UiLCAiZ2V0U3NvT2lkY0NsaWVudCIsICJzc29SZWdpb24iLCAiaW5pdCIsICJjYWxsZXJDbGllbnRDb25maWciLCAiU1NPT0lEQ0NsaWVudCIsICJjb2FsZXNjZSIsICJwcm9wIiwgImdldE5ld1Nzb09pZGNUb2tlbiIsICJzc29Ub2tlbiIsICJDcmVhdGVUb2tlbkNvbW1hbmQiLCAidmFsaWRhdGVUb2tlbkV4cGlyeSIsICJ2YWxpZGF0ZVRva2VuS2V5IiwgImtleSIsICJ2YWx1ZSIsICJmb3JSZWZyZXNoIiwgIndyaXRlRmlsZSIsICJ3cml0ZVNTT1Rva2VuVG9GaWxlIiwgImlkIiwgInRva2VuRmlsZXBhdGgiLCAidG9rZW5TdHJpbmciLCAibGFzdFJlZnJlc2hBdHRlbXB0VGltZSIsICJmcm9tU3NvIiwgInByb2ZpbGVzIiwgInByb2ZpbGVOYW1lIiwgInByb2ZpbGUiLCAic3NvU2Vzc2lvbk5hbWUiLCAic3NvU2Vzc2lvbiIsICJzc29TZXNzaW9uUmVxdWlyZWRLZXkiLCAiYWNjZXNzVG9rZW4iLCAiZXhwaXJlc0F0IiwgImV4aXN0aW5nVG9rZW4iLCAibmV3U3NvT2lkY1Rva2VuIiwgIm5ld1Rva2VuRXhwaXJhdGlvbiIsICJmcm9tU3RhdGljIiwgIm5vZGVQcm92aWRlciIsICJjcmVhdGVBd3NBdXRoU2lndjRIdHRwQXV0aE9wdGlvbiIsICJhdXRoUGFyYW1ldGVycyIsICJjb25maWciLCAiY29udGV4dCIsICJjcmVhdGVTbWl0aHlBcGlOb0F1dGhIdHRwQXV0aE9wdGlvbiIsICJpbXBvcnRfdXRpbF9taWRkbGV3YXJlIiwgImRlZmF1bHRTU09IdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlciIsICJkZWZhdWx0U1NPSHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJyZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWciLCAiaW5pdF9odHRwQXV0aFNjaGVtZVByb3ZpZGVyIiwgIl9fZXNtTWluIiwgImluaXRfaHR0cEF1dGhTY2hlbWVzIiwgImlucHV0IiwgIm9wdGlvbnMiLCAiY29uZmlnXzAiLCAicmVzb2x2ZUF3c1Nka1NpZ1Y0Q29uZmlnIiwgInJlc29sdmVDbGllbnRFbmRwb2ludFBhcmFtZXRlcnMiLCAiY29tbW9uUGFyYW1zIiwgImluaXRfRW5kcG9pbnRQYXJhbWV0ZXJzIiwgIl9fZXNtTWluIiwgIm9wdGlvbnMiLCAiaW1wb3J0X3V0aWxfZW5kcG9pbnRzIiwgImsiLCAiYSIsICJiIiwgImMiLCAiZCIsICJlIiwgImYiLCAiZyIsICJoIiwgImkiLCAiaiIsICJfZGF0YSIsICJyb290IiwgInIiLCAibm9kZXMiLCAiYmRkIiwgImluaXRfYmRkIiwgIl9fZXNtTWluIiwgImltcG9ydF91dGlsX2VuZHBvaW50cyIsICJjYWNoZSIsICJkZWZhdWx0RW5kcG9pbnRSZXNvbHZlciIsICJpbml0X2VuZHBvaW50UmVzb2x2ZXIiLCAiX19lc21NaW4iLCAiaW5pdF9iZGQiLCAiZW5kcG9pbnRQYXJhbXMiLCAiY29udGV4dCIsICJiZGQiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAiU1NPU2VydmljZUV4Y2VwdGlvbiIsICJpbml0X1NTT1NlcnZpY2VFeGNlcHRpb24iLCAiX19lc21NaW4iLCAiX1NTT1NlcnZpY2VFeGNlcHRpb24iLCAiX19TZXJ2aWNlRXhjZXB0aW9uIiwgIm9wdGlvbnMiLCAiSW52YWxpZFJlcXVlc3RFeGNlcHRpb24iLCAiUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvbiIsICJUb29NYW55UmVxdWVzdHNFeGNlcHRpb24iLCAiVW5hdXRob3JpemVkRXhjZXB0aW9uIiwgImluaXRfZXJyb3JzIiwgIl9fZXNtTWluIiwgImluaXRfU1NPU2VydmljZUV4Y2VwdGlvbiIsICJfSW52YWxpZFJlcXVlc3RFeGNlcHRpb24iLCAiU1NPU2VydmljZUV4Y2VwdGlvbiIsICJvcHRzIiwgIl9SZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uIiwgIl9Ub29NYW55UmVxdWVzdHNFeGNlcHRpb24iLCAiX1VuYXV0aG9yaXplZEV4Y2VwdGlvbiIsICJpbXBvcnRfc2NoZW1hIiwgIl9BVFQiLCAiX0dSQyIsICJfR1JDUiIsICJfR1JDUmUiLCAiX0lSRSIsICJfUkMiLCAiX1JORkUiLCAiX1NBS1QiLCAiX1NUVCIsICJfVE1SRSIsICJfVUUiLCAiX2FJIiwgIl9hS0kiLCAiX2FUIiwgIl9haSIsICJfYyIsICJfZSIsICJfZXgiLCAiX2giLCAiX2hFIiwgIl9oSCIsICJfaFEiLCAiX20iLCAiX3JDIiwgIl9yTiIsICJfcm4iLCAiX3MiLCAiX3NBSyIsICJfc1QiLCAiX3hhc2J0IiwgIm4wIiwgIl9zX3JlZ2lzdHJ5IiwgIlNTT1NlcnZpY2VFeGNlcHRpb24kIiwgIm4wX3JlZ2lzdHJ5IiwgIkludmFsaWRSZXF1ZXN0RXhjZXB0aW9uJCIsICJSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uJCIsICJUb29NYW55UmVxdWVzdHNFeGNlcHRpb24kIiwgIlVuYXV0aG9yaXplZEV4Y2VwdGlvbiQiLCAiZXJyb3JUeXBlUmVnaXN0cmllcyIsICJBY2Nlc3NUb2tlblR5cGUiLCAiU2VjcmV0QWNjZXNzS2V5VHlwZSIsICJTZXNzaW9uVG9rZW5UeXBlIiwgIkdldFJvbGVDcmVkZW50aWFsc1JlcXVlc3QkIiwgIkdldFJvbGVDcmVkZW50aWFsc1Jlc3BvbnNlJCIsICJSb2xlQ3JlZGVudGlhbHMkIiwgIkdldFJvbGVDcmVkZW50aWFscyQiLCAiaW5pdF9zY2hlbWFzXzAiLCAiX19lc21NaW4iLCAiaW5pdF9lcnJvcnMiLCAiaW5pdF9TU09TZXJ2aWNlRXhjZXB0aW9uIiwgIlNTT1NlcnZpY2VFeGNlcHRpb24iLCAiSW52YWxpZFJlcXVlc3RFeGNlcHRpb24iLCAiUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvbiIsICJUb29NYW55UmVxdWVzdHNFeGNlcHRpb24iLCAiVW5hdXRob3JpemVkRXhjZXB0aW9uIiwgImltcG9ydF9jb3JlIiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgImltcG9ydF91cmxfcGFyc2VyIiwgImltcG9ydF91dGlsX2Jhc2U2NCIsICJpbXBvcnRfdXRpbF91dGY4IiwgImdldFJ1bnRpbWVDb25maWciLCAiaW5pdF9ydW50aW1lQ29uZmlnX3NoYXJlZCIsICJfX2VzbU1pbiIsICJpbml0X2h0dHBBdXRoU2NoZW1lcyIsICJpbml0X3Byb3RvY29scyIsICJpbml0X2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAiaW5pdF9lbmRwb2ludFJlc29sdmVyIiwgImluaXRfc2NoZW1hc18wIiwgImNvbmZpZyIsICJkZWZhdWx0RW5kcG9pbnRSZXNvbHZlciIsICJkZWZhdWx0U1NPSHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJpcGMiLCAiQXdzU2RrU2lnVjRTaWduZXIiLCAiQXdzUmVzdEpzb25Qcm90b2NvbCIsICJlcnJvclR5cGVSZWdpc3RyaWVzIiwgImltcG9ydF91dGlsX3VzZXJfYWdlbnRfbm9kZSIsICJpbXBvcnRfY29uZmlnX3Jlc29sdmVyIiwgImltcG9ydF9oYXNoX25vZGUiLCAiaW1wb3J0X21pZGRsZXdhcmVfcmV0cnkiLCAiaW1wb3J0X25vZGVfY29uZmlnX3Byb3ZpZGVyIiwgImltcG9ydF9ub2RlX2h0dHBfaGFuZGxlciIsICJpbXBvcnRfc21pdGh5X2NsaWVudCIsICJpbXBvcnRfdXRpbF9ib2R5X2xlbmd0aF9ub2RlIiwgImltcG9ydF91dGlsX2RlZmF1bHRzX21vZGVfbm9kZSIsICJpbXBvcnRfdXRpbF9yZXRyeSIsICJnZXRSdW50aW1lQ29uZmlnIiwgImluaXRfcnVudGltZUNvbmZpZyIsICJfX2VzbU1pbiIsICJpbml0X3BhY2thZ2UiLCAiaW5pdF9jbGllbnQiLCAiaW5pdF9odHRwQXV0aFNjaGVtZXMiLCAiaW5pdF9ydW50aW1lQ29uZmlnX3NoYXJlZCIsICJjb25maWciLCAiZGVmYXVsdHNNb2RlIiwgImRlZmF1bHRDb25maWdQcm92aWRlciIsICJjbGllbnRTaGFyZWRWYWx1ZXMiLCAiZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbiIsICJsb2FkZXJDb25maWciLCAibG9hZE5vZGVDb25maWciLCAiTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX09QVElPTlMiLCAicGFja2FnZV9kZWZhdWx0IiwgIlJlcXVlc3RIYW5kbGVyIiwgImdldEh0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiIsICJyZXNvbHZlSHR0cEF1dGhSdW50aW1lQ29uZmlnIiwgImluaXRfaHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uIiwgIl9fZXNtTWluIiwgInJ1bnRpbWVDb25maWciLCAiX2h0dHBBdXRoU2NoZW1lcyIsICJfaHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJfY3JlZGVudGlhbHMiLCAiaHR0cEF1dGhTY2hlbWUiLCAiaW5kZXgiLCAic2NoZW1lIiwgImh0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAiY3JlZGVudGlhbHMiLCAiY29uZmlnIiwgImltcG9ydF9yZWdpb25fY29uZmlnX3Jlc29sdmVyIiwgImltcG9ydF9wcm90b2NvbF9odHRwIiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgInJlc29sdmVSdW50aW1lRXh0ZW5zaW9ucyIsICJpbml0X3J1bnRpbWVFeHRlbnNpb25zIiwgIl9fZXNtTWluIiwgImluaXRfaHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uIiwgInJ1bnRpbWVDb25maWciLCAiZXh0ZW5zaW9ucyIsICJleHRlbnNpb25Db25maWd1cmF0aW9uIiwgImdldEh0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiIsICJleHRlbnNpb24iLCAicmVzb2x2ZUh0dHBBdXRoUnVudGltZUNvbmZpZyIsICJpbXBvcnRfbWlkZGxld2FyZV9ob3N0X2hlYWRlciIsICJpbXBvcnRfbWlkZGxld2FyZV9sb2dnZXIiLCAiaW1wb3J0X21pZGRsZXdhcmVfcmVjdXJzaW9uX2RldGVjdGlvbiIsICJpbXBvcnRfbWlkZGxld2FyZV91c2VyX2FnZW50IiwgImltcG9ydF9jb25maWdfcmVzb2x2ZXIiLCAiaW1wb3J0X2NvcmUiLCAiaW1wb3J0X3NjaGVtYSIsICJpbXBvcnRfbWlkZGxld2FyZV9jb250ZW50X2xlbmd0aCIsICJpbXBvcnRfbWlkZGxld2FyZV9lbmRwb2ludCIsICJpbXBvcnRfbWlkZGxld2FyZV9yZXRyeSIsICJpbXBvcnRfc21pdGh5X2NsaWVudCIsICJTU09DbGllbnQiLCAiaW5pdF9TU09DbGllbnQiLCAiX19lc21NaW4iLCAiaW5pdF9odHRwQXV0aFNjaGVtZVByb3ZpZGVyIiwgImluaXRfRW5kcG9pbnRQYXJhbWV0ZXJzIiwgImluaXRfcnVudGltZUNvbmZpZyIsICJpbml0X3J1bnRpbWVFeHRlbnNpb25zIiwgIl9fQ2xpZW50IiwgImNvbmZpZ3VyYXRpb24iLCAiX2NvbmZpZ18wIiwgImdldFJ1bnRpbWVDb25maWciLCAiX2NvbmZpZ18xIiwgInJlc29sdmVDbGllbnRFbmRwb2ludFBhcmFtZXRlcnMiLCAiX2NvbmZpZ18yIiwgIl9jb25maWdfMyIsICJfY29uZmlnXzQiLCAiX2NvbmZpZ181IiwgIl9jb25maWdfNiIsICJfY29uZmlnXzciLCAicmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnIiwgIl9jb25maWdfOCIsICJyZXNvbHZlUnVudGltZUV4dGVuc2lvbnMiLCAiZGVmYXVsdFNTT0h0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyIiwgImNvbmZpZyIsICJpbXBvcnRfbWlkZGxld2FyZV9lbmRwb2ludCIsICJpbXBvcnRfc21pdGh5X2NsaWVudCIsICJHZXRSb2xlQ3JlZGVudGlhbHNDb21tYW5kIiwgImluaXRfR2V0Um9sZUNyZWRlbnRpYWxzQ29tbWFuZCIsICJfX2VzbU1pbiIsICJpbml0X0VuZHBvaW50UGFyYW1ldGVycyIsICJpbml0X3NjaGVtYXNfMCIsICIkQ29tbWFuZCIsICJjb21tb25QYXJhbXMiLCAiQ29tbWFuZCIsICJjcyIsICJjb25maWciLCAibyIsICJHZXRSb2xlQ3JlZGVudGlhbHMkIiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgImNvbW1hbmRzIiwgIlNTTyIsICJpbml0X1NTTyIsICJfX2VzbU1pbiIsICJpbml0X0dldFJvbGVDcmVkZW50aWFsc0NvbW1hbmQiLCAiaW5pdF9TU09DbGllbnQiLCAiR2V0Um9sZUNyZWRlbnRpYWxzQ29tbWFuZCIsICJTU09DbGllbnQiLCAiaW5pdF9jb21tYW5kcyIsICJfX2VzbU1pbiIsICJpbml0X0dldFJvbGVDcmVkZW50aWFsc0NvbW1hbmQiLCAiaW5pdF9tb2RlbHNfMCIsICJfX2VzbU1pbiIsICJzc29fZXhwb3J0cyIsICJfX2V4cG9ydCIsICIkQ29tbWFuZCIsICJHZXRSb2xlQ3JlZGVudGlhbHMkIiwgIkdldFJvbGVDcmVkZW50aWFsc0NvbW1hbmQiLCAiR2V0Um9sZUNyZWRlbnRpYWxzUmVxdWVzdCQiLCAiR2V0Um9sZUNyZWRlbnRpYWxzUmVzcG9uc2UkIiwgIkludmFsaWRSZXF1ZXN0RXhjZXB0aW9uIiwgIkludmFsaWRSZXF1ZXN0RXhjZXB0aW9uJCIsICJSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uIiwgIlJlc291cmNlTm90Rm91bmRFeGNlcHRpb24kIiwgIlJvbGVDcmVkZW50aWFscyQiLCAiU1NPIiwgIlNTT0NsaWVudCIsICJTU09TZXJ2aWNlRXhjZXB0aW9uIiwgIlNTT1NlcnZpY2VFeGNlcHRpb24kIiwgIlRvb01hbnlSZXF1ZXN0c0V4Y2VwdGlvbiIsICJUb29NYW55UmVxdWVzdHNFeGNlcHRpb24kIiwgIlVuYXV0aG9yaXplZEV4Y2VwdGlvbiIsICJVbmF1dGhvcml6ZWRFeGNlcHRpb24kIiwgIl9fQ2xpZW50IiwgImVycm9yVHlwZVJlZ2lzdHJpZXMiLCAiaW5pdF9zc28iLCAiX19lc21NaW4iLCAiaW5pdF9TU09DbGllbnQiLCAiaW5pdF9TU08iLCAiaW5pdF9jb21tYW5kcyIsICJpbml0X3NjaGVtYXNfMCIsICJpbml0X2Vycm9ycyIsICJpbml0X21vZGVsc18wIiwgImluaXRfU1NPU2VydmljZUV4Y2VwdGlvbiIsICJyZXF1aXJlX2xvYWRTc29fQktETnJzYWwiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgInNzbyIsICJyZXF1aXJlX2Rpc3RfY2pzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJwcm9wZXJ0eVByb3ZpZGVyIiwgInNoYXJlZEluaUZpbGVMb2FkZXIiLCAiY2xpZW50IiwgInRva2VuUHJvdmlkZXJzIiwgImlzU3NvUHJvZmlsZSIsICJhcmciLCAiU0hPVUxEX0ZBSUxfQ1JFREVOVElBTF9DSEFJTiIsICJyZXNvbHZlU1NPQ3JlZGVudGlhbHMiLCAic3NvU3RhcnRVcmwiLCAic3NvU2Vzc2lvbiIsICJzc29BY2NvdW50SWQiLCAic3NvUmVnaW9uIiwgInNzb1JvbGVOYW1lIiwgInNzb0NsaWVudCIsICJjbGllbnRDb25maWciLCAicGFyZW50Q2xpZW50Q29uZmlnIiwgImNhbGxlckNsaWVudENvbmZpZyIsICJwcm9maWxlIiwgImZpbGVwYXRoIiwgImNvbmZpZ0ZpbGVwYXRoIiwgImlnbm9yZUNhY2hlIiwgImxvZ2dlciIsICJ0b2tlbiIsICJyZWZyZXNoTWVzc2FnZSIsICJfdG9rZW4iLCAiZSIsICJhY2Nlc3NUb2tlbiIsICJTU09DbGllbnQiLCAiR2V0Um9sZUNyZWRlbnRpYWxzQ29tbWFuZCIsICJzc28iLCAic3NvUmVzcCIsICJhY2Nlc3NLZXlJZCIsICJzZWNyZXRBY2Nlc3NLZXkiLCAic2Vzc2lvblRva2VuIiwgImV4cGlyYXRpb24iLCAiY3JlZGVudGlhbFNjb3BlIiwgImFjY291bnRJZCIsICJjcmVkZW50aWFscyIsICJ2YWxpZGF0ZVNzb1Byb2ZpbGUiLCAic3NvX3N0YXJ0X3VybCIsICJzc29fYWNjb3VudF9pZCIsICJzc29fcmVnaW9uIiwgInNzb19yb2xlX25hbWUiLCAiZnJvbVNTTyIsICJpbml0IiwgInByb2ZpbGVOYW1lIiwgInNlc3Npb24iLCAiY29uZmxpY3RNc2ciLCAic3NvX3Nlc3Npb24iLCAiY3JlYXRlQXdzQXV0aFNpZ3Y0SHR0cEF1dGhPcHRpb24iLCAiYXV0aFBhcmFtZXRlcnMiLCAiY29uZmlnIiwgImNvbnRleHQiLCAiY3JlYXRlU21pdGh5QXBpTm9BdXRoSHR0cEF1dGhPcHRpb24iLCAiaW1wb3J0X3V0aWxfbWlkZGxld2FyZSIsICJkZWZhdWx0U2lnbmluSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIiLCAiZGVmYXVsdFNpZ25pbkh0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAicmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnIiwgImluaXRfaHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJfX2VzbU1pbiIsICJpbml0X2h0dHBBdXRoU2NoZW1lcyIsICJpbnB1dCIsICJvcHRpb25zIiwgImNvbmZpZ18wIiwgInJlc29sdmVBd3NTZGtTaWdWNENvbmZpZyIsICJyZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzIiwgImNvbW1vblBhcmFtcyIsICJpbml0X0VuZHBvaW50UGFyYW1ldGVycyIsICJfX2VzbU1pbiIsICJvcHRpb25zIiwgImltcG9ydF91dGlsX2VuZHBvaW50cyIsICJtIiwgImEiLCAiYiIsICJjIiwgImQiLCAiZSIsICJmIiwgImciLCAiaCIsICJpIiwgImoiLCAiayIsICJsIiwgIl9kYXRhIiwgInJvb3QiLCAiciIsICJub2RlcyIsICJiZGQiLCAiaW5pdF9iZGQiLCAiX19lc21NaW4iLCAiaW1wb3J0X3V0aWxfZW5kcG9pbnRzIiwgImNhY2hlIiwgImRlZmF1bHRFbmRwb2ludFJlc29sdmVyIiwgImluaXRfZW5kcG9pbnRSZXNvbHZlciIsICJfX2VzbU1pbiIsICJpbml0X2JkZCIsICJlbmRwb2ludFBhcmFtcyIsICJjb250ZXh0IiwgImJkZCIsICJpbXBvcnRfc21pdGh5X2NsaWVudCIsICJTaWduaW5TZXJ2aWNlRXhjZXB0aW9uIiwgImluaXRfU2lnbmluU2VydmljZUV4Y2VwdGlvbiIsICJfX2VzbU1pbiIsICJfU2lnbmluU2VydmljZUV4Y2VwdGlvbiIsICJfX1NlcnZpY2VFeGNlcHRpb24iLCAib3B0aW9ucyIsICJBY2Nlc3NEZW5pZWRFeGNlcHRpb24iLCAiSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb24iLCAiVG9vTWFueVJlcXVlc3RzRXJyb3IiLCAiVmFsaWRhdGlvbkV4Y2VwdGlvbiIsICJpbml0X2Vycm9ycyIsICJfX2VzbU1pbiIsICJpbml0X1NpZ25pblNlcnZpY2VFeGNlcHRpb24iLCAiX0FjY2Vzc0RlbmllZEV4Y2VwdGlvbiIsICJTaWduaW5TZXJ2aWNlRXhjZXB0aW9uIiwgIm9wdHMiLCAiX0ludGVybmFsU2VydmVyRXhjZXB0aW9uIiwgIl9Ub29NYW55UmVxdWVzdHNFcnJvciIsICJfVmFsaWRhdGlvbkV4Y2VwdGlvbiIsICJpbXBvcnRfc2NoZW1hIiwgIl9BREUiLCAiX0FUIiwgIl9DT0FUIiwgIl9DT0FUUiIsICJfQ09BVFJCIiwgIl9DT0FUUkJyIiwgIl9DT0FUUnIiLCAiX0lTRSIsICJfUlQiLCAiX1RNUkUiLCAiX1ZFIiwgIl9hS0kiLCAiX2FUIiwgIl9jIiwgIl9jSSIsICJfY1YiLCAiX2NvIiwgIl9lIiwgIl9lSSIsICJfZ1QiLCAiX2giLCAiX2hFIiwgIl9pVCIsICJfak4iLCAiX20iLCAiX3JUIiwgIl9yVSIsICJfcyIsICJfc0FLIiwgIl9zVCIsICJfc2UiLCAiX3RJIiwgIl90TyIsICJfdFQiLCAibjAiLCAiX3NfcmVnaXN0cnkiLCAiU2lnbmluU2VydmljZUV4Y2VwdGlvbiQiLCAibjBfcmVnaXN0cnkiLCAiQWNjZXNzRGVuaWVkRXhjZXB0aW9uJCIsICJJbnRlcm5hbFNlcnZlckV4Y2VwdGlvbiQiLCAiVG9vTWFueVJlcXVlc3RzRXJyb3IkIiwgIlZhbGlkYXRpb25FeGNlcHRpb24kIiwgImVycm9yVHlwZVJlZ2lzdHJpZXMiLCAiUmVmcmVzaFRva2VuIiwgIkFjY2Vzc1Rva2VuJCIsICJDcmVhdGVPQXV0aDJUb2tlblJlcXVlc3QkIiwgIkNyZWF0ZU9BdXRoMlRva2VuUmVxdWVzdEJvZHkkIiwgIkNyZWF0ZU9BdXRoMlRva2VuUmVzcG9uc2UkIiwgIkNyZWF0ZU9BdXRoMlRva2VuUmVzcG9uc2VCb2R5JCIsICJDcmVhdGVPQXV0aDJUb2tlbiQiLCAiaW5pdF9zY2hlbWFzXzAiLCAiX19lc21NaW4iLCAiaW5pdF9lcnJvcnMiLCAiaW5pdF9TaWduaW5TZXJ2aWNlRXhjZXB0aW9uIiwgIlNpZ25pblNlcnZpY2VFeGNlcHRpb24iLCAiQWNjZXNzRGVuaWVkRXhjZXB0aW9uIiwgIkludGVybmFsU2VydmVyRXhjZXB0aW9uIiwgIlRvb01hbnlSZXF1ZXN0c0Vycm9yIiwgIlZhbGlkYXRpb25FeGNlcHRpb24iLCAiaW1wb3J0X2NvcmUiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAiaW1wb3J0X3VybF9wYXJzZXIiLCAiaW1wb3J0X3V0aWxfYmFzZTY0IiwgImltcG9ydF91dGlsX3V0ZjgiLCAiZ2V0UnVudGltZUNvbmZpZyIsICJpbml0X3J1bnRpbWVDb25maWdfc2hhcmVkIiwgIl9fZXNtTWluIiwgImluaXRfaHR0cEF1dGhTY2hlbWVzIiwgImluaXRfcHJvdG9jb2xzIiwgImluaXRfaHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJpbml0X2VuZHBvaW50UmVzb2x2ZXIiLCAiaW5pdF9zY2hlbWFzXzAiLCAiY29uZmlnIiwgImRlZmF1bHRFbmRwb2ludFJlc29sdmVyIiwgImRlZmF1bHRTaWduaW5IdHRwQXV0aFNjaGVtZVByb3ZpZGVyIiwgImlwYyIsICJBd3NTZGtTaWdWNFNpZ25lciIsICJBd3NSZXN0SnNvblByb3RvY29sIiwgImVycm9yVHlwZVJlZ2lzdHJpZXMiLCAiaW1wb3J0X3V0aWxfdXNlcl9hZ2VudF9ub2RlIiwgImltcG9ydF9jb25maWdfcmVzb2x2ZXIiLCAiaW1wb3J0X2hhc2hfbm9kZSIsICJpbXBvcnRfbWlkZGxld2FyZV9yZXRyeSIsICJpbXBvcnRfbm9kZV9jb25maWdfcHJvdmlkZXIiLCAiaW1wb3J0X25vZGVfaHR0cF9oYW5kbGVyIiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgImltcG9ydF91dGlsX2JvZHlfbGVuZ3RoX25vZGUiLCAiaW1wb3J0X3V0aWxfZGVmYXVsdHNfbW9kZV9ub2RlIiwgImltcG9ydF91dGlsX3JldHJ5IiwgImdldFJ1bnRpbWVDb25maWciLCAiaW5pdF9ydW50aW1lQ29uZmlnIiwgIl9fZXNtTWluIiwgImluaXRfcGFja2FnZSIsICJpbml0X2NsaWVudCIsICJpbml0X2h0dHBBdXRoU2NoZW1lcyIsICJpbml0X3J1bnRpbWVDb25maWdfc2hhcmVkIiwgImNvbmZpZyIsICJkZWZhdWx0c01vZGUiLCAiZGVmYXVsdENvbmZpZ1Byb3ZpZGVyIiwgImNsaWVudFNoYXJlZFZhbHVlcyIsICJlbWl0V2FybmluZ0lmVW5zdXBwb3J0ZWRWZXJzaW9uIiwgImxvYWRlckNvbmZpZyIsICJsb2FkTm9kZUNvbmZpZyIsICJOT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfT1BUSU9OUyIsICJwYWNrYWdlX2RlZmF1bHQiLCAiUmVxdWVzdEhhbmRsZXIiLCAiZ2V0SHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uIiwgInJlc29sdmVIdHRwQXV0aFJ1bnRpbWVDb25maWciLCAiaW5pdF9odHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24iLCAiX19lc21NaW4iLCAicnVudGltZUNvbmZpZyIsICJfaHR0cEF1dGhTY2hlbWVzIiwgIl9odHRwQXV0aFNjaGVtZVByb3ZpZGVyIiwgIl9jcmVkZW50aWFscyIsICJodHRwQXV0aFNjaGVtZSIsICJpbmRleCIsICJzY2hlbWUiLCAiaHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJjcmVkZW50aWFscyIsICJjb25maWciLCAiaW1wb3J0X3JlZ2lvbl9jb25maWdfcmVzb2x2ZXIiLCAiaW1wb3J0X3Byb3RvY29sX2h0dHAiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAicmVzb2x2ZVJ1bnRpbWVFeHRlbnNpb25zIiwgImluaXRfcnVudGltZUV4dGVuc2lvbnMiLCAiX19lc21NaW4iLCAiaW5pdF9odHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24iLCAicnVudGltZUNvbmZpZyIsICJleHRlbnNpb25zIiwgImV4dGVuc2lvbkNvbmZpZ3VyYXRpb24iLCAiZ2V0SHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uIiwgImV4dGVuc2lvbiIsICJyZXNvbHZlSHR0cEF1dGhSdW50aW1lQ29uZmlnIiwgImltcG9ydF9taWRkbGV3YXJlX2hvc3RfaGVhZGVyIiwgImltcG9ydF9taWRkbGV3YXJlX2xvZ2dlciIsICJpbXBvcnRfbWlkZGxld2FyZV9yZWN1cnNpb25fZGV0ZWN0aW9uIiwgImltcG9ydF9taWRkbGV3YXJlX3VzZXJfYWdlbnQiLCAiaW1wb3J0X2NvbmZpZ19yZXNvbHZlciIsICJpbXBvcnRfY29yZSIsICJpbXBvcnRfc2NoZW1hIiwgImltcG9ydF9taWRkbGV3YXJlX2NvbnRlbnRfbGVuZ3RoIiwgImltcG9ydF9taWRkbGV3YXJlX2VuZHBvaW50IiwgImltcG9ydF9taWRkbGV3YXJlX3JldHJ5IiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgIlNpZ25pbkNsaWVudCIsICJpbml0X1NpZ25pbkNsaWVudCIsICJfX2VzbU1pbiIsICJpbml0X2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAiaW5pdF9FbmRwb2ludFBhcmFtZXRlcnMiLCAiaW5pdF9ydW50aW1lQ29uZmlnIiwgImluaXRfcnVudGltZUV4dGVuc2lvbnMiLCAiX19DbGllbnQiLCAiY29uZmlndXJhdGlvbiIsICJfY29uZmlnXzAiLCAiZ2V0UnVudGltZUNvbmZpZyIsICJfY29uZmlnXzEiLCAicmVzb2x2ZUNsaWVudEVuZHBvaW50UGFyYW1ldGVycyIsICJfY29uZmlnXzIiLCAiX2NvbmZpZ18zIiwgIl9jb25maWdfNCIsICJfY29uZmlnXzUiLCAiX2NvbmZpZ182IiwgIl9jb25maWdfNyIsICJyZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWciLCAiX2NvbmZpZ184IiwgInJlc29sdmVSdW50aW1lRXh0ZW5zaW9ucyIsICJkZWZhdWx0U2lnbmluSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIiLCAiY29uZmlnIiwgImltcG9ydF9taWRkbGV3YXJlX2VuZHBvaW50IiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgIkNyZWF0ZU9BdXRoMlRva2VuQ29tbWFuZCIsICJpbml0X0NyZWF0ZU9BdXRoMlRva2VuQ29tbWFuZCIsICJfX2VzbU1pbiIsICJpbml0X0VuZHBvaW50UGFyYW1ldGVycyIsICJpbml0X3NjaGVtYXNfMCIsICIkQ29tbWFuZCIsICJjb21tb25QYXJhbXMiLCAiQ29tbWFuZCIsICJjcyIsICJjb25maWciLCAibyIsICJDcmVhdGVPQXV0aDJUb2tlbiQiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAiY29tbWFuZHMiLCAiU2lnbmluIiwgImluaXRfU2lnbmluIiwgIl9fZXNtTWluIiwgImluaXRfQ3JlYXRlT0F1dGgyVG9rZW5Db21tYW5kIiwgImluaXRfU2lnbmluQ2xpZW50IiwgIkNyZWF0ZU9BdXRoMlRva2VuQ29tbWFuZCIsICJTaWduaW5DbGllbnQiLCAiaW5pdF9jb21tYW5kcyIsICJfX2VzbU1pbiIsICJpbml0X0NyZWF0ZU9BdXRoMlRva2VuQ29tbWFuZCIsICJPQXV0aDJFcnJvckNvZGUiLCAiaW5pdF9lbnVtcyIsICJfX2VzbU1pbiIsICJpbml0X21vZGVsc18wIiwgIl9fZXNtTWluIiwgInNpZ25pbl9leHBvcnRzIiwgIl9fZXhwb3J0IiwgIiRDb21tYW5kIiwgIkFjY2Vzc0RlbmllZEV4Y2VwdGlvbiIsICJBY2Nlc3NEZW5pZWRFeGNlcHRpb24kIiwgIkFjY2Vzc1Rva2VuJCIsICJDcmVhdGVPQXV0aDJUb2tlbiQiLCAiQ3JlYXRlT0F1dGgyVG9rZW5Db21tYW5kIiwgIkNyZWF0ZU9BdXRoMlRva2VuUmVxdWVzdCQiLCAiQ3JlYXRlT0F1dGgyVG9rZW5SZXF1ZXN0Qm9keSQiLCAiQ3JlYXRlT0F1dGgyVG9rZW5SZXNwb25zZSQiLCAiQ3JlYXRlT0F1dGgyVG9rZW5SZXNwb25zZUJvZHkkIiwgIkludGVybmFsU2VydmVyRXhjZXB0aW9uIiwgIkludGVybmFsU2VydmVyRXhjZXB0aW9uJCIsICJPQXV0aDJFcnJvckNvZGUiLCAiU2lnbmluIiwgIlNpZ25pbkNsaWVudCIsICJTaWduaW5TZXJ2aWNlRXhjZXB0aW9uIiwgIlNpZ25pblNlcnZpY2VFeGNlcHRpb24kIiwgIlRvb01hbnlSZXF1ZXN0c0Vycm9yIiwgIlRvb01hbnlSZXF1ZXN0c0Vycm9yJCIsICJWYWxpZGF0aW9uRXhjZXB0aW9uIiwgIlZhbGlkYXRpb25FeGNlcHRpb24kIiwgIl9fQ2xpZW50IiwgImVycm9yVHlwZVJlZ2lzdHJpZXMiLCAiaW5pdF9zaWduaW4iLCAiX19lc21NaW4iLCAiaW5pdF9TaWduaW5DbGllbnQiLCAiaW5pdF9TaWduaW4iLCAiaW5pdF9jb21tYW5kcyIsICJpbml0X3NjaGVtYXNfMCIsICJpbml0X2VudW1zIiwgImluaXRfZXJyb3JzIiwgImluaXRfbW9kZWxzXzAiLCAiaW5pdF9TaWduaW5TZXJ2aWNlRXhjZXB0aW9uIiwgInJlcXVpcmVfZGlzdF9janMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgImNsaWVudCIsICJwcm9wZXJ0eVByb3ZpZGVyIiwgInNoYXJlZEluaUZpbGVMb2FkZXIiLCAicHJvdG9jb2xIdHRwIiwgIm5vZGVfY3J5cHRvIiwgIm5vZGVfZnMiLCAibm9kZV9vcyIsICJub2RlX3BhdGgiLCAiTG9naW5DcmVkZW50aWFsc0ZldGNoZXIiLCAiX0xvZ2luQ3JlZGVudGlhbHNGZXRjaGVyIiwgInByb2ZpbGVEYXRhIiwgImluaXQiLCAiY2FsbGVyQ2xpZW50Q29uZmlnIiwgInRva2VuIiwgImFjY2Vzc1Rva2VuIiwgIm5vdyIsICJTaWduaW5DbGllbnQiLCAiQ3JlYXRlT0F1dGgyVG9rZW5Db21tYW5kIiwgImxvZ2dlciIsICJ1c2VyQWdlbnRBcHBJZCIsICJyZXF1ZXN0SGFuZGxlciIsICJyZWdpb24iLCAiY29tbWFuZElucHV0IiwgInJlc3BvbnNlIiwgImFjY2Vzc0tleUlkIiwgInNlY3JldEFjY2Vzc0tleSIsICJzZXNzaW9uVG9rZW4iLCAicmVmcmVzaFRva2VuIiwgImV4cGlyZXNJbiIsICJleHBpcmVzSW5NcyIsICJleHBpcmF0aW9uIiwgInVwZGF0ZWRUb2tlbiIsICJuZXdBY2Nlc3NUb2tlbiIsICJlcnJvciIsICJlcnJvclR5cGUiLCAibWVzc2FnZSIsICJ0b2tlbkZpbGVQYXRoIiwgInRva2VuRGF0YSIsICJtaXNzaW5nRmllbGRzIiwgImsiLCAiZGlyZWN0b3J5IiwgImxvZ2luU2Vzc2lvbkJ5dGVzIiwgImxvZ2luU2Vzc2lvblNoYTI1NiIsICJkZXJTaWduYXR1cmUiLCAib2Zmc2V0IiwgInJMZW5ndGgiLCAiciIsICJzTGVuZ3RoIiwgInMiLCAiclBhZGRlZCIsICJzUGFkZGVkIiwgIm1pZGRsZXdhcmVTdGFjayIsICJuZXh0IiwgImFyZ3MiLCAicmVxdWVzdCIsICJhY3R1YWxFbmRwb2ludCIsICJkcG9wIiwgIm1ldGhvZCIsICJlbmRwb2ludCIsICJwcml2YXRlS2V5IiwgInB1YmxpY0RlciIsICJwb2ludFN0YXJ0IiwgImkiLCAieCIsICJ5IiwgImhlYWRlciIsICJwYXlsb2FkIiwgImhlYWRlckI2NCIsICJwYXlsb2FkQjY0IiwgImFzbjFTaWduYXR1cmUiLCAic2lnbmF0dXJlQjY0IiwgImZyb21Mb2dpbkNyZWRlbnRpYWxzIiwgInByb2ZpbGVzIiwgInByb2ZpbGVOYW1lIiwgInByb2ZpbGUiLCAiY3JlZGVudGlhbHMiLCAicmVxdWlyZV90b1N0cmVhbSIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAidG9TdHJlYW0iLCAibm9kZV9zdHJlYW1fMSIsICJieXRlcyIsICJyZXF1aXJlX2Rpc3RfY2pzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJ2YWxpZGF0ZSIsICJzdHIiLCAicGFyc2UiLCAiYXJuIiwgInNlZ21lbnRzIiwgInBhcnRpdGlvbiIsICJzZXJ2aWNlIiwgInJlZ2lvbiIsICJhY2NvdW50SWQiLCAicmVzb3VyY2UiLCAiYnVpbGQiLCAiYXJuT2JqZWN0IiwgInNlZ21lbnQiLCAicmVxdWlyZV9kaXN0X2NqcyIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAicHJvdG9jb2xIdHRwIiwgInNtaXRoeUNsaWVudCIsICJ0b1N0cmVhbSIsICJ1dGlsQXJuUGFyc2VyIiwgInByb3RvY29scyIsICJzY2hlbWEiLCAic2lnbmF0dXJlVjQiLCAidXRpbENvbmZpZ1Byb3ZpZGVyIiwgImNsaWVudCIsICJjb3JlIiwgInV0aWxNaWRkbGV3YXJlIiwgIkNPTlRFTlRfTEVOR1RIX0hFQURFUiIsICJERUNPREVEX0NPTlRFTlRfTEVOR1RIX0hFQURFUiIsICJjaGVja0NvbnRlbnRMZW5ndGhIZWFkZXIiLCAibmV4dCIsICJjb250ZXh0IiwgImFyZ3MiLCAicmVxdWVzdCIsICJtZXNzYWdlIiwgImNoZWNrQ29udGVudExlbmd0aEhlYWRlck1pZGRsZXdhcmVPcHRpb25zIiwgImdldENoZWNrQ29udGVudExlbmd0aEhlYWRlclBsdWdpbiIsICJ1bnVzZWQiLCAiY2xpZW50U3RhY2siLCAicmVnaW9uUmVkaXJlY3RFbmRwb2ludE1pZGRsZXdhcmUiLCAiY29uZmlnIiwgIm9yaWdpbmFsUmVnaW9uIiwgInJlZ2lvblByb3ZpZGVyUmVmIiwgInVubG9jayIsICJyZXN1bHQiLCAicmVnaW9uIiwgImUiLCAicmVnaW9uUmVkaXJlY3RFbmRwb2ludE1pZGRsZXdhcmVPcHRpb25zIiwgInJlZ2lvblJlZGlyZWN0TWlkZGxld2FyZSIsICJjbGllbnRDb25maWciLCAiZXJyIiwgInN0YXR1c0NvZGUiLCAiaXNIZWFkQnVja2V0IiwgImJ1Y2tldFJlZ2lvbkhlYWRlciIsICJhY3R1YWxSZWdpb24iLCAicmVnaW9uUmVkaXJlY3RNaWRkbGV3YXJlT3B0aW9ucyIsICJnZXRSZWdpb25SZWRpcmVjdE1pZGRsZXdhcmVQbHVnaW4iLCAiczNFeHBpcmVzTWlkZGxld2FyZSIsICJyZXNwb25zZSIsICJzM0V4cGlyZXNNaWRkbGV3YXJlT3B0aW9ucyIsICJnZXRTM0V4cGlyZXNNaWRkbGV3YXJlUGx1Z2luIiwgIlMzRXhwcmVzc0lkZW50aXR5Q2FjaGUiLCAiX1MzRXhwcmVzc0lkZW50aXR5Q2FjaGUiLCAiZGF0YSIsICJrZXkiLCAiZW50cnkiLCAibm93IiwgImNyZWRlbnRpYWwiLCAiUzNFeHByZXNzSWRlbnRpdHlDYWNoZUVudHJ5IiwgIl9pZGVudGl0eSIsICJpc1JlZnJlc2hpbmciLCAiYWNjZXNzZWQiLCAiUzNFeHByZXNzSWRlbnRpdHlQcm92aWRlckltcGwiLCAiX1MzRXhwcmVzc0lkZW50aXR5UHJvdmlkZXJJbXBsIiwgImNyZWF0ZVNlc3Npb25GbiIsICJjYWNoZSIsICJhd3NJZGVudGl0eSIsICJpZGVudGl0eVByb3BlcnRpZXMiLCAiaWRlbnRpdHkiLCAiaWQiLCAiZXJyb3IiLCAic2Vzc2lvbiIsICJTM19FWFBSRVNTX0JVQ0tFVF9UWVBFIiwgIlMzX0VYUFJFU1NfQkFDS0VORCIsICJTM19FWFBSRVNTX0FVVEhfU0NIRU1FIiwgIlNFU1NJT05fVE9LRU5fUVVFUllfUEFSQU0iLCAiU0VTU0lPTl9UT0tFTl9IRUFERVIiLCAiTk9ERV9ESVNBQkxFX1MzX0VYUFJFU1NfU0VTU0lPTl9BVVRIX0VOVl9OQU1FIiwgIk5PREVfRElTQUJMRV9TM19FWFBSRVNTX1NFU1NJT05fQVVUSF9JTklfTkFNRSIsICJOT0RFX0RJU0FCTEVfUzNfRVhQUkVTU19TRVNTSU9OX0FVVEhfT1BUSU9OUyIsICJlbnYiLCAicHJvZmlsZSIsICJTaWduYXR1cmVWNFMzRXhwcmVzcyIsICJyZXF1ZXN0VG9TaWduIiwgImNyZWRlbnRpYWxzIiwgIm9wdGlvbnMiLCAiY3JlZGVudGlhbHNXaXRob3V0U2Vzc2lvblRva2VuIiwgImdldENyZWRlbnRpYWxzV2l0aG91dFNlc3Npb25Ub2tlbiIsICJwcml2YXRlQWNjZXNzIiwgInNldFNpbmdsZU92ZXJyaWRlIiwgImN1cnJlbnRDcmVkZW50aWFsUHJvdmlkZXIiLCAib3ZlcnJpZGVDcmVkZW50aWFsc1Byb3ZpZGVyT25jZSIsICJzM0V4cHJlc3NNaWRkbGV3YXJlIiwgImVuZHBvaW50IiwgImlzUzNFeHByZXNzQXV0aCIsICJyZXF1ZXN0QnVja2V0IiwgInMzRXhwcmVzc0lkZW50aXR5IiwgInMzRXhwcmVzc01pZGRsZXdhcmVPcHRpb25zIiwgImdldFMzRXhwcmVzc1BsdWdpbiIsICJzaWduUzNFeHByZXNzIiwgInNpZ25pbmdPcHRpb25zIiwgInNpZ1Y0TXVsdGlSZWdpb25TaWduZXIiLCAic2lnbmVkUmVxdWVzdCIsICJkZWZhdWx0RXJyb3JIYW5kbGVyIiwgInNpZ25pbmdQcm9wZXJ0aWVzIiwgImRlZmF1bHRTdWNjZXNzSGFuZGxlciIsICJodHRwUmVzcG9uc2UiLCAiczNFeHByZXNzSHR0cFNpZ25pbmdNaWRkbGV3YXJlT3B0aW9ucyIsICJzM0V4cHJlc3NIdHRwU2lnbmluZ01pZGRsZXdhcmUiLCAic2NoZW1lIiwgInNpZ25lciIsICJvdXRwdXQiLCAiZ2V0UzNFeHByZXNzSHR0cFNpZ25pbmdQbHVnaW4iLCAicmVzb2x2ZVMzQ29uZmlnIiwgImlucHV0IiwgInMzQ2xpZW50UHJvdmlkZXIiLCAiQ3JlYXRlU2Vzc2lvbkNvbW1hbmRDdG9yIiwgImZvcmNlUGF0aFN0eWxlIiwgInVzZUFjY2VsZXJhdGVFbmRwb2ludCIsICJkaXNhYmxlTXVsdGlyZWdpb25BY2Nlc3NQb2ludHMiLCAiZm9sbG93UmVnaW9uUmVkaXJlY3RzIiwgInMzRXhwcmVzc0lkZW50aXR5UHJvdmlkZXIiLCAiYnVja2V0RW5kcG9pbnQiLCAiZXhwZWN0Q29udGludWVIZWFkZXIiLCAiVEhST1dfSUZfRU1QVFlfQk9EWSIsICJ0aHJvdzIwMEV4Y2VwdGlvbnNNaWRkbGV3YXJlIiwgImJvZHkiLCAiYm9keUJ5dGVzIiwgImNvbGxlY3RCb2R5IiwgImJvZHlTdHJpbmdUYWlsIiwgInN0cmVhbUJvZHkiLCAidGhyb3cyMDBFeGNlcHRpb25zTWlkZGxld2FyZU9wdGlvbnMiLCAiZ2V0VGhyb3cyMDBFeGNlcHRpb25zUGx1Z2luIiwgImJ1Y2tldEVuZHBvaW50TWlkZGxld2FyZSIsICJidWNrZXQiLCAiYnVja2V0RW5kcG9pbnRVcmwiLCAid2FybmluZyIsICJidWNrZXRFbmRwb2ludE1pZGRsZXdhcmVPcHRpb25zIiwgInZhbGlkYXRlQnVja2V0TmFtZU1pZGRsZXdhcmUiLCAiQnVja2V0IiwgInZhbGlkYXRlQnVja2V0TmFtZU1pZGRsZXdhcmVPcHRpb25zIiwgImdldFZhbGlkYXRlQnVja2V0TmFtZVBsdWdpbiIsICJTM1Jlc3RYbWxQcm90b2NvbCIsICJvcGVyYXRpb25TY2hlbWEiLCAibnMiLCAic3RhdGljU3RydWN0dXJlU2NoZW1hIiwgImJ1Y2tldE1lbWJlckluZGV4IiwgInJlcXVpcmVkTWVtYmVyQ291bnQiLCAibWVtYmVyTmFtZSIsICJtZW1iZXJOcyIsICJyZXF1aXJlX2Rpc3RfY2pzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJtaWRkbGV3YXJlU2RrUzMiLCAic2lnbmF0dXJlVjQiLCAic2lnbmF0dXJlVjRDcnRDb250YWluZXIiLCAiU2lnbmF0dXJlVjRNdWx0aVJlZ2lvbiIsICJvcHRpb25zIiwgInJlcXVlc3RUb1NpZ24iLCAiY3JlZGVudGlhbHMiLCAic2lnbmVyIiwgIkNydFNpZ25lclY0IiwgIm9yaWdpbmFsUmVxdWVzdCIsICJKc1NpZ1Y0YVNpZ25lciIsICJpbXBvcnRfdXRpbF9lbmRwb2ludHMiLCAicSIsICJhIiwgImIiLCAiYyIsICJkIiwgImUiLCAiZiIsICJnIiwgImgiLCAiaSIsICJqIiwgImsiLCAibCIsICJtIiwgIm4iLCAibyIsICJwIiwgIl9kYXRhIiwgInJvb3QiLCAiciIsICJub2RlcyIsICJiZGQiLCAiaW5pdF9iZGQiLCAiX19lc21NaW4iLCAiaW1wb3J0X3V0aWxfZW5kcG9pbnRzIiwgImNhY2hlIiwgImRlZmF1bHRFbmRwb2ludFJlc29sdmVyIiwgImluaXRfZW5kcG9pbnRSZXNvbHZlciIsICJfX2VzbU1pbiIsICJpbml0X2JkZCIsICJlbmRwb2ludFBhcmFtcyIsICJjb250ZXh0IiwgImJkZCIsICJjcmVhdGVBd3NBdXRoU2lndjRIdHRwQXV0aE9wdGlvbiIsICJhdXRoUGFyYW1ldGVycyIsICJjb25maWciLCAiY29udGV4dCIsICJjcmVhdGVBd3NBdXRoU2lndjRhSHR0cEF1dGhPcHRpb24iLCAiY3JlYXRlU21pdGh5QXBpTm9BdXRoSHR0cEF1dGhPcHRpb24iLCAiaW1wb3J0X3NpZ25hdHVyZV92NF9tdWx0aV9yZWdpb24iLCAiaW1wb3J0X21pZGRsZXdhcmVfZW5kcG9pbnQiLCAiaW1wb3J0X3V0aWxfbWlkZGxld2FyZSIsICJjcmVhdGVFbmRwb2ludFJ1bGVTZXRIdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlciIsICJfZGVmYXVsdFNUU0h0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyIiwgImRlZmF1bHRTVFNIdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlciIsICJjcmVhdGVFbmRwb2ludFJ1bGVTZXRIdHRwQXV0aFNjaGVtZVByb3ZpZGVyIiwgIl9kZWZhdWx0U1RTSHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJkZWZhdWx0U1RTSHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJyZXNvbHZlU3RzQXV0aENvbmZpZyIsICJyZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWciLCAiaW5pdF9odHRwQXV0aFNjaGVtZVByb3ZpZGVyIiwgIl9fZXNtTWluIiwgImluaXRfaHR0cEF1dGhTY2hlbWVzIiwgImluaXRfZW5kcG9pbnRSZXNvbHZlciIsICJpbml0X1NUU0NsaWVudCIsICJkZWZhdWx0SHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIiLCAiaW5wdXQiLCAiZGVmYXVsdFBhcmFtZXRlcnMiLCAiaW5zdHJ1Y3Rpb25zRm4iLCAiZW5kcG9pbnRQYXJhbWV0ZXJzIiwgImRlZmF1bHRFbmRwb2ludFJlc29sdmVyIiwgImRlZmF1bHRIdHRwQXV0aFNjaGVtZVJlc29sdmVyIiwgImNyZWF0ZUh0dHBBdXRoT3B0aW9uRnVuY3Rpb25zIiwgImF1dGhTY2hlbWVzIiwgIm9wdGlvbnMiLCAic2NoZW1lIiwgInJlc29sdmVkTmFtZSIsICJwcm9wZXJ0aWVzIiwgInJlc3QiLCAibmFtZSIsICJzY2hlbWVJZCIsICJzaWd2NFByZXNlbnQiLCAicyIsICJjcmVhdGVPcHRpb24iLCAib3B0aW9uIiwgIlNUU0NsaWVudCIsICJjb25maWdfMCIsICJjb25maWdfMSIsICJyZXNvbHZlQXdzU2RrU2lnVjRDb25maWciLCAiY29uZmlnXzIiLCAicmVzb2x2ZUF3c1Nka1NpZ1Y0QUNvbmZpZyIsICJyZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzIiwgImNvbW1vblBhcmFtcyIsICJpbml0X0VuZHBvaW50UGFyYW1ldGVycyIsICJfX2VzbU1pbiIsICJvcHRpb25zIiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgIlNUU1NlcnZpY2VFeGNlcHRpb24iLCAiaW5pdF9TVFNTZXJ2aWNlRXhjZXB0aW9uIiwgIl9fZXNtTWluIiwgIl9TVFNTZXJ2aWNlRXhjZXB0aW9uIiwgIl9fU2VydmljZUV4Y2VwdGlvbiIsICJvcHRpb25zIiwgIkV4cGlyZWRUb2tlbkV4Y2VwdGlvbiIsICJNYWxmb3JtZWRQb2xpY3lEb2N1bWVudEV4Y2VwdGlvbiIsICJQYWNrZWRQb2xpY3lUb29MYXJnZUV4Y2VwdGlvbiIsICJSZWdpb25EaXNhYmxlZEV4Y2VwdGlvbiIsICJJRFBSZWplY3RlZENsYWltRXhjZXB0aW9uIiwgIkludmFsaWRJZGVudGl0eVRva2VuRXhjZXB0aW9uIiwgIklEUENvbW11bmljYXRpb25FcnJvckV4Y2VwdGlvbiIsICJpbml0X2Vycm9ycyIsICJfX2VzbU1pbiIsICJpbml0X1NUU1NlcnZpY2VFeGNlcHRpb24iLCAiX0V4cGlyZWRUb2tlbkV4Y2VwdGlvbiIsICJTVFNTZXJ2aWNlRXhjZXB0aW9uIiwgIm9wdHMiLCAiX01hbGZvcm1lZFBvbGljeURvY3VtZW50RXhjZXB0aW9uIiwgIl9QYWNrZWRQb2xpY3lUb29MYXJnZUV4Y2VwdGlvbiIsICJfUmVnaW9uRGlzYWJsZWRFeGNlcHRpb24iLCAiX0lEUFJlamVjdGVkQ2xhaW1FeGNlcHRpb24iLCAiX0ludmFsaWRJZGVudGl0eVRva2VuRXhjZXB0aW9uIiwgIl9JRFBDb21tdW5pY2F0aW9uRXJyb3JFeGNlcHRpb24iLCAiaW1wb3J0X3NjaGVtYSIsICJfQSIsICJfQUtJIiwgIl9BUiIsICJfQVJJIiwgIl9BUlIiLCAiX0FSUnMiLCAiX0FSVSIsICJfQVJXV0kiLCAiX0FSV1dJUiIsICJfQVJXV0lScyIsICJfQXUiLCAiX0MiLCAiX0NBIiwgIl9EUyIsICJfRSIsICJfRUkiLCAiX0VURSIsICJfSURQQ0VFIiwgIl9JRFBSQ0UiLCAiX0lJVEUiLCAiX0siLCAiX01QREUiLCAiX1AiLCAiX1BBIiwgIl9QQXIiLCAiX1BDIiwgIl9QQ0xUIiwgIl9QQ3IiLCAiX1BEVCIsICJfUEkiLCAiX1BQUyIsICJfUFBUTEUiLCAiX1ByIiwgIl9SQSIsICJfUkRFIiwgIl9SU04iLCAiX1NBSyIsICJfU0ZXSVQiLCAiX1NJIiwgIl9TTiIsICJfU1QiLCAiX1QiLCAiX1RDIiwgIl9UVEsiLCAiX1RhIiwgIl9WIiwgIl9XSVQiLCAiX2EiLCAiX2FLU1QiLCAiX2FRRSIsICJfYyIsICJfY1RUIiwgIl9lIiwgIl9oRSIsICJfbSIsICJfcERMVCIsICJfcyIsICJfdExUIiwgIm4wIiwgIl9zX3JlZ2lzdHJ5IiwgIlNUU1NlcnZpY2VFeGNlcHRpb24kIiwgIm4wX3JlZ2lzdHJ5IiwgIkV4cGlyZWRUb2tlbkV4Y2VwdGlvbiQiLCAiSURQQ29tbXVuaWNhdGlvbkVycm9yRXhjZXB0aW9uJCIsICJJRFBSZWplY3RlZENsYWltRXhjZXB0aW9uJCIsICJJbnZhbGlkSWRlbnRpdHlUb2tlbkV4Y2VwdGlvbiQiLCAiTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFeGNlcHRpb24kIiwgIlBhY2tlZFBvbGljeVRvb0xhcmdlRXhjZXB0aW9uJCIsICJSZWdpb25EaXNhYmxlZEV4Y2VwdGlvbiQiLCAiZXJyb3JUeXBlUmVnaXN0cmllcyIsICJhY2Nlc3NLZXlTZWNyZXRUeXBlIiwgImNsaWVudFRva2VuVHlwZSIsICJBc3N1bWVkUm9sZVVzZXIkIiwgIkFzc3VtZVJvbGVSZXF1ZXN0JCIsICJBc3N1bWVSb2xlUmVzcG9uc2UkIiwgIkFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlSZXF1ZXN0JCIsICJBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5UmVzcG9uc2UkIiwgIkNyZWRlbnRpYWxzJCIsICJQb2xpY3lEZXNjcmlwdG9yVHlwZSQiLCAiUHJvdmlkZWRDb250ZXh0JCIsICJUYWckIiwgInBvbGljeURlc2NyaXB0b3JMaXN0VHlwZSIsICJQcm92aWRlZENvbnRleHRzTGlzdFR5cGUiLCAidGFnTGlzdFR5cGUiLCAiQXNzdW1lUm9sZSQiLCAiQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eSQiLCAiaW5pdF9zY2hlbWFzXzAiLCAiX19lc21NaW4iLCAiaW5pdF9lcnJvcnMiLCAiaW5pdF9TVFNTZXJ2aWNlRXhjZXB0aW9uIiwgIlNUU1NlcnZpY2VFeGNlcHRpb24iLCAiRXhwaXJlZFRva2VuRXhjZXB0aW9uIiwgIklEUENvbW11bmljYXRpb25FcnJvckV4Y2VwdGlvbiIsICJJRFBSZWplY3RlZENsYWltRXhjZXB0aW9uIiwgIkludmFsaWRJZGVudGl0eVRva2VuRXhjZXB0aW9uIiwgIk1hbGZvcm1lZFBvbGljeURvY3VtZW50RXhjZXB0aW9uIiwgIlBhY2tlZFBvbGljeVRvb0xhcmdlRXhjZXB0aW9uIiwgIlJlZ2lvbkRpc2FibGVkRXhjZXB0aW9uIiwgImltcG9ydF9zaWduYXR1cmVfdjRfbXVsdGlfcmVnaW9uIiwgImltcG9ydF9jb3JlIiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgImltcG9ydF91cmxfcGFyc2VyIiwgImltcG9ydF91dGlsX2Jhc2U2NCIsICJpbXBvcnRfdXRpbF91dGY4IiwgImdldFJ1bnRpbWVDb25maWciLCAiaW5pdF9ydW50aW1lQ29uZmlnX3NoYXJlZCIsICJfX2VzbU1pbiIsICJpbml0X2h0dHBBdXRoU2NoZW1lcyIsICJpbml0X3Byb3RvY29scyIsICJpbml0X2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAiaW5pdF9lbmRwb2ludFJlc29sdmVyIiwgImluaXRfc2NoZW1hc18wIiwgImNvbmZpZyIsICJkZWZhdWx0RW5kcG9pbnRSZXNvbHZlciIsICJkZWZhdWx0U1RTSHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJpcGMiLCAiQXdzU2RrU2lnVjRTaWduZXIiLCAiQXdzU2RrU2lnVjRBU2lnbmVyIiwgIkF3c1F1ZXJ5UHJvdG9jb2wiLCAiZXJyb3JUeXBlUmVnaXN0cmllcyIsICJpbXBvcnRfdXRpbF91c2VyX2FnZW50X25vZGUiLCAiaW1wb3J0X2NvbmZpZ19yZXNvbHZlciIsICJpbXBvcnRfY29yZSIsICJpbXBvcnRfaGFzaF9ub2RlIiwgImltcG9ydF9taWRkbGV3YXJlX3JldHJ5IiwgImltcG9ydF9ub2RlX2NvbmZpZ19wcm92aWRlciIsICJpbXBvcnRfbm9kZV9odHRwX2hhbmRsZXIiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAiaW1wb3J0X3V0aWxfYm9keV9sZW5ndGhfbm9kZSIsICJpbXBvcnRfdXRpbF9kZWZhdWx0c19tb2RlX25vZGUiLCAiaW1wb3J0X3V0aWxfcmV0cnkiLCAiZ2V0UnVudGltZUNvbmZpZyIsICJpbml0X3J1bnRpbWVDb25maWciLCAiX19lc21NaW4iLCAiaW5pdF9wYWNrYWdlIiwgImluaXRfY2xpZW50IiwgImluaXRfaHR0cEF1dGhTY2hlbWVzIiwgImluaXRfcnVudGltZUNvbmZpZ19zaGFyZWQiLCAiY29uZmlnIiwgImRlZmF1bHRzTW9kZSIsICJkZWZhdWx0Q29uZmlnUHJvdmlkZXIiLCAiY2xpZW50U2hhcmVkVmFsdWVzIiwgImVtaXRXYXJuaW5nSWZVbnN1cHBvcnRlZFZlcnNpb24iLCAibG9hZGVyQ29uZmlnIiwgImxvYWROb2RlQ29uZmlnIiwgIk5PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9PUFRJT05TIiwgInBhY2thZ2VfZGVmYXVsdCIsICJpcGMiLCAiaWRQcm9wcyIsICJBd3NTZGtTaWdWNFNpZ25lciIsICJBd3NTZGtTaWdWNEFTaWduZXIiLCAiUmVxdWVzdEhhbmRsZXIiLCAiTk9ERV9TSUdWNEFfQ09ORklHX09QVElPTlMiLCAiZ2V0SHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uIiwgInJlc29sdmVIdHRwQXV0aFJ1bnRpbWVDb25maWciLCAiaW5pdF9odHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24iLCAiX19lc21NaW4iLCAicnVudGltZUNvbmZpZyIsICJfaHR0cEF1dGhTY2hlbWVzIiwgIl9odHRwQXV0aFNjaGVtZVByb3ZpZGVyIiwgIl9jcmVkZW50aWFscyIsICJodHRwQXV0aFNjaGVtZSIsICJpbmRleCIsICJzY2hlbWUiLCAiaHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJjcmVkZW50aWFscyIsICJjb25maWciLCAiaW1wb3J0X3JlZ2lvbl9jb25maWdfcmVzb2x2ZXIiLCAiaW1wb3J0X3Byb3RvY29sX2h0dHAiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAicmVzb2x2ZVJ1bnRpbWVFeHRlbnNpb25zIiwgImluaXRfcnVudGltZUV4dGVuc2lvbnMiLCAiX19lc21NaW4iLCAiaW5pdF9odHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24iLCAicnVudGltZUNvbmZpZyIsICJleHRlbnNpb25zIiwgImV4dGVuc2lvbkNvbmZpZ3VyYXRpb24iLCAiZ2V0SHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uIiwgImV4dGVuc2lvbiIsICJyZXNvbHZlSHR0cEF1dGhSdW50aW1lQ29uZmlnIiwgImltcG9ydF9taWRkbGV3YXJlX2hvc3RfaGVhZGVyIiwgImltcG9ydF9taWRkbGV3YXJlX2xvZ2dlciIsICJpbXBvcnRfbWlkZGxld2FyZV9yZWN1cnNpb25fZGV0ZWN0aW9uIiwgImltcG9ydF9taWRkbGV3YXJlX3VzZXJfYWdlbnQiLCAiaW1wb3J0X2NvbmZpZ19yZXNvbHZlciIsICJpbXBvcnRfY29yZSIsICJpbXBvcnRfc2NoZW1hIiwgImltcG9ydF9taWRkbGV3YXJlX2NvbnRlbnRfbGVuZ3RoIiwgImltcG9ydF9taWRkbGV3YXJlX2VuZHBvaW50IiwgImltcG9ydF9taWRkbGV3YXJlX3JldHJ5IiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgIlNUU0NsaWVudCIsICJpbml0X1NUU0NsaWVudCIsICJfX2VzbU1pbiIsICJpbml0X2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAiaW5pdF9FbmRwb2ludFBhcmFtZXRlcnMiLCAiaW5pdF9ydW50aW1lQ29uZmlnIiwgImluaXRfcnVudGltZUV4dGVuc2lvbnMiLCAiX19DbGllbnQiLCAiY29uZmlndXJhdGlvbiIsICJfY29uZmlnXzAiLCAiZ2V0UnVudGltZUNvbmZpZyIsICJfY29uZmlnXzEiLCAicmVzb2x2ZUNsaWVudEVuZHBvaW50UGFyYW1ldGVycyIsICJfY29uZmlnXzIiLCAiX2NvbmZpZ18zIiwgIl9jb25maWdfNCIsICJfY29uZmlnXzUiLCAiX2NvbmZpZ182IiwgIl9jb25maWdfNyIsICJyZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWciLCAiX2NvbmZpZ184IiwgInJlc29sdmVSdW50aW1lRXh0ZW5zaW9ucyIsICJkZWZhdWx0U1RTSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIiLCAiY29uZmlnIiwgImltcG9ydF9taWRkbGV3YXJlX2VuZHBvaW50IiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgIkFzc3VtZVJvbGVDb21tYW5kIiwgImluaXRfQXNzdW1lUm9sZUNvbW1hbmQiLCAiX19lc21NaW4iLCAiaW5pdF9FbmRwb2ludFBhcmFtZXRlcnMiLCAiaW5pdF9zY2hlbWFzXzAiLCAiJENvbW1hbmQiLCAiY29tbW9uUGFyYW1zIiwgIkNvbW1hbmQiLCAiY3MiLCAiY29uZmlnIiwgIm8iLCAiQXNzdW1lUm9sZSQiLCAiaW1wb3J0X21pZGRsZXdhcmVfZW5kcG9pbnQiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAiQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eUNvbW1hbmQiLCAiaW5pdF9Bc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5Q29tbWFuZCIsICJfX2VzbU1pbiIsICJpbml0X0VuZHBvaW50UGFyYW1ldGVycyIsICJpbml0X3NjaGVtYXNfMCIsICIkQ29tbWFuZCIsICJjb21tb25QYXJhbXMiLCAiQ29tbWFuZCIsICJjcyIsICJjb25maWciLCAibyIsICJBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5JCIsICJpbXBvcnRfc21pdGh5X2NsaWVudCIsICJjb21tYW5kcyIsICJTVFMiLCAiaW5pdF9TVFMiLCAiX19lc21NaW4iLCAiaW5pdF9Bc3N1bWVSb2xlQ29tbWFuZCIsICJpbml0X0Fzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlDb21tYW5kIiwgImluaXRfU1RTQ2xpZW50IiwgIkFzc3VtZVJvbGVDb21tYW5kIiwgIkFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlDb21tYW5kIiwgIlNUU0NsaWVudCIsICJpbml0X2NvbW1hbmRzIiwgIl9fZXNtTWluIiwgImluaXRfQXNzdW1lUm9sZUNvbW1hbmQiLCAiaW5pdF9Bc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5Q29tbWFuZCIsICJpbml0X21vZGVsc18wIiwgIl9fZXNtTWluIiwgImltcG9ydF9yZWdpb25fY29uZmlnX3Jlc29sdmVyIiwgImdldEFjY291bnRJZEZyb21Bc3N1bWVkUm9sZVVzZXIiLCAicmVzb2x2ZVJlZ2lvbiIsICJnZXREZWZhdWx0Um9sZUFzc3VtZXIiLCAiZ2V0RGVmYXVsdFJvbGVBc3N1bWVyV2l0aFdlYklkZW50aXR5IiwgImlzSDIiLCAiaW5pdF9kZWZhdWx0U3RzUm9sZUFzc3VtZXJzIiwgIl9fZXNtTWluIiwgImluaXRfY2xpZW50IiwgImluaXRfQXNzdW1lUm9sZUNvbW1hbmQiLCAiaW5pdF9Bc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5Q29tbWFuZCIsICJhc3N1bWVkUm9sZVVzZXIiLCAiYXJuQ29tcG9uZW50cyIsICJfcmVnaW9uIiwgIl9wYXJlbnRSZWdpb24iLCAiY3JlZGVudGlhbFByb3ZpZGVyTG9nZ2VyIiwgImxvYWRlckNvbmZpZyIsICJyZWdpb24iLCAicGFyZW50UmVnaW9uIiwgInN0c0RlZmF1bHRSZWdpb24iLCAicmVzb2x2ZWRSZWdpb24iLCAic3RzT3B0aW9ucyIsICJTVFNDbGllbnQiLCAic3RzQ2xpZW50IiwgImNsb3N1cmVTb3VyY2VDcmVkcyIsICJzb3VyY2VDcmVkcyIsICJwYXJhbXMiLCAibG9nZ2VyIiwgInByb2ZpbGUiLCAicmVxdWVzdEhhbmRsZXIiLCAidXNlckFnZW50QXBwSWQiLCAiaXNDb21wYXRpYmxlUmVxdWVzdEhhbmRsZXIiLCAiQ3JlZGVudGlhbHMiLCAiQXNzdW1lZFJvbGVVc2VyIiwgIkFzc3VtZVJvbGVDb21tYW5kIiwgImFjY291bnRJZCIsICJjcmVkZW50aWFscyIsICJzZXRDcmVkZW50aWFsRmVhdHVyZSIsICJBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5Q29tbWFuZCIsICJnZXRDdXN0b21pemFibGVTdHNDbGllbnRDdG9yIiwgImdldERlZmF1bHRSb2xlQXNzdW1lciIsICJnZXREZWZhdWx0Um9sZUFzc3VtZXJXaXRoV2ViSWRlbnRpdHkiLCAiZGVjb3JhdGVEZWZhdWx0Q3JlZGVudGlhbFByb3ZpZGVyIiwgImluaXRfZGVmYXVsdFJvbGVBc3N1bWVycyIsICJfX2VzbU1pbiIsICJpbml0X2RlZmF1bHRTdHNSb2xlQXNzdW1lcnMiLCAiaW5pdF9TVFNDbGllbnQiLCAiYmFzZUN0b3IiLCAiY3VzdG9taXphdGlvbnMiLCAiY29uZmlnIiwgImN1c3RvbWl6YXRpb24iLCAic3RzT3B0aW9ucyIsICJzdHNQbHVnaW5zIiwgIlNUU0NsaWVudCIsICJwcm92aWRlciIsICJpbnB1dCIsICJzdHNfZXhwb3J0cyIsICJfX2V4cG9ydCIsICJBc3N1bWVSb2xlJCIsICJBc3N1bWVSb2xlQ29tbWFuZCIsICJBc3N1bWVSb2xlUmVxdWVzdCQiLCAiQXNzdW1lUm9sZVJlc3BvbnNlJCIsICJBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5JCIsICJBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5Q29tbWFuZCIsICJBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5UmVxdWVzdCQiLCAiQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eVJlc3BvbnNlJCIsICJBc3N1bWVkUm9sZVVzZXIkIiwgIkNyZWRlbnRpYWxzJCIsICJFeHBpcmVkVG9rZW5FeGNlcHRpb24iLCAiRXhwaXJlZFRva2VuRXhjZXB0aW9uJCIsICJJRFBDb21tdW5pY2F0aW9uRXJyb3JFeGNlcHRpb24iLCAiSURQQ29tbXVuaWNhdGlvbkVycm9yRXhjZXB0aW9uJCIsICJJRFBSZWplY3RlZENsYWltRXhjZXB0aW9uIiwgIklEUFJlamVjdGVkQ2xhaW1FeGNlcHRpb24kIiwgIkludmFsaWRJZGVudGl0eVRva2VuRXhjZXB0aW9uIiwgIkludmFsaWRJZGVudGl0eVRva2VuRXhjZXB0aW9uJCIsICJNYWxmb3JtZWRQb2xpY3lEb2N1bWVudEV4Y2VwdGlvbiIsICJNYWxmb3JtZWRQb2xpY3lEb2N1bWVudEV4Y2VwdGlvbiQiLCAiUGFja2VkUG9saWN5VG9vTGFyZ2VFeGNlcHRpb24iLCAiUGFja2VkUG9saWN5VG9vTGFyZ2VFeGNlcHRpb24kIiwgIlBvbGljeURlc2NyaXB0b3JUeXBlJCIsICJQcm92aWRlZENvbnRleHQkIiwgIlJlZ2lvbkRpc2FibGVkRXhjZXB0aW9uIiwgIlJlZ2lvbkRpc2FibGVkRXhjZXB0aW9uJCIsICJTVFMiLCAiU1RTQ2xpZW50IiwgIlNUU1NlcnZpY2VFeGNlcHRpb24iLCAiU1RTU2VydmljZUV4Y2VwdGlvbiQiLCAiVGFnJCIsICJfX0NsaWVudCIsICJkZWNvcmF0ZURlZmF1bHRDcmVkZW50aWFsUHJvdmlkZXIiLCAiZXJyb3JUeXBlUmVnaXN0cmllcyIsICJnZXREZWZhdWx0Um9sZUFzc3VtZXIiLCAiZ2V0RGVmYXVsdFJvbGVBc3N1bWVyV2l0aFdlYklkZW50aXR5IiwgImluaXRfc3RzIiwgIl9fZXNtTWluIiwgImluaXRfU1RTQ2xpZW50IiwgImluaXRfU1RTIiwgImluaXRfY29tbWFuZHMiLCAiaW5pdF9zY2hlbWFzXzAiLCAiaW5pdF9lcnJvcnMiLCAiaW5pdF9tb2RlbHNfMCIsICJpbml0X2RlZmF1bHRSb2xlQXNzdW1lcnMiLCAiaW5pdF9TVFNTZXJ2aWNlRXhjZXB0aW9uIiwgInJlcXVpcmVfZGlzdF9janMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgInNoYXJlZEluaUZpbGVMb2FkZXIiLCAicHJvcGVydHlQcm92aWRlciIsICJub2RlX2NoaWxkX3Byb2Nlc3MiLCAibm9kZV91dGlsIiwgImNsaWVudCIsICJnZXRWYWxpZGF0ZWRQcm9jZXNzQ3JlZGVudGlhbHMiLCAicHJvZmlsZU5hbWUiLCAiZGF0YSIsICJwcm9maWxlcyIsICJjdXJyZW50VGltZSIsICJhY2NvdW50SWQiLCAiY3JlZGVudGlhbHMiLCAicmVzb2x2ZVByb2Nlc3NDcmVkZW50aWFscyIsICJsb2dnZXIiLCAicHJvZmlsZSIsICJjcmVkZW50aWFsUHJvY2VzcyIsICJleGVjUHJvbWlzZSIsICJzdGRvdXQiLCAiZXJyb3IiLCAiZnJvbVByb2Nlc3MiLCAiaW5pdCIsICJjYWxsZXJDbGllbnRDb25maWciLCAicmVxdWlyZV9mcm9tV2ViVG9rZW4iLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgIl9fY3JlYXRlQmluZGluZyIsICJvIiwgIm0iLCAiayIsICJrMiIsICJkZXNjIiwgIl9fc2V0TW9kdWxlRGVmYXVsdCIsICJ2IiwgIl9faW1wb3J0U3RhciIsICJvd25LZXlzIiwgImFyIiwgIm1vZCIsICJyZXN1bHQiLCAiaSIsICJmcm9tV2ViVG9rZW4iLCAiaW5pdCIsICJhd3NJZGVudGl0eVByb3BlcnRpZXMiLCAicm9sZUFybiIsICJyb2xlU2Vzc2lvbk5hbWUiLCAid2ViSWRlbnRpdHlUb2tlbiIsICJwcm92aWRlcklkIiwgInBvbGljeUFybnMiLCAicG9saWN5IiwgImR1cmF0aW9uU2Vjb25kcyIsICJyb2xlQXNzdW1lcldpdGhXZWJJZGVudGl0eSIsICJnZXREZWZhdWx0Um9sZUFzc3VtZXJXaXRoV2ViSWRlbnRpdHkiLCAicmVxdWlyZV9mcm9tVG9rZW5GaWxlIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJjbGllbnRfMSIsICJwcm9wZXJ0eV9wcm92aWRlcl8xIiwgInNoYXJlZF9pbmlfZmlsZV9sb2FkZXJfMSIsICJub2RlX2ZzXzEiLCAiZnJvbVdlYlRva2VuXzEiLCAiRU5WX1RPS0VOX0ZJTEUiLCAiRU5WX1JPTEVfQVJOIiwgIkVOVl9ST0xFX1NFU1NJT05fTkFNRSIsICJmcm9tVG9rZW5GaWxlIiwgImluaXQiLCAiYXdzSWRlbnRpdHlQcm9wZXJ0aWVzIiwgIndlYklkZW50aXR5VG9rZW5GaWxlIiwgInJvbGVBcm4iLCAicm9sZVNlc3Npb25OYW1lIiwgImNyZWRlbnRpYWxzIiwgInJlcXVpcmVfZGlzdF9janMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgImZyb21Ub2tlbkZpbGUiLCAiZnJvbVdlYlRva2VuIiwgImsiLCAicmVxdWlyZV9kaXN0X2NqcyIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAic2hhcmVkSW5pRmlsZUxvYWRlciIsICJwcm9wZXJ0eVByb3ZpZGVyIiwgImNsaWVudCIsICJjcmVkZW50aWFsUHJvdmlkZXJMb2dpbiIsICJyZXNvbHZlQ3JlZGVudGlhbFNvdXJjZSIsICJjcmVkZW50aWFsU291cmNlIiwgInByb2ZpbGVOYW1lIiwgImxvZ2dlciIsICJzb3VyY2VQcm92aWRlcnNNYXAiLCAib3B0aW9ucyIsICJmcm9tSHR0cCIsICJmcm9tQ29udGFpbmVyTWV0YWRhdGEiLCAic2V0TmFtZWRQcm92aWRlciIsICJmcm9tSW5zdGFuY2VNZXRhZGF0YSIsICJmcm9tRW52IiwgImNyZWRzIiwgImlzQXNzdW1lUm9sZVByb2ZpbGUiLCAiYXJnIiwgInByb2ZpbGUiLCAiaXNBc3N1bWVSb2xlV2l0aFNvdXJjZVByb2ZpbGUiLCAiaXNDcmVkZW50aWFsU291cmNlUHJvZmlsZSIsICJ3aXRoU291cmNlUHJvZmlsZSIsICJ3aXRoUHJvdmlkZXJQcm9maWxlIiwgInJlc29sdmVBc3N1bWVSb2xlQ3JlZGVudGlhbHMiLCAicHJvZmlsZXMiLCAiY2FsbGVyQ2xpZW50Q29uZmlnIiwgInZpc2l0ZWRQcm9maWxlcyIsICJyZXNvbHZlUHJvZmlsZURhdGEiLCAicHJvZmlsZURhdGEiLCAic291cmNlX3Byb2ZpbGUiLCAicmVnaW9uIiwgImdldERlZmF1bHRSb2xlQXNzdW1lciIsICJzb3VyY2VDcmVkc1Byb3ZpZGVyIiwgImlzQ3JlZGVudGlhbFNvdXJjZVdpdGhvdXRSb2xlQXJuIiwgInBhcmFtcyIsICJtZmFfc2VyaWFsIiwgInNvdXJjZUNyZWRzIiwgInNlY3Rpb24iLCAiaXNMb2dpblByb2ZpbGUiLCAiZGF0YSIsICJyZXNvbHZlTG9naW5DcmVkZW50aWFscyIsICJjcmVkZW50aWFscyIsICJpc1Byb2Nlc3NQcm9maWxlIiwgInJlc29sdmVQcm9jZXNzQ3JlZGVudGlhbHMiLCAiZnJvbVByb2Nlc3MiLCAicmVzb2x2ZVNzb0NyZWRlbnRpYWxzIiwgImZyb21TU08iLCAiaXNTc29Qcm9maWxlIiwgImlzU3RhdGljQ3JlZHNQcm9maWxlIiwgInJlc29sdmVTdGF0aWNDcmVkZW50aWFscyIsICJpc1dlYklkZW50aXR5UHJvZmlsZSIsICJyZXNvbHZlV2ViSWRlbnRpdHlDcmVkZW50aWFscyIsICJmcm9tVG9rZW5GaWxlIiwgImlzQXNzdW1lUm9sZVJlY3Vyc2l2ZUNhbGwiLCAiZnJvbUluaSIsICJpbml0IiwgInJlcXVpcmVfZGlzdF9janMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgImNyZWRlbnRpYWxQcm92aWRlckVudiIsICJwcm9wZXJ0eVByb3ZpZGVyIiwgInNoYXJlZEluaUZpbGVMb2FkZXIiLCAiRU5WX0lNRFNfRElTQUJMRUQiLCAicmVtb3RlUHJvdmlkZXIiLCAiaW5pdCIsICJFTlZfQ01EU19GVUxMX1VSSSIsICJFTlZfQ01EU19SRUxBVElWRV9VUkkiLCAiZnJvbUNvbnRhaW5lck1ldGFkYXRhIiwgImZyb21JbnN0YW5jZU1ldGFkYXRhIiwgImZyb21IdHRwIiwgIm1lbW9pemVDaGFpbiIsICJwcm92aWRlcnMiLCAidHJlYXRBc0V4cGlyZWQiLCAiY2hhaW4iLCAiaW50ZXJuYWxDcmVhdGVDaGFpbiIsICJhY3RpdmVMb2NrIiwgInBhc3NpdmVMb2NrIiwgImNyZWRlbnRpYWxzIiwgInByb3ZpZGVyIiwgIm9wdGlvbnMiLCAiYXdzSWRlbnRpdHlQcm9wZXJ0aWVzIiwgImxhc3RQcm92aWRlckVycm9yIiwgImVyciIsICJtdWx0aXBsZUNyZWRlbnRpYWxTb3VyY2VXYXJuaW5nRW1pdHRlZCIsICJkZWZhdWx0UHJvdmlkZXIiLCAic3NvU3RhcnRVcmwiLCAic3NvQWNjb3VudElkIiwgInNzb1JlZ2lvbiIsICJzc29Sb2xlTmFtZSIsICJzc29TZXNzaW9uIiwgImZyb21TU08iLCAiZnJvbUluaSIsICJmcm9tUHJvY2VzcyIsICJmcm9tVG9rZW5GaWxlIiwgImNyZWRlbnRpYWxzVHJlYXRlZEFzRXhwaXJlZCIsICJjcmVkZW50aWFsc1dpbGxOZWVkUmVmcmVzaCIsICJyZXF1aXJlX2Rpc3RfY2pzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJub2RlX29zIiwgIm5vZGVfcHJvY2VzcyIsICJ1dGlsQ29uZmlnUHJvdmlkZXIiLCAicHJvbWlzZXMiLCAibm9kZV9wYXRoIiwgIm1pZGRsZXdhcmVVc2VyQWdlbnQiLCAiZ2V0UnVudGltZVVzZXJBZ2VudFBhaXIiLCAicnVudGltZXNUb0NoZWNrIiwgInJ1bnRpbWUiLCAiZ2V0Tm9kZU1vZHVsZXNQYXJlbnREaXJzIiwgImRpcm5hbWUiLCAiY3dkIiwgIm5vcm1hbGl6ZWRQYXRoIiwgInBhcnRzIiwgIm5vZGVNb2R1bGVzSW5kZXgiLCAicGFyZW50RGlyIiwgIlNFTVZFUl9SRUdFWCIsICJnZXRTYW5pdGl6ZWRUeXBlU2NyaXB0VmVyc2lvbiIsICJ2ZXJzaW9uIiwgIm1hdGNoIiwgIm1ham9yIiwgIm1pbm9yIiwgInBhdGNoIiwgInByZXJlbGVhc2UiLCAiQUxMT1dFRF9QUkVGSVhFUyIsICJBTExPV0VEX0RJU1RfVEFHUyIsICJnZXRTYW5pdGl6ZWREZXZUeXBlU2NyaXB0VmVyc2lvbiIsICJwcmVmaXgiLCAicCIsICJzYW5pdGl6ZWRUeXBlU2NyaXB0VmVyc2lvbiIsICJ0c2NWZXJzaW9uIiwgIlRTX1BBQ0tBR0VfSlNPTiIsICJnZXRUeXBlU2NyaXB0VXNlckFnZW50UGFpciIsICJpc1R5cGVTY3JpcHREZXRlY3Rpb25EaXNhYmxlZCIsICJub2RlTW9kdWxlc1BhcmVudERpcnMiLCAidmVyc2lvbkZyb21BcHAiLCAibm9kZU1vZHVsZXNQYXJlbnREaXIiLCAiYXBwUGFja2FnZUpzb25QYXRoIiwgInBhY2thZ2VKc29uIiwgImRlcGVuZGVuY2llcyIsICJkZXZEZXBlbmRlbmNpZXMiLCAidmVyc2lvbkZyb21Ob2RlTW9kdWxlcyIsICJ0c1BhY2thZ2VKc29uUGF0aCIsICJzYW5pdGl6ZWRWZXJzaW9uIiwgImNydEF2YWlsYWJpbGl0eSIsICJpc0NydEF2YWlsYWJsZSIsICJjcmVhdGVEZWZhdWx0VXNlckFnZW50UHJvdmlkZXIiLCAic2VydmljZUlkIiwgImNsaWVudFZlcnNpb24iLCAicnVudGltZVVzZXJBZ2VudFBhaXIiLCAiY29uZmlnIiwgInNlY3Rpb25zIiwgInR5cGVzY3JpcHRVc2VyQWdlbnRQYWlyIiwgImNydEF2YWlsYWJsZSIsICJhcHBJZCIsICJkZWZhdWx0VXNlckFnZW50IiwgIlVBX0FQUF9JRF9FTlZfTkFNRSIsICJVQV9BUFBfSURfSU5JX05BTUUiLCAiVUFfQVBQX0lEX0lOSV9OQU1FX0RFUFJFQ0FURUQiLCAiTk9ERV9BUFBfSURfQ09ORklHX09QVElPTlMiLCAiZW52IiwgInByb2ZpbGUiLCAicmVxdWlyZV9ydWxlc2V0IiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJ5IiwgInoiLCAiQSIsICJCIiwgIkMiLCAiRCIsICJhIiwgImIiLCAiYyIsICJkIiwgImUiLCAiZiIsICJnIiwgImgiLCAiaSIsICJqIiwgImsiLCAibCIsICJtIiwgIm4iLCAibyIsICJwIiwgInEiLCAiciIsICJzIiwgInQiLCAidSIsICJ2IiwgInciLCAieCIsICJfZGF0YSIsICJyZXF1aXJlX2VuZHBvaW50UmVzb2x2ZXIiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgInV0aWxfZW5kcG9pbnRzXzEiLCAidXRpbF9lbmRwb2ludHNfMiIsICJydWxlc2V0XzEiLCAiY2FjaGUiLCAiZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIiLCAiZW5kcG9pbnRQYXJhbXMiLCAiY29udGV4dCIsICJyZXF1aXJlX1NlY3JldHNNYW5hZ2VyU2VydmljZUV4Y2VwdGlvbiIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAic21pdGh5X2NsaWVudF8xIiwgIlNlY3JldHNNYW5hZ2VyU2VydmljZUV4Y2VwdGlvbiIsICJfU2VjcmV0c01hbmFnZXJTZXJ2aWNlRXhjZXB0aW9uIiwgIm9wdGlvbnMiLCAicmVxdWlyZV9lcnJvcnMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgIlNlY3JldHNNYW5hZ2VyU2VydmljZUV4Y2VwdGlvbl8xIiwgIkRlY3J5cHRpb25GYWlsdXJlIiwgIl9EZWNyeXB0aW9uRmFpbHVyZSIsICJvcHRzIiwgIkludGVybmFsU2VydmljZUVycm9yIiwgIl9JbnRlcm5hbFNlcnZpY2VFcnJvciIsICJJbnZhbGlkTmV4dFRva2VuRXhjZXB0aW9uIiwgIl9JbnZhbGlkTmV4dFRva2VuRXhjZXB0aW9uIiwgIkludmFsaWRQYXJhbWV0ZXJFeGNlcHRpb24iLCAiX0ludmFsaWRQYXJhbWV0ZXJFeGNlcHRpb24iLCAiSW52YWxpZFJlcXVlc3RFeGNlcHRpb24iLCAiX0ludmFsaWRSZXF1ZXN0RXhjZXB0aW9uIiwgIlJlc291cmNlTm90Rm91bmRFeGNlcHRpb24iLCAiX1Jlc291cmNlTm90Rm91bmRFeGNlcHRpb24iLCAiRW5jcnlwdGlvbkZhaWx1cmUiLCAiX0VuY3J5cHRpb25GYWlsdXJlIiwgIkxpbWl0RXhjZWVkZWRFeGNlcHRpb24iLCAiX0xpbWl0RXhjZWVkZWRFeGNlcHRpb24iLCAiTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFeGNlcHRpb24iLCAiX01hbGZvcm1lZFBvbGljeURvY3VtZW50RXhjZXB0aW9uIiwgIlByZWNvbmRpdGlvbk5vdE1ldEV4Y2VwdGlvbiIsICJfUHJlY29uZGl0aW9uTm90TWV0RXhjZXB0aW9uIiwgIlJlc291cmNlRXhpc3RzRXhjZXB0aW9uIiwgIl9SZXNvdXJjZUV4aXN0c0V4Y2VwdGlvbiIsICJQdWJsaWNQb2xpY3lFeGNlcHRpb24iLCAiX1B1YmxpY1BvbGljeUV4Y2VwdGlvbiIsICJyZXF1aXJlX3NjaGVtYXNfMCIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAiX0FBRCIsICJfQVBJRUxUIiwgIl9BUElFVCIsICJfQVJOIiwgIl9BUlIiLCAiX0FSUkxUIiwgIl9CR1NWIiwgIl9CR1NWUiIsICJfQkdTVlJhIiwgIl9CUFAiLCAiX0NEIiwgIl9DTiIsICJfQ1JTIiwgIl9DUlNSIiwgIl9DUlNSYSIsICJfQ1JUIiwgIl9DUyIsICJfQ1NSIiwgIl9DU1JyIiwgIl9EIiwgIl9ERCIsICJfRERlIiwgIl9ERiIsICJfRFJQIiwgIl9EUlBSIiwgIl9EUlBSZSIsICJfRFMiLCAiX0RTUiIsICJfRFNSZSIsICJfRFNSZXMiLCAiX0RTUmVzYyIsICJfRFNlIiwgIl9EdSIsICJfRSIsICJfRUMiLCAiX0VDeCIsICJfRUYiLCAiX0VMIiwgIl9FTSIsICJfRU4iLCAiX0VQIiwgIl9FU1JNIiwgIl9FU1JNSSIsICJfRVNSTVQiLCAiX0VTUlJBIiwgIl9FVSIsICJfRiIsICJfRkRXUiIsICJfRkxUIiwgIl9GT1JTIiwgIl9GaSIsICJfR1JQIiwgIl9HUlBSIiwgIl9HUlBSZSIsICJfR1JQUmV0IiwgIl9HUlBSZXRlIiwgIl9HUlBlIiwgIl9HU1YiLCAiX0dTVlIiLCAiX0dTVlJlIiwgIl9JRCIsICJfSU5URSIsICJfSVBEIiwgIl9JUEUiLCAiX0lSRSIsICJfSVMiLCAiX0lTRSIsICJfSyIsICJfS0tJIiwgIl9LS0ltIiwgIl9MQUQiLCAiX0xDRCIsICJfTEVFIiwgIl9MUkQiLCAiX0xTIiwgIl9MU1IiLCAiX0xTUmkiLCAiX0xTVkkiLCAiX0xTVklSIiwgIl9MU1ZJUmkiLCAiX00iLCAiX01QREUiLCAiX01SIiwgIl9NVFZJIiwgIl9OIiwgIl9OUkQiLCAiX05UIiwgIl9PUyIsICJfUEwiLCAiX1BOTUUiLCAiX1BQRSIsICJfUFIiLCAiX1BSUCIsICJfUFJQUiIsICJfUFJQUnUiLCAiX1BTViIsICJfUFNWUiIsICJfUFNWUnUiLCAiX1BWUCIsICJfUiIsICJfUkUiLCAiX1JFRSIsICJfUkVJVCIsICJfUkZWSSIsICJfUkkiLCAiX1JMQVJOIiwgIl9STkZFIiwgIl9SUCIsICJfUlBUIiwgIl9SUGUiLCAiX1JSIiwgIl9SUkZSIiwgIl9SUkZSUiIsICJfUlJGUlJlIiwgIl9SUlIiLCAiX1JSVCIsICJfUlJUbyIsICJfUlMiLCAiX1JTTFQiLCAiX1JTUiIsICJfUlNSZSIsICJfUlNSbyIsICJfUlNSb3QiLCAiX1JTVCIsICJfUlNUUiIsICJfUlNUUlIiLCAiX1JTVFJSZSIsICJfUlNlIiwgIl9SU28iLCAiX1JUIiwgIl9SVFQiLCAiX1JXSUQiLCAiX1MiLCAiX1NCIiwgIl9TQlQiLCAiX1NCbyIsICJfU0UiLCAiX1NJIiwgIl9TSUwiLCAiX1NMIiwgIl9TTEUiLCAiX1NMVCIsICJfU00iLCAiX1NPIiwgIl9TUlRSIiwgIl9TUlRSUiIsICJfU1JUUlJ0IiwgIl9TUyIsICJfU1NUIiwgIl9TViIsICJfU1ZFIiwgIl9TVkxFIiwgIl9TVkxUIiwgIl9TVlQiLCAiX1NWVFMiLCAiX1NWVFNNVCIsICJfVCIsICJfVEsiLCAiX1RMVCIsICJfVFIiLCAiX1RSUiIsICJfVGEiLCAiX1R5IiwgIl9VUiIsICJfVVJSIiwgIl9VUyIsICJfVVNSIiwgIl9VU1JwIiwgIl9VU1ZTIiwgIl9VU1ZTUiIsICJfVVNWU1JwIiwgIl9WIiwgIl9WRSIsICJfVkVFIiwgIl9WRVQiLCAiX1ZJIiwgIl9WSVRTIiwgIl9WUlAiLCAiX1ZSUFIiLCAiX1ZSUFJhIiwgIl9WUyIsICJfVlNlIiwgIl9WYSIsICJfVmUiLCAiX2MiLCAiX2UiLCAiX3MiLCAiX3NlIiwgIm4wIiwgInNjaGVtYV8xIiwgImVycm9yc18xIiwgIlNlY3JldHNNYW5hZ2VyU2VydmljZUV4Y2VwdGlvbl8xIiwgIl9zX3JlZ2lzdHJ5IiwgIm4wX3JlZ2lzdHJ5IiwgIlJhbmRvbVBhc3N3b3JkVHlwZSIsICJSb3RhdGlvblRva2VuVHlwZSIsICJTZWNyZXRCaW5hcnlUeXBlIiwgIlNlY3JldFN0cmluZ1R5cGUiLCAiRmlsdGVyc0xpc3RUeXBlIiwgIlNlY3JldFZhbHVlc1R5cGUiLCAiQVBJRXJyb3JMaXN0VHlwZSIsICJUYWdMaXN0VHlwZSIsICJBZGRSZXBsaWNhUmVnaW9uTGlzdFR5cGUiLCAiUmVwbGljYXRpb25TdGF0dXNMaXN0VHlwZSIsICJFeHRlcm5hbFNlY3JldFJvdGF0aW9uTWV0YWRhdGFUeXBlIiwgIlNlY3JldExpc3RUeXBlIiwgIlNlY3JldFZlcnNpb25zTGlzdFR5cGUiLCAiVmFsaWRhdGlvbkVycm9yc1R5cGUiLCAiX19Vbml0IiwgInJlcXVpcmVfcnVudGltZUNvbmZpZ19zaGFyZWQiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgImNvcmVfMSIsICJwcm90b2NvbHNfMSIsICJzbWl0aHlfY2xpZW50XzEiLCAidXJsX3BhcnNlcl8xIiwgInV0aWxfYmFzZTY0XzEiLCAidXRpbF91dGY4XzEiLCAiaHR0cEF1dGhTY2hlbWVQcm92aWRlcl8xIiwgImVuZHBvaW50UmVzb2x2ZXJfMSIsICJzY2hlbWFzXzBfMSIsICJnZXRSdW50aW1lQ29uZmlnIiwgImNvbmZpZyIsICJpcGMiLCAicmVxdWlyZV9ydW50aW1lQ29uZmlnIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJ0c2xpYl8xIiwgInBhY2thZ2VfanNvbl8xIiwgImNvcmVfMSIsICJjcmVkZW50aWFsX3Byb3ZpZGVyX25vZGVfMSIsICJ1dGlsX3VzZXJfYWdlbnRfbm9kZV8xIiwgImNvbmZpZ19yZXNvbHZlcl8xIiwgImhhc2hfbm9kZV8xIiwgIm1pZGRsZXdhcmVfcmV0cnlfMSIsICJub2RlX2NvbmZpZ19wcm92aWRlcl8xIiwgIm5vZGVfaHR0cF9oYW5kbGVyXzEiLCAic21pdGh5X2NsaWVudF8xIiwgInV0aWxfYm9keV9sZW5ndGhfbm9kZV8xIiwgInV0aWxfZGVmYXVsdHNfbW9kZV9ub2RlXzEiLCAidXRpbF9yZXRyeV8xIiwgInJ1bnRpbWVDb25maWdfc2hhcmVkXzEiLCAiZ2V0UnVudGltZUNvbmZpZyIsICJjb25maWciLCAiZGVmYXVsdHNNb2RlIiwgImRlZmF1bHRDb25maWdQcm92aWRlciIsICJjbGllbnRTaGFyZWRWYWx1ZXMiLCAibG9hZGVyQ29uZmlnIiwgInJlcXVpcmVfc3RzUmVnaW9uRGVmYXVsdFJlc29sdmVyIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJzdHNSZWdpb25EZWZhdWx0UmVzb2x2ZXIiLCAiY29uZmlnX3Jlc29sdmVyXzEiLCAibm9kZV9jb25maWdfcHJvdmlkZXJfMSIsICJsb2FkZXJDb25maWciLCAicmVxdWlyZV9kaXN0X2NqcyIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAic3RzUmVnaW9uRGVmYXVsdFJlc29sdmVyIiwgImNvbmZpZ1Jlc29sdmVyIiwgImdldEF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24iLCAicnVudGltZUNvbmZpZyIsICJyZWdpb24iLCAicmVzb2x2ZUF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24iLCAiYXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiIsICJrIiwgInJlcXVpcmVfZGlzdF9janMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgIm1pZGRsZXdhcmVIb3N0SGVhZGVyIiwgIm1pZGRsZXdhcmVMb2dnZXIiLCAibWlkZGxld2FyZVJlY3Vyc2lvbkRldGVjdGlvbiIsICJtaWRkbGV3YXJlVXNlckFnZW50IiwgImNvbmZpZ1Jlc29sdmVyIiwgImNvcmUiLCAic2NoZW1hIiwgIm1pZGRsZXdhcmVDb250ZW50TGVuZ3RoIiwgIm1pZGRsZXdhcmVFbmRwb2ludCIsICJtaWRkbGV3YXJlUmV0cnkiLCAic21pdGh5Q2xpZW50IiwgImh0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAicnVudGltZUNvbmZpZyIsICJyZWdpb25Db25maWdSZXNvbHZlciIsICJwcm90b2NvbEh0dHAiLCAic2NoZW1hc18wIiwgImVycm9ycyIsICJTZWNyZXRzTWFuYWdlclNlcnZpY2VFeGNlcHRpb24iLCAicmVzb2x2ZUNsaWVudEVuZHBvaW50UGFyYW1ldGVycyIsICJvcHRpb25zIiwgImNvbW1vblBhcmFtcyIsICJnZXRIdHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24iLCAiX2h0dHBBdXRoU2NoZW1lcyIsICJfaHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJfY3JlZGVudGlhbHMiLCAiaHR0cEF1dGhTY2hlbWUiLCAiaW5kZXgiLCAic2NoZW1lIiwgImNyZWRlbnRpYWxzIiwgInJlc29sdmVIdHRwQXV0aFJ1bnRpbWVDb25maWciLCAiY29uZmlnIiwgInJlc29sdmVSdW50aW1lRXh0ZW5zaW9ucyIsICJleHRlbnNpb25zIiwgImV4dGVuc2lvbkNvbmZpZ3VyYXRpb24iLCAiZXh0ZW5zaW9uIiwgIlNlY3JldHNNYW5hZ2VyQ2xpZW50IiwgImNvbmZpZ3VyYXRpb24iLCAiX2NvbmZpZ18wIiwgIl9jb25maWdfMSIsICJfY29uZmlnXzIiLCAiX2NvbmZpZ18zIiwgIl9jb25maWdfNCIsICJfY29uZmlnXzUiLCAiX2NvbmZpZ182IiwgIl9jb25maWdfNyIsICJfY29uZmlnXzgiLCAiQmF0Y2hHZXRTZWNyZXRWYWx1ZUNvbW1hbmQiLCAiQ29tbWFuZCIsICJjcyIsICJvIiwgIkNhbmNlbFJvdGF0ZVNlY3JldENvbW1hbmQiLCAiQ3JlYXRlU2VjcmV0Q29tbWFuZCIsICJEZWxldGVSZXNvdXJjZVBvbGljeUNvbW1hbmQiLCAiRGVsZXRlU2VjcmV0Q29tbWFuZCIsICJEZXNjcmliZVNlY3JldENvbW1hbmQiLCAiR2V0UmFuZG9tUGFzc3dvcmRDb21tYW5kIiwgIkdldFJlc291cmNlUG9saWN5Q29tbWFuZCIsICJHZXRTZWNyZXRWYWx1ZUNvbW1hbmQiLCAiTGlzdFNlY3JldHNDb21tYW5kIiwgIkxpc3RTZWNyZXRWZXJzaW9uSWRzQ29tbWFuZCIsICJQdXRSZXNvdXJjZVBvbGljeUNvbW1hbmQiLCAiUHV0U2VjcmV0VmFsdWVDb21tYW5kIiwgIlJlbW92ZVJlZ2lvbnNGcm9tUmVwbGljYXRpb25Db21tYW5kIiwgIlJlcGxpY2F0ZVNlY3JldFRvUmVnaW9uc0NvbW1hbmQiLCAiUmVzdG9yZVNlY3JldENvbW1hbmQiLCAiUm90YXRlU2VjcmV0Q29tbWFuZCIsICJTdG9wUmVwbGljYXRpb25Ub1JlcGxpY2FDb21tYW5kIiwgIlRhZ1Jlc291cmNlQ29tbWFuZCIsICJVbnRhZ1Jlc291cmNlQ29tbWFuZCIsICJVcGRhdGVTZWNyZXRDb21tYW5kIiwgIlVwZGF0ZVNlY3JldFZlcnNpb25TdGFnZUNvbW1hbmQiLCAiVmFsaWRhdGVSZXNvdXJjZVBvbGljeUNvbW1hbmQiLCAicGFnaW5hdGVCYXRjaEdldFNlY3JldFZhbHVlIiwgInBhZ2luYXRlTGlzdFNlY3JldHMiLCAicGFnaW5hdGVMaXN0U2VjcmV0VmVyc2lvbklkcyIsICJjb21tYW5kcyIsICJwYWdpbmF0b3JzIiwgIlNlY3JldHNNYW5hZ2VyIiwgIkZpbHRlck5hbWVTdHJpbmdUeXBlIiwgIlN0YXR1c1R5cGUiLCAiU29ydEJ5VHlwZSIsICJTb3J0T3JkZXJUeXBlIiwgImsiLCAicmVxdWlyZV9odHRwQXV0aFNjaGVtZVByb3ZpZGVyIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJjb3JlXzEiLCAidXRpbF9taWRkbGV3YXJlXzEiLCAiZGVmYXVsdExhbWJkYUh0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyIiwgImNvbmZpZyIsICJjb250ZXh0IiwgImlucHV0IiwgImNyZWF0ZUF3c0F1dGhTaWd2NEh0dHBBdXRoT3B0aW9uIiwgImF1dGhQYXJhbWV0ZXJzIiwgImRlZmF1bHRMYW1iZGFIdHRwQXV0aFNjaGVtZVByb3ZpZGVyIiwgIm9wdGlvbnMiLCAicmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnIiwgImNvbmZpZ18wIiwgInJlcXVpcmVfcGFja2FnZSIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgInJlcXVpcmVfcnVsZXNldCIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAicyIsICJ0IiwgInUiLCAidiIsICJhIiwgImIiLCAiYyIsICJkIiwgImUiLCAiZiIsICJnIiwgImgiLCAiaSIsICJqIiwgImsiLCAibCIsICJtIiwgIm4iLCAibyIsICJwIiwgInEiLCAiciIsICJfZGF0YSIsICJyZXF1aXJlX2VuZHBvaW50UmVzb2x2ZXIiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgInV0aWxfZW5kcG9pbnRzXzEiLCAidXRpbF9lbmRwb2ludHNfMiIsICJydWxlc2V0XzEiLCAiY2FjaGUiLCAiZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIiLCAiZW5kcG9pbnRQYXJhbXMiLCAiY29udGV4dCIsICJyZXF1aXJlX3J1bnRpbWVDb25maWdfc2hhcmVkIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJjb3JlXzEiLCAicHJvdG9jb2xzXzEiLCAic21pdGh5X2NsaWVudF8xIiwgInVybF9wYXJzZXJfMSIsICJ1dGlsX2Jhc2U2NF8xIiwgInV0aWxfdXRmOF8xIiwgImh0dHBBdXRoU2NoZW1lUHJvdmlkZXJfMSIsICJlbmRwb2ludFJlc29sdmVyXzEiLCAiZ2V0UnVudGltZUNvbmZpZyIsICJjb25maWciLCAiaXBjIiwgInJlcXVpcmVfcnVudGltZUNvbmZpZyIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAidHNsaWJfMSIsICJwYWNrYWdlX2pzb25fMSIsICJjb3JlXzEiLCAiY3JlZGVudGlhbF9wcm92aWRlcl9ub2RlXzEiLCAidXRpbF91c2VyX2FnZW50X25vZGVfMSIsICJjb25maWdfcmVzb2x2ZXJfMSIsICJldmVudHN0cmVhbV9zZXJkZV9ub2RlXzEiLCAiaGFzaF9ub2RlXzEiLCAibWlkZGxld2FyZV9yZXRyeV8xIiwgIm5vZGVfY29uZmlnX3Byb3ZpZGVyXzEiLCAibm9kZV9odHRwX2hhbmRsZXJfMSIsICJzbWl0aHlfY2xpZW50XzEiLCAidXRpbF9ib2R5X2xlbmd0aF9ub2RlXzEiLCAidXRpbF9kZWZhdWx0c19tb2RlX25vZGVfMSIsICJ1dGlsX3JldHJ5XzEiLCAicnVudGltZUNvbmZpZ19zaGFyZWRfMSIsICJnZXRSdW50aW1lQ29uZmlnIiwgImNvbmZpZyIsICJkZWZhdWx0c01vZGUiLCAiZGVmYXVsdENvbmZpZ1Byb3ZpZGVyIiwgImNsaWVudFNoYXJlZFZhbHVlcyIsICJsb2FkZXJDb25maWciLCAicmVxdWlyZV9kaXN0X2NqcyIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAibWlkZGxld2FyZUhvc3RIZWFkZXIiLCAibWlkZGxld2FyZUxvZ2dlciIsICJtaWRkbGV3YXJlUmVjdXJzaW9uRGV0ZWN0aW9uIiwgIm1pZGRsZXdhcmVVc2VyQWdlbnQiLCAiY29uZmlnUmVzb2x2ZXIiLCAiY29yZSIsICJzY2hlbWEiLCAiZXZlbnRzdHJlYW1TZXJkZUNvbmZpZ1Jlc29sdmVyIiwgIm1pZGRsZXdhcmVDb250ZW50TGVuZ3RoIiwgIm1pZGRsZXdhcmVFbmRwb2ludCIsICJtaWRkbGV3YXJlUmV0cnkiLCAic21pdGh5Q2xpZW50IiwgImh0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAicnVudGltZUNvbmZpZyIsICJyZWdpb25Db25maWdSZXNvbHZlciIsICJwcm90b2NvbEh0dHAiLCAidXRpbFdhaXRlciIsICJyZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzIiwgIm9wdGlvbnMiLCAiY29tbW9uUGFyYW1zIiwgImdldEh0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiIsICJfaHR0cEF1dGhTY2hlbWVzIiwgIl9odHRwQXV0aFNjaGVtZVByb3ZpZGVyIiwgIl9jcmVkZW50aWFscyIsICJodHRwQXV0aFNjaGVtZSIsICJpbmRleCIsICJzY2hlbWUiLCAiY3JlZGVudGlhbHMiLCAicmVzb2x2ZUh0dHBBdXRoUnVudGltZUNvbmZpZyIsICJjb25maWciLCAicmVzb2x2ZVJ1bnRpbWVFeHRlbnNpb25zIiwgImV4dGVuc2lvbnMiLCAiZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiIsICJleHRlbnNpb24iLCAiTGFtYmRhQ2xpZW50IiwgImNvbmZpZ3VyYXRpb24iLCAiX2NvbmZpZ18wIiwgIl9jb25maWdfMSIsICJfY29uZmlnXzIiLCAiX2NvbmZpZ18zIiwgIl9jb25maWdfNCIsICJfY29uZmlnXzUiLCAiX2NvbmZpZ182IiwgIl9jb25maWdfNyIsICJfY29uZmlnXzgiLCAiX2NvbmZpZ185IiwgIkxhbWJkYVNlcnZpY2VFeGNlcHRpb24kMSIsICJMYW1iZGFTZXJ2aWNlRXhjZXB0aW9uIiwgIkludmFsaWRQYXJhbWV0ZXJWYWx1ZUV4Y2VwdGlvbiQxIiwgIkludmFsaWRQYXJhbWV0ZXJWYWx1ZUV4Y2VwdGlvbiIsICJvcHRzIiwgIlBvbGljeUxlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uJDEiLCAiUG9saWN5TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24iLCAiUHJlY29uZGl0aW9uRmFpbGVkRXhjZXB0aW9uJDEiLCAiUHJlY29uZGl0aW9uRmFpbGVkRXhjZXB0aW9uIiwgIlJlc291cmNlQ29uZmxpY3RFeGNlcHRpb24kMSIsICJSZXNvdXJjZUNvbmZsaWN0RXhjZXB0aW9uIiwgIlJlc291cmNlTm90Rm91bmRFeGNlcHRpb24kMSIsICJSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uIiwgIlNlcnZpY2VFeGNlcHRpb24kMSIsICJTZXJ2aWNlRXhjZXB0aW9uIiwgIlRvb01hbnlSZXF1ZXN0c0V4Y2VwdGlvbiQxIiwgIlRvb01hbnlSZXF1ZXN0c0V4Y2VwdGlvbiIsICJDYXBhY2l0eVByb3ZpZGVyTGltaXRFeGNlZWRlZEV4Y2VwdGlvbiQxIiwgIkNhcGFjaXR5UHJvdmlkZXJMaW1pdEV4Y2VlZGVkRXhjZXB0aW9uIiwgIlJlc291cmNlSW5Vc2VFeGNlcHRpb24kMSIsICJSZXNvdXJjZUluVXNlRXhjZXB0aW9uIiwgIkNvZGVTaWduaW5nQ29uZmlnTm90Rm91bmRFeGNlcHRpb24kMSIsICJDb2RlU2lnbmluZ0NvbmZpZ05vdEZvdW5kRXhjZXB0aW9uIiwgIkNvZGVTdG9yYWdlRXhjZWVkZWRFeGNlcHRpb24kMSIsICJDb2RlU3RvcmFnZUV4Y2VlZGVkRXhjZXB0aW9uIiwgIkNvZGVWZXJpZmljYXRpb25GYWlsZWRFeGNlcHRpb24kMSIsICJDb2RlVmVyaWZpY2F0aW9uRmFpbGVkRXhjZXB0aW9uIiwgIkZ1bmN0aW9uVmVyc2lvbnNQZXJDYXBhY2l0eVByb3ZpZGVyTGltaXRFeGNlZWRlZEV4Y2VwdGlvbiQxIiwgIkZ1bmN0aW9uVmVyc2lvbnNQZXJDYXBhY2l0eVByb3ZpZGVyTGltaXRFeGNlZWRlZEV4Y2VwdGlvbiIsICJJbnZhbGlkQ29kZVNpZ25hdHVyZUV4Y2VwdGlvbiQxIiwgIkludmFsaWRDb2RlU2lnbmF0dXJlRXhjZXB0aW9uIiwgIkR1cmFibGVFeGVjdXRpb25BbHJlYWR5U3RhcnRlZEV4Y2VwdGlvbiQxIiwgIkR1cmFibGVFeGVjdXRpb25BbHJlYWR5U3RhcnRlZEV4Y2VwdGlvbiIsICJFQzJBY2Nlc3NEZW5pZWRFeGNlcHRpb24kMSIsICJFQzJBY2Nlc3NEZW5pZWRFeGNlcHRpb24iLCAiRUMyVGhyb3R0bGVkRXhjZXB0aW9uJDEiLCAiRUMyVGhyb3R0bGVkRXhjZXB0aW9uIiwgIkVDMlVuZXhwZWN0ZWRFeGNlcHRpb24kMSIsICJFQzJVbmV4cGVjdGVkRXhjZXB0aW9uIiwgIkVGU0lPRXhjZXB0aW9uJDEiLCAiRUZTSU9FeGNlcHRpb24iLCAiRUZTTW91bnRDb25uZWN0aXZpdHlFeGNlcHRpb24kMSIsICJFRlNNb3VudENvbm5lY3Rpdml0eUV4Y2VwdGlvbiIsICJFRlNNb3VudEZhaWx1cmVFeGNlcHRpb24kMSIsICJFRlNNb3VudEZhaWx1cmVFeGNlcHRpb24iLCAiRUZTTW91bnRUaW1lb3V0RXhjZXB0aW9uJDEiLCAiRUZTTW91bnRUaW1lb3V0RXhjZXB0aW9uIiwgIkVOSUxpbWl0UmVhY2hlZEV4Y2VwdGlvbiQxIiwgIkVOSUxpbWl0UmVhY2hlZEV4Y2VwdGlvbiIsICJJbnZhbGlkUmVxdWVzdENvbnRlbnRFeGNlcHRpb24kMSIsICJJbnZhbGlkUmVxdWVzdENvbnRlbnRFeGNlcHRpb24iLCAiSW52YWxpZFJ1bnRpbWVFeGNlcHRpb24kMSIsICJJbnZhbGlkUnVudGltZUV4Y2VwdGlvbiIsICJJbnZhbGlkU2VjdXJpdHlHcm91cElERXhjZXB0aW9uJDEiLCAiSW52YWxpZFNlY3VyaXR5R3JvdXBJREV4Y2VwdGlvbiIsICJJbnZhbGlkU3VibmV0SURFeGNlcHRpb24kMSIsICJJbnZhbGlkU3VibmV0SURFeGNlcHRpb24iLCAiSW52YWxpZFppcEZpbGVFeGNlcHRpb24kMSIsICJJbnZhbGlkWmlwRmlsZUV4Y2VwdGlvbiIsICJLTVNBY2Nlc3NEZW5pZWRFeGNlcHRpb24kMSIsICJLTVNBY2Nlc3NEZW5pZWRFeGNlcHRpb24iLCAiS01TRGlzYWJsZWRFeGNlcHRpb24kMSIsICJLTVNEaXNhYmxlZEV4Y2VwdGlvbiIsICJLTVNJbnZhbGlkU3RhdGVFeGNlcHRpb24kMSIsICJLTVNJbnZhbGlkU3RhdGVFeGNlcHRpb24iLCAiS01TTm90Rm91bmRFeGNlcHRpb24kMSIsICJLTVNOb3RGb3VuZEV4Y2VwdGlvbiIsICJOb1B1Ymxpc2hlZFZlcnNpb25FeGNlcHRpb24kMSIsICJOb1B1Ymxpc2hlZFZlcnNpb25FeGNlcHRpb24iLCAiUmVjdXJzaXZlSW52b2NhdGlvbkV4Y2VwdGlvbiQxIiwgIlJlY3Vyc2l2ZUludm9jYXRpb25FeGNlcHRpb24iLCAiUmVxdWVzdFRvb0xhcmdlRXhjZXB0aW9uJDEiLCAiUmVxdWVzdFRvb0xhcmdlRXhjZXB0aW9uIiwgIlJlc291cmNlTm90UmVhZHlFeGNlcHRpb24kMSIsICJSZXNvdXJjZU5vdFJlYWR5RXhjZXB0aW9uIiwgIlNlcmlhbGl6ZWRSZXF1ZXN0RW50aXR5VG9vTGFyZ2VFeGNlcHRpb24kMSIsICJTZXJpYWxpemVkUmVxdWVzdEVudGl0eVRvb0xhcmdlRXhjZXB0aW9uIiwgIlNuYXBTdGFydEV4Y2VwdGlvbiQxIiwgIlNuYXBTdGFydEV4Y2VwdGlvbiIsICJTbmFwU3RhcnROb3RSZWFkeUV4Y2VwdGlvbiQxIiwgIlNuYXBTdGFydE5vdFJlYWR5RXhjZXB0aW9uIiwgIlNuYXBTdGFydFRpbWVvdXRFeGNlcHRpb24kMSIsICJTbmFwU3RhcnRUaW1lb3V0RXhjZXB0aW9uIiwgIlN1Ym5ldElQQWRkcmVzc0xpbWl0UmVhY2hlZEV4Y2VwdGlvbiQxIiwgIlN1Ym5ldElQQWRkcmVzc0xpbWl0UmVhY2hlZEV4Y2VwdGlvbiIsICJVbnN1cHBvcnRlZE1lZGlhVHlwZUV4Y2VwdGlvbiQxIiwgIlVuc3VwcG9ydGVkTWVkaWFUeXBlRXhjZXB0aW9uIiwgIlByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdOb3RGb3VuZEV4Y2VwdGlvbiQxIiwgIlByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdOb3RGb3VuZEV4Y2VwdGlvbiIsICJDYWxsYmFja1RpbWVvdXRFeGNlcHRpb24kMSIsICJDYWxsYmFja1RpbWVvdXRFeGNlcHRpb24iLCAiX0EiLCAiX0FBIiwgIl9BQyIsICJfQUNjIiwgIl9BQ2wiLCAiX0FGU0MiLCAiX0FIIiwgIl9BSVQiLCAiX0FMIiwgIl9BTEwiLCAiX0FMVlAiLCAiX0FMVlBSIiwgIl9BTFZQUmQiLCAiX0FMbCIsICJfQU0iLCAiX0FNS0VTQyIsICJfQU8iLCAiX0FPcCIsICJfQVAiLCAiX0FQQ0UiLCAiX0FQQ0VsIiwgIl9BUFIiLCAiX0FQUmQiLCAiX0FQZCIsICJfQVJDIiwgIl9BVCIsICJfQVUiLCAiX0FWVyIsICJfQWwiLCAiX0FyIiwgIl9Bcm4iLCAiX0F0IiwgIl9BdHQiLCAiX0IiLCAiX0JCT0ZFIiwgIl9CT1AiLCAiX0JTIiwgIl9CU2EiLCAiX0MiLCAiX0NBIiwgIl9DQVIiLCAiX0NBbyIsICJfQ0FyIiwgIl9DQXUiLCAiX0NDIiwgIl9DQ1AiLCAiX0NDUFIiLCAiX0NDUFJyIiwgIl9DQ1NDIiwgIl9DQ1NDUiIsICJfQ0NTQ1JyIiwgIl9DRCIsICJfQ0RFIiwgIl9DREVSIiwgIl9DREVSaCIsICJfQ0RvIiwgIl9DRHIiLCAiX0NFIiwgIl9DRVNNIiwgIl9DRVNNUiIsICJfQ0YiLCAiX0NGRCIsICJfQ0ZEbyIsICJfQ0ZSIiwgIl9DRlVDIiwgIl9DRlVDUiIsICJfQ0ZVQ1JyIiwgIl9DR0kiLCAiX0NJIiwgIl9DSUQiLCAiX0NJRkQiLCAiX0NJTyIsICJfQ0lTRCIsICJfQ0lTRGgiLCAiX0NJU0RoYSIsICJfQ0lUT0QiLCAiX0NOIiwgIl9DTyIsICJfQ09vIiwgIl9DUCIsICJfQ1BBIiwgIl9DUEMiLCAiX0NQTCIsICJfQ1BMRUUiLCAiX0NQTiIsICJfQ1BPUkEiLCAiX0NQUEMiLCAiX0NQU0MiLCAiX0NQU1BMIiwgIl9DUFZDIiwgIl9DUGEiLCAiX0NSIiwgIl9DUm8iLCAiX0NTIiwgIl9DU0MiLCAiX0NTQ0EiLCAiX0NTQ0kiLCAiX0NTQ0wiLCAiX0NTQ05GRSIsICJfQ1NDbyIsICJfQ1NEIiwgIl9DU0RhIiwgIl9DU0RvIiwgIl9DU0RvbiIsICJfQ1NFRSIsICJfQ1NQIiwgIl9DU1UiLCAiX0NTWiIsICJfQ1NvIiwgIl9DU29uIiwgIl9DVCIsICJfQ1RFIiwgIl9DVE9EIiwgIl9DVF8iLCAiX0NUbCIsICJfQ1RyIiwgIl9DVUVTIiwgIl9DVkZFIiwgIl9DbyIsICJfQ29kIiwgIl9Db20iLCAiX0NvbiIsICJfQ29udCIsICJfRCIsICJfREEiLCAiX0RBUiIsICJfREMiLCAiX0RDUCIsICJfRENQUiIsICJfRENQUmUiLCAiX0RDU0MiLCAiX0RDU0NSIiwgIl9EQ1NDUmUiLCAiX0RDdSIsICJfRERCRVNDIiwgIl9ERSIsICJfREVBIiwgIl9ERUFTRSIsICJfREVOIiwgIl9ERVNNIiwgIl9ERVNNUiIsICJfREYiLCAiX0RGQyIsICJfREZDUiIsICJfREZDU0MiLCAiX0RGQ1NDUiIsICJfREZFSUMiLCAiX0RGRUlDUiIsICJfREZSIiwgIl9ERlJlIiwgIl9ERlVDIiwgIl9ERlVDUiIsICJfRExDIiwgIl9ETFYiLCAiX0RMVlIiLCAiX0ROIiwgIl9EUENDIiwgIl9EUENDUiIsICJfRFIiLCAiX0RlIiwgIl9EdSIsICJfRSIsICJfRUMiLCAiX0VDQURFIiwgIl9FQ0VDIiwgIl9FQ1RFIiwgIl9FQ1VFIiwgIl9FRCIsICJfRURyIiwgIl9FRHgiLCAiX0VFIiwgIl9FRU1HQlBWQyIsICJfRUV2IiwgIl9FRkQiLCAiX0VGU0lPRSIsICJfRUZTTUNFIiwgIl9FRlNNRkUiLCAiX0VGU01URSIsICJfRUgiLCAiX0VJIiwgIl9FSVQiLCAiX0VJdiIsICJfRU0iLCAiX0VOSUxSRSIsICJfRU8iLCAiX0VQIiwgIl9FUiIsICJfRVJGIiwgIl9FUnYiLCAiX0VTIiwgIl9FU0EiLCAiX0VTRCIsICJfRVNEeCIsICJfRVNEeGUiLCAiX0VTTSIsICJfRVNNQSIsICJfRVNNQyIsICJfRVNNTCIsICJfRVNNTUMiLCAiX0VTVCIsICJfRVN2IiwgIl9FVCIsICJfRVRPRCIsICJfRVRuIiwgIl9FVHYiLCAiX0VUdmUiLCAiX0VUeCIsICJfRVYiLCAiX0VWTiIsICJfRVZWIiwgIl9FVm4iLCAiX0VuIiwgIl9FbmQiLCAiX0VudiIsICJfRXYiLCAiX0V2ZSIsICJfRXgiLCAiX0YiLCAiX0ZBIiwgIl9GQXUiLCAiX0ZDIiwgIl9GQ0UiLCAiX0ZDTCIsICJfRkNpIiwgIl9GQ3UiLCAiX0ZDdW4iLCAiX0ZEIiwgIl9GRSIsICJfRkVJQyIsICJfRkVJQ0wiLCAiX0ZFSUN1IiwgIl9GTCIsICJfRkx1IiwgIl9GTiIsICJfRlJUIiwgIl9GUyIsICJfRlNDIiwgIl9GU0NMIiwgIl9GU0NpIiwgIl9GU0N1IiwgIl9GVSIsICJfRlVBVCIsICJfRlVDIiwgIl9GVUNMIiwgIl9GVUN1IiwgIl9GViIsICJfRlZCQ1BMIiwgIl9GVkJDUExJIiwgIl9GVlBDUExFRSIsICJfRlZ1IiwgIl9GaSIsICJfRnUiLCAiX0dBIiwgIl9HQVIiLCAiX0dBUyIsICJfR0FTUiIsICJfR0FTUmUiLCAiX0dDUCIsICJfR0NQUiIsICJfR0NQUmUiLCAiX0dDU0MiLCAiX0dDU0NSIiwgIl9HQ1NDUmUiLCAiX0dERSIsICJfR0RFSCIsICJfR0RFSFIiLCAiX0dERUhSZSIsICJfR0RFUiIsICJfR0RFUmUiLCAiX0dERVMiLCAiX0dERVNSIiwgIl9HREVTUmUiLCAiX0dFU00iLCAiX0dFU01SIiwgIl9HRiIsICJfR0ZDIiwgIl9HRkNSIiwgIl9HRkNSZSIsICJfR0ZDUmV0IiwgIl9HRkNTQyIsICJfR0ZDU0NSIiwgIl9HRkNTQ1JlIiwgIl9HRkNlIiwgIl9HRkVJQyIsICJfR0ZFSUNSIiwgIl9HRlIiLCAiX0dGUkMiLCAiX0dGUkNSIiwgIl9HRlJDUmUiLCAiX0dGUmUiLCAiX0dGU0MiLCAiX0dGU0NSIiwgIl9HRlNDUmUiLCAiX0dGVUMiLCAiX0dGVUNSIiwgIl9HRlVDUmUiLCAiX0dMViIsICJfR0xWQkEiLCAiX0dMVkJBUiIsICJfR0xWUCIsICJfR0xWUFIiLCAiX0dMVlBSZSIsICJfR0xWUiIsICJfR0xWUmUiLCAiX0dQIiwgIl9HUENDIiwgIl9HUENDUiIsICJfR1BDQ1JlIiwgIl9HUFIiLCAiX0dQUmUiLCAiX0dSTUMiLCAiX0dSTUNSIiwgIl9HUk1DUmUiLCAiX0giLCAiX0hUIiwgIl9IVFMiLCAiX0kiLCAiX0lBIiwgIl9JQUZEUyIsICJfSUFSIiwgIl9JQVJuIiwgIl9JQW4iLCAiX0lDIiwgIl9JQ0QiLCAiX0lDRSIsICJfSUNSIiwgIl9JQ1NFIiwgIl9JQ24iLCAiX0lFRCIsICJfSU0iLCAiX0lQIiwgIl9JUFZFIiwgIl9JUiIsICJfSVJDRSIsICJfSVJFIiwgIl9JUlNVIiwgIl9JUm4iLCAiX0lSbnYiLCAiX0lTR0lERSIsICJfSVNJREUiLCAiX0lUIiwgIl9JVSIsICJfSVZGVSIsICJfSVdSUyIsICJfSVdSU0NFIiwgIl9JV1JTUiIsICJfSVdSU1JFIiwgIl9JV1JTUm4iLCAiX0laRkUiLCAiX0lkIiwgIl9JbiIsICJfS0tBIiwgIl9LTVNBREUiLCAiX0tNU0RFIiwgIl9LTVNJU0UiLCAiX0tNU0tBIiwgIl9LTVNORkUiLCAiX0tTUkFDIiwgIl9LU1JBQ0wiLCAiX0tTUkMiLCAiX0tTVkMiLCAiX0tTVkNMIiwgIl9MIiwgIl9MQSIsICJfTEFSIiwgIl9MQVJpIiwgIl9MQWkiLCAiX0xDIiwgIl9MQ1AiLCAiX0xDUFIiLCAiX0xDUFJpIiwgIl9MQ1NDIiwgIl9MQ1NDUiIsICJfTENTQ1JpIiwgIl9MREVCRiIsICJfTERFQkZSIiwgIl9MREVCRlJpIiwgIl9MRVNNIiwgIl9MRVNNUiIsICJfTEVTTVJpIiwgIl9MRiIsICJfTEZCQ1NDIiwgIl9MRkJDU0NSIiwgIl9MRkJDU0NSaSIsICJfTEZFSUMiLCAiX0xGRUlDUiIsICJfTEZFSUNSaSIsICJfTEZSIiwgIl9MRlJpIiwgIl9MRlVDIiwgIl9MRlVDUiIsICJfTEZVQ1JpIiwgIl9MRlZCQ1AiLCAiX0xGVkJDUFIiLCAiX0xGVkJDUFJpIiwgIl9MRmkiLCAiX0xHIiwgIl9MSSIsICJfTEwiLCAiX0xMSSIsICJfTExSIiwgIl9MTFJpIiwgIl9MTFYiLCAiX0xMVlIiLCAiX0xMVlJpIiwgIl9MTGkiLCAiX0xNIiwgIl9MTUlDUEMiLCAiX0xNUCIsICJfTE1UIiwgIl9MTVYiLCAiX0xOIiwgIl9MUENDIiwgIl9MUENDUiIsICJfTFBDQ1JpIiwgIl9MUFIiLCAiX0xSIiwgIl9MUkwiLCAiX0xUIiwgIl9MVFIiLCAiX0xUUmkiLCAiX0xUaSIsICJfTFVTIiwgIl9MVVNSIiwgIl9MVVNSQyIsICJfTFYiLCAiX0xWQSIsICJfTFZCRiIsICJfTFZCRlIiLCAiX0xWQkZSaSIsICJfTFZDSSIsICJfTFZDTyIsICJfTFZMIiwgIl9MVkxJIiwgIl9MYSIsICJfTG8iLCAiX00iLCAiX01BIiwgIl9NQWEiLCAiX01CV0lTIiwgIl9NQyIsICJfTUNhIiwgIl9NRUFJUyIsICJfTUVFIiwgIl9NRUVhIiwgIl9NSSIsICJfTVAiLCAiX01QYSIsICJfTVIiLCAiX01SQSIsICJfTVJBSVMiLCAiX01TIiwgIl9NVkNDIiwgIl9NYSIsICJfTWUiLCAiX01vIiwgIl9OIiwgIl9OQURTIiwgIl9OQVQiLCAiX05FUyIsICJfTk0iLCAiX05QVkUiLCAiX08iLCAiX09GIiwgIl9PSSIsICJfT1AiLCAiX09QdSIsICJfT1MiLCAiX09TcCIsICJfT1UiLCAiX09VcCIsICJfT3AiLCAiX1AiLCAiX1BDIiwgIl9QQ0MiLCAiX1BDQ0wiLCAiX1BDQ0xJIiwgIl9QQ0NORkUiLCAiX1BDRSIsICJfUENhIiwgIl9QRUVNQyIsICJfUEYiLCAiX1BGQyIsICJfUEZDUiIsICJfUEZDU0MiLCAiX1BGQ1NDUiIsICJfUEZDU0NSdSIsICJfUEZFIiwgIl9QRkVJQyIsICJfUEZFSUNSIiwgIl9QRlJDIiwgIl9QRlJDUiIsICJfUEZSQ1J1IiwgIl9QRlNDIiwgIl9QRlNDUiIsICJfUEZTQ1J1IiwgIl9QR04iLCAiX1BJIiwgIl9QTEVFIiwgIl9QTFYiLCAiX1BMVlIiLCAiX1BMVlJ1IiwgIl9QTVQiLCAiX1BPSUQiLCAiX1BQQyIsICJfUFBDQyIsICJfUFBDQ1IiLCAiX1BQQ0NSdSIsICJfUFJNQyIsICJfUFJNQ1IiLCAiX1BSTUNSdSIsICJfUFQiLCAiX1BUdSIsICJfUFYiLCAiX1BWUiIsICJfUGEiLCAiX1BhdCIsICJfUG8iLCAiX1B1IiwgIl9RIiwgIl9RdSIsICJfUiIsICJfUkEiLCAiX1JDIiwgIl9SQ0UiLCAiX1JDRWUiLCAiX1JDZSIsICJfUkQiLCAiX1JGU0MiLCAiX1JJIiwgIl9SSUUiLCAiX1JJVSIsICJfUklVRSIsICJfUkllIiwgIl9STCIsICJfUkxWUCIsICJfUkxWUFIiLCAiX1JORkUiLCAiX1JOUkUiLCAiX1JPIiwgIl9SUCIsICJfUlBDRSIsICJfUlBJRCIsICJfUlBSIiwgIl9SU0NUIiwgIl9SVCIsICJfUlRMRSIsICJfUlZBIiwgIl9SVkMiLCAiX1JWRSIsICJfUmUiLCAiX1JlYSIsICJfUm8iLCAiX1J1IiwgIl9TIiwgIl9TQSIsICJfU0FDIiwgIl9TQUNvIiwgIl9TQW8iLCAiX1NBdCIsICJfU0IiLCAiX1NCdCIsICJfU0MiLCAiX1NDdCIsICJfU0QiLCAiX1NERSIsICJfU0RFQ0YiLCAiX1NERUNGUiIsICJfU0RFQ0ZSZSIsICJfU0RFQ0giLCAiX1NERUNIUiIsICJfU0RFQ0hSZSIsICJfU0RFQ1MiLCAiX1NERUNTUiIsICJfU0RFQ1NSZSIsICJfU0RFUiIsICJfU0RFUnQiLCAiX1NFIiwgIl9TRVQiLCAiX1NGRCIsICJfU0dJIiwgIl9TSSIsICJfU0lQQUxSRSIsICJfU0l1IiwgIl9TSkEiLCAiX1NLIiwgIl9TS01TS0EiLCAiX1NMTCIsICJfU00iLCAiX1NNRVMiLCAiX1NNS0VTQyIsICJfU08iLCAiX1NPViIsICJfU1AiLCAiX1NQVCIsICJfU1BWQSIsICJfU1BWQWkiLCAiX1NQdCIsICJfU1IiLCAiX1NSQyIsICJfU1JDdCIsICJfU1JFVExFIiwgIl9TUlVSSSIsICJfU1J0IiwgIl9TUyIsICJfU1NEIiwgIl9TU0R0IiwgIl9TU0UiLCAiX1NTTlJFIiwgIl9TU1IiLCAiX1NTVEUiLCAiX1NTbiIsICJfU1QiLCAiX1NURSIsICJfU1RFdCIsICJfU1RSIiwgIl9TVHQiLCAiX1NUdG8iLCAiX1NUdSIsICJfU1ZDIiwgIl9TaSIsICJfU3QiLCAiX1N0YSIsICJfU3RhdCIsICJfVCIsICJfVEEiLCAiX1RDIiwgIl9UQ1IiLCAiX1RDUyIsICJfVENlIiwgIl9URSIsICJfVEgiLCAiX1RJIiwgIl9USU0iLCAiX1RLIiwgIl9UTVJFIiwgIl9UUiIsICJfVFJSIiwgIl9UUyIsICJfVFRTUCIsICJfVFYiLCAiX1RXSVMiLCAiX1RhIiwgIl9UbyIsICJfVHIiLCAiX1R5IiwgIl9VIiwgIl9VQSIsICJfVUFPRCIsICJfVUFSIiwgIl9VQ0UiLCAiX1VDUCIsICJfVUNQUiIsICJfVUNQUnAiLCAiX1VDU0MiLCAiX1VDU0NSIiwgIl9VQ1NDUnAiLCAiX1VFU00iLCAiX1VFU01SIiwgIl9VRkMiLCAiX1VGQ1IiLCAiX1VGQ1JwIiwgIl9VRkNwIiwgIl9VRkVJQyIsICJfVUZFSUNSIiwgIl9VRlVDIiwgIl9VRlVDUiIsICJfVUZVQ1JwIiwgIl9VTVRFIiwgIl9VUiIsICJfVVJJIiwgIl9VUk8iLCAiX1VSUiIsICJfVVVJRCIsICJfViIsICJfVkMiLCAiX1ZDUiIsICJfVkkiLCAiX1ZOIiwgIl9WZSIsICJfVmVyIiwgIl9XQ0QiLCAiX1dEIiwgIl9XRGEiLCAiX1dPIiwgIl9XUyIsICJfV1NEIiwgIl9XU0RhIiwgIl9YQUNDIiwgIl9YQURFQSIsICJfWEFERU4iLCAiX1hBRVYiLCAiX1hBRkUiLCAiX1hBSVQiLCAiX1hBTFIiLCAiX1hBTFQiLCAiX1hBVEkiLCAiX1hBVEltIiwgIl9aRiIsICJfYyIsICJfZSIsICJfZVAiLCAiX2giLCAiX2hFIiwgIl9oSCIsICJfaFEiLCAiX20iLCAiX3JBUyIsICJfcyIsICJfc2UiLCAiX3NtIiwgIl90SyIsICJuMCIsICJCaW5hcnlPcGVyYXRpb25QYXlsb2FkIiwgIl9CbG9iIiwgIkJsb2JTdHJlYW0iLCAiRW52aXJvbm1lbnRWYXJpYWJsZU5hbWUiLCAiRW52aXJvbm1lbnRWYXJpYWJsZVZhbHVlIiwgIkVycm9yRGF0YSIsICJFcnJvck1lc3NhZ2UiLCAiRXJyb3JUeXBlIiwgIklucHV0UGF5bG9hZCIsICJPcGVyYXRpb25QYXlsb2FkIiwgIk91dHB1dFBheWxvYWQiLCAiU2Vuc2l0aXZlU3RyaW5nIiwgIlN0YWNrVHJhY2VFbnRyeSIsICJBY2NvdW50TGltaXQiLCAiQWNjb3VudFVzYWdlIiwgIkFkZExheWVyVmVyc2lvblBlcm1pc3Npb25SZXF1ZXN0IiwgIkFkZExheWVyVmVyc2lvblBlcm1pc3Npb25SZXNwb25zZSIsICJBZGRQZXJtaXNzaW9uUmVxdWVzdCIsICJBZGRQZXJtaXNzaW9uUmVzcG9uc2UiLCAiQWxpYXNDb25maWd1cmF0aW9uIiwgIkFsaWFzUm91dGluZ0NvbmZpZ3VyYXRpb24iLCAiQWxsb3dlZFB1Ymxpc2hlcnMiLCAiQW1hem9uTWFuYWdlZEthZmthRXZlbnRTb3VyY2VDb25maWciLCAiS2Fma2FTY2hlbWFSZWdpc3RyeUNvbmZpZyIsICJDYWxsYmFja0RldGFpbHMiLCAiRXJyb3JPYmplY3QiLCAiQ2FsbGJhY2tGYWlsZWREZXRhaWxzIiwgIkV2ZW50RXJyb3IiLCAiQ2FsbGJhY2tPcHRpb25zIiwgIkNhbGxiYWNrU3RhcnRlZERldGFpbHMiLCAiQ2FsbGJhY2tTdWNjZWVkZWREZXRhaWxzIiwgIkV2ZW50UmVzdWx0IiwgIkNhbGxiYWNrVGltZWRPdXREZXRhaWxzIiwgIkNhcGFjaXR5UHJvdmlkZXIiLCAiQ2FwYWNpdHlQcm92aWRlclZwY0NvbmZpZyIsICJDYXBhY2l0eVByb3ZpZGVyUGVybWlzc2lvbnNDb25maWciLCAiSW5zdGFuY2VSZXF1aXJlbWVudHMiLCAiQ2FwYWNpdHlQcm92aWRlclNjYWxpbmdDb25maWciLCAiQ2FwYWNpdHlQcm92aWRlckNvbmZpZyIsICJMYW1iZGFNYW5hZ2VkSW5zdGFuY2VzQ2FwYWNpdHlQcm92aWRlckNvbmZpZyIsICJDYXBhY2l0eVByb3ZpZGVyU2NhbGluZ1BvbGljaWVzTGlzdCIsICJDaGFpbmVkSW52b2tlRGV0YWlscyIsICJDaGFpbmVkSW52b2tlRmFpbGVkRGV0YWlscyIsICJDaGFpbmVkSW52b2tlT3B0aW9ucyIsICJDaGFpbmVkSW52b2tlU3RhcnRlZERldGFpbHMiLCAiRXZlbnRJbnB1dCIsICJDaGFpbmVkSW52b2tlU3RvcHBlZERldGFpbHMiLCAiQ2hhaW5lZEludm9rZVN1Y2NlZWRlZERldGFpbHMiLCAiQ2hhaW5lZEludm9rZVRpbWVkT3V0RGV0YWlscyIsICJDaGVja3BvaW50RHVyYWJsZUV4ZWN1dGlvblJlcXVlc3QiLCAiT3BlcmF0aW9uVXBkYXRlcyIsICJDaGVja3BvaW50RHVyYWJsZUV4ZWN1dGlvblJlc3BvbnNlIiwgIkNoZWNrcG9pbnRVcGRhdGVkRXhlY3V0aW9uU3RhdGUiLCAiT3BlcmF0aW9ucyIsICJDb2RlU2lnbmluZ0NvbmZpZyIsICJDb2RlU2lnbmluZ1BvbGljaWVzIiwgIkNvbmN1cnJlbmN5IiwgIkNvbnRleHREZXRhaWxzIiwgIkNvbnRleHRGYWlsZWREZXRhaWxzIiwgIkNvbnRleHRPcHRpb25zIiwgIkNvbnRleHRTdGFydGVkRGV0YWlscyIsICJDb250ZXh0U3VjY2VlZGVkRGV0YWlscyIsICJDb3JzIiwgIkNyZWF0ZUFsaWFzUmVxdWVzdCIsICJDcmVhdGVDYXBhY2l0eVByb3ZpZGVyUmVxdWVzdCIsICJDcmVhdGVDYXBhY2l0eVByb3ZpZGVyUmVzcG9uc2UiLCAiQ3JlYXRlQ29kZVNpZ25pbmdDb25maWdSZXF1ZXN0IiwgIkNyZWF0ZUNvZGVTaWduaW5nQ29uZmlnUmVzcG9uc2UiLCAiQ3JlYXRlRXZlbnRTb3VyY2VNYXBwaW5nUmVxdWVzdCIsICJGaWx0ZXJDcml0ZXJpYSIsICJEZXN0aW5hdGlvbkNvbmZpZyIsICJTb3VyY2VBY2Nlc3NDb25maWd1cmF0aW9ucyIsICJTZWxmTWFuYWdlZEV2ZW50U291cmNlIiwgIlNlbGZNYW5hZ2VkS2Fma2FFdmVudFNvdXJjZUNvbmZpZyIsICJTY2FsaW5nQ29uZmlnIiwgIkRvY3VtZW50REJFdmVudFNvdXJjZUNvbmZpZyIsICJFdmVudFNvdXJjZU1hcHBpbmdNZXRyaWNzQ29uZmlnIiwgIlByb3Zpc2lvbmVkUG9sbGVyQ29uZmlnIiwgIkNyZWF0ZUZ1bmN0aW9uUmVxdWVzdCIsICJGdW5jdGlvbkNvZGUiLCAiVnBjQ29uZmlnIiwgIkRlYWRMZXR0ZXJDb25maWciLCAiRW52aXJvbm1lbnQiLCAiVHJhY2luZ0NvbmZpZyIsICJGaWxlU3lzdGVtQ29uZmlnTGlzdCIsICJJbWFnZUNvbmZpZyIsICJFcGhlbWVyYWxTdG9yYWdlIiwgIlNuYXBTdGFydCIsICJMb2dnaW5nQ29uZmlnIiwgIkR1cmFibGVDb25maWciLCAiVGVuYW5jeUNvbmZpZyIsICJDcmVhdGVGdW5jdGlvblVybENvbmZpZ1JlcXVlc3QiLCAiQ3JlYXRlRnVuY3Rpb25VcmxDb25maWdSZXNwb25zZSIsICJEZWxldGVBbGlhc1JlcXVlc3QiLCAiRGVsZXRlQ2FwYWNpdHlQcm92aWRlclJlcXVlc3QiLCAiRGVsZXRlQ2FwYWNpdHlQcm92aWRlclJlc3BvbnNlIiwgIkRlbGV0ZUNvZGVTaWduaW5nQ29uZmlnUmVxdWVzdCIsICJEZWxldGVDb2RlU2lnbmluZ0NvbmZpZ1Jlc3BvbnNlIiwgIkRlbGV0ZUV2ZW50U291cmNlTWFwcGluZ1JlcXVlc3QiLCAiRGVsZXRlRnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ1JlcXVlc3QiLCAiRGVsZXRlRnVuY3Rpb25Db25jdXJyZW5jeVJlcXVlc3QiLCAiRGVsZXRlRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ1JlcXVlc3QiLCAiRGVsZXRlRnVuY3Rpb25SZXF1ZXN0IiwgIkRlbGV0ZUZ1bmN0aW9uUmVzcG9uc2UiLCAiRGVsZXRlRnVuY3Rpb25VcmxDb25maWdSZXF1ZXN0IiwgIkRlbGV0ZUxheWVyVmVyc2lvblJlcXVlc3QiLCAiRGVsZXRlUHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ1JlcXVlc3QiLCAiT25TdWNjZXNzIiwgIk9uRmFpbHVyZSIsICJFbnZpcm9ubWVudFZhcmlhYmxlcyIsICJFbnZpcm9ubWVudEVycm9yIiwgIkVudmlyb25tZW50UmVzcG9uc2UiLCAiU3RhY2tUcmFjZUVudHJpZXMiLCAiRXZlbnQiLCAiRXhlY3V0aW9uU3RhcnRlZERldGFpbHMiLCAiRXhlY3V0aW9uU3VjY2VlZGVkRGV0YWlscyIsICJFeGVjdXRpb25GYWlsZWREZXRhaWxzIiwgIkV4ZWN1dGlvblRpbWVkT3V0RGV0YWlscyIsICJFeGVjdXRpb25TdG9wcGVkRGV0YWlscyIsICJXYWl0U3RhcnRlZERldGFpbHMiLCAiV2FpdFN1Y2NlZWRlZERldGFpbHMiLCAiV2FpdENhbmNlbGxlZERldGFpbHMiLCAiU3RlcFN0YXJ0ZWREZXRhaWxzIiwgIlN0ZXBTdWNjZWVkZWREZXRhaWxzIiwgIlN0ZXBGYWlsZWREZXRhaWxzIiwgIkludm9jYXRpb25Db21wbGV0ZWREZXRhaWxzIiwgIkV2ZW50U291cmNlTWFwcGluZ0NvbmZpZ3VyYXRpb24iLCAiRmlsdGVyQ3JpdGVyaWFFcnJvciIsICJFeGVjdXRpb24iLCAiRXhlY3V0aW9uRGV0YWlscyIsICJGaWxlU3lzdGVtQ29uZmlnIiwgIkZpbHRlciIsICJGaWx0ZXJMaXN0IiwgIkZ1bmN0aW9uQ29kZUxvY2F0aW9uIiwgIkZ1bmN0aW9uQ29uZmlndXJhdGlvbiIsICJWcGNDb25maWdSZXNwb25zZSIsICJUcmFjaW5nQ29uZmlnUmVzcG9uc2UiLCAiTGF5ZXJzUmVmZXJlbmNlTGlzdCIsICJJbWFnZUNvbmZpZ1Jlc3BvbnNlIiwgIlNuYXBTdGFydFJlc3BvbnNlIiwgIlJ1bnRpbWVWZXJzaW9uQ29uZmlnIiwgIkZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWciLCAiRnVuY3Rpb25TY2FsaW5nQ29uZmlnIiwgIkZ1bmN0aW9uVXJsQ29uZmlnIiwgIkZ1bmN0aW9uVmVyc2lvbnNCeUNhcGFjaXR5UHJvdmlkZXJMaXN0SXRlbSIsICJHZXRBY2NvdW50U2V0dGluZ3NSZXF1ZXN0IiwgIkdldEFjY291bnRTZXR0aW5nc1Jlc3BvbnNlIiwgIkdldEFsaWFzUmVxdWVzdCIsICJHZXRDYXBhY2l0eVByb3ZpZGVyUmVxdWVzdCIsICJHZXRDYXBhY2l0eVByb3ZpZGVyUmVzcG9uc2UiLCAiR2V0Q29kZVNpZ25pbmdDb25maWdSZXF1ZXN0IiwgIkdldENvZGVTaWduaW5nQ29uZmlnUmVzcG9uc2UiLCAiR2V0RHVyYWJsZUV4ZWN1dGlvbkhpc3RvcnlSZXF1ZXN0IiwgIkdldER1cmFibGVFeGVjdXRpb25IaXN0b3J5UmVzcG9uc2UiLCAiRXZlbnRzIiwgIkdldER1cmFibGVFeGVjdXRpb25SZXF1ZXN0IiwgIkdldER1cmFibGVFeGVjdXRpb25SZXNwb25zZSIsICJUcmFjZUhlYWRlciIsICJHZXREdXJhYmxlRXhlY3V0aW9uU3RhdGVSZXF1ZXN0IiwgIkdldER1cmFibGVFeGVjdXRpb25TdGF0ZVJlc3BvbnNlIiwgIkdldEV2ZW50U291cmNlTWFwcGluZ1JlcXVlc3QiLCAiR2V0RnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ1JlcXVlc3QiLCAiR2V0RnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ1Jlc3BvbnNlIiwgIkdldEZ1bmN0aW9uQ29uY3VycmVuY3lSZXF1ZXN0IiwgIkdldEZ1bmN0aW9uQ29uY3VycmVuY3lSZXNwb25zZSIsICJHZXRGdW5jdGlvbkNvbmZpZ3VyYXRpb25SZXF1ZXN0IiwgIkdldEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdSZXF1ZXN0IiwgIkdldEZ1bmN0aW9uUmVjdXJzaW9uQ29uZmlnUmVxdWVzdCIsICJHZXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZ1Jlc3BvbnNlIiwgIkdldEZ1bmN0aW9uUmVxdWVzdCIsICJHZXRGdW5jdGlvblJlc3BvbnNlIiwgIlRhZ3NFcnJvciIsICJHZXRGdW5jdGlvblNjYWxpbmdDb25maWdSZXF1ZXN0IiwgIkdldEZ1bmN0aW9uU2NhbGluZ0NvbmZpZ1Jlc3BvbnNlIiwgIkdldEZ1bmN0aW9uVXJsQ29uZmlnUmVxdWVzdCIsICJHZXRGdW5jdGlvblVybENvbmZpZ1Jlc3BvbnNlIiwgIkdldExheWVyVmVyc2lvbkJ5QXJuUmVxdWVzdCIsICJHZXRMYXllclZlcnNpb25Qb2xpY3lSZXF1ZXN0IiwgIkdldExheWVyVmVyc2lvblBvbGljeVJlc3BvbnNlIiwgIkdldExheWVyVmVyc2lvblJlcXVlc3QiLCAiR2V0TGF5ZXJWZXJzaW9uUmVzcG9uc2UiLCAiTGF5ZXJWZXJzaW9uQ29udGVudE91dHB1dCIsICJHZXRQb2xpY3lSZXF1ZXN0IiwgIkdldFBvbGljeVJlc3BvbnNlIiwgIkdldFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdSZXF1ZXN0IiwgIkdldFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdSZXNwb25zZSIsICJHZXRSdW50aW1lTWFuYWdlbWVudENvbmZpZ1JlcXVlc3QiLCAiR2V0UnVudGltZU1hbmFnZW1lbnRDb25maWdSZXNwb25zZSIsICJJbWFnZUNvbmZpZ0Vycm9yIiwgIkludm9jYXRpb25SZXF1ZXN0IiwgIkludm9jYXRpb25SZXNwb25zZSIsICJJbnZva2VBc3luY1JlcXVlc3QiLCAiSW52b2tlQXN5bmNSZXNwb25zZSIsICJJbnZva2VSZXNwb25zZVN0cmVhbVVwZGF0ZSIsICJJbnZva2VXaXRoUmVzcG9uc2VTdHJlYW1Db21wbGV0ZUV2ZW50IiwgIkludm9rZVdpdGhSZXNwb25zZVN0cmVhbVJlcXVlc3QiLCAiSW52b2tlV2l0aFJlc3BvbnNlU3RyZWFtUmVzcG9uc2UiLCAiSW52b2tlV2l0aFJlc3BvbnNlU3RyZWFtUmVzcG9uc2VFdmVudCIsICJLYWZrYVNjaGVtYVJlZ2lzdHJ5QWNjZXNzQ29uZmlnIiwgIkthZmthU2NoZW1hUmVnaXN0cnlBY2Nlc3NDb25maWdMaXN0IiwgIkthZmthU2NoZW1hVmFsaWRhdGlvbkNvbmZpZ0xpc3QiLCAiS2Fma2FTY2hlbWFWYWxpZGF0aW9uQ29uZmlnIiwgIkxheWVyIiwgIkxheWVyc0xpc3RJdGVtIiwgIkxheWVyVmVyc2lvbnNMaXN0SXRlbSIsICJMYXllclZlcnNpb25Db250ZW50SW5wdXQiLCAiTGlzdEFsaWFzZXNSZXF1ZXN0IiwgIkxpc3RBbGlhc2VzUmVzcG9uc2UiLCAiQWxpYXNMaXN0IiwgIkxpc3RDYXBhY2l0eVByb3ZpZGVyc1JlcXVlc3QiLCAiTGlzdENhcGFjaXR5UHJvdmlkZXJzUmVzcG9uc2UiLCAiQ2FwYWNpdHlQcm92aWRlcnNMaXN0IiwgIkxpc3RDb2RlU2lnbmluZ0NvbmZpZ3NSZXF1ZXN0IiwgIkxpc3RDb2RlU2lnbmluZ0NvbmZpZ3NSZXNwb25zZSIsICJDb2RlU2lnbmluZ0NvbmZpZ0xpc3QiLCAiTGlzdER1cmFibGVFeGVjdXRpb25zQnlGdW5jdGlvblJlcXVlc3QiLCAiTGlzdER1cmFibGVFeGVjdXRpb25zQnlGdW5jdGlvblJlc3BvbnNlIiwgIkR1cmFibGVFeGVjdXRpb25zIiwgIkxpc3RFdmVudFNvdXJjZU1hcHBpbmdzUmVxdWVzdCIsICJMaXN0RXZlbnRTb3VyY2VNYXBwaW5nc1Jlc3BvbnNlIiwgIkV2ZW50U291cmNlTWFwcGluZ3NMaXN0IiwgIkxpc3RGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnc1JlcXVlc3QiLCAiTGlzdEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdzUmVzcG9uc2UiLCAiRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0xpc3QiLCAiTGlzdEZ1bmN0aW9uc0J5Q29kZVNpZ25pbmdDb25maWdSZXF1ZXN0IiwgIkxpc3RGdW5jdGlvbnNCeUNvZGVTaWduaW5nQ29uZmlnUmVzcG9uc2UiLCAiTGlzdEZ1bmN0aW9uc1JlcXVlc3QiLCAiTGlzdEZ1bmN0aW9uc1Jlc3BvbnNlIiwgIkZ1bmN0aW9uTGlzdCIsICJMaXN0RnVuY3Rpb25VcmxDb25maWdzUmVxdWVzdCIsICJMaXN0RnVuY3Rpb25VcmxDb25maWdzUmVzcG9uc2UiLCAiRnVuY3Rpb25VcmxDb25maWdMaXN0IiwgIkxpc3RGdW5jdGlvblZlcnNpb25zQnlDYXBhY2l0eVByb3ZpZGVyUmVxdWVzdCIsICJMaXN0RnVuY3Rpb25WZXJzaW9uc0J5Q2FwYWNpdHlQcm92aWRlclJlc3BvbnNlIiwgIkZ1bmN0aW9uVmVyc2lvbnNCeUNhcGFjaXR5UHJvdmlkZXJMaXN0IiwgIkxpc3RMYXllcnNSZXF1ZXN0IiwgIkxpc3RMYXllcnNSZXNwb25zZSIsICJMYXllcnNMaXN0IiwgIkxpc3RMYXllclZlcnNpb25zUmVxdWVzdCIsICJMaXN0TGF5ZXJWZXJzaW9uc1Jlc3BvbnNlIiwgIkxheWVyVmVyc2lvbnNMaXN0IiwgIkxpc3RQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnc1JlcXVlc3QiLCAiTGlzdFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdzUmVzcG9uc2UiLCAiUHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ0xpc3QiLCAiTGlzdFRhZ3NSZXF1ZXN0IiwgIkxpc3RUYWdzUmVzcG9uc2UiLCAiTGlzdFZlcnNpb25zQnlGdW5jdGlvblJlcXVlc3QiLCAiTGlzdFZlcnNpb25zQnlGdW5jdGlvblJlc3BvbnNlIiwgIk9wZXJhdGlvbiIsICJTdGVwRGV0YWlscyIsICJXYWl0RGV0YWlscyIsICJPcGVyYXRpb25VcGRhdGUiLCAiU3RlcE9wdGlvbnMiLCAiV2FpdE9wdGlvbnMiLCAiUHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ0xpc3RJdGVtIiwgIlB1Ymxpc2hMYXllclZlcnNpb25SZXF1ZXN0IiwgIlB1Ymxpc2hMYXllclZlcnNpb25SZXNwb25zZSIsICJQdWJsaXNoVmVyc2lvblJlcXVlc3QiLCAiUHV0RnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ1JlcXVlc3QiLCAiUHV0RnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ1Jlc3BvbnNlIiwgIlB1dEZ1bmN0aW9uQ29uY3VycmVuY3lSZXF1ZXN0IiwgIlB1dEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdSZXF1ZXN0IiwgIlB1dEZ1bmN0aW9uUmVjdXJzaW9uQ29uZmlnUmVxdWVzdCIsICJQdXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZ1Jlc3BvbnNlIiwgIlB1dEZ1bmN0aW9uU2NhbGluZ0NvbmZpZ1JlcXVlc3QiLCAiUHV0RnVuY3Rpb25TY2FsaW5nQ29uZmlnUmVzcG9uc2UiLCAiUHV0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ1JlcXVlc3QiLCAiUHV0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ1Jlc3BvbnNlIiwgIlB1dFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnUmVxdWVzdCIsICJQdXRSdW50aW1lTWFuYWdlbWVudENvbmZpZ1Jlc3BvbnNlIiwgIlJlbW92ZUxheWVyVmVyc2lvblBlcm1pc3Npb25SZXF1ZXN0IiwgIlJlbW92ZVBlcm1pc3Npb25SZXF1ZXN0IiwgIlJldHJ5RGV0YWlscyIsICJSdW50aW1lVmVyc2lvbkVycm9yIiwgIlNlbmREdXJhYmxlRXhlY3V0aW9uQ2FsbGJhY2tGYWlsdXJlUmVxdWVzdCIsICJTZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrRmFpbHVyZVJlc3BvbnNlIiwgIlNlbmREdXJhYmxlRXhlY3V0aW9uQ2FsbGJhY2tIZWFydGJlYXRSZXF1ZXN0IiwgIlNlbmREdXJhYmxlRXhlY3V0aW9uQ2FsbGJhY2tIZWFydGJlYXRSZXNwb25zZSIsICJTZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrU3VjY2Vzc1JlcXVlc3QiLCAiU2VuZER1cmFibGVFeGVjdXRpb25DYWxsYmFja1N1Y2Nlc3NSZXNwb25zZSIsICJTb3VyY2VBY2Nlc3NDb25maWd1cmF0aW9uIiwgIlN0b3BEdXJhYmxlRXhlY3V0aW9uUmVxdWVzdCIsICJTdG9wRHVyYWJsZUV4ZWN1dGlvblJlc3BvbnNlIiwgIlRhZ1Jlc291cmNlUmVxdWVzdCIsICJUYXJnZXRUcmFja2luZ1NjYWxpbmdQb2xpY3kiLCAiVW50YWdSZXNvdXJjZVJlcXVlc3QiLCAiVXBkYXRlQWxpYXNSZXF1ZXN0IiwgIlVwZGF0ZUNhcGFjaXR5UHJvdmlkZXJSZXF1ZXN0IiwgIlVwZGF0ZUNhcGFjaXR5UHJvdmlkZXJSZXNwb25zZSIsICJVcGRhdGVDb2RlU2lnbmluZ0NvbmZpZ1JlcXVlc3QiLCAiVXBkYXRlQ29kZVNpZ25pbmdDb25maWdSZXNwb25zZSIsICJVcGRhdGVFdmVudFNvdXJjZU1hcHBpbmdSZXF1ZXN0IiwgIlVwZGF0ZUZ1bmN0aW9uQ29kZVJlcXVlc3QiLCAiVXBkYXRlRnVuY3Rpb25Db25maWd1cmF0aW9uUmVxdWVzdCIsICJVcGRhdGVGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnUmVxdWVzdCIsICJVcGRhdGVGdW5jdGlvblVybENvbmZpZ1JlcXVlc3QiLCAiVXBkYXRlRnVuY3Rpb25VcmxDb25maWdSZXNwb25zZSIsICJfX1VuaXQiLCAiQWRkTGF5ZXJWZXJzaW9uUGVybWlzc2lvbiIsICJBZGRQZXJtaXNzaW9uIiwgIkNoZWNrcG9pbnREdXJhYmxlRXhlY3V0aW9uIiwgIkNyZWF0ZUFsaWFzIiwgIkNyZWF0ZUNhcGFjaXR5UHJvdmlkZXIiLCAiQ3JlYXRlQ29kZVNpZ25pbmdDb25maWciLCAiQ3JlYXRlRXZlbnRTb3VyY2VNYXBwaW5nIiwgIkNyZWF0ZUZ1bmN0aW9uIiwgIkNyZWF0ZUZ1bmN0aW9uVXJsQ29uZmlnIiwgIkRlbGV0ZUFsaWFzIiwgIkRlbGV0ZUNhcGFjaXR5UHJvdmlkZXIiLCAiRGVsZXRlQ29kZVNpZ25pbmdDb25maWciLCAiRGVsZXRlRXZlbnRTb3VyY2VNYXBwaW5nIiwgIkRlbGV0ZUZ1bmN0aW9uIiwgIkRlbGV0ZUZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWciLCAiRGVsZXRlRnVuY3Rpb25Db25jdXJyZW5jeSIsICJEZWxldGVGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnIiwgIkRlbGV0ZUZ1bmN0aW9uVXJsQ29uZmlnIiwgIkRlbGV0ZUxheWVyVmVyc2lvbiIsICJEZWxldGVQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnIiwgIkdldEFjY291bnRTZXR0aW5ncyIsICJHZXRBbGlhcyIsICJHZXRDYXBhY2l0eVByb3ZpZGVyIiwgIkdldENvZGVTaWduaW5nQ29uZmlnIiwgIkdldER1cmFibGVFeGVjdXRpb24iLCAiR2V0RHVyYWJsZUV4ZWN1dGlvbkhpc3RvcnkiLCAiR2V0RHVyYWJsZUV4ZWN1dGlvblN0YXRlIiwgIkdldEV2ZW50U291cmNlTWFwcGluZyIsICJHZXRGdW5jdGlvbiIsICJHZXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnIiwgIkdldEZ1bmN0aW9uQ29uY3VycmVuY3kiLCAiR2V0RnVuY3Rpb25Db25maWd1cmF0aW9uIiwgIkdldEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWciLCAiR2V0RnVuY3Rpb25SZWN1cnNpb25Db25maWciLCAiR2V0RnVuY3Rpb25TY2FsaW5nQ29uZmlnIiwgIkdldEZ1bmN0aW9uVXJsQ29uZmlnIiwgIkdldExheWVyVmVyc2lvbiIsICJHZXRMYXllclZlcnNpb25CeUFybiIsICJHZXRMYXllclZlcnNpb25Qb2xpY3kiLCAiR2V0UG9saWN5IiwgIkdldFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWciLCAiR2V0UnVudGltZU1hbmFnZW1lbnRDb25maWciLCAiSW52b2tlIiwgIkludm9rZUFzeW5jIiwgIkludm9rZVdpdGhSZXNwb25zZVN0cmVhbSIsICJMaXN0QWxpYXNlcyIsICJMaXN0Q2FwYWNpdHlQcm92aWRlcnMiLCAiTGlzdENvZGVTaWduaW5nQ29uZmlncyIsICJMaXN0RHVyYWJsZUV4ZWN1dGlvbnNCeUZ1bmN0aW9uIiwgIkxpc3RFdmVudFNvdXJjZU1hcHBpbmdzIiwgIkxpc3RGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlncyIsICJMaXN0RnVuY3Rpb25zIiwgIkxpc3RGdW5jdGlvbnNCeUNvZGVTaWduaW5nQ29uZmlnIiwgIkxpc3RGdW5jdGlvblVybENvbmZpZ3MiLCAiTGlzdEZ1bmN0aW9uVmVyc2lvbnNCeUNhcGFjaXR5UHJvdmlkZXIiLCAiTGlzdExheWVycyIsICJMaXN0TGF5ZXJWZXJzaW9ucyIsICJMaXN0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ3MiLCAiTGlzdFRhZ3MiLCAiTGlzdFZlcnNpb25zQnlGdW5jdGlvbiIsICJQdWJsaXNoTGF5ZXJWZXJzaW9uIiwgIlB1Ymxpc2hWZXJzaW9uIiwgIlB1dEZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWciLCAiUHV0RnVuY3Rpb25Db25jdXJyZW5jeSIsICJQdXRGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnIiwgIlB1dEZ1bmN0aW9uUmVjdXJzaW9uQ29uZmlnIiwgIlB1dEZ1bmN0aW9uU2NhbGluZ0NvbmZpZyIsICJQdXRQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnIiwgIlB1dFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnIiwgIlJlbW92ZUxheWVyVmVyc2lvblBlcm1pc3Npb24iLCAiUmVtb3ZlUGVybWlzc2lvbiIsICJTZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrRmFpbHVyZSIsICJTZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrSGVhcnRiZWF0IiwgIlNlbmREdXJhYmxlRXhlY3V0aW9uQ2FsbGJhY2tTdWNjZXNzIiwgIlN0b3BEdXJhYmxlRXhlY3V0aW9uIiwgIlRhZ1Jlc291cmNlIiwgIlVudGFnUmVzb3VyY2UiLCAiVXBkYXRlQWxpYXMiLCAiVXBkYXRlQ2FwYWNpdHlQcm92aWRlciIsICJVcGRhdGVDb2RlU2lnbmluZ0NvbmZpZyIsICJVcGRhdGVFdmVudFNvdXJjZU1hcHBpbmciLCAiVXBkYXRlRnVuY3Rpb25Db2RlIiwgIlVwZGF0ZUZ1bmN0aW9uQ29uZmlndXJhdGlvbiIsICJVcGRhdGVGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnIiwgIlVwZGF0ZUZ1bmN0aW9uVXJsQ29uZmlnIiwgIkFkZExheWVyVmVyc2lvblBlcm1pc3Npb25Db21tYW5kIiwgIkNvbW1hbmQiLCAiY3MiLCAibyIsICJBZGRQZXJtaXNzaW9uQ29tbWFuZCIsICJDaGVja3BvaW50RHVyYWJsZUV4ZWN1dGlvbkNvbW1hbmQiLCAiQ3JlYXRlQWxpYXNDb21tYW5kIiwgIkNyZWF0ZUNhcGFjaXR5UHJvdmlkZXJDb21tYW5kIiwgIkNyZWF0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZCIsICJDcmVhdGVFdmVudFNvdXJjZU1hcHBpbmdDb21tYW5kIiwgIkNyZWF0ZUZ1bmN0aW9uQ29tbWFuZCIsICJDcmVhdGVGdW5jdGlvblVybENvbmZpZ0NvbW1hbmQiLCAiRGVsZXRlQWxpYXNDb21tYW5kIiwgIkRlbGV0ZUNhcGFjaXR5UHJvdmlkZXJDb21tYW5kIiwgIkRlbGV0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZCIsICJEZWxldGVFdmVudFNvdXJjZU1hcHBpbmdDb21tYW5kIiwgIkRlbGV0ZUZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdDb21tYW5kIiwgIkRlbGV0ZUZ1bmN0aW9uQ29tbWFuZCIsICJEZWxldGVGdW5jdGlvbkNvbmN1cnJlbmN5Q29tbWFuZCIsICJEZWxldGVGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZCIsICJEZWxldGVGdW5jdGlvblVybENvbmZpZ0NvbW1hbmQiLCAiRGVsZXRlTGF5ZXJWZXJzaW9uQ29tbWFuZCIsICJEZWxldGVQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnQ29tbWFuZCIsICJHZXRBY2NvdW50U2V0dGluZ3NDb21tYW5kIiwgIkdldEFsaWFzQ29tbWFuZCIsICJHZXRDYXBhY2l0eVByb3ZpZGVyQ29tbWFuZCIsICJHZXRDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmQiLCAiR2V0RHVyYWJsZUV4ZWN1dGlvbkNvbW1hbmQiLCAiR2V0RHVyYWJsZUV4ZWN1dGlvbkhpc3RvcnlDb21tYW5kIiwgIkdldER1cmFibGVFeGVjdXRpb25TdGF0ZUNvbW1hbmQiLCAiR2V0RXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZCIsICJHZXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZCIsICJHZXRGdW5jdGlvbkNvbW1hbmQiLCAiR2V0RnVuY3Rpb25Db25jdXJyZW5jeUNvbW1hbmQiLCAiR2V0RnVuY3Rpb25Db25maWd1cmF0aW9uQ29tbWFuZCIsICJHZXRGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZCIsICJHZXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZ0NvbW1hbmQiLCAiR2V0RnVuY3Rpb25TY2FsaW5nQ29uZmlnQ29tbWFuZCIsICJHZXRGdW5jdGlvblVybENvbmZpZ0NvbW1hbmQiLCAiR2V0TGF5ZXJWZXJzaW9uQnlBcm5Db21tYW5kIiwgIkdldExheWVyVmVyc2lvbkNvbW1hbmQiLCAiR2V0TGF5ZXJWZXJzaW9uUG9saWN5Q29tbWFuZCIsICJHZXRQb2xpY3lDb21tYW5kIiwgIkdldFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdDb21tYW5kIiwgIkdldFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnQ29tbWFuZCIsICJJbnZva2VBc3luY0NvbW1hbmQiLCAiSW52b2tlQ29tbWFuZCIsICJJbnZva2VXaXRoUmVzcG9uc2VTdHJlYW1Db21tYW5kIiwgIkxpc3RBbGlhc2VzQ29tbWFuZCIsICJMaXN0Q2FwYWNpdHlQcm92aWRlcnNDb21tYW5kIiwgIkxpc3RDb2RlU2lnbmluZ0NvbmZpZ3NDb21tYW5kIiwgIkxpc3REdXJhYmxlRXhlY3V0aW9uc0J5RnVuY3Rpb25Db21tYW5kIiwgIkxpc3RFdmVudFNvdXJjZU1hcHBpbmdzQ29tbWFuZCIsICJMaXN0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ3NDb21tYW5kIiwgIkxpc3RGdW5jdGlvbnNCeUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZCIsICJMaXN0RnVuY3Rpb25zQ29tbWFuZCIsICJMaXN0RnVuY3Rpb25VcmxDb25maWdzQ29tbWFuZCIsICJMaXN0RnVuY3Rpb25WZXJzaW9uc0J5Q2FwYWNpdHlQcm92aWRlckNvbW1hbmQiLCAiTGlzdExheWVyc0NvbW1hbmQiLCAiTGlzdExheWVyVmVyc2lvbnNDb21tYW5kIiwgIkxpc3RQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnc0NvbW1hbmQiLCAiTGlzdFRhZ3NDb21tYW5kIiwgIkxpc3RWZXJzaW9uc0J5RnVuY3Rpb25Db21tYW5kIiwgIlB1Ymxpc2hMYXllclZlcnNpb25Db21tYW5kIiwgIlB1Ymxpc2hWZXJzaW9uQ29tbWFuZCIsICJQdXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZCIsICJQdXRGdW5jdGlvbkNvbmN1cnJlbmN5Q29tbWFuZCIsICJQdXRGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZCIsICJQdXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZ0NvbW1hbmQiLCAiUHV0RnVuY3Rpb25TY2FsaW5nQ29uZmlnQ29tbWFuZCIsICJQdXRQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnQ29tbWFuZCIsICJQdXRSdW50aW1lTWFuYWdlbWVudENvbmZpZ0NvbW1hbmQiLCAiUmVtb3ZlTGF5ZXJWZXJzaW9uUGVybWlzc2lvbkNvbW1hbmQiLCAiUmVtb3ZlUGVybWlzc2lvbkNvbW1hbmQiLCAiU2VuZER1cmFibGVFeGVjdXRpb25DYWxsYmFja0ZhaWx1cmVDb21tYW5kIiwgIlNlbmREdXJhYmxlRXhlY3V0aW9uQ2FsbGJhY2tIZWFydGJlYXRDb21tYW5kIiwgIlNlbmREdXJhYmxlRXhlY3V0aW9uQ2FsbGJhY2tTdWNjZXNzQ29tbWFuZCIsICJTdG9wRHVyYWJsZUV4ZWN1dGlvbkNvbW1hbmQiLCAiVGFnUmVzb3VyY2VDb21tYW5kIiwgIlVudGFnUmVzb3VyY2VDb21tYW5kIiwgIlVwZGF0ZUFsaWFzQ29tbWFuZCIsICJVcGRhdGVDYXBhY2l0eVByb3ZpZGVyQ29tbWFuZCIsICJVcGRhdGVDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmQiLCAiVXBkYXRlRXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZCIsICJVcGRhdGVGdW5jdGlvbkNvZGVDb21tYW5kIiwgIlVwZGF0ZUZ1bmN0aW9uQ29uZmlndXJhdGlvbkNvbW1hbmQiLCAiVXBkYXRlRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmQiLCAiVXBkYXRlRnVuY3Rpb25VcmxDb25maWdDb21tYW5kIiwgImNvbW1hbmRzIiwgIkxhbWJkYSIsICJwYWdpbmF0ZUdldER1cmFibGVFeGVjdXRpb25IaXN0b3J5IiwgInBhZ2luYXRlR2V0RHVyYWJsZUV4ZWN1dGlvblN0YXRlIiwgInBhZ2luYXRlTGlzdEFsaWFzZXMiLCAicGFnaW5hdGVMaXN0Q2FwYWNpdHlQcm92aWRlcnMiLCAicGFnaW5hdGVMaXN0Q29kZVNpZ25pbmdDb25maWdzIiwgInBhZ2luYXRlTGlzdER1cmFibGVFeGVjdXRpb25zQnlGdW5jdGlvbiIsICJwYWdpbmF0ZUxpc3RFdmVudFNvdXJjZU1hcHBpbmdzIiwgInBhZ2luYXRlTGlzdEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdzIiwgInBhZ2luYXRlTGlzdEZ1bmN0aW9uVXJsQ29uZmlncyIsICJwYWdpbmF0ZUxpc3RGdW5jdGlvblZlcnNpb25zQnlDYXBhY2l0eVByb3ZpZGVyIiwgInBhZ2luYXRlTGlzdEZ1bmN0aW9uc0J5Q29kZVNpZ25pbmdDb25maWciLCAicGFnaW5hdGVMaXN0RnVuY3Rpb25zIiwgInBhZ2luYXRlTGlzdExheWVyVmVyc2lvbnMiLCAicGFnaW5hdGVMaXN0TGF5ZXJzIiwgInBhZ2luYXRlTGlzdFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdzIiwgInBhZ2luYXRlTGlzdFZlcnNpb25zQnlGdW5jdGlvbiIsICJjaGVja1N0YXRlJDUiLCAiY2xpZW50IiwgImlucHV0IiwgInJlYXNvbiIsICJyZXN1bHQiLCAiZXhjZXB0aW9uIiwgIndhaXRGb3JGdW5jdGlvbkFjdGl2ZSIsICJwYXJhbXMiLCAic2VydmljZURlZmF1bHRzIiwgIndhaXRVbnRpbEZ1bmN0aW9uQWN0aXZlIiwgImNoZWNrU3RhdGUkNCIsICJ3YWl0Rm9yRnVuY3Rpb25BY3RpdmVWMiIsICJ3YWl0VW50aWxGdW5jdGlvbkFjdGl2ZVYyIiwgImNoZWNrU3RhdGUkMyIsICJ3YWl0Rm9yRnVuY3Rpb25FeGlzdHMiLCAid2FpdFVudGlsRnVuY3Rpb25FeGlzdHMiLCAiY2hlY2tTdGF0ZSQyIiwgIndhaXRGb3JGdW5jdGlvblVwZGF0ZWQiLCAid2FpdFVudGlsRnVuY3Rpb25VcGRhdGVkIiwgImNoZWNrU3RhdGUkMSIsICJ3YWl0Rm9yRnVuY3Rpb25VcGRhdGVkVjIiLCAid2FpdFVudGlsRnVuY3Rpb25VcGRhdGVkVjIiLCAiY2hlY2tTdGF0ZSIsICJ3YWl0Rm9yUHVibGlzaGVkVmVyc2lvbkFjdGl2ZSIsICJ3YWl0VW50aWxQdWJsaXNoZWRWZXJzaW9uQWN0aXZlIiwgIlRocm90dGxlUmVhc29uIiwgIkZ1bmN0aW9uVXJsQXV0aFR5cGUiLCAiS2Fma2FTY2hlbWFSZWdpc3RyeUF1dGhUeXBlIiwgIlNjaGVtYVJlZ2lzdHJ5RXZlbnRSZWNvcmRGb3JtYXQiLCAiS2Fma2FTY2hlbWFWYWxpZGF0aW9uQXR0cmlidXRlIiwgIkFwcGxpY2F0aW9uTG9nTGV2ZWwiLCAiQXJjaGl0ZWN0dXJlIiwgIkNhcGFjaXR5UHJvdmlkZXJTY2FsaW5nTW9kZSIsICJDYXBhY2l0eVByb3ZpZGVyUHJlZGVmaW5lZE1ldHJpY1R5cGUiLCAiQ2FwYWNpdHlQcm92aWRlclN0YXRlIiwgIlN0YXRlIiwgIk9wZXJhdGlvbkFjdGlvbiIsICJPcGVyYXRpb25UeXBlIiwgIk9wZXJhdGlvblN0YXR1cyIsICJDb2RlU2lnbmluZ1BvbGljeSIsICJGdWxsRG9jdW1lbnQiLCAiRnVuY3Rpb25SZXNwb25zZVR5cGUiLCAiRXZlbnRTb3VyY2VNYXBwaW5nTWV0cmljIiwgIkVuZFBvaW50VHlwZSIsICJTb3VyY2VBY2Nlc3NUeXBlIiwgIkV2ZW50U291cmNlUG9zaXRpb24iLCAiTG9nRm9ybWF0IiwgIlN5c3RlbUxvZ0xldmVsIiwgIlBhY2thZ2VUeXBlIiwgIkZ1bmN0aW9uVmVyc2lvbkxhdGVzdFB1Ymxpc2hlZCIsICJSdW50aW1lIiwgIlNuYXBTdGFydEFwcGx5T24iLCAiVGVuYW50SXNvbGF0aW9uTW9kZSIsICJUcmFjaW5nTW9kZSIsICJMYXN0VXBkYXRlU3RhdHVzIiwgIkxhc3RVcGRhdGVTdGF0dXNSZWFzb25Db2RlIiwgIlNuYXBTdGFydE9wdGltaXphdGlvblN0YXR1cyIsICJTdGF0ZVJlYXNvbkNvZGUiLCAiSW52b2tlTW9kZSIsICJSZWN1cnNpdmVMb29wIiwgIlVwZGF0ZVJ1bnRpbWVPbiIsICJJbnZvY2F0aW9uVHlwZSIsICJMb2dUeXBlIiwgIlJlc3BvbnNlU3RyZWFtaW5nSW52b2NhdGlvblR5cGUiLCAiRnVuY3Rpb25WZXJzaW9uIiwgIlByb3Zpc2lvbmVkQ29uY3VycmVuY3lTdGF0dXNFbnVtIiwgIkV4ZWN1dGlvblN0YXR1cyIsICJFdmVudFR5cGUiLCAicmVxdWlyZV9kaXN0X2NqcyIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAicHJvdG9jb2xIdHRwIiwgImFkZEV4cGVjdENvbnRpbnVlTWlkZGxld2FyZSIsICJvcHRpb25zIiwgIm5leHQiLCAiYXJncyIsICJyZXF1ZXN0IiwgInNlbmRIZWFkZXIiLCAiYWRkRXhwZWN0Q29udGludWVNaWRkbGV3YXJlT3B0aW9ucyIsICJnZXRBZGRFeHBlY3RDb250aW51ZVBsdWdpbiIsICJjbGllbnRTdGFjayIsICJyZXF1aXJlX2dldENyYzMyQ2hlY2tzdW1BbGdvcml0aG1GdW5jdGlvbiIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAidHNsaWJfMSIsICJjcmMzMl8xIiwgInV0aWxfMSIsICJ6bGliIiwgIk5vZGVDcmMzMiIsICJkYXRhIiwgImdldENyYzMyQ2hlY2tzdW1BbGdvcml0aG1GdW5jdGlvbiIsICJyZXF1aXJlX2Rpc3RfY2pzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJjb3JlIiwgInByb3RvY29sSHR0cCIsICJ1dGlsU3RyZWFtIiwgImlzQXJyYXlCdWZmZXIiLCAiY3JjMzJjIiwgImdldENyYzMyQ2hlY2tzdW1BbGdvcml0aG1GdW5jdGlvbiIsICJ1dGlsVXRmOCIsICJ1dGlsTWlkZGxld2FyZSIsICJSZXF1ZXN0Q2hlY2tzdW1DYWxjdWxhdGlvbiIsICJERUZBVUxUX1JFUVVFU1RfQ0hFQ0tTVU1fQ0FMQ1VMQVRJT04iLCAiUmVzcG9uc2VDaGVja3N1bVZhbGlkYXRpb24iLCAiREVGQVVMVF9SRVNQT05TRV9DSEVDS1NVTV9WQUxJREFUSU9OIiwgIkNoZWNrc3VtQWxnb3JpdGhtIiwgIkNoZWNrc3VtTG9jYXRpb24iLCAiREVGQVVMVF9DSEVDS1NVTV9BTEdPUklUSE0iLCAiU2VsZWN0b3JUeXBlIiwgInN0cmluZ1VuaW9uU2VsZWN0b3IiLCAib2JqIiwgImtleSIsICJ1bmlvbiIsICJ0eXBlIiwgInZhbHVlIiwgIkVOVl9SRVFVRVNUX0NIRUNLU1VNX0NBTENVTEFUSU9OIiwgIkNPTkZJR19SRVFVRVNUX0NIRUNLU1VNX0NBTENVTEFUSU9OIiwgIk5PREVfUkVRVUVTVF9DSEVDS1NVTV9DQUxDVUxBVElPTl9DT05GSUdfT1BUSU9OUyIsICJlbnYiLCAicHJvZmlsZSIsICJFTlZfUkVTUE9OU0VfQ0hFQ0tTVU1fVkFMSURBVElPTiIsICJDT05GSUdfUkVTUE9OU0VfQ0hFQ0tTVU1fVkFMSURBVElPTiIsICJOT0RFX1JFU1BPTlNFX0NIRUNLU1VNX1ZBTElEQVRJT05fQ09ORklHX09QVElPTlMiLCAiY3JjNjROdm1lQ3J0Q29udGFpbmVyIiwgIkNMSUVOVF9TVVBQT1JURURfQUxHT1JJVEhNUyIsICJQUklPUklUWV9PUkRFUl9BTEdPUklUSE1TIiwgImdldENoZWNrc3VtQWxnb3JpdGhtRm9yUmVxdWVzdCIsICJpbnB1dCIsICJyZXF1ZXN0Q2hlY2tzdW1SZXF1aXJlZCIsICJyZXF1ZXN0QWxnb3JpdGhtTWVtYmVyIiwgInJlcXVlc3RDaGVja3N1bUNhbGN1bGF0aW9uIiwgImNoZWNrc3VtQWxnb3JpdGhtIiwgImdldENoZWNrc3VtTG9jYXRpb25OYW1lIiwgImFsZ29yaXRobSIsICJoYXNIZWFkZXIiLCAiaGVhZGVyIiwgImhlYWRlcnMiLCAic291Z2h0SGVhZGVyIiwgImhlYWRlck5hbWUiLCAiaGFzSGVhZGVyV2l0aFByZWZpeCIsICJoZWFkZXJQcmVmaXgiLCAic291Z2h0SGVhZGVyUHJlZml4IiwgImlzU3RyZWFtaW5nIiwgImJvZHkiLCAic2VsZWN0Q2hlY2tzdW1BbGdvcml0aG1GdW5jdGlvbiIsICJjb25maWciLCAic3RyaW5nSGFzaGVyIiwgImNoZWNrc3VtQWxnb3JpdGhtRm4iLCAiaGFzaCIsICJmbGV4aWJsZUNoZWNrc3Vtc01pZGRsZXdhcmVPcHRpb25zIiwgImZsZXhpYmxlQ2hlY2tzdW1zTWlkZGxld2FyZSIsICJtaWRkbGV3YXJlQ29uZmlnIiwgIm5leHQiLCAiY29udGV4dCIsICJhcmdzIiwgInJlcXVlc3QiLCAicmVxdWVzdEJvZHkiLCAiYmFzZTY0RW5jb2RlciIsICJzdHJlYW1IYXNoZXIiLCAicmVxdWVzdEFsZ29yaXRobU1lbWJlck5hbWUiLCAicmVxdWVzdEFsZ29yaXRobU1lbWJlckh0dHBIZWFkZXIiLCAidXBkYXRlZEJvZHkiLCAidXBkYXRlZEhlYWRlcnMiLCAiY2hlY2tzdW1Mb2NhdGlvbk5hbWUiLCAiZ2V0QXdzQ2h1bmtlZEVuY29kaW5nU3RyZWFtIiwgImJvZHlMZW5ndGhDaGVja2VyIiwgInJhd0NoZWNrc3VtIiwgImZsZXhpYmxlQ2hlY2tzdW1zSW5wdXRNaWRkbGV3YXJlT3B0aW9ucyIsICJmbGV4aWJsZUNoZWNrc3Vtc0lucHV0TWlkZGxld2FyZSIsICJyZXF1ZXN0VmFsaWRhdGlvbk1vZGVNZW1iZXIiLCAicmVzcG9uc2VDaGVja3N1bVZhbGlkYXRpb24iLCAiZ2V0Q2hlY2tzdW1BbGdvcml0aG1MaXN0Rm9yUmVzcG9uc2UiLCAicmVzcG9uc2VBbGdvcml0aG1zIiwgInZhbGlkQ2hlY2tzdW1BbGdvcml0aG1zIiwgImlzQ2hlY2tzdW1XaXRoUGFydE51bWJlciIsICJjaGVja3N1bSIsICJsYXN0SHlwaGVuSW5kZXgiLCAibnVtYmVyUGFydCIsICJudW1iZXIiLCAiZ2V0Q2hlY2tzdW0iLCAidmFsaWRhdGVDaGVja3N1bUZyb21SZXNwb25zZSIsICJyZXNwb25zZSIsICJsb2dnZXIiLCAiY2hlY2tzdW1BbGdvcml0aG1zIiwgInJlc3BvbnNlQm9keSIsICJyZXNwb25zZUhlYWRlcnMiLCAicmVzcG9uc2VIZWFkZXIiLCAiY2hlY2tzdW1Gcm9tUmVzcG9uc2UiLCAiZXJyb3IiLCAiZmxleGlibGVDaGVja3N1bXNSZXNwb25zZU1pZGRsZXdhcmVPcHRpb25zIiwgImZsZXhpYmxlQ2hlY2tzdW1zUmVzcG9uc2VNaWRkbGV3YXJlIiwgInJlc3VsdCIsICJjbGllbnROYW1lIiwgImNvbW1hbmROYW1lIiwgImdldEZsZXhpYmxlQ2hlY2tzdW1zUGx1Z2luIiwgImNsaWVudFN0YWNrIiwgInJlc29sdmVGbGV4aWJsZUNoZWNrc3Vtc0NvbmZpZyIsICJyZXF1ZXN0U3RyZWFtQnVmZmVyU2l6ZSIsICJyZXF1aXJlX2Rpc3RfY2pzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiX19kZWZQcm9wIiwgIl9fZ2V0T3duUHJvcERlc2MiLCAiX19nZXRPd25Qcm9wTmFtZXMiLCAiX19oYXNPd25Qcm9wIiwgIl9fbmFtZSIsICJ0YXJnZXQiLCAidmFsdWUiLCAiX19leHBvcnQiLCAiYWxsIiwgIm5hbWUiLCAiX19jb3B5UHJvcHMiLCAidG8iLCAiZnJvbSIsICJleGNlcHQiLCAiZGVzYyIsICJrZXkiLCAiX190b0NvbW1vbkpTIiwgIm1vZCIsICJpbmRleF9leHBvcnRzIiwgImJ1aWxkIiwgInBhcnNlIiwgInZhbGlkYXRlIiwgInN0ciIsICJhcm4iLCAic2VnbWVudHMiLCAicGFydGl0aW9uIiwgInNlcnZpY2UiLCAicmVnaW9uIiwgImFjY291bnRJZCIsICJyZXNvdXJjZSIsICJhcm5PYmplY3QiLCAic2VnbWVudCIsICJyZXF1aXJlX2Rpc3RfY2pzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJwcm90b2NvbEh0dHAiLCAic21pdGh5Q2xpZW50IiwgInNpZ25hdHVyZVY0IiwgInV0aWxDb25maWdQcm92aWRlciIsICJjb3JlIiwgImNvcmUkMSIsICJ1dGlsTWlkZGxld2FyZSIsICJ1dGlsU3RyZWFtIiwgInV0aWxBcm5QYXJzZXIiLCAiQ09OVEVOVF9MRU5HVEhfSEVBREVSIiwgIkRFQ09ERURfQ09OVEVOVF9MRU5HVEhfSEVBREVSIiwgImNoZWNrQ29udGVudExlbmd0aEhlYWRlciIsICJuZXh0IiwgImNvbnRleHQiLCAiYXJncyIsICJyZXF1ZXN0IiwgIm1lc3NhZ2UiLCAiY2hlY2tDb250ZW50TGVuZ3RoSGVhZGVyTWlkZGxld2FyZU9wdGlvbnMiLCAiZ2V0Q2hlY2tDb250ZW50TGVuZ3RoSGVhZGVyUGx1Z2luIiwgInVudXNlZCIsICJjbGllbnRTdGFjayIsICJyZWdpb25SZWRpcmVjdEVuZHBvaW50TWlkZGxld2FyZSIsICJjb25maWciLCAib3JpZ2luYWxSZWdpb24iLCAicmVnaW9uUHJvdmlkZXJSZWYiLCAidW5sb2NrIiwgInJlc3VsdCIsICJyZWdpb24iLCAiZSIsICJyZWdpb25SZWRpcmVjdEVuZHBvaW50TWlkZGxld2FyZU9wdGlvbnMiLCAicmVnaW9uUmVkaXJlY3RNaWRkbGV3YXJlIiwgImNsaWVudENvbmZpZyIsICJlcnIiLCAic3RhdHVzQ29kZSIsICJpc0hlYWRCdWNrZXQiLCAiYnVja2V0UmVnaW9uSGVhZGVyIiwgImFjdHVhbFJlZ2lvbiIsICJyZWdpb25SZWRpcmVjdE1pZGRsZXdhcmVPcHRpb25zIiwgImdldFJlZ2lvblJlZGlyZWN0TWlkZGxld2FyZVBsdWdpbiIsICJzM0V4cGlyZXNNaWRkbGV3YXJlIiwgInJlc3BvbnNlIiwgInMzRXhwaXJlc01pZGRsZXdhcmVPcHRpb25zIiwgImdldFMzRXhwaXJlc01pZGRsZXdhcmVQbHVnaW4iLCAiUzNFeHByZXNzSWRlbnRpdHlDYWNoZSIsICJfUzNFeHByZXNzSWRlbnRpdHlDYWNoZSIsICJkYXRhIiwgImtleSIsICJlbnRyeSIsICJub3ciLCAiY3JlZGVudGlhbCIsICJTM0V4cHJlc3NJZGVudGl0eUNhY2hlRW50cnkiLCAiX2lkZW50aXR5IiwgImlzUmVmcmVzaGluZyIsICJhY2Nlc3NlZCIsICJTM0V4cHJlc3NJZGVudGl0eVByb3ZpZGVySW1wbCIsICJfUzNFeHByZXNzSWRlbnRpdHlQcm92aWRlckltcGwiLCAiY3JlYXRlU2Vzc2lvbkZuIiwgImNhY2hlIiwgImF3c0lkZW50aXR5IiwgImlkZW50aXR5UHJvcGVydGllcyIsICJpZGVudGl0eSIsICJpZCIsICJlcnJvciIsICJzZXNzaW9uIiwgIlMzX0VYUFJFU1NfQlVDS0VUX1RZUEUiLCAiUzNfRVhQUkVTU19CQUNLRU5EIiwgIlMzX0VYUFJFU1NfQVVUSF9TQ0hFTUUiLCAiU0VTU0lPTl9UT0tFTl9RVUVSWV9QQVJBTSIsICJTRVNTSU9OX1RPS0VOX0hFQURFUiIsICJOT0RFX0RJU0FCTEVfUzNfRVhQUkVTU19TRVNTSU9OX0FVVEhfRU5WX05BTUUiLCAiTk9ERV9ESVNBQkxFX1MzX0VYUFJFU1NfU0VTU0lPTl9BVVRIX0lOSV9OQU1FIiwgIk5PREVfRElTQUJMRV9TM19FWFBSRVNTX1NFU1NJT05fQVVUSF9PUFRJT05TIiwgImVudiIsICJwcm9maWxlIiwgIlNpZ25hdHVyZVY0UzNFeHByZXNzIiwgInJlcXVlc3RUb1NpZ24iLCAiY3JlZGVudGlhbHMiLCAib3B0aW9ucyIsICJjcmVkZW50aWFsc1dpdGhvdXRTZXNzaW9uVG9rZW4iLCAiZ2V0Q3JlZGVudGlhbHNXaXRob3V0U2Vzc2lvblRva2VuIiwgInByaXZhdGVBY2Nlc3MiLCAic2V0U2luZ2xlT3ZlcnJpZGUiLCAiY3VycmVudENyZWRlbnRpYWxQcm92aWRlciIsICJvdmVycmlkZUNyZWRlbnRpYWxzUHJvdmlkZXJPbmNlIiwgInMzRXhwcmVzc01pZGRsZXdhcmUiLCAiZW5kcG9pbnQiLCAiaXNTM0V4cHJlc3NBdXRoIiwgInJlcXVlc3RCdWNrZXQiLCAiczNFeHByZXNzSWRlbnRpdHkiLCAiczNFeHByZXNzTWlkZGxld2FyZU9wdGlvbnMiLCAiZ2V0UzNFeHByZXNzUGx1Z2luIiwgInNpZ25TM0V4cHJlc3MiLCAic2lnbmluZ09wdGlvbnMiLCAic2lnVjRNdWx0aVJlZ2lvblNpZ25lciIsICJzaWduZWRSZXF1ZXN0IiwgImRlZmF1bHRFcnJvckhhbmRsZXIiLCAic2lnbmluZ1Byb3BlcnRpZXMiLCAiZGVmYXVsdFN1Y2Nlc3NIYW5kbGVyIiwgImh0dHBSZXNwb25zZSIsICJzM0V4cHJlc3NIdHRwU2lnbmluZ01pZGRsZXdhcmVPcHRpb25zIiwgInMzRXhwcmVzc0h0dHBTaWduaW5nTWlkZGxld2FyZSIsICJzY2hlbWUiLCAic2lnbmVyIiwgIm91dHB1dCIsICJnZXRTM0V4cHJlc3NIdHRwU2lnbmluZ1BsdWdpbiIsICJyZXNvbHZlUzNDb25maWciLCAiaW5wdXQiLCAiczNDbGllbnRQcm92aWRlciIsICJDcmVhdGVTZXNzaW9uQ29tbWFuZEN0b3IiLCAiZm9yY2VQYXRoU3R5bGUiLCAidXNlQWNjZWxlcmF0ZUVuZHBvaW50IiwgImRpc2FibGVNdWx0aXJlZ2lvbkFjY2Vzc1BvaW50cyIsICJmb2xsb3dSZWdpb25SZWRpcmVjdHMiLCAiczNFeHByZXNzSWRlbnRpdHlQcm92aWRlciIsICJidWNrZXRFbmRwb2ludCIsICJleHBlY3RDb250aW51ZUhlYWRlciIsICJUSFJPV19JRl9FTVBUWV9CT0RZIiwgIk1BWF9CWVRFU19UT19JTlNQRUNUIiwgInRocm93MjAwRXhjZXB0aW9uc01pZGRsZXdhcmUiLCAic291cmNlQm9keSIsICJib2R5Q29weSIsICJib2R5IiwgImJvZHlCeXRlcyIsICJjb2xsZWN0Qm9keSIsICJzdHJlYW0iLCAiYm9keVN0cmluZ1RhaWwiLCAic3RyZWFtQm9keSIsICJ0aHJvdzIwMEV4Y2VwdGlvbnNNaWRkbGV3YXJlT3B0aW9ucyIsICJnZXRUaHJvdzIwMEV4Y2VwdGlvbnNQbHVnaW4iLCAiYnVja2V0RW5kcG9pbnRNaWRkbGV3YXJlIiwgImJ1Y2tldCIsICJidWNrZXRFbmRwb2ludFVybCIsICJ3YXJuaW5nIiwgImJ1Y2tldEVuZHBvaW50TWlkZGxld2FyZU9wdGlvbnMiLCAidmFsaWRhdGVCdWNrZXROYW1lTWlkZGxld2FyZSIsICJCdWNrZXQiLCAidmFsaWRhdGVCdWNrZXROYW1lTWlkZGxld2FyZU9wdGlvbnMiLCAiZ2V0VmFsaWRhdGVCdWNrZXROYW1lUGx1Z2luIiwgInJlcXVpcmVfZGlzdF9janMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgIm1pZGRsZXdhcmVTZGtTMyIsICJzaWduYXR1cmVWNCIsICJzaWduYXR1cmVWNENydENvbnRhaW5lciIsICJTaWduYXR1cmVWNE11bHRpUmVnaW9uIiwgIm9wdGlvbnMiLCAicmVxdWVzdFRvU2lnbiIsICJjcmVkZW50aWFscyIsICJzaWduZXIiLCAiQ3J0U2lnbmVyVjQiLCAib3JpZ2luYWxSZXF1ZXN0IiwgIkpzU2lnVjRhU2lnbmVyIiwgInJlcXVpcmVfcnVsZXNldCIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAiY3MiLCAiY3QiLCAiY3UiLCAiY3YiLCAiY3ciLCAiY3giLCAiY3kiLCAiY3oiLCAiY0EiLCAiY0IiLCAiY0MiLCAiY0QiLCAiY0UiLCAiY0YiLCAiY0ciLCAiY0giLCAiY0kiLCAiYSIsICJiIiwgImMiLCAiZCIsICJlIiwgImYiLCAiZyIsICJoIiwgImkiLCAiaiIsICJrIiwgImwiLCAibSIsICJuIiwgIm8iLCAicCIsICJxIiwgInIiLCAicyIsICJ0IiwgInUiLCAidiIsICJ3IiwgIngiLCAieSIsICJ6IiwgIkEiLCAiQiIsICJDIiwgIkQiLCAiRSIsICJGIiwgIkciLCAiSCIsICJJIiwgIkoiLCAiSyIsICJMIiwgIk0iLCAiTiIsICJPIiwgIlAiLCAiUSIsICJSIiwgIlMiLCAiVCIsICJVIiwgIlYiLCAiVyIsICJYIiwgIlkiLCAiWiIsICJhYSIsICJhYiIsICJhYyIsICJhZCIsICJhZSIsICJhZiIsICJhZyIsICJhaCIsICJhaSIsICJhaiIsICJhayIsICJhbCIsICJhbSIsICJhbiIsICJhbyIsICJhcCIsICJhcSIsICJhciIsICJhcyIsICJhdCIsICJhdSIsICJhdiIsICJhdyIsICJheCIsICJheSIsICJheiIsICJhQSIsICJhQiIsICJhQyIsICJhRCIsICJhRSIsICJhRiIsICJhRyIsICJhSCIsICJhSSIsICJhSiIsICJhSyIsICJhTCIsICJhTSIsICJhTiIsICJhTyIsICJhUCIsICJhUSIsICJhUiIsICJhUyIsICJhVCIsICJhVSIsICJhViIsICJhVyIsICJhWCIsICJhWSIsICJhWiIsICJiYSIsICJiYiIsICJiYyIsICJiZCIsICJiZSIsICJiZiIsICJiZyIsICJiaCIsICJiaSIsICJiaiIsICJiayIsICJibCIsICJibSIsICJibiIsICJibyIsICJicCIsICJicSIsICJiciIsICJicyIsICJidCIsICJidSIsICJidiIsICJidyIsICJieCIsICJieSIsICJieiIsICJiQSIsICJiQiIsICJiQyIsICJiRCIsICJiRSIsICJiRiIsICJiRyIsICJiSCIsICJiSSIsICJiSiIsICJiSyIsICJiTCIsICJiTSIsICJiTiIsICJiTyIsICJiUCIsICJiUSIsICJiUiIsICJiUyIsICJiVCIsICJiVSIsICJiViIsICJiVyIsICJiWCIsICJiWSIsICJiWiIsICJjYSIsICJjYiIsICJjYyIsICJjZCIsICJjZSIsICJjZiIsICJjZyIsICJjaCIsICJjaSIsICJjaiIsICJjayIsICJjbCIsICJjbSIsICJjbiIsICJjbyIsICJjcCIsICJjcSIsICJjciIsICJfZGF0YSIsICJyZXF1aXJlX2VuZHBvaW50UmVzb2x2ZXIiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgInV0aWxfZW5kcG9pbnRzXzEiLCAidXRpbF9lbmRwb2ludHNfMiIsICJydWxlc2V0XzEiLCAiY2FjaGUiLCAiZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIiLCAiZW5kcG9pbnRQYXJhbXMiLCAiY29udGV4dCIsICJyZXF1aXJlX2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgImNvcmVfMSIsICJzaWduYXR1cmVfdjRfbXVsdGlfcmVnaW9uXzEiLCAibWlkZGxld2FyZV9lbmRwb2ludF8xIiwgInV0aWxfbWlkZGxld2FyZV8xIiwgImVuZHBvaW50UmVzb2x2ZXJfMSIsICJjcmVhdGVFbmRwb2ludFJ1bGVTZXRIdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlciIsICJkZWZhdWx0SHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIiLCAiY29uZmlnIiwgImNvbnRleHQiLCAiaW5wdXQiLCAiZGVmYXVsdFBhcmFtZXRlcnMiLCAiaW5zdHJ1Y3Rpb25zRm4iLCAiZW5kcG9pbnRQYXJhbWV0ZXJzIiwgIl9kZWZhdWx0UzNIdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlciIsICJjcmVhdGVBd3NBdXRoU2lndjRIdHRwQXV0aE9wdGlvbiIsICJhdXRoUGFyYW1ldGVycyIsICJjcmVhdGVBd3NBdXRoU2lndjRhSHR0cEF1dGhPcHRpb24iLCAiY3JlYXRlRW5kcG9pbnRSdWxlU2V0SHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJkZWZhdWx0RW5kcG9pbnRSZXNvbHZlciIsICJkZWZhdWx0SHR0cEF1dGhTY2hlbWVSZXNvbHZlciIsICJjcmVhdGVIdHRwQXV0aE9wdGlvbkZ1bmN0aW9ucyIsICJhdXRoU2NoZW1lcyIsICJvcHRpb25zIiwgInNjaGVtZSIsICJyZXNvbHZlZE5hbWUiLCAicHJvcGVydGllcyIsICJyZXN0IiwgIm5hbWUiLCAic2NoZW1lSWQiLCAic2lndjRQcmVzZW50IiwgInMiLCAiY3JlYXRlT3B0aW9uIiwgIm9wdGlvbiIsICJfZGVmYXVsdFMzSHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJyZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWciLCAiY29uZmlnXzAiLCAiY29uZmlnXzEiLCAicmVxdWlyZV9wYWNrYWdlIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAicmVxdWlyZV9kaXN0X2NqcyIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAidXRpbENvbmZpZ1Byb3ZpZGVyIiwgInV0aWxBcm5QYXJzZXIiLCAicHJvdG9jb2xIdHRwIiwgIk5PREVfRElTQUJMRV9NVUxUSVJFR0lPTl9BQ0NFU1NfUE9JTlRfRU5WX05BTUUiLCAiTk9ERV9ESVNBQkxFX01VTFRJUkVHSU9OX0FDQ0VTU19QT0lOVF9JTklfTkFNRSIsICJOT0RFX0RJU0FCTEVfTVVMVElSRUdJT05fQUNDRVNTX1BPSU5UX0NPTkZJR19PUFRJT05TIiwgImVudiIsICJwcm9maWxlIiwgIk5PREVfVVNFX0FSTl9SRUdJT05fRU5WX05BTUUiLCAiTk9ERV9VU0VfQVJOX1JFR0lPTl9JTklfTkFNRSIsICJOT0RFX1VTRV9BUk5fUkVHSU9OX0NPTkZJR19PUFRJT05TIiwgIkRPTUFJTl9QQVRURVJOIiwgIklQX0FERFJFU1NfUEFUVEVSTiIsICJET1RTX1BBVFRFUk4iLCAiRE9UX1BBVFRFUk4iLCAiUzNfSE9TVE5BTUVfUEFUVEVSTiIsICJTM19VU19FQVNUXzFfQUxUTkFNRV9QQVRURVJOIiwgIkFXU19QQVJUSVRJT05fU1VGRklYIiwgImlzQnVja2V0TmFtZU9wdGlvbnMiLCAib3B0aW9ucyIsICJpc0Ruc0NvbXBhdGlibGVCdWNrZXROYW1lIiwgImJ1Y2tldE5hbWUiLCAiZ2V0UmVnaW9uYWxTdWZmaXgiLCAiaG9zdG5hbWUiLCAicGFydHMiLCAiZ2V0U3VmZml4IiwgImdldFN1ZmZpeEZvckFybkVuZHBvaW50IiwgInZhbGlkYXRlQXJuRW5kcG9pbnRPcHRpb25zIiwgInZhbGlkYXRlU2VydmljZSIsICJzZXJ2aWNlIiwgInZhbGlkYXRlUzNTZXJ2aWNlIiwgInZhbGlkYXRlT3V0cG9zdFNlcnZpY2UiLCAidmFsaWRhdGVQYXJ0aXRpb24iLCAicGFydGl0aW9uIiwgInZhbGlkYXRlUmVnaW9uIiwgInJlZ2lvbiIsICJ2YWxpZGF0ZVJlZ2lvbmFsQ2xpZW50IiwgInZhbGlkYXRlQWNjb3VudElkIiwgImFjY291bnRJZCIsICJ2YWxpZGF0ZUROU0hvc3RMYWJlbCIsICJsYWJlbCIsICJ2YWxpZGF0ZUN1c3RvbUVuZHBvaW50IiwgImdldEFyblJlc291cmNlcyIsICJyZXNvdXJjZSIsICJkZWxpbWl0ZXIiLCAicmVzb3VyY2VUeXBlIiwgInJlc3QiLCAib3V0cG9zdElkIiwgIl8iLCAiYWNjZXNzcG9pbnROYW1lIiwgInZhbGlkYXRlTm9EdWFsc3RhY2siLCAiZHVhbHN0YWNrRW5kcG9pbnQiLCAidmFsaWRhdGVOb0ZJUFMiLCAidXNlRmlwc0VuZHBvaW50IiwgInZhbGlkYXRlTXJhcEFsaWFzIiwgIm5hbWUiLCAiYnVja2V0SG9zdG5hbWUiLCAiZ2V0RW5kcG9pbnRGcm9tQnVja2V0TmFtZSIsICJnZXRFbmRwb2ludEZyb21Bcm4iLCAiYWNjZWxlcmF0ZUVuZHBvaW50IiwgImJhc2VIb3N0bmFtZSIsICJmaXBzRW5kcG9pbnQiLCAicGF0aFN0eWxlRW5kcG9pbnQiLCAidGxzQ29tcGF0aWJsZSIsICJpc0N1c3RvbUVuZHBvaW50IiwgImNsaWVudFJlZ2lvbiIsICJob3N0bmFtZVN1ZmZpeCIsICJjbGllbnRQYXJ0aXRpb24iLCAiZ2V0RW5kcG9pbnRGcm9tT2JqZWN0TGFtYmRhQXJuIiwgImdldEVuZHBvaW50RnJvbU1SQVBBcm4iLCAiZ2V0RW5kcG9pbnRGcm9tT3V0cG9zdEFybiIsICJnZXRFbmRwb2ludEZyb21BY2Nlc3NQb2ludEFybiIsICJ1c2VBcm5SZWdpb24iLCAiY2xpZW50U2lnbmluZ1JlZ2lvbiIsICJETlNIb3N0TGFiZWwiLCAiZW5kcG9pbnRSZWdpb24iLCAic2lnbmluZ1JlZ2lvbiIsICJkaXNhYmxlTXVsdGlyZWdpb25BY2Nlc3NQb2ludHMiLCAibXJhcEFsaWFzIiwgImhvc3RuYW1lUHJlZml4IiwgImJ1Y2tldEVuZHBvaW50TWlkZGxld2FyZSIsICJuZXh0IiwgImNvbnRleHQiLCAiYXJncyIsICJyZXBsYWNlQnVja2V0SW5QYXRoIiwgInJlcXVlc3QiLCAiYnVja2V0QXJuIiwgInVzZUR1YWxzdGFja0VuZHBvaW50IiwgImJ1Y2tldEVuZHBvaW50IiwgIm1vZGlmaWVkU2lnbmluZ1JlZ2lvbiIsICJzaWduaW5nU2VydmljZSIsICJidWNrZXRFbmRwb2ludE1pZGRsZXdhcmVPcHRpb25zIiwgImdldEJ1Y2tldEVuZHBvaW50UGx1Z2luIiwgImNsaWVudFN0YWNrIiwgInJlc29sdmVCdWNrZXRFbmRwb2ludENvbmZpZyIsICJpbnB1dCIsICJmb3JjZVBhdGhTdHlsZSIsICJ1c2VBY2NlbGVyYXRlRW5kcG9pbnQiLCAicmVxdWlyZV9ydW50aW1lQ29uZmlnX3NoYXJlZCIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAiY29yZV8xIiwgInByb3RvY29sc18xIiwgInNpZ25hdHVyZV92NF9tdWx0aV9yZWdpb25fMSIsICJzbWl0aHlfY2xpZW50XzEiLCAidXJsX3BhcnNlcl8xIiwgInV0aWxfYmFzZTY0XzEiLCAidXRpbF9zdHJlYW1fMSIsICJ1dGlsX3V0ZjhfMSIsICJodHRwQXV0aFNjaGVtZVByb3ZpZGVyXzEiLCAiZW5kcG9pbnRSZXNvbHZlcl8xIiwgImdldFJ1bnRpbWVDb25maWciLCAiY29uZmlnIiwgImlwYyIsICJyZXF1aXJlX3J1bnRpbWVDb25maWciLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgInRzbGliXzEiLCAicGFja2FnZV9qc29uXzEiLCAiY29yZV8xIiwgImNyZWRlbnRpYWxfcHJvdmlkZXJfbm9kZV8xIiwgIm1pZGRsZXdhcmVfYnVja2V0X2VuZHBvaW50XzEiLCAibWlkZGxld2FyZV9mbGV4aWJsZV9jaGVja3N1bXNfMSIsICJtaWRkbGV3YXJlX3Nka19zM18xIiwgInV0aWxfdXNlcl9hZ2VudF9ub2RlXzEiLCAiY29uZmlnX3Jlc29sdmVyXzEiLCAiZXZlbnRzdHJlYW1fc2VyZGVfbm9kZV8xIiwgImhhc2hfbm9kZV8xIiwgImhhc2hfc3RyZWFtX25vZGVfMSIsICJtaWRkbGV3YXJlX3JldHJ5XzEiLCAibm9kZV9jb25maWdfcHJvdmlkZXJfMSIsICJub2RlX2h0dHBfaGFuZGxlcl8xIiwgInNtaXRoeV9jbGllbnRfMSIsICJ1dGlsX2JvZHlfbGVuZ3RoX25vZGVfMSIsICJ1dGlsX2RlZmF1bHRzX21vZGVfbm9kZV8xIiwgInV0aWxfcmV0cnlfMSIsICJydW50aW1lQ29uZmlnX3NoYXJlZF8xIiwgImdldFJ1bnRpbWVDb25maWciLCAiY29uZmlnIiwgImRlZmF1bHRzTW9kZSIsICJkZWZhdWx0Q29uZmlnUHJvdmlkZXIiLCAiY2xpZW50U2hhcmVkVmFsdWVzIiwgImxvYWRlckNvbmZpZyIsICJyZXF1aXJlX2Rpc3RfY2pzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJzc2VjTWlkZGxld2FyZSIsICJvcHRpb25zIiwgIm5leHQiLCAiYXJncyIsICJpbnB1dCIsICJwcm9wZXJ0aWVzIiwgInByb3AiLCAidmFsdWUiLCAidmFsdWVGb3JIYXNoIiwgImlzVmFsaWRCYXNlNjRFbmNvZGVkU1NFQ3VzdG9tZXJLZXkiLCAiaGFzaCIsICJzc2VjTWlkZGxld2FyZU9wdGlvbnMiLCAiZ2V0U3NlY1BsdWdpbiIsICJjb25maWciLCAiY2xpZW50U3RhY2siLCAic3RyIiwgInJlcXVpcmVfZGlzdF9janMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgImxvY2F0aW9uQ29uc3RyYWludE1pZGRsZXdhcmUiLCAib3B0aW9ucyIsICJuZXh0IiwgImFyZ3MiLCAiQ3JlYXRlQnVja2V0Q29uZmlndXJhdGlvbiIsICJyZWdpb24iLCAibG9jYXRpb25Db25zdHJhaW50TWlkZGxld2FyZU9wdGlvbnMiLCAiZ2V0TG9jYXRpb25Db25zdHJhaW50UGx1Z2luIiwgImNvbmZpZyIsICJjbGllbnRTdGFjayIsICJyZXF1aXJlX2Rpc3RfY2pzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJtaWRkbGV3YXJlRXhwZWN0Q29udGludWUiLCAibWlkZGxld2FyZUZsZXhpYmxlQ2hlY2tzdW1zIiwgIm1pZGRsZXdhcmVIb3N0SGVhZGVyIiwgIm1pZGRsZXdhcmVMb2dnZXIiLCAibWlkZGxld2FyZVJlY3Vyc2lvbkRldGVjdGlvbiIsICJtaWRkbGV3YXJlU2RrUzMiLCAibWlkZGxld2FyZVVzZXJBZ2VudCIsICJjb25maWdSZXNvbHZlciIsICJjb3JlIiwgInNjaGVtYSIsICJldmVudHN0cmVhbVNlcmRlQ29uZmlnUmVzb2x2ZXIiLCAibWlkZGxld2FyZUNvbnRlbnRMZW5ndGgiLCAibWlkZGxld2FyZUVuZHBvaW50IiwgIm1pZGRsZXdhcmVSZXRyeSIsICJzbWl0aHlDbGllbnQiLCAiaHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJydW50aW1lQ29uZmlnIiwgInJlZ2lvbkNvbmZpZ1Jlc29sdmVyIiwgInByb3RvY29sSHR0cCIsICJtaWRkbGV3YXJlU3NlYyIsICJtaWRkbGV3YXJlTG9jYXRpb25Db25zdHJhaW50IiwgInV0aWxXYWl0ZXIiLCAicmVzb2x2ZUNsaWVudEVuZHBvaW50UGFyYW1ldGVycyIsICJvcHRpb25zIiwgImNvbW1vblBhcmFtcyIsICJTM1NlcnZpY2VFeGNlcHRpb24kMSIsICJTM1NlcnZpY2VFeGNlcHRpb24iLCAiTm9TdWNoVXBsb2FkJDEiLCAiTm9TdWNoVXBsb2FkIiwgIm9wdHMiLCAiT2JqZWN0Tm90SW5BY3RpdmVUaWVyRXJyb3IkMSIsICJPYmplY3ROb3RJbkFjdGl2ZVRpZXJFcnJvciIsICJCdWNrZXRBbHJlYWR5RXhpc3RzJDEiLCAiQnVja2V0QWxyZWFkeUV4aXN0cyIsICJCdWNrZXRBbHJlYWR5T3duZWRCeVlvdSQxIiwgIkJ1Y2tldEFscmVhZHlPd25lZEJ5WW91IiwgIk5vU3VjaEJ1Y2tldCQxIiwgIk5vU3VjaEJ1Y2tldCIsICJJbnZhbGlkT2JqZWN0U3RhdGUkMSIsICJJbnZhbGlkT2JqZWN0U3RhdGUiLCAiTm9TdWNoS2V5JDEiLCAiTm9TdWNoS2V5IiwgIk5vdEZvdW5kJDEiLCAiTm90Rm91bmQiLCAiRW5jcnlwdGlvblR5cGVNaXNtYXRjaCQxIiwgIkVuY3J5cHRpb25UeXBlTWlzbWF0Y2giLCAiSW52YWxpZFJlcXVlc3QkMSIsICJJbnZhbGlkUmVxdWVzdCIsICJJbnZhbGlkV3JpdGVPZmZzZXQkMSIsICJJbnZhbGlkV3JpdGVPZmZzZXQiLCAiVG9vTWFueVBhcnRzJDEiLCAiVG9vTWFueVBhcnRzIiwgIklkZW1wb3RlbmN5UGFyYW1ldGVyTWlzbWF0Y2gkMSIsICJJZGVtcG90ZW5jeVBhcmFtZXRlck1pc21hdGNoIiwgIk9iamVjdEFscmVhZHlJbkFjdGl2ZVRpZXJFcnJvciQxIiwgIk9iamVjdEFscmVhZHlJbkFjdGl2ZVRpZXJFcnJvciIsICJfQSIsICJfQUFPIiwgIl9BQyIsICJfQUNMIiwgIl9BQ0xfIiwgIl9BQ0xuIiwgIl9BQ1AiLCAiX0FDVCIsICJfQUNuIiwgIl9BRCIsICJfQUVEIiwgIl9BRiIsICJfQUgiLCAiX0FIbCIsICJfQUkiLCAiX0FJTVUiLCAiX0FLSSIsICJfQU0iLCAiX0FNVSIsICJfQU1VTyIsICJfQU1VUiIsICJfQU1sIiwgIl9BTyIsICJfQU9sIiwgIl9BUEEiLCAiX0FQQWMiLCAiX0FRUkQiLCAiX0FSIiwgIl9BUkkiLCAiX0FTIiwgIl9BU0JEIiwgIl9BU1NFQkQiLCAiX0FTciIsICJfQVQiLCAiX0FuIiwgIl9CIiwgIl9CQSIsICJfQkFFIiwgIl9CQUkiLCAiX0JBT0JZIiwgIl9CRVQiLCAiX0JHUiIsICJfQkkiLCAiX0JLRSIsICJfQkxDIiwgIl9CTE4iLCAiX0JMUyIsICJfQkxUIiwgIl9CTiIsICJfQlAiLCAiX0JQQSIsICJfQlBQIiwgIl9CUiIsICJfQlJ5IiwgIl9CUyIsICJfQm8iLCAiX0J1IiwgIl9DIiwgIl9DQSIsICJfQ0FDTCIsICJfQ0IiLCAiX0NCQyIsICJfQ0JNQyIsICJfQ0JNQ1IiLCAiX0NCTVRDIiwgIl9DQk1UQ1IiLCAiX0NCTyIsICJfQ0JSIiwgIl9DQyIsICJfQ0NSQyIsICJfQ0NSQ0MiLCAiX0NDUkNOVk1FIiwgIl9DQ18iLCAiX0NEIiwgIl9DRF8iLCAiX0NEbyIsICJfQ0UiLCAiX0NFXyIsICJfQ0VvIiwgIl9DRiIsICJfQ0ZDIiwgIl9DTCIsICJfQ0xfIiwgIl9DTF9fIiwgIl9DTG8iLCAiX0NNIiwgIl9DTUQiLCAiX0NNVSIsICJfQ01VTyIsICJfQ01VT3IiLCAiX0NNVVIiLCAiX0NNVVJvIiwgIl9DTVVSciIsICJfQ01VbyIsICJfQ01VciIsICJfQ01oIiwgIl9DTyIsICJfQ09PIiwgIl9DT1IiLCAiX0NPUlNDIiwgIl9DT1JTUiIsICJfQ09SU1J1IiwgIl9DT1JvIiwgIl9DUCIsICJfQ1BMIiwgIl9DUExvIiwgIl9DUFIiLCAiX0NQbyIsICJfQ1BvbSIsICJfQ1IiLCAiX0NSU0JBIiwgIl9DUl8iLCAiX0NTIiwgIl9DU0hBIiwgIl9DU0hBaCIsICJfQ1NJTSIsICJfQ1NJTVMiLCAiX0NTSU5NIiwgIl9DU0lVUyIsICJfQ1NPIiwgIl9DU1IiLCAiX0NTUm8iLCAiX0NTUnIiLCAiX0NTU1NFQ0EiLCAiX0NTU1NFQ0siLCAiX0NTU1NFQ0tNRCIsICJfQ1NWIiwgIl9DU1ZJIiwgIl9DU1ZJbiIsICJfQ1NWTyIsICJfQ1NvIiwgIl9DU3IiLCAiX0NUIiwgIl9DVF8iLCAiX0NUbCIsICJfQ1RvIiwgIl9DVG9tIiwgIl9DVG9uIiwgIl9DbyIsICJfQ29kIiwgIl9Db20iLCAiX0NvbiIsICJfQ29udCIsICJfQ3IiLCAiX0QiLCAiX0RBSSIsICJfREIiLCAiX0RCQUMiLCAiX0RCQUNSIiwgIl9EQkMiLCAiX0RCQ1IiLCAiX0RCRSIsICJfREJFUiIsICJfREJJQyIsICJfREJJQ1IiLCAiX0RCSVRDIiwgIl9EQklUQ1IiLCAiX0RCTCIsICJfREJMUiIsICJfREJNQyIsICJfREJNQ1IiLCAiX0RCTUNSZSIsICJfREJNQ2UiLCAiX0RCTVRDIiwgIl9EQk1UQ1IiLCAiX0RCT0MiLCAiX0RCT0NSIiwgIl9EQlAiLCAiX0RCUFIiLCAiX0RCUiIsICJfREJSUiIsICJfREJSZSIsICJfREJUIiwgIl9EQlRSIiwgIl9EQlciLCAiX0RCV1IiLCAiX0RFIiwgIl9ESU0iLCAiX0RJTVMiLCAiX0RJTk0iLCAiX0RJVVMiLCAiX0RNIiwgIl9ETUUiLCAiX0RNUiIsICJfRE1WSSIsICJfRE1lIiwgIl9ETiIsICJfRE8iLCAiX0RPTyIsICJfRE9PZSIsICJfRE9SIiwgIl9ET1JlIiwgIl9ET1QiLCAiX0RPVE8iLCAiX0RPVFIiLCAiX0RPZSIsICJfRE9lbCIsICJfRE9lbGUiLCAiX0RQQUIiLCAiX0RQQUJSIiwgIl9EUiIsICJfRFJlIiwgIl9EUmVsIiwgIl9EUmVzIiwgIl9EYSIsICJfRGUiLCAiX0RlbCIsICJfRGVsaSIsICJfRGVzIiwgIl9EZXNjIiwgIl9EZXQiLCAiX0UiLCAiX0VBIiwgIl9FQkMiLCAiX0VCTyIsICJfRUMiLCAiX0VDciIsICJfRUQiLCAiX0VEciIsICJfRUUiLCAiX0VIIiwgIl9FSHgiLCAiX0VNIiwgIl9FT0RNIiwgIl9FT1IiLCAiX0VTIiwgIl9FU0JPIiwgIl9FVCIsICJfRVRMIiwgIl9FVE0iLCAiX0VUYSIsICJfRVRuIiwgIl9FVHYiLCAiX0VUeCIsICJfRW4iLCAiX0VuYSIsICJfRW5kIiwgIl9FciIsICJfRXJyIiwgIl9FdiIsICJfRXZlIiwgIl9FeCIsICJfRXhwIiwgIl9GIiwgIl9GRCIsICJfRkhJIiwgIl9GTyIsICJfRlIiLCAiX0ZSTCIsICJfRlJpIiwgIl9GaSIsICJfRm8iLCAiX0ZyIiwgIl9HIiwgIl9HQkEiLCAiX0dCQUMiLCAiX0dCQUNPIiwgIl9HQkFDT2UiLCAiX0dCQUNSIiwgIl9HQkFDUmUiLCAiX0dCQUNlIiwgIl9HQkFPIiwgIl9HQkFPZSIsICJfR0JBUiIsICJfR0JBUmUiLCAiX0dCQWUiLCAiX0dCQyIsICJfR0JDTyIsICJfR0JDUiIsICJfR0JFIiwgIl9HQkVPIiwgIl9HQkVSIiwgIl9HQklDIiwgIl9HQklDTyIsICJfR0JJQ1IiLCAiX0dCSVRDIiwgIl9HQklUQ08iLCAiX0dCSVRDUiIsICJfR0JMIiwgIl9HQkxDIiwgIl9HQkxDTyIsICJfR0JMQ1IiLCAiX0dCTE8iLCAiX0dCTE9lIiwgIl9HQkxSIiwgIl9HQkxSZSIsICJfR0JMZSIsICJfR0JNQyIsICJfR0JNQ08iLCAiX0dCTUNPZSIsICJfR0JNQ1IiLCAiX0dCTUNSZSIsICJfR0JNQ1JldCIsICJfR0JNQ2UiLCAiX0dCTVRDIiwgIl9HQk1UQ08iLCAiX0dCTVRDUiIsICJfR0JNVENSZSIsICJfR0JOQyIsICJfR0JOQ1IiLCAiX0dCT0MiLCAiX0dCT0NPIiwgIl9HQk9DUiIsICJfR0JQIiwgIl9HQlBPIiwgIl9HQlBSIiwgIl9HQlBTIiwgIl9HQlBTTyIsICJfR0JQU1IiLCAiX0dCUiIsICJfR0JSTyIsICJfR0JSUCIsICJfR0JSUE8iLCAiX0dCUlBSIiwgIl9HQlJSIiwgIl9HQlQiLCAiX0dCVE8iLCAiX0dCVFIiLCAiX0dCViIsICJfR0JWTyIsICJfR0JWUiIsICJfR0JXIiwgIl9HQldPIiwgIl9HQldSIiwgIl9HRkMiLCAiX0dKUCIsICJfR08iLCAiX0dPQSIsICJfR09BTyIsICJfR09BT2UiLCAiX0dPQVAiLCAiX0dPQVIiLCAiX0dPQVJlIiwgIl9HT0FSZXQiLCAiX0dPQWUiLCAiX0dPTEMiLCAiX0dPTENPIiwgIl9HT0xDUiIsICJfR09MSCIsICJfR09MSE8iLCAiX0dPTEhSIiwgIl9HT08iLCAiX0dPUiIsICJfR09STyIsICJfR09SUiIsICJfR09SZSIsICJfR09UIiwgIl9HT1RPIiwgIl9HT1RPZSIsICJfR09UUiIsICJfR09UUmUiLCAiX0dPVGUiLCAiX0dQQUIiLCAiX0dQQUJPIiwgIl9HUEFCUiIsICJfR1IiLCAiX0dSQUNQIiwgIl9HVyIsICJfR1dBQ1AiLCAiX0dyIiwgIl9HcmEiLCAiX0hCIiwgIl9IQk8iLCAiX0hCUiIsICJfSEVDUkUiLCAiX0hOIiwgIl9ITyIsICJfSE9PIiwgIl9IT1IiLCAiX0hSQyIsICJfSSIsICJfSUMiLCAiX0lDTCIsICJfSUQiLCAiX0lEbiIsICJfSURudiIsICJfSUUiLCAiX0lFbiIsICJfSUYiLCAiX0lMIiwgIl9JTSIsICJfSU1JVCIsICJfSU1MTVQiLCAiX0lNUyIsICJfSU1TXyIsICJfSU1TZiIsICJfSU1VUiIsICJfSU1fIiwgIl9JTk0iLCAiX0lOTV8iLCAiX0lPRiIsICJfSU9TIiwgIl9JT1YiLCAiX0lQIiwgIl9JUEEiLCAiX0lQTSIsICJfSVIiLCAiX0lSSVAiLCAiX0lTIiwgIl9JU0JEIiwgIl9JU24iLCAiX0lUIiwgIl9JVEFPIiwgIl9JVEMiLCAiX0lUQ0wiLCAiX0lUQ1IiLCAiX0lUQ1UiLCAiX0lUQ24iLCAiX0lURiIsICJfSVVTIiwgIl9JVVNfIiwgIl9JV08iLCAiX0luIiwgIl9JbmkiLCAiX0pTT04iLCAiX0pTT05JIiwgIl9KU09OTyIsICJfSlRDIiwgIl9KVENSIiwgIl9KVENVIiwgIl9LIiwgIl9LQyIsICJfS0kiLCAiX0tLQSIsICJfS00iLCAiX0tNU0MiLCAiX0tNU0tJIiwgIl9LTVNNS0lEIiwgIl9LUEUiLCAiX0wiLCAiX0xBTUJSIiwgIl9MQU1EQlIiLCAiX0xCIiwgIl9MQkFDIiwgIl9MQkFDTyIsICJfTEJBQ1IiLCAiX0xCQUNSaSIsICJfTEJJQyIsICJfTEJJQ08iLCAiX0xCSUNSIiwgIl9MQklUQyIsICJfTEJJVENPIiwgIl9MQklUQ1IiLCAiX0xCTUMiLCAiX0xCTUNPIiwgIl9MQk1DUiIsICJfTEJPIiwgIl9MQlIiLCAiX0xCUmkiLCAiX0xDIiwgIl9MQ2kiLCAiX0xEQiIsICJfTERCTyIsICJfTERCUiIsICJfTEUiLCAiX0xFaSIsICJfTEZBIiwgIl9MRkMiLCAiX0xGQ0wiLCAiX0xGQ2EiLCAiX0xIIiwgIl9MSSIsICJfTElDUiIsICJfTE0iLCAiX0xNQ1IiLCAiX0xNVCIsICJfTE1VIiwgIl9MTVVPIiwgIl9MTVVSIiwgIl9MTVVSaSIsICJfTE1fIiwgIl9MTyIsICJfTE9PIiwgIl9MT1IiLCAiX0xPViIsICJfTE9WTyIsICJfTE9WT2kiLCAiX0xPVlIiLCAiX0xPVlJpIiwgIl9MT1ZpIiwgIl9MUCIsICJfTFBPIiwgIl9MUFIiLCAiX0xQUmkiLCAiX0xSIiwgIl9MUkFPIiwgIl9MUkYiLCAiX0xSaSIsICJfTFZSIiwgIl9NIiwgIl9NQU8iLCAiX01BUyIsICJfTUIiLCAiX01DIiwgIl9NQ0wiLCAiX01DUiIsICJfTUNlIiwgIl9NRCIsICJfTURCIiwgIl9NRGYiLCAiX01FIiwgIl9NRiIsICJfTUZBIiwgIl9NRkFEIiwgIl9NSyIsICJfTU0iLCAiX01PUyIsICJfTVAiLCAiX01UQyIsICJfTVRDUiIsICJfTVRFQyIsICJfTVUiLCAiX01VTCIsICJfTVVhIiwgIl9NYSIsICJfTWUiLCAiX01lcyIsICJfTWkiLCAiX01vIiwgIl9OIiwgIl9OQyIsICJfTkNGIiwgIl9OQ1QiLCAiX05EIiwgIl9ORiIsICJfTktNIiwgIl9OTSIsICJfTk5WIiwgIl9OUE5NIiwgIl9OU0IiLCAiX05TSyIsICJfTlNVIiwgIl9OVUlNIiwgIl9OVkUiLCAiX05WSU0iLCAiX05WVCIsICJfTlZUTCIsICJfTlZUbyIsICJfTyIsICJfT0EiLCAiX09BSUFURSIsICJfT0MiLCAiX09DUiIsICJfT0NSdyIsICJfT0YiLCAiX09JIiwgIl9PSUwiLCAiX09MIiwgIl9PTEMiLCAiX09MRSIsICJfT0xFRkIiLCAiX09MTEgiLCAiX09MTEhTIiwgIl9PTE0iLCAiX09MUiIsICJfT0xSVUQiLCAiX09MUmIiLCAiX09MYiIsICJfT05JQVRFIiwgIl9PTyIsICJfT09BIiwgIl9PUCIsICJfT1BiIiwgIl9PUyIsICJfT1NHVCIsICJfT1NMVCIsICJfT1NWIiwgIl9PU3UiLCAiX09WIiwgIl9PVkwiLCAiX09iIiwgIl9PYmoiLCAiX1AiLCAiX1BBQkMiLCAiX1BCQSIsICJfUEJBQyIsICJfUEJBQ1IiLCAiX1BCQUNSdSIsICJfUEJBQ3UiLCAiX1BCQVIiLCAiX1BCQVJ1IiwgIl9QQkF1IiwgIl9QQkMiLCAiX1BCQ1IiLCAiX1BCRSIsICJfUEJFUiIsICJfUEJJQyIsICJfUEJJQ1IiLCAiX1BCSVRDIiwgIl9QQklUQ1IiLCAiX1BCTCIsICJfUEJMQyIsICJfUEJMQ08iLCAiX1BCTENSIiwgIl9QQkxSIiwgIl9QQk1DIiwgIl9QQk1DUiIsICJfUEJOQyIsICJfUEJOQ1IiLCAiX1BCT0MiLCAiX1BCT0NSIiwgIl9QQlAiLCAiX1BCUFIiLCAiX1BCUiIsICJfUEJSUCIsICJfUEJSUFIiLCAiX1BCUlIiLCAiX1BCVCIsICJfUEJUUiIsICJfUEJWIiwgIl9QQlZSIiwgIl9QQlciLCAiX1BCV1IiLCAiX1BDIiwgIl9QRFMiLCAiX1BFIiwgIl9QSSIsICJfUEwiLCAiX1BOIiwgIl9QTk0iLCAiX1BPIiwgIl9QT0EiLCAiX1BPQU8iLCAiX1BPQVIiLCAiX1BPTEMiLCAiX1BPTENPIiwgIl9QT0xDUiIsICJfUE9MSCIsICJfUE9MSE8iLCAiX1BPTEhSIiwgIl9QT08iLCAiX1BPUiIsICJfUE9STyIsICJfUE9SUiIsICJfUE9SdSIsICJfUE9UIiwgIl9QT1RPIiwgIl9QT1RSIiwgIl9QUCIsICJfUFBBQiIsICJfUFBBQlIiLCAiX1BTIiwgIl9QYSIsICJfUGFyIiwgIl9QYXJxIiwgIl9QYXkiLCAiX1BheWwiLCAiX1BlIiwgIl9QbyIsICJfUHIiLCAiX1ByaSIsICJfUHJvIiwgIl9RIiwgIl9RQSIsICJfUUMiLCAiX1FDTCIsICJfUUN1IiwgIl9RQ3VlIiwgIl9RRUMiLCAiX1FGIiwgIl9RdSIsICJfUiIsICJfUkFSVCIsICJfUkMiLCAiX1JDQyIsICJfUkNEIiwgIl9SQ0UiLCAiX1JDTCIsICJfUkNUIiwgIl9SQ2UiLCAiX1JEIiwgIl9SRSIsICJfUkVEIiwgIl9SRWUiLCAiX1JFZWMiLCAiX1JLS0lEIiwgIl9SS1BXIiwgIl9SS1ciLCAiX1JNIiwgIl9STyIsICJfUk9PIiwgIl9ST09lIiwgIl9ST1AiLCAiX1JPUiIsICJfUk9SZSIsICJfUk9lIiwgIl9SUCIsICJfUlBCIiwgIl9SUEMiLCAiX1JQZSIsICJfUlIiLCAiX1JSQU8iLCAiX1JSRiIsICJfUlJlIiwgIl9SUmVwIiwgIl9SUmVxIiwgIl9SUmVzIiwgIl9SUm8iLCAiX1JTIiwgIl9SU2UiLCAiX1JTZW4iLCAiX1JUIiwgIl9SVFYiLCAiX1JUZSIsICJfUlVEIiwgIl9SYSIsICJfUmUiLCAiX1JlYyIsICJfUmVkIiwgIl9SZXQiLCAiX1JvIiwgIl9SdSIsICJfUyIsICJfU0EiLCAiX1NBSyIsICJfU0FzIiwgIl9TQiIsICJfU0JEIiwgIl9TQyIsICJfU0NBIiwgIl9TQ0FERSIsICJfU0NWIiwgIl9TQ2UiLCAiX1NDdCIsICJfU0RWIiwgIl9TRSIsICJfU0lNIiwgIl9TSU1TIiwgIl9TSU5NIiwgIl9TSVVTIiwgIl9TSyIsICJfU0tFTyIsICJfU0tGIiwgIl9TS2UiLCAiX1NMIiwgIl9TTSIsICJfU09DIiwgIl9TT0NFUyIsICJfU09DTyIsICJfU09DUiIsICJfU1AiLCAiX1NQaSIsICJfU1IiLCAiX1NTIiwgIl9TU0MiLCAiX1NTRSIsICJfU1NFQSIsICJfU1NFQkQiLCAiX1NTRUMiLCAiX1NTRUNBIiwgIl9TU0VDSyIsICJfU1NFQ0tNRCIsICJfU1NFS01TIiwgIl9TU0VLTVNFQyIsICJfU1NFS01TS0kiLCAiX1NTRVIiLCAiX1NTRVJlIiwgIl9TU0VTIiwgIl9TVCIsICJfU1REIiwgIl9TVERSIiwgIl9TXyIsICJfU2MiLCAiX1NpIiwgIl9TdCIsICJfU3RhIiwgIl9TdSIsICJfVCIsICJfVEEiLCAiX1RBbyIsICJfVEIiLCAiX1RCQSIsICJfVEJUIiwgIl9UQyIsICJfVENMIiwgIl9UQ28iLCAiX1RDb3AiLCAiX1REIiwgIl9URE1PUyIsICJfVEciLCAiX1RHYSIsICJfVEwiLCAiX1RMciIsICJfVE1QIiwgIl9UTiIsICJfVE5hIiwgIl9UT0tGIiwgIl9UUCIsICJfVFBDIiwgIl9UUyIsICJfVFNhIiwgIl9UYSIsICJfVGFnIiwgIl9UaSIsICJfVGllIiwgIl9UaWVyIiwgIl9UaW0iLCAiX1RvIiwgIl9Ub3AiLCAiX1RyIiwgIl9UcmEiLCAiX1R5IiwgIl9VIiwgIl9VQk1JVEMiLCAiX1VCTUlUQ1IiLCAiX1VCTUpUQyIsICJfVUJNSlRDUiIsICJfVUkiLCAiX1VJTSIsICJfVU0iLCAiX1VQIiwgIl9VUEMiLCAiX1VQQ08iLCAiX1VQQ1IiLCAiX1VQTyIsICJfVVBSIiwgIl9VUkkiLCAiX1VwIiwgIl9WIiwgIl9WQyIsICJfVkkiLCAiX1ZJTSIsICJfVmUiLCAiX1ZlciIsICJfV0MiLCAiX1dHT1IiLCAiX1dHT1JSIiwgIl9XT0IiLCAiX1dSTCIsICJfWSIsICJfYXIiLCAiX2JyIiwgIl9jIiwgIl9jdCIsICJfZCIsICJfZSIsICJfZVAiLCAiX2VuIiwgIl9ldCIsICJfZm8iLCAiX2giLCAiX2hFIiwgIl9oSCIsICJfaEwiLCAiX2hQIiwgIl9oUEgiLCAiX2hRIiwgIl9oaSIsICJfaSIsICJfaVQiLCAiX2ttIiwgIl9tIiwgIl9tYiIsICJfbWRiIiwgIl9tayIsICJfbXAiLCAiX211IiwgIl9wIiwgIl9wTiIsICJfcG5tIiwgIl9yY2MiLCAiX3JjZCIsICJfcmNlIiwgIl9yY2wiLCAiX3JjdCIsICJfcmUiLCAiX3MiLCAiX3NhIiwgIl9zbSIsICJfdUkiLCAiX3VpbSIsICJfdkkiLCAiX3ZpbSIsICJfeCIsICJfeEEiLCAiX3hGIiwgIl94TiIsICJfeE5tIiwgIl94YWEiLCAiX3hhYWQiLCAiX3hhYXBhIiwgIl94YWFyaSIsICJfeGFhcyIsICJfeGFiYSIsICJfeGFiZ3IiLCAiX3hhYmxuIiwgIl94YWJsdCIsICJfeGFib2xlIiwgIl94YWJvbHQiLCAiX3hhYnIiLCAiX3hhY2EiLCAiX3hhY2MiLCAiX3hhY2NfIiwgIl94YWNjX18iLCAiX3hhY20iLCAiX3hhY3JzYmEiLCAiX3hhY3MiLCAiX3hhY3NfIiwgIl94YWNzX18iLCAiX3hhY3NpbSIsICJfeGFjc2ltcyIsICJfeGFjc2lubSIsICJfeGFjc2l1cyIsICJfeGFjc20iLCAiX3hhY3NyIiwgIl94YWNzc3NlY2EiLCAiX3hhY3Nzc2VjayIsICJfeGFjc3NzZWNrTSIsICJfeGFjc3ZpIiwgIl94YWN0IiwgIl94YWN0XyIsICJfeGFkbSIsICJfeGFlIiwgIl94YWVibyIsICJfeGFmZWMiLCAiX3hhZmVtIiwgIl94YWZoQ0MiLCAiX3hhZmhDRCIsICJfeGFmaENFIiwgIl94YWZoQ0wiLCAiX3hhZmhDUiIsICJfeGFmaENUIiwgIl94YWZoRSIsICJfeGFmaEVfIiwgIl94YWZoTE0iLCAiX3hhZmhhciIsICJfeGFmaHhhY2MiLCAiX3hhZmh4YWNjXyIsICJfeGFmaHhhY2NfXyIsICJfeGFmaHhhY3MiLCAiX3hhZmh4YWNzXyIsICJfeGFmaHhhZG0iLCAiX3hhZmh4YWUiLCAiX3hhZmh4YW1tIiwgIl94YWZoeGFtcGMiLCAiX3hhZmh4YW9sbGgiLCAiX3hhZmh4YW9sbSIsICJfeGFmaHhhb2xydWQiLCAiX3hhZmh4YXIiLCAiX3hhZmh4YXJjIiwgIl94YWZoeGFycyIsICJfeGFmaHhhc2MiLCAiX3hhZmh4YXNzZSIsICJfeGFmaHhhc3NlYWtraSIsICJfeGFmaHhhc3NlYmtlIiwgIl94YWZoeGFzc2VjYSIsICJfeGFmaHhhc3NlY2tNIiwgIl94YWZoeGF0YyIsICJfeGFmaHhhdmkiLCAiX3hhZnMiLCAiX3hhZ2ZjIiwgIl94YWdyIiwgIl94YWdyYSIsICJfeGFndyIsICJfeGFnd2EiLCAiX3hhaW1pdCIsICJfeGFpbWxtdCIsICJfeGFpbXMiLCAiX3hhbSIsICJfeGFtXyIsICJfeGFtZCIsICJfeGFtbSIsICJfeGFtb3MiLCAiX3hhbXAiLCAiX3hhbXBjIiwgIl94YW9hIiwgIl94YW9sbGgiLCAiX3hhb2xtIiwgIl94YW9scnVkIiwgIl94YW9vIiwgIl94YW9vYSIsICJfeGFvcyIsICJfeGFwbm0iLCAiX3hhciIsICJfeGFyYyIsICJfeGFyb3AiLCAiX3hhcnAiLCAiX3hhcnIiLCAiX3hhcnMiLCAiX3hhcnNfIiwgIl94YXJzaW0iLCAiX3hhcnNpbXMiLCAiX3hhcnNpbm0iLCAiX3hhcnNpdXMiLCAiX3hhcnQiLCAiX3hhc2MiLCAiX3hhc2NhIiwgIl94YXNkdiIsICJfeGFzZWJvIiwgIl94YXNzZSIsICJfeGFzc2Vha2tpIiwgIl94YXNzZWJrZSIsICJfeGFzc2VjIiwgIl94YXNzZWNhIiwgIl94YXNzZWNrIiwgIl94YXNzZWNrTSIsICJfeGF0IiwgIl94YXRjIiwgIl94YXRkIiwgIl94YXRkbW9zIiwgIl94YXZpIiwgIl94YXdvYiIsICJfeGF3cmwiLCAiX3hzIiwgIm4wIiwgIkNvcHlTb3VyY2VTU0VDdXN0b21lcktleSIsICJTZXNzaW9uQ3JlZGVudGlhbFZhbHVlIiwgIlNTRUN1c3RvbWVyS2V5IiwgIlNTRUtNU0VuY3J5cHRpb25Db250ZXh0IiwgIlNTRUtNU0tleUlkIiwgIlN0cmVhbWluZ0Jsb2IiLCAiQWJhY1N0YXR1cyIsICJBYm9ydEluY29tcGxldGVNdWx0aXBhcnRVcGxvYWQiLCAiQWJvcnRNdWx0aXBhcnRVcGxvYWRPdXRwdXQiLCAiQWJvcnRNdWx0aXBhcnRVcGxvYWRSZXF1ZXN0IiwgIkFjY2VsZXJhdGVDb25maWd1cmF0aW9uIiwgIkFjY2Vzc0NvbnRyb2xQb2xpY3kiLCAiR3JhbnRzIiwgIk93bmVyIiwgIkFjY2Vzc0NvbnRyb2xUcmFuc2xhdGlvbiIsICJBbmFseXRpY3NBbmRPcGVyYXRvciIsICJUYWdTZXQiLCAiQW5hbHl0aWNzQ29uZmlndXJhdGlvbiIsICJBbmFseXRpY3NGaWx0ZXIiLCAiU3RvcmFnZUNsYXNzQW5hbHlzaXMiLCAiQW5hbHl0aWNzRXhwb3J0RGVzdGluYXRpb24iLCAiQW5hbHl0aWNzUzNCdWNrZXREZXN0aW5hdGlvbiIsICJCbG9ja2VkRW5jcnlwdGlvblR5cGVzIiwgIkVuY3J5cHRpb25UeXBlTGlzdCIsICJCdWNrZXQiLCAiQnVja2V0SW5mbyIsICJCdWNrZXRMaWZlY3ljbGVDb25maWd1cmF0aW9uIiwgIkxpZmVjeWNsZVJ1bGVzIiwgIkJ1Y2tldExvZ2dpbmdTdGF0dXMiLCAiTG9nZ2luZ0VuYWJsZWQiLCAiQ2hlY2tzdW0iLCAiQ29tbW9uUHJlZml4IiwgIkNvbXBsZXRlZE11bHRpcGFydFVwbG9hZCIsICJDb21wbGV0ZWRQYXJ0TGlzdCIsICJDb21wbGV0ZWRQYXJ0IiwgIkNvbXBsZXRlTXVsdGlwYXJ0VXBsb2FkT3V0cHV0IiwgIkNvbXBsZXRlTXVsdGlwYXJ0VXBsb2FkUmVxdWVzdCIsICJDb25kaXRpb24iLCAiQ29udGludWF0aW9uRXZlbnQiLCAiQ29weU9iamVjdE91dHB1dCIsICJDb3B5T2JqZWN0UmVzdWx0IiwgIkNvcHlPYmplY3RSZXF1ZXN0IiwgIkNvcHlQYXJ0UmVzdWx0IiwgIkNPUlNDb25maWd1cmF0aW9uIiwgIkNPUlNSdWxlcyIsICJDT1JTUnVsZSIsICJDcmVhdGVCdWNrZXRDb25maWd1cmF0aW9uIiwgIkxvY2F0aW9uSW5mbyIsICJDcmVhdGVCdWNrZXRNZXRhZGF0YUNvbmZpZ3VyYXRpb25SZXF1ZXN0IiwgIk1ldGFkYXRhQ29uZmlndXJhdGlvbiIsICJDcmVhdGVCdWNrZXRNZXRhZGF0YVRhYmxlQ29uZmlndXJhdGlvblJlcXVlc3QiLCAiTWV0YWRhdGFUYWJsZUNvbmZpZ3VyYXRpb24iLCAiQ3JlYXRlQnVja2V0T3V0cHV0IiwgIkNyZWF0ZUJ1Y2tldFJlcXVlc3QiLCAiQ3JlYXRlTXVsdGlwYXJ0VXBsb2FkT3V0cHV0IiwgIkNyZWF0ZU11bHRpcGFydFVwbG9hZFJlcXVlc3QiLCAiQ3JlYXRlU2Vzc2lvbk91dHB1dCIsICJTZXNzaW9uQ3JlZGVudGlhbHMiLCAiQ3JlYXRlU2Vzc2lvblJlcXVlc3QiLCAiQ1NWSW5wdXQiLCAiQ1NWT3V0cHV0IiwgIkRlZmF1bHRSZXRlbnRpb24iLCAiRGVsZXRlIiwgIk9iamVjdElkZW50aWZpZXJMaXN0IiwgIkRlbGV0ZUJ1Y2tldEFuYWx5dGljc0NvbmZpZ3VyYXRpb25SZXF1ZXN0IiwgIkRlbGV0ZUJ1Y2tldENvcnNSZXF1ZXN0IiwgIkRlbGV0ZUJ1Y2tldEVuY3J5cHRpb25SZXF1ZXN0IiwgIkRlbGV0ZUJ1Y2tldEludGVsbGlnZW50VGllcmluZ0NvbmZpZ3VyYXRpb25SZXF1ZXN0IiwgIkRlbGV0ZUJ1Y2tldEludmVudG9yeUNvbmZpZ3VyYXRpb25SZXF1ZXN0IiwgIkRlbGV0ZUJ1Y2tldExpZmVjeWNsZVJlcXVlc3QiLCAiRGVsZXRlQnVja2V0TWV0YWRhdGFDb25maWd1cmF0aW9uUmVxdWVzdCIsICJEZWxldGVCdWNrZXRNZXRhZGF0YVRhYmxlQ29uZmlndXJhdGlvblJlcXVlc3QiLCAiRGVsZXRlQnVja2V0TWV0cmljc0NvbmZpZ3VyYXRpb25SZXF1ZXN0IiwgIkRlbGV0ZUJ1Y2tldE93bmVyc2hpcENvbnRyb2xzUmVxdWVzdCIsICJEZWxldGVCdWNrZXRQb2xpY3lSZXF1ZXN0IiwgIkRlbGV0ZUJ1Y2tldFJlcGxpY2F0aW9uUmVxdWVzdCIsICJEZWxldGVCdWNrZXRSZXF1ZXN0IiwgIkRlbGV0ZUJ1Y2tldFRhZ2dpbmdSZXF1ZXN0IiwgIkRlbGV0ZUJ1Y2tldFdlYnNpdGVSZXF1ZXN0IiwgIkRlbGV0ZWRPYmplY3QiLCAiRGVsZXRlTWFya2VyRW50cnkiLCAiRGVsZXRlTWFya2VyUmVwbGljYXRpb24iLCAiRGVsZXRlT2JqZWN0T3V0cHV0IiwgIkRlbGV0ZU9iamVjdFJlcXVlc3QiLCAiRGVsZXRlT2JqZWN0c091dHB1dCIsICJEZWxldGVkT2JqZWN0cyIsICJFcnJvcnMiLCAiRGVsZXRlT2JqZWN0c1JlcXVlc3QiLCAiRGVsZXRlT2JqZWN0VGFnZ2luZ091dHB1dCIsICJEZWxldGVPYmplY3RUYWdnaW5nUmVxdWVzdCIsICJEZWxldGVQdWJsaWNBY2Nlc3NCbG9ja1JlcXVlc3QiLCAiRGVzdGluYXRpb24iLCAiRW5jcnlwdGlvbkNvbmZpZ3VyYXRpb24iLCAiUmVwbGljYXRpb25UaW1lIiwgIk1ldHJpY3MiLCAiRGVzdGluYXRpb25SZXN1bHQiLCAiRW5jcnlwdGlvbiIsICJFbmRFdmVudCIsICJfRXJyb3IiLCAiRXJyb3JEZXRhaWxzIiwgIkVycm9yRG9jdW1lbnQiLCAiRXZlbnRCcmlkZ2VDb25maWd1cmF0aW9uIiwgIkV4aXN0aW5nT2JqZWN0UmVwbGljYXRpb24iLCAiRmlsdGVyUnVsZSIsICJHZXRCdWNrZXRBYmFjT3V0cHV0IiwgIkdldEJ1Y2tldEFiYWNSZXF1ZXN0IiwgIkdldEJ1Y2tldEFjY2VsZXJhdGVDb25maWd1cmF0aW9uT3V0cHV0IiwgIkdldEJ1Y2tldEFjY2VsZXJhdGVDb25maWd1cmF0aW9uUmVxdWVzdCIsICJHZXRCdWNrZXRBY2xPdXRwdXQiLCAiR2V0QnVja2V0QWNsUmVxdWVzdCIsICJHZXRCdWNrZXRBbmFseXRpY3NDb25maWd1cmF0aW9uT3V0cHV0IiwgIkdldEJ1Y2tldEFuYWx5dGljc0NvbmZpZ3VyYXRpb25SZXF1ZXN0IiwgIkdldEJ1Y2tldENvcnNPdXRwdXQiLCAiR2V0QnVja2V0Q29yc1JlcXVlc3QiLCAiR2V0QnVja2V0RW5jcnlwdGlvbk91dHB1dCIsICJTZXJ2ZXJTaWRlRW5jcnlwdGlvbkNvbmZpZ3VyYXRpb24iLCAiR2V0QnVja2V0RW5jcnlwdGlvblJlcXVlc3QiLCAiR2V0QnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvbk91dHB1dCIsICJJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9uIiwgIkdldEJ1Y2tldEludGVsbGlnZW50VGllcmluZ0NvbmZpZ3VyYXRpb25SZXF1ZXN0IiwgIkdldEJ1Y2tldEludmVudG9yeUNvbmZpZ3VyYXRpb25PdXRwdXQiLCAiSW52ZW50b3J5Q29uZmlndXJhdGlvbiIsICJHZXRCdWNrZXRJbnZlbnRvcnlDb25maWd1cmF0aW9uUmVxdWVzdCIsICJHZXRCdWNrZXRMaWZlY3ljbGVDb25maWd1cmF0aW9uT3V0cHV0IiwgIkdldEJ1Y2tldExpZmVjeWNsZUNvbmZpZ3VyYXRpb25SZXF1ZXN0IiwgIkdldEJ1Y2tldExvY2F0aW9uT3V0cHV0IiwgIkdldEJ1Y2tldExvY2F0aW9uUmVxdWVzdCIsICJHZXRCdWNrZXRMb2dnaW5nT3V0cHV0IiwgIkdldEJ1Y2tldExvZ2dpbmdSZXF1ZXN0IiwgIkdldEJ1Y2tldE1ldGFkYXRhQ29uZmlndXJhdGlvbk91dHB1dCIsICJHZXRCdWNrZXRNZXRhZGF0YUNvbmZpZ3VyYXRpb25SZXN1bHQiLCAiR2V0QnVja2V0TWV0YWRhdGFDb25maWd1cmF0aW9uUmVxdWVzdCIsICJNZXRhZGF0YUNvbmZpZ3VyYXRpb25SZXN1bHQiLCAiR2V0QnVja2V0TWV0YWRhdGFUYWJsZUNvbmZpZ3VyYXRpb25PdXRwdXQiLCAiR2V0QnVja2V0TWV0YWRhdGFUYWJsZUNvbmZpZ3VyYXRpb25SZXN1bHQiLCAiR2V0QnVja2V0TWV0YWRhdGFUYWJsZUNvbmZpZ3VyYXRpb25SZXF1ZXN0IiwgIk1ldGFkYXRhVGFibGVDb25maWd1cmF0aW9uUmVzdWx0IiwgIkdldEJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9uT3V0cHV0IiwgIk1ldHJpY3NDb25maWd1cmF0aW9uIiwgIkdldEJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9uUmVxdWVzdCIsICJHZXRCdWNrZXROb3RpZmljYXRpb25Db25maWd1cmF0aW9uUmVxdWVzdCIsICJHZXRCdWNrZXRPd25lcnNoaXBDb250cm9sc091dHB1dCIsICJPd25lcnNoaXBDb250cm9scyIsICJHZXRCdWNrZXRPd25lcnNoaXBDb250cm9sc1JlcXVlc3QiLCAiR2V0QnVja2V0UG9saWN5T3V0cHV0IiwgIkdldEJ1Y2tldFBvbGljeVJlcXVlc3QiLCAiR2V0QnVja2V0UG9saWN5U3RhdHVzT3V0cHV0IiwgIlBvbGljeVN0YXR1cyIsICJHZXRCdWNrZXRQb2xpY3lTdGF0dXNSZXF1ZXN0IiwgIkdldEJ1Y2tldFJlcGxpY2F0aW9uT3V0cHV0IiwgIlJlcGxpY2F0aW9uQ29uZmlndXJhdGlvbiIsICJHZXRCdWNrZXRSZXBsaWNhdGlvblJlcXVlc3QiLCAiR2V0QnVja2V0UmVxdWVzdFBheW1lbnRPdXRwdXQiLCAiR2V0QnVja2V0UmVxdWVzdFBheW1lbnRSZXF1ZXN0IiwgIkdldEJ1Y2tldFRhZ2dpbmdPdXRwdXQiLCAiR2V0QnVja2V0VGFnZ2luZ1JlcXVlc3QiLCAiR2V0QnVja2V0VmVyc2lvbmluZ091dHB1dCIsICJHZXRCdWNrZXRWZXJzaW9uaW5nUmVxdWVzdCIsICJHZXRCdWNrZXRXZWJzaXRlT3V0cHV0IiwgIlJlZGlyZWN0QWxsUmVxdWVzdHNUbyIsICJJbmRleERvY3VtZW50IiwgIlJvdXRpbmdSdWxlcyIsICJHZXRCdWNrZXRXZWJzaXRlUmVxdWVzdCIsICJHZXRPYmplY3RBY2xPdXRwdXQiLCAiR2V0T2JqZWN0QWNsUmVxdWVzdCIsICJHZXRPYmplY3RBdHRyaWJ1dGVzT3V0cHV0IiwgIkdldE9iamVjdEF0dHJpYnV0ZXNQYXJ0cyIsICJQYXJ0c0xpc3QiLCAiR2V0T2JqZWN0QXR0cmlidXRlc1JlcXVlc3QiLCAiR2V0T2JqZWN0TGVnYWxIb2xkT3V0cHV0IiwgIk9iamVjdExvY2tMZWdhbEhvbGQiLCAiR2V0T2JqZWN0TGVnYWxIb2xkUmVxdWVzdCIsICJHZXRPYmplY3RMb2NrQ29uZmlndXJhdGlvbk91dHB1dCIsICJPYmplY3RMb2NrQ29uZmlndXJhdGlvbiIsICJHZXRPYmplY3RMb2NrQ29uZmlndXJhdGlvblJlcXVlc3QiLCAiR2V0T2JqZWN0T3V0cHV0IiwgIkdldE9iamVjdFJlcXVlc3QiLCAiR2V0T2JqZWN0UmV0ZW50aW9uT3V0cHV0IiwgIk9iamVjdExvY2tSZXRlbnRpb24iLCAiR2V0T2JqZWN0UmV0ZW50aW9uUmVxdWVzdCIsICJHZXRPYmplY3RUYWdnaW5nT3V0cHV0IiwgIkdldE9iamVjdFRhZ2dpbmdSZXF1ZXN0IiwgIkdldE9iamVjdFRvcnJlbnRPdXRwdXQiLCAiR2V0T2JqZWN0VG9ycmVudFJlcXVlc3QiLCAiR2V0UHVibGljQWNjZXNzQmxvY2tPdXRwdXQiLCAiUHVibGljQWNjZXNzQmxvY2tDb25maWd1cmF0aW9uIiwgIkdldFB1YmxpY0FjY2Vzc0Jsb2NrUmVxdWVzdCIsICJHbGFjaWVySm9iUGFyYW1ldGVycyIsICJHcmFudCIsICJHcmFudGVlIiwgIkhlYWRCdWNrZXRPdXRwdXQiLCAiSGVhZEJ1Y2tldFJlcXVlc3QiLCAiSGVhZE9iamVjdE91dHB1dCIsICJIZWFkT2JqZWN0UmVxdWVzdCIsICJJbml0aWF0b3IiLCAiSW5wdXRTZXJpYWxpemF0aW9uIiwgIkpTT05JbnB1dCIsICJQYXJxdWV0SW5wdXQiLCAiSW50ZWxsaWdlbnRUaWVyaW5nQW5kT3BlcmF0b3IiLCAiSW50ZWxsaWdlbnRUaWVyaW5nRmlsdGVyIiwgIlRpZXJpbmdMaXN0IiwgIlRhZyIsICJJbnZlbnRvcnlEZXN0aW5hdGlvbiIsICJJbnZlbnRvcnlGaWx0ZXIiLCAiSW52ZW50b3J5T3B0aW9uYWxGaWVsZHMiLCAiSW52ZW50b3J5U2NoZWR1bGUiLCAiSW52ZW50b3J5UzNCdWNrZXREZXN0aW5hdGlvbiIsICJJbnZlbnRvcnlFbmNyeXB0aW9uIiwgIlNTRVMzIiwgIlNTRUtNUyIsICJJbnZlbnRvcnlUYWJsZUNvbmZpZ3VyYXRpb24iLCAiTWV0YWRhdGFUYWJsZUVuY3J5cHRpb25Db25maWd1cmF0aW9uIiwgIkludmVudG9yeVRhYmxlQ29uZmlndXJhdGlvblJlc3VsdCIsICJJbnZlbnRvcnlUYWJsZUNvbmZpZ3VyYXRpb25VcGRhdGVzIiwgIkpvdXJuYWxUYWJsZUNvbmZpZ3VyYXRpb24iLCAiUmVjb3JkRXhwaXJhdGlvbiIsICJKb3VybmFsVGFibGVDb25maWd1cmF0aW9uUmVzdWx0IiwgIkpvdXJuYWxUYWJsZUNvbmZpZ3VyYXRpb25VcGRhdGVzIiwgIkpTT05PdXRwdXQiLCAiTGFtYmRhRnVuY3Rpb25Db25maWd1cmF0aW9uIiwgIk5vdGlmaWNhdGlvbkNvbmZpZ3VyYXRpb25GaWx0ZXIiLCAiTGlmZWN5Y2xlRXhwaXJhdGlvbiIsICJMaWZlY3ljbGVSdWxlIiwgIkxpZmVjeWNsZVJ1bGVGaWx0ZXIiLCAiVHJhbnNpdGlvbkxpc3QiLCAiTm9uY3VycmVudFZlcnNpb25UcmFuc2l0aW9uTGlzdCIsICJOb25jdXJyZW50VmVyc2lvbkV4cGlyYXRpb24iLCAiTGlmZWN5Y2xlUnVsZUFuZE9wZXJhdG9yIiwgIkxpc3RCdWNrZXRBbmFseXRpY3NDb25maWd1cmF0aW9uc091dHB1dCIsICJBbmFseXRpY3NDb25maWd1cmF0aW9uTGlzdCIsICJMaXN0QnVja2V0QW5hbHl0aWNzQ29uZmlndXJhdGlvbnNSZXF1ZXN0IiwgIkxpc3RCdWNrZXRJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9uc091dHB1dCIsICJJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9uTGlzdCIsICJMaXN0QnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvbnNSZXF1ZXN0IiwgIkxpc3RCdWNrZXRJbnZlbnRvcnlDb25maWd1cmF0aW9uc091dHB1dCIsICJJbnZlbnRvcnlDb25maWd1cmF0aW9uTGlzdCIsICJMaXN0QnVja2V0SW52ZW50b3J5Q29uZmlndXJhdGlvbnNSZXF1ZXN0IiwgIkxpc3RCdWNrZXRNZXRyaWNzQ29uZmlndXJhdGlvbnNPdXRwdXQiLCAiTWV0cmljc0NvbmZpZ3VyYXRpb25MaXN0IiwgIkxpc3RCdWNrZXRNZXRyaWNzQ29uZmlndXJhdGlvbnNSZXF1ZXN0IiwgIkxpc3RCdWNrZXRzT3V0cHV0IiwgIkJ1Y2tldHMiLCAiTGlzdEJ1Y2tldHNSZXF1ZXN0IiwgIkxpc3REaXJlY3RvcnlCdWNrZXRzT3V0cHV0IiwgIkxpc3REaXJlY3RvcnlCdWNrZXRzUmVxdWVzdCIsICJMaXN0TXVsdGlwYXJ0VXBsb2Fkc091dHB1dCIsICJNdWx0aXBhcnRVcGxvYWRMaXN0IiwgIkNvbW1vblByZWZpeExpc3QiLCAiTGlzdE11bHRpcGFydFVwbG9hZHNSZXF1ZXN0IiwgIkxpc3RPYmplY3RzT3V0cHV0IiwgIk9iamVjdExpc3QiLCAiTGlzdE9iamVjdHNSZXF1ZXN0IiwgIkxpc3RPYmplY3RzVjJPdXRwdXQiLCAiTGlzdE9iamVjdHNWMlJlcXVlc3QiLCAiTGlzdE9iamVjdFZlcnNpb25zT3V0cHV0IiwgIk9iamVjdFZlcnNpb25MaXN0IiwgIkRlbGV0ZU1hcmtlcnMiLCAiTGlzdE9iamVjdFZlcnNpb25zUmVxdWVzdCIsICJMaXN0UGFydHNPdXRwdXQiLCAiUGFydHMiLCAiTGlzdFBhcnRzUmVxdWVzdCIsICJUYXJnZXRHcmFudHMiLCAiVGFyZ2V0T2JqZWN0S2V5Rm9ybWF0IiwgIk1ldGFkYXRhRW50cnkiLCAiUzNUYWJsZXNEZXN0aW5hdGlvbiIsICJTM1RhYmxlc0Rlc3RpbmF0aW9uUmVzdWx0IiwgIlJlcGxpY2F0aW9uVGltZVZhbHVlIiwgIk1ldHJpY3NBbmRPcGVyYXRvciIsICJNZXRyaWNzRmlsdGVyIiwgIk11bHRpcGFydFVwbG9hZCIsICJOb25jdXJyZW50VmVyc2lvblRyYW5zaXRpb24iLCAiTm90aWZpY2F0aW9uQ29uZmlndXJhdGlvbiIsICJUb3BpY0NvbmZpZ3VyYXRpb25MaXN0IiwgIlF1ZXVlQ29uZmlndXJhdGlvbkxpc3QiLCAiTGFtYmRhRnVuY3Rpb25Db25maWd1cmF0aW9uTGlzdCIsICJTM0tleUZpbHRlciIsICJfT2JqZWN0IiwgIlJlc3RvcmVTdGF0dXMiLCAiT2JqZWN0SWRlbnRpZmllciIsICJPYmplY3RMb2NrUnVsZSIsICJPYmplY3RQYXJ0IiwgIk9iamVjdFZlcnNpb24iLCAiT3V0cHV0TG9jYXRpb24iLCAiUzNMb2NhdGlvbiIsICJPdXRwdXRTZXJpYWxpemF0aW9uIiwgIk93bmVyc2hpcENvbnRyb2xzUnVsZXMiLCAiT3duZXJzaGlwQ29udHJvbHNSdWxlIiwgIlBhcnQiLCAiUGFydGl0aW9uZWRQcmVmaXgiLCAiUHJvZ3Jlc3MiLCAiUHJvZ3Jlc3NFdmVudCIsICJQdXRCdWNrZXRBYmFjUmVxdWVzdCIsICJQdXRCdWNrZXRBY2NlbGVyYXRlQ29uZmlndXJhdGlvblJlcXVlc3QiLCAiUHV0QnVja2V0QWNsUmVxdWVzdCIsICJQdXRCdWNrZXRBbmFseXRpY3NDb25maWd1cmF0aW9uUmVxdWVzdCIsICJQdXRCdWNrZXRDb3JzUmVxdWVzdCIsICJQdXRCdWNrZXRFbmNyeXB0aW9uUmVxdWVzdCIsICJQdXRCdWNrZXRJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9uUmVxdWVzdCIsICJQdXRCdWNrZXRJbnZlbnRvcnlDb25maWd1cmF0aW9uUmVxdWVzdCIsICJQdXRCdWNrZXRMaWZlY3ljbGVDb25maWd1cmF0aW9uT3V0cHV0IiwgIlB1dEJ1Y2tldExpZmVjeWNsZUNvbmZpZ3VyYXRpb25SZXF1ZXN0IiwgIlB1dEJ1Y2tldExvZ2dpbmdSZXF1ZXN0IiwgIlB1dEJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9uUmVxdWVzdCIsICJQdXRCdWNrZXROb3RpZmljYXRpb25Db25maWd1cmF0aW9uUmVxdWVzdCIsICJQdXRCdWNrZXRPd25lcnNoaXBDb250cm9sc1JlcXVlc3QiLCAiUHV0QnVja2V0UG9saWN5UmVxdWVzdCIsICJQdXRCdWNrZXRSZXBsaWNhdGlvblJlcXVlc3QiLCAiUHV0QnVja2V0UmVxdWVzdFBheW1lbnRSZXF1ZXN0IiwgIlJlcXVlc3RQYXltZW50Q29uZmlndXJhdGlvbiIsICJQdXRCdWNrZXRUYWdnaW5nUmVxdWVzdCIsICJUYWdnaW5nIiwgIlB1dEJ1Y2tldFZlcnNpb25pbmdSZXF1ZXN0IiwgIlZlcnNpb25pbmdDb25maWd1cmF0aW9uIiwgIlB1dEJ1Y2tldFdlYnNpdGVSZXF1ZXN0IiwgIldlYnNpdGVDb25maWd1cmF0aW9uIiwgIlB1dE9iamVjdEFjbE91dHB1dCIsICJQdXRPYmplY3RBY2xSZXF1ZXN0IiwgIlB1dE9iamVjdExlZ2FsSG9sZE91dHB1dCIsICJQdXRPYmplY3RMZWdhbEhvbGRSZXF1ZXN0IiwgIlB1dE9iamVjdExvY2tDb25maWd1cmF0aW9uT3V0cHV0IiwgIlB1dE9iamVjdExvY2tDb25maWd1cmF0aW9uUmVxdWVzdCIsICJQdXRPYmplY3RPdXRwdXQiLCAiUHV0T2JqZWN0UmVxdWVzdCIsICJQdXRPYmplY3RSZXRlbnRpb25PdXRwdXQiLCAiUHV0T2JqZWN0UmV0ZW50aW9uUmVxdWVzdCIsICJQdXRPYmplY3RUYWdnaW5nT3V0cHV0IiwgIlB1dE9iamVjdFRhZ2dpbmdSZXF1ZXN0IiwgIlB1dFB1YmxpY0FjY2Vzc0Jsb2NrUmVxdWVzdCIsICJRdWV1ZUNvbmZpZ3VyYXRpb24iLCAiUmVjb3Jkc0V2ZW50IiwgIlJlZGlyZWN0IiwgIlJlbmFtZU9iamVjdE91dHB1dCIsICJSZW5hbWVPYmplY3RSZXF1ZXN0IiwgIlJlcGxpY2FNb2RpZmljYXRpb25zIiwgIlJlcGxpY2F0aW9uUnVsZXMiLCAiUmVwbGljYXRpb25SdWxlIiwgIlJlcGxpY2F0aW9uUnVsZUZpbHRlciIsICJTb3VyY2VTZWxlY3Rpb25Dcml0ZXJpYSIsICJSZXBsaWNhdGlvblJ1bGVBbmRPcGVyYXRvciIsICJSZXF1ZXN0UHJvZ3Jlc3MiLCAiUmVzdG9yZU9iamVjdE91dHB1dCIsICJSZXN0b3JlT2JqZWN0UmVxdWVzdCIsICJSZXN0b3JlUmVxdWVzdCIsICJTZWxlY3RQYXJhbWV0ZXJzIiwgIlJvdXRpbmdSdWxlIiwgIkZpbHRlclJ1bGVMaXN0IiwgIlVzZXJNZXRhZGF0YSIsICJTY2FuUmFuZ2UiLCAiU2VsZWN0T2JqZWN0Q29udGVudE91dHB1dCIsICJTZWxlY3RPYmplY3RDb250ZW50RXZlbnRTdHJlYW0iLCAiU2VsZWN0T2JqZWN0Q29udGVudFJlcXVlc3QiLCAiU2VydmVyU2lkZUVuY3J5cHRpb25CeURlZmF1bHQiLCAiU2VydmVyU2lkZUVuY3J5cHRpb25SdWxlcyIsICJTZXJ2ZXJTaWRlRW5jcnlwdGlvblJ1bGUiLCAiU2ltcGxlUHJlZml4IiwgIlNzZUttc0VuY3J5cHRlZE9iamVjdHMiLCAiU3RhdHMiLCAiU3RhdHNFdmVudCIsICJTdG9yYWdlQ2xhc3NBbmFseXNpc0RhdGFFeHBvcnQiLCAiVGFyZ2V0R3JhbnQiLCAiVGllcmluZyIsICJUb3BpY0NvbmZpZ3VyYXRpb24iLCAiVHJhbnNpdGlvbiIsICJVcGRhdGVCdWNrZXRNZXRhZGF0YUludmVudG9yeVRhYmxlQ29uZmlndXJhdGlvblJlcXVlc3QiLCAiVXBkYXRlQnVja2V0TWV0YWRhdGFKb3VybmFsVGFibGVDb25maWd1cmF0aW9uUmVxdWVzdCIsICJVcGxvYWRQYXJ0Q29weU91dHB1dCIsICJVcGxvYWRQYXJ0Q29weVJlcXVlc3QiLCAiVXBsb2FkUGFydE91dHB1dCIsICJVcGxvYWRQYXJ0UmVxdWVzdCIsICJXcml0ZUdldE9iamVjdFJlc3BvbnNlUmVxdWVzdCIsICJfX1VuaXQiLCAiQWJvcnRNdWx0aXBhcnRVcGxvYWQiLCAiQ29tcGxldGVNdWx0aXBhcnRVcGxvYWQiLCAiQ29weU9iamVjdCIsICJDcmVhdGVCdWNrZXQiLCAiQ3JlYXRlQnVja2V0TWV0YWRhdGFDb25maWd1cmF0aW9uIiwgIkNyZWF0ZUJ1Y2tldE1ldGFkYXRhVGFibGVDb25maWd1cmF0aW9uIiwgIkNyZWF0ZU11bHRpcGFydFVwbG9hZCIsICJDcmVhdGVTZXNzaW9uIiwgIkRlbGV0ZUJ1Y2tldCIsICJEZWxldGVCdWNrZXRBbmFseXRpY3NDb25maWd1cmF0aW9uIiwgIkRlbGV0ZUJ1Y2tldENvcnMiLCAiRGVsZXRlQnVja2V0RW5jcnlwdGlvbiIsICJEZWxldGVCdWNrZXRJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9uIiwgIkRlbGV0ZUJ1Y2tldEludmVudG9yeUNvbmZpZ3VyYXRpb24iLCAiRGVsZXRlQnVja2V0TGlmZWN5Y2xlIiwgIkRlbGV0ZUJ1Y2tldE1ldGFkYXRhQ29uZmlndXJhdGlvbiIsICJEZWxldGVCdWNrZXRNZXRhZGF0YVRhYmxlQ29uZmlndXJhdGlvbiIsICJEZWxldGVCdWNrZXRNZXRyaWNzQ29uZmlndXJhdGlvbiIsICJEZWxldGVCdWNrZXRPd25lcnNoaXBDb250cm9scyIsICJEZWxldGVCdWNrZXRQb2xpY3kiLCAiRGVsZXRlQnVja2V0UmVwbGljYXRpb24iLCAiRGVsZXRlQnVja2V0VGFnZ2luZyIsICJEZWxldGVCdWNrZXRXZWJzaXRlIiwgIkRlbGV0ZU9iamVjdCIsICJEZWxldGVPYmplY3RzIiwgIkRlbGV0ZU9iamVjdFRhZ2dpbmciLCAiRGVsZXRlUHVibGljQWNjZXNzQmxvY2siLCAiR2V0QnVja2V0QWJhYyIsICJHZXRCdWNrZXRBY2NlbGVyYXRlQ29uZmlndXJhdGlvbiIsICJHZXRCdWNrZXRBY2wiLCAiR2V0QnVja2V0QW5hbHl0aWNzQ29uZmlndXJhdGlvbiIsICJHZXRCdWNrZXRDb3JzIiwgIkdldEJ1Y2tldEVuY3J5cHRpb24iLCAiR2V0QnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvbiIsICJHZXRCdWNrZXRJbnZlbnRvcnlDb25maWd1cmF0aW9uIiwgIkdldEJ1Y2tldExpZmVjeWNsZUNvbmZpZ3VyYXRpb24iLCAiR2V0QnVja2V0TG9jYXRpb24iLCAiR2V0QnVja2V0TG9nZ2luZyIsICJHZXRCdWNrZXRNZXRhZGF0YUNvbmZpZ3VyYXRpb24iLCAiR2V0QnVja2V0TWV0YWRhdGFUYWJsZUNvbmZpZ3VyYXRpb24iLCAiR2V0QnVja2V0TWV0cmljc0NvbmZpZ3VyYXRpb24iLCAiR2V0QnVja2V0Tm90aWZpY2F0aW9uQ29uZmlndXJhdGlvbiIsICJHZXRCdWNrZXRPd25lcnNoaXBDb250cm9scyIsICJHZXRCdWNrZXRQb2xpY3kiLCAiR2V0QnVja2V0UG9saWN5U3RhdHVzIiwgIkdldEJ1Y2tldFJlcGxpY2F0aW9uIiwgIkdldEJ1Y2tldFJlcXVlc3RQYXltZW50IiwgIkdldEJ1Y2tldFRhZ2dpbmciLCAiR2V0QnVja2V0VmVyc2lvbmluZyIsICJHZXRCdWNrZXRXZWJzaXRlIiwgIkdldE9iamVjdCIsICJHZXRPYmplY3RBY2wiLCAiR2V0T2JqZWN0QXR0cmlidXRlcyIsICJHZXRPYmplY3RMZWdhbEhvbGQiLCAiR2V0T2JqZWN0TG9ja0NvbmZpZ3VyYXRpb24iLCAiR2V0T2JqZWN0UmV0ZW50aW9uIiwgIkdldE9iamVjdFRhZ2dpbmciLCAiR2V0T2JqZWN0VG9ycmVudCIsICJHZXRQdWJsaWNBY2Nlc3NCbG9jayIsICJIZWFkQnVja2V0IiwgIkhlYWRPYmplY3QiLCAiTGlzdEJ1Y2tldEFuYWx5dGljc0NvbmZpZ3VyYXRpb25zIiwgIkxpc3RCdWNrZXRJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9ucyIsICJMaXN0QnVja2V0SW52ZW50b3J5Q29uZmlndXJhdGlvbnMiLCAiTGlzdEJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9ucyIsICJMaXN0QnVja2V0cyIsICJMaXN0RGlyZWN0b3J5QnVja2V0cyIsICJMaXN0TXVsdGlwYXJ0VXBsb2FkcyIsICJMaXN0T2JqZWN0cyIsICJMaXN0T2JqZWN0c1YyIiwgIkxpc3RPYmplY3RWZXJzaW9ucyIsICJMaXN0UGFydHMiLCAiUHV0QnVja2V0QWJhYyIsICJQdXRCdWNrZXRBY2NlbGVyYXRlQ29uZmlndXJhdGlvbiIsICJQdXRCdWNrZXRBY2wiLCAiUHV0QnVja2V0QW5hbHl0aWNzQ29uZmlndXJhdGlvbiIsICJQdXRCdWNrZXRDb3JzIiwgIlB1dEJ1Y2tldEVuY3J5cHRpb24iLCAiUHV0QnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvbiIsICJQdXRCdWNrZXRJbnZlbnRvcnlDb25maWd1cmF0aW9uIiwgIlB1dEJ1Y2tldExpZmVjeWNsZUNvbmZpZ3VyYXRpb24iLCAiUHV0QnVja2V0TG9nZ2luZyIsICJQdXRCdWNrZXRNZXRyaWNzQ29uZmlndXJhdGlvbiIsICJQdXRCdWNrZXROb3RpZmljYXRpb25Db25maWd1cmF0aW9uIiwgIlB1dEJ1Y2tldE93bmVyc2hpcENvbnRyb2xzIiwgIlB1dEJ1Y2tldFBvbGljeSIsICJQdXRCdWNrZXRSZXBsaWNhdGlvbiIsICJQdXRCdWNrZXRSZXF1ZXN0UGF5bWVudCIsICJQdXRCdWNrZXRUYWdnaW5nIiwgIlB1dEJ1Y2tldFZlcnNpb25pbmciLCAiUHV0QnVja2V0V2Vic2l0ZSIsICJQdXRPYmplY3QiLCAiUHV0T2JqZWN0QWNsIiwgIlB1dE9iamVjdExlZ2FsSG9sZCIsICJQdXRPYmplY3RMb2NrQ29uZmlndXJhdGlvbiIsICJQdXRPYmplY3RSZXRlbnRpb24iLCAiUHV0T2JqZWN0VGFnZ2luZyIsICJQdXRQdWJsaWNBY2Nlc3NCbG9jayIsICJSZW5hbWVPYmplY3QiLCAiUmVzdG9yZU9iamVjdCIsICJTZWxlY3RPYmplY3RDb250ZW50IiwgIlVwZGF0ZUJ1Y2tldE1ldGFkYXRhSW52ZW50b3J5VGFibGVDb25maWd1cmF0aW9uIiwgIlVwZGF0ZUJ1Y2tldE1ldGFkYXRhSm91cm5hbFRhYmxlQ29uZmlndXJhdGlvbiIsICJVcGxvYWRQYXJ0IiwgIlVwbG9hZFBhcnRDb3B5IiwgIldyaXRlR2V0T2JqZWN0UmVzcG9uc2UiLCAiQ3JlYXRlU2Vzc2lvbkNvbW1hbmQiLCAiQ29tbWFuZCIsICJjcyIsICJjb25maWciLCAibyIsICJnZXRIdHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24iLCAiX2h0dHBBdXRoU2NoZW1lcyIsICJfaHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJfY3JlZGVudGlhbHMiLCAiaHR0cEF1dGhTY2hlbWUiLCAiaW5kZXgiLCAic2NoZW1lIiwgImNyZWRlbnRpYWxzIiwgInJlc29sdmVIdHRwQXV0aFJ1bnRpbWVDb25maWciLCAicmVzb2x2ZVJ1bnRpbWVFeHRlbnNpb25zIiwgImV4dGVuc2lvbnMiLCAiZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiIsICJleHRlbnNpb24iLCAiUzNDbGllbnQiLCAiY29uZmlndXJhdGlvbiIsICJfY29uZmlnXzAiLCAiX2NvbmZpZ18xIiwgIl9jb25maWdfMiIsICJfY29uZmlnXzMiLCAiX2NvbmZpZ180IiwgIl9jb25maWdfNSIsICJfY29uZmlnXzYiLCAiX2NvbmZpZ183IiwgIl9jb25maWdfOCIsICJfY29uZmlnXzkiLCAiX2NvbmZpZ18xMCIsICJfY29uZmlnXzExIiwgIkFib3J0TXVsdGlwYXJ0VXBsb2FkQ29tbWFuZCIsICJDb21wbGV0ZU11bHRpcGFydFVwbG9hZENvbW1hbmQiLCAiQ29weU9iamVjdENvbW1hbmQiLCAiQ3JlYXRlQnVja2V0Q29tbWFuZCIsICJDcmVhdGVCdWNrZXRNZXRhZGF0YUNvbmZpZ3VyYXRpb25Db21tYW5kIiwgIkNyZWF0ZUJ1Y2tldE1ldGFkYXRhVGFibGVDb25maWd1cmF0aW9uQ29tbWFuZCIsICJDcmVhdGVNdWx0aXBhcnRVcGxvYWRDb21tYW5kIiwgIkRlbGV0ZUJ1Y2tldEFuYWx5dGljc0NvbmZpZ3VyYXRpb25Db21tYW5kIiwgIkRlbGV0ZUJ1Y2tldENvbW1hbmQiLCAiRGVsZXRlQnVja2V0Q29yc0NvbW1hbmQiLCAiRGVsZXRlQnVja2V0RW5jcnlwdGlvbkNvbW1hbmQiLCAiRGVsZXRlQnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvbkNvbW1hbmQiLCAiRGVsZXRlQnVja2V0SW52ZW50b3J5Q29uZmlndXJhdGlvbkNvbW1hbmQiLCAiRGVsZXRlQnVja2V0TGlmZWN5Y2xlQ29tbWFuZCIsICJEZWxldGVCdWNrZXRNZXRhZGF0YUNvbmZpZ3VyYXRpb25Db21tYW5kIiwgIkRlbGV0ZUJ1Y2tldE1ldGFkYXRhVGFibGVDb25maWd1cmF0aW9uQ29tbWFuZCIsICJEZWxldGVCdWNrZXRNZXRyaWNzQ29uZmlndXJhdGlvbkNvbW1hbmQiLCAiRGVsZXRlQnVja2V0T3duZXJzaGlwQ29udHJvbHNDb21tYW5kIiwgIkRlbGV0ZUJ1Y2tldFBvbGljeUNvbW1hbmQiLCAiRGVsZXRlQnVja2V0UmVwbGljYXRpb25Db21tYW5kIiwgIkRlbGV0ZUJ1Y2tldFRhZ2dpbmdDb21tYW5kIiwgIkRlbGV0ZUJ1Y2tldFdlYnNpdGVDb21tYW5kIiwgIkRlbGV0ZU9iamVjdENvbW1hbmQiLCAiRGVsZXRlT2JqZWN0c0NvbW1hbmQiLCAiRGVsZXRlT2JqZWN0VGFnZ2luZ0NvbW1hbmQiLCAiRGVsZXRlUHVibGljQWNjZXNzQmxvY2tDb21tYW5kIiwgIkdldEJ1Y2tldEFiYWNDb21tYW5kIiwgIkdldEJ1Y2tldEFjY2VsZXJhdGVDb25maWd1cmF0aW9uQ29tbWFuZCIsICJHZXRCdWNrZXRBY2xDb21tYW5kIiwgIkdldEJ1Y2tldEFuYWx5dGljc0NvbmZpZ3VyYXRpb25Db21tYW5kIiwgIkdldEJ1Y2tldENvcnNDb21tYW5kIiwgIkdldEJ1Y2tldEVuY3J5cHRpb25Db21tYW5kIiwgIkdldEJ1Y2tldEludGVsbGlnZW50VGllcmluZ0NvbmZpZ3VyYXRpb25Db21tYW5kIiwgIkdldEJ1Y2tldEludmVudG9yeUNvbmZpZ3VyYXRpb25Db21tYW5kIiwgIkdldEJ1Y2tldExpZmVjeWNsZUNvbmZpZ3VyYXRpb25Db21tYW5kIiwgIkdldEJ1Y2tldExvY2F0aW9uQ29tbWFuZCIsICJHZXRCdWNrZXRMb2dnaW5nQ29tbWFuZCIsICJHZXRCdWNrZXRNZXRhZGF0YUNvbmZpZ3VyYXRpb25Db21tYW5kIiwgIkdldEJ1Y2tldE1ldGFkYXRhVGFibGVDb25maWd1cmF0aW9uQ29tbWFuZCIsICJHZXRCdWNrZXRNZXRyaWNzQ29uZmlndXJhdGlvbkNvbW1hbmQiLCAiR2V0QnVja2V0Tm90aWZpY2F0aW9uQ29uZmlndXJhdGlvbkNvbW1hbmQiLCAiR2V0QnVja2V0T3duZXJzaGlwQ29udHJvbHNDb21tYW5kIiwgIkdldEJ1Y2tldFBvbGljeUNvbW1hbmQiLCAiR2V0QnVja2V0UG9saWN5U3RhdHVzQ29tbWFuZCIsICJHZXRCdWNrZXRSZXBsaWNhdGlvbkNvbW1hbmQiLCAiR2V0QnVja2V0UmVxdWVzdFBheW1lbnRDb21tYW5kIiwgIkdldEJ1Y2tldFRhZ2dpbmdDb21tYW5kIiwgIkdldEJ1Y2tldFZlcnNpb25pbmdDb21tYW5kIiwgIkdldEJ1Y2tldFdlYnNpdGVDb21tYW5kIiwgIkdldE9iamVjdEFjbENvbW1hbmQiLCAiR2V0T2JqZWN0QXR0cmlidXRlc0NvbW1hbmQiLCAiR2V0T2JqZWN0Q29tbWFuZCIsICJHZXRPYmplY3RMZWdhbEhvbGRDb21tYW5kIiwgIkdldE9iamVjdExvY2tDb25maWd1cmF0aW9uQ29tbWFuZCIsICJHZXRPYmplY3RSZXRlbnRpb25Db21tYW5kIiwgIkdldE9iamVjdFRhZ2dpbmdDb21tYW5kIiwgIkdldE9iamVjdFRvcnJlbnRDb21tYW5kIiwgIkdldFB1YmxpY0FjY2Vzc0Jsb2NrQ29tbWFuZCIsICJIZWFkQnVja2V0Q29tbWFuZCIsICJIZWFkT2JqZWN0Q29tbWFuZCIsICJMaXN0QnVja2V0QW5hbHl0aWNzQ29uZmlndXJhdGlvbnNDb21tYW5kIiwgIkxpc3RCdWNrZXRJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9uc0NvbW1hbmQiLCAiTGlzdEJ1Y2tldEludmVudG9yeUNvbmZpZ3VyYXRpb25zQ29tbWFuZCIsICJMaXN0QnVja2V0TWV0cmljc0NvbmZpZ3VyYXRpb25zQ29tbWFuZCIsICJMaXN0QnVja2V0c0NvbW1hbmQiLCAiTGlzdERpcmVjdG9yeUJ1Y2tldHNDb21tYW5kIiwgIkxpc3RNdWx0aXBhcnRVcGxvYWRzQ29tbWFuZCIsICJMaXN0T2JqZWN0c0NvbW1hbmQiLCAiTGlzdE9iamVjdHNWMkNvbW1hbmQiLCAiTGlzdE9iamVjdFZlcnNpb25zQ29tbWFuZCIsICJMaXN0UGFydHNDb21tYW5kIiwgIlB1dEJ1Y2tldEFiYWNDb21tYW5kIiwgIlB1dEJ1Y2tldEFjY2VsZXJhdGVDb25maWd1cmF0aW9uQ29tbWFuZCIsICJQdXRCdWNrZXRBY2xDb21tYW5kIiwgIlB1dEJ1Y2tldEFuYWx5dGljc0NvbmZpZ3VyYXRpb25Db21tYW5kIiwgIlB1dEJ1Y2tldENvcnNDb21tYW5kIiwgIlB1dEJ1Y2tldEVuY3J5cHRpb25Db21tYW5kIiwgIlB1dEJ1Y2tldEludGVsbGlnZW50VGllcmluZ0NvbmZpZ3VyYXRpb25Db21tYW5kIiwgIlB1dEJ1Y2tldEludmVudG9yeUNvbmZpZ3VyYXRpb25Db21tYW5kIiwgIlB1dEJ1Y2tldExpZmVjeWNsZUNvbmZpZ3VyYXRpb25Db21tYW5kIiwgIlB1dEJ1Y2tldExvZ2dpbmdDb21tYW5kIiwgIlB1dEJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9uQ29tbWFuZCIsICJQdXRCdWNrZXROb3RpZmljYXRpb25Db25maWd1cmF0aW9uQ29tbWFuZCIsICJQdXRCdWNrZXRPd25lcnNoaXBDb250cm9sc0NvbW1hbmQiLCAiUHV0QnVja2V0UG9saWN5Q29tbWFuZCIsICJQdXRCdWNrZXRSZXBsaWNhdGlvbkNvbW1hbmQiLCAiUHV0QnVja2V0UmVxdWVzdFBheW1lbnRDb21tYW5kIiwgIlB1dEJ1Y2tldFRhZ2dpbmdDb21tYW5kIiwgIlB1dEJ1Y2tldFZlcnNpb25pbmdDb21tYW5kIiwgIlB1dEJ1Y2tldFdlYnNpdGVDb21tYW5kIiwgIlB1dE9iamVjdEFjbENvbW1hbmQiLCAiUHV0T2JqZWN0Q29tbWFuZCIsICJQdXRPYmplY3RMZWdhbEhvbGRDb21tYW5kIiwgIlB1dE9iamVjdExvY2tDb25maWd1cmF0aW9uQ29tbWFuZCIsICJQdXRPYmplY3RSZXRlbnRpb25Db21tYW5kIiwgIlB1dE9iamVjdFRhZ2dpbmdDb21tYW5kIiwgIlB1dFB1YmxpY0FjY2Vzc0Jsb2NrQ29tbWFuZCIsICJSZW5hbWVPYmplY3RDb21tYW5kIiwgIlJlc3RvcmVPYmplY3RDb21tYW5kIiwgIlNlbGVjdE9iamVjdENvbnRlbnRDb21tYW5kIiwgIlVwZGF0ZUJ1Y2tldE1ldGFkYXRhSW52ZW50b3J5VGFibGVDb25maWd1cmF0aW9uQ29tbWFuZCIsICJVcGRhdGVCdWNrZXRNZXRhZGF0YUpvdXJuYWxUYWJsZUNvbmZpZ3VyYXRpb25Db21tYW5kIiwgIlVwbG9hZFBhcnRDb21tYW5kIiwgIlVwbG9hZFBhcnRDb3B5Q29tbWFuZCIsICJXcml0ZUdldE9iamVjdFJlc3BvbnNlQ29tbWFuZCIsICJjb21tYW5kcyIsICJTMyIsICJwYWdpbmF0ZUxpc3RCdWNrZXRzIiwgInBhZ2luYXRlTGlzdERpcmVjdG9yeUJ1Y2tldHMiLCAicGFnaW5hdGVMaXN0T2JqZWN0c1YyIiwgInBhZ2luYXRlTGlzdFBhcnRzIiwgImNoZWNrU3RhdGUkMyIsICJjbGllbnQiLCAiaW5wdXQiLCAicmVhc29uIiwgImV4Y2VwdGlvbiIsICJ3YWl0Rm9yQnVja2V0RXhpc3RzIiwgInBhcmFtcyIsICJzZXJ2aWNlRGVmYXVsdHMiLCAid2FpdFVudGlsQnVja2V0RXhpc3RzIiwgInJlc3VsdCIsICJjaGVja1N0YXRlJDIiLCAid2FpdEZvckJ1Y2tldE5vdEV4aXN0cyIsICJ3YWl0VW50aWxCdWNrZXROb3RFeGlzdHMiLCAiY2hlY2tTdGF0ZSQxIiwgIndhaXRGb3JPYmplY3RFeGlzdHMiLCAid2FpdFVudGlsT2JqZWN0RXhpc3RzIiwgImNoZWNrU3RhdGUiLCAid2FpdEZvck9iamVjdE5vdEV4aXN0cyIsICJ3YWl0VW50aWxPYmplY3ROb3RFeGlzdHMiLCAiQnVja2V0QWJhY1N0YXR1cyIsICJSZXF1ZXN0Q2hhcmdlZCIsICJSZXF1ZXN0UGF5ZXIiLCAiQnVja2V0QWNjZWxlcmF0ZVN0YXR1cyIsICJUeXBlIiwgIlBlcm1pc3Npb24iLCAiT3duZXJPdmVycmlkZSIsICJDaGVja3N1bVR5cGUiLCAiU2VydmVyU2lkZUVuY3J5cHRpb24iLCAiT2JqZWN0Q2FubmVkQUNMIiwgIkNoZWNrc3VtQWxnb3JpdGhtIiwgIk1ldGFkYXRhRGlyZWN0aXZlIiwgIk9iamVjdExvY2tMZWdhbEhvbGRTdGF0dXMiLCAiT2JqZWN0TG9ja01vZGUiLCAiU3RvcmFnZUNsYXNzIiwgIlRhZ2dpbmdEaXJlY3RpdmUiLCAiQnVja2V0Q2FubmVkQUNMIiwgIkRhdGFSZWR1bmRhbmN5IiwgIkJ1Y2tldFR5cGUiLCAiTG9jYXRpb25UeXBlIiwgIkJ1Y2tldExvY2F0aW9uQ29uc3RyYWludCIsICJPYmplY3RPd25lcnNoaXAiLCAiSW52ZW50b3J5Q29uZmlndXJhdGlvblN0YXRlIiwgIlRhYmxlU3NlQWxnb3JpdGhtIiwgIkV4cGlyYXRpb25TdGF0ZSIsICJTZXNzaW9uTW9kZSIsICJBbmFseXRpY3NTM0V4cG9ydEZpbGVGb3JtYXQiLCAiU3RvcmFnZUNsYXNzQW5hbHlzaXNTY2hlbWFWZXJzaW9uIiwgIkVuY3J5cHRpb25UeXBlIiwgIkludGVsbGlnZW50VGllcmluZ1N0YXR1cyIsICJJbnRlbGxpZ2VudFRpZXJpbmdBY2Nlc3NUaWVyIiwgIkludmVudG9yeUZvcm1hdCIsICJJbnZlbnRvcnlJbmNsdWRlZE9iamVjdFZlcnNpb25zIiwgIkludmVudG9yeU9wdGlvbmFsRmllbGQiLCAiSW52ZW50b3J5RnJlcXVlbmN5IiwgIlRyYW5zaXRpb25TdG9yYWdlQ2xhc3MiLCAiRXhwaXJhdGlvblN0YXR1cyIsICJUcmFuc2l0aW9uRGVmYXVsdE1pbmltdW1PYmplY3RTaXplIiwgIkJ1Y2tldExvZ3NQZXJtaXNzaW9uIiwgIlBhcnRpdGlvbkRhdGVTb3VyY2UiLCAiUzNUYWJsZXNCdWNrZXRUeXBlIiwgIkV2ZW50IiwgIkZpbHRlclJ1bGVOYW1lIiwgIkRlbGV0ZU1hcmtlclJlcGxpY2F0aW9uU3RhdHVzIiwgIk1ldHJpY3NTdGF0dXMiLCAiUmVwbGljYXRpb25UaW1lU3RhdHVzIiwgIkV4aXN0aW5nT2JqZWN0UmVwbGljYXRpb25TdGF0dXMiLCAiUmVwbGljYU1vZGlmaWNhdGlvbnNTdGF0dXMiLCAiU3NlS21zRW5jcnlwdGVkT2JqZWN0c1N0YXR1cyIsICJSZXBsaWNhdGlvblJ1bGVTdGF0dXMiLCAiUGF5ZXIiLCAiTUZBRGVsZXRlU3RhdHVzIiwgIkJ1Y2tldFZlcnNpb25pbmdTdGF0dXMiLCAiUHJvdG9jb2wiLCAiUmVwbGljYXRpb25TdGF0dXMiLCAiQ2hlY2tzdW1Nb2RlIiwgIk9iamVjdEF0dHJpYnV0ZXMiLCAiT2JqZWN0TG9ja0VuYWJsZWQiLCAiT2JqZWN0TG9ja1JldGVudGlvbk1vZGUiLCAiQXJjaGl2ZVN0YXR1cyIsICJFbmNvZGluZ1R5cGUiLCAiT2JqZWN0U3RvcmFnZUNsYXNzIiwgIk9wdGlvbmFsT2JqZWN0QXR0cmlidXRlcyIsICJPYmplY3RWZXJzaW9uU3RvcmFnZUNsYXNzIiwgIk1GQURlbGV0ZSIsICJUaWVyIiwgIkV4cHJlc3Npb25UeXBlIiwgIkNvbXByZXNzaW9uVHlwZSIsICJGaWxlSGVhZGVySW5mbyIsICJKU09OVHlwZSIsICJRdW90ZUZpZWxkcyIsICJSZXN0b3JlUmVxdWVzdFR5cGUiLCAicmVxdWlyZV9odHRwQXV0aFNjaGVtZVByb3ZpZGVyIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJjb3JlXzEiLCAidXRpbF9taWRkbGV3YXJlXzEiLCAiZGVmYXVsdENsb3VkV2F0Y2hMb2dzSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIiLCAiY29uZmlnIiwgImNvbnRleHQiLCAiaW5wdXQiLCAiY3JlYXRlQXdzQXV0aFNpZ3Y0SHR0cEF1dGhPcHRpb24iLCAiYXV0aFBhcmFtZXRlcnMiLCAiZGVmYXVsdENsb3VkV2F0Y2hMb2dzSHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJvcHRpb25zIiwgInJlc29sdmVIdHRwQXV0aFNjaGVtZUNvbmZpZyIsICJjb25maWdfMCIsICJyZXF1aXJlX3BhY2thZ2UiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJyZXF1aXJlX3J1bGVzZXQiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgInUiLCAidiIsICJ3IiwgIngiLCAiYSIsICJiIiwgImMiLCAiZCIsICJlIiwgImYiLCAiZyIsICJoIiwgImkiLCAiaiIsICJrIiwgImwiLCAibSIsICJuIiwgIm8iLCAicCIsICJxIiwgInIiLCAicyIsICJ0IiwgIl9kYXRhIiwgInJlcXVpcmVfZW5kcG9pbnRSZXNvbHZlciIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAidXRpbF9lbmRwb2ludHNfMSIsICJ1dGlsX2VuZHBvaW50c18yIiwgInJ1bGVzZXRfMSIsICJjYWNoZSIsICJkZWZhdWx0RW5kcG9pbnRSZXNvbHZlciIsICJlbmRwb2ludFBhcmFtcyIsICJjb250ZXh0IiwgInJlcXVpcmVfcnVudGltZUNvbmZpZ19zaGFyZWQiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgImNvcmVfMSIsICJwcm90b2NvbHNfMSIsICJzbWl0aHlfY2xpZW50XzEiLCAidXJsX3BhcnNlcl8xIiwgInV0aWxfYmFzZTY0XzEiLCAidXRpbF91dGY4XzEiLCAiaHR0cEF1dGhTY2hlbWVQcm92aWRlcl8xIiwgImVuZHBvaW50UmVzb2x2ZXJfMSIsICJnZXRSdW50aW1lQ29uZmlnIiwgImNvbmZpZyIsICJpcGMiLCAicmVxdWlyZV9ydW50aW1lQ29uZmlnIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJ0c2xpYl8xIiwgInBhY2thZ2VfanNvbl8xIiwgImNvcmVfMSIsICJjcmVkZW50aWFsX3Byb3ZpZGVyX25vZGVfMSIsICJ1dGlsX3VzZXJfYWdlbnRfbm9kZV8xIiwgImNvbmZpZ19yZXNvbHZlcl8xIiwgImV2ZW50c3RyZWFtX3NlcmRlX25vZGVfMSIsICJoYXNoX25vZGVfMSIsICJtaWRkbGV3YXJlX3JldHJ5XzEiLCAibm9kZV9jb25maWdfcHJvdmlkZXJfMSIsICJub2RlX2h0dHBfaGFuZGxlcl8xIiwgInNtaXRoeV9jbGllbnRfMSIsICJ1dGlsX2JvZHlfbGVuZ3RoX25vZGVfMSIsICJ1dGlsX2RlZmF1bHRzX21vZGVfbm9kZV8xIiwgInV0aWxfcmV0cnlfMSIsICJydW50aW1lQ29uZmlnX3NoYXJlZF8xIiwgImdldFJ1bnRpbWVDb25maWciLCAiY29uZmlnIiwgImRlZmF1bHRzTW9kZSIsICJkZWZhdWx0Q29uZmlnUHJvdmlkZXIiLCAiY2xpZW50U2hhcmVkVmFsdWVzIiwgImxvYWRlckNvbmZpZyIsICJyZXF1aXJlX2Rpc3RfY2pzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJtaWRkbGV3YXJlSG9zdEhlYWRlciIsICJtaWRkbGV3YXJlTG9nZ2VyIiwgIm1pZGRsZXdhcmVSZWN1cnNpb25EZXRlY3Rpb24iLCAibWlkZGxld2FyZVVzZXJBZ2VudCIsICJjb25maWdSZXNvbHZlciIsICJjb3JlIiwgInNjaGVtYSIsICJldmVudHN0cmVhbVNlcmRlQ29uZmlnUmVzb2x2ZXIiLCAibWlkZGxld2FyZUNvbnRlbnRMZW5ndGgiLCAibWlkZGxld2FyZUVuZHBvaW50IiwgIm1pZGRsZXdhcmVSZXRyeSIsICJzbWl0aHlDbGllbnQiLCAiaHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJydW50aW1lQ29uZmlnIiwgInJlZ2lvbkNvbmZpZ1Jlc29sdmVyIiwgInByb3RvY29sSHR0cCIsICJyZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzIiwgIm9wdGlvbnMiLCAiY29tbW9uUGFyYW1zIiwgImdldEh0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiIsICJfaHR0cEF1dGhTY2hlbWVzIiwgIl9odHRwQXV0aFNjaGVtZVByb3ZpZGVyIiwgIl9jcmVkZW50aWFscyIsICJodHRwQXV0aFNjaGVtZSIsICJpbmRleCIsICJzY2hlbWUiLCAiY3JlZGVudGlhbHMiLCAicmVzb2x2ZUh0dHBBdXRoUnVudGltZUNvbmZpZyIsICJjb25maWciLCAicmVzb2x2ZVJ1bnRpbWVFeHRlbnNpb25zIiwgImV4dGVuc2lvbnMiLCAiZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiIsICJleHRlbnNpb24iLCAiQ2xvdWRXYXRjaExvZ3NDbGllbnQiLCAiY29uZmlndXJhdGlvbiIsICJfY29uZmlnXzAiLCAiX2NvbmZpZ18xIiwgIl9jb25maWdfMiIsICJfY29uZmlnXzMiLCAiX2NvbmZpZ180IiwgIl9jb25maWdfNSIsICJfY29uZmlnXzYiLCAiX2NvbmZpZ183IiwgIl9jb25maWdfOCIsICJfY29uZmlnXzkiLCAiQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlRXhjZXB0aW9uJDEiLCAiQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlRXhjZXB0aW9uIiwgIkFjY2Vzc0RlbmllZEV4Y2VwdGlvbiQxIiwgIkFjY2Vzc0RlbmllZEV4Y2VwdGlvbiIsICJvcHRzIiwgIkludmFsaWRQYXJhbWV0ZXJFeGNlcHRpb24kMSIsICJJbnZhbGlkUGFyYW1ldGVyRXhjZXB0aW9uIiwgIk9wZXJhdGlvbkFib3J0ZWRFeGNlcHRpb24kMSIsICJPcGVyYXRpb25BYm9ydGVkRXhjZXB0aW9uIiwgIlJlc291cmNlTm90Rm91bmRFeGNlcHRpb24kMSIsICJSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uIiwgIlNlcnZpY2VVbmF2YWlsYWJsZUV4Y2VwdGlvbiQxIiwgIlNlcnZpY2VVbmF2YWlsYWJsZUV4Y2VwdGlvbiIsICJJbnRlcm5hbFNlcnZlckV4Y2VwdGlvbiQxIiwgIkludGVybmFsU2VydmVyRXhjZXB0aW9uIiwgIlRocm90dGxpbmdFeGNlcHRpb24kMSIsICJUaHJvdHRsaW5nRXhjZXB0aW9uIiwgIlZhbGlkYXRpb25FeGNlcHRpb24kMSIsICJWYWxpZGF0aW9uRXhjZXB0aW9uIiwgIkludmFsaWRPcGVyYXRpb25FeGNlcHRpb24kMSIsICJJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uIiwgIkNvbmZsaWN0RXhjZXB0aW9uJDEiLCAiQ29uZmxpY3RFeGNlcHRpb24iLCAiU2VydmljZVF1b3RhRXhjZWVkZWRFeGNlcHRpb24kMSIsICJTZXJ2aWNlUXVvdGFFeGNlZWRlZEV4Y2VwdGlvbiIsICJMaW1pdEV4Y2VlZGVkRXhjZXB0aW9uJDEiLCAiTGltaXRFeGNlZWRlZEV4Y2VwdGlvbiIsICJSZXNvdXJjZUFscmVhZHlFeGlzdHNFeGNlcHRpb24kMSIsICJSZXNvdXJjZUFscmVhZHlFeGlzdHNFeGNlcHRpb24iLCAiRGF0YUFscmVhZHlBY2NlcHRlZEV4Y2VwdGlvbiQxIiwgIkRhdGFBbHJlYWR5QWNjZXB0ZWRFeGNlcHRpb24iLCAiSW50ZXJuYWxTdHJlYW1pbmdFeGNlcHRpb24kMSIsICJJbnRlcm5hbFN0cmVhbWluZ0V4Y2VwdGlvbiIsICJJbnZhbGlkU2VxdWVuY2VUb2tlbkV4Y2VwdGlvbiQxIiwgIkludmFsaWRTZXF1ZW5jZVRva2VuRXhjZXB0aW9uIiwgIlVucmVjb2duaXplZENsaWVudEV4Y2VwdGlvbiQxIiwgIlVucmVjb2duaXplZENsaWVudEV4Y2VwdGlvbiIsICJTZXNzaW9uU3RyZWFtaW5nRXhjZXB0aW9uJDEiLCAiU2Vzc2lvblN0cmVhbWluZ0V4Y2VwdGlvbiIsICJTZXNzaW9uVGltZW91dEV4Y2VwdGlvbiQxIiwgIlNlc3Npb25UaW1lb3V0RXhjZXB0aW9uIiwgIk1hbGZvcm1lZFF1ZXJ5RXhjZXB0aW9uJDEiLCAiTWFsZm9ybWVkUXVlcnlFeGNlcHRpb24iLCAiVG9vTWFueVRhZ3NFeGNlcHRpb24kMSIsICJUb29NYW55VGFnc0V4Y2VwdGlvbiIsICJfQSIsICJfQUQiLCAiX0FERSIsICJfQURuIiwgIl9BRiIsICJfQUsiLCAiX0FLRSIsICJfQUtFZCIsICJfQUtLIiwgIl9BS0tSIiwgIl9BTEdTIiwgIl9BTEdTZyIsICJfQVAiLCAiX0FQYyIsICJfQVNUU1RJIiwgIl9BU1RTVElSIiwgIl9BU1RTVElScyIsICJfQW4iLCAiX0NEIiwgIl9DRFIiLCAiX0NEUnIiLCAiX0NFIiwgIl9DRVQiLCAiX0NFVFIiLCAiX0NFVFJyIiwgIl9DRVRScmUiLCAiX0NFVHIiLCAiX0NJVCIsICJfQ0lUUiIsICJfQ0lUUmEiLCAiX0NJVFJyIiwgIl9DSVRScmUiLCAiX0NJVHIiLCAiX0NMQUQiLCAiX0NMQURSIiwgIl9DTEFEUnIiLCAiX0NMRyIsICJfQ0xHUiIsICJfQ0xTIiwgIl9DTFNSIiwgIl9DU1EiLCAiX0NTUVIiLCAiX0NTUVJyIiwgIl9DU1YiLCAiX0NUIiwgIl9DVERDViIsICJfQ1RvIiwgIl9DViIsICJfQ1ZFIiwgIl9DVkVvIiwgIl9EIiwgIl9EQUFFIiwgIl9EQVAiLCAiX0RBUFIiLCAiX0RBUFJlIiwgIl9EQVBSZXMiLCAiX0RBUGUiLCAiX0RDIiwgIl9EQ1QiLCAiX0RDVFIiLCAiX0RDVFJlIiwgIl9ERCIsICJfRERDIiwgIl9EREQiLCAiX0RERFAiLCAiX0RERFBSIiwgIl9ERERSIiwgIl9ERERSZSIsICJfREREUmVzIiwgIl9ERERlIiwgIl9ERFBQIiwgIl9ERFBQUiIsICJfRERSIiwgIl9ERFJlIiwgIl9ERFJlcyIsICJfRERSZXNjIiwgIl9ERFJlc2NyIiwgIl9ERFJlc2NyaSIsICJfRERTIiwgIl9ERFNSIiwgIl9ERFNSZSIsICJfRERTUmVzIiwgIl9ERFNlIiwgIl9ERGUiLCAiX0REZWwiLCAiX0REZWxlIiwgIl9ERGVzIiwgIl9ERGVzYyIsICJfREVUIiwgIl9ERVRSIiwgIl9ERVRSZSIsICJfREZJIiwgIl9ERklSIiwgIl9ERklSZSIsICJfREkiLCAiX0RJUCIsICJfRElQUiIsICJfRElQUmUiLCAiX0RJUFJlcyIsICJfRElQUmVzYyIsICJfRElQZSIsICJfRElSIiwgIl9ESVJlIiwgIl9ESVQiLCAiX0RJVEIiLCAiX0RJVEJSIiwgIl9ESVRCUmUiLCAiX0RJVFIiLCAiX0RJVFJlIiwgIl9ESyIsICJfREtLIiwgIl9ES0tSIiwgIl9ETEFEIiwgIl9ETEFEUiIsICJfRExHIiwgIl9ETEdSIiwgIl9ETEdSZSIsICJfRExHUmVzIiwgIl9ETEdlIiwgIl9ETFMiLCAiX0RMU1IiLCAiX0RMU1JlIiwgIl9ETFNSZXMiLCAiX0RMU2UiLCAiX0RNRiIsICJfRE1GUiIsICJfRE1GUmUiLCAiX0RNRlJlcyIsICJfRE1GZSIsICJfRE5QIiwgIl9EUSIsICJfRFFEIiwgIl9EUURSIiwgIl9EUURSZSIsICJfRFFEUmVzIiwgIl9EUURSZXNjIiwgIl9EUURlIiwgIl9EUVIiLCAiX0RRUmUiLCAiX0RSUCIsICJfRFJQUiIsICJfRFJQUmUiLCAiX0RSUFJlcyIsICJfRFJQUmVzYyIsICJfRFJQZSIsICJfRFJQZXMiLCAiX0RTIiwgIl9EU0YiLCAiX0RTRlIiLCAiX0RTRlJlIiwgIl9EU0ZSZXMiLCAiX0RTRlNUSSIsICJfRFNGU1RJUiIsICJfRFNGU1RJUmkiLCAiX0RTRmEiLCAiX0RTRmUiLCAiX0RTRmVzIiwgIl9EU1EiLCAiX0RTUVIiLCAiX0RTUVJlIiwgIl9EU2UiLCAiX0RTZWwiLCAiX0RUIiwgIl9EVEMiLCAiX0RUUiIsICJfRGUiLCAiX0RlbCIsICJfRGVzIiwgIl9FIiwgIl9FVCIsICJfRVRFSSIsICJfRVRTIiwgIl9FVHgiLCAiX0ZEIiwgIl9GSSIsICJfRklpIiwgIl9GTEUiLCAiX0ZMRVIiLCAiX0ZMRVJpIiwgIl9GTEVpIiwgIl9GTEVpbCIsICJfRyIsICJfR0QiLCAiX0dERCIsICJfR0REUCIsICJfR0REUFIiLCAiX0dERFBSZSIsICJfR0REUiIsICJfR0REUmUiLCAiX0dEUFAiLCAiX0dEUFBSIiwgIl9HRFBQUmUiLCAiX0dEUiIsICJfR0RSZSIsICJfR0RTIiwgIl9HRFNSIiwgIl9HRFNSZSIsICJfR0kiLCAiX0dJUiIsICJfR0lSZSIsICJfR0llIiwgIl9HSXIiLCAiX0dMQUQiLCAiX0dMQURSIiwgIl9HTEFEUmUiLCAiX0dMRSIsICJfR0xFUiIsICJfR0xFUmUiLCAiX0dMRiIsICJfR0xGUiIsICJfR0xGUmUiLCAiX0dMR0YiLCAiX0dMR0ZSIiwgIl9HTEdGUmUiLCAiX0dMTyIsICJfR0xPUiIsICJfR0xPUlMiLCAiX0dMT1JlIiwgIl9HTFIiLCAiX0dMUlIiLCAiX0dMUlJlIiwgIl9HUVIiLCAiX0dRUlIiLCAiX0dRUlJlIiwgIl9HU1EiLCAiX0dTUUgiLCAiX0dTUUhSIiwgIl9HU1FIUmUiLCAiX0dTUVIiLCAiX0dTUVJlIiwgIl9HVCIsICJfR1RSIiwgIl9HVFJlIiwgIl9JIiwgIl9JQiIsICJfSUJMIiwgIl9JRCIsICJfSUYiLCAiX0lMIiwgIl9JTEUiLCAiX0lMRW4iLCAiX0lPRSIsICJfSVAiLCAiX0lQRSIsICJfSVBuIiwgIl9JUyIsICJfSVNFIiwgIl9JU0VuIiwgIl9JU1RFIiwgIl9JU24iLCAiX0lTbnQiLCAiX0xBIiwgIl9MQUxHUyIsICJfTEFMR1NSIiwgIl9MQUxHU1JpIiwgIl9MQVIiLCAiX0xBUmkiLCAiX0xDUyIsICJfTEUiLCAiX0xFRSIsICJfTEZMIiwgIl9MRkxJIiwgIl9MRlQiLCAiX0xHIiwgIl9MR0YiLCAiX0xHRkwiLCAiX0xHUyIsICJfTEdTbyIsICJfTEdvIiwgIl9MSSIsICJfTElSIiwgIl9MSVJpIiwgIl9MTEFEIiwgIl9MTEFEUiIsICJfTExBRFJpIiwgIl9MTEciLCAiX0xMR0ZRIiwgIl9MTEdGUVIiLCAiX0xMR0ZRUmkiLCAiX0xMR1IiLCAiX0xMR1JpIiwgIl9MUyIsICJfTFNGU1RJIiwgIl9MU0ZTVElSIiwgIl9MU0ZTVElSaSIsICJfTFNRIiwgIl9MU1FSIiwgIl9MU1FSaSIsICJfTFNvIiwgIl9MU29nIiwgIl9MVEZSIiwgIl9MVEZSUiIsICJfTFRGUlJpIiwgIl9MVExHIiwgIl9MVExHUiIsICJfTFRMR1JpIiwgIl9MVE0iLCAiX0xUU0xFIiwgIl9MVFNNIiwgIl9MVFNSIiwgIl9MVFNTIiwgIl9MVFNVIiwgIl9NRiIsICJfTUZNIiwgIl9NRk1SIiwgIl9NRmUiLCAiX01LIiwgIl9NS0UiLCAiX01LRW8iLCAiX01RRSIsICJfTVQiLCAiX01UZSIsICJfT0FFIiwgIl9PTEUiLCAiX09MRXUiLCAiX09TQSIsICJfT1NDIiwgIl9PU0RBUCIsICJfT1NEUyIsICJfT1NFUCIsICJfT1NJRCIsICJfT1NMUCIsICJfT1NOUCIsICJfT1NSQyIsICJfT1NSUyIsICJfT1NXIiwgIl9QIiwgIl9QQVAiLCAiX1BBUFIiLCAiX1BBUFJ1IiwgIl9QQyIsICJfUEQiLCAiX1BERCIsICJfUEREUCIsICJfUEREUFIiLCAiX1BERFBSdSIsICJfUEREUiIsICJfUEREUnUiLCAiX1BEUCIsICJfUERQUCIsICJfUERQUFIiLCAiX1BEUFBSdSIsICJfUERQUiIsICJfUERSIiwgIl9QRFJ1IiwgIl9QRFMiLCAiX1BEU1IiLCAiX1BEU1J1IiwgIl9QSSIsICJfUElQIiwgIl9QSVBSIiwgIl9QSVBSdSIsICJfUElSIiwgIl9QSVJ1IiwgIl9QSlNPTiIsICJfUEtWIiwgIl9QTEUiLCAiX1BMRVIiLCAiX1BMRVJ1IiwgIl9QTEdEUCIsICJfUExHRFBSIiwgIl9QTUYiLCAiX1BNRlIiLCAiX1BQIiwgIl9QUUQiLCAiX1BRRFIiLCAiX1BRRFJ1IiwgIl9QUiIsICJfUFJQIiwgIl9QUlBSIiwgIl9QUlBSdSIsICJfUFJQUnV0IiwgIl9QUlB1IiwgIl9QU0YiLCAiX1BTRlIiLCAiX1BUIiwgIl9QVE9DU0YiLCAiX1BUUiIsICJfUFRhIiwgIl9QVHUiLCAiX1BWUEMiLCAiX1BXQUYiLCAiX1ByIiwgIl9Qcm8iLCAiX1FDRSIsICJfUUNFTCIsICJfUUQiLCAiX1FETCIsICJfUUkiLCAiX1FJTCIsICJfUVIiLCAiX1FTIiwgIl9SQUVFIiwgIl9SQyIsICJfUkVJIiwgIl9SRiIsICJfUkZlIiwgIl9SSyIsICJfUktFIiwgIl9SS0VlIiwgIl9STEVJIiwgIl9STkZFIiwgIl9SUCIsICJfUlBlIiwgIl9SUiIsICJfU0MiLCAiX1NEQyIsICJfU0YiLCAiX1NGdSIsICJfU0xTIiwgIl9TTFNlIiwgIl9TTFQiLCAiX1NMVFIiLCAiX1NMVFJTIiwgIl9TTFRSdCIsICJfU1AiLCAiX1NRIiwgIl9TUUQiLCAiX1NRREwiLCAiX1NRRUUiLCAiX1NRUiIsICJfU1FSdCIsICJfU1FSdG8iLCAiX1NRUnRvcCIsICJfU1FTIiwgIl9TUVNMIiwgIl9TUXQiLCAiX1NTIiwgIl9TU0UiLCAiX1NTRXAiLCAiX1NTRXBsIiwgIl9TU0V1IiwgIl9TU0V1YiIsICJfU1N1IiwgIl9TVEUiLCAiX1NUSVMiLCAiX1NUSVNhIiwgIl9TVUUiLCAiX1RDIiwgIl9UQ0UiLCAiX1RDRXkiLCAiX1RFIiwgIl9USFIiLCAiX1RIUkwiLCAiX1RMIiwgIl9UTEciLCAiX1RMR1IiLCAiX1RMUiIsICJfVE1GIiwgIl9UTUZSIiwgIl9UTUZSZSIsICJfVE1URSIsICJfVFIiLCAiX1RSUiIsICJfVFMiLCAiX1RUIiwgIl9UVFIiLCAiX1RUUmUiLCAiX1VBIiwgIl9VQVIiLCAiX1VDRSIsICJfVUNTIiwgIl9VREMiLCAiX1VEQ1IiLCAiX1VEQ1JwIiwgIl9VTEFEIiwgIl9VTEFEUiIsICJfVUxHIiwgIl9VTEdSIiwgIl9VUiIsICJfVVJSIiwgIl9VU1EiLCAiX1VTUVIiLCAiX1VTUVJwIiwgIl9WRSIsICJfYSIsICJfYUEiLCAiX2FBRkFWTERGUiIsICJfYUQiLCAiX2FEQSIsICJfYURTIiwgIl9hRSIsICJfYUYiLCAiX2FGRCIsICJfYUkiLCAiX2FJYyIsICJfYUluIiwgIl9hSXAiLCAiX2FLIiwgIl9hTEdTIiwgIl9hT0YiLCAiX2FPVEwiLCAiX2FQIiwgIl9hUGMiLCAiX2FQY2MiLCAiX2FTUEYiLCAiX2FWVCIsICJfYW4iLCAiX2FwIiwgIl9hciIsICJfYXQiLCAiX2IiLCAiX2JJIiwgIl9iSVMiLCAiX2JJeSIsICJfYlMiLCAiX2MiLCAiX2NBIiwgIl9jRSIsICJfY1QiLCAiX2NUUyIsICJfY1RTciIsICJfY1RsIiwgIl9jVG8iLCAiX2NUb20iLCAiX2NUciIsICJfY1YiLCAiX2NvIiwgIl9jb2QiLCAiX2NvbCIsICJfY3MiLCAiX2QiLCAiX2RBIiwgIl9kQyIsICJfZEQiLCAiX2REQSIsICJfZERDIiwgIl9kRENWIiwgIl9kRE4iLCAiX2REUCIsICJfZERUIiwgIl9kRFRlIiwgIl9kRGUiLCAiX2RJIiwgIl9kSyIsICJfZE4iLCAiX2ROZSIsICJfZFAiLCAiX2RQRSIsICJfZFBTIiwgIl9kUkEiLCAiX2RTIiwgIl9kU04iLCAiX2RTTmEiLCAiX2RTUkEiLCAiX2RTVCIsICJfZFNhIiwgIl9kU2UiLCAiX2RTZWwiLCAiX2RUIiwgIl9kVEMiLCAiX2RUUCIsICJfZFYiLCAiX2RWUCIsICJfZGEiLCAiX2RlIiwgIl9kZWwiLCAiX2RlbGkiLCAiX2RlcyIsICJfZGVzYyIsICJfZGVzdCIsICJfZGkiLCAiX2RpcyIsICJfZSIsICJfZUJTIiwgIl9lQ08iLCAiX2VFVCIsICJfZUYiLCAiX2VIQ1AiLCAiX2VJIiwgIl9lSXYiLCAiX2VLIiwgIl9lTEVFSSIsICJfZU0iLCAiX2VNdiIsICJfZU4iLCAiX2VQIiwgIl9lUkEiLCAiX2VSSSIsICJfZVJTIiwgIl9lUyIsICJfZVNGIiwgIl9lU0ZEIiwgIl9lU1QiLCAiX2VTdiIsICJfZVN4IiwgIl9lVCIsICJfZVRuIiwgIl9lVHIiLCAiX2VWIiwgIl9lbCIsICJfZW4iLCAiX2VuYSIsICJfZW5kIiwgIl9lbnQiLCAiX2VudSIsICJfZXYiLCAiX2YiLCAiX2ZEIiwgIl9mRSIsICJfZkVUIiwgIl9mRVRpIiwgIl9mSSIsICJfZklOIiwgIl9mSU5pIiwgIl9mTEdBIiwgIl9mTiIsICJfZk5QIiwgIl9mUCIsICJfZlMiLCAiX2ZTQyIsICJfZlNpIiwgIl9mVSIsICJfZmkiLCAiX2ZpZSIsICJfZmwiLCAiX2ZvIiwgIl9nIiwgIl9nQiIsICJfZ0kiLCAiX2giLCAiX2hFIiwgIl9pIiwgIl9pQSIsICJfaUIiLCAiX2lEIiwgIl9pREEiLCAiX2lEcyIsICJfaUYiLCAiX2lJIiwgIl9pTEEiLCAiX2lOIiwgIl9pTlAiLCAiX2lQIiwgIl9pUExTIiwgIl9pUG4iLCAiX2lQbmQiLCAiX2lSQSIsICJfaVMiLCAiX2lTQSIsICJfaVNtIiwgIl9pU24iLCAiX2lTbnQiLCAiX2lUIiwgIl9pVE4iLCAiX2lUbiIsICJfaWQiLCAiX2ltIiwgIl9pbiIsICJfayIsICJfa0EiLCAiX2tLQSIsICJfa0tJIiwgIl9rUCIsICJfa1ZEIiwgIl9sIiwgIl9sQ1MiLCAiX2xFIiwgIl9sRUZQIiwgIl9sRU0iLCAiX2xFUyIsICJfbEVUIiwgIl9sRVRhIiwgIl9sRiIsICJfbEZOIiwgIl9sRlQiLCAiX2xHIiwgIl9sR0EiLCAiX2xHQUwiLCAiX2xHQyIsICJfbEdDbyIsICJfbEdGIiwgIl9sR0kiLCAiX2xHSW8iLCAiX2xHTiIsICJfbEdOUCIsICJfbEdOUG8iLCAiX2xHTm8iLCAiX2xHUyIsICJfbElUIiwgIl9sTSIsICJfbE1UIiwgIl9sTVRTIiwgIl9sT1AiLCAiX2xQIiwgIl9sUiIsICJfbFJQIiwgIl9sUyIsICJfbFNOIiwgIl9sU05QIiwgIl9sU05QbyIsICJfbFNObyIsICJfbFNUIiwgIl9sU28iLCAiX2xTb2ciLCAiX2xUIiwgIl9sVE0iLCAiX2xUVCIsICJfbFRvIiwgIl9sVVQiLCAiX2xVVGEiLCAiX2xpIiwgIl9sbyIsICJfbSIsICJfbUYiLCAiX21GQyIsICJfbUsiLCAiX21OIiwgIl9tTmUiLCAiX21QIiwgIl9tUiIsICJfbVQiLCAiX21WIiwgIl9tVmEiLCAiX21hIiwgIl9tYW4iLCAiX21hdCIsICJfbiIsICJfbkJUIiwgIl9uRlQiLCAiX25NViIsICJfblAiLCAiX25TVCIsICJfblQiLCAiX29CIiwgIl9vRiIsICJfb0lFIiwgIl9vU0lEIiwgIl9vU1JDIiwgIl9vViIsICJfcCIsICJfcEMiLCAiX3BEIiwgIl9wSSIsICJfcElyIiwgIl9wSlNPTiIsICJfcEtWIiwgIl9wTiIsICJfcFAiLCAiX3BSIiwgIl9wUmEiLCAiX3BTIiwgIl9wU28iLCAiX3BUIiwgIl9wVE9DU0YiLCAiX3BUYSIsICJfcFZQQyIsICJfcFdBRiIsICJfcGUiLCAiX3BvIiwgIl9xIiwgIl9xQyIsICJfcUNFIiwgIl9xRCIsICJfcURJIiwgIl9xRE5QIiwgIl9xSSIsICJfcUwiLCAiX3FTIiwgIl9yIiwgIl9yQSIsICJfckFlIiwgIl9yQW8iLCAiX3JDIiwgIl9yRCIsICJfckVJIiwgIl9yRiIsICJfckkiLCAiX3JJRCIsICJfckllIiwgIl9ySWV2IiwgIl9ySyIsICJfckxFSSIsICJfck0iLCAiX3JOIiwgIl9yUCIsICJfclBlIiwgIl9yUyIsICJfclNlIiwgIl9yVCIsICJfclRlIiwgIl9yVGVuIiwgIl9zIiwgIl9zQiIsICJfc0MiLCAiX3NDTyIsICJfc0NlIiwgIl9zQ28iLCAiX3NDdCIsICJfc0QiLCAiX3NEQyIsICJfc0UiLCAiX3NFVCIsICJfc0VUdCIsICJfc0YiLCAiX3NGSCIsICJfc0kiLCAiX3NMUyIsICJfc00iLCAiX3NNdCIsICJfc1AiLCAiX3NQdSIsICJfc1EiLCAiX3NRQSIsICJfc1IiLCAiX3NSdCIsICJfc1MiLCAiX3NTVCIsICJfc1NlIiwgIl9zU3AiLCAiX3NTdSIsICJfc1QiLCAiX3NUTyIsICJfc1RlIiwgIl9zVHQiLCAiX3NUdSIsICJfc1UiLCAiX3NVZSIsICJfc1V1IiwgIl9zYSIsICJfc2UiLCAiX3NlciIsICJfc20iLCAiX3NvIiwgIl9zb3UiLCAiX3N0IiwgIl9zdGEiLCAiX3N0YXQiLCAiX3N0ciIsICJfc3UiLCAiX3N1YyIsICJfdCIsICJfdEEiLCAiX3RDIiwgIl90Q3kiLCAiX3RFTSIsICJfdEYiLCAiX3RIIiwgIl90SSIsICJfdEsiLCAiX3RMIiwgIl90TiIsICJfdE5MRVNJIiwgIl90T0xFRUkiLCAiX3RTIiwgIl90U3IiLCAiX3RUIiwgIl90VHIiLCAiX3RhIiwgIl90aSIsICJfdGltIiwgIl90aW1lIiwgIl90byIsICJfdHkiLCAiX3UiLCAiX3VDUyIsICJfdVNUIiwgIl91biIsICJfdiIsICJfdksiLCAiX3ciLCAiX3dJIiwgIl93SyIsICJuMCIsICJBY2NvdW50UG9saWN5IiwgIkFkZEtleUVudHJ5IiwgIkFkZEtleXMiLCAiQWRkS2V5RW50cmllcyIsICJBZ2dyZWdhdGVMb2dHcm91cFN1bW1hcnkiLCAiR3JvdXBpbmdJZGVudGlmaWVycyIsICJBbm9tYWx5IiwgIkxvZ1NhbXBsZXMiLCAiUGF0dGVyblRva2VucyIsICJBbm9tYWx5RGV0ZWN0b3IiLCAiQXNzb2NpYXRlS21zS2V5UmVxdWVzdCIsICJBc3NvY2lhdGVTb3VyY2VUb1MzVGFibGVJbnRlZ3JhdGlvblJlcXVlc3QiLCAiRGF0YVNvdXJjZSIsICJBc3NvY2lhdGVTb3VyY2VUb1MzVGFibGVJbnRlZ3JhdGlvblJlc3BvbnNlIiwgIkNhbmNlbEV4cG9ydFRhc2tSZXF1ZXN0IiwgIkNhbmNlbEltcG9ydFRhc2tSZXF1ZXN0IiwgIkNhbmNlbEltcG9ydFRhc2tSZXNwb25zZSIsICJJbXBvcnRTdGF0aXN0aWNzIiwgIkNvbmZpZ3VyYXRpb25UZW1wbGF0ZSIsICJDb25maWd1cmF0aW9uVGVtcGxhdGVEZWxpdmVyeUNvbmZpZ1ZhbHVlcyIsICJBbGxvd2VkRmllbGRzIiwgIlMzRGVsaXZlcnlDb25maWd1cmF0aW9uIiwgIkNvcHlWYWx1ZSIsICJDb3B5VmFsdWVFbnRyaWVzIiwgIkNvcHlWYWx1ZUVudHJ5IiwgIkNyZWF0ZURlbGl2ZXJ5UmVxdWVzdCIsICJDcmVhdGVEZWxpdmVyeVJlc3BvbnNlIiwgIkRlbGl2ZXJ5IiwgIkNyZWF0ZUV4cG9ydFRhc2tSZXF1ZXN0IiwgIkNyZWF0ZUV4cG9ydFRhc2tSZXNwb25zZSIsICJDcmVhdGVJbXBvcnRUYXNrUmVxdWVzdCIsICJJbXBvcnRGaWx0ZXIiLCAiQ3JlYXRlSW1wb3J0VGFza1Jlc3BvbnNlIiwgIkNyZWF0ZUxvZ0Fub21hbHlEZXRlY3RvclJlcXVlc3QiLCAiQ3JlYXRlTG9nQW5vbWFseURldGVjdG9yUmVzcG9uc2UiLCAiQ3JlYXRlTG9nR3JvdXBSZXF1ZXN0IiwgIkNyZWF0ZUxvZ1N0cmVhbVJlcXVlc3QiLCAiQ3JlYXRlU2NoZWR1bGVkUXVlcnlSZXF1ZXN0IiwgIkRlc3RpbmF0aW9uQ29uZmlndXJhdGlvbiIsICJDcmVhdGVTY2hlZHVsZWRRdWVyeVJlc3BvbnNlIiwgIkNTViIsICJEYXRhU291cmNlRmlsdGVyIiwgIkRhdGVUaW1lQ29udmVydGVyIiwgIkRlbGV0ZUFjY291bnRQb2xpY3lSZXF1ZXN0IiwgIkRlbGV0ZURhdGFQcm90ZWN0aW9uUG9saWN5UmVxdWVzdCIsICJEZWxldGVEZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5UmVxdWVzdCIsICJEZWxldGVEZWxpdmVyeURlc3RpbmF0aW9uUmVxdWVzdCIsICJEZWxldGVEZWxpdmVyeVJlcXVlc3QiLCAiRGVsZXRlRGVsaXZlcnlTb3VyY2VSZXF1ZXN0IiwgIkRlbGV0ZURlc3RpbmF0aW9uUmVxdWVzdCIsICJEZWxldGVJbmRleFBvbGljeVJlcXVlc3QiLCAiRGVsZXRlSW5kZXhQb2xpY3lSZXNwb25zZSIsICJEZWxldGVJbnRlZ3JhdGlvblJlcXVlc3QiLCAiRGVsZXRlSW50ZWdyYXRpb25SZXNwb25zZSIsICJEZWxldGVLZXlzIiwgIkRlbGV0ZUxvZ0Fub21hbHlEZXRlY3RvclJlcXVlc3QiLCAiRGVsZXRlTG9nR3JvdXBSZXF1ZXN0IiwgIkRlbGV0ZUxvZ1N0cmVhbVJlcXVlc3QiLCAiRGVsZXRlTWV0cmljRmlsdGVyUmVxdWVzdCIsICJEZWxldGVRdWVyeURlZmluaXRpb25SZXF1ZXN0IiwgIkRlbGV0ZVF1ZXJ5RGVmaW5pdGlvblJlc3BvbnNlIiwgIkRlbGV0ZVJlc291cmNlUG9saWN5UmVxdWVzdCIsICJEZWxldGVSZXRlbnRpb25Qb2xpY3lSZXF1ZXN0IiwgIkRlbGV0ZVNjaGVkdWxlZFF1ZXJ5UmVxdWVzdCIsICJEZWxldGVTY2hlZHVsZWRRdWVyeVJlc3BvbnNlIiwgIkRlbGV0ZVN1YnNjcmlwdGlvbkZpbHRlclJlcXVlc3QiLCAiRGVsZXRlVHJhbnNmb3JtZXJSZXF1ZXN0IiwgIkRlbGl2ZXJ5RGVzdGluYXRpb24iLCAiRGVsaXZlcnlEZXN0aW5hdGlvbkNvbmZpZ3VyYXRpb24iLCAiRGVsaXZlcnlTb3VyY2UiLCAiRGVzY3JpYmVBY2NvdW50UG9saWNpZXNSZXF1ZXN0IiwgIkRlc2NyaWJlQWNjb3VudFBvbGljaWVzUmVzcG9uc2UiLCAiQWNjb3VudFBvbGljaWVzIiwgIkRlc2NyaWJlQ29uZmlndXJhdGlvblRlbXBsYXRlc1JlcXVlc3QiLCAiRGVzY3JpYmVDb25maWd1cmF0aW9uVGVtcGxhdGVzUmVzcG9uc2UiLCAiQ29uZmlndXJhdGlvblRlbXBsYXRlcyIsICJEZXNjcmliZURlbGl2ZXJpZXNSZXF1ZXN0IiwgIkRlc2NyaWJlRGVsaXZlcmllc1Jlc3BvbnNlIiwgIkRlbGl2ZXJpZXMiLCAiRGVzY3JpYmVEZWxpdmVyeURlc3RpbmF0aW9uc1JlcXVlc3QiLCAiRGVzY3JpYmVEZWxpdmVyeURlc3RpbmF0aW9uc1Jlc3BvbnNlIiwgIkRlbGl2ZXJ5RGVzdGluYXRpb25zIiwgIkRlc2NyaWJlRGVsaXZlcnlTb3VyY2VzUmVxdWVzdCIsICJEZXNjcmliZURlbGl2ZXJ5U291cmNlc1Jlc3BvbnNlIiwgIkRlbGl2ZXJ5U291cmNlcyIsICJEZXNjcmliZURlc3RpbmF0aW9uc1JlcXVlc3QiLCAiRGVzY3JpYmVEZXN0aW5hdGlvbnNSZXNwb25zZSIsICJEZXN0aW5hdGlvbnMiLCAiRGVzY3JpYmVFeHBvcnRUYXNrc1JlcXVlc3QiLCAiRGVzY3JpYmVFeHBvcnRUYXNrc1Jlc3BvbnNlIiwgIkV4cG9ydFRhc2tzIiwgIkRlc2NyaWJlRmllbGRJbmRleGVzUmVxdWVzdCIsICJEZXNjcmliZUZpZWxkSW5kZXhlc1Jlc3BvbnNlIiwgIkZpZWxkSW5kZXhlcyIsICJEZXNjcmliZUltcG9ydFRhc2tCYXRjaGVzUmVxdWVzdCIsICJEZXNjcmliZUltcG9ydFRhc2tCYXRjaGVzUmVzcG9uc2UiLCAiSW1wb3J0QmF0Y2hMaXN0IiwgIkRlc2NyaWJlSW1wb3J0VGFza3NSZXF1ZXN0IiwgIkRlc2NyaWJlSW1wb3J0VGFza3NSZXNwb25zZSIsICJJbXBvcnRMaXN0IiwgIkRlc2NyaWJlSW5kZXhQb2xpY2llc1JlcXVlc3QiLCAiRGVzY3JpYmVJbmRleFBvbGljaWVzUmVzcG9uc2UiLCAiSW5kZXhQb2xpY2llcyIsICJEZXNjcmliZUxvZ0dyb3Vwc1JlcXVlc3QiLCAiRGVzY3JpYmVMb2dHcm91cHNSZXNwb25zZSIsICJMb2dHcm91cHMiLCAiRGVzY3JpYmVMb2dTdHJlYW1zUmVxdWVzdCIsICJEZXNjcmliZUxvZ1N0cmVhbXNSZXNwb25zZSIsICJMb2dTdHJlYW1zIiwgIkRlc2NyaWJlTWV0cmljRmlsdGVyc1JlcXVlc3QiLCAiRGVzY3JpYmVNZXRyaWNGaWx0ZXJzUmVzcG9uc2UiLCAiTWV0cmljRmlsdGVycyIsICJEZXNjcmliZVF1ZXJpZXNSZXF1ZXN0IiwgIkRlc2NyaWJlUXVlcmllc1Jlc3BvbnNlIiwgIlF1ZXJ5SW5mb0xpc3QiLCAiRGVzY3JpYmVRdWVyeURlZmluaXRpb25zUmVxdWVzdCIsICJEZXNjcmliZVF1ZXJ5RGVmaW5pdGlvbnNSZXNwb25zZSIsICJRdWVyeURlZmluaXRpb25MaXN0IiwgIkRlc2NyaWJlUmVzb3VyY2VQb2xpY2llc1JlcXVlc3QiLCAiRGVzY3JpYmVSZXNvdXJjZVBvbGljaWVzUmVzcG9uc2UiLCAiUmVzb3VyY2VQb2xpY2llcyIsICJEZXNjcmliZVN1YnNjcmlwdGlvbkZpbHRlcnNSZXF1ZXN0IiwgIkRlc2NyaWJlU3Vic2NyaXB0aW9uRmlsdGVyc1Jlc3BvbnNlIiwgIlN1YnNjcmlwdGlvbkZpbHRlcnMiLCAiRGVzdGluYXRpb24iLCAiUzNDb25maWd1cmF0aW9uIiwgIkRpc2Fzc29jaWF0ZUttc0tleVJlcXVlc3QiLCAiRGlzYXNzb2NpYXRlU291cmNlRnJvbVMzVGFibGVJbnRlZ3JhdGlvblJlcXVlc3QiLCAiRGlzYXNzb2NpYXRlU291cmNlRnJvbVMzVGFibGVJbnRlZ3JhdGlvblJlc3BvbnNlIiwgIkVudGl0eSIsICJFeHBvcnRUYXNrIiwgIkV4cG9ydFRhc2tTdGF0dXMiLCAiRXhwb3J0VGFza0V4ZWN1dGlvbkluZm8iLCAiRmllbGRJbmRleCIsICJGaWVsZHNEYXRhIiwgIkZpbHRlcmVkTG9nRXZlbnQiLCAiRmlsdGVyTG9nRXZlbnRzUmVxdWVzdCIsICJGaWx0ZXJMb2dFdmVudHNSZXNwb25zZSIsICJGaWx0ZXJlZExvZ0V2ZW50cyIsICJTZWFyY2hlZExvZ1N0cmVhbXMiLCAiR2V0RGF0YVByb3RlY3Rpb25Qb2xpY3lSZXF1ZXN0IiwgIkdldERhdGFQcm90ZWN0aW9uUG9saWN5UmVzcG9uc2UiLCAiR2V0RGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeVJlcXVlc3QiLCAiR2V0RGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeVJlc3BvbnNlIiwgIlBvbGljeSIsICJHZXREZWxpdmVyeURlc3RpbmF0aW9uUmVxdWVzdCIsICJHZXREZWxpdmVyeURlc3RpbmF0aW9uUmVzcG9uc2UiLCAiR2V0RGVsaXZlcnlSZXF1ZXN0IiwgIkdldERlbGl2ZXJ5UmVzcG9uc2UiLCAiR2V0RGVsaXZlcnlTb3VyY2VSZXF1ZXN0IiwgIkdldERlbGl2ZXJ5U291cmNlUmVzcG9uc2UiLCAiR2V0SW50ZWdyYXRpb25SZXF1ZXN0IiwgIkdldEludGVncmF0aW9uUmVzcG9uc2UiLCAiSW50ZWdyYXRpb25EZXRhaWxzIiwgIkdldExvZ0Fub21hbHlEZXRlY3RvclJlcXVlc3QiLCAiR2V0TG9nQW5vbWFseURldGVjdG9yUmVzcG9uc2UiLCAiR2V0TG9nRXZlbnRzUmVxdWVzdCIsICJHZXRMb2dFdmVudHNSZXNwb25zZSIsICJPdXRwdXRMb2dFdmVudHMiLCAiR2V0TG9nRmllbGRzUmVxdWVzdCIsICJHZXRMb2dGaWVsZHNSZXNwb25zZSIsICJMb2dGaWVsZHNMaXN0IiwgIkdldExvZ0dyb3VwRmllbGRzUmVxdWVzdCIsICJHZXRMb2dHcm91cEZpZWxkc1Jlc3BvbnNlIiwgIkxvZ0dyb3VwRmllbGRMaXN0IiwgIkdldExvZ09iamVjdFJlcXVlc3QiLCAiR2V0TG9nT2JqZWN0UmVzcG9uc2UiLCAiR2V0TG9nT2JqZWN0UmVzcG9uc2VTdHJlYW0iLCAiR2V0TG9nUmVjb3JkUmVxdWVzdCIsICJHZXRMb2dSZWNvcmRSZXNwb25zZSIsICJHZXRRdWVyeVJlc3VsdHNSZXF1ZXN0IiwgIkdldFF1ZXJ5UmVzdWx0c1Jlc3BvbnNlIiwgIlF1ZXJ5UmVzdWx0cyIsICJRdWVyeVN0YXRpc3RpY3MiLCAiR2V0U2NoZWR1bGVkUXVlcnlIaXN0b3J5UmVxdWVzdCIsICJHZXRTY2hlZHVsZWRRdWVyeUhpc3RvcnlSZXNwb25zZSIsICJUcmlnZ2VySGlzdG9yeVJlY29yZExpc3QiLCAiR2V0U2NoZWR1bGVkUXVlcnlSZXF1ZXN0IiwgIkdldFNjaGVkdWxlZFF1ZXJ5UmVzcG9uc2UiLCAiR2V0VHJhbnNmb3JtZXJSZXF1ZXN0IiwgIkdldFRyYW5zZm9ybWVyUmVzcG9uc2UiLCAiUHJvY2Vzc29ycyIsICJHcm9rIiwgIkdyb3VwaW5nSWRlbnRpZmllciIsICJJbXBvcnQiLCAiSW1wb3J0QmF0Y2giLCAiSW5kZXhQb2xpY3kiLCAiSW5wdXRMb2dFdmVudCIsICJJbnRlZ3JhdGlvblN1bW1hcnkiLCAiTGlzdEFnZ3JlZ2F0ZUxvZ0dyb3VwU3VtbWFyaWVzUmVxdWVzdCIsICJEYXRhU291cmNlRmlsdGVycyIsICJMaXN0QWdncmVnYXRlTG9nR3JvdXBTdW1tYXJpZXNSZXNwb25zZSIsICJBZ2dyZWdhdGVMb2dHcm91cFN1bW1hcmllcyIsICJMaXN0QW5vbWFsaWVzUmVxdWVzdCIsICJMaXN0QW5vbWFsaWVzUmVzcG9uc2UiLCAiQW5vbWFsaWVzIiwgIkxpc3RJbnRlZ3JhdGlvbnNSZXF1ZXN0IiwgIkxpc3RJbnRlZ3JhdGlvbnNSZXNwb25zZSIsICJJbnRlZ3JhdGlvblN1bW1hcmllcyIsICJMaXN0TG9nQW5vbWFseURldGVjdG9yc1JlcXVlc3QiLCAiTGlzdExvZ0Fub21hbHlEZXRlY3RvcnNSZXNwb25zZSIsICJBbm9tYWx5RGV0ZWN0b3JzIiwgIkxpc3RMb2dHcm91cHNGb3JRdWVyeVJlcXVlc3QiLCAiTGlzdExvZ0dyb3Vwc0ZvclF1ZXJ5UmVzcG9uc2UiLCAiTGlzdExvZ0dyb3Vwc1JlcXVlc3QiLCAiTGlzdExvZ0dyb3Vwc1Jlc3BvbnNlIiwgIkxvZ0dyb3VwU3VtbWFyaWVzIiwgIkxpc3RTY2hlZHVsZWRRdWVyaWVzUmVxdWVzdCIsICJMaXN0U2NoZWR1bGVkUXVlcmllc1Jlc3BvbnNlIiwgIlNjaGVkdWxlZFF1ZXJ5U3VtbWFyeUxpc3QiLCAiTGlzdFNvdXJjZXNGb3JTM1RhYmxlSW50ZWdyYXRpb25SZXF1ZXN0IiwgIkxpc3RTb3VyY2VzRm9yUzNUYWJsZUludGVncmF0aW9uUmVzcG9uc2UiLCAiUzNUYWJsZUludGVncmF0aW9uU291cmNlcyIsICJMaXN0VGFnc0ZvclJlc291cmNlUmVxdWVzdCIsICJMaXN0VGFnc0ZvclJlc291cmNlUmVzcG9uc2UiLCAiTGlzdFRhZ3NMb2dHcm91cFJlcXVlc3QiLCAiTGlzdFRhZ3NMb2dHcm91cFJlc3BvbnNlIiwgIkxpc3RUb01hcCIsICJMaXZlVGFpbFNlc3Npb25Mb2dFdmVudCIsICJMaXZlVGFpbFNlc3Npb25NZXRhZGF0YSIsICJMaXZlVGFpbFNlc3Npb25TdGFydCIsICJMaXZlVGFpbFNlc3Npb25VcGRhdGUiLCAiTGl2ZVRhaWxTZXNzaW9uUmVzdWx0cyIsICJMb2dFdmVudCIsICJMb2dGaWVsZHNMaXN0SXRlbSIsICJMb2dGaWVsZFR5cGUiLCAiTG9nR3JvdXAiLCAiTG9nR3JvdXBGaWVsZCIsICJMb2dHcm91cFN1bW1hcnkiLCAiTG9nU3RyZWFtIiwgIkxvd2VyQ2FzZVN0cmluZyIsICJRdWVyeUNvbXBpbGVFcnJvciIsICJNZXRyaWNGaWx0ZXIiLCAiTWV0cmljVHJhbnNmb3JtYXRpb25zIiwgIk1ldHJpY0ZpbHRlck1hdGNoUmVjb3JkIiwgIk1ldHJpY1RyYW5zZm9ybWF0aW9uIiwgIk1vdmVLZXlFbnRyeSIsICJNb3ZlS2V5cyIsICJNb3ZlS2V5RW50cmllcyIsICJPcGVuU2VhcmNoQXBwbGljYXRpb24iLCAiT3BlblNlYXJjaFJlc291cmNlU3RhdHVzIiwgIk9wZW5TZWFyY2hDb2xsZWN0aW9uIiwgIk9wZW5TZWFyY2hEYXRhQWNjZXNzUG9saWN5IiwgIk9wZW5TZWFyY2hEYXRhU291cmNlIiwgIk9wZW5TZWFyY2hFbmNyeXB0aW9uUG9saWN5IiwgIk9wZW5TZWFyY2hJbnRlZ3JhdGlvbkRldGFpbHMiLCAiT3BlblNlYXJjaFdvcmtzcGFjZSIsICJPcGVuU2VhcmNoTmV0d29ya1BvbGljeSIsICJPcGVuU2VhcmNoTGlmZWN5Y2xlUG9saWN5IiwgIk9wZW5TZWFyY2hSZXNvdXJjZUNvbmZpZyIsICJPdXRwdXRMb2dFdmVudCIsICJQYXJzZUNsb3VkZnJvbnQiLCAiUGFyc2VKU09OIiwgIlBhcnNlS2V5VmFsdWUiLCAiUGFyc2VQb3N0Z3JlcyIsICJQYXJzZVJvdXRlNTMiLCAiUGFyc2VUb09DU0YiLCAiUGFyc2VWUEMiLCAiUGFyc2VXQUYiLCAiUGF0dGVyblRva2VuIiwgIlByb2Nlc3NvciIsICJSZW5hbWVLZXlzIiwgIlNwbGl0U3RyaW5nIiwgIlN1YnN0aXR1dGVTdHJpbmciLCAiVHJpbVN0cmluZyIsICJUeXBlQ29udmVydGVyIiwgIlVwcGVyQ2FzZVN0cmluZyIsICJQdXRBY2NvdW50UG9saWN5UmVxdWVzdCIsICJQdXRBY2NvdW50UG9saWN5UmVzcG9uc2UiLCAiUHV0RGF0YVByb3RlY3Rpb25Qb2xpY3lSZXF1ZXN0IiwgIlB1dERhdGFQcm90ZWN0aW9uUG9saWN5UmVzcG9uc2UiLCAiUHV0RGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeVJlcXVlc3QiLCAiUHV0RGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeVJlc3BvbnNlIiwgIlB1dERlbGl2ZXJ5RGVzdGluYXRpb25SZXF1ZXN0IiwgIlB1dERlbGl2ZXJ5RGVzdGluYXRpb25SZXNwb25zZSIsICJQdXREZWxpdmVyeVNvdXJjZVJlcXVlc3QiLCAiUHV0RGVsaXZlcnlTb3VyY2VSZXNwb25zZSIsICJQdXREZXN0aW5hdGlvblBvbGljeVJlcXVlc3QiLCAiUHV0RGVzdGluYXRpb25SZXF1ZXN0IiwgIlB1dERlc3RpbmF0aW9uUmVzcG9uc2UiLCAiUHV0SW5kZXhQb2xpY3lSZXF1ZXN0IiwgIlB1dEluZGV4UG9saWN5UmVzcG9uc2UiLCAiUHV0SW50ZWdyYXRpb25SZXF1ZXN0IiwgIlJlc291cmNlQ29uZmlnIiwgIlB1dEludGVncmF0aW9uUmVzcG9uc2UiLCAiUHV0TG9nRXZlbnRzUmVxdWVzdCIsICJJbnB1dExvZ0V2ZW50cyIsICJQdXRMb2dFdmVudHNSZXNwb25zZSIsICJSZWplY3RlZExvZ0V2ZW50c0luZm8iLCAiUmVqZWN0ZWRFbnRpdHlJbmZvIiwgIlB1dExvZ0dyb3VwRGVsZXRpb25Qcm90ZWN0aW9uUmVxdWVzdCIsICJQdXRNZXRyaWNGaWx0ZXJSZXF1ZXN0IiwgIlB1dFF1ZXJ5RGVmaW5pdGlvblJlcXVlc3QiLCAiUHV0UXVlcnlEZWZpbml0aW9uUmVzcG9uc2UiLCAiUHV0UmVzb3VyY2VQb2xpY3lSZXF1ZXN0IiwgIlB1dFJlc291cmNlUG9saWN5UmVzcG9uc2UiLCAiUmVzb3VyY2VQb2xpY3kiLCAiUHV0UmV0ZW50aW9uUG9saWN5UmVxdWVzdCIsICJQdXRTdWJzY3JpcHRpb25GaWx0ZXJSZXF1ZXN0IiwgIlB1dFRyYW5zZm9ybWVyUmVxdWVzdCIsICJRdWVyeUNvbXBpbGVFcnJvckxvY2F0aW9uIiwgIlF1ZXJ5RGVmaW5pdGlvbiIsICJRdWVyeUluZm8iLCAiUmVjb3JkRmllbGQiLCAiUmVuYW1lS2V5RW50cnkiLCAiUmVuYW1lS2V5RW50cmllcyIsICJSZXN1bHRGaWVsZCIsICJTM1RhYmxlSW50ZWdyYXRpb25Tb3VyY2UiLCAiU2NoZWR1bGVkUXVlcnlEZXN0aW5hdGlvbiIsICJTY2hlZHVsZWRRdWVyeVN1bW1hcnkiLCAiU2VhcmNoZWRMb2dTdHJlYW0iLCAiU3BsaXRTdHJpbmdFbnRyaWVzIiwgIlNwbGl0U3RyaW5nRW50cnkiLCAiU3RhcnRMaXZlVGFpbFJlcXVlc3QiLCAiU3RhcnRMaXZlVGFpbFJlc3BvbnNlIiwgIlN0YXJ0TGl2ZVRhaWxSZXNwb25zZVN0cmVhbSIsICJTdGFydFF1ZXJ5UmVxdWVzdCIsICJTdGFydFF1ZXJ5UmVzcG9uc2UiLCAiU3RvcFF1ZXJ5UmVxdWVzdCIsICJTdG9wUXVlcnlSZXNwb25zZSIsICJTdWJzY3JpcHRpb25GaWx0ZXIiLCAiU3Vic3RpdHV0ZVN0cmluZ0VudHJpZXMiLCAiU3Vic3RpdHV0ZVN0cmluZ0VudHJ5IiwgIlN1cHByZXNzaW9uUGVyaW9kIiwgIlRhZ0xvZ0dyb3VwUmVxdWVzdCIsICJUYWdSZXNvdXJjZVJlcXVlc3QiLCAiVGVzdE1ldHJpY0ZpbHRlclJlcXVlc3QiLCAiVGVzdE1ldHJpY0ZpbHRlclJlc3BvbnNlIiwgIk1ldHJpY0ZpbHRlck1hdGNoZXMiLCAiVGVzdFRyYW5zZm9ybWVyUmVxdWVzdCIsICJUZXN0VHJhbnNmb3JtZXJSZXNwb25zZSIsICJUcmFuc2Zvcm1lZExvZ3MiLCAiVHJhbnNmb3JtZWRMb2dSZWNvcmQiLCAiVHJpZ2dlckhpc3RvcnlSZWNvcmQiLCAiU2NoZWR1bGVkUXVlcnlEZXN0aW5hdGlvbkxpc3QiLCAiVHlwZUNvbnZlcnRlckVudHJpZXMiLCAiVHlwZUNvbnZlcnRlckVudHJ5IiwgIlVudGFnTG9nR3JvdXBSZXF1ZXN0IiwgIlVudGFnUmVzb3VyY2VSZXF1ZXN0IiwgIlVwZGF0ZUFub21hbHlSZXF1ZXN0IiwgIlVwZGF0ZURlbGl2ZXJ5Q29uZmlndXJhdGlvblJlcXVlc3QiLCAiVXBkYXRlRGVsaXZlcnlDb25maWd1cmF0aW9uUmVzcG9uc2UiLCAiVXBkYXRlTG9nQW5vbWFseURldGVjdG9yUmVxdWVzdCIsICJVcGRhdGVTY2hlZHVsZWRRdWVyeVJlcXVlc3QiLCAiVXBkYXRlU2NoZWR1bGVkUXVlcnlSZXNwb25zZSIsICJfX1VuaXQiLCAiUmVzdWx0Um93cyIsICJBc3NvY2lhdGVLbXNLZXkiLCAiQXNzb2NpYXRlU291cmNlVG9TM1RhYmxlSW50ZWdyYXRpb24iLCAiQ2FuY2VsRXhwb3J0VGFzayIsICJDYW5jZWxJbXBvcnRUYXNrIiwgIkNyZWF0ZURlbGl2ZXJ5IiwgIkNyZWF0ZUV4cG9ydFRhc2siLCAiQ3JlYXRlSW1wb3J0VGFzayIsICJDcmVhdGVMb2dBbm9tYWx5RGV0ZWN0b3IiLCAiQ3JlYXRlTG9nR3JvdXAiLCAiQ3JlYXRlTG9nU3RyZWFtIiwgIkNyZWF0ZVNjaGVkdWxlZFF1ZXJ5IiwgIkRlbGV0ZUFjY291bnRQb2xpY3kiLCAiRGVsZXRlRGF0YVByb3RlY3Rpb25Qb2xpY3kiLCAiRGVsZXRlRGVsaXZlcnkiLCAiRGVsZXRlRGVsaXZlcnlEZXN0aW5hdGlvbiIsICJEZWxldGVEZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5IiwgIkRlbGV0ZURlbGl2ZXJ5U291cmNlIiwgIkRlbGV0ZURlc3RpbmF0aW9uIiwgIkRlbGV0ZUluZGV4UG9saWN5IiwgIkRlbGV0ZUludGVncmF0aW9uIiwgIkRlbGV0ZUxvZ0Fub21hbHlEZXRlY3RvciIsICJEZWxldGVMb2dHcm91cCIsICJEZWxldGVMb2dTdHJlYW0iLCAiRGVsZXRlTWV0cmljRmlsdGVyIiwgIkRlbGV0ZVF1ZXJ5RGVmaW5pdGlvbiIsICJEZWxldGVSZXNvdXJjZVBvbGljeSIsICJEZWxldGVSZXRlbnRpb25Qb2xpY3kiLCAiRGVsZXRlU2NoZWR1bGVkUXVlcnkiLCAiRGVsZXRlU3Vic2NyaXB0aW9uRmlsdGVyIiwgIkRlbGV0ZVRyYW5zZm9ybWVyIiwgIkRlc2NyaWJlQWNjb3VudFBvbGljaWVzIiwgIkRlc2NyaWJlQ29uZmlndXJhdGlvblRlbXBsYXRlcyIsICJEZXNjcmliZURlbGl2ZXJpZXMiLCAiRGVzY3JpYmVEZWxpdmVyeURlc3RpbmF0aW9ucyIsICJEZXNjcmliZURlbGl2ZXJ5U291cmNlcyIsICJEZXNjcmliZURlc3RpbmF0aW9ucyIsICJEZXNjcmliZUV4cG9ydFRhc2tzIiwgIkRlc2NyaWJlRmllbGRJbmRleGVzIiwgIkRlc2NyaWJlSW1wb3J0VGFza0JhdGNoZXMiLCAiRGVzY3JpYmVJbXBvcnRUYXNrcyIsICJEZXNjcmliZUluZGV4UG9saWNpZXMiLCAiRGVzY3JpYmVMb2dHcm91cHMiLCAiRGVzY3JpYmVMb2dTdHJlYW1zIiwgIkRlc2NyaWJlTWV0cmljRmlsdGVycyIsICJEZXNjcmliZVF1ZXJpZXMiLCAiRGVzY3JpYmVRdWVyeURlZmluaXRpb25zIiwgIkRlc2NyaWJlUmVzb3VyY2VQb2xpY2llcyIsICJEZXNjcmliZVN1YnNjcmlwdGlvbkZpbHRlcnMiLCAiRGlzYXNzb2NpYXRlS21zS2V5IiwgIkRpc2Fzc29jaWF0ZVNvdXJjZUZyb21TM1RhYmxlSW50ZWdyYXRpb24iLCAiRmlsdGVyTG9nRXZlbnRzIiwgIkdldERhdGFQcm90ZWN0aW9uUG9saWN5IiwgIkdldERlbGl2ZXJ5IiwgIkdldERlbGl2ZXJ5RGVzdGluYXRpb24iLCAiR2V0RGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeSIsICJHZXREZWxpdmVyeVNvdXJjZSIsICJHZXRJbnRlZ3JhdGlvbiIsICJHZXRMb2dBbm9tYWx5RGV0ZWN0b3IiLCAiR2V0TG9nRXZlbnRzIiwgIkdldExvZ0ZpZWxkcyIsICJHZXRMb2dHcm91cEZpZWxkcyIsICJHZXRMb2dPYmplY3QiLCAiR2V0TG9nUmVjb3JkIiwgIkdldFF1ZXJ5UmVzdWx0cyIsICJHZXRTY2hlZHVsZWRRdWVyeSIsICJHZXRTY2hlZHVsZWRRdWVyeUhpc3RvcnkiLCAiR2V0VHJhbnNmb3JtZXIiLCAiTGlzdEFnZ3JlZ2F0ZUxvZ0dyb3VwU3VtbWFyaWVzIiwgIkxpc3RBbm9tYWxpZXMiLCAiTGlzdEludGVncmF0aW9ucyIsICJMaXN0TG9nQW5vbWFseURldGVjdG9ycyIsICJMaXN0TG9nR3JvdXBzIiwgIkxpc3RMb2dHcm91cHNGb3JRdWVyeSIsICJMaXN0U2NoZWR1bGVkUXVlcmllcyIsICJMaXN0U291cmNlc0ZvclMzVGFibGVJbnRlZ3JhdGlvbiIsICJMaXN0VGFnc0ZvclJlc291cmNlIiwgIkxpc3RUYWdzTG9nR3JvdXAiLCAiUHV0QWNjb3VudFBvbGljeSIsICJQdXREYXRhUHJvdGVjdGlvblBvbGljeSIsICJQdXREZWxpdmVyeURlc3RpbmF0aW9uIiwgIlB1dERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3kiLCAiUHV0RGVsaXZlcnlTb3VyY2UiLCAiUHV0RGVzdGluYXRpb24iLCAiUHV0RGVzdGluYXRpb25Qb2xpY3kiLCAiUHV0SW5kZXhQb2xpY3kiLCAiUHV0SW50ZWdyYXRpb24iLCAiUHV0TG9nRXZlbnRzIiwgIlB1dExvZ0dyb3VwRGVsZXRpb25Qcm90ZWN0aW9uIiwgIlB1dE1ldHJpY0ZpbHRlciIsICJQdXRRdWVyeURlZmluaXRpb24iLCAiUHV0UmVzb3VyY2VQb2xpY3kiLCAiUHV0UmV0ZW50aW9uUG9saWN5IiwgIlB1dFN1YnNjcmlwdGlvbkZpbHRlciIsICJQdXRUcmFuc2Zvcm1lciIsICJTdGFydExpdmVUYWlsIiwgIlN0YXJ0UXVlcnkiLCAiU3RvcFF1ZXJ5IiwgIlRhZ0xvZ0dyb3VwIiwgIlRhZ1Jlc291cmNlIiwgIlRlc3RNZXRyaWNGaWx0ZXIiLCAiVGVzdFRyYW5zZm9ybWVyIiwgIlVudGFnTG9nR3JvdXAiLCAiVW50YWdSZXNvdXJjZSIsICJVcGRhdGVBbm9tYWx5IiwgIlVwZGF0ZURlbGl2ZXJ5Q29uZmlndXJhdGlvbiIsICJVcGRhdGVMb2dBbm9tYWx5RGV0ZWN0b3IiLCAiVXBkYXRlU2NoZWR1bGVkUXVlcnkiLCAiQXNzb2NpYXRlS21zS2V5Q29tbWFuZCIsICJDb21tYW5kIiwgImNzIiwgIm8iLCAiQXNzb2NpYXRlU291cmNlVG9TM1RhYmxlSW50ZWdyYXRpb25Db21tYW5kIiwgIkNhbmNlbEV4cG9ydFRhc2tDb21tYW5kIiwgIkNhbmNlbEltcG9ydFRhc2tDb21tYW5kIiwgIkNyZWF0ZURlbGl2ZXJ5Q29tbWFuZCIsICJDcmVhdGVFeHBvcnRUYXNrQ29tbWFuZCIsICJDcmVhdGVJbXBvcnRUYXNrQ29tbWFuZCIsICJDcmVhdGVMb2dBbm9tYWx5RGV0ZWN0b3JDb21tYW5kIiwgIkNyZWF0ZUxvZ0dyb3VwQ29tbWFuZCIsICJDcmVhdGVMb2dTdHJlYW1Db21tYW5kIiwgIkNyZWF0ZVNjaGVkdWxlZFF1ZXJ5Q29tbWFuZCIsICJEZWxldGVBY2NvdW50UG9saWN5Q29tbWFuZCIsICJEZWxldGVEYXRhUHJvdGVjdGlvblBvbGljeUNvbW1hbmQiLCAiRGVsZXRlRGVsaXZlcnlDb21tYW5kIiwgIkRlbGV0ZURlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kIiwgIkRlbGV0ZURlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kIiwgIkRlbGV0ZURlbGl2ZXJ5U291cmNlQ29tbWFuZCIsICJEZWxldGVEZXN0aW5hdGlvbkNvbW1hbmQiLCAiRGVsZXRlSW5kZXhQb2xpY3lDb21tYW5kIiwgIkRlbGV0ZUludGVncmF0aW9uQ29tbWFuZCIsICJEZWxldGVMb2dBbm9tYWx5RGV0ZWN0b3JDb21tYW5kIiwgIkRlbGV0ZUxvZ0dyb3VwQ29tbWFuZCIsICJEZWxldGVMb2dTdHJlYW1Db21tYW5kIiwgIkRlbGV0ZU1ldHJpY0ZpbHRlckNvbW1hbmQiLCAiRGVsZXRlUXVlcnlEZWZpbml0aW9uQ29tbWFuZCIsICJEZWxldGVSZXNvdXJjZVBvbGljeUNvbW1hbmQiLCAiRGVsZXRlUmV0ZW50aW9uUG9saWN5Q29tbWFuZCIsICJEZWxldGVTY2hlZHVsZWRRdWVyeUNvbW1hbmQiLCAiRGVsZXRlU3Vic2NyaXB0aW9uRmlsdGVyQ29tbWFuZCIsICJEZWxldGVUcmFuc2Zvcm1lckNvbW1hbmQiLCAiRGVzY3JpYmVBY2NvdW50UG9saWNpZXNDb21tYW5kIiwgIkRlc2NyaWJlQ29uZmlndXJhdGlvblRlbXBsYXRlc0NvbW1hbmQiLCAiRGVzY3JpYmVEZWxpdmVyaWVzQ29tbWFuZCIsICJEZXNjcmliZURlbGl2ZXJ5RGVzdGluYXRpb25zQ29tbWFuZCIsICJEZXNjcmliZURlbGl2ZXJ5U291cmNlc0NvbW1hbmQiLCAiRGVzY3JpYmVEZXN0aW5hdGlvbnNDb21tYW5kIiwgIkRlc2NyaWJlRXhwb3J0VGFza3NDb21tYW5kIiwgIkRlc2NyaWJlRmllbGRJbmRleGVzQ29tbWFuZCIsICJEZXNjcmliZUltcG9ydFRhc2tCYXRjaGVzQ29tbWFuZCIsICJEZXNjcmliZUltcG9ydFRhc2tzQ29tbWFuZCIsICJEZXNjcmliZUluZGV4UG9saWNpZXNDb21tYW5kIiwgIkRlc2NyaWJlTG9nR3JvdXBzQ29tbWFuZCIsICJEZXNjcmliZUxvZ1N0cmVhbXNDb21tYW5kIiwgIkRlc2NyaWJlTWV0cmljRmlsdGVyc0NvbW1hbmQiLCAiRGVzY3JpYmVRdWVyaWVzQ29tbWFuZCIsICJEZXNjcmliZVF1ZXJ5RGVmaW5pdGlvbnNDb21tYW5kIiwgIkRlc2NyaWJlUmVzb3VyY2VQb2xpY2llc0NvbW1hbmQiLCAiRGVzY3JpYmVTdWJzY3JpcHRpb25GaWx0ZXJzQ29tbWFuZCIsICJEaXNhc3NvY2lhdGVLbXNLZXlDb21tYW5kIiwgIkRpc2Fzc29jaWF0ZVNvdXJjZUZyb21TM1RhYmxlSW50ZWdyYXRpb25Db21tYW5kIiwgIkZpbHRlckxvZ0V2ZW50c0NvbW1hbmQiLCAiR2V0RGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kIiwgIkdldERlbGl2ZXJ5Q29tbWFuZCIsICJHZXREZWxpdmVyeURlc3RpbmF0aW9uQ29tbWFuZCIsICJHZXREZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5Q29tbWFuZCIsICJHZXREZWxpdmVyeVNvdXJjZUNvbW1hbmQiLCAiR2V0SW50ZWdyYXRpb25Db21tYW5kIiwgIkdldExvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmQiLCAiR2V0TG9nRXZlbnRzQ29tbWFuZCIsICJHZXRMb2dGaWVsZHNDb21tYW5kIiwgIkdldExvZ0dyb3VwRmllbGRzQ29tbWFuZCIsICJHZXRMb2dPYmplY3RDb21tYW5kIiwgIkdldExvZ1JlY29yZENvbW1hbmQiLCAiR2V0UXVlcnlSZXN1bHRzQ29tbWFuZCIsICJHZXRTY2hlZHVsZWRRdWVyeUNvbW1hbmQiLCAiR2V0U2NoZWR1bGVkUXVlcnlIaXN0b3J5Q29tbWFuZCIsICJHZXRUcmFuc2Zvcm1lckNvbW1hbmQiLCAiTGlzdEFnZ3JlZ2F0ZUxvZ0dyb3VwU3VtbWFyaWVzQ29tbWFuZCIsICJMaXN0QW5vbWFsaWVzQ29tbWFuZCIsICJMaXN0SW50ZWdyYXRpb25zQ29tbWFuZCIsICJMaXN0TG9nQW5vbWFseURldGVjdG9yc0NvbW1hbmQiLCAiTGlzdExvZ0dyb3Vwc0NvbW1hbmQiLCAiTGlzdExvZ0dyb3Vwc0ZvclF1ZXJ5Q29tbWFuZCIsICJMaXN0U2NoZWR1bGVkUXVlcmllc0NvbW1hbmQiLCAiTGlzdFNvdXJjZXNGb3JTM1RhYmxlSW50ZWdyYXRpb25Db21tYW5kIiwgIkxpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kIiwgIkxpc3RUYWdzTG9nR3JvdXBDb21tYW5kIiwgIlB1dEFjY291bnRQb2xpY3lDb21tYW5kIiwgIlB1dERhdGFQcm90ZWN0aW9uUG9saWN5Q29tbWFuZCIsICJQdXREZWxpdmVyeURlc3RpbmF0aW9uQ29tbWFuZCIsICJQdXREZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5Q29tbWFuZCIsICJQdXREZWxpdmVyeVNvdXJjZUNvbW1hbmQiLCAiUHV0RGVzdGluYXRpb25Db21tYW5kIiwgIlB1dERlc3RpbmF0aW9uUG9saWN5Q29tbWFuZCIsICJQdXRJbmRleFBvbGljeUNvbW1hbmQiLCAiUHV0SW50ZWdyYXRpb25Db21tYW5kIiwgIlB1dExvZ0V2ZW50c0NvbW1hbmQiLCAiUHV0TG9nR3JvdXBEZWxldGlvblByb3RlY3Rpb25Db21tYW5kIiwgIlB1dE1ldHJpY0ZpbHRlckNvbW1hbmQiLCAiUHV0UXVlcnlEZWZpbml0aW9uQ29tbWFuZCIsICJQdXRSZXNvdXJjZVBvbGljeUNvbW1hbmQiLCAiUHV0UmV0ZW50aW9uUG9saWN5Q29tbWFuZCIsICJQdXRTdWJzY3JpcHRpb25GaWx0ZXJDb21tYW5kIiwgIlB1dFRyYW5zZm9ybWVyQ29tbWFuZCIsICJTdGFydExpdmVUYWlsQ29tbWFuZCIsICJTdGFydFF1ZXJ5Q29tbWFuZCIsICJTdG9wUXVlcnlDb21tYW5kIiwgIlRhZ0xvZ0dyb3VwQ29tbWFuZCIsICJUYWdSZXNvdXJjZUNvbW1hbmQiLCAiVGVzdE1ldHJpY0ZpbHRlckNvbW1hbmQiLCAiVGVzdFRyYW5zZm9ybWVyQ29tbWFuZCIsICJVbnRhZ0xvZ0dyb3VwQ29tbWFuZCIsICJVbnRhZ1Jlc291cmNlQ29tbWFuZCIsICJVcGRhdGVBbm9tYWx5Q29tbWFuZCIsICJVcGRhdGVEZWxpdmVyeUNvbmZpZ3VyYXRpb25Db21tYW5kIiwgIlVwZGF0ZUxvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmQiLCAiVXBkYXRlU2NoZWR1bGVkUXVlcnlDb21tYW5kIiwgImNvbW1hbmRzIiwgIkNsb3VkV2F0Y2hMb2dzIiwgInBhZ2luYXRlRGVzY3JpYmVDb25maWd1cmF0aW9uVGVtcGxhdGVzIiwgInBhZ2luYXRlRGVzY3JpYmVEZWxpdmVyaWVzIiwgInBhZ2luYXRlRGVzY3JpYmVEZWxpdmVyeURlc3RpbmF0aW9ucyIsICJwYWdpbmF0ZURlc2NyaWJlRGVsaXZlcnlTb3VyY2VzIiwgInBhZ2luYXRlRGVzY3JpYmVEZXN0aW5hdGlvbnMiLCAicGFnaW5hdGVEZXNjcmliZUxvZ0dyb3VwcyIsICJwYWdpbmF0ZURlc2NyaWJlTG9nU3RyZWFtcyIsICJwYWdpbmF0ZURlc2NyaWJlTWV0cmljRmlsdGVycyIsICJwYWdpbmF0ZURlc2NyaWJlU3Vic2NyaXB0aW9uRmlsdGVycyIsICJwYWdpbmF0ZUZpbHRlckxvZ0V2ZW50cyIsICJwYWdpbmF0ZUdldExvZ0V2ZW50cyIsICJwYWdpbmF0ZUdldFNjaGVkdWxlZFF1ZXJ5SGlzdG9yeSIsICJwYWdpbmF0ZUxpc3RBZ2dyZWdhdGVMb2dHcm91cFN1bW1hcmllcyIsICJwYWdpbmF0ZUxpc3RBbm9tYWxpZXMiLCAicGFnaW5hdGVMaXN0TG9nQW5vbWFseURldGVjdG9ycyIsICJwYWdpbmF0ZUxpc3RMb2dHcm91cHNGb3JRdWVyeSIsICJwYWdpbmF0ZUxpc3RTY2hlZHVsZWRRdWVyaWVzIiwgInBhZ2luYXRlTGlzdFNvdXJjZXNGb3JTM1RhYmxlSW50ZWdyYXRpb24iLCAiUG9saWN5VHlwZSIsICJTY29wZSIsICJBY3Rpb25TdGF0dXMiLCAiU3RhdGUiLCAiQW5vbWFseURldGVjdG9yU3RhdHVzIiwgIkV2YWx1YXRpb25GcmVxdWVuY3kiLCAiSW1wb3J0U3RhdHVzIiwgIk91dHB1dEZvcm1hdCIsICJEZWxpdmVyeURlc3RpbmF0aW9uVHlwZSIsICJMb2dHcm91cENsYXNzIiwgIlF1ZXJ5TGFuZ3VhZ2UiLCAiU2NoZWR1bGVkUXVlcnlTdGF0ZSIsICJEYXRhUHJvdGVjdGlvblN0YXR1cyIsICJFeHBvcnRUYXNrU3RhdHVzQ29kZSIsICJJbmRleFR5cGUiLCAiSW5kZXhTb3VyY2UiLCAiSW5oZXJpdGVkUHJvcGVydHkiLCAiT3JkZXJCeSIsICJTdGFuZGFyZFVuaXQiLCAiUXVlcnlTdGF0dXMiLCAiUG9saWN5U2NvcGUiLCAiRGlzdHJpYnV0aW9uIiwgIkVudGl0eVJlamVjdGlvbkVycm9yVHlwZSIsICJFdmVudFNvdXJjZSIsICJFeGVjdXRpb25TdGF0dXMiLCAiRmxhdHRlbmVkRWxlbWVudCIsICJPcGVuU2VhcmNoUmVzb3VyY2VTdGF0dXNUeXBlIiwgIkludGVncmF0aW9uU3RhdHVzIiwgIkludGVncmF0aW9uVHlwZSIsICJTY2hlZHVsZWRRdWVyeURlc3RpbmF0aW9uVHlwZSIsICJPQ1NGVmVyc2lvbiIsICJUeXBlIiwgIkxpc3RBZ2dyZWdhdGVMb2dHcm91cFN1bW1hcmllc0dyb3VwQnkiLCAiU3VwcHJlc3Npb25TdGF0ZSIsICJTM1RhYmxlSW50ZWdyYXRpb25Tb3VyY2VTdGF0dXMiLCAiU3VwcHJlc3Npb25Vbml0IiwgIlN1cHByZXNzaW9uVHlwZSIsICJzc3JfZXhwb3J0cyIsICJfX2V4cG9ydCIsICJDT05URU5UX1RZUEUiLCAiWF9PUklHSU5BTF9DT05URU5UX1RZUEUiLCAiYXBwIiwgImdldCIsICJwcm9jZXNzTGFtYmRhUmVzcG9uc2UiLCAiX190b0NvbW1vbkpTIiwgImltcG9ydF9leHByZXNzIiwgImltcG9ydF9wYXRoIiwgImltcG9ydF91cmwiLCAiaW1wb3J0X2V4cHJlc3NfYmFzaWNfYXV0aCIsICJpbXBvcnRfY2xpZW50X2R5bmFtb2RiIiwgImltcG9ydF9saWJfZHluYW1vZGIiLCAiaXNMb2NhbCIsICJsb2dNUlRFcnJvciIsICJuYW1lc3BhY2UiLCAiZXJyIiwgImNvbnRleHQiLCAiZXJyb3IiLCAiRGF0YVN0b3JlTm90Rm91bmRFcnJvciIsICJfRGF0YVN0b3JlTm90Rm91bmRFcnJvciIsICJtZXNzYWdlIiwgIkRhdGFTdG9yZVNlcnZpY2VFcnJvciIsICJfRGF0YVN0b3JlU2VydmljZUVycm9yIiwgIkRhdGFTdG9yZVVuYXZhaWxhYmxlRXJyb3IiLCAiX0RhdGFTdG9yZVVuYXZhaWxhYmxlRXJyb3IiLCAiRGF0YVN0b3JlIiwgIl9EYXRhU3RvcmUiLCAia2V5IiwgImRkYiIsICJyZXNwb25zZSIsICJlcnJvciIsICJsb2dNUlRFcnJvciIsICJpbXBvcnRfc2V0X2Nvb2tpZV9wYXJzZXIiLCAiaW1wb3J0X2NoYW5nZV9jYXNlIiwgImltcG9ydF91cmwiLCAiQUNfQUxMT1dfT1JJR0lOIiwgIkhPU1QiLCAiTE9DQVRJT04iLCAiT1JJR0lOIiwgIlNFVF9DT09LSUUiLCAiVVNFUl9BR0VOVCIsICJIRUFERVJfRk9STUFUUyIsICJYX1BST1hZX1JFUVVFU1RfVVJMIiwgIk1BWF9VUkxfTEVOR1RIX0JZVEVTIiwgIkhlYWRlcnMiLCAiaGVhZGVycyIsICJmb3JtYXQiLCAiSEVBREVSX0ZPUk1BVFMiLCAia2V5IiwgInZhbHVlcyIsICJTRVRfQ09PS0lFIiwgInZhbHVlIiwgImtleUxDIiwgInJlc3VsdCIsICJmaW5hbEtleSIsICJkYXlOYW1lcyIsICJtb250aEFiYnIiLCAibGVhZGluZ1plcm8iLCAibiIsICJzIiwgInJmYzExMjMiLCAiZGF0ZSIsICJ0aW1lIiwgImNvb2tpZUFzU3RyaW5nIiwgImNvb2tpZSIsICJlbGVtZW50cyIsICJJUFY2IiwgIklQVjQiLCAiTE9DQUxIT1NUIiwgIkhPU1RfQU5EX1BPUlRfVEVTVFMiLCAicGFyc2VIb3N0IiwgImhvc3QiLCAidGVzdCIsICJtYXRjaCIsICJwYXJ0cyIsICJwYXJ0IiwgInJld3JpdGVEb21haW4iLCAiZG9tYWluIiwgImFwcEhvc3RuYW1lIiwgInRhcmdldEhvc3QiLCAiZG9tYWluRWxlbWVudHMiLCAieCIsICJkb21haW5TdHJpbmciLCAicGFyc2VkSG9zdCIsICJzdHJpcHBlZE9mZiIsICJyZXdyaXRlU2V0Q29va2llcyIsICJzZXRDb29raWVzIiwgImxvZ2dpbmciLCAicGFyc2VTZXRDb29raWUiLCAibmV3RG9tYWluIiwgInJld3JpdGVQcm94eVJlc3BvbnNlSGVhZGVycyIsICJjYWNoaW5nIiwgImhlYWRlckZvcm1hdCIsICJwcm94eVBhdGgiLCAicmVxdWVzdFVybCIsICJzdGF0dXNDb2RlIiwgInRhcmdldFByb3RvY29sIiwgImFwcFByb3RvY29sIiwgIndvcmtpbmdIZWFkZXJzIiwgImFwcE9yaWdpbiIsICJ0YXJnZXRPcmlnaW4iLCAiZnVsbFJlcXVlc3RVcmwiLCAiWF9QUk9YWV9SRVFVRVNUX1VSTCIsICJwcm94eVBhdGhCYXNlIiwgImFsbG93T3JpZ2luIiwgIkFDX0FMTE9XX09SSUdJTiIsICJ1cGRhdGVkQ29va2llcyIsICJsb2NhdGlvbiIsICJMT0NBVElPTiIsICJsb2NVcmwiLCAibmV3TG9jYXRpb24iLCAiWF9IRUFERVJTX1RPX1JFTU9WRV9QUk9YWSIsICJYX0hFQURFUlNfVE9fQUREIiwgIkFMTE9XRURfQ0FDSElOR19QUk9YWV9SRVFVRVNUX0hFQURFUlMiLCAicmV3cml0ZVByb3h5UmVxdWVzdEhlYWRlcnMiLCAiY2FjaGluZyIsICJoZWFkZXJzIiwgImhlYWRlckZvcm1hdCIsICJ0YXJnZXRQcm90b2NvbCIsICJ0YXJnZXRIb3N0IiwgImxvZ2dpbmciLCAid29ya2luZ0hlYWRlcnMiLCAiSGVhZGVycyIsICJYX0hFQURFUlNfVE9fUkVNT1ZFX1BST1hZIiwgImtleSIsICJVU0VSX0FHRU5UIiwgImhvc3RIZWFkZXIiLCAiSE9TVCIsICJvcmlnaW5IZWFkZXIiLCAiT1JJR0lOIiwgInRhcmdldE9yaWdpbiIsICJ2YWx1ZSIsICJpbXBvcnRfaHR0cF9wcm94eV9taWRkbGV3YXJlIiwgInN0cmlwUHJveHlQYXRoUkUiLCAiYXBwbHlQcm94eVJlcXVlc3RIZWFkZXJzIiwgInByb3h5UmVxdWVzdCIsICJpbmNvbWluZ1JlcXVlc3QiLCAiY2FjaGluZyIsICJwcm94eVBhdGgiLCAidGFyZ2V0SG9zdCIsICJ0YXJnZXRQcm90b2NvbCIsICJyZXdyaXRlRm4iLCAiaGVhZGVycyIsICJuZXdIZWFkZXJzIiwgInJld3JpdGVQcm94eVJlcXVlc3RIZWFkZXJzIiwgImtleSIsICJ2YWx1ZSIsICJjb25maWd1cmVQcm94eSIsICJhcHBIb3N0bmFtZSIsICJhcHBQcm90b2NvbCIsICJjcmVhdGVQcm94eUZuIiwgImNyZWF0ZVByb3h5IiwgInRhcmdldE9yaWdpbiIsICJlcnIiLCAicmVxIiwgInJlcyIsICJwcm94eVJlc3BvbnNlIiwgInJlcXVlc3RVcmwiLCAicmV3cml0ZVByb3h5UmVzcG9uc2VIZWFkZXJzIiwgImNvbmZpZ3VyZVByb3h5aW5nIiwgInByb3h5Q29uZmlncyIsICJwcm94aWVzIiwgImNvbmZpZyIsICJwcm94eSIsICJpbXBvcnRfZXhwcmVzcyIsICJpbXBvcnRfZnMiLCAiaW1wb3J0X3BhdGgiLCAiaW1wb3J0X21pbWVfdHlwZXMiLCAiaW1wb3J0X3FzIiwgIk1PQklGWV9QQVRIIiwgIlBST1hZX1BBVEhfQkFTRSIsICJDQUNISU5HX1BBVEhfQkFTRSIsICJCVU5ETEVfUEFUSF9CQVNFIiwgInByb3h5QmFzZVBhdGgiLCAiYnVuZGxlQmFzZVBhdGgiLCAiWF9IRUFERVJTX1RPX1JFTU9WRV9PUklHSU4iLCAiWF9NT0JJRllfUkVRVUVTVF9DTEFTUyIsICJYX01PQklGWV9RVUVSWVNUUklORyIsICJYX01PQklGWV9SRVFVRVNUX1BST0NFU1NPUl9MT0NBTCIsICJDT05URU5UX1RZUEUiLCAiTk9fQ0FDSEUiLCAiX2lzQnVuZGxlT3JQcm94eVBhdGgiLCAidXJsIiwgIl9nZXRSZXF1ZXN0UHJvY2Vzc29yIiwgInJlcXVlc3RQcm9jZXNzb3JQYXRoIiwgImZzIiwgImdldFJlcXVlc3RQcm9jZXNzb3JQYXJhbWV0ZXJzIiwgInVwZGF0ZVBhdGhBbmRRdWVyeVN0cmluZyIsICJyZXEiLCAidXBkYXRlZFBhdGgiLCAidXBkYXRlZFF1ZXJ5c3RyaW5nIiwgIm5ld1F1ZXJ5IiwgInFzIiwgImNsZWFuVXBIZWFkZXJzIiwgImNsZWFudXBMb2NhbFJlcXVlc3RQcm9jZXNzb3JIZWFkZXIiLCAia2V5IiwgImdldE1vYmlmeVF1ZXJ5U3RyaW5nIiwgIm9yaWdpbmFsUXVlcnlzdHJpbmciLCAieFF1ZXJ5U3RyaW5nIiwgImNyZWF0ZU1SVFJlcXVlc3RQcm9jZXNzb3JNaWRkbGV3YXJlIiwgInByb3h5Q29uZmlncyIsICJwcm9jZXNzSW5jb21pbmdSZXF1ZXN0IiwgInJlcyIsICJyZXF1ZXN0UHJvY2Vzc29yIiwgImhlYWRlcnMiLCAiSGVhZGVycyIsICJhcHBIb3N0bmFtZSIsICJkZXBsb3lUYXJnZXQiLCAiZW52aXJvbm1lbnQiLCAicHJvY2Vzc2VkIiwgInZhbHVlIiwgIm5leHQiLCAiZXJyIiwgImNyZWF0ZU1SVFByb3h5TWlkZGxld2FyZXMiLCAiYXBwUHJvdG9jb2wiLCAiaW5jbHVkZUNhY2hpbmciLCAiY3JlYXRlUHJveHlGbiIsICJwcm94aWVzIiwgImNvbmZpZ3VyZVByb3h5aW5nIiwgIm1pZGRsZXdhcmVzIiwgInByb3h5IiwgInByb3h5UGF0aCIsICJjYWNoaW5nUHJveHlQYXRoIiwgInNldExvY2FsQXNzZXRIZWFkZXJzIiwgImFzc2V0UGF0aCIsICJiYXNlIiwgInBhdGgiLCAiY29udGVudFR5cGUiLCAibWltZVR5cGVzIiwgIm10aW1lIiwgIm10aW1lUkZDMTEyMyIsICJjcmVhdGVNUlRTdGF0aWNBc3NldFNlcnZpbmdNaWRkbGV3YXJlIiwgInN0YXRpY0Fzc2V0RGlyIiwgImV4cHJlc3MiLCAiY3JlYXRlTVJUQ29tbW9uTWlkZGxld2FyZSIsICJjcmVhdGVNUlRDbGVhblVwTWlkZGxld2FyZSIsICJpbXBvcnRfY2xpZW50X2Nsb3Vkd2F0Y2giLCAiaXNSZW1vdGUiLCAiaXNMb2NhbCIsICJERUZBVUxUX05BTUVTUEFDRSIsICJnZXREaW1lbnNpb25zIiwgIk1ldHJpY3NTZW5kZXIiLCAiX01ldHJpY3NTZW5kZXIiLCAibWV0cmljIiwgImRlZmF1bHRUaW1lc3RhbXAiLCAibWV0cmljRGF0YSIsICJkaW1lbnNpb25zIiwgImtleSIsICJ2YWx1ZSIsICJjdyIsICJtZXRyaWNzIiwgImNvbW1hbmQiLCAiZXJyIiwgInByb21pc2VzIiwgImJhdGNoU2l6ZSIsICJpIiwgImJhdGNoIiwgIm1ldHJpY3NUb1NlbmQiLCAiaW1tZWRpYXRlIiwgIm5vdyIsICJtZXRyaWNEYXRhQXJyYXkiLCAiaW1wb3J0X2h0dHAiLCAiaW1wb3J0X3Byb21pc2VzIiwgImltcG9ydF9ub2RlX3psaWIiLCAiaW1wb3J0X25lZ290aWF0b3IiLCAiaW1wb3J0X2NvbXByZXNzaWJsZSIsICJjIiwgImQiLCAiYSIsICJiIiwgImltcG9ydF9ub2RlX2h0dHAiLCAiaW1wb3J0X25vZGVfc3RyZWFtIiwgIkRFRkFVTFRfQklOQVJZX0VOQ09ESU5HUyIsICJERUZBVUxUX0JJTkFSWV9DT05URU5UX1RZUEVTIiwgIkVtcHR5UmVzcG9uc2UiLCAiY3VycmVudEludm9rZSIsICJnZXRDdXJyZW50SW52b2tlIiwgIl9fbmFtZSIsICJzZXRDdXJyZW50SW52b2tlIiwgImV2ZW50IiwgImNvbnRleHQiLCAiZ2V0RXZlbnRCb2R5QXNCdWZmZXIiLCAiYm9keSIsICJpc0Jhc2U2NEVuY29kZWQiLCAiZW5jb2RpbmciLCAiYnVmZmVyIiwgImNvbnRlbnRMZW5ndGgiLCAiZ2V0RmxhdHRlbmVkSGVhZGVyc01hcCIsICJoZWFkZXJzTWFwIiwgInNlcGFyYXRvciIsICJsb3dlckNhc2VLZXkiLCAiYWNjIiwgImhlYWRlcktleSIsICJuZXdLZXkiLCAiaGVhZGVyVmFsdWUiLCAiZ2V0TXVsdGlWYWx1ZUhlYWRlcnNNYXAiLCAiZ2V0RmxhdHRlbmVkSGVhZGVyc01hcEFuZENvb2tpZXMiLCAibG93ZXJIZWFkZXJLZXkiLCAicGFyc2VIZWFkZXJzIiwgImhlYWRlcnMiLCAicmVzdWx0IiwgImhlYWRlcnNBcnIiLCAiaSIsICJyb3ciLCAiaW5kZXgiLCAia2V5IiwgInZhbHVlIiwgImtleXNUb0xvd2VyY2FzZSIsICJvYmoiLCAiayIsICJ2IiwgImlzQ29udGVudEVuY29kaW5nQmluYXJ5IiwgImJpbmFyeUVuY29kaW5nVHlwZXMiLCAiY29udGVudEVuY29kaW5ncyIsICJnZXRDb250ZW50VHlwZSIsICJjb250ZW50VHlwZUhlYWRlclJhdyIsICJjb250ZW50VHlwZUhlYWRlciIsICJjb250ZW50VHlwZVN0YXJ0IiwgImlzQ29udGVudFR5cGVCaW5hcnkiLCAiYmluYXJ5Q29udGVudFR5cGVzIiwgImNvbnRlbnRUeXBlIiwgImlzQmluYXJ5IiwgImJpbmFyeVNldHRpbmdzIiwgIk5PX09QIiwgIkludGVybmFsTG9nZ2VyU3ltYm9sIiwgImxvZ0xldmVscyIsICJsYXp5UHJpbnQiLCAicHJpbnQiLCAiZm4iLCAibWVzc2FnZSIsICJhZGRpdGlvbmFsIiwgImNyZWF0ZURlZmF1bHRMb2dnZXIiLCAibGV2ZWwiLCAibGV2ZWxzIiwgImxvZ2dlciIsICJjb25zb2xlTWV0aG9kIiwgImlzSW50ZXJuYWxMb2dnZXIiLCAiZ2V0RGVmYXVsdElmVW5kZWZpbmVkIiwgImRlZmF1bHRWYWx1ZSIsICJnZXRQYXRoV2l0aFF1ZXJ5U3RyaW5nUGFyYW1zIiwgInBhdGgiLCAicXVlcnlQYXJhbXMiLCAicXVlcnlQYXJhbXNTdHJpbmciLCAiZ2V0UXVlcnlQYXJhbXNTdHJpbmdGcm9tUmVjb3JkIiwgInF1ZXJ5UGFyYW1zUmVjb3JkIiwgInNlYXJjaFBhcmFtcyIsICJtdWx0aVZhbHVlSGVhZGVyc0VudHJpZXMiLCAiYXJyYXlWYWx1ZSIsICJOT09QQmFzZVBhdGgiLCAiYnVpbGRTdHJpcEJhc2VQYXRoIiwgImJhc2VQYXRoIiwgImxlbmd0aCIsICJpc1N0cmVhbUVuZGVkIiwgInN0cmVhbSIsICJ3YWl0Rm9yU3RyZWFtQ29tcGxldGUiLCAicmVzb2x2ZSIsICJyZWplY3QiLCAiaXNDb21wbGV0ZSIsICJjb21wbGV0ZSIsICJlcnIiLCAiSFRUUFNfUE9SVCIsICJTZXJ2ZXJsZXNzUmVxdWVzdCIsICJJbmNvbWluZ01lc3NhZ2UiLCAibWV0aG9kIiwgInVybCIsICJyZW1vdGVBZGRyZXNzIiwgImdldFN0cmluZyIsICJkYXRhIiwgImhlYWRlckVuZCIsICJlbmRDaHVua2VkIiwgIkJPRFkiLCAiSEVBREVSUyIsICJhZGREYXRhIiwgIlNlcnZlcmxlc3NSZXNwb25zZSIsICJfU2VydmVybGVzc1Jlc3BvbnNlIiwgIlNlcnZlclJlc3BvbnNlIiwgIndyaXRlc1RvSWdub3JlIiwgInNvY2tldCIsICJjYiIsICJzdHJpbmciLCAicmVtYWluZGVyIiwgInJlcyIsICJyZXNwb25zZSIsICJzdGF0dXNDb2RlIiwgInN0YXR1c01lc3NhZ2UiLCAiaGVhZGVyc09iak9yQXJyYXkiLCAiYXJyYXlIZWFkZXJzIiwgIm5hbWUiLCAiY3JsZkJ1ZmZlciIsICJlbmRTdGF0dXNTZXBhcmF0b3IiLCAiU2VydmVybGVzc1N0cmVhbVJlc3BvbnNlIiwgIm9uUmVjZWl2ZUhlYWRlcnMiLCAibG9nIiwgImludGVybmFsV3JpdGFibGUiLCAiZmlyc3RDcmxmQnVmZmVyRW5jb3VudGVyZWQiLCAiY2h1bmtFbmNvdW50ZXJlZCIsICJzdHJpbmdEYXRhIiwgImVuZFN0YXR1c0luZGV4IiwgInN0YXR1cyIsICJlbmRIZWFkZXJJbmRleCIsICJoZWFkZXJEYXRhIiwgIkJhc2VIYW5kbGVyIiwgImFkYXB0ZXJzIiwgInJlc29sdmVkQWRhcHRlcnMiLCAiYWRhcHRlciIsICJyZXF1ZXN0VmFsdWVzIiwgInJlcXVlc3QiLCAiU2VydmVybGVzc0FkYXB0ZXIiLCAiX1NlcnZlcmxlc3NBZGFwdGVyIiwgIl9fbmFtZSIsICJhcHAiLCAiREVGQVVMVF9CSU5BUllfRU5DT0RJTkdTIiwgIkRFRkFVTFRfQklOQVJZX0NPTlRFTlRfVFlQRVMiLCAiY3JlYXRlRGVmYXVsdExvZ2dlciIsICJoYW5kbGVyIiwgInJlc29sdmVyIiwgImZyYW1ld29yayIsICJsb2dnZXIiLCAiYmluYXJ5U2V0dGluZ3MiLCAicmVzcG9uZFdpdGhFcnJvcnMiLCAiYWRhcHRlciIsICJjcmVhdGVac3RkQ29tcHJlc3MiLCAiemxpYiIsICJpbXBvcnRfcHJvbWlzZXMiLCAiaW1wb3J0X3BhdGgiLCAiaW1wb3J0X3VybCIsICJpbXBvcnRfd2luc3RvbiIsICJpbXBvcnRfY3J5cHRvIiwgImltcG9ydF9jbGllbnRfc2VjcmV0c19tYW5hZ2VyIiwgImltcG9ydF9tZXRhIiwgIl9fZGlybmFtZSIsICJwYXRoIiwgIkludGVudGlvbmFsRXJyb3IiLCAiZGlhZ25vc3RpY3MiLCAicGFyYW1zIiwgIkVOVlNfVE9fRVhQT1NFIiwgIkJBRFNTTF9UTFMxXzFfVVJMIiwgIkJBRFNTTF9UTFMxXzJfVVJMIiwgInNvcnRPYmplY3RLZXlzIiwgIm8iLCAiayIsICJmaWx0ZXJBbmRTb3J0T2JqZWN0S2V5cyIsICJ3aGl0ZWxpc3QiLCAia2V5IiwgImtleWxjIiwgInBhdHRlcm4iLCAiYWNjIiwgImpzb25Gcm9tUmVxdWVzdCIsICJyZXEiLCAiYWRkaXRpb25hbF9pbmZvIiwgImVjaG8iLCAicmVzIiwgImV4Y2VwdGlvbiIsICJ0bHNWZXJzaW9uVGVzdCIsICJfIiwgInJlc3BvbnNlMTEiLCAicmVzcG9uc2UiLCAicmVzcG9uc2UxMiIsICJjYWNoZVRlc3QiLCAiZHVyYXRpb24iLCAiY29va2llVGVzdCIsICJuYW1lIiwgInZhbHVlIiwgInJlc3BvbnNlSGVhZGVyc1Rlc3QiLCAibXVsdGlWYWx1ZUhlYWRlcnNUZXN0IiwgInNldFN0YXR1c1Rlc3QiLCAic3RhdHVzIiwgIm1lbW9yeVRlc3QiLCAibWVtb3J5X2JlZm9yZSIsICJ0ZXN0X2NvdW50IiwgInRlc3Rfc2l6ZSIsICJmb3JjZV9nYyIsICJwYXJzZUJvb2xlYW4iLCAibWFsbG9jX3RpbWVfc3RhcnQiLCAiYWxsb2NhdGVNZW1vcnkiLCAibWFsbG9jX3RpbWVfbXMiLCAiZ2NfdGltZV9zdGFydCIsICJnY190aW1lX21zIiwgIm1lbW9yeV9hZnRlciIsICJtZW1vcnlfZGVsdGEiLCAiY2FsY3VsYXRlTnVtZXJpY0RlbHRhcyIsICJmYWN0b3IiLCAidGVzdF90b3RhbF9hbGxvY19tYiIsICJidWZmZXIiLCAiaW5kZXgiLCAib2JqMSIsICJvYmoyIiwgImRlbHRhIiwgInN0cmluZ192YWx1ZSIsICJsb3dlckNhc2VWYWx1ZSIsICJoZWFkZXJUZXN0IiwgImxvZ2dpbmdNaWRkbGV3YXJlIiwgIm5leHQiLCAidmFsdWVzIiwgInN0YXR1c0NvZGUiLCAiaGVhZGVycyIsICJlbnZCYXNlUGF0aE1pZGRsZXdhcmUiLCAiYmFzZVBhdGgiLCAic3RyZWFtaW5nVGVzdCIsICJkZWxheU1zIiwgImkiLCAicmVzb2x2ZSIsICJzc3JCdW5kbGVGaWxlVGVzdCIsICJmaWxlTmFtZSIsICJkYXRhIiwgImZzIiwgImpzb25EYXRhIiwgImVycm9yIiwgImdlbmVyYXRlUmFuZG9tVGV4dCIsICJudW1DaGFycyIsICJhbHBoYWJldCIsICJyZXN1bHQiLCAic3RyZWFtaW5nUmVzcG9uc2VMYXJnZSIsICJzdGFydFRpbWUiLCAiaXRlbSIsICJ3aW5zdG9uTG9nZ2luZyIsICJsb2dnZXIiLCAid2luc3RvbiIsICJkZWxheWVkTG9nZ2luZyIsICJkZWxheSIsICJtYXNzTG9nZ2luZyIsICJjb3VudCIsICJ0ZXh0RW5jb2RlciIsICJzaXplIiwgIm1lc3NhZ2UiLCAic2l6ZUluS0IiLCAibGFyZ2VMb2dnaW5nIiwgIm1zZyIsICJ0cmFjZUxvZ2dpbmciLCAic3RhcnQiLCAidHJhY2UiLCAiY3J5cHRvIiwgImRhdGFTdG9yZVRlc3QiLCAic3RvcmUiLCAiRGF0YVN0b3JlIiwgImVyciIsICJEYXRhU3RvcmVVbmF2YWlsYWJsZUVycm9yIiwgIkRhdGFTdG9yZU5vdEZvdW5kRXJyb3IiLCAiRGF0YVN0b3JlU2VydmljZUVycm9yIiwgInNlY3JldHNNYW5hZ2VyVGVzdCIsICJzZWNyZXRJZCIsICJjbGllbnQiLCAiY29tbWFuZCIsICJlcnJvckNvZGUiLCAiZXJyb3JNZXNzYWdlIiwgInByb3h5VHJhbnNmb3JtYXRpb25UZXN0IiwgInNpdGVJZCIsICJhdXRoSGVhZGVyIiwgImNvb2tpZXMiLCAiY29va2llTWFwIiwgImNvb2tpZSIsICJleHBlY3RlZENvb2tpZU5hbWUiLCAiZXhwZWN0ZWRDb29raWVWYWx1ZSIsICJzZmRjRHdzaWRGcm9tSGVhZGVyIiwgInZhbGlkYXRpb25zIiwgImV4cGVjdGVkQXV0aEhlYWRlciIsICJhbGxWYWxpZGF0aW9uc1Bhc3NlZCIsICJpbXBvcnRfY2xpZW50X2xhbWJkYSIsICJpbXBvcnRfY2xpZW50X3MzIiwgImltcG9ydF9jbGllbnRfY2xvdWR3YXRjaF9sb2dzIiwgImltcG9ydF9jbGllbnRfZHluYW1vZGIiLCAiaW1wb3J0X2xpYl9keW5hbW9kYiIsICJoYXNFcnJvck5hbWUiLCAiZXJyb3IiLCAibmFtZSIsICJhd3NFcnJvciIsICJpc29sYXRpb25PcmlnaW5MYW1iZGFUZXN0IiwgImlucHV0IiwgImNsaWVudCIsICJlIiwgImlzb2xhdGlvblMzVGVzdCIsICJyZWdpb24iLCAiaXNvbGF0aW9uTG9nc1Rlc3QiLCAicmFuZG9tU3RyaW5nIiwgImlzb2xhdGlvbkRhbFRlc3QiLCAidGFibGVOYW1lIiwgImRkYkNsaWVudCIsICJleGVjdXRlSXNvbGF0aW9uVGVzdHMiLCAicGFyYW1zIiwgInRlc3RzIiwgInJlc3VsdHMiLCAidGVzdCIsICJrZXlzIiwgImZuIiwgImtleSIsICJvYmoiLCAiaXNvbGF0aW9uVGVzdHMiLCAicmVxIiwgInJlcyIsICJpbXBvcnRfbWV0YSIsICJleHRyYVJlbWFwcGVkSGVhZGVyc01pZGRsZXdhcmUiLCAicmVxIiwgInJlcyIsICJuZXh0IiwgImNyZWF0ZVJlcXVlc3RUaW1pbmdNaWRkbGV3YXJlIiwgImFwcCIsICJhZnRlclJlc3BvbnNlIiwgInJlc3BvbnNlVGltZSIsICJtZXRyaWNzIiwgImdldERpbWVuc2lvbnMiLCAicmVxdWVzdFJlc3VsdCIsICJjcmVhdGVBcHAiLCAiZXhwcmVzcyIsICJNZXRyaWNzU2VuZGVyIiwgImNyZWF0ZU1SVENvbW1vbk1pZGRsZXdhcmUiLCAiaXNMb2NhbCIsICJfX2Rpcm5hbWUiLCAicGF0aCIsICJycEV4dGVuc2lvbiIsICJyZXF1ZXN0UHJvY2Vzc29yUGF0aCIsICJwcm94eUNvbmZpZ3MiLCAiY3JlYXRlTVJUUmVxdWVzdFByb2Nlc3Nvck1pZGRsZXdhcmUiLCAiY3JlYXRlTVJUUHJveHlNaWRkbGV3YXJlcyIsICJwcm94eSIsICJzdGF0aWNBc3NldERpciIsICJjcmVhdGVNUlRTdGF0aWNBc3NldFNlcnZpbmdNaWRkbGV3YXJlIiwgImNyZWF0ZU1SVENsZWFuVXBNaWRkbGV3YXJlIiwgImxvZ2dpbmdNaWRkbGV3YXJlIiwgImVudkJhc2VQYXRoTWlkZGxld2FyZSIsICJleGNlcHRpb24iLCAidGxzVmVyc2lvblRlc3QiLCAiY2FjaGVUZXN0IiwgIm1lbW9yeVRlc3QiLCAiY29va2llVGVzdCIsICJoZWFkZXJUZXN0IiwgImlzb2xhdGlvblRlc3RzIiwgInJlc3BvbnNlSGVhZGVyc1Rlc3QiLCAibXVsdGlWYWx1ZUhlYWRlcnNUZXN0IiwgInN0cmVhbWluZ1Rlc3QiLCAic3NyQnVuZGxlRmlsZVRlc3QiLCAic3RyZWFtaW5nUmVzcG9uc2VMYXJnZSIsICJzZXRTdGF0dXNUZXN0IiwgIndpbnN0b25Mb2dnaW5nIiwgImRlbGF5ZWRMb2dnaW5nIiwgIm1hc3NMb2dnaW5nIiwgImxhcmdlTG9nZ2luZyIsICJ0cmFjZUxvZ2dpbmciLCAiZGF0YVN0b3JlVGVzdCIsICJzZWNyZXRzTWFuYWdlclRlc3QiLCAicHJveHlUcmFuc2Zvcm1hdGlvblRlc3QiLCAiYmFzaWNBdXRoIiwgImVjaG8iLCAiaW1wb3J0X25vZGVfdXRpbCIsICJEZWZhdWx0SGFuZGxlciIsICJCYXNlSGFuZGxlciIsICJfX25hbWUiLCAiYXBwIiwgImZyYW1ld29yayIsICJhZGFwdGVycyIsICJyZXNvbHZlckZhY3RvcnkiLCAiYmluYXJ5U2V0dGluZ3MiLCAicmVzcG9uZFdpdGhFcnJvcnMiLCAibG9nIiwgImV2ZW50IiwgImNvbnRleHQiLCAiY2FsbGJhY2siLCAiYWRhcHRlciIsICJzZXRDdXJyZW50SW52b2tlIiwgInV0aWwiLCAicmVxdWVzdFZhbHVlcyIsICJyZXNwb25zZSIsICJzdGF0dXNDb2RlIiwgImJvZHkiLCAiaGVhZGVycyIsICJpc0Jhc2U2NEVuY29kZWQiLCAic3VjY2Vzc1Jlc3BvbnNlIiwgInJlcXVlc3QiLCAid2FpdEZvclN0cmVhbUNvbXBsZXRlIiwgIlNlcnZlcmxlc3NSZXNwb25zZSIsICJpc0JpbmFyeSIsICJlbmNvZGluZyIsICJsb2dCb2R5IiwgIkNhbGxiYWNrUmVzb2x2ZXIiLCAiX19uYW1lIiwgImNhbGxiYWNrIiwgImV2ZW50IiwgImxvZyIsICJyZXNwb25kV2l0aEVycm9ycyIsICJhZGFwdGVyIiwgImRlbGVnYXRlZFJlc29sdmVyIiwgInJlc3BvbnNlIiwgImVycm9yIiwgInRhc2siLCAiQWxiQWRhcHRlciIsICJfQWxiQWRhcHRlciIsICJvcHRpb25zIiwgImJ1aWxkU3RyaXBCYXNlUGF0aCIsICJfX25hbWUiLCAiZXZlbnQiLCAiYWxiRXZlbnQiLCAibWV0aG9kIiwgInBhdGgiLCAiaGVhZGVycyIsICJnZXRGbGF0dGVuZWRIZWFkZXJzTWFwIiwgImJvZHkiLCAiYnVmZmVyQm9keSIsICJjb250ZW50TGVuZ3RoIiwgImdldEV2ZW50Qm9keUFzQnVmZmVyIiwgInJlbW90ZUFkZHJlc3MiLCAicmVzcG9uc2VIZWFkZXJzIiwgImlzQmFzZTY0RW5jb2RlZCIsICJzdGF0dXNDb2RlIiwgIm11bHRpVmFsdWVIZWFkZXJzIiwgImdldE11bHRpVmFsdWVIZWFkZXJzTWFwIiwgImVycm9yIiwgImRlbGVnYXRlZFJlc29sdmVyIiwgInJlc3BvbmRXaXRoRXJyb3JzIiwgImxvZyIsICJlcnJvclJlc3BvbnNlIiwgInF1ZXJ5UGFyYW1zIiwgImdldFBhdGhXaXRoUXVlcnlTdHJpbmdQYXJhbXMiLCAiQXBpR2F0ZXdheVYxQWRhcHRlciIsICJfQXBpR2F0ZXdheVYxQWRhcHRlciIsICJwYXJ0aWFsRXZlbnRWMSIsICJrZXlzVG9Mb3dlcmNhc2UiLCAibXVsdGlWYWx1ZUhlYWRlcktleSIsICJoZWFkZXJWYWx1ZSIsICJyZXNwb25zZSIsICJzaG91bGRUaHJvd09uQ2h1bmtlZFRyYW5zZmVyRW5jb2RpbmciLCAiZ2V0RGVmYXVsdElmVW5kZWZpbmVkIiwgInZhbHVlIiwgInF1ZXJ5U3RyaW5nS2V5IiwgInF1ZXJ5U3RyaW5nVmFsdWUiLCAiQXBpR2F0ZXdheVYyQWRhcHRlciIsICJfQXBpR2F0ZXdheVYyQWRhcHRlciIsICJhcGlHYXRld2F5RXZlbnQiLCAiY29va2llcyIsICJnZXRGbGF0dGVuZWRIZWFkZXJzTWFwQW5kQ29va2llcyIsICJ0cmFuc2ZlckVuY29kaW5nSGVhZGVyIiwgIkF3c1NpbXBsZUFkYXB0ZXIiLCAiXyIsICJFbXB0eVJlc3BvbnNlIiwgIkR5bmFtb0RCQWRhcHRlciIsICJfRHluYW1vREJBZGFwdGVyIiwgImR5bmFtb0RCZXZlbnQiLCAiRXZlbnRCcmlkZ2VBZGFwdGVyIiwgIl9FdmVudEJyaWRnZUFkYXB0ZXIiLCAiZXZlbnRCcmlkZ2VFdmVudCIsICJERUZBVUxUX0xBTUJEQV9FREdFX0RJU0FMTE9XRURfSEVBREVSUyIsICJERUZBVUxUX1ZJRVdFUl9NQVhfUkVTUE9OU0VfU0laRV9JTl9CWVRFUyIsICJERUZBVUxUX09SSUdJTl9NQVhfUkVTUE9OU0VfU0laRV9JTl9CWVRFUyIsICJMYW1iZGFFZGdlQWRhcHRlciIsICJfTGFtYmRhRWRnZUFkYXB0ZXIiLCAiZGlzYWxsb3dlZEhlYWRlcnMiLCAiZGlzYWxsb3dlZEhlYWRlciIsICJsYW1iZGFFZGdlRXZlbnQiLCAiZXZlbnRUeXBlIiwgInJlcXVlc3QiLCAiY2xvdWRGcm9udFJlcXVlc3QiLCAicGF0aEZyb21PcHRpb25zIiwgImRlZmF1bHRQYXRoIiwgImJ1ZmZlciIsICJob3N0IiwgInByb3BzIiwgInJlc3BvbnNlVG9TZXJ2aWNlQnl0ZXMiLCAibWF4U2l6ZUluQnl0ZXMiLCAiYWNjIiwgImhlYWRlcktleSIsICJoZWFkZXIiLCAiZnJhbWV3b3JrSGVhZGVycyIsICJzaG91bGRVc2VIZWFkZXJzRnJvbUZyYW1ld29yayIsICJwYXJzZWRCb2R5IiwgIm9yaWdpbmFsSGVhZGVycyIsICJoZWFkZXJzQXJyYXkiLCAiaGVhZGVyS2V5TG93ZXJDYXNlIiwgInN0cmlwSGVhZGVySWYiLCAiY29udGVudCIsICJTM0FkYXB0ZXIiLCAiX1MzQWRhcHRlciIsICJzM0V2ZW50IiwgIlNOU0FkYXB0ZXIiLCAiX1NOU0FkYXB0ZXIiLCAic25zRXZlbnQiLCAiU1FTQWRhcHRlciIsICJfU1FTQWRhcHRlciIsICJzcXNFdmVudCIsICJSZXF1ZXN0TGFtYmRhRWRnZUFkYXB0ZXIiLCAiX1JlcXVlc3RMYW1iZGFFZGdlQWRhcHRlciIsICJib2R5TGVuZ3RoIiwgImxvd2VyY2FzZUhlYWRlcktleSIsICJFeHByZXNzRnJhbWV3b3JrIiwgIl9fbmFtZSIsICJhcHAiLCAicmVxdWVzdCIsICJyZXNwb25zZSIsICJDT05URU5UX1RZUEUiLCAiWF9PUklHSU5BTF9DT05URU5UX1RZUEUiLCAicHJvY2Vzc0xhbWJkYVJlc3BvbnNlIiwgInJlc3BvbnNlIiwgImV2ZW50IiwgImNvcnJlbGF0aW9uSWQiLCAiam9pbmVkSGVhZGVycyIsICJhZSIsICJvcmlnaW5hbENvbnRlbnRUeXBlIiwgImNyZWF0ZUxhbWJkYUhhbmRsZXIiLCAiYXBwIiwgImNvbnRleHQiLCAiY2FsbGJhY2siLCAic2VydmVybGVzc0FkYXB0ZXJIYW5kbGVyIiwgIm4iLCAiciIsICJ2IiwgImwiLCAieCIsICJlcnIiLCAibXJ0QXBwIiwgImNyZWF0ZUFwcCIsICJnZXQiXQp9Cg== diff --git a/packages/mrt-reference-app/build/static/example.css b/packages/mrt-reference-app/build/static/example.css new file mode 100644 index 000000000..3e3e04259 --- /dev/null +++ b/packages/mrt-reference-app/build/static/example.css @@ -0,0 +1 @@ +This file is used in the E2E tests to verify that correct header values are set. \ No newline at end of file diff --git a/packages/mrt-reference-app/build/static/example.eot b/packages/mrt-reference-app/build/static/example.eot new file mode 100644 index 000000000..e8001a412 --- /dev/null +++ b/packages/mrt-reference-app/build/static/example.eot @@ -0,0 +1 @@ +This file is used in the E2E tests to verify that correct header values are set. diff --git a/packages/mrt-reference-app/build/static/example.gif b/packages/mrt-reference-app/build/static/example.gif new file mode 100644 index 000000000..3e3e04259 --- /dev/null +++ b/packages/mrt-reference-app/build/static/example.gif @@ -0,0 +1 @@ +This file is used in the E2E tests to verify that correct header values are set. \ No newline at end of file diff --git a/packages/mrt-reference-app/build/static/example.jpe b/packages/mrt-reference-app/build/static/example.jpe new file mode 100644 index 000000000..3e3e04259 --- /dev/null +++ b/packages/mrt-reference-app/build/static/example.jpe @@ -0,0 +1 @@ +This file is used in the E2E tests to verify that correct header values are set. \ No newline at end of file diff --git a/packages/mrt-reference-app/build/static/example.jpeg b/packages/mrt-reference-app/build/static/example.jpeg new file mode 100644 index 000000000..3e3e04259 --- /dev/null +++ b/packages/mrt-reference-app/build/static/example.jpeg @@ -0,0 +1 @@ +This file is used in the E2E tests to verify that correct header values are set. \ No newline at end of file diff --git a/packages/mrt-reference-app/build/static/example.jpg b/packages/mrt-reference-app/build/static/example.jpg new file mode 100644 index 000000000..3e3e04259 --- /dev/null +++ b/packages/mrt-reference-app/build/static/example.jpg @@ -0,0 +1 @@ +This file is used in the E2E tests to verify that correct header values are set. \ No newline at end of file diff --git a/packages/mrt-reference-app/build/static/example.js b/packages/mrt-reference-app/build/static/example.js new file mode 100644 index 000000000..b2a8d963b --- /dev/null +++ b/packages/mrt-reference-app/build/static/example.js @@ -0,0 +1 @@ +/* This file is used in the E2E tests to verify that correct header values are set. */ diff --git a/packages/mrt-reference-app/build/static/example.json b/packages/mrt-reference-app/build/static/example.json new file mode 100644 index 000000000..17edacea1 --- /dev/null +++ b/packages/mrt-reference-app/build/static/example.json @@ -0,0 +1,3 @@ +{ + "message": "This file is used in the E2E tests to verify that correct header values are set." +} \ No newline at end of file diff --git a/packages/mrt-reference-app/build/static/example.mjs b/packages/mrt-reference-app/build/static/example.mjs new file mode 100644 index 000000000..b2a8d963b --- /dev/null +++ b/packages/mrt-reference-app/build/static/example.mjs @@ -0,0 +1 @@ +/* This file is used in the E2E tests to verify that correct header values are set. */ diff --git a/packages/mrt-reference-app/build/static/example.otf b/packages/mrt-reference-app/build/static/example.otf new file mode 100644 index 000000000..e8001a412 --- /dev/null +++ b/packages/mrt-reference-app/build/static/example.otf @@ -0,0 +1 @@ +This file is used in the E2E tests to verify that correct header values are set. diff --git a/packages/mrt-reference-app/build/static/example.png b/packages/mrt-reference-app/build/static/example.png new file mode 100644 index 000000000..3e3e04259 --- /dev/null +++ b/packages/mrt-reference-app/build/static/example.png @@ -0,0 +1 @@ +This file is used in the E2E tests to verify that correct header values are set. \ No newline at end of file diff --git a/packages/mrt-reference-app/build/static/example.svg b/packages/mrt-reference-app/build/static/example.svg new file mode 100644 index 000000000..3e3e04259 --- /dev/null +++ b/packages/mrt-reference-app/build/static/example.svg @@ -0,0 +1 @@ +This file is used in the E2E tests to verify that correct header values are set. \ No newline at end of file diff --git a/packages/mrt-reference-app/build/static/example.ttf b/packages/mrt-reference-app/build/static/example.ttf new file mode 100644 index 000000000..e8001a412 --- /dev/null +++ b/packages/mrt-reference-app/build/static/example.ttf @@ -0,0 +1 @@ +This file is used in the E2E tests to verify that correct header values are set. diff --git a/packages/mrt-reference-app/build/static/example.txt b/packages/mrt-reference-app/build/static/example.txt new file mode 100644 index 000000000..248bc5536 --- /dev/null +++ b/packages/mrt-reference-app/build/static/example.txt @@ -0,0 +1,7 @@ +This file is used in the E2E tests to verify that Cloudfront is compressing content properly. + +Cloudfront only compresses files that are 1,000 bytes - 10,000,000 bytes in size +For more details check: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/ServingCompressedFiles.html + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque id dolor vitae neque feugiat convallis. Nullam eleifend est at justo commodo facilisis. Vestibulum consectetur ultricies facilisis. In non ligula a ipsum pretium aliquet. Cras vel ligula id lectus tristique viverra sed eu neque. Vivamus sit amet nulla id tortor efficitur finibus. Curabitur ultrices auctor sem, ut consequat nulla interdum ut. +Etiam auctor massa nec mauris ullamcorper, vitae bibendum nisl tempus. Nulla vel facilisis ante, in ultricies mi. Praesent laoreet faucibus mauris. Donec cursus erat ac malesuada mattis. Sed vehicula, erat id consequat fringilla, felis justo fringilla nulla, ac feugiat dui velit in est. Nullam ut lectus et purus lacinia congue a vitae lectus. Fusce rutrum elit at hendrerit malesuada. \ No newline at end of file diff --git a/packages/mrt-reference-app/build/static/example.woff b/packages/mrt-reference-app/build/static/example.woff new file mode 100644 index 000000000..e8001a412 --- /dev/null +++ b/packages/mrt-reference-app/build/static/example.woff @@ -0,0 +1 @@ +This file is used in the E2E tests to verify that correct header values are set. diff --git a/packages/mrt-reference-app/build/static/example.woff2 b/packages/mrt-reference-app/build/static/example.woff2 new file mode 100644 index 000000000..e8001a412 --- /dev/null +++ b/packages/mrt-reference-app/build/static/example.woff2 @@ -0,0 +1 @@ +This file is used in the E2E tests to verify that correct header values are set. diff --git a/packages/mrt-reference-app/build/static/favicon.ico b/packages/mrt-reference-app/build/static/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..a15a8f348b8b472b716e4cc5efb3baa760cc4135 GIT binary patch literal 5430 zcmeI0O-NKx6vwYk!!U^G5FrwS6H-%1h(xpqQE4@_Xf{`f(hmp`KWrG_5cILlB2RDf3%M znE)JO{CjX*z9ADJo6W`S(AN(SAOlv{%4OOn6Xf>a+Q43rImF#F(xEZbgUASNjdonU zNn;%6e^8!@K_A#Wb3L1zXxQ|rw{`E%r@r#O_9J^|Ce1$N0q#x|sl43?CA|TD_Y_}x zJCxV^VFI3l?))sA1HCI@zxKWKu-yiF2fl#v&ju;;i~1Ajg}l7uWxH5EwgRj>jNA`{ zum&4`^UE{zpM;~(1)ZS1+R@&S3j^pVKc0pGxB_orJKySChIx1f8F>ndVZ`-Y`zS zPcesSWt_uEgBR06f>PGZ@W7f!`Yp~<}`D-hg3Whpu3aX8_Ge@ zn^soeh3qkpkF<|Nr|y={AmtF`pYICJhk4B4Gb;a-b=E7s_5waG(WcmkiG}WRwdb&e zU)^!V|7{KYYrVY?U=N0nwTQv6dj@qUbO%2Dtu1 z+`}ZSm0=Fgu`vj`*Av*(cc)?KfmZ7O__lFSAKZoQVz7d~>}QIMdrkXU(Dy_ACTnwP zMi%sI{cB#JxB4P{fZRN2|4scJXdSw%CtwsFLmD2z1?UFfzw6LdE@;MI7jgh@z%}Yg zakekHbKUonh;Vi#7MUwgZH_4m7~9`kRl>iU*>nt?|1%r|9IDX);j0B>)o~#)^fYs&t~ua zdA{H0`#dwBX9hq&g#-l$fo9E`1=?r%2b%c;dcWsv(n$~~EDW>>1Om+i&6_nBWMz3b z3-p8K$D)6Kf|gjmQ)VsxkN3+h@A0#i{r7EVS+-dNn)4sqgFyMSZ2#+h$*kZ0$9}FP zfoA{rZ5~)&K?gIAr6e3nOIR12awana1d2zcWSvOMIFYb!e|XrslS!vf{JYh^M`$^Y z|9t)7-Vgt|mt}MAS^ekxd5!;WIwJz@`nO&GQ(yn?bQ>WA4@bLPyp zoUBh+tq?^@ose(2(L^991sJ-uJP z4h{{ENWaNO$0yX2nkntHPXBMaW`V5!>y-W9w##x7X8kaGw$*Iwf7><&tA@7zcupv%HwIBKmP3K`Ne7c-=_UX%l@A=?85)6 zmi<@5{ztodK?|)cH^5S>r64e91_aiFegob6;rx%l3vdd6s{ptWfM)^lI0QrhGz2sR zGz2sRGz2sRGz2sRGz2sRGz2sRGz2sRGz2sRGz2sRGz2sRGz2sRGz2sRGz2sRGz2sR zGz2sRGz2sRGz2sRGz2sRGz2sRGz2sRGz2sRGz2sRGz2sRGz2sRGz2sRGz2sRGz2sR zGz2sRGz2sRGz2sRGz2sRGz2sRGz2sRGz2sRGz2sRGz2sRGz2sRGz2sRGz2sRGz2sR zGz2sRGz2sRGz2sRGz2sRGz2sRGz2sRGz2sRGz2sRGz2sRGz2sRGz2sRGz2sRGz2sR zGz2sRGz2sRGz2sRGz2sRGz2sRGz2sRGz2sRGz2sRGz2sRGz2sRGz2sRGz2sRGz2sR zGz2sRGz2sRGz2sRGz2sRGz2sRGz2sRGz2sRGz2sRGz2sRGz2sRGz2sRGz2sRGz2sR zGz2sRGz2sRGz2sRGz2sRH2g0O$shV#IR!`E1e4%fHHVVhlGD)>$C0kRy1E?;DcbmS z(jFg5{G~T-$p>|0-3$nFwPQidZzfsM@^E&6GOk0iuTP`5g6wsB+g@`}(lG-P8kgB) zLNT}8-hL4$$Nw`auMFU141(`aiVoz6UsmvG&Zx$p#xvHl_GqbUb5qI9=~Zu+&wy&W z+?SZ19TRSQl$NZ(@+wJX`3kZ5B)oSutZ+H5mTi*sC%^p8e3w3$l9v_`x*lXr{grB1 z6Z(}JhB@@NUN#=EFT2Pdfp*_5HV^4%K(9-lowFHlZn63^lZ!rTO^x(55qxR4BZJk) ztBe(dHm>o#x%fe*D8v4w44d`Fc>vE1dy}mM+Ak#nxJ}>a4xi3|i7M7Ru;8b%-$3a1L8u9vH*a5RfU z!cH36;-`|wgXQQ`K4!}~w=#|rtzBn8BpzqlmZ_1c4KGh_gUo=ks_fyrc`EAGu^G@n zU6=VI-ubi@?$rF2aW6u|ZBj?x<6&k~p{scbw?Evx)BNcT+|-Z4-FBY=Rp2)bU7R{P zzGVhfY}iG#{wOA>Nb(pk91LywL$DjdG^P2;+{WJgE_&jM`>v_b z*wGc(xDxagQjHpa+}uf_eAldj$Y!hXY{Lx5<7ZQ`@kH6?DWs*jV4)}QzIM7v8g zMwKxsG`eeqjJ+muv`|lp0AJyni3ro_sDi2Z@h&N<2f|yHQ^2i~soq9RrC6IU1e$Sy z=PaKA^sTAtp!u(4QzxM?Xa@AdZBBj6o8Q!Q!Nx7(ggmNAQv&Zf8#MWLSC?8nI-n7a zZ#-E;S#xbv&nx~mEJG?!Mi~5!doL|F-A-uH+AqevTTL{VeVVvtzr|BxVxiuJxagIU z?Nzwy%;*`=gc7%Q8fwsbkf&|O*Vq-@6aT(e9DUlni^|{#?hlD;cxXO$at0KON5KZ_ z&uulIF#pz$cUxO^1N4@ZK@1z&L2vy_urs=a-2yo zhHvKtvMW8!bH<_1enl=bZ4v&y4;<)grj@onL!2P&aVF!g=N`L6dL8Fxs#sY9(B$dEh$S$;t`f;ZnJLqS2yS0%oWE#Y?mhFi(o2Hz ze4WRoM?45w4SF=|k2#yFwD;qi$u~%|gNC<|xia8B3X02`0bSJH^_?sh!QGpC>EF@+ zxQ!3X)aiW><8@eV?VaJ3=(54JF(}if{*#gKI`bf$;!-t%dW#op+%&$eGxF%f>v&b> z%Yg7ym7Lgb*t_W-+kYnxT54J@8_98qUt2%l>zf3gZ|F6K*K!B&H5(mpubk6!v1V{C zh7b_F#QksOL2LkcfQ<94WxYS!t28!HdS^gHg-H%6KS6o{A>8hR`LqtrdFd^^_->0{ zLs@ZV3+pkXQbBz;PAGwAmp$`l2)3{VXc3Mg=k#Yr6Ri9L@2Jo9M5IBi=;<$2JR+8; zf%RU(+xdI)T~Xvm#TC5?KF1%iMyp`lL>&vfO(?8tnBMW_aOw#hR_BnKCgy4IWU%rAbaUs4WKxX5ui|h%14%mp~;^RQu4~WbhHG z1U$HZJhN8e1{HtJM^7*^P011U7lkDcyJkRd@|gw=nq5O-cny62`_|k}hw_tG=${YT zr+F{X;WO99QUgX0@oG>~YN-VJwl%2zxmbg2M4-H+>e17$zZg7+U5_1X*>`&uX?pQl zV|!@T0hJdLMlqv#UHvF*VQY}9;aSW?xIrwIaIg|y*l!vCpnv-H&-0jjpj-|qh15ar z&+lXqNK!Jla?J6IZQK@El8am?V=I#3VXl9S_$SPO(7aJ=Jh8E=K1@!CX3D8L!pp^( zZdW0Yq-i;0(ohr=ad`Z8>v~6|Yz((?q7m`EM+7l&HE=}GkG1N20=DF#U}WkJ zo#sIsRxhW96>Eekj}m<}!ND3yL|CnGQV9*)lDFS?A<@$1c`TcjuJp=#V_;?qruemT zF62l`Bwv+SStJzJS}vcVno4^AisiWvFPzDiKGV!CAH+dxjXib~?7Yxkp%6}j#-Rm< zg31!(Pmh-73?x!3F+}4<)vi<)gY%VPTfVQ?tkHC`qT87gA^B^Fr!H6*AFw#s{_rHX zT}SlABYQl1vrzSzbC&;%@+y+pBtiN&>0l-|$t@3AJ+jTM&+h!z{A^=tce?2}Bs9)d z!mJaBm}Xl^T6SMlDIXyt#}Zx|Tdq6r_^|wZILO!$gw+!^Eki*vX=0kfgp)T#rAV5E zL~XrHE*@on-9tO>6W!P1y`D_ywljfaT3x(WG)SN*Ni|C=dhScvE~ufBCJj36hM!Xi z=f}Gzovq21KKTrY8j&BCQh?F&RRl0+e-wm?+1`|d1XGz+>u6_oh@Ly7=iZreAd*Q( zN{-}XGJ811ZQq5TLLQZ?9>%#r{NyZ!P#^#H3E44du{S99uJb2{EoPgR*wnBzv4ksx zFx19?A8!wpgn9A8qB(h*Z~ncFCqAxQlD0(F+S)RWUKuifgO1t>*K;%i#qy6z9yDbV zDo`P^IUGp-0?(UeubSxj!L$=B&k9cyNW*Q>)Zm(dZAhgEUpCfrina2d3Re=Ty zl+zZrI7>B<_&Ri8*EC+dAn{JyFRl8YwhD>`)w1?AsLFOB;xW;Th0hZl*(=*|a2W zSFzv=-LUP6KlGa-^1Ny9e#k+8thJC!masEmu{%-UU6SiA2AAEhG1Rt~V zg!;N%QlaS@xxVy{yDmEj!Qj|H<&sc6s`2$G{Mq04n5ALDd$-dLh1%W^?8_#RoGA(4 zhIvTujwQwb4K60a#i*^gGx&g|Uz)}0OLjB)+@s>y?%?%YT13zKulB^jWLMOoM2AB) z1I5g0o?M^3q43XbhZ+1m!2y`Gc1}5Gd4~pk9=zQ1 z<6ZxN?B8s3_it2K%Z62Eg6UjE0mJC~srUrfmZnBC&9v>gsLPnJCM1e$vj;bEO;#(l zA`B2#${t;BUuL#%>@Z}GJbfow0o&$cJ$)1!SS7;d=Fm4 zNz%jTg;qe)5lA`$NyqO??p%hP2z3qzH%A%Jt^v*7R%r z!I=7>MQaZ{U$+evyz!c}y)8!*Rtm9z`2&Y|FnHnUA;X`SBegpCL zdc4g@!JF2Ghx4d@uEr)=EivZV_JZl^VER;e+pu5;#B2QAGrcSP@{Vg=OUnpt+qkHB z5_e+TVp_DOtoR`Uq0(gefz8Gt?yPW)Jt>Iz^zYA z57VYgdGI#9VX_ZDJOv4e8AhNryw=j+Pl=u{eQaIje9uN|Ee!0Dt0F}-QA#KS8m*KF znv`}^O`WY7UA;YIdJT+(J{WDkXgmkB!qDdl^*w^q7o(&IO%>+-i0|euUT+#@gIRY@+%lH=S$il!d%7K7V1u6@pEK7gGC{ zQ%tX{{&K<>Mt69)poo#u)@sSr!EtTRl5DKkB|hfD555avno{?4C3p0K!6m(7jAml4 zD&?v;um+7_%9wIac@I8dgB1gxo|Cw`#V%gB*4&(yeB=@JL9!uEVdN`J=UNg5xd1Qb|TnI$YRks7l6A^omP`;`jhcT(} z^aovo$38u_e_?3(L}aB3Me#j+#A?(Yp4}JTs%~?*hJBIfVhgj@HXR5s?Y} zE`c_h$DRSDn_|6r@r%@UOY;fv_*UmhZ6z(bUJ{0)mQU);7_pq=frZ3WO9(KQzVDfR zS-{OHDX4(!?EG9x9uBLGszV(r>B&B=QtRfYw}m62`W`1<#S_Elr}SexUfC6N9GaLn zG~O*`2>nlz@A}2Y2}KXt*Y!HrYa_UV(E2z}1;tpdlJSf3UzXz!Unskfw$Cx1_jvXc zxZLd&rC%lrl}ibuUz_`=8~TtbO$ZzhjuYPBST7sCK=wI~Rd)oWa{Z;8xaEAcrCZ)1 z7IVJ5wF!nx_}fmf3Te!`*VIY;9^;TyTKRxC^?=aYqKQ_|BQ4D17h z>BoZLAQ-}H&F1U#Uiv+BZQZoXVFq;5oRQw0Rew$Ok@H2u)$giL8l^UMiNy>;-p7o% z(~f5K*?`hoa0kvzd_<1aMuc1L+5oemFBMbSFi{NA(j^#4WYANa7q17W=>w)<|A_#d zDj4eajLEuP%c&8Y9Yfr-;jMChwv39deHeCa2E^SqJJH_SxjWwaS_83(gUvG3aw}OW zrKbbr^KIEb2Txu7$38?&O3#%Ra6KEz?b*SIx}GdE&F;bN2O1^> zJz*}I>O1yyPmA*VUaK=c)>IoC?F>l6Yal_D{Y{8(GoUYH?~}FlSh0#ar~`jG%G>qq z7axB+tK75T2m+Pml|d^eQsHWeQTtqTpm)l0von(mFk%T@_K#=xqWs1dt52ysy}F<* zFF7W)%P=J*fJY@)W0J!sV&wcsmVt@_Naj(&roFQl(syt-1%T|q+yEI?$YcwqqiYRp zZH)2lMrh@uuTx2QtjC9?10x`S#MiM#GCkXx(1Ls;IJ2ws~vtjGm{7xYC`mr5s*kZFTAK&Fk*Bx*dJXxoFEV0vtX1AH@3A~e z(M{zB-R4R5uA-(y7k`nb-QIErO}<_b-L-A~DvB2A~}T6|O41o2^aJ zJNVS%-{AwFE!Ll&!sIV3TpD(Dp5o25i{M?xiPWh~?u zKC`_kz2(rE)n{GW)qYx(lo!)$F8}Cst#mpvPIOXI%ktOwmHT};ZfBzlEGr{6$|d77 zphaEx!(hL2S~G+UQn`6*BC{qmI{*%iDbMfHmn+M^4~Ab!`aR{v&>)ArgVgf9B?Pss z_|*fNgb)TtN+{)8547RnXueL1Fi!Rg_KO=d3YKp$#g*NSW^eYo}BadxO~RCyF9l+)35P(w12s`h-?rCWUYzoa}aLLt^3PwMx$DUOz)5 zBtuRJ=rz+k?|0RuJ}sNHJ?k&c8#lJL2L?l^5nl3cA0DDcg#eezIcTk_vSiodkiW`) z!Vc(DNovjgAU%?U)AB9l4Rz4nB#4|E@oIDily`hAF8<=HEra%p)9~f#{nXFwDpBWk z5g{8UuPuTHj$BBh=B)nkeg2C8%nZnX2Beo6tg*CVGa}~riD;!!4CPda@T|6^iq;%O zN(2YL)siH?LfwXcOGd!@aWTb{%}x2E;!&}H%X?6-cH8@CtKA%*DSy%tjkjh7B;Wt7 z)in|-rc1bR`A%GAF^0_$wZ)`;l`XTnap_je2M<5A6?IS|xV$q`GMrV+g^6EAN9bEc37X+``NCmQ7Y4#v>ovo4ooh;c8GybsYTUq*~{NwH%el`>x6sv0a%Nd_`y+ zj~Jb3>P%{~gd4)akweLEH|P>dqt$gr1AN?d!!75?N4YZ~_g#|5-cz%&-AzlH58`Yg z5b`Kb_%Yx~Mzn;bfoO#z5a@4qsGLc=4FjpFTrd}toRi;4(Xc354X3vMD0wBeDy54@ zDI#8-+F)*Z-*>B=e81H({$d}g>ZNsn%rM_n6(k#z5MJv1^!cNKDN(ppFowLRX9je4 z)2Wt`_b;r=)I?uxN5l>yE6HG;Sv_GXwfOtnwhco}CaqTtGZTcN;Lp@|FUtmg+FCY9 z6mKOGOqrXm)iXncd`T1m`aYr_-&D&42O4yFP=^z?*KWPnXx?GcxzsOFnvAi=2a~c1 zmO)~CO>B1&QH@~ZvaTfFx?gT?AAaF@qDh@=vULAf_-}^fH9t(O?sc!n(FxyEjv$y7 z?LzfrG)CTCm{GjR7G>?@?G0=3Pb9TaA3r#>a;)NKKBu@}Jt^U)ornt32MAe4Nxme^ zEH66F`+c>iQ|a_s=e&d8taU9RcfZi0%VKZ`<2XdB#P?>$N7@l;|FR?_Z!!?QQvQUn2QRuSG7v{Z)ofb8O}(e}P+7#v2beq6L> zJIC`NYZ9qqUz1Z_@{vxwCa97oH^(ijyzIC3?o#iL*z>9SQk@> zZ|gAJ=*EooY9tlqdj05DgU4>a*tt8v-`DvlF6NkhjF0t<0Eur5T@^(r4u3FJtEizE zPW8sfIpIx;zJuhSt$(_?*YQG-waxp0bRAFsq#%^&0dXaXg{p5G1=@n(w*lMulGYyZ zIFxhqVtCr2)1y0VRHO6F*-}!R!y1@o?8y_2PC<}EECcfMU^w{W(~QRXKE3;1 zwp!1gdg-hi?603%R+sGSsR_&EGb9}7)TV82)QtRy3=^EI;T)J-?*C`3^}&Xl-YTMx zwXkfk>*}$-f}DGFHWg-45f1paXHH5&H8IDp|D68^uksM7^r-G?z`G@J@aWqs@6kfT zAdu7jY<5#|NL+8|US4gTJmLoxjN>2zxzVz@ka~i z4~!}MYegs9;6*8wWU3*zt6A=~9U`2`l0gBzQsy~ku9r(VAy-1e&0}#mONeL4-S(>} zEs{3Yg^%lDLg4TNlH>JhyWV|(r1mWtPrP;Umc~l>tm?Ll`(@X_c2XN|sM5YT99go^?f zf=qH7oFLBiw#TzfdH-I!J+&eQRWp6PeAFZr7)DJfl$Qlx_zTjX_-0+jCiUxC9$?zI7YRM)+STC*Ze;A z>M;LP-r)YUEh>_1bdQT?W1(t_f|cOuA}T4(?wI%U){TCmL*+&)lJJGr_p1Ax?U%5m zACpTK7oS~w;Y7pbQs)b4G3fLQORV#;{AyZcS0t@89~CBfQ-NoBZPC*fFcL$uroT9^ zLXPPO)}wjrEiv9n@Fl(O_6#V2aPniiI+nSPySn!V3uKR1P1^_56qbGYu~_8*Q_5P3 zAps7|0Igm8Kb4%!YmbYjs*K4&yM#WyEf{dQ#O!& zs|-V!_43J)-wOkMQ{0=gp@MQxHJhr!Ot#qEjbwOk6hH@^=N98*)5#|#QD};OZQwL% z>W}IB_wPD%bh$>aXkC=_EAuD6vE%vp5R9GraH#uh?m+beQC(z~kx#>+gw?+5%ieiS zO(yf|a}4s3m~Cx&tV>0t(K6g0ugv1!up_Y5D=Nud53Dx4YiVq3md&rSw<4 z-|SX9Z|R$sfbRsZy7uwWO>MDQ4v8S=QqNVyEtR9Scz5&s&d<}}{mk{h?JP^@63%64 zxqRhsns5G&<8#K^pi`=_$FgS@h??1U4s6#)Y3o*A}i> zF?B7;MT|3uIpAsA!A-Oc<)S$Fu(m>rqPGw#r{{LrH=f^$8KmP$c~4)o4)J}N&)1Q@`GQqG1t#YGB%ca6eN&G$f zcg4$rUAbinnc~70d4JV@!30)x$|amci1eQN@c4IM2#CAXUV%zKQ9y*};4)b|>v_=6q?{7&THqfx@lSekZ%Cr4bgS*A2*h-F| zDcSpFjpvXCXOM7fEVUzi+I9b3Hy2~l0?t}4BJmG}>9z;3{%b-{y9iini-q-uVosU3z)*GlZpgF|?ap(`v z&WF!;{CP-Y<)6zs%MC2t^f0+2B6O0*XMvY=d_9v}9Nw#gw`-Le-RP0f%ojfd-b*-| zh9&m+*fS%iaut#;Ek|O4nPwdf*F(L85G2!>5`Hs&8sq~ydUTK{m$y3f*Yt+g=)BZ& z9;3fyEIzY>Cv5e@g99(US_s;iIW=hGZ;6}&S?PyHLljV|mu#5VWxjamtLp5#5Ob4^ zW^mv6;oTU>9-Di{ml&{BI2qW`I95P2Fe)sU9qang^`^QIIhTW@^1{%gJoAfuVscxn&-J zluFqa1r5xOrDSF?RXDuDvl>9sTU9J?*xx5Sn_s*jOL>;z|i5JyH-TN3c@ z(2yy@#|OQF_5kp9^Ds3`<@;vm&E>P2#w}%w-o}7a(vg%2Jao+jPNS0JR3V!t&OJji zMGy!Aq26$KiFTi3`d`{-y!Av&XLWz}gKe7`=r9TJOFxH6n7ayxrN$jjC#596$7HcVyCrCX8Gw?=rAj=G`IP{l|W#qki(K!Ym|^_W;Kh=F(wqlYE>(>Hg1 z2=9Ei!+$BMcJ3MMh3v`p$SNZj5}T>&)QFHwWoTN@^D(~JMWR>B>8~#>A?jXwTb-ZJ z9ll7^SweH{?*8KXeubEc$ADqfAQvC!2T6Xg4y{~ZnVL`>c?{(Y-nc(7Wp8(GUoPp+ z2+23AxiLk7Fe;n%P~FArob5MQD}}>iih0*1WJju8>#>yxvId)yD_l!ZF-VP$LI`@* z;j&N6vK=jzQ$v-UAHtse@m~7P+MZ>}$9yUYtC0u^0fgEIIj1QJ8dh(;TE=IK1dCJxN$Ftym882o*yaQ)5smdsG<^rvb*+B8;-W|dgvda(aS|JBKG z<)}o!f)__24qvwu<$J%Mt+7`t3WOY*_t)f#6EI;GGel|fWpdh(?;g%BDwV+D&MB-X zZx9IdyW__rKy&RDzwRUY$aP;!DF@DNI~Wl?rXAJDW%^SYIsm$)QuD=LtUINkMt=4?#Ie&0z zs~;m(TVFOS?=`18vpViRR6*|te^p@GCbmbPa*FF(2tibTK^TD4_@4JH0$_JWHo zbLM)S4X{3KNVH!RBiQ7eIB%PriZcppO>^GoH=H!kl_G%&YngNPPlm{6>&;p6!d-bg z&Ie$n4(x_Pd~Knz6vBe`o3hw>g29X_T2KQsOcHG{nXu>XWMFrCtd6%EP?rsYmbZeb zaXs%6SV3qWLK+bn;y9oq;OOn^#>ZFrYDV~*OG3c)Cw=GQ*qn{64ycv?8dcl_@=TV%ZZ-~yMifO3p z+(Rl$0mbP}X=&)&8Av~+fhpNrC;TuR{r&s#mSNkyu)E%qHje0_Tv~X>vfP4@IPqwa zX{|=AN#38IIvf&-9p$r;h-Xlv@7Y&1%Y~#n@r_ePLg1PFd!iI1qN1ywgYue2FFRP@ z>_9Bh!3nau`57J$@65H$sd0Gz(*6u4QAnILQ*Ds3Nz^bBlrHF<(iMK38cM2=jMF4I zgPbY2U9$Y~>Z^R__iXF?@0Oq@Jd$uwX77FkKOp)BN&;nGC&ply*)<}BftyzPt^SuY zD=r#$yMuGL=Dq1UoAhn$k*dOST?}w6h36H~Q_SmVUc26zCrufSe%hF~@c!-0UohBZ z);d}L{ZFM$`KZinm>KiAGa6y3s{WcKt7KmwRBS-I4Pbuo%}Yzyn|#w_+m^VxIzTN? zR80+L(lhGNlShpOLQ6UI7qh(3-P7d0Kkq}gXB)QgoGO?ySeV*Z{z59OOqF##%zp&s z^VwY~fuuk!qwr%z=%OgY_{F-c6gRD<>SbF^k7_h~?^SRj=aPA2>>}D4_`;q3ZLWcI?NusJIqJn|e*|w~@ z)0vgL@?lr|%U-?eV=1(pO6v+t7)Os?9FKTSJYCd;8J!v*(iLrXI{pwm!M(aQZwix> zhA27v<1)d@6;L`lnlLpHEP<9AMCsK&mXZosVMt8Z#6_Axz4z{KI%c*uFk9fi>g$cU zG1sFyQDfryi=>bb<-Vq22NTYvs1hExs3$#%5LL?&#>9Vmc;j_UFt5f2-f)|y3Df!% z1?}8bv(bLn4@=}n(#YOmj0b!}<_2Or_)hO%mw`!4z&tJ>tMb1%t8(D^;vYZa_Xkg@ z%wdQhw>dY!Ys{RQtF5lRuqU02E~?wU`OEFfGW?}votf4XG0O+xoYItKgd4%g@uFWB zAlh)z5hwFN&QRbdtrD;dL=R_)Qc(jvl}C?EF0e$oZQ9i)b;o& zBrpkf>qzM+pVZGV)08ODDf+FO=PH~qseJ=yd>rwGNA$62x*qsLbFJBMQ`vw*lUpg6 zQIjp(6lTC}2ZevWc{FuGO7%xe%Vt2Aoi{uwK*|Vec}l7Ig76^{ri9@AmX){@dC z{p7m=s7f&kw>HRZDQKEof(a-_y4IR(H8H~O&fHI=FHZI62`$#va(xLAu`Mw}gO0Hb zM8a>F;I88SYaMbp3w}a(?#8?)kF4iJ;9h(`<1@Gx#(_1IN7b@R;ZoBPpQr+8MiWz_ zsq*_%w9NPmur^rz7hGo-r#<=vtMGQMj z&7D8GMa@kQ3x@ZngvpUzX0`(PxY3bvf{8>>=prnFtqQMv-f?%Df71wzbV(cV@nf1gF|{ zhc^_OM1E*?v8930{YvqYlegW>UI-U5%1a>mF6?8O%I*%tueNsWE>QGoTK-&u;fjLg zSh3_o8&(nuhrdtWKFo(Uh(b>!W=hof6YnYOK+8)1krSmNa-g(K-Cs~fCBw?;a*EL~ zdP?%mMrB$$@4}vqVXgF`$uR}WQKJ*_YML70TZgl5 zl#4_s1XHkNeF3g4e?`!W!CXH~MvMGYBumL-X^nchNZO^f4Vk(oi0;)(U^P^N+vSF* zg}NWHMO+*0kxYdUgjGk}4bscCdND#`w!7j0>Gz98BWh4|Hd;uzd(zM2&Z2jz!e=(? zF6Inqhb&=KWt2NbS*wr<`4pP`SrWWN7I>}Kt=Ll2$v#n0=crt_yezNfxjn&O&&#wG zho*@AHLQ#Ieh6$Pi^7))xtuSEF`I*hJO5~1|5zDx*2j`ysEMc^$qJKa=|ymP>fS=f z+c=>>&+%grpfE%6uQc_q3mTUvffCNOINx8-sCsWc6q4+LY}~Gt9BPtSl2~DRMeZml zKi{C7Y&X5m7bm=W+JP-QgFXLwQ2oM`TpnY~WM;*v*oF(268eaFjJ?=NdA|TNwy)^- z`=+nYoG;9scR-Z0P{V~0B8z@uj#7|ovXFYFC7fNn_(z3TeaaMu6jnhPDv4)GSyh7=vqF< zB^bHlNhwOlz<`C1U(Z{&bYAb)=L1A=FV~+$*3?WjIdReL0*KNe*0J?RxcNc^{;CSc z=M0#>OdWsYb^DLkKmD06UOG?}D6<9yi$|jCiH5Lld z>vp>?HqLIH9E$H#zqFPZlW$903eZqXb&jyM9BOj&Mu!O5rC>`6=jZUkK*{ex6@NI@ z?I&UqQUW=!NBXYA|HM*H@tT4S0%%tRLH*e&_|Z^TOnoS{ffHsnm#1uZnOEx6b12vL z-cW}BP`rPl4>yDn`;s+GxZJN&ieusU*HfuOk>}dsyQzGaS_&jan-{v^Oz5i3D{{_z zq!ahqSf^mGb$Q=qqAexhf45KKA7Q<>*OoS=xL~PKgi%pJFd5=eboE8Yd{;|#Ra@)q zRC(XQ!;O-n1Nf`Xc&17^t$$Tvb13**NnLQj8YY{1NN;((2v;OUOI-X%_e=fGri$)! zsT|AF8jXGxVdB%}ViS@Uo>5WTH!Y+9;T zw^pBhyr&|`S)V0CYrnN@vSVvh%6?f=Z$C=qVryfy!am*T?3Z^slgkiLgrQN@LTo=b zvsT0@CaT9A`%7zULY)({#1u8HNFKIY5Lvm)>SlIFke}9myp?RX8xqMfxL-}moX*bd zvvdASevDR#3|bJoAYpkK+Gp)mb8H8}mxByr9YW%uB?kKQ!i}6PrI0CvGRYij zzt5!n%BG%$-bZ&W_BiW=)yTQ5-3Z>1*1)K0rd(pVG~78mHbIxuR6mO~xW)=b8|PlW zjFIZ&+MRQ;FyQPUk80^F@N$1G2o8c~#`VbgnVJ|mZU>K6$fK7aGE7mEbSicZQIutl#$Q7IbS8A? zrJTj9EMpZ`^oT)j90%ca;-gZmKqDOw(kC0GfR zN+7l$sfJXP6<1D|+H`?BlKW+9ET#U!r=6G(y zEfSsNxKqTEjj#_M;_yYUAU&g$6o!flAqAX$J+*Th`ZaZP5qv$tsy!IMi z7j2c3aZ(bXV5Xj{gS#*|=|eN1mBv-mR|jMXVezj^E^V~^U43bpXBeX@c4decJ_jpw z`m-rCE-f-HQ>8m+$@H++_*5>dKM=LzB){*(**1JvJ-r6Ltxr9lBK_-H#KK#@JFdKC zvu}NES|Ep#8h-ikx&8Q>s7A?}o5imk%?aDC9s`2a|HZ*7Fy8*Zb-ew5=h`Yiu6Q=E z3|I5tM*BxLbcsdX97_azWGQ{aOVve*+>8;P@LxFmq@3kz8O+tGIF_O43!)gEnL2b= zAnRYqe7-3m=-uAO4vj;JWm8;muHXGj(ty-p~MLOVc9hmmIcS1>gNSjVJ_?{9Mq0rMeBL2 z?#DNCIwG7KRdUN%mP~V`odOB(5Ps8gNbs9M8@~y(S!xEJv_9I!`}^J^(Up&BKBjch zD8T{YyuD)F8Ry$O1CnaZm$8hItfFgRJ~gw#a%xLGAJTKq{35?tWYem6Z(nDr;RQEi zg98z@Fp->M2{)RHSqgM@oeW2*ZTj5&G=JW_dw-P;lK#XJEsgpy_3ymWs7^0(jb)B! z)3fN2=wS(@L1Xlkv5Uvrl2GehF2|2<$-{^H5?Nb5>G^I^xJcPUwop+Gi;+=FVXCdo zk-gd`lqCRQQM-A$AMfN2?@zzkQakG#jtjmL?t5Yrae}eU($myN%LHgz*?88wz_Wu!q>JrbQ2$?Df{Cu-T|QoPf*d)Mt3A5On@dA4R~kY|UBuOn6!<7X#dT8oB~Nz3k=VfN%Fk?vpcg+rw6b~UEftE!<*~oLhC(fqaM6-b3E8-1 zabLT*ho(gk0uEnaIzY@GAQB(hU2IA23PU^)W@eF!A(k40m<6Mj;FjXfvmEvJpNY{w z|Lni`irTofYzcWda_os94=?XB&49?PH^az`Xc63t*>9S}U3ZyXw$LkJhxN#8Guu*= z{578e_e0bRM;K!wNmH^?o7BJ>riLQO{TjJ8zoOm+$9vg2x_B%-m$1dWEA2W&tdJr! zDy>SipQY&1Cd(}q5$>dp;WzZuGWWL!?p)tY1&_+w(-jV38v;)2Q_Pk%iyn(>KJ;hRp{U&U08?;RpUYp) z9jk0!c4UucOBr886t^rvt`I}c)MrW{ewsP1%VNS!221d}P=tTZ@~a*95G zF^+I>Z-BVDwrP|^m`-WZ*oG2Y#~L5jc0uH3f=A0u$Ng`LPP|$;=>0BxwX?%r&B{g3 zTWezdIIadWc1x=(ggJs18cUgy;bBYmC(&m05%+_wve9sFm5lVR%4;0D-LjYvl7|DA z8i#2J1R{y9p8>_`@;76{2WohBR_~1yX=l>&+MW%G`c;|9`Rf=5I--efYO6lkMK^R+`PIS(&z) zD_YH@sVSwUB_T~&rUv8!BnY%OnM-PFx!{xwxd4>{DFQW>OQxi#qzF_l2neKrC<60* z?my!DJjd~T@89u|!_VdCx~}tmp05+Xr7~$sQY2Y1$Bm{yCKX>#E=~LXvtkv1dXakA z9@0ul+fk0HhM_{>67>yOD-ZLd)&~Ve_W43mg(w=d@N?QVC+PbOBRdPkgC%FTJRVWg zPERIWB9xWs-t?Yo42MI0V7g_d`1Xa49sl`sW|H~qtt$6eC(mJvB&)0Z5NGdNMN_;Q zSwLZ;;NJOR?anMRn@VRlrE0NOXI6uYM^9KS4cuxdF|28sXV8SZULRLFi>I0*zzGR6 zTvzHx=DKy8lY{&FmEG|y;GFJr$k`X-SKsIDh+iGWE&TDzTJDjKX6`5d!1nicw8Yk^T@w@Z#MgpYcyqpCZczByep_A= zK|9PnI%Cd;J^5v!O_d6VMO%`CUVIdJS5_9m-3YV@y+japj!`eG?H4Hc$bz{uMb3#^ zw^v3cE-X=Q8E~?lk!2t63G@#N3#laI#YHGakz8aPIMH0$=}=lw^2uNgC^*7 z>LokOr5H&7CmT22o18y%VJMIBKu+UiSB+fe&AZnpEHVDQM#+DrXj4ko5qjhXS3R31 zn1sF)MX6vv*s4J@cS}X>)#BclC*KaCr`~42A6qcBbxUGVfe;)~s-g>{^#nHddGxDp zkAVSXEtnZf>qN2arZ4S0ax*J23z9XGL@Z0zd5VV7YL*hM6G#y(Q)gw0$fWRdNi)HI zxczzTT|{Q!kf()>-optrrw4ieXe=pJyQ;aAhF_ehCH)+eyM(6e#SDD;*P>$|InLhx zmUk}L)Ap^CBqvxbbFS6*!D37>+?vmIeRV>HDT0ksXf&%mHe|LfRe^jb)idFbE76bZ zln4Vwi-cm?xI6R=+H>^lzHNa22l{(kCT5?1(vqctZ5!2D%^JR6rn{#uH?Cq-(uo8j z@1LocYWe^c1!N$~q~-&Aw0q9_Jzo~-5nxcN)KHd|UWS!b`x@Y!t~o+<)DWVaQRIEL zp=q}Zu~zTA`8sCxZ<`?*Hg+LjwbQMNsOnSb(2xVdCcGOHn)X4OQjQr@a(T2;wIOqE zx##A6^W@7`wIqKT&ML!kVNry^Dki|4iWduM9lcTG1ysF^i!%`L4~X^0-@B~MSiJSv zzH4g}^Y}N-zFJ)9DbtKIaziHZ@Xa@r!?bUC zi9uUiu=6?gsC%Vke;}-%M=fo>^K3;__8-MaQ8ZT3qp0o8)Y8$v+J^cy?|mnAAek)f z@*y9DksHtkKeYvZU&1Jy8oH?^Us&t946(7b!|eCF_BYCfX99IZ$m># z-ypjfoG?9WUI06eur9ECv-P0W5$r`L+x?`mlEi`#hsHE57wX0-mQdgM_&m>lK1kO^ zMx}5il)g`41Fu*6G#iIX&KqL=?k#TFuYd%s+vp(V6pQd8oQz>pn^p7^x93I?t7- zmdm{EEOMT+cD-o7+To`|dXkm(wPXQlA3iy_AfvLp9}*Q2$K*3d1tH68PL44Tgonzf zf+3Kz-qC=R$%(ypoi`mh6Eb}IX;t^%eAm&14>NrhTYE~k?eVE^S5-)TGBhhQ`SCqq z|H>J*n-Iam=GoPqY<>|@ZHpgo*SseWSe(}xu46>8L*ok>Vi@k4VAl_3E~*K&g)O$EsG3T1Smml=ypF-!#`41osB z46}thkKj17{_L8lpWnQxdhlT#0>f6v$Kl8Wg01~QTHfLu} zHiXlm_Hwpc4jszhb!P#9l|;hKY)sg@f4pnCeh24N4Q5($(V1eAe+M2&=*~jrm_gXh zn_JuMqdY1#;@|{6PN-D(=&%i>Ae1JFe5OJxK z{Jxu0*kjl|vn=@;qo?&!o5!$qtB!ZFSHlB!x}=!(3A=su9O|^X_nh!RF2ewY5qst& z8h53Z?D66H0-+6#WYqMQ^afoMh%wkfePlQBZ8W<*DP9ekMVNNaMoSXu>x=J&yuC=; zn`PSHJC6ryC4{)f#+{v_U#e9Lq%<7tg@YsyEdp(ZaHjd>YT8QDg5@tpY}Nzel)H0}%Uz^dWcQEs8p7Udd%SPXlVrvNZ+((IFJ9xbS%5#4ZF#UC`V zbuu8qvNS!D-qR_e>jg&cw@u5gUJJ0c$yUcqGH>&$^&5F^K0i4EguebYpH`^jd?Po| za9YSgni>^vM&os^j?|=;xTM6JOr}6%Mim#MUq=_|;VibBn)akolHkn-2**e+vB(%) zy)qQ+p!2zb*YLA>x@u+sirvsR3zPB#a1SRwCXn~D6c`D0^vO4eVFY;is~!Yk>U=u~ z-C6wlCi)!KKm)Z_>I8Ud;jHARt7H9(cPI0N3ZAFbPx`X5(^5RB1B5ygNVQBn=;bX} zlXcaJyU>qpLyuWjT>}r#3=6Vw)D(Und(#BBQaq@)IX#RMQ8Q&^-3aGs!>e~2|H*p` z!oTx_!J?vjWD2=Xqt?riAMBr_^`+{B1Vl%-!cds|dH!KVPFLXD5lyS7zB9P^b(~D^ zPLo`s8TUXND0p`nq3Eo_kh(ss)x+Xoau;?r-pd@2mFni(O-Abn1?uTy8TtEISVl3N zZbFn!R1%xJ*Y8|=>pq&GiM8El*{D_;HK@vM6t`GPlTOX2QPM|~BJu(O%S4r#rAK^t zC2LeIn^)TC>D~Aikb!)%s{6wg=v#y+HLIc2cE9>_^A9bIi4}sf z63roDl=TzBkgGb343#ju`n!V;x?5o2!sH*i2Rt^OB(=`HwfoMC=1SLkrB9=A>QMnw z5th1HW`>YWX+ZAy;`Vo2Z|rR#{hf74&y$gw!%ko1WJ6KiMm<-@8QhtKMl%E8l&S7G zX}@8OOReUyQ?--dN4}5A%SO7<;1o6;H#i+60@@KQ@gV4ctE-~p=xaU^25Rou0e|;P z;@9C>l+-SBW$@D^hCxzk;IgsIH@z@75fJwWj5@DVn1hQ>tR|1@MxG+`%zJ zty;mXiBp*WY){emVH0HXxhqWt5nnY^^GeF9jj6V8cusFBMkzvM%!C@L;M7r1^)v}C zt7&rX_x9Byw6Q%eH@OVZY82+jL&|!(5(oo{C4DOOwGqWyRTE$jGUEe(X|#Qk*shc) zOki46$ZRc)Mr;NZ)9Gp^?Bn#d^;w6!VUL!4`_5hh;@Oqj$OflE#R+Ds;iPk$m8fzk zor@8hGfJY|m%mz*)o5+dZ!~&pE0y-N=6tP0D$ra^5z#bLFi>!Ju+P?c$W?8sr(03F zHYbf!7CobU2~3~O(sNWI(~1r6J7O=-4XSzNvhn8o2acQ%WKMmZ+US0<>~y9hDy$~z1<#m$Y;5G_>9zV@OH#V)&d|nsLkXDiV?PWpxrRX8ua- zh$-={BBZxU$Lgzf7wowvgxkZ0YWGqUl~{R*lC6nOM6&w2hydvAbkq+h2iO3pPT zP)%w2KGQ$f;AH&(iYr!$4XZQVeuggATKmicfasG7z7HR@ZbI43PQj)s`G=>xSyTp= zQ?18frnuDMmM2oD1iRMBE<#zg`gXAJ9|Jd(Nu)d}N=G*o3o43@8>HkX-1CW#EPr^K z&k?=W#muEjv`u`?=6eqs`a~SFVnXrd+N+#vK{0kG1$^Uhk?k2)?Z9k2=jVw&byX%% z55rb!rY;tBbIxCU=TwsRMtxK6m+#RV5s87Si9FipbIj3EA%^IkqL!$%hcE8Gw(2kC zJ3pG@YqBcdL^;rq%VCYu6F>w*Ki_uld-KEJ<`DFZ#(?Rrtdmi0nBN2qBpp>>P6Q5&@;ajVd=IC*l8W zWR%?6uWUD*NBfNYD10O8uSWDuaG_~W&JIMo)UwgQ62Mn- zn<&suv^;Kv1PxIE!4eFS;TC_{H)5?{z|RT*{pAzOO-fAn%)_uk#Y~-gW@*oB>|6(= zR;g!u5A55$?QqNH1+Q$fl2Y|@VtY*(m_k*vv@9b|JG3^Mqo@}=X9*)E6uOpCE`lV& zpDescej(lR)YH?`aJf`n3BV1U0I?W0v-L+WUSSNWDvL!4I4X&E#?&P1Msn-#UEVim zFbZ`M4b`GgBp}-TyiL<{+D3PrqMJokQ063K+r)praI$T+_lZfCNyc$u;(m;LP$41u z70=#Psrl#v5$DKkVpeT|{O{zfRHtX2KIQ{`D)wmXBvOc|r4(MK8nTkcdYtpUp+IcR zARBk@h}e3!Wu8sUtyFm^j#Ros4>r&X-MW>C2-x z;Lhr>fXc3xbgyoZAxrh5c@IA$Ja>5rTdZK@b7j@4)Cx)!4UbGnC|46_FhdQhTqsne zuGJjrfbU%X*kX7^PCM^#)*jqsh)0#+Lmpd~0Prp`0$Lj+Na;<%R?b{$gW4Wy8Sc#? zRs3sFpFv8MR@XE;i{3DVpA&ZZf?Lwx; zx%7n4Qw&vRlW&aGvVEiFD=QnfS6s|Gc2OY6CLc*o>>d|C09{fv$q=ls9BeN5tjk)q zlwB;-^c!;A>TG)-or+1?lbkWx?y2LQyHExSz%`H<8pWtyG1VIh$Muh~BI%_~aLMJT z5y1k)@=FC~5sT05$C$TvIJo~50pG_jcz2jcig%eGxD zeXnK^5QGS)#uf`xGGtdmeq$b5mf*d+fxR1V_TT@!vW67}T2I+c7ggd^+Q=)Fm`lHm zfEQI(2}K{0sD=Njs5$(dxhQPU^@T*8f|w9g*+>B#S>#}CzZ@{A+-{Ft;9rwAT{?VO zSt}@yz?zHnzG;(!3Cd4QYxSyoq5v~xAhj*q)Cel4zFfkK2>O9*H(gy3@s1} z3Qr)qH);1~?uy9rdJX^89daL6V`dEyEb-)-#I^79K3dA(>7fMkyNNv&laEfdTg%% zeb|QNo%2L}$-6G!#CV(boH-9gSgr`JlC6nqZ@gFjLR3KAviAE!j zHohnbCT+NB%v!X>PM~=){ora3JU)**YxY(k-seJr7d41ziyEL!9a!Cl60$IaL$+SA zOvJ3AR}&QFEDWIW*mJYS){e^*8cvBv;(@_?c8ynk?qTZ~aR*JPYl{9Qz__-EM0W&xm4c(g`)N&CwOYXPOFOHHUHaLHr6 zS4a9phM@jv!0BD1G8E>4TaHw}Ym?>40~S<)&q>)}y706H3rgXKz`FsqAEO-gvq3~p zXAyy@4R(FcyOu>QIuK5~ko4rg2A^t_CsjBglmf*xf{`R?YK=_77;v4+J(8xr(L+=jfMUz7f`a#3=x>meR3x)e+auA?CUl6->7s1vG`y=!+n zt}m*eBhk7|qYXU}#5J#FQqB%_KMe5pSFKz&-*b4Q4R%%8r1Iph z-=mzkU{ZGN6!PNf!#i+O=};t#_!GFvNz2z|EWN#I1L6*25$K)rg#1(zVQSP!{9};N zbi1NB-u*R)jpPGLn^uu@eZp>J*?)8!Ej@X?W{$YGG+2DDQ;T<*WzS)i7funj(G&a| z(6ezw?=&E-ls?K_QTpEIMa!YL_I`YB^p%WfDSVt8*I%V#Lz^D|=n3M*Ii?s`tOgeM zL(TzKtB-R`X6wABX&XZ6tRZ~5Ay>eS9a}Es z$*pfx3_E%HT;y`u0ZcNbEVoC^5Hr-t(P!OjqMQ{2-Y!gdT1Q9Bo0AQH-v7D$_3-US z*OK$J(rUMzm?jp1GQgD95Q>>^`quJ^%b)kFflQn(LLwclWgI};CwnZrafIob{AizL zV((NU&*@gIVh=0G)zqKEuP642S+CDItPvVeDnUmG66p)~Zr@&Ta>6Ip=G)38tpsl=Xyp||MV$x`+_hK`%G_YG2`Y0R2of+Q z0}86iugmT?|CY8@*Y>?|6c{eyK;m?HKbJrYfq~n6 z-@eOBiBA@KUI_I+W4gZ8?Aa2ZA7aNQFoXYSZiprjpOo%Icb|1syXYd(&^dz=sEB=a z@I7PgFV~i|**lO1+GPSzz=8Z=w^RloU7k{uJJU1SQfIM5I;Ez5NR-LT6l-JcGcvMY zIQiV>Np+2pmv$({ZX(VTPf?5Ks3Ga)Me~1*n!woCdb~p_iZEIVF4mdI|C}=vvR6!UYwHD|MVg zMpJyB-b^ANFR&f(e^}KB8Y{w-Md-WLl1ckHi$@nf9oFC{Zw&qPnwuMzu;Ueh4zp?$ zvz(y-O4#=24Fn{d1tCP*DM^(K5xlZs-9wM0+P7DD5yLl?0w*qYg&(3PqCTm=2j@y* zDbPTI?{i{$Hx&W=RJewTXL3)*0Pl#HfUTSV+B(eLiUPK7X_0+2)(L(ZK>JHHIKtoK z6{UsE6p;unoZ>WX_?7wc9*DLeDEQ)5?ZV~%T5LEsvb5`T;tI}LM~;CheJ6`oF<$z-4@MEVexrTzpLaBafv>(8J1p zc+Yw5SvDVH@#nF2OQ(&>b~)}gzsNQY>VhHYOhV9f|D2ifswU8lS|UIXb|#oGn+8*M zE%MkIs+tJJrnGns)2bB#jC|2^!-46Dxj6-KW`3y~=2J1aN1)P4nwy(HDapuRul>Cm zjM%FrEos?1)BmcjpqhS(!$s)@>fXZOB4~aS98-%`(?ptIdQL2V8bEd~Q1Cf^6s!M8 z2JoBeMQQ>w3h-?ouf~e?-6+0VuEcv~m^&gomb;@iKPGwSwGJ!QrzWkyr~wy5zX_|; z4kbOO_YF|$)EK@|lC-|(udVRtHygwD3!ENZ=S6$)V9@oBoFWI6x=%@iYSmTu5E&Qh z_^e2w3Wx!#-`oyBdn|6enxmO_vkUyj@0|I7`8A8ZzR5-VUk|F)pQ>taM@E-&R>vjd zv{(P^jyXTE#y8S3_mGr|TO-KR$@h&u$Vfd^S;vTwbV!LazolGwjHnx};S@mxk%Zz$ zK%qj{z|OnbAkdzqKq)!2l@i(iyr?->-au%An$Q1Kvi$dPfo39pXhlf5$mtZyy6f6u zX?ZNo63}|Nlq32uaAXY@X10m|!k1_BmmGn}f!4et0mM(yn|_QcLciR#!RKcCf|9%} z5qHy@uA;u+NHR*+Cy54}zcDg!k&-b7;|yYS!nPW?qtC=un*Ej`sZQ#bd9|uwN-|pr zC2?Iq;r0WcI=8Fwr9vZd{vt-6_mhLEK3R=AwV&fHD|P6tNqrl;?mdgM5$wpx#hZzyX65KW87fR5BBKjlObYXSB+7XLKAF0-$VGr&1@VO6P+{I=zoB6iEMMj6tF;BEoY&ecNMPGJ>B6 zIM=J^fJ{6w0#4;7J}(XwQVX?2sibo@_YAY-@?c<<}ZEvqxXEknImIVf+Vx0n!*6|(unxh9$)9jWCbvcK1 zplF~rVE{;>kL>@-Lu&Tb)m#gvj&1b$rd5!VtfJ!|mpfLJV7eR1PU8`#P3J2ysaN?C z52LZpwFViot^Btmp;LPfb?v>`Tw-&cwCFldL)lv6vbKOmrR6)5cb65grdM96P}}ZC zD5;q`WVxF2;V}Bf>325kM^v_&wh^gsxwh*i#X-57BUUkW%wYJ%jp1Y`mtj1$ps50w zcUeXfn3qFqpIz~_Zz$+E*Ru=dow~OCcMN>_jjTKK$A=yzm)y=N!wQGWb{{MhpX5dZ z`*)Og3F_sk%fl|e@%s}I`y(Pl4rp@+4ZAi*A`@@-@D=W+O- zeKc#P7O5;U-%6kTs4rb{@brPX2mtut_YpPNR+RjC4`cc?^vdp6rQnRzPJAv91GMx+ETJxaX`WVyI~>7(7S=`I+jT?cARXj>MRDW9vi*?DY1+| zEQ1l~BJdJxg$qo|rAZ{O?kI%FR=|8o(|DKe{^u7){kBwfnZT}tMoZHj-7fByacMep zl)N!E0*nztfrRRR)w#Pl*B0U}Ew_}iH8Z%8KA6GGf$Aa~^Wbuo5~GoTp;(hN`QqQd z3?8`%)Pofoml(%|k;J}P12O1FQZSlh3T5yDGc3?)Ls}b~Y-w0O(Z{{`>fe()(OCz*fNTHe|hWSB*-&N8V#G)(!n($#6qb8j(ZMk)^kt8=|qqO zj~i4LGYo$YkH~WOcxrv}W`~Okw>7AG@GO}rdQK7n-c3F_qQj*m7{y6)} z_CK8jenI)3?!dvCjH&Ev(yGacwFe7bDDW7%Fp@H-QzR5e7{VF8p`{>8+W-#MwA1!j z?c5*%Ylx@Ja1T6;p!Z0qOfD%qR$f3$zOcfrKG(_?yL?V71#0AiNY{mUs8&znG|2$A zM!VBGlptg`b#7KdZE5fdkJ)SQVM*dj%Mgu<6N;n0w1@`a^dXTxJ6GQ{7LvdPo+Xb7 z4Y|_rWyoUR$|SExo~>zRpXZXpmBolb7^ht;P-DlVDnz52dNsho6Oh}w9|m9i^li}s zd%$ZyVd~cTo@$vP`D{}rWfs*ffuadGAo@XQPpTp@6=(@XEl4?+ z9ja)VH*EJYL#x#p2@NHsePZ@B3zl6q>UOzFk|3iF4sq9$5;N;CiET>3Mr%(GUa!>m zRad`=IjB@#0{XnQAKO!px~m4|LP?d$57g041`cSu&S@T9O9kCawIq#I_QD5cEN?}v zX58e{5#%x@FX)sor9)q`KHT$QDl(`;8k46}hWWy?j$lugfx?aCBcX?1a3bih>3ldn z0mefCPi~(!3i`gpkrh)qw1AZ(`~tvT6=6wH;-LO|mQ1fV(`}3LmClYGebj8|0lY7v zaA6rjbJw#7%w;9y`T3Ea}kox4_Y}Ou;Hwg=TL)|bS=iL)PDY)6S&ra5! zm7Jk~uByw;oJ-oCOQ*Z0#fKeYNnj?^!`ddrrytQAGkdj&Q{)c#1a3>Ojid=dK-Iv!=*-Z+3sbN6D8O5y^xVvUWlOksmXizrX^~T#rpZ^}tX#q3# zW+(H$_q@LT#8l`=ePG5Rr)D#|3kUAI=@5co;4j~JAZl^mOrz&K?wuT=rL_a$a#{ax zd2Bv(i^>!sn^hPF*%@{GKuB~1(AFeN9eR1-z=K!zs~VC5JVz#P_|cdLI4?$cEkMTo1MYuB7SyY=cVH8Ma9}eII#AOkQQ7nwuP|1b62Aj$@RU@6p zhTPYCcB!u0CQCr~K`XX&GYU$ouQK^G$!vq`vFal`4p1<_XeFUXDC69vy*kwXVJGkA zm^a#2lC2%-K~<3`j+F9IsX*PYznJmsrjj8_CC*_mBvmbdrqxBwIUHZ>SVBDLd-dX0 zl;sy)SIF-r^rTw2E6WM!!98YjO`na-B%yKpZx8HcPv%qF+sEoN}@E~ z?u*+dHkYdVO;2_Poj}6_;~0ucW*@M}B)$)bUb-DAPQ01Jx6ej~mY5IVVwhk=lOM$F z_hKhNkDh3RbrKS6G?=>PpmUtI!a{%Ruj_|{jAkjwi_5d ziiyz$Noci#Yn%S?QANJpT>NOU<=;SoFgsOxJ0t=(;D&Q$YQ#V-mT_bLj-&}1&Kbo} z@d!ZEtYdZn^NKlTJJ{YS7j(?GtdMiX@K1&oBO4`j3fVw-tbRHo;VBbU$ue*i7fyZ` zeS7j8BQzck1+{LJl>qiw1@o^U@l=q(6%IRP0Kv(mN_=!spj!nkHYE>u5h7{046jYg z?`L-3_$TWQlM}E}ZyY~EVm1-iNRH}_I-K#rbOgdhfu?Dc0-e=_V^}DJw0P-tYo4VC zXkUP>SI?RI+j8kZm706EDAlN@eNIVjP;9`A(falE36r*_yBkOLf1B5}a*5vF1Mv3h zU}xf9u%P00HyX6a%yvQT#PoX~q+l?78U(02PIy+ne7*PU&{V(e6Clmdq+l|M`a@mG zV7*QNUTuD$!|(O!UQpy*uAs1p zC^)Xxpc`kUIE8HbLaa-*tQy+F8Pd#Vbnl#kAo~HjnHH91Qf+s#x+@|JfE>G1)22bU z*Ln9IS38mBZMjo|F`DVSS9yAG%bQiOl{Hv`-(Tz^#zR;`F^3bWrmDmCKPP`$m=);Z zlPI@(VVv!RF|jPC${z5jT(>#1=_(DaQjX054`DAX;OpiU|4=vEFHcIG((%Z4Wnr*} zq#$qtyUC51K1geY?K^#-Cyza164^Gu;-)1Ww(B8-H}%lc_v#pwr-epsSi^HFsyyjS zaW9Vq9)6R7GwNSJg&d@F1W<2p_1JH5F}76}BN@7_+10XEzNShJQ9{a_z>!h}r|f|Z zQ{Nad-4{L0XX{j}<7&=a9@6lfEQVhgE^<#Q!#Cyj&4n}+`P&OUq@8L}k&Xo95=^OY?FueM~~^C1l97pm9N5-aTu7 zo8=b!PVF%oCffnf^68zQ#5$%(5-HU$s6@qLVr%ikqqA^f^oy&N00!p~^4p{^BUVt7 zXV8ELcX(@@;H+8+Lh^J=M^QXtM@3zJaXo_u+!PQ;rviKaD%a zP460vHW*5nnb|=Y| zm-?6j0mU$`vmcw~Vs<0-kyEBB@34wFNPB6ZN zNP^V@vmHOSF(Smn^Zkc%-_rZU=w_)v+>jaDgAA^e{%bMMId10ZoLfVArAj&J&Fzwq z6cNFu%$O64Ts97qYIBSbz@B^`TSn;zAMG3wvdyDR2ta^r3?sMi*v>|NqEO0$QH*Nf z@OiS~`eNtiRXO*Tefnmjla^!=Z49bc`F0-w4m=H?hgFy_CzfxZIcKWL1OYL1*_AKb zH$Tbit=`y`+@(H(1-#h-{UfT}NS2;dzzi*#HFf=%K8XoZLtvF0VzMdd_4u_tpW6IG z7b95p<80O_hb$g`STyI3WA=1##00h>JtfY;K(8GQZAY;UM)uO&D+%oc%zlR#)bnFJGZg9?g$dG2dg;Clr;b~-VrFq&;r|1prIw70S$Yzt+ za6{hC)pX%ZDXkAs@X@og+2LFt**_`k0*ELE%a7H`ZPo2hOcNvoLjb*sYqTr4mmo`jZ*SjA zTn{wJ+cpV~)K&q5C$7suQ=0n4cAi*O^mmZ2quA_Hma*jp3@QT;GcX(KZl!ovTiIR^FFD070LS%p2trYyA>Aeuo#V*=?K&Y z*9?fe=7eV3IO+)L(m&hJ9%;)6dWv`|jTP1EikNo@YR@U*`ng5+)8glw9tCC#syz%aQ_0G(Uz~SZ9+1QcV``}?RZg={!Nn*L+GK$~1_X)cEFS4?n z_#~%*mqcse?uN%94Bb zB>Foad#0PG6DLzKBQ*3*?-?L%UPFk=8H0S3ZCAiAn3PdybiW|d=T*+5eAJ~sd-rTL z)7!TP?G}d+p}fOxF5zzmbN+|r{-1vKe?UL`zYpbgpjddqF>9lv$5AIYwvUgr378Pv zHw6Nn!jjqI{;1{pg@_30SKzWwe5Rw${P}E4A)dH7K?B(Jw6AC7k`Ac)l~_htGj}(S z>e+%d+hyBNcBUMKj7}*vM&wv>5L|(oMa@atsZCq%ldmVayKDlc6c~{^ zDKsxw9m0~+2XrvP1KEE|toXmpBce3Rb+%j{$glKxO`tBgMlP11)O_=j&>bB|s{o&3 zlHs&!#n9mW&|L(X z;l*1U18&ZgDhnr=>Zm$C4;F2{FiLNT!e|6U|7jKDAf+Mq%=`+gsw6yzoAcsvPh=CH zCFJU6ijtu2{pJD{rJB96U@SXqmUGb>qm$yjB6z7U!T9ookI(+KNL#+%_v^`);hO@kuPNT~ui#pp27jQ>>{t^bFHcAykkEZH zE*>Q+ToZU|!HzeJ5V(V>3sb%kY({i$OW8t3VSS`13ZQ&xyHn4t+u-iF;nJsyCXgE; z(%js+xM9@tiKTcvfac$>)Jc6#$UiBoSpy3E1U<@6k<^H+4QVJwa{Wt5+$@3WN@cOd zp+k#Sep!dj%VIxJ7>3h32HpErdW4A^TI8EuyQ3#;n(%`q=oFqR3*Zww3)XkO`Sggr zxg;soW*WGx<_U^OC>B=4FsyPky2{xBk? zhz5-iW3(_%UtAN?{*H@DVZte5Lt1}j-UVyZRI6X;p>HYnAYAr`qWBuvayW{`!U%Md z5M;8iKQjt?mV!?+$YLPb;FbR=`1N(FCyyBVhG(g9+cG#L2owvV(Gz;Eyk&f@9?PO% zanged6*zXsDQMwj zb5n9Ik3Ow(`J!Bqb>q>JcHO!%M#fbjml2FpV*pX05Vj}N-TFw!**L}6M1z8D3V!sq z{qa=G4_x&|i`b!ic3H{d=gAN2lU|Dj946k4dxT~*hfJER-Pvbb8J@|osY zD?hHp#CNiV!NF02aWl5ix-t2{L=T&iAgp4;rJSOI4_o*6?2VYkkwX&=WxOqq8?mB~ zECrp0=i`lL=&1kX0C{)%oPw=}`+ZwejQ0E`RsPxXc-ErCUa7_qF3l<#9JpctV9OAS zxG8n~`D|E3#6Z>KX7OAc9x=DRf8faXucL%!x#SO=7)U$o9OULUAn;bd}yVYT2u zaRK|Fa^`@JHAi=Vr0zSo*ZL}UO^f?^=>mb@aHu>`RK^_t|-&Xx41BQM2r!2nC{+(n!d#zAnpQz4{&EPM50XJgx+B{s1?J$Tx7zo_W$ zhS3B!Ah^cERT|Q6?G4(8JnM&{6porwKp@#NVr(Vj2=~ z<7GuAtcz}QRr%(MVh+1lE*RFRqW+V;%c-FD2KZ?MBBws5MEcChfO)|hOHN8MtM`wl z<2Yr4g7U|wbP1PPv{QBc1`wiQPWxh}TARN$CWF!Pr*FGpjuvXu(zit9pN7hzNSqV)qp^QPf^?<9J&*MtrUQBa!z z(4@=a@SUMHw*fU6{G-j*Ye6=VihzIAjvG)tUHaa24*d8|t~<)$4fx==mv=l3s0-EG8JdQnzUFz=5;is)wy5PZj>iyjg07k5Ym>%g541B z7h=<~vfrZz~ixdI@Y+vK4(<9V^ApthkMMSHWM1Kst`{8bLpW_3Im#`=6JQw)! zsXL!d{3vwhM_yJF;G5-UoO@r+#P=PVkL}*@^}TR0j|b7)ZfftEXnOIDbVz5Jad2L1 zv?VCb}K} zsh&QXoX$TkIf*-=8gGdjqBO-@A!bo zMCYTUobFQ}q$Rk7Gip!wrOqaNb!Zf#vuQgK!l+1zdLELy^h8b7zGL>g@YoRx?BrV> zCA`cD3Jwo)g&_#=|1Q2end(+gz z_{jPw@2gbZ9N@2NOUn%O0*F||Z6*Z;y?+IxvpoLQ$$LDH^MTg3KRq1sWW041{||d- z`j&M1zkM5>tfp*QtSqf2EvHPI78f+Mrb#nLoh&s)q%t!lAQvDZq-|;{m(tX4E;was zE zp_n!bRV=NQfY;OA?;iFW+Lo?OKzTCNZ8VWtfA&OM`mTL{^q%i#*ay5kH@a=NuG2ZH z!7ILW03Btb5spG3#>u3{(5?F+WkXrf5V%^&f=7r&-!?-7S9hp z&Di=3Xs%zoGi_LHZYRQs3CGI4@5M2-;3-->MnJ4|K1Y7IF>q|L>qgmm-n47x$It7R zII%<3Dtuz^5aVGq&otod`$1BKht_jcF*vr`VpxOtBK%U)(}}pX-@(NRlsA?p0GqO7 zd4BvG+vDSH&IG!0(xxjsM86kHZK****nt%4Lq>HM@1&Fd$j8sS5g|Vv`7~`PN}8U$ zKz2@l&O!I!)iy6~O*a=JE?E=Ge*t^jz&@kliq8o0#&7UHpL9q4@vG$)yEkA%RCSOn zU~+lO*RSo63Cs(om(?I8`WU`n@b+L9ecTJ)=LaawSEd9|^{>K|@aMT1zpOaxzG&Vn zPl1Oaq%M*2P+gfWMW`#2Z%51Ze;#~$5gEz&P+IwHFxhmG`D1W-!2>cM@E4bPprr$Z zU-nNC&KAUa9}}|@rCEv8VA9pa(r8V4HiW#FeE84uOw?6AV8T!W$+orop@@L)M zjJ&_W@aUG!XB)eD1S=W>go|P}A3prCEw>@Ht_{!fHw6WcCcg^h&mKd+G=^R{?O z3-OEo8s6idKv(&5VV(wp811?>5(>HhP9+~!j!DC)4^pOZ$8OW{3xCS0mHnO_! z?F*Q~Rp}*98eQNT04>23K~cop1E5r@uZLBc4yP~~a7a@;1Cur~S#~z+l^?%%5oy0? zBY1)9?0Vx@3TaE0eC43vEtMKi5$gwCnCUdNcovwZL{?gZa|<52`*#(exPo)N6aWe^ z-dN8qqI5CiV=}z4I2bx@7A6zlohskm=Y39aOeLdp{X&J`Ju4_Q7wwCG48~y{O@rGH zuxO8%5=bsURW3N$E`9Am#mkv049k{^`G~0sLhL1sgFtTh6lDdqrS2K3CkV#pJ~X;? zJ3XXSB0TG8eN!Zc$hM@b=)q24>^a}k{w|;sOngT^h2W?f((nv{#)xiTbQNpfDhf}> z&(f>u0_Ikri9VwE`76<%o^IyT_Q18Ug@!I}E$wHkn9)!o4;2G-@%BT8%lT+7oP8vU zunGP7-KV5GnN>tu$Cs-k+MXo%>lPYuLMIWi7v|KZx#?S#(iz~AiihrbvhHfjCDO1R z+7UDwQUv62tUFvnMPPv2q0#0&EM3)JS@?7uGo{wx^$g=3@Pl<%msVa{@XEf5o@?7d z-OxK2c{IvzC>qc1XY2d&)^hg_2K73{kFoBxwN($6z9#5$?TsmRpi`F zxJJ$ozWTJeAfrO4#ISt%#5n>iCO75h;a8L69;#+ZmsKw@X|nwycYQB8vTMPpyTb;U zmghR8ToyB(1qa;AdA1^=fBiN5&)l0{J8()&wS=7*oj1NU=Myx3%*%7*bMuQFPmlx2 z8d#j$gIfH1sVJS?PiIPO7zM-fyS3=W6nPLS;Xr9pQ*QRz)~#8WesN`-$`shmgc4VX zZi!Ddni)9mpinJFDUsISGmfOc^=%=Q;Tix_B2?N<*wGlju zK_|^#9TjolEeDJl zhX=Q}88W=2)Hijx{@4_)=hvF4+UfW&*ZAPs8`;GAcj3^`x9h)(@2t3fX5WYVy7LW` z-N`xMKBB}gHd~%C1$35$p+BqtHvD!`|5zi=cLy@@=0S#V7k4`yDPZ=`4jAk4@Z0fc z)jt)lj@h5EveCiSRVHaqJ6z{yd}zgj&-U(`J6!|g#w>dO_kWpicK=<1|1QDL|LY~F zFTrOxJbmrau;9@IbL*D|@L;*#7HxSCD6x4PynmmZ(JBN${Z}A^LbNx5wXj7QL!s z9r1kr%!OI~=d{O~nhxJx6@a52&Rf_8`>X8$Bc` z1BhJ@^12QS6=D^&239QPH0)3Rd%4}#>xzZ)R~yR0sHmi&T|m00o|!8~8(X7K87q)| zhcz}gqmrW*eG=XH?V$aiy}RaldKQMi1TuA3LUw<^V|`dCTLjsfH*H?BUS;%V=!}}l za|a&zulX&>=R$`&HHu>maT;9SQjx5y!NZ~>G=n(f+R%!`89$L30)qtus@9tkI)8B4 zp;(U<+LRjk-B0UrTH(`sUquq0hA$f@LgdmzeOVLCNa<;vpq?tD7(NX|Y?|+k|7Pc6 z08i^ioon_cn`rg3P$C)7iSeN;SVyiT!ckhlw1JflSynB6?YXz4>in+2tjykpqxRZI z3a`mxp!Sdo0BkfY?qfMGVh@R>m@twSAvLZ*hO#9vUulSiu{e%Ng}R--wBd5*&f5@FD@SwjiM1 zaFLA>}<2KFLrsmtWfk!foNmSZw^?MNMxBc~}1UTfUrNwkIc1QtaIKrorn+)TI>M`l)oXNC$xwxn+d>c^cxD?r7#1&dg zzgA1g>6l6z8z(M!G$t-Bh8`8@HDk$zb}PT*`h@ZetFDAP0-5)AsQ9c;)Zb5mCFcP^Af+oBq`3LFFJ= zUDtTxZyC{`t)jX=_V_Lk%~KxfEv9$Vd1Ey-T?SQFY0%-wE`_BJ;?*V*sm2kw@=f%2 zt0yMIPW5PWHoPD3hj;h*a!3d{e_AqnZ%geKVI_CY<1WAC(f9K%8hQ?w z&}K8_s8$WdmS~*vUs=0kMKM;)=rZMCaX72tS()YZPXUurxt?}~#2tCGy}gG9h(|!KsaNNtiRgLE7jt@2zW$Jp;K+QqiP==rt7+|G_ zO1txpQAAh))>>+x9iw&KWiv=@q8ZIOsI)W_gW<1{g)+7>Zx zz;1uL__sXW6GxB`Q^1FC$bbc|8O5QJEwAduUnw>54e{f1=*W@&>;G(tOW*R^-VpWyQYa>tUnId@ z;#$LhwJ|qSOKfeE=~KoOETx%DrhYLP(XRB#HC0cN?$&$_zVE8K>s6&Y?!b=6<^H zn2m$gGy0_XL>q@$_S?>1P!dq)rP{|SdUpk|Fx0kVXcVUgY?iZMyxr`1rXszWEvOJH zG)l$qcT}NCsYM5hzBtGx+yxfx2l{vbyR2dhtvpmPVY42_M(u6%DT1}B(g=b6Mq}a3 z{-4|JOog``_bZ|qT7?tprkJHe#RKy{>Kjr72rPh>io^|Cw&mtO+vvZ9+n3~z)r`;S zz^2Q4dnlcz;fqvho>|kJZYBq9Cex&93k*^=&vDLipWkS{0Su1*8jUMmO(Bc07^b{I z$$ej*?gV7yHhS+*sm|S+ z1al7x4@knq($36$_tqkff4q{V1d8kshKWN}7`A_I@P^e2Gh?iY7-FO7JC{zeojs8h{Wh-um zdOP)u1}QpguBRN^){|fGVR&Qqou$MM(u-+H+qfWfs!VxC5TVnwFNB}2P}YVA)1|4R zR6t-(JD1}6ot^E+-JQIK0A7;eb3ZF9S_0S$#X;%B*Sr%k<5(IWQ(g(d>033jOiAd{ z?EDn|UDDEt0L_6)7QGy4)d74+3aPH)gQmNdS*>fu0aGmQnE(5vFXayFFLVaT+;-l{ z9zm-!?p0H)9$jxX;$zRHu4ceOEK zJ%?7%;Dg;70oe@qD6{&q%~mUPTUCE?=8=o^h&&|O*i9GE{yLLZvg6t2@5{FZY~bA? z`g|s3JXqo^+cIciIct8fK88w!8d(m_nlt$a93z39?8RA$8(#air8Ri#;>~4jZgMp; z+Mo477cbDjO_n8I;XnQ1e%~p41J!|Kw43IQcCM`Zpyo$HB9urvRQ=Dc$ndj#4u_%~ z$4m7KTgYzz`OTdBQ#iOc{1upK%^r~5k4<&PP$l3OLe1QRg8_9hF+-+z0(c!j+ri^X z9URc0mwQS7akOvL)DScJcSp7fAn6>I9O2EiEE!k&JE!KwRrG;(P~o}Q!Lr(Yp$lJ~ zn(ydHojyO${_!YS;Z`z%dsG=6PaS0`Wh0LdRL?M0jj7hLkvg`?-*7zprQ+A+3r5zQ zxO!O>FzF}&Gb@fft``k%1(XlCL__R28s3*9n;O%kHr-~TFnkUbPkg;>jXQFl$Jn%# zvMbOvFN7S7A<;2X6AA`id@mJ+Zf^#vGcxAtm*WIyS3feO;rZ45=h1MX3;A3}O ztyd67fSD}ETP%Okv7KwS*(vYrii*mx|t7)s^N3~u8aijQCHA3MsK8^E$Wkh#CZ^B26nEo zyM*&`TBx6u*;5DTy}NEZPDD89SzYhku-oBS;dF)R7bP@!mNdszTKWi(q?CFtqB9 z&ebkibv>S~$iDb~VY6b$FnoJw;i>Tai=P5I&f~t@`7Ugf^zJYJ)y*1e2{2r-?pm32 zy5{V#MNpe4HJ$c4Tl{pvU*xv5^Dl+-54q|+uPOy3T0`5j!LCFO=R#p@~!>--aA<#y&2V5z|oAzW!n5X+{>;{nSI%Z zz0KY9p;iNGj#E*({uRG;8Q0^_l;SR@K(u(oDOW{e20krq%fy6tZsu@r07)B;R zMSuTPwRn_6H{KiLkDUrDw*STB%df3Yf9JT_sq(Gx;{ye>3<0f@T{AAga?zQAG3T=; zCaxiR;4IcK#h@8e-&&EL@#zc=w8rtLd#+&AdfLn zb4Kts@@%yxZ#KC`Ry&o(d+_SI*TmInNP|+B3>4=hS)0QqGT0(M8rEA3{Q$Xae`7E^=#ny=+ zw(xtY-}GP09e&!zy1wSSTsiOP<&L?*juqdhVb2&b=`gNTaCCJz{vbj03{PHV00zeE zYPUo>O%`9QSJ?#AJm9c*xeBd>SkF{EV{+K5%Ovo+&Ya+pbCO2z3Tgbfi5*wAi?SyR z>-Fl&(xek(v!)VKG#Iai{_@86OucGIMNrlPa^^?f@Tt0IaDul8(Bz@PT9+^FF+)9cV=}ds5zB=r+O%(tsIgoQ=#uK*A95#Xt+e{hHPof+10f>=o9H^>gtVv8=1A zot>!1iTiWUymASl^fxTk4ImhI;;elR)3L=53ly@KfA?jh~z1*_K zPJ`JG*ct0J)XQyxxU3Fzz3Iy8VBziv3qp{a*`;|6RKOAC_)pq5I9TfFl)? z4L7PJP2JOq-yhYoY%k2~hSqv87XRSoI?6EW_F8i(rVAJLCkt%c)oC&e1JsZJq%{Di zlb}_iJizI<>@;L=XfVoE3fwHE)Gcs_H#Lt=%;Vw*Chke(QWoAqQQOov9;TCA-P7LN zDZ6GJDLYjHhCKE(XA47Uk}`UwHAlA|?i4pO*m?n(I!B`jf|{4u+bvFM@JQnq?=0d` z&mE(a(b#%wn9^i0zwIH!pg2+)SFaQvpR{*h1SuWA{K}EE6zEfR9YRJ4ga*r=K_YZ2 z2rO!C?aSb61*XC3(xMw3cA*P8@@ng|U-FDfsb@@=U=YGp;<2`tRdIq!^al+KmoCuY zH4g@blecPvk9$<*jM+Q@O_!9FjZSXTL;{R14bf9Xtk&lMZKC7PfEarZEXcE| zRKIIkl@VCD)U$9OZ!gv}KZUA|3Wp{z@Sd&2Z(vMf&Yto3enlXhAZBuV&1>(98joB9 ziC=BZ;aw!IKJbT3lQG0Hv9SscR{ybXon%M67MS99L$Jh~jn3Cn92kq|AG@o!=Zh>} zTcZ$@l+r1+AkQRko=VJru=*j3OJe5`a%@cTtxu;vpFn$RH_j7yN~d+djFm%i7`91? z2)voRmVFwi&yfLM@{3~K7ly0b-_(YqRcQelO>r=L+vy=Di-w$?!O0n+7WLN9I242n zJt`lP?s&s?WBfd9EK1V7)awiu^Vf2}0uKrIcH)j?wzKqZbCFMvq9n>NSVtfrO^W2> zOdm;AT1`?-L*w4D0RVNxpepAqZ@XH?G1O-4kjbB8l~OdPrs4`A8I7Lwpfo{9qh2#q zzN^n9u_Efr-`2(5OCSs-dm`Wrui)(}#F4=J;ceeuTNJ zpCec6*-SK(rcS!<8?%emD)3Of`aC^AVp{{0;aaGY+=d;py4h5?^3`kF4|?xtLNJKI zHE3&O&VSZiX@R%7KD7sbV`U3GNmV#(OPvcy>5pOR<195&j$wYSXLrldLCC>6QFNzr z$VRCDW9sef7(FGXZX@zGc+ET|Ed)5*>M%;!07{Bajy?tK8rV5;avL?+HA8ls1koF*x`z#UOt z3CJ;Gs2-zFovf|+`s>Qf!rPZtx&mRneWOLxx>KqJ3Io1Nt%8#&HmhxRQAGtJj7*tD z$p|4aBNfCuf0xJYUC}mvJ=#vEHw}cgrAn;KkRYXOU?q&*qi*(XO*cG4!Gbhc!TzVs zPM|d*crf9nrfT{fE{>cWtmN*BtQVIs4x$E@N5a3+_3=`|3ZYnousT1OA2sftE@!!T za&lEQ|JubaN=y)QJ*H?Bnr+QqQ}j zvp_dBQE~<&eN@kXy5*7UCheERH62VrTSGsB(8Kq*^%ErgJ%EtIx zhmS%U8nAK$s_E2UAJw9}C59ppNQS}TfiOY^szPBy)NxA^#bVq@Z{l-ydF(K_3dd!! zXT3vLoIT1wYVJonJaMgl{Ww^reK2WaAlAlFFiX6L$)ErL%{vc0JiXi7H!l7bB3#0^*KVi|>YjT3 z)`yCv>9iI?XlZG`d=PAE&b0+f|JL75-@f0tU-XWU>n^Ris68kq6K^Uk5~Xb&_lVb{ zQa)l>lrzi6L%wa_^js*yp8jzj=soyCCy$dJ+}K8o^lFJbg%*4U-< z7drO>ts6WfM>btQCTvYlpG6C%fo?_fby3EMKq&V@0P%r)zlKgEIscKBeYYsdWZSzo zX^2)iQ6e%)dFT-?t_oRQ)kaVm6ZB?QNr%hE;!h*L41-yjq-aM908=}Rs zh)Ud=Aep5Dd2#W-cALIjzPB;?^E~ZhQUH=2QjRO_GFEE2y9koX45@Ak<=-W`Z9t@@ z)~VHWscGcIk_~2Kh~Iu0H*2@CrlYw(5fYJGH?!rJ7w8xa{40|c2?Zh(}UZ{_SiEHPZqz)T8VZw zci%x?M%UJNyB<|t_gp-0iO4a)EyVtf zHWF1^)+9=lv)wdk*6D`2wiq0BGa8KwHYg1r?l9iJ-Y&xYY(Ej(ITc8X?)hktRon>D zdY53!m>^*A_Jw`;o=sqAln;CHl|sc5_HZc-oIyZ1xS(#` zuvsPX7m6h6SybGMo^|1o?MIhCzEjX}zSE=T=qH(on@p>Q@GwG&I3&nM=ovlo_z^Q1 zn;{T4V}Vqz^dtkjB8jz|jw$|?x-o?>66hY5`u3|tKvwysHRyg662m=KOPR&7L|7o; zx~Zw-N zpz9z5X;uXJw1~!t=78caMzMw;E6~{3 z$17RID6v*zmR80JWS^dvUflM1@s(Fkuk3rbUs=?s>2*9-n}((S)^C9sHI({t_Slp# z5&{Q0c)sFc?dvWLkAgh%?e$9Ix83@t#1K3HKc=;qMS>5vB|G~d75!{=S;YhPYxr*VWn3(()m5hK*rd#xDoo{-Ou7dOa(-Dm##}#;#Lk&cK zF8+ScaKcttC2few7z~l?FhyPOj_0d+4%(}ec>D(0u}ZENzZ}NmmLFlg^(h!eC@I2! z?c#pB;@$jW*(bY>DjCUW+VD?(42wZ&rm$gw9b2}>gVvhWpeR1;;W*>PwX*z+!(3(h;) zy*@1x{tyd+GJq}X7n}89q21fi_?j1wrZ4kDs8qLfPy(x=8?iR=e-OPPyY3w=nV|hm zsX$1Zg}`j@+iw?~lc*=MK(^Wv;9VZSa)45jNJd#<(LthVM>rx!tr}(!xV-}X^5ZZ6 zc(cT!b_=RWcKn>na|gS6YtV_Cu|q=%waa!4MBo4(m9&uM=rm^D%!F($Phgp93VvusyD3iD4K;>0ukBJYq@l zy;X&Z#62|PW-QsDX`0E|a(z?6=!PAs8yZz4Vo05@zt@g710f{dM0qs)yx9^ZL^FsG zG#>3`yf~H`{e2NJ+wyH5kGl70Oont16`np(Q%}`E{w%vG9-dOcXHnXI>HS^%tMsCp zo}v_G2P!+vznp!>7C~X5w8n?Ek>QOTCY;Z2f{pz;G#-AU)?sGhB(Z}!umPA(sMeG1mDc=Q29HRx29P+1BaDp*Rx8hFSmAVT;4GEBpR6oCNL|-32Jr>UO1}&{3_18 zH0N%FxV*<7C4lQsFaJ5)@XMnw^TQlS1&UqSrnJ7d3G~XictQ@OO~OmXbEcx>MDR+C zAOb_!K;#asE*RMLH14OrUjD?&!nPn%NCXQq^50!b}B!p=nNZ0lge^WNar;Kv8nYHQf@b;{Ab_F zi*FyS%UyW+{kfU!swcg;*_X3HO%;&J_?F6aFGRB(Z_yCC{)mo`S$?sT?X5OVQOI=$ zF1}RwZqvdG!SAf)SM{;K5osZ<*$IBMiPmI28)F7Q1fG#_?-V32uC!XO z&5NvSApOo<6lm3){L^*xiMxE@8-DQwbJeD(r0z6>lu|P^n+N}-Ir3Iii;9z$=!U&5 zA97#paXa>4^M6V==BK!TO`p?>=gFSGqWtysQ5Ca}&Ol8A&?;_xO32Cik7Vj$|9WaS z@XBsRrK}|``H-I%n|UQ`p8Lie@GsF?w;q%$bV>wIO#>V?>#Rc8nb*mko}8kCwL@lB z-JHMTLqx%ne~M>&F2723xcJ->9kADyOL=@McB;vffYy*L9BW=2Nb#kzU|{vzX>Uln zm_ar{*>OW4W7{47lL`Akc8@*o>Rq+c%St8m;~QExSriTpI%@*ZueSLs9!lh}bl;{{ zmR|G_)#;L*P(XEi^Xnn$=AmQD-R-NcJX-c1h!$g7em`^XbV*#R9L41l<(aXsf32V9 zx5g);QBh2BkOyHa0nm$^T^v1QomKrw;+AhvPc%APCO{$6nalekIvi}4Vm(v_WaVF zqzLq`oxA;8K8yVJ+PRsIA3HyMq(ILH-f`Kd(7%oUVPUee7-|Y3_5N!|jBxLNot7DS zV723~@r*q+zW)E(Wd_2Cgw0qu{bD$=UYcIQX6xIA_y8()b7-i;@&!L#ae~tWS>1CR zyea(?GA0X`U8J-$bIM%8&{z)O_9UPb*#l$?)5l8u0^Ge3-`*V(Z;81>c} zu{xCj)0(YO3CB>)fY;XknFU2n>EFX$(sa$Z6gg7!T1vm5(L^SA(txuhHQowFcO8w# zBM4BjWEMu%vF)S2ecOQ9dm_JVtfoH9tq3r|M34kHNaThI?w8J_{=u`=Lp7^oMYeVA z!cUV2#)B5Vaxm*X7VCLLWy0Zf2y{cNK(FT*bcn}Tnos~RJehq;DdT9{v%WtNKke%U z1@z*_{0)i zHozK6_EU0d_`XNdEnAaS($h87|JpfK0)MU>?C9F9C5(1NwezUPEl*`-Y6$_S8L3+r zP}lSf0dxS#tsyTb5pC8-ORlZpODzC>GO;TbMK>^%RHyvVMP+tx&G&r=zD{?c6C7>#0jb!KN&=*F^}fDZcpi6`Cn!1qXH&^5`lC1_-f(H2J>s+~L8jE(q>#KY%E ztmwXqW&3!Rz4kBNW^fziCB~0qB`h4bMz8Q+$4XXr`dK*rTH?2fhlxKDqV|jUj+ZS) zLkrM)!Jh;~1co%qDsqiUPn66SG|;K||H1BmdzT+KXWR!0aL)<9mwM(BpeXwrV@$ znGwR15rE}P2Tzq+N(fYUY2N80988;fJy&s;kbG$BET6q;x_z zyt3*Xr9WLva}%KEe0WeMD|+iGzuf)Vc${6s7V=j?4TGgRrjOiWCF6W(dn90xsxXAOE6j z?wzkye{23|#bv%ys$$BTX43r(O1_MmEcq)wD|0Na6(Qa-j!}#7K~~;}_QlAi1z(P@ z2ROX=<@22aKli6+R89!;nr7p;5z=I8Tmfi&Wj_LL6g8vb1<9sor*B{){KQ=e*(J{b zLhZDmgjW{?Bq@P^JgS33*DGK2bc&LRxt>jtux2SoNEmBGlw1KCNe=Ylak34zCS)9) z4QtY%1mD=N-o=N*`Z8E3iOGg-Pe)vjy70pQX1!&Uo1&C7REn8c6kIQO1~@f70Qq|^ zK6OyfjD+b1+MZl@^hn8{*Ew1kz5c!oBrCjEMLt8(Ov4UhsWmzcg@JkDET-r*hKmMU z73YxoZ>OjL9t@T@D!-Ma{7Ss76#*?&Y}2BCTnNNgE)Zx(p1RSeT+{3yOoc^7=K+L@ zCbxsD%nYI*wOOH}h=+=p;}WyA+9KjJx<8h5I$rtP***Z|AZy$^vtQpp0JTdf!b!87 zBHaX3r^@kOV*k{ph`N@}p$%1jea{Q+Tz`3&S(F#eUEfyovV6BRo_GTa9JW7;p0toR ze|w~^)@ZP72~TZIdeS7_HtMkCZzrdvr<}5@N_bz>13Iui@L^Un#V{nw5oKznVc(>& zY&}jQkg^S;7hl1n8NW4sr!5>?AH8?X<~cK#r(~7DYXuA*N_qYwzc@WHJjjFmfkK;- z<{6Y((obp27UqYYFvd<_S_&>g5tD=O^44^|`wI2;@2e5=NcY~4Uf9;u7`q5O&yn!nTWZ24~?gd0GlMf718{VCheXYTQVuKR!{gAM;houj`WY^%$%-;e1s__M z>%A;CAohFAXOojuR@JxgQPnX%hBc%X5P$~go3H3P;0DD*$v|YoNl#T8pa=C^&mSL z9iJC`Z|hr@PHmQkiIs+QWF53K+yAVdpNfYy50WKsZf6|&BlcMJ@CfA30O4y=G^~T{ zgvCKc$YgS|oSmaF-t9S~`p^$A^@4UE;}dq&&+#f?t zIbK<0ctb9p#Yhu$he`EMqw4vC36Fz2C9`@K&Y+Ii!|#3BS-d9e`DlLrWqH+=ogjunD>F3gG6M>V z(XyW06~1`(SM3k%zvk^v4wr%UE?%6*!K0gGw^${8(DrlXaNwc7)cD)U55^!m9|cEz z(DU)~yrN#62|CWqEe@N>zp9;ovM4D{+cKCKQ`)YHDRW5jkPcY#6!M>djh|hY z&yRK}WD_!t`iUlk05hnf%^EMh6^0|}Y>F-qUdhs$CI0sOZGrPg-Q|VZN`dqi2!$!f zn60KgG#=y`7H@}Tn2dq0k-v=mLo&)Y!l=e9w>#J2nZG3 zOUa)uyr7QSUG&xS(?nexMF<3Npfq%|blR;&FN$Pp(()K`;(?5Q?bQBwq#g<3+RZpd zNi0>eTknpbT}i;kZ#EiFHqVZT56jb^J!8t@N+t2tp7-c=Mf4v#o!+|Gx4-J-C0nD% zz!{B4?t@QMw>tGQ*RH$%Qw%K(JMMjp3rlT?o3HlunHG|R63AbU=bO0nmNPL z^l8Qift|ZkTCP_^JtHy4Xc!Ec3w%G_@ar{38OU{sIJ?j(xR&}g-Ge`rtnr7-xpgLQ zDAfS+JR4*(&}KP+w_s2=Z~3!PPT=Te{a7(>W>?e&2R@TU5V!CNG$?zI;@~*8UbMNn zm;-3R+LX1yzkohx=I4xF$#n~EZ#Z33EB0qpm}$x7zo$z>>3C^8fe35Yuiv!BQ9ZV- zBgB6Lp1#mEMbdD8t3O`UC4eT1lFiofgn9{Os5ov?)2e2&FBagTF<;l@Z(jA=r|-tY z=4JEquj)I&)@O}j)!MBP$)K{Ckf@R}zMfUkTUw|DSZ+FyROycP?kalv$?fh~akN89 z@C&Wt&1tOZ`P*hO16hYTIYF_wc~=YPXN4|!R4odZ zucn)o&3OQf?)Qs@GosQUac~+OYz{J(isxT&C=NcAySJvpqAjG=iFKlH7D%{7t(iF7 zuZ#%s@mzWKTqv^w);^AgU zg#3(N1dFGhtP2xw3w7)ghemtW*w`Vs5z`(WK}C(8LvzMLM|#*K0P|BTwYj>?^R!PN zZT#|lteE(hUPeWxi<`kitQ=04^ji-5I(raKR|6Mr4#N_p`Fo}c-FakY@wfRP_otxF zjabM2QUSt4ED~FVCgLmBVIjQ@=h-@enA8bHu-fDUe^wRSKTY7II&vlJT6L!BPklY7 z>pbh~D7Vw*aIj=?#I>Z)IuTh#FKZP{kj9=kFiy4p+OqJKBrxwn$Yn+N1G7YTTEJ8d zi$j17+2!ox(ZiENX5b0*9gkqnE%Q0qb|P`JaBBX5{kXA}$8alh3)Ck36YExzUWe~K zCT8X+SyCd&DM>yP7KQEct}dg8=V(xDbk{E@s?s)oz5))sT4mT^#Ys%C=}2E?-mC5p zR04u)^aT#Xg&!7sHWlvf*jrL0=QSwb*F-27bZHS0_Iy(%n+A`BTKzR#%dX8gH~sYD zlL(U+4@)wgU-~)QI2g_bog?)G34yIK*Z`kc7LR)*g%Dvf(ZJckgx}9)!7hdFB*|*1 z$>QjkG|3s1x$q6ihe z5&+s8PUVla%tj{9vhcv}=8Hc5(~Yy^?CJcf{Nkt(lSLNLliqyT1Sr0aEKZpqxs7PS+=!OLbVn4c&x=V99E{JHrY7l0`pIIrt)PDcUg@*!Bb74ELaE1 zGV>$-N~bh)N-A~#HY}ETD?Nx)fySD-F{|6kv)$dAemT_n(&J91QeeSV3`T8O&S4uc z@$u3ggXR0KYI3@tFbfg{u~6%|nai#L%BzP#O*omxO2mjL)aj3rud}x`yAL{XV=jZ&fRj=MTeo?+s?{A(Z%^X&Rvp5w>!bPbixGY9e1v5s@P zt(O#r)-X$k%+iRFI&jI25xa9cHlN3(RV{Y{PxF2sx~ItY@-qypant_+L9`CJP)A z$=$t3`RhIRM^Cp;KYMaPjIDLLkm~+GBNEl&_Dug#eNRZQd{hx7z;YOzO789}obR07 zH>bL>hdsV(7&Uct`fbd`%ITt6@LbAtqGSTw|L~)J*ttuwYT5RTnX1n{YcElYci}*K zhY3bzKK0BaTA!_kFK8TV@!M_hbJ06&jdX6si^hofyij2#ir_Xo@w7 zbC0$38dH5Of2w?F0pH=T<@@iiT%G@?>llI;>f0S}?_ybf%?u$b3F~jv{s{!@8dEk+ z#6!hC%ucBAc6@NvsaAWDhxbS7AmmTlyw`b>~&kj6N1<+)C zt_7s|2k=P$b2xl9HRJu0|4P#Tm2>~=lehc7TLSwMeu;4~)F=A4`33aqJ!7ed9O+KP z^`)ZdC5Y5B0wC=bkLsOR(NcDI&>*)GA=UKqFLXjf`V_%93k>ZO)%ly~kPtA`VDYmI z-tXR4AXZEPTQpgk(L^e(o6B5{OxaubADL2A$bOfr-Znc$9=GC@_0|uYy@vg%dI6pd zl=R-8#9^*|N9~$F;^Y|2&b-@82$J233P%W77L+wNsRkDj>7!%GYo%N<~Ggq zAOwI}hL#ca0JMcB=7w=9Y{8+8enYn-X&e$@W7AOY4-Cs6spe&6c4I~Xd0tS_do-Lb zG3Ql;L^0RyKr6~vEZ8*gh+2(^0`>uuhc@5Ke;>f{1bZm9uRE|4NnQ>kc5ib#S$<${1f3WzK+&w2d^&+qkpy?23gIgan~Ss8Mz zm5Q8kxKP;!Mgu6h!I<52UeXbq9c_%rc*9ZZ$5smpH3JR>yi2rx5xvBiUAm{24MxxD zJvY3MO7iwz=olV&*otQomiBpUyHvpwOyis(Kmh^n#QP4pM8$-&OKOJj#8}>WJ zt!CI zlJ@Q;1_Hv>) zgBU#$Egq9lq0v^ewM}tr9iK0P1ManHp!rRC;h68aE8m|O37^uIe@?WFdaS5yW{}bR zY>dfhT35(Os_mvyq*P152gbUeLcd$$GV1*~cg3p?f>Z4wx8OS8=M6rwN@|KkXaxn1 zU#@lpAXZYm+IsvJ-FV$5S7+F1vF}VdFZjB7P=@U-SvC+j|@2q@flwad`M;b@`^Yd+Y;A@vtmYgA$R?B*#Lo znak`y=MwEq<@jsXtxTT~KXR7xS(^@tpr>?gbZY|~(ZTLBTCG4%=)oZ12gWmvA6Z-&*7S<&XckQCIQGXB3$+ILea>)`e8XlnWU` z0b48>8~_SVFbJzAfQ_H1Iwd|~b4A68Cw!L;h`M4TilF59d4@qr0BKqy3tGtaDrpZe zd>wd)Ilw7n-H#@T7T6SgXa?BO9us1_2z8EjZm6c`qGMY*dP<^=*7palxSH(ce7BR%N`I z4|qF0ac4&ZG^ssKIW#Xai+&zpG`7KGkw91;6|8)&-SqT_%|GRxo81f;lryYHl*dZp zG;&Hc#Q+?sVED?AJ_{APM#00(3mI%s=n0xReWS}xz0HlZ>mpW~N&BHMDni@{MWz7Z zdQ$ETrdSZ*wYxO5x+R9MOvL4Ip3Q)N&q{prCHpmJa%F~YOX?0p*dgW+U(^Vfqx5 zBC?oJ77ySu1yaFTuV4G#kNOese_TskV%utHILC1dPNE2m!x}_BS))7<{QNyKlQO^v z4dk1QKrhzRg70#~S2^y6BYwCDy7N$85=Y-6F2}oy3oA~j2u zqfrW;vDH=220}tYO9koD_y(MppxcoC^4N#QWr;S4TlC)C94mpmdDxp~;4{t2XZlxz z#tTaVPxHkMdoDBg2%G3iUTf7}d;U*J)6R?PM;9v6`u45NG5By^h<$yyk6Kk|G}c#z zr$)FBzo@A{-m*jMegTKPh)?mVA)%OF_m{k~D3+Z65#>FZ?xQhALmAiyW_lw=N~V}C zx76M{>!1w8z&TN~+Mpk)u-j^r`+!tbhO)VG^I?#;gTv<=xU{J5v9iY(ouJ@ybQ2K9 z;hrT&@dM9sguTbL$K7W!zH+n(2TngV<|+T-QDuOez1OleK;UGMJ26dHM=K8QEF++} zOtIjZ06&U2Ab#EvG8A`6(%vU*)`e>zjE(Eb)j7Vmau#+)R`{!f-?#vJZsIO*^Sz1Y z@~pUkY!5;Ito9&#cU-uf!>Wgf%EI6&YAM0<_buCg?b(8;oU`HjaPimDcw1|B6_(Gd zgM)DKCilJbN$ewa+ed8&RPt#rxIcuURK!9ae)lrr3S!wx>1&77BVAmZWvI!Fs2)%8 zs7rH75Qkzi?o~3<4S+oTxp1dsryQ3Rm%^KfUAgX$?-(l<4>`!#ygBw(j{bJ-qH%1E zT2Nx9UyJ(rVYtaS4EBn#!%Ar7Inpw}_ zrzrH8KQz6Unu}B$O2a_NL@aYpS<|BOcdvU_Jzns3RR))Gl}ioCOD1Dqb@$5QzR6}L z&eQR5`2&dotTV14X%@C#v z^}>WQn@rC#^IU`8ji!&@NFxRd_hppNuB+ZY0=MnCh$@cd_wj54EZw|7TM`Pl)mM?Y`fDdcvD zhg}|tc>b@(bo!^h4b`r0qHwc8svA5bTfd_jy`QDgS`&i*^> zQJ%{R{<_hP*|D*ZtczoOL42{r%d2h&H|#473NBSj@nz~`OK*MZf51GOJ64_^{9ke& zlbUR-(0ni!O%d;I*ToE&au`px^B!NUY-++XR5c|?K5o`EH*Qo09{U{F@TSZ8;C_R$ zcTKq{DP1DSfKO@~VH6tk-q`)d0WOvqHKPaMx%47k9Tsp;tu)HR*OcWo zDGIP4JrD43ok+!7F099`QKm5H_*tCBpv1hiUBdL3 zNqq_oEQTBY91^VBztoR=WWj}-hG54aVBlu{(y+uoWd^9Xqel12W?nHT8^~K-FAdSL z5S9k#p*^2nA98o=%%_$5YZuCYBON;^nDGD?hG{e0EWQ#0*6O)!M_c+IEEhfWtN81X z8Zdfj940C2A7M8F;*kYTed;H@px&5$AwYOg+m z;Gv+5=Ly$d&+QIJje0M1Sp6}vATS`r@sg+zuNFk0B?eJS%3!ejEUiRC2KL)NlXVds zX@6;vXK$zbEtSiH8k ziJ%{P;hSEY?`eq2aW6SHS+ zotTrd2f7xsmD&SG&nJfn9z)PEaL^t-A5gn|DZ~@qx4hp+zMGUlywxeGRzfzvYY&HmE;qNqD1D(j2{(52?q|71WCY zoH~NBBm*)!tPvzO2(WIZJV@q4n|-f1iTEcvjz)F8(6r}jgBGDb4QZz9;;|yiSjT~h za+w?Dk>E*nJ+Gk!2zIHifwvP|@qE=t3)0B7vp%kIrcd>iu+i9)DXt-B^T%8^Xq@;9@O+`LQJS81UI}+ZAEWbJmUi1zq_vRaaz$+g{OwGMPpw}Ik;b`R=E%fUq<`&(m6G|Lil-pypljjQF* z6_psbqjDT3Gi92m`PnNbz3E;X?Lie!j#C4ACgV>ocWu5uI;P&0QGhMDI!ZZgs46FQ zsAt`+ht}uN6rWG6Zi7JG1;2m$`F79K9i6rdw=Bz@j~KLWzk~I4k7@(r zxcr%ajX*2a(jsk&fDcG_vXg_;9GjkAZY*$^&fOzDi6M&3dhe==@RZ<;pdl4&UZTU&89*UqPAv5(o91<2NF}*$g4#F`u9~OyAdx2p+XhELDwdjmYyp5 z8TW26cy!_4qd>outWM{#AD-TjM3!hEar0S%c)G2tCn=~G%b3yUkJixISo6tt^MM&1 zhtmo<{_SRG@|9As5)Tk0S^?}`pI?KdF+E&mg+mScCMGA+`^3_!_d7&4#0LvsVGK&S z>eL7oyA$v>k;%1Wpq-++b-NKYk**o1a+{3$Eu{gZ<+mdvKG-Z;vE+^OJYIS$5P~43 zFtY$c@a@uIZD1ta!>%?lQ&kI`Yh{DK(Q|JsylypkJNkzomKElcA&=GKGFlIpfE`y3 znDeF|XGbNqW_TKqO*8Tac2PI?d~cDc>9^^|oxDJj(} zz#qh;WDQf&CdDfDPyLjz(&5(G;+W;RYYwkURe9liZE_#KxTKilEBs<%&hm14bJdFSGN{Op}4)u zix>PM>j21Phvc;^7wg2ls`Izw@YGR zoH8VlJw=eMUjp*}wfRrPTj|}G=MD0~$pw%VAlIS+lcyVJL%0J3|t zgQ25(lid7k6{#9{rKsQw?=ufBqlKSM&Lgi!Js*VEt|!+;Tm?MZr$dIqMl3ONJo8RV z#GDuIutMnG+gD8a>K-EWDi;2_=(F+OD_iG(L=e{Z>ELeTGsVZEuX^4Yib)?&;V>zf zPrKE(e~#}aPYw;~6xc@8z%-+o$2&{EG&QC3zmR$LQ`Nn$&z~EtuVhUofQ95`}-K$jlvpV)9!f$ z?rnPw4b-ZHU%N@X>0irC5EX0s-AiD^3Z3ZKSAJQOWGGqA-Xnx*XE4)8zNA-CoWGU%jGpnG+G4IiF^nS?f^4Y z2}9DadSf-?Bh%rR2d}KNBMAw!eFuW@#_Fu5cyJ3*+|p#FIX49dsyua!85mzedQxX| zgpFQQ=epJB_l^};M?r+O+;demBw)rY=2GM7mXO@@PX}h3dN0o|X(<_=<0N+p|nH6a?={q^pY}Ny5OOaUhjE$g@4ZPrwI~OcIAw&bt?Ux)4 zpuRE2oGWPKGm+04(Q)q0alolS(pnUOMS2A5*o{tHycp8z z>hgI$?ewlFI5|pUP^(QUUJUqDN>(uRprwai{m^WzGoJ z6GzSqiIdfEFrsqGAkr&fw8+Ph)4^`B(mtS}QZXOuEZqB`I`3n;jh&AnV2pJ7)Hk(C znVkbJHlf%(AH&G?M z)=RYtC%&S!sIZM?CEmTPHW!w?WN6gCr3d!~|7(M->-2FvC^!^YAPI?6C04UHP{$Qc z!*u)F>Y~|3TqY)&40t0lHN;$D2s2(Gy0QQ%V*}~IEah!t3 z#}M8?v1>aI!T%Ub^zqA5%5$CLSCr@Yuvis&9zDiXFkuVoOd^orZ+m zYX|dwO!$V)^d|w?+qPLXbOFQ-Bb_#zZ4V71>VwYkTfj2{I_~?}>la;U->JOqy6iPd zrKWFJg;)1r3|Z`{q0FlglDMS@LcbOU&kDd&a2D1YSM2wCW%uR3<|A}?UsVdVjTG;8cNGoLKq8r05lb{x} zj;X`{rl3T_H^FzpE{eYG{_gDO|14-LG?w4M;%!O2-DUTMnjXtgn;u}74?v?`dp`^) z=xOv)akf$#`P;3tw>To6y`RB#a4pX=k&U2kV{_T@^A=846hF9GO4XI<>$XHy{QVzS zVrn~4l+hR9KR0^OwRqHZ}d_(>EW60=AWIWM-%YuFVRk0uuQzzx=P(v}Q z+`J$PA#M#*gBrm2N~AmsBDCaJT^k>zm+B`$cOq?E9P(#bY*={nD1{Y+f>H5g;AmM; zWp2TlEc3zO+zqD|EV_O(AJ~h7{S2R{hvMKOaAE_JYf|D=&*j~o$&m$3tm1SgrMRBs z&tiy29-UdQD)=Po3*476C$o3a`=$Ld5a-t50}HJ9*XB5rtR3w4a9>wi2ySY;4@3x~ z0Zo{x_+2V}ckiaUg8H<$8g@u!S}?#*fqsJSN^6HqzM$5= zW9W@4aY-e+BGvJiJsZ6p#>(-FvOq@^Y40!k{Y-nHRtaP{Xp8camlii5kqlVs>pqr-Tw-D^u4tErSbv zKc}BHC_6Ip<3Y*HKcWySDfc44vRHsWo~g@kH-kW6KpY?as1sAIZ$f zCI%y-21pF1NS_?aa9XlxKM1`l2&v@)&(tWoV!6Su(TDm_o*kY`zW2#stSQxr#hW;TLAa#2(MT!BnL6gEBtUx5dicpW=EL-Vo zCI$tRj1J{r#Kk3PP{pOg@$<9NnI)Vv;pugPC&8>(LKdNz^fx=HWbi%B>H#M%4e=?col=}aHUi~OcpWc-QVNVpPw%4&Cf4t?b187n}PVO-j6ln z!E9LUHbSA^5)!>_@%)_DgD;kd4Z&`hfcH1Po+!&q&&aKKk?Q62#|2xWw4~*5T0wK& zWJS@?EQE|G(KCMNWw26`HICp4AZ46&{MMlQXrJ|!>-AR;aexg-585$%NW$uk&4g^5 zBNGlVtH|BeXdbY1gfbg(R+jwNF{nmyHzfn6~max!&m{CP#5WoyDhZ6_BJkTE-FPMPS4;k16y7*!TkDvdb z32e9A9;0P^bUvB($!w_l*2{pVv<+j}o*gguKJgufooS|(wMZ1ES8Axg4h7M7 z9C9tKeFuQoWbNO^BC6wVb;S#V9Gy64T>f=qKvRpcLfqUQ-v%?n>9D^hHE4(5eF8F9 z7rWk;JvBMVT&L43E8EMAzDd*w<`u>t${CLy^yckEYWQ6dGN9+QG^yoH?mI7=z^U&R zW9B8H3#E@#3g#_{7CNjh($g=Q{0*;;wI{wPI1Q)sunbWXZm;%2>{GYD#yaiZT^j{; zk0s!aa^thd-$%!VtVF*+H%(4SsYZQC&tAH^wzomkuS?OZ^_zZmyQTF?#}K`27H3H5 z@s*Ft`DPO##jqLy)rfFM(TdQ$9p>Y%;Pq8&d)fHLGa4&JnI z_d6l88$=MX7oHXmyP$ay?;xT~{{TMO$e zeM}*_q0w{*nq7<4jO<-3ZaqUJXJ<+y%AAHoHpVwD2^pfnyuVlBSk|pG|4v>Muj|Bec~OWW1W-lOYZdQzLn2qP7`&(@5L|)R{AUX(tvQD4cZg- ztlAaM=hH;oFsa0_CgL$8n~<4mEADi@s`r)=nGd{sJJmr|QzyvEM&B{k=i&k}>Gqack!rz+8cxEMs596EVhH&x}6<9v(wxE}MA~ zUQ$6H$qU`SXxS=Y*cmt7EWem{AYet&={kE~3JeSMf0jympjk%7n!@Js6@WlU%rRBd zcc}oP_r=d8_z}ljLgBG6WFwPTgRYnR`Q3?xYF^u6r!_5IIp3>;p&R_DClf z=PF!wY})WA=C?eIWf*i7@OuTS`CEh8!^8 z2*XaTu0D=;CYUb@gG1c$UIMV-;@rK{OmcS_Q!Q$tQsc|wxvv^(aw!whQGI8|ZoIwb z?UMLt3f~g>Lc*cLqr#xBEE6-wdc1p8PW?cRFvR3i7{{p2VpXv1)S0b+N2f2`itCJG zERx;UfieU(DV!?pj{_W|AN#QB=WYrL&XU6Klz+n! z>fUGWY;db>i`xT8-zLs~ebG#-pGSx^l}f4gyE4}|m+WnD`b9T89f*Y0BLlPdr&{p6 zB7qhy;I?M%3=XPbsNig8Hwde&v0=*_DIb4ozp7m3EUTMnwje|Z6+<#4MbDk>8!CD+ zCZQvLrBbnMu4d1+#~YXYHU8tS=l=xQ|D&ZV2qyiSx*dmFA$io&!wN}BJn0+uape-I zFF7*}&Fe)PVIMzSg}C=EUDL{C?dL{y>dB9vnUETPHc(@vr&A7uZL8*CVbdr!4u_xn zXNS#+AGYp3u)^1%C(Tx$HrEOyY z=3zR%CTqR^;s+d4+0_tgtZ%--&`bMxSS9w5R(Z*^rxb|7I&dzskv#R1AG1#4m9reRs7{vJi3^Uo{4pbRU z2+hsxKH<`5H2~X%o+~l{mEO@UZS3Nl;wL@|pwY`u%jrua8YzE9^CH~wfB?j#^-&zH zMit&4?%;-H7D(ZlhOBt)!EJPxoQ78oYruAz*Y@0#SUe6ZKkw2uoGzS?)-kk%+5)zp ze5ZS4Q;Uw3-&4b3A0!GaJD*;C_7Bb%I-tth?DqKb#0~YLq90Pv%pC{}F*WT&q zTaHyhn&g5AU(+xIDDCxft^70YZE;P(ABB8KboWqQEm;JlMAnYis_cRHoc}TBBwey) z?(DSu@RK#+LcelIh%Do)t^JI_;aaWRljV2G9!lU%R^uf67%`IFJ{zzezb(gcTJ{h5yzIm@>K3jxY*FsB;NKn||M~Wo z!@)Nwwf4(i9Mx0zt}lvt#;o2eiA1L*Nt8Heyb??L<$7=Gt4T@G39b9KjaR!5DD4Ad z9>>=WQy4@@d}x^OA>I`C#LoXg+y9Ty_V@o|ME-AGf~ECmKQAi;+l3&1-9Er)D*;jP zjVrN9>EW-7{IoY8NkN^)3C7O;(|iRGjYfsRdMFki8Mon{*}x{u1$+xPgnYB2io<=! zR#MLq{BaG{d*93^Wk~_P{(~$XV@1poe4*@Z24Z3L#y=ZzY?Td1T*Goei;dcGP~NunbCAZlvjw44OU# z!pPAO+GfptlFm?@(cfOb5zmeK%<2|OeUudcYgoPQ4oqi2(dDj+TB%KqHXfK&a#BLyUn3CN*`qKXVm1|6$w zVa4OHn|3fDB~K_Ob^)tFK75+zT2q5%@pkDe!Xq-c5!1RCXWY>rH2C`_^Zow4cRh=m zL#eVMv%2T`odrQ+*IJORkMnb`-@X2A9do<7I^DNhI z#lbo2f1WbiHGHWcMz89ZHvAHKFRHnafkq3|O=@YaM0erG850lGtvki8GRiHIm- zL+3FXg%Eo$dOfWj{OkOLh@q@k30REy{NJss0@dFClpB;BYsIU&qMh!DGN4;kGd_>N z!fwU)3(DG*^GNO9ciotpFPttrQQljDk}H3>1C&J%H?Z|H>SN_+$`G8(6lyJ60l?nl zTU1Lur{6dR_hok+eAJ20uA2>QXk&^^duZ4PgA9ZmdPs*FH%r*t1d(6A8+Q3k$2}@| zXls<^&OSZ1b2u0RK}fOmewYmT{_w+){rBO+)VD!6E5Uz!?7q)b2GRe??DzKw zS<4F-U~@>YpSx^#ALNx&vOA+bqGUX&L;uoqy@$vXrj!XW+tXAqeW2f$Oy?0m28@zr zNceKjL6-Ut-QHW*HI*hOkt1&?tIJNy(b9g4b>_mK?GzE8A(4kj&`CKe{QDRCUUR-X z;`{sU!!pvz&xDPjTPKsYmnFGwFl8VC`3ZOEJuWFEoD;XliU3+Htx!Yj#hebe=9fb6 z*EZ9@N&Kq8)p=b0*8|v8%<#7tNC<>YP8=ct98GyXs70L27E+prP+D zF(Yc%A;EihjK~BA9OBiS;-8fgoIim`twZc^uG@Bm>wjm_JjUdp)qDso;aJ^d6yW%8 zI+xzy=2FT4k4wXu7IO~g4@A4#*40H;PNHtjmC2PuxX#%u`9u*N_?yxr8AH2Np41dL z+)~jDtbA)mP8aP+D>VH1SyrX5%xOkQw^y>5+N2h<-9wiw{`wC7Q{a>#K%Eycqp$h0 zKGA(MN;Ey7P&P?FP?L3p-s&P@ei?Qzo5I*ou-MK!KHGL{nmSv(Kv|fdA&zr{B(<=Y zw@7QLWv!~sVX>2ZF-?q7wwZfE?EyNh4%F#Nof~xpC130!_DSewi{*L6J7w3> zqFjK0X*pg@_+pw|8tph(iZEr3hau-d63zMUIwJvXIAPz3I1Ka~glFg{^5^hCC>>z1 zDAc5&ctz&garhznae<6nonZg&mo%S_C8t#!5LV_~bh4FLG9Z*Un2Xthw7@lj3VOnn z2!~~s#ucyo&u<(%JKHU}H;F6~m->8rE3`-=Kr&n6@fRO$ z?!J0|Sz!2jMh5Y1z&Ue*HnfO5W@v;Pr2PS;irdeo+WeJ?__QSm^9w3WQUHd_sVRAq`@btSZPl@!)QG4HVJ%W$4qKO zDrUNTS4!(Z)LcD1}2`I__F5<_3m zv4F$LsmUC&D#b7(1rL^ly>HgA=rIx0Hj4`9yGQu$(aBa{hu_8uR=QwviEL_oQ6--W zB7^~`9d0Tn5_mTmLXRuJ>56}Ka;v7H1>5VIXg#>Oe3vZrOL5DAY^qU59 zmZ87A@93@0YHXv;^TljV(NsLyo52Lhvc$lp|7LJ?vU5oY|A8Bs#ueCi$@N_3Uh=l- zz&`PMU5X%aK6yoc0~=i3!dC*c{KVTYJrBKhH@x0*@#W3F#c3SBLLk|HFw{jOV;(AQ{18xqu4Xf)6i*m#UX^MW!CzoE^W|$A&14&*r-DwWo=BT&9H19HI!6 zGczv>AGAhAP|V_H6(zrg`k(&grkB#Sc}oIzz8NjJy3m1$%huQSeDAnvj?5Or5o~Hq z_#TN4ouqitUQF$&DN{1}zy1~QY6~%MonGd*qE_nsC5%^)ti@g#=dox!m@@s`1z+D` zsKggW@KH6vq@`FAUWu<=6QSSVC8M}7xgYNYS&T1q^6WyKS&(!|SpnlMsTh=EX8 zaSYSVzeUheUMN&b?fY!*zSf5Ysw25G?53;sr|C2sd!5T^9=Ew4? zdFZd$zEAIhCT9Ii8Iy#cGX$kRpMfBi84J~Dy3uM&pj*E*gmbh(P!U$DIhkB^d_5lO*iyiVXX=gC49b1{G15<6h_b-&;7$QMVxW5H z*_gl&K}QO>R3fX|e3+t=V#UqP!0L@oq-b#Otshv&mb5&qvvoy8^a!@vj|!Bps}ww1 zQM9HJ6@wu&44>|V)Vd{2X%dFGZ8VK(Xv}@x=;h1jz8}4{#erzaAmM=;$MlIX58TD9 zEZH!6J~(rN>JRQVAZEioTSSv>IhKxwzg<7%-neQ*T$gDdZ|jJi_c`Pd6&~vrZ$d~^ zVk@@E{#XoF%GryFfJn38Yi9J$_W8^F25JiyuK0m_LG)54*j`S(%8I{Ot-{s}2`8-p z9kb|h!n3h*lCW_uzIdilWOWAbj0^@Z+`2jKRXTpgY~#cAaeZE&<-v9-ZHkl6(F_>8 zY*JRYp>TxWPfvVYvwCq~C8X^t zKx%7n4b6Om6RmT8jOeh-cs)i7@>`~zN_KfMMMjfVmGOvKvvk5~pt1nA7B!*T1{5Wr z(Kx>W2Y1+wV0)K>6%kaHZ{l>#_+BwNE>=-=YkPn*v%i8b^1MRi`i+x2;B4Hc<8N=p1bHuo>#r!Ayfzl2nruY+ve z2!C|rX1SH{&49;bxk>Kd3u9&V)`pkX!m-jsL+$R3KjfFRmhuP%Wem`tZq&iD|aYJn+&Mf6T=^C5x^lp zmON@67n+V~uBxC#GBCc$|Js}md1@DHAZ5oF&G zm{T00su8I!OT(qO+pD*hM88_*f385bEXd}&^wb01{>{cSkvYYf;q+mOMn+-g0P2TO zNpi?Y50Z@lT4KtU7K%HhSacuW;L~X*qf?Ir9FBS#Mn2Ck5;NG!aMmxgFX``}#k5FD zW}pTolYXIhtkSvdTn12VURZcz#X-S3W?sIexR`hR88k`&K+Ki(3itT3xS^KfQV3iK#f4P7C}Rk|=!O*rWIW@cN6(`h>Gj`z&evS{KFI#H-V$~$ zY1nd@j!!XWiBsk*cOQQp-*`y~##q9jP&&>T4$Pt7m$=>*zFxCL<_hXOIqH|+SI<4e z=K&9n7Y|uV7r&|qPt*it4adSJrdpEc@z&~3l)u*h`D({vsEf_*EqZ&ssn#uZn!&tq?>-;<_mNp! z6Y+?%HH^tAod$6FD8t^CN%D`o)zWdKGe8Bm;Fr=mqDcRYyqX$9YL2de~YKm;H#e?Zts6yK&jmW&5uS+(_}|Ga!a$ zQ$b!qUYR(cPlyx1D5ywyFodpr#z(jOYt!{&_b^NO-Ru1>PJxn2`$-%&%cH9PJt(RL z@EbF6QS`c{yABjHo0Ifz|XQc@Ep@JM* z%j06P2CE=j69Rc#%5yVyF7pSjT6PtM`a-4nd|9JXMooRZsjv|VAxr0(_)??E`0gj4 zsAje5`d|jv_R}m^2JWTM#vwE^HATe2zGBg0QK@vzUh4D`$i8<_A@OkN0W_ZZx4q zBY**y_CF)`C1aYAWqO;Ng6o|!NFaQBp+Jq+NThc?8{x6QtrKdQDz;Q`>;>%}#5QBs z_3MuwuH3Z*gt0o`IsDImiw)2Wj6^6GD=A-#$lWhmE5=;~z{u)o;7ug{xWPpQG%)*) z5*G(M?&rc%4>Q~1II#g>9(*ryX2fxaS)v~*R$|>$g#L9D_mC&6{~5b*-2g%7+&K6! zakXdQ(KmJqbgGTL!pCJak2yUe zYb)ONrlz7|7OWJfJd@1&D0sI*C9BhvVva-wTF(yCWb{}8x?m1FjSMCQO&8z#9pBi| zRpP$xyh57((B*cjSDn3ncFWE9p_K=UJW?bFBx}IAQmBez(wHm~->rX4ytGT=E{9DG z)v6h@<#_uVLu44}5Gr8Jzcxw8x$UHTIS$D7uy4&hUzaaAS;#7{-+YReUo2dG^{)kw z9xq@<=L+Nib*1l6HPW%@A+NaAyJNIJo)*rXm z9~Bu3;5ppqPw!UVy-^pKR-Qm9O{!tkG!wEPoeTVOwut!;YC2U&CwJa#ClbaQJYM_~KNqMg$cv)^a^vt;jHCDa#+$x`I` z45l*>v+SO4@;Mk}YkxCy*`9qjXZrjrxV6Z)k03yVPtAenWTrmO&@|aLtC!4zehlwV zqwnmrm6B@DhZ7vW*0DjEg6M%>LNNX|vNV#$YCyvUU!{|1+NSW2mA@%k{cqNFQmFx> zv8`^yzHBxOru;ClUyvf11*+-<5QDUCI5z2(x6q#{`ec|jnZH&(A)}E@l>i9^`W8-1 z^7#^4On)Yeg`w#Q2VXSv{#t!YHAgJRx9hh*?G~|lSY<8DOM7wHr1heiQe@)-OWrf# zyYGIyV8?-li*58iW3#i{o6^yZK*X^Y$&KiYI`KBB+O*R*PM)ncYpBHeMH{;Qx`Gh* z>^-^Stv`z$Qs!%dll5`4LuQHr@VTC=V{GfK2Qz(QeFMzYcUnOJ#b*ka>~n~z;c4Yq&CHsHu#7{7 zeq@6nS_aH=zntEhU}LFu$Xb+Z`Yf}hV9uER5!^B`(D`5qSb)vs7oa7x^RRKe;ZP;* z(v|7_lQN!<+Texjjl9;Rj#cb){Q2LS&`^e?sRvwEGkF(ssL zIi30n-cU$ymAFL$RM1mkq3Qd6gm<}aeTe;bLZh!7eyUOT~|s>O_#2yA(>SE2?C|Ol|+T;lq)C_Pt(Mo;&K#Y@MA|hbM1f zj}s0geSGX3zBNRIl}?iJh$M&uGiM((8M2g_Jz+1wkpF#*5>I z(orM<&?K3bY_bgTEmAEldv7A4w(W-z2U(j_WGicJwKOqnyET4Ln!8*mWuFbqsH z2fSi9gyq@z<^JZhZ}CbB4shx?JX8qJF`*(hcS!Rb8|?n9GOHf=O)p-I^vihm1()Cd zKlaZ2FRA?h+cqs$Q#RA8**2qPZs#hB2sCY65M~f|dIM zlnSH-v}*1t0to_^3nBs~BC^hXK0n_7!}lLhA4d-7eO|BU^SW-VUl-~&4lvDMnO+U- zb`p}4L%Lh|VGn7>HuAMgtpM;oHf{e5DbH-LkeFDzaODXqUn^V`hc2gSi$>jEOsPHze7>v065$e6hcH)5A3t~_xeKu{oV%Nc0czWpOqzV zBSO)1I(nKc6U4Twhq-QGwj^5JGFvRc(Z%&7Cx^R7I|tlf4;=4E9j&NMm!8sR+K+hE zGg)>rW9Gh)ocj#;c|<4f9vT0#LcaucbM3XOpKTrl$K{e&+=Pq-3^0M4J@L$a=e=!- zyL&lo{JJOS#MLx=Plud`PCmCN=@d7vz*OznK+eNdp@`56j6D>ke(f-Z$s zZxjT5FM7z1vSYzt8Baay4DK}h=AkevBa{YZN$j-j%>7a-nZhIGB4*yqM&2vYjR?S5 z0DMoiD?f;qY3z9*yh7bZxctU=1W-uy?Wb(e6!KIKMRM%|kC*QL_XOO|3QFYO8#qrZ zB2RRDsD_>t{BlifXSLnq+Yta6CFK&iHAX2wTq2Wewc1mgTqz}RdAH6$VN^)c&#kja zIvwKVU}=l}>SiTrv&|77JJqw{gov|&+MX;943%S`bY{nkTVx+0k;oC1WJ)LW%$n{* zKX~th$N$=pkLs2K!KmNH`OOPCL8INSGFt4McruwWPm0*2+*7WYS0=YZSvV@XK~Y zB`JQMJ_pwY5z4W3E%?ON5`Hw3p%m3$WhVh;>v39?LC@M7AMXx8(MIv z?h6ft(J{bxpCj{n=C0wWUx$=Y@XWbEmR%znz&j@f1&^9pth1C##rXrVuZ9*5!AR{= zR-e#r?v-anN*o1NwLB{xJsPWOFrT@&2zv#w%HmuO0iL&CWZ6Q0`|=w$dos*C+k$V^KSb5lk)uQQkB4&uG-1 z;+B@hFfDq9ro=d(C)r$pEbI*qwOVpC=Qa6>jF2TA?zP$7m()irBHFRSbuK^<;CmWB z3JzCLh%85%aaF{P&G9WKM$J7}$ZL;&bDz09rn})comUv;0RMhb3?^!5+QwCBd_@$e zMp;$Djs>v&%*leH_%o4fNJDix1~D%9JM1RJIi*r`s)T)ImLuvVg#I{Ssgh?t*j1TFrsDYJWiqQD5;uBpZs%T z+eED;DA(JF$0e0-lxGD5WCE!=;lZh>kW{z>JfmCy7y;)6J#80ZzpcKo>~D8ZpCd}G z>B=w`iX@P9bS8tb7Sx2#7qLYQqquF482aiFEWs|x%CwWY4wt&h)*rcaj_BOnLp`ksBn!yDQ+d>pIawMHZ84-ONs8Nr-F8pjg^+~$tL zH-6DQSU>}hlIk|waN{0)84TZRcXjmnMeQW4Q* zzCF5HJShOrpSafe+Pd(M?89#7M&{@H(`Qz>_g$C{pY&ry-Z!E7QYRzcY-(`CQ{bDC z&r-pV6}Y>`kJiz@kImZLxW=0Td8p*_63VUod887PY>YCvReK|)dY(Vm58N1uL%Y_B zT=kH@l7oJH&i8RUlcoDkV3mWPUdRjV{3;GN8L`fs(U|U-=6m^w6U0$CZ%_@ct#fIZ z*kjYdF{@j4YaqBst0J`Sx27|od5KyLFwTXggcZvBxNJs-#)7`ws;>4~|NH$1$2Z3U;f{}P zok!RFEwyE57qT_L`kE^n()`#VeF-=+*9%V285*pM@bH!wx6WCfZui+zUYqDH*@cSh z+DX_OVcXQku1FwKhBQE|Ktd6^?Wv5P|^ONewX_SZ8TFEAk-MZO0?u3NafnCs3Z*vYt1B}PiNZN$KNX)4*kRH z+;z~CZ)q#ib3aOCA9uFG$>)YBbcki$-!p)_@-KvLx@m0IZ{>NK? zcXhQ;EP8d8yW+YN4I09TE!~t(dVr9X5%E3O9Sm&U@7ACp2M4Jp! zk`Ld^St)TFlgJ);cl}y$aVVw>#>Oy}eI}39o;@Oc@YkU}#7MV2rcuePg5%vx%RIAy zR}ny#3&ea)5&i|4DDa?f!o*mso;zov%yyP8wJ%dW zNb|uiN(iYDmffq|`Z^)y@&gW$QvADR(JfO+DoQ~sTADcmz}1I)Vb+nmDhq@JuuvbyHq9+4DejfXMoM;uTAvF!-b!bZt*MMGXdX0|Y!vo|!&SM*UMn+YZ+cJ(Mb(vqMFB>{!CO_2Z0ew?4Rv#Y9X&_~fqIf>^<#Vz~~ zHi^}}HY{iUSGr9z}_fTWW;i$pd3)K|k zC7}}dT+JlRHi91ufuKO*3{cBLOitbU`rA#fbNjwDoByRtxW*gK4GX9S;F^t~10*JD z`wZRvw17V7MKS>`gxXh|t6Gj+O~1)+Ghe!RM}Z+sR1p2khMEHvli2Oz2xG?X@RIDN z(kpxw_=1vEM4f33dcV#r20Qp>Aoj5rfq|YFA7+P6p-}iC860J5pPd11qK*Ipa*igN z^mXNeLHPZ(L^42g17;2qaS7TLc2T6^5AdMAZH^RQ`$l@JqWB%6h?!%$S zu*=Pf6)q%M1dQeFYmBLjxIPtnHz`On^Qs7V*ZKOktUkNqG3(z++~b*bPdad|@;wz^ zR4`F(;Gys@ABX=#-h|yWAN*KKCO_iEd@03!^&2%`+ix+bp26r*z!6cH#3#|jQRFW0 z)I0t${-H?NSNN=4WdOPgfs2+2=PH%!*Dce}9g`E%rD3xiL5QCe29hInGUF9~{jzHN z9{%oUewe{1BUsEz%^qLvy7W!5`SDMi?eb+}EjwHx%nw?i1JphfMY~Rrh>=MFmVt?$ zvt{)Ygq7`?pFc0@8oTzeKNwW+e}nJXg_yZP2#iV{zph( zdX}ore7`X;6>KhQaFUP@2a>^1U;G@H(OnonT5`Wcp-B`QX6e}&qTu21!JYfzwi#m+ zYIpe?iOQ+Y!M4IdT{whbVbBl0uWRrNIE}-I>53!r)vUumux7`1orx=(dk-9NO|8%8 z@>)>Txn$nV|5mIa?Zb-FskCNJYoU^xkePj&R&1G^gq zu|VBbqRDZ)qvsCk6+-|>91ot?woYCwU90+K+nM;Qy}`TNfMW8e1aewPNjox;NscTo z#_4sFzH z!6Ah+u01<%_du-mO-i^&^V9nn#m6=7{Y#NcS?SqVLFrw@e7F=Ijg%$RRD#A|{xI~V zjr5)F;FFZGjg7i^SBa--^!O2`fC~b~M}KP@d-wV-VK5icyz>%$A@7h;aE-zkvm+hBR2#^{l-^DfehB zq>@ViDW#mKRxo5v6ZuFlZvgaFSsxj8D{|RS*f(TCeNe{4xZ6vL*f8)U5U`Hd4#R(c zd-eaE+W&V6e)zvj@c&Cj}X| zK)n`(vPF@;<-|rB<}?F=Goe@mQ;N(Y+&SW|@EAt{dxViMB@wbt0o0kFWC>Z5JkH){bkmu_m-Q?MJ_rZ<^)rojnZgXL(g?5ht&tP+*RSeUbf%AH|7VszeOc*OozRd7k%@pX z3;>=zPP7J>$Prj9f}sRVB=xkldD%H9e_QF+Ww%Y2U~2*;ISL89&?va$z(53yE^k5Y z3tEsTV27aJxIC&*PKIB+*6kM8k+P0QuD9xU?{YgDAKvA;XB23UX8=&u!z^S$nrPdogq+w@5?)hob~IY;YFn zUbu~=3@K1H%$W3Q!~Jl-80@EXP0pd*f!Y@~UJRLimAtRJkl2EE6)@=~`&~IFfZZ7! z&egPG9jf`YiMz7nmV(^P%~WE7Nxe-9QbWCEI+gurQ6NYolwmSh1V%+KWBIF5c;whN ziy(K&=bgz%9v*KX5Cw=*9{%8h|GMxBNQ6QhM3#_yKi%SASbF{UuAO0;T!0$F_^T?P z4QVG7!hsy&5KD0=oCJ-NerDq}OU`$sV zBtt2zMYLrg>Z|TuTB2Q|^;umPMyT3x=%K7jR(7|qAwMdT=0eMB*CMnI0olJ~+Ux3* z=vlyL@hS3Wc+u`KMZNX&5C6`rGhdcdnLQ3l+FBaYl34FtQ$*JT?=B&IA9f3a`~=kt zszEtyfup>*(q-;m(OAx^UFe<1Mp09FQ)y_rLnd16ORA^w=&@BV-<6&umAb-oC@p{D z>A78B_rCrmbuRn5o7ZTrv}8lkTv{5PtBJ%QM-W2hIK|n1PL3ruBA`(uy~2IhwbDHY zQ!G|mPN-gQTZ75e{VnlKQZofcJ(Z00_G%n?(-tiSVLoKRc*BF#9MM6)8(DD=dXLbk z-avV;zomYEzTSTy!a7M$H(jKxPU6vv`F_<{9crfd>&4Drm(GEkF83dPl}`X#=i4#d z;1Zpy9n482L@0dMdydv z)%=*Q&Bx=c25^-sSw*K^nJ|8$kieryLeOdecjlcn*UcN!w5xewXn-f(IJtPX{o3o( zi!tk8ob<)NBUI_tb;$+!X*cN1<|rOkJf^`qJJ-fGpko!%*hBcrWRP6F(}6pe<^9OOD)dG{oGJ1i zwwhP_^}t2p5Pq{zj%QJ;b6@lenrm}jl^w9Mk`1IA^p8Vt6(v$J{K+zpfjS46zj715@2x=$!0P#q(qj3 z?dBzi+WgEt%@D6HYun_6N_VUNg&pnVFhb4}b06T>MqU)licv4`}2 z>*h0VUCYWxY_1-9W3|wCAgNqjIvJ?HNZI`q}T+vLqSgWBsbe{d~tp7>mdP}+O zS$eYhbszV!Z|<^?eQ!fspOvu~gP9yy!jLlkBn4%iR2n-M1#1MimIJRZfGej5iE2CJ zcXZp?T#+5{Yiu+6lVXSs0f7gE(BuSEAB|874E^*A^k@jFm|Y0a4I;&io6qlnfB8mF zf0?R6|D3Hh9IEioh1p>`!SsDd9_NbQw5&?580li*={xQ-85p9%Z{a{ei${LPdqLg^ zs2_9?tzPJJ-aY7S=$BTh*}j>L(z)H70-`O0Qwi5%^=dYbamn}M>xqvWCWT_2b;{xN zzxgeL0}w79NUkQcAbkj1O2`%7pwoPk24g7K7|!e6*P5PtJfxJTnZHc_=PFuP@+(kp ziOrdjg#+Gmp0sD+dr>1eWp7p7nv|5Z^orOcy!ws9?K9#CY$gPF z1k}9UlGv|F4*JF@X&25%&F#@2*jpL*EyxGGBS>+3J9=kW$;Pkj{8th4EPRIs17*-0 zJ>1=DhFh7rP& z+DTYdq*#ao%aY|NacIQzHGcbkasTN3Ha%zEabSNa&GF#4kJwf{qqgAGL?&x!20U~) zI3q7wwn-EWfiuh1+ZUYIK6o^<;@G91M^Snq$O1iF??N0A8~lt5Na>Sjle22hJgT|u zKm&rU9BF=ivujpxHS(k7sAuZ%x0GN@L!$c$A8yiIvM@^AtkP=sZ>rw3caD)&RPR#k zYdx<8!OtE0$u9j@*S`bSeSLE@$88${J=hf1qFT&D0yVX9qGr#}DS<9JI*eQ{r!&jR z!-d4B=lo6x=19IhDi`x(IpyeY9t+j|VtYDVmXJU(W+Ie=-jZbQVrg<{Do*{ZR5oQg ze!sBgXQsnd!;@Qzb)vCNlAJarFF&}Pl(2b%OVT+YYBUJ4kQRN9o?VL6RI#}-m@`H? zc_z?Hyf-eTXf*zTVRW8?B~iuq)n1-e zHOi${GwE-}<}D?oA#$yTnWMv%$e8U6MfmQE)1?Jv1Wlx2lLm>yo&Sd#-+O2B>XMxv zx^KvdHFAS7*Z;P&%ebvtG(e?8gG&q@)%GesSWg1HdM=8?I$)pY(Dres&3&zScq08} zT+J#;+gRMTkPHDw)CaC%IEq-+$|vb6hYi_4%$6G>Cu!tlabs8GY{-4Vcy#C7%jFA%rOAJ)c=Qg}@sUfAd>j(0yp3Xf(a!)DKx7 zB}?751H0M1l5CQ8Jw(*VN&r|gtNQ)@5Js7tG)Lj9ji+47J>xQ-F4~^IGo9L58>8C_ zs&>AR#~G=vgk%aR#??XpnQe%g@`ET^IU4ySt?6Dh*)VU~Mvb!lS<1Gd;y=cY04qv8 zOs7#?S48jC^P0KcLNF2?D^CX6u26>ut4ZIU7&>=o1vyocTHI90d%wi)*~tXQyLxB? zj`b}x?QcKY`F&~b$!(N&swqdP&-OURcR6`8cVHR`M63ES=^vonta$c4YQLW_R=~K@ zw6MJisHEl1h`~&*fc0ei{;`v0f{FwnGu4469L9d{+j**HOffGGSF(VB8svi&A{pjb z?@A_-Ynpu6ik?jm&)Zj&O3bb7EZuFke+#~%XNTS1Ul6{@w4F3dnrBwlG-&xoSY6VZ66W3$cdtRQS1QH41ZwN3KDqYA zaNNar=^a5xqXLtfgD$C#_LwHnDK$(C%JeAxL*QFOR}W8#CPVOh4oZt{(sAEYRvZh< zXVakg|IAL+$c{N@ZUeA6kat zVEohQA?=B^4l#gLi%6W0t)km0z4vgL0dPD?|5D0(X}-mo|-xu8~4?r-!Q={ilp7K3RsN;>pVMI2+<`ul|2?p?|M)XxTMB_-s<6=ZUT zS}@QvKob7R&6#VKl8S;8I0A{zVh)k^qs_r(6NmGBL6%tjHq6jeO=Tslq|Zr67J4sY zlXtIj8e)h^jqOS;N_cDJ)@!C(?}>kI%M$wpjIZS==t80-H5Xj*jIXDlO)h;O2`M+E*0>e$g|@1uB}B@GL;7 zl)aSXOdYxP@6yiSt;M8ZuhF=gL;lX;OQx}d^9Qj#s#QIYol1)BgN%_>irzbT(N19JZW-^U zeQup9aXUIMm+RP(ROtdb5z9nR8y4E4`|7(IXNfTIdAM3kqFuUFJhUZ2d(D0Mir?Qz zuc9ly9#u~@{G@CU={ox)ypSl7Hsnk5{TNE1 z6F<;%x^ys$)Xvx$>;=GwKv0*S$UIsykP;#B;qAQHd_MOS_}^FJHn_qv$!rmSS~Wx^`}8ou?{hUzTO zTF=wKsA5DU)Z42$4-2xQ%d87&gL?@2M9d5s5we_d8}%T?-L~v{Issq_)Y@>rPU!4N zg42yCwR(PQ!EcN{B}TbJ2ta4mj>l_Hxg6TFaKUCO#mp?>slt9QFB#R^R)2<<``}NM3 zs}!Z!?MjKHJ}7anvuJIX-SYFSgh|+pM({_gXlHZL!E-2IJHoMLJABQTr4k-VoRf&> z?T|$JR3wiC>=)I$_3q&vFk6+4Q?v181bYn{rI};qu~XY zb|0p1eg%a(Pt1#Z`vw=AX1NWM3G$M==g@NY&RIyhc<+w|MgWSg8*b7}9@HY9Tv(IPd6SToLGb^~E% zXz-DfUlI~rsA90~tKtM1Yus(rUWE(hokQW`PF;DU?QFp8|C|C;FnIJ_70#` z%8kjbx76+6_>oAS(5M75JlTYCrD4)0;gITh0X4@+Fk@IxC{nDR?G2%OK zd~nKdK_(l~;DLcI?}taZlL$x#{#z!MfLSa0{O*SooTm1P4rk-t&&UQI3JNlgJfxhr z=bxsaD9^}>TBaBT4H0Fnp+6v0=A0auJNjKL3z>yfU(mq@`Fayt?R5XVwN?OD@Pw-8 zH7R~eYc7WkYXHj*VB|uFHv|U(9n5f`OXNIEzNBSGa^>_92dWa_?I(RswpZQMo>b2K zKF$KEOqLA`aJtJphE-0e_=dZLAH}5K_@~m5)hTEtbf!WUD?k0x4D zNDb${`OS4u^2sa3@(*CX&mmbd#-1NY#qGSz`|_XJUFJ^NmT0@XP8gx%0ypaJNyU@A zBZY3Z$$zi(dP1lqUVhZu%-ke&L}Tht2mz#V5?>@4`f}*=6}WTg{gYi@L&4yYT8`&D z62-=pL9%Y2`9F=z|FQ1=k9GI|(fihSZa8^)8K8Lk675r3T#J|K)W4>Oh|_D>t;m9U zdvTj=acrtRZuw3X2dmT}ApPzf#8)Krb}iD7$5VpL0|s%5jb}2whqtBXOT~mm;yDuF z&;)XfM%0TNrKm)3p8+x}$7HBJ%?G;rypGwQqur$vlRVI0TOm!lSpET4u#A0@A}2RO zaYm*_GAwV(7@}X^rtZ9yt{y;0WKkD%nFcKGY;Td0tTtjL(74+A^B-TEu;x1qxE-yd zK)JhX3e;~SigM!4ANlmyD82?h@2HJ@c`z!yMjX8GuCMJ!UZ7}Cq z4FKx^GEa0nfhis`;vpXryO z17w?WN2pZzw1^B{#9m51mSAVrn1){m1W|%mxy}|%D7K{07^^c*?oZ;;#3-#;X+XJ* zy(q}r6tp6pXQ|9qX>sK+S0|zHS?SOMXPysm_GL3Y;rWyBXuT&GJZ;$JXZIHkp5~i?0vXG@RMA)Hu)USSPLna15EM_vyUTaBzJBAz11xIC zvFYF#fWKYRAF=zJh^N7BmEnQd5%SiH>h0S}CI6YdF5$s}_bc(ax%ZEk{i?ct+4g{Y zho@er3dw?g1#ARLo{p9JGA!B9sNiT&^Xdbg8~=L!Z-;qUcFJY1Cz{UrSw{p$oTvaQ z++GYl>s3s>BP5nsizQMufSFe}3p=)LSNcv{36RVDq#LhO-cUD9_KNiOGCNgbhFqtJ zzRMBuL^JwEC=Ft|P=NeGyJT^&?X1Cl{4+iWe=04~Z;n>$ppi|H5spTGmIHBjM}|toJ-nRTM8%^(&@Qn1y z`rgLYE4_{V>u}=S?Vt~Kkuk;hFe5HPBXj^617FrwKEO^;ML)+skJvT0 zF)mfufxdPX>%P!b?&q8s-a_ZaLXK(-TwVS~?SX{?$`tPeI}pr424hNo5;R@;$8X8b z_fKYRb!zFnLF&nvP-3^DDR3aJx)oM>O5X<|;>SpUv^PYS)MPPsxEuHK0$VANp=8;Gim$-QyXVE5 z9mli<%ii92W4HX|vWfAdYCGcblH>t!Pb4$Ak|X%EtC~~Wj=(^}3pL0fo^m>fnp(*B z884IAj>VNFi7`Rl=E81ATMkfr7Xvc5ddW1BjmC1;gqBk{Z2`+%wq-V24N+ z4ivkl>UKmtWeUq0NJ}+)eeTc$q(*z^<1(FGLQ3x>2Dj$$;I$OfK$Hr9S$jdAOzM{J za}#`Rp>XMfgqouG@5g`Hb#=v1kmB9bfxp%y94&dw$)O=cLp&5Bmc}GcdHEf4zo=*` z=Fd=2OuF5iA|}8Ewfy`tW`GOkXH{x$shyp)li^Fvj(XKp**y-2=pf>N%ozg1oQq5-mu3 ziQluJ9Mg_JWk1DSdTlE=%a)th+iXi9liMbS(gVE`9LUw`JiS=`G|@G)hKFK5ZcOV? zW~!)nn*YwOKw0>P&~g}9H#b9Ydf#p@I6Ddvsa9%)^3=49yq2`&z!~`v2tpIYk9gEC zFSZ)69S0T~p7@7;tW3`lJ5sw4c1wP?paov|>*0qc8k&9zL+&0wqFVJ1b|uIL4Y@H%j}*?#k3rC zp49Fjn$b{te&8Rab%X5-VHez6e>AnN1Yc@E9KRV{;CaIESD!x+r2c* zqVolm^$&i%y29;(!zXmktLuJl?lN_K#Ay8FJ}EH|f4`ksYzVl&xv*&nb+@Ro6dPL{ z90>B<^6StQ!}{;PT={OZ>BsDeu>>pm%%Ko9DfYr}IT08bxMs|n6pW7gz5V`t+dL`_ zaRS3P8c&ig<&9ij?|Wp&OgcNq&#jXzQMYG~DyyCpjfxogtbvcY7smIU_yFXEhVG$- z_97FjsPB(DFD%e`a9jHPsOs7^#i4#2B`6AB-M|E>w9JYdqVfCAD~OIcTm_q|LGAvd z@)z3LCl8if$-!ZaS6>ooB>u1N zu*uNX*V{q}e(s8Z2dM+nl0s#=zAsuwBO6>wiX9`K-MgDC&%y%|(qMzy|LYam%Z{J! zSJo`KbgjHLm(0XWHK*m}Q=J2s8egn- z{A!hBT@i9aJElu`S-ZM9tw5noE-attMUdLF5O~k~VYR)2sl>UN!aQsSK3B~6q}s-ML8nS?~ahk4_?9o*6<@X@RzYe_(cXK|&<&@1O;Rd`Ni$Ym8-_WWH}Y z^EuPw*2Eu#lJ~U00pis=*z_1|z&32-4xcC?&Bbxq!h3;OU1w!#)I>dMK zx8HLtZ@t@5X$Hh2@_7PgdO5b%Gf=vHJL{EBm&wr0IQmvno9R??;gwcdZN-->e^y(# zp8o{6_>QVZF{|J4=X$_SRcidCP|E12Gi;p5iy12R#D=!h3>ztew9Mvn5BFN_ZfV_- z7Ie&AT4uzTAAcX4R#XIQ7}T(!(jw^zR%Uc+bLI|O)Cd|et(gC9t=HtHNAd{0*yYGW z?So*;qv^w%x}sl8VX=w3;hxYQAF|lcof4A!DnF3Vr;)*)v0kjHBbtld@qr`D0FLDM zw`1yMdQ(lqT;VXJA~5!j7|bTMwoDE3 zG(4G*kQo+D1<#)8#gNVAnN%WHkP~vVvYVmI3IHDfGQl19F5X>n&gJ?>$E*t-0hpz^ zwSOlunue?LP>DkNbm^Rki@*6c{8?2#bCg{iTu8~M8lfqAr`U6j5Z5)&J9nwacU3%9 z63qHmw`y$_r8xtYYAP)N&+2^?I#s||O8V(GyRo!7OM60(6RFsdCAOdpg6jP*Z8x1J8n=bUY6fM0C3E+B^^xl=^zXknVS` z`og4jqpX^YYm5LoM^FyNvTfSf!KHGI4%k@Qv~h)VS$$rE-rU{FrYt+ZBBm^|@u%{l zVqPY~&J>GAaLZTZO(l-#s<>oEIgQsFwkq4^<$$|Q{lF#DKRM+&7Z6=!LU5bZCEK43cWCy6`lmoHq9h^6=xCDoAghEQ| zVe+O!uTN1iwH+m%i(~eKlZQ?jM%?Xw{FHGtb3&zl8VT=t>>D&Bl^BH;?0u+0P)USL0%|n8w{eAe@l3SREWe>IEBI?caJ$px-^hsaE@e4{4 z&1NLp&=7Dssp2h>4TGxC>urC3ap9b$Mle@6rqSN60|bz`lbl4`^6^Gk@Vy9JG86u6 zlT&4UTjhBeD2xS8Y*dRhyIo!@tsk`B#l?5J3rTx4$f_8ZwD<8naz2Hu)PSQnyQ&k`4g{5;~Ct$ z(ix6{uW!0N%fIVqtYHgL=w^)coK-`OH#<97AU)P3KBc%dA}5%rcjvQql?Q(o*xMm((v0tmq2Gj*mNF=j0I1^mz=g(C0c1UGH^EgS_iHSJ?v3W`_^{a!Q=ouU@_>z zF597z>g33hG^R!=7=9QMaOUS*?(o+VRNO5?>ZhgB$Qic}u^zyY^fV6WkLn*tYkSAB zAg5e@OEeU#*EUD|({khr9lUzU*yQD-YF++}y{nro1zz2&KP}^!qG@U4L1F)tBz+2! zfn_77>87ok^?{&AF6v-q^3FrP4HrkCjHk$r19?Yc`oN+n zt_wXmN}&g3M55x?Cf~DKYq8}QT+A&1L(q@cO?+)F7nuv$`Sl5!EZ>;s)%CFh9xjV$u} zT)q1->peDhHcQLWg1)Z9ALlu_iw=}j$YjY4{G^JpEm4V`LK;pF*5R|Pr4!}d(}wjQ z*d!4E(Kre~)M8@q*bc$%lprxgsW})!q}X@#?Is!cHF^!!2Y=pu+rR%>b~bL7)LDI0 zezZ~p@=*8ikwL+2;hTBkk>jr1SBuDlF<3{l>cA&u4aLeD>Q_@n~u1e20g+ zA;>~At*=)8T0=khl8VDpV z%&jqi9rS{ZuEe^?l8Z2-Tlqidohz~FKbUrCv@DxulY>quV`odM!fq(5Un#4H*rYG* zp+kYJf%CYMWWC@In~in;cc5#px+Ncbv*XqLIH*7P=ya8$>T4^L4sAJ1!Z}105+#&r?v>Ouhb9}N=b(1@6HKGX z`D9xZE!Ar0p~$YCvtQbb_>PJf`KYicRyb)0Nlz4fqv#ZOBKF%^UF0Wq_gxVL1A@J* zGf73gFVBov{`fL}>>=TpJg1`k_`5ED8AP0qoYe!5s=@HP4TAemofa@&3rZA5mS*KR zTYY+C-NVP!xfKU}ZFl?+A|T`F_cLXY*O72F9FEh7b(j2`$eUn)^vj8QAbBOhm-n_g zIE|dX`dcMwEH%e-18-;UmH5be{Eh)XZ%`&v3E5)sK7;ECA1hQQ#`c?To|>m$NZC4m z@ye`iwps8W;HTckE8LvQmMbKwu+afpoXNuXJ?=gT!G36J%PdA=+_Pk&iE%%6*FMSp zvFD){OKftOi!*sN7P$|J33NY5Ev%*@;y*KU!^d!&JsdRvzOE>NFR1MQGdth!`?K!)K|k+Y zmUnRy*ZEnEQO49q>!b6e57cYcucJi)qcY_Bo zq=C!N3>OXs^)dSaTBlw!8v4{p4VMnis{;jiaKT^8Efs5Tyt80IRr0>*5LjTWF_f#9 zX|4PMGyLopH8UDu-DZ|}>u_pb(@FliV~W&a!V#%5`gEeAwuVlkvB~2s(QXGYz#T_n z(22aM;+crc+tCO6gU#yuJ%HK6Qe8xvZv;l(&hB!Z6lxVaxJvAnj3F%m9Tt4Ir_PU7 zpLCxQ`k=8#WbBgEC)KtJqJYV&u80s4lULW&(VcAC$sMhC<+p;sKHX`v2H_)2O7gKYrYqnw(~u_C-sxnJhC? z%W@a3Y0T77OH)fkn{r7BNL)w=X_;y&(-N1-1)AJ414;!F1X^8FQxp;eDi;C-Qbb~% z-)A2Fp8cNw&;R?-b2vx6=W_4+zSe?ksc%ZI1M9J|@c26EkyY-pD^7>Xj#N7Y^Lz1Ym1iKH_o4w{DgI0CRqn^r!SwEb=R!7!T zNb353twKKQgiSqhmun_`ni_~u6x>xQNsiP0uGdXe%=CPDHKDqlmGLQJqd<6kWs49R zcQ?d-#-rs)#M}F}Yw|pb?+)5&l2jXZmu~IxKUVLqM}ZRJnHfwuQ}>n9q_KHRXxLc$ zdJ4a=PBgWH$%tKzq8@hL#QhXkZg$5>8yD`Gudy9XKXBSdTpv5}1Gdi{USLp5BYtu8 z-4^_kJbm@Kf;r{*rE5uHB>3P4+qf6~*{-P(rf|wjdV-1~P3!++`>E8@Ty*8tr?{JY z3zSiQF?rE(9A;fv74_bi$9H?yv>Yxhs{7Ad7INgkG&_&9vovKQ+RZhP6;)eUTE=CZ zcG+|F|6(Ejm*V&T9AWqW9(MP?PyT;}@6D|}=MFy6@z%%5vA|BJHMyLRmK&3ylsOab zt+XkDKLyAFOy;wBmGE0bH&di~%OcLvo3f)VTrKcQAqHuDq(_sJ^R-|hnRE5AuKlwg zyjX|)b3$lqwlbl!`S{z%{1t+J^S@SmtvxaHf*P&To|T;4!EGbQ>#)yE`T^ew$|q>> zI%qP~vT>d}YwU*gML{?K>G4GhO>cPiyvq(yJ{952iLox8G#zuE9|6|uj91ePnJV@K zxpi2$^YDbP|Fc25lsE{=&;-M9onj7;k+bm%)`)wd0$QQi6bdA@UiHem*Vkknz>CaC zZf3I?05zs2n_a`!x1cm^3&dNEjRBlxJ4OmGo*$S=ug)fFDl4|*RYVe*OcYz-=6>H( zysE}WnU)$)0Q`pJeulwHSItQ!PX?_uPLz*FrV1E&OwJ(RAQzY45>iMKh?|ba(4+Wh zfz^udgH~1Jg{BD^J{mwi0p)n0ZK7E)K!Z4olFMmM zz*gxkaG;@NUg+(rOw})S+#9mxkK9(0tIP(=S?0c)$tp~z1?KLG+Z*Y!A#ur1 zJ@TbeVPj%t(RmIUkY*bNYRF5AssxeWSnNEEG9p|NL)QLdXM(gM0L(t`5(g}d9@X2NMJekKx&F@7LOonx{7EMhn?Caj=f z@NY?&%=rX$IvcoVy+3EXX#A=6+~V~~R#xPwrg@ugfE!J?cML61N3nTS{-hSA-3K2o z5;W*wCtx_xdX_oj_~VzC>+I&cyL^o83*9mUFS;rZ&XXjA_`vmhbw0t>Ud5N-I)=i7 zx4O2U2Pm&D_+71b35Hsp>6!JIGILH)w;ieuAC}+dbjPvg>fXP zC0k*V+X-p>j2Qu6dpNF4CpIT3X7wD$GY2zC+uzlG^W=a(`p$~Q8i|d{?^xJ_P>ny+ z9}LN*ir8k{+s5@3poZc2p-i44?s1hy0vYXhY)SqbHo)ycR5|&)yjz%F614ZkPI@b5 z-waKqWm!()OKW_cTq1Q0x@(zA&4K^LSx#8-&F+II?b1QWr3xj#k-X=~?2qwpsbE)- zmtJdBo%!f(AA<()cP#|u(9i+sueG+?>|>w{nyHYyc7EX-Q=H1>YxHs)N}nU z{9)m5q8c7q1UGtfVC25pH@5E!PI{+~oSd^hdqLz!jL}Q`U4c~uiw8+Yu^G2oZ&#nD z8b4dZ?l;VH%BW0UH*4(=lXq;8d&fT(-#6GzY9!Ruoh`)-3fk@?TJJ`BiJt#B;5 zXNria-qns(C><%38XcQ8lhL;=Z#Y4gjxkvL)YPFY*e~P0{+H*hvx~a4PEFF05zGlt zE>&lWpO6HfTR@wR0yr{=5D%64aH!0AHGJKZE|5JyVgNn*J+7=;F`>zpd#PgqBLTZBvp z(XuP}YWMm(Dc0nPz7i`N)q%my=FrL9$L7}QR&GUVni|!j5Stm}@RG>>x*3+_#+a(& zV?9Z?+FXqAzoalZWq_jk`GGZ@MV0l@NU2EG=<3s!{41oELu-jDB z%`eygy$D~prifLXbT5FI>+JcM7Fs8XmvE+)lku%rRW$-eXftqP(qv=hrYohrrxA-7 z)e}z7Oh_cUIxZ6mi9t#r@eOA0gcJFAl}M;O5hxd_n-wVT2z4EkzN>q~lT+54+c%f3 zu1s(RE7(jhg(8~H!8qhamsf;K=>(#5oVhG->MrEjvhdB--&sqpa7!Z3KdgRq$Rmrh zH!dz-#Cd~OPLmTef?q}h27w`ex%hS?$-we#UH6HW2D|-4C1`)O1jIVA-=}ZS^L|g~ z`gM*~)JZJ^a)B;m^56Cz17b$)RU&|;iWgXpj-F80PhWoP!18lG`C|XslEcqGAC|Ix zy9&-fDk~oywC5hjehHu(*68YotbC< z_nIQi3TaVRwZtP62y&0>APJM-pq%TbHh@%o57sy;%sxl0^O(#!@$=7p@EtZVd3L8w zahLshUuora=N^B@_EgH=2t%`8t~FloThDiads7WA@R?Daq%lJ0^=4D9|NfU{T}ufT z6CuQj?2*xwoLc}VtJD_T-1*k0t}1REj8>zPRFut_w7eJ3wi^DK)Kp7@c6-K02CDFa z1vK=Lgiet(Ie%ufsfcCjbO~^vUUBLE+s10qMQo_8{ej85eDMS4I&Ea65gd&9Ol`p` zA5M-;VUJbuoImq1Xan|@Wq8eltK0H`eH@9_jG$}-+eY9MX=0WRtp_f4t^<>#WlQ=o zxdjQRsK%px=U$(#MIKt>tGH&~z4zddNX}@)y@Gl2wIfNRW8gA>BpsHBKy-1EUsIP2 zTfGjwG!Ux7-5tz~j>|x*SoSn<=B>i^Q>uwa+{kpYj@CSV!u#*<=&G~d8QTpj5A7MB zloAK(Un+x>dVo?sHl_Ai{m!f~7cnowYX;9|Ab30lS#&J9d#&{=+)`1GqjYgKVgCnY zh)n=@;V8Q@s1gmRaYj8c=KkzMi6qivRhxp5;ED}Qc{<+7WZZf6!`pAHCVVX&xh5GK z=EYJwwy`PcjaqiSA9)Cj8HjEjZ7@psQP1ze@2*+&on%{!Z>P@-*_FWy^PX#p_m!KT z(&)oVxdcUK7>ba$LK{(Ew-ZQOSTf0^dp25g@Jf;I;>}SCi9)q=YQr`-yx$)oWm+iz z{J=xufe08GWg-^xz))&NV)>RU3>q?M|to-u4beD5r~qS=8k0>L!58)#4I~WyM6(4#MvSLplWn zcwpwks$*3GI;=vkc(*MurFJMm@f(?uLBea8^50uOEW(!|s_swD`}*{B2R>7(11jbQCDSFcbfwYN9C zg`2LY_zRJVVj8Q88Cw4c;yG-dq3DXh_%?EWnziHdd!VJd35_W{lbSKZGguHBt^2*Y zdRVkW|i#tE4<3_>RGX42ok&EcK#ECD1>jGF+*v$;#BS;YGz%dnB$0qW1%#&0T>Vr{8Ov&e19u$YiXkLnZmU+WfhnDKEJtP&d;dxtdJg_HgNr z*H3z{l=#h^KdYUXvw4_vsu6>LB@ad^u#6QooteDEL2@64Y_Rw*!}RRYgn?ae*Ohpj zi<}VBvK7agUg_5jvxZw0P#E`*Fccoe%$nwgFx9DFCC^@DwOzCAy<7D6WcCXsQJV1V zY*ilg7#+fp8=zFC{I^HG{<3v2>Zn);@TQc{VesmmPw$kU42?Xzpe~%BcsGYR_Ruwc zXSklhB6B``=76j5SbTUaR4;2JvRIb*W9{(UCCH`G9?u3j*-BzlW1qYYEfO2uE227* zhPq%mZE$Tkma65qpG{T;bsX{8veLK9C$T6?o>gtooG`lTbJ-*~g_*}l%0n!`3@vQai#5HX7BGlUT>iR7y)?t~fKo?3{ z;Lono`bJJk@gsTmd`eKvv4_n~-dI-=0Q9Qo`0X3=hNJMPf))&Op0!{`oP&__0}%n& ztl?2`+;u(SN@W;6UUv-A25{v>%KVsflc!BrS$!QDkEiDXuL<;xg};Bado`$w_dhV` zgug4~*zfjzG}+X+s{{*<$6cmVaFDRl^2)g$f6+dmX1+?wE}A*VxP`IrxO~{U?1Pk( zIAIOMq3<|{&-jc_5Mtvj3G>NbktCB%kslc3 zutDtu@G{G&8U!wwo0}7k8p@n|nA=OM62}>V$z2fbu!ZJeKV#f4IG%p@^6S~^?C$4) z&|U8xxe90)OwUtq2D-5fs1b5TFoaGn$0QguD3(Q$d81_Z$8~!aOPeN(4*1yb?cx&a z!;4CWd_gfxy2(@Yy3vuivzP@xQxAvjDmNk&)V`m)j*Mfc7Jn;5hMI5=+?!?JcY&Qj z^=hAH+2=B*meW)))Z^=X!EL-5mP2cX`|2l}ms?K#=#^b&ho2*aDkVX; ze=Dtp$2)m0cp~np**C!bpN;Av=L5nTqzFUjsi~4NMZrx$Nf>RsG;i^<{jamyCca}V z-y;m1D00|WQ|orzSRo#sW;ZjVNIJ>>>QcCDE-2Uegc9g7D(DxrFdv;x``4-}pdDTt z@a^7C-?K(;VZE)$|An?>2n1KrXVm` zUNeLxzOwm2Tqg2X7K=5lZDrq{VJCn2=y#(pbbCpBrXQ7gwA|DmSkzZAVHx`YHr}4L zrCQS&m4qqE4m}`x1{N_p@bZPwu`~0kxUzk3i=+g)Z%}w_FS72|9brO z!xh$PzRGv=gUBU&)s>@|;MDxE_$V>If-O|n>*m{6RmNQ@DvozeQL`CfoR^ltt_|dV z|9Oul#WeQWZw@WpGQZ@}93r+wNN$=}Q5s=t!PcWLO(AJ@q#Pa-%8}4dy@c$ndGX!~ z2)nQ=v?~B*eMOJ-Zn%|q3sEa6U@E3Xw?UkJDP<#dD&Qp+4wNag2oDA7{&=$Zqtwa1n9>McAc+Hb2uPcR8wosB*KhmY9Uah`;q96 z)yC^C!CvdO{yeg>%Z|`UOk81U?`}d?uZboULl6x&%{s(@?)%=oCHR}1lEkL7m2x2( z%;Ywm^8fjlE7QANMi5)}rfBF}N&vA%0d@83Q16r}w+@C7I||HZ^_Yzbw8>!<5TzR~ z*V6iPvD$G+b&*KosvF1klii+UfWzaUcbK4Jy*b2q%%wm^QW*i zVM}EjG6LyPR4&G3$Q?f=J97Bg%Qryhm*TGOsp5*dPzO3=7^!tqZf#XJRwReh+dclY z8+TWOF^z*5fdbQJgk_b;Hu#>p@-{eniE6k1X;60YAnDB0CvfE)Q)!>eNtTN?{4x6K z(Xo+IE{YkKnJ9)PnU(sopK4n^KA7AcQH=uokR{(UUYF0t+AVZg8)xTD%AJja5;{CBB3oIDaT!5I-GeRt~9wS`5;av8Xa} z_7oZ-`GS`H6Y**JL67D8t+!s227D=ikE2L2Gin5gLuU2DFOYwT52upLNNh%~5MJks zI6JoaXk3qxeVvj7pnE4#>%wA^=2OozT|l0q1U|apK_WoW=M5VRh|Q^aPp^L2zr*|F z66-8`GsEo1BMgTD2C5{{`U;WAMCbP}uEU2mGofjfY?%VZ3D>HA%^6vI_2g0~a!B%h zPzdFtB320w9b>u84=YA>{Kk6$Y7BsqfDm70l(#n?+gzbqeeQ6GB=rn}zCKzgFNtTV zT>>j)IQOqv^>0Vu!cjT@6OT|_F!Ki&;=N?^#T{o$_UJgf&^qbO0+H8aHJdV;F>OI# z=&a6vEYeby^@i;dNS+ew7Kicm2)pLf`TZd0+@5jZ%cOmr{(wbg14FL?@LvU9E}6#P zq}?W=IOVJWG3&2Ux6xZ}AL74xiob|KO$6%qjW>;Lr?V)d28m%LY<)*G3V{J$@jR7C zOQQ|R8^C2wS&r4`LITpQRuyI`6_s_hE+E*b2)n>knBi_sjje4prct%rjL!6hPanLz zWKT6Erg~yp3&cgDM=?Gp#1JW`xDr1*%#0t?k&Ne zCmu!wbDMcez}~)THGOYH(oR{=j4@Xsl1X}s8;|$ebY5W9PM(?D}R&#L)s3@dKt0hhRby*Y! z!rGewKy!nB$FX*NX0P8EQ_wGGnmfU=xsq4Cj*~etgaZRX4x0YlkdsN^jEmu^K@Sbf4zZ+b%&^-4s9P{OIWyLsSo zydQ2&o;ue&3cTGoknex^_J;wR-Jr-7c15=@`$<7&1CKp`=Q$^VGj$w1#;l(6l^+_y zxG+I#wi#>tt0toN-Y-yHx&mX4t5{g^<+RiH#w%rfSB5Vko% z0})hbh=2X86TPYe+^ozd)};OQB&EB1aZ7b!_Qk^nsSW55IzHjmOPG%rJud<&0g@oK z9NeAS8+ep-`li4w9`FMCapD`v_1IV0yL}u_PTa|ohiuk^0M870pJIqg{zL!*T}?z0 zLcx#qh1sWx2xBvv_Adfk4pc-8 zoJU{3UGUQ{31Xt3T>9$t)zXU)_UouE_&YxbqVlH$pK6cOXZ4a8$caFq+al=%Pqj9TsZE!#~{)OJTdFiavrQBPr zHLn>E@jYCI%bQ*CM>>ADwQ2hJJP?QlJ@50DMq5YkorLjr`Ay^*6Se092yL1&FqTEIKFxX zDAbxLE$&l@8K)zHA!B-jp5Uz@1|U=P9B}1fonNh zUB;X@?D2-J7x%t!oK?#)IBkDAV5g(!P@n+OWuEePgKP>LB#DT9({wo;{QjYj@pZ}C zd8^Z0e$ZV*mMhCo63^tL_z!TdDA&;Tj59L5UPxl)%J^yGv3xxeX>H$y%q9d;xSq=) zz?xkd!X*@}ukA~x#1~Y`B(vI)_t%zvIlbus@Hs62^vI5D0--eE6$sKn+@*352}ov4 zcGa;(*j)bU%pJD(BA+j}8t^~oJFg46eYzki141QNjM8)KiBe8F^lEMDC`~uY{QQ`! zz*;c!j8|(?k3BKIpIn3|bQE+H5wttO?BtgDa4@ivR{-#H9nAiNG97b93r27nBj9Jc zmfgDSap=Rrm3dE{2%J9Rpl8(-id_kE&nsu+aFnBUm90_f^)(9&hFW7<)%;y;tLnnM zvqy10>fYS%(kjRw)UU=p70oV^uo)0W+Lgve=3Fmbn z#t3653(ag6%>d#crs4S34LLRVqnrw&{)Abs+gENcI&9;#XluD0o-m>D+)1j@q9E8j z6dJ@(OrB}#?dk1tGki9C;rPh$aEDFrCkVHyzv-3oo#qCUsMU``y;E`94H9mIw?^Ic z*tvdoo1CtZ(R&PMlapKb+|HVNy6d(1qtIv2ZkB5;A%z5J@u&>P^71@7#?Xk7&_j>0 zop%<^4!xnmD9q3qog|KNoN04o`Py{rpNnG(zx7WqA`;Oz`XE#&O3KknW}lJTQ_uTL zMuD#oGhc?$GFr}l_p25t?zX1z?b{WGxJYF)YeQ5Sy*+H8r@4OnjQUYR4vj9Bc+4Za z4-4|H;NN9)gUpETw0~ZD@#8wQ>U4v$p+5Tpte!-s)Z<&iHT>vvs`1vnYpU@Q8^CO; z$R4gK8y57++$ugBN#0y3GH$#)4xFExp)v-&ItDr65r4)3wHQczk&G+=e#~Rwav6=a z8KC1Uh!t6#JuFw)8nD3-q>+PfrrBDhqkeZ_sz4!$C|Uo(VlN8NF2ZJ$UpVB7P%sG) z-Q`3v`QC4R7Hhxc(BThjs!ikB#k|&>Q6ZZIV^T>Cbk`^`CX*^xLb0NG*QF_^_Fn$x zgMm;Bpwn+6+Gyr-OVkj@^}@BPauSOwjJzp8G?3M(w4{U2S6q}X`{wfj#bA*8Q=bXS zJ_aVVLfV3|Ud*|Xy>rRT4n*VDz{d8;oWOSb&oNaM$(n*1 zx>_C`=5ds`t8KIqg_~*>PMepWt~jkSw%eTY9pnaFQI5=aPp+Mr_)h{$=R*W&vtVgx zv!E}BtnO9TOH6?a;y3Rbx2SBVZa7v~6U;&85U0wD^>}_NT;N6oj-0A1)G7CTVYwpJ zex{sdMz6n8ZZohU3rJWBAT-*caS8ooM!P4=kW2>7>~r|m>@n6l2HL<9Pd@l{x8GH# ze-u4~d_w-eRvViU+guZ9%w{1r564AYdlYEPDyfxYEUm17u_k!0Ti7hn?PqN*G2|$R zOD8Z%5iZW-rto~FUU?HyDIlY{ifp8c(E!lVhc<)7LAX-d8^nxc8)4$ zD4H?y-<#al-j@3GywD?edqg5b2OS3Rad05hRKe|WSJ1+A7y6UI;0!3KgeRt)dLEiZ zw{Ewc4?4gtmPaM_9c3V-3?X8>*1V*SrPxL#0AX(KlK}^Rj^SUkzEZ zHG#Tx{?xx#%bnm*(Fu}xjuVa}BD0{s+&KZp6QUAzPI&b|R!N3;jtO9_6$aDmd00jc zD<30_`ifn;e*5pU<0a_Xnf%UgfD!xmQ&k-m*!2o{kIC{SOdwt`A^xj?+iWcPKE>tE zrbRwJK0Tf1FvbaDCK@O-1U4vN%aHqfOKVGpE%6ey;_1G;xxnw^L3{ayI6|m`zjhzD z)xx1Dj-EIxh!6`B0FL!vt4ejdhrsvL4|gyNvVn8hkf6#+C#NOD_N^)xx4N(B8pDn?@MU;U!R~{3h3xngNt*E2JDkogz)TsBiN2>s8(M z-}?sO@JCyaa0R>E6qM{y6{$Q!>Ei>J9{hLOpLfo^eS2=X&tf!TqIkA87F!agCKIo+ zlB)7=2)swfF#RA;ELqH0;NPEx?pUNd>w#l-1zp#_0hqCV5L$*&kPO=Q-Ux;SP#`Ry z91?`LhaNf5-5Hqlw@gVKbSM=0_`7o6iT9A|Gm7%NAfx4K)ke@3vt+4`)zY_$I@@R)1d>=~l0m+8^G!RZ=vfJg=%` z#B2Do2rLc+8P%7>&1ge81G+rk%sKksNrSt>^Cs&s zI$#>Os0Duc*`+JnZNB^4`T0D^*J*CPwz85c=tyiwxEg_ne$Km4&^{EbjykFZOMU~S z@|RDDN`kVTC#j2RzXK zS|yG;)|fx5|8sC#$ngP{L&?UTTm?>ndv+%w5xHzvsO`Y;`9VkGLj_?k4^JzubWbXg z^e7BBdU;WYD7Y3=IiQizID#|2Jl`+fvg%^!;@qIfcAGlgXniw-L1Q_<4fE}*Lj^De z&zKLTPhkFnrN7ADbPl`1nrqDk3SuLub@^qZR2Chf#ppBI+fKV~ijVZm%~L6dH^>YV5GSWUzg^dyvWHhS1@NUG?mRzPrm<%K%NU|_-ys^sn1Nl%>ZUd z)u|>nbIQ!HcNOcYJP}+6&E*X6fl+Dadl6BeGWn%I_Q4@Z0+HrE<-Sg^1PwP9 z>$iQzp#0i$x>5Acso5t!BK(WVT+}fhzLkv2!S%mp4guxm4o=~rHQM~NgR4a4KH@5yoK8lfv z>iG%cY%RfVkg{_WjgmA@Xx33&k^!L&0MZ8$CQ0dej~DG1UfjAV|GD+U4?5t9v9I(# zH`6%J1nc!V$xU(4V3%YtvsnW5=0+Ajn}wd2p89R_s`38jJujXwbWNx$tG;y=ee2roREOy;}4zjom$toVI)?Z@zy@laYZMEIZ6;Kp!u{JzR4s#Y87r7Z}Li~C{l zNtvEuH>sL5heQSuJ<%am@gi{49EVWc{9C7+2lkX2-q)`~janFz;2a_ApTcyT#j6ht z{+HW+y-+(*IVgDJ?|eedoKFq}e9I%B%Qv2jU~Y4(2o?4YM(9`qenj7s&l|74UUGie z>($AS>2J1X7j3vyxZt?CW3!9j-@RGHU6U$Zg*&5+(o7>T)bg%?fc7{6;2Z~%+JR8d zH}c*M>o@QUFP}g0W4hI4j|0*>Xp2uEwFCMxGqE+Y2ht332%+kpQYqp;kTR5*DGa%hX=fk?)SW<&3c99cWNZuD^x@}JKsVDGHAxsU)zpT z9_)JQ8-MLPn%90`>i`r$w1JA8dphGH8s_1en~?$;nKL@%(YOt^ae6dox^<2pDe-1? z9_AnYaM&TU=*LAxQBhTwBo5{R$Ovn47@p9^L??49hn@XDJ1xFlYwHWRxHeCs3BfUwQDq`8 z18d(4^>Rn)wHTm$A=h-c zWjY$%+{Uxe6{!+FGIdn-C4S(ncj6Z-hgTAlt}`=fv%`j+hr0Mer@V84wZq6)<}Ea)r=MFEfBxMz3e>3YyupR;Y3$eOTZZ;4;^8bw_Fj%MFLSWKu`ppe9l zapvrz|2!rV96>|8@bMSuqHreW!kxhu@b5+MclHhJUt~py98dY6^Zg+Gg~V%K8UlX9 zJV6%*W2tmW1Leroow=*|B_8-ze!)$pFp1YPwyY{Nz-Ih#;Rb{qO@*0oDE>Nn(6%`` zu_d09+E>rVG)N>5Sy#QPZin>$sBuc0*d~LSs4hSG{R*C1tonYx-DJ9tvdcHH13#|R z{xt>>_w<@Q<@20I(;}zf#>W+V6NidSGM2ZRTfqFYJnWp;oewjDCCHFjoSWruyXjIF zma4J@M&sRFfU5XMjV{RMF!ykJi+o-=meDYk0c(G?W3g4J_5&ewuwc*EZ1F@4RlvdG zJ{l|)X|6s%7ONAcnQV^!Y%;OJl&fAm|FKMe{der%9_xoX604q$YSkh*739G$9;MM3 zh$t+ePh5Z+J0tmIxU2u^TENMbKUAmN$PZ|Pr1kM_w=zIle(WQq`9g1N;RFL28P60c zp}C{Lkk)pHciO*lcX;9Q-FwxA)n@+*S-i3$^sLD2ucjLHx^-2N&Z5S=N?j#O5U<3F zSz(kv91ay;Vp@He9oIRrff@^W?(Ou26hcJ?6wBArnDc8Xl%2PRn91>2r6g%V6ZLER zlfqme2_2B{FP=;XeU%D5DKuP}x`EZEmY#AHCb)Q}K2i=_ppApSuIG+4_KG6E`J)HX z<+z-cHIPl%S(e_90f&EHfT%@!Cw;kaI{Z=mu)2=~yhr@kbygtx$#Hu-tO&t_+0erv@noZli9ebL7zxrS7=(;7U=9xN^&J9o^M%E)xKz# zJT$Jma}P1*eO`dpj#u$#B?tRoTlE+0Z|x7%_T_R5qnWdZli6OlQ@PCA>NEjuSA@|8 z9l^vqf>B^5O(>+4vx&_c0@QgT3cnG97E2nY^6PJ=NOqlkHnI40){7S(QYIuoN;K(Y z^HVT7h{UBkr;79VnQ|$xzhhsi$-ebk$orjh>d;_uJuRjRC7e`Um054@Cv& z$Par%A$8(M;bck_gdYCom!p5S=SO3jPJj#`w8g%>A&0hnw!|?$=FU3il^39*EI^l$ z1kKEiu1shEgqJfWgI=NW5pS$2C8>J7P%^Ahhmx?EwretsDEP(QKDJ5ALn5n-AtFNx zANjg{UrqQKi~6f`zE0bl1Km#CJI18sJL*`}`8cdD?f3Gme|8mhE8qD|g${D9awZLU zuIJGC*o00cB8`ma8Gvu{AgOzy?1Lb_G$xUkF%|?70&#Jovfnh|C*${3h>p5d7qbe# z-JjgWA7;p2_6U$IEp2obF^LkcH^ES1SZg z!3Jn8n)`wDG$TnejISGd`F{OX6dGa0rE{5<*6GtR9@l9yRIoS23vZ9RtH)sP%Gtz z*f-)o=Q!_kZ=Df`hkjaI7I-px)xuo2@dUQZv!}54pJ+GsPntLKPnK6A?8>s&G)BhIa|8IL@>FKNWK2|^~7}u0JVePhHI$RU%;BCew-{WQ&jw0*v zT60uTa#FSea`a{~1gJlhm^RORY>Lw{nLu<3e;j2@6z zu7RhX%npl85H;eWG+Z1p551gNcW3S5E_!O$bh`!K72TEkuA+WHBX{ zDkc)AQ5*B_EctPHmQarY=r2N>449Fs3=#88-EQAGoZ1Q;s{1VV^Gh-%`Wkah3r{Ny9+8AJ>gQ&jK#augKPYW!!xm;?w4z>0hMei;A6 zmA~2*H7XRApd_essDHCru)xPbKwhHq2q;w+$ z)b!>7q7n$M|6eO`74M6;wVlIJOF@SLlaeODfZ|x{Q3LRjuo?@7oPf+o@Z97cgQSUy zfN$b}W(^Ag1fQVBuz~DW78L`@mDQVpsPzioNG>047AfIHd{NaM@Xkw}`Su>?bpVw4 z&&*G$&Y{d6Cny5=(<$*JOYk8(ATuEuFH2KT0aVx4G@CnszwhGisBJ|-2ZSTqK~J~n z3~?BU#HyGoP$N9_zdSH2ptXwBG_3}!gwmh~Hl9?SDu!$zAhVMdFb zKL|t}UmF>^@nZ4gv+-L}q>Z+=vXaB5f(H)<0jRMeoHH2yuT?w@8JwVOAcnN6%_u(7 z6q)@RTC6*F&PQ#@pNR;EPZgeE~+p|H>yRTDD|fP#brfni`J%RbUAL$)_>Wn ztQ;(nQGux|kFMp!W8{!|HI|JlM)1SMGswe{$YWCbe1n@GfVNeWW1*h8Y!SmCc?kS7 zqzph+twv$zO?|Rwcc0tHcOM?~)%s3K?JS8>M=H>6Z?r@Jp#OE2bFxI-EAaOwS)|h1 z)Hlms1>Tz=aHNLS8DMadLP}4vAk+nv%IHK|R66$W24ujg&0BG0`hR*WoXp-)=! zH|rA=^`n3g)?oNK+uPqYFTuaL4@Ossn^11`|7@wQzWnXwS9g$TB${9j?N-MOl#$X4 zm_jwTe__KuJw78CiUBeXz_~2mV3Ihk@W`Ja4= zh1*UP4;Yz%1-6@O_|vY=-AnR)ZuF^z-z0SGeTwAGR@>G7JJk>7SRpiys?v zjYczBejH666ylB?-m=Lm=Bj;`t|e+tRwTj<^*QB{g+kPnl&9`*!N)^GFtX7CZ;8fj z@ttddM+IHa0?>9kDSvzISnq5+Dk0Fwlsux(|5;a((725$shZM*r;is|`}}NkIp5LF zF3&zF^2|asbJPXOl4#9fNL0pJ6+_Z1kqT#1zbfHN9hk^S|IHhmivJ)GCyz9V4Gmf* zLlV`+ez0&0!vb?2DY#QQkD0g)%Oa00%N-BNBHVNG(K`GU@TWeOC2dUCDX|cpb7+sh zbJzlt##G`U<{z6I*rK;`|5b!+z$=>s4NOJB(9I-1Hnye@I5FRFe9ux96zOE&9+_(Y ztMsjoce|a6yBh7XLs>#@(rtyo5_Bm*JYNg-XL>Rfh(5$u%r9>$rj~*6^CoM3S3qST zcV2Ih@EhN@O)B#q2$En1SpyR_@`P5M3^e&9bj9?Os)q zzF6S+vY^ZHk>^&bt=|IA=$dYy1*w8poTY)O&ght$2m_ms+DgprmFyy=LTU3{h)P2F zka#`Pz4P$?0^_2KQHX=xU6kyw=xcOdJgt(MT)^6>6?SvQsKlq!5g3Lh!QemET%V_w zk@_8njycrmQwI~Ro=;Bjrv{}ZPlZPTm4g};^pn{vnU!#wE$pK2%yKaro4=soRqRDhNx9&5f9f=K2%r{Ul}xM`OyiY#<9IMY zZ#7HW5i^tJh2Ui=tL84ztP} zbl}qJtI9i8UH>R#5=w)!=7kfPKBUqrhV&-Yv6x8~fsF#}K0w1ECHgeN&1&aGLj8Go zP=~*U>yVIDdR7f+30O=?-++4Rk3*n%&-(&SIGd%?X|dryp0RxrwuqkLA8IvGy{ft- zThSwXHxiZ?S~sIIK!IFHE(~E1{p5rZ80n5`Z1Nj88;zD92Op-LhOXYf?AQ4&WWLi~ z;7Y5T)VGE8h@5yvONCOi@mdArYgG#`%z#EKWaBNgCp)J;<#o%)Y(edog0}2_NkzGP zU;OmE;vMomdG`3cZ{Pfj!AARkt$tnZH{u`6PGhM^A}vqMI#?D;P9e4JA~F@t z5eC^KZ20V$|Bkfde4lQlRacth$;kyNv9q=2jGTgnjH3!7z)5s2xBXFJ0`)QPW?V;| z5ez1Ylo&0z7@F+z=NaLayM)I36Eag!qG7}s3HA4+nks(NvWO4_rFr{q*qo0bTudtu zkIyqwo8vg$7Y@r~_aEx^^;vv(@aH0r5c-FxwNrijMB}+UVB@yPL}p9o(IZ7oknr$^ z8Fg!@R>@|0Zob=oQA14)5JDX==A ze5BoPZwfs4x&M>=z*j|nxhmg5&(%ehN$PNumSr>#0A>epSwx)#^gx2*C2?v1bwuWm z;HqnZ5lzUD-wNr8(u>PIeCO5uzt`J5Y#JG()eIL@)u$MBt}lA$bYxPRiNsWpYYaK4 zCyc=RV@t%r-9n9XBE0*vC@N7y0OdE8@4PxAuLFAPl@vlHen-R!*gQ9M;O++Kh5PnJhl8T3Y;{12&DNW>M+Ix9F-#gY9#;VL=CZ73$hE$Qcs!#c zkA|k=zMlH6ZL4~&{l$SRSBh${7zjW8-VFIH0vJ`JqSXX9-dq~$iO5e%6rLf<_}pKU zcR8mf{uAJ`(yC{&1bhB@SCZDw;2e~n)bGM#WNO7qNx{NKOn44~NmF9rTF6;(1^3i} zB?0XYy`7%|k1Wp~{cFgjiaf;IpGC9w_-#cr5(a%_v&#nH&H$e`t9U06R0mJ5J8U)=6Y z5B5>#&WZLXmh3l$ocn%BnKq-YjMp5Wt}}?$hn5d#T@LRTl68C)00rIN)BWiBTZfBw zWVH9G15Up7{)Ull@YFsP%iSem0Sm*%KjK7Og`Wt73F9Kf{N&Zb5V`g<=yd6~UQ47~ z$`&h~WW+B3y_KI_8R}kK9ydzIddk_@uu<<#{*(d*iQcN$D?X3yJb--L;4?lsJ2%^P zWT}mn0oXO4y+gNUKuBV~yoOxGH=L<*_B=BtVxcu4cgz`ToY@nVGEC_nEV)BISnfuc zT=GK~2pJf?g7j;1Fg0I9a$V=tpc~zWQE?+SMpfN)4)%ntBT*p9Notimc71&Q(xOc@ zuQF@{){pP)qR0lp(guAwdGL@h(vXo(65kY+n-4D_b&v71DwZe5wJKsCIKoZplkp*7 zoz0zeNBGvpXn%rsbyGxr9Y9@kG2tQq9c9sfe(W0{tu3uaWq8j*=g|2k;lk3j-wxW{ z%#T~WqT-D2;)@>H)t5>lv5(Ak_V}1-@SCnY5q^{oOQN)*$K!MlNX`Iu=cUEw(ir}L ztS#=w?GAB5*`7yuW_3#S+>g0|&pr?`lI(_WA@jHpbaGS;UXMsSW3H{K-7b0M5}fh% zj3Ie2WaN~NClPC1MO5ovFepr`~L6N+i+Zh=hW+N5RUk9UUvG6rASySPYF$<3>E3sb02kcg?5 z#EoSJ%;psbF(%d%s`=Cz3m+_^v$Q`SuD?Ez^3$`GYn4A;P3r;8zB_%TiyHH=>asME z6bMUzkpOF<`MAEcwr_hik>z4;D2e0s@ndl=<*`oh7u_%M-E{xR3B#Ou|6L}pyOu38E|jJGb$yoee4pp5bmiew%fnxO$j9<+ z4&le>;9VVS@AXB7ax@Aia!wcvO#ST|I8N8>J`r^(R1#Yl{LM4^@#zgMXa7vUsr=d3 zHD>ji`6m!>(#5BzLx`6Q88OeBIVB2GU5c!o>&f4Ym+n?{dqjd>)ow zjk9g(S6=@3k7Xy-yCSBF9~)XiC)8jQ^t=d-?aaL)E3)*itOuCHlfig!>d%`aQ;)sv z+jnSb-G>K*YjTa-ro*asH<7IYca)&bWvY9nU!eP;`|n8=^U6As;KXAQEZq>{>3L)0 z&;`GxiOtWM&@;Aqdt+xC#B~9tdMQg9DiOjwg)caj#cGe*p&Xdeg%F`uXnS+eQD!ff zC+mage=A+ZR$h=JAqHqB>EZDF$}{hFKXqX7+PQjeVFUxwt;(8s5#Zu;!8eBw_69W< zEuyOPerOw>8Cbe}wP>r~;U9?R!v%-OEaHJy*X~`y21=k$pbCgRHnzfABC&AX_~{e3RN+y8rI5u<2?o0_C=w?Plij65E>UWrQ2$ck_QbjBd|UywuO?)iK{nR`v!y zFgCT)M4)UcPkie)r+^Zt`~Jb@6ps;jZb}!t-QePH|B=c~t(?0baQ`87YV7&4;VipD zSrbtm_w0os{vOZju*n&Q$+DVCN&3;+c?6HhYB%z%5y3^YO(Mkp|iYa$TIFz<_D*%3S(x6NKVA+wur_aY3>%e2~l^mFLabqAf0T> zmIQaky}k6nsq|$hkQOA#Sp~qw(&-e|P=_aL1}4z&V8X=}9;0lOLKhp!<)qH3RQTo} zYlpy}ZL?>Z{BiDY@8*c>}@V>xF5i&dJy=><2d)qaCND6228i~ou zScyufSHiHH1{<}6Xnd@ku%4|Q{C*l}2^p#yvay4l)M^Xsd~+B8d2>!kH36RFGc9s< zmY~!l3I5@=VAXp*zvtxGpneR*@ph?IpO;1w@E`(K)~7CN6{0FIW?u^byZ$fneuo^V zu$I20;1GcwEi+{5>tIFPCN)X2gXt&M~M+3%s__$8F#oV=a=DpFR#^GNkEhO zvb92!?eqz!5@I{9p2c8dQU6(tn%p)FSBz9fWY8%beQ#6p1Uc7mu7AL$Ks0~Z>Ds-^ z+sAmLtKIfT%`cz8o1?q1AcBI+>ADAv81Bo+Tdz^fQ{-YERnj+O6ZTwY`}A2D%C6M< z92sm+>I6OL?>~4tzZKcwp9$G6_)TJV*GG6}H*|zm2I<^C{%29rF&8BJjV+JUaBh1Z z1#0}9smiLKR=mlIFL=Ve2r=3```SO^;MFR_h-HvaUYshhbSxm;A=&?fe^eai*%XZe z&bz(p)lW)V zF$k@{#`lj+LkFahnD!DeWrC2ZCeV0IjYwHliIT0^zUGhn-c@t9dWiG!kPD(Ik+D>9 z&jd{SFZ&QCZPX@pZ|bk;^(_N-7a^=E{|t60whkTDC4z4w2*N=S|G;$QJ3wLQekA;(PgL0_0kW^*PuzRTZFy#FBZ@Qg>m@pqPo?8|*9i`1*kSiMO9P zJ=q(L2QCtVmmjeivJpJ-fNC#ZNtJD=}mQ@(8g&LdC7B z^w$^2@nFlYmp@4Ihqxzl)1{0X*o~WQvJHA3VF&4TfVf!^#AisGCvr`5v8jTxz^Em= zmZyF$co^Tn*V`KwoG+e(Pf1fGK}v3gL*7dWT#Du8N*%Ig=-9f=fAi(P+`n_QWvR_g zH{ZLULpqpKSArI#brAtc5_L|wbVbHHdI&@GzXO4W4S2Q>%CgD7%q-byewlyu$oQJ= z!+@MB33t*&j^fnR#yQEXcC0@m0+-6g=|%8MB+f_4^9R8;ou^;fCjrkmUlNAc8%eKJ zawLJ8-{_Hne)3WYPM(u$Fb8DV-#MAsbvE1PJ+L0FSPXA2jt<((24*4SYR3L9O7`kR zZljPRdGJ`atRWy_&6~H+YRyX5OhIba5D;RKvh1AkAA%sli98igfJ{$s#zsoU@<39V z%2XbSBQ$BUf84sZq@TsQnE|Oi7TZfzvOqrt992%XeAGs9uW$%yQ0Fk2YUrGKf9tjI#|M|`d{<;~d zSgu^ZZ?Is08+`fM^lSHj#D$$70v$ZE%*;#ghKX;d-EK&qRYd^Q#`3L;W2SWbQZdLfg0NNa$@W_Lu zEMe2ICwcGL3qHEvS*1ND1q|^Qyy#?|--(FRSC^k%6DM(>`Ihezb6_y#I3=|*Sg+-o z!TRFK*U!QpIoOM42_M2gUiiOw;{U}H|9_4rZu(5mIcfCgPb~V58O49!(3b%-k!w_f z(_2cyP(%sOyklZclWjs3ow<4%WLtFNo582LJF6~{-D^tGj^shm$Q`t0lW+}SLB+!J zCa8NzHFS7qu}?^J15NG}j{KBD)*K@BK6t@@XIOAyk0|C;HW$u<#Q7Y zh!*!#ffaKil%6f4s7ELTSC{wiTH?hYYtvYLChT8y)8Z*|W^^*}$nzlBafx%EAPJGX zW( zoAZ9pO>4#KafZd}|192%cXK>Ob1QkTvUHNi>;Y!}&!-*&ITYSG0x$X3u= zfzN+ddGc&^JqLBFQ_{#;^vEPQKz$q|6QCu>LU*mPdMX&w`wpqaEoh7Z4?&_NT7_Ks z2!cd1m3q}U;>c?7A0Mh#VYLDp$C-l!C{gt_*=z$35lS~O3V}&8Kq2ZrGi3cz5L@jJ z$$?nWa!>e>A(tw(GJf_VbKFrg$EZ;E&Z@rA-UKbD2$oq&?7%%o#{MzQns@skamh{5 zaS|+9&f}bGD^g+W=A_cNCMMO;-&Y`SdGYAgXUrxsSNFETQWA7G?j?Go5}nS)pb}kwu8nIax!_9*T&beDyd$kFx@)_N2Ovbo9HwwfZ!Rle=I|v zFO{INNK%ahMaHNTHRrD?S(ar3UUXduww_!Kex)tX-t5Kyo{Tw*dr&Z#uxj=xKu~GEi)OI(dcY6=ZaLCf8QFx4!Wqo&scp-m zUd@#Jx%H&1TK?(~29V+1iW#FRCdFKf3N4A{9t&{J;;2ufflC?$Z7{2AkJKtAZdiP= z5OiOYS?oZ)`S$?Lp>``rk5mRWsgzyX=*j*tH2MxK?l{3+i$L=T-ODL;_t#&xvRW2z zk+kjaH8utxdSykB>v@y6w|v1MU-)2fE}dLATwroX#=$0K%Al_2(E;$b9RS?v@8xz? z>pM=wtS0Nbdw%$ej6(no3JL|=u$AoMz-OZay$_h`2s?(vvQjZ$#Qhg^b@jpiv>_nH1ZF44Q`6gfq%q!!}2k8%b$slwoFUIGia6M^Pky_}x-{yKK3plvd5r&HJy zd0Vu20Ks6pkL6DFHXJ_=Rm0?*3Q1CS_O~2*Mu?5W^UF(Tpa&C{=+SZZkhoA2OC$*c#%m2r_$cE6c-?+%uEaL}H}T z0XteU7ksWLG`|8-&1iFHx3DpC-!~GpABo8_7Vb1Nxu7&APl{=A%V6=kZ$`f(U(y9Wq|P?IASF4f3+CBWYA|xJ<|Bb6 zUHA+$Wz>Mq3p*3HFG+%d;(wjoPwZc{<5;Krk1l$t9A%cXffKjEAt-q(JnpziCLt@8 zM^DWRS^RY7-^0Vh=9k3Dw9Nk5LtBzz$FUN4UehnI_QB#%I*m~(0*rN>>#p+Ge*1e4 z=CAWRIVO3^@7$Kt9hmR_w34t#k23j|#i`)15wUX%MuLwU$*o@et?P%T`|ryC`f0V7 zAg;ltBYiR$+<^2?EskKSg!K&7xcps@_-_$Lq{VBPlefio&&w;9Rk_W8!8@lV+wj|W zVM0eDOUr@@n@qrcGh1>_tC6Z$nrah!LiKGN`uy!7&Z~b`6=nAC2!1qds}taAa$~yP zsiiz5R`)-H$M8#A7?oPdVS6w+z*s(QH2Svmm)Ac%MDFoFHT-}muwCcnTmF50$Y=pY zQ+ki4;^%r_cl?5{bIplzY;8$K<3GrVoBnDDxBl^JxL=MJc$-mRZN3n4J-WCO6A{GY zWFd{bQ*vExN$Y5@19zca#!;3#JvrIke!1Fczw~>r?PUGv-42ft1BoG)aM_BvxWcc$ zZ+aeF5fPc}5(kF~1=Q01_Me}_YnwE*Y;D7 z?4+J}I=ny_hX!#dScyV!^xg}tURK7{I@iiY6vv8Qo-<$puDbjEE@p$%tJSMF+wXm< z`m|`9S%e$2@qagrXjX7@spQcg@VcvXl^2 zou^49Ybr~DoHtrwQpPGp?~;WL8`tDSwbtc~YvfvX;Mm}$%su$RVhZ2#%1w0-ZV6v4 zh;8-quWhSk^cfU_ULI`mD!ng)3F0JSzACseJqtlwgP>nOt=Wl$L|p|S#}=etuMj1q z_6YZV(~S#8NN5C95;%=Rp||vfq^ImHpKtF9D`m%xb_P9#51Iu(dm#sGcL;6NLK^|c z;b_&Ch;b297`sRlPTMvG%{SxdSmX{RmIqTMp5s+Ik7brQWh?=C^}wuX)>c;JvFKe# z584xp0ID+ZjNXhJbmub~Jc=^PTu3vVN=aApuq0X>$RGJ*$9f*;-_)WO})b z)Xlb+iL?yHBKKJS*(IVAThobel88nVkWZT3O$jIBz17)tx@3A;iQE7T-vBx5n?_l9 zf7`M&yV1k@!b;xzmRs14aeddEuBxj0?)+dI#R2a=K>!4!e{mJEXBC&ksQDRvGY&MY z=?K`#f0ep!>o(n@jk;=){x|~&flDKTFbtL+6V0IK<+z1aw8QWn&T-k%Jq9M=ickGc zI+Kua$K#@?_`shwjJAk$_EyI8-|VyEw>-BxOHH~}ckub!o)W9uPmZm<_2f=ga^U6@ zKi+G)M#+D3>RrHUj;)U?170S2cd9OQLzC#$7f^&->2~668;8wM*J(_)>u~YN_JoRi z>h6u;U7VOO5?6;heLJAgao^|RgVay*p0M=$`26i}lPZ+Nq95D%v%p&hd?fYk>;sqn z9&L^G2O;HheUMy6j}IgSx0!EJK?aj{$$TZfx=Gm^q1!JtGEwpTCP@}x7Wo* zGQBRM)HH(_Fi|eijf2g5^gmn&C9ilneBGvJ_2vQy-gcdv#nbSo!lFoM^h6V&q?D0Z z6?o5$Hc>hcX{14oRO-oNJB8>#WX{^7%lOIPFSlLIDT8$QmTXrPAxh*Q=KMW`colN1 zHt(;pL;XlX4rQytpRLfsE>Xc*4XY}bsjmKzz;IgwvYNC)wUQinXS!=$+{FU6Mt{V* zE%OEaV{3pm3Y0LcZt|C>sA*3}ge!NDPQE&2^EWj8(;tQ36#{lrda%j~w%eQSI5*K0 z2+L+~JMPeZz7BYyHfninNuyYa`5I-j+VgRv=ZAxgV34zNdY0@o$f}hgBJpIxGc(UK zFUFXd<1-!8Hxum)J5N=MG|sPg+_tx|v<`nIID5p}Mst`Cxmeritt{~{F&IYlh>&B* zB8GBio5kA4qKT$FU+=O~@!Rj*KD@l|cIEKS!pcMW$j+ntwc_UN6i*=k;BiUPCxdY- zRKuQpP*3gfAf4MTKZsBm#uvZYoQ-%;`cv2{M>A2dwWTvOQ~6?JO8A!i7&=}>RgOpw5eRc!zDCnt55n2GY5rp74PqOVU3jf$f)C5ADRhg6!@HX<>S{Ylan^R<^L) zlymLY9wX8@t|Ag6me$crSpzt1&ia)7$432{?hl-e%D@n1q~+@Bf7G&V#s5BN>T;B& z`+Gx_u@#G3E`4ki75j8oOpKPYwFEd2)EPR(M&5|I3LFrsOk-fXPlZPbrqY!ap)8(z zEBZW*&R`S7T=Jgu)jBk+w#NM#?{!}gBs*D)x^cbVHN$w`dj|T+Z-upe{HHZjCLy2Kye@nJ6u?oiJg`=-33`#AC<8aKb;^5l(5>nVz_$6 zX`Ck#-NfulVpezW=KCuoDsQ%)TQP3d=#6pVzrFR_yz^}7p6@-AAnAMv%bJlF#CjZ+=Uo|4Ri_QmxaE!zQL-o*gGr$8Xk%U;u-;jfcX4|#*=sy+N2s`A%49#w zLPOb;ApAj;gi~VHve|?@pStT^9x%+O6)(M(ZO`f45f^KoITzs{<)|o_RQpUw|FfvU zrgv5N<7Ee^rEIBTQa$Sb)4eF`U635GcT`Kqa*&<%_Vy}$9cZ^BJpzvn)S2UY-jp36 zHXHg&D*f9W5ZNk`wod}OGxK%lp~44Oywccz4Np({285C~KhpdY4C4OsL?xgJYsEi(9qx2}n?hSgw;_3wS(bR5jnHyo{n51tmQVi|g|W=@4S^xJL4H+cJ} z&{)w-+Sjh5-rw!gNplJ;pQ0?6o%hRL<#X2lLT~wzCFL6!m}@bbLdeB)8}J~&a;V~kR*eSA&AjYsOnKt{Q=*qfe#K&y-ahN|XmN4;-W)I( zO=~w&X9*~|TA?wtMPdzY#G;g7SQn*4kDSHP|8SuDFX7*~&EFdD@K@n!L2yc1<+XH! zQ0@4PsMne%`S-}6EAiCm(xGN3cXt{^K*eZ_Mub z%Zb9wklkOoj>1UHJq2fdv_@%O3rz_L9B|qD7)wN`V@+m7VIBXAaQ1b+J;pNkhX+@4 zylgCOb>H-lv(ta1Ks4b9$Tku!P7>GN;N`a#>HVU<4x?9PQ=1yaCOZ8s9`0b5x#dGt zapTg5Be#xb3J)0;&)0vu9por%8AbZn5{)kHv*y&%p$)`4$sD+v+#~_6@E>qEoam#7MI1i<~hD6Rc#MKgmkFB@p`h2^Lo5$}dvZI5?mOo>cUpfQPd zuwHun?Ynr{)yRwoH(uHd+5PQ9w%1QY&tE+1ilm~>SH-o{lhqt0JU4-r!LF)6qVsZ6 zfC6|qmj^k1_sy#_o9_X$LQ9PP5Kr4#{dg`XfaKDu`TAHBJq}Zm%}*(LMlr z(5v%}^E6z$!1(<4{IB^%%C{$Durb@gR+4{oN8bezxQWO;w7v8A+zKwwEhV(7;myE{ zdZ6#-(t;6~Lc>hz_dE1n{5iyAkOj$tn?DNN_=S zij$6X?C$m$Of9Px$;4U&VDud9dfaj5_7BeMFMHgF1bcZw(!l)2i)Hwy%AN(dS=b^s z-5(FE-h18%=cuuZ6k1J%)u-ZymCfJFXBb{*p%#`lke8MdE7BlmY23l)%i?fh>z138^DjIzO&ClyRaStRjs~4*h9}sV?54#4n=b-q46) z#kGS^_}jy@c@Vl{@$T{GYd;NE?cM4hk#RESGwDrXE)<_0uK%-@N>7<^pw6*nk-a!g zz~dTsBa_9TILjzB!ZxP9Z5hkqb>51d)P*jcE5v^aGCzGaXJc*p21VIOvP=PtTpw>z zGEeZTSk7@dQZ)#vgfj6e@(IQ8kF_!1t$LF7^4wbW`HNE-&sKD}dA&)v8hqr6wtr@S*w~6-InJ5qO|4eO0qNx3eU-)W zA2=!suu&TbaSxnivBzKS+4yG+YNX}UlB$~6>qFq$$xvcnHzhkrDwns4egN`zTUDEY zEdVk?KysLHcG-IMgH@KTZqF?X9?o=ry6SC;m;PNu_QX(y(en~XqId#m*kZQz?gD{! zck7Zj6<2cR=Cwd${%C28T}w-0`#Y%e+lrS~I=$DS(K36&c%Ahei?_gOV&;}{4bLyN z_KgIH1HX!3g!MQhds57{k`1g455YF1w^Ps9-`Lg*Z+_{0V!hXoH+NmnZ+t*}`KjSH zIltl9nms|bKA<0t*&KpwzVqm2NB^scjz6A$t@ey9*kJ=K&8l-xPdBU#2bN}HlTFte z|98;ZslKYJ1FgR(_Z|oX(0H}5J5~L$%>fxL0nwuZ?1B7`omFE$AGV`ee7@gq@D;P; z1J*XTAd;|TJiP^LUVuh|Rmnhctsz>=gXt6ZA1MFu{4}73nFf+~1Vh>)R(4a>2IaK-T*aHxn4W;3tWrSSUbsY`6kphWw(o{D>cvZo&pS?G^3w>v zLN|uC#uOnv#p<}RCKcDvf8)nWIg{LkVFOy|V)VUDTd&AJK6Dk#nT897I+X?n9GROT|+Cbjf{(E32K1Ic=Tjkea{LT`-I`)C6dc| zzN+Si&Dz)=K~ShLve#J^Z(q`1QbLTTWe>=igc0ie+d7_igoC7ocqDr~1k zrncgRBzz3!YuikLP)YkOg(8W> z$6*0wg=StGQ1y7|!i-ey0vIhU4(aBl(q6Y~BlnG#n89m>{Y)}F>-94sy2g)Ml=rVG zr)Bes#TlTAipn3TRpu%m_Ho z1&%<-zKSR3M6=A%KVqU^oP$F*Vuma%^M@^ayyrk5OEJgEy=VY{8}VW#lk*ewo}44@ zQ)AZLWRF35iIy$t;zz+Xr)4YRT0Y#h&vZUvzkb)nxpf&^FaFH5e19mj0BEizIdpRg zsk0?h!&9teMDnO%GVN=#DclaIDB!Rflv!U}BM4}M62m*-i>UbqD!akmBTd=<>o+74 z@%SP;q3rZOhZ{DM$c{hUzw>Z8`P`br8)e$FMIyz*O~;j`AVjo#>fpmUKtC^!Q>XNe zUo0ly<0p|JsoRtqefBQOwl9>yaQ(G`sHPJq%>SBy`|||qRYJ9f#DlEyq3zPFwAl6kTT1l*lF|Q{jQ-y{zhNoV%D(r7Co<|0;zHlw?*;#> ztOWpz^xl=o6#XJ6ZHvg@PDWzWAS__7z~7v{_d%KYBOJ8aQ_lFCKa zFXX~DeWlc^Dd;@Njv@IXJgDxeF?i&P#HNP;#DiN#nR29p=YnoB#!KsVm`uN7>0ZtUH94i{Pd9jEPQ{|>@_ z!FJwQp}+=6yzY($G-4c5CDBP}qy-L-Y`w_g5c0MJ$=HjmlCAC-EdiM;zhqX%a)RFP z{G8?wvdsckL?1UH4=V({wh_~)9yK}2BK3>B&y$EFDJzCRBr;EECbey^-x?wN zUs11kvHFZ;e?TzwKZ_Buc9t;J{nTa2PJ%aHC)1nn{Z>oKg^TD4Rg-zntf`jGuy7ph zC;}$E=_Spb^WCp{Ir^yEAqz+a<8yf5(ABTS;zhJT(8aB+=#@HsK3jAW#Pu2`;KvT7 zhmOi=h`8K^8kn9Zc&MftgxoSM4G={0jzw%mwZ-~gA2ToHjMY#xGbOYNrk?i2@Z)jz zK&&=SlBa5WvXSe*^ZUdYpeKz~-;$X;K8q4#jSha4$>oF|rO+J9WfeccCeRhy@bfGcMXX@SB9f1x#y7W=;5Zn1X zN!|lU(5F)-D5Zti0gZWXhI9K)GZJPDiyY7rgir&)TXW%f%E<`GhILExN&d6rN5ED- z3r(I5gjgD23wbWY(7WZlX^A>)03WGkY6G~!haw|(55_yTb z=sLjbLh~|AFw2`O!?YbD@Ur-)K5dh0QtmQ0X)2g-2VR&`E*T9}h_RDeU>KOHbTdU4 zmGAt{%3fELS&(jAtt?2{yKG8EG;h+ffGm=63mx5ZezqA`Pn1a_g#^~-;|=J_{3ZRi z!()K!WCgJj7p1uQqx9kh7cR@C^goNILz`VtWzv=@mYm}HpG8yiY{Z>N`y#)smbB1d zkfrVLe8ufB(NwKMi;}yeO}vof-ZCg`(tupV^7Q@O2fy9ox) z%HZp^?|NkhG2>3a98TFXFekyb?Z5O%z<)eaZ+bnU3pl_wcr8406GwdCI_BZHiiN6RtZ zzYMm&I2@Uy+1O@f10wlB*Tj1L@JUXwVBU+*7GlJt>f0qTRO|16TTg2%9krir@t5BW)r#SaJ3 zj5}I{hjbuI_>qNtxcqvlONYoR{pFMeWV&lzE~%VVG**1>aVbESQmgP79WTA(lXx;1 z24JCpK-;2i$seKVTaW-LCVw?_2pBbAu98&*eK2HT5d>1BG$%(1BlKo>f7Ddd8s(e= zGQLsOaPT+F^;aYg!41Rlebplz#U05Ep_4Vr4sw|{L~vQNAg43Tk6_^A1xd(X3iK-+ z79;a+0^3`({CYO734&s9<_$(AzVxbJSjM}*X3{oW$#`+P?sX^)-=WW>1O~d>0>AY6 zb8GerwTLz+zYX^q1J_>70rPE#$YZALI&EN5!s0x&a9XoCzdGb@1Qs<2m9K#?kX#0VrZy2p-#f9U~fsLFDojURqtv-(Etm6YUt)G6I|oz#{mguceiykYGZANCkPVoGZiwujMF|gIf ze*j#m!HD6Sypc(?jKSrNm6v^z06?^sgnOXw#FfWJyKE}UCAjD`T9vp0`T;sfoljXf zAe|prcwe%1;HBlV`&-k8NZ`(3q2Ara*(W(xk|N_y?uD7(wWccW>0DzMvC2G1_NV5Z z_m^I_lxWO@SVJe27u)Jl5sGYz24FGd?g6;ospnA7;!FS(9SCaXk(hzPwuI>Y%VKW6 z@7RC!)>FQ=AXCZY9ILMElStxPSzJReLDGM!y(m4xz|2D!tC{fm?0(*l*M8rZ5Walh z%hg8?ts=Skt4JlQo3A44jnxY{j;D%;?eBd@{`e$kw?p1Ljxu;}NQWrm=(0N=uC`YU zf29k(?572c^oo+uX`Y>-GM!7=OJXR=v2W)+q<7~tP@cG2y|Sy3uGg)fy1vfMI({cD z4VNwS&)_N{E7>O4F@DH&ur8e99T&9c?CSO_cW zK$SAsKkfvzagn2Cp2CHVhR_!ziGZPjQ-jzN{F<3FH%?i+9JFeDKAB^l?;C|egOqh5 zL$eTp5avOSyy$?|qF7*OWjUa=GPAQsV+w@$?2gm+X@|Eh8DoOI1P#yRekG+;6PKxw zqf9u|>AS3G2j{?YB_Bxi5wgcqYSt+3o@a&2Eta+U$%PN@Ti6rd|8KCn>Ur1~FJTqM zlSx!zzd^Y3Zgl~HQC5G{vBuNR^5M3_Q^5cXFg!(JK$)hLhTO1MctsDdzN+y$1)h_4qJqUOnb4r)V92mZ$*{R?;#J(x$LhZE|%|u<+s(ooz_J+^% zi664pMTDI8uPKV2ZM@~eYs1RZz{a zl-B)ZHtB3HW3%_sr`BG!5ANgjg1kP)ja{{50*!|Kh6Ls|1=WnYZVWM`L>jP&2+EF3 zjL{$YSypvV{!KG5rt2Jv?r=5t?EWA|Ob1AKalG>hWA=|1Mb*H+OJPM~b$yGtpJXpT z9k?O8=(J(|o7I;yJC`L{%#N?wSbbtw|8Q?yh2}qtAB39Vw%(v4Gv2BsM_HeViAT!n z+06}mntwXDw#Vn}ne~E8w)4YVFi=mVi5(Z`D}foXU^0jRG*@7oBPDgSMdr7sKE5lt zeRjB7`8K^ON%m=4-&nRMG#cX3(wl|LeU{!5%@nH=h-~g+ZRN2tS91D1Z*SLw{v?^5 zOkz_@Y(*wKnf949VSz!o(U>iUumtj^XTusPPDKm${fKZp^S$v-;~2<`Z)+*L>T_KO z(3|9S8!=NQhDemEi5Jdm`o;CvWYE?CB#26*xd~zQ3Kk`+&9Ni&+v!_&h!@}$3yR#h zw^da@d#ei`t}M&mRypBV#3OMQ6K42$LHPFbBJGOcSSeeZq>~OkO7rpS5k6R)=<)CI z%gAj90<^Ct``EoIvL}KG%v$d_ecb!$WHF%cFaqH+E{Y&eeiG`;N zeB$}$Ov$0K;EHuAK?C&~`ixjTu>cA0DsEelOt5DUklF3u z2wBnT)v+)0Y95sAE(zY~l$jrD2sQ8oGmG?Jn*z%R<^?4$nq*Wp(#)+0>GqJRxhNeX1ZBk(I zs=o}M3x4hRwFsJ)SvAJVjC=?BZVN8JAY$`90s15_mL1b~bCV0g#@hwm!d4Nagjik< zVb7O!=&eyJzKgd_$X4-JuGkiA=lU4X@=V?=~h7b z9CzvHWp8uq>&`9I4OKIdLL10MfPWA$It& zXMg5%*pkc#j%V&4`R9bKZGL=(ZM|F?k>1SZPXYDk^5a%Ja)YS7carP%yh_}_B7~og zy79@?eDBqBAXG?uG(pNFeS6A@cmlGo=%r|r#8OqA35FkRdiOM1CfCq|138N@i0chq z{7TG;($57MkNh%%AM$(rhyM)G7v05D~{8_wpne9wl>s z@BHdFXmjPmnBLN-I(cT`T`dhLCIGrRfm<0bG^`Dxnjd697nn-QY^3(7T+QG8{?sW( z+TlYbR#(^XpoCrN+#XqdQKSUsQ7xkNs!TDc3K2ShxO6m4*;&I|ewK~R=mJE*$%S7y1 ziz7R0DyeJwfePA+*rE2}c@Mx=#2Hm%-^x2&XRzPsMZt({q)){}Bk!|Z*UV}=Tle>R z&;>hgu$>GfIbb|DOm3%O9qD;wl4Sn1zs^y1sewxk<oX=z<=$Jty3jvE# z3WSY=&m9JJmu*jUI{#^mIjf&|Abg;$C|TYS)9u+8nCPfrnipq`bqO-;Jz~(rUNDHt z5e85HGXGn7*YdfWR^EO`4%sGAr>e$$W5L2A&*%eFQ*9(pWDyg}RQAM>b5S`Uc=)Sme7LOJEPtI1;U9n3YCH`f z^~TG-P!>=}9TtRd&sl)?yiHSj8Z!CAi)Vc3G2Gc5`%}Dq-BFzX$!V%e1khFGfcM5? zC#W3rz;^4V=c`Vot@)jH_Khu#W^H26HxUvNbokMxZvjSm`BpNTaHm)LoKhFYZ&tkRg ziEo1!Hhj5lm(!KxwW{qi_6@Fv{JSuw4{6VNmxx>+toByMR-&m>4)_l)t`}+8tRnL*HI2*(A*D1_1__QTn?qs+8x;f;Y_PyfE z3;(*;X$Kxo%dyr9XC3L`E@SmFGws{n{+?m1s3oHQH;^~p z?c2Y{SfrTX1)>3g`=xOZJpelOcI0UD2=uc*#7l#l|2!tKI+zg{$R3zA(`X;Ghg&P} z&}E!wLcI=1TP<$3Cq*Uk>-fHJnOIQ^x4+ zeBCcRll2M8RgLp(IyqQWuIs@f*{>t82IOd2oQQo7Rus3I{fT;b$ad9_1FFurH~C*H zZs4^%k(kR#Xjmn>2d4Bu-cNatbR^x4VumM~iEWgpY z-dLm}BmhmJ3%QF|TNAVN(7oj5XNmbceA3leRUbOA1Sh05btL4zm7y{qRFxK!cTlkD@ug!tQDyq?( zh2Md04+KVyMT_QU)U1C5qzz}ozpg1LpZYa_?&m8uj;t@C-Cq29J%+_bX=9Z+g)Ntw z*`g*nMbBmw26~j1NrGnI*8G0CG<(@kRaXR{BF|OVNGrCJ`zy3{w=0{GvI= zRz>rU0f2Ht-Z<0nUL{cg5^y@w|A2UcG@@<9>IQdPoLT}fC;uE$z@ zGlC9OVvZsmFo>uD8|$=SNV-G<=*Yz0EjZT&pyv|#ZE%PZHO2E)Ew1LQ9t-N5ZdG@j zu+8oP1MsFrdNW+FXLILO41k8jsaZ9G<;edZd++|2^!@+;+w8E`s&&p~hfUMUX-D&j zR$CVOQqxjPMOs>>gd`>;h*VZvW?JH5dBByYJOHHv3IerNrlzC_BnY@X5Fk(j632a? z`~DlB_vPYG>P0W|l;`ttzuoS)>&-mNf&$p({aU@mXH#C{f?}OL$6e>|N>fg^usT@= z2*@8g6=6fa!`{spjIV-!`So=mFyEorAwD=h{N}WTY#=`s=o&| zcG3m(jQ3fY^<`cWJzJyKe!*8+WJD_2>`5W3I>eE|RsPEoB4j_8tYqiaVDN;h%nY;5 zoW|pEBj+$uK;5qT*aIXngXBLW(s+fqV<6zL5rma{d&(MsIy&=cnqOY9a5^hvS@P?( zbNjh@IGimqfwfR^-T=He>O`EN#JH zA1kR`ovoDA#>#L$=XXd$2Vg*b6k2oXZ`ivB&u5RnF$Na{DZrt`3KU@S{#SCoJUnM@ z0*$03YxGvEcz_N$4ZoXAc?Mkm|NrBg!9h*uoNUOFF1F>t`y)?v>V;;@;P3FSpQ~g= zcnZbDJuRQ%)0^;seDle6INgAv-IH-bv^X1F1%R^CyPP(<1lL9}T_`3XB0FnT0tS?%~#tL1^% zHA)0ZqvgA4fnHaV)|7A;J&a*lB!EP;HD+|U;60~5|5_HIdP2X^=q#rwqISA!r1mNq z6lAoM;zC8@lo4iFLRK(KWvmPFID0w;KJNE?J2PAUYzgPfXhb3_0cH^EXtK-QiKQ$x zu_zvjrgJHcx2so$EE&4hzNdcmp5UPI&$7zbaR^CzpQH&bv5Kw3ZPfIUFi8|VUI^hc zC=t_NCJwcUmku3#7Kp^xj@EvTCX^Hn!*D-It7Kd)Ut9NmEF(i9@oq3HwIgP|m>c%_ zSf^&$eLw5UlXiEj$3ab-tmHp~XwEIJG?d-gr!ag?+8F?w(cGB zKkK|Tlb|l>M;}5TbPBqAJh^BD=93Rv7TMh@DiK85f06UqGetui*4`&(zE=q0825t6;Hbyve zu__JdA+rD#X-uZJ85t0Q?5!s6X}X4I2{*a~+T92x_iBuc8QHLmYBA^BudYg9nMfq2 zcZy*SKaGtNar#MAusg!FHj4YNLtE;neq;f2hDoE@uu!dG6C5kR`Rj3Top500qB#DC zvm<*JE?&6B*ROBtiaF2iS!rh)#JZbJAI=LRp6?0`^-`6G2c>9Jv16wHxC!L>N`de5 z9WVMO@_FLMeOa}+seTjDg2%Ry?D7xaX7j5iF14>za~ilNosa;G1jT|=&nKfG%4U=5;wDaslJ39GB15U-~hjYKX+m z5IU&l7?7jMJANki=TgeSS?-iFb<>bVd6%>iKIJxYd{M|%`8B|cC02hH`jvTKW!2Qm z9y8`7*~?xvq9cE+n=t+a9usp3K4<@=95zecV-n@{v7g596InG7=Qt0a^r2ro#q zbyn*5x>0I;c10{-N>{*C&1pYw%Mk4gJ8MoAH#xe$%Oofpyi)rqO*m=QzYd|mz%~t! z(LP4mykr1|Rd#L))qZ^A6Iaa251Ga>>|;R%~6?u}d^r&Nh?0Xxs_gV=4ZeSiLh?O2+N?LcZL3lwJ z2Im9wR#9|^@qB9sOHwAFb?`r$-y^+FG1tGj)RM0R2jYV>0zP>UcyGASuztLb%*I(Y z_DhLe^(Adi5CFQyQ6#ESNqc$U67K5h>+bl$+m7UjtE%U!2P!ToCd%V=^bB<1aR>gB zY=6Y*E){K<)^83VL1nnSWVhp*3vUz7g}*@hP7o7-?d(Eb;T6SEKi|ft)(#xsoGwGW zO>FKyc>|c6SlhSbm;vGhP`J~9*cZ5i!5>ZJ^GDjt zX4Q4P#!5XW(_OQJ+3iE|YSvTrK!Z@q-y64eq!w4BxS&tiOszVM?@HydYC1Jcl6o|X zSRe|Qs5A|5&jxK>oTS_#aLeV(m+ODMvxJa8np{1XGZ;F|Yyct^L17F#Q*tCa`~|JM zDg%vS8&Ae|lC-Ib3xtIlYqGr4`naf?_nxex+I^(=k4FTHZ~&Hf-u+C$LlH z!kH@Zx$u{>=K*|vJLYrWP>6qW(bwh=go50DZC=W(x|MF-jOyMH3ua=ieGPSRg{+EY zWVgknCR35ee%e#N3IMg(gBzgkKY8(ig?pA(X0>6KGu>niExtel@iOC#)?>f@aA#RI67-z8o10gOq%Niu+AFq%(A zR={_YYvwszq5Yc%FPK_Z4m8`U5vrNQ-~SMoY<1kc=eRvLm5s!IKV;;)Q7BD_T6phU zLZJ!Kih@(Wj7y5+m_@QTcM5)q`&Dw=nb=d9QnWa$7nDOz`{$qNT)ubi_&^<%#wN8| zq?r51c9<%HUaOFl^BzEo@43nx!K3VQb?{99n=m9Zx!&>a*=!-F5r}^Yl6P%pUW zrmXh!9lDH!UG$4QO(xIH@+}-sv)ygqy#v)TN8QBQ0XX2)+8I!C`J&?GGm9NJzHoGK zUQ?Y+DAaEyK?q5f(ke-kMo86)=JUXJ%XV~*l6K$9!j3@T(|H;JOB050o~!x23Fy|W zLM)s_MSx81wL`a?o8GefWpS{C2xT9pvN_9*bfvN#dcL6pmSB+4n~`Bl>lUt$KK0f6 zz*G+CO)xP$rRBw#s+Fp?;a@D4G3skX$QgkG4QTbe(PwKLl24pkUVKA>UhTIKYo3b~ zJU&HnC-LH@MFLC!@SybW8Xe!TOPZ!TgIKF&D@+PyY+8M4+Ma{jDI2erv3QBElYH9G zyYts|D-yq=~uQy8a^Iu<;6UW>S zbg%xRnd~Gn5C{+hhUm#8#0Laty9r-bK_JwRH59n4y502!?Pj5fyMC}=16xlC5>?G~bdBf=2Td7qY;v`^)1n2*>wRbLeY{emm>I~=AE3?E!cz@<$ zW?!R-$)dqhhx39#10}{}QgMWX>6lLEBg%)MhS!eDwUAT`k~c%$enc+QUURXNcr|5duQGdbYN4 z&?K_G2rEa|5K3!CK2}PS%%&Xu_6Gxm{O-%W15Tpgz*O>KwX7f$NKDo;(?AkS0+%Cy zQblLfGHQ4#H;K5SHXP0Bxs&^N_=oS3GxqNo0__Fpr`f&kte;21{a6W|5Gsp23p~~a znltZ8KGut-Vc;Z*LCGi3?|-yXJ%7CRc14KhnBP!9CeajlLi-q(K~v#2(M`8%I$5k~ zuY2BY*$D>bhz$(?$C6m|^2x4VcH9z|A40MWa^IQ9^{mq9G!B6YgFtI3#7BcmTVpJt z!`OoY8r*D0K`K87BEOzvu1$V>xF^}25_r(pb;8gDph>dQ<50QnDD)f-jgfJ?k`NO5 z0hahEJ66pPrZ$mTZ>$a9K3`e7s>@Nf^{U))iSxBAVh>+;X&#X(gHU7;Y0WS4&&ba1 zwrcH{1gvCU_Idr@Zt){WqxsSiCaqEm40Z{s@sq?m!MMSLjkNG9 zn2#0`>U$SSP4}Uf#Z}ibc`n3E?%b=m{h{jD;b+FsDuh?%n9`%6O(II{Ypi04upbTL zR?YDr_q8`KoLDq*-?`{oD#xS>ou9!$B%MaAm8=zFWw8M?e!2D`YwEGF3aG-?SjTpp z$X{_2J~WbboBQd0rfm;yFua?155^c#S^6z93V!JP!SQa_O8Bgy9ly@zW0F1F*SJ`J zA`bD^_w`EOp-4c*Q0Xc+tJ9k5jPWQIgDQ+d8|?qbiNNaUV`SeFaQkO?-_|l zr(1R`xZ`B{qj{n@+Mjs%Maz5?GQ2V)vbE{Ko}$&heOyAz5(H?$9L1`!C6V>i_G?`nwnELMR(ujc6}o; zuUNXI8h?9DJ(1BLiOr2=>2a)F?W6i8x6+*15%^f^KuZ{3By@>=k#pwhKi3lFkAnAZ zBTm+y)C1npE;UGafyPIvRrtN9;5*$n*Eelo4tpbNYE5Gm+d6$hFQ0ViNLlBw8hKi- zpAE>2+V$Wjbtb$XuoMQ4qD@kZ!8tm76giUScX7OoR-nMrbu4LH$;HWb`0wk_J*Q!A zsqaZ^z>3E26&K`H(6d`O(6^XZD}CpgN;0lw?{)*(LgfKZ%bW24sNDD=uS8oo|i5w2_-SPowmE;pvj_K5ti1r$G7vYAoo z2k=fZ()--$l^nt_)cV3VWM3Q-tneDat&xS%TP2`^M}HkZz2p9d$!*rYadQfum>KUX zCs^b9L7Jl_%rr9@aQCm7wx=?L+Drl66Nr6E=S(&oG)IoQ7gE&mJm+55+$_(FnX-Px~MfOzG+Ez zdppn?Mu8q!ecNq)ic^fo?UO_PsQ^jPDL664Jp&s$F31?NX{?>lPe%fEr3CzH7M~ig zYD%(PIyA7?ahGqPWAC;Jqe`fFKgDB&Tf~5zDby%gxvx?;47O&XW-ul(*}~RhpVbGf z?tgUfhA-D)l0aM$nRmPSjEB#ln=Mzb;4v3cc4OiPT7^j>6kCYPeZ6seKUwm32J%ls z#^sfXaylpCP?OrFH8z};p{XU>{%cukata@OLf=Rqgi+7quprFSD_!3dgnixDcOlkc zfl!riu$sHNz$}Wm3Tsfo_0~Jh5eOroxI%IOenm{SFf51_a%udaP4gQ%Vxz8af>4db z@F}Q43mp+IHmI8N=!%Ec*6>&LVp%F#2z1$U zGkeR`enIexQ~VmyoJJ1?C59ok%=$ldwcM{G)`=<8+VFl%C%;XN+XRDntAvfD>=m$( zp&=1$zLucF+HrLy@0~A&IIIqHt}fH-&2pV0&Z%G22OX$GvG`Ip5z~5y3{A%pXh5)%J-)gKW~y&~?w zQal;i)+9rHdvRvK;RVm1_bspe`=a@}RvY8g7qTHO%gvxrmPvrXsA-Kymn`87aM8(h zsTsz^@4HDm{-U7zEa6%2DPGNh3eQVIo2KVjjC$VE}ZUTs}MZ9eF zz8(_ABu8%DlW6@LbZpy{&e{>PG;3$P5u)A#&jvau$L~@%xRdJt!II$o2CDYFM0@Tg zE!z3kf;r^Dsp>4@+*FZ$hFXmEW~&j?4Lt&e_Okq51BpyUa`15!{rpbw!kY_4Sv-!@ zEFirEXNfusA6MmN7*!^t;Rg>aH^pvj()S}D^)34Pxg&1|K)?0PZ)x(*WC)ZRZ5%@l zq=5||``{dG$dr+nAqYR?r7>FGMC55^le01wJ$?V$SGfrk$;r!lELDTz!-IPvq+tXa z@dL!xIwqFL2J#BTnvgm6<(D1nmUn%-kM24tba8U8CHp<;4QtReA1E{4Ra){Q*>w>^ z(U|RCv6Q^?@{ej`#=fvy55fY|k54$h`xZVODShGOB4nNV@xyE*-`F8bklJ=n;{qHJ zB~j3|`m!=IJzkZ1!IsOAui5lZ=#!-G*O9m}#WifIj?7Lw3JIW(%%iYpAQB*M@$uK7 zm<@yLr!!(wQ$+M3h0TuQ`Avkx{!d+4_?4dnVNUMk=bm5WFsb5y-=5e`oyG!h!UPD1 z+!*nlJT#n9U`eZs%cE!o+LPYu`P-`|eN9iZ$~U9rAUxMw<{a{DhD~o5!r^!*TRW4* zh{6oCRTi)~l-;{~w@+UEgC@0MvK7FEHCM;A9$`qpt$LyDTv_sDgNuEyNxEN8f}h1Cfi5hBlj9jYke zt@8^$<6mqJvAnderFIDeR~;A$+dSBFbo%MBbFrH`524E5K=&*!yu5hn^Q%4VqJ#Td ze@moB&y)oyWoM4n-IbtJa$ZI1{(DFBd$)(O-x0oeh{3+}PyOaDP+Vm=D5Z zQDF4$`IR?g77I1vrU_(s(mbXCJ3ogOHo;fS{T=DNy63Zat5D}oO@BRQ3wLAC^-(E;--cxDc4v~z-LEU1IAH?MU$ zID9>e1byMMR_rpyVaBMYY^MEwP%%7som@tFtNN+!wbbUe-Vl>wYIbb7RdebjlQ=s7LNzs3TGd6)bnG z8{2}Ovp+;3#f@x)!QM0Y#q-b$N1YvC%)!5YG|;G}bA>`4>eR1!G!tMKPFQ<}yWw!= zMR9fR%Q;^?H`B_^B>tyJARr`8l9a-3>}lEAN2@NOo9uZ>@j$4}ahIPJyQ1k6@Dx=w z>xAKGHbW--JhzYkNXp)wo^ZB^0x%{M_G5Rb z|05Qy7wYj9knpRX#x--*Yl@og`P31uG7TvqfRfS->}78>lS2S>1UmQ*}%k|-3-;Djplpqtg87D%obKEhrseZJ9*Db(4I z38_DiwK7p!6_6&y1l8oKv49%_!2s#zm6Gk?H%d@eG395oLHX@L;X!5)(1c;#U>a{V zGSd_yNv)xqvb-bZe1!k}P=NjC_a8cdR12xq1l0lO%a{vfL;P+JF_aBJgjn}3o(**H zzZ_IA{|{0!l%8S~$fihN#%wcpLj3zYiAr%AoKl2OT-E_$ySE-_Q z-GPj;07R$QzVb;B8dcH}HH|x;Cox9Yc8>~+1bdqEb&kZ4!@ZZ6ED0oH?B0bcc3{^-?&?hQRHX+H7GF zx{kCYBU~!+XEOD;!Bt-^AZ~v1hKqReaj&>`px~C9hWKCx1%cx?>u>pihmVc z(Tb(x`1h7!&zyhX($KqHQ@7EEUDZ4J;7osJ@&53p3soZEyW?&1Yb5Lz_4W?9OpXt* zO+UCWa8DUiyzn4$fwp%`UG-<}2#6#$653e|DDWPE7!P#7eOd^yAFD(_SGO6xyZ4)G z&mEc5$~xn6^t+MQ{k6Z+tyynF*FEsO5n zFj71Xh=G4w?}Eh@VcR)zBcgO*Rto!6wO6 zzE6*38Egoal=Dfe@#==gO4&HT@s{ zIA1;G%X|f@r|@7LFN&Ep;NY-Vc<*JCuNCY})CVM~a8xy3H@CJ%O=_D5_|b1mH`f&f z{rY-O=8YARoJ?t1h0j5NoUz$++=NS_%x`jm9=UA;qF$Z^LK@HPU^_0ut-UwtXUi_Aso zKMG+vGV6=cIAnsVQ5)uNM?E{REB=smOGH*-5y;QgFuxfWzEiQu9S#(`;^rl0me>2> zoC9U1x~6am)xfT>^!~JMOO|d5Gf{GEqr3=6QnC^owu=U!I;PGrT3*wD^;vetQ#Lej zfZjp+rhaoe^_$SkSm#vtrndn_R6?n9nF!qx$0otgbBG-5DBPo!ltK_Dh+}kdsxK$}no{Kot>y8feyr6v2)F=ch-;7!tXfQElgjc8JcxvqE@iTDR`lA8B4EdeA zd$rs>zxL3|rqNqRUF-Q|GjPKqlb1*VlhAl20_r@1b7Weo& z)BJUXgfBDARD7m{6w4)XNWX*Y$wakMR*Aw`=|72&Y`^69P5s=Vsc*4JY%+0w-^^q9 zD+q*nu}YStnYXa~E1&rJz^ziHWy~;4$DL_6L+Ud<+NOV>%2$mOimo|tsT=9GKXV(; zfqS4;V;)vRN8YWW>XDg~1s?@;eG=Lbt{AU>@}&4T-<5O8!9M?c7L+f0UyIABo?hme zm<`RVRN;e}13{^SgX{GLEVU8A#C94ugW#EzMSa`$F5C-Rsn}*HjI=r|`fC z6<@C!&B)3KbbIK&bR zi7q9R3H;U^1ZspIoM13)Up2if>smjM0owSYcVlqvr4zNs+G@;@1WqiGQ)H7%;{(pf zVp7-3CV}xy>EyC;qHv4pzU)=*h9Y`87v?D)Wc7;gqz|6L(B@*&WghLnUR=D$%D zjn)Ohj{=CDvu(Enq4?|ytZ|z~PHEV#1tRX421$--o<2yMyvmLn*d5D*R+Q;+ zy<7j7L^({~amam%+*_2XRea1@O_egFgG?q=qX01V72XjK3QMo(I(P{r{Bpy0>*0T{ z2K)A&Tlv2%p*ttTdSbR_ie?f1Ba>(PMaGKTlXQqv)}9`L?M_r8<64&R(Z|ej;|ncU z$cn!i4{xB|p@2jkEVDZYa>dJY5XqD^q3BGE9W?Mq*4&%RX!Y5gvuz9d0gwChSwLk3 zLnxUSKNzTF4KKnn%h}MyudKWr?>ZqAm7vl?Z9Z`$mh2Q2tl|W+<*K1?YqrpJ!dVBb z_YggT(5cuYI|*7}TgFs@!T1`{=&mk|2jCxx}F72 zIyzXc8w})}b8FH7e20`lt1S|%SeByDsGd4(14>X4t7U18*8Y1--iA!xIP6;Twabm; zeIV|WSJAasD5P>DyWeaA;V_R_YtQe5dHS=qqnX-&9hN+M1Y2M8ru12`ByV4)DVfI+ z77Vqif^YX*I%&`#RyMS}a>vmptx|<9JODN##8*T&ygm5$@5{bBQ+?2H~5P_Iyu{g6odg_`bll2M7>1Eo^IE}l9*jDF*I?vTSmd9C~!#*DfC zDno2MnbxJT(u55LgKkg!fqMH|Ls+X;Wt12^ALhR4Y2SCu;RZ4Rg!?jq6~uO$$RmhK zK?447gEzC(MS%QbDrqkw3s7P*r|8r5&OJXIigjF&v;F!MvFE!;=h%YqJ|ycr8aqoF zzSL=AJ~*F^9S9MSq=J7Pyp`eK?>+M9DcZ3ZnmfO731#z8Kr_rMHLt}oKOzB$o|r$w zX=VKCgt)N)n~_>xrN)*#rc}Oo|5ToKa+rI>Pa*W}GmoZ!sEozK;IWKg!02Tms7Uwi z+JOEbW2`_MTg7JhoJT~1uA{B5DgucQldJCsKMekjl=ha~IgNk_1S$lC%vddG5%7-U zh3wip+3?8)ncL0|=)RphokczUDMzaquY5I1m>C&i7vr-HX-WMeky)d~woXUvt=Koi zZf%Jq5jcGsvuG;q`tDWbNo=UE@8k@K>&_b?NqBVcdV0AGZ5XjFZD$KBfl5&ZYHW98 znEq0EL|C4-ZxhnNX^F#Rvog|ESNzu_PwGq$6)on5S6IJemMiCG1kk(UumqldwbQB) zSLh$kQ!Bu|l5y@-nXVAUYqX~C2cLL||0v(n z{M!HW--LW(6Ag*|(7n!SR|_&Dn$MJ_K4yGmRssd*Ss5C&4+SP}m#`>bW`g7={t9&L zS{)#F3B+uPghm*6n>QKBdYN2mxo;?DV%@5M{GpUG{pT;P_o}qtrsV$S{L_Kzf3i2g zSC5Fq5NMSi@(mN6%MF8JLjks@IHPX0o9FH6-!`5*>R27wiqT@UT z(j@fwP+GGeIN+mLqJsG_adtGjjrLQR+mvU|11j#0g2xG*!pHv>8z{BJQl~R0l!4DO z(xCf>tvOv!L>g@Zo5=aG_1KRAUuE4sVd3;Fm@xi2dO0GmEGixB{Wwh|#n=PPgj5YV zE~oKBMQR7T-y%^fLsu1i8goQPEO=qMI*T#Pt412FBp}^sRN!XKY!;$*DafTgeJ4pA zhj<7!SaBG_SIWbZXZxJMFXYbj&(88seTJFx;)I>xMj{CUjiItoILyuSu6iR&dd9mw zj#bHHi>>sKQlK2>xzmNf57{rZ%9ukONOKhx<4s$Q4tz0Ds8{3o&`7?mop1#k6v5++S^8$H=kPD}F;ha>P` zK)v;$hf~iXgOUmkEt#2kAXe34keGU^RFStS$7=tSST2!jK7;Alq}^n#xohe+yr@4I z)%#6vTEOk&3u_t26@ZR$s{6HqH3`$gK=V?rZ~$92xC^5ig!RGdlQd#>B`HoCx5{tR zUxeba>u>z}UbqyoI29z_Ym3qV$y3W@&HJK_5W72;go~LS$z$nL3V3eFdinM0>Qrk8 zE~snW?(%r4SXPIZf3bal)wOr9XcqHFJ2dB~%Q@oPNBnPRM67i#%F^~8iG+qm*KV&7 zM`JFUY5??-O86uI=xMEbSZ^H8!FbG@vXlS%_%>+%nBS#l$C@!)$Ymhu+FAy5M&zZ@ zIB}HL@OjsgIEE2IW)EOZ!2!@n$Z<)D&#LnAw?1bdbRV01K8wRn_Vn-U-(9XsI7q`& z^u{rt!2#)BOj9<>h}&(C(`{*il=}U8%f0&AzKF#U$C7dab+Z>Mb`_PwSuy0Ya?Wq( zIntz-AWB?ahDc9uio^fW+~aX+=+jll2SO*1X%-hr@{5lhju+86Seb4yX&P4}VgM`3 z{52n<&zw(<#u!{vxAaUITn)~n9}NXFp_ZH+6&4c=1fa(u-IcL-fn+>3jV>Sm%Y zpDyq3*>a1qdSz}A>x(sgyH6Celk^GLbR)<*p6keR-^BvTLww3J??_i!p^7@7k| z)Md|?GTk@l=rs{bHOJh&6Z<@X!XS|ZXX^n@Qw2-e7n_sP0uCCd)l>qkFL-Z>mjXJl z>2V@W;GBHps+x#jAgzXWb+);yiA+KPMX`yvo+`Yj?ne1-&C zgK?z-yTabM-3?V%FZhr~whME{5IWDqC?#}AC#GbEPe_0CZP(ZP79`71V7;Sz(@9lS zdO_R_3Jqt)R!}Rra4+xZksi{cL%+E$12bbV*mJ9a-1f(|JLttbT@FgVEJ@eL zz?*aABv3SgQIOGRz)4wcoOQ}(W#xzuKj7oY7%K=t`Qw(m*8*tPn-`n9P0ZwOm5jWL zcLTr`7!)MHuX>$)p@u4i9yE_>@!JKHkSykox`o92vV}m4jlaG7Q2?`{Rf`i_gD~a_ z-@o>PyLU1{MhhdyY&cZ0|7GH9hqzsS4xfuwf)-3Ragug2PE@?QV1Prpa2_g;b#!TH z?N6pEFgQC3E1lMK;w4DuKo@ z;ekIN%P#Ob^1vchxY23)81?q)^=H@OpQ&p9b%@39k4x>ZJ>UuJB=$&)*;00c?06&T zN)>`FE1txeyTjYN7r6FMWWQdjxXyE@EKF5JIfeS2R2kp%ro)nPpLjp;AUH=3j>#x+;ZXt@>f_TZaYh z4!%yWSLWWpQvwTUqYW*R*3Q~KNgmGfP3|)qeI|bFAb~ESQni%Io4tF74sR+N+4B`a z>{z&U4!4U?FbqRru`Hvi3C_0c-9EsV?ovzW8Cr%6+I_vVD|^?fPu-rqj>N7>SGll> z6c@NV?;;ycwp+7OX+M3}ap&pMxte7wZp!oD z=zHTOF_9@WS|wAj;>8#rA`g@aJu)*qT4Aw7OF&~q*u!?kSl_aNlpP;K&fB&(F?CC0HnzX>r!`(Ws-juF@R*-30L@ji% zh0`;BT=e$p6iRVjyiqRe)!>$u*PYx|` zkT2oneui{D^WHX2ywj=035l&xr4ch1xpJw`fs)|^dNtoi09Zo%gQG^SNU#yWqM2nA z?&SYiw~qrQ4d=j*%iW{fHm5}Iy{(@&Te>b?x-hwe4em{I<3%!rNp=h|$Y=NIvhA*f zh)>PfP|r&rcpPu_1u_p3^(EK>gxp^ETo`%X^x0)XQe6?Bbb&eA6a3A3BA4L8YI)*z zIwyF?qWfr%YRtMPQEz`uYxp)S9_(5dC6(waPIYo7GADFDMI=P~UV70TH8b6G2Y)^Q zC^@H@Phq@U34G4qlCb}=Ms~YB8}*!~b<-czmG6vtz<>A8^=}uv@t%8M{a@#D>iRNK zH~`+AU#kph%X!R;glyL1fJ)c?b^ZTWy8QoACinkx==vk_q8hGA8?#Y|$xi7{_lTny zY&lhegWC(HvxxcD|2BHKuKL$2BknfgRd01lJ~Cra{24DaG}>O*G$tbk6x@GC^RjvU z!oRApbRHcltm8oZ8r-B642d1Mk5b4ah4_7%WM5FekobqSAB*;8#6x0-l^@UbtrI%FZST+=6NUxYae1j}zc$@) zOm=qI=f5?{nr*N$BKN0DeDW|d`!b8=o|_c#WJXo9ou9f~SG-?%1@JIydrhahJ=Zg! zYzBv=lH;6mnGmDw=$sA#_5PS0OT%a1D8hWM9S~BWO@fXLjS$;oWMt!kxg=q>Oth2$~fY0YmF16O*o%>s(Tbq>9Nz$RD%RIP$zym@(BzL95WyLMA8UE>B8i;JVh5gKj?tcRu}eBb+cap4xwRFJ#mS1R zyugZ9My&8Ed0t^mdR@BrNi0|D7lF-sk$C0J1R$R~j}vR%o1lYQ`*~z<#VIMh0CI&7 z2(3~X>TS34*>$f^YCaDwbu5W|q#cahk7iR4DqWm7Ga%riEM%4pq~IlNi*?|^>!lN^ zbSG}$WbI3NbzV$$y|y)tO_l_~IS~!)7#d5gQa$$m6Tf3y3~;QKS5K@dt^ggMx-Q(( zbwET^(`wYi=_9IC{zoZeeq>FW>I$8|9VaapLU!wH8-h zl7o+>%@=9bT&d0c-4qSpIA2sCNeH7v42g|DT?)8=o!~Td?9uDPDuCr@o(zl*1ADcz zDO`$##{N@;M8}0Ev~UcmVs0~L{|}oSFTF7RcIfKl#v!cHAb0oPck|>7eLu}25^Br_ z-c)?G@<79}i$vyVkp z;MT-R?JOx>_bjzv)+xUxK4gt_;mC)u=Sra-nHcb^{%{qKPrjy+yQdJqEOdr)$VOru zn7pwgKV#r{&Y_T;$r-;F#@Bmb?$N+xJ@?WB>4qUY_XAE^kqbEF_E%2dmURN`odSJec@hR_lPr`cU^LLth6R4lJ}C z^W#oNHvkcVY#MDCRHGfs`DRt=wCiI-c`<61s--b-uktsol;E@P zI=~QQ1E-oACzWA!tga)TW4farAs#SAPLL5zl~xD_%m2Bt(=|1CSAG|Ki58z^yE?Qo z!=>^>0U9o5VsgarAiY5d1UV}hBO%+HZ7} zR_upM)dtl7P-Da7-#XS(Oe|81;S6AoGlx8QmYSRD{M~+?qjLWc@VrUPYS2gN*o-kT z@IIcfO7yoHi{|ln*>-5~!?Qo%Xt)h_dZEadiB&Qe$^pM5wK)K7%I3UvX&DwvdEp5% zD3?s%e*FElYspz#xu$BlX$`THMDam%<6o?+B9z~2pu`{s-aeb^zK>ANl@F~opS@m$ z8;YcKzb$VOGohzsgMbsQ+eB6K1oMbkjZtr*dOs@gPPq{9dsGbzxlm2~{HcFgv=^Ph!0c{_t@sHoCO&9>>f%~c*NrHkFS6}7~Hj)k~)tE=!iLYN?-33MsMJ#xY@yR=``hr{z-Cv`H z0W?p_9KN}9ef!BIbxABdh|ZGC)|Ru;KOJ3gu4VBY^7!ViH)bD76DK|b?2h^Xu+jhw z>?INJvnEn^h3_haz_Ho!cGhy&)jyp-a?6p(Ie1(Xf!wzz>-{H;0N$t(W0>N9sI~(V zI2PEl*=4NCZ4ccGq_?3>MwZXBbpGRT%C<{|MXaok`~P(iyii9)g+^EW7#SIZ&GY2E z%Bffp;}sX+Ms2qymf6E_K3lzngdJVSdN1YHH7@YAa^im&ghN@ISQIT#Va=o?9_~L8 zk-m>53zPcO3>X%c6E*C5M($boWb2hV0RJFgIN9Krm5@?}hSPYwFcb!8q3$mTr!wq`M#FDoT3-4cba_V(OaZTQd@1|$qjarxrJqM*U2M$F=CiF2qGRiB4VU*fq zqDc~I_|E>zt<_JIIj@&o%IgGEKXGzcoAgYqN^Ty{EkO(^?Nt&sL)(N+k96Iu9dB8? zcS!~kwd&eo`9j_3=fTj@Sp&Qt*lPjeBwlo$VQooIo8-?*z++LIXK^;k1Q*Z!@AyF* z|J=sh=U!KneruLX8&8&f(B@qrXry%f?j)P{%ImMAGv!ZC*=Z2h^@I9}**tR;5*qb~rDnXnfaj$9>%JIx^@v(KeXs zUyc^U0gnQ>H$Z7`PT$wlfLqPJm$s!}qfN4C0=FGPm0Sid*}{6JE!xk;Bo4tLNLd*0 zn(l@y98atYHS&O8#N^?!g$Cx+t0v4UrJq)%;+c5uJd{L>!zkDkiflY0UaA2UI6DS7 z&g_HML`ab@clPzYnWQAKfqTNc$qv|gTqk1FdLQOsv|>snC$m=umbDlmbm`D;nY_lVVOml zZzilP-0_AyWfXgkj_}MjV0I^z0^MmIL)E<4n`N^UoIg23O9?A4A3nYG+ut4fM9Y@A zCO_!fl4He~hu;!1GfS(+uEfRho7(emm!KWdga}1v6+Fqv(o%5v3BslWu3!J2+lbyX zupacgBN;P=cGWjWBZqs-bn(O3?ei2|?NLg(ajQoUA>O)cmvX=)tf3l&{Lk^XHpRQG z%xC;>;(B!oE&#aB#IlGwdvK_~U~AkG=E%XL|qt zzfPT;I(<2P&!I2pAW2lpw?tpgiEt2MF{4u?);5MMn@wL%bt+MW(=ZiUzHBROW3#PJ zMF=tM*lcrRX4bZ{&Dz)VdA|OR&-+IgE|)#oJfHW+{dT)uZ&)r1z!@<1y@*RK`SlR2 z=j7%T;t`jsbB=ZcDsBF{#jR zng8n6v1Qwg`JjP#q#UFZ&MYv|~!eCS5LNX@C4keJsUZu?k|r3op0;YwMFYb)+{3=17~k`~&{npD$mDBapZw zTSC-CU3AF|6SrrF(WRaRjQpUb6hbE~N9z8m0)LlNO?{Ex{Lt>|a}h1XnUlDcop;ur zNMvKrH+F?Ua3qCPUT^s}&Bb=Jz!Sa(4Gg}#q(;5w)9Q0OkDvYC)fY7DdBTN`f4D8; zNfor4z?YVU^!VU5)$~cp*T&}sa@QS(5;RIaU4xd)ge*k={3@~CY0Z`Pw5Ps3No?N( zZ0Z5veS=B{8~?M}WZo7e-8iv6L7E`PvOzxkd5}2ZthVpR(XM5u?)fbBn?3wT=F+2E z3LNHoF;DDqlu>QOgW1W8jWu<^UK~(oT-PyW0@>{ow6wmng`~Ei_aeY@eyo%d&8^c;);UJ!80X>>DL-$qS2Lnl1MaN$ zEy4M+wZc*vEd4Wyf#4T>br+x*I~v}asMJdKCzHPjqDM;@MWS;d$xt_G;&nC8A0?9% z=IRvh=0Y_jC+*n5rv$cMNUhYl2UV*mq$PB8x;%%*DA2fypR9fQ!;$S@uJPo9r-(-f z$q-wY_w^f?=t%2oiY56`qgy&u+|LE!O;j(sur=WK-T1R%E6xQRv{qjl$eUq$3}ZYX zr}$v&L5pQ0+gTjm+b>~Euq3cBD#Ba&8tF0WH`p7Qztw_Vq@!F4^&Tai*Us_5q*1+g z*Ltb%Gyf330M#cJ`;-Vl7u*Yhx3r(!yw>w{NyMiVt-7YW2s`$op~vS-5KTuArd0?M;!bug7nOzdtW{^17JMY2B{mCY;x$e+q z?Yr)VxJkmixO+MofWLVq((fms-DGKdqpaw=srf_1iJ3op=MlelO$TU|#< zx^lL==r!0Lc24rgSCrg%O}lmUK1W;&bNq5~k-WLkK~&UvRY z1CbF2){aG3(EOwY_lt0kSi#Q1%1e$*t`H4dOvR564L8N@Z9%r+PVssDffnP!(6MMe zy^WcxZAqtUei4sd0l$JEFwCw`~W;}%N< z)q`oe`HlmwKL)-1%U>%j{Osp6oulrS_J=)CZ$k~u0Jm=#469bmt|{9&?u8Ofi#{2h zYsJ7xc|Y79YyXVD`_IXxj!wv6>KEkxD<6tT9C&9#Z_+dYeLJ6FFpui_zlwVEOG6F- z!lRHNvQO?E)t%23*Q~H<%XV{EvD4P+MNdHcE0>z5d5xq$%YxHZ+GA-?KnWhj#^>a% zY4!p3oW|Z=JvwwjF=XM7Hz$7|3Yj>4?L(%`fT#ELm#f)>r(!pu1f^Ve#^{`orejm8 zhj*Nuz8b39AAVE^HyOA9%C%|zqIhA^(n-=|zn8YeBZv1bHcl%1=ub+qZF)RYUm%+c zc7I~bC{t1hY`%Ep{~F$PEs__m89~dQVxu-WO~5elp5Y;NIzyd#Sg-=>Sh)RJSTWM8U8Vo%|u! z3?(ihve#11xybfEx=VGY_wC+#%%*LBi@v^`^P4I?{dV+@G~8DM#f>D#n00uzcwypz z6hEC}5mI0nAtFGJugglzyRi01%gW|&N=1Ke&+09*S`HGN!+R4yAPXr}=dm6JHHqb~ zc(#im0dvtww-E0ufpfTFZhMMNe*4*o$b9e2*Au8I-^0~m)je~9S*9ol(a)w@&k`aK zA4R@^btXADZ8SNF1^;BEeEgFfZHbC{HAbcY+-Jo^Rrn!e@4XrwZ^v4U*w)AtDBqJ=Vt@vr)k-=^6AOotEY=PW($6)$&T7Z4jm$?>d`y2oFx0 z;6zdJ_mrT96+sLG_rc6)`Ju}}Qd{YCYEW1jz!F@dmk092841wQ4AlZO8HDe{RyeC( zSDdD$nfayTlsmPUj571wUwz-yw?y_2g!mrP7^Fqn#Ys$!e^WhlzFtW0gZCA5_B`tf z=^Dd?s(OD+GODL5KK|8pGkw=-hs(k%4rxw>X?EJJmbnK4vC-f8D@4c0)!)|ZYw_V_ zV=bDo0Y28saQGSd$K${x8>H_9Mms0MZ1uk#fi9V$@j442`4U}2*0s`MfdtgT7@vnN z82)@a^y|gR8z)g!zsJlsV`V%Ze@Nh25x9V@Q%O!6>Jhw-weYzRuU@5!iwRGX3v035 zukNkeI+x!qzxWMy<%G=7sW8`t7AxJ!fWCzQwinE34p+R)mDS%yGezd+!sQY`X_=%w zSoCw+%=vC#8(2UKa?#-=*Wh6Lw@naW^+SqOv@7dkQYOv~vBV~h05)p8e4X)a^fDnU z@9>VS(rZfI$k0GX$|pUItcFVZ0UzQjKfh!1FgAOnqgq^p9aRkd0o^_Pd*;#UhJb>_ z65$s`KV)R>s0fnImL$WQblj%d;Mag{ zWK$_FiIJhERN!)*Vy?eB_uAoeh>Hu)&K8*UE$ODdMizabPlk9)(u_?pSTd3S1t!!8 z%liDXxP97V;@|*^dI858$!&0L2uxYf7rf?I0Ht(4Ilbdz7hm#w z<=^@tjdOG`F&5bc-eKWCy**%TV~C8B_xY+gklcxi$W0o=(eM{fEkRzLZrTV3**v&7 z|JqSS1hAI`+JT8v`n))kt1~Yg!Nb|}qVcZcekAF=c=&EJISnfw9C_@trj8TmQ`jJq zEJ?e(dU1zVtE27U5qLOn1%;gd2O(=_mQs%e4($wm-iwvhtcKLmt7aKRJh>vZ7~V+? zIp8<=Fu2U64=ZnGbtI=@MG`#gMNo9QGj$IL8>lv*xL8agIpE2S`LQFt2RCXDO%r8A z3{ms~w7jGh?qNw{DHZ2+;cc`X`wA=331Ycd(_Jkd3{K@RUPOeQvJ`L4dzoWNDoktLp!I4&396Q=`$&^OA6U(5aJAi4<6G@1edJ0KPoLHtQ8o z+29iA;s={=>=J^neMqZG))2&N;cf(dh)A!KOTd!(9SJ+3Z3(3u21|6Y;v-FS+>d<9 znKNHivTS>ywF;vryN-lBEpMvL7#u>3-{0vK5)XCX!zN%zh9_H5Ap55-Z} zx_qZi7U&bN^;97!Wvo)4pdhm>Z+ac(@A@WJl+UwRObF0PuO9BY$ULViT?Sw%EkNYl z>f%sz$%P=;@Hn;K1#6;$<(#G@z2cu+$9?SfTo3K-pBrxF4MMES_&b3_l;O_SZ_J$z zDn!9Wlx}lCQ_F_v;ponKbvn6(BNAB^-2JX@j15gQTsKhq1+|o8+FX1=QF`O0eO2~| z!~J)Y|JhW5(hjDBanyPpuzh?j(fyn_umH(BWl(e2oXC-$a#x>qMQ@88zLfIq)P^Zu z(O)6XKz?5#L`1y1O<->ot3+D#KlM%}KfOD&b#>CwfujK}*)`j+h2&(;Mop0~Ha)!vl zH|H9vE>#8W{>?8V$U`m?&ojW1+$I>5J=nWih_Ei3dSw2sWrVZcyt9SDGoNxmiZXum zV(!k&*u4l{B8su8SlP34FM#-SDqo-m+l7sPbbk*V;$scm8wfCING1OCSq^$LO^cmS zq|TR@>q$4mwGu)VTH5m99Bnw{KN~;1`{x_%N%ndDFJG3{WRoQS3_7hln!T=T?#qkl z?=n|MS;O5}*t!TW*ZzB`xBXm2Z5M%z}%Gm+=BUC)yPIJA5ip`%M;-cBTK7`Kf@Vhdm1hxk=T_hvtL=ku`x^gEdQM34ELf4Uf=j_)n`jHBYCn_ElXe z#Nn%rGR0VhS6M~1+ENh5ABbkX5R9k4{MH$B?u+s&)?|{E_DA}&AZx8{R_Y8TI)aZ| z7xsmPCx~(tGJeA8$%f^77X^+FZuw%xeunzE`>?gNv6^xL|}Ztex!oFyaUSI74TCjEiLUQ>*q2MY=k zWHU%CE5ou0w?!?{btEpJ0CbMDN&KHpwm11-_@=Gn>MG5kVPK~|nk^i~uVw_ZnO2{l zC(`^v0_f^ittO895&HUv%}ch_9xBRHR9P@-FU&JYj!>>CxY3Xd8IP~2Rr&1i89HvW+&y-Vz6Fgz_aAI2*Nl^0>NAS4M5!a{LY)vB$BPe)`P|Z z;~?e+P_Uz*-Us`n5UF4hls6{%+)to?uF7OHCov0y^rMO*YndmeJ{M5yH&(LoDl7IX zL%_i1iE`%oYDN(B*SgD(GX1nJ9WF)LLcc*pJY6LOnz^aRo~6vOrXKu0GN4G91D^TPgR zhQ_7mB7zI{ydLIzoxMDn=4-g*2*(h8Wt{8}X!S`c8VW_}4I-m_Xr)sfQ^iZdinIwj z$>SFeHtkE!Y&g04;+fLHb5&M9^=Z1YmcwMtiHQVZy_leY<&I{1GdR^TZDCUByjS$7 z%_2M!w0pd_D9-_Hv*xr3gzm>C^_q;-9meGM8SeGy1u}^Mz*BN14VmDe%pg3hcEyB8 zI0M?(j?Yxj3^5^fl*)8OwNV57aV@ic33m%p}xP_T&tEXemwnr zuwg5)Y!i~ziY!Q1BEn(DTStK|IXPCOz|x=>`L&!+M6ocZX6IBucc3WXk_G!C$s@K& zf-WF3T9{*&z;mr=6q|-k9*krge|#c37dKJ2)-3b&o!y%^fbY-&Vpzr)6T~)&O#x() zUUlF>T~%ETD@P}3fn#u?4_wpfy>4p)*9H9XvBX zJiv>OBR4z3mE-5G+5!bpOLBoEK3QA>2dokW?Nb;( z9|XSlv?LO%GAVHGbLt%a$%r8|=yq{sD+WfLlk`eW*t5f%C!Bsi(IdNGlnD%ZSRzLD zLAI+rB4Zww4zIuyQ4$z!skn(EPX?D-9^Ux86#x6pfD^JCh$E{o z$nZ$-{x(WAf38CJ^z}@7!?A@ZDK-~O1>w-zi|h@pZnl*xHm@Yv*%W>b!t7IgFd{Sj zc=-)L5?)PVBVbnCR_2C?&w@UJhnm6~7wD5eOQkoq2yf&$RRNdfkcrJ!bO-8c*sW+9 z875$%FqZ#pGLe115{E?OgOVib7yi)3-%pGtI+QP&dfpSjA>ItIG(C$aYt~|NFQ~OKz!<-N^!C->d?&w!S}dq2?e;r^N=CqZEOg83-ETB)N5OyVpf>} zlw4xaCjT6C6^g9?ctPlNxfg?Wj`Xzy+PCZK?R@M>l30r9lx2yI3D|%s4f(?iF?DYF zHWb(;VD&}xJN11aoLsQHsjitU9I&#;=z{$KaD&=Q=ZFyVd=U3x`r>QcYHnVHU*OH6 z@qztnVn!;|mjNWXAV%R}($%L1$Z)u&ZGjI4e}VJeH)1bJ2;lH zNq-=BcV$!*-h|7+VbjqPWNKlpcH+(Ne_h3&8whUL;)%Vzp{^3%<4-X+J!Nm{wr5@7 zVaU9M*=fdDzY+=uyKas-6QSt}J~ok3Wt`SpGGZkM(~)Y*0=!os8JiqlxErF$=%{2j zt6R)Qa-8(*rd`L*oDi*E#6|)}r|$=+;={-5cZ&V>khY|9&K<=5kgoMoTpr#@$QCm3 z3ND42{N=@#7G{HZlS5A_k;LF_S$b(2Q~J`;DkJGGl%+AOTKlZ(iGEHGsV0ni zo5_vZhm*GtJq>HQ9P{~yazn9gscy>=<%iw}1ST&T+ss`_GaKhz!ri(bW*@#Cs%-Ml za~`uW86C^)^1ng0+x5KMEFYYg9WG1X@Ra4xa&E$z)MNTzb7j&Y)-&KME$~1?SJHZp z{B*^}VS8%#qLw$7OMuC2rUWfsfRS@)<<@Wo)v#9jUfMEK8J%Eia0}SOX6oI$?H)*5 z_SR-4PN6Ot7Y%A&9jNz+ePW6bryC_8kwNiccq4d@+V?#Tdw?aj;?!K+gsL3oczNEn0<{5BN?IKZ2pqL#R%` zhd3M|R6SGlyQB@GYEF=7|Jk^=;ZsW&EdpPNb>g}#dcMkL+rRwbTB4p0c21!}^=hv6 z4KIWOZbEjTxiuibhyBKGNsj&Vh^*q@7L8!1h*kQgmNGqxO&F5!>HpajLl&jud%cHp zaR{OD*H^xiy6Jnk)xV)#O09X-#Ky5%m70XxmaIXw2RKAy>*@druF`V&eH*>;-|;Oc zzAxE-t!kAGAU@2$Y><^vokpuG2rQNvg@&S;_Sdri_z5*VJSwRG;nPTA+_!p{`9pQZ z`0r%}t&879V@mvs3|+YBXCu>7>UducIiRw2mY1Mn(5RS`(1&4{MzWw-`FSOxgG;zT z``K}C%9_i4?Il2N=j!^!#MO?D#JW*tNmeGBi3-c@!;;+f<~I7(oPYcK@)&Ti+k6x2 zsTimr*6Ir5m9{IAj`^&}D!kA4bEHK6Mo83)BV2ojQ4vb$ljP5WzpV~m`rr(a9TYPDEvj36SuG4GZYRwcF&+Myyt7~3 zoC_1N*qzO4Dwwsdg;Bodmi@7^xK}8#ts}=aNoF_TAIa*!q(@hb$En5Ea_&b#Tdmuk zJa4faNmsjDJy=k@l3nc`b7#@t=|FsvZq~Oes&}d_zcP=7}Wis?IZ7bM}B6EHM#M*)po|s2H<`PxPzdFnIMC6}Q#G)0%qB zuWzipyvROlBs05P{7N@_Fq<%VKgpYqRs3hOR6;hD*K~f;=J&I60n$n`6GKDdI6dG#d*Lh;SD;#&}npLg~!_y0;Nof7ju?E-{g)a8XG7Q@#W_vMK!e+kLRV9DQ|@ z4h5||sSI`wFapS~Qw>5~t{L;9$)|C&KT^s9LG(J^f#2ChYp=&TFF&TbmoGdzV2fj8 ziu{RX*GN9Nj|A8=B^rlK=HW1>MFaavqi*X<(xFfwq~T*wPt5KZ+1*K(I7BorHs5ZK zKKgP?*XpF2yU51e%3`;4vKKWgPWxHe07BW;r| z*$wi(^kdpUyAu&uFj+?jMhN$?<2~I?tYWxYhB9+~Ke$!FHZOLeV34?hMcsU-(%2nS zO^AXRH8ihIEm3!PNYK03}QAPe*&ta%%Jd)y%)0n6d zWh=V8sRcb`nLJrjaqq;W15OoqswV013jEI~5!r_htTGLI4v#_ zc30J+IdDnABI5qj{k=XVqX7a=1=v}_?r(1F&SkuH-`+OM;uzJldtcsfyLtJa^Kp*X z6opqK{4tsY7uTJN+?+aUqb>o6&P*D9EAxG((ZqYV&5iZsB{vPh8rC2cZTtL@Z@Ir* z#+atl<{PCUqB`C%e^gQrSPEKKryoQj*%LKCL;M9M2->7yGEevy^78vGl=Nu8qQmbe zvjJ01Soz8fhIOH4tmali&`EuVE?ffkRsp3*88k zxS0PG=WopiUECE`qV5kPi+dz=2IuM8J4k^1@6kZ17FXx@m8O3NceUotrMk5T?F}uh zc~F#H)G?)*mPRy_JR(98l-?>zIRkD&gZ7krR3Z9X?{LTxa5tQdnCK0<(6f2PckY_Y z`zJI?;UTmNniu5m{*gz&s~plA1mcFx*~sHgdW%4Deu2pwwTM=V{G;02cAxtv%J9mj zu;}u<-=~6K#2tzcg(HX@{zn=gPqqfEly?N}%i@)P!NU_caaukpoTBoHDhYekdg7ZG z1E0R}^Hs}<7~PZG3&_mKpfYL`om(_FRa$xnz7SXJ%}1Q_-g)$Fty2j~#!KJ5G@!#+ zoD}&>Y1|Bcj%J(_v}zcAn*9;029gwUDjr%iE3P)>RogD$N=`QqO|-l}c9*2O;VT-v znBDENB=>FB067wRz7zzkh#^9N--`30lfq6)@3vLz@ZhH+9a}{#=YsvG`s^FNt;Bc- zrtUs!*A;+GSqxb(+XAx>fe1o!K`eoV0e~&;6z^tU5HcD^B{H0j8^N3byZ*HNi>G&g zakpR8<)iQX0!d#6L;nt?dOk=Yc8b(kNwBa_{UW{TZQlj&kJjF3Hot#-mV@2kR5TK_ zB9$?nda!VtdfiA(pbrDcu&e{5#<;A?a7MFAn;{UP@zp0AzT4IK zM_T6c{WnEbjJ}CgL5GvlLt!1Ep+^6UW??6^(jyrG5%S8R5nn;k6e)~ZR84CvE^9M{Y1@_tlTm#O&&AKW!Zty zWoM(`cyDsrJH0BaR9FlrRS^VUr^*))xiZ8c;6A){N-BEm;}J{lXoGEI2hqx%xqBKxm( z!#(}6r9`NmU{{1|hfhwKNe8!bs>kbnw&sOKEQBO1urzSJ%D5jgL%#)yTI768wf+9J zSAx|+I=JmqX!*V>j=O3i8uOH*c4>{IbDb{E9ZScGKf#CN7zc$97nG8jsAUMJ=DPM3 zt6mq`Eau`nx^<3Tt-0&h4fW&$uCrLImt?H}zTKX*{!`_1s!*jX^a)78jT}kY=OS1$ zZ-EZGdQ;3PPjb|D}rPIvh2px3mR`x9btwE zAkyp5u&1LsO?%`JUO3u+51J0M|0)oB1<-df;aJl-`(3^1G;n~xi1%vsz& zoWAII?_HQ7wB0XzUgqd{554Uy5;t2NS0bVd((@s?d_?lsl%NA6Yb#5u>33;LxImrC zRz4lQ?bVTbSD*jpDsoZJ+`b-b6=4Y34Ju4H;)P&}O;EFyp)Wok=$1LTos z&XODO6V^4Q_lb2YrWf8#k7@+{;|FR$X?WnYa1(#Aa_3W_ewYdDQ@-v=9qS{%nLpt% zSn~Lr$2OX_%cK{dJPW!iGkT7TG!T&l#KcJy(@w**+V`bp0HeK4h=@}+Vg1d25(D0g zG=~fmYQ!BOVs@7oec@DPl*=hYzn?=Ph79ygG?B=jnAO|IKCrh_X0^NaRSa zUl0@6NfnTMp_0N9j{HR@fb`V@u#r1zJy_At|7-bg&9Sd~WdJ{pXG?mdYqnH|`?9>C z@>*4!0>LqD%5&4B!f8yU9^hD|W+yrCWLo3-5utznsTe|dTzs-AWOevYRhu;?2ZoNie zwUeAtRZJg^AsO@mneN2nzQtKm>A+NqWyi0H=6aeRx!Nr*9q`k=Q+M;(iEG*Qc`oi= zLMpI*TMQx#q7nw^g#@BPn`jJ~_zr|;sZZ}}0C)~@o2pt0_^j@U>9D;Ky8U|--6O?4D z9+?2i#c2GYQoUL-pYI*@+k3k=shNv6+Dul#Un%$$tXB3{b^Ou#v;%6a8wDUvl9>yx z$J?KY=Sv0r$nY8i;^{|`d~2k!wTN;489@leuW3NwEQ zV8{%Q``~n}Q8G#}y&Af1-^BW@o2KEbg1@iQ)MREAp1K?241=+i|BGSq@W%4#`pq;a zLB-+DieQw^AnbqGD%e|bq3|+T`f}1?#dM)@g+~4A9p%rMP=ocWMK9ifuqNL#s;9#!6hR#ulRq2q z_{~lDcM}uDAb;gxQpl1O#c;RW0IIu3DFaf_q+s+v>=l+Q#Tlm0;FF#(Yoqh2WfYhmI+*M~@d}varux<1!cnp|ojV33GOy*<+n9eZ zYb~7C4)%8~o1*?_)5vm-;}H^jC}X3v7OV?ygMMP5-e0ca#^R#qs6$XZV?qXRlLckg zmBl$dpZsC}wIcI58s@;<+h?q~v4*BLBUy*XlXf?R5<5EuZlv@4{R%2hq}S}fKKi!s zk!Q_L*`?{Ks`+f?2r@5_CjWQt0xkIuYag85K= zu+4J!f@U}&2$OwE0;Z{h)bL93y2w{iZ&JM=7x#Gmw#P^P3<5N|>;lp1J3CMnrRe1M zH{bkcbDik^HR>bmm)C)A!<06K&~EzHA72i-T|c|HcFoP;&8ewQp7&msZRZcp*uj1~ z&@tK3&=)h-$d?$+D%|<+w*=dT0y2K+e>Pv&;$q6@!l(w(R%lYl#Q$me|EJ~uf1u?r za>}X*@U<4m%=)H6M3YeSb9NM1VZk5%{Au>n#Spi7P4~Z6tO;Me_qq|YNAXw|^K8b< z-QUh@n}9hNgo=0Rld+KeiWw1iQbQN%(sTc_ah5nTGNQeyWTrfz2b2>ggiNv;% z8F(Y7`XI&P1@8++L)jj{1uA)*1w=#J3zzimi>l7e9t6w^4uJFngN&ym4hO)+R^~FV ze#UV)OM$lH4h=jR==o*m^570T<0LkXD~k^Wv6u`1X6mhD;OP=9!G$aghoVa73_b^_`@MfN&IUvGdO}BiGb5; zyl4totPa7gAq8VqeNq%2mA(fgN!F+(8NPSUExv~-{%~bB5=hV!Zl+M3xk(C0Alluz z4;r5v$pWDfXztX!xUEg#qa3iYf6*0@J@x`At8h0fr8wX(4mdO53DGT}ugyv_%X_Q| z7{1f%GT!f9jUa8K1awoSAZa3ldmP4>HAJ`(zhsE1cq-7xu4|>Y?cM*4&8(-$m{zE{ zLOeX^=a;|-9;>AJj#C+OZkS6gPDB(@$<)>tRM?`I6W?w9%UTV*Vo!6O4hChh0mY4j zTUZMPE9&{xTA(oPD-Jbzecxs7KAUflSyi%PQY0dwUlJz)8!f znMF69*0oQK03TK=DKykf0sGL5vucJ;^I<@Rpc5ckjY;RVz4+UZZF^F?lOst}3PpTh zj9A@dkjUgXbMKwo4{G{?>&sLu1A~gAKwUjoot#{;V%4>;%-ldO#Vs%?9uk7Ua=3wg z2sS!Z;2IwvZ&B%if1%g-^CjS`jZ+P768D#~;@_quBrhOz7EfoyaUq9{3eAtK8n&C* zoh!YAbrUO%O2nxIf7}bWeMN!&E#K`^McA5Oim6_Mu0AgB%PPu5dTvQ8&I*Bfsh!>0 zXgn%pTe$_jBc>-t_|oRgmw`w?9aH2ey27J}fEV8%r(lS=)SuuCfl)Fqp<63HaF_fR zBJd`LWvPNT@qj)63a+#u0}(;cwaEF&8nN`adaH7$1k0wF81;HHKNxoLg|PYBh4W{Z z7W|3aH+U$^kV}al)lcM>NclZ_d_k>=UYNSfzgtuYt|@R2*du*LUc&Ime7GxfUmX814!*dW5NM?&H0Q~^8ZHapJJ@4DOZ>JPtFRyt;A9i28BuMjzt+P5i< zJp+=j>$oDUR~kvg=cI=bJcoipjbdez#G`_r^(?~s-sXK1i(D$ESFK`|>iUojG8Xx? z5*-2^LWsCu(NR%MR%hbcI|)v@ue4DpR*|Z&{Kj$Jn^l|lPOEx)dTbabzd1Z@@I8SL zsth90E+ zDy>R&eJl8!!3Xz{8KXXPR0;Rj_2*1|_5NN^Di&`FtPnzUYgHDPoseHH<80p_d1a>! zz~T=C6_&yRo|X8tWa;_iM;cH3J`bQ;x&sz% z1LTJblcP2JIYKsAF=v#RZ^iz!X=CY7yof$63uO{YM@P7Gsv=M+M>oce388w)fKeDmP#^dA_mHF23`5cBxDfk{tE(5oy|1aO(i&t$ zTwXmIU=^|?accZ+Bc~~Xzu_aHwXB@U&65i(RwY)x>yIUFSHD3mt|~qyk$=FgK42I| zCWws;pv(hjDpBTq9G##Qv63|^6GUKah}pF2r~v5vLl0ygEd7+-^T{>2oFCp}=0R0M z{%X83Ng9!$sYk;>trgh3V90+q-?Oe1o^vW(5b{R$FZyu5w3~FOYV7`uHHMECu|Y(k z)?i24!HY_F&J*idIRA0(y!h>G_fM=d`F*c!HxDv?OC!4Ze9sEQVVVL&G~6BvAtM@D z)}d~KLh?$m@rqoMwx5OFSoUK~?$N8?x!l91DI_IOV%@*XkP4R^HMA)}r=W<@pK^Yw zDVx_EXcp;PFyqN!bQ0#lR&UX@_LA=gkiHkQs&w6&K;08e(wtn`Dg;mit=jp0;e9oq z>YWHQVxzi}3+FJ-JyHs6-N>ia^M!TmTRy-{^}VC?I!Y<|7QcIR0FcXmfWG%@gLVB z>%Z>qoX)f6vx209zBFB==ZWU^y&D$1PDT z{ow6cb;Iz2Scoag17?W3apWF^N?mS*Qf}qqP-uskYi)&loiJ1M{qK5ogWR(j zrNfp$g$|@Ply1tY2~LBmargp$-0Au8ODi6EFZ=dJf<$$!cF@DiDMOBUsf>~^TcQsihA#l$+ zy1Hh&j4A5LqyarjIh*riZX4ra$mTx^mmx7ZpR$NYCs(b?F1#&ko(dC76V)QN7WzN) z8NP7tHmnO7(g4{(=KiV^<#I%uqFS5Nf42Fi>pgl+Tf5B8ePGd{senbc?WAy)54wLn zfvps!(`)$0oZ;z6afC;I-^1hFosv-rx${=sVt@K(_;zW?c-iJxTmHE}vUPvYmi->^ zeUYE&Wg-BW+a^(r&$@<<%Xc!qJD`NJSoC3>SA;ruJ~ee!(fi=#cF11eWkq0qz`Gu= zTFg#4%1}*Ylwt#m8KojsXcm)&;iOTh1mg~)Q1u}bmGdorzUnIGnY;_XaQJ2wM*9{V z;-9~348!tfvMw6YXg>IMq@-kQIF6==?153odi5N7>g<$Xkg4zTV3B=;h!t>RkaGB8 zH(@TF0%}Xnm5!siS(36@LtgXaF&{Y$Qc-F${&+8BW9Yu~K`wdl&Cg7%h(P_xWpntB zX6L0-*aYy~9eNCKS3y%rzvN=udnbkxMVr{2<)%HL?1B?*G-msyO4WLQ^wtv&r8Vls z2K`Kj+d$4_-B<$vNMBH3$tFWH4VtRoVfbYLZK^>EpE>5?T_jIX0 zzM3BU>mWz4ve#Q*tpy?2Ob8|ywYMZkT3mNQZ&btl_56I(=|Ao~+~l;;k%Hd( z3%2Gr;y+4oOoii+8n(5ee%K_G77UI1_QtU=bP4Oi?69~e87%2p`|H0cud7HwQRd)) z)mwrCJ9Sf~(Fxg39gJ{As+6H!_%0CIS6S9B@XVMS?1RDpEK~ORQ>jk=-vm)kx&CzW z^qN5zp@YsGj!a_sc*1*858xK5BwWw@6cdvN+fiEBEE=AfvCgTnS`+o6LwgOUw>^Ak%h{Z! zUgbNzrZ}QA3Z|luy5*pREVX1NX5w7lA8mHtBR+oo0>6{T0qkg%Xj6afYLP~CQ4Ir2U=SJ>0sC=({L%A*Owc2T&-*m% zyI0Sw2nnbL37zvRp^B& zm*R#yO<@la?=3<$%cxTf&)gP3B$9M+Jwb`v^97>c9g-rAnLObc^R0h};_B+P9VFm50GerrhY^x+-egLKzKLM#Bn#$4g-Rw=rGIe&D7_`ttZffM39u zQbpo?)6Ni)&sGb(oLg%ScgNE5g3Fa`UR;JqQX&^39e-e;K+6XQe75>3YLX&t(p(&f zZjl$}g2^mW6Kl9XXJ}40_9i4e{vwf`>XrwE>k)8zEAviTxwrp=_5KSCo5IYnt>TBq znI_`C2PrB;85P>5GXvSi?MnYJ(jNCxb`7YPdS2Z$|6;|x-sJ}x@yI;iSAn(L{>I`~ zXM>i#>WF_j+6LK_mW$O5{Zr<=0enY3_S&!l zE>2Q?9pK*AQ6|Wn1a7cxV4Vbp+SQNvd5;?T-PvOfB}?;MijbH36CNbCwQ`h!Y&r_X zhZ^kKpM?(J9^HdAiAp%-4C-_|WB$tBtL3kkrUr_Fvh`ph_vk5SpZAsY@;ho=Tyf(p zm5TpZ60s|K=FVunsL3UF6s1w{9}!RNaeuS#(XHZLCth!yx-#-ZRx$qXju?omtM^Pv zD;@%7(-aCx_T!NDb_+2UC1?dP5iE>^E4%k+&-T0@CfELPebFt4t=KOkrC&cX?XOpz znn6V;X`rASy}1ymo{vu&8&cH5`;!qa&;U^nCGIr&@2QI(5hC+mc@akQkG`9owl!qL zYWzw7N_0(lu1j{|gL)>akV2FvhbeIorC~1Z>IqvwgSvca#Zejeeel1<_~SYAuab<6 zR3HU7KWtGp)Et6W#FU^|5i0A#0>@G_k@JFGt-J%jb(Z+^qRgzBYa{muLS6-SsK?q< z8l#&_k(mVK?bdvX^_F_xP<>$TSOM!$ZpmMC_G=;UC_}eWe)T)M*puR!*M(c= zq9~0S-8nBh?!yn``m+KhPYx8fHK@tS?#)Dc0xLPWBN?KC#GmcB{`39Y2hXe-X*Zs8 z$n|fX+fV2&$(i$`#JeWri&Ob%GR+(USN6ui!`(iWiUKaG)7WJaOnyxnE@ zvTm`%ITr_%%}fJ`nQ#3hq>1~X)IO*VcP!@PbccU^e?UFZnkW2!?41c;lIa_^Z5yX$ zs%f`0n@O{D%*xzyn`*Mu5zA6bL~GJa5zGZh5GdQGa!GKRRIoBNC16qk6_HjAO&vvG z1Ody15P=eq0CnEyeZR*4{RZOi;o-io>pYJ`sD*?C38GH3GZuI4Y$GEJg8fi^fz;Hx zt2K#EP?<$ZmGyA@#}j*cTtdT-1LW%(i(Du!bDjRJE8i81Na^$IAnRYs%LglY&t&0pHYgXk*5&JFQ-f&pa|Z5)Y$a1JOycZYErJ$ztp68L*_Eqk`HFTZjQ0g~+J`ZR8&vr(?mpZ^&drTtZR3|C0 zXq9R*t#`N1o5DL6z>Jxn{QX+M=&e>iK&w6JmzQPq;VEB!ZZBzlKFuhdRRZy-z|!a4 z5g92_#?x>uVw{7+af&Z&`O(r}2Ho=+cZdJa7d!=39Fy!o;tvnARWyrIg?qwfC)Myt zqEIHkyeYg-e!#)>FnZ}Kz{i%U?Z=T!4gz(ri>xQ@+ctziWoFjwqE*J0_R^7ZJU9+; zx=~zwT}oEm%NXv$9a#R#?u9;}R~A*BqOk57E%7lClxcUw4av$W@ad8wNsbFe(~f7 zEhV2{l$&wVU~NmR%p)r#-ioUQ(Gi8>kw4qa6u;nxA>)+M{z>N9vO*NrvsIU&Gib<9awdun5+w^4yhwSIHA-KH&QP4dk zpszBaF8dfHZefN9d&)$@c^s6c`#_9?*Rh{3IIk*6Ra{j{TIas={aXGxGPYh8rwVgI zJQ+4bOE3mg{H9{sN4HxlY&C-=N8r7fHzQuiTgPIrMdz(cCm%SlWKB)-w$zG{sI z%!Tm_t<;Fd0ZD_33n~kTm~EQHQkj;IEk~<#()<%gNFNTcf$mM7!O*`E6wBMq_8lHh zo=53cwy2Y+?L@U=9x{^u*mPs}4#iH?$@WaSgTimJIeNUkTr5V&BcaLChIih5n_)6de^01cD;BFoXFf?{ji>G# zA^Mzp35dlFrJs7S{72@lE76+V6HZ$k+2;}7-jAQoPfiP@vV4u2M*qtFkb+Lp(5Zvr zm>N5&R;O{$Do$9POxSjE-)I8D2kxFXwo_i;kehy+E^UAMN!TV6rx=qp4DPeAx}{?D zE^&%BI*UE*8^}F!4RY(R?^f3o@9A8uAOCR*Pwsf`H-7X?9+Tw(AsUZpljIEbWyf8+8v5Cs zdek?&VrAEWXA^!^{+vU>^|l$`^)W~M>T7)C!YGt(f4jC}(~AZ|owXJc6qPTSt`H#j z6gFz^_lKVXeNu^~zwEDEa;-Y>p;PUlKiYn(z9;Mh-bYZW3J8z5?~c(J^93Ih1TyMp zLloYB?%oe8#y5I*9m(v93%KKLHVZ{z9u)k26ODpR(~U$Y0~`onSjT*PuiGKW3**r`M@_sL6aa$HInk_*k!zo|YHqpS|3t0qqM< zU8b7CEdHKW9tjt70I#1~%JpYI48sggM4tlKwvlp8Q-`!|Y54)MahNIf|Mb9UjocSGc1R|B?Eeu^sjZ2o+YLitK8RZxw7b${mC_c z1*Gtp*(?7(73Yzjlnj;irqEHSCc$iLSA=uixUeWXhE0-czIxxN6T3J!R~t@hqJo9g4cU3ec|Y{V^vWc$7#ibal&kIBJQ#w0vdcY zEvl{hB{lrVGNDei#^h=_uG@VWd%$@X_@1mT4HAEOrH0_x3+|CBkr6 zH|m_6EMs>}z6pD^rOKg-ZibFmnY68vf6qFP!fgD$R^Bkr z_Ivj$PRhNa6V!EJ0KcS7i+DnJS=inYEuv#LiB&@Jxn(;i#8)=wktC z^P95qBtW`sThlQQlMf(7ijKPI#LLG|ZkC3F&<3R;u)p%@?4WrX$bI4Czxm%gHJQxf zpRwR*!0U~|F|_g}F}8rlZ+uj5Gv@8n>E1uqduc*GI3Euz-M825o;K5@D1#K96(xMM zs1qD`r**b-|9nas-XqC43uwVNCJf3UqC|f9w_W;8?MbxsD!S9m9NIFIk%7W!#B9mJ zYBM-YE29e~a5GZG7R~WJT|f3MifiH7_b=h<=2O5-x+q>X*Sm=ff#F?I7BjS!y{tpF zzw08|YRqKh{b#lHoh}p%k@VNeevpX<#W5n_XO_bT>;4(eU;S>0CQHeio5%MhI}ioF zrewMSHak5XLuf8(Gvag$X>XtlzR5>d{}b?gu6OG8ZT^LI@$~TLETKk)NiodmbcXeW zfy?DGjZvx|KrE1E&j)?K0e80lG?5Tcb?315zLckR!AEseeZkyuhX)%uhG@OTFe1ve zy+QuV#=bDECN%8{8=qmYcLjQtW;Ozc7id!7z>zLi{x2T9CGY36ROeVUYR5cs&Vyr+ zB(zb2YgClUVYGREvUvZGFKrc*qX~=n)-07aLaLQuC4dS*0q|{Rpg|^ zR&SW?|A$;@Q1PBmxFP4YM%Ta^&b@pxJ(8-XBk&$LZuaw?j;|L7k0!XC8u^+x#-h`I zS71^I!yH5?WUd1>BEY;8!Z2k7UEXrW$XftzlZa=(j*yHH_n)r%0g|{6G zEZOaKNz5*b=FSDMi=|R=Y|j|y zxK^xfkZU*W?3=(ckf1(^K_m(v;=(o=e+v3o_!q(2d)$1>A7kFyS6d|OO=%t!NotvV z{D)`VvF&%CbwJe^N8t3z;K*)QZ=4x8JQCS9`oLRZ{Vx#uMc*vZrZrLZ+{ka)a^7c{ zlcqBo6eD$_s1Zmq038osO1JNR^epuTd2DCVXH1er6>_Fn?V_}UHAw0rP3EHS=(|ji zk=QC|mKx6eveG6gl}HHcYwg0*`9tZUMPRxvp33#bJyM{AZmbeDyl);qy7}?j(A)#V zeaCILzn#e}1d$CD?KRbnYL)@Yj6PUdtZj$_OTwB}BK@wS4}%EbUw;Y;e%T3VkjRVt zF=LF~uUy2vY)@duE`n0#47N2N1Y8H2j5@q`-nzkU*?|v$g#7!9Jl?47`kAo@Sm-fq zO#;o3h8S>x;p(NA&6h8=*6fXX{!|?EPMW$=NaIgtwY>vjzcxp_*?S{vRhbuKZGI?9Pw=8KLd!{$^ z{=uJwOW|fMg{vG-HI+xh7y}wQFy)^aY5C)F^s@=HF#^3rDX}qXQVv!aiH#Ve5+6!M zySCpR9~@vHkZcpJd|}leb=!XB`7vefU;9=40URiZ%4XPY)a&E$9#g-^03%hFT^+wpvm3`Z(;WxS75Nw7{R1U z=u_gAlF-0xip;1rLDcw%=|BGxJj_@O48WbN9)QB>-u08ACH@JLFtf^-Z7?mpm>uji z%fdLAjKkB%>#P|B8i~d<)6xU==F$!gD-_O$$DURjQ6h>h~?O<&J zPNX;)_@G-)HrB4)Jaw(_DmXZj z(}moYtB*~x`bxe-CVkZw9-Q)Nrf$Uez%9xtI{m?DotE>52`fwNMPNlFp%M1EDk9S% zFVbq}LBhV%Gv||>T6s!xtYs)f@0QT#+-~g_WJ_-t}xkRUx&2cI4<2y5n@IkJ7jxYi_Ebs0UNj2bm{x_@K z6yjj}H_hf;cQUt-}@N~EoD3w6zb6&8nfbeE&5OEcmd+9%96rr+-jwL_iPnrA#dc2o+ZBeJ;81n@ib8)3-OuUz;XF(Wf!@ro8cL7OHkRAD|OLCxf7>}_X zIB`9+ep};#5i5MaAqBB;s@Q;pfwdME{^0NBVH6L?BxYlL;5})~zn8mNE`-))*>joS z$Q}ZhM6X(+C5QM|ZpRo6BTwkr^*`oqDZI$FT9H&OOime1{ z&~p#T`I!)dz=;L`Xq3W*TYphCc9P}IsXc3v*RPW^$)V?q@+yf1&6UO3Fb_vOq82C+ zDn+5gobBbe^F8SpMEab%qzoI=mt(~BVrNklI#doSI0#B7E%k)EO zjUE44<#)Jx{(L%Y#vIZQ<$c<6obZp7bLII3X<`!jg8I1uIYwDh%NqDCqhVw zH0FNTuCc^{fHq%~skzJNS@&sT6X8_YG^y=41@8)F)T_b)tsF}nw>sqNghwgzE`~H<yaVGZ z%>zMjMnyA3qvin9{gkB;N?pH5IrxwC^uK$yFTZ%_{6>&_^X`ck8tW|z z2SfkrQv{4>2~dUNOw$o^^S>PlPXr~E^j+jOPH{z>P@?=}aKyj8_5@G-bZrJ;L?9nU zspVgsoHlwpXzE;~mn#IbTH}Hvp91Vb*d2+R$Vxb^83?M)5jAeL?LI|AHP8`W*o#@;)1=bP{EWa>N5|XjWvm|3~GZK8*{0H(?FyT^&SSczEs5lWE{1itk2cHHV20hG>jzsv6Wn3u%y z+O5UvXVCuk7-`4dxj(t?8Bs=Jm}^C765dzdQD*!3`uzhr&)aiGAEb}a<8e>TGb!0} zw|7*FM=i%5KUDuNxYI?-px2Zv2#s?_Vc%Qu&tnRngJ$LXC4Oszt#|5-3P($n@qXjC z>}J#y*_>@&N7G`!m+N;`;4lby_(jvTb;3mh~_WQ+8m>r0LhOq_GnF(^Ke+LYlK@L;)Sc zoTf4G_bnf2W803Ol`=NzA@Et`jC3kAEy1{LTh`UIPj0!7u54_YI&QTXGg*7}uhWxJ zL`+5vVwWK!+>nT|arEgFLfjBqUpco_nf2li%<`Wc$BGL`;ic=NFK#Pqc)~96W)z16DzI`D)M|Ou%2yo2)BygIpAB2@CF1)t_evmkQhiC1+ zh=F#p2bIwVs{w}U!Fnx9RhjUqMi8zJ_EiD^aTP28HsyJ4(-ATfIBgPd6g;%N{DQmT z(--(%YneO9<>@WTpTpCH0l!YG=YEP#8K#jjfP``=+sKpZv9G(c_9MQ`;H~hPys~ zQ}|z22E^HQ+FTv}$5f=x0kL8@Y3Ge|_4Q;rJVbx>EC^_27bH1H``(u%+#h~sC zRs=9k6|YPC$Pp!o@da#(i`6K(51&vbYj{0}~nmr~_ zopS!0>!PYoo|ab`77*Q^^s$uR%${njnPPxT3O7YB-E`&fOXqD5Fjm#9EnD;rlX>yZ z(Eb`W6A;FeA#X?3HU|ln4B*10Y#chVQ?keXC-K#U*e_2r3p(0~AvwZWD#W*LS2`018+$oW)xkvG4JVYv0~?(GE4)$2p&QI$i@cB%9`%AzSC*XG)5}I19RSuTma~ z9ppp4Kl^w|rETTD_n!~x`&q4@gL@+l(K%vFPiWeViY>+cOk^Bf5XcXp|8Lsm(7b&A z-zR>&|M!TGwV&4?TMFLJW9J(h9KD~_mO(r?#+dp4tezFu^jseHWK5M0Kb@m1`Ei7_ zUqUzUF8FYS5Po#tJrs7Z_z58m1^|phLtQ79(q>r(ru<;fcIf#W#R{vD@dp|BTcGe- zUj_eOFJmAFvXSe23K~5MctRwWp0yvID=>5F78m>CJ@%-g_q?${ zzR%s{4Fn^+k{}H4AmQfGQvvX}P+iE{l(1tES?_E+fq&_F(C7zx>-`7c{3dQ^90-p% za0oMQALdivnZg_HoG%en#D&!Yx4U|2w@v^R97~~c8w~iOt(_a5*Wdb*HPO@Oj)h&3=I+zSjXugl0oC?GkogzYt7ldO><$q_wZ~3z?50; zbdUADv?kFv&aEN58a!__9oV_6A{}P{DjrO@T!9cZxQ1uWzTbI{cuR8I9)ZbluVjJd zvtKFqJspbxt-;7F96DvNTlD$Nluoub+#clyWfDGvF)@$=!0?fy50`aOoc_ z?uT^;OhF^*?qDCcK*&ahj^Qv#8hSEqiYw@+G&N0#7qFp4{_THWEE+%Za`Z+^!j}W? zef!mg6<>Ll--aF)6SN%_vjU?9^j=P0q3J0rpA~io`$uwew9wQrSo-X`NuTi2m-Q$2 zIlSy#QJFb~DWom;J~R;fkDx=@qLMRbE&B6y?+0&u<0v`ea2e77b_En!OB_Vtk0)&^ zT=+JlndGN_k8ti7G^^DRFI!Ow195$RpkptV-w5+hWh1zdXxh8n2QR8VI2IhZNr>&p-cgxw zy)q9y8WmAoy*0KzZeh0DGkUOlRw;-4kib8QWLJP9l-)!Y#$}FO2HU#()7966>8BJ# z=l-EQ0}ux24ajybg7YAdbMm+z?uFnz{4f_?co|qj(nHb^a+lV|O z@pn`%_`8#R_3srGk^5Ih?4^<ty z{E65dMd;NJ?H{V;)s~b6Xq?D^#rV!b=Hra=p@+JloQA%NdjqxO!ZLxDJ{mnU9`XE#zFH=z=>QlnFwzA-n>{45x>B%14ho3=&fYfGdkkBr|K;I13k7+o$JfGx;{Bd3~C{ zZ1rY=!*nqW2$oR^5Cl7Xd>YjIjN_7dC3#*C~={l2UBy3Q)R=Nn=!dw~%>$u89< z4Je@oNIMYvYl~`Xf*X~9c}qKgR;j0gpjk77sJy?$+}-|H75*mgF8^$L;QGU1x|VuJ ziV}lH=%&neKUTze^=_&6+O)uziQ{C^tm>hDfrg9}pIl_W>^d)VD*Pk{;nRn!xKJ;V zvpJ!Gp?YqGUJkxF1*-d{LP;%oPE?wxdn0oP+?trj?hYL9?po9jYkB36DI$|HdwFd! zf!Ut&107{eBCN*(&9TSPY1fl-q#9t2H*#e6@sQsv8()n)O1kVYZt(vC&I68lijmo( z5I2PD#H8blEayjN5Yda(pelE zwg(%sS478=FK66pPH%)+m;yOvM!*d<|M<%?qU+2Hg~L}uP$oG8iyos>FHgmUNK)0+ zDtg`ICDE|_$)Gk2hU@94kN!KhJEU^vg!0z7Q9tJ6A1*4dKgTx6EG%P;d5*F9=fN~^ z3X6@Az|hI`jN}!BPx}_Rzo2tD1F&HIU3#JgW4;c{7rRhoyj7Or_JkX}N2? ze8^n*SJo)=5UMLjR|MGy;I0tEsd71xj5IwA#`H3t41l3#RP@60v-jU;B_#YJiFUf> zV;7W3I38)Jmgki+1)rt-FeQ$pv6zc`c0F%BeJ|OIDiB(r1KQe-qp%B1;C$*3G;Au| z-WvN=+X)K)-RRt1TUk2UHaTcy&$XE#a_Ve)-lr$V@ME+BGuwcL{afwPzOPTUzVy$v zkDGLMW4>2+27I%w4a?f&bHsHH&CUY3x^T=uIQm2DnUrH}DAMA35Q`p`8i#6}7wsK9 z+K_OgASnBn5Zwd+<8>SB4z^-^vO4m!ee+0<0FJiKTFW(T&Z zt99|Fu|+JepPF8I^LAE+)W1=dR4~cUFC72zB(x`bP|EOXS@Ev{x|FSThw~0v!~%Exn637&$94tan*VHkl?*wl~64OV^j;^BB?m0 zHHqbYYU7SyZj9O%E%zZwtJ*vvIQIpk^1`|QZab-8@EWgXzcnJ4>=UKD}H#T z^&33JM-0A^XCZa{W0?gSm%=`;n9$#ZKn;Wqw4vO=yUN~Dp9lg2iXib-$fM~$;*k3? zUn~Bex;m!%=Rd2MXWhJy z(D=gluT^WotxF2HZ*mXiWrBl1O3v1%5N*6Gii__@RA0f!$@{;hmZO3*C{!@h82(Qe zdAMn&^GHGAjofyFsxJd&i_t;$m!~0m1x{bMQ(_d#r`QpN+E9b)!H6MjnXpYouRkGy zuij9#KeKWimWTflp4q>}X10H0W4)8Z)7B@`gz#)+yaMl~2+%>LavA79s|~Vk>+E77WHT`4 z5(S(%oACGhD`yYraxn>H>(tfR{r=_+Z6+{Q)I-rK|Mf{+TK|rI*9)5_kcVO9Uq`xI zn2ryb&%BomW%d7F`C>aKJXQ3&Bdv3mIQ$|xT5Y>s0$vqRkbhQqBX6)c z@$1pBNYXeva8MM0T7T>9dDVR8cVYsn9yFVOLOcg(6yr-V)b&#}bFH`m`=-MDjz!RjRUYPBP^O0Eki zbm@IIHaZCRxR4lC+2I}9q+$D4g`Ez7)5*y|%76OSj{m_`_2U1<{rvyvhX(Ez)85{* zQz`$?cJQAS?LVu*zRXkM5IkL_JLJ1<-G`^N;I4o0RST`OKaVVs`~ZsKc5FyN+Ivlw z)VIzCz(LPL5w&H5N>A>ZGSs}Eql=PCY_2i@;Dc}uzj@S?;4@YjuIT4(C-DwZJ>$P* zb<9UUbRE7tI3q`J%yKS?#^56A&MsTxGIXQr_sml+QV+fk4Ti{ZvZua)DjW+EzV5k( zB>O1p03f1>H4!{hC!m0VhL92u9${>Q15Q;F{tb|U!gch$FR@-?mw7FFF1x=@ajw%Oa^oP!)qUJS#LFqWJzeqX1Mt7ynrc01P6=C5;Si+P6TGaZhbUlR&1i z#K)IG@HKoecyIIsugg1j34aKwD(_`ArN#T2frOj2j*o(E0$Rrwvw2N>suy)^gV{A$3&Yt1Lui3&2$`NXJII)U7btF3qZK$Z*#%cN-l7czj9 zhJ6ORCjJhzoVU}aYkc)_CzZjY0v=UNg-XJ-><*SF{B5wjVsMrVWx<6kLk)Aswe$Oz z*nUj!hqwCgf8YOmLFRGa=-?PBE{z*co=y(-aH4!Rg8@_QZ8`Q~Q!<=3yyM!MxYjZ6 zF0SfqAJU)`b^m8oF~f?Ginx`D56rM<|ze#+kRMulAczGn z6>~83Rt0c}m2-^x`LxWK@2gMN1cm$F9laeux~exvg+FX{V(1|vg-WD#`%N!`X@v6o zIHd02*q_)LYwwRi{z2ApfBFAsWu8)FDB)fv_H;-5{bk#zB&lJrf8hrpj-sTlI-Yw7 zjT(Clq+CFmgViD&&@MoTaMDmz2~kkfp^V2YRJrD#_^7xswCV;w;GxeH{!lb{?mw&J zbtQ&rZ>EszqA{o@+try-(#0POjw)7m{yLg?*RC&JR$IY6FgVa< zVWEe`mO7Y*Aw`W0-CcejO*mmaQWcx79x|#TgkSN91+4#x5^+j@&74`uk{DIWj z2$;WK-C>zqz+zN5@4heSTz7Smh>V}dhmc8Wc(-FZ)k10ovmC`yPx3`@I=)29>D^sD z=65YqV*nj@D%o6q>fJ8EmcA2-JiY3{ zRb{{K-4C=&=A6Cr+D1`yM(dM#`9Vo^*sSOa_cX}yZRIV~>B|o3s;WQGSnqcich}i% zYbS}-M!i^s;$yp?mbok7@^x5?D=Y5SyOZ7bTQ*6F?>l90wzrR2f1M-@FlR#~P!^7| z@WZV2*Ep{*4p^o(Mi0ur!0O>1iAlfbOMZR7b4g)qRo7CqVX`i$wR}*E0P;cWMM)Rv z$k{L;`5={h5;P*PR+%xKzJCu7P_qXeO?uHki5~NR7m|(}oaGUO$ZONLY7hKAoSZp9gxf#WmfcFr!MsA#3};)>tP8`^x$;VqRRYSoMWlg!u6! zVLITv%^#WX{R~F`e)#Pt89;y-k@bWq>l4!*$2G>GSVH|lJ`o;{O584^iO_Ik z3=?u&=KdZ}Dgc4&r%u3wcdY3On0q^Q%ypAESqaN(n#ZXmx8xmk2enOFQzIXE;vq$K zX>e-m^;3-Cp2`G+KU&|3sfvScEs0I7!WF3Nqz3%$`7mtdGz&eY=E4v&azl$K$YC7V z_Y+N3Z|2HdX2fEpil(jPuy?=W%y0m+0rr#+jiE`qBav3?lueESy@MsVt{v z6QWr}08fF%`_8@Fpdqt@ne@5}6|K!z4%UFre%iMDVoNUA{&j{Y`FJ?KtDKbP3%x`| zAsn=b4m!T-!#1=`ri(jn3US|vA1aqF<(%s$ZZ7dD2zMarSVm~H$fkU4u=JuE?p zjqH{YpTw{6;A|+ZKMgFlXrS*_!P!f0TQBq77y%k1E1Wo)hYBmo`+9=(P3hnqp;V7) zidW#Ko<~6lNTc8`0&J_hk$YvfPuk4FB=f)(8&5-KaWpedbK3rP9-^Aq&jzOFcMBsU|}Mpwn-zGH|&j|^f(BJ zg#2knTStBj4~Isr^SC=(n&II1>-KL;?PHNs!GQ%ZA!*`Cx}e_QPRoKW*grWV@@VDX zacR@RWL~29Z-sS{*ktamblY<*K%EAa!^~$-2|pwy_&e-k<*h!nT@P`ock^A1=f-os8?1^2D=9R{RIy+6;ma zJT*>YtIV$2wu=eJqqwHVap8^#jx9zvtWfC;QLDj0Y zOmjT7XZqJazena$%F^0;!23@tHkrV|hw@{bdjq|` zrI^jqhEV5Y#=qkow~Q7Xx*_t>kJGB6mryotWG6Jn|Uk9kW7Ul855o7))dy%kfEB z=roBD1y(i52a4J=kGgfgd%1H}xHaFQaZ&V)YK3Ml506QV{Od@x%))Kfr;Q$McQFP&^{kksULtf>5Zf{_;}Y+8Ae=Ln<%Y6 zBI!tFWliui-d>iG*_MHWN<}rY+ewm~`lZ<~dCRUjtPKZs+4XZ{qyK0aiK>8BH*rZU zIfv^aeQ4S2>eX(sV=gs9ORYL zCu(B=KYJ_~sm=Q5%GgQ*1;${M#CbiVw~;zls<24W{Q_8TR)v1`Jb3 z$sRp4BYLVtqO2|GU$70Sv>k+p?2pb!_VI^N+46-g|G+@2ZfwY&p8j>!NY;CYLfTcU zsNkWJAt|FBF&PSG3fgBmW(_U5rt+d@ctP!U2LY8QPINrKLhw94$XA}G{VjQSv`Eb{@m~M z($}V{9ecmq|Ne}%wU5838M)HgV*PDkdtW=b~>T{p_I;5b-Jd1o@7I2p*&5oP*;!eoMF(U5`k-kbA=FN22k}*ppfiI!XBFrzs!l>r*9z0+})=LI#{B2IGuOiH785HIk{<2!PcIjqy~~SP(HAp3U5=5$ zEpc++mH&2co+L!GCs5z$HI-=tlv1kJW?Z*3^2m)HOk85$p#+_(5XXVq45i=54~r!= zf0nU19&(IXS{;+z8T_ghI-uH|$T9m1re_TYo!VL+@)2zx{yj-2TvRM6v!>fx^s2Li zlr2GFVV%7?rvxoO45_5O<@xYh;|7UHR(pB)31yS~>)(wb7YkjJ3a{+*_BnsTr{6Cj zH&a%;e_b(kYmt!%OQs47!SXrF2IY|hpx|MO*bJ?ascK|0NRZv>G`u0Rfaz9kAI-mde zPLfmQ`U2nzG3MpWZ{+T@(4q5HWpkTbopVuz&8K2{b^g<`slHy5O7^)uk+rQ|x#iBW zt7evypI3dX!FxNSOxQXUo7_C+WCMlPh?pJtXY*CRw1VT;gF>;MO;RUw zxzu}t7G>G3TFF%Z8(zYD)%X1<+{dYMHHWf1gtVc?raM4g79hk5HFB)BwmJ_>cSl1L z^ig33@m!k=1Ep(S-vx6wrC7eV`APEA74)9%tqLEfqBE41nmsj_^w4ZC;H-bwgn(ik z4|j&FD{Y8EiNmI4Vx=?-ySI5MI(5~xuJv~}-;ssX9wIDv4tBsBEV?$srKdv^+oQF6 zA&Iy?k=V#Iw(<|{%fnwSe?}fK(j_nwb17LY3%Y#5YBAgEsK6 z#%T*EFw6Nve-8WXJqMws5m{{_98GNcd}M21@cng)52+J>u2>TxEkI>;!G{i&RNHNc zcAg#qs(CDae8u0S-5GUG+W6l}^c^fL0nO24{&YA|F}Zs7R~oI@+;ww)X=HYQfU^-WOnUAiad!SPxh=h;oj7DJ{m>OvHvjt zL(-}4wK-qgh_NH(Y^1XG`QRRqtL~UD6dP-Zap54iQ;t&3r_jl!cg|xUww*ojwK8El zx2T`GAtjiqZ3?*7;Z znSB5^l^e&|zCXGA&-$k; zn8of7zV}1SXH-Xz5K=S;&<0qFJ`Gi8cs3II3(0h*+CCY|)CxL`(YU9q9}e!o0Xy`K zf4^1Oj*pQ^6=Kq%qIwr^SuX=;ITy&0FDyb-p9+a?x-&e*h!;}&PZBhVKQMGk(7ivqnluu;4((HUX4Ab()YNc^Ha9U}_ZDvfA;#rJp6Xy|AB~FiCYw zlHa?S?m3>`@U%EKHtH@VjZ2dEns=O0%Fks4^^J^(I2z#a(7`!zi_zY{4II0ZSoz!A z`nVv$vJT@GC%+`Way)n8lp2_4fY;SKOj!CNQ9Zjz1}&^A%u9ZF ztJwSLj~~V+{EB@aTnS#ruKaRUt32~!e{t;NP4ifxG5VAwiAyV6QJlDRsEp$+a}8kc z;zL|bsJ;1q-tMm^9-Md!f8%@BwhGt2IJ3a?Jh32`;iGdBhPDmkD7Ulrd?6NzEg@8G{X`TewJv^Etyy7gMhV_6IQ9Q(muwJI6GWv)jSRb3cNw zcG4IDc1y7`5Uut_qQTWVAe=}w*l@RGuH3bG(%T8Z%jx_7{?BSVEb2yE8wxJ2ON2AA z_`p{|>z)cKnxar`$xsX=MwX^YONLEeBNV(G&v?7`)ZJ-ti(QvJY0nw4C}xV)22l^1 zP1(h?)?(4Y_3e=~IhA3EA)I&?dN9*vqjv%ks7(?}x_-~>7gnYmy;OOIF&Q3)@&83D zpfY}rzCRJadH~b8pP+6pbRT$Q*cS~Y^rClolx}bs=Lt_%6N!T-z_oSH^-9eALkDZf=!e3Mr z$JTB0oak|=K<2ZD*`9N=*sQh3ew0Q1TD>Tj_#orTzHHn1Oo?cXIAmb*K3wgEn9?%1 zc9_qONnTf*#m#p5WEZv^qMb6dHr2gKc4;9Aa8XNs+5g~>(GOh}S6M#!Hmdl-=4~tl z00o~*6N_`2#WycHZAIACd<}_iW0r~l+^5|f`8oErXz7KYA2ej3>JL{c91`?f zIzz_%EtB*rX*w#(n26MaSwe09CHecmhBI2@MyMffH5CF!q(n=fJhvWvVrnH^vA4Gb zZhdUFzs^Y{^6IO`xNaO^Vr06*QCq!sWoQ#uzI~Msor`-myte_U(Dd=8)u7kmk7$ldP3Higqn0tZ?`GpUTe_-h8Q<6~`1PImWp-nqMO*EM%l!3a|Q2-xwFIo%Gyg@q6}0qwxRLU)Ps@ zgRHRT_yk;SE-Ba2=J`^(BW7;EepL-Bi_|PQsAg47aKROKPQ7T!zj!sLRg}5hx_e8( z+&cFHuE=k+{>;sa@bYzxF%j6vlG5Lc5fzsG6UL~!5Qu83T$iTZ@t5213(oSiw(qv3 z^%8H}{kfAXvT3+Q0>3+G0I4Zd21r~7l$9fi8I$+hAy1?xa3lXXl&fl8{O^O@^RMni zRBO*8R0WyrIcPX^bMK~Uwb9>z!+$|+4UzRl0U)s%W^)r4vUkq>U`t8t_4lc^=Dqm) zToKuua=JY&s~n{4;GBs!0JA~YnRk})W86~fWq)6_B3EwDKxdXu zWDx3mdSTlw$EM`+VRUMiG{fgOlggffq(KcTct>sQ-whdy@^UjGS+?t6b;XyFF@~4g z_9Wz|`N=_Pswh4n4Mmfic(D*=Gr znI!dum%$F#o= zj#p%Kl%`!G0k0AqHZ60H6AsfY8jLo^drX(r0A?cfMk^cdxazckjz<~*n@(OgRpy&BV1h^9TBKYgJQLb`|ZN( zs1#^J96J6BT5=jfcf9)2vHjiHzvJ7#w*z)HfrWm$dB_p)u|3%;6|T*ss&B9Bt!CdB z?2<6=)>a*p&B`Y)Ijc+ZUYP#G>1;Jip6%3i`B2rn${eVU4Z1l!)|FmV<)PiSTRNO9 z>ZeO}F`Kr&mKJTdSx8>K1^2zv-zs@Qd%}=2KO*NJ7&Vfn$C@RqxlKODq#0AK-~m>R zU~VD4EM{;xB(LZ?r^>rC{KFdh@3!+elFQ}3y&8xSnbIebEBJ%+Kh^tqmfo$M<3mmh zjdJdXyyQWj#J~I!+`2!kxF&zY8?!r3=Xjkv=CtjgKBogC?wzyjOGgqLJEmN~hGf_O ztb7swJYh~mU99vz-FE=|V2e&}Ki2QjR5Gz$^m#VkHAb1awJ0Jt{8MH))^#9x*dQF= zej@VEeZHX@si-hEiJN2S`akTw`CF2S`@e0gHI>cOR642EkaBM%qodb?GFjfF>iBtPQo3fGPttEXR2X7^%3^$b=zvE<8P3kxPGoaU+ z3V^-?+tXc4S1PfL9I&)8F*Gs|2dU12eensV=Cm`fbv~}840{b_T&hXtnRb~kX?fS$ z_*MCHN;DG=bU?peO^&SoQHM~|5SlU-T?LclwsMag{{F@r`@((Z|8mqC1*RaM_P3;c ztbY&-P2|{PW`KiGQ4Kc7YYZhu!dH%Ph8LC9P7sUXTbEInz6dO~b5B>lj`}%abr;+j zJbo&M<4r}na1Bf$Md?;e}flup;AR=j%LDm zym@{@Kp}y)m;w}V_GMWcw5&0bLwlQ#-P>yR9fLUrGrs_YAH=Rn&!rK7JeX6KwLE>j zT|C0RAYOn{1RPGnPVk{T*CaQGJ2$-%Y3aO!d}@7AY@!IINo*3KW*Eyk;{{>I?^YJ; z3x%rsRym&Qic@!MlBPFoIz86bd3OC)mDQti;8yc$hz1yeBdJr^3;}NWZ>-0KOh-{9 z;5LbRbaqgzjx_zl?eRwCKHDR1lSXNqjN80czQjPEbO^1JJ+88$&`!ZK^EpC54>+Vb zpB-l)u`>UDX8o$OTo?m>a_Q+u`ca`1{dbTG3zBrd5!K ztr-$Mnl&S?hHKj%!z=sW9(&(RNjsUl%N`EU!kLZ_MNOAZz4b6($M? z$sm#>$2pAf{N&GPlE&WdnKr*2Yyvu1@NqIBeOXVI`?I7>wuFZ>P}q*k>faoG2(ncZ z8<{~ugN~_A;H}TCrTny=+iIS>^Y%Y)fnyimSrDA;RENez!81`};7`q_zp%D*lLQ34 zs@L$Lu1RE$dfMW>!{hE_ehpJ?wnsej(?4n;tupxD;6)gPd6dBDU(uv{#L0<$Hj6P< z!>uZzfW0)<3H;m69^mW#{FU|eKwFpk7&gL?p+`X%wICF{@d zy3Ka}%g0fvgF({3Weu&0A&R`Qz4Osc@2y|Ij4P$vzCM4uF5?nm$>%~iwDlkH35!C% z0~?-fiBH>k8}uXR;kNs~h4WjBT2o8-fz+?ACt37=8j2VGel^@5Bgc!b5A%O*mpwfr~XyuZc31Mlob7IdP$&7i8@!ci&f3Mx=}N9~0G6 zfT|0iO$7h(Q{rkMSNnAppBa!3UtFc-2%dDz_Zpnms-&X8+5o@ZHC*GhRCj0!jC1QhNqRACe@gDcf35tW(l=Z*|*u>S~hlX<3L zfC6_F%o~mFrD^pl3W@tH$clg?poX)O=M>jOqPdL&zXA9=FI*N6+N1m^Vj;=&rNtF2 z*>r)f0ZJOHmIjpTQ<~Mf+_lDtoC`zR^)f-ld=U|*&Ef0IqOJST8LG)ry#t_v|0!kf zrQ<3Qzd9I)XJZ}!+k*Rrj;F zwk=#SYdJa!rPpd2A?}7u<#T89C;h388!I6oQ}qpFpW+0ygbgTIR?xc#fvICuv0Sx^ zQcPz{gFV9>*VVs&@s|9s_N|kHQ zF93vS7|z2<8bnhp{=hgHydq5)6cJ0c>5-_Fb#I+_%R!{}Li_GO76 zN3r6g1SP({HFR87eY#4o^WkZg7ZrS99fV>#(DRgSf&aoeWLgXG-@EL)7g_*fNd)n7 zCeQVGp_Nktzj_W*t4Jx0nrAHUbDeXJzmK0=*neq)P_c8>htGF)nyr$HMa%ztk1;%a z(n^S-uyyK1Eqc!Rz%LW4YsGr)vcg?T8U$41+LaTS4dI7V}hW4qh;5PLQVm;w6FQwLjh8Z zra;nM0t{^ctdk3I_x^2$A2vX%fgGfWG+!6SSZgWiw_Ppo@I7;7T!d`lMYYTQ426co z&fN`;SD1`?;+=-d{n-}9LO~ty2BZQC4d9tFJ`UOr zbpK`C_(;RIJ6#)KPXR19Dq^#}=2?v8@l#jZ;Of=nj z_{M&Q#qYC8RqltBU7*g5gu?7DdJ|291#W2X6ec^SQu&q9Vvi*%O`?e_R}TGEB4=EW zuXw2(#%eo_Dkdum2A}n%9}=gHA|=53fNYH3_dBNRMJu0)gv4NJbMtL*hvCzSm!B5o zn%~}}2#NFA9urn^G(m-3G00b34eN3ztOzkKG|3XZcyV4c=V%ph_uElV8PU|s&+9nP zC-0}CxcoqH3=g}27HOA815Oks&s360XeMi#)30Q6cPylKG%9Q^6s|kI@5CL#<4%sh z@l1$dPo!gjk}Je4Gj(8fc==RhP``95I25%CKceDPj;N<=T}HB`i+R!;Aghhnax)fm z=7cKjNEnrR)S)Eb4)#@xmg{RG?vW2Qfc>oo121AUa-{S0eGV_B`}mLRZ9QECo-1SN zkG9io0jN7cg3BQzf0;GSW z?~>J}2awXE3L}S!lqv{v6(Nb5Egp>3)t4oUA?z_cGNih{;^FW1KTy>xCcfw1c%|pc zygEOf4NqyXXCTTb&?=FEB1!Od{1OzPVlk9c&m{t-@>!~HypdaE;<^%TKkkOEA!5I5 zv8ogWK|ux6SBE22@M}^C4qCQ-DI>k(PG%$L)VE@OpuCP>7%|K@s9xj=iQL_JA=dVYybV54b0S zqtIBIGzjM(G%lqLCm3zmmb<$%`?{YGRNzDn>+47hVzI$7>}sez{kuHZ-9+O(=+8a> z;#ur{6OvDL@7qNC)_EFjOs(4NIj_#@3$Gn)7sbHP^$(w~c%43-*6rE8tjV&q#lrUx ztE$k6f770jdzII32UndRC*)_1qq?-K+5PR|MR1#P7930B0nOR*Yn{n{rG+IACHzb= z;7<-(F$=I~jlcP+|5? zS8?hemuR*f+}{QL^UK_CtDK4?<;9-T@e3&S2ulMD`%-At_|yi|x1rhjF-UYKAo>B8 z?AM3PqSAl;^YO8NX5I5yn3e6`)A{~Bt;2-?dDXySYdMnm+^0pC|NYFcr>It_)8HBK zqwsRX^}L%K``U!ZFqkB+SNdQ}v8zqB6O~-4qjQ~@DXkX&W~%E*$tpBk%LT7Ox^h}| zHw#T7{LlMQgI-sS_Mg(#%KIH&(J3nKzm|=FQbu>Q%ClLAn6j=J1*=EIoqniIKfOdB z%&xs2OQ^7X(nJJ5qskV|`d^RG~k_2Wro0z+=>-4z9b0J^>|9XbFqOktEbhBDPswSj$RVGq&01 zjIo(I1fPsO*CS3HQRtFY!<;2eW~zVqJ?2C&L04Or?5F|HXICqJ+FFNSW?_CmKX#{U z;o!c?9l7PrcS^fIr3bmtQW^HR>ZJdSwnn?&T050+>H386&5a>Mqk^i6RVS=jfRHq+ zrl<{GXfTqP4o%)*d9JU%x_x1o>taZTDf|}2YKUHvWlWL0!F7fNKOM%J`MN{`ive!Z z6aX;%q2OW2C)#kk4nR_4XEkjJy_7B4JvZ0NJTJv>6I7ir#&ctbtlHpYk(4Zi*BZQm zQr01s#)+1OtgBTw0i%jezZ>wSG(ElT{_T5&kGkrKt@lcsDy&XpQ(Vb}Pgj?c1oi)_ zB36_=EyK~axJW8lq7%qGg89259__z$g@(hjmnYS8Kbu|tuK3M`-`11nbGLr>%HnZyzKafWQcFL4@ij*!urlzC=zY|;5({IyG&!gFSZ;f}==xiVq6bs&>nt(~@W5z!be@MZTb zHbl&I3N&x|FrSsZ?q>8)mn@|&Ii=)Zo^5t&qf8dH7MJ7Vs_;1lp=Cv}4zzNtmxR=( z#8sz77MLe={{F^m(>L#4xJ^{8=w%?A(xWyH0yS*Dk_t!vXLK`&&!NmsO$7*NE1LLN zq*&p71kqcNb<@r*@~{bBgX@%XDcHVGqErq{9#uWyww!S7gU=F}%wQA^$c}~eSW@#(CyeN|CA19#k>C_%7X(%t9 zb)aKYd=DnmTqirYoXpsQ6FFqAIAK>40gFbBzrRp9pdzWSj*dbgwaur(YcD0G8%4ML zZIaccIA^AbjvxgP9#qUuiz0(+$-od%!h|Z{~eE68%f#_aykf48rX+?5$Ta%63@r4n$~WVRkdB1?vG33e~D9#q_6|Jx(G- zH$pB}6b}xHy5(@v;N(cUm6Zo@i+L=6cepAX$a&5f?<&r;bE!!zWAkHN#hG&ffHkH2 zjx0^qawovu!%5Nz7U6c#*&g-+G=27?!^OAv?(aBpW^IVX%vkcYrGGiJgpYn( zyvOTTH-8Ti$a0ULXg6N%5TgVFX7xJ0FQDz~eZP)N{PuA6$!q$S@EML<*L&q=N zzR{l(!#saGt#~XvK`mA(H4a|xvpXXnPCp20oj^LE(2O9bm>6MEUr+s9e1H2#*d zdhyjd!r$Zbx$5VYw1>>JkdZ~k&rKq+H|GhMAWn;dRYF_^SVbY4Q^L~xN=mn!el&HO zmDWs8&mZmT>UUeJF|LlXevX3E63a$b7HB0Z7>-rr(G6_4*MI#=tcU`@@q)xEcF#X& ze*tZ}u=mc|i-du+&GMlN0{_cBH@f};nq7v~VQOc!(%$=x_lb#P+TmH23Jai`4gTh; zE%$uiOeFtw6KjywW0odULl1SNrUbHw2sxPqHI2hCzYvw&X5CaSh4xT+VUx)3dIDsR z&wV5HG4`IQ#y_rTv)SD z`_7s(4ZihAW9bUKTWM!PALNap2IN5Euo>bFJqAp@C#Im^*A6d;KOi(X2R_NB@EkDl zUk1HC(Bs-WDN}2gIO3CI{M?A?^0>v9ErTu?2%?JqcV8RG|3jB;BU5e(umnRtd;U7y z`(SGh=t6}_mh71q2CW&XnAo+~Lx_PUF3bZN>P&^9xK~p7gFi#s6c$5+8Mp;a7yEVw zwyi&G@gzRA?f&`#2I$SQN!9`-)AUTR>vRQhqY3WmV-O+BI_Jtj>|&1b;Rjf7VAl*4 zr(Qw{%1p=yi_^F+em*C1b!H%+p9EEFD4p9;gJ`&GCd`EeMS8C|ADh-aBk_H;DT^Wg zc&aa;*E$Um7!{tGNd0JW%5C|E8Hk7Z@b*Cn06Q!ejRKRiaD)pkwM^Q@br>VtwlirY z24R5flu5_reOS26o29on9k@;3Wj>xEqxdNW9Ji!d_-u=T-36pI=}sM zS&DyLz==F<42;fH4sZ;T=?(9{WDVZ!BQ=a#UHM~g=Qal7#>YruqmntgU6`nhLf8G;bL*Ml6{U+zr7^=?!lUbTmNjWx*<1I(P}H4BVz}H7iTqO zm5gI};%etoXP2V+UXz5hm%}{`i|n4B-%68;=0M*_F8^h=ZvXEe&F@t6oxcYtyZQ+6 zC%&`?%p%9-sh75~>c?m=hL_T<6F6Ej1K0HNaYOF!8}^y4uUN~K>?d@_Z9FN@9jO>h z8)$&~A@UXiwP@AlBV|z-I7*{ICh%#jOg6I+-14~hL819P|6mn~Z~i#Vn0UIvy%)0g#ZF(a|T~**&;e{KoCbYoJ&-KbC*|jZdt=At0bO ztEjA54tHo)*3h|6&I3{DI60|92#ugWSkgJtK0N=mHqT1u$YNoBYtq{YaYX`jCVPdx5slmUz z5#U73R_|F^{`k7F3X_VkhO1nZa1^j=x$3|pQ)fv_D#mf87a?iRuNIX+M(gl%f83_*&H}@mmPMR~;-?MtWM|0f|@3V5F z!M~?;lm#CkI|C2I|BOcJUReu#3q$$E+F~IpB;pDSWqYNKeo=Tn!X$dlwVNTHM!}ms zCm$(Npw@oYdo(L#%Z6lb2{-?@=nj)XR&lYKpAY0Jp`Gd-hP0{d`JPPB;o##^>Qr_7 zNJYb0D}78d8XXvw!C#I#ot_<;Y`wea0*k;FFF_RILAAdF-}lzOo{ULfEG6yY;}b@< z^|+9LKka!>0#dO(&yiP1g6RuIpY*YKH=>slK{(bg;A8R3*NG2eQ(2oxou6B-A3N7+ z`*H?`z!Wf%SuWIJM*}h`=WF_|AJQU|KeVyV!tBnvV%bQtaQTRBLzLMsx5*VZwD(J<1v6zfYbp57iic^qVm+O!UJL#J~N zrD$w%mcX-8ESCv_%knywyHzaF69|b~-L+biH}(GXvq*i2oAP#W@b-DxGjDxBKuG2P zxZg|>S3EaX<+mBI!U%-&8U8#HP{xnZ5DBacukJp{TL0ZWi|vA;>d#F?@Tl__H?{`* zL7^3?x$%Bx{vcmFXms?FkPIbYS62Sf!FrsK$M+?Jd?T&aZtg#2mBcxxDo{_vRQjps z$PSKINNh5nTb@J4f_$TbJnXxBm;-DKP6TV&MCj&rJG7X^lGg0r(zaE z@DO$mW%cgcw7VJ$$FdZGRvO4s=D14cR+vuG*0udVO(4!ZlU=g)d<-P=0;_79rW|(h z1z=T%6b=wXYSQ9#%pr%X_1eWUqP=5v)ubJ&*>T`wKN|7oLRIx~1t!DH%^A-xVBjzx zX88)Bf1}sGj260sqLnav(Z8J4`?H#Oe=E8p@6hpIHyLkTm$`^l?8*mU}(t z2Z6BTuw$R3%Y{x?k~L@&aFl+VH%S=H8IOv~u~&{vJh8sJmJ;lH-BdT3-Z5)gBdMm< z*}@T$KD#)vClfY>ukF@F(HDc|QotZ6{k5(VDiar;zT$OGYn9O%i!nD(jg*;<`W|*q zqdZsyl12<%$AlM%O2RKLLcO3;JY%T&LEaWb)Ov2u0W;n&>#Eugnk|D~6i1nTI7_P4 z*U(t3Om!?jod4j_34aZ&US$WPR#q{iyp>Z{t3I16&^w+sRk> zeu5zPmofg)^-_EfDM%@WpfQTr@RRWHZ>)@7cD=FE?mK$wuKqZndDx@)E;hR0-=l>%44 zUrIM8dtbqlteJVmW9@{|jK9+$J>Om0e4um#*wYoIG+@w;DJLXd4GuA46dz3mLss6n z+FAFC)hlYbVVTB{`>pQP{ZBszheYyh3k26?)Odb%Ol1~7pbI`VG6Dq4VpP*6k<9`L z)WKpA0~;Qdh8EPC9Dhald*^Fe1+ar8#H6!S30ffWgobc?Qc3n*LILX`URx+x@>r&8 zQaAlJEpxL7 z&XWCQ7(5>agIqyRF_!njSo4m~=2p@VS+3{-b}^7&f<{s5UTJq#u19ay`L2s6@YflG z_RF}QWu<4|ER_)*kXSTEO6^`*0@yI6{7?WH-q8a?+(28h2cRhHsMZf=n z`)10{U_Z}@fW{!-!;$}6_L)So#EXKk1ojNp!)fZPb#ovU`u-#9W`nVD&$hgF?LoyU z&D$?L*=RsWG08EJ%EQWY*ct(x`tsz%yPBi8ZchO)rV0iZIZG-M`p_R8+0D079n<_f z%`MaCZhcht#kK|q#CC^Ht+E&}gHU&3I`&H;*FLX_5v9S2q=Gij^x#Itt^n`(+ne{E zo;0~(Dyt?35<~pO4SuB&>?yr61ISmO4P~3xj>Seu-&3lCsW@7szGyV6zlXa1o>#t9 zEh{i!M()S$zSBy3fF;^%Z~(dJ&o01ER69Xw;J~EB1vRX$q#V030sSFXpk#ypnoFn? z6)zPR^Dz~O3xau1ZAw)BBMDnI2wXmbJV@L*>jqo|iyl@$xhN$t}>+U(r)>|K<$>?(#7+_Lf9 z$4jR`9(UGstno6Avv1xW6f@Wdg3Y6)hQ#fafn%uVyz*gA9!rZ6Y0rAR5PbvLbl%)9 zgqhWE{-4nv76ALEkzLC1T2V617FE)y#Cm@$E4@INj_vbZq60$c&op?M_N?zMi0eVb zYmd?m+0QZN6(#1DxDZ);f*$aW_mP6G8Av|-gq;Dd=(Mn8R~BxV9>ZQ7s2l3t^xa(e zF_7EpDu#r)qpXn4lgB93-6I@?XqE=#yI#OH+k@%Mm?i(KS_m7TL4{9b@7jxA?mhmP z{n~tC9rd7KOye8I`X7@?Om;@H&qj~M( zu~)=Bn?a(V2O&|xO6WW!I4j0~UQ`tlWT6v=fW7m;f(vgsZrNKtBRlsQOK(KIU;MUr z@QqzFXHKAsbUh1B_`5CaHKJpxe{cQv0K+wJ8|P<^Nhm>kB^jUyZ_!YyA9`*@eMA0% zWOg_E&j*+;hq~RXX5bs%?D&jfa^^C5b;ze#lbe&oHI>NADvJhZ2Kx@mF=f8eBqsd` zYFGB9bKl>b2|lg;X#1frjRF=trS2ik&E?1jG<8qZSAZPJ6Em+xmA2eBOx!3}l{ z%x}utD!Ur$#1A6Yfa|fR&;4JH;{T!~M*lzj6>L73+qSrxBU{!r=4P?on{AzU$yV?_ zpJ!)|T%s&lGRA>Rfp(m&2C!l$wSBWBzN;0WX~ITPne(s>W?mVHbk zS9q0CiR%d4}cvh`WHxuM!Zpc?GmsQu4))pf0Z=pDoj#yB8t6?_e~oULtUoa9IB!Xoi(tu`m0cpA2SoyGT-?32>Oa=li+nf1|#35iGC0E?CmnBP%_LY{pm167;J_*>_e+6^Ez7b0=)gE!$VrGSJ7#`Ow29 z$q)ug!uF1XtZA^SZlCHEN#P?vE=HOj>~v~P_J&I!%UAt=07k?rRWMj1JWDU4j8K4^ zxn|X*^c8V$TKC)(LL(cHW(?wxf}a9x?_N?H=UVzfiSc}keq3LoA~{LCfO7^qK-=1` z|E5V$0UCGjK9+72*{J>d_p9ua{U%^r;^(SA4MPF-B@lv$TD|OpU>qG4rwHfcm}7tE zCxkFT@ozjUEZaOSvsO994@tdh2`Ned?ICl=f519FMFG~J`@m%h-EIcpcOPh90$$4@JlTC*jW62nMZiM znZnrf3*Raypi9ssWE`!aq85~yQbx#e=JzV~P|>xjJV*}|%ukdRfv@IiE3#j`5nHxLBdGjv$^BQ73W=oLfAOMW(IYD!aWd ziFaOTuk73r>dsppQ70JVA%`gwQHPZ3+K3T;ylTs8s87c5NN zEJ83{-B>pYID1h$BACYo{V?qB<_&xs0$-&^d;J{~#=d*>=el)-{#o-&gnYNf<;Efl zDtZr`g?ET8wPzP5dvtq{08xxi5z-vB_7u44!HHw;mr_5j7FnAv0VnpgIe2!vH14?! z>wVvzj6?=q;7&qYX>E^l9dB6W0$Kh4Nqe_jW%MP5g+4%)@q@5x1O9-SQ+XyCK-@EfmaqCwsdiz72_G}4y5MaFs7#E z6rah>ghdJ<8WI1Bq5N=5n3ApGtn8JD33xaHx~I9ZJ|gEv?M7qcWUs7`VnW3P$9=@R z-=TXB9lXpELVqurmr}D9A7ok$Ys_FmU>YaEJxC>=SnK1BQ4$<$hY7y=Z)ZH&MrdUBG>JG&L*aUe*@=nQYL0_Cu;cT}Toc*Ye8iR3=PYT4 zb~#f%RvH%2A1o)MV8K#v!=la3bLN-6J*U6l5n^6-#cbUom-j4Ue7ZDz?sYy6bX%082D-x(AGVG#-Ij6@m7}Tp6~X3d))ZI+Pp^GMN6=G!I0Jfc$eXha3s2qIegUs zHT*rY+1Isjz{9(_P(NE8rpMwTq~!n z1f+%`N9%TLLjxlhgT$*|-ciBZtPrC;)QJ5%I~yzVpXlBgt{?8My}U?MtKgXu^&-wY z4$Ui&mIO+c0(oDgU$kh{ZzJ#bzjtLwle(^1t~PdhR;>hQy{Kp-FZEb697)q!c$Sw} zrpd*w=z8+!G+IpvH=M>tRQiGY-dXgT+Tl0LMcm*l5YL$56dagH2qG^JuZA#C-jS7+ z14#ru8-$&7&52$c}J#}YPEDLsqs$)IS_t0jw0!EhI~ zz6=s62<&6!oXa2_+tk};WisYUC0b2XEM+>Kscow*qJ<1lxPs+lZI`PZ*pupEZ4@gK zkKsc6w+;2tz?0`$8+}+JE1k?Di+61>GKl61V4qo1iA2fKF$Xej3!RVlSb!*MH5JRE z$w~Cu-+x&%->}Ze?!wo?WADtgATPfZ3LI6!Xm6uv1`Pl(R3{GDtn40Qwk|Lvl~Qb$ zOW?F7b|dI~`|*xhLbr?xJ>8ieSV=^WEEWo2GsEq)1tf`86ehI%#7c{T_wZ<|c+@q# z>0j?|n_3c$4_e(e#=r8KuWEBjXY9dINpn~Xh1$5|0b(&lmCO`Sm|zGN_x|%(|Eu$R zr`F%P9lTw_`{|DKv3nJ5M+HRcKGRkXwZ=v0=C3&K$xziq2@z)rlh+mW@l^f{zy`nE5(Q_7 z^$u~XIsEzWqt0ds)9Cp}!B7f^tfPG_n|gED`tnI$14!Go5AeDNSz|}DqPd;0RniMk zoO*!Gba27Bb5`RAv-W*s;X6i9_$xwmyz!jFVN+bEqRLq&_bamMd2-rP53W`?U`x}1 z7lx$`R_W$>`TiZC{XpV!?l_McmmClnIhfBFRlyCe4CIeO_Q;Yq%(amL#_@1SmP02d zD$Vm7{mjKHo%_vQiRVw7Co!CNr|D`!DNBczhjl>OE5H#xq-$ki>iWb=HtD;;Zc}QBXGJB7Nuw zu|<4VyyMdh{W*0``}Sv+t+HLAoloA>iZIGah9D3~h1S;aHV#(`X$-8GoxzYYF>B8~ zIxv6b5~}0~D84F7|H@0R@Wo8u1A)bmYsChll(uAB6WCDp04c#hV0cnL0I`pwV@ifq zbI%Y^E8L=+&>v*HzT(oYPA_c2u0C(*ExYt=ui;ikHSi#h_oD@;P?Q%tC8`@FmW`UC zWh%!AJ9`5U9)5ah^N};-y7lw?LSthhErfRWV2^d517udjMBV^MxytE4S=w(lL*jFi zF98x2jgN$OqMX3J{7nTvH=X%gQ3xcw2H@*JKq>>;mPSl%m^ zv;Usj+?7I2y5b-t1Pi6SKm(%i;2&}E8E4L%ICi>g{Iikg=aAr>!-pg5)%E-siH=qs zsR4@r-YdHrN6*%3#MhWY9nGMkrun$z-n&`twjKhukxA<D;8>ZJ zAspFT9E`SMPgzE&XPX9rN*UCT(ndScDf9b&%|;W~4X9t|Eo#u_mcHo%_7(H+OZp^G zI;}pB1lM?E1y&q-+&!v%sxvV=nTM@9)DsRfBbJe?%UsA*qy) zveD+b6VK$xZ)>i0Z|fex3YBPthCA`=l5;|3(+KtRs1~CE24*+&puM}3!g9yr%`Ul( zt&vx?dCto}(%hUA*pp25E(4Mj1D#GXMP6m^Vyg(M>Hmy&AMQDM;$~h?ysZZg&-H!!)_?1*kHYYZL+WFgiVUmq zcnif4(g}Gkb`p2FC$75exsoj*UfFZDSd~Sg)IS>gAi3 zeg;mWS@+;v>4umdzoaB(gMEaVb)vW}j_kdH9{eD?eKGvt`Xs{R?$?!1ulrrbJPIAs zQgW^mZTLmuaScS05@pC*Jv-;z2p8eR3?_`IC%agf3wBfXW#yGxeY>1nl}BqS%#xWk zB2Gp^t}&G(26Z8PQU8(z)U2lAa(tt3nYP*l-cxYy?exVb{ijMR-;{s-Q`V*wP^mV} z_+i^kybRTIX4F7-NvZTD;yeb&YO|_pbminP*;J}&`gQ)v2e%(;o_xgRQ_jWn=6P%@ zg(q+6lFCL4lZ%wP!M6#2%@79qEX^Lat4>4Opf`#fxQ0rk=Lskca)c&Tw}ZU zkQ39J4DD-!5rbBJ(;g;UQ) zNMnzsk&;5jy96dBmu%JaO#KRQee1v=4>}pxEBv$g;KcpI{mmZri+?bBO}_~EkF$Il zNWcH+T9FkSR$OB{3?z^5B$ndk9lFBe;W0-7Z3)d>WJ!!yDe zW2|GgKz>ld+X;B=(emv{E~>uIN_%#3Wz`bLFh;gYbQRg4*McHH&SZ67$oJXzwl!jW zq&!9rlLo;jmk4goS$4ib2r7k%r~hYk;B$BGQCAOcY)Pb_JkR+JtNs;{d-<51Es8iWV+$Zw3QOXf+huFatyd+d~2J;Ku}+N=nr z_Q^Du6we)5ikT=13kK84-M~uwE7gnUaJs2$OGW2i^}gd*-W+`F8*ah8ny%ZrX$ zNTa`1Yf6*=E5a==Vx%=J|1;-Vqr~QU41$f6z1&|ORN(n;XH9ysbgsoE#9X#TB=7Tc zIpDm@?G?#h$is8sdbYYLs?BDogiP}Au-2(pa(ZD_0S~QN9&7jZ?%#;Vt(n>A*C(3W zg=iY9b`L~AGW6Zbt8eSN*D5OJk6{A5*n3 z^+$GTz+jr#UXC@e0LkqWX4v%ItR@kMS<4iQU|_*CBrD?A10RpUXz?WJgIP(9c2EW}vkCq94o4@CxqXmWSechLneW5_0&YM`J^_5xT)z+%~z6Fd2jKh*rB_PMg-!>Pb<_;db2mJkR znz*l8+$f=<$c{QLvwz)=%KcMBhY}^|@ zQ57;@2TCK_sI>%^vi^R?GFk*?rKSZ3j19B|i?~zyi*Q>a)D?AAZ@>0cazQm(Y+R9p z{mV>Koq7=qz4~b=fdGjD%MFT$x#7==)^4EFqs}CF3SHa6Sp~PgbM)jrKH%k=``2sG z#0#HCJ~6bg?c!v52}J}`rp52OeKg9RR>O~~nbp+fc++kD@=w%F{JM8tHh1uhsS!+D^JR zZQoT*MqzN5cL{Js?((k897`**86zj#MH4@hU@$z2wrudb?h?oxF7LSv>Ua6e>>$M# zlUv2sH{LCpNFhmLMu7^LkNk=6AnKt`h`GxB_l)6@V%t#^q~io3lnoFFT;u4X#|55OcXr`k33pF*=@bp80oWpfJuw++l& zo!q#ZvVhPAW7|DReMyPc&gIQ?Dw&)EKK^Rut|rTMuQVE=Vr!D-{=W2G!{xmvjJ0pS zHA&lUb}e)HLozReQuZ)vI4)`yXe;2d4fk!)dukXiE0`G#LaBaP?~gOB3!V4Md)R;ab^&^&r7C>e)^lGK!oB^Tq@PX>Hj zyfrIoovppdZ34LY!Q5=b<*8}ydh@UBaFhzh_5-DNH zvgsXTz29BA)O7xPtHV{-zq#`$BsM?!L+jXu!jSNCoEFw7MONMF)<=}L3Y>O{^^t|e zV%_|RkezYpL(Y-2iAII~ThF=4M7MZxZ9aJ!pme(nY)v99YJSA9>VdeDNJTKMX)3ac z%d1-nf_X)ZK0NVcSNJmbMlK^R#BDamp#3c>p|BM)!X&elBK(Thu>yKzYR@i@dVOn1 zNR~C3`cGx%)q9?eg}&2!%Wu0G5dE7~xfK<|>A?d+MIWV_!(Xx zk*#90GQX>DExqY|xh;8ncPDFyS8BnnAss1Gh7y;@%q@W7QxpwATr1?C#T{kTtGfj( zy<&77u86*-zzFhsobEqq=j9g{0>u|Ur#jM+jogW^U=8!uIm9 z`vDT6nJi_OjGcTVuq?DtEkrM{W@(~@AAuh!4gzBT5E2VY)Dt$nzhl?>?Xf`fOrDuJ zV662C_K$e@ATUw_tV&r6IPS*qPj%l<0rcG+pG^TzPZl@CkrGd^;U@ z$L&h>+It2k#F8i7@715 zs6PpuYZHb?@-l<_q*Hh?LdU6l<1z0Wq-Ow#Q^di0IrHe8WHR&~Pyp!IZg^8+QbSDde720?S0CXA1&Avt z%cZ!Sz@j>yO=T;apuB=r;c~{kKQvVLZeo1XTeFXC42t~>aBq)y3jVyE8aq^5tZs{8 zP%9VbxRJ?rKveT;oz<`k=I;PEXgCJ5lh1#*@jf-VFAg)|SqO3)H=*&ju+9Q9I+e=Gk zd5DrIRgC4{A5f8j5EZ-90OY6)1^zpCt$e!o+9MjXZLDI#Dk3t0ed z`zROsBIfSOaW`ijDU~434``l$@Tk=;>FrZ#8Mx?#oLKXu5KhL}Krh=;XL1 z)mR@t6$fe3umT^vm@d8 zv@j%sEM}{`F~I7e^=jYlJL&hjm;anl&z&G1Y*=>_vqlNVo~?-mA@o+#auaf{(K%53UkfCA zmUEp5#n$YF@*&NT2iMaAd0r+GyFU4EfFxsIX)nj-xYJoiL@Kb!$ylhi-%{5dyB=Qpx(ATO8h`O(RU~=S#6hoUiK_pPy*K|#GLQTJZCb3RY}&Qd zoKdqftt@xZshKo2B`q~2v{G{+#1#@mo7SmZaxX<}au zBoUa;b$|bY@6Y$Sf9f26s1sg?_w|0gp3ldFQOu!BY3FzD4cw@G;Ch10wUuHLNCKx1 z4`i!MED^uH{pn(Ury}?3IzwK5RS5xdW?WFgWtJhW6#@Hw>j1mr8Sy+X^c}nG%XdMCky%>j#mo7sshOu&d0X!Xyposu(7|ny zSUXrfSst5Nd#q$4cBN}^o)DZQ-$s#F^KWyTGI&JALRHpefIEmCbI{=2s$bU{?D)Sw z{_i9B-}4k~Iei#Q2d<|Qy<9Bo@S2jTbk=NFSL+|B06|Kk;3Gi5#)lnDftRm$)_Iz15p69Cm(Cmys14nYfHWbI~r zxpur0j=*KH3P9MEbjA0PqyahLJq1vtT}x&a@-9ernJlMgQ007?`uOG#>Zxz9D) zxw7&xYowSihVO+Vs7C)Q{|n=^{LSXEp>R5jFuyxtf}cUf)SrTlV+ zO#;^k#2&Q9bhpJ{p2SalX=`ysMfB>1X?=>gsiiV&jBg8#Bx_~glM+j)tvs@$ zfV#x;UtTV^9GXwJ$rrksck4|W6P>zHJc$min}!ObAmKV00>PU}e0v63dFxZbocCmP z4<2>|RiU9L@Hk*lHZ(*{*;$jVc4|e@L+5FWC;kfA(ouM`(-j24nW9W|*_3USt(SQ8 zVS6@xMW8*k8&MAH@1wM`P`sSp;XLlS7ndV`-4J;usXHAIIz+2lB-a+oDSd|SN5PTHvtr>vmxc@z=hj3W z3dPJ@;xs(&+!Nvd)J~zuP`1(F11WxYc3c?pM&;~szdeClTy2JhIR~?!*47HEDEUMo zNkr1ObTqlp2SPA)RC>h!?1lz5&XI@(08lmt*jf~Yfqh7SMz~pOZB6)#cf=S5nrN8-oSv2wXw3qq+Ap{yMi$$U!CL?zRNG1bLq}|^n*2`3&pu6VZ+~lI zQq}9SChiZs8%CusHIf1^&_EI-N;-I_60UWkwuVBMLdEpi#^#B92Mp;Lhxg+Bmh8ne zMO;HgmsA4zGkuc`Fk|h9i3)JKpdHC; zR#I6ho6iP0eb?YZcfy7?`+R23%2^Cl(#myu z`iVT_J`8RwIBQNu**nL{xl29dxtMb}IzG$X!C^~I(045COh{LNP-M?;W{xdyJ%j+5 z$ik?c%mfr;@jnAQrxz>l-BI522K*XRjlsIz(`M-Cot|Uv{GdQJgG;8vftwbyD%{VG z6d4JfwvAt!Q_-=-{~0)(-fh&e@W$ZZzrCH!Pa51h&f^uJp9U78(zpbuG?oRWPq@0q zvint!^7*!Nm5>G+SecX>^k@7JauW&8sNq{*j~N3!Y*Jr5GeaHwAK_Az=c`y7^DsO6 z+DcSvk}zYMqdIK)+VaAJ_ve##blg7q?P6(RuO{dq%}L%;+A_(tL)4Wq{&*LzO{{P7 ztN>*azk~K#*1B+ddW zW7cT(C!SC7j+au9iBf+RtBSX*DyfOvk0%X;;#(Qj#Vadcj$JtB&TTa`UOodVu#l|Q zJ{<0AoVC8Dp_6Fivzq178}&t9-9&fK6fS(sMq+TDb0#&&UCAkZu9^**AwclqRDOP7m>G%@u_K5orcxlNNyc>n!UH?Yx;fp{B)&b zscVNTh8n4c?k=XiBQh}`2OoYufHM5kJx2Rs!zTA{0v;$8dm6G-Je?&!m<}Ooh#x2W zahZzP;dp_Rs5`<6l^-3P@yn{)c)avnjSb2el7zi}P1@6~l2 zoP8BoKQS^JFY#wZA}mTPykA#EEk;HpYQjlXZjn=p)t%RJwF5Ved@S;fO(iyDmS;y} zNU(39W^M&R`~S|WnV{m<*_IZPic?orw4!;mBWV@e`iX_1BF+PN&$$Ph!*LedicuqD z!--mbPTJ-ShKL5nP$XPPj<>%@nuYiEM&Q3`n4kJ<-;h^S*6@aReFD)+fPxp2JqX-a z2-5%+s*0~h(vtFMH4D<2fuH)nT`z<(&%f%Ma~;C^Ab1a-l9J*(zxQ+-%~cUC;fl?f|XL_ zfx#xn?2!E?|xMKks<*>!U)_di})yk`CiPu)tVNqBLt?8f2 zgr*Drl|Jwc6)S9pf|Wm1Z+`uEan^lnb~GR)@G2mCWDqR`#Q_m+3xq{w8>JeK8huTm zhh?iMklHSHqGM>QkeL4QPJq)78;m!9x_R-NA{XBw8x74rmaTkoHr7meb%@Usy zwf#HV8J4)nV||9?yFPV(?3XLIF%-Liz}Zu%&uyh=8u}}kWfAp?87h5|xl&>6{0;h! z1do~|szgKmibj*VKX({>A{#7DCF}8e95xlxnl(5NbTiecqydO(^pf)KBz6zA3?0Sj z^6L43ABu@?om}hm^_Viw<3Q4S!{R>4GpS#5LfZN7WD+ZnLWia!BNh*p05+$#vcj^l zBn>lPXkYo|5plZ5>0R8`$0*aJRVhU^X4vBbX3Ef^+B(Di&!^Lim~tRis1j$dq>tA> zBY%tf%#bVkD|lE8t24KwBd-Q*_jNdKeRh(u+D5VO%1c9&&(vFhc`+=Pm}yJsvrC7n z)YTAm=k94qd+8_&5jwA^6A@XE*%{xs#_jgjs|VhgRlmW%jVnT@uxWlF@hh~vWfDaw z(Ct)m1QJDx;d*hmqL~HJ@`5pf0aUyHnag?5RYD8n$1Jlg=kd5n{_~Q= zLqqM7{gorm>g#fS=od=o@#!{LX=mU5vVL2b#&JZ^KZC7mPumr4R+D`y-|6f)5W+()VH{IGG=GgwP;R|=>rbOI zuM|U@BhD9vj>!aZc3KfXNYw!Qb)~6=>tSQLu zRt9sJil=A7&oKW^7 z{yTt-jEa{siS;x^Q(9f@u9^(1mdUSDnsZ$jR5V|!_CP$ztC3fAUiDF@2zWd)Bf%IJ zZx`9BZXrst87SQ*M$IF*wM`2|fW z*F)aP)93uqqP|G^ELBtnSSSZcm0WSfguu=onAF-o`ijY?Va`mQPc{!pO?AIqMn9qt*sb8sh>CHkUm(X?vEl5xHX?sv1c=KspR zj@D$QPTWG|hzN|9Sm<@VYQ@YRPYX8Oj zE%2ABS^WKP3TV)sL+^q5VB}Ik2)BV%J`mf)4)PrrD!pz0#e~Dv0M$%*arnmkyGRdL z1FX2~SdYl2`aJI+WypMISdY8`MIx%WkbwUToa}Q_WkSlg3}9i3;AVoBtZ0R`Sb%i2 zaOM^81*E@((~LAZJr{~9R5=pF`7`4pS>rfgmyUKMXGoe@R~);}4uD=+&<6iD{j`*1 zbbKiJ1_->fCp5z}?C{>Mt{I*P8cHYXb%O~j_JKZo-(;BBO`A7~WMaaw+LGRpZ!!_# zUSep=Dsr9JsQQ$`tB#~xXb4WG#9otE(O@BQYL-&5rIeNM)v2r?5HfqMdWgrMu`ayt ztT?kKf9KaT$u8EFhmYrf_lmj_;L@~k&?UaMl5@I7NMDLVGQzy9D(R(M0LaxkPa;#8 z>dq(Xz?iVGj8*rBt3KL(yv-|eQz2Ms%Lm#U$%aRTGSEIen`YZQ=EnU0{*7gEu1!Por` zcJG%$_R{QM`-GVOgh`prZ;<+il-QBx!p1bzDu9YcQ|`0OFs+H({b9PkT(ras<;*eG z+{=_zwqI{~BVXtN5U=I9ls~>J1J9qQXD<{nD6NY*U%i6iaf8I#QR1*?({=LqiZpRg z`pu&uj}QIJJ-R_}0S?0JpJ*2zRk?d*lCJS*Q2uokYFQ+D{`wr$1}UE(Rfi$FbAHS; z8BB3nH*@)?+?a1Y<_+32YDey#5*1S+VufYP614)(i(++b3>C%6mIEboCL^FXqcnck zUP1=`C_RMw@95>!EoOmOqvW*0ORcrsz#A8)iq({|g0K+^HaMo0h>k4RB)`-4goT1!a6@xpogL zq?xZiJ66Vxrrpi!_j=-dJ!bj6kL#a!28y(L_mLobYTkU zsB09&fuEL*42lBosFQjuE>FeWavcJnAF0ncbmX3$x>X26Qrn^)9*Ugonwf@$z$h?! zeV4rJ&$B6+gtyO*8JZg1mu$kWq=E6l(`7G^QP?GzhSUEU`Mu^~IH7(Lg_I@OrBjKD zr1G<8{QGzJWtrC|0kRfcjBXyOQiL4z5lI3Fvo&2Df{du(5Jj~^8-tSiXA{T_@{p7% zOJw-0E86~)XTU_EOy)CJ7|T9!D<8W9jiQj9(x zFb@81jWXDBwW0VAnVy%%K2ev@4I@Reql0|yqK<#0hzwh+9OtCt1o4@lh==jpJv!yBTvH=@T?`qe19&a;KYc! z=0Gig4}~cxf??+CmX!(mIuGi_uZG#bO2pcLkcntxG0fHu3Jkr0_Q<=n#y;1$MWHAZ z#+?N!<{%;W7JkP*IPvgK(n~m_b4`rIbkcKT@%{P0AazZqGdyGoyANDm-FvPzF-1+G z(25cLV@w+C1HtOg4TV2m0iW+Xj4pCZQ-qlW(EWHAXH3c)od?8a#zTQN6G=ltw_P9^;+*Kx&{81doX@} z1Odgbzz8FnJlNgRQr8C%T(rq`6bMvc&Wb>_!mXy;uw@E~QmpvpSZPrsXQ~S#gh0`> zIdOGxY{tFcV>Zy&99^A${X(2gVeUHVD9}Y|ga_JrCfE`o?L~-KCRtK{tK9A)9hyiy zfN4WvgXhGO(VYXwkL3dHNrO#z=T!p3Lh0zjA+a5|GNQJmwo(bk>fmiBl1r|V_&}FH z$jAsokU!uYjMabSXJ7X1b(!Drs&_Ts^^5yR*i6C_N1>q8v}OZUb=KB{m`MM5K%~kn z)5-(O4{ddB>>b*m5F2aKT_j#5D^4@~V$|%o3W`7x_B!CTlZq1xEfwO)db+9Y$;bEWPZYpl z2Oj5A7Z`kNN>3~6B<^TOp(v$Pv|PMgdUtBrYlvQHllu3H5M6K*AlZ+l zH3#|&k^Tu$r9^rjQNKDELPSCM3MF--v?!JLbP)m=9H+MBMo`*INnH8#Si}h;F9YyhZe-Nt_Sc#g-g!UT zd-y2YRNZGKVcPnJWsN9oj6l0;5`E`xJhbfWu0tQxVRXU+pZPiX?wt8!Qb43bvn{2S~ueSCJ;BI-C?DILj>@t9LvYY539 zPqHLRL>diUVm7>{`V)RF6}csxym_I#co{H{&=eyjKc5(t?UIvoXgMirnKoK#X#LaAs)cFofKnJd`0jgB^yN%^34ccri66mQPk<^igvY(Z>n zx-00*Z*e!lkyxxW61jZj+i9VgRN)0lUs-ufBC^fnc8SVq$48_KF#U#rf0~q62I~FF zt~+f3G1gneks0aD4-;(Pc|L$bp$a~mJ`o(yd6KwCk{kTJJWL$O;!Y4*KU!>prkJm? zGV3v6Tbh7edMJ+d1n+7F3Pyk-swdU;jG5ZCuB1jh+P(h>h;q*A0++q_*h6xuy?l7 z+zBTs9P$d(#)}U>$B!V<^OU542B{Qz>XJy`Jy<6fC()qXsutEMn&#|*{xe0^h^HG2 zU5$Z3CG)A7)MtLV_)%hjXLva9Y6qpOMwVif{X2I!a_MQd406pE8Bwi0+xa{c{?6$? zgLI>#&&uAfSKyhY!|S*@U~YdrQLk!8u$9YOZ4Wq`O$h}NrIlSF`i*Y{MZ)>J}vis_ug)O8sakq8x$_}Y{7_o#$ zDQoaT#pM5Waofqu4jT*&|1$FqJmWgaBBFOR_d(TR^D0z;^D<;;<%!=$URaS7SHWAd4d?T!LbHS)8_Ef$m%*jU~XE zMSZ}4UbQS)x~T(rkl&QA+{*8DpN{?!y1eZ_gKKl^PB`y!#u)WQXC-~~HNP6SCS_4$ zYH!Q84`1l>#mvgADHJ}mx{M~Bj7|y=zECn9O2g0JpE&vzaDx4d1=dLltN?6F70>$EwQYIgLF zn!l1s0Q~iWi{qs;Yt`FxE4ewZ zXgS~>1q+;zVD5m}&te%kix%cg)(qjSS z1^^!-f`aLAeIPre0pZm_Il*bA2+MO=g9zn`D}B(;o)yqHKs#R@HBt{@hyZo2v!19f zo30<5tuGkTv+O9|xS-oKl95AlT0vB{+a#Hp7A)Y^kzp+MOn@p;F7!~1OF68kb?aA` z8ccdbTT0m~EzHDL=)0&z`Kvk;+)s?H&#pA}+x13Yh%J=SSjq)OGcTF*^Ozf$~ zW|#?5!Vuw6tyDe(unO%?3*Yh6-ek*oOB=j)UzR?k`owiEC6(rr#O#tuS-}D{)K=}+ zKP1;JhGH^~yd0KUNI<_`UR`}wf&-rax&1P0%oi?qQOwI(nA_k^t%yj(Hz`p2oM;M8 zQ>LjyqitSov>7{Xwoj@{G;PrVd~}Wufl^0B1&zBpa~qI!D}L0GVD0aPH(ey2VhJls z5+sWV6v(JdGABv+=v)Bd`n+mR4DRUY-1IE@_+zjsF2iGSN;$jS5G>8EXg~sV;K=F5 zL^&lv9g%qijMr2o`+a!ZBr)l6HN+{0=07c(xhXI9*A)S}(VRCLx&NKuwnwrV0Iacz z^{;xw*K}drDn;Bt0%4Cmd>_m#=U`EEz?0~%attkP_Xosy&tWVqM0MoXj}}Kw)A}Yi zv%Si&IaP57{rqN^?ezp6QDa+b9rr;%r#_I*(G^O0{M%;vM|jPxEhhn%(k$=vPVY!OuDP%C(K zx7-#JBq+E4#hR zwqw=peAh{y`E7A=pT@sp3@9;5>S&5DYGh|e6?&la_3UayQ)io{2x|6uCN z%9#Bk7#x_PzeEoe{S^My^Ze@3n9yhdsl z2`GF8s)2O(sf`1CV#iUFpKloV{3ZuCN|Y^=`ySNui@6jOh8PBcu!nf35;q8ad>X2R z0<;}P%#M`JS|0ioZ9Mgp5yAR=qZ*?pV~)J8B~-_5TEfFkH%?`i~RK)F9ZF08lb zO77IE{M)>S{|s7!ToY;%RPzGtF8Z>Vbq*0TFCr~P&=u6mF9|-!juqbgvEb=_@%z+Y zB{wr=Qg+1qG<7Mzb#|D32J@rH9<>N)G zJ}sPK+tkI`$o3`$`vaM#h{TFv5+3@aq`+$Xr6CWI--^8kGNkKqoG7=6E?uh+wV9qo zrh;AG-|#3F+nks*J|A{zXpka?dYQ988_x%XpRT1Oc+T+?X+V4Je0Dz%TsDzHjrx3b z9R4!n9QYL4+;I95S2~uzxmaC! zZ*MMK%*}dZ6|)`p zO&~TDj1j|S3)rr0Q}YZ70m-CdG8Ux^SBV3-LoZgN`cGQqPUd%LQz{4vANV8vQ4%Gu z8FH&}66WU@K|@f+^z?asY)PTXleXPyrF|-oU45=DvVYWdaIb-ZI(iQDm9ujuf<7id zC1m4IH*&UZ-#QK6!?grue^OOR0F8At~6^NMxT47 z>_Y157Y2_vZqEl>V7>+dhlBs6qA*-274D827dIe2xXy^wT_`XFgjoaY; zii_SfC3i)sYFa9U3qn|-Eh2Wa=uI2V0ps{VL=9jdu<6U`R-xfLswbh(qFveG)Es;o z=L9YSmH$ATUCxybi{rAVZN7QN#uDq6N*T@z6e8W;YURrG>YvuHz32OC>geK>5hG{M z{S9d_+tYF~Hm8!@%}0QTW)NjdFhCeWK&CL|`f~KrzD?ezt-l9%n&NAWO%(a)I5W*i zmCpuyi0}lSM+F`pt_scI*dIF|AP%v$BMWDToniXDFxOiacau?*_kb3oS!R#PVxNo2 zqAhx6u2@7Um5F z=(&(zc&8V}R@@m>;Kl3dLH1Jug*6aaKqCJmJAtVLZ0`4_As?>2?nNK4SZ9OF_xV>$ z%~^u4BO*JFBngNE#%UP{|wIZ zLL7I(+I3z5m8|R*2~raBOA&?C<;)TbfjJ&!YG(ZE`X6p>uqm@4A4YE>C#^Lqbq$fs zd>QeN6$k40wCdox13)YU!*Ih2g({R{4usg$`^RKdxh2wFVj~6_p>-}Tj9a-=lQyI# z=;8v}>(r&s!qUkj8I-PJPZ=F5w98q2^~XQ{K6UAi%NiU`Vs@+;sBww?rc11|Q9Gua zxq3Tbd)P2KcRq9)zCdudsuER-8?Mg!|GM6F>T;67l%&kX#Jtn7Vu`3|;}Y#)@m*fu zQK@x-doC~}`}q%1eoL)LrCh~JeR6lxoB3rcs)40-!DqKkTiI7#6p$uga;6N0ssqMj z0IW=UuW)Q^PR0pAIIGbWFWMj3w)8Co?#z6D!DtSY3i{3-dy&$r27ny{STn7NJUu-j zDp|&bfH9#p=|wLD&5a5 ztAM(PqgYU?vWu1C?SbnLtq7e$Qdt;OgfK!b*wI~@b6ouw64-nw^G_8l(YG#399fi< z=`0#=03dcP>Wdj4YKD=B%I9+c|0m))IlI=@e0JvpyXtPRjpvjmC#rwBYajrdvsS$L z^FdHBrP4pLoK>F9`f4=uBXhaw4TDOE`t_TSB2Vpk}O3&ei+qhKlDOVTvZ{I_m(x;~71o@(%P6w^} zc-k*f9P3LF+7GhcgvBKI#9#TN`^&fPZ9f|2{qxgX^9`T==vz&^;+CHl=)kB*VtaRw zi4s_LN78P1JLJ`6Ut~~#uJV!0aO-P}Hk|(72k%ZOp1j8IPOvnz*mm@!P5zC=X>O9Q zux>}E0zH;!+eKZ5%zHLqK1JMX`Z_DYZu0TgeFx_2(UCb^RE}s(Vv<)YgBA-rPaQ_*kClB zzgZNhZjH)`(=gR%O*89|C6=(oK%lCP6o&%tRQX4NZ_3`ofkePw+`DG`=;KWD@xG~; zT%K9N>#Av|Nt*-+Hk7a8LG5@=!$~(Nd(*7Q1dQD_On4LoF&A>fqeBuFG_!vvN@aoH zSd?jK)|GOh!9MYP{)^(0$_RoKvxHJ~Zp&M~{F#dDUM}K_Yrt`80qM-2RUcNlqbKp- z*^N?tCaJd%LqjGlF#-LynB1T>?ETjk8c$*%XG!!7hVY#0W@)&^LW#rnvm@Vym3OLjr^Z)h^fl z7TZ3Y(v5)6ZpGoT+1>eX*7gBPX;uhh5eDb3$XH>iv#u2D3=uHKTWZ71l@4CL6_C5v z;s@hTRXw?%B%tK9**V)v{NOurRB5rEF4xC4E;xOb3m&z>{54g<*D6av|%r zLqFbme{t2&7PU`gHy$?dYz`Cdn&#MCaGX)8FCA*a{9Q8Az3&Y+q>`zN!b`i3{Z$q| z3BlZWne-d{+)0z6K%X^|qCn6BtUl-tq}2C|a1zO_hKb~2(DfL}LGPe;?9_7T7*c=% z!tZJ3{~7pnLzFz8_|YrBm}ec6k=&Qeu-yUtyt z?i`LUQ<(Nb5_6r!9-DG+Ie24_e^0q|qpR-~g}^~XGAe=7Veei}-shQRTv7$B3j>>; zQZzInf*7a1HD7saXz|lViA6Oj1pLJ^s-$2j(&5Srjm7Ad5x=Fdwuppm zhDado^i{2wJ6nB~A=lhHsSXsE8!W6tFXUX}HXpC&+-c|dLep%eB!R4<^uu&`>N~p~ zSBrU{;ZmCseGYyGA~+jnwf)vnG|AA!ran`F*L{N~)hif@qu>+iq~J2L0m1Z2go zKhVA(OdJu@(K7X))b~#PyC(8po`1i-&tlRmAI%B5P~Oe0kj`~^QaKR4m34Ml#x?3n zppfUEDO$2$TlTwq0l4yTYM_fL-d8F%9YZ}VE#))X8D)xTY|g)fZV>@go!A-vLBE;4?%`7qn~c7-^5U z?+;f-cP`)We;ZxKUZYE6PY0Zz3eFScRy*Y#v|EyK5Z!kVI+4n)-5p^{D-jO}3WBQo!NTE@smEe{uMwWadglLp< zIiu6Mt;qF!x2kstIP5yLno+JVmgpAF7i2K&UIWKOi3}_6M9_fU36?V2I-L3L=FfY* z4#gGcgKbPe-}tS;$-Gb|hg!in0;h?UqYWnYom~w!K@`|hD+{Z_p6i{C*_5Y7#kS_$ ziAf(iUd;RY{!qitBbi>A#BEdsJ15F3*tH^2KqqF1v0g-Y=i#fI%l7$$KVPT)#qRgs za=tn%&QrB5gB;&y3pi&nNldjq_T9Th)GcNu1bPCc!-!KK{T+PA^zvgj^E zieG@(j&Fi-!pJ@X^!og~g7=g^&;SkZA{w7goxMS)3td5b(F8Bn)rs=4u;yn4`?G(w zNWK7cFEVYKWH_MG;n|`O_jUl^`2m#9Rz3j%uiyK7vHt{m8pB{9|$>^ftg7qvZN9SOw&!#GR= zeKaO4H`yxW`r~AuO>d)7rg3ID=B2^UX}PuSiL>*iLgtEAja5qE{@H}UW?(PBOe0lP zobyKEFHd^Z?Y@)GUS%$rOR18X6VV{Ik(}BMA7-+N7HQ#VE86*R73S)eH(mTPVoKY z0ZHn)fZh)h9+q zNU+oLf!DO^YrQ1Im1DMR$M=8AuZ`KtOP)XW8ow@cDDf|ov`DSGn~Xir^Ckma5%z`O zB?lwyH-1x>lnpf4wWH@oc#(B~Qtq6-`qTE;8EfF097?_q*`%@5gl=;%1E3#b1(A5d zz=dY#9krEs8U})5j1d~dghPGDht3kG8>6d#bu}}Lbf28yojw1sbq1+G^0CumP1i)@ zV4xcRB9D0FK^@RI(p@U^uRAKcWxYZV@1NS{a`lGX)lk%yTMcRsklMqd2z>S;uT|+s zm`V;@QKo0LLi7bW{!c9jH-9@eXb``CNE(V#W!urG?5D}k` zBv8J=(5oaobYi9DE+`gUv-Atp)aZAN9#v7X=hx&Oc#!6=9#|L%0>R|8Q z`OQLEUfQ*DzuCR+nQjT_cCjw}v&S@R@DVZ7Fv>wxQKiL5I@lI3Nf=jRDr_M7fMrDIg9t zI2QRiK-}q$uykp|(8}}B%a-o-!GD!pj^32Up<+)?UB*>hVn4Os5XlyeNa+-Qn2aR? z5%+3+Dai5*3NHUYgFk<4`n(pJ>VDL<=WMpC&4jx7+?{HN;Uz8#xRq9Qt9E489O$=$ zWNhAprV7a!Fuo!HL7J9gGLO{8JP4Xzcoo!bX?oMw;PIAo>nC|lEwP~|o;TQ78=+8f z)-}kmh~-k_L&Y;oh3aPa_x?i0e5tHvT&@zoi2N-2%>9tME;#$@orParyhLjK4aa1% zU(1DJ*6;k06)EtlB&+Eh!?K|z8kYYKoG&cvX`HXUg8%=D|pPj{|ulR zbE@M(TzY#;Q8AB6W=DN@D-hjJEjx%S_#l^f^@>@i1Q;C6y7=B1JTr9wRsxlnV1tI|y=vq=Fs8W0%)oZ9caZ z4^-@8fvJ6Dntz3VxhRxAGd6%=f7NdA?X#=>tU^&Aku(%m*|Yjo0dGyS?N3JQJ&+zn zXgq83(%b}D=2RZSLnw6_hFktf%km2dS7*sfTX;^D8qbO-m&d;Rwdwe_@Lz>&HTtgL={RuY6dsp^-Gsyq3+0%{EMeXY#Vs^HY) z|HO4To_mxMc8QnDvhO474rVYlmn!f8^g-g=PL3TwbovwPNEP#{wG)NU8+#`lezh!Q zizYo*RL1NGWGV{rZ&!Xft)3+zE}Bl@IR2&YJ!ox-VX|Q$p5O+9lFmN6x!cS6N@3wB zik;n|P2?nqWFo#$2!x*6rTiss(Y)A+8cGkK(;1pXu{ee3{`=M-&8NSm09BFdV`)xF zE-r=(ZO0R3KxtTgW!D6!1Yvv-@;ec`hZB~;)t|z$wza)ji+sGJ@eJ;EW|Ck|TO^n{!*j|t{#)?)ylZu-905v$2Hnz42%#a*OH zJwJut$uMt4WU| z2fTF;Q|AA^W~OMQKVrU8N|cTEc?bEv>g)F@ehg^`vu}_Bxw*tHXSC4OlZ8nyH7iPEXG~gkGr5fa~EP)EIlDZQ_FPf2%CkU`GdEbx{n@t zImBUabZhM07cmTQ1s6Ifyc{PDE3)e$SOf=ce^`M%&vhn|hC;`9JdRWRhQle!`|m&e zM8e>Y0r6=m^rt3x%wiEkBh}?ZZ2LShxkk=(+`j~dvHFD-^wSBJ>yZKfO!ZVh+3h7p zoa_m#`c91AKRLKLvYaOh5(}Xs`kW^5pzxr#QxY;TC;{Z2F3Z-)uMO^5TNty~A^TL# z^kKtu>yppt?W@pxX76%>18DH`+`753E-73Ai$80Pekjs$?krc;QofVuh-->E%CS1C z&5g^*+qtL-?~`U=OGm**lD#ftcz%q9ZC`%U(Qv>TkvYKrU7ejTU=E^=TiraQG`2{Z zef3H;NnRv%jHU*|$LSFo8KaxE51Jci;>2^GeiZPY=X>O}C<-gOXEt3M{Qly>iH0%{ zr!A*ndPO}cx?!FRT?Rj<$fN578wPsXD&mSb1%g^f6Z4+ad@4ZZn$m&Nf@^9Jcwt6%lPTR`(p2LtUL z)PFfDPS0z(iUiw5k<8qD|K00$A-S&!fo?<2S(JnS85~yAMeNYZw!nG4uijI;{u}Bg zYtI~h_c!}05Nn)dwTrhY_vcQUD68{%szG|}t2O9PH@yw>o=)qB0xA2@INh`^Gpjv9 znl|e&kM)2X581O5-m%czA@9gGY6T`yyQ}*+XQRP^|4YUE-$(Gjr22gyWa(0)u<6NyCLlrZKYGT- zWzCW@G8@I|UrF_YipUZPZ83i(kkjg8fZo!BLu>FVj9nBVXRMkR`rB{@AaVh=v2frF zHH=&VbB2);(kjn49M%anPorm%YTX%G|Bt;l{Yx@`-~XLzvYMuSPpcUdr zM@>u31#Kpmln^&0L9o54TvA*nMVxZW1t=9z5vZm#H6cYHMWk{;L?A^Z5P1Kt`44`# zKacNSZy@V+ov-saj_0A$#pt$@Us6JXZYpC7@hLg~h?x^UK=#|iLz=M`JVQrj9gX=g zOE_SC@iD?^1E>{W6$E&V6+R>NFfxB2QSDI$kv1h>t6b8MzrzFjJEfdauL)o;Tfnc6 z5#z;nbOC~@p}T4I{K20Wn!-i&aSFLglaXT^P&%9dGfi*b+>JsSr5n=2X>+3sBMdr% zsv0KO5u~KA1_16*DY}q0{%e*Q$poRhpDdQD8j^b%LO{!B^8aW8&YV>$l%|3=e>uP2 zsmBcks3oNQXDz%?MH5}6(=}7PN_}Wrd%*0u5*;ZDYoM)<%Dsv0?O`&-1wH&HP+JAS z(kgC)#(3AN=pvOqNfqS13xLW;Z8)j-0WF|-$$m5hU4)$>0ea=X zH(Fd=TFEpk730^wmfrqU-WRf`h0dAbQ6%Fc@w5XeIf2qC$q-OA=;f$ScN{$Sd4o_3 zXqSn6L)X_S8k6KFtpx(M-vT0KnY<# z@K#*7w-gCNs+9nK6x_zYyZcGn*yRQKb@r+a_p3e*r`MFzN0CYlrs~^NT1*8XzSBKE z>lWonXVj}NEu?_%gI-IeLoLN*L9JS@W;ot9O8?&0=JThh|JHk?%Hm~4BN*j!dm`s(gg z#4ncy=;4Xf`q^mz500rfQrS}lN)gdN;RBJ!64mPTIlr_+t`i*ObBj_A*q&PXX#UnN zlMNeETvPc@Jt|qavk-!!D@6T#EnOZQnM{}^5mZc_sloI6YtV+(X{)o03?|E}TIX75 zbU(LEEt*m%k!&#{+v6HyNUCfA@Cj-3>B#ktISgQEcR)I`J`&qxm zr*eoV`I>!(uKjOdP#l#5_5h4uukFcz%bO9QQc_h7n9aG{o!*OI3iC0^jOu;$(jY6* zSFY%6nIEtkpv}ZXA2i1QiTeS?njwz;tw2%Wi)nfdIIKN-Tj z3!yE`=d>DzRv_GA_EX6lTv1A3@HuJEcQq@?*0tA1i4r<2sL(&9god>SLp%wcg?)lzry2@M2-g8obBwT@JeS%bc6nXM(^(@I!E}oGeVkLRN!k2HFvh(VWjx+ z+&1(?mBEtamik@YP(@4FCSL+FsK7_^`E~#gY`ZO~|5+ zfLs_Hi0sFoD6<`v*bpvAh$2wTXIEPRB3cSSCppnfN3`)T!A~*QS~GggUYMxFRnNDL zwxX`$sT{-J)4{&}WVwI|R!nKZ^2l{G?>=;|+$(j~N$!HzDZ?XzC1@e@Gngqojk|(+ zM5Eee=}xY!)mC^h;3OhEG5b1YgLF>AkLj zpmZP!f2VjRH#ga(VDg!a`Oj0%#q4C~}Sihrp*5g+fysB8-9PBTg<&2K!5NPhz zQ#e^4uWXvjh_tN|QUB>RyG9v)H94s)6ku5=C442}S6(SnQp+c(nG-orHuRU!BRF9h zqR=jVOj_sD!(M9+WU?&X!o}!A2OFl_eqBJJx6PRKdMM#b$4gj|uPgcns z69s$7A6#UjXrdT97snI{735=jEcF(E+Ic#uyj^a&ZJ2`0VAeN@*vc&p76X>_Vi-iB zVJVXqhIEm>Lm* z+yaRo#e83->&d;1Tlt=yjdzxYyS!{5*?$&!H!*;LAxr|qO2dL9+Gm>uVY8~hX%c_( zBO%x1#{*TtsEplW&P|R-Wao6JFhb4r&sd1T)X<{cB(%un{D^Tq#?UE`ywmzm;OCzg z_8F}bAHeqZs%7CUR+NC*M&@Q9uU4v%n7G%L2Pw%%D`$n2z!t7f4)#l(o?@@MlAMN& z3uJ<_*lzi%suSlkI}=5UaW&VWO4@`ZZ%Fn7T}TdN06WqaNP;@a#U^Fwm<{c4=IvJp z_N5?maH(T((6E9Ejm#8im4EaGhgifHMb1rf=BmJ5D%Fu)h-8bxZO6flXoK36?qgr& z5($=k80*qPq=S2%#y4@BY?IaUBD!i(suqy%ZAmRk+1v2tzMJ?!!M_aGix+V+LYY0_ z(;CTE;t^!7yM zcPUR3uD|mQR(BL3X-za02g2z0N4flsOd0G~mlI;TinvD}MDs@s-kV;uynp{zX47?r zX=!Y#yv=9YOHr|3%Y7ISM=7jIrF6!b4Ol!&$t=c`1`(qAvsYK#DLA~jk}22!rjp`& zOpwFolcP{LpV(+nW2t`bv^z(LV{`#6k)%Q}r(@zzdjabR>mf`9TfyB8~DiqTt5ER08?b8@#b;0BZR$ zFp1wyln2w2M;+8WYXkEeMrk)T7A+&j(9VkdskCVD+WMD8tJnQovYVCOj!y&WPc1&b z8)r8Ptp-Q_!eFYH!yV@0IoYN8SGUK?oH@K%XV4hDj zVw1pc#m_B?CkGO(UONtaTLfUZXcy=d^gqkVliuj;P8;eGb-tcNR&lREbK-p{mWM44 zkEGHJ;aHvb@>n`6{X5^0_bZOu%q#3%j`jm@=j*n@cL+y=)O&pttg;eLAWinqYx7L3 ztW@Zbd*@ZJiGB`uuZMI+_0CDjy;ou}P=A6>q-DVxAu-2%9V2G>Oav<2{#j&_A(1K# zmamC@f;Zj*gQ*f<_aj)xHXv_*=PlOS|G3-pou?y$K;WQDDXq?9M>9zoRgNd1dbwZ+BaJ>NS3 zXP7RUzDQm!wP0**ydT`oJ~OPncc74k?l2$zcf*&1a(qSRLedhlNh=#3u<9ySEY^Zb1!K&+lC!aT5cC<@^=g{zPi zo^~}usjY}mrX3Olha?E#&#RwYJm+`P!PMyU`o#&Qxyff7zNXTg*XNj933T7hO3~Zz z)$i)|k!;@`fhZ9a(WlUnw2yZQrXxcqi!ZdVfBD+IGVK*gnVUd{>}e`-ZgLH$R%7Vb zw9xO;;-}wygqF`r$|51jg|IMG3NBPe$yng>(o3 zrbT=|)R9@OkhIi8APcRXP`E5pE7IZ2)^yuz!q<+~RN-P%7hjofYx{tt-fZl;#4PuXVj<)X?KkGVbT?`bEt z4W>{jvPE*0pH%%zU*MBko9Dzzg%paw(9gDY96J(xs)Hq>-*R@tEluWki0hIXIkc{# z?8fEvY}?JQ$J_ic z&l`S~5sLLsT0~|8XGuGlds1Q934ikLoQ2Ru>348R$O?hnx*m7mBga`n!>?Y`v%d;# z;X2$3>jdv<UBN(8nuv4}4B>8CwfXXmmB+=_BQrhuBWf`burRB~ za3osGsI&?EKcgRq2mSlpWu^JcB+L?{bWo~RTcaCy-L`qx#WdA85Yy8J+)$7 z?Jpf&kbOqnE$%&~>lHP6-G%cj6Ca?*x;((U9xH3PjYvg~M= z{gt}5qW52~FHuVyU&)fQ{#*l$^>`$2Q#ZG{`0{AgiL}gRR{@_LRcD69x z1C1&3N6?4piw3IQ*Ly41wcVc1g$iysPl}&z2uurfw*Mfu4-R^i-HMo|(eahZLlHCd zAfGhP5n`glD1x!%*EjfyU=rk}S!MlLKqd8U{GB@S2JgKKWD_3Xy92XGB=o5;zJ^E* zWOj0>2pVBk8`q4-gJBGs>rBMMDchK|=dV2^$f%7 zk&KbF-sjnY<)gMCL}I5}#h_+?D@w`3rUrzC!b-A__9?hce=kH(98VNIG2ehva?DD5 zl5#fmddVc9D-jVTdz`n4cL_hG-c)dMCrCgm za?_xVpBK3cOGDe|OvhsbL%vZ2D2F9J2_+>x0k!>67m^m@6C99p5~q5OVr^dh zbQtWNYIYOjQG!)?3?v$$UQX1XiC!4p9%asmA1w0e-95t$sK2QV16lRjjruSiBr=G4 zB*tZL-!_Gu<_g)D*8>E)N&elQtJ2@BzijvPR*7l%@mHok=4r2t0x{NA-72ULI0iMN zX7K1m{DipY63<=%h9HQf)>ciE1s_KI*DamFUi&N?|7nFwhWMtG6%a^B*Z*101^OlJ zD%DV#7*?blTtr9va#CBcR1Dzg2UaQ?HWZc${pC%^Xy3YAF@kX-z{47D39t`lD`?{b z;jMQmq3(%yC52|tJ_^# zLh9t&jLY?;?_=#YXU4Hp!4dU{qoGuA+sAIy)z~8N;N0cf8{(@678NYli5r1DihB4; z-&jX^SYD+94NZ4uW;K{|TA;SUDA16MSSC+bB+o8i+}xjGIFPk#-|bc6Z_ZM16wpUx zVN1dkt;fzTi#I~U*GK}{>P&XjN@Mu<& zqFx2#6N|sr2=)AJq=Pa9)NY0}tx%qc&6~LVs1O&s#i!>C-qld)8uBjvl&@r*4Yubt zArUIZv|qTZTtNhS6x9l0dFHe8-7Bj5uN|4o*_e$Go4s_?Lo9cV1XhgGU|iDo{Z)ls zdpjQuonW452`;Vh00YZWqvVFVM{u9Q;kU9|H*|dy&&?WCLPc(h^>c1=@S{g*L5`N5OgKUp1nPob+#mf@y3goyNqKK3Zd2O-cx3#^b` zKQ*w=R$`L|Gle}g85HQ29Tj>x8DoR%%t6ie9txhbLoZCpT>}x#A|at$c;cjc;j)t}$IBQ_su+;os`^9a?)%0+v`WV|t9qDUB73{RF2Y#_H87@X zCN3F3#+8h~>O=TpA~0OZ$USjxcWhp{`*T-K5X z0C6))X9e{PD!-%FWuf|@q<40a(YPckgVX`;)ia@;97XbEng3nF*R7rvf~-(m>h=->OX3TmE0n53>wB|P?hbUo-T~NZzgUvUpb81 zlCxdCl0V*764^cA>nH+~sT0zi=xQGeDqZ1Wfl$(<1b|@PVs~Q4(SKzVFN6l3v$=X= zzUfX~8=Zqd3KcnEmrJZ5b+kMnOx}@AcZDyQJ)AzUqC{-Im2dWs_`p0L&=ewk0(66= zk1i5v!clj07#O*=+MgOvDe9b}mUhy~XE!=|Wt-%Gn!LQv*sZFE8uf664$Q6A(tDUz|QXCyNt~`J$xVEI_f=ns`q0q)wp$ty>vV$ms!iWk4 z#DNZ%D(Tz$5x+Kn`0KSp-T#bA5D7o_vN5`7p+^zHvMV@P1}2uY7Up)?3GIMJ?#&@Qwk}>W&t2* zjL;x_M&J3Q0euO;{zNhz%0~oHSemnCTy|Hi$x57h<*FCmD{%V*Tt9PPH`rJ;K~SP5 zpb=A{Mw~2;;sjx4lUaP_pbCS*JUh6{hS+0{Yud0HIgf+OkK+=`nTbJEV}NAq?|gN+ zNea>EUYnQ9aUQ9QBJ2@du)zBRepD*VzZl2=_4MS4+*LvOtDUvCb*%v>OEhsU5soMk zFy+RSovPh_u-eATc58%?9>T*%-w8fBF+JH^0MyasKSUX=F(%ca$#>6^1EFdST{tcQ z2IX7nF!%=H_>y#rr~TylB=~pJPfoinQ+}4>y*>iL);-*Th^63hHC;A^As|HHeNX!o z2k|fI6_HKX%9Qr8K%eA7l-Gjmrq#cl4?A!(H^I2Hcd{yg-k?01UdDY5U}_)HnHLk* z*!!#L!_W+&dT5C%{&caFd+Xhy%NMs?O4*Cc{gzr4&E$GqB{@lVEJ_cJ^ZES-5!<2 z&z}C42A085G;JdKf~kcsA{ ze?E2G-E^&@HA$_BP@`h%KS#LSN&jc3P1$*$j5n0EpG~gRC*xw(1M$_NxbizyHbpHJ z(3p6xTt-5OUI=55K@h^kB!|aWG^xO)9Sc5(*)PHQE3=XU&YcH=j*nHb%V&a@{GN!$ zAr<}tB%Oew0gB(hNefuis3H<#Su2Bx(EEcs+879FR{CS`1HrfgWZRP?US*H&v16qsQsVR zDr=hWXwwlU8aQ~Ny~aAGYCEhJ4q~McUyx8#F%#4oJb(N3ZnMiX4~>IU`7c>MJrR;x zyV`0WS_C*&1nZgpV2z^OxiDS8bOsolTuVJ7BNo2!#;Lz>LH8=}cAe8?0?|XO8d*Iy z{EWkmR)ks3+ZuAR3S1FEJ~al1O71uV;zdSL8#^l8R-ahukOgkZ2;N(|KJc{b70^Op z@^k+5IL}|{Ewh2f@dq_9o?Iw{;zwsYfu2Rk-10W_M+Z-Dm=eAaW4k8`d!_k-9Ka1! zkr-Yx1ii|W*x2baRkOLV<*9?hf2(@uh$=Kc=E;-8Ki!Z2;r>4+GM1B@$xRMUOfufi zU+V!El}2}h93fz>1lE54YQ(X?^79BR&4)&dkU_qKawBQx(Z3mq=X=!mcm2-@)vo0~ zJ>8m<=n6oCVEu;u)9Jn&FnZE60fd&AycAt9pkVj!t)5(;_jZeM)P}uv0mupIckTD= z)Ba#-tQvw=5XYNHkz?ZL#&US*}It8$UUMhE8q&j=zKaeX6dyMI%0*@3q-Zp)F? zV!emoUiOV&bBnc5w>79v9WI&51R!HE}SU2C{#>+Nt z@!K70EoIM1_s-Kt^BdA_s2iFRs;?P*Fh{Zv&3nJ`*p)QCZQh|W^-5Mf*zboe-S16< z-iMv`G6nw@7iV$FS|e&9TeLCLR&!c5bMfEk5iccvEMe1j+G?A3^{j~ znLP`0ZOi*R9VS4_%T5}!|sd_qNu0;kDb+7Y=vnhxihvMS^K5=`=Y>PgOO9U9nU)QR|C{SXD! zEut7U6>T34YiXtShIXS1G%{&bcV0*6k3wd@>7=FEPqB+8A*%2@R{$ zcV!v&&oB0}>thTI|2XRk0dVrWsYlpf98xjCbUO^D6Oe&~)ZC&Dwh`W#fmG`-G$z|vF2p-xb54jKMH;?I*xw} ze-EN-V`nX?v6GqCt7bN)8CP z&ZpbSybvb_1&UwoZg$4=InXfn2X0SU0s=mTp-6JVI*?BHoc;`q-e^YI*rEHbu4(KI zr;`$krj z0zwhk=oD(*z?$M4pnjA2UbV4ix^}=F_AiENAOnRz_H`5qMmk7TP($_psJM-QRDUb5 zp?6WDh41%$11mvwQn?1$$LC%bIOWy?_ugczQiVZ|F}Dy?+%E?NTwgV*%`{|}zour4 ztEp(dZbN~hBaIjmSq``Vepsv^0_iI1 zA5TOJpJaQP!TJy6M2VS}wE+b8f?5Sy?+OA!j`xPzzLtf+rE0B|^yf$C*87FlE8OYrTJ0B_&PEuPe`HIP>umL1hO|5lXF zuifs{z1pW|fZwpcz+FSkat~Dr+en<2Mg7{`yx!}6c2 zbx9`4q*iH@v?)>*7jA3Mi3H1;AY@MEfL~mKsnag@$E~c5IT$*MccSg6MuC7yKhl)R z!V&?cLJNnXfW zU@_xMRoZ;=&vn9Opnc7KDRWsi9krJWrN~EtT|214-mNBN*M0}*?m+i?l4W7fcV1F3 zw4SWDn<*0uzFAubVS}L%lrRzVh(M!?h;?_X?E;#OS;oJMsi_i`A}DB?H16XE1(-2m zIaSh{n8U@j&5=Cy2&`#Y2UHKSEx!D~+O}f*Z|{56pRpqB;)<7d4{_9rOp(2Sk46Go z26cS4t*Gc0+2BEAlnc0;IjP+iN+nuTYbz8155JK0bskavsxLI-D7ccT^3+HnxIYy z>?@MA=*k!oUoO2bC+)MgXwp%J+2PRcnPh=lp({JVN;M#X$2>e z@z?+tcWNd@FXLVfFM4y<^Kov2=H7MJ^n!u*SF5n21yH|Bgb4EZ5?#f4rcmGca>)L} z&nb|)Z2Q*awb_B8LN!W+iu4mrUhQU= zp7?>@A$)wwXvOMdr_`nbV_r*Y;JN5tK|+RHF2`3wb4s7VE{)6A_IieotCMu2u4;7t zeV>;*ukC=9o-7JT`PVrA*md!YO*z@qA2ek@cuh-L;wJK$4bN(=q=6`KlWQgd36$Lt zbOTmxQb^eHyVsU~-Z}}Gg(jS4oSa#}dq|w7+0ms=k;H%kD@jqF~t+RErM)1>}14(0eB#hL7j0wcY40AJPlE~gdLaA ztHOASk7)kmoV15)LfqzW^gMNom6=@84%J%eP!3!*%?}N$)f&)iaKBhNVDsoR#5~1J zM>#*I@XjDbfi=Erxw0rN9ftuqdF0#B{mu$R)eHXabRaMlka(u7BH-dA2~$ZO$(rjA z9sCD2{``+ypUlOn6RYwk@C-fsq%%0t#+@jnMgMoJc~raIqMBSsI@no@YEqz}IkZ$| zo%p!bu6Uy(z}6sF{hn>9ds4S3hQx{-@vKqRu(dtnNFfawu7p!FR4;a|c$4<(gtHOi zvdgWsz^Dn1drgQnp|5ZD#6!A@y9CtsEGR7tdk_AjpUQGrHqelaav|eT@nwe};@8(Z zkAgbfj=k!&bUQEL_l9feOjm&z^Ja>AnEEg{m)8kcN8axWWI@NTo;JO!o@uoS z?GsKiX@A5?!p>EkDK+!0DpSN$C;0E7d9Bs_ zCC%VGQE0*9=EAq}c zKI2o^o}`9qi0FCEF!31yN}6YK;i@aI|H3`PcVt-JFtP-UISTIF0hbC`@g~;V(AyI*f?32+)kKzZs z!KDq9u{LBsJdXMGeN7QSCP<@Ejh?nvU3i?b`VT~BDj5A^aLm@! zh$I0R3E^r8%O$I_;zX~mt++T@)ZWVmrH{dNr}!Z|`#Tv0{wjeV^E+rTzZE(MQ2$9l zL_OyTJ#kGc`E=2fU;bJJRhu1P{=@pg<8J!JibvDaMbnfAG|eKNreAWrvlaWWwbQ>% z1Lj}EQ&6Ch?QiPN84g^+zPg6L^Eu5)ywW};4UF*Rap8MJulrRmzJav!MTZV29p5mwCT<=F)8zG{fA{o0z&~T z*ZYSDI^xU!3~>+X&dgt9dd#~Xqai+wp0h8dpy+TKGKQVZJZVL?ve+f)oe>D-u%^4WNkT&&G-Qq}%_L!;*G%FD*T2Awm~eKNwy+{7yjSuV;*@9nV6pdvCkX;uMLhX4MY5nHJ#mqHw=es#nl z=B(I%Lw?6v_dXJ_{&o9-AG*_7r^Izv^A26*Jqp=Dj$l-A3I9}v+hGyh*|sEq1$>6O zW9N_U=0$5>OM6HpV*0DEM4xv_It8p>p_HKRn13CkA`plnHbalJRmIU%bwk0TDe6GSshfGIYdcC)K-kC|m(r`1#q_3g)}mPC%XoW6nC-ec3Iwk~llc-_=6FZ4x4d+-zgf zxKQML`8r_b$-jS7d%FkuoK>Bf>JuST)T3g+usWKey~KW}f+9n;GZ6$bbll+AkPJR` zc3*@wO?)2?p4~}tK}_I#?2BrIp`1k9Ibj71gGV9-DbtV2i>r6`kt5ovXbx1$HEe7E zC;w5ja@&jN*K#j!NY(k~+|3X0J`>@Rej)g-w>gQ1h(wVfq{`l*^t56$e;~OEt(GJ= zH4Vx3INexxq9ba{tD=rx!C3MiY^T{2t7R{3OjxV$k~E>oN3+y%Vk)C8dq|u~rR{9& zs?C|o`GzWN3WP0eq#Zc?!<2VWd;SOaB~bS%`+#E=)3cQ%@-hJt2y>ro@IYEow`mYQ zuCp?sBcJi8!Tj7%+>Q7*CXd%zYbF@!tSr!cd0KIBYoZ-cOC%u0998a}uE^a&n~rMg z3L&BQJz$nrL=Cmw-5!f5{CEA9`*}Ua)28mxm}ImIACx%IZm~^18jP};C4FNu z8!H=ucda^XR8LXRZ_9!YW&B(mYwi85AQiv*qza@AEOZa!sex$clFlP0$Z}9RfH)|h zs+Hwn$)qXTfv5-D3wFiz?;8PrhCR<0SxK7m+)}l_037Lq1`2tiieYF|QlA2m0EyI9 zRRs@?QNEsK#C#YrbJ`_NS(N0a1@3Adi$GdW5!oK?g+~V%-MK!}XtbdIriyEdx=?%5@eYmQg#@ndK z0TnV*EQM@wi@cJ1Zle(nl_BFlM(4Qv-Hk|_Y8BKHfkR86ja*-SekwPj7~eA8(i&+u z4(uas&*mKQ)UbAkR0?Rw4KBEJK~?s;opx~SOYiD(#eCkd%{sGAnP{D4Ogwy5Yg~2n}p#hCT3YYx7OWwQp zrdf(xGRPQ|v%mkLZ15c;o`8b1hzROYLxSx&N{wKuXf%;lqoy#wy|LZ~9dWkB1DLKG zS(bcD4z?WH0M3Gw$qEeJPCB`nJ1)Igb#hiVB8X9TI^O+o%iQYtYhk;Cv+?c=()`;b zrTy!B{!4&QjQH3{E*Y5mKX zXdK$c>U838Q8q)GIycHFl_01Us9BhAQ0in!aRsa*%W*IgmZhM{#s=p-?uyQA4k*fc z9ChS-#ixapn{W6`&Px`F*Y>$MJ@Cb0FWgR)j1FdURXVl(+mBPe=kuPa12cFMNJeQX zl!{V0g*)6b-iV9MEn_ zaulV_acIpm^P*iwHTnq-e>dp5q~JNMv~qH?gkZ@Sg_333u{PXfiF^?Ol^Ren^Quy* zUl#{=#%0_4_m)qMi5$_Q{jsJ1W>>j77Em`MbX~lhf{Pa=0Y~Hmv?gIw%*9GARe#c# z_fz7nGbc4?6v>wN*r%}E2X1&gj&CmXvm+<@nav$F!)?vxP2wnuz zR-lJVD0g^RI(Ev~qP5hR6m+|XWcJj_MAh)TI@m!t!-*so2xkbjYVznFEI^{ke2C0a z(E*3deT3_p?7);O=YJd9Ry~=JV%GT0;WN;OaxxnJ`{8YqDj(WAB0fTaAt_x-5}S@B zRCkW{@d4j)hMLYJ1$~69d6LHLa_hQZ)Ppn0`6=y(ZZzuagCT5^%R+73K7mjL#nfRN zHSxt|%!F-il+HT!;5grk(&)C7zK0QLy#GXNhUVsbcYXRt9=>1L0)-HSr0w*w-z^-dN}bTTbY`#YV7V%bkg+^s_6yjP(ah}8 zMaq%@%>b_lRgrT?%WP#RD%t_9m658>x_|Oqf0Ow1$VsX43TPen)|#2X{Z*^#rfMum zm?|3xs@z5>gqZ%9NI>u9LiogH{L*#PF2VI^i;0!Et#j#o$#AYR$lsT>r5r0oi^A$v z_2Y>V(C2Lgi-Z9P=qSpa9`;3enAZup@oQ>H=wxBKjTr)LE z=wh%u9GOT!OThHdCR7$2%v|yIMdaI;fAybx|9a%y-rrch+Lx@8cvU%W3|CnkTkfAc zPAM&D&9<7X;7iYUUAyvJHS06Eyv#|$6=Tx|z4R_x z1=aJ@f$B^_%Tz>SGgn?S+9@I7_0j>@4#n6vpT3eSdH!R7k6CqB>$(_TfZ5)Yen8j-| zBNZBma*S1R3)LhjJ1-gx+XnjgT92#cNumA`d>xpK zSdh}JrIm;3xE(R}#PU`;M>Q)Z?Z{wrj=Wm!>%Vk;E$67=jVGZ zrIL>-*+XT5aR6cBV6{aio)6>mztQs~!|KEGiDqm|3vjsTRMDjA_!6+scwOSd*+@K#I8Sak{(w2Ii1>x*CF>5AZ^O6wIkrB zBho-x4*qjR&JI#!Og&qt?g&O9?z>HH3J3$8_>FCpK-%6MUt1lDK}vz$DR$Nn_T)L) zqPFzmGL;5F#LGx5y|1JvseZiOuhbT1Z#vkB4`|OU{y$mZ0Ed+M-H`v1qICzp6-_nbR;oyN*PHBTt%p zk3V@o{)5JA5Ma%(S!w#iWIi3eylwa*B@u=|WlL+D(TMHP&uOe{wcV<{c8wSu&^0LbEJ=m=o!Ia)|a%!D4y59x2dwm%lP zdK76g|DNR?{c~DqP2-!O%-cl(iUScQYyw^5*XOuD4^7E6nN!&KHHD3{{j(Lxb)~J% zryBczej8di^1flJ{r6RWZa4!~O-^dX<+<+rt|QZGUGQAX4>f{mzMnf^Hf&csmFOOB zCnLExHF5ks_JFl1cOp-+ z&=V@)BtX(V7c&QG+S!mx@0h|k_sh<~C#5&XNTd!ao=kFUbZvU~ZiYiCK!^eQ`Qn~j zvz_RK9imP{a)caMX1zWk4*9DntmKz_6FBYdn{1G`37q)%0Bclg&gCj{s=TEdNcV7L z!9p)hjt6Xb5H6BrbL-O79jgOHKcR4lT~4N{i)?zVX2L;56+zTYHl}mW;9Yy?nsVP> z_)sJjMV;mdpPcyhafE|@6lW@X&o=*j#mp^tW76z}R)Clb#PtS&r@@psVI8fQK5>W$lF7%7-HtALUIr)ClK<3Y(;6;FV+6v+P8N z2|GXF%5qRy77Qvl=kt>x$I{(}9mYm4U;mrhonELq$63n|PJ-TSPa)5y z%*PTQD>GLBBO;&s^VaR>8-Mc(j{DO+`FMwGtYd()^Mvt3Za_NoBrOjY=5Me7ZkOoX zN>@uc^-%v+5GOMjfdoYxP@<5N@+$|}8!Xj$yw~_b_E-jNcyLaMV^knC!WGMy`*}$29u=ayouHf-o4CD^` z?Zev~66+Doq&h=ny*jGtuJMHvd_(J!#!^v4zMRKR7L7v)GPBo79B4-JJaqgG2cCZu<-9j(X zO4Rgq3+xlJFlR9B=E|a7>YgYqN+pRr^=^3(QIr@NOHfC~c$~C!WKD88EhuTN8fhEB zV4%I;&-bpiS$JQw8IQyPE?s5SH6VP!y?c&&ki$d}DNux9fQ}rqdQ(iS8#eW8!}>*D z9aVC;v!~TTZJ0ApEx#A+a$5dyXL0wc^;hyYy78ed?5fHdzBj>un5AMeDRXa*Pvs3g zn!=US7ayTqT>%wBeyzzo^+o30r532>%+Iw*7<=#Ev6K0e^LToO)Ycha)P;pyRFKIn z((jL}9XJpn7O#fJL`T}Uk_iH0?$cvGZrdiv{p#r)6MRlA(B_wj)^%PT#A%`4gci}$WCoq4Z}Qc{OiZa9AOKEhW;dtf2ul=3X|mqqrz(676*l+BQ^QC14Yc`<_ve10%ug3W4pTVhNu&nvJ!Q*w zgx4pw8VFC?WbgMf7taVq_qn#IQ-yZg~>Hj&zuvE^q zh2w$)h8_uR&D)Tl4Ck|9pXuqZ7{3g6fk@$jS90pd24HR{y9YbF0)kqae=vEd8T)n_OGP9`4~?cOy}^Z!^c|5sQq|9?x8 z{;%?lI#yY{H;S!NYI06Sc!6S6diXM_)46e&8WX5gqM1#qa&%dM^F%$VL%Ymth@t3n zNYdf2#U#L}4rBrD%k#y7E&C6xG-k#qZv-Z%W%by%fMI~y@jtA_%RN$Miyl5}kk`ZO zBaFQJ0?!l<12E$c;_)hPQLR3Q$hhO$X7J;MErxN3{ODZSVS-WjYJhvkcQPO1@i_zk zA#N7_4C;bmI-6p&%UVs86bk+8^(&Ce%7U1Ft=QDsxulJ*B8zfd4IU5t=v5H<{=lAj z4m#l3kZ9MnO@U5}J(g6>z}cF%Xq1$o1)lQ1iD|N&hpb+`{J%ZnI3J)prgxu6@2NKf zpgG@p0Wh#jmZ%r_$5}}`6SXQSDv~-NgehkTGUd&-)ckbyU%Mtmg(8wT+&7ellp=(d zXahRKZqTlIkuwkjh6~sWj{p3B?7jP6()a(zZL4LqR$GUqrCHN5Gp#I7DOzi3>Xd1z zDFPidQv&h;B#5r8ZIy>SFGXy5AT^*=AVHwk($Lfrl@x)>0|EjiB8kAR_vg>JuIu}= zx0~Yo#{2bp9v+YT16;Yn?l;gAVNq_A!APneRsyixT-BT~vcB8|V0~1UAW0_yt9jM$ zXP03lXLKFZ?6m_B-GfF1y>>#mH4H;YnK5HT8Ru8b1l#tfAMl%SfblJC0ieH;iv~Ws zKwB2MSMG1e43JrH75@u7jB8X}_`UPK)(6+2u zyB6a-y<+~EX1y(_A76XlR>0KKGo?jF3#%hMoh72G2{IikW? zh=96Zx5TbGu(Hc)swm>1x^_S$Jz6w&y9ypHH4$ih+LMJ&z~fE5-8S-vg{s!wf-7AvFtph(ZJp;Jf}_2^~}bSz`tT0i%T9 zc8@Om?%;5dljW+9f^0VGNDVS5k`fDiv2zbnp_L|207-%>a9qE46LzuM-VBzX>B3DT zWl*L`%QQ_^|2yiCXnCL+-=DLvv|GXq7gHouBm8x{IPx9ikeyFhayZZj_`m-KDN_u2% zD5xGYoRVWe=T<_Ew|u0%SoN?j5N70`iafh#eb4&d-mlg>zR`UllWIfz`jrNWo(~_i zx|>&RoPCTDBm;BH=D<@=&(YsVGo86snb zqN+d202T5PxzBa~S$V!;T;={?#51rG8N@{9(qLyoCfA)=nD0gf4vYXLj98?%@cX&d zx6=vkO%%GG1>;qX+|5?nSo!#Xe6{ldvWfiUKukLTl&Zx^D2o!Gjv2C;<0nC&fMQC8 zMG4mKt^YfGvZ(B=PH5YYPy8RLz;*~NolX@4f0#c^oMI4`!kE0Fnsx=IZH`|X<#hX} z(deCLGB~#S9r*mu@w(s>P93FhcX4K95I`?}&kb5{o@$n4;StmDqNz1j{z&I5V!f|J zr7!4MKu0fh8!%KxiN;hBz=Gi3gPe)Cg#HjSjqMh%2eZP%Z3IPYn^#?Vrgwd=6_P^) z{#65#wo|42llox@*bOOv`r*|_VboMi8WE+bp%XG=HuhP4ed@PI>A@d<@5&Hfvv`I> z6_mqhqgcQ6E`x{5tY#LSKsaLv@kYcG_vpXu>oS-^5^2BPr}RVQD_}6ys|pM)7lrX| z0nihWpwbl=USEeB)WZ3ng%D1a7sBc;+V9zw1L+>zMXho9{KwXZ%CMhVv5N~@os4xV zGzIG72ld6pvfJk8a_>=zhj)A4-r=|1`jg(8oQ}uL9LcDfEbt|S`1VNS(E#Q^Gq1Q1 zN=;uH7UK_h}j-3Z*7;pD2b&8M~IfWv? zv^0H+kP*j1Vp>^AKzkGPk}+Src6rS^!NgrqT7STejmE;1K|Th-F^Gt2BJkUfH`d@* zO3FL+A~=^1s*J*Mvg+6Nm7IJpp9AuKEnMa1%{B@gfnxv&H^qAgOA{or2QXL;m(h{v zrFV}DT7UGaTv%#Mmi=8Xa;w|4Ff5CmWAgtX;AOs1(92PoxZjY!=bs#bMJzqCwOpk< z9nUU%q~+=fDHtN{k%s2e)o&yB&l5iM9S>269_kN^r&@XBa4r^>8>rja;p^fz$LTV( zvPU6(S?Vv`b9WD17@Ama_gT1{9Q;eJUeVFm0Y^gTb2w;%mP^wQyFSzdGy#*CBMg?& zo36yax>f_|uKLr(9X1XFpY2ti@!yVOWR15}yh<+Jau$I0Zwrbw&>t|gOg@f&?Aodo zlh;Tag}gM9p^NzV$Vg?Zf;b4sI=*PMX`E5-21bZMs}L^r8BUa?SRo(TY*-iJWA$m3 z|EDySap>vGF~Lh?g8_j=(oI(RVyUUmM@7{V*{)it<>o|&W7or;)khCVo&igUVj(Gm zv<^R#a4V$8=qEM9Vf4Sz3fKK#j%2H+1;0?v=I{4iEIdNyMt~DG_Je$yxboMtqVWB7 zK(Z&iCP=^`jK5Vk6CHXfO8xGF=Z;r);x`uGU6;O|NO@}MsQ)-?o-`UbJaTNTPJ1pR zy#e9EKycB`!&HodILjLU_2l`EuaE7za!l{5w|!r%pSjwo4~@asS0iGD@Ld+dEx-vw zY)}!AL>#xa_F{ZNN7QP${W@@;B^{Kyl~)p+_wx3{##FkYEf)rfO5d)D2pWcWo?_lp9s(B;o7Pzv0kn`T^Uzdp;5stth!q7N$_;Mtsh_>7C?82iVWtoVi~Uebn}@uA;fbzb)4^w(CGiz5EgzyH2Sb*9Jl zEg0i>(cH@PEX`r2j?ss z0J*w^qEMe;2G>Co715yPf7FhT43#uxWpwQ61EHj>HZdYoZ@WBXx+&=0YG3Eye0)K= zLNM*Bt!Mq;+k@(9LNUQe_0#L${W(Owdpk<887Y}Zvw~#O?s4DSAAoG5BfqbhTt2ie zYXXRR75!N5<8mteWj6$YfCJ+{*iA5*^q_I5hW3$Mi4M~?v!aPwV$Z3p`^n|WQzxDM zz)qiE0ZE_nFHb0ddx2@zFN)#!iWopLN1|DVg)GsT9NLSWC1=Kw*jE!zZMv@b-6hQL zZcd9(3gB;5axPUN{pV&-8Ck?Ls)!J9m|_H=3h5I&t|zWMz4Ckj&K~Z3?b*bone_Fx zN<`J+=AXb7IaB80+&?%v9{RGNs75S}&obz?m%O_D75nk|XO7w8 zlQSpJ6=pmSEI&@M^{%Hereisr;oV$M6&iZpqta7YQWYje?itmTqH`=w(30+jKh|3L zIHvh7PtOxOH>Uk|gtYMLLFnqHfTD7g9O3G6hzhfbAiy0R$L{v3Xdkly%Rrf4L;jyYJTng zo%dHAY7KEwEzIkSXBM1j927zV&>(d3lxjNjr@^%Ase^CbfczhA>moI~eb(_4?Vi)h z6P!hv-?F1?N`=0vLi`09v8Z}qSEqAw_$a~+#+1sY^%qs&wkPQCaE5)vIA<}z#+z-$ z@VkJiv~@x7K?(ns@w@al*X2D>@-g_BF4yQhw>=CuHBXVAhI}9L|A;X zbI|)I8?QqhOma@r%qk5yvd{PYqVt|~_gmgAA&ue~V3r^G(~W6yOlt`^hofA8ad-`F zbq;Ny7rUo|CafK8oF*~PffFfYVsqt4?U6scX#4AQ3^H4fQw*h+gm*=z%qW13?i zc$ul^%8x;3HopRPAV<>g=iOvLn6Emn#zYa{4{=>}U4FHFy`) zy^E9AJ<<=#0^{C zb~rUaPaqj}6b4XqB0VK4!-52_-xlE=&Oo{Wr6)T=%%b!nHkk8Pg*{GisP(dAZrZEpG>^1f05gH|y4x-6#5wSxsmTYSMiL#_buAk^TLB zV@ksk46)`g%@?k2$ zZ>E%mU6MuoXO)Et9lSF#AW<8b05uU+Gu#uj50!TJ_;NDE&WJyot5?-kf5vF-TMs_z`9mVov_#cc2OX5??DjYb>yAPR} zLaqG>`|Y1iwzdKAa_ri>){be089y=wkg9jlN2A(?B|H`%?hOP-y^Sp2vZ*YIAPwy| z&XVbUEt)g??I@0CcSUTxM)GDICxdBzn1+;KaMq|)+gQY-iF1A!VyE9pzxk+?lde>^ zgeymu)KhPk98ZQ62K)r9*PgxdFD@iG(BbhpqT=-a(D4C+RI-1Hh|b}AByIlmloki% zb1dL=28MXuc^FoxI|4#7JK3B4+hnYH88bSMkVv9E@&Ry*J!1ox34L46Aij z4KKdC#JsC3$$Ab72Fr~GRkZp-GeF84HOq$CrL*EtmoS1DiV-!j8pMaazkB`SrjLIi zF+@)Ppqi(}mw(h$6TGDZNoZHVsdOYoIMq%b1EGm}Ajj%+aNL9&d?~0G{JZnMiqA+# z$A`}brrr><^t#8JP9NN?1j(Ig+-xSGoB!R59+)0EGM6pj-IATaYH2L4o=2%YzV*O2 zdv;U^(n#x$d@oax7wP9S(sESn&~f%|je)nM%=#QtmPPwm(d0?ss&i^WwmabnrGXe>XeFliOl{aSDU3vqfq*DkuK8?(oy_6#Q>7NrN2M&q$dEl@C z_t$mnJj+q3#SA@eKiLFi#wv(er*s$E)`Kq7JGvC%`UCd7u+ZRvIR1I|u&iB|~8 z`3u$^s>skg6j$bA;v;G!cWgx4Z(vH$8PvXEW>p(8HyFu7a}t9lp;;GC6nfOJeJHM_ zJKxO$)G_mQqij?NEMZIuWG@G>G58IX`U^r>@^GMeuatZonv?OEL_67w^1EeM=)3(( zH*9{w^<@S|c(I%zYjbhWY^-87s~L@=6g9SUn7{h()+%}G_0@siudj?6oTnXGIbi!# zXV@kN(VxbTHke*T-a$ivjvT|N5V7U&ac=leRs0wE4V$et%W__{d%#?Ega zo1S_6_B;e|#Do3Q-i(l%zc-YVDo@X+1FeLfBc4vAxaxjVMum5&ptx`Z(i>hld$lUY zt#cwxFzc~C$au}NIknv9X?q7v{VlA@n}}cJO&3+Aev9~=U5S~ljU^z`PkTFb{%Z5d z2LQap4y`{n_8`4c-M4KQk)Ucuwzz4;nq9AlvI47RL{ETp-7f1>dh8=rNaq5s6Io76xCOV7oo#&CF$NOPQu(p;;JSUNyMOj(_mvKPI_jLK z990Hr4vsW_N=uWyroM$$R_YTK?;`LD1u4jw~*h5tqGo*NOo!^9kjmh z{3de(xCy?$lRw@-U1(#_X;eQyMYF1@B^@EXotEN$37`$dj&hC4+dJ0#{&IE$?L{O%bx!J zE8&OB+dI!Uh3pv%X>Z5F+{fm56^9}tysOy|{d9?PaM927s*@5l))Tf|_w_{W1@e9U zvq>E}b#bUJ^J6(nuT_1)#+>~C8suPgh=E{Ywpgg$wv#ANbN$UbdFO2-X7QGN)YPS4h!)&uMmer+FyJhDSwW_xDQ39B%Jm;2{0MMlB;MR8rb+mi&64)lT!=Ce84tqv*51cb-NH^xsi# zp3!d8)aucdvW>|7Ss4N7TUo3mVwK3)w)g1FtYf*3aq_qr7g;LGH|nlIH>4MgALdNs z;b6CR-t3<~T+djP1z>DPXel4zx6y9T$~0d;4kfReg;3o2E6zOg6Kvwnk03-gB zk+se*dM2oK!(K-C0Q{b-VB^YvXxp5;0?uYAkF2K==l1TjJ)zVqX=>KEK|eSCc0hu? zL%_yEAQS|zhJERnUCYy~!gtFrfdYO5&>w+4jIw=I*W=qI1|Y=`Zrc8@ubadE(n2Fh zj90SJN*1!*=h;~mc?*x=(3n$4f7$|WC_!hT7gcGYdvRrl!D^6t*jXyAHvD*FU%ExV zNwdNW{A;jt;on41hav)32B<;1c?NbX>#q-jO(RTnxTjQ-`yTZtZRdD&`BxgBfAZQ3 z`v&Om1LJ`SyoetQxQAn#0V3*FgM{AutuNW2)x; zh6l3+EqVz&nQq$T@J)g!>UI=zM$c0b5X_biYUAjbjuf~ZW@;gN5llRv~#ih*%Jbd3!8Mgl)x3C_&c-Y|=7l`nSW zK+QxyA~^_3EfM_%GdTS-bN0!jrXPK5d-g|P zp7*u?v)fjnf<}@ONWQzajY26G8Ju_(Q7bouB{aM3rWxi@My-f8aH>v7KZKkd-!r;% zo6SS%Du)A(^n~r?FP_sMFY!|bB4UBwZy~~vGQX%24$a7;ce<*gzRzw-q5sP^8!bTz zDks$7O~06*?th1$y!%4rNJOxA(VUuzE z2?Bw}x9w9;@m2@*uM82q()eMX1(qjAwJT2NHFo^nUTRZs(}b$p{`3DLz}V zNb@wHKwBKsZxeeFRJJ!n{UVK z^PlWn9boo#w%abd*0K=UCe#8mqUSje8+@HHESRjoFl_PO{~U|k%duKIC}id+R%B|{ zXY14hQ8mI8zYOQx3Pnq*8EsTWv_=gRsJ+#qoFo+20jidxRI?sp&g^zXViMT*Xuyp9 zGXGMcLu6!7v|=bk@RWke%eRF7jz* zh+@Fe)^w;CcDs4J3PGcp9b^*HW7c7*Cd4E{`;Gl)RrT&c{LxY8HR(ZDSLoI6Y6m>u zsvVOW#)OSkMlDY*N$IGm!i{`R6~v9gB)~2Dui}aw=is}4&z&Z3W3D_l1}ZuXtuMjd z#;cn71Q1SPOx3qV^!3C{t8twi*6=7K-79Y6zOUvy&g3%Q9#ub^HxV;W-Kp%9NZ;yW zfPtf01m)y4_=N1=J;HIL$y7vQXvx8gyFy+)e-7et4=RekRE>SRt3?QnS(0gUbDIWU zE$Bi5SQ-&-nDQ>MWa8_m<5yI7ZJugn*VFomgxe$4>{K^JbLp%MrX_BjJ9MQK9qjT# zn$JL#8-|sPj&FXsv3akJy6dFVk z8dJFKr-^B7j~_Sx_3-lJgxZgC|I6ArgFK%w^0-u@XfZHFoqQ@WBr@YpX~BarydsBQ z4S}}ATVM^|`S-G%T)*yJ`QH14H0$}eHEp#PdbcVqJ1T3{EF`%FVe zm|j(VJZU+)Jh59w4{-d`wUXS9 zNLMG1LkD#iiVK53sT~`)wV$#@#8}Qd$U1Aq<;eF{!4KYf0sb~7vLpo_Y|gC? z=&Ct0bUTHD$y}neEozctcRu{}|0}?fO;-Q+ul)b^5o~;EdqHmk2TmB*_s|Xkm<4l= z1BUGBj0^-chyu(J#5V!QcIfmLSb5V6UoRlNS0|$Mf)70v&h~Gbc(`EtVl|(S%<}0fqrNiP4NaUUT#{4* zFpG6qrq{b~=JLsh@+VlnipBXp@DUM&dRY8f#R10Y)yb|1?EheCbQrJ69#in-*~D*G zC+Lf&0IqTu5IfGPm+2P`%&9#TVXO|fxM+|y^Zq!Mf-dPW=hWnGAMK{YQuniY1{fX% ze4L)?soONMzGS1Rv<@3Y?^z!@@g^vE<;o*P?!clZE@a6uelj5z+g`u4ILOx zHSgzD0>hl4@!$O)PwcqjM<`VTK?>Duwl>*l;a?pKk&3`j6L7=>F*TkKz%T65o+}B! z3ZKl_rZg()w5m+4k;jF*N&6%zgqfv4RgPwMgq8o;dc_4B$KSwLz(Cij5_oRF4jMQF z<=}9OcP_tK^#qN1APOdM#?-mbJ2++aN*`a^Zy!IHjR3Kw>15 zBO5SwP}ZE4+bp*xN8}n!dP_N}x;1>)7yg&+M7R{i6}2D*94@0xEEmgZ#^NrxQ(;7g z&{{D7;0RTUIA(ce4afYS)vzEwUK=iqLMvD_v;t4}+rgX|D1KpNOhp4YYSP=^b3n0HlMBmf zpfr`ui=%q1jGsv+MKZF#w{dS;^KR@xey>1|WvdP8! z0YL6$=Tvh$^~_HRW9g&R9HQPND;XKPbkZ?>%`!5m)fbSAfwCTb=-Z})y7H>95I7e| zI61!yv%3-zK;^s5E0+v}k{7GL&H^}ei@sgCwSa9nS&I^eu2;l%75=hSX-UF-~ix>=;owd z&GGFcMmij7>KRn@eq^I#salGRh~uA%5MMg?W?A9Az)BH)V*XJhz~?8Z7G*}(`-Fr{ zwnnU7RG2TN+J@b?vf=|wnLv3{-?>c_y9mJkRb>d|bkvi99kmF;YcVE0^x6BBiHpDB zc=oK_gngR%(5nI6qah3)DD{AM zfF9)2@Pi%+TOi0dGFS_g8*?Ctf1 z)Gwq@ejn>9+@uB$G1F3M@*xBXBL<{X;qEmI(-Ow*1b1ln$4%)3)4v;tp9loPklSrR{$QQgQF zZs2>8s)%U0td7g?H@NNdCtY7>E$QFlPXjyU7NHpKXvr{!uYp-F zSvccQHh7eT^jl}A=lT}{0XDsr9`Wg;5>&08m`lA-HS!inZC|8!n|f1cr*L1LT(kn6 z!CL1Ro2^%19yM&n8d+Ea3>^*_d1Geb9@zA-3efgjh-O(Zk1NRg{h#LMl6Q{Qe=Ehe zOb0T$z_u^L;+=DnL}Bh@iwx>4#|yuZqG zTKj!IaoQL3pH(;Yf~_Pp9D%80vc#y{WBRvle*wWs0>CpMgBYDelqS@k@1Crwb(zFE z+X{@6xi^ztLLprAMGkDtou6B7ux^&fein|Y4e?_GExB0_n4jCPoqVrphJobzsPti|Oxvno+!|Cp#VMDC53>5^fu#l4|Iyex!QpGz$IoV0JARUr3MrKM zU6Cie3BYn0ZLxEV=ofKHp_gmKA`Sm_$HJE1gKvER15gEWc1*zz$o{D!Bw*WEimWY>3;k9SUYYwc={;vKvk3jaitiTB3gxE)FNawW2 zP!V;!1sziL1SWXcDC?9qap?rVR7u610nHV2K}fF4v$^N{@P*bs{)x4{))Y@vOM60T zw)yZhj))nQ;9JlgW%n0>18Iv!z}*V4e!lc=nz=>M*dlosztnjao|8 zhY8xXi?W~X1{=q~vrnm*SVxTE4ZfeM=NkD6?c{UU zQCZ9Moi?l%!J&Tv-8p);mFMHT8039nNk&dnl>*+w@TIq4m>LS}YZ#H}XE}xLy{AbK z+#P(2z6jN8*}ic4(O=O&jc59($WnO+pl%6uH-yEujf`lF?o#wC-x3bK%YcedyP^zC zdZU&$Iqgfi;`M&=>_(y8THM46Vn*oR@3>zCWNgqNdbGQD;pp990{-c^2@aVj&GOxNbvv zgPX&lu~1VLbr67tO}3!s5}S+Lfm$W;?1EmPe)E1Pqk+SfRK`;EL@rJ_+ub7;o!Esi z=JJas5=|5pH-!gZizEC2w{Yi?yzI zf65a$;EGNauDd$0gRDOU=qmA?ODw<~-V8_r_d{+#wOq}7{DPKR9mDE973Fh!D%$4e zuI{s||Czfw@QeIi)r%_lMl8Dx$E)H8g8ZsN+%NUG#Um=>;U}UGoC zWxtKi;NM@5I5q%qyy&5us;5)qoe2Td6mgi=>?+!esQS<98(b#_QKvw7VupTucJTUQ zdJw?N;dSbs+tteZ5L?OdPU`)BAT$Rm7rmP~7>JZ`l-@k0I;(4Q02_U7EJ zKbDmPwBJ}dhM?5%gaQl*soGnHk;#Y0OLmob^!0Rn9hC7jF&#{?TP`Yn>AZ^Lw!M#Y zX?95?Sy~v+?wjFl(k%I92FgoZM*QgkqE*ibzdIRk#GM}@3_Xzw8xvsD?nMsgu<(bvJb(86B zrD4P)IbLnbK2Ysbid&-WSv!^?M&O)jRiGHj#e$?|!{6I7lhM)@nDd=-+QA|6Fll`E zP`&&SO`=9ay7cZ-A!M4q_lsP{j!;>RIV!C4+QYr zml%4Fs{9Ud^{HVTPSa_~0jGyJf+EjMrQN-nppWb#%sU5Ce@@2I5si}C$}uzEw##31 zJHMJrp2<0qX4v*gW+T z`?TfQfX0CHks@LtQ}P<5arwvWBa&EcZ)v236Y#To>Nl zTGE-b|Ndw7!?EsDrDAJe{SFHQig}A^Thj9<(hiH*LkynLFN+^glauuK;YYH7tM8ZH z4aRm;GQJQ_KRiJ+%vDtIm|P=!IFUE7=cn;8Ri7v&5EL&F56u{+#~)3&K>eg5bQX~EGB-X$b)Vf4RkB$0 zW4T}2Gn)bHf=<1)kGu%BwLNt}N=d8{Vuv|msJ4-%6JAmrhJ=%I?gya1TfJNLUe5Yuy0ahuxw%p6B)pwZZ^g-4SOk5C z&>?xx^W9}*DUfK_R3NC;X-T73HH6IC?we%&iQ1MI^5f$j`N=8TQgNe?2^kyFT8$li zd#9jgsgZ|6%g=TBTeR$Y`sUpBYEcZQoe%wG{Ve*ReWmR;Z{IB^n>|i;UAanod3(ea zn$(ieZ^Ua2^w(46fmtsPPucptgrkZesccs6kDJ?rel4)IkG=Bz#WI0@$F*(|_ma}n zS?lVCr#MLqEwL(kdbFQ!W2MJ!s5qajnw8*|7F+GzQaMW{U?6-Dl1^JHIunC-JO77sW0s^g!z{&2|s9>4C(ln(@Fb!)qLW!hf;(QqUkLg_Ejo7~?X;L;Y1-?%nb58caXhf4~Rc1ZvBZ zy%~92RZ#bu#ze>FG|LLukf!{)X4b!2t+$W`?#P7Ie~x?BZ2v;O^jGhOgCuzYuXC~% z-!xo}bcJX_{8SQ-sd#U7+cY%C{njM|SBU1ma{l>DYw`O~^}CwC!8Vh6faH02!X-4O zjB!02LD0Fg(R6quV_R=|Tsj3yrfTW9q#T;%!STy;XNwKLFW(;gc*WAjF8t@{y?4VE zOlqn*Q^L`2aV$gc5p)?La5zXylZ>uic>b&D%U!Qk@+*cN8HI<)T)*uJyX8(pS!LzG z>nm&JR}wLMPuEuuhaQR#CQy{~IkBck09Z(H;GL6Q$$`_Q13vHHlO<1SRq36Ow%B+$ z@vu;*{c@;4VeefT@dT3MmXkw-O>{EO*AmiJ2)bQMf$sQyRC;CSJVWG)1YGz;9Dyrs ze%a&JEy)(_La63sby^ltGs&EoS{L^hXpEu5BW6w3%U?^*JUylyobH5b5jX;1 zOlrAOk`|%)&kD)iTG1oHXbsT2ClKqa9{+qj;e#Zt>p!c75P?Eb+tYliG}}-X`{D=j zh#wEVKVSg%$nooKp{U5}PBifpUNVZCo0Y{}3U4_1$Z zZO8sBS88lvG%;G*r=o+yDz|#vo(zqRn8VM{FxW9>>^AiMnxA~Filc`%Y$|*=QF!0N z^*KEC=R$;=0+&3!#2N<4h@86$fdKL$VvsYU5w#67a3bhP^}W`VufBQ<-nMy#l|lfo zrvLKYRsF*ItzvPDZZ}QKc}pV~pkAY_vlBk^w_l3(eA1a z=aSXqD-Rl{>0@4lm9G4gJf+f%x7fqx6wHN)frepr18vD*j*OiR+P(YdrJhv@MuUIx zn|V2zQQweBb%oO#RcxRj%iRGTu8NT1?h;D^-QvE#apPQ3lb|cu|H7A6;(97_3$+?6 z?St)AWzKVmw2S~$7VL=kRTZ|v>`m0RwkZ?-2wOV-;HxcJk$LaPoWG14ulp@k^+)@9 zvVye8t)ggdC)Z09n!l@^#k6FPU8;?qgTkiAEgQM4qQ2-jYwIQkTt=G1M)(dCtMpB@ZPf6`cQ(vT%33iZfiCn5M@uJ4%jw;qx~H+c>3( zX(`Qj!w{}1jdVa4%;S`OaPg6VPE(0v@rUVD*@?`5z-tr!?YRaXAg2`z{l8bP^Ru&T z;&lK^Sp4yr>NY*1nSYKL^Wa8f9VQ2<(aVf;If=`|FhTiYx^=c01-$!tg6$M*k#935 zGdf{oEEdmGhXiPr0xF@`2E#+$TEzF9+ps7D7)!2(44nT>n6%;jQ{^+}?D}VfylZbp zq+|XCPupinr(^)ZnJL0)J8nE^FEj}P&QLF)XsU<>o{D6kqeHzJP z9|S(~&!gm(vaZ?AD!f@0PAK`{6KcdH2vRo5ull zP(#72lqP`0?ZS{q&%M zG6(RF;QaT6e?>(*`t8Su69(~&T-a^1ly&*`$8Vkr1;uMN+gvV$uP7G#XgPXC^!j9% zjIM+}t|vQOJGm5Z{>4mEG`S&N37i=%Q9nFyy8StBOR;ys?a+c}XTR_68~BX#>B7so zDSJDc<2!%?E}CWfhO=hVY`tV`xP?cDxTc!z1)BMHgW%#@F@kkqsort<3XRit?k&%P zz3P{{8Q}rZ3q&-FGXBS`W^gdJkRx$L?gsR^s`1xXZFA0d<5ncff5Xd3-z$s@w1@rL zBykuOpF#i`d>2ond*%xkW(;9ag9K*5t(v+t>E^iF3eJ9g(tpy5upNN*^!XmI@+#us zuxeBdFE{sNU8EM5#Z6?v&}@bBOxA`EM|Yt1Mc^_@OWVI&w}l*1|3JZ^G%$o$o(%2r_ zzd$_2k`sgd@9h)+ZaFlt?_mA}>FfoHk2CKQ>%}H6uu0!774WoFiEP|Gk*3X@9E%x- zsU-%KImk4(<0sr)sA2n!Tyk(cwvGK30xKdKjf-OHzv8sig>Z>GovS85*!WTH({GYp z?^67=6Za?3*>XBPz9AA`&flZwNERVsfN8cW{V-{yX%_+^1>BQLv){}zD8x#$Vp-Q! zpNW~=ZXIDB7p^jA%7$)k<7TGFpkro?%CO}^`2(B8@$}_i`8=1`{*)p6+oX)29?lw- zK^lz<7Iu{j7tokfPc4GXc*Stxg%zB(8%{~b239QSyQi~eQ=ENJKyD?tfr}G^`z~`O z`=&VQoWWj#H)l~b?d9)Ef4$x*k)$)vrV|g5%}P?$9bqQjKy?S&{BT^D6m?LX$;R;b z#A|OVrNGE-$NmTk_7K1pt)+!*POB-6PeI6FBO?p*z}#7g^z}|G4b`Y+50)0-Q~~5> z)FY3R&z$7s-}3s`r~7D0r?oCFm~aKvWX6U)sS7#Lvk;yU7bl@Jh}uy<9((+zuyD+{%JX~ta$j$ z+KprhIN-ifCvaZVTU$k{mVE?6a@-XvanqaHy#-QQY?0d%ks?d(XiICNO70bOISuUT zZhfyw(24Bqwzt&6@TZ|JESwVq2rv@DdsLc^h7{j_M8otuVSW-%BL(Tt@b!LIFbDYE z4(?62a&F0dZZ&WFYH}SzvD<)S?FAMp-aNJr2g{!Mqc zGjV4;PUhQR?|5!AfjvYjeUl4A_`d8rJoLBIAR92vDrj_6BX9Cz!^-(9@z62jQ*L{k zNc4uB^)WL$+1b`ky*A67`&Y`I9xrSNxO=;C;2c^oL_5^7f>zWKuFx? zAC7evEFD|BY=_*M^+c7YBAZ59fj4`bvYJKIeo5t1NR5l7@yw4kH4JTCY*;Q=jrEw8 zCckq3cZGe3ugxplfpf)0FGiZ}ircC75F~901j6M|l_yTNmo!+Q%l{rZo55if8XCtQZR#a4L4qhtB=FoKq(@^RbS43Sb#F&BvI<-g1sPAY& z6C7V(fkkWE{cypW_O0izUkZlShsz=IW1=eFVhdRu#k7{g%DpQ%cQh=o1NXH(DcSa- z%?w5Nu{~cLqpUnc=zi-32=tD$`MN*>e~>e>M&F9#@pHIqO1hpgJ*L8vx)av@@mUVK z6422S#i$rd*+QckRA@d#nOP%ebTnJfp3xtUV!b3_Vwn;G(gG`4T<_Aqoa5J=KUvX*zjEN9aITJgprEEC zGD7=6B**dPD-P z8!*B!*A^PNR)l!RVjbG}-DR(^|1pT&X(c7aG17 z2Zo-KfHY&_TytE|rRjC|uX~*I=??-CCKeZVvu^$@9MKNY2Vm^nUlN-4CcN#e!=(T| z9GHdw*B?9Ki2S7EE9Gh3%T~#E=6OuG4E%n(?W6^V;_Zw#6#K2EZ6za1s%90+py!kNzl+4764am^ zVLG?78i$WF_4It>rGCA9{a;^2VDsN6x1eUYx|f)}{d)y1GTgLLe7Z`){iQjwv|zTu zhugpge-1&=(IETS4a+Be(pFRT6FW7B`sS&^@U9&CAl&h3NafM}J_$}z?w2NbV^`z_$wI-+k+ zmX@7A0JrVBx?&yY2|3psEwa_Q+3Vke*yvFhaMK=I{hSjdRaW%k5a>yAk&t)OcllQk zfC~=p;}m_IB$M!yOH~?*A1~UKg?97jaAco{x=?CYkf`G#01#qI02k$I!IhBH&#bY#|?dG3YVnw@sSnGx3XE@Ag@z)%cjDmQw;g@#jyjI zrV5^28inMQ`=7hk`_;-rYS{F4?hx9Q$-?uhfzu@?oaFiGZJFKPJq$F)8B1?u138!} zeCXwYXY0SX{4u*{-}a>m?-$4eH31)_6aQ|-)W-ohn+n3iiDQ<=pg>=Tw2ql~@QC_z zMfD27e)QKEw+>OVd6H*_(f^Y7KFN3hHh#9!PwF1BDey7^(#{9u(fc5m+!ZcmJ2&`kPPoZF8W|`CoDvj8dV+T4f}qKOCah zNd+nj#k5(8ts>S+7O!f>4+C#eqhNHch*z_p$wMwoqtp_h?aSToPRXE*zF*!>1aY%W zi%#>3l06*26eki9QqW;)KH?USjbPDD+btBtg-cdZ$K+zZ9yF7VONo~N^KHlsAI3VT zjZ+g05{!h&n|R#HbhJx9VzlJ;iVF8axWLE$7G>P8Y8gTZjS^#Sd`W5*K_%-%sUYb8etgHff?#0Exr;9K$;qGjDp^ z@1P8$oF4e0o0pDj1I8O)vb5OBif5J|gd9a1yjCvfK0-qNStT!wI3!{@KN*OWeX@Os zhVabv@2!YNZpj37*iOjW%#PEx~| z0S1QsXC;gukBA-iOro(<#CTx=EBtzpb*Eu7eJq~n$lA;aic(GUMm4I1h72g zD6wXn$%~&uj=!>d_A74g!9wtTIgju;PM}ARn6-vN)EI!cjxFUHOd7| zoALSo4|{L^mt^{e{oB+hYo@80Rvnj`)T~Tf+!wTE($v(_(osa4%uESL6i5(knQAJR z!fjI2N|9WEQjrvan#whG6omwV$`ueO5lKMidq021^ZGu&^J2O0>%KUz^E{6C0sNV1 zqpkZ{OxWde;C||s?lM#|mI4nL`2z;4+X!pAFE4g&kGI{BGkM}^G}t)?myxBAjmf={ z5x|u0_bHxHxzd2%7<>V6mttuz(7F7g_=bKc#%`(0vt#BFsTkMdSB*DwJ~f> z%*u6bHs4e^3Cp<8MOD%vDwRHQ52MxAW1}o zQLtq5OARGOXAL1S8jgSqWhqR_vlCw3An$umwq-aeD41j;i7T>?S-MR3!j9Hllnh#2#6owm|U@+ihR4iFw|WciFLh=)L9qJ_&s$E3~VCF?LQuTU~otgG6Pj zP?>b5W71@lV@}Xaih!}8!EXEGn2son|Tg$oAfXk-qbU;fb(XfGv4Pa{!&3~eWV4$$$G?Q*^cvCj0{0(rRIKtF!ADa;x97xcgRiyYWa$EU zisjufFvLx$*F$NoOY&9MA-Au*-}dc=jzFmz%q6(dw9&cX7#1&zRooO7l)P9KCK5Z0x=^KU7+$PcgKJ0@_Mj9rod5#! zy6+V=Leg|@YXkjf_BL~HGsKA{hQU>fp^VZ`PdxdNF*&|sX)@Qiy8i^>Xw$wPrtcc5_m7rT2vTS|Rpzm=T{R?fLpxj#5gVv8fX0-gv$MYASn*gG8LtXClmLv)Ir$14N_4bQ zu>p%I$Po;)WnF*tgEi3Fl3EfjG=?j!l*>Ir}QT1SCAHCszoLH|&!I`)f^rn;726x!m-@M_Ogg8B$ zA@KUo%vyZ>%kkRAGMH~BZw51asXWZB5N{POWbIOl9T5KS&aOEkEqPFQBf?@XSZ~OQ zRw)>z;1Lwnh z_V$(Zt5a|)of`2n&33X3X6TJKxRc9d@~S{n`0fdZhe5igt4mF|bBlJA?No4a5wm#+ z&BQHF&TE2OOaplm1BwZjeH$-3ari;r`?uCr-IFOJ7=?cLPr8**ydS5)8?wX;grw#I zr_#5hlU!$C_oWYo$TeT=ETaTBzQH>_UeIOhS_aR zUO|W+->kLsyJl`-JwdTqb~z9ot`vjIYXLbfx9j4bh+%}gkj(dy*jQ1qHL$*X?+ z6cNvi8ng-Ya^%-W-G{NpSiUa88ZApR{JN&7MkolChO>aTyCXmG*UzKYclvIhTYV)k zqr^`)N!ZLLe;z;ElBUK04F;6qbu84Wrcj)w#tSeyT19Ax-_my%%=($vZwf31{n=(S zT)&YvpDT!%3u0!>s8p?>v9Y&GSrmA?n?%3Al&H=)mi}i`;CH)Dbozgj5hJ3sden6D zaLA$Z>5_u5iCU@sqGEhjH#dAQ+@qtsi8Z(EDKP!8^ZaDqx9tadR9KY!;2`LZw-?2u z8a+D4FJ+Xd`=+R>-?C=T2DB7``9%K>+77;QDr$M|V~V3!SETQJg!LO_ji}T*TSURz4S>mHl@#=9en&dHkV^TZ& zTZn8P9&B`L#+D%)`pSk*H{Ysw`k9X7(5bBX`_n(FpVMAF-f>yEYGTLg$-y%DNJHf@Wn)iI?dU%RuYO+Po@%h#XG())j3jzqlO$fakc{;%1_Q6|A2U}DY zs-qK9PS`QZwhb30l@S0mPAgO{$&LMxn5~8Ag1s=9lh{qAPmDH*UL?aGmu38FG2WLa z{U^Q0X>c9(qiH4e7}@Kep1H~apxcigqVc)2q;VlaGDNWfO-u6kL#Tvh_qOc#6>lBs zk=|CU4dLc~(SG@HBeF?elVlmE#rIpK_V{`%oo~h3(_sjLdQ_DLrVgE>zij^FMgE^N zmMb5m_bkd?e;+ubR8j3voT^GeD|1xI*R2h4QALLIvs&r41rV)*Mv0|#*~1A#y5Co_ z(!EWJbs4X%4Jbv||57_ow`}jIjGJS#!zlnTh&_?)fu~7uAqx?6|O}|18t3T6|G@NmMKEeXOp@u+g9BC zbzJHp?hdjp?6G-{{aLU@U}H-~_Wef1h0^;%<;=E0Z?+XOs_G5ieLk&UO7EFHqnTRI zJrH^1telY48SLHDqf>%k9)BnHC=8oxNk|l+|JXAqxkrp{BGn8xNl}28G<@@UE0@r% z=eM`{k7>IHeDr!7>zLyRv|NoStyb$F)p@Fnr}KnMT1bv9732KIu1mKKz9HdQ5+&Z0 z)HcX}LE2nV&MnCc@L*$ghP)@f4k|~2!JnC?=YsTlaV+!sev9b%$!DF&gN3Ar+aR0$q zdJPhwd&2fOjd`(EqOnDG%RC^?JVl%)64R$kJ(SG##HP?tIi2%9mDvfiXxQq&+%G=9 z(ph7BD1C6%IqhJSkUQZ5b+||dh9%*m7TU?ueQEZi#25}~KtWbF%T+qpGP74lPpq-7 ze6%-f@Z{wB2s!l0ncy~&q$!U5i;N?_T~|kSN4Fzk5QG4_{GZv**s0LnennxbGsL;| z?>7~T23!Y_2L~Ck&427M^w`XGU=Cr!*|(P$_O1-m?y3-SHCw>*P*ubn;0C{*AS)mjKXY**9o6XNHk z$MRoBcby8JR4I86ho7Ha0(_EyDQI-rg9*_I+8R>_Y>hQMoWsS5em%w@O4^#G9D}q5 zHXb^X_{k5O0I_V@_MM|5E6TwjxLxhleGJm0Bp zNAS;HsfSk;u=8thXeB8Hbhj-kDwXBcsZ2am*+U_es2J+{%@=qQ8LlU>FQO_3gi

qlccv;5X`tL#MAp!rm{GNOD=Oap93Z!pP68_PJHg|@7!F+onkT{YFnH^$sg z*%=b!vf22`So84VtGSwMSpD^UXx_1k9*5-i`_g(A0o!6UrCgp~iZUc9!eT`+K-xu? zTxHa%d8r(yikRN3!-=k5E}LOdBbl!!1eHcDE$-Xy9*N31^{NyM(Hn;ieUw;981rJO zJENG_&N2v%W7fm2<7;6xC_~`MTPt!`zMS#Py{_QVPY$gybTD>S+366eiS-&5%XqIy z6iKQEB>3UR!LzVmSZN{(MutQefBqls!MSIzKbCeyvJ3pG5?Z|WAUn$yGb-s4XBa#N zLTEOX*D49gQ4&RRW(&-TmBy5)>w>L$Y8S!OCs(o?>IqVr4SfPz* z5JiuURvEv$utb^|3#@@Oj+9W_V(T){gxpMY3Gd3cQ*~_v{;~j6M25hKoi3+FL0pzf z_v4(!`T%DJ_eh4=(1SD0B_<@ZlqorHA1Q}-9sB;q+dbX(AM-gg`R1Ud8Mi&2mfj&f z5NK_lUX}uQ3u5Zr*NidAdMLC3I;};_<5aQoT}hi`*6loFwQ`-((l8c3@#J+H5CsKfw36GT{O6+p`ExxCD8%-|n|C*D~;ugMRd zO|M*qdQx z0-9&o8dVbH-U`WysUtI%6D2eBnHZ&A@KI8Q!B?n6DVT$h_fNvkq=$*&;<*}aYbgt& z_r084etG}2E;KEh{RlK3gJu(yM(5IwHj2rhcZ%wsKPiQ znK_Sb6)NN@?7N8^%eCh`OswZY+{=~bv~W2cq;zV4u$GiuMUqcZJQ#UD%-I)FKfDZ^ z!qAV7KK+aKbE4O}^;eDnvu6wQm#-#h$m4sPA}Nlx0|o>hWt5I5BeIY^n6R`Oy@J*c zRzn6lf)M*wtvY%}y)o%!z{v-AoOU2Ai%1%wV`wCn1ZZ`=F)sSbdP$`mapSUBB^(}5 z6e|T0Zh)Zf-*MV-^nuqOHhk_RLnG^1F{EQ7>FfD`FQg36-us?k+W zkj+@mU7-O*s5Mb-sFVC}XMzY(U%(ES-c|De~d+%f*cxld=-ZOr&a+IXa=Yv;TE z^LvpL?*LR#C{4-r73!FeM#D}`64NvO+%giSQ!N%E*#DVr_sCj)_q2J#zS1?KQxl{M z57I||&R-r(V92AM0rL5J*diOSKH^miOV*q2MHTHVzu8eUCoZ|G7d5b{IM9h*yklE_ zE7%pEt?pc7j`=sGs*YNG5fHn7agJ2fH){|ojQrfhHb?#*uZCUKj%0E}d_NQqBlm9j z)E0Yx-?PJ$G*wV`ip2~m0~};!1+`qzwPgyzP%^R(x3u{(#F;-m4K>0J)}lEYV3g%WU9w|*UUsNUc+?P3IfaPTV_@(dW=V(t%Jrc0mV64aq4_eD3jXzgpSq)rfS z!E(W}6To%{r9P`|)G?RX?t+AhKZy~=EmN2jj3BUOR69TK(HOe9#PyB~tH(|X0Yq>5!3CH&QIMNZPRsuNZbS{{Aw3LoL)q+ zbb?Tw@nZd~UY9nli|T->?MEQYSv6hG#spqiy#M;_%Eyj$|F)U@aY2|*S>GeI8~}xT zPM-Tbk*ULQmZjR6wv$hy)w3Jg2E#M*fz#>?gEvaR7=YeggC!lsn9BJ^P#b%GZ`~At zLcW@LF?Rqre|5$&;B2zmS6!`D>BcU3+n0+qv2K+B) zBf7+k2%?Gg7;gEd9+yvOb@!>*j0a#6aHOk~<#Sq=pXMS6U=Lx55X2Z3>Ra#d_poiI z)T#88DLjJ^C;4~q(%0wXjpQufzh3>QOV4jJW@&+}oJI<|rpkR$%wP+`OcU;z+M>8Z zggCr^PCE)fQ}#vJ{~<1V;o@y){~#!-(`>@aZ$fx?cMtjf@ad+QVZgL-8*S95u6`U#P^79XC9nU2xbFquF+rE+NQ z<^-oV&W+EjKC5&;+rrnORlU@9lVL zKso=C>_|8xn#QW(2CaPm_ya$9Ab3(_yg*v;zjL!Iq07zNb8A_6k0$YHYblgqs;vux zC)0y{h0cI-^_>*ogGf5u`{~R+WhWq_d;Kn=c zjY}2U=BWfo48T+(2mOBGWZl|bhwbVo^WTzw6c6}QsFz8Ar?-X1Yi*67L-yyej{b5# zJtmE;&cfHwQ5PDOnS3VZL-nC8mmXew6}{u*gJUVHw5A$GT9Mc3mVz||N;g<2j@h@(cbU<*RMh&Px% z5bU4Xz8{230C1Pj6u8=JE!VCcvAWtL_e`#I{`Fuydko2^9^ta>(JX8&=b{n`;bo4~8|qq(FQc5|_^mf9eNRmx}F z!^2a_Phkw61dAWmppBM)|9aqneX-ZR?<>fzm3Jy5{7`Z)Dy@D`EGn2ncc!ZjRY!Kep(`gaL@~>BJ@l0}AWA2N#z1k(w`Tb|+Gdm3gE5o5QnNpmk(;l2j zFNBsq0#M*kh`Jt!V$SY0k3Pq_$a_gUyr-+b*t8=jyd#sEbXtRC_KLMQU$(ni3|iz* z69yl(lKV2p%h&>l6*h4ur;wBJ{Nl&GpYEG=<%0$jOv@YMWVy;}cnmMhD6N{vc~nH4 zn$p$qmHTlCObu8!*XweYNjKZ{lKvGV6J6>IB4|b5lUkccceOEETcvo&`-VV2**j== zHF_Zuh8Xn#P;I_jF67-$?)EM8EqoI2&w+HJ&n9UlLlE(^6C{ntAPZP*{erfw{7LVp ztyBzJ!rfNcD*4as=^=6?#&zQfFPjhRfnmXfHC8|l{dvp*KwugiTG@$JVAAm8CGr~K zI86y-i#z@^tGPJtYQ8Tx+06J6W7;^L1ZR!6x(aynl|ez2`es&bt?~MYZkfX7!{hXaDvur?-CqFeD#K@54Ki zKZRPt{eGs$2WKGmoo;sibGX?zuD5p$q|G1f@qj?;gCDq1>7m^V9r0x5UD`Rg)Cow_%8DQY{!6s ziq^9%LVIk@$y{N&s$R;}Z;IK1SHeWVi8bJxqbr7$dKs6VpfF=|R2qMHk(}*bmVf?J#molV~(#mzCiVrf_jtR3L$Jg2ZNnj6x6uYz>v6|NxF3Ncb zjVL!UQy17;ZlxN)`&=_iJW2HV&n!R3#dqNuvbh=fg>;Sa_f$&oE>WsZL6?q88P}Kr zIE(Eks|Z1f^H;*dgFOXh%PPH800b}J3+=-Jt;?C^0RJ08v+r|lkMzv={-r4F;&Rz3 zj@3)<1Xe&|;(NqzJSngx0+S>U<&zhyR$7=`4n>^2ks;!MGEPmZQA0{o9J!XmJ;3RQ z3KF@-jxiQ=1>9#h0G3DM@diCVvMde&n#yo`;Bac(IMKJqov{elaX+g>9)t{BeNAfxQB-x(=27EXKEKU%=i0LB-%?@e^jYq#IYe^_rkJ@3mlkBAXpV9f@YU z31}uZK5X~SeJ4b^b^xYi)GYCVUZ6zkpxM(E;jdiQVHe!&A`fjizZMXQWosL!oS=Aq zRfCBe4ZatRF?jG2I60%bRRp(wa>vkkz^;q<0vI2vG(G_fM>wjkaC)6_BLe3X=zM6ji^A6cJKt87^5U@kJ z)UsgbEep^H?jZbT7)^j~AEnFyM}{w%Dl69-ag`MM z)VGn=l16Btpga}A5#;bWm;b$e0Jz*^vWE&l{N!FRc=CdMas6ybIZY4!R@zIWG3Lj{5>t4*>D0p>Pb|hQbf%3PqFxUsYNXzf z7PW{HL}i)mQXTti%V{*=VlU4noXEWfJ7wnRDENR6$L8j1J*L=VJ@CkQCTcdJW&fGM zXO$^jZBodZ?#Sw23(WI39F3{`doI23=3vNe=^Vzo^F|{YfM3r2Ym6vYJ{3LExnn1@4qC`MnmI>R%#nS7-nh&b9BZ zAJO`K7mn3$IJpjw8}XQ2DrdA`n(L5aSilWBh-|1S5yEu3r6$zr+ff28a_vL`?ZjX} zoQo(Li(phq1-ORgiRg}G7z`F&0XG6*=P=a1TfPAsXd7ySo*S{K=_f9!sWhdiUdTsq zDlv0EBBA0IK~6XeE|5Yc@7Qe*CRbiVZaDv@qQ)>$b>ws;Wfv`OQ4|J|er(i9Pb1sh zH&*}+D%yl?Qx2hAEUVl1;IGN#4~G@EeIxpFuN|3jysjLqtBabxS0v>uw${-Wu}kbB zKu&XZIC^sN{uv>=9I_qPKnVOZV$ENH^}Vk=q(xh8g8j6Up7CFM6d?)2k<+QcAQb%I z91Ead!{|?H_C%d3YJ0NFw8ujwo@>jd(((Y++`5ot$juvDu6Nt`sO(0Y7dj8Q#{C07 zScslxO-CbQXr)jxpa8oT8sF>V03|0kjIv`Oehl7#?&)8Dyt#77b3@K?(1@Y(U|CNO za~oNhn%Jse0=8t2V^O&iS2ey~b^iB5nco6NhE8n1^uRdgmusr|vPRi|VX~;r*IA1d zofQozOxurd+43~|g&_i#&{vP3GA9)mhX60pvQO zOw6Ql@1D+`!P!@N)X~6t7y4ij=WhN1x8LYdqyus`&eq!$G{3XTCvGflVu(gls5cj} zXK=`x&)Rk_p|AZvvqL|{2Al7=DG*7eBR?-gAvP6&_z~DCPi|6ap~=lg1ZD6&zvZZc zM7mjOzb=Id0k=yWKYtE0FF?!iG9ZcI4;=#`Wkd%`#(oM zB7^n%f6Kllkc2gQwpc&}zd%YdqT5fmL#&{XX!?Si^Z8sv>gM2=|BK=gr8wJ{)-&7l z!h!?R9sBxlExIO-4yYW?QuFM><=;ydfJ9s(kDKF6xY!sy*;r$@4nJ)ZW1WBEHNdwW z)X=;~gL%Oe1>IFJP388Q+UJ9j16!lpO>=sv&4OIqd!%aJN{mC>`5% z+Y7-_h~ z=aHxw45Ly+$$3LHDZ_6Mhwfa*TYV_k_R&XDZVDGj_#`9wD0uY`u|{h0QX<)ua`GI- zUNjX?>sgFjSoZ(Q>uok$J#0~N6SKqi&;%{Ly97~x{Z9X70` z9gSt{fT5vw=kMbDp@-M63v$<8uL6>+(2EVo5WSNphFl>Mk5O^JHZDQm(^cxJJT<(+ zxE$Jmu$=EXN3&Sn-PP*@3`Da)*yXH705KQ$a;zs-?TBYCHI2vHPeF0*_7deBlYrnG z+(Oeg9|+~_jE#s4A{a4)G(u%jU2n#nebgywPis46X;oe9k>0dyiRN^w2(~FMRi_<) zTE{usec<4O13#pAPbQiBzYIuV{97|&<;fC@_m@)S$-Bynhl5+nf!Y4Rq7qOFxGB$R zz5B4SvSkwnE(4A~oN{5 z)764iwkzsRH)8=xJwCdO37m#Ou+ecovY>-8)cFtx)4E5t|yEp4m^X-(XLg zT#r1g1vm_XGjXY1fmDL2qEVVu8Off))05lh5ikr|I{BAhm1N_#tLFA-(ZJfSKY&+z zQ8&}AJSJ)tF*ynv)3t?(^~MbMF9_(xI$7P$+oI>H?FY|gIR=OoJgJ}FnvZLpt1N+P zd4njy6ta*=?5JqVg5kI7wR}DJsWePke@!l0zuFrV3^H*@Xzfl)=4WBp;*dR;DkTW> zgL~W;Y5aq^Y{cY{q;JW&TrE<)5Yd;xX-LXMaARc9Ua;@tH^us z@8dgqJzM2E4P!ywjB&g)b^cWDbI^)afEe@~$z-h=AL)cZ zBMo&z$wvNuv132{yP0B3N4u4N)0C3&VNtY5LD5x}LQI<2k+87izHW3LoDKnSJsX~l z-W7(uw7+p=p<5oF-gUXsRUOuY)OZYIr8HI+aO*)Xzny_ssJFmqw>m`V($dF9PUHDpsZ!G2pCf(bFdm6w#Z>YG_ZNT)T5_7oKt+($S`|x zr7_6+wd1O)BIK2f%Jc_WryBwfK_7AQ6gXOGYxx*Ul@a0+5stv_)wPQT(Ew?$!tK|q zzoUM=9L9Mr%|M?@m4+L2Lg^OqnT&JdXR=unf$GL`hNESnjDL}u7 zy*BpYN2lAto2~!neJ(=;${5N=nkS^7tE)UA#B%?2YBC~a1Vlx^+!|HySp%3O*2rM36DRK>$t0?YF{LB8i16G z&Zg8dN2%^}6Z!l9CgpwmFit{sgVwLH=*l?~ue~UWjz+VMdZz?~CuT~gw$QjcI>FS= zOKcw(9RdnXs^ML*&3ah#rqyHW>W-DX$3UU&O|w24PpaQ5Y%LsPD$odGf|j})p#&g z!}d&wb9s6s$Ny*7A~b-;+T;=8J&^GM*pof?9?;Qih%6b*2MniYIK(MyMa*|nH4{Ey z!c!B&o3|Xl#Vh#xoYszcr1-U+V-kMbbeR|-RV$gzD}msO56JFRVsCV2ZqCsp7+>y`C;j0;tKm* z){%gN&ZOsqr{xhg4R<#El@6;JKTpPGW#SRbFlN{?Mo{ns8doo0ID`BgY0@}Ma z7{53A?hCtXKctUXTd$C|rdPplH<4onA?Y2P#u66MttP55aCA>+S#AaW{rFDCJtn3p zSiC4Wzx7Rf{u&tj;KR!Lh@*ryoqK!uFg^)G)iSgSUFzf?(2Q{TUZpNru1*$k>J6ol zzpbew-tig;KVswUNSTmhr(dMQ+Mv!ps0ebS77jd8mNApl_ov{|1RexIfz$C_Zx+wE zT*ME&|L%~dli)?S8F76?MBF1oP+#BHr^S<%rNRMy8kI?TM3~5hIrOUg|Ig7$isN1k zLZwcvOh@cSCA~?phkt5%i=E+VrfC&tJ?G@_YD?<*F(Hc3R;h9Q^&b3L<(4m;c3(af?t_=a4QUkAMWeyAN2~J5{*qqOdOxhkT@5cI zjwa=+M zy|t9atj8^(7t3Sj*=iiOwDMNRGjKssQhMao?iqkMd0oV{=}+?NIW92>m$Rjiaw)m8 z)h&0#F4;;GaopK?SSJ_6(8KFH@7*c#yJNL>-C^&&Ye6dp&GYZ*`GBC&IWjddbWXxf zlrH_kn=TFygIS1adCrZC9N=U-7&5F9ibrETX`wb<_BUR>k_`mW1uq&M!lQCq(hw1t z>WI%_K$!I0Kd!0$MrZOGa_z80IYyyZw}TbWbcM+q*9IUJRr}4hm^)f;pym7&vFrJn zl8&J;3XUaau&|~8EZVa$cn_m587CeSHL&D><^a^!(DNQ@Mf-i-4Z`^t(2ED=bh=~h zC35(D(No?%bQ-^fp`f^O!TUQN1wVu0K=f9bWRNO0<=}B^CpG@?D<6}Z3T1;1Z9NJl zqTFi-I6iEXD7qjfDc-~;nW5okaR6A zP;I%pSLqA`Xc?X`PkbV@!RmEqT!!aXA`b`P+8~*Hp|tH^3u=kjanqC7^7Z7R?WLsF zD=Sf*2k_o>|1I*6n!4U1UM^nHz*04epl4G?;d7|HUKm?=RzR{<*IA5XMINo!*%CQ94OjKVg$RPl4f44~ z9;UVX&c^M94x$gFjXnh#m0oh}MQV(S~pwR{I!M>f$Lw2`61oGp* z9PzIhjFM`m?~N3nwbiwwhxQMCm6&ek0YARx@(7(9<^x3iF>`!MUp#T%X9i@~AiUOn zSk(DtD(?*!xWO!E^}*WwRt_6As+jd5HK(VA^+O8DUfs{2G< zl+xF8{_y!X-lx9-+%o|cIgs(X_dm1q;r!MTj!sQm%t7Dz&Ec2lSDtC7(cy}qX70RL zBnXt;*@S^PkjMXeb%RxErU4km#{3`xLq1$*$;&N_!N)12Q{O;VUN1IV+gCd@#sO74 z)uixU8fT^06(aj=F`=KC9Lk45fhsh)UHS-#$#H zfR!Q_Enrk}FU#Zy>>i0nSMI!XzPI{=ZPk&bbNtPp!VzVA_pm%Z6AKABAmidVpCNna zCfLUa2VGuRLeP4bkMsVGfB&LnMdEf(ikIKavjv4(LC!&13z}nK1P(^7HN2ngABdd6 zv_MMg;uNu$ReYv9T?wQ9`_4*LdgaZ`x8JRw0U444AcWgHHM;I>XSB{arFI_d3Cu(> zfE3Dpq_l$=awuK^v{KSUt;WWdV0cDuQ_ZVfruB;fFS%>CA7D?VWXC6O6NT=tP){vG z+un-qa2w-m1ZZud|NSQ)WTAgxV4#N1MwLZfx8&+7=1J|xq#cIoj=A6Jd8A}Zw-UW? zf~t>Mo^yBh)H8~GO(EPPE%AF+^hmH9?K#V;Hf0{Txm|p{m$l)XYtA%O25jW zL|W?S^zX}WmEkM7+Y-6_<<<*Blx>lxpOvML`Uc#U2F)m%wR^@>f3Ubhe$+f{$ ziP|GJ2d?%^2tVCLPNAn_nmgDk0bjt?^1nt_P?EzVk%fFAxt5KXR@Sm}J$|(MsXH)u z0F$yzvVQnroR}dcqoMY|;s80*0N_iBVmjk&?x+0>8x%(uK~>AR^dm3cOn+=$t$f?I zgxUW7!orNThEJO56~@K&u}e$zD6#Ztd{H3_NT-Fy4RVtS^z-kncAh(SW6fn;#^{S4 zOQSrw-=%a`sE`dW0%go_-8{LkKlRxNY1=wBQ?^dnx4{Kx3^Z;I&tHO!UsO;FY*?`B}Yq7^)7v4ruw3YQ=)kMmhs^Ft`*}HvqI8DzK=%K z>RQ>6U(emu?k@%9M2=fmqc9iCi7`X$82o-}>#xu?AvgWcj(rn#u3qC$37C=4+(pPq z#xQ?btQ_;#W3<2dV5SROE>nAXFrjomuuGtXWv9?iYg~Np%$Q+qU)oQuLwz)y#U~40 z;_D3!YHCF}A(i`~pGZV+cV$EZsau z|G40t{V*||E&U)PP?;$T`uW0Rh51)p=K)dQ16S?jau}T4N5`=F?P*G$_5!$AB9zwV z$r_l%A=u3H*R;mXfONv+W3bil7bfgx*Qg5@o-I;6p7N=_KsvM{<(uMs^;Q*+2>?jw zK`DZIX5`bl=*!;bdp(RF93S4u=p5I)-qJz^ymw`(3Iv@}D)>4=%UsAM?14%jH8Am< zWy1MacZ;J%^R&dE3@@qymFe;N%^ZOzVx)#Mvrm25UZ% zlC1j?Ol(x_va$H-hZL(9ul?^BNx#@QZ;FcuR2u1ct%;R?sK}a{>Y;Yblsd785zNp` zCH~ySyU)81KD=#d>G;@g9^_-%)sip-@$4THs<~pi5!84#Xj>{^vk~P3$>%iyJ_WWf zXir9u)%8=Xg0Pp}*6FM#Dx5WsazQw3>=%JGC~k54Wgh$e(itF<3xmQjK%2`styrkU z09nzZNqT?o`O2HGkXNi8lFnJ{1_|k5(UXNyL(Ci%nNXIXm+21nyBvpE`-8@#aG-KH zKiT8OgIn9*m7HHQhx=}Qu%c_pXK#-S)IhZ_tpd|}xMxn*xqTM3m&H>t{C;UN&A^IX z_$heb+UL12zZCVg@T;pdRpBRgn9TQ<&qQ)P`ymOUIh{sH{%4rHOT4@=QW~gj*2XEC z+kQBq>OJDytRQwh-X4({8R6cTbtW!NMyMNt&AYuF|S^$HW1-F=ePxt=&&ebsLF+hZLkD+m7TbIP^@V zHYA3i7-cKJx&wK3dD4-Jj}zhk3(2Tz46biLE(Bt&TwSK!F|WdET32+gIeu#OVYP{W z0KY`5k0{w#>RO6go(AZT?F$Y_jRr(yjR81Q-hvFR+YKtJzrSZ?U;3N%Xiff=2>W%K z*W!G%j#R1%NgPe_a8na-N>@K^VK@( ziCXkR4M`^!lZdIY05#BuL7&h)a{H)lmxvJ>fLKA!M-^PidigH}uZ!#}z( zS`Z9zXRBwDxsQI_#T4Lu)j3^i!~33<8-vXbT??Ud| z7K;V79K2fNdJ!@nXhnJ`Etu)t@J&-F{l0Zn^c1b8XekMkVcEzbr};TOeU!_#B<{TB zJ#g&8%73dq`EBCyh#3jD_RfcSv3*#wnFhtOT^ZR*6Nr1+08U6)d$QX%cz>2B%8ODz zRLc`E%4JVJPdukGqD$SJhO@t>vVURg0E=(9y1%L$q0BNIx>~q+_1pdWSth@!wE*~y*TH|tA{GqdV`OxNDsDU##1#N$S`ZaQU>>D~dLIU~2IOA$rcESUyi-t0 zx)#1xT}83INuRG(LIW`Tfkgq;gn%wewzf;dOO1HAHnD<+ZrxgiSxEtA>bA=n+J4Wc z9pwU^n(?36wtDndrl41B@Gz)#3&Q1!JZ3f_w$t}Nv%KSa@E`=xAGmN2C^%Jg^d4aYgRAbU;NVh}TaS*+fYqWBG+QKxu9U%E=Kr0j@GeR=Ai<`h&nPyl3 zx7xX0xQNKccXv-8(OTG8fmXmdpK_L0l=ikYeH`|p1{k^I!;_bbVUyPf3l{GBF&Z$f%L%=R+sR zFtyT<#SfV`CDk82x_6%!2(nl3=X~lOmRz5<1XL}8YF+pY!~MlD23SP@&&;n;{Gc^x ze`7{>bkPYPjkIYQ_U-7_eG;HG>{B=~2y5V{srfi8)n|8x=+^MT>D7hagZAcy6JKS% z*HNU*w-KMa|a#nSHp_e{DGmh5{}) zfZoBwtr(pqGF5Vv1GAl*9H(sW$Qa81%oIj#+l+@gF-s^AEHCN#aBaac_NWmy)M`R6 zOX%)4MSD&)SxytG=&oQ_{2==$hqP%)We)6%sV=YRA0X&8U%MEj%Vips$n1jc_H?X9 zKm^HiUBZ;q>6PH{(u!fZR>4_0CO|mfc^Hu%VAk!nteKGM+B_E6mGtr@ZvBSW4O^>= zX_Z)gm{GaFuv~9(==md-)eX?fe`W(YlN(dSE7e@6MEIXsSnC5FBFk_AK`qluH5%uh zua2A#Ib>-a*mt|i%#BbJ_eFJndaR}YkZw6Q#&kuCwI|mS1fvWAw3CrbF`gYd_wBZ& z)$ehcBeD_T(Vj&kB84b6L!sl7q_U=HR%2O3S2lvC$D{H;zq{wbuqF~YcPDCO;aGAu zE}L6^;S6UWAJFa?{r!yZhtC+ybh1LzxKUP!Ki;c+%>9zJ$OgW;e3!Z?c7=w%f`Vu< z%l%&a5C3^I_NtA2(?G`ig6|Fb{zQkE&{i?$fm$&}MSwtvFvN zPNt-c{2{s?U!%kSGxp1x?<_!`$(EbER%?`lPt?&0U@i$oW7XVbzQ#p@iBafhpfMbZ zQK{j^gZA9`7x`Tr=efl~kD))=bLbOG1%S?g@3+mRtOm9!iI@*XtY8$dTGbD~^H$pz zEcZ~>>ea+U2So5|)NJZSfao(U)H*tOH7y8*fbEN%Yt&-PxJ(wIn%6#}&`wT;cuozt z^{6==NKQG8zpUn#M?LW@{=l^S_lEaiT+raGzkjAMg*2__u(Xy_2cLI`0HW@3(2g2v zS;LdG6NZubD;}FpT2xt1PWfgM<};!*mDzTr*X$)}zo!xvo5E5qd(mgI48+2*$kCJ; z92~X(@uuf{%B#ELSvAa)Hib8)Kr2Tts_a|9MkRoPPn6P(1XW^C_tDe=73ni1%MgQq ze9+ZnqTuP*LB8{f_q*O$Nacg6xpS6OMQJB%$R{4Amd4eVyA`wqapDrR;~}uVR&E>+ z#d&)&KQaAP<^jm6I~WS4%6J7C1`a(GH-L@`c080s&RTLd-sCm$%MT}vBwp(z%;2D< zZH!M^<;aWu0p0IT6&&>~?L(g1)vX*JoU;ToUQ1bn%X9ZX zkh}Pe?^QyPfIu+Hdb@z(ADk-1=~VpXyOc*Aa9EbQl?6neZqi2t_v+4__%NGveq&B} zVQ|fZynV?crGT>XzsG zTaR8XUhB9@c6dVOC#eRfbjcIzV(2UvjlmRfLGlh`TL~W*C6SE^X8E7I^WVMQ;dP-P zdzY=HjPT_|~(P=6kYB;mo^`jX%7lz6&O6-yzcWNx6c;Xkv@%R3ISHjg+G6@`uTL#YDw2fQjO=|d&W~Gm5t>A zMmEER3T^oYidXw6LKtQA{)rTwVwpm}^_Yk|~-Q;plO<0^3T*sG47B%YW7dq~2 z@^05A0+=_iM{37m9l1=c{X$;z)t&q9c7H@$FRvyZ-q^e@ofAE|=ZwY*Y3Ty#Yk(X`F~#E(658ru z5G*(ROl2b>H~U)3=EZm_ z>&caU-`M?h=P>xFz`o|EqK`e-b8RpS;$y`@ax9RA%+o5H?66{qLqi%DNTn3MeqVoY z^yh`OKJCL-WB>@KJ7c&by>!Ar59Yy>BozI!8rL7yo~wyqLJu<{U(`UZOYVWak1WbyT#jBbCH38(n8GAxZ6Ij3r*Lh)Z&`FNd;iIFTd5{6eGakxJg`O@DCzIt%` zVa}eXM^4I8>^WHD#g^WAwdBDvpK<96;2_nl9Y$Y>TP)$i?vDc z*22lnZaw?-a^34|%79QGjV(ouP696IulV%(?j5rwb!uBJ7TU@JQE^UEO5KLG+OWd` zZ+lUnt3Fo|K|p=y78>f635BVBgo8Y>G)x(>zr}0W1&=W*8!HwuTLR(8wZejLrgi35 zRz9xft!~6+^5hpBAEp9j3dTnZ?4qS=t*R2bN-I#(R{A{(Q(XU_+1sJ}4!1V!cAMPX z*IBjYmA57F2+~b{xi_2@QT(8yBTWzj@nL84p>txR6n%8>q;AcYi*@>9We?0V`(}#l=OPq}GfX4oAUZqE#zL@{#(I$_H&!++j5WA_U6& zl)lAmz`1lh?{Bj|y1mY47Hk=eEy%q&)-+u@U0u!0^!I69G#K`mAI>T)4AszDU`yf( zobP-=Wo3?wKPG?guC=#TWxU^;VH&e&3`Iqx7Iz>8A6b|bBj=g4?}B5=M^)eUu6im~ zE`gF=oN_T+`@8b**~q-R&;3+bc;v>X%twV5sUl&fv@D2BfQ6#-7qnQGL?kM& zBf2<)yTC+1kLyOo*Z$p99$P&Zeu?wR+uK`J_}HFmZ*zcD54j&6+piF}b;2S=Qe(^p z=!KFf$9!bz%4{1;jf0Xqq)EOfKD2+c(J$&vPdVY%OZ^+(MBNkh!)vnqA?WL62iSnB z1t!3X(kjZs*|w^_tPjb#=+R)8S_D-3_T4#Ng2v4I{8rhnSBif$gu$CN$eh=mRG9pL zc+}{$9bhGJOWT7d_;j)k!qbL8Y#H3L#x};L(g$B{J;(}}STX%NUHp%w*8X40H3tcz zVp%9zB-U}$Y94%^)h8Z`8OCzbmRrPaKuA>S!x_7{r^NEQ z1qcJ6)Q)Gh;fjMKp%eWmBq*SNCqTDD4_1;l#jUVu&?U~{+!BtuEXc^vl}T>+moX|8XUL;l3mKoGp%?OE9!M(ZG?A~D!^vnl6yyx>*NYK$j z%w$GSeC%lRa8p&xEFuI=6Tw*+^(gAdY-+^C`C>tccwCD(OG3-UMVIIE?=@bZ%&UKT z{ZX;mYNBk$%j*gDU{CQnX6m2}Eggi0UUm5Bv;p^tmW*w{#benx6?Nq5b_w(k=cD=? z=EQXNFP1g$#_o^JjEX^Gttj4}A=UItT*EW4!l1<%&jUIZqgp+}cYXPJgOVA0aKg*p zKhD$g>T+i6{cSd$ef4QlXL&B&Kn{3E zX-xocZgSHqzxpXZT4#&DOlwHIg5*2v+#cIa`3ZP(=y-bO_)tMAGGguyG_Cv7x0}4z%A*?iD zj}Ntz$l%ssmNdV*6g{HK`1Cb>6@3)eOy){Yt63%_g)AdgNz?i;Rm5K zT8ILqGKKo!-g1gP`heC9nTu)RZH*0ALA!XEiNEOMkSv6Im;D&=snInoQx@xQS= z$PM!~5D>x;9}!g&b}*+l?ia}3xIN}mRNIyGvp@bUf7QLYOdq6Fu%sHLY{P*Whk#{9 z2ETD}Zu!N^x9!3YyrS8Nb%$2-Eo={Md9PDX$jGqWjJSmqNxy$THSEO&QuY#y79j}3 zs#9D-sod5dE|2US<(w{F_dVbLAB=9mC*9&1*>*txg6}&+t zAmM;VH7~^S+k|hw>wTM>7f9Ka7gNapdGv-Z2%N*Z!$8X(w2FkEn)Zu3Oc1;ET+OTA+T;E zd0XcXQ4cM54xBIh+4b_Y%vSTum#daCqB|;1?^fg%be)XjkLx*&z#+rWr%|VA&^>8J z7O)fKu1dQJc)nJnPn@)YWtsnJJN2xGfss{Y%-k15+2bHFo+%&~CDv$lY@+^SS7jOF z!Z=x&Hin>cTRq^iAV#3KFaTwl$$w%^93S)@0lqR?0PF2>Uj-l`b#ZYGe>Fr)oE)0* z9!0f7I+THWG-9odc>jl?!C2(p;nqmx1lllxQp;L zf9SO*u)yeC9uXE2AIeGvFN7QzDY5pOpPqr37p!0y@{02XmuB{WOrv~Y8<5o^QhHv;Xy$yhtv z4{JpEmCApC_50R#yc6Q*@$bHBw2JYFRd??}WtQ6FCNqGsb?{9^RQ`o1h&*}dKQoln z{R`*rt_!nOF$8emCEHSR60Kd1ooDU)C*qFe<#GDQ@$2o62EbuEdrlUCU-XrH=!5?N zC${M2GL2@x19+k%qiR&@UgcaZX1OzG6Oa&5-}gs)PbXiAk|_d#Noi3}MMFe*1tK1$ zQdIKES}5pd|5gWjoeHG%^cd|TD#ZTv=P&oZ*`Db9{5`pFhwth)viI5BNWKZ|aU}O1 zg<2OsHtYC~6_z6IK_5yL3_>2ceVrUzcJFC=M)B(PmMHtZIbk=DFqG&5ed^s*TGE_(Wz6tW@hT-#ddtD1q^7$})>}*&2a+F=z zRZn2>E@7mp@ug&(Uosq%O7=b`J!XTFF#Q+?`3&jt>=@h@d~&B(;&ttH9ZzO|3;!3J z`Jy-u-pC@0U<;x&QgI!7iFII(x`L0Xa9Fn;aBU*b_55k^E?Z9gqb-M=ATgqqSTshr zw7ghweRKv^Peu3P#MR4;r6thC9cu>lXLR zU{Y5idKXUv%QyyplYZIrLfK0j%PEj6em$|eowU2T zJIEai;Q;{xs#pk!7b?L+%*>F`&KPN;#FTrgIuiXjq2!L)ir~}ubiwL^&0*loGwGjy zjme*Zr_o^90^?FYh;}a6HG+T&!I8)QGwTOn24#(-ZGCQg@^`&xe*g7Rzfs2ap9ZM@4Zu7U4XdsCiML6RJ(t0u4R5uyv6)fiC?q zqdsW=<=Hnsbv}4moUsDN;&uJ83F1R6L=vS^I#V}l!XVsjOD8J{VUiHG5qMic7lnGy zPM*^}ar()L`c?0)WZPTjom1t7rO|q#L*oe{$41pGPCg*RV=WEbzYtt88n+=1lsyi) z5;TMw%%x8)&w%3+7cUmf=A}XWUtOfzs21**m<)q`2IV3KGcIJ_@p*dw>V~T6&wmwq+1qY03?suCDXDW~bU}O^k>Mn{ z*__iAY=i{1N}<#*5Bm@W8_3)O*%#(?Ar2qhba9r&gh3!t)@2MCrT*2$8ds)%e$@|a2s30e;lM3>I|rS62OX?B)DIN_9o00QI69Rb zJhO9if_YuCd9vC$_d0sc;){-EyT~euU}DGTDa>p;hnUEr*NU36cIvl44>Dk? z$6sv7k=c_@oc+E8LAmD>w+N3}K?_KR?>FXjT{GER%}p1xM%4n-hI_S}9j^Q{?Qs6M z8Km&L9~Z*9j2A9(g>rc)V-Z zMs}fB54idp-@UoCf!P|*LjX_;yc92+N$dHs+&4C+W0dUz$FTe)tVhxm!p?}qQ}Vwy zwf4#$5xobeH+r```Mv0voROrH$aN@bvi^R9cVDRw7bOS$0V+`)hbe6ytV~%wW$rgm zoLn;9G+h$)Z>JH`0f%2ak%_6|@aV%)+yEU0e~#?ReOv$2?alwl%w-F^WcEZ_Cp>YP z?IgN{7wFIjf`pDSc8$XEEGabCWPDVT9npYXz2;}{pB}w3&st5yOl!{ai;I<5SfjE| zY%K1Iofi{AVd5+SN}poT+iY&HJFxDD!w}yx(3(kblx1E9uO}nM-5Mr;+jU(9JD_6( z#pASVJyv=WC~ad8VCX*h9(E@_mpLYSo_@UQ*`n3a8Ze2vjpSZGFX^|F0Iju`T&V9W zR@@*up+YPcnvl4x<({%1e!t?qcc0alrGNf2+vGb<>>&_~>$0=SoCEscB}g6ANu+Mc zwmP_Ukp@37!%=w&jXAcA4#mj~*XDxXW}Xw$-wfcqrz{ILt;v*7zDF0cnXT@)s99<< zc9GvQJ5zeCNmO~MmEF*)kp|8t4is#>SX{i_=N8Y52 zxY6^sIm&2N9KBf1qNzC*I@?65}{r(&IefEZ6Dd!3ldyx=E2_P)tnHexruI3KGZ^P!e3occL- zccG=ix7S)D>>UiW<5Z6C`rMLtviBD7_C7a#HN$*LVDT_#07hnH@ui{Je$J-p_ z9+VN52&IeCE?bwOk0#wlS712l7MTN=iC%uonN^y&Qpd%a{~@y)iKN5wF0ZE3W$)4= z*k$>MYC1x2+VaK2XW4Jy?;Y2;y7gKAImM^s$m1k?zULjJwRxtgvAF-t+&Qfm?x$b4 z*&c&;1K#$%w9ss>c>3mtr6|)tuH{OD-)_ZmP(O`%qcV(Mfm?U}VD07kGS{;me(QEN z?mM(GJsnkC=O1$W^(o+o*};va+nM%QurQUr61IBFsm6_ru_g+mc^j$$tjCoOGYi=Q z>cYCukPoEa{dU~=`|`ik->)aNv-vLej2p87r_LZ<@5J8Pb#7N=Y~IF`?yvutTq!Wf zDXGZOpzC}AY1v!5^T!{LZk>wQ{37v-Un>+nw1_2#xl#|#{hvAQ|58`~zh<`%pSAwz zH4TvQ-U9KaiEA4G`RO4QPAh#?DjxZR$1 z(pR1AaT??UVH){6*}v`^!@zxETq zNh;QGF9O$(`p&!Gx~}^w9e=v#CjN&x*sdTtc|lF7p!yL{cPvD*q6Anq3^It-C(V6d zbSlT|f1+d?dtEaD5ui>2eg`GX3ACA}5=->US-@>&(G#v(EVX~~YI3^3XtL3^#Znn( zxlwXGmw?E!6|v@2rU31crdOgj7NiWLrB1(`(^kon(%A_9j8d<43JhVe_|$5uVR4E4 zZ2gt5ZBa7jL+r*IO{}zF0o(wEgegsH!-pZPLvlKc>x9S_%zMCp9`MQbl`RbZm_40Y zF@Qv=;m+hnQD<8c~KxE@<#-6dpfIM0l_#fK| zA(BRw4A#+^Iesif-{;d0&%H83Zp;ug$%x)S>}_jm@q=O}Ye*U;_GAhK7r=IQCk9sS z+qRbkglCjv1gyNB4IK6vK_vTzIY3j)t(k#g_C)sf6s!t9>qWhI^`U)m;BC zR})mY9S}GRA`vVsEmiz`(#B=o-KHN1v$V-RyMgwvm;q)27dx7GupKG_QDN<6iO{Lj5o?hTT?AkTt2 zWz^~FXDePLa47=A1d7IV;TkpK@=LBj_=kF-=IzJ!1$ewsljsR+C1q7E8F&2r`;>jN zx2lK&%o%lxL_3GGg%ZDmO1uJrmw(AVI(fZ0OaZnWhM0$L0PGT zxq4u7pk!$doU1-(o9&wkP)Xgua_PnY&1}Ev?SBnq{c!Qi-t~Vn*H5l01g)F^hBH<7 z2UF09|6P;1g_4!D4L)KRmK|9wSO)byI`Mbama54qYOWhG!+^vo5)F_4gW^`{w zD@h^1VUW#2G-GVD9ZyXfr@W`kG1eqN!`56TG&zg0MIkq%qBv9|hL$@wbZ_mxudnN^ zI!wEaBR<`#ak~a1OG*uFh3n^!X;G>3LDH5naVLJ%Sn>4ktLs}do4{^7%SZAzd*jAm zC%f;xvs5p5A?+25@cyq;N%eJ&A|;AS(#a@o&wuF-vUsE%vG%K9zo=J7OxN z0z4~sz!mF5;|OSUfpH$(qADmf{oxY;vH%-=lZh#xs4{9Rj@mHptBzyWP<7(*?2*n# zj8lG#;IO?elrVcGu}elynuruImAPyN&V+ZZaUJWAcCwx~#o_!+jU|zc_2@G%cXnT7 z^j`k{;Tq(3q^bM;BY9CJoI}(a>J&*5Bdhw!!8xf@8$zK=^iksI#RHd}^ADDK%=03z z10k2s0~p=jI~kXGe0B-7g&FfnE0%L>Bo9EH^%eStH}i939K1CZ@IQr(j#toyXNH?m zW-V!lFE6*P0<0~z8kSX{rM9-=#%o(L8V12vtFwXdB2T#`f>myFlXpn>KoB)7wxV+{ zWfaZ4S}Lyd_O>bB2;LTC-UQMJ%u!Dq#`N_@EpsS!S~seL7``Tig0__sSYiDQ4T5Z# ze}%2b(5B#Y@UFtsUt84X)is0eq;}0nKF7q2;Y4vEd{V^zs+~>YdKMSAL~0)u#|FEGrzrT57)Bp%57blRa{b4G zZLg+_OpJIpNxgCd=o)g4%J+p_T7_wyTbnFxf# znzFFxNICY6M(8-`Zl9gGcqDS=0;7)_R?~dUe*M-5U0&vSepeMaauasQ9k2&MjR;bh ze*|BjQ$@W-AJqe6Q!Co>bwM}jb_wvlzaACtd1^Mj2}_8j?H6{IJ;;oP;XSk_#;4R4 z_aL@NvcaPZNyUW&RfgmY0y8{W%_GLjnySf?`vC?wpP3b%3;> zfz#~o{U0aW>F-#lO2dmSZ}YD2eGz8Q)eV;Q3fVCP6qAXu7a1|7-#Ej9)fIX;c}qtm z9)ME39sa?p^ohCO8WsDVlBc!bwXAf1JJKZ#k_h;GFg28(+tAqjsdSQ3FIFD__BhB! z^!I0wd%Z8;`tHYhnYRsSAX7?ZdrW-nig#@ni{klk?uXujt1u4POEo0tPDI~Vh!fJE zmWgk9K17+Uj^K_@aWcXkk<}CFW5hVd$5cA<^4UJ>D?7 zGueDq@i)q<3;`jy#utvGsI3{SF{J?97vXpsnoz?O4P8^SwQQ4VHuglh&(*`bZgqpg zR$FQW0#d5HWUnJ4$PQ}|;j*<0-XB$*W+w!tI*vLRS#GE}pL2Miy|I7%<=_wHf(fIw z+vUD$Buj%HGkO~R1-S5*`<1r~3r#PEV0b}St;fMYMs}o`RefI1E}mbVz<;cLl-{s? zv?3npuCsDPysdR!-L>T}C^{^1o(!a>MYy>~h>>3MvwX|6RZm&WjceBMO*cN?4V=KV zrV>);g;J=Rt7|%y>JhszBncM8w#EVZOA7nFGJo6-{`;*>--*BeWiaBnaq51Sd^|Hg zgh8py(a~1`b*MV>#qNyw6aY~mZ&|9ACS!B9r5jElSwRCI9@K#bBXVC5wB#K^7&V!t z%+1#+GCf;S?BUT=5%9Y0?}+KX_K@Hlkn`=D+!qT-e8W$df*R{mFn#eA3pgwr?NK|D zFmr$+a74rzJ4@SM=n(Nos>#ArfA^m*PEW@ycz0)rxOnoW*7 z(m;pQvKP(zNYQ73X)o?8@UwqB%pZZ#lO>6h3|riX+l4Pa-~X8MS462OWuE6qKbx<_FW?-LdQr6oCB^N8jN(yjugK~83%xQu$o}kM%ZEqrSokJf8!4$ zR+d)9gdr~R0g(-}^jpFM_dVERF6+>>QFWspH^-MuF?vy)g@Kvp6Cv2Cy;(A#c!~WS zyp>GO)l7R{$ly7eVYTms@l>? zd~92IgM!h@4?KSbbE) z9_i_@%-{{=yaK|!yC})Q=k?j`Y2c`v154-_KQYClb|Pu2B`uQ4^$ai~fcRT)YsN93 zJEP&x?tf(ly<52PxUpbn7UWbHyD0BlvYQD`g<5W;qnkiVX+ssPB|YCETi3Is%r z%f&o0C~VAHn$L$-T(l0eNl_98wr2N$Q+izixIjNOJN_)p#{f+o|L#$bcntCQxwsjc z4KpCfi;j@B4HI+g_Af|1xv?64Gf){qE~e+-kKZCxETRP1c!8Sz2Q{bhqgeVvg}*ce z(ualQTo!ECM?gYsPey+AGU2E109eXEX4T|Ej?R5x=4&qpr9V4Wva(rcrSLiZh)zKA zL*sGG+ICUULBoCZ%T-08oV(Q3Ksr@cZ8>sXWxoTRDCJ7Aeq5|wU{G|gyfwfC9MZU@ zWy)#0I?L_9Yxe=6@M$_GAb~czt$und{G) zX(HigVbLLj5`Ecyqu4d!UfSi>0~^6sVfLIOIn#I}b2O8g0yVzY3ysc2Tw?97w$oLW zgxL;UnLx!RkMCABjDJ&i=!f+uCU)la?1Vg-@kq#TMcYFa-ol|W{Yey`Fr1t{`G>C?Y^_M)9B)I zh@*Nae}1q(2psghH{?S;qiT4~qzZp1g1LNcww^@U=$cvd_G-mI)rW}CQ*}sY zn)6e>Kzf#HT=zg}>+2pcPYa=808%0N_vB=nAUS#DMH(eBoXy)Q5?NZ`nDQT-kX4oL&S2NlI)FOjl^S2& zo1f$P!IL`mBuRYspVsSk3nRs+kAC`FbbIh5f&Y#WJ*ZC^O$m-UP%I_o zR(720$Eyu^kNSCc8IkgNuWOQ5!YXzzn z{jtS3UA-1P3mgfo?7DU=`%T*jUvPv0AAurZMEda>d zcaMit6`s?DMf^|zI?XBTIP6~i!u%Vl%d4c!?itY5Y;REJqxa~6U|Mh)GNe>`mP;1T z7cW0i{=G{F2t`NFldY2);4XXS zrqy)1LEU<^+QC-fT2Yt}WPCs_0+>GPdc%4L*WVLzwu2u%^s=4WSMd4M(U<14%m(ME zLF>qBL!IcOP^1^Ak6xTX)l;{NhFT>;4`3h16xqez@hff3$zv|-rp%pz>*d`z&-K}+ z&qj>k@G~v&w#XP#!gowE+U3-bS>b>627%Yk0c!wOMuUq}wxN1MBe^-c6E%1+zjx2& zgYyAvR9r0a`MxWFM6OXh$>uaPtqt!3&)TdR-ElGX*0Yz=@Qu;k}zA>gmV{_PuBM67^4l{8#{+s@>=%SVPU{ajxa#j+wYNyGgn zSo}Y-$xeQC!w$;niJ4w*vs@)-+~)FCJ=V5 zWh&B)JbP3kV4OB5x7GD~r+DAg-ejv;g85@R!fs!?(uOMDW>A1KME}aPZJcKwLL6Id zyBLLAi4Q%NG>}IK3O-ckz$4+}L$h_ch?DW)Jg?D$$*N}u!`35@d^M%U%0z#*UTQc{ zT-e?|G)HFPDm9YDu5ULHkmLT@y(T@nMI%s;KC*l2+H~eb#)G%Z4|9B;rc2*sk;P|i zM+oc{rN`Wu3T`V!V>t}B^X*ZwVxl6_rA(riS+g&u zhLW0Sm!NXW-KvjiK&@CwanTX^1)W8%uyftZy?O>N0%I^19qF@7oxj)}a>Vf>Coopu zozZi$YB&fS`!si<9WE`;WgSw>NUd9DW5G`T^ta)GUX_9Q`*leo~fmGJCo zFYd<9S7udLn-#F*El0|2xW`H>gEXM5QHkC}>$*txW`&eRw3pB&BF`)}4DI2(EAfuU zU_WggMOyOA>dPA+3@-4dz}-D!OL34wT!}(0d>T`J4(RV{G#;3`A{*KrY3RbP@YwgG z)~)NCflPPr@fx&v;uB!u{bp5{N%!#t@TWVI+X7xz{X;M5z2+onopNkg|t z&%)B8H~ne$Z0&QizP#hBmZ1S)*P}Z7uSgOkEUJ$zVJ&`I!N?oB|D3Gb);bnmDfkGi zNd*DHlGcLcyv$<$F{srw??|CWFw_mJV zio`$}3`FruC+4o#6%0N<)y3?4}OZ0Oy~eG2zZbm+G3Ag9~wpDH2a5K zW16Vpe@SL6{@A38*qN}Z@P=%)4WTAA?V_YG@=Gz;NREn^f15QD?*>0W#f?xKL?Q-6 z{mk}!zlXsS+2)T1fQY=GYEJk)H|ku#8v-JO8V$vf$`ug)DAK{Uerm_IxAl?-%B1p0 z9nN`a;mSD$?0KCu)KfjJJI1{EtcfyRA!Ehq zD3$Z|)CN}CqjQvg@||5tJ-gNi`sU#R0Dhc0D%*B+guGLtj|3~T0dV-N^D;kw$-!RY z$rR^c0JOs8b`~t9_{W0eS;fW7iQ6@@!Ldew6tXK2qU99BmOJ^McUL~BLfl}z*757O z0qB2~L(rI&ic@a;t3_RZ@1|YQ<3G-H-CT9&jpJ5LU)JD{nH7Is2+HgebLbr`+zX>xqPN(X)OCG=?2yU_ z3TQjM6o3bvuNYIfl|T61%mqxW_R+|7-tJk-3&jjq7Hdu#xsqnwco|c|hdVjFX0#2a>B^PjhTZyZW zt(d7;x)7nANy!d_!YR{hw?2ICbAOv*AoJ1f9u9t$PJVG_7m4JqWvg*3SOxRZab)9g z3ACY>{(!@&R1Ez6(UfaL*mpwn+SoQ3A+G@(0 zBViWQpRrRA;t;FgNk6c-wY^%^3N+t6Xs_R$FGxKVRg%(vLOc~R_1(AnxoKAo5 zY$mf+8I$*V9Jh9p4`u|q6S#2vWW33Gng@b}Mjy~AVJuG$6VU~SPyZIO>doYOLX}?K z^F;Yh+cq)f*(e+CvT_lIgQnIb@*We%I8{uy92F1se$Ue+}s-XpIIXt?RKExj$Mx9 z>&xr6+t@R_wbMqld^`XKPMQP!@N_Iht;XrSQv>{lQ7Lh8^Ax>eY^6r32slu^4cY(f z@`oS;8i`460y6b!N05Y|xR6|mr@~0pXl#VRE~TFRK+yVZnlf!{A?%cnt>Dd&U%e;Y znzW<@dH2MwCKMXfL}W8Ke0Dlk`~mB9jE{@2sU9dwo$(Gn?qgf3#W+Fcb@8`jDn84p zKIK7g@9ul@^T}M-9G*-OmIfm>?ys0B>d25Et5(6c*HGVfz2*f(DA+SQ(A$8ub3|jm z=n0`U1$pLM)s;TY`r?z)2d^L;H-fZT56U|9N>R}P^<=Uu=cLO%?OmnUV7pv$*t_vt zf*0Xb4a5+A<@f0Dzt86V{p}~Ws;m17|L|4>1oedT>nbZ!huO4ZY^y{<4V024jX|d+ zU#NRA!f~iEmyGUsR&*Flu{ybLvjsJFvIuC)RwyGP)5{)=(~WaP?hF-7@_X7uqs>hl zVU5*GR408`Q`+_$+Y=*8jIETxWGVK(N9PMe7N@n} z=`e83QoxVVJ7Tsc?oR+cx3NseCVMNuu!^HqsSB;hP6>SsJa5X4gZNZvPM0YLNcOf+ zldX|P&o?H!yX|;9{V224%Vd4~mW6rEptr1xdg^HB#h+DVAx(`YOGN$zjkjJi_Hr`%g1(?~kvdFHf!lEOEcQnZRhi$lR@U9%IV7QXP}UVY%3I#(<=seTsdA zs&$1l&Nf8M%}dz50b2{&Cw{Q|LsP}PBeU_f{Lc)_@FHKFD9)NmDCW;GXf;q{oHTu| zIF#j{xFRB3-&2vvtf5CtN1wxI^US_|_R79sV+Nm?9(oaB+i0=+6aCN3hr<0gu>Q(Fm#-}M5ix|pun#>{Thk@qL1DD?qO`F*ZHZ;V+gv)>jl$4@ zwKID@ds*w*nY9CH*ur@;dZhl}C--*xPG|FE%dq?%OZ5%rRSizi6=k%PvbY>`+yUE9 zr($_{w;4l@iY$$5Xl*PT%t|b!Gx`fQDVJ^6sOK$q&3m^!*?AEi9GTL@X^CR7IFh)? ziR}F&C9&1@RCD69G2vnuiaEFRhf8YW0@Ft9Fc914tiRrC2_o1y5P?=I&Q2FKn{=j^quR-yH71Wcy!_6jl&X>;F+@jk|RN= zYOEx%MGH{I(wnBb@KX^HVV6Kr?xW&z0;deF9a8)xNs*jb<0<);U=P~k3-==e<4Poq zQuagW(olHHQa(>FjsJ3Wcc;LUIVxrEWW|>WQk1Rp)GS8Vf}+od^q@oZ=&LylMRM z6pv9M=K)L7mrY?`KX3Q@l=-GD7SDG1l>1iIj1Ui@6Av8_a$Qjvbsf-xqr0&}8^j!D ztL_s+2|qml{_pG7-qBGd;oZ5{JwG4WH?1>ujz$NBhl+y~s%%o|O4{8%2k_AdW(kG8 zBg~n@e#^VqPWhZyf92Mi$)g3t9COR6tAK}YEwT&AwnJkXaCPGnMZfl>N#{AlhN=#+ zTAeFQR%nO5HRAfaj{h7wYDvtT06YW#kG(TtOEP`qwvA0rP1C+;YBiHeWwyI-)0CPz z>ZGNmA}yLJp}CSEYRj~$rMQ$LlpDDKr6LIet*!|vAqfJN3jzWuAPMNa&;Mh*$NPQ( z4-a^N`@XKwz8hi5jdcEt^M4GT}yxd@?zIVe~?A5 zhom@nt;X?Fo&7G?7#_WfJP(zNRqaV$8dzflY>JQ$NLYBxM?i=1_vL@&`JRlw?sWD` zaj-wjGp%>B4S$s-odVKp*;FFE*}knKz2t(5K0Vqtm>I2$14vtxGk|aunguhGCK#!jhfTOx-_^t4^!9x96=w;VlS9TErsRH9qL%{mGH~T86{6ud}?E+Y>6|hTJ)?mLIKOqnLL^ zzi~K=>*$+C@Snc4-^r>dZB9H>yP{^_;iDkWGfS*WPeA-`HLdj7)^sYt4%dp7?wd%i zM$n*5DE3d4SnwUL__y%X$-rR$%Xo4z)IU>2%l)vasUDo*%yV*1@i-*toAI}72#@gH zee%}prEAi#rQg0ipMCqOBr=l$WZ8qeIh+biSg=0EAoTXevD2J7g8pw!>iqwd+5h7y zGsG^NZT+MFnP4?TG}S^bU*$3>O8o6(QJs z#U6(x-IRHK8f&%uBu$mvZB+1PKE4*`vKM~?mU~s?e~FnX3MpVnMxtNgYv?*uMlP<5 zCYL-*h@Su`FF-CTk06=@{*3e4v+;#=Z?CM$`_F*kwF*KD>CjR;yuUl~ayjf5pFa!E zE{Nqg&g@(RgAa^?7nui1ux)Y%J`A>c#eQ!#W#0T5Jb1wqL3dk3InEEYh9>|U+aEcE zc5Qr6!sRQ!gxxTnk$JPf4#ZA0CBugn=$Y!=`@84J`jIoB8f}DuzN(OKvfs=~D=C^+ z>lZWDmEv;B7AcA!$tePogJ78NJ0k-uyg39K5*m`({%MSC4VDKqHm*+EvSf zv@L`5O;qoy|4afmZX%Yo)1-rPs7xyqQ=pZb`tq*7l32k_+pi$da{a}YQhrM&jaN6Y z2X~SRrA5*pdS+2`-WUb6<5O;)N>mMC&iMTUOfMQx{23QUm1fY}koq~9?(o+Ka7aiP zCY};QPemAplT~|HEW`k;aehBcL}3!J_0_xPvp~DezPL)Rah|CP+x|y8^v1#eGclK0UO+3};OL5ec04dYRa~O118J`tzQFOs1{U3%N0EwcpC$RcSH-WxISb zbntMeqMuHs(JiN@|9)}&c#`BACZ$ciaCNaQ#;s|ptR09(GLj*k(Z-6}`7o{y=IO{& zE&TeT_IASg;AN|$S7LKUDv;9tv7#@G%!vX?kaF?t;fTrBa5z~+$>sH@opV@kb^O<@5%9lLa4{G)3ne!T zm!FoRcp>{77ZRc71AYEB{0PK?L7ubVyzjkSw)KOcx@{Ei6 z1z{LZ*-^U#)W5lAgy10#65}cz!`eNz|@NDc|WXT=B`$T9*Dt(Q7)LMXbGI;|bj@s3eNI?B zm*>4EFO>$L}V6Nxy%jWB7$mC4)Al=bF#?4b}2XQG8 z4VnJ?yLhtqOI7Waw;$7F2|Ga)hsp%LtWP-ri@6PJhN4?&oNx||mJTilYk41vtjEr^X;s?p+@#N})vg1swl<54 zY@%+M1@xs*0dquWvc9ff9#fS>`%JTX<@&W`{jF`t%&WaDl)r}odGhcOnM(=riKmwm zfKc8iYBqMPax%dQcN}=Jsbs>SU>sa%LU{$@(hg$Eu+f!;v7Y~ zD9yV1x`B%wwF^9W{9=%f>KOj!b7^eJ7j>Ie`y>{$~-OaB@izPi-QgBGL?Y#`Q!DS7qYz0J+Wo-G0PQ zBoIesk*Gr5T++eu;vfOU6F_9kaQ#s9^xe`xr_;&*9Pj@LiS7luz_sGtx(l)VRG}Z+ zcaATQ|7;uV5D?9S2l-?>#gxtKMDHA6E0K53vaTFmb#w_YGsH^$%ByNOy;;}>1y^vR z!0xK4I|Yt*_@q0uhipf5OS~`BKKlauMG}fetojo^3vcP|5KrbnWg}Dwrw8R49#i;T~+C`?m*dgw(ijc|1lgk;Vlph5?CsRaKx#otfl-*Ab; zh^qY7a?_;aEVotNOZ8gsJ5BgYuR+8LFhsRTMf|a)C2?16S(Ugy7N87N zy>a=xCgj8NF5r=W5WR?dfN1cC#+Fw`s5R>*ClVFTya>Qe7_9dU${-h=eAv`h@C4TD z>MCd3;G*;4@@QfUIzTTn2!e%sTkwo`b|+5~X>XsyBpM)TFtXK7pX`pVPHFXo?Tk68SMO;NF9 zI=KxtLpi#GFn@>jA*WzCqA3H|lY9hIrW?KIQW}`dHXZklwu&9kaRC^k zgKb0P%H-2^Jg9ULCe^(>;u)*hoRQI5UXB#Q2jM>2*&g%EpeAwgd)l?vDi$I`;^KPv zKa*0g_$IC`2abZ1ak7COc9l^%*jYl>b>ly>)7UiUO%O=DuM^oD=L zd%mGlg&mQ421U>mf?D*=#wZ+4mA{7(Y7l#)+~-1InMudm9^d`N&!>NVe$s2JhglNb z%;di=gh(`uwl7d5ZvnWLS#cYcqQsg~Yyl&xUV%ESg6{YWeDLZ8|6g~UMYkQ0XH<>PnSEKJOJmMwSz6Zoyfw-cpe>Zhzw;OzEeRTXga#vS=1BiS)x*V_x2 zFL|i>rC-zQBTp(q)6!so+(CQ_R@$aE`c7=#6%gqhMzCVeBH|*;D zIgjN>^gAa9r{JjL0;atV-AbNAOmSp9EbVcO6Qh&mkd{Ffc5Iiyy|Krp zFb&HnEo}^NN@7zYk_2bqEt*f%l>EraY@WftZEi@OPSZwKu8}2J1#TQ@3|eb@%jwo@ zK!crz?ipV@kQQ(g)6u|9DQz|+Q6b2jdJ6EvnAj0@?+2MWA#HzP?4zucmPc)J@%rE! z{Jo<;{;9`IK4Od%Ai_YyCQJR1K6Ryvxc2)@;6R<&h3mG&XJpKsgwf0S^x^xVwx=B0 zE&i@C+jHa}vu9>z+x3Mpt8b8o0GAQtHXyG^IR zfAxw3wXS6?Q!cQUxi&uVJUrUCYgZ5%WldC)Xq-t(N6E?cCoqZ}7OzsH2abqappUiA23An3~sN>g% zegA&E>{NS8aT@xgm6|;!=hqE@s)r&Hx-XUs#oUZvWE1fjef)Aim?xM9WxT%wi-x(f zKdec^#A?E@q6KeEKs8{TwH)zwC&$mrN1q8tcCw@Tq{s(BV(eXel9zyVE(I+F>g|O?7+2oaxF_I2Aw@+k{%0&7gtg`8n3iqV%It~e9Y`lx?GWdfHY93f zfj;uU%ZabNf#zdCT0;pOL!WZzXX-#$C2Z zMI3xmfdU#wJABf)i?;A;zCqqPPpNxn_?c5>u<3GZziRpt^l>K7ZLSB;Uiv9qH{!5Y z4CGU#4@%XpP$W5)oQlLJhif?>(lehGcRRl62znjmI*#pF`k+CH)ZrDI=|P94h&AYK0 zbfR-OhfdX~P^ylM4HwL3DJq9#BoR)gGI=@g>|qIO4sBi*bgk6vZ!~6hl_x^-{S_g) zUZYlt<`_D)xP2gIhjm8y#Q#L(BH&XI?AfJ3zRVa8%2KQ}qO0Yx01m)j8cF2^O#ZBbD9ueL3j2 z{4Z;9!7nAV%`f)f{Hm%0x(miO-Y}b)^C3N>0!BKl%`9xE>!{4i2>z7TGAmt}8-ff9 z*g5byw8_h<_u=w?@WscwUB|WEku!-L!mZ}Ue@aR{=N(gq`+~t4svKcDc&4$UqIoFD zJEMsvy=X`u5f8W@daniBjEMZ#!T8Ou*7>b)TX%K-1&_ImaqHiBw*X+37|e<()aO`2 zz($PE#^4|ssTmHZWm3U&i{xtoHkQ#|QCA8&Ojbw77l+`t(q)1qXep?VQ>92qj?1;5 zHqPzOug5%v1`JM;J8A_oMYS<|@I-0VLALr9&;t6?++4QA#S?*b8y~(q+h4IO3aN=u z3GFp}VNzgd>pjXJFkyB;2%IQ~rBi}$evD%EcWi8Z^~%CM%KL;u;IUF)T+UQE!kd!g z7A^xnB5O`zh> zG0N9Xp17V16~ku9@hEp^B9Wia@nYFin{!2FyH4hXJbLWFPLf#PmV6xE>oFACiH`8^ zu9rh9=*Gp1vfyEO3vA>}T^&iJ3Kx@nFZIIX4j&2l<#STk`|hPCSFH{CdSnG_e}e_& zaj&~`4hf~77pNRgN`hu1gN_^~)RBL*acZG zc0(z#iYsm`6;rZ)&D;63O7 zDPeum9A}1imKHDr;8VhrSW+b}oXj*@Uo3R_c7WFN9-jKl&DrYV)unps7POwv+}){ah3Zhn}FYPAy|IKmG3TY^0z$1cuyAFkU_ zcR~&76IF^E1FM=opeX1l$P0=!Gpdo5D+Lky9_G_!2^B0iMViVuLE-Qyz-)V$CBX9$u6&~B+sY) zJ=OQ>iwj1{?Je!Z5He-DTs#^MEnA!oF!s}Rg9brc4Fx@lUST=Dr^D3MdvA!yBQ1Z7 z>?3Lr%I0F`?)x+u_eQ3|liZ+vL%L29Jf0WN46ZG(p?J}>*{(Lt9;OgJhT#lrGVL=6-P1MV!htW3-=(jB?*F|F&W8JZou;$?=v z>)?HQWq?8j-{k5H`1U$`)NpPu%NuS?>!APHJkn(zE& zn?hHIi4|6{$CwBHN@1<`_z78NHrz3V^x5T`80>Eh4ZkmElA?fEhTDsVUnpBok_Jfj zu&ntx^%U#kH_yV}wF!TMB>W>uX;{o!G&Th95mC3fx`bd!IHhVbYI!dtv#yS|7Pjd% zo2i+ASQ9ZPAN@?J*nY3|r(*k`tWXoLrc#f4e35+0+4w&6Q0Kfghe;I`D)o^A?hq<; zpsEe`$H__Mr|3w8U#0*C&5#TVD~e)*_Qd5sHMaD==rJpLI1jQZe6+P{Ht5{$f9_NE zw)iV}&}4j*O7y-iKzX35IJ(dNlv0>V#KIA9W=vw%yO!hNyhl}yPG3)Nefet4%nG|W z%Bu-3Z@un+NhqQe3y?Z0mDzu^tR};z2CCQ_JBM0Ni(qQ&Yg0N-_dHxP@bFsj(KOZ- zf0iHbGp8i1I0YW~jlKX=Ybf8|jqOb9h#6=KY-<+c8Y!fRk7TQYf8)w;eMQ@(Fa1(D zCVwA0)?98&h|kfrFq@>52Kb5kMpyeLM7^*Q%7G@&9^RwMez!l^{9Rz|RtWw(;3Bs$ z_o~fsEJ*Zs40Y&0j3kkfl$-_lRC;J?wleTorC7+&(;y8{%)N8o*@_1z?m(T%BxF~?Df7sr;%&G9^IA-kg z1($`i_kk7Vdm=l*^PPmoS=hoNc**NGC$6CR!O@h7V1Z{&=8)m^<=v*}PepmF)371l zkLRq_6&>Whs^U&+dI58jK|$0fHgrWxnOOrgue+WGA$eX2*%CQQ>Y1_`W$v&_S{mCz z!N&+aS4W52?a!Gl4$sk?8fw2MXX&_7SWx1L&}iAd;JCeD!GkiUcaS^vP(q8(p8T;1 za}$6d=fZc99e=Ge%CB-mPvpmaP~|#_I{9;AP7iAX{c{J{Hp_*g0^1Aa1YkC;d6D`? zN~jI*(wZf8*~~7NcslPrxLPv&f&@fEPoVQDu&9u|6ddmBd+&s5VumgrGL3YZ-d;(1Z^Uvt%ba@fKm~Bs0u-{Ebg)4(Q(Wzo$ZL9vlh- zyoME=K&?2K#EXvKXtw!RW`cE`u^}BE!6PukKhW++A*-ev+o!MmuvlKivns-C zAxOCmzwTltP(u@E0Y#@;cB~<+1dL;}V<^c3kc%1)%Hr1l4^t9_745pnk;}ZJ zmCytQ%L450bsJ-){{3{$j9LvzdC z4F|^3GF&b6W9D5sdmagr#?Po*`szb5@<=AM@SFpcxv zMZumpR*j?gacDzxf)Ff45Om%9Vy3QoB4b!yZQNWlzop1+N8{ZU%iik8^RB$j{|T`c zTi+2|`M`PKp%`VA8&kr=|Nd+0p9?lOm=+VM`;TZ%bc@;J zC&~{o`5Z0;AJ3>Lk>$)D95gf@6ptHXfUWo2^&g}M-$gCC^YdK`^Q}*|l^|D>JSUxR z9}Jq}hY!-^8EQFQf8(C68LMdWMxG*)n&bpVoMq*4zQ_CGRKaL`|5$0yj_qj$f)wP4%babsHIoq~UTdBIrAI%&_r84~S%Ch={X8Nu; zo0ZSILqgMvv)CJJZTq7hEBfQ(Gd2lTL_Tyd<5L+4TBqbYhr|lBt&||=Pw%gecwfsi zX|j(`u$lFBF_#y1t{+Hmz^B(CZTQ6XiO8bwm`Bhi%vd)X%ee_%=j!Ime31J?VV9N!5M{`S&a z#QuQN8)ho_>w=;(B~9dZ`Gku zjUs{fLXI2PFc_l>a?Iq;N$u(H1QAp?OvrR5Fu@t>5sAMk$Yj%B%a=;>lfGDuUH9Js zdhtGaOL;;k(0iNg2{QVpN==KIsz8vbc|WZfB_A|{wWX$ z6Z^rabT@G_wyKvrE^1Uu+a$P#aX1^Hxx_7=7!JP|5y71| zw$IC{`-^WMnh1+-9HzEW8|*3~U|u35Sh9OZ^PKY~yX#l6%hw&DTiaTmIexAWxC$X= z-lLYSUz-CadqtH z?^pkv(7m`8mK0y6x4hIFgv^0meVSDmrRPEbn9_(6dsGm-L%spT@=d@ei!I1+Jnmt_v;=iRTk zXuJGocg)WWx0V8?$;fP-fy|3x)OGcP1zd5gh*_RnH9)&GL&-xdOs|vx6=7UgD_}mn z{p%$GLJ0fMrAcJ>|Mt zZq5Pi#!_V)*Io@#$y8F_U!{VOqyl9XHOm`U;aGk2+UxBYY?cJAPYYF`fNuNS8AOh4 zUDIGpFGyFX9!bzwt`R(Rem;(C=<=lLG05Jk zmK$2i-a5MVKa+p~nlnJ-O5gx{@!PQ@ec6=2z-%T72d#McF4gQPrVO<0mV5qUZeOgP zCRNYtw2MXU59xXsEQX%WmnMv)t6prdI`rZd=(~-E<+>G*|1q|^Oczd2>Nrszs zX4bYA92tF^f8+WAX(95#+wWH4>k?VJXd_Md+;A;eFw3nlhTSh4${d`+QoREc77n4} zBZ~eR-}z;iGDU?^E5wDa#E>}K&2}mx6DLbPL5%W=ICv|c449`HShi4%W0_&7HXJ{y5RJaxI>mv6EGx!(nN zOjm+~SNW!~ykqFl;H+$?L9s~0<7(uSe?QIg&I0A=Jv{)TDP=Oc@ZfRFTf;6^Gete1 zdHAzv3c|ffm#n3$m{U>rJFx|InFixD=|%STS6!>box-$2Os0MYi*M*k3_PjF_m9(a z>q(Q5!5L}f3)NJej?i|fk{Cj~*p<7$ym z-cx*%i5!O}J#&?cw?Sr_>q+rOaR%)LJ_AVG(cCk{A;HwvK;+9`i^B@t@|H~JvZGfF z`1nOZ_4-Ue!oDRS$={9xB#bJ`K6Z^=y1dEUbD6)yWLvOzS z%u>x~bkHv(Y^a1UyU+`&9vhX|=v;O%J%Mc+A6ZKk%Jc$Bib1(fe@{6!AV#n4hKkt|t{U@+%@g<)0o5MP@Bm4#x2uJ*Q0 zg3hQ&O>2_QADXEQ`1NqHk@3>J+thq3W{IlX)b8sI9w57s7qtUT zGeo*shc_*8C9yB2Twed$tLU|+N|>Dkc4)*=0)_XT$ITKcwjcw$Jcd)kp(sT%jd|)v zQ|9}-zxVd9anqQnvBn}Phk3ZRnm*ok52a;({W1E|zdxtSos4qNGNP5N|4jT#?1}IH z*iSpYEi3QKdhC_uWBC|;#jM50otEZf(rb*amoFj$0IB^dsGGO`5Uf^u^pixv?=gvABhP1PJ;xT@M;$At3+X+kT^ zp5>=&P0yWw>v6V-!y{ejPPta0i3=%H7oy3PD5929&xoPT?mgoGQ))xN2nU8%dJz(p z4oz*mHu}4g#4xg@rWc&4b9j$^LE_p zo9Wi8N$)gf+t;K49SlP3CoUPh3h{!sFAvr(17b z$-{bD+&2B*eOcQKvKI}t1oTdIY7Atq%;41j&-GNOFc3;dDB#3}WD;s1on!m<_#Y3i zv0ZztO_u;Q!PPN`qGubnWw`n(doL@sFn2PLFg5!m5-$bwoch?J!S;3rg&}@453A4L zJ#V)1$ZFmFOjo(q+JG(j_Dzr&1qlijrq6q3a;N_)Nw$-Kk~8q>rBq;VCYm$)@3`f= z+oPO6VzRb>qZMYXcy)BTYWRLe5crIczAhOG3DS%bF9kMsMj{-}Q&Cc*ZtpK1^nbtZ zZlX1G`OTnQU%xgk-?&Ouwacd?s&xY8gpe}NX6lAgQ!`VN93t7(azL}dsLQJP`OYsJ zV=Zs2yJ|lF{K~=O@@s5U^2zf> zn<`pakpKGmpSyFuYm?-d#oT|PJ3A8V8kx>fcogukj|ZOMf*b4j3EgdeG=wc`* zf4jcyVCsQapoZ=k@7qSGt53hrUWmJDco?9M%M$uNfw|(0=8EZdF`@sui{RGD9huIW z3)p3TN#ip=bj{-!@Fy&PA|NA_CUrA#f z;&^pvi5Kf8DgMt?a4EbF=-o-8FD$qDrpXV@1{mG#LM2bg`9S6H|2TN()!CZKZBD1P zJ6r_$fEM?e6hp5H9|mAlAweDj(ZVVHLa)m#9^`OQ40G?NCf8FD(wOxdinlqo=f@UZ zL(B8iu&7nY@S)DL1j`Y+abar(W3EN>d*VWW0`Tc^7bgE_vXaK1ctd=+rgkIz{F4Wd z^OQ(z*0|&eyFMv z-e@*Dwk>+jWd~;?-FaCpw=!S|ima_%$dD5yDl6->Sv?I?2LxCf1;7Z}(-D1}6lTIR)sLojhy> zO~XTpBbNyh&gZ$9tU0~5XZzMMD~T!%d*HR>;K0DeiGI*PdTo^^8SMQPO974aJ|kc% z1Iq&D$SR}~0FopbyO}PW6(1>^K{^@6{{Z~__*qz618B~p~^dO#&9Vu!NN6Z!q|Y&!jppr zta+VZch*lcSQQk&9mr!;j8^QNI2pIy_&)WB@Qqbm>+2(|(RjRt`QeG0(D2AhbHfq9 zWSohs9CCOGyGSDKPErYF^?J&DwX936vQn5j(B4LQ)2BN0=DDThl_jD(JZvam>Q@RH4h5i_EL0@TL4{)nT6dJq(4`k_^t^ zF=IqG5*l81&BDaVaPasyO$;+RS7Sr34383!aY5t|_R(PbbKY#`1*J_qMpB$o)P1y@8QB+>F09Z+wjyiw zFdmOY5cPQtj=UVP;k0svXAmMOjmdb|5NBC%{aC`9*4TBaDQM$u8>_9$f&!at?Z%ed zaI1z2rZpnHQjvQAxl6ZiOw@*jh zZ%6?9w3CMBs7!FKHRPGp-)26(DVu$1E?JhPhPz>zcP6QW@Ec?fEYwBrPxrO3_H_d1nwE9hv%JSi+D@cbs{HBp=Rsei^C zx4yD$HQq+eqo?i`Z-|ziA@?I`V4*!doGMn@7w_sjcw-!>-OE(aJ_RI4;mnxyXm9?& zwpz0Bn(vB(&P!<5y_Bn6#&FT!sN7@4`Sqjd(1;|x21=OYEdJ7XqHR0i_LS|(`smyv?%8t#3fZQ|l_WyL<#R~HvZOT=PH-F>MBvPs> zSbPmo*FRQgr-DKvYM6%xW&Q0u-id9P7cu{?$~nhboYyM45SZbOmqN?m#_B>DA|wT_ zYxx>p9Uet$*CvQmU~6r=YO=_NB0Bd_@jK4d^UAVcUc2m|j#+8gh!bxG<>1XC0dP{N zBof5zmlGgYhmHuoOz@*J5RS?~o%tzoUCl06o7E+l3EEjS%WQnNXiMctat)X&CX0>M z&M8|8SA{dEFbX`rPDN}&4VaVHyk6edy7Ks!|4hh67s>Y6ty#Ke+rLKpbb(((IHWIJ zC3Fihs9n`p>96I0_rWqWh>A5aTYq`DDcmMWLJA2*{Qy-AgyzT2S1Wc3TBt%5D!Yw0 z2^&Zvq$w_PBIVpm22eZg+R;9j`BL>r+0?pLuc;mO6T#Jr1-dt zLPMskjIujpOJI4Ryj?k9uT)SCZJ&CI;bmY_XZ_cz58}PJD=sSD+0}KRihn zRst{ajA#;`de5H`%dpQ586YEb+!MV~wBpLlIW?;L0`CUTGi|`$-%debSW4+i;7DwE z|AD7e)(WVAo!&{stRBe{g1!0<6-%#S@UGiebr-Q*CjSi!9Kqv}z=!#3CS~?zNaZQZ zjsQNr6iBsGb@0#EE(M0q5L#3Du`$Jto$gR1s0ArJtYh5Ai&Ozl z6$z0C5K&AdL$8s`(m#UDE*y@%)@fa%`pG5qfHF%ek3LvGc8N@+B%exZ8t(+AL#8bU z!-`AESKy%|fwY`Tha3ZDv2G9g@5r-|-)_**h4_#8U({U)9dX+2UL+V~?VyL$E5$?K z8fzz<;qYp>qD5Za%2{0UXe{lJ{U*_dm86|!-wWT4>f=Xw(K|L;&ibUP6E4nI8ba8> zH~Z5MH9KF5q<9-GH3#@j^mde0jUQiG(01(fbCZp|=L+$Koj`?$hnZAtX#NCGGC1iW zcrCpsGd26gJ>97Nr#)9t0 zjzV`w8e*P|Bv|eWt4In;Z4#|w@!Bb9uu=cHbN0-m(|5R45B2*73jIM=@vhzN2h*aB zrB-7q#|=X;dB!YPk%3HZpm;i420I7|do=B=8DNCj`-r_Iud>?m^Z|D06Kpqdn;WfA zgka}{j_}Nm3SN|Xuz!c4VT2fggap&|!0vBp_^@KKYk>Un^IPQw>lv+_qkhV&o+yrl zUe!j?_vw^I!=v|34HQctEOuFi1Zzh;wXO5zUx$vC%ue`%I&7@IY{g)-?A+*!E!aO; z{_krmm=$tjnNz;&{5*tiJ=U&@!Trj3(2$}@ID6u@-^HNMOPBRdEz!L8JfM=F_S;lH z)H)H`s)*Gx1X*H9L((mbt~HpoIS26jc;DwS!ww6)w5*d2@=}YKkiU)H07+RfOxx(Q z(cZ`3i%N&nf#R6g7_Jn*Z!%HpJ^}&s3#Cy}4)9AuKLwVbuI1B$2Olmm8K1bb6qDgP zb*QH~tJHSa`!t9sS>sQhVknkXk4=9gj-etE_VgGT-#r;QA1!Ks!FgvpfpHnnvJ74r zJ=sl$3M=5_qc!y~PhYw#J--!#4@wv&g7m zrf1+oK~`{U)_0S@s=hDSlV5N7F7J_GCR<8Rxx91ECTQMN$dWUs_nAH@FT7!;oh1D>-N1@|I8n^)up^RCVv+V@@jXl~ z++FR{VK<2_pwy@)awK~WQ%diidc`u0-@Zg_CGmQqm5S)jcTU_3B2+@b2K!{5pD_Ac zfkm)?DxTYspo-C>^!89xhMk*h=+QN&izXgsz3$yE`K|+L2hNujKrNBddajBi(N`FN zBX;*OPLvn4$(cSh%OxN-<+iLYy(2hCo1X0%PccI7%F#tU#<_23TxZ422xlkywh%v# z5AoaFx>k7~zyKB3^ID^#8ZNq>A>75Jkr~Be9YQkdSbV6cJ5x&IMCZ$ z&xP{>fiCvm4ft({D`7Vx?k5iC;1b35n{2*|1;0b@hZI%+8FzQq)xx1oF<#W=_Ml<> zG&6Rn$-XPKEtU|EA`upo{p1ahaLm&LA2lod!R}~UlM^X}sEV3%&1|WP+iexqQtr7N@bm`%3cjh0wi9%_62=((bLDvVne7VW;dh& zRPNDuY6uUzd&4&|Rh21hCmTR8@2%9wwAU|1{g0dKH5wi)ISvqnv^+@d&5J$oV#Shk zyzKx_MN;f$IQjC;UOgB*MPjgHnrNS1cGcVu{EAn(XW^UV|CuCd5aiYr|Ch(Ve$J~= zVhSMUQN$Pn#)NNGGIx`{OETy(OG;7?DnNm zS_i-|w*u;hrj+dO+?)LI`#Cbm4PHec80g0-GkhC^*T8=ygK{S#V*sgZov7lm^O74c zLUYa^-+{e-JtfbKh(ft(IF#K?AVwXPEJo@MW)C%hHt^|a-bDj&9O!&^FV4>^A@yXT znX6Zxe(SP~RovCuQf#}To{>rCMX3L%T=*6iWJd<)q^PP#pwb4b*@lwC$Lv%0 z`~CWQp0brOFL~ZOuqO0GN+}U*}g@=cW5J@_5ZUs$6|8QX!2xKRw*2Sw9w}|1A^L|x-pS^yx z@VIF)D)m4wE2qSF>tZjSOFJ`~M!Kh?GR8TFk5-=(=$E5Tv1wNsbL&}9LG#A7nR+3I#Idliy zq5j3CZ+zx;@Bccw+X}1-Yr|UpEu%n1$$0Dot$N#`8x`R6fIuM}(9DpNi33HQ(m#}Y zT>3A#uyfp2b&h!$ICH6mcOeyhbAxcE7Urefau;u*o|RrATo&V!WB8w2Cv&FV9$xVs z3h{L9b?F{LBW44fnPofy8KA;^%pST;H%r%nH!+=&xn*C{_``Et zc3|%g-YnIIPU+yxAnz|?zn1eiD+5A#kEMtC33vjjQOdyGt+DwYR8X|LXbo%mgurB` zX9wn*cKnmi$so0p${tK`Sja&AcK(w><$bps(njGfRLXTzC)WfnQq2Dp_<0x}Or_z1 z$)v+!Cl|RGT+RHn(ID-p(8c%1*NtWq4N?jYe7`Amb=e2sqnj>nyPCcv4g2;R{{EAj`{Bz^4nF61C%m3I?tQ>R zkHHMy&i_B`z3E@l>EHfupZsJsO-;L&+NN2VR+rS3B$Z%r8JhULFo(p?91H_jkPEeNcn#FL`5exg zVE_jR!2^vdrnSu@jXtRU;Z`S6aOk*Ajg@=6Z)ZcVe%WKaG#3P<7FB}hqLxJDWY)EhSBz~dGb9}rAY_;P%cPs zJLToy*PNDXZV5fxqtgozX9~#R-qf^)iYW#+SH&x)A#xMvsGaD!u8?p{GE1ry`)Ftr zr(05__s##rSd$(0z0JPS7T~kk`lEBQw%~R_#kk`o5i3zCoB!1tbFk<+P_NvA%FWB%#I2x zfCU;NDH%{;8Z8n`>>6fa?F#7kPT5NQ56Ols$f#{21*G>9 z6npXB$6@(N25@uHB0j}bIC3`R0hZuYQ)Vb;$*7gPT&6eQE?Vw~`Qo~&Jm1A@_E$cX zci-o1bpwD!0cx%N4Jxie%;F_m9UdGhYpnlu7fKRd$^}|D3fI2PvnHX(Iz|&wOFBTi zo_;auO+$f5&uO^i;RF~VhHQ)R;22JwzL^FLTuLIjvyy<9bYV(6H95c<8Z_Sp&N;2O zF{}gnDh>Rva9Spw2?uuzi9WcgY<=C{w!Na{ClE*394F?A;o{{!eaDy7_Mc^y(6_O| zy!R^=!53L->SK&(PN~-m(Q)N*<)zmaXOOdzfhNNct->&v^A&bK*K*p*^0$*_zhPH% zKif>72&t&qG@kIi(_4>&vvF)$#}h=aOW|{xrps9wsZN$;a`27W+0Sm7|Na_VzFwDa zrkDcH&k24Ed3JK(FosB>EY%GgKHX>9A0E@A_ST4I=Z2WVi6G<{|F7~tkCWbX?1x4` z(L|9YzvV^!Ro_dhOh<7;ph!`rHg0K43x600wDWss`CB>?p6pVK-7ER4@q~!X?c9!Tj zU792Er3>GQG-4ZjLo*DMLY&6W&o8XnKU6&sOrT@9k|E$+zux5>RNgVyO7$A`w4eqr z^?d@eNq$~F1MzkM)LblCi@e5)cr=hx#zG@?J|VnT17^td#P!({wgo7jzuy9iUu78e zyMq}Z)u$t<;w;<(AcMLVt0@F&S!N6$sJiDGGGS-(G1Di_4xCz>y*4{Fz?Z{+Mm4#G zu={1+bxM7cqAt|DET`-Y8(l;#!}cllK(IOwkw(3M*&dq`${tx=Jxw@jP({~nX$USW zg9GoidV*@eVGkAVve10!g0%PG1#CqfaJJoAelM@}*QfJmzN4DH@YY9sz{b`O2ce!tGc;z7(LRRRui3hdB>Zk$HUJvP)|gdSMubW zD?FF6n^qm!_wK@r18BHDt>mnFF_L_k!GkW{tgfHyY^&bpbj~*?V@5^vj(Kj})Vga> zcKZK4H`4!E=>Gq1q5IFrGh;XMXaGFO?@7Z0_OuG{T)C2}0ZE5g30RWM6)&C8$94^< z_$m{w^z&GGtJa_uEcl>grQYyg&fK}+<7eCA110#i)w@#}DP$S1JDQt2K@gI70G7g; zJ<}rk3}2G#HTsG_Aa;1|ldcLB8i^1+hsBj$C8>SYi8|m(yqclE7HHlX%kzK}O4K+>^&Sv&`#lea{V$>$nmKojQW83G$m0E`$4Kxkv7 zceft}?ym=zsPbZzE?0X3YV<&hHPoQ((=tkbfvYdgEOLA=>RFqt9REo@)H!OM0l-ZF zGkcDzVQ6L~tr-SPRb;g2+8);V?=A9Yd>g>X=c#vFCx!uC8=K{{-Ua4XSft0rSydKr zwDi%t|Cy6JvD7ZTL!n8NZOfy9UN-l+tASrl$Ph7OF||DgS(ld6ER@&Rn@4ESYfjpc?|0*30&`nnmqI$Ht*dATENEP& zsUm4q;lJZHNHHP%|yR$nE5lYfj0f1sDS+C5x&0xutFI?tXz%f-@=S zxdh0i3r^YS^q-nhK)v>wo1JJX97M^Cw4ZqG;8ymqirhE})Z(}SK-|)kt>(MRNr&12 zu~R$v9mKCa0OMy>-u>F6sVeoXoM;AC zxq?o(Ji}BGIfl6z_vib~Ea$3h@2SLfC_)y{>cqxNc-{!CPWZz;yEs=OT`<-BG&1p} zhnm=#_sX-Xn1khdlK`@(mg6?R7${V+oPvUUWx`q|8;Oi^;5nvdln-U z0LE+%;1s;F+nrOP&Pw3*@{uViF|O!8bmzgYUHP2Mwk3*z*KLl)<%LOs?%Wd2yhzV6 z8RmK%HqK%YMZkY!NC|$QYk7S7YKL7a;d|EY>#lqS910WhlK~-APyg3!-31z6B9c8^ zd_rES4(%AbQS{&Y4h$cQ^uakn=+7dmS_?}%KO9t;C=Me}0PA9r4ltw~ zo(lu&;IcZo{4;yyAtbps^Frpf&_$wGZ+N6E9)Rzqn26s|iB=JTCIu>no^rrj+%*47 zUwiqDd7mFbl2p=|rji!TX-rz$SDtY)nCH;bHFt>?52Tx@Y=Y43&%E*_<)Z_31cL5d zi+9q@Ts|9`3b5fK5%*!gNFxiWBJ5{*q#QV*cwPOP z_t$dceKXyFIZ+Q{Ee&ut$cviw`}(V$o~_riezL!=!}F zr@eUuvNCSIx*c_S)%gUFS$cVSdH%s<52mxAgiTJ&(8{=Eet1I0MFzU82}Unt^LkBL z-X-65ncw#FSdKGW@or4N>vMVeLXy4Jr1p7|#>Bp?9+qhbhu*wE$AoFUCER3OqH)pg z$Mq%Vakd~;J5OlpFN7!Y5z>ZU?L3|NF{nri0d~50N|72PL>$rU_FreCpI97`=e@P9 zUL&78R-Y6lAY1`DSst7cud)Kj8d1{7#xDo*> zh&ixKC%Q=7RmF|ZTc2;U-HLa`=5-~L4$q3?Mq4A1yuH*5In62tR3hkI0+Sl1PeJ{)Ry`8VKeJZy)k}jlNVTiEEpdjygn2rFrsMo}L zY{Li9G9o^Z8G4)>(yP?{x>XqZ_}G7zbUJ|E`ToVHdg-aShs7?)-FjIvk^sb7CccA3 zh8zKN5y6nEjYi{^{9$Q(i{q9(&C-5cTThKgp7?#td>hvU!CW)9iwpi^lbqbkI@(tKdSTX)bEcHWt;$3&lRXHLNrp%R?-*snt#p@Vnv-(dx^4U!ZE(QG4SKfJq^boTp?m6d zH{WP@^j>MFln-mdDO57Zu_MB)vo}wExz$E+RS91yk19%%9iue@S@@7XtMZ`?zTxFe zE{lR0!fNAKlt}E9;n{%m%9nilMj@{L@;Z>unk*mOHrzzfCC3l$6P1q4fI1Xwk?8c* ziki5m^96%iT#QVfq}7_HKDXV4-wiv*1hucMF34TN_sc`I_#`#oWETX@@spJ^+GlR- z6BSJZ&$(*n1?0H$WGQllc;ped+1i%V3GxJW%FAP=1(cwa#7!b@@w~Jm<6pBw$KCUr zipizw#OG`w(uDBAD=!}x^gh^j@6l~%FaNWv%;0wGKphqi9CYW|R?5~F(r`(y0Y{!{ zT~z13X{#;&QOpc+m6e!Jf$b<3mL|i~`kF>ufu_~>#`A*@rzbx)XyKE+{_9vu~ z=)V-96*}z!2%Tct$kbI zjM+{9G`-Jv(AfHOJ@_DU^EY)ZFCDK^jR`*dQ&MoU-ox8lwTG#7rwQpSLfcSrO&ap? zZ>K5u9GegRYj%m$`nWuAI+J`l%;}>T+bD4xV~G|}SB|HK*o_FEo z_Xpukox8PM&Z)X4ruRy&Rm=97D7|gV(puc(c8iUDTbkIAXde?h)Ba*5w87vq3qz;n zp9%Uy&3|s3G%XS!d%rYpdiWoc?^)HOmrI{$<_<~rc<{rx7MXv$N;LC3U?ZNgx9B5)U}8%w}u zbj=ir5ylK&c&mi2iM~5h8-6-UYlT8Ty}8_icO=WECpIK;xNa8C)VU!|HA1)+?_7G| zlGa_!8c*X44rF05O_QX&j_{#yJ{Ga<*M0Mh}^ZIuOS&90OzsgazK$jgY3ddmp=xr>}@ z9cK!zy$&zPb7A!X3{MCFGsxSpIpS|n{C>>zp?u4N&JG3tQ|{31I>8x?g9Pq)SB1g!eM zonnf6fICDqPAl$?c~TKrP{I*ros$hn5s}6P(Zh}6JHQg%Vb+U2+G)eB*2%UHR9G@9 zD_h4!2BT^~yC%hBmkQ9nr+>FIi1v=J#d-0#A9^YGAo)07WZ+5T-n%5kJoCL2( zZiLD{UYh~&7Ab|(`VCRBJ(|c6AXo`iNK7%wPMa@W)r1*EYqZN&w0&8Pw>_lluu^Ht zL7C6BsG!6v%~N_qt7P#+i+@$#;j9hDr!*}FtEJF|%(IZP3oG!c5uM9^f83kt2#9~4 zU*-f!p@Ch9<}4k+2{}^o#LMdeMAVa|?W9=CU<;_|KboA@?~hx(%xqN+&V5QgVLoG! z?*jeRi>pW1VMeF}DOZZi{M!2sC{h8q+Av^tvLRX^$Hp!3OyuQcZ zp`2;`$aD1BF460pzy_$AEt6jBm7d{t)8;|Vkyk{($S4GpSP#F7ivXO`jvk*6K12Fm ziL#MvxL^m`E+1FzPi|7~q6z4~YHZ5kc~gYnI>zofP6$Ga#Ndeb&KZ1kCy@HNcw!^9 zV)v>Kk1F2f_5%&CUgecpuDOn3;mxS$1qe+mo5OJv5hJ)L#yF7 zB8m+PAs-5{71@XM-@crG48?itkiFLU$k9?*SSE!49aXs)coE3eG04*NL1siH6e zN#T|V40J7b%q8*>`)kE=Q5XiODoN`&Qf_$nui46^Yf|;eK=*uHokI`m;rJEW7+vaw zx>6x@levlS%)$@+)1&d<9&hGFPFa%s`zEFTQrze#lMZ&3q3x+^6pR2%+eIp6X^y9- zJV{5_+4nhWG5H)CmE5EJV`m=bTBF$*$_IM&o%JYBQHt~yKZ(!?A+#a3Mo7aiJ=4U7 zLdb4)PDK(ekFafiYuZas$K8PdGNJcaJ8j_eLL%hySG=fK3!U?zm=>Rk@*Jb}L*=x_ zNM-_Ah!xkodw;&M4Q}Zj=kV*>ufbN^O}Nn-`~M!mB_cQ%fP>095g)EG6^_-QPQ;1i z!SK481)QN#$9@^RYWYae`Au?5CD=??z74ftq*#YUdOMvB9dcusti0=#nM*j0D-7SNAfXbUu!>S(H~`Ti=RbRBIu8%Yn?sSR zYRVN6X2_`GzP_C)#<={WUGn#+rA?bxx)QpE;*FO0fGSyP!EDhC!?fsqh^al{hO`?j zfz6gT&rBOvyZ4*D>`49mOF=>T*jR!wmoWJ-svinVWc0JSrO5yR@#~!xyT_`Wlfg{k z^ZtblA(WSPao2ultKXeJ0r1DQq%{7Kv5N&~Fi<|A<;PU&-_&6@vQR;1MNKd!0okXm zui8Kzvx)_847M-al=_dR{ChCSNx*}8EILQGlodQq zk2vttk#r6&c$`h5PE#rA!n7u=7%w=XbSR~Sp%r=We2k_Cp{1^*OuUZ$CUa-Ev6FFKXo z3IuX1PmNkB`u2-_do2_0oqcAN9DWd6Sk@N^iQxbqEB%MBqhvYS&^+;QJR}8qWR?)V z@G&hmGd^e5*t=}H1#qtV=}1G)R~ppbhZmd|!fD#LuEK$dL~i&@q>?qqqNLROwAeSE zCw$0TX}NYm1Cnp6%&Hz7d`K@G%4Y+ALV@keTqFkuhN25{Ci+y6Qz68b{)hT60a{B#oZ;%`|UP$L?(l8TuXOl!CoF3n5Dd!imUx zQ_msq{<2}`qE}o1f4%FfEl{;Ng8rsCl?I13&?)qJ=DePODzER1K9iOm5-#=giPHm| zv&_gL=on_?Scl_Ve%dXqQ75E2SHLp%kW=s)9xdj*p!}JYyPl15M@k(#YZ6fRnF-@* z+25Umyw~@cEnO8{&$k8cAA&n8x;jrJzhv7>oSDEWr5bu=s3yT4h@)gMDp~~#h@y)4 zilB{AU#^=0hqr08kA=ezD}!VJ18Zc=O__kFu0)L95n3SQP7c;8osK|P4g$Jz(wN75;lJ;zlf;FjYg)z;-pw2Zn_=Or?yv4Z4`_4^kb$G1tLb$0TvlsWoz@8Uq2^3+_qIs`#Ip$htq651G zA1R_-k!rh)kc>TDPcNE{r7l}B<1iqbcYJmX(UORFK)xg~wY9ZtNZ`&oD+CS}$uV_*mj%jIJGL~4~T?o}lGlvPNG74!U|9hSr^<&WRYyzNly z_l4DOYN?8&XcMmhqR(AEXTGz14>us85sR9Bh^04kD>7tRqr|51oKs!Pe=pqbcYKX` zZo95Zycc|In4_hX;>i=DPn$ zBLL5{8$F_XECUI%Hx}R-qniO}1E|ZXax}O{7>2=sM-9h~0pq8CoiZyMP@+C2Z;R4KD!K zZP2oRmf?~K7qrt3bE^vccOUgw|K{KkbLbnJB?ce-mb}D{5$Ev@FNgFF$nMsV!#^3to~l)?piwYI84j!}sON^t{VMK^s@vP89?d zb(i*3%P@v%`n>3k;?JtkBK(QX4i1?PDL(+*E9U@}l_>ay;yemDfFxd4e)L?mQr+q2 z#SHHDnd`Iu!|_dT_JDz&BpN=DQD-vf?7u2c7gj&Bs+V}M@(~-TCZ(RmB4qQM+IpXo z$xH5TpMP2P=q>4|s(lpRklWwX3P-~v-j~%2nO6Ifiy?oXiR$eHwltg%iZ-Bg-c7m# z-EDc%f&ma2D?sns&qUyHIdz?lI2lwno-#ei`x7z<0aI)W)buhuCw!I}J>D{t`D{fh zBGSb_0>0zM+sUJ#u~qkeA_4Xg)kLqWh^=edqXbGW(@ILR^(%$Lhge-+bqDrYe*5+V#bGeoA z*c24ZuT!1)CMsqEea60JF+(Q3GNHQ(PiNtL4XkO!&q>JTm5+Jbw-qv$7)AkNwrfmx z!ces82SZgeL%7DsSr8P7TJw=L8CV)&G0ET-``1G8rLtc;MELA-(i*!AyWD%_887Xs zm2JRUW=*~1+4ybfp;*~T22dd-ohT^>8BbGQYz-luUiUP?FE~p+NQ@E)!Q{y?q0vDh z2HMu21XV>whx20C%&$sM&(CM;LpF>7)SDU2v6-Ev44#TAK(gWRgX^MVpt zjI*{|SK`KIKpG2Qj&A)k^)6dvNvl2?fviqJM0r045!n|S{#GM zH(WGt${9zmZ1n5^um-p>y|y%P2t*%pFKFs(hh!16N;!cOte-7q1&KcU1*JymB0K3U zJ0Elb)IoSl`j>>O3poADjnZ7_HBV}qvQP_~2?1Aua&L8Kjl_ZGGF2o|GdnjHrOmw! zynFuXt!xw!`pb(^luA`68D$TU6iNTE_(YY=lynBV9>p(mNSLh{5>n_!^@XjEy0ae* zn`=f_gO89nob-+_rXhzFbyd(=Rb5Gs3}t%Ul^?e2IY~jdTQqKyHK!kZxvhK0JCOOh zfKym=TOMioR8q|*O=YQ3)qod|xsMb?ioj$yilBcwCP!Kku)P0Nas1Y?t$F@d4ih#v z#tepudmbC(i5O>5O05_uK#CrB4mZYC^amcOB7_dbq&PC`F{3BKbE^H#_Z4r=4Z1Rh zC*8p7__zn>$jxO#oUHB~gE3R0`Y8$gwfS3qwAO|7Fhrs-BuOh$(ybGzQ2ob zxo?HJP4!$tfePXJAs`~OwLc%?=rOV2i`{v6OnRUB@f*_+&N7;kq@_u_6tISf*1C9p zN4IWU`eV}aHa}l_(0cGf4SudW;ip~;OyceR13iL*@KPM-GE2H(*p;1E3L41!dJ$Lz zHF-)HYA?_&6i*~jkSKv-{FU7dT<1W@a#wR72E`DahBpZEQ2fV#1>Lk?y8R{= z)$41pUfOomG`J6N3_7x43y#o}11;weLh{-7kSXd!5OAd}4w?Fxb_P3Xh(NX%)=s@MPHu za&!%**=2{NpCjsY=7p1Ex^}ZG7RCqk(Bj}8J8AKBWHJrTiKabE+MMT_4<{QXjt44X z!up`8{Kg{dVvzG{f7hF49eOzrC_zg}w&W%>&|9wQg*5$S!c?^(XLQpH@{*Q~;f=N& zzjO-PbqvyCb7(NufpqMP{0C*1clE%8$RIpBW7JeaBGx}_ws(R{P!*+I#bO1roj+ zZ0eTc#$axyCR0zIbK(lJQkcY#52u-SJj%>~KwA6J!(X$l@zBcoJD9dloAWKMmB+r( zE25h2HRiu)siw0cxx%by7S}YQem%c} zPP+mKKTeI5k5f&Tih+-gb84i@W79xES#nwQxrocpO$a!blTwpdmDj!SZS9V(`^(a9 zcgaCOfvL{sJEm^0?r?Q^C~p@-twYpNg^SI*lU%byk)Gtv;kh2p`fwF165Dd$r_TOI zq4@gM-n8~@(PKDyIV@v~s9F>ff)ve4CHh4cC$(w(%mV>&T_haNxvVxUF8lAu$|u{c z%g@WNgB3C#Ka<4qQ%zVmoC=rm=S?QuU%i!(Oqk2?jFBL&n~d+WY^q%{D&LMiI^}(E zrk7ZO9mqeEBdHt~Cf9L+uogD<3GJ&Q84*zDip|nR4pX#1HA`Gzggf+M#mmfgC%*Zt zneEdru_Df8rxR9gA7`OL205IApvhI~BpmbCmSW{BU@}z^yX5WL7BY0C1Q0y9Y-W*1fsh>u@2wN+{N(dQFNve0b$XEo z00ar;y!7VR3_oWJAeC)0Vds@4SmIB=dsM?gl!?oGxJX~{2C!@+OLHxZ9qL>kAAI&F zEdfg~;iTF{ix*fnpoMTU7O5D_rWSePRIm-uIqbaN-&k0N+BILM|UvQqIqq-}FCeP0Ac)jw&LU85A0?cP<6L z2xF9Pu}}7{smo%_6Dcv#xq_wBU$5$CK-;2;tGS$H4+>kq$otCJ+sweGAc3f;qj5oO zbE0|4e;TGg_~X6@|1V2U;2hOE7oi~T)-Q6;Q>o%%2G3h8Y-veZy6Rfp<7_?fExwSk znOnbD6VWXD!{jSsFEU%$<^;3Tm>XiiPyS-`*$ZT}7Ov+CrZvrM9&B=Tm!RZ5TTfsU z;bn}zFMF+R-)NNtuSK^422(6w@CkfKSF@*q*SG)=MKA9FIap8+$+%gZEFKk7H-O+# z{x$o`v)C&B$}8(%B*Er0+`c|IzQXKI?=Sc{Q}&m|jMaPzM>u@wkp4 z>ACvn{i27dMoW~}tj%{{j_It2U4Nn*YLQJ{#2Jefl60pn1T|pBydjGXU%qSQ(mfpx zi{`!@T!9c+jS+(d6RealS_x&SwRuQ?ID6L~`>Y5Vd|2Yk7~;hoSMDsayPk@}6Qe4B z)HEMf6Lt2-e?uk}tMy2#VPIx5`NJyY*8DebJuN|Lc2x#CL;gdvR%_6~; zOQv^^g^Z^aKG69<2Y(0{pG06y<^&^<3JdvbMNM_ba z4bBa(mIQ#*TGP$oPm2y4_tt8OyZ<%YrjSbJa-oR`k=U2P9+vTiWSw(>?Jno2?C%>^ zx02R8UFu7EUusKnhO5{*H5-qVMOU#V7$rg9RVhIW*I#*9MSDdz=l z;k_@KrAt}Lxf$L>U|}IW@$jNO0hTa;Us(9{T)RYLro`#^DowCo?K+55;i#^Iu#8z* z7fS-wlEBExx#XW$v_?seRUS3Kx_s7#y+}XOAn}RRIkmVEkbsR-nw7;W7Pz13@X6d| zZCkncx?ND1k7J@1i4%Y>uHEf|vj<{WJf{o=fuTg)T?cj5nZc>PEq)6`+QxNBUHtI` zArCtl(pM`)z+glKl7?prV~=m2zj0^8CG}8;DLqf8iU`~b*zk}S#X^(vQU#^z!LXQW zKx%au-KYNBF0q!H09!5(N|M#YjrL#@kOvZgJJ>?NwoG?gZH|xEzh=SXx&ynvah9LX z-1Urq(X-R~$D(IV7Zb1*NL4hzTo}G0GF($!s#0>b$|=s~E|(>In()Ot{X&LvGw*C=sn(QxXd<5w zE#MtU=2b$pI!5-voGSBTd8*y&kyyR?x^(`=bp@dl`61yDu!bZuh(rWKxYt>`XUKIN zkxa^EE*y?b92|-%-Dzd!>~$S~9%)Bh%Xeyz!G&JyhY?pR7l==0k_UJpQHa9OYp;pF z3?Wn>X&g2Ya^WG$|Clrt=98M9FRi%e+gz4iG1V+A)pT-;wLfP*g>du7n_!7Gebffc zB7qw}loR+Upm*z1((%WivF$PSUuIs+!MMfTGIzQVn2ZIQ@}AfO@U+D zQ`g2>*WXyDz4P>|+!mGnNmhbD=$nR;DT{>rr-Lt+RT$XC)Y+6zjEA;I?PBXMmooxR zrQezi2FVp=6PUox=+5Lg8XF6!p5)2=#@5irWF(5tRr$}qH0hmg-v|r*t>0Tco(;}OrVFHz#>|^f$2V&=vn(~LrEC*J7J_hk{mYuIDr{57xD1*A0-nLVow5R8Gw zg3EMV-tJJS1`2CVNtRUWV~Aly-tn1DbK)JZs{Wgsc`Ad?)u3IL0e+Mma7}V`neaq4 zO-yj&v~Mu()Mmy=WNh9r3yT@+0xRQ)?d`8kw!x8>l?QX=c<%tN8FFny~(0_63<2 z2KGQtfFb~T~)pNqx@O7NMN7vtvoL)fCgAQ*$R_9Xrwke`z6WIu^O-QBkTD$TFo&hMh>~TWpIg^6bQmz3Z+_ z%_xYfdgl-zm&}^%PfW?U2;h!1Vzdt1gk5*dNgb`W!+_)(&mO2YmniM4}_2&bI4cvqYaT{QwmCOOV~Uots1-Jk9Q&t-8jK z*=a6Xwk;X6P6Ox-xof=JN{OvkWII{%>=?WFj30r5Y&x8?6#8q>2+i!ZTKCv#zSCz(Y#a>4x4O=DgYZ|ABf&hnEK9cP{ zEe@A(Egm74?qFT_$D*v>j@Bk6fsef*w|IM24-6@2Mqh*TAvB=r zmC_6FffB|Lh2?|tj1=39M`dqZTRa(MIC913fAkw|1&!mZ0hnV-3Vac@&||YF@>lOJ zWIYAcEXGFwY>(V&yAjOEmZNKW26OAovoma<%TG7Q^kB-R!yN) zKi9@-$@s`Q1MWeOm&K8|RsX5l+UO6fU6wu-%nMwX{gM@vtezOsNK2Dn1)^LbAEE;V zk^?>lZW(Vd&JhD1elzNHt3#o@x_wPdbkg`#Q42fbuwKSc&hqAc8^wVkfeJrdHzY${ z%ThDu@({{*PyTq)iFUz#KTB#YPmtMMO7Z8~P>4>Uh$G@G%&X@7g0%dkpo_&_1|<+J zxE__8TKzO9><5z+n&6NEavBNq@#MzNn@8X7hg!~<$sYj|VV^x?<0!C#2k~Gd;8|Fs`Pi6{lbiuYIL|UD2CV%r zznxmOsSS>`i@nu6_GK<(m*N4Wvl~-1)!ZjT0Ii!MQ!@V68I%Uv=@{WNBkb{I;*vZr z9Jziz1aO4{PnWY7BS@x0Cp8W;H6VtWi3fhjfz7ODD=f=UVA2gWSJK zf}fX@{8#%E*PjF9l_3+6KJEySl8(^g%lv~%e?XP{TsWmj#IQX_z%V*eeo23J_u%`x z7afaj%w~=xZ2uv4kT%}qg>j({ z0!hK z+ZVxZuFiD&nY(b`P`5#pUL;EN*PiWH8?LA(4q%I`pe8D2R%Cb>Lm0qd&0Za{z3@uT zSZdzmYj#T#N@G%NjS0KR#mi} z$@$PvK?y>iqesSc1s~RuEdYu|jpL;B{((*oGx%fS=zN3NtpO@jWoX^x@;+(vWAcSR zuD8G1$Brv>x^atHp6d60OaGc^m?!t52&$+y2&r>=>}zX^M?;h_EoZTNNW~UXI)S|F z)s9iCMVt3yH*$lvolaAg-haWnGpuitigz3OIK(fdAC7f;5Hcz%#;;C32h5w(Vk$Z4 zb?dRSH^V~5uc3XKZnb?&4JN*jgF?uAx=`y9d3i;1ZdaNohV~|L^_=dB>^MQL_6g`3 zL=WarXk{mdbC7X4=Qz%F)Y}!<~-rB`$D^oQh6A1i{h|LE`sw>G-S523eEek+r@L{y~&R?LYMOt=)bL@lTsYKBTK7EKk#qvtJNaB0M{$|Y{v8$sN?GmEAOjquBx9{w>#hu zx)TKQ@Dz2y&v&660`^DW%mIqdOT@&)OU+HeSp0krIPheZ;n1NAXRn(POCD`}Eu-1s z66k+!_$HQD43!F0(r_eYhE6wDCB1ImwP%ks@Q5&Su2a_I=c8$k9JzG&*W1598ePUV z?SI#p`A+`0_mELvMFL9(k@L*QC3Kzqt8?&R;lH^2(D{edoF>G)p$Nk5Jr?rn(AJp6OzUH=_FPu~Oa z3GZ{g4Jz15K#)L)i;88$`SsgkwGjwvxMWH#rWXi-TUzS)fXyz#+jW_p<~dIZV^eSk z>s5Ks_r*Is9_GyJVGvEt5YX>4WlF4i`t8{nd|z5qQCT2l-e(rZlGTdNF82PF-FEEH zJIhxKEJ&cGOQ|b-=L;hD^cwPE_nByLq3$=3)ykFE zeJ{t2THpGVVbX;t9D|-0t5riB+lTXA>DOM}sj@s#?@eaLnHGaFCIj2%!<$E_}qjn&XigRqr8*_0M|Uj>OZtv(P?B%yb~h`aUfx$ zY-0i*b0P3!HfIrK74ZAu+9|L?UkfSYM zoS2}BUpZgQ+I)M*{7*ZYO^%?0Y|-GaN9{<)p0qdJ;UnM53($cBGc&^ydVHhy^qDjA z0<;`m)SUf|5gFM-Z6u;wDpE4iV!aUo$X_;Hu=KinHdfiPHGMKQP1TD-LSGWfUd%>* zVAE~+@P(cjL~mwDc@pS^s=KG|94Dm#t4o|7q1eqDemP>;q;yEQ7=A)*dvZ?7+Y4&T zv`Z5(vy(p@h{qmxpD1HDvHH3MY*si&kN8wOQVPj{&O)>=;aonDV0~@pWG#sPL-*o; z?ylIpgc2gt4 zwsbNfp!$RRroAT#IXm`4r7QmHg(ke+MOw45`gK9h_#R12aW`Vf`2VqY=6^}1|J%0F z8Ed9&rd7+bDVNIBGR<9ECJh}m_Y~1e)0A*W5&}!BnM|#~WpcqO7cv7T6HpPzDK#`D zMI=SQazR0$R3t#1=l=W|&+GO5)t^MX@9VnW*KwW)jRpZu?VE%D?M|<;TC_-!tK@tH z37>@PdJ?#`$J+Yb&AV8Keb`#;Zv5njNf*W8D}RMxn*#sg}0Gqw1t&H7B zw#muC^RxXSQGCr@)6&O* zfU(_HYw@=bSY+xI7K1_NF|LiZ9uB&Hzv2e=K1QL9^&Vj}+aWMSEp`*^$(<+h;~Mjl z^T%=cztbPQt4d@fMr@WJ_D&*!lTh++VoskDxd`&NvG~3j!K!6wD9QvM8&=I#we2n8 z$77dxCsWR>>kbT`bk7S6@f&Lm4;>Z)^CpxH7fp_*KsJrXITI{fW^Od&Kz&yd)T~kd z%Afps*tT=9t?x5}OgGgkFK!(`BpRAmEo5YzO{uDNaSZm|5rBA=>W_@HBnwo|-1OkU zm`9?Xoe&*xeJ&{9i}8ZDdxE|MOsgQq?={h z)%|ku;1zFEkhb>ENh- zEAi0C;)f@2H;(1!x*b1eFMc$-y?o%ws_U+?Qpfd5loQ%j#R?#5+{O_wb2*f;gD;)e zihZQu7C*1*lzrV_1dxx-MjhWF?Uy}31L#9x%LU`jDI@L0#j9eRtbKheeG$?EOy0mM zq>87pd(0V6`fQ@U3nPKTP4nvTK4g!!POq9US5jKbi<%^8;;07rFpv9#A25LGMJ1H6 zSGo$Ihn?|k^M^-&!y&g%kS2}>e%05kB27bS@2jf00b|+}e7lzQHr;>D;yvXCme(~l zz-d}&V_n*R_GmlR_Vm#K1@YJKE6p?Wd;-#CvNyqDrVy7=m)NkU(=*|Nf-8I;+%2io z*H-Xso_t+es^&S)@nD&L7nraRw$s7UKVjEyy`H?;GxKf^SKRjcbMuq!-oaDpH*^S? zN=lQ{6<2vr8yC;^L|RtB=ngF%EyAnkp>C)<1?G1yZ{B@0&0Asg!zBAn_P}+mKG?hE zvm|FRvL1GAX-<;s!LHgB)pX)>RSCK;(qqq3GjMsozglz$@#BU^+i~CWPJI4*Z`~Hq zJH_TtB5HlX?fQ30#Fs`OlsF5lOMH5Q{hQbeY>;C^V`dB|U<3sepIzzYUo?l!{PLg_ zcoS@RthTn_^?92;KqRSAuU>c27Z8&rJj4LwN@QQKg z>z)SGV%1{*vlx49NU6j8R7qQ$<#Nfq+$LPH7J+QDdRjiZsIC?%!A!bZ&~mfqSBqQv zUT=!t6uYVnBwT5796C6H%iu$Ft7>u3La$pSJw~z2f>4J<%(G3XbCR@}^92{C?8H5P z8)O8yPN^l7GtVX}Xicb?)e%9mT0S-8FGJPgm?CQI6vH;jqrSBL<|C6jgB`-wSNd!> z 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 z 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

ON#j&PVMwH&1q?WQ3lf;=+{!C_-$Yo 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

^n;1blAvRddfHsIr}c&rPF zh*u2)#EBqzh53{HeXwN2*9lqo1dtxoEv+aEJBfmyilp&@UffHYfoaC$68aiQMR|aV zMgy$5j_UKChuk!)KJR0qiq{xZ-gsAJ?~$GKDPYv|{i0xe#%MZQ6IC4FjL58%n4^hqb64Lkd7G&rE()K{>Di?Y=K_k|~s}!8cgr8GQ z?aw#mTv=&yb$s_KZG?Cy%0`Jjc@gR0V6kFwB{1bTa5uqbl1F%{R z`wT-*W+~;S6dFKu=c=*`4Th@D#9ky3D_)ab z-tAw75Q)e~0z3lN8}z@E8F5Cjp|2r5^j7JaG4h;ACWdWMx~GeT2?8o3RqxQFELQwKPT{!)y`Cx*=g;uL?l(8#)bZqL3v~pZFYM0_VP095A@H}4q$WJ z*yu$7>i44XBp(u6__97VT0@KWlGdmezi#Qoj1j;LakH7+fwhM&4Xj+pIX79KW5obSl1`@Exmz|??ER8K{r zXi&EBN+rk~r=SkQjW(LcHJ>G7TO*4h)=IxEbX z*j|VhKR+netX&6@U7{B$AW*Vo9)${>aQm(JpY(&_C%?#^f&`A>jz8VyIFLvh>R5sf z;j7`uAwev+2;rKXMTtV!5r|yyqG?gh&w+2uyEpZe57GYOWy?v`Ctur+$qpqC5Y1HW z4p$psV~x(me<_Fv+5F=Cbh#}LOs2*LOAYWv`UX3WU!3Ab^be=#=$e8yFDNH<+fWJ` zu}8le_$s-loU-EG5?ooFp@%|3w_G>#SN$CVZaR^&&Qj?0M$_2gAd`@1H6_DnUYM_X#yU=gs-CV znsOdiC#l`0S4Ld)zc&DNbaccHe1|;h|EU`5p zNGIdLJ-zd|glA$u^CjCff1uyNz5l*@gHOxOv#UkkSkI~EqD?QFTap>%tWk;(o9#-m z=c$s>^Hh?$C7Mpk&Px}UfI3Qdl~=}d@$sux9N~9<23g;Fd=oRbY^fzi`Mi#90-o0M z5)<&;0Y>TkewP;ooNj!a)deCCU%;EnP*?tM;;dWu`rfj9NwtHNy+*RZJE1~V_G&go ziUIS{i%Dw5LQzAVd0qg<%9fapO=n_b2`>dVJ2}m9{nuCGko-?8eL^=J1_qr?{9n`1 z6gYZmKEx2~0}t)d(%}~gLJ@OZ^6=lR;OenuPa%#Tg8Nd{z?E!#!U69W^DQVjw~zvc za=#K2VKQPc-n;~`d&hvwU8ko!@E7)6I7c=GHXQUhzqNPP)Lg7lAX?FxbT|@%DUw)U z00w?E+BBzkPCSChI|u*s;%bv*rNx2!^nuVTK7QJX5*35P5z`VU3@BaS7S<&1sr6MU znVao{AY;@246J%Tvge-}w|y(}&OO>-Z63;uj_Lj00?J@frT7|sR;yJK(fk2epa>vo z#dWa@9>nKuldCOrZtSuqf?{$-ENL&*0530R#rk!HDjGIm3dyCDL(wXfSj=WtXr5^y zW0-5g>j2(U(cPI%te>F@2^z3!=70J554B09D9Y3id076s8jH#GPH($n%t3&w33Tp^ zwN{ANYNZHzme{L%ggiv!2oo^^Bz| zmy#&O764NW`;T$m8+UwoZfTPFO~hQtt9wP1sIoa~Lxt`GwVd&}LYoRhO0n T}UB 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 z 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/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 z�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

NO&Jf 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
)$TmBj-wY0L)5YG7 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 z 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 z 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

ON#j&PVMwH&1q?WQ3lf;=+{!C_-$Yo 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

^n;1blAvRddfHsIr}c&rPF zh*u2)#EBqzh53{HeXwN2*9lqo1dtxoEv+aEJBfmyilp&@UffHYfoaC$68aiQMR|aV zMgy$5j_UKChuk!)KJR0qiq{xZ-gsAJ?~$GKDPYv|{i0xe#%MZQ6IC4FjL58%n4^hqb64Lkd7G&rE()K{>Di?Y=K_k|~s}!8cgr8GQ z?aw#mTv=&yb$s_KZG?Cy%0`Jjc@gR0V6kFwB{1bTa5uqbl1F%{R z`wT-*W+~;S6dFKu=c=*`4Th@D#9ky3D_)ab z-tAw75Q)e~0z3lN8}z@E8F5Cjp|2r5^j7JaG4h;ACWdWMx~GeT2?8o3RqxQFELQwKPT{!)y`Cx*=g;uL?l(8#)bZqL3v~pZFYM0_VP095A@H}4q$WJ z*yu$7>i44XBp(u6__97VT0@KWlGdmezi#Qoj1j;LakH7+fwhM&4Xj+pIX79KW5obSl1`@Exmz|??ER8K{r zXi&EBN+rk~r=SkQjW(LcHJ>G7TO*4h)=IxEbX z*j|VhKR+netX&6@U7{B$AW*Vo9)${>aQm(JpY(&_C%?#^f&`A>jz8VyIFLvh>R5sf z;j7`uAwev+2;rKXMTtV!5r|yyqG?gh&w+2uyEpZe57GYOWy?v`Ctur+$qpqC5Y1HW z4p$psV~x(me<_Fv+5F=Cbh#}LOs2*LOAYWv`UX3WU!3Ab^be=#=$e8yFDNH<+fWJ` zu}8le_$s-loU-EG5?ooFp@%|3w_G>#SN$CVZaR^&&Qj?0M$_2gAd`@1H6_DnUYM_X#yU=gs-CV znsOdiC#l`0S4Ld)zc&DNbaccHe1|;h|EU`5p zNGIdLJ-zd|glA$u^CjCff1uyNz5l*@gHOxOv#UkkSkI~EqD?QFTap>%tWk;(o9#-m z=c$s>^Hh?$C7Mpk&Px}UfI3Qdl~=}d@$sux9N~9<23g;Fd=oRbY^fzi`Mi#90-o0M z5)<&;0Y>TkewP;ooNj!a)deCCU%;EnP*?tM;;dWu`rfj9NwtHNy+*RZJE1~V_G&go ziUIS{i%Dw5LQzAVd0qg<%9fapO=n_b2`>dVJ2}m9{nuCGko-?8eL^=J1_qr?{9n`1 z6gYZmKEx2~0}t)d(%}~gLJ@OZ^6=lR;OenuPa%#Tg8Nd{z?E!#!U69W^DQVjw~zvc za=#K2VKQPc-n;~`d&hvwU8ko!@E7)6I7c=GHXQUhzqNPP)Lg7lAX?FxbT|@%DUw)U z00w?E+BBzkPCSChI|u*s;%bv*rNx2!^nuVTK7QJX5*35P5z`VU3@BaS7S<&1sr6MU znVao{AY;@246J%Tvge-}w|y(}&OO>-Z63;uj_Lj00?J@frT7|sR;yJK(fk2epa>vo z#dWa@9>nKuldCOrZtSuqf?{$-ENL&*0530R#rk!HDjGIm3dyCDL(wXfSj=WtXr5^y zW0-5g>j2(U(cPI%te>F@2^z3!=70J554B09D9Y3id076s8jH#GPH($n%t3&w33Tp^ zwN{ANYNZHzme{L%ggiv!2oo^^Bz| zmy#&O764NW`;T$m8+UwoZfTPFO~hQtt9wP1sIoa~Lxt`GwVd&}LYoRhO0n T}UB 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 z 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/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 z�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

NO&Jf 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
)$TmBj-wY0L)5YG7 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
([\s\S]*?)<\/pre>/);
+  if (!match || !match[1]) {
+    throw new Error('Could not find JSON in HTML response');
+  }
+  return JSON.parse(match[1].trim());
+};
+
+describe('welcome-routes', () => {
+  let app: Express;
+
+  beforeEach(() => {
+    app = express();
+    app.engine('html', ejs.renderFile);
+    app.set('views', path.resolve(__dirname, '../views'));
+    app.set('view engine', 'html');
+  });
+
+  afterEach(() => {
+    sinon.restore();
+  });
+
+  describe('echo', () => {
+    it('should render HTML template', async () => {
+      app.get('/test', echo);
+
+      const response = await request(app).get('/test').expect(200).expect('Content-Type', /text\/html/);
+
+      expect(response.text).to.include('Welcome to your Environment');
+
+      const json = parseJsonFromHtml(response.text);
+      expect(json).to.have.property('method', 'GET');
+      expect(json).to.have.property('path', '/test');
+      expect(json).to.have.property('protocol');
+      expect(json).to.have.property('query');
+      expect(json).to.have.property('headers');
+      expect(json).to.have.property('ip');
+      expect(json).to.have.property('env');
+    });
+
+    it('should include query parameters in response', async () => {
+      app.get('/test', echo);
+
+      const response = await request(app).get('/test?foo=bar&baz=qux');
+
+      const json = parseJsonFromHtml(response.text);
+      expect(json.query).to.deep.equal({
+        foo: 'bar',
+        baz: 'qux',
+      });
+    });
+
+    it('should include request headers in response', async () => {
+      app.get('/test', echo);
+
+      const response = await request(app).get('/test').set('Custom-Header', 'custom-value');
+
+      const json = parseJsonFromHtml(response.text);
+      expect(json.headers).to.have.property('custom-header');
+      expect(json.headers['custom-header']).to.equal('custom-value');
+    });
+  });
+
+  describe('echo edge cases', () => {
+    it('should handle IPv6 addresses', async () => {
+      app.get('/test', echo);
+
+      const response = await request(app).get('/test');
+
+      const json = parseJsonFromHtml(response.text);
+      expect(json.ip).to.not.be.undefined;
+    });
+  });
+});
diff --git a/packages/mrt-welcome-app/src/utils/welcome-routes.ts b/packages/mrt-welcome-app/src/utils/welcome-routes.ts
new file mode 100644
index 000000000..396e3838e
--- /dev/null
+++ b/packages/mrt-welcome-app/src/utils/welcome-routes.ts
@@ -0,0 +1,76 @@
+/*
+ * Copyright (c) 2025, Salesforce, Inc.
+ * SPDX-License-Identifier: Apache-2
+ * For full license text, see the license.txt file in the repo root or http://www.apache.org/licenses/LICENSE-2.0
+ */
+import type {Request, Response} from 'express';
+
+const ENVS_TO_EXPOSE = [
+  'aws_execution_env',
+  'aws_lambda_function_memory_size',
+  'aws_lambda_function_name',
+  'aws_lambda_function_version',
+  'aws_lambda_log_group_name',
+  'aws_lambda_log_stream_name',
+  'aws_region',
+  'bundle_id',
+  // These "customer" defined environment variables are set by the Manager
+  // and expected by the MRT smoke test suite
+  'customer_*',
+  'deploy_id',
+  'deploy_target',
+  'external_domain_name',
+  'mobify_property_id',
+  'mrt_allow_cookies',
+  'node_env',
+  'node_options',
+  'tz',
+];
+
+// eslint-disable-next-line @typescript-eslint/no-explicit-any
+const sortObjectKeys = (o: Record): Record => {
+  return Object.assign(
+    {},
+    ...Object.keys(o)
+      .sort()
+      .map((k) => ({[k]: o[k]})),
+  );
+};
+
+// eslint-disable-next-line @typescript-eslint/no-explicit-any
+const filterAndSortObjectKeys = (o: Record, whitelist: string[]): Record =>
+  o &&
+  Object.keys(o)
+    .filter((key) => {
+      const keylc = key.toLowerCase().trim();
+      return whitelist.some(
+        (pattern) =>
+          (pattern.endsWith('*') && keylc.startsWith(pattern.slice(0, -1))) || pattern === keylc,
+      );
+    })
+    .sort()
+    // eslint-disable-next-line @typescript-eslint/no-explicit-any
+    .reduce((acc: Record, key) => {
+      acc[key] = o[key];
+      return acc;
+    }, {});
+
+// eslint-disable-next-line @typescript-eslint/no-explicit-any
+const jsonFromRequest = (req: Request, additional_info?: any): any => {
+  return {
+    protocol: req.protocol,
+    method: req.method,
+    path: req.path,
+    query: req.query,
+    body: req.body,
+    headers: sortObjectKeys(req.headers),
+    ip: req.ip,
+    env: filterAndSortObjectKeys(process.env, ENVS_TO_EXPOSE),
+    ...(typeof additional_info === 'object' ? {additional_info} : {}),
+  };
+};
+
+export const echo = (req: Request, res: Response) => {
+  const content = jsonFromRequest(req);
+  res.render('layout', {json_content: content});
+};
diff --git a/packages/mrt-welcome-app/src/views/layout.html b/packages/mrt-welcome-app/src/views/layout.html
new file mode 100644
index 000000000..7ff6803d9
--- /dev/null
+++ b/packages/mrt-welcome-app/src/views/layout.html
@@ -0,0 +1,121 @@
+
+
+  
+    
+    
+    
+  
+  
+    
+    
+  
+
diff --git a/packages/mrt-welcome-app/test/tsconfig.json b/packages/mrt-welcome-app/test/tsconfig.json
new file mode 100644
index 000000000..4a377fa2d
--- /dev/null
+++ b/packages/mrt-welcome-app/test/tsconfig.json
@@ -0,0 +1,12 @@
+{
+  "extends": "../tsconfig.json",
+  "compilerOptions": {
+    "noEmit": true,
+    "types": ["node", "mocha", "chai"],
+    "paths": {
+      "@salesforce/mrt-utilities": ["../../mrt-utilities/src/index.ts"],
+      "@salesforce/mrt-utilities/streaming": ["../../mrt-utilities/src/streaming/index.ts"]
+    }
+  },
+  "include": ["./**/*", "../src/**/*"]
+}
diff --git a/packages/mrt-welcome-app/tsconfig.json b/packages/mrt-welcome-app/tsconfig.json
new file mode 100644
index 000000000..5c734139f
--- /dev/null
+++ b/packages/mrt-welcome-app/tsconfig.json
@@ -0,0 +1,15 @@
+{
+  "extends": "@salesforce/dev-config/tsconfig-strict-esm",
+  "compilerOptions": {
+    "skipLibCheck": true,
+    "esModuleInterop": true,
+    "forceConsistentCasingInFileNames": true,
+    "module": "ESNext",
+    "verbatimModuleSyntax": false,
+    "moduleResolution": "bundler",
+    "allowImportingTsExtensions": false,
+    "resolveJsonModule": true,
+    "allowJs": true
+  },
+  "include": ["src/**/*"]
+}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index f2ddf6368..0197a6555 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -608,6 +608,136 @@ importers:
         specifier: 'catalog:'
         version: 8.54.0(eslint@9.39.1)(typescript@5.9.3)
 
+  packages/mrt-reference-app:
+    dependencies:
+      '@aws-sdk/client-cloudwatch-logs':
+        specifier: 3.952.0
+        version: 3.952.0
+      '@aws-sdk/client-dynamodb':
+        specifier: 3.980.0
+        version: 3.980.0
+      '@aws-sdk/client-lambda':
+        specifier: 3.952.0
+        version: 3.952.0
+      '@aws-sdk/client-s3':
+        specifier: 3.952.0
+        version: 3.952.0
+      '@aws-sdk/client-secrets-manager':
+        specifier: 3.1004.0
+        version: 3.1004.0
+      '@aws-sdk/lib-dynamodb':
+        specifier: 3.980.0
+        version: 3.980.0(@aws-sdk/client-dynamodb@3.980.0)
+      '@h4ad/serverless-adapter':
+        specifier: 4.4.0
+        version: 4.4.0(@types/aws-lambda@8.10.160)(@types/body-parser@1.19.6)(@types/cors@2.8.19)(@types/express@5.0.4)(body-parser@2.2.1)(cors@2.8.5)(express@5.1.0)(http-errors@2.0.1)
+      '@salesforce/mrt-utilities':
+        specifier: workspace:*
+        version: link:../mrt-utilities
+      compressible:
+        specifier: 2.0.18
+        version: 2.0.18
+      express:
+        specifier: 5.1.0
+        version: 5.1.0
+      express-basic-auth:
+        specifier: 1.2.1
+        version: 1.2.1
+      negotiator:
+        specifier: 1.0.0
+        version: 1.0.0
+      winston:
+        specifier: 3.19.0
+        version: 3.19.0
+    devDependencies:
+      '@salesforce/b2c-cli':
+        specifier: workspace:*
+        version: link:../b2c-cli
+      '@salesforce/dev-config':
+        specifier: 'catalog:'
+        version: 4.3.2
+      '@serverless/event-mocks':
+        specifier: 1.1.1
+        version: 1.1.1
+      '@smithy/smithy-client':
+        specifier: 4.9.1
+        version: 4.9.1
+      '@types/aws-lambda':
+        specifier: 8.10.160
+        version: 8.10.160
+      '@types/chai':
+        specifier: 'catalog:'
+        version: 4.3.20
+      '@types/compressible':
+        specifier: 2.0.3
+        version: 2.0.3
+      '@types/express':
+        specifier: 5.0.4
+        version: 5.0.4
+      '@types/mocha':
+        specifier: 'catalog:'
+        version: 10.0.10
+      '@types/negotiator':
+        specifier: 0.6.4
+        version: 0.6.4
+      '@types/node':
+        specifier: 'catalog:'
+        version: 22.19.0
+      '@types/sinon':
+        specifier: 'catalog:'
+        version: 21.0.0
+      '@types/supertest':
+        specifier: 6.0.3
+        version: 6.0.3
+      aws-sdk-client-mock:
+        specifier: 4.1.0
+        version: 4.1.0
+      c8:
+        specifier: 'catalog:'
+        version: 11.0.0
+      chai:
+        specifier: 'catalog:'
+        version: 4.5.0
+      esbuild:
+        specifier: 0.25.0
+        version: 0.25.0
+      eslint:
+        specifier: 'catalog:'
+        version: 9.39.1
+      eslint-config-prettier:
+        specifier: 'catalog:'
+        version: 10.1.8(eslint@9.39.1)
+      eslint-plugin-header:
+        specifier: 'catalog:'
+        version: 3.1.1(eslint@9.39.1)
+      eslint-plugin-prettier:
+        specifier: 'catalog:'
+        version: 5.5.4(eslint-config-prettier@10.1.8(eslint@9.39.1))(eslint@9.39.1)(prettier@3.6.2)
+      mocha:
+        specifier: 'catalog:'
+        version: 10.8.2
+      prettier:
+        specifier: 'catalog:'
+        version: 3.6.2
+      shx:
+        specifier: 'catalog:'
+        version: 0.3.4
+      sinon:
+        specifier: 'catalog:'
+        version: 21.0.1
+      supertest:
+        specifier: 7.1.4
+        version: 7.1.4
+      tsx:
+        specifier: 'catalog:'
+        version: 4.20.6
+      typescript:
+        specifier: 'catalog:'
+        version: 5.9.3
+      typescript-eslint:
+        specifier: 'catalog:'
+        version: 8.54.0(eslint@9.39.1)(typescript@5.9.3)
+
   packages/mrt-utilities:
     dependencies:
       '@aws-sdk/client-cloudwatch':
@@ -729,6 +859,100 @@ importers:
         specifier: 'catalog:'
         version: 8.54.0(eslint@9.39.1)(typescript@5.9.3)
 
+  packages/mrt-welcome-app:
+    dependencies:
+      '@h4ad/serverless-adapter':
+        specifier: 4.4.0
+        version: 4.4.0(@types/aws-lambda@8.10.160)(@types/body-parser@1.19.6)(@types/cors@2.8.19)(@types/express@5.0.4)(body-parser@2.2.1)(cors@2.8.5)(express@5.1.0)(http-errors@2.0.1)
+      '@salesforce/mrt-utilities':
+        specifier: workspace:*
+        version: link:../mrt-utilities
+      ejs:
+        specifier: 3.1.10
+        version: 3.1.10
+      express:
+        specifier: 5.1.0
+        version: 5.1.0
+    devDependencies:
+      '@salesforce/b2c-cli':
+        specifier: workspace:*
+        version: link:../b2c-cli
+      '@salesforce/dev-config':
+        specifier: 'catalog:'
+        version: 4.3.2
+      '@serverless/event-mocks':
+        specifier: 1.1.1
+        version: 1.1.1
+      '@types/aws-lambda':
+        specifier: 8.10.160
+        version: 8.10.160
+      '@types/chai':
+        specifier: 'catalog:'
+        version: 4.3.20
+      '@types/ejs':
+        specifier: 3.1.5
+        version: 3.1.5
+      '@types/express':
+        specifier: 5.0.4
+        version: 5.0.4
+      '@types/mocha':
+        specifier: 'catalog:'
+        version: 10.0.10
+      '@types/node':
+        specifier: 'catalog:'
+        version: 22.19.0
+      '@types/sinon':
+        specifier: 'catalog:'
+        version: 21.0.0
+      '@types/supertest':
+        specifier: 6.0.3
+        version: 6.0.3
+      c8:
+        specifier: 'catalog:'
+        version: 11.0.0
+      chai:
+        specifier: 'catalog:'
+        version: 4.5.0
+      esbuild:
+        specifier: 0.25.0
+        version: 0.25.0
+      eslint:
+        specifier: 'catalog:'
+        version: 9.39.1
+      eslint-config-prettier:
+        specifier: 'catalog:'
+        version: 10.1.8(eslint@9.39.1)
+      eslint-plugin-header:
+        specifier: 'catalog:'
+        version: 3.1.1(eslint@9.39.1)
+      eslint-plugin-prettier:
+        specifier: 'catalog:'
+        version: 5.5.4(eslint-config-prettier@10.1.8(eslint@9.39.1))(eslint@9.39.1)(prettier@3.6.2)
+      mocha:
+        specifier: 'catalog:'
+        version: 10.8.2
+      prettier:
+        specifier: 'catalog:'
+        version: 3.6.2
+      shx:
+        specifier: 'catalog:'
+        version: 0.3.4
+      sinon:
+        specifier: 'catalog:'
+        version: 21.0.1
+      supertest:
+        specifier: 7.1.4
+        version: 7.1.4
+      tsx:
+        specifier: 'catalog:'
+        version: 4.20.6
+      typescript:
+        specifier: 'catalog:'
+        version: 5.9.3
+      typescript-eslint:
+        specifier: 'catalog:'
+        version: 8.54.0(eslint@9.39.1)(typescript@5.9.3)
+
   skills: {}
 
 packages:
@@ -763,6 +987,10 @@ packages:
     resolution: {integrity: sha512-JcgMsxlAfl+Hh/z4+2uDqwg6xYuLneHblhHaD1WTfOiNpWLstv4t6JJLw01xiIgC510wj0OeY84mhZor7E2QZA==}
     engines: {node: '>=18.0.0'}
 
+  '@aws-sdk/client-cloudwatch-logs@3.952.0':
+    resolution: {integrity: sha512-oXqHaHfP31puNMzPwrstKjGwL3nArBq3aoneFLMYbS7fbVe8XQCmxzWg4KglkEw6DBgeUOYNFuXwpuKo4ogTDA==}
+    engines: {node: '>=18.0.0'}
+
   '@aws-sdk/client-cloudwatch@3.952.0':
     resolution: {integrity: sha512-vKR+AzSus8SZBR1wvpzqMZwoLlyA/UVZXPtSQLBP/CcTRKuJSMvIvMXN88U4bPseROrN83UoSQdkmVo93+qQJg==}
     engines: {node: '>=18.0.0'}
@@ -771,10 +999,22 @@ packages:
     resolution: {integrity: sha512-1rGhAx4cHZy3pMB3R3r84qMT5WEvQ6ajr2UksnD48fjQxwaUcpI6NsPvU5j/5BI5LqGiUO6ThOrMwSMm95twQA==}
     engines: {node: '>=20.0.0'}
 
+  '@aws-sdk/client-lambda@3.952.0':
+    resolution: {integrity: sha512-F0cK/RX1qs9NLZctGokrKe6AlK4YgiHqYaYBo32d+xT+EZ4EpNuOIWNZ4Rgq+78tG+Y9DT98Nwwl9lejYQtrog==}
+    engines: {node: '>=18.0.0'}
+
   '@aws-sdk/client-s3@3.929.0':
     resolution: {integrity: sha512-M6G+1CBTowN+m0Jrww5/AXMqlk4nIJqwaa/vOw+EbvLD7ROpBs6bStSai9esP9PkIVW6KMu4zCIgHzKhGa3R2A==}
     engines: {node: '>=18.0.0'}
 
+  '@aws-sdk/client-s3@3.952.0':
+    resolution: {integrity: sha512-5EFrOpLL1f29eepx6lHYRlwk5Eeo0PVEMROZQmGAGo/7avjWGPwfgkDdfgP2JCIusiKUG6sHN4FOjd86Q7htLw==}
+    engines: {node: '>=18.0.0'}
+
+  '@aws-sdk/client-secrets-manager@3.1004.0':
+    resolution: {integrity: sha512-a9rlezmPNeE08ijD5p0o5bzIxeQCSVWxHfF5Me9ywhjF8fc+/1HP7EQpeITMUE7X2SU+Ac9QibKfiGnPDY58Rw==}
+    engines: {node: '>=20.0.0'}
+
   '@aws-sdk/client-sso@3.929.0':
     resolution: {integrity: sha512-CE1T7PvN2MDRCw96BTUz2Zcnb6Lae3Dl4w3TPB5auBv2sAiIPbQegFUwT2C8teMDGCNXyndzoTvAd4wmO9AcpA==}
     engines: {node: '>=18.0.0'}
@@ -799,6 +1039,10 @@ packages:
     resolution: {integrity: sha512-hFiezao0lCEddPhSQEF6vCu+TepUN3edKxWYbswMoH87XpUvHJmFVX5+zttj4qi33saGiuOaJciswWcN6YSA9g==}
     engines: {node: '>=20.0.0'}
 
+  '@aws-sdk/core@3.974.8':
+    resolution: {integrity: sha512-njR2qoG6ZuB0kvAS2FyICsFZJ6gmCcf2X/7JcD14sUvGDm26wiZ5BrA6LOiUxKFEF+IVe7kdroxyE00YlkiYsw==}
+    engines: {node: '>=20.0.0'}
+
   '@aws-sdk/credential-provider-env@3.928.0':
     resolution: {integrity: sha512-tB8F9Ti0/NFyFVQX8UQtgRik88evtHpyT6WfXOB4bAY6lEnEHA0ubJZmk9y+aUeoE+OsGLx70dC3JUsiiCPJkQ==}
     engines: {node: '>=18.0.0'}
@@ -811,6 +1055,10 @@ packages:
     resolution: {integrity: sha512-YTWjM78Wiqix0Jv/anbq7+COFOFIBBMLZ+JsLKGwbTZNJ2DG4JNBnLVJAWylPOHwurMws9157pqzU8ODrpBOow==}
     engines: {node: '>=20.0.0'}
 
+  '@aws-sdk/credential-provider-env@3.972.34':
+    resolution: {integrity: sha512-XT0jtf8Fw9JE6ppsQeoNnZRiG+jqRixMT1v1ZR17G60UvVdsQmTG8nbEyHuEPfMxDXEhfdARaM/XiEhca4lGHQ==}
+    engines: {node: '>=20.0.0'}
+
   '@aws-sdk/credential-provider-http@3.928.0':
     resolution: {integrity: sha512-67ynC/8UW9Y8Gn1ZZtC3OgcQDGWrJelHmkbgpmmxYUrzVhp+NINtz3wiTzrrBFhPH/8Uy6BxvhMfXhn0ptcMEQ==}
     engines: {node: '>=18.0.0'}
@@ -823,6 +1071,10 @@ packages:
     resolution: {integrity: sha512-adDRE3iFrgJJ7XhRHkb6RdFDMrA5x64WAWxygI3F6wND+3v5qQ4Uks12vsnEZgduU/+JQBgFB6L4vfwUS+rpBQ==}
     engines: {node: '>=20.0.0'}
 
+  '@aws-sdk/credential-provider-http@3.972.36':
+    resolution: {integrity: sha512-DPoGWfy7J7RKxvbf5kOKIGQkD2ek3dbKgzKIGrnLuvZBz5myU+Im/H6pmc14QcnFbqHMqxvtWSgRDSJW3qXLQg==}
+    engines: {node: '>=20.0.0'}
+
   '@aws-sdk/credential-provider-ini@3.929.0':
     resolution: {integrity: sha512-XIzWsJUYeS/DjggHFB53sGGjXdlN/BA6x+Y/JvLbpdkGD2yLISU34/cDPbK/O8BAQCRTCQ69VPa/1AdNgZZRQw==}
     engines: {node: '>=18.0.0'}
@@ -835,6 +1087,10 @@ packages:
     resolution: {integrity: sha512-uAXUMfnQJxJ25qeiX4e3Z36NTm1XT7woajV8BXx2yAUDD4jF6kubqnLEcqtiPzHANxmhta2SXm5PbDwSdhThBw==}
     engines: {node: '>=20.0.0'}
 
+  '@aws-sdk/credential-provider-ini@3.972.38':
+    resolution: {integrity: sha512-oDzUBu2MGJFgoar05sPMCwSrhw44ASyccrHzj66vO69OZqi7I6hZZxXfuPLC8OCzW7C+sU+bI73XHij41yekgQ==}
+    engines: {node: '>=20.0.0'}
+
   '@aws-sdk/credential-provider-login@3.952.0':
     resolution: {integrity: sha512-jL9zc+e+7sZeJrHzYKK9GOjl1Ktinh0ORU3cM2uRBi7fuH/0zV9pdMN8PQnGXz0i4tJaKcZ1lrE4V0V6LB9NQg==}
     engines: {node: '>=18.0.0'}
@@ -843,6 +1099,10 @@ packages:
     resolution: {integrity: sha512-7Me+/EkY3kQC1nehBjb9ryc558N+a8R4Dg3rSV3zpiB7iQtvXh4gU3rV14h/dIbn2/VkK9sh55YdXamSjfdb/Q==}
     engines: {node: '>=20.0.0'}
 
+  '@aws-sdk/credential-provider-login@3.972.38':
+    resolution: {integrity: sha512-g1NosS8qe4OF++G2UFCM5ovSkgipC7YYor5KCWatG0UoMSO5YFj9C8muePlyVmOBV/WTI16Jo3/s1NUo/o1Bww==}
+    engines: {node: '>=20.0.0'}
+
   '@aws-sdk/credential-provider-node@3.929.0':
     resolution: {integrity: sha512-GhNZEacpa7fh8GNggshm5S93UK25bCV5aDK8c2vfe7Y3OxBiL89Ox5GUKCu0xIOqiBdfYkI9wvWCFsQRRn7Bjw==}
     engines: {node: '>=18.0.0'}
@@ -855,6 +1115,10 @@ packages:
     resolution: {integrity: sha512-maPmjL7nOT93a1QdSDzdF/qLbI+jit3oslKp7g+pTbASewkSYax7FwboETdKRxufPfCdrsRzMW2pIJ+QA8e+Bg==}
     engines: {node: '>=20.0.0'}
 
+  '@aws-sdk/credential-provider-node@3.972.39':
+    resolution: {integrity: sha512-HEswDQyxUtadoZ/bJsPPENHg7R0Lzym5LuMksJeHvqhCOpP+rtkDLKI4/ZChH4w3cf5kG8n6bZuI8PzajoiqMg==}
+    engines: {node: '>=20.0.0'}
+
   '@aws-sdk/credential-provider-process@3.928.0':
     resolution: {integrity: sha512-XL0juran8yhqwn0mreV+NJeHJOkcRBaExsvVn9fXWW37A4gLh4esSJxM2KbSNh0t+/Bk3ehBI5sL9xad+yRDuw==}
     engines: {node: '>=18.0.0'}
@@ -867,6 +1131,10 @@ packages:
     resolution: {integrity: sha512-tk/XxFhk37rKviArOIYbJ8crXiN3Mzn7Tb147jH51JTweNgUOwmqN+s027uqc3d8UeAyUcPUH8Bmfj86SzOhBQ==}
     engines: {node: '>=20.0.0'}
 
+  '@aws-sdk/credential-provider-process@3.972.34':
+    resolution: {integrity: sha512-T3IFs4EVmVi1dVN5RciFnklCANSzvrQd/VuHY9ThHSQmYkTogjcGkoJEr+oNUPQZnso52183088NqysMPji1/Q==}
+    engines: {node: '>=20.0.0'}
+
   '@aws-sdk/credential-provider-sso@3.929.0':
     resolution: {integrity: sha512-aADe6cLo4+9MUOe0GnC5kUn8IduEKnTxqBlsciZOplU0/0+Rdp9rRh/e9ZBskeIXZ33eO2HG+KDAf1lvtPT7dA==}
     engines: {node: '>=18.0.0'}
@@ -879,6 +1147,10 @@ packages:
     resolution: {integrity: sha512-tIz/O0yV1s77/FjMTWvvzU2vsztap2POlbetheOyRXq+E3PQtLOzCYopasXP+aeO1oerw3PFd9eycLbiwpgZZA==}
     engines: {node: '>=20.0.0'}
 
+  '@aws-sdk/credential-provider-sso@3.972.38':
+    resolution: {integrity: sha512-5ZxG+t0+3Q3QPh8KEjX6syskhgNf7I0MN7oGioTf6Lm1NTjfP7sIcYGNsthXC2qR8vcD3edNZwCr2ovfSSWuRA==}
+    engines: {node: '>=20.0.0'}
+
   '@aws-sdk/credential-provider-web-identity@3.929.0':
     resolution: {integrity: sha512-L18JtW28xUZVTRHblgqZ8QTVGQfxpMLIuVYgQXrVWiY9Iz9EF4XrfZo3ywCAgqfgLi5pgg3fCxx/pe7uiMOs2w==}
     engines: {node: '>=18.0.0'}
@@ -891,6 +1163,10 @@ packages:
     resolution: {integrity: sha512-HFlIVx8mm+Au7hkO7Hq/ZkPomjTt26iRj8uWZqEE1cJWMZ2NKvieNiT1ngzWt60Bc2uD51LqQUqiwr5JDgS4iQ==}
     engines: {node: '>=20.0.0'}
 
+  '@aws-sdk/credential-provider-web-identity@3.972.38':
+    resolution: {integrity: sha512-lYHFF30DGI20jZcYX8cm6Ns0V7f1dDN6g/MBDLTyD/5iw+bXs3yBr2iAiHDkx4RFU5JgsnZvCHYKiRVPRdmOgw==}
+    engines: {node: '>=20.0.0'}
+
   '@aws-sdk/dynamodb-codec@3.972.13':
     resolution: {integrity: sha512-dPKkCMX5BNnM4SRvX89s0SVxzlnujlLXZmZ9wJei2O6HT+5OQC7QvdfYv/odaTVc/s6MWv4FuoP4K9TTdTB0eg==}
     engines: {node: '>=20.0.0'}
@@ -909,6 +1185,10 @@ packages:
     resolution: {integrity: sha512-Dpr2YeOaLFqt3q1hocwBesynE3x8/dXZqXZRuzSX/9/VQcwYBFChHAm4mTAl4zuvArtDbLrwzWSxmOWYZGtq5w==}
     engines: {node: '>=18.0.0'}
 
+  '@aws-sdk/middleware-bucket-endpoint@3.936.0':
+    resolution: {integrity: sha512-XLSVVfAorUxZh6dzF+HTOp4R1B5EQcdpGcPliWr0KUj2jukgjZEcqbBmjyMF/p9bmyQsONX80iURF1HLAlW0qg==}
+    engines: {node: '>=18.0.0'}
+
   '@aws-sdk/middleware-endpoint-discovery@3.972.3':
     resolution: {integrity: sha512-xAxA8/TOygQmMrzcw9CrlpTHCGWSG/lvzrHCySfSZpDN4/yVSfXO+gUwW9WxeskBmuv9IIFATOVpzc9EzfTZ0Q==}
     engines: {node: '>=20.0.0'}
@@ -917,10 +1197,18 @@ packages:
     resolution: {integrity: sha512-xmnLWMtmHJHJBupSWMUEW1gyxuRIeQ1Ov2xa8Tqq77fPr4Ft2AluEwiDMaZIMHoAvpxWKEEt9Si59Li7GIA+bQ==}
     engines: {node: '>=18.0.0'}
 
+  '@aws-sdk/middleware-expect-continue@3.936.0':
+    resolution: {integrity: sha512-Eb4ELAC23bEQLJmUMYnPWcjD3FZIsmz2svDiXEcxRkQU9r7NRID7pM7C5NPH94wOfiCk0b2Y8rVyFXW0lGQwbA==}
+    engines: {node: '>=18.0.0'}
+
   '@aws-sdk/middleware-flexible-checksums@3.928.0':
     resolution: {integrity: sha512-9+aCRt7teItSIMbnGvOY+FhtJnW2ZBUbfD+ug29a/ZbobDfTwmtrmtgEIWdXryFaRbT03HHfaJ3a++lTw4osuw==}
     engines: {node: '>=18.0.0'}
 
+  '@aws-sdk/middleware-flexible-checksums@3.947.0':
+    resolution: {integrity: sha512-kXXxS2raNESNO+zR0L4YInVjhcGGNI2Mx0AE1ThRhDkAt2se3a+rGf9equ9YvOqA1m8Jl/GSI8cXYvSxXmS9Ag==}
+    engines: {node: '>=18.0.0'}
+
   '@aws-sdk/middleware-host-header@3.922.0':
     resolution: {integrity: sha512-HPquFgBnq/KqKRVkiuCt97PmWbKtxQ5iUNLEc6FIviqOoZTmaYG3EDsIbuFBz9C4RHJU4FKLmHL2bL3FEId6AA==}
     engines: {node: '>=18.0.0'}
@@ -929,6 +1217,10 @@ packages:
     resolution: {integrity: sha512-tAaObaAnsP1XnLGndfkGWFuzrJYuk9W0b/nLvol66t8FZExIAf/WdkT2NNAWOYxljVs++oHnyHBCxIlaHrzSiw==}
     engines: {node: '>=18.0.0'}
 
+  '@aws-sdk/middleware-host-header@3.972.10':
+    resolution: {integrity: sha512-IJSsIMeVQ8MMCPbuh1AbltkFhLBLXn7aejzfX5YKT/VLDHn++Dcz8886tXckE+wQssyPUhaXrJhdakO2VilRhg==}
+    engines: {node: '>=20.0.0'}
+
   '@aws-sdk/middleware-host-header@3.972.3':
     resolution: {integrity: sha512-aknPTb2M+G3s+0qLCx4Li/qGZH8IIYjugHMv15JTYMe6mgZO8VBpYgeGYsNMGCqCZOcWzuf900jFBG5bopfzmA==}
     engines: {node: '>=20.0.0'}
@@ -937,6 +1229,10 @@ packages:
     resolution: {integrity: sha512-T4iqd7WQ2DDjCH/0s50mnhdoX+IJns83ZE+3zj9IDlpU0N2aq8R91IG890qTfYkUEdP9yRm0xir/CNed+v6Dew==}
     engines: {node: '>=18.0.0'}
 
+  '@aws-sdk/middleware-location-constraint@3.936.0':
+    resolution: {integrity: sha512-SCMPenDtQMd9o5da9JzkHz838w3327iqXk3cbNnXWqnNRx6unyW8FL0DZ84gIY12kAyVHz5WEqlWuekc15ehfw==}
+    engines: {node: '>=18.0.0'}
+
   '@aws-sdk/middleware-logger@3.922.0':
     resolution: {integrity: sha512-AkvYO6b80FBm5/kk2E636zNNcNgjztNNUxpqVx+huyGn9ZqGTzS4kLqW2hO6CBe5APzVtPCtiQsXL24nzuOlAg==}
     engines: {node: '>=18.0.0'}
@@ -945,6 +1241,10 @@ packages:
     resolution: {integrity: sha512-aPSJ12d3a3Ea5nyEnLbijCaaYJT2QjQ9iW+zGh5QcZYXmOGWbKVyPSxmVOboZQG+c1M8t6d2O7tqrwzIq8L8qw==}
     engines: {node: '>=18.0.0'}
 
+  '@aws-sdk/middleware-logger@3.972.10':
+    resolution: {integrity: sha512-OOuGvvz1Dm20SjZo5oEBePFqxt5nf8AwkNDSyUHvD9/bfNASmstcYxFAHUowy4n6Io7mWUZ04JURZwSBvyQanQ==}
+    engines: {node: '>=20.0.0'}
+
   '@aws-sdk/middleware-logger@3.972.3':
     resolution: {integrity: sha512-Ftg09xNNRqaz9QNzlfdQWfpqMCJbsQdnZVJP55jfhbKi1+FTWxGuvfPoBhDHIovqWKjqbuiew3HuhxbJ0+OjgA==}
     engines: {node: '>=20.0.0'}
@@ -957,6 +1257,10 @@ packages:
     resolution: {integrity: sha512-Qa8Zj+EAqA0VlAVvxpRnpBpIWJI9KUwaioY1vkeNVwXPlNaz9y9zCKVM9iU9OZ5HXpoUg6TnhATAHXHAE8+QsQ==}
     engines: {node: '>=18.0.0'}
 
+  '@aws-sdk/middleware-recursion-detection@3.972.11':
+    resolution: {integrity: sha512-+zz6f79Kj9V5qFK2P+D8Ehjnw4AhphAlCAsPjUqEcInA9umtSSKMrHbSagEeOIsDNuvVrH98bjRHcyQukTrhaQ==}
+    engines: {node: '>=20.0.0'}
+
   '@aws-sdk/middleware-recursion-detection@3.972.3':
     resolution: {integrity: sha512-PY57QhzNuXHnwbJgbWYTrqIDHYSeOlhfYERTAuc16LKZpTZRJUjzBFokp9hF7u1fuGeE3D70ERXzdbMBOqQz7Q==}
     engines: {node: '>=20.0.0'}
@@ -965,10 +1269,22 @@ packages:
     resolution: {integrity: sha512-LTkjS6cpJ2PEtsottTKq7JxZV0oH+QJ12P/dGNPZL4URayjEMBVR/dp4zh835X/FPXzijga3sdotlIKzuFy9FA==}
     engines: {node: '>=18.0.0'}
 
+  '@aws-sdk/middleware-sdk-s3@3.947.0':
+    resolution: {integrity: sha512-DS2tm5YBKhPW2PthrRBDr6eufChbwXe0NjtTZcYDfUCXf0OR+W6cIqyKguwHMJ+IyYdey30AfVw9/Lb5KB8U8A==}
+    engines: {node: '>=18.0.0'}
+
+  '@aws-sdk/middleware-sdk-s3@3.972.37':
+    resolution: {integrity: sha512-Km7M+i8DrLArVzrid1gfxeGhYHBd3uxvE77g0s5a52zPSVosxzQBnJ0gwWb6NIp/DOk8gsBMhi7V+cpJG0ndTA==}
+    engines: {node: '>=20.0.0'}
+
   '@aws-sdk/middleware-ssec@3.922.0':
     resolution: {integrity: sha512-eHvSJZTSRJO+/tjjGD6ocnPc8q9o3m26+qbwQTu/4V6yOJQ1q+xkDZNqwJQphL+CodYaQ7uljp8g1Ji/AN3D9w==}
     engines: {node: '>=18.0.0'}
 
+  '@aws-sdk/middleware-ssec@3.936.0':
+    resolution: {integrity: sha512-/GLC9lZdVp05ozRik5KsuODR/N7j+W+2TbfdFL3iS+7un+gnP6hC8RDOZd6WhpZp7drXQ9guKiTAxkZQwzS8DA==}
+    engines: {node: '>=18.0.0'}
+
   '@aws-sdk/middleware-user-agent@3.928.0':
     resolution: {integrity: sha512-ESvcfLx5PtpdUM3ptCwb80toBTd3y5I4w5jaeOPHihiZr7jkRLE/nsaCKzlqscPs6UQ8xI0maav04JUiTskcHw==}
     engines: {node: '>=18.0.0'}
@@ -981,6 +1297,10 @@ packages:
     resolution: {integrity: sha512-iv9toQZloEJp+dIuOr+1XWGmBMLU9c2qqNtgscfnEBZnUq3qKdBJHmLTKoq3mkLlV+41GrCWn8LrOunc6OlP6g==}
     engines: {node: '>=20.0.0'}
 
+  '@aws-sdk/middleware-user-agent@3.972.38':
+    resolution: {integrity: sha512-iz+B29TXcAZsJpwB+AwG/TTGA5l/VnmMZ2UxtiySOZjI6gCdmviXPwdgzcmuazMy16rXoPY4mYCGe7zdNKfx5A==}
+    engines: {node: '>=20.0.0'}
+
   '@aws-sdk/nested-clients@3.929.0':
     resolution: {integrity: sha512-emR4LTSupxPed1ni0zVxz5msezz/gA1YYXooiW567+NyhvLgSzDvNjK7GPU1waLCj1LrRFe7NkXX1pwa5sPrpw==}
     engines: {node: '>=18.0.0'}
@@ -993,6 +1313,10 @@ packages:
     resolution: {integrity: sha512-edZwYLgRI0rZlH9Hru9+JvTsR1OAxuCRGEtJohkZneIJ5JIYzvFoMR1gaASjl1aPKRhjkCv8SSAb7hes5a1GGA==}
     engines: {node: '>=20.0.0'}
 
+  '@aws-sdk/nested-clients@3.997.6':
+    resolution: {integrity: sha512-WBDnqatJl+kGObpfmfSxqnXeYTu3Me8wx8WCtvoxX3pfWrrTv8I4WTMSSs7PZqcRcVh8WeUKMgGFjMG+52SR1w==}
+    engines: {node: '>=20.0.0'}
+
   '@aws-sdk/region-config-resolver@3.925.0':
     resolution: {integrity: sha512-FOthcdF9oDb1pfQBRCfWPZhJZT5wqpvdAS5aJzB1WDZ+6EuaAhLzLH/fW1slDunIqq1PSQGG3uSnVglVVOvPHQ==}
     engines: {node: '>=18.0.0'}
@@ -1001,6 +1325,10 @@ packages:
     resolution: {integrity: sha512-wOKhzzWsshXGduxO4pqSiNyL9oUtk4BEvjWm9aaq6Hmfdoydq6v6t0rAGHWPjFwy9z2haovGRi3C8IxdMB4muw==}
     engines: {node: '>=18.0.0'}
 
+  '@aws-sdk/region-config-resolver@3.972.13':
+    resolution: {integrity: sha512-CvJ2ZIjK/jVD/lbOpowBVElJyC1YxLTIJ13yM0AEo0t2v7swOzGjSA6lJGH+DwZXQhcjUjoYwc8bVYCX5MDr1A==}
+    engines: {node: '>=20.0.0'}
+
   '@aws-sdk/region-config-resolver@3.972.3':
     resolution: {integrity: sha512-v4J8qYAWfOMcZ4MJUyatntOicTzEMaU7j3OpkRCGGFSL2NgXQ5VbxauIyORA+pxdKZ0qQG2tCQjQjZDlXEC3Ow==}
     engines: {node: '>=20.0.0'}
@@ -1009,6 +1337,18 @@ packages:
     resolution: {integrity: sha512-1+Ic8+MyqQy+OE6QDoQKVCIcSZO+ETmLLLpVS5yu0fihBU85B5HHU7iaKX1qX7lEaGPMpSN/mbHW0VpyQ0Xqaw==}
     engines: {node: '>=18.0.0'}
 
+  '@aws-sdk/signature-v4-multi-region@3.947.0':
+    resolution: {integrity: sha512-UaYmzoxf9q3mabIA2hc4T6x5YSFUG2BpNjAZ207EA1bnQMiK+d6vZvb83t7dIWL/U1de1sGV19c1C81Jf14rrA==}
+    engines: {node: '>=18.0.0'}
+
+  '@aws-sdk/signature-v4-multi-region@3.996.25':
+    resolution: {integrity: sha512-+CMIt3e1VzlklAECmG+DtP1sV8iKq25FuA0OKpnJ4KA0kxUtd7CgClY7/RU6VzJBQwbN4EJ9Ue6plvqx1qGadw==}
+    engines: {node: '>=20.0.0'}
+
+  '@aws-sdk/token-providers@3.1041.0':
+    resolution: {integrity: sha512-Th7kPI6YPtvJUcdznooXJMy+9rQWjmEF81LxaJssngBzuysK4a/x+l8kjm1zb7nYsUPbndnBdUnwng/3PLvtGw==}
+    engines: {node: '>=20.0.0'}
+
   '@aws-sdk/token-providers@3.929.0':
     resolution: {integrity: sha512-78kph1R6TVJ53VXDKUmt64HMqWjTECLymJ7kLguz2QJiWh2ZdLvpyYGvaueEwwhisHYBh2qef1tGIf/PpEb8SQ==}
     engines: {node: '>=18.0.0'}
@@ -1033,10 +1373,18 @@ packages:
     resolution: {integrity: sha512-DwHBiMNOB468JiX6+i34c+THsKHErYUdNQ3HexeXZvVn4zouLjgaS4FejiGSi2HyBuzuyHg7SuOPmjSvoU9NRg==}
     engines: {node: '>=20.0.0'}
 
+  '@aws-sdk/types@3.973.8':
+    resolution: {integrity: sha512-gjlAdtHMbtR9X5iIhVUvbVcy55KnznpC6bkDUWW9z915bi0ckdUr5cjf16Kp6xq0bP5HBD2xzgbL9F9Quv5vUw==}
+    engines: {node: '>=20.0.0'}
+
   '@aws-sdk/util-arn-parser@3.893.0':
     resolution: {integrity: sha512-u8H4f2Zsi19DGnwj5FSZzDMhytYF/bCh37vAtBsn3cNDL3YG578X5oc+wSX54pM3tOxS+NY7tvOAo52SW7koUA==}
     engines: {node: '>=18.0.0'}
 
+  '@aws-sdk/util-arn-parser@3.972.3':
+    resolution: {integrity: sha512-HzSD8PMFrvgi2Kserxuff5VitNq2sgf3w9qxmskKDiDTThWfVteJxuCS9JXiPIPtmCrp+7N9asfIaVhBFORllA==}
+    engines: {node: '>=20.0.0'}
+
   '@aws-sdk/util-dynamodb@3.980.0':
     resolution: {integrity: sha512-jG/yzr/JLFl7II9TTDWRKJRHThTXYNDYy694bRTj7JCXCU/Gb11ir5fJ7sV6FhlR9LrIaDb7Fft3RifvEnZcSQ==}
     engines: {node: '>=20.0.0'}
@@ -1059,6 +1407,10 @@ packages:
     resolution: {integrity: sha512-EhSBGWSGQ6Jcbt6jRyX1/0EV7rf+6RGbIIskN0MTtHk0k8uj5FAa1FZhLf+1ETfnDTy/BT39t5IUOQiZL5X1jQ==}
     engines: {node: '>=20.0.0'}
 
+  '@aws-sdk/util-endpoints@3.996.8':
+    resolution: {integrity: sha512-oOZHcRDihk5iEe5V25NVWg45b3qEA8OpHWVdU/XQh8Zj4heVPAJqWvMphQnU7LkufmUo10EpvFPZuQMiFLJK3g==}
+    engines: {node: '>=20.0.0'}
+
   '@aws-sdk/util-locate-window@3.893.0':
     resolution: {integrity: sha512-T89pFfgat6c8nMmpI8eKjBcDcgJq36+m9oiXbcUzeU55MP9ZuGgBomGjGnHaEyF36jenW9gmg3NfZDm0AO2XPg==}
     engines: {node: '>=18.0.0'}
@@ -1069,6 +1421,9 @@ packages:
   '@aws-sdk/util-user-agent-browser@3.936.0':
     resolution: {integrity: sha512-eZ/XF6NxMtu+iCma58GRNRxSq4lHo6zHQLOZRIeL/ghqYJirqHdenMOwrzPettj60KWlv827RVebP9oNVrwZbw==}
 
+  '@aws-sdk/util-user-agent-browser@3.972.10':
+    resolution: {integrity: sha512-FAzqXvfEssGdSIz8ejatan0bOdx1qefBWKF/gWmVBXIP1HkS7v/wjjaqrAGGKvyihrXTXW00/2/1nTJtxpXz7g==}
+
   '@aws-sdk/util-user-agent-browser@3.972.3':
     resolution: {integrity: sha512-JurOwkRUcXD/5MTDBcqdyQ9eVedtAsZgw5rBwktsPTN7QtPiS2Ld1jkJepNgYoCufz1Wcut9iup7GJDoIHp8Fw==}
 
@@ -1099,6 +1454,15 @@ packages:
       aws-crt:
         optional: true
 
+  '@aws-sdk/util-user-agent-node@3.973.24':
+    resolution: {integrity: sha512-ZWwlkjcIp7cEL8ZfTpTAPNkwx25p7xol0xlKoWVVf22+nsjwmLcHYtTPjIV1cSpmB/b6DaK4cb1fSkvCXHgRdw==}
+    engines: {node: '>=20.0.0'}
+    peerDependencies:
+      aws-crt: '>=1.0.0'
+    peerDependenciesMeta:
+      aws-crt:
+        optional: true
+
   '@aws-sdk/xml-builder@3.921.0':
     resolution: {integrity: sha512-LVHg0jgjyicKKvpNIEMXIMr1EBViESxcPkqfOlT+X1FkmUMTNZEEVF18tOJg4m4hV5vxtkWcqtr4IEeWa1C41Q==}
     engines: {node: '>=18.0.0'}
@@ -1107,6 +1471,10 @@ packages:
     resolution: {integrity: sha512-YIfkD17GocxdmlUVc3ia52QhcWuRIUJonbF8A2CYfcWNV3HzvAqpcPeC0bYUhkK+8e8YO1ARnLKZQE0TlwzorA==}
     engines: {node: '>=18.0.0'}
 
+  '@aws-sdk/xml-builder@3.972.22':
+    resolution: {integrity: sha512-PMYKKtJd70IsSG0yHrdAbxBr+ZWBKLvzFZfD3/urxgf6hXVMzuU5M+3MJ5G67RpOmLBu1fAUN65SbWuKUCOlAA==}
+    engines: {node: '>=20.0.0'}
+
   '@aws-sdk/xml-builder@3.972.5':
     resolution: {integrity: sha512-mCae5Ys6Qm1LDu0qdGwx2UQ63ONUe+FHw908fJzLDqFKTDBK4LDZUqKWm4OkTCNFq19bftjsBSESIGLD/s3/rA==}
     engines: {node: '>=20.0.0'}
@@ -1275,10 +1643,17 @@ packages:
     resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==}
     engines: {node: '>=0.1.90'}
 
+  '@colors/colors@1.6.0':
+    resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==}
+    engines: {node: '>=0.1.90'}
+
   '@cspotcode/source-map-support@0.8.1':
     resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
     engines: {node: '>=12'}
 
+  '@dabh/diagnostics@2.0.8':
+    resolution: {integrity: sha512-R4MSXTVnuMzGD7bzHdW2ZhhdPC/igELENcq5IjEverBvq5hn1SXCWcsi6eSsdWP0/Ur+SItRRjAktmdoX/8R/Q==}
+
   '@docsearch/css@4.6.2':
     resolution: {integrity: sha512-fH/cn8BjEEdM2nJdjNMHIvOVYupG6AIDtFVDgIZrNzdCSj4KXr9kd+hsehqsNGYjpUjObeKYKvgy/IwCb1jZYQ==}
 
@@ -1301,6 +1676,12 @@ packages:
     resolution: {integrity: sha512-YAdE/IJSpwbOTiaURNCKECdAwqrJuFiZhylmesBcIRawtYKnBR2wxPhoIewMg+Yu+QuYvHfJNReWpoxGBKOChA==}
     engines: {node: '>=18'}
 
+  '@esbuild/aix-ppc64@0.25.0':
+    resolution: {integrity: sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ==}
+    engines: {node: '>=18'}
+    cpu: [ppc64]
+    os: [aix]
+
   '@esbuild/aix-ppc64@0.25.12':
     resolution: {integrity: sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==}
     engines: {node: '>=18'}
@@ -1313,8 +1694,14 @@ packages:
     cpu: [ppc64]
     os: [aix]
 
-  '@esbuild/android-arm64@0.25.12':
-    resolution: {integrity: sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==}
+  '@esbuild/android-arm64@0.25.0':
+    resolution: {integrity: sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g==}
+    engines: {node: '>=18'}
+    cpu: [arm64]
+    os: [android]
+
+  '@esbuild/android-arm64@0.25.12':
+    resolution: {integrity: sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==}
     engines: {node: '>=18'}
     cpu: [arm64]
     os: [android]
@@ -1325,6 +1712,12 @@ packages:
     cpu: [arm64]
     os: [android]
 
+  '@esbuild/android-arm@0.25.0':
+    resolution: {integrity: sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g==}
+    engines: {node: '>=18'}
+    cpu: [arm]
+    os: [android]
+
   '@esbuild/android-arm@0.25.12':
     resolution: {integrity: sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==}
     engines: {node: '>=18'}
@@ -1337,6 +1730,12 @@ packages:
     cpu: [arm]
     os: [android]
 
+  '@esbuild/android-x64@0.25.0':
+    resolution: {integrity: sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg==}
+    engines: {node: '>=18'}
+    cpu: [x64]
+    os: [android]
+
   '@esbuild/android-x64@0.25.12':
     resolution: {integrity: sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==}
     engines: {node: '>=18'}
@@ -1349,6 +1748,12 @@ packages:
     cpu: [x64]
     os: [android]
 
+  '@esbuild/darwin-arm64@0.25.0':
+    resolution: {integrity: sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw==}
+    engines: {node: '>=18'}
+    cpu: [arm64]
+    os: [darwin]
+
   '@esbuild/darwin-arm64@0.25.12':
     resolution: {integrity: sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==}
     engines: {node: '>=18'}
@@ -1361,6 +1766,12 @@ packages:
     cpu: [arm64]
     os: [darwin]
 
+  '@esbuild/darwin-x64@0.25.0':
+    resolution: {integrity: sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg==}
+    engines: {node: '>=18'}
+    cpu: [x64]
+    os: [darwin]
+
   '@esbuild/darwin-x64@0.25.12':
     resolution: {integrity: sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==}
     engines: {node: '>=18'}
@@ -1373,6 +1784,12 @@ packages:
     cpu: [x64]
     os: [darwin]
 
+  '@esbuild/freebsd-arm64@0.25.0':
+    resolution: {integrity: sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w==}
+    engines: {node: '>=18'}
+    cpu: [arm64]
+    os: [freebsd]
+
   '@esbuild/freebsd-arm64@0.25.12':
     resolution: {integrity: sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==}
     engines: {node: '>=18'}
@@ -1385,6 +1802,12 @@ packages:
     cpu: [arm64]
     os: [freebsd]
 
+  '@esbuild/freebsd-x64@0.25.0':
+    resolution: {integrity: sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A==}
+    engines: {node: '>=18'}
+    cpu: [x64]
+    os: [freebsd]
+
   '@esbuild/freebsd-x64@0.25.12':
     resolution: {integrity: sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==}
     engines: {node: '>=18'}
@@ -1397,6 +1820,12 @@ packages:
     cpu: [x64]
     os: [freebsd]
 
+  '@esbuild/linux-arm64@0.25.0':
+    resolution: {integrity: sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg==}
+    engines: {node: '>=18'}
+    cpu: [arm64]
+    os: [linux]
+
   '@esbuild/linux-arm64@0.25.12':
     resolution: {integrity: sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==}
     engines: {node: '>=18'}
@@ -1409,6 +1838,12 @@ packages:
     cpu: [arm64]
     os: [linux]
 
+  '@esbuild/linux-arm@0.25.0':
+    resolution: {integrity: sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg==}
+    engines: {node: '>=18'}
+    cpu: [arm]
+    os: [linux]
+
   '@esbuild/linux-arm@0.25.12':
     resolution: {integrity: sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==}
     engines: {node: '>=18'}
@@ -1421,6 +1856,12 @@ packages:
     cpu: [arm]
     os: [linux]
 
+  '@esbuild/linux-ia32@0.25.0':
+    resolution: {integrity: sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg==}
+    engines: {node: '>=18'}
+    cpu: [ia32]
+    os: [linux]
+
   '@esbuild/linux-ia32@0.25.12':
     resolution: {integrity: sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==}
     engines: {node: '>=18'}
@@ -1433,6 +1874,12 @@ packages:
     cpu: [ia32]
     os: [linux]
 
+  '@esbuild/linux-loong64@0.25.0':
+    resolution: {integrity: sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw==}
+    engines: {node: '>=18'}
+    cpu: [loong64]
+    os: [linux]
+
   '@esbuild/linux-loong64@0.25.12':
     resolution: {integrity: sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==}
     engines: {node: '>=18'}
@@ -1445,6 +1892,12 @@ packages:
     cpu: [loong64]
     os: [linux]
 
+  '@esbuild/linux-mips64el@0.25.0':
+    resolution: {integrity: sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ==}
+    engines: {node: '>=18'}
+    cpu: [mips64el]
+    os: [linux]
+
   '@esbuild/linux-mips64el@0.25.12':
     resolution: {integrity: sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==}
     engines: {node: '>=18'}
@@ -1457,6 +1910,12 @@ packages:
     cpu: [mips64el]
     os: [linux]
 
+  '@esbuild/linux-ppc64@0.25.0':
+    resolution: {integrity: sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw==}
+    engines: {node: '>=18'}
+    cpu: [ppc64]
+    os: [linux]
+
   '@esbuild/linux-ppc64@0.25.12':
     resolution: {integrity: sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==}
     engines: {node: '>=18'}
@@ -1469,6 +1928,12 @@ packages:
     cpu: [ppc64]
     os: [linux]
 
+  '@esbuild/linux-riscv64@0.25.0':
+    resolution: {integrity: sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA==}
+    engines: {node: '>=18'}
+    cpu: [riscv64]
+    os: [linux]
+
   '@esbuild/linux-riscv64@0.25.12':
     resolution: {integrity: sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==}
     engines: {node: '>=18'}
@@ -1481,6 +1946,12 @@ packages:
     cpu: [riscv64]
     os: [linux]
 
+  '@esbuild/linux-s390x@0.25.0':
+    resolution: {integrity: sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA==}
+    engines: {node: '>=18'}
+    cpu: [s390x]
+    os: [linux]
+
   '@esbuild/linux-s390x@0.25.12':
     resolution: {integrity: sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==}
     engines: {node: '>=18'}
@@ -1493,6 +1964,12 @@ packages:
     cpu: [s390x]
     os: [linux]
 
+  '@esbuild/linux-x64@0.25.0':
+    resolution: {integrity: sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw==}
+    engines: {node: '>=18'}
+    cpu: [x64]
+    os: [linux]
+
   '@esbuild/linux-x64@0.25.12':
     resolution: {integrity: sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==}
     engines: {node: '>=18'}
@@ -1505,6 +1982,12 @@ packages:
     cpu: [x64]
     os: [linux]
 
+  '@esbuild/netbsd-arm64@0.25.0':
+    resolution: {integrity: sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw==}
+    engines: {node: '>=18'}
+    cpu: [arm64]
+    os: [netbsd]
+
   '@esbuild/netbsd-arm64@0.25.12':
     resolution: {integrity: sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==}
     engines: {node: '>=18'}
@@ -1517,6 +2000,12 @@ packages:
     cpu: [arm64]
     os: [netbsd]
 
+  '@esbuild/netbsd-x64@0.25.0':
+    resolution: {integrity: sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA==}
+    engines: {node: '>=18'}
+    cpu: [x64]
+    os: [netbsd]
+
   '@esbuild/netbsd-x64@0.25.12':
     resolution: {integrity: sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==}
     engines: {node: '>=18'}
@@ -1529,6 +2018,12 @@ packages:
     cpu: [x64]
     os: [netbsd]
 
+  '@esbuild/openbsd-arm64@0.25.0':
+    resolution: {integrity: sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw==}
+    engines: {node: '>=18'}
+    cpu: [arm64]
+    os: [openbsd]
+
   '@esbuild/openbsd-arm64@0.25.12':
     resolution: {integrity: sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==}
     engines: {node: '>=18'}
@@ -1541,6 +2036,12 @@ packages:
     cpu: [arm64]
     os: [openbsd]
 
+  '@esbuild/openbsd-x64@0.25.0':
+    resolution: {integrity: sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg==}
+    engines: {node: '>=18'}
+    cpu: [x64]
+    os: [openbsd]
+
   '@esbuild/openbsd-x64@0.25.12':
     resolution: {integrity: sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==}
     engines: {node: '>=18'}
@@ -1565,6 +2066,12 @@ packages:
     cpu: [arm64]
     os: [openharmony]
 
+  '@esbuild/sunos-x64@0.25.0':
+    resolution: {integrity: sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg==}
+    engines: {node: '>=18'}
+    cpu: [x64]
+    os: [sunos]
+
   '@esbuild/sunos-x64@0.25.12':
     resolution: {integrity: sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==}
     engines: {node: '>=18'}
@@ -1577,6 +2084,12 @@ packages:
     cpu: [x64]
     os: [sunos]
 
+  '@esbuild/win32-arm64@0.25.0':
+    resolution: {integrity: sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw==}
+    engines: {node: '>=18'}
+    cpu: [arm64]
+    os: [win32]
+
   '@esbuild/win32-arm64@0.25.12':
     resolution: {integrity: sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==}
     engines: {node: '>=18'}
@@ -1589,6 +2102,12 @@ packages:
     cpu: [arm64]
     os: [win32]
 
+  '@esbuild/win32-ia32@0.25.0':
+    resolution: {integrity: sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA==}
+    engines: {node: '>=18'}
+    cpu: [ia32]
+    os: [win32]
+
   '@esbuild/win32-ia32@0.25.12':
     resolution: {integrity: sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==}
     engines: {node: '>=18'}
@@ -1601,6 +2120,12 @@ packages:
     cpu: [ia32]
     os: [win32]
 
+  '@esbuild/win32-x64@0.25.0':
+    resolution: {integrity: sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ==}
+    engines: {node: '>=18'}
+    cpu: [x64]
+    os: [win32]
+
   '@esbuild/win32-x64@0.25.12':
     resolution: {integrity: sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==}
     engines: {node: '>=18'}
@@ -2176,6 +2701,13 @@ packages:
   '@napi-rs/wasm-runtime@0.2.12':
     resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==}
 
+  '@noble/hashes@1.8.0':
+    resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==}
+    engines: {node: ^14.21.3 || >=16}
+
+  '@nodable/entities@2.1.0':
+    resolution: {integrity: sha512-nyT7T3nbMyBI/lvr6L5TyWbFJAI9FTgVRakNoBqCD+PmID8DzFrrNdLLtHMwMszOtqZa8PAOV24ZqDnQrhQINA==}
+
   '@nodelib/fs.scandir@2.1.5':
     resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
     engines: {node: '>= 8'}
@@ -2302,6 +2834,9 @@ packages:
     resolution: {integrity: sha512-R5R9tb2AXs2IRLNKLBJDynhkfmx7mX0vi8NkhZb3gUkPWHn6HXk5J8iQ/dql0U3ApfWym4kXXmBDRGO+oeOfjg==}
     engines: {node: '>=14'}
 
+  '@paralleldrive/cuid2@2.3.1':
+    resolution: {integrity: sha512-XO7cAxhnTZl0Yggq6jOgjiOHhbgcO4NqFqwSmQpjK3b6TEE6Uj/jfSk6wzYyemh3+I0sHirKSetjQwn5cZktFw==}
+
   '@pinojs/redact@0.4.0':
     resolution: {integrity: sha512-k2ENnmBugE/rzQfEcdWHcCY+/FM3VLzH9cYEsbdsoqrvzAKRhUZeRNhAZvB8OitQJ1TBed3yqWtdjzS6wJKBwg==}
 
@@ -3013,9 +3548,15 @@ packages:
   '@sinonjs/commons@3.0.1':
     resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==}
 
+  '@sinonjs/fake-timers@11.2.2':
+    resolution: {integrity: sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw==}
+
   '@sinonjs/fake-timers@15.1.0':
     resolution: {integrity: sha512-cqfapCxwTGsrR80FEgOoPsTonoefMBY7dnUEbQ+GRcved0jvkJLzvX6F4WtN+HBqbPX/SiFsIRUp+IrCW/2I2w==}
 
+  '@sinonjs/fake-timers@15.3.2':
+    resolution: {integrity: sha512-mrn35Jl2pCpns+mE3HaZa1yPN5EYCRgiMI+135COjr2hr8Cls9DXqIZ57vZe2cz7y2XVSq92tcs6kGQcT1J8Rw==}
+
   '@sinonjs/samsam@8.0.3':
     resolution: {integrity: sha512-hw6HbX+GyVZzmaYNh82Ecj1vdGZrqVIn/keDTg63IgAwiQPO+xCz99uG6Woqgb4tM0mUiFENKZ4cqd7IX94AXQ==}
 
@@ -3035,6 +3576,10 @@ packages:
     resolution: {integrity: sha512-WmU0TnhEAJLWvfSeMxBNe5xtbselEO8+4wG0NtZeL8oR21WgH1xiO37El+/Y+H/Ie4SCwBy3MxYWmOYaGgZueA==}
     engines: {node: '>=18.0.0'}
 
+  '@smithy/config-resolver@4.4.17':
+    resolution: {integrity: sha512-TzDZcAnhTyAHbXVxWZo7/tEcrIeFq20IBk8So3OLOetWpR8EwY/yEqBMBFaJMeyEiREDq4NfEl+qO3OAUD+vbQ==}
+    engines: {node: '>=18.0.0'}
+
   '@smithy/config-resolver@4.4.3':
     resolution: {integrity: sha512-ezHLe1tKLUxDJo2LHtDuEDyWXolw8WGOR92qb4bQdWq/zKenO5BvctZGrVJBK08zjezSk7bmbKFOXIVyChvDLw==}
     engines: {node: '>=18.0.0'}
@@ -3048,10 +3593,18 @@ packages:
     engines: {node: '>=18.0.0'}
     deprecated: Please upgrade your lockfile to use the latest 3.x version of @smithy/core for various fixes, see https://github.com/smithy-lang/smithy-typescript/blob/main/packages/core/CHANGELOG.md
 
+  '@smithy/core@3.23.17':
+    resolution: {integrity: sha512-x7BlLbUFL8NWCGjMF9C+1N5cVCxcPa7g6Tv9B4A2luWx3be3oU8hQ96wIwxe/s7OhIzvoJH73HAUSg5JXVlEtQ==}
+    engines: {node: '>=18.0.0'}
+
   '@smithy/core@3.23.4':
     resolution: {integrity: sha512-IH7G3hWxUhd2Z6HtvjZ1EiyDBCRYRr2sngOB9KUWf96XQ8JP2O5ascUH6TouW5YCIMFaVnKADEscM/vUfI3TvA==}
     engines: {node: '>=18.0.0'}
 
+  '@smithy/credential-provider-imds@4.2.14':
+    resolution: {integrity: sha512-Au28zBN48ZAoXdooGUHemuVBrkE+Ie6RPmGNIAJsFqj33Vhb6xAgRifUydZ2aY+M+KaMAETAlKk5NC5h1G7wpg==}
+    engines: {node: '>=18.0.0'}
+
   '@smithy/credential-provider-imds@4.2.5':
     resolution: {integrity: sha512-BZwotjoZWn9+36nimwm/OLIcVe+KYRwzMjfhd4QT7QxPm9WY0HiOV8t/Wlh+HVUif0SBVV7ksq8//hPaBC/okQ==}
     engines: {node: '>=18.0.0'}
@@ -3084,6 +3637,10 @@ packages:
     resolution: {integrity: sha512-qF4EcrEtEf2P6f2kGGuSVe1lan26cn7PsWJBC3vZJ6D16Fm5FSN06udOMVoW6hjzQM3W7VDFwtyUG2szQY50dA==}
     engines: {node: '>=18.0.0'}
 
+  '@smithy/fetch-http-handler@5.3.17':
+    resolution: {integrity: sha512-bXOvQzaSm6MnmLaWA1elgfQcAtN4UP3vXqV97bHuoOrHQOJiLT3ds6o9eo5bqd0TJfRFpzdGnDQdW3FACiAVdw==}
+    engines: {node: '>=18.0.0'}
+
   '@smithy/fetch-http-handler@5.3.6':
     resolution: {integrity: sha512-3+RG3EA6BBJ/ofZUeTFJA7mHfSYrZtQIrDP9dI8Lf7X6Jbos2jptuLrAAteDiFVrmbEmLSuRG/bUKzfAXk7dhg==}
     engines: {node: '>=18.0.0'}
@@ -3092,6 +3649,10 @@ packages:
     resolution: {integrity: sha512-8P//tA8DVPk+3XURk2rwcKgYwFvwGwmJH/wJqQiSKwXZtf/LiZK+hbUZmPj/9KzM+OVSwe4o85KTp5x9DUZTjw==}
     engines: {node: '>=18.0.0'}
 
+  '@smithy/hash-node@4.2.14':
+    resolution: {integrity: sha512-8ZBDY2DD4wr+GGjTpPtiglEsqr0lUP+KHqgZcWczFf6qeZ/YRjMIOoQWVQlmwu7EtxKTd8YXD8lblmYcpBIA1g==}
+    engines: {node: '>=18.0.0'}
+
   '@smithy/hash-node@4.2.5':
     resolution: {integrity: sha512-DpYX914YOfA3UDT9CN1BM787PcHfWRBB43fFGCYrZFUH0Jv+5t8yYl+Pd5PW4+QzoGEDvn5d5QIO4j2HyYZQSA==}
     engines: {node: '>=18.0.0'}
@@ -3104,6 +3665,10 @@ packages:
     resolution: {integrity: sha512-6+do24VnEyvWcGdHXomlpd0m8bfZePpUKBy7m311n+JuRwug8J4dCanJdTymx//8mi0nlkflZBvJe+dEO/O12Q==}
     engines: {node: '>=18.0.0'}
 
+  '@smithy/invalid-dependency@4.2.14':
+    resolution: {integrity: sha512-c21qJiTSb25xvvOp+H2TNZzPCngrvl5vIPqPB8zQ/DmJF4QWXO19x1dWfMJZ6wZuuWUPPm0gV8C0cU3+ifcWuw==}
+    engines: {node: '>=18.0.0'}
+
   '@smithy/invalid-dependency@4.2.5':
     resolution: {integrity: sha512-2L2erASEro1WC5nV+plwIMxrTXpvpfzl4e+Nre6vBVRR2HKeGGcvpJyyL3/PpiSg+cJG2KpTmZmq934Olb6e5A==}
     engines: {node: '>=18.0.0'}
@@ -3124,6 +3689,10 @@ packages:
     resolution: {integrity: sha512-Yfu664Qbf1B4IYIsYgKoABt010daZjkaCRvdU/sPnZG6TtHOB0md0RjNdLGzxe5UIdn9js4ftPICzmkRa9RJ4Q==}
     engines: {node: '>=18.0.0'}
 
+  '@smithy/is-array-buffer@4.2.2':
+    resolution: {integrity: sha512-n6rQ4N8Jj4YTQO3YFrlgZuwKodf4zUFs7EJIWH86pSCWBaAtAGBFfCM7Wx6D2bBJ2xqFNxGBSrUWswT3M0VJow==}
+    engines: {node: '>=18.0.0'}
+
   '@smithy/md5-js@4.2.5':
     resolution: {integrity: sha512-Bt6jpSTMWfjCtC0s79gZ/WZ1w90grfmopVOWqkI2ovhjpD5Q2XRXuecIPB9689L2+cCySMbaXDhBPU56FKNDNg==}
     engines: {node: '>=18.0.0'}
@@ -3132,6 +3701,10 @@ packages:
     resolution: {integrity: sha512-GRDCjRd5//dK1gYHJKXdiChqW46HwRr+/YMctKL3PtlYOxD0+I0PqgTTKfSvMV7Q4SsEkBYoaF4+kwWDFs/lbg==}
     engines: {node: '>=18.0.0'}
 
+  '@smithy/middleware-content-length@4.2.14':
+    resolution: {integrity: sha512-xhHq7fX4/3lv5NHxLUk3OeEvl0xZ+Ek3qIbWaCL4f9JwgDZEclPBElljaZCAItdGPQl/kSM4LPMOpy1MYgprpw==}
+    engines: {node: '>=18.0.0'}
+
   '@smithy/middleware-content-length@4.2.5':
     resolution: {integrity: sha512-Y/RabVa5vbl5FuHYV2vUCwvh/dqzrEY/K2yWPSqvhFUwIY0atLqO4TienjBXakoy4zrKAMCZwg+YEqmH7jaN7A==}
     engines: {node: '>=18.0.0'}
@@ -3148,6 +3721,10 @@ packages:
     resolution: {integrity: sha512-4OS3TP3IWZysT8KlSG/UwfKdelJmuQ2CqVNfrkjm2Rsm146/DuSTfXiD1ulgWpp9L6lJmPYfWTp7/m4b4dQSdQ==}
     engines: {node: '>=18.0.0'}
 
+  '@smithy/middleware-endpoint@4.4.32':
+    resolution: {integrity: sha512-ZZkgyjnJppiZbIm6Qbx92pbXYi1uzenIvGhBSCDlc7NwuAkiqSgS75j1czAD25ZLs2FjMjYy1q7gyRVWG6JA0Q==}
+    engines: {node: '>=18.0.0'}
+
   '@smithy/middleware-retry@4.4.35':
     resolution: {integrity: sha512-sz+Th9ofKypOtaboPTcyZtIfCs2LNb84bzxEhPffCElyMorVYDBdeGzxYqSLC6gWaZUqpPSbj5F6TIxYUlSCfQ==}
     engines: {node: '>=18.0.0'}
@@ -3156,14 +3733,26 @@ packages:
     resolution: {integrity: sha512-E7Vc6WHCHlzDRTx1W0jZ6J1L6ziEV0PIWcUdmfL4y+c8r7WYr6I+LkQudaD8Nfb7C5c4P3SQ972OmXHtv6m/OA==}
     engines: {node: '>=18.0.0'}
 
+  '@smithy/middleware-retry@4.5.7':
+    resolution: {integrity: sha512-bRt6ZImqVSeTk39Nm81K20ObIiAZ3WefY7G6+iz/0tZjs4dgRRjvRX2sgsH+zi6iDCRR/aQvQofLKxxz4rPBZg==}
+    engines: {node: '>=18.0.0'}
+
   '@smithy/middleware-serde@4.2.10':
     resolution: {integrity: sha512-BQsdoi7ma4siJAzD0S6MedNPhiMcTdTLUqEUjrHeT1TJppBKWnwqySg34Oh/uGRhJeBd1sAH2t5tghBvcyD6tw==}
     engines: {node: '>=18.0.0'}
 
+  '@smithy/middleware-serde@4.2.20':
+    resolution: {integrity: sha512-Lx9JMO9vArPtiChE3wbEZ5akMIDQpWQtlu90lhACQmNOXcGXRbaDywMHDzuDZ2OkZzP+9wQfZi3YJT9F67zTQQ==}
+    engines: {node: '>=18.0.0'}
+
   '@smithy/middleware-serde@4.2.5':
     resolution: {integrity: sha512-La1ldWTJTZ5NqQyPqnCNeH9B+zjFhrNoQIL1jTh4zuqXRlmXhxYHhMtI1/92OlnoAtp6JoN7kzuwhWoXrBwPqg==}
     engines: {node: '>=18.0.0'}
 
+  '@smithy/middleware-stack@4.2.14':
+    resolution: {integrity: sha512-2dvkUKLuFdKsCRmOE4Mn63co0Djtsm+JMh0bYZQupN1pJwMeE8FmQmRLLzzEMN0dnNi7CDCYYH8F0EVwWiPBeA==}
+    engines: {node: '>=18.0.0'}
+
   '@smithy/middleware-stack@4.2.5':
     resolution: {integrity: sha512-bYrutc+neOyWxtZdbB2USbQttZN0mXaOyYLIsaTbJhFsfpXyGWUxJpEuO1rJ8IIJm2qH4+xJT0mxUSsEDTYwdQ==}
     engines: {node: '>=18.0.0'}
@@ -3172,6 +3761,10 @@ packages:
     resolution: {integrity: sha512-pid7ksBr7nm0X/3paIlGo9Fh3UK1pQ5yH0007tBmdkVvv+AsBZAOzC2dmLhlzDWKkSB+ZCiiyDArjAW3klkbMg==}
     engines: {node: '>=18.0.0'}
 
+  '@smithy/node-config-provider@4.3.14':
+    resolution: {integrity: sha512-S+gFjyo/weSVL0P1b9Ts8C/CwIfNCgUPikk3sl6QVsfE/uUuO+QsF+NsE/JkpvWqqyz1wg7HFdiaZuj5CoBMRg==}
+    engines: {node: '>=18.0.0'}
+
   '@smithy/node-config-provider@4.3.5':
     resolution: {integrity: sha512-UTurh1C4qkVCtqggI36DGbLB2Kv8UlcFdMXDcWMbqVY2uRg0XmT9Pb4Vj6oSQ34eizO1fvR0RnFV4Axw4IrrAg==}
     engines: {node: '>=18.0.0'}
@@ -3188,6 +3781,14 @@ packages:
     resolution: {integrity: sha512-CMnzM9R2WqlqXQGtIlsHMEZfXKJVTIrqCNoSd/QpAyp+Dw0a1Vps13l6ma1fH8g7zSPNsA59B/kWgeylFuA/lw==}
     engines: {node: '>=18.0.0'}
 
+  '@smithy/node-http-handler@4.6.1':
+    resolution: {integrity: sha512-iB+orM4x3xrr57X3YaXazfKnntl0LHlZB1kcXSGzMV1Tt0+YwEjGlbjk/44qEGtBzXAz6yFDzkYTKSV6Pj2HUg==}
+    engines: {node: '>=18.0.0'}
+
+  '@smithy/property-provider@4.2.14':
+    resolution: {integrity: sha512-WuM31CgfsnQ/10i7NYr0PyxqknD72Y5uMfUMVSniPjbEPceiTErb4eIqJQ+pdxNEAUEWrewrGjIRjVbVHsxZiQ==}
+    engines: {node: '>=18.0.0'}
+
   '@smithy/property-provider@4.2.5':
     resolution: {integrity: sha512-8iLN1XSE1rl4MuxvQ+5OSk/Zb5El7NJZ1td6Tn+8dQQHIjp59Lwl6bd0+nzw6SKm2wSSriH2v/I9LPzUic7EOg==}
     engines: {node: '>=18.0.0'}
@@ -3196,6 +3797,10 @@ packages:
     resolution: {integrity: sha512-ibHwLxq4KlbfueoNxMNrZkG+O7V/5XKrewhDGYn0p9DYKCsdsofuWHKdX3QW4zHlAUfLStqdCUSDi/q/9WSjwA==}
     engines: {node: '>=18.0.0'}
 
+  '@smithy/protocol-http@5.3.14':
+    resolution: {integrity: sha512-dN5F8kHx8RNU0r+pCwNmFZyz6ChjMkzShy/zup6MtkRmmix4vZzJdW+di7x//b1LiynIev88FM18ie+wwPcQtQ==}
+    engines: {node: '>=18.0.0'}
+
   '@smithy/protocol-http@5.3.5':
     resolution: {integrity: sha512-RlaL+sA0LNMp03bf7XPbFmT5gN+w3besXSWMkA8rcmxLSVfiEXElQi4O2IWwPfxzcHkxqrwBFMbngB8yx/RvaQ==}
     engines: {node: '>=18.0.0'}
@@ -3204,6 +3809,10 @@ packages:
     resolution: {integrity: sha512-PRy4yZqsKI3Eab8TLc16Dj2NzC4dnw/8E95+++Jc+wwlkjBpAq3tNLqkLHMmSvDfxKQ+X5PmmCYt+rM/GcMKPA==}
     engines: {node: '>=18.0.0'}
 
+  '@smithy/querystring-builder@4.2.14':
+    resolution: {integrity: sha512-XYA5Z0IqTeF+5XDdh4BBmSA0HvbgVZIyv4cmOoUheDNR57K1HgBp9ukUMx3Cr3XpDHHpLBnexPE3LAtDsZkj2A==}
+    engines: {node: '>=18.0.0'}
+
   '@smithy/querystring-builder@4.2.5':
     resolution: {integrity: sha512-y98otMI1saoajeik2kLfGyRp11e5U/iJYH/wLCh3aTV/XutbGT9nziKGkgCaMD1ghK7p6htHMm6b6scl9JRUWg==}
     engines: {node: '>=18.0.0'}
@@ -3212,6 +3821,10 @@ packages:
     resolution: {integrity: sha512-/AIDaq0+ehv+QfeyAjCUFShwHIt+FA1IodsV/2AZE5h4PUZcQYv5sjmy9V67UWfsBoTjOPKUFYSRfGoNW9T2UQ==}
     engines: {node: '>=18.0.0'}
 
+  '@smithy/querystring-parser@4.2.14':
+    resolution: {integrity: sha512-hr+YyqBD23GVvRxGGrcc/oOeNlK3PzT5Fu4dzrDXxzS1LpFiuL2PQQqKPs87M79aW7ziMs+nvB3qdw77SqE7Lw==}
+    engines: {node: '>=18.0.0'}
+
   '@smithy/querystring-parser@4.2.5':
     resolution: {integrity: sha512-031WCTdPYgiQRYNPXznHXof2YM0GwL6SeaSyTH/P72M1Vz73TvCNH2Nq8Iu2IEPq9QP2yx0/nrw5YmSeAi/AjQ==}
     engines: {node: '>=18.0.0'}
@@ -3228,6 +3841,10 @@ packages:
     resolution: {integrity: sha512-DYYd4xrm9Ozik+ZT4f5ZqSXdzscVHF/tFCzqieIFcLrjRDxWSgRtvtXOohJGoniLfPcBcy5ltR3tp2Lw4/d9ag==}
     engines: {node: '>=18.0.0'}
 
+  '@smithy/service-error-classification@4.3.1':
+    resolution: {integrity: sha512-aUQuDGh760ts/8MU+APjIZhlLPKhIIfqyzZaJikLEIMrdxFvxuLYD0WxWzaYWpmLbQlXDe9p7EWM3HsBe0K6Gw==}
+    engines: {node: '>=18.0.0'}
+
   '@smithy/shared-ini-file-loader@4.4.0':
     resolution: {integrity: sha512-5WmZ5+kJgJDjwXXIzr1vDTG+RhF9wzSODQBfkrQ2VVkYALKGvZX1lgVSxEkgicSAFnFhPj5rudJV0zoinqS0bA==}
     engines: {node: '>=18.0.0'}
@@ -3236,6 +3853,14 @@ packages:
     resolution: {integrity: sha512-tA5Cm11BHQCk/67y6VPIWydLh/pMY90jqOEWIr/2VAzTOoDwGpwp0C/AuHBc3/xWSOA5m5PXLN+lIOrsnTm/PQ==}
     engines: {node: '>=18.0.0'}
 
+  '@smithy/shared-ini-file-loader@4.4.9':
+    resolution: {integrity: sha512-495/V2I15SHgedSJoDPD23JuSfKAp726ZI1V0wtjB07Wh7q/0tri/0e0DLefZCHgxZonrGKt/OCTpAtP1wE1kQ==}
+    engines: {node: '>=18.0.0'}
+
+  '@smithy/signature-v4@5.3.14':
+    resolution: {integrity: sha512-1D9Y/nmlVjCeSivCbhZ7hgEpmHyY1h0GvpSZt3l0xcD9JjmjVC1CHOozS6+Gh+/ldMH8JuJ6cujObQqfayAVFA==}
+    engines: {node: '>=18.0.0'}
+
   '@smithy/signature-v4@5.3.5':
     resolution: {integrity: sha512-xSUfMu1FT7ccfSXkoLl/QRQBi2rOvi3tiBZU2Tdy3I6cgvZ6SEi9QNey+lqps/sJRnogIS+lq+B1gxxbra2a/w==}
     engines: {node: '>=18.0.0'}
@@ -3248,18 +3873,30 @@ packages:
     resolution: {integrity: sha512-gQP2J3qB/Wmc26gdmB8gA6zq2o2spG5sEU3o7TaTATBJEk29sYGWdEFoGEy91BczSpifTo0DQhVYjZXBEVcrpA==}
     engines: {node: '>=18.0.0'}
 
-  '@smithy/smithy-client@4.9.3':
-    resolution: {integrity: sha512-8tlueuTgV5n7inQCkhyptrB3jo2AO80uGrps/XTYZivv5MFQKKBj3CIWIGMI2fRY5LEduIiazOhAWdFknY1O9w==}
+  '@smithy/smithy-client@4.12.13':
+    resolution: {integrity: sha512-y/Pcj1V9+qG98gyu1gvftHB7rDpdh+7kIBIggs55yGm3JdtBV8GT8IFF3a1qxZ79QnaJHX9GXzvBG6tAd+czJA==}
+    engines: {node: '>=18.0.0'}
+
+  '@smithy/smithy-client@4.9.1':
+    resolution: {integrity: sha512-Ngb95ryR5A9xqvQFT5mAmYkCwbXvoLavLFwmi7zVg/IowFPCfiqRfkOKnbc/ZRL8ZKJ4f+Tp6kSu6wjDQb8L/g==}
     engines: {node: '>=18.0.0'}
 
   '@smithy/types@4.12.1':
     resolution: {integrity: sha512-ow30Ze/DD02KH2p0eMyIF2+qJzGyNb0kFrnTRtPpuOkQ4hrgvLdaU4YC6r/K8aOrCML4FH0Cmm0aI4503L1Hwg==}
     engines: {node: '>=18.0.0'}
 
+  '@smithy/types@4.14.1':
+    resolution: {integrity: sha512-59b5HtSVrVR/eYNei3BUj3DCPKD/G7EtDDe7OEJE7i7FtQFugYo6MxbotS8mVJkLNVf8gYaAlEBwwtJ9HzhWSg==}
+    engines: {node: '>=18.0.0'}
+
   '@smithy/types@4.9.0':
     resolution: {integrity: sha512-MvUbdnXDTwykR8cB1WZvNNwqoWVaTRA0RLlLmf/cIFNMM2cKWz01X4Ly6SMC4Kks30r8tT3Cty0jmeWfiuyHTA==}
     engines: {node: '>=18.0.0'}
 
+  '@smithy/url-parser@4.2.14':
+    resolution: {integrity: sha512-p06BiBigJ8bTA3MgnOfCtDUWnAMY0YfedO/GRpmc7p+wg3KW8vbXy1xwSu5ASy0wV7rRYtlfZOIKH4XqfhjSQQ==}
+    engines: {node: '>=18.0.0'}
+
   '@smithy/url-parser@4.2.5':
     resolution: {integrity: sha512-VaxMGsilqFnK1CeBX+LXnSuaMx4sTL/6znSZh2829txWieazdVxr54HmiyTsIbpOTLcf5nYpq9lpzmwRdxj6rQ==}
     engines: {node: '>=18.0.0'}
@@ -3276,6 +3913,10 @@ packages:
     resolution: {integrity: sha512-BKGuawX4Doq/bI/uEmg+Zyc36rJKWuin3py89PquXBIBqmbnJwBBsmKhdHfNEp0+A4TDgLmT/3MSKZ1SxHcR6w==}
     engines: {node: '>=18.0.0'}
 
+  '@smithy/util-base64@4.3.2':
+    resolution: {integrity: sha512-XRH6b0H/5A3SgblmMa5ErXQ2XKhfbQB+Fm/oyLZ2O2kCUrwgg55bU0RekmzAhuwOjA9qdN5VU2BprOvGGUkOOQ==}
+    engines: {node: '>=18.0.0'}
+
   '@smithy/util-body-length-browser@4.2.0':
     resolution: {integrity: sha512-Fkoh/I76szMKJnBXWPdFkQJl2r9SjPt3cMzLdOB6eJ4Pnpas8hVoWPYemX/peO0yrrvldgCUVJqOAjUrOLjbxg==}
     engines: {node: '>=18.0.0'}
@@ -3284,10 +3925,18 @@ packages:
     resolution: {integrity: sha512-SiJeLiozrAoCrgDBUgsVbmqHmMgg/2bA15AzcbcW+zan7SuyAVHN4xTSbq0GlebAIwlcaX32xacnrG488/J/6g==}
     engines: {node: '>=18.0.0'}
 
+  '@smithy/util-body-length-browser@4.2.2':
+    resolution: {integrity: sha512-JKCrLNOup3OOgmzeaKQwi4ZCTWlYR5H4Gm1r2uTMVBXoemo1UEghk5vtMi1xSu2ymgKVGW631e2fp9/R610ZjQ==}
+    engines: {node: '>=18.0.0'}
+
   '@smithy/util-body-length-node@4.2.1':
     resolution: {integrity: sha512-h53dz/pISVrVrfxV1iqXlx5pRg3V2YWFcSQyPyXZRrZoZj4R4DeWRDo1a7dd3CPTcFi3kE+98tuNyD2axyZReA==}
     engines: {node: '>=18.0.0'}
 
+  '@smithy/util-body-length-node@4.2.3':
+    resolution: {integrity: sha512-ZkJGvqBzMHVHE7r/hcuCxlTY8pQr1kMtdsVPs7ex4mMU+EAbcXppfo5NmyxMYi2XU49eqaz56j2gsk4dHHPG/g==}
+    engines: {node: '>=18.0.0'}
+
   '@smithy/util-buffer-from@2.2.0':
     resolution: {integrity: sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==}
     engines: {node: '>=14.0.0'}
@@ -3300,6 +3949,10 @@ packages:
     resolution: {integrity: sha512-/swhmt1qTiVkaejlmMPPDgZhEaWb/HWMGRBheaxwuVkusp/z+ErJyQxO6kaXumOciZSWlmq6Z5mNylCd33X7Ig==}
     engines: {node: '>=18.0.0'}
 
+  '@smithy/util-buffer-from@4.2.2':
+    resolution: {integrity: sha512-FDXD7cvUoFWwN6vtQfEta540Y/YBe5JneK3SoZg9bThSoOAC/eGeYEua6RkBgKjGa/sz6Y+DuBZj3+YEY21y4Q==}
+    engines: {node: '>=18.0.0'}
+
   '@smithy/util-config-provider@4.2.0':
     resolution: {integrity: sha512-YEjpl6XJ36FTKmD+kRJJWYvrHeUvm5ykaUS5xK+6oXffQPHeEM4/nXlZPe+Wu0lsgRUcNZiliYNh/y7q9c2y6Q==}
     engines: {node: '>=18.0.0'}
@@ -3308,10 +3961,18 @@ packages:
     resolution: {integrity: sha512-462id/00U8JWFw6qBuTSWfN5TxOHvDu4WliI97qOIOnuC/g+NDAknTU8eoGXEPlLkRVgWEr03jJBLV4o2FL8+A==}
     engines: {node: '>=18.0.0'}
 
+  '@smithy/util-config-provider@4.2.2':
+    resolution: {integrity: sha512-dWU03V3XUprJwaUIFVv4iOnS1FC9HnMHDfUrlNDSh4315v0cWyaIErP8KiqGVbf5z+JupoVpNM7ZB3jFiTejvQ==}
+    engines: {node: '>=18.0.0'}
+
   '@smithy/util-defaults-mode-browser@4.3.34':
     resolution: {integrity: sha512-m75CH7xaVG8ErlnfXsIBLrgVrApejrvUpohr41CMdeWNcEu/Ouvj9fbNA7oW9Qpr0Awf+BmDRrYx72hEKgY+FQ==}
     engines: {node: '>=18.0.0'}
 
+  '@smithy/util-defaults-mode-browser@4.3.49':
+    resolution: {integrity: sha512-a5bNrdiONYB/qE2BuKegvUMd/+ZDwdg4vsNuuSzYE8qs2EYAdK9CynL+Rzn29PbPiUqoz/cbpRbcLzD5lEevHw==}
+    engines: {node: '>=18.0.0'}
+
   '@smithy/util-defaults-mode-browser@4.3.6':
     resolution: {integrity: sha512-kbpuXbEf2YQ9zEE6eeVnUCQWO0e1BjMnKrXL8rfXgiWA0m8/E0leU4oSNzxP04WfCmW8vjEqaDeXWxwE4tpOjQ==}
     engines: {node: '>=18.0.0'}
@@ -3320,6 +3981,10 @@ packages:
     resolution: {integrity: sha512-1LcAt0PV1dletxiGwcw2IJ8vLNhfkir02NTi1i/CFCY2ObtM5wDDjn/8V2dbPrbyoh6OTFH+uayI1rSVRBMT3A==}
     engines: {node: '>=18.0.0'}
 
+  '@smithy/util-defaults-mode-node@4.2.54':
+    resolution: {integrity: sha512-g1cvrJvOnzeJgEdf7AE4luI7gp6L8weE0y9a9wQUSGtjb8QRHDbCJYuE4Sy0SD9N8RrnNPFsPltAz/OSoBR9Zw==}
+    engines: {node: '>=18.0.0'}
+
   '@smithy/util-defaults-mode-node@4.2.9':
     resolution: {integrity: sha512-dgyribrVWN5qE5usYJ0m5M93mVM3L3TyBPZWe1Xl6uZlH2gzfQx3dz+ZCdW93lWqdedJRkOecnvbnoEEXRZ5VQ==}
     engines: {node: '>=18.0.0'}
@@ -3332,6 +3997,10 @@ packages:
     resolution: {integrity: sha512-9FTqTzKxCFelCKdtHb22BTbrLgw7tTI+D6r/Ci/njI0tzqWLQctS0uEDTzraCR5K6IJItfFp1QmESlBytSpRhQ==}
     engines: {node: '>=18.0.0'}
 
+  '@smithy/util-endpoints@3.4.2':
+    resolution: {integrity: sha512-a55Tr+3OKld4TTtnT+RhKOQHyPxm3j/xL4OR83WBUhLJaKDS9dnJ7arRMOp3t31dcLhApwG9bgvrRXBHlLdIkg==}
+    engines: {node: '>=18.0.0'}
+
   '@smithy/util-hex-encoding@4.2.0':
     resolution: {integrity: sha512-CCQBwJIvXMLKxVbO88IukazJD9a4kQ9ZN7/UMGBjBcJYvatpWk+9g870El4cB8/EJxfe+k+y0GmR9CAzkF+Nbw==}
     engines: {node: '>=18.0.0'}
@@ -3340,6 +4009,14 @@ packages:
     resolution: {integrity: sha512-c1hHtkgAWmE35/50gmdKajgGAKV3ePJ7t6UtEmpfCWJmQE9BQAQPz0URUVI89eSkcDqCtzqllxzG28IQoZPvwA==}
     engines: {node: '>=18.0.0'}
 
+  '@smithy/util-hex-encoding@4.2.2':
+    resolution: {integrity: sha512-Qcz3W5vuHK4sLQdyT93k/rfrUwdJ8/HZ+nMUOyGdpeGA1Wxt65zYwi3oEl9kOM+RswvYq90fzkNDahPS8K0OIg==}
+    engines: {node: '>=18.0.0'}
+
+  '@smithy/util-middleware@4.2.14':
+    resolution: {integrity: sha512-1Su2vj9RYNDEv/V+2E+jXkkwGsgR7dc4sfHn9Z7ruzQHJIEni9zzw5CauvRXlFJfmgcqYP8fWa0dkh2Q2YaQyw==}
+    engines: {node: '>=18.0.0'}
+
   '@smithy/util-middleware@4.2.5':
     resolution: {integrity: sha512-6Y3+rvBF7+PZOc40ybeZMcGln6xJGVeY60E7jy9Mv5iKpMJpHgRE6dKy9ScsVxvfAYuEX4Q9a65DQX90KaQ3bA==}
     engines: {node: '>=18.0.0'}
@@ -3356,10 +4033,18 @@ packages:
     resolution: {integrity: sha512-79hfhL/oxP40SCXJGfjfE9pjbUVfHhXZFpCWXTHqXSluzaVy7jwWs9Ui7lLbfDBSp+7i+BIwgeVIRerbIRWN6g==}
     engines: {node: '>=18.0.0'}
 
+  '@smithy/util-retry@4.3.8':
+    resolution: {integrity: sha512-LUIxbTBi+OpvXpg91poGA6BdyoleMDLnfXjVDqyi2RvZmTveY5loE/FgYUBCR5LU2BThW2SoZRh8dTIIy38IPw==}
+    engines: {node: '>=18.0.0'}
+
   '@smithy/util-stream@4.5.14':
     resolution: {integrity: sha512-IOBEiJTOltSx6MAfwkx/GSVM8/UCJxdtw13haP5OEL543lb1DN6TAypsxv+qcj4l/rKcpapbS6zK9MQGBOhoaA==}
     engines: {node: '>=18.0.0'}
 
+  '@smithy/util-stream@4.5.25':
+    resolution: {integrity: sha512-/PFpG4k8Ze8Ei+mMKj3oiPICYekthuzePZMgZbCqMiXIHHf4n2aZ4Ps0aSRShycFTGuj/J6XldmC0x0DwednIA==}
+    engines: {node: '>=18.0.0'}
+
   '@smithy/util-stream@4.5.6':
     resolution: {integrity: sha512-qWw/UM59TiaFrPevefOZ8CNBKbYEP6wBAIlLqxn3VAIo9rgnTNc4ASbVrqDmhuwI87usnjhdQrxodzAGFFzbRQ==}
     engines: {node: '>=18.0.0'}
@@ -3372,6 +4057,10 @@ packages:
     resolution: {integrity: sha512-YmiUDn2eo2IOiWYYvGQkgX5ZkBSiTQu4FlDo5jNPpAxng2t6Sjb6WutnZV9l6VR4eJul1ABmCrnWBC9hKHQa6Q==}
     engines: {node: '>=18.0.0'}
 
+  '@smithy/util-uri-escape@4.2.2':
+    resolution: {integrity: sha512-2kAStBlvq+lTXHyAZYfJRb/DfS3rsinLiwb+69SstC9Vb0s9vNWkRwpnj918Pfi85mzi42sOqdV72OLxWAISnw==}
+    engines: {node: '>=18.0.0'}
+
   '@smithy/util-utf8@2.3.0':
     resolution: {integrity: sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==}
     engines: {node: '>=14.0.0'}
@@ -3384,6 +4073,10 @@ packages:
     resolution: {integrity: sha512-DSIwNaWtmzrNQHv8g7DBGR9mulSit65KSj5ymGEIAknmIN8IpbZefEep10LaMG/P/xquwbmJ1h9ectz8z6mV6g==}
     engines: {node: '>=18.0.0'}
 
+  '@smithy/util-utf8@4.2.2':
+    resolution: {integrity: sha512-75MeYpjdWRe8M5E3AW0O4Cx3UadweS+cwdXjwYGBW5h/gxxnbeZ877sLPX/ZJA9GVTlL/qG0dXP29JWFCD1Ayw==}
+    engines: {node: '>=18.0.0'}
+
   '@smithy/util-waiter@4.2.5':
     resolution: {integrity: sha512-Dbun99A3InifQdIrsXZ+QLcC0PGBPAdrl4cj1mTgJvyc9N2zf7QSxg8TBkzsCmGJdE3TLbO9ycwpY0EkWahQ/g==}
     engines: {node: '>=18.0.0'}
@@ -3400,6 +4093,13 @@ packages:
     resolution: {integrity: sha512-dSfDCeihDmZlV2oyr0yWPTUfh07suS+R5OB+FZGiv/hHyK3hrFBW5rR1UYjfa57vBsrP9lciFkRPzebaV1Qujw==}
     engines: {node: '>=18.0.0'}
 
+  '@smithy/uuid@1.1.2':
+    resolution: {integrity: sha512-O/IEdcCUKkubz60tFbGA7ceITTAJsty+lBjNoorP4Z6XRqaFb/OjQjZODophEcuq68nKm6/0r+6/lLQ+XVpk8g==}
+    engines: {node: '>=18.0.0'}
+
+  '@so-ric/colorspace@1.1.6':
+    resolution: {integrity: sha512-/KiKkpHNOBgkFJwu9sh48LkHSMYGyuTcSFK/qMBdnOAlrRJzRSXAOFB5qwzaVQuDl8wAvHVMkaASQDReTahxuw==}
+
   '@stylistic/eslint-plugin@3.1.0':
     resolution: {integrity: sha512-pA6VOrOqk0+S8toJYhQGv2MWpQQR0QpeUo9AhNkC49Y26nxBQ/nH1rta9bUU1rPw2fJ1zZEMV5oCX5AazT7J2g==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
@@ -3464,6 +4164,9 @@ packages:
   '@types/connect@3.4.38':
     resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==}
 
+  '@types/cookiejar@2.1.5':
+    resolution: {integrity: sha512-he+DHOWReW0nghN24E1WUqM0efK4kI9oTqDm6XmK8ZPe2djZ90BSNdGnIyCLzCPw7/pogPlGbzI2wHGGmi4O/Q==}
+
   '@types/cors@2.8.19':
     resolution: {integrity: sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg==}
 
@@ -3479,6 +4182,9 @@ packages:
   '@types/express@5.0.3':
     resolution: {integrity: sha512-wGA0NX93b19/dZC1J18tKWVIYWyyF2ZjT9vin/NRu0qzzvfVzWjs04iq2rQ3H65vCTQYlRqs3YHfY7zjdV+9Kw==}
 
+  '@types/express@5.0.4':
+    resolution: {integrity: sha512-g64dbryHk7loCIrsa0R3shBnEu5p6LPJ09bu9NG58+jz+cRUjFrc3Bz0kNQ7j9bXeCsrRDvNET1G54P/GJkAyA==}
+
   '@types/hast@3.0.4':
     resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==}
 
@@ -3518,6 +4224,9 @@ packages:
   '@types/mdurl@2.0.0':
     resolution: {integrity: sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==}
 
+  '@types/methods@1.1.4':
+    resolution: {integrity: sha512-ymXWVrDiCxTBE3+RIrrP533E70eA+9qu7zdWoHuOmGujkYtzf4HQF96b8nwHLqhuf4ykX61IGRIB38CC6/sImQ==}
+
   '@types/mime-types@3.0.1':
     resolution: {integrity: sha512-xRMsfuQbnRq1Ef+C+RKaENOxXX87Ygl38W1vDfPHRku02TgQr+Qd8iivLtAMcR0KF5/29xlnFihkTlbqFrGOVQ==}
 
@@ -3560,6 +4269,9 @@ packages:
   '@types/shimmer@1.2.0':
     resolution: {integrity: sha512-UE7oxhQLLd9gub6JKIAhDq06T0F6FnztwMNRvYgjeQSBeMc1ZG/tA47EwfduvkuQS8apbkM/lpLpWsaCeYsXVg==}
 
+  '@types/sinon@17.0.4':
+    resolution: {integrity: sha512-RHnIrhfPO3+tJT0s7cFaXGZvsL4bbR3/k7z3P312qMS4JaS2Tk+KiwiLx1S0rQ56ERj00u1/BtdyVd0FY+Pdew==}
+
   '@types/sinon@21.0.0':
     resolution: {integrity: sha512-+oHKZ0lTI+WVLxx1IbJDNmReQaIsQJjN2e7UUrJHEeByG7bFeKJYsv1E75JxTQ9QKJDp21bAa/0W2Xo4srsDnw==}
 
@@ -3569,12 +4281,21 @@ packages:
   '@types/statuses@2.0.6':
     resolution: {integrity: sha512-xMAgYwceFhRA2zY+XbEA7mxYbA093wdiW8Vu6gZPGWy9cmOyU9XesH1tNcEWsKFd5Vzrqx5T3D38PWx1FIIXkA==}
 
+  '@types/superagent@8.1.9':
+    resolution: {integrity: sha512-pTVjI73witn+9ILmoJdajHGW2jkSaOzhiFYF1Rd3EQ94kymLqB9PjD9ISg7WaALC7+dCHT0FGe9T2LktLq/3GQ==}
+
+  '@types/supertest@6.0.3':
+    resolution: {integrity: sha512-8WzXq62EXFhJ7QsH3Ocb/iKQ/Ty9ZVWnVzoTKc9tyyFRRF3a74Tk2+TLFgaFFw364Ere+npzHKEJ6ga2LzIL7w==}
+
   '@types/tar-fs@2.0.4':
     resolution: {integrity: sha512-ipPec0CjTmVDWE+QKr9cTmIIoTl7dFG/yARCM5MqK8i6CNLIG1P8x4kwDsOQY1ChZOZjH0wO9nvfgBvWl4R3kA==}
 
   '@types/tar-stream@3.1.4':
     resolution: {integrity: sha512-921gW0+g29mCJX0fRvqeHzBlE/XclDaAG0Ousy1LCghsOhvaKacDeRGEVzQP9IPfKn8Vysy7FEXAIxycpc/CMg==}
 
+  '@types/triple-beam@1.3.5':
+    resolution: {integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==}
+
   '@types/unist@3.0.3':
     resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==}
 
@@ -4074,6 +4795,9 @@ packages:
     resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==}
     engines: {node: '>= 0.4'}
 
+  asap@2.0.6:
+    resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==}
+
   assertion-error@1.1.0:
     resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==}
 
@@ -4110,6 +4834,9 @@ packages:
     resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
     engines: {node: '>= 0.4'}
 
+  aws-sdk-client-mock@4.1.0:
+    resolution: {integrity: sha512-h/tOYTkXEsAcV3//6C1/7U4ifSpKyJvb6auveAepqqNJl6TdZaPFEtKjBQNf8UxQdDP850knB2i/whq4zlsxJw==}
+
   azure-devops-node-api@12.5.0:
     resolution: {integrity: sha512-R5eFskGvOm3U/GzeAuxRkUsAl0hrAwGgWn6zAd2KrZmrEhWZVqLew4OOupbQlXUuojUzpGtq62SmdhJ06N88og==}
 
@@ -4173,6 +4900,10 @@ packages:
     resolution: {integrity: sha512-ipDqC8FrAl/76p2SSWKSI+H9tFwm7vYqXQrItCuiVPt26Km0jS+NzSsBWAaBusvSbQcfJG+JitdMm+wZAgTYqg==}
     hasBin: true
 
+  basic-auth@2.0.1:
+    resolution: {integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==}
+    engines: {node: '>= 0.8'}
+
   better-path-resolve@1.0.0:
     resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==}
     engines: {node: '>=4'}
@@ -4453,9 +5184,25 @@ packages:
     resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
     engines: {node: '>=7.0.0'}
 
+  color-convert@3.1.3:
+    resolution: {integrity: sha512-fasDH2ont2GqF5HpyO4w0+BcewlhHEZOFn9c1ckZdHpJ56Qb7MHhH/IcJZbBGgvdtwdwNbLvxiBEdg336iA9Sg==}
+    engines: {node: '>=14.6'}
+
   color-name@1.1.4:
     resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
 
+  color-name@2.1.0:
+    resolution: {integrity: sha512-1bPaDNFm0axzE4MEAzKPuqKWeRaT43U/hyxKPBdqTfmPF+d6n7FSoTFxLVULUJOmiLp01KjhIPPH+HrXZJN4Rg==}
+    engines: {node: '>=12.20'}
+
+  color-string@2.1.4:
+    resolution: {integrity: sha512-Bb6Cq8oq0IjDOe8wJmi4JeNn763Xs9cfrBcaylK1tPypWzyoy2G3l90v9k64kjphl/ZJjPIShFztenRomi8WTg==}
+    engines: {node: '>=18'}
+
+  color@5.0.3:
+    resolution: {integrity: sha512-ezmVcLR3xAVp8kYOm4GS45ZLLgIE6SPAFoduLr6hTDajwb3KZ2F46gulK3XpcwRFb5KKGCSezCBAY4Dw4HsyXA==}
+    engines: {node: '>=18'}
+
   colorette@1.4.0:
     resolution: {integrity: sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==}
 
@@ -4481,6 +5228,9 @@ packages:
     resolution: {integrity: sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==}
     engines: {node: '>= 12.0.0'}
 
+  component-emitter@1.3.1:
+    resolution: {integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==}
+
   compressible@2.0.18:
     resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==}
     engines: {node: '>= 0.6'}
@@ -4546,6 +5296,9 @@ packages:
     resolution: {integrity: sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==}
     engines: {node: '>=18'}
 
+  cookiejar@2.1.4:
+    resolution: {integrity: sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==}
+
   core-js-compat@3.46.0:
     resolution: {integrity: sha512-p9hObIIEENxSV8xIu+V68JjSeARg6UVMG5mR+JEUguG3sI6MsiS1njz2jHmyJDvA+8jX/sytkBHup6kxhM9law==}
 
@@ -4701,6 +5454,9 @@ packages:
   devlop@1.1.0:
     resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==}
 
+  dezalgo@1.0.4:
+    resolution: {integrity: sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==}
+
   diagnostic-channel-publishers@1.0.8:
     resolution: {integrity: sha512-HmSm9hXxSPxA9BaLGY98QU1zsdjeCk113KjAYGPCen1ZP6mhVaTPzHd6UYv5r21DnWANi+f+NyPOHruGT9jpqQ==}
     peerDependencies:
@@ -4785,6 +5541,9 @@ packages:
   emojilib@2.4.0:
     resolution: {integrity: sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==}
 
+  enabled@2.0.0:
+    resolution: {integrity: sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==}
+
   encodeurl@1.0.2:
     resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==}
     engines: {node: '>= 0.8'}
@@ -4854,6 +5613,11 @@ packages:
     resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==}
     engines: {node: '>= 0.4'}
 
+  esbuild@0.25.0:
+    resolution: {integrity: sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==}
+    engines: {node: '>=18'}
+    hasBin: true
+
   esbuild@0.25.12:
     resolution: {integrity: sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==}
     engines: {node: '>=18'}
@@ -5131,6 +5895,9 @@ packages:
     resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==}
     engines: {node: '>=6'}
 
+  express-basic-auth@1.2.1:
+    resolution: {integrity: sha512-L6YQ1wQ/mNjVLAmK3AG1RK6VkokA1BIY6wmiH304Xtt/cLTps40EusZsU1Uop+v9lTDPxdtzbFmdXfFO3KEnwA==}
+
   express-rate-limit@8.2.1:
     resolution: {integrity: sha512-PCZEIEIxqwhzw4KF0n7QF4QqruVTcF73O5kFKUnGOyjbCCgizBBiFaYpd/fnBLUMPw/BWw9OsiN7GgrNYr7j6g==}
     engines: {node: '>= 16'}
@@ -5183,6 +5950,9 @@ packages:
   fast-uri@3.1.0:
     resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==}
 
+  fast-xml-builder@1.1.5:
+    resolution: {integrity: sha512-4TJn/8FKLeslLAH3dnohXqE3QSoxkhvaMzepOIZytwJXZO69Bfz0HBdDHzOTOon6G59Zrk6VQ2bEiv1t61rfkA==}
+
   fast-xml-parser@5.3.5:
     resolution: {integrity: sha512-JeaA2Vm9ffQKp9VjvfzObuMCjUYAp5WDYhRYL5LrBPY/jUDlUtOvDfot0vKSkB9tuX885BDHjtw4fZadD95wnA==}
     hasBin: true
@@ -5191,6 +5961,10 @@ packages:
     resolution: {integrity: sha512-QNI3sAvSvaOiaMl8FYU4trnEzCwiRr8XMWgAHzlrWpTSj+QaCSvOf1h82OEP1s4hiAXhnbXSyFWCf4ldZzZRVA==}
     hasBin: true
 
+  fast-xml-parser@5.7.2:
+    resolution: {integrity: sha512-P7oW7tLbYnhOLQk/Gv7cZgzgMPP/XN03K02/Jy6Y/NHzyIAIpxuZIM/YqAkfiXFPxA2CTm7NtCijK9EDu09u2w==}
+    hasBin: true
+
   fastest-levenshtein@1.0.16:
     resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==}
     engines: {node: '>= 4.9.1'}
@@ -5210,6 +5984,9 @@ packages:
       picomatch:
         optional: true
 
+  fecha@4.2.3:
+    resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==}
+
   fetch-blob@3.2.0:
     resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==}
     engines: {node: ^12.20 || >= 14.13}
@@ -5262,6 +6039,9 @@ packages:
   flatted@3.3.3:
     resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==}
 
+  fn.name@1.1.0:
+    resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==}
+
   focus-trap@8.0.1:
     resolution: {integrity: sha512-9ptSG6z51YQOstI/oN4XuVGP/03u2nh0g//qz7L6zX0i6PZiPnkcf3GenXq7N2hZnASXaMxTPpbKwdI+PFvxlw==}
 
@@ -5294,6 +6074,10 @@ packages:
     resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==}
     engines: {node: '>=12.20.0'}
 
+  formidable@3.5.4:
+    resolution: {integrity: sha512-YikH+7CUTOtP44ZTnUhR7Ic2UASBPOqmaRkRKxRbywPTe5VxF7RRCck4af9wutiZ/QKM5nME9Bie2fFaPz5Gug==}
+    engines: {node: '>=14.0.0'}
+
   forwarded@0.2.0:
     resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==}
     engines: {node: '>= 0.6'}
@@ -6017,6 +6801,9 @@ packages:
   jszip@3.10.1:
     resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==}
 
+  just-extend@6.2.0:
+    resolution: {integrity: sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw==}
+
   jwa@2.0.1:
     resolution: {integrity: sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==}
 
@@ -6029,6 +6816,9 @@ packages:
   keyv@4.5.4:
     resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
 
+  kuler@2.0.0:
+    resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==}
+
   leven@3.1.0:
     resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==}
     engines: {node: '>=6'}
@@ -6099,6 +6889,10 @@ packages:
     resolution: {integrity: sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==}
     engines: {node: '>=18'}
 
+  logform@2.7.0:
+    resolution: {integrity: sha512-TFYA4jnP7PVbmlBIfhlSe+WKxs9dklXMTEGcBCIvLhE/Tn3H6Gk1norupVW7m5Cnd4bLcr08AytbyV/xj7f/kQ==}
+    engines: {node: '>= 12.0.0'}
+
   long@5.3.2:
     resolution: {integrity: sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==}
 
@@ -6251,6 +7045,11 @@ packages:
     engines: {node: '>=4'}
     hasBin: true
 
+  mime@2.6.0:
+    resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==}
+    engines: {node: '>=4.0.0'}
+    hasBin: true
+
   mimic-function@5.0.1:
     resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==}
     engines: {node: '>=18'}
@@ -6384,6 +7183,9 @@ packages:
     resolution: {integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==}
     engines: {node: '>= 0.6'}
 
+  nise@6.1.5:
+    resolution: {integrity: sha512-SnRDPDBjxZZoU2n0+gzzLtSvo1OZo7j6jnbXsoh3AFxEGhaFU7ZF0TmefuKERq79wxR2U+MPn7ArW+Tl+clC3A==}
+
   no-case@3.0.4:
     resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==}
 
@@ -6578,6 +7380,9 @@ packages:
   once@1.4.0:
     resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
 
+  one-time@1.0.0:
+    resolution: {integrity: sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==}
+
   onetime@7.0.0:
     resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==}
     engines: {node: '>=18'}
@@ -6741,6 +7546,10 @@ packages:
     resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
     engines: {node: '>=8'}
 
+  path-expression-matcher@1.5.0:
+    resolution: {integrity: sha512-cbrerZV+6rvdQrrD+iGMcZFEiiSrbv9Tfdkvnusy6y0x0GKBXREFg/Y65GhIfm0tnLntThhzCnfKwp1WRjeCyQ==}
+    engines: {node: '>=14.0.0'}
+
   path-is-absolute@1.0.1:
     resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
     engines: {node: '>=0.10.0'}
@@ -7328,6 +8137,9 @@ packages:
   simple-get@4.0.1:
     resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==}
 
+  sinon@18.0.1:
+    resolution: {integrity: sha512-a2N2TDY1uGviajJ6r4D1CyRAkzE9NNVlYOV1wX5xQDuAk0ONgzgRl0EjCQuRCPxOwp13ghsMwt9Gdldujs39qw==}
+
   sinon@21.0.1:
     resolution: {integrity: sha512-Z0NVCW45W8Mg5oC/27/+fCqIHFnW8kpkFOq0j9XJIev4Ld0mKmERaZv5DMLAb9fGCevjKwaEeIQz5+MBXfZcDw==}
 
@@ -7401,6 +8213,9 @@ packages:
   stack-chain@1.3.7:
     resolution: {integrity: sha512-D8cWtWVdIe/jBA7v5p5Hwl5yOSOrmZPWDPe2KxQ5UAGD+nxbxU0lKXA4h85Ta6+qgdKVL3vUxsbIZjc1kBG7ug==}
 
+  stack-trace@0.0.10:
+    resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==}
+
   statuses@2.0.1:
     resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==}
     engines: {node: '>= 0.8'}
@@ -7491,9 +8306,20 @@ packages:
   strnum@2.1.2:
     resolution: {integrity: sha512-l63NF9y/cLROq/yqKXSLtcMeeyOfnSQlfMSlzFt/K73oIaD8DGaQWd7Z34X9GPiKqP5rbSh84Hl4bOlLcjiSrQ==}
 
+  strnum@2.2.3:
+    resolution: {integrity: sha512-oKx6RUCuHfT3oyVjtnrmn19H1SiCqgJSg+54XqURKp5aCMbrXrhLjRN9TjuwMjiYstZ0MzDrHqkGZ5dFTKd+zg==}
+
   structured-source@4.0.0:
     resolution: {integrity: sha512-qGzRFNJDjFieQkl/sVOI2dUjHKRyL9dAJi2gCPGJLbJHBIkyOHxjuocpIEfbLioX+qSJpvbYdT49/YCdMznKxA==}
 
+  superagent@10.3.0:
+    resolution: {integrity: sha512-B+4Ik7ROgVKrQsXTV0Jwp2u+PXYLSlqtDAhYnkkD+zn3yg8s/zjA2MeGayPoY/KICrbitwneDHrjSotxKL+0XQ==}
+    engines: {node: '>=14.18.0'}
+
+  supertest@7.1.4:
+    resolution: {integrity: sha512-tjLPs7dVyqgItVFirHYqe2T+MfWc2VOBQ8QFKKbWTA3PU7liZR8zoSpAi/C1k1ilm9RsXIKYf197oap9wXGVYg==}
+    engines: {node: '>=14.18.0'}
+
   supports-color@10.2.2:
     resolution: {integrity: sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==}
     engines: {node: '>=18'}
@@ -7574,6 +8400,9 @@ packages:
   text-decoder@1.2.3:
     resolution: {integrity: sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==}
 
+  text-hex@1.0.0:
+    resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==}
+
   text-table@0.2.0:
     resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
 
@@ -7635,6 +8464,10 @@ packages:
   trim-lines@3.0.1:
     resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==}
 
+  triple-beam@1.4.1:
+    resolution: {integrity: sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==}
+    engines: {node: '>= 14.0.0'}
+
   ts-api-utils@2.4.0:
     resolution: {integrity: sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==}
     engines: {node: '>=18.12'}
@@ -8041,6 +8874,14 @@ packages:
     resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==}
     engines: {node: '>=8'}
 
+  winston-transport@4.9.0:
+    resolution: {integrity: sha512-8drMJ4rkgaPo1Me4zD/3WLfI/zPdA9o2IipKODunnGDcuqbHwjsbB79ylv04LCGGzU0xQ6vTznOMpQGaLhhm6A==}
+    engines: {node: '>= 12.0.0'}
+
+  winston@3.19.0:
+    resolution: {integrity: sha512-LZNJgPzfKR+/J3cHkxcpHKpKKvGfDZVPS4hfJCc4cCG0CgYzvlD6yE/S3CIL/Yt91ak327YCpiF/0MyeZHEHKA==}
+    engines: {node: '>= 12.0.0'}
+
   word-wrap@1.2.5:
     resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==}
     engines: {node: '>=0.10.0'}
@@ -8188,20 +9029,20 @@ snapshots:
   '@aws-crypto/crc32@5.2.0':
     dependencies:
       '@aws-crypto/util': 5.2.0
-      '@aws-sdk/types': 3.922.0
+      '@aws-sdk/types': 3.973.1
       tslib: 2.8.1
 
   '@aws-crypto/crc32c@5.2.0':
     dependencies:
       '@aws-crypto/util': 5.2.0
-      '@aws-sdk/types': 3.922.0
+      '@aws-sdk/types': 3.973.1
       tslib: 2.8.1
 
   '@aws-crypto/sha1-browser@5.2.0':
     dependencies:
       '@aws-crypto/supports-web-crypto': 5.2.0
       '@aws-crypto/util': 5.2.0
-      '@aws-sdk/types': 3.922.0
+      '@aws-sdk/types': 3.973.1
       '@aws-sdk/util-locate-window': 3.893.0
       '@smithy/util-utf8': 2.3.0
       tslib: 2.8.1
@@ -8211,7 +9052,7 @@ snapshots:
       '@aws-crypto/sha256-js': 5.2.0
       '@aws-crypto/supports-web-crypto': 5.2.0
       '@aws-crypto/util': 5.2.0
-      '@aws-sdk/types': 3.936.0
+      '@aws-sdk/types': 3.973.1
       '@aws-sdk/util-locate-window': 3.893.0
       '@smithy/util-utf8': 2.3.0
       tslib: 2.8.1
@@ -8219,7 +9060,7 @@ snapshots:
   '@aws-crypto/sha256-js@5.2.0':
     dependencies:
       '@aws-crypto/util': 5.2.0
-      '@aws-sdk/types': 3.936.0
+      '@aws-sdk/types': 3.973.1
       tslib: 2.8.1
 
   '@aws-crypto/supports-web-crypto@5.2.0':
@@ -8228,7 +9069,7 @@ snapshots:
 
   '@aws-crypto/util@5.2.0':
     dependencies:
-      '@aws-sdk/types': 3.936.0
+      '@aws-sdk/types': 3.973.1
       '@smithy/util-utf8': 2.3.0
       tslib: 2.8.1
 
@@ -8261,7 +9102,7 @@ snapshots:
       '@smithy/node-config-provider': 4.3.5
       '@smithy/node-http-handler': 4.4.5
       '@smithy/protocol-http': 5.3.5
-      '@smithy/smithy-client': 4.9.3
+      '@smithy/smithy-client': 4.11.7
       '@smithy/types': 4.9.0
       '@smithy/url-parser': 4.2.5
       '@smithy/util-base64': 4.3.0
@@ -8279,7 +9120,7 @@ snapshots:
     transitivePeerDependencies:
       - aws-crt
 
-  '@aws-sdk/client-cloudwatch@3.952.0':
+  '@aws-sdk/client-cloudwatch-logs@3.952.0':
     dependencies:
       '@aws-crypto/sha256-browser': 5.2.0
       '@aws-crypto/sha256-js': 5.2.0
@@ -8294,10 +9135,57 @@ snapshots:
       '@aws-sdk/util-endpoints': 3.936.0
       '@aws-sdk/util-user-agent-browser': 3.936.0
       '@aws-sdk/util-user-agent-node': 3.947.0
-      '@smithy/config-resolver': 4.4.3
+      '@smithy/config-resolver': 4.4.7
       '@smithy/core': 3.23.4
-      '@smithy/fetch-http-handler': 5.3.6
-      '@smithy/hash-node': 4.2.5
+      '@smithy/eventstream-serde-browser': 4.2.5
+      '@smithy/eventstream-serde-config-resolver': 4.3.5
+      '@smithy/eventstream-serde-node': 4.2.5
+      '@smithy/fetch-http-handler': 5.3.10
+      '@smithy/hash-node': 4.2.9
+      '@smithy/invalid-dependency': 4.2.9
+      '@smithy/middleware-content-length': 4.2.9
+      '@smithy/middleware-endpoint': 4.4.18
+      '@smithy/middleware-retry': 4.4.35
+      '@smithy/middleware-serde': 4.2.10
+      '@smithy/middleware-stack': 4.2.9
+      '@smithy/node-config-provider': 4.3.9
+      '@smithy/node-http-handler': 4.4.11
+      '@smithy/protocol-http': 5.3.9
+      '@smithy/smithy-client': 4.11.7
+      '@smithy/types': 4.12.1
+      '@smithy/url-parser': 4.2.9
+      '@smithy/util-base64': 4.3.1
+      '@smithy/util-body-length-browser': 4.2.1
+      '@smithy/util-body-length-node': 4.2.1
+      '@smithy/util-defaults-mode-browser': 4.3.34
+      '@smithy/util-defaults-mode-node': 4.2.37
+      '@smithy/util-endpoints': 3.2.9
+      '@smithy/util-middleware': 4.2.9
+      '@smithy/util-retry': 4.2.9
+      '@smithy/util-utf8': 4.2.1
+      tslib: 2.8.1
+    transitivePeerDependencies:
+      - aws-crt
+
+  '@aws-sdk/client-cloudwatch@3.952.0':
+    dependencies:
+      '@aws-crypto/sha256-browser': 5.2.0
+      '@aws-crypto/sha256-js': 5.2.0
+      '@aws-sdk/core': 3.947.0
+      '@aws-sdk/credential-provider-node': 3.952.0
+      '@aws-sdk/middleware-host-header': 3.936.0
+      '@aws-sdk/middleware-logger': 3.936.0
+      '@aws-sdk/middleware-recursion-detection': 3.948.0
+      '@aws-sdk/middleware-user-agent': 3.947.0
+      '@aws-sdk/region-config-resolver': 3.936.0
+      '@aws-sdk/types': 3.936.0
+      '@aws-sdk/util-endpoints': 3.936.0
+      '@aws-sdk/util-user-agent-browser': 3.936.0
+      '@aws-sdk/util-user-agent-node': 3.947.0
+      '@smithy/config-resolver': 4.4.3
+      '@smithy/core': 3.23.4
+      '@smithy/fetch-http-handler': 5.3.6
+      '@smithy/hash-node': 4.2.5
       '@smithy/invalid-dependency': 4.2.5
       '@smithy/middleware-compression': 4.3.33
       '@smithy/middleware-content-length': 4.2.5
@@ -8358,15 +9246,64 @@ snapshots:
       '@smithy/smithy-client': 4.11.7
       '@smithy/types': 4.12.1
       '@smithy/url-parser': 4.2.9
-      '@smithy/util-base64': 4.3.0
-      '@smithy/util-body-length-browser': 4.2.0
+      '@smithy/util-base64': 4.3.1
+      '@smithy/util-body-length-browser': 4.2.1
       '@smithy/util-body-length-node': 4.2.1
       '@smithy/util-defaults-mode-browser': 4.3.34
       '@smithy/util-defaults-mode-node': 4.2.37
       '@smithy/util-endpoints': 3.2.9
       '@smithy/util-middleware': 4.2.9
       '@smithy/util-retry': 4.2.9
-      '@smithy/util-utf8': 4.2.0
+      '@smithy/util-utf8': 4.2.1
+      '@smithy/util-waiter': 4.2.9
+      tslib: 2.8.1
+    transitivePeerDependencies:
+      - aws-crt
+
+  '@aws-sdk/client-lambda@3.952.0':
+    dependencies:
+      '@aws-crypto/sha256-browser': 5.2.0
+      '@aws-crypto/sha256-js': 5.2.0
+      '@aws-sdk/core': 3.947.0
+      '@aws-sdk/credential-provider-node': 3.952.0
+      '@aws-sdk/middleware-host-header': 3.936.0
+      '@aws-sdk/middleware-logger': 3.936.0
+      '@aws-sdk/middleware-recursion-detection': 3.948.0
+      '@aws-sdk/middleware-user-agent': 3.947.0
+      '@aws-sdk/region-config-resolver': 3.936.0
+      '@aws-sdk/types': 3.936.0
+      '@aws-sdk/util-endpoints': 3.936.0
+      '@aws-sdk/util-user-agent-browser': 3.936.0
+      '@aws-sdk/util-user-agent-node': 3.947.0
+      '@smithy/config-resolver': 4.4.7
+      '@smithy/core': 3.23.4
+      '@smithy/eventstream-serde-browser': 4.2.5
+      '@smithy/eventstream-serde-config-resolver': 4.3.5
+      '@smithy/eventstream-serde-node': 4.2.5
+      '@smithy/fetch-http-handler': 5.3.10
+      '@smithy/hash-node': 4.2.9
+      '@smithy/invalid-dependency': 4.2.9
+      '@smithy/middleware-content-length': 4.2.9
+      '@smithy/middleware-endpoint': 4.4.18
+      '@smithy/middleware-retry': 4.4.35
+      '@smithy/middleware-serde': 4.2.10
+      '@smithy/middleware-stack': 4.2.9
+      '@smithy/node-config-provider': 4.3.9
+      '@smithy/node-http-handler': 4.4.11
+      '@smithy/protocol-http': 5.3.9
+      '@smithy/smithy-client': 4.11.7
+      '@smithy/types': 4.12.1
+      '@smithy/url-parser': 4.2.9
+      '@smithy/util-base64': 4.3.1
+      '@smithy/util-body-length-browser': 4.2.1
+      '@smithy/util-body-length-node': 4.2.1
+      '@smithy/util-defaults-mode-browser': 4.3.34
+      '@smithy/util-defaults-mode-node': 4.2.37
+      '@smithy/util-endpoints': 3.2.9
+      '@smithy/util-middleware': 4.2.9
+      '@smithy/util-retry': 4.2.9
+      '@smithy/util-stream': 4.5.14
+      '@smithy/util-utf8': 4.2.1
       '@smithy/util-waiter': 4.2.9
       tslib: 2.8.1
     transitivePeerDependencies:
@@ -8415,7 +9352,7 @@ snapshots:
       '@smithy/node-config-provider': 4.3.5
       '@smithy/node-http-handler': 4.4.5
       '@smithy/protocol-http': 5.3.5
-      '@smithy/smithy-client': 4.9.3
+      '@smithy/smithy-client': 4.11.7
       '@smithy/types': 4.9.0
       '@smithy/url-parser': 4.2.5
       '@smithy/util-base64': 4.3.0
@@ -8434,6 +9371,110 @@ snapshots:
     transitivePeerDependencies:
       - aws-crt
 
+  '@aws-sdk/client-s3@3.952.0':
+    dependencies:
+      '@aws-crypto/sha1-browser': 5.2.0
+      '@aws-crypto/sha256-browser': 5.2.0
+      '@aws-crypto/sha256-js': 5.2.0
+      '@aws-sdk/core': 3.947.0
+      '@aws-sdk/credential-provider-node': 3.952.0
+      '@aws-sdk/middleware-bucket-endpoint': 3.936.0
+      '@aws-sdk/middleware-expect-continue': 3.936.0
+      '@aws-sdk/middleware-flexible-checksums': 3.947.0
+      '@aws-sdk/middleware-host-header': 3.936.0
+      '@aws-sdk/middleware-location-constraint': 3.936.0
+      '@aws-sdk/middleware-logger': 3.936.0
+      '@aws-sdk/middleware-recursion-detection': 3.948.0
+      '@aws-sdk/middleware-sdk-s3': 3.947.0
+      '@aws-sdk/middleware-ssec': 3.936.0
+      '@aws-sdk/middleware-user-agent': 3.947.0
+      '@aws-sdk/region-config-resolver': 3.936.0
+      '@aws-sdk/signature-v4-multi-region': 3.947.0
+      '@aws-sdk/types': 3.936.0
+      '@aws-sdk/util-endpoints': 3.936.0
+      '@aws-sdk/util-user-agent-browser': 3.936.0
+      '@aws-sdk/util-user-agent-node': 3.947.0
+      '@smithy/config-resolver': 4.4.7
+      '@smithy/core': 3.23.4
+      '@smithy/eventstream-serde-browser': 4.2.5
+      '@smithy/eventstream-serde-config-resolver': 4.3.5
+      '@smithy/eventstream-serde-node': 4.2.5
+      '@smithy/fetch-http-handler': 5.3.10
+      '@smithy/hash-blob-browser': 4.2.6
+      '@smithy/hash-node': 4.2.9
+      '@smithy/hash-stream-node': 4.2.5
+      '@smithy/invalid-dependency': 4.2.9
+      '@smithy/md5-js': 4.2.5
+      '@smithy/middleware-content-length': 4.2.9
+      '@smithy/middleware-endpoint': 4.4.18
+      '@smithy/middleware-retry': 4.4.35
+      '@smithy/middleware-serde': 4.2.10
+      '@smithy/middleware-stack': 4.2.9
+      '@smithy/node-config-provider': 4.3.9
+      '@smithy/node-http-handler': 4.4.11
+      '@smithy/protocol-http': 5.3.9
+      '@smithy/smithy-client': 4.11.7
+      '@smithy/types': 4.12.1
+      '@smithy/url-parser': 4.2.9
+      '@smithy/util-base64': 4.3.1
+      '@smithy/util-body-length-browser': 4.2.1
+      '@smithy/util-body-length-node': 4.2.1
+      '@smithy/util-defaults-mode-browser': 4.3.34
+      '@smithy/util-defaults-mode-node': 4.2.37
+      '@smithy/util-endpoints': 3.2.9
+      '@smithy/util-middleware': 4.2.9
+      '@smithy/util-retry': 4.2.9
+      '@smithy/util-stream': 4.5.14
+      '@smithy/util-utf8': 4.2.1
+      '@smithy/util-waiter': 4.2.9
+      tslib: 2.8.1
+    transitivePeerDependencies:
+      - aws-crt
+
+  '@aws-sdk/client-secrets-manager@3.1004.0':
+    dependencies:
+      '@aws-crypto/sha256-browser': 5.2.0
+      '@aws-crypto/sha256-js': 5.2.0
+      '@aws-sdk/core': 3.974.8
+      '@aws-sdk/credential-provider-node': 3.972.39
+      '@aws-sdk/middleware-host-header': 3.972.10
+      '@aws-sdk/middleware-logger': 3.972.10
+      '@aws-sdk/middleware-recursion-detection': 3.972.11
+      '@aws-sdk/middleware-user-agent': 3.972.38
+      '@aws-sdk/region-config-resolver': 3.972.13
+      '@aws-sdk/types': 3.973.8
+      '@aws-sdk/util-endpoints': 3.996.8
+      '@aws-sdk/util-user-agent-browser': 3.972.10
+      '@aws-sdk/util-user-agent-node': 3.973.24
+      '@smithy/config-resolver': 4.4.17
+      '@smithy/core': 3.23.17
+      '@smithy/fetch-http-handler': 5.3.17
+      '@smithy/hash-node': 4.2.14
+      '@smithy/invalid-dependency': 4.2.14
+      '@smithy/middleware-content-length': 4.2.14
+      '@smithy/middleware-endpoint': 4.4.32
+      '@smithy/middleware-retry': 4.5.7
+      '@smithy/middleware-serde': 4.2.20
+      '@smithy/middleware-stack': 4.2.14
+      '@smithy/node-config-provider': 4.3.14
+      '@smithy/node-http-handler': 4.6.1
+      '@smithy/protocol-http': 5.3.14
+      '@smithy/smithy-client': 4.12.13
+      '@smithy/types': 4.14.1
+      '@smithy/url-parser': 4.2.14
+      '@smithy/util-base64': 4.3.2
+      '@smithy/util-body-length-browser': 4.2.2
+      '@smithy/util-body-length-node': 4.2.3
+      '@smithy/util-defaults-mode-browser': 4.3.49
+      '@smithy/util-defaults-mode-node': 4.2.54
+      '@smithy/util-endpoints': 3.4.2
+      '@smithy/util-middleware': 4.2.14
+      '@smithy/util-retry': 4.3.8
+      '@smithy/util-utf8': 4.2.2
+      tslib: 2.8.1
+    transitivePeerDependencies:
+      - aws-crt
+
   '@aws-sdk/client-sso@3.929.0':
     dependencies:
       '@aws-crypto/sha256-browser': 5.2.0
@@ -8448,31 +9489,31 @@ snapshots:
       '@aws-sdk/util-endpoints': 3.922.0
       '@aws-sdk/util-user-agent-browser': 3.922.0
       '@aws-sdk/util-user-agent-node': 3.928.0
-      '@smithy/config-resolver': 4.4.3
-      '@smithy/core': 3.18.0
-      '@smithy/fetch-http-handler': 5.3.6
-      '@smithy/hash-node': 4.2.5
-      '@smithy/invalid-dependency': 4.2.5
-      '@smithy/middleware-content-length': 4.2.5
-      '@smithy/middleware-endpoint': 4.3.7
-      '@smithy/middleware-retry': 4.4.7
-      '@smithy/middleware-serde': 4.2.5
-      '@smithy/middleware-stack': 4.2.5
-      '@smithy/node-config-provider': 4.3.5
-      '@smithy/node-http-handler': 4.4.5
-      '@smithy/protocol-http': 5.3.5
-      '@smithy/smithy-client': 4.9.3
-      '@smithy/types': 4.9.0
-      '@smithy/url-parser': 4.2.5
-      '@smithy/util-base64': 4.3.0
-      '@smithy/util-body-length-browser': 4.2.0
+      '@smithy/config-resolver': 4.4.7
+      '@smithy/core': 3.23.4
+      '@smithy/fetch-http-handler': 5.3.10
+      '@smithy/hash-node': 4.2.9
+      '@smithy/invalid-dependency': 4.2.9
+      '@smithy/middleware-content-length': 4.2.9
+      '@smithy/middleware-endpoint': 4.4.18
+      '@smithy/middleware-retry': 4.4.35
+      '@smithy/middleware-serde': 4.2.10
+      '@smithy/middleware-stack': 4.2.9
+      '@smithy/node-config-provider': 4.3.9
+      '@smithy/node-http-handler': 4.4.11
+      '@smithy/protocol-http': 5.3.9
+      '@smithy/smithy-client': 4.11.7
+      '@smithy/types': 4.12.1
+      '@smithy/url-parser': 4.2.9
+      '@smithy/util-base64': 4.3.1
+      '@smithy/util-body-length-browser': 4.2.1
       '@smithy/util-body-length-node': 4.2.1
-      '@smithy/util-defaults-mode-browser': 4.3.6
-      '@smithy/util-defaults-mode-node': 4.2.9
-      '@smithy/util-endpoints': 3.2.5
-      '@smithy/util-middleware': 4.2.5
-      '@smithy/util-retry': 4.2.5
-      '@smithy/util-utf8': 4.2.0
+      '@smithy/util-defaults-mode-browser': 4.3.34
+      '@smithy/util-defaults-mode-node': 4.2.37
+      '@smithy/util-endpoints': 3.2.9
+      '@smithy/util-middleware': 4.2.9
+      '@smithy/util-retry': 4.2.9
+      '@smithy/util-utf8': 4.2.1
       tslib: 2.8.1
     transitivePeerDependencies:
       - aws-crt
@@ -8491,31 +9532,31 @@ snapshots:
       '@aws-sdk/util-endpoints': 3.936.0
       '@aws-sdk/util-user-agent-browser': 3.936.0
       '@aws-sdk/util-user-agent-node': 3.947.0
-      '@smithy/config-resolver': 4.4.3
+      '@smithy/config-resolver': 4.4.7
       '@smithy/core': 3.23.4
-      '@smithy/fetch-http-handler': 5.3.6
-      '@smithy/hash-node': 4.2.5
-      '@smithy/invalid-dependency': 4.2.5
-      '@smithy/middleware-content-length': 4.2.5
+      '@smithy/fetch-http-handler': 5.3.10
+      '@smithy/hash-node': 4.2.9
+      '@smithy/invalid-dependency': 4.2.9
+      '@smithy/middleware-content-length': 4.2.9
       '@smithy/middleware-endpoint': 4.4.18
       '@smithy/middleware-retry': 4.4.35
       '@smithy/middleware-serde': 4.2.10
-      '@smithy/middleware-stack': 4.2.5
-      '@smithy/node-config-provider': 4.3.5
-      '@smithy/node-http-handler': 4.4.5
-      '@smithy/protocol-http': 5.3.5
+      '@smithy/middleware-stack': 4.2.9
+      '@smithy/node-config-provider': 4.3.9
+      '@smithy/node-http-handler': 4.4.11
+      '@smithy/protocol-http': 5.3.9
       '@smithy/smithy-client': 4.11.7
-      '@smithy/types': 4.9.0
-      '@smithy/url-parser': 4.2.5
-      '@smithy/util-base64': 4.3.0
-      '@smithy/util-body-length-browser': 4.2.0
+      '@smithy/types': 4.12.1
+      '@smithy/url-parser': 4.2.9
+      '@smithy/util-base64': 4.3.1
+      '@smithy/util-body-length-browser': 4.2.1
       '@smithy/util-body-length-node': 4.2.1
       '@smithy/util-defaults-mode-browser': 4.3.34
       '@smithy/util-defaults-mode-node': 4.2.37
-      '@smithy/util-endpoints': 3.2.5
-      '@smithy/util-middleware': 4.2.5
-      '@smithy/util-retry': 4.2.5
-      '@smithy/util-utf8': 4.2.0
+      '@smithy/util-endpoints': 3.2.9
+      '@smithy/util-middleware': 4.2.9
+      '@smithy/util-retry': 4.2.9
+      '@smithy/util-utf8': 4.2.1
       tslib: 2.8.1
     transitivePeerDependencies:
       - aws-crt
@@ -8550,15 +9591,15 @@ snapshots:
       '@smithy/smithy-client': 4.11.7
       '@smithy/types': 4.12.1
       '@smithy/url-parser': 4.2.9
-      '@smithy/util-base64': 4.3.0
-      '@smithy/util-body-length-browser': 4.2.0
+      '@smithy/util-base64': 4.3.1
+      '@smithy/util-body-length-browser': 4.2.1
       '@smithy/util-body-length-node': 4.2.1
       '@smithy/util-defaults-mode-browser': 4.3.34
       '@smithy/util-defaults-mode-node': 4.2.37
       '@smithy/util-endpoints': 3.2.9
       '@smithy/util-middleware': 4.2.9
       '@smithy/util-retry': 4.2.9
-      '@smithy/util-utf8': 4.2.0
+      '@smithy/util-utf8': 4.2.1
       tslib: 2.8.1
     transitivePeerDependencies:
       - aws-crt
@@ -8567,16 +9608,16 @@ snapshots:
     dependencies:
       '@aws-sdk/types': 3.922.0
       '@aws-sdk/xml-builder': 3.921.0
-      '@smithy/core': 3.18.0
-      '@smithy/node-config-provider': 4.3.5
+      '@smithy/core': 3.23.4
+      '@smithy/node-config-provider': 4.3.9
       '@smithy/property-provider': 4.2.5
-      '@smithy/protocol-http': 5.3.5
+      '@smithy/protocol-http': 5.3.9
       '@smithy/signature-v4': 5.3.5
-      '@smithy/smithy-client': 4.9.3
-      '@smithy/types': 4.9.0
-      '@smithy/util-base64': 4.3.0
-      '@smithy/util-middleware': 4.2.5
-      '@smithy/util-utf8': 4.2.0
+      '@smithy/smithy-client': 4.11.7
+      '@smithy/types': 4.12.1
+      '@smithy/util-base64': 4.3.1
+      '@smithy/util-middleware': 4.2.9
+      '@smithy/util-utf8': 4.2.1
       tslib: 2.8.1
 
   '@aws-sdk/core@3.947.0':
@@ -8584,15 +9625,15 @@ snapshots:
       '@aws-sdk/types': 3.936.0
       '@aws-sdk/xml-builder': 3.930.0
       '@smithy/core': 3.23.4
-      '@smithy/node-config-provider': 4.3.5
-      '@smithy/property-provider': 4.2.5
-      '@smithy/protocol-http': 5.3.5
-      '@smithy/signature-v4': 5.3.5
+      '@smithy/node-config-provider': 4.3.9
+      '@smithy/property-provider': 4.2.9
+      '@smithy/protocol-http': 5.3.9
+      '@smithy/signature-v4': 5.3.9
       '@smithy/smithy-client': 4.11.7
-      '@smithy/types': 4.9.0
-      '@smithy/util-base64': 4.3.0
-      '@smithy/util-middleware': 4.2.5
-      '@smithy/util-utf8': 4.2.0
+      '@smithy/types': 4.12.1
+      '@smithy/util-base64': 4.3.1
+      '@smithy/util-middleware': 4.2.9
+      '@smithy/util-utf8': 4.2.1
       tslib: 2.8.1
 
   '@aws-sdk/core@3.973.12':
@@ -8606,25 +9647,42 @@ snapshots:
       '@smithy/signature-v4': 5.3.9
       '@smithy/smithy-client': 4.11.7
       '@smithy/types': 4.12.1
-      '@smithy/util-base64': 4.3.0
+      '@smithy/util-base64': 4.3.1
       '@smithy/util-middleware': 4.2.9
-      '@smithy/util-utf8': 4.2.0
+      '@smithy/util-utf8': 4.2.1
+      tslib: 2.8.1
+
+  '@aws-sdk/core@3.974.8':
+    dependencies:
+      '@aws-sdk/types': 3.973.8
+      '@aws-sdk/xml-builder': 3.972.22
+      '@smithy/core': 3.23.17
+      '@smithy/node-config-provider': 4.3.14
+      '@smithy/property-provider': 4.2.14
+      '@smithy/protocol-http': 5.3.14
+      '@smithy/signature-v4': 5.3.14
+      '@smithy/smithy-client': 4.12.13
+      '@smithy/types': 4.14.1
+      '@smithy/util-base64': 4.3.2
+      '@smithy/util-middleware': 4.2.14
+      '@smithy/util-retry': 4.3.8
+      '@smithy/util-utf8': 4.2.2
       tslib: 2.8.1
 
   '@aws-sdk/credential-provider-env@3.928.0':
     dependencies:
       '@aws-sdk/core': 3.928.0
       '@aws-sdk/types': 3.922.0
-      '@smithy/property-provider': 4.2.5
-      '@smithy/types': 4.9.0
+      '@smithy/property-provider': 4.2.9
+      '@smithy/types': 4.12.1
       tslib: 2.8.1
 
   '@aws-sdk/credential-provider-env@3.947.0':
     dependencies:
       '@aws-sdk/core': 3.947.0
       '@aws-sdk/types': 3.936.0
-      '@smithy/property-provider': 4.2.5
-      '@smithy/types': 4.9.0
+      '@smithy/property-provider': 4.2.9
+      '@smithy/types': 4.12.1
       tslib: 2.8.1
 
   '@aws-sdk/credential-provider-env@3.972.10':
@@ -8635,30 +9693,38 @@ snapshots:
       '@smithy/types': 4.12.1
       tslib: 2.8.1
 
+  '@aws-sdk/credential-provider-env@3.972.34':
+    dependencies:
+      '@aws-sdk/core': 3.974.8
+      '@aws-sdk/types': 3.973.8
+      '@smithy/property-provider': 4.2.14
+      '@smithy/types': 4.14.1
+      tslib: 2.8.1
+
   '@aws-sdk/credential-provider-http@3.928.0':
     dependencies:
       '@aws-sdk/core': 3.928.0
       '@aws-sdk/types': 3.922.0
-      '@smithy/fetch-http-handler': 5.3.6
-      '@smithy/node-http-handler': 4.4.5
-      '@smithy/property-provider': 4.2.5
-      '@smithy/protocol-http': 5.3.5
-      '@smithy/smithy-client': 4.9.3
-      '@smithy/types': 4.9.0
-      '@smithy/util-stream': 4.5.6
+      '@smithy/fetch-http-handler': 5.3.10
+      '@smithy/node-http-handler': 4.4.11
+      '@smithy/property-provider': 4.2.9
+      '@smithy/protocol-http': 5.3.9
+      '@smithy/smithy-client': 4.11.7
+      '@smithy/types': 4.12.1
+      '@smithy/util-stream': 4.5.14
       tslib: 2.8.1
 
   '@aws-sdk/credential-provider-http@3.947.0':
     dependencies:
       '@aws-sdk/core': 3.947.0
       '@aws-sdk/types': 3.936.0
-      '@smithy/fetch-http-handler': 5.3.6
-      '@smithy/node-http-handler': 4.4.5
-      '@smithy/property-provider': 4.2.5
-      '@smithy/protocol-http': 5.3.5
+      '@smithy/fetch-http-handler': 5.3.10
+      '@smithy/node-http-handler': 4.4.11
+      '@smithy/property-provider': 4.2.9
+      '@smithy/protocol-http': 5.3.9
       '@smithy/smithy-client': 4.11.7
-      '@smithy/types': 4.9.0
-      '@smithy/util-stream': 4.5.6
+      '@smithy/types': 4.12.1
+      '@smithy/util-stream': 4.5.14
       tslib: 2.8.1
 
   '@aws-sdk/credential-provider-http@3.972.12':
@@ -8674,6 +9740,19 @@ snapshots:
       '@smithy/util-stream': 4.5.14
       tslib: 2.8.1
 
+  '@aws-sdk/credential-provider-http@3.972.36':
+    dependencies:
+      '@aws-sdk/core': 3.974.8
+      '@aws-sdk/types': 3.973.8
+      '@smithy/fetch-http-handler': 5.3.17
+      '@smithy/node-http-handler': 4.6.1
+      '@smithy/property-provider': 4.2.14
+      '@smithy/protocol-http': 5.3.14
+      '@smithy/smithy-client': 4.12.13
+      '@smithy/types': 4.14.1
+      '@smithy/util-stream': 4.5.25
+      tslib: 2.8.1
+
   '@aws-sdk/credential-provider-ini@3.929.0':
     dependencies:
       '@aws-sdk/core': 3.928.0
@@ -8684,10 +9763,10 @@ snapshots:
       '@aws-sdk/credential-provider-web-identity': 3.929.0
       '@aws-sdk/nested-clients': 3.929.0
       '@aws-sdk/types': 3.922.0
-      '@smithy/credential-provider-imds': 4.2.5
-      '@smithy/property-provider': 4.2.5
-      '@smithy/shared-ini-file-loader': 4.4.0
-      '@smithy/types': 4.9.0
+      '@smithy/credential-provider-imds': 4.2.9
+      '@smithy/property-provider': 4.2.9
+      '@smithy/shared-ini-file-loader': 4.4.4
+      '@smithy/types': 4.12.1
       tslib: 2.8.1
     transitivePeerDependencies:
       - aws-crt
@@ -8703,10 +9782,10 @@ snapshots:
       '@aws-sdk/credential-provider-web-identity': 3.952.0
       '@aws-sdk/nested-clients': 3.952.0
       '@aws-sdk/types': 3.936.0
-      '@smithy/credential-provider-imds': 4.2.5
-      '@smithy/property-provider': 4.2.5
-      '@smithy/shared-ini-file-loader': 4.4.0
-      '@smithy/types': 4.9.0
+      '@smithy/credential-provider-imds': 4.2.9
+      '@smithy/property-provider': 4.2.9
+      '@smithy/shared-ini-file-loader': 4.4.4
+      '@smithy/types': 4.12.1
       tslib: 2.8.1
     transitivePeerDependencies:
       - aws-crt
@@ -8730,15 +9809,34 @@ snapshots:
     transitivePeerDependencies:
       - aws-crt
 
+  '@aws-sdk/credential-provider-ini@3.972.38':
+    dependencies:
+      '@aws-sdk/core': 3.974.8
+      '@aws-sdk/credential-provider-env': 3.972.34
+      '@aws-sdk/credential-provider-http': 3.972.36
+      '@aws-sdk/credential-provider-login': 3.972.38
+      '@aws-sdk/credential-provider-process': 3.972.34
+      '@aws-sdk/credential-provider-sso': 3.972.38
+      '@aws-sdk/credential-provider-web-identity': 3.972.38
+      '@aws-sdk/nested-clients': 3.997.6
+      '@aws-sdk/types': 3.973.8
+      '@smithy/credential-provider-imds': 4.2.14
+      '@smithy/property-provider': 4.2.14
+      '@smithy/shared-ini-file-loader': 4.4.9
+      '@smithy/types': 4.14.1
+      tslib: 2.8.1
+    transitivePeerDependencies:
+      - aws-crt
+
   '@aws-sdk/credential-provider-login@3.952.0':
     dependencies:
       '@aws-sdk/core': 3.947.0
       '@aws-sdk/nested-clients': 3.952.0
       '@aws-sdk/types': 3.936.0
-      '@smithy/property-provider': 4.2.5
-      '@smithy/protocol-http': 5.3.5
-      '@smithy/shared-ini-file-loader': 4.4.0
-      '@smithy/types': 4.9.0
+      '@smithy/property-provider': 4.2.9
+      '@smithy/protocol-http': 5.3.9
+      '@smithy/shared-ini-file-loader': 4.4.4
+      '@smithy/types': 4.12.1
       tslib: 2.8.1
     transitivePeerDependencies:
       - aws-crt
@@ -8756,6 +9854,19 @@ snapshots:
     transitivePeerDependencies:
       - aws-crt
 
+  '@aws-sdk/credential-provider-login@3.972.38':
+    dependencies:
+      '@aws-sdk/core': 3.974.8
+      '@aws-sdk/nested-clients': 3.997.6
+      '@aws-sdk/types': 3.973.8
+      '@smithy/property-provider': 4.2.14
+      '@smithy/protocol-http': 5.3.14
+      '@smithy/shared-ini-file-loader': 4.4.9
+      '@smithy/types': 4.14.1
+      tslib: 2.8.1
+    transitivePeerDependencies:
+      - aws-crt
+
   '@aws-sdk/credential-provider-node@3.929.0':
     dependencies:
       '@aws-sdk/credential-provider-env': 3.928.0
@@ -8768,7 +9879,7 @@ snapshots:
       '@smithy/credential-provider-imds': 4.2.5
       '@smithy/property-provider': 4.2.5
       '@smithy/shared-ini-file-loader': 4.4.0
-      '@smithy/types': 4.9.0
+      '@smithy/types': 4.12.1
       tslib: 2.8.1
     transitivePeerDependencies:
       - aws-crt
@@ -8782,10 +9893,10 @@ snapshots:
       '@aws-sdk/credential-provider-sso': 3.952.0
       '@aws-sdk/credential-provider-web-identity': 3.952.0
       '@aws-sdk/types': 3.936.0
-      '@smithy/credential-provider-imds': 4.2.5
-      '@smithy/property-provider': 4.2.5
-      '@smithy/shared-ini-file-loader': 4.4.0
-      '@smithy/types': 4.9.0
+      '@smithy/credential-provider-imds': 4.2.9
+      '@smithy/property-provider': 4.2.9
+      '@smithy/shared-ini-file-loader': 4.4.4
+      '@smithy/types': 4.12.1
       tslib: 2.8.1
     transitivePeerDependencies:
       - aws-crt
@@ -8807,22 +9918,39 @@ snapshots:
     transitivePeerDependencies:
       - aws-crt
 
+  '@aws-sdk/credential-provider-node@3.972.39':
+    dependencies:
+      '@aws-sdk/credential-provider-env': 3.972.34
+      '@aws-sdk/credential-provider-http': 3.972.36
+      '@aws-sdk/credential-provider-ini': 3.972.38
+      '@aws-sdk/credential-provider-process': 3.972.34
+      '@aws-sdk/credential-provider-sso': 3.972.38
+      '@aws-sdk/credential-provider-web-identity': 3.972.38
+      '@aws-sdk/types': 3.973.8
+      '@smithy/credential-provider-imds': 4.2.14
+      '@smithy/property-provider': 4.2.14
+      '@smithy/shared-ini-file-loader': 4.4.9
+      '@smithy/types': 4.14.1
+      tslib: 2.8.1
+    transitivePeerDependencies:
+      - aws-crt
+
   '@aws-sdk/credential-provider-process@3.928.0':
     dependencies:
       '@aws-sdk/core': 3.928.0
       '@aws-sdk/types': 3.922.0
-      '@smithy/property-provider': 4.2.5
-      '@smithy/shared-ini-file-loader': 4.4.0
-      '@smithy/types': 4.9.0
+      '@smithy/property-provider': 4.2.9
+      '@smithy/shared-ini-file-loader': 4.4.4
+      '@smithy/types': 4.12.1
       tslib: 2.8.1
 
   '@aws-sdk/credential-provider-process@3.947.0':
     dependencies:
       '@aws-sdk/core': 3.947.0
       '@aws-sdk/types': 3.936.0
-      '@smithy/property-provider': 4.2.5
-      '@smithy/shared-ini-file-loader': 4.4.0
-      '@smithy/types': 4.9.0
+      '@smithy/property-provider': 4.2.9
+      '@smithy/shared-ini-file-loader': 4.4.4
+      '@smithy/types': 4.12.1
       tslib: 2.8.1
 
   '@aws-sdk/credential-provider-process@3.972.10':
@@ -8834,15 +9962,24 @@ snapshots:
       '@smithy/types': 4.12.1
       tslib: 2.8.1
 
+  '@aws-sdk/credential-provider-process@3.972.34':
+    dependencies:
+      '@aws-sdk/core': 3.974.8
+      '@aws-sdk/types': 3.973.8
+      '@smithy/property-provider': 4.2.14
+      '@smithy/shared-ini-file-loader': 4.4.9
+      '@smithy/types': 4.14.1
+      tslib: 2.8.1
+
   '@aws-sdk/credential-provider-sso@3.929.0':
     dependencies:
       '@aws-sdk/client-sso': 3.929.0
       '@aws-sdk/core': 3.928.0
       '@aws-sdk/token-providers': 3.929.0
       '@aws-sdk/types': 3.922.0
-      '@smithy/property-provider': 4.2.5
-      '@smithy/shared-ini-file-loader': 4.4.0
-      '@smithy/types': 4.9.0
+      '@smithy/property-provider': 4.2.9
+      '@smithy/shared-ini-file-loader': 4.4.4
+      '@smithy/types': 4.12.1
       tslib: 2.8.1
     transitivePeerDependencies:
       - aws-crt
@@ -8853,9 +9990,9 @@ snapshots:
       '@aws-sdk/core': 3.947.0
       '@aws-sdk/token-providers': 3.952.0
       '@aws-sdk/types': 3.936.0
-      '@smithy/property-provider': 4.2.5
-      '@smithy/shared-ini-file-loader': 4.4.0
-      '@smithy/types': 4.9.0
+      '@smithy/property-provider': 4.2.9
+      '@smithy/shared-ini-file-loader': 4.4.4
+      '@smithy/types': 4.12.1
       tslib: 2.8.1
     transitivePeerDependencies:
       - aws-crt
@@ -8873,14 +10010,27 @@ snapshots:
     transitivePeerDependencies:
       - aws-crt
 
+  '@aws-sdk/credential-provider-sso@3.972.38':
+    dependencies:
+      '@aws-sdk/core': 3.974.8
+      '@aws-sdk/nested-clients': 3.997.6
+      '@aws-sdk/token-providers': 3.1041.0
+      '@aws-sdk/types': 3.973.8
+      '@smithy/property-provider': 4.2.14
+      '@smithy/shared-ini-file-loader': 4.4.9
+      '@smithy/types': 4.14.1
+      tslib: 2.8.1
+    transitivePeerDependencies:
+      - aws-crt
+
   '@aws-sdk/credential-provider-web-identity@3.929.0':
     dependencies:
       '@aws-sdk/core': 3.928.0
       '@aws-sdk/nested-clients': 3.929.0
       '@aws-sdk/types': 3.922.0
-      '@smithy/property-provider': 4.2.5
-      '@smithy/shared-ini-file-loader': 4.4.0
-      '@smithy/types': 4.9.0
+      '@smithy/property-provider': 4.2.9
+      '@smithy/shared-ini-file-loader': 4.4.4
+      '@smithy/types': 4.12.1
       tslib: 2.8.1
     transitivePeerDependencies:
       - aws-crt
@@ -8890,9 +10040,9 @@ snapshots:
       '@aws-sdk/core': 3.947.0
       '@aws-sdk/nested-clients': 3.952.0
       '@aws-sdk/types': 3.936.0
-      '@smithy/property-provider': 4.2.5
-      '@smithy/shared-ini-file-loader': 4.4.0
-      '@smithy/types': 4.9.0
+      '@smithy/property-provider': 4.2.9
+      '@smithy/shared-ini-file-loader': 4.4.4
+      '@smithy/types': 4.12.1
       tslib: 2.8.1
     transitivePeerDependencies:
       - aws-crt
@@ -8909,13 +10059,25 @@ snapshots:
     transitivePeerDependencies:
       - aws-crt
 
+  '@aws-sdk/credential-provider-web-identity@3.972.38':
+    dependencies:
+      '@aws-sdk/core': 3.974.8
+      '@aws-sdk/nested-clients': 3.997.6
+      '@aws-sdk/types': 3.973.8
+      '@smithy/property-provider': 4.2.14
+      '@smithy/shared-ini-file-loader': 4.4.9
+      '@smithy/types': 4.14.1
+      tslib: 2.8.1
+    transitivePeerDependencies:
+      - aws-crt
+
   '@aws-sdk/dynamodb-codec@3.972.13':
     dependencies:
       '@aws-sdk/core': 3.973.12
       '@smithy/core': 3.23.4
       '@smithy/smithy-client': 4.11.7
       '@smithy/types': 4.12.1
-      '@smithy/util-base64': 4.3.0
+      '@smithy/util-base64': 4.3.1
       tslib: 2.8.1
 
   '@aws-sdk/endpoint-cache@3.972.2':
@@ -8937,12 +10099,22 @@ snapshots:
     dependencies:
       '@aws-sdk/types': 3.922.0
       '@aws-sdk/util-arn-parser': 3.893.0
-      '@smithy/node-config-provider': 4.3.5
-      '@smithy/protocol-http': 5.3.5
-      '@smithy/types': 4.9.0
+      '@smithy/node-config-provider': 4.3.9
+      '@smithy/protocol-http': 5.3.9
+      '@smithy/types': 4.12.1
       '@smithy/util-config-provider': 4.2.0
       tslib: 2.8.1
 
+  '@aws-sdk/middleware-bucket-endpoint@3.936.0':
+    dependencies:
+      '@aws-sdk/types': 3.936.0
+      '@aws-sdk/util-arn-parser': 3.893.0
+      '@smithy/node-config-provider': 4.3.9
+      '@smithy/protocol-http': 5.3.9
+      '@smithy/types': 4.12.1
+      '@smithy/util-config-provider': 4.2.1
+      tslib: 2.8.1
+
   '@aws-sdk/middleware-endpoint-discovery@3.972.3':
     dependencies:
       '@aws-sdk/endpoint-cache': 3.972.2
@@ -8955,8 +10127,15 @@ snapshots:
   '@aws-sdk/middleware-expect-continue@3.922.0':
     dependencies:
       '@aws-sdk/types': 3.922.0
-      '@smithy/protocol-http': 5.3.5
-      '@smithy/types': 4.9.0
+      '@smithy/protocol-http': 5.3.9
+      '@smithy/types': 4.12.1
+      tslib: 2.8.1
+
+  '@aws-sdk/middleware-expect-continue@3.936.0':
+    dependencies:
+      '@aws-sdk/types': 3.936.0
+      '@smithy/protocol-http': 5.3.9
+      '@smithy/types': 4.12.1
       tslib: 2.8.1
 
   '@aws-sdk/middleware-flexible-checksums@3.928.0':
@@ -8967,26 +10146,49 @@ snapshots:
       '@aws-sdk/core': 3.928.0
       '@aws-sdk/types': 3.922.0
       '@smithy/is-array-buffer': 4.2.0
-      '@smithy/node-config-provider': 4.3.5
-      '@smithy/protocol-http': 5.3.5
-      '@smithy/types': 4.9.0
-      '@smithy/util-middleware': 4.2.5
-      '@smithy/util-stream': 4.5.6
-      '@smithy/util-utf8': 4.2.0
+      '@smithy/node-config-provider': 4.3.9
+      '@smithy/protocol-http': 5.3.9
+      '@smithy/types': 4.12.1
+      '@smithy/util-middleware': 4.2.9
+      '@smithy/util-stream': 4.5.14
+      '@smithy/util-utf8': 4.2.1
+      tslib: 2.8.1
+
+  '@aws-sdk/middleware-flexible-checksums@3.947.0':
+    dependencies:
+      '@aws-crypto/crc32': 5.2.0
+      '@aws-crypto/crc32c': 5.2.0
+      '@aws-crypto/util': 5.2.0
+      '@aws-sdk/core': 3.947.0
+      '@aws-sdk/types': 3.936.0
+      '@smithy/is-array-buffer': 4.2.1
+      '@smithy/node-config-provider': 4.3.9
+      '@smithy/protocol-http': 5.3.9
+      '@smithy/types': 4.12.1
+      '@smithy/util-middleware': 4.2.9
+      '@smithy/util-stream': 4.5.14
+      '@smithy/util-utf8': 4.2.1
       tslib: 2.8.1
 
   '@aws-sdk/middleware-host-header@3.922.0':
     dependencies:
       '@aws-sdk/types': 3.922.0
-      '@smithy/protocol-http': 5.3.5
-      '@smithy/types': 4.9.0
+      '@smithy/protocol-http': 5.3.9
+      '@smithy/types': 4.12.1
       tslib: 2.8.1
 
   '@aws-sdk/middleware-host-header@3.936.0':
     dependencies:
       '@aws-sdk/types': 3.936.0
-      '@smithy/protocol-http': 5.3.5
-      '@smithy/types': 4.9.0
+      '@smithy/protocol-http': 5.3.9
+      '@smithy/types': 4.12.1
+      tslib: 2.8.1
+
+  '@aws-sdk/middleware-host-header@3.972.10':
+    dependencies:
+      '@aws-sdk/types': 3.973.8
+      '@smithy/protocol-http': 5.3.14
+      '@smithy/types': 4.14.1
       tslib: 2.8.1
 
   '@aws-sdk/middleware-host-header@3.972.3':
@@ -8999,19 +10201,31 @@ snapshots:
   '@aws-sdk/middleware-location-constraint@3.922.0':
     dependencies:
       '@aws-sdk/types': 3.922.0
-      '@smithy/types': 4.9.0
+      '@smithy/types': 4.12.1
+      tslib: 2.8.1
+
+  '@aws-sdk/middleware-location-constraint@3.936.0':
+    dependencies:
+      '@aws-sdk/types': 3.936.0
+      '@smithy/types': 4.12.1
       tslib: 2.8.1
 
   '@aws-sdk/middleware-logger@3.922.0':
     dependencies:
       '@aws-sdk/types': 3.922.0
-      '@smithy/types': 4.9.0
+      '@smithy/types': 4.12.1
       tslib: 2.8.1
 
   '@aws-sdk/middleware-logger@3.936.0':
     dependencies:
       '@aws-sdk/types': 3.936.0
-      '@smithy/types': 4.9.0
+      '@smithy/types': 4.12.1
+      tslib: 2.8.1
+
+  '@aws-sdk/middleware-logger@3.972.10':
+    dependencies:
+      '@aws-sdk/types': 3.973.8
+      '@smithy/types': 4.14.1
       tslib: 2.8.1
 
   '@aws-sdk/middleware-logger@3.972.3':
@@ -9024,16 +10238,24 @@ snapshots:
     dependencies:
       '@aws-sdk/types': 3.922.0
       '@aws/lambda-invoke-store': 0.1.1
-      '@smithy/protocol-http': 5.3.5
-      '@smithy/types': 4.9.0
+      '@smithy/protocol-http': 5.3.9
+      '@smithy/types': 4.12.1
       tslib: 2.8.1
 
   '@aws-sdk/middleware-recursion-detection@3.948.0':
     dependencies:
       '@aws-sdk/types': 3.936.0
       '@aws/lambda-invoke-store': 0.2.3
-      '@smithy/protocol-http': 5.3.5
-      '@smithy/types': 4.9.0
+      '@smithy/protocol-http': 5.3.9
+      '@smithy/types': 4.12.1
+      tslib: 2.8.1
+
+  '@aws-sdk/middleware-recursion-detection@3.972.11':
+    dependencies:
+      '@aws-sdk/types': 3.973.8
+      '@aws/lambda-invoke-store': 0.2.3
+      '@smithy/protocol-http': 5.3.14
+      '@smithy/types': 4.14.1
       tslib: 2.8.1
 
   '@aws-sdk/middleware-recursion-detection@3.972.3':
@@ -9049,22 +10271,62 @@ snapshots:
       '@aws-sdk/core': 3.928.0
       '@aws-sdk/types': 3.922.0
       '@aws-sdk/util-arn-parser': 3.893.0
-      '@smithy/core': 3.18.0
-      '@smithy/node-config-provider': 4.3.5
-      '@smithy/protocol-http': 5.3.5
+      '@smithy/core': 3.23.4
+      '@smithy/node-config-provider': 4.3.9
+      '@smithy/protocol-http': 5.3.9
       '@smithy/signature-v4': 5.3.5
-      '@smithy/smithy-client': 4.9.3
-      '@smithy/types': 4.9.0
+      '@smithy/smithy-client': 4.11.7
+      '@smithy/types': 4.12.1
       '@smithy/util-config-provider': 4.2.0
-      '@smithy/util-middleware': 4.2.5
-      '@smithy/util-stream': 4.5.6
-      '@smithy/util-utf8': 4.2.0
+      '@smithy/util-middleware': 4.2.9
+      '@smithy/util-stream': 4.5.14
+      '@smithy/util-utf8': 4.2.1
+      tslib: 2.8.1
+
+  '@aws-sdk/middleware-sdk-s3@3.947.0':
+    dependencies:
+      '@aws-sdk/core': 3.947.0
+      '@aws-sdk/types': 3.936.0
+      '@aws-sdk/util-arn-parser': 3.893.0
+      '@smithy/core': 3.23.4
+      '@smithy/node-config-provider': 4.3.9
+      '@smithy/protocol-http': 5.3.9
+      '@smithy/signature-v4': 5.3.9
+      '@smithy/smithy-client': 4.11.7
+      '@smithy/types': 4.12.1
+      '@smithy/util-config-provider': 4.2.1
+      '@smithy/util-middleware': 4.2.9
+      '@smithy/util-stream': 4.5.14
+      '@smithy/util-utf8': 4.2.1
+      tslib: 2.8.1
+
+  '@aws-sdk/middleware-sdk-s3@3.972.37':
+    dependencies:
+      '@aws-sdk/core': 3.974.8
+      '@aws-sdk/types': 3.973.8
+      '@aws-sdk/util-arn-parser': 3.972.3
+      '@smithy/core': 3.23.17
+      '@smithy/node-config-provider': 4.3.14
+      '@smithy/protocol-http': 5.3.14
+      '@smithy/signature-v4': 5.3.14
+      '@smithy/smithy-client': 4.12.13
+      '@smithy/types': 4.14.1
+      '@smithy/util-config-provider': 4.2.2
+      '@smithy/util-middleware': 4.2.14
+      '@smithy/util-stream': 4.5.25
+      '@smithy/util-utf8': 4.2.2
       tslib: 2.8.1
 
   '@aws-sdk/middleware-ssec@3.922.0':
     dependencies:
       '@aws-sdk/types': 3.922.0
-      '@smithy/types': 4.9.0
+      '@smithy/types': 4.12.1
+      tslib: 2.8.1
+
+  '@aws-sdk/middleware-ssec@3.936.0':
+    dependencies:
+      '@aws-sdk/types': 3.936.0
+      '@smithy/types': 4.12.1
       tslib: 2.8.1
 
   '@aws-sdk/middleware-user-agent@3.928.0':
@@ -9072,9 +10334,9 @@ snapshots:
       '@aws-sdk/core': 3.928.0
       '@aws-sdk/types': 3.922.0
       '@aws-sdk/util-endpoints': 3.922.0
-      '@smithy/core': 3.18.0
-      '@smithy/protocol-http': 5.3.5
-      '@smithy/types': 4.9.0
+      '@smithy/core': 3.23.4
+      '@smithy/protocol-http': 5.3.9
+      '@smithy/types': 4.12.1
       tslib: 2.8.1
 
   '@aws-sdk/middleware-user-agent@3.947.0':
@@ -9083,8 +10345,8 @@ snapshots:
       '@aws-sdk/types': 3.936.0
       '@aws-sdk/util-endpoints': 3.936.0
       '@smithy/core': 3.23.4
-      '@smithy/protocol-http': 5.3.5
-      '@smithy/types': 4.9.0
+      '@smithy/protocol-http': 5.3.9
+      '@smithy/types': 4.12.1
       tslib: 2.8.1
 
   '@aws-sdk/middleware-user-agent@3.972.12':
@@ -9097,6 +10359,17 @@ snapshots:
       '@smithy/types': 4.12.1
       tslib: 2.8.1
 
+  '@aws-sdk/middleware-user-agent@3.972.38':
+    dependencies:
+      '@aws-sdk/core': 3.974.8
+      '@aws-sdk/types': 3.973.8
+      '@aws-sdk/util-endpoints': 3.996.8
+      '@smithy/core': 3.23.17
+      '@smithy/protocol-http': 5.3.14
+      '@smithy/types': 4.14.1
+      '@smithy/util-retry': 4.3.8
+      tslib: 2.8.1
+
   '@aws-sdk/nested-clients@3.929.0':
     dependencies:
       '@aws-crypto/sha256-browser': 5.2.0
@@ -9111,31 +10384,31 @@ snapshots:
       '@aws-sdk/util-endpoints': 3.922.0
       '@aws-sdk/util-user-agent-browser': 3.922.0
       '@aws-sdk/util-user-agent-node': 3.928.0
-      '@smithy/config-resolver': 4.4.3
-      '@smithy/core': 3.18.0
-      '@smithy/fetch-http-handler': 5.3.6
-      '@smithy/hash-node': 4.2.5
-      '@smithy/invalid-dependency': 4.2.5
-      '@smithy/middleware-content-length': 4.2.5
-      '@smithy/middleware-endpoint': 4.3.7
-      '@smithy/middleware-retry': 4.4.7
-      '@smithy/middleware-serde': 4.2.5
-      '@smithy/middleware-stack': 4.2.5
-      '@smithy/node-config-provider': 4.3.5
-      '@smithy/node-http-handler': 4.4.5
-      '@smithy/protocol-http': 5.3.5
-      '@smithy/smithy-client': 4.9.3
-      '@smithy/types': 4.9.0
-      '@smithy/url-parser': 4.2.5
-      '@smithy/util-base64': 4.3.0
-      '@smithy/util-body-length-browser': 4.2.0
+      '@smithy/config-resolver': 4.4.7
+      '@smithy/core': 3.23.4
+      '@smithy/fetch-http-handler': 5.3.10
+      '@smithy/hash-node': 4.2.9
+      '@smithy/invalid-dependency': 4.2.9
+      '@smithy/middleware-content-length': 4.2.9
+      '@smithy/middleware-endpoint': 4.4.18
+      '@smithy/middleware-retry': 4.4.35
+      '@smithy/middleware-serde': 4.2.10
+      '@smithy/middleware-stack': 4.2.9
+      '@smithy/node-config-provider': 4.3.9
+      '@smithy/node-http-handler': 4.4.11
+      '@smithy/protocol-http': 5.3.9
+      '@smithy/smithy-client': 4.11.7
+      '@smithy/types': 4.12.1
+      '@smithy/url-parser': 4.2.9
+      '@smithy/util-base64': 4.3.1
+      '@smithy/util-body-length-browser': 4.2.1
       '@smithy/util-body-length-node': 4.2.1
-      '@smithy/util-defaults-mode-browser': 4.3.6
-      '@smithy/util-defaults-mode-node': 4.2.9
-      '@smithy/util-endpoints': 3.2.5
-      '@smithy/util-middleware': 4.2.5
-      '@smithy/util-retry': 4.2.5
-      '@smithy/util-utf8': 4.2.0
+      '@smithy/util-defaults-mode-browser': 4.3.34
+      '@smithy/util-defaults-mode-node': 4.2.37
+      '@smithy/util-endpoints': 3.2.9
+      '@smithy/util-middleware': 4.2.9
+      '@smithy/util-retry': 4.2.9
+      '@smithy/util-utf8': 4.2.1
       tslib: 2.8.1
     transitivePeerDependencies:
       - aws-crt
@@ -9154,31 +10427,31 @@ snapshots:
       '@aws-sdk/util-endpoints': 3.936.0
       '@aws-sdk/util-user-agent-browser': 3.936.0
       '@aws-sdk/util-user-agent-node': 3.947.0
-      '@smithy/config-resolver': 4.4.3
+      '@smithy/config-resolver': 4.4.7
       '@smithy/core': 3.23.4
-      '@smithy/fetch-http-handler': 5.3.6
-      '@smithy/hash-node': 4.2.5
-      '@smithy/invalid-dependency': 4.2.5
-      '@smithy/middleware-content-length': 4.2.5
+      '@smithy/fetch-http-handler': 5.3.10
+      '@smithy/hash-node': 4.2.9
+      '@smithy/invalid-dependency': 4.2.9
+      '@smithy/middleware-content-length': 4.2.9
       '@smithy/middleware-endpoint': 4.4.18
       '@smithy/middleware-retry': 4.4.35
       '@smithy/middleware-serde': 4.2.10
-      '@smithy/middleware-stack': 4.2.5
-      '@smithy/node-config-provider': 4.3.5
-      '@smithy/node-http-handler': 4.4.5
-      '@smithy/protocol-http': 5.3.5
+      '@smithy/middleware-stack': 4.2.9
+      '@smithy/node-config-provider': 4.3.9
+      '@smithy/node-http-handler': 4.4.11
+      '@smithy/protocol-http': 5.3.9
       '@smithy/smithy-client': 4.11.7
-      '@smithy/types': 4.9.0
-      '@smithy/url-parser': 4.2.5
-      '@smithy/util-base64': 4.3.0
-      '@smithy/util-body-length-browser': 4.2.0
+      '@smithy/types': 4.12.1
+      '@smithy/url-parser': 4.2.9
+      '@smithy/util-base64': 4.3.1
+      '@smithy/util-body-length-browser': 4.2.1
       '@smithy/util-body-length-node': 4.2.1
       '@smithy/util-defaults-mode-browser': 4.3.34
       '@smithy/util-defaults-mode-node': 4.2.37
-      '@smithy/util-endpoints': 3.2.5
-      '@smithy/util-middleware': 4.2.5
-      '@smithy/util-retry': 4.2.5
-      '@smithy/util-utf8': 4.2.0
+      '@smithy/util-endpoints': 3.2.9
+      '@smithy/util-middleware': 4.2.9
+      '@smithy/util-retry': 4.2.9
+      '@smithy/util-utf8': 4.2.1
       tslib: 2.8.1
     transitivePeerDependencies:
       - aws-crt
@@ -9213,15 +10486,59 @@ snapshots:
       '@smithy/smithy-client': 4.11.7
       '@smithy/types': 4.12.1
       '@smithy/url-parser': 4.2.9
-      '@smithy/util-base64': 4.3.0
-      '@smithy/util-body-length-browser': 4.2.0
+      '@smithy/util-base64': 4.3.1
+      '@smithy/util-body-length-browser': 4.2.1
       '@smithy/util-body-length-node': 4.2.1
       '@smithy/util-defaults-mode-browser': 4.3.34
       '@smithy/util-defaults-mode-node': 4.2.37
       '@smithy/util-endpoints': 3.2.9
       '@smithy/util-middleware': 4.2.9
       '@smithy/util-retry': 4.2.9
-      '@smithy/util-utf8': 4.2.0
+      '@smithy/util-utf8': 4.2.1
+      tslib: 2.8.1
+    transitivePeerDependencies:
+      - aws-crt
+
+  '@aws-sdk/nested-clients@3.997.6':
+    dependencies:
+      '@aws-crypto/sha256-browser': 5.2.0
+      '@aws-crypto/sha256-js': 5.2.0
+      '@aws-sdk/core': 3.974.8
+      '@aws-sdk/middleware-host-header': 3.972.10
+      '@aws-sdk/middleware-logger': 3.972.10
+      '@aws-sdk/middleware-recursion-detection': 3.972.11
+      '@aws-sdk/middleware-user-agent': 3.972.38
+      '@aws-sdk/region-config-resolver': 3.972.13
+      '@aws-sdk/signature-v4-multi-region': 3.996.25
+      '@aws-sdk/types': 3.973.8
+      '@aws-sdk/util-endpoints': 3.996.8
+      '@aws-sdk/util-user-agent-browser': 3.972.10
+      '@aws-sdk/util-user-agent-node': 3.973.24
+      '@smithy/config-resolver': 4.4.17
+      '@smithy/core': 3.23.17
+      '@smithy/fetch-http-handler': 5.3.17
+      '@smithy/hash-node': 4.2.14
+      '@smithy/invalid-dependency': 4.2.14
+      '@smithy/middleware-content-length': 4.2.14
+      '@smithy/middleware-endpoint': 4.4.32
+      '@smithy/middleware-retry': 4.5.7
+      '@smithy/middleware-serde': 4.2.20
+      '@smithy/middleware-stack': 4.2.14
+      '@smithy/node-config-provider': 4.3.14
+      '@smithy/node-http-handler': 4.6.1
+      '@smithy/protocol-http': 5.3.14
+      '@smithy/smithy-client': 4.12.13
+      '@smithy/types': 4.14.1
+      '@smithy/url-parser': 4.2.14
+      '@smithy/util-base64': 4.3.2
+      '@smithy/util-body-length-browser': 4.2.2
+      '@smithy/util-body-length-node': 4.2.3
+      '@smithy/util-defaults-mode-browser': 4.3.49
+      '@smithy/util-defaults-mode-node': 4.2.54
+      '@smithy/util-endpoints': 3.4.2
+      '@smithy/util-middleware': 4.2.14
+      '@smithy/util-retry': 4.3.8
+      '@smithy/util-utf8': 4.2.2
       tslib: 2.8.1
     transitivePeerDependencies:
       - aws-crt
@@ -9229,17 +10546,25 @@ snapshots:
   '@aws-sdk/region-config-resolver@3.925.0':
     dependencies:
       '@aws-sdk/types': 3.922.0
-      '@smithy/config-resolver': 4.4.3
-      '@smithy/node-config-provider': 4.3.5
-      '@smithy/types': 4.9.0
+      '@smithy/config-resolver': 4.4.7
+      '@smithy/node-config-provider': 4.3.9
+      '@smithy/types': 4.12.1
       tslib: 2.8.1
 
   '@aws-sdk/region-config-resolver@3.936.0':
     dependencies:
       '@aws-sdk/types': 3.936.0
-      '@smithy/config-resolver': 4.4.3
-      '@smithy/node-config-provider': 4.3.5
-      '@smithy/types': 4.9.0
+      '@smithy/config-resolver': 4.4.7
+      '@smithy/node-config-provider': 4.3.9
+      '@smithy/types': 4.12.1
+      tslib: 2.8.1
+
+  '@aws-sdk/region-config-resolver@3.972.13':
+    dependencies:
+      '@aws-sdk/types': 3.973.8
+      '@smithy/config-resolver': 4.4.17
+      '@smithy/node-config-provider': 4.3.14
+      '@smithy/types': 4.14.1
       tslib: 2.8.1
 
   '@aws-sdk/region-config-resolver@3.972.3':
@@ -9254,19 +10579,49 @@ snapshots:
     dependencies:
       '@aws-sdk/middleware-sdk-s3': 3.928.0
       '@aws-sdk/types': 3.922.0
-      '@smithy/protocol-http': 5.3.5
+      '@smithy/protocol-http': 5.3.9
       '@smithy/signature-v4': 5.3.5
-      '@smithy/types': 4.9.0
+      '@smithy/types': 4.12.1
+      tslib: 2.8.1
+
+  '@aws-sdk/signature-v4-multi-region@3.947.0':
+    dependencies:
+      '@aws-sdk/middleware-sdk-s3': 3.947.0
+      '@aws-sdk/types': 3.936.0
+      '@smithy/protocol-http': 5.3.9
+      '@smithy/signature-v4': 5.3.9
+      '@smithy/types': 4.12.1
+      tslib: 2.8.1
+
+  '@aws-sdk/signature-v4-multi-region@3.996.25':
+    dependencies:
+      '@aws-sdk/middleware-sdk-s3': 3.972.37
+      '@aws-sdk/types': 3.973.8
+      '@smithy/protocol-http': 5.3.14
+      '@smithy/signature-v4': 5.3.14
+      '@smithy/types': 4.14.1
+      tslib: 2.8.1
+
+  '@aws-sdk/token-providers@3.1041.0':
+    dependencies:
+      '@aws-sdk/core': 3.974.8
+      '@aws-sdk/nested-clients': 3.997.6
+      '@aws-sdk/types': 3.973.8
+      '@smithy/property-provider': 4.2.14
+      '@smithy/shared-ini-file-loader': 4.4.9
+      '@smithy/types': 4.14.1
       tslib: 2.8.1
+    transitivePeerDependencies:
+      - aws-crt
 
   '@aws-sdk/token-providers@3.929.0':
     dependencies:
       '@aws-sdk/core': 3.928.0
       '@aws-sdk/nested-clients': 3.929.0
       '@aws-sdk/types': 3.922.0
-      '@smithy/property-provider': 4.2.5
-      '@smithy/shared-ini-file-loader': 4.4.0
-      '@smithy/types': 4.9.0
+      '@smithy/property-provider': 4.2.9
+      '@smithy/shared-ini-file-loader': 4.4.4
+      '@smithy/types': 4.12.1
       tslib: 2.8.1
     transitivePeerDependencies:
       - aws-crt
@@ -9276,9 +10631,9 @@ snapshots:
       '@aws-sdk/core': 3.947.0
       '@aws-sdk/nested-clients': 3.952.0
       '@aws-sdk/types': 3.936.0
-      '@smithy/property-provider': 4.2.5
-      '@smithy/shared-ini-file-loader': 4.4.0
-      '@smithy/types': 4.9.0
+      '@smithy/property-provider': 4.2.9
+      '@smithy/shared-ini-file-loader': 4.4.4
+      '@smithy/types': 4.12.1
       tslib: 2.8.1
     transitivePeerDependencies:
       - aws-crt
@@ -9297,12 +10652,12 @@ snapshots:
 
   '@aws-sdk/types@3.922.0':
     dependencies:
-      '@smithy/types': 4.9.0
+      '@smithy/types': 4.12.1
       tslib: 2.8.1
 
   '@aws-sdk/types@3.936.0':
     dependencies:
-      '@smithy/types': 4.9.0
+      '@smithy/types': 4.12.1
       tslib: 2.8.1
 
   '@aws-sdk/types@3.973.1':
@@ -9310,10 +10665,19 @@ snapshots:
       '@smithy/types': 4.12.1
       tslib: 2.8.1
 
+  '@aws-sdk/types@3.973.8':
+    dependencies:
+      '@smithy/types': 4.14.1
+      tslib: 2.8.1
+
   '@aws-sdk/util-arn-parser@3.893.0':
     dependencies:
       tslib: 2.8.1
 
+  '@aws-sdk/util-arn-parser@3.972.3':
+    dependencies:
+      tslib: 2.8.1
+
   '@aws-sdk/util-dynamodb@3.980.0(@aws-sdk/client-dynamodb@3.980.0)':
     dependencies:
       '@aws-sdk/client-dynamodb': 3.980.0
@@ -9322,17 +10686,17 @@ snapshots:
   '@aws-sdk/util-endpoints@3.922.0':
     dependencies:
       '@aws-sdk/types': 3.922.0
-      '@smithy/types': 4.9.0
-      '@smithy/url-parser': 4.2.5
-      '@smithy/util-endpoints': 3.2.5
+      '@smithy/types': 4.12.1
+      '@smithy/url-parser': 4.2.9
+      '@smithy/util-endpoints': 3.2.9
       tslib: 2.8.1
 
   '@aws-sdk/util-endpoints@3.936.0':
     dependencies:
       '@aws-sdk/types': 3.936.0
-      '@smithy/types': 4.9.0
-      '@smithy/url-parser': 4.2.5
-      '@smithy/util-endpoints': 3.2.5
+      '@smithy/types': 4.12.1
+      '@smithy/url-parser': 4.2.9
+      '@smithy/util-endpoints': 3.2.9
       tslib: 2.8.1
 
   '@aws-sdk/util-endpoints@3.980.0':
@@ -9351,6 +10715,14 @@ snapshots:
       '@smithy/util-endpoints': 3.2.9
       tslib: 2.8.1
 
+  '@aws-sdk/util-endpoints@3.996.8':
+    dependencies:
+      '@aws-sdk/types': 3.973.8
+      '@smithy/types': 4.14.1
+      '@smithy/url-parser': 4.2.14
+      '@smithy/util-endpoints': 3.4.2
+      tslib: 2.8.1
+
   '@aws-sdk/util-locate-window@3.893.0':
     dependencies:
       tslib: 2.8.1
@@ -9358,14 +10730,21 @@ snapshots:
   '@aws-sdk/util-user-agent-browser@3.922.0':
     dependencies:
       '@aws-sdk/types': 3.922.0
-      '@smithy/types': 4.9.0
+      '@smithy/types': 4.12.1
       bowser: 2.12.1
       tslib: 2.8.1
 
   '@aws-sdk/util-user-agent-browser@3.936.0':
     dependencies:
       '@aws-sdk/types': 3.936.0
-      '@smithy/types': 4.9.0
+      '@smithy/types': 4.12.1
+      bowser: 2.12.1
+      tslib: 2.8.1
+
+  '@aws-sdk/util-user-agent-browser@3.972.10':
+    dependencies:
+      '@aws-sdk/types': 3.973.8
+      '@smithy/types': 4.14.1
       bowser: 2.12.1
       tslib: 2.8.1
 
@@ -9380,16 +10759,16 @@ snapshots:
     dependencies:
       '@aws-sdk/middleware-user-agent': 3.928.0
       '@aws-sdk/types': 3.922.0
-      '@smithy/node-config-provider': 4.3.5
-      '@smithy/types': 4.9.0
+      '@smithy/node-config-provider': 4.3.9
+      '@smithy/types': 4.12.1
       tslib: 2.8.1
 
   '@aws-sdk/util-user-agent-node@3.947.0':
     dependencies:
       '@aws-sdk/middleware-user-agent': 3.947.0
       '@aws-sdk/types': 3.936.0
-      '@smithy/node-config-provider': 4.3.5
-      '@smithy/types': 4.9.0
+      '@smithy/node-config-provider': 4.3.9
+      '@smithy/types': 4.12.1
       tslib: 2.8.1
 
   '@aws-sdk/util-user-agent-node@3.972.11':
@@ -9400,16 +10779,32 @@ snapshots:
       '@smithy/types': 4.12.1
       tslib: 2.8.1
 
+  '@aws-sdk/util-user-agent-node@3.973.24':
+    dependencies:
+      '@aws-sdk/middleware-user-agent': 3.972.38
+      '@aws-sdk/types': 3.973.8
+      '@smithy/node-config-provider': 4.3.14
+      '@smithy/types': 4.14.1
+      '@smithy/util-config-provider': 4.2.2
+      tslib: 2.8.1
+
   '@aws-sdk/xml-builder@3.921.0':
     dependencies:
-      '@smithy/types': 4.9.0
+      '@smithy/types': 4.12.1
       fast-xml-parser: 5.3.5
       tslib: 2.8.1
 
   '@aws-sdk/xml-builder@3.930.0':
     dependencies:
-      '@smithy/types': 4.9.0
-      fast-xml-parser: 5.3.5
+      '@smithy/types': 4.12.1
+      fast-xml-parser: 5.3.6
+      tslib: 2.8.1
+
+  '@aws-sdk/xml-builder@3.972.22':
+    dependencies:
+      '@nodable/entities': 2.1.0
+      '@smithy/types': 4.14.1
+      fast-xml-parser: 5.7.2
       tslib: 2.8.1
 
   '@aws-sdk/xml-builder@3.972.5':
@@ -9729,10 +11124,18 @@ snapshots:
   '@colors/colors@1.5.0':
     optional: true
 
+  '@colors/colors@1.6.0': {}
+
   '@cspotcode/source-map-support@0.8.1':
     dependencies:
       '@jridgewell/trace-mapping': 0.3.9
 
+  '@dabh/diagnostics@2.0.8':
+    dependencies:
+      '@so-ric/colorspace': 1.1.6
+      enabled: 2.0.0
+      kuler: 2.0.0
+
   '@docsearch/css@4.6.2': {}
 
   '@docsearch/js@4.6.2': {}
@@ -9763,126 +11166,189 @@ snapshots:
       esquery: 1.6.0
       jsdoc-type-pratt-parser: 4.1.0
 
+  '@esbuild/aix-ppc64@0.25.0':
+    optional: true
+
   '@esbuild/aix-ppc64@0.25.12':
     optional: true
 
   '@esbuild/aix-ppc64@0.27.7':
     optional: true
 
+  '@esbuild/android-arm64@0.25.0':
+    optional: true
+
   '@esbuild/android-arm64@0.25.12':
     optional: true
 
   '@esbuild/android-arm64@0.27.7':
     optional: true
 
+  '@esbuild/android-arm@0.25.0':
+    optional: true
+
   '@esbuild/android-arm@0.25.12':
     optional: true
 
   '@esbuild/android-arm@0.27.7':
     optional: true
 
+  '@esbuild/android-x64@0.25.0':
+    optional: true
+
   '@esbuild/android-x64@0.25.12':
     optional: true
 
   '@esbuild/android-x64@0.27.7':
     optional: true
 
+  '@esbuild/darwin-arm64@0.25.0':
+    optional: true
+
   '@esbuild/darwin-arm64@0.25.12':
     optional: true
 
   '@esbuild/darwin-arm64@0.27.7':
     optional: true
 
+  '@esbuild/darwin-x64@0.25.0':
+    optional: true
+
   '@esbuild/darwin-x64@0.25.12':
     optional: true
 
   '@esbuild/darwin-x64@0.27.7':
     optional: true
 
+  '@esbuild/freebsd-arm64@0.25.0':
+    optional: true
+
   '@esbuild/freebsd-arm64@0.25.12':
     optional: true
 
   '@esbuild/freebsd-arm64@0.27.7':
     optional: true
 
+  '@esbuild/freebsd-x64@0.25.0':
+    optional: true
+
   '@esbuild/freebsd-x64@0.25.12':
     optional: true
 
   '@esbuild/freebsd-x64@0.27.7':
     optional: true
 
+  '@esbuild/linux-arm64@0.25.0':
+    optional: true
+
   '@esbuild/linux-arm64@0.25.12':
     optional: true
 
   '@esbuild/linux-arm64@0.27.7':
     optional: true
 
+  '@esbuild/linux-arm@0.25.0':
+    optional: true
+
   '@esbuild/linux-arm@0.25.12':
     optional: true
 
   '@esbuild/linux-arm@0.27.7':
     optional: true
 
+  '@esbuild/linux-ia32@0.25.0':
+    optional: true
+
   '@esbuild/linux-ia32@0.25.12':
     optional: true
 
   '@esbuild/linux-ia32@0.27.7':
     optional: true
 
+  '@esbuild/linux-loong64@0.25.0':
+    optional: true
+
   '@esbuild/linux-loong64@0.25.12':
     optional: true
 
   '@esbuild/linux-loong64@0.27.7':
     optional: true
 
+  '@esbuild/linux-mips64el@0.25.0':
+    optional: true
+
   '@esbuild/linux-mips64el@0.25.12':
     optional: true
 
   '@esbuild/linux-mips64el@0.27.7':
     optional: true
 
+  '@esbuild/linux-ppc64@0.25.0':
+    optional: true
+
   '@esbuild/linux-ppc64@0.25.12':
     optional: true
 
   '@esbuild/linux-ppc64@0.27.7':
     optional: true
 
+  '@esbuild/linux-riscv64@0.25.0':
+    optional: true
+
   '@esbuild/linux-riscv64@0.25.12':
     optional: true
 
   '@esbuild/linux-riscv64@0.27.7':
     optional: true
 
+  '@esbuild/linux-s390x@0.25.0':
+    optional: true
+
   '@esbuild/linux-s390x@0.25.12':
     optional: true
 
   '@esbuild/linux-s390x@0.27.7':
     optional: true
 
+  '@esbuild/linux-x64@0.25.0':
+    optional: true
+
   '@esbuild/linux-x64@0.25.12':
     optional: true
 
   '@esbuild/linux-x64@0.27.7':
     optional: true
 
+  '@esbuild/netbsd-arm64@0.25.0':
+    optional: true
+
   '@esbuild/netbsd-arm64@0.25.12':
     optional: true
 
   '@esbuild/netbsd-arm64@0.27.7':
     optional: true
 
+  '@esbuild/netbsd-x64@0.25.0':
+    optional: true
+
   '@esbuild/netbsd-x64@0.25.12':
     optional: true
 
   '@esbuild/netbsd-x64@0.27.7':
     optional: true
 
+  '@esbuild/openbsd-arm64@0.25.0':
+    optional: true
+
   '@esbuild/openbsd-arm64@0.25.12':
     optional: true
 
   '@esbuild/openbsd-arm64@0.27.7':
     optional: true
 
+  '@esbuild/openbsd-x64@0.25.0':
+    optional: true
+
   '@esbuild/openbsd-x64@0.25.12':
     optional: true
 
@@ -9895,24 +11361,36 @@ snapshots:
   '@esbuild/openharmony-arm64@0.27.7':
     optional: true
 
+  '@esbuild/sunos-x64@0.25.0':
+    optional: true
+
   '@esbuild/sunos-x64@0.25.12':
     optional: true
 
   '@esbuild/sunos-x64@0.27.7':
     optional: true
 
+  '@esbuild/win32-arm64@0.25.0':
+    optional: true
+
   '@esbuild/win32-arm64@0.25.12':
     optional: true
 
   '@esbuild/win32-arm64@0.27.7':
     optional: true
 
+  '@esbuild/win32-ia32@0.25.0':
+    optional: true
+
   '@esbuild/win32-ia32@0.25.12':
     optional: true
 
   '@esbuild/win32-ia32@0.27.7':
     optional: true
 
+  '@esbuild/win32-x64@0.25.0':
+    optional: true
+
   '@esbuild/win32-x64@0.25.12':
     optional: true
 
@@ -10039,6 +11517,18 @@ snapshots:
       express: 5.1.0
       http-errors: 2.0.1
 
+  '@h4ad/serverless-adapter@4.4.0(@types/aws-lambda@8.10.160)(@types/body-parser@1.19.6)(@types/cors@2.8.19)(@types/express@5.0.4)(body-parser@2.2.1)(cors@2.8.5)(express@5.1.0)(http-errors@2.0.1)':
+    dependencies:
+      '@types/body-parser': 1.19.6
+      '@types/cors': 2.8.19
+    optionalDependencies:
+      '@types/aws-lambda': 8.10.160
+      '@types/express': 5.0.4
+      body-parser: 2.2.1
+      cors: 2.8.5
+      express: 5.1.0
+      http-errors: 2.0.1
+
   '@hono/node-server@1.19.9(hono@4.11.9)':
     dependencies:
       hono: 4.11.9
@@ -10533,6 +12023,10 @@ snapshots:
       '@tybys/wasm-util': 0.10.1
     optional: true
 
+  '@noble/hashes@1.8.0': {}
+
+  '@nodable/entities@2.1.0': {}
+
   '@nodelib/fs.scandir@2.1.5':
     dependencies:
       '@nodelib/fs.stat': 2.0.5
@@ -10704,6 +12198,10 @@ snapshots:
 
   '@opentelemetry/semantic-conventions@1.39.0': {}
 
+  '@paralleldrive/cuid2@2.3.1':
+    dependencies:
+      '@noble/hashes': 1.8.0
+
   '@pinojs/redact@0.4.0': {}
 
   '@pkgjs/parseargs@0.11.0':
@@ -11308,10 +12806,18 @@ snapshots:
     dependencies:
       type-detect: 4.0.8
 
+  '@sinonjs/fake-timers@11.2.2':
+    dependencies:
+      '@sinonjs/commons': 3.0.1
+
   '@sinonjs/fake-timers@15.1.0':
     dependencies:
       '@sinonjs/commons': 3.0.1
 
+  '@sinonjs/fake-timers@15.3.2':
+    dependencies:
+      '@sinonjs/commons': 3.0.1
+
   '@sinonjs/samsam@8.0.3':
     dependencies:
       '@sinonjs/commons': 3.0.1
@@ -11319,7 +12825,7 @@ snapshots:
 
   '@smithy/abort-controller@4.2.5':
     dependencies:
-      '@smithy/types': 4.9.0
+      '@smithy/types': 4.12.1
       tslib: 2.8.1
 
   '@smithy/abort-controller@4.2.9':
@@ -11329,20 +12835,29 @@ snapshots:
 
   '@smithy/chunked-blob-reader-native@4.2.1':
     dependencies:
-      '@smithy/util-base64': 4.3.0
+      '@smithy/util-base64': 4.3.1
       tslib: 2.8.1
 
   '@smithy/chunked-blob-reader@5.2.0':
     dependencies:
       tslib: 2.8.1
 
+  '@smithy/config-resolver@4.4.17':
+    dependencies:
+      '@smithy/node-config-provider': 4.3.14
+      '@smithy/types': 4.14.1
+      '@smithy/util-config-provider': 4.2.2
+      '@smithy/util-endpoints': 3.4.2
+      '@smithy/util-middleware': 4.2.14
+      tslib: 2.8.1
+
   '@smithy/config-resolver@4.4.3':
     dependencies:
-      '@smithy/node-config-provider': 4.3.5
-      '@smithy/types': 4.9.0
+      '@smithy/node-config-provider': 4.3.9
+      '@smithy/types': 4.12.1
       '@smithy/util-config-provider': 4.2.0
-      '@smithy/util-endpoints': 3.2.5
-      '@smithy/util-middleware': 4.2.5
+      '@smithy/util-endpoints': 3.2.9
+      '@smithy/util-middleware': 4.2.9
       tslib: 2.8.1
 
   '@smithy/config-resolver@4.4.7':
@@ -11356,17 +12871,30 @@ snapshots:
 
   '@smithy/core@3.18.0':
     dependencies:
-      '@smithy/middleware-serde': 4.2.5
-      '@smithy/protocol-http': 5.3.5
-      '@smithy/types': 4.9.0
-      '@smithy/util-base64': 4.3.0
-      '@smithy/util-body-length-browser': 4.2.0
-      '@smithy/util-middleware': 4.2.5
-      '@smithy/util-stream': 4.5.6
-      '@smithy/util-utf8': 4.2.0
+      '@smithy/middleware-serde': 4.2.10
+      '@smithy/protocol-http': 5.3.9
+      '@smithy/types': 4.12.1
+      '@smithy/util-base64': 4.3.1
+      '@smithy/util-body-length-browser': 4.2.1
+      '@smithy/util-middleware': 4.2.9
+      '@smithy/util-stream': 4.5.14
+      '@smithy/util-utf8': 4.2.1
       '@smithy/uuid': 1.1.0
       tslib: 2.8.1
 
+  '@smithy/core@3.23.17':
+    dependencies:
+      '@smithy/protocol-http': 5.3.14
+      '@smithy/types': 4.14.1
+      '@smithy/url-parser': 4.2.14
+      '@smithy/util-base64': 4.3.2
+      '@smithy/util-body-length-browser': 4.2.2
+      '@smithy/util-middleware': 4.2.14
+      '@smithy/util-stream': 4.5.25
+      '@smithy/util-utf8': 4.2.2
+      '@smithy/uuid': 1.1.2
+      tslib: 2.8.1
+
   '@smithy/core@3.23.4':
     dependencies:
       '@smithy/middleware-serde': 4.2.10
@@ -11380,12 +12908,20 @@ snapshots:
       '@smithy/uuid': 1.1.1
       tslib: 2.8.1
 
+  '@smithy/credential-provider-imds@4.2.14':
+    dependencies:
+      '@smithy/node-config-provider': 4.3.14
+      '@smithy/property-provider': 4.2.14
+      '@smithy/types': 4.14.1
+      '@smithy/url-parser': 4.2.14
+      tslib: 2.8.1
+
   '@smithy/credential-provider-imds@4.2.5':
     dependencies:
-      '@smithy/node-config-provider': 4.3.5
-      '@smithy/property-provider': 4.2.5
-      '@smithy/types': 4.9.0
-      '@smithy/url-parser': 4.2.5
+      '@smithy/node-config-provider': 4.3.9
+      '@smithy/property-provider': 4.2.9
+      '@smithy/types': 4.12.1
+      '@smithy/url-parser': 4.2.9
       tslib: 2.8.1
 
   '@smithy/credential-provider-imds@4.2.9':
@@ -11399,31 +12935,31 @@ snapshots:
   '@smithy/eventstream-codec@4.2.5':
     dependencies:
       '@aws-crypto/crc32': 5.2.0
-      '@smithy/types': 4.9.0
-      '@smithy/util-hex-encoding': 4.2.0
+      '@smithy/types': 4.12.1
+      '@smithy/util-hex-encoding': 4.2.1
       tslib: 2.8.1
 
   '@smithy/eventstream-serde-browser@4.2.5':
     dependencies:
       '@smithy/eventstream-serde-universal': 4.2.5
-      '@smithy/types': 4.9.0
+      '@smithy/types': 4.12.1
       tslib: 2.8.1
 
   '@smithy/eventstream-serde-config-resolver@4.3.5':
     dependencies:
-      '@smithy/types': 4.9.0
+      '@smithy/types': 4.12.1
       tslib: 2.8.1
 
   '@smithy/eventstream-serde-node@4.2.5':
     dependencies:
       '@smithy/eventstream-serde-universal': 4.2.5
-      '@smithy/types': 4.9.0
+      '@smithy/types': 4.12.1
       tslib: 2.8.1
 
   '@smithy/eventstream-serde-universal@4.2.5':
     dependencies:
       '@smithy/eventstream-codec': 4.2.5
-      '@smithy/types': 4.9.0
+      '@smithy/types': 4.12.1
       tslib: 2.8.1
 
   '@smithy/fetch-http-handler@5.3.10':
@@ -11434,26 +12970,41 @@ snapshots:
       '@smithy/util-base64': 4.3.1
       tslib: 2.8.1
 
+  '@smithy/fetch-http-handler@5.3.17':
+    dependencies:
+      '@smithy/protocol-http': 5.3.14
+      '@smithy/querystring-builder': 4.2.14
+      '@smithy/types': 4.14.1
+      '@smithy/util-base64': 4.3.2
+      tslib: 2.8.1
+
   '@smithy/fetch-http-handler@5.3.6':
     dependencies:
-      '@smithy/protocol-http': 5.3.5
+      '@smithy/protocol-http': 5.3.9
       '@smithy/querystring-builder': 4.2.5
-      '@smithy/types': 4.9.0
-      '@smithy/util-base64': 4.3.0
+      '@smithy/types': 4.12.1
+      '@smithy/util-base64': 4.3.1
       tslib: 2.8.1
 
   '@smithy/hash-blob-browser@4.2.6':
     dependencies:
       '@smithy/chunked-blob-reader': 5.2.0
       '@smithy/chunked-blob-reader-native': 4.2.1
-      '@smithy/types': 4.9.0
+      '@smithy/types': 4.12.1
+      tslib: 2.8.1
+
+  '@smithy/hash-node@4.2.14':
+    dependencies:
+      '@smithy/types': 4.14.1
+      '@smithy/util-buffer-from': 4.2.2
+      '@smithy/util-utf8': 4.2.2
       tslib: 2.8.1
 
   '@smithy/hash-node@4.2.5':
     dependencies:
-      '@smithy/types': 4.9.0
+      '@smithy/types': 4.12.1
       '@smithy/util-buffer-from': 4.2.0
-      '@smithy/util-utf8': 4.2.0
+      '@smithy/util-utf8': 4.2.1
       tslib: 2.8.1
 
   '@smithy/hash-node@4.2.9':
@@ -11465,13 +13016,18 @@ snapshots:
 
   '@smithy/hash-stream-node@4.2.5':
     dependencies:
-      '@smithy/types': 4.9.0
-      '@smithy/util-utf8': 4.2.0
+      '@smithy/types': 4.12.1
+      '@smithy/util-utf8': 4.2.1
+      tslib: 2.8.1
+
+  '@smithy/invalid-dependency@4.2.14':
+    dependencies:
+      '@smithy/types': 4.14.1
       tslib: 2.8.1
 
   '@smithy/invalid-dependency@4.2.5':
     dependencies:
-      '@smithy/types': 4.9.0
+      '@smithy/types': 4.12.1
       tslib: 2.8.1
 
   '@smithy/invalid-dependency@4.2.9':
@@ -11491,10 +13047,14 @@ snapshots:
     dependencies:
       tslib: 2.8.1
 
+  '@smithy/is-array-buffer@4.2.2':
+    dependencies:
+      tslib: 2.8.1
+
   '@smithy/md5-js@4.2.5':
     dependencies:
-      '@smithy/types': 4.9.0
-      '@smithy/util-utf8': 4.2.0
+      '@smithy/types': 4.12.1
+      '@smithy/util-utf8': 4.2.1
       tslib: 2.8.1
 
   '@smithy/middleware-compression@4.3.33':
@@ -11510,10 +13070,16 @@ snapshots:
       fflate: 0.8.1
       tslib: 2.8.1
 
+  '@smithy/middleware-content-length@4.2.14':
+    dependencies:
+      '@smithy/protocol-http': 5.3.14
+      '@smithy/types': 4.14.1
+      tslib: 2.8.1
+
   '@smithy/middleware-content-length@4.2.5':
     dependencies:
-      '@smithy/protocol-http': 5.3.5
-      '@smithy/types': 4.9.0
+      '@smithy/protocol-http': 5.3.9
+      '@smithy/types': 4.12.1
       tslib: 2.8.1
 
   '@smithy/middleware-content-length@4.2.9':
@@ -11524,13 +13090,13 @@ snapshots:
 
   '@smithy/middleware-endpoint@4.3.7':
     dependencies:
-      '@smithy/core': 3.18.0
-      '@smithy/middleware-serde': 4.2.5
-      '@smithy/node-config-provider': 4.3.5
+      '@smithy/core': 3.23.4
+      '@smithy/middleware-serde': 4.2.10
+      '@smithy/node-config-provider': 4.3.9
       '@smithy/shared-ini-file-loader': 4.4.0
-      '@smithy/types': 4.9.0
-      '@smithy/url-parser': 4.2.5
-      '@smithy/util-middleware': 4.2.5
+      '@smithy/types': 4.12.1
+      '@smithy/url-parser': 4.2.9
+      '@smithy/util-middleware': 4.2.9
       tslib: 2.8.1
 
   '@smithy/middleware-endpoint@4.4.18':
@@ -11544,6 +13110,17 @@ snapshots:
       '@smithy/util-middleware': 4.2.9
       tslib: 2.8.1
 
+  '@smithy/middleware-endpoint@4.4.32':
+    dependencies:
+      '@smithy/core': 3.23.17
+      '@smithy/middleware-serde': 4.2.20
+      '@smithy/node-config-provider': 4.3.14
+      '@smithy/shared-ini-file-loader': 4.4.9
+      '@smithy/types': 4.14.1
+      '@smithy/url-parser': 4.2.14
+      '@smithy/util-middleware': 4.2.14
+      tslib: 2.8.1
+
   '@smithy/middleware-retry@4.4.35':
     dependencies:
       '@smithy/node-config-provider': 4.3.9
@@ -11558,31 +13135,56 @@ snapshots:
 
   '@smithy/middleware-retry@4.4.7':
     dependencies:
-      '@smithy/node-config-provider': 4.3.5
-      '@smithy/protocol-http': 5.3.5
+      '@smithy/node-config-provider': 4.3.9
+      '@smithy/protocol-http': 5.3.9
       '@smithy/service-error-classification': 4.2.5
-      '@smithy/smithy-client': 4.9.3
-      '@smithy/types': 4.9.0
-      '@smithy/util-middleware': 4.2.5
-      '@smithy/util-retry': 4.2.5
+      '@smithy/smithy-client': 4.11.7
+      '@smithy/types': 4.12.1
+      '@smithy/util-middleware': 4.2.9
+      '@smithy/util-retry': 4.2.9
       '@smithy/uuid': 1.1.0
       tslib: 2.8.1
 
+  '@smithy/middleware-retry@4.5.7':
+    dependencies:
+      '@smithy/core': 3.23.17
+      '@smithy/node-config-provider': 4.3.14
+      '@smithy/protocol-http': 5.3.14
+      '@smithy/service-error-classification': 4.3.1
+      '@smithy/smithy-client': 4.12.13
+      '@smithy/types': 4.14.1
+      '@smithy/util-middleware': 4.2.14
+      '@smithy/util-retry': 4.3.8
+      '@smithy/uuid': 1.1.2
+      tslib: 2.8.1
+
   '@smithy/middleware-serde@4.2.10':
     dependencies:
       '@smithy/protocol-http': 5.3.9
       '@smithy/types': 4.12.1
       tslib: 2.8.1
 
+  '@smithy/middleware-serde@4.2.20':
+    dependencies:
+      '@smithy/core': 3.23.17
+      '@smithy/protocol-http': 5.3.14
+      '@smithy/types': 4.14.1
+      tslib: 2.8.1
+
   '@smithy/middleware-serde@4.2.5':
     dependencies:
-      '@smithy/protocol-http': 5.3.5
-      '@smithy/types': 4.9.0
+      '@smithy/protocol-http': 5.3.9
+      '@smithy/types': 4.12.1
+      tslib: 2.8.1
+
+  '@smithy/middleware-stack@4.2.14':
+    dependencies:
+      '@smithy/types': 4.14.1
       tslib: 2.8.1
 
   '@smithy/middleware-stack@4.2.5':
     dependencies:
-      '@smithy/types': 4.9.0
+      '@smithy/types': 4.12.1
       tslib: 2.8.1
 
   '@smithy/middleware-stack@4.2.9':
@@ -11590,11 +13192,18 @@ snapshots:
       '@smithy/types': 4.12.1
       tslib: 2.8.1
 
+  '@smithy/node-config-provider@4.3.14':
+    dependencies:
+      '@smithy/property-provider': 4.2.14
+      '@smithy/shared-ini-file-loader': 4.4.9
+      '@smithy/types': 4.14.1
+      tslib: 2.8.1
+
   '@smithy/node-config-provider@4.3.5':
     dependencies:
       '@smithy/property-provider': 4.2.5
       '@smithy/shared-ini-file-loader': 4.4.0
-      '@smithy/types': 4.9.0
+      '@smithy/types': 4.12.1
       tslib: 2.8.1
 
   '@smithy/node-config-provider@4.3.9':
@@ -11615,14 +13224,26 @@ snapshots:
   '@smithy/node-http-handler@4.4.5':
     dependencies:
       '@smithy/abort-controller': 4.2.5
-      '@smithy/protocol-http': 5.3.5
+      '@smithy/protocol-http': 5.3.9
       '@smithy/querystring-builder': 4.2.5
-      '@smithy/types': 4.9.0
+      '@smithy/types': 4.12.1
+      tslib: 2.8.1
+
+  '@smithy/node-http-handler@4.6.1':
+    dependencies:
+      '@smithy/protocol-http': 5.3.14
+      '@smithy/querystring-builder': 4.2.14
+      '@smithy/types': 4.14.1
+      tslib: 2.8.1
+
+  '@smithy/property-provider@4.2.14':
+    dependencies:
+      '@smithy/types': 4.14.1
       tslib: 2.8.1
 
   '@smithy/property-provider@4.2.5':
     dependencies:
-      '@smithy/types': 4.9.0
+      '@smithy/types': 4.12.1
       tslib: 2.8.1
 
   '@smithy/property-provider@4.2.9':
@@ -11630,9 +13251,14 @@ snapshots:
       '@smithy/types': 4.12.1
       tslib: 2.8.1
 
+  '@smithy/protocol-http@5.3.14':
+    dependencies:
+      '@smithy/types': 4.14.1
+      tslib: 2.8.1
+
   '@smithy/protocol-http@5.3.5':
     dependencies:
-      '@smithy/types': 4.9.0
+      '@smithy/types': 4.12.1
       tslib: 2.8.1
 
   '@smithy/protocol-http@5.3.9':
@@ -11640,9 +13266,15 @@ snapshots:
       '@smithy/types': 4.12.1
       tslib: 2.8.1
 
+  '@smithy/querystring-builder@4.2.14':
+    dependencies:
+      '@smithy/types': 4.14.1
+      '@smithy/util-uri-escape': 4.2.2
+      tslib: 2.8.1
+
   '@smithy/querystring-builder@4.2.5':
     dependencies:
-      '@smithy/types': 4.9.0
+      '@smithy/types': 4.12.1
       '@smithy/util-uri-escape': 4.2.0
       tslib: 2.8.1
 
@@ -11652,9 +13284,14 @@ snapshots:
       '@smithy/util-uri-escape': 4.2.1
       tslib: 2.8.1
 
+  '@smithy/querystring-parser@4.2.14':
+    dependencies:
+      '@smithy/types': 4.14.1
+      tslib: 2.8.1
+
   '@smithy/querystring-parser@4.2.5':
     dependencies:
-      '@smithy/types': 4.9.0
+      '@smithy/types': 4.12.1
       tslib: 2.8.1
 
   '@smithy/querystring-parser@4.2.9':
@@ -11664,15 +13301,19 @@ snapshots:
 
   '@smithy/service-error-classification@4.2.5':
     dependencies:
-      '@smithy/types': 4.9.0
+      '@smithy/types': 4.12.1
 
   '@smithy/service-error-classification@4.2.9':
     dependencies:
       '@smithy/types': 4.12.1
 
+  '@smithy/service-error-classification@4.3.1':
+    dependencies:
+      '@smithy/types': 4.14.1
+
   '@smithy/shared-ini-file-loader@4.4.0':
     dependencies:
-      '@smithy/types': 4.9.0
+      '@smithy/types': 4.12.1
       tslib: 2.8.1
 
   '@smithy/shared-ini-file-loader@4.4.4':
@@ -11680,15 +13321,31 @@ snapshots:
       '@smithy/types': 4.12.1
       tslib: 2.8.1
 
+  '@smithy/shared-ini-file-loader@4.4.9':
+    dependencies:
+      '@smithy/types': 4.14.1
+      tslib: 2.8.1
+
+  '@smithy/signature-v4@5.3.14':
+    dependencies:
+      '@smithy/is-array-buffer': 4.2.2
+      '@smithy/protocol-http': 5.3.14
+      '@smithy/types': 4.14.1
+      '@smithy/util-hex-encoding': 4.2.2
+      '@smithy/util-middleware': 4.2.14
+      '@smithy/util-uri-escape': 4.2.2
+      '@smithy/util-utf8': 4.2.2
+      tslib: 2.8.1
+
   '@smithy/signature-v4@5.3.5':
     dependencies:
-      '@smithy/is-array-buffer': 4.2.0
-      '@smithy/protocol-http': 5.3.5
-      '@smithy/types': 4.9.0
-      '@smithy/util-hex-encoding': 4.2.0
-      '@smithy/util-middleware': 4.2.5
+      '@smithy/is-array-buffer': 4.2.1
+      '@smithy/protocol-http': 5.3.9
+      '@smithy/types': 4.12.1
+      '@smithy/util-hex-encoding': 4.2.1
+      '@smithy/util-middleware': 4.2.9
       '@smithy/util-uri-escape': 4.2.0
-      '@smithy/util-utf8': 4.2.0
+      '@smithy/util-utf8': 4.2.1
       tslib: 2.8.1
 
   '@smithy/signature-v4@5.3.9':
@@ -11712,28 +13369,48 @@ snapshots:
       '@smithy/util-stream': 4.5.14
       tslib: 2.8.1
 
-  '@smithy/smithy-client@4.9.3':
+  '@smithy/smithy-client@4.12.13':
     dependencies:
-      '@smithy/core': 3.18.0
-      '@smithy/middleware-endpoint': 4.3.7
-      '@smithy/middleware-stack': 4.2.5
-      '@smithy/protocol-http': 5.3.5
-      '@smithy/types': 4.9.0
-      '@smithy/util-stream': 4.5.6
+      '@smithy/core': 3.23.17
+      '@smithy/middleware-endpoint': 4.4.32
+      '@smithy/middleware-stack': 4.2.14
+      '@smithy/protocol-http': 5.3.14
+      '@smithy/types': 4.14.1
+      '@smithy/util-stream': 4.5.25
+      tslib: 2.8.1
+
+  '@smithy/smithy-client@4.9.1':
+    dependencies:
+      '@smithy/core': 3.23.4
+      '@smithy/middleware-endpoint': 4.4.18
+      '@smithy/middleware-stack': 4.2.9
+      '@smithy/protocol-http': 5.3.9
+      '@smithy/types': 4.12.1
+      '@smithy/util-stream': 4.5.14
       tslib: 2.8.1
 
   '@smithy/types@4.12.1':
     dependencies:
       tslib: 2.8.1
 
+  '@smithy/types@4.14.1':
+    dependencies:
+      tslib: 2.8.1
+
   '@smithy/types@4.9.0':
     dependencies:
       tslib: 2.8.1
 
+  '@smithy/url-parser@4.2.14':
+    dependencies:
+      '@smithy/querystring-parser': 4.2.14
+      '@smithy/types': 4.14.1
+      tslib: 2.8.1
+
   '@smithy/url-parser@4.2.5':
     dependencies:
       '@smithy/querystring-parser': 4.2.5
-      '@smithy/types': 4.9.0
+      '@smithy/types': 4.12.1
       tslib: 2.8.1
 
   '@smithy/url-parser@4.2.9':
@@ -11745,7 +13422,7 @@ snapshots:
   '@smithy/util-base64@4.3.0':
     dependencies:
       '@smithy/util-buffer-from': 4.2.0
-      '@smithy/util-utf8': 4.2.0
+      '@smithy/util-utf8': 4.2.1
       tslib: 2.8.1
 
   '@smithy/util-base64@4.3.1':
@@ -11754,6 +13431,12 @@ snapshots:
       '@smithy/util-utf8': 4.2.1
       tslib: 2.8.1
 
+  '@smithy/util-base64@4.3.2':
+    dependencies:
+      '@smithy/util-buffer-from': 4.2.2
+      '@smithy/util-utf8': 4.2.2
+      tslib: 2.8.1
+
   '@smithy/util-body-length-browser@4.2.0':
     dependencies:
       tslib: 2.8.1
@@ -11762,10 +13445,18 @@ snapshots:
     dependencies:
       tslib: 2.8.1
 
+  '@smithy/util-body-length-browser@4.2.2':
+    dependencies:
+      tslib: 2.8.1
+
   '@smithy/util-body-length-node@4.2.1':
     dependencies:
       tslib: 2.8.1
 
+  '@smithy/util-body-length-node@4.2.3':
+    dependencies:
+      tslib: 2.8.1
+
   '@smithy/util-buffer-from@2.2.0':
     dependencies:
       '@smithy/is-array-buffer': 2.2.0
@@ -11773,7 +13464,7 @@ snapshots:
 
   '@smithy/util-buffer-from@4.2.0':
     dependencies:
-      '@smithy/is-array-buffer': 4.2.0
+      '@smithy/is-array-buffer': 4.2.1
       tslib: 2.8.1
 
   '@smithy/util-buffer-from@4.2.1':
@@ -11781,6 +13472,11 @@ snapshots:
       '@smithy/is-array-buffer': 4.2.1
       tslib: 2.8.1
 
+  '@smithy/util-buffer-from@4.2.2':
+    dependencies:
+      '@smithy/is-array-buffer': 4.2.2
+      tslib: 2.8.1
+
   '@smithy/util-config-provider@4.2.0':
     dependencies:
       tslib: 2.8.1
@@ -11789,6 +13485,10 @@ snapshots:
     dependencies:
       tslib: 2.8.1
 
+  '@smithy/util-config-provider@4.2.2':
+    dependencies:
+      tslib: 2.8.1
+
   '@smithy/util-defaults-mode-browser@4.3.34':
     dependencies:
       '@smithy/property-provider': 4.2.9
@@ -11796,11 +13496,18 @@ snapshots:
       '@smithy/types': 4.12.1
       tslib: 2.8.1
 
+  '@smithy/util-defaults-mode-browser@4.3.49':
+    dependencies:
+      '@smithy/property-provider': 4.2.14
+      '@smithy/smithy-client': 4.12.13
+      '@smithy/types': 4.14.1
+      tslib: 2.8.1
+
   '@smithy/util-defaults-mode-browser@4.3.6':
     dependencies:
       '@smithy/property-provider': 4.2.5
-      '@smithy/smithy-client': 4.9.3
-      '@smithy/types': 4.9.0
+      '@smithy/smithy-client': 4.11.7
+      '@smithy/types': 4.12.1
       tslib: 2.8.1
 
   '@smithy/util-defaults-mode-node@4.2.37':
@@ -11813,20 +13520,30 @@ snapshots:
       '@smithy/types': 4.12.1
       tslib: 2.8.1
 
+  '@smithy/util-defaults-mode-node@4.2.54':
+    dependencies:
+      '@smithy/config-resolver': 4.4.17
+      '@smithy/credential-provider-imds': 4.2.14
+      '@smithy/node-config-provider': 4.3.14
+      '@smithy/property-provider': 4.2.14
+      '@smithy/smithy-client': 4.12.13
+      '@smithy/types': 4.14.1
+      tslib: 2.8.1
+
   '@smithy/util-defaults-mode-node@4.2.9':
     dependencies:
-      '@smithy/config-resolver': 4.4.3
+      '@smithy/config-resolver': 4.4.7
       '@smithy/credential-provider-imds': 4.2.5
-      '@smithy/node-config-provider': 4.3.5
+      '@smithy/node-config-provider': 4.3.9
       '@smithy/property-provider': 4.2.5
-      '@smithy/smithy-client': 4.9.3
-      '@smithy/types': 4.9.0
+      '@smithy/smithy-client': 4.11.7
+      '@smithy/types': 4.12.1
       tslib: 2.8.1
 
   '@smithy/util-endpoints@3.2.5':
     dependencies:
-      '@smithy/node-config-provider': 4.3.5
-      '@smithy/types': 4.9.0
+      '@smithy/node-config-provider': 4.3.9
+      '@smithy/types': 4.12.1
       tslib: 2.8.1
 
   '@smithy/util-endpoints@3.2.9':
@@ -11835,6 +13552,12 @@ snapshots:
       '@smithy/types': 4.12.1
       tslib: 2.8.1
 
+  '@smithy/util-endpoints@3.4.2':
+    dependencies:
+      '@smithy/node-config-provider': 4.3.14
+      '@smithy/types': 4.14.1
+      tslib: 2.8.1
+
   '@smithy/util-hex-encoding@4.2.0':
     dependencies:
       tslib: 2.8.1
@@ -11843,9 +13566,18 @@ snapshots:
     dependencies:
       tslib: 2.8.1
 
+  '@smithy/util-hex-encoding@4.2.2':
+    dependencies:
+      tslib: 2.8.1
+
+  '@smithy/util-middleware@4.2.14':
+    dependencies:
+      '@smithy/types': 4.14.1
+      tslib: 2.8.1
+
   '@smithy/util-middleware@4.2.5':
     dependencies:
-      '@smithy/types': 4.9.0
+      '@smithy/types': 4.12.1
       tslib: 2.8.1
 
   '@smithy/util-middleware@4.2.9':
@@ -11856,7 +13588,7 @@ snapshots:
   '@smithy/util-retry@4.2.5':
     dependencies:
       '@smithy/service-error-classification': 4.2.5
-      '@smithy/types': 4.9.0
+      '@smithy/types': 4.12.1
       tslib: 2.8.1
 
   '@smithy/util-retry@4.2.9':
@@ -11865,6 +13597,12 @@ snapshots:
       '@smithy/types': 4.12.1
       tslib: 2.8.1
 
+  '@smithy/util-retry@4.3.8':
+    dependencies:
+      '@smithy/service-error-classification': 4.3.1
+      '@smithy/types': 4.14.1
+      tslib: 2.8.1
+
   '@smithy/util-stream@4.5.14':
     dependencies:
       '@smithy/fetch-http-handler': 5.3.10
@@ -11876,15 +13614,26 @@ snapshots:
       '@smithy/util-utf8': 4.2.1
       tslib: 2.8.1
 
+  '@smithy/util-stream@4.5.25':
+    dependencies:
+      '@smithy/fetch-http-handler': 5.3.17
+      '@smithy/node-http-handler': 4.6.1
+      '@smithy/types': 4.14.1
+      '@smithy/util-base64': 4.3.2
+      '@smithy/util-buffer-from': 4.2.2
+      '@smithy/util-hex-encoding': 4.2.2
+      '@smithy/util-utf8': 4.2.2
+      tslib: 2.8.1
+
   '@smithy/util-stream@4.5.6':
     dependencies:
-      '@smithy/fetch-http-handler': 5.3.6
-      '@smithy/node-http-handler': 4.4.5
-      '@smithy/types': 4.9.0
-      '@smithy/util-base64': 4.3.0
+      '@smithy/fetch-http-handler': 5.3.10
+      '@smithy/node-http-handler': 4.4.11
+      '@smithy/types': 4.12.1
+      '@smithy/util-base64': 4.3.1
       '@smithy/util-buffer-from': 4.2.0
       '@smithy/util-hex-encoding': 4.2.0
-      '@smithy/util-utf8': 4.2.0
+      '@smithy/util-utf8': 4.2.1
       tslib: 2.8.1
 
   '@smithy/util-uri-escape@4.2.0':
@@ -11895,6 +13644,10 @@ snapshots:
     dependencies:
       tslib: 2.8.1
 
+  '@smithy/util-uri-escape@4.2.2':
+    dependencies:
+      tslib: 2.8.1
+
   '@smithy/util-utf8@2.3.0':
     dependencies:
       '@smithy/util-buffer-from': 2.2.0
@@ -11910,10 +13663,15 @@ snapshots:
       '@smithy/util-buffer-from': 4.2.1
       tslib: 2.8.1
 
+  '@smithy/util-utf8@4.2.2':
+    dependencies:
+      '@smithy/util-buffer-from': 4.2.2
+      tslib: 2.8.1
+
   '@smithy/util-waiter@4.2.5':
     dependencies:
       '@smithy/abort-controller': 4.2.5
-      '@smithy/types': 4.9.0
+      '@smithy/types': 4.12.1
       tslib: 2.8.1
 
   '@smithy/util-waiter@4.2.9':
@@ -11930,6 +13688,15 @@ snapshots:
     dependencies:
       tslib: 2.8.1
 
+  '@smithy/uuid@1.1.2':
+    dependencies:
+      tslib: 2.8.1
+
+  '@so-ric/colorspace@1.1.6':
+    dependencies:
+      color: 5.0.3
+      text-hex: 1.0.0
+
   '@stylistic/eslint-plugin@3.1.0(eslint@9.39.1)(typescript@5.9.3)':
     dependencies:
       '@typescript-eslint/utils': 8.54.0(eslint@9.39.1)(typescript@5.9.3)
@@ -12019,6 +13786,8 @@ snapshots:
     dependencies:
       '@types/node': 22.19.0
 
+  '@types/cookiejar@2.1.5': {}
+
   '@types/cors@2.8.19':
     dependencies:
       '@types/node': 22.19.0
@@ -12040,6 +13809,12 @@ snapshots:
       '@types/express-serve-static-core': 5.1.1
       '@types/serve-static': 2.2.0
 
+  '@types/express@5.0.4':
+    dependencies:
+      '@types/body-parser': 1.19.6
+      '@types/express-serve-static-core': 5.1.1
+      '@types/serve-static': 2.2.0
+
   '@types/hast@3.0.4':
     dependencies:
       '@types/unist': 3.0.3
@@ -12075,6 +13850,8 @@ snapshots:
 
   '@types/mdurl@2.0.0': {}
 
+  '@types/methods@1.1.4': {}
+
   '@types/mime-types@3.0.1': {}
 
   '@types/mocha@10.0.10': {}
@@ -12114,6 +13891,10 @@ snapshots:
 
   '@types/shimmer@1.2.0': {}
 
+  '@types/sinon@17.0.4':
+    dependencies:
+      '@types/sinonjs__fake-timers': 15.0.1
+
   '@types/sinon@21.0.0':
     dependencies:
       '@types/sinonjs__fake-timers': 15.0.1
@@ -12122,6 +13903,18 @@ snapshots:
 
   '@types/statuses@2.0.6': {}
 
+  '@types/superagent@8.1.9':
+    dependencies:
+      '@types/cookiejar': 2.1.5
+      '@types/methods': 1.1.4
+      '@types/node': 22.19.0
+      form-data: 4.0.5
+
+  '@types/supertest@6.0.3':
+    dependencies:
+      '@types/methods': 1.1.4
+      '@types/superagent': 8.1.9
+
   '@types/tar-fs@2.0.4':
     dependencies:
       '@types/node': 22.19.0
@@ -12131,6 +13924,8 @@ snapshots:
     dependencies:
       '@types/node': 22.19.0
 
+  '@types/triple-beam@1.3.5': {}
+
   '@types/unist@3.0.3': {}
 
   '@types/vscode@1.109.0': {}
@@ -12664,6 +14459,8 @@ snapshots:
       get-intrinsic: 1.3.0
       is-array-buffer: 3.0.5
 
+  asap@2.0.6: {}
+
   assertion-error@1.1.0: {}
 
   astral-regex@2.0.0: {}
@@ -12693,6 +14490,12 @@ snapshots:
     dependencies:
       possible-typed-array-names: 1.1.0
 
+  aws-sdk-client-mock@4.1.0:
+    dependencies:
+      '@types/sinon': 17.0.4
+      sinon: 18.0.1
+      tslib: 2.8.1
+
   azure-devops-node-api@12.5.0:
     dependencies:
       tunnel: 0.0.6
@@ -12747,6 +14550,10 @@ snapshots:
 
   baseline-browser-mapping@2.9.19: {}
 
+  basic-auth@2.0.1:
+    dependencies:
+      safe-buffer: 5.1.2
+
   better-path-resolve@1.0.0:
     dependencies:
       is-windows: 1.0.2
@@ -13109,8 +14916,23 @@ snapshots:
     dependencies:
       color-name: 1.1.4
 
+  color-convert@3.1.3:
+    dependencies:
+      color-name: 2.1.0
+
   color-name@1.1.4: {}
 
+  color-name@2.1.0: {}
+
+  color-string@2.1.4:
+    dependencies:
+      color-name: 2.1.0
+
+  color@5.0.3:
+    dependencies:
+      color-convert: 3.1.3
+      color-string: 2.1.4
+
   colorette@1.4.0: {}
 
   colorette@2.0.20: {}
@@ -13127,6 +14949,8 @@ snapshots:
 
   comment-parser@1.4.1: {}
 
+  component-emitter@1.3.1: {}
+
   compressible@2.0.18:
     dependencies:
       mime-db: 1.54.0
@@ -13184,6 +15008,8 @@ snapshots:
 
   cookie@1.1.1: {}
 
+  cookiejar@2.1.4: {}
+
   core-js-compat@3.46.0:
     dependencies:
       browserslist: 4.28.0
@@ -13320,6 +15146,11 @@ snapshots:
     dependencies:
       dequal: 2.0.3
 
+  dezalgo@1.0.4:
+    dependencies:
+      asap: 2.0.6
+      wrappy: 1.0.2
+
   diagnostic-channel-publishers@1.0.8(diagnostic-channel@1.1.1):
     dependencies:
       diagnostic-channel: 1.1.1
@@ -13401,6 +15232,8 @@ snapshots:
 
   emojilib@2.4.0: {}
 
+  enabled@2.0.0: {}
+
   encodeurl@1.0.2: {}
 
   encodeurl@2.0.0: {}
@@ -13518,6 +15351,34 @@ snapshots:
       is-date-object: 1.1.0
       is-symbol: 1.1.1
 
+  esbuild@0.25.0:
+    optionalDependencies:
+      '@esbuild/aix-ppc64': 0.25.0
+      '@esbuild/android-arm': 0.25.0
+      '@esbuild/android-arm64': 0.25.0
+      '@esbuild/android-x64': 0.25.0
+      '@esbuild/darwin-arm64': 0.25.0
+      '@esbuild/darwin-x64': 0.25.0
+      '@esbuild/freebsd-arm64': 0.25.0
+      '@esbuild/freebsd-x64': 0.25.0
+      '@esbuild/linux-arm': 0.25.0
+      '@esbuild/linux-arm64': 0.25.0
+      '@esbuild/linux-ia32': 0.25.0
+      '@esbuild/linux-loong64': 0.25.0
+      '@esbuild/linux-mips64el': 0.25.0
+      '@esbuild/linux-ppc64': 0.25.0
+      '@esbuild/linux-riscv64': 0.25.0
+      '@esbuild/linux-s390x': 0.25.0
+      '@esbuild/linux-x64': 0.25.0
+      '@esbuild/netbsd-arm64': 0.25.0
+      '@esbuild/netbsd-x64': 0.25.0
+      '@esbuild/openbsd-arm64': 0.25.0
+      '@esbuild/openbsd-x64': 0.25.0
+      '@esbuild/sunos-x64': 0.25.0
+      '@esbuild/win32-arm64': 0.25.0
+      '@esbuild/win32-ia32': 0.25.0
+      '@esbuild/win32-x64': 0.25.0
+
   esbuild@0.25.12:
     optionalDependencies:
       '@esbuild/aix-ppc64': 0.25.12
@@ -13952,6 +15813,10 @@ snapshots:
   expand-template@2.0.3:
     optional: true
 
+  express-basic-auth@1.2.1:
+    dependencies:
+      basic-auth: 2.0.1
+
   express-rate-limit@8.2.1(express@5.2.1):
     dependencies:
       express: 5.2.1
@@ -14088,6 +15953,10 @@ snapshots:
 
   fast-uri@3.1.0: {}
 
+  fast-xml-builder@1.1.5:
+    dependencies:
+      path-expression-matcher: 1.5.0
+
   fast-xml-parser@5.3.5:
     dependencies:
       strnum: 2.1.2
@@ -14096,6 +15965,13 @@ snapshots:
     dependencies:
       strnum: 2.1.2
 
+  fast-xml-parser@5.7.2:
+    dependencies:
+      '@nodable/entities': 2.1.0
+      fast-xml-builder: 1.1.5
+      path-expression-matcher: 1.5.0
+      strnum: 2.2.3
+
   fastest-levenshtein@1.0.16: {}
 
   fastq@1.19.1:
@@ -14110,6 +15986,8 @@ snapshots:
     optionalDependencies:
       picomatch: 4.0.3
 
+  fecha@4.2.3: {}
+
   fetch-blob@3.2.0:
     dependencies:
       node-domexception: 1.0.0
@@ -14179,6 +16057,8 @@ snapshots:
 
   flatted@3.3.3: {}
 
+  fn.name@1.1.0: {}
+
   focus-trap@8.0.1:
     dependencies:
       tabbable: 6.4.0
@@ -14210,6 +16090,12 @@ snapshots:
     dependencies:
       fetch-blob: 3.2.0
 
+  formidable@3.5.4:
+    dependencies:
+      '@paralleldrive/cuid2': 2.3.1
+      dezalgo: 1.0.4
+      once: 1.4.0
+
   forwarded@0.2.0: {}
 
   fresh@0.5.2: {}
@@ -14938,6 +16824,8 @@ snapshots:
       readable-stream: 2.3.8
       setimmediate: 1.0.5
 
+  just-extend@6.2.0: {}
+
   jwa@2.0.1:
     dependencies:
       buffer-equal-constant-time: 1.0.1
@@ -14959,6 +16847,8 @@ snapshots:
     dependencies:
       json-buffer: 3.0.1
 
+  kuler@2.0.0: {}
+
   leven@3.1.0: {}
 
   levn@0.4.1:
@@ -15018,6 +16908,15 @@ snapshots:
       chalk: 5.6.2
       is-unicode-supported: 1.3.0
 
+  logform@2.7.0:
+    dependencies:
+      '@colors/colors': 1.6.0
+      '@types/triple-beam': 1.3.5
+      fecha: 4.2.3
+      ms: 2.1.3
+      safe-stable-stringify: 2.5.0
+      triple-beam: 1.4.1
+
   long@5.3.2: {}
 
   loose-envify@1.4.0:
@@ -15158,6 +17057,8 @@ snapshots:
 
   mime@1.6.0: {}
 
+  mime@2.6.0: {}
+
   mimic-function@5.0.1: {}
 
   mimic-response@3.1.0: {}
@@ -15315,6 +17216,13 @@ snapshots:
 
   negotiator@1.0.0: {}
 
+  nise@6.1.5:
+    dependencies:
+      '@sinonjs/commons': 3.0.1
+      '@sinonjs/fake-timers': 15.3.2
+      just-extend: 6.2.0
+      path-to-regexp: 8.3.0
+
   no-case@3.0.4:
     dependencies:
       lower-case: 2.0.2
@@ -15473,6 +17381,10 @@ snapshots:
     dependencies:
       wrappy: 1.0.2
 
+  one-time@1.0.0:
+    dependencies:
+      fn.name: 1.1.0
+
   onetime@7.0.0:
     dependencies:
       mimic-function: 5.0.1
@@ -15662,6 +17574,8 @@ snapshots:
 
   path-exists@4.0.0: {}
 
+  path-expression-matcher@1.5.0: {}
+
   path-is-absolute@1.0.1: {}
 
   path-is-inside@1.0.2: {}
@@ -15988,7 +17902,6 @@ snapshots:
       inherits: 2.0.4
       string_decoder: 1.3.0
       util-deprecate: 1.0.2
-    optional: true
 
   readdirp@3.6.0:
     dependencies:
@@ -16362,6 +18275,15 @@ snapshots:
       simple-concat: 1.0.1
     optional: true
 
+  sinon@18.0.1:
+    dependencies:
+      '@sinonjs/commons': 3.0.1
+      '@sinonjs/fake-timers': 11.2.2
+      '@sinonjs/samsam': 8.0.3
+      diff: 8.0.3
+      nise: 6.1.5
+      supports-color: 7.2.0
+
   sinon@21.0.1:
     dependencies:
       '@sinonjs/commons': 3.0.1
@@ -16449,6 +18371,8 @@ snapshots:
 
   stack-chain@1.3.7: {}
 
+  stack-trace@0.0.10: {}
+
   statuses@2.0.1: {}
 
   statuses@2.0.2: {}
@@ -16519,7 +18443,6 @@ snapshots:
   string_decoder@1.3.0:
     dependencies:
       safe-buffer: 5.2.1
-    optional: true
 
   stringify-entities@4.0.4:
     dependencies:
@@ -16551,10 +18474,33 @@ snapshots:
 
   strnum@2.1.2: {}
 
+  strnum@2.2.3: {}
+
   structured-source@4.0.0:
     dependencies:
       boundary: 2.0.0
 
+  superagent@10.3.0:
+    dependencies:
+      component-emitter: 1.3.1
+      cookiejar: 2.1.4
+      debug: 4.4.3(supports-color@10.2.2)
+      fast-safe-stringify: 2.1.1
+      form-data: 4.0.5
+      formidable: 3.5.4
+      methods: 1.1.2
+      mime: 2.6.0
+      qs: 6.14.1
+    transitivePeerDependencies:
+      - supports-color
+
+  supertest@7.1.4:
+    dependencies:
+      methods: 1.1.2
+      superagent: 10.3.0
+    transitivePeerDependencies:
+      - supports-color
+
   supports-color@10.2.2: {}
 
   supports-color@7.2.0:
@@ -16667,6 +18613,8 @@ snapshots:
     transitivePeerDependencies:
       - react-native-b4a
 
+  text-hex@1.0.0: {}
+
   text-table@0.2.0: {}
 
   textextensions@6.11.0:
@@ -16718,6 +18666,8 @@ snapshots:
 
   trim-lines@3.0.1: {}
 
+  triple-beam@1.4.1: {}
+
   ts-api-utils@2.4.0(typescript@5.9.3):
     dependencies:
       typescript: 5.9.3
@@ -17171,6 +19121,26 @@ snapshots:
     dependencies:
       string-width: 4.2.3
 
+  winston-transport@4.9.0:
+    dependencies:
+      logform: 2.7.0
+      readable-stream: 3.6.2
+      triple-beam: 1.4.1
+
+  winston@3.19.0:
+    dependencies:
+      '@colors/colors': 1.6.0
+      '@dabh/diagnostics': 2.0.8
+      async: 3.2.6
+      is-stream: 2.0.1
+      logform: 2.7.0
+      one-time: 1.0.0
+      readable-stream: 3.6.2
+      safe-stable-stringify: 2.5.0
+      stack-trace: 0.0.10
+      triple-beam: 1.4.1
+      winston-transport: 4.9.0
+
   word-wrap@1.2.5: {}
 
   wordwrap@1.0.0: {}

From 7f37a3445abde2a09251abd6394fee19be26f787 Mon Sep 17 00:00:00 2001
From: Kieran Haberstock 
Date: Tue, 5 May 2026 15:12:35 -0700
Subject: [PATCH 2/3] WIP

---
 package.json                                  |   2 +-
 .../b2c-cli/src/commands/mrt/bundle/deploy.ts |   6 +-
 .../b2c-cli/src/commands/mrt/bundle/save.ts   |   6 +-
 .../b2c-tooling-sdk/src/cli/mrt-command.ts    |   2 +
 .../src/operations/mrt/bundle.ts              |  50 +++-
 .../src/operations/mrt/index.ts               |   4 +-
 packages/mrt-reference-app/.gitignore         |   2 +
 packages/mrt-reference-app/build/package.json |   1 +
 packages/mrt-reference-app/build/ssr.js       | 187 ---------------
 packages/mrt-reference-app/config.server.ts   |  37 +++
 packages/mrt-reference-app/package.json       |   1 +
 packages/mrt-reference-app/scripts/build.mjs  |  43 +++-
 packages/mrt-welcome-app/.gitignore           |   1 +
 packages/mrt-welcome-app/config.server.ts     |  19 ++
 packages/mrt-welcome-app/package.json         |   1 +
 packages/mrt-welcome-app/scripts/build.mjs    |  21 +-
 pnpm-lock.yaml                                | 221 ++++++++++--------
 pnpm-workspace.yaml                           |  24 +-
 18 files changed, 311 insertions(+), 317 deletions(-)
 delete mode 100644 packages/mrt-reference-app/build/ssr.js
 create mode 100644 packages/mrt-reference-app/config.server.ts
 create mode 100644 packages/mrt-welcome-app/config.server.ts

diff --git a/package.json b/package.json
index 4d63c5fb8..5c6945c0b 100644
--- a/package.json
+++ b/package.json
@@ -30,7 +30,7 @@
   "packageManager": "pnpm@10.17.1",
   "devDependencies": {
     "@changesets/changelog-github": "^0.5.2",
-    "@changesets/cli": "^2.29.8",
+    "@changesets/cli": "^2.31.0",
     "eslint-plugin-prettier": "catalog:",
     "prettier": "catalog:"
   }
diff --git a/packages/b2c-cli/src/commands/mrt/bundle/deploy.ts b/packages/b2c-cli/src/commands/mrt/bundle/deploy.ts
index f768af318..6671112b4 100644
--- a/packages/b2c-cli/src/commands/mrt/bundle/deploy.ts
+++ b/packages/b2c-cli/src/commands/mrt/bundle/deploy.ts
@@ -104,11 +104,9 @@ export default class MrtBundleDeploy extends MrtCommand
     }),
     'ssr-only': Flags.string({
       description: 'Glob patterns for server-only files (comma-separated or JSON array, only for local builds)',
-      default: 'ssr.js,ssr.mjs,server/**/*',
     }),
     'ssr-shared': Flags.string({
       description: 'Glob patterns for shared files (comma-separated or JSON array, only for local builds)',
-      default: 'static/**/*,client/**/*',
     }),
     'node-version': Flags.string({
       char: 'n',
@@ -237,8 +235,8 @@ export default class MrtBundleDeploy extends MrtCommand
     }
 
     const buildDir = this.flags['build-dir'];
-    const ssrOnly = parseGlobPatterns(this.flags['ssr-only']);
-    const ssrShared = parseGlobPatterns(this.flags['ssr-shared']);
+    const ssrOnly = this.flags['ssr-only'] ? parseGlobPatterns(this.flags['ssr-only']) : undefined;
+    const ssrShared = this.flags['ssr-shared'] ? parseGlobPatterns(this.flags['ssr-shared']) : undefined;
 
     // Build SSR parameters from flags
     const ssrParameters: Record = parseSsrParams(this.flags['ssr-param']);
diff --git a/packages/b2c-cli/src/commands/mrt/bundle/save.ts b/packages/b2c-cli/src/commands/mrt/bundle/save.ts
index 5ca61999f..4a3ef89a8 100644
--- a/packages/b2c-cli/src/commands/mrt/bundle/save.ts
+++ b/packages/b2c-cli/src/commands/mrt/bundle/save.ts
@@ -57,11 +57,9 @@ export default class MrtBundleSave extends BaseCommand {
     }),
     'ssr-only': Flags.string({
       description: 'Glob patterns for server-only files (comma-separated or JSON array)',
-      default: 'ssr.js,ssr.mjs,server/**/*',
     }),
     'ssr-shared': Flags.string({
       description: 'Glob patterns for shared files (comma-separated or JSON array)',
-      default: 'static/**/*,client/**/*',
     }),
     'node-version': Flags.string({
       char: 'n',
@@ -83,8 +81,8 @@ export default class MrtBundleSave extends BaseCommand {
 
     const saveDir = this.flags['save-dir'];
     const buildDir = this.flags['build-dir'];
-    const ssrOnly = parseGlobPatterns(this.flags['ssr-only']);
-    const ssrShared = parseGlobPatterns(this.flags['ssr-shared']);
+    const ssrOnly = this.flags['ssr-only'] ? parseGlobPatterns(this.flags['ssr-only']) : undefined;
+    const ssrShared = this.flags['ssr-shared'] ? parseGlobPatterns(this.flags['ssr-shared']) : undefined;
     const ssrParameters: Record = {};
 
     if (this.flags['node-version']) {
diff --git a/packages/b2c-tooling-sdk/src/cli/mrt-command.ts b/packages/b2c-tooling-sdk/src/cli/mrt-command.ts
index 12769faf0..bc3aa3485 100644
--- a/packages/b2c-tooling-sdk/src/cli/mrt-command.ts
+++ b/packages/b2c-tooling-sdk/src/cli/mrt-command.ts
@@ -55,11 +55,13 @@ export abstract class MrtCommand extends BaseCommand process.env.SFCC_MRT_ENVIRONMENT || process.env.MRT_TARGET || undefined,
     }),
     'cloud-origin': Flags.string({
+      char: 'o',
       description: `MRT cloud origin URL (or set mrtOrigin in dw.json; default: ${DEFAULT_MRT_ORIGIN})`,
       env: 'MRT_CLOUD_ORIGIN',
       default: async () => process.env.SFCC_MRT_CLOUD_ORIGIN || undefined,
     }),
     'credentials-file': Flags.string({
+      char: 'c',
       description: 'Path to MRT credentials file (overrides default ~/.mobify)',
       env: 'MRT_CREDENTIALS_FILE',
     }),
diff --git a/packages/b2c-tooling-sdk/src/operations/mrt/bundle.ts b/packages/b2c-tooling-sdk/src/operations/mrt/bundle.ts
index f35338006..46c37e64b 100644
--- a/packages/b2c-tooling-sdk/src/operations/mrt/bundle.ts
+++ b/packages/b2c-tooling-sdk/src/operations/mrt/bundle.ts
@@ -19,6 +19,19 @@ import tar from 'tar-fs';
 import {Minimatch} from 'minimatch';
 import {getLogger} from '../../logging/logger.js';
 
+/**
+ * Shape of config.server.ts exported from an MRT app.
+ * Used to define ssrOnly, ssrShared, and ssrParameters for bundle creation.
+ */
+export interface MrtServerConfig {
+  ssrOnly: string[];
+  ssrShared: string[];
+  ssrParameters?: Record;
+}
+
+export const DEFAULT_SSR_ONLY = ['ssr.js', 'ssr.mjs', 'server/**/*'];
+export const DEFAULT_SSR_SHARED = ['static/**/*', 'client/**/*'];
+
 /**
  * Default SSR parameters applied to all bundles.
  * These can be overridden by providing ssrParameters in CreateBundleOptions.
@@ -49,15 +62,17 @@ export interface CreateBundleOptions {
 
   /**
    * Glob patterns for files that should only run on the server.
+   * If omitted, loaded from build/config.server.js if present.
    * @example ['ssr.js', 'ssr/*.js']
    */
-  ssrOnly: string[];
+  ssrOnly?: string[];
 
   /**
    * Glob patterns for files shared between client and server.
+   * If omitted, loaded from build/config.server.js if present.
    * @example ['static/**\/*', '**\/*.js']
    */
-  ssrShared: string[];
+  ssrShared?: string[];
 
   /**
    * Path to the build directory containing the application build output.
@@ -170,15 +185,39 @@ export function getDefaultMessage(): string {
  * });
  * ```
  */
+async function loadServerConfig(buildPath: string): Promise {
+  const configPath = path.join(buildPath, 'config.server.js');
+  try {
+    await stat(configPath);
+  } catch {
+    return null;
+  }
+  try {
+    const mod = await import(configPath);
+    const config: MrtServerConfig = mod.config ?? mod.default?.config ?? mod.default;
+    return config ?? null;
+  } catch {
+    return null;
+  }
+}
+
 export async function createBundle(options: CreateBundleOptions): Promise {
   const logger = getLogger();
-  const {ssrOnly, ssrShared, projectSlug} = options;
+  const {projectSlug} = options;
   const buildDirectory = options.buildDirectory || 'build';
   const message = options.message || getDefaultMessage();
+  const buildPath = path.isAbsolute(buildDirectory) ? buildDirectory : path.join(process.cwd(), buildDirectory);
+
+  const serverConfig = await loadServerConfig(buildPath);
+
+  const ssrOnly = options.ssrOnly ?? serverConfig?.ssrOnly ?? DEFAULT_SSR_ONLY;
+  const ssrShared = options.ssrShared ?? serverConfig?.ssrShared ?? DEFAULT_SSR_SHARED;
+  const ssrParamsFromConfig = serverConfig?.ssrParameters ?? {};
 
-  // Merge default SSR parameters with provided ones (provided values take precedence)
+  // Merge: defaults < config.server.js < explicit options (explicit values win)
   const ssrParameters = {
     ...DEFAULT_SSR_PARAMETERS,
+    ...ssrParamsFromConfig,
     ...options.ssrParameters,
   };
 
@@ -189,9 +228,6 @@ export async function createBundle(options: CreateBundleOptions): Promise()=>(t&&(e=t(t=0)),e);var b=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),wt=(t,e)=>{for(var r in e)$v(t,r,{get:e[r],enumerable:!0})},gJ=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of d6e(e))!m6e.call(t,s)&&s!==r&&$v(t,s,{get:()=>e[s],enumerable:!(n=l6e(e,s))||n.enumerable});return t};var O=(t,e,r)=>(r=t!=null?u6e(p6e(t)):{},gJ(e||!t||!t.__esModule?$v(r,"default",{value:t,enumerable:!0}):r,t)),ue=t=>gJ($v({},"__esModule",{value:!0}),t);var yJ=b((U3r,EJ)=>{"use strict";var Gv=require("debug")("express:view"),bS=require("node:path"),g6e=require("node:fs"),f6e=bS.dirname,SJ=bS.basename,h6e=bS.extname,fJ=bS.join,S6e=bS.resolve;EJ.exports=jv;function jv(t,e){var r=e||{};if(this.defaultEngine=r.defaultEngine,this.ext=h6e(t),this.name=t,this.root=r.root,!this.ext&&!this.defaultEngine)throw new Error("No default engine was specified and no extension was provided.");var n=t;if(this.ext||(this.ext=this.defaultEngine[0]!=="."?"."+this.defaultEngine:this.defaultEngine,n+=this.ext),!r.engines[this.ext]){var s=this.ext.slice(1);Gv('require "%s"',s);var o=require(s).__express;if(typeof o!="function")throw new Error('Module "'+s+'" does not provide a view engine.');r.engines[this.ext]=o}this.engine=r.engines[this.ext],this.path=this.lookup(n)}jv.prototype.lookup=function(e){var r,n=[].concat(this.root);Gv('lookup "%s"',e);for(var s=0;s{"use strict";var{METHODS:E6e}=require("node:http"),_J=require("content-type"),y6e=require("etag"),_6e=require("mime-types"),C6e=require("proxy-addr"),R6e=require("qs"),v6e=require("querystring");Us.methods=E6e.map(t=>t.toLowerCase());Us.etag=CJ({weak:!1});Us.wetag=CJ({weak:!0});Us.normalizeType=function(t){return~t.indexOf("/")?x6e(t):{value:_6e.lookup(t)||"application/octet-stream",params:{}}};Us.normalizeTypes=function(t){return t.map(Us.normalizeType)};function x6e(t){for(var e=t.length,r=t.indexOf(";"),n=r===-1?e:r,s={value:t.slice(0,n).trim(),quality:1,params:{}};ni){n=t.lastIndexOf(";",o-1)+1;continue}var a=t.slice(n,o).trim(),c=t.slice(o+1,i).trim();a==="q"?s.quality=parseFloat(c):s.params[a]=c,n=i+1}return s}Us.compileETag=function(t){var e;if(typeof t=="function")return t;switch(t){case!0:case"weak":e=Us.wetag;break;case!1:break;case"strong":e=Us.etag;break;default:throw new TypeError("unknown value for etag function: "+t)}return e};Us.compileQueryParser=function(e){var r;if(typeof e=="function")return e;switch(e){case!0:case"simple":r=v6e.parse;break;case!1:break;case"extended":r=P6e;break;default:throw new TypeError("unknown value for query parser function: "+e)}return r};Us.compileTrust=function(t){return typeof t=="function"?t:t===!0?function(){return!0}:typeof t=="number"?function(e,r){return r{"use strict";var b6e=require("finalhandler"),L$=require("debug")("express:application"),I6e=yJ(),A6e=require("node:http"),k$=_u().methods,T6e=_u().compileETag,w6e=_u().compileQueryParser,D6e=_u().compileTrust,O6e=require("node:path").resolve,k6e=require("once"),N6e=require("router"),M$=Array.prototype.slice,L6e=Array.prototype.flat,sn=RJ=vJ.exports={},N$="@@symbol:trust_proxy_default";sn.init=function(){var e=null;this.cache=Object.create(null),this.engines=Object.create(null),this.settings=Object.create(null),this.defaultConfiguration(),Object.defineProperty(this,"router",{configurable:!0,enumerable:!0,get:function(){return e===null&&(e=new N6e({caseSensitive:this.enabled("case sensitive routing"),strict:this.enabled("strict routing")})),e}})};sn.defaultConfiguration=function(){var e="production";this.enable("x-powered-by"),this.set("etag","weak"),this.set("env",e),this.set("query parser","simple"),this.set("subdomain offset",2),this.set("trust proxy",!1),Object.defineProperty(this.settings,N$,{configurable:!0,value:!0}),L$("booting in %s mode",e),this.on("mount",function(n){this.settings[N$]===!0&&typeof n.settings["trust proxy fn"]=="function"&&(delete this.settings["trust proxy"],delete this.settings["trust proxy fn"]),Object.setPrototypeOf(this.request,n.request),Object.setPrototypeOf(this.response,n.response),Object.setPrototypeOf(this.engines,n.engines),Object.setPrototypeOf(this.settings,n.settings)}),this.locals=Object.create(null),this.mountpath="/",this.locals.settings=this.settings,this.set("view",I6e),this.set("views",O6e("views")),this.set("jsonp callback name","callback"),e==="production"&&this.enable("view cache")};sn.handle=function(e,r,n){var s=n||b6e(e,r,{env:this.get("env"),onerror:M6e.bind(this)});this.enabled("x-powered-by")&&r.setHeader("X-Powered-By","Express"),e.res=r,r.req=e,Object.setPrototypeOf(e,this.request),Object.setPrototypeOf(r,this.response),r.locals||(r.locals=Object.create(null)),this.router.handle(e,r,s)};sn.use=function(e){var r=0,n="/";if(typeof e!="function"){for(var s=e;Array.isArray(s)&&s.length!==0;)s=s[0];typeof s!="function"&&(r=1,n=e)}var o=L6e.call(M$.call(arguments,r),1/0);if(o.length===0)throw new TypeError("app.use() requires a middleware function");var i=this.router;return o.forEach(function(a){if(!a||!a.handle||!a.set)return i.use(n,a);L$(".use app under %s",n),a.mountpath=n,a.parent=this,i.use(n,function(u,l,d){var p=u.app;a.handle(u,l,function(g){Object.setPrototypeOf(u,p.request),Object.setPrototypeOf(l,p.response),d(g)})}),a.emit("mount",this)},this),this};sn.route=function(e){return this.router.route(e)};sn.engine=function(e,r){if(typeof r!="function")throw new Error("callback function required");var n=e[0]!=="."?"."+e:e;return this.engines[n]=r,this};sn.param=function(e,r){if(Array.isArray(e)){for(var n=0;n1?'directories "'+c.root.slice(0,-1).join('", "')+'" or "'+c.root[c.root.length-1]+'"':'directory "'+c.root+'"',p=new Error('Failed to lookup view "'+e+'" in views '+d);return p.view=c,o(p)}u.cache&&(s[e]=c)}F6e(c,u,o)};sn.listen=function(){var e=A6e.createServer(this),r=Array.prototype.slice.call(arguments);if(typeof r[r.length-1]=="function"){var n=r[r.length-1]=k6e(r[r.length-1]);e.once("error",n)}return e.listen.apply(e,r)};function M6e(t){this.get("env")!=="test"&&console.error(t.stack||t.toString())}function F6e(t,e,r){try{t.render(e,r)}catch(n){r(n)}}});var AJ=b(($3r,IJ)=>{"use strict";var Vv=require("accepts"),B6e=require("node:net").isIP,U6e=require("type-is"),q6e=require("node:http"),$6e=require("fresh"),G6e=require("range-parser"),PJ=require("parseurl"),bJ=require("proxy-addr"),hr=Object.create(q6e.IncomingMessage.prototype);IJ.exports=hr;hr.get=hr.header=function(e){if(!e)throw new TypeError("name argument is required to req.get");if(typeof e!="string")throw new TypeError("name must be a string to req.get");var r=e.toLowerCase();switch(r){case"referer":case"referrer":return this.headers.referrer||this.headers.referer;default:return this.headers[r]}};hr.accepts=function(){var t=Vv(this);return t.types.apply(t,arguments)};hr.acceptsEncodings=function(){var t=Vv(this);return t.encodings.apply(t,arguments)};hr.acceptsCharsets=function(){var t=Vv(this);return t.charsets.apply(t,arguments)};hr.acceptsLanguages=function(){var t=Vv(this);return t.languages.apply(t,arguments)};hr.range=function(e,r){var n=this.get("Range");if(n)return G6e(e,n,r)};Co(hr,"query",function(){var e=this.app.get("query parser fn");if(!e)return Object.create(null);var r=PJ(this).query;return e(r)});hr.is=function(e){var r=e;if(!Array.isArray(e)){r=new Array(arguments.length);for(var n=0;n=200&&r<300||r===304?$6e(this.headers,{etag:e.get("ETag"),"last-modified":e.get("Last-Modified")}):!1});Co(hr,"stale",function(){return!this.fresh});Co(hr,"xhr",function(){var e=this.get("X-Requested-With")||"";return e.toLowerCase()==="xmlhttprequest"});function Co(t,e,r){Object.defineProperty(t,e,{configurable:!0,enumerable:!0,get:r})}});var NJ=b((G3r,kJ)=>{"use strict";var TJ=require("content-disposition"),j6e=require("http-errors"),V6e=require("encodeurl"),H6e=require("escape-html"),z6e=require("node:http"),W6e=require("on-finished"),wJ=require("mime-types"),DJ=require("node:path"),K6e=require("node:path").isAbsolute,F$=require("statuses"),Q6e=require("cookie-signature").sign,X6e=_u().normalizeType,J6e=_u().normalizeTypes,Y6e=_u().setCharset,Z6e=require("cookie"),e9e=require("send"),t9e=DJ.extname,r9e=DJ.resolve,n9e=require("vary"),rr=Object.create(z6e.ServerResponse.prototype);kJ.exports=rr;rr.status=function(e){if(!Number.isInteger(e))throw new TypeError(`Invalid status code: ${JSON.stringify(e)}. Status code must be an integer.`);if(e<100||e>999)throw new RangeError(`Invalid status code: ${JSON.stringify(e)}. Status code must be greater than 99 and less than 1000.`);return this.statusCode=e,this};rr.links=function(t){var e=this.get("Link")||"";return e&&(e+=", "),this.set("Link",e+Object.keys(t).map(function(r){return Array.isArray(t[r])?t[r].map(function(n){return`<${n}>; rel="${r}"`}).join(", "):`<${t[r]}>; rel="${r}"`}).join(", "))};rr.send=function(e){var r=e,n,s=this.req,o,i=this.app;switch(typeof r){case"string":this.get("Content-Type")||this.type("html");break;case"boolean":case"number":case"object":if(r===null)r="";else if(ArrayBuffer.isView(r))this.get("Content-Type")||this.type("bin");else return this.json(r);break}typeof r=="string"&&(n="utf8",o=this.get("Content-Type"),typeof o=="string"&&this.set("Content-Type",Y6e(o,"utf-8")));var a=i.get("etag fn"),c=!this.get("ETag")&&typeof a=="function",u;r!==void 0&&(Buffer.isBuffer(r)?u=r.length:!c&&r.length<1e3?u=Buffer.byteLength(r,n):(r=Buffer.from(r,n),n=void 0,u=r.length),this.set("Content-Length",u));var l;return c&&u!==void 0&&(l=a(r,n))&&this.set("ETag",l),s.fresh&&this.status(304),(this.statusCode===204||this.statusCode===304)&&(this.removeHeader("Content-Type"),this.removeHeader("Content-Length"),this.removeHeader("Transfer-Encoding"),r=""),this.statusCode===205&&(this.set("Content-Length","0"),this.removeHeader("Transfer-Encoding"),r=""),s.method==="HEAD"?this.end():this.end(r,n),this};rr.json=function(e){var r=this.app,n=r.get("json escape"),s=r.get("json replacer"),o=r.get("json spaces"),i=OJ(e,s,o,n);return this.get("Content-Type")||this.set("Content-Type","application/json"),this.send(i)};rr.jsonp=function(e){var r=this.app,n=r.get("json escape"),s=r.get("json replacer"),o=r.get("json spaces"),i=OJ(e,s,o,n),a=this.req.query[r.get("jsonp callback name")];return this.get("Content-Type")||(this.set("X-Content-Type-Options","nosniff"),this.set("Content-Type","application/json")),Array.isArray(a)&&(a=a[0]),typeof a=="string"&&a.length!==0&&(this.set("X-Content-Type-Options","nosniff"),this.set("Content-Type","text/javascript"),a=a.replace(/[^\[\]\w$.]/g,""),i===void 0?i="":typeof i=="string"&&(i=i.replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")),i="/**/ typeof "+a+" === 'function' && "+a+"("+i+");"),this.send(i)};rr.sendStatus=function(e){var r=F$.message[e]||String(e);return this.status(e),this.type("txt"),this.send(r)};rr.sendFile=function(e,r,n){var s=n,o=this.req,i=this,a=o.next,c=r||{};if(!e)throw new TypeError("path argument is required to res.sendFile");if(typeof e!="string")throw new TypeError("path must be a string to res.sendFile");if(typeof r=="function"&&(s=r,c={}),!c.root&&!K6e(e))throw new TypeError("path must be absolute or specify root to res.sendFile");var u=encodeURI(e);c.etag=this.app.enabled("etag");var l=e9e(o,u,c);s9e(i,l,c,function(d){if(s)return s(d);if(d&&d.code==="EISDIR")return a();d&&d.code!=="ECONNABORTED"&&d.syscall!=="write"&&a(d)})};rr.download=function(e,r,n,s){var o=s,i=r,a=n||null;typeof r=="function"?(o=r,i=null,a=null):typeof n=="function"&&(o=n,a=null),typeof r=="object"&&(typeof n=="function"||n===void 0)&&(i=null,a=r);var c={"Content-Disposition":TJ(i||e)};if(a&&a.headers)for(var u=Object.keys(a.headers),l=0;l0?e.accepts(n):!1;return this.vary("Accept"),s?(this.set("Content-Type",X6e(s).value),t[s](e,this,r)):t.default?t.default(e,this,r):r(j6e(406,{types:J6e(n).map(function(o){return o.value})})),this};rr.attachment=function(e){return e&&this.type(t9e(e)),this.set("Content-Disposition",TJ(e)),this};rr.append=function(e,r){var n=this.get(e),s=r;return n&&(s=Array.isArray(n)?n.concat(r):Array.isArray(r)?[n].concat(r):[n,r]),this.set(e,s)};rr.set=rr.header=function(e,r){if(arguments.length===2){var n=Array.isArray(r)?r.map(String):String(r);if(e.toLowerCase()==="content-type"){if(Array.isArray(n))throw new TypeError("Content-Type cannot be set to an Array");n=wJ.contentType(n)}this.setHeader(e,n)}else for(var s in e)this.set(s,e[s]);return this};rr.get=function(t){return this.getHeader(t)};rr.clearCookie=function(e,r){let n={path:"/",...r,expires:new Date(1)};return delete n.maxAge,this.cookie(e,"",n)};rr.cookie=function(t,e,r){var n={...r},s=this.req.secret,o=n.signed;if(o&&!s)throw new Error('cookieParser("secret") required for signed cookies');var i=typeof e=="object"?"j:"+JSON.stringify(e):String(e);if(o&&(i="s:"+Q6e(i,s)),n.maxAge!=null){var a=n.maxAge-0;isNaN(a)||(n.expires=new Date(Date.now()+a),n.maxAge=Math.floor(a/1e3))}return n.path==null&&(n.path="/"),this.append("Set-Cookie",Z6e.serialize(t,String(i),n)),this};rr.location=function(e){return this.set("Location",V6e(e))};rr.redirect=function(e){var r=e,n,s=302;arguments.length===2&&(s=arguments[0],r=arguments[1]),r=this.location(r).get("Location"),this.format({text:function(){n=F$.message[s]+". Redirecting to "+r},html:function(){var o=H6e(r);n="

"+F$.message[s]+". Redirecting to "+o+"

"},default:function(){n=""}}),this.status(s),this.set("Content-Length",Buffer.byteLength(n)),this.req.method==="HEAD"?this.end():this.end(n)};rr.vary=function(t){return n9e(this,t),this};rr.render=function(e,r,n){var s=this.req.app,o=n,i=r||{},a=this.req,c=this;typeof r=="function"&&(o=r,i={}),i._locals=c.locals,o=o||function(u,l){if(u)return a.next(u);c.send(l)},s.render(e,i,o)};function s9e(t,e,r,n){var s=!1,o;function i(){if(!s){s=!0;var g=new Error("Request aborted");g.code="ECONNABORTED",n(g)}}function a(){if(!s){s=!0;var g=new Error("EISDIR, read");g.code="EISDIR",n(g)}}function c(g){s||(s=!0,n(g))}function u(){s||(s=!0,n())}function l(){o=!1}function d(g){if(g&&g.code==="ECONNRESET")return i();if(g)return c(g);s||setImmediate(function(){if(o!==!1&&!s){i();return}s||(s=!0,n())})}function p(){o=!0}e.on("directory",a),e.on("end",u),e.on("error",c),e.on("file",l),e.on("stream",p),W6e(t,d),r.headers&&e.on("headers",function(y){for(var R=r.headers,D=Object.keys(R),B=0;B&]/g,function(o){switch(o.charCodeAt(0)){case 60:return"\\u003c";case 62:return"\\u003e";case 38:return"\\u0026";default:return o}})),s}});var $J=b((Ro,qJ)=>{"use strict";var Hv=require("body-parser"),o9e=require("node:events").EventEmitter,LJ=require("merge-descriptors"),MJ=xJ(),FJ=require("router"),BJ=AJ(),UJ=NJ();Ro=qJ.exports=i9e;function i9e(){var t=function(e,r,n){t.handle(e,r,n)};return LJ(t,o9e.prototype,!1),LJ(t,MJ,!1),t.request=Object.create(BJ,{app:{configurable:!0,enumerable:!0,writable:!0,value:t}}),t.response=Object.create(UJ,{app:{configurable:!0,enumerable:!0,writable:!0,value:t}}),t.init(),t}Ro.application=MJ;Ro.request=BJ;Ro.response=UJ;Ro.Route=FJ.Route;Ro.Router=FJ;Ro.json=Hv.json;Ro.raw=Hv.raw;Ro.static=require("serve-static");Ro.text=Hv.text;Ro.urlencoded=Hv.urlencoded});var B$=b((j3r,GJ)=>{"use strict";GJ.exports=$J()});var zJ=b((V3r,HJ)=>{var a9e=require("basic-auth"),U$=require("assert"),c9e=require("crypto").timingSafeEqual;function q$(t,e){let r=Buffer.byteLength(t),n=Buffer.byteLength(e),s=Buffer.alloc(r,0,"utf8");s.write(t);let o=Buffer.alloc(r,0,"utf8");return o.write(e),!!(c9e(s,o)&r===n)}function jJ(t,e){return t==null?function(){return e}:typeof t!="function"?function(){return t}:t}function VJ(t){var e=t.challenge!=null?!!t.challenge:!1,r=t.users||{},n=t.authorizer||a,s=t.authorizeAsync!=null?!!t.authorizeAsync:!1,o=jJ(t.unauthorizedResponse,""),i=jJ(t.realm);U$(typeof r=="object","Expected an object for the basic auth users, found "+typeof r+" instead"),U$(typeof n=="function","Expected a function for the basic auth authorizer, found "+typeof n+" instead");function a(c,u){for(var l in r)if(q$(c,l)&q$(u,r[l]))return!0;return!1}return function(u,l,d){var p=a9e(u);if(!p)return g();if(u.auth={user:p.name,password:p.pass},s)return n(p.name,p.pass,y);if(!n(p.name,p.pass))return g();return d();function g(){if(e){var R="Basic",D=i(u);D&&(R+=' realm="'+D+'"'),l.set("WWW-Authenticate",R)}let B=o(u);return typeof B=="string"?l.status(401).send(B):l.status(401).json(B)}function y(R,D){return U$.ifError(R),D?d():g()}}}VJ.safeCompare=q$;HJ.exports=VJ});function mm(t){return WJ.includes(t)}var IS,WJ,zv=_(()=>{IS="preferred",WJ=["disabled","preferred","required"]});var KJ,u9e,QJ=_(()=>{KJ=require("@smithy/util-middleware");zv();u9e=t=>{let{accountIdEndpointMode:e}=t,r=(0,KJ.normalizeProvider)(e??IS);return Object.assign(t,{accountIdEndpointMode:async()=>{let n=await r();if(!mm(n))throw new Error(`Invalid value for accountIdEndpointMode: ${n}. Valid values are: "required", "preferred", "disabled".`);return n}})}});var XJ,JJ,YJ,ZJ,l9e,eY=_(()=>{zv();XJ="Invalid AccountIdEndpointMode value",JJ=t=>{throw new Error(t)},YJ="AWS_ACCOUNT_ID_ENDPOINT_MODE",ZJ="account_id_endpoint_mode",l9e={environmentVariableSelector:t=>{let e=t[YJ];return e&&!mm(e)&&JJ(XJ),e},configFileSelector:t=>{let e=t[ZJ];return e&&!mm(e)&&JJ(XJ),e},default:IS}});var $$={};wt($$,{ACCOUNT_ID_ENDPOINT_MODE_VALUES:()=>WJ,CONFIG_ACCOUNT_ID_ENDPOINT_MODE:()=>ZJ,DEFAULT_ACCOUNT_ID_ENDPOINT_MODE:()=>IS,ENV_ACCOUNT_ID_ENDPOINT_MODE:()=>YJ,NODE_ACCOUNT_ID_ENDPOINT_MODE_CONFIG_OPTIONS:()=>l9e,resolveAccountIdEndpointModeConfig:()=>u9e,validateAccountIdEndpointMode:()=>mm});var G$=_(()=>{QJ();zv();eY()});var rY=b(tY=>{"use strict";var d9e=require("mnemonist/lru-cache"),j$=class{cache;constructor(e){this.cache=new d9e(e)}getEndpoint(e){let r=this.get(e);if(!r||r.length===0)return;let n=r.map(s=>s.Address);return n[Math.floor(Math.random()*n.length)]}get(e){if(!this.has(e))return;let r=this.cache.get(e);if(!r)return;let n=Date.now(),s=r.filter(o=>n({Address:s,Expires:n+o*60*1e3})))}delete(e){this.cache.set(e,[])}has(e){if(!this.cache.has(e))return!1;let r=this.cache.peek(e);return r?r.length>0:!1}clear(){this.cache.clear()}};tY.EndpointCache=j$});var z$=b(Ed=>{"use strict";var p9e=require("@smithy/protocol-http"),m9e=rY(),nY=["AWS_ENABLE_ENDPOINT_DISCOVERY","AWS_ENDPOINT_DISCOVERY_ENABLED"],V$="endpoint_discovery_enabled",sY=t=>["false","0"].indexOf(t)>=0,g9e={environmentVariableSelector:t=>{for(let e=0;e{if(V$ in t){let e=t[V$];if(e===void 0)throw Error(`Shared config entry ${V$} can't be undefined, got "${e}"`);return!sY(e)}},default:void 0},f9e=async(t,e,r)=>{let{accessKeyId:n}=await e.credentials(),{identifiers:s}=r;return JSON.stringify({...n&&{accessKeyId:n},...s&&{commandName:t,identifiers:Object.entries(s).sort().reduce((o,[i,a])=>({...o,[i]:a}),{})}})},ac={},oY=async(t,e)=>new Promise((r,n)=>{let{endpointCache:s}=t,{cacheKey:o,commandName:i,identifiers:a}=e,c=s.get(o);if(c&&c.length===1&&c[0].Address==="")e.isDiscoveredEndpointRequired?(ac[o]||(ac[o]=[]),ac[o].push({resolve:r,reject:n})):r();else if(c&&c.length>0)r();else{let u=[{Address:"",CachePeriodInMinutes:1}];s.set(o,u);let l=new e.endpointDiscoveryCommandCtor({Operation:i.slice(0,-7),Identifiers:a});l.resolveMiddleware(e.clientStack,t,e.options)(l).then(p=>{s.set(o,p.output.Endpoints),ac[o]&&(ac[o].forEach(({resolve:g})=>{g()}),delete ac[o]),r()}).catch(p=>{s.delete(o);let g=Object.assign(new Error("The operation to discover endpoint failed. Please retry, or provide a custom endpoint and disable endpoint discovery to proceed."),{reason:p});ac[o]&&(ac[o].forEach(({reject:y})=>{y(g)}),delete ac[o]),e.isDiscoveredEndpointRequired?n(g):(s.set(o,u),r())})}}),H$=(t,e)=>(r,n)=>async s=>{if(t.isCustomEndpoint){if(t.isClientEndpointDiscoveryEnabled)throw new Error("Custom endpoint is supplied; endpointDiscoveryEnabled must not be true.");return r(s)}let{endpointDiscoveryCommandCtor:o}=t,{isDiscoveredEndpointRequired:i,identifiers:a}=e,c=n.clientName,u=n.commandName,l=await t.endpointDiscoveryEnabled(),d=await f9e(u,t,{identifiers:a});if(i){if(l===!1)throw new Error(`Endpoint Discovery is disabled but ${u} on ${c} requires it. Please check your configurations.`);await oY(t,{...e,commandName:u,cacheKey:d,endpointDiscoveryCommandCtor:o})}else l&&oY(t,{...e,commandName:u,cacheKey:d,endpointDiscoveryCommandCtor:o});let{request:p}=s;if(d&&p9e.HttpRequest.isInstance(p)){let g=t.endpointCache.getEndpoint(d);g&&(p.hostname=g)}return r(s)},Wv={name:"endpointDiscoveryMiddleware",step:"build",tags:["ENDPOINT_DISCOVERY"],override:!0},h9e=(t,e)=>({applyToStack:r=>{r.add(H$(t,e),Wv)}}),S9e=(t,e)=>({applyToStack:r=>{r.add(H$(t,{...e,isDiscoveredEndpointRequired:!0}),Wv)}}),E9e=(t,e)=>({applyToStack:r=>{r.add(H$(t,{...e,isDiscoveredEndpointRequired:!1}),Wv)}}),y9e=(t,{endpointDiscoveryCommandCtor:e})=>{let{endpointCacheSize:r,endpointDiscoveryEnabled:n,endpointDiscoveryEnabledProvider:s}=t;return Object.assign(t,{endpointDiscoveryCommandCtor:e,endpointCache:new m9e.EndpointCache(r??1e3),endpointDiscoveryEnabled:n!==void 0?()=>Promise.resolve(n):s,isClientEndpointDiscoveryEnabled:n!==void 0})};Ed.NODE_ENDPOINT_DISCOVERY_CONFIG_OPTIONS=g9e;Ed.endpointDiscoveryMiddlewareOptions=Wv;Ed.getEndpointDiscoveryOptionalPlugin=E9e;Ed.getEndpointDiscoveryPlugin=h9e;Ed.getEndpointDiscoveryRequiredPlugin=S9e;Ed.resolveEndpointDiscoveryConfig=y9e});var gm=b(AS=>{"use strict";var _9e=require("@smithy/protocol-http");function C9e(t){return t}var iY=t=>e=>async r=>{if(!_9e.HttpRequest.isInstance(r.request))return e(r);let{request:n}=r,{handlerProtocol:s=""}=t.requestHandler.metadata||{};if(s.indexOf("h2")>=0&&!n.headers[":authority"])delete n.headers.host,n.headers[":authority"]=n.hostname+(n.port?":"+n.port:"");else if(!n.headers.host){let o=n.hostname;n.port!=null&&(o+=`:${n.port}`),n.headers.host=o}return e(r)},aY={name:"hostHeaderMiddleware",step:"build",priority:"low",tags:["HOST"],override:!0},R9e=t=>({applyToStack:e=>{e.add(iY(t),aY)}});AS.getHostHeaderPlugin=R9e;AS.hostHeaderMiddleware=iY;AS.hostHeaderMiddlewareOptions=aY;AS.resolveHostHeaderConfig=C9e});var fm=b(Kv=>{"use strict";var cY=()=>(t,e)=>async r=>{try{let n=await t(r),{clientName:s,commandName:o,logger:i,dynamoDbDocumentClientOptions:a={}}=e,{overrideInputFilterSensitiveLog:c,overrideOutputFilterSensitiveLog:u}=a,l=c??e.inputFilterSensitiveLog,d=u??e.outputFilterSensitiveLog,{$metadata:p,...g}=n.output;return i?.info?.({clientName:s,commandName:o,input:l(r.input),output:d(g),metadata:p}),n}catch(n){let{clientName:s,commandName:o,logger:i,dynamoDbDocumentClientOptions:a={}}=e,{overrideInputFilterSensitiveLog:c}=a,u=c??e.inputFilterSensitiveLog;throw i?.error?.({clientName:s,commandName:o,input:u(r.input),error:n,metadata:n.$metadata}),n}},uY={name:"loggerMiddleware",tags:["LOGGER"],step:"initialize",override:!0},v9e=t=>({applyToStack:e=>{e.add(cY(),uY)}});Kv.getLoggerPlugin=v9e;Kv.loggerMiddleware=cY;Kv.loggerMiddlewareOptions=uY});var lY=b(Qv=>{"use strict";Object.defineProperty(Qv,"__esModule",{value:!0});Qv.recursionDetectionMiddleware=void 0;var x9e=require("@aws/lambda-invoke-store"),P9e=require("@smithy/protocol-http"),W$="X-Amzn-Trace-Id",b9e="AWS_LAMBDA_FUNCTION_NAME",I9e="_X_AMZN_TRACE_ID",A9e=()=>t=>async e=>{let{request:r}=e;if(!P9e.HttpRequest.isInstance(r))return t(e);let n=Object.keys(r.headers??{}).find(l=>l.toLowerCase()===W$.toLowerCase())??W$;if(r.headers.hasOwnProperty(n))return t(e);let s=process.env[b9e],o=process.env[I9e],c=(await x9e.InvokeStore.getInstanceAsync())?.getXRayTraceId()??o,u=l=>typeof l=="string"&&l.length>0;return u(s)&&u(c)&&(r.headers[W$]=c),t({...e,request:r})};Qv.recursionDetectionMiddleware=A9e});var hm=b(Xv=>{"use strict";var K$=lY(),T9e={step:"build",tags:["RECURSION_DETECTION"],name:"recursionDetectionMiddleware",override:!0,priority:"low"},w9e=t=>({applyToStack:e=>{e.add(K$.recursionDetectionMiddleware(),T9e)}});Xv.getRecursionDetectionPlugin=w9e;Object.keys(K$).forEach(function(t){t!=="default"&&!Object.prototype.hasOwnProperty.call(Xv,t)&&Object.defineProperty(Xv,t,{enumerable:!0,get:function(){return K$[t]}})})});var _Y=b(Si=>{"use strict";var Sm=require("@smithy/util-endpoints"),D9e=require("@smithy/url-parser"),pY=(t,e=!1)=>{if(e){for(let r of t.split("."))if(!pY(r))return!1;return!0}return!(!Sm.isValidHostLabel(t)||t.length<3||t.length>63||t!==t.toLowerCase()||Sm.isIpAddress(t))},dY=":",O9e="/",k9e=t=>{let e=t.split(dY);if(e.length<6)return null;let[r,n,s,o,i,...a]=e;if(r!=="arn"||n===""||s===""||a.join(dY)==="")return null;let c=a.map(u=>u.split(O9e)).flat();return{partition:n,service:s,region:o,accountId:i,resourceId:c}},N9e=[{id:"aws",outputs:{dnsSuffix:"amazonaws.com",dualStackDnsSuffix:"api.aws",implicitGlobalRegion:"us-east-1",name:"aws",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^(us|eu|ap|sa|ca|me|af|il|mx)\\-\\w+\\-\\d+$",regions:{"af-south-1":{description:"Africa (Cape Town)"},"ap-east-1":{description:"Asia Pacific (Hong Kong)"},"ap-east-2":{description:"Asia Pacific (Taipei)"},"ap-northeast-1":{description:"Asia Pacific (Tokyo)"},"ap-northeast-2":{description:"Asia Pacific (Seoul)"},"ap-northeast-3":{description:"Asia Pacific (Osaka)"},"ap-south-1":{description:"Asia Pacific (Mumbai)"},"ap-south-2":{description:"Asia Pacific (Hyderabad)"},"ap-southeast-1":{description:"Asia Pacific (Singapore)"},"ap-southeast-2":{description:"Asia Pacific (Sydney)"},"ap-southeast-3":{description:"Asia Pacific (Jakarta)"},"ap-southeast-4":{description:"Asia Pacific (Melbourne)"},"ap-southeast-5":{description:"Asia Pacific (Malaysia)"},"ap-southeast-6":{description:"Asia Pacific (New Zealand)"},"ap-southeast-7":{description:"Asia Pacific (Thailand)"},"aws-global":{description:"aws global region"},"ca-central-1":{description:"Canada (Central)"},"ca-west-1":{description:"Canada West (Calgary)"},"eu-central-1":{description:"Europe (Frankfurt)"},"eu-central-2":{description:"Europe (Zurich)"},"eu-north-1":{description:"Europe (Stockholm)"},"eu-south-1":{description:"Europe (Milan)"},"eu-south-2":{description:"Europe (Spain)"},"eu-west-1":{description:"Europe (Ireland)"},"eu-west-2":{description:"Europe (London)"},"eu-west-3":{description:"Europe (Paris)"},"il-central-1":{description:"Israel (Tel Aviv)"},"me-central-1":{description:"Middle East (UAE)"},"me-south-1":{description:"Middle East (Bahrain)"},"mx-central-1":{description:"Mexico (Central)"},"sa-east-1":{description:"South America (Sao Paulo)"},"us-east-1":{description:"US East (N. Virginia)"},"us-east-2":{description:"US East (Ohio)"},"us-west-1":{description:"US West (N. California)"},"us-west-2":{description:"US West (Oregon)"}}},{id:"aws-cn",outputs:{dnsSuffix:"amazonaws.com.cn",dualStackDnsSuffix:"api.amazonwebservices.com.cn",implicitGlobalRegion:"cn-northwest-1",name:"aws-cn",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^cn\\-\\w+\\-\\d+$",regions:{"aws-cn-global":{description:"aws-cn global region"},"cn-north-1":{description:"China (Beijing)"},"cn-northwest-1":{description:"China (Ningxia)"}}},{id:"aws-eusc",outputs:{dnsSuffix:"amazonaws.eu",dualStackDnsSuffix:"api.amazonwebservices.eu",implicitGlobalRegion:"eusc-de-east-1",name:"aws-eusc",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^eusc\\-(de)\\-\\w+\\-\\d+$",regions:{"eusc-de-east-1":{description:"AWS European Sovereign Cloud (Germany)"}}},{id:"aws-iso",outputs:{dnsSuffix:"c2s.ic.gov",dualStackDnsSuffix:"api.aws.ic.gov",implicitGlobalRegion:"us-iso-east-1",name:"aws-iso",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^us\\-iso\\-\\w+\\-\\d+$",regions:{"aws-iso-global":{description:"aws-iso global region"},"us-iso-east-1":{description:"US ISO East"},"us-iso-west-1":{description:"US ISO WEST"}}},{id:"aws-iso-b",outputs:{dnsSuffix:"sc2s.sgov.gov",dualStackDnsSuffix:"api.aws.scloud",implicitGlobalRegion:"us-isob-east-1",name:"aws-iso-b",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^us\\-isob\\-\\w+\\-\\d+$",regions:{"aws-iso-b-global":{description:"aws-iso-b global region"},"us-isob-east-1":{description:"US ISOB East (Ohio)"},"us-isob-west-1":{description:"US ISOB West"}}},{id:"aws-iso-e",outputs:{dnsSuffix:"cloud.adc-e.uk",dualStackDnsSuffix:"api.cloud-aws.adc-e.uk",implicitGlobalRegion:"eu-isoe-west-1",name:"aws-iso-e",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^eu\\-isoe\\-\\w+\\-\\d+$",regions:{"aws-iso-e-global":{description:"aws-iso-e global region"},"eu-isoe-west-1":{description:"EU ISOE West"}}},{id:"aws-iso-f",outputs:{dnsSuffix:"csp.hci.ic.gov",dualStackDnsSuffix:"api.aws.hci.ic.gov",implicitGlobalRegion:"us-isof-south-1",name:"aws-iso-f",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^us\\-isof\\-\\w+\\-\\d+$",regions:{"aws-iso-f-global":{description:"aws-iso-f global region"},"us-isof-east-1":{description:"US ISOF EAST"},"us-isof-south-1":{description:"US ISOF SOUTH"}}},{id:"aws-us-gov",outputs:{dnsSuffix:"amazonaws.com",dualStackDnsSuffix:"api.aws",implicitGlobalRegion:"us-gov-west-1",name:"aws-us-gov",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^us\\-gov\\-\\w+\\-\\d+$",regions:{"aws-us-gov-global":{description:"aws-us-gov global region"},"us-gov-east-1":{description:"AWS GovCloud (US-East)"},"us-gov-west-1":{description:"AWS GovCloud (US-West)"}}}],L9e="1.1",mY={partitions:N9e,version:L9e},gY=mY,fY="",hY=t=>{let{partitions:e}=gY;for(let n of e){let{regions:s,outputs:o}=n;for(let[i,a]of Object.entries(s))if(i===t)return{...o,...a}}for(let n of e){let{regionRegex:s,outputs:o}=n;if(new RegExp(s).test(t))return{...o}}let r=e.find(n=>n.id==="aws");if(!r)throw new Error("Provided region was not found in the partition array or regex, and default partition with id 'aws' doesn't exist.");return{...r.outputs}},SY=(t,e="")=>{gY=t,fY=e},M9e=()=>{SY(mY,"")},F9e=()=>fY,EY={isVirtualHostableS3Bucket:pY,parseArn:k9e,partition:hY};Sm.customEndpointFunctions.aws=EY;var B9e=t=>{if(typeof t.endpointProvider!="function")throw new Error("@aws-sdk/util-endpoint - endpointProvider and endpoint missing in config for this client.");let{endpoint:e}=t;return e===void 0&&(t.endpoint=async()=>yY(t.endpointProvider({Region:typeof t.region=="function"?await t.region():t.region,UseDualStack:typeof t.useDualstackEndpoint=="function"?await t.useDualstackEndpoint():t.useDualstackEndpoint,UseFIPS:typeof t.useFipsEndpoint=="function"?await t.useFipsEndpoint():t.useFipsEndpoint,Endpoint:void 0},{logger:t.logger}))),t},yY=t=>D9e.parseUrl(t.url);Si.EndpointError=Sm.EndpointError;Si.isIpAddress=Sm.isIpAddress;Si.resolveEndpoint=Sm.resolveEndpoint;Si.awsEndpointFunctions=EY;Si.getUserAgentPrefix=F9e;Si.partition=hY;Si.resolveDefaultAwsRegionalEndpointsConfig=B9e;Si.setPartitionInfo=SY;Si.toEndpointV1=yY;Si.useDefaultPartitionInfo=M9e});var Jv,Cu,CY=_(()=>{Jv={warningEmitted:!1},Cu=t=>{t&&!Jv.warningEmitted&&parseInt(t.substring(1,t.indexOf(".")))<20&&(Jv.warningEmitted=!0,process.emitWarning(`NodeDeprecationWarning: The AWS SDK for JavaScript (v3) will -no longer support Node.js ${t} in January 2026. - -To continue receiving updates to AWS services, bug fixes, and security -updates please upgrade to a supported Node.js LTS version. - -More information can be found at: https://a.co/c895JFp`))}});function Ru(t,e,r){return t.$source||(t.$source={}),t.$source[e]=r,t}var RY=_(()=>{});function vY(t,e,r){t.__aws_sdk_context?t.__aws_sdk_context.features||(t.__aws_sdk_context.features={}):t.__aws_sdk_context={features:{}},t.__aws_sdk_context.features[e]=r}var xY=_(()=>{});function PY(t,e,r){return t.$source||(t.$source={}),t.$source[e]=r,t}var bY=_(()=>{});var cc={};wt(cc,{emitWarningIfUnsupportedVersion:()=>Cu,setCredentialFeature:()=>Ru,setFeature:()=>vY,setTokenFeature:()=>PY,state:()=>Jv});var vo=_(()=>{CY();RY();xY();bY()});var IY,Q$,AY=_(()=>{IY=require("@smithy/protocol-http"),Q$=t=>IY.HttpResponse.isInstance(t)?t.headers?.date??t.headers?.Date:void 0});var Em,X$=_(()=>{Em=t=>new Date(Date.now()+t)});var TY,wY=_(()=>{X$();TY=(t,e)=>Math.abs(Em(e).getTime()-t)>=3e5});var J$,DY=_(()=>{wY();J$=(t,e)=>{let r=Date.parse(t);return TY(r,e)?r-Date.now():e}});var Y$=_(()=>{AY();X$();DY()});var OY,TS,ym,En,Z$,eG=_(()=>{OY=require("@smithy/protocol-http");Y$();TS=(t,e)=>{if(!e)throw new Error(`Property \`${t}\` is not resolved for AWS SDK SigV4Auth`);return e},ym=async t=>{let e=TS("context",t.context),r=TS("config",t.config),n=e.endpointV2?.properties?.authSchemes?.[0],o=await TS("signer",r.signer)(n),i=t?.signingRegion,a=t?.signingRegionSet,c=t?.signingName;return{config:r,signer:o,signingRegion:i,signingRegionSet:a,signingName:c}},En=class{async sign(e,r,n){if(!OY.HttpRequest.isInstance(e))throw new Error("The request is not an instance of `HttpRequest` and cannot be signed");let s=await ym(n),{config:o,signer:i}=s,{signingRegion:a,signingName:c}=s,u=n.context;if(u?.authSchemes?.length??!1){let[d,p]=u.authSchemes;d?.name==="sigv4a"&&p?.name==="sigv4"&&(a=p?.signingRegion??a,c=p?.signingName??c)}return await i.sign(e,{signingDate:Em(o.systemClockOffset),signingRegion:a,signingService:c})}errorHandler(e){return r=>{let n=r.ServerTime??Q$(r.$response);if(n){let s=TS("config",e.config),o=s.systemClockOffset;s.systemClockOffset=J$(n,s.systemClockOffset),s.systemClockOffset!==o&&r.$metadata&&(r.$metadata.clockSkewCorrected=!0)}throw r}}successHandler(e,r){let n=Q$(e);if(n){let s=TS("config",r.config);s.systemClockOffset=J$(n,s.systemClockOffset)}}},Z$=En});var kY,wS,NY=_(()=>{kY=require("@smithy/protocol-http");Y$();eG();wS=class extends En{async sign(e,r,n){if(!kY.HttpRequest.isInstance(e))throw new Error("The request is not an instance of `HttpRequest` and cannot be signed");let{config:s,signer:o,signingRegion:i,signingRegionSet:a,signingName:c}=await ym(n),l=(await s.sigv4aSigningRegionSet?.()??a??[i]).join(",");return await o.sign(e,{signingDate:Em(s.systemClockOffset),signingRegion:l,signingService:c})}}});var tG,LY=_(()=>{tG=t=>typeof t=="string"&&t.length>0?t.split(",").map(e=>e.trim()):[]});var Yv,rG=_(()=>{Yv=t=>`AWS_BEARER_TOKEN_${t.replace(/[\s-]/g,"_").toUpperCase()}`});var MY,FY,vu,BY=_(()=>{LY();rG();MY="AWS_AUTH_SCHEME_PREFERENCE",FY="auth_scheme_preference",vu={environmentVariableSelector:(t,e)=>{if(e?.signingName&&Yv(e.signingName)in t)return["httpBearerAuth"];if(MY in t)return tG(t[MY])},configFileSelector:t=>{if(FY in t)return tG(t[FY])},default:[]}});var UY,nG,qY,$Y,GY=_(()=>{UY=require("@smithy/core"),nG=require("@smithy/property-provider"),qY=t=>(t.sigv4aSigningRegionSet=(0,UY.normalizeProvider)(t.sigv4aSigningRegionSet),t),$Y={environmentVariableSelector(t){if(t.AWS_SIGV4A_SIGNING_REGION_SET)return t.AWS_SIGV4A_SIGNING_REGION_SET.split(",").map(e=>e.trim());throw new nG.ProviderError("AWS_SIGV4A_SIGNING_REGION_SET not set in env.",{tryNextLink:!0})},configFileSelector(t){if(t.sigv4a_signing_region_set)return(t.sigv4a_signing_region_set??"").split(",").map(e=>e.trim());throw new nG.ProviderError("sigv4a_signing_region_set not set in profile.",{tryNextLink:!0})},default:void 0}});function U9e(t,{credentials:e,credentialDefaultProvider:r}){let n;return e?e?.memoized?n=e:n=(0,Ei.memoizeIdentityProvider)(e,Ei.isIdentityExpired,Ei.doesIdentityRequireRefresh):r?n=(0,Ei.normalizeProvider)(r(Object.assign({},t,{parentClientConfig:t}))):n=async()=>{throw new Error("@aws-sdk/core::resolveAwsSdkSigV4Config - `credentials` not provided and no credentialDefaultProvider was configured.")},n.memoized=!0,n}function q9e(t,e){if(e.configBound)return e;let r=async n=>e({...n,callerClientConfig:t});return r.memoized=e.memoized,r.configBound=!0,r}var Ei,sG,uc,jY,VY=_(()=>{vo();Ei=require("@smithy/core"),sG=require("@smithy/signature-v4"),uc=t=>{let e=t.credentials,r=!!t.credentials,n;Object.defineProperty(t,"credentials",{set(u){u&&u!==e&&u!==n&&(r=!0),e=u;let l=U9e(t,{credentials:e,credentialDefaultProvider:t.credentialDefaultProvider}),d=q9e(t,l);if(r&&!d.attributed){let p=typeof e=="object"&&e!==null;n=async g=>{let R=await d(g);return p&&(!R.$source||Object.keys(R.$source).length===0)?Ru(R,"CREDENTIALS_CODE","e"):R},n.memoized=d.memoized,n.configBound=d.configBound,n.attributed=!0}else n=d},get(){return n},enumerable:!0,configurable:!0}),t.credentials=e;let{signingEscapePath:s=!0,systemClockOffset:o=t.systemClockOffset||0,sha256:i}=t,a;return t.signer?a=(0,Ei.normalizeProvider)(t.signer):t.regionInfoProvider?a=()=>(0,Ei.normalizeProvider)(t.region)().then(async u=>[await t.regionInfoProvider(u,{useFipsEndpoint:await t.useFipsEndpoint(),useDualstackEndpoint:await t.useDualstackEndpoint()})||{},u]).then(([u,l])=>{let{signingRegion:d,signingService:p}=u;t.signingRegion=t.signingRegion||d||l,t.signingName=t.signingName||p||t.serviceId;let g={...t,credentials:t.credentials,region:t.signingRegion,service:t.signingName,sha256:i,uriEscapePath:s},y=t.signerConstructor||sG.SignatureV4;return new y(g)}):a=async u=>{u=Object.assign({},{name:"sigv4",signingName:t.signingName||t.defaultSigningName,signingRegion:await(0,Ei.normalizeProvider)(t.region)(),properties:{}},u);let l=u.signingRegion,d=u.signingName;t.signingRegion=t.signingRegion||l,t.signingName=t.signingName||d||t.serviceId;let p={...t,credentials:t.credentials,region:t.signingRegion,service:t.signingName,sha256:i,uriEscapePath:s},g=t.signerConstructor||sG.SignatureV4;return new g(p)},Object.assign(t,{systemClockOffset:o,signingEscapePath:s,signer:a})},jY=uc});var HY=_(()=>{eG();NY();BY();GY();VY()});var zY={};wt(zY,{AWSSDKSigV4Signer:()=>Z$,AwsSdkSigV4ASigner:()=>wS,AwsSdkSigV4Signer:()=>En,NODE_AUTH_SCHEME_PREFERENCE_OPTIONS:()=>vu,NODE_SIGV4A_CONFIG_OPTIONS:()=>$Y,getBearerTokenEnvKey:()=>Yv,resolveAWSSDKSigV4Config:()=>jY,resolveAwsSdkSigV4AConfig:()=>qY,resolveAwsSdkSigV4Config:()=>uc,validateSigningProperties:()=>ym});var oG=_(()=>{HY();rG()});var DS,iG,xo,_m=_(()=>{DS=require("@smithy/core/schema"),iG=require("@smithy/smithy-client"),xo=class{queryCompat;constructor(e=!1){this.queryCompat=e}resolveRestContentType(e,r){let n=r.getMemberSchemas(),s=Object.values(n).find(o=>!!o.getMergedTraits().httpPayload);if(s){let o=s.getMergedTraits().mediaType;return o||(s.isStringSchema()?"text/plain":s.isBlobSchema()?"application/octet-stream":e)}else if(!r.isUnitSchema()&&Object.values(n).find(i=>{let{httpQuery:a,httpQueryParams:c,httpHeader:u,httpLabel:l,httpPrefixHeaders:d}=i.getMergedTraits();return!a&&!c&&!u&&!l&&d===void 0}))return e}async getErrorSchemaOrThrowBaseException(e,r,n,s,o,i){let a=r,c=e;e.includes("#")&&([a,c]=e.split("#"));let u={$metadata:o,$fault:n.statusCode<500?"client":"server"},l=DS.TypeRegistry.for(a);try{return{errorSchema:i?.(l,c)??l.getSchema(e),errorMetadata:u}}catch{s.message=s.message??s.Message??"UnknownError";let p=DS.TypeRegistry.for("smithy.ts.sdk.synthetic."+a),g=p.getBaseException();if(g){let y=p.getErrorCtor(g)??Error;throw this.decorateServiceException(Object.assign(new y({name:c}),u),s)}throw this.decorateServiceException(Object.assign(new Error(c),u),s)}}decorateServiceException(e,r={}){if(this.queryCompat){let n=e.Message??r.Message,s=(0,iG.decorateServiceException)(e,r);n&&(s.message=n),s.Error={...s.Error,Type:s.Error?.Type,Code:s.Error?.Code,Message:s.Error?.message??s.Error?.Message??n};let o=s.$metadata.requestId;return o&&(s.RequestId=o),s}return(0,iG.decorateServiceException)(e,r)}setQueryCompatError(e,r){let n=r.headers?.["x-amzn-query-error"];if(e!==void 0&&n!=null){let[s,o]=n.split(";"),i=Object.entries(e),a={Code:s,Type:o};Object.assign(e,a);for(let[c,u]of i)a[c==="message"?"Message":c]=u;delete a.__type,e.Error=a}}queryCompatOutput(e,r){e.Error&&(r.Error=e.Error),e.Type&&(r.Type=e.Type),e.Code&&(r.Code=e.Code)}findQueryCompatibleError(e,r){try{return e.getSchema(r)}catch{return e.find(s=>DS.NormalizedSchema.of(s).getMergedTraits().awsQueryError?.[0]===r)}}}});var ex,tx,Zv,WY=_(()=>{ex=require("@smithy/core/cbor"),tx=require("@smithy/core/schema");_m();Zv=class extends ex.SmithyRpcV2CborProtocol{awsQueryCompatible;mixin;constructor({defaultNamespace:e,awsQueryCompatible:r}){super({defaultNamespace:e}),this.awsQueryCompatible=!!r,this.mixin=new xo(this.awsQueryCompatible)}async serializeRequest(e,r,n){let s=await super.serializeRequest(e,r,n);return this.awsQueryCompatible&&(s.headers["x-amzn-query-mode"]="true"),s}async handleError(e,r,n,s,o){this.awsQueryCompatible&&this.mixin.setQueryCompatError(s,n);let i=(()=>{let y=n.headers["x-amzn-query-error"];return y&&this.awsQueryCompatible?y.split(";")[0]:(0,ex.loadSmithyRpcV2CborErrorCode)(n,s)??"Unknown"})(),{errorSchema:a,errorMetadata:c}=await this.mixin.getErrorSchemaOrThrowBaseException(i,this.options.defaultNamespace,n,s,o,this.awsQueryCompatible?this.mixin.findQueryCompatibleError:void 0),u=tx.NormalizedSchema.of(a),l=s.message??s.Message??"Unknown",d=tx.TypeRegistry.for(a[1]).getErrorCtor(a)??Error,p=new d(l),g={};for(let[y,R]of u.structIterator())s[y]!=null&&(g[y]=this.deserializer.readValue(R,s[y]));throw this.awsQueryCompatible&&this.mixin.queryCompatOutput(s,g),this.mixin.decorateServiceException(Object.assign(p,c,{$fault:u.getMergedTraits().error,message:l},g),s)}}});var KY,QY,XY,JY=_(()=>{KY=t=>{if(t==null)return t;if(typeof t=="number"||typeof t=="bigint"){let e=new Error(`Received number ${t} where a string was expected.`);return e.name="Warning",console.warn(e),String(t)}if(typeof t=="boolean"){let e=new Error(`Received boolean ${t} where a string was expected.`);return e.name="Warning",console.warn(e),String(t)}return t},QY=t=>{if(t==null)return t;if(typeof t=="string"){let e=t.toLowerCase();if(t!==""&&e!=="false"&&e!=="true"){let r=new Error(`Received string "${t}" where a boolean was expected.`);r.name="Warning",console.warn(r)}return t!==""&&e!=="false"}return t},XY=t=>{if(t==null)return t;if(typeof t=="string"){let e=Number(t);if(e.toString()!==t){let r=new Error(`Received string "${t}" where a number was expected.`);return r.name="Warning",console.warn(r),t}return e}return t}});var yn,xu=_(()=>{yn=class{serdeContext;setSerdeContext(e){this.serdeContext=e}}});var Cm,aG=_(()=>{Cm=class{from;to;keys;constructor(e,r){this.from=e,this.to=r,this.keys=new Set(Object.keys(this.from).filter(n=>n!=="__type"))}mark(e){this.keys.delete(e)}hasUnknown(){return this.keys.size===1&&Object.keys(this.to).length===0}writeUnknown(){if(this.hasUnknown()){let e=this.keys.values().next().value,r=this.from[e];this.to.$unknown=[e,r]}}}});function ZY(t,e,r){if(r?.source){let n=r.source;if(typeof e=="number"&&(e>Number.MAX_SAFE_INTEGER||e{YY=require("@smithy/core/serde")});var t7,r7,rx,cG=_(()=>{t7=require("@smithy/smithy-client"),r7=require("@smithy/util-utf8"),rx=(t,e)=>(0,t7.collectBody)(t,e).then(r=>(e?.utf8Encoder??r7.toUtf8)(r))});var OS,n7,Rm,kS=_(()=>{cG();OS=(t,e)=>rx(t,e).then(r=>{if(r.length)try{return JSON.parse(r)}catch(n){throw n?.name==="SyntaxError"&&Object.defineProperty(n,"$responseBodyText",{value:r}),n}return{}}),n7=async(t,e)=>{let r=await OS(t,e);return r.message=r.message??r.Message,r},Rm=(t,e)=>{let r=(o,i)=>Object.keys(o).find(a=>a.toLowerCase()===i.toLowerCase()),n=o=>{let i=o;return typeof i=="number"&&(i=i.toString()),i.indexOf(",")>=0&&(i=i.split(",")[0]),i.indexOf(":")>=0&&(i=i.split(":")[0]),i.indexOf("#")>=0&&(i=i.split("#")[1]),i},s=r(t.headers,"x-amzn-errortype");if(s!==void 0)return n(t.headers[s]);if(e&&typeof e=="object"){let o=r(e,"code");if(o&&e[o]!==void 0)return n(e[o]);if(e.__type!==void 0)return n(e.__type)}}});var s7,o7,qs,i7,vm,uG=_(()=>{s7=require("@smithy/core/protocols"),o7=require("@smithy/core/schema"),qs=require("@smithy/core/serde"),i7=require("@smithy/util-base64");xu();aG();e7();kS();vm=class extends yn{settings;constructor(e){super(),this.settings=e}async read(e,r){return this._read(e,typeof r=="string"?JSON.parse(r,ZY):await OS(r,this.serdeContext))}readObject(e,r){return this._read(e,r)}_read(e,r){let n=r!==null&&typeof r=="object",s=o7.NormalizedSchema.of(e);if(n){if(s.isStructSchema()){let i=r,a=s.isUnionSchema(),c={},u,{jsonName:l}=this.settings;l&&(u={});let d;a&&(d=new Cm(i,c));for(let[p,g]of s.structIterator()){let y=p;l&&(y=g.getMergedTraits().jsonName??y,u[y]=p),a&&d.mark(y),i[y]!=null&&(c[p]=this._read(g,i[y]))}if(a)d.writeUnknown();else if(typeof i.__type=="string")for(let[p,g]of Object.entries(i)){let y=l?u[p]??p:p;y in c||(c[y]=g)}return c}if(Array.isArray(r)&&s.isListSchema()){let i=s.getValueSchema(),a=[],c=!!s.getMergedTraits().sparse;for(let u of r)(c||u!=null)&&a.push(this._read(i,u));return a}if(s.isMapSchema()){let i=s.getValueSchema(),a={},c=!!s.getMergedTraits().sparse;for(let[u,l]of Object.entries(r))(c||l!=null)&&(a[u]=this._read(i,l));return a}}if(s.isBlobSchema()&&typeof r=="string")return(0,i7.fromBase64)(r);let o=s.getMergedTraits().mediaType;if(s.isStringSchema()&&typeof r=="string"&&o)return o==="application/json"||o.endsWith("+json")?qs.LazyJsonString.from(r):r;if(s.isTimestampSchema()&&r!=null)switch((0,s7.determineTimestampFormat)(s,this.settings)){case 5:return(0,qs.parseRfc3339DateTimeWithOffset)(r);case 6:return(0,qs.parseRfc7231DateTime)(r);case 7:return(0,qs.parseEpochTimestamp)(r);default:return console.warn("Missing timestamp format, parsing value with Date constructor:",r),new Date(r)}if(s.isBigIntegerSchema()&&(typeof r=="number"||typeof r=="string"))return BigInt(r);if(s.isBigDecimalSchema()&&r!=null){if(r instanceof qs.NumericValue)return r;let i=r;return i.type==="bigDecimal"&&"string"in i?new qs.NumericValue(i.string,i.type):new qs.NumericValue(String(r),"bigDecimal")}if(s.isNumericSchema()&&typeof r=="string"){switch(r){case"Infinity":return 1/0;case"-Infinity":return-1/0;case"NaN":return NaN}return r}if(s.isDocumentSchema())if(n){let i=Array.isArray(r)?[]:{};for(let[a,c]of Object.entries(r))c instanceof qs.NumericValue?i[a]=c:i[a]=this._read(s,c);return i}else return structuredClone(r);return r}}});var c7,a7,nx,u7=_(()=>{c7=require("@smithy/core/serde"),a7="\u039D",nx=class{values=new Map;counter=0;stage=0;createReplacer(){if(this.stage===1)throw new Error("@aws-sdk/core/protocols - JsonReplacer already created.");if(this.stage===2)throw new Error("@aws-sdk/core/protocols - JsonReplacer exhausted.");return this.stage=1,(e,r)=>{if(r instanceof c7.NumericValue){let n=`${a7+"nv"+this.counter++}_`+r.string;return this.values.set(`"${n}"`,r.string),n}if(typeof r=="bigint"){let n=r.toString(),s=`${a7+"b"+this.counter++}_`+n;return this.values.set(`"${s}"`,n),s}return r}}replaceInJson(e){if(this.stage===0)throw new Error("@aws-sdk/core/protocols - JsonReplacer not created yet.");if(this.stage===2)throw new Error("@aws-sdk/core/protocols - JsonReplacer exhausted.");if(this.stage=2,this.counter===0)return e;for(let[r,n]of this.values)e=e.replace(r,n);return e}}});var l7,sx,lc,lG,xm,dG=_(()=>{l7=require("@smithy/core/protocols"),sx=require("@smithy/core/schema"),lc=require("@smithy/core/serde"),lG=require("@smithy/util-base64");xu();u7();xm=class extends yn{settings;buffer;useReplacer=!1;rootSchema;constructor(e){super(),this.settings=e}write(e,r){this.rootSchema=sx.NormalizedSchema.of(e),this.buffer=this._write(this.rootSchema,r)}writeDiscriminatedDocument(e,r){this.write(e,r),typeof this.buffer=="object"&&(this.buffer.__type=sx.NormalizedSchema.of(e).getName(!0))}flush(){let{rootSchema:e,useReplacer:r}=this;if(this.rootSchema=void 0,this.useReplacer=!1,e?.isStructSchema()||e?.isDocumentSchema()){if(!r)return JSON.stringify(this.buffer);let n=new nx;return n.replaceInJson(JSON.stringify(this.buffer,n.createReplacer(),0))}return this.buffer}_write(e,r,n){let s=r!==null&&typeof r=="object",o=sx.NormalizedSchema.of(e);if(s){if(o.isStructSchema()){let i=r,a={},{jsonName:c}=this.settings,u;c&&(u={});for(let[l,d]of o.structIterator()){let p=this._write(d,i[l],o);if(p!==void 0){let g=l;c&&(g=d.getMergedTraits().jsonName??l,u[l]=g),a[g]=p}}if(o.isUnionSchema()&&Object.keys(a).length===0){let{$unknown:l}=i;if(Array.isArray(l)){let[d,p]=l;a[d]=this._write(15,p)}}else if(typeof i.__type=="string")for(let[l,d]of Object.entries(i)){let p=c?u[l]??l:l;p in a||(a[p]=this._write(15,d))}return a}if(Array.isArray(r)&&o.isListSchema()){let i=o.getValueSchema(),a=[],c=!!o.getMergedTraits().sparse;for(let u of r)(c||u!=null)&&a.push(this._write(i,u));return a}if(o.isMapSchema()){let i=o.getValueSchema(),a={},c=!!o.getMergedTraits().sparse;for(let[u,l]of Object.entries(r))(c||l!=null)&&(a[u]=this._write(i,l));return a}if(r instanceof Uint8Array&&(o.isBlobSchema()||o.isDocumentSchema()))return o===this.rootSchema?r:(this.serdeContext?.base64Encoder??lG.toBase64)(r);if(r instanceof Date&&(o.isTimestampSchema()||o.isDocumentSchema()))switch((0,l7.determineTimestampFormat)(o,this.settings)){case 5:return r.toISOString().replace(".000Z","Z");case 6:return(0,lc.dateToUtcString)(r);case 7:return r.getTime()/1e3;default:return console.warn("Missing timestamp format, using epoch seconds",r),r.getTime()/1e3}r instanceof lc.NumericValue&&(this.useReplacer=!0)}if(!(r===null&&n?.isStructSchema())){if(o.isStringSchema()){if(typeof r>"u"&&o.isIdempotencyToken())return(0,lc.generateIdempotencyToken)();let i=o.getMergedTraits().mediaType;return r!=null&&i&&(i==="application/json"||i.endsWith("+json"))?lc.LazyJsonString.from(r):r}if(typeof r=="number"&&o.isNumericSchema())return Math.abs(r)===1/0||isNaN(r)?String(r):r;if(typeof r=="string"&&o.isBlobSchema())return o===this.rootSchema?r:(this.serdeContext?.base64Encoder??lG.toBase64)(r);if(typeof r=="bigint"&&(this.useReplacer=!0),o.isDocumentSchema())if(s){let i=Array.isArray(r)?[]:{};for(let[a,c]of Object.entries(r))c instanceof lc.NumericValue?(this.useReplacer=!0,i[a]=c):i[a]=this._write(o,c);return i}else return structuredClone(r);return r}}}});var Pu,ox=_(()=>{xu();uG();dG();Pu=class extends yn{settings;constructor(e){super(),this.settings=e}createSerializer(){let e=new xm(this.settings);return e.setSerdeContext(this.serdeContext),e}createDeserializer(){let e=new vm(this.settings);return e.setSerdeContext(this.serdeContext),e}}});var d7,Pm,bu,ix=_(()=>{d7=require("@smithy/core/protocols"),Pm=require("@smithy/core/schema");_m();ox();kS();bu=class extends d7.RpcProtocol{serializer;deserializer;serviceTarget;codec;mixin;awsQueryCompatible;constructor({defaultNamespace:e,serviceTarget:r,awsQueryCompatible:n,jsonCodec:s}){super({defaultNamespace:e}),this.serviceTarget=r,this.codec=s??new Pu({timestampFormat:{useTrait:!0,default:7},jsonName:!1}),this.serializer=this.codec.createSerializer(),this.deserializer=this.codec.createDeserializer(),this.awsQueryCompatible=!!n,this.mixin=new xo(this.awsQueryCompatible)}async serializeRequest(e,r,n){let s=await super.serializeRequest(e,r,n);return s.path.endsWith("/")||(s.path+="/"),Object.assign(s.headers,{"content-type":`application/x-amz-json-${this.getJsonRpcVersion()}`,"x-amz-target":`${this.serviceTarget}.${e.name}`}),this.awsQueryCompatible&&(s.headers["x-amzn-query-mode"]="true"),((0,Pm.deref)(e.input)==="unit"||!s.body)&&(s.body="{}"),s}getPayloadCodec(){return this.codec}async handleError(e,r,n,s,o){this.awsQueryCompatible&&this.mixin.setQueryCompatError(s,n);let i=Rm(n,s)??"Unknown",{errorSchema:a,errorMetadata:c}=await this.mixin.getErrorSchemaOrThrowBaseException(i,this.options.defaultNamespace,n,s,o,this.awsQueryCompatible?this.mixin.findQueryCompatibleError:void 0),u=Pm.NormalizedSchema.of(a),l=s.message??s.Message??"Unknown",d=Pm.TypeRegistry.for(a[1]).getErrorCtor(a)??Error,p=new d(l),g={};for(let[y,R]of u.structIterator())s[y]!=null&&(g[y]=this.codec.createDeserializer().readObject(R,s[y]));throw this.awsQueryCompatible&&this.mixin.queryCompatOutput(s,g),this.mixin.decorateServiceException(Object.assign(p,c,{$fault:u.getMergedTraits().error,message:l},g),s)}}});var ax,p7=_(()=>{ix();ax=class extends bu{constructor({defaultNamespace:e,serviceTarget:r,awsQueryCompatible:n,jsonCodec:s}){super({defaultNamespace:e,serviceTarget:r,awsQueryCompatible:n,jsonCodec:s})}getShapeId(){return"aws.protocols#awsJson1_0"}getJsonRpcVersion(){return"1.0"}getDefaultContentType(){return"application/x-amz-json-1.0"}}});var cx,m7=_(()=>{ix();cx=class extends bu{constructor({defaultNamespace:e,serviceTarget:r,awsQueryCompatible:n,jsonCodec:s}){super({defaultNamespace:e,serviceTarget:r,awsQueryCompatible:n,jsonCodec:s})}getShapeId(){return"aws.protocols#awsJson1_1"}getJsonRpcVersion(){return"1.1"}getDefaultContentType(){return"application/x-amz-json-1.1"}}});var Im,bm,Iu,g7=_(()=>{Im=require("@smithy/core/protocols"),bm=require("@smithy/core/schema");_m();ox();kS();Iu=class extends Im.HttpBindingProtocol{serializer;deserializer;codec;mixin=new xo;constructor({defaultNamespace:e}){super({defaultNamespace:e});let r={timestampFormat:{useTrait:!0,default:7},httpBindings:!0,jsonName:!0};this.codec=new Pu(r),this.serializer=new Im.HttpInterceptingShapeSerializer(this.codec.createSerializer(),r),this.deserializer=new Im.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(),r)}getShapeId(){return"aws.protocols#restJson1"}getPayloadCodec(){return this.codec}setSerdeContext(e){this.codec.setSerdeContext(e),super.setSerdeContext(e)}async serializeRequest(e,r,n){let s=await super.serializeRequest(e,r,n),o=bm.NormalizedSchema.of(e.input);if(!s.headers["content-type"]){let i=this.mixin.resolveRestContentType(this.getDefaultContentType(),o);i&&(s.headers["content-type"]=i)}return s.body==null&&s.headers["content-type"]===this.getDefaultContentType()&&(s.body="{}"),s}async deserializeResponse(e,r,n){let s=await super.deserializeResponse(e,r,n),o=bm.NormalizedSchema.of(e.output);for(let[i,a]of o.structIterator())a.getMemberTraits().httpPayload&&!(i in s)&&(s[i]=null);return s}async handleError(e,r,n,s,o){let i=Rm(n,s)??"Unknown",{errorSchema:a,errorMetadata:c}=await this.mixin.getErrorSchemaOrThrowBaseException(i,this.options.defaultNamespace,n,s,o),u=bm.NormalizedSchema.of(a),l=s.message??s.Message??"Unknown",d=bm.TypeRegistry.for(a[1]).getErrorCtor(a)??Error,p=new d(l);await this.deserializeHttpMessage(a,r,n,s);let g={};for(let[y,R]of u.structIterator()){let D=R.getMergedTraits().jsonName??y;g[y]=this.codec.createDeserializer().readObject(R,s[D])}throw this.mixin.decorateServiceException(Object.assign(p,c,{$fault:u.getMergedTraits().error,message:l},g),s)}getDefaultContentType(){return"application/json"}}});var f7,h7,S7=_(()=>{f7=require("@smithy/smithy-client"),h7=t=>{if(t!=null)return typeof t=="object"&&"__type"in t&&delete t.__type,(0,f7.expectUnion)(t)}});var E7=b(mG=>{"use strict";Object.defineProperty(mG,"__esModule",{value:!0});mG.parseXML=G9e;var $9e=require("fast-xml-parser"),pG=new $9e.XMLParser({attributeNamePrefix:"",htmlEntities:!0,ignoreAttributes:!1,ignoreDeclaration:!0,parseTagValue:!1,trimValues:!1,tagValueProcessor:(t,e)=>e.trim()===""&&e.includes(` -`)?"":void 0});pG.addEntity("#xD","\r");pG.addEntity("#10",` -`);function G9e(t){return pG.parse(t,!0)}});var dx=b(lx=>{"use strict";var j9e=E7();function V9e(t){return t.replace(/&/g,"&").replace(//g,">").replace(/"/g,""")}function H9e(t){return t.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">").replace(/\r/g," ").replace(/\n/g," ").replace(/\u0085/g,"…").replace(/\u2028/,"
")}var ux=class{value;constructor(e){this.value=e}toString(){return H9e(""+this.value)}},gG=class t{name;children;attributes={};static of(e,r,n){let s=new t(e);return r!==void 0&&s.addChildNode(new ux(r)),n!==void 0&&s.withName(n),s}constructor(e,r=[]){this.name=e,this.children=r}withName(e){return this.name=e,this}addAttribute(e,r){return this.attributes[e]=r,this}addChildNode(e){return this.children.push(e),this}removeAttribute(e){return delete this.attributes[e],this}n(e){return this.name=e,this}c(e){return this.children.push(e),this}a(e,r){return r!=null&&(this.attributes[e]=r),this}cc(e,r,n=r){if(e[r]!=null){let s=t.of(r,e[r]).withName(n);this.c(s)}}l(e,r,n,s){e[r]!=null&&s().map(i=>{i.withName(n),this.c(i)})}lc(e,r,n,s){if(e[r]!=null){let o=s(),i=new t(n);o.map(a=>{i.c(a)}),this.c(i)}}toString(){let e=!!this.children.length,r=`<${this.name}`,n=this.attributes;for(let s of Object.keys(n)){let o=n[s];o!=null&&(r+=` ${s}="${V9e(""+o)}"`)}return r+=e?`>${this.children.map(s=>s.toString()).join("")}`:"/>"}};Object.defineProperty(lx,"parseXML",{enumerable:!0,get:function(){return j9e.parseXML}});lx.XmlNode=gG;lx.XmlText=ux});var y7,_7,fG,C7,R7,Au,px=_(()=>{y7=O(dx()),_7=require("@smithy/core/protocols"),fG=require("@smithy/core/schema"),C7=require("@smithy/smithy-client"),R7=require("@smithy/util-utf8");xu();aG();Au=class extends yn{settings;stringDeserializer;constructor(e){super(),this.settings=e,this.stringDeserializer=new _7.FromStringShapeDeserializer(e)}setSerdeContext(e){this.serdeContext=e,this.stringDeserializer.setSerdeContext(e)}read(e,r,n){let s=fG.NormalizedSchema.of(e),o=s.getMemberSchemas();if(s.isStructSchema()&&s.isMemberSchema()&&!!Object.values(o).find(u=>!!u.getMemberTraits().eventPayload)){let u={},l=Object.keys(o)[0];return o[l].isBlobSchema()?u[l]=r:u[l]=this.read(o[l],r),u}let a=(this.serdeContext?.utf8Encoder??R7.toUtf8)(r),c=this.parseXml(a);return this.readSchema(e,n?c[n]:c)}readSchema(e,r){let n=fG.NormalizedSchema.of(e);if(n.isUnitSchema())return;let s=n.getMergedTraits();if(n.isListSchema()&&!Array.isArray(r))return this.readSchema(n,[r]);if(r==null)return r;if(typeof r=="object"){let o=!!s.sparse,i=!!s.xmlFlattened;if(n.isListSchema()){let c=n.getValueSchema(),u=[],l=c.getMergedTraits().xmlName??"member",d=i?r:(r[0]??r)[l],p=Array.isArray(d)?d:[d];for(let g of p)(g!=null||o)&&u.push(this.readSchema(c,g));return u}let a={};if(n.isMapSchema()){let c=n.getKeySchema(),u=n.getValueSchema(),l;i?l=Array.isArray(r)?r:[r]:l=Array.isArray(r.entry)?r.entry:[r.entry];let d=c.getMergedTraits().xmlName??"key",p=u.getMergedTraits().xmlName??"value";for(let g of l){let y=g[d],R=g[p];(R!=null||o)&&(a[y]=this.readSchema(u,R))}return a}if(n.isStructSchema()){let c=n.isUnionSchema(),u;c&&(u=new Cm(r,a));for(let[l,d]of n.structIterator()){let p=d.getMergedTraits(),g=p.httpPayload?p.xmlName??d.getName():d.getMemberTraits().xmlName??l;c&&u.mark(g),r[g]!=null&&(a[l]=this.readSchema(d,r[g]))}return c&&u.writeUnknown(),a}if(n.isDocumentSchema())return r;throw new Error(`@aws-sdk/core/protocols - xml deserializer unhandled schema type for ${n.getName(!0)}`)}return n.isListSchema()?[]:n.isMapSchema()||n.isStructSchema()?{}:this.stringDeserializer.read(n,r)}parseXml(e){if(e.length){let r;try{r=(0,y7.parseXML)(e)}catch(i){throw i&&typeof i=="object"&&Object.defineProperty(i,"$responseBodyText",{value:e}),i}let n="#text",s=Object.keys(r)[0],o=r[s];return o[n]&&(o[s]=o[n],delete o[n]),(0,C7.getValueFromTextNode)(o)}return{}}}});var NS,v7,gx,x7,P7,mx,b7=_(()=>{NS=require("@smithy/core/protocols"),v7=require("@smithy/core/schema"),gx=require("@smithy/core/serde"),x7=require("@smithy/smithy-client"),P7=require("@smithy/util-base64");xu();mx=class extends yn{settings;buffer;constructor(e){super(),this.settings=e}write(e,r,n=""){this.buffer===void 0&&(this.buffer="");let s=v7.NormalizedSchema.of(e);if(n&&!n.endsWith(".")&&(n+="."),s.isBlobSchema())(typeof r=="string"||r instanceof Uint8Array)&&(this.writeKey(n),this.writeValue((this.serdeContext?.base64Encoder??P7.toBase64)(r)));else if(s.isBooleanSchema()||s.isNumericSchema()||s.isStringSchema())r!=null?(this.writeKey(n),this.writeValue(String(r))):s.isIdempotencyToken()&&(this.writeKey(n),this.writeValue((0,gx.generateIdempotencyToken)()));else if(s.isBigIntegerSchema())r!=null&&(this.writeKey(n),this.writeValue(String(r)));else if(s.isBigDecimalSchema())r!=null&&(this.writeKey(n),this.writeValue(r instanceof gx.NumericValue?r.string:String(r)));else if(s.isTimestampSchema()){if(r instanceof Date)switch(this.writeKey(n),(0,NS.determineTimestampFormat)(s,this.settings)){case 5:this.writeValue(r.toISOString().replace(".000Z","Z"));break;case 6:this.writeValue((0,x7.dateToUtcString)(r));break;case 7:this.writeValue(String(r.getTime()/1e3));break}}else if(s.isDocumentSchema())Array.isArray(r)?this.write(79,r,n):r instanceof Date?this.write(4,r,n):r instanceof Uint8Array?this.write(21,r,n):r&&typeof r=="object"?this.write(143,r,n):(this.writeKey(n),this.writeValue(String(r)));else if(s.isListSchema()){if(Array.isArray(r))if(r.length===0)this.settings.serializeEmptyLists&&(this.writeKey(n),this.writeValue(""));else{let o=s.getValueSchema(),i=this.settings.flattenLists||s.getMergedTraits().xmlFlattened,a=1;for(let c of r){if(c==null)continue;let u=o.getMergedTraits(),l=this.getKey("member",u.xmlName,u.ec2QueryName),d=i?`${n}${a}`:`${n}${l}.${a}`;this.write(o,c,d),++a}}}else if(s.isMapSchema()){if(r&&typeof r=="object"){let o=s.getKeySchema(),i=s.getValueSchema(),a=s.getMergedTraits().xmlFlattened,c=1;for(let[u,l]of Object.entries(r)){if(l==null)continue;let d=o.getMergedTraits(),p=this.getKey("key",d.xmlName,d.ec2QueryName),g=a?`${n}${c}.${p}`:`${n}entry.${c}.${p}`,y=i.getMergedTraits(),R=this.getKey("value",y.xmlName,y.ec2QueryName),D=a?`${n}${c}.${R}`:`${n}entry.${c}.${R}`;this.write(o,u,g),this.write(i,l,D),++c}}}else if(s.isStructSchema()){if(r&&typeof r=="object"){let o=!1;for(let[i,a]of s.structIterator()){if(r[i]==null&&!a.isIdempotencyToken())continue;let c=a.getMergedTraits(),u=this.getKey(i,c.xmlName,c.ec2QueryName,"struct"),l=`${n}${u}`;this.write(a,r[i],l),o=!0}if(!o&&s.isUnionSchema()){let{$unknown:i}=r;if(Array.isArray(i)){let[a,c]=i,u=`${n}${a}`;this.write(15,c,u)}}}}else if(!s.isUnitSchema())throw new Error(`@aws-sdk/core/protocols - QuerySerializer unrecognized schema type ${s.getName(!0)}`)}flush(){if(this.buffer===void 0)throw new Error("@aws-sdk/core/protocols - QuerySerializer cannot flush with nothing written to buffer.");let e=this.buffer;return delete this.buffer,e}getKey(e,r,n,s){let{ec2:o,capitalizeKeys:i}=this.settings;if(o&&n)return n;let a=r??e;return i&&s==="struct"?a[0].toUpperCase()+a.slice(1):a}writeKey(e){e.endsWith(".")&&(e=e.slice(0,e.length-1)),this.buffer+=`&${(0,NS.extendedEncodeURIComponent)(e)}=`}writeValue(e){this.buffer+=(0,NS.extendedEncodeURIComponent)(e)}}});var LS,yd,Tu,hG=_(()=>{LS=require("@smithy/core/protocols"),yd=require("@smithy/core/schema");_m();px();b7();Tu=class extends LS.RpcProtocol{options;serializer;deserializer;mixin=new xo;constructor(e){super({defaultNamespace:e.defaultNamespace}),this.options=e;let r={timestampFormat:{useTrait:!0,default:5},httpBindings:!1,xmlNamespace:e.xmlNamespace,serviceNamespace:e.defaultNamespace,serializeEmptyLists:!0};this.serializer=new mx(r),this.deserializer=new Au(r)}getShapeId(){return"aws.protocols#awsQuery"}setSerdeContext(e){this.serializer.setSerdeContext(e),this.deserializer.setSerdeContext(e)}getPayloadCodec(){throw new Error("AWSQuery protocol has no payload codec.")}async serializeRequest(e,r,n){let s=await super.serializeRequest(e,r,n);s.path.endsWith("/")||(s.path+="/"),Object.assign(s.headers,{"content-type":"application/x-www-form-urlencoded"}),((0,yd.deref)(e.input)==="unit"||!s.body)&&(s.body="");let o=e.name.split("#")[1]??e.name;return s.body=`Action=${o}&Version=${this.options.version}`+s.body,s.body.endsWith("&")&&(s.body=s.body.slice(-1)),s}async deserializeResponse(e,r,n){let s=this.deserializer,o=yd.NormalizedSchema.of(e.output),i={};if(n.statusCode>=300){let d=await(0,LS.collectBody)(n.body,r);d.byteLength>0&&Object.assign(i,await s.read(15,d)),await this.handleError(e,r,n,i,this.deserializeMetadata(n))}for(let d in n.headers){let p=n.headers[d];delete n.headers[d],n.headers[d.toLowerCase()]=p}let a=e.name.split("#")[1]??e.name,c=o.isStructSchema()&&this.useNestedResult()?a+"Result":void 0,u=await(0,LS.collectBody)(n.body,r);return u.byteLength>0&&Object.assign(i,await s.read(o,u,c)),{$metadata:this.deserializeMetadata(n),...i}}useNestedResult(){return!0}async handleError(e,r,n,s,o){let i=this.loadQueryErrorCode(n,s)??"Unknown",a=this.loadQueryError(s)??{},c=this.loadQueryErrorMessage(s);a.message=c,a.Error={Type:a.Type,Code:a.Code,Message:c};let{errorSchema:u,errorMetadata:l}=await this.mixin.getErrorSchemaOrThrowBaseException(i,this.options.defaultNamespace,n,a,o,this.mixin.findQueryCompatibleError),d=yd.NormalizedSchema.of(u),p=yd.TypeRegistry.for(u[1]).getErrorCtor(u)??Error,g=new p(c),y={Type:a.Error.Type,Code:a.Error.Code,Error:a.Error};for(let[R,D]of d.structIterator()){let B=D.getMergedTraits().xmlName??R,M=a[B]??s[B];y[R]=this.deserializer.readSchema(D,M)}throw this.mixin.decorateServiceException(Object.assign(g,l,{$fault:d.getMergedTraits().error,message:c},y),s)}loadQueryErrorCode(e,r){let n=(r.Errors?.[0]?.Error??r.Errors?.Error??r.Error)?.Code;if(n!==void 0)return n;if(e.statusCode==404)return"NotFound"}loadQueryError(e){return e.Errors?.[0]?.Error??e.Errors?.Error??e.Error}loadQueryErrorMessage(e){let r=this.loadQueryError(e);return r?.message??r?.Message??e.message??e.Message??"Unknown"}getDefaultContentType(){return"application/x-www-form-urlencoded"}}});var fx,I7=_(()=>{hG();fx=class extends Tu{options;constructor(e){super(e),this.options=e;let r={capitalizeKeys:!0,flattenLists:!0,serializeEmptyLists:!1,ec2:!0};Object.assign(this.serializer.settings,r)}useNestedResult(){return!1}}});var A7,T7,SG,w7,hx,EG=_(()=>{A7=O(dx()),T7=require("@smithy/smithy-client");cG();SG=(t,e)=>rx(t,e).then(r=>{if(r.length){let n;try{n=(0,A7.parseXML)(r)}catch(a){throw a&&typeof a=="object"&&Object.defineProperty(a,"$responseBodyText",{value:r}),a}let s="#text",o=Object.keys(n)[0],i=n[o];return i[s]&&(i[o]=i[s],delete i[s]),(0,T7.getValueFromTextNode)(i)}return{}}),w7=async(t,e)=>{let r=await SG(t,e);return r.Error&&(r.Error.message=r.Error.message??r.Error.Message),r},hx=(t,e)=>{if(e?.Error?.Code!==void 0)return e.Error.Code;if(e?.Code!==void 0)return e.Code;if(t.statusCode==404)return"NotFound"}});var Wn,D7,Sx,Ex,yG,yx,Am,_G=_(()=>{Wn=O(dx()),D7=require("@smithy/core/protocols"),Sx=require("@smithy/core/schema"),Ex=require("@smithy/core/serde"),yG=require("@smithy/smithy-client"),yx=require("@smithy/util-base64");xu();Am=class extends yn{settings;stringBuffer;byteBuffer;buffer;constructor(e){super(),this.settings=e}write(e,r){let n=Sx.NormalizedSchema.of(e);if(n.isStringSchema()&&typeof r=="string")this.stringBuffer=r;else if(n.isBlobSchema())this.byteBuffer="byteLength"in r?r:(this.serdeContext?.base64Decoder??yx.fromBase64)(r);else{this.buffer=this.writeStruct(n,r,void 0);let s=n.getMergedTraits();s.httpPayload&&!s.xmlName&&this.buffer.withName(n.getName())}}flush(){if(this.byteBuffer!==void 0){let r=this.byteBuffer;return delete this.byteBuffer,r}if(this.stringBuffer!==void 0){let r=this.stringBuffer;return delete this.stringBuffer,r}let e=this.buffer;return this.settings.xmlNamespace&&(e?.attributes?.xmlns||e.addAttribute("xmlns",this.settings.xmlNamespace)),delete this.buffer,e.toString()}writeStruct(e,r,n){let s=e.getMergedTraits(),o=e.isMemberSchema()&&!s.httpPayload?e.getMemberTraits().xmlName??e.getMemberName():s.xmlName??e.getName();if(!o||!e.isStructSchema())throw new Error(`@aws-sdk/core/protocols - xml serializer, cannot write struct with empty name or non-struct, schema=${e.getName(!0)}.`);let i=Wn.XmlNode.of(o),[a,c]=this.getXmlnsAttribute(e,n);for(let[l,d]of e.structIterator()){let p=r[l];if(p!=null||d.isIdempotencyToken()){if(d.getMergedTraits().xmlAttribute){i.addAttribute(d.getMergedTraits().xmlName??l,this.writeSimple(d,p));continue}if(d.isListSchema())this.writeList(d,p,i,c);else if(d.isMapSchema())this.writeMap(d,p,i,c);else if(d.isStructSchema())i.addChildNode(this.writeStruct(d,p,c));else{let g=Wn.XmlNode.of(d.getMergedTraits().xmlName??d.getMemberName());this.writeSimpleInto(d,p,g,c),i.addChildNode(g)}}}let{$unknown:u}=r;if(u&&e.isUnionSchema()&&Array.isArray(u)&&Object.keys(r).length===1){let[l,d]=u,p=Wn.XmlNode.of(l);if(typeof d!="string")if(r instanceof Wn.XmlNode||r instanceof Wn.XmlText)i.addChildNode(r);else throw new Error("@aws-sdk - $unknown union member in XML requires value of type string, @aws-sdk/xml-builder::XmlNode or XmlText.");this.writeSimpleInto(0,d,p,c),i.addChildNode(p)}return c&&i.addAttribute(a,c),i}writeList(e,r,n,s){if(!e.isMemberSchema())throw new Error(`@aws-sdk/core/protocols - xml serializer, cannot write non-member list: ${e.getName(!0)}`);let o=e.getMergedTraits(),i=e.getValueSchema(),a=i.getMergedTraits(),c=!!a.sparse,u=!!o.xmlFlattened,[l,d]=this.getXmlnsAttribute(e,s),p=(g,y)=>{if(i.isListSchema())this.writeList(i,Array.isArray(y)?y:[y],g,d);else if(i.isMapSchema())this.writeMap(i,y,g,d);else if(i.isStructSchema()){let R=this.writeStruct(i,y,d);g.addChildNode(R.withName(u?o.xmlName??e.getMemberName():a.xmlName??"member"))}else{let R=Wn.XmlNode.of(u?o.xmlName??e.getMemberName():a.xmlName??"member");this.writeSimpleInto(i,y,R,d),g.addChildNode(R)}};if(u)for(let g of r)(c||g!=null)&&p(n,g);else{let g=Wn.XmlNode.of(o.xmlName??e.getMemberName());d&&g.addAttribute(l,d);for(let y of r)(c||y!=null)&&p(g,y);n.addChildNode(g)}}writeMap(e,r,n,s,o=!1){if(!e.isMemberSchema())throw new Error(`@aws-sdk/core/protocols - xml serializer, cannot write non-member map: ${e.getName(!0)}`);let i=e.getMergedTraits(),a=e.getKeySchema(),u=a.getMergedTraits().xmlName??"key",l=e.getValueSchema(),d=l.getMergedTraits(),p=d.xmlName??"value",g=!!d.sparse,y=!!i.xmlFlattened,[R,D]=this.getXmlnsAttribute(e,s),B=(M,ge,Y)=>{let Te=Wn.XmlNode.of(u,ge),[Ht,Tt]=this.getXmlnsAttribute(a,D);Tt&&Te.addAttribute(Ht,Tt),M.addChildNode(Te);let Ne=Wn.XmlNode.of(p);l.isListSchema()?this.writeList(l,Y,Ne,D):l.isMapSchema()?this.writeMap(l,Y,Ne,D,!0):l.isStructSchema()?Ne=this.writeStruct(l,Y,D):this.writeSimpleInto(l,Y,Ne,D),M.addChildNode(Ne)};if(y){for(let[M,ge]of Object.entries(r))if(g||ge!=null){let Y=Wn.XmlNode.of(i.xmlName??e.getMemberName());B(Y,M,ge),n.addChildNode(Y)}}else{let M;o||(M=Wn.XmlNode.of(i.xmlName??e.getMemberName()),D&&M.addAttribute(R,D),n.addChildNode(M));for(let[ge,Y]of Object.entries(r))if(g||Y!=null){let Te=Wn.XmlNode.of("entry");B(Te,ge,Y),(o?n:M).addChildNode(Te)}}}writeSimple(e,r){if(r===null)throw new Error("@aws-sdk/core/protocols - (XML serializer) cannot write null value.");let n=Sx.NormalizedSchema.of(e),s=null;if(r&&typeof r=="object")if(n.isBlobSchema())s=(this.serdeContext?.base64Encoder??yx.toBase64)(r);else if(n.isTimestampSchema()&&r instanceof Date)switch((0,D7.determineTimestampFormat)(n,this.settings)){case 5:s=r.toISOString().replace(".000Z","Z");break;case 6:s=(0,yG.dateToUtcString)(r);break;case 7:s=String(r.getTime()/1e3);break;default:console.warn("Missing timestamp format, using http date",r),s=(0,yG.dateToUtcString)(r);break}else{if(n.isBigDecimalSchema()&&r)return r instanceof Ex.NumericValue?r.string:String(r);throw n.isMapSchema()||n.isListSchema()?new Error("@aws-sdk/core/protocols - xml serializer, cannot call _write() on List/Map schema, call writeList or writeMap() instead."):new Error(`@aws-sdk/core/protocols - xml serializer, unhandled schema type for object value and schema: ${n.getName(!0)}`)}if((n.isBooleanSchema()||n.isNumericSchema()||n.isBigIntegerSchema()||n.isBigDecimalSchema())&&(s=String(r)),n.isStringSchema()&&(r===void 0&&n.isIdempotencyToken()?s=(0,Ex.generateIdempotencyToken)():s=String(r)),s===null)throw new Error(`Unhandled schema-value pair ${n.getName(!0)}=${r}`);return s}writeSimpleInto(e,r,n,s){let o=this.writeSimple(e,r),i=Sx.NormalizedSchema.of(e),a=new Wn.XmlText(o),[c,u]=this.getXmlnsAttribute(i,s);u&&n.addAttribute(c,u),n.addChildNode(a)}getXmlnsAttribute(e,r){let n=e.getMergedTraits(),[s,o]=n.xmlNamespace??[];return o&&o!==r?[s?`xmlns:${s}`:"xmlns",o]:[void 0,void 0]}}});var Tm,CG=_(()=>{xu();px();_G();Tm=class extends yn{settings;constructor(e){super(),this.settings=e}createSerializer(){let e=new Am(this.settings);return e.setSerdeContext(this.serdeContext),e}createDeserializer(){let e=new Au(this.settings);return e.setSerdeContext(this.serdeContext),e}}});var wm,MS,_x,O7=_(()=>{wm=require("@smithy/core/protocols"),MS=require("@smithy/core/schema");_m();EG();CG();_x=class extends wm.HttpBindingProtocol{codec;serializer;deserializer;mixin=new xo;constructor(e){super(e);let r={timestampFormat:{useTrait:!0,default:5},httpBindings:!0,xmlNamespace:e.xmlNamespace,serviceNamespace:e.defaultNamespace};this.codec=new Tm(r),this.serializer=new wm.HttpInterceptingShapeSerializer(this.codec.createSerializer(),r),this.deserializer=new wm.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(),r)}getPayloadCodec(){return this.codec}getShapeId(){return"aws.protocols#restXml"}async serializeRequest(e,r,n){let s=await super.serializeRequest(e,r,n),o=MS.NormalizedSchema.of(e.input);if(!s.headers["content-type"]){let i=this.mixin.resolveRestContentType(this.getDefaultContentType(),o);i&&(s.headers["content-type"]=i)}return typeof s.body=="string"&&s.headers["content-type"]===this.getDefaultContentType()&&!s.body.startsWith("'+s.body),s}async deserializeResponse(e,r,n){return super.deserializeResponse(e,r,n)}async handleError(e,r,n,s,o){let i=hx(n,s)??"Unknown";if(s.Error&&typeof s.Error=="object")for(let y of Object.keys(s.Error))s[y]=s.Error[y],y.toLowerCase()==="message"&&(s.message=s.Error[y]);s.RequestId&&!o.requestId&&(o.requestId=s.RequestId);let{errorSchema:a,errorMetadata:c}=await this.mixin.getErrorSchemaOrThrowBaseException(i,this.options.defaultNamespace,n,s,o),u=MS.NormalizedSchema.of(a),l=s.Error?.message??s.Error?.Message??s.message??s.Message??"Unknown",d=MS.TypeRegistry.for(a[1]).getErrorCtor(a)??Error,p=new d(l);await this.deserializeHttpMessage(a,r,n,s);let g={};for(let[y,R]of u.structIterator()){let D=R.getMergedTraits().xmlName??y,B=s.Error?.[D]??s[D];g[y]=this.codec.createDeserializer().readSchema(R,B)}throw this.mixin.decorateServiceException(Object.assign(p,c,{$fault:u.getMergedTraits().error,message:l},g),s)}getDefaultContentType(){return"application/xml"}hasUnstructuredPayloadBinding(e){for(let[,r]of e.structIterator())if(r.getMergedTraits().httpPayload)return!(r.isStructSchema()||r.isMapSchema()||r.isListSchema());return!1}}});var RG={};wt(RG,{AwsEc2QueryProtocol:()=>fx,AwsJson1_0Protocol:()=>ax,AwsJson1_1Protocol:()=>cx,AwsJsonRpcProtocol:()=>bu,AwsQueryProtocol:()=>Tu,AwsRestJsonProtocol:()=>Iu,AwsRestXmlProtocol:()=>_x,AwsSmithyRpcV2CborProtocol:()=>Zv,JsonCodec:()=>Pu,JsonShapeDeserializer:()=>vm,JsonShapeSerializer:()=>xm,XmlCodec:()=>Tm,XmlShapeDeserializer:()=>Au,XmlShapeSerializer:()=>Am,_toBool:()=>QY,_toNum:()=>XY,_toStr:()=>KY,awsExpectUnion:()=>h7,loadRestJsonErrorCode:()=>Rm,loadRestXmlErrorCode:()=>hx,parseJsonBody:()=>OS,parseJsonErrorBody:()=>n7,parseXmlBody:()=>SG,parseXmlErrorBody:()=>w7});var _d=_(()=>{WY();JY();p7();m7();ix();g7();ox();uG();dG();S7();kS();I7();hG();O7();CG();px();_G();EG()});var wu={};wt(wu,{AWSSDKSigV4Signer:()=>Z$,AwsEc2QueryProtocol:()=>fx,AwsJson1_0Protocol:()=>ax,AwsJson1_1Protocol:()=>cx,AwsJsonRpcProtocol:()=>bu,AwsQueryProtocol:()=>Tu,AwsRestJsonProtocol:()=>Iu,AwsRestXmlProtocol:()=>_x,AwsSdkSigV4ASigner:()=>wS,AwsSdkSigV4Signer:()=>En,AwsSmithyRpcV2CborProtocol:()=>Zv,JsonCodec:()=>Pu,JsonShapeDeserializer:()=>vm,JsonShapeSerializer:()=>xm,NODE_AUTH_SCHEME_PREFERENCE_OPTIONS:()=>vu,NODE_SIGV4A_CONFIG_OPTIONS:()=>$Y,XmlCodec:()=>Tm,XmlShapeDeserializer:()=>Au,XmlShapeSerializer:()=>Am,_toBool:()=>QY,_toNum:()=>XY,_toStr:()=>KY,awsExpectUnion:()=>h7,emitWarningIfUnsupportedVersion:()=>Cu,getBearerTokenEnvKey:()=>Yv,loadRestJsonErrorCode:()=>Rm,loadRestXmlErrorCode:()=>hx,parseJsonBody:()=>OS,parseJsonErrorBody:()=>n7,parseXmlBody:()=>SG,parseXmlErrorBody:()=>w7,resolveAWSSDKSigV4Config:()=>jY,resolveAwsSdkSigV4AConfig:()=>qY,resolveAwsSdkSigV4Config:()=>uc,setCredentialFeature:()=>Ru,setFeature:()=>vY,setTokenFeature:()=>PY,state:()=>Jv,validateSigningProperties:()=>ym});var on=_(()=>{vo();oG();_d()});var Cd=b(Dm=>{"use strict";var z9e=require("@smithy/core"),W9e=_Y(),K9e=require("@smithy/protocol-http"),da=(on(),ue(wu)),M7=void 0;function Q9e(t){return t===void 0?!0:typeof t=="string"&&t.length<=50}function X9e(t){let e=z9e.normalizeProvider(t.userAgentAppId??M7),{customUserAgent:r}=t;return Object.assign(t,{customUserAgent:typeof r=="string"?[[r]]:r,userAgentAppId:async()=>{let n=await e();if(!Q9e(n)){let s=t.logger?.constructor?.name==="NoOpLogger"||!t.logger?console:t.logger;typeof n!="string"?s?.warn("userAgentAppId must be a string or undefined."):n.length>50&&s?.warn("The provided userAgentAppId exceeds the maximum length of 50 characters.")}return n}})}var J9e=/\d{12}\.ddb/;async function Y9e(t,e,r){if(r.request?.headers?.["smithy-protocol"]==="rpc-v2-cbor"&&da.setFeature(t,"PROTOCOL_RPC_V2_CBOR","M"),typeof e.retryStrategy=="function"){let o=await e.retryStrategy();typeof o.acquireInitialRetryToken=="function"?o.constructor?.name?.includes("Adaptive")?da.setFeature(t,"RETRY_MODE_ADAPTIVE","F"):da.setFeature(t,"RETRY_MODE_STANDARD","E"):da.setFeature(t,"RETRY_MODE_LEGACY","D")}if(typeof e.accountIdEndpointMode=="function"){let o=t.endpointV2;switch(String(o?.url?.hostname).match(J9e)&&da.setFeature(t,"ACCOUNT_ID_ENDPOINT","O"),await e.accountIdEndpointMode?.()){case"disabled":da.setFeature(t,"ACCOUNT_ID_MODE_DISABLED","Q");break;case"preferred":da.setFeature(t,"ACCOUNT_ID_MODE_PREFERRED","P");break;case"required":da.setFeature(t,"ACCOUNT_ID_MODE_REQUIRED","R");break}}let s=t.__smithy_context?.selectedHttpAuthScheme?.identity;if(s?.$source){let o=s;o.accountId&&da.setFeature(t,"RESOLVED_ACCOUNT_ID","T");for(let[i,a]of Object.entries(o.$source??{}))da.setFeature(t,i,a)}}var k7="user-agent",vG="x-amz-user-agent",N7=" ",xG="/",Z9e=/[^!$%&'*+\-.^_`|~\w]/g,e8e=/[^!$%&'*+\-.^_`|~\w#]/g,L7="-",t8e=1024;function r8e(t){let e="";for(let r in t){let n=t[r];if(e.length+n.length+1<=t8e){e.length?e+=","+n:e+=n;continue}break}return e}var F7=t=>(e,r)=>async n=>{let{request:s}=n;if(!K9e.HttpRequest.isInstance(s))return e(n);let{headers:o}=s,i=r?.userAgent?.map(Cx)||[],a=(await t.defaultUserAgentProvider()).map(Cx);await Y9e(r,t,n);let c=r;a.push(`m/${r8e(Object.assign({},r.__smithy_context?.features,c.__aws_sdk_context?.features))}`);let u=t?.customUserAgent?.map(Cx)||[],l=await t.userAgentAppId();l&&a.push(Cx(["app",`${l}`]));let d=W9e.getUserAgentPrefix(),p=(d?[d]:[]).concat([...a,...i,...u]).join(N7),g=[...a.filter(y=>y.startsWith("aws-sdk-")),...u].join(N7);return t.runtime!=="browser"?(g&&(o[vG]=o[vG]?`${o[k7]} ${g}`:g),o[k7]=p):o[vG]=p,e({...n,request:s})},Cx=t=>{let e=t[0].split(xG).map(i=>i.replace(Z9e,L7)).join(xG),r=t[1]?.replace(e8e,L7),n=e.indexOf(xG),s=e.substring(0,n),o=e.substring(n+1);return s==="api"&&(o=o.toLowerCase()),[s,o,r].filter(i=>i&&i.length>0).reduce((i,a,c)=>{switch(c){case 0:return a;case 1:return`${i}/${a}`;default:return`${i}#${a}`}},"")},B7={name:"getUserAgentMiddleware",step:"build",priority:"low",tags:["SET_USER_AGENT","USER_AGENT"],override:!0},n8e=t=>({applyToStack:e=>{e.add(F7(t),B7)}});Dm.DEFAULT_UA_APP_ID=M7;Dm.getUserAgentMiddlewareOptions=B7;Dm.getUserAgentPlugin=n8e;Dm.resolveUserAgentConfig=X9e;Dm.userAgentMiddleware=F7});var bG=b(Du=>{"use strict";Object.defineProperty(Du,"__esModule",{value:!0});Du.resolveHttpAuthSchemeConfig=Du.defaultDynamoDBHttpAuthSchemeProvider=Du.defaultDynamoDBHttpAuthSchemeParametersProvider=void 0;var s8e=(on(),ue(wu)),PG=require("@smithy/util-middleware"),o8e=async(t,e,r)=>({operation:(0,PG.getSmithyContext)(e).operation,region:await(0,PG.normalizeProvider)(t.region)()||(()=>{throw new Error("expected `region` to be configured for `aws.auth#sigv4`")})()});Du.defaultDynamoDBHttpAuthSchemeParametersProvider=o8e;function i8e(t){return{schemeId:"aws.auth#sigv4",signingProperties:{name:"dynamodb",region:t.region},propertiesExtractor:(e,r)=>({signingProperties:{config:e,context:r}})}}var a8e=t=>{let e=[];switch(t.operation){default:e.push(i8e(t))}return e};Du.defaultDynamoDBHttpAuthSchemeProvider=a8e;var c8e=t=>{let e=(0,s8e.resolveAwsSdkSigV4Config)(t);return Object.assign(e,{authSchemePreference:(0,PG.normalizeProvider)(t.authSchemePreference??[])})};Du.resolveHttpAuthSchemeConfig=c8e});var U7=b((Cqr,u8e)=>{u8e.exports={name:"@aws-sdk/client-dynamodb",description:"AWS SDK for JavaScript Dynamodb Client for Node.js, Browser and React Native",version:"3.980.0",scripts:{build:"concurrently 'yarn:build:types' 'yarn:build:es' && yarn build:cjs","build:cjs":"node ../../scripts/compilation/inline client-dynamodb","build:es":"tsc -p tsconfig.es.json","build:include:deps":'yarn g:turbo run build -F="$npm_package_name"',"build:types":"tsc -p tsconfig.types.json","build:types:downlevel":"downlevel-dts dist-types dist-types/ts3.4",clean:"premove dist-cjs dist-es dist-types tsconfig.cjs.tsbuildinfo tsconfig.es.tsbuildinfo tsconfig.types.tsbuildinfo","extract:docs":"api-extractor run --local","generate:client":"node ../../scripts/generate-clients/single-service --solo dynamodb","test:e2e":"yarn g:vitest run -c vitest.config.e2e.mts","test:e2e:watch":"yarn g:vitest watch -c vitest.config.e2e.mts","test:index":"tsc --noEmit ./test/index-types.ts && node ./test/index-objects.spec.mjs"},main:"./dist-cjs/index.js",types:"./dist-types/index.d.ts",module:"./dist-es/index.js",sideEffects:!1,dependencies:{"@aws-crypto/sha256-browser":"5.2.0","@aws-crypto/sha256-js":"5.2.0","@aws-sdk/core":"^3.973.5","@aws-sdk/credential-provider-node":"^3.972.4","@aws-sdk/dynamodb-codec":"^3.972.5","@aws-sdk/middleware-endpoint-discovery":"^3.972.3","@aws-sdk/middleware-host-header":"^3.972.3","@aws-sdk/middleware-logger":"^3.972.3","@aws-sdk/middleware-recursion-detection":"^3.972.3","@aws-sdk/middleware-user-agent":"^3.972.5","@aws-sdk/region-config-resolver":"^3.972.3","@aws-sdk/types":"^3.973.1","@aws-sdk/util-endpoints":"3.980.0","@aws-sdk/util-user-agent-browser":"^3.972.3","@aws-sdk/util-user-agent-node":"^3.972.3","@smithy/config-resolver":"^4.4.6","@smithy/core":"^3.22.0","@smithy/fetch-http-handler":"^5.3.9","@smithy/hash-node":"^4.2.8","@smithy/invalid-dependency":"^4.2.8","@smithy/middleware-content-length":"^4.2.8","@smithy/middleware-endpoint":"^4.4.12","@smithy/middleware-retry":"^4.4.29","@smithy/middleware-serde":"^4.2.9","@smithy/middleware-stack":"^4.2.8","@smithy/node-config-provider":"^4.3.8","@smithy/node-http-handler":"^4.4.8","@smithy/protocol-http":"^5.3.8","@smithy/smithy-client":"^4.11.1","@smithy/types":"^4.12.0","@smithy/url-parser":"^4.2.8","@smithy/util-base64":"^4.3.0","@smithy/util-body-length-browser":"^4.2.0","@smithy/util-body-length-node":"^4.2.1","@smithy/util-defaults-mode-browser":"^4.3.28","@smithy/util-defaults-mode-node":"^4.2.31","@smithy/util-endpoints":"^3.2.8","@smithy/util-middleware":"^4.2.8","@smithy/util-retry":"^4.2.8","@smithy/util-utf8":"^4.2.0","@smithy/util-waiter":"^4.2.8",tslib:"^2.6.2"},devDependencies:{"@tsconfig/node20":"20.1.8","@types/node":"^20.14.8",concurrently:"7.0.0","downlevel-dts":"0.10.1",premove:"4.0.0",typescript:"~5.8.3"},engines:{node:">=20.0.0"},typesVersions:{"<4.0":{"dist-types/*":["dist-types/ts3.4/*"]}},files:["dist-*/**"],author:{name:"AWS SDK for JavaScript Team",url:"https://aws.amazon.com/javascript/"},license:"Apache-2.0",browser:{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.browser"},"react-native":{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.native"},homepage:"https://github.com/aws/aws-sdk-js-v3/tree/main/clients/client-dynamodb",repository:{type:"git",url:"https://github.com/aws/aws-sdk-js-v3.git",directory:"clients/client-dynamodb"}}});var IG=b(Ou=>{"use strict";var l8e=(vo(),ue(cc)),d8e=require("@smithy/property-provider"),q7="AWS_ACCESS_KEY_ID",$7="AWS_SECRET_ACCESS_KEY",G7="AWS_SESSION_TOKEN",j7="AWS_CREDENTIAL_EXPIRATION",V7="AWS_CREDENTIAL_SCOPE",H7="AWS_ACCOUNT_ID",p8e=t=>async()=>{t?.logger?.debug("@aws-sdk/credential-provider-env - fromEnv");let e=process.env[q7],r=process.env[$7],n=process.env[G7],s=process.env[j7],o=process.env[V7],i=process.env[H7];if(e&&r){let a={accessKeyId:e,secretAccessKey:r,...n&&{sessionToken:n},...s&&{expiration:new Date(s)},...o&&{credentialScope:o},...i&&{accountId:i}};return l8e.setCredentialFeature(a,"CREDENTIALS_ENV_VARS","g"),a}throw new d8e.CredentialsProviderError("Unable to find environment variable credentials.",{logger:t?.logger})};Ou.ENV_ACCOUNT_ID=H7;Ou.ENV_CREDENTIAL_SCOPE=V7;Ou.ENV_EXPIRATION=j7;Ou.ENV_KEY=q7;Ou.ENV_SECRET=$7;Ou.ENV_SESSION=G7;Ou.fromEnv=p8e});var z7=b(Rx=>{"use strict";Object.defineProperty(Rx,"__esModule",{value:!0});Rx.checkUrl=void 0;var m8e=require("@smithy/property-provider"),g8e="169.254.170.2",f8e="169.254.170.23",h8e="[fd00:ec2::23]",S8e=(t,e)=>{if(t.protocol!=="https:"&&!(t.hostname===g8e||t.hostname===f8e||t.hostname===h8e)){if(t.hostname.includes("[")){if(t.hostname==="[::1]"||t.hostname==="[0000:0000:0000:0000:0000:0000:0000:0001]")return}else{if(t.hostname==="localhost")return;let r=t.hostname.split("."),n=s=>{let o=parseInt(s,10);return 0<=o&&o<=255};if(r[0]==="127"&&n(r[1])&&n(r[2])&&n(r[3])&&r.length===4)return}throw new m8e.CredentialsProviderError(`URL not accepted. It must either be HTTPS or match one of the following: - - loopback CIDR 127.0.0.0/8 or [::1/128] - - ECS container host 169.254.170.2 - - EKS container host 169.254.170.23 or [fd00:ec2::23]`,{logger:e})}};Rx.checkUrl=S8e});var W7=b(vx=>{"use strict";Object.defineProperty(vx,"__esModule",{value:!0});vx.createGetRequest=C8e;vx.getCredentials=R8e;var AG=require("@smithy/property-provider"),E8e=require("@smithy/protocol-http"),y8e=require("@smithy/smithy-client"),_8e=require("@smithy/util-stream");function C8e(t){return new E8e.HttpRequest({protocol:t.protocol,hostname:t.hostname,port:Number(t.port),path:t.pathname,query:Array.from(t.searchParams.entries()).reduce((e,[r,n])=>(e[r]=n,e),{}),fragment:t.hash})}async function R8e(t,e){let n=await(0,_8e.sdkStreamMixin)(t.body).transformToString();if(t.statusCode===200){let s=JSON.parse(n);if(typeof s.AccessKeyId!="string"||typeof s.SecretAccessKey!="string"||typeof s.Token!="string"||typeof s.Expiration!="string")throw new AG.CredentialsProviderError("HTTP credential provider response not of the required format, an object matching: { AccessKeyId: string, SecretAccessKey: string, Token: string, Expiration: string(rfc3339) }",{logger:e});return{accessKeyId:s.AccessKeyId,secretAccessKey:s.SecretAccessKey,sessionToken:s.Token,expiration:(0,y8e.parseRfc3339DateTime)(s.Expiration)}}if(t.statusCode>=400&&t.statusCode<500){let s={};try{s=JSON.parse(n)}catch{}throw Object.assign(new AG.CredentialsProviderError(`Server responded with status: ${t.statusCode}`,{logger:e}),{Code:s.Code,Message:s.Message})}throw new AG.CredentialsProviderError(`Server responded with status: ${t.statusCode}`,{logger:e})}});var K7=b(xx=>{"use strict";Object.defineProperty(xx,"__esModule",{value:!0});xx.retryWrapper=void 0;var v8e=(t,e,r)=>async()=>{for(let n=0;nsetTimeout(o,r))}return await t()};xx.retryWrapper=v8e});var J7=b(Px=>{"use strict";Object.defineProperty(Px,"__esModule",{value:!0});Px.fromHttp=void 0;var x8e=require("tslib"),P8e=(vo(),ue(cc)),b8e=require("@smithy/node-http-handler"),Q7=require("@smithy/property-provider"),I8e=x8e.__importDefault(require("fs/promises")),A8e=z7(),X7=W7(),T8e=K7(),w8e="AWS_CONTAINER_CREDENTIALS_RELATIVE_URI",D8e="http://169.254.170.2",O8e="AWS_CONTAINER_CREDENTIALS_FULL_URI",k8e="AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE",N8e="AWS_CONTAINER_AUTHORIZATION_TOKEN",L8e=(t={})=>{t.logger?.debug("@aws-sdk/credential-provider-http - fromHttp");let e,r=t.awsContainerCredentialsRelativeUri??process.env[w8e],n=t.awsContainerCredentialsFullUri??process.env[O8e],s=t.awsContainerAuthorizationToken??process.env[N8e],o=t.awsContainerAuthorizationTokenFile??process.env[k8e],i=t.logger?.constructor?.name==="NoOpLogger"||!t.logger?.warn?console.warn:t.logger.warn.bind(t.logger);if(r&&n&&(i("@aws-sdk/credential-provider-http: you have set both awsContainerCredentialsRelativeUri and awsContainerCredentialsFullUri."),i("awsContainerCredentialsFullUri will take precedence.")),s&&o&&(i("@aws-sdk/credential-provider-http: you have set both awsContainerAuthorizationToken and awsContainerAuthorizationTokenFile."),i("awsContainerAuthorizationToken will take precedence.")),n)e=n;else if(r)e=`${D8e}${r}`;else throw new Q7.CredentialsProviderError(`No HTTP credential provider host provided. -Set AWS_CONTAINER_CREDENTIALS_FULL_URI or AWS_CONTAINER_CREDENTIALS_RELATIVE_URI.`,{logger:t.logger});let a=new URL(e);(0,A8e.checkUrl)(a,t.logger);let c=b8e.NodeHttpHandler.create({requestTimeout:t.timeout??1e3,connectionTimeout:t.timeout??1e3});return(0,T8e.retryWrapper)(async()=>{let u=(0,X7.createGetRequest)(a);s?u.headers.Authorization=s:o&&(u.headers.Authorization=(await I8e.default.readFile(o)).toString());try{let l=await c.handle(u);return(0,X7.getCredentials)(l.response).then(d=>(0,P8e.setCredentialFeature)(d,"CREDENTIALS_HTTP","z"))}catch(l){throw new Q7.CredentialsProviderError(String(l),{logger:t.logger})}},t.maxRetries??3,t.timeout??1e3)};Px.fromHttp=L8e});var TG=b(bx=>{"use strict";Object.defineProperty(bx,"__esModule",{value:!0});bx.fromHttp=void 0;var M8e=J7();Object.defineProperty(bx,"fromHttp",{enumerable:!0,get:function(){return M8e.fromHttp}})});function F8e(t){return{schemeId:"aws.auth#sigv4",signingProperties:{name:"sso-oauth",region:t.region},propertiesExtractor:(e,r)=>({signingProperties:{config:e,context:r}})}}function B8e(t){return{schemeId:"smithy.api#noAuth"}}var FS,Y7,Z7,eZ,wG=_(()=>{on();FS=require("@smithy/util-middleware"),Y7=async(t,e,r)=>({operation:(0,FS.getSmithyContext)(e).operation,region:await(0,FS.normalizeProvider)(t.region)()||(()=>{throw new Error("expected `region` to be configured for `aws.auth#sigv4`")})()});Z7=t=>{let e=[];switch(t.operation){case"CreateToken":{e.push(B8e(t));break}default:e.push(F8e(t))}return e},eZ=t=>{let e=uc(t);return Object.assign(e,{authSchemePreference:(0,FS.normalizeProvider)(t.authSchemePreference??[])})}});var tZ,rZ,DG=_(()=>{tZ=t=>Object.assign(t,{useDualstackEndpoint:t.useDualstackEndpoint??!1,useFipsEndpoint:t.useFipsEndpoint??!1,defaultSigningName:"sso-oauth"}),rZ={UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}});var Om,Ix=_(()=>{Om={name:"@aws-sdk/nested-clients",version:"3.996.0",description:"Nested clients for AWS SDK packages.",main:"./dist-cjs/index.js",module:"./dist-es/index.js",types:"./dist-types/index.d.ts",scripts:{build:"yarn lint && concurrently 'yarn:build:types' 'yarn:build:es' && yarn build:cjs","build:cjs":"node ../../scripts/compilation/inline nested-clients","build:es":"tsc -p tsconfig.es.json","build:include:deps":'yarn g:turbo run build -F="$npm_package_name"',"build:types":"tsc -p tsconfig.types.json","build:types:downlevel":"downlevel-dts dist-types dist-types/ts3.4",clean:"premove dist-cjs dist-es dist-types tsconfig.cjs.tsbuildinfo tsconfig.es.tsbuildinfo tsconfig.types.tsbuildinfo",lint:"node ../../scripts/validation/submodules-linter.js --pkg nested-clients",test:"yarn g:vitest run","test:watch":"yarn g:vitest watch"},engines:{node:">=20.0.0"},sideEffects:!1,author:{name:"AWS SDK for JavaScript Team",url:"https://aws.amazon.com/javascript/"},license:"Apache-2.0",dependencies:{"@aws-crypto/sha256-browser":"5.2.0","@aws-crypto/sha256-js":"5.2.0","@aws-sdk/core":"^3.973.12","@aws-sdk/middleware-host-header":"^3.972.3","@aws-sdk/middleware-logger":"^3.972.3","@aws-sdk/middleware-recursion-detection":"^3.972.3","@aws-sdk/middleware-user-agent":"^3.972.12","@aws-sdk/region-config-resolver":"^3.972.3","@aws-sdk/types":"^3.973.1","@aws-sdk/util-endpoints":"3.996.0","@aws-sdk/util-user-agent-browser":"^3.972.3","@aws-sdk/util-user-agent-node":"^3.972.11","@smithy/config-resolver":"^4.4.6","@smithy/core":"^3.23.2","@smithy/fetch-http-handler":"^5.3.9","@smithy/hash-node":"^4.2.8","@smithy/invalid-dependency":"^4.2.8","@smithy/middleware-content-length":"^4.2.8","@smithy/middleware-endpoint":"^4.4.16","@smithy/middleware-retry":"^4.4.33","@smithy/middleware-serde":"^4.2.9","@smithy/middleware-stack":"^4.2.8","@smithy/node-config-provider":"^4.3.8","@smithy/node-http-handler":"^4.4.10","@smithy/protocol-http":"^5.3.8","@smithy/smithy-client":"^4.11.5","@smithy/types":"^4.12.0","@smithy/url-parser":"^4.2.8","@smithy/util-base64":"^4.3.0","@smithy/util-body-length-browser":"^4.2.0","@smithy/util-body-length-node":"^4.2.1","@smithy/util-defaults-mode-browser":"^4.3.32","@smithy/util-defaults-mode-node":"^4.2.35","@smithy/util-endpoints":"^3.2.8","@smithy/util-middleware":"^4.2.8","@smithy/util-retry":"^4.2.8","@smithy/util-utf8":"^4.2.0",tslib:"^2.6.2"},devDependencies:{concurrently:"7.0.0","downlevel-dts":"0.10.1",premove:"4.0.0",typescript:"~5.8.3"},typesVersions:{"<4.0":{"dist-types/*":["dist-types/ts3.4/*"]}},files:["./signin.d.ts","./signin.js","./sso-oidc.d.ts","./sso-oidc.js","./sts.d.ts","./sts.js","dist-*/**"],browser:{"./dist-es/submodules/signin/runtimeConfig":"./dist-es/submodules/signin/runtimeConfig.browser","./dist-es/submodules/sso-oidc/runtimeConfig":"./dist-es/submodules/sso-oidc/runtimeConfig.browser","./dist-es/submodules/sts/runtimeConfig":"./dist-es/submodules/sts/runtimeConfig.browser"},"react-native":{},homepage:"https://github.com/aws/aws-sdk-js-v3/tree/main/packages/nested-clients",repository:{type:"git",url:"https://github.com/aws/aws-sdk-js-v3.git",directory:"packages/nested-clients"},exports:{"./package.json":"./package.json","./sso-oidc":{types:"./dist-types/submodules/sso-oidc/index.d.ts",module:"./dist-es/submodules/sso-oidc/index.js",node:"./dist-cjs/submodules/sso-oidc/index.js",import:"./dist-es/submodules/sso-oidc/index.js",require:"./dist-cjs/submodules/sso-oidc/index.js"},"./sts":{types:"./dist-types/submodules/sts/index.d.ts",module:"./dist-es/submodules/sts/index.js",node:"./dist-cjs/submodules/sts/index.js",import:"./dist-es/submodules/sts/index.js",require:"./dist-cjs/submodules/sts/index.js"},"./signin":{types:"./dist-types/submodules/signin/index.d.ts",module:"./dist-es/submodules/signin/index.js",node:"./dist-cjs/submodules/signin/index.js",import:"./dist-es/submodules/signin/index.js",require:"./dist-cjs/submodules/signin/index.js"}}}});var km=b(Rd=>{"use strict";var nZ=require("os"),BS=require("process"),q8e=Cd(),$8e=()=>{let t=["deno","bun","llrt"];for(let e of t)if(BS.versions[e])return[`md/${e}`,BS.versions[e]];return["md/nodejs",BS.versions.node]},sZ={isCrtAvailable:!1},G8e=()=>sZ.isCrtAvailable?["md/crt-avail"]:null,oZ=({serviceId:t,clientVersion:e})=>{let r=$8e();return async n=>{let s=[["aws-sdk-js",e],["ua","2.1"],[`os/${nZ.platform()}`,nZ.release()],["lang/js"],r],o=G8e();o&&s.push(o),t&&s.push([`api/${t}`,e]),BS.env.AWS_EXECUTION_ENV&&s.push([`exec-env/${BS.env.AWS_EXECUTION_ENV}`]);let i=await n?.userAgentAppId?.();return i?[...s,[`app/${i}`]]:[...s]}},j8e=oZ,iZ="AWS_SDK_UA_APP_ID",aZ="sdk_ua_app_id",V8e="sdk-ua-app-id",H8e={environmentVariableSelector:t=>t[iZ],configFileSelector:t=>t[aZ]??t[V8e],default:q8e.DEFAULT_UA_APP_ID};Rd.NODE_APP_ID_CONFIG_OPTIONS=H8e;Rd.UA_APP_ID_ENV_NAME=iZ;Rd.UA_APP_ID_INI_NAME=aZ;Rd.createDefaultUserAgentProvider=oZ;Rd.crtAvailability=sZ;Rd.defaultUserAgent=j8e});var Ax=b(yi=>{"use strict";var Nm=require("@smithy/util-endpoints"),z8e=require("@smithy/url-parser"),uZ=(t,e=!1)=>{if(e){for(let r of t.split("."))if(!uZ(r))return!1;return!0}return!(!Nm.isValidHostLabel(t)||t.length<3||t.length>63||t!==t.toLowerCase()||Nm.isIpAddress(t))},cZ=":",W8e="/",K8e=t=>{let e=t.split(cZ);if(e.length<6)return null;let[r,n,s,o,i,...a]=e;if(r!=="arn"||n===""||s===""||a.join(cZ)==="")return null;let c=a.map(u=>u.split(W8e)).flat();return{partition:n,service:s,region:o,accountId:i,resourceId:c}},Q8e=[{id:"aws",outputs:{dnsSuffix:"amazonaws.com",dualStackDnsSuffix:"api.aws",implicitGlobalRegion:"us-east-1",name:"aws",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^(us|eu|ap|sa|ca|me|af|il|mx)\\-\\w+\\-\\d+$",regions:{"af-south-1":{description:"Africa (Cape Town)"},"ap-east-1":{description:"Asia Pacific (Hong Kong)"},"ap-east-2":{description:"Asia Pacific (Taipei)"},"ap-northeast-1":{description:"Asia Pacific (Tokyo)"},"ap-northeast-2":{description:"Asia Pacific (Seoul)"},"ap-northeast-3":{description:"Asia Pacific (Osaka)"},"ap-south-1":{description:"Asia Pacific (Mumbai)"},"ap-south-2":{description:"Asia Pacific (Hyderabad)"},"ap-southeast-1":{description:"Asia Pacific (Singapore)"},"ap-southeast-2":{description:"Asia Pacific (Sydney)"},"ap-southeast-3":{description:"Asia Pacific (Jakarta)"},"ap-southeast-4":{description:"Asia Pacific (Melbourne)"},"ap-southeast-5":{description:"Asia Pacific (Malaysia)"},"ap-southeast-6":{description:"Asia Pacific (New Zealand)"},"ap-southeast-7":{description:"Asia Pacific (Thailand)"},"aws-global":{description:"aws global region"},"ca-central-1":{description:"Canada (Central)"},"ca-west-1":{description:"Canada West (Calgary)"},"eu-central-1":{description:"Europe (Frankfurt)"},"eu-central-2":{description:"Europe (Zurich)"},"eu-north-1":{description:"Europe (Stockholm)"},"eu-south-1":{description:"Europe (Milan)"},"eu-south-2":{description:"Europe (Spain)"},"eu-west-1":{description:"Europe (Ireland)"},"eu-west-2":{description:"Europe (London)"},"eu-west-3":{description:"Europe (Paris)"},"il-central-1":{description:"Israel (Tel Aviv)"},"me-central-1":{description:"Middle East (UAE)"},"me-south-1":{description:"Middle East (Bahrain)"},"mx-central-1":{description:"Mexico (Central)"},"sa-east-1":{description:"South America (Sao Paulo)"},"us-east-1":{description:"US East (N. Virginia)"},"us-east-2":{description:"US East (Ohio)"},"us-west-1":{description:"US West (N. California)"},"us-west-2":{description:"US West (Oregon)"}}},{id:"aws-cn",outputs:{dnsSuffix:"amazonaws.com.cn",dualStackDnsSuffix:"api.amazonwebservices.com.cn",implicitGlobalRegion:"cn-northwest-1",name:"aws-cn",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^cn\\-\\w+\\-\\d+$",regions:{"aws-cn-global":{description:"aws-cn global region"},"cn-north-1":{description:"China (Beijing)"},"cn-northwest-1":{description:"China (Ningxia)"}}},{id:"aws-eusc",outputs:{dnsSuffix:"amazonaws.eu",dualStackDnsSuffix:"api.amazonwebservices.eu",implicitGlobalRegion:"eusc-de-east-1",name:"aws-eusc",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^eusc\\-(de)\\-\\w+\\-\\d+$",regions:{"eusc-de-east-1":{description:"AWS European Sovereign Cloud (Germany)"}}},{id:"aws-iso",outputs:{dnsSuffix:"c2s.ic.gov",dualStackDnsSuffix:"api.aws.ic.gov",implicitGlobalRegion:"us-iso-east-1",name:"aws-iso",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^us\\-iso\\-\\w+\\-\\d+$",regions:{"aws-iso-global":{description:"aws-iso global region"},"us-iso-east-1":{description:"US ISO East"},"us-iso-west-1":{description:"US ISO WEST"}}},{id:"aws-iso-b",outputs:{dnsSuffix:"sc2s.sgov.gov",dualStackDnsSuffix:"api.aws.scloud",implicitGlobalRegion:"us-isob-east-1",name:"aws-iso-b",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^us\\-isob\\-\\w+\\-\\d+$",regions:{"aws-iso-b-global":{description:"aws-iso-b global region"},"us-isob-east-1":{description:"US ISOB East (Ohio)"},"us-isob-west-1":{description:"US ISOB West"}}},{id:"aws-iso-e",outputs:{dnsSuffix:"cloud.adc-e.uk",dualStackDnsSuffix:"api.cloud-aws.adc-e.uk",implicitGlobalRegion:"eu-isoe-west-1",name:"aws-iso-e",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^eu\\-isoe\\-\\w+\\-\\d+$",regions:{"aws-iso-e-global":{description:"aws-iso-e global region"},"eu-isoe-west-1":{description:"EU ISOE West"}}},{id:"aws-iso-f",outputs:{dnsSuffix:"csp.hci.ic.gov",dualStackDnsSuffix:"api.aws.hci.ic.gov",implicitGlobalRegion:"us-isof-south-1",name:"aws-iso-f",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^us\\-isof\\-\\w+\\-\\d+$",regions:{"aws-iso-f-global":{description:"aws-iso-f global region"},"us-isof-east-1":{description:"US ISOF EAST"},"us-isof-south-1":{description:"US ISOF SOUTH"}}},{id:"aws-us-gov",outputs:{dnsSuffix:"amazonaws.com",dualStackDnsSuffix:"api.aws",implicitGlobalRegion:"us-gov-west-1",name:"aws-us-gov",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^us\\-gov\\-\\w+\\-\\d+$",regions:{"aws-us-gov-global":{description:"aws-us-gov global region"},"us-gov-east-1":{description:"AWS GovCloud (US-East)"},"us-gov-west-1":{description:"AWS GovCloud (US-West)"}}}],X8e="1.1",lZ={partitions:Q8e,version:X8e},dZ=lZ,pZ="",mZ=t=>{let{partitions:e}=dZ;for(let n of e){let{regions:s,outputs:o}=n;for(let[i,a]of Object.entries(s))if(i===t)return{...o,...a}}for(let n of e){let{regionRegex:s,outputs:o}=n;if(new RegExp(s).test(t))return{...o}}let r=e.find(n=>n.id==="aws");if(!r)throw new Error("Provided region was not found in the partition array or regex, and default partition with id 'aws' doesn't exist.");return{...r.outputs}},gZ=(t,e="")=>{dZ=t,pZ=e},J8e=()=>{gZ(lZ,"")},Y8e=()=>pZ,fZ={isVirtualHostableS3Bucket:uZ,parseArn:K8e,partition:mZ};Nm.customEndpointFunctions.aws=fZ;var Z8e=t=>{if(typeof t.endpointProvider!="function")throw new Error("@aws-sdk/util-endpoint - endpointProvider and endpoint missing in config for this client.");let{endpoint:e}=t;return e===void 0&&(t.endpoint=async()=>hZ(t.endpointProvider({Region:typeof t.region=="function"?await t.region():t.region,UseDualStack:typeof t.useDualstackEndpoint=="function"?await t.useDualstackEndpoint():t.useDualstackEndpoint,UseFIPS:typeof t.useFipsEndpoint=="function"?await t.useFipsEndpoint():t.useFipsEndpoint,Endpoint:void 0},{logger:t.logger}))),t},hZ=t=>z8e.parseUrl(t.url);yi.EndpointError=Nm.EndpointError;yi.isIpAddress=Nm.isIpAddress;yi.resolveEndpoint=Nm.resolveEndpoint;yi.awsEndpointFunctions=fZ;yi.getUserAgentPrefix=Y8e;yi.partition=mZ;yi.resolveDefaultAwsRegionalEndpointsConfig=Z8e;yi.setPartitionInfo=gZ;yi.toEndpointV1=hZ;yi.useDefaultPartitionInfo=J8e});var bZ,bo,Io,Fm,SZ,US,Lm,Mm,dc,OG,kG,EZ,yZ,_Z,IZ,AZ,Po,CZ,TZ,RZ,vZ,xZ,PZ,e5e,wZ,DZ=_(()=>{bZ="required",bo="fn",Io="argv",Fm="ref",SZ="isSet",US="booleanEquals",Lm="error",Mm="endpoint",dc="tree",OG="PartitionResult",kG="getAttr",EZ={[bZ]:!1,type:"string"},yZ={[bZ]:!0,default:!1,type:"boolean"},_Z={[Fm]:"Endpoint"},IZ={[bo]:US,[Io]:[{[Fm]:"UseFIPS"},!0]},AZ={[bo]:US,[Io]:[{[Fm]:"UseDualStack"},!0]},Po={},CZ={[bo]:kG,[Io]:[{[Fm]:OG},"supportsFIPS"]},TZ={[Fm]:OG},RZ={[bo]:US,[Io]:[!0,{[bo]:kG,[Io]:[TZ,"supportsDualStack"]}]},vZ=[IZ],xZ=[AZ],PZ=[{[Fm]:"Region"}],e5e={version:"1.0",parameters:{Region:EZ,UseDualStack:yZ,UseFIPS:yZ,Endpoint:EZ},rules:[{conditions:[{[bo]:SZ,[Io]:[_Z]}],rules:[{conditions:vZ,error:"Invalid Configuration: FIPS and custom endpoint are not supported",type:Lm},{conditions:xZ,error:"Invalid Configuration: Dualstack and custom endpoint are not supported",type:Lm},{endpoint:{url:_Z,properties:Po,headers:Po},type:Mm}],type:dc},{conditions:[{[bo]:SZ,[Io]:PZ}],rules:[{conditions:[{[bo]:"aws.partition",[Io]:PZ,assign:OG}],rules:[{conditions:[IZ,AZ],rules:[{conditions:[{[bo]:US,[Io]:[!0,CZ]},RZ],rules:[{endpoint:{url:"https://oidc-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:Po,headers:Po},type:Mm}],type:dc},{error:"FIPS and DualStack are enabled, but this partition does not support one or both",type:Lm}],type:dc},{conditions:vZ,rules:[{conditions:[{[bo]:US,[Io]:[CZ,!0]}],rules:[{conditions:[{[bo]:"stringEquals",[Io]:[{[bo]:kG,[Io]:[TZ,"name"]},"aws-us-gov"]}],endpoint:{url:"https://oidc.{Region}.amazonaws.com",properties:Po,headers:Po},type:Mm},{endpoint:{url:"https://oidc-fips.{Region}.{PartitionResult#dnsSuffix}",properties:Po,headers:Po},type:Mm}],type:dc},{error:"FIPS is enabled but this partition does not support FIPS",type:Lm}],type:dc},{conditions:xZ,rules:[{conditions:[RZ],rules:[{endpoint:{url:"https://oidc.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:Po,headers:Po},type:Mm}],type:dc},{error:"DualStack is enabled but this partition does not support DualStack",type:Lm}],type:dc},{endpoint:{url:"https://oidc.{Region}.{PartitionResult#dnsSuffix}",properties:Po,headers:Po},type:Mm}],type:dc}],type:dc},{error:"Invalid Configuration: Missing Region",type:Lm}]},wZ=e5e});var OZ,Bm,t5e,kZ,NZ=_(()=>{OZ=O(Ax()),Bm=require("@smithy/util-endpoints");DZ();t5e=new Bm.EndpointCache({size:50,params:["Endpoint","Region","UseDualStack","UseFIPS"]}),kZ=(t,e={})=>t5e.get(t,()=>(0,Bm.resolveEndpoint)(wZ,{endpointParams:t,logger:e.logger}));Bm.customEndpointFunctions.aws=OZ.awsEndpointFunctions});var LZ,Wr,Tx=_(()=>{LZ=require("@smithy/smithy-client"),Wr=class t extends LZ.ServiceException{constructor(e){super(e),Object.setPrototypeOf(this,t.prototype)}}});var qS,$S,GS,jS,VS,HS,zS,WS,KS,QS,XS,NG=_(()=>{Tx();qS=class t extends Wr{name="AccessDeniedException";$fault="client";error;reason;error_description;constructor(e){super({name:"AccessDeniedException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error,this.reason=e.reason,this.error_description=e.error_description}},$S=class t extends Wr{name="AuthorizationPendingException";$fault="client";error;error_description;constructor(e){super({name:"AuthorizationPendingException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error,this.error_description=e.error_description}},GS=class t extends Wr{name="ExpiredTokenException";$fault="client";error;error_description;constructor(e){super({name:"ExpiredTokenException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error,this.error_description=e.error_description}},jS=class t extends Wr{name="InternalServerException";$fault="server";error;error_description;constructor(e){super({name:"InternalServerException",$fault:"server",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error,this.error_description=e.error_description}},VS=class t extends Wr{name="InvalidClientException";$fault="client";error;error_description;constructor(e){super({name:"InvalidClientException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error,this.error_description=e.error_description}},HS=class t extends Wr{name="InvalidGrantException";$fault="client";error;error_description;constructor(e){super({name:"InvalidGrantException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error,this.error_description=e.error_description}},zS=class t extends Wr{name="InvalidRequestException";$fault="client";error;reason;error_description;constructor(e){super({name:"InvalidRequestException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error,this.reason=e.reason,this.error_description=e.error_description}},WS=class t extends Wr{name="InvalidScopeException";$fault="client";error;error_description;constructor(e){super({name:"InvalidScopeException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error,this.error_description=e.error_description}},KS=class t extends Wr{name="SlowDownException";$fault="client";error;error_description;constructor(e){super({name:"SlowDownException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error,this.error_description=e.error_description}},QS=class t extends Wr{name="UnauthorizedClientException";$fault="client";error;error_description;constructor(e){super({name:"UnauthorizedClientException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error,this.error_description=e.error_description}},XS=class t extends Wr{name="UnsupportedGrantTypeException";$fault="client";error;error_description;constructor(e){super({name:"UnsupportedGrantTypeException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error,this.error_description=e.error_description}}});var LG,r5e,n5e,s5e,o5e,i5e,a5e,c5e,u5e,l5e,d5e,p5e,m5e,g5e,f5e,h5e,S5e,E5e,y5e,_5e,C5e,pa,R5e,v5e,x5e,P5e,b5e,lr,I5e,_i,A5e,T5e,Ci,w5e,MZ,FZ,D5e,BZ,O5e,k5e,N5e,Pr,UZ,qZ,Ao,$Z,GZ,jZ,VZ,HZ,zZ,WZ,KZ,QZ,XZ,JZ,MG,L5e,M5e,F5e,B5e,YZ,ZZ,eee,FG,wx=_(()=>{LG=require("@smithy/core/schema");NG();Tx();r5e="AccessDeniedException",n5e="AuthorizationPendingException",s5e="AccessToken",o5e="ClientSecret",i5e="CreateToken",a5e="CreateTokenRequest",c5e="CreateTokenResponse",u5e="CodeVerifier",l5e="ExpiredTokenException",d5e="InvalidClientException",p5e="InvalidGrantException",m5e="InvalidRequestException",g5e="InternalServerException",f5e="InvalidScopeException",h5e="IdToken",S5e="RefreshToken",E5e="SlowDownException",y5e="UnauthorizedClientException",_5e="UnsupportedGrantTypeException",C5e="accessToken",pa="client",R5e="clientId",v5e="clientSecret",x5e="codeVerifier",P5e="code",b5e="deviceCode",lr="error",I5e="expiresIn",_i="error_description",A5e="grantType",T5e="http",Ci="httpError",w5e="idToken",MZ="reason",FZ="refreshToken",D5e="redirectUri",BZ="smithy.ts.sdk.synthetic.com.amazonaws.ssooidc",O5e="scope",k5e="server",N5e="tokenType",Pr="com.amazonaws.ssooidc",UZ=LG.TypeRegistry.for(BZ),qZ=[-3,BZ,"SSOOIDCServiceException",0,[],[]];UZ.registerError(qZ,Wr);Ao=LG.TypeRegistry.for(Pr),$Z=[-3,Pr,r5e,{[lr]:pa,[Ci]:400},[lr,MZ,_i],[0,0,0]];Ao.registerError($Z,qS);GZ=[-3,Pr,n5e,{[lr]:pa,[Ci]:400},[lr,_i],[0,0]];Ao.registerError(GZ,$S);jZ=[-3,Pr,l5e,{[lr]:pa,[Ci]:400},[lr,_i],[0,0]];Ao.registerError(jZ,GS);VZ=[-3,Pr,g5e,{[lr]:k5e,[Ci]:500},[lr,_i],[0,0]];Ao.registerError(VZ,jS);HZ=[-3,Pr,d5e,{[lr]:pa,[Ci]:401},[lr,_i],[0,0]];Ao.registerError(HZ,VS);zZ=[-3,Pr,p5e,{[lr]:pa,[Ci]:400},[lr,_i],[0,0]];Ao.registerError(zZ,HS);WZ=[-3,Pr,m5e,{[lr]:pa,[Ci]:400},[lr,MZ,_i],[0,0,0]];Ao.registerError(WZ,zS);KZ=[-3,Pr,f5e,{[lr]:pa,[Ci]:400},[lr,_i],[0,0]];Ao.registerError(KZ,WS);QZ=[-3,Pr,E5e,{[lr]:pa,[Ci]:400},[lr,_i],[0,0]];Ao.registerError(QZ,KS);XZ=[-3,Pr,y5e,{[lr]:pa,[Ci]:400},[lr,_i],[0,0]];Ao.registerError(XZ,QS);JZ=[-3,Pr,_5e,{[lr]:pa,[Ci]:400},[lr,_i],[0,0]];Ao.registerError(JZ,XS);MG=[UZ,Ao],L5e=[0,Pr,s5e,8,0],M5e=[0,Pr,o5e,8,0],F5e=[0,Pr,u5e,8,0],B5e=[0,Pr,h5e,8,0],YZ=[0,Pr,S5e,8,0],ZZ=[3,Pr,a5e,0,[R5e,v5e,A5e,b5e,P5e,FZ,O5e,D5e,x5e],[0,[()=>M5e,0],0,0,0,[()=>YZ,0],64,0,[()=>F5e,0]],3],eee=[3,Pr,c5e,0,[C5e,N5e,I5e,FZ,w5e],[[()=>L5e,0],0,1,[()=>YZ,0],[()=>B5e,0]]],FG=[9,Pr,i5e,{[T5e]:["POST","/token",200]},()=>ZZ,()=>eee]});var tee,ree,nee,Dx,Ox,see,oee=_(()=>{on();_d();tee=require("@smithy/core"),ree=require("@smithy/smithy-client"),nee=require("@smithy/url-parser"),Dx=require("@smithy/util-base64"),Ox=require("@smithy/util-utf8");wG();NZ();wx();see=t=>({apiVersion:"2019-06-10",base64Decoder:t?.base64Decoder??Dx.fromBase64,base64Encoder:t?.base64Encoder??Dx.toBase64,disableHostPrefix:t?.disableHostPrefix??!1,endpointProvider:t?.endpointProvider??kZ,extensions:t?.extensions??[],httpAuthSchemeProvider:t?.httpAuthSchemeProvider??Z7,httpAuthSchemes:t?.httpAuthSchemes??[{schemeId:"aws.auth#sigv4",identityProvider:e=>e.getIdentityProvider("aws.auth#sigv4"),signer:new En},{schemeId:"smithy.api#noAuth",identityProvider:e=>e.getIdentityProvider("smithy.api#noAuth")||(async()=>({})),signer:new tee.NoAuthSigner}],logger:t?.logger??new ree.NoOpLogger,protocol:t?.protocol??Iu,protocolSettings:t?.protocolSettings??{defaultNamespace:"com.amazonaws.ssooidc",errorTypeRegistries:MG,version:"2019-06-10",serviceTarget:"AWSSSOOIDCService"},serviceId:t?.serviceId??"SSO OIDC",urlParser:t?.urlParser??nee.parseUrl,utf8Decoder:t?.utf8Decoder??Ox.fromUtf8,utf8Encoder:t?.utf8Encoder??Ox.toUtf8})});var kx,Nu,iee,Nx,ku,Lx,Mx,aee,cee,uee,lee,dee=_(()=>{Ix();on();kx=O(km()),Nu=require("@smithy/config-resolver"),iee=require("@smithy/hash-node"),Nx=require("@smithy/middleware-retry"),ku=require("@smithy/node-config-provider"),Lx=require("@smithy/node-http-handler"),Mx=require("@smithy/smithy-client"),aee=require("@smithy/util-body-length-node"),cee=require("@smithy/util-defaults-mode-node"),uee=require("@smithy/util-retry");oee();lee=t=>{(0,Mx.emitWarningIfUnsupportedVersion)(process.version);let e=(0,cee.resolveDefaultsModeConfig)(t),r=()=>e().then(Mx.loadConfigsForDefaultMode),n=see(t);Cu(process.version);let s={profile:t?.profile,logger:n.logger};return{...n,...t,runtime:"node",defaultsMode:e,authSchemePreference:t?.authSchemePreference??(0,ku.loadConfig)(vu,s),bodyLengthChecker:t?.bodyLengthChecker??aee.calculateBodyLength,defaultUserAgentProvider:t?.defaultUserAgentProvider??(0,kx.createDefaultUserAgentProvider)({serviceId:n.serviceId,clientVersion:Om.version}),maxAttempts:t?.maxAttempts??(0,ku.loadConfig)(Nx.NODE_MAX_ATTEMPT_CONFIG_OPTIONS,t),region:t?.region??(0,ku.loadConfig)(Nu.NODE_REGION_CONFIG_OPTIONS,{...Nu.NODE_REGION_CONFIG_FILE_OPTIONS,...s}),requestHandler:Lx.NodeHttpHandler.create(t?.requestHandler??r),retryMode:t?.retryMode??(0,ku.loadConfig)({...Nx.NODE_RETRY_MODE_CONFIG_OPTIONS,default:async()=>(await r()).retryMode||uee.DEFAULT_RETRY_MODE},t),sha256:t?.sha256??iee.Hash.bind(null,"sha256"),streamCollector:t?.streamCollector??Lx.streamCollector,useDualstackEndpoint:t?.useDualstackEndpoint??(0,ku.loadConfig)(Nu.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS,s),useFipsEndpoint:t?.useFipsEndpoint??(0,ku.loadConfig)(Nu.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS,s),userAgentAppId:t?.userAgentAppId??(0,ku.loadConfig)(kx.NODE_APP_ID_CONFIG_OPTIONS,s)}}});var mee=b(Um=>{"use strict";Object.defineProperty(Um,"__esModule",{value:!0});Um.warning=void 0;Um.stsRegionDefaultResolver=q5e;var pee=require("@smithy/config-resolver"),U5e=require("@smithy/node-config-provider");function q5e(t={}){return(0,U5e.loadConfig)({...pee.NODE_REGION_CONFIG_OPTIONS,async default(){return Um.warning.silence||console.warn("@aws-sdk - WARN - default STS region of us-east-1 used. See @aws-sdk/credential-providers README and set a region explicitly."),"us-east-1"}},{...pee.NODE_REGION_CONFIG_FILE_OPTIONS,...t})}Um.warning={silence:!1}});var vd=b(ma=>{"use strict";var gee=mee(),JS=require("@smithy/config-resolver"),$5e=t=>({setRegion(e){t.region=e},region(){return t.region}}),G5e=t=>({region:t.region()});Object.defineProperty(ma,"NODE_REGION_CONFIG_FILE_OPTIONS",{enumerable:!0,get:function(){return JS.NODE_REGION_CONFIG_FILE_OPTIONS}});Object.defineProperty(ma,"NODE_REGION_CONFIG_OPTIONS",{enumerable:!0,get:function(){return JS.NODE_REGION_CONFIG_OPTIONS}});Object.defineProperty(ma,"REGION_ENV_NAME",{enumerable:!0,get:function(){return JS.REGION_ENV_NAME}});Object.defineProperty(ma,"REGION_INI_NAME",{enumerable:!0,get:function(){return JS.REGION_INI_NAME}});Object.defineProperty(ma,"resolveRegionConfig",{enumerable:!0,get:function(){return JS.resolveRegionConfig}});ma.getAwsRegionExtensionConfiguration=$5e;ma.resolveAwsRegionExtensionConfiguration=G5e;Object.keys(gee).forEach(function(t){t!=="default"&&!Object.prototype.hasOwnProperty.call(ma,t)&&Object.defineProperty(ma,t,{enumerable:!0,get:function(){return gee[t]}})})});var fee,hee,See=_(()=>{fee=t=>{let e=t.httpAuthSchemes,r=t.httpAuthSchemeProvider,n=t.credentials;return{setHttpAuthScheme(s){let o=e.findIndex(i=>i.schemeId===s.schemeId);o===-1?e.push(s):e.splice(o,1,s)},httpAuthSchemes(){return e},setHttpAuthSchemeProvider(s){r=s},httpAuthSchemeProvider(){return r},setCredentials(s){n=s},credentials(){return n}}},hee=t=>({httpAuthSchemes:t.httpAuthSchemes(),httpAuthSchemeProvider:t.httpAuthSchemeProvider(),credentials:t.credentials()})});var Fx,Bx,Ux,Eee,yee=_(()=>{Fx=O(vd()),Bx=require("@smithy/protocol-http"),Ux=require("@smithy/smithy-client");See();Eee=(t,e)=>{let r=Object.assign((0,Fx.getAwsRegionExtensionConfiguration)(t),(0,Ux.getDefaultExtensionConfiguration)(t),(0,Bx.getHttpHandlerExtensionConfiguration)(t),fee(t));return e.forEach(n=>n.configure(r)),Object.assign(t,(0,Fx.resolveAwsRegionExtensionConfiguration)(r),(0,Ux.resolveDefaultRuntimeConfig)(r),(0,Bx.resolveHttpHandlerRuntimeConfig)(r),hee(r))}});var qx,_ee,Cee,$x,Ree,qm,vee,xee,Pee,Gx,BG,YS,UG=_(()=>{qx=O(gm()),_ee=O(fm()),Cee=O(hm()),$x=O(Cd()),Ree=require("@smithy/config-resolver"),qm=require("@smithy/core"),vee=require("@smithy/core/schema"),xee=require("@smithy/middleware-content-length"),Pee=require("@smithy/middleware-endpoint"),Gx=require("@smithy/middleware-retry"),BG=require("@smithy/smithy-client");wG();DG();dee();yee();YS=class extends BG.Client{config;constructor(...[e]){let r=lee(e||{});super(r),this.initConfig=r;let n=tZ(r),s=(0,$x.resolveUserAgentConfig)(n),o=(0,Gx.resolveRetryConfig)(s),i=(0,Ree.resolveRegionConfig)(o),a=(0,qx.resolveHostHeaderConfig)(i),c=(0,Pee.resolveEndpointConfig)(a),u=eZ(c),l=Eee(u,e?.extensions||[]);this.config=l,this.middlewareStack.use((0,vee.getSchemaSerdePlugin)(this.config)),this.middlewareStack.use((0,$x.getUserAgentPlugin)(this.config)),this.middlewareStack.use((0,Gx.getRetryPlugin)(this.config)),this.middlewareStack.use((0,xee.getContentLengthPlugin)(this.config)),this.middlewareStack.use((0,qx.getHostHeaderPlugin)(this.config)),this.middlewareStack.use((0,_ee.getLoggerPlugin)(this.config)),this.middlewareStack.use((0,Cee.getRecursionDetectionPlugin)(this.config)),this.middlewareStack.use((0,qm.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config,{httpAuthSchemeParametersProvider:Y7,identityProviderConfigProvider:async d=>new qm.DefaultIdentityProviderConfig({"aws.auth#sigv4":d.credentials})})),this.middlewareStack.use((0,qm.getHttpSigningPlugin)(this.config))}destroy(){super.destroy()}}});var bee,qG,ZS,$G=_(()=>{bee=require("@smithy/middleware-endpoint"),qG=require("@smithy/smithy-client");DG();wx();ZS=class extends qG.Command.classBuilder().ep(rZ).m(function(e,r,n,s){return[(0,bee.getEndpointPlugin)(n,e.getEndpointParameterInstructions())]}).s("AWSSSOOIDCService","CreateToken",{}).n("SSOOIDCClient","CreateTokenCommand").sc(FG).build(){}});var Iee,j5e,jx,Aee=_(()=>{Iee=require("@smithy/smithy-client");$G();UG();j5e={CreateTokenCommand:ZS},jx=class extends YS{};(0,Iee.createAggregatedClient)(j5e,jx)});var Tee=_(()=>{$G()});var V5e,H5e,wee=_(()=>{V5e={KMS_ACCESS_DENIED:"KMS_AccessDeniedException"},H5e={KMS_DISABLED_KEY:"KMS_DisabledException",KMS_INVALID_KEY_USAGE:"KMS_InvalidKeyUsageException",KMS_INVALID_STATE:"KMS_InvalidStateException",KMS_KEY_NOT_FOUND:"KMS_NotFoundException"}});var Dee=_(()=>{});var GG={};wt(GG,{$Command:()=>qG.Command,AccessDeniedException:()=>qS,AccessDeniedException$:()=>$Z,AccessDeniedExceptionReason:()=>V5e,AuthorizationPendingException:()=>$S,AuthorizationPendingException$:()=>GZ,CreateToken$:()=>FG,CreateTokenCommand:()=>ZS,CreateTokenRequest$:()=>ZZ,CreateTokenResponse$:()=>eee,ExpiredTokenException:()=>GS,ExpiredTokenException$:()=>jZ,InternalServerException:()=>jS,InternalServerException$:()=>VZ,InvalidClientException:()=>VS,InvalidClientException$:()=>HZ,InvalidGrantException:()=>HS,InvalidGrantException$:()=>zZ,InvalidRequestException:()=>zS,InvalidRequestException$:()=>WZ,InvalidRequestExceptionReason:()=>H5e,InvalidScopeException:()=>WS,InvalidScopeException$:()=>KZ,SSOOIDC:()=>jx,SSOOIDCClient:()=>YS,SSOOIDCServiceException:()=>Wr,SSOOIDCServiceException$:()=>qZ,SlowDownException:()=>KS,SlowDownException$:()=>QZ,UnauthorizedClientException:()=>QS,UnauthorizedClientException$:()=>XZ,UnsupportedGrantTypeException:()=>XS,UnsupportedGrantTypeException$:()=>JZ,__Client:()=>BG.Client,errorTypeRegistries:()=>MG});var jG=_(()=>{UG();Aee();Tee();wx();wee();NG();Dee();Tx()});var Lee=b(tE=>{"use strict";var z5e=(vo(),ue(cc)),W5e=(oG(),ue(zY)),$s=require("@smithy/property-provider"),eE=require("@smithy/shared-ini-file-loader"),K5e=require("fs"),Q5e=({logger:t,signingName:e}={})=>async()=>{if(t?.debug?.("@aws-sdk/token-providers - fromEnvSigningName"),!e)throw new $s.TokenProviderError("Please pass 'signingName' to compute environment variable key",{logger:t});let r=W5e.getBearerTokenEnvKey(e);if(!(r in process.env))throw new $s.TokenProviderError(`Token not present in '${r}' environment variable`,{logger:t});let n={token:process.env[r]};return z5e.setTokenFeature(n,"BEARER_SERVICE_ENV_VARS","3"),n},X5e=5*60*1e3,VG="To refresh this SSO session run 'aws sso login' with the corresponding profile.",J5e=async(t,e={},r)=>{let{SSOOIDCClient:n}=await Promise.resolve().then(()=>(jG(),GG)),s=i=>e.clientConfig?.[i]??e.parentClientConfig?.[i]??r?.[i];return new n(Object.assign({},e.clientConfig??{},{region:t??e.clientConfig?.region,logger:s("logger"),userAgentAppId:s("userAgentAppId")}))},Y5e=async(t,e,r={},n)=>{let{CreateTokenCommand:s}=await Promise.resolve().then(()=>(jG(),GG));return(await J5e(e,r,n)).send(new s({clientId:t.clientId,clientSecret:t.clientSecret,refreshToken:t.refreshToken,grantType:"refresh_token"}))},Oee=t=>{if(t.expiration&&t.expiration.getTime(){if(typeof e>"u")throw new $s.TokenProviderError(`Value not present for '${t}' in SSO Token${r?". Cannot refresh":""}. ${VG}`,!1)},{writeFile:Z5e}=K5e.promises,eQe=(t,e)=>{let r=eE.getSSOTokenFilepath(t),n=JSON.stringify(e,null,2);return Z5e(r,n)},kee=new Date(0),Nee=(t={})=>async({callerClientConfig:e}={})=>{t.logger?.debug("@aws-sdk/token-providers - fromSso");let r=await eE.parseKnownFiles(t),n=eE.getProfileName({profile:t.profile??e?.profile}),s=r[n];if(s){if(!s.sso_session)throw new $s.TokenProviderError(`Profile '${n}' is missing required property 'sso_session'.`)}else throw new $s.TokenProviderError(`Profile '${n}' could not be found in shared credentials file.`,!1);let o=s.sso_session,a=(await eE.loadSsoSessionData(t))[o];if(!a)throw new $s.TokenProviderError(`Sso session '${o}' could not be found in shared credentials file.`,!1);for(let g of["sso_start_url","sso_region"])if(!a[g])throw new $s.TokenProviderError(`Sso session '${o}' is missing required property '${g}'.`,!1);a.sso_start_url;let c=a.sso_region,u;try{u=await eE.getSSOTokenFromFile(o)}catch{throw new $s.TokenProviderError(`The SSO session token associated with profile=${n} was not found or is invalid. ${VG}`,!1)}xd("accessToken",u.accessToken),xd("expiresAt",u.expiresAt);let{accessToken:l,expiresAt:d}=u,p={token:l,expiration:new Date(d)};if(p.expiration.getTime()-Date.now()>X5e)return p;if(Date.now()-kee.getTime()<30*1e3)return Oee(p),p;xd("clientId",u.clientId,!0),xd("clientSecret",u.clientSecret,!0),xd("refreshToken",u.refreshToken,!0);try{kee.setTime(Date.now());let g=await Y5e(u,c,t,e);xd("accessToken",g.accessToken),xd("expiresIn",g.expiresIn);let y=new Date(Date.now()+g.expiresIn*1e3);try{await eQe(o,{...u,accessToken:g.accessToken,expiresAt:y.toISOString(),refreshToken:g.refreshToken})}catch{}return{token:g.accessToken,expiration:y}}catch{return Oee(p),p}},tQe=({token:t,logger:e})=>async()=>{if(e?.debug("@aws-sdk/token-providers - fromStatic"),!t||!t.token)throw new $s.TokenProviderError("Please pass a valid token to fromStatic",!1);return t},rQe=(t={})=>$s.memoize($s.chain(Nee(t),async()=>{throw new $s.TokenProviderError("Could not load token from any providers",!1)}),e=>e.expiration!==void 0&&e.expiration.getTime()-Date.now()<3e5,e=>e.expiration!==void 0);tE.fromEnvSigningName=Q5e;tE.fromSso=Nee;tE.fromStatic=tQe;tE.nodeProvider=rQe});var zG=b(Lu=>{"use strict";Object.defineProperty(Lu,"__esModule",{value:!0});Lu.resolveHttpAuthSchemeConfig=Lu.defaultSSOHttpAuthSchemeProvider=Lu.defaultSSOHttpAuthSchemeParametersProvider=void 0;var nQe=(on(),ue(wu)),HG=require("@smithy/util-middleware"),sQe=async(t,e,r)=>({operation:(0,HG.getSmithyContext)(e).operation,region:await(0,HG.normalizeProvider)(t.region)()||(()=>{throw new Error("expected `region` to be configured for `aws.auth#sigv4`")})()});Lu.defaultSSOHttpAuthSchemeParametersProvider=sQe;function oQe(t){return{schemeId:"aws.auth#sigv4",signingProperties:{name:"awsssoportal",region:t.region},propertiesExtractor:(e,r)=>({signingProperties:{config:e,context:r}})}}function Vx(t){return{schemeId:"smithy.api#noAuth"}}var iQe=t=>{let e=[];switch(t.operation){case"GetRoleCredentials":{e.push(Vx(t));break}case"ListAccountRoles":{e.push(Vx(t));break}case"ListAccounts":{e.push(Vx(t));break}case"Logout":{e.push(Vx(t));break}default:e.push(oQe(t))}return e};Lu.defaultSSOHttpAuthSchemeProvider=iQe;var aQe=t=>{let e=(0,nQe.resolveAwsSdkSigV4Config)(t);return Object.assign(e,{authSchemePreference:(0,HG.normalizeProvider)(t.authSchemePreference??[])})};Lu.resolveHttpAuthSchemeConfig=aQe});var Mee=b((A$r,cQe)=>{cQe.exports={name:"@aws-sdk/client-sso",description:"AWS SDK for JavaScript Sso Client for Node.js, Browser and React Native",version:"3.996.0",scripts:{build:"concurrently 'yarn:build:types' 'yarn:build:es' && yarn build:cjs","build:cjs":"node ../../scripts/compilation/inline client-sso","build:es":"tsc -p tsconfig.es.json","build:include:deps":'yarn g:turbo run build -F="$npm_package_name"',"build:types":"tsc -p tsconfig.types.json","build:types:downlevel":"downlevel-dts dist-types dist-types/ts3.4",clean:"premove dist-cjs dist-es dist-types tsconfig.cjs.tsbuildinfo tsconfig.es.tsbuildinfo tsconfig.types.tsbuildinfo","extract:docs":"api-extractor run --local","generate:client":"node ../../scripts/generate-clients/single-service --solo sso","test:index":"tsc --noEmit ./test/index-types.ts && node ./test/index-objects.spec.mjs"},main:"./dist-cjs/index.js",types:"./dist-types/index.d.ts",module:"./dist-es/index.js",sideEffects:!1,dependencies:{"@aws-crypto/sha256-browser":"5.2.0","@aws-crypto/sha256-js":"5.2.0","@aws-sdk/core":"^3.973.12","@aws-sdk/middleware-host-header":"^3.972.3","@aws-sdk/middleware-logger":"^3.972.3","@aws-sdk/middleware-recursion-detection":"^3.972.3","@aws-sdk/middleware-user-agent":"^3.972.12","@aws-sdk/region-config-resolver":"^3.972.3","@aws-sdk/types":"^3.973.1","@aws-sdk/util-endpoints":"3.996.0","@aws-sdk/util-user-agent-browser":"^3.972.3","@aws-sdk/util-user-agent-node":"^3.972.11","@smithy/config-resolver":"^4.4.6","@smithy/core":"^3.23.2","@smithy/fetch-http-handler":"^5.3.9","@smithy/hash-node":"^4.2.8","@smithy/invalid-dependency":"^4.2.8","@smithy/middleware-content-length":"^4.2.8","@smithy/middleware-endpoint":"^4.4.16","@smithy/middleware-retry":"^4.4.33","@smithy/middleware-serde":"^4.2.9","@smithy/middleware-stack":"^4.2.8","@smithy/node-config-provider":"^4.3.8","@smithy/node-http-handler":"^4.4.10","@smithy/protocol-http":"^5.3.8","@smithy/smithy-client":"^4.11.5","@smithy/types":"^4.12.0","@smithy/url-parser":"^4.2.8","@smithy/util-base64":"^4.3.0","@smithy/util-body-length-browser":"^4.2.0","@smithy/util-body-length-node":"^4.2.1","@smithy/util-defaults-mode-browser":"^4.3.32","@smithy/util-defaults-mode-node":"^4.2.35","@smithy/util-endpoints":"^3.2.8","@smithy/util-middleware":"^4.2.8","@smithy/util-retry":"^4.2.8","@smithy/util-utf8":"^4.2.0",tslib:"^2.6.2"},devDependencies:{"@tsconfig/node20":"20.1.8","@types/node":"^20.14.8",concurrently:"7.0.0","downlevel-dts":"0.10.1",premove:"4.0.0",typescript:"~5.8.3"},engines:{node:">=20.0.0"},typesVersions:{"<4.0":{"dist-types/*":["dist-types/ts3.4/*"]}},files:["dist-*/**"],author:{name:"AWS SDK for JavaScript Team",url:"https://aws.amazon.com/javascript/"},license:"Apache-2.0",browser:{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.browser"},"react-native":{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.native"},homepage:"https://github.com/aws/aws-sdk-js-v3/tree/main/clients/client-sso",repository:{type:"git",url:"https://github.com/aws/aws-sdk-js-v3.git",directory:"clients/client-sso"}}});var zee=b(Ri=>{"use strict";var $m=require("@smithy/util-endpoints"),uQe=require("@smithy/url-parser"),Bee=(t,e=!1)=>{if(e){for(let r of t.split("."))if(!Bee(r))return!1;return!0}return!(!$m.isValidHostLabel(t)||t.length<3||t.length>63||t!==t.toLowerCase()||$m.isIpAddress(t))},Fee=":",lQe="/",dQe=t=>{let e=t.split(Fee);if(e.length<6)return null;let[r,n,s,o,i,...a]=e;if(r!=="arn"||n===""||s===""||a.join(Fee)==="")return null;let c=a.map(u=>u.split(lQe)).flat();return{partition:n,service:s,region:o,accountId:i,resourceId:c}},pQe=[{id:"aws",outputs:{dnsSuffix:"amazonaws.com",dualStackDnsSuffix:"api.aws",implicitGlobalRegion:"us-east-1",name:"aws",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^(us|eu|ap|sa|ca|me|af|il|mx)\\-\\w+\\-\\d+$",regions:{"af-south-1":{description:"Africa (Cape Town)"},"ap-east-1":{description:"Asia Pacific (Hong Kong)"},"ap-east-2":{description:"Asia Pacific (Taipei)"},"ap-northeast-1":{description:"Asia Pacific (Tokyo)"},"ap-northeast-2":{description:"Asia Pacific (Seoul)"},"ap-northeast-3":{description:"Asia Pacific (Osaka)"},"ap-south-1":{description:"Asia Pacific (Mumbai)"},"ap-south-2":{description:"Asia Pacific (Hyderabad)"},"ap-southeast-1":{description:"Asia Pacific (Singapore)"},"ap-southeast-2":{description:"Asia Pacific (Sydney)"},"ap-southeast-3":{description:"Asia Pacific (Jakarta)"},"ap-southeast-4":{description:"Asia Pacific (Melbourne)"},"ap-southeast-5":{description:"Asia Pacific (Malaysia)"},"ap-southeast-6":{description:"Asia Pacific (New Zealand)"},"ap-southeast-7":{description:"Asia Pacific (Thailand)"},"aws-global":{description:"aws global region"},"ca-central-1":{description:"Canada (Central)"},"ca-west-1":{description:"Canada West (Calgary)"},"eu-central-1":{description:"Europe (Frankfurt)"},"eu-central-2":{description:"Europe (Zurich)"},"eu-north-1":{description:"Europe (Stockholm)"},"eu-south-1":{description:"Europe (Milan)"},"eu-south-2":{description:"Europe (Spain)"},"eu-west-1":{description:"Europe (Ireland)"},"eu-west-2":{description:"Europe (London)"},"eu-west-3":{description:"Europe (Paris)"},"il-central-1":{description:"Israel (Tel Aviv)"},"me-central-1":{description:"Middle East (UAE)"},"me-south-1":{description:"Middle East (Bahrain)"},"mx-central-1":{description:"Mexico (Central)"},"sa-east-1":{description:"South America (Sao Paulo)"},"us-east-1":{description:"US East (N. Virginia)"},"us-east-2":{description:"US East (Ohio)"},"us-west-1":{description:"US West (N. California)"},"us-west-2":{description:"US West (Oregon)"}}},{id:"aws-cn",outputs:{dnsSuffix:"amazonaws.com.cn",dualStackDnsSuffix:"api.amazonwebservices.com.cn",implicitGlobalRegion:"cn-northwest-1",name:"aws-cn",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^cn\\-\\w+\\-\\d+$",regions:{"aws-cn-global":{description:"aws-cn global region"},"cn-north-1":{description:"China (Beijing)"},"cn-northwest-1":{description:"China (Ningxia)"}}},{id:"aws-eusc",outputs:{dnsSuffix:"amazonaws.eu",dualStackDnsSuffix:"api.amazonwebservices.eu",implicitGlobalRegion:"eusc-de-east-1",name:"aws-eusc",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^eusc\\-(de)\\-\\w+\\-\\d+$",regions:{"eusc-de-east-1":{description:"AWS European Sovereign Cloud (Germany)"}}},{id:"aws-iso",outputs:{dnsSuffix:"c2s.ic.gov",dualStackDnsSuffix:"api.aws.ic.gov",implicitGlobalRegion:"us-iso-east-1",name:"aws-iso",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^us\\-iso\\-\\w+\\-\\d+$",regions:{"aws-iso-global":{description:"aws-iso global region"},"us-iso-east-1":{description:"US ISO East"},"us-iso-west-1":{description:"US ISO WEST"}}},{id:"aws-iso-b",outputs:{dnsSuffix:"sc2s.sgov.gov",dualStackDnsSuffix:"api.aws.scloud",implicitGlobalRegion:"us-isob-east-1",name:"aws-iso-b",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^us\\-isob\\-\\w+\\-\\d+$",regions:{"aws-iso-b-global":{description:"aws-iso-b global region"},"us-isob-east-1":{description:"US ISOB East (Ohio)"},"us-isob-west-1":{description:"US ISOB West"}}},{id:"aws-iso-e",outputs:{dnsSuffix:"cloud.adc-e.uk",dualStackDnsSuffix:"api.cloud-aws.adc-e.uk",implicitGlobalRegion:"eu-isoe-west-1",name:"aws-iso-e",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^eu\\-isoe\\-\\w+\\-\\d+$",regions:{"aws-iso-e-global":{description:"aws-iso-e global region"},"eu-isoe-west-1":{description:"EU ISOE West"}}},{id:"aws-iso-f",outputs:{dnsSuffix:"csp.hci.ic.gov",dualStackDnsSuffix:"api.aws.hci.ic.gov",implicitGlobalRegion:"us-isof-south-1",name:"aws-iso-f",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^us\\-isof\\-\\w+\\-\\d+$",regions:{"aws-iso-f-global":{description:"aws-iso-f global region"},"us-isof-east-1":{description:"US ISOF EAST"},"us-isof-south-1":{description:"US ISOF SOUTH"}}},{id:"aws-us-gov",outputs:{dnsSuffix:"amazonaws.com",dualStackDnsSuffix:"api.aws",implicitGlobalRegion:"us-gov-west-1",name:"aws-us-gov",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^us\\-gov\\-\\w+\\-\\d+$",regions:{"aws-us-gov-global":{description:"aws-us-gov global region"},"us-gov-east-1":{description:"AWS GovCloud (US-East)"},"us-gov-west-1":{description:"AWS GovCloud (US-West)"}}}],mQe="1.1",Uee={partitions:pQe,version:mQe},qee=Uee,$ee="",Gee=t=>{let{partitions:e}=qee;for(let n of e){let{regions:s,outputs:o}=n;for(let[i,a]of Object.entries(s))if(i===t)return{...o,...a}}for(let n of e){let{regionRegex:s,outputs:o}=n;if(new RegExp(s).test(t))return{...o}}let r=e.find(n=>n.id==="aws");if(!r)throw new Error("Provided region was not found in the partition array or regex, and default partition with id 'aws' doesn't exist.");return{...r.outputs}},jee=(t,e="")=>{qee=t,$ee=e},gQe=()=>{jee(Uee,"")},fQe=()=>$ee,Vee={isVirtualHostableS3Bucket:Bee,parseArn:dQe,partition:Gee};$m.customEndpointFunctions.aws=Vee;var hQe=t=>{if(typeof t.endpointProvider!="function")throw new Error("@aws-sdk/util-endpoint - endpointProvider and endpoint missing in config for this client.");let{endpoint:e}=t;return e===void 0&&(t.endpoint=async()=>Hee(t.endpointProvider({Region:typeof t.region=="function"?await t.region():t.region,UseDualStack:typeof t.useDualstackEndpoint=="function"?await t.useDualstackEndpoint():t.useDualstackEndpoint,UseFIPS:typeof t.useFipsEndpoint=="function"?await t.useFipsEndpoint():t.useFipsEndpoint,Endpoint:void 0},{logger:t.logger}))),t},Hee=t=>uQe.parseUrl(t.url);Ri.EndpointError=$m.EndpointError;Ri.isIpAddress=$m.isIpAddress;Ri.resolveEndpoint=$m.resolveEndpoint;Ri.awsEndpointFunctions=Vee;Ri.getUserAgentPrefix=fQe;Ri.partition=Gee;Ri.resolveDefaultAwsRegionalEndpointsConfig=hQe;Ri.setPartitionInfo=jee;Ri.toEndpointV1=Hee;Ri.useDefaultPartitionInfo=gQe});var ate=b(Hx=>{"use strict";Object.defineProperty(Hx,"__esModule",{value:!0});Hx.ruleSet=void 0;var nte="required",wo="fn",Do="argv",Vm="ref",Wee=!0,Kee="isSet",rE="booleanEquals",Gm="error",jm="endpoint",pc="tree",WG="PartitionResult",KG="getAttr",Qee={[nte]:!1,type:"string"},Xee={[nte]:!0,default:!1,type:"boolean"},Jee={[Vm]:"Endpoint"},ste={[wo]:rE,[Do]:[{[Vm]:"UseFIPS"},!0]},ote={[wo]:rE,[Do]:[{[Vm]:"UseDualStack"},!0]},To={},Yee={[wo]:KG,[Do]:[{[Vm]:WG},"supportsFIPS"]},ite={[Vm]:WG},Zee={[wo]:rE,[Do]:[!0,{[wo]:KG,[Do]:[ite,"supportsDualStack"]}]},ete=[ste],tte=[ote],rte=[{[Vm]:"Region"}],SQe={version:"1.0",parameters:{Region:Qee,UseDualStack:Xee,UseFIPS:Xee,Endpoint:Qee},rules:[{conditions:[{[wo]:Kee,[Do]:[Jee]}],rules:[{conditions:ete,error:"Invalid Configuration: FIPS and custom endpoint are not supported",type:Gm},{conditions:tte,error:"Invalid Configuration: Dualstack and custom endpoint are not supported",type:Gm},{endpoint:{url:Jee,properties:To,headers:To},type:jm}],type:pc},{conditions:[{[wo]:Kee,[Do]:rte}],rules:[{conditions:[{[wo]:"aws.partition",[Do]:rte,assign:WG}],rules:[{conditions:[ste,ote],rules:[{conditions:[{[wo]:rE,[Do]:[Wee,Yee]},Zee],rules:[{endpoint:{url:"https://portal.sso-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:To,headers:To},type:jm}],type:pc},{error:"FIPS and DualStack are enabled, but this partition does not support one or both",type:Gm}],type:pc},{conditions:ete,rules:[{conditions:[{[wo]:rE,[Do]:[Yee,Wee]}],rules:[{conditions:[{[wo]:"stringEquals",[Do]:[{[wo]:KG,[Do]:[ite,"name"]},"aws-us-gov"]}],endpoint:{url:"https://portal.sso.{Region}.amazonaws.com",properties:To,headers:To},type:jm},{endpoint:{url:"https://portal.sso-fips.{Region}.{PartitionResult#dnsSuffix}",properties:To,headers:To},type:jm}],type:pc},{error:"FIPS is enabled but this partition does not support FIPS",type:Gm}],type:pc},{conditions:tte,rules:[{conditions:[Zee],rules:[{endpoint:{url:"https://portal.sso.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:To,headers:To},type:jm}],type:pc},{error:"DualStack is enabled but this partition does not support DualStack",type:Gm}],type:pc},{endpoint:{url:"https://portal.sso.{Region}.{PartitionResult#dnsSuffix}",properties:To,headers:To},type:jm}],type:pc}],type:pc},{error:"Invalid Configuration: Missing Region",type:Gm}]};Hx.ruleSet=SQe});var cte=b(zx=>{"use strict";Object.defineProperty(zx,"__esModule",{value:!0});zx.defaultEndpointResolver=void 0;var EQe=zee(),QG=require("@smithy/util-endpoints"),yQe=ate(),_Qe=new QG.EndpointCache({size:50,params:["Endpoint","Region","UseDualStack","UseFIPS"]}),CQe=(t,e={})=>_Qe.get(t,()=>(0,QG.resolveEndpoint)(yQe.ruleSet,{endpointParams:t,logger:e.logger}));zx.defaultEndpointResolver=CQe;QG.customEndpointFunctions.aws=EQe.awsEndpointFunctions});var Wx=b(Hm=>{"use strict";Object.defineProperty(Hm,"__esModule",{value:!0});Hm.SSOServiceException=Hm.__ServiceException=void 0;var ute=require("@smithy/smithy-client");Object.defineProperty(Hm,"__ServiceException",{enumerable:!0,get:function(){return ute.ServiceException}});var XG=class t extends ute.ServiceException{constructor(e){super(e),Object.setPrototypeOf(this,t.prototype)}};Hm.SSOServiceException=XG});var t2=b(ga=>{"use strict";Object.defineProperty(ga,"__esModule",{value:!0});ga.UnauthorizedException=ga.TooManyRequestsException=ga.ResourceNotFoundException=ga.InvalidRequestException=void 0;var Kx=Wx(),JG=class t extends Kx.SSOServiceException{name="InvalidRequestException";$fault="client";constructor(e){super({name:"InvalidRequestException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}};ga.InvalidRequestException=JG;var YG=class t extends Kx.SSOServiceException{name="ResourceNotFoundException";$fault="client";constructor(e){super({name:"ResourceNotFoundException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}};ga.ResourceNotFoundException=YG;var ZG=class t extends Kx.SSOServiceException{name="TooManyRequestsException";$fault="client";constructor(e){super({name:"TooManyRequestsException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}};ga.TooManyRequestsException=ZG;var e2=class t extends Kx.SSOServiceException{name="UnauthorizedException";$fault="client";constructor(e){super({name:"UnauthorizedException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}};ga.UnauthorizedException=e2});var r2=b(ye=>{"use strict";Object.defineProperty(ye,"__esModule",{value:!0});ye.Logout$=ye.ListAccounts$=ye.ListAccountRoles$=ye.GetRoleCredentials$=ye.RoleInfo$=ye.RoleCredentials$=ye.LogoutRequest$=ye.ListAccountsResponse$=ye.ListAccountsRequest$=ye.ListAccountRolesResponse$=ye.ListAccountRolesRequest$=ye.GetRoleCredentialsResponse$=ye.GetRoleCredentialsRequest$=ye.AccountInfo$=ye.errorTypeRegistries=ye.UnauthorizedException$=ye.TooManyRequestsException$=ye.ResourceNotFoundException$=ye.InvalidRequestException$=ye.SSOServiceException$=void 0;var RQe="AccountInfo",vQe="AccountListType",xQe="AccessTokenType",PQe="GetRoleCredentials",bQe="GetRoleCredentialsRequest",IQe="GetRoleCredentialsResponse",AQe="InvalidRequestException",TQe="Logout",wQe="ListAccounts",DQe="ListAccountsRequest",OQe="ListAccountRolesRequest",kQe="ListAccountRolesResponse",NQe="ListAccountsResponse",LQe="ListAccountRoles",MQe="LogoutRequest",FQe="RoleCredentials",BQe="RoleInfo",UQe="RoleListType",qQe="ResourceNotFoundException",$Qe="SecretAccessKeyType",GQe="SessionTokenType",jQe="TooManyRequestsException",VQe="UnauthorizedException",Qx="accountId",HQe="accessKeyId",zQe="accountList",WQe="accountName",Xx="accessToken",lte="account_id",Jx="client",Yx="error",KQe="emailAddress",QQe="expiration",Zx="http",eP="httpError",tP="httpHeader",Pd="httpQuery",rP="message",dte="maxResults",pte="max_result",nP="nextToken",mte="next_token",XQe="roleCredentials",JQe="roleList",gte="roleName",YQe="role_name",fte="smithy.ts.sdk.synthetic.com.amazonaws.sso",ZQe="secretAccessKey",eXe="sessionToken",sP="x-amz-sso_bearer_token",zt="com.amazonaws.sso",hte=require("@smithy/core/schema"),oP=t2(),tXe=Wx(),Ste=hte.TypeRegistry.for(fte);ye.SSOServiceException$=[-3,fte,"SSOServiceException",0,[],[]];Ste.registerError(ye.SSOServiceException$,tXe.SSOServiceException);var nE=hte.TypeRegistry.for(zt);ye.InvalidRequestException$=[-3,zt,AQe,{[Yx]:Jx,[eP]:400},[rP],[0]];nE.registerError(ye.InvalidRequestException$,oP.InvalidRequestException);ye.ResourceNotFoundException$=[-3,zt,qQe,{[Yx]:Jx,[eP]:404},[rP],[0]];nE.registerError(ye.ResourceNotFoundException$,oP.ResourceNotFoundException);ye.TooManyRequestsException$=[-3,zt,jQe,{[Yx]:Jx,[eP]:429},[rP],[0]];nE.registerError(ye.TooManyRequestsException$,oP.TooManyRequestsException);ye.UnauthorizedException$=[-3,zt,VQe,{[Yx]:Jx,[eP]:401},[rP],[0]];nE.registerError(ye.UnauthorizedException$,oP.UnauthorizedException);ye.errorTypeRegistries=[Ste,nE];var iP=[0,zt,xQe,8,0],rXe=[0,zt,$Qe,8,0],nXe=[0,zt,GQe,8,0];ye.AccountInfo$=[3,zt,RQe,0,[Qx,WQe,KQe],[0,0,0]];ye.GetRoleCredentialsRequest$=[3,zt,bQe,0,[gte,Qx,Xx],[[0,{[Pd]:YQe}],[0,{[Pd]:lte}],[()=>iP,{[tP]:sP}]],3];ye.GetRoleCredentialsResponse$=[3,zt,IQe,0,[XQe],[[()=>ye.RoleCredentials$,0]]];ye.ListAccountRolesRequest$=[3,zt,OQe,0,[Xx,Qx,nP,dte],[[()=>iP,{[tP]:sP}],[0,{[Pd]:lte}],[0,{[Pd]:mte}],[1,{[Pd]:pte}]],2];ye.ListAccountRolesResponse$=[3,zt,kQe,0,[nP,JQe],[0,()=>iXe]];ye.ListAccountsRequest$=[3,zt,DQe,0,[Xx,nP,dte],[[()=>iP,{[tP]:sP}],[0,{[Pd]:mte}],[1,{[Pd]:pte}]],1];ye.ListAccountsResponse$=[3,zt,NQe,0,[nP,zQe],[0,()=>oXe]];ye.LogoutRequest$=[3,zt,MQe,0,[Xx],[[()=>iP,{[tP]:sP}]],1];ye.RoleCredentials$=[3,zt,FQe,0,[HQe,ZQe,eXe,QQe],[0,[()=>rXe,0],[()=>nXe,0],1]];ye.RoleInfo$=[3,zt,BQe,0,[gte,Qx],[0,0]];var sXe="unit",oXe=[1,zt,vQe,0,()=>ye.AccountInfo$],iXe=[1,zt,UQe,0,()=>ye.RoleInfo$];ye.GetRoleCredentials$=[9,zt,PQe,{[Zx]:["GET","/federation/credentials",200]},()=>ye.GetRoleCredentialsRequest$,()=>ye.GetRoleCredentialsResponse$];ye.ListAccountRoles$=[9,zt,LQe,{[Zx]:["GET","/assignment/roles",200]},()=>ye.ListAccountRolesRequest$,()=>ye.ListAccountRolesResponse$];ye.ListAccounts$=[9,zt,wQe,{[Zx]:["GET","/assignment/accounts",200]},()=>ye.ListAccountsRequest$,()=>ye.ListAccountsResponse$];ye.Logout$=[9,zt,TQe,{[Zx]:["POST","/logout",200]},()=>ye.LogoutRequest$,()=>sXe]});var _te=b(aP=>{"use strict";Object.defineProperty(aP,"__esModule",{value:!0});aP.getRuntimeConfig=void 0;var aXe=(on(),ue(wu)),cXe=(_d(),ue(RG)),uXe=require("@smithy/core"),lXe=require("@smithy/smithy-client"),dXe=require("@smithy/url-parser"),Ete=require("@smithy/util-base64"),yte=require("@smithy/util-utf8"),pXe=zG(),mXe=cte(),gXe=r2(),fXe=t=>({apiVersion:"2019-06-10",base64Decoder:t?.base64Decoder??Ete.fromBase64,base64Encoder:t?.base64Encoder??Ete.toBase64,disableHostPrefix:t?.disableHostPrefix??!1,endpointProvider:t?.endpointProvider??mXe.defaultEndpointResolver,extensions:t?.extensions??[],httpAuthSchemeProvider:t?.httpAuthSchemeProvider??pXe.defaultSSOHttpAuthSchemeProvider,httpAuthSchemes:t?.httpAuthSchemes??[{schemeId:"aws.auth#sigv4",identityProvider:e=>e.getIdentityProvider("aws.auth#sigv4"),signer:new aXe.AwsSdkSigV4Signer},{schemeId:"smithy.api#noAuth",identityProvider:e=>e.getIdentityProvider("smithy.api#noAuth")||(async()=>({})),signer:new uXe.NoAuthSigner}],logger:t?.logger??new lXe.NoOpLogger,protocol:t?.protocol??cXe.AwsRestJsonProtocol,protocolSettings:t?.protocolSettings??{defaultNamespace:"com.amazonaws.sso",errorTypeRegistries:gXe.errorTypeRegistries,version:"2019-06-10",serviceTarget:"SWBPortalService"},serviceId:t?.serviceId??"SSO",urlParser:t?.urlParser??dXe.parseUrl,utf8Decoder:t?.utf8Decoder??yte.fromUtf8,utf8Encoder:t?.utf8Encoder??yte.toUtf8});aP.getRuntimeConfig=fXe});var bte=b(uP=>{"use strict";Object.defineProperty(uP,"__esModule",{value:!0});uP.getRuntimeConfig=void 0;var hXe=require("tslib"),SXe=hXe.__importDefault(Mee()),Cte=(on(),ue(wu)),Rte=km(),cP=require("@smithy/config-resolver"),EXe=require("@smithy/hash-node"),vte=require("@smithy/middleware-retry"),bd=require("@smithy/node-config-provider"),xte=require("@smithy/node-http-handler"),Pte=require("@smithy/smithy-client"),yXe=require("@smithy/util-body-length-node"),_Xe=require("@smithy/util-defaults-mode-node"),CXe=require("@smithy/util-retry"),RXe=_te(),vXe=t=>{(0,Pte.emitWarningIfUnsupportedVersion)(process.version);let e=(0,_Xe.resolveDefaultsModeConfig)(t),r=()=>e().then(Pte.loadConfigsForDefaultMode),n=(0,RXe.getRuntimeConfig)(t);(0,Cte.emitWarningIfUnsupportedVersion)(process.version);let s={profile:t?.profile,logger:n.logger};return{...n,...t,runtime:"node",defaultsMode:e,authSchemePreference:t?.authSchemePreference??(0,bd.loadConfig)(Cte.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS,s),bodyLengthChecker:t?.bodyLengthChecker??yXe.calculateBodyLength,defaultUserAgentProvider:t?.defaultUserAgentProvider??(0,Rte.createDefaultUserAgentProvider)({serviceId:n.serviceId,clientVersion:SXe.default.version}),maxAttempts:t?.maxAttempts??(0,bd.loadConfig)(vte.NODE_MAX_ATTEMPT_CONFIG_OPTIONS,t),region:t?.region??(0,bd.loadConfig)(cP.NODE_REGION_CONFIG_OPTIONS,{...cP.NODE_REGION_CONFIG_FILE_OPTIONS,...s}),requestHandler:xte.NodeHttpHandler.create(t?.requestHandler??r),retryMode:t?.retryMode??(0,bd.loadConfig)({...vte.NODE_RETRY_MODE_CONFIG_OPTIONS,default:async()=>(await r()).retryMode||CXe.DEFAULT_RETRY_MODE},t),sha256:t?.sha256??EXe.Hash.bind(null,"sha256"),streamCollector:t?.streamCollector??xte.streamCollector,useDualstackEndpoint:t?.useDualstackEndpoint??(0,bd.loadConfig)(cP.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS,s),useFipsEndpoint:t?.useFipsEndpoint??(0,bd.loadConfig)(cP.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS,s),userAgentAppId:t?.userAgentAppId??(0,bd.loadConfig)(Rte.NODE_APP_ID_CONFIG_OPTIONS,s)}};uP.getRuntimeConfig=vXe});var Lte=b(br=>{"use strict";var Ite=gm(),xXe=fm(),PXe=hm(),Ate=Cd(),bXe=require("@smithy/config-resolver"),sE=require("@smithy/core"),IXe=require("@smithy/core/schema"),AXe=require("@smithy/middleware-content-length"),aE=require("@smithy/middleware-endpoint"),Tte=require("@smithy/middleware-retry"),fa=require("@smithy/smithy-client"),wte=zG(),TXe=bte(),Dte=vd(),Ote=require("@smithy/protocol-http"),Mu=r2(),lP=t2(),wXe=Wx(),DXe=t=>Object.assign(t,{useDualstackEndpoint:t.useDualstackEndpoint??!1,useFipsEndpoint:t.useFipsEndpoint??!1,defaultSigningName:"awsssoportal"}),gP={UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}},OXe=t=>{let e=t.httpAuthSchemes,r=t.httpAuthSchemeProvider,n=t.credentials;return{setHttpAuthScheme(s){let o=e.findIndex(i=>i.schemeId===s.schemeId);o===-1?e.push(s):e.splice(o,1,s)},httpAuthSchemes(){return e},setHttpAuthSchemeProvider(s){r=s},httpAuthSchemeProvider(){return r},setCredentials(s){n=s},credentials(){return n}}},kXe=t=>({httpAuthSchemes:t.httpAuthSchemes(),httpAuthSchemeProvider:t.httpAuthSchemeProvider(),credentials:t.credentials()}),NXe=(t,e)=>{let r=Object.assign(Dte.getAwsRegionExtensionConfiguration(t),fa.getDefaultExtensionConfiguration(t),Ote.getHttpHandlerExtensionConfiguration(t),OXe(t));return e.forEach(n=>n.configure(r)),Object.assign(t,Dte.resolveAwsRegionExtensionConfiguration(r),fa.resolveDefaultRuntimeConfig(r),Ote.resolveHttpHandlerRuntimeConfig(r),kXe(r))},zm=class extends fa.Client{config;constructor(...[e]){let r=TXe.getRuntimeConfig(e||{});super(r),this.initConfig=r;let n=DXe(r),s=Ate.resolveUserAgentConfig(n),o=Tte.resolveRetryConfig(s),i=bXe.resolveRegionConfig(o),a=Ite.resolveHostHeaderConfig(i),c=aE.resolveEndpointConfig(a),u=wte.resolveHttpAuthSchemeConfig(c),l=NXe(u,e?.extensions||[]);this.config=l,this.middlewareStack.use(IXe.getSchemaSerdePlugin(this.config)),this.middlewareStack.use(Ate.getUserAgentPlugin(this.config)),this.middlewareStack.use(Tte.getRetryPlugin(this.config)),this.middlewareStack.use(AXe.getContentLengthPlugin(this.config)),this.middlewareStack.use(Ite.getHostHeaderPlugin(this.config)),this.middlewareStack.use(xXe.getLoggerPlugin(this.config)),this.middlewareStack.use(PXe.getRecursionDetectionPlugin(this.config)),this.middlewareStack.use(sE.getHttpAuthSchemeEndpointRuleSetPlugin(this.config,{httpAuthSchemeParametersProvider:wte.defaultSSOHttpAuthSchemeParametersProvider,identityProviderConfigProvider:async d=>new sE.DefaultIdentityProviderConfig({"aws.auth#sigv4":d.credentials})})),this.middlewareStack.use(sE.getHttpSigningPlugin(this.config))}destroy(){super.destroy()}},dP=class extends fa.Command.classBuilder().ep(gP).m(function(e,r,n,s){return[aE.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("SWBPortalService","GetRoleCredentials",{}).n("SSOClient","GetRoleCredentialsCommand").sc(Mu.GetRoleCredentials$).build(){},oE=class extends fa.Command.classBuilder().ep(gP).m(function(e,r,n,s){return[aE.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("SWBPortalService","ListAccountRoles",{}).n("SSOClient","ListAccountRolesCommand").sc(Mu.ListAccountRoles$).build(){},iE=class extends fa.Command.classBuilder().ep(gP).m(function(e,r,n,s){return[aE.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("SWBPortalService","ListAccounts",{}).n("SSOClient","ListAccountsCommand").sc(Mu.ListAccounts$).build(){},pP=class extends fa.Command.classBuilder().ep(gP).m(function(e,r,n,s){return[aE.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("SWBPortalService","Logout",{}).n("SSOClient","LogoutCommand").sc(Mu.Logout$).build(){},kte=sE.createPaginator(zm,oE,"nextToken","nextToken","maxResults"),Nte=sE.createPaginator(zm,iE,"nextToken","nextToken","maxResults"),LXe={GetRoleCredentialsCommand:dP,ListAccountRolesCommand:oE,ListAccountsCommand:iE,LogoutCommand:pP},MXe={paginateListAccountRoles:kte,paginateListAccounts:Nte},mP=class extends zm{};fa.createAggregatedClient(LXe,mP,{paginators:MXe});br.$Command=fa.Command;br.__Client=fa.Client;br.SSOServiceException=wXe.SSOServiceException;br.GetRoleCredentialsCommand=dP;br.ListAccountRolesCommand=oE;br.ListAccountsCommand=iE;br.LogoutCommand=pP;br.SSO=mP;br.SSOClient=zm;br.paginateListAccountRoles=kte;br.paginateListAccounts=Nte;Object.prototype.hasOwnProperty.call(Mu,"__proto__")&&!Object.prototype.hasOwnProperty.call(br,"__proto__")&&Object.defineProperty(br,"__proto__",{enumerable:!0,value:Mu.__proto__});Object.keys(Mu).forEach(function(t){t!=="default"&&!Object.prototype.hasOwnProperty.call(br,t)&&(br[t]=Mu[t])});Object.prototype.hasOwnProperty.call(lP,"__proto__")&&!Object.prototype.hasOwnProperty.call(br,"__proto__")&&Object.defineProperty(br,"__proto__",{enumerable:!0,value:lP.__proto__});Object.keys(lP).forEach(function(t){t!=="default"&&!Object.prototype.hasOwnProperty.call(br,t)&&(br[t]=lP[t])})});var Fte=b(n2=>{"use strict";var Mte=Lte();n2.GetRoleCredentialsCommand=Mte.GetRoleCredentialsCommand;n2.SSOClient=Mte.SSOClient});var s2=b(hP=>{"use strict";var vi=require("@smithy/property-provider"),fP=require("@smithy/shared-ini-file-loader"),Bte=(vo(),ue(cc)),FXe=Lee(),qte=t=>t&&(typeof t.sso_start_url=="string"||typeof t.sso_account_id=="string"||typeof t.sso_session=="string"||typeof t.sso_region=="string"||typeof t.sso_role_name=="string"),cE=!1,Ute=async({ssoStartUrl:t,ssoSession:e,ssoAccountId:r,ssoRegion:n,ssoRoleName:s,ssoClient:o,clientConfig:i,parentClientConfig:a,callerClientConfig:c,profile:u,filepath:l,configFilepath:d,ignoreCache:p,logger:g})=>{let y,R="To refresh this SSO session run aws sso login with the corresponding profile.";if(e)try{let tr=await FXe.fromSso({profile:u,filepath:l,configFilepath:d,ignoreCache:p})();y={accessToken:tr.token,expiresAt:new Date(tr.expiration).toISOString()}}catch(tr){throw new vi.CredentialsProviderError(tr.message,{tryNextLink:cE,logger:g})}else try{y=await fP.getSSOTokenFromFile(t)}catch{throw new vi.CredentialsProviderError(`The SSO session associated with this profile is invalid. ${R}`,{tryNextLink:cE,logger:g})}if(new Date(y.expiresAt).getTime()-Date.now()<=0)throw new vi.CredentialsProviderError(`The SSO session associated with this profile has expired. ${R}`,{tryNextLink:cE,logger:g});let{accessToken:D}=y,{SSOClient:B,GetRoleCredentialsCommand:M}=await Promise.resolve().then(function(){return Fte()}),ge=o||new B(Object.assign({},i??{},{logger:i?.logger??c?.logger??a?.logger,region:i?.region??n,userAgentAppId:i?.userAgentAppId??c?.userAgentAppId??a?.userAgentAppId})),Y;try{Y=await ge.send(new M({accountId:r,roleName:s,accessToken:D}))}catch(tr){throw new vi.CredentialsProviderError(tr,{tryNextLink:cE,logger:g})}let{roleCredentials:{accessKeyId:Te,secretAccessKey:Ht,sessionToken:Tt,expiration:Ne,credentialScope:Eu,accountId:yu}={}}=Y;if(!Te||!Ht||!Tt||!Ne)throw new vi.CredentialsProviderError("SSO returns an invalid temporary credential.",{tryNextLink:cE,logger:g});let hi={accessKeyId:Te,secretAccessKey:Ht,sessionToken:Tt,expiration:new Date(Ne),...Eu&&{credentialScope:Eu},...yu&&{accountId:yu}};return e?Bte.setCredentialFeature(hi,"CREDENTIALS_SSO","s"):Bte.setCredentialFeature(hi,"CREDENTIALS_SSO_LEGACY","u"),hi},$te=(t,e)=>{let{sso_start_url:r,sso_account_id:n,sso_region:s,sso_role_name:o}=t;if(!r||!n||!s||!o)throw new vi.CredentialsProviderError(`Profile is configured with invalid SSO credentials. Required parameters "sso_account_id", "sso_region", "sso_role_name", "sso_start_url". Got ${Object.keys(t).join(", ")} -Reference: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html`,{tryNextLink:!1,logger:e});return t},BXe=(t={})=>async({callerClientConfig:e}={})=>{t.logger?.debug("@aws-sdk/credential-provider-sso - fromSSO");let{ssoStartUrl:r,ssoAccountId:n,ssoRegion:s,ssoRoleName:o,ssoSession:i}=t,{ssoClient:a}=t,c=fP.getProfileName({profile:t.profile??e?.profile});if(!r&&!n&&!s&&!o&&!i){let l=(await fP.parseKnownFiles(t))[c];if(!l)throw new vi.CredentialsProviderError(`Profile ${c} was not found.`,{logger:t.logger});if(!qte(l))throw new vi.CredentialsProviderError(`Profile ${c} is not configured with SSO credentials.`,{logger:t.logger});if(l?.sso_session){let B=(await fP.loadSsoSessionData(t))[l.sso_session],M=` configurations in profile ${c} and sso-session ${l.sso_session}`;if(s&&s!==B.sso_region)throw new vi.CredentialsProviderError("Conflicting SSO region"+M,{tryNextLink:!1,logger:t.logger});if(r&&r!==B.sso_start_url)throw new vi.CredentialsProviderError("Conflicting SSO start_url"+M,{tryNextLink:!1,logger:t.logger});l.sso_region=B.sso_region,l.sso_start_url=B.sso_start_url}let{sso_start_url:d,sso_account_id:p,sso_region:g,sso_role_name:y,sso_session:R}=$te(l,t.logger);return Ute({ssoStartUrl:d,ssoSession:R,ssoAccountId:p,ssoRegion:g,ssoRoleName:y,ssoClient:a,clientConfig:t.clientConfig,parentClientConfig:t.parentClientConfig,callerClientConfig:t.callerClientConfig,profile:c,filepath:t.filepath,configFilepath:t.configFilepath,ignoreCache:t.ignoreCache,logger:t.logger})}else{if(!r||!n||!s||!o)throw new vi.CredentialsProviderError('Incomplete configuration. The fromSSO() argument hash must include "ssoStartUrl", "ssoAccountId", "ssoRegion", "ssoRoleName"',{tryNextLink:!1,logger:t.logger});return Ute({ssoStartUrl:r,ssoSession:i,ssoAccountId:n,ssoRegion:s,ssoRoleName:o,ssoClient:a,clientConfig:t.clientConfig,parentClientConfig:t.parentClientConfig,callerClientConfig:t.callerClientConfig,profile:c,filepath:t.filepath,configFilepath:t.configFilepath,ignoreCache:t.ignoreCache,logger:t.logger})}};hP.fromSSO=BXe;hP.isSsoProfile=qte;hP.validateSsoProfile=$te});function UXe(t){return{schemeId:"aws.auth#sigv4",signingProperties:{name:"signin",region:t.region},propertiesExtractor:(e,r)=>({signingProperties:{config:e,context:r}})}}function qXe(t){return{schemeId:"smithy.api#noAuth"}}var uE,Gte,jte,Vte,o2=_(()=>{on();uE=require("@smithy/util-middleware"),Gte=async(t,e,r)=>({operation:(0,uE.getSmithyContext)(e).operation,region:await(0,uE.normalizeProvider)(t.region)()||(()=>{throw new Error("expected `region` to be configured for `aws.auth#sigv4`")})()});jte=t=>{let e=[];switch(t.operation){case"CreateOAuth2Token":{e.push(qXe(t));break}default:e.push(UXe(t))}return e},Vte=t=>{let e=uc(t);return Object.assign(e,{authSchemePreference:(0,uE.normalizeProvider)(t.authSchemePreference??[])})}});var Hte,zte,i2=_(()=>{Hte=t=>Object.assign(t,{useDualstackEndpoint:t.useDualstackEndpoint??!1,useFipsEndpoint:t.useFipsEndpoint??!1,defaultSigningName:"signin"}),zte={UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}});var ere,Cn,Rn,mc,Wte,Id,Wm,Fu,xi,yP,a2,Kte,Qte,Xte,c2,u2,_n,l2,SP,EP,Jte,Yte,Zte,$Xe,tre,rre=_(()=>{ere="required",Cn="fn",Rn="argv",mc="ref",Wte="isSet",Id="booleanEquals",Wm="error",Fu="endpoint",xi="tree",yP="PartitionResult",a2="stringEquals",Kte={[ere]:!0,default:!1,type:"boolean"},Qte={[ere]:!1,type:"string"},Xte={[mc]:"Endpoint"},c2={[Cn]:Id,[Rn]:[{[mc]:"UseFIPS"},!0]},u2={[Cn]:Id,[Rn]:[{[mc]:"UseDualStack"},!0]},_n={},l2={[Cn]:"getAttr",[Rn]:[{[mc]:yP},"name"]},SP={[Cn]:Id,[Rn]:[{[mc]:"UseFIPS"},!1]},EP={[Cn]:Id,[Rn]:[{[mc]:"UseDualStack"},!1]},Jte={[Cn]:"getAttr",[Rn]:[{[mc]:yP},"supportsFIPS"]},Yte={[Cn]:Id,[Rn]:[!0,{[Cn]:"getAttr",[Rn]:[{[mc]:yP},"supportsDualStack"]}]},Zte=[{[mc]:"Region"}],$Xe={version:"1.0",parameters:{UseDualStack:Kte,UseFIPS:Kte,Endpoint:Qte,Region:Qte},rules:[{conditions:[{[Cn]:Wte,[Rn]:[Xte]}],rules:[{conditions:[c2],error:"Invalid Configuration: FIPS and custom endpoint are not supported",type:Wm},{rules:[{conditions:[u2],error:"Invalid Configuration: Dualstack and custom endpoint are not supported",type:Wm},{endpoint:{url:Xte,properties:_n,headers:_n},type:Fu}],type:xi}],type:xi},{rules:[{conditions:[{[Cn]:Wte,[Rn]:Zte}],rules:[{conditions:[{[Cn]:"aws.partition",[Rn]:Zte,assign:yP}],rules:[{conditions:[{[Cn]:a2,[Rn]:[l2,"aws"]},SP,EP],endpoint:{url:"https://{Region}.signin.aws.amazon.com",properties:_n,headers:_n},type:Fu},{conditions:[{[Cn]:a2,[Rn]:[l2,"aws-cn"]},SP,EP],endpoint:{url:"https://{Region}.signin.amazonaws.cn",properties:_n,headers:_n},type:Fu},{conditions:[{[Cn]:a2,[Rn]:[l2,"aws-us-gov"]},SP,EP],endpoint:{url:"https://{Region}.signin.amazonaws-us-gov.com",properties:_n,headers:_n},type:Fu},{conditions:[c2,u2],rules:[{conditions:[{[Cn]:Id,[Rn]:[!0,Jte]},Yte],rules:[{endpoint:{url:"https://signin-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:_n,headers:_n},type:Fu}],type:xi},{error:"FIPS and DualStack are enabled, but this partition does not support one or both",type:Wm}],type:xi},{conditions:[c2,EP],rules:[{conditions:[{[Cn]:Id,[Rn]:[Jte,!0]}],rules:[{endpoint:{url:"https://signin-fips.{Region}.{PartitionResult#dnsSuffix}",properties:_n,headers:_n},type:Fu}],type:xi},{error:"FIPS is enabled but this partition does not support FIPS",type:Wm}],type:xi},{conditions:[SP,u2],rules:[{conditions:[Yte],rules:[{endpoint:{url:"https://signin.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:_n,headers:_n},type:Fu}],type:xi},{error:"DualStack is enabled but this partition does not support DualStack",type:Wm}],type:xi},{endpoint:{url:"https://signin.{Region}.{PartitionResult#dnsSuffix}",properties:_n,headers:_n},type:Fu}],type:xi}],type:xi},{error:"Invalid Configuration: Missing Region",type:Wm}],type:xi}]},tre=$Xe});var nre,Km,GXe,sre,ore=_(()=>{nre=O(Ax()),Km=require("@smithy/util-endpoints");rre();GXe=new Km.EndpointCache({size:50,params:["Endpoint","Region","UseDualStack","UseFIPS"]}),sre=(t,e={})=>GXe.get(t,()=>(0,Km.resolveEndpoint)(tre,{endpointParams:t,logger:e.logger}));Km.customEndpointFunctions.aws=nre.awsEndpointFunctions});var ire,Pi,_P=_(()=>{ire=require("@smithy/smithy-client"),Pi=class t extends ire.ServiceException{constructor(e){super(e),Object.setPrototypeOf(this,t.prototype)}}});var lE,dE,pE,mE,d2=_(()=>{_P();lE=class t extends Pi{name="AccessDeniedException";$fault="client";error;constructor(e){super({name:"AccessDeniedException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error}},dE=class t extends Pi{name="InternalServerException";$fault="server";error;constructor(e){super({name:"InternalServerException",$fault:"server",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error}},pE=class t extends Pi{name="TooManyRequestsError";$fault="client";error;constructor(e){super({name:"TooManyRequestsError",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error}},mE=class t extends Pi{name="ValidationException";$fault="client";error;constructor(e){super({name:"ValidationException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error}}});var g2,jXe,VXe,HXe,zXe,WXe,KXe,QXe,XXe,JXe,YXe,ZXe,are,cre,p2,ure,lre,eJe,Bu,dre,pre,tJe,m2,mre,Gs,RP,CP,gre,Ere,fre,hre,rJe,nJe,sJe,Sre,Oo,yre,_re,gE,Cre,Rre,vre,xre,f2,Pre,bre,Ire,Are,Tre,wre,h2,vP=_(()=>{g2=require("@smithy/core/schema");d2();_P();jXe="AccessDeniedException",VXe="AccessToken",HXe="CreateOAuth2Token",zXe="CreateOAuth2TokenRequest",WXe="CreateOAuth2TokenRequestBody",KXe="CreateOAuth2TokenResponseBody",QXe="CreateOAuth2TokenResponse",XXe="InternalServerException",JXe="RefreshToken",YXe="TooManyRequestsError",ZXe="ValidationException",are="accessKeyId",cre="accessToken",p2="client",ure="clientId",lre="codeVerifier",eJe="code",Bu="error",dre="expiresIn",pre="grantType",tJe="http",m2="httpError",mre="idToken",Gs="jsonName",RP="message",CP="refreshToken",gre="redirectUri",Ere="smithy.ts.sdk.synthetic.com.amazonaws.signin",fre="secretAccessKey",hre="sessionToken",rJe="server",nJe="tokenInput",sJe="tokenOutput",Sre="tokenType",Oo="com.amazonaws.signin",yre=g2.TypeRegistry.for(Ere),_re=[-3,Ere,"SigninServiceException",0,[],[]];yre.registerError(_re,Pi);gE=g2.TypeRegistry.for(Oo),Cre=[-3,Oo,jXe,{[Bu]:p2},[Bu,RP],[0,0],2];gE.registerError(Cre,lE);Rre=[-3,Oo,XXe,{[Bu]:rJe,[m2]:500},[Bu,RP],[0,0],2];gE.registerError(Rre,dE);vre=[-3,Oo,YXe,{[Bu]:p2,[m2]:429},[Bu,RP],[0,0],2];gE.registerError(vre,pE);xre=[-3,Oo,ZXe,{[Bu]:p2,[m2]:400},[Bu,RP],[0,0],2];gE.registerError(xre,mE);f2=[yre,gE],Pre=[0,Oo,JXe,8,0],bre=[3,Oo,VXe,8,[are,fre,hre],[[0,{[Gs]:are}],[0,{[Gs]:fre}],[0,{[Gs]:hre}]],3],Ire=[3,Oo,zXe,0,[nJe],[[()=>Are,16]],1],Are=[3,Oo,WXe,0,[ure,pre,eJe,gre,lre,CP],[[0,{[Gs]:ure}],[0,{[Gs]:pre}],0,[0,{[Gs]:gre}],[0,{[Gs]:lre}],[()=>Pre,{[Gs]:CP}]],2],Tre=[3,Oo,QXe,0,[sJe],[[()=>wre,16]],1],wre=[3,Oo,KXe,0,[cre,Sre,dre,CP,mre],[[()=>bre,{[Gs]:cre}],[0,{[Gs]:Sre}],[1,{[Gs]:dre}],[()=>Pre,{[Gs]:CP}],[0,{[Gs]:mre}]],4],h2=[9,Oo,HXe,{[tJe]:["POST","/v1/token",200]},()=>Ire,()=>Tre]});var Dre,Ore,kre,xP,PP,Nre,Lre=_(()=>{on();_d();Dre=require("@smithy/core"),Ore=require("@smithy/smithy-client"),kre=require("@smithy/url-parser"),xP=require("@smithy/util-base64"),PP=require("@smithy/util-utf8");o2();ore();vP();Nre=t=>({apiVersion:"2023-01-01",base64Decoder:t?.base64Decoder??xP.fromBase64,base64Encoder:t?.base64Encoder??xP.toBase64,disableHostPrefix:t?.disableHostPrefix??!1,endpointProvider:t?.endpointProvider??sre,extensions:t?.extensions??[],httpAuthSchemeProvider:t?.httpAuthSchemeProvider??jte,httpAuthSchemes:t?.httpAuthSchemes??[{schemeId:"aws.auth#sigv4",identityProvider:e=>e.getIdentityProvider("aws.auth#sigv4"),signer:new En},{schemeId:"smithy.api#noAuth",identityProvider:e=>e.getIdentityProvider("smithy.api#noAuth")||(async()=>({})),signer:new Dre.NoAuthSigner}],logger:t?.logger??new Ore.NoOpLogger,protocol:t?.protocol??Iu,protocolSettings:t?.protocolSettings??{defaultNamespace:"com.amazonaws.signin",errorTypeRegistries:f2,version:"2023-01-01",serviceTarget:"Signin"},serviceId:t?.serviceId??"Signin",urlParser:t?.urlParser??kre.parseUrl,utf8Decoder:t?.utf8Decoder??PP.fromUtf8,utf8Encoder:t?.utf8Encoder??PP.toUtf8})});var bP,qu,Mre,IP,Uu,AP,TP,Fre,Bre,Ure,qre,$re=_(()=>{Ix();on();bP=O(km()),qu=require("@smithy/config-resolver"),Mre=require("@smithy/hash-node"),IP=require("@smithy/middleware-retry"),Uu=require("@smithy/node-config-provider"),AP=require("@smithy/node-http-handler"),TP=require("@smithy/smithy-client"),Fre=require("@smithy/util-body-length-node"),Bre=require("@smithy/util-defaults-mode-node"),Ure=require("@smithy/util-retry");Lre();qre=t=>{(0,TP.emitWarningIfUnsupportedVersion)(process.version);let e=(0,Bre.resolveDefaultsModeConfig)(t),r=()=>e().then(TP.loadConfigsForDefaultMode),n=Nre(t);Cu(process.version);let s={profile:t?.profile,logger:n.logger};return{...n,...t,runtime:"node",defaultsMode:e,authSchemePreference:t?.authSchemePreference??(0,Uu.loadConfig)(vu,s),bodyLengthChecker:t?.bodyLengthChecker??Fre.calculateBodyLength,defaultUserAgentProvider:t?.defaultUserAgentProvider??(0,bP.createDefaultUserAgentProvider)({serviceId:n.serviceId,clientVersion:Om.version}),maxAttempts:t?.maxAttempts??(0,Uu.loadConfig)(IP.NODE_MAX_ATTEMPT_CONFIG_OPTIONS,t),region:t?.region??(0,Uu.loadConfig)(qu.NODE_REGION_CONFIG_OPTIONS,{...qu.NODE_REGION_CONFIG_FILE_OPTIONS,...s}),requestHandler:AP.NodeHttpHandler.create(t?.requestHandler??r),retryMode:t?.retryMode??(0,Uu.loadConfig)({...IP.NODE_RETRY_MODE_CONFIG_OPTIONS,default:async()=>(await r()).retryMode||Ure.DEFAULT_RETRY_MODE},t),sha256:t?.sha256??Mre.Hash.bind(null,"sha256"),streamCollector:t?.streamCollector??AP.streamCollector,useDualstackEndpoint:t?.useDualstackEndpoint??(0,Uu.loadConfig)(qu.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS,s),useFipsEndpoint:t?.useFipsEndpoint??(0,Uu.loadConfig)(qu.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS,s),userAgentAppId:t?.userAgentAppId??(0,Uu.loadConfig)(bP.NODE_APP_ID_CONFIG_OPTIONS,s)}}});var Gre,jre,Vre=_(()=>{Gre=t=>{let e=t.httpAuthSchemes,r=t.httpAuthSchemeProvider,n=t.credentials;return{setHttpAuthScheme(s){let o=e.findIndex(i=>i.schemeId===s.schemeId);o===-1?e.push(s):e.splice(o,1,s)},httpAuthSchemes(){return e},setHttpAuthSchemeProvider(s){r=s},httpAuthSchemeProvider(){return r},setCredentials(s){n=s},credentials(){return n}}},jre=t=>({httpAuthSchemes:t.httpAuthSchemes(),httpAuthSchemeProvider:t.httpAuthSchemeProvider(),credentials:t.credentials()})});var wP,DP,OP,Hre,zre=_(()=>{wP=O(vd()),DP=require("@smithy/protocol-http"),OP=require("@smithy/smithy-client");Vre();Hre=(t,e)=>{let r=Object.assign((0,wP.getAwsRegionExtensionConfiguration)(t),(0,OP.getDefaultExtensionConfiguration)(t),(0,DP.getHttpHandlerExtensionConfiguration)(t),Gre(t));return e.forEach(n=>n.configure(r)),Object.assign(t,(0,wP.resolveAwsRegionExtensionConfiguration)(r),(0,OP.resolveDefaultRuntimeConfig)(r),(0,DP.resolveHttpHandlerRuntimeConfig)(r),jre(r))}});var kP,Wre,Kre,NP,Qre,Qm,Xre,Jre,Yre,LP,S2,fE,E2=_(()=>{kP=O(gm()),Wre=O(fm()),Kre=O(hm()),NP=O(Cd()),Qre=require("@smithy/config-resolver"),Qm=require("@smithy/core"),Xre=require("@smithy/core/schema"),Jre=require("@smithy/middleware-content-length"),Yre=require("@smithy/middleware-endpoint"),LP=require("@smithy/middleware-retry"),S2=require("@smithy/smithy-client");o2();i2();$re();zre();fE=class extends S2.Client{config;constructor(...[e]){let r=qre(e||{});super(r),this.initConfig=r;let n=Hte(r),s=(0,NP.resolveUserAgentConfig)(n),o=(0,LP.resolveRetryConfig)(s),i=(0,Qre.resolveRegionConfig)(o),a=(0,kP.resolveHostHeaderConfig)(i),c=(0,Yre.resolveEndpointConfig)(a),u=Vte(c),l=Hre(u,e?.extensions||[]);this.config=l,this.middlewareStack.use((0,Xre.getSchemaSerdePlugin)(this.config)),this.middlewareStack.use((0,NP.getUserAgentPlugin)(this.config)),this.middlewareStack.use((0,LP.getRetryPlugin)(this.config)),this.middlewareStack.use((0,Jre.getContentLengthPlugin)(this.config)),this.middlewareStack.use((0,kP.getHostHeaderPlugin)(this.config)),this.middlewareStack.use((0,Wre.getLoggerPlugin)(this.config)),this.middlewareStack.use((0,Kre.getRecursionDetectionPlugin)(this.config)),this.middlewareStack.use((0,Qm.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config,{httpAuthSchemeParametersProvider:Gte,identityProviderConfigProvider:async d=>new Qm.DefaultIdentityProviderConfig({"aws.auth#sigv4":d.credentials})})),this.middlewareStack.use((0,Qm.getHttpSigningPlugin)(this.config))}destroy(){super.destroy()}}});var Zre,y2,hE,_2=_(()=>{Zre=require("@smithy/middleware-endpoint"),y2=require("@smithy/smithy-client");i2();vP();hE=class extends y2.Command.classBuilder().ep(zte).m(function(e,r,n,s){return[(0,Zre.getEndpointPlugin)(n,e.getEndpointParameterInstructions())]}).s("Signin","CreateOAuth2Token",{}).n("SigninClient","CreateOAuth2TokenCommand").sc(h2).build(){}});var ene,oJe,MP,tne=_(()=>{ene=require("@smithy/smithy-client");_2();E2();oJe={CreateOAuth2TokenCommand:hE},MP=class extends fE{};(0,ene.createAggregatedClient)(oJe,MP)});var rne=_(()=>{_2()});var iJe,nne=_(()=>{iJe={AUTHCODE_EXPIRED:"AUTHCODE_EXPIRED",INSUFFICIENT_PERMISSIONS:"INSUFFICIENT_PERMISSIONS",INVALID_REQUEST:"INVALID_REQUEST",SERVER_ERROR:"server_error",TOKEN_EXPIRED:"TOKEN_EXPIRED",USER_CREDENTIALS_CHANGED:"USER_CREDENTIALS_CHANGED"}});var sne=_(()=>{});var one={};wt(one,{$Command:()=>y2.Command,AccessDeniedException:()=>lE,AccessDeniedException$:()=>Cre,AccessToken$:()=>bre,CreateOAuth2Token$:()=>h2,CreateOAuth2TokenCommand:()=>hE,CreateOAuth2TokenRequest$:()=>Ire,CreateOAuth2TokenRequestBody$:()=>Are,CreateOAuth2TokenResponse$:()=>Tre,CreateOAuth2TokenResponseBody$:()=>wre,InternalServerException:()=>dE,InternalServerException$:()=>Rre,OAuth2ErrorCode:()=>iJe,Signin:()=>MP,SigninClient:()=>fE,SigninServiceException:()=>Pi,SigninServiceException$:()=>_re,TooManyRequestsError:()=>pE,TooManyRequestsError$:()=>vre,ValidationException:()=>mE,ValidationException$:()=>xre,__Client:()=>S2.Client,errorTypeRegistries:()=>f2});var ine=_(()=>{E2();tne();rne();vP();nne();d2();sne();_P()});var cne=b(ane=>{"use strict";var aJe=(vo(),ue(cc)),$u=require("@smithy/property-provider"),v2=require("@smithy/shared-ini-file-loader"),cJe=require("@smithy/protocol-http"),FP=require("node:crypto"),C2=require("node:fs"),uJe=require("node:os"),R2=require("node:path"),x2=class t{profileData;init;callerClientConfig;static REFRESH_THRESHOLD=5*60*1e3;constructor(e,r,n){this.profileData=e,this.init=r,this.callerClientConfig=n}async loadCredentials(){let e=await this.loadToken();if(!e)throw new $u.CredentialsProviderError(`Failed to load a token for session ${this.loginSession}, please re-authenticate using aws login`,{tryNextLink:!1,logger:this.logger});let r=e.accessToken,n=Date.now();return new Date(r.expiresAt).getTime()-n<=t.REFRESH_THRESHOLD?this.refresh(e):{accessKeyId:r.accessKeyId,secretAccessKey:r.secretAccessKey,sessionToken:r.sessionToken,accountId:r.accountId,expiration:new Date(r.expiresAt)}}get logger(){return this.init?.logger}get loginSession(){return this.profileData.login_session}async refresh(e){let{SigninClient:r,CreateOAuth2TokenCommand:n}=await Promise.resolve().then(()=>(ine(),one)),{logger:s,userAgentAppId:o}=this.callerClientConfig??{},a=(d=>d?.metadata?.handlerProtocol==="h2")(this.callerClientConfig?.requestHandler)?void 0:this.callerClientConfig?.requestHandler,c=this.profileData.region??await this.callerClientConfig?.region?.()??process.env.AWS_REGION,u=new r({credentials:{accessKeyId:"",secretAccessKey:""},region:c,requestHandler:a,logger:s,userAgentAppId:o,...this.init?.clientConfig});this.createDPoPInterceptor(u.middlewareStack);let l={tokenInput:{clientId:e.clientId,refreshToken:e.refreshToken,grantType:"refresh_token"}};try{let d=await u.send(new n(l)),{accessKeyId:p,secretAccessKey:g,sessionToken:y}=d.tokenOutput?.accessToken??{},{refreshToken:R,expiresIn:D}=d.tokenOutput??{};if(!p||!g||!y||!R)throw new $u.CredentialsProviderError("Token refresh response missing required fields",{logger:this.logger,tryNextLink:!1});let B=(D??900)*1e3,M=new Date(Date.now()+B),ge={...e,accessToken:{...e.accessToken,accessKeyId:p,secretAccessKey:g,sessionToken:y,expiresAt:M.toISOString()},refreshToken:R};await this.saveToken(ge);let Y=ge.accessToken;return{accessKeyId:Y.accessKeyId,secretAccessKey:Y.secretAccessKey,sessionToken:Y.sessionToken,accountId:Y.accountId,expiration:M}}catch(d){if(d.name==="AccessDeniedException"){let p=d.error,g;switch(p){case"TOKEN_EXPIRED":g="Your session has expired. Please reauthenticate.";break;case"USER_CREDENTIALS_CHANGED":g="Unable to refresh credentials because of a change in your password. Please reauthenticate with your new password.";break;case"INSUFFICIENT_PERMISSIONS":g="Unable to refresh credentials due to insufficient permissions. You may be missing permission for the 'CreateOAuth2Token' action.";break;default:g=`Failed to refresh token: ${String(d)}. Please re-authenticate using \`aws login\``}throw new $u.CredentialsProviderError(g,{logger:this.logger,tryNextLink:!1})}throw new $u.CredentialsProviderError(`Failed to refresh token: ${String(d)}. Please re-authenticate using aws login`,{logger:this.logger})}}async loadToken(){let e=this.getTokenFilePath();try{let r;try{r=await v2.readFile(e,{ignoreCache:this.init?.ignoreCache})}catch{r=await C2.promises.readFile(e,"utf8")}let n=JSON.parse(r),s=["accessToken","clientId","refreshToken","dpopKey"].filter(o=>!n[o]);if(n.accessToken?.accountId||s.push("accountId"),s.length>0)throw new $u.CredentialsProviderError(`Token validation failed, missing fields: ${s.join(", ")}`,{logger:this.logger,tryNextLink:!1});return n}catch(r){throw new $u.CredentialsProviderError(`Failed to load token from ${e}: ${String(r)}`,{logger:this.logger,tryNextLink:!1})}}async saveToken(e){let r=this.getTokenFilePath(),n=R2.dirname(r);try{await C2.promises.mkdir(n,{recursive:!0})}catch{}await C2.promises.writeFile(r,JSON.stringify(e,null,2),"utf8")}getTokenFilePath(){let e=process.env.AWS_LOGIN_CACHE_DIRECTORY??R2.join(uJe.homedir(),".aws","login","cache"),r=Buffer.from(this.loginSession,"utf8"),n=FP.createHash("sha256").update(r).digest("hex");return R2.join(e,`${n}.json`)}derToRawSignature(e){let r=2;if(e[r]!==2)throw new Error("Invalid DER signature");r++;let n=e[r++],s=e.subarray(r,r+n);if(r+=n,e[r]!==2)throw new Error("Invalid DER signature");r++;let o=e[r++],i=e.subarray(r,r+o);s=s[0]===0?s.subarray(1):s,i=i[0]===0?i.subarray(1):i;let a=Buffer.concat([Buffer.alloc(32-s.length),s]),c=Buffer.concat([Buffer.alloc(32-i.length),i]);return Buffer.concat([a,c])}createDPoPInterceptor(e){e.add(r=>async n=>{if(cJe.HttpRequest.isInstance(n.request)){let s=n.request,o=`${s.protocol}//${s.hostname}${s.port?`:${s.port}`:""}${s.path}`,i=await this.generateDpop(s.method,o);s.headers={...s.headers,DPoP:i}}return r(n)},{step:"finalizeRequest",name:"dpopInterceptor",override:!0})}async generateDpop(e="POST",r){let n=await this.loadToken();try{let s=FP.createPrivateKey({key:n.dpopKey,format:"pem",type:"sec1"}),i=FP.createPublicKey(s).export({format:"der",type:"spki"}),a=-1;for(let M=0;Masync({callerClientConfig:e}={})=>{t?.logger?.debug?.("@aws-sdk/credential-providers - fromLoginCredentials");let r=await v2.parseKnownFiles(t||{}),n=v2.getProfileName({profile:t?.profile??e?.profile}),s=r[n];if(!s?.login_session)throw new $u.CredentialsProviderError(`Profile ${n} does not contain login_session.`,{tryNextLink:!0,logger:t?.logger});let i=await new x2(s,t,e).loadCredentials();return aJe.setCredentialFeature(i,"CREDENTIALS_LOGIN","AD")};ane.fromLoginCredentials=lJe});function dJe(t){return{schemeId:"aws.auth#sigv4",signingProperties:{name:"sts",region:t.region},propertiesExtractor:(e,r)=>({signingProperties:{config:e,context:r}})}}function pJe(t){return{schemeId:"smithy.api#noAuth"}}var SE,une,lne,mJe,dne,P2=_(()=>{on();SE=require("@smithy/util-middleware");EE();une=async(t,e,r)=>({operation:(0,SE.getSmithyContext)(e).operation,region:await(0,SE.normalizeProvider)(t.region)()||(()=>{throw new Error("expected `region` to be configured for `aws.auth#sigv4`")})()});lne=t=>{let e=[];switch(t.operation){case"AssumeRoleWithWebIdentity":{e.push(pJe(t));break}default:e.push(dJe(t))}return e},mJe=t=>Object.assign(t,{stsClientCtor:ha}),dne=t=>{let e=mJe(t),r=uc(e);return Object.assign(r,{authSchemePreference:(0,SE.normalizeProvider)(t.authSchemePreference??[])})}});var pne,BP,UP=_(()=>{pne=t=>Object.assign(t,{useDualstackEndpoint:t.useDualstackEndpoint??!1,useFipsEndpoint:t.useFipsEndpoint??!1,useGlobalEndpoint:t.useGlobalEndpoint??!1,defaultSigningName:"sts"}),BP={UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}});var vne,$e,ct,ut,ju,Gu,an,xne,Pne,bne,Wt,mne,Sa,Xm,I2,gne,b2,Ine,fne,cn,hne,Ane,Tne,vn,js,Sne,wne,Dne,Ene,One,yne,_ne,Cne,Rne,gJe,kne,Nne=_(()=>{vne="required",$e="type",ct="fn",ut="argv",ju="ref",Gu="booleanEquals",an="stringEquals",xne="sigv4",Pne="sts",bne="us-east-1",Wt="endpoint",mne="https://sts.{Region}.{PartitionResult#dnsSuffix}",Sa="tree",Xm="error",I2="getAttr",gne={[vne]:!1,[$e]:"string"},b2={[vne]:!0,default:!1,[$e]:"boolean"},Ine={[ju]:"Endpoint"},fne={[ct]:"isSet",[ut]:[{[ju]:"Region"}]},cn={[ju]:"Region"},hne={[ct]:"aws.partition",[ut]:[cn],assign:"PartitionResult"},Ane={[ju]:"UseFIPS"},Tne={[ju]:"UseDualStack"},vn={url:"https://sts.amazonaws.com",properties:{authSchemes:[{name:xne,signingName:Pne,signingRegion:bne}]},headers:{}},js={},Sne={conditions:[{[ct]:an,[ut]:[cn,"aws-global"]}],[Wt]:vn,[$e]:Wt},wne={[ct]:Gu,[ut]:[Ane,!0]},Dne={[ct]:Gu,[ut]:[Tne,!0]},Ene={[ct]:I2,[ut]:[{[ju]:"PartitionResult"},"supportsFIPS"]},One={[ju]:"PartitionResult"},yne={[ct]:Gu,[ut]:[!0,{[ct]:I2,[ut]:[One,"supportsDualStack"]}]},_ne=[{[ct]:"isSet",[ut]:[Ine]}],Cne=[wne],Rne=[Dne],gJe={version:"1.0",parameters:{Region:gne,UseDualStack:b2,UseFIPS:b2,Endpoint:gne,UseGlobalEndpoint:b2},rules:[{conditions:[{[ct]:Gu,[ut]:[{[ju]:"UseGlobalEndpoint"},!0]},{[ct]:"not",[ut]:_ne},fne,hne,{[ct]:Gu,[ut]:[Ane,!1]},{[ct]:Gu,[ut]:[Tne,!1]}],rules:[{conditions:[{[ct]:an,[ut]:[cn,"ap-northeast-1"]}],endpoint:vn,[$e]:Wt},{conditions:[{[ct]:an,[ut]:[cn,"ap-south-1"]}],endpoint:vn,[$e]:Wt},{conditions:[{[ct]:an,[ut]:[cn,"ap-southeast-1"]}],endpoint:vn,[$e]:Wt},{conditions:[{[ct]:an,[ut]:[cn,"ap-southeast-2"]}],endpoint:vn,[$e]:Wt},Sne,{conditions:[{[ct]:an,[ut]:[cn,"ca-central-1"]}],endpoint:vn,[$e]:Wt},{conditions:[{[ct]:an,[ut]:[cn,"eu-central-1"]}],endpoint:vn,[$e]:Wt},{conditions:[{[ct]:an,[ut]:[cn,"eu-north-1"]}],endpoint:vn,[$e]:Wt},{conditions:[{[ct]:an,[ut]:[cn,"eu-west-1"]}],endpoint:vn,[$e]:Wt},{conditions:[{[ct]:an,[ut]:[cn,"eu-west-2"]}],endpoint:vn,[$e]:Wt},{conditions:[{[ct]:an,[ut]:[cn,"eu-west-3"]}],endpoint:vn,[$e]:Wt},{conditions:[{[ct]:an,[ut]:[cn,"sa-east-1"]}],endpoint:vn,[$e]:Wt},{conditions:[{[ct]:an,[ut]:[cn,bne]}],endpoint:vn,[$e]:Wt},{conditions:[{[ct]:an,[ut]:[cn,"us-east-2"]}],endpoint:vn,[$e]:Wt},{conditions:[{[ct]:an,[ut]:[cn,"us-west-1"]}],endpoint:vn,[$e]:Wt},{conditions:[{[ct]:an,[ut]:[cn,"us-west-2"]}],endpoint:vn,[$e]:Wt},{endpoint:{url:mne,properties:{authSchemes:[{name:xne,signingName:Pne,signingRegion:"{Region}"}]},headers:js},[$e]:Wt}],[$e]:Sa},{conditions:_ne,rules:[{conditions:Cne,error:"Invalid Configuration: FIPS and custom endpoint are not supported",[$e]:Xm},{conditions:Rne,error:"Invalid Configuration: Dualstack and custom endpoint are not supported",[$e]:Xm},{endpoint:{url:Ine,properties:js,headers:js},[$e]:Wt}],[$e]:Sa},{conditions:[fne],rules:[{conditions:[hne],rules:[{conditions:[wne,Dne],rules:[{conditions:[{[ct]:Gu,[ut]:[!0,Ene]},yne],rules:[{endpoint:{url:"https://sts-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:js,headers:js},[$e]:Wt}],[$e]:Sa},{error:"FIPS and DualStack are enabled, but this partition does not support one or both",[$e]:Xm}],[$e]:Sa},{conditions:Cne,rules:[{conditions:[{[ct]:Gu,[ut]:[Ene,!0]}],rules:[{conditions:[{[ct]:an,[ut]:[{[ct]:I2,[ut]:[One,"name"]},"aws-us-gov"]}],endpoint:{url:"https://sts.{Region}.amazonaws.com",properties:js,headers:js},[$e]:Wt},{endpoint:{url:"https://sts-fips.{Region}.{PartitionResult#dnsSuffix}",properties:js,headers:js},[$e]:Wt}],[$e]:Sa},{error:"FIPS is enabled but this partition does not support FIPS",[$e]:Xm}],[$e]:Sa},{conditions:Rne,rules:[{conditions:[yne],rules:[{endpoint:{url:"https://sts.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:js,headers:js},[$e]:Wt}],[$e]:Sa},{error:"DualStack is enabled but this partition does not support DualStack",[$e]:Xm}],[$e]:Sa},Sne,{endpoint:{url:mne,properties:js,headers:js},[$e]:Wt}],[$e]:Sa}],[$e]:Sa},{error:"Invalid Configuration: Missing Region",[$e]:Xm}]},kne=gJe});var Lne,Jm,fJe,Mne,Fne=_(()=>{Lne=O(Ax()),Jm=require("@smithy/util-endpoints");Nne();fJe=new Jm.EndpointCache({size:50,params:["Endpoint","Region","UseDualStack","UseFIPS","UseGlobalEndpoint"]}),Mne=(t,e={})=>fJe.get(t,()=>(0,Jm.resolveEndpoint)(kne,{endpointParams:t,logger:e.logger}));Jm.customEndpointFunctions.aws=Lne.awsEndpointFunctions});var Bne,ds,qP=_(()=>{Bne=require("@smithy/smithy-client"),ds=class t extends Bne.ServiceException{constructor(e){super(e),Object.setPrototypeOf(this,t.prototype)}}});var yE,_E,CE,RE,vE,xE,PE,A2=_(()=>{qP();yE=class t extends ds{name="ExpiredTokenException";$fault="client";constructor(e){super({name:"ExpiredTokenException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},_E=class t extends ds{name="MalformedPolicyDocumentException";$fault="client";constructor(e){super({name:"MalformedPolicyDocumentException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},CE=class t extends ds{name="PackedPolicyTooLargeException";$fault="client";constructor(e){super({name:"PackedPolicyTooLargeException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},RE=class t extends ds{name="RegionDisabledException";$fault="client";constructor(e){super({name:"RegionDisabledException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},vE=class t extends ds{name="IDPRejectedClaimException";$fault="client";constructor(e){super({name:"IDPRejectedClaimException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},xE=class t extends ds{name="InvalidIdentityTokenException";$fault="client";constructor(e){super({name:"InvalidIdentityTokenException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},PE=class t extends ds{name="IDPCommunicationErrorException";$fault="client";constructor(e){super({name:"IDPCommunicationErrorException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}}});var O2,hJe,SJe,EJe,yJe,_Je,CJe,T2,RJe,vJe,xJe,PJe,w2,bJe,Une,IJe,AJe,TJe,wJe,DJe,OJe,kJe,NJe,qne,$ne,LJe,MJe,FJe,BJe,UJe,qJe,Gne,$Je,GJe,jne,jJe,Vne,VJe,HJe,D2,zJe,WJe,KJe,QJe,XJe,JJe,YJe,ZJe,eYe,tYe,Ad,Td,rYe,wd,Dd,Od,nYe,Hne,sYe,Kt,zne,Wne,Vu,Kne,Qne,Xne,Jne,Yne,Zne,ese,k2,oYe,iYe,N2,tse,rse,nse,sse,L2,ose,ise,ase,cse,aYe,cYe,M2,F2,bE=_(()=>{O2=require("@smithy/core/schema");A2();qP();hJe="Arn",SJe="AccessKeyId",EJe="AssumeRole",yJe="AssumedRoleId",_Je="AssumeRoleRequest",CJe="AssumeRoleResponse",T2="AssumedRoleUser",RJe="AssumeRoleWithWebIdentity",vJe="AssumeRoleWithWebIdentityRequest",xJe="AssumeRoleWithWebIdentityResponse",PJe="Audience",w2="Credentials",bJe="ContextAssertion",Une="DurationSeconds",IJe="Expiration",AJe="ExternalId",TJe="ExpiredTokenException",wJe="IDPCommunicationErrorException",DJe="IDPRejectedClaimException",OJe="InvalidIdentityTokenException",kJe="Key",NJe="MalformedPolicyDocumentException",qne="Policy",$ne="PolicyArns",LJe="ProviderArn",MJe="ProvidedContexts",FJe="ProvidedContextsListType",BJe="ProvidedContext",UJe="PolicyDescriptorType",qJe="ProviderId",Gne="PackedPolicySize",$Je="PackedPolicyTooLargeException",GJe="Provider",jne="RoleArn",jJe="RegionDisabledException",Vne="RoleSessionName",VJe="SecretAccessKey",HJe="SubjectFromWebIdentityToken",D2="SourceIdentity",zJe="SerialNumber",WJe="SessionToken",KJe="Tags",QJe="TokenCode",XJe="TransitiveTagKeys",JJe="Tag",YJe="Value",ZJe="WebIdentityToken",eYe="arn",tYe="accessKeySecretType",Ad="awsQueryError",Td="client",rYe="clientTokenType",wd="error",Dd="httpError",Od="message",nYe="policyDescriptorListType",Hne="smithy.ts.sdk.synthetic.com.amazonaws.sts",sYe="tagListType",Kt="com.amazonaws.sts",zne=O2.TypeRegistry.for(Hne),Wne=[-3,Hne,"STSServiceException",0,[],[]];zne.registerError(Wne,ds);Vu=O2.TypeRegistry.for(Kt),Kne=[-3,Kt,TJe,{[Ad]:["ExpiredTokenException",400],[wd]:Td,[Dd]:400},[Od],[0]];Vu.registerError(Kne,yE);Qne=[-3,Kt,wJe,{[Ad]:["IDPCommunicationError",400],[wd]:Td,[Dd]:400},[Od],[0]];Vu.registerError(Qne,PE);Xne=[-3,Kt,DJe,{[Ad]:["IDPRejectedClaim",403],[wd]:Td,[Dd]:403},[Od],[0]];Vu.registerError(Xne,vE);Jne=[-3,Kt,OJe,{[Ad]:["InvalidIdentityToken",400],[wd]:Td,[Dd]:400},[Od],[0]];Vu.registerError(Jne,xE);Yne=[-3,Kt,NJe,{[Ad]:["MalformedPolicyDocument",400],[wd]:Td,[Dd]:400},[Od],[0]];Vu.registerError(Yne,_E);Zne=[-3,Kt,$Je,{[Ad]:["PackedPolicyTooLarge",400],[wd]:Td,[Dd]:400},[Od],[0]];Vu.registerError(Zne,CE);ese=[-3,Kt,jJe,{[Ad]:["RegionDisabledException",403],[wd]:Td,[Dd]:403},[Od],[0]];Vu.registerError(ese,RE);k2=[zne,Vu],oYe=[0,Kt,tYe,8,0],iYe=[0,Kt,rYe,8,0],N2=[3,Kt,T2,0,[yJe,hJe],[0,0],2],tse=[3,Kt,_Je,0,[jne,Vne,$ne,qne,Une,KJe,XJe,AJe,zJe,QJe,D2,MJe],[0,0,()=>cse,0,1,()=>cYe,64,0,0,0,0,()=>aYe],2],rse=[3,Kt,CJe,0,[w2,T2,Gne,D2],[[()=>L2,0],()=>N2,1,0]],nse=[3,Kt,vJe,0,[jne,Vne,ZJe,qJe,$ne,qne,Une],[0,0,[()=>iYe,0],0,()=>cse,0,1],3],sse=[3,Kt,xJe,0,[w2,HJe,T2,Gne,GJe,PJe,D2],[[()=>L2,0],0,()=>N2,1,0,0,0]],L2=[3,Kt,w2,0,[SJe,VJe,WJe,IJe],[0,[()=>oYe,0],0,4],4],ose=[3,Kt,UJe,0,[eYe],[0]],ise=[3,Kt,BJe,0,[LJe,bJe],[0,0]],ase=[3,Kt,JJe,0,[kJe,YJe],[0,0],2],cse=[1,Kt,nYe,0,()=>ose],aYe=[1,Kt,FJe,0,()=>ise],cYe=[1,Kt,sYe,0,()=>ase],M2=[9,Kt,EJe,0,()=>tse,()=>rse],F2=[9,Kt,RJe,0,()=>nse,()=>sse]});var use,lse,dse,$P,GP,pse,mse=_(()=>{on();_d();use=require("@smithy/core"),lse=require("@smithy/smithy-client"),dse=require("@smithy/url-parser"),$P=require("@smithy/util-base64"),GP=require("@smithy/util-utf8");P2();Fne();bE();pse=t=>({apiVersion:"2011-06-15",base64Decoder:t?.base64Decoder??$P.fromBase64,base64Encoder:t?.base64Encoder??$P.toBase64,disableHostPrefix:t?.disableHostPrefix??!1,endpointProvider:t?.endpointProvider??Mne,extensions:t?.extensions??[],httpAuthSchemeProvider:t?.httpAuthSchemeProvider??lne,httpAuthSchemes:t?.httpAuthSchemes??[{schemeId:"aws.auth#sigv4",identityProvider:e=>e.getIdentityProvider("aws.auth#sigv4"),signer:new En},{schemeId:"smithy.api#noAuth",identityProvider:e=>e.getIdentityProvider("smithy.api#noAuth")||(async()=>({})),signer:new use.NoAuthSigner}],logger:t?.logger??new lse.NoOpLogger,protocol:t?.protocol??Tu,protocolSettings:t?.protocolSettings??{defaultNamespace:"com.amazonaws.sts",errorTypeRegistries:k2,xmlNamespace:"https://sts.amazonaws.com/doc/2011-06-15/",version:"2011-06-15",serviceTarget:"AWSSecurityTokenServiceV20110615"},serviceId:t?.serviceId??"STS",urlParser:t?.urlParser??dse.parseUrl,utf8Decoder:t?.utf8Decoder??GP.fromUtf8,utf8Encoder:t?.utf8Encoder??GP.toUtf8})});var jP,zu,gse,fse,VP,Hu,HP,zP,hse,Sse,Ese,yse,_se=_(()=>{Ix();on();jP=O(km()),zu=require("@smithy/config-resolver"),gse=require("@smithy/core"),fse=require("@smithy/hash-node"),VP=require("@smithy/middleware-retry"),Hu=require("@smithy/node-config-provider"),HP=require("@smithy/node-http-handler"),zP=require("@smithy/smithy-client"),hse=require("@smithy/util-body-length-node"),Sse=require("@smithy/util-defaults-mode-node"),Ese=require("@smithy/util-retry");mse();yse=t=>{(0,zP.emitWarningIfUnsupportedVersion)(process.version);let e=(0,Sse.resolveDefaultsModeConfig)(t),r=()=>e().then(zP.loadConfigsForDefaultMode),n=pse(t);Cu(process.version);let s={profile:t?.profile,logger:n.logger};return{...n,...t,runtime:"node",defaultsMode:e,authSchemePreference:t?.authSchemePreference??(0,Hu.loadConfig)(vu,s),bodyLengthChecker:t?.bodyLengthChecker??hse.calculateBodyLength,defaultUserAgentProvider:t?.defaultUserAgentProvider??(0,jP.createDefaultUserAgentProvider)({serviceId:n.serviceId,clientVersion:Om.version}),httpAuthSchemes:t?.httpAuthSchemes??[{schemeId:"aws.auth#sigv4",identityProvider:o=>o.getIdentityProvider("aws.auth#sigv4")||(async i=>await t.credentialDefaultProvider(i?.__config||{})()),signer:new En},{schemeId:"smithy.api#noAuth",identityProvider:o=>o.getIdentityProvider("smithy.api#noAuth")||(async()=>({})),signer:new gse.NoAuthSigner}],maxAttempts:t?.maxAttempts??(0,Hu.loadConfig)(VP.NODE_MAX_ATTEMPT_CONFIG_OPTIONS,t),region:t?.region??(0,Hu.loadConfig)(zu.NODE_REGION_CONFIG_OPTIONS,{...zu.NODE_REGION_CONFIG_FILE_OPTIONS,...s}),requestHandler:HP.NodeHttpHandler.create(t?.requestHandler??r),retryMode:t?.retryMode??(0,Hu.loadConfig)({...VP.NODE_RETRY_MODE_CONFIG_OPTIONS,default:async()=>(await r()).retryMode||Ese.DEFAULT_RETRY_MODE},t),sha256:t?.sha256??fse.Hash.bind(null,"sha256"),streamCollector:t?.streamCollector??HP.streamCollector,useDualstackEndpoint:t?.useDualstackEndpoint??(0,Hu.loadConfig)(zu.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS,s),useFipsEndpoint:t?.useFipsEndpoint??(0,Hu.loadConfig)(zu.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS,s),userAgentAppId:t?.userAgentAppId??(0,Hu.loadConfig)(jP.NODE_APP_ID_CONFIG_OPTIONS,s)}}});var Cse,Rse,vse=_(()=>{Cse=t=>{let e=t.httpAuthSchemes,r=t.httpAuthSchemeProvider,n=t.credentials;return{setHttpAuthScheme(s){let o=e.findIndex(i=>i.schemeId===s.schemeId);o===-1?e.push(s):e.splice(o,1,s)},httpAuthSchemes(){return e},setHttpAuthSchemeProvider(s){r=s},httpAuthSchemeProvider(){return r},setCredentials(s){n=s},credentials(){return n}}},Rse=t=>({httpAuthSchemes:t.httpAuthSchemes(),httpAuthSchemeProvider:t.httpAuthSchemeProvider(),credentials:t.credentials()})});var WP,KP,QP,xse,Pse=_(()=>{WP=O(vd()),KP=require("@smithy/protocol-http"),QP=require("@smithy/smithy-client");vse();xse=(t,e)=>{let r=Object.assign((0,WP.getAwsRegionExtensionConfiguration)(t),(0,QP.getDefaultExtensionConfiguration)(t),(0,KP.getHttpHandlerExtensionConfiguration)(t),Cse(t));return e.forEach(n=>n.configure(r)),Object.assign(t,(0,WP.resolveAwsRegionExtensionConfiguration)(r),(0,QP.resolveDefaultRuntimeConfig)(r),(0,KP.resolveHttpHandlerRuntimeConfig)(r),Rse(r))}});var XP,bse,Ise,JP,Ase,Ym,Tse,wse,Dse,YP,B2,ha,EE=_(()=>{XP=O(gm()),bse=O(fm()),Ise=O(hm()),JP=O(Cd()),Ase=require("@smithy/config-resolver"),Ym=require("@smithy/core"),Tse=require("@smithy/core/schema"),wse=require("@smithy/middleware-content-length"),Dse=require("@smithy/middleware-endpoint"),YP=require("@smithy/middleware-retry"),B2=require("@smithy/smithy-client");P2();UP();_se();Pse();ha=class extends B2.Client{config;constructor(...[e]){let r=yse(e||{});super(r),this.initConfig=r;let n=pne(r),s=(0,JP.resolveUserAgentConfig)(n),o=(0,YP.resolveRetryConfig)(s),i=(0,Ase.resolveRegionConfig)(o),a=(0,XP.resolveHostHeaderConfig)(i),c=(0,Dse.resolveEndpointConfig)(a),u=dne(c),l=xse(u,e?.extensions||[]);this.config=l,this.middlewareStack.use((0,Tse.getSchemaSerdePlugin)(this.config)),this.middlewareStack.use((0,JP.getUserAgentPlugin)(this.config)),this.middlewareStack.use((0,YP.getRetryPlugin)(this.config)),this.middlewareStack.use((0,wse.getContentLengthPlugin)(this.config)),this.middlewareStack.use((0,XP.getHostHeaderPlugin)(this.config)),this.middlewareStack.use((0,bse.getLoggerPlugin)(this.config)),this.middlewareStack.use((0,Ise.getRecursionDetectionPlugin)(this.config)),this.middlewareStack.use((0,Ym.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config,{httpAuthSchemeParametersProvider:une,identityProviderConfigProvider:async d=>new Ym.DefaultIdentityProviderConfig({"aws.auth#sigv4":d.credentials})})),this.middlewareStack.use((0,Ym.getHttpSigningPlugin)(this.config))}destroy(){super.destroy()}}});var Ose,kse,kd,ZP=_(()=>{Ose=require("@smithy/middleware-endpoint"),kse=require("@smithy/smithy-client");UP();bE();kd=class extends kse.Command.classBuilder().ep(BP).m(function(e,r,n,s){return[(0,Ose.getEndpointPlugin)(n,e.getEndpointParameterInstructions())]}).s("AWSSecurityTokenServiceV20110615","AssumeRole",{}).n("STSClient","AssumeRoleCommand").sc(M2).build(){}});var Nse,Lse,Nd,eb=_(()=>{Nse=require("@smithy/middleware-endpoint"),Lse=require("@smithy/smithy-client");UP();bE();Nd=class extends Lse.Command.classBuilder().ep(BP).m(function(e,r,n,s){return[(0,Nse.getEndpointPlugin)(n,e.getEndpointParameterInstructions())]}).s("AWSSecurityTokenServiceV20110615","AssumeRoleWithWebIdentity",{}).n("STSClient","AssumeRoleWithWebIdentityCommand").sc(F2).build(){}});var Mse,uYe,tb,Fse=_(()=>{Mse=require("@smithy/smithy-client");ZP();eb();EE();uYe={AssumeRoleCommand:kd,AssumeRoleWithWebIdentityCommand:Nd},tb=class extends ha{};(0,Mse.createAggregatedClient)(uYe,tb)});var Bse=_(()=>{ZP();eb()});var Use=_(()=>{});var qse,$se,Gse,jse,Vse,Hse,zse=_(()=>{vo();qse=O(vd());ZP();eb();$se=t=>{if(typeof t?.Arn=="string"){let e=t.Arn.split(":");if(e.length>4&&e[4]!=="")return e[4]}},Gse=async(t,e,r,n={})=>{let s=typeof t=="function"?await t():t,o=typeof e=="function"?await e():e,i="",a=s??o??(i=await(0,qse.stsRegionDefaultResolver)(n)());return r?.debug?.("@aws-sdk/client-sts::resolveRegion","accepting first of:",`${s} (credential provider clientConfig)`,`${o} (contextual client)`,`${i} (STS default: AWS_REGION, profile region, or us-east-1)`),a},jse=(t,e)=>{let r,n;return async(s,o)=>{if(n=s,!r){let{logger:l=t?.parentClientConfig?.logger,profile:d=t?.parentClientConfig?.profile,region:p,requestHandler:g=t?.parentClientConfig?.requestHandler,credentialProviderLogger:y,userAgentAppId:R=t?.parentClientConfig?.userAgentAppId}=t,D=await Gse(p,t?.parentClientConfig?.region,y,{logger:l,profile:d}),B=!Hse(g);r=new e({...t,userAgentAppId:R,profile:d,credentialDefaultProvider:()=>async()=>n,region:D,requestHandler:B?g:void 0,logger:l})}let{Credentials:i,AssumedRoleUser:a}=await r.send(new kd(o));if(!i||!i.AccessKeyId||!i.SecretAccessKey)throw new Error(`Invalid response from STS.assumeRole call with role ${o.RoleArn}`);let c=$se(a),u={accessKeyId:i.AccessKeyId,secretAccessKey:i.SecretAccessKey,sessionToken:i.SessionToken,expiration:i.Expiration,...i.CredentialScope&&{credentialScope:i.CredentialScope},...c&&{accountId:c}};return Ru(u,"CREDENTIALS_STS_ASSUME_ROLE","i"),u}},Vse=(t,e)=>{let r;return async n=>{if(!r){let{logger:c=t?.parentClientConfig?.logger,profile:u=t?.parentClientConfig?.profile,region:l,requestHandler:d=t?.parentClientConfig?.requestHandler,credentialProviderLogger:p,userAgentAppId:g=t?.parentClientConfig?.userAgentAppId}=t,y=await Gse(l,t?.parentClientConfig?.region,p,{logger:c,profile:u}),R=!Hse(d);r=new e({...t,userAgentAppId:g,profile:u,region:y,requestHandler:R?d:void 0,logger:c})}let{Credentials:s,AssumedRoleUser:o}=await r.send(new Nd(n));if(!s||!s.AccessKeyId||!s.SecretAccessKey)throw new Error(`Invalid response from STS.assumeRoleWithWebIdentity call with role ${n.RoleArn}`);let i=$se(o),a={accessKeyId:s.AccessKeyId,secretAccessKey:s.SecretAccessKey,sessionToken:s.SessionToken,expiration:s.Expiration,...s.CredentialScope&&{credentialScope:s.CredentialScope},...i&&{accountId:i}};return i&&Ru(a,"RESOLVED_ACCOUNT_ID","T"),Ru(a,"CREDENTIALS_STS_ASSUME_ROLE_WEB_ID","k"),a}},Hse=t=>t?.metadata?.handlerProtocol==="h2"});var Wse,Kse,Qse,lYe,Xse=_(()=>{zse();EE();Wse=(t,e)=>e?class extends t{constructor(n){super(n);for(let s of e)this.middlewareStack.use(s)}}:t,Kse=(t={},e)=>jse(t,Wse(ha,e)),Qse=(t={},e)=>Vse(t,Wse(ha,e)),lYe=t=>e=>t({roleAssumer:Kse(e),roleAssumerWithWebIdentity:Qse(e),...e})});var U2={};wt(U2,{AssumeRole$:()=>M2,AssumeRoleCommand:()=>kd,AssumeRoleRequest$:()=>tse,AssumeRoleResponse$:()=>rse,AssumeRoleWithWebIdentity$:()=>F2,AssumeRoleWithWebIdentityCommand:()=>Nd,AssumeRoleWithWebIdentityRequest$:()=>nse,AssumeRoleWithWebIdentityResponse$:()=>sse,AssumedRoleUser$:()=>N2,Credentials$:()=>L2,ExpiredTokenException:()=>yE,ExpiredTokenException$:()=>Kne,IDPCommunicationErrorException:()=>PE,IDPCommunicationErrorException$:()=>Qne,IDPRejectedClaimException:()=>vE,IDPRejectedClaimException$:()=>Xne,InvalidIdentityTokenException:()=>xE,InvalidIdentityTokenException$:()=>Jne,MalformedPolicyDocumentException:()=>_E,MalformedPolicyDocumentException$:()=>Yne,PackedPolicyTooLargeException:()=>CE,PackedPolicyTooLargeException$:()=>Zne,PolicyDescriptorType$:()=>ose,ProvidedContext$:()=>ise,RegionDisabledException:()=>RE,RegionDisabledException$:()=>ese,STS:()=>tb,STSClient:()=>ha,STSServiceException:()=>ds,STSServiceException$:()=>Wne,Tag$:()=>ase,__Client:()=>B2.Client,decorateDefaultCredentialProvider:()=>lYe,errorTypeRegistries:()=>k2,getDefaultRoleAssumer:()=>Kse,getDefaultRoleAssumerWithWebIdentity:()=>Qse});var q2=_(()=>{EE();Fse();Bse();bE();A2();Use();Xse();qP()});var j2=b(Jse=>{"use strict";var G2=require("@smithy/shared-ini-file-loader"),$2=require("@smithy/property-provider"),dYe=require("child_process"),pYe=require("util"),mYe=(vo(),ue(cc)),gYe=(t,e,r)=>{if(e.Version!==1)throw Error(`Profile ${t} credential_process did not return Version 1.`);if(e.AccessKeyId===void 0||e.SecretAccessKey===void 0)throw Error(`Profile ${t} credential_process returned invalid credentials.`);if(e.Expiration){let o=new Date;if(new Date(e.Expiration){let n=e[t];if(e[t]){let s=n.credential_process;if(s!==void 0){let o=pYe.promisify(G2.externalDataInterceptor?.getTokenRecord?.().exec??dYe.exec);try{let{stdout:i}=await o(s),a;try{a=JSON.parse(i.trim())}catch{throw Error(`Profile ${t} credential_process returned invalid JSON.`)}return gYe(t,a,e)}catch(i){throw new $2.CredentialsProviderError(i.message,{logger:r})}}else throw new $2.CredentialsProviderError(`Profile ${t} did not contain credential_process.`,{logger:r})}else throw new $2.CredentialsProviderError(`Profile ${t} could not be found in shared credentials file.`,{logger:r})},hYe=(t={})=>async({callerClientConfig:e}={})=>{t.logger?.debug("@aws-sdk/credential-provider-process - fromProcess");let r=await G2.parseKnownFiles(t);return fYe(G2.getProfileName({profile:t.profile??e?.profile}),r,t.logger)};Jse.fromProcess=hYe});var V2=b(Ea=>{"use strict";var SYe=Ea&&Ea.__createBinding||(Object.create?function(t,e,r,n){n===void 0&&(n=r);var s=Object.getOwnPropertyDescriptor(e,r);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,n,s)}:function(t,e,r,n){n===void 0&&(n=r),t[n]=e[r]}),EYe=Ea&&Ea.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),yYe=Ea&&Ea.__importStar||function(){var t=function(e){return t=Object.getOwnPropertyNames||function(r){var n=[];for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(n[n.length]=s);return n},t(e)};return function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var n=t(e),s=0;sasync e=>{t.logger?.debug("@aws-sdk/credential-provider-web-identity - fromWebToken");let{roleArn:r,roleSessionName:n,webIdentityToken:s,providerId:o,policyArns:i,policy:a,durationSeconds:c}=t,{roleAssumerWithWebIdentity:u}=t;if(!u){let{getDefaultRoleAssumerWithWebIdentity:l}=await Promise.resolve().then(()=>yYe((q2(),ue(U2))));u=l({...t.clientConfig,credentialProviderLogger:t.logger,parentClientConfig:{...e?.callerClientConfig,...t.parentClientConfig}},t.clientPlugins)}return u({RoleArn:r,RoleSessionName:n??`aws-sdk-js-session-${Date.now()}`,WebIdentityToken:s,ProviderId:o,PolicyArns:i,Policy:a,DurationSeconds:c})};Ea.fromWebToken=_Ye});var Zse=b(rb=>{"use strict";Object.defineProperty(rb,"__esModule",{value:!0});rb.fromTokenFile=void 0;var CYe=(vo(),ue(cc)),RYe=require("@smithy/property-provider"),vYe=require("@smithy/shared-ini-file-loader"),xYe=require("fs"),PYe=V2(),Yse="AWS_WEB_IDENTITY_TOKEN_FILE",bYe="AWS_ROLE_ARN",IYe="AWS_ROLE_SESSION_NAME",AYe=(t={})=>async e=>{t.logger?.debug("@aws-sdk/credential-provider-web-identity - fromTokenFile");let r=t?.webIdentityTokenFile??process.env[Yse],n=t?.roleArn??process.env[bYe],s=t?.roleSessionName??process.env[IYe];if(!r||!n)throw new RYe.CredentialsProviderError("Web identity configuration not specified",{logger:t.logger});let o=await(0,PYe.fromWebToken)({...t,webIdentityToken:vYe.externalDataInterceptor?.getTokenRecord?.()[r]??(0,xYe.readFileSync)(r,{encoding:"ascii"}),roleArn:n,roleSessionName:s})(e);return r===process.env[Yse]&&(0,CYe.setCredentialFeature)(o,"CREDENTIALS_ENV_VARS_STS_WEB_ID_TOKEN","h"),o};rb.fromTokenFile=AYe});var H2=b(gc=>{"use strict";var nb=Zse(),sb=V2();Object.prototype.hasOwnProperty.call(nb,"__proto__")&&!Object.prototype.hasOwnProperty.call(gc,"__proto__")&&Object.defineProperty(gc,"__proto__",{enumerable:!0,value:nb.__proto__});Object.keys(nb).forEach(function(t){t!=="default"&&!Object.prototype.hasOwnProperty.call(gc,t)&&(gc[t]=nb[t])});Object.prototype.hasOwnProperty.call(sb,"__proto__")&&!Object.prototype.hasOwnProperty.call(gc,"__proto__")&&Object.defineProperty(gc,"__proto__",{enumerable:!0,value:sb.__proto__});Object.keys(sb).forEach(function(t){t!=="default"&&!Object.prototype.hasOwnProperty.call(gc,t)&&(gc[t]=sb[t])})});var ooe=b(soe=>{"use strict";var W2=require("@smithy/shared-ini-file-loader"),IE=require("@smithy/property-provider"),fc=(vo(),ue(cc)),TYe=cne(),wYe=(t,e,r)=>{let n={EcsContainer:async s=>{let{fromHttp:o}=await Promise.resolve().then(()=>O(TG())),{fromContainerMetadata:i}=await import("@smithy/credential-provider-imds");return r?.debug("@aws-sdk/credential-provider-ini - credential_source is EcsContainer"),async()=>IE.chain(o(s??{}),i(s))().then(z2)},Ec2InstanceMetadata:async s=>{r?.debug("@aws-sdk/credential-provider-ini - credential_source is Ec2InstanceMetadata");let{fromInstanceMetadata:o}=await import("@smithy/credential-provider-imds");return async()=>o(s)().then(z2)},Environment:async s=>{r?.debug("@aws-sdk/credential-provider-ini - credential_source is Environment");let{fromEnv:o}=await Promise.resolve().then(()=>O(IG()));return async()=>o(s)().then(z2)}};if(t in n)return n[t];throw new IE.CredentialsProviderError(`Unsupported credential source in profile ${e}. Got ${t}, expected EcsContainer or Ec2InstanceMetadata or Environment.`,{logger:r})},z2=t=>fc.setCredentialFeature(t,"CREDENTIALS_PROFILE_NAMED_PROVIDER","p"),DYe=(t,{profile:e="default",logger:r}={})=>!!t&&typeof t=="object"&&typeof t.role_arn=="string"&&["undefined","string"].indexOf(typeof t.role_session_name)>-1&&["undefined","string"].indexOf(typeof t.external_id)>-1&&["undefined","string"].indexOf(typeof t.mfa_serial)>-1&&(OYe(t,{profile:e,logger:r})||kYe(t,{profile:e,logger:r})),OYe=(t,{profile:e,logger:r})=>{let n=typeof t.source_profile=="string"&&typeof t.credential_source>"u";return n&&r?.debug?.(` ${e} isAssumeRoleWithSourceProfile source_profile=${t.source_profile}`),n},kYe=(t,{profile:e,logger:r})=>{let n=typeof t.credential_source=="string"&&typeof t.source_profile>"u";return n&&r?.debug?.(` ${e} isCredentialSourceProfile credential_source=${t.credential_source}`),n},NYe=async(t,e,r,n,s={},o)=>{r.logger?.debug("@aws-sdk/credential-provider-ini - resolveAssumeRoleCredentials (STS)");let i=e[t],{source_profile:a,region:c}=i;if(!r.roleAssumer){let{getDefaultRoleAssumer:l}=await Promise.resolve().then(()=>(q2(),U2));r.roleAssumer=l({...r.clientConfig,credentialProviderLogger:r.logger,parentClientConfig:{...n,...r?.parentClientConfig,region:c??r?.parentClientConfig?.region??n?.region}},r.clientPlugins)}if(a&&a in s)throw new IE.CredentialsProviderError(`Detected a cycle attempting to resolve credentials for profile ${W2.getProfileName(r)}. Profiles visited: `+Object.keys(s).join(", "),{logger:r.logger});r.logger?.debug(`@aws-sdk/credential-provider-ini - finding credential resolver using ${a?`source_profile=[${a}]`:`profile=[${t}]`}`);let u=a?o(a,e,r,n,{...s,[a]:!0},eoe(e[a]??{})):(await wYe(i.credential_source,t,r.logger)(r))();if(eoe(i))return u.then(l=>fc.setCredentialFeature(l,"CREDENTIALS_PROFILE_SOURCE_PROFILE","o"));{let l={RoleArn:i.role_arn,RoleSessionName:i.role_session_name||`aws-sdk-js-${Date.now()}`,ExternalId:i.external_id,DurationSeconds:parseInt(i.duration_seconds||"3600",10)},{mfa_serial:d}=i;if(d){if(!r.mfaCodeProvider)throw new IE.CredentialsProviderError(`Profile ${t} requires multi-factor authentication, but no MFA code callback was provided.`,{logger:r.logger,tryNextLink:!1});l.SerialNumber=d,l.TokenCode=await r.mfaCodeProvider(d)}let p=await u;return r.roleAssumer(p,l).then(g=>fc.setCredentialFeature(g,"CREDENTIALS_PROFILE_SOURCE_PROFILE","o"))}},eoe=t=>!t.role_arn&&!!t.credential_source,LYe=t=>!!(t&&t.login_session),MYe=async(t,e,r)=>{let n=await TYe.fromLoginCredentials({...e,profile:t})({callerClientConfig:r});return fc.setCredentialFeature(n,"CREDENTIALS_PROFILE_LOGIN","AC")},FYe=t=>!!t&&typeof t=="object"&&typeof t.credential_process=="string",BYe=async(t,e)=>Promise.resolve().then(()=>O(j2())).then(({fromProcess:r})=>r({...t,profile:e})().then(n=>fc.setCredentialFeature(n,"CREDENTIALS_PROFILE_PROCESS","v"))),UYe=async(t,e,r={},n)=>{let{fromSSO:s}=await Promise.resolve().then(()=>O(s2()));return s({profile:t,logger:r.logger,parentClientConfig:r.parentClientConfig,clientConfig:r.clientConfig})({callerClientConfig:n}).then(o=>e.sso_session?fc.setCredentialFeature(o,"CREDENTIALS_PROFILE_SSO","r"):fc.setCredentialFeature(o,"CREDENTIALS_PROFILE_SSO_LEGACY","t"))},qYe=t=>t&&(typeof t.sso_start_url=="string"||typeof t.sso_account_id=="string"||typeof t.sso_session=="string"||typeof t.sso_region=="string"||typeof t.sso_role_name=="string"),toe=t=>!!t&&typeof t=="object"&&typeof t.aws_access_key_id=="string"&&typeof t.aws_secret_access_key=="string"&&["undefined","string"].indexOf(typeof t.aws_session_token)>-1&&["undefined","string"].indexOf(typeof t.aws_account_id)>-1,roe=async(t,e)=>{e?.logger?.debug("@aws-sdk/credential-provider-ini - resolveStaticCredentials");let r={accessKeyId:t.aws_access_key_id,secretAccessKey:t.aws_secret_access_key,sessionToken:t.aws_session_token,...t.aws_credential_scope&&{credentialScope:t.aws_credential_scope},...t.aws_account_id&&{accountId:t.aws_account_id}};return fc.setCredentialFeature(r,"CREDENTIALS_PROFILE","n")},$Ye=t=>!!t&&typeof t=="object"&&typeof t.web_identity_token_file=="string"&&typeof t.role_arn=="string"&&["undefined","string"].indexOf(typeof t.role_session_name)>-1,GYe=async(t,e,r)=>Promise.resolve().then(()=>O(H2())).then(({fromTokenFile:n})=>n({webIdentityTokenFile:t.web_identity_token_file,roleArn:t.role_arn,roleSessionName:t.role_session_name,roleAssumerWithWebIdentity:e.roleAssumerWithWebIdentity,logger:e.logger,parentClientConfig:e.parentClientConfig})({callerClientConfig:r}).then(s=>fc.setCredentialFeature(s,"CREDENTIALS_PROFILE_STS_WEB_ID_TOKEN","q"))),noe=async(t,e,r,n,s={},o=!1)=>{let i=e[t];if(Object.keys(s).length>0&&toe(i))return roe(i,r);if(o||DYe(i,{profile:t,logger:r.logger}))return NYe(t,e,r,n,s,noe);if(toe(i))return roe(i,r);if($Ye(i))return GYe(i,r,n);if(FYe(i))return BYe(r,t);if(qYe(i))return await UYe(t,i,r,n);if(LYe(i))return MYe(t,r,n);throw new IE.CredentialsProviderError(`Could not resolve credentials using profile: [${t}] in configuration/credentials file(s).`,{logger:r.logger})},jYe=(t={})=>async({callerClientConfig:e}={})=>{t.logger?.debug("@aws-sdk/credential-provider-ini - fromIni");let r=await W2.parseKnownFiles(t);return noe(W2.getProfileName({profile:t.profile??e?.profile}),r,t,e)};soe.fromIni=jYe});var uoe=b(ob=>{"use strict";var K2=IG(),AE=require("@smithy/property-provider"),VYe=require("@smithy/shared-ini-file-loader"),ioe="AWS_EC2_METADATA_DISABLED",HYe=async t=>{let{ENV_CMDS_FULL_URI:e,ENV_CMDS_RELATIVE_URI:r,fromContainerMetadata:n,fromInstanceMetadata:s}=await import("@smithy/credential-provider-imds");if(process.env[r]||process.env[e]){t.logger?.debug("@aws-sdk/credential-provider-node - remoteProvider::fromHttp/fromContainerMetadata");let{fromHttp:o}=await Promise.resolve().then(()=>O(TG()));return AE.chain(o(t),n(t))}return process.env[ioe]&&process.env[ioe]!=="false"?async()=>{throw new AE.CredentialsProviderError("EC2 Instance Metadata Service access disabled",{logger:t.logger})}:(t.logger?.debug("@aws-sdk/credential-provider-node - remoteProvider::fromInstanceMetadata"),s(t))};function zYe(t,e){let r=WYe(t),n,s,o,i=async a=>{if(a?.forceRefresh)return await r(a);if(o?.expiration&&o?.expiration?.getTime(){o=c}).finally(()=>{s=void 0}));else return n=r(a).then(c=>{o=c}).finally(()=>{n=void 0}),i(a);return o};return i}var WYe=t=>async e=>{let r;for(let n of t)try{return await n(e)}catch(s){if(r=s,s?.tryNextLink)continue;throw s}throw r},aoe=!1,KYe=(t={})=>zYe([async()=>{if(t.profile??process.env[VYe.ENV_PROFILE])throw process.env[K2.ENV_KEY]&&process.env[K2.ENV_SECRET]&&(aoe||((t.logger?.warn&&t.logger?.constructor?.name!=="NoOpLogger"?t.logger.warn.bind(t.logger):console.warn)(`@aws-sdk/credential-provider-node - defaultProvider::fromEnv WARNING: - Multiple credential sources detected: - Both AWS_PROFILE and the pair AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY static credentials are set. - This SDK will proceed with the AWS_PROFILE value. - - However, a future version may change this behavior to prefer the ENV static credentials. - Please ensure that your environment only sets either the AWS_PROFILE or the - AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY pair. -`),aoe=!0)),new AE.CredentialsProviderError("AWS_PROFILE is set, skipping fromEnv provider.",{logger:t.logger,tryNextLink:!0});return t.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromEnv"),K2.fromEnv(t)()},async e=>{t.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromSSO");let{ssoStartUrl:r,ssoAccountId:n,ssoRegion:s,ssoRoleName:o,ssoSession:i}=t;if(!r&&!n&&!s&&!o&&!i)throw new AE.CredentialsProviderError("Skipping SSO provider in default chain (inputs do not include SSO fields).",{logger:t.logger});let{fromSSO:a}=await Promise.resolve().then(()=>O(s2()));return a(t)(e)},async e=>{t.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromIni");let{fromIni:r}=await Promise.resolve().then(()=>O(ooe()));return r(t)(e)},async e=>{t.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromProcess");let{fromProcess:r}=await Promise.resolve().then(()=>O(j2()));return r(t)(e)},async e=>{t.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromTokenFile");let{fromTokenFile:r}=await Promise.resolve().then(()=>O(H2()));return r(t)(e)},async()=>(t.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::remoteProvider"),(await HYe(t))()),async()=>{throw new AE.CredentialsProviderError("Could not load credentials from any providers",{tryNextLink:!1,logger:t.logger})}],coe),QYe=t=>t?.expiration!==void 0,coe=t=>t?.expiration!==void 0&&t.expiration.getTime()-Date.now()<3e5;ob.credentialsTreatedAsExpired=coe;ob.credentialsWillNeedRefresh=QYe;ob.defaultProvider=KYe});var TE,Q2,ko,Zm=_(()=>{TE=require("@smithy/core/schema"),Q2=require("@smithy/smithy-client"),ko=class{queryCompat;constructor(e=!1){this.queryCompat=e}resolveRestContentType(e,r){let n=r.getMemberSchemas(),s=Object.values(n).find(o=>!!o.getMergedTraits().httpPayload);if(s){let o=s.getMergedTraits().mediaType;return o||(s.isStringSchema()?"text/plain":s.isBlobSchema()?"application/octet-stream":e)}else if(!r.isUnitSchema()&&Object.values(n).find(i=>{let{httpQuery:a,httpQueryParams:c,httpHeader:u,httpLabel:l,httpPrefixHeaders:d}=i.getMergedTraits();return!a&&!c&&!u&&!l&&d===void 0}))return e}async getErrorSchemaOrThrowBaseException(e,r,n,s,o,i){let a=r,c=e;e.includes("#")&&([a,c]=e.split("#"));let u={$metadata:o,$fault:n.statusCode<500?"client":"server"},l=TE.TypeRegistry.for(a);try{return{errorSchema:i?.(l,c)??l.getSchema(e),errorMetadata:u}}catch{s.message=s.message??s.Message??"UnknownError";let p=TE.TypeRegistry.for("smithy.ts.sdk.synthetic."+a),g=p.getBaseException();if(g){let y=p.getErrorCtor(g)??Error;throw this.decorateServiceException(Object.assign(new y({name:c}),u),s)}throw this.decorateServiceException(Object.assign(new Error(c),u),s)}}decorateServiceException(e,r={}){if(this.queryCompat){let n=e.Message??r.Message,s=(0,Q2.decorateServiceException)(e,r);n&&(s.message=n),s.Error={...s.Error,Type:s.Error?.Type,Code:s.Error?.Code,Message:s.Error?.message??s.Error?.Message??n};let o=s.$metadata.requestId;return o&&(s.RequestId=o),s}return(0,Q2.decorateServiceException)(e,r)}setQueryCompatError(e,r){let n=r.headers?.["x-amzn-query-error"];if(e!==void 0&&n!=null){let[s,o]=n.split(";"),i=Object.entries(e),a={Code:s,Type:o};Object.assign(e,a);for(let[c,u]of i)a[c==="message"?"Message":c]=u;delete a.__type,e.Error=a}}queryCompatOutput(e,r){e.Error&&(r.Error=e.Error),e.Type&&(r.Type=e.Type),e.Code&&(r.Code=e.Code)}findQueryCompatibleError(e,r){try{return e.getSchema(r)}catch{return e.find(s=>TE.NormalizedSchema.of(s).getMergedTraits().awsQueryError?.[0]===r)}}}});var ib,ab,X2,loe=_(()=>{ib=require("@smithy/core/cbor"),ab=require("@smithy/core/schema");Zm();X2=class extends ib.SmithyRpcV2CborProtocol{awsQueryCompatible;mixin;constructor({defaultNamespace:e,awsQueryCompatible:r}){super({defaultNamespace:e}),this.awsQueryCompatible=!!r,this.mixin=new ko(this.awsQueryCompatible)}async serializeRequest(e,r,n){let s=await super.serializeRequest(e,r,n);return this.awsQueryCompatible&&(s.headers["x-amzn-query-mode"]="true"),s}async handleError(e,r,n,s,o){this.awsQueryCompatible&&this.mixin.setQueryCompatError(s,n);let i=(()=>{let y=n.headers["x-amzn-query-error"];return y&&this.awsQueryCompatible?y.split(";")[0]:(0,ib.loadSmithyRpcV2CborErrorCode)(n,s)??"Unknown"})(),{errorSchema:a,errorMetadata:c}=await this.mixin.getErrorSchemaOrThrowBaseException(i,this.options.defaultNamespace,n,s,o,this.awsQueryCompatible?this.mixin.findQueryCompatibleError:void 0),u=ab.NormalizedSchema.of(a),l=s.message??s.Message??"Unknown",d=ab.TypeRegistry.for(a[1]).getErrorCtor(a)??Error,p=new d(l),g={};for(let[y,R]of u.structIterator())s[y]!=null&&(g[y]=this.deserializer.readValue(R,s[y]));throw this.awsQueryCompatible&&this.mixin.queryCompatOutput(s,g),this.mixin.decorateServiceException(Object.assign(p,c,{$fault:u.getMergedTraits().error,message:l},g),s)}}});var XYe,JYe,YYe,doe=_(()=>{XYe=t=>{if(t==null)return t;if(typeof t=="number"||typeof t=="bigint"){let e=new Error(`Received number ${t} where a string was expected.`);return e.name="Warning",console.warn(e),String(t)}if(typeof t=="boolean"){let e=new Error(`Received boolean ${t} where a string was expected.`);return e.name="Warning",console.warn(e),String(t)}return t},JYe=t=>{if(t==null)return t;if(typeof t=="string"){let e=t.toLowerCase();if(t!==""&&e!=="false"&&e!=="true"){let r=new Error(`Received string "${t}" where a boolean was expected.`);r.name="Warning",console.warn(r)}return t!==""&&e!=="false"}return t},YYe=t=>{if(t==null)return t;if(typeof t=="string"){let e=Number(t);if(e.toString()!==t){let r=new Error(`Received string "${t}" where a number was expected.`);return r.name="Warning",console.warn(r),t}return e}return t}});var xn,Wu=_(()=>{xn=class{serdeContext;setSerdeContext(e){this.serdeContext=e}}});var eg,J2=_(()=>{eg=class{from;to;keys;constructor(e,r){this.from=e,this.to=r,this.keys=new Set(Object.keys(this.from).filter(n=>n!=="__type"))}mark(e){this.keys.delete(e)}hasUnknown(){return this.keys.size===1&&Object.keys(this.to).length===0}writeUnknown(){if(this.hasUnknown()){let e=this.keys.values().next().value,r=this.from[e];this.to.$unknown=[e,r]}}}});function moe(t,e,r){if(r?.source){let n=r.source;if(typeof e=="number"&&(e>Number.MAX_SAFE_INTEGER||e{poe=require("@smithy/core/serde")});var foe,hoe,cb,Y2=_(()=>{foe=require("@smithy/smithy-client"),hoe=require("@smithy/util-utf8"),cb=(t,e)=>(0,foe.collectBody)(t,e).then(r=>(e?.utf8Encoder??hoe.toUtf8)(r))});var ub,ZYe,wE,DE=_(()=>{Y2();ub=(t,e)=>cb(t,e).then(r=>{if(r.length)try{return JSON.parse(r)}catch(n){throw n?.name==="SyntaxError"&&Object.defineProperty(n,"$responseBodyText",{value:r}),n}return{}}),ZYe=async(t,e)=>{let r=await ub(t,e);return r.message=r.message??r.Message,r},wE=(t,e)=>{let r=(o,i)=>Object.keys(o).find(a=>a.toLowerCase()===i.toLowerCase()),n=o=>{let i=o;return typeof i=="number"&&(i=i.toString()),i.indexOf(",")>=0&&(i=i.split(",")[0]),i.indexOf(":")>=0&&(i=i.split(":")[0]),i.indexOf("#")>=0&&(i=i.split("#")[1]),i},s=r(t.headers,"x-amzn-errortype");if(s!==void 0)return n(t.headers[s]);if(e&&typeof e=="object"){let o=r(e,"code");if(o&&e[o]!==void 0)return n(e[o]);if(e.__type!==void 0)return n(e.__type)}}});var Soe,Eoe,Vs,yoe,OE,Z2=_(()=>{Soe=require("@smithy/core/protocols"),Eoe=require("@smithy/core/schema"),Vs=require("@smithy/core/serde"),yoe=require("@smithy/util-base64");Wu();J2();goe();DE();OE=class extends xn{settings;constructor(e){super(),this.settings=e}async read(e,r){return this._read(e,typeof r=="string"?JSON.parse(r,moe):await ub(r,this.serdeContext))}readObject(e,r){return this._read(e,r)}_read(e,r){let n=r!==null&&typeof r=="object",s=Eoe.NormalizedSchema.of(e);if(n){if(s.isStructSchema()){let i=r,a=s.isUnionSchema(),c={},u,{jsonName:l}=this.settings;l&&(u={});let d;a&&(d=new eg(i,c));for(let[p,g]of s.structIterator()){let y=p;l&&(y=g.getMergedTraits().jsonName??y,u[y]=p),a&&d.mark(y),i[y]!=null&&(c[p]=this._read(g,i[y]))}if(a)d.writeUnknown();else if(typeof i.__type=="string")for(let[p,g]of Object.entries(i)){let y=l?u[p]??p:p;y in c||(c[y]=g)}return c}if(Array.isArray(r)&&s.isListSchema()){let i=s.getValueSchema(),a=[],c=!!s.getMergedTraits().sparse;for(let u of r)(c||u!=null)&&a.push(this._read(i,u));return a}if(s.isMapSchema()){let i=s.getValueSchema(),a={},c=!!s.getMergedTraits().sparse;for(let[u,l]of Object.entries(r))(c||l!=null)&&(a[u]=this._read(i,l));return a}}if(s.isBlobSchema()&&typeof r=="string")return(0,yoe.fromBase64)(r);let o=s.getMergedTraits().mediaType;if(s.isStringSchema()&&typeof r=="string"&&o)return o==="application/json"||o.endsWith("+json")?Vs.LazyJsonString.from(r):r;if(s.isTimestampSchema()&&r!=null)switch((0,Soe.determineTimestampFormat)(s,this.settings)){case 5:return(0,Vs.parseRfc3339DateTimeWithOffset)(r);case 6:return(0,Vs.parseRfc7231DateTime)(r);case 7:return(0,Vs.parseEpochTimestamp)(r);default:return console.warn("Missing timestamp format, parsing value with Date constructor:",r),new Date(r)}if(s.isBigIntegerSchema()&&(typeof r=="number"||typeof r=="string"))return BigInt(r);if(s.isBigDecimalSchema()&&r!=null){if(r instanceof Vs.NumericValue)return r;let i=r;return i.type==="bigDecimal"&&"string"in i?new Vs.NumericValue(i.string,i.type):new Vs.NumericValue(String(r),"bigDecimal")}if(s.isNumericSchema()&&typeof r=="string"){switch(r){case"Infinity":return 1/0;case"-Infinity":return-1/0;case"NaN":return NaN}return r}if(s.isDocumentSchema())if(n){let i=Array.isArray(r)?[]:{};for(let[a,c]of Object.entries(r))c instanceof Vs.NumericValue?i[a]=c:i[a]=this._read(s,c);return i}else return structuredClone(r);return r}}});var Coe,_oe,lb,Roe=_(()=>{Coe=require("@smithy/core/serde"),_oe="\u039D",lb=class{values=new Map;counter=0;stage=0;createReplacer(){if(this.stage===1)throw new Error("@aws-sdk/core/protocols - JsonReplacer already created.");if(this.stage===2)throw new Error("@aws-sdk/core/protocols - JsonReplacer exhausted.");return this.stage=1,(e,r)=>{if(r instanceof Coe.NumericValue){let n=`${_oe+"nv"+this.counter++}_`+r.string;return this.values.set(`"${n}"`,r.string),n}if(typeof r=="bigint"){let n=r.toString(),s=`${_oe+"b"+this.counter++}_`+n;return this.values.set(`"${s}"`,n),s}return r}}replaceInJson(e){if(this.stage===0)throw new Error("@aws-sdk/core/protocols - JsonReplacer not created yet.");if(this.stage===2)throw new Error("@aws-sdk/core/protocols - JsonReplacer exhausted.");if(this.stage=2,this.counter===0)return e;for(let[r,n]of this.values)e=e.replace(r,n);return e}}});var voe,db,hc,ej,kE,tj=_(()=>{voe=require("@smithy/core/protocols"),db=require("@smithy/core/schema"),hc=require("@smithy/core/serde"),ej=require("@smithy/util-base64");Wu();Roe();kE=class extends xn{settings;buffer;useReplacer=!1;rootSchema;constructor(e){super(),this.settings=e}write(e,r){this.rootSchema=db.NormalizedSchema.of(e),this.buffer=this._write(this.rootSchema,r)}writeDiscriminatedDocument(e,r){this.write(e,r),typeof this.buffer=="object"&&(this.buffer.__type=db.NormalizedSchema.of(e).getName(!0))}flush(){let{rootSchema:e,useReplacer:r}=this;if(this.rootSchema=void 0,this.useReplacer=!1,e?.isStructSchema()||e?.isDocumentSchema()){if(!r)return JSON.stringify(this.buffer);let n=new lb;return n.replaceInJson(JSON.stringify(this.buffer,n.createReplacer(),0))}return this.buffer}_write(e,r,n){let s=r!==null&&typeof r=="object",o=db.NormalizedSchema.of(e);if(s){if(o.isStructSchema()){let i=r,a={},{jsonName:c}=this.settings,u;c&&(u={});for(let[l,d]of o.structIterator()){let p=this._write(d,i[l],o);if(p!==void 0){let g=l;c&&(g=d.getMergedTraits().jsonName??l,u[l]=g),a[g]=p}}if(o.isUnionSchema()&&Object.keys(a).length===0){let{$unknown:l}=i;if(Array.isArray(l)){let[d,p]=l;a[d]=this._write(15,p)}}else if(typeof i.__type=="string")for(let[l,d]of Object.entries(i)){let p=c?u[l]??l:l;p in a||(a[p]=this._write(15,d))}return a}if(Array.isArray(r)&&o.isListSchema()){let i=o.getValueSchema(),a=[],c=!!o.getMergedTraits().sparse;for(let u of r)(c||u!=null)&&a.push(this._write(i,u));return a}if(o.isMapSchema()){let i=o.getValueSchema(),a={},c=!!o.getMergedTraits().sparse;for(let[u,l]of Object.entries(r))(c||l!=null)&&(a[u]=this._write(i,l));return a}if(r instanceof Uint8Array&&(o.isBlobSchema()||o.isDocumentSchema()))return o===this.rootSchema?r:(this.serdeContext?.base64Encoder??ej.toBase64)(r);if(r instanceof Date&&(o.isTimestampSchema()||o.isDocumentSchema()))switch((0,voe.determineTimestampFormat)(o,this.settings)){case 5:return r.toISOString().replace(".000Z","Z");case 6:return(0,hc.dateToUtcString)(r);case 7:return r.getTime()/1e3;default:return console.warn("Missing timestamp format, using epoch seconds",r),r.getTime()/1e3}r instanceof hc.NumericValue&&(this.useReplacer=!0)}if(!(r===null&&n?.isStructSchema())){if(o.isStringSchema()){if(typeof r>"u"&&o.isIdempotencyToken())return(0,hc.generateIdempotencyToken)();let i=o.getMergedTraits().mediaType;return r!=null&&i&&(i==="application/json"||i.endsWith("+json"))?hc.LazyJsonString.from(r):r}if(typeof r=="number"&&o.isNumericSchema())return Math.abs(r)===1/0||isNaN(r)?String(r):r;if(typeof r=="string"&&o.isBlobSchema())return o===this.rootSchema?r:(this.serdeContext?.base64Encoder??ej.toBase64)(r);if(typeof r=="bigint"&&(this.useReplacer=!0),o.isDocumentSchema())if(s){let i=Array.isArray(r)?[]:{};for(let[a,c]of Object.entries(r))c instanceof hc.NumericValue?(this.useReplacer=!0,i[a]=c):i[a]=this._write(o,c);return i}else return structuredClone(r);return r}}}});var Ld,pb=_(()=>{Wu();Z2();tj();Ld=class extends xn{settings;constructor(e){super(),this.settings=e}createSerializer(){let e=new kE(this.settings);return e.setSerdeContext(this.serdeContext),e}createDeserializer(){let e=new OE(this.settings);return e.setSerdeContext(this.serdeContext),e}}});var xoe,tg,Md,mb=_(()=>{xoe=require("@smithy/core/protocols"),tg=require("@smithy/core/schema");Zm();pb();DE();Md=class extends xoe.RpcProtocol{serializer;deserializer;serviceTarget;codec;mixin;awsQueryCompatible;constructor({defaultNamespace:e,serviceTarget:r,awsQueryCompatible:n,jsonCodec:s}){super({defaultNamespace:e}),this.serviceTarget=r,this.codec=s??new Ld({timestampFormat:{useTrait:!0,default:7},jsonName:!1}),this.serializer=this.codec.createSerializer(),this.deserializer=this.codec.createDeserializer(),this.awsQueryCompatible=!!n,this.mixin=new ko(this.awsQueryCompatible)}async serializeRequest(e,r,n){let s=await super.serializeRequest(e,r,n);return s.path.endsWith("/")||(s.path+="/"),Object.assign(s.headers,{"content-type":`application/x-amz-json-${this.getJsonRpcVersion()}`,"x-amz-target":`${this.serviceTarget}.${e.name}`}),this.awsQueryCompatible&&(s.headers["x-amzn-query-mode"]="true"),((0,tg.deref)(e.input)==="unit"||!s.body)&&(s.body="{}"),s}getPayloadCodec(){return this.codec}async handleError(e,r,n,s,o){this.awsQueryCompatible&&this.mixin.setQueryCompatError(s,n);let i=wE(n,s)??"Unknown",{errorSchema:a,errorMetadata:c}=await this.mixin.getErrorSchemaOrThrowBaseException(i,this.options.defaultNamespace,n,s,o,this.awsQueryCompatible?this.mixin.findQueryCompatibleError:void 0),u=tg.NormalizedSchema.of(a),l=s.message??s.Message??"Unknown",d=tg.TypeRegistry.for(a[1]).getErrorCtor(a)??Error,p=new d(l),g={};for(let[y,R]of u.structIterator())s[y]!=null&&(g[y]=this.codec.createDeserializer().readObject(R,s[y]));throw this.awsQueryCompatible&&this.mixin.queryCompatOutput(s,g),this.mixin.decorateServiceException(Object.assign(p,c,{$fault:u.getMergedTraits().error,message:l},g),s)}}});var rj,Poe=_(()=>{mb();rj=class extends Md{constructor({defaultNamespace:e,serviceTarget:r,awsQueryCompatible:n,jsonCodec:s}){super({defaultNamespace:e,serviceTarget:r,awsQueryCompatible:n,jsonCodec:s})}getShapeId(){return"aws.protocols#awsJson1_0"}getJsonRpcVersion(){return"1.0"}getDefaultContentType(){return"application/x-amz-json-1.0"}}});var nj,boe=_(()=>{mb();nj=class extends Md{constructor({defaultNamespace:e,serviceTarget:r,awsQueryCompatible:n,jsonCodec:s}){super({defaultNamespace:e,serviceTarget:r,awsQueryCompatible:n,jsonCodec:s})}getShapeId(){return"aws.protocols#awsJson1_1"}getJsonRpcVersion(){return"1.1"}getDefaultContentType(){return"application/x-amz-json-1.1"}}});var ng,rg,sj,Ioe=_(()=>{ng=require("@smithy/core/protocols"),rg=require("@smithy/core/schema");Zm();pb();DE();sj=class extends ng.HttpBindingProtocol{serializer;deserializer;codec;mixin=new ko;constructor({defaultNamespace:e}){super({defaultNamespace:e});let r={timestampFormat:{useTrait:!0,default:7},httpBindings:!0,jsonName:!0};this.codec=new Ld(r),this.serializer=new ng.HttpInterceptingShapeSerializer(this.codec.createSerializer(),r),this.deserializer=new ng.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(),r)}getShapeId(){return"aws.protocols#restJson1"}getPayloadCodec(){return this.codec}setSerdeContext(e){this.codec.setSerdeContext(e),super.setSerdeContext(e)}async serializeRequest(e,r,n){let s=await super.serializeRequest(e,r,n),o=rg.NormalizedSchema.of(e.input);if(!s.headers["content-type"]){let i=this.mixin.resolveRestContentType(this.getDefaultContentType(),o);i&&(s.headers["content-type"]=i)}return s.body==null&&s.headers["content-type"]===this.getDefaultContentType()&&(s.body="{}"),s}async deserializeResponse(e,r,n){let s=await super.deserializeResponse(e,r,n),o=rg.NormalizedSchema.of(e.output);for(let[i,a]of o.structIterator())a.getMemberTraits().httpPayload&&!(i in s)&&(s[i]=null);return s}async handleError(e,r,n,s,o){let i=wE(n,s)??"Unknown",{errorSchema:a,errorMetadata:c}=await this.mixin.getErrorSchemaOrThrowBaseException(i,this.options.defaultNamespace,n,s,o),u=rg.NormalizedSchema.of(a),l=s.message??s.Message??"Unknown",d=rg.TypeRegistry.for(a[1]).getErrorCtor(a)??Error,p=new d(l);await this.deserializeHttpMessage(a,r,n,s);let g={};for(let[y,R]of u.structIterator()){let D=R.getMergedTraits().jsonName??y;g[y]=this.codec.createDeserializer().readObject(R,s[D])}throw this.mixin.decorateServiceException(Object.assign(p,c,{$fault:u.getMergedTraits().error,message:l},g),s)}getDefaultContentType(){return"application/json"}}});var Aoe,e7e,Toe=_(()=>{Aoe=require("@smithy/smithy-client"),e7e=t=>{if(t!=null)return typeof t=="object"&&"__type"in t&&delete t.__type,(0,Aoe.expectUnion)(t)}});var woe=b(ij=>{"use strict";Object.defineProperty(ij,"__esModule",{value:!0});ij.parseXML=r7e;var t7e=require("fast-xml-parser"),oj=new t7e.XMLParser({attributeNamePrefix:"",htmlEntities:!0,ignoreAttributes:!1,ignoreDeclaration:!0,parseTagValue:!1,trimValues:!1,tagValueProcessor:(t,e)=>e.trim()===""&&e.includes(` -`)?"":void 0});oj.addEntity("#xD","\r");oj.addEntity("#10",` -`);function r7e(t){return oj.parse(t,!0)}});var hb=b(fb=>{"use strict";var n7e=woe();function s7e(t){return t.replace(/&/g,"&").replace(//g,">").replace(/"/g,""")}function o7e(t){return t.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">").replace(/\r/g," ").replace(/\n/g," ").replace(/\u0085/g,"…").replace(/\u2028/,"
")}var gb=class{value;constructor(e){this.value=e}toString(){return o7e(""+this.value)}},aj=class t{name;children;attributes={};static of(e,r,n){let s=new t(e);return r!==void 0&&s.addChildNode(new gb(r)),n!==void 0&&s.withName(n),s}constructor(e,r=[]){this.name=e,this.children=r}withName(e){return this.name=e,this}addAttribute(e,r){return this.attributes[e]=r,this}addChildNode(e){return this.children.push(e),this}removeAttribute(e){return delete this.attributes[e],this}n(e){return this.name=e,this}c(e){return this.children.push(e),this}a(e,r){return r!=null&&(this.attributes[e]=r),this}cc(e,r,n=r){if(e[r]!=null){let s=t.of(r,e[r]).withName(n);this.c(s)}}l(e,r,n,s){e[r]!=null&&s().map(i=>{i.withName(n),this.c(i)})}lc(e,r,n,s){if(e[r]!=null){let o=s(),i=new t(n);o.map(a=>{i.c(a)}),this.c(i)}}toString(){let e=!!this.children.length,r=`<${this.name}`,n=this.attributes;for(let s of Object.keys(n)){let o=n[s];o!=null&&(r+=` ${s}="${s7e(""+o)}"`)}return r+=e?`>${this.children.map(s=>s.toString()).join("")}`:"/>"}};Object.defineProperty(fb,"parseXML",{enumerable:!0,get:function(){return n7e.parseXML}});fb.XmlNode=aj;fb.XmlText=gb});var Doe,Ooe,cj,koe,Noe,Fd,Sb=_(()=>{Doe=O(hb()),Ooe=require("@smithy/core/protocols"),cj=require("@smithy/core/schema"),koe=require("@smithy/smithy-client"),Noe=require("@smithy/util-utf8");Wu();J2();Fd=class extends xn{settings;stringDeserializer;constructor(e){super(),this.settings=e,this.stringDeserializer=new Ooe.FromStringShapeDeserializer(e)}setSerdeContext(e){this.serdeContext=e,this.stringDeserializer.setSerdeContext(e)}read(e,r,n){let s=cj.NormalizedSchema.of(e),o=s.getMemberSchemas();if(s.isStructSchema()&&s.isMemberSchema()&&!!Object.values(o).find(u=>!!u.getMemberTraits().eventPayload)){let u={},l=Object.keys(o)[0];return o[l].isBlobSchema()?u[l]=r:u[l]=this.read(o[l],r),u}let a=(this.serdeContext?.utf8Encoder??Noe.toUtf8)(r),c=this.parseXml(a);return this.readSchema(e,n?c[n]:c)}readSchema(e,r){let n=cj.NormalizedSchema.of(e);if(n.isUnitSchema())return;let s=n.getMergedTraits();if(n.isListSchema()&&!Array.isArray(r))return this.readSchema(n,[r]);if(r==null)return r;if(typeof r=="object"){let o=!!s.sparse,i=!!s.xmlFlattened;if(n.isListSchema()){let c=n.getValueSchema(),u=[],l=c.getMergedTraits().xmlName??"member",d=i?r:(r[0]??r)[l],p=Array.isArray(d)?d:[d];for(let g of p)(g!=null||o)&&u.push(this.readSchema(c,g));return u}let a={};if(n.isMapSchema()){let c=n.getKeySchema(),u=n.getValueSchema(),l;i?l=Array.isArray(r)?r:[r]:l=Array.isArray(r.entry)?r.entry:[r.entry];let d=c.getMergedTraits().xmlName??"key",p=u.getMergedTraits().xmlName??"value";for(let g of l){let y=g[d],R=g[p];(R!=null||o)&&(a[y]=this.readSchema(u,R))}return a}if(n.isStructSchema()){let c=n.isUnionSchema(),u;c&&(u=new eg(r,a));for(let[l,d]of n.structIterator()){let p=d.getMergedTraits(),g=p.httpPayload?p.xmlName??d.getName():d.getMemberTraits().xmlName??l;c&&u.mark(g),r[g]!=null&&(a[l]=this.readSchema(d,r[g]))}return c&&u.writeUnknown(),a}if(n.isDocumentSchema())return r;throw new Error(`@aws-sdk/core/protocols - xml deserializer unhandled schema type for ${n.getName(!0)}`)}return n.isListSchema()?[]:n.isMapSchema()||n.isStructSchema()?{}:this.stringDeserializer.read(n,r)}parseXml(e){if(e.length){let r;try{r=(0,Doe.parseXML)(e)}catch(i){throw i&&typeof i=="object"&&Object.defineProperty(i,"$responseBodyText",{value:e}),i}let n="#text",s=Object.keys(r)[0],o=r[s];return o[n]&&(o[s]=o[n],delete o[n]),(0,koe.getValueFromTextNode)(o)}return{}}}});var NE,Loe,yb,Moe,Foe,Eb,Boe=_(()=>{NE=require("@smithy/core/protocols"),Loe=require("@smithy/core/schema"),yb=require("@smithy/core/serde"),Moe=require("@smithy/smithy-client"),Foe=require("@smithy/util-base64");Wu();Eb=class extends xn{settings;buffer;constructor(e){super(),this.settings=e}write(e,r,n=""){this.buffer===void 0&&(this.buffer="");let s=Loe.NormalizedSchema.of(e);if(n&&!n.endsWith(".")&&(n+="."),s.isBlobSchema())(typeof r=="string"||r instanceof Uint8Array)&&(this.writeKey(n),this.writeValue((this.serdeContext?.base64Encoder??Foe.toBase64)(r)));else if(s.isBooleanSchema()||s.isNumericSchema()||s.isStringSchema())r!=null?(this.writeKey(n),this.writeValue(String(r))):s.isIdempotencyToken()&&(this.writeKey(n),this.writeValue((0,yb.generateIdempotencyToken)()));else if(s.isBigIntegerSchema())r!=null&&(this.writeKey(n),this.writeValue(String(r)));else if(s.isBigDecimalSchema())r!=null&&(this.writeKey(n),this.writeValue(r instanceof yb.NumericValue?r.string:String(r)));else if(s.isTimestampSchema()){if(r instanceof Date)switch(this.writeKey(n),(0,NE.determineTimestampFormat)(s,this.settings)){case 5:this.writeValue(r.toISOString().replace(".000Z","Z"));break;case 6:this.writeValue((0,Moe.dateToUtcString)(r));break;case 7:this.writeValue(String(r.getTime()/1e3));break}}else if(s.isDocumentSchema())Array.isArray(r)?this.write(79,r,n):r instanceof Date?this.write(4,r,n):r instanceof Uint8Array?this.write(21,r,n):r&&typeof r=="object"?this.write(143,r,n):(this.writeKey(n),this.writeValue(String(r)));else if(s.isListSchema()){if(Array.isArray(r))if(r.length===0)this.settings.serializeEmptyLists&&(this.writeKey(n),this.writeValue(""));else{let o=s.getValueSchema(),i=this.settings.flattenLists||s.getMergedTraits().xmlFlattened,a=1;for(let c of r){if(c==null)continue;let u=o.getMergedTraits(),l=this.getKey("member",u.xmlName,u.ec2QueryName),d=i?`${n}${a}`:`${n}${l}.${a}`;this.write(o,c,d),++a}}}else if(s.isMapSchema()){if(r&&typeof r=="object"){let o=s.getKeySchema(),i=s.getValueSchema(),a=s.getMergedTraits().xmlFlattened,c=1;for(let[u,l]of Object.entries(r)){if(l==null)continue;let d=o.getMergedTraits(),p=this.getKey("key",d.xmlName,d.ec2QueryName),g=a?`${n}${c}.${p}`:`${n}entry.${c}.${p}`,y=i.getMergedTraits(),R=this.getKey("value",y.xmlName,y.ec2QueryName),D=a?`${n}${c}.${R}`:`${n}entry.${c}.${R}`;this.write(o,u,g),this.write(i,l,D),++c}}}else if(s.isStructSchema()){if(r&&typeof r=="object"){let o=!1;for(let[i,a]of s.structIterator()){if(r[i]==null&&!a.isIdempotencyToken())continue;let c=a.getMergedTraits(),u=this.getKey(i,c.xmlName,c.ec2QueryName,"struct"),l=`${n}${u}`;this.write(a,r[i],l),o=!0}if(!o&&s.isUnionSchema()){let{$unknown:i}=r;if(Array.isArray(i)){let[a,c]=i,u=`${n}${a}`;this.write(15,c,u)}}}}else if(!s.isUnitSchema())throw new Error(`@aws-sdk/core/protocols - QuerySerializer unrecognized schema type ${s.getName(!0)}`)}flush(){if(this.buffer===void 0)throw new Error("@aws-sdk/core/protocols - QuerySerializer cannot flush with nothing written to buffer.");let e=this.buffer;return delete this.buffer,e}getKey(e,r,n,s){let{ec2:o,capitalizeKeys:i}=this.settings;if(o&&n)return n;let a=r??e;return i&&s==="struct"?a[0].toUpperCase()+a.slice(1):a}writeKey(e){e.endsWith(".")&&(e=e.slice(0,e.length-1)),this.buffer+=`&${(0,NE.extendedEncodeURIComponent)(e)}=`}writeValue(e){this.buffer+=(0,NE.extendedEncodeURIComponent)(e)}}});var LE,Bd,ME,uj=_(()=>{LE=require("@smithy/core/protocols"),Bd=require("@smithy/core/schema");Zm();Sb();Boe();ME=class extends LE.RpcProtocol{options;serializer;deserializer;mixin=new ko;constructor(e){super({defaultNamespace:e.defaultNamespace}),this.options=e;let r={timestampFormat:{useTrait:!0,default:5},httpBindings:!1,xmlNamespace:e.xmlNamespace,serviceNamespace:e.defaultNamespace,serializeEmptyLists:!0};this.serializer=new Eb(r),this.deserializer=new Fd(r)}getShapeId(){return"aws.protocols#awsQuery"}setSerdeContext(e){this.serializer.setSerdeContext(e),this.deserializer.setSerdeContext(e)}getPayloadCodec(){throw new Error("AWSQuery protocol has no payload codec.")}async serializeRequest(e,r,n){let s=await super.serializeRequest(e,r,n);s.path.endsWith("/")||(s.path+="/"),Object.assign(s.headers,{"content-type":"application/x-www-form-urlencoded"}),((0,Bd.deref)(e.input)==="unit"||!s.body)&&(s.body="");let o=e.name.split("#")[1]??e.name;return s.body=`Action=${o}&Version=${this.options.version}`+s.body,s.body.endsWith("&")&&(s.body=s.body.slice(-1)),s}async deserializeResponse(e,r,n){let s=this.deserializer,o=Bd.NormalizedSchema.of(e.output),i={};if(n.statusCode>=300){let d=await(0,LE.collectBody)(n.body,r);d.byteLength>0&&Object.assign(i,await s.read(15,d)),await this.handleError(e,r,n,i,this.deserializeMetadata(n))}for(let d in n.headers){let p=n.headers[d];delete n.headers[d],n.headers[d.toLowerCase()]=p}let a=e.name.split("#")[1]??e.name,c=o.isStructSchema()&&this.useNestedResult()?a+"Result":void 0,u=await(0,LE.collectBody)(n.body,r);return u.byteLength>0&&Object.assign(i,await s.read(o,u,c)),{$metadata:this.deserializeMetadata(n),...i}}useNestedResult(){return!0}async handleError(e,r,n,s,o){let i=this.loadQueryErrorCode(n,s)??"Unknown",a=this.loadQueryError(s)??{},c=this.loadQueryErrorMessage(s);a.message=c,a.Error={Type:a.Type,Code:a.Code,Message:c};let{errorSchema:u,errorMetadata:l}=await this.mixin.getErrorSchemaOrThrowBaseException(i,this.options.defaultNamespace,n,a,o,this.mixin.findQueryCompatibleError),d=Bd.NormalizedSchema.of(u),p=Bd.TypeRegistry.for(u[1]).getErrorCtor(u)??Error,g=new p(c),y={Type:a.Error.Type,Code:a.Error.Code,Error:a.Error};for(let[R,D]of d.structIterator()){let B=D.getMergedTraits().xmlName??R,M=a[B]??s[B];y[R]=this.deserializer.readSchema(D,M)}throw this.mixin.decorateServiceException(Object.assign(g,l,{$fault:d.getMergedTraits().error,message:c},y),s)}loadQueryErrorCode(e,r){let n=(r.Errors?.[0]?.Error??r.Errors?.Error??r.Error)?.Code;if(n!==void 0)return n;if(e.statusCode==404)return"NotFound"}loadQueryError(e){return e.Errors?.[0]?.Error??e.Errors?.Error??e.Error}loadQueryErrorMessage(e){let r=this.loadQueryError(e);return r?.message??r?.Message??e.message??e.Message??"Unknown"}getDefaultContentType(){return"application/x-www-form-urlencoded"}}});var lj,Uoe=_(()=>{uj();lj=class extends ME{options;constructor(e){super(e),this.options=e;let r={capitalizeKeys:!0,flattenLists:!0,serializeEmptyLists:!1,ec2:!0};Object.assign(this.serializer.settings,r)}useNestedResult(){return!1}}});var qoe,$oe,Goe,i7e,dj,pj=_(()=>{qoe=O(hb()),$oe=require("@smithy/smithy-client");Y2();Goe=(t,e)=>cb(t,e).then(r=>{if(r.length){let n;try{n=(0,qoe.parseXML)(r)}catch(a){throw a&&typeof a=="object"&&Object.defineProperty(a,"$responseBodyText",{value:r}),a}let s="#text",o=Object.keys(n)[0],i=n[o];return i[s]&&(i[o]=i[s],delete i[s]),(0,$oe.getValueFromTextNode)(i)}return{}}),i7e=async(t,e)=>{let r=await Goe(t,e);return r.Error&&(r.Error.message=r.Error.message??r.Error.Message),r},dj=(t,e)=>{if(e?.Error?.Code!==void 0)return e.Error.Code;if(e?.Code!==void 0)return e.Code;if(t.statusCode==404)return"NotFound"}});var Kn,joe,_b,Cb,mj,Rb,FE,gj=_(()=>{Kn=O(hb()),joe=require("@smithy/core/protocols"),_b=require("@smithy/core/schema"),Cb=require("@smithy/core/serde"),mj=require("@smithy/smithy-client"),Rb=require("@smithy/util-base64");Wu();FE=class extends xn{settings;stringBuffer;byteBuffer;buffer;constructor(e){super(),this.settings=e}write(e,r){let n=_b.NormalizedSchema.of(e);if(n.isStringSchema()&&typeof r=="string")this.stringBuffer=r;else if(n.isBlobSchema())this.byteBuffer="byteLength"in r?r:(this.serdeContext?.base64Decoder??Rb.fromBase64)(r);else{this.buffer=this.writeStruct(n,r,void 0);let s=n.getMergedTraits();s.httpPayload&&!s.xmlName&&this.buffer.withName(n.getName())}}flush(){if(this.byteBuffer!==void 0){let r=this.byteBuffer;return delete this.byteBuffer,r}if(this.stringBuffer!==void 0){let r=this.stringBuffer;return delete this.stringBuffer,r}let e=this.buffer;return this.settings.xmlNamespace&&(e?.attributes?.xmlns||e.addAttribute("xmlns",this.settings.xmlNamespace)),delete this.buffer,e.toString()}writeStruct(e,r,n){let s=e.getMergedTraits(),o=e.isMemberSchema()&&!s.httpPayload?e.getMemberTraits().xmlName??e.getMemberName():s.xmlName??e.getName();if(!o||!e.isStructSchema())throw new Error(`@aws-sdk/core/protocols - xml serializer, cannot write struct with empty name or non-struct, schema=${e.getName(!0)}.`);let i=Kn.XmlNode.of(o),[a,c]=this.getXmlnsAttribute(e,n);for(let[l,d]of e.structIterator()){let p=r[l];if(p!=null||d.isIdempotencyToken()){if(d.getMergedTraits().xmlAttribute){i.addAttribute(d.getMergedTraits().xmlName??l,this.writeSimple(d,p));continue}if(d.isListSchema())this.writeList(d,p,i,c);else if(d.isMapSchema())this.writeMap(d,p,i,c);else if(d.isStructSchema())i.addChildNode(this.writeStruct(d,p,c));else{let g=Kn.XmlNode.of(d.getMergedTraits().xmlName??d.getMemberName());this.writeSimpleInto(d,p,g,c),i.addChildNode(g)}}}let{$unknown:u}=r;if(u&&e.isUnionSchema()&&Array.isArray(u)&&Object.keys(r).length===1){let[l,d]=u,p=Kn.XmlNode.of(l);if(typeof d!="string")if(r instanceof Kn.XmlNode||r instanceof Kn.XmlText)i.addChildNode(r);else throw new Error("@aws-sdk - $unknown union member in XML requires value of type string, @aws-sdk/xml-builder::XmlNode or XmlText.");this.writeSimpleInto(0,d,p,c),i.addChildNode(p)}return c&&i.addAttribute(a,c),i}writeList(e,r,n,s){if(!e.isMemberSchema())throw new Error(`@aws-sdk/core/protocols - xml serializer, cannot write non-member list: ${e.getName(!0)}`);let o=e.getMergedTraits(),i=e.getValueSchema(),a=i.getMergedTraits(),c=!!a.sparse,u=!!o.xmlFlattened,[l,d]=this.getXmlnsAttribute(e,s),p=(g,y)=>{if(i.isListSchema())this.writeList(i,Array.isArray(y)?y:[y],g,d);else if(i.isMapSchema())this.writeMap(i,y,g,d);else if(i.isStructSchema()){let R=this.writeStruct(i,y,d);g.addChildNode(R.withName(u?o.xmlName??e.getMemberName():a.xmlName??"member"))}else{let R=Kn.XmlNode.of(u?o.xmlName??e.getMemberName():a.xmlName??"member");this.writeSimpleInto(i,y,R,d),g.addChildNode(R)}};if(u)for(let g of r)(c||g!=null)&&p(n,g);else{let g=Kn.XmlNode.of(o.xmlName??e.getMemberName());d&&g.addAttribute(l,d);for(let y of r)(c||y!=null)&&p(g,y);n.addChildNode(g)}}writeMap(e,r,n,s,o=!1){if(!e.isMemberSchema())throw new Error(`@aws-sdk/core/protocols - xml serializer, cannot write non-member map: ${e.getName(!0)}`);let i=e.getMergedTraits(),a=e.getKeySchema(),u=a.getMergedTraits().xmlName??"key",l=e.getValueSchema(),d=l.getMergedTraits(),p=d.xmlName??"value",g=!!d.sparse,y=!!i.xmlFlattened,[R,D]=this.getXmlnsAttribute(e,s),B=(M,ge,Y)=>{let Te=Kn.XmlNode.of(u,ge),[Ht,Tt]=this.getXmlnsAttribute(a,D);Tt&&Te.addAttribute(Ht,Tt),M.addChildNode(Te);let Ne=Kn.XmlNode.of(p);l.isListSchema()?this.writeList(l,Y,Ne,D):l.isMapSchema()?this.writeMap(l,Y,Ne,D,!0):l.isStructSchema()?Ne=this.writeStruct(l,Y,D):this.writeSimpleInto(l,Y,Ne,D),M.addChildNode(Ne)};if(y){for(let[M,ge]of Object.entries(r))if(g||ge!=null){let Y=Kn.XmlNode.of(i.xmlName??e.getMemberName());B(Y,M,ge),n.addChildNode(Y)}}else{let M;o||(M=Kn.XmlNode.of(i.xmlName??e.getMemberName()),D&&M.addAttribute(R,D),n.addChildNode(M));for(let[ge,Y]of Object.entries(r))if(g||Y!=null){let Te=Kn.XmlNode.of("entry");B(Te,ge,Y),(o?n:M).addChildNode(Te)}}}writeSimple(e,r){if(r===null)throw new Error("@aws-sdk/core/protocols - (XML serializer) cannot write null value.");let n=_b.NormalizedSchema.of(e),s=null;if(r&&typeof r=="object")if(n.isBlobSchema())s=(this.serdeContext?.base64Encoder??Rb.toBase64)(r);else if(n.isTimestampSchema()&&r instanceof Date)switch((0,joe.determineTimestampFormat)(n,this.settings)){case 5:s=r.toISOString().replace(".000Z","Z");break;case 6:s=(0,mj.dateToUtcString)(r);break;case 7:s=String(r.getTime()/1e3);break;default:console.warn("Missing timestamp format, using http date",r),s=(0,mj.dateToUtcString)(r);break}else{if(n.isBigDecimalSchema()&&r)return r instanceof Cb.NumericValue?r.string:String(r);throw n.isMapSchema()||n.isListSchema()?new Error("@aws-sdk/core/protocols - xml serializer, cannot call _write() on List/Map schema, call writeList or writeMap() instead."):new Error(`@aws-sdk/core/protocols - xml serializer, unhandled schema type for object value and schema: ${n.getName(!0)}`)}if((n.isBooleanSchema()||n.isNumericSchema()||n.isBigIntegerSchema()||n.isBigDecimalSchema())&&(s=String(r)),n.isStringSchema()&&(r===void 0&&n.isIdempotencyToken()?s=(0,Cb.generateIdempotencyToken)():s=String(r)),s===null)throw new Error(`Unhandled schema-value pair ${n.getName(!0)}=${r}`);return s}writeSimpleInto(e,r,n,s){let o=this.writeSimple(e,r),i=_b.NormalizedSchema.of(e),a=new Kn.XmlText(o),[c,u]=this.getXmlnsAttribute(i,s);u&&n.addAttribute(c,u),n.addChildNode(a)}getXmlnsAttribute(e,r){let n=e.getMergedTraits(),[s,o]=n.xmlNamespace??[];return o&&o!==r?[s?`xmlns:${s}`:"xmlns",o]:[void 0,void 0]}}});var BE,fj=_(()=>{Wu();Sb();gj();BE=class extends xn{settings;constructor(e){super(),this.settings=e}createSerializer(){let e=new FE(this.settings);return e.setSerdeContext(this.serdeContext),e}createDeserializer(){let e=new Fd(this.settings);return e.setSerdeContext(this.serdeContext),e}}});var sg,UE,hj,Voe=_(()=>{sg=require("@smithy/core/protocols"),UE=require("@smithy/core/schema");Zm();pj();fj();hj=class extends sg.HttpBindingProtocol{codec;serializer;deserializer;mixin=new ko;constructor(e){super(e);let r={timestampFormat:{useTrait:!0,default:5},httpBindings:!0,xmlNamespace:e.xmlNamespace,serviceNamespace:e.defaultNamespace};this.codec=new BE(r),this.serializer=new sg.HttpInterceptingShapeSerializer(this.codec.createSerializer(),r),this.deserializer=new sg.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(),r)}getPayloadCodec(){return this.codec}getShapeId(){return"aws.protocols#restXml"}async serializeRequest(e,r,n){let s=await super.serializeRequest(e,r,n),o=UE.NormalizedSchema.of(e.input);if(!s.headers["content-type"]){let i=this.mixin.resolveRestContentType(this.getDefaultContentType(),o);i&&(s.headers["content-type"]=i)}return typeof s.body=="string"&&s.headers["content-type"]===this.getDefaultContentType()&&!s.body.startsWith("'+s.body),s}async deserializeResponse(e,r,n){return super.deserializeResponse(e,r,n)}async handleError(e,r,n,s,o){let i=dj(n,s)??"Unknown";if(s.Error&&typeof s.Error=="object")for(let y of Object.keys(s.Error))s[y]=s.Error[y],y.toLowerCase()==="message"&&(s.message=s.Error[y]);s.RequestId&&!o.requestId&&(o.requestId=s.RequestId);let{errorSchema:a,errorMetadata:c}=await this.mixin.getErrorSchemaOrThrowBaseException(i,this.options.defaultNamespace,n,s,o),u=UE.NormalizedSchema.of(a),l=s.Error?.message??s.Error?.Message??s.message??s.Message??"Unknown",d=UE.TypeRegistry.for(a[1]).getErrorCtor(a)??Error,p=new d(l);await this.deserializeHttpMessage(a,r,n,s);let g={};for(let[y,R]of u.structIterator()){let D=R.getMergedTraits().xmlName??y,B=s.Error?.[D]??s[D];g[y]=this.codec.createDeserializer().readSchema(R,B)}throw this.mixin.decorateServiceException(Object.assign(p,c,{$fault:u.getMergedTraits().error,message:l},g),s)}getDefaultContentType(){return"application/xml"}hasUnstructuredPayloadBinding(e){for(let[,r]of e.structIterator())if(r.getMergedTraits().httpPayload)return!(r.isStructSchema()||r.isMapSchema()||r.isListSchema());return!1}}});var Hoe={};wt(Hoe,{AwsEc2QueryProtocol:()=>lj,AwsJson1_0Protocol:()=>rj,AwsJson1_1Protocol:()=>nj,AwsJsonRpcProtocol:()=>Md,AwsQueryProtocol:()=>ME,AwsRestJsonProtocol:()=>sj,AwsRestXmlProtocol:()=>hj,AwsSmithyRpcV2CborProtocol:()=>X2,JsonCodec:()=>Ld,JsonShapeDeserializer:()=>OE,JsonShapeSerializer:()=>kE,XmlCodec:()=>BE,XmlShapeDeserializer:()=>Fd,XmlShapeSerializer:()=>FE,_toBool:()=>JYe,_toNum:()=>YYe,_toStr:()=>XYe,awsExpectUnion:()=>e7e,loadRestJsonErrorCode:()=>wE,loadRestXmlErrorCode:()=>dj,parseJsonBody:()=>ub,parseJsonErrorBody:()=>ZYe,parseXmlBody:()=>Goe,parseXmlErrorBody:()=>i7e});var zoe=_(()=>{loe();doe();Poe();boe();mb();Ioe();pb();Z2();tj();Toe();DE();Uoe();uj();Voe();fj();Sb();gj();pj()});var Yoe=b(Joe=>{"use strict";var _j=(zoe(),ue(Hoe)),Woe=require("@smithy/core/schema"),Koe=require("@smithy/smithy-client"),Qoe=require("@smithy/util-base64"),Sj=class extends _j.JsonCodec{constructor(){super({timestampFormat:{useTrait:!0,default:7},jsonName:!1})}createSerializer(){let e=new Ej(this.settings);return e.setSerdeContext(this.serdeContext),e}createDeserializer(){let e=new yj(this.settings);return e.setSerdeContext(this.serdeContext),e}},Xoe="com.amazonaws.dynamodb#AttributeValue",Ej=class extends _j.JsonShapeSerializer{_write(e,r,n){let s=Woe.NormalizedSchema.of(e);if(s.isStructSchema()&&s.getName(!0)===Xoe&&r&&typeof r=="object"){let o=r,i=Koe._json(o),a=this.serdeContext?.base64Encoder??Qoe.toBase64;if(o.B instanceof Uint8Array&&(i.B=a(o.B)),Array.isArray(o.BS)&&(i.BS=o.BS.map(a)),Array.isArray(o.L)&&(i.L=o.L.filter(c=>c!=null).map(c=>this._write(s,c,n))),o.M&&typeof o.M=="object"){i.M={};for(let[c,u]of Object.entries(o.M))u!=null&&(i.M[c]=this._write(s,u,n))}return i}return super._write(s,r,n)}},yj=class extends _j.JsonShapeDeserializer{_read(e,r){let n=Woe.NormalizedSchema.of(e);if(n.isStructSchema()&&n.getName(!0)===Xoe&&r&&typeof r=="object"){let s=r,o=Koe._json(s),i=this.serdeContext?.base64Decoder??Qoe.fromBase64;if(typeof s.B=="string"&&(o.B=i(s.B)),Array.isArray(s.BS)&&(o.BS=s.BS.map(i)),Array.isArray(s.L)&&(o.L=s.L.map(a=>this._read(n,a))),s.M&&typeof s.M=="object"){o.M={};for(let[a,c]of Object.entries(s.M))o.M[a]=this._read(n,c)}return o}return super._read(n,r)}};Joe.DynamoDBJsonCodec=Sj});var cie=b(bi=>{"use strict";var og=require("@smithy/util-endpoints"),a7e=require("@smithy/url-parser"),eie=(t,e=!1)=>{if(e){for(let r of t.split("."))if(!eie(r))return!1;return!0}return!(!og.isValidHostLabel(t)||t.length<3||t.length>63||t!==t.toLowerCase()||og.isIpAddress(t))},Zoe=":",c7e="/",u7e=t=>{let e=t.split(Zoe);if(e.length<6)return null;let[r,n,s,o,i,...a]=e;if(r!=="arn"||n===""||s===""||a.join(Zoe)==="")return null;let c=a.map(u=>u.split(c7e)).flat();return{partition:n,service:s,region:o,accountId:i,resourceId:c}},l7e=[{id:"aws",outputs:{dnsSuffix:"amazonaws.com",dualStackDnsSuffix:"api.aws",implicitGlobalRegion:"us-east-1",name:"aws",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^(us|eu|ap|sa|ca|me|af|il|mx)\\-\\w+\\-\\d+$",regions:{"af-south-1":{description:"Africa (Cape Town)"},"ap-east-1":{description:"Asia Pacific (Hong Kong)"},"ap-east-2":{description:"Asia Pacific (Taipei)"},"ap-northeast-1":{description:"Asia Pacific (Tokyo)"},"ap-northeast-2":{description:"Asia Pacific (Seoul)"},"ap-northeast-3":{description:"Asia Pacific (Osaka)"},"ap-south-1":{description:"Asia Pacific (Mumbai)"},"ap-south-2":{description:"Asia Pacific (Hyderabad)"},"ap-southeast-1":{description:"Asia Pacific (Singapore)"},"ap-southeast-2":{description:"Asia Pacific (Sydney)"},"ap-southeast-3":{description:"Asia Pacific (Jakarta)"},"ap-southeast-4":{description:"Asia Pacific (Melbourne)"},"ap-southeast-5":{description:"Asia Pacific (Malaysia)"},"ap-southeast-6":{description:"Asia Pacific (New Zealand)"},"ap-southeast-7":{description:"Asia Pacific (Thailand)"},"aws-global":{description:"aws global region"},"ca-central-1":{description:"Canada (Central)"},"ca-west-1":{description:"Canada West (Calgary)"},"eu-central-1":{description:"Europe (Frankfurt)"},"eu-central-2":{description:"Europe (Zurich)"},"eu-north-1":{description:"Europe (Stockholm)"},"eu-south-1":{description:"Europe (Milan)"},"eu-south-2":{description:"Europe (Spain)"},"eu-west-1":{description:"Europe (Ireland)"},"eu-west-2":{description:"Europe (London)"},"eu-west-3":{description:"Europe (Paris)"},"il-central-1":{description:"Israel (Tel Aviv)"},"me-central-1":{description:"Middle East (UAE)"},"me-south-1":{description:"Middle East (Bahrain)"},"mx-central-1":{description:"Mexico (Central)"},"sa-east-1":{description:"South America (Sao Paulo)"},"us-east-1":{description:"US East (N. Virginia)"},"us-east-2":{description:"US East (Ohio)"},"us-west-1":{description:"US West (N. California)"},"us-west-2":{description:"US West (Oregon)"}}},{id:"aws-cn",outputs:{dnsSuffix:"amazonaws.com.cn",dualStackDnsSuffix:"api.amazonwebservices.com.cn",implicitGlobalRegion:"cn-northwest-1",name:"aws-cn",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^cn\\-\\w+\\-\\d+$",regions:{"aws-cn-global":{description:"aws-cn global region"},"cn-north-1":{description:"China (Beijing)"},"cn-northwest-1":{description:"China (Ningxia)"}}},{id:"aws-eusc",outputs:{dnsSuffix:"amazonaws.eu",dualStackDnsSuffix:"api.amazonwebservices.eu",implicitGlobalRegion:"eusc-de-east-1",name:"aws-eusc",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^eusc\\-(de)\\-\\w+\\-\\d+$",regions:{"eusc-de-east-1":{description:"AWS European Sovereign Cloud (Germany)"}}},{id:"aws-iso",outputs:{dnsSuffix:"c2s.ic.gov",dualStackDnsSuffix:"api.aws.ic.gov",implicitGlobalRegion:"us-iso-east-1",name:"aws-iso",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^us\\-iso\\-\\w+\\-\\d+$",regions:{"aws-iso-global":{description:"aws-iso global region"},"us-iso-east-1":{description:"US ISO East"},"us-iso-west-1":{description:"US ISO WEST"}}},{id:"aws-iso-b",outputs:{dnsSuffix:"sc2s.sgov.gov",dualStackDnsSuffix:"api.aws.scloud",implicitGlobalRegion:"us-isob-east-1",name:"aws-iso-b",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^us\\-isob\\-\\w+\\-\\d+$",regions:{"aws-iso-b-global":{description:"aws-iso-b global region"},"us-isob-east-1":{description:"US ISOB East (Ohio)"},"us-isob-west-1":{description:"US ISOB West"}}},{id:"aws-iso-e",outputs:{dnsSuffix:"cloud.adc-e.uk",dualStackDnsSuffix:"api.cloud-aws.adc-e.uk",implicitGlobalRegion:"eu-isoe-west-1",name:"aws-iso-e",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^eu\\-isoe\\-\\w+\\-\\d+$",regions:{"aws-iso-e-global":{description:"aws-iso-e global region"},"eu-isoe-west-1":{description:"EU ISOE West"}}},{id:"aws-iso-f",outputs:{dnsSuffix:"csp.hci.ic.gov",dualStackDnsSuffix:"api.aws.hci.ic.gov",implicitGlobalRegion:"us-isof-south-1",name:"aws-iso-f",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^us\\-isof\\-\\w+\\-\\d+$",regions:{"aws-iso-f-global":{description:"aws-iso-f global region"},"us-isof-east-1":{description:"US ISOF EAST"},"us-isof-south-1":{description:"US ISOF SOUTH"}}},{id:"aws-us-gov",outputs:{dnsSuffix:"amazonaws.com",dualStackDnsSuffix:"api.aws",implicitGlobalRegion:"us-gov-west-1",name:"aws-us-gov",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^us\\-gov\\-\\w+\\-\\d+$",regions:{"aws-us-gov-global":{description:"aws-us-gov global region"},"us-gov-east-1":{description:"AWS GovCloud (US-East)"},"us-gov-west-1":{description:"AWS GovCloud (US-West)"}}}],d7e="1.1",tie={partitions:l7e,version:d7e},rie=tie,nie="",sie=t=>{let{partitions:e}=rie;for(let n of e){let{regions:s,outputs:o}=n;for(let[i,a]of Object.entries(s))if(i===t)return{...o,...a}}for(let n of e){let{regionRegex:s,outputs:o}=n;if(new RegExp(s).test(t))return{...o}}let r=e.find(n=>n.id==="aws");if(!r)throw new Error("Provided region was not found in the partition array or regex, and default partition with id 'aws' doesn't exist.");return{...r.outputs}},oie=(t,e="")=>{rie=t,nie=e},p7e=()=>{oie(tie,"")},m7e=()=>nie,iie={isVirtualHostableS3Bucket:eie,parseArn:u7e,partition:sie};og.customEndpointFunctions.aws=iie;var g7e=t=>{if(typeof t.endpointProvider!="function")throw new Error("@aws-sdk/util-endpoint - endpointProvider and endpoint missing in config for this client.");let{endpoint:e}=t;return e===void 0&&(t.endpoint=async()=>aie(t.endpointProvider({Region:typeof t.region=="function"?await t.region():t.region,UseDualStack:typeof t.useDualstackEndpoint=="function"?await t.useDualstackEndpoint():t.useDualstackEndpoint,UseFIPS:typeof t.useFipsEndpoint=="function"?await t.useFipsEndpoint():t.useFipsEndpoint,Endpoint:void 0},{logger:t.logger}))),t},aie=t=>a7e.parseUrl(t.url);Object.defineProperty(bi,"EndpointError",{enumerable:!0,get:function(){return og.EndpointError}});Object.defineProperty(bi,"isIpAddress",{enumerable:!0,get:function(){return og.isIpAddress}});Object.defineProperty(bi,"resolveEndpoint",{enumerable:!0,get:function(){return og.resolveEndpoint}});bi.awsEndpointFunctions=iie;bi.getUserAgentPrefix=m7e;bi.partition=sie;bi.resolveDefaultAwsRegionalEndpointsConfig=g7e;bi.setPartitionInfo=oie;bi.toEndpointV1=aie;bi.useDefaultPartitionInfo=p7e});var kie=b(xb=>{"use strict";Object.defineProperty(xb,"__esModule",{value:!0});xb.ruleSet=void 0;var vj="required",ve="type",Sr="rules",xt="conditions",fe="fn",he="argv",Ye="ref",vb="assign",ya="url",_a="properties",Ca="headers",wie="metricValues",f7e=!1,Er="error",Pn="stringEquals",uie="https://dynamodb.{Region}.{PartitionResult#dualStackDnsSuffix}",ps="endpoint",Ir="tree",xj="dynamodb",qE={[vj]:!1,[ve]:"string"},lie={[vj]:!0,default:!1,[ve]:"boolean"},die={[fe]:"isSet",[he]:[{[Ye]:"Endpoint"}]},h7e={[Ye]:"Endpoint"},pie={[fe]:"isSet",[he]:[{[Ye]:"Region"}]},Die={[Ye]:"Region"},mie={[fe]:"aws.partition",[he]:[Die],[vb]:"PartitionResult"},gie={[xt]:[{[fe]:"booleanEquals",[he]:[{[Ye]:"UseFIPS"},!0]}],[Er]:"Invalid Configuration: FIPS and custom endpoint are not supported",[ve]:Er},ig={[fe]:"booleanEquals",[he]:[{[Ye]:"UseFIPS"},!0]},fie={[xt]:[{[fe]:"booleanEquals",[he]:[{[Ye]:"UseDualStack"},!0]}],[Er]:"Invalid Configuration: Dualstack and custom endpoint are not supported",[ve]:Er},Oie={[fe]:"booleanEquals",[he]:[{[Ye]:"UseDualStack"},!0]},hie={[ps]:{[ya]:"{Endpoint}",[_a]:{},[Ca]:{}},[ve]:ps},Sc={},Sie={[fe]:"booleanEquals",[he]:[{[fe]:"getAttr",[he]:[{[Ye]:"PartitionResult"},"supportsFIPS"]},!0]},Eie={[fe]:"booleanEquals",[he]:[{[fe]:"getAttr",[he]:[{[Ye]:"PartitionResult"},"supportsDualStack"]},!0]},Cj={[xt]:[{[fe]:"isSet",[he]:[{[Ye]:"AccountIdEndpointMode"}]},{[fe]:Pn,[he]:[{[Ye]:"AccountIdEndpointMode"},"required"]}],[Sr]:[{[Er]:"Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported",[ve]:Er}],[ve]:Ir},$E={[fe]:"getAttr",[he]:[{[Ye]:"PartitionResult"},"name"]},yie={[ps]:{[ya]:"https://dynamodb.{Region}.{PartitionResult#dnsSuffix}",[_a]:{},[Ca]:{}},[ve]:ps},_ie={[ya]:"https://{ParsedArn#accountId}.ddb.{Region}.{PartitionResult#dualStackDnsSuffix}",[_a]:{[wie]:["O"]},[Ca]:{}},Rj={[wie]:["O"]},Cie={[Er]:"Credentials-sourced account ID parameter is invalid",[ve]:Er},Rie={[xt]:[{[fe]:"isSet",[he]:[{[Ye]:"AccountIdEndpointMode"}]},{[fe]:Pn,[he]:[{[Ye]:"AccountIdEndpointMode"},"required"]}],[Sr]:[{[xt]:[{[fe]:"not",[he]:[ig]}],[Sr]:[{[xt]:[{[fe]:Pn,[he]:[$E,"aws"]}],[Sr]:[{[Er]:"AccountIdEndpointMode is required but no AccountID was provided or able to be loaded",[ve]:Er}],[ve]:Ir},{[Er]:"Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition",[ve]:Er}],[ve]:Ir},{[Er]:"Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported",[ve]:Er}],[ve]:Ir},vie={[ya]:"https://{ParsedArn#accountId}.ddb.{Region}.{PartitionResult#dnsSuffix}",[_a]:Rj,[Ca]:{}},xie=[ig],Pie=[Oie],bie=[{[fe]:"isSet",[he]:[{[Ye]:"AccountIdEndpointMode"}]},{[fe]:"not",[he]:[{[fe]:Pn,[he]:[{[Ye]:"AccountIdEndpointMode"},"disabled"]}]},{[fe]:Pn,[he]:[$E,"aws"]},{[fe]:"not",[he]:[ig]},{[fe]:"isSet",[he]:[{[Ye]:"ResourceArn"}]},{[fe]:"aws.parseArn",[he]:[{[Ye]:"ResourceArn"}],[vb]:"ParsedArn"},{[fe]:Pn,[he]:[{[fe]:"getAttr",[he]:[{[Ye]:"ParsedArn"},"service"]},xj]},{[fe]:"isValidHostLabel",[he]:[{[fe]:"getAttr",[he]:[{[Ye]:"ParsedArn"},"region"]},!1]},{[fe]:Pn,[he]:[{[fe]:"getAttr",[he]:[{[Ye]:"ParsedArn"},"region"]},"{Region}"]},{[fe]:"isValidHostLabel",[he]:[{[fe]:"getAttr",[he]:[{[Ye]:"ParsedArn"},"accountId"]},!1]}],Iie=[{[fe]:"isSet",[he]:[{[Ye]:"AccountIdEndpointMode"}]},{[fe]:"not",[he]:[{[fe]:Pn,[he]:[{[Ye]:"AccountIdEndpointMode"},"disabled"]}]},{[fe]:Pn,[he]:[$E,"aws"]},{[fe]:"not",[he]:[ig]},{[fe]:"isSet",[he]:[{[Ye]:"ResourceArnList"}]},{[fe]:"getAttr",[he]:[{[Ye]:"ResourceArnList"},"[0]"],[vb]:"FirstArn"},{[fe]:"aws.parseArn",[he]:[{[Ye]:"FirstArn"}],[vb]:"ParsedArn"},{[fe]:Pn,[he]:[{[fe]:"getAttr",[he]:[{[Ye]:"ParsedArn"},"service"]},xj]},{[fe]:"isValidHostLabel",[he]:[{[fe]:"getAttr",[he]:[{[Ye]:"ParsedArn"},"region"]},!1]},{[fe]:Pn,[he]:[{[fe]:"getAttr",[he]:[{[Ye]:"ParsedArn"},"region"]},"{Region}"]},{[fe]:"isValidHostLabel",[he]:[{[fe]:"getAttr",[he]:[{[Ye]:"ParsedArn"},"accountId"]},!1]}],Aie=[{[fe]:"isSet",[he]:[{[Ye]:"AccountIdEndpointMode"}]},{[fe]:"not",[he]:[{[fe]:Pn,[he]:[{[Ye]:"AccountIdEndpointMode"},"disabled"]}]},{[fe]:Pn,[he]:[$E,"aws"]},{[fe]:"not",[he]:[ig]},{[fe]:"isSet",[he]:[{[Ye]:"AccountId"}]}],Tie=[{[fe]:"isValidHostLabel",[he]:[{[Ye]:"AccountId"},!1]}],S7e={version:"1.0",parameters:{Region:qE,UseDualStack:lie,UseFIPS:lie,Endpoint:qE,AccountId:qE,AccountIdEndpointMode:qE,ResourceArn:qE,ResourceArnList:{[vj]:f7e,[ve]:"stringArray"}},[Sr]:[{[xt]:[die,pie,mie],[Sr]:[gie,fie,{[xt]:[{[fe]:Pn,[he]:[h7e,uie]}],error:"Endpoint override is not supported for dual-stack endpoints. Please enable dual-stack functionality by enabling the configuration. For more details, see: https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html",[ve]:Er},hie],[ve]:Ir},{[xt]:[die],[Sr]:[gie,fie,hie],[ve]:Ir},{[xt]:[pie],[Sr]:[{[xt]:[mie],[Sr]:[{[xt]:[{[fe]:Pn,[he]:[Die,"local"]}],[Sr]:[{[xt]:xie,error:"Invalid Configuration: FIPS and local endpoint are not supported",[ve]:Er},{[xt]:Pie,error:"Invalid Configuration: Dualstack and local endpoint are not supported",[ve]:Er},{endpoint:{[ya]:"http://localhost:8000",[_a]:{authSchemes:[{name:"sigv4",signingRegion:"us-east-1",signingName:xj}]},[Ca]:Sc},[ve]:ps}],[ve]:Ir},{[xt]:[ig,Oie],[Sr]:[{[xt]:[Sie,Eie],[Sr]:[Cj,{endpoint:{[ya]:"https://dynamodb-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",[_a]:Sc,[Ca]:Sc},[ve]:ps}],[ve]:Ir},{error:"FIPS and DualStack are enabled, but this partition does not support one or both",[ve]:Er}],[ve]:Ir},{[xt]:xie,[Sr]:[{[xt]:[Sie],[Sr]:[{[xt]:[{[fe]:Pn,[he]:[$E,"aws-us-gov"]}],[Sr]:[Cj,yie],[ve]:Ir},Cj,{endpoint:{[ya]:"https://dynamodb-fips.{Region}.{PartitionResult#dnsSuffix}",[_a]:Sc,[Ca]:Sc},[ve]:ps}],[ve]:Ir},{error:"FIPS is enabled but this partition does not support FIPS",[ve]:Er}],[ve]:Ir},{[xt]:Pie,[Sr]:[{[xt]:[Eie],[Sr]:[{[xt]:bie,endpoint:_ie,[ve]:ps},{[xt]:Iie,endpoint:_ie,[ve]:ps},{[xt]:Aie,[Sr]:[{[xt]:Tie,[Sr]:[{endpoint:{[ya]:"https://{AccountId}.ddb.{Region}.{PartitionResult#dualStackDnsSuffix}",[_a]:Rj,[Ca]:Sc},[ve]:ps}],[ve]:Ir},Cie],[ve]:Ir},Rie,{endpoint:{[ya]:uie,[_a]:Sc,[Ca]:Sc},[ve]:ps}],[ve]:Ir},{error:"DualStack is enabled but this partition does not support DualStack",[ve]:Er}],[ve]:Ir},{[xt]:bie,endpoint:vie,[ve]:ps},{[xt]:Iie,endpoint:vie,[ve]:ps},{[xt]:Aie,[Sr]:[{[xt]:Tie,[Sr]:[{endpoint:{[ya]:"https://{AccountId}.ddb.{Region}.{PartitionResult#dnsSuffix}",[_a]:Rj,[Ca]:Sc},[ve]:ps}],[ve]:Ir},Cie],[ve]:Ir},Rie,yie],[ve]:Ir}],[ve]:Ir},{error:"Invalid Configuration: Missing Region",[ve]:Er}]};xb.ruleSet=S7e});var Nie=b(Pb=>{"use strict";Object.defineProperty(Pb,"__esModule",{value:!0});Pb.defaultEndpointResolver=void 0;var E7e=cie(),Pj=require("@smithy/util-endpoints"),y7e=kie(),_7e=new Pj.EndpointCache({size:50,params:["AccountId","AccountIdEndpointMode","Endpoint","Region","ResourceArn","ResourceArnList","UseDualStack","UseFIPS"]}),C7e=(t,e={})=>_7e.get(t,()=>(0,Pj.resolveEndpoint)(y7e.ruleSet,{endpointParams:t,logger:e.logger}));Pb.defaultEndpointResolver=C7e;Pj.customEndpointFunctions.aws=E7e.awsEndpointFunctions});var Fie=b(bb=>{"use strict";Object.defineProperty(bb,"__esModule",{value:!0});bb.getRuntimeConfig=void 0;var R7e=(on(),ue(wu)),v7e=(_d(),ue(RG)),x7e=Yoe(),P7e=require("@smithy/smithy-client"),b7e=require("@smithy/url-parser"),Lie=require("@smithy/util-base64"),Mie=require("@smithy/util-utf8"),I7e=bG(),A7e=Nie(),T7e=t=>({apiVersion:"2012-08-10",base64Decoder:t?.base64Decoder??Lie.fromBase64,base64Encoder:t?.base64Encoder??Lie.toBase64,disableHostPrefix:t?.disableHostPrefix??!1,endpointProvider:t?.endpointProvider??A7e.defaultEndpointResolver,extensions:t?.extensions??[],httpAuthSchemeProvider:t?.httpAuthSchemeProvider??I7e.defaultDynamoDBHttpAuthSchemeProvider,httpAuthSchemes:t?.httpAuthSchemes??[{schemeId:"aws.auth#sigv4",identityProvider:e=>e.getIdentityProvider("aws.auth#sigv4"),signer:new R7e.AwsSdkSigV4Signer}],logger:t?.logger??new P7e.NoOpLogger,protocol:t?.protocol??v7e.AwsJson1_0Protocol,protocolSettings:t?.protocolSettings??{defaultNamespace:"com.amazonaws.dynamodb",xmlNamespace:"http://dynamodb.amazonaws.com/doc/2012-08-10/",version:"2012-08-10",serviceTarget:"DynamoDB_20120810",jsonCodec:new x7e.DynamoDBJsonCodec},serviceId:t?.serviceId??"DynamoDB",urlParser:t?.urlParser??b7e.parseUrl,utf8Decoder:t?.utf8Decoder??Mie.fromUtf8,utf8Encoder:t?.utf8Encoder??Mie.toUtf8});bb.getRuntimeConfig=T7e});var jie=b(Ab=>{"use strict";Object.defineProperty(Ab,"__esModule",{value:!0});Ab.getRuntimeConfig=void 0;var w7e=require("tslib"),D7e=w7e.__importDefault(U7()),Bie=(on(),ue(wu)),O7e=(G$(),ue($$)),k7e=uoe(),N7e=z$(),Uie=km(),Ib=require("@smithy/config-resolver"),L7e=require("@smithy/hash-node"),qie=require("@smithy/middleware-retry"),Ec=require("@smithy/node-config-provider"),$ie=require("@smithy/node-http-handler"),Gie=require("@smithy/smithy-client"),M7e=require("@smithy/util-body-length-node"),F7e=require("@smithy/util-defaults-mode-node"),B7e=require("@smithy/util-retry"),U7e=Fie(),q7e=t=>{(0,Gie.emitWarningIfUnsupportedVersion)(process.version);let e=(0,F7e.resolveDefaultsModeConfig)(t),r=()=>e().then(Gie.loadConfigsForDefaultMode),n=(0,U7e.getRuntimeConfig)(t);(0,Bie.emitWarningIfUnsupportedVersion)(process.version);let s={profile:t?.profile,logger:n.logger};return{...n,...t,runtime:"node",defaultsMode:e,accountIdEndpointMode:t?.accountIdEndpointMode??(0,Ec.loadConfig)(O7e.NODE_ACCOUNT_ID_ENDPOINT_MODE_CONFIG_OPTIONS,s),authSchemePreference:t?.authSchemePreference??(0,Ec.loadConfig)(Bie.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS,s),bodyLengthChecker:t?.bodyLengthChecker??M7e.calculateBodyLength,credentialDefaultProvider:t?.credentialDefaultProvider??k7e.defaultProvider,defaultUserAgentProvider:t?.defaultUserAgentProvider??(0,Uie.createDefaultUserAgentProvider)({serviceId:n.serviceId,clientVersion:D7e.default.version}),endpointDiscoveryEnabledProvider:t?.endpointDiscoveryEnabledProvider??(0,Ec.loadConfig)(N7e.NODE_ENDPOINT_DISCOVERY_CONFIG_OPTIONS,s),maxAttempts:t?.maxAttempts??(0,Ec.loadConfig)(qie.NODE_MAX_ATTEMPT_CONFIG_OPTIONS,t),region:t?.region??(0,Ec.loadConfig)(Ib.NODE_REGION_CONFIG_OPTIONS,{...Ib.NODE_REGION_CONFIG_FILE_OPTIONS,...s}),requestHandler:$ie.NodeHttpHandler.create(t?.requestHandler??r),retryMode:t?.retryMode??(0,Ec.loadConfig)({...qie.NODE_RETRY_MODE_CONFIG_OPTIONS,default:async()=>(await r()).retryMode||B7e.DEFAULT_RETRY_MODE},t),sha256:t?.sha256??L7e.Hash.bind(null,"sha256"),streamCollector:t?.streamCollector??$ie.streamCollector,useDualstackEndpoint:t?.useDualstackEndpoint??(0,Ec.loadConfig)(Ib.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS,s),useFipsEndpoint:t?.useFipsEndpoint??(0,Ec.loadConfig)(Ib.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS,s),userAgentAppId:t?.userAgentAppId??(0,Ec.loadConfig)(Uie.NODE_APP_ID_CONFIG_OPTIONS,s)}};Ab.getRuntimeConfig=q7e});var CA=b(S=>{"use strict";var $7e=(G$(),ue($$)),G7e=z$(),Vie=gm(),j7e=fm(),V7e=hm(),Hie=Cd(),H7e=require("@smithy/config-resolver"),yc=require("@smithy/core"),Xe=require("@smithy/core/schema"),z7e=require("@smithy/middleware-content-length"),Se=require("@smithy/middleware-endpoint"),zie=require("@smithy/middleware-retry"),pe=require("@smithy/smithy-client"),Wie=bG(),W7e=jie(),Kie=vd(),Qie=require("@smithy/protocol-http"),Ze=require("@smithy/util-waiter"),K7e=t=>Object.assign(t,{useDualstackEndpoint:t.useDualstackEndpoint??!1,useFipsEndpoint:t.useFipsEndpoint??!1,defaultSigningName:"dynamodb"}),_e={UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},AccountId:{type:"builtInParams",name:"accountId"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"},AccountIdEndpointMode:{type:"builtInParams",name:"accountIdEndpointMode"}},We=class t extends pe.ServiceException{constructor(e){super(e),Object.setPrototypeOf(this,t.prototype)}},Tb=class t extends We{name="BackupInUseException";$fault="client";constructor(e){super({name:"BackupInUseException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},wb=class t extends We{name="BackupNotFoundException";$fault="client";constructor(e){super({name:"BackupNotFoundException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},Db=class t extends We{name="InternalServerError";$fault="server";constructor(e){super({name:"InternalServerError",$fault:"server",...e}),Object.setPrototypeOf(this,t.prototype)}},Ob=class t extends We{name="RequestLimitExceeded";$fault="client";ThrottlingReasons;constructor(e){super({name:"RequestLimitExceeded",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.ThrottlingReasons=e.ThrottlingReasons}},kb=class t extends We{name="ThrottlingException";$fault="client";throttlingReasons;constructor(e){super({name:"ThrottlingException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.throttlingReasons=e.throttlingReasons}},Nb=class t extends We{name="InvalidEndpointException";$fault="client";Message;constructor(e){super({name:"InvalidEndpointException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.Message=e.Message}},Lb=class t extends We{name="ProvisionedThroughputExceededException";$fault="client";ThrottlingReasons;constructor(e){super({name:"ProvisionedThroughputExceededException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.ThrottlingReasons=e.ThrottlingReasons}},Mb=class t extends We{name="ResourceNotFoundException";$fault="client";constructor(e){super({name:"ResourceNotFoundException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},Fb=class t extends We{name="ItemCollectionSizeLimitExceededException";$fault="client";constructor(e){super({name:"ItemCollectionSizeLimitExceededException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},Bb=class t extends We{name="ReplicatedWriteConflictException";$fault="client";$retryable={};constructor(e){super({name:"ReplicatedWriteConflictException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},Ub=class t extends We{name="ContinuousBackupsUnavailableException";$fault="client";constructor(e){super({name:"ContinuousBackupsUnavailableException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},qb=class t extends We{name="LimitExceededException";$fault="client";constructor(e){super({name:"LimitExceededException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},$b=class t extends We{name="TableInUseException";$fault="client";constructor(e){super({name:"TableInUseException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},Gb=class t extends We{name="TableNotFoundException";$fault="client";constructor(e){super({name:"TableNotFoundException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},jb=class t extends We{name="GlobalTableAlreadyExistsException";$fault="client";constructor(e){super({name:"GlobalTableAlreadyExistsException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},Vb=class t extends We{name="ResourceInUseException";$fault="client";constructor(e){super({name:"ResourceInUseException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},Hb=class t extends We{name="TransactionConflictException";$fault="client";constructor(e){super({name:"TransactionConflictException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},zb=class t extends We{name="PolicyNotFoundException";$fault="client";constructor(e){super({name:"PolicyNotFoundException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},Wb=class t extends We{name="ExportNotFoundException";$fault="client";constructor(e){super({name:"ExportNotFoundException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},Kb=class t extends We{name="GlobalTableNotFoundException";$fault="client";constructor(e){super({name:"GlobalTableNotFoundException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},Qb=class t extends We{name="ImportNotFoundException";$fault="client";constructor(e){super({name:"ImportNotFoundException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},Xb=class t extends We{name="DuplicateItemException";$fault="client";constructor(e){super({name:"DuplicateItemException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},Jb=class t extends We{name="IdempotentParameterMismatchException";$fault="client";Message;constructor(e){super({name:"IdempotentParameterMismatchException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.Message=e.Message}},Yb=class t extends We{name="TransactionInProgressException";$fault="client";Message;constructor(e){super({name:"TransactionInProgressException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.Message=e.Message}},Zb=class t extends We{name="ExportConflictException";$fault="client";constructor(e){super({name:"ExportConflictException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},eI=class t extends We{name="InvalidExportTimeException";$fault="client";constructor(e){super({name:"InvalidExportTimeException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},tI=class t extends We{name="PointInTimeRecoveryUnavailableException";$fault="client";constructor(e){super({name:"PointInTimeRecoveryUnavailableException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},rI=class t extends We{name="ImportConflictException";$fault="client";constructor(e){super({name:"ImportConflictException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},nI=class t extends We{name="TableAlreadyExistsException";$fault="client";constructor(e){super({name:"TableAlreadyExistsException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},sI=class t extends We{name="InvalidRestoreTimeException";$fault="client";constructor(e){super({name:"InvalidRestoreTimeException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},oI=class t extends We{name="ReplicaAlreadyExistsException";$fault="client";constructor(e){super({name:"ReplicaAlreadyExistsException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},iI=class t extends We{name="ReplicaNotFoundException";$fault="client";constructor(e){super({name:"ReplicaNotFoundException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},aI=class t extends We{name="IndexNotFoundException";$fault="client";constructor(e){super({name:"IndexNotFoundException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},cI=class t extends We{name="ConditionalCheckFailedException";$fault="client";Item;constructor(e){super({name:"ConditionalCheckFailedException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.Item=e.Item}},uI=class t extends We{name="TransactionCanceledException";$fault="client";Message;CancellationReasons;constructor(e){super({name:"TransactionCanceledException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.Message=e.Message,this.CancellationReasons=e.CancellationReasons}},Q7e="Action",X7e="ArchivalBackupArn",bj="ApproximateCreationDateTimePrecision",J7e="AttributeDefinition",Y7e="ArchivalDateTime",ZE="AttributeDefinitions",Z7e="AttributeMap",eZe="AccountMaxReadCapacityUnits",tZe="AccountMaxWriteCapacityUnits",rA="AttributeName",rZe="ArchivalReason",Jie="ArchivalSummary",Yie="AutoScalingDisabled",nZe="AutoScalingPolicyDescription",sZe="AutoScalingPolicyDescriptionList",oZe="AutoScalingPolicyUpdate",Zie="AutoScalingRoleArn",iZe="AutoScalingSettingsDescription",aZe="AutoScalingSettingsUpdate",cZe="AutoScalingTargetTrackingScalingPolicyConfigurationDescription",uZe="AutoScalingTargetTrackingScalingPolicyConfigurationUpdate",lZe="AttributeType",nA="AttributesToGet",eae="AttributeUpdates",dZe="AttributeValue",Ij="AttributeValueList",pZe="AttributeValueUpdate",mZe="Address",Aj="Attributes",gZe="Backfilling",ey="BackupArn",tae="BackupCreationDateTime",Tj="BackupDescription",wj="BackupDetails",rae="BackupExpiryDateTime",fZe="BatchExecuteStatement",hZe="BatchExecuteStatementInput",SZe="BatchExecuteStatementOutput",EZe="BatchGetItem",yZe="BatchGetItemInput",_Ze="BatchGetItemOutput",CZe="BatchGetResponseMap",RZe="BatchGetRequestMap",vZe="BackupInUseException",ty="BillingMode",nae="BillingModeOverride",sae="BillingModeSummary",Dj="BackupName",xZe="BackupNotFoundException",PZe="BOOL",oae="BackupStatus",iae="BackupSizeBytes",bZe="BilledSizeBytes",IZe="BatchStatementError",AZe="BatchStatementRequest",TZe="BatchStatementResponse",wZe="BS",DZe="BackupSummary",aae="BackupSummaries",Oj="BackupType",OZe="BatchWriteItem",kZe="BatchWriteItemInput",NZe="BatchWriteItemOutput",LZe="BatchWriteItemRequestMap",MZe="B",cae="Code",FZe="CreateBackup",kj="ContinuousBackupsDescription",BZe="CreateBackupInput",UZe="CreateBackupOutput",qZe="ContinuousBackupsStatus",$Ze="ContinuousBackupsUnavailableException",ms="ConsumedCapacity",GZe="ConditionalCheckFailedException",jZe="ConsumedCapacityMultiple",uae="ConditionCheck",lae="CreationDateTime",Ud="ConditionExpression",VZe="CreateGlobalSecondaryIndexAction",HZe="CreateGlobalTable",zZe="CreateGlobalTableInput",WZe="CreateGlobalTableOutput",KZe="CreateGlobalTableWitnessGroupMemberAction",QZe="ContributorInsightsAction",sA="ContributorInsightsMode",XZe="ContributorInsightsRuleList",JZe="ContributorInsightsSummary",Nj="ContributorInsightsStatus",dae="ContributorInsightsSummaries",pae="ComparisonOperator",ry="ConditionalOperator",YZe="CsvOptions",ZZe="CachePeriodInMinutes",cg="ConsistentRead",eet="CreateReplicaAction",tet="CreateReplicationGroupMemberAction",ret="CancellationReasonList",net="ConfirmRemoveSelfResourceAccess",mae="ClientRequestToken",set="CancellationReason",oet="CancellationReasons",oA="ClientToken",iet="CreateTableInput",aet="CreateTableOutput",cet="CreateTable",gae="CapacityUnits",fae="CloudWatchLogGroupArn",uet="Capacity",det="Condition",hae="Count",iA="Create",pet="Csv",met="Delimiter",get="DeleteBackup",fet="DeleteBackupInput",het="DescribeBackupInput",Eet="DeleteBackupOutput",yet="DescribeBackupOutput",_et="DescribeBackup",Cet="DescribeContinuousBackups",Ret="DescribeContinuousBackupsInput",vet="DescribeContinuousBackupsOutput",xet="DescribeContributorInsights",Pet="DescribeContributorInsightsInput",bet="DescribeContributorInsightsOutput",Iet="DescribeEndpoints",Aet="DescribeExportInput",Tet="DescribeExportOutput",wet="DescribeEndpointsRequest",Det="DescribeEndpointsResponse",Oet="DescribeExport",ket="DeleteGlobalSecondaryIndexAction",Net="DescribeGlobalTable",Let="DescribeGlobalTableInput",Met="DescribeGlobalTableOutput",Fet="DescribeGlobalTableSettings",Bet="DescribeGlobalTableSettingsInput",Uet="DescribeGlobalTableSettingsOutput",qet="DeleteGlobalTableWitnessGroupMemberAction",$et="DeleteItem",Get="DuplicateItemException",jet="DeleteItemInput",Vet="DescribeImportInput",Het="DeleteItemOutput",zet="DescribeImportOutput",Wet="DescribeImport",Ket="DescribeKinesisStreamingDestination",Qet="DescribeKinesisStreamingDestinationInput",Xet="DescribeKinesisStreamingDestinationOutput",Jet="DisableKinesisStreamingDestination",Yet="DescribeLimits",Zet="DescribeLimitsInput",ett="DescribeLimitsOutput",Lj="DeletionProtectionEnabled",Sae="DeleteRequest",ttt="DeleteReplicaAction",rtt="DeleteReplicationGroupMemberAction",ntt="DeleteResourcePolicy",stt="DeleteResourcePolicyInput",ott="DeleteResourcePolicyOutput",Mj="DestinationStatus",itt="DestinationStatusDescription",Eae="DisableScaleIn",att="DeleteTable",ctt="DeleteTableInput",utt="DescribeTableInput",ltt="DeleteTableOutput",dtt="DescribeTableOutput",ptt="DescribeTableReplicaAutoScaling",mtt="DescribeTableReplicaAutoScalingInput",gtt="DescribeTableReplicaAutoScalingOutput",ftt="DescribeTimeToLive",htt="DescribeTimeToLiveInput",Stt="DescribeTimeToLiveOutput",Ett="DescribeTable",ug="Delete",ytt="Error",Fj="ExportArn",_tt="ExpectedAttributeMap",No="ExpressionAttributeNames",Cc="ExpressionAttributeValues",Ctt="ExpressionAttributeValueMap",Rtt="ExpectedAttributeValue",vtt="ErrorCount",xtt="ExportConflictException",Bj="ExportDescription",Ptt="ExceptionDescription",yae="ExportFormat",btt="ExportFromTime",Uj="EnableKinesisStreamingConfiguration",Itt="EnableKinesisStreamingDestination",Att="ExportManifest",Ttt="ExceptionName",wtt="ExportNotFoundException",Dtt="EarliestRestorableDateTime",_ae="ExpectedRevisionId",Cae="ExportStatus",Ott="ExclusiveStartBackupArn",ktt="ExclusiveStartGlobalTableName",Ntt="ExecuteStatementInput",Rae="ExclusiveStartKey",Ltt="ExecuteStatementOutput",Mtt="ExclusiveStartTableName",Ftt="ExportSummary",Btt="ExecuteStatement",vae="ExportSummaries",qj="EndTime",Utt="ExecuteTransactionInput",qtt="ExecuteTransactionOutput",$tt="ExportToTime",Gtt="ExportTableToPointInTime",jtt="ExportTableToPointInTimeInput",Vtt="ExportTableToPointInTimeOutput",xae="ExportTime",Htt="ExecuteTransaction",$j="ExportType",ztt="ExportViewType",Pae="Endpoints",bae="Enabled",Wtt="Endpoint",Gj="Expected",Ktt="Exists",Iae="FailureCode",Qtt="FilterConditionMap",Aae="FailureException",Tae="FilterExpression",wae="FailureMessage",Dae="Get",Xtt="GetItem",Jtt="GetItemInput",Ytt="GetItemOutput",Ztt="GetResourcePolicy",ert="GetResourcePolicyInput",trt="GetResourcePolicyOutput",va="GlobalSecondaryIndexes",rrt="GlobalSecondaryIndexAutoScalingUpdate",nrt="GlobalSecondaryIndexAutoScalingUpdateList",srt="GlobalSecondaryIndexDescription",ort="GlobalSecondaryIndexDescriptionList",irt="GlobalSecondaryIndexInfo",art="GlobalSecondaryIndexList",Oae="GlobalSecondaryIndexOverride",crt="GlobalSecondaryIndexUpdate",urt="GlobalSecondaryIndexUpdateList",kae="GlobalSecondaryIndexUpdates",lrt="GlobalSecondaryIndexWarmThroughputDescription",drt="GlobalSecondaryIndex",prt="GlobalTable",mrt="GlobalTableArn",grt="GlobalTableAlreadyExistsException",frt="GlobalTableBillingMode",aA="GlobalTableDescription",Nae="GlobalTableGlobalSecondaryIndexSettingsUpdate",hrt="GlobalTableGlobalSecondaryIndexSettingsUpdateList",Srt="GlobalTableList",Rc="GlobalTableName",Ert="GlobalTableNotFoundException",yrt="GlobalTableProvisionedWriteCapacityAutoScalingSettingsUpdate",_rt="GlobalTableProvisionedWriteCapacityUnits",Crt="GlobalTableStatus",Rrt="GlobalTableVersion",vrt="GlobalTableWitnesses",xrt="GlobalTableWitnessDescription",Prt="GlobalTableWitnessDescriptionList",brt="GlobalTableWitnessGroupUpdate",Irt="GlobalTableWitnessGroupUpdateList",Art="GlobalTableWitnessUpdates",Trt="GlobalTables",wrt="HeaderList",vc="Item",jj="ImportArn",Lae="IndexArn",ny="ItemCount",Drt="ImportConflictException",Ort="ItemCollectionKey",krt="ItemCollectionKeyAttributeMap",lg="ItemCollectionMetrics",Nrt="ItemCollectionMetricsMultiple",Lrt="ItemCollectionMetricsPerTable",Mrt="ItemCollectionSizeLimitExceededException",Mae="InputCompressionType",Frt="InaccessibleEncryptionDateTime",Brt="InvalidEndpointException",Vj="IncrementalExportSpecification",Urt="InvalidExportTimeException",Hj="InputFormat",zj="InputFormatOptions",qrt="ImportedItemCount",$rt="ItemList",Qt="IndexName",Grt="ImportNotFoundException",jrt="IndexNotFoundException",Vrt="IdempotentParameterMismatchException",Hrt="ItemResponse",zrt="ItemResponseList",Wrt="InvalidRestoreTimeException",Wj="IndexStatus",Fae="IndexSizeBytes",Krt="InternalServerError",Bae="ImportSummaryList",Qrt="ImportSummary",Uae="ImportStatus",Xrt="ImportTable",Kj="ImportTableDescription",Jrt="ImportTableInput",Yrt="ImportTableOutput",Qj="Items",xa="Key",Zrt="KeysAndAttributes",qae="KeyConditions",ent="KeyConditionExpression",$ae="KinesisDataStreamDestinations",tnt="KinesisDataStreamDestination",rnt="KeyList",nnt="KMSMasterKeyArn",cA="KMSMasterKeyId",Lo="KeySchema",snt="KinesisStreamingDestinationInput",ont="KinesisStreamingDestinationOutput",int="KeySchemaElement",ant="KeyType",cnt="Keys",dg="Limit",unt="ListAttributeValue",lnt="ListBackups",dnt="ListBackupsInput",pnt="ListBackupsOutput",mnt="ListContributorInsights",gnt="ListContributorInsightsInput",fnt="ListContributorInsightsOutput",hnt="LastDecreaseDateTime",Snt="ListExports",Ent="LastEvaluatedBackupArn",ynt="LimitExceededException",_nt="LastEvaluatedGlobalTableName",Cnt="ListExportsInput",Xj="LastEvaluatedKey",Rnt="ListExportsOutput",vnt="LastEvaluatedTableName",xnt="ListGlobalTables",Pnt="ListGlobalTablesInput",bnt="ListGlobalTablesOutput",Int="ListImports",Ant="LastIncreaseDateTime",Tnt="ListImportsInput",wnt="ListImportsOutput",Dnt="LatestRestorableDateTime",Ont="LatestStreamArn",sy="LocalSecondaryIndexes",knt="LocalSecondaryIndexDescription",Nnt="LocalSecondaryIndexDescriptionList",Lnt="LocalSecondaryIndexInfo",Mnt="LocalSecondaryIndexList",Gae="LocalSecondaryIndexOverride",Fnt="LocalSecondaryIndex",Bnt="LatestStreamLabel",Unt="ListTables",qnt="ListTablesInput",$nt="ListTablesOutput",Gnt="ListTagsOfResource",jnt="ListTagsOfResourceInput",Vnt="ListTagsOfResourceOutput",jae="LastUpdateDateTime",Hnt="LastUpdateToPayPerRequestDateTime",znt="L",pg="Message",Wnt="MapAttributeValue",Vae="MaxResults",Hae="MultiRegionConsistency",zae="MaxReadRequestUnits",Wae="MinimumUnits",Kae="MaximumUnits",Knt="MaxWriteRequestUnits",Qnt="M",Xnt="N",Jnt="NonKeyAttributes",Ynt="NumberOfDecreasesToday",Znt="NS",Pa="NextToken",est="NULL",Ii="OnDemandThroughput",Ku="OnDemandThroughputOverride",Jj="Parameters",oy="ProjectionExpression",tst="PutItem",rst="ProcessedItemCount",nst="PutItemInput",sst="PutItemInputAttributeMap",ost="PutItemOutput",Qae="PointInTimeRecoveryDescription",ist="PointInTimeRecoveryEnabled",ast="PointInTimeRecoveryStatus",Xae="PointInTimeRecoverySpecification",cst="PointInTimeRecoveryUnavailableException",Jae="PolicyName",ust="PolicyNotFoundException",lst="PartiQLBatchRequest",dst="PartiQLBatchResponse",Yae="PutRequest",Zae="ProvisionedReadCapacityAutoScalingSettings",pst="ProvisionedReadCapacityAutoScalingSettingsUpdate",mst="ProvisionedReadCapacityAutoScalingUpdate",ece="ProvisionedReadCapacityUnits",gst="PutResourcePolicy",fst="PutResourcePolicyInput",hst="PutResourcePolicyOutput",Sst="PageSize",Est="ProcessedSizeBytes",yst="PreparedStatementParameters",_st="ParameterizedStatement",Cst="ParameterizedStatements",Ai="ProvisionedThroughput",Rst="ProvisionedThroughputDescription",vst="ProvisionedThroughputExceededException",Qu="ProvisionedThroughputOverride",xst="ProjectionType",tce="ProvisionedWriteCapacityAutoScalingSettings",Pst="ProvisionedWriteCapacityAutoScalingSettingsUpdate",rce="ProvisionedWriteCapacityAutoScalingUpdate",nce="ProvisionedWriteCapacityUnits",sce="Policy",Xu="Projection",oce="Put",bst="Query",Ist="QueryFilter",Ast="QueryInput",Tst="QueryOutput",uA="Responses",mg="ResourceArn",wst="ReplicaAlreadyExistsException",Dst="ReplicaAutoScalingDescription",Ost="ReplicaAutoScalingDescriptionList",kst="ReplicaAutoScalingUpdate",Nst="ReplicaAutoScalingUpdateList",Lst="ReplicaBillingModeSummary",Hs="ReturnConsumedCapacity",iy="ReadCapacityUnits",Mst="ReplicaDescription",Fst="ReplicaDescriptionList",ice="RestoreDateTime",Yj="ReplicationGroup",Bst="ReplicaGlobalSecondaryIndex",Ust="ReplicaGlobalSecondaryIndexAutoScalingDescription",qst="ReplicaGlobalSecondaryIndexAutoScalingDescriptionList",$st="ReplicaGlobalSecondaryIndexAutoScalingUpdate",Gst="ReplicaGlobalSecondaryIndexAutoScalingUpdateList",jst="ReplicaGlobalSecondaryIndexDescription",Vst="ReplicaGlobalSecondaryIndexDescriptionList",Hst="ReplicaGlobalSecondaryIndexList",zst="ReplicaGlobalSecondaryIndexSettings",Wst="ReplicaGlobalSecondaryIndexSettingsDescription",Kst="ReplicaGlobalSecondaryIndexSettingsDescriptionList",ace="ReplicaGlobalSecondaryIndexSettingsUpdate",Qst="ReplicaGlobalSecondaryIndexSettingsUpdateList",Xst="ReplicaGlobalSecondaryIndexUpdates",Jst="ReplicationGroupUpdate",Yst="ReplicationGroupUpdateList",cce="RequestItems",ay="ReturnItemCollectionMetrics",Zst="ReplicaInaccessibleDateTime",eot="RestoreInProgress",tot="ResourceInUseException",Zj="RevisionId",rot="ReplicaList",not="RequestLimitExceeded",Qn="RegionName",sot="ReplicaNotFoundException",oot="ResourceNotFoundException",iot="ResourcePolicy",uce="RecoveryPeriodInDays",lce="ReplicaProvisionedReadCapacityAutoScalingSettings",aot="ReplicaProvisionedReadCapacityAutoScalingSettingsUpdate",cot="ReplicaProvisionedReadCapacityAutoScalingUpdate",dce="ReplicaProvisionedReadCapacityUnits",pce="ReplicaProvisionedWriteCapacityAutoScalingSettings",uot="ReplicaProvisionedWriteCapacityUnits",mce="ReplicaSettings",lot="ReplicaStatusDescription",dot="ReplicaSettingsDescriptionList",pot="ReplicaSettingsDescription",mot="ReplicaStatusPercentProgress",gce="ReplicaSettingsUpdate",got="ReplicaSettingsUpdateList",e4="ReplicaStatus",fce="RestoreSummary",fot="ReplicaTableClass",hce="ReplicaTableClassSummary",hot="RestoreTableFromBackup",Sot="RestoreTableFromBackupInput",Eot="RestoreTableFromBackupOutput",yot="RestoreTableToPointInTime",_ot="RestoreTableToPointInTimeInput",Cot="RestoreTableToPointInTimeOutput",Rot="ReplicaUpdate",vot="ReplicaUpdateList",t4="ReadUnitsPerSecond",r4="ReplicaUpdates",n4="ReturnValues",ba="ReturnValuesOnConditionCheckFailure",xot="ReplicatedWriteConflictException",Pot="Replica",Sce="Replicas",bot="Statements",cy="StreamArn",s4="S3Bucket",Iot="SourceBackupArn",o4="S3BucketOwner",lA="S3BucketSource",Ece="ScannedCount",Aot="StreamDescription",Tot="StreamEnabled",wot="SizeEstimateRangeGB",Dot="ScanFilter",Oot="ScanInput",yce="ScaleInCooldown",kot="SecondaryIndexesCapacityMap",Not="ScanIndexForward",Lot="S3KeyPrefix",Mot="ScanOutput",_ce="ScaleOutCooldown",Fot="ScalingPolicies",Bot="ScalingPolicyUpdate",Cce="S3Prefix",dA="StreamSpecification",Rce="S3SseAlgorithm",i4="SSEDescription",pA="SSESpecification",vce="SSESpecificationOverride",xce="SSEType",Pce="S3SseKmsKeyId",Uot="SS",a4="StartTime",bce="SourceTableArn",Ice="SourceTableDetails",Ace="SourceTableFeatureDetails",qot="SourceTableName",$ot="StreamViewType",Got="S",jot="Scan",Tce="Select",Vot="Segment",c4="Statement",u4="Status",wce="Table",xc="TableArn",Hot="TableAlreadyExistsException",l4="TableAutoScalingDescription",d4="TableClass",zot="TableCreationDateTime",Wot="TransactionCanceledException",Kot="TransactionConflictException",Dce="TableClassOverride",p4="TableCreationParameters",Oce="TableClassSummary",gg="TableDescription",Qot="ThrottlingException",Xot="TransactGetItem",Jot="TransactGetItemsInput",Yot="TransactGetItemList",Zot="TransactGetItemsOutput",eit="TransactGetItems",uy="TableId",tit="TransactionInProgressException",rit="TableInUseException",kce="TransactItems",nit="TagKeys",sit="TagList",oit="TableMaxReadCapacityUnits",iit="TableMaxWriteCapacityUnits",Ue="TableName",ait="TableNotFoundException",cit="TableNames",Nce="ThrottlingReasons",uit="TagResourceInput",lit="ThrottlingReasonList",dit="TimeRangeLowerBound",pit="TimeRangeUpperBound",mit="TagResource",git="ThrottlingReason",fit="TransactStatements",Lce="TableSizeBytes",Mce="TableStatus",hit="TotalSegments",m4="TimeToLiveDescription",Sit="TimeToLiveStatus",g4="TimeToLiveSpecification",Fce="TargetTableName",Bce="TargetTrackingScalingPolicyConfiguration",Uce="TargetValue",Eit="TransactWriteItem",yit="TransactWriteItemsInput",_it="TransactWriteItemList",Cit="TransactWriteItemsOutput",Rit="TransactWriteItems",vit="TableWarmThroughputDescription",f4="Tags",xit="Tag",mA="Update",Pit="UpdateContinuousBackups",bit="UpdateContinuousBackupsInput",Iit="UpdateContinuousBackupsOutput",Ait="UpdateContributorInsights",Tit="UpdateContributorInsightsInput",wit="UpdateContributorInsightsOutput",qce="UpdateExpression",Dit="UpdateGlobalSecondaryIndexAction",Oit="UpdateGlobalTable",kit="UpdateGlobalTableInput",Nit="UpdateGlobalTableOutput",Lit="UpdateGlobalTableSettings",Mit="UpdateGlobalTableSettingsInput",Fit="UpdateGlobalTableSettingsOutput",Bit="UnprocessedItems",Uit="UpdateItemInput",qit="UpdateItemOutput",$it="UpdateItem",Git="UnprocessedKeys",h4="UpdateKinesisStreamingConfiguration",jit="UpdateKinesisStreamingDestination",Vit="UpdateKinesisStreamingDestinationInput",Hit="UpdateKinesisStreamingDestinationOutput",zit="UseLatestRestorableTime",Wit="UntagResource",Kit="UpdateReplicationGroupMemberAction",Qit="UntagResourceInput",Xit="UpdateTable",Jit="UpdateTableInput",Yit="UpdateTableOutput",Zit="UpdateTableReplicaAutoScaling",eat="UpdateTableReplicaAutoScalingInput",tat="UpdateTableReplicaAutoScalingOutput",rat="UpdateTimeToLive",nat="UpdateTimeToLiveInput",sat="UpdateTimeToLiveOutput",S4="Value",gA="WriteCapacityUnits",oat="WriteRequest",iat="WriteRequests",aat="WitnessStatus",Ia="WarmThroughput",E4="WriteUnitsPerSecond",cat="awsQueryError",ot="client",tt="error",$ce="httpError",uat="httpHeader",ft="message",lat="reason",dat="resource",pat="server",Gce="smithy.ts.sdk.synthetic.com.amazonaws.dynamodb",mat="throttlingReasons",gat="x-amz-confirm-remove-self-resource-access",C="com.amazonaws.dynamodb",jce=[3,C,Jie,0,[Y7e,rZe,X7e],[4,0,0]],Vce=[3,C,J7e,0,[rA,lZe],[0,0],2],Hce=[3,C,pZe,0,[S4,Q7e],[()=>Mo,0]],zce=[3,C,nZe,0,[Jae,Bce],[0,()=>Kce]],Wce=[3,C,oZe,0,[Bce,Jae],[()=>Qce,0],1],_c=[3,C,iZe,0,[Wae,Kae,Yie,Zie,Fot],[1,1,2,0,()=>fat]],Pc=[3,C,aZe,0,[Wae,Kae,Yie,Zie,Bot],[1,1,2,0,()=>Wce]],Kce=[3,C,cZe,0,[Uce,Eae,yce,_ce],[1,2,1,1],1],Qce=[3,C,uZe,0,[Uce,Eae,yce,_ce],[1,2,1,1],1],y4=[3,C,Tj,0,[wj,Ice,Ace],[()=>_4,()=>ipe,()=>ape]],_4=[3,C,wj,0,[ey,Dj,oae,Oj,tae,iae,rae],[0,0,0,0,4,1,4],5],Xce=[-3,C,vZe,{[tt]:ot},[ft],[0]];Xe.TypeRegistry.for(C).registerError(Xce,Tb);var Jce=[-3,C,xZe,{[tt]:ot},[ft],[0]];Xe.TypeRegistry.for(C).registerError(Jce,wb);var Yce=[3,C,DZe,0,[Ue,uy,xc,ey,Dj,tae,rae,oae,Oj,iae],[0,0,0,0,0,4,4,0,0,1]],Zce=[3,C,hZe,0,[bot,Hs],[()=>Fat,0],1],eue=[3,C,SZe,0,[uA,ms],[()=>Bat,()=>yg]],tue=[3,C,yZe,0,[cce,Hs],[()=>tme,0],1],rue=[3,C,_Ze,0,[uA,Git,ms],[()=>Zat,()=>tme,()=>yg]],nue=[3,C,IZe,0,[cae,pg,vc],[0,0,()=>Aa]],sue=[3,C,AZe,0,[c4,Jj,cg,ba],[0,()=>G4,2,0],1],oue=[3,C,TZe,0,[ytt,Ue,vc],[()=>nue,0,()=>Aa]],iue=[3,C,kZe,0,[cce,Hs,ay],[()=>rme,0,0],1],aue=[3,C,NZe,0,[Bit,lg,ms],[()=>rme,()=>sme,()=>yg]],C4=[3,C,sae,0,[ty,Hnt],[0,4]],cue=[3,C,set,0,[vc,cae,pg],[()=>Aa,0,0]],R4=[3,C,uet,0,[iy,gA,gae],[1,1,1]],v4=[3,C,det,0,[pae,Ij],[0,()=>Qpe],1],uue=[-3,C,GZe,{[tt]:ot},[ft,vc],[0,()=>Aa]];Xe.TypeRegistry.for(C).registerError(uue,cI);var lue=[3,C,uae,0,[xa,Ue,Ud,No,Cc,ba],[()=>gs,0,0,128,()=>Ic,0],3],bc=[3,C,ms,0,[Ue,gae,iy,gA,wce,sy,va],[0,1,1,1,()=>R4,()=>Xie,()=>Xie]],x4=[3,C,kj,0,[qZe,Qae],[0,()=>_de],1],due=[-3,C,$Ze,{[tt]:ot},[ft],[0]];Xe.TypeRegistry.for(C).registerError(due,Ub);var pue=[3,C,JZe,0,[Ue,Qt,Nj,sA],[0,0,0,0]],mue=[3,C,BZe,0,[Ue,Dj],[0,0],2],gue=[3,C,UZe,0,[wj],[()=>_4]],fue=[3,C,VZe,0,[Qt,Lo,Xu,Ai,Ii,Ia],[0,()=>wi,()=>Ju,()=>Ti,()=>zs,()=>Eg],3],hue=[3,C,zZe,0,[Rc,Yj],[0,()=>Zpe],2],Sue=[3,C,WZe,0,[aA],[()=>fA]],Eue=[3,C,KZe,0,[Qn],[0],1],yue=[3,C,eet,0,[Qn],[0],1],_ue=[3,C,tet,0,[Qn,cA,Qu,Ku,va,Dce],[0,0,()=>hg,()=>fg,()=>Ype,0],1],Cue=[3,C,iet,0,[ZE,Ue,Lo,sy,va,ty,Ai,dA,pA,f4,d4,Lj,Ia,iot,Ii],[()=>EA,0,()=>wi,()=>$4,()=>yA,0,()=>Ti,()=>dy,()=>Sg,()=>j4,0,2,()=>Eg,0,()=>zs],3],Rue=[3,C,aet,0,[gg],[()=>qd]],vue=[3,C,YZe,0,[met,wrt],[0,64]],xue=[3,C,ug,0,[xa,Ue,Ud,No,Cc,ba],[()=>gs,0,0,128,()=>Ic,0],2],Pue=[3,C,fet,0,[ey],[0],1],bue=[3,C,Eet,0,[Tj],[()=>y4]],Iue=[3,C,ket,0,[Qt],[0],1],Aue=[3,C,qet,0,[Qn],[0],1],Tue=[3,C,jet,0,[Ue,xa,Gj,ry,n4,Hs,ay,Ud,No,Cc,ba],[0,()=>gs,()=>H4,0,0,0,0,0,128,()=>Ic,0],2],wue=[3,C,Het,0,[Aj,ms,lg],[()=>Aa,()=>bc,()=>ly]],Due=[3,C,ttt,0,[Qn],[0],1],Oue=[3,C,rtt,0,[Qn],[0],1],kue=[3,C,Sae,0,[xa],[()=>gs],1],Nue=[3,C,stt,0,[mg,_ae],[0,0],1],Lue=[3,C,ott,0,[Zj],[0]],Mue=[3,C,ctt,0,[Ue],[0],1],Fue=[3,C,ltt,0,[gg],[()=>qd]],Bue=[3,C,het,0,[ey],[0],1],Uue=[3,C,yet,0,[Tj],[()=>y4]],que=[3,C,Ret,0,[Ue],[0],1],$ue=[3,C,vet,0,[kj],[()=>x4]],Gue=[3,C,Pet,0,[Ue,Qt],[0,0],1],jue=[3,C,bet,0,[Ue,Qt,XZe,Nj,jae,Aae,sA],[0,0,64,0,4,()=>Rle,0]],Vue=[3,C,wet,0,[],[]],Hue=[3,C,Det,0,[Pae],[()=>yat],1],zue=[3,C,Aet,0,[Fj],[0],1],Wue=[3,C,Tet,0,[Bj],[()=>b4]],Kue=[3,C,Let,0,[Rc],[0],1],Que=[3,C,Met,0,[aA],[()=>fA]],Xue=[3,C,Bet,0,[Rc],[0],1],Jue=[3,C,Uet,0,[Rc,mce],[0,()=>eme]],Yue=[3,C,Vet,0,[jj],[0],1],Zue=[3,C,zet,0,[Kj],[()=>A4],1],ele=[3,C,Qet,0,[Ue],[0],1],tle=[3,C,Xet,0,[Ue,$ae],[0,()=>Oat]],rle=[3,C,Zet,0,[],[]],nle=[3,C,ett,0,[eZe,tZe,oit,iit],[1,1,1,1]],sle=[3,C,utt,0,[Ue],[0],1],ole=[3,C,dtt,0,[wce],[()=>qd]],ile=[3,C,mtt,0,[Ue],[0],1],ale=[3,C,gtt,0,[l4],[()=>L4]],cle=[3,C,htt,0,[Ue],[0],1],ule=[3,C,Stt,0,[m4],[()=>B4]],lle=[-3,C,Get,{[tt]:ot},[ft],[0]];Xe.TypeRegistry.for(C).registerError(lle,Xb);var P4=[3,C,Uj,0,[bj],[0]],dle=[3,C,Wtt,0,[mZe,ZZe],[0,1],2],ple=[3,C,Ntt,0,[c4,Jj,cg,Pa,Hs,dg,ba],[0,()=>G4,2,0,0,1,0],1],mle=[3,C,Ltt,0,[Qj,Pa,ms,Xj],[()=>_A,0,()=>bc,()=>gs]],gle=[3,C,Utt,0,[fit,mae,Hs],[()=>Mat,[0,4],0],1],fle=[3,C,qtt,0,[uA,ms],[()=>Xpe,()=>yg]],hle=[3,C,Rtt,0,[S4,Ktt,pae,Ij],[()=>Mo,2,0,()=>Qpe]],Sle=[-3,C,xtt,{[tt]:ot},[ft],[0]];Xe.TypeRegistry.for(C).registerError(Sle,Zb);var b4=[3,C,Bj,0,[Fj,Cae,a4,qj,Att,xc,uy,xae,oA,s4,o4,Cce,Rce,Pce,Iae,wae,yae,bZe,ny,$j,Vj],[0,0,4,4,0,0,0,4,0,0,0,0,0,0,0,0,0,1,1,0,()=>T4]],Ele=[-3,C,wtt,{[tt]:ot},[ft],[0]];Xe.TypeRegistry.for(C).registerError(Ele,Wb);var yle=[3,C,Ftt,0,[Fj,Cae,$j],[0,0,0]],_le=[3,C,jtt,0,[xc,s4,xae,oA,o4,Cce,Rce,Pce,yae,$j,Vj],[0,0,4,[0,4],0,0,0,0,0,0,()=>T4],2],Cle=[3,C,Vtt,0,[Bj],[()=>b4]],Rle=[3,C,Aae,0,[Ttt,Ptt],[0,0]],vle=[3,C,Dae,0,[xa,Ue,oy,No],[()=>gs,0,0,128],2],xle=[3,C,Jtt,0,[Ue,xa,nA,cg,Hs,oy,No],[0,()=>gs,64,2,0,0,128],2],Ple=[3,C,Ytt,0,[vc,ms],[()=>Aa,()=>bc]],ble=[3,C,ert,0,[mg],[0],1],Ile=[3,C,trt,0,[sce,Zj],[0,0]],Ale=[3,C,drt,0,[Qt,Lo,Xu,Ai,Ii,Ia],[0,()=>wi,()=>Ju,()=>Ti,()=>zs,()=>Eg],3],Tle=[3,C,rrt,0,[Qt,rce],[0,()=>Pc]],wle=[3,C,srt,0,[Qt,Lo,Xu,Wj,gZe,Ai,Fae,ny,Lae,Ii,Ia],[0,()=>wi,()=>Ju,0,2,()=>k4,1,1,0,()=>zs,()=>I4]],Dle=[3,C,irt,0,[Qt,Lo,Xu,Ai,Ii],[0,()=>wi,()=>Ju,()=>Ti,()=>zs]],Ole=[3,C,crt,0,[mA,iA,ug],[()=>wpe,()=>fue,()=>Iue]],I4=[3,C,lrt,0,[t4,E4,u4],[1,1,0]],kle=[3,C,prt,0,[Rc,Yj],[0,()=>Zpe]],Nle=[-3,C,grt,{[tt]:ot},[ft],[0]];Xe.TypeRegistry.for(C).registerError(Nle,jb);var fA=[3,C,aA,0,[Yj,mrt,lae,Crt,Rc],[()=>Jpe,0,4,0,0]],Lle=[3,C,Nae,0,[Qt,nce,Pst],[0,1,()=>Pc],1],Mle=[-3,C,Ert,{[tt]:ot},[ft],[0]];Xe.TypeRegistry.for(C).registerError(Mle,Kb);var Fle=[3,C,xrt,0,[Qn,aat],[0,0]],Ble=[3,C,brt,0,[iA,ug],[()=>Eue,()=>Aue]],Ule=[-3,C,Vrt,{[tt]:ot},[pg],[0]];Xe.TypeRegistry.for(C).registerError(Ule,Jb);var qle=[-3,C,Drt,{[tt]:ot},[ft],[0]];Xe.TypeRegistry.for(C).registerError(qle,rI);var $le=[-3,C,Grt,{[tt]:ot},[ft],[0]];Xe.TypeRegistry.for(C).registerError($le,Qb);var Gle=[3,C,Qrt,0,[jj,Uae,xc,lA,fae,Hj,a4,qj],[0,0,0,()=>hA,0,0,4,4]],A4=[3,C,Kj,0,[jj,Uae,xc,uy,oA,lA,vtt,fae,Hj,zj,Mae,p4,a4,qj,Est,rst,qrt,Iae,wae],[0,0,0,0,0,()=>hA,1,0,0,()=>w4,0,()=>M4,4,4,1,1,1,0,0]],jle=[3,C,Jrt,0,[lA,Hj,p4,oA,zj,Mae],[()=>hA,0,()=>M4,[0,4],()=>w4,0],3],Vle=[3,C,Yrt,0,[Kj],[()=>A4],1],T4=[3,C,Vj,0,[btt,$tt,ztt],[4,4,0]],Hle=[-3,C,jrt,{[tt]:ot},[ft],[0]];Xe.TypeRegistry.for(C).registerError(Hle,aI);var w4=[3,C,zj,0,[pet],[()=>vue]],zle=[-3,C,Krt,{[tt]:pat},[ft],[0]];Xe.TypeRegistry.for(C).registerError(zle,Db);var Wle=[-3,C,Brt,{[tt]:ot,[$ce]:421},[pg],[0]];Xe.TypeRegistry.for(C).registerError(Wle,Nb);var Kle=[-3,C,Urt,{[tt]:ot},[ft],[0]];Xe.TypeRegistry.for(C).registerError(Kle,eI);var Qle=[-3,C,Wrt,{[tt]:ot},[ft],[0]];Xe.TypeRegistry.for(C).registerError(Qle,sI);var ly=[3,C,lg,0,[Ort,wot],[()=>ect,65]],Xle=[-3,C,Mrt,{[tt]:ot},[ft],[0]];Xe.TypeRegistry.for(C).registerError(Xle,Fb);var Jle=[3,C,Hrt,0,[vc],[()=>Aa]],Yle=[3,C,Zrt,0,[cnt,nA,cg,oy,No],[()=>Dat,64,2,0,128],1],Zle=[3,C,int,0,[rA,ant],[0,0],2],ede=[3,C,tnt,0,[cy,Mj,itt,bj],[0,0,0,0]],D4=[3,C,snt,0,[Ue,cy,Uj],[0,0,()=>P4],2],O4=[3,C,ont,0,[Ue,cy,Mj,Uj],[0,0,0,()=>P4]],tde=[-3,C,ynt,{[tt]:ot},[ft],[0]];Xe.TypeRegistry.for(C).registerError(tde,qb);var rde=[3,C,dnt,0,[Ue,dg,dit,pit,Ott,Oj],[0,1,4,4,0,0]],nde=[3,C,pnt,0,[aae,Ent],[()=>hat,0]],sde=[3,C,gnt,0,[Ue,Pa,Vae],[0,0,1]],ode=[3,C,fnt,0,[dae,Pa],[()=>Eat,0]],ide=[3,C,Cnt,0,[xc,Vae,Pa],[0,1,0]],ade=[3,C,Rnt,0,[vae,Pa],[()=>_at,0]],cde=[3,C,Pnt,0,[ktt,dg,Qn],[0,1,0]],ude=[3,C,bnt,0,[Trt,_nt],[()=>bat,0]],lde=[3,C,Tnt,0,[xc,Sst,Pa],[0,1,0]],dde=[3,C,wnt,0,[Bae,Pa],[()=>Tat,0]],pde=[3,C,qnt,0,[Mtt,dg],[0,1]],mde=[3,C,$nt,0,[cit,vnt],[64,0]],gde=[3,C,jnt,0,[mg,Pa],[0,0],1],fde=[3,C,Vnt,0,[f4,Pa],[()=>j4,0]],hde=[3,C,Fnt,0,[Qt,Lo,Xu],[0,()=>wi,()=>Ju],3],Sde=[3,C,knt,0,[Qt,Lo,Xu,Fae,ny,Lae],[0,()=>wi,()=>Ju,1,1,0]],Ede=[3,C,Lnt,0,[Qt,Lo,Xu],[0,()=>wi,()=>Ju]],zs=[3,C,Ii,0,[zae,Knt],[1,1]],fg=[3,C,Ku,0,[zae],[1]],yde=[3,C,_st,0,[c4,Jj,ba],[0,()=>G4,0],1],_de=[3,C,Qae,0,[ast,uce,Dtt,Dnt],[0,1,4,4]],Cde=[3,C,Xae,0,[ist,uce],[2,1],1],Rde=[-3,C,cst,{[tt]:ot},[ft],[0]];Xe.TypeRegistry.for(C).registerError(Rde,tI);var vde=[-3,C,ust,{[tt]:ot},[ft],[0]];Xe.TypeRegistry.for(C).registerError(vde,zb);var Ju=[3,C,Xu,0,[xst,Jnt],[0,64]],Ti=[3,C,Ai,0,[iy,gA],[1,1],2],k4=[3,C,Rst,0,[Ant,hnt,Ynt,iy,gA],[4,4,1,1,1]],xde=[-3,C,vst,{[tt]:ot},[ft,Nce],[0,()=>V4]];Xe.TypeRegistry.for(C).registerError(xde,Lb);var hg=[3,C,Qu,0,[iy],[1]],Pde=[3,C,oce,0,[vc,Ue,Ud,No,Cc,ba],[()=>z4,0,0,128,()=>Ic,0],2],bde=[3,C,nst,0,[Ue,vc,Gj,n4,Hs,ay,ry,Ud,No,Cc,ba],[0,()=>z4,()=>H4,0,0,0,0,0,128,()=>Ic,0],2],Ide=[3,C,ost,0,[Aj,ms,lg],[()=>Aa,()=>bc,()=>ly]],Ade=[3,C,Yae,0,[vc],[()=>z4],1],Tde=[3,C,fst,0,[mg,sce,_ae,net],[0,0,0,[2,{[uat]:gat}]],2],wde=[3,C,hst,0,[Zj],[0]],Dde=[3,C,Ast,0,[Ue,Qt,Tce,nA,dg,cg,qae,Ist,ry,Not,Rae,Hs,oy,Tae,ent,No,Cc],[0,0,0,64,1,2,()=>tct,()=>nme,0,2,()=>gs,0,0,0,0,128,()=>Ic],1],Ode=[3,C,Tst,0,[Qj,hae,Ece,Xj,ms],[()=>_A,1,1,()=>gs,()=>bc]],kde=[3,C,Pot,0,[Qn],[0]],Nde=[-3,C,wst,{[tt]:ot},[ft],[0]];Xe.TypeRegistry.for(C).registerError(Nde,oI);var Lde=[3,C,Dst,0,[Qn,va,lce,pce,e4],[0,()=>$at,()=>_c,()=>_c,0]],Mde=[3,C,kst,0,[Qn,Xst,cot],[0,()=>Gat,()=>Pc],1],Fde=[3,C,Mst,0,[Qn,e4,lot,mot,cA,Qu,Ku,Ia,va,Zst,hce],[0,0,0,0,0,()=>hg,()=>fg,()=>F4,()=>jat,4,()=>SA]],Bde=[3,C,Bst,0,[Qt,Qu,Ku],[0,()=>hg,()=>fg],1],Ude=[3,C,Ust,0,[Qt,Wj,Zae,tce],[0,0,()=>_c,()=>_c]],qde=[3,C,$st,0,[Qt,mst],[0,()=>Pc]],$de=[3,C,jst,0,[Qt,Qu,Ku,Ia],[0,()=>hg,()=>fg,()=>I4]],Gde=[3,C,Wst,0,[Qt,Wj,ece,Zae,nce,tce],[0,0,1,()=>_c,1,()=>_c],1],jde=[3,C,ace,0,[Qt,ece,pst],[0,1,()=>Pc],1],Vde=[-3,C,sot,{[tt]:ot},[ft],[0]];Xe.TypeRegistry.for(C).registerError(Vde,iI);var Hde=[3,C,pot,0,[Qn,e4,Lst,dce,lce,uot,pce,zst,hce],[0,0,()=>C4,1,()=>_c,1,()=>_c,()=>Vat,()=>SA],1],zde=[3,C,gce,0,[Qn,dce,aot,ace,fot],[0,1,()=>Pc,()=>Hat,0],1],Wde=[-3,C,xot,{[tt]:ot},[ft],[0]];Xe.TypeRegistry.for(C).registerError(Wde,Bb);var Kde=[3,C,Jst,0,[iA,mA,ug],[()=>_ue,()=>Upe,()=>Oue]],Qde=[3,C,Rot,0,[iA,ug],[()=>yue,()=>Due]],Xde=[-3,C,not,{[tt]:ot},[ft,Nce],[0,()=>V4]];Xe.TypeRegistry.for(C).registerError(Xde,Ob);var Jde=[-3,C,tot,{[tt]:ot},[ft],[0]];Xe.TypeRegistry.for(C).registerError(Jde,Vb);var Yde=[-3,C,oot,{[tt]:ot},[ft],[0]];Xe.TypeRegistry.for(C).registerError(Yde,Mb);var Zde=[3,C,fce,0,[ice,eot,Iot,bce],[4,2,0,0],2],epe=[3,C,Sot,0,[Fce,ey,nae,Oae,Gae,Qu,Ku,vce],[0,0,0,()=>yA,()=>$4,()=>Ti,()=>zs,()=>Sg],2],tpe=[3,C,Eot,0,[gg],[()=>qd]],rpe=[3,C,_ot,0,[Fce,bce,qot,zit,ice,nae,Oae,Gae,Qu,Ku,vce],[0,0,0,2,4,0,()=>yA,()=>$4,()=>Ti,()=>zs,()=>Sg],1],npe=[3,C,Cot,0,[gg],[()=>qd]],hA=[3,C,lA,0,[s4,o4,Lot],[0,0,0],1],spe=[3,C,Oot,0,[Ue,Qt,nA,dg,Tce,Dot,ry,Rae,Hs,hit,Vot,oy,Tae,No,Cc,cg],[0,0,64,1,0,()=>nme,0,()=>gs,0,1,1,0,0,128,()=>Ic,2],1],ope=[3,C,Mot,0,[Qj,hae,Ece,Xj,ms],[()=>_A,1,1,()=>gs,()=>bc]],ipe=[3,C,Ice,0,[Ue,uy,Lo,zot,Ai,xc,Lce,Ii,ny,ty],[0,0,()=>wi,4,()=>Ti,0,1,()=>zs,1,0],5],ape=[3,C,Ace,0,[sy,va,Aot,m4,i4],[()=>Lat,()=>vat,()=>dy,()=>B4,()=>N4]],N4=[3,C,i4,0,[u4,xce,nnt,Frt],[0,0,0,4]],Sg=[3,C,pA,0,[bae,xce,cA],[2,0,0]],dy=[3,C,dA,0,[Tot,$ot],[2,0],1],cpe=[-3,C,Hot,{[tt]:ot},[ft],[0]];Xe.TypeRegistry.for(C).registerError(cpe,nI);var L4=[3,C,l4,0,[Ue,Mce,Sce],[0,0,()=>Uat]],SA=[3,C,Oce,0,[d4,jae],[0,4]],M4=[3,C,p4,0,[Ue,ZE,Lo,ty,Ai,Ii,pA,va],[0,()=>EA,()=>wi,0,()=>Ti,()=>zs,()=>Sg,()=>yA],3],qd=[3,C,gg,0,[ZE,Ue,Lo,Mce,lae,Ai,Lce,ny,xc,uy,sae,sy,va,dA,Bnt,Ont,Rrt,Sce,vrt,fce,i4,Jie,Oce,Lj,Ii,Ia,Hae],[()=>EA,0,()=>wi,0,4,()=>k4,1,1,0,0,()=>C4,()=>Nat,()=>Rat,()=>dy,0,0,0,()=>Jpe,()=>Iat,()=>Zde,()=>N4,()=>jce,()=>SA,2,()=>zs,()=>F4,0]],upe=[-3,C,rit,{[tt]:ot},[ft],[0]];Xe.TypeRegistry.for(C).registerError(upe,$b);var lpe=[-3,C,ait,{[tt]:ot},[ft],[0]];Xe.TypeRegistry.for(C).registerError(lpe,Gb);var F4=[3,C,vit,0,[t4,E4,u4],[1,1,0]],dpe=[3,C,xit,0,[xa,S4],[0,0],2],ppe=[3,C,uit,0,[mg,f4],[0,()=>j4],2],mpe=[-3,C,Qot,{[cat]:["Throttling",400],[tt]:ot,[$ce]:400},[ft,mat],[0,()=>V4]];Xe.TypeRegistry.for(C).registerError(mpe,kb);var gpe=[3,C,git,0,[lat,dat],[0,0]],B4=[3,C,m4,0,[Sit,rA],[0,0]],U4=[3,C,g4,0,[bae,rA],[2,0],2],fpe=[3,C,Xot,0,[Dae],[()=>vle],1],hpe=[3,C,Jot,0,[kce,Hs],[()=>Qat,0],1],Spe=[3,C,Zot,0,[ms,uA],[()=>yg,()=>Xpe]],Epe=[-3,C,Wot,{[tt]:ot},[pg,oet],[0,()=>Sat]];Xe.TypeRegistry.for(C).registerError(Epe,uI);var ype=[-3,C,Kot,{[tt]:ot},[ft],[0]];Xe.TypeRegistry.for(C).registerError(ype,Hb);var _pe=[-3,C,tit,{[tt]:ot},[pg],[0]];Xe.TypeRegistry.for(C).registerError(_pe,Yb);var Cpe=[3,C,Eit,0,[uae,oce,ug,mA],[()=>lue,()=>Pde,()=>xue,()=>Ppe]],Rpe=[3,C,yit,0,[kce,Hs,ay,mae],[()=>Xat,0,0,[0,4]],1],vpe=[3,C,Cit,0,[ms,lg],[()=>yg,()=>sme]],xpe=[3,C,Qit,0,[mg,nit],[0,64],2],Ppe=[3,C,mA,0,[xa,qce,Ue,Ud,No,Cc,ba],[()=>gs,0,0,0,128,()=>Ic,0],3],bpe=[3,C,bit,0,[Ue,Xae],[0,()=>Cde],2],Ipe=[3,C,Iit,0,[kj],[()=>x4]],Ape=[3,C,Tit,0,[Ue,QZe,Qt,sA],[0,0,0,0],2],Tpe=[3,C,wit,0,[Ue,Qt,Nj,sA],[0,0,0,0]],wpe=[3,C,Dit,0,[Qt,Ai,Ii,Ia],[0,()=>Ti,()=>zs,()=>Eg],1],Dpe=[3,C,kit,0,[Rc,r4],[0,()=>Kat],2],Ope=[3,C,Nit,0,[aA],[()=>fA]],kpe=[3,C,Mit,0,[Rc,frt,_rt,yrt,Nae,gce],[0,0,1,()=>Pc,()=>Pat,()=>zat],1],Npe=[3,C,Fit,0,[Rc,mce],[0,()=>eme]],Lpe=[3,C,Uit,0,[Ue,xa,eae,Gj,ry,n4,Hs,ay,qce,Ud,No,Cc,ba],[0,()=>gs,()=>Yat,()=>H4,0,0,0,0,0,0,128,()=>Ic,0],2],Mpe=[3,C,qit,0,[Aj,ms,lg],[()=>Aa,()=>bc,()=>ly]],q4=[3,C,h4,0,[bj],[0]],Fpe=[3,C,Vit,0,[Ue,cy,h4],[0,0,()=>q4],2],Bpe=[3,C,Hit,0,[Ue,cy,Mj,h4],[0,0,0,()=>q4]],Upe=[3,C,Kit,0,[Qn,cA,Qu,Ku,va,Dce],[0,0,()=>hg,()=>fg,()=>Ype,0],1],qpe=[3,C,Jit,0,[Ue,ZE,ty,Ai,kae,dA,pA,r4,d4,Lj,Hae,Art,Ii,Ia],[0,()=>EA,0,()=>Ti,()=>xat,()=>dy,()=>Sg,()=>Wat,0,2,0,()=>Aat,()=>zs,()=>Eg],1],$pe=[3,C,Yit,0,[gg],[()=>qd]],Gpe=[3,C,eat,0,[Ue,kae,rce,r4],[0,()=>Cat,()=>Pc,()=>qat],1],jpe=[3,C,tat,0,[l4],[()=>L4]],Vpe=[3,C,nat,0,[Ue,g4],[0,()=>U4],2],Hpe=[3,C,sat,0,[g4],[()=>U4]],Eg=[3,C,Ia,0,[t4,E4],[1,1]],zpe=[3,C,oat,0,[Yae,Sae],[()=>Ade,()=>kue]],Wpe="unit",Kpe=[-3,Gce,"DynamoDBServiceException",0,[],[]];Xe.TypeRegistry.for(Gce).registerError(Kpe,We);var EA=[1,C,ZE,0,()=>Vce],Qpe=[1,C,Ij,0,()=>Mo],fat=[1,C,sZe,0,()=>zce],hat=[1,C,aae,0,()=>Yce],Sat=[1,C,ret,0,()=>cue],yg=[1,C,jZe,0,()=>bc],Eat=[1,C,dae,0,()=>pue],yat=[1,C,Pae,0,()=>dle],_at=[1,C,vae,0,()=>yle],Cat=[1,C,nrt,0,()=>Tle],Rat=[1,C,ort,0,()=>wle],vat=[1,C,va,0,()=>Dle],yA=[1,C,art,0,()=>Ale],xat=[1,C,urt,0,()=>Ole],Pat=[1,C,hrt,0,()=>Lle],bat=[1,C,Srt,0,()=>kle],Iat=[1,C,Prt,0,()=>Fle],Aat=[1,C,Irt,0,()=>Ble],Tat=[1,C,Bae,0,()=>Gle],wat=[1,C,Nrt,0,()=>ly],_A=[1,C,$rt,0,()=>Aa],Xpe=[1,C,zrt,0,()=>Jle],Dat=[1,C,rnt,0,()=>gs],wi=[1,C,Lo,0,()=>Zle],Oat=[1,C,$ae,0,()=>ede],kat=[1,C,unt,0,()=>Mo],Nat=[1,C,Nnt,0,()=>Sde],Lat=[1,C,sy,0,()=>Ede],$4=[1,C,Mnt,0,()=>hde],Mat=[1,C,Cst,0,()=>yde],Fat=[1,C,lst,0,()=>sue],Bat=[1,C,dst,0,()=>oue],G4=[1,C,yst,0,()=>Mo],Uat=[1,C,Ost,0,()=>Lde],qat=[1,C,Nst,0,()=>Mde],Jpe=[1,C,Fst,0,()=>Fde],$at=[1,C,qst,0,()=>Ude],Gat=[1,C,Gst,0,()=>qde],jat=[1,C,Vst,0,()=>$de],Ype=[1,C,Hst,0,()=>Bde],Vat=[1,C,Kst,0,()=>Gde],Hat=[1,C,Qst,0,()=>jde],Zpe=[1,C,rot,0,()=>kde],eme=[1,C,dot,0,()=>Hde],zat=[1,C,got,0,()=>zde],Wat=[1,C,Yst,0,()=>Kde],Kat=[1,C,vot,0,()=>Qde],j4=[1,C,sit,0,()=>dpe],V4=[1,C,lit,0,()=>gpe],Qat=[1,C,Yot,0,()=>fpe],Xat=[1,C,_it,0,()=>Cpe],Jat=[1,C,iat,0,()=>zpe],Aa=[2,C,Z7e,0,0,()=>Mo],Yat=[2,C,eae,0,0,()=>Hce],tme=[2,C,RZe,0,0,()=>Yle],Zat=[2,C,CZe,0,0,()=>_A],rme=[2,C,LZe,0,0,()=>Jat],H4=[2,C,_tt,0,0,()=>hle],Ic=[2,C,Ctt,0,0,()=>Mo],nme=[2,C,Qtt,0,0,()=>v4],ect=[2,C,krt,0,0,()=>Mo],sme=[2,C,Lrt,0,0,()=>wat],gs=[2,C,xa,0,0,()=>Mo],tct=[2,C,qae,0,0,()=>v4],rct=[2,C,Wnt,0,0,()=>Mo],z4=[2,C,sst,0,0,()=>Mo],Xie=[2,C,kot,0,0,()=>R4],Mo=[4,C,dZe,0,[Got,Xnt,MZe,Uot,Znt,wZe,Qnt,znt,est,PZe],[0,0,21,64,64,85,()=>rct,()=>kat,2,2]],ome=[9,C,fZe,0,()=>Zce,()=>eue],ime=[9,C,EZe,0,()=>tue,()=>rue],ame=[9,C,OZe,0,()=>iue,()=>aue],cme=[9,C,FZe,0,()=>mue,()=>gue],ume=[9,C,HZe,0,()=>hue,()=>Sue],lme=[9,C,cet,0,()=>Cue,()=>Rue],dme=[9,C,get,0,()=>Pue,()=>bue],pme=[9,C,$et,0,()=>Tue,()=>wue],mme=[9,C,ntt,0,()=>Nue,()=>Lue],gme=[9,C,att,0,()=>Mue,()=>Fue],fme=[9,C,_et,0,()=>Bue,()=>Uue],hme=[9,C,Cet,0,()=>que,()=>$ue],Sme=[9,C,xet,0,()=>Gue,()=>jue],Eme=[9,C,Iet,0,()=>Vue,()=>Hue],yme=[9,C,Oet,0,()=>zue,()=>Wue],_me=[9,C,Net,0,()=>Kue,()=>Que],Cme=[9,C,Fet,0,()=>Xue,()=>Jue],Rme=[9,C,Wet,0,()=>Yue,()=>Zue],vme=[9,C,Ket,0,()=>ele,()=>tle],xme=[9,C,Yet,0,()=>rle,()=>nle],Pme=[9,C,Ett,0,()=>sle,()=>ole],bme=[9,C,ptt,0,()=>ile,()=>ale],Ime=[9,C,ftt,0,()=>cle,()=>ule],Ame=[9,C,Jet,0,()=>D4,()=>O4],Tme=[9,C,Itt,0,()=>D4,()=>O4],wme=[9,C,Btt,0,()=>ple,()=>mle],Dme=[9,C,Htt,0,()=>gle,()=>fle],Ome=[9,C,Gtt,0,()=>_le,()=>Cle],kme=[9,C,Xtt,0,()=>xle,()=>Ple],Nme=[9,C,Ztt,0,()=>ble,()=>Ile],Lme=[9,C,Xrt,0,()=>jle,()=>Vle],Mme=[9,C,lnt,0,()=>rde,()=>nde],Fme=[9,C,mnt,0,()=>sde,()=>ode],Bme=[9,C,Snt,0,()=>ide,()=>ade],Ume=[9,C,xnt,0,()=>cde,()=>ude],qme=[9,C,Int,0,()=>lde,()=>dde],$me=[9,C,Unt,0,()=>pde,()=>mde],Gme=[9,C,Gnt,0,()=>gde,()=>fde],jme=[9,C,tst,0,()=>bde,()=>Ide],Vme=[9,C,gst,0,()=>Tde,()=>wde],Hme=[9,C,bst,0,()=>Dde,()=>Ode],zme=[9,C,hot,0,()=>epe,()=>tpe],Wme=[9,C,yot,0,()=>rpe,()=>npe],Kme=[9,C,jot,0,()=>spe,()=>ope],Qme=[9,C,mit,0,()=>ppe,()=>Wpe],Xme=[9,C,eit,0,()=>hpe,()=>Spe],Jme=[9,C,Rit,0,()=>Rpe,()=>vpe],Yme=[9,C,Wit,0,()=>xpe,()=>Wpe],Zme=[9,C,Pit,0,()=>bpe,()=>Ipe],ege=[9,C,Ait,0,()=>Ape,()=>Tpe],tge=[9,C,Oit,0,()=>Dpe,()=>Ope],rge=[9,C,Lit,0,()=>kpe,()=>Npe],nge=[9,C,$it,0,()=>Lpe,()=>Mpe],sge=[9,C,jit,0,()=>Fpe,()=>Bpe],oge=[9,C,Xit,0,()=>qpe,()=>$pe],ige=[9,C,Zit,0,()=>Gpe,()=>jpe],age=[9,C,rat,0,()=>Vpe,()=>Hpe],GE=class extends pe.Command.classBuilder().ep(_e).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","DescribeEndpoints",{}).n("DynamoDBClient","DescribeEndpointsCommand").sc(Eme).build(){},nct=t=>{let e=t.httpAuthSchemes,r=t.httpAuthSchemeProvider,n=t.credentials;return{setHttpAuthScheme(s){let o=e.findIndex(i=>i.schemeId===s.schemeId);o===-1?e.push(s):e.splice(o,1,s)},httpAuthSchemes(){return e},setHttpAuthSchemeProvider(s){r=s},httpAuthSchemeProvider(){return r},setCredentials(s){n=s},credentials(){return n}}},sct=t=>({httpAuthSchemes:t.httpAuthSchemes(),httpAuthSchemeProvider:t.httpAuthSchemeProvider(),credentials:t.credentials()}),oct=(t,e)=>{let r=Object.assign(Kie.getAwsRegionExtensionConfiguration(t),pe.getDefaultExtensionConfiguration(t),Qie.getHttpHandlerExtensionConfiguration(t),nct(t));return e.forEach(n=>n.configure(r)),Object.assign(t,Kie.resolveAwsRegionExtensionConfiguration(r),pe.resolveDefaultRuntimeConfig(r),Qie.resolveHttpHandlerRuntimeConfig(r),sct(r))},Ra=class extends pe.Client{config;constructor(...[e]){let r=W7e.getRuntimeConfig(e||{});super(r),this.initConfig=r;let n=K7e(r),s=$7e.resolveAccountIdEndpointModeConfig(n),o=Hie.resolveUserAgentConfig(s),i=zie.resolveRetryConfig(o),a=H7e.resolveRegionConfig(i),c=Vie.resolveHostHeaderConfig(a),u=Se.resolveEndpointConfig(c),l=Wie.resolveHttpAuthSchemeConfig(u),d=G7e.resolveEndpointDiscoveryConfig(l,{endpointDiscoveryCommandCtor:GE}),p=oct(d,e?.extensions||[]);this.config=p,this.middlewareStack.use(Xe.getSchemaSerdePlugin(this.config)),this.middlewareStack.use(Hie.getUserAgentPlugin(this.config)),this.middlewareStack.use(zie.getRetryPlugin(this.config)),this.middlewareStack.use(z7e.getContentLengthPlugin(this.config)),this.middlewareStack.use(Vie.getHostHeaderPlugin(this.config)),this.middlewareStack.use(j7e.getLoggerPlugin(this.config)),this.middlewareStack.use(V7e.getRecursionDetectionPlugin(this.config)),this.middlewareStack.use(yc.getHttpAuthSchemeEndpointRuleSetPlugin(this.config,{httpAuthSchemeParametersProvider:Wie.defaultDynamoDBHttpAuthSchemeParametersProvider,identityProviderConfigProvider:async g=>new yc.DefaultIdentityProviderConfig({"aws.auth#sigv4":g.credentials})})),this.middlewareStack.use(yc.getHttpSigningPlugin(this.config))}destroy(){super.destroy()}},lI=class extends pe.Command.classBuilder().ep(_e).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","BatchExecuteStatement",{}).n("DynamoDBClient","BatchExecuteStatementCommand").sc(ome).build(){},dI=class extends pe.Command.classBuilder().ep({..._e,ResourceArnList:{type:"operationContextParams",get:e=>Object.keys(e?.RequestItems??{})}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","BatchGetItem",{}).n("DynamoDBClient","BatchGetItemCommand").sc(ime).build(){},pI=class extends pe.Command.classBuilder().ep({..._e,ResourceArnList:{type:"operationContextParams",get:e=>Object.keys(e?.RequestItems??{})}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","BatchWriteItem",{}).n("DynamoDBClient","BatchWriteItemCommand").sc(ame).build(){},mI=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"TableName"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","CreateBackup",{}).n("DynamoDBClient","CreateBackupCommand").sc(cme).build(){},gI=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"GlobalTableName"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","CreateGlobalTable",{}).n("DynamoDBClient","CreateGlobalTableCommand").sc(ume).build(){},fI=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"TableName"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","CreateTable",{}).n("DynamoDBClient","CreateTableCommand").sc(lme).build(){},hI=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"BackupArn"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","DeleteBackup",{}).n("DynamoDBClient","DeleteBackupCommand").sc(dme).build(){},SI=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"TableName"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","DeleteItem",{}).n("DynamoDBClient","DeleteItemCommand").sc(pme).build(){},EI=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"ResourceArn"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","DeleteResourcePolicy",{}).n("DynamoDBClient","DeleteResourcePolicyCommand").sc(mme).build(){},yI=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"TableName"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","DeleteTable",{}).n("DynamoDBClient","DeleteTableCommand").sc(gme).build(){},_I=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"BackupArn"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","DescribeBackup",{}).n("DynamoDBClient","DescribeBackupCommand").sc(fme).build(){},CI=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"TableName"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","DescribeContinuousBackups",{}).n("DynamoDBClient","DescribeContinuousBackupsCommand").sc(hme).build(){},jE=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"TableName"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","DescribeContributorInsights",{}).n("DynamoDBClient","DescribeContributorInsightsCommand").sc(Sme).build(){},VE=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"ExportArn"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","DescribeExport",{}).n("DynamoDBClient","DescribeExportCommand").sc(yme).build(){},RI=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"GlobalTableName"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","DescribeGlobalTable",{}).n("DynamoDBClient","DescribeGlobalTableCommand").sc(_me).build(){},vI=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"GlobalTableName"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","DescribeGlobalTableSettings",{}).n("DynamoDBClient","DescribeGlobalTableSettingsCommand").sc(Cme).build(){},HE=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"ImportArn"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","DescribeImport",{}).n("DynamoDBClient","DescribeImportCommand").sc(Rme).build(){},zE=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"TableName"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","DescribeKinesisStreamingDestination",{}).n("DynamoDBClient","DescribeKinesisStreamingDestinationCommand").sc(vme).build(){},xI=class extends pe.Command.classBuilder().ep(_e).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","DescribeLimits",{}).n("DynamoDBClient","DescribeLimitsCommand").sc(xme).build(){},ag=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"TableName"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","DescribeTable",{}).n("DynamoDBClient","DescribeTableCommand").sc(Pme).build(){},PI=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"TableName"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","DescribeTableReplicaAutoScaling",{}).n("DynamoDBClient","DescribeTableReplicaAutoScalingCommand").sc(bme).build(){},bI=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"TableName"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","DescribeTimeToLive",{}).n("DynamoDBClient","DescribeTimeToLiveCommand").sc(Ime).build(){},II=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"TableName"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","DisableKinesisStreamingDestination",{}).n("DynamoDBClient","DisableKinesisStreamingDestinationCommand").sc(Ame).build(){},AI=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"TableName"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","EnableKinesisStreamingDestination",{}).n("DynamoDBClient","EnableKinesisStreamingDestinationCommand").sc(Tme).build(){},TI=class extends pe.Command.classBuilder().ep(_e).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","ExecuteStatement",{}).n("DynamoDBClient","ExecuteStatementCommand").sc(wme).build(){},wI=class extends pe.Command.classBuilder().ep(_e).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","ExecuteTransaction",{}).n("DynamoDBClient","ExecuteTransactionCommand").sc(Dme).build(){},DI=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"TableArn"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","ExportTableToPointInTime",{}).n("DynamoDBClient","ExportTableToPointInTimeCommand").sc(Ome).build(){},OI=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"TableName"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","GetItem",{}).n("DynamoDBClient","GetItemCommand").sc(kme).build(){},kI=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"ResourceArn"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","GetResourcePolicy",{}).n("DynamoDBClient","GetResourcePolicyCommand").sc(Nme).build(){},NI=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"operationContextParams",get:e=>e?.TableCreationParameters?.TableName}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","ImportTable",{}).n("DynamoDBClient","ImportTableCommand").sc(Lme).build(){},LI=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"TableName"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","ListBackups",{}).n("DynamoDBClient","ListBackupsCommand").sc(Mme).build(){},WE=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"TableName"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","ListContributorInsights",{}).n("DynamoDBClient","ListContributorInsightsCommand").sc(Fme).build(){},KE=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"TableArn"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","ListExports",{}).n("DynamoDBClient","ListExportsCommand").sc(Bme).build(){},MI=class extends pe.Command.classBuilder().ep(_e).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","ListGlobalTables",{}).n("DynamoDBClient","ListGlobalTablesCommand").sc(Ume).build(){},QE=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"TableArn"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","ListImports",{}).n("DynamoDBClient","ListImportsCommand").sc(qme).build(){},XE=class extends pe.Command.classBuilder().ep(_e).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","ListTables",{}).n("DynamoDBClient","ListTablesCommand").sc($me).build(){},FI=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"ResourceArn"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","ListTagsOfResource",{}).n("DynamoDBClient","ListTagsOfResourceCommand").sc(Gme).build(){},BI=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"TableName"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","PutItem",{}).n("DynamoDBClient","PutItemCommand").sc(jme).build(){},UI=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"ResourceArn"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","PutResourcePolicy",{}).n("DynamoDBClient","PutResourcePolicyCommand").sc(Vme).build(){},JE=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"TableName"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","Query",{}).n("DynamoDBClient","QueryCommand").sc(Hme).build(){},qI=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"TargetTableName"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","RestoreTableFromBackup",{}).n("DynamoDBClient","RestoreTableFromBackupCommand").sc(zme).build(){},$I=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"TargetTableName"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","RestoreTableToPointInTime",{}).n("DynamoDBClient","RestoreTableToPointInTimeCommand").sc(Wme).build(){},YE=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"TableName"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","Scan",{}).n("DynamoDBClient","ScanCommand").sc(Kme).build(){},GI=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"ResourceArn"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","TagResource",{}).n("DynamoDBClient","TagResourceCommand").sc(Qme).build(){},jI=class extends pe.Command.classBuilder().ep({..._e,ResourceArnList:{type:"operationContextParams",get:e=>e?.TransactItems?.map(r=>r?.Get?.TableName)}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","TransactGetItems",{}).n("DynamoDBClient","TransactGetItemsCommand").sc(Xme).build(){},VI=class extends pe.Command.classBuilder().ep({..._e,ResourceArnList:{type:"operationContextParams",get:e=>e?.TransactItems?.map(r=>[r?.ConditionCheck?.TableName,r?.Put?.TableName,r?.Delete?.TableName,r?.Update?.TableName].filter(n=>n)).flat()}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","TransactWriteItems",{}).n("DynamoDBClient","TransactWriteItemsCommand").sc(Jme).build(){},HI=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"ResourceArn"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","UntagResource",{}).n("DynamoDBClient","UntagResourceCommand").sc(Yme).build(){},zI=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"TableName"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","UpdateContinuousBackups",{}).n("DynamoDBClient","UpdateContinuousBackupsCommand").sc(Zme).build(){},WI=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"TableName"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","UpdateContributorInsights",{}).n("DynamoDBClient","UpdateContributorInsightsCommand").sc(ege).build(){},KI=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"GlobalTableName"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","UpdateGlobalTable",{}).n("DynamoDBClient","UpdateGlobalTableCommand").sc(tge).build(){},QI=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"GlobalTableName"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","UpdateGlobalTableSettings",{}).n("DynamoDBClient","UpdateGlobalTableSettingsCommand").sc(rge).build(){},XI=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"TableName"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","UpdateItem",{}).n("DynamoDBClient","UpdateItemCommand").sc(nge).build(){},JI=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"TableName"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","UpdateKinesisStreamingDestination",{}).n("DynamoDBClient","UpdateKinesisStreamingDestinationCommand").sc(sge).build(){},YI=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"TableName"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","UpdateTable",{}).n("DynamoDBClient","UpdateTableCommand").sc(oge).build(){},ZI=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"TableName"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","UpdateTableReplicaAutoScaling",{}).n("DynamoDBClient","UpdateTableReplicaAutoScalingCommand").sc(ige).build(){},eA=class extends pe.Command.classBuilder().ep({..._e,ResourceArn:{type:"contextParams",name:"TableName"}}).m(function(e,r,n,s){return[Se.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("DynamoDB_20120810","UpdateTimeToLive",{}).n("DynamoDBClient","UpdateTimeToLiveCommand").sc(age).build(){},cge=yc.createPaginator(Ra,WE,"NextToken","NextToken","MaxResults"),uge=yc.createPaginator(Ra,KE,"NextToken","NextToken","MaxResults"),lge=yc.createPaginator(Ra,QE,"NextToken","NextToken","PageSize"),dge=yc.createPaginator(Ra,XE,"ExclusiveStartTableName","LastEvaluatedTableName","Limit"),pge=yc.createPaginator(Ra,JE,"ExclusiveStartKey","LastEvaluatedKey","Limit"),mge=yc.createPaginator(Ra,YE,"ExclusiveStartKey","LastEvaluatedKey","Limit"),gge=async(t,e)=>{let r;try{let n=await t.send(new jE(e));r=n;try{if(n.ContributorInsightsStatus==="ENABLED")return{state:Ze.WaiterState.SUCCESS,reason:r}}catch{}try{if(n.ContributorInsightsStatus==="FAILED")return{state:Ze.WaiterState.FAILURE,reason:r}}catch{}}catch(n){r=n}return{state:Ze.WaiterState.RETRY,reason:r}},ict=async(t,e)=>{let r={minDelay:20,maxDelay:120};return Ze.createWaiter({...r,...t},e,gge)},fge=async(t,e)=>{let r={minDelay:20,maxDelay:120},n=await Ze.createWaiter({...r,...t},e,gge);return Ze.checkExceptions(n)},hge=async(t,e)=>{let r;try{let n=await t.send(new VE(e));r=n;try{if(n.ExportDescription.ExportStatus==="COMPLETED")return{state:Ze.WaiterState.SUCCESS,reason:r}}catch{}try{if(n.ExportDescription.ExportStatus==="FAILED")return{state:Ze.WaiterState.FAILURE,reason:r}}catch{}}catch(n){r=n}return{state:Ze.WaiterState.RETRY,reason:r}},act=async(t,e)=>{let r={minDelay:20,maxDelay:120};return Ze.createWaiter({...r,...t},e,hge)},Sge=async(t,e)=>{let r={minDelay:20,maxDelay:120},n=await Ze.createWaiter({...r,...t},e,hge);return Ze.checkExceptions(n)},Ege=async(t,e)=>{let r;try{let n=await t.send(new HE(e));r=n;try{if(n.ImportTableDescription.ImportStatus==="COMPLETED")return{state:Ze.WaiterState.SUCCESS,reason:r}}catch{}try{if(n.ImportTableDescription.ImportStatus==="FAILED")return{state:Ze.WaiterState.FAILURE,reason:r}}catch{}try{if(n.ImportTableDescription.ImportStatus==="CANCELLED")return{state:Ze.WaiterState.FAILURE,reason:r}}catch{}}catch(n){r=n}return{state:Ze.WaiterState.RETRY,reason:r}},cct=async(t,e)=>{let r={minDelay:20,maxDelay:120};return Ze.createWaiter({...r,...t},e,Ege)},yge=async(t,e)=>{let r={minDelay:20,maxDelay:120},n=await Ze.createWaiter({...r,...t},e,Ege);return Ze.checkExceptions(n)},_ge=async(t,e)=>{let r;try{let n=await t.send(new zE(e));r=n;try{let s=()=>[].concat(...n.KinesisDataStreamDestinations).map(a=>a.DestinationStatus);for(let o of s())if(o=="ACTIVE")return{state:Ze.WaiterState.SUCCESS,reason:r}}catch{}try{if((()=>{let o=n.KinesisDataStreamDestinations.filter(i=>(i.DestinationStatus=="DISABLED"||i.DestinationStatus=="ENABLE_FAILED")&&(i.DestinationStatus=="ENABLE_FAILED"||i.DestinationStatus=="DISABLED"));return n.KinesisDataStreamDestinations.length>0&&o.length==n.KinesisDataStreamDestinations.length})()==!0)return{state:Ze.WaiterState.FAILURE,reason:r}}catch{}}catch(n){r=n}return{state:Ze.WaiterState.RETRY,reason:r}},uct=async(t,e)=>{let r={minDelay:20,maxDelay:120};return Ze.createWaiter({...r,...t},e,_ge)},Cge=async(t,e)=>{let r={minDelay:20,maxDelay:120},n=await Ze.createWaiter({...r,...t},e,_ge);return Ze.checkExceptions(n)},Rge=async(t,e)=>{let r;try{let n=await t.send(new ag(e));r=n;try{if(n.Table.TableStatus==="ACTIVE")return{state:Ze.WaiterState.SUCCESS,reason:r}}catch{}}catch(n){if(r=n,n.name&&n.name=="ResourceNotFoundException")return{state:Ze.WaiterState.RETRY,reason:r}}return{state:Ze.WaiterState.RETRY,reason:r}},lct=async(t,e)=>{let r={minDelay:20,maxDelay:120};return Ze.createWaiter({...r,...t},e,Rge)},vge=async(t,e)=>{let r={minDelay:20,maxDelay:120},n=await Ze.createWaiter({...r,...t},e,Rge);return Ze.checkExceptions(n)},xge=async(t,e)=>{let r;try{r=await t.send(new ag(e))}catch(n){if(r=n,n.name&&n.name=="ResourceNotFoundException")return{state:Ze.WaiterState.SUCCESS,reason:r}}return{state:Ze.WaiterState.RETRY,reason:r}},dct=async(t,e)=>{let r={minDelay:20,maxDelay:120};return Ze.createWaiter({...r,...t},e,xge)},Pge=async(t,e)=>{let r={minDelay:20,maxDelay:120},n=await Ze.createWaiter({...r,...t},e,xge);return Ze.checkExceptions(n)},pct={BatchExecuteStatementCommand:lI,BatchGetItemCommand:dI,BatchWriteItemCommand:pI,CreateBackupCommand:mI,CreateGlobalTableCommand:gI,CreateTableCommand:fI,DeleteBackupCommand:hI,DeleteItemCommand:SI,DeleteResourcePolicyCommand:EI,DeleteTableCommand:yI,DescribeBackupCommand:_I,DescribeContinuousBackupsCommand:CI,DescribeContributorInsightsCommand:jE,DescribeEndpointsCommand:GE,DescribeExportCommand:VE,DescribeGlobalTableCommand:RI,DescribeGlobalTableSettingsCommand:vI,DescribeImportCommand:HE,DescribeKinesisStreamingDestinationCommand:zE,DescribeLimitsCommand:xI,DescribeTableCommand:ag,DescribeTableReplicaAutoScalingCommand:PI,DescribeTimeToLiveCommand:bI,DisableKinesisStreamingDestinationCommand:II,EnableKinesisStreamingDestinationCommand:AI,ExecuteStatementCommand:TI,ExecuteTransactionCommand:wI,ExportTableToPointInTimeCommand:DI,GetItemCommand:OI,GetResourcePolicyCommand:kI,ImportTableCommand:NI,ListBackupsCommand:LI,ListContributorInsightsCommand:WE,ListExportsCommand:KE,ListGlobalTablesCommand:MI,ListImportsCommand:QE,ListTablesCommand:XE,ListTagsOfResourceCommand:FI,PutItemCommand:BI,PutResourcePolicyCommand:UI,QueryCommand:JE,RestoreTableFromBackupCommand:qI,RestoreTableToPointInTimeCommand:$I,ScanCommand:YE,TagResourceCommand:GI,TransactGetItemsCommand:jI,TransactWriteItemsCommand:VI,UntagResourceCommand:HI,UpdateContinuousBackupsCommand:zI,UpdateContributorInsightsCommand:WI,UpdateGlobalTableCommand:KI,UpdateGlobalTableSettingsCommand:QI,UpdateItemCommand:XI,UpdateKinesisStreamingDestinationCommand:JI,UpdateTableCommand:YI,UpdateTableReplicaAutoScalingCommand:ZI,UpdateTimeToLiveCommand:eA},mct={paginateListContributorInsights:cge,paginateListExports:uge,paginateListImports:lge,paginateListTables:dge,paginateQuery:pge,paginateScan:mge},gct={waitUntilContributorInsightsEnabled:fge,waitUntilExportCompleted:Sge,waitUntilImportCompleted:yge,waitUntilKinesisStreamingDestinationActive:Cge,waitUntilTableExists:vge,waitUntilTableNotExists:Pge},tA=class extends Ra{};pe.createAggregatedClient(pct,tA,{paginators:mct,waiters:gct});var fct={MICROSECOND:"MICROSECOND",MILLISECOND:"MILLISECOND"},hct={ADD:"ADD",DELETE:"DELETE",PUT:"PUT"},Sct={B:"B",N:"N",S:"S"},Ect={AVAILABLE:"AVAILABLE",CREATING:"CREATING",DELETED:"DELETED"},yct={AWS_BACKUP:"AWS_BACKUP",SYSTEM:"SYSTEM",USER:"USER"},_ct={PAY_PER_REQUEST:"PAY_PER_REQUEST",PROVISIONED:"PROVISIONED"},Cct={HASH:"HASH",RANGE:"RANGE"},Rct={ALL:"ALL",INCLUDE:"INCLUDE",KEYS_ONLY:"KEYS_ONLY"},vct={AES256:"AES256",KMS:"KMS"},xct={DISABLED:"DISABLED",DISABLING:"DISABLING",ENABLED:"ENABLED",ENABLING:"ENABLING",UPDATING:"UPDATING"},Pct={KEYS_ONLY:"KEYS_ONLY",NEW_AND_OLD_IMAGES:"NEW_AND_OLD_IMAGES",NEW_IMAGE:"NEW_IMAGE",OLD_IMAGE:"OLD_IMAGE"},bct={DISABLED:"DISABLED",DISABLING:"DISABLING",ENABLED:"ENABLED",ENABLING:"ENABLING"},Ict={ALL:"ALL",AWS_BACKUP:"AWS_BACKUP",SYSTEM:"SYSTEM",USER:"USER"},Act={INDEXES:"INDEXES",NONE:"NONE",TOTAL:"TOTAL"},Tct={ALL_OLD:"ALL_OLD",NONE:"NONE"},wct={AccessDenied:"AccessDenied",ConditionalCheckFailed:"ConditionalCheckFailed",DuplicateItem:"DuplicateItem",InternalServerError:"InternalServerError",ItemCollectionSizeLimitExceeded:"ItemCollectionSizeLimitExceeded",ProvisionedThroughputExceeded:"ProvisionedThroughputExceeded",RequestLimitExceeded:"RequestLimitExceeded",ResourceNotFound:"ResourceNotFound",ThrottlingError:"ThrottlingError",TransactionConflict:"TransactionConflict",ValidationError:"ValidationError"},Dct={NONE:"NONE",SIZE:"SIZE"},Oct={BEGINS_WITH:"BEGINS_WITH",BETWEEN:"BETWEEN",CONTAINS:"CONTAINS",EQ:"EQ",GE:"GE",GT:"GT",IN:"IN",LE:"LE",LT:"LT",NE:"NE",NOT_CONTAINS:"NOT_CONTAINS",NOT_NULL:"NOT_NULL",NULL:"NULL"},kct={AND:"AND",OR:"OR"},Nct={DISABLED:"DISABLED",ENABLED:"ENABLED"},Lct={DISABLED:"DISABLED",ENABLED:"ENABLED"},Mct={DISABLE:"DISABLE",ENABLE:"ENABLE"},Fct={ACCESSED_AND_THROTTLED_KEYS:"ACCESSED_AND_THROTTLED_KEYS",THROTTLED_KEYS:"THROTTLED_KEYS"},Bct={DISABLED:"DISABLED",DISABLING:"DISABLING",ENABLED:"ENABLED",ENABLING:"ENABLING",FAILED:"FAILED"},Uct={ACTIVE:"ACTIVE",CREATING:"CREATING",DELETING:"DELETING",UPDATING:"UPDATING"},qct={ACTIVE:"ACTIVE",CREATING:"CREATING",DELETING:"DELETING",UPDATING:"UPDATING"},$ct={ACTIVE:"ACTIVE",ARCHIVED:"ARCHIVED",ARCHIVING:"ARCHIVING",CREATING:"CREATING",CREATION_FAILED:"CREATION_FAILED",DELETING:"DELETING",INACCESSIBLE_ENCRYPTION_CREDENTIALS:"INACCESSIBLE_ENCRYPTION_CREDENTIALS",REGION_DISABLED:"REGION_DISABLED",REPLICATION_NOT_AUTHORIZED:"REPLICATION_NOT_AUTHORIZED",UPDATING:"UPDATING"},Gct={STANDARD:"STANDARD",STANDARD_INFREQUENT_ACCESS:"STANDARD_INFREQUENT_ACCESS"},jct={ACTIVE:"ACTIVE",ARCHIVED:"ARCHIVED",ARCHIVING:"ARCHIVING",CREATING:"CREATING",DELETING:"DELETING",INACCESSIBLE_ENCRYPTION_CREDENTIALS:"INACCESSIBLE_ENCRYPTION_CREDENTIALS",REPLICATION_NOT_AUTHORIZED:"REPLICATION_NOT_AUTHORIZED",UPDATING:"UPDATING"},Vct={ACTIVE:"ACTIVE",CREATING:"CREATING",DELETING:"DELETING"},Hct={EVENTUAL:"EVENTUAL",STRONG:"STRONG"},zct={ALL_NEW:"ALL_NEW",ALL_OLD:"ALL_OLD",NONE:"NONE",UPDATED_NEW:"UPDATED_NEW",UPDATED_OLD:"UPDATED_OLD"},Wct={DYNAMODB_JSON:"DYNAMODB_JSON",ION:"ION"},Kct={COMPLETED:"COMPLETED",FAILED:"FAILED",IN_PROGRESS:"IN_PROGRESS"},Qct={FULL_EXPORT:"FULL_EXPORT",INCREMENTAL_EXPORT:"INCREMENTAL_EXPORT"},Xct={NEW_AND_OLD_IMAGES:"NEW_AND_OLD_IMAGES",NEW_IMAGE:"NEW_IMAGE"},Jct={AES256:"AES256",KMS:"KMS"},Yct={CANCELLED:"CANCELLED",CANCELLING:"CANCELLING",COMPLETED:"COMPLETED",FAILED:"FAILED",IN_PROGRESS:"IN_PROGRESS"},Zct={GZIP:"GZIP",NONE:"NONE",ZSTD:"ZSTD"},eut={CSV:"CSV",DYNAMODB_JSON:"DYNAMODB_JSON",ION:"ION"},tut={ACTIVE:"ACTIVE",DISABLED:"DISABLED",DISABLING:"DISABLING",ENABLE_FAILED:"ENABLE_FAILED",ENABLING:"ENABLING",UPDATING:"UPDATING"},rut={ALL_ATTRIBUTES:"ALL_ATTRIBUTES",ALL_PROJECTED_ATTRIBUTES:"ALL_PROJECTED_ATTRIBUTES",COUNT:"COUNT",SPECIFIC_ATTRIBUTES:"SPECIFIC_ATTRIBUTES"};Object.defineProperty(S,"$Command",{enumerable:!0,get:function(){return pe.Command}});Object.defineProperty(S,"__Client",{enumerable:!0,get:function(){return pe.Client}});S.ApproximateCreationDateTimePrecision=fct;S.ArchivalSummary$=jce;S.AttributeAction=hct;S.AttributeDefinition$=Vce;S.AttributeValue$=Mo;S.AttributeValueUpdate$=Hce;S.AutoScalingPolicyDescription$=zce;S.AutoScalingPolicyUpdate$=Wce;S.AutoScalingSettingsDescription$=_c;S.AutoScalingSettingsUpdate$=Pc;S.AutoScalingTargetTrackingScalingPolicyConfigurationDescription$=Kce;S.AutoScalingTargetTrackingScalingPolicyConfigurationUpdate$=Qce;S.BackupDescription$=y4;S.BackupDetails$=_4;S.BackupInUseException=Tb;S.BackupInUseException$=Xce;S.BackupNotFoundException=wb;S.BackupNotFoundException$=Jce;S.BackupStatus=Ect;S.BackupSummary$=Yce;S.BackupType=yct;S.BackupTypeFilter=Ict;S.BatchExecuteStatement$=ome;S.BatchExecuteStatementCommand=lI;S.BatchExecuteStatementInput$=Zce;S.BatchExecuteStatementOutput$=eue;S.BatchGetItem$=ime;S.BatchGetItemCommand=dI;S.BatchGetItemInput$=tue;S.BatchGetItemOutput$=rue;S.BatchStatementError$=nue;S.BatchStatementErrorCodeEnum=wct;S.BatchStatementRequest$=sue;S.BatchStatementResponse$=oue;S.BatchWriteItem$=ame;S.BatchWriteItemCommand=pI;S.BatchWriteItemInput$=iue;S.BatchWriteItemOutput$=aue;S.BillingMode=_ct;S.BillingModeSummary$=C4;S.CancellationReason$=cue;S.Capacity$=R4;S.ComparisonOperator=Oct;S.Condition$=v4;S.ConditionCheck$=lue;S.ConditionalCheckFailedException=cI;S.ConditionalCheckFailedException$=uue;S.ConditionalOperator=kct;S.ConsumedCapacity$=bc;S.ContinuousBackupsDescription$=x4;S.ContinuousBackupsStatus=Nct;S.ContinuousBackupsUnavailableException=Ub;S.ContinuousBackupsUnavailableException$=due;S.ContributorInsightsAction=Mct;S.ContributorInsightsMode=Fct;S.ContributorInsightsStatus=Bct;S.ContributorInsightsSummary$=pue;S.CreateBackup$=cme;S.CreateBackupCommand=mI;S.CreateBackupInput$=mue;S.CreateBackupOutput$=gue;S.CreateGlobalSecondaryIndexAction$=fue;S.CreateGlobalTable$=ume;S.CreateGlobalTableCommand=gI;S.CreateGlobalTableInput$=hue;S.CreateGlobalTableOutput$=Sue;S.CreateGlobalTableWitnessGroupMemberAction$=Eue;S.CreateReplicaAction$=yue;S.CreateReplicationGroupMemberAction$=_ue;S.CreateTable$=lme;S.CreateTableCommand=fI;S.CreateTableInput$=Cue;S.CreateTableOutput$=Rue;S.CsvOptions$=vue;S.Delete$=xue;S.DeleteBackup$=dme;S.DeleteBackupCommand=hI;S.DeleteBackupInput$=Pue;S.DeleteBackupOutput$=bue;S.DeleteGlobalSecondaryIndexAction$=Iue;S.DeleteGlobalTableWitnessGroupMemberAction$=Aue;S.DeleteItem$=pme;S.DeleteItemCommand=SI;S.DeleteItemInput$=Tue;S.DeleteItemOutput$=wue;S.DeleteReplicaAction$=Due;S.DeleteReplicationGroupMemberAction$=Oue;S.DeleteRequest$=kue;S.DeleteResourcePolicy$=mme;S.DeleteResourcePolicyCommand=EI;S.DeleteResourcePolicyInput$=Nue;S.DeleteResourcePolicyOutput$=Lue;S.DeleteTable$=gme;S.DeleteTableCommand=yI;S.DeleteTableInput$=Mue;S.DeleteTableOutput$=Fue;S.DescribeBackup$=fme;S.DescribeBackupCommand=_I;S.DescribeBackupInput$=Bue;S.DescribeBackupOutput$=Uue;S.DescribeContinuousBackups$=hme;S.DescribeContinuousBackupsCommand=CI;S.DescribeContinuousBackupsInput$=que;S.DescribeContinuousBackupsOutput$=$ue;S.DescribeContributorInsights$=Sme;S.DescribeContributorInsightsCommand=jE;S.DescribeContributorInsightsInput$=Gue;S.DescribeContributorInsightsOutput$=jue;S.DescribeEndpoints$=Eme;S.DescribeEndpointsCommand=GE;S.DescribeEndpointsRequest$=Vue;S.DescribeEndpointsResponse$=Hue;S.DescribeExport$=yme;S.DescribeExportCommand=VE;S.DescribeExportInput$=zue;S.DescribeExportOutput$=Wue;S.DescribeGlobalTable$=_me;S.DescribeGlobalTableCommand=RI;S.DescribeGlobalTableInput$=Kue;S.DescribeGlobalTableOutput$=Que;S.DescribeGlobalTableSettings$=Cme;S.DescribeGlobalTableSettingsCommand=vI;S.DescribeGlobalTableSettingsInput$=Xue;S.DescribeGlobalTableSettingsOutput$=Jue;S.DescribeImport$=Rme;S.DescribeImportCommand=HE;S.DescribeImportInput$=Yue;S.DescribeImportOutput$=Zue;S.DescribeKinesisStreamingDestination$=vme;S.DescribeKinesisStreamingDestinationCommand=zE;S.DescribeKinesisStreamingDestinationInput$=ele;S.DescribeKinesisStreamingDestinationOutput$=tle;S.DescribeLimits$=xme;S.DescribeLimitsCommand=xI;S.DescribeLimitsInput$=rle;S.DescribeLimitsOutput$=nle;S.DescribeTable$=Pme;S.DescribeTableCommand=ag;S.DescribeTableInput$=sle;S.DescribeTableOutput$=ole;S.DescribeTableReplicaAutoScaling$=bme;S.DescribeTableReplicaAutoScalingCommand=PI;S.DescribeTableReplicaAutoScalingInput$=ile;S.DescribeTableReplicaAutoScalingOutput$=ale;S.DescribeTimeToLive$=Ime;S.DescribeTimeToLiveCommand=bI;S.DescribeTimeToLiveInput$=cle;S.DescribeTimeToLiveOutput$=ule;S.DestinationStatus=tut;S.DisableKinesisStreamingDestination$=Ame;S.DisableKinesisStreamingDestinationCommand=II;S.DuplicateItemException=Xb;S.DuplicateItemException$=lle;S.DynamoDB=tA;S.DynamoDBClient=Ra;S.DynamoDBServiceException=We;S.DynamoDBServiceException$=Kpe;S.EnableKinesisStreamingConfiguration$=P4;S.EnableKinesisStreamingDestination$=Tme;S.EnableKinesisStreamingDestinationCommand=AI;S.Endpoint$=dle;S.ExecuteStatement$=wme;S.ExecuteStatementCommand=TI;S.ExecuteStatementInput$=ple;S.ExecuteStatementOutput$=mle;S.ExecuteTransaction$=Dme;S.ExecuteTransactionCommand=wI;S.ExecuteTransactionInput$=gle;S.ExecuteTransactionOutput$=fle;S.ExpectedAttributeValue$=hle;S.ExportConflictException=Zb;S.ExportConflictException$=Sle;S.ExportDescription$=b4;S.ExportFormat=Wct;S.ExportNotFoundException=Wb;S.ExportNotFoundException$=Ele;S.ExportStatus=Kct;S.ExportSummary$=yle;S.ExportTableToPointInTime$=Ome;S.ExportTableToPointInTimeCommand=DI;S.ExportTableToPointInTimeInput$=_le;S.ExportTableToPointInTimeOutput$=Cle;S.ExportType=Qct;S.ExportViewType=Xct;S.FailureException$=Rle;S.Get$=vle;S.GetItem$=kme;S.GetItemCommand=OI;S.GetItemInput$=xle;S.GetItemOutput$=Ple;S.GetResourcePolicy$=Nme;S.GetResourcePolicyCommand=kI;S.GetResourcePolicyInput$=ble;S.GetResourcePolicyOutput$=Ile;S.GlobalSecondaryIndex$=Ale;S.GlobalSecondaryIndexAutoScalingUpdate$=Tle;S.GlobalSecondaryIndexDescription$=wle;S.GlobalSecondaryIndexInfo$=Dle;S.GlobalSecondaryIndexUpdate$=Ole;S.GlobalSecondaryIndexWarmThroughputDescription$=I4;S.GlobalTable$=kle;S.GlobalTableAlreadyExistsException=jb;S.GlobalTableAlreadyExistsException$=Nle;S.GlobalTableDescription$=fA;S.GlobalTableGlobalSecondaryIndexSettingsUpdate$=Lle;S.GlobalTableNotFoundException=Kb;S.GlobalTableNotFoundException$=Mle;S.GlobalTableStatus=Uct;S.GlobalTableWitnessDescription$=Fle;S.GlobalTableWitnessGroupUpdate$=Ble;S.IdempotentParameterMismatchException=Jb;S.IdempotentParameterMismatchException$=Ule;S.ImportConflictException=rI;S.ImportConflictException$=qle;S.ImportNotFoundException=Qb;S.ImportNotFoundException$=$le;S.ImportStatus=Yct;S.ImportSummary$=Gle;S.ImportTable$=Lme;S.ImportTableCommand=NI;S.ImportTableDescription$=A4;S.ImportTableInput$=jle;S.ImportTableOutput$=Vle;S.IncrementalExportSpecification$=T4;S.IndexNotFoundException=aI;S.IndexNotFoundException$=Hle;S.IndexStatus=qct;S.InputCompressionType=Zct;S.InputFormat=eut;S.InputFormatOptions$=w4;S.InternalServerError=Db;S.InternalServerError$=zle;S.InvalidEndpointException=Nb;S.InvalidEndpointException$=Wle;S.InvalidExportTimeException=eI;S.InvalidExportTimeException$=Kle;S.InvalidRestoreTimeException=sI;S.InvalidRestoreTimeException$=Qle;S.ItemCollectionMetrics$=ly;S.ItemCollectionSizeLimitExceededException=Fb;S.ItemCollectionSizeLimitExceededException$=Xle;S.ItemResponse$=Jle;S.KeySchemaElement$=Zle;S.KeyType=Cct;S.KeysAndAttributes$=Yle;S.KinesisDataStreamDestination$=ede;S.KinesisStreamingDestinationInput$=D4;S.KinesisStreamingDestinationOutput$=O4;S.LimitExceededException=qb;S.LimitExceededException$=tde;S.ListBackups$=Mme;S.ListBackupsCommand=LI;S.ListBackupsInput$=rde;S.ListBackupsOutput$=nde;S.ListContributorInsights$=Fme;S.ListContributorInsightsCommand=WE;S.ListContributorInsightsInput$=sde;S.ListContributorInsightsOutput$=ode;S.ListExports$=Bme;S.ListExportsCommand=KE;S.ListExportsInput$=ide;S.ListExportsOutput$=ade;S.ListGlobalTables$=Ume;S.ListGlobalTablesCommand=MI;S.ListGlobalTablesInput$=cde;S.ListGlobalTablesOutput$=ude;S.ListImports$=qme;S.ListImportsCommand=QE;S.ListImportsInput$=lde;S.ListImportsOutput$=dde;S.ListTables$=$me;S.ListTablesCommand=XE;S.ListTablesInput$=pde;S.ListTablesOutput$=mde;S.ListTagsOfResource$=Gme;S.ListTagsOfResourceCommand=FI;S.ListTagsOfResourceInput$=gde;S.ListTagsOfResourceOutput$=fde;S.LocalSecondaryIndex$=hde;S.LocalSecondaryIndexDescription$=Sde;S.LocalSecondaryIndexInfo$=Ede;S.MultiRegionConsistency=Hct;S.OnDemandThroughput$=zs;S.OnDemandThroughputOverride$=fg;S.ParameterizedStatement$=yde;S.PointInTimeRecoveryDescription$=_de;S.PointInTimeRecoverySpecification$=Cde;S.PointInTimeRecoveryStatus=Lct;S.PointInTimeRecoveryUnavailableException=tI;S.PointInTimeRecoveryUnavailableException$=Rde;S.PolicyNotFoundException=zb;S.PolicyNotFoundException$=vde;S.Projection$=Ju;S.ProjectionType=Rct;S.ProvisionedThroughput$=Ti;S.ProvisionedThroughputDescription$=k4;S.ProvisionedThroughputExceededException=Lb;S.ProvisionedThroughputExceededException$=xde;S.ProvisionedThroughputOverride$=hg;S.Put$=Pde;S.PutItem$=jme;S.PutItemCommand=BI;S.PutItemInput$=bde;S.PutItemOutput$=Ide;S.PutRequest$=Ade;S.PutResourcePolicy$=Vme;S.PutResourcePolicyCommand=UI;S.PutResourcePolicyInput$=Tde;S.PutResourcePolicyOutput$=wde;S.Query$=Hme;S.QueryCommand=JE;S.QueryInput$=Dde;S.QueryOutput$=Ode;S.Replica$=kde;S.ReplicaAlreadyExistsException=oI;S.ReplicaAlreadyExistsException$=Nde;S.ReplicaAutoScalingDescription$=Lde;S.ReplicaAutoScalingUpdate$=Mde;S.ReplicaDescription$=Fde;S.ReplicaGlobalSecondaryIndex$=Bde;S.ReplicaGlobalSecondaryIndexAutoScalingDescription$=Ude;S.ReplicaGlobalSecondaryIndexAutoScalingUpdate$=qde;S.ReplicaGlobalSecondaryIndexDescription$=$de;S.ReplicaGlobalSecondaryIndexSettingsDescription$=Gde;S.ReplicaGlobalSecondaryIndexSettingsUpdate$=jde;S.ReplicaNotFoundException=iI;S.ReplicaNotFoundException$=Vde;S.ReplicaSettingsDescription$=Hde;S.ReplicaSettingsUpdate$=zde;S.ReplicaStatus=$ct;S.ReplicaUpdate$=Qde;S.ReplicatedWriteConflictException=Bb;S.ReplicatedWriteConflictException$=Wde;S.ReplicationGroupUpdate$=Kde;S.RequestLimitExceeded=Ob;S.RequestLimitExceeded$=Xde;S.ResourceInUseException=Vb;S.ResourceInUseException$=Jde;S.ResourceNotFoundException=Mb;S.ResourceNotFoundException$=Yde;S.RestoreSummary$=Zde;S.RestoreTableFromBackup$=zme;S.RestoreTableFromBackupCommand=qI;S.RestoreTableFromBackupInput$=epe;S.RestoreTableFromBackupOutput$=tpe;S.RestoreTableToPointInTime$=Wme;S.RestoreTableToPointInTimeCommand=$I;S.RestoreTableToPointInTimeInput$=rpe;S.RestoreTableToPointInTimeOutput$=npe;S.ReturnConsumedCapacity=Act;S.ReturnItemCollectionMetrics=Dct;S.ReturnValue=zct;S.ReturnValuesOnConditionCheckFailure=Tct;S.S3BucketSource$=hA;S.S3SseAlgorithm=Jct;S.SSEDescription$=N4;S.SSESpecification$=Sg;S.SSEStatus=xct;S.SSEType=vct;S.ScalarAttributeType=Sct;S.Scan$=Kme;S.ScanCommand=YE;S.ScanInput$=spe;S.ScanOutput$=ope;S.Select=rut;S.SourceTableDetails$=ipe;S.SourceTableFeatureDetails$=ape;S.StreamSpecification$=dy;S.StreamViewType=Pct;S.TableAlreadyExistsException=nI;S.TableAlreadyExistsException$=cpe;S.TableAutoScalingDescription$=L4;S.TableClass=Gct;S.TableClassSummary$=SA;S.TableCreationParameters$=M4;S.TableDescription$=qd;S.TableInUseException=$b;S.TableInUseException$=upe;S.TableNotFoundException=Gb;S.TableNotFoundException$=lpe;S.TableStatus=jct;S.TableWarmThroughputDescription$=F4;S.Tag$=dpe;S.TagResource$=Qme;S.TagResourceCommand=GI;S.TagResourceInput$=ppe;S.ThrottlingException=kb;S.ThrottlingException$=mpe;S.ThrottlingReason$=gpe;S.TimeToLiveDescription$=B4;S.TimeToLiveSpecification$=U4;S.TimeToLiveStatus=bct;S.TransactGetItem$=fpe;S.TransactGetItems$=Xme;S.TransactGetItemsCommand=jI;S.TransactGetItemsInput$=hpe;S.TransactGetItemsOutput$=Spe;S.TransactWriteItem$=Cpe;S.TransactWriteItems$=Jme;S.TransactWriteItemsCommand=VI;S.TransactWriteItemsInput$=Rpe;S.TransactWriteItemsOutput$=vpe;S.TransactionCanceledException=uI;S.TransactionCanceledException$=Epe;S.TransactionConflictException=Hb;S.TransactionConflictException$=ype;S.TransactionInProgressException=Yb;S.TransactionInProgressException$=_pe;S.UntagResource$=Yme;S.UntagResourceCommand=HI;S.UntagResourceInput$=xpe;S.Update$=Ppe;S.UpdateContinuousBackups$=Zme;S.UpdateContinuousBackupsCommand=zI;S.UpdateContinuousBackupsInput$=bpe;S.UpdateContinuousBackupsOutput$=Ipe;S.UpdateContributorInsights$=ege;S.UpdateContributorInsightsCommand=WI;S.UpdateContributorInsightsInput$=Ape;S.UpdateContributorInsightsOutput$=Tpe;S.UpdateGlobalSecondaryIndexAction$=wpe;S.UpdateGlobalTable$=tge;S.UpdateGlobalTableCommand=KI;S.UpdateGlobalTableInput$=Dpe;S.UpdateGlobalTableOutput$=Ope;S.UpdateGlobalTableSettings$=rge;S.UpdateGlobalTableSettingsCommand=QI;S.UpdateGlobalTableSettingsInput$=kpe;S.UpdateGlobalTableSettingsOutput$=Npe;S.UpdateItem$=nge;S.UpdateItemCommand=XI;S.UpdateItemInput$=Lpe;S.UpdateItemOutput$=Mpe;S.UpdateKinesisStreamingConfiguration$=q4;S.UpdateKinesisStreamingDestination$=sge;S.UpdateKinesisStreamingDestinationCommand=JI;S.UpdateKinesisStreamingDestinationInput$=Fpe;S.UpdateKinesisStreamingDestinationOutput$=Bpe;S.UpdateReplicationGroupMemberAction$=Upe;S.UpdateTable$=oge;S.UpdateTableCommand=YI;S.UpdateTableInput$=qpe;S.UpdateTableOutput$=$pe;S.UpdateTableReplicaAutoScaling$=ige;S.UpdateTableReplicaAutoScalingCommand=ZI;S.UpdateTableReplicaAutoScalingInput$=Gpe;S.UpdateTableReplicaAutoScalingOutput$=jpe;S.UpdateTimeToLive$=age;S.UpdateTimeToLiveCommand=eA;S.UpdateTimeToLiveInput$=Vpe;S.UpdateTimeToLiveOutput$=Hpe;S.WarmThroughput$=Eg;S.WitnessStatus=Vct;S.WriteRequest$=zpe;S.paginateListContributorInsights=cge;S.paginateListExports=uge;S.paginateListImports=lge;S.paginateListTables=dge;S.paginateQuery=pge;S.paginateScan=mge;S.waitForContributorInsightsEnabled=ict;S.waitForExportCompleted=act;S.waitForImportCompleted=cct;S.waitForKinesisStreamingDestinationActive=uct;S.waitForTableExists=lct;S.waitForTableNotExists=dct;S.waitUntilContributorInsightsEnabled=fge;S.waitUntilExportCompleted=Sge;S.waitUntilImportCompleted=yge;S.waitUntilKinesisStreamingDestinationActive=Cge;S.waitUntilTableExists=vge;S.waitUntilTableNotExists=Pge});var W4,nut,bge=_(()=>{W4={warningEmitted:!1},nut=t=>{t&&!W4.warningEmitted&&parseInt(t.substring(1,t.indexOf(".")))<20&&(W4.warningEmitted=!0,process.emitWarning(`NodeDeprecationWarning: The AWS SDK for JavaScript (v3) will -no longer support Node.js ${t} in January 2026. - -To continue receiving updates to AWS services, bug fixes, and security -updates please upgrade to a supported Node.js LTS version. - -More information can be found at: https://a.co/c895JFp`))}});function K4(t,e,r){return t.$source||(t.$source={}),t.$source[e]=r,t}var Ige=_(()=>{});function sut(t,e,r){t.__aws_sdk_context?t.__aws_sdk_context.features||(t.__aws_sdk_context.features={}):t.__aws_sdk_context={features:{}},t.__aws_sdk_context.features[e]=r}var Age=_(()=>{});function out(t,e,r){return t.$source||(t.$source={}),t.$source[e]=r,t}var Tge=_(()=>{});var Q4=_(()=>{bge();Ige();Age();Tge()});var wge,X4,Dge=_(()=>{wge=require("@smithy/protocol-http"),X4=t=>wge.HttpResponse.isInstance(t)?t.headers?.date??t.headers?.Date:void 0});var _g,J4=_(()=>{_g=t=>new Date(Date.now()+t)});var Oge,kge=_(()=>{J4();Oge=(t,e)=>Math.abs(_g(e).getTime()-t)>=3e5});var Y4,Nge=_(()=>{kge();Y4=(t,e)=>{let r=Date.parse(t);return Oge(r,e)?r-Date.now():e}});var Z4=_(()=>{Dge();J4();Nge()});var Lge,py,my,$d,Mge,eV=_(()=>{Lge=require("@smithy/protocol-http");Z4();py=(t,e)=>{if(!e)throw new Error(`Property \`${t}\` is not resolved for AWS SDK SigV4Auth`);return e},my=async t=>{let e=py("context",t.context),r=py("config",t.config),n=e.endpointV2?.properties?.authSchemes?.[0],o=await py("signer",r.signer)(n),i=t?.signingRegion,a=t?.signingRegionSet,c=t?.signingName;return{config:r,signer:o,signingRegion:i,signingRegionSet:a,signingName:c}},$d=class{async sign(e,r,n){if(!Lge.HttpRequest.isInstance(e))throw new Error("The request is not an instance of `HttpRequest` and cannot be signed");let s=await my(n),{config:o,signer:i}=s,{signingRegion:a,signingName:c}=s,u=n.context;if(u?.authSchemes?.length??!1){let[d,p]=u.authSchemes;d?.name==="sigv4a"&&p?.name==="sigv4"&&(a=p?.signingRegion??a,c=p?.signingName??c)}return await i.sign(e,{signingDate:_g(o.systemClockOffset),signingRegion:a,signingService:c})}errorHandler(e){return r=>{let n=r.ServerTime??X4(r.$response);if(n){let s=py("config",e.config),o=s.systemClockOffset;s.systemClockOffset=Y4(n,s.systemClockOffset),s.systemClockOffset!==o&&r.$metadata&&(r.$metadata.clockSkewCorrected=!0)}throw r}}successHandler(e,r){let n=X4(e);if(n){let s=py("config",r.config);s.systemClockOffset=Y4(n,s.systemClockOffset)}}},Mge=$d});var Fge,RA,Bge=_(()=>{Fge=require("@smithy/protocol-http");Z4();eV();RA=class extends $d{async sign(e,r,n){if(!Fge.HttpRequest.isInstance(e))throw new Error("The request is not an instance of `HttpRequest` and cannot be signed");let{config:s,signer:o,signingRegion:i,signingRegionSet:a,signingName:c}=await my(n),l=(await s.sigv4aSigningRegionSet?.()??a??[i]).join(",");return await o.sign(e,{signingDate:_g(s.systemClockOffset),signingRegion:l,signingService:c})}}});var tV,Uge=_(()=>{tV=t=>typeof t=="string"&&t.length>0?t.split(",").map(e=>e.trim()):[]});var rV,nV=_(()=>{rV=t=>`AWS_BEARER_TOKEN_${t.replace(/[\s-]/g,"_").toUpperCase()}`});var qge,$ge,iut,Gge=_(()=>{Uge();nV();qge="AWS_AUTH_SCHEME_PREFERENCE",$ge="auth_scheme_preference",iut={environmentVariableSelector:(t,e)=>{if(e?.signingName&&rV(e.signingName)in t)return["httpBearerAuth"];if(qge in t)return tV(t[qge])},configFileSelector:t=>{if($ge in t)return tV(t[$ge])},default:[]}});var jge,sV,aut,cut,Vge=_(()=>{jge=require("@smithy/core"),sV=require("@smithy/property-provider"),aut=t=>(t.sigv4aSigningRegionSet=(0,jge.normalizeProvider)(t.sigv4aSigningRegionSet),t),cut={environmentVariableSelector(t){if(t.AWS_SIGV4A_SIGNING_REGION_SET)return t.AWS_SIGV4A_SIGNING_REGION_SET.split(",").map(e=>e.trim());throw new sV.ProviderError("AWS_SIGV4A_SIGNING_REGION_SET not set in env.",{tryNextLink:!0})},configFileSelector(t){if(t.sigv4a_signing_region_set)return(t.sigv4a_signing_region_set??"").split(",").map(e=>e.trim());throw new sV.ProviderError("sigv4a_signing_region_set not set in profile.",{tryNextLink:!0})},default:void 0}});function lut(t,{credentials:e,credentialDefaultProvider:r}){let n;return e?e?.memoized?n=e:n=(0,Di.memoizeIdentityProvider)(e,Di.isIdentityExpired,Di.doesIdentityRequireRefresh):r?n=(0,Di.normalizeProvider)(r(Object.assign({},t,{parentClientConfig:t}))):n=async()=>{throw new Error("@aws-sdk/core::resolveAwsSdkSigV4Config - `credentials` not provided and no credentialDefaultProvider was configured.")},n.memoized=!0,n}function dut(t,e){if(e.configBound)return e;let r=async n=>e({...n,callerClientConfig:t});return r.memoized=e.memoized,r.configBound=!0,r}var Di,oV,Hge,uut,zge=_(()=>{Q4();Di=require("@smithy/core"),oV=require("@smithy/signature-v4"),Hge=t=>{let e=t.credentials,r=!!t.credentials,n;Object.defineProperty(t,"credentials",{set(u){u&&u!==e&&u!==n&&(r=!0),e=u;let l=lut(t,{credentials:e,credentialDefaultProvider:t.credentialDefaultProvider}),d=dut(t,l);if(r&&!d.attributed){let p=typeof e=="object"&&e!==null;n=async g=>{let R=await d(g);return p&&(!R.$source||Object.keys(R.$source).length===0)?K4(R,"CREDENTIALS_CODE","e"):R},n.memoized=d.memoized,n.configBound=d.configBound,n.attributed=!0}else n=d},get(){return n},enumerable:!0,configurable:!0}),t.credentials=e;let{signingEscapePath:s=!0,systemClockOffset:o=t.systemClockOffset||0,sha256:i}=t,a;return t.signer?a=(0,Di.normalizeProvider)(t.signer):t.regionInfoProvider?a=()=>(0,Di.normalizeProvider)(t.region)().then(async u=>[await t.regionInfoProvider(u,{useFipsEndpoint:await t.useFipsEndpoint(),useDualstackEndpoint:await t.useDualstackEndpoint()})||{},u]).then(([u,l])=>{let{signingRegion:d,signingService:p}=u;t.signingRegion=t.signingRegion||d||l,t.signingName=t.signingName||p||t.serviceId;let g={...t,credentials:t.credentials,region:t.signingRegion,service:t.signingName,sha256:i,uriEscapePath:s},y=t.signerConstructor||oV.SignatureV4;return new y(g)}):a=async u=>{u=Object.assign({},{name:"sigv4",signingName:t.signingName||t.defaultSigningName,signingRegion:await(0,Di.normalizeProvider)(t.region)(),properties:{}},u);let l=u.signingRegion,d=u.signingName;t.signingRegion=t.signingRegion||l,t.signingName=t.signingName||d||t.serviceId;let p={...t,credentials:t.credentials,region:t.signingRegion,service:t.signingName,sha256:i,uriEscapePath:s},g=t.signerConstructor||oV.SignatureV4;return new g(p)},Object.assign(t,{systemClockOffset:o,signingEscapePath:s,signer:a})},uut=Hge});var Wge=_(()=>{eV();Bge();Gge();Vge();zge()});var Kge=_(()=>{Wge();nV()});var gy,iV,Fo,Cg=_(()=>{gy=require("@smithy/core/schema"),iV=require("@smithy/smithy-client"),Fo=class{queryCompat;constructor(e=!1){this.queryCompat=e}resolveRestContentType(e,r){let n=r.getMemberSchemas(),s=Object.values(n).find(o=>!!o.getMergedTraits().httpPayload);if(s){let o=s.getMergedTraits().mediaType;return o||(s.isStringSchema()?"text/plain":s.isBlobSchema()?"application/octet-stream":e)}else if(!r.isUnitSchema()&&Object.values(n).find(i=>{let{httpQuery:a,httpQueryParams:c,httpHeader:u,httpLabel:l,httpPrefixHeaders:d}=i.getMergedTraits();return!a&&!c&&!u&&!l&&d===void 0}))return e}async getErrorSchemaOrThrowBaseException(e,r,n,s,o,i){let a=r,c=e;e.includes("#")&&([a,c]=e.split("#"));let u={$metadata:o,$fault:n.statusCode<500?"client":"server"},l=gy.TypeRegistry.for(a);try{return{errorSchema:i?.(l,c)??l.getSchema(e),errorMetadata:u}}catch{s.message=s.message??s.Message??"UnknownError";let p=gy.TypeRegistry.for("smithy.ts.sdk.synthetic."+a),g=p.getBaseException();if(g){let y=p.getErrorCtor(g)??Error;throw this.decorateServiceException(Object.assign(new y({name:c}),u),s)}throw this.decorateServiceException(Object.assign(new Error(c),u),s)}}decorateServiceException(e,r={}){if(this.queryCompat){let n=e.Message??r.Message,s=(0,iV.decorateServiceException)(e,r);n&&(s.message=n),s.Error={...s.Error,Type:s.Error?.Type,Code:s.Error?.Code,Message:s.Error?.message??s.Error?.Message??n};let o=s.$metadata.requestId;return o&&(s.RequestId=o),s}return(0,iV.decorateServiceException)(e,r)}setQueryCompatError(e,r){let n=r.headers?.["x-amzn-query-error"];if(e!==void 0&&n!=null){let[s,o]=n.split(";"),i=Object.entries(e),a={Code:s,Type:o};Object.assign(e,a);for(let[c,u]of i)a[c==="message"?"Message":c]=u;delete a.__type,e.Error=a}}queryCompatOutput(e,r){e.Error&&(r.Error=e.Error),e.Type&&(r.Type=e.Type),e.Code&&(r.Code=e.Code)}findQueryCompatibleError(e,r){try{return e.getSchema(r)}catch{return e.find(s=>gy.NormalizedSchema.of(s).getMergedTraits().awsQueryError?.[0]===r)}}}});var vA,xA,aV,Qge=_(()=>{vA=require("@smithy/core/cbor"),xA=require("@smithy/core/schema");Cg();aV=class extends vA.SmithyRpcV2CborProtocol{awsQueryCompatible;mixin;constructor({defaultNamespace:e,awsQueryCompatible:r}){super({defaultNamespace:e}),this.awsQueryCompatible=!!r,this.mixin=new Fo(this.awsQueryCompatible)}async serializeRequest(e,r,n){let s=await super.serializeRequest(e,r,n);return this.awsQueryCompatible&&(s.headers["x-amzn-query-mode"]="true"),s}async handleError(e,r,n,s,o){this.awsQueryCompatible&&this.mixin.setQueryCompatError(s,n);let i=(()=>{let y=n.headers["x-amzn-query-error"];return y&&this.awsQueryCompatible?y.split(";")[0]:(0,vA.loadSmithyRpcV2CborErrorCode)(n,s)??"Unknown"})(),{errorSchema:a,errorMetadata:c}=await this.mixin.getErrorSchemaOrThrowBaseException(i,this.options.defaultNamespace,n,s,o,this.awsQueryCompatible?this.mixin.findQueryCompatibleError:void 0),u=xA.NormalizedSchema.of(a),l=s.message??s.Message??"Unknown",d=xA.TypeRegistry.for(a[1]).getErrorCtor(a)??Error,p=new d(l),g={};for(let[y,R]of u.structIterator())s[y]!=null&&(g[y]=this.deserializer.readValue(R,s[y]));throw this.awsQueryCompatible&&this.mixin.queryCompatOutput(s,g),this.mixin.decorateServiceException(Object.assign(p,c,{$fault:u.getMergedTraits().error,message:l},g),s)}}});var put,mut,gut,Xge=_(()=>{put=t=>{if(t==null)return t;if(typeof t=="number"||typeof t=="bigint"){let e=new Error(`Received number ${t} where a string was expected.`);return e.name="Warning",console.warn(e),String(t)}if(typeof t=="boolean"){let e=new Error(`Received boolean ${t} where a string was expected.`);return e.name="Warning",console.warn(e),String(t)}return t},mut=t=>{if(t==null)return t;if(typeof t=="string"){let e=t.toLowerCase();if(t!==""&&e!=="false"&&e!=="true"){let r=new Error(`Received string "${t}" where a boolean was expected.`);r.name="Warning",console.warn(r)}return t!==""&&e!=="false"}return t},gut=t=>{if(t==null)return t;if(typeof t=="string"){let e=Number(t);if(e.toString()!==t){let r=new Error(`Received string "${t}" where a number was expected.`);return r.name="Warning",console.warn(r),t}return e}return t}});var bn,Yu=_(()=>{bn=class{serdeContext;setSerdeContext(e){this.serdeContext=e}}});var Rg,cV=_(()=>{Rg=class{from;to;keys;constructor(e,r){this.from=e,this.to=r,this.keys=new Set(Object.keys(this.from).filter(n=>n!=="__type"))}mark(e){this.keys.delete(e)}hasUnknown(){return this.keys.size===1&&Object.keys(this.to).length===0}writeUnknown(){if(this.hasUnknown()){let e=this.keys.values().next().value,r=this.from[e];this.to.$unknown=[e,r]}}}});function Yge(t,e,r){if(r?.source){let n=r.source;if(typeof e=="number"&&(e>Number.MAX_SAFE_INTEGER||e{Jge=require("@smithy/core/serde")});var efe,tfe,PA,uV=_(()=>{efe=require("@smithy/smithy-client"),tfe=require("@smithy/util-utf8"),PA=(t,e)=>(0,efe.collectBody)(t,e).then(r=>(e?.utf8Encoder??tfe.toUtf8)(r))});var bA,fut,fy,hy=_(()=>{uV();bA=(t,e)=>PA(t,e).then(r=>{if(r.length)try{return JSON.parse(r)}catch(n){throw n?.name==="SyntaxError"&&Object.defineProperty(n,"$responseBodyText",{value:r}),n}return{}}),fut=async(t,e)=>{let r=await bA(t,e);return r.message=r.message??r.Message,r},fy=(t,e)=>{let r=(o,i)=>Object.keys(o).find(a=>a.toLowerCase()===i.toLowerCase()),n=o=>{let i=o;return typeof i=="number"&&(i=i.toString()),i.indexOf(",")>=0&&(i=i.split(",")[0]),i.indexOf(":")>=0&&(i=i.split(":")[0]),i.indexOf("#")>=0&&(i=i.split("#")[1]),i},s=r(t.headers,"x-amzn-errortype");if(s!==void 0)return n(t.headers[s]);if(e&&typeof e=="object"){let o=r(e,"code");if(o&&e[o]!==void 0)return n(e[o]);if(e.__type!==void 0)return n(e.__type)}}});var rfe,nfe,Ws,sfe,Sy,lV=_(()=>{rfe=require("@smithy/core/protocols"),nfe=require("@smithy/core/schema"),Ws=require("@smithy/core/serde"),sfe=require("@smithy/util-base64");Yu();cV();Zge();hy();Sy=class extends bn{settings;constructor(e){super(),this.settings=e}async read(e,r){return this._read(e,typeof r=="string"?JSON.parse(r,Yge):await bA(r,this.serdeContext))}readObject(e,r){return this._read(e,r)}_read(e,r){let n=r!==null&&typeof r=="object",s=nfe.NormalizedSchema.of(e);if(n){if(s.isStructSchema()){let i=r,a=s.isUnionSchema(),c={},u,{jsonName:l}=this.settings;l&&(u={});let d;a&&(d=new Rg(i,c));for(let[p,g]of s.structIterator()){let y=p;l&&(y=g.getMergedTraits().jsonName??y,u[y]=p),a&&d.mark(y),i[y]!=null&&(c[p]=this._read(g,i[y]))}if(a)d.writeUnknown();else if(typeof i.__type=="string")for(let[p,g]of Object.entries(i)){let y=l?u[p]??p:p;y in c||(c[y]=g)}return c}if(Array.isArray(r)&&s.isListSchema()){let i=s.getValueSchema(),a=[],c=!!s.getMergedTraits().sparse;for(let u of r)(c||u!=null)&&a.push(this._read(i,u));return a}if(s.isMapSchema()){let i=s.getValueSchema(),a={},c=!!s.getMergedTraits().sparse;for(let[u,l]of Object.entries(r))(c||l!=null)&&(a[u]=this._read(i,l));return a}}if(s.isBlobSchema()&&typeof r=="string")return(0,sfe.fromBase64)(r);let o=s.getMergedTraits().mediaType;if(s.isStringSchema()&&typeof r=="string"&&o)return o==="application/json"||o.endsWith("+json")?Ws.LazyJsonString.from(r):r;if(s.isTimestampSchema()&&r!=null)switch((0,rfe.determineTimestampFormat)(s,this.settings)){case 5:return(0,Ws.parseRfc3339DateTimeWithOffset)(r);case 6:return(0,Ws.parseRfc7231DateTime)(r);case 7:return(0,Ws.parseEpochTimestamp)(r);default:return console.warn("Missing timestamp format, parsing value with Date constructor:",r),new Date(r)}if(s.isBigIntegerSchema()&&(typeof r=="number"||typeof r=="string"))return BigInt(r);if(s.isBigDecimalSchema()&&r!=null){if(r instanceof Ws.NumericValue)return r;let i=r;return i.type==="bigDecimal"&&"string"in i?new Ws.NumericValue(i.string,i.type):new Ws.NumericValue(String(r),"bigDecimal")}if(s.isNumericSchema()&&typeof r=="string"){switch(r){case"Infinity":return 1/0;case"-Infinity":return-1/0;case"NaN":return NaN}return r}if(s.isDocumentSchema())if(n){let i=Array.isArray(r)?[]:{};for(let[a,c]of Object.entries(r))c instanceof Ws.NumericValue?i[a]=c:i[a]=this._read(s,c);return i}else return structuredClone(r);return r}}});var ife,ofe,IA,afe=_(()=>{ife=require("@smithy/core/serde"),ofe="\u039D",IA=class{values=new Map;counter=0;stage=0;createReplacer(){if(this.stage===1)throw new Error("@aws-sdk/core/protocols - JsonReplacer already created.");if(this.stage===2)throw new Error("@aws-sdk/core/protocols - JsonReplacer exhausted.");return this.stage=1,(e,r)=>{if(r instanceof ife.NumericValue){let n=`${ofe+"nv"+this.counter++}_`+r.string;return this.values.set(`"${n}"`,r.string),n}if(typeof r=="bigint"){let n=r.toString(),s=`${ofe+"b"+this.counter++}_`+n;return this.values.set(`"${s}"`,n),s}return r}}replaceInJson(e){if(this.stage===0)throw new Error("@aws-sdk/core/protocols - JsonReplacer not created yet.");if(this.stage===2)throw new Error("@aws-sdk/core/protocols - JsonReplacer exhausted.");if(this.stage=2,this.counter===0)return e;for(let[r,n]of this.values)e=e.replace(r,n);return e}}});var cfe,AA,Ac,dV,Ey,pV=_(()=>{cfe=require("@smithy/core/protocols"),AA=require("@smithy/core/schema"),Ac=require("@smithy/core/serde"),dV=require("@smithy/util-base64");Yu();afe();Ey=class extends bn{settings;buffer;useReplacer=!1;rootSchema;constructor(e){super(),this.settings=e}write(e,r){this.rootSchema=AA.NormalizedSchema.of(e),this.buffer=this._write(this.rootSchema,r)}writeDiscriminatedDocument(e,r){this.write(e,r),typeof this.buffer=="object"&&(this.buffer.__type=AA.NormalizedSchema.of(e).getName(!0))}flush(){let{rootSchema:e,useReplacer:r}=this;if(this.rootSchema=void 0,this.useReplacer=!1,e?.isStructSchema()||e?.isDocumentSchema()){if(!r)return JSON.stringify(this.buffer);let n=new IA;return n.replaceInJson(JSON.stringify(this.buffer,n.createReplacer(),0))}return this.buffer}_write(e,r,n){let s=r!==null&&typeof r=="object",o=AA.NormalizedSchema.of(e);if(s){if(o.isStructSchema()){let i=r,a={},{jsonName:c}=this.settings,u;c&&(u={});for(let[l,d]of o.structIterator()){let p=this._write(d,i[l],o);if(p!==void 0){let g=l;c&&(g=d.getMergedTraits().jsonName??l,u[l]=g),a[g]=p}}if(o.isUnionSchema()&&Object.keys(a).length===0){let{$unknown:l}=i;if(Array.isArray(l)){let[d,p]=l;a[d]=this._write(15,p)}}else if(typeof i.__type=="string")for(let[l,d]of Object.entries(i)){let p=c?u[l]??l:l;p in a||(a[p]=this._write(15,d))}return a}if(Array.isArray(r)&&o.isListSchema()){let i=o.getValueSchema(),a=[],c=!!o.getMergedTraits().sparse;for(let u of r)(c||u!=null)&&a.push(this._write(i,u));return a}if(o.isMapSchema()){let i=o.getValueSchema(),a={},c=!!o.getMergedTraits().sparse;for(let[u,l]of Object.entries(r))(c||l!=null)&&(a[u]=this._write(i,l));return a}if(r instanceof Uint8Array&&(o.isBlobSchema()||o.isDocumentSchema()))return o===this.rootSchema?r:(this.serdeContext?.base64Encoder??dV.toBase64)(r);if(r instanceof Date&&(o.isTimestampSchema()||o.isDocumentSchema()))switch((0,cfe.determineTimestampFormat)(o,this.settings)){case 5:return r.toISOString().replace(".000Z","Z");case 6:return(0,Ac.dateToUtcString)(r);case 7:return r.getTime()/1e3;default:return console.warn("Missing timestamp format, using epoch seconds",r),r.getTime()/1e3}r instanceof Ac.NumericValue&&(this.useReplacer=!0)}if(!(r===null&&n?.isStructSchema())){if(o.isStringSchema()){if(typeof r>"u"&&o.isIdempotencyToken())return(0,Ac.generateIdempotencyToken)();let i=o.getMergedTraits().mediaType;return r!=null&&i&&(i==="application/json"||i.endsWith("+json"))?Ac.LazyJsonString.from(r):r}if(typeof r=="number"&&o.isNumericSchema())return Math.abs(r)===1/0||isNaN(r)?String(r):r;if(typeof r=="string"&&o.isBlobSchema())return o===this.rootSchema?r:(this.serdeContext?.base64Encoder??dV.toBase64)(r);if(typeof r=="bigint"&&(this.useReplacer=!0),o.isDocumentSchema())if(s){let i=Array.isArray(r)?[]:{};for(let[a,c]of Object.entries(r))c instanceof Ac.NumericValue?(this.useReplacer=!0,i[a]=c):i[a]=this._write(o,c);return i}else return structuredClone(r);return r}}}});var Gd,TA=_(()=>{Yu();lV();pV();Gd=class extends bn{settings;constructor(e){super(),this.settings=e}createSerializer(){let e=new Ey(this.settings);return e.setSerdeContext(this.serdeContext),e}createDeserializer(){let e=new Sy(this.settings);return e.setSerdeContext(this.serdeContext),e}}});var ufe,vg,jd,wA=_(()=>{ufe=require("@smithy/core/protocols"),vg=require("@smithy/core/schema");Cg();TA();hy();jd=class extends ufe.RpcProtocol{serializer;deserializer;serviceTarget;codec;mixin;awsQueryCompatible;constructor({defaultNamespace:e,serviceTarget:r,awsQueryCompatible:n,jsonCodec:s}){super({defaultNamespace:e}),this.serviceTarget=r,this.codec=s??new Gd({timestampFormat:{useTrait:!0,default:7},jsonName:!1}),this.serializer=this.codec.createSerializer(),this.deserializer=this.codec.createDeserializer(),this.awsQueryCompatible=!!n,this.mixin=new Fo(this.awsQueryCompatible)}async serializeRequest(e,r,n){let s=await super.serializeRequest(e,r,n);return s.path.endsWith("/")||(s.path+="/"),Object.assign(s.headers,{"content-type":`application/x-amz-json-${this.getJsonRpcVersion()}`,"x-amz-target":`${this.serviceTarget}.${e.name}`}),this.awsQueryCompatible&&(s.headers["x-amzn-query-mode"]="true"),((0,vg.deref)(e.input)==="unit"||!s.body)&&(s.body="{}"),s}getPayloadCodec(){return this.codec}async handleError(e,r,n,s,o){this.awsQueryCompatible&&this.mixin.setQueryCompatError(s,n);let i=fy(n,s)??"Unknown",{errorSchema:a,errorMetadata:c}=await this.mixin.getErrorSchemaOrThrowBaseException(i,this.options.defaultNamespace,n,s,o,this.awsQueryCompatible?this.mixin.findQueryCompatibleError:void 0),u=vg.NormalizedSchema.of(a),l=s.message??s.Message??"Unknown",d=vg.TypeRegistry.for(a[1]).getErrorCtor(a)??Error,p=new d(l),g={};for(let[y,R]of u.structIterator())s[y]!=null&&(g[y]=this.codec.createDeserializer().readObject(R,s[y]));throw this.awsQueryCompatible&&this.mixin.queryCompatOutput(s,g),this.mixin.decorateServiceException(Object.assign(p,c,{$fault:u.getMergedTraits().error,message:l},g),s)}}});var mV,lfe=_(()=>{wA();mV=class extends jd{constructor({defaultNamespace:e,serviceTarget:r,awsQueryCompatible:n,jsonCodec:s}){super({defaultNamespace:e,serviceTarget:r,awsQueryCompatible:n,jsonCodec:s})}getShapeId(){return"aws.protocols#awsJson1_0"}getJsonRpcVersion(){return"1.0"}getDefaultContentType(){return"application/x-amz-json-1.0"}}});var gV,dfe=_(()=>{wA();gV=class extends jd{constructor({defaultNamespace:e,serviceTarget:r,awsQueryCompatible:n,jsonCodec:s}){super({defaultNamespace:e,serviceTarget:r,awsQueryCompatible:n,jsonCodec:s})}getShapeId(){return"aws.protocols#awsJson1_1"}getJsonRpcVersion(){return"1.1"}getDefaultContentType(){return"application/x-amz-json-1.1"}}});var Pg,xg,fV,pfe=_(()=>{Pg=require("@smithy/core/protocols"),xg=require("@smithy/core/schema");Cg();TA();hy();fV=class extends Pg.HttpBindingProtocol{serializer;deserializer;codec;mixin=new Fo;constructor({defaultNamespace:e}){super({defaultNamespace:e});let r={timestampFormat:{useTrait:!0,default:7},httpBindings:!0,jsonName:!0};this.codec=new Gd(r),this.serializer=new Pg.HttpInterceptingShapeSerializer(this.codec.createSerializer(),r),this.deserializer=new Pg.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(),r)}getShapeId(){return"aws.protocols#restJson1"}getPayloadCodec(){return this.codec}setSerdeContext(e){this.codec.setSerdeContext(e),super.setSerdeContext(e)}async serializeRequest(e,r,n){let s=await super.serializeRequest(e,r,n),o=xg.NormalizedSchema.of(e.input);if(!s.headers["content-type"]){let i=this.mixin.resolveRestContentType(this.getDefaultContentType(),o);i&&(s.headers["content-type"]=i)}return s.body==null&&s.headers["content-type"]===this.getDefaultContentType()&&(s.body="{}"),s}async deserializeResponse(e,r,n){let s=await super.deserializeResponse(e,r,n),o=xg.NormalizedSchema.of(e.output);for(let[i,a]of o.structIterator())a.getMemberTraits().httpPayload&&!(i in s)&&(s[i]=null);return s}async handleError(e,r,n,s,o){let i=fy(n,s)??"Unknown",{errorSchema:a,errorMetadata:c}=await this.mixin.getErrorSchemaOrThrowBaseException(i,this.options.defaultNamespace,n,s,o),u=xg.NormalizedSchema.of(a),l=s.message??s.Message??"Unknown",d=xg.TypeRegistry.for(a[1]).getErrorCtor(a)??Error,p=new d(l);await this.deserializeHttpMessage(a,r,n,s);let g={};for(let[y,R]of u.structIterator()){let D=R.getMergedTraits().jsonName??y;g[y]=this.codec.createDeserializer().readObject(R,s[D])}throw this.mixin.decorateServiceException(Object.assign(p,c,{$fault:u.getMergedTraits().error,message:l},g),s)}getDefaultContentType(){return"application/json"}}});var mfe,hut,gfe=_(()=>{mfe=require("@smithy/smithy-client"),hut=t=>{if(t!=null)return typeof t=="object"&&"__type"in t&&delete t.__type,(0,mfe.expectUnion)(t)}});var ffe=b(SV=>{"use strict";Object.defineProperty(SV,"__esModule",{value:!0});SV.parseXML=Eut;var Sut=require("fast-xml-parser"),hV=new Sut.XMLParser({attributeNamePrefix:"",htmlEntities:!0,ignoreAttributes:!1,ignoreDeclaration:!0,parseTagValue:!1,trimValues:!1,tagValueProcessor:(t,e)=>e.trim()===""&&e.includes(` -`)?"":void 0});hV.addEntity("#xD","\r");hV.addEntity("#10",` -`);function Eut(t){return hV.parse(t,!0)}});var kA=b(OA=>{"use strict";var yut=ffe();function _ut(t){return t.replace(/&/g,"&").replace(//g,">").replace(/"/g,""")}function Cut(t){return t.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">").replace(/\r/g," ").replace(/\n/g," ").replace(/\u0085/g,"…").replace(/\u2028/,"
")}var DA=class{value;constructor(e){this.value=e}toString(){return Cut(""+this.value)}},EV=class t{name;children;attributes={};static of(e,r,n){let s=new t(e);return r!==void 0&&s.addChildNode(new DA(r)),n!==void 0&&s.withName(n),s}constructor(e,r=[]){this.name=e,this.children=r}withName(e){return this.name=e,this}addAttribute(e,r){return this.attributes[e]=r,this}addChildNode(e){return this.children.push(e),this}removeAttribute(e){return delete this.attributes[e],this}n(e){return this.name=e,this}c(e){return this.children.push(e),this}a(e,r){return r!=null&&(this.attributes[e]=r),this}cc(e,r,n=r){if(e[r]!=null){let s=t.of(r,e[r]).withName(n);this.c(s)}}l(e,r,n,s){e[r]!=null&&s().map(i=>{i.withName(n),this.c(i)})}lc(e,r,n,s){if(e[r]!=null){let o=s(),i=new t(n);o.map(a=>{i.c(a)}),this.c(i)}}toString(){let e=!!this.children.length,r=`<${this.name}`,n=this.attributes;for(let s of Object.keys(n)){let o=n[s];o!=null&&(r+=` ${s}="${_ut(""+o)}"`)}return r+=e?`>${this.children.map(s=>s.toString()).join("")}`:"/>"}};Object.defineProperty(OA,"parseXML",{enumerable:!0,get:function(){return yut.parseXML}});OA.XmlNode=EV;OA.XmlText=DA});var hfe,Sfe,yV,Efe,yfe,Vd,NA=_(()=>{hfe=O(kA()),Sfe=require("@smithy/core/protocols"),yV=require("@smithy/core/schema"),Efe=require("@smithy/smithy-client"),yfe=require("@smithy/util-utf8");Yu();cV();Vd=class extends bn{settings;stringDeserializer;constructor(e){super(),this.settings=e,this.stringDeserializer=new Sfe.FromStringShapeDeserializer(e)}setSerdeContext(e){this.serdeContext=e,this.stringDeserializer.setSerdeContext(e)}read(e,r,n){let s=yV.NormalizedSchema.of(e),o=s.getMemberSchemas();if(s.isStructSchema()&&s.isMemberSchema()&&!!Object.values(o).find(u=>!!u.getMemberTraits().eventPayload)){let u={},l=Object.keys(o)[0];return o[l].isBlobSchema()?u[l]=r:u[l]=this.read(o[l],r),u}let a=(this.serdeContext?.utf8Encoder??yfe.toUtf8)(r),c=this.parseXml(a);return this.readSchema(e,n?c[n]:c)}readSchema(e,r){let n=yV.NormalizedSchema.of(e);if(n.isUnitSchema())return;let s=n.getMergedTraits();if(n.isListSchema()&&!Array.isArray(r))return this.readSchema(n,[r]);if(r==null)return r;if(typeof r=="object"){let o=!!s.sparse,i=!!s.xmlFlattened;if(n.isListSchema()){let c=n.getValueSchema(),u=[],l=c.getMergedTraits().xmlName??"member",d=i?r:(r[0]??r)[l],p=Array.isArray(d)?d:[d];for(let g of p)(g!=null||o)&&u.push(this.readSchema(c,g));return u}let a={};if(n.isMapSchema()){let c=n.getKeySchema(),u=n.getValueSchema(),l;i?l=Array.isArray(r)?r:[r]:l=Array.isArray(r.entry)?r.entry:[r.entry];let d=c.getMergedTraits().xmlName??"key",p=u.getMergedTraits().xmlName??"value";for(let g of l){let y=g[d],R=g[p];(R!=null||o)&&(a[y]=this.readSchema(u,R))}return a}if(n.isStructSchema()){let c=n.isUnionSchema(),u;c&&(u=new Rg(r,a));for(let[l,d]of n.structIterator()){let p=d.getMergedTraits(),g=p.httpPayload?p.xmlName??d.getName():d.getMemberTraits().xmlName??l;c&&u.mark(g),r[g]!=null&&(a[l]=this.readSchema(d,r[g]))}return c&&u.writeUnknown(),a}if(n.isDocumentSchema())return r;throw new Error(`@aws-sdk/core/protocols - xml deserializer unhandled schema type for ${n.getName(!0)}`)}return n.isListSchema()?[]:n.isMapSchema()||n.isStructSchema()?{}:this.stringDeserializer.read(n,r)}parseXml(e){if(e.length){let r;try{r=(0,hfe.parseXML)(e)}catch(i){throw i&&typeof i=="object"&&Object.defineProperty(i,"$responseBodyText",{value:e}),i}let n="#text",s=Object.keys(r)[0],o=r[s];return o[n]&&(o[s]=o[n],delete o[n]),(0,Efe.getValueFromTextNode)(o)}return{}}}});var yy,_fe,MA,Cfe,Rfe,LA,vfe=_(()=>{yy=require("@smithy/core/protocols"),_fe=require("@smithy/core/schema"),MA=require("@smithy/core/serde"),Cfe=require("@smithy/smithy-client"),Rfe=require("@smithy/util-base64");Yu();LA=class extends bn{settings;buffer;constructor(e){super(),this.settings=e}write(e,r,n=""){this.buffer===void 0&&(this.buffer="");let s=_fe.NormalizedSchema.of(e);if(n&&!n.endsWith(".")&&(n+="."),s.isBlobSchema())(typeof r=="string"||r instanceof Uint8Array)&&(this.writeKey(n),this.writeValue((this.serdeContext?.base64Encoder??Rfe.toBase64)(r)));else if(s.isBooleanSchema()||s.isNumericSchema()||s.isStringSchema())r!=null?(this.writeKey(n),this.writeValue(String(r))):s.isIdempotencyToken()&&(this.writeKey(n),this.writeValue((0,MA.generateIdempotencyToken)()));else if(s.isBigIntegerSchema())r!=null&&(this.writeKey(n),this.writeValue(String(r)));else if(s.isBigDecimalSchema())r!=null&&(this.writeKey(n),this.writeValue(r instanceof MA.NumericValue?r.string:String(r)));else if(s.isTimestampSchema()){if(r instanceof Date)switch(this.writeKey(n),(0,yy.determineTimestampFormat)(s,this.settings)){case 5:this.writeValue(r.toISOString().replace(".000Z","Z"));break;case 6:this.writeValue((0,Cfe.dateToUtcString)(r));break;case 7:this.writeValue(String(r.getTime()/1e3));break}}else if(s.isDocumentSchema())Array.isArray(r)?this.write(79,r,n):r instanceof Date?this.write(4,r,n):r instanceof Uint8Array?this.write(21,r,n):r&&typeof r=="object"?this.write(143,r,n):(this.writeKey(n),this.writeValue(String(r)));else if(s.isListSchema()){if(Array.isArray(r))if(r.length===0)this.settings.serializeEmptyLists&&(this.writeKey(n),this.writeValue(""));else{let o=s.getValueSchema(),i=this.settings.flattenLists||s.getMergedTraits().xmlFlattened,a=1;for(let c of r){if(c==null)continue;let u=o.getMergedTraits(),l=this.getKey("member",u.xmlName,u.ec2QueryName),d=i?`${n}${a}`:`${n}${l}.${a}`;this.write(o,c,d),++a}}}else if(s.isMapSchema()){if(r&&typeof r=="object"){let o=s.getKeySchema(),i=s.getValueSchema(),a=s.getMergedTraits().xmlFlattened,c=1;for(let[u,l]of Object.entries(r)){if(l==null)continue;let d=o.getMergedTraits(),p=this.getKey("key",d.xmlName,d.ec2QueryName),g=a?`${n}${c}.${p}`:`${n}entry.${c}.${p}`,y=i.getMergedTraits(),R=this.getKey("value",y.xmlName,y.ec2QueryName),D=a?`${n}${c}.${R}`:`${n}entry.${c}.${R}`;this.write(o,u,g),this.write(i,l,D),++c}}}else if(s.isStructSchema()){if(r&&typeof r=="object"){let o=!1;for(let[i,a]of s.structIterator()){if(r[i]==null&&!a.isIdempotencyToken())continue;let c=a.getMergedTraits(),u=this.getKey(i,c.xmlName,c.ec2QueryName,"struct"),l=`${n}${u}`;this.write(a,r[i],l),o=!0}if(!o&&s.isUnionSchema()){let{$unknown:i}=r;if(Array.isArray(i)){let[a,c]=i,u=`${n}${a}`;this.write(15,c,u)}}}}else if(!s.isUnitSchema())throw new Error(`@aws-sdk/core/protocols - QuerySerializer unrecognized schema type ${s.getName(!0)}`)}flush(){if(this.buffer===void 0)throw new Error("@aws-sdk/core/protocols - QuerySerializer cannot flush with nothing written to buffer.");let e=this.buffer;return delete this.buffer,e}getKey(e,r,n,s){let{ec2:o,capitalizeKeys:i}=this.settings;if(o&&n)return n;let a=r??e;return i&&s==="struct"?a[0].toUpperCase()+a.slice(1):a}writeKey(e){e.endsWith(".")&&(e=e.slice(0,e.length-1)),this.buffer+=`&${(0,yy.extendedEncodeURIComponent)(e)}=`}writeValue(e){this.buffer+=(0,yy.extendedEncodeURIComponent)(e)}}});var _y,Hd,Cy,_V=_(()=>{_y=require("@smithy/core/protocols"),Hd=require("@smithy/core/schema");Cg();NA();vfe();Cy=class extends _y.RpcProtocol{options;serializer;deserializer;mixin=new Fo;constructor(e){super({defaultNamespace:e.defaultNamespace}),this.options=e;let r={timestampFormat:{useTrait:!0,default:5},httpBindings:!1,xmlNamespace:e.xmlNamespace,serviceNamespace:e.defaultNamespace,serializeEmptyLists:!0};this.serializer=new LA(r),this.deserializer=new Vd(r)}getShapeId(){return"aws.protocols#awsQuery"}setSerdeContext(e){this.serializer.setSerdeContext(e),this.deserializer.setSerdeContext(e)}getPayloadCodec(){throw new Error("AWSQuery protocol has no payload codec.")}async serializeRequest(e,r,n){let s=await super.serializeRequest(e,r,n);s.path.endsWith("/")||(s.path+="/"),Object.assign(s.headers,{"content-type":"application/x-www-form-urlencoded"}),((0,Hd.deref)(e.input)==="unit"||!s.body)&&(s.body="");let o=e.name.split("#")[1]??e.name;return s.body=`Action=${o}&Version=${this.options.version}`+s.body,s.body.endsWith("&")&&(s.body=s.body.slice(-1)),s}async deserializeResponse(e,r,n){let s=this.deserializer,o=Hd.NormalizedSchema.of(e.output),i={};if(n.statusCode>=300){let d=await(0,_y.collectBody)(n.body,r);d.byteLength>0&&Object.assign(i,await s.read(15,d)),await this.handleError(e,r,n,i,this.deserializeMetadata(n))}for(let d in n.headers){let p=n.headers[d];delete n.headers[d],n.headers[d.toLowerCase()]=p}let a=e.name.split("#")[1]??e.name,c=o.isStructSchema()&&this.useNestedResult()?a+"Result":void 0,u=await(0,_y.collectBody)(n.body,r);return u.byteLength>0&&Object.assign(i,await s.read(o,u,c)),{$metadata:this.deserializeMetadata(n),...i}}useNestedResult(){return!0}async handleError(e,r,n,s,o){let i=this.loadQueryErrorCode(n,s)??"Unknown",a=this.loadQueryError(s)??{},c=this.loadQueryErrorMessage(s);a.message=c,a.Error={Type:a.Type,Code:a.Code,Message:c};let{errorSchema:u,errorMetadata:l}=await this.mixin.getErrorSchemaOrThrowBaseException(i,this.options.defaultNamespace,n,a,o,this.mixin.findQueryCompatibleError),d=Hd.NormalizedSchema.of(u),p=Hd.TypeRegistry.for(u[1]).getErrorCtor(u)??Error,g=new p(c),y={Type:a.Error.Type,Code:a.Error.Code,Error:a.Error};for(let[R,D]of d.structIterator()){let B=D.getMergedTraits().xmlName??R,M=a[B]??s[B];y[R]=this.deserializer.readSchema(D,M)}throw this.mixin.decorateServiceException(Object.assign(g,l,{$fault:d.getMergedTraits().error,message:c},y),s)}loadQueryErrorCode(e,r){let n=(r.Errors?.[0]?.Error??r.Errors?.Error??r.Error)?.Code;if(n!==void 0)return n;if(e.statusCode==404)return"NotFound"}loadQueryError(e){return e.Errors?.[0]?.Error??e.Errors?.Error??e.Error}loadQueryErrorMessage(e){let r=this.loadQueryError(e);return r?.message??r?.Message??e.message??e.Message??"Unknown"}getDefaultContentType(){return"application/x-www-form-urlencoded"}}});var CV,xfe=_(()=>{_V();CV=class extends Cy{options;constructor(e){super(e),this.options=e;let r={capitalizeKeys:!0,flattenLists:!0,serializeEmptyLists:!1,ec2:!0};Object.assign(this.serializer.settings,r)}useNestedResult(){return!1}}});var Pfe,bfe,Ife,Rut,RV,vV=_(()=>{Pfe=O(kA()),bfe=require("@smithy/smithy-client");uV();Ife=(t,e)=>PA(t,e).then(r=>{if(r.length){let n;try{n=(0,Pfe.parseXML)(r)}catch(a){throw a&&typeof a=="object"&&Object.defineProperty(a,"$responseBodyText",{value:r}),a}let s="#text",o=Object.keys(n)[0],i=n[o];return i[s]&&(i[o]=i[s],delete i[s]),(0,bfe.getValueFromTextNode)(i)}return{}}),Rut=async(t,e)=>{let r=await Ife(t,e);return r.Error&&(r.Error.message=r.Error.message??r.Error.Message),r},RV=(t,e)=>{if(e?.Error?.Code!==void 0)return e.Error.Code;if(e?.Code!==void 0)return e.Code;if(t.statusCode==404)return"NotFound"}});var Xn,Afe,FA,BA,xV,UA,Ry,PV=_(()=>{Xn=O(kA()),Afe=require("@smithy/core/protocols"),FA=require("@smithy/core/schema"),BA=require("@smithy/core/serde"),xV=require("@smithy/smithy-client"),UA=require("@smithy/util-base64");Yu();Ry=class extends bn{settings;stringBuffer;byteBuffer;buffer;constructor(e){super(),this.settings=e}write(e,r){let n=FA.NormalizedSchema.of(e);if(n.isStringSchema()&&typeof r=="string")this.stringBuffer=r;else if(n.isBlobSchema())this.byteBuffer="byteLength"in r?r:(this.serdeContext?.base64Decoder??UA.fromBase64)(r);else{this.buffer=this.writeStruct(n,r,void 0);let s=n.getMergedTraits();s.httpPayload&&!s.xmlName&&this.buffer.withName(n.getName())}}flush(){if(this.byteBuffer!==void 0){let r=this.byteBuffer;return delete this.byteBuffer,r}if(this.stringBuffer!==void 0){let r=this.stringBuffer;return delete this.stringBuffer,r}let e=this.buffer;return this.settings.xmlNamespace&&(e?.attributes?.xmlns||e.addAttribute("xmlns",this.settings.xmlNamespace)),delete this.buffer,e.toString()}writeStruct(e,r,n){let s=e.getMergedTraits(),o=e.isMemberSchema()&&!s.httpPayload?e.getMemberTraits().xmlName??e.getMemberName():s.xmlName??e.getName();if(!o||!e.isStructSchema())throw new Error(`@aws-sdk/core/protocols - xml serializer, cannot write struct with empty name or non-struct, schema=${e.getName(!0)}.`);let i=Xn.XmlNode.of(o),[a,c]=this.getXmlnsAttribute(e,n);for(let[l,d]of e.structIterator()){let p=r[l];if(p!=null||d.isIdempotencyToken()){if(d.getMergedTraits().xmlAttribute){i.addAttribute(d.getMergedTraits().xmlName??l,this.writeSimple(d,p));continue}if(d.isListSchema())this.writeList(d,p,i,c);else if(d.isMapSchema())this.writeMap(d,p,i,c);else if(d.isStructSchema())i.addChildNode(this.writeStruct(d,p,c));else{let g=Xn.XmlNode.of(d.getMergedTraits().xmlName??d.getMemberName());this.writeSimpleInto(d,p,g,c),i.addChildNode(g)}}}let{$unknown:u}=r;if(u&&e.isUnionSchema()&&Array.isArray(u)&&Object.keys(r).length===1){let[l,d]=u,p=Xn.XmlNode.of(l);if(typeof d!="string")if(r instanceof Xn.XmlNode||r instanceof Xn.XmlText)i.addChildNode(r);else throw new Error("@aws-sdk - $unknown union member in XML requires value of type string, @aws-sdk/xml-builder::XmlNode or XmlText.");this.writeSimpleInto(0,d,p,c),i.addChildNode(p)}return c&&i.addAttribute(a,c),i}writeList(e,r,n,s){if(!e.isMemberSchema())throw new Error(`@aws-sdk/core/protocols - xml serializer, cannot write non-member list: ${e.getName(!0)}`);let o=e.getMergedTraits(),i=e.getValueSchema(),a=i.getMergedTraits(),c=!!a.sparse,u=!!o.xmlFlattened,[l,d]=this.getXmlnsAttribute(e,s),p=(g,y)=>{if(i.isListSchema())this.writeList(i,Array.isArray(y)?y:[y],g,d);else if(i.isMapSchema())this.writeMap(i,y,g,d);else if(i.isStructSchema()){let R=this.writeStruct(i,y,d);g.addChildNode(R.withName(u?o.xmlName??e.getMemberName():a.xmlName??"member"))}else{let R=Xn.XmlNode.of(u?o.xmlName??e.getMemberName():a.xmlName??"member");this.writeSimpleInto(i,y,R,d),g.addChildNode(R)}};if(u)for(let g of r)(c||g!=null)&&p(n,g);else{let g=Xn.XmlNode.of(o.xmlName??e.getMemberName());d&&g.addAttribute(l,d);for(let y of r)(c||y!=null)&&p(g,y);n.addChildNode(g)}}writeMap(e,r,n,s,o=!1){if(!e.isMemberSchema())throw new Error(`@aws-sdk/core/protocols - xml serializer, cannot write non-member map: ${e.getName(!0)}`);let i=e.getMergedTraits(),a=e.getKeySchema(),u=a.getMergedTraits().xmlName??"key",l=e.getValueSchema(),d=l.getMergedTraits(),p=d.xmlName??"value",g=!!d.sparse,y=!!i.xmlFlattened,[R,D]=this.getXmlnsAttribute(e,s),B=(M,ge,Y)=>{let Te=Xn.XmlNode.of(u,ge),[Ht,Tt]=this.getXmlnsAttribute(a,D);Tt&&Te.addAttribute(Ht,Tt),M.addChildNode(Te);let Ne=Xn.XmlNode.of(p);l.isListSchema()?this.writeList(l,Y,Ne,D):l.isMapSchema()?this.writeMap(l,Y,Ne,D,!0):l.isStructSchema()?Ne=this.writeStruct(l,Y,D):this.writeSimpleInto(l,Y,Ne,D),M.addChildNode(Ne)};if(y){for(let[M,ge]of Object.entries(r))if(g||ge!=null){let Y=Xn.XmlNode.of(i.xmlName??e.getMemberName());B(Y,M,ge),n.addChildNode(Y)}}else{let M;o||(M=Xn.XmlNode.of(i.xmlName??e.getMemberName()),D&&M.addAttribute(R,D),n.addChildNode(M));for(let[ge,Y]of Object.entries(r))if(g||Y!=null){let Te=Xn.XmlNode.of("entry");B(Te,ge,Y),(o?n:M).addChildNode(Te)}}}writeSimple(e,r){if(r===null)throw new Error("@aws-sdk/core/protocols - (XML serializer) cannot write null value.");let n=FA.NormalizedSchema.of(e),s=null;if(r&&typeof r=="object")if(n.isBlobSchema())s=(this.serdeContext?.base64Encoder??UA.toBase64)(r);else if(n.isTimestampSchema()&&r instanceof Date)switch((0,Afe.determineTimestampFormat)(n,this.settings)){case 5:s=r.toISOString().replace(".000Z","Z");break;case 6:s=(0,xV.dateToUtcString)(r);break;case 7:s=String(r.getTime()/1e3);break;default:console.warn("Missing timestamp format, using http date",r),s=(0,xV.dateToUtcString)(r);break}else{if(n.isBigDecimalSchema()&&r)return r instanceof BA.NumericValue?r.string:String(r);throw n.isMapSchema()||n.isListSchema()?new Error("@aws-sdk/core/protocols - xml serializer, cannot call _write() on List/Map schema, call writeList or writeMap() instead."):new Error(`@aws-sdk/core/protocols - xml serializer, unhandled schema type for object value and schema: ${n.getName(!0)}`)}if((n.isBooleanSchema()||n.isNumericSchema()||n.isBigIntegerSchema()||n.isBigDecimalSchema())&&(s=String(r)),n.isStringSchema()&&(r===void 0&&n.isIdempotencyToken()?s=(0,BA.generateIdempotencyToken)():s=String(r)),s===null)throw new Error(`Unhandled schema-value pair ${n.getName(!0)}=${r}`);return s}writeSimpleInto(e,r,n,s){let o=this.writeSimple(e,r),i=FA.NormalizedSchema.of(e),a=new Xn.XmlText(o),[c,u]=this.getXmlnsAttribute(i,s);u&&n.addAttribute(c,u),n.addChildNode(a)}getXmlnsAttribute(e,r){let n=e.getMergedTraits(),[s,o]=n.xmlNamespace??[];return o&&o!==r?[s?`xmlns:${s}`:"xmlns",o]:[void 0,void 0]}}});var vy,bV=_(()=>{Yu();NA();PV();vy=class extends bn{settings;constructor(e){super(),this.settings=e}createSerializer(){let e=new Ry(this.settings);return e.setSerdeContext(this.serdeContext),e}createDeserializer(){let e=new Vd(this.settings);return e.setSerdeContext(this.serdeContext),e}}});var bg,xy,IV,Tfe=_(()=>{bg=require("@smithy/core/protocols"),xy=require("@smithy/core/schema");Cg();vV();bV();IV=class extends bg.HttpBindingProtocol{codec;serializer;deserializer;mixin=new Fo;constructor(e){super(e);let r={timestampFormat:{useTrait:!0,default:5},httpBindings:!0,xmlNamespace:e.xmlNamespace,serviceNamespace:e.defaultNamespace};this.codec=new vy(r),this.serializer=new bg.HttpInterceptingShapeSerializer(this.codec.createSerializer(),r),this.deserializer=new bg.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(),r)}getPayloadCodec(){return this.codec}getShapeId(){return"aws.protocols#restXml"}async serializeRequest(e,r,n){let s=await super.serializeRequest(e,r,n),o=xy.NormalizedSchema.of(e.input);if(!s.headers["content-type"]){let i=this.mixin.resolveRestContentType(this.getDefaultContentType(),o);i&&(s.headers["content-type"]=i)}return typeof s.body=="string"&&s.headers["content-type"]===this.getDefaultContentType()&&!s.body.startsWith("'+s.body),s}async deserializeResponse(e,r,n){return super.deserializeResponse(e,r,n)}async handleError(e,r,n,s,o){let i=RV(n,s)??"Unknown";if(s.Error&&typeof s.Error=="object")for(let y of Object.keys(s.Error))s[y]=s.Error[y],y.toLowerCase()==="message"&&(s.message=s.Error[y]);s.RequestId&&!o.requestId&&(o.requestId=s.RequestId);let{errorSchema:a,errorMetadata:c}=await this.mixin.getErrorSchemaOrThrowBaseException(i,this.options.defaultNamespace,n,s,o),u=xy.NormalizedSchema.of(a),l=s.Error?.message??s.Error?.Message??s.message??s.Message??"Unknown",d=xy.TypeRegistry.for(a[1]).getErrorCtor(a)??Error,p=new d(l);await this.deserializeHttpMessage(a,r,n,s);let g={};for(let[y,R]of u.structIterator()){let D=R.getMergedTraits().xmlName??y,B=s.Error?.[D]??s[D];g[y]=this.codec.createDeserializer().readSchema(R,B)}throw this.mixin.decorateServiceException(Object.assign(p,c,{$fault:u.getMergedTraits().error,message:l},g),s)}getDefaultContentType(){return"application/xml"}hasUnstructuredPayloadBinding(e){for(let[,r]of e.structIterator())if(r.getMergedTraits().httpPayload)return!(r.isStructSchema()||r.isMapSchema()||r.isListSchema());return!1}}});var wfe=_(()=>{Qge();Xge();lfe();dfe();wA();pfe();TA();lV();pV();gfe();hy();xfe();_V();Tfe();bV();NA();PV();vV()});var Dfe={};wt(Dfe,{AWSSDKSigV4Signer:()=>Mge,AwsEc2QueryProtocol:()=>CV,AwsJson1_0Protocol:()=>mV,AwsJson1_1Protocol:()=>gV,AwsJsonRpcProtocol:()=>jd,AwsQueryProtocol:()=>Cy,AwsRestJsonProtocol:()=>fV,AwsRestXmlProtocol:()=>IV,AwsSdkSigV4ASigner:()=>RA,AwsSdkSigV4Signer:()=>$d,AwsSmithyRpcV2CborProtocol:()=>aV,JsonCodec:()=>Gd,JsonShapeDeserializer:()=>Sy,JsonShapeSerializer:()=>Ey,NODE_AUTH_SCHEME_PREFERENCE_OPTIONS:()=>iut,NODE_SIGV4A_CONFIG_OPTIONS:()=>cut,XmlCodec:()=>vy,XmlShapeDeserializer:()=>Vd,XmlShapeSerializer:()=>Ry,_toBool:()=>mut,_toNum:()=>gut,_toStr:()=>put,awsExpectUnion:()=>hut,emitWarningIfUnsupportedVersion:()=>nut,getBearerTokenEnvKey:()=>rV,loadRestJsonErrorCode:()=>fy,loadRestXmlErrorCode:()=>RV,parseJsonBody:()=>bA,parseJsonErrorBody:()=>fut,parseXmlBody:()=>Ife,parseXmlErrorBody:()=>Rut,resolveAWSSDKSigV4Config:()=>uut,resolveAwsSdkSigV4AConfig:()=>aut,resolveAwsSdkSigV4Config:()=>Hge,setCredentialFeature:()=>K4,setFeature:()=>sut,setTokenFeature:()=>out,state:()=>W4,validateSigningProperties:()=>my});var Ofe=_(()=>{Q4();Kge();wfe()});var jfe=b(Ag=>{"use strict";var Ig=class t{value;constructor(e){typeof e=="object"&&"N"in e?this.value=String(e.N):this.value=String(e);let r=typeof e.valueOf()=="number"?e.valueOf():0;if(r>Number.MAX_SAFE_INTEGER||r{if(t===void 0)throw new Error("Pass options.removeUndefinedValues=true to remove undefined values from map/array/set.");if(t===null&&typeof t=="object")return qA();if(Array.isArray(t))return vut(t,e);if(t?.constructor?.name==="Set")return xut(t,e);if(t?.constructor?.name==="Map")return Put(t,e);if(t?.constructor?.name==="Object"||!t.constructor&&typeof t=="object")return kfe(t,e);if(Gfe(t))return t.length===0&&e?.convertEmptyValues?qA():Bfe(t);if(typeof t=="boolean"||t?.constructor?.name==="Boolean")return{BOOL:t.valueOf()};if(typeof t=="number"||t?.constructor?.name==="Number")return $fe(t,e);if(t instanceof Ig)return t.toAttributeValue();if(typeof t=="bigint")return qfe(t);if(typeof t=="string"||t?.constructor?.name==="String")return t.length===0&&e?.convertEmptyValues?qA():Ufe(t);if(e?.convertClassInstanceToMap&&typeof t=="object")return kfe(t,e);throw new Error(`Unsupported type passed: ${t}. Pass options.convertClassInstanceToMap=true to marshall typeof object as map attribute.`)},vut=(t,e)=>({L:t.filter(r=>typeof r!="function"&&(!e?.removeUndefinedValues||e?.removeUndefinedValues&&r!==void 0)).map(r=>by(r,e))}),xut=(t,e)=>{let r=e?.removeUndefinedValues?new Set([...t].filter(s=>s!==void 0)):t;if(!e?.removeUndefinedValues&&r.has(void 0))throw new Error("Pass options.removeUndefinedValues=true to remove undefined values from map/array/set.");if(r.size===0){if(e?.convertEmptyValues)return qA();throw new Error("Pass a non-empty set, or options.convertEmptyValues=true.")}let n=r.values().next().value;if(n instanceof Ig)return{NS:Array.from(r).map(s=>s.toString())};if(typeof n=="number")return{NS:Array.from(r).map(s=>$fe(s,e)).map(s=>s.N)};if(typeof n=="bigint")return{NS:Array.from(r).map(qfe).map(s=>s.N)};if(typeof n=="string")return{SS:Array.from(r).map(Ufe).map(s=>s.S)};if(Gfe(n))return{BS:Array.from(r).map(Bfe).map(s=>s.B)};throw new Error("Only Number Set (NS), Binary Set (BS) or String Set (SS) are allowed.")},Put=(t,e)=>({M:(r=>{let n={};for(let[s,o]of r)typeof o!="function"&&(o!==void 0||!e?.removeUndefinedValues)&&(n[s]=by(o,e));return n})(t)}),kfe=(t,e)=>({M:(r=>{let n={};for(let s in r){let o=r[s];typeof o!="function"&&(o!==void 0||!e?.removeUndefinedValues)&&(n[s]=by(o,e))}return n})(t)}),qA=()=>({NULL:!0}),Bfe=t=>({B:t}),Ufe=t=>({S:t.toString()}),qfe=t=>({N:t.toString()}),Nfe=t=>{throw new Error(`${t} Use NumberValue from @aws-sdk/lib-dynamodb.`)},$fe=(t,e)=>{if([Number.NaN,Number.POSITIVE_INFINITY,Number.NEGATIVE_INFINITY].map(r=>r.toString()).includes(t.toString()))throw new Error(`Special numeric value ${t.toString()} is not allowed`);return e?.allowImpreciseNumbers||(Number(t)>Number.MAX_SAFE_INTEGER?Nfe(`Number ${t.toString()} is greater than Number.MAX_SAFE_INTEGER.`):Number(t){let e=["ArrayBuffer","Blob","Buffer","DataView","File","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array"];return t?.constructor?e.includes(t.constructor.name):!1},Py=(t,e)=>{for(let[r,n]of Object.entries(t))if(n!==void 0)switch(r){case"NULL":return null;case"BOOL":return!!n;case"N":return Lfe(n,e);case"B":return Ffe(n);case"S":return Mfe(n);case"L":return but(n,e);case"M":return Iut(n,e);case"NS":return new Set(n.map(s=>Lfe(s,e)));case"BS":return new Set(n.map(Ffe));case"SS":return new Set(n.map(Mfe));default:throw new Error(`Unsupported type passed: ${r}`)}throw new Error(`No value defined: ${JSON.stringify(t)}`)},Lfe=(t,e)=>{if(typeof e?.wrapNumbers=="function")return e?.wrapNumbers(t);if(e?.wrapNumbers)return Ig.from(t);let r=Number(t),n=[Number.POSITIVE_INFINITY,Number.NEGATIVE_INFINITY];if((r>Number.MAX_SAFE_INTEGER||rt,Ffe=t=>t,but=(t,e)=>t.map(r=>Py(r,e)),Iut=(t,e)=>Object.entries(t).reduce((r,[n,s])=>(r[n]=Py(s,e),r),{});function Aut(t,e){let r=by(t,e),[n,s]=Object.entries(r)[0];switch(n){case"M":case"L":return e?.convertTopLevelContainer?r:s;case"SS":case"NS":case"BS":case"S":case"N":case"B":case"NULL":case"BOOL":case"$unknown":default:return r}}var Tut=(t,e)=>e?.convertWithoutMapWrapper?Py(t,e):Py({M:t},e);Ag.NumberValueImpl=Ig;Ag.convertToAttr=by;Ag.convertToNative=Py;Ag.marshall=Aut;Ag.unmarshall=Tut});var DV=b(dr=>{"use strict";var ZA=require("@smithy/smithy-client"),wut=(Ofe(),ue(Dfe)),TV=jfe(),Ks=CA(),Hfe=require("@smithy/core"),Iy=null,we={},Tc=[],Vfe="*",$A=(t,e,r)=>{if(t!==void 0){if(r==null)return e(t);{let n=Object.keys(r),s=n.length===1&&n[0]===Vfe,o=n.length>=1&&!s,i=n.length===0;if(o)return wV(t,e,r);if(i)return Dut(t,e,Iy);if(s)return Object.entries(t??{}).reduce((a,[c,u])=>(typeof u!="function"&&(a[c]=$A(u,e,r[Vfe])),a),Array.isArray(t)?[]:{})}}},wV=(t,e,r)=>{let n;if(Array.isArray(t))n=t.filter(s=>typeof s!="function");else{n={};for(let[s,o]of Object.entries(t))typeof o!="function"&&(n[s]=o)}for(let[s,o]of Object.entries(r)){if(typeof t[s]=="function")continue;let i=$A(t[s],e,o);i!==void 0&&typeof i!="function"&&(n[s]=i)}return n},Dut=(t,e,r)=>Array.isArray(t)?t.filter(n=>typeof n!="function").map(n=>$A(n,e,r)):Object.entries(t).reduce((n,[s,o])=>{if(typeof o=="function")return n;let i=$A(o,e,r);return i!==void 0&&typeof i!="function"&&(n[s]=i),n},{}),Out=(t,e,r)=>wV(t,s=>TV.marshall(s,r),e),kut=(t,e,r)=>wV(t,s=>TV.unmarshall(s,r),e),In=class extends ZA.Command{addMarshallingMiddleware(e){let{marshallOptions:r={},unmarshallOptions:n={}}=e.translateConfig||{};r.convertTopLevelContainer=r.convertTopLevelContainer??!0,n.convertWithoutMapWrapper=n.convertWithoutMapWrapper??!0,this.clientCommand.middlewareStack.addRelativeTo((s,o)=>async i=>(wut.setFeature(o,"DDB_MAPPER","d"),s({...i,input:Out(i.input,this.inputKeyNodes,r)})),{name:"DocumentMarshall",relation:"before",toMiddleware:"serializerMiddleware",override:!0}),this.clientCommand.middlewareStack.addRelativeTo((s,o)=>async i=>{let a=await s(i);return a.output=kut(a.output,this.outputKeyNodes,n),a},{name:"DocumentUnmarshall",relation:"before",toMiddleware:"deserializerMiddleware",override:!0})}},GA=class extends In{input;inputKeyNodes={Statements:{"*":{Parameters:Tc}}};outputKeyNodes={Responses:{"*":{Error:{Item:we},Item:we}}};clientCommand;middlewareStack;constructor(e){super(),this.input=e,this.clientCommand=new Ks.BatchExecuteStatementCommand(this.input),this.middlewareStack=this.clientCommand.middlewareStack}resolveMiddleware(e,r,n){this.addMarshallingMiddleware(r);let s=e.concat(this.middlewareStack),o=this.clientCommand.resolveMiddleware(s,r,n);return async()=>o(this.clientCommand)}},jA=class extends In{input;inputKeyNodes={RequestItems:{"*":{Keys:{"*":we}}}};outputKeyNodes={Responses:{"*":{"*":we}},UnprocessedKeys:{"*":{Keys:{"*":we}}}};clientCommand;middlewareStack;constructor(e){super(),this.input=e,this.clientCommand=new Ks.BatchGetItemCommand(this.input),this.middlewareStack=this.clientCommand.middlewareStack}resolveMiddleware(e,r,n){this.addMarshallingMiddleware(r);let s=e.concat(this.middlewareStack),o=this.clientCommand.resolveMiddleware(s,r,n);return async()=>o(this.clientCommand)}},VA=class extends In{input;inputKeyNodes={RequestItems:{"*":{"*":{PutRequest:{Item:we},DeleteRequest:{Key:we}}}}};outputKeyNodes={UnprocessedItems:{"*":{"*":{PutRequest:{Item:we},DeleteRequest:{Key:we}}}},ItemCollectionMetrics:{"*":{"*":{ItemCollectionKey:we}}}};clientCommand;middlewareStack;constructor(e){super(),this.input=e,this.clientCommand=new Ks.BatchWriteItemCommand(this.input),this.middlewareStack=this.clientCommand.middlewareStack}resolveMiddleware(e,r,n){this.addMarshallingMiddleware(r);let s=e.concat(this.middlewareStack),o=this.clientCommand.resolveMiddleware(s,r,n);return async()=>o(this.clientCommand)}},HA=class extends In{input;inputKeyNodes={Key:we,Expected:{"*":{Value:Iy,AttributeValueList:Tc}},ExpressionAttributeValues:we};outputKeyNodes={Attributes:we,ItemCollectionMetrics:{ItemCollectionKey:we}};clientCommand;middlewareStack;constructor(e){super(),this.input=e,this.clientCommand=new Ks.DeleteItemCommand(this.input),this.middlewareStack=this.clientCommand.middlewareStack}resolveMiddleware(e,r,n){this.addMarshallingMiddleware(r);let s=e.concat(this.middlewareStack),o=this.clientCommand.resolveMiddleware(s,r,n);return async()=>o(this.clientCommand)}},zA=class extends In{input;inputKeyNodes={Parameters:Tc};outputKeyNodes={Items:{"*":we},LastEvaluatedKey:we};clientCommand;middlewareStack;constructor(e){super(),this.input=e,this.clientCommand=new Ks.ExecuteStatementCommand(this.input),this.middlewareStack=this.clientCommand.middlewareStack}resolveMiddleware(e,r,n){this.addMarshallingMiddleware(r);let s=e.concat(this.middlewareStack),o=this.clientCommand.resolveMiddleware(s,r,n);return async()=>o(this.clientCommand)}},WA=class extends In{input;inputKeyNodes={TransactStatements:{"*":{Parameters:Tc}}};outputKeyNodes={Responses:{"*":{Item:we}}};clientCommand;middlewareStack;constructor(e){super(),this.input=e,this.clientCommand=new Ks.ExecuteTransactionCommand(this.input),this.middlewareStack=this.clientCommand.middlewareStack}resolveMiddleware(e,r,n){this.addMarshallingMiddleware(r);let s=e.concat(this.middlewareStack),o=this.clientCommand.resolveMiddleware(s,r,n);return async()=>o(this.clientCommand)}},KA=class extends In{input;inputKeyNodes={Key:we};outputKeyNodes={Item:we};clientCommand;middlewareStack;constructor(e){super(),this.input=e,this.clientCommand=new Ks.GetItemCommand(this.input),this.middlewareStack=this.clientCommand.middlewareStack}resolveMiddleware(e,r,n){this.addMarshallingMiddleware(r);let s=e.concat(this.middlewareStack),o=this.clientCommand.resolveMiddleware(s,r,n);return async()=>o(this.clientCommand)}},QA=class extends In{input;inputKeyNodes={Item:we,Expected:{"*":{Value:Iy,AttributeValueList:Tc}},ExpressionAttributeValues:we};outputKeyNodes={Attributes:we,ItemCollectionMetrics:{ItemCollectionKey:we}};clientCommand;middlewareStack;constructor(e){super(),this.input=e,this.clientCommand=new Ks.PutItemCommand(this.input),this.middlewareStack=this.clientCommand.middlewareStack}resolveMiddleware(e,r,n){this.addMarshallingMiddleware(r);let s=e.concat(this.middlewareStack),o=this.clientCommand.resolveMiddleware(s,r,n);return async()=>o(this.clientCommand)}},Ay=class extends In{input;inputKeyNodes={KeyConditions:{"*":{AttributeValueList:Tc}},QueryFilter:{"*":{AttributeValueList:Tc}},ExclusiveStartKey:we,ExpressionAttributeValues:we};outputKeyNodes={Items:{"*":we},LastEvaluatedKey:we};clientCommand;middlewareStack;constructor(e){super(),this.input=e,this.clientCommand=new Ks.QueryCommand(this.input),this.middlewareStack=this.clientCommand.middlewareStack}resolveMiddleware(e,r,n){this.addMarshallingMiddleware(r);let s=e.concat(this.middlewareStack),o=this.clientCommand.resolveMiddleware(s,r,n);return async()=>o(this.clientCommand)}},Ty=class extends In{input;inputKeyNodes={ScanFilter:{"*":{AttributeValueList:Tc}},ExclusiveStartKey:we,ExpressionAttributeValues:we};outputKeyNodes={Items:{"*":we},LastEvaluatedKey:we};clientCommand;middlewareStack;constructor(e){super(),this.input=e,this.clientCommand=new Ks.ScanCommand(this.input),this.middlewareStack=this.clientCommand.middlewareStack}resolveMiddleware(e,r,n){this.addMarshallingMiddleware(r);let s=e.concat(this.middlewareStack),o=this.clientCommand.resolveMiddleware(s,r,n);return async()=>o(this.clientCommand)}},XA=class extends In{input;inputKeyNodes={TransactItems:{"*":{Get:{Key:we}}}};outputKeyNodes={Responses:{"*":{Item:we}}};clientCommand;middlewareStack;constructor(e){super(),this.input=e,this.clientCommand=new Ks.TransactGetItemsCommand(this.input),this.middlewareStack=this.clientCommand.middlewareStack}resolveMiddleware(e,r,n){this.addMarshallingMiddleware(r);let s=e.concat(this.middlewareStack),o=this.clientCommand.resolveMiddleware(s,r,n);return async()=>o(this.clientCommand)}},JA=class extends In{input;inputKeyNodes={TransactItems:{"*":{ConditionCheck:{Key:we,ExpressionAttributeValues:we},Put:{Item:we,ExpressionAttributeValues:we},Delete:{Key:we,ExpressionAttributeValues:we},Update:{Key:we,ExpressionAttributeValues:we}}}};outputKeyNodes={ItemCollectionMetrics:{"*":{"*":{ItemCollectionKey:we}}}};clientCommand;middlewareStack;constructor(e){super(),this.input=e,this.clientCommand=new Ks.TransactWriteItemsCommand(this.input),this.middlewareStack=this.clientCommand.middlewareStack}resolveMiddleware(e,r,n){this.addMarshallingMiddleware(r);let s=e.concat(this.middlewareStack),o=this.clientCommand.resolveMiddleware(s,r,n);return async()=>o(this.clientCommand)}},YA=class extends In{input;inputKeyNodes={Key:we,AttributeUpdates:{"*":{Value:Iy}},Expected:{"*":{Value:Iy,AttributeValueList:Tc}},ExpressionAttributeValues:we};outputKeyNodes={Attributes:we,ItemCollectionMetrics:{ItemCollectionKey:we}};clientCommand;middlewareStack;constructor(e){super(),this.input=e,this.clientCommand=new Ks.UpdateItemCommand(this.input),this.middlewareStack=this.clientCommand.middlewareStack}resolveMiddleware(e,r,n){this.addMarshallingMiddleware(r);let s=e.concat(this.middlewareStack),o=this.clientCommand.resolveMiddleware(s,r,n);return async()=>o(this.clientCommand)}},Tg=class t extends ZA.Client{config;constructor(e,r){if(super(e.config),this.config=e.config,this.config.translateConfig=r,this.middlewareStack=e.middlewareStack,this.config?.cacheMiddleware)throw new Error("@aws-sdk/lib-dynamodb - cacheMiddleware=true is not compatible with the DynamoDBDocumentClient. This option must be set to false.")}static from(e,r){return new t(e,r)}destroy(){}},Nut=Hfe.createPaginator(Tg,Ay,"ExclusiveStartKey","LastEvaluatedKey","Limit"),Lut=Hfe.createPaginator(Tg,Ty,"ExclusiveStartKey","LastEvaluatedKey","Limit"),AV=class t extends Tg{static from(e,r){return new t(e,r)}batchExecuteStatement(e,r,n){let s=new GA(e);if(typeof r=="function")this.send(s,r);else if(typeof n=="function"){if(typeof r!="object")throw new Error(`Expect http options but get ${typeof r}`);this.send(s,r||{},n)}else return this.send(s,r)}batchGet(e,r,n){let s=new jA(e);if(typeof r=="function")this.send(s,r);else if(typeof n=="function"){if(typeof r!="object")throw new Error(`Expect http options but get ${typeof r}`);this.send(s,r||{},n)}else return this.send(s,r)}batchWrite(e,r,n){let s=new VA(e);if(typeof r=="function")this.send(s,r);else if(typeof n=="function"){if(typeof r!="object")throw new Error(`Expect http options but get ${typeof r}`);this.send(s,r||{},n)}else return this.send(s,r)}delete(e,r,n){let s=new HA(e);if(typeof r=="function")this.send(s,r);else if(typeof n=="function"){if(typeof r!="object")throw new Error(`Expect http options but get ${typeof r}`);this.send(s,r||{},n)}else return this.send(s,r)}executeStatement(e,r,n){let s=new zA(e);if(typeof r=="function")this.send(s,r);else if(typeof n=="function"){if(typeof r!="object")throw new Error(`Expect http options but get ${typeof r}`);this.send(s,r||{},n)}else return this.send(s,r)}executeTransaction(e,r,n){let s=new WA(e);if(typeof r=="function")this.send(s,r);else if(typeof n=="function"){if(typeof r!="object")throw new Error(`Expect http options but get ${typeof r}`);this.send(s,r||{},n)}else return this.send(s,r)}get(e,r,n){let s=new KA(e);if(typeof r=="function")this.send(s,r);else if(typeof n=="function"){if(typeof r!="object")throw new Error(`Expect http options but get ${typeof r}`);this.send(s,r||{},n)}else return this.send(s,r)}put(e,r,n){let s=new QA(e);if(typeof r=="function")this.send(s,r);else if(typeof n=="function"){if(typeof r!="object")throw new Error(`Expect http options but get ${typeof r}`);this.send(s,r||{},n)}else return this.send(s,r)}query(e,r,n){let s=new Ay(e);if(typeof r=="function")this.send(s,r);else if(typeof n=="function"){if(typeof r!="object")throw new Error(`Expect http options but get ${typeof r}`);this.send(s,r||{},n)}else return this.send(s,r)}scan(e,r,n){let s=new Ty(e);if(typeof r=="function")this.send(s,r);else if(typeof n=="function"){if(typeof r!="object")throw new Error(`Expect http options but get ${typeof r}`);this.send(s,r||{},n)}else return this.send(s,r)}transactGet(e,r,n){let s=new XA(e);if(typeof r=="function")this.send(s,r);else if(typeof n=="function"){if(typeof r!="object")throw new Error(`Expect http options but get ${typeof r}`);this.send(s,r||{},n)}else return this.send(s,r)}transactWrite(e,r,n){let s=new JA(e);if(typeof r=="function")this.send(s,r);else if(typeof n=="function"){if(typeof r!="object")throw new Error(`Expect http options but get ${typeof r}`);this.send(s,r||{},n)}else return this.send(s,r)}update(e,r,n){let s=new YA(e);if(typeof r=="function")this.send(s,r);else if(typeof n=="function"){if(typeof r!="object")throw new Error(`Expect http options but get ${typeof r}`);this.send(s,r||{},n)}else return this.send(s,r)}};Object.defineProperty(dr,"$Command",{enumerable:!0,get:function(){return ZA.Command}});Object.defineProperty(dr,"__Client",{enumerable:!0,get:function(){return ZA.Client}});Object.defineProperty(dr,"NumberValue",{enumerable:!0,get:function(){return TV.NumberValueImpl}});dr.BatchExecuteStatementCommand=GA;dr.BatchGetCommand=jA;dr.BatchWriteCommand=VA;dr.DeleteCommand=HA;dr.DynamoDBDocument=AV;dr.DynamoDBDocumentClient=Tg;dr.DynamoDBDocumentClientCommand=In;dr.ExecuteStatementCommand=zA;dr.ExecuteTransactionCommand=WA;dr.GetCommand=KA;dr.PutCommand=QA;dr.QueryCommand=Ay;dr.ScanCommand=Ty;dr.TransactGetCommand=XA;dr.TransactWriteCommand=JA;dr.UpdateCommand=YA;dr.paginateQuery=Nut;dr.paginateScan=Lut});var wc=b(ky=>{"use strict";var alt=require("@smithy/protocol-http");function clt(t){return t}var Che=t=>e=>async r=>{if(!alt.HttpRequest.isInstance(r.request))return e(r);let{request:n}=r,{handlerProtocol:s=""}=t.requestHandler.metadata||{};if(s.indexOf("h2")>=0&&!n.headers[":authority"])delete n.headers.host,n.headers[":authority"]=n.hostname+(n.port?":"+n.port:"");else if(!n.headers.host){let o=n.hostname;n.port!=null&&(o+=`:${n.port}`),n.headers.host=o}return e(r)},Rhe={name:"hostHeaderMiddleware",step:"build",priority:"low",tags:["HOST"],override:!0},ult=t=>({applyToStack:e=>{e.add(Che(t),Rhe)}});ky.getHostHeaderPlugin=ult;ky.hostHeaderMiddleware=Che;ky.hostHeaderMiddlewareOptions=Rhe;ky.resolveHostHeaderConfig=clt});var Dc=b(sT=>{"use strict";var vhe=()=>(t,e)=>async r=>{try{let n=await t(r),{clientName:s,commandName:o,logger:i,dynamoDbDocumentClientOptions:a={}}=e,{overrideInputFilterSensitiveLog:c,overrideOutputFilterSensitiveLog:u}=a,l=c??e.inputFilterSensitiveLog,d=u??e.outputFilterSensitiveLog,{$metadata:p,...g}=n.output;return i?.info?.({clientName:s,commandName:o,input:l(r.input),output:d(g),metadata:p}),n}catch(n){let{clientName:s,commandName:o,logger:i,dynamoDbDocumentClientOptions:a={}}=e,{overrideInputFilterSensitiveLog:c}=a,u=c??e.inputFilterSensitiveLog;throw i?.error?.({clientName:s,commandName:o,input:u(r.input),error:n,metadata:n.$metadata}),n}},xhe={name:"loggerMiddleware",tags:["LOGGER"],step:"initialize",override:!0},llt=t=>({applyToStack:e=>{e.add(vhe(),xhe)}});sT.getLoggerPlugin=llt;sT.loggerMiddleware=vhe;sT.loggerMiddlewareOptions=xhe});var Phe=b(oT=>{"use strict";Object.defineProperty(oT,"__esModule",{value:!0});oT.recursionDetectionMiddleware=void 0;var dlt=require("@aws/lambda-invoke-store"),plt=require("@smithy/protocol-http"),qV="X-Amzn-Trace-Id",mlt="AWS_LAMBDA_FUNCTION_NAME",glt="_X_AMZN_TRACE_ID",flt=()=>t=>async e=>{let{request:r}=e;if(!plt.HttpRequest.isInstance(r))return t(e);let n=Object.keys(r.headers??{}).find(l=>l.toLowerCase()===qV.toLowerCase())??qV;if(r.headers.hasOwnProperty(n))return t(e);let s=process.env[mlt],o=process.env[glt],c=(await dlt.InvokeStore.getInstanceAsync())?.getXRayTraceId()??o,u=l=>typeof l=="string"&&l.length>0;return u(s)&&u(c)&&(r.headers[qV]=c),t({...e,request:r})};oT.recursionDetectionMiddleware=flt});var Oc=b(iT=>{"use strict";var $V=Phe(),hlt={step:"build",tags:["RECURSION_DETECTION"],name:"recursionDetectionMiddleware",override:!0,priority:"low"},Slt=t=>({applyToStack:e=>{e.add($V.recursionDetectionMiddleware(),hlt)}});iT.getRecursionDetectionPlugin=Slt;Object.keys($V).forEach(function(t){t!=="default"&&!Object.prototype.hasOwnProperty.call(iT,t)&&Object.defineProperty(iT,t,{enumerable:!0,get:function(){return $V[t]}})})});var Ta=b(Oi=>{"use strict";var kg=require("@smithy/util-endpoints"),Elt=require("@smithy/url-parser"),Ihe=(t,e=!1)=>{if(e){for(let r of t.split("."))if(!Ihe(r))return!1;return!0}return!(!kg.isValidHostLabel(t)||t.length<3||t.length>63||t!==t.toLowerCase()||kg.isIpAddress(t))},bhe=":",ylt="/",_lt=t=>{let e=t.split(bhe);if(e.length<6)return null;let[r,n,s,o,i,...a]=e;if(r!=="arn"||n===""||s===""||a.join(bhe)==="")return null;let c=a.map(u=>u.split(ylt)).flat();return{partition:n,service:s,region:o,accountId:i,resourceId:c}},Clt=[{id:"aws",outputs:{dnsSuffix:"amazonaws.com",dualStackDnsSuffix:"api.aws",implicitGlobalRegion:"us-east-1",name:"aws",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^(us|eu|ap|sa|ca|me|af|il|mx)\\-\\w+\\-\\d+$",regions:{"af-south-1":{description:"Africa (Cape Town)"},"ap-east-1":{description:"Asia Pacific (Hong Kong)"},"ap-east-2":{description:"Asia Pacific (Taipei)"},"ap-northeast-1":{description:"Asia Pacific (Tokyo)"},"ap-northeast-2":{description:"Asia Pacific (Seoul)"},"ap-northeast-3":{description:"Asia Pacific (Osaka)"},"ap-south-1":{description:"Asia Pacific (Mumbai)"},"ap-south-2":{description:"Asia Pacific (Hyderabad)"},"ap-southeast-1":{description:"Asia Pacific (Singapore)"},"ap-southeast-2":{description:"Asia Pacific (Sydney)"},"ap-southeast-3":{description:"Asia Pacific (Jakarta)"},"ap-southeast-4":{description:"Asia Pacific (Melbourne)"},"ap-southeast-5":{description:"Asia Pacific (Malaysia)"},"ap-southeast-6":{description:"Asia Pacific (New Zealand)"},"ap-southeast-7":{description:"Asia Pacific (Thailand)"},"aws-global":{description:"aws global region"},"ca-central-1":{description:"Canada (Central)"},"ca-west-1":{description:"Canada West (Calgary)"},"eu-central-1":{description:"Europe (Frankfurt)"},"eu-central-2":{description:"Europe (Zurich)"},"eu-north-1":{description:"Europe (Stockholm)"},"eu-south-1":{description:"Europe (Milan)"},"eu-south-2":{description:"Europe (Spain)"},"eu-west-1":{description:"Europe (Ireland)"},"eu-west-2":{description:"Europe (London)"},"eu-west-3":{description:"Europe (Paris)"},"il-central-1":{description:"Israel (Tel Aviv)"},"me-central-1":{description:"Middle East (UAE)"},"me-south-1":{description:"Middle East (Bahrain)"},"mx-central-1":{description:"Mexico (Central)"},"sa-east-1":{description:"South America (Sao Paulo)"},"us-east-1":{description:"US East (N. Virginia)"},"us-east-2":{description:"US East (Ohio)"},"us-west-1":{description:"US West (N. California)"},"us-west-2":{description:"US West (Oregon)"}}},{id:"aws-cn",outputs:{dnsSuffix:"amazonaws.com.cn",dualStackDnsSuffix:"api.amazonwebservices.com.cn",implicitGlobalRegion:"cn-northwest-1",name:"aws-cn",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^cn\\-\\w+\\-\\d+$",regions:{"aws-cn-global":{description:"aws-cn global region"},"cn-north-1":{description:"China (Beijing)"},"cn-northwest-1":{description:"China (Ningxia)"}}},{id:"aws-eusc",outputs:{dnsSuffix:"amazonaws.eu",dualStackDnsSuffix:"api.amazonwebservices.eu",implicitGlobalRegion:"eusc-de-east-1",name:"aws-eusc",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^eusc\\-(de)\\-\\w+\\-\\d+$",regions:{"eusc-de-east-1":{description:"EU (Germany)"}}},{id:"aws-iso",outputs:{dnsSuffix:"c2s.ic.gov",dualStackDnsSuffix:"api.aws.ic.gov",implicitGlobalRegion:"us-iso-east-1",name:"aws-iso",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^us\\-iso\\-\\w+\\-\\d+$",regions:{"aws-iso-global":{description:"aws-iso global region"},"us-iso-east-1":{description:"US ISO East"},"us-iso-west-1":{description:"US ISO WEST"}}},{id:"aws-iso-b",outputs:{dnsSuffix:"sc2s.sgov.gov",dualStackDnsSuffix:"api.aws.scloud",implicitGlobalRegion:"us-isob-east-1",name:"aws-iso-b",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^us\\-isob\\-\\w+\\-\\d+$",regions:{"aws-iso-b-global":{description:"aws-iso-b global region"},"us-isob-east-1":{description:"US ISOB East (Ohio)"},"us-isob-west-1":{description:"US ISOB West"}}},{id:"aws-iso-e",outputs:{dnsSuffix:"cloud.adc-e.uk",dualStackDnsSuffix:"api.cloud-aws.adc-e.uk",implicitGlobalRegion:"eu-isoe-west-1",name:"aws-iso-e",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^eu\\-isoe\\-\\w+\\-\\d+$",regions:{"aws-iso-e-global":{description:"aws-iso-e global region"},"eu-isoe-west-1":{description:"EU ISOE West"}}},{id:"aws-iso-f",outputs:{dnsSuffix:"csp.hci.ic.gov",dualStackDnsSuffix:"api.aws.hci.ic.gov",implicitGlobalRegion:"us-isof-south-1",name:"aws-iso-f",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^us\\-isof\\-\\w+\\-\\d+$",regions:{"aws-iso-f-global":{description:"aws-iso-f global region"},"us-isof-east-1":{description:"US ISOF EAST"},"us-isof-south-1":{description:"US ISOF SOUTH"}}},{id:"aws-us-gov",outputs:{dnsSuffix:"amazonaws.com",dualStackDnsSuffix:"api.aws",implicitGlobalRegion:"us-gov-west-1",name:"aws-us-gov",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^us\\-gov\\-\\w+\\-\\d+$",regions:{"aws-us-gov-global":{description:"aws-us-gov global region"},"us-gov-east-1":{description:"AWS GovCloud (US-East)"},"us-gov-west-1":{description:"AWS GovCloud (US-West)"}}}],Rlt="1.1",Ahe={partitions:Clt,version:Rlt},The=Ahe,whe="",Dhe=t=>{let{partitions:e}=The;for(let n of e){let{regions:s,outputs:o}=n;for(let[i,a]of Object.entries(s))if(i===t)return{...o,...a}}for(let n of e){let{regionRegex:s,outputs:o}=n;if(new RegExp(s).test(t))return{...o}}let r=e.find(n=>n.id==="aws");if(!r)throw new Error("Provided region was not found in the partition array or regex, and default partition with id 'aws' doesn't exist.");return{...r.outputs}},Ohe=(t,e="")=>{The=t,whe=e},vlt=()=>{Ohe(Ahe,"")},xlt=()=>whe,khe={isVirtualHostableS3Bucket:Ihe,parseArn:_lt,partition:Dhe};kg.customEndpointFunctions.aws=khe;var Plt=t=>{if(typeof t.endpointProvider!="function")throw new Error("@aws-sdk/util-endpoint - endpointProvider and endpoint missing in config for this client.");let{endpoint:e}=t;return e===void 0&&(t.endpoint=async()=>Nhe(t.endpointProvider({Region:typeof t.region=="function"?await t.region():t.region,UseDualStack:typeof t.useDualstackEndpoint=="function"?await t.useDualstackEndpoint():t.useDualstackEndpoint,UseFIPS:typeof t.useFipsEndpoint=="function"?await t.useFipsEndpoint():t.useFipsEndpoint,Endpoint:void 0},{logger:t.logger}))),t},Nhe=t=>Elt.parseUrl(t.url);Object.defineProperty(Oi,"EndpointError",{enumerable:!0,get:function(){return kg.EndpointError}});Object.defineProperty(Oi,"isIpAddress",{enumerable:!0,get:function(){return kg.isIpAddress}});Object.defineProperty(Oi,"resolveEndpoint",{enumerable:!0,get:function(){return kg.resolveEndpoint}});Oi.awsEndpointFunctions=khe;Oi.getUserAgentPrefix=xlt;Oi.partition=Dhe;Oi.resolveDefaultAwsRegionalEndpointsConfig=Plt;Oi.setPartitionInfo=Ohe;Oi.toEndpointV1=Nhe;Oi.useDefaultPartitionInfo=vlt});var aT,Zu,Lhe=_(()=>{aT={warningEmitted:!1},Zu=t=>{t&&!aT.warningEmitted&&parseInt(t.substring(1,t.indexOf(".")))<20&&(aT.warningEmitted=!0,process.emitWarning(`NodeDeprecationWarning: The AWS SDK for JavaScript (v3) will -no longer support Node.js ${t} in January 2026. - -To continue receiving updates to AWS services, bug fixes, and security -updates please upgrade to a supported Node.js LTS version. - -More information can be found at: https://a.co/c895JFp`))}});function el(t,e,r){return t.$source||(t.$source={}),t.$source[e]=r,t}var Mhe=_(()=>{});function Fhe(t,e,r){t.__aws_sdk_context?t.__aws_sdk_context.features||(t.__aws_sdk_context.features={}):t.__aws_sdk_context={features:{}},t.__aws_sdk_context.features[e]=r}var Bhe=_(()=>{});function Uhe(t,e,r){return t.$source||(t.$source={}),t.$source[e]=r,t}var qhe=_(()=>{});var kc={};wt(kc,{emitWarningIfUnsupportedVersion:()=>Zu,setCredentialFeature:()=>el,setFeature:()=>Fhe,setTokenFeature:()=>Uhe,state:()=>aT});var Bo=_(()=>{Lhe();Mhe();Bhe();qhe()});var $he,GV,Ghe=_(()=>{$he=require("@smithy/protocol-http"),GV=t=>$he.HttpResponse.isInstance(t)?t.headers?.date??t.headers?.Date:void 0});var Ng,jV=_(()=>{Ng=t=>new Date(Date.now()+t)});var jhe,Vhe=_(()=>{jV();jhe=(t,e)=>Math.abs(Ng(e).getTime()-t)>=3e5});var VV,Hhe=_(()=>{Vhe();VV=(t,e)=>{let r=Date.parse(t);return jhe(r,e)?r-Date.now():e}});var HV=_(()=>{Ghe();jV();Hhe()});var zhe,Ny,Lg,An,zV,WV=_(()=>{zhe=require("@smithy/protocol-http");HV();Ny=(t,e)=>{if(!e)throw new Error(`Property \`${t}\` is not resolved for AWS SDK SigV4Auth`);return e},Lg=async t=>{let e=Ny("context",t.context),r=Ny("config",t.config),n=e.endpointV2?.properties?.authSchemes?.[0],o=await Ny("signer",r.signer)(n),i=t?.signingRegion,a=t?.signingRegionSet,c=t?.signingName;return{config:r,signer:o,signingRegion:i,signingRegionSet:a,signingName:c}},An=class{async sign(e,r,n){if(!zhe.HttpRequest.isInstance(e))throw new Error("The request is not an instance of `HttpRequest` and cannot be signed");let s=await Lg(n),{config:o,signer:i}=s,{signingRegion:a,signingName:c}=s,u=n.context;if(u?.authSchemes?.length??!1){let[d,p]=u.authSchemes;d?.name==="sigv4a"&&p?.name==="sigv4"&&(a=p?.signingRegion??a,c=p?.signingName??c)}return await i.sign(e,{signingDate:Ng(o.systemClockOffset),signingRegion:a,signingService:c})}errorHandler(e){return r=>{let n=r.ServerTime??GV(r.$response);if(n){let s=Ny("config",e.config),o=s.systemClockOffset;s.systemClockOffset=VV(n,s.systemClockOffset),s.systemClockOffset!==o&&r.$metadata&&(r.$metadata.clockSkewCorrected=!0)}throw r}}successHandler(e,r){let n=GV(e);if(n){let s=Ny("config",r.config);s.systemClockOffset=VV(n,s.systemClockOffset)}}},zV=An});var Whe,Ly,Khe=_(()=>{Whe=require("@smithy/protocol-http");HV();WV();Ly=class extends An{async sign(e,r,n){if(!Whe.HttpRequest.isInstance(e))throw new Error("The request is not an instance of `HttpRequest` and cannot be signed");let{config:s,signer:o,signingRegion:i,signingRegionSet:a,signingName:c}=await Lg(n),l=(await s.sigv4aSigningRegionSet?.()??a??[i]).join(",");return await o.sign(e,{signingDate:Ng(s.systemClockOffset),signingRegion:l,signingService:c})}}});var KV,Qhe=_(()=>{KV=t=>typeof t=="string"&&t.length>0?t.split(",").map(e=>e.trim()):[]});var cT,QV=_(()=>{cT=t=>`AWS_BEARER_TOKEN_${t.replace(/[\s-]/g,"_").toUpperCase()}`});var Xhe,Jhe,tl,Yhe=_(()=>{Qhe();QV();Xhe="AWS_AUTH_SCHEME_PREFERENCE",Jhe="auth_scheme_preference",tl={environmentVariableSelector:(t,e)=>{if(e?.signingName&&cT(e.signingName)in t)return["httpBearerAuth"];if(Xhe in t)return KV(t[Xhe])},configFileSelector:t=>{if(Jhe in t)return KV(t[Jhe])},default:[]}});var Zhe,XV,eSe,tSe,rSe=_(()=>{Zhe=require("@smithy/core"),XV=require("@smithy/property-provider"),eSe=t=>(t.sigv4aSigningRegionSet=(0,Zhe.normalizeProvider)(t.sigv4aSigningRegionSet),t),tSe={environmentVariableSelector(t){if(t.AWS_SIGV4A_SIGNING_REGION_SET)return t.AWS_SIGV4A_SIGNING_REGION_SET.split(",").map(e=>e.trim());throw new XV.ProviderError("AWS_SIGV4A_SIGNING_REGION_SET not set in env.",{tryNextLink:!0})},configFileSelector(t){if(t.sigv4a_signing_region_set)return(t.sigv4a_signing_region_set??"").split(",").map(e=>e.trim());throw new XV.ProviderError("sigv4a_signing_region_set not set in profile.",{tryNextLink:!0})},default:void 0}});function blt(t,{credentials:e,credentialDefaultProvider:r}){let n;return e?e?.memoized?n=e:n=(0,ki.memoizeIdentityProvider)(e,ki.isIdentityExpired,ki.doesIdentityRequireRefresh):r?n=(0,ki.normalizeProvider)(r(Object.assign({},t,{parentClientConfig:t}))):n=async()=>{throw new Error("@aws-sdk/core::resolveAwsSdkSigV4Config - `credentials` not provided and no credentialDefaultProvider was configured.")},n.memoized=!0,n}function Ilt(t,e){if(e.configBound)return e;let r=async n=>e({...n,callerClientConfig:t});return r.memoized=e.memoized,r.configBound=!0,r}var ki,JV,Nc,nSe,sSe=_(()=>{Bo();ki=require("@smithy/core"),JV=require("@smithy/signature-v4"),Nc=t=>{let e=t.credentials,r=!!t.credentials,n;Object.defineProperty(t,"credentials",{set(u){u&&u!==e&&u!==n&&(r=!0),e=u;let l=blt(t,{credentials:e,credentialDefaultProvider:t.credentialDefaultProvider}),d=Ilt(t,l);r&&!d.attributed?(n=async p=>d(p).then(g=>el(g,"CREDENTIALS_CODE","e")),n.memoized=d.memoized,n.configBound=d.configBound,n.attributed=!0):n=d},get(){return n},enumerable:!0,configurable:!0}),t.credentials=e;let{signingEscapePath:s=!0,systemClockOffset:o=t.systemClockOffset||0,sha256:i}=t,a;return t.signer?a=(0,ki.normalizeProvider)(t.signer):t.regionInfoProvider?a=()=>(0,ki.normalizeProvider)(t.region)().then(async u=>[await t.regionInfoProvider(u,{useFipsEndpoint:await t.useFipsEndpoint(),useDualstackEndpoint:await t.useDualstackEndpoint()})||{},u]).then(([u,l])=>{let{signingRegion:d,signingService:p}=u;t.signingRegion=t.signingRegion||d||l,t.signingName=t.signingName||p||t.serviceId;let g={...t,credentials:t.credentials,region:t.signingRegion,service:t.signingName,sha256:i,uriEscapePath:s},y=t.signerConstructor||JV.SignatureV4;return new y(g)}):a=async u=>{u=Object.assign({},{name:"sigv4",signingName:t.signingName||t.defaultSigningName,signingRegion:await(0,ki.normalizeProvider)(t.region)(),properties:{}},u);let l=u.signingRegion,d=u.signingName;t.signingRegion=t.signingRegion||l,t.signingName=t.signingName||d||t.serviceId;let p={...t,credentials:t.credentials,region:t.signingRegion,service:t.signingName,sha256:i,uriEscapePath:s},g=t.signerConstructor||JV.SignatureV4;return new g(p)},Object.assign(t,{systemClockOffset:o,signingEscapePath:s,signer:a})},nSe=Nc});var oSe=_(()=>{WV();Khe();Yhe();rSe();sSe()});var iSe={};wt(iSe,{AWSSDKSigV4Signer:()=>zV,AwsSdkSigV4ASigner:()=>Ly,AwsSdkSigV4Signer:()=>An,NODE_AUTH_SCHEME_PREFERENCE_OPTIONS:()=>tl,NODE_SIGV4A_CONFIG_OPTIONS:()=>tSe,getBearerTokenEnvKey:()=>cT,resolveAWSSDKSigV4Config:()=>nSe,resolveAwsSdkSigV4AConfig:()=>eSe,resolveAwsSdkSigV4Config:()=>Nc,validateSigningProperties:()=>Lg});var YV=_(()=>{oSe();QV()});var My,ZV,Uo,Mg=_(()=>{My=require("@smithy/core/schema"),ZV=require("@smithy/smithy-client"),Uo=class{queryCompat;constructor(e=!1){this.queryCompat=e}resolveRestContentType(e,r){let n=r.getMemberSchemas(),s=Object.values(n).find(o=>!!o.getMergedTraits().httpPayload);if(s){let o=s.getMergedTraits().mediaType;return o||(s.isStringSchema()?"text/plain":s.isBlobSchema()?"application/octet-stream":e)}else if(!r.isUnitSchema()&&Object.values(n).find(i=>{let{httpQuery:a,httpQueryParams:c,httpHeader:u,httpLabel:l,httpPrefixHeaders:d}=i.getMergedTraits();return!a&&!c&&!u&&!l&&d===void 0}))return e}async getErrorSchemaOrThrowBaseException(e,r,n,s,o,i){let a=r,c=e;e.includes("#")&&([a,c]=e.split("#"));let u={$metadata:o,$fault:n.statusCode<500?"client":"server"},l=My.TypeRegistry.for(a);try{return{errorSchema:i?.(l,c)??l.getSchema(e),errorMetadata:u}}catch{s.message=s.message??s.Message??"UnknownError";let p=My.TypeRegistry.for("smithy.ts.sdk.synthetic."+a),g=p.getBaseException();if(g){let y=p.getErrorCtor(g)??Error;throw this.decorateServiceException(Object.assign(new y({name:c}),u),s)}throw this.decorateServiceException(Object.assign(new Error(c),u),s)}}decorateServiceException(e,r={}){if(this.queryCompat){let n=e.Message??r.Message,s=(0,ZV.decorateServiceException)(e,r);n&&(s.message=n),s.Error={...s.Error,Type:s.Error.Type,Code:s.Error.Code,Message:s.Error.message??s.Error.Message??n};let o=s.$metadata.requestId;return o&&(s.RequestId=o),s}return(0,ZV.decorateServiceException)(e,r)}setQueryCompatError(e,r){let n=r.headers?.["x-amzn-query-error"];if(e!==void 0&&n!=null){let[s,o]=n.split(";"),i=Object.entries(e),a={Code:s,Type:o};Object.assign(e,a);for(let[c,u]of i)a[c==="message"?"Message":c]=u;delete a.__type,e.Error=a}}queryCompatOutput(e,r){e.Error&&(r.Error=e.Error),e.Type&&(r.Type=e.Type),e.Code&&(r.Code=e.Code)}findQueryCompatibleError(e,r){try{return e.getSchema(r)}catch{return e.find(s=>My.NormalizedSchema.of(s).getMergedTraits().awsQueryError?.[0]===r)}}}});var lT,dT,uT,aSe=_(()=>{lT=require("@smithy/core/cbor"),dT=require("@smithy/core/schema");Mg();uT=class extends lT.SmithyRpcV2CborProtocol{awsQueryCompatible;mixin;constructor({defaultNamespace:e,awsQueryCompatible:r}){super({defaultNamespace:e}),this.awsQueryCompatible=!!r,this.mixin=new Uo(this.awsQueryCompatible)}async serializeRequest(e,r,n){let s=await super.serializeRequest(e,r,n);return this.awsQueryCompatible&&(s.headers["x-amzn-query-mode"]="true"),s}async handleError(e,r,n,s,o){this.awsQueryCompatible&&this.mixin.setQueryCompatError(s,n);let i=(()=>{let y=n.headers["x-amzn-query-error"];return y&&this.awsQueryCompatible?y.split(";")[0]:(0,lT.loadSmithyRpcV2CborErrorCode)(n,s)??"Unknown"})(),{errorSchema:a,errorMetadata:c}=await this.mixin.getErrorSchemaOrThrowBaseException(i,this.options.defaultNamespace,n,s,o,this.awsQueryCompatible?this.mixin.findQueryCompatibleError:void 0),u=dT.NormalizedSchema.of(a),l=s.message??s.Message??"Unknown",d=dT.TypeRegistry.for(a[1]).getErrorCtor(a)??Error,p=new d(l),g={};for(let[y,R]of u.structIterator())s[y]!=null&&(g[y]=this.deserializer.readValue(R,s[y]));throw this.awsQueryCompatible&&this.mixin.queryCompatOutput(s,g),this.mixin.decorateServiceException(Object.assign(p,c,{$fault:u.getMergedTraits().error,message:l},g),s)}}});var cSe,uSe,lSe,dSe=_(()=>{cSe=t=>{if(t==null)return t;if(typeof t=="number"||typeof t=="bigint"){let e=new Error(`Received number ${t} where a string was expected.`);return e.name="Warning",console.warn(e),String(t)}if(typeof t=="boolean"){let e=new Error(`Received boolean ${t} where a string was expected.`);return e.name="Warning",console.warn(e),String(t)}return t},uSe=t=>{if(t==null)return t;if(typeof t=="string"){let e=t.toLowerCase();if(t!==""&&e!=="false"&&e!=="true"){let r=new Error(`Received string "${t}" where a boolean was expected.`);r.name="Warning",console.warn(r)}return t!==""&&e!=="false"}return t},lSe=t=>{if(t==null)return t;if(typeof t=="string"){let e=Number(t);if(e.toString()!==t){let r=new Error(`Received string "${t}" where a number was expected.`);return r.name="Warning",console.warn(r),t}return e}return t}});var Tn,rl=_(()=>{Tn=class{serdeContext;setSerdeContext(e){this.serdeContext=e}}});function*Fg(t,e){if(t.isUnitSchema())return;let r=t.getSchema();for(let n=0;no!=="__type").length;for(let o=0;o{eH=require("@smithy/core/schema")});function gSe(t,e,r){if(r?.source){let n=r.source;if(typeof e=="number"&&(e>Number.MAX_SAFE_INTEGER||e{mSe=require("@smithy/core/serde")});var hSe,SSe,pT,tH=_(()=>{hSe=require("@smithy/smithy-client"),SSe=require("@smithy/util-utf8"),pT=(t,e)=>(0,hSe.collectBody)(t,e).then(r=>(e?.utf8Encoder??SSe.toUtf8)(r))});var By,ESe,Bg,Uy=_(()=>{tH();By=(t,e)=>pT(t,e).then(r=>{if(r.length)try{return JSON.parse(r)}catch(n){throw n?.name==="SyntaxError"&&Object.defineProperty(n,"$responseBodyText",{value:r}),n}return{}}),ESe=async(t,e)=>{let r=await By(t,e);return r.message=r.message??r.Message,r},Bg=(t,e)=>{let r=(o,i)=>Object.keys(o).find(a=>a.toLowerCase()===i.toLowerCase()),n=o=>{let i=o;return typeof i=="number"&&(i=i.toString()),i.indexOf(",")>=0&&(i=i.split(",")[0]),i.indexOf(":")>=0&&(i=i.split(":")[0]),i.indexOf("#")>=0&&(i=i.split("#")[1]),i},s=r(t.headers,"x-amzn-errortype");if(s!==void 0)return n(t.headers[s]);if(e&&typeof e=="object"){let o=r(e,"code");if(o&&e[o]!==void 0)return n(e[o]);if(e.__type!==void 0)return n(e.__type)}}});var ySe,_Se,Qs,CSe,Ug,rH=_(()=>{ySe=require("@smithy/core/protocols"),_Se=require("@smithy/core/schema"),Qs=require("@smithy/core/serde"),CSe=require("@smithy/util-base64");rl();Fy();fSe();Uy();Ug=class extends Tn{settings;constructor(e){super(),this.settings=e}async read(e,r){return this._read(e,typeof r=="string"?JSON.parse(r,gSe):await By(r,this.serdeContext))}readObject(e,r){return this._read(e,r)}_read(e,r){let n=r!==null&&typeof r=="object",s=_Se.NormalizedSchema.of(e);if(n){if(s.isStructSchema()){let i={};for(let[a,c]of pSe(s,r,this.settings.jsonName?"jsonName":!1)){let u=this.settings.jsonName?c.getMergedTraits().jsonName??a:a,l=this._read(c,r[u]);l!=null&&(i[a]=l)}return i}if(Array.isArray(r)&&s.isListSchema()){let i=s.getValueSchema(),a=[],c=!!s.getMergedTraits().sparse;for(let u of r)(c||u!=null)&&a.push(this._read(i,u));return a}if(s.isMapSchema()){let i=s.getValueSchema(),a={},c=!!s.getMergedTraits().sparse;for(let[u,l]of Object.entries(r))(c||l!=null)&&(a[u]=this._read(i,l));return a}}if(s.isBlobSchema()&&typeof r=="string")return(0,CSe.fromBase64)(r);let o=s.getMergedTraits().mediaType;if(s.isStringSchema()&&typeof r=="string"&&o)return o==="application/json"||o.endsWith("+json")?Qs.LazyJsonString.from(r):r;if(s.isTimestampSchema()&&r!=null)switch((0,ySe.determineTimestampFormat)(s,this.settings)){case 5:return(0,Qs.parseRfc3339DateTimeWithOffset)(r);case 6:return(0,Qs.parseRfc7231DateTime)(r);case 7:return(0,Qs.parseEpochTimestamp)(r);default:return console.warn("Missing timestamp format, parsing value with Date constructor:",r),new Date(r)}if(s.isBigIntegerSchema()&&(typeof r=="number"||typeof r=="string"))return BigInt(r);if(s.isBigDecimalSchema()&&r!=null){if(r instanceof Qs.NumericValue)return r;let i=r;return i.type==="bigDecimal"&&"string"in i?new Qs.NumericValue(i.string,i.type):new Qs.NumericValue(String(r),"bigDecimal")}if(s.isNumericSchema()&&typeof r=="string"){switch(r){case"Infinity":return 1/0;case"-Infinity":return-1/0;case"NaN":return NaN}return r}if(s.isDocumentSchema())if(n){let i=Array.isArray(r)?[]:{};for(let[a,c]of Object.entries(r))c instanceof Qs.NumericValue?i[a]=c:i[a]=this._read(s,c);return i}else return structuredClone(r);return r}}});var vSe,RSe,mT,xSe=_(()=>{vSe=require("@smithy/core/serde"),RSe="\u039D",mT=class{values=new Map;counter=0;stage=0;createReplacer(){if(this.stage===1)throw new Error("@aws-sdk/core/protocols - JsonReplacer already created.");if(this.stage===2)throw new Error("@aws-sdk/core/protocols - JsonReplacer exhausted.");return this.stage=1,(e,r)=>{if(r instanceof vSe.NumericValue){let n=`${RSe+"nv"+this.counter++}_`+r.string;return this.values.set(`"${n}"`,r.string),n}if(typeof r=="bigint"){let n=r.toString(),s=`${RSe+"b"+this.counter++}_`+n;return this.values.set(`"${s}"`,n),s}return r}}replaceInJson(e){if(this.stage===0)throw new Error("@aws-sdk/core/protocols - JsonReplacer not created yet.");if(this.stage===2)throw new Error("@aws-sdk/core/protocols - JsonReplacer exhausted.");if(this.stage=2,this.counter===0)return e;for(let[r,n]of this.values)e=e.replace(r,n);return e}}});var PSe,gT,Lc,nH,qg,sH=_(()=>{PSe=require("@smithy/core/protocols"),gT=require("@smithy/core/schema"),Lc=require("@smithy/core/serde"),nH=require("@smithy/util-base64");rl();Fy();xSe();qg=class extends Tn{settings;buffer;useReplacer=!1;rootSchema;constructor(e){super(),this.settings=e}write(e,r){this.rootSchema=gT.NormalizedSchema.of(e),this.buffer=this._write(this.rootSchema,r)}writeDiscriminatedDocument(e,r){this.write(e,r),typeof this.buffer=="object"&&(this.buffer.__type=gT.NormalizedSchema.of(e).getName(!0))}flush(){let{rootSchema:e,useReplacer:r}=this;if(this.rootSchema=void 0,this.useReplacer=!1,e?.isStructSchema()||e?.isDocumentSchema()){if(!r)return JSON.stringify(this.buffer);let n=new mT;return n.replaceInJson(JSON.stringify(this.buffer,n.createReplacer(),0))}return this.buffer}_write(e,r,n){let s=r!==null&&typeof r=="object",o=gT.NormalizedSchema.of(e);if(s){if(o.isStructSchema()){let i={};for(let[a,c]of Fg(o,r)){let u=this._write(c,r[a],o);if(u!==void 0){let l=c.getMergedTraits().jsonName,d=this.settings.jsonName?l??a:a;i[d]=u}}return i}if(Array.isArray(r)&&o.isListSchema()){let i=o.getValueSchema(),a=[],c=!!o.getMergedTraits().sparse;for(let u of r)(c||u!=null)&&a.push(this._write(i,u));return a}if(o.isMapSchema()){let i=o.getValueSchema(),a={},c=!!o.getMergedTraits().sparse;for(let[u,l]of Object.entries(r))(c||l!=null)&&(a[u]=this._write(i,l));return a}if(r instanceof Uint8Array&&(o.isBlobSchema()||o.isDocumentSchema()))return o===this.rootSchema?r:(this.serdeContext?.base64Encoder??nH.toBase64)(r);if(r instanceof Date&&(o.isTimestampSchema()||o.isDocumentSchema()))switch((0,PSe.determineTimestampFormat)(o,this.settings)){case 5:return r.toISOString().replace(".000Z","Z");case 6:return(0,Lc.dateToUtcString)(r);case 7:return r.getTime()/1e3;default:return console.warn("Missing timestamp format, using epoch seconds",r),r.getTime()/1e3}r instanceof Lc.NumericValue&&(this.useReplacer=!0)}if(!(r===null&&n?.isStructSchema())){if(o.isStringSchema()){if(typeof r>"u"&&o.isIdempotencyToken())return(0,Lc.generateIdempotencyToken)();let i=o.getMergedTraits().mediaType;return r!=null&&i&&(i==="application/json"||i.endsWith("+json"))?Lc.LazyJsonString.from(r):r}if(typeof r=="number"&&o.isNumericSchema())return Math.abs(r)===1/0||isNaN(r)?String(r):r;if(typeof r=="string"&&o.isBlobSchema())return o===this.rootSchema?r:(this.serdeContext?.base64Encoder??nH.toBase64)(r);if(typeof r=="bigint"&&(this.useReplacer=!0),o.isDocumentSchema())if(s){let i=Array.isArray(r)?[]:{};for(let[a,c]of Object.entries(r))c instanceof Lc.NumericValue?(this.useReplacer=!0,i[a]=c):i[a]=this._write(o,c);return i}else return structuredClone(r);return r}}}});var nl,fT=_(()=>{rl();rH();sH();nl=class extends Tn{settings;constructor(e){super(),this.settings=e}createSerializer(){let e=new qg(this.settings);return e.setSerdeContext(this.serdeContext),e}createDeserializer(){let e=new Ug(this.settings);return e.setSerdeContext(this.serdeContext),e}}});var bSe,$g,sl,hT=_(()=>{bSe=require("@smithy/core/protocols"),$g=require("@smithy/core/schema");Mg();fT();Uy();sl=class extends bSe.RpcProtocol{serializer;deserializer;serviceTarget;codec;mixin;awsQueryCompatible;constructor({defaultNamespace:e,serviceTarget:r,awsQueryCompatible:n,jsonCodec:s}){super({defaultNamespace:e}),this.serviceTarget=r,this.codec=s??new nl({timestampFormat:{useTrait:!0,default:7},jsonName:!1}),this.serializer=this.codec.createSerializer(),this.deserializer=this.codec.createDeserializer(),this.awsQueryCompatible=!!n,this.mixin=new Uo(this.awsQueryCompatible)}async serializeRequest(e,r,n){let s=await super.serializeRequest(e,r,n);return s.path.endsWith("/")||(s.path+="/"),Object.assign(s.headers,{"content-type":`application/x-amz-json-${this.getJsonRpcVersion()}`,"x-amz-target":`${this.serviceTarget}.${e.name}`}),this.awsQueryCompatible&&(s.headers["x-amzn-query-mode"]="true"),((0,$g.deref)(e.input)==="unit"||!s.body)&&(s.body="{}"),s}getPayloadCodec(){return this.codec}async handleError(e,r,n,s,o){this.awsQueryCompatible&&this.mixin.setQueryCompatError(s,n);let i=Bg(n,s)??"Unknown",{errorSchema:a,errorMetadata:c}=await this.mixin.getErrorSchemaOrThrowBaseException(i,this.options.defaultNamespace,n,s,o,this.awsQueryCompatible?this.mixin.findQueryCompatibleError:void 0),u=$g.NormalizedSchema.of(a),l=s.message??s.Message??"Unknown",d=$g.TypeRegistry.for(a[1]).getErrorCtor(a)??Error,p=new d(l),g={};for(let[y,R]of u.structIterator())s[y]!=null&&(g[y]=this.codec.createDeserializer().readObject(R,s[y]));throw this.awsQueryCompatible&&this.mixin.queryCompatOutput(s,g),this.mixin.decorateServiceException(Object.assign(p,c,{$fault:u.getMergedTraits().error,message:l},g),s)}}});var ST,ISe=_(()=>{hT();ST=class extends sl{constructor({defaultNamespace:e,serviceTarget:r,awsQueryCompatible:n,jsonCodec:s}){super({defaultNamespace:e,serviceTarget:r,awsQueryCompatible:n,jsonCodec:s})}getShapeId(){return"aws.protocols#awsJson1_0"}getJsonRpcVersion(){return"1.0"}getDefaultContentType(){return"application/x-amz-json-1.0"}}});var ET,ASe=_(()=>{hT();ET=class extends sl{constructor({defaultNamespace:e,serviceTarget:r,awsQueryCompatible:n,jsonCodec:s}){super({defaultNamespace:e,serviceTarget:r,awsQueryCompatible:n,jsonCodec:s})}getShapeId(){return"aws.protocols#awsJson1_1"}getJsonRpcVersion(){return"1.1"}getDefaultContentType(){return"application/x-amz-json-1.1"}}});var jg,Gg,ol,TSe=_(()=>{jg=require("@smithy/core/protocols"),Gg=require("@smithy/core/schema");Mg();fT();Uy();ol=class extends jg.HttpBindingProtocol{serializer;deserializer;codec;mixin=new Uo;constructor({defaultNamespace:e}){super({defaultNamespace:e});let r={timestampFormat:{useTrait:!0,default:7},httpBindings:!0,jsonName:!0};this.codec=new nl(r),this.serializer=new jg.HttpInterceptingShapeSerializer(this.codec.createSerializer(),r),this.deserializer=new jg.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(),r)}getShapeId(){return"aws.protocols#restJson1"}getPayloadCodec(){return this.codec}setSerdeContext(e){this.codec.setSerdeContext(e),super.setSerdeContext(e)}async serializeRequest(e,r,n){let s=await super.serializeRequest(e,r,n),o=Gg.NormalizedSchema.of(e.input);if(!s.headers["content-type"]){let i=this.mixin.resolveRestContentType(this.getDefaultContentType(),o);i&&(s.headers["content-type"]=i)}return s.body==null&&s.headers["content-type"]===this.getDefaultContentType()&&(s.body="{}"),s}async deserializeResponse(e,r,n){let s=await super.deserializeResponse(e,r,n),o=Gg.NormalizedSchema.of(e.output);for(let[i,a]of o.structIterator())a.getMemberTraits().httpPayload&&!(i in s)&&(s[i]=null);return s}async handleError(e,r,n,s,o){let i=Bg(n,s)??"Unknown",{errorSchema:a,errorMetadata:c}=await this.mixin.getErrorSchemaOrThrowBaseException(i,this.options.defaultNamespace,n,s,o),u=Gg.NormalizedSchema.of(a),l=s.message??s.Message??"Unknown",d=Gg.TypeRegistry.for(a[1]).getErrorCtor(a)??Error,p=new d(l);await this.deserializeHttpMessage(a,r,n,s);let g={};for(let[y,R]of u.structIterator()){let D=R.getMergedTraits().jsonName??y;g[y]=this.codec.createDeserializer().readObject(R,s[D])}throw this.mixin.decorateServiceException(Object.assign(p,c,{$fault:u.getMergedTraits().error,message:l},g),s)}getDefaultContentType(){return"application/json"}}});var wSe,DSe,OSe=_(()=>{wSe=require("@smithy/smithy-client"),DSe=t=>{if(t!=null)return typeof t=="object"&&"__type"in t&&delete t.__type,(0,wSe.expectUnion)(t)}});var kSe=b(iH=>{"use strict";Object.defineProperty(iH,"__esModule",{value:!0});iH.parseXML=Tlt;var Alt=require("fast-xml-parser"),oH=new Alt.XMLParser({attributeNamePrefix:"",htmlEntities:!0,ignoreAttributes:!1,ignoreDeclaration:!0,parseTagValue:!1,trimValues:!1,tagValueProcessor:(t,e)=>e.trim()===""&&e.includes(` -`)?"":void 0});oH.addEntity("#xD","\r");oH.addEntity("#10",` -`);function Tlt(t){return oH.parse(t,!0)}});var CT=b(_T=>{"use strict";var wlt=kSe();function Dlt(t){return t.replace(/&/g,"&").replace(//g,">").replace(/"/g,""")}function Olt(t){return t.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">").replace(/\r/g," ").replace(/\n/g," ").replace(/\u0085/g,"…").replace(/\u2028/,"
")}var yT=class{value;constructor(e){this.value=e}toString(){return Olt(""+this.value)}},aH=class t{name;children;attributes={};static of(e,r,n){let s=new t(e);return r!==void 0&&s.addChildNode(new yT(r)),n!==void 0&&s.withName(n),s}constructor(e,r=[]){this.name=e,this.children=r}withName(e){return this.name=e,this}addAttribute(e,r){return this.attributes[e]=r,this}addChildNode(e){return this.children.push(e),this}removeAttribute(e){return delete this.attributes[e],this}n(e){return this.name=e,this}c(e){return this.children.push(e),this}a(e,r){return r!=null&&(this.attributes[e]=r),this}cc(e,r,n=r){if(e[r]!=null){let s=t.of(r,e[r]).withName(n);this.c(s)}}l(e,r,n,s){e[r]!=null&&s().map(i=>{i.withName(n),this.c(i)})}lc(e,r,n,s){if(e[r]!=null){let o=s(),i=new t(n);o.map(a=>{i.c(a)}),this.c(i)}}toString(){let e=!!this.children.length,r=`<${this.name}`,n=this.attributes;for(let s of Object.keys(n)){let o=n[s];o!=null&&(r+=` ${s}="${Dlt(""+o)}"`)}return r+=e?`>${this.children.map(s=>s.toString()).join("")}`:"/>"}};Object.defineProperty(_T,"parseXML",{enumerable:!0,get:function(){return wlt.parseXML}});_T.XmlNode=aH;_T.XmlText=yT});var NSe,LSe,cH,MSe,FSe,il,RT=_(()=>{NSe=O(CT()),LSe=require("@smithy/core/protocols"),cH=require("@smithy/core/schema"),MSe=require("@smithy/smithy-client"),FSe=require("@smithy/util-utf8");rl();il=class extends Tn{settings;stringDeserializer;constructor(e){super(),this.settings=e,this.stringDeserializer=new LSe.FromStringShapeDeserializer(e)}setSerdeContext(e){this.serdeContext=e,this.stringDeserializer.setSerdeContext(e)}read(e,r,n){let s=cH.NormalizedSchema.of(e),o=s.getMemberSchemas();if(s.isStructSchema()&&s.isMemberSchema()&&!!Object.values(o).find(u=>!!u.getMemberTraits().eventPayload)){let u={},l=Object.keys(o)[0];return o[l].isBlobSchema()?u[l]=r:u[l]=this.read(o[l],r),u}let a=(this.serdeContext?.utf8Encoder??FSe.toUtf8)(r),c=this.parseXml(a);return this.readSchema(e,n?c[n]:c)}readSchema(e,r){let n=cH.NormalizedSchema.of(e);if(n.isUnitSchema())return;let s=n.getMergedTraits();if(n.isListSchema()&&!Array.isArray(r))return this.readSchema(n,[r]);if(r==null)return r;if(typeof r=="object"){let o=!!s.sparse,i=!!s.xmlFlattened;if(n.isListSchema()){let c=n.getValueSchema(),u=[],l=c.getMergedTraits().xmlName??"member",d=i?r:(r[0]??r)[l],p=Array.isArray(d)?d:[d];for(let g of p)(g!=null||o)&&u.push(this.readSchema(c,g));return u}let a={};if(n.isMapSchema()){let c=n.getKeySchema(),u=n.getValueSchema(),l;i?l=Array.isArray(r)?r:[r]:l=Array.isArray(r.entry)?r.entry:[r.entry];let d=c.getMergedTraits().xmlName??"key",p=u.getMergedTraits().xmlName??"value";for(let g of l){let y=g[d],R=g[p];(R!=null||o)&&(a[y]=this.readSchema(u,R))}return a}if(n.isStructSchema()){for(let[c,u]of n.structIterator()){let l=u.getMergedTraits(),d=l.httpPayload?l.xmlName??u.getName():u.getMemberTraits().xmlName??c;r[d]!=null&&(a[c]=this.readSchema(u,r[d]))}return a}if(n.isDocumentSchema())return r;throw new Error(`@aws-sdk/core/protocols - xml deserializer unhandled schema type for ${n.getName(!0)}`)}return n.isListSchema()?[]:n.isMapSchema()||n.isStructSchema()?{}:this.stringDeserializer.read(n,r)}parseXml(e){if(e.length){let r;try{r=(0,NSe.parseXML)(e)}catch(i){throw i&&typeof i=="object"&&Object.defineProperty(i,"$responseBodyText",{value:e}),i}let n="#text",s=Object.keys(r)[0],o=r[s];return o[n]&&(o[s]=o[n],delete o[n]),(0,MSe.getValueFromTextNode)(o)}return{}}}});var qy,BSe,xT,USe,qSe,vT,$Se=_(()=>{qy=require("@smithy/core/protocols"),BSe=require("@smithy/core/schema"),xT=require("@smithy/core/serde"),USe=require("@smithy/smithy-client"),qSe=require("@smithy/util-base64");rl();Fy();vT=class extends Tn{settings;buffer;constructor(e){super(),this.settings=e}write(e,r,n=""){this.buffer===void 0&&(this.buffer="");let s=BSe.NormalizedSchema.of(e);if(n&&!n.endsWith(".")&&(n+="."),s.isBlobSchema())(typeof r=="string"||r instanceof Uint8Array)&&(this.writeKey(n),this.writeValue((this.serdeContext?.base64Encoder??qSe.toBase64)(r)));else if(s.isBooleanSchema()||s.isNumericSchema()||s.isStringSchema())r!=null?(this.writeKey(n),this.writeValue(String(r))):s.isIdempotencyToken()&&(this.writeKey(n),this.writeValue((0,xT.generateIdempotencyToken)()));else if(s.isBigIntegerSchema())r!=null&&(this.writeKey(n),this.writeValue(String(r)));else if(s.isBigDecimalSchema())r!=null&&(this.writeKey(n),this.writeValue(r instanceof xT.NumericValue?r.string:String(r)));else if(s.isTimestampSchema()){if(r instanceof Date)switch(this.writeKey(n),(0,qy.determineTimestampFormat)(s,this.settings)){case 5:this.writeValue(r.toISOString().replace(".000Z","Z"));break;case 6:this.writeValue((0,USe.dateToUtcString)(r));break;case 7:this.writeValue(String(r.getTime()/1e3));break}}else{if(s.isDocumentSchema())throw new Error(`@aws-sdk/core/protocols - QuerySerializer unsupported document type ${s.getName(!0)}`);if(s.isListSchema()){if(Array.isArray(r))if(r.length===0)this.settings.serializeEmptyLists&&(this.writeKey(n),this.writeValue(""));else{let o=s.getValueSchema(),i=this.settings.flattenLists||s.getMergedTraits().xmlFlattened,a=1;for(let c of r){if(c==null)continue;let u=this.getKey("member",o.getMergedTraits().xmlName),l=i?`${n}${a}`:`${n}${u}.${a}`;this.write(o,c,l),++a}}}else if(s.isMapSchema()){if(r&&typeof r=="object"){let o=s.getKeySchema(),i=s.getValueSchema(),a=s.getMergedTraits().xmlFlattened,c=1;for(let[u,l]of Object.entries(r)){if(l==null)continue;let d=this.getKey("key",o.getMergedTraits().xmlName),p=a?`${n}${c}.${d}`:`${n}entry.${c}.${d}`,g=this.getKey("value",i.getMergedTraits().xmlName),y=a?`${n}${c}.${g}`:`${n}entry.${c}.${g}`;this.write(o,u,p),this.write(i,l,y),++c}}}else if(s.isStructSchema()){if(r&&typeof r=="object")for(let[o,i]of Fg(s,r)){if(r[o]==null&&!i.isIdempotencyToken())continue;let a=this.getKey(o,i.getMergedTraits().xmlName),c=`${n}${a}`;this.write(i,r[o],c)}}else if(!s.isUnitSchema())throw new Error(`@aws-sdk/core/protocols - QuerySerializer unrecognized schema type ${s.getName(!0)}`)}}flush(){if(this.buffer===void 0)throw new Error("@aws-sdk/core/protocols - QuerySerializer cannot flush with nothing written to buffer.");let e=this.buffer;return delete this.buffer,e}getKey(e,r){let n=r??e;return this.settings.capitalizeKeys?n[0].toUpperCase()+n.slice(1):n}writeKey(e){e.endsWith(".")&&(e=e.slice(0,e.length-1)),this.buffer+=`&${(0,qy.extendedEncodeURIComponent)(e)}=`}writeValue(e){this.buffer+=(0,qy.extendedEncodeURIComponent)(e)}}});var $y,zd,al,uH=_(()=>{$y=require("@smithy/core/protocols"),zd=require("@smithy/core/schema");Mg();RT();$Se();al=class extends $y.RpcProtocol{options;serializer;deserializer;mixin=new Uo;constructor(e){super({defaultNamespace:e.defaultNamespace}),this.options=e;let r={timestampFormat:{useTrait:!0,default:5},httpBindings:!1,xmlNamespace:e.xmlNamespace,serviceNamespace:e.defaultNamespace,serializeEmptyLists:!0};this.serializer=new vT(r),this.deserializer=new il(r)}getShapeId(){return"aws.protocols#awsQuery"}setSerdeContext(e){this.serializer.setSerdeContext(e),this.deserializer.setSerdeContext(e)}getPayloadCodec(){throw new Error("AWSQuery protocol has no payload codec.")}async serializeRequest(e,r,n){let s=await super.serializeRequest(e,r,n);s.path.endsWith("/")||(s.path+="/"),Object.assign(s.headers,{"content-type":"application/x-www-form-urlencoded"}),((0,zd.deref)(e.input)==="unit"||!s.body)&&(s.body="");let o=e.name.split("#")[1]??e.name;return s.body=`Action=${o}&Version=${this.options.version}`+s.body,s.body.endsWith("&")&&(s.body=s.body.slice(-1)),s}async deserializeResponse(e,r,n){let s=this.deserializer,o=zd.NormalizedSchema.of(e.output),i={};if(n.statusCode>=300){let d=await(0,$y.collectBody)(n.body,r);d.byteLength>0&&Object.assign(i,await s.read(15,d)),await this.handleError(e,r,n,i,this.deserializeMetadata(n))}for(let d in n.headers){let p=n.headers[d];delete n.headers[d],n.headers[d.toLowerCase()]=p}let a=e.name.split("#")[1]??e.name,c=o.isStructSchema()&&this.useNestedResult()?a+"Result":void 0,u=await(0,$y.collectBody)(n.body,r);return u.byteLength>0&&Object.assign(i,await s.read(o,u,c)),{$metadata:this.deserializeMetadata(n),...i}}useNestedResult(){return!0}async handleError(e,r,n,s,o){let i=this.loadQueryErrorCode(n,s)??"Unknown",a=this.loadQueryError(s),c=this.loadQueryErrorMessage(s);a.message=c,a.Error={Type:a.Type,Code:a.Code,Message:c};let{errorSchema:u,errorMetadata:l}=await this.mixin.getErrorSchemaOrThrowBaseException(i,this.options.defaultNamespace,n,a,o,this.mixin.findQueryCompatibleError),d=zd.NormalizedSchema.of(u),p=zd.TypeRegistry.for(u[1]).getErrorCtor(u)??Error,g=new p(c),y={Type:a.Error.Type,Code:a.Error.Code,Error:a.Error};for(let[R,D]of d.structIterator()){let B=D.getMergedTraits().xmlName??R,M=a[B]??s[B];y[R]=this.deserializer.readSchema(D,M)}throw this.mixin.decorateServiceException(Object.assign(g,l,{$fault:d.getMergedTraits().error,message:c},y),s)}loadQueryErrorCode(e,r){let n=(r.Errors?.[0]?.Error??r.Errors?.Error??r.Error)?.Code;if(n!==void 0)return n;if(e.statusCode==404)return"NotFound"}loadQueryError(e){return e.Errors?.[0]?.Error??e.Errors?.Error??e.Error}loadQueryErrorMessage(e){let r=this.loadQueryError(e);return r?.message??r?.Message??e.message??e.Message??"Unknown"}getDefaultContentType(){return"application/x-www-form-urlencoded"}}});var PT,GSe=_(()=>{uH();PT=class extends al{options;constructor(e){super(e),this.options=e;let r={capitalizeKeys:!0,flattenLists:!0,serializeEmptyLists:!1};Object.assign(this.serializer.settings,r)}useNestedResult(){return!1}}});var jSe,VSe,lH,HSe,bT,dH=_(()=>{jSe=O(CT()),VSe=require("@smithy/smithy-client");tH();lH=(t,e)=>pT(t,e).then(r=>{if(r.length){let n;try{n=(0,jSe.parseXML)(r)}catch(a){throw a&&typeof a=="object"&&Object.defineProperty(a,"$responseBodyText",{value:r}),a}let s="#text",o=Object.keys(n)[0],i=n[o];return i[s]&&(i[o]=i[s],delete i[s]),(0,VSe.getValueFromTextNode)(i)}return{}}),HSe=async(t,e)=>{let r=await lH(t,e);return r.Error&&(r.Error.message=r.Error.message??r.Error.Message),r},bT=(t,e)=>{if(e?.Error?.Code!==void 0)return e.Error.Code;if(e?.Code!==void 0)return e.Code;if(t.statusCode==404)return"NotFound"}});var qo,zSe,IT,AT,pH,TT,Vg,mH=_(()=>{qo=O(CT()),zSe=require("@smithy/core/protocols"),IT=require("@smithy/core/schema"),AT=require("@smithy/core/serde"),pH=require("@smithy/smithy-client"),TT=require("@smithy/util-base64");rl();Fy();Vg=class extends Tn{settings;stringBuffer;byteBuffer;buffer;constructor(e){super(),this.settings=e}write(e,r){let n=IT.NormalizedSchema.of(e);if(n.isStringSchema()&&typeof r=="string")this.stringBuffer=r;else if(n.isBlobSchema())this.byteBuffer="byteLength"in r?r:(this.serdeContext?.base64Decoder??TT.fromBase64)(r);else{this.buffer=this.writeStruct(n,r,void 0);let s=n.getMergedTraits();s.httpPayload&&!s.xmlName&&this.buffer.withName(n.getName())}}flush(){if(this.byteBuffer!==void 0){let r=this.byteBuffer;return delete this.byteBuffer,r}if(this.stringBuffer!==void 0){let r=this.stringBuffer;return delete this.stringBuffer,r}let e=this.buffer;return this.settings.xmlNamespace&&(e?.attributes?.xmlns||e.addAttribute("xmlns",this.settings.xmlNamespace)),delete this.buffer,e.toString()}writeStruct(e,r,n){let s=e.getMergedTraits(),o=e.isMemberSchema()&&!s.httpPayload?e.getMemberTraits().xmlName??e.getMemberName():s.xmlName??e.getName();if(!o||!e.isStructSchema())throw new Error(`@aws-sdk/core/protocols - xml serializer, cannot write struct with empty name or non-struct, schema=${e.getName(!0)}.`);let i=qo.XmlNode.of(o),[a,c]=this.getXmlnsAttribute(e,n);for(let[u,l]of Fg(e,r)){let d=r[u];if(d!=null||l.isIdempotencyToken()){if(l.getMergedTraits().xmlAttribute){i.addAttribute(l.getMergedTraits().xmlName??u,this.writeSimple(l,d));continue}if(l.isListSchema())this.writeList(l,d,i,c);else if(l.isMapSchema())this.writeMap(l,d,i,c);else if(l.isStructSchema())i.addChildNode(this.writeStruct(l,d,c));else{let p=qo.XmlNode.of(l.getMergedTraits().xmlName??l.getMemberName());this.writeSimpleInto(l,d,p,c),i.addChildNode(p)}}}return c&&i.addAttribute(a,c),i}writeList(e,r,n,s){if(!e.isMemberSchema())throw new Error(`@aws-sdk/core/protocols - xml serializer, cannot write non-member list: ${e.getName(!0)}`);let o=e.getMergedTraits(),i=e.getValueSchema(),a=i.getMergedTraits(),c=!!a.sparse,u=!!o.xmlFlattened,[l,d]=this.getXmlnsAttribute(e,s),p=(g,y)=>{if(i.isListSchema())this.writeList(i,Array.isArray(y)?y:[y],g,d);else if(i.isMapSchema())this.writeMap(i,y,g,d);else if(i.isStructSchema()){let R=this.writeStruct(i,y,d);g.addChildNode(R.withName(u?o.xmlName??e.getMemberName():a.xmlName??"member"))}else{let R=qo.XmlNode.of(u?o.xmlName??e.getMemberName():a.xmlName??"member");this.writeSimpleInto(i,y,R,d),g.addChildNode(R)}};if(u)for(let g of r)(c||g!=null)&&p(n,g);else{let g=qo.XmlNode.of(o.xmlName??e.getMemberName());d&&g.addAttribute(l,d);for(let y of r)(c||y!=null)&&p(g,y);n.addChildNode(g)}}writeMap(e,r,n,s,o=!1){if(!e.isMemberSchema())throw new Error(`@aws-sdk/core/protocols - xml serializer, cannot write non-member map: ${e.getName(!0)}`);let i=e.getMergedTraits(),a=e.getKeySchema(),u=a.getMergedTraits().xmlName??"key",l=e.getValueSchema(),d=l.getMergedTraits(),p=d.xmlName??"value",g=!!d.sparse,y=!!i.xmlFlattened,[R,D]=this.getXmlnsAttribute(e,s),B=(M,ge,Y)=>{let Te=qo.XmlNode.of(u,ge),[Ht,Tt]=this.getXmlnsAttribute(a,D);Tt&&Te.addAttribute(Ht,Tt),M.addChildNode(Te);let Ne=qo.XmlNode.of(p);l.isListSchema()?this.writeList(l,Y,Ne,D):l.isMapSchema()?this.writeMap(l,Y,Ne,D,!0):l.isStructSchema()?Ne=this.writeStruct(l,Y,D):this.writeSimpleInto(l,Y,Ne,D),M.addChildNode(Ne)};if(y){for(let[M,ge]of Object.entries(r))if(g||ge!=null){let Y=qo.XmlNode.of(i.xmlName??e.getMemberName());B(Y,M,ge),n.addChildNode(Y)}}else{let M;o||(M=qo.XmlNode.of(i.xmlName??e.getMemberName()),D&&M.addAttribute(R,D),n.addChildNode(M));for(let[ge,Y]of Object.entries(r))if(g||Y!=null){let Te=qo.XmlNode.of("entry");B(Te,ge,Y),(o?n:M).addChildNode(Te)}}}writeSimple(e,r){if(r===null)throw new Error("@aws-sdk/core/protocols - (XML serializer) cannot write null value.");let n=IT.NormalizedSchema.of(e),s=null;if(r&&typeof r=="object")if(n.isBlobSchema())s=(this.serdeContext?.base64Encoder??TT.toBase64)(r);else if(n.isTimestampSchema()&&r instanceof Date)switch((0,zSe.determineTimestampFormat)(n,this.settings)){case 5:s=r.toISOString().replace(".000Z","Z");break;case 6:s=(0,pH.dateToUtcString)(r);break;case 7:s=String(r.getTime()/1e3);break;default:console.warn("Missing timestamp format, using http date",r),s=(0,pH.dateToUtcString)(r);break}else{if(n.isBigDecimalSchema()&&r)return r instanceof AT.NumericValue?r.string:String(r);throw n.isMapSchema()||n.isListSchema()?new Error("@aws-sdk/core/protocols - xml serializer, cannot call _write() on List/Map schema, call writeList or writeMap() instead."):new Error(`@aws-sdk/core/protocols - xml serializer, unhandled schema type for object value and schema: ${n.getName(!0)}`)}if((n.isBooleanSchema()||n.isNumericSchema()||n.isBigIntegerSchema()||n.isBigDecimalSchema())&&(s=String(r)),n.isStringSchema()&&(r===void 0&&n.isIdempotencyToken()?s=(0,AT.generateIdempotencyToken)():s=String(r)),s===null)throw new Error(`Unhandled schema-value pair ${n.getName(!0)}=${r}`);return s}writeSimpleInto(e,r,n,s){let o=this.writeSimple(e,r),i=IT.NormalizedSchema.of(e),a=new qo.XmlText(o),[c,u]=this.getXmlnsAttribute(i,s);u&&n.addAttribute(c,u),n.addChildNode(a)}getXmlnsAttribute(e,r){let n=e.getMergedTraits(),[s,o]=n.xmlNamespace??[];return o&&o!==r?[s?`xmlns:${s}`:"xmlns",o]:[void 0,void 0]}}});var Hg,gH=_(()=>{rl();RT();mH();Hg=class extends Tn{settings;constructor(e){super(),this.settings=e}createSerializer(){let e=new Vg(this.settings);return e.setSerdeContext(this.serdeContext),e}createDeserializer(){let e=new il(this.settings);return e.setSerdeContext(this.serdeContext),e}}});var zg,Gy,wT,WSe=_(()=>{zg=require("@smithy/core/protocols"),Gy=require("@smithy/core/schema");Mg();dH();gH();wT=class extends zg.HttpBindingProtocol{codec;serializer;deserializer;mixin=new Uo;constructor(e){super(e);let r={timestampFormat:{useTrait:!0,default:5},httpBindings:!0,xmlNamespace:e.xmlNamespace,serviceNamespace:e.defaultNamespace};this.codec=new Hg(r),this.serializer=new zg.HttpInterceptingShapeSerializer(this.codec.createSerializer(),r),this.deserializer=new zg.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(),r)}getPayloadCodec(){return this.codec}getShapeId(){return"aws.protocols#restXml"}async serializeRequest(e,r,n){let s=await super.serializeRequest(e,r,n),o=Gy.NormalizedSchema.of(e.input);if(!s.headers["content-type"]){let i=this.mixin.resolveRestContentType(this.getDefaultContentType(),o);i&&(s.headers["content-type"]=i)}return typeof s.body=="string"&&s.headers["content-type"]===this.getDefaultContentType()&&!s.body.startsWith("'+s.body),s}async deserializeResponse(e,r,n){return super.deserializeResponse(e,r,n)}async handleError(e,r,n,s,o){let i=bT(n,s)??"Unknown",{errorSchema:a,errorMetadata:c}=await this.mixin.getErrorSchemaOrThrowBaseException(i,this.options.defaultNamespace,n,s,o),u=Gy.NormalizedSchema.of(a),l=s.Error?.message??s.Error?.Message??s.message??s.Message??"Unknown",d=Gy.TypeRegistry.for(a[1]).getErrorCtor(a)??Error,p=new d(l);await this.deserializeHttpMessage(a,r,n,s);let g={};for(let[y,R]of u.structIterator()){let D=R.getMergedTraits().xmlName??y,B=s.Error?.[D]??s[D];g[y]=this.codec.createDeserializer().readSchema(R,B)}throw this.mixin.decorateServiceException(Object.assign(p,c,{$fault:u.getMergedTraits().error,message:l},g),s)}getDefaultContentType(){return"application/xml"}hasUnstructuredPayloadBinding(e){for(let[,r]of e.structIterator())if(r.getMergedTraits().httpPayload)return!(r.isStructSchema()||r.isMapSchema()||r.isListSchema());return!1}}});var Wg={};wt(Wg,{AwsEc2QueryProtocol:()=>PT,AwsJson1_0Protocol:()=>ST,AwsJson1_1Protocol:()=>ET,AwsJsonRpcProtocol:()=>sl,AwsQueryProtocol:()=>al,AwsRestJsonProtocol:()=>ol,AwsRestXmlProtocol:()=>wT,AwsSmithyRpcV2CborProtocol:()=>uT,JsonCodec:()=>nl,JsonShapeDeserializer:()=>Ug,JsonShapeSerializer:()=>qg,XmlCodec:()=>Hg,XmlShapeDeserializer:()=>il,XmlShapeSerializer:()=>Vg,_toBool:()=>uSe,_toNum:()=>lSe,_toStr:()=>cSe,awsExpectUnion:()=>DSe,loadRestJsonErrorCode:()=>Bg,loadRestXmlErrorCode:()=>bT,parseJsonBody:()=>By,parseJsonErrorBody:()=>ESe,parseXmlBody:()=>lH,parseXmlErrorBody:()=>HSe});var wa=_(()=>{aSe();dSe();ISe();ASe();hT();TSe();fT();rH();sH();OSe();Uy();GSe();uH();WSe();gH();RT();mH();dH()});var Fr={};wt(Fr,{AWSSDKSigV4Signer:()=>zV,AwsEc2QueryProtocol:()=>PT,AwsJson1_0Protocol:()=>ST,AwsJson1_1Protocol:()=>ET,AwsJsonRpcProtocol:()=>sl,AwsQueryProtocol:()=>al,AwsRestJsonProtocol:()=>ol,AwsRestXmlProtocol:()=>wT,AwsSdkSigV4ASigner:()=>Ly,AwsSdkSigV4Signer:()=>An,AwsSmithyRpcV2CborProtocol:()=>uT,JsonCodec:()=>nl,JsonShapeDeserializer:()=>Ug,JsonShapeSerializer:()=>qg,NODE_AUTH_SCHEME_PREFERENCE_OPTIONS:()=>tl,NODE_SIGV4A_CONFIG_OPTIONS:()=>tSe,XmlCodec:()=>Hg,XmlShapeDeserializer:()=>il,XmlShapeSerializer:()=>Vg,_toBool:()=>uSe,_toNum:()=>lSe,_toStr:()=>cSe,awsExpectUnion:()=>DSe,emitWarningIfUnsupportedVersion:()=>Zu,getBearerTokenEnvKey:()=>cT,loadRestJsonErrorCode:()=>Bg,loadRestXmlErrorCode:()=>bT,parseJsonBody:()=>By,parseJsonErrorBody:()=>ESe,parseXmlBody:()=>lH,parseXmlErrorBody:()=>HSe,resolveAWSSDKSigV4Config:()=>nSe,resolveAwsSdkSigV4AConfig:()=>eSe,resolveAwsSdkSigV4Config:()=>Nc,setCredentialFeature:()=>el,setFeature:()=>Fhe,setTokenFeature:()=>Uhe,state:()=>aT,validateSigningProperties:()=>Lg});var Dt=_(()=>{Bo();YV();wa()});var Oa=b(Kg=>{"use strict";var klt=require("@smithy/core"),Nlt=Ta(),Llt=require("@smithy/protocol-http"),Da=(Dt(),ue(Fr)),JSe=void 0;function Mlt(t){return t===void 0?!0:typeof t=="string"&&t.length<=50}function Flt(t){let e=klt.normalizeProvider(t.userAgentAppId??JSe),{customUserAgent:r}=t;return Object.assign(t,{customUserAgent:typeof r=="string"?[[r]]:r,userAgentAppId:async()=>{let n=await e();if(!Mlt(n)){let s=t.logger?.constructor?.name==="NoOpLogger"||!t.logger?console:t.logger;typeof n!="string"?s?.warn("userAgentAppId must be a string or undefined."):n.length>50&&s?.warn("The provided userAgentAppId exceeds the maximum length of 50 characters.")}return n}})}var Blt=/\d{12}\.ddb/;async function Ult(t,e,r){if(r.request?.headers?.["smithy-protocol"]==="rpc-v2-cbor"&&Da.setFeature(t,"PROTOCOL_RPC_V2_CBOR","M"),typeof e.retryStrategy=="function"){let o=await e.retryStrategy();typeof o.acquireInitialRetryToken=="function"?o.constructor?.name?.includes("Adaptive")?Da.setFeature(t,"RETRY_MODE_ADAPTIVE","F"):Da.setFeature(t,"RETRY_MODE_STANDARD","E"):Da.setFeature(t,"RETRY_MODE_LEGACY","D")}if(typeof e.accountIdEndpointMode=="function"){let o=t.endpointV2;switch(String(o?.url?.hostname).match(Blt)&&Da.setFeature(t,"ACCOUNT_ID_ENDPOINT","O"),await e.accountIdEndpointMode?.()){case"disabled":Da.setFeature(t,"ACCOUNT_ID_MODE_DISABLED","Q");break;case"preferred":Da.setFeature(t,"ACCOUNT_ID_MODE_PREFERRED","P");break;case"required":Da.setFeature(t,"ACCOUNT_ID_MODE_REQUIRED","R");break}}let s=t.__smithy_context?.selectedHttpAuthScheme?.identity;if(s?.$source){let o=s;o.accountId&&Da.setFeature(t,"RESOLVED_ACCOUNT_ID","T");for(let[i,a]of Object.entries(o.$source??{}))Da.setFeature(t,i,a)}}var KSe="user-agent",fH="x-amz-user-agent",QSe=" ",hH="/",qlt=/[^!$%&'*+\-.^_`|~\w]/g,$lt=/[^!$%&'*+\-.^_`|~\w#]/g,XSe="-",Glt=1024;function jlt(t){let e="";for(let r in t){let n=t[r];if(e.length+n.length+1<=Glt){e.length?e+=","+n:e+=n;continue}break}return e}var YSe=t=>(e,r)=>async n=>{let{request:s}=n;if(!Llt.HttpRequest.isInstance(s))return e(n);let{headers:o}=s,i=r?.userAgent?.map(DT)||[],a=(await t.defaultUserAgentProvider()).map(DT);await Ult(r,t,n);let c=r;a.push(`m/${jlt(Object.assign({},r.__smithy_context?.features,c.__aws_sdk_context?.features))}`);let u=t?.customUserAgent?.map(DT)||[],l=await t.userAgentAppId();l&&a.push(DT(["app",`${l}`]));let d=Nlt.getUserAgentPrefix(),p=(d?[d]:[]).concat([...a,...i,...u]).join(QSe),g=[...a.filter(y=>y.startsWith("aws-sdk-")),...u].join(QSe);return t.runtime!=="browser"?(g&&(o[fH]=o[fH]?`${o[KSe]} ${g}`:g),o[KSe]=p):o[fH]=p,e({...n,request:s})},DT=t=>{let e=t[0].split(hH).map(i=>i.replace(qlt,XSe)).join(hH),r=t[1]?.replace($lt,XSe),n=e.indexOf(hH),s=e.substring(0,n),o=e.substring(n+1);return s==="api"&&(o=o.toLowerCase()),[s,o,r].filter(i=>i&&i.length>0).reduce((i,a,c)=>{switch(c){case 0:return a;case 1:return`${i}/${a}`;default:return`${i}#${a}`}},"")},ZSe={name:"getUserAgentMiddleware",step:"build",priority:"low",tags:["SET_USER_AGENT","USER_AGENT"],override:!0},Vlt=t=>({applyToStack:e=>{e.add(YSe(t),ZSe)}});Kg.DEFAULT_UA_APP_ID=JSe;Kg.getUserAgentMiddlewareOptions=ZSe;Kg.getUserAgentPlugin=Vlt;Kg.resolveUserAgentConfig=Flt;Kg.userAgentMiddleware=YSe});var EH=b(cl=>{"use strict";Object.defineProperty(cl,"__esModule",{value:!0});cl.resolveHttpAuthSchemeConfig=cl.defaultCloudWatchHttpAuthSchemeProvider=cl.defaultCloudWatchHttpAuthSchemeParametersProvider=void 0;var Hlt=(Dt(),ue(Fr)),SH=require("@smithy/util-middleware"),zlt=async(t,e,r)=>({operation:(0,SH.getSmithyContext)(e).operation,region:await(0,SH.normalizeProvider)(t.region)()||(()=>{throw new Error("expected `region` to be configured for `aws.auth#sigv4`")})()});cl.defaultCloudWatchHttpAuthSchemeParametersProvider=zlt;function Wlt(t){return{schemeId:"aws.auth#sigv4",signingProperties:{name:"monitoring",region:t.region},propertiesExtractor:(e,r)=>({signingProperties:{config:e,context:r}})}}var Klt=t=>{let e=[];switch(t.operation){default:e.push(Wlt(t))}return e};cl.defaultCloudWatchHttpAuthSchemeProvider=Klt;var Qlt=t=>{let e=(0,Hlt.resolveAwsSdkSigV4Config)(t);return Object.assign(e,{authSchemePreference:(0,SH.normalizeProvider)(t.authSchemePreference??[])})};cl.resolveHttpAuthSchemeConfig=Qlt});var eEe=b((vKr,Xlt)=>{Xlt.exports={name:"@aws-sdk/client-cloudwatch",description:"AWS SDK for JavaScript Cloudwatch Client for Node.js, Browser and React Native",version:"3.952.0",scripts:{build:"concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types'","build:cjs":"node ../../scripts/compilation/inline client-cloudwatch","build:es":"tsc -p tsconfig.es.json","build:include:deps":"lerna run --scope $npm_package_name --include-dependencies build","build:types":"tsc -p tsconfig.types.json","build:types:downlevel":"downlevel-dts dist-types dist-types/ts3.4",clean:"rimraf ./dist-* && rimraf *.tsbuildinfo","extract:docs":"api-extractor run --local","generate:client":"node ../../scripts/generate-clients/single-service --solo cloudwatch","test:e2e":"yarn g:vitest run -c vitest.config.e2e.mts","test:e2e:watch":"yarn g:vitest watch -c vitest.config.e2e.mts","test:index":"tsc --noEmit ./test/index-types.ts && node ./test/index-objects.spec.mjs"},main:"./dist-cjs/index.js",types:"./dist-types/index.d.ts",module:"./dist-es/index.js",sideEffects:!1,dependencies:{"@aws-crypto/sha256-browser":"5.2.0","@aws-crypto/sha256-js":"5.2.0","@aws-sdk/core":"3.947.0","@aws-sdk/credential-provider-node":"3.952.0","@aws-sdk/middleware-host-header":"3.936.0","@aws-sdk/middleware-logger":"3.936.0","@aws-sdk/middleware-recursion-detection":"3.948.0","@aws-sdk/middleware-user-agent":"3.947.0","@aws-sdk/region-config-resolver":"3.936.0","@aws-sdk/types":"3.936.0","@aws-sdk/util-endpoints":"3.936.0","@aws-sdk/util-user-agent-browser":"3.936.0","@aws-sdk/util-user-agent-node":"3.947.0","@smithy/config-resolver":"^4.4.3","@smithy/core":"^3.18.7","@smithy/fetch-http-handler":"^5.3.6","@smithy/hash-node":"^4.2.5","@smithy/invalid-dependency":"^4.2.5","@smithy/middleware-compression":"^4.3.14","@smithy/middleware-content-length":"^4.2.5","@smithy/middleware-endpoint":"^4.3.14","@smithy/middleware-retry":"^4.4.14","@smithy/middleware-serde":"^4.2.6","@smithy/middleware-stack":"^4.2.5","@smithy/node-config-provider":"^4.3.5","@smithy/node-http-handler":"^4.4.5","@smithy/protocol-http":"^5.3.5","@smithy/smithy-client":"^4.9.10","@smithy/types":"^4.9.0","@smithy/url-parser":"^4.2.5","@smithy/util-base64":"^4.3.0","@smithy/util-body-length-browser":"^4.2.0","@smithy/util-body-length-node":"^4.2.1","@smithy/util-defaults-mode-browser":"^4.3.13","@smithy/util-defaults-mode-node":"^4.2.16","@smithy/util-endpoints":"^3.2.5","@smithy/util-middleware":"^4.2.5","@smithy/util-retry":"^4.2.5","@smithy/util-utf8":"^4.2.0","@smithy/util-waiter":"^4.2.5",tslib:"^2.6.2"},devDependencies:{"@tsconfig/node18":"18.2.4","@types/node":"^18.19.69",concurrently:"7.0.0","downlevel-dts":"0.10.1",rimraf:"3.0.2",typescript:"~5.8.3"},engines:{node:">=18.0.0"},typesVersions:{"<4.0":{"dist-types/*":["dist-types/ts3.4/*"]}},files:["dist-*/**"],author:{name:"AWS SDK for JavaScript Team",url:"https://aws.amazon.com/javascript/"},license:"Apache-2.0",browser:{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.browser"},"react-native":{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.native"},homepage:"https://github.com/aws/aws-sdk-js-v3/tree/main/clients/client-cloudwatch",repository:{type:"git",url:"https://github.com/aws/aws-sdk-js-v3.git",directory:"clients/client-cloudwatch"}}});var yH=b(ul=>{"use strict";var Jlt=(Bo(),ue(kc)),Ylt=require("@smithy/property-provider"),tEe="AWS_ACCESS_KEY_ID",rEe="AWS_SECRET_ACCESS_KEY",nEe="AWS_SESSION_TOKEN",sEe="AWS_CREDENTIAL_EXPIRATION",oEe="AWS_CREDENTIAL_SCOPE",iEe="AWS_ACCOUNT_ID",Zlt=t=>async()=>{t?.logger?.debug("@aws-sdk/credential-provider-env - fromEnv");let e=process.env[tEe],r=process.env[rEe],n=process.env[nEe],s=process.env[sEe],o=process.env[oEe],i=process.env[iEe];if(e&&r){let a={accessKeyId:e,secretAccessKey:r,...n&&{sessionToken:n},...s&&{expiration:new Date(s)},...o&&{credentialScope:o},...i&&{accountId:i}};return Jlt.setCredentialFeature(a,"CREDENTIALS_ENV_VARS","g"),a}throw new Ylt.CredentialsProviderError("Unable to find environment variable credentials.",{logger:t?.logger})};ul.ENV_ACCOUNT_ID=iEe;ul.ENV_CREDENTIAL_SCOPE=oEe;ul.ENV_EXPIRATION=sEe;ul.ENV_KEY=tEe;ul.ENV_SECRET=rEe;ul.ENV_SESSION=nEe;ul.fromEnv=Zlt});var aEe=b(OT=>{"use strict";Object.defineProperty(OT,"__esModule",{value:!0});OT.checkUrl=void 0;var edt=require("@smithy/property-provider"),tdt="169.254.170.2",rdt="169.254.170.23",ndt="[fd00:ec2::23]",sdt=(t,e)=>{if(t.protocol!=="https:"&&!(t.hostname===tdt||t.hostname===rdt||t.hostname===ndt)){if(t.hostname.includes("[")){if(t.hostname==="[::1]"||t.hostname==="[0000:0000:0000:0000:0000:0000:0000:0001]")return}else{if(t.hostname==="localhost")return;let r=t.hostname.split("."),n=s=>{let o=parseInt(s,10);return 0<=o&&o<=255};if(r[0]==="127"&&n(r[1])&&n(r[2])&&n(r[3])&&r.length===4)return}throw new edt.CredentialsProviderError(`URL not accepted. It must either be HTTPS or match one of the following: - - loopback CIDR 127.0.0.0/8 or [::1/128] - - ECS container host 169.254.170.2 - - EKS container host 169.254.170.23 or [fd00:ec2::23]`,{logger:e})}};OT.checkUrl=sdt});var cEe=b(kT=>{"use strict";Object.defineProperty(kT,"__esModule",{value:!0});kT.createGetRequest=cdt;kT.getCredentials=udt;var _H=require("@smithy/property-provider"),odt=require("@smithy/protocol-http"),idt=require("@smithy/smithy-client"),adt=require("@smithy/util-stream");function cdt(t){return new odt.HttpRequest({protocol:t.protocol,hostname:t.hostname,port:Number(t.port),path:t.pathname,query:Array.from(t.searchParams.entries()).reduce((e,[r,n])=>(e[r]=n,e),{}),fragment:t.hash})}async function udt(t,e){let n=await(0,adt.sdkStreamMixin)(t.body).transformToString();if(t.statusCode===200){let s=JSON.parse(n);if(typeof s.AccessKeyId!="string"||typeof s.SecretAccessKey!="string"||typeof s.Token!="string"||typeof s.Expiration!="string")throw new _H.CredentialsProviderError("HTTP credential provider response not of the required format, an object matching: { AccessKeyId: string, SecretAccessKey: string, Token: string, Expiration: string(rfc3339) }",{logger:e});return{accessKeyId:s.AccessKeyId,secretAccessKey:s.SecretAccessKey,sessionToken:s.Token,expiration:(0,idt.parseRfc3339DateTime)(s.Expiration)}}if(t.statusCode>=400&&t.statusCode<500){let s={};try{s=JSON.parse(n)}catch{}throw Object.assign(new _H.CredentialsProviderError(`Server responded with status: ${t.statusCode}`,{logger:e}),{Code:s.Code,Message:s.Message})}throw new _H.CredentialsProviderError(`Server responded with status: ${t.statusCode}`,{logger:e})}});var uEe=b(NT=>{"use strict";Object.defineProperty(NT,"__esModule",{value:!0});NT.retryWrapper=void 0;var ldt=(t,e,r)=>async()=>{for(let n=0;nsetTimeout(o,r))}return await t()};NT.retryWrapper=ldt});var pEe=b(LT=>{"use strict";Object.defineProperty(LT,"__esModule",{value:!0});LT.fromHttp=void 0;var ddt=require("tslib"),pdt=(Bo(),ue(kc)),mdt=require("@smithy/node-http-handler"),lEe=require("@smithy/property-provider"),gdt=ddt.__importDefault(require("fs/promises")),fdt=aEe(),dEe=cEe(),hdt=uEe(),Sdt="AWS_CONTAINER_CREDENTIALS_RELATIVE_URI",Edt="http://169.254.170.2",ydt="AWS_CONTAINER_CREDENTIALS_FULL_URI",_dt="AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE",Cdt="AWS_CONTAINER_AUTHORIZATION_TOKEN",Rdt=(t={})=>{t.logger?.debug("@aws-sdk/credential-provider-http - fromHttp");let e,r=t.awsContainerCredentialsRelativeUri??process.env[Sdt],n=t.awsContainerCredentialsFullUri??process.env[ydt],s=t.awsContainerAuthorizationToken??process.env[Cdt],o=t.awsContainerAuthorizationTokenFile??process.env[_dt],i=t.logger?.constructor?.name==="NoOpLogger"||!t.logger?.warn?console.warn:t.logger.warn.bind(t.logger);if(r&&n&&(i("@aws-sdk/credential-provider-http: you have set both awsContainerCredentialsRelativeUri and awsContainerCredentialsFullUri."),i("awsContainerCredentialsFullUri will take precedence.")),s&&o&&(i("@aws-sdk/credential-provider-http: you have set both awsContainerAuthorizationToken and awsContainerAuthorizationTokenFile."),i("awsContainerAuthorizationToken will take precedence.")),n)e=n;else if(r)e=`${Edt}${r}`;else throw new lEe.CredentialsProviderError(`No HTTP credential provider host provided. -Set AWS_CONTAINER_CREDENTIALS_FULL_URI or AWS_CONTAINER_CREDENTIALS_RELATIVE_URI.`,{logger:t.logger});let a=new URL(e);(0,fdt.checkUrl)(a,t.logger);let c=mdt.NodeHttpHandler.create({requestTimeout:t.timeout??1e3,connectionTimeout:t.timeout??1e3});return(0,hdt.retryWrapper)(async()=>{let u=(0,dEe.createGetRequest)(a);s?u.headers.Authorization=s:o&&(u.headers.Authorization=(await gdt.default.readFile(o)).toString());try{let l=await c.handle(u);return(0,dEe.getCredentials)(l.response).then(d=>(0,pdt.setCredentialFeature)(d,"CREDENTIALS_HTTP","z"))}catch(l){throw new lEe.CredentialsProviderError(String(l),{logger:t.logger})}},t.maxRetries??3,t.timeout??1e3)};LT.fromHttp=Rdt});var CH=b(MT=>{"use strict";Object.defineProperty(MT,"__esModule",{value:!0});MT.fromHttp=void 0;var vdt=pEe();Object.defineProperty(MT,"fromHttp",{enumerable:!0,get:function(){return vdt.fromHttp}})});function xdt(t){return{schemeId:"aws.auth#sigv4",signingProperties:{name:"sso-oauth",region:t.region},propertiesExtractor:(e,r)=>({signingProperties:{config:e,context:r}})}}function Pdt(t){return{schemeId:"smithy.api#noAuth"}}var jy,mEe,gEe,fEe,RH=_(()=>{Dt();jy=require("@smithy/util-middleware"),mEe=async(t,e,r)=>({operation:(0,jy.getSmithyContext)(e).operation,region:await(0,jy.normalizeProvider)(t.region)()||(()=>{throw new Error("expected `region` to be configured for `aws.auth#sigv4`")})()});gEe=t=>{let e=[];switch(t.operation){case"CreateToken":{e.push(Pdt(t));break}default:e.push(xdt(t))}return e},fEe=t=>{let e=Nc(t);return Object.assign(e,{authSchemePreference:(0,jy.normalizeProvider)(t.authSchemePreference??[])})}});var hEe,SEe,vH=_(()=>{hEe=t=>Object.assign(t,{useDualstackEndpoint:t.useDualstackEndpoint??!1,useFipsEndpoint:t.useFipsEndpoint??!1,defaultSigningName:"sso-oauth"}),SEe={UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}});var FT,xH=_(()=>{FT={name:"@aws-sdk/nested-clients",version:"3.952.0",description:"Nested clients for AWS SDK packages.",main:"./dist-cjs/index.js",module:"./dist-es/index.js",types:"./dist-types/index.d.ts",scripts:{build:"yarn lint && concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types'","build:cjs":"node ../../scripts/compilation/inline nested-clients","build:es":"tsc -p tsconfig.es.json","build:include:deps":"lerna run --scope $npm_package_name --include-dependencies build","build:types":"tsc -p tsconfig.types.json","build:types:downlevel":"downlevel-dts dist-types dist-types/ts3.4",clean:"rimraf ./dist-* && rimraf *.tsbuildinfo",lint:"node ../../scripts/validation/submodules-linter.js --pkg nested-clients",test:"yarn g:vitest run","test:watch":"yarn g:vitest watch"},engines:{node:">=18.0.0"},sideEffects:!1,author:{name:"AWS SDK for JavaScript Team",url:"https://aws.amazon.com/javascript/"},license:"Apache-2.0",dependencies:{"@aws-crypto/sha256-browser":"5.2.0","@aws-crypto/sha256-js":"5.2.0","@aws-sdk/core":"3.947.0","@aws-sdk/middleware-host-header":"3.936.0","@aws-sdk/middleware-logger":"3.936.0","@aws-sdk/middleware-recursion-detection":"3.948.0","@aws-sdk/middleware-user-agent":"3.947.0","@aws-sdk/region-config-resolver":"3.936.0","@aws-sdk/types":"3.936.0","@aws-sdk/util-endpoints":"3.936.0","@aws-sdk/util-user-agent-browser":"3.936.0","@aws-sdk/util-user-agent-node":"3.947.0","@smithy/config-resolver":"^4.4.3","@smithy/core":"^3.18.7","@smithy/fetch-http-handler":"^5.3.6","@smithy/hash-node":"^4.2.5","@smithy/invalid-dependency":"^4.2.5","@smithy/middleware-content-length":"^4.2.5","@smithy/middleware-endpoint":"^4.3.14","@smithy/middleware-retry":"^4.4.14","@smithy/middleware-serde":"^4.2.6","@smithy/middleware-stack":"^4.2.5","@smithy/node-config-provider":"^4.3.5","@smithy/node-http-handler":"^4.4.5","@smithy/protocol-http":"^5.3.5","@smithy/smithy-client":"^4.9.10","@smithy/types":"^4.9.0","@smithy/url-parser":"^4.2.5","@smithy/util-base64":"^4.3.0","@smithy/util-body-length-browser":"^4.2.0","@smithy/util-body-length-node":"^4.2.1","@smithy/util-defaults-mode-browser":"^4.3.13","@smithy/util-defaults-mode-node":"^4.2.16","@smithy/util-endpoints":"^3.2.5","@smithy/util-middleware":"^4.2.5","@smithy/util-retry":"^4.2.5","@smithy/util-utf8":"^4.2.0",tslib:"^2.6.2"},devDependencies:{concurrently:"7.0.0","downlevel-dts":"0.10.1",rimraf:"3.0.2",typescript:"~5.8.3"},typesVersions:{"<4.0":{"dist-types/*":["dist-types/ts3.4/*"]}},files:["./signin.d.ts","./signin.js","./sso-oidc.d.ts","./sso-oidc.js","./sts.d.ts","./sts.js","dist-*/**"],browser:{"./dist-es/submodules/signin/runtimeConfig":"./dist-es/submodules/signin/runtimeConfig.browser","./dist-es/submodules/sso-oidc/runtimeConfig":"./dist-es/submodules/sso-oidc/runtimeConfig.browser","./dist-es/submodules/sts/runtimeConfig":"./dist-es/submodules/sts/runtimeConfig.browser"},"react-native":{},homepage:"https://github.com/aws/aws-sdk-js-v3/tree/main/packages/nested-clients",repository:{type:"git",url:"https://github.com/aws/aws-sdk-js-v3.git",directory:"packages/nested-clients"},exports:{"./package.json":"./package.json","./sso-oidc":{types:"./dist-types/submodules/sso-oidc/index.d.ts",module:"./dist-es/submodules/sso-oidc/index.js",node:"./dist-cjs/submodules/sso-oidc/index.js",import:"./dist-es/submodules/sso-oidc/index.js",require:"./dist-cjs/submodules/sso-oidc/index.js"},"./sts":{types:"./dist-types/submodules/sts/index.d.ts",module:"./dist-es/submodules/sts/index.js",node:"./dist-cjs/submodules/sts/index.js",import:"./dist-es/submodules/sts/index.js",require:"./dist-cjs/submodules/sts/index.js"},"./signin":{types:"./dist-types/submodules/signin/index.d.ts",module:"./dist-es/submodules/signin/index.js",node:"./dist-cjs/submodules/signin/index.js",import:"./dist-es/submodules/signin/index.js",require:"./dist-cjs/submodules/signin/index.js"}}}});var Mc=b(Wd=>{"use strict";var EEe=require("os"),PH=require("process"),Idt=Oa(),yEe={isCrtAvailable:!1},Adt=()=>yEe.isCrtAvailable?["md/crt-avail"]:null,_Ee=({serviceId:t,clientVersion:e})=>async r=>{let n=[["aws-sdk-js",e],["ua","2.1"],[`os/${EEe.platform()}`,EEe.release()],["lang/js"],["md/nodejs",`${PH.versions.node}`]],s=Adt();s&&n.push(s),t&&n.push([`api/${t}`,e]),PH.env.AWS_EXECUTION_ENV&&n.push([`exec-env/${PH.env.AWS_EXECUTION_ENV}`]);let o=await r?.userAgentAppId?.();return o?[...n,[`app/${o}`]]:[...n]},Tdt=_Ee,CEe="AWS_SDK_UA_APP_ID",REe="sdk_ua_app_id",wdt="sdk-ua-app-id",Ddt={environmentVariableSelector:t=>t[CEe],configFileSelector:t=>t[REe]??t[wdt],default:Idt.DEFAULT_UA_APP_ID};Wd.NODE_APP_ID_CONFIG_OPTIONS=Ddt;Wd.UA_APP_ID_ENV_NAME=CEe;Wd.UA_APP_ID_INI_NAME=REe;Wd.createDefaultUserAgentProvider=_Ee;Wd.crtAvailability=yEe;Wd.defaultUserAgent=Tdt});var OEe,Go,jo,Jg,vEe,Vy,Qg,Xg,Fc,bH,IH,xEe,PEe,bEe,kEe,NEe,$o,IEe,LEe,AEe,TEe,wEe,DEe,Odt,MEe,FEe=_(()=>{OEe="required",Go="fn",jo="argv",Jg="ref",vEe="isSet",Vy="booleanEquals",Qg="error",Xg="endpoint",Fc="tree",bH="PartitionResult",IH="getAttr",xEe={[OEe]:!1,type:"string"},PEe={[OEe]:!0,default:!1,type:"boolean"},bEe={[Jg]:"Endpoint"},kEe={[Go]:Vy,[jo]:[{[Jg]:"UseFIPS"},!0]},NEe={[Go]:Vy,[jo]:[{[Jg]:"UseDualStack"},!0]},$o={},IEe={[Go]:IH,[jo]:[{[Jg]:bH},"supportsFIPS"]},LEe={[Jg]:bH},AEe={[Go]:Vy,[jo]:[!0,{[Go]:IH,[jo]:[LEe,"supportsDualStack"]}]},TEe=[kEe],wEe=[NEe],DEe=[{[Jg]:"Region"}],Odt={version:"1.0",parameters:{Region:xEe,UseDualStack:PEe,UseFIPS:PEe,Endpoint:xEe},rules:[{conditions:[{[Go]:vEe,[jo]:[bEe]}],rules:[{conditions:TEe,error:"Invalid Configuration: FIPS and custom endpoint are not supported",type:Qg},{conditions:wEe,error:"Invalid Configuration: Dualstack and custom endpoint are not supported",type:Qg},{endpoint:{url:bEe,properties:$o,headers:$o},type:Xg}],type:Fc},{conditions:[{[Go]:vEe,[jo]:DEe}],rules:[{conditions:[{[Go]:"aws.partition",[jo]:DEe,assign:bH}],rules:[{conditions:[kEe,NEe],rules:[{conditions:[{[Go]:Vy,[jo]:[!0,IEe]},AEe],rules:[{endpoint:{url:"https://oidc-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:$o,headers:$o},type:Xg}],type:Fc},{error:"FIPS and DualStack are enabled, but this partition does not support one or both",type:Qg}],type:Fc},{conditions:TEe,rules:[{conditions:[{[Go]:Vy,[jo]:[IEe,!0]}],rules:[{conditions:[{[Go]:"stringEquals",[jo]:[{[Go]:IH,[jo]:[LEe,"name"]},"aws-us-gov"]}],endpoint:{url:"https://oidc.{Region}.amazonaws.com",properties:$o,headers:$o},type:Xg},{endpoint:{url:"https://oidc-fips.{Region}.{PartitionResult#dnsSuffix}",properties:$o,headers:$o},type:Xg}],type:Fc},{error:"FIPS is enabled but this partition does not support FIPS",type:Qg}],type:Fc},{conditions:wEe,rules:[{conditions:[AEe],rules:[{endpoint:{url:"https://oidc.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:$o,headers:$o},type:Xg}],type:Fc},{error:"DualStack is enabled but this partition does not support DualStack",type:Qg}],type:Fc},{endpoint:{url:"https://oidc.{Region}.{PartitionResult#dnsSuffix}",properties:$o,headers:$o},type:Xg}],type:Fc}],type:Fc},{error:"Invalid Configuration: Missing Region",type:Qg}]},MEe=Odt});var BEe,Yg,kdt,UEe,qEe=_(()=>{BEe=O(Ta()),Yg=require("@smithy/util-endpoints");FEe();kdt=new Yg.EndpointCache({size:50,params:["Endpoint","Region","UseDualStack","UseFIPS"]}),UEe=(t,e={})=>kdt.get(t,()=>(0,Yg.resolveEndpoint)(MEe,{endpointParams:t,logger:e.logger}));Yg.customEndpointFunctions.aws=BEe.awsEndpointFunctions});var $Ee,GEe,jEe,BT,UT,VEe,HEe=_(()=>{Dt();wa();$Ee=require("@smithy/core"),GEe=require("@smithy/smithy-client"),jEe=require("@smithy/url-parser"),BT=require("@smithy/util-base64"),UT=require("@smithy/util-utf8");RH();qEe();VEe=t=>({apiVersion:"2019-06-10",base64Decoder:t?.base64Decoder??BT.fromBase64,base64Encoder:t?.base64Encoder??BT.toBase64,disableHostPrefix:t?.disableHostPrefix??!1,endpointProvider:t?.endpointProvider??UEe,extensions:t?.extensions??[],httpAuthSchemeProvider:t?.httpAuthSchemeProvider??gEe,httpAuthSchemes:t?.httpAuthSchemes??[{schemeId:"aws.auth#sigv4",identityProvider:e=>e.getIdentityProvider("aws.auth#sigv4"),signer:new An},{schemeId:"smithy.api#noAuth",identityProvider:e=>e.getIdentityProvider("smithy.api#noAuth")||(async()=>({})),signer:new $Ee.NoAuthSigner}],logger:t?.logger??new GEe.NoOpLogger,protocol:t?.protocol??new ol({defaultNamespace:"com.amazonaws.ssooidc"}),serviceId:t?.serviceId??"SSO OIDC",urlParser:t?.urlParser??jEe.parseUrl,utf8Decoder:t?.utf8Decoder??UT.fromUtf8,utf8Encoder:t?.utf8Encoder??UT.toUtf8})});var qT,dl,zEe,$T,ll,GT,jT,WEe,KEe,QEe,XEe,JEe=_(()=>{xH();Dt();qT=O(Mc()),dl=require("@smithy/config-resolver"),zEe=require("@smithy/hash-node"),$T=require("@smithy/middleware-retry"),ll=require("@smithy/node-config-provider"),GT=require("@smithy/node-http-handler"),jT=require("@smithy/smithy-client"),WEe=require("@smithy/util-body-length-node"),KEe=require("@smithy/util-defaults-mode-node"),QEe=require("@smithy/util-retry");HEe();XEe=t=>{(0,jT.emitWarningIfUnsupportedVersion)(process.version);let e=(0,KEe.resolveDefaultsModeConfig)(t),r=()=>e().then(jT.loadConfigsForDefaultMode),n=VEe(t);Zu(process.version);let s={profile:t?.profile,logger:n.logger};return{...n,...t,runtime:"node",defaultsMode:e,authSchemePreference:t?.authSchemePreference??(0,ll.loadConfig)(tl,s),bodyLengthChecker:t?.bodyLengthChecker??WEe.calculateBodyLength,defaultUserAgentProvider:t?.defaultUserAgentProvider??(0,qT.createDefaultUserAgentProvider)({serviceId:n.serviceId,clientVersion:FT.version}),maxAttempts:t?.maxAttempts??(0,ll.loadConfig)($T.NODE_MAX_ATTEMPT_CONFIG_OPTIONS,t),region:t?.region??(0,ll.loadConfig)(dl.NODE_REGION_CONFIG_OPTIONS,{...dl.NODE_REGION_CONFIG_FILE_OPTIONS,...s}),requestHandler:GT.NodeHttpHandler.create(t?.requestHandler??r),retryMode:t?.retryMode??(0,ll.loadConfig)({...$T.NODE_RETRY_MODE_CONFIG_OPTIONS,default:async()=>(await r()).retryMode||QEe.DEFAULT_RETRY_MODE},t),sha256:t?.sha256??zEe.Hash.bind(null,"sha256"),streamCollector:t?.streamCollector??GT.streamCollector,useDualstackEndpoint:t?.useDualstackEndpoint??(0,ll.loadConfig)(dl.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS,s),useFipsEndpoint:t?.useFipsEndpoint??(0,ll.loadConfig)(dl.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS,s),userAgentAppId:t?.userAgentAppId??(0,ll.loadConfig)(qT.NODE_APP_ID_CONFIG_OPTIONS,s)}}});var ZEe=b(Zg=>{"use strict";Object.defineProperty(Zg,"__esModule",{value:!0});Zg.warning=void 0;Zg.stsRegionDefaultResolver=Ldt;var YEe=require("@smithy/config-resolver"),Ndt=require("@smithy/node-config-provider");function Ldt(t={}){return(0,Ndt.loadConfig)({...YEe.NODE_REGION_CONFIG_OPTIONS,async default(){return Zg.warning.silence||console.warn("@aws-sdk - WARN - default STS region of us-east-1 used. See @aws-sdk/credential-providers README and set a region explicitly."),"us-east-1"}},{...YEe.NODE_REGION_CONFIG_FILE_OPTIONS,...t})}Zg.warning={silence:!1}});var Na=b(ka=>{"use strict";var Hy=require("@smithy/config-resolver"),eye=ZEe(),Mdt=t=>({setRegion(e){t.region=e},region(){return t.region}}),Fdt=t=>({region:t.region()});Object.defineProperty(ka,"NODE_REGION_CONFIG_FILE_OPTIONS",{enumerable:!0,get:function(){return Hy.NODE_REGION_CONFIG_FILE_OPTIONS}});Object.defineProperty(ka,"NODE_REGION_CONFIG_OPTIONS",{enumerable:!0,get:function(){return Hy.NODE_REGION_CONFIG_OPTIONS}});Object.defineProperty(ka,"REGION_ENV_NAME",{enumerable:!0,get:function(){return Hy.REGION_ENV_NAME}});Object.defineProperty(ka,"REGION_INI_NAME",{enumerable:!0,get:function(){return Hy.REGION_INI_NAME}});Object.defineProperty(ka,"resolveRegionConfig",{enumerable:!0,get:function(){return Hy.resolveRegionConfig}});ka.getAwsRegionExtensionConfiguration=Mdt;ka.resolveAwsRegionExtensionConfiguration=Fdt;Object.keys(eye).forEach(function(t){t!=="default"&&!Object.prototype.hasOwnProperty.call(ka,t)&&Object.defineProperty(ka,t,{enumerable:!0,get:function(){return eye[t]}})})});var tye,rye,nye=_(()=>{tye=t=>{let e=t.httpAuthSchemes,r=t.httpAuthSchemeProvider,n=t.credentials;return{setHttpAuthScheme(s){let o=e.findIndex(i=>i.schemeId===s.schemeId);o===-1?e.push(s):e.splice(o,1,s)},httpAuthSchemes(){return e},setHttpAuthSchemeProvider(s){r=s},httpAuthSchemeProvider(){return r},setCredentials(s){n=s},credentials(){return n}}},rye=t=>({httpAuthSchemes:t.httpAuthSchemes(),httpAuthSchemeProvider:t.httpAuthSchemeProvider(),credentials:t.credentials()})});var VT,HT,zT,sye,oye=_(()=>{VT=O(Na()),HT=require("@smithy/protocol-http"),zT=require("@smithy/smithy-client");nye();sye=(t,e)=>{let r=Object.assign((0,VT.getAwsRegionExtensionConfiguration)(t),(0,zT.getDefaultExtensionConfiguration)(t),(0,HT.getHttpHandlerExtensionConfiguration)(t),tye(t));return e.forEach(n=>n.configure(r)),Object.assign(t,(0,VT.resolveAwsRegionExtensionConfiguration)(r),(0,zT.resolveDefaultRuntimeConfig)(r),(0,HT.resolveHttpHandlerRuntimeConfig)(r),rye(r))}});var WT,iye,aye,KT,cye,ef,uye,lye,dye,QT,AH,zy,TH=_(()=>{WT=O(wc()),iye=O(Dc()),aye=O(Oc()),KT=O(Oa()),cye=require("@smithy/config-resolver"),ef=require("@smithy/core"),uye=require("@smithy/core/schema"),lye=require("@smithy/middleware-content-length"),dye=require("@smithy/middleware-endpoint"),QT=require("@smithy/middleware-retry"),AH=require("@smithy/smithy-client");RH();vH();JEe();oye();zy=class extends AH.Client{config;constructor(...[e]){let r=XEe(e||{});super(r),this.initConfig=r;let n=hEe(r),s=(0,KT.resolveUserAgentConfig)(n),o=(0,QT.resolveRetryConfig)(s),i=(0,cye.resolveRegionConfig)(o),a=(0,WT.resolveHostHeaderConfig)(i),c=(0,dye.resolveEndpointConfig)(a),u=fEe(c),l=sye(u,e?.extensions||[]);this.config=l,this.middlewareStack.use((0,uye.getSchemaSerdePlugin)(this.config)),this.middlewareStack.use((0,KT.getUserAgentPlugin)(this.config)),this.middlewareStack.use((0,QT.getRetryPlugin)(this.config)),this.middlewareStack.use((0,lye.getContentLengthPlugin)(this.config)),this.middlewareStack.use((0,WT.getHostHeaderPlugin)(this.config)),this.middlewareStack.use((0,iye.getLoggerPlugin)(this.config)),this.middlewareStack.use((0,aye.getRecursionDetectionPlugin)(this.config)),this.middlewareStack.use((0,ef.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config,{httpAuthSchemeParametersProvider:mEe,identityProviderConfigProvider:async d=>new ef.DefaultIdentityProviderConfig({"aws.auth#sigv4":d.credentials})})),this.middlewareStack.use((0,ef.getHttpSigningPlugin)(this.config))}destroy(){super.destroy()}}});var pye,Kr,XT=_(()=>{pye=require("@smithy/smithy-client"),Kr=class t extends pye.ServiceException{constructor(e){super(e),Object.setPrototypeOf(this,t.prototype)}}});var Wy,Ky,Qy,Xy,Jy,Yy,Zy,e_,t_,r_,n_,wH=_(()=>{XT();Wy=class t extends Kr{name="AccessDeniedException";$fault="client";error;reason;error_description;constructor(e){super({name:"AccessDeniedException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error,this.reason=e.reason,this.error_description=e.error_description}},Ky=class t extends Kr{name="AuthorizationPendingException";$fault="client";error;error_description;constructor(e){super({name:"AuthorizationPendingException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error,this.error_description=e.error_description}},Qy=class t extends Kr{name="ExpiredTokenException";$fault="client";error;error_description;constructor(e){super({name:"ExpiredTokenException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error,this.error_description=e.error_description}},Xy=class t extends Kr{name="InternalServerException";$fault="server";error;error_description;constructor(e){super({name:"InternalServerException",$fault:"server",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error,this.error_description=e.error_description}},Jy=class t extends Kr{name="InvalidClientException";$fault="client";error;error_description;constructor(e){super({name:"InvalidClientException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error,this.error_description=e.error_description}},Yy=class t extends Kr{name="InvalidGrantException";$fault="client";error;error_description;constructor(e){super({name:"InvalidGrantException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error,this.error_description=e.error_description}},Zy=class t extends Kr{name="InvalidRequestException";$fault="client";error;reason;error_description;constructor(e){super({name:"InvalidRequestException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error,this.reason=e.reason,this.error_description=e.error_description}},e_=class t extends Kr{name="InvalidScopeException";$fault="client";error;error_description;constructor(e){super({name:"InvalidScopeException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error,this.error_description=e.error_description}},t_=class t extends Kr{name="SlowDownException";$fault="client";error;error_description;constructor(e){super({name:"SlowDownException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error,this.error_description=e.error_description}},r_=class t extends Kr{name="UnauthorizedClientException";$fault="client";error;error_description;constructor(e){super({name:"UnauthorizedClientException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error,this.error_description=e.error_description}},n_=class t extends Kr{name="UnsupportedGrantTypeException";$fault="client";error;error_description;constructor(e){super({name:"UnsupportedGrantTypeException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error,this.error_description=e.error_description}}});var Xs,Bdt,Udt,qdt,$dt,Gdt,jdt,Vdt,Hdt,zdt,Wdt,Kdt,Qdt,Xdt,Jdt,Ydt,Zdt,ept,tpt,rpt,npt,La,spt,opt,ipt,apt,cpt,pr,upt,Ni,lpt,dpt,Li,ppt,mye,gye,mpt,gpt,fpt,fye,hpt,yt,Spt,Ept,ypt,_pt,hye,Cpt,Rpt,vpt,xpt,Ppt,bpt,Ipt,Apt,Tpt,wpt,Dpt,Opt,kpt,Npt,Sye,Eye=_(()=>{Xs=require("@smithy/core/schema");wH();XT();Bdt="AccessDeniedException",Udt="AuthorizationPendingException",qdt="AccessToken",$dt="ClientSecret",Gdt="CreateToken",jdt="CreateTokenRequest",Vdt="CreateTokenResponse",Hdt="CodeVerifier",zdt="ExpiredTokenException",Wdt="InvalidClientException",Kdt="InvalidGrantException",Qdt="InvalidRequestException",Xdt="InternalServerException",Jdt="InvalidScopeException",Ydt="IdToken",Zdt="RefreshToken",ept="SlowDownException",tpt="UnauthorizedClientException",rpt="UnsupportedGrantTypeException",npt="accessToken",La="client",spt="clientId",opt="clientSecret",ipt="codeVerifier",apt="code",cpt="deviceCode",pr="error",upt="expiresIn",Ni="error_description",lpt="grantType",dpt="http",Li="httpError",ppt="idToken",mye="reason",gye="refreshToken",mpt="redirectUri",gpt="scope",fpt="server",fye="smithy.ts.sdk.synthetic.com.amazonaws.ssooidc",hpt="tokenType",yt="com.amazonaws.ssooidc",Spt=[0,yt,qdt,8,0],Ept=[0,yt,$dt,8,0],ypt=[0,yt,Hdt,8,0],_pt=[0,yt,Ydt,8,0],hye=[0,yt,Zdt,8,0],Cpt=[-3,yt,Bdt,{[pr]:La,[Li]:400},[pr,mye,Ni],[0,0,0]];Xs.TypeRegistry.for(yt).registerError(Cpt,Wy);Rpt=[-3,yt,Udt,{[pr]:La,[Li]:400},[pr,Ni],[0,0]];Xs.TypeRegistry.for(yt).registerError(Rpt,Ky);vpt=[3,yt,jdt,0,[spt,opt,lpt,cpt,apt,gye,gpt,mpt,ipt],[0,[()=>Ept,0],0,0,0,[()=>hye,0],64,0,[()=>ypt,0]]],xpt=[3,yt,Vdt,0,[npt,hpt,upt,gye,ppt],[[()=>Spt,0],0,1,[()=>hye,0],[()=>_pt,0]]],Ppt=[-3,yt,zdt,{[pr]:La,[Li]:400},[pr,Ni],[0,0]];Xs.TypeRegistry.for(yt).registerError(Ppt,Qy);bpt=[-3,yt,Xdt,{[pr]:fpt,[Li]:500},[pr,Ni],[0,0]];Xs.TypeRegistry.for(yt).registerError(bpt,Xy);Ipt=[-3,yt,Wdt,{[pr]:La,[Li]:401},[pr,Ni],[0,0]];Xs.TypeRegistry.for(yt).registerError(Ipt,Jy);Apt=[-3,yt,Kdt,{[pr]:La,[Li]:400},[pr,Ni],[0,0]];Xs.TypeRegistry.for(yt).registerError(Apt,Yy);Tpt=[-3,yt,Qdt,{[pr]:La,[Li]:400},[pr,mye,Ni],[0,0,0]];Xs.TypeRegistry.for(yt).registerError(Tpt,Zy);wpt=[-3,yt,Jdt,{[pr]:La,[Li]:400},[pr,Ni],[0,0]];Xs.TypeRegistry.for(yt).registerError(wpt,e_);Dpt=[-3,yt,ept,{[pr]:La,[Li]:400},[pr,Ni],[0,0]];Xs.TypeRegistry.for(yt).registerError(Dpt,t_);Opt=[-3,yt,tpt,{[pr]:La,[Li]:400},[pr,Ni],[0,0]];Xs.TypeRegistry.for(yt).registerError(Opt,r_);kpt=[-3,yt,rpt,{[pr]:La,[Li]:400},[pr,Ni],[0,0]];Xs.TypeRegistry.for(yt).registerError(kpt,n_);Npt=[-3,fye,"SSOOIDCServiceException",0,[],[]];Xs.TypeRegistry.for(fye).registerError(Npt,Kr);Sye=[9,yt,Gdt,{[dpt]:["POST","/token",200]},()=>vpt,()=>xpt]});var yye,DH,s_,OH=_(()=>{yye=require("@smithy/middleware-endpoint"),DH=require("@smithy/smithy-client");vH();Eye();s_=class extends DH.Command.classBuilder().ep(SEe).m(function(e,r,n,s){return[(0,yye.getEndpointPlugin)(n,e.getEndpointParameterInstructions())]}).s("AWSSSOOIDCService","CreateToken",{}).n("SSOOIDCClient","CreateTokenCommand").sc(Sye).build(){}});var _ye,Lpt,JT,Cye=_(()=>{_ye=require("@smithy/smithy-client");OH();TH();Lpt={CreateTokenCommand:s_},JT=class extends zy{};(0,_ye.createAggregatedClient)(Lpt,JT)});var Rye=_(()=>{OH()});var Mpt,Fpt,vye=_(()=>{Mpt={KMS_ACCESS_DENIED:"KMS_AccessDeniedException"},Fpt={KMS_DISABLED_KEY:"KMS_DisabledException",KMS_INVALID_KEY_USAGE:"KMS_InvalidKeyUsageException",KMS_INVALID_STATE:"KMS_InvalidStateException",KMS_KEY_NOT_FOUND:"KMS_NotFoundException"}});var kH={};wt(kH,{$Command:()=>DH.Command,AccessDeniedException:()=>Wy,AccessDeniedExceptionReason:()=>Mpt,AuthorizationPendingException:()=>Ky,CreateTokenCommand:()=>s_,ExpiredTokenException:()=>Qy,InternalServerException:()=>Xy,InvalidClientException:()=>Jy,InvalidGrantException:()=>Yy,InvalidRequestException:()=>Zy,InvalidRequestExceptionReason:()=>Fpt,InvalidScopeException:()=>e_,SSOOIDC:()=>JT,SSOOIDCClient:()=>zy,SSOOIDCServiceException:()=>Kr,SlowDownException:()=>t_,UnauthorizedClientException:()=>r_,UnsupportedGrantTypeException:()=>n_,__Client:()=>AH.Client});var NH=_(()=>{TH();Cye();Rye();vye();wH();XT()});var Iye=b(i_=>{"use strict";var Bpt=(Bo(),ue(kc)),Upt=(YV(),ue(iSe)),Js=require("@smithy/property-provider"),o_=require("@smithy/shared-ini-file-loader"),qpt=require("fs"),$pt=({logger:t,signingName:e}={})=>async()=>{if(t?.debug?.("@aws-sdk/token-providers - fromEnvSigningName"),!e)throw new Js.TokenProviderError("Please pass 'signingName' to compute environment variable key",{logger:t});let r=Upt.getBearerTokenEnvKey(e);if(!(r in process.env))throw new Js.TokenProviderError(`Token not present in '${r}' environment variable`,{logger:t});let n={token:process.env[r]};return Bpt.setTokenFeature(n,"BEARER_SERVICE_ENV_VARS","3"),n},Gpt=5*60*1e3,LH="To refresh this SSO session run 'aws sso login' with the corresponding profile.",jpt=async(t,e={},r)=>{let{SSOOIDCClient:n}=await Promise.resolve().then(()=>(NH(),kH)),s=i=>e.clientConfig?.[i]??e.parentClientConfig?.[i]??r?.[i];return new n(Object.assign({},e.clientConfig??{},{region:t??e.clientConfig?.region,logger:s("logger"),userAgentAppId:s("userAgentAppId")}))},Vpt=async(t,e,r={},n)=>{let{CreateTokenCommand:s}=await Promise.resolve().then(()=>(NH(),kH));return(await jpt(e,r,n)).send(new s({clientId:t.clientId,clientSecret:t.clientSecret,refreshToken:t.refreshToken,grantType:"refresh_token"}))},xye=t=>{if(t.expiration&&t.expiration.getTime(){if(typeof e>"u")throw new Js.TokenProviderError(`Value not present for '${t}' in SSO Token${r?". Cannot refresh":""}. ${LH}`,!1)},{writeFile:Hpt}=qpt.promises,zpt=(t,e)=>{let r=o_.getSSOTokenFilepath(t),n=JSON.stringify(e,null,2);return Hpt(r,n)},Pye=new Date(0),bye=(t={})=>async({callerClientConfig:e}={})=>{t.logger?.debug("@aws-sdk/token-providers - fromSso");let r=await o_.parseKnownFiles(t),n=o_.getProfileName({profile:t.profile??e?.profile}),s=r[n];if(s){if(!s.sso_session)throw new Js.TokenProviderError(`Profile '${n}' is missing required property 'sso_session'.`)}else throw new Js.TokenProviderError(`Profile '${n}' could not be found in shared credentials file.`,!1);let o=s.sso_session,a=(await o_.loadSsoSessionData(t))[o];if(!a)throw new Js.TokenProviderError(`Sso session '${o}' could not be found in shared credentials file.`,!1);for(let g of["sso_start_url","sso_region"])if(!a[g])throw new Js.TokenProviderError(`Sso session '${o}' is missing required property '${g}'.`,!1);a.sso_start_url;let c=a.sso_region,u;try{u=await o_.getSSOTokenFromFile(o)}catch{throw new Js.TokenProviderError(`The SSO session token associated with profile=${n} was not found or is invalid. ${LH}`,!1)}Kd("accessToken",u.accessToken),Kd("expiresAt",u.expiresAt);let{accessToken:l,expiresAt:d}=u,p={token:l,expiration:new Date(d)};if(p.expiration.getTime()-Date.now()>Gpt)return p;if(Date.now()-Pye.getTime()<30*1e3)return xye(p),p;Kd("clientId",u.clientId,!0),Kd("clientSecret",u.clientSecret,!0),Kd("refreshToken",u.refreshToken,!0);try{Pye.setTime(Date.now());let g=await Vpt(u,c,t,e);Kd("accessToken",g.accessToken),Kd("expiresIn",g.expiresIn);let y=new Date(Date.now()+g.expiresIn*1e3);try{await zpt(o,{...u,accessToken:g.accessToken,expiresAt:y.toISOString(),refreshToken:g.refreshToken})}catch{}return{token:g.accessToken,expiration:y}}catch{return xye(p),p}},Wpt=({token:t,logger:e})=>async()=>{if(e?.debug("@aws-sdk/token-providers - fromStatic"),!t||!t.token)throw new Js.TokenProviderError("Please pass a valid token to fromStatic",!1);return t},Kpt=(t={})=>Js.memoize(Js.chain(bye(t),async()=>{throw new Js.TokenProviderError("Could not load token from any providers",!1)}),e=>e.expiration!==void 0&&e.expiration.getTime()-Date.now()<3e5,e=>e.expiration!==void 0);i_.fromEnvSigningName=$pt;i_.fromSso=bye;i_.fromStatic=Wpt;i_.nodeProvider=Kpt});var FH=b(pl=>{"use strict";Object.defineProperty(pl,"__esModule",{value:!0});pl.resolveHttpAuthSchemeConfig=pl.defaultSSOHttpAuthSchemeProvider=pl.defaultSSOHttpAuthSchemeParametersProvider=void 0;var Qpt=(Dt(),ue(Fr)),MH=require("@smithy/util-middleware"),Xpt=async(t,e,r)=>({operation:(0,MH.getSmithyContext)(e).operation,region:await(0,MH.normalizeProvider)(t.region)()||(()=>{throw new Error("expected `region` to be configured for `aws.auth#sigv4`")})()});pl.defaultSSOHttpAuthSchemeParametersProvider=Xpt;function Jpt(t){return{schemeId:"aws.auth#sigv4",signingProperties:{name:"awsssoportal",region:t.region},propertiesExtractor:(e,r)=>({signingProperties:{config:e,context:r}})}}function YT(t){return{schemeId:"smithy.api#noAuth"}}var Ypt=t=>{let e=[];switch(t.operation){case"GetRoleCredentials":{e.push(YT(t));break}case"ListAccountRoles":{e.push(YT(t));break}case"ListAccounts":{e.push(YT(t));break}case"Logout":{e.push(YT(t));break}default:e.push(Jpt(t))}return e};pl.defaultSSOHttpAuthSchemeProvider=Ypt;var Zpt=t=>{let e=(0,Qpt.resolveAwsSdkSigV4Config)(t);return Object.assign(e,{authSchemePreference:(0,MH.normalizeProvider)(t.authSchemePreference??[])})};pl.resolveHttpAuthSchemeConfig=Zpt});var Aye=b((b6r,emt)=>{emt.exports={name:"@aws-sdk/client-sso",description:"AWS SDK for JavaScript Sso Client for Node.js, Browser and React Native",version:"3.948.0",scripts:{build:"concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types'","build:cjs":"node ../../scripts/compilation/inline client-sso","build:es":"tsc -p tsconfig.es.json","build:include:deps":"lerna run --scope $npm_package_name --include-dependencies build","build:types":"tsc -p tsconfig.types.json","build:types:downlevel":"downlevel-dts dist-types dist-types/ts3.4",clean:"rimraf ./dist-* && rimraf *.tsbuildinfo","extract:docs":"api-extractor run --local","generate:client":"node ../../scripts/generate-clients/single-service --solo sso","test:index":"tsc --noEmit ./test/index-types.ts && node ./test/index-objects.spec.mjs"},main:"./dist-cjs/index.js",types:"./dist-types/index.d.ts",module:"./dist-es/index.js",sideEffects:!1,dependencies:{"@aws-crypto/sha256-browser":"5.2.0","@aws-crypto/sha256-js":"5.2.0","@aws-sdk/core":"3.947.0","@aws-sdk/middleware-host-header":"3.936.0","@aws-sdk/middleware-logger":"3.936.0","@aws-sdk/middleware-recursion-detection":"3.948.0","@aws-sdk/middleware-user-agent":"3.947.0","@aws-sdk/region-config-resolver":"3.936.0","@aws-sdk/types":"3.936.0","@aws-sdk/util-endpoints":"3.936.0","@aws-sdk/util-user-agent-browser":"3.936.0","@aws-sdk/util-user-agent-node":"3.947.0","@smithy/config-resolver":"^4.4.3","@smithy/core":"^3.18.7","@smithy/fetch-http-handler":"^5.3.6","@smithy/hash-node":"^4.2.5","@smithy/invalid-dependency":"^4.2.5","@smithy/middleware-content-length":"^4.2.5","@smithy/middleware-endpoint":"^4.3.14","@smithy/middleware-retry":"^4.4.14","@smithy/middleware-serde":"^4.2.6","@smithy/middleware-stack":"^4.2.5","@smithy/node-config-provider":"^4.3.5","@smithy/node-http-handler":"^4.4.5","@smithy/protocol-http":"^5.3.5","@smithy/smithy-client":"^4.9.10","@smithy/types":"^4.9.0","@smithy/url-parser":"^4.2.5","@smithy/util-base64":"^4.3.0","@smithy/util-body-length-browser":"^4.2.0","@smithy/util-body-length-node":"^4.2.1","@smithy/util-defaults-mode-browser":"^4.3.13","@smithy/util-defaults-mode-node":"^4.2.16","@smithy/util-endpoints":"^3.2.5","@smithy/util-middleware":"^4.2.5","@smithy/util-retry":"^4.2.5","@smithy/util-utf8":"^4.2.0",tslib:"^2.6.2"},devDependencies:{"@tsconfig/node18":"18.2.4","@types/node":"^18.19.69",concurrently:"7.0.0","downlevel-dts":"0.10.1",rimraf:"3.0.2",typescript:"~5.8.3"},engines:{node:">=18.0.0"},typesVersions:{"<4.0":{"dist-types/*":["dist-types/ts3.4/*"]}},files:["dist-*/**"],author:{name:"AWS SDK for JavaScript Team",url:"https://aws.amazon.com/javascript/"},license:"Apache-2.0",browser:{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.browser"},"react-native":{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.native"},homepage:"https://github.com/aws/aws-sdk-js-v3/tree/main/clients/client-sso",repository:{type:"git",url:"https://github.com/aws/aws-sdk-js-v3.git",directory:"clients/client-sso"}}});var jye=b(ZT=>{"use strict";Object.defineProperty(ZT,"__esModule",{value:!0});ZT.ruleSet=void 0;var Uye="required",Ho="fn",zo="argv",nf="ref",Tye=!0,wye="isSet",a_="booleanEquals",tf="error",rf="endpoint",Bc="tree",BH="PartitionResult",UH="getAttr",Dye={[Uye]:!1,type:"string"},Oye={[Uye]:!0,default:!1,type:"boolean"},kye={[nf]:"Endpoint"},qye={[Ho]:a_,[zo]:[{[nf]:"UseFIPS"},!0]},$ye={[Ho]:a_,[zo]:[{[nf]:"UseDualStack"},!0]},Vo={},Nye={[Ho]:UH,[zo]:[{[nf]:BH},"supportsFIPS"]},Gye={[nf]:BH},Lye={[Ho]:a_,[zo]:[!0,{[Ho]:UH,[zo]:[Gye,"supportsDualStack"]}]},Mye=[qye],Fye=[$ye],Bye=[{[nf]:"Region"}],tmt={version:"1.0",parameters:{Region:Dye,UseDualStack:Oye,UseFIPS:Oye,Endpoint:Dye},rules:[{conditions:[{[Ho]:wye,[zo]:[kye]}],rules:[{conditions:Mye,error:"Invalid Configuration: FIPS and custom endpoint are not supported",type:tf},{conditions:Fye,error:"Invalid Configuration: Dualstack and custom endpoint are not supported",type:tf},{endpoint:{url:kye,properties:Vo,headers:Vo},type:rf}],type:Bc},{conditions:[{[Ho]:wye,[zo]:Bye}],rules:[{conditions:[{[Ho]:"aws.partition",[zo]:Bye,assign:BH}],rules:[{conditions:[qye,$ye],rules:[{conditions:[{[Ho]:a_,[zo]:[Tye,Nye]},Lye],rules:[{endpoint:{url:"https://portal.sso-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:Vo,headers:Vo},type:rf}],type:Bc},{error:"FIPS and DualStack are enabled, but this partition does not support one or both",type:tf}],type:Bc},{conditions:Mye,rules:[{conditions:[{[Ho]:a_,[zo]:[Nye,Tye]}],rules:[{conditions:[{[Ho]:"stringEquals",[zo]:[{[Ho]:UH,[zo]:[Gye,"name"]},"aws-us-gov"]}],endpoint:{url:"https://portal.sso.{Region}.amazonaws.com",properties:Vo,headers:Vo},type:rf},{endpoint:{url:"https://portal.sso-fips.{Region}.{PartitionResult#dnsSuffix}",properties:Vo,headers:Vo},type:rf}],type:Bc},{error:"FIPS is enabled but this partition does not support FIPS",type:tf}],type:Bc},{conditions:Fye,rules:[{conditions:[Lye],rules:[{endpoint:{url:"https://portal.sso.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:Vo,headers:Vo},type:rf}],type:Bc},{error:"DualStack is enabled but this partition does not support DualStack",type:tf}],type:Bc},{endpoint:{url:"https://portal.sso.{Region}.{PartitionResult#dnsSuffix}",properties:Vo,headers:Vo},type:rf}],type:Bc}],type:Bc},{error:"Invalid Configuration: Missing Region",type:tf}]};ZT.ruleSet=tmt});var Vye=b(ew=>{"use strict";Object.defineProperty(ew,"__esModule",{value:!0});ew.defaultEndpointResolver=void 0;var rmt=Ta(),qH=require("@smithy/util-endpoints"),nmt=jye(),smt=new qH.EndpointCache({size:50,params:["Endpoint","Region","UseDualStack","UseFIPS"]}),omt=(t,e={})=>smt.get(t,()=>(0,qH.resolveEndpoint)(nmt.ruleSet,{endpointParams:t,logger:e.logger}));ew.defaultEndpointResolver=omt;qH.customEndpointFunctions.aws=rmt.awsEndpointFunctions});var Wye=b(tw=>{"use strict";Object.defineProperty(tw,"__esModule",{value:!0});tw.getRuntimeConfig=void 0;var imt=(Dt(),ue(Fr)),amt=(wa(),ue(Wg)),cmt=require("@smithy/core"),umt=require("@smithy/smithy-client"),lmt=require("@smithy/url-parser"),Hye=require("@smithy/util-base64"),zye=require("@smithy/util-utf8"),dmt=FH(),pmt=Vye(),mmt=t=>({apiVersion:"2019-06-10",base64Decoder:t?.base64Decoder??Hye.fromBase64,base64Encoder:t?.base64Encoder??Hye.toBase64,disableHostPrefix:t?.disableHostPrefix??!1,endpointProvider:t?.endpointProvider??pmt.defaultEndpointResolver,extensions:t?.extensions??[],httpAuthSchemeProvider:t?.httpAuthSchemeProvider??dmt.defaultSSOHttpAuthSchemeProvider,httpAuthSchemes:t?.httpAuthSchemes??[{schemeId:"aws.auth#sigv4",identityProvider:e=>e.getIdentityProvider("aws.auth#sigv4"),signer:new imt.AwsSdkSigV4Signer},{schemeId:"smithy.api#noAuth",identityProvider:e=>e.getIdentityProvider("smithy.api#noAuth")||(async()=>({})),signer:new cmt.NoAuthSigner}],logger:t?.logger??new umt.NoOpLogger,protocol:t?.protocol??new amt.AwsRestJsonProtocol({defaultNamespace:"com.amazonaws.sso"}),serviceId:t?.serviceId??"SSO",urlParser:t?.urlParser??lmt.parseUrl,utf8Decoder:t?.utf8Decoder??zye.fromUtf8,utf8Encoder:t?.utf8Encoder??zye.toUtf8});tw.getRuntimeConfig=mmt});var Zye=b(nw=>{"use strict";Object.defineProperty(nw,"__esModule",{value:!0});nw.getRuntimeConfig=void 0;var gmt=require("tslib"),fmt=gmt.__importDefault(Aye()),Kye=(Dt(),ue(Fr)),Qye=Mc(),rw=require("@smithy/config-resolver"),hmt=require("@smithy/hash-node"),Xye=require("@smithy/middleware-retry"),Qd=require("@smithy/node-config-provider"),Jye=require("@smithy/node-http-handler"),Yye=require("@smithy/smithy-client"),Smt=require("@smithy/util-body-length-node"),Emt=require("@smithy/util-defaults-mode-node"),ymt=require("@smithy/util-retry"),_mt=Wye(),Cmt=t=>{(0,Yye.emitWarningIfUnsupportedVersion)(process.version);let e=(0,Emt.resolveDefaultsModeConfig)(t),r=()=>e().then(Yye.loadConfigsForDefaultMode),n=(0,_mt.getRuntimeConfig)(t);(0,Kye.emitWarningIfUnsupportedVersion)(process.version);let s={profile:t?.profile,logger:n.logger};return{...n,...t,runtime:"node",defaultsMode:e,authSchemePreference:t?.authSchemePreference??(0,Qd.loadConfig)(Kye.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS,s),bodyLengthChecker:t?.bodyLengthChecker??Smt.calculateBodyLength,defaultUserAgentProvider:t?.defaultUserAgentProvider??(0,Qye.createDefaultUserAgentProvider)({serviceId:n.serviceId,clientVersion:fmt.default.version}),maxAttempts:t?.maxAttempts??(0,Qd.loadConfig)(Xye.NODE_MAX_ATTEMPT_CONFIG_OPTIONS,t),region:t?.region??(0,Qd.loadConfig)(rw.NODE_REGION_CONFIG_OPTIONS,{...rw.NODE_REGION_CONFIG_FILE_OPTIONS,...s}),requestHandler:Jye.NodeHttpHandler.create(t?.requestHandler??r),retryMode:t?.retryMode??(0,Qd.loadConfig)({...Xye.NODE_RETRY_MODE_CONFIG_OPTIONS,default:async()=>(await r()).retryMode||ymt.DEFAULT_RETRY_MODE},t),sha256:t?.sha256??hmt.Hash.bind(null,"sha256"),streamCollector:t?.streamCollector??Jye.streamCollector,useDualstackEndpoint:t?.useDualstackEndpoint??(0,Qd.loadConfig)(rw.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS,s),useFipsEndpoint:t?.useFipsEndpoint??(0,Qd.loadConfig)(rw.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS,s),userAgentAppId:t?.userAgentAppId??(0,Qd.loadConfig)(Qye.NODE_APP_ID_CONFIG_OPTIONS,s)}};nw.getRuntimeConfig=Cmt});var C_e=b(wn=>{"use strict";var e_e=wc(),Rmt=Dc(),vmt=Oc(),t_e=Oa(),xmt=require("@smithy/config-resolver"),c_=require("@smithy/core"),of=require("@smithy/core/schema"),Pmt=require("@smithy/middleware-content-length"),d_=require("@smithy/middleware-endpoint"),r_e=require("@smithy/middleware-retry"),Mi=require("@smithy/smithy-client"),n_e=FH(),bmt=Zye(),s_e=Na(),o_e=require("@smithy/protocol-http"),Imt=t=>Object.assign(t,{useDualstackEndpoint:t.useDualstackEndpoint??!1,useFipsEndpoint:t.useFipsEndpoint??!1,defaultSigningName:"awsssoportal"}),aw={UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}},Amt=t=>{let e=t.httpAuthSchemes,r=t.httpAuthSchemeProvider,n=t.credentials;return{setHttpAuthScheme(s){let o=e.findIndex(i=>i.schemeId===s.schemeId);o===-1?e.push(s):e.splice(o,1,s)},httpAuthSchemes(){return e},setHttpAuthSchemeProvider(s){r=s},httpAuthSchemeProvider(){return r},setCredentials(s){n=s},credentials(){return n}}},Tmt=t=>({httpAuthSchemes:t.httpAuthSchemes(),httpAuthSchemeProvider:t.httpAuthSchemeProvider(),credentials:t.credentials()}),wmt=(t,e)=>{let r=Object.assign(s_e.getAwsRegionExtensionConfiguration(t),Mi.getDefaultExtensionConfiguration(t),o_e.getHttpHandlerExtensionConfiguration(t),Amt(t));return e.forEach(n=>n.configure(r)),Object.assign(t,s_e.resolveAwsRegionExtensionConfiguration(r),Mi.resolveDefaultRuntimeConfig(r),o_e.resolveHttpHandlerRuntimeConfig(r),Tmt(r))},sf=class extends Mi.Client{config;constructor(...[e]){let r=bmt.getRuntimeConfig(e||{});super(r),this.initConfig=r;let n=Imt(r),s=t_e.resolveUserAgentConfig(n),o=r_e.resolveRetryConfig(s),i=xmt.resolveRegionConfig(o),a=e_e.resolveHostHeaderConfig(i),c=d_.resolveEndpointConfig(a),u=n_e.resolveHttpAuthSchemeConfig(c),l=wmt(u,e?.extensions||[]);this.config=l,this.middlewareStack.use(of.getSchemaSerdePlugin(this.config)),this.middlewareStack.use(t_e.getUserAgentPlugin(this.config)),this.middlewareStack.use(r_e.getRetryPlugin(this.config)),this.middlewareStack.use(Pmt.getContentLengthPlugin(this.config)),this.middlewareStack.use(e_e.getHostHeaderPlugin(this.config)),this.middlewareStack.use(Rmt.getLoggerPlugin(this.config)),this.middlewareStack.use(vmt.getRecursionDetectionPlugin(this.config)),this.middlewareStack.use(c_.getHttpAuthSchemeEndpointRuleSetPlugin(this.config,{httpAuthSchemeParametersProvider:n_e.defaultSSOHttpAuthSchemeParametersProvider,identityProviderConfigProvider:async d=>new c_.DefaultIdentityProviderConfig({"aws.auth#sigv4":d.credentials})})),this.middlewareStack.use(c_.getHttpSigningPlugin(this.config))}destroy(){super.destroy()}},af=class i_e extends Mi.ServiceException{constructor(e){super(e),Object.setPrototypeOf(this,i_e.prototype)}},a_e=class c_e extends af{name="InvalidRequestException";$fault="client";constructor(e){super({name:"InvalidRequestException",$fault:"client",...e}),Object.setPrototypeOf(this,c_e.prototype)}},u_e=class l_e extends af{name="ResourceNotFoundException";$fault="client";constructor(e){super({name:"ResourceNotFoundException",$fault:"client",...e}),Object.setPrototypeOf(this,l_e.prototype)}},d_e=class p_e extends af{name="TooManyRequestsException";$fault="client";constructor(e){super({name:"TooManyRequestsException",$fault:"client",...e}),Object.setPrototypeOf(this,p_e.prototype)}},m_e=class g_e extends af{name="UnauthorizedException";$fault="client";constructor(e){super({name:"UnauthorizedException",$fault:"client",...e}),Object.setPrototypeOf(this,g_e.prototype)}},Dmt="AccountInfo",Omt="AccountListType",kmt="AccessTokenType",Nmt="GetRoleCredentials",Lmt="GetRoleCredentialsRequest",Mmt="GetRoleCredentialsResponse",Fmt="InvalidRequestException",Bmt="Logout",Umt="ListAccounts",qmt="ListAccountsRequest",$mt="ListAccountRolesRequest",Gmt="ListAccountRolesResponse",jmt="ListAccountsResponse",Vmt="ListAccountRoles",Hmt="LogoutRequest",zmt="RoleCredentials",Wmt="RoleInfo",Kmt="RoleListType",Qmt="ResourceNotFoundException",Xmt="SecretAccessKeyType",Jmt="SessionTokenType",Ymt="TooManyRequestsException",Zmt="UnauthorizedException",cw="accountId",egt="accessKeyId",tgt="accountList",rgt="accountName",uw="accessToken",f_e="account_id",lw="client",dw="error",ngt="emailAddress",sgt="expiration",pw="http",mw="httpError",gw="httpHeader",Xd="httpQuery",fw="message",h_e="maxResults",S_e="max_result",hw="nextToken",E_e="next_token",ogt="roleCredentials",igt="roleList",y_e="roleName",agt="role_name",__e="smithy.ts.sdk.synthetic.com.amazonaws.sso",cgt="secretAccessKey",ugt="sessionToken",Sw="x-amz-sso_bearer_token",Mt="com.amazonaws.sso",Ew=[0,Mt,kmt,8,0],lgt=[0,Mt,Xmt,8,0],dgt=[0,Mt,Jmt,8,0],pgt=[3,Mt,Dmt,0,[cw,rgt,ngt],[0,0,0]],mgt=[3,Mt,Lmt,0,[y_e,cw,uw],[[0,{[Xd]:agt}],[0,{[Xd]:f_e}],[()=>Ew,{[gw]:Sw}]]],ggt=[3,Mt,Mmt,0,[ogt],[[()=>Rgt,0]]],fgt=[-3,Mt,Fmt,{[dw]:lw,[mw]:400},[fw],[0]];of.TypeRegistry.for(Mt).registerError(fgt,a_e);var hgt=[3,Mt,$mt,0,[hw,h_e,uw,cw],[[0,{[Xd]:E_e}],[1,{[Xd]:S_e}],[()=>Ew,{[gw]:Sw}],[0,{[Xd]:f_e}]]],Sgt=[3,Mt,Gmt,0,[hw,igt],[0,()=>Tgt]],Egt=[3,Mt,qmt,0,[hw,h_e,uw],[[0,{[Xd]:E_e}],[1,{[Xd]:S_e}],[()=>Ew,{[gw]:Sw}]]],ygt=[3,Mt,jmt,0,[hw,tgt],[0,()=>Agt]],_gt=[3,Mt,Hmt,0,[uw],[[()=>Ew,{[gw]:Sw}]]],Cgt=[-3,Mt,Qmt,{[dw]:lw,[mw]:404},[fw],[0]];of.TypeRegistry.for(Mt).registerError(Cgt,u_e);var Rgt=[3,Mt,zmt,0,[egt,cgt,ugt,sgt],[0,[()=>lgt,0],[()=>dgt,0],1]],vgt=[3,Mt,Wmt,0,[y_e,cw],[0,0]],xgt=[-3,Mt,Ymt,{[dw]:lw,[mw]:429},[fw],[0]];of.TypeRegistry.for(Mt).registerError(xgt,d_e);var Pgt=[-3,Mt,Zmt,{[dw]:lw,[mw]:401},[fw],[0]];of.TypeRegistry.for(Mt).registerError(Pgt,m_e);var bgt="unit",Igt=[-3,__e,"SSOServiceException",0,[],[]];of.TypeRegistry.for(__e).registerError(Igt,af);var Agt=[1,Mt,Omt,0,()=>pgt],Tgt=[1,Mt,Kmt,0,()=>vgt],wgt=[9,Mt,Nmt,{[pw]:["GET","/federation/credentials",200]},()=>mgt,()=>ggt],Dgt=[9,Mt,Vmt,{[pw]:["GET","/assignment/roles",200]},()=>hgt,()=>Sgt],Ogt=[9,Mt,Umt,{[pw]:["GET","/assignment/accounts",200]},()=>Egt,()=>ygt],kgt=[9,Mt,Bmt,{[pw]:["POST","/logout",200]},()=>_gt,()=>bgt],sw=class extends Mi.Command.classBuilder().ep(aw).m(function(e,r,n,s){return[d_.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("SWBPortalService","GetRoleCredentials",{}).n("SSOClient","GetRoleCredentialsCommand").sc(wgt).build(){},u_=class extends Mi.Command.classBuilder().ep(aw).m(function(e,r,n,s){return[d_.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("SWBPortalService","ListAccountRoles",{}).n("SSOClient","ListAccountRolesCommand").sc(Dgt).build(){},l_=class extends Mi.Command.classBuilder().ep(aw).m(function(e,r,n,s){return[d_.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("SWBPortalService","ListAccounts",{}).n("SSOClient","ListAccountsCommand").sc(Ogt).build(){},ow=class extends Mi.Command.classBuilder().ep(aw).m(function(e,r,n,s){return[d_.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("SWBPortalService","Logout",{}).n("SSOClient","LogoutCommand").sc(kgt).build(){},Ngt={GetRoleCredentialsCommand:sw,ListAccountRolesCommand:u_,ListAccountsCommand:l_,LogoutCommand:ow},iw=class extends sf{};Mi.createAggregatedClient(Ngt,iw);var Lgt=c_.createPaginator(sf,u_,"nextToken","nextToken","maxResults"),Mgt=c_.createPaginator(sf,l_,"nextToken","nextToken","maxResults");Object.defineProperty(wn,"$Command",{enumerable:!0,get:function(){return Mi.Command}});Object.defineProperty(wn,"__Client",{enumerable:!0,get:function(){return Mi.Client}});wn.GetRoleCredentialsCommand=sw;wn.InvalidRequestException=a_e;wn.ListAccountRolesCommand=u_;wn.ListAccountsCommand=l_;wn.LogoutCommand=ow;wn.ResourceNotFoundException=u_e;wn.SSO=iw;wn.SSOClient=sf;wn.SSOServiceException=af;wn.TooManyRequestsException=d_e;wn.UnauthorizedException=m_e;wn.paginateListAccountRoles=Lgt;wn.paginateListAccounts=Mgt});var v_e=b($H=>{"use strict";var R_e=C_e();Object.defineProperty($H,"GetRoleCredentialsCommand",{enumerable:!0,get:function(){return R_e.GetRoleCredentialsCommand}});Object.defineProperty($H,"SSOClient",{enumerable:!0,get:function(){return R_e.SSOClient}})});var GH=b(_w=>{"use strict";var Fi=require("@smithy/property-provider"),yw=require("@smithy/shared-ini-file-loader"),x_e=(Bo(),ue(kc)),Fgt=Iye(),b_e=t=>t&&(typeof t.sso_start_url=="string"||typeof t.sso_account_id=="string"||typeof t.sso_session=="string"||typeof t.sso_region=="string"||typeof t.sso_role_name=="string"),p_=!1,P_e=async({ssoStartUrl:t,ssoSession:e,ssoAccountId:r,ssoRegion:n,ssoRoleName:s,ssoClient:o,clientConfig:i,parentClientConfig:a,callerClientConfig:c,profile:u,filepath:l,configFilepath:d,ignoreCache:p,logger:g})=>{let y,R="To refresh this SSO session run aws sso login with the corresponding profile.";if(e)try{let tr=await Fgt.fromSso({profile:u,filepath:l,configFilepath:d,ignoreCache:p})();y={accessToken:tr.token,expiresAt:new Date(tr.expiration).toISOString()}}catch(tr){throw new Fi.CredentialsProviderError(tr.message,{tryNextLink:p_,logger:g})}else try{y=await yw.getSSOTokenFromFile(t)}catch{throw new Fi.CredentialsProviderError(`The SSO session associated with this profile is invalid. ${R}`,{tryNextLink:p_,logger:g})}if(new Date(y.expiresAt).getTime()-Date.now()<=0)throw new Fi.CredentialsProviderError(`The SSO session associated with this profile has expired. ${R}`,{tryNextLink:p_,logger:g});let{accessToken:D}=y,{SSOClient:B,GetRoleCredentialsCommand:M}=await Promise.resolve().then(function(){return v_e()}),ge=o||new B(Object.assign({},i??{},{logger:i?.logger??c?.logger??a?.logger,region:i?.region??n,userAgentAppId:i?.userAgentAppId??c?.userAgentAppId??a?.userAgentAppId})),Y;try{Y=await ge.send(new M({accountId:r,roleName:s,accessToken:D}))}catch(tr){throw new Fi.CredentialsProviderError(tr,{tryNextLink:p_,logger:g})}let{roleCredentials:{accessKeyId:Te,secretAccessKey:Ht,sessionToken:Tt,expiration:Ne,credentialScope:Eu,accountId:yu}={}}=Y;if(!Te||!Ht||!Tt||!Ne)throw new Fi.CredentialsProviderError("SSO returns an invalid temporary credential.",{tryNextLink:p_,logger:g});let hi={accessKeyId:Te,secretAccessKey:Ht,sessionToken:Tt,expiration:new Date(Ne),...Eu&&{credentialScope:Eu},...yu&&{accountId:yu}};return e?x_e.setCredentialFeature(hi,"CREDENTIALS_SSO","s"):x_e.setCredentialFeature(hi,"CREDENTIALS_SSO_LEGACY","u"),hi},I_e=(t,e)=>{let{sso_start_url:r,sso_account_id:n,sso_region:s,sso_role_name:o}=t;if(!r||!n||!s||!o)throw new Fi.CredentialsProviderError(`Profile is configured with invalid SSO credentials. Required parameters "sso_account_id", "sso_region", "sso_role_name", "sso_start_url". Got ${Object.keys(t).join(", ")} -Reference: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html`,{tryNextLink:!1,logger:e});return t},Bgt=(t={})=>async({callerClientConfig:e}={})=>{t.logger?.debug("@aws-sdk/credential-provider-sso - fromSSO");let{ssoStartUrl:r,ssoAccountId:n,ssoRegion:s,ssoRoleName:o,ssoSession:i}=t,{ssoClient:a}=t,c=yw.getProfileName({profile:t.profile??e?.profile});if(!r&&!n&&!s&&!o&&!i){let l=(await yw.parseKnownFiles(t))[c];if(!l)throw new Fi.CredentialsProviderError(`Profile ${c} was not found.`,{logger:t.logger});if(!b_e(l))throw new Fi.CredentialsProviderError(`Profile ${c} is not configured with SSO credentials.`,{logger:t.logger});if(l?.sso_session){let B=(await yw.loadSsoSessionData(t))[l.sso_session],M=` configurations in profile ${c} and sso-session ${l.sso_session}`;if(s&&s!==B.sso_region)throw new Fi.CredentialsProviderError("Conflicting SSO region"+M,{tryNextLink:!1,logger:t.logger});if(r&&r!==B.sso_start_url)throw new Fi.CredentialsProviderError("Conflicting SSO start_url"+M,{tryNextLink:!1,logger:t.logger});l.sso_region=B.sso_region,l.sso_start_url=B.sso_start_url}let{sso_start_url:d,sso_account_id:p,sso_region:g,sso_role_name:y,sso_session:R}=I_e(l,t.logger);return P_e({ssoStartUrl:d,ssoSession:R,ssoAccountId:p,ssoRegion:g,ssoRoleName:y,ssoClient:a,clientConfig:t.clientConfig,parentClientConfig:t.parentClientConfig,callerClientConfig:t.callerClientConfig,profile:c,filepath:t.filepath,configFilepath:t.configFilepath,ignoreCache:t.ignoreCache,logger:t.logger})}else{if(!r||!n||!s||!o)throw new Fi.CredentialsProviderError('Incomplete configuration. The fromSSO() argument hash must include "ssoStartUrl", "ssoAccountId", "ssoRegion", "ssoRoleName"',{tryNextLink:!1,logger:t.logger});return P_e({ssoStartUrl:r,ssoSession:i,ssoAccountId:n,ssoRegion:s,ssoRoleName:o,ssoClient:a,clientConfig:t.clientConfig,parentClientConfig:t.parentClientConfig,callerClientConfig:t.callerClientConfig,profile:c,filepath:t.filepath,configFilepath:t.configFilepath,ignoreCache:t.ignoreCache,logger:t.logger})}};_w.fromSSO=Bgt;_w.isSsoProfile=b_e;_w.validateSsoProfile=I_e});function Ugt(t){return{schemeId:"aws.auth#sigv4",signingProperties:{name:"signin",region:t.region},propertiesExtractor:(e,r)=>({signingProperties:{config:e,context:r}})}}function qgt(t){return{schemeId:"smithy.api#noAuth"}}var m_,A_e,T_e,w_e,jH=_(()=>{Dt();m_=require("@smithy/util-middleware"),A_e=async(t,e,r)=>({operation:(0,m_.getSmithyContext)(e).operation,region:await(0,m_.normalizeProvider)(t.region)()||(()=>{throw new Error("expected `region` to be configured for `aws.auth#sigv4`")})()});T_e=t=>{let e=[];switch(t.operation){case"CreateOAuth2Token":{e.push(qgt(t));break}default:e.push(Ugt(t))}return e},w_e=t=>{let e=Nc(t);return Object.assign(e,{authSchemePreference:(0,m_.normalizeProvider)(t.authSchemePreference??[])})}});var D_e,O_e,VH=_(()=>{D_e=t=>Object.assign(t,{useDualstackEndpoint:t.useDualstackEndpoint??!1,useFipsEndpoint:t.useFipsEndpoint??!1,defaultSigningName:"signin"}),O_e={UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}});var N_e,k_e=_(()=>{N_e={name:"@aws-sdk/nested-clients",version:"3.952.0",description:"Nested clients for AWS SDK packages.",main:"./dist-cjs/index.js",module:"./dist-es/index.js",types:"./dist-types/index.d.ts",scripts:{build:"yarn lint && concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types'","build:cjs":"node ../../scripts/compilation/inline nested-clients","build:es":"tsc -p tsconfig.es.json","build:include:deps":"lerna run --scope $npm_package_name --include-dependencies build","build:types":"tsc -p tsconfig.types.json","build:types:downlevel":"downlevel-dts dist-types dist-types/ts3.4",clean:"rimraf ./dist-* && rimraf *.tsbuildinfo",lint:"node ../../scripts/validation/submodules-linter.js --pkg nested-clients",test:"yarn g:vitest run","test:watch":"yarn g:vitest watch"},engines:{node:">=18.0.0"},sideEffects:!1,author:{name:"AWS SDK for JavaScript Team",url:"https://aws.amazon.com/javascript/"},license:"Apache-2.0",dependencies:{"@aws-crypto/sha256-browser":"5.2.0","@aws-crypto/sha256-js":"5.2.0","@aws-sdk/core":"3.947.0","@aws-sdk/middleware-host-header":"3.936.0","@aws-sdk/middleware-logger":"3.936.0","@aws-sdk/middleware-recursion-detection":"3.948.0","@aws-sdk/middleware-user-agent":"3.947.0","@aws-sdk/region-config-resolver":"3.936.0","@aws-sdk/types":"3.936.0","@aws-sdk/util-endpoints":"3.936.0","@aws-sdk/util-user-agent-browser":"3.936.0","@aws-sdk/util-user-agent-node":"3.947.0","@smithy/config-resolver":"^4.4.3","@smithy/core":"^3.18.7","@smithy/fetch-http-handler":"^5.3.6","@smithy/hash-node":"^4.2.5","@smithy/invalid-dependency":"^4.2.5","@smithy/middleware-content-length":"^4.2.5","@smithy/middleware-endpoint":"^4.3.14","@smithy/middleware-retry":"^4.4.14","@smithy/middleware-serde":"^4.2.6","@smithy/middleware-stack":"^4.2.5","@smithy/node-config-provider":"^4.3.5","@smithy/node-http-handler":"^4.4.5","@smithy/protocol-http":"^5.3.5","@smithy/smithy-client":"^4.9.10","@smithy/types":"^4.9.0","@smithy/url-parser":"^4.2.5","@smithy/util-base64":"^4.3.0","@smithy/util-body-length-browser":"^4.2.0","@smithy/util-body-length-node":"^4.2.1","@smithy/util-defaults-mode-browser":"^4.3.13","@smithy/util-defaults-mode-node":"^4.2.16","@smithy/util-endpoints":"^3.2.5","@smithy/util-middleware":"^4.2.5","@smithy/util-retry":"^4.2.5","@smithy/util-utf8":"^4.2.0",tslib:"^2.6.2"},devDependencies:{concurrently:"7.0.0","downlevel-dts":"0.10.1",rimraf:"3.0.2",typescript:"~5.8.3"},typesVersions:{"<4.0":{"dist-types/*":["dist-types/ts3.4/*"]}},files:["./signin.d.ts","./signin.js","./sso-oidc.d.ts","./sso-oidc.js","./sts.d.ts","./sts.js","dist-*/**"],browser:{"./dist-es/submodules/signin/runtimeConfig":"./dist-es/submodules/signin/runtimeConfig.browser","./dist-es/submodules/sso-oidc/runtimeConfig":"./dist-es/submodules/sso-oidc/runtimeConfig.browser","./dist-es/submodules/sts/runtimeConfig":"./dist-es/submodules/sts/runtimeConfig.browser"},"react-native":{},homepage:"https://github.com/aws/aws-sdk-js-v3/tree/main/packages/nested-clients",repository:{type:"git",url:"https://github.com/aws/aws-sdk-js-v3.git",directory:"packages/nested-clients"},exports:{"./package.json":"./package.json","./sso-oidc":{types:"./dist-types/submodules/sso-oidc/index.d.ts",module:"./dist-es/submodules/sso-oidc/index.js",node:"./dist-cjs/submodules/sso-oidc/index.js",import:"./dist-es/submodules/sso-oidc/index.js",require:"./dist-cjs/submodules/sso-oidc/index.js"},"./sts":{types:"./dist-types/submodules/sts/index.d.ts",module:"./dist-es/submodules/sts/index.js",node:"./dist-cjs/submodules/sts/index.js",import:"./dist-es/submodules/sts/index.js",require:"./dist-cjs/submodules/sts/index.js"},"./signin":{types:"./dist-types/submodules/signin/index.d.ts",module:"./dist-es/submodules/signin/index.js",node:"./dist-cjs/submodules/signin/index.js",import:"./dist-es/submodules/signin/index.js",require:"./dist-cjs/submodules/signin/index.js"}}}});var G_e,On,kn,Uc,L_e,Jd,cf,ml,Bi,vw,HH,M_e,F_e,B_e,zH,WH,Dn,KH,Cw,Rw,U_e,q_e,$_e,Ggt,j_e,V_e=_(()=>{G_e="required",On="fn",kn="argv",Uc="ref",L_e="isSet",Jd="booleanEquals",cf="error",ml="endpoint",Bi="tree",vw="PartitionResult",HH="stringEquals",M_e={[G_e]:!0,default:!1,type:"boolean"},F_e={[G_e]:!1,type:"string"},B_e={[Uc]:"Endpoint"},zH={[On]:Jd,[kn]:[{[Uc]:"UseFIPS"},!0]},WH={[On]:Jd,[kn]:[{[Uc]:"UseDualStack"},!0]},Dn={},KH={[On]:"getAttr",[kn]:[{[Uc]:vw},"name"]},Cw={[On]:Jd,[kn]:[{[Uc]:"UseFIPS"},!1]},Rw={[On]:Jd,[kn]:[{[Uc]:"UseDualStack"},!1]},U_e={[On]:"getAttr",[kn]:[{[Uc]:vw},"supportsFIPS"]},q_e={[On]:Jd,[kn]:[!0,{[On]:"getAttr",[kn]:[{[Uc]:vw},"supportsDualStack"]}]},$_e=[{[Uc]:"Region"}],Ggt={version:"1.0",parameters:{UseDualStack:M_e,UseFIPS:M_e,Endpoint:F_e,Region:F_e},rules:[{conditions:[{[On]:L_e,[kn]:[B_e]}],rules:[{conditions:[zH],error:"Invalid Configuration: FIPS and custom endpoint are not supported",type:cf},{rules:[{conditions:[WH],error:"Invalid Configuration: Dualstack and custom endpoint are not supported",type:cf},{endpoint:{url:B_e,properties:Dn,headers:Dn},type:ml}],type:Bi}],type:Bi},{rules:[{conditions:[{[On]:L_e,[kn]:$_e}],rules:[{conditions:[{[On]:"aws.partition",[kn]:$_e,assign:vw}],rules:[{conditions:[{[On]:HH,[kn]:[KH,"aws"]},Cw,Rw],endpoint:{url:"https://{Region}.signin.aws.amazon.com",properties:Dn,headers:Dn},type:ml},{conditions:[{[On]:HH,[kn]:[KH,"aws-cn"]},Cw,Rw],endpoint:{url:"https://{Region}.signin.amazonaws.cn",properties:Dn,headers:Dn},type:ml},{conditions:[{[On]:HH,[kn]:[KH,"aws-us-gov"]},Cw,Rw],endpoint:{url:"https://{Region}.signin.amazonaws-us-gov.com",properties:Dn,headers:Dn},type:ml},{conditions:[zH,WH],rules:[{conditions:[{[On]:Jd,[kn]:[!0,U_e]},q_e],rules:[{endpoint:{url:"https://signin-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:Dn,headers:Dn},type:ml}],type:Bi},{error:"FIPS and DualStack are enabled, but this partition does not support one or both",type:cf}],type:Bi},{conditions:[zH,Rw],rules:[{conditions:[{[On]:Jd,[kn]:[U_e,!0]}],rules:[{endpoint:{url:"https://signin-fips.{Region}.{PartitionResult#dnsSuffix}",properties:Dn,headers:Dn},type:ml}],type:Bi},{error:"FIPS is enabled but this partition does not support FIPS",type:cf}],type:Bi},{conditions:[Cw,WH],rules:[{conditions:[q_e],rules:[{endpoint:{url:"https://signin.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:Dn,headers:Dn},type:ml}],type:Bi},{error:"DualStack is enabled but this partition does not support DualStack",type:cf}],type:Bi},{endpoint:{url:"https://signin.{Region}.{PartitionResult#dnsSuffix}",properties:Dn,headers:Dn},type:ml}],type:Bi}],type:Bi},{error:"Invalid Configuration: Missing Region",type:cf}],type:Bi}]},j_e=Ggt});var H_e,uf,jgt,z_e,W_e=_(()=>{H_e=O(Ta()),uf=require("@smithy/util-endpoints");V_e();jgt=new uf.EndpointCache({size:50,params:["Endpoint","Region","UseDualStack","UseFIPS"]}),z_e=(t,e={})=>jgt.get(t,()=>(0,uf.resolveEndpoint)(j_e,{endpointParams:t,logger:e.logger}));uf.customEndpointFunctions.aws=H_e.awsEndpointFunctions});var K_e,Q_e,X_e,xw,Pw,J_e,Y_e=_(()=>{Dt();wa();K_e=require("@smithy/core"),Q_e=require("@smithy/smithy-client"),X_e=require("@smithy/url-parser"),xw=require("@smithy/util-base64"),Pw=require("@smithy/util-utf8");jH();W_e();J_e=t=>({apiVersion:"2023-01-01",base64Decoder:t?.base64Decoder??xw.fromBase64,base64Encoder:t?.base64Encoder??xw.toBase64,disableHostPrefix:t?.disableHostPrefix??!1,endpointProvider:t?.endpointProvider??z_e,extensions:t?.extensions??[],httpAuthSchemeProvider:t?.httpAuthSchemeProvider??T_e,httpAuthSchemes:t?.httpAuthSchemes??[{schemeId:"aws.auth#sigv4",identityProvider:e=>e.getIdentityProvider("aws.auth#sigv4"),signer:new An},{schemeId:"smithy.api#noAuth",identityProvider:e=>e.getIdentityProvider("smithy.api#noAuth")||(async()=>({})),signer:new K_e.NoAuthSigner}],logger:t?.logger??new Q_e.NoOpLogger,protocol:t?.protocol??new ol({defaultNamespace:"com.amazonaws.signin"}),serviceId:t?.serviceId??"Signin",urlParser:t?.urlParser??X_e.parseUrl,utf8Decoder:t?.utf8Decoder??Pw.fromUtf8,utf8Encoder:t?.utf8Encoder??Pw.toUtf8})});var bw,fl,Z_e,Iw,gl,Aw,Tw,eCe,tCe,rCe,nCe,sCe=_(()=>{k_e();Dt();bw=O(Mc()),fl=require("@smithy/config-resolver"),Z_e=require("@smithy/hash-node"),Iw=require("@smithy/middleware-retry"),gl=require("@smithy/node-config-provider"),Aw=require("@smithy/node-http-handler"),Tw=require("@smithy/smithy-client"),eCe=require("@smithy/util-body-length-node"),tCe=require("@smithy/util-defaults-mode-node"),rCe=require("@smithy/util-retry");Y_e();nCe=t=>{(0,Tw.emitWarningIfUnsupportedVersion)(process.version);let e=(0,tCe.resolveDefaultsModeConfig)(t),r=()=>e().then(Tw.loadConfigsForDefaultMode),n=J_e(t);Zu(process.version);let s={profile:t?.profile,logger:n.logger};return{...n,...t,runtime:"node",defaultsMode:e,authSchemePreference:t?.authSchemePreference??(0,gl.loadConfig)(tl,s),bodyLengthChecker:t?.bodyLengthChecker??eCe.calculateBodyLength,defaultUserAgentProvider:t?.defaultUserAgentProvider??(0,bw.createDefaultUserAgentProvider)({serviceId:n.serviceId,clientVersion:N_e.version}),maxAttempts:t?.maxAttempts??(0,gl.loadConfig)(Iw.NODE_MAX_ATTEMPT_CONFIG_OPTIONS,t),region:t?.region??(0,gl.loadConfig)(fl.NODE_REGION_CONFIG_OPTIONS,{...fl.NODE_REGION_CONFIG_FILE_OPTIONS,...s}),requestHandler:Aw.NodeHttpHandler.create(t?.requestHandler??r),retryMode:t?.retryMode??(0,gl.loadConfig)({...Iw.NODE_RETRY_MODE_CONFIG_OPTIONS,default:async()=>(await r()).retryMode||rCe.DEFAULT_RETRY_MODE},t),sha256:t?.sha256??Z_e.Hash.bind(null,"sha256"),streamCollector:t?.streamCollector??Aw.streamCollector,useDualstackEndpoint:t?.useDualstackEndpoint??(0,gl.loadConfig)(fl.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS,s),useFipsEndpoint:t?.useFipsEndpoint??(0,gl.loadConfig)(fl.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS,s),userAgentAppId:t?.userAgentAppId??(0,gl.loadConfig)(bw.NODE_APP_ID_CONFIG_OPTIONS,s)}}});var oCe,iCe,aCe=_(()=>{oCe=t=>{let e=t.httpAuthSchemes,r=t.httpAuthSchemeProvider,n=t.credentials;return{setHttpAuthScheme(s){let o=e.findIndex(i=>i.schemeId===s.schemeId);o===-1?e.push(s):e.splice(o,1,s)},httpAuthSchemes(){return e},setHttpAuthSchemeProvider(s){r=s},httpAuthSchemeProvider(){return r},setCredentials(s){n=s},credentials(){return n}}},iCe=t=>({httpAuthSchemes:t.httpAuthSchemes(),httpAuthSchemeProvider:t.httpAuthSchemeProvider(),credentials:t.credentials()})});var ww,Dw,Ow,cCe,uCe=_(()=>{ww=O(Na()),Dw=require("@smithy/protocol-http"),Ow=require("@smithy/smithy-client");aCe();cCe=(t,e)=>{let r=Object.assign((0,ww.getAwsRegionExtensionConfiguration)(t),(0,Ow.getDefaultExtensionConfiguration)(t),(0,Dw.getHttpHandlerExtensionConfiguration)(t),oCe(t));return e.forEach(n=>n.configure(r)),Object.assign(t,(0,ww.resolveAwsRegionExtensionConfiguration)(r),(0,Ow.resolveDefaultRuntimeConfig)(r),(0,Dw.resolveHttpHandlerRuntimeConfig)(r),iCe(r))}});var kw,lCe,dCe,Nw,pCe,lf,mCe,gCe,fCe,Lw,QH,g_,XH=_(()=>{kw=O(wc()),lCe=O(Dc()),dCe=O(Oc()),Nw=O(Oa()),pCe=require("@smithy/config-resolver"),lf=require("@smithy/core"),mCe=require("@smithy/core/schema"),gCe=require("@smithy/middleware-content-length"),fCe=require("@smithy/middleware-endpoint"),Lw=require("@smithy/middleware-retry"),QH=require("@smithy/smithy-client");jH();VH();sCe();uCe();g_=class extends QH.Client{config;constructor(...[e]){let r=nCe(e||{});super(r),this.initConfig=r;let n=D_e(r),s=(0,Nw.resolveUserAgentConfig)(n),o=(0,Lw.resolveRetryConfig)(s),i=(0,pCe.resolveRegionConfig)(o),a=(0,kw.resolveHostHeaderConfig)(i),c=(0,fCe.resolveEndpointConfig)(a),u=w_e(c),l=cCe(u,e?.extensions||[]);this.config=l,this.middlewareStack.use((0,mCe.getSchemaSerdePlugin)(this.config)),this.middlewareStack.use((0,Nw.getUserAgentPlugin)(this.config)),this.middlewareStack.use((0,Lw.getRetryPlugin)(this.config)),this.middlewareStack.use((0,gCe.getContentLengthPlugin)(this.config)),this.middlewareStack.use((0,kw.getHostHeaderPlugin)(this.config)),this.middlewareStack.use((0,lCe.getLoggerPlugin)(this.config)),this.middlewareStack.use((0,dCe.getRecursionDetectionPlugin)(this.config)),this.middlewareStack.use((0,lf.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config,{httpAuthSchemeParametersProvider:A_e,identityProviderConfigProvider:async d=>new lf.DefaultIdentityProviderConfig({"aws.auth#sigv4":d.credentials})})),this.middlewareStack.use((0,lf.getHttpSigningPlugin)(this.config))}destroy(){super.destroy()}}});var hCe,Ui,Mw=_(()=>{hCe=require("@smithy/smithy-client"),Ui=class t extends hCe.ServiceException{constructor(e){super(e),Object.setPrototypeOf(this,t.prototype)}}});var f_,h_,S_,E_,JH=_(()=>{Mw();f_=class t extends Ui{name="AccessDeniedException";$fault="client";error;constructor(e){super({name:"AccessDeniedException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error}},h_=class t extends Ui{name="InternalServerException";$fault="server";error;constructor(e){super({name:"InternalServerException",$fault:"server",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error}},S_=class t extends Ui{name="TooManyRequestsError";$fault="client";error;constructor(e){super({name:"TooManyRequestsError",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error}},E_=class t extends Ui{name="ValidationException";$fault="client";error;constructor(e){super({name:"ValidationException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error}}});var df,Vgt,Hgt,zgt,Wgt,Kgt,Qgt,Xgt,Jgt,Ygt,Zgt,eft,SCe,ECe,YH,yCe,_Ce,tft,hl,CCe,RCe,rft,ZH,vCe,Ys,Bw,Fw,xCe,nft,PCe,bCe,ACe,sft,oft,ICe,Jn,TCe,ift,aft,cft,uft,lft,dft,pft,mft,gft,fft,wCe,DCe=_(()=>{df=require("@smithy/core/schema");JH();Mw();Vgt="AccessDeniedException",Hgt="AccessToken",zgt="CreateOAuth2Token",Wgt="CreateOAuth2TokenRequest",Kgt="CreateOAuth2TokenRequestBody",Qgt="CreateOAuth2TokenResponseBody",Xgt="CreateOAuth2TokenResponse",Jgt="InternalServerException",Ygt="RefreshToken",Zgt="TooManyRequestsError",eft="ValidationException",SCe="accessKeyId",ECe="accessToken",YH="client",yCe="clientId",_Ce="codeVerifier",tft="code",hl="error",CCe="expiresIn",RCe="grantType",rft="http",ZH="httpError",vCe="idToken",Ys="jsonName",Bw="message",Fw="refreshToken",xCe="redirectUri",nft="server",PCe="secretAccessKey",bCe="sessionToken",ACe="smithy.ts.sdk.synthetic.com.amazonaws.signin",sft="tokenInput",oft="tokenOutput",ICe="tokenType",Jn="com.amazonaws.signin",TCe=[0,Jn,Ygt,8,0],ift=[-3,Jn,Vgt,{[hl]:YH},[hl,Bw],[0,0]];df.TypeRegistry.for(Jn).registerError(ift,f_);aft=[3,Jn,Hgt,8,[SCe,PCe,bCe],[[0,{[Ys]:SCe}],[0,{[Ys]:PCe}],[0,{[Ys]:bCe}]]],cft=[3,Jn,Wgt,0,[sft],[[()=>uft,16]]],uft=[3,Jn,Kgt,0,[yCe,RCe,tft,xCe,_Ce,Fw],[[0,{[Ys]:yCe}],[0,{[Ys]:RCe}],0,[0,{[Ys]:xCe}],[0,{[Ys]:_Ce}],[()=>TCe,{[Ys]:Fw}]]],lft=[3,Jn,Xgt,0,[oft],[[()=>dft,16]]],dft=[3,Jn,Qgt,0,[ECe,ICe,CCe,Fw,vCe],[[()=>aft,{[Ys]:ECe}],[0,{[Ys]:ICe}],[1,{[Ys]:CCe}],[()=>TCe,{[Ys]:Fw}],[0,{[Ys]:vCe}]]],pft=[-3,Jn,Jgt,{[hl]:nft,[ZH]:500},[hl,Bw],[0,0]];df.TypeRegistry.for(Jn).registerError(pft,h_);mft=[-3,Jn,Zgt,{[hl]:YH,[ZH]:429},[hl,Bw],[0,0]];df.TypeRegistry.for(Jn).registerError(mft,S_);gft=[-3,Jn,eft,{[hl]:YH,[ZH]:400},[hl,Bw],[0,0]];df.TypeRegistry.for(Jn).registerError(gft,E_);fft=[-3,ACe,"SigninServiceException",0,[],[]];df.TypeRegistry.for(ACe).registerError(fft,Ui);wCe=[9,Jn,zgt,{[rft]:["POST","/v1/token",200]},()=>cft,()=>lft]});var OCe,ez,y_,tz=_(()=>{OCe=require("@smithy/middleware-endpoint"),ez=require("@smithy/smithy-client");VH();DCe();y_=class extends ez.Command.classBuilder().ep(O_e).m(function(e,r,n,s){return[(0,OCe.getEndpointPlugin)(n,e.getEndpointParameterInstructions())]}).s("Signin","CreateOAuth2Token",{}).n("SigninClient","CreateOAuth2TokenCommand").sc(wCe).build(){}});var kCe,hft,Uw,NCe=_(()=>{kCe=require("@smithy/smithy-client");tz();XH();hft={CreateOAuth2TokenCommand:y_},Uw=class extends g_{};(0,kCe.createAggregatedClient)(hft,Uw)});var LCe=_(()=>{tz()});var Sft,MCe=_(()=>{Sft={AUTHCODE_EXPIRED:"AUTHCODE_EXPIRED",INSUFFICIENT_PERMISSIONS:"INSUFFICIENT_PERMISSIONS",INVALID_REQUEST:"INVALID_REQUEST",SERVER_ERROR:"server_error",TOKEN_EXPIRED:"TOKEN_EXPIRED",USER_CREDENTIALS_CHANGED:"USER_CREDENTIALS_CHANGED"}});var FCe={};wt(FCe,{$Command:()=>ez.Command,AccessDeniedException:()=>f_,CreateOAuth2TokenCommand:()=>y_,InternalServerException:()=>h_,OAuth2ErrorCode:()=>Sft,Signin:()=>Uw,SigninClient:()=>g_,SigninServiceException:()=>Ui,TooManyRequestsError:()=>S_,ValidationException:()=>E_,__Client:()=>QH.Client});var BCe=_(()=>{XH();NCe();LCe();MCe();JH();Mw()});var qCe=b(UCe=>{"use strict";var Eft=(Bo(),ue(kc)),Sl=require("@smithy/property-provider"),sz=require("@smithy/shared-ini-file-loader"),yft=require("@smithy/protocol-http"),qw=require("node:crypto"),rz=require("node:fs"),_ft=require("node:os"),nz=require("node:path"),oz=class t{profileData;init;callerClientConfig;static REFRESH_THRESHOLD=5*60*1e3;constructor(e,r,n){this.profileData=e,this.init=r,this.callerClientConfig=n}async loadCredentials(){let e=await this.loadToken();if(!e)throw new Sl.CredentialsProviderError(`Failed to load a token for session ${this.loginSession}, please re-authenticate using aws login`,{tryNextLink:!1,logger:this.logger});let r=e.accessToken,n=Date.now();return new Date(r.expiresAt).getTime()-n<=t.REFRESH_THRESHOLD?this.refresh(e):{accessKeyId:r.accessKeyId,secretAccessKey:r.secretAccessKey,sessionToken:r.sessionToken,accountId:r.accountId,expiration:new Date(r.expiresAt)}}get logger(){return this.init?.logger}get loginSession(){return this.profileData.login_session}async refresh(e){let{SigninClient:r,CreateOAuth2TokenCommand:n}=await Promise.resolve().then(()=>(BCe(),FCe)),{logger:s,userAgentAppId:o}=this.callerClientConfig??{},a=(d=>d?.metadata?.handlerProtocol==="h2")(this.callerClientConfig?.requestHandler)?void 0:this.callerClientConfig?.requestHandler,c=this.profileData.region??await this.callerClientConfig?.region?.()??process.env.AWS_REGION,u=new r({credentials:{accessKeyId:"",secretAccessKey:""},region:c,requestHandler:a,logger:s,userAgentAppId:o,...this.init?.clientConfig});this.createDPoPInterceptor(u.middlewareStack);let l={tokenInput:{clientId:e.clientId,refreshToken:e.refreshToken,grantType:"refresh_token"}};try{let d=await u.send(new n(l)),{accessKeyId:p,secretAccessKey:g,sessionToken:y}=d.tokenOutput?.accessToken??{},{refreshToken:R,expiresIn:D}=d.tokenOutput??{};if(!p||!g||!y||!R)throw new Sl.CredentialsProviderError("Token refresh response missing required fields",{logger:this.logger,tryNextLink:!1});let B=(D??900)*1e3,M=new Date(Date.now()+B),ge={...e,accessToken:{...e.accessToken,accessKeyId:p,secretAccessKey:g,sessionToken:y,expiresAt:M.toISOString()},refreshToken:R};await this.saveToken(ge);let Y=ge.accessToken;return{accessKeyId:Y.accessKeyId,secretAccessKey:Y.secretAccessKey,sessionToken:Y.sessionToken,accountId:Y.accountId,expiration:M}}catch(d){if(d.name==="AccessDeniedException"){let p=d.error,g;switch(p){case"TOKEN_EXPIRED":g="Your session has expired. Please reauthenticate.";break;case"USER_CREDENTIALS_CHANGED":g="Unable to refresh credentials because of a change in your password. Please reauthenticate with your new password.";break;case"INSUFFICIENT_PERMISSIONS":g="Unable to refresh credentials due to insufficient permissions. You may be missing permission for the 'CreateOAuth2Token' action.";break;default:g=`Failed to refresh token: ${String(d)}. Please re-authenticate using \`aws login\``}throw new Sl.CredentialsProviderError(g,{logger:this.logger,tryNextLink:!1})}throw new Sl.CredentialsProviderError(`Failed to refresh token: ${String(d)}. Please re-authenticate using aws login`,{logger:this.logger})}}async loadToken(){let e=this.getTokenFilePath();try{let r;try{r=await sz.readFile(e,{ignoreCache:this.init?.ignoreCache})}catch{r=await rz.promises.readFile(e,"utf8")}let n=JSON.parse(r),s=["accessToken","clientId","refreshToken","dpopKey"].filter(o=>!n[o]);if(n.accessToken?.accountId||s.push("accountId"),s.length>0)throw new Sl.CredentialsProviderError(`Token validation failed, missing fields: ${s.join(", ")}`,{logger:this.logger,tryNextLink:!1});return n}catch(r){throw new Sl.CredentialsProviderError(`Failed to load token from ${e}: ${String(r)}`,{logger:this.logger,tryNextLink:!1})}}async saveToken(e){let r=this.getTokenFilePath(),n=nz.dirname(r);try{await rz.promises.mkdir(n,{recursive:!0})}catch{}await rz.promises.writeFile(r,JSON.stringify(e,null,2),"utf8")}getTokenFilePath(){let e=process.env.AWS_LOGIN_CACHE_DIRECTORY??nz.join(_ft.homedir(),".aws","login","cache"),r=Buffer.from(this.loginSession,"utf8"),n=qw.createHash("sha256").update(r).digest("hex");return nz.join(e,`${n}.json`)}derToRawSignature(e){let r=2;if(e[r]!==2)throw new Error("Invalid DER signature");r++;let n=e[r++],s=e.subarray(r,r+n);if(r+=n,e[r]!==2)throw new Error("Invalid DER signature");r++;let o=e[r++],i=e.subarray(r,r+o);s=s[0]===0?s.subarray(1):s,i=i[0]===0?i.subarray(1):i;let a=Buffer.concat([Buffer.alloc(32-s.length),s]),c=Buffer.concat([Buffer.alloc(32-i.length),i]);return Buffer.concat([a,c])}createDPoPInterceptor(e){e.add(r=>async n=>{if(yft.HttpRequest.isInstance(n.request)){let s=n.request,o=`${s.protocol}//${s.hostname}${s.port?`:${s.port}`:""}${s.path}`,i=await this.generateDpop(s.method,o);s.headers={...s.headers,DPoP:i}}return r(n)},{step:"finalizeRequest",name:"dpopInterceptor",override:!0})}async generateDpop(e="POST",r){let n=await this.loadToken();try{let s=qw.createPrivateKey({key:n.dpopKey,format:"pem",type:"sec1"}),i=qw.createPublicKey(s).export({format:"der",type:"spki"}),a=-1;for(let M=0;Masync({callerClientConfig:e}={})=>{t?.logger?.debug?.("@aws-sdk/credential-providers - fromLoginCredentials");let r=await sz.parseKnownFiles(t||{}),n=sz.getProfileName({profile:t?.profile??e?.profile}),s=r[n];if(!s?.login_session)throw new Sl.CredentialsProviderError(`Profile ${n} does not contain login_session.`,{tryNextLink:!0,logger:t?.logger});let i=await new oz(s,t,e).loadCredentials();return Eft.setCredentialFeature(i,"CREDENTIALS_LOGIN","AD")};UCe.fromLoginCredentials=Cft});function Rft(t){return{schemeId:"aws.auth#sigv4",signingProperties:{name:"sts",region:t.region},propertiesExtractor:(e,r)=>({signingProperties:{config:e,context:r}})}}function vft(t){return{schemeId:"smithy.api#noAuth"}}var __,$Ce,GCe,xft,jCe,iz=_(()=>{Dt();__=require("@smithy/util-middleware");C_();$Ce=async(t,e,r)=>({operation:(0,__.getSmithyContext)(e).operation,region:await(0,__.normalizeProvider)(t.region)()||(()=>{throw new Error("expected `region` to be configured for `aws.auth#sigv4`")})()});GCe=t=>{let e=[];switch(t.operation){case"AssumeRoleWithWebIdentity":{e.push(vft(t));break}default:e.push(Rft(t))}return e},xft=t=>Object.assign(t,{stsClientCtor:Ma}),jCe=t=>{let e=xft(t),r=Nc(e);return Object.assign(r,{authSchemePreference:(0,__.normalizeProvider)(t.authSchemePreference??[])})}});var VCe,$w,Gw=_(()=>{VCe=t=>Object.assign(t,{useDualstackEndpoint:t.useDualstackEndpoint??!1,useFipsEndpoint:t.useFipsEndpoint??!1,useGlobalEndpoint:t.useGlobalEndpoint??!1,defaultSigningName:"sts"}),$w={UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}});var t0e,Ge,lt,dt,yl,El,un,r0e,n0e,s0e,Xt,HCe,Fa,pf,cz,zCe,az,o0e,WCe,ln,KCe,i0e,a0e,Nn,Zs,QCe,c0e,u0e,XCe,l0e,JCe,YCe,ZCe,e0e,Pft,d0e,p0e=_(()=>{t0e="required",Ge="type",lt="fn",dt="argv",yl="ref",El="booleanEquals",un="stringEquals",r0e="sigv4",n0e="sts",s0e="us-east-1",Xt="endpoint",HCe="https://sts.{Region}.{PartitionResult#dnsSuffix}",Fa="tree",pf="error",cz="getAttr",zCe={[t0e]:!1,[Ge]:"string"},az={[t0e]:!0,default:!1,[Ge]:"boolean"},o0e={[yl]:"Endpoint"},WCe={[lt]:"isSet",[dt]:[{[yl]:"Region"}]},ln={[yl]:"Region"},KCe={[lt]:"aws.partition",[dt]:[ln],assign:"PartitionResult"},i0e={[yl]:"UseFIPS"},a0e={[yl]:"UseDualStack"},Nn={url:"https://sts.amazonaws.com",properties:{authSchemes:[{name:r0e,signingName:n0e,signingRegion:s0e}]},headers:{}},Zs={},QCe={conditions:[{[lt]:un,[dt]:[ln,"aws-global"]}],[Xt]:Nn,[Ge]:Xt},c0e={[lt]:El,[dt]:[i0e,!0]},u0e={[lt]:El,[dt]:[a0e,!0]},XCe={[lt]:cz,[dt]:[{[yl]:"PartitionResult"},"supportsFIPS"]},l0e={[yl]:"PartitionResult"},JCe={[lt]:El,[dt]:[!0,{[lt]:cz,[dt]:[l0e,"supportsDualStack"]}]},YCe=[{[lt]:"isSet",[dt]:[o0e]}],ZCe=[c0e],e0e=[u0e],Pft={version:"1.0",parameters:{Region:zCe,UseDualStack:az,UseFIPS:az,Endpoint:zCe,UseGlobalEndpoint:az},rules:[{conditions:[{[lt]:El,[dt]:[{[yl]:"UseGlobalEndpoint"},!0]},{[lt]:"not",[dt]:YCe},WCe,KCe,{[lt]:El,[dt]:[i0e,!1]},{[lt]:El,[dt]:[a0e,!1]}],rules:[{conditions:[{[lt]:un,[dt]:[ln,"ap-northeast-1"]}],endpoint:Nn,[Ge]:Xt},{conditions:[{[lt]:un,[dt]:[ln,"ap-south-1"]}],endpoint:Nn,[Ge]:Xt},{conditions:[{[lt]:un,[dt]:[ln,"ap-southeast-1"]}],endpoint:Nn,[Ge]:Xt},{conditions:[{[lt]:un,[dt]:[ln,"ap-southeast-2"]}],endpoint:Nn,[Ge]:Xt},QCe,{conditions:[{[lt]:un,[dt]:[ln,"ca-central-1"]}],endpoint:Nn,[Ge]:Xt},{conditions:[{[lt]:un,[dt]:[ln,"eu-central-1"]}],endpoint:Nn,[Ge]:Xt},{conditions:[{[lt]:un,[dt]:[ln,"eu-north-1"]}],endpoint:Nn,[Ge]:Xt},{conditions:[{[lt]:un,[dt]:[ln,"eu-west-1"]}],endpoint:Nn,[Ge]:Xt},{conditions:[{[lt]:un,[dt]:[ln,"eu-west-2"]}],endpoint:Nn,[Ge]:Xt},{conditions:[{[lt]:un,[dt]:[ln,"eu-west-3"]}],endpoint:Nn,[Ge]:Xt},{conditions:[{[lt]:un,[dt]:[ln,"sa-east-1"]}],endpoint:Nn,[Ge]:Xt},{conditions:[{[lt]:un,[dt]:[ln,s0e]}],endpoint:Nn,[Ge]:Xt},{conditions:[{[lt]:un,[dt]:[ln,"us-east-2"]}],endpoint:Nn,[Ge]:Xt},{conditions:[{[lt]:un,[dt]:[ln,"us-west-1"]}],endpoint:Nn,[Ge]:Xt},{conditions:[{[lt]:un,[dt]:[ln,"us-west-2"]}],endpoint:Nn,[Ge]:Xt},{endpoint:{url:HCe,properties:{authSchemes:[{name:r0e,signingName:n0e,signingRegion:"{Region}"}]},headers:Zs},[Ge]:Xt}],[Ge]:Fa},{conditions:YCe,rules:[{conditions:ZCe,error:"Invalid Configuration: FIPS and custom endpoint are not supported",[Ge]:pf},{conditions:e0e,error:"Invalid Configuration: Dualstack and custom endpoint are not supported",[Ge]:pf},{endpoint:{url:o0e,properties:Zs,headers:Zs},[Ge]:Xt}],[Ge]:Fa},{conditions:[WCe],rules:[{conditions:[KCe],rules:[{conditions:[c0e,u0e],rules:[{conditions:[{[lt]:El,[dt]:[!0,XCe]},JCe],rules:[{endpoint:{url:"https://sts-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:Zs,headers:Zs},[Ge]:Xt}],[Ge]:Fa},{error:"FIPS and DualStack are enabled, but this partition does not support one or both",[Ge]:pf}],[Ge]:Fa},{conditions:ZCe,rules:[{conditions:[{[lt]:El,[dt]:[XCe,!0]}],rules:[{conditions:[{[lt]:un,[dt]:[{[lt]:cz,[dt]:[l0e,"name"]},"aws-us-gov"]}],endpoint:{url:"https://sts.{Region}.amazonaws.com",properties:Zs,headers:Zs},[Ge]:Xt},{endpoint:{url:"https://sts-fips.{Region}.{PartitionResult#dnsSuffix}",properties:Zs,headers:Zs},[Ge]:Xt}],[Ge]:Fa},{error:"FIPS is enabled but this partition does not support FIPS",[Ge]:pf}],[Ge]:Fa},{conditions:e0e,rules:[{conditions:[JCe],rules:[{endpoint:{url:"https://sts.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:Zs,headers:Zs},[Ge]:Xt}],[Ge]:Fa},{error:"DualStack is enabled but this partition does not support DualStack",[Ge]:pf}],[Ge]:Fa},QCe,{endpoint:{url:HCe,properties:Zs,headers:Zs},[Ge]:Xt}],[Ge]:Fa}],[Ge]:Fa},{error:"Invalid Configuration: Missing Region",[Ge]:pf}]},d0e=Pft});var m0e,mf,bft,g0e,f0e=_(()=>{m0e=O(Ta()),mf=require("@smithy/util-endpoints");p0e();bft=new mf.EndpointCache({size:50,params:["Endpoint","Region","UseDualStack","UseFIPS","UseGlobalEndpoint"]}),g0e=(t,e={})=>bft.get(t,()=>(0,mf.resolveEndpoint)(d0e,{endpointParams:t,logger:e.logger}));mf.customEndpointFunctions.aws=m0e.awsEndpointFunctions});var h0e,S0e,E0e,jw,Vw,y0e,_0e=_(()=>{Dt();wa();h0e=require("@smithy/core"),S0e=require("@smithy/smithy-client"),E0e=require("@smithy/url-parser"),jw=require("@smithy/util-base64"),Vw=require("@smithy/util-utf8");iz();f0e();y0e=t=>({apiVersion:"2011-06-15",base64Decoder:t?.base64Decoder??jw.fromBase64,base64Encoder:t?.base64Encoder??jw.toBase64,disableHostPrefix:t?.disableHostPrefix??!1,endpointProvider:t?.endpointProvider??g0e,extensions:t?.extensions??[],httpAuthSchemeProvider:t?.httpAuthSchemeProvider??GCe,httpAuthSchemes:t?.httpAuthSchemes??[{schemeId:"aws.auth#sigv4",identityProvider:e=>e.getIdentityProvider("aws.auth#sigv4"),signer:new An},{schemeId:"smithy.api#noAuth",identityProvider:e=>e.getIdentityProvider("smithy.api#noAuth")||(async()=>({})),signer:new h0e.NoAuthSigner}],logger:t?.logger??new S0e.NoOpLogger,protocol:t?.protocol??new al({defaultNamespace:"com.amazonaws.sts",xmlNamespace:"https://sts.amazonaws.com/doc/2011-06-15/",version:"2011-06-15"}),serviceId:t?.serviceId??"STS",urlParser:t?.urlParser??E0e.parseUrl,utf8Decoder:t?.utf8Decoder??Vw.fromUtf8,utf8Encoder:t?.utf8Encoder??Vw.toUtf8})});var Hw,Cl,C0e,R0e,zw,_l,Ww,Kw,v0e,x0e,P0e,b0e,I0e=_(()=>{xH();Dt();Hw=O(Mc()),Cl=require("@smithy/config-resolver"),C0e=require("@smithy/core"),R0e=require("@smithy/hash-node"),zw=require("@smithy/middleware-retry"),_l=require("@smithy/node-config-provider"),Ww=require("@smithy/node-http-handler"),Kw=require("@smithy/smithy-client"),v0e=require("@smithy/util-body-length-node"),x0e=require("@smithy/util-defaults-mode-node"),P0e=require("@smithy/util-retry");_0e();b0e=t=>{(0,Kw.emitWarningIfUnsupportedVersion)(process.version);let e=(0,x0e.resolveDefaultsModeConfig)(t),r=()=>e().then(Kw.loadConfigsForDefaultMode),n=y0e(t);Zu(process.version);let s={profile:t?.profile,logger:n.logger};return{...n,...t,runtime:"node",defaultsMode:e,authSchemePreference:t?.authSchemePreference??(0,_l.loadConfig)(tl,s),bodyLengthChecker:t?.bodyLengthChecker??v0e.calculateBodyLength,defaultUserAgentProvider:t?.defaultUserAgentProvider??(0,Hw.createDefaultUserAgentProvider)({serviceId:n.serviceId,clientVersion:FT.version}),httpAuthSchemes:t?.httpAuthSchemes??[{schemeId:"aws.auth#sigv4",identityProvider:o=>o.getIdentityProvider("aws.auth#sigv4")||(async i=>await t.credentialDefaultProvider(i?.__config||{})()),signer:new An},{schemeId:"smithy.api#noAuth",identityProvider:o=>o.getIdentityProvider("smithy.api#noAuth")||(async()=>({})),signer:new C0e.NoAuthSigner}],maxAttempts:t?.maxAttempts??(0,_l.loadConfig)(zw.NODE_MAX_ATTEMPT_CONFIG_OPTIONS,t),region:t?.region??(0,_l.loadConfig)(Cl.NODE_REGION_CONFIG_OPTIONS,{...Cl.NODE_REGION_CONFIG_FILE_OPTIONS,...s}),requestHandler:Ww.NodeHttpHandler.create(t?.requestHandler??r),retryMode:t?.retryMode??(0,_l.loadConfig)({...zw.NODE_RETRY_MODE_CONFIG_OPTIONS,default:async()=>(await r()).retryMode||P0e.DEFAULT_RETRY_MODE},t),sha256:t?.sha256??R0e.Hash.bind(null,"sha256"),streamCollector:t?.streamCollector??Ww.streamCollector,useDualstackEndpoint:t?.useDualstackEndpoint??(0,_l.loadConfig)(Cl.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS,s),useFipsEndpoint:t?.useFipsEndpoint??(0,_l.loadConfig)(Cl.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS,s),userAgentAppId:t?.userAgentAppId??(0,_l.loadConfig)(Hw.NODE_APP_ID_CONFIG_OPTIONS,s)}}});var A0e,T0e,w0e=_(()=>{A0e=t=>{let e=t.httpAuthSchemes,r=t.httpAuthSchemeProvider,n=t.credentials;return{setHttpAuthScheme(s){let o=e.findIndex(i=>i.schemeId===s.schemeId);o===-1?e.push(s):e.splice(o,1,s)},httpAuthSchemes(){return e},setHttpAuthSchemeProvider(s){r=s},httpAuthSchemeProvider(){return r},setCredentials(s){n=s},credentials(){return n}}},T0e=t=>({httpAuthSchemes:t.httpAuthSchemes(),httpAuthSchemeProvider:t.httpAuthSchemeProvider(),credentials:t.credentials()})});var Qw,Xw,Jw,D0e,O0e=_(()=>{Qw=O(Na()),Xw=require("@smithy/protocol-http"),Jw=require("@smithy/smithy-client");w0e();D0e=(t,e)=>{let r=Object.assign((0,Qw.getAwsRegionExtensionConfiguration)(t),(0,Jw.getDefaultExtensionConfiguration)(t),(0,Xw.getHttpHandlerExtensionConfiguration)(t),A0e(t));return e.forEach(n=>n.configure(r)),Object.assign(t,(0,Qw.resolveAwsRegionExtensionConfiguration)(r),(0,Jw.resolveDefaultRuntimeConfig)(r),(0,Xw.resolveHttpHandlerRuntimeConfig)(r),T0e(r))}});var Yw,k0e,N0e,Zw,L0e,gf,M0e,F0e,B0e,eD,uz,Ma,C_=_(()=>{Yw=O(wc()),k0e=O(Dc()),N0e=O(Oc()),Zw=O(Oa()),L0e=require("@smithy/config-resolver"),gf=require("@smithy/core"),M0e=require("@smithy/core/schema"),F0e=require("@smithy/middleware-content-length"),B0e=require("@smithy/middleware-endpoint"),eD=require("@smithy/middleware-retry"),uz=require("@smithy/smithy-client");iz();Gw();I0e();O0e();Ma=class extends uz.Client{config;constructor(...[e]){let r=b0e(e||{});super(r),this.initConfig=r;let n=VCe(r),s=(0,Zw.resolveUserAgentConfig)(n),o=(0,eD.resolveRetryConfig)(s),i=(0,L0e.resolveRegionConfig)(o),a=(0,Yw.resolveHostHeaderConfig)(i),c=(0,B0e.resolveEndpointConfig)(a),u=jCe(c),l=D0e(u,e?.extensions||[]);this.config=l,this.middlewareStack.use((0,M0e.getSchemaSerdePlugin)(this.config)),this.middlewareStack.use((0,Zw.getUserAgentPlugin)(this.config)),this.middlewareStack.use((0,eD.getRetryPlugin)(this.config)),this.middlewareStack.use((0,F0e.getContentLengthPlugin)(this.config)),this.middlewareStack.use((0,Yw.getHostHeaderPlugin)(this.config)),this.middlewareStack.use((0,k0e.getLoggerPlugin)(this.config)),this.middlewareStack.use((0,N0e.getRecursionDetectionPlugin)(this.config)),this.middlewareStack.use((0,gf.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config,{httpAuthSchemeParametersProvider:$Ce,identityProviderConfigProvider:async d=>new gf.DefaultIdentityProviderConfig({"aws.auth#sigv4":d.credentials})})),this.middlewareStack.use((0,gf.getHttpSigningPlugin)(this.config))}destroy(){super.destroy()}}});var U0e,fs,tD=_(()=>{U0e=require("@smithy/smithy-client"),fs=class t extends U0e.ServiceException{constructor(e){super(e),Object.setPrototypeOf(this,t.prototype)}}});var R_,v_,x_,P_,b_,I_,A_,lz=_(()=>{tD();R_=class t extends fs{name="ExpiredTokenException";$fault="client";constructor(e){super({name:"ExpiredTokenException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},v_=class t extends fs{name="MalformedPolicyDocumentException";$fault="client";constructor(e){super({name:"MalformedPolicyDocumentException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},x_=class t extends fs{name="PackedPolicyTooLargeException";$fault="client";constructor(e){super({name:"PackedPolicyTooLargeException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},P_=class t extends fs{name="RegionDisabledException";$fault="client";constructor(e){super({name:"RegionDisabledException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},b_=class t extends fs{name="IDPRejectedClaimException";$fault="client";constructor(e){super({name:"IDPRejectedClaimException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},I_=class t extends fs{name="InvalidIdentityTokenException";$fault="client";constructor(e){super({name:"InvalidIdentityTokenException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},A_=class t extends fs{name="IDPCommunicationErrorException";$fault="client";constructor(e){super({name:"IDPCommunicationErrorException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}}});var qc,Ift,Aft,Tft,wft,Dft,Oft,dz,kft,Nft,Lft,Mft,pz,Fft,q0e,Bft,Uft,qft,$ft,Gft,jft,Vft,Hft,$0e,G0e,zft,Wft,Kft,Qft,Xft,Jft,j0e,Yft,Zft,V0e,eht,H0e,tht,rht,mz,nht,sht,oht,iht,aht,cht,uht,lht,dht,pht,Yd,Zd,mht,ep,tp,rp,ght,z0e,fht,_t,hht,Sht,W0e,Eht,yht,_ht,Cht,K0e,Rht,vht,xht,Pht,bht,Iht,Aht,Tht,wht,Dht,Oht,Q0e,kht,Nht,X0e,J0e,gz=_(()=>{qc=require("@smithy/core/schema");lz();tD();Ift="Arn",Aft="AccessKeyId",Tft="AssumeRole",wft="AssumedRoleId",Dft="AssumeRoleRequest",Oft="AssumeRoleResponse",dz="AssumedRoleUser",kft="AssumeRoleWithWebIdentity",Nft="AssumeRoleWithWebIdentityRequest",Lft="AssumeRoleWithWebIdentityResponse",Mft="Audience",pz="Credentials",Fft="ContextAssertion",q0e="DurationSeconds",Bft="Expiration",Uft="ExternalId",qft="ExpiredTokenException",$ft="IDPCommunicationErrorException",Gft="IDPRejectedClaimException",jft="InvalidIdentityTokenException",Vft="Key",Hft="MalformedPolicyDocumentException",$0e="Policy",G0e="PolicyArns",zft="ProviderArn",Wft="ProvidedContexts",Kft="ProvidedContextsListType",Qft="ProvidedContext",Xft="PolicyDescriptorType",Jft="ProviderId",j0e="PackedPolicySize",Yft="PackedPolicyTooLargeException",Zft="Provider",V0e="RoleArn",eht="RegionDisabledException",H0e="RoleSessionName",tht="SecretAccessKey",rht="SubjectFromWebIdentityToken",mz="SourceIdentity",nht="SerialNumber",sht="SessionToken",oht="Tags",iht="TokenCode",aht="TransitiveTagKeys",cht="Tag",uht="Value",lht="WebIdentityToken",dht="arn",pht="accessKeySecretType",Yd="awsQueryError",Zd="client",mht="clientTokenType",ep="error",tp="httpError",rp="message",ght="policyDescriptorListType",z0e="smithy.ts.sdk.synthetic.com.amazonaws.sts",fht="tagListType",_t="com.amazonaws.sts",hht=[0,_t,pht,8,0],Sht=[0,_t,mht,8,0],W0e=[3,_t,dz,0,[wft,Ift],[0,0]],Eht=[3,_t,Dft,0,[V0e,H0e,G0e,$0e,q0e,oht,aht,Uft,nht,iht,mz,Wft],[0,0,()=>Q0e,0,1,()=>Nht,64,0,0,0,0,()=>kht]],yht=[3,_t,Oft,0,[pz,dz,j0e,mz],[[()=>K0e,0],()=>W0e,1,0]],_ht=[3,_t,Nft,0,[V0e,H0e,lht,Jft,G0e,$0e,q0e],[0,0,[()=>Sht,0],0,()=>Q0e,0,1]],Cht=[3,_t,Lft,0,[pz,rht,dz,j0e,Zft,Mft,mz],[[()=>K0e,0],0,()=>W0e,1,0,0,0]],K0e=[3,_t,pz,0,[Aft,tht,sht,Bft],[0,[()=>hht,0],0,4]],Rht=[-3,_t,qft,{[ep]:Zd,[tp]:400,[Yd]:["ExpiredTokenException",400]},[rp],[0]];qc.TypeRegistry.for(_t).registerError(Rht,R_);vht=[-3,_t,$ft,{[ep]:Zd,[tp]:400,[Yd]:["IDPCommunicationError",400]},[rp],[0]];qc.TypeRegistry.for(_t).registerError(vht,A_);xht=[-3,_t,Gft,{[ep]:Zd,[tp]:403,[Yd]:["IDPRejectedClaim",403]},[rp],[0]];qc.TypeRegistry.for(_t).registerError(xht,b_);Pht=[-3,_t,jft,{[ep]:Zd,[tp]:400,[Yd]:["InvalidIdentityToken",400]},[rp],[0]];qc.TypeRegistry.for(_t).registerError(Pht,I_);bht=[-3,_t,Hft,{[ep]:Zd,[tp]:400,[Yd]:["MalformedPolicyDocument",400]},[rp],[0]];qc.TypeRegistry.for(_t).registerError(bht,v_);Iht=[-3,_t,Yft,{[ep]:Zd,[tp]:400,[Yd]:["PackedPolicyTooLarge",400]},[rp],[0]];qc.TypeRegistry.for(_t).registerError(Iht,x_);Aht=[3,_t,Xft,0,[dht],[0]],Tht=[3,_t,Qft,0,[zft,Fft],[0,0]],wht=[-3,_t,eht,{[ep]:Zd,[tp]:403,[Yd]:["RegionDisabledException",403]},[rp],[0]];qc.TypeRegistry.for(_t).registerError(wht,P_);Dht=[3,_t,cht,0,[Vft,uht],[0,0]],Oht=[-3,z0e,"STSServiceException",0,[],[]];qc.TypeRegistry.for(z0e).registerError(Oht,fs);Q0e=[1,_t,ght,0,()=>Aht],kht=[1,_t,Kft,0,()=>Tht],Nht=[1,_t,fht,0,()=>Dht],X0e=[9,_t,Tft,0,()=>Eht,()=>yht],J0e=[9,_t,kft,0,()=>_ht,()=>Cht]});var Y0e,Z0e,np,rD=_(()=>{Y0e=require("@smithy/middleware-endpoint"),Z0e=require("@smithy/smithy-client");Gw();gz();np=class extends Z0e.Command.classBuilder().ep($w).m(function(e,r,n,s){return[(0,Y0e.getEndpointPlugin)(n,e.getEndpointParameterInstructions())]}).s("AWSSecurityTokenServiceV20110615","AssumeRole",{}).n("STSClient","AssumeRoleCommand").sc(X0e).build(){}});var eRe,tRe,sp,nD=_(()=>{eRe=require("@smithy/middleware-endpoint"),tRe=require("@smithy/smithy-client");Gw();gz();sp=class extends tRe.Command.classBuilder().ep($w).m(function(e,r,n,s){return[(0,eRe.getEndpointPlugin)(n,e.getEndpointParameterInstructions())]}).s("AWSSecurityTokenServiceV20110615","AssumeRoleWithWebIdentity",{}).n("STSClient","AssumeRoleWithWebIdentityCommand").sc(J0e).build(){}});var rRe,Lht,sD,nRe=_(()=>{rRe=require("@smithy/smithy-client");rD();nD();C_();Lht={AssumeRoleCommand:np,AssumeRoleWithWebIdentityCommand:sp},sD=class extends Ma{};(0,rRe.createAggregatedClient)(Lht,sD)});var sRe=_(()=>{rD();nD()});var oRe,iRe,aRe,cRe,uRe,lRe,dRe=_(()=>{Bo();oRe=O(Na());rD();nD();iRe=t=>{if(typeof t?.Arn=="string"){let e=t.Arn.split(":");if(e.length>4&&e[4]!=="")return e[4]}},aRe=async(t,e,r,n={})=>{let s=typeof t=="function"?await t():t,o=typeof e=="function"?await e():e,i="",a=s??o??(i=await(0,oRe.stsRegionDefaultResolver)(n)());return r?.debug?.("@aws-sdk/client-sts::resolveRegion","accepting first of:",`${s} (credential provider clientConfig)`,`${o} (contextual client)`,`${i} (STS default: AWS_REGION, profile region, or us-east-1)`),a},cRe=(t,e)=>{let r,n;return async(s,o)=>{if(n=s,!r){let{logger:l=t?.parentClientConfig?.logger,profile:d=t?.parentClientConfig?.profile,region:p,requestHandler:g=t?.parentClientConfig?.requestHandler,credentialProviderLogger:y,userAgentAppId:R=t?.parentClientConfig?.userAgentAppId}=t,D=await aRe(p,t?.parentClientConfig?.region,y,{logger:l,profile:d}),B=!lRe(g);r=new e({...t,userAgentAppId:R,profile:d,credentialDefaultProvider:()=>async()=>n,region:D,requestHandler:B?g:void 0,logger:l})}let{Credentials:i,AssumedRoleUser:a}=await r.send(new np(o));if(!i||!i.AccessKeyId||!i.SecretAccessKey)throw new Error(`Invalid response from STS.assumeRole call with role ${o.RoleArn}`);let c=iRe(a),u={accessKeyId:i.AccessKeyId,secretAccessKey:i.SecretAccessKey,sessionToken:i.SessionToken,expiration:i.Expiration,...i.CredentialScope&&{credentialScope:i.CredentialScope},...c&&{accountId:c}};return el(u,"CREDENTIALS_STS_ASSUME_ROLE","i"),u}},uRe=(t,e)=>{let r;return async n=>{if(!r){let{logger:c=t?.parentClientConfig?.logger,profile:u=t?.parentClientConfig?.profile,region:l,requestHandler:d=t?.parentClientConfig?.requestHandler,credentialProviderLogger:p,userAgentAppId:g=t?.parentClientConfig?.userAgentAppId}=t,y=await aRe(l,t?.parentClientConfig?.region,p,{logger:c,profile:u}),R=!lRe(d);r=new e({...t,userAgentAppId:g,profile:u,region:y,requestHandler:R?d:void 0,logger:c})}let{Credentials:s,AssumedRoleUser:o}=await r.send(new sp(n));if(!s||!s.AccessKeyId||!s.SecretAccessKey)throw new Error(`Invalid response from STS.assumeRoleWithWebIdentity call with role ${n.RoleArn}`);let i=iRe(o),a={accessKeyId:s.AccessKeyId,secretAccessKey:s.SecretAccessKey,sessionToken:s.SessionToken,expiration:s.Expiration,...s.CredentialScope&&{credentialScope:s.CredentialScope},...i&&{accountId:i}};return i&&el(a,"RESOLVED_ACCOUNT_ID","T"),el(a,"CREDENTIALS_STS_ASSUME_ROLE_WEB_ID","k"),a}},lRe=t=>t?.metadata?.handlerProtocol==="h2"});var pRe,mRe,gRe,Mht,fRe=_(()=>{dRe();C_();pRe=(t,e)=>e?class extends t{constructor(n){super(n);for(let s of e)this.middlewareStack.use(s)}}:t,mRe=(t={},e)=>cRe(t,pRe(Ma,e)),gRe=(t={},e)=>uRe(t,pRe(Ma,e)),Mht=t=>e=>t({roleAssumer:mRe(e),roleAssumerWithWebIdentity:gRe(e),...e})});var fz={};wt(fz,{AssumeRoleCommand:()=>np,AssumeRoleWithWebIdentityCommand:()=>sp,ExpiredTokenException:()=>R_,IDPCommunicationErrorException:()=>A_,IDPRejectedClaimException:()=>b_,InvalidIdentityTokenException:()=>I_,MalformedPolicyDocumentException:()=>v_,PackedPolicyTooLargeException:()=>x_,RegionDisabledException:()=>P_,STS:()=>sD,STSClient:()=>Ma,STSServiceException:()=>fs,__Client:()=>uz.Client,decorateDefaultCredentialProvider:()=>Mht,getDefaultRoleAssumer:()=>mRe,getDefaultRoleAssumerWithWebIdentity:()=>gRe});var hz=_(()=>{C_();nRe();sRe();lz();fRe();tD()});var yz=b(hRe=>{"use strict";var Ez=require("@smithy/shared-ini-file-loader"),Sz=require("@smithy/property-provider"),Fht=require("child_process"),Bht=require("util"),Uht=(Bo(),ue(kc)),qht=(t,e,r)=>{if(e.Version!==1)throw Error(`Profile ${t} credential_process did not return Version 1.`);if(e.AccessKeyId===void 0||e.SecretAccessKey===void 0)throw Error(`Profile ${t} credential_process returned invalid credentials.`);if(e.Expiration){let o=new Date;if(new Date(e.Expiration){let n=e[t];if(e[t]){let s=n.credential_process;if(s!==void 0){let o=Bht.promisify(Ez.externalDataInterceptor?.getTokenRecord?.().exec??Fht.exec);try{let{stdout:i}=await o(s),a;try{a=JSON.parse(i.trim())}catch{throw Error(`Profile ${t} credential_process returned invalid JSON.`)}return qht(t,a,e)}catch(i){throw new Sz.CredentialsProviderError(i.message,{logger:r})}}else throw new Sz.CredentialsProviderError(`Profile ${t} did not contain credential_process.`,{logger:r})}else throw new Sz.CredentialsProviderError(`Profile ${t} could not be found in shared credentials file.`,{logger:r})},Ght=(t={})=>async({callerClientConfig:e}={})=>{t.logger?.debug("@aws-sdk/credential-provider-process - fromProcess");let r=await Ez.parseKnownFiles(t);return $ht(Ez.getProfileName({profile:t.profile??e?.profile}),r,t.logger)};hRe.fromProcess=Ght});var _z=b(Ba=>{"use strict";var jht=Ba&&Ba.__createBinding||(Object.create?function(t,e,r,n){n===void 0&&(n=r);var s=Object.getOwnPropertyDescriptor(e,r);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,n,s)}:function(t,e,r,n){n===void 0&&(n=r),t[n]=e[r]}),Vht=Ba&&Ba.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Hht=Ba&&Ba.__importStar||function(){var t=function(e){return t=Object.getOwnPropertyNames||function(r){var n=[];for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(n[n.length]=s);return n},t(e)};return function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var n=t(e),s=0;sasync e=>{t.logger?.debug("@aws-sdk/credential-provider-web-identity - fromWebToken");let{roleArn:r,roleSessionName:n,webIdentityToken:s,providerId:o,policyArns:i,policy:a,durationSeconds:c}=t,{roleAssumerWithWebIdentity:u}=t;if(!u){let{getDefaultRoleAssumerWithWebIdentity:l}=await Promise.resolve().then(()=>Hht((hz(),ue(fz))));u=l({...t.clientConfig,credentialProviderLogger:t.logger,parentClientConfig:{...e?.callerClientConfig,...t.parentClientConfig}},t.clientPlugins)}return u({RoleArn:r,RoleSessionName:n??`aws-sdk-js-session-${Date.now()}`,WebIdentityToken:s,ProviderId:o,PolicyArns:i,Policy:a,DurationSeconds:c})};Ba.fromWebToken=zht});var ERe=b(oD=>{"use strict";Object.defineProperty(oD,"__esModule",{value:!0});oD.fromTokenFile=void 0;var Wht=(Bo(),ue(kc)),Kht=require("@smithy/property-provider"),Qht=require("@smithy/shared-ini-file-loader"),Xht=require("fs"),Jht=_z(),SRe="AWS_WEB_IDENTITY_TOKEN_FILE",Yht="AWS_ROLE_ARN",Zht="AWS_ROLE_SESSION_NAME",eSt=(t={})=>async e=>{t.logger?.debug("@aws-sdk/credential-provider-web-identity - fromTokenFile");let r=t?.webIdentityTokenFile??process.env[SRe],n=t?.roleArn??process.env[Yht],s=t?.roleSessionName??process.env[Zht];if(!r||!n)throw new Kht.CredentialsProviderError("Web identity configuration not specified",{logger:t.logger});let o=await(0,Jht.fromWebToken)({...t,webIdentityToken:Qht.externalDataInterceptor?.getTokenRecord?.()[r]??(0,Xht.readFileSync)(r,{encoding:"ascii"}),roleArn:n,roleSessionName:s})(e);return r===process.env[SRe]&&(0,Wht.setCredentialFeature)(o,"CREDENTIALS_ENV_VARS_STS_WEB_ID_TOKEN","h"),o};oD.fromTokenFile=eSt});var Cz=b(T_=>{"use strict";var yRe=ERe(),_Re=_z();Object.keys(yRe).forEach(function(t){t!=="default"&&!Object.prototype.hasOwnProperty.call(T_,t)&&Object.defineProperty(T_,t,{enumerable:!0,get:function(){return yRe[t]}})});Object.keys(_Re).forEach(function(t){t!=="default"&&!Object.prototype.hasOwnProperty.call(T_,t)&&Object.defineProperty(T_,t,{enumerable:!0,get:function(){return _Re[t]}})})});var bRe=b(PRe=>{"use strict";var vz=require("@smithy/shared-ini-file-loader"),w_=require("@smithy/property-provider"),$c=(Bo(),ue(kc)),tSt=qCe(),rSt=(t,e,r)=>{let n={EcsContainer:async s=>{let{fromHttp:o}=await Promise.resolve().then(()=>O(CH())),{fromContainerMetadata:i}=await import("@smithy/credential-provider-imds");return r?.debug("@aws-sdk/credential-provider-ini - credential_source is EcsContainer"),async()=>w_.chain(o(s??{}),i(s))().then(Rz)},Ec2InstanceMetadata:async s=>{r?.debug("@aws-sdk/credential-provider-ini - credential_source is Ec2InstanceMetadata");let{fromInstanceMetadata:o}=await import("@smithy/credential-provider-imds");return async()=>o(s)().then(Rz)},Environment:async s=>{r?.debug("@aws-sdk/credential-provider-ini - credential_source is Environment");let{fromEnv:o}=await Promise.resolve().then(()=>O(yH()));return async()=>o(s)().then(Rz)}};if(t in n)return n[t];throw new w_.CredentialsProviderError(`Unsupported credential source in profile ${e}. Got ${t}, expected EcsContainer or Ec2InstanceMetadata or Environment.`,{logger:r})},Rz=t=>$c.setCredentialFeature(t,"CREDENTIALS_PROFILE_NAMED_PROVIDER","p"),nSt=(t,{profile:e="default",logger:r}={})=>!!t&&typeof t=="object"&&typeof t.role_arn=="string"&&["undefined","string"].indexOf(typeof t.role_session_name)>-1&&["undefined","string"].indexOf(typeof t.external_id)>-1&&["undefined","string"].indexOf(typeof t.mfa_serial)>-1&&(sSt(t,{profile:e,logger:r})||oSt(t,{profile:e,logger:r})),sSt=(t,{profile:e,logger:r})=>{let n=typeof t.source_profile=="string"&&typeof t.credential_source>"u";return n&&r?.debug?.(` ${e} isAssumeRoleWithSourceProfile source_profile=${t.source_profile}`),n},oSt=(t,{profile:e,logger:r})=>{let n=typeof t.credential_source=="string"&&typeof t.source_profile>"u";return n&&r?.debug?.(` ${e} isCredentialSourceProfile credential_source=${t.credential_source}`),n},iSt=async(t,e,r,n,s={},o)=>{r.logger?.debug("@aws-sdk/credential-provider-ini - resolveAssumeRoleCredentials (STS)");let i=e[t],{source_profile:a,region:c}=i;if(!r.roleAssumer){let{getDefaultRoleAssumer:l}=await Promise.resolve().then(()=>(hz(),fz));r.roleAssumer=l({...r.clientConfig,credentialProviderLogger:r.logger,parentClientConfig:{...n,...r?.parentClientConfig,region:c??r?.parentClientConfig?.region??n?.region}},r.clientPlugins)}if(a&&a in s)throw new w_.CredentialsProviderError(`Detected a cycle attempting to resolve credentials for profile ${vz.getProfileName(r)}. Profiles visited: `+Object.keys(s).join(", "),{logger:r.logger});r.logger?.debug(`@aws-sdk/credential-provider-ini - finding credential resolver using ${a?`source_profile=[${a}]`:`profile=[${t}]`}`);let u=a?o(a,e,r,n,{...s,[a]:!0},CRe(e[a]??{})):(await rSt(i.credential_source,t,r.logger)(r))();if(CRe(i))return u.then(l=>$c.setCredentialFeature(l,"CREDENTIALS_PROFILE_SOURCE_PROFILE","o"));{let l={RoleArn:i.role_arn,RoleSessionName:i.role_session_name||`aws-sdk-js-${Date.now()}`,ExternalId:i.external_id,DurationSeconds:parseInt(i.duration_seconds||"3600",10)},{mfa_serial:d}=i;if(d){if(!r.mfaCodeProvider)throw new w_.CredentialsProviderError(`Profile ${t} requires multi-factor authentication, but no MFA code callback was provided.`,{logger:r.logger,tryNextLink:!1});l.SerialNumber=d,l.TokenCode=await r.mfaCodeProvider(d)}let p=await u;return r.roleAssumer(p,l).then(g=>$c.setCredentialFeature(g,"CREDENTIALS_PROFILE_SOURCE_PROFILE","o"))}},CRe=t=>!t.role_arn&&!!t.credential_source,aSt=t=>!!(t&&t.login_session),cSt=async(t,e,r)=>{let n=await tSt.fromLoginCredentials({...e,profile:t})({callerClientConfig:r});return $c.setCredentialFeature(n,"CREDENTIALS_PROFILE_LOGIN","AC")},uSt=t=>!!t&&typeof t=="object"&&typeof t.credential_process=="string",lSt=async(t,e)=>Promise.resolve().then(()=>O(yz())).then(({fromProcess:r})=>r({...t,profile:e})().then(n=>$c.setCredentialFeature(n,"CREDENTIALS_PROFILE_PROCESS","v"))),dSt=async(t,e,r={},n)=>{let{fromSSO:s}=await Promise.resolve().then(()=>O(GH()));return s({profile:t,logger:r.logger,parentClientConfig:r.parentClientConfig,clientConfig:r.clientConfig})({callerClientConfig:n}).then(o=>e.sso_session?$c.setCredentialFeature(o,"CREDENTIALS_PROFILE_SSO","r"):$c.setCredentialFeature(o,"CREDENTIALS_PROFILE_SSO_LEGACY","t"))},pSt=t=>t&&(typeof t.sso_start_url=="string"||typeof t.sso_account_id=="string"||typeof t.sso_session=="string"||typeof t.sso_region=="string"||typeof t.sso_role_name=="string"),RRe=t=>!!t&&typeof t=="object"&&typeof t.aws_access_key_id=="string"&&typeof t.aws_secret_access_key=="string"&&["undefined","string"].indexOf(typeof t.aws_session_token)>-1&&["undefined","string"].indexOf(typeof t.aws_account_id)>-1,vRe=async(t,e)=>{e?.logger?.debug("@aws-sdk/credential-provider-ini - resolveStaticCredentials");let r={accessKeyId:t.aws_access_key_id,secretAccessKey:t.aws_secret_access_key,sessionToken:t.aws_session_token,...t.aws_credential_scope&&{credentialScope:t.aws_credential_scope},...t.aws_account_id&&{accountId:t.aws_account_id}};return $c.setCredentialFeature(r,"CREDENTIALS_PROFILE","n")},mSt=t=>!!t&&typeof t=="object"&&typeof t.web_identity_token_file=="string"&&typeof t.role_arn=="string"&&["undefined","string"].indexOf(typeof t.role_session_name)>-1,gSt=async(t,e,r)=>Promise.resolve().then(()=>O(Cz())).then(({fromTokenFile:n})=>n({webIdentityTokenFile:t.web_identity_token_file,roleArn:t.role_arn,roleSessionName:t.role_session_name,roleAssumerWithWebIdentity:e.roleAssumerWithWebIdentity,logger:e.logger,parentClientConfig:e.parentClientConfig})({callerClientConfig:r}).then(s=>$c.setCredentialFeature(s,"CREDENTIALS_PROFILE_STS_WEB_ID_TOKEN","q"))),xRe=async(t,e,r,n,s={},o=!1)=>{let i=e[t];if(Object.keys(s).length>0&&RRe(i))return vRe(i,r);if(o||nSt(i,{profile:t,logger:r.logger}))return iSt(t,e,r,n,s,xRe);if(RRe(i))return vRe(i,r);if(mSt(i))return gSt(i,r,n);if(uSt(i))return lSt(r,t);if(pSt(i))return await dSt(t,i,r,n);if(aSt(i))return cSt(t,r,n);throw new w_.CredentialsProviderError(`Could not resolve credentials using profile: [${t}] in configuration/credentials file(s).`,{logger:r.logger})},fSt=(t={})=>async({callerClientConfig:e}={})=>{t.logger?.debug("@aws-sdk/credential-provider-ini - fromIni");let r=await vz.parseKnownFiles(t);return xRe(vz.getProfileName({profile:t.profile??e?.profile}),r,t,e)};PRe.fromIni=fSt});var O_=b(iD=>{"use strict";var xz=yH(),D_=require("@smithy/property-provider"),hSt=require("@smithy/shared-ini-file-loader"),IRe="AWS_EC2_METADATA_DISABLED",SSt=async t=>{let{ENV_CMDS_FULL_URI:e,ENV_CMDS_RELATIVE_URI:r,fromContainerMetadata:n,fromInstanceMetadata:s}=await import("@smithy/credential-provider-imds");if(process.env[r]||process.env[e]){t.logger?.debug("@aws-sdk/credential-provider-node - remoteProvider::fromHttp/fromContainerMetadata");let{fromHttp:o}=await Promise.resolve().then(()=>O(CH()));return D_.chain(o(t),n(t))}return process.env[IRe]&&process.env[IRe]!=="false"?async()=>{throw new D_.CredentialsProviderError("EC2 Instance Metadata Service access disabled",{logger:t.logger})}:(t.logger?.debug("@aws-sdk/credential-provider-node - remoteProvider::fromInstanceMetadata"),s(t))};function ESt(t,e){let r=ySt(t),n,s,o,i=async a=>{if(a?.forceRefresh)return await r(a);if(o?.expiration&&o?.expiration?.getTime(){o=c,s=void 0}));else return n=r(a).then(c=>{o=c,n=void 0}),i(a);return o};return i}var ySt=t=>async e=>{let r;for(let n of t)try{return await n(e)}catch(s){if(r=s,s?.tryNextLink)continue;throw s}throw r},ARe=!1,_St=(t={})=>ESt([async()=>{if(t.profile??process.env[hSt.ENV_PROFILE])throw process.env[xz.ENV_KEY]&&process.env[xz.ENV_SECRET]&&(ARe||((t.logger?.warn&&t.logger?.constructor?.name!=="NoOpLogger"?t.logger.warn.bind(t.logger):console.warn)(`@aws-sdk/credential-provider-node - defaultProvider::fromEnv WARNING: - Multiple credential sources detected: - Both AWS_PROFILE and the pair AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY static credentials are set. - This SDK will proceed with the AWS_PROFILE value. - - However, a future version may change this behavior to prefer the ENV static credentials. - Please ensure that your environment only sets either the AWS_PROFILE or the - AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY pair. -`),ARe=!0)),new D_.CredentialsProviderError("AWS_PROFILE is set, skipping fromEnv provider.",{logger:t.logger,tryNextLink:!0});return t.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromEnv"),xz.fromEnv(t)()},async e=>{t.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromSSO");let{ssoStartUrl:r,ssoAccountId:n,ssoRegion:s,ssoRoleName:o,ssoSession:i}=t;if(!r&&!n&&!s&&!o&&!i)throw new D_.CredentialsProviderError("Skipping SSO provider in default chain (inputs do not include SSO fields).",{logger:t.logger});let{fromSSO:a}=await Promise.resolve().then(()=>O(GH()));return a(t)(e)},async e=>{t.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromIni");let{fromIni:r}=await Promise.resolve().then(()=>O(bRe()));return r(t)(e)},async e=>{t.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromProcess");let{fromProcess:r}=await Promise.resolve().then(()=>O(yz()));return r(t)(e)},async e=>{t.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromTokenFile");let{fromTokenFile:r}=await Promise.resolve().then(()=>O(Cz()));return r(t)(e)},async()=>(t.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::remoteProvider"),(await SSt(t))()),async()=>{throw new D_.CredentialsProviderError("Could not load credentials from any providers",{tryNextLink:!1,logger:t.logger})}],TRe),CSt=t=>t?.expiration!==void 0,TRe=t=>t?.expiration!==void 0&&t.expiration.getTime()-Date.now()<3e5;iD.credentialsTreatedAsExpired=TRe;iD.credentialsWillNeedRefresh=CSt;iD.defaultProvider=_St});var jRe=b(uD=>{"use strict";Object.defineProperty(uD,"__esModule",{value:!0});uD.ruleSet=void 0;var GRe="required",hs="fn",Ss="argv",Gc="ref",N_="properties",L_="headers",wRe=!0,RSt=!1,DRe="isSet",ip="booleanEquals",ff="error",op="endpoint",qi="tree",cD="PartitionResult",ORe={[GRe]:!0,default:!1,type:"boolean"},kRe={[GRe]:!1,type:"string"},NRe={[Gc]:"Endpoint"},k_={[hs]:ip,[Ss]:[{[Gc]:"UseFIPS"},!0]},vSt={[Gc]:"UseFIPS"},aD={[hs]:ip,[Ss]:[{[Gc]:"UseDualStack"},!0]},hf={},LRe={[hs]:"stringEquals",[Ss]:[{[hs]:"getAttr",[Ss]:[{[Gc]:cD},"name"]},"aws-us-gov"]},MRe={[hs]:ip,[Ss]:[{[Gc]:"UseDualStack"},!1]},FRe={url:"https://monitoring.{Region}.{PartitionResult#dnsSuffix}",[N_]:{},[L_]:{}},BRe={url:"https://monitoring.{Region}.{PartitionResult#dualStackDnsSuffix}",[N_]:{},[L_]:{}},URe={[hs]:"getAttr",[Ss]:[{[Gc]:cD},"supportsFIPS"]},qRe={[hs]:ip,[Ss]:[!0,{[hs]:"getAttr",[Ss]:[{[Gc]:cD},"supportsDualStack"]}]},$Re=[{[Gc]:"Region"}],xSt={version:"1.0",parameters:{UseDualStack:ORe,UseFIPS:ORe,Endpoint:kRe,Region:kRe},rules:[{conditions:[{[hs]:DRe,[Ss]:[NRe]}],rules:[{conditions:[k_],error:"Invalid Configuration: FIPS and custom endpoint are not supported",type:ff},{rules:[{conditions:[aD],error:"Invalid Configuration: Dualstack and custom endpoint are not supported",type:ff},{endpoint:{url:NRe,[N_]:hf,[L_]:hf},type:op}],type:qi}],type:qi},{rules:[{conditions:[{[hs]:DRe,[Ss]:$Re}],rules:[{conditions:[{[hs]:"aws.partition",[Ss]:$Re,assign:cD}],rules:[{conditions:[LRe,k_,MRe],endpoint:FRe,type:op},{conditions:[LRe,k_,aD],endpoint:BRe,type:op},{conditions:[k_,aD],rules:[{conditions:[{[hs]:ip,[Ss]:[wRe,URe]},qRe],rules:[{endpoint:{url:"https://monitoring-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",[N_]:hf,[L_]:hf},type:op}],type:qi},{error:"FIPS and DualStack are enabled, but this partition does not support one or both",type:ff}],type:qi},{conditions:[k_,MRe],rules:[{conditions:[{[hs]:ip,[Ss]:[URe,wRe]}],rules:[{endpoint:{url:"https://monitoring-fips.{Region}.{PartitionResult#dnsSuffix}",[N_]:hf,[L_]:hf},type:op}],type:qi},{error:"FIPS is enabled but this partition does not support FIPS",type:ff}],type:qi},{conditions:[{[hs]:ip,[Ss]:[vSt,RSt]},aD],rules:[{conditions:[qRe],rules:[{endpoint:BRe,type:op}],type:qi},{error:"DualStack is enabled but this partition does not support DualStack",type:ff}],type:qi},{endpoint:FRe,type:op}],type:qi}],type:qi},{error:"Invalid Configuration: Missing Region",type:ff}],type:qi}]};uD.ruleSet=xSt});var VRe=b(lD=>{"use strict";Object.defineProperty(lD,"__esModule",{value:!0});lD.defaultEndpointResolver=void 0;var PSt=Ta(),Pz=require("@smithy/util-endpoints"),bSt=jRe(),ISt=new Pz.EndpointCache({size:50,params:["Endpoint","Region","UseDualStack","UseFIPS"]}),ASt=(t,e={})=>ISt.get(t,()=>(0,Pz.resolveEndpoint)(bSt.ruleSet,{endpointParams:t,logger:e.logger}));lD.defaultEndpointResolver=ASt;Pz.customEndpointFunctions.aws=PSt.awsEndpointFunctions});var WRe=b(dD=>{"use strict";Object.defineProperty(dD,"__esModule",{value:!0});dD.getRuntimeConfig=void 0;var TSt=(Dt(),ue(Fr)),wSt=(wa(),ue(Wg)),DSt=require("@smithy/smithy-client"),OSt=require("@smithy/url-parser"),HRe=require("@smithy/util-base64"),zRe=require("@smithy/util-utf8"),kSt=EH(),NSt=VRe(),LSt=t=>({apiVersion:"2010-08-01",base64Decoder:t?.base64Decoder??HRe.fromBase64,base64Encoder:t?.base64Encoder??HRe.toBase64,disableHostPrefix:t?.disableHostPrefix??!1,endpointProvider:t?.endpointProvider??NSt.defaultEndpointResolver,extensions:t?.extensions??[],httpAuthSchemeProvider:t?.httpAuthSchemeProvider??kSt.defaultCloudWatchHttpAuthSchemeProvider,httpAuthSchemes:t?.httpAuthSchemes??[{schemeId:"aws.auth#sigv4",identityProvider:e=>e.getIdentityProvider("aws.auth#sigv4"),signer:new TSt.AwsSdkSigV4Signer}],logger:t?.logger??new DSt.NoOpLogger,protocol:t?.protocol??new wSt.AwsJson1_0Protocol({defaultNamespace:"com.amazonaws.cloudwatch",serviceTarget:"GraniteServiceVersion20100801",awsQueryCompatible:!0}),serviceId:t?.serviceId??"CloudWatch",urlParser:t?.urlParser??OSt.parseUrl,utf8Decoder:t?.utf8Decoder??zRe.fromUtf8,utf8Encoder:t?.utf8Encoder??zRe.toUtf8});dD.getRuntimeConfig=LSt});var eve=b(mD=>{"use strict";Object.defineProperty(mD,"__esModule",{value:!0});mD.getRuntimeConfig=void 0;var MSt=require("tslib"),FSt=MSt.__importDefault(eEe()),KRe=(Dt(),ue(Fr)),BSt=O_(),QRe=Mc(),pD=require("@smithy/config-resolver"),USt=require("@smithy/hash-node"),XRe=require("@smithy/middleware-compression"),JRe=require("@smithy/middleware-retry"),jc=require("@smithy/node-config-provider"),YRe=require("@smithy/node-http-handler"),ZRe=require("@smithy/smithy-client"),qSt=require("@smithy/util-body-length-node"),$St=require("@smithy/util-defaults-mode-node"),GSt=require("@smithy/util-retry"),jSt=WRe(),VSt=t=>{(0,ZRe.emitWarningIfUnsupportedVersion)(process.version);let e=(0,$St.resolveDefaultsModeConfig)(t),r=()=>e().then(ZRe.loadConfigsForDefaultMode),n=(0,jSt.getRuntimeConfig)(t);(0,KRe.emitWarningIfUnsupportedVersion)(process.version);let s={profile:t?.profile,logger:n.logger};return{...n,...t,runtime:"node",defaultsMode:e,authSchemePreference:t?.authSchemePreference??(0,jc.loadConfig)(KRe.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS,s),bodyLengthChecker:t?.bodyLengthChecker??qSt.calculateBodyLength,credentialDefaultProvider:t?.credentialDefaultProvider??BSt.defaultProvider,defaultUserAgentProvider:t?.defaultUserAgentProvider??(0,QRe.createDefaultUserAgentProvider)({serviceId:n.serviceId,clientVersion:FSt.default.version}),disableRequestCompression:t?.disableRequestCompression??(0,jc.loadConfig)(XRe.NODE_DISABLE_REQUEST_COMPRESSION_CONFIG_OPTIONS,t),maxAttempts:t?.maxAttempts??(0,jc.loadConfig)(JRe.NODE_MAX_ATTEMPT_CONFIG_OPTIONS,t),region:t?.region??(0,jc.loadConfig)(pD.NODE_REGION_CONFIG_OPTIONS,{...pD.NODE_REGION_CONFIG_FILE_OPTIONS,...s}),requestHandler:YRe.NodeHttpHandler.create(t?.requestHandler??r),requestMinCompressionSizeBytes:t?.requestMinCompressionSizeBytes??(0,jc.loadConfig)(XRe.NODE_REQUEST_MIN_COMPRESSION_SIZE_BYTES_CONFIG_OPTIONS,t),retryMode:t?.retryMode??(0,jc.loadConfig)({...JRe.NODE_RETRY_MODE_CONFIG_OPTIONS,default:async()=>(await r()).retryMode||GSt.DEFAULT_RETRY_MODE},t),sha256:t?.sha256??USt.Hash.bind(null,"sha256"),streamCollector:t?.streamCollector??YRe.streamCollector,useDualstackEndpoint:t?.useDualstackEndpoint??(0,jc.loadConfig)(pD.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS,s),useFipsEndpoint:t?.useFipsEndpoint??(0,jc.loadConfig)(pD.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS,s),userAgentAppId:t?.userAgentAppId??(0,jc.loadConfig)(QRe.NODE_APP_ID_CONFIG_OPTIONS,s)}};mD.getRuntimeConfig=VSt});var Wxe=b(ee=>{"use strict";var tve=wc(),HSt=Dc(),zSt=Oc(),rve=Oa(),WSt=require("@smithy/config-resolver"),Wo=require("@smithy/core"),Ln=require("@smithy/core/schema"),ave=require("@smithy/middleware-compression"),KSt=require("@smithy/middleware-content-length"),Ve=require("@smithy/middleware-endpoint"),nve=require("@smithy/middleware-retry"),De=require("@smithy/smithy-client"),sve=EH(),QSt=eve(),ove=Na(),ive=require("@smithy/protocol-http"),Ua=require("@smithy/util-waiter"),XSt=t=>Object.assign(t,{useDualstackEndpoint:t.useDualstackEndpoint??!1,useFipsEndpoint:t.useFipsEndpoint??!1,defaultSigningName:"monitoring"}),Ke={UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}},JSt=t=>{let e=t.httpAuthSchemes,r=t.httpAuthSchemeProvider,n=t.credentials;return{setHttpAuthScheme(s){let o=e.findIndex(i=>i.schemeId===s.schemeId);o===-1?e.push(s):e.splice(o,1,s)},httpAuthSchemes(){return e},setHttpAuthSchemeProvider(s){r=s},httpAuthSchemeProvider(){return r},setCredentials(s){n=s},credentials(){return n}}},YSt=t=>({httpAuthSchemes:t.httpAuthSchemes(),httpAuthSchemeProvider:t.httpAuthSchemeProvider(),credentials:t.credentials()}),ZSt=(t,e)=>{let r=Object.assign(ove.getAwsRegionExtensionConfiguration(t),De.getDefaultExtensionConfiguration(t),ive.getHttpHandlerExtensionConfiguration(t),JSt(t));return e.forEach(n=>n.configure(r)),Object.assign(t,ove.resolveAwsRegionExtensionConfiguration(r),De.resolveDefaultRuntimeConfig(r),ive.resolveHttpHandlerRuntimeConfig(r),YSt(r))},eo=class extends De.Client{config;constructor(...[e]){let r=QSt.getRuntimeConfig(e||{});super(r),this.initConfig=r;let n=XSt(r),s=rve.resolveUserAgentConfig(n),o=nve.resolveRetryConfig(s),i=WSt.resolveRegionConfig(o),a=tve.resolveHostHeaderConfig(i),c=Ve.resolveEndpointConfig(a),u=sve.resolveHttpAuthSchemeConfig(c),l=ave.resolveCompressionConfig(u),d=ZSt(l,e?.extensions||[]);this.config=d,this.middlewareStack.use(Ln.getSchemaSerdePlugin(this.config)),this.middlewareStack.use(rve.getUserAgentPlugin(this.config)),this.middlewareStack.use(nve.getRetryPlugin(this.config)),this.middlewareStack.use(KSt.getContentLengthPlugin(this.config)),this.middlewareStack.use(tve.getHostHeaderPlugin(this.config)),this.middlewareStack.use(HSt.getLoggerPlugin(this.config)),this.middlewareStack.use(zSt.getRecursionDetectionPlugin(this.config)),this.middlewareStack.use(Wo.getHttpAuthSchemeEndpointRuleSetPlugin(this.config,{httpAuthSchemeParametersProvider:sve.defaultCloudWatchHttpAuthSchemeParametersProvider,identityProviderConfigProvider:async p=>new Wo.DefaultIdentityProviderConfig({"aws.auth#sigv4":p.credentials})})),this.middlewareStack.use(Wo.getHttpSigningPlugin(this.config))}destroy(){super.destroy()}},Mn=class cve extends De.ServiceException{constructor(e){super(e),Object.setPrototypeOf(this,cve.prototype)}},uve=class lve extends Mn{name="ConcurrentModificationException";$fault="client";Message;constructor(e){super({name:"ConcurrentModificationException",$fault:"client",...e}),Object.setPrototypeOf(this,lve.prototype),this.Message=e.Message}},dve=class pve extends Mn{name="ConflictException";$fault="client";Message;constructor(e){super({name:"ConflictException",$fault:"client",...e}),Object.setPrototypeOf(this,pve.prototype),this.Message=e.Message}},mve=class gve extends Mn{name="DashboardInvalidInputError";$fault="client";dashboardValidationMessages;constructor(e){super({name:"DashboardInvalidInputError",$fault:"client",...e}),Object.setPrototypeOf(this,gve.prototype),this.dashboardValidationMessages=e.dashboardValidationMessages}},fve=class hve extends Mn{name="DashboardNotFoundError";$fault="client";constructor(e){super({name:"DashboardNotFoundError",$fault:"client",...e}),Object.setPrototypeOf(this,hve.prototype)}},Sve=class Eve extends Mn{name="ResourceNotFound";$fault="client";constructor(e){super({name:"ResourceNotFound",$fault:"client",...e}),Object.setPrototypeOf(this,Eve.prototype)}},yve=class _ve extends Mn{name="InternalServiceFault";$fault="server";Message;constructor(e){super({name:"InternalServiceFault",$fault:"server",...e}),Object.setPrototypeOf(this,_ve.prototype),this.Message=e.Message}},Cve=class Rve extends Mn{name="InvalidParameterCombinationException";$fault="client";constructor(e){super({name:"InvalidParameterCombinationException",$fault:"client",...e}),Object.setPrototypeOf(this,Rve.prototype)}},vve=class xve extends Mn{name="InvalidParameterValueException";$fault="client";constructor(e){super({name:"InvalidParameterValueException",$fault:"client",...e}),Object.setPrototypeOf(this,xve.prototype)}},Pve=class bve extends Mn{name="MissingRequiredParameterException";$fault="client";constructor(e){super({name:"MissingRequiredParameterException",$fault:"client",...e}),Object.setPrototypeOf(this,bve.prototype)}},Ive=class Ave extends Mn{name="ResourceNotFoundException";$fault="client";ResourceType;ResourceId;Message;constructor(e){super({name:"ResourceNotFoundException",$fault:"client",...e}),Object.setPrototypeOf(this,Ave.prototype),this.ResourceType=e.ResourceType,this.ResourceId=e.ResourceId,this.Message=e.Message}},Tve=class wve extends Mn{name="InvalidNextToken";$fault="client";constructor(e){super({name:"InvalidNextToken",$fault:"client",...e}),Object.setPrototypeOf(this,wve.prototype)}},Dve=class Ove extends Mn{name="LimitExceededException";$fault="client";Message;constructor(e){super({name:"LimitExceededException",$fault:"client",...e}),Object.setPrototypeOf(this,Ove.prototype),this.Message=e.Message}},kve=class Nve extends Mn{name="LimitExceededFault";$fault="client";constructor(e){super({name:"LimitExceededFault",$fault:"client",...e}),Object.setPrototypeOf(this,Nve.prototype)}},Lve=class Mve extends Mn{name="InvalidFormatFault";$fault="client";constructor(e){super({name:"InvalidFormatFault",$fault:"client",...e}),Object.setPrototypeOf(this,Mve.prototype)}},Fve="Average",zD="AlarmActions",eEt="ApproximateAggregateValue",Bve="AlarmArn",tEt="AlarmContributor",rEt="AlarmContributorAttributes",Uve="AlarmContributorId",qve="AlarmConfigurationUpdatedTimestamp",$ve="AlarmContributors",nEt="AnomalyDetector",sEt="AnomalyDetectorConfiguration",oEt="AnomalyDetectorExcludedTimeRanges",iEt="AnomalyDetectorTypes",WD="AlarmDescription",Gve="AnomalyDetectors",KD="ActionsEnabled",aEt="AlarmHistoryItem",jve="AlarmHistoryItems",Vve="AccountId",Rl="AlarmName",cEt="AlarmNamePrefix",QD="AlarmNames",Hve="ApplyOnTransformedLogs",uEt="ActionPrefix",zve="AlarmRule",Wve="ActionsSuppressor",lEt="ActionsSuppressedBy",Kve="ActionsSuppressorExtensionPeriod",dEt="ActionsSuppressedReason",Qve="ActionsSuppressorWaitPeriod",pEt="AdditionalStatistics",mEt="AggregationStatistic",gEt="AlarmType",Xve="AlarmTypes",fEt="ApproximateUniqueCount",hEt="AggregateValue",SEt="ApproximateValue",bz="Arn",EEt="Attributes",yEt="BatchFailures",Jve="Configuration",_Et="ContributorAttributes",CEt="CompositeAlarm",Yve="CompositeAlarms",Zve="CreationDate",REt="ConflictException",vEt="ContributorId",xEt="ConcurrentModificationException",exe="ComparisonOperator",PEt="ChildrenOfAlarmName",bEt="Contributors",IEt="Code",AEt="Counts",to="Dimensions",txe="DashboardArn",TEt="DisableAlarmActions",wEt="DisableAlarmActionsInput",DEt="DescribeAlarmContributors",OEt="DescribeAlarmContributorsInput",kEt="DescribeAlarmContributorsOutput",NEt="DeleteAnomalyDetector",LEt="DeleteAnomalyDetectorInput",MEt="DescribeAnomalyDetectorsInput",FEt="DeleteAnomalyDetectorOutput",BEt="DescribeAnomalyDetectorsOutput",UEt="DescribeAnomalyDetectors",qEt="DescribeAlarmsForMetric",$Et="DescribeAlarmsForMetricInput",GEt="DescribeAlarmsForMetricOutput",jEt="DescribeAlarmHistory",VEt="DescribeAlarmHistoryInput",HEt="DescribeAlarmHistoryOutput",zEt="DeleteAlarmsInput",WEt="DescribeAlarmsInput",KEt="DescribeAlarmsOutput",QEt="DeleteAlarms",XEt="DescribeAlarms",rxe="DashboardBody",JEt="DeleteDashboards",YEt="DeleteDashboardsInput",ZEt="DeleteDashboardsOutput",eyt="DashboardEntry",nxe="DashboardEntries",tyt="DimensionFilter",ryt="DimensionFilters",nyt="DashboardInvalidInputError",syt="DeleteInsightRules",oyt="DeleteInsightRulesInput",iyt="DescribeInsightRulesInput",ayt="DisableInsightRulesInput",cyt="DeleteInsightRulesOutput",uyt="DescribeInsightRulesOutput",lyt="DisableInsightRulesOutput",dyt="DescribeInsightRules",pyt="DisableInsightRules",myt="DeleteMetricStream",gyt="DeleteMetricStreamInput",fyt="DeleteMetricStreamOutput",XD="DashboardName",hyt="DashboardNotFoundError",Syt="DashboardNamePrefix",Eyt="DashboardNames",yyt="DataPath",sxe="DatapointsToAlarm",_yt="DashboardValidationMessage",oxe="DashboardValidationMessages",Cyt="Datapoint",Iz="Datapoints",Ryt="Definition",vyt="Dimension",ixe="Entity",xyt="EnableAlarmActions",Pyt="EnableAlarmActionsInput",byt="EndDate",axe="ExcludeFilters",Iyt="EnableInsightRules",Ayt="EnableInsightRulesInput",Tyt="EnableInsightRulesOutput",cxe="EvaluateLowSampleCountPercentile",uxe="EntityMetricData",wyt="EntityMetricDataList",lxe="EvaluationPeriods",dxe="ExtendedStatistics",Dyt="EvaluationState",Az="ExtendedStatistic",JD="EndTime",Oyt="ExcludedTimeRanges",kyt="ExceptionType",Nyt="Entries",Lyt="Expression",YD="Failures",Tz="FirehoseArn",Myt="FailureCode",Fyt="FailureDescription",Byt="FailureResource",Uyt="GetDashboard",qyt="GetDashboardInput",$yt="GetDashboardOutput",Gyt="GetInsightRuleReport",jyt="GetInsightRuleReportInput",Vyt="GetInsightRuleReportOutput",Hyt="GetMetricData",zyt="GetMetricDataInput",Wyt="GetMetricDataOutput",Kyt="GetMetricStatistics",Qyt="GetMetricStatisticsInput",Xyt="GetMetricStreamInput",Jyt="GetMetricStatisticsOutput",Yyt="GetMetricStreamOutput",Zyt="GetMetricStream",e_t="GetMetricWidgetImage",t_t="GetMetricWidgetImageInput",r_t="GetMetricWidgetImageOutput",n_t="HistoryData",pxe="HistoryItemType",s_t="HistorySummary",mxe="Id",ZD="InsufficientDataActions",gxe="IncludeFilters",o_t="InvalidFormatFault",i_t="IncludeLinkedAccounts",fxe="IncludeLinkedAccountsMetrics",a_t="IncludeMetrics",c_t="InvalidNextToken",u_t="InvalidParameterCombinationException",l_t="InvalidParameterValueException",hxe="InsightRules",d_t="InsightRuleContributor",p_t="InsightRuleContributorDatapoint",m_t="InsightRuleContributorDatapoints",g_t="InsightRuleContributors",f_t="InsightRuleMetricDatapoint",h_t="InsightRuleMetricDatapoints",S_t="InsightRule",E_t="InternalServiceFault",y_t="Keys",__t="KeyAttributes",C_t="KeyLabels",R_t="Key",wz="Label",v_t="ListDashboards",x_t="ListDashboardsInput",P_t="ListDashboardsOutput",b_t="LimitExceededException",I_t="LimitExceededFault",A_t="LastModified",T_t="ListMetricsInput",w_t="ListManagedInsightRules",D_t="ListManagedInsightRulesInput",O_t="ListManagedInsightRulesOutput",k_t="ListMetricsOutput",N_t="ListMetricStreams",L_t="ListMetricStreamsInput",M_t="ListMetricStreamsOutput",F_t="ListMetrics",Sxe="LabelOptions",B_t="ListTagsForResource",U_t="ListTagsForResourceInput",q_t="ListTagsForResourceOutput",Exe="LastUpdateDate",Sf="Message",Dz="MetricAlarms",$_t="MetricAlarm",Oz="MetricCharacteristics",G_t="MaxContributorCount",j_t="MaxContributorValue",kz="MetricData",Nz="MetricDataQueries",V_t="MetricDataQuery",yxe="MetricDataResults",H_t="MetricDataResultMessages",z_t="MetricDataResult",W_t="MaxDatapoints",K_t="MetricDatapoints",Q_t="MessageData",X_t="MetricDatum",eO="MetricMathAnomalyDetector",ro="MetricName",J_t="MetricNames",_xe="MaxRecords",Y_t="ManagedRuleDescription",Z_t="ManagedRuleDescriptions",eCt="MissingRequiredParameterException",tCt="ManagedRuleState",tO="MaxResults",Cxe="ManagedRule",Lz="ManagedRules",Rxe="MetricStat",rCt="MetricStreamEntry",nCt="MetricStreamEntries",sCt="MetricStreamFilter",oCt="MetricStreamFilters",iCt="MetricStreamStatisticsConfiguration",aCt="MetricStreamStatisticsConfigurations",cCt="MetricStreamStatisticsIncludeMetrics",uCt="MetricStreamStatisticsMetric",lCt="MetricTimezone",dCt="MetricWidget",pCt="MetricWidgetImage",Mz="Maximum",V_="Metrics",vxe="Messages",xxe="Metric",Fz="Minimum",Es="Namespace",Ar="NextToken",vl="Name",Pxe="Names",mCt="OwningAccount",gCt="OwningAccounts",fCt="OrderBy",rO="OutputFormat",nO="OKActions",cp="Period",hCt="PutAnomalyDetector",SCt="PutAnomalyDetectorInput",ECt="PutAnomalyDetectorOutput",yCt="PutCompositeAlarm",_Ct="PutCompositeAlarmInput",CCt="PutDashboard",RCt="PutDashboardInput",vCt="PutDashboardOutput",xCt="PartialFailure",PCt="PutInsightRule",bCt="PutInsightRuleInput",ICt="PutInsightRuleOutput",ACt="PutMetricAlarm",TCt="PutMetricAlarmInput",wCt="PutMetricData",DCt="PutMetricDataInput",OCt="PutManagedInsightRules",kCt="PutManagedInsightRulesInput",NCt="PutManagedInsightRulesOutput",LCt="PutMetricStream",MCt="PutMetricStreamInput",FCt="PutMetricStreamOutput",BCt="ParentsOfAlarmName",UCt="PeriodicSpikes",qCt="Range",bxe="RoleArn",Ef="ResourceARN",$Ct="RecentlyActive",GCt="ReturnData",jCt="RuleDefinition",VCt="ResourceId",Bz="RuleNames",HCt="ResourceNotFound",zCt="ResourceNotFoundException",Uz="RuleName",Ixe="RuleState",WCt="ResourceType",H_="Stat",KCt="SetAlarmState",QCt="SetAlarmStateInput",Axe="ScanBy",qz="SampleCount",Txe="StatisticsConfigurations",XCt="StatusCode",JCt="StartDate",YCt="StrictEntityValidation",sO="SingleMetricAnomalyDetector",ZCt="StartMetricStreams",e0t="StartMetricStreamsInput",t0t="StopMetricStreamsInput",r0t="StartMetricStreamsOutput",n0t="StopMetricStreamsOutput",s0t="StopMetricStreams",oO="StateReason",$z="StateReasonData",o0t="StorageResolution",i0t="StatisticSet",iO="StartTime",Gz="StateTransitionedTimestamp",wxe="StateUpdatedTimestamp",z_="StateValue",a0t="StatisticValues",c0t="Schema",u0t="Size",jz="Statistic",l0t="Statistics",aO="State",Vz="Sum",W_="Timestamp",d0t="TagKeys",p0t="TagList",Dxe="TreatMissingData",Oxe="ThresholdMetricId",kxe="TemplateName",m0t="TagResource",g0t="TagResourceInput",f0t="TagResourceOutput",up="Tags",h0t="Tag",Nxe="Threshold",S0t="Timezone",E0t="Timestamps",lp="Unit",y0t="UniqueContributors",_0t="UntagResource",C0t="UntagResourceInput",R0t="UntagResourceOutput",K_="Value",Lxe="Values",no="awsQueryError",so="client",v0t="dashboardValidationMessages",ys="error",_s="httpError",Vc="message",x0t="server",Mxe="smithy.ts.sdk.synthetic.com.amazonaws.cloudwatch",T="com.amazonaws.cloudwatch",P0t=[3,T,tEt,0,[vEt,_Et,oO,Gz],[0,128,0,4]],b0t=[3,T,aEt,0,[Rl,Uve,gEt,W_,pxe,s_t,n_t,rEt],[0,0,0,4,0,0,0,128]],I0t=[3,T,nEt,0,[Es,ro,to,H_,Jve,z_,Oz,sO,eO],[0,0,()=>$i,0,()=>Fxe,0,()=>Uxe,()=>zz,()=>Hz]],Fxe=[3,T,sEt,0,[Oyt,lCt],[()=>Bvt,0]],A0t=[3,T,CEt,0,[KD,zD,Bve,qve,WD,Rl,zve,ZD,nO,oO,$z,wxe,z_,Gz,lEt,dEt,Wve,Qve,Kve],[2,64,0,4,0,0,0,64,64,0,0,4,0,4,0,0,0,1,1]],T0t=[-3,T,xEt,{[ys]:so,[_s]:429,[no]:["ConcurrentModificationException",429]},[Sf],[0]];Ln.TypeRegistry.for(T).registerError(T0t,uve);var w0t=[-3,T,REt,{[ys]:so,[_s]:409},[Sf],[0]];Ln.TypeRegistry.for(T).registerError(w0t,dve);var D0t=[3,T,eyt,0,[XD,txe,A_t,u0t],[0,0,4,1]],O0t=[-3,T,nyt,{[ys]:so,[_s]:400,[no]:["InvalidParameterInput",400]},[Vc,v0t],[0,()=>qxe]];Ln.TypeRegistry.for(T).registerError(O0t,mve);var k0t=[-3,T,hyt,{[ys]:so,[_s]:404,[no]:["ResourceNotFound",404]},[Vc],[0]];Ln.TypeRegistry.for(T).registerError(k0t,fve);var N0t=[3,T,_yt,0,[yyt,Sf],[0,0]],L0t=[3,T,Cyt,0,[W_,qz,Fve,Vz,Fz,Mz,lp,dxe],[4,1,1,1,1,1,0,129]],M0t=[3,T,zEt,0,[QD],[64]],F0t=[3,T,LEt,0,[Es,ro,to,H_,sO,eO],[0,0,()=>$i,0,()=>zz,()=>Hz]],B0t=[3,T,FEt,0,[],[]],U0t=[3,T,YEt,0,[Eyt],[64]],q0t=[3,T,ZEt,0,[],[]],$0t=[3,T,oyt,0,[Bz],[64]],G0t=[3,T,cyt,0,[YD],[()=>cO]],j0t=[3,T,gyt,0,[vl],[0]],V0t=[3,T,fyt,0,[],[]],H0t=[3,T,OEt,0,[Rl,Ar],[0,0]],z0t=[3,T,kEt,0,[$ve,Ar],[()=>Mvt,0]],W0t=[3,T,VEt,0,[Rl,Uve,Xve,pxe,JCt,byt,_xe,Ar,Axe],[0,0,64,0,4,4,1,0,0]],K0t=[3,T,HEt,0,[jve,Ar],[()=>Fvt,0]],Q0t=[3,T,$Et,0,[ro,Es,jz,Az,to,cp,lp],[0,0,0,0,()=>$i,1,0]],X0t=[3,T,GEt,0,[Dz],[()=>$xe]],J0t=[3,T,WEt,0,[QD,cEt,Xve,PEt,BCt,z_,uEt,_xe,Ar],[64,0,64,0,0,0,0,1,0]],Y0t=[3,T,KEt,0,[Yve,Dz,Ar],[()=>qvt,()=>$xe,0]],Z0t=[3,T,MEt,0,[Ar,tO,Es,ro,to,iEt],[0,1,0,0,()=>$i,64]],eRt=[3,T,BEt,0,[Gve,Ar],[()=>Uvt,0]],tRt=[3,T,iyt,0,[Ar,tO],[0,1]],rRt=[3,T,uyt,0,[Ar,hxe],[0,()=>Kvt]],nRt=[3,T,vyt,0,[vl,K_],[0,0]],sRt=[3,T,tyt,0,[vl,K_],[0,0]],oRt=[3,T,wEt,0,[QD],[64]],iRt=[3,T,ayt,0,[Bz],[64]],aRt=[3,T,lyt,0,[YD],[()=>cO]],cRt=[3,T,Pyt,0,[QD],[64]],uRt=[3,T,Ayt,0,[Bz],[64]],lRt=[3,T,Tyt,0,[YD],[()=>cO]],dRt=[3,T,ixe,0,[__t,EEt],[128,128]],pRt=[3,T,uxe,0,[ixe,kz],[()=>dRt,()=>Gxe]],mRt=[3,T,qyt,0,[XD],[0]],gRt=[3,T,$yt,0,[txe,rxe,XD],[0,0,0]],fRt=[3,T,jyt,0,[Uz,iO,JD,cp,G_t,V_,fCt],[0,4,4,1,1,64,0]],hRt=[3,T,Vyt,0,[C_t,mEt,hEt,fEt,bEt,K_t],[64,0,1,1,()=>zvt,()=>Wvt]],SRt=[3,T,zyt,0,[Nz,iO,JD,Ar,Axe,W_t,Sxe],[()=>uO,4,4,0,0,1,()=>NRt]],ERt=[3,T,Wyt,0,[yxe,Ar,vxe],[()=>Jvt,0,()=>jxe]],yRt=[3,T,Qyt,0,[Es,ro,to,iO,JD,cp,l0t,dxe,lp],[0,0,()=>$i,4,4,1,64,64,0]],_Rt=[3,T,Jyt,0,[wz,Iz],[0,()=>Gvt]],CRt=[3,T,Xyt,0,[vl],[0]],RRt=[3,T,Yyt,0,[bz,vl,gxe,axe,Tz,bxe,aO,Zve,Exe,rO,Txe,fxe],[0,0,()=>gD,()=>gD,0,0,0,4,4,0,()=>Vxe,2]],vRt=[3,T,t_t,0,[dCt,rO],[0,0]],xRt=[3,T,r_t,0,[pCt],[21]],PRt=[3,T,S_t,0,[vl,aO,c0t,Ryt,Cxe,Hve],[0,0,0,0,2,2]],bRt=[3,T,d_t,0,[y_t,eEt,Iz],[64,1,()=>Hvt]],IRt=[3,T,p_t,0,[W_,SEt],[4,1]],ARt=[3,T,f_t,0,[W_,y0t,j_t,qz,Fve,Vz,Fz,Mz],[4,1,1,1,1,1,1,1]],TRt=[-3,T,E_t,{[ys]:x0t,[_s]:500,[no]:["InternalServiceError",500]},[Sf],[0]];Ln.TypeRegistry.for(T).registerError(TRt,yve);var wRt=[-3,T,o_t,{[ys]:so,[_s]:400,[no]:["InvalidFormat",400]},[Vc],[0]];Ln.TypeRegistry.for(T).registerError(wRt,Lve);var DRt=[-3,T,c_t,{[ys]:so,[_s]:400,[no]:["InvalidNextToken",400]},[Vc],[0]];Ln.TypeRegistry.for(T).registerError(DRt,Tve);var ORt=[-3,T,u_t,{[ys]:so,[_s]:400,[no]:["InvalidParameterCombination",400]},[Vc],[0]];Ln.TypeRegistry.for(T).registerError(ORt,Cve);var kRt=[-3,T,l_t,{[ys]:so,[_s]:400,[no]:["InvalidParameterValue",400]},[Vc],[0]];Ln.TypeRegistry.for(T).registerError(kRt,vve);var NRt=[3,T,Sxe,0,[S0t],[0]],LRt=[-3,T,b_t,{[ys]:so,[_s]:400,[no]:["LimitExceededException",400]},[Sf],[0]];Ln.TypeRegistry.for(T).registerError(LRt,Dve);var MRt=[-3,T,I_t,{[ys]:so,[_s]:400,[no]:["LimitExceeded",400]},[Vc],[0]];Ln.TypeRegistry.for(T).registerError(MRt,kve);var FRt=[3,T,x_t,0,[Syt,Ar],[0,0]],BRt=[3,T,P_t,0,[nxe,Ar],[()=>$vt,0]],URt=[3,T,D_t,0,[Ef,Ar,tO],[0,0,1]],qRt=[3,T,O_t,0,[Lz,Ar],[()=>Qvt,0]],$Rt=[3,T,T_t,0,[Es,ro,to,Ar,$Ct,i_t,mCt],[0,0,()=>jvt,0,0,2,0]],GRt=[3,T,k_t,0,[V_,Ar,gCt],[()=>Yvt,0,64]],jRt=[3,T,L_t,0,[Ar,tO],[0,1]],VRt=[3,T,M_t,0,[Ar,Nyt],[0,()=>Zvt]],HRt=[3,T,U_t,0,[Ef],[0]],zRt=[3,T,q_t,0,[up],[()=>pp]],WRt=[3,T,Cxe,0,[kxe,Ef,up],[0,0,()=>pp]],KRt=[3,T,Y_t,0,[kxe,Ef,Ixe],[0,0,()=>QRt]],QRt=[3,T,tCt,0,[Uz,aO],[0,0]],XRt=[3,T,Q_t,0,[IEt,K_],[0,0]],Bxe=[3,T,xxe,0,[Es,ro,to],[0,0,()=>$i]],JRt=[3,T,$_t,0,[Rl,Bve,WD,qve,KD,nO,zD,ZD,z_,oO,$z,wxe,ro,Es,jz,Az,to,cp,lp,lxe,sxe,Nxe,exe,Dxe,cxe,V_,Oxe,Dyt,Gz],[0,0,0,4,2,64,64,64,0,0,0,4,0,0,0,0,()=>$i,1,0,1,1,1,0,0,0,()=>uO,0,0,4]],Uxe=[3,T,Oz,0,[UCt],[2]],YRt=[3,T,V_t,0,[mxe,Rxe,Lyt,wz,GCt,cp,Vve],[0,()=>tvt,0,0,2,1,0]],ZRt=[3,T,z_t,0,[mxe,wz,E0t,Lxe,XCt,vxe],[0,0,68,65,0,()=>jxe]],evt=[3,T,X_t,0,[ro,to,W_,K_,a0t,Lxe,AEt,lp,o0t],[0,()=>$i,4,1,()=>Ivt,65,65,0,1]],Hz=[3,T,eO,0,[Nz],[()=>uO]],tvt=[3,T,Rxe,0,[xxe,cp,H_,lp],[()=>Bxe,1,0,0]],rvt=[3,T,rCt,0,[bz,Zve,Exe,vl,Tz,aO,rO],[0,4,4,0,0,0,0]],nvt=[3,T,sCt,0,[Es,J_t],[0,64]],svt=[3,T,iCt,0,[a_t,pEt],[()=>ext,64]],ovt=[3,T,uCt,0,[Es,ro],[0,0]],ivt=[-3,T,eCt,{[ys]:so,[_s]:400,[no]:["MissingParameter",400]},[Vc],[0]];Ln.TypeRegistry.for(T).registerError(ivt,Pve);var avt=[3,T,xCt,0,[Byt,kyt,Myt,Fyt],[0,0,0,0]],cvt=[3,T,SCt,0,[Es,ro,to,H_,Jve,Oz,sO,eO],[0,0,()=>$i,0,()=>Fxe,()=>Uxe,()=>zz,()=>Hz]],uvt=[3,T,ECt,0,[],[]],lvt=[3,T,_Ct,0,[KD,zD,WD,Rl,zve,ZD,nO,up,Wve,Qve,Kve],[2,64,0,0,0,64,64,()=>pp,0,1,1]],dvt=[3,T,RCt,0,[XD,rxe],[0,0]],pvt=[3,T,vCt,0,[oxe],[()=>qxe]],mvt=[3,T,bCt,0,[Uz,Ixe,jCt,up,Hve],[0,0,0,()=>pp,2]],gvt=[3,T,ICt,0,[],[]],fvt=[3,T,kCt,0,[Lz],[()=>Xvt]],hvt=[3,T,NCt,0,[YD],[()=>cO]],Svt=[3,T,TCt,0,[Rl,WD,KD,nO,zD,ZD,ro,Es,jz,Az,to,cp,lp,lxe,sxe,Nxe,exe,Dxe,cxe,V_,up,Oxe],[0,0,2,64,64,64,0,0,0,0,()=>$i,1,0,1,1,1,0,0,0,()=>uO,()=>pp,0]],Evt=[3,T,DCt,0,[Es,kz,uxe,YCt],[0,()=>Gxe,()=>Vvt,2]],yvt=[3,T,MCt,0,[vl,gxe,axe,Tz,bxe,rO,up,Txe,fxe],[0,()=>gD,()=>gD,0,0,0,()=>pp,()=>Vxe,2]],_vt=[3,T,FCt,0,[bz],[0]],Cvt=[3,T,qCt,0,[iO,JD],[4,4]],Rvt=[-3,T,HCt,{[ys]:so,[_s]:404,[no]:["ResourceNotFound",404]},[Vc],[0]];Ln.TypeRegistry.for(T).registerError(Rvt,Sve);var vvt=[-3,T,zCt,{[ys]:so,[_s]:404,[no]:["ResourceNotFoundException",404]},[WCt,VCt,Sf],[0,0,0]];Ln.TypeRegistry.for(T).registerError(vvt,Ive);var xvt=[3,T,QCt,0,[Rl,z_,oO,$z],[0,0,0,0]],zz=[3,T,sO,0,[Vve,Es,ro,to,H_],[0,0,0,()=>$i,0]],Pvt=[3,T,e0t,0,[Pxe],[64]],bvt=[3,T,r0t,0,[],[]],Ivt=[3,T,i0t,0,[qz,Vz,Fz,Mz],[1,1,1,1]],Avt=[3,T,t0t,0,[Pxe],[64]],Tvt=[3,T,n0t,0,[],[]],wvt=[3,T,h0t,0,[R_t,K_],[0,0]],Dvt=[3,T,g0t,0,[Ef,up],[0,()=>pp]],Ovt=[3,T,f0t,0,[],[]],kvt=[3,T,C0t,0,[Ef,d0t],[0,64]],Nvt=[3,T,R0t,0,[],[]],dp="unit",Lvt=[-3,Mxe,"CloudWatchServiceException",0,[],[]];Ln.TypeRegistry.for(Mxe).registerError(Lvt,Mn);var Mvt=[1,T,$ve,0,()=>P0t],Fvt=[1,T,jve,0,()=>b0t],Bvt=[1,T,oEt,0,()=>Cvt],Uvt=[1,T,Gve,0,()=>I0t],cO=[1,T,yEt,0,()=>avt],qvt=[1,T,Yve,0,()=>A0t],$vt=[1,T,nxe,0,()=>D0t],qxe=[1,T,oxe,0,()=>N0t],Gvt=[1,T,Iz,0,()=>L0t],jvt=[1,T,ryt,0,()=>sRt],$i=[1,T,to,0,()=>nRt],Vvt=[1,T,wyt,0,()=>pRt],Hvt=[1,T,m_t,0,()=>IRt],zvt=[1,T,g_t,0,()=>bRt],Wvt=[1,T,h_t,0,()=>ARt],Kvt=[1,T,hxe,0,()=>PRt],Qvt=[1,T,Z_t,0,()=>KRt],Xvt=[1,T,Lz,0,()=>WRt],$xe=[1,T,Dz,0,()=>JRt],Gxe=[1,T,kz,0,()=>evt],uO=[1,T,Nz,0,()=>YRt],jxe=[1,T,H_t,0,()=>XRt],Jvt=[1,T,yxe,0,()=>ZRt],Yvt=[1,T,V_,0,()=>Bxe],Zvt=[1,T,nCt,0,()=>rvt],gD=[1,T,oCt,0,()=>nvt],Vxe=[1,T,aCt,0,()=>svt],ext=[1,T,cCt,0,()=>ovt],pp=[1,T,p0t,0,()=>wvt],txt=[9,T,QEt,0,()=>M0t,()=>dp],rxt=[9,T,NEt,0,()=>F0t,()=>B0t],nxt=[9,T,JEt,0,()=>U0t,()=>q0t],sxt=[9,T,syt,0,()=>$0t,()=>G0t],oxt=[9,T,myt,0,()=>j0t,()=>V0t],ixt=[9,T,DEt,0,()=>H0t,()=>z0t],axt=[9,T,jEt,0,()=>W0t,()=>K0t],cxt=[9,T,XEt,0,()=>J0t,()=>Y0t],uxt=[9,T,qEt,0,()=>Q0t,()=>X0t],lxt=[9,T,UEt,0,()=>Z0t,()=>eRt],dxt=[9,T,dyt,0,()=>tRt,()=>rRt],pxt=[9,T,TEt,0,()=>oRt,()=>dp],mxt=[9,T,pyt,0,()=>iRt,()=>aRt],gxt=[9,T,xyt,0,()=>cRt,()=>dp],fxt=[9,T,Iyt,0,()=>uRt,()=>lRt],hxt=[9,T,Uyt,0,()=>mRt,()=>gRt],Sxt=[9,T,Gyt,0,()=>fRt,()=>hRt],Ext=[9,T,Hyt,0,()=>SRt,()=>ERt],yxt=[9,T,Kyt,0,()=>yRt,()=>_Rt],_xt=[9,T,Zyt,0,()=>CRt,()=>RRt],Cxt=[9,T,e_t,0,()=>vRt,()=>xRt],Rxt=[9,T,v_t,0,()=>FRt,()=>BRt],vxt=[9,T,w_t,0,()=>URt,()=>qRt],xxt=[9,T,F_t,0,()=>$Rt,()=>GRt],Pxt=[9,T,N_t,0,()=>jRt,()=>VRt],bxt=[9,T,B_t,0,()=>HRt,()=>zRt],Ixt=[9,T,hCt,0,()=>cvt,()=>uvt],Axt=[9,T,yCt,0,()=>lvt,()=>dp],Txt=[9,T,CCt,0,()=>dvt,()=>pvt],wxt=[9,T,PCt,0,()=>mvt,()=>gvt],Dxt=[9,T,OCt,0,()=>fvt,()=>hvt],Oxt=[9,T,ACt,0,()=>Svt,()=>dp],kxt=[9,T,wCt,0,()=>Evt,()=>dp],Nxt=[9,T,LCt,0,()=>yvt,()=>_vt],Lxt=[9,T,KCt,0,()=>xvt,()=>dp],Mxt=[9,T,ZCt,0,()=>Pvt,()=>bvt],Fxt=[9,T,s0t,0,()=>Avt,()=>Tvt],Bxt=[9,T,m0t,0,()=>Dvt,()=>Ovt],Uxt=[9,T,_0t,0,()=>kvt,()=>Nvt],fD=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","DeleteAlarms",{}).n("CloudWatchClient","DeleteAlarmsCommand").sc(txt).build(){},hD=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","DeleteAnomalyDetector",{}).n("CloudWatchClient","DeleteAnomalyDetectorCommand").sc(rxt).build(){},SD=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","DeleteDashboards",{}).n("CloudWatchClient","DeleteDashboardsCommand").sc(nxt).build(){},ED=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","DeleteInsightRules",{}).n("CloudWatchClient","DeleteInsightRulesCommand").sc(sxt).build(){},yD=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","DeleteMetricStream",{}).n("CloudWatchClient","DeleteMetricStreamCommand").sc(oxt).build(){},_D=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","DescribeAlarmContributors",{}).n("CloudWatchClient","DescribeAlarmContributorsCommand").sc(ixt).build(){},M_=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","DescribeAlarmHistory",{}).n("CloudWatchClient","DescribeAlarmHistoryCommand").sc(axt).build(){},ap=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","DescribeAlarms",{}).n("CloudWatchClient","DescribeAlarmsCommand").sc(cxt).build(){},CD=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","DescribeAlarmsForMetric",{}).n("CloudWatchClient","DescribeAlarmsForMetricCommand").sc(uxt).build(){},F_=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","DescribeAnomalyDetectors",{}).n("CloudWatchClient","DescribeAnomalyDetectorsCommand").sc(lxt).build(){},B_=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","DescribeInsightRules",{}).n("CloudWatchClient","DescribeInsightRulesCommand").sc(dxt).build(){},RD=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","DisableAlarmActions",{}).n("CloudWatchClient","DisableAlarmActionsCommand").sc(pxt).build(){},vD=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","DisableInsightRules",{}).n("CloudWatchClient","DisableInsightRulesCommand").sc(mxt).build(){},xD=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","EnableAlarmActions",{}).n("CloudWatchClient","EnableAlarmActionsCommand").sc(gxt).build(){},PD=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","EnableInsightRules",{}).n("CloudWatchClient","EnableInsightRulesCommand").sc(fxt).build(){},bD=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","GetDashboard",{}).n("CloudWatchClient","GetDashboardCommand").sc(hxt).build(){},ID=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","GetInsightRuleReport",{}).n("CloudWatchClient","GetInsightRuleReportCommand").sc(Sxt).build(){},U_=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","GetMetricData",{}).n("CloudWatchClient","GetMetricDataCommand").sc(Ext).build(){},AD=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","GetMetricStatistics",{}).n("CloudWatchClient","GetMetricStatisticsCommand").sc(yxt).build(){},TD=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","GetMetricStream",{}).n("CloudWatchClient","GetMetricStreamCommand").sc(_xt).build(){},wD=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","GetMetricWidgetImage",{}).n("CloudWatchClient","GetMetricWidgetImageCommand").sc(Cxt).build(){},q_=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","ListDashboards",{}).n("CloudWatchClient","ListDashboardsCommand").sc(Rxt).build(){},$_=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","ListManagedInsightRules",{}).n("CloudWatchClient","ListManagedInsightRulesCommand").sc(vxt).build(){},G_=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","ListMetrics",{}).n("CloudWatchClient","ListMetricsCommand").sc(xxt).build(){},j_=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","ListMetricStreams",{}).n("CloudWatchClient","ListMetricStreamsCommand").sc(Pxt).build(){},DD=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","ListTagsForResource",{}).n("CloudWatchClient","ListTagsForResourceCommand").sc(bxt).build(){},OD=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","PutAnomalyDetector",{}).n("CloudWatchClient","PutAnomalyDetectorCommand").sc(Ixt).build(){},kD=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","PutCompositeAlarm",{}).n("CloudWatchClient","PutCompositeAlarmCommand").sc(Axt).build(){},ND=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","PutDashboard",{}).n("CloudWatchClient","PutDashboardCommand").sc(Txt).build(){},LD=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","PutInsightRule",{}).n("CloudWatchClient","PutInsightRuleCommand").sc(wxt).build(){},MD=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","PutManagedInsightRules",{}).n("CloudWatchClient","PutManagedInsightRulesCommand").sc(Dxt).build(){},FD=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","PutMetricAlarm",{}).n("CloudWatchClient","PutMetricAlarmCommand").sc(Oxt).build(){},BD=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions()),ave.getCompressionPlugin(n,{encodings:["gzip"]})]}).s("GraniteServiceVersion20100801","PutMetricData",{}).n("CloudWatchClient","PutMetricDataCommand").sc(kxt).build(){},UD=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","PutMetricStream",{}).n("CloudWatchClient","PutMetricStreamCommand").sc(Nxt).build(){},qD=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","SetAlarmState",{}).n("CloudWatchClient","SetAlarmStateCommand").sc(Lxt).build(){},$D=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","StartMetricStreams",{}).n("CloudWatchClient","StartMetricStreamsCommand").sc(Mxt).build(){},GD=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","StopMetricStreams",{}).n("CloudWatchClient","StopMetricStreamsCommand").sc(Fxt).build(){},jD=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","TagResource",{}).n("CloudWatchClient","TagResourceCommand").sc(Bxt).build(){},VD=class extends De.Command.classBuilder().ep(Ke).m(function(e,r,n,s){return[Ve.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("GraniteServiceVersion20100801","UntagResource",{}).n("CloudWatchClient","UntagResourceCommand").sc(Uxt).build(){},qxt={DeleteAlarmsCommand:fD,DeleteAnomalyDetectorCommand:hD,DeleteDashboardsCommand:SD,DeleteInsightRulesCommand:ED,DeleteMetricStreamCommand:yD,DescribeAlarmContributorsCommand:_D,DescribeAlarmHistoryCommand:M_,DescribeAlarmsCommand:ap,DescribeAlarmsForMetricCommand:CD,DescribeAnomalyDetectorsCommand:F_,DescribeInsightRulesCommand:B_,DisableAlarmActionsCommand:RD,DisableInsightRulesCommand:vD,EnableAlarmActionsCommand:xD,EnableInsightRulesCommand:PD,GetDashboardCommand:bD,GetInsightRuleReportCommand:ID,GetMetricDataCommand:U_,GetMetricStatisticsCommand:AD,GetMetricStreamCommand:TD,GetMetricWidgetImageCommand:wD,ListDashboardsCommand:q_,ListManagedInsightRulesCommand:$_,ListMetricsCommand:G_,ListMetricStreamsCommand:j_,ListTagsForResourceCommand:DD,PutAnomalyDetectorCommand:OD,PutCompositeAlarmCommand:kD,PutDashboardCommand:ND,PutInsightRuleCommand:LD,PutManagedInsightRulesCommand:MD,PutMetricAlarmCommand:FD,PutMetricDataCommand:BD,PutMetricStreamCommand:UD,SetAlarmStateCommand:qD,StartMetricStreamsCommand:$D,StopMetricStreamsCommand:GD,TagResourceCommand:jD,UntagResourceCommand:VD},HD=class extends eo{};De.createAggregatedClient(qxt,HD);var $xt=Wo.createPaginator(eo,M_,"NextToken","NextToken","MaxRecords"),Gxt=Wo.createPaginator(eo,ap,"NextToken","NextToken","MaxRecords"),jxt=Wo.createPaginator(eo,F_,"NextToken","NextToken","MaxResults"),Vxt=Wo.createPaginator(eo,B_,"NextToken","NextToken","MaxResults"),Hxt=Wo.createPaginator(eo,U_,"NextToken","NextToken","MaxDatapoints"),zxt=Wo.createPaginator(eo,q_,"NextToken","NextToken",""),Wxt=Wo.createPaginator(eo,$_,"NextToken","NextToken","MaxResults"),Kxt=Wo.createPaginator(eo,j_,"NextToken","NextToken","MaxResults"),Qxt=Wo.createPaginator(eo,G_,"NextToken","NextToken",""),Hxe=async(t,e)=>{let r;try{let n=await t.send(new ap(e));r=n;try{if([].concat(...n.MetricAlarms).length>0==!0)return{state:Ua.WaiterState.SUCCESS,reason:r}}catch{}}catch(n){r=n}return{state:Ua.WaiterState.RETRY,reason:r}},Xxt=async(t,e)=>{let r={minDelay:5,maxDelay:120};return Ua.createWaiter({...r,...t},e,Hxe)},Jxt=async(t,e)=>{let r={minDelay:5,maxDelay:120},n=await Ua.createWaiter({...r,...t},e,Hxe);return Ua.checkExceptions(n)},zxe=async(t,e)=>{let r;try{let n=await t.send(new ap(e));r=n;try{if([].concat(...n.CompositeAlarms).length>0==!0)return{state:Ua.WaiterState.SUCCESS,reason:r}}catch{}}catch(n){r=n}return{state:Ua.WaiterState.RETRY,reason:r}},Yxt=async(t,e)=>{let r={minDelay:5,maxDelay:120};return Ua.createWaiter({...r,...t},e,zxe)},Zxt=async(t,e)=>{let r={minDelay:5,maxDelay:120},n=await Ua.createWaiter({...r,...t},e,zxe);return Ua.checkExceptions(n)},ePt={Alarm:"Alarm",ExtensionPeriod:"ExtensionPeriod",WaitPeriod:"WaitPeriod"},tPt={CompositeAlarm:"CompositeAlarm",MetricAlarm:"MetricAlarm"},rPt={Action:"Action",AlarmContributorAction:"AlarmContributorAction",AlarmContributorStateUpdate:"AlarmContributorStateUpdate",ConfigurationUpdate:"ConfigurationUpdate",StateUpdate:"StateUpdate"},nPt={Bits:"Bits",Bits_Second:"Bits/Second",Bytes:"Bytes",Bytes_Second:"Bytes/Second",Count:"Count",Count_Second:"Count/Second",Gigabits:"Gigabits",Gigabits_Second:"Gigabits/Second",Gigabytes:"Gigabytes",Gigabytes_Second:"Gigabytes/Second",Kilobits:"Kilobits",Kilobits_Second:"Kilobits/Second",Kilobytes:"Kilobytes",Kilobytes_Second:"Kilobytes/Second",Megabits:"Megabits",Megabits_Second:"Megabits/Second",Megabytes:"Megabytes",Megabytes_Second:"Megabytes/Second",Microseconds:"Microseconds",Milliseconds:"Milliseconds",None:"None",Percent:"Percent",Seconds:"Seconds",Terabits:"Terabits",Terabits_Second:"Terabits/Second",Terabytes:"Terabytes",Terabytes_Second:"Terabytes/Second"},sPt={PENDING_TRAINING:"PENDING_TRAINING",TRAINED:"TRAINED",TRAINED_INSUFFICIENT_DATA:"TRAINED_INSUFFICIENT_DATA"},oPt={METRIC_MATH:"METRIC_MATH",SINGLE_METRIC:"SINGLE_METRIC"},iPt={GreaterThanOrEqualToThreshold:"GreaterThanOrEqualToThreshold",GreaterThanThreshold:"GreaterThanThreshold",GreaterThanUpperThreshold:"GreaterThanUpperThreshold",LessThanLowerOrGreaterThanUpperThreshold:"LessThanLowerOrGreaterThanUpperThreshold",LessThanLowerThreshold:"LessThanLowerThreshold",LessThanOrEqualToThreshold:"LessThanOrEqualToThreshold",LessThanThreshold:"LessThanThreshold"},aPt={ALARM:"ALARM",INSUFFICIENT_DATA:"INSUFFICIENT_DATA",OK:"OK"},cPt={TIMESTAMP_ASCENDING:"TimestampAscending",TIMESTAMP_DESCENDING:"TimestampDescending"},uPt={PARTIAL_DATA:"PARTIAL_DATA"},lPt={Average:"Average",Maximum:"Maximum",Minimum:"Minimum",SampleCount:"SampleCount",Sum:"Sum"},dPt={COMPLETE:"Complete",FORBIDDEN:"Forbidden",INTERNAL_ERROR:"InternalError",PARTIAL_DATA:"PartialData"},pPt={JSON:"json",OPEN_TELEMETRY_0_7:"opentelemetry0.7",OPEN_TELEMETRY_1_0:"opentelemetry1.0"},mPt={PT3H:"PT3H"};Object.defineProperty(ee,"$Command",{enumerable:!0,get:function(){return De.Command}});Object.defineProperty(ee,"__Client",{enumerable:!0,get:function(){return De.Client}});ee.ActionsSuppressedBy=ePt;ee.AlarmType=tPt;ee.AnomalyDetectorStateValue=sPt;ee.AnomalyDetectorType=oPt;ee.CloudWatch=HD;ee.CloudWatchClient=eo;ee.CloudWatchServiceException=Mn;ee.ComparisonOperator=iPt;ee.ConcurrentModificationException=uve;ee.ConflictException=dve;ee.DashboardInvalidInputError=mve;ee.DashboardNotFoundError=fve;ee.DeleteAlarmsCommand=fD;ee.DeleteAnomalyDetectorCommand=hD;ee.DeleteDashboardsCommand=SD;ee.DeleteInsightRulesCommand=ED;ee.DeleteMetricStreamCommand=yD;ee.DescribeAlarmContributorsCommand=_D;ee.DescribeAlarmHistoryCommand=M_;ee.DescribeAlarmsCommand=ap;ee.DescribeAlarmsForMetricCommand=CD;ee.DescribeAnomalyDetectorsCommand=F_;ee.DescribeInsightRulesCommand=B_;ee.DisableAlarmActionsCommand=RD;ee.DisableInsightRulesCommand=vD;ee.EnableAlarmActionsCommand=xD;ee.EnableInsightRulesCommand=PD;ee.EvaluationState=uPt;ee.GetDashboardCommand=bD;ee.GetInsightRuleReportCommand=ID;ee.GetMetricDataCommand=U_;ee.GetMetricStatisticsCommand=AD;ee.GetMetricStreamCommand=TD;ee.GetMetricWidgetImageCommand=wD;ee.HistoryItemType=rPt;ee.InternalServiceFault=yve;ee.InvalidFormatFault=Lve;ee.InvalidNextToken=Tve;ee.InvalidParameterCombinationException=Cve;ee.InvalidParameterValueException=vve;ee.LimitExceededException=Dve;ee.LimitExceededFault=kve;ee.ListDashboardsCommand=q_;ee.ListManagedInsightRulesCommand=$_;ee.ListMetricStreamsCommand=j_;ee.ListMetricsCommand=G_;ee.ListTagsForResourceCommand=DD;ee.MetricStreamOutputFormat=pPt;ee.MissingRequiredParameterException=Pve;ee.PutAnomalyDetectorCommand=OD;ee.PutCompositeAlarmCommand=kD;ee.PutDashboardCommand=ND;ee.PutInsightRuleCommand=LD;ee.PutManagedInsightRulesCommand=MD;ee.PutMetricAlarmCommand=FD;ee.PutMetricDataCommand=BD;ee.PutMetricStreamCommand=UD;ee.RecentlyActive=mPt;ee.ResourceNotFound=Sve;ee.ResourceNotFoundException=Ive;ee.ScanBy=cPt;ee.SetAlarmStateCommand=qD;ee.StandardUnit=nPt;ee.StartMetricStreamsCommand=$D;ee.StateValue=aPt;ee.Statistic=lPt;ee.StatusCode=dPt;ee.StopMetricStreamsCommand=GD;ee.TagResourceCommand=jD;ee.UntagResourceCommand=VD;ee.paginateDescribeAlarmHistory=$xt;ee.paginateDescribeAlarms=Gxt;ee.paginateDescribeAnomalyDetectors=jxt;ee.paginateDescribeInsightRules=Vxt;ee.paginateGetMetricData=Hxt;ee.paginateListDashboards=zxt;ee.paginateListManagedInsightRules=Wxt;ee.paginateListMetricStreams=Kxt;ee.paginateListMetrics=Qxt;ee.waitForAlarmExists=Xxt;ee.waitForCompositeAlarmExists=Yxt;ee.waitUntilAlarmExists=Jxt;ee.waitUntilCompositeAlarmExists=Zxt});var Jxe=b((V8r,Kz)=>{"use strict";Kz.exports=Xxe;Kz.exports.preferredCharsets=Xxe;var hPt=/^\s*([^\s;]+)\s*(?:;(.*))?$/;function SPt(t){for(var e=t.split(","),r=0,n=0;r0}});var tPe=b((H8r,Qz)=>{"use strict";Qz.exports=ePe;Qz.exports.preferredEncodings=ePe;var RPt=/^\s*([^\s;]+)\s*(?:;(.*))?$/;function vPt(t){for(var e=t.split(","),r=!1,n=1,s=0,o=0;s0}});var iPe=b((z8r,Xz)=>{"use strict";Xz.exports=oPe;Xz.exports.preferredLanguages=oPe;var APt=/^\s*([^\s\-;]+)(?:-([^\s;]+))?\s*(?:;(.*))?$/;function TPt(t){for(var e=t.split(","),r=0,n=0;r0}});var pPe=b((W8r,Jz)=>{"use strict";Jz.exports=lPe;Jz.exports.preferredMediaTypes=lPe;var kPt=/^\s*([^\s\/;]+)\/([^;\s]+)\s*(?:;(.*))?$/;function NPt(t){for(var e=UPt(t),r=0,n=0;r0)if(o.every(function(i){return e.params[i]=="*"||(e.params[i]||"").toLowerCase()==(n.params[i]||"").toLowerCase()}))s|=1;else return null;return{i:r,o:e.i,q:e.q,s}}function lPe(t,e){var r=NPt(t===void 0?"*/*":t||"");if(!e)return r.filter(cPe).sort(aPe).map(FPt);var n=e.map(function(o,i){return LPt(o,r,i)});return n.filter(cPe).sort(aPe).map(function(o){return e[n.indexOf(o)]})}function aPe(t,e){return e.q-t.q||e.s-t.s||t.o-e.o||t.i-e.i||0}function FPt(t){return t.type+"/"+t.subtype}function cPe(t){return t.q>0}function dPe(t){for(var e=0,r=0;(r=t.indexOf('"',r))!==-1;)e++,r++;return e}function BPt(t){var e=t.indexOf("="),r,n;return e===-1?r=t:(r=t.slice(0,e),n=t.slice(e+1)),[r,n]}function UPt(t){for(var e=t.split(","),r=1,n=0;r{"use strict";var $Pt=Jxe(),GPt=tPe(),jPt=iPe(),VPt=pPe();Yz.exports=Ot;Yz.exports.Negotiator=Ot;function Ot(t){if(!(this instanceof Ot))return new Ot(t);this.request=t}Ot.prototype.charset=function(e){var r=this.charsets(e);return r&&r[0]};Ot.prototype.charsets=function(e){return $Pt(this.request.headers["accept-charset"],e)};Ot.prototype.encoding=function(e,r){var n=this.encodings(e,r);return n&&n[0]};Ot.prototype.encodings=function(e,r){var n=r||{};return GPt(this.request.headers["accept-encoding"],e,n.preferred)};Ot.prototype.language=function(e){var r=this.languages(e);return r&&r[0]};Ot.prototype.languages=function(e){return jPt(this.request.headers["accept-language"],e)};Ot.prototype.mediaType=function(e){var r=this.mediaTypes(e);return r&&r[0]};Ot.prototype.mediaTypes=function(e){return VPt(this.request.headers.accept,e)};Ot.prototype.preferredCharset=Ot.prototype.charset;Ot.prototype.preferredCharsets=Ot.prototype.charsets;Ot.prototype.preferredEncoding=Ot.prototype.encoding;Ot.prototype.preferredEncodings=Ot.prototype.encodings;Ot.prototype.preferredLanguage=Ot.prototype.language;Ot.prototype.preferredLanguages=Ot.prototype.languages;Ot.prototype.preferredMediaType=Ot.prototype.mediaType;Ot.prototype.preferredMediaTypes=Ot.prototype.mediaTypes});var fPe=b((Q8r,gPe)=>{"use strict";var HPt=require("mime-db"),zPt=/^text\/|\+(?:json|text|xml)$/i,WPt=/^\s*([^;\s]*)(?:;|\s|$)/;gPe.exports=KPt;function KPt(t){if(!t||typeof t!="string")return!1;var e=WPt.exec(t),r=e&&e[1].toLowerCase(),n=HPt[r];return n&&n.compressible!==void 0?n.compressible:zPt.test(r)||void 0}});var lW=b(yO=>{"use strict";var{format:TPe}=require("util");yO.warn={deprecated(t){return()=>{throw new Error(TPe("{ %s } was removed in winston@3.0.0.",t))}},useFormat(t){return()=>{throw new Error([TPe("{ %s } was removed in winston@3.0.0.",t),"Use a custom winston.format = winston.format(function) instead."].join(` -`))}},forFunctions(t,e,r){r.forEach(n=>{t[n]=yO.warn[e](n)})},forProperties(t,e,r){r.forEach(n=>{let s=yO.warn[e](n);Object.defineProperty(t,n,{get:s,set:s})})}}});var wPe=b((y5r,dbt)=>{dbt.exports={name:"winston",description:"A logger for just about everything.",version:"3.19.0",author:"Charlie Robbins ",maintainers:["David Hyde "],repository:{type:"git",url:"https://github.com/winstonjs/winston.git"},keywords:["winston","logger","logging","logs","sysadmin","bunyan","pino","loglevel","tools","json","stream"],dependencies:{"@dabh/diagnostics":"^2.0.8","@colors/colors":"^1.6.0",async:"^3.2.3","is-stream":"^2.0.0",logform:"^2.7.0","one-time":"^1.0.0","readable-stream":"^3.4.0","safe-stable-stringify":"^2.3.1","stack-trace":"0.0.x","triple-beam":"^1.3.0","winston-transport":"^4.9.0"},devDependencies:{"@babel/cli":"^7.23.9","@babel/core":"^7.24.0","@babel/preset-env":"^7.24.0","@dabh/eslint-config-populist":"^4.4.0","@types/node":"^20.11.24","abstract-winston-transport":"^0.5.1",assume:"^2.2.0","cross-spawn-async":"^2.2.5",eslint:"^8.57.0",hock:"^1.4.1",jest:"^29.7.0",rimraf:"5.0.10",split2:"^4.1.0","std-mocks":"^2.0.0",through2:"^4.0.2","winston-compat":"^0.1.5"},main:"./lib/winston.js",browser:"./dist/winston",types:"./index.d.ts",scripts:{lint:"eslint lib/*.js lib/winston/*.js lib/winston/**/*.js --resolve-plugins-relative-to ./node_modules/@dabh/eslint-config-populist",test:"jest","test:unit":"jest -c test/jest.config.unit.js","test:integration":"jest -c test/jest.config.integration.js","test:typescript":"npx --package typescript tsc --project test",build:"babel lib -d dist",prebuild:"rimraf dist",prepublishOnly:"npm run build"},engines:{node:">= 12.0.0"},license:"MIT"}});var kPe=b((C5r,OPe)=>{"use strict";var pbt=require("os"),{LEVEL:DPe,MESSAGE:_f}=require("triple-beam"),mbt=require("winston-transport");OPe.exports=class extends mbt{constructor(e={}){super(e),this.name=e.name||"console",this.stderrLevels=this._stringArrayToSet(e.stderrLevels),this.consoleWarnLevels=this._stringArrayToSet(e.consoleWarnLevels),this.eol=typeof e.eol=="string"?e.eol:pbt.EOL,this.forceConsole=e.forceConsole||!1,this._consoleLog=console.log.bind(console),this._consoleWarn=console.warn.bind(console),this._consoleError=console.error.bind(console),this.setMaxListeners(30)}log(e,r){if(setImmediate(()=>this.emit("logged",e)),this.stderrLevels[e[DPe]]){console._stderr&&!this.forceConsole?console._stderr.write(`${e[_f]}${this.eol}`):this._consoleError(e[_f]),r&&r();return}else if(this.consoleWarnLevels[e[DPe]]){console._stderr&&!this.forceConsole?console._stderr.write(`${e[_f]}${this.eol}`):this._consoleWarn(e[_f]),r&&r();return}console._stdout&&!this.forceConsole?console._stdout.write(`${e[_f]}${this.eol}`):this._consoleLog(e[_f]),r&&r()}_stringArrayToSet(e,r){if(!e)return{};if(r=r||"Cannot make set from type other than Array of string elements",!Array.isArray(e))throw new Error(r);return e.reduce((n,s)=>{if(typeof s!="string")throw new Error(r);return n[s]=!0,n},{})}}});var LPe=b((R5r,NPe)=>{"use strict";var dW=require("fs"),{StringDecoder:gbt}=require("string_decoder"),{Stream:fbt}=require("readable-stream");function hbt(){}NPe.exports=(t,e)=>{let r=Buffer.alloc(65536),n=new gbt("utf8"),s=new fbt,o="",i=0,a=0;return t.start===-1&&delete t.start,s.readable=!0,s.destroy=()=>{s.destroyed=!0,s.emit("end"),s.emit("close")},dW.open(t.file,"a+","0644",(c,u)=>{if(c){e?e(c):s.emit("error",c),s.destroy();return}(function l(){if(s.destroyed){dW.close(u,hbt);return}return dW.read(u,r,0,r.length,i,(d,p)=>{if(d){e?e(d):s.emit("error",d),s.destroy();return}if(!p)return o&&((t.start==null||a>t.start)&&(e?e(null,o):s.emit("line",o)),a++,o=""),setTimeout(l,1e3);let g=n.write(r.slice(0,p));e||s.emit("data",g),g=(o+g).split(/\n+/);let y=g.length-1,R=0;for(;Rt.start)&&(e?e(null,g[R]):s.emit("line",g[R])),a++;return o=g[y],i+=p,l()})})()}),e?s.destroy:s}});var UPe=b((x5r,BPe)=>{"use strict";var Cs=require("fs"),Qr=require("path"),MPe=require("async/series"),Sbt=require("zlib"),{MESSAGE:Ebt}=require("triple-beam"),{Stream:ybt,PassThrough:FPe}=require("readable-stream"),_bt=require("winston-transport"),Gi=require("@dabh/diagnostics")("winston:file"),Cbt=require("os"),Rbt=LPe();BPe.exports=class extends _bt{constructor(e={}){super(e),this.name=e.name||"file";function r(n,...s){s.slice(1).forEach(o=>{if(e[o])throw new Error(`Cannot set ${o} and ${n} together`)})}if(this._stream=new FPe,this._stream.setMaxListeners(30),this._onError=this._onError.bind(this),e.filename||e.dirname)r("filename or dirname","stream"),this._basename=this.filename=e.filename?Qr.basename(e.filename):"winston.log",this.dirname=e.dirname||Qr.dirname(e.filename),this.options=e.options||{flags:"a"};else if(e.stream)console.warn("options.stream will be removed in winston@4. Use winston.transports.Stream"),r("stream","filename","maxsize"),this._dest=this._stream.pipe(this._setupStream(e.stream)),this.dirname=Qr.dirname(this._dest.path);else throw new Error("Cannot log to file without filename or stream.");this.maxsize=e.maxsize||null,this.rotationFormat=e.rotationFormat||!1,this.zippedArchive=e.zippedArchive||!1,this.maxFiles=e.maxFiles||null,this.eol=typeof e.eol=="string"?e.eol:Cbt.EOL,this.tailable=e.tailable||!1,this.lazy=e.lazy||!1,this._size=0,this._pendingSize=0,this._created=0,this._drain=!1,this._opening=!1,this._ending=!1,this._fileExist=!1,this.dirname&&this._createLogDirIfNotExist(this.dirname),this.lazy||this.open()}finishIfEnding(){this._ending&&(this._opening?this.once("open",()=>{this._stream.once("finish",()=>this.emit("finish")),setImmediate(()=>this._stream.end())}):(this._stream.once("finish",()=>this.emit("finish")),setImmediate(()=>this._stream.end())))}_final(e){if(this._opening){this.once("open",()=>this._final(e));return}if(this._stream.end(),!this._dest||this._dest.writableFinished)return e();this._dest.once("finish",e),this._dest.once("error",e)}log(e,r=()=>{}){if(this.silent)return r(),!0;if(this._drain){this._stream.once("drain",()=>{this._drain=!1,this.log(e,r)});return}if(this._rotate){this._stream.once("rotate",()=>{this._rotate=!1,this.log(e,r)});return}if(this.lazy){if(!this._fileExist){this._opening||this.open(),this.once("open",()=>{this._fileExist=!0,this.log(e,r)});return}if(this._needsNewFile(this._pendingSize)){this._dest.once("close",()=>{this._opening||this.open(),this.once("open",()=>{this.log(e,r)})});return}}let n=`${e[Ebt]}${this.eol}`,s=Buffer.byteLength(n);function o(){if(this._size+=s,this._pendingSize-=s,Gi("logged %s %s",this._size,n),this.emit("logged",e),!this._rotate&&!this._opening&&this._needsNewFile()){if(this.lazy){this._endStream(()=>{this.emit("fileclosed")});return}this._rotate=!0,this._endStream(()=>this._rotateFile())}}this._pendingSize+=s,this._opening&&!this.rotatedWhileOpening&&this._needsNewFile(this._size+this._pendingSize)&&(this.rotatedWhileOpening=!0);let i=this._stream.write(n,o.bind(this));return i?r():(this._drain=!0,this._stream.once("drain",()=>{this._drain=!1,r()})),Gi("written",i,this._drain),this.finishIfEnding(),i}query(e,r){typeof e=="function"&&(r=e,e={}),e=d(e);let n=Qr.join(this.dirname,this.filename),s="",o=[],i=0,a=Cs.createReadStream(n,{encoding:"utf8"});a.on("error",p=>{if(a.readable&&a.destroy(),!!r)return p.code!=="ENOENT"?r(p):r(null,o)}),a.on("data",p=>{p=(s+p).split(/\n+/);let g=p.length-1,y=0;for(;y=e.start)&&c(p[y]),i++;s=p[g]}),a.on("close",()=>{s&&c(s,!0),e.order==="desc"&&(o=o.reverse()),r&&r(null,o)});function c(p,g){try{let y=JSON.parse(p);l(y)&&u(y)}catch(y){g||a.emit("error",y)}}function u(p){if(e.rows&&o.length>=e.rows&&e.order!=="desc"){a.readable&&a.destroy();return}e.fields&&(p=e.fields.reduce((g,y)=>(g[y]=p[y],g),{})),e.order==="desc"&&o.length>=e.rows&&o.shift(),o.push(p)}function l(p){if(!p||typeof p!="object")return;let g=new Date(p.timestamp);if(!(e.from&&ge.until||e.level&&e.level!==p.level))return!0}function d(p){return p=p||{},p.rows=p.rows||p.limit||10,p.start=p.start||0,p.until=p.until||new Date,typeof p.until!="object"&&(p.until=new Date(p.until)),p.from=p.from||p.until-24*60*60*1e3,typeof p.from!="object"&&(p.from=new Date(p.from)),p.order=p.order||"desc",p}}stream(e={}){let r=Qr.join(this.dirname,this.filename),n=new ybt,s={file:r,start:e.start};return n.destroy=Rbt(s,(o,i)=>{if(o)return n.emit("error",o);try{n.emit("data",i),i=JSON.parse(i),n.emit("log",i)}catch(a){n.emit("error",a)}}),n}open(){this.filename&&(this._opening||(this._opening=!0,this.stat((e,r)=>{if(e)return this.emit("error",e);Gi("stat done: %s { size: %s }",this.filename,r),this._size=r,this._dest=this._createStream(this._stream),this._opening=!1,this.once("open",()=>{this._stream.emit("rotate")||(this._rotate=!1)})})))}stat(e){let r=this._getFile(),n=Qr.join(this.dirname,r);Cs.stat(n,(s,o)=>{if(s&&s.code==="ENOENT")return Gi("ENOENT\xA0ok",n),this.filename=r,e(null,0);if(s)return Gi(`err ${s.code} ${n}`),e(s);if(!o||this._needsNewFile(o.size))return this._incFile(()=>this.stat(e));this.filename=r,e(null,o.size)})}close(e){this._stream&&this._stream.end(()=>{e&&e(),this.emit("flush"),this.emit("closed")})}_needsNewFile(e){return e=e||this._size,this.maxsize&&e>=this.maxsize}_onError(e){this.emit("error",e)}_setupStream(e){return e.on("error",this._onError),e}_cleanupStream(e){return e.removeListener("error",this._onError),e.destroy(),e}_rotateFile(){this._incFile(()=>this.open())}_endStream(e=()=>{}){this._dest?(this._stream.unpipe(this._dest),this._dest.end(()=>{this._cleanupStream(this._dest),e()})):e()}_createStream(e){let r=Qr.join(this.dirname,this.filename);Gi("create stream start",r,this.options);let n=Cs.createWriteStream(r,this.options).on("error",s=>Gi(s)).on("close",()=>Gi("close",n.path,n.bytesWritten)).on("open",()=>{Gi("file open ok",r),this.emit("open",r),e.pipe(n),this.rotatedWhileOpening&&(this._stream=new FPe,this._stream.setMaxListeners(30),this._rotateFile(),this.rotatedWhileOpening=!1,this._cleanupStream(n),e.end())});return Gi("create stream ok",r),n}_incFile(e){Gi("_incFile",this.filename);let r=Qr.extname(this._basename),n=Qr.basename(this._basename,r),s=[];this.zippedArchive&&s.push(function(o){let i=this._created>0&&!this.tailable?this._created:"";this._compressFile(Qr.join(this.dirname,`${n}${i}${r}`),Qr.join(this.dirname,`${n}${i}${r}.gz`),o)}.bind(this)),s.push(function(o){this.tailable?this._checkMaxFilesTailable(r,n,o):(this._created+=1,this._checkMaxFilesIncrementing(r,n,o))}.bind(this)),MPe(s,e)}_getFile(){let e=Qr.extname(this._basename),r=Qr.basename(this._basename,e),n=this.rotationFormat?this.rotationFormat():this._created;return!this.tailable&&this._created?`${r}${n}${e}`:`${r}${e}`}_checkMaxFilesIncrementing(e,r,n){if(!this.maxFiles||this._created1;i--)s.push(function(a,c){let u=`${r}${a-1}${e}${o}`,l=Qr.join(this.dirname,u);Cs.exists(l,d=>{if(!d)return c(null);u=`${r}${a}${e}${o}`,Cs.rename(l,Qr.join(this.dirname,u),c)})}.bind(this,i));MPe(s,()=>{Cs.rename(Qr.join(this.dirname,`${r}${e}${o}`),Qr.join(this.dirname,`${r}1${e}${o}`),n)})}_compressFile(e,r,n){Cs.access(e,Cs.F_OK,s=>{if(s)return n();var o=Sbt.createGzip(),i=Cs.createReadStream(e),a=Cs.createWriteStream(r);a.on("finish",()=>{Cs.unlink(e,n)}),i.pipe(o).pipe(a)})}_createLogDirIfNotExist(e){Cs.existsSync(e)||Cs.mkdirSync(e,{recursive:!0})}}});var $Pe=b((b5r,qPe)=>{"use strict";var vbt=require("http"),xbt=require("https"),{Stream:Pbt}=require("readable-stream"),bbt=require("winston-transport"),{configure:Ibt}=require("safe-stable-stringify");qPe.exports=class extends bbt{constructor(e={}){super(e),this.options=e,this.name=e.name||"http",this.ssl=!!e.ssl,this.host=e.host||"localhost",this.port=e.port,this.auth=e.auth,this.path=e.path||"",this.maximumDepth=e.maximumDepth,this.agent=e.agent,this.headers=e.headers||{},this.headers["content-type"]="application/json",this.batch=e.batch||!1,this.batchInterval=e.batchInterval||5e3,this.batchCount=e.batchCount||10,this.batchOptions=[],this.batchTimeoutID=-1,this.batchCallback={},this.port||(this.port=this.ssl?443:80)}log(e,r){this._request(e,null,null,(n,s)=>{s&&s.statusCode!==200&&(n=new Error(`Invalid HTTP Status Code: ${s.statusCode}`)),n?this.emit("warn",n):this.emit("logged",e)}),r&&setImmediate(r)}query(e,r){typeof e=="function"&&(r=e,e={}),e={method:"query",params:this.normalizeQuery(e)};let n=e.params.auth||null;delete e.params.auth;let s=e.params.path||null;delete e.params.path,this._request(e,n,s,(o,i,a)=>{if(i&&i.statusCode!==200&&(o=new Error(`Invalid HTTP Status Code: ${i.statusCode}`)),o)return r(o);if(typeof a=="string")try{a=JSON.parse(a)}catch(c){return r(c)}r(null,a)})}stream(e={}){let r=new Pbt;e={method:"stream",params:e};let n=e.params.path||null;delete e.params.path;let s=e.params.auth||null;delete e.params.auth;let o="",i=this._request(e,s,n);return r.destroy=()=>i.destroy(),i.on("data",a=>{a=(o+a).split(/\n+/);let c=a.length-1,u=0;for(;ur.emit("error",a)),r}_request(e,r,n,s){e=e||{},r=r||this.auth,n=n||this.path||"",this.batch?this._doBatch(e,s,r,n):this._doRequest(e,s,r,n)}_doBatch(e,r,n,s){if(this.batchOptions.push(e),this.batchOptions.length===1){let o=this;this.batchCallback=r,this.batchTimeoutID=setTimeout(function(){o.batchTimeoutID=-1,o._doBatchRequest(o.batchCallback,n,s)},this.batchInterval)}this.batchOptions.length===this.batchCount&&this._doBatchRequest(this.batchCallback,n,s)}_doBatchRequest(e,r,n){this.batchTimeoutID>0&&(clearTimeout(this.batchTimeoutID),this.batchTimeoutID=-1);let s=this.batchOptions.slice();this.batchOptions=[],this._doRequest(s,e,r,n)}_doRequest(e,r,n,s){let o=Object.assign({},this.headers);n&&n.bearer&&(o.Authorization=`Bearer ${n.bearer}`);let i=(this.ssl?xbt:vbt).request({...this.options,method:"POST",host:this.host,port:this.port,path:`/${s.replace(/^\//,"")}`,headers:o,auth:n&&n.username&&n.password?`${n.username}:${n.password}`:"",agent:this.agent});i.on("error",r),i.on("response",c=>c.on("end",()=>r(null,c)).resume());let a=Ibt({...this.maximumDepth&&{maximumDepth:this.maximumDepth}});i.end(Buffer.from(a(e,this.options.replacer),"utf8"))}}});var jPe=b((A5r,GPe)=>{"use strict";var Abt=require("is-stream"),{MESSAGE:Tbt}=require("triple-beam"),wbt=require("os"),Dbt=require("winston-transport");GPe.exports=class extends Dbt{constructor(e={}){if(super(e),!e.stream||!Abt(e.stream))throw new Error("options.stream is required.");this._stream=e.stream,this._stream.setMaxListeners(1/0),this.isObjectMode=e.stream._writableState.objectMode,this.eol=typeof e.eol=="string"?e.eol:wbt.EOL}log(e,r){if(setImmediate(()=>this.emit("logged",e)),this.isObjectMode){this._stream.write(e),r&&r();return}this._stream.write(`${e[Tbt]}${this.eol}`),r&&r()}}});var VPe=b(Z_=>{"use strict";Object.defineProperty(Z_,"Console",{configurable:!0,enumerable:!0,get(){return kPe()}});Object.defineProperty(Z_,"File",{configurable:!0,enumerable:!0,get(){return UPe()}});Object.defineProperty(Z_,"Http",{configurable:!0,enumerable:!0,get(){return $Pe()}});Object.defineProperty(Z_,"Stream",{configurable:!0,enumerable:!0,get(){return jPe()}})});var CO=b(eC=>{"use strict";var _O=require("logform"),{configs:pW}=require("triple-beam");eC.cli=_O.levels(pW.cli);eC.npm=_O.levels(pW.npm);eC.syslog=_O.levels(pW.syslog);eC.addColors=_O.levels});var zPe=b((O5r,HPe)=>{"use strict";var{Writable:Obt}=require("readable-stream");HPe.exports=class extends Obt{constructor(e){if(super({objectMode:!0}),!e)throw new Error("ExceptionStream requires a TransportStream instance.");this.handleExceptions=!0,this.transport=e}_write(e,r,n){return e.exception?this.transport.log(e,n):(n(),!0)}}});var gW=b((N5r,QPe)=>{"use strict";var WPe=require("os"),kbt=require("async/forEach"),mW=require("@dabh/diagnostics")("winston:exception"),Nbt=require("one-time"),KPe=require("stack-trace"),Lbt=zPe();QPe.exports=class{constructor(e){if(!e)throw new Error("Logger is required to handle exceptions");this.logger=e,this.handlers=new Map}handle(...e){e.forEach(r=>{if(Array.isArray(r))return r.forEach(n=>this._addHandler(n));this._addHandler(r)}),this.catcher||(this.catcher=this._uncaughtException.bind(this),process.on("uncaughtException",this.catcher))}unhandle(){this.catcher&&(process.removeListener("uncaughtException",this.catcher),this.catcher=!1,Array.from(this.handlers.values()).forEach(e=>this.logger.unpipe(e)))}getAllInfo(e){let r=null;return e&&(r=typeof e=="string"?e:e.message),{error:e,level:"error",message:[`uncaughtException: ${r||"(no error message)"}`,e&&e.stack||" No stack trace"].join(` -`),stack:e&&e.stack,exception:!0,date:new Date().toString(),process:this.getProcessInfo(),os:this.getOsInfo(),trace:this.getTrace(e)}}getProcessInfo(){return{pid:process.pid,uid:process.getuid?process.getuid():null,gid:process.getgid?process.getgid():null,cwd:process.cwd(),execPath:process.execPath,version:process.version,argv:process.argv,memoryUsage:process.memoryUsage()}}getOsInfo(){return{loadavg:WPe.loadavg(),uptime:WPe.uptime()}}getTrace(e){return(e?KPe.parse(e):KPe.get()).map(n=>({column:n.getColumnNumber(),file:n.getFileName(),function:n.getFunctionName(),line:n.getLineNumber(),method:n.getMethodName(),native:n.isNative()}))}_addHandler(e){if(!this.handlers.has(e)){e.handleExceptions=!0;let r=new Lbt(e);this.handlers.set(e,r),this.logger.pipe(r)}}_uncaughtException(e){let r=this.getAllInfo(e),n=this._getExceptionHandlers(),s=typeof this.logger.exitOnError=="function"?this.logger.exitOnError(e):this.logger.exitOnError,o;!n.length&&s&&(console.warn("winston: exitOnError cannot be true with no exception handlers."),console.warn("winston: not exiting process."),s=!1);function i(){mW("doExit",s),mW("process._exiting",process._exiting),s&&!process._exiting&&(o&&clearTimeout(o),process.exit(1))}if(!n||n.length===0)return process.nextTick(i);kbt(n,(a,c)=>{let u=Nbt(c),l=a.transport||a;function d(p){return()=>{mW(p),u()}}l._ending=!0,l.once("finish",d("finished")),l.once("error",d("error"))},()=>s&&i()),this.logger.log(r),s&&(o=setTimeout(i,3e3))}_getExceptionHandlers(){return this.logger.transports.filter(e=>(e.transport||e).handleExceptions)}}});var JPe=b((M5r,XPe)=>{"use strict";var{Writable:Mbt}=require("readable-stream");XPe.exports=class extends Mbt{constructor(e){if(super({objectMode:!0}),!e)throw new Error("RejectionStream requires a TransportStream instance.");this.handleRejections=!0,this.transport=e}_write(e,r,n){return e.rejection?this.transport.log(e,n):(n(),!0)}}});var hW=b((B5r,ebe)=>{"use strict";var YPe=require("os"),Fbt=require("async/forEach"),fW=require("@dabh/diagnostics")("winston:rejection"),Bbt=require("one-time"),ZPe=require("stack-trace"),Ubt=JPe();ebe.exports=class{constructor(e){if(!e)throw new Error("Logger is required to handle rejections");this.logger=e,this.handlers=new Map}handle(...e){e.forEach(r=>{if(Array.isArray(r))return r.forEach(n=>this._addHandler(n));this._addHandler(r)}),this.catcher||(this.catcher=this._unhandledRejection.bind(this),process.on("unhandledRejection",this.catcher))}unhandle(){this.catcher&&(process.removeListener("unhandledRejection",this.catcher),this.catcher=!1,Array.from(this.handlers.values()).forEach(e=>this.logger.unpipe(e)))}getAllInfo(e){let r=null;return e&&(r=typeof e=="string"?e:e.message),{error:e,level:"error",message:[`unhandledRejection: ${r||"(no error message)"}`,e&&e.stack||" No stack trace"].join(` -`),stack:e&&e.stack,rejection:!0,date:new Date().toString(),process:this.getProcessInfo(),os:this.getOsInfo(),trace:this.getTrace(e)}}getProcessInfo(){return{pid:process.pid,uid:process.getuid?process.getuid():null,gid:process.getgid?process.getgid():null,cwd:process.cwd(),execPath:process.execPath,version:process.version,argv:process.argv,memoryUsage:process.memoryUsage()}}getOsInfo(){return{loadavg:YPe.loadavg(),uptime:YPe.uptime()}}getTrace(e){return(e?ZPe.parse(e):ZPe.get()).map(n=>({column:n.getColumnNumber(),file:n.getFileName(),function:n.getFunctionName(),line:n.getLineNumber(),method:n.getMethodName(),native:n.isNative()}))}_addHandler(e){if(!this.handlers.has(e)){e.handleRejections=!0;let r=new Ubt(e);this.handlers.set(e,r),this.logger.pipe(r)}}_unhandledRejection(e){let r=this.getAllInfo(e),n=this._getRejectionHandlers(),s=typeof this.logger.exitOnError=="function"?this.logger.exitOnError(e):this.logger.exitOnError,o;!n.length&&s&&(console.warn("winston: exitOnError cannot be true with no rejection handlers."),console.warn("winston: not exiting process."),s=!1);function i(){fW("doExit",s),fW("process._exiting",process._exiting),s&&!process._exiting&&(o&&clearTimeout(o),process.exit(1))}if(!n||n.length===0)return process.nextTick(i);Fbt(n,(a,c)=>{let u=Bbt(c),l=a.transport||a;function d(p){return()=>{fW(p),u()}}l._ending=!0,l.once("finish",d("finished")),l.once("error",d("error"))},()=>s&&i()),this.logger.log(r),s&&(o=setTimeout(i,3e3))}_getRejectionHandlers(){return this.logger.transports.filter(e=>(e.transport||e).handleRejections)}}});var rbe=b((U5r,tbe)=>{"use strict";var SW=class{constructor(e){let r=RO();if(typeof e!="object"||Array.isArray(e)||!(e instanceof r))throw new Error("Logger is required for profiling");this.logger=e,this.start=Date.now()}done(...e){typeof e[e.length-1]=="function"&&(console.warn("Callback function no longer supported as of winston@3.0.0"),e.pop());let r=typeof e[e.length-1]=="object"?e.pop():{};return r.level=r.level||"info",r.durationMs=Date.now()-this.start,this.logger.write(r)}};tbe.exports=SW});var RO=b((q5r,ibe)=>{"use strict";var{Stream:qbt,Transform:$bt}=require("readable-stream"),nbe=require("async/forEach"),{LEVEL:qa,SPLAT:sbe}=require("triple-beam"),obe=require("is-stream"),Gbt=gW(),jbt=hW(),Vbt=require("winston-transport/legacy"),Hbt=rbe(),{warn:zbt}=lW(),Wbt=CO(),Kbt=/%[scdjifoO%]/g,vO=class extends $bt{constructor(e){super({objectMode:!0}),this.configure(e)}child(e){let r=this;return Object.create(r,{write:{value:function(n){let s=Object.assign({},e,n);n instanceof Error&&(s.stack=n.stack,s.message=n.message,s.cause=n.cause),r.write(s)}}})}configure({silent:e,format:r,defaultMeta:n,levels:s,level:o="info",exitOnError:i=!0,transports:a,colors:c,emitErrs:u,formatters:l,padLevels:d,rewriters:p,stripColors:g,exceptionHandlers:y,rejectionHandlers:R}={}){if(this.transports.length&&this.clear(),this.silent=e,this.format=r||this.format||require("logform/json")(),this.defaultMeta=n||null,this.levels=s||this.levels||Wbt.npm.levels,this.level=o,this.exceptions&&this.exceptions.unhandle(),this.rejections&&this.rejections.unhandle(),this.exceptions=new Gbt(this),this.rejections=new jbt(this),this.profilers={},this.exitOnError=i,a&&(a=Array.isArray(a)?a:[a],a.forEach(D=>this.add(D))),c||u||l||d||p||g)throw new Error(["{ colors, emitErrs, formatters, padLevels, rewriters, stripColors } were removed in winston@3.0.0.","Use a custom winston.format(function) instead.","See: https://github.com/winstonjs/winston/tree/master/UPGRADE-3.0.md"].join(` -`));y&&this.exceptions.handle(y),R&&this.rejections.handle(R)}getHighestLogLevel(){let e=tC(this.levels,this.level);return!this.transports||this.transports.length===0?e:this.transports.reduce((r,n)=>{let s=tC(this.levels,n.level);return s!==null&&s>r?s:r},e)}isLevelEnabled(e){let r=tC(this.levels,e);if(r===null)return!1;let n=tC(this.levels,this.level);return n===null?!1:!this.transports||this.transports.length===0?n>=r:this.transports.findIndex(o=>{let i=tC(this.levels,o.level);return i===null&&(i=n),i>=r})!==-1}log(e,r,...n){if(arguments.length===1)return e[qa]=e.level,this._addDefaultMeta(e),this.write(e),this;if(arguments.length===2)return r&&typeof r=="object"?(r[qa]=r.level=e,this._addDefaultMeta(r),this.write(r),this):(r={[qa]:e,level:e,message:r},this._addDefaultMeta(r),this.write(r),this);let[s]=n;if(typeof s=="object"&&s!==null&&!(r&&r.match&&r.match(Kbt))){let i=Object.assign({},this.defaultMeta,s,{[qa]:e,[sbe]:n,level:e,message:r});return s.message&&(i.message=`${i.message} ${s.message}`),s.stack&&(i.stack=s.stack),s.cause&&(i.cause=s.cause),this.write(i),this}return this.write(Object.assign({},this.defaultMeta,{[qa]:e,[sbe]:n,level:e,message:r})),this}_transform(e,r,n){if(this.silent)return n();e[qa]||(e[qa]=e.level),!this.levels[e[qa]]&&this.levels[e[qa]]!==0&&console.error("[winston] Unknown logger level: %s",e[qa]),this._readableState.pipes||console.error("[winston] Attempt to write logs with no transports, which can increase memory usage: %j",e);try{this.push(this.format.transform(e,this.format.options))}finally{this._writableState.sync=!1,n()}}_final(e){let r=this.transports.slice();nbe(r,(n,s)=>{if(!n||n.finished)return setImmediate(s);n.once("finish",s),n.end()},e)}add(e){let r=!obe(e)||e.log.length>2?new Vbt({transport:e}):e;if(!r._writableState||!r._writableState.objectMode)throw new Error("Transports must WritableStreams in objectMode. Set { objectMode: true }.");return this._onEvent("error",r),this._onEvent("warn",r),this.pipe(r),e.handleExceptions&&this.exceptions.handle(),e.handleRejections&&this.rejections.handle(),this}remove(e){if(!e)return this;let r=e;return(!obe(e)||e.log.length>2)&&(r=this.transports.filter(n=>n.transport===e)[0]),r&&this.unpipe(r),this}clear(){return this.unpipe(),this}close(){return this.exceptions.unhandle(),this.rejections.unhandle(),this.clear(),this.emit("close"),this}setLevels(){zbt.deprecated("setLevels")}query(e,r){typeof e=="function"&&(r=e,e={}),e=e||{};let n={},s=Object.assign({},e.query||{});function o(a,c){e.query&&typeof a.formatQuery=="function"&&(e.query=a.formatQuery(s)),a.query(e,(u,l)=>{if(u)return c(u);typeof a.formatResults=="function"&&(l=a.formatResults(l,e.format)),c(null,l)})}function i(a,c){o(a,(u,l)=>{c&&(l=u||l,l&&(n[a.name]=l),c()),c=null})}nbe(this.transports.filter(a=>!!a.query),i,()=>r(null,n))}stream(e={}){let r=new qbt,n=[];return r._streams=n,r.destroy=()=>{let s=n.length;for(;s--;)n[s].destroy()},this.transports.filter(s=>!!s.stream).forEach(s=>{let o=s.stream(e);o&&(n.push(o),o.on("log",i=>{i.transport=i.transport||[],i.transport.push(s.name),r.emit("log",i)}),o.on("error",i=>{i.transport=i.transport||[],i.transport.push(s.name),r.emit("error",i)}))}),r}startTimer(){return new Hbt(this)}profile(e,...r){let n=Date.now();if(this.profilers[e]){let s=this.profilers[e];delete this.profilers[e],typeof r[r.length-2]=="function"&&(console.warn("Callback function no longer supported as of winston@3.0.0"),r.pop());let o=typeof r[r.length-1]=="object"?r.pop():{};return o.level=o.level||"info",o.durationMs=n-s,o.message=o.message||e,this.write(o)}return this.profilers[e]=n,this}handleExceptions(...e){console.warn("Deprecated: .handleExceptions() will be removed in winston@4. Use .exceptions.handle()"),this.exceptions.handle(...e)}unhandleExceptions(...e){console.warn("Deprecated: .unhandleExceptions() will be removed in winston@4. Use .exceptions.unhandle()"),this.exceptions.unhandle(...e)}cli(){throw new Error(["Logger.cli() was removed in winston@3.0.0","Use a custom winston.formats.cli() instead.","See: https://github.com/winstonjs/winston/tree/master/UPGRADE-3.0.md"].join(` -`))}_onEvent(e,r){function n(s){e==="error"&&!this.transports.includes(r)&&this.add(r),this.emit(e,s,r)}r["__winston"+e]||(r["__winston"+e]=n.bind(this),r.on(e,r["__winston"+e]))}_addDefaultMeta(e){this.defaultMeta&&Object.assign(e,this.defaultMeta)}};function tC(t,e){let r=t[e];return!r&&r!==0?null:r}Object.defineProperty(vO.prototype,"transports",{configurable:!1,enumerable:!0,get(){let{pipes:t}=this._readableState;return Array.isArray(t)?t:[t].filter(Boolean)}});ibe.exports=vO});var EW=b(($5r,abe)=>{"use strict";var{LEVEL:Qbt}=require("triple-beam"),Xbt=CO(),Jbt=RO(),Ybt=require("@dabh/diagnostics")("winston:create-logger");function Zbt(t){return"is"+t.charAt(0).toUpperCase()+t.slice(1)+"Enabled"}abe.exports=function(t={}){t.levels=t.levels||Xbt.npm.levels;class e extends Jbt{constructor(s){super(s)}}let r=new e(t);return Object.keys(t.levels).forEach(function(n){if(Ybt('Define prototype method for "%s"',n),n==="log"){console.warn('Level "log" not defined: conflicts with the method "log". Use a different level name.');return}e.prototype[n]=function(...s){let o=this||r;if(s.length===1){let[i]=s,a=i&&i.message&&i||{message:i};return a.level=a[Qbt]=n,o._addDefaultMeta(a),o.write(a),this||r}return s.length===0?(o.log(n,""),o):o.log(n,...s)},e.prototype[Zbt(n)]=function(){return(this||r).isLevelEnabled(n)}}),r}});var ube=b((j5r,cbe)=>{"use strict";var eIt=EW();cbe.exports=class{constructor(e={}){this.loggers=new Map,this.options=e}add(e,r){if(!this.loggers.has(e)){r=Object.assign({},r||this.options);let n=r.transports||this.options.transports;n?r.transports=Array.isArray(n)?n.slice():[n]:r.transports=[];let s=eIt(r);s.on("close",()=>this._delete(e)),this.loggers.set(e,s)}return this.loggers.get(e)}get(e,r){return this.add(e,r)}has(e){return!!this.loggers.has(e)}close(e){if(e)return this._removeLogger(e);this.loggers.forEach((r,n)=>this._removeLogger(n))}_removeLogger(e){if(!this.loggers.has(e))return;this.loggers.get(e).close(),this._delete(e)}_delete(e){this.loggers.delete(e)}}});var dbe=b(Ft=>{"use strict";var lbe=require("logform"),{warn:rC}=lW();Ft.version=wPe().version;Ft.transports=VPe();Ft.config=CO();Ft.addColors=lbe.levels;Ft.format=lbe.format;Ft.createLogger=EW();Ft.Logger=RO();Ft.ExceptionHandler=gW();Ft.RejectionHandler=hW();Ft.Container=ube();Ft.Transport=require("winston-transport");Ft.loggers=new Ft.Container;var $a=Ft.createLogger();Object.keys(Ft.config.npm.levels).concat(["log","query","stream","add","remove","clear","profile","startTimer","handleExceptions","unhandleExceptions","handleRejections","unhandleRejections","configure","child"]).forEach(t=>Ft[t]=(...e)=>$a[t](...e));Object.defineProperty(Ft,"level",{get(){return $a.level},set(t){$a.level=t}});Object.defineProperty(Ft,"exceptions",{get(){return $a.exceptions}});Object.defineProperty(Ft,"rejections",{get(){return $a.rejections}});["exitOnError"].forEach(t=>{Object.defineProperty(Ft,t,{get(){return $a[t]},set(e){$a[t]=e}})});Object.defineProperty(Ft,"default",{get(){return{exceptionHandlers:$a.exceptionHandlers,rejectionHandlers:$a.rejectionHandlers,transports:$a.transports}}});rC.deprecated(Ft,"setLevels");rC.forFunctions(Ft,"useFormat",["cli"]);rC.forProperties(Ft,"useFormat",["padLevels","stripColors"]);rC.forFunctions(Ft,"deprecated",["addRewriter","addFilter","clone","extend"]);rC.forProperties(Ft,"deprecated",["emitErrs","levelLength"])});var gbe=b(nC=>{"use strict";var tIt=require("@smithy/protocol-http");function rIt(t){return t}var pbe=t=>e=>async r=>{if(!tIt.HttpRequest.isInstance(r.request))return e(r);let{request:n}=r,{handlerProtocol:s=""}=t.requestHandler.metadata||{};if(s.indexOf("h2")>=0&&!n.headers[":authority"])delete n.headers.host,n.headers[":authority"]=n.hostname+(n.port?":"+n.port:"");else if(!n.headers.host){let o=n.hostname;n.port!=null&&(o+=`:${n.port}`),n.headers.host=o}return e(r)},mbe={name:"hostHeaderMiddleware",step:"build",priority:"low",tags:["HOST"],override:!0},nIt=t=>({applyToStack:e=>{e.add(pbe(t),mbe)}});nC.getHostHeaderPlugin=nIt;nC.hostHeaderMiddleware=pbe;nC.hostHeaderMiddlewareOptions=mbe;nC.resolveHostHeaderConfig=rIt});var Sbe=b(xO=>{"use strict";var fbe=()=>(t,e)=>async r=>{try{let n=await t(r),{clientName:s,commandName:o,logger:i,dynamoDbDocumentClientOptions:a={}}=e,{overrideInputFilterSensitiveLog:c,overrideOutputFilterSensitiveLog:u}=a,l=c??e.inputFilterSensitiveLog,d=u??e.outputFilterSensitiveLog,{$metadata:p,...g}=n.output;return i?.info?.({clientName:s,commandName:o,input:l(r.input),output:d(g),metadata:p}),n}catch(n){let{clientName:s,commandName:o,logger:i,dynamoDbDocumentClientOptions:a={}}=e,{overrideInputFilterSensitiveLog:c}=a,u=c??e.inputFilterSensitiveLog;throw i?.error?.({clientName:s,commandName:o,input:u(r.input),error:n,metadata:n.$metadata}),n}},hbe={name:"loggerMiddleware",tags:["LOGGER"],step:"initialize",override:!0},sIt=t=>({applyToStack:e=>{e.add(fbe(),hbe)}});xO.getLoggerPlugin=sIt;xO.loggerMiddleware=fbe;xO.loggerMiddlewareOptions=hbe});var Ebe=b(PO=>{"use strict";Object.defineProperty(PO,"__esModule",{value:!0});PO.recursionDetectionMiddleware=void 0;var oIt=require("@aws/lambda-invoke-store"),iIt=require("@smithy/protocol-http"),yW="X-Amzn-Trace-Id",aIt="AWS_LAMBDA_FUNCTION_NAME",cIt="_X_AMZN_TRACE_ID",uIt=()=>t=>async e=>{let{request:r}=e;if(!iIt.HttpRequest.isInstance(r))return t(e);let n=Object.keys(r.headers??{}).find(l=>l.toLowerCase()===yW.toLowerCase())??yW;if(r.headers.hasOwnProperty(n))return t(e);let s=process.env[aIt],o=process.env[cIt],c=(await oIt.InvokeStore.getInstanceAsync())?.getXRayTraceId()??o,u=l=>typeof l=="string"&&l.length>0;return u(s)&&u(c)&&(r.headers[yW]=c),t({...e,request:r})};PO.recursionDetectionMiddleware=uIt});var ybe=b(Cf=>{"use strict";var sC=Ebe(),lIt={step:"build",tags:["RECURSION_DETECTION"],name:"recursionDetectionMiddleware",override:!0,priority:"low"},dIt=t=>({applyToStack:e=>{e.add(sC.recursionDetectionMiddleware(),lIt)}});Cf.getRecursionDetectionPlugin=dIt;Object.prototype.hasOwnProperty.call(sC,"__proto__")&&!Object.prototype.hasOwnProperty.call(Cf,"__proto__")&&Object.defineProperty(Cf,"__proto__",{enumerable:!0,value:sC.__proto__});Object.keys(sC).forEach(function(t){t!=="default"&&!Object.prototype.hasOwnProperty.call(Cf,t)&&(Cf[t]=sC[t])})});var _W=b(ji=>{"use strict";var Rf=require("@smithy/util-endpoints"),pIt=require("@smithy/url-parser"),Cbe=(t,e=!1)=>{if(e){for(let r of t.split("."))if(!Cbe(r))return!1;return!0}return!(!Rf.isValidHostLabel(t)||t.length<3||t.length>63||t!==t.toLowerCase()||Rf.isIpAddress(t))},_be=":",mIt="/",gIt=t=>{let e=t.split(_be);if(e.length<6)return null;let[r,n,s,o,i,...a]=e;if(r!=="arn"||n===""||s===""||a.join(_be)==="")return null;let c=a.map(u=>u.split(mIt)).flat();return{partition:n,service:s,region:o,accountId:i,resourceId:c}},fIt=[{id:"aws",outputs:{dnsSuffix:"amazonaws.com",dualStackDnsSuffix:"api.aws",implicitGlobalRegion:"us-east-1",name:"aws",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^(us|eu|ap|sa|ca|me|af|il|mx)\\-\\w+\\-\\d+$",regions:{"af-south-1":{description:"Africa (Cape Town)"},"ap-east-1":{description:"Asia Pacific (Hong Kong)"},"ap-east-2":{description:"Asia Pacific (Taipei)"},"ap-northeast-1":{description:"Asia Pacific (Tokyo)"},"ap-northeast-2":{description:"Asia Pacific (Seoul)"},"ap-northeast-3":{description:"Asia Pacific (Osaka)"},"ap-south-1":{description:"Asia Pacific (Mumbai)"},"ap-south-2":{description:"Asia Pacific (Hyderabad)"},"ap-southeast-1":{description:"Asia Pacific (Singapore)"},"ap-southeast-2":{description:"Asia Pacific (Sydney)"},"ap-southeast-3":{description:"Asia Pacific (Jakarta)"},"ap-southeast-4":{description:"Asia Pacific (Melbourne)"},"ap-southeast-5":{description:"Asia Pacific (Malaysia)"},"ap-southeast-6":{description:"Asia Pacific (New Zealand)"},"ap-southeast-7":{description:"Asia Pacific (Thailand)"},"aws-global":{description:"aws global region"},"ca-central-1":{description:"Canada (Central)"},"ca-west-1":{description:"Canada West (Calgary)"},"eu-central-1":{description:"Europe (Frankfurt)"},"eu-central-2":{description:"Europe (Zurich)"},"eu-north-1":{description:"Europe (Stockholm)"},"eu-south-1":{description:"Europe (Milan)"},"eu-south-2":{description:"Europe (Spain)"},"eu-west-1":{description:"Europe (Ireland)"},"eu-west-2":{description:"Europe (London)"},"eu-west-3":{description:"Europe (Paris)"},"il-central-1":{description:"Israel (Tel Aviv)"},"me-central-1":{description:"Middle East (UAE)"},"me-south-1":{description:"Middle East (Bahrain)"},"mx-central-1":{description:"Mexico (Central)"},"sa-east-1":{description:"South America (Sao Paulo)"},"us-east-1":{description:"US East (N. Virginia)"},"us-east-2":{description:"US East (Ohio)"},"us-west-1":{description:"US West (N. California)"},"us-west-2":{description:"US West (Oregon)"}}},{id:"aws-cn",outputs:{dnsSuffix:"amazonaws.com.cn",dualStackDnsSuffix:"api.amazonwebservices.com.cn",implicitGlobalRegion:"cn-northwest-1",name:"aws-cn",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^cn\\-\\w+\\-\\d+$",regions:{"aws-cn-global":{description:"aws-cn global region"},"cn-north-1":{description:"China (Beijing)"},"cn-northwest-1":{description:"China (Ningxia)"}}},{id:"aws-eusc",outputs:{dnsSuffix:"amazonaws.eu",dualStackDnsSuffix:"api.amazonwebservices.eu",implicitGlobalRegion:"eusc-de-east-1",name:"aws-eusc",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^eusc\\-(de)\\-\\w+\\-\\d+$",regions:{"eusc-de-east-1":{description:"AWS European Sovereign Cloud (Germany)"}}},{id:"aws-iso",outputs:{dnsSuffix:"c2s.ic.gov",dualStackDnsSuffix:"api.aws.ic.gov",implicitGlobalRegion:"us-iso-east-1",name:"aws-iso",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^us\\-iso\\-\\w+\\-\\d+$",regions:{"aws-iso-global":{description:"aws-iso global region"},"us-iso-east-1":{description:"US ISO East"},"us-iso-west-1":{description:"US ISO WEST"}}},{id:"aws-iso-b",outputs:{dnsSuffix:"sc2s.sgov.gov",dualStackDnsSuffix:"api.aws.scloud",implicitGlobalRegion:"us-isob-east-1",name:"aws-iso-b",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^us\\-isob\\-\\w+\\-\\d+$",regions:{"aws-iso-b-global":{description:"aws-iso-b global region"},"us-isob-east-1":{description:"US ISOB East (Ohio)"},"us-isob-west-1":{description:"US ISOB West"}}},{id:"aws-iso-e",outputs:{dnsSuffix:"cloud.adc-e.uk",dualStackDnsSuffix:"api.cloud-aws.adc-e.uk",implicitGlobalRegion:"eu-isoe-west-1",name:"aws-iso-e",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^eu\\-isoe\\-\\w+\\-\\d+$",regions:{"aws-iso-e-global":{description:"aws-iso-e global region"},"eu-isoe-west-1":{description:"EU ISOE West"}}},{id:"aws-iso-f",outputs:{dnsSuffix:"csp.hci.ic.gov",dualStackDnsSuffix:"api.aws.hci.ic.gov",implicitGlobalRegion:"us-isof-south-1",name:"aws-iso-f",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^us\\-isof\\-\\w+\\-\\d+$",regions:{"aws-iso-f-global":{description:"aws-iso-f global region"},"us-isof-east-1":{description:"US ISOF EAST"},"us-isof-south-1":{description:"US ISOF SOUTH"}}},{id:"aws-us-gov",outputs:{dnsSuffix:"amazonaws.com",dualStackDnsSuffix:"api.aws",implicitGlobalRegion:"us-gov-west-1",name:"aws-us-gov",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^us\\-gov\\-\\w+\\-\\d+$",regions:{"aws-us-gov-global":{description:"aws-us-gov global region"},"us-gov-east-1":{description:"AWS GovCloud (US-East)"},"us-gov-west-1":{description:"AWS GovCloud (US-West)"}}}],hIt="1.1",Rbe={partitions:fIt,version:hIt},vbe=Rbe,xbe="",Pbe=t=>{let{partitions:e}=vbe;for(let n of e){let{regions:s,outputs:o}=n;for(let[i,a]of Object.entries(s))if(i===t)return{...o,...a}}for(let n of e){let{regionRegex:s,outputs:o}=n;if(new RegExp(s).test(t))return{...o}}let r=e.find(n=>n.id==="aws");if(!r)throw new Error("Provided region was not found in the partition array or regex, and default partition with id 'aws' doesn't exist.");return{...r.outputs}},bbe=(t,e="")=>{vbe=t,xbe=e},SIt=()=>{bbe(Rbe,"")},EIt=()=>xbe,Ibe={isVirtualHostableS3Bucket:Cbe,parseArn:gIt,partition:Pbe};Rf.customEndpointFunctions.aws=Ibe;var yIt=t=>{if(typeof t.endpointProvider!="function")throw new Error("@aws-sdk/util-endpoint - endpointProvider and endpoint missing in config for this client.");let{endpoint:e}=t;return e===void 0&&(t.endpoint=async()=>Abe(t.endpointProvider({Region:typeof t.region=="function"?await t.region():t.region,UseDualStack:typeof t.useDualstackEndpoint=="function"?await t.useDualstackEndpoint():t.useDualstackEndpoint,UseFIPS:typeof t.useFipsEndpoint=="function"?await t.useFipsEndpoint():t.useFipsEndpoint,Endpoint:void 0},{logger:t.logger}))),t},Abe=t=>pIt.parseUrl(t.url);ji.EndpointError=Rf.EndpointError;ji.isIpAddress=Rf.isIpAddress;ji.resolveEndpoint=Rf.resolveEndpoint;ji.awsEndpointFunctions=Ibe;ji.getUserAgentPrefix=EIt;ji.partition=Pbe;ji.resolveDefaultAwsRegionalEndpointsConfig=yIt;ji.setPartitionInfo=bbe;ji.toEndpointV1=Abe;ji.useDefaultPartitionInfo=SIt});var oC,Tbe,wbe=_(()=>{oC={warningEmitted:!1},Tbe=t=>{if(t&&!oC.warningEmitted){if(process.env.AWS_SDK_JS_NODE_VERSION_SUPPORT_WARNING_DISABLED==="true"){oC.warningEmitted=!0;return}let e=parseInt(t.substring(1,t.indexOf("."))),r=22;e=${r}. You are running node ${t}. - -To continue receiving updates to AWS services, bug fixes, -and security updates please upgrade to node >=${r}. - -More information can be found at: https://a.co/c895JFp`))}}});var _It,CIt,CW,Dbe=_(()=>{_It=()=>(t,e)=>async r=>(e.__retryLongPoll=!0,t(r)),CIt={name:"longPollMiddleware",tags:["RETRY"],step:"initialize",override:!0},CW=t=>({applyToStack:e=>{e.add(_It(),CIt)}})});function bO(t,e,r){return t.$source||(t.$source={}),t.$source[e]=r,t}var Obe=_(()=>{});function Nbe(t,e,r){t.__aws_sdk_context?t.__aws_sdk_context.features||(t.__aws_sdk_context.features={}):t.__aws_sdk_context={features:{}},t.__aws_sdk_context.features[e]=r}var kbe,Lbe=_(()=>{kbe=require("@smithy/util-retry");kbe.Retry.v2026||=typeof process=="object"&&process.env?.AWS_NEW_RETRIES_2026==="true"});function Mbe(t,e,r){return t.$source||(t.$source={}),t.$source[e]=r,t}var Fbe=_(()=>{});var Ga={};wt(Ga,{emitWarningIfUnsupportedVersion:()=>Tbe,getLongPollPlugin:()=>CW,setCredentialFeature:()=>bO,setFeature:()=>Nbe,setTokenFeature:()=>Mbe,state:()=>oC});var Ko=_(()=>{wbe();Dbe();Obe();Lbe();Fbe()});var xW=b(vf=>{"use strict";var RIt=require("@smithy/core"),vIt=_W(),xIt=require("@smithy/protocol-http"),zc=(Ko(),ue(Ga)),Bbe=require("@smithy/util-retry"),Gbe=void 0;function PIt(t){return t===void 0?!0:typeof t=="string"&&t.length<=50}function bIt(t){let e=RIt.normalizeProvider(t.userAgentAppId??Gbe),{customUserAgent:r}=t;return Object.assign(t,{customUserAgent:typeof r=="string"?[[r]]:r,userAgentAppId:async()=>{let n=await e();if(!PIt(n)){let s=t.logger?.constructor?.name==="NoOpLogger"||!t.logger?console:t.logger;typeof n!="string"?s?.warn("userAgentAppId must be a string or undefined."):n.length>50&&s?.warn("The provided userAgentAppId exceeds the maximum length of 50 characters.")}return n}})}var IIt=/\d{12}\.ddb/;async function AIt(t,e,r){if(r.request?.headers?.["smithy-protocol"]==="rpc-v2-cbor"&&zc.setFeature(t,"PROTOCOL_RPC_V2_CBOR","M"),typeof e.retryStrategy=="function"){let o=await e.retryStrategy();if(typeof o.mode=="string")switch(o.mode){case Bbe.RETRY_MODES.ADAPTIVE:zc.setFeature(t,"RETRY_MODE_ADAPTIVE","F");break;case Bbe.RETRY_MODES.STANDARD:zc.setFeature(t,"RETRY_MODE_STANDARD","E");break}}if(typeof e.accountIdEndpointMode=="function"){let o=t.endpointV2;switch(String(o?.url?.hostname).match(IIt)&&zc.setFeature(t,"ACCOUNT_ID_ENDPOINT","O"),await e.accountIdEndpointMode?.()){case"disabled":zc.setFeature(t,"ACCOUNT_ID_MODE_DISABLED","Q");break;case"preferred":zc.setFeature(t,"ACCOUNT_ID_MODE_PREFERRED","P");break;case"required":zc.setFeature(t,"ACCOUNT_ID_MODE_REQUIRED","R");break}}let s=t.__smithy_context?.selectedHttpAuthScheme?.identity;if(s?.$source){let o=s;o.accountId&&zc.setFeature(t,"RESOLVED_ACCOUNT_ID","T");for(let[i,a]of Object.entries(o.$source??{}))zc.setFeature(t,i,a)}}var Ube="user-agent",RW="x-amz-user-agent",qbe=" ",vW="/",TIt=/[^!$%&'*+\-.^_`|~\w]/g,wIt=/[^!$%&'*+\-.^_`|~\w#]/g,$be="-",DIt=1024;function OIt(t){let e="";for(let r in t){let n=t[r];if(e.length+n.length+1<=DIt){e.length?e+=","+n:e+=n;continue}break}return e}var jbe=t=>(e,r)=>async n=>{let{request:s}=n;if(!xIt.HttpRequest.isInstance(s))return e(n);let{headers:o}=s,i=r?.userAgent?.map(IO)||[],a=(await t.defaultUserAgentProvider()).map(IO);await AIt(r,t,n);let c=r;a.push(`m/${OIt(Object.assign({},r.__smithy_context?.features,c.__aws_sdk_context?.features))}`);let u=t?.customUserAgent?.map(IO)||[],l=await t.userAgentAppId();l&&a.push(IO(["app",`${l}`]));let d=vIt.getUserAgentPrefix(),p=(d?[d]:[]).concat([...a,...i,...u]).join(qbe),g=[...a.filter(y=>y.startsWith("aws-sdk-")),...u].join(qbe);return t.runtime!=="browser"?(g&&(o[RW]=o[RW]?`${o[Ube]} ${g}`:g),o[Ube]=p):o[RW]=p,e({...n,request:s})},IO=t=>{let e=t[0].split(vW).map(i=>i.replace(TIt,$be)).join(vW),r=t[1]?.replace(wIt,$be),n=e.indexOf(vW),s=e.substring(0,n),o=e.substring(n+1);return s==="api"&&(o=o.toLowerCase()),[s,o,r].filter(i=>i&&i.length>0).reduce((i,a,c)=>{switch(c){case 0:return a;case 1:return`${i}/${a}`;default:return`${i}#${a}`}},"")},Vbe={name:"getUserAgentMiddleware",step:"build",priority:"low",tags:["SET_USER_AGENT","USER_AGENT"],override:!0},kIt=t=>({applyToStack:e=>{e.add(jbe(t),Vbe)}});vf.DEFAULT_UA_APP_ID=Gbe;vf.getUserAgentMiddlewareOptions=Vbe;vf.getUserAgentPlugin=kIt;vf.resolveUserAgentConfig=bIt;vf.userAgentMiddleware=jbe});var Hbe,PW,zbe=_(()=>{Hbe=require("@smithy/protocol-http"),PW=t=>Hbe.HttpResponse.isInstance(t)?t.headers?.date??t.headers?.Date:void 0});var xf,bW=_(()=>{xf=t=>new Date(Date.now()+t)});var Wbe,Kbe=_(()=>{bW();Wbe=(t,e)=>Math.abs(xf(e).getTime()-t)>=3e5});var IW,Qbe=_(()=>{Kbe();IW=(t,e)=>{let r=Date.parse(t);return Wbe(r,e)?r-Date.now():e}});var AW=_(()=>{zbe();bW();Qbe()});var Xbe,iC,Pf,Pl,TW,wW=_(()=>{Xbe=require("@smithy/protocol-http");AW();iC=(t,e)=>{if(!e)throw new Error(`Property \`${t}\` is not resolved for AWS SDK SigV4Auth`);return e},Pf=async t=>{let e=iC("context",t.context),r=iC("config",t.config),n=e.endpointV2?.properties?.authSchemes?.[0],o=await iC("signer",r.signer)(n),i=t?.signingRegion,a=t?.signingRegionSet,c=t?.signingName;return{config:r,signer:o,signingRegion:i,signingRegionSet:a,signingName:c}},Pl=class{async sign(e,r,n){if(!Xbe.HttpRequest.isInstance(e))throw new Error("The request is not an instance of `HttpRequest` and cannot be signed");let s=await Pf(n),{config:o,signer:i}=s,{signingRegion:a,signingName:c}=s,u=n.context;if(u?.authSchemes?.length??!1){let[d,p]=u.authSchemes;d?.name==="sigv4a"&&p?.name==="sigv4"&&(a=p?.signingRegion??a,c=p?.signingName??c)}return await i.sign(e,{signingDate:xf(o.systemClockOffset),signingRegion:a,signingService:c})}errorHandler(e){return r=>{let n=r.ServerTime??PW(r.$response);if(n){let s=iC("config",e.config),o=s.systemClockOffset;s.systemClockOffset=IW(n,s.systemClockOffset),s.systemClockOffset!==o&&r.$metadata&&(r.$metadata.clockSkewCorrected=!0)}throw r}}successHandler(e,r){let n=PW(e);if(n){let s=iC("config",r.config);s.systemClockOffset=IW(n,s.systemClockOffset)}}},TW=Pl});var Jbe,aC,Ybe=_(()=>{Jbe=require("@smithy/protocol-http");AW();wW();aC=class extends Pl{async sign(e,r,n){if(!Jbe.HttpRequest.isInstance(e))throw new Error("The request is not an instance of `HttpRequest` and cannot be signed");let{config:s,signer:o,signingRegion:i,signingRegionSet:a,signingName:c}=await Pf(n),l=(await s.sigv4aSigningRegionSet?.()??a??[i]).join(",");return await o.sign(e,{signingDate:xf(s.systemClockOffset),signingRegion:l,signingService:c})}}});var DW,Zbe=_(()=>{DW=t=>typeof t=="string"&&t.length>0?t.split(",").map(e=>e.trim()):[]});var AO,OW=_(()=>{AO=t=>`AWS_BEARER_TOKEN_${t.replace(/[\s-]/g,"_").toUpperCase()}`});var eIe,tIe,rIe,nIe=_(()=>{Zbe();OW();eIe="AWS_AUTH_SCHEME_PREFERENCE",tIe="auth_scheme_preference",rIe={environmentVariableSelector:(t,e)=>{if(e?.signingName&&AO(e.signingName)in t)return["httpBearerAuth"];if(eIe in t)return DW(t[eIe])},configFileSelector:t=>{if(tIe in t)return DW(t[tIe])},default:[]}});var sIe,kW,oIe,iIe,aIe=_(()=>{sIe=require("@smithy/core"),kW=require("@smithy/property-provider"),oIe=t=>(t.sigv4aSigningRegionSet=(0,sIe.normalizeProvider)(t.sigv4aSigningRegionSet),t),iIe={environmentVariableSelector(t){if(t.AWS_SIGV4A_SIGNING_REGION_SET)return t.AWS_SIGV4A_SIGNING_REGION_SET.split(",").map(e=>e.trim());throw new kW.ProviderError("AWS_SIGV4A_SIGNING_REGION_SET not set in env.",{tryNextLink:!0})},configFileSelector(t){if(t.sigv4a_signing_region_set)return(t.sigv4a_signing_region_set??"").split(",").map(e=>e.trim());throw new kW.ProviderError("sigv4a_signing_region_set not set in profile.",{tryNextLink:!0})},default:void 0}});function NIt(t,{credentials:e,credentialDefaultProvider:r}){let n;return e?e?.memoized?n=e:n=(0,Vi.memoizeIdentityProvider)(e,Vi.isIdentityExpired,Vi.doesIdentityRequireRefresh):r?n=(0,Vi.normalizeProvider)(r(Object.assign({},t,{parentClientConfig:t}))):n=async()=>{throw new Error("@aws-sdk/core::resolveAwsSdkSigV4Config - `credentials` not provided and no credentialDefaultProvider was configured.")},n.memoized=!0,n}function LIt(t,e){if(e.configBound)return e;let r=async n=>e({...n,callerClientConfig:t});return r.memoized=e.memoized,r.configBound=!0,r}var Vi,NW,LW,cIe,uIe=_(()=>{Ko();Vi=require("@smithy/core"),NW=require("@smithy/signature-v4"),LW=t=>{let e=t.credentials,r=!!t.credentials,n;Object.defineProperty(t,"credentials",{set(u){u&&u!==e&&u!==n&&(r=!0),e=u;let l=NIt(t,{credentials:e,credentialDefaultProvider:t.credentialDefaultProvider}),d=LIt(t,l);if(r&&!d.attributed){let p=typeof e=="object"&&e!==null;n=async g=>{let R=await d(g);return p&&(!R.$source||Object.keys(R.$source).length===0)?bO(R,"CREDENTIALS_CODE","e"):R},n.memoized=d.memoized,n.configBound=d.configBound,n.attributed=!0}else n=d},get(){return n},enumerable:!0,configurable:!0}),t.credentials=e;let{signingEscapePath:s=!0,systemClockOffset:o=t.systemClockOffset||0,sha256:i}=t,a;return t.signer?a=(0,Vi.normalizeProvider)(t.signer):t.regionInfoProvider?a=()=>(0,Vi.normalizeProvider)(t.region)().then(async u=>[await t.regionInfoProvider(u,{useFipsEndpoint:await t.useFipsEndpoint(),useDualstackEndpoint:await t.useDualstackEndpoint()})||{},u]).then(([u,l])=>{let{signingRegion:d,signingService:p}=u;t.signingRegion=t.signingRegion||d||l,t.signingName=t.signingName||p||t.serviceId;let g={...t,credentials:t.credentials,region:t.signingRegion,service:t.signingName,sha256:i,uriEscapePath:s},y=t.signerConstructor||NW.SignatureV4;return new y(g)}):a=async u=>{u=Object.assign({},{name:"sigv4",signingName:t.signingName||t.defaultSigningName,signingRegion:await(0,Vi.normalizeProvider)(t.region)(),properties:{}},u);let l=u.signingRegion,d=u.signingName;t.signingRegion=t.signingRegion||l,t.signingName=t.signingName||d||t.serviceId;let p={...t,credentials:t.credentials,region:t.signingRegion,service:t.signingName,sha256:i,uriEscapePath:s},g=t.signerConstructor||NW.SignatureV4;return new g(p)},Object.assign(t,{systemClockOffset:o,signingEscapePath:s,signer:a})},cIe=LW});var lIe=_(()=>{wW();Ybe();nIe();aIe();uIe()});var dIe={};wt(dIe,{AWSSDKSigV4Signer:()=>TW,AwsSdkSigV4ASigner:()=>aC,AwsSdkSigV4Signer:()=>Pl,NODE_AUTH_SCHEME_PREFERENCE_OPTIONS:()=>rIe,NODE_SIGV4A_CONFIG_OPTIONS:()=>iIe,getBearerTokenEnvKey:()=>AO,resolveAWSSDKSigV4Config:()=>cIe,resolveAwsSdkSigV4AConfig:()=>oIe,resolveAwsSdkSigV4Config:()=>LW,validateSigningProperties:()=>Pf});var MW=_(()=>{lIe();OW()});var cC,FW,Qo,bf=_(()=>{cC=require("@smithy/core/schema"),FW=require("@smithy/smithy-client"),Qo=class{queryCompat;errorRegistry;constructor(e=!1){this.queryCompat=e}resolveRestContentType(e,r){let n=r.getMemberSchemas(),s=Object.values(n).find(o=>!!o.getMergedTraits().httpPayload);if(s){let o=s.getMergedTraits().mediaType;return o||(s.isStringSchema()?"text/plain":s.isBlobSchema()?"application/octet-stream":e)}else if(!r.isUnitSchema()&&Object.values(n).find(i=>{let{httpQuery:a,httpQueryParams:c,httpHeader:u,httpLabel:l,httpPrefixHeaders:d}=i.getMergedTraits();return!a&&!c&&!u&&!l&&d===void 0}))return e}async getErrorSchemaOrThrowBaseException(e,r,n,s,o,i){let a=e;e.includes("#")&&([,a]=e.split("#"));let c={$metadata:o,$fault:n.statusCode<500?"client":"server"};if(!this.errorRegistry)throw new Error("@aws-sdk/core/protocols - error handler not initialized.");try{return{errorSchema:i?.(this.errorRegistry,a)??this.errorRegistry.getSchema(e),errorMetadata:c}}catch{s.message=s.message??s.Message??"UnknownError";let l=this.errorRegistry,d=l.getBaseException();if(d){let y=l.getErrorCtor(d)??Error;throw this.decorateServiceException(Object.assign(new y({name:a}),c),s)}let p=s,g=p?.message??p?.Message??p?.Error?.Message??p?.Error?.message;throw this.decorateServiceException(Object.assign(new Error(g),{name:a},c),s)}}compose(e,r,n){let s=n;r.includes("#")&&([s]=r.split("#"));let o=cC.TypeRegistry.for(s),i=cC.TypeRegistry.for("smithy.ts.sdk.synthetic."+n);e.copyFrom(o),e.copyFrom(i),this.errorRegistry=e}decorateServiceException(e,r={}){if(this.queryCompat){let n=e.Message??r.Message,s=(0,FW.decorateServiceException)(e,r);n&&(s.message=n);let o=s.Error??{};o.Type=s.Error?.Type,o.Code=s.Error?.Code,o.Message=s.Error?.message??s.Error?.Message??n,s.Error=o;let i=s.$metadata.requestId;return i&&(s.RequestId=i),s}return(0,FW.decorateServiceException)(e,r)}setQueryCompatError(e,r){let n=r.headers?.["x-amzn-query-error"];if(e!==void 0&&n!=null){let[s,o]=n.split(";"),i=Object.keys(e),a={Code:s,Type:o};e.Code=s,e.Type=o;for(let c=0;ccC.NormalizedSchema.of(s).getMergedTraits().awsQueryError?.[0]===r)}}}});var wO,pIe,TO,mIe=_(()=>{wO=require("@smithy/core/cbor"),pIe=require("@smithy/core/schema");bf();TO=class extends wO.SmithyRpcV2CborProtocol{awsQueryCompatible;mixin;constructor({defaultNamespace:e,errorTypeRegistries:r,awsQueryCompatible:n}){super({defaultNamespace:e,errorTypeRegistries:r}),this.awsQueryCompatible=!!n,this.mixin=new Qo(this.awsQueryCompatible)}async serializeRequest(e,r,n){let s=await super.serializeRequest(e,r,n);return this.awsQueryCompatible&&(s.headers["x-amzn-query-mode"]="true"),s}async handleError(e,r,n,s,o){this.awsQueryCompatible&&this.mixin.setQueryCompatError(s,n);let i=(()=>{let y=n.headers["x-amzn-query-error"];return y&&this.awsQueryCompatible?y.split(";")[0]:(0,wO.loadSmithyRpcV2CborErrorCode)(n,s)??"Unknown"})();this.mixin.compose(this.compositeErrorRegistry,i,this.options.defaultNamespace);let{errorSchema:a,errorMetadata:c}=await this.mixin.getErrorSchemaOrThrowBaseException(i,this.options.defaultNamespace,n,s,o,this.awsQueryCompatible?this.mixin.findQueryCompatibleError:void 0),u=pIe.NormalizedSchema.of(a),l=s.message??s.Message??"UnknownError",d=this.compositeErrorRegistry.getErrorCtor(a)??Error,p=new d(l),g={};for(let[y,R]of u.structIterator())s[y]!=null&&(g[y]=this.deserializer.readValue(R,s[y]));throw this.awsQueryCompatible&&this.mixin.queryCompatOutput(s,g),this.mixin.decorateServiceException(Object.assign(p,c,{$fault:u.getMergedTraits().error,message:l},g),s)}}});var gIe,fIe,hIe,SIe=_(()=>{gIe=t=>{if(t==null)return t;if(typeof t=="number"||typeof t=="bigint"){let e=new Error(`Received number ${t} where a string was expected.`);return e.name="Warning",console.warn(e),String(t)}if(typeof t=="boolean"){let e=new Error(`Received boolean ${t} where a string was expected.`);return e.name="Warning",console.warn(e),String(t)}return t},fIe=t=>{if(t==null)return t;if(typeof t=="string"){let e=t.toLowerCase();if(t!==""&&e!=="false"&&e!=="true"){let r=new Error(`Received string "${t}" where a boolean was expected.`);r.name="Warning",console.warn(r)}return t!==""&&e!=="false"}return t},hIe=t=>{if(t==null)return t;if(typeof t=="string"){let e=Number(t);if(e.toString()!==t){let r=new Error(`Received string "${t}" where a number was expected.`);return r.name="Warning",console.warn(r),t}return e}return t}});var Fn,bl=_(()=>{Fn=class{serdeContext;setSerdeContext(e){this.serdeContext=e}}});var If,BW=_(()=>{If=class{from;to;keys;constructor(e,r){this.from=e,this.to=r;let n=Object.keys(this.from),s=new Set(n);s.delete("__type"),this.keys=s}mark(e){this.keys.delete(e)}hasUnknown(){return this.keys.size===1&&Object.keys(this.to).length===0}writeUnknown(){if(this.hasUnknown()){let e=this.keys.values().next().value,r=this.from[e];this.to.$unknown=[e,r]}}}});function yIe(t,e,r){if(r?.source){let n=r.source;if(typeof e=="number"&&(e>Number.MAX_SAFE_INTEGER||e{EIe=require("@smithy/core/serde")});var CIe,RIe,DO,UW=_(()=>{CIe=require("@smithy/smithy-client"),RIe=require("@smithy/util-utf8"),DO=(t,e)=>(0,CIe.collectBody)(t,e).then(r=>(e?.utf8Encoder??RIe.toUtf8)(r))});var uC,xIe,vIe,qW,Af,lC=_(()=>{UW();uC=(t,e)=>DO(t,e).then(r=>{if(r.length)try{return JSON.parse(r)}catch(n){throw n?.name==="SyntaxError"&&Object.defineProperty(n,"$responseBodyText",{value:r}),n}return{}}),xIe=async(t,e)=>{let r=await uC(t,e);return r.message=r.message??r.Message,r},vIe=(t,e)=>Object.keys(t).find(r=>r.toLowerCase()===e.toLowerCase()),qW=t=>{let e=t;return typeof e=="number"&&(e=e.toString()),e.indexOf(",")>=0&&(e=e.split(",")[0]),e.indexOf(":")>=0&&(e=e.split(":")[0]),e.indexOf("#")>=0&&(e=e.split("#")[1]),e},Af=(t,e)=>{let r=vIe(t.headers,"x-amzn-errortype");if(r!==void 0)return qW(t.headers[r]);if(e&&typeof e=="object"){let n=vIe(e,"code");if(n&&e[n]!==void 0)return qW(e[n]);if(e.__type!==void 0)return qW(e.__type)}}});var PIe,bIe,oo,IIe,Tf,$W=_(()=>{PIe=require("@smithy/core/protocols"),bIe=require("@smithy/core/schema"),oo=require("@smithy/core/serde"),IIe=require("@smithy/util-base64");bl();BW();_Ie();lC();Tf=class extends Fn{settings;constructor(e){super(),this.settings=e}async read(e,r){return this._read(e,typeof r=="string"?JSON.parse(r,yIe):await uC(r,this.serdeContext))}readObject(e,r){return this._read(e,r)}_read(e,r){let n=r!==null&&typeof r=="object",s=bIe.NormalizedSchema.of(e);if(n){if(s.isStructSchema()){let i=r,a=s.isUnionSchema(),c={},u,{jsonName:l}=this.settings;l&&(u={});let d;a&&(d=new If(i,c));for(let[p,g]of s.structIterator()){let y=p;l&&(y=g.getMergedTraits().jsonName??y,u[y]=p),a&&d.mark(y),i[y]!=null&&(c[p]=this._read(g,i[y]))}if(a)d.writeUnknown();else if(typeof i.__type=="string")for(let p in i){let g=i[p],y=l?u[p]??p:p;y in c||(c[y]=g)}return c}if(Array.isArray(r)&&s.isListSchema()){let i=s.getValueSchema(),a=[];for(let c of r)a.push(this._read(i,c));return a}if(s.isMapSchema()){let i=s.getValueSchema(),a={};for(let c in r)a[c]=this._read(i,r[c]);return a}}if(s.isBlobSchema()&&typeof r=="string")return(0,IIe.fromBase64)(r);let o=s.getMergedTraits().mediaType;if(s.isStringSchema()&&typeof r=="string"&&o)return o==="application/json"||o.endsWith("+json")?oo.LazyJsonString.from(r):r;if(s.isTimestampSchema()&&r!=null)switch((0,PIe.determineTimestampFormat)(s,this.settings)){case 5:return(0,oo.parseRfc3339DateTimeWithOffset)(r);case 6:return(0,oo.parseRfc7231DateTime)(r);case 7:return(0,oo.parseEpochTimestamp)(r);default:return console.warn("Missing timestamp format, parsing value with Date constructor:",r),new Date(r)}if(s.isBigIntegerSchema()&&(typeof r=="number"||typeof r=="string"))return BigInt(r);if(s.isBigDecimalSchema()&&r!=null){if(r instanceof oo.NumericValue)return r;let i=r;return i.type==="bigDecimal"&&"string"in i?new oo.NumericValue(i.string,i.type):new oo.NumericValue(String(r),"bigDecimal")}if(s.isNumericSchema()&&typeof r=="string"){switch(r){case"Infinity":return 1/0;case"-Infinity":return-1/0;case"NaN":return NaN}return r}if(s.isDocumentSchema())if(n){let i=Array.isArray(r)?[]:{};for(let a in r){let c=r[a];c instanceof oo.NumericValue?i[a]=c:i[a]=this._read(s,c)}return i}else return structuredClone(r);return r}}});var TIe,AIe,OO,wIe=_(()=>{TIe=require("@smithy/core/serde"),AIe="\u039D",OO=class{values=new Map;counter=0;stage=0;createReplacer(){if(this.stage===1)throw new Error("@aws-sdk/core/protocols - JsonReplacer already created.");if(this.stage===2)throw new Error("@aws-sdk/core/protocols - JsonReplacer exhausted.");return this.stage=1,(e,r)=>{if(r instanceof TIe.NumericValue){let n=`${AIe+"nv"+this.counter++}_`+r.string;return this.values.set(`"${n}"`,r.string),n}if(typeof r=="bigint"){let n=r.toString(),s=`${AIe+"b"+this.counter++}_`+n;return this.values.set(`"${s}"`,n),s}return r}}replaceInJson(e){if(this.stage===0)throw new Error("@aws-sdk/core/protocols - JsonReplacer not created yet.");if(this.stage===2)throw new Error("@aws-sdk/core/protocols - JsonReplacer exhausted.");if(this.stage=2,this.counter===0)return e;for(let[r,n]of this.values)e=e.replace(r,n);return e}}});var DIe,kO,Wc,GW,wf,jW=_(()=>{DIe=require("@smithy/core/protocols"),kO=require("@smithy/core/schema"),Wc=require("@smithy/core/serde"),GW=require("@smithy/util-base64");bl();wIe();wf=class extends Fn{settings;buffer;useReplacer=!1;rootSchema;constructor(e){super(),this.settings=e}write(e,r){this.rootSchema=kO.NormalizedSchema.of(e),this.buffer=this._write(this.rootSchema,r)}flush(){let{rootSchema:e,useReplacer:r}=this;if(this.rootSchema=void 0,this.useReplacer=!1,e?.isStructSchema()||e?.isDocumentSchema()){if(!r)return JSON.stringify(this.buffer);let n=new OO;return n.replaceInJson(JSON.stringify(this.buffer,n.createReplacer(),0))}return this.buffer}writeDiscriminatedDocument(e,r){this.write(e,r),typeof this.buffer=="object"&&(this.buffer.__type=kO.NormalizedSchema.of(e).getName(!0))}_write(e,r,n){let s=r!==null&&typeof r=="object",o=kO.NormalizedSchema.of(e);if(s){if(o.isStructSchema()){let i=r,a={},{jsonName:c}=this.settings,u;c&&(u={});let l=0;for(let[d,p]of o.structIterator()){let g=this._write(p,i[d],o);if(g!==void 0){let y=d;c&&(y=p.getMergedTraits().jsonName??d,u[d]=y),a[y]=g,l++}}if(o.isUnionSchema()&&l===0){let{$unknown:d}=i;if(Array.isArray(d)){let[p,g]=d;a[p]=this._write(15,g)}}else if(typeof i.__type=="string")for(let d in i){let p=i[d],g=c?u[d]??d:d;g in a||(a[g]=this._write(15,p))}return a}if(Array.isArray(r)&&o.isListSchema()){let i=o.getValueSchema(),a=[],c=!!o.getMergedTraits().sparse;for(let u of r)(c||u!=null)&&a.push(this._write(i,u));return a}if(o.isMapSchema()){let i=o.getValueSchema(),a={},c=!!o.getMergedTraits().sparse;for(let u in r){let l=r[u];(c||l!=null)&&(a[u]=this._write(i,l))}return a}if(r instanceof Uint8Array&&(o.isBlobSchema()||o.isDocumentSchema()))return o===this.rootSchema?r:(this.serdeContext?.base64Encoder??GW.toBase64)(r);if(r instanceof Date&&(o.isTimestampSchema()||o.isDocumentSchema()))switch((0,DIe.determineTimestampFormat)(o,this.settings)){case 5:return r.toISOString().replace(".000Z","Z");case 6:return(0,Wc.dateToUtcString)(r);case 7:return r.getTime()/1e3;default:return console.warn("Missing timestamp format, using epoch seconds",r),r.getTime()/1e3}r instanceof Wc.NumericValue&&(this.useReplacer=!0)}if(!(r===null&&n?.isStructSchema())){if(o.isStringSchema()){if(typeof r>"u"&&o.isIdempotencyToken())return(0,Wc.generateIdempotencyToken)();let i=o.getMergedTraits().mediaType;return r!=null&&i&&(i==="application/json"||i.endsWith("+json"))?Wc.LazyJsonString.from(r):r}if(typeof r=="number"&&o.isNumericSchema())return Math.abs(r)===1/0||isNaN(r)?String(r):r;if(typeof r=="string"&&o.isBlobSchema())return o===this.rootSchema?r:(this.serdeContext?.base64Encoder??GW.toBase64)(r);if(typeof r=="bigint"&&(this.useReplacer=!0),o.isDocumentSchema())if(s){let i=Array.isArray(r)?[]:{};for(let a in r){let c=r[a];c instanceof Wc.NumericValue?(this.useReplacer=!0,i[a]=c):i[a]=this._write(o,c)}return i}else return structuredClone(r);return r}}}});var Il,NO=_(()=>{bl();$W();jW();Il=class extends Fn{settings;constructor(e){super(),this.settings=e}createSerializer(){let e=new wf(this.settings);return e.setSerdeContext(this.serdeContext),e}createDeserializer(){let e=new Tf(this.settings);return e.setSerdeContext(this.serdeContext),e}}});var OIe,LO,Al,MO=_(()=>{OIe=require("@smithy/core/protocols"),LO=require("@smithy/core/schema");bf();NO();lC();Al=class extends OIe.RpcProtocol{serializer;deserializer;serviceTarget;codec;mixin;awsQueryCompatible;constructor({defaultNamespace:e,errorTypeRegistries:r,serviceTarget:n,awsQueryCompatible:s,jsonCodec:o}){super({defaultNamespace:e,errorTypeRegistries:r}),this.serviceTarget=n,this.codec=o??new Il({timestampFormat:{useTrait:!0,default:7},jsonName:!1}),this.serializer=this.codec.createSerializer(),this.deserializer=this.codec.createDeserializer(),this.awsQueryCompatible=!!s,this.mixin=new Qo(this.awsQueryCompatible)}async serializeRequest(e,r,n){let s=await super.serializeRequest(e,r,n);return s.path.endsWith("/")||(s.path+="/"),s.headers["content-type"]=`application/x-amz-json-${this.getJsonRpcVersion()}`,s.headers["x-amz-target"]=`${this.serviceTarget}.${e.name}`,this.awsQueryCompatible&&(s.headers["x-amzn-query-mode"]="true"),((0,LO.deref)(e.input)==="unit"||!s.body)&&(s.body="{}"),s}getPayloadCodec(){return this.codec}async handleError(e,r,n,s,o){this.awsQueryCompatible&&this.mixin.setQueryCompatError(s,n);let i=Af(n,s)??"Unknown";this.mixin.compose(this.compositeErrorRegistry,i,this.options.defaultNamespace);let{errorSchema:a,errorMetadata:c}=await this.mixin.getErrorSchemaOrThrowBaseException(i,this.options.defaultNamespace,n,s,o,this.awsQueryCompatible?this.mixin.findQueryCompatibleError:void 0),u=LO.NormalizedSchema.of(a),l=s.message??s.Message??"UnknownError",d=this.compositeErrorRegistry.getErrorCtor(a)??Error,p=new d(l),g={},y=this.codec.createDeserializer();for(let[R,D]of u.structIterator())s[R]!=null&&(g[R]=y.readObject(D,s[R]));throw this.awsQueryCompatible&&this.mixin.queryCompatOutput(s,g),this.mixin.decorateServiceException(Object.assign(p,c,{$fault:u.getMergedTraits().error,message:l},g),s)}}});var FO,kIe=_(()=>{MO();FO=class extends Al{constructor({defaultNamespace:e,errorTypeRegistries:r,serviceTarget:n,awsQueryCompatible:s,jsonCodec:o}){super({defaultNamespace:e,errorTypeRegistries:r,serviceTarget:n,awsQueryCompatible:s,jsonCodec:o})}getShapeId(){return"aws.protocols#awsJson1_0"}getJsonRpcVersion(){return"1.0"}getDefaultContentType(){return"application/x-amz-json-1.0"}}});var BO,NIe=_(()=>{MO();BO=class extends Al{constructor({defaultNamespace:e,errorTypeRegistries:r,serviceTarget:n,awsQueryCompatible:s,jsonCodec:o}){super({defaultNamespace:e,errorTypeRegistries:r,serviceTarget:n,awsQueryCompatible:s,jsonCodec:o})}getShapeId(){return"aws.protocols#awsJson1_1"}getJsonRpcVersion(){return"1.1"}getDefaultContentType(){return"application/x-amz-json-1.1"}}});var Df,UO,qO,LIe=_(()=>{Df=require("@smithy/core/protocols"),UO=require("@smithy/core/schema");bf();NO();lC();qO=class extends Df.HttpBindingProtocol{serializer;deserializer;codec;mixin=new Qo;constructor({defaultNamespace:e,errorTypeRegistries:r}){super({defaultNamespace:e,errorTypeRegistries:r});let n={timestampFormat:{useTrait:!0,default:7},httpBindings:!0,jsonName:!0};this.codec=new Il(n),this.serializer=new Df.HttpInterceptingShapeSerializer(this.codec.createSerializer(),n),this.deserializer=new Df.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(),n)}getShapeId(){return"aws.protocols#restJson1"}getPayloadCodec(){return this.codec}setSerdeContext(e){this.codec.setSerdeContext(e),super.setSerdeContext(e)}async serializeRequest(e,r,n){let s=await super.serializeRequest(e,r,n),o=UO.NormalizedSchema.of(e.input);if(!s.headers["content-type"]){let i=this.mixin.resolveRestContentType(this.getDefaultContentType(),o);i&&(s.headers["content-type"]=i)}return s.body==null&&s.headers["content-type"]===this.getDefaultContentType()&&(s.body="{}"),s}async deserializeResponse(e,r,n){let s=await super.deserializeResponse(e,r,n),o=UO.NormalizedSchema.of(e.output);for(let[i,a]of o.structIterator())a.getMemberTraits().httpPayload&&!(i in s)&&(s[i]=null);return s}async handleError(e,r,n,s,o){let i=Af(n,s)??"Unknown";this.mixin.compose(this.compositeErrorRegistry,i,this.options.defaultNamespace);let{errorSchema:a,errorMetadata:c}=await this.mixin.getErrorSchemaOrThrowBaseException(i,this.options.defaultNamespace,n,s,o),u=UO.NormalizedSchema.of(a),l=s.message??s.Message??"UnknownError",d=this.compositeErrorRegistry.getErrorCtor(a)??Error,p=new d(l);await this.deserializeHttpMessage(a,r,n,s);let g={},y=this.codec.createDeserializer();for(let[R,D]of u.structIterator()){let B=D.getMergedTraits().jsonName??R;g[R]=y.readObject(D,s[B])}throw this.mixin.decorateServiceException(Object.assign(p,c,{$fault:u.getMergedTraits().error,message:l},g),s)}getDefaultContentType(){return"application/json"}}});var MIe,FIe,BIe=_(()=>{MIe=require("@smithy/smithy-client"),FIe=t=>{if(t!=null)return typeof t=="object"&&"__type"in t&&delete t.__type,(0,MIe.expectUnion)(t)}});var qIe=b(Hi=>{"use strict";Object.defineProperty(Hi,"__esModule",{value:!0});Hi.EntityDecoderImpl=Hi.CURRENCY=Hi.COMMON_HTML=Hi.XML=void 0;Hi.XML={amp:"&",apos:"'",gt:">",lt:"<",quot:'"'};Hi.COMMON_HTML={nbsp:"\xA0",copy:"\xA9",reg:"\xAE",trade:"\u2122",mdash:"\u2014",ndash:"\u2013",hellip:"\u2026",laquo:"\xAB",raquo:"\xBB",lsquo:"\u2018",rsquo:"\u2019",ldquo:"\u201C",rdquo:"\u201D",bull:"\u2022",para:"\xB6",sect:"\xA7",deg:"\xB0",frac12:"\xBD",frac14:"\xBC",frac34:"\xBE"};Hi.CURRENCY={cent:"\xA2",pound:"\xA3",curren:"\xA4",yen:"\xA5",euro:"\u20AC",dollar:"$",fnof:"\u0192",inr:"\u20B9",af:"\u060B",birr:"\u1265\u122D",peso:"\u20B1",rub:"\u20BD",won:"\u20A9",yuan:"\xA5",cedil:"\xB8"};var MIt=new Set("!?\\/[]$%{}^&*()<>|+");function UIe(t){if(t[0]==="#")throw new Error(`[EntityReplacer] Invalid character '#' in entity name: "${t}"`);for(let e of t)if(MIt.has(e))throw new Error(`[EntityReplacer] Invalid character '${e}' in entity name: "${t}"`);return t}function VW(...t){let e=Object.create(null);for(let r of t)if(r)for(let n of Object.keys(r)){let s=r[n];if(typeof s=="string")e[n]=s;else if(s&&typeof s=="object"&&s.val!==void 0){let o=s.val;typeof o=="string"&&(e[n]=o)}}return e}var fp="external",$O="base",HW="all";function FIt(t){return!t||t===fp?new Set([fp]):t===HW?new Set([HW]):t===$O?new Set([$O]):Array.isArray(t)?new Set(t):new Set([fp])}var Rs=Object.freeze({allow:0,leave:1,remove:2,throw:3}),BIt=new Set([9,10,13]);function UIt(t){if(!t)return{xmlVersion:1,onLevel:Rs.allow,nullLevel:Rs.remove};let e=t.xmlVersion===1.1?1.1:1,r=Rs[t.onNCR??"allow"]??Rs.allow,n=Rs[t.nullNCR??"remove"]??Rs.remove,s=Math.max(n,Rs.remove);return{xmlVersion:e,onLevel:r,nullLevel:s}}var qIt=class{_limit;_maxTotalExpansions;_maxExpandedLength;_postCheck;_limitTiers;_numericAllowed;_baseMap;_externalMap;_inputMap;_totalExpansions;_expandedLength;_removeSet;_leaveSet;_ncrXmlVersion;_ncrOnLevel;_ncrNullLevel;constructor(e={}){this._limit=e.limit||{},this._maxTotalExpansions=this._limit.maxTotalExpansions||0,this._maxExpandedLength=this._limit.maxExpandedLength||0,this._postCheck=typeof e.postCheck=="function"?e.postCheck:n=>n,this._limitTiers=FIt(this._limit.applyLimitsTo??fp),this._numericAllowed=e.numericAllowed??!0,this._baseMap=VW(Hi.XML,e.namedEntities||null),this._externalMap=Object.create(null),this._inputMap=Object.create(null),this._totalExpansions=0,this._expandedLength=0,this._removeSet=new Set(e.remove&&Array.isArray(e.remove)?e.remove:[]),this._leaveSet=new Set(e.leave&&Array.isArray(e.leave)?e.leave:[]);let r=UIt(e.ncr);this._ncrXmlVersion=r.xmlVersion,this._ncrOnLevel=r.onLevel,this._ncrNullLevel=r.nullLevel}setExternalEntities(e){if(e)for(let r of Object.keys(e))UIe(r);this._externalMap=VW(e)}addExternalEntity(e,r){UIe(e),typeof r=="string"&&r.indexOf("&")===-1&&(this._externalMap[e]=r)}addInputEntities(e){this._totalExpansions=0,this._expandedLength=0,this._inputMap=VW(e)}reset(){return this._inputMap=Object.create(null),this._totalExpansions=0,this._expandedLength=0,this}setXmlVersion(e){this._ncrXmlVersion=e==="1.1"||e===1.1?1.1:1}decode(e){if(typeof e!="string"||e.length===0)return e;let r=e,n=[],s=e.length,o=0,i=0,a=this._maxTotalExpansions>0,c=this._maxExpandedLength>0,u=a||c;for(;i=s||e.charCodeAt(d)!==59){i++;continue}let p=e.slice(i+1,d);if(p.length===0){i++;continue}let g,y;if(this._removeSet.has(p))g="",y===void 0&&(y=fp);else if(this._leaveSet.has(p)){i++;continue}else if(p.charCodeAt(0)===35){let R=this._resolveNCR(p);if(R===void 0){i++;continue}g=R,y=$O}else{let R=this._resolveName(p);g=R?.value,y=R?.tier}if(g===void 0){i++;continue}if(i>o&&n.push(e.slice(o,i)),n.push(g),o=d+1,i=o,u&&this._tierCounts(y)){if(a&&(this._totalExpansions++,this._totalExpansions>this._maxTotalExpansions))throw new Error(`[EntityReplacer] Entity expansion count limit exceeded: ${this._totalExpansions} > ${this._maxTotalExpansions}`);if(c){let R=g.length-(p.length+2);if(R>0&&(this._expandedLength+=R,this._expandedLength>this._maxExpandedLength))throw new Error(`[EntityReplacer] Expanded content length limit exceeded: ${this._expandedLength} > ${this._maxExpandedLength}`)}}}o=55296&&e<=57343||this._ncrXmlVersion===1&&e>=1&&e<=31&&!BIt.has(e)?Rs.remove:-1}_applyNCRAction(e,r,n){switch(e){case Rs.allow:return String.fromCodePoint(n);case Rs.remove:return"";case Rs.leave:return;case Rs.throw:throw new Error(`[EntityDecoder] Prohibited numeric character reference &${r}; (U+${n.toString(16).toUpperCase().padStart(4,"0")})`);default:return String.fromCodePoint(n)}}_resolveNCR(e){let r=e.charCodeAt(1),n;if(r===120||r===88?n=parseInt(e.slice(2),16):n=parseInt(e.slice(1),10),Number.isNaN(n)||n<0||n>1114111)return;let s=this._classifyNCR(n);if(!this._numericAllowed&&s{"use strict";Object.defineProperty(zW,"__esModule",{value:!0});zW.parseXML=jIt;var $It=require("fast-xml-parser"),GO=qIe(),jO=new GO.EntityDecoderImpl({namedEntities:{...GO.XML,...GO.COMMON_HTML,...GO.CURRENCY},numericAllowed:!0,limit:{maxTotalExpansions:1/0},ncr:{xmlVersion:1.1}}),GIt=new $It.XMLParser({attributeNamePrefix:"",processEntities:{enabled:!0,maxTotalExpansions:1/0},htmlEntities:!0,entityDecoder:{setExternalEntities:t=>{jO.setExternalEntities(t)},addInputEntities:t=>{jO.addInputEntities(t)},reset:()=>{jO.reset()},decode:t=>jO.decode(t),setXmlVersion:t=>{}},ignoreAttributes:!1,ignoreDeclaration:!0,parseTagValue:!1,trimValues:!1,tagValueProcessor:(t,e)=>e.trim()===""&&e.includes(` -`)?"":void 0,maxNestedTags:1/0});function jIt(t){return GIt.parse(t,!0)}});var zO=b(HO=>{"use strict";var VIt=$Ie(),HIt=/[&<>"]/g,zIt={"&":"&","<":"<",">":">",'"':"""};function WIt(t){return t.replace(HIt,e=>zIt[e])}var KIt=/[&"'<>\r\n\u0085\u2028]/g,QIt={"&":"&",'"':""","'":"'","<":"<",">":">","\r":" ","\n":" ","\x85":"…","\u2028":"
"};function XIt(t){return t.replace(KIt,e=>QIt[e])}var VO=class{value;constructor(e){this.value=e}toString(){return XIt(""+this.value)}},WW=class t{name;children;attributes={};static of(e,r,n){let s=new t(e);return r!==void 0&&s.addChildNode(new VO(r)),n!==void 0&&s.withName(n),s}constructor(e,r=[]){this.name=e,this.children=r}withName(e){return this.name=e,this}addAttribute(e,r){return this.attributes[e]=r,this}addChildNode(e){return this.children.push(e),this}removeAttribute(e){return delete this.attributes[e],this}n(e){return this.name=e,this}c(e){return this.children.push(e),this}a(e,r){return r!=null&&(this.attributes[e]=r),this}cc(e,r,n=r){if(e[r]!=null){let s=t.of(r,e[r]).withName(n);this.c(s)}}l(e,r,n,s){e[r]!=null&&s().map(i=>{i.withName(n),this.c(i)})}lc(e,r,n,s){if(e[r]!=null){let o=s(),i=new t(n);o.map(a=>{i.c(a)}),this.c(i)}}toString(){let e=!!this.children.length,r=`<${this.name}`,n=this.attributes;for(let s of Object.keys(n)){let o=n[s];o!=null&&(r+=` ${s}="${WIt(""+o)}"`)}return r+=e?`>${this.children.map(s=>s.toString()).join("")}`:"/>"}};HO.parseXML=VIt.parseXML;HO.XmlNode=WW;HO.XmlText=VO});var GIe,jIe,KW,VIe,HIe,Tl,WO=_(()=>{GIe=O(zO()),jIe=require("@smithy/core/protocols"),KW=require("@smithy/core/schema"),VIe=require("@smithy/smithy-client"),HIe=require("@smithy/util-utf8");bl();BW();Tl=class extends Fn{settings;stringDeserializer;constructor(e){super(),this.settings=e,this.stringDeserializer=new jIe.FromStringShapeDeserializer(e)}setSerdeContext(e){this.serdeContext=e,this.stringDeserializer.setSerdeContext(e)}read(e,r,n){let s=KW.NormalizedSchema.of(e),o=s.getMemberSchemas();if(s.isStructSchema()&&s.isMemberSchema()&&!!Object.values(o).find(u=>!!u.getMemberTraits().eventPayload)){let u={},l=Object.keys(o)[0];return o[l].isBlobSchema()?u[l]=r:u[l]=this.read(o[l],r),u}let a=(this.serdeContext?.utf8Encoder??HIe.toUtf8)(r),c=this.parseXml(a);return this.readSchema(e,n?c[n]:c)}readSchema(e,r){let n=KW.NormalizedSchema.of(e);if(n.isUnitSchema())return;let s=n.getMergedTraits();if(n.isListSchema()&&!Array.isArray(r))return this.readSchema(n,[r]);if(r==null)return r;if(typeof r=="object"){let o=!!s.xmlFlattened;if(n.isListSchema()){let a=n.getValueSchema(),c=[],u=a.getMergedTraits().xmlName??"member",l=o?r:(r[0]??r)[u];if(l==null)return c;let d=Array.isArray(l)?l:[l];for(let p of d)c.push(this.readSchema(a,p));return c}let i={};if(n.isMapSchema()){let a=n.getKeySchema(),c=n.getValueSchema(),u;o?u=Array.isArray(r)?r:[r]:u=Array.isArray(r.entry)?r.entry:[r.entry];let l=a.getMergedTraits().xmlName??"key",d=c.getMergedTraits().xmlName??"value";for(let p of u){let g=p[l],y=p[d];i[g]=this.readSchema(c,y)}return i}if(n.isStructSchema()){let a=n.isUnionSchema(),c;a&&(c=new If(r,i));for(let[u,l]of n.structIterator()){let d=l.getMergedTraits(),p=d.httpPayload?d.xmlName??l.getName():l.getMemberTraits().xmlName??u;a&&c.mark(p),r[p]!=null&&(i[u]=this.readSchema(l,r[p]))}return a&&c.writeUnknown(),i}if(n.isDocumentSchema())return r;throw new Error(`@aws-sdk/core/protocols - xml deserializer unhandled schema type for ${n.getName(!0)}`)}return n.isListSchema()?[]:n.isMapSchema()||n.isStructSchema()?{}:this.stringDeserializer.read(n,r)}parseXml(e){if(e.length){let r;try{r=(0,GIe.parseXML)(e)}catch(i){throw i&&typeof i=="object"&&Object.defineProperty(i,"$responseBodyText",{value:e}),i}let n="#text",s=Object.keys(r)[0],o=r[s];return o[n]&&(o[s]=o[n],delete o[n]),(0,VIe.getValueFromTextNode)(o)}return{}}}});var dC,zIe,KO,WIe,KIe,Of,QW=_(()=>{dC=require("@smithy/core/protocols"),zIe=require("@smithy/core/schema"),KO=require("@smithy/core/serde"),WIe=require("@smithy/smithy-client"),KIe=require("@smithy/util-base64");bl();Of=class extends Fn{settings;buffer;constructor(e){super(),this.settings=e}write(e,r,n=""){this.buffer===void 0&&(this.buffer="");let s=zIe.NormalizedSchema.of(e);if(n&&!n.endsWith(".")&&(n+="."),s.isBlobSchema())(typeof r=="string"||r instanceof Uint8Array)&&(this.writeKey(n),this.writeValue((this.serdeContext?.base64Encoder??KIe.toBase64)(r)));else if(s.isBooleanSchema()||s.isNumericSchema()||s.isStringSchema())r!=null?(this.writeKey(n),this.writeValue(String(r))):s.isIdempotencyToken()&&(this.writeKey(n),this.writeValue((0,KO.generateIdempotencyToken)()));else if(s.isBigIntegerSchema())r!=null&&(this.writeKey(n),this.writeValue(String(r)));else if(s.isBigDecimalSchema())r!=null&&(this.writeKey(n),this.writeValue(r instanceof KO.NumericValue?r.string:String(r)));else if(s.isTimestampSchema()){if(r instanceof Date)switch(this.writeKey(n),(0,dC.determineTimestampFormat)(s,this.settings)){case 5:this.writeValue(r.toISOString().replace(".000Z","Z"));break;case 6:this.writeValue((0,WIe.dateToUtcString)(r));break;case 7:this.writeValue(String(r.getTime()/1e3));break}}else if(s.isDocumentSchema())Array.isArray(r)?this.write(79,r,n):r instanceof Date?this.write(4,r,n):r instanceof Uint8Array?this.write(21,r,n):r&&typeof r=="object"?this.write(143,r,n):(this.writeKey(n),this.writeValue(String(r)));else if(s.isListSchema()){if(Array.isArray(r))if(r.length===0)this.settings.serializeEmptyLists&&(this.writeKey(n),this.writeValue(""));else{let o=s.getValueSchema(),i=this.settings.flattenLists||s.getMergedTraits().xmlFlattened,a=1;for(let c of r){if(c==null)continue;let u=o.getMergedTraits(),l=this.getKey("member",u.xmlName,u.ec2QueryName),d=i?`${n}${a}`:`${n}${l}.${a}`;this.write(o,c,d),++a}}}else if(s.isMapSchema()){if(r&&typeof r=="object"){let o=s.getKeySchema(),i=s.getValueSchema(),a=s.getMergedTraits().xmlFlattened,c=1;for(let u in r){let l=r[u];if(l==null)continue;let d=o.getMergedTraits(),p=this.getKey("key",d.xmlName,d.ec2QueryName),g=a?`${n}${c}.${p}`:`${n}entry.${c}.${p}`,y=i.getMergedTraits(),R=this.getKey("value",y.xmlName,y.ec2QueryName),D=a?`${n}${c}.${R}`:`${n}entry.${c}.${R}`;this.write(o,u,g),this.write(i,l,D),++c}}}else if(s.isStructSchema()){if(r&&typeof r=="object"){let o=!1;for(let[i,a]of s.structIterator()){if(r[i]==null&&!a.isIdempotencyToken())continue;let c=a.getMergedTraits(),u=this.getKey(i,c.xmlName,c.ec2QueryName,"struct"),l=`${n}${u}`;this.write(a,r[i],l),o=!0}if(!o&&s.isUnionSchema()){let{$unknown:i}=r;if(Array.isArray(i)){let[a,c]=i,u=`${n}${a}`;this.write(15,c,u)}}}}else if(!s.isUnitSchema())throw new Error(`@aws-sdk/core/protocols - QuerySerializer unrecognized schema type ${s.getName(!0)}`)}flush(){if(this.buffer===void 0)throw new Error("@aws-sdk/core/protocols - QuerySerializer cannot flush with nothing written to buffer.");let e=this.buffer;return delete this.buffer,e}getKey(e,r,n,s){let{ec2:o,capitalizeKeys:i}=this.settings;if(o&&n)return n;let a=r??e;return i&&s==="struct"?a[0].toUpperCase()+a.slice(1):a}writeKey(e){e.endsWith(".")&&(e=e.slice(0,e.length-1)),this.buffer+=`&${(0,dC.extendedEncodeURIComponent)(e)}=`}writeValue(e){this.buffer+=(0,dC.extendedEncodeURIComponent)(e)}}});var pC,mC,kf,XW=_(()=>{pC=require("@smithy/core/protocols"),mC=require("@smithy/core/schema");bf();WO();QW();kf=class extends pC.RpcProtocol{options;serializer;deserializer;mixin=new Qo;constructor(e){super({defaultNamespace:e.defaultNamespace,errorTypeRegistries:e.errorTypeRegistries}),this.options=e;let r={timestampFormat:{useTrait:!0,default:5},httpBindings:!1,xmlNamespace:e.xmlNamespace,serviceNamespace:e.defaultNamespace,serializeEmptyLists:!0};this.serializer=new Of(r),this.deserializer=new Tl(r)}getShapeId(){return"aws.protocols#awsQuery"}setSerdeContext(e){this.serializer.setSerdeContext(e),this.deserializer.setSerdeContext(e)}getPayloadCodec(){throw new Error("AWSQuery protocol has no payload codec.")}async serializeRequest(e,r,n){let s=await super.serializeRequest(e,r,n);s.path.endsWith("/")||(s.path+="/"),s.headers["content-type"]="application/x-www-form-urlencoded",((0,mC.deref)(e.input)==="unit"||!s.body)&&(s.body="");let o=e.name.split("#")[1]??e.name;return s.body=`Action=${o}&Version=${this.options.version}`+s.body,s.body.endsWith("&")&&(s.body=s.body.slice(-1)),s}async deserializeResponse(e,r,n){let s=this.deserializer,o=mC.NormalizedSchema.of(e.output),i={};if(n.statusCode>=300){let l=await(0,pC.collectBody)(n.body,r);l.byteLength>0&&Object.assign(i,await s.read(15,l)),await this.handleError(e,r,n,i,this.deserializeMetadata(n))}for(let l in n.headers){let d=n.headers[l];delete n.headers[l],n.headers[l.toLowerCase()]=d}let a=e.name.split("#")[1]??e.name,c=o.isStructSchema()&&this.useNestedResult()?a+"Result":void 0,u=await(0,pC.collectBody)(n.body,r);return u.byteLength>0&&Object.assign(i,await s.read(o,u,c)),i.$metadata=this.deserializeMetadata(n),i}useNestedResult(){return!0}async handleError(e,r,n,s,o){let i=this.loadQueryErrorCode(n,s)??"Unknown";this.mixin.compose(this.compositeErrorRegistry,i,this.options.defaultNamespace);let a=this.loadQueryError(s)??{},c=this.loadQueryErrorMessage(s);a.message=c,a.Error={Type:a.Type,Code:a.Code,Message:c};let{errorSchema:u,errorMetadata:l}=await this.mixin.getErrorSchemaOrThrowBaseException(i,this.options.defaultNamespace,n,a,o,this.mixin.findQueryCompatibleError),d=mC.NormalizedSchema.of(u),p=this.compositeErrorRegistry.getErrorCtor(u)??Error,g=new p(c),y={Type:a.Error.Type,Code:a.Error.Code,Error:a.Error};for(let[R,D]of d.structIterator()){let B=D.getMergedTraits().xmlName??R,M=a[B]??s[B];y[R]=this.deserializer.readSchema(D,M)}throw this.mixin.decorateServiceException(Object.assign(g,l,{$fault:d.getMergedTraits().error,message:c},y),s)}loadQueryErrorCode(e,r){let n=(r.Errors?.[0]?.Error??r.Errors?.Error??r.Error)?.Code;if(n!==void 0)return n;if(e.statusCode==404)return"NotFound"}loadQueryError(e){return e.Errors?.[0]?.Error??e.Errors?.Error??e.Error}loadQueryErrorMessage(e){let r=this.loadQueryError(e);return r?.message??r?.Message??e.message??e.Message??"Unknown"}getDefaultContentType(){return"application/x-www-form-urlencoded"}}});var QO,QIe=_(()=>{XW();QO=class extends kf{options;constructor(e){super(e),this.options=e;let r={capitalizeKeys:!0,flattenLists:!0,serializeEmptyLists:!1,ec2:!0};Object.assign(this.serializer.settings,r)}getShapeId(){return"aws.protocols#ec2Query"}useNestedResult(){return!1}}});var XIe=_(()=>{});var JIe,YIe,JW,ZIe,XO,YW=_(()=>{JIe=O(zO()),YIe=require("@smithy/smithy-client");UW();JW=(t,e)=>DO(t,e).then(r=>{if(r.length){let n;try{n=(0,JIe.parseXML)(r)}catch(a){throw a&&typeof a=="object"&&Object.defineProperty(a,"$responseBodyText",{value:r}),a}let s="#text",o=Object.keys(n)[0],i=n[o];return i[s]&&(i[o]=i[s],delete i[s]),(0,YIe.getValueFromTextNode)(i)}return{}}),ZIe=async(t,e)=>{let r=await JW(t,e);return r.Error&&(r.Error.message=r.Error.message??r.Error.Message),r},XO=(t,e)=>{if(e?.Error?.Code!==void 0)return e.Error.Code;if(e?.Code!==void 0)return e.Code;if(t.statusCode==404)return"NotFound"}});var Yn,eAe,JO,YO,ZW,ZO,Nf,eK=_(()=>{Yn=O(zO()),eAe=require("@smithy/core/protocols"),JO=require("@smithy/core/schema"),YO=require("@smithy/core/serde"),ZW=require("@smithy/smithy-client"),ZO=require("@smithy/util-base64");bl();Nf=class extends Fn{settings;stringBuffer;byteBuffer;buffer;constructor(e){super(),this.settings=e}write(e,r){let n=JO.NormalizedSchema.of(e);if(n.isStringSchema()&&typeof r=="string")this.stringBuffer=r;else if(n.isBlobSchema())this.byteBuffer="byteLength"in r?r:(this.serdeContext?.base64Decoder??ZO.fromBase64)(r);else{this.buffer=this.writeStruct(n,r,void 0);let s=n.getMergedTraits();s.httpPayload&&!s.xmlName&&this.buffer.withName(n.getName())}}flush(){if(this.byteBuffer!==void 0){let r=this.byteBuffer;return delete this.byteBuffer,r}if(this.stringBuffer!==void 0){let r=this.stringBuffer;return delete this.stringBuffer,r}let e=this.buffer;return this.settings.xmlNamespace&&(e?.attributes?.xmlns||e.addAttribute("xmlns",this.settings.xmlNamespace)),delete this.buffer,e.toString()}writeStruct(e,r,n){let s=e.getMergedTraits(),o=e.isMemberSchema()&&!s.httpPayload?e.getMemberTraits().xmlName??e.getMemberName():s.xmlName??e.getName();if(!o||!e.isStructSchema())throw new Error(`@aws-sdk/core/protocols - xml serializer, cannot write struct with empty name or non-struct, schema=${e.getName(!0)}.`);let i=Yn.XmlNode.of(o),[a,c]=this.getXmlnsAttribute(e,n);for(let[l,d]of e.structIterator()){let p=r[l];if(p!=null||d.isIdempotencyToken()){if(d.getMergedTraits().xmlAttribute){i.addAttribute(d.getMergedTraits().xmlName??l,this.writeSimple(d,p));continue}if(d.isListSchema())this.writeList(d,p,i,c);else if(d.isMapSchema())this.writeMap(d,p,i,c);else if(d.isStructSchema())i.addChildNode(this.writeStruct(d,p,c));else{let g=Yn.XmlNode.of(d.getMergedTraits().xmlName??d.getMemberName());this.writeSimpleInto(d,p,g,c),i.addChildNode(g)}}}let{$unknown:u}=r;if(u&&e.isUnionSchema()&&Array.isArray(u)&&Object.keys(r).length===1){let[l,d]=u,p=Yn.XmlNode.of(l);if(typeof d!="string")if(r instanceof Yn.XmlNode||r instanceof Yn.XmlText)i.addChildNode(r);else throw new Error("@aws-sdk - $unknown union member in XML requires value of type string, @aws-sdk/xml-builder::XmlNode or XmlText.");this.writeSimpleInto(0,d,p,c),i.addChildNode(p)}return c&&i.addAttribute(a,c),i}writeList(e,r,n,s){if(!e.isMemberSchema())throw new Error(`@aws-sdk/core/protocols - xml serializer, cannot write non-member list: ${e.getName(!0)}`);let o=e.getMergedTraits(),i=e.getValueSchema(),a=i.getMergedTraits(),c=!!a.sparse,u=!!o.xmlFlattened,[l,d]=this.getXmlnsAttribute(e,s),p=(g,y)=>{if(i.isListSchema())this.writeList(i,Array.isArray(y)?y:[y],g,d);else if(i.isMapSchema())this.writeMap(i,y,g,d);else if(i.isStructSchema()){let R=this.writeStruct(i,y,d);g.addChildNode(R.withName(u?o.xmlName??e.getMemberName():a.xmlName??"member"))}else{let R=Yn.XmlNode.of(u?o.xmlName??e.getMemberName():a.xmlName??"member");this.writeSimpleInto(i,y,R,d),g.addChildNode(R)}};if(u)for(let g of r)(c||g!=null)&&p(n,g);else{let g=Yn.XmlNode.of(o.xmlName??e.getMemberName());d&&g.addAttribute(l,d);for(let y of r)(c||y!=null)&&p(g,y);n.addChildNode(g)}}writeMap(e,r,n,s,o=!1){if(!e.isMemberSchema())throw new Error(`@aws-sdk/core/protocols - xml serializer, cannot write non-member map: ${e.getName(!0)}`);let i=e.getMergedTraits(),a=e.getKeySchema(),u=a.getMergedTraits().xmlName??"key",l=e.getValueSchema(),d=l.getMergedTraits(),p=d.xmlName??"value",g=!!d.sparse,y=!!i.xmlFlattened,[R,D]=this.getXmlnsAttribute(e,s),B=(M,ge,Y)=>{let Te=Yn.XmlNode.of(u,ge),[Ht,Tt]=this.getXmlnsAttribute(a,D);Tt&&Te.addAttribute(Ht,Tt),M.addChildNode(Te);let Ne=Yn.XmlNode.of(p);l.isListSchema()?this.writeList(l,Y,Ne,D):l.isMapSchema()?this.writeMap(l,Y,Ne,D,!0):l.isStructSchema()?Ne=this.writeStruct(l,Y,D):this.writeSimpleInto(l,Y,Ne,D),M.addChildNode(Ne)};if(y)for(let M in r){let ge=r[M];if(g||ge!=null){let Y=Yn.XmlNode.of(i.xmlName??e.getMemberName());B(Y,M,ge),n.addChildNode(Y)}}else{let M;o||(M=Yn.XmlNode.of(i.xmlName??e.getMemberName()),D&&M.addAttribute(R,D),n.addChildNode(M));for(let ge in r){let Y=r[ge];if(g||Y!=null){let Te=Yn.XmlNode.of("entry");B(Te,ge,Y),(o?n:M).addChildNode(Te)}}}}writeSimple(e,r){if(r===null)throw new Error("@aws-sdk/core/protocols - (XML serializer) cannot write null value.");let n=JO.NormalizedSchema.of(e),s=null;if(r&&typeof r=="object")if(n.isBlobSchema())s=(this.serdeContext?.base64Encoder??ZO.toBase64)(r);else if(n.isTimestampSchema()&&r instanceof Date)switch((0,eAe.determineTimestampFormat)(n,this.settings)){case 5:s=r.toISOString().replace(".000Z","Z");break;case 6:s=(0,ZW.dateToUtcString)(r);break;case 7:s=String(r.getTime()/1e3);break;default:console.warn("Missing timestamp format, using http date",r),s=(0,ZW.dateToUtcString)(r);break}else{if(n.isBigDecimalSchema()&&r)return r instanceof YO.NumericValue?r.string:String(r);throw n.isMapSchema()||n.isListSchema()?new Error("@aws-sdk/core/protocols - xml serializer, cannot call _write() on List/Map schema, call writeList or writeMap() instead."):new Error(`@aws-sdk/core/protocols - xml serializer, unhandled schema type for object value and schema: ${n.getName(!0)}`)}if((n.isBooleanSchema()||n.isNumericSchema()||n.isBigIntegerSchema()||n.isBigDecimalSchema())&&(s=String(r)),n.isStringSchema()&&(r===void 0&&n.isIdempotencyToken()?s=(0,YO.generateIdempotencyToken)():s=String(r)),s===null)throw new Error(`Unhandled schema-value pair ${n.getName(!0)}=${r}`);return s}writeSimpleInto(e,r,n,s){let o=this.writeSimple(e,r),i=JO.NormalizedSchema.of(e),a=new Yn.XmlText(o),[c,u]=this.getXmlnsAttribute(i,s);u&&n.addAttribute(c,u),n.addChildNode(a)}getXmlnsAttribute(e,r){let n=e.getMergedTraits(),[s,o]=n.xmlNamespace??[];return o&&o!==r?[s?`xmlns:${s}`:"xmlns",o]:[void 0,void 0]}}});var Lf,tK=_(()=>{bl();WO();eK();Lf=class extends Fn{settings;constructor(e){super(),this.settings=e}createSerializer(){let e=new Nf(this.settings);return e.setSerdeContext(this.serdeContext),e}createDeserializer(){let e=new Tl(this.settings);return e.setSerdeContext(this.serdeContext),e}}});var Mf,rK,ek,tAe=_(()=>{Mf=require("@smithy/core/protocols"),rK=require("@smithy/core/schema");bf();YW();tK();ek=class extends Mf.HttpBindingProtocol{codec;serializer;deserializer;mixin=new Qo;constructor(e){super(e);let r={timestampFormat:{useTrait:!0,default:5},httpBindings:!0,xmlNamespace:e.xmlNamespace,serviceNamespace:e.defaultNamespace};this.codec=new Lf(r),this.serializer=new Mf.HttpInterceptingShapeSerializer(this.codec.createSerializer(),r),this.deserializer=new Mf.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(),r)}getPayloadCodec(){return this.codec}getShapeId(){return"aws.protocols#restXml"}async serializeRequest(e,r,n){let s=await super.serializeRequest(e,r,n),o=rK.NormalizedSchema.of(e.input);if(!s.headers["content-type"]){let i=this.mixin.resolveRestContentType(this.getDefaultContentType(),o);i&&(s.headers["content-type"]=i)}return typeof s.body=="string"&&s.headers["content-type"]===this.getDefaultContentType()&&!s.body.startsWith("'+s.body),s}async deserializeResponse(e,r,n){return super.deserializeResponse(e,r,n)}async handleError(e,r,n,s,o){let i=XO(n,s)??"Unknown";if(this.mixin.compose(this.compositeErrorRegistry,i,this.options.defaultNamespace),s.Error&&typeof s.Error=="object")for(let R of Object.keys(s.Error))s[R]=s.Error[R],R.toLowerCase()==="message"&&(s.message=s.Error[R]);s.RequestId&&!o.requestId&&(o.requestId=s.RequestId);let{errorSchema:a,errorMetadata:c}=await this.mixin.getErrorSchemaOrThrowBaseException(i,this.options.defaultNamespace,n,s,o),u=rK.NormalizedSchema.of(a),l=s.Error?.message??s.Error?.Message??s.message??s.Message??"UnknownError",d=this.compositeErrorRegistry.getErrorCtor(a)??Error,p=new d(l);await this.deserializeHttpMessage(a,r,n,s);let g={},y=this.codec.createDeserializer();for(let[R,D]of u.structIterator()){let B=D.getMergedTraits().xmlName??R,M=s.Error?.[B]??s[B];g[R]=y.readSchema(D,M)}throw this.mixin.decorateServiceException(Object.assign(p,c,{$fault:u.getMergedTraits().error,message:l},g),s)}getDefaultContentType(){return"application/xml"}hasUnstructuredPayloadBinding(e){for(let[,r]of e.structIterator())if(r.getMergedTraits().httpPayload)return!(r.isStructSchema()||r.isMapSchema()||r.isListSchema());return!1}}});var rAe={};wt(rAe,{AwsEc2QueryProtocol:()=>QO,AwsJson1_0Protocol:()=>FO,AwsJson1_1Protocol:()=>BO,AwsJsonRpcProtocol:()=>Al,AwsQueryProtocol:()=>kf,AwsRestJsonProtocol:()=>qO,AwsRestXmlProtocol:()=>ek,AwsSmithyRpcV2CborProtocol:()=>TO,JsonCodec:()=>Il,JsonShapeDeserializer:()=>Tf,JsonShapeSerializer:()=>wf,QueryShapeSerializer:()=>Of,XmlCodec:()=>Lf,XmlShapeDeserializer:()=>Tl,XmlShapeSerializer:()=>Nf,_toBool:()=>fIe,_toNum:()=>hIe,_toStr:()=>gIe,awsExpectUnion:()=>FIe,loadRestJsonErrorCode:()=>Af,loadRestXmlErrorCode:()=>XO,parseJsonBody:()=>uC,parseJsonErrorBody:()=>xIe,parseXmlBody:()=>JW,parseXmlErrorBody:()=>ZIe});var nK=_(()=>{mIe();SIe();kIe();NIe();MO();LIe();NO();$W();jW();BIe();lC();QIe();XW();XIe();QW();tAe();tK();WO();eK();YW()});var tk={};wt(tk,{AWSSDKSigV4Signer:()=>TW,AwsEc2QueryProtocol:()=>QO,AwsJson1_0Protocol:()=>FO,AwsJson1_1Protocol:()=>BO,AwsJsonRpcProtocol:()=>Al,AwsQueryProtocol:()=>kf,AwsRestJsonProtocol:()=>qO,AwsRestXmlProtocol:()=>ek,AwsSdkSigV4ASigner:()=>aC,AwsSdkSigV4Signer:()=>Pl,AwsSmithyRpcV2CborProtocol:()=>TO,JsonCodec:()=>Il,JsonShapeDeserializer:()=>Tf,JsonShapeSerializer:()=>wf,NODE_AUTH_SCHEME_PREFERENCE_OPTIONS:()=>rIe,NODE_SIGV4A_CONFIG_OPTIONS:()=>iIe,QueryShapeSerializer:()=>Of,XmlCodec:()=>Lf,XmlShapeDeserializer:()=>Tl,XmlShapeSerializer:()=>Nf,_toBool:()=>fIe,_toNum:()=>hIe,_toStr:()=>gIe,awsExpectUnion:()=>FIe,emitWarningIfUnsupportedVersion:()=>Tbe,getBearerTokenEnvKey:()=>AO,getLongPollPlugin:()=>CW,loadRestJsonErrorCode:()=>Af,loadRestXmlErrorCode:()=>XO,parseJsonBody:()=>uC,parseJsonErrorBody:()=>xIe,parseXmlBody:()=>JW,parseXmlErrorBody:()=>ZIe,resolveAWSSDKSigV4Config:()=>cIe,resolveAwsSdkSigV4AConfig:()=>oIe,resolveAwsSdkSigV4Config:()=>LW,setCredentialFeature:()=>bO,setFeature:()=>Nbe,setTokenFeature:()=>Mbe,state:()=>oC,validateSigningProperties:()=>Pf});var rk=_(()=>{Ko();MW();nK()});var oK=b(wl=>{"use strict";Object.defineProperty(wl,"__esModule",{value:!0});wl.resolveHttpAuthSchemeConfig=wl.defaultSecretsManagerHttpAuthSchemeProvider=wl.defaultSecretsManagerHttpAuthSchemeParametersProvider=void 0;var JIt=(rk(),ue(tk)),sK=require("@smithy/util-middleware"),YIt=async(t,e,r)=>({operation:(0,sK.getSmithyContext)(e).operation,region:await(0,sK.normalizeProvider)(t.region)()||(()=>{throw new Error("expected `region` to be configured for `aws.auth#sigv4`")})()});wl.defaultSecretsManagerHttpAuthSchemeParametersProvider=YIt;function ZIt(t){return{schemeId:"aws.auth#sigv4",signingProperties:{name:"secretsmanager",region:t.region},propertiesExtractor:(e,r)=>({signingProperties:{config:e,context:r}})}}var eAt=t=>{let e=[];switch(t.operation){default:e.push(ZIt(t))}return e};wl.defaultSecretsManagerHttpAuthSchemeProvider=eAt;var tAt=t=>{let e=(0,JIt.resolveAwsSdkSigV4Config)(t);return Object.assign(e,{authSchemePreference:(0,sK.normalizeProvider)(t.authSchemePreference??[])})};wl.resolveHttpAuthSchemeConfig=tAt});var nAe=b((SJr,rAt)=>{rAt.exports={name:"@aws-sdk/client-secrets-manager",description:"AWS SDK for JavaScript Secrets Manager Client for Node.js, Browser and React Native",version:"3.1004.0",scripts:{build:"concurrently 'yarn:build:types' 'yarn:build:es' && yarn build:cjs","build:cjs":"node ../../scripts/compilation/inline client-secrets-manager","build:es":"tsc -p tsconfig.es.json","build:include:deps":'yarn g:turbo run build -F="$npm_package_name"',"build:types":"tsc -p tsconfig.types.json","build:types:downlevel":"downlevel-dts dist-types dist-types/ts3.4",clean:"premove dist-cjs dist-es dist-types tsconfig.cjs.tsbuildinfo tsconfig.es.tsbuildinfo tsconfig.types.tsbuildinfo","extract:docs":"api-extractor run --local","generate:client":"node ../../scripts/generate-clients/single-service --solo secrets-manager",test:"yarn g:vitest run --passWithNoTests","test:index":"tsc --noEmit ./test/index-types.ts && node ./test/index-objects.spec.mjs","test:integration":"yarn g:vitest run --passWithNoTests -c vitest.config.integ.mts","test:integration:watch":"yarn g:vitest run --passWithNoTests -c vitest.config.integ.mts","test:watch":"yarn g:vitest watch --passWithNoTests"},main:"./dist-cjs/index.js",types:"./dist-types/index.d.ts",module:"./dist-es/index.js",sideEffects:!1,dependencies:{"@aws-crypto/sha256-browser":"5.2.0","@aws-crypto/sha256-js":"5.2.0","@aws-sdk/core":"^3.973.18","@aws-sdk/credential-provider-node":"^3.972.18","@aws-sdk/middleware-host-header":"^3.972.7","@aws-sdk/middleware-logger":"^3.972.7","@aws-sdk/middleware-recursion-detection":"^3.972.7","@aws-sdk/middleware-user-agent":"^3.972.19","@aws-sdk/region-config-resolver":"^3.972.7","@aws-sdk/types":"^3.973.5","@aws-sdk/util-endpoints":"^3.996.4","@aws-sdk/util-user-agent-browser":"^3.972.7","@aws-sdk/util-user-agent-node":"^3.973.4","@smithy/config-resolver":"^4.4.10","@smithy/core":"^3.23.8","@smithy/fetch-http-handler":"^5.3.13","@smithy/hash-node":"^4.2.11","@smithy/invalid-dependency":"^4.2.11","@smithy/middleware-content-length":"^4.2.11","@smithy/middleware-endpoint":"^4.4.22","@smithy/middleware-retry":"^4.4.39","@smithy/middleware-serde":"^4.2.12","@smithy/middleware-stack":"^4.2.11","@smithy/node-config-provider":"^4.3.11","@smithy/node-http-handler":"^4.4.14","@smithy/protocol-http":"^5.3.11","@smithy/smithy-client":"^4.12.2","@smithy/types":"^4.13.0","@smithy/url-parser":"^4.2.11","@smithy/util-base64":"^4.3.2","@smithy/util-body-length-browser":"^4.2.2","@smithy/util-body-length-node":"^4.2.3","@smithy/util-defaults-mode-browser":"^4.3.38","@smithy/util-defaults-mode-node":"^4.2.41","@smithy/util-endpoints":"^3.3.2","@smithy/util-middleware":"^4.2.11","@smithy/util-retry":"^4.2.11","@smithy/util-utf8":"^4.2.2",tslib:"^2.6.2"},devDependencies:{"@smithy/snapshot-testing":"^1.0.9","@tsconfig/node20":"20.1.8","@types/node":"^20.14.8",concurrently:"7.0.0","downlevel-dts":"0.10.1",premove:"4.0.0",typescript:"~5.8.3",vitest:"^4.0.17"},engines:{node:">=20.0.0"},typesVersions:{"<4.5":{"dist-types/*":["dist-types/ts3.4/*"]}},files:["dist-*/**"],author:{name:"AWS SDK for JavaScript Team",url:"https://aws.amazon.com/javascript/"},license:"Apache-2.0",browser:{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.browser"},"react-native":{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.native"},homepage:"https://github.com/aws/aws-sdk-js-v3/tree/main/clients/client-secrets-manager",repository:{type:"git",url:"https://github.com/aws/aws-sdk-js-v3.git",directory:"clients/client-secrets-manager"}}});var iK=b(Dl=>{"use strict";var nAt=(Ko(),ue(Ga)),sAt=require("@smithy/property-provider"),sAe="AWS_ACCESS_KEY_ID",oAe="AWS_SECRET_ACCESS_KEY",iAe="AWS_SESSION_TOKEN",aAe="AWS_CREDENTIAL_EXPIRATION",cAe="AWS_CREDENTIAL_SCOPE",uAe="AWS_ACCOUNT_ID",oAt=t=>async()=>{t?.logger?.debug("@aws-sdk/credential-provider-env - fromEnv");let e=process.env[sAe],r=process.env[oAe],n=process.env[iAe],s=process.env[aAe],o=process.env[cAe],i=process.env[uAe];if(e&&r){let a={accessKeyId:e,secretAccessKey:r,...n&&{sessionToken:n},...s&&{expiration:new Date(s)},...o&&{credentialScope:o},...i&&{accountId:i}};return nAt.setCredentialFeature(a,"CREDENTIALS_ENV_VARS","g"),a}throw new sAt.CredentialsProviderError("Unable to find environment variable credentials.",{logger:t?.logger})};Dl.ENV_ACCOUNT_ID=uAe;Dl.ENV_CREDENTIAL_SCOPE=cAe;Dl.ENV_EXPIRATION=aAe;Dl.ENV_KEY=sAe;Dl.ENV_SECRET=oAe;Dl.ENV_SESSION=iAe;Dl.fromEnv=oAt});var lAe=b(nk=>{"use strict";Object.defineProperty(nk,"__esModule",{value:!0});nk.checkUrl=void 0;var iAt=require("@smithy/property-provider"),aAt="169.254.170.2",cAt="169.254.170.23",uAt="[fd00:ec2::23]",lAt=(t,e)=>{if(t.protocol!=="https:"&&!(t.hostname===aAt||t.hostname===cAt||t.hostname===uAt)){if(t.hostname.includes("[")){if(t.hostname==="[::1]"||t.hostname==="[0000:0000:0000:0000:0000:0000:0000:0001]")return}else{if(t.hostname==="localhost")return;let r=t.hostname.split("."),n=s=>{let o=parseInt(s,10);return 0<=o&&o<=255};if(r[0]==="127"&&n(r[1])&&n(r[2])&&n(r[3])&&r.length===4)return}throw new iAt.CredentialsProviderError(`URL not accepted. It must either be HTTPS or match one of the following: - - loopback CIDR 127.0.0.0/8 or [::1/128] - - ECS container host 169.254.170.2 - - EKS container host 169.254.170.23 or [fd00:ec2::23]`,{logger:e})}};nk.checkUrl=lAt});var dAe=b(sk=>{"use strict";Object.defineProperty(sk,"__esModule",{value:!0});sk.createGetRequest=gAt;sk.getCredentials=fAt;var aK=require("@smithy/property-provider"),dAt=require("@smithy/protocol-http"),pAt=require("@smithy/smithy-client"),mAt=require("@smithy/util-stream");function gAt(t){return new dAt.HttpRequest({protocol:t.protocol,hostname:t.hostname,port:Number(t.port),path:t.pathname,query:Array.from(t.searchParams.entries()).reduce((e,[r,n])=>(e[r]=n,e),{}),fragment:t.hash})}async function fAt(t,e){let n=await(0,mAt.sdkStreamMixin)(t.body).transformToString();if(t.statusCode===200){let s=JSON.parse(n);if(typeof s.AccessKeyId!="string"||typeof s.SecretAccessKey!="string"||typeof s.Token!="string"||typeof s.Expiration!="string")throw new aK.CredentialsProviderError("HTTP credential provider response not of the required format, an object matching: { AccessKeyId: string, SecretAccessKey: string, Token: string, Expiration: string(rfc3339) }",{logger:e});return{accessKeyId:s.AccessKeyId,secretAccessKey:s.SecretAccessKey,sessionToken:s.Token,expiration:(0,pAt.parseRfc3339DateTime)(s.Expiration)}}if(t.statusCode>=400&&t.statusCode<500){let s={};try{s=JSON.parse(n)}catch{}throw Object.assign(new aK.CredentialsProviderError(`Server responded with status: ${t.statusCode}`,{logger:e}),{Code:s.Code,Message:s.Message})}throw new aK.CredentialsProviderError(`Server responded with status: ${t.statusCode}`,{logger:e})}});var pAe=b(ok=>{"use strict";Object.defineProperty(ok,"__esModule",{value:!0});ok.retryWrapper=void 0;var hAt=(t,e,r)=>async()=>{for(let n=0;nsetTimeout(o,r))}return await t()};ok.retryWrapper=hAt});var fAe=b(ik=>{"use strict";Object.defineProperty(ik,"__esModule",{value:!0});ik.fromHttp=void 0;var SAt=require("tslib"),EAt=(Ko(),ue(Ga)),yAt=require("@smithy/node-http-handler"),mAe=require("@smithy/property-provider"),_At=SAt.__importDefault(require("node:fs/promises")),CAt=lAe(),gAe=dAe(),RAt=pAe(),vAt="AWS_CONTAINER_CREDENTIALS_RELATIVE_URI",xAt="http://169.254.170.2",PAt="AWS_CONTAINER_CREDENTIALS_FULL_URI",bAt="AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE",IAt="AWS_CONTAINER_AUTHORIZATION_TOKEN",AAt=(t={})=>{t.logger?.debug("@aws-sdk/credential-provider-http - fromHttp");let e,r=t.awsContainerCredentialsRelativeUri??process.env[vAt],n=t.awsContainerCredentialsFullUri??process.env[PAt],s=t.awsContainerAuthorizationToken??process.env[IAt],o=t.awsContainerAuthorizationTokenFile??process.env[bAt],i=t.logger?.constructor?.name==="NoOpLogger"||!t.logger?.warn?console.warn:t.logger.warn.bind(t.logger);if(r&&n&&(i("@aws-sdk/credential-provider-http: you have set both awsContainerCredentialsRelativeUri and awsContainerCredentialsFullUri."),i("awsContainerCredentialsFullUri will take precedence.")),s&&o&&(i("@aws-sdk/credential-provider-http: you have set both awsContainerAuthorizationToken and awsContainerAuthorizationTokenFile."),i("awsContainerAuthorizationToken will take precedence.")),n)e=n;else if(r)e=`${xAt}${r}`;else throw new mAe.CredentialsProviderError(`No HTTP credential provider host provided. -Set AWS_CONTAINER_CREDENTIALS_FULL_URI or AWS_CONTAINER_CREDENTIALS_RELATIVE_URI.`,{logger:t.logger});let a=new URL(e);(0,CAt.checkUrl)(a,t.logger);let c=yAt.NodeHttpHandler.create({requestTimeout:t.timeout??1e3,connectionTimeout:t.timeout??1e3});return(0,RAt.retryWrapper)(async()=>{let u=(0,gAe.createGetRequest)(a);s?u.headers.Authorization=s:o&&(u.headers.Authorization=(await _At.default.readFile(o)).toString());try{let l=await c.handle(u);return(0,gAe.getCredentials)(l.response).then(d=>(0,EAt.setCredentialFeature)(d,"CREDENTIALS_HTTP","z"))}catch(l){throw new mAe.CredentialsProviderError(String(l),{logger:t.logger})}},t.maxRetries??3,t.timeout??1e3)};ik.fromHttp=AAt});var cK=b(ak=>{"use strict";Object.defineProperty(ak,"__esModule",{value:!0});ak.fromHttp=void 0;var TAt=fAe();Object.defineProperty(ak,"fromHttp",{enumerable:!0,get:function(){return TAt.fromHttp}})});var fC=b(gC=>{"use strict";var wAt=require("@smithy/protocol-http");function DAt(t){return t}var hAe=t=>e=>async r=>{if(!wAt.HttpRequest.isInstance(r.request))return e(r);let{request:n}=r,{handlerProtocol:s=""}=t.requestHandler.metadata||{};if(s.indexOf("h2")>=0&&!n.headers[":authority"])delete n.headers.host,n.headers[":authority"]=n.hostname+(n.port?":"+n.port:"");else if(!n.headers.host){let o=n.hostname;n.port!=null&&(o+=`:${n.port}`),n.headers.host=o}return e(r)},SAe={name:"hostHeaderMiddleware",step:"build",priority:"low",tags:["HOST"],override:!0},OAt=t=>({applyToStack:e=>{e.add(hAe(t),SAe)}});gC.getHostHeaderPlugin=OAt;gC.hostHeaderMiddleware=hAe;gC.hostHeaderMiddlewareOptions=SAe;gC.resolveHostHeaderConfig=DAt});var hC=b(ck=>{"use strict";var EAe=()=>(t,e)=>async r=>{try{let n=await t(r),{clientName:s,commandName:o,logger:i,dynamoDbDocumentClientOptions:a={}}=e,{overrideInputFilterSensitiveLog:c,overrideOutputFilterSensitiveLog:u}=a,l=c??e.inputFilterSensitiveLog,d=u??e.outputFilterSensitiveLog,{$metadata:p,...g}=n.output;return i?.info?.({clientName:s,commandName:o,input:l(r.input),output:d(g),metadata:p}),n}catch(n){let{clientName:s,commandName:o,logger:i,dynamoDbDocumentClientOptions:a={}}=e,{overrideInputFilterSensitiveLog:c}=a,u=c??e.inputFilterSensitiveLog;throw i?.error?.({clientName:s,commandName:o,input:u(r.input),error:n,metadata:n.$metadata}),n}},yAe={name:"loggerMiddleware",tags:["LOGGER"],step:"initialize",override:!0},kAt=t=>({applyToStack:e=>{e.add(EAe(),yAe)}});ck.getLoggerPlugin=kAt;ck.loggerMiddleware=EAe;ck.loggerMiddlewareOptions=yAe});var _Ae=b(uk=>{"use strict";Object.defineProperty(uk,"__esModule",{value:!0});uk.recursionDetectionMiddleware=void 0;var NAt=require("@aws/lambda-invoke-store"),LAt=require("@smithy/protocol-http"),uK="X-Amzn-Trace-Id",MAt="AWS_LAMBDA_FUNCTION_NAME",FAt="_X_AMZN_TRACE_ID",BAt=()=>t=>async e=>{let{request:r}=e;if(!LAt.HttpRequest.isInstance(r))return t(e);let n=Object.keys(r.headers??{}).find(l=>l.toLowerCase()===uK.toLowerCase())??uK;if(r.headers.hasOwnProperty(n))return t(e);let s=process.env[MAt],o=process.env[FAt],c=(await NAt.InvokeStore.getInstanceAsync())?.getXRayTraceId()??o,u=l=>typeof l=="string"&&l.length>0;return u(s)&&u(c)&&(r.headers[uK]=c),t({...e,request:r})};uk.recursionDetectionMiddleware=BAt});var EC=b(Ff=>{"use strict";var SC=_Ae(),UAt={step:"build",tags:["RECURSION_DETECTION"],name:"recursionDetectionMiddleware",override:!0,priority:"low"},qAt=t=>({applyToStack:e=>{e.add(SC.recursionDetectionMiddleware(),UAt)}});Ff.getRecursionDetectionPlugin=qAt;Object.prototype.hasOwnProperty.call(SC,"__proto__")&&!Object.prototype.hasOwnProperty.call(Ff,"__proto__")&&Object.defineProperty(Ff,"__proto__",{enumerable:!0,value:SC.__proto__});Object.keys(SC).forEach(function(t){t!=="default"&&!Object.prototype.hasOwnProperty.call(Ff,t)&&(Ff[t]=SC[t])})});var Uf=b(zi=>{"use strict";var Bf=require("@smithy/util-endpoints"),$At=require("@smithy/url-parser"),RAe=(t,e=!1)=>{if(e){for(let r of t.split("."))if(!RAe(r))return!1;return!0}return!(!Bf.isValidHostLabel(t)||t.length<3||t.length>63||t!==t.toLowerCase()||Bf.isIpAddress(t))},CAe=":",GAt="/",jAt=t=>{let e=t.split(CAe);if(e.length<6)return null;let[r,n,s,o,i,...a]=e;if(r!=="arn"||n===""||s===""||a.join(CAe)==="")return null;let c=a.map(u=>u.split(GAt)).flat();return{partition:n,service:s,region:o,accountId:i,resourceId:c}},VAt=[{id:"aws",outputs:{dnsSuffix:"amazonaws.com",dualStackDnsSuffix:"api.aws",implicitGlobalRegion:"us-east-1",name:"aws",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^(us|eu|ap|sa|ca|me|af|il|mx)\\-\\w+\\-\\d+$",regions:{"af-south-1":{description:"Africa (Cape Town)"},"ap-east-1":{description:"Asia Pacific (Hong Kong)"},"ap-east-2":{description:"Asia Pacific (Taipei)"},"ap-northeast-1":{description:"Asia Pacific (Tokyo)"},"ap-northeast-2":{description:"Asia Pacific (Seoul)"},"ap-northeast-3":{description:"Asia Pacific (Osaka)"},"ap-south-1":{description:"Asia Pacific (Mumbai)"},"ap-south-2":{description:"Asia Pacific (Hyderabad)"},"ap-southeast-1":{description:"Asia Pacific (Singapore)"},"ap-southeast-2":{description:"Asia Pacific (Sydney)"},"ap-southeast-3":{description:"Asia Pacific (Jakarta)"},"ap-southeast-4":{description:"Asia Pacific (Melbourne)"},"ap-southeast-5":{description:"Asia Pacific (Malaysia)"},"ap-southeast-6":{description:"Asia Pacific (New Zealand)"},"ap-southeast-7":{description:"Asia Pacific (Thailand)"},"aws-global":{description:"aws global region"},"ca-central-1":{description:"Canada (Central)"},"ca-west-1":{description:"Canada West (Calgary)"},"eu-central-1":{description:"Europe (Frankfurt)"},"eu-central-2":{description:"Europe (Zurich)"},"eu-north-1":{description:"Europe (Stockholm)"},"eu-south-1":{description:"Europe (Milan)"},"eu-south-2":{description:"Europe (Spain)"},"eu-west-1":{description:"Europe (Ireland)"},"eu-west-2":{description:"Europe (London)"},"eu-west-3":{description:"Europe (Paris)"},"il-central-1":{description:"Israel (Tel Aviv)"},"me-central-1":{description:"Middle East (UAE)"},"me-south-1":{description:"Middle East (Bahrain)"},"mx-central-1":{description:"Mexico (Central)"},"sa-east-1":{description:"South America (Sao Paulo)"},"us-east-1":{description:"US East (N. Virginia)"},"us-east-2":{description:"US East (Ohio)"},"us-west-1":{description:"US West (N. California)"},"us-west-2":{description:"US West (Oregon)"}}},{id:"aws-cn",outputs:{dnsSuffix:"amazonaws.com.cn",dualStackDnsSuffix:"api.amazonwebservices.com.cn",implicitGlobalRegion:"cn-northwest-1",name:"aws-cn",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^cn\\-\\w+\\-\\d+$",regions:{"aws-cn-global":{description:"aws-cn global region"},"cn-north-1":{description:"China (Beijing)"},"cn-northwest-1":{description:"China (Ningxia)"}}},{id:"aws-eusc",outputs:{dnsSuffix:"amazonaws.eu",dualStackDnsSuffix:"api.amazonwebservices.eu",implicitGlobalRegion:"eusc-de-east-1",name:"aws-eusc",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^eusc\\-(de)\\-\\w+\\-\\d+$",regions:{"eusc-de-east-1":{description:"AWS European Sovereign Cloud (Germany)"}}},{id:"aws-iso",outputs:{dnsSuffix:"c2s.ic.gov",dualStackDnsSuffix:"api.aws.ic.gov",implicitGlobalRegion:"us-iso-east-1",name:"aws-iso",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^us\\-iso\\-\\w+\\-\\d+$",regions:{"aws-iso-global":{description:"aws-iso global region"},"us-iso-east-1":{description:"US ISO East"},"us-iso-west-1":{description:"US ISO WEST"}}},{id:"aws-iso-b",outputs:{dnsSuffix:"sc2s.sgov.gov",dualStackDnsSuffix:"api.aws.scloud",implicitGlobalRegion:"us-isob-east-1",name:"aws-iso-b",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^us\\-isob\\-\\w+\\-\\d+$",regions:{"aws-iso-b-global":{description:"aws-iso-b global region"},"us-isob-east-1":{description:"US ISOB East (Ohio)"},"us-isob-west-1":{description:"US ISOB West"}}},{id:"aws-iso-e",outputs:{dnsSuffix:"cloud.adc-e.uk",dualStackDnsSuffix:"api.cloud-aws.adc-e.uk",implicitGlobalRegion:"eu-isoe-west-1",name:"aws-iso-e",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^eu\\-isoe\\-\\w+\\-\\d+$",regions:{"aws-iso-e-global":{description:"aws-iso-e global region"},"eu-isoe-west-1":{description:"EU ISOE West"}}},{id:"aws-iso-f",outputs:{dnsSuffix:"csp.hci.ic.gov",dualStackDnsSuffix:"api.aws.hci.ic.gov",implicitGlobalRegion:"us-isof-south-1",name:"aws-iso-f",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^us\\-isof\\-\\w+\\-\\d+$",regions:{"aws-iso-f-global":{description:"aws-iso-f global region"},"us-isof-east-1":{description:"US ISOF EAST"},"us-isof-south-1":{description:"US ISOF SOUTH"}}},{id:"aws-us-gov",outputs:{dnsSuffix:"amazonaws.com",dualStackDnsSuffix:"api.aws",implicitGlobalRegion:"us-gov-west-1",name:"aws-us-gov",supportsDualStack:!0,supportsFIPS:!0},regionRegex:"^us\\-gov\\-\\w+\\-\\d+$",regions:{"aws-us-gov-global":{description:"aws-us-gov global region"},"us-gov-east-1":{description:"AWS GovCloud (US-East)"},"us-gov-west-1":{description:"AWS GovCloud (US-West)"}}}],HAt="1.1",vAe={partitions:VAt,version:HAt},xAe=vAe,PAe="",bAe=t=>{let{partitions:e}=xAe;for(let n of e){let{regions:s,outputs:o}=n;for(let[i,a]of Object.entries(s))if(i===t)return{...o,...a}}for(let n of e){let{regionRegex:s,outputs:o}=n;if(new RegExp(s).test(t))return{...o}}let r=e.find(n=>n.id==="aws");if(!r)throw new Error("Provided region was not found in the partition array or regex, and default partition with id 'aws' doesn't exist.");return{...r.outputs}},IAe=(t,e="")=>{xAe=t,PAe=e},zAt=()=>{IAe(vAe,"")},WAt=()=>PAe,AAe={isVirtualHostableS3Bucket:RAe,parseArn:jAt,partition:bAe};Bf.customEndpointFunctions.aws=AAe;var KAt=t=>{if(typeof t.endpointProvider!="function")throw new Error("@aws-sdk/util-endpoint - endpointProvider and endpoint missing in config for this client.");let{endpoint:e}=t;return e===void 0&&(t.endpoint=async()=>TAe(t.endpointProvider({Region:typeof t.region=="function"?await t.region():t.region,UseDualStack:typeof t.useDualstackEndpoint=="function"?await t.useDualstackEndpoint():t.useDualstackEndpoint,UseFIPS:typeof t.useFipsEndpoint=="function"?await t.useFipsEndpoint():t.useFipsEndpoint,Endpoint:void 0},{logger:t.logger}))),t},TAe=t=>$At.parseUrl(t.url);zi.EndpointError=Bf.EndpointError;zi.isIpAddress=Bf.isIpAddress;zi.resolveEndpoint=Bf.resolveEndpoint;zi.awsEndpointFunctions=AAe;zi.getUserAgentPrefix=WAt;zi.partition=bAe;zi.resolveDefaultAwsRegionalEndpointsConfig=KAt;zi.setPartitionInfo=IAe;zi.toEndpointV1=TAe;zi.useDefaultPartitionInfo=zAt});var lk,Kc,wAe=_(()=>{lk={warningEmitted:!1},Kc=t=>{if(t&&!lk.warningEmitted){if(process.env.AWS_SDK_JS_NODE_VERSION_SUPPORT_WARNING_DISABLED==="true"){lk.warningEmitted=!0;return}let e=parseInt(t.substring(1,t.indexOf("."))),r=22;e=${r}. You are running node ${t}. - -To continue receiving updates to AWS services, bug fixes, -and security updates please upgrade to node >=${r}. - -More information can be found at: https://a.co/c895JFp`))}}});var QAt,XAt,DAe,OAe=_(()=>{QAt=()=>(t,e)=>async r=>(e.__retryLongPoll=!0,t(r)),XAt={name:"longPollMiddleware",tags:["RETRY"],step:"initialize",override:!0},DAe=t=>({applyToStack:e=>{e.add(QAt(),XAt)}})});function hp(t,e,r){return t.$source||(t.$source={}),t.$source[e]=r,t}var kAe=_(()=>{});function JAt(t,e,r){t.__aws_sdk_context?t.__aws_sdk_context.features||(t.__aws_sdk_context.features={}):t.__aws_sdk_context={features:{}},t.__aws_sdk_context.features[e]=r}var NAe,LAe=_(()=>{NAe=require("@smithy/util-retry");NAe.Retry.v2026||=typeof process=="object"&&process.env?.AWS_NEW_RETRIES_2026==="true"});function YAt(t,e,r){return t.$source||(t.$source={}),t.$source[e]=r,t}var MAe=_(()=>{});var lK={};wt(lK,{emitWarningIfUnsupportedVersion:()=>Kc,getLongPollPlugin:()=>DAe,setCredentialFeature:()=>hp,setFeature:()=>JAt,setTokenFeature:()=>YAt,state:()=>lk});var Qc=_(()=>{wAe();OAe();kAe();LAe();MAe()});var $f=b(qf=>{"use strict";var ZAt=require("@smithy/core"),eTt=Uf(),tTt=require("@smithy/protocol-http"),Xc=(Qc(),ue(lK)),FAe=require("@smithy/util-retry"),$Ae=void 0;function rTt(t){return t===void 0?!0:typeof t=="string"&&t.length<=50}function nTt(t){let e=ZAt.normalizeProvider(t.userAgentAppId??$Ae),{customUserAgent:r}=t;return Object.assign(t,{customUserAgent:typeof r=="string"?[[r]]:r,userAgentAppId:async()=>{let n=await e();if(!rTt(n)){let s=t.logger?.constructor?.name==="NoOpLogger"||!t.logger?console:t.logger;typeof n!="string"?s?.warn("userAgentAppId must be a string or undefined."):n.length>50&&s?.warn("The provided userAgentAppId exceeds the maximum length of 50 characters.")}return n}})}var sTt=/\d{12}\.ddb/;async function oTt(t,e,r){if(r.request?.headers?.["smithy-protocol"]==="rpc-v2-cbor"&&Xc.setFeature(t,"PROTOCOL_RPC_V2_CBOR","M"),typeof e.retryStrategy=="function"){let o=await e.retryStrategy();if(typeof o.mode=="string")switch(o.mode){case FAe.RETRY_MODES.ADAPTIVE:Xc.setFeature(t,"RETRY_MODE_ADAPTIVE","F");break;case FAe.RETRY_MODES.STANDARD:Xc.setFeature(t,"RETRY_MODE_STANDARD","E");break}}if(typeof e.accountIdEndpointMode=="function"){let o=t.endpointV2;switch(String(o?.url?.hostname).match(sTt)&&Xc.setFeature(t,"ACCOUNT_ID_ENDPOINT","O"),await e.accountIdEndpointMode?.()){case"disabled":Xc.setFeature(t,"ACCOUNT_ID_MODE_DISABLED","Q");break;case"preferred":Xc.setFeature(t,"ACCOUNT_ID_MODE_PREFERRED","P");break;case"required":Xc.setFeature(t,"ACCOUNT_ID_MODE_REQUIRED","R");break}}let s=t.__smithy_context?.selectedHttpAuthScheme?.identity;if(s?.$source){let o=s;o.accountId&&Xc.setFeature(t,"RESOLVED_ACCOUNT_ID","T");for(let[i,a]of Object.entries(o.$source??{}))Xc.setFeature(t,i,a)}}var BAe="user-agent",dK="x-amz-user-agent",UAe=" ",pK="/",iTt=/[^!$%&'*+\-.^_`|~\w]/g,aTt=/[^!$%&'*+\-.^_`|~\w#]/g,qAe="-",cTt=1024;function uTt(t){let e="";for(let r in t){let n=t[r];if(e.length+n.length+1<=cTt){e.length?e+=","+n:e+=n;continue}break}return e}var GAe=t=>(e,r)=>async n=>{let{request:s}=n;if(!tTt.HttpRequest.isInstance(s))return e(n);let{headers:o}=s,i=r?.userAgent?.map(dk)||[],a=(await t.defaultUserAgentProvider()).map(dk);await oTt(r,t,n);let c=r;a.push(`m/${uTt(Object.assign({},r.__smithy_context?.features,c.__aws_sdk_context?.features))}`);let u=t?.customUserAgent?.map(dk)||[],l=await t.userAgentAppId();l&&a.push(dk(["app",`${l}`]));let d=eTt.getUserAgentPrefix(),p=(d?[d]:[]).concat([...a,...i,...u]).join(UAe),g=[...a.filter(y=>y.startsWith("aws-sdk-")),...u].join(UAe);return t.runtime!=="browser"?(g&&(o[dK]=o[dK]?`${o[BAe]} ${g}`:g),o[BAe]=p):o[dK]=p,e({...n,request:s})},dk=t=>{let e=t[0].split(pK).map(i=>i.replace(iTt,qAe)).join(pK),r=t[1]?.replace(aTt,qAe),n=e.indexOf(pK),s=e.substring(0,n),o=e.substring(n+1);return s==="api"&&(o=o.toLowerCase()),[s,o,r].filter(i=>i&&i.length>0).reduce((i,a,c)=>{switch(c){case 0:return a;case 1:return`${i}/${a}`;default:return`${i}#${a}`}},"")},jAe={name:"getUserAgentMiddleware",step:"build",priority:"low",tags:["SET_USER_AGENT","USER_AGENT"],override:!0},lTt=t=>({applyToStack:e=>{e.add(GAe(t),jAe)}});qf.DEFAULT_UA_APP_ID=$Ae;qf.getUserAgentMiddlewareOptions=jAe;qf.getUserAgentPlugin=lTt;qf.resolveUserAgentConfig=nTt;qf.userAgentMiddleware=GAe});var VAe,mK,HAe=_(()=>{VAe=require("@smithy/protocol-http"),mK=t=>VAe.HttpResponse.isInstance(t)?t.headers?.date??t.headers?.Date:void 0});var Gf,gK=_(()=>{Gf=t=>new Date(Date.now()+t)});var zAe,WAe=_(()=>{gK();zAe=(t,e)=>Math.abs(Gf(e).getTime()-t)>=3e5});var fK,KAe=_(()=>{WAe();fK=(t,e)=>{let r=Date.parse(t);return zAe(r,e)?r-Date.now():e}});var hK=_(()=>{HAe();gK();KAe()});var QAe,yC,pk,Zn,SK=_(()=>{QAe=require("@smithy/protocol-http");hK();yC=(t,e)=>{if(!e)throw new Error(`Property \`${t}\` is not resolved for AWS SDK SigV4Auth`);return e},pk=async t=>{let e=yC("context",t.context),r=yC("config",t.config),n=e.endpointV2?.properties?.authSchemes?.[0],o=await yC("signer",r.signer)(n),i=t?.signingRegion,a=t?.signingRegionSet,c=t?.signingName;return{config:r,signer:o,signingRegion:i,signingRegionSet:a,signingName:c}},Zn=class{async sign(e,r,n){if(!QAe.HttpRequest.isInstance(e))throw new Error("The request is not an instance of `HttpRequest` and cannot be signed");let s=await pk(n),{config:o,signer:i}=s,{signingRegion:a,signingName:c}=s,u=n.context;if(u?.authSchemes?.length??!1){let[d,p]=u.authSchemes;d?.name==="sigv4a"&&p?.name==="sigv4"&&(a=p?.signingRegion??a,c=p?.signingName??c)}return await i.sign(e,{signingDate:Gf(o.systemClockOffset),signingRegion:a,signingService:c})}errorHandler(e){return r=>{let n=r.ServerTime??mK(r.$response);if(n){let s=yC("config",e.config),o=s.systemClockOffset;s.systemClockOffset=fK(n,s.systemClockOffset),s.systemClockOffset!==o&&r.$metadata&&(r.$metadata.clockSkewCorrected=!0)}throw r}}successHandler(e,r){let n=mK(e);if(n){let s=yC("config",r.config);s.systemClockOffset=fK(n,s.systemClockOffset)}}}});var XAe,Sp,JAe=_(()=>{XAe=require("@smithy/protocol-http");hK();SK();Sp=class extends Zn{async sign(e,r,n){if(!XAe.HttpRequest.isInstance(e))throw new Error("The request is not an instance of `HttpRequest` and cannot be signed");let{config:s,signer:o,signingRegion:i,signingRegionSet:a,signingName:c}=await pk(n),l=(await s.sigv4aSigningRegionSet?.()??a??[i]).join(",");return await o.sign(e,{signingDate:Gf(s.systemClockOffset),signingRegion:l,signingService:c})}}});var EK,YAe=_(()=>{EK=t=>typeof t=="string"&&t.length>0?t.split(",").map(e=>e.trim()):[]});var ZAe,yK=_(()=>{ZAe=t=>`AWS_BEARER_TOKEN_${t.replace(/[\s-]/g,"_").toUpperCase()}`});var eTe,tTe,Ol,rTe=_(()=>{YAe();yK();eTe="AWS_AUTH_SCHEME_PREFERENCE",tTe="auth_scheme_preference",Ol={environmentVariableSelector:(t,e)=>{if(e?.signingName&&ZAe(e.signingName)in t)return["httpBearerAuth"];if(eTe in t)return EK(t[eTe])},configFileSelector:t=>{if(tTe in t)return EK(t[tTe])},default:[]}});var nTe,_K,sTe,oTe,iTe=_(()=>{nTe=require("@smithy/core"),_K=require("@smithy/property-provider"),sTe=t=>(t.sigv4aSigningRegionSet=(0,nTe.normalizeProvider)(t.sigv4aSigningRegionSet),t),oTe={environmentVariableSelector(t){if(t.AWS_SIGV4A_SIGNING_REGION_SET)return t.AWS_SIGV4A_SIGNING_REGION_SET.split(",").map(e=>e.trim());throw new _K.ProviderError("AWS_SIGV4A_SIGNING_REGION_SET not set in env.",{tryNextLink:!0})},configFileSelector(t){if(t.sigv4a_signing_region_set)return(t.sigv4a_signing_region_set??"").split(",").map(e=>e.trim());throw new _K.ProviderError("sigv4a_signing_region_set not set in profile.",{tryNextLink:!0})},default:void 0}});function dTt(t,{credentials:e,credentialDefaultProvider:r}){let n;return e?e?.memoized?n=e:n=(0,Wi.memoizeIdentityProvider)(e,Wi.isIdentityExpired,Wi.doesIdentityRequireRefresh):r?n=(0,Wi.normalizeProvider)(r(Object.assign({},t,{parentClientConfig:t}))):n=async()=>{throw new Error("@aws-sdk/core::resolveAwsSdkSigV4Config - `credentials` not provided and no credentialDefaultProvider was configured.")},n.memoized=!0,n}function pTt(t,e){if(e.configBound)return e;let r=async n=>e({...n,callerClientConfig:t});return r.memoized=e.memoized,r.configBound=!0,r}var Wi,CK,kl,aTe=_(()=>{Qc();Wi=require("@smithy/core"),CK=require("@smithy/signature-v4"),kl=t=>{let e=t.credentials,r=!!t.credentials,n;Object.defineProperty(t,"credentials",{set(u){u&&u!==e&&u!==n&&(r=!0),e=u;let l=dTt(t,{credentials:e,credentialDefaultProvider:t.credentialDefaultProvider}),d=pTt(t,l);if(r&&!d.attributed){let p=typeof e=="object"&&e!==null;n=async g=>{let R=await d(g);return p&&(!R.$source||Object.keys(R.$source).length===0)?hp(R,"CREDENTIALS_CODE","e"):R},n.memoized=d.memoized,n.configBound=d.configBound,n.attributed=!0}else n=d},get(){return n},enumerable:!0,configurable:!0}),t.credentials=e;let{signingEscapePath:s=!0,systemClockOffset:o=t.systemClockOffset||0,sha256:i}=t,a;return t.signer?a=(0,Wi.normalizeProvider)(t.signer):t.regionInfoProvider?a=()=>(0,Wi.normalizeProvider)(t.region)().then(async u=>[await t.regionInfoProvider(u,{useFipsEndpoint:await t.useFipsEndpoint(),useDualstackEndpoint:await t.useDualstackEndpoint()})||{},u]).then(([u,l])=>{let{signingRegion:d,signingService:p}=u;t.signingRegion=t.signingRegion||d||l,t.signingName=t.signingName||p||t.serviceId;let g={...t,credentials:t.credentials,region:t.signingRegion,service:t.signingName,sha256:i,uriEscapePath:s},y=t.signerConstructor||CK.SignatureV4;return new y(g)}):a=async u=>{u=Object.assign({},{name:"sigv4",signingName:t.signingName||t.defaultSigningName,signingRegion:await(0,Wi.normalizeProvider)(t.region)(),properties:{}},u);let l=u.signingRegion,d=u.signingName;t.signingRegion=t.signingRegion||l,t.signingName=t.signingName||d||t.serviceId;let p={...t,credentials:t.credentials,region:t.signingRegion,service:t.signingName,sha256:i,uriEscapePath:s},g=t.signerConstructor||CK.SignatureV4;return new g(p)},Object.assign(t,{systemClockOffset:o,signingEscapePath:s,signer:a})}});var cTe=_(()=>{SK();JAe();rTe();iTe();aTe()});var io=_(()=>{cTe();yK()});function mTt(t){return{schemeId:"aws.auth#sigv4",signingProperties:{name:"sso-oauth",region:t.region},propertiesExtractor:(e,r)=>({signingProperties:{config:e,context:r}})}}function gTt(t){return{schemeId:"smithy.api#noAuth"}}var _C,uTe,lTe,dTe,RK=_(()=>{io();_C=require("@smithy/util-middleware"),uTe=async(t,e,r)=>({operation:(0,_C.getSmithyContext)(e).operation,region:await(0,_C.normalizeProvider)(t.region)()||(()=>{throw new Error("expected `region` to be configured for `aws.auth#sigv4`")})()});lTe=t=>{let e=[];switch(t.operation){case"CreateToken":{e.push(gTt(t));break}default:e.push(mTt(t))}return e},dTe=t=>{let e=kl(t);return Object.assign(e,{authSchemePreference:(0,_C.normalizeProvider)(t.authSchemePreference??[])})}});var pTe,mTe,vK=_(()=>{pTe=t=>Object.assign(t,{useDualstackEndpoint:t.useDualstackEndpoint??!1,useFipsEndpoint:t.useFipsEndpoint??!1,defaultSigningName:"sso-oauth"}),mTe={UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}});var Nl,CC=_(()=>{Nl={name:"@aws-sdk/nested-clients",version:"3.997.6",description:"Nested clients for AWS SDK packages.",main:"./dist-cjs/index.js",module:"./dist-es/index.js",types:"./dist-types/index.d.ts",scripts:{build:"yarn lint && concurrently 'yarn:build:types' 'yarn:build:es' && yarn build:cjs","build:cjs":"node ../../scripts/compilation/inline nested-clients","build:es":"tsc -p tsconfig.es.json","build:include:deps":'yarn g:turbo run build -F="$npm_package_name"',"build:types":"tsc -p tsconfig.types.json","build:types:downlevel":"downlevel-dts dist-types dist-types/ts3.4",clean:"premove dist-cjs dist-es dist-types tsconfig.cjs.tsbuildinfo tsconfig.es.tsbuildinfo tsconfig.types.tsbuildinfo",lint:"node ../../scripts/validation/submodules-linter.js --pkg nested-clients",test:"yarn g:vitest run","test:watch":"yarn g:vitest watch"},engines:{node:">=20.0.0"},sideEffects:!1,author:{name:"AWS SDK for JavaScript Team",url:"https://aws.amazon.com/javascript/"},license:"Apache-2.0",dependencies:{"@aws-crypto/sha256-browser":"5.2.0","@aws-crypto/sha256-js":"5.2.0","@aws-sdk/core":"^3.974.8","@aws-sdk/middleware-host-header":"^3.972.10","@aws-sdk/middleware-logger":"^3.972.10","@aws-sdk/middleware-recursion-detection":"^3.972.11","@aws-sdk/middleware-user-agent":"^3.972.38","@aws-sdk/region-config-resolver":"^3.972.13","@aws-sdk/signature-v4-multi-region":"^3.996.25","@aws-sdk/types":"^3.973.8","@aws-sdk/util-endpoints":"^3.996.8","@aws-sdk/util-user-agent-browser":"^3.972.10","@aws-sdk/util-user-agent-node":"^3.973.24","@smithy/config-resolver":"^4.4.17","@smithy/core":"^3.23.17","@smithy/fetch-http-handler":"^5.3.17","@smithy/hash-node":"^4.2.14","@smithy/invalid-dependency":"^4.2.14","@smithy/middleware-content-length":"^4.2.14","@smithy/middleware-endpoint":"^4.4.32","@smithy/middleware-retry":"^4.5.7","@smithy/middleware-serde":"^4.2.20","@smithy/middleware-stack":"^4.2.14","@smithy/node-config-provider":"^4.3.14","@smithy/node-http-handler":"^4.6.1","@smithy/protocol-http":"^5.3.14","@smithy/smithy-client":"^4.12.13","@smithy/types":"^4.14.1","@smithy/url-parser":"^4.2.14","@smithy/util-base64":"^4.3.2","@smithy/util-body-length-browser":"^4.2.2","@smithy/util-body-length-node":"^4.2.3","@smithy/util-defaults-mode-browser":"^4.3.49","@smithy/util-defaults-mode-node":"^4.2.54","@smithy/util-endpoints":"^3.4.2","@smithy/util-middleware":"^4.2.14","@smithy/util-retry":"^4.3.6","@smithy/util-utf8":"^4.2.2",tslib:"^2.6.2"},devDependencies:{concurrently:"7.0.0","downlevel-dts":"0.10.1",premove:"4.0.0",typescript:"~5.8.3"},typesVersions:{"<4.5":{"dist-types/*":["dist-types/ts3.4/*"]}},files:["./cognito-identity.d.ts","./cognito-identity.js","./signin.d.ts","./signin.js","./sso-oidc.d.ts","./sso-oidc.js","./sso.d.ts","./sso.js","./sts.d.ts","./sts.js","dist-*/**"],browser:{"./dist-es/submodules/cognito-identity/runtimeConfig":"./dist-es/submodules/cognito-identity/runtimeConfig.browser","./dist-es/submodules/signin/runtimeConfig":"./dist-es/submodules/signin/runtimeConfig.browser","./dist-es/submodules/sso-oidc/runtimeConfig":"./dist-es/submodules/sso-oidc/runtimeConfig.browser","./dist-es/submodules/sso/runtimeConfig":"./dist-es/submodules/sso/runtimeConfig.browser","./dist-es/submodules/sts/runtimeConfig":"./dist-es/submodules/sts/runtimeConfig.browser"},"react-native":{},homepage:"https://github.com/aws/aws-sdk-js-v3/tree/main/packages/nested-clients",repository:{type:"git",url:"https://github.com/aws/aws-sdk-js-v3.git",directory:"packages/nested-clients"},exports:{"./package.json":"./package.json","./sso-oidc":{types:"./dist-types/submodules/sso-oidc/index.d.ts",module:"./dist-es/submodules/sso-oidc/index.js",node:"./dist-cjs/submodules/sso-oidc/index.js",import:"./dist-es/submodules/sso-oidc/index.js",require:"./dist-cjs/submodules/sso-oidc/index.js"},"./sts":{types:"./dist-types/submodules/sts/index.d.ts",module:"./dist-es/submodules/sts/index.js",node:"./dist-cjs/submodules/sts/index.js",import:"./dist-es/submodules/sts/index.js",require:"./dist-cjs/submodules/sts/index.js"},"./signin":{types:"./dist-types/submodules/signin/index.d.ts",module:"./dist-es/submodules/signin/index.js",node:"./dist-cjs/submodules/signin/index.js",import:"./dist-es/submodules/signin/index.js",require:"./dist-cjs/submodules/signin/index.js"},"./cognito-identity":{types:"./dist-types/submodules/cognito-identity/index.d.ts",module:"./dist-es/submodules/cognito-identity/index.js",node:"./dist-cjs/submodules/cognito-identity/index.js",import:"./dist-es/submodules/cognito-identity/index.js",require:"./dist-cjs/submodules/cognito-identity/index.js"},"./sso":{types:"./dist-types/submodules/sso/index.d.ts",module:"./dist-es/submodules/sso/index.js",node:"./dist-cjs/submodules/sso/index.js",import:"./dist-es/submodules/sso/index.js",require:"./dist-cjs/submodules/sso/index.js"}}}});var vC=b(Ep=>{"use strict";var gTe=require("node:os"),RC=require("node:process"),fTe=require("@smithy/util-config-provider"),hTe=require("node:fs/promises"),jf=require("node:path"),hTt=$f(),STt=()=>{let t=["deno","bun","llrt"];for(let e of t)if(RC.versions[e])return[`md/${e}`,RC.versions[e]];return["md/nodejs",RC.versions.node]},ETt=t=>{let e=process.cwd();if(!t)return[e];let r=jf.normalize(t),n=r.split(jf.sep),s=n.indexOf("node_modules"),o=s!==-1?n.slice(0,s).join(jf.sep):r;return e===o?[e]:[o,e]},yTt=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*)?$/,STe=(t="")=>{let e=t.match(yTt);if(!e)return;let[r,n,s,o]=[e[1],e[2],e[3],e[4]];return o?`${r}.${n}.${s}-${o}`:`${r}.${n}.${s}`},_Tt=["^","~",">=","<=",">","<"],CTt=["latest","beta","dev","rc","insiders","next"],RTt=(t="")=>{if(CTt.includes(t))return t;let e=_Tt.find(n=>t.startsWith(n))??"",r=STe(t.slice(e.length));if(r)return`${e}${r}`},ja,vTt=jf.join("node_modules","typescript","package.json"),xTt=async()=>{if(ja===null)return;if(typeof ja=="string")return["md/tsc",ja];let t=!1;try{t=fTe.booleanSelector(process.env,"AWS_SDK_JS_TYPESCRIPT_DETECTION_DISABLED",fTe.SelectorType.ENV)||!1}catch{}if(t){ja=null;return}let r=ETt(typeof __dirname<"u"?__dirname:void 0),n;for(let i of r)try{let a=jf.join(i,"package.json"),c=await hTe.readFile(a,"utf-8"),{dependencies:u,devDependencies:l}=JSON.parse(c),d=l?.typescript??u?.typescript;if(typeof d!="string")continue;n=d;break}catch{}if(!n){ja=null;return}let s;for(let i of r)try{let a=jf.join(i,vTt),c=await hTe.readFile(a,"utf-8"),{version:u}=JSON.parse(c),l=STe(u);if(typeof l!="string")continue;s=l;break}catch{}if(s)return ja=s,["md/tsc",ja];let o=RTt(n);if(typeof o!="string"){ja=null;return}return ja=`dev_${o}`,["md/tsc",ja]},ETe={isCrtAvailable:!1},PTt=()=>ETe.isCrtAvailable?["md/crt-avail"]:null,yTe=({serviceId:t,clientVersion:e})=>{let r=STt();return async n=>{let s=[["aws-sdk-js",e],["ua","2.1"],[`os/${gTe.platform()}`,gTe.release()],["lang/js"],r],o=await xTt();o&&s.push(o);let i=PTt();i&&s.push(i),t&&s.push([`api/${t}`,e]),RC.env.AWS_EXECUTION_ENV&&s.push([`exec-env/${RC.env.AWS_EXECUTION_ENV}`]);let a=await n?.userAgentAppId?.();return a?[...s,[`app/${a}`]]:[...s]}},bTt=yTe,_Te="AWS_SDK_UA_APP_ID",CTe="sdk_ua_app_id",ITt="sdk-ua-app-id",ATt={environmentVariableSelector:t=>t[_Te],configFileSelector:t=>t[CTe]??t[ITt],default:hTt.DEFAULT_UA_APP_ID};Ep.NODE_APP_ID_CONFIG_OPTIONS=ATt;Ep.UA_APP_ID_ENV_NAME=_Te;Ep.UA_APP_ID_INI_NAME=CTe;Ep.createDefaultUserAgentProvider=yTe;Ep.crtAvailability=ETe;Ep.defaultUserAgent=bTt});var xC,xK,Xo,Vf=_(()=>{xC=require("@smithy/core/schema"),xK=require("@smithy/smithy-client"),Xo=class{queryCompat;errorRegistry;constructor(e=!1){this.queryCompat=e}resolveRestContentType(e,r){let n=r.getMemberSchemas(),s=Object.values(n).find(o=>!!o.getMergedTraits().httpPayload);if(s){let o=s.getMergedTraits().mediaType;return o||(s.isStringSchema()?"text/plain":s.isBlobSchema()?"application/octet-stream":e)}else if(!r.isUnitSchema()&&Object.values(n).find(i=>{let{httpQuery:a,httpQueryParams:c,httpHeader:u,httpLabel:l,httpPrefixHeaders:d}=i.getMergedTraits();return!a&&!c&&!u&&!l&&d===void 0}))return e}async getErrorSchemaOrThrowBaseException(e,r,n,s,o,i){let a=e;e.includes("#")&&([,a]=e.split("#"));let c={$metadata:o,$fault:n.statusCode<500?"client":"server"};if(!this.errorRegistry)throw new Error("@aws-sdk/core/protocols - error handler not initialized.");try{return{errorSchema:i?.(this.errorRegistry,a)??this.errorRegistry.getSchema(e),errorMetadata:c}}catch{s.message=s.message??s.Message??"UnknownError";let l=this.errorRegistry,d=l.getBaseException();if(d){let y=l.getErrorCtor(d)??Error;throw this.decorateServiceException(Object.assign(new y({name:a}),c),s)}let p=s,g=p?.message??p?.Message??p?.Error?.Message??p?.Error?.message;throw this.decorateServiceException(Object.assign(new Error(g),{name:a},c),s)}}compose(e,r,n){let s=n;r.includes("#")&&([s]=r.split("#"));let o=xC.TypeRegistry.for(s),i=xC.TypeRegistry.for("smithy.ts.sdk.synthetic."+n);e.copyFrom(o),e.copyFrom(i),this.errorRegistry=e}decorateServiceException(e,r={}){if(this.queryCompat){let n=e.Message??r.Message,s=(0,xK.decorateServiceException)(e,r);n&&(s.message=n);let o=s.Error??{};o.Type=s.Error?.Type,o.Code=s.Error?.Code,o.Message=s.Error?.message??s.Error?.Message??n,s.Error=o;let i=s.$metadata.requestId;return i&&(s.RequestId=i),s}return(0,xK.decorateServiceException)(e,r)}setQueryCompatError(e,r){let n=r.headers?.["x-amzn-query-error"];if(e!==void 0&&n!=null){let[s,o]=n.split(";"),i=Object.keys(e),a={Code:s,Type:o};e.Code=s,e.Type=o;for(let c=0;cxC.NormalizedSchema.of(s).getMergedTraits().awsQueryError?.[0]===r)}}}});var mk,RTe,PK,vTe=_(()=>{mk=require("@smithy/core/cbor"),RTe=require("@smithy/core/schema");Vf();PK=class extends mk.SmithyRpcV2CborProtocol{awsQueryCompatible;mixin;constructor({defaultNamespace:e,errorTypeRegistries:r,awsQueryCompatible:n}){super({defaultNamespace:e,errorTypeRegistries:r}),this.awsQueryCompatible=!!n,this.mixin=new Xo(this.awsQueryCompatible)}async serializeRequest(e,r,n){let s=await super.serializeRequest(e,r,n);return this.awsQueryCompatible&&(s.headers["x-amzn-query-mode"]="true"),s}async handleError(e,r,n,s,o){this.awsQueryCompatible&&this.mixin.setQueryCompatError(s,n);let i=(()=>{let y=n.headers["x-amzn-query-error"];return y&&this.awsQueryCompatible?y.split(";")[0]:(0,mk.loadSmithyRpcV2CborErrorCode)(n,s)??"Unknown"})();this.mixin.compose(this.compositeErrorRegistry,i,this.options.defaultNamespace);let{errorSchema:a,errorMetadata:c}=await this.mixin.getErrorSchemaOrThrowBaseException(i,this.options.defaultNamespace,n,s,o,this.awsQueryCompatible?this.mixin.findQueryCompatibleError:void 0),u=RTe.NormalizedSchema.of(a),l=s.message??s.Message??"UnknownError",d=this.compositeErrorRegistry.getErrorCtor(a)??Error,p=new d(l),g={};for(let[y,R]of u.structIterator())s[y]!=null&&(g[y]=this.deserializer.readValue(R,s[y]));throw this.awsQueryCompatible&&this.mixin.queryCompatOutput(s,g),this.mixin.decorateServiceException(Object.assign(p,c,{$fault:u.getMergedTraits().error,message:l},g),s)}}});var TTt,wTt,DTt,xTe=_(()=>{TTt=t=>{if(t==null)return t;if(typeof t=="number"||typeof t=="bigint"){let e=new Error(`Received number ${t} where a string was expected.`);return e.name="Warning",console.warn(e),String(t)}if(typeof t=="boolean"){let e=new Error(`Received boolean ${t} where a string was expected.`);return e.name="Warning",console.warn(e),String(t)}return t},wTt=t=>{if(t==null)return t;if(typeof t=="string"){let e=t.toLowerCase();if(t!==""&&e!=="false"&&e!=="true"){let r=new Error(`Received string "${t}" where a boolean was expected.`);r.name="Warning",console.warn(r)}return t!==""&&e!=="false"}return t},DTt=t=>{if(t==null)return t;if(typeof t=="string"){let e=Number(t);if(e.toString()!==t){let r=new Error(`Received string "${t}" where a number was expected.`);return r.name="Warning",console.warn(r),t}return e}return t}});var Bn,Ll=_(()=>{Bn=class{serdeContext;setSerdeContext(e){this.serdeContext=e}}});var Hf,bK=_(()=>{Hf=class{from;to;keys;constructor(e,r){this.from=e,this.to=r;let n=Object.keys(this.from),s=new Set(n);s.delete("__type"),this.keys=s}mark(e){this.keys.delete(e)}hasUnknown(){return this.keys.size===1&&Object.keys(this.to).length===0}writeUnknown(){if(this.hasUnknown()){let e=this.keys.values().next().value,r=this.from[e];this.to.$unknown=[e,r]}}}});function bTe(t,e,r){if(r?.source){let n=r.source;if(typeof e=="number"&&(e>Number.MAX_SAFE_INTEGER||e{PTe=require("@smithy/core/serde")});var ATe,TTe,gk,IK=_(()=>{ATe=require("@smithy/smithy-client"),TTe=require("@smithy/util-utf8"),gk=(t,e)=>(0,ATe.collectBody)(t,e).then(r=>(e?.utf8Encoder??TTe.toUtf8)(r))});var fk,OTt,wTe,AK,PC,bC=_(()=>{IK();fk=(t,e)=>gk(t,e).then(r=>{if(r.length)try{return JSON.parse(r)}catch(n){throw n?.name==="SyntaxError"&&Object.defineProperty(n,"$responseBodyText",{value:r}),n}return{}}),OTt=async(t,e)=>{let r=await fk(t,e);return r.message=r.message??r.Message,r},wTe=(t,e)=>Object.keys(t).find(r=>r.toLowerCase()===e.toLowerCase()),AK=t=>{let e=t;return typeof e=="number"&&(e=e.toString()),e.indexOf(",")>=0&&(e=e.split(",")[0]),e.indexOf(":")>=0&&(e=e.split(":")[0]),e.indexOf("#")>=0&&(e=e.split("#")[1]),e},PC=(t,e)=>{let r=wTe(t.headers,"x-amzn-errortype");if(r!==void 0)return AK(t.headers[r]);if(e&&typeof e=="object"){let n=wTe(e,"code");if(n&&e[n]!==void 0)return AK(e[n]);if(e.__type!==void 0)return AK(e.__type)}}});var DTe,OTe,ao,kTe,IC,TK=_(()=>{DTe=require("@smithy/core/protocols"),OTe=require("@smithy/core/schema"),ao=require("@smithy/core/serde"),kTe=require("@smithy/util-base64");Ll();bK();ITe();bC();IC=class extends Bn{settings;constructor(e){super(),this.settings=e}async read(e,r){return this._read(e,typeof r=="string"?JSON.parse(r,bTe):await fk(r,this.serdeContext))}readObject(e,r){return this._read(e,r)}_read(e,r){let n=r!==null&&typeof r=="object",s=OTe.NormalizedSchema.of(e);if(n){if(s.isStructSchema()){let i=r,a=s.isUnionSchema(),c={},u,{jsonName:l}=this.settings;l&&(u={});let d;a&&(d=new Hf(i,c));for(let[p,g]of s.structIterator()){let y=p;l&&(y=g.getMergedTraits().jsonName??y,u[y]=p),a&&d.mark(y),i[y]!=null&&(c[p]=this._read(g,i[y]))}if(a)d.writeUnknown();else if(typeof i.__type=="string")for(let p in i){let g=i[p],y=l?u[p]??p:p;y in c||(c[y]=g)}return c}if(Array.isArray(r)&&s.isListSchema()){let i=s.getValueSchema(),a=[];for(let c of r)a.push(this._read(i,c));return a}if(s.isMapSchema()){let i=s.getValueSchema(),a={};for(let c in r)a[c]=this._read(i,r[c]);return a}}if(s.isBlobSchema()&&typeof r=="string")return(0,kTe.fromBase64)(r);let o=s.getMergedTraits().mediaType;if(s.isStringSchema()&&typeof r=="string"&&o)return o==="application/json"||o.endsWith("+json")?ao.LazyJsonString.from(r):r;if(s.isTimestampSchema()&&r!=null)switch((0,DTe.determineTimestampFormat)(s,this.settings)){case 5:return(0,ao.parseRfc3339DateTimeWithOffset)(r);case 6:return(0,ao.parseRfc7231DateTime)(r);case 7:return(0,ao.parseEpochTimestamp)(r);default:return console.warn("Missing timestamp format, parsing value with Date constructor:",r),new Date(r)}if(s.isBigIntegerSchema()&&(typeof r=="number"||typeof r=="string"))return BigInt(r);if(s.isBigDecimalSchema()&&r!=null){if(r instanceof ao.NumericValue)return r;let i=r;return i.type==="bigDecimal"&&"string"in i?new ao.NumericValue(i.string,i.type):new ao.NumericValue(String(r),"bigDecimal")}if(s.isNumericSchema()&&typeof r=="string"){switch(r){case"Infinity":return 1/0;case"-Infinity":return-1/0;case"NaN":return NaN}return r}if(s.isDocumentSchema())if(n){let i=Array.isArray(r)?[]:{};for(let a in r){let c=r[a];c instanceof ao.NumericValue?i[a]=c:i[a]=this._read(s,c)}return i}else return structuredClone(r);return r}}});var LTe,NTe,hk,MTe=_(()=>{LTe=require("@smithy/core/serde"),NTe="\u039D",hk=class{values=new Map;counter=0;stage=0;createReplacer(){if(this.stage===1)throw new Error("@aws-sdk/core/protocols - JsonReplacer already created.");if(this.stage===2)throw new Error("@aws-sdk/core/protocols - JsonReplacer exhausted.");return this.stage=1,(e,r)=>{if(r instanceof LTe.NumericValue){let n=`${NTe+"nv"+this.counter++}_`+r.string;return this.values.set(`"${n}"`,r.string),n}if(typeof r=="bigint"){let n=r.toString(),s=`${NTe+"b"+this.counter++}_`+n;return this.values.set(`"${s}"`,n),s}return r}}replaceInJson(e){if(this.stage===0)throw new Error("@aws-sdk/core/protocols - JsonReplacer not created yet.");if(this.stage===2)throw new Error("@aws-sdk/core/protocols - JsonReplacer exhausted.");if(this.stage=2,this.counter===0)return e;for(let[r,n]of this.values)e=e.replace(r,n);return e}}});var FTe,Sk,Jc,wK,AC,DK=_(()=>{FTe=require("@smithy/core/protocols"),Sk=require("@smithy/core/schema"),Jc=require("@smithy/core/serde"),wK=require("@smithy/util-base64");Ll();MTe();AC=class extends Bn{settings;buffer;useReplacer=!1;rootSchema;constructor(e){super(),this.settings=e}write(e,r){this.rootSchema=Sk.NormalizedSchema.of(e),this.buffer=this._write(this.rootSchema,r)}flush(){let{rootSchema:e,useReplacer:r}=this;if(this.rootSchema=void 0,this.useReplacer=!1,e?.isStructSchema()||e?.isDocumentSchema()){if(!r)return JSON.stringify(this.buffer);let n=new hk;return n.replaceInJson(JSON.stringify(this.buffer,n.createReplacer(),0))}return this.buffer}writeDiscriminatedDocument(e,r){this.write(e,r),typeof this.buffer=="object"&&(this.buffer.__type=Sk.NormalizedSchema.of(e).getName(!0))}_write(e,r,n){let s=r!==null&&typeof r=="object",o=Sk.NormalizedSchema.of(e);if(s){if(o.isStructSchema()){let i=r,a={},{jsonName:c}=this.settings,u;c&&(u={});let l=0;for(let[d,p]of o.structIterator()){let g=this._write(p,i[d],o);if(g!==void 0){let y=d;c&&(y=p.getMergedTraits().jsonName??d,u[d]=y),a[y]=g,l++}}if(o.isUnionSchema()&&l===0){let{$unknown:d}=i;if(Array.isArray(d)){let[p,g]=d;a[p]=this._write(15,g)}}else if(typeof i.__type=="string")for(let d in i){let p=i[d],g=c?u[d]??d:d;g in a||(a[g]=this._write(15,p))}return a}if(Array.isArray(r)&&o.isListSchema()){let i=o.getValueSchema(),a=[],c=!!o.getMergedTraits().sparse;for(let u of r)(c||u!=null)&&a.push(this._write(i,u));return a}if(o.isMapSchema()){let i=o.getValueSchema(),a={},c=!!o.getMergedTraits().sparse;for(let u in r){let l=r[u];(c||l!=null)&&(a[u]=this._write(i,l))}return a}if(r instanceof Uint8Array&&(o.isBlobSchema()||o.isDocumentSchema()))return o===this.rootSchema?r:(this.serdeContext?.base64Encoder??wK.toBase64)(r);if(r instanceof Date&&(o.isTimestampSchema()||o.isDocumentSchema()))switch((0,FTe.determineTimestampFormat)(o,this.settings)){case 5:return r.toISOString().replace(".000Z","Z");case 6:return(0,Jc.dateToUtcString)(r);case 7:return r.getTime()/1e3;default:return console.warn("Missing timestamp format, using epoch seconds",r),r.getTime()/1e3}r instanceof Jc.NumericValue&&(this.useReplacer=!0)}if(!(r===null&&n?.isStructSchema())){if(o.isStringSchema()){if(typeof r>"u"&&o.isIdempotencyToken())return(0,Jc.generateIdempotencyToken)();let i=o.getMergedTraits().mediaType;return r!=null&&i&&(i==="application/json"||i.endsWith("+json"))?Jc.LazyJsonString.from(r):r}if(typeof r=="number"&&o.isNumericSchema())return Math.abs(r)===1/0||isNaN(r)?String(r):r;if(typeof r=="string"&&o.isBlobSchema())return o===this.rootSchema?r:(this.serdeContext?.base64Encoder??wK.toBase64)(r);if(typeof r=="bigint"&&(this.useReplacer=!0),o.isDocumentSchema())if(s){let i=Array.isArray(r)?[]:{};for(let a in r){let c=r[a];c instanceof Jc.NumericValue?(this.useReplacer=!0,i[a]=c):i[a]=this._write(o,c)}return i}else return structuredClone(r);return r}}}});var yp,Ek=_(()=>{Ll();TK();DK();yp=class extends Bn{settings;constructor(e){super(),this.settings=e}createSerializer(){let e=new AC(this.settings);return e.setSerdeContext(this.serdeContext),e}createDeserializer(){let e=new IC(this.settings);return e.setSerdeContext(this.serdeContext),e}}});var BTe,yk,_p,_k=_(()=>{BTe=require("@smithy/core/protocols"),yk=require("@smithy/core/schema");Vf();Ek();bC();_p=class extends BTe.RpcProtocol{serializer;deserializer;serviceTarget;codec;mixin;awsQueryCompatible;constructor({defaultNamespace:e,errorTypeRegistries:r,serviceTarget:n,awsQueryCompatible:s,jsonCodec:o}){super({defaultNamespace:e,errorTypeRegistries:r}),this.serviceTarget=n,this.codec=o??new yp({timestampFormat:{useTrait:!0,default:7},jsonName:!1}),this.serializer=this.codec.createSerializer(),this.deserializer=this.codec.createDeserializer(),this.awsQueryCompatible=!!s,this.mixin=new Xo(this.awsQueryCompatible)}async serializeRequest(e,r,n){let s=await super.serializeRequest(e,r,n);return s.path.endsWith("/")||(s.path+="/"),s.headers["content-type"]=`application/x-amz-json-${this.getJsonRpcVersion()}`,s.headers["x-amz-target"]=`${this.serviceTarget}.${e.name}`,this.awsQueryCompatible&&(s.headers["x-amzn-query-mode"]="true"),((0,yk.deref)(e.input)==="unit"||!s.body)&&(s.body="{}"),s}getPayloadCodec(){return this.codec}async handleError(e,r,n,s,o){this.awsQueryCompatible&&this.mixin.setQueryCompatError(s,n);let i=PC(n,s)??"Unknown";this.mixin.compose(this.compositeErrorRegistry,i,this.options.defaultNamespace);let{errorSchema:a,errorMetadata:c}=await this.mixin.getErrorSchemaOrThrowBaseException(i,this.options.defaultNamespace,n,s,o,this.awsQueryCompatible?this.mixin.findQueryCompatibleError:void 0),u=yk.NormalizedSchema.of(a),l=s.message??s.Message??"UnknownError",d=this.compositeErrorRegistry.getErrorCtor(a)??Error,p=new d(l),g={},y=this.codec.createDeserializer();for(let[R,D]of u.structIterator())s[R]!=null&&(g[R]=y.readObject(D,s[R]));throw this.awsQueryCompatible&&this.mixin.queryCompatOutput(s,g),this.mixin.decorateServiceException(Object.assign(p,c,{$fault:u.getMergedTraits().error,message:l},g),s)}}});var OK,UTe=_(()=>{_k();OK=class extends _p{constructor({defaultNamespace:e,errorTypeRegistries:r,serviceTarget:n,awsQueryCompatible:s,jsonCodec:o}){super({defaultNamespace:e,errorTypeRegistries:r,serviceTarget:n,awsQueryCompatible:s,jsonCodec:o})}getShapeId(){return"aws.protocols#awsJson1_0"}getJsonRpcVersion(){return"1.0"}getDefaultContentType(){return"application/x-amz-json-1.0"}}});var kK,qTe=_(()=>{_k();kK=class extends _p{constructor({defaultNamespace:e,errorTypeRegistries:r,serviceTarget:n,awsQueryCompatible:s,jsonCodec:o}){super({defaultNamespace:e,errorTypeRegistries:r,serviceTarget:n,awsQueryCompatible:s,jsonCodec:o})}getShapeId(){return"aws.protocols#awsJson1_1"}getJsonRpcVersion(){return"1.1"}getDefaultContentType(){return"application/x-amz-json-1.1"}}});var zf,Ck,Yc,$Te=_(()=>{zf=require("@smithy/core/protocols"),Ck=require("@smithy/core/schema");Vf();Ek();bC();Yc=class extends zf.HttpBindingProtocol{serializer;deserializer;codec;mixin=new Xo;constructor({defaultNamespace:e,errorTypeRegistries:r}){super({defaultNamespace:e,errorTypeRegistries:r});let n={timestampFormat:{useTrait:!0,default:7},httpBindings:!0,jsonName:!0};this.codec=new yp(n),this.serializer=new zf.HttpInterceptingShapeSerializer(this.codec.createSerializer(),n),this.deserializer=new zf.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(),n)}getShapeId(){return"aws.protocols#restJson1"}getPayloadCodec(){return this.codec}setSerdeContext(e){this.codec.setSerdeContext(e),super.setSerdeContext(e)}async serializeRequest(e,r,n){let s=await super.serializeRequest(e,r,n),o=Ck.NormalizedSchema.of(e.input);if(!s.headers["content-type"]){let i=this.mixin.resolveRestContentType(this.getDefaultContentType(),o);i&&(s.headers["content-type"]=i)}return s.body==null&&s.headers["content-type"]===this.getDefaultContentType()&&(s.body="{}"),s}async deserializeResponse(e,r,n){let s=await super.deserializeResponse(e,r,n),o=Ck.NormalizedSchema.of(e.output);for(let[i,a]of o.structIterator())a.getMemberTraits().httpPayload&&!(i in s)&&(s[i]=null);return s}async handleError(e,r,n,s,o){let i=PC(n,s)??"Unknown";this.mixin.compose(this.compositeErrorRegistry,i,this.options.defaultNamespace);let{errorSchema:a,errorMetadata:c}=await this.mixin.getErrorSchemaOrThrowBaseException(i,this.options.defaultNamespace,n,s,o),u=Ck.NormalizedSchema.of(a),l=s.message??s.Message??"UnknownError",d=this.compositeErrorRegistry.getErrorCtor(a)??Error,p=new d(l);await this.deserializeHttpMessage(a,r,n,s);let g={},y=this.codec.createDeserializer();for(let[R,D]of u.structIterator()){let B=D.getMergedTraits().jsonName??R;g[R]=y.readObject(D,s[B])}throw this.mixin.decorateServiceException(Object.assign(p,c,{$fault:u.getMergedTraits().error,message:l},g),s)}getDefaultContentType(){return"application/json"}}});var GTe,kTt,jTe=_(()=>{GTe=require("@smithy/smithy-client"),kTt=t=>{if(t!=null)return typeof t=="object"&&"__type"in t&&delete t.__type,(0,GTe.expectUnion)(t)}});var HTe=b(Ki=>{"use strict";Object.defineProperty(Ki,"__esModule",{value:!0});Ki.EntityDecoderImpl=Ki.CURRENCY=Ki.COMMON_HTML=Ki.XML=void 0;Ki.XML={amp:"&",apos:"'",gt:">",lt:"<",quot:'"'};Ki.COMMON_HTML={nbsp:"\xA0",copy:"\xA9",reg:"\xAE",trade:"\u2122",mdash:"\u2014",ndash:"\u2013",hellip:"\u2026",laquo:"\xAB",raquo:"\xBB",lsquo:"\u2018",rsquo:"\u2019",ldquo:"\u201C",rdquo:"\u201D",bull:"\u2022",para:"\xB6",sect:"\xA7",deg:"\xB0",frac12:"\xBD",frac14:"\xBC",frac34:"\xBE"};Ki.CURRENCY={cent:"\xA2",pound:"\xA3",curren:"\xA4",yen:"\xA5",euro:"\u20AC",dollar:"$",fnof:"\u0192",inr:"\u20B9",af:"\u060B",birr:"\u1265\u122D",peso:"\u20B1",rub:"\u20BD",won:"\u20A9",yuan:"\xA5",cedil:"\xB8"};var NTt=new Set("!?\\/[]$%{}^&*()<>|+");function VTe(t){if(t[0]==="#")throw new Error(`[EntityReplacer] Invalid character '#' in entity name: "${t}"`);for(let e of t)if(NTt.has(e))throw new Error(`[EntityReplacer] Invalid character '${e}' in entity name: "${t}"`);return t}function NK(...t){let e=Object.create(null);for(let r of t)if(r)for(let n of Object.keys(r)){let s=r[n];if(typeof s=="string")e[n]=s;else if(s&&typeof s=="object"&&s.val!==void 0){let o=s.val;typeof o=="string"&&(e[n]=o)}}return e}var Cp="external",Rk="base",LK="all";function LTt(t){return!t||t===Cp?new Set([Cp]):t===LK?new Set([LK]):t===Rk?new Set([Rk]):Array.isArray(t)?new Set(t):new Set([Cp])}var vs=Object.freeze({allow:0,leave:1,remove:2,throw:3}),MTt=new Set([9,10,13]);function FTt(t){if(!t)return{xmlVersion:1,onLevel:vs.allow,nullLevel:vs.remove};let e=t.xmlVersion===1.1?1.1:1,r=vs[t.onNCR??"allow"]??vs.allow,n=vs[t.nullNCR??"remove"]??vs.remove,s=Math.max(n,vs.remove);return{xmlVersion:e,onLevel:r,nullLevel:s}}var BTt=class{_limit;_maxTotalExpansions;_maxExpandedLength;_postCheck;_limitTiers;_numericAllowed;_baseMap;_externalMap;_inputMap;_totalExpansions;_expandedLength;_removeSet;_leaveSet;_ncrXmlVersion;_ncrOnLevel;_ncrNullLevel;constructor(e={}){this._limit=e.limit||{},this._maxTotalExpansions=this._limit.maxTotalExpansions||0,this._maxExpandedLength=this._limit.maxExpandedLength||0,this._postCheck=typeof e.postCheck=="function"?e.postCheck:n=>n,this._limitTiers=LTt(this._limit.applyLimitsTo??Cp),this._numericAllowed=e.numericAllowed??!0,this._baseMap=NK(Ki.XML,e.namedEntities||null),this._externalMap=Object.create(null),this._inputMap=Object.create(null),this._totalExpansions=0,this._expandedLength=0,this._removeSet=new Set(e.remove&&Array.isArray(e.remove)?e.remove:[]),this._leaveSet=new Set(e.leave&&Array.isArray(e.leave)?e.leave:[]);let r=FTt(e.ncr);this._ncrXmlVersion=r.xmlVersion,this._ncrOnLevel=r.onLevel,this._ncrNullLevel=r.nullLevel}setExternalEntities(e){if(e)for(let r of Object.keys(e))VTe(r);this._externalMap=NK(e)}addExternalEntity(e,r){VTe(e),typeof r=="string"&&r.indexOf("&")===-1&&(this._externalMap[e]=r)}addInputEntities(e){this._totalExpansions=0,this._expandedLength=0,this._inputMap=NK(e)}reset(){return this._inputMap=Object.create(null),this._totalExpansions=0,this._expandedLength=0,this}setXmlVersion(e){this._ncrXmlVersion=e==="1.1"||e===1.1?1.1:1}decode(e){if(typeof e!="string"||e.length===0)return e;let r=e,n=[],s=e.length,o=0,i=0,a=this._maxTotalExpansions>0,c=this._maxExpandedLength>0,u=a||c;for(;i=s||e.charCodeAt(d)!==59){i++;continue}let p=e.slice(i+1,d);if(p.length===0){i++;continue}let g,y;if(this._removeSet.has(p))g="",y===void 0&&(y=Cp);else if(this._leaveSet.has(p)){i++;continue}else if(p.charCodeAt(0)===35){let R=this._resolveNCR(p);if(R===void 0){i++;continue}g=R,y=Rk}else{let R=this._resolveName(p);g=R?.value,y=R?.tier}if(g===void 0){i++;continue}if(i>o&&n.push(e.slice(o,i)),n.push(g),o=d+1,i=o,u&&this._tierCounts(y)){if(a&&(this._totalExpansions++,this._totalExpansions>this._maxTotalExpansions))throw new Error(`[EntityReplacer] Entity expansion count limit exceeded: ${this._totalExpansions} > ${this._maxTotalExpansions}`);if(c){let R=g.length-(p.length+2);if(R>0&&(this._expandedLength+=R,this._expandedLength>this._maxExpandedLength))throw new Error(`[EntityReplacer] Expanded content length limit exceeded: ${this._expandedLength} > ${this._maxExpandedLength}`)}}}o=55296&&e<=57343||this._ncrXmlVersion===1&&e>=1&&e<=31&&!MTt.has(e)?vs.remove:-1}_applyNCRAction(e,r,n){switch(e){case vs.allow:return String.fromCodePoint(n);case vs.remove:return"";case vs.leave:return;case vs.throw:throw new Error(`[EntityDecoder] Prohibited numeric character reference &${r}; (U+${n.toString(16).toUpperCase().padStart(4,"0")})`);default:return String.fromCodePoint(n)}}_resolveNCR(e){let r=e.charCodeAt(1),n;if(r===120||r===88?n=parseInt(e.slice(2),16):n=parseInt(e.slice(1),10),Number.isNaN(n)||n<0||n>1114111)return;let s=this._classifyNCR(n);if(!this._numericAllowed&&s{"use strict";Object.defineProperty(MK,"__esModule",{value:!0});MK.parseXML=$Tt;var UTt=require("fast-xml-parser"),vk=HTe(),xk=new vk.EntityDecoderImpl({namedEntities:{...vk.XML,...vk.COMMON_HTML,...vk.CURRENCY},numericAllowed:!0,limit:{maxTotalExpansions:1/0},ncr:{xmlVersion:1.1}}),qTt=new UTt.XMLParser({attributeNamePrefix:"",processEntities:{enabled:!0,maxTotalExpansions:1/0},htmlEntities:!0,entityDecoder:{setExternalEntities:t=>{xk.setExternalEntities(t)},addInputEntities:t=>{xk.addInputEntities(t)},reset:()=>{xk.reset()},decode:t=>xk.decode(t),setXmlVersion:t=>{}},ignoreAttributes:!1,ignoreDeclaration:!0,parseTagValue:!1,trimValues:!1,tagValueProcessor:(t,e)=>e.trim()===""&&e.includes(` -`)?"":void 0,maxNestedTags:1/0});function $Tt(t){return qTt.parse(t,!0)}});var Ik=b(bk=>{"use strict";var GTt=zTe(),jTt=/[&<>"]/g,VTt={"&":"&","<":"<",">":">",'"':"""};function HTt(t){return t.replace(jTt,e=>VTt[e])}var zTt=/[&"'<>\r\n\u0085\u2028]/g,WTt={"&":"&",'"':""","'":"'","<":"<",">":">","\r":" ","\n":" ","\x85":"…","\u2028":"
"};function KTt(t){return t.replace(zTt,e=>WTt[e])}var Pk=class{value;constructor(e){this.value=e}toString(){return KTt(""+this.value)}},FK=class t{name;children;attributes={};static of(e,r,n){let s=new t(e);return r!==void 0&&s.addChildNode(new Pk(r)),n!==void 0&&s.withName(n),s}constructor(e,r=[]){this.name=e,this.children=r}withName(e){return this.name=e,this}addAttribute(e,r){return this.attributes[e]=r,this}addChildNode(e){return this.children.push(e),this}removeAttribute(e){return delete this.attributes[e],this}n(e){return this.name=e,this}c(e){return this.children.push(e),this}a(e,r){return r!=null&&(this.attributes[e]=r),this}cc(e,r,n=r){if(e[r]!=null){let s=t.of(r,e[r]).withName(n);this.c(s)}}l(e,r,n,s){e[r]!=null&&s().map(i=>{i.withName(n),this.c(i)})}lc(e,r,n,s){if(e[r]!=null){let o=s(),i=new t(n);o.map(a=>{i.c(a)}),this.c(i)}}toString(){let e=!!this.children.length,r=`<${this.name}`,n=this.attributes;for(let s of Object.keys(n)){let o=n[s];o!=null&&(r+=` ${s}="${HTt(""+o)}"`)}return r+=e?`>${this.children.map(s=>s.toString()).join("")}`:"/>"}};bk.parseXML=GTt.parseXML;bk.XmlNode=FK;bk.XmlText=Pk});var WTe,KTe,BK,QTe,XTe,Rp,Ak=_(()=>{WTe=O(Ik()),KTe=require("@smithy/core/protocols"),BK=require("@smithy/core/schema"),QTe=require("@smithy/smithy-client"),XTe=require("@smithy/util-utf8");Ll();bK();Rp=class extends Bn{settings;stringDeserializer;constructor(e){super(),this.settings=e,this.stringDeserializer=new KTe.FromStringShapeDeserializer(e)}setSerdeContext(e){this.serdeContext=e,this.stringDeserializer.setSerdeContext(e)}read(e,r,n){let s=BK.NormalizedSchema.of(e),o=s.getMemberSchemas();if(s.isStructSchema()&&s.isMemberSchema()&&!!Object.values(o).find(u=>!!u.getMemberTraits().eventPayload)){let u={},l=Object.keys(o)[0];return o[l].isBlobSchema()?u[l]=r:u[l]=this.read(o[l],r),u}let a=(this.serdeContext?.utf8Encoder??XTe.toUtf8)(r),c=this.parseXml(a);return this.readSchema(e,n?c[n]:c)}readSchema(e,r){let n=BK.NormalizedSchema.of(e);if(n.isUnitSchema())return;let s=n.getMergedTraits();if(n.isListSchema()&&!Array.isArray(r))return this.readSchema(n,[r]);if(r==null)return r;if(typeof r=="object"){let o=!!s.xmlFlattened;if(n.isListSchema()){let a=n.getValueSchema(),c=[],u=a.getMergedTraits().xmlName??"member",l=o?r:(r[0]??r)[u];if(l==null)return c;let d=Array.isArray(l)?l:[l];for(let p of d)c.push(this.readSchema(a,p));return c}let i={};if(n.isMapSchema()){let a=n.getKeySchema(),c=n.getValueSchema(),u;o?u=Array.isArray(r)?r:[r]:u=Array.isArray(r.entry)?r.entry:[r.entry];let l=a.getMergedTraits().xmlName??"key",d=c.getMergedTraits().xmlName??"value";for(let p of u){let g=p[l],y=p[d];i[g]=this.readSchema(c,y)}return i}if(n.isStructSchema()){let a=n.isUnionSchema(),c;a&&(c=new Hf(r,i));for(let[u,l]of n.structIterator()){let d=l.getMergedTraits(),p=d.httpPayload?d.xmlName??l.getName():l.getMemberTraits().xmlName??u;a&&c.mark(p),r[p]!=null&&(i[u]=this.readSchema(l,r[p]))}return a&&c.writeUnknown(),i}if(n.isDocumentSchema())return r;throw new Error(`@aws-sdk/core/protocols - xml deserializer unhandled schema type for ${n.getName(!0)}`)}return n.isListSchema()?[]:n.isMapSchema()||n.isStructSchema()?{}:this.stringDeserializer.read(n,r)}parseXml(e){if(e.length){let r;try{r=(0,WTe.parseXML)(e)}catch(i){throw i&&typeof i=="object"&&Object.defineProperty(i,"$responseBodyText",{value:e}),i}let n="#text",s=Object.keys(r)[0],o=r[s];return o[n]&&(o[s]=o[n],delete o[n]),(0,QTe.getValueFromTextNode)(o)}return{}}}});var TC,JTe,Tk,YTe,ZTe,wC,UK=_(()=>{TC=require("@smithy/core/protocols"),JTe=require("@smithy/core/schema"),Tk=require("@smithy/core/serde"),YTe=require("@smithy/smithy-client"),ZTe=require("@smithy/util-base64");Ll();wC=class extends Bn{settings;buffer;constructor(e){super(),this.settings=e}write(e,r,n=""){this.buffer===void 0&&(this.buffer="");let s=JTe.NormalizedSchema.of(e);if(n&&!n.endsWith(".")&&(n+="."),s.isBlobSchema())(typeof r=="string"||r instanceof Uint8Array)&&(this.writeKey(n),this.writeValue((this.serdeContext?.base64Encoder??ZTe.toBase64)(r)));else if(s.isBooleanSchema()||s.isNumericSchema()||s.isStringSchema())r!=null?(this.writeKey(n),this.writeValue(String(r))):s.isIdempotencyToken()&&(this.writeKey(n),this.writeValue((0,Tk.generateIdempotencyToken)()));else if(s.isBigIntegerSchema())r!=null&&(this.writeKey(n),this.writeValue(String(r)));else if(s.isBigDecimalSchema())r!=null&&(this.writeKey(n),this.writeValue(r instanceof Tk.NumericValue?r.string:String(r)));else if(s.isTimestampSchema()){if(r instanceof Date)switch(this.writeKey(n),(0,TC.determineTimestampFormat)(s,this.settings)){case 5:this.writeValue(r.toISOString().replace(".000Z","Z"));break;case 6:this.writeValue((0,YTe.dateToUtcString)(r));break;case 7:this.writeValue(String(r.getTime()/1e3));break}}else if(s.isDocumentSchema())Array.isArray(r)?this.write(79,r,n):r instanceof Date?this.write(4,r,n):r instanceof Uint8Array?this.write(21,r,n):r&&typeof r=="object"?this.write(143,r,n):(this.writeKey(n),this.writeValue(String(r)));else if(s.isListSchema()){if(Array.isArray(r))if(r.length===0)this.settings.serializeEmptyLists&&(this.writeKey(n),this.writeValue(""));else{let o=s.getValueSchema(),i=this.settings.flattenLists||s.getMergedTraits().xmlFlattened,a=1;for(let c of r){if(c==null)continue;let u=o.getMergedTraits(),l=this.getKey("member",u.xmlName,u.ec2QueryName),d=i?`${n}${a}`:`${n}${l}.${a}`;this.write(o,c,d),++a}}}else if(s.isMapSchema()){if(r&&typeof r=="object"){let o=s.getKeySchema(),i=s.getValueSchema(),a=s.getMergedTraits().xmlFlattened,c=1;for(let u in r){let l=r[u];if(l==null)continue;let d=o.getMergedTraits(),p=this.getKey("key",d.xmlName,d.ec2QueryName),g=a?`${n}${c}.${p}`:`${n}entry.${c}.${p}`,y=i.getMergedTraits(),R=this.getKey("value",y.xmlName,y.ec2QueryName),D=a?`${n}${c}.${R}`:`${n}entry.${c}.${R}`;this.write(o,u,g),this.write(i,l,D),++c}}}else if(s.isStructSchema()){if(r&&typeof r=="object"){let o=!1;for(let[i,a]of s.structIterator()){if(r[i]==null&&!a.isIdempotencyToken())continue;let c=a.getMergedTraits(),u=this.getKey(i,c.xmlName,c.ec2QueryName,"struct"),l=`${n}${u}`;this.write(a,r[i],l),o=!0}if(!o&&s.isUnionSchema()){let{$unknown:i}=r;if(Array.isArray(i)){let[a,c]=i,u=`${n}${a}`;this.write(15,c,u)}}}}else if(!s.isUnitSchema())throw new Error(`@aws-sdk/core/protocols - QuerySerializer unrecognized schema type ${s.getName(!0)}`)}flush(){if(this.buffer===void 0)throw new Error("@aws-sdk/core/protocols - QuerySerializer cannot flush with nothing written to buffer.");let e=this.buffer;return delete this.buffer,e}getKey(e,r,n,s){let{ec2:o,capitalizeKeys:i}=this.settings;if(o&&n)return n;let a=r??e;return i&&s==="struct"?a[0].toUpperCase()+a.slice(1):a}writeKey(e){e.endsWith(".")&&(e=e.slice(0,e.length-1)),this.buffer+=`&${(0,TC.extendedEncodeURIComponent)(e)}=`}writeValue(e){this.buffer+=(0,TC.extendedEncodeURIComponent)(e)}}});var DC,OC,vp,qK=_(()=>{DC=require("@smithy/core/protocols"),OC=require("@smithy/core/schema");Vf();Ak();UK();vp=class extends DC.RpcProtocol{options;serializer;deserializer;mixin=new Xo;constructor(e){super({defaultNamespace:e.defaultNamespace,errorTypeRegistries:e.errorTypeRegistries}),this.options=e;let r={timestampFormat:{useTrait:!0,default:5},httpBindings:!1,xmlNamespace:e.xmlNamespace,serviceNamespace:e.defaultNamespace,serializeEmptyLists:!0};this.serializer=new wC(r),this.deserializer=new Rp(r)}getShapeId(){return"aws.protocols#awsQuery"}setSerdeContext(e){this.serializer.setSerdeContext(e),this.deserializer.setSerdeContext(e)}getPayloadCodec(){throw new Error("AWSQuery protocol has no payload codec.")}async serializeRequest(e,r,n){let s=await super.serializeRequest(e,r,n);s.path.endsWith("/")||(s.path+="/"),s.headers["content-type"]="application/x-www-form-urlencoded",((0,OC.deref)(e.input)==="unit"||!s.body)&&(s.body="");let o=e.name.split("#")[1]??e.name;return s.body=`Action=${o}&Version=${this.options.version}`+s.body,s.body.endsWith("&")&&(s.body=s.body.slice(-1)),s}async deserializeResponse(e,r,n){let s=this.deserializer,o=OC.NormalizedSchema.of(e.output),i={};if(n.statusCode>=300){let l=await(0,DC.collectBody)(n.body,r);l.byteLength>0&&Object.assign(i,await s.read(15,l)),await this.handleError(e,r,n,i,this.deserializeMetadata(n))}for(let l in n.headers){let d=n.headers[l];delete n.headers[l],n.headers[l.toLowerCase()]=d}let a=e.name.split("#")[1]??e.name,c=o.isStructSchema()&&this.useNestedResult()?a+"Result":void 0,u=await(0,DC.collectBody)(n.body,r);return u.byteLength>0&&Object.assign(i,await s.read(o,u,c)),i.$metadata=this.deserializeMetadata(n),i}useNestedResult(){return!0}async handleError(e,r,n,s,o){let i=this.loadQueryErrorCode(n,s)??"Unknown";this.mixin.compose(this.compositeErrorRegistry,i,this.options.defaultNamespace);let a=this.loadQueryError(s)??{},c=this.loadQueryErrorMessage(s);a.message=c,a.Error={Type:a.Type,Code:a.Code,Message:c};let{errorSchema:u,errorMetadata:l}=await this.mixin.getErrorSchemaOrThrowBaseException(i,this.options.defaultNamespace,n,a,o,this.mixin.findQueryCompatibleError),d=OC.NormalizedSchema.of(u),p=this.compositeErrorRegistry.getErrorCtor(u)??Error,g=new p(c),y={Type:a.Error.Type,Code:a.Error.Code,Error:a.Error};for(let[R,D]of d.structIterator()){let B=D.getMergedTraits().xmlName??R,M=a[B]??s[B];y[R]=this.deserializer.readSchema(D,M)}throw this.mixin.decorateServiceException(Object.assign(g,l,{$fault:d.getMergedTraits().error,message:c},y),s)}loadQueryErrorCode(e,r){let n=(r.Errors?.[0]?.Error??r.Errors?.Error??r.Error)?.Code;if(n!==void 0)return n;if(e.statusCode==404)return"NotFound"}loadQueryError(e){return e.Errors?.[0]?.Error??e.Errors?.Error??e.Error}loadQueryErrorMessage(e){let r=this.loadQueryError(e);return r?.message??r?.Message??e.message??e.Message??"Unknown"}getDefaultContentType(){return"application/x-www-form-urlencoded"}}});var $K,ewe=_(()=>{qK();$K=class extends vp{options;constructor(e){super(e),this.options=e;let r={capitalizeKeys:!0,flattenLists:!0,serializeEmptyLists:!1,ec2:!0};Object.assign(this.serializer.settings,r)}getShapeId(){return"aws.protocols#ec2Query"}useNestedResult(){return!1}}});var twe=_(()=>{});var rwe,nwe,swe,QTt,GK,jK=_(()=>{rwe=O(Ik()),nwe=require("@smithy/smithy-client");IK();swe=(t,e)=>gk(t,e).then(r=>{if(r.length){let n;try{n=(0,rwe.parseXML)(r)}catch(a){throw a&&typeof a=="object"&&Object.defineProperty(a,"$responseBodyText",{value:r}),a}let s="#text",o=Object.keys(n)[0],i=n[o];return i[s]&&(i[o]=i[s],delete i[s]),(0,nwe.getValueFromTextNode)(i)}return{}}),QTt=async(t,e)=>{let r=await swe(t,e);return r.Error&&(r.Error.message=r.Error.message??r.Error.Message),r},GK=(t,e)=>{if(e?.Error?.Code!==void 0)return e.Error.Code;if(e?.Code!==void 0)return e.Code;if(t.statusCode==404)return"NotFound"}});var es,owe,wk,Dk,VK,Ok,kC,HK=_(()=>{es=O(Ik()),owe=require("@smithy/core/protocols"),wk=require("@smithy/core/schema"),Dk=require("@smithy/core/serde"),VK=require("@smithy/smithy-client"),Ok=require("@smithy/util-base64");Ll();kC=class extends Bn{settings;stringBuffer;byteBuffer;buffer;constructor(e){super(),this.settings=e}write(e,r){let n=wk.NormalizedSchema.of(e);if(n.isStringSchema()&&typeof r=="string")this.stringBuffer=r;else if(n.isBlobSchema())this.byteBuffer="byteLength"in r?r:(this.serdeContext?.base64Decoder??Ok.fromBase64)(r);else{this.buffer=this.writeStruct(n,r,void 0);let s=n.getMergedTraits();s.httpPayload&&!s.xmlName&&this.buffer.withName(n.getName())}}flush(){if(this.byteBuffer!==void 0){let r=this.byteBuffer;return delete this.byteBuffer,r}if(this.stringBuffer!==void 0){let r=this.stringBuffer;return delete this.stringBuffer,r}let e=this.buffer;return this.settings.xmlNamespace&&(e?.attributes?.xmlns||e.addAttribute("xmlns",this.settings.xmlNamespace)),delete this.buffer,e.toString()}writeStruct(e,r,n){let s=e.getMergedTraits(),o=e.isMemberSchema()&&!s.httpPayload?e.getMemberTraits().xmlName??e.getMemberName():s.xmlName??e.getName();if(!o||!e.isStructSchema())throw new Error(`@aws-sdk/core/protocols - xml serializer, cannot write struct with empty name or non-struct, schema=${e.getName(!0)}.`);let i=es.XmlNode.of(o),[a,c]=this.getXmlnsAttribute(e,n);for(let[l,d]of e.structIterator()){let p=r[l];if(p!=null||d.isIdempotencyToken()){if(d.getMergedTraits().xmlAttribute){i.addAttribute(d.getMergedTraits().xmlName??l,this.writeSimple(d,p));continue}if(d.isListSchema())this.writeList(d,p,i,c);else if(d.isMapSchema())this.writeMap(d,p,i,c);else if(d.isStructSchema())i.addChildNode(this.writeStruct(d,p,c));else{let g=es.XmlNode.of(d.getMergedTraits().xmlName??d.getMemberName());this.writeSimpleInto(d,p,g,c),i.addChildNode(g)}}}let{$unknown:u}=r;if(u&&e.isUnionSchema()&&Array.isArray(u)&&Object.keys(r).length===1){let[l,d]=u,p=es.XmlNode.of(l);if(typeof d!="string")if(r instanceof es.XmlNode||r instanceof es.XmlText)i.addChildNode(r);else throw new Error("@aws-sdk - $unknown union member in XML requires value of type string, @aws-sdk/xml-builder::XmlNode or XmlText.");this.writeSimpleInto(0,d,p,c),i.addChildNode(p)}return c&&i.addAttribute(a,c),i}writeList(e,r,n,s){if(!e.isMemberSchema())throw new Error(`@aws-sdk/core/protocols - xml serializer, cannot write non-member list: ${e.getName(!0)}`);let o=e.getMergedTraits(),i=e.getValueSchema(),a=i.getMergedTraits(),c=!!a.sparse,u=!!o.xmlFlattened,[l,d]=this.getXmlnsAttribute(e,s),p=(g,y)=>{if(i.isListSchema())this.writeList(i,Array.isArray(y)?y:[y],g,d);else if(i.isMapSchema())this.writeMap(i,y,g,d);else if(i.isStructSchema()){let R=this.writeStruct(i,y,d);g.addChildNode(R.withName(u?o.xmlName??e.getMemberName():a.xmlName??"member"))}else{let R=es.XmlNode.of(u?o.xmlName??e.getMemberName():a.xmlName??"member");this.writeSimpleInto(i,y,R,d),g.addChildNode(R)}};if(u)for(let g of r)(c||g!=null)&&p(n,g);else{let g=es.XmlNode.of(o.xmlName??e.getMemberName());d&&g.addAttribute(l,d);for(let y of r)(c||y!=null)&&p(g,y);n.addChildNode(g)}}writeMap(e,r,n,s,o=!1){if(!e.isMemberSchema())throw new Error(`@aws-sdk/core/protocols - xml serializer, cannot write non-member map: ${e.getName(!0)}`);let i=e.getMergedTraits(),a=e.getKeySchema(),u=a.getMergedTraits().xmlName??"key",l=e.getValueSchema(),d=l.getMergedTraits(),p=d.xmlName??"value",g=!!d.sparse,y=!!i.xmlFlattened,[R,D]=this.getXmlnsAttribute(e,s),B=(M,ge,Y)=>{let Te=es.XmlNode.of(u,ge),[Ht,Tt]=this.getXmlnsAttribute(a,D);Tt&&Te.addAttribute(Ht,Tt),M.addChildNode(Te);let Ne=es.XmlNode.of(p);l.isListSchema()?this.writeList(l,Y,Ne,D):l.isMapSchema()?this.writeMap(l,Y,Ne,D,!0):l.isStructSchema()?Ne=this.writeStruct(l,Y,D):this.writeSimpleInto(l,Y,Ne,D),M.addChildNode(Ne)};if(y)for(let M in r){let ge=r[M];if(g||ge!=null){let Y=es.XmlNode.of(i.xmlName??e.getMemberName());B(Y,M,ge),n.addChildNode(Y)}}else{let M;o||(M=es.XmlNode.of(i.xmlName??e.getMemberName()),D&&M.addAttribute(R,D),n.addChildNode(M));for(let ge in r){let Y=r[ge];if(g||Y!=null){let Te=es.XmlNode.of("entry");B(Te,ge,Y),(o?n:M).addChildNode(Te)}}}}writeSimple(e,r){if(r===null)throw new Error("@aws-sdk/core/protocols - (XML serializer) cannot write null value.");let n=wk.NormalizedSchema.of(e),s=null;if(r&&typeof r=="object")if(n.isBlobSchema())s=(this.serdeContext?.base64Encoder??Ok.toBase64)(r);else if(n.isTimestampSchema()&&r instanceof Date)switch((0,owe.determineTimestampFormat)(n,this.settings)){case 5:s=r.toISOString().replace(".000Z","Z");break;case 6:s=(0,VK.dateToUtcString)(r);break;case 7:s=String(r.getTime()/1e3);break;default:console.warn("Missing timestamp format, using http date",r),s=(0,VK.dateToUtcString)(r);break}else{if(n.isBigDecimalSchema()&&r)return r instanceof Dk.NumericValue?r.string:String(r);throw n.isMapSchema()||n.isListSchema()?new Error("@aws-sdk/core/protocols - xml serializer, cannot call _write() on List/Map schema, call writeList or writeMap() instead."):new Error(`@aws-sdk/core/protocols - xml serializer, unhandled schema type for object value and schema: ${n.getName(!0)}`)}if((n.isBooleanSchema()||n.isNumericSchema()||n.isBigIntegerSchema()||n.isBigDecimalSchema())&&(s=String(r)),n.isStringSchema()&&(r===void 0&&n.isIdempotencyToken()?s=(0,Dk.generateIdempotencyToken)():s=String(r)),s===null)throw new Error(`Unhandled schema-value pair ${n.getName(!0)}=${r}`);return s}writeSimpleInto(e,r,n,s){let o=this.writeSimple(e,r),i=wk.NormalizedSchema.of(e),a=new es.XmlText(o),[c,u]=this.getXmlnsAttribute(i,s);u&&n.addAttribute(c,u),n.addChildNode(a)}getXmlnsAttribute(e,r){let n=e.getMergedTraits(),[s,o]=n.xmlNamespace??[];return o&&o!==r?[s?`xmlns:${s}`:"xmlns",o]:[void 0,void 0]}}});var NC,zK=_(()=>{Ll();Ak();HK();NC=class extends Bn{settings;constructor(e){super(),this.settings=e}createSerializer(){let e=new kC(this.settings);return e.setSerdeContext(this.serdeContext),e}createDeserializer(){let e=new Rp(this.settings);return e.setSerdeContext(this.serdeContext),e}}});var Wf,WK,KK,iwe=_(()=>{Wf=require("@smithy/core/protocols"),WK=require("@smithy/core/schema");Vf();jK();zK();KK=class extends Wf.HttpBindingProtocol{codec;serializer;deserializer;mixin=new Xo;constructor(e){super(e);let r={timestampFormat:{useTrait:!0,default:5},httpBindings:!0,xmlNamespace:e.xmlNamespace,serviceNamespace:e.defaultNamespace};this.codec=new NC(r),this.serializer=new Wf.HttpInterceptingShapeSerializer(this.codec.createSerializer(),r),this.deserializer=new Wf.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(),r)}getPayloadCodec(){return this.codec}getShapeId(){return"aws.protocols#restXml"}async serializeRequest(e,r,n){let s=await super.serializeRequest(e,r,n),o=WK.NormalizedSchema.of(e.input);if(!s.headers["content-type"]){let i=this.mixin.resolveRestContentType(this.getDefaultContentType(),o);i&&(s.headers["content-type"]=i)}return typeof s.body=="string"&&s.headers["content-type"]===this.getDefaultContentType()&&!s.body.startsWith("'+s.body),s}async deserializeResponse(e,r,n){return super.deserializeResponse(e,r,n)}async handleError(e,r,n,s,o){let i=GK(n,s)??"Unknown";if(this.mixin.compose(this.compositeErrorRegistry,i,this.options.defaultNamespace),s.Error&&typeof s.Error=="object")for(let R of Object.keys(s.Error))s[R]=s.Error[R],R.toLowerCase()==="message"&&(s.message=s.Error[R]);s.RequestId&&!o.requestId&&(o.requestId=s.RequestId);let{errorSchema:a,errorMetadata:c}=await this.mixin.getErrorSchemaOrThrowBaseException(i,this.options.defaultNamespace,n,s,o),u=WK.NormalizedSchema.of(a),l=s.Error?.message??s.Error?.Message??s.message??s.Message??"UnknownError",d=this.compositeErrorRegistry.getErrorCtor(a)??Error,p=new d(l);await this.deserializeHttpMessage(a,r,n,s);let g={},y=this.codec.createDeserializer();for(let[R,D]of u.structIterator()){let B=D.getMergedTraits().xmlName??R,M=s.Error?.[B]??s[B];g[R]=y.readSchema(D,M)}throw this.mixin.decorateServiceException(Object.assign(p,c,{$fault:u.getMergedTraits().error,message:l},g),s)}getDefaultContentType(){return"application/xml"}hasUnstructuredPayloadBinding(e){for(let[,r]of e.structIterator())if(r.getMergedTraits().httpPayload)return!(r.isStructSchema()||r.isMapSchema()||r.isListSchema());return!1}}});var awe={};wt(awe,{AwsEc2QueryProtocol:()=>$K,AwsJson1_0Protocol:()=>OK,AwsJson1_1Protocol:()=>kK,AwsJsonRpcProtocol:()=>_p,AwsQueryProtocol:()=>vp,AwsRestJsonProtocol:()=>Yc,AwsRestXmlProtocol:()=>KK,AwsSmithyRpcV2CborProtocol:()=>PK,JsonCodec:()=>yp,JsonShapeDeserializer:()=>IC,JsonShapeSerializer:()=>AC,QueryShapeSerializer:()=>wC,XmlCodec:()=>NC,XmlShapeDeserializer:()=>Rp,XmlShapeSerializer:()=>kC,_toBool:()=>wTt,_toNum:()=>DTt,_toStr:()=>TTt,awsExpectUnion:()=>kTt,loadRestJsonErrorCode:()=>PC,loadRestXmlErrorCode:()=>GK,parseJsonBody:()=>fk,parseJsonErrorBody:()=>OTt,parseXmlBody:()=>swe,parseXmlErrorBody:()=>QTt});var Kf=_(()=>{vTe();xTe();UTe();qTe();_k();$Te();Ek();TK();DK();jTe();bC();ewe();qK();twe();UK();iwe();zK();Ak();HK();jK()});var pwe,LC,xp,kk,cwe,mwe,Nk,QK,uwe,XK,Qf,lwe,dwe,XTt,xs,JTt,gwe,fwe=_(()=>{pwe=require("@smithy/util-endpoints"),LC="ref",xp=-1,kk=!0,cwe="isSet",mwe="PartitionResult",Nk="booleanEquals",QK="getAttr",uwe={[LC]:"Endpoint"},XK={[LC]:mwe},Qf={},lwe=[{[LC]:"Region"}],dwe={conditions:[[cwe,[uwe]],[cwe,lwe],["aws.partition",lwe,mwe],[Nk,[{[LC]:"UseFIPS"},kk]],[Nk,[{[LC]:"UseDualStack"},kk]],[Nk,[{fn:QK,argv:[XK,"supportsDualStack"]},kk]],[Nk,[{fn:QK,argv:[XK,"supportsFIPS"]},kk]],["stringEquals",[{fn:QK,argv:[XK,"name"]},"aws-us-gov"]]],results:[[xp],[xp,"Invalid Configuration: FIPS and custom endpoint are not supported"],[xp,"Invalid Configuration: Dualstack and custom endpoint are not supported"],[uwe,Qf],["https://oidc-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",Qf],[xp,"FIPS and DualStack are enabled, but this partition does not support one or both"],["https://oidc.{Region}.amazonaws.com",Qf],["https://oidc-fips.{Region}.{PartitionResult#dnsSuffix}",Qf],[xp,"FIPS is enabled but this partition does not support FIPS"],["https://oidc.{Region}.{PartitionResult#dualStackDnsSuffix}",Qf],[xp,"DualStack is enabled but this partition does not support DualStack"],["https://oidc.{Region}.{PartitionResult#dnsSuffix}",Qf],[xp,"Invalid Configuration: Missing Region"]]},XTt=2,xs=1e8,JTt=new Int32Array([-1,1,-1,0,13,3,1,4,xs+12,2,5,xs+12,3,8,6,4,7,xs+11,5,xs+9,xs+10,4,11,9,6,10,xs+8,7,xs+6,xs+7,5,12,xs+5,6,xs+4,xs+5,3,xs+1,14,4,xs+2,xs+3]),gwe=pwe.BinaryDecisionDiagram.from(JTt,XTt,dwe.conditions,dwe.results)});var hwe,Xf,YTt,Swe,Ewe=_(()=>{hwe=O(Uf()),Xf=require("@smithy/util-endpoints");fwe();YTt=new Xf.EndpointCache({size:50,params:["Endpoint","Region","UseDualStack","UseFIPS"]}),Swe=(t,e={})=>YTt.get(t,()=>(0,Xf.decideEndpoint)(gwe,{endpointParams:t,logger:e.logger}));Xf.customEndpointFunctions.aws=hwe.awsEndpointFunctions});var ywe,Xr,Lk=_(()=>{ywe=require("@smithy/smithy-client"),Xr=class t extends ywe.ServiceException{constructor(e){super(e),Object.setPrototypeOf(this,t.prototype)}}});var MC,FC,BC,UC,qC,$C,GC,jC,VC,HC,zC,JK=_(()=>{Lk();MC=class t extends Xr{name="AccessDeniedException";$fault="client";error;reason;error_description;constructor(e){super({name:"AccessDeniedException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error,this.reason=e.reason,this.error_description=e.error_description}},FC=class t extends Xr{name="AuthorizationPendingException";$fault="client";error;error_description;constructor(e){super({name:"AuthorizationPendingException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error,this.error_description=e.error_description}},BC=class t extends Xr{name="ExpiredTokenException";$fault="client";error;error_description;constructor(e){super({name:"ExpiredTokenException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error,this.error_description=e.error_description}},UC=class t extends Xr{name="InternalServerException";$fault="server";error;error_description;constructor(e){super({name:"InternalServerException",$fault:"server",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error,this.error_description=e.error_description}},qC=class t extends Xr{name="InvalidClientException";$fault="client";error;error_description;constructor(e){super({name:"InvalidClientException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error,this.error_description=e.error_description}},$C=class t extends Xr{name="InvalidGrantException";$fault="client";error;error_description;constructor(e){super({name:"InvalidGrantException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error,this.error_description=e.error_description}},GC=class t extends Xr{name="InvalidRequestException";$fault="client";error;reason;error_description;constructor(e){super({name:"InvalidRequestException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error,this.reason=e.reason,this.error_description=e.error_description}},jC=class t extends Xr{name="InvalidScopeException";$fault="client";error;error_description;constructor(e){super({name:"InvalidScopeException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error,this.error_description=e.error_description}},VC=class t extends Xr{name="SlowDownException";$fault="client";error;error_description;constructor(e){super({name:"SlowDownException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error,this.error_description=e.error_description}},HC=class t extends Xr{name="UnauthorizedClientException";$fault="client";error;error_description;constructor(e){super({name:"UnauthorizedClientException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error,this.error_description=e.error_description}},zC=class t extends Xr{name="UnsupportedGrantTypeException";$fault="client";error;error_description;constructor(e){super({name:"UnsupportedGrantTypeException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error,this.error_description=e.error_description}}});var YK,ZTt,ewt,twt,rwt,nwt,swt,owt,iwt,awt,cwt,uwt,lwt,dwt,pwt,mwt,gwt,fwt,hwt,Swt,Ewt,Va,ywt,_wt,Cwt,Rwt,vwt,mr,xwt,Qi,Pwt,bwt,Xi,Iwt,_we,Cwe,Awt,Rwe,Twt,wwt,Dwt,Tr,vwe,xwe,Jo,Pwe,bwe,Iwe,Awe,Twe,wwe,Dwe,Owe,kwe,Nwe,Lwe,ZK,Owt,kwt,Nwt,Lwt,Mwe,Fwe,Bwe,e6,Mk=_(()=>{YK=require("@smithy/core/schema");JK();Lk();ZTt="AccessDeniedException",ewt="AuthorizationPendingException",twt="AccessToken",rwt="ClientSecret",nwt="CreateToken",swt="CreateTokenRequest",owt="CreateTokenResponse",iwt="CodeVerifier",awt="ExpiredTokenException",cwt="InvalidClientException",uwt="InvalidGrantException",lwt="InvalidRequestException",dwt="InternalServerException",pwt="InvalidScopeException",mwt="IdToken",gwt="RefreshToken",fwt="SlowDownException",hwt="UnauthorizedClientException",Swt="UnsupportedGrantTypeException",Ewt="accessToken",Va="client",ywt="clientId",_wt="clientSecret",Cwt="codeVerifier",Rwt="code",vwt="deviceCode",mr="error",xwt="expiresIn",Qi="error_description",Pwt="grantType",bwt="http",Xi="httpError",Iwt="idToken",_we="reason",Cwe="refreshToken",Awt="redirectUri",Rwe="smithy.ts.sdk.synthetic.com.amazonaws.ssooidc",Twt="scope",wwt="server",Dwt="tokenType",Tr="com.amazonaws.ssooidc",vwe=YK.TypeRegistry.for(Rwe),xwe=[-3,Rwe,"SSOOIDCServiceException",0,[],[]];vwe.registerError(xwe,Xr);Jo=YK.TypeRegistry.for(Tr),Pwe=[-3,Tr,ZTt,{[mr]:Va,[Xi]:400},[mr,_we,Qi],[0,0,0]];Jo.registerError(Pwe,MC);bwe=[-3,Tr,ewt,{[mr]:Va,[Xi]:400},[mr,Qi],[0,0]];Jo.registerError(bwe,FC);Iwe=[-3,Tr,awt,{[mr]:Va,[Xi]:400},[mr,Qi],[0,0]];Jo.registerError(Iwe,BC);Awe=[-3,Tr,dwt,{[mr]:wwt,[Xi]:500},[mr,Qi],[0,0]];Jo.registerError(Awe,UC);Twe=[-3,Tr,cwt,{[mr]:Va,[Xi]:401},[mr,Qi],[0,0]];Jo.registerError(Twe,qC);wwe=[-3,Tr,uwt,{[mr]:Va,[Xi]:400},[mr,Qi],[0,0]];Jo.registerError(wwe,$C);Dwe=[-3,Tr,lwt,{[mr]:Va,[Xi]:400},[mr,_we,Qi],[0,0,0]];Jo.registerError(Dwe,GC);Owe=[-3,Tr,pwt,{[mr]:Va,[Xi]:400},[mr,Qi],[0,0]];Jo.registerError(Owe,jC);kwe=[-3,Tr,fwt,{[mr]:Va,[Xi]:400},[mr,Qi],[0,0]];Jo.registerError(kwe,VC);Nwe=[-3,Tr,hwt,{[mr]:Va,[Xi]:400},[mr,Qi],[0,0]];Jo.registerError(Nwe,HC);Lwe=[-3,Tr,Swt,{[mr]:Va,[Xi]:400},[mr,Qi],[0,0]];Jo.registerError(Lwe,zC);ZK=[vwe,Jo],Owt=[0,Tr,twt,8,0],kwt=[0,Tr,rwt,8,0],Nwt=[0,Tr,iwt,8,0],Lwt=[0,Tr,mwt,8,0],Mwe=[0,Tr,gwt,8,0],Fwe=[3,Tr,swt,0,[ywt,_wt,Pwt,vwt,Rwt,Cwe,Twt,Awt,Cwt],[0,[()=>kwt,0],0,0,0,[()=>Mwe,0],64,0,[()=>Nwt,0]],3],Bwe=[3,Tr,owt,0,[Ewt,Dwt,xwt,Cwe,Iwt],[[()=>Owt,0],0,1,[()=>Mwe,0],[()=>Lwt,0]]],e6=[9,Tr,nwt,{[bwt]:["POST","/token",200]},()=>Fwe,()=>Bwe]});var Uwe,qwe,$we,Fk,Bk,Gwe,jwe=_(()=>{io();Kf();Uwe=require("@smithy/core"),qwe=require("@smithy/smithy-client"),$we=require("@smithy/url-parser"),Fk=require("@smithy/util-base64"),Bk=require("@smithy/util-utf8");RK();Ewe();Mk();Gwe=t=>({apiVersion:"2019-06-10",base64Decoder:t?.base64Decoder??Fk.fromBase64,base64Encoder:t?.base64Encoder??Fk.toBase64,disableHostPrefix:t?.disableHostPrefix??!1,endpointProvider:t?.endpointProvider??Swe,extensions:t?.extensions??[],httpAuthSchemeProvider:t?.httpAuthSchemeProvider??lTe,httpAuthSchemes:t?.httpAuthSchemes??[{schemeId:"aws.auth#sigv4",identityProvider:e=>e.getIdentityProvider("aws.auth#sigv4"),signer:new Zn},{schemeId:"smithy.api#noAuth",identityProvider:e=>e.getIdentityProvider("smithy.api#noAuth")||(async()=>({})),signer:new Uwe.NoAuthSigner}],logger:t?.logger??new qwe.NoOpLogger,protocol:t?.protocol??Yc,protocolSettings:t?.protocolSettings??{defaultNamespace:"com.amazonaws.ssooidc",errorTypeRegistries:ZK,version:"2019-06-10",serviceTarget:"AWSSSOOIDCService"},serviceId:t?.serviceId??"SSO OIDC",urlParser:t?.urlParser??$we.parseUrl,utf8Decoder:t?.utf8Decoder??Bk.fromUtf8,utf8Encoder:t?.utf8Encoder??Bk.toUtf8})});var Uk,Fl,Vwe,qk,Ml,$k,Gk,Hwe,zwe,Wwe,Kwe,Qwe=_(()=>{CC();Qc();io();Uk=O(vC()),Fl=require("@smithy/config-resolver"),Vwe=require("@smithy/hash-node"),qk=require("@smithy/middleware-retry"),Ml=require("@smithy/node-config-provider"),$k=require("@smithy/node-http-handler"),Gk=require("@smithy/smithy-client"),Hwe=require("@smithy/util-body-length-node"),zwe=require("@smithy/util-defaults-mode-node"),Wwe=require("@smithy/util-retry");jwe();Kwe=t=>{(0,Gk.emitWarningIfUnsupportedVersion)(process.version);let e=(0,zwe.resolveDefaultsModeConfig)(t),r=()=>e().then(Gk.loadConfigsForDefaultMode),n=Gwe(t);Kc(process.version);let s={profile:t?.profile,logger:n.logger};return{...n,...t,runtime:"node",defaultsMode:e,authSchemePreference:t?.authSchemePreference??(0,Ml.loadConfig)(Ol,s),bodyLengthChecker:t?.bodyLengthChecker??Hwe.calculateBodyLength,defaultUserAgentProvider:t?.defaultUserAgentProvider??(0,Uk.createDefaultUserAgentProvider)({serviceId:n.serviceId,clientVersion:Nl.version}),maxAttempts:t?.maxAttempts??(0,Ml.loadConfig)(qk.NODE_MAX_ATTEMPT_CONFIG_OPTIONS,t),region:t?.region??(0,Ml.loadConfig)(Fl.NODE_REGION_CONFIG_OPTIONS,{...Fl.NODE_REGION_CONFIG_FILE_OPTIONS,...s}),requestHandler:$k.NodeHttpHandler.create(t?.requestHandler??r),retryMode:t?.retryMode??(0,Ml.loadConfig)({...qk.NODE_RETRY_MODE_CONFIG_OPTIONS,default:async()=>(await r()).retryMode||Wwe.DEFAULT_RETRY_MODE},t),sha256:t?.sha256??Vwe.Hash.bind(null,"sha256"),streamCollector:t?.streamCollector??$k.streamCollector,useDualstackEndpoint:t?.useDualstackEndpoint??(0,Ml.loadConfig)(Fl.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS,s),useFipsEndpoint:t?.useFipsEndpoint??(0,Ml.loadConfig)(Fl.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS,s),userAgentAppId:t?.userAgentAppId??(0,Ml.loadConfig)(Uk.NODE_APP_ID_CONFIG_OPTIONS,s)}}});var Jwe=b(Jf=>{"use strict";Object.defineProperty(Jf,"__esModule",{value:!0});Jf.warning=void 0;Jf.stsRegionDefaultResolver=Fwt;var Xwe=require("@smithy/config-resolver"),Mwt=require("@smithy/node-config-provider");function Fwt(t={}){return(0,Mwt.loadConfig)({...Xwe.NODE_REGION_CONFIG_OPTIONS,async default(){return Jf.warning.silence||console.warn("@aws-sdk - WARN - default STS region of us-east-1 used. See @aws-sdk/credential-providers README and set a region explicitly."),"us-east-1"}},{...Xwe.NODE_REGION_CONFIG_FILE_OPTIONS,...t})}Jf.warning={silence:!1}});var Yf=b(Yo=>{"use strict";var jk=Jwe(),WC=require("@smithy/config-resolver"),Bwt=t=>({setRegion(e){t.region=e},region(){return t.region}}),Uwt=t=>({region:t.region()});Yo.NODE_REGION_CONFIG_FILE_OPTIONS=WC.NODE_REGION_CONFIG_FILE_OPTIONS;Yo.NODE_REGION_CONFIG_OPTIONS=WC.NODE_REGION_CONFIG_OPTIONS;Yo.REGION_ENV_NAME=WC.REGION_ENV_NAME;Yo.REGION_INI_NAME=WC.REGION_INI_NAME;Yo.resolveRegionConfig=WC.resolveRegionConfig;Yo.getAwsRegionExtensionConfiguration=Bwt;Yo.resolveAwsRegionExtensionConfiguration=Uwt;Object.prototype.hasOwnProperty.call(jk,"__proto__")&&!Object.prototype.hasOwnProperty.call(Yo,"__proto__")&&Object.defineProperty(Yo,"__proto__",{enumerable:!0,value:jk.__proto__});Object.keys(jk).forEach(function(t){t!=="default"&&!Object.prototype.hasOwnProperty.call(Yo,t)&&(Yo[t]=jk[t])})});var Ywe,Zwe,eDe=_(()=>{Ywe=t=>{let e=t.httpAuthSchemes,r=t.httpAuthSchemeProvider,n=t.credentials;return{setHttpAuthScheme(s){let o=e.findIndex(i=>i.schemeId===s.schemeId);o===-1?e.push(s):e.splice(o,1,s)},httpAuthSchemes(){return e},setHttpAuthSchemeProvider(s){r=s},httpAuthSchemeProvider(){return r},setCredentials(s){n=s},credentials(){return n}}},Zwe=t=>({httpAuthSchemes:t.httpAuthSchemes(),httpAuthSchemeProvider:t.httpAuthSchemeProvider(),credentials:t.credentials()})});var Vk,Hk,zk,tDe,rDe=_(()=>{Vk=O(Yf()),Hk=require("@smithy/protocol-http"),zk=require("@smithy/smithy-client");eDe();tDe=(t,e)=>{let r=Object.assign((0,Vk.getAwsRegionExtensionConfiguration)(t),(0,zk.getDefaultExtensionConfiguration)(t),(0,Hk.getHttpHandlerExtensionConfiguration)(t),Ywe(t));return e.forEach(n=>n.configure(r)),Object.assign(t,(0,Vk.resolveAwsRegionExtensionConfiguration)(r),(0,zk.resolveDefaultRuntimeConfig)(r),(0,Hk.resolveHttpHandlerRuntimeConfig)(r),Zwe(r))}});var Wk,nDe,sDe,Kk,oDe,Zf,iDe,aDe,cDe,Qk,t6,KC,r6=_(()=>{Wk=O(fC()),nDe=O(hC()),sDe=O(EC()),Kk=O($f()),oDe=require("@smithy/config-resolver"),Zf=require("@smithy/core"),iDe=require("@smithy/core/schema"),aDe=require("@smithy/middleware-content-length"),cDe=require("@smithy/middleware-endpoint"),Qk=require("@smithy/middleware-retry"),t6=require("@smithy/smithy-client");RK();vK();Qwe();rDe();KC=class extends t6.Client{config;constructor(...[e]){let r=Kwe(e||{});super(r),this.initConfig=r;let n=pTe(r),s=(0,Kk.resolveUserAgentConfig)(n),o=(0,Qk.resolveRetryConfig)(s),i=(0,oDe.resolveRegionConfig)(o),a=(0,Wk.resolveHostHeaderConfig)(i),c=(0,cDe.resolveEndpointConfig)(a),u=dTe(c),l=tDe(u,e?.extensions||[]);this.config=l,this.middlewareStack.use((0,iDe.getSchemaSerdePlugin)(this.config)),this.middlewareStack.use((0,Kk.getUserAgentPlugin)(this.config)),this.middlewareStack.use((0,Qk.getRetryPlugin)(this.config)),this.middlewareStack.use((0,aDe.getContentLengthPlugin)(this.config)),this.middlewareStack.use((0,Wk.getHostHeaderPlugin)(this.config)),this.middlewareStack.use((0,nDe.getLoggerPlugin)(this.config)),this.middlewareStack.use((0,sDe.getRecursionDetectionPlugin)(this.config)),this.middlewareStack.use((0,Zf.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config,{httpAuthSchemeParametersProvider:uTe,identityProviderConfigProvider:async d=>new Zf.DefaultIdentityProviderConfig({"aws.auth#sigv4":d.credentials})})),this.middlewareStack.use((0,Zf.getHttpSigningPlugin)(this.config))}destroy(){super.destroy()}}});var uDe,n6,QC,s6=_(()=>{uDe=require("@smithy/middleware-endpoint"),n6=require("@smithy/smithy-client");vK();Mk();QC=class extends n6.Command.classBuilder().ep(mTe).m(function(e,r,n,s){return[(0,uDe.getEndpointPlugin)(n,e.getEndpointParameterInstructions())]}).s("AWSSSOOIDCService","CreateToken",{}).n("SSOOIDCClient","CreateTokenCommand").sc(e6).build(){}});var lDe,qwt,Xk,dDe=_(()=>{lDe=require("@smithy/smithy-client");s6();r6();qwt={CreateTokenCommand:QC},Xk=class extends KC{};(0,lDe.createAggregatedClient)(qwt,Xk)});var pDe=_(()=>{s6()});var $wt,Gwt,mDe=_(()=>{$wt={KMS_ACCESS_DENIED:"KMS_AccessDeniedException"},Gwt={KMS_DISABLED_KEY:"KMS_DisabledException",KMS_INVALID_KEY_USAGE:"KMS_InvalidKeyUsageException",KMS_INVALID_STATE:"KMS_InvalidStateException",KMS_KEY_NOT_FOUND:"KMS_NotFoundException"}});var gDe=_(()=>{});var o6={};wt(o6,{$Command:()=>n6.Command,AccessDeniedException:()=>MC,AccessDeniedException$:()=>Pwe,AccessDeniedExceptionReason:()=>$wt,AuthorizationPendingException:()=>FC,AuthorizationPendingException$:()=>bwe,CreateToken$:()=>e6,CreateTokenCommand:()=>QC,CreateTokenRequest$:()=>Fwe,CreateTokenResponse$:()=>Bwe,ExpiredTokenException:()=>BC,ExpiredTokenException$:()=>Iwe,InternalServerException:()=>UC,InternalServerException$:()=>Awe,InvalidClientException:()=>qC,InvalidClientException$:()=>Twe,InvalidGrantException:()=>$C,InvalidGrantException$:()=>wwe,InvalidRequestException:()=>GC,InvalidRequestException$:()=>Dwe,InvalidRequestExceptionReason:()=>Gwt,InvalidScopeException:()=>jC,InvalidScopeException$:()=>Owe,SSOOIDC:()=>Xk,SSOOIDCClient:()=>KC,SSOOIDCServiceException:()=>Xr,SSOOIDCServiceException$:()=>xwe,SlowDownException:()=>VC,SlowDownException$:()=>kwe,UnauthorizedClientException:()=>HC,UnauthorizedClientException$:()=>Nwe,UnsupportedGrantTypeException:()=>zC,UnsupportedGrantTypeException$:()=>Lwe,__Client:()=>t6.Client,errorTypeRegistries:()=>ZK});var i6=_(()=>{r6();dDe();pDe();Mk();mDe();JK();gDe();Lk()});var EDe=b(JC=>{"use strict";var jwt=(Ko(),ue(Ga)),Vwt=(MW(),ue(dIe)),co=require("@smithy/property-provider"),XC=require("@smithy/shared-ini-file-loader"),Hwt=require("node:fs"),zwt=({logger:t,signingName:e}={})=>async()=>{if(t?.debug?.("@aws-sdk/token-providers - fromEnvSigningName"),!e)throw new co.TokenProviderError("Please pass 'signingName' to compute environment variable key",{logger:t});let r=Vwt.getBearerTokenEnvKey(e);if(!(r in process.env))throw new co.TokenProviderError(`Token not present in '${r}' environment variable`,{logger:t});let n={token:process.env[r]};return jwt.setTokenFeature(n,"BEARER_SERVICE_ENV_VARS","3"),n},Wwt=5*60*1e3,a6="To refresh this SSO session run 'aws sso login' with the corresponding profile.",Kwt=async(t,e={},r)=>{let{SSOOIDCClient:n}=await Promise.resolve().then(()=>(i6(),o6)),s=i=>e.clientConfig?.[i]??e.parentClientConfig?.[i]??r?.[i];return new n(Object.assign({},e.clientConfig??{},{region:t??e.clientConfig?.region,logger:s("logger"),userAgentAppId:s("userAgentAppId")}))},Qwt=async(t,e,r={},n)=>{let{CreateTokenCommand:s}=await Promise.resolve().then(()=>(i6(),o6));return(await Kwt(e,r,n)).send(new s({clientId:t.clientId,clientSecret:t.clientSecret,refreshToken:t.refreshToken,grantType:"refresh_token"}))},fDe=t=>{if(t.expiration&&t.expiration.getTime(){if(typeof e>"u")throw new co.TokenProviderError(`Value not present for '${t}' in SSO Token${r?". Cannot refresh":""}. ${a6}`,!1)},{writeFile:Xwt}=Hwt.promises,Jwt=(t,e)=>{let r=XC.getSSOTokenFilepath(t),n=JSON.stringify(e,null,2);return Xwt(r,n)},hDe=new Date(0),SDe=(t={})=>async({callerClientConfig:e}={})=>{t.logger?.debug("@aws-sdk/token-providers - fromSso");let r=await XC.parseKnownFiles(t),n=XC.getProfileName({profile:t.profile??e?.profile}),s=r[n];if(s){if(!s.sso_session)throw new co.TokenProviderError(`Profile '${n}' is missing required property 'sso_session'.`)}else throw new co.TokenProviderError(`Profile '${n}' could not be found in shared credentials file.`,!1);let o=s.sso_session,a=(await XC.loadSsoSessionData(t))[o];if(!a)throw new co.TokenProviderError(`Sso session '${o}' could not be found in shared credentials file.`,!1);for(let g of["sso_start_url","sso_region"])if(!a[g])throw new co.TokenProviderError(`Sso session '${o}' is missing required property '${g}'.`,!1);a.sso_start_url;let c=a.sso_region,u;try{u=await XC.getSSOTokenFromFile(o)}catch{throw new co.TokenProviderError(`The SSO session token associated with profile=${n} was not found or is invalid. ${a6}`,!1)}Pp("accessToken",u.accessToken),Pp("expiresAt",u.expiresAt);let{accessToken:l,expiresAt:d}=u,p={token:l,expiration:new Date(d)};if(p.expiration.getTime()-Date.now()>Wwt)return p;if(Date.now()-hDe.getTime()<30*1e3)return fDe(p),p;Pp("clientId",u.clientId,!0),Pp("clientSecret",u.clientSecret,!0),Pp("refreshToken",u.refreshToken,!0);try{hDe.setTime(Date.now());let g=await Qwt(u,c,t,e);Pp("accessToken",g.accessToken),Pp("expiresIn",g.expiresIn);let y=new Date(Date.now()+g.expiresIn*1e3);try{await Jwt(o,{...u,accessToken:g.accessToken,expiresAt:y.toISOString(),refreshToken:g.refreshToken})}catch{}return{token:g.accessToken,expiration:y}}catch{return fDe(p),p}},Ywt=({token:t,logger:e})=>async()=>{if(e?.debug("@aws-sdk/token-providers - fromStatic"),!t||!t.token)throw new co.TokenProviderError("Please pass a valid token to fromStatic",!1);return t},Zwt=(t={})=>co.memoize(co.chain(SDe(t),async()=>{throw new co.TokenProviderError("Could not load token from any providers",!1)}),e=>e.expiration!==void 0&&e.expiration.getTime()-Date.now()<3e5,e=>e.expiration!==void 0);JC.fromEnvSigningName=zwt;JC.fromSso=SDe;JC.fromStatic=Ywt;JC.nodeProvider=Zwt});function eDt(t){return{schemeId:"aws.auth#sigv4",signingProperties:{name:"awsssoportal",region:t.region},propertiesExtractor:(e,r)=>({signingProperties:{config:e,context:r}})}}function tDt(t){return{schemeId:"smithy.api#noAuth"}}var YC,yDe,_De,CDe,c6=_(()=>{io();YC=require("@smithy/util-middleware"),yDe=async(t,e,r)=>({operation:(0,YC.getSmithyContext)(e).operation,region:await(0,YC.normalizeProvider)(t.region)()||(()=>{throw new Error("expected `region` to be configured for `aws.auth#sigv4`")})()});_De=t=>{let e=[];switch(t.operation){case"GetRoleCredentials":{e.push(tDt(t));break}default:e.push(eDt(t))}return e},CDe=t=>{let e=kl(t);return Object.assign(e,{authSchemePreference:(0,YC.normalizeProvider)(t.authSchemePreference??[])})}});var RDe,vDe,u6=_(()=>{RDe=t=>Object.assign(t,{useDualstackEndpoint:t.useDualstackEndpoint??!1,useFipsEndpoint:t.useFipsEndpoint??!1,defaultSigningName:"awsssoportal"}),vDe={UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}});var ADe,ZC,bp,Jk,xDe,TDe,Yk,l6,PDe,d6,eh,bDe,IDe,rDt,Ps,nDt,wDe,DDe=_(()=>{ADe=require("@smithy/util-endpoints"),ZC="ref",bp=-1,Jk=!0,xDe="isSet",TDe="PartitionResult",Yk="booleanEquals",l6="getAttr",PDe={[ZC]:"Endpoint"},d6={[ZC]:TDe},eh={},bDe=[{[ZC]:"Region"}],IDe={conditions:[[xDe,[PDe]],[xDe,bDe],["aws.partition",bDe,TDe],[Yk,[{[ZC]:"UseFIPS"},Jk]],[Yk,[{[ZC]:"UseDualStack"},Jk]],[Yk,[{fn:l6,argv:[d6,"supportsDualStack"]},Jk]],[Yk,[{fn:l6,argv:[d6,"supportsFIPS"]},Jk]],["stringEquals",[{fn:l6,argv:[d6,"name"]},"aws-us-gov"]]],results:[[bp],[bp,"Invalid Configuration: FIPS and custom endpoint are not supported"],[bp,"Invalid Configuration: Dualstack and custom endpoint are not supported"],[PDe,eh],["https://portal.sso-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",eh],[bp,"FIPS and DualStack are enabled, but this partition does not support one or both"],["https://portal.sso.{Region}.amazonaws.com",eh],["https://portal.sso-fips.{Region}.{PartitionResult#dnsSuffix}",eh],[bp,"FIPS is enabled but this partition does not support FIPS"],["https://portal.sso.{Region}.{PartitionResult#dualStackDnsSuffix}",eh],[bp,"DualStack is enabled but this partition does not support DualStack"],["https://portal.sso.{Region}.{PartitionResult#dnsSuffix}",eh],[bp,"Invalid Configuration: Missing Region"]]},rDt=2,Ps=1e8,nDt=new Int32Array([-1,1,-1,0,13,3,1,4,Ps+12,2,5,Ps+12,3,8,6,4,7,Ps+11,5,Ps+9,Ps+10,4,11,9,6,10,Ps+8,7,Ps+6,Ps+7,5,12,Ps+5,6,Ps+4,Ps+5,3,Ps+1,14,4,Ps+2,Ps+3]),wDe=ADe.BinaryDecisionDiagram.from(nDt,rDt,IDe.conditions,IDe.results)});var ODe,th,sDt,kDe,NDe=_(()=>{ODe=O(Uf()),th=require("@smithy/util-endpoints");DDe();sDt=new th.EndpointCache({size:50,params:["Endpoint","Region","UseDualStack","UseFIPS"]}),kDe=(t,e={})=>sDt.get(t,()=>(0,th.decideEndpoint)(wDe,{endpointParams:t,logger:e.logger}));th.customEndpointFunctions.aws=ODe.awsEndpointFunctions});var LDe,Ji,Zk=_(()=>{LDe=require("@smithy/smithy-client"),Ji=class t extends LDe.ServiceException{constructor(e){super(e),Object.setPrototypeOf(this,t.prototype)}}});var e0,t0,r0,n0,p6=_(()=>{Zk();e0=class t extends Ji{name="InvalidRequestException";$fault="client";constructor(e){super({name:"InvalidRequestException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},t0=class t extends Ji{name="ResourceNotFoundException";$fault="client";constructor(e){super({name:"ResourceNotFoundException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},r0=class t extends Ji{name="TooManyRequestsException";$fault="client";constructor(e){super({name:"TooManyRequestsException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},n0=class t extends Ji{name="UnauthorizedException";$fault="client";constructor(e){super({name:"UnauthorizedException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}}});var m6,oDt,iDt,aDt,cDt,uDt,lDt,dDt,pDt,mDt,gDt,fDt,hDt,SDt,EDt,yDt,eN,tN,_Dt,CDt,rN,RDt,MDe,nN,vDt,xDt,PDt,FDe,bDt,IDt,ADt,Zo,BDe,UDe,s0,qDe,$De,GDe,jDe,g6,TDt,wDt,DDt,VDe,HDe,zDe,f6,sN=_(()=>{m6=require("@smithy/core/schema");p6();Zk();oDt="AccessTokenType",iDt="GetRoleCredentials",aDt="GetRoleCredentialsRequest",cDt="GetRoleCredentialsResponse",uDt="InvalidRequestException",lDt="RoleCredentials",dDt="ResourceNotFoundException",pDt="SecretAccessKeyType",mDt="SessionTokenType",gDt="TooManyRequestsException",fDt="UnauthorizedException",hDt="accountId",SDt="accessKeyId",EDt="accessToken",yDt="account_id",eN="client",tN="error",_Dt="expiration",CDt="http",rN="httpError",RDt="httpHeader",MDe="httpQuery",nN="message",vDt="roleCredentials",xDt="roleName",PDt="role_name",FDe="smithy.ts.sdk.synthetic.com.amazonaws.sso",bDt="secretAccessKey",IDt="sessionToken",ADt="x-amz-sso_bearer_token",Zo="com.amazonaws.sso",BDe=m6.TypeRegistry.for(FDe),UDe=[-3,FDe,"SSOServiceException",0,[],[]];BDe.registerError(UDe,Ji);s0=m6.TypeRegistry.for(Zo),qDe=[-3,Zo,uDt,{[tN]:eN,[rN]:400},[nN],[0]];s0.registerError(qDe,e0);$De=[-3,Zo,dDt,{[tN]:eN,[rN]:404},[nN],[0]];s0.registerError($De,t0);GDe=[-3,Zo,gDt,{[tN]:eN,[rN]:429},[nN],[0]];s0.registerError(GDe,r0);jDe=[-3,Zo,fDt,{[tN]:eN,[rN]:401},[nN],[0]];s0.registerError(jDe,n0);g6=[BDe,s0],TDt=[0,Zo,oDt,8,0],wDt=[0,Zo,pDt,8,0],DDt=[0,Zo,mDt,8,0],VDe=[3,Zo,aDt,0,[xDt,hDt,EDt],[[0,{[MDe]:PDt}],[0,{[MDe]:yDt}],[()=>TDt,{[RDt]:ADt}]],3],HDe=[3,Zo,cDt,0,[vDt],[[()=>zDe,0]]],zDe=[3,Zo,lDt,0,[SDt,bDt,IDt,_Dt],[0,[()=>wDt,0],[()=>DDt,0],1]],f6=[9,Zo,iDt,{[CDt]:["GET","/federation/credentials",200]},()=>VDe,()=>HDe]});var WDe,KDe,QDe,oN,iN,XDe,JDe=_(()=>{io();Kf();WDe=require("@smithy/core"),KDe=require("@smithy/smithy-client"),QDe=require("@smithy/url-parser"),oN=require("@smithy/util-base64"),iN=require("@smithy/util-utf8");c6();NDe();sN();XDe=t=>({apiVersion:"2019-06-10",base64Decoder:t?.base64Decoder??oN.fromBase64,base64Encoder:t?.base64Encoder??oN.toBase64,disableHostPrefix:t?.disableHostPrefix??!1,endpointProvider:t?.endpointProvider??kDe,extensions:t?.extensions??[],httpAuthSchemeProvider:t?.httpAuthSchemeProvider??_De,httpAuthSchemes:t?.httpAuthSchemes??[{schemeId:"aws.auth#sigv4",identityProvider:e=>e.getIdentityProvider("aws.auth#sigv4"),signer:new Zn},{schemeId:"smithy.api#noAuth",identityProvider:e=>e.getIdentityProvider("smithy.api#noAuth")||(async()=>({})),signer:new WDe.NoAuthSigner}],logger:t?.logger??new KDe.NoOpLogger,protocol:t?.protocol??Yc,protocolSettings:t?.protocolSettings??{defaultNamespace:"com.amazonaws.sso",errorTypeRegistries:g6,version:"2019-06-10",serviceTarget:"SWBPortalService"},serviceId:t?.serviceId??"SSO",urlParser:t?.urlParser??QDe.parseUrl,utf8Decoder:t?.utf8Decoder??iN.fromUtf8,utf8Encoder:t?.utf8Encoder??iN.toUtf8})});var aN,Ul,YDe,cN,Bl,uN,lN,ZDe,eOe,tOe,rOe,nOe=_(()=>{CC();Qc();io();aN=O(vC()),Ul=require("@smithy/config-resolver"),YDe=require("@smithy/hash-node"),cN=require("@smithy/middleware-retry"),Bl=require("@smithy/node-config-provider"),uN=require("@smithy/node-http-handler"),lN=require("@smithy/smithy-client"),ZDe=require("@smithy/util-body-length-node"),eOe=require("@smithy/util-defaults-mode-node"),tOe=require("@smithy/util-retry");JDe();rOe=t=>{(0,lN.emitWarningIfUnsupportedVersion)(process.version);let e=(0,eOe.resolveDefaultsModeConfig)(t),r=()=>e().then(lN.loadConfigsForDefaultMode),n=XDe(t);Kc(process.version);let s={profile:t?.profile,logger:n.logger};return{...n,...t,runtime:"node",defaultsMode:e,authSchemePreference:t?.authSchemePreference??(0,Bl.loadConfig)(Ol,s),bodyLengthChecker:t?.bodyLengthChecker??ZDe.calculateBodyLength,defaultUserAgentProvider:t?.defaultUserAgentProvider??(0,aN.createDefaultUserAgentProvider)({serviceId:n.serviceId,clientVersion:Nl.version}),maxAttempts:t?.maxAttempts??(0,Bl.loadConfig)(cN.NODE_MAX_ATTEMPT_CONFIG_OPTIONS,t),region:t?.region??(0,Bl.loadConfig)(Ul.NODE_REGION_CONFIG_OPTIONS,{...Ul.NODE_REGION_CONFIG_FILE_OPTIONS,...s}),requestHandler:uN.NodeHttpHandler.create(t?.requestHandler??r),retryMode:t?.retryMode??(0,Bl.loadConfig)({...cN.NODE_RETRY_MODE_CONFIG_OPTIONS,default:async()=>(await r()).retryMode||tOe.DEFAULT_RETRY_MODE},t),sha256:t?.sha256??YDe.Hash.bind(null,"sha256"),streamCollector:t?.streamCollector??uN.streamCollector,useDualstackEndpoint:t?.useDualstackEndpoint??(0,Bl.loadConfig)(Ul.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS,s),useFipsEndpoint:t?.useFipsEndpoint??(0,Bl.loadConfig)(Ul.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS,s),userAgentAppId:t?.userAgentAppId??(0,Bl.loadConfig)(aN.NODE_APP_ID_CONFIG_OPTIONS,s)}}});var sOe,oOe,iOe=_(()=>{sOe=t=>{let e=t.httpAuthSchemes,r=t.httpAuthSchemeProvider,n=t.credentials;return{setHttpAuthScheme(s){let o=e.findIndex(i=>i.schemeId===s.schemeId);o===-1?e.push(s):e.splice(o,1,s)},httpAuthSchemes(){return e},setHttpAuthSchemeProvider(s){r=s},httpAuthSchemeProvider(){return r},setCredentials(s){n=s},credentials(){return n}}},oOe=t=>({httpAuthSchemes:t.httpAuthSchemes(),httpAuthSchemeProvider:t.httpAuthSchemeProvider(),credentials:t.credentials()})});var dN,pN,mN,aOe,cOe=_(()=>{dN=O(Yf()),pN=require("@smithy/protocol-http"),mN=require("@smithy/smithy-client");iOe();aOe=(t,e)=>{let r=Object.assign((0,dN.getAwsRegionExtensionConfiguration)(t),(0,mN.getDefaultExtensionConfiguration)(t),(0,pN.getHttpHandlerExtensionConfiguration)(t),sOe(t));return e.forEach(n=>n.configure(r)),Object.assign(t,(0,dN.resolveAwsRegionExtensionConfiguration)(r),(0,mN.resolveDefaultRuntimeConfig)(r),(0,pN.resolveHttpHandlerRuntimeConfig)(r),oOe(r))}});var gN,uOe,lOe,fN,dOe,rh,pOe,mOe,gOe,hN,h6,o0,S6=_(()=>{gN=O(fC()),uOe=O(hC()),lOe=O(EC()),fN=O($f()),dOe=require("@smithy/config-resolver"),rh=require("@smithy/core"),pOe=require("@smithy/core/schema"),mOe=require("@smithy/middleware-content-length"),gOe=require("@smithy/middleware-endpoint"),hN=require("@smithy/middleware-retry"),h6=require("@smithy/smithy-client");c6();u6();nOe();cOe();o0=class extends h6.Client{config;constructor(...[e]){let r=rOe(e||{});super(r),this.initConfig=r;let n=RDe(r),s=(0,fN.resolveUserAgentConfig)(n),o=(0,hN.resolveRetryConfig)(s),i=(0,dOe.resolveRegionConfig)(o),a=(0,gN.resolveHostHeaderConfig)(i),c=(0,gOe.resolveEndpointConfig)(a),u=CDe(c),l=aOe(u,e?.extensions||[]);this.config=l,this.middlewareStack.use((0,pOe.getSchemaSerdePlugin)(this.config)),this.middlewareStack.use((0,fN.getUserAgentPlugin)(this.config)),this.middlewareStack.use((0,hN.getRetryPlugin)(this.config)),this.middlewareStack.use((0,mOe.getContentLengthPlugin)(this.config)),this.middlewareStack.use((0,gN.getHostHeaderPlugin)(this.config)),this.middlewareStack.use((0,uOe.getLoggerPlugin)(this.config)),this.middlewareStack.use((0,lOe.getRecursionDetectionPlugin)(this.config)),this.middlewareStack.use((0,rh.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config,{httpAuthSchemeParametersProvider:yDe,identityProviderConfigProvider:async d=>new rh.DefaultIdentityProviderConfig({"aws.auth#sigv4":d.credentials})})),this.middlewareStack.use((0,rh.getHttpSigningPlugin)(this.config))}destroy(){super.destroy()}}});var fOe,E6,i0,y6=_(()=>{fOe=require("@smithy/middleware-endpoint"),E6=require("@smithy/smithy-client");u6();sN();i0=class extends E6.Command.classBuilder().ep(vDe).m(function(e,r,n,s){return[(0,fOe.getEndpointPlugin)(n,e.getEndpointParameterInstructions())]}).s("SWBPortalService","GetRoleCredentials",{}).n("SSOClient","GetRoleCredentialsCommand").sc(f6).build(){}});var hOe,ODt,SN,SOe=_(()=>{hOe=require("@smithy/smithy-client");y6();S6();ODt={GetRoleCredentialsCommand:i0},SN=class extends o0{};(0,hOe.createAggregatedClient)(ODt,SN)});var EOe=_(()=>{y6()});var yOe=_(()=>{});var _Oe={};wt(_Oe,{$Command:()=>E6.Command,GetRoleCredentials$:()=>f6,GetRoleCredentialsCommand:()=>i0,GetRoleCredentialsRequest$:()=>VDe,GetRoleCredentialsResponse$:()=>HDe,InvalidRequestException:()=>e0,InvalidRequestException$:()=>qDe,ResourceNotFoundException:()=>t0,ResourceNotFoundException$:()=>$De,RoleCredentials$:()=>zDe,SSO:()=>SN,SSOClient:()=>o0,SSOServiceException:()=>Ji,SSOServiceException$:()=>UDe,TooManyRequestsException:()=>r0,TooManyRequestsException$:()=>GDe,UnauthorizedException:()=>n0,UnauthorizedException$:()=>jDe,__Client:()=>h6.Client,errorTypeRegistries:()=>g6});var COe=_(()=>{S6();SOe();EOe();sN();p6();yOe();Zk()});var vOe=b(_6=>{"use strict";var ROe=(COe(),ue(_Oe));_6.GetRoleCredentialsCommand=ROe.GetRoleCredentialsCommand;_6.SSOClient=ROe.SSOClient});var C6=b(yN=>{"use strict";var Yi=require("@smithy/property-provider"),EN=require("@smithy/shared-ini-file-loader"),xOe=(Ko(),ue(Ga)),kDt=EDe(),bOe=t=>t&&(typeof t.sso_start_url=="string"||typeof t.sso_account_id=="string"||typeof t.sso_session=="string"||typeof t.sso_region=="string"||typeof t.sso_role_name=="string"),a0=!1,POe=async({ssoStartUrl:t,ssoSession:e,ssoAccountId:r,ssoRegion:n,ssoRoleName:s,ssoClient:o,clientConfig:i,parentClientConfig:a,callerClientConfig:c,profile:u,filepath:l,configFilepath:d,ignoreCache:p,logger:g})=>{let y,R="To refresh this SSO session run aws sso login with the corresponding profile.";if(e)try{let tr=await kDt.fromSso({profile:u,filepath:l,configFilepath:d,ignoreCache:p})();y={accessToken:tr.token,expiresAt:new Date(tr.expiration).toISOString()}}catch(tr){throw new Yi.CredentialsProviderError(tr.message,{tryNextLink:a0,logger:g})}else try{y=await EN.getSSOTokenFromFile(t)}catch{throw new Yi.CredentialsProviderError(`The SSO session associated with this profile is invalid. ${R}`,{tryNextLink:a0,logger:g})}if(new Date(y.expiresAt).getTime()-Date.now()<=0)throw new Yi.CredentialsProviderError(`The SSO session associated with this profile has expired. ${R}`,{tryNextLink:a0,logger:g});let{accessToken:D}=y,{SSOClient:B,GetRoleCredentialsCommand:M}=await Promise.resolve().then(function(){return vOe()}),ge=o||new B(Object.assign({},i??{},{logger:i?.logger??c?.logger??a?.logger,region:i?.region??n,userAgentAppId:i?.userAgentAppId??c?.userAgentAppId??a?.userAgentAppId})),Y;try{Y=await ge.send(new M({accountId:r,roleName:s,accessToken:D}))}catch(tr){throw new Yi.CredentialsProviderError(tr,{tryNextLink:a0,logger:g})}let{roleCredentials:{accessKeyId:Te,secretAccessKey:Ht,sessionToken:Tt,expiration:Ne,credentialScope:Eu,accountId:yu}={}}=Y;if(!Te||!Ht||!Tt||!Ne)throw new Yi.CredentialsProviderError("SSO returns an invalid temporary credential.",{tryNextLink:a0,logger:g});let hi={accessKeyId:Te,secretAccessKey:Ht,sessionToken:Tt,expiration:new Date(Ne),...Eu&&{credentialScope:Eu},...yu&&{accountId:yu}};return e?xOe.setCredentialFeature(hi,"CREDENTIALS_SSO","s"):xOe.setCredentialFeature(hi,"CREDENTIALS_SSO_LEGACY","u"),hi},IOe=(t,e)=>{let{sso_start_url:r,sso_account_id:n,sso_region:s,sso_role_name:o}=t;if(!r||!n||!s||!o)throw new Yi.CredentialsProviderError(`Profile is configured with invalid SSO credentials. Required parameters "sso_account_id", "sso_region", "sso_role_name", "sso_start_url". Got ${Object.keys(t).join(", ")} -Reference: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html`,{tryNextLink:!1,logger:e});return t},NDt=(t={})=>async({callerClientConfig:e}={})=>{t.logger?.debug("@aws-sdk/credential-provider-sso - fromSSO");let{ssoStartUrl:r,ssoAccountId:n,ssoRegion:s,ssoRoleName:o,ssoSession:i}=t,{ssoClient:a}=t,c=EN.getProfileName({profile:t.profile??e?.profile});if(!r&&!n&&!s&&!o&&!i){let l=(await EN.parseKnownFiles(t))[c];if(!l)throw new Yi.CredentialsProviderError(`Profile ${c} was not found.`,{logger:t.logger});if(!bOe(l))throw new Yi.CredentialsProviderError(`Profile ${c} is not configured with SSO credentials.`,{logger:t.logger});if(l?.sso_session){let B=(await EN.loadSsoSessionData(t))[l.sso_session],M=` configurations in profile ${c} and sso-session ${l.sso_session}`;if(s&&s!==B.sso_region)throw new Yi.CredentialsProviderError("Conflicting SSO region"+M,{tryNextLink:!1,logger:t.logger});if(r&&r!==B.sso_start_url)throw new Yi.CredentialsProviderError("Conflicting SSO start_url"+M,{tryNextLink:!1,logger:t.logger});l.sso_region=B.sso_region,l.sso_start_url=B.sso_start_url}let{sso_start_url:d,sso_account_id:p,sso_region:g,sso_role_name:y,sso_session:R}=IOe(l,t.logger);return POe({ssoStartUrl:d,ssoSession:R,ssoAccountId:p,ssoRegion:g,ssoRoleName:y,ssoClient:a,clientConfig:t.clientConfig,parentClientConfig:t.parentClientConfig,callerClientConfig:t.callerClientConfig,profile:c,filepath:t.filepath,configFilepath:t.configFilepath,ignoreCache:t.ignoreCache,logger:t.logger})}else{if(!r||!n||!s||!o)throw new Yi.CredentialsProviderError('Incomplete configuration. The fromSSO() argument hash must include "ssoStartUrl", "ssoAccountId", "ssoRegion", "ssoRoleName"',{tryNextLink:!1,logger:t.logger});return POe({ssoStartUrl:r,ssoSession:i,ssoAccountId:n,ssoRegion:s,ssoRoleName:o,ssoClient:a,clientConfig:t.clientConfig,parentClientConfig:t.parentClientConfig,callerClientConfig:t.callerClientConfig,profile:c,filepath:t.filepath,configFilepath:t.configFilepath,ignoreCache:t.ignoreCache,logger:t.logger})}};yN.fromSSO=NDt;yN.isSsoProfile=bOe;yN.validateSsoProfile=IOe});function LDt(t){return{schemeId:"aws.auth#sigv4",signingProperties:{name:"signin",region:t.region},propertiesExtractor:(e,r)=>({signingProperties:{config:e,context:r}})}}function MDt(t){return{schemeId:"smithy.api#noAuth"}}var c0,AOe,TOe,wOe,R6=_(()=>{io();c0=require("@smithy/util-middleware"),AOe=async(t,e,r)=>({operation:(0,c0.getSmithyContext)(e).operation,region:await(0,c0.normalizeProvider)(t.region)()||(()=>{throw new Error("expected `region` to be configured for `aws.auth#sigv4`")})()});TOe=t=>{let e=[];switch(t.operation){case"CreateOAuth2Token":{e.push(MDt(t));break}default:e.push(LDt(t))}return e},wOe=t=>{let e=kl(t);return Object.assign(e,{authSchemePreference:(0,c0.normalizeProvider)(t.authSchemePreference??[])})}});var DOe,OOe,v6=_(()=>{DOe=t=>Object.assign(t,{useDualstackEndpoint:t.useDualstackEndpoint??!1,useFipsEndpoint:t.useFipsEndpoint??!1,defaultSigningName:"signin"}),OOe={UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}});var FOe,u0,Ip,_N,kOe,BOe,CN,b6,x6,NOe,I6,P6,ql,LOe,MOe,FDt,Un,BDt,UOe,qOe=_(()=>{FOe=require("@smithy/util-endpoints"),u0="ref",Ip=-1,_N=!0,kOe="isSet",BOe="PartitionResult",CN="booleanEquals",b6="getAttr",x6="stringEquals",NOe={[u0]:"Endpoint"},I6={[u0]:BOe},P6={fn:b6,argv:[I6,"name"]},ql={},LOe=[{[u0]:"Region"}],MOe={conditions:[[kOe,[NOe]],[kOe,LOe],["aws.partition",LOe,BOe],[CN,[{[u0]:"UseFIPS"},_N]],[CN,[{[u0]:"UseDualStack"},_N]],[CN,[{fn:b6,argv:[I6,"supportsDualStack"]},_N]],[CN,[{fn:b6,argv:[I6,"supportsFIPS"]},_N]],[x6,[P6,"aws"]],[x6,[P6,"aws-cn"]],[x6,[P6,"aws-us-gov"]]],results:[[Ip],[Ip,"Invalid Configuration: FIPS and custom endpoint are not supported"],[Ip,"Invalid Configuration: Dualstack and custom endpoint are not supported"],[NOe,ql],["https://{Region}.signin.aws.amazon.com",ql],["https://{Region}.signin.amazonaws.cn",ql],["https://{Region}.signin.amazonaws-us-gov.com",ql],["https://signin-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",ql],[Ip,"FIPS and DualStack are enabled, but this partition does not support one or both"],["https://signin-fips.{Region}.{PartitionResult#dnsSuffix}",ql],[Ip,"FIPS is enabled but this partition does not support FIPS"],["https://signin.{Region}.{PartitionResult#dualStackDnsSuffix}",ql],[Ip,"DualStack is enabled but this partition does not support DualStack"],["https://signin.{Region}.{PartitionResult#dnsSuffix}",ql],[Ip,"Invalid Configuration: Missing Region"]]},FDt=2,Un=1e8,BDt=new Int32Array([-1,1,-1,0,15,3,1,4,Un+14,2,5,Un+14,3,11,6,4,10,7,7,Un+4,8,8,Un+5,9,9,Un+6,Un+13,5,Un+11,Un+12,4,13,12,6,Un+9,Un+10,5,14,Un+8,6,Un+7,Un+8,3,Un+1,16,4,Un+2,Un+3]),UOe=FOe.BinaryDecisionDiagram.from(BDt,FDt,MOe.conditions,MOe.results)});var $Oe,nh,UDt,GOe,jOe=_(()=>{$Oe=O(Uf()),nh=require("@smithy/util-endpoints");qOe();UDt=new nh.EndpointCache({size:50,params:["Endpoint","Region","UseDualStack","UseFIPS"]}),GOe=(t,e={})=>UDt.get(t,()=>(0,nh.decideEndpoint)(UOe,{endpointParams:t,logger:e.logger}));nh.customEndpointFunctions.aws=$Oe.awsEndpointFunctions});var VOe,Zi,RN=_(()=>{VOe=require("@smithy/smithy-client"),Zi=class t extends VOe.ServiceException{constructor(e){super(e),Object.setPrototypeOf(this,t.prototype)}}});var l0,d0,p0,m0,A6=_(()=>{RN();l0=class t extends Zi{name="AccessDeniedException";$fault="client";error;constructor(e){super({name:"AccessDeniedException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error}},d0=class t extends Zi{name="InternalServerException";$fault="server";error;constructor(e){super({name:"InternalServerException",$fault:"server",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error}},p0=class t extends Zi{name="TooManyRequestsError";$fault="client";error;constructor(e){super({name:"TooManyRequestsError",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error}},m0=class t extends Zi{name="ValidationException";$fault="client";error;constructor(e){super({name:"ValidationException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.error=e.error}}});var D6,qDt,$Dt,GDt,jDt,VDt,HDt,zDt,WDt,KDt,QDt,XDt,HOe,zOe,T6,WOe,KOe,JDt,$l,QOe,XOe,YDt,w6,JOe,uo,xN,vN,YOe,rke,ZOe,eke,ZDt,eOt,tOt,tke,ei,nke,ske,g0,oke,ike,ake,cke,O6,uke,lke,dke,pke,mke,gke,k6,PN=_(()=>{D6=require("@smithy/core/schema");A6();RN();qDt="AccessDeniedException",$Dt="AccessToken",GDt="CreateOAuth2Token",jDt="CreateOAuth2TokenRequest",VDt="CreateOAuth2TokenRequestBody",HDt="CreateOAuth2TokenResponseBody",zDt="CreateOAuth2TokenResponse",WDt="InternalServerException",KDt="RefreshToken",QDt="TooManyRequestsError",XDt="ValidationException",HOe="accessKeyId",zOe="accessToken",T6="client",WOe="clientId",KOe="codeVerifier",JDt="code",$l="error",QOe="expiresIn",XOe="grantType",YDt="http",w6="httpError",JOe="idToken",uo="jsonName",xN="message",vN="refreshToken",YOe="redirectUri",rke="smithy.ts.sdk.synthetic.com.amazonaws.signin",ZOe="secretAccessKey",eke="sessionToken",ZDt="server",eOt="tokenInput",tOt="tokenOutput",tke="tokenType",ei="com.amazonaws.signin",nke=D6.TypeRegistry.for(rke),ske=[-3,rke,"SigninServiceException",0,[],[]];nke.registerError(ske,Zi);g0=D6.TypeRegistry.for(ei),oke=[-3,ei,qDt,{[$l]:T6},[$l,xN],[0,0],2];g0.registerError(oke,l0);ike=[-3,ei,WDt,{[$l]:ZDt,[w6]:500},[$l,xN],[0,0],2];g0.registerError(ike,d0);ake=[-3,ei,QDt,{[$l]:T6,[w6]:429},[$l,xN],[0,0],2];g0.registerError(ake,p0);cke=[-3,ei,XDt,{[$l]:T6,[w6]:400},[$l,xN],[0,0],2];g0.registerError(cke,m0);O6=[nke,g0],uke=[0,ei,KDt,8,0],lke=[3,ei,$Dt,8,[HOe,ZOe,eke],[[0,{[uo]:HOe}],[0,{[uo]:ZOe}],[0,{[uo]:eke}]],3],dke=[3,ei,jDt,0,[eOt],[[()=>pke,16]],1],pke=[3,ei,VDt,0,[WOe,XOe,JDt,YOe,KOe,vN],[[0,{[uo]:WOe}],[0,{[uo]:XOe}],0,[0,{[uo]:YOe}],[0,{[uo]:KOe}],[()=>uke,{[uo]:vN}]],2],mke=[3,ei,zDt,0,[tOt],[[()=>gke,16]],1],gke=[3,ei,HDt,0,[zOe,tke,QOe,vN,JOe],[[()=>lke,{[uo]:zOe}],[0,{[uo]:tke}],[1,{[uo]:QOe}],[()=>uke,{[uo]:vN}],[0,{[uo]:JOe}]],4],k6=[9,ei,GDt,{[YDt]:["POST","/v1/token",200]},()=>dke,()=>mke]});var fke,hke,Ske,bN,IN,Eke,yke=_(()=>{io();Kf();fke=require("@smithy/core"),hke=require("@smithy/smithy-client"),Ske=require("@smithy/url-parser"),bN=require("@smithy/util-base64"),IN=require("@smithy/util-utf8");R6();jOe();PN();Eke=t=>({apiVersion:"2023-01-01",base64Decoder:t?.base64Decoder??bN.fromBase64,base64Encoder:t?.base64Encoder??bN.toBase64,disableHostPrefix:t?.disableHostPrefix??!1,endpointProvider:t?.endpointProvider??GOe,extensions:t?.extensions??[],httpAuthSchemeProvider:t?.httpAuthSchemeProvider??TOe,httpAuthSchemes:t?.httpAuthSchemes??[{schemeId:"aws.auth#sigv4",identityProvider:e=>e.getIdentityProvider("aws.auth#sigv4"),signer:new Zn},{schemeId:"smithy.api#noAuth",identityProvider:e=>e.getIdentityProvider("smithy.api#noAuth")||(async()=>({})),signer:new fke.NoAuthSigner}],logger:t?.logger??new hke.NoOpLogger,protocol:t?.protocol??Yc,protocolSettings:t?.protocolSettings??{defaultNamespace:"com.amazonaws.signin",errorTypeRegistries:O6,version:"2023-01-01",serviceTarget:"Signin"},serviceId:t?.serviceId??"Signin",urlParser:t?.urlParser??Ske.parseUrl,utf8Decoder:t?.utf8Decoder??IN.fromUtf8,utf8Encoder:t?.utf8Encoder??IN.toUtf8})});var AN,jl,_ke,TN,Gl,wN,DN,Cke,Rke,vke,xke,Pke=_(()=>{CC();Qc();io();AN=O(vC()),jl=require("@smithy/config-resolver"),_ke=require("@smithy/hash-node"),TN=require("@smithy/middleware-retry"),Gl=require("@smithy/node-config-provider"),wN=require("@smithy/node-http-handler"),DN=require("@smithy/smithy-client"),Cke=require("@smithy/util-body-length-node"),Rke=require("@smithy/util-defaults-mode-node"),vke=require("@smithy/util-retry");yke();xke=t=>{(0,DN.emitWarningIfUnsupportedVersion)(process.version);let e=(0,Rke.resolveDefaultsModeConfig)(t),r=()=>e().then(DN.loadConfigsForDefaultMode),n=Eke(t);Kc(process.version);let s={profile:t?.profile,logger:n.logger};return{...n,...t,runtime:"node",defaultsMode:e,authSchemePreference:t?.authSchemePreference??(0,Gl.loadConfig)(Ol,s),bodyLengthChecker:t?.bodyLengthChecker??Cke.calculateBodyLength,defaultUserAgentProvider:t?.defaultUserAgentProvider??(0,AN.createDefaultUserAgentProvider)({serviceId:n.serviceId,clientVersion:Nl.version}),maxAttempts:t?.maxAttempts??(0,Gl.loadConfig)(TN.NODE_MAX_ATTEMPT_CONFIG_OPTIONS,t),region:t?.region??(0,Gl.loadConfig)(jl.NODE_REGION_CONFIG_OPTIONS,{...jl.NODE_REGION_CONFIG_FILE_OPTIONS,...s}),requestHandler:wN.NodeHttpHandler.create(t?.requestHandler??r),retryMode:t?.retryMode??(0,Gl.loadConfig)({...TN.NODE_RETRY_MODE_CONFIG_OPTIONS,default:async()=>(await r()).retryMode||vke.DEFAULT_RETRY_MODE},t),sha256:t?.sha256??_ke.Hash.bind(null,"sha256"),streamCollector:t?.streamCollector??wN.streamCollector,useDualstackEndpoint:t?.useDualstackEndpoint??(0,Gl.loadConfig)(jl.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS,s),useFipsEndpoint:t?.useFipsEndpoint??(0,Gl.loadConfig)(jl.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS,s),userAgentAppId:t?.userAgentAppId??(0,Gl.loadConfig)(AN.NODE_APP_ID_CONFIG_OPTIONS,s)}}});var bke,Ike,Ake=_(()=>{bke=t=>{let e=t.httpAuthSchemes,r=t.httpAuthSchemeProvider,n=t.credentials;return{setHttpAuthScheme(s){let o=e.findIndex(i=>i.schemeId===s.schemeId);o===-1?e.push(s):e.splice(o,1,s)},httpAuthSchemes(){return e},setHttpAuthSchemeProvider(s){r=s},httpAuthSchemeProvider(){return r},setCredentials(s){n=s},credentials(){return n}}},Ike=t=>({httpAuthSchemes:t.httpAuthSchemes(),httpAuthSchemeProvider:t.httpAuthSchemeProvider(),credentials:t.credentials()})});var ON,kN,NN,Tke,wke=_(()=>{ON=O(Yf()),kN=require("@smithy/protocol-http"),NN=require("@smithy/smithy-client");Ake();Tke=(t,e)=>{let r=Object.assign((0,ON.getAwsRegionExtensionConfiguration)(t),(0,NN.getDefaultExtensionConfiguration)(t),(0,kN.getHttpHandlerExtensionConfiguration)(t),bke(t));return e.forEach(n=>n.configure(r)),Object.assign(t,(0,ON.resolveAwsRegionExtensionConfiguration)(r),(0,NN.resolveDefaultRuntimeConfig)(r),(0,kN.resolveHttpHandlerRuntimeConfig)(r),Ike(r))}});var LN,Dke,Oke,MN,kke,sh,Nke,Lke,Mke,FN,N6,f0,L6=_(()=>{LN=O(fC()),Dke=O(hC()),Oke=O(EC()),MN=O($f()),kke=require("@smithy/config-resolver"),sh=require("@smithy/core"),Nke=require("@smithy/core/schema"),Lke=require("@smithy/middleware-content-length"),Mke=require("@smithy/middleware-endpoint"),FN=require("@smithy/middleware-retry"),N6=require("@smithy/smithy-client");R6();v6();Pke();wke();f0=class extends N6.Client{config;constructor(...[e]){let r=xke(e||{});super(r),this.initConfig=r;let n=DOe(r),s=(0,MN.resolveUserAgentConfig)(n),o=(0,FN.resolveRetryConfig)(s),i=(0,kke.resolveRegionConfig)(o),a=(0,LN.resolveHostHeaderConfig)(i),c=(0,Mke.resolveEndpointConfig)(a),u=wOe(c),l=Tke(u,e?.extensions||[]);this.config=l,this.middlewareStack.use((0,Nke.getSchemaSerdePlugin)(this.config)),this.middlewareStack.use((0,MN.getUserAgentPlugin)(this.config)),this.middlewareStack.use((0,FN.getRetryPlugin)(this.config)),this.middlewareStack.use((0,Lke.getContentLengthPlugin)(this.config)),this.middlewareStack.use((0,LN.getHostHeaderPlugin)(this.config)),this.middlewareStack.use((0,Dke.getLoggerPlugin)(this.config)),this.middlewareStack.use((0,Oke.getRecursionDetectionPlugin)(this.config)),this.middlewareStack.use((0,sh.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config,{httpAuthSchemeParametersProvider:AOe,identityProviderConfigProvider:async d=>new sh.DefaultIdentityProviderConfig({"aws.auth#sigv4":d.credentials})})),this.middlewareStack.use((0,sh.getHttpSigningPlugin)(this.config))}destroy(){super.destroy()}}});var Fke,M6,h0,F6=_(()=>{Fke=require("@smithy/middleware-endpoint"),M6=require("@smithy/smithy-client");v6();PN();h0=class extends M6.Command.classBuilder().ep(OOe).m(function(e,r,n,s){return[(0,Fke.getEndpointPlugin)(n,e.getEndpointParameterInstructions())]}).s("Signin","CreateOAuth2Token",{}).n("SigninClient","CreateOAuth2TokenCommand").sc(k6).build(){}});var Bke,rOt,BN,Uke=_(()=>{Bke=require("@smithy/smithy-client");F6();L6();rOt={CreateOAuth2TokenCommand:h0},BN=class extends f0{};(0,Bke.createAggregatedClient)(rOt,BN)});var qke=_(()=>{F6()});var nOt,$ke=_(()=>{nOt={AUTHCODE_EXPIRED:"AUTHCODE_EXPIRED",INSUFFICIENT_PERMISSIONS:"INSUFFICIENT_PERMISSIONS",INVALID_REQUEST:"INVALID_REQUEST",SERVER_ERROR:"server_error",TOKEN_EXPIRED:"TOKEN_EXPIRED",USER_CREDENTIALS_CHANGED:"USER_CREDENTIALS_CHANGED"}});var Gke=_(()=>{});var jke={};wt(jke,{$Command:()=>M6.Command,AccessDeniedException:()=>l0,AccessDeniedException$:()=>oke,AccessToken$:()=>lke,CreateOAuth2Token$:()=>k6,CreateOAuth2TokenCommand:()=>h0,CreateOAuth2TokenRequest$:()=>dke,CreateOAuth2TokenRequestBody$:()=>pke,CreateOAuth2TokenResponse$:()=>mke,CreateOAuth2TokenResponseBody$:()=>gke,InternalServerException:()=>d0,InternalServerException$:()=>ike,OAuth2ErrorCode:()=>nOt,Signin:()=>BN,SigninClient:()=>f0,SigninServiceException:()=>Zi,SigninServiceException$:()=>ske,TooManyRequestsError:()=>p0,TooManyRequestsError$:()=>ake,ValidationException:()=>m0,ValidationException$:()=>cke,__Client:()=>N6.Client,errorTypeRegistries:()=>O6});var Vke=_(()=>{L6();Uke();qke();PN();$ke();A6();Gke();RN()});var zke=b(Hke=>{"use strict";var sOt=(Ko(),ue(Ga)),Vl=require("@smithy/property-provider"),q6=require("@smithy/shared-ini-file-loader"),oOt=require("@smithy/protocol-http"),UN=require("node:crypto"),B6=require("node:fs"),iOt=require("node:os"),U6=require("node:path"),$6=class t{profileData;init;callerClientConfig;static REFRESH_THRESHOLD=5*60*1e3;constructor(e,r,n){this.profileData=e,this.init=r,this.callerClientConfig=n}async loadCredentials(){let e=await this.loadToken();if(!e)throw new Vl.CredentialsProviderError(`Failed to load a token for session ${this.loginSession}, please re-authenticate using aws login`,{tryNextLink:!1,logger:this.logger});let r=e.accessToken,n=Date.now();return new Date(r.expiresAt).getTime()-n<=t.REFRESH_THRESHOLD?this.refresh(e):{accessKeyId:r.accessKeyId,secretAccessKey:r.secretAccessKey,sessionToken:r.sessionToken,accountId:r.accountId,expiration:new Date(r.expiresAt)}}get logger(){return this.init?.logger}get loginSession(){return this.profileData.login_session}async refresh(e){let{SigninClient:r,CreateOAuth2TokenCommand:n}=await Promise.resolve().then(()=>(Vke(),jke)),{logger:s,userAgentAppId:o}=this.callerClientConfig??{},a=(d=>d?.metadata?.handlerProtocol==="h2")(this.callerClientConfig?.requestHandler)?void 0:this.callerClientConfig?.requestHandler,c=this.profileData.region??await this.callerClientConfig?.region?.()??process.env.AWS_REGION,u=new r({credentials:{accessKeyId:"",secretAccessKey:""},region:c,requestHandler:a,logger:s,userAgentAppId:o,...this.init?.clientConfig});this.createDPoPInterceptor(u.middlewareStack);let l={tokenInput:{clientId:e.clientId,refreshToken:e.refreshToken,grantType:"refresh_token"}};try{let d=await u.send(new n(l)),{accessKeyId:p,secretAccessKey:g,sessionToken:y}=d.tokenOutput?.accessToken??{},{refreshToken:R,expiresIn:D}=d.tokenOutput??{};if(!p||!g||!y||!R)throw new Vl.CredentialsProviderError("Token refresh response missing required fields",{logger:this.logger,tryNextLink:!1});let B=(D??900)*1e3,M=new Date(Date.now()+B),ge={...e,accessToken:{...e.accessToken,accessKeyId:p,secretAccessKey:g,sessionToken:y,expiresAt:M.toISOString()},refreshToken:R};await this.saveToken(ge);let Y=ge.accessToken;return{accessKeyId:Y.accessKeyId,secretAccessKey:Y.secretAccessKey,sessionToken:Y.sessionToken,accountId:Y.accountId,expiration:M}}catch(d){if(d.name==="AccessDeniedException"){let p=d.error,g;switch(p){case"TOKEN_EXPIRED":g="Your session has expired. Please reauthenticate.";break;case"USER_CREDENTIALS_CHANGED":g="Unable to refresh credentials because of a change in your password. Please reauthenticate with your new password.";break;case"INSUFFICIENT_PERMISSIONS":g="Unable to refresh credentials due to insufficient permissions. You may be missing permission for the 'CreateOAuth2Token' action.";break;default:g=`Failed to refresh token: ${String(d)}. Please re-authenticate using \`aws login\``}throw new Vl.CredentialsProviderError(g,{logger:this.logger,tryNextLink:!1})}throw new Vl.CredentialsProviderError(`Failed to refresh token: ${String(d)}. Please re-authenticate using aws login`,{logger:this.logger})}}async loadToken(){let e=this.getTokenFilePath();try{let r;try{r=await q6.readFile(e,{ignoreCache:this.init?.ignoreCache})}catch{r=await B6.promises.readFile(e,"utf8")}let n=JSON.parse(r),s=["accessToken","clientId","refreshToken","dpopKey"].filter(o=>!n[o]);if(n.accessToken?.accountId||s.push("accountId"),s.length>0)throw new Vl.CredentialsProviderError(`Token validation failed, missing fields: ${s.join(", ")}`,{logger:this.logger,tryNextLink:!1});return n}catch(r){throw new Vl.CredentialsProviderError(`Failed to load token from ${e}: ${String(r)}`,{logger:this.logger,tryNextLink:!1})}}async saveToken(e){let r=this.getTokenFilePath(),n=U6.dirname(r);try{await B6.promises.mkdir(n,{recursive:!0})}catch{}await B6.promises.writeFile(r,JSON.stringify(e,null,2),"utf8")}getTokenFilePath(){let e=process.env.AWS_LOGIN_CACHE_DIRECTORY??U6.join(iOt.homedir(),".aws","login","cache"),r=Buffer.from(this.loginSession,"utf8"),n=UN.createHash("sha256").update(r).digest("hex");return U6.join(e,`${n}.json`)}derToRawSignature(e){let r=2;if(e[r]!==2)throw new Error("Invalid DER signature");r++;let n=e[r++],s=e.subarray(r,r+n);if(r+=n,e[r]!==2)throw new Error("Invalid DER signature");r++;let o=e[r++],i=e.subarray(r,r+o);s=s[0]===0?s.subarray(1):s,i=i[0]===0?i.subarray(1):i;let a=Buffer.concat([Buffer.alloc(32-s.length),s]),c=Buffer.concat([Buffer.alloc(32-i.length),i]);return Buffer.concat([a,c])}createDPoPInterceptor(e){e.add(r=>async n=>{if(oOt.HttpRequest.isInstance(n.request)){let s=n.request,o=`${s.protocol}//${s.hostname}${s.port?`:${s.port}`:""}${s.path}`,i=await this.generateDpop(s.method,o);s.headers={...s.headers,DPoP:i}}return r(n)},{step:"finalizeRequest",name:"dpopInterceptor",override:!0})}async generateDpop(e="POST",r){let n=await this.loadToken();try{let s=UN.createPrivateKey({key:n.dpopKey,format:"pem",type:"sec1"}),i=UN.createPublicKey(s).export({format:"der",type:"spki"}),a=-1;for(let M=0;Masync({callerClientConfig:e}={})=>{t?.logger?.debug?.("@aws-sdk/credential-providers - fromLoginCredentials");let r=await q6.parseKnownFiles(t||{}),n=q6.getProfileName({profile:t?.profile??e?.profile}),s=r[n];if(!s?.login_session)throw new Vl.CredentialsProviderError(`Profile ${n} does not contain login_session.`,{tryNextLink:!0,logger:t?.logger});let i=await new $6(s,t,e).loadCredentials();return sOt.setCredentialFeature(i,"CREDENTIALS_LOGIN","AD")};Hke.fromLoginCredentials=aOt});var Wke=b(G6=>{"use strict";Object.defineProperty(G6,"__esModule",{value:!0});G6.toStream=uOt;var cOt=require("node:stream");function uOt(t){return cOt.Readable.from(Buffer.from(t))}});var Kke=b(qN=>{"use strict";var lOt=t=>typeof t=="string"&&t.indexOf("arn:")===0&&t.split(":").length>=6,dOt=t=>{let e=t.split(":");if(e.length<6||e[0]!=="arn")throw new Error("Malformed ARN");let[,r,n,s,o,...i]=e;return{partition:r,service:n,region:s,accountId:o,resource:i.join(":")}},pOt=t=>{let{partition:e="aws",service:r,region:n,accountId:s,resource:o}=t;if([r,n,s,o].some(i=>typeof i!="string"))throw new Error("Input ARN object is invalid");return`arn:${e}:${r}:${n}:${s}:${o}`};qN.build=pOt;qN.parse=dOt;qN.validate=lOt});var gNe=b(ht=>{"use strict";var S0=require("@smithy/protocol-http"),Jke=require("@smithy/smithy-client"),mOt=Wke(),gOt=Kke(),fOt=(Kf(),ue(awe)),hOt=require("@smithy/core/schema"),SOt=require("@smithy/signature-v4"),$N=require("@smithy/util-config-provider"),EOt=(Qc(),ue(lK)),Yke=require("@smithy/core"),yOt=require("@smithy/util-middleware"),_Ot="content-length",COt="x-amz-decoded-content-length";function Zke(){return(t,e)=>async r=>{let{request:n}=r;if(S0.HttpRequest.isInstance(n)&&!(_Ot in n.headers)&&!(COt in n.headers)){let s="Are you using a Stream of unknown length as the Body of a PutObject request? Consider using Upload instead from @aws-sdk/lib-storage.";typeof e?.logger?.warn=="function"&&!(e.logger instanceof Jke.NoOpLogger)?e.logger.warn(s):console.warn(s)}return t({...r})}}var eNe={step:"finalizeRequest",tags:["CHECK_CONTENT_LENGTH_HEADER"],name:"getCheckContentLengthHeaderPlugin",override:!0},ROt=t=>({applyToStack:e=>{e.add(Zke(),eNe)}}),tNe=t=>(e,r)=>async n=>{let s=await t.region(),o=t.region,i=()=>{};r.__s3RegionRedirect&&(Object.defineProperty(t,"region",{writable:!1,value:async()=>r.__s3RegionRedirect}),i=()=>Object.defineProperty(t,"region",{writable:!0,value:o}));try{let a=await e(n);if(r.__s3RegionRedirect){i();let c=await t.region();if(s!==c)throw new Error("Region was not restored following S3 region redirect.")}return a}catch(a){throw i(),a}},rNe={tags:["REGION_REDIRECT","S3"],name:"regionRedirectEndpointMiddleware",override:!0,relation:"before",toMiddleware:"endpointV2Middleware"};function nNe(t){return(e,r)=>async n=>{try{return await e(n)}catch(s){if(t.followRegionRedirects){let o=s?.$metadata?.httpStatusCode,i=r.commandName==="HeadBucketCommand",a=s?.$response?.headers?.["x-amz-bucket-region"];if(a&&(o===301||o===400&&(s?.name==="IllegalLocationConstraintException"||i))){try{let c=a;r.logger?.debug(`Redirecting from ${await t.region()} to ${c}`),r.__s3RegionRedirect=c}catch(c){throw new Error("Region redirect failed: "+c)}return e(n)}}throw s}}}var sNe={step:"initialize",tags:["REGION_REDIRECT","S3"],name:"regionRedirectMiddleware",override:!0},vOt=t=>({applyToStack:e=>{e.add(nNe(t),sNe),e.addRelativeTo(tNe(t),rNe)}}),oNe=t=>(e,r)=>async n=>{let s=await e(n),{response:o}=s;if(S0.HttpResponse.isInstance(o)&&o.headers.expires){o.headers.expiresstring=o.headers.expires;try{Jke.parseRfc7231DateTime(o.headers.expires)}catch(i){r.logger?.warn(`AWS SDK Warning for ${r.clientName}::${r.commandName} response parsing (${o.headers.expires}): ${i}`),delete o.headers.expires}}return s},iNe={tags:["S3"],name:"s3ExpiresMiddleware",override:!0,relation:"after",toMiddleware:"deserializerMiddleware"},xOt=t=>({applyToStack:e=>{e.addRelativeTo(oNe(),iNe)}}),GN=class t{data;lastPurgeTime=Date.now();static EXPIRED_CREDENTIAL_PURGE_INTERVAL_MS=3e4;constructor(e={}){this.data=e}get(e){let r=this.data[e];if(r)return r}set(e,r){return this.data[e]=r,r}delete(e){delete this.data[e]}async purgeExpired(){let e=Date.now();if(!(this.lastPurgeTime+t.EXPIRED_CREDENTIAL_PURGE_INTERVAL_MS>e))for(let r in this.data){let n=this.data[r];if(!n.isRefreshing){let s=await n.identity;s.expiration&&s.expiration.getTime()(i.expiration?.getTime()??0){s.set(n,new oh(Promise.resolve(u)))})),i)):s.set(n,new oh(this.getIdentity(n))).identity}async getIdentity(e){await this.cache.purgeExpired().catch(s=>{console.warn(`Error while clearing expired entries in S3ExpressIdentityCache: -`+s)});let r=await this.createSessionFn(e);if(!r.Credentials?.AccessKeyId||!r.Credentials?.SecretAccessKey)throw new Error("s3#createSession response credential missing AccessKeyId or SecretAccessKey.");return{accessKeyId:r.Credentials.AccessKeyId,secretAccessKey:r.Credentials.SecretAccessKey,sessionToken:r.Credentials.SessionToken,expiration:r.Credentials.Expiration?new Date(r.Credentials.Expiration):void 0}}},POt="Directory",bOt="S3Express",IOt="sigv4-s3express",j6="X-Amz-S3session-Token",V6=j6.toLowerCase(),AOt="AWS_S3_DISABLE_EXPRESS_SESSION_AUTH",TOt="s3_disable_express_session_auth",wOt={environmentVariableSelector:t=>$N.booleanSelector(t,AOt,$N.SelectorType.ENV),configFileSelector:t=>$N.booleanSelector(t,TOt,$N.SelectorType.CONFIG),default:!1},H6=class extends SOt.SignatureV4{async signWithCredentials(e,r,n){let s=Qke(r);e.headers[V6]=r.sessionToken;let o=this;return Xke(o,s),o.signRequest(e,n??{})}async presignWithCredentials(e,r,n){let s=Qke(r);return delete e.headers[V6],e.headers[j6]=r.sessionToken,e.query=e.query??{},e.query[j6]=r.sessionToken,Xke(this,s),this.presign(e,n)}};function Qke(t){return{accessKeyId:t.accessKeyId,secretAccessKey:t.secretAccessKey,expiration:t.expiration}}function Xke(t,e){let r=setTimeout(()=>{throw new Error("SignatureV4S3Express credential override was created but not called.")},10),n=t.credentialProvider,s=()=>(clearTimeout(r),t.credentialProvider=n,Promise.resolve(e));t.credentialProvider=s}var aNe=t=>(e,r)=>async n=>{if(r.endpointV2){let s=r.endpointV2,o=s.properties?.authSchemes?.[0]?.name===IOt;if((s.properties?.backend===bOt||s.properties?.bucketType===POt)&&(EOt.setFeature(r,"S3_EXPRESS_BUCKET","J"),r.isS3ExpressBucket=!0),o){let a=n.input.Bucket;if(a){let c=await t.s3ExpressIdentityProvider.getS3ExpressIdentity(await t.credentials(),{Bucket:a});r.s3ExpressIdentity=c,S0.HttpRequest.isInstance(n.request)&&c.sessionToken&&(n.request.headers[V6]=c.sessionToken)}}}return e(n)},cNe={name:"s3ExpressMiddleware",step:"build",tags:["S3","S3_EXPRESS"],override:!0},DOt=t=>({applyToStack:e=>{e.add(aNe(t),cNe)}}),OOt=async(t,e,r,n)=>{let s=await n.signWithCredentials(r,t,{});if(s.headers["X-Amz-Security-Token"]||s.headers["x-amz-security-token"])throw new Error("X-Amz-Security-Token must not be set for s3-express requests.");return s},kOt=t=>e=>{throw e},NOt=(t,e)=>{},LOt=Yke.httpSigningMiddlewareOptions,uNe=t=>(e,r)=>async n=>{if(!S0.HttpRequest.isInstance(n.request))return e(n);let o=yOt.getSmithyContext(r).selectedHttpAuthScheme;if(!o)throw new Error("No HttpAuthScheme was selected: unable to sign request");let{httpAuthOption:{signingProperties:i={}},identity:a,signer:c}=o,u;r.s3ExpressIdentity?u=await OOt(r.s3ExpressIdentity,i,n.request,await t.signer()):u=await c.sign(n.request,a,i);let l=await e({...n,request:u}).catch((c.errorHandler||kOt)(i));return(c.successHandler||NOt)(l.response,i),l},MOt=t=>({applyToStack:e=>{e.addRelativeTo(uNe(t),Yke.httpSigningMiddlewareOptions)}}),FOt=(t,{session:e})=>{let[r,n]=e,{forcePathStyle:s,useAccelerateEndpoint:o,disableMultiregionAccessPoints:i,followRegionRedirects:a,s3ExpressIdentityProvider:c,bucketEndpoint:u,expectContinueHeader:l}=t;return Object.assign(t,{forcePathStyle:s??!1,useAccelerateEndpoint:o??!1,disableMultiregionAccessPoints:i??!1,followRegionRedirects:a??!1,s3ExpressIdentityProvider:c??new jN(async d=>r().send(new n({Bucket:d}))),bucketEndpoint:u??!1,expectContinueHeader:l??2097152})},BOt={CopyObjectCommand:!0,UploadPartCopyCommand:!0,CompleteMultipartUploadCommand:!0},lNe=t=>(e,r)=>async n=>{let s=await e(n),{response:o}=s;if(!S0.HttpResponse.isInstance(o))return s;let{statusCode:i,body:a}=o;if(i<200||i>=300)return s;let c=await UOt(a,t);if(o.body=mOt.toStream(c),c.length===0&&BOt[r.commandName]){let l=new Error("S3 aborted request");throw l.$metadata={httpStatusCode:503},l.name="InternalError",l}let u=t.utf8Encoder(c.subarray(c.length-16));return u&&u.endsWith("")&&(o.statusCode=503),s},UOt=(t=new Uint8Array,e)=>t instanceof Uint8Array?Promise.resolve(t):e.streamCollector(t)||Promise.resolve(new Uint8Array),dNe={relation:"after",toMiddleware:"deserializerMiddleware",tags:["THROW_200_EXCEPTIONS","S3"],name:"throw200ExceptionsMiddleware",override:!0},qOt=t=>({applyToStack:e=>{e.addRelativeTo(lNe(t),dNe)}});function $Ot(t){return(e,r)=>async n=>{if(t.bucketEndpoint){let s=r.endpointV2;if(s){let o=n.input.Bucket;if(typeof o=="string")try{let i=new URL(o);r.endpointV2={...s,url:i}}catch(i){let a=`@aws-sdk/middleware-sdk-s3: bucketEndpoint=true was set but Bucket=${o} could not be parsed as URL.`;throw r.logger?.constructor?.name==="NoOpLogger"?console.warn(a):r.logger?.warn?.(a),i}}}return e(n)}}var GOt={name:"bucketEndpointMiddleware",override:!0,relation:"after",toMiddleware:"endpointV2Middleware"};function pNe({bucketEndpoint:t}){return e=>async r=>{let{input:{Bucket:n}}=r;if(!t&&typeof n=="string"&&!gOt.validate(n)&&n.indexOf("/")>=0){let s=new Error(`Bucket name shouldn't contain '/', received '${n}'`);throw s.name="InvalidBucketName",s}return e({...r})}}var mNe={step:"initialize",tags:["VALIDATE_BUCKET_NAME"],name:"validateBucketNameMiddleware",override:!0},jOt=t=>({applyToStack:e=>{e.add(pNe(t),mNe),e.addRelativeTo($Ot(t),GOt)}}),z6=class extends fOt.AwsRestXmlProtocol{async serializeRequest(e,r,n){let s=await super.serializeRequest(e,r,n),o=hOt.NormalizedSchema.of(e.input),i=o.getSchema(),a=0,c=i[6]??0;if(r&&typeof r=="object")for(let[u,l]of o.structIterator()){if(++a>c)break;if(u==="Bucket"){if(!r.Bucket&&l.getMergedTraits().httpLabel)throw new Error("No value provided for input HTTP label: Bucket.");break}}return s}};ht.NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_OPTIONS=wOt;ht.S3ExpressIdentityCache=GN;ht.S3ExpressIdentityCacheEntry=oh;ht.S3ExpressIdentityProviderImpl=jN;ht.S3RestXmlProtocol=z6;ht.SignatureV4S3Express=H6;ht.checkContentLengthHeader=Zke;ht.checkContentLengthHeaderMiddlewareOptions=eNe;ht.getCheckContentLengthHeaderPlugin=ROt;ht.getRegionRedirectMiddlewarePlugin=vOt;ht.getS3ExpiresMiddlewarePlugin=xOt;ht.getS3ExpressHttpSigningPlugin=MOt;ht.getS3ExpressPlugin=DOt;ht.getThrow200ExceptionsPlugin=qOt;ht.getValidateBucketNamePlugin=jOt;ht.regionRedirectEndpointMiddleware=tNe;ht.regionRedirectEndpointMiddlewareOptions=rNe;ht.regionRedirectMiddleware=nNe;ht.regionRedirectMiddlewareOptions=sNe;ht.resolveS3Config=FOt;ht.s3ExpiresMiddleware=oNe;ht.s3ExpiresMiddlewareOptions=iNe;ht.s3ExpressHttpSigningMiddleware=uNe;ht.s3ExpressHttpSigningMiddlewareOptions=LOt;ht.s3ExpressMiddleware=aNe;ht.s3ExpressMiddlewareOptions=cNe;ht.throw200ExceptionsMiddleware=lNe;ht.throw200ExceptionsMiddlewareOptions=dNe;ht.validateBucketNameMiddleware=pNe;ht.validateBucketNameMiddlewareOptions=mNe});var Q6=b(K6=>{"use strict";var VOt=gNe(),fNe=require("@smithy/signature-v4"),E0={CrtSignerV4:null},W6=class{sigv4aSigner;sigv4Signer;signerOptions;static sigv4aDependency(){return typeof E0.CrtSignerV4=="function"?"crt":typeof fNe.signatureV4aContainer.SignatureV4a=="function"?"js":"none"}constructor(e){this.sigv4Signer=new VOt.SignatureV4S3Express(e),this.signerOptions=e}async sign(e,r={}){return r.signingRegion==="*"?this.getSigv4aSigner().sign(e,r):this.sigv4Signer.sign(e,r)}async signWithCredentials(e,r,n={}){if(n.signingRegion==="*"){let s=this.getSigv4aSigner(),o=E0.CrtSignerV4;if(o&&s instanceof o)return s.signWithCredentials(e,r,n);throw new Error(`signWithCredentials with signingRegion '*' is only supported when using the CRT dependency @aws-sdk/signature-v4-crt. Please check whether you have installed the "@aws-sdk/signature-v4-crt" package explicitly. You must also register the package by calling [require("@aws-sdk/signature-v4-crt");] or an ESM equivalent such as [import "@aws-sdk/signature-v4-crt";]. For more information please go to https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt`)}return this.sigv4Signer.signWithCredentials(e,r,n)}async presign(e,r={}){if(r.signingRegion==="*"){let n=this.getSigv4aSigner(),s=E0.CrtSignerV4;if(s&&n instanceof s)return n.presign(e,r);throw new Error(`presign with signingRegion '*' is only supported when using the CRT dependency @aws-sdk/signature-v4-crt. Please check whether you have installed the "@aws-sdk/signature-v4-crt" package explicitly. You must also register the package by calling [require("@aws-sdk/signature-v4-crt");] or an ESM equivalent such as [import "@aws-sdk/signature-v4-crt";]. For more information please go to https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt`)}return this.sigv4Signer.presign(e,r)}async presignWithCredentials(e,r,n={}){if(n.signingRegion==="*")throw new Error("Method presignWithCredentials is not supported for [signingRegion=*].");return this.sigv4Signer.presignWithCredentials(e,r,n)}getSigv4aSigner(){if(!this.sigv4aSigner){let e=E0.CrtSignerV4,r=fNe.signatureV4aContainer.SignatureV4a;if(this.signerOptions.runtime==="node"){if(!e&&!r)throw new Error("Neither CRT nor JS SigV4a implementation is available. Please load either @aws-sdk/signature-v4-crt or @aws-sdk/signature-v4a. For more information please go to https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt");if(e&&typeof e=="function")this.sigv4aSigner=new e({...this.signerOptions,signingAlgorithm:1});else if(r&&typeof r=="function")this.sigv4aSigner=new r({...this.signerOptions});else throw new Error("Available SigV4a implementation is not a valid constructor. Please ensure you've properly imported @aws-sdk/signature-v4-crt or @aws-sdk/signature-v4a.For more information please go to https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt")}else{if(!r||typeof r!="function")throw new Error("JS SigV4a implementation is not available or not a valid constructor. Please check whether you have installed the @aws-sdk/signature-v4a package explicitly. The CRT implementation is not available for browsers. You must also register the package by calling [require('@aws-sdk/signature-v4a');] or an ESM equivalent such as [import '@aws-sdk/signature-v4a';]. For more information please go to https://github.com/aws/aws-sdk-js-v3#using-javascript-non-crt-implementation-of-sigv4a");this.sigv4aSigner=new r({...this.signerOptions})}}return this.sigv4aSigner}};K6.SignatureV4MultiRegion=W6;K6.signatureV4CrtContainer=E0});var xNe,ah,Ap,y0,hNe,PNe,_0,dn,X6,SNe,ENe,yNe,_Ne,CNe,pn,J6,ih,RNe,vNe,HOt,St,zOt,bNe,INe=_(()=>{xNe=require("@smithy/util-endpoints"),ah="ref",Ap=-1,y0=!0,hNe="isSet",PNe="PartitionResult",_0="booleanEquals",dn="stringEquals",X6="getAttr",SNe="us-east-1",ENe="sigv4",yNe="sts",_Ne="https://sts.{Region}.{PartitionResult#dnsSuffix}",CNe={[ah]:"Endpoint"},pn={[ah]:"Region"},J6={[ah]:PNe},ih={},RNe=[pn],vNe={conditions:[[hNe,[CNe]],[hNe,RNe],["aws.partition",RNe,PNe],[_0,[{[ah]:"UseFIPS"},y0]],[_0,[{[ah]:"UseDualStack"},y0]],[dn,[pn,"aws-global"]],[_0,[{[ah]:"UseGlobalEndpoint"},y0]],[dn,[pn,"eu-central-1"]],[_0,[{fn:X6,argv:[J6,"supportsDualStack"]},y0]],[_0,[{fn:X6,argv:[J6,"supportsFIPS"]},y0]],[dn,[pn,"ap-south-1"]],[dn,[pn,"eu-north-1"]],[dn,[pn,"eu-west-1"]],[dn,[pn,"eu-west-2"]],[dn,[pn,"eu-west-3"]],[dn,[pn,"sa-east-1"]],[dn,[pn,SNe]],[dn,[pn,"us-east-2"]],[dn,[pn,"us-west-2"]],[dn,[pn,"us-west-1"]],[dn,[pn,"ca-central-1"]],[dn,[pn,"ap-southeast-1"]],[dn,[pn,"ap-northeast-1"]],[dn,[pn,"ap-southeast-2"]],[dn,[{fn:X6,argv:[J6,"name"]},"aws-us-gov"]]],results:[[Ap],["https://sts.amazonaws.com",{authSchemes:[{name:ENe,signingName:yNe,signingRegion:SNe}]}],[_Ne,{authSchemes:[{name:ENe,signingName:yNe,signingRegion:"{Region}"}]}],[Ap,"Invalid Configuration: FIPS and custom endpoint are not supported"],[Ap,"Invalid Configuration: Dualstack and custom endpoint are not supported"],[CNe,ih],["https://sts-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",ih],[Ap,"FIPS and DualStack are enabled, but this partition does not support one or both"],["https://sts.{Region}.amazonaws.com",ih],["https://sts-fips.{Region}.{PartitionResult#dnsSuffix}",ih],[Ap,"FIPS is enabled but this partition does not support FIPS"],["https://sts.{Region}.{PartitionResult#dualStackDnsSuffix}",ih],[Ap,"DualStack is enabled but this partition does not support DualStack"],[_Ne,ih],[Ap,"Invalid Configuration: Missing Region"]]},HOt=2,St=1e8,zOt=new Int32Array([-1,1,-1,0,30,3,1,4,St+14,2,5,St+14,3,25,6,4,24,7,5,St+1,8,6,9,St+13,7,St+1,10,10,St+1,11,11,St+1,12,12,St+1,13,13,St+1,14,14,St+1,15,15,St+1,16,16,St+1,17,17,St+1,18,18,St+1,19,19,St+1,20,20,St+1,21,21,St+1,22,22,St+1,23,23,St+1,St+2,8,St+11,St+12,4,28,26,9,27,St+10,24,St+8,St+9,8,29,St+7,9,St+6,St+7,3,St+3,31,4,St+4,St+5]),bNe=xNe.BinaryDecisionDiagram.from(zOt,HOt,vNe.conditions,vNe.results)});var ANe,ch,WOt,VN,Y6=_(()=>{ANe=O(Uf()),ch=require("@smithy/util-endpoints");INe();WOt=new ch.EndpointCache({size:50,params:["Endpoint","Region","UseDualStack","UseFIPS","UseGlobalEndpoint"]}),VN=(t,e={})=>WOt.get(t,()=>(0,ch.decideEndpoint)(bNe,{endpointParams:t,logger:e.logger}));ch.customEndpointFunctions.aws=ANe.awsEndpointFunctions});function ONe(t){return{schemeId:"aws.auth#sigv4",signingProperties:{name:"sts",region:t.region},propertiesExtractor:(e,r)=>({signingProperties:{config:e,context:r}})}}function Z6(t){return{schemeId:"aws.auth#sigv4a",signingProperties:{name:"sts",region:t.region},propertiesExtractor:(e,r)=>({signingProperties:{config:e,context:r}})}}function kNe(t){return{schemeId:"smithy.api#noAuth"}}var TNe,wNe,uh,KOt,QOt,DNe,XOt,JOt,NNe,YOt,LNe,e9=_(()=>{io();TNe=O(Q6()),wNe=require("@smithy/middleware-endpoint"),uh=require("@smithy/util-middleware");Y6();C0();KOt=t=>async(e,r,n)=>{if(!n)throw new Error("Could not find `input` for `defaultEndpointRuleSetHttpAuthSchemeParametersProvider`");let s=await t(e,r,n),o=(0,uh.getSmithyContext)(r)?.commandInstance?.constructor?.getEndpointParameterInstructions;if(!o)throw new Error(`getEndpointParameterInstructions() is not defined on '${r.commandName}'`);let i=await(0,wNe.resolveParams)(n,{getEndpointParameterInstructions:o},e);return Object.assign(s,i)},QOt=async(t,e,r)=>({operation:(0,uh.getSmithyContext)(e).operation,region:await(0,uh.normalizeProvider)(t.region)()||(()=>{throw new Error("expected `region` to be configured for `aws.auth#sigv4`")})()}),DNe=KOt(QOt);XOt=(t,e,r)=>s=>{let i=t(s).properties?.authSchemes;if(!i)return e(s);let a=[];for(let c of i){let{name:u,properties:l={},...d}=c,p=u.toLowerCase();u!==p&&console.warn(`HttpAuthScheme has been normalized with lowercasing: '${u}' to '${p}'`);let g;if(p==="sigv4a"){g="aws.auth#sigv4a";let D=i.find(B=>{let M=B.name.toLowerCase();return M!=="sigv4a"&&M.startsWith("sigv4")});if(TNe.SignatureV4MultiRegion.sigv4aDependency()==="none"&&D)continue}else if(p.startsWith("sigv4"))g="aws.auth#sigv4";else throw new Error(`Unknown HttpAuthScheme found in '@smithy.rules#endpointRuleSet': '${p}'`);let y=r[g];if(!y)throw new Error(`Could not find HttpAuthOption create function for '${g}'`);let R=y(s);R.schemeId=g,R.signingProperties={...R.signingProperties||{},...d,...l},a.push(R)}return a},JOt=t=>{let e=[];switch(t.operation){case"AssumeRoleWithWebIdentity":{e.push(kNe(t)),e.push(Z6(t));break}default:e.push(ONe(t)),e.push(Z6(t))}return e},NNe=XOt(VN,JOt,{"aws.auth#sigv4":ONe,"aws.auth#sigv4a":Z6,"smithy.api#noAuth":kNe}),YOt=t=>Object.assign(t,{stsClientCtor:Ha}),LNe=t=>{let e=YOt(t),r=kl(e),n=sTe(r);return Object.assign(n,{authSchemePreference:(0,uh.normalizeProvider)(t.authSchemePreference??[])})}});var MNe,HN,zN=_(()=>{MNe=t=>Object.assign(t,{useDualstackEndpoint:t.useDualstackEndpoint??!1,useFipsEndpoint:t.useFipsEndpoint??!1,useGlobalEndpoint:t.useGlobalEndpoint??!1,defaultSigningName:"sts"}),HN={UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}});var FNe,bs,WN=_(()=>{FNe=require("@smithy/smithy-client"),bs=class t extends FNe.ServiceException{constructor(e){super(e),Object.setPrototypeOf(this,t.prototype)}}});var R0,v0,x0,P0,b0,I0,A0,t9=_(()=>{WN();R0=class t extends bs{name="ExpiredTokenException";$fault="client";constructor(e){super({name:"ExpiredTokenException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},v0=class t extends bs{name="MalformedPolicyDocumentException";$fault="client";constructor(e){super({name:"MalformedPolicyDocumentException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},x0=class t extends bs{name="PackedPolicyTooLargeException";$fault="client";constructor(e){super({name:"PackedPolicyTooLargeException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},P0=class t extends bs{name="RegionDisabledException";$fault="client";constructor(e){super({name:"RegionDisabledException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},b0=class t extends bs{name="IDPRejectedClaimException";$fault="client";constructor(e){super({name:"IDPRejectedClaimException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},I0=class t extends bs{name="InvalidIdentityTokenException";$fault="client";constructor(e){super({name:"InvalidIdentityTokenException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}},A0=class t extends bs{name="IDPCommunicationErrorException";$fault="client";$retryable={};constructor(e){super({name:"IDPCommunicationErrorException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype)}}});var o9,ZOt,ekt,tkt,rkt,nkt,skt,r9,okt,ikt,akt,ckt,n9,ukt,BNe,lkt,dkt,pkt,mkt,gkt,fkt,hkt,Skt,UNe,qNe,Ekt,ykt,_kt,Ckt,Rkt,vkt,$Ne,xkt,Pkt,GNe,bkt,jNe,Ikt,Akt,s9,Tkt,wkt,Dkt,Okt,kkt,Nkt,Lkt,Mkt,Fkt,Bkt,Tp,wp,Ukt,Dp,Op,kp,qkt,VNe,$kt,Jt,HNe,zNe,Hl,WNe,KNe,QNe,XNe,JNe,YNe,ZNe,i9,Gkt,jkt,a9,eLe,tLe,rLe,nLe,c9,sLe,oLe,iLe,aLe,Vkt,Hkt,u9,l9,T0=_(()=>{o9=require("@smithy/core/schema");t9();WN();ZOt="Arn",ekt="AccessKeyId",tkt="AssumeRole",rkt="AssumedRoleId",nkt="AssumeRoleRequest",skt="AssumeRoleResponse",r9="AssumedRoleUser",okt="AssumeRoleWithWebIdentity",ikt="AssumeRoleWithWebIdentityRequest",akt="AssumeRoleWithWebIdentityResponse",ckt="Audience",n9="Credentials",ukt="ContextAssertion",BNe="DurationSeconds",lkt="Expiration",dkt="ExternalId",pkt="ExpiredTokenException",mkt="IDPCommunicationErrorException",gkt="IDPRejectedClaimException",fkt="InvalidIdentityTokenException",hkt="Key",Skt="MalformedPolicyDocumentException",UNe="Policy",qNe="PolicyArns",Ekt="ProviderArn",ykt="ProvidedContexts",_kt="ProvidedContextsListType",Ckt="ProvidedContext",Rkt="PolicyDescriptorType",vkt="ProviderId",$Ne="PackedPolicySize",xkt="PackedPolicyTooLargeException",Pkt="Provider",GNe="RoleArn",bkt="RegionDisabledException",jNe="RoleSessionName",Ikt="SecretAccessKey",Akt="SubjectFromWebIdentityToken",s9="SourceIdentity",Tkt="SerialNumber",wkt="SessionToken",Dkt="Tags",Okt="TokenCode",kkt="TransitiveTagKeys",Nkt="Tag",Lkt="Value",Mkt="WebIdentityToken",Fkt="arn",Bkt="accessKeySecretType",Tp="awsQueryError",wp="client",Ukt="clientTokenType",Dp="error",Op="httpError",kp="message",qkt="policyDescriptorListType",VNe="smithy.ts.sdk.synthetic.com.amazonaws.sts",$kt="tagListType",Jt="com.amazonaws.sts",HNe=o9.TypeRegistry.for(VNe),zNe=[-3,VNe,"STSServiceException",0,[],[]];HNe.registerError(zNe,bs);Hl=o9.TypeRegistry.for(Jt),WNe=[-3,Jt,pkt,{[Tp]:["ExpiredTokenException",400],[Dp]:wp,[Op]:400},[kp],[0]];Hl.registerError(WNe,R0);KNe=[-3,Jt,mkt,{[Tp]:["IDPCommunicationError",400],[Dp]:wp,[Op]:400},[kp],[0]];Hl.registerError(KNe,A0);QNe=[-3,Jt,gkt,{[Tp]:["IDPRejectedClaim",403],[Dp]:wp,[Op]:403},[kp],[0]];Hl.registerError(QNe,b0);XNe=[-3,Jt,fkt,{[Tp]:["InvalidIdentityToken",400],[Dp]:wp,[Op]:400},[kp],[0]];Hl.registerError(XNe,I0);JNe=[-3,Jt,Skt,{[Tp]:["MalformedPolicyDocument",400],[Dp]:wp,[Op]:400},[kp],[0]];Hl.registerError(JNe,v0);YNe=[-3,Jt,xkt,{[Tp]:["PackedPolicyTooLarge",400],[Dp]:wp,[Op]:400},[kp],[0]];Hl.registerError(YNe,x0);ZNe=[-3,Jt,bkt,{[Tp]:["RegionDisabledException",403],[Dp]:wp,[Op]:403},[kp],[0]];Hl.registerError(ZNe,P0);i9=[HNe,Hl],Gkt=[0,Jt,Bkt,8,0],jkt=[0,Jt,Ukt,8,0],a9=[3,Jt,r9,0,[rkt,ZOt],[0,0],2],eLe=[3,Jt,nkt,0,[GNe,jNe,qNe,UNe,BNe,Dkt,kkt,dkt,Tkt,Okt,s9,ykt],[0,0,()=>aLe,0,1,()=>Hkt,64,0,0,0,0,()=>Vkt],2],tLe=[3,Jt,skt,0,[n9,r9,$Ne,s9],[[()=>c9,0],()=>a9,1,0]],rLe=[3,Jt,ikt,0,[GNe,jNe,Mkt,vkt,qNe,UNe,BNe],[0,0,[()=>jkt,0],0,()=>aLe,0,1],3],nLe=[3,Jt,akt,0,[n9,Akt,r9,$Ne,Pkt,ckt,s9],[[()=>c9,0],0,()=>a9,1,0,0,0]],c9=[3,Jt,n9,0,[ekt,Ikt,wkt,lkt],[0,[()=>Gkt,0],0,4],4],sLe=[3,Jt,Rkt,0,[Fkt],[0]],oLe=[3,Jt,Ckt,0,[Ekt,ukt],[0,0]],iLe=[3,Jt,Nkt,0,[hkt,Lkt],[0,0],2],aLe=[1,Jt,qkt,0,()=>sLe],Vkt=[1,Jt,_kt,0,()=>oLe],Hkt=[1,Jt,$kt,0,()=>iLe],u9=[9,Jt,tkt,0,()=>eLe,()=>tLe],l9=[9,Jt,okt,0,()=>rLe,()=>nLe]});var cLe,uLe,lLe,dLe,KN,QN,pLe,mLe=_(()=>{io();Kf();cLe=O(Q6()),uLe=require("@smithy/core"),lLe=require("@smithy/smithy-client"),dLe=require("@smithy/url-parser"),KN=require("@smithy/util-base64"),QN=require("@smithy/util-utf8");e9();Y6();T0();pLe=t=>({apiVersion:"2011-06-15",base64Decoder:t?.base64Decoder??KN.fromBase64,base64Encoder:t?.base64Encoder??KN.toBase64,disableHostPrefix:t?.disableHostPrefix??!1,endpointProvider:t?.endpointProvider??VN,extensions:t?.extensions??[],httpAuthSchemeProvider:t?.httpAuthSchemeProvider??NNe,httpAuthSchemes:t?.httpAuthSchemes??[{schemeId:"aws.auth#sigv4",identityProvider:e=>e.getIdentityProvider("aws.auth#sigv4"),signer:new Zn},{schemeId:"aws.auth#sigv4a",identityProvider:e=>e.getIdentityProvider("aws.auth#sigv4a"),signer:new Sp},{schemeId:"smithy.api#noAuth",identityProvider:e=>e.getIdentityProvider("smithy.api#noAuth")||(async()=>({})),signer:new uLe.NoAuthSigner}],logger:t?.logger??new lLe.NoOpLogger,protocol:t?.protocol??vp,protocolSettings:t?.protocolSettings??{defaultNamespace:"com.amazonaws.sts",errorTypeRegistries:i9,xmlNamespace:"https://sts.amazonaws.com/doc/2011-06-15/",version:"2011-06-15",serviceTarget:"AWSSecurityTokenServiceV20110615"},serviceId:t?.serviceId??"STS",signerConstructor:t?.signerConstructor??cLe.SignatureV4MultiRegion,urlParser:t?.urlParser??dLe.parseUrl,utf8Decoder:t?.utf8Decoder??QN.fromUtf8,utf8Encoder:t?.utf8Encoder??QN.toUtf8})});var XN,zl,gLe,fLe,JN,Zc,YN,ZN,hLe,SLe,ELe,yLe,_Le=_(()=>{CC();Qc();io();XN=O(vC()),zl=require("@smithy/config-resolver"),gLe=require("@smithy/core"),fLe=require("@smithy/hash-node"),JN=require("@smithy/middleware-retry"),Zc=require("@smithy/node-config-provider"),YN=require("@smithy/node-http-handler"),ZN=require("@smithy/smithy-client"),hLe=require("@smithy/util-body-length-node"),SLe=require("@smithy/util-defaults-mode-node"),ELe=require("@smithy/util-retry");mLe();yLe=t=>{(0,ZN.emitWarningIfUnsupportedVersion)(process.version);let e=(0,SLe.resolveDefaultsModeConfig)(t),r=()=>e().then(ZN.loadConfigsForDefaultMode),n=pLe(t);Kc(process.version);let s={profile:t?.profile,logger:n.logger};return{...n,...t,runtime:"node",defaultsMode:e,authSchemePreference:t?.authSchemePreference??(0,Zc.loadConfig)(Ol,s),bodyLengthChecker:t?.bodyLengthChecker??hLe.calculateBodyLength,defaultUserAgentProvider:t?.defaultUserAgentProvider??(0,XN.createDefaultUserAgentProvider)({serviceId:n.serviceId,clientVersion:Nl.version}),httpAuthSchemes:t?.httpAuthSchemes??[{schemeId:"aws.auth#sigv4",identityProvider:o=>o.getIdentityProvider("aws.auth#sigv4")||(async i=>await t.credentialDefaultProvider(i?.__config||{})()),signer:new Zn},{schemeId:"aws.auth#sigv4a",identityProvider:o=>o.getIdentityProvider("aws.auth#sigv4a"),signer:new Sp},{schemeId:"smithy.api#noAuth",identityProvider:o=>o.getIdentityProvider("smithy.api#noAuth")||(async()=>({})),signer:new gLe.NoAuthSigner}],maxAttempts:t?.maxAttempts??(0,Zc.loadConfig)(JN.NODE_MAX_ATTEMPT_CONFIG_OPTIONS,t),region:t?.region??(0,Zc.loadConfig)(zl.NODE_REGION_CONFIG_OPTIONS,{...zl.NODE_REGION_CONFIG_FILE_OPTIONS,...s}),requestHandler:YN.NodeHttpHandler.create(t?.requestHandler??r),retryMode:t?.retryMode??(0,Zc.loadConfig)({...JN.NODE_RETRY_MODE_CONFIG_OPTIONS,default:async()=>(await r()).retryMode||ELe.DEFAULT_RETRY_MODE},t),sha256:t?.sha256??fLe.Hash.bind(null,"sha256"),sigv4aSigningRegionSet:t?.sigv4aSigningRegionSet??(0,Zc.loadConfig)(oTe,s),streamCollector:t?.streamCollector??YN.streamCollector,useDualstackEndpoint:t?.useDualstackEndpoint??(0,Zc.loadConfig)(zl.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS,s),useFipsEndpoint:t?.useFipsEndpoint??(0,Zc.loadConfig)(zl.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS,s),userAgentAppId:t?.userAgentAppId??(0,Zc.loadConfig)(XN.NODE_APP_ID_CONFIG_OPTIONS,s)}}});var CLe,RLe,vLe=_(()=>{CLe=t=>{let e=t.httpAuthSchemes,r=t.httpAuthSchemeProvider,n=t.credentials;return{setHttpAuthScheme(s){let o=e.findIndex(i=>i.schemeId===s.schemeId);o===-1?e.push(s):e.splice(o,1,s)},httpAuthSchemes(){return e},setHttpAuthSchemeProvider(s){r=s},httpAuthSchemeProvider(){return r},setCredentials(s){n=s},credentials(){return n}}},RLe=t=>({httpAuthSchemes:t.httpAuthSchemes(),httpAuthSchemeProvider:t.httpAuthSchemeProvider(),credentials:t.credentials()})});var eL,tL,rL,xLe,PLe=_(()=>{eL=O(Yf()),tL=require("@smithy/protocol-http"),rL=require("@smithy/smithy-client");vLe();xLe=(t,e)=>{let r=Object.assign((0,eL.getAwsRegionExtensionConfiguration)(t),(0,rL.getDefaultExtensionConfiguration)(t),(0,tL.getHttpHandlerExtensionConfiguration)(t),CLe(t));return e.forEach(n=>n.configure(r)),Object.assign(t,(0,eL.resolveAwsRegionExtensionConfiguration)(r),(0,rL.resolveDefaultRuntimeConfig)(r),(0,tL.resolveHttpHandlerRuntimeConfig)(r),RLe(r))}});var nL,bLe,ILe,sL,ALe,lh,TLe,wLe,DLe,oL,d9,Ha,C0=_(()=>{nL=O(fC()),bLe=O(hC()),ILe=O(EC()),sL=O($f()),ALe=require("@smithy/config-resolver"),lh=require("@smithy/core"),TLe=require("@smithy/core/schema"),wLe=require("@smithy/middleware-content-length"),DLe=require("@smithy/middleware-endpoint"),oL=require("@smithy/middleware-retry"),d9=require("@smithy/smithy-client");e9();zN();_Le();PLe();Ha=class extends d9.Client{config;constructor(...[e]){let r=yLe(e||{});super(r),this.initConfig=r;let n=MNe(r),s=(0,sL.resolveUserAgentConfig)(n),o=(0,oL.resolveRetryConfig)(s),i=(0,ALe.resolveRegionConfig)(o),a=(0,nL.resolveHostHeaderConfig)(i),c=(0,DLe.resolveEndpointConfig)(a),u=LNe(c),l=xLe(u,e?.extensions||[]);this.config=l,this.middlewareStack.use((0,TLe.getSchemaSerdePlugin)(this.config)),this.middlewareStack.use((0,sL.getUserAgentPlugin)(this.config)),this.middlewareStack.use((0,oL.getRetryPlugin)(this.config)),this.middlewareStack.use((0,wLe.getContentLengthPlugin)(this.config)),this.middlewareStack.use((0,nL.getHostHeaderPlugin)(this.config)),this.middlewareStack.use((0,bLe.getLoggerPlugin)(this.config)),this.middlewareStack.use((0,ILe.getRecursionDetectionPlugin)(this.config)),this.middlewareStack.use((0,lh.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config,{httpAuthSchemeParametersProvider:DNe,identityProviderConfigProvider:async d=>new lh.DefaultIdentityProviderConfig({"aws.auth#sigv4":d.credentials,"aws.auth#sigv4a":d.credentials})})),this.middlewareStack.use((0,lh.getHttpSigningPlugin)(this.config))}destroy(){super.destroy()}}});var OLe,kLe,Np,iL=_(()=>{OLe=require("@smithy/middleware-endpoint"),kLe=require("@smithy/smithy-client");zN();T0();Np=class extends kLe.Command.classBuilder().ep(HN).m(function(e,r,n,s){return[(0,OLe.getEndpointPlugin)(n,e.getEndpointParameterInstructions())]}).s("AWSSecurityTokenServiceV20110615","AssumeRole",{}).n("STSClient","AssumeRoleCommand").sc(u9).build(){}});var NLe,LLe,Lp,aL=_(()=>{NLe=require("@smithy/middleware-endpoint"),LLe=require("@smithy/smithy-client");zN();T0();Lp=class extends LLe.Command.classBuilder().ep(HN).m(function(e,r,n,s){return[(0,NLe.getEndpointPlugin)(n,e.getEndpointParameterInstructions())]}).s("AWSSecurityTokenServiceV20110615","AssumeRoleWithWebIdentity",{}).n("STSClient","AssumeRoleWithWebIdentityCommand").sc(l9).build(){}});var MLe,zkt,cL,FLe=_(()=>{MLe=require("@smithy/smithy-client");iL();aL();C0();zkt={AssumeRoleCommand:Np,AssumeRoleWithWebIdentityCommand:Lp},cL=class extends Ha{};(0,MLe.createAggregatedClient)(zkt,cL)});var BLe=_(()=>{iL();aL()});var ULe=_(()=>{});var qLe,$Le,GLe,jLe,VLe,HLe,zLe=_(()=>{Qc();qLe=O(Yf());iL();aL();$Le=t=>{if(typeof t?.Arn=="string"){let e=t.Arn.split(":");if(e.length>4&&e[4]!=="")return e[4]}},GLe=async(t,e,r,n={})=>{let s=typeof t=="function"?await t():t,o=typeof e=="function"?await e():e,i="",a=s??o??(i=await(0,qLe.stsRegionDefaultResolver)(n)());return r?.debug?.("@aws-sdk/client-sts::resolveRegion","accepting first of:",`${s} (credential provider clientConfig)`,`${o} (contextual client)`,`${i} (STS default: AWS_REGION, profile region, or us-east-1)`),a},jLe=(t,e)=>{let r,n;return async(s,o)=>{if(n=s,!r){let{logger:l=t?.parentClientConfig?.logger,profile:d=t?.parentClientConfig?.profile,region:p,requestHandler:g=t?.parentClientConfig?.requestHandler,credentialProviderLogger:y,userAgentAppId:R=t?.parentClientConfig?.userAgentAppId}=t,D=await GLe(p,t?.parentClientConfig?.region,y,{logger:l,profile:d}),B=!HLe(g);r=new e({...t,userAgentAppId:R,profile:d,credentialDefaultProvider:()=>async()=>n,region:D,requestHandler:B?g:void 0,logger:l})}let{Credentials:i,AssumedRoleUser:a}=await r.send(new Np(o));if(!i||!i.AccessKeyId||!i.SecretAccessKey)throw new Error(`Invalid response from STS.assumeRole call with role ${o.RoleArn}`);let c=$Le(a),u={accessKeyId:i.AccessKeyId,secretAccessKey:i.SecretAccessKey,sessionToken:i.SessionToken,expiration:i.Expiration,...i.CredentialScope&&{credentialScope:i.CredentialScope},...c&&{accountId:c}};return hp(u,"CREDENTIALS_STS_ASSUME_ROLE","i"),u}},VLe=(t,e)=>{let r;return async n=>{if(!r){let{logger:c=t?.parentClientConfig?.logger,profile:u=t?.parentClientConfig?.profile,region:l,requestHandler:d=t?.parentClientConfig?.requestHandler,credentialProviderLogger:p,userAgentAppId:g=t?.parentClientConfig?.userAgentAppId}=t,y=await GLe(l,t?.parentClientConfig?.region,p,{logger:c,profile:u}),R=!HLe(d);r=new e({...t,userAgentAppId:g,profile:u,region:y,requestHandler:R?d:void 0,logger:c})}let{Credentials:s,AssumedRoleUser:o}=await r.send(new Lp(n));if(!s||!s.AccessKeyId||!s.SecretAccessKey)throw new Error(`Invalid response from STS.assumeRoleWithWebIdentity call with role ${n.RoleArn}`);let i=$Le(o),a={accessKeyId:s.AccessKeyId,secretAccessKey:s.SecretAccessKey,sessionToken:s.SessionToken,expiration:s.Expiration,...s.CredentialScope&&{credentialScope:s.CredentialScope},...i&&{accountId:i}};return i&&hp(a,"RESOLVED_ACCOUNT_ID","T"),hp(a,"CREDENTIALS_STS_ASSUME_ROLE_WEB_ID","k"),a}},HLe=t=>t?.metadata?.handlerProtocol==="h2"});var WLe,KLe,QLe,Wkt,XLe=_(()=>{zLe();C0();WLe=(t,e)=>e?class extends t{constructor(n){super(n);for(let s of e)this.middlewareStack.use(s)}}:t,KLe=(t={},e)=>jLe(t,WLe(Ha,e)),QLe=(t={},e)=>VLe(t,WLe(Ha,e)),Wkt=t=>e=>t({roleAssumer:KLe(e),roleAssumerWithWebIdentity:QLe(e),...e})});var p9={};wt(p9,{AssumeRole$:()=>u9,AssumeRoleCommand:()=>Np,AssumeRoleRequest$:()=>eLe,AssumeRoleResponse$:()=>tLe,AssumeRoleWithWebIdentity$:()=>l9,AssumeRoleWithWebIdentityCommand:()=>Lp,AssumeRoleWithWebIdentityRequest$:()=>rLe,AssumeRoleWithWebIdentityResponse$:()=>nLe,AssumedRoleUser$:()=>a9,Credentials$:()=>c9,ExpiredTokenException:()=>R0,ExpiredTokenException$:()=>WNe,IDPCommunicationErrorException:()=>A0,IDPCommunicationErrorException$:()=>KNe,IDPRejectedClaimException:()=>b0,IDPRejectedClaimException$:()=>QNe,InvalidIdentityTokenException:()=>I0,InvalidIdentityTokenException$:()=>XNe,MalformedPolicyDocumentException:()=>v0,MalformedPolicyDocumentException$:()=>JNe,PackedPolicyTooLargeException:()=>x0,PackedPolicyTooLargeException$:()=>YNe,PolicyDescriptorType$:()=>sLe,ProvidedContext$:()=>oLe,RegionDisabledException:()=>P0,RegionDisabledException$:()=>ZNe,STS:()=>cL,STSClient:()=>Ha,STSServiceException:()=>bs,STSServiceException$:()=>zNe,Tag$:()=>iLe,__Client:()=>d9.Client,decorateDefaultCredentialProvider:()=>Wkt,errorTypeRegistries:()=>i9,getDefaultRoleAssumer:()=>KLe,getDefaultRoleAssumerWithWebIdentity:()=>QLe});var m9=_(()=>{C0();FLe();BLe();T0();t9();ULe();XLe();WN()});var h9=b(JLe=>{"use strict";var f9=require("@smithy/shared-ini-file-loader"),g9=require("@smithy/property-provider"),Kkt=require("node:child_process"),Qkt=require("node:util"),Xkt=(Ko(),ue(Ga)),Jkt=(t,e,r)=>{if(e.Version!==1)throw Error(`Profile ${t} credential_process did not return Version 1.`);if(e.AccessKeyId===void 0||e.SecretAccessKey===void 0)throw Error(`Profile ${t} credential_process returned invalid credentials.`);if(e.Expiration){let o=new Date;if(new Date(e.Expiration){let n=e[t];if(e[t]){let s=n.credential_process;if(s!==void 0){let o=Qkt.promisify(f9.externalDataInterceptor?.getTokenRecord?.().exec??Kkt.exec);try{let{stdout:i}=await o(s),a;try{a=JSON.parse(i.trim())}catch{throw Error(`Profile ${t} credential_process returned invalid JSON.`)}return Jkt(t,a,e)}catch(i){throw new g9.CredentialsProviderError(i.message,{logger:r})}}else throw new g9.CredentialsProviderError(`Profile ${t} did not contain credential_process.`,{logger:r})}else throw new g9.CredentialsProviderError(`Profile ${t} could not be found in shared credentials file.`,{logger:r})},Zkt=(t={})=>async({callerClientConfig:e}={})=>{t.logger?.debug("@aws-sdk/credential-provider-process - fromProcess");let r=await f9.parseKnownFiles(t);return Ykt(f9.getProfileName({profile:t.profile??e?.profile}),r,t.logger)};JLe.fromProcess=Zkt});var S9=b(za=>{"use strict";var eNt=za&&za.__createBinding||(Object.create?function(t,e,r,n){n===void 0&&(n=r);var s=Object.getOwnPropertyDescriptor(e,r);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,n,s)}:function(t,e,r,n){n===void 0&&(n=r),t[n]=e[r]}),tNt=za&&za.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),rNt=za&&za.__importStar||function(){var t=function(e){return t=Object.getOwnPropertyNames||function(r){var n=[];for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(n[n.length]=s);return n},t(e)};return function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var n=t(e),s=0;sasync e=>{t.logger?.debug("@aws-sdk/credential-provider-web-identity - fromWebToken");let{roleArn:r,roleSessionName:n,webIdentityToken:s,providerId:o,policyArns:i,policy:a,durationSeconds:c}=t,{roleAssumerWithWebIdentity:u}=t;if(!u){let{getDefaultRoleAssumerWithWebIdentity:l}=await Promise.resolve().then(()=>rNt((m9(),ue(p9))));u=l({...t.clientConfig,credentialProviderLogger:t.logger,parentClientConfig:{...e?.callerClientConfig,...t.parentClientConfig}},t.clientPlugins)}return u({RoleArn:r,RoleSessionName:n??`aws-sdk-js-session-${Date.now()}`,WebIdentityToken:s,ProviderId:o,PolicyArns:i,Policy:a,DurationSeconds:c})};za.fromWebToken=nNt});var ZLe=b(uL=>{"use strict";Object.defineProperty(uL,"__esModule",{value:!0});uL.fromTokenFile=void 0;var sNt=(Ko(),ue(Ga)),oNt=require("@smithy/property-provider"),iNt=require("@smithy/shared-ini-file-loader"),aNt=require("node:fs"),cNt=S9(),YLe="AWS_WEB_IDENTITY_TOKEN_FILE",uNt="AWS_ROLE_ARN",lNt="AWS_ROLE_SESSION_NAME",dNt=(t={})=>async e=>{t.logger?.debug("@aws-sdk/credential-provider-web-identity - fromTokenFile");let r=t?.webIdentityTokenFile??process.env[YLe],n=t?.roleArn??process.env[uNt],s=t?.roleSessionName??process.env[lNt];if(!r||!n)throw new oNt.CredentialsProviderError("Web identity configuration not specified",{logger:t.logger});let o=await(0,cNt.fromWebToken)({...t,webIdentityToken:iNt.externalDataInterceptor?.getTokenRecord?.()[r]??(0,aNt.readFileSync)(r,{encoding:"ascii"}),roleArn:n,roleSessionName:s})(e);return r===process.env[YLe]&&(0,sNt.setCredentialFeature)(o,"CREDENTIALS_ENV_VARS_STS_WEB_ID_TOKEN","h"),o};uL.fromTokenFile=dNt});var E9=b(eu=>{"use strict";var lL=ZLe(),dL=S9();Object.prototype.hasOwnProperty.call(lL,"__proto__")&&!Object.prototype.hasOwnProperty.call(eu,"__proto__")&&Object.defineProperty(eu,"__proto__",{enumerable:!0,value:lL.__proto__});Object.keys(lL).forEach(function(t){t!=="default"&&!Object.prototype.hasOwnProperty.call(eu,t)&&(eu[t]=lL[t])});Object.prototype.hasOwnProperty.call(dL,"__proto__")&&!Object.prototype.hasOwnProperty.call(eu,"__proto__")&&Object.defineProperty(eu,"__proto__",{enumerable:!0,value:dL.__proto__});Object.keys(dL).forEach(function(t){t!=="default"&&!Object.prototype.hasOwnProperty.call(eu,t)&&(eu[t]=dL[t])})});var oMe=b(sMe=>{"use strict";var _9=require("@smithy/shared-ini-file-loader"),w0=require("@smithy/property-provider"),tu=(Ko(),ue(Ga)),pNt=zke(),mNt=(t,e,r)=>{let n={EcsContainer:async s=>{let{fromHttp:o}=await Promise.resolve().then(()=>O(cK())),{fromContainerMetadata:i}=await import("@smithy/credential-provider-imds");return r?.debug("@aws-sdk/credential-provider-ini - credential_source is EcsContainer"),async()=>w0.chain(o(s??{}),i(s))().then(y9)},Ec2InstanceMetadata:async s=>{r?.debug("@aws-sdk/credential-provider-ini - credential_source is Ec2InstanceMetadata");let{fromInstanceMetadata:o}=await import("@smithy/credential-provider-imds");return async()=>o(s)().then(y9)},Environment:async s=>{r?.debug("@aws-sdk/credential-provider-ini - credential_source is Environment");let{fromEnv:o}=await Promise.resolve().then(()=>O(iK()));return async()=>o(s)().then(y9)}};if(t in n)return n[t];throw new w0.CredentialsProviderError(`Unsupported credential source in profile ${e}. Got ${t}, expected EcsContainer or Ec2InstanceMetadata or Environment.`,{logger:r})},y9=t=>tu.setCredentialFeature(t,"CREDENTIALS_PROFILE_NAMED_PROVIDER","p"),gNt=(t,{profile:e="default",logger:r}={})=>!!t&&typeof t=="object"&&typeof t.role_arn=="string"&&["undefined","string"].indexOf(typeof t.role_session_name)>-1&&["undefined","string"].indexOf(typeof t.external_id)>-1&&["undefined","string"].indexOf(typeof t.mfa_serial)>-1&&(fNt(t,{profile:e,logger:r})||hNt(t,{profile:e,logger:r})),fNt=(t,{profile:e,logger:r})=>{let n=typeof t.source_profile=="string"&&typeof t.credential_source>"u";return n&&r?.debug?.(` ${e} isAssumeRoleWithSourceProfile source_profile=${t.source_profile}`),n},hNt=(t,{profile:e,logger:r})=>{let n=typeof t.credential_source=="string"&&typeof t.source_profile>"u";return n&&r?.debug?.(` ${e} isCredentialSourceProfile credential_source=${t.credential_source}`),n},SNt=async(t,e,r,n,s={},o)=>{r.logger?.debug("@aws-sdk/credential-provider-ini - resolveAssumeRoleCredentials (STS)");let i=e[t],{source_profile:a,region:c}=i;if(!r.roleAssumer){let{getDefaultRoleAssumer:l}=await Promise.resolve().then(()=>(m9(),p9));r.roleAssumer=l({...r.clientConfig,credentialProviderLogger:r.logger,parentClientConfig:{...n,...r?.parentClientConfig,region:c??r?.parentClientConfig?.region??n?.region}},r.clientPlugins)}if(a&&a in s)throw new w0.CredentialsProviderError(`Detected a cycle attempting to resolve credentials for profile ${_9.getProfileName(r)}. Profiles visited: `+Object.keys(s).join(", "),{logger:r.logger});r.logger?.debug(`@aws-sdk/credential-provider-ini - finding credential resolver using ${a?`source_profile=[${a}]`:`profile=[${t}]`}`);let u=a?o(a,e,r,n,{...s,[a]:!0},eMe(e[a]??{})):(await mNt(i.credential_source,t,r.logger)(r))();if(eMe(i))return u.then(l=>tu.setCredentialFeature(l,"CREDENTIALS_PROFILE_SOURCE_PROFILE","o"));{let l={RoleArn:i.role_arn,RoleSessionName:i.role_session_name||`aws-sdk-js-${Date.now()}`,ExternalId:i.external_id,DurationSeconds:parseInt(i.duration_seconds||"3600",10)},{mfa_serial:d}=i;if(d){if(!r.mfaCodeProvider)throw new w0.CredentialsProviderError(`Profile ${t} requires multi-factor authentication, but no MFA code callback was provided.`,{logger:r.logger,tryNextLink:!1});l.SerialNumber=d,l.TokenCode=await r.mfaCodeProvider(d)}let p=await u;return r.roleAssumer(p,l).then(g=>tu.setCredentialFeature(g,"CREDENTIALS_PROFILE_SOURCE_PROFILE","o"))}},eMe=t=>!t.role_arn&&!!t.credential_source,ENt=t=>!!(t&&t.login_session),yNt=async(t,e,r)=>{let n=await pNt.fromLoginCredentials({...e,profile:t})({callerClientConfig:r});return tu.setCredentialFeature(n,"CREDENTIALS_PROFILE_LOGIN","AC")},_Nt=t=>!!t&&typeof t=="object"&&typeof t.credential_process=="string",CNt=async(t,e)=>Promise.resolve().then(()=>O(h9())).then(({fromProcess:r})=>r({...t,profile:e})().then(n=>tu.setCredentialFeature(n,"CREDENTIALS_PROFILE_PROCESS","v"))),RNt=async(t,e,r={},n)=>{let{fromSSO:s}=await Promise.resolve().then(()=>O(C6()));return s({profile:t,logger:r.logger,parentClientConfig:r.parentClientConfig,clientConfig:r.clientConfig})({callerClientConfig:n}).then(o=>e.sso_session?tu.setCredentialFeature(o,"CREDENTIALS_PROFILE_SSO","r"):tu.setCredentialFeature(o,"CREDENTIALS_PROFILE_SSO_LEGACY","t"))},vNt=t=>t&&(typeof t.sso_start_url=="string"||typeof t.sso_account_id=="string"||typeof t.sso_session=="string"||typeof t.sso_region=="string"||typeof t.sso_role_name=="string"),tMe=t=>!!t&&typeof t=="object"&&typeof t.aws_access_key_id=="string"&&typeof t.aws_secret_access_key=="string"&&["undefined","string"].indexOf(typeof t.aws_session_token)>-1&&["undefined","string"].indexOf(typeof t.aws_account_id)>-1,rMe=async(t,e)=>{e?.logger?.debug("@aws-sdk/credential-provider-ini - resolveStaticCredentials");let r={accessKeyId:t.aws_access_key_id,secretAccessKey:t.aws_secret_access_key,sessionToken:t.aws_session_token,...t.aws_credential_scope&&{credentialScope:t.aws_credential_scope},...t.aws_account_id&&{accountId:t.aws_account_id}};return tu.setCredentialFeature(r,"CREDENTIALS_PROFILE","n")},xNt=t=>!!t&&typeof t=="object"&&typeof t.web_identity_token_file=="string"&&typeof t.role_arn=="string"&&["undefined","string"].indexOf(typeof t.role_session_name)>-1,PNt=async(t,e,r)=>Promise.resolve().then(()=>O(E9())).then(({fromTokenFile:n})=>n({webIdentityTokenFile:t.web_identity_token_file,roleArn:t.role_arn,roleSessionName:t.role_session_name,roleAssumerWithWebIdentity:e.roleAssumerWithWebIdentity,logger:e.logger,parentClientConfig:e.parentClientConfig})({callerClientConfig:r}).then(s=>tu.setCredentialFeature(s,"CREDENTIALS_PROFILE_STS_WEB_ID_TOKEN","q"))),nMe=async(t,e,r,n,s={},o=!1)=>{let i=e[t];if(Object.keys(s).length>0&&tMe(i))return rMe(i,r);if(o||gNt(i,{profile:t,logger:r.logger}))return SNt(t,e,r,n,s,nMe);if(tMe(i))return rMe(i,r);if(xNt(i))return PNt(i,r,n);if(_Nt(i))return CNt(r,t);if(vNt(i))return await RNt(t,i,r,n);if(ENt(i))return yNt(t,r,n);throw new w0.CredentialsProviderError(`Could not resolve credentials using profile: [${t}] in configuration/credentials file(s).`,{logger:r.logger})},bNt=(t={})=>async({callerClientConfig:e}={})=>{t.logger?.debug("@aws-sdk/credential-provider-ini - fromIni");let r=await _9.parseKnownFiles(t);return nMe(_9.getProfileName({profile:t.profile??e?.profile}),r,t,e)};sMe.fromIni=bNt});var uMe=b(pL=>{"use strict";var C9=iK(),D0=require("@smithy/property-provider"),INt=require("@smithy/shared-ini-file-loader"),iMe="AWS_EC2_METADATA_DISABLED",ANt=async t=>{let{ENV_CMDS_FULL_URI:e,ENV_CMDS_RELATIVE_URI:r,fromContainerMetadata:n,fromInstanceMetadata:s}=await import("@smithy/credential-provider-imds");if(process.env[r]||process.env[e]){t.logger?.debug("@aws-sdk/credential-provider-node - remoteProvider::fromHttp/fromContainerMetadata");let{fromHttp:o}=await Promise.resolve().then(()=>O(cK()));return D0.chain(o(t),n(t))}return process.env[iMe]&&process.env[iMe]!=="false"?async()=>{throw new D0.CredentialsProviderError("EC2 Instance Metadata Service access disabled",{logger:t.logger})}:(t.logger?.debug("@aws-sdk/credential-provider-node - remoteProvider::fromInstanceMetadata"),s(t))};function TNt(t,e){let r=wNt(t),n,s,o,i=async a=>{if(a?.forceRefresh)return await r(a);if(o?.expiration&&o?.expiration?.getTime(){o=c}).finally(()=>{s=void 0}));else return n=r(a).then(c=>{o=c}).finally(()=>{n=void 0}),i(a);return o};return i}var wNt=t=>async e=>{let r;for(let n of t)try{return await n(e)}catch(s){if(r=s,s?.tryNextLink)continue;throw s}throw r},aMe=!1,DNt=(t={})=>TNt([async()=>{if(t.profile??process.env[INt.ENV_PROFILE])throw process.env[C9.ENV_KEY]&&process.env[C9.ENV_SECRET]&&(aMe||((t.logger?.warn&&t.logger?.constructor?.name!=="NoOpLogger"?t.logger.warn.bind(t.logger):console.warn)(`@aws-sdk/credential-provider-node - defaultProvider::fromEnv WARNING: - Multiple credential sources detected: - Both AWS_PROFILE and the pair AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY static credentials are set. - This SDK will proceed with the AWS_PROFILE value. - - However, a future version may change this behavior to prefer the ENV static credentials. - Please ensure that your environment only sets either the AWS_PROFILE or the - AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY pair. -`),aMe=!0)),new D0.CredentialsProviderError("AWS_PROFILE is set, skipping fromEnv provider.",{logger:t.logger,tryNextLink:!0});return t.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromEnv"),C9.fromEnv(t)()},async e=>{t.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromSSO");let{ssoStartUrl:r,ssoAccountId:n,ssoRegion:s,ssoRoleName:o,ssoSession:i}=t;if(!r&&!n&&!s&&!o&&!i)throw new D0.CredentialsProviderError("Skipping SSO provider in default chain (inputs do not include SSO fields).",{logger:t.logger});let{fromSSO:a}=await Promise.resolve().then(()=>O(C6()));return a(t)(e)},async e=>{t.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromIni");let{fromIni:r}=await Promise.resolve().then(()=>O(oMe()));return r(t)(e)},async e=>{t.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromProcess");let{fromProcess:r}=await Promise.resolve().then(()=>O(h9()));return r(t)(e)},async e=>{t.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromTokenFile");let{fromTokenFile:r}=await Promise.resolve().then(()=>O(E9()));return r(t)(e)},async()=>(t.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::remoteProvider"),(await ANt(t))()),async()=>{throw new D0.CredentialsProviderError("Could not load credentials from any providers",{tryNextLink:!1,logger:t.logger})}],cMe),ONt=t=>t?.expiration!==void 0,cMe=t=>t?.expiration!==void 0&&t.expiration.getTime()-Date.now()<3e5;pL.credentialsTreatedAsExpired=cMe;pL.credentialsWillNeedRefresh=ONt;pL.defaultProvider=DNt});var EMe=b(Mp=>{"use strict";var lMe=require("node:os"),O0=require("node:process"),dMe=require("@smithy/util-config-provider"),pMe=require("node:fs/promises"),dh=require("node:path"),kNt=xW(),NNt=()=>{let t=["deno","bun","llrt"];for(let e of t)if(O0.versions[e])return[`md/${e}`,O0.versions[e]];return["md/nodejs",O0.versions.node]},LNt=t=>{let e=process.cwd();if(!t)return[e];let r=dh.normalize(t),n=r.split(dh.sep),s=n.indexOf("node_modules"),o=s!==-1?n.slice(0,s).join(dh.sep):r;return e===o?[e]:[o,e]},MNt=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*)?$/,mMe=(t="")=>{let e=t.match(MNt);if(!e)return;let[r,n,s,o]=[e[1],e[2],e[3],e[4]];return o?`${r}.${n}.${s}-${o}`:`${r}.${n}.${s}`},FNt=["^","~",">=","<=",">","<"],BNt=["latest","beta","dev","rc","insiders","next"],UNt=(t="")=>{if(BNt.includes(t))return t;let e=FNt.find(n=>t.startsWith(n))??"",r=mMe(t.slice(e.length));if(r)return`${e}${r}`},Wa,qNt=dh.join("node_modules","typescript","package.json"),$Nt=async()=>{if(Wa===null)return;if(typeof Wa=="string")return["md/tsc",Wa];let t=!1;try{t=dMe.booleanSelector(process.env,"AWS_SDK_JS_TYPESCRIPT_DETECTION_DISABLED",dMe.SelectorType.ENV)||!1}catch{}if(t){Wa=null;return}let r=LNt(typeof __dirname<"u"?__dirname:void 0),n;for(let i of r)try{let a=dh.join(i,"package.json"),c=await pMe.readFile(a,"utf-8"),{dependencies:u,devDependencies:l}=JSON.parse(c),d=l?.typescript??u?.typescript;if(typeof d!="string")continue;n=d;break}catch{}if(!n){Wa=null;return}let s;for(let i of r)try{let a=dh.join(i,qNt),c=await pMe.readFile(a,"utf-8"),{version:u}=JSON.parse(c),l=mMe(u);if(typeof l!="string")continue;s=l;break}catch{}if(s)return Wa=s,["md/tsc",Wa];let o=UNt(n);if(typeof o!="string"){Wa=null;return}return Wa=`dev_${o}`,["md/tsc",Wa]},gMe={isCrtAvailable:!1},GNt=()=>gMe.isCrtAvailable?["md/crt-avail"]:null,fMe=({serviceId:t,clientVersion:e})=>{let r=NNt();return async n=>{let s=[["aws-sdk-js",e],["ua","2.1"],[`os/${lMe.platform()}`,lMe.release()],["lang/js"],r],o=await $Nt();o&&s.push(o);let i=GNt();i&&s.push(i),t&&s.push([`api/${t}`,e]),O0.env.AWS_EXECUTION_ENV&&s.push([`exec-env/${O0.env.AWS_EXECUTION_ENV}`]);let a=await n?.userAgentAppId?.();return a?[...s,[`app/${a}`]]:[...s]}},jNt=fMe,hMe="AWS_SDK_UA_APP_ID",SMe="sdk_ua_app_id",VNt="sdk-ua-app-id",HNt={environmentVariableSelector:t=>t[hMe],configFileSelector:t=>t[SMe]??t[VNt],default:kNt.DEFAULT_UA_APP_ID};Mp.NODE_APP_ID_CONFIG_OPTIONS=HNt;Mp.UA_APP_ID_ENV_NAME=hMe;Mp.UA_APP_ID_INI_NAME=SMe;Mp.createDefaultUserAgentProvider=fMe;Mp.crtAvailability=gMe;Mp.defaultUserAgent=jNt});var MMe=b(gL=>{"use strict";Object.defineProperty(gL,"__esModule",{value:!0});gL.ruleSet=void 0;var kMe="required",Is="fn",As="argv",Fp="ref",Wl="properties",Kl="headers",yMe=!0,_Me="isSet",k0="booleanEquals",ph="error",Ka="endpoint",ru="tree",mL="PartitionResult",R9="stringEquals",CMe={[kMe]:!1,type:"string"},RMe={[kMe]:!0,default:!1,type:"boolean"},vMe={[Fp]:"Endpoint"},NMe={[Is]:k0,[As]:[{[Fp]:"UseFIPS"},!0]},LMe={[Is]:k0,[As]:[{[Fp]:"UseDualStack"},!0]},ti={},xMe={[Is]:"getAttr",[As]:[{[Fp]:mL},"supportsFIPS"]},PMe={[Is]:k0,[As]:[!0,{[Is]:"getAttr",[As]:[{[Fp]:mL},"supportsDualStack"]}]},v9={[Is]:"getAttr",[As]:[{[Fp]:mL},"name"]},bMe={url:"https://secretsmanager-fips.{Region}.amazonaws.com",[Wl]:{},[Kl]:{}},IMe={url:"https://secretsmanager.{Region}.amazonaws.com",[Wl]:{},[Kl]:{}},AMe=[NMe],TMe=[LMe],wMe=[{[Fp]:"Region"}],DMe=[{[Is]:R9,[As]:["aws",v9]}],OMe=[{[Is]:R9,[As]:["aws-us-gov",v9]}],zNt={version:"1.0",parameters:{Region:CMe,UseDualStack:RMe,UseFIPS:RMe,Endpoint:CMe},rules:[{conditions:[{[Is]:_Me,[As]:[vMe]}],rules:[{conditions:AMe,error:"Invalid Configuration: FIPS and custom endpoint are not supported",type:ph},{conditions:TMe,error:"Invalid Configuration: Dualstack and custom endpoint are not supported",type:ph},{endpoint:{url:vMe,[Wl]:ti,[Kl]:ti},type:Ka}],type:ru},{conditions:[{[Is]:_Me,[As]:wMe}],rules:[{conditions:[{[Is]:"aws.partition",[As]:wMe,assign:mL}],rules:[{conditions:[NMe,LMe],rules:[{conditions:[{[Is]:k0,[As]:[yMe,xMe]},PMe],rules:[{conditions:DMe,endpoint:bMe,type:Ka},{conditions:OMe,endpoint:bMe,type:Ka},{endpoint:{url:"https://secretsmanager-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",[Wl]:ti,[Kl]:ti},type:Ka}],type:ru},{error:"FIPS and DualStack are enabled, but this partition does not support one or both",type:ph}],type:ru},{conditions:AMe,rules:[{conditions:[{[Is]:k0,[As]:[xMe,yMe]}],rules:[{endpoint:{url:"https://secretsmanager-fips.{Region}.{PartitionResult#dnsSuffix}",[Wl]:ti,[Kl]:ti},type:Ka}],type:ru},{error:"FIPS is enabled but this partition does not support FIPS",type:ph}],type:ru},{conditions:TMe,rules:[{conditions:[PMe],rules:[{conditions:DMe,endpoint:IMe,type:Ka},{conditions:[{[Is]:R9,[As]:["aws-cn",v9]}],endpoint:{url:"https://secretsmanager.{Region}.amazonaws.com.cn",[Wl]:ti,[Kl]:ti},type:Ka},{conditions:OMe,endpoint:IMe,type:Ka},{endpoint:{url:"https://secretsmanager.{Region}.{PartitionResult#dualStackDnsSuffix}",[Wl]:ti,[Kl]:ti},type:Ka}],type:ru},{error:"DualStack is enabled but this partition does not support DualStack",type:ph}],type:ru},{endpoint:{url:"https://secretsmanager.{Region}.{PartitionResult#dnsSuffix}",[Wl]:ti,[Kl]:ti},type:Ka}],type:ru}],type:ru},{error:"Invalid Configuration: Missing Region",type:ph}]};gL.ruleSet=zNt});var FMe=b(fL=>{"use strict";Object.defineProperty(fL,"__esModule",{value:!0});fL.defaultEndpointResolver=void 0;var WNt=_W(),x9=require("@smithy/util-endpoints"),KNt=MMe(),QNt=new x9.EndpointCache({size:50,params:["Endpoint","Region","UseDualStack","UseFIPS"]}),XNt=(t,e={})=>QNt.get(t,()=>(0,x9.resolveEndpoint)(KNt.ruleSet,{endpointParams:t,logger:e.logger}));fL.defaultEndpointResolver=XNt;x9.customEndpointFunctions.aws=WNt.awsEndpointFunctions});var hL=b(mh=>{"use strict";Object.defineProperty(mh,"__esModule",{value:!0});mh.SecretsManagerServiceException=mh.__ServiceException=void 0;var BMe=require("@smithy/smithy-client");Object.defineProperty(mh,"__ServiceException",{enumerable:!0,get:function(){return BMe.ServiceException}});var P9=class t extends BMe.ServiceException{constructor(e){super(e),Object.setPrototypeOf(this,t.prototype)}};mh.SecretsManagerServiceException=P9});var B9=b($t=>{"use strict";Object.defineProperty($t,"__esModule",{value:!0});$t.PublicPolicyException=$t.ResourceExistsException=$t.PreconditionNotMetException=$t.MalformedPolicyDocumentException=$t.LimitExceededException=$t.EncryptionFailure=$t.ResourceNotFoundException=$t.InvalidRequestException=$t.InvalidParameterException=$t.InvalidNextTokenException=$t.InternalServiceError=$t.DecryptionFailure=void 0;var ri=hL(),b9=class t extends ri.SecretsManagerServiceException{name="DecryptionFailure";$fault="client";Message;constructor(e){super({name:"DecryptionFailure",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.Message=e.Message}};$t.DecryptionFailure=b9;var I9=class t extends ri.SecretsManagerServiceException{name="InternalServiceError";$fault="server";Message;constructor(e){super({name:"InternalServiceError",$fault:"server",...e}),Object.setPrototypeOf(this,t.prototype),this.Message=e.Message}};$t.InternalServiceError=I9;var A9=class t extends ri.SecretsManagerServiceException{name="InvalidNextTokenException";$fault="client";Message;constructor(e){super({name:"InvalidNextTokenException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.Message=e.Message}};$t.InvalidNextTokenException=A9;var T9=class t extends ri.SecretsManagerServiceException{name="InvalidParameterException";$fault="client";Message;constructor(e){super({name:"InvalidParameterException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.Message=e.Message}};$t.InvalidParameterException=T9;var w9=class t extends ri.SecretsManagerServiceException{name="InvalidRequestException";$fault="client";Message;constructor(e){super({name:"InvalidRequestException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.Message=e.Message}};$t.InvalidRequestException=w9;var D9=class t extends ri.SecretsManagerServiceException{name="ResourceNotFoundException";$fault="client";Message;constructor(e){super({name:"ResourceNotFoundException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.Message=e.Message}};$t.ResourceNotFoundException=D9;var O9=class t extends ri.SecretsManagerServiceException{name="EncryptionFailure";$fault="client";Message;constructor(e){super({name:"EncryptionFailure",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.Message=e.Message}};$t.EncryptionFailure=O9;var k9=class t extends ri.SecretsManagerServiceException{name="LimitExceededException";$fault="client";Message;constructor(e){super({name:"LimitExceededException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.Message=e.Message}};$t.LimitExceededException=k9;var N9=class t extends ri.SecretsManagerServiceException{name="MalformedPolicyDocumentException";$fault="client";Message;constructor(e){super({name:"MalformedPolicyDocumentException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.Message=e.Message}};$t.MalformedPolicyDocumentException=N9;var L9=class t extends ri.SecretsManagerServiceException{name="PreconditionNotMetException";$fault="client";Message;constructor(e){super({name:"PreconditionNotMetException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.Message=e.Message}};$t.PreconditionNotMetException=L9;var M9=class t extends ri.SecretsManagerServiceException{name="ResourceExistsException";$fault="client";Message;constructor(e){super({name:"ResourceExistsException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.Message=e.Message}};$t.ResourceExistsException=M9;var F9=class t extends ri.SecretsManagerServiceException{name="PublicPolicyException";$fault="client";Message;constructor(e){super({name:"PublicPolicyException",$fault:"client",...e}),Object.setPrototypeOf(this,t.prototype),this.Message=e.Message}};$t.PublicPolicyException=F9});var W9=b(x=>{"use strict";Object.defineProperty(x,"__esModule",{value:!0});x.RestoreSecretRequest$=x.ReplicationStatusType$=x.ReplicateSecretToRegionsResponse$=x.ReplicateSecretToRegionsRequest$=x.ReplicaRegionType$=x.RemoveRegionsFromReplicationResponse$=x.RemoveRegionsFromReplicationRequest$=x.PutSecretValueResponse$=x.PutSecretValueRequest$=x.PutResourcePolicyResponse$=x.PutResourcePolicyRequest$=x.ListSecretVersionIdsResponse$=x.ListSecretVersionIdsRequest$=x.ListSecretsResponse$=x.ListSecretsRequest$=x.GetSecretValueResponse$=x.GetSecretValueRequest$=x.GetResourcePolicyResponse$=x.GetResourcePolicyRequest$=x.GetRandomPasswordResponse$=x.GetRandomPasswordRequest$=x.Filter$=x.ExternalSecretRotationMetadataItem$=x.DescribeSecretResponse$=x.DescribeSecretRequest$=x.DeleteSecretResponse$=x.DeleteSecretRequest$=x.DeleteResourcePolicyResponse$=x.DeleteResourcePolicyRequest$=x.CreateSecretResponse$=x.CreateSecretRequest$=x.CancelRotateSecretResponse$=x.CancelRotateSecretRequest$=x.BatchGetSecretValueResponse$=x.BatchGetSecretValueRequest$=x.APIErrorType$=x.errorTypeRegistries=x.ResourceNotFoundException$=x.ResourceExistsException$=x.PublicPolicyException$=x.PreconditionNotMetException$=x.MalformedPolicyDocumentException$=x.LimitExceededException$=x.InvalidRequestException$=x.InvalidParameterException$=x.InvalidNextTokenException$=x.InternalServiceError$=x.EncryptionFailure$=x.DecryptionFailure$=x.SecretsManagerServiceException$=void 0;x.ValidateResourcePolicy$=x.UpdateSecretVersionStage$=x.UpdateSecret$=x.UntagResource$=x.TagResource$=x.StopReplicationToReplica$=x.RotateSecret$=x.RestoreSecret$=x.ReplicateSecretToRegions$=x.RemoveRegionsFromReplication$=x.PutSecretValue$=x.PutResourcePolicy$=x.ListSecretVersionIds$=x.ListSecrets$=x.GetSecretValue$=x.GetResourcePolicy$=x.GetRandomPassword$=x.DescribeSecret$=x.DeleteSecret$=x.DeleteResourcePolicy$=x.CreateSecret$=x.CancelRotateSecret$=x.BatchGetSecretValue$=x.ValidationErrorsEntry$=x.ValidateResourcePolicyResponse$=x.ValidateResourcePolicyRequest$=x.UpdateSecretVersionStageResponse$=x.UpdateSecretVersionStageRequest$=x.UpdateSecretResponse$=x.UpdateSecretRequest$=x.UntagResourceRequest$=x.TagResourceRequest$=x.Tag$=x.StopReplicationToReplicaResponse$=x.StopReplicationToReplicaRequest$=x.SecretVersionsListEntry$=x.SecretValueEntry$=x.SecretListEntry$=x.RotationRulesType$=x.RotateSecretResponse$=x.RotateSecretRequest$=x.RestoreSecretResponse$=void 0;var JNt="AutomaticallyAfterDays",YNt="APIErrorListType",ZNt="APIErrorType",Br="ARN",UMe="AddReplicaRegions",eLt="AddReplicaRegionListType",tLt="BatchGetSecretValue",rLt="BatchGetSecretValueRequest",nLt="BatchGetSecretValueResponse",sLt="BlockPublicPolicy",N0="CreatedDate",oLt="CheckName",iLt="CancelRotateSecret",aLt="CancelRotateSecretRequest",cLt="CancelRotateSecretResponse",SL="ClientRequestToken",uLt="CreateSecret",lLt="CreateSecretRequest",dLt="CreateSecretResponse",EL="Description",pLt="DeletionDate",qMe="DeletedDate",mLt="DecryptionFailure",gLt="DeleteResourcePolicy",fLt="DeleteResourcePolicyRequest",hLt="DeleteResourcePolicyResponse",SLt="DeleteSecret",ELt="DeleteSecretRequest",yLt="DeleteSecretResponse",_Lt="DescribeSecretRequest",CLt="DescribeSecretResponse",RLt="DescribeSecret",vLt="Duration",xLt="Errors",PLt="ErrorCode",bLt="ExcludeCharacters",ILt="EncryptionFailure",ALt="ExcludeLowercase",TLt="ErrorMessage",wLt="ExcludeNumbers",DLt="ExcludePunctuation",U9="ExternalSecretRotationMetadata",OLt="ExternalSecretRotationMetadataItem",kLt="ExternalSecretRotationMetadataType",q9="ExternalSecretRotationRoleArn",NLt="ExcludeUppercase",$Me="Filters",LLt="ForceDeleteWithoutRecovery",MLt="FiltersListType",GMe="ForceOverwriteReplicaSecret",FLt="Filter",BLt="GetRandomPassword",ULt="GetRandomPasswordRequest",qLt="GetRandomPasswordResponse",$Lt="GetResourcePolicyRequest",GLt="GetResourcePolicyResponse",jLt="GetResourcePolicy",VLt="GetSecretValue",HLt="GetSecretValueRequest",zLt="GetSecretValueResponse",WLt="IncludeDeprecated",KLt="InvalidNextTokenException",QLt="IncludePlannedDeletion",XLt="InvalidParameterException",JLt="InvalidRequestException",YLt="IncludeSpace",ZLt="InternalServiceError",$9="Key",gh="KmsKeyId",eMt="KmsKeyIds",yL="LastAccessedDate",jMe="LastChangedDate",tMt="LimitExceededException",VMe="LastRotatedDate",rMt="ListSecrets",nMt="ListSecretsRequest",sMt="ListSecretsResponse",oMt="ListSecretVersionIds",iMt="ListSecretVersionIdsRequest",aMt="ListSecretVersionIdsResponse",lo="Message",cMt="MalformedPolicyDocumentException",G9="MaxResults",uMt="MoveToVersionId",mn="Name",HMe="NextRotationDate",fh="NextToken",zMe="OwningService",lMt="PasswordLength",dMt="PreconditionNotMetException",pMt="PublicPolicyException",WMe="PrimaryRegion",mMt="PutResourcePolicy",gMt="PutResourcePolicyRequest",fMt="PutResourcePolicyResponse",hMt="PutSecretValue",SMt="PutSecretValueRequest",EMt="PutSecretValueResponse",yMt="PolicyValidationPassed",KMe="Region",QMe="RotationEnabled",_Mt="ResourceExistsException",CMt="RequireEachIncludedType",RMt="RemoveFromVersionId",vMt="RotateImmediately",j9="RotationLambdaARN",xMt="ResourceNotFoundException",PMt="RandomPassword",bMt="RandomPasswordType",V9="ResourcePolicy",H9="RotationRules",IMt="RemoveRegionsFromReplication",AMt="RemoveRegionsFromReplicationRequest",TMt="RemoveRegionsFromReplicationResponse",wMt="RemoveReplicaRegions",DMt="ReplicaRegionType",OMt="RotationRulesType",_L="ReplicationStatus",kMt="ReplicationStatusListType",NMt="RestoreSecretRequest",LMt="RestoreSecretResponse",MMt="RotateSecretRequest",FMt="RotateSecretResponse",BMt="ReplicationStatusType",UMt="ReplicateSecretToRegions",qMt="ReplicateSecretToRegionsRequest",$Mt="ReplicateSecretToRegionsResponse",GMt="RestoreSecret",jMt="RotateSecret",VMt="RotationToken",HMt="RotationTokenType",zMt="RecoveryWindowInDays",WMt="Status",L0="SecretBinary",KMt="SecretBinaryType",QMt="SortBy",XMt="ScheduleExpression",wr="SecretId",JMt="SecretIdList",YMt="SecretList",ZMt="SecretListEntry",e1t="SecretListType",t1t="StatusMessage",r1t="SortOrder",n1t="StopReplicationToReplica",s1t="StopReplicationToReplicaRequest",o1t="StopReplicationToReplicaResponse",M0="SecretString",i1t="SecretStringType",a1t="SecretValues",c1t="SecretValueEntry",u1t="SecretVersionsListEntry",l1t="SecretVersionsListType",d1t="SecretValuesType",p1t="SecretVersionsToStages",XMe="SecretVersionsToStagesMapType",CL="Tags",m1t="TagKeys",g1t="TagListType",f1t="TagResource",h1t="TagResourceRequest",S1t="Tag",RL="Type",E1t="UntagResource",y1t="UntagResourceRequest",_1t="UpdateSecret",C1t="UpdateSecretRequest",R1t="UpdateSecretResponse",v1t="UpdateSecretVersionStage",x1t="UpdateSecretVersionStageRequest",P1t="UpdateSecretVersionStageResponse",JMe="Value",b1t="ValidationErrors",I1t="ValidationErrorsEntry",A1t="ValidationErrorsType",nu="VersionId",T1t="VersionIdsToStages",w1t="ValidateResourcePolicy",D1t="ValidateResourcePolicyRequest",O1t="ValidateResourcePolicyResponse",YMe="VersionStage",F0="VersionStages",k1t="Values",N1t="Versions",ea="client",ni="error",ZMe="smithy.ts.sdk.synthetic.com.amazonaws.secretsmanager",L1t="server",H="com.amazonaws.secretsmanager",e1e=require("@smithy/core/schema"),si=B9(),M1t=hL(),t1e=e1e.TypeRegistry.for(ZMe);x.SecretsManagerServiceException$=[-3,ZMe,"SecretsManagerServiceException",0,[],[]];t1e.registerError(x.SecretsManagerServiceException$,M1t.SecretsManagerServiceException);var po=e1e.TypeRegistry.for(H);x.DecryptionFailure$=[-3,H,mLt,{[ni]:ea},[lo],[0]];po.registerError(x.DecryptionFailure$,si.DecryptionFailure);x.EncryptionFailure$=[-3,H,ILt,{[ni]:ea},[lo],[0]];po.registerError(x.EncryptionFailure$,si.EncryptionFailure);x.InternalServiceError$=[-3,H,ZLt,{[ni]:L1t},[lo],[0]];po.registerError(x.InternalServiceError$,si.InternalServiceError);x.InvalidNextTokenException$=[-3,H,KLt,{[ni]:ea},[lo],[0]];po.registerError(x.InvalidNextTokenException$,si.InvalidNextTokenException);x.InvalidParameterException$=[-3,H,XLt,{[ni]:ea},[lo],[0]];po.registerError(x.InvalidParameterException$,si.InvalidParameterException);x.InvalidRequestException$=[-3,H,JLt,{[ni]:ea},[lo],[0]];po.registerError(x.InvalidRequestException$,si.InvalidRequestException);x.LimitExceededException$=[-3,H,tMt,{[ni]:ea},[lo],[0]];po.registerError(x.LimitExceededException$,si.LimitExceededException);x.MalformedPolicyDocumentException$=[-3,H,cMt,{[ni]:ea},[lo],[0]];po.registerError(x.MalformedPolicyDocumentException$,si.MalformedPolicyDocumentException);x.PreconditionNotMetException$=[-3,H,dMt,{[ni]:ea},[lo],[0]];po.registerError(x.PreconditionNotMetException$,si.PreconditionNotMetException);x.PublicPolicyException$=[-3,H,pMt,{[ni]:ea},[lo],[0]];po.registerError(x.PublicPolicyException$,si.PublicPolicyException);x.ResourceExistsException$=[-3,H,_Mt,{[ni]:ea},[lo],[0]];po.registerError(x.ResourceExistsException$,si.ResourceExistsException);x.ResourceNotFoundException$=[-3,H,xMt,{[ni]:ea},[lo],[0]];po.registerError(x.ResourceNotFoundException$,si.ResourceNotFoundException);x.errorTypeRegistries=[t1e,po];var F1t=[0,H,bMt,8,0],B1t=[0,H,HMt,8,0],B0=[0,H,KMt,8,21],U0=[0,H,i1t,8,0];x.APIErrorType$=[3,H,ZNt,0,[wr,PLt,lo],[0,0,0]];x.BatchGetSecretValueRequest$=[3,H,rLt,0,[JMt,$Me,G9,fh],[64,()=>s1e,1,0]];x.BatchGetSecretValueResponse$=[3,H,nLt,0,[a1t,fh,xLt],[[()=>$1t,0],0,()=>U1t]];x.CancelRotateSecretRequest$=[3,H,aLt,0,[wr],[0],1];x.CancelRotateSecretResponse$=[3,H,cLt,0,[Br,mn,nu],[0,0,0]];x.CreateSecretRequest$=[3,H,lLt,0,[mn,SL,EL,gh,L0,M0,CL,UMe,GMe,RL],[0,[0,4],0,0,[()=>B0,0],[()=>U0,0],()=>xL,()=>n1e,2,0],1];x.CreateSecretResponse$=[3,H,dLt,0,[Br,mn,nu,_L],[0,0,0,()=>vL]];x.DeleteResourcePolicyRequest$=[3,H,fLt,0,[wr],[0],1];x.DeleteResourcePolicyResponse$=[3,H,hLt,0,[Br,mn],[0,0]];x.DeleteSecretRequest$=[3,H,ELt,0,[wr,zMt,LLt],[0,1,2],1];x.DeleteSecretResponse$=[3,H,yLt,0,[Br,mn,pLt],[0,0,4]];x.DescribeSecretRequest$=[3,H,_Lt,0,[wr],[0],1];x.DescribeSecretResponse$=[3,H,CLt,0,[Br,mn,RL,EL,gh,QMe,j9,H9,U9,q9,VMe,jMe,yL,qMe,HMe,CL,T1t,zMe,N0,WMe,_L],[0,0,0,0,0,2,0,()=>x.RotationRulesType$,()=>z9,0,4,4,4,4,4,()=>xL,[2,H,XMe,0,0,64],0,4,0,()=>vL]];x.ExternalSecretRotationMetadataItem$=[3,H,OLt,0,[$9,JMe],[0,0]];x.Filter$=[3,H,FLt,0,[$9,k1t],[0,64]];x.GetRandomPasswordRequest$=[3,H,ULt,0,[lMt,bLt,wLt,DLt,NLt,ALt,YLt,CMt],[1,0,2,2,2,2,2,2]];x.GetRandomPasswordResponse$=[3,H,qLt,0,[PMt],[[()=>F1t,0]]];x.GetResourcePolicyRequest$=[3,H,$Lt,0,[wr],[0],1];x.GetResourcePolicyResponse$=[3,H,GLt,0,[Br,mn,V9],[0,0,0]];x.GetSecretValueRequest$=[3,H,HLt,0,[wr,nu,YMe],[0,0,0],1];x.GetSecretValueResponse$=[3,H,zLt,0,[Br,mn,nu,L0,M0,F0,N0],[0,0,0,[()=>B0,0],[()=>U0,0],64,4]];x.ListSecretsRequest$=[3,H,nMt,0,[QLt,G9,fh,$Me,r1t,QMt],[2,1,0,()=>s1e,0,0]];x.ListSecretsResponse$=[3,H,sMt,0,[YMt,fh],[()=>q1t,0]];x.ListSecretVersionIdsRequest$=[3,H,iMt,0,[wr,G9,fh,WLt],[0,1,0,2],1];x.ListSecretVersionIdsResponse$=[3,H,aMt,0,[N1t,fh,Br,mn],[()=>G1t,0,0,0]];x.PutResourcePolicyRequest$=[3,H,gMt,0,[wr,V9,sLt],[0,0,2],2];x.PutResourcePolicyResponse$=[3,H,fMt,0,[Br,mn],[0,0]];x.PutSecretValueRequest$=[3,H,SMt,0,[wr,SL,L0,M0,F0,VMt],[0,[0,4],[()=>B0,0],[()=>U0,0],64,[()=>B1t,0]],1];x.PutSecretValueResponse$=[3,H,EMt,0,[Br,mn,nu,F0],[0,0,0,64]];x.RemoveRegionsFromReplicationRequest$=[3,H,AMt,0,[wr,wMt],[0,64],2];x.RemoveRegionsFromReplicationResponse$=[3,H,TMt,0,[Br,_L],[0,()=>vL]];x.ReplicaRegionType$=[3,H,DMt,0,[KMe,gh],[0,0]];x.ReplicateSecretToRegionsRequest$=[3,H,qMt,0,[wr,UMe,GMe],[0,()=>n1e,2],2];x.ReplicateSecretToRegionsResponse$=[3,H,$Mt,0,[Br,_L],[0,()=>vL]];x.ReplicationStatusType$=[3,H,BMt,0,[KMe,gh,WMt,t1t,yL],[0,0,0,0,4]];x.RestoreSecretRequest$=[3,H,NMt,0,[wr],[0],1];x.RestoreSecretResponse$=[3,H,LMt,0,[Br,mn],[0,0]];x.RotateSecretRequest$=[3,H,MMt,0,[wr,SL,j9,H9,U9,q9,vMt],[0,[0,4],0,()=>x.RotationRulesType$,()=>z9,0,2],1];x.RotateSecretResponse$=[3,H,FMt,0,[Br,mn,nu],[0,0,0]];x.RotationRulesType$=[3,H,OMt,0,[JNt,vLt,XMt],[1,0,0]];x.SecretListEntry$=[3,H,ZMt,0,[Br,mn,RL,EL,gh,QMe,j9,H9,U9,q9,VMe,jMe,yL,qMe,HMe,CL,p1t,zMe,N0,WMe],[0,0,0,0,0,2,0,()=>x.RotationRulesType$,()=>z9,0,4,4,4,4,4,()=>xL,[2,H,XMe,0,0,64],0,4,0]];x.SecretValueEntry$=[3,H,c1t,0,[Br,mn,nu,L0,M0,F0,N0],[0,0,0,[()=>B0,0],[()=>U0,0],64,4]];x.SecretVersionsListEntry$=[3,H,u1t,0,[nu,F0,yL,N0,eMt],[0,64,4,4,64]];x.StopReplicationToReplicaRequest$=[3,H,s1t,0,[wr],[0],1];x.StopReplicationToReplicaResponse$=[3,H,o1t,0,[Br],[0]];x.Tag$=[3,H,S1t,0,[$9,JMe],[0,0]];x.TagResourceRequest$=[3,H,h1t,0,[wr,CL],[0,()=>xL],2];x.UntagResourceRequest$=[3,H,y1t,0,[wr,m1t],[0,64],2];x.UpdateSecretRequest$=[3,H,C1t,0,[wr,SL,EL,gh,L0,M0,RL],[0,[0,4],0,0,[()=>B0,0],[()=>U0,0],0],1];x.UpdateSecretResponse$=[3,H,R1t,0,[Br,mn,nu],[0,0,0]];x.UpdateSecretVersionStageRequest$=[3,H,x1t,0,[wr,YMe,RMt,uMt],[0,0,0,0],2];x.UpdateSecretVersionStageResponse$=[3,H,P1t,0,[Br,mn],[0,0]];x.ValidateResourcePolicyRequest$=[3,H,D1t,0,[V9,wr],[0,0],1];x.ValidateResourcePolicyResponse$=[3,H,O1t,0,[yMt,b1t],[2,()=>j1t]];x.ValidationErrorsEntry$=[3,H,I1t,0,[oLt,TLt],[0,0]];var r1e="unit",n1e=[1,H,eLt,0,()=>x.ReplicaRegionType$],U1t=[1,H,YNt,0,()=>x.APIErrorType$],z9=[1,H,kLt,0,()=>x.ExternalSecretRotationMetadataItem$],s1e=[1,H,MLt,0,()=>x.Filter$],vL=[1,H,kMt,0,()=>x.ReplicationStatusType$],q1t=[1,H,e1t,0,()=>x.SecretListEntry$],$1t=[1,H,d1t,0,[()=>x.SecretValueEntry$,0]],G1t=[1,H,l1t,0,()=>x.SecretVersionsListEntry$],xL=[1,H,g1t,0,()=>x.Tag$],j1t=[1,H,A1t,0,()=>x.ValidationErrorsEntry$];x.BatchGetSecretValue$=[9,H,tLt,0,()=>x.BatchGetSecretValueRequest$,()=>x.BatchGetSecretValueResponse$];x.CancelRotateSecret$=[9,H,iLt,0,()=>x.CancelRotateSecretRequest$,()=>x.CancelRotateSecretResponse$];x.CreateSecret$=[9,H,uLt,0,()=>x.CreateSecretRequest$,()=>x.CreateSecretResponse$];x.DeleteResourcePolicy$=[9,H,gLt,0,()=>x.DeleteResourcePolicyRequest$,()=>x.DeleteResourcePolicyResponse$];x.DeleteSecret$=[9,H,SLt,0,()=>x.DeleteSecretRequest$,()=>x.DeleteSecretResponse$];x.DescribeSecret$=[9,H,RLt,0,()=>x.DescribeSecretRequest$,()=>x.DescribeSecretResponse$];x.GetRandomPassword$=[9,H,BLt,0,()=>x.GetRandomPasswordRequest$,()=>x.GetRandomPasswordResponse$];x.GetResourcePolicy$=[9,H,jLt,0,()=>x.GetResourcePolicyRequest$,()=>x.GetResourcePolicyResponse$];x.GetSecretValue$=[9,H,VLt,0,()=>x.GetSecretValueRequest$,()=>x.GetSecretValueResponse$];x.ListSecrets$=[9,H,rMt,0,()=>x.ListSecretsRequest$,()=>x.ListSecretsResponse$];x.ListSecretVersionIds$=[9,H,oMt,0,()=>x.ListSecretVersionIdsRequest$,()=>x.ListSecretVersionIdsResponse$];x.PutResourcePolicy$=[9,H,mMt,0,()=>x.PutResourcePolicyRequest$,()=>x.PutResourcePolicyResponse$];x.PutSecretValue$=[9,H,hMt,0,()=>x.PutSecretValueRequest$,()=>x.PutSecretValueResponse$];x.RemoveRegionsFromReplication$=[9,H,IMt,0,()=>x.RemoveRegionsFromReplicationRequest$,()=>x.RemoveRegionsFromReplicationResponse$];x.ReplicateSecretToRegions$=[9,H,UMt,0,()=>x.ReplicateSecretToRegionsRequest$,()=>x.ReplicateSecretToRegionsResponse$];x.RestoreSecret$=[9,H,GMt,0,()=>x.RestoreSecretRequest$,()=>x.RestoreSecretResponse$];x.RotateSecret$=[9,H,jMt,0,()=>x.RotateSecretRequest$,()=>x.RotateSecretResponse$];x.StopReplicationToReplica$=[9,H,n1t,0,()=>x.StopReplicationToReplicaRequest$,()=>x.StopReplicationToReplicaResponse$];x.TagResource$=[9,H,f1t,0,()=>x.TagResourceRequest$,()=>r1e];x.UntagResource$=[9,H,E1t,0,()=>x.UntagResourceRequest$,()=>r1e];x.UpdateSecret$=[9,H,_1t,0,()=>x.UpdateSecretRequest$,()=>x.UpdateSecretResponse$];x.UpdateSecretVersionStage$=[9,H,v1t,0,()=>x.UpdateSecretVersionStageRequest$,()=>x.UpdateSecretVersionStageResponse$];x.ValidateResourcePolicy$=[9,H,w1t,0,()=>x.ValidateResourcePolicyRequest$,()=>x.ValidateResourcePolicyResponse$]});var a1e=b(PL=>{"use strict";Object.defineProperty(PL,"__esModule",{value:!0});PL.getRuntimeConfig=void 0;var V1t=(rk(),ue(tk)),H1t=(nK(),ue(rAe)),z1t=require("@smithy/smithy-client"),W1t=require("@smithy/url-parser"),o1e=require("@smithy/util-base64"),i1e=require("@smithy/util-utf8"),K1t=oK(),Q1t=FMe(),X1t=W9(),J1t=t=>({apiVersion:"2017-10-17",base64Decoder:t?.base64Decoder??o1e.fromBase64,base64Encoder:t?.base64Encoder??o1e.toBase64,disableHostPrefix:t?.disableHostPrefix??!1,endpointProvider:t?.endpointProvider??Q1t.defaultEndpointResolver,extensions:t?.extensions??[],httpAuthSchemeProvider:t?.httpAuthSchemeProvider??K1t.defaultSecretsManagerHttpAuthSchemeProvider,httpAuthSchemes:t?.httpAuthSchemes??[{schemeId:"aws.auth#sigv4",identityProvider:e=>e.getIdentityProvider("aws.auth#sigv4"),signer:new V1t.AwsSdkSigV4Signer}],logger:t?.logger??new z1t.NoOpLogger,protocol:t?.protocol??H1t.AwsJson1_1Protocol,protocolSettings:t?.protocolSettings??{defaultNamespace:"com.amazonaws.secretsmanager",errorTypeRegistries:X1t.errorTypeRegistries,version:"2017-10-17",serviceTarget:"secretsmanager"},serviceId:t?.serviceId??"Secrets Manager",urlParser:t?.urlParser??W1t.parseUrl,utf8Decoder:t?.utf8Decoder??i1e.fromUtf8,utf8Encoder:t?.utf8Encoder??i1e.toUtf8});PL.getRuntimeConfig=J1t});var m1e=b(IL=>{"use strict";Object.defineProperty(IL,"__esModule",{value:!0});IL.getRuntimeConfig=void 0;var Y1t=require("tslib"),Z1t=Y1t.__importDefault(nAe()),c1e=(rk(),ue(tk)),eFt=uMe(),u1e=EMe(),bL=require("@smithy/config-resolver"),tFt=require("@smithy/hash-node"),l1e=require("@smithy/middleware-retry"),Bp=require("@smithy/node-config-provider"),d1e=require("@smithy/node-http-handler"),p1e=require("@smithy/smithy-client"),rFt=require("@smithy/util-body-length-node"),nFt=require("@smithy/util-defaults-mode-node"),sFt=require("@smithy/util-retry"),oFt=a1e(),iFt=t=>{(0,p1e.emitWarningIfUnsupportedVersion)(process.version);let e=(0,nFt.resolveDefaultsModeConfig)(t),r=()=>e().then(p1e.loadConfigsForDefaultMode),n=(0,oFt.getRuntimeConfig)(t);(0,c1e.emitWarningIfUnsupportedVersion)(process.version);let s={profile:t?.profile,logger:n.logger};return{...n,...t,runtime:"node",defaultsMode:e,authSchemePreference:t?.authSchemePreference??(0,Bp.loadConfig)(c1e.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS,s),bodyLengthChecker:t?.bodyLengthChecker??rFt.calculateBodyLength,credentialDefaultProvider:t?.credentialDefaultProvider??eFt.defaultProvider,defaultUserAgentProvider:t?.defaultUserAgentProvider??(0,u1e.createDefaultUserAgentProvider)({serviceId:n.serviceId,clientVersion:Z1t.default.version}),maxAttempts:t?.maxAttempts??(0,Bp.loadConfig)(l1e.NODE_MAX_ATTEMPT_CONFIG_OPTIONS,t),region:t?.region??(0,Bp.loadConfig)(bL.NODE_REGION_CONFIG_OPTIONS,{...bL.NODE_REGION_CONFIG_FILE_OPTIONS,...s}),requestHandler:d1e.NodeHttpHandler.create(t?.requestHandler??r),retryMode:t?.retryMode??(0,Bp.loadConfig)({...l1e.NODE_RETRY_MODE_CONFIG_OPTIONS,default:async()=>(await r()).retryMode||sFt.DEFAULT_RETRY_MODE},t),sha256:t?.sha256??tFt.Hash.bind(null,"sha256"),streamCollector:t?.streamCollector??d1e.streamCollector,useDualstackEndpoint:t?.useDualstackEndpoint??(0,Bp.loadConfig)(bL.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS,s),useFipsEndpoint:t?.useFipsEndpoint??(0,Bp.loadConfig)(bL.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS,s),userAgentAppId:t?.userAgentAppId??(0,Bp.loadConfig)(u1e.NODE_APP_ID_CONFIG_OPTIONS,s)}};IL.getRuntimeConfig=iFt});var f1e=b(hh=>{"use strict";Object.defineProperty(hh,"__esModule",{value:!0});hh.warning=void 0;hh.stsRegionDefaultResolver=cFt;var g1e=require("@smithy/config-resolver"),aFt=require("@smithy/node-config-provider");function cFt(t={}){return(0,aFt.loadConfig)({...g1e.NODE_REGION_CONFIG_OPTIONS,async default(){return hh.warning.silence||console.warn("@aws-sdk - WARN - default STS region of us-east-1 used. See @aws-sdk/credential-providers README and set a region explicitly."),"us-east-1"}},{...g1e.NODE_REGION_CONFIG_FILE_OPTIONS,...t})}hh.warning={silence:!1}});var h1e=b(oi=>{"use strict";var AL=f1e(),q0=require("@smithy/config-resolver"),uFt=t=>({setRegion(e){t.region=e},region(){return t.region}}),lFt=t=>({region:t.region()});oi.NODE_REGION_CONFIG_FILE_OPTIONS=q0.NODE_REGION_CONFIG_FILE_OPTIONS;oi.NODE_REGION_CONFIG_OPTIONS=q0.NODE_REGION_CONFIG_OPTIONS;oi.REGION_ENV_NAME=q0.REGION_ENV_NAME;oi.REGION_INI_NAME=q0.REGION_INI_NAME;oi.resolveRegionConfig=q0.resolveRegionConfig;oi.getAwsRegionExtensionConfiguration=uFt;oi.resolveAwsRegionExtensionConfiguration=lFt;Object.prototype.hasOwnProperty.call(AL,"__proto__")&&!Object.prototype.hasOwnProperty.call(oi,"__proto__")&&Object.defineProperty(oi,"__proto__",{enumerable:!0,value:AL.__proto__});Object.keys(AL).forEach(function(t){t!=="default"&&!Object.prototype.hasOwnProperty.call(oi,t)&&(oi[t]=AL[t])})});var b1e=b(Le=>{"use strict";var S1e=gbe(),dFt=Sbe(),pFt=ybe(),E1e=xW(),mFt=require("@smithy/config-resolver"),Sh=require("@smithy/core"),gFt=require("@smithy/core/schema"),fFt=require("@smithy/middleware-content-length"),Yt=require("@smithy/middleware-endpoint"),y1e=require("@smithy/middleware-retry"),Pt=require("@smithy/smithy-client"),_1e=oK(),hFt=m1e(),C1e=h1e(),R1e=require("@smithy/protocol-http"),Bt=W9(),TL=B9(),SFt=hL(),EFt=t=>Object.assign(t,{useDualstackEndpoint:t.useDualstackEndpoint??!1,useFipsEndpoint:t.useFipsEndpoint??!1,defaultSigningName:"secretsmanager"}),sr={UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}},yFt=t=>{let e=t.httpAuthSchemes,r=t.httpAuthSchemeProvider,n=t.credentials;return{setHttpAuthScheme(s){let o=e.findIndex(i=>i.schemeId===s.schemeId);o===-1?e.push(s):e.splice(o,1,s)},httpAuthSchemes(){return e},setHttpAuthSchemeProvider(s){r=s},httpAuthSchemeProvider(){return r},setCredentials(s){n=s},credentials(){return n}}},_Ft=t=>({httpAuthSchemes:t.httpAuthSchemes(),httpAuthSchemeProvider:t.httpAuthSchemeProvider(),credentials:t.credentials()}),CFt=(t,e)=>{let r=Object.assign(C1e.getAwsRegionExtensionConfiguration(t),Pt.getDefaultExtensionConfiguration(t),R1e.getHttpHandlerExtensionConfiguration(t),yFt(t));return e.forEach(n=>n.configure(r)),Object.assign(t,C1e.resolveAwsRegionExtensionConfiguration(r),Pt.resolveDefaultRuntimeConfig(r),R1e.resolveHttpHandlerRuntimeConfig(r),_Ft(r))},Up=class extends Pt.Client{config;constructor(...[e]){let r=hFt.getRuntimeConfig(e||{});super(r),this.initConfig=r;let n=EFt(r),s=E1e.resolveUserAgentConfig(n),o=y1e.resolveRetryConfig(s),i=mFt.resolveRegionConfig(o),a=S1e.resolveHostHeaderConfig(i),c=Yt.resolveEndpointConfig(a),u=_1e.resolveHttpAuthSchemeConfig(c),l=CFt(u,e?.extensions||[]);this.config=l,this.middlewareStack.use(gFt.getSchemaSerdePlugin(this.config)),this.middlewareStack.use(E1e.getUserAgentPlugin(this.config)),this.middlewareStack.use(y1e.getRetryPlugin(this.config)),this.middlewareStack.use(fFt.getContentLengthPlugin(this.config)),this.middlewareStack.use(S1e.getHostHeaderPlugin(this.config)),this.middlewareStack.use(dFt.getLoggerPlugin(this.config)),this.middlewareStack.use(pFt.getRecursionDetectionPlugin(this.config)),this.middlewareStack.use(Sh.getHttpAuthSchemeEndpointRuleSetPlugin(this.config,{httpAuthSchemeParametersProvider:_1e.defaultSecretsManagerHttpAuthSchemeParametersProvider,identityProviderConfigProvider:async d=>new Sh.DefaultIdentityProviderConfig({"aws.auth#sigv4":d.credentials})})),this.middlewareStack.use(Sh.getHttpSigningPlugin(this.config))}destroy(){super.destroy()}},$0=class extends Pt.Command.classBuilder().ep(sr).m(function(e,r,n,s){return[Yt.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","BatchGetSecretValue",{}).n("SecretsManagerClient","BatchGetSecretValueCommand").sc(Bt.BatchGetSecretValue$).build(){},wL=class extends Pt.Command.classBuilder().ep(sr).m(function(e,r,n,s){return[Yt.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","CancelRotateSecret",{}).n("SecretsManagerClient","CancelRotateSecretCommand").sc(Bt.CancelRotateSecret$).build(){},DL=class extends Pt.Command.classBuilder().ep(sr).m(function(e,r,n,s){return[Yt.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","CreateSecret",{}).n("SecretsManagerClient","CreateSecretCommand").sc(Bt.CreateSecret$).build(){},OL=class extends Pt.Command.classBuilder().ep(sr).m(function(e,r,n,s){return[Yt.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","DeleteResourcePolicy",{}).n("SecretsManagerClient","DeleteResourcePolicyCommand").sc(Bt.DeleteResourcePolicy$).build(){},kL=class extends Pt.Command.classBuilder().ep(sr).m(function(e,r,n,s){return[Yt.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","DeleteSecret",{}).n("SecretsManagerClient","DeleteSecretCommand").sc(Bt.DeleteSecret$).build(){},NL=class extends Pt.Command.classBuilder().ep(sr).m(function(e,r,n,s){return[Yt.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","DescribeSecret",{}).n("SecretsManagerClient","DescribeSecretCommand").sc(Bt.DescribeSecret$).build(){},LL=class extends Pt.Command.classBuilder().ep(sr).m(function(e,r,n,s){return[Yt.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","GetRandomPassword",{}).n("SecretsManagerClient","GetRandomPasswordCommand").sc(Bt.GetRandomPassword$).build(){},ML=class extends Pt.Command.classBuilder().ep(sr).m(function(e,r,n,s){return[Yt.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","GetResourcePolicy",{}).n("SecretsManagerClient","GetResourcePolicyCommand").sc(Bt.GetResourcePolicy$).build(){},FL=class extends Pt.Command.classBuilder().ep(sr).m(function(e,r,n,s){return[Yt.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","GetSecretValue",{}).n("SecretsManagerClient","GetSecretValueCommand").sc(Bt.GetSecretValue$).build(){},G0=class extends Pt.Command.classBuilder().ep(sr).m(function(e,r,n,s){return[Yt.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","ListSecrets",{}).n("SecretsManagerClient","ListSecretsCommand").sc(Bt.ListSecrets$).build(){},j0=class extends Pt.Command.classBuilder().ep(sr).m(function(e,r,n,s){return[Yt.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","ListSecretVersionIds",{}).n("SecretsManagerClient","ListSecretVersionIdsCommand").sc(Bt.ListSecretVersionIds$).build(){},BL=class extends Pt.Command.classBuilder().ep(sr).m(function(e,r,n,s){return[Yt.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","PutResourcePolicy",{}).n("SecretsManagerClient","PutResourcePolicyCommand").sc(Bt.PutResourcePolicy$).build(){},UL=class extends Pt.Command.classBuilder().ep(sr).m(function(e,r,n,s){return[Yt.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","PutSecretValue",{}).n("SecretsManagerClient","PutSecretValueCommand").sc(Bt.PutSecretValue$).build(){},qL=class extends Pt.Command.classBuilder().ep(sr).m(function(e,r,n,s){return[Yt.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","RemoveRegionsFromReplication",{}).n("SecretsManagerClient","RemoveRegionsFromReplicationCommand").sc(Bt.RemoveRegionsFromReplication$).build(){},$L=class extends Pt.Command.classBuilder().ep(sr).m(function(e,r,n,s){return[Yt.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","ReplicateSecretToRegions",{}).n("SecretsManagerClient","ReplicateSecretToRegionsCommand").sc(Bt.ReplicateSecretToRegions$).build(){},GL=class extends Pt.Command.classBuilder().ep(sr).m(function(e,r,n,s){return[Yt.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","RestoreSecret",{}).n("SecretsManagerClient","RestoreSecretCommand").sc(Bt.RestoreSecret$).build(){},jL=class extends Pt.Command.classBuilder().ep(sr).m(function(e,r,n,s){return[Yt.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","RotateSecret",{}).n("SecretsManagerClient","RotateSecretCommand").sc(Bt.RotateSecret$).build(){},VL=class extends Pt.Command.classBuilder().ep(sr).m(function(e,r,n,s){return[Yt.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","StopReplicationToReplica",{}).n("SecretsManagerClient","StopReplicationToReplicaCommand").sc(Bt.StopReplicationToReplica$).build(){},HL=class extends Pt.Command.classBuilder().ep(sr).m(function(e,r,n,s){return[Yt.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","TagResource",{}).n("SecretsManagerClient","TagResourceCommand").sc(Bt.TagResource$).build(){},zL=class extends Pt.Command.classBuilder().ep(sr).m(function(e,r,n,s){return[Yt.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","UntagResource",{}).n("SecretsManagerClient","UntagResourceCommand").sc(Bt.UntagResource$).build(){},WL=class extends Pt.Command.classBuilder().ep(sr).m(function(e,r,n,s){return[Yt.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","UpdateSecret",{}).n("SecretsManagerClient","UpdateSecretCommand").sc(Bt.UpdateSecret$).build(){},KL=class extends Pt.Command.classBuilder().ep(sr).m(function(e,r,n,s){return[Yt.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","UpdateSecretVersionStage",{}).n("SecretsManagerClient","UpdateSecretVersionStageCommand").sc(Bt.UpdateSecretVersionStage$).build(){},QL=class extends Pt.Command.classBuilder().ep(sr).m(function(e,r,n,s){return[Yt.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("secretsmanager","ValidateResourcePolicy",{}).n("SecretsManagerClient","ValidateResourcePolicyCommand").sc(Bt.ValidateResourcePolicy$).build(){},v1e=Sh.createPaginator(Up,$0,"NextToken","NextToken","MaxResults"),x1e=Sh.createPaginator(Up,G0,"NextToken","NextToken","MaxResults"),P1e=Sh.createPaginator(Up,j0,"NextToken","NextToken","MaxResults"),RFt={BatchGetSecretValueCommand:$0,CancelRotateSecretCommand:wL,CreateSecretCommand:DL,DeleteResourcePolicyCommand:OL,DeleteSecretCommand:kL,DescribeSecretCommand:NL,GetRandomPasswordCommand:LL,GetResourcePolicyCommand:ML,GetSecretValueCommand:FL,ListSecretsCommand:G0,ListSecretVersionIdsCommand:j0,PutResourcePolicyCommand:BL,PutSecretValueCommand:UL,RemoveRegionsFromReplicationCommand:qL,ReplicateSecretToRegionsCommand:$L,RestoreSecretCommand:GL,RotateSecretCommand:jL,StopReplicationToReplicaCommand:VL,TagResourceCommand:HL,UntagResourceCommand:zL,UpdateSecretCommand:WL,UpdateSecretVersionStageCommand:KL,ValidateResourcePolicyCommand:QL},vFt={paginateBatchGetSecretValue:v1e,paginateListSecrets:x1e,paginateListSecretVersionIds:P1e},XL=class extends Up{};Pt.createAggregatedClient(RFt,XL,{paginators:vFt});var xFt={all:"all",description:"description",name:"name",owning_service:"owning-service",primary_region:"primary-region",tag_key:"tag-key",tag_value:"tag-value"},PFt={Failed:"Failed",InProgress:"InProgress",InSync:"InSync"},bFt={created_date:"created-date",last_accessed_date:"last-accessed-date",last_changed_date:"last-changed-date",name:"name"},IFt={asc:"asc",desc:"desc"};Le.$Command=Pt.Command;Le.__Client=Pt.Client;Le.SecretsManagerServiceException=SFt.SecretsManagerServiceException;Le.BatchGetSecretValueCommand=$0;Le.CancelRotateSecretCommand=wL;Le.CreateSecretCommand=DL;Le.DeleteResourcePolicyCommand=OL;Le.DeleteSecretCommand=kL;Le.DescribeSecretCommand=NL;Le.FilterNameStringType=xFt;Le.GetRandomPasswordCommand=LL;Le.GetResourcePolicyCommand=ML;Le.GetSecretValueCommand=FL;Le.ListSecretVersionIdsCommand=j0;Le.ListSecretsCommand=G0;Le.PutResourcePolicyCommand=BL;Le.PutSecretValueCommand=UL;Le.RemoveRegionsFromReplicationCommand=qL;Le.ReplicateSecretToRegionsCommand=$L;Le.RestoreSecretCommand=GL;Le.RotateSecretCommand=jL;Le.SecretsManager=XL;Le.SecretsManagerClient=Up;Le.SortByType=bFt;Le.SortOrderType=IFt;Le.StatusType=PFt;Le.StopReplicationToReplicaCommand=VL;Le.TagResourceCommand=HL;Le.UntagResourceCommand=zL;Le.UpdateSecretCommand=WL;Le.UpdateSecretVersionStageCommand=KL;Le.ValidateResourcePolicyCommand=QL;Le.paginateBatchGetSecretValue=v1e;Le.paginateListSecretVersionIds=P1e;Le.paginateListSecrets=x1e;Object.prototype.hasOwnProperty.call(Bt,"__proto__")&&!Object.prototype.hasOwnProperty.call(Le,"__proto__")&&Object.defineProperty(Le,"__proto__",{enumerable:!0,value:Bt.__proto__});Object.keys(Bt).forEach(function(t){t!=="default"&&!Object.prototype.hasOwnProperty.call(Le,t)&&(Le[t]=Bt[t])});Object.prototype.hasOwnProperty.call(TL,"__proto__")&&!Object.prototype.hasOwnProperty.call(Le,"__proto__")&&Object.defineProperty(Le,"__proto__",{enumerable:!0,value:TL.__proto__});Object.keys(TL).forEach(function(t){t!=="default"&&!Object.prototype.hasOwnProperty.call(Le,t)&&(Le[t]=TL[t])})});var Z9=b(Xl=>{"use strict";Object.defineProperty(Xl,"__esModule",{value:!0});Xl.resolveHttpAuthSchemeConfig=Xl.defaultLambdaHttpAuthSchemeProvider=Xl.defaultLambdaHttpAuthSchemeParametersProvider=void 0;var FFt=(Dt(),ue(Fr)),Y9=require("@smithy/util-middleware"),BFt=async(t,e,r)=>({operation:(0,Y9.getSmithyContext)(e).operation,region:await(0,Y9.normalizeProvider)(t.region)()||(()=>{throw new Error("expected `region` to be configured for `aws.auth#sigv4`")})()});Xl.defaultLambdaHttpAuthSchemeParametersProvider=BFt;function UFt(t){return{schemeId:"aws.auth#sigv4",signingProperties:{name:"lambda",region:t.region},propertiesExtractor:(e,r)=>({signingProperties:{config:e,context:r}})}}var qFt=t=>{let e=[];switch(t.operation){default:e.push(UFt(t))}return e};Xl.defaultLambdaHttpAuthSchemeProvider=qFt;var $Ft=t=>{let e=(0,FFt.resolveAwsSdkSigV4Config)(t);return Object.assign(e,{authSchemePreference:(0,Y9.normalizeProvider)(t.authSchemePreference??[])})};Xl.resolveHttpAuthSchemeConfig=$Ft});var Z1e=b((gnn,GFt)=>{GFt.exports={name:"@aws-sdk/client-lambda",description:"AWS SDK for JavaScript Lambda Client for Node.js, Browser and React Native",version:"3.952.0",scripts:{build:"concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types'","build:cjs":"node ../../scripts/compilation/inline client-lambda","build:es":"tsc -p tsconfig.es.json","build:include:deps":"lerna run --scope $npm_package_name --include-dependencies build","build:types":"tsc -p tsconfig.types.json","build:types:downlevel":"downlevel-dts dist-types dist-types/ts3.4",clean:"rimraf ./dist-* && rimraf *.tsbuildinfo","extract:docs":"api-extractor run --local","generate:client":"node ../../scripts/generate-clients/single-service --solo lambda","test:index":"tsc --noEmit ./test/index-types.ts && node ./test/index-objects.spec.mjs"},main:"./dist-cjs/index.js",types:"./dist-types/index.d.ts",module:"./dist-es/index.js",sideEffects:!1,dependencies:{"@aws-crypto/sha256-browser":"5.2.0","@aws-crypto/sha256-js":"5.2.0","@aws-sdk/core":"3.947.0","@aws-sdk/credential-provider-node":"3.952.0","@aws-sdk/middleware-host-header":"3.936.0","@aws-sdk/middleware-logger":"3.936.0","@aws-sdk/middleware-recursion-detection":"3.948.0","@aws-sdk/middleware-user-agent":"3.947.0","@aws-sdk/region-config-resolver":"3.936.0","@aws-sdk/types":"3.936.0","@aws-sdk/util-endpoints":"3.936.0","@aws-sdk/util-user-agent-browser":"3.936.0","@aws-sdk/util-user-agent-node":"3.947.0","@smithy/config-resolver":"^4.4.3","@smithy/core":"^3.18.7","@smithy/eventstream-serde-browser":"^4.2.5","@smithy/eventstream-serde-config-resolver":"^4.3.5","@smithy/eventstream-serde-node":"^4.2.5","@smithy/fetch-http-handler":"^5.3.6","@smithy/hash-node":"^4.2.5","@smithy/invalid-dependency":"^4.2.5","@smithy/middleware-content-length":"^4.2.5","@smithy/middleware-endpoint":"^4.3.14","@smithy/middleware-retry":"^4.4.14","@smithy/middleware-serde":"^4.2.6","@smithy/middleware-stack":"^4.2.5","@smithy/node-config-provider":"^4.3.5","@smithy/node-http-handler":"^4.4.5","@smithy/protocol-http":"^5.3.5","@smithy/smithy-client":"^4.9.10","@smithy/types":"^4.9.0","@smithy/url-parser":"^4.2.5","@smithy/util-base64":"^4.3.0","@smithy/util-body-length-browser":"^4.2.0","@smithy/util-body-length-node":"^4.2.1","@smithy/util-defaults-mode-browser":"^4.3.13","@smithy/util-defaults-mode-node":"^4.2.16","@smithy/util-endpoints":"^3.2.5","@smithy/util-middleware":"^4.2.5","@smithy/util-retry":"^4.2.5","@smithy/util-stream":"^4.5.6","@smithy/util-utf8":"^4.2.0","@smithy/util-waiter":"^4.2.5",tslib:"^2.6.2"},devDependencies:{"@tsconfig/node18":"18.2.4","@types/node":"^18.19.69",concurrently:"7.0.0","downlevel-dts":"0.10.1",rimraf:"3.0.2",typescript:"~5.8.3"},engines:{node:">=18.0.0"},typesVersions:{"<4.0":{"dist-types/*":["dist-types/ts3.4/*"]}},files:["dist-*/**"],author:{name:"AWS SDK for JavaScript Team",url:"https://aws.amazon.com/javascript/"},license:"Apache-2.0",browser:{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.browser"},"react-native":{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.native"},homepage:"https://github.com/aws/aws-sdk-js-v3/tree/main/clients/client-lambda",repository:{type:"git",url:"https://github.com/aws/aws-sdk-js-v3.git",directory:"clients/client-lambda"}}});var mFe=b(YL=>{"use strict";Object.defineProperty(YL,"__esModule",{value:!0});YL.ruleSet=void 0;var lFe="required",Xa="fn",Ja="argv",yh="ref",eFe=!0,tFe="isSet",z0="booleanEquals",Eh="error",H0="endpoint",su="tree",e8="PartitionResult",rFe={[lFe]:!1,type:"string"},nFe={[lFe]:!0,default:!1,type:"boolean"},sFe={[yh]:"Endpoint"},dFe={[Xa]:z0,[Ja]:[{[yh]:"UseFIPS"},!0]},pFe={[Xa]:z0,[Ja]:[{[yh]:"UseDualStack"},!0]},Qa={},oFe={[Xa]:"getAttr",[Ja]:[{[yh]:e8},"supportsFIPS"]},iFe={[Xa]:z0,[Ja]:[!0,{[Xa]:"getAttr",[Ja]:[{[yh]:e8},"supportsDualStack"]}]},aFe=[dFe],cFe=[pFe],uFe=[{[yh]:"Region"}],jFt={version:"1.0",parameters:{Region:rFe,UseDualStack:nFe,UseFIPS:nFe,Endpoint:rFe},rules:[{conditions:[{[Xa]:tFe,[Ja]:[sFe]}],rules:[{conditions:aFe,error:"Invalid Configuration: FIPS and custom endpoint are not supported",type:Eh},{conditions:cFe,error:"Invalid Configuration: Dualstack and custom endpoint are not supported",type:Eh},{endpoint:{url:sFe,properties:Qa,headers:Qa},type:H0}],type:su},{conditions:[{[Xa]:tFe,[Ja]:uFe}],rules:[{conditions:[{[Xa]:"aws.partition",[Ja]:uFe,assign:e8}],rules:[{conditions:[dFe,pFe],rules:[{conditions:[{[Xa]:z0,[Ja]:[eFe,oFe]},iFe],rules:[{endpoint:{url:"https://lambda-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:Qa,headers:Qa},type:H0}],type:su},{error:"FIPS and DualStack are enabled, but this partition does not support one or both",type:Eh}],type:su},{conditions:aFe,rules:[{conditions:[{[Xa]:z0,[Ja]:[oFe,eFe]}],rules:[{endpoint:{url:"https://lambda-fips.{Region}.{PartitionResult#dnsSuffix}",properties:Qa,headers:Qa},type:H0}],type:su},{error:"FIPS is enabled but this partition does not support FIPS",type:Eh}],type:su},{conditions:cFe,rules:[{conditions:[iFe],rules:[{endpoint:{url:"https://lambda.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:Qa,headers:Qa},type:H0}],type:su},{error:"DualStack is enabled but this partition does not support DualStack",type:Eh}],type:su},{endpoint:{url:"https://lambda.{Region}.{PartitionResult#dnsSuffix}",properties:Qa,headers:Qa},type:H0}],type:su}],type:su},{error:"Invalid Configuration: Missing Region",type:Eh}]};YL.ruleSet=jFt});var gFe=b(ZL=>{"use strict";Object.defineProperty(ZL,"__esModule",{value:!0});ZL.defaultEndpointResolver=void 0;var VFt=Ta(),t8=require("@smithy/util-endpoints"),HFt=mFe(),zFt=new t8.EndpointCache({size:50,params:["Endpoint","Region","UseDualStack","UseFIPS"]}),WFt=(t,e={})=>zFt.get(t,()=>(0,t8.resolveEndpoint)(HFt.ruleSet,{endpointParams:t,logger:e.logger}));ZL.defaultEndpointResolver=WFt;t8.customEndpointFunctions.aws=VFt.awsEndpointFunctions});var SFe=b(eM=>{"use strict";Object.defineProperty(eM,"__esModule",{value:!0});eM.getRuntimeConfig=void 0;var KFt=(Dt(),ue(Fr)),QFt=(wa(),ue(Wg)),XFt=require("@smithy/smithy-client"),JFt=require("@smithy/url-parser"),fFe=require("@smithy/util-base64"),hFe=require("@smithy/util-utf8"),YFt=Z9(),ZFt=gFe(),e3t=t=>({apiVersion:"2015-03-31",base64Decoder:t?.base64Decoder??fFe.fromBase64,base64Encoder:t?.base64Encoder??fFe.toBase64,disableHostPrefix:t?.disableHostPrefix??!1,endpointProvider:t?.endpointProvider??ZFt.defaultEndpointResolver,extensions:t?.extensions??[],httpAuthSchemeProvider:t?.httpAuthSchemeProvider??YFt.defaultLambdaHttpAuthSchemeProvider,httpAuthSchemes:t?.httpAuthSchemes??[{schemeId:"aws.auth#sigv4",identityProvider:e=>e.getIdentityProvider("aws.auth#sigv4"),signer:new KFt.AwsSdkSigV4Signer}],logger:t?.logger??new XFt.NoOpLogger,protocol:t?.protocol??new QFt.AwsRestJsonProtocol({defaultNamespace:"com.amazonaws.lambda"}),serviceId:t?.serviceId??"Lambda",urlParser:t?.urlParser??JFt.parseUrl,utf8Decoder:t?.utf8Decoder??hFe.fromUtf8,utf8Encoder:t?.utf8Encoder??hFe.toUtf8});eM.getRuntimeConfig=e3t});var vFe=b(rM=>{"use strict";Object.defineProperty(rM,"__esModule",{value:!0});rM.getRuntimeConfig=void 0;var t3t=require("tslib"),r3t=t3t.__importDefault(Z1e()),EFe=(Dt(),ue(Fr)),n3t=O_(),yFe=Mc(),tM=require("@smithy/config-resolver"),s3t=require("@smithy/eventstream-serde-node"),o3t=require("@smithy/hash-node"),_Fe=require("@smithy/middleware-retry"),qp=require("@smithy/node-config-provider"),CFe=require("@smithy/node-http-handler"),RFe=require("@smithy/smithy-client"),i3t=require("@smithy/util-body-length-node"),a3t=require("@smithy/util-defaults-mode-node"),c3t=require("@smithy/util-retry"),u3t=SFe(),l3t=t=>{(0,RFe.emitWarningIfUnsupportedVersion)(process.version);let e=(0,a3t.resolveDefaultsModeConfig)(t),r=()=>e().then(RFe.loadConfigsForDefaultMode),n=(0,u3t.getRuntimeConfig)(t);(0,EFe.emitWarningIfUnsupportedVersion)(process.version);let s={profile:t?.profile,logger:n.logger};return{...n,...t,runtime:"node",defaultsMode:e,authSchemePreference:t?.authSchemePreference??(0,qp.loadConfig)(EFe.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS,s),bodyLengthChecker:t?.bodyLengthChecker??i3t.calculateBodyLength,credentialDefaultProvider:t?.credentialDefaultProvider??n3t.defaultProvider,defaultUserAgentProvider:t?.defaultUserAgentProvider??(0,yFe.createDefaultUserAgentProvider)({serviceId:n.serviceId,clientVersion:r3t.default.version}),eventStreamSerdeProvider:t?.eventStreamSerdeProvider??s3t.eventStreamSerdeProvider,maxAttempts:t?.maxAttempts??(0,qp.loadConfig)(_Fe.NODE_MAX_ATTEMPT_CONFIG_OPTIONS,t),region:t?.region??(0,qp.loadConfig)(tM.NODE_REGION_CONFIG_OPTIONS,{...tM.NODE_REGION_CONFIG_FILE_OPTIONS,...s}),requestHandler:CFe.NodeHttpHandler.create(t?.requestHandler??r),retryMode:t?.retryMode??(0,qp.loadConfig)({..._Fe.NODE_RETRY_MODE_CONFIG_OPTIONS,default:async()=>(await r()).retryMode||c3t.DEFAULT_RETRY_MODE},t),sha256:t?.sha256??o3t.Hash.bind(null,"sha256"),streamCollector:t?.streamCollector??CFe.streamCollector,useDualstackEndpoint:t?.useDualstackEndpoint??(0,qp.loadConfig)(tM.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS,s),useFipsEndpoint:t?.useFipsEndpoint??(0,qp.loadConfig)(tM.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS,s),userAgentAppId:t?.userAgentAppId??(0,qp.loadConfig)(yFe.NODE_APP_ID_CONFIG_OPTIONS,s)}};rM.getRuntimeConfig=l3t});var bqe=b(A=>{"use strict";var xFe=wc(),d3t=Dc(),p3t=Oc(),PFe=Oa(),m3t=require("@smithy/config-resolver"),Ur=require("@smithy/core"),Oe=require("@smithy/core/schema"),g3t=require("@smithy/eventstream-serde-config-resolver"),f3t=require("@smithy/middleware-content-length"),te=require("@smithy/middleware-endpoint"),bFe=require("@smithy/middleware-retry"),Z=require("@smithy/smithy-client"),IFe=Z9(),h3t=vFe(),AFe=Na(),TFe=require("@smithy/protocol-http"),je=require("@smithy/util-waiter"),S3t=t=>Object.assign(t,{useDualstackEndpoint:t.useDualstackEndpoint??!1,useFipsEndpoint:t.useFipsEndpoint??!1,defaultSigningName:"lambda"}),re={UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}},E3t=t=>{let e=t.httpAuthSchemes,r=t.httpAuthSchemeProvider,n=t.credentials;return{setHttpAuthScheme(s){let o=e.findIndex(i=>i.schemeId===s.schemeId);o===-1?e.push(s):e.splice(o,1,s)},httpAuthSchemes(){return e},setHttpAuthSchemeProvider(s){r=s},httpAuthSchemeProvider(){return r},setCredentials(s){n=s},credentials(){return n}}},y3t=t=>({httpAuthSchemes:t.httpAuthSchemes(),httpAuthSchemeProvider:t.httpAuthSchemeProvider(),credentials:t.credentials()}),_3t=(t,e)=>{let r=Object.assign(AFe.getAwsRegionExtensionConfiguration(t),Z.getDefaultExtensionConfiguration(t),TFe.getHttpHandlerExtensionConfiguration(t),E3t(t));return e.forEach(n=>n.configure(r)),Object.assign(t,AFe.resolveAwsRegionExtensionConfiguration(r),Z.resolveDefaultRuntimeConfig(r),TFe.resolveHttpHandlerRuntimeConfig(r),y3t(r))},Dr=class extends Z.Client{config;constructor(...[e]){let r=h3t.getRuntimeConfig(e||{});super(r),this.initConfig=r;let n=S3t(r),s=PFe.resolveUserAgentConfig(n),o=bFe.resolveRetryConfig(s),i=m3t.resolveRegionConfig(o),a=xFe.resolveHostHeaderConfig(i),c=te.resolveEndpointConfig(a),u=g3t.resolveEventStreamSerdeConfig(c),l=IFe.resolveHttpAuthSchemeConfig(u),d=_3t(l,e?.extensions||[]);this.config=d,this.middlewareStack.use(Oe.getSchemaSerdePlugin(this.config)),this.middlewareStack.use(PFe.getUserAgentPlugin(this.config)),this.middlewareStack.use(bFe.getRetryPlugin(this.config)),this.middlewareStack.use(f3t.getContentLengthPlugin(this.config)),this.middlewareStack.use(xFe.getHostHeaderPlugin(this.config)),this.middlewareStack.use(d3t.getLoggerPlugin(this.config)),this.middlewareStack.use(p3t.getRecursionDetectionPlugin(this.config)),this.middlewareStack.use(Ur.getHttpAuthSchemeEndpointRuleSetPlugin(this.config,{httpAuthSchemeParametersProvider:IFe.defaultLambdaHttpAuthSchemeParametersProvider,identityProviderConfigProvider:async p=>new Ur.DefaultIdentityProviderConfig({"aws.auth#sigv4":p.credentials})})),this.middlewareStack.use(Ur.getHttpSigningPlugin(this.config))}destroy(){super.destroy()}},ke=class MFe extends Z.ServiceException{constructor(e){super(e),Object.setPrototypeOf(this,MFe.prototype)}},FFe=class BFe extends ke{name="InvalidParameterValueException";$fault="client";Type;constructor(e){super({name:"InvalidParameterValueException",$fault:"client",...e}),Object.setPrototypeOf(this,BFe.prototype),this.Type=e.Type}},UFe=class qFe extends ke{name="PolicyLengthExceededException";$fault="client";Type;constructor(e){super({name:"PolicyLengthExceededException",$fault:"client",...e}),Object.setPrototypeOf(this,qFe.prototype),this.Type=e.Type}},$Fe=class GFe extends ke{name="PreconditionFailedException";$fault="client";Type;constructor(e){super({name:"PreconditionFailedException",$fault:"client",...e}),Object.setPrototypeOf(this,GFe.prototype),this.Type=e.Type}},jFe=class VFe extends ke{name="ResourceConflictException";$fault="client";Type;constructor(e){super({name:"ResourceConflictException",$fault:"client",...e}),Object.setPrototypeOf(this,VFe.prototype),this.Type=e.Type}},HFe=class zFe extends ke{name="ResourceNotFoundException";$fault="client";Type;Message;constructor(e){super({name:"ResourceNotFoundException",$fault:"client",...e}),Object.setPrototypeOf(this,zFe.prototype),this.Type=e.Type,this.Message=e.Message}},WFe=class KFe extends ke{name="ServiceException";$fault="server";Type;Message;constructor(e){super({name:"ServiceException",$fault:"server",...e}),Object.setPrototypeOf(this,KFe.prototype),this.Type=e.Type,this.Message=e.Message}},QFe=class XFe extends ke{name="TooManyRequestsException";$fault="client";retryAfterSeconds;Type;Reason;constructor(e){super({name:"TooManyRequestsException",$fault:"client",...e}),Object.setPrototypeOf(this,XFe.prototype),this.retryAfterSeconds=e.retryAfterSeconds,this.Type=e.Type,this.Reason=e.Reason}},JFe=class YFe extends ke{name="CapacityProviderLimitExceededException";$fault="client";Type;constructor(e){super({name:"CapacityProviderLimitExceededException",$fault:"client",...e}),Object.setPrototypeOf(this,YFe.prototype),this.Type=e.Type}},ZFe=class e3e extends ke{name="ResourceInUseException";$fault="client";Type;Message;constructor(e){super({name:"ResourceInUseException",$fault:"client",...e}),Object.setPrototypeOf(this,e3e.prototype),this.Type=e.Type,this.Message=e.Message}},t3e=class r3e extends ke{name="CodeSigningConfigNotFoundException";$fault="client";Type;Message;constructor(e){super({name:"CodeSigningConfigNotFoundException",$fault:"client",...e}),Object.setPrototypeOf(this,r3e.prototype),this.Type=e.Type,this.Message=e.Message}},n3e=class s3e extends ke{name="CodeStorageExceededException";$fault="client";Type;constructor(e){super({name:"CodeStorageExceededException",$fault:"client",...e}),Object.setPrototypeOf(this,s3e.prototype),this.Type=e.Type}},o3e=class i3e extends ke{name="CodeVerificationFailedException";$fault="client";Type;Message;constructor(e){super({name:"CodeVerificationFailedException",$fault:"client",...e}),Object.setPrototypeOf(this,i3e.prototype),this.Type=e.Type,this.Message=e.Message}},a3e=class c3e extends ke{name="FunctionVersionsPerCapacityProviderLimitExceededException";$fault="client";Type;constructor(e){super({name:"FunctionVersionsPerCapacityProviderLimitExceededException",$fault:"client",...e}),Object.setPrototypeOf(this,c3e.prototype),this.Type=e.Type}},u3e=class l3e extends ke{name="InvalidCodeSignatureException";$fault="client";Type;Message;constructor(e){super({name:"InvalidCodeSignatureException",$fault:"client",...e}),Object.setPrototypeOf(this,l3e.prototype),this.Type=e.Type,this.Message=e.Message}},d3e=class p3e extends ke{name="DurableExecutionAlreadyStartedException";$fault="client";Type;Message;constructor(e){super({name:"DurableExecutionAlreadyStartedException",$fault:"client",...e}),Object.setPrototypeOf(this,p3e.prototype),this.Type=e.Type,this.Message=e.Message}},m3e=class g3e extends ke{name="EC2AccessDeniedException";$fault="server";Type;Message;constructor(e){super({name:"EC2AccessDeniedException",$fault:"server",...e}),Object.setPrototypeOf(this,g3e.prototype),this.Type=e.Type,this.Message=e.Message}},f3e=class h3e extends ke{name="EC2ThrottledException";$fault="server";Type;Message;constructor(e){super({name:"EC2ThrottledException",$fault:"server",...e}),Object.setPrototypeOf(this,h3e.prototype),this.Type=e.Type,this.Message=e.Message}},S3e=class E3e extends ke{name="EC2UnexpectedException";$fault="server";Type;Message;EC2ErrorCode;constructor(e){super({name:"EC2UnexpectedException",$fault:"server",...e}),Object.setPrototypeOf(this,E3e.prototype),this.Type=e.Type,this.Message=e.Message,this.EC2ErrorCode=e.EC2ErrorCode}},y3e=class _3e extends ke{name="EFSIOException";$fault="client";Type;Message;constructor(e){super({name:"EFSIOException",$fault:"client",...e}),Object.setPrototypeOf(this,_3e.prototype),this.Type=e.Type,this.Message=e.Message}},C3e=class R3e extends ke{name="EFSMountConnectivityException";$fault="client";Type;Message;constructor(e){super({name:"EFSMountConnectivityException",$fault:"client",...e}),Object.setPrototypeOf(this,R3e.prototype),this.Type=e.Type,this.Message=e.Message}},v3e=class x3e extends ke{name="EFSMountFailureException";$fault="client";Type;Message;constructor(e){super({name:"EFSMountFailureException",$fault:"client",...e}),Object.setPrototypeOf(this,x3e.prototype),this.Type=e.Type,this.Message=e.Message}},P3e=class b3e extends ke{name="EFSMountTimeoutException";$fault="client";Type;Message;constructor(e){super({name:"EFSMountTimeoutException",$fault:"client",...e}),Object.setPrototypeOf(this,b3e.prototype),this.Type=e.Type,this.Message=e.Message}},I3e=class A3e extends ke{name="ENILimitReachedException";$fault="server";Type;Message;constructor(e){super({name:"ENILimitReachedException",$fault:"server",...e}),Object.setPrototypeOf(this,A3e.prototype),this.Type=e.Type,this.Message=e.Message}},T3e=class w3e extends ke{name="InvalidRequestContentException";$fault="client";Type;constructor(e){super({name:"InvalidRequestContentException",$fault:"client",...e}),Object.setPrototypeOf(this,w3e.prototype),this.Type=e.Type}},D3e=class O3e extends ke{name="InvalidRuntimeException";$fault="server";Type;Message;constructor(e){super({name:"InvalidRuntimeException",$fault:"server",...e}),Object.setPrototypeOf(this,O3e.prototype),this.Type=e.Type,this.Message=e.Message}},k3e=class N3e extends ke{name="InvalidSecurityGroupIDException";$fault="server";Type;Message;constructor(e){super({name:"InvalidSecurityGroupIDException",$fault:"server",...e}),Object.setPrototypeOf(this,N3e.prototype),this.Type=e.Type,this.Message=e.Message}},L3e=class M3e extends ke{name="InvalidSubnetIDException";$fault="server";Type;Message;constructor(e){super({name:"InvalidSubnetIDException",$fault:"server",...e}),Object.setPrototypeOf(this,M3e.prototype),this.Type=e.Type,this.Message=e.Message}},F3e=class B3e extends ke{name="InvalidZipFileException";$fault="server";Type;Message;constructor(e){super({name:"InvalidZipFileException",$fault:"server",...e}),Object.setPrototypeOf(this,B3e.prototype),this.Type=e.Type,this.Message=e.Message}},U3e=class q3e extends ke{name="KMSAccessDeniedException";$fault="server";Type;Message;constructor(e){super({name:"KMSAccessDeniedException",$fault:"server",...e}),Object.setPrototypeOf(this,q3e.prototype),this.Type=e.Type,this.Message=e.Message}},$3e=class G3e extends ke{name="KMSDisabledException";$fault="server";Type;Message;constructor(e){super({name:"KMSDisabledException",$fault:"server",...e}),Object.setPrototypeOf(this,G3e.prototype),this.Type=e.Type,this.Message=e.Message}},j3e=class V3e extends ke{name="KMSInvalidStateException";$fault="server";Type;Message;constructor(e){super({name:"KMSInvalidStateException",$fault:"server",...e}),Object.setPrototypeOf(this,V3e.prototype),this.Type=e.Type,this.Message=e.Message}},H3e=class z3e extends ke{name="KMSNotFoundException";$fault="server";Type;Message;constructor(e){super({name:"KMSNotFoundException",$fault:"server",...e}),Object.setPrototypeOf(this,z3e.prototype),this.Type=e.Type,this.Message=e.Message}},W3e=class K3e extends ke{name="NoPublishedVersionException";$fault="client";Type;Message;constructor(e){super({name:"NoPublishedVersionException",$fault:"client",...e}),Object.setPrototypeOf(this,K3e.prototype),this.Type=e.Type,this.Message=e.Message}},Q3e=class X3e extends ke{name="RecursiveInvocationException";$fault="client";Type;Message;constructor(e){super({name:"RecursiveInvocationException",$fault:"client",...e}),Object.setPrototypeOf(this,X3e.prototype),this.Type=e.Type,this.Message=e.Message}},J3e=class Y3e extends ke{name="RequestTooLargeException";$fault="client";Type;constructor(e){super({name:"RequestTooLargeException",$fault:"client",...e}),Object.setPrototypeOf(this,Y3e.prototype),this.Type=e.Type}},Z3e=class eBe extends ke{name="ResourceNotReadyException";$fault="server";Type;constructor(e){super({name:"ResourceNotReadyException",$fault:"server",...e}),Object.setPrototypeOf(this,eBe.prototype),this.Type=e.Type}},tBe=class rBe extends ke{name="SerializedRequestEntityTooLargeException";$fault="client";Type;constructor(e){super({name:"SerializedRequestEntityTooLargeException",$fault:"client",...e}),Object.setPrototypeOf(this,rBe.prototype),this.Type=e.Type}},nBe=class sBe extends ke{name="SnapStartException";$fault="client";Type;Message;constructor(e){super({name:"SnapStartException",$fault:"client",...e}),Object.setPrototypeOf(this,sBe.prototype),this.Type=e.Type,this.Message=e.Message}},oBe=class iBe extends ke{name="SnapStartNotReadyException";$fault="client";Type;Message;constructor(e){super({name:"SnapStartNotReadyException",$fault:"client",...e}),Object.setPrototypeOf(this,iBe.prototype),this.Type=e.Type,this.Message=e.Message}},aBe=class cBe extends ke{name="SnapStartTimeoutException";$fault="client";Type;Message;constructor(e){super({name:"SnapStartTimeoutException",$fault:"client",...e}),Object.setPrototypeOf(this,cBe.prototype),this.Type=e.Type,this.Message=e.Message}},uBe=class lBe extends ke{name="SubnetIPAddressLimitReachedException";$fault="server";Type;Message;constructor(e){super({name:"SubnetIPAddressLimitReachedException",$fault:"server",...e}),Object.setPrototypeOf(this,lBe.prototype),this.Type=e.Type,this.Message=e.Message}},dBe=class pBe extends ke{name="UnsupportedMediaTypeException";$fault="client";Type;constructor(e){super({name:"UnsupportedMediaTypeException",$fault:"client",...e}),Object.setPrototypeOf(this,pBe.prototype),this.Type=e.Type}},mBe=class gBe extends ke{name="ProvisionedConcurrencyConfigNotFoundException";$fault="client";Type;constructor(e){super({name:"ProvisionedConcurrencyConfigNotFoundException",$fault:"client",...e}),Object.setPrototypeOf(this,gBe.prototype),this.Type=e.Type}},fBe=class hBe extends ke{name="CallbackTimeoutException";$fault="client";Type;Message;constructor(e){super({name:"CallbackTimeoutException",$fault:"client",...e}),Object.setPrototypeOf(this,hBe.prototype),this.Type=e.Type,this.Message=e.Message}},n8="Action",C3t="AliasArn",R3t="AliasConfiguration",v3t="AccessConfigs",x3t="AllowCredentials",P3t="AppliedFunctionScalingConfig",b3t="AllowHeaders",I3t="AllowedInstanceTypes",SBe="AccountLimit",A3t="ApplicationLogLevel",T3t="AddLayerVersionPermission",w3t="AddLayerVersionPermissionRequest",D3t="AddLayerVersionPermissionResponse",O3t="AliasList",k3t="AllowMethods",v1="AmazonManagedKafkaEventSourceConfig",N3t="AllowOrigins",EBe="ApplyOn",x1="AllowedPublishers",s8="AvailableProvisionedConcurrentExecutions",o8="AllocatedProvisionedConcurrentExecutions",L3t="AddPermissionRequest",M3t="AddPermissionResponse",F3t="AddPermission",B3t="AliasRoutingConfiguration",Ch="AuthType",yBe="AccountUsage",U3t="AdditionalVersionWeights",q3t="Aliases",P1="Architectures",nM="Arn",$3t="Attribute",G3t="Attempt",j3t="Blob",i8="BisectBatchOnFunctionError",V3t="BinaryOperationPayload",H3t="BlobStream",a8="BatchSize",_Be="Concurrency",b1="CompatibleArchitectures",z3t="CreateAliasRequest",sM="CompatibleArchitecture",W3t="CreateAlias",K3t="CurrentAttempt",CBe="ClientContext",Q3t="CreateCapacityProvider",X3t="CreateCapacityProviderRequest",J3t="CreateCapacityProviderResponse",Y3t="CreateCodeSigningConfig",Z3t="CreateCodeSigningConfigRequest",eBt="CreateCodeSigningConfigResponse",RBe="CallbackDetails",tBt="CheckpointDurableExecution",rBt="CheckpointDurableExecutionRequest",nBt="CheckpointDurableExecutionResponse",vBe="ContextDetails",c8="CreatedDate",sBt="ConcurrentExecutions",oBt="CreateEventSourceMapping",iBt="CreateEventSourceMappingRequest",aBt="CreateFunction",xBe="CallbackFailedDetails",PBe="ContextFailedDetails",cBt="CreateFunctionRequest",uBt="CreateFunctionUrlConfig",lBt="CreateFunctionUrlConfigRequest",dBt="CreateFunctionUrlConfigResponse",bBe="ConsumerGroupId",lR="CallbackId",IBe="ChainedInvokeDetails",ABe="ChainedInvokeFailedDetails",TBe="ChainedInvokeOptions",wBe="ChainedInvokeStartedDetails",DBe="ChainedInvokeStoppedDetails",OBe="ChainedInvokeSucceededDetails",kBe="ChainedInvokeTimedOutDetails",pBt="CollectionName",NBe="CallbackOptions",LBe="ContextOptions",dR="CapacityProvider",u8="CapacityProviderArn",I1="CapacityProviderConfig",mBt="CapacityProvidersList",gBt="CapacityProviderLimitExceededException",pR="CapacityProviderName",fBt="CapacityProviderOperatorRoleArn",hBt="CapacityProviderPermissionsConfig",A1="CapacityProviderScalingConfig",SBt="CapacityProviderScalingPoliciesList",EBt="CapacityProviderVpcConfig",yBt="CapacityProviders",T1="CompatibleRuntimes",oM="CompatibleRuntime",l8="CodeSize",w1="CodeSigningConfig",ou="CodeSigningConfigArn",_Bt="CodeSigningConfigId",CBt="CodeSigningConfigList",RBt="CodeSigningConfigNotFoundException",vBt="CodeSigningConfigs",MBe="CallbackStartedDetails",FBe="CallbackSucceededDetails",BBe="ContextStartedDetails",UBe="ContextSucceededDetails",xBt="CodeStorageExceededException",D1="CodeSigningPolicies",PBt="CodeSizeUnzipped",bBt="CodeSizeZipped",d8="CodeSha256",IBt="ConfigSha256",iM="CheckpointToken",ABt="CallbackTimeoutException",qBe="CallbackTimedOutDetails",TBt="Content-Type",wBt="ClientToken",O1="CreationTime",DBt="CheckpointUpdatedExecutionState",OBt="CodeVerificationFailedException",Vp="Cors",$Be="Code",kBt="Command",NBt="Configuration",p8="Content",Ts="Description",LBt="DeleteAlias",MBt="DeleteAliasRequest",Hp="DestinationConfig",FBt="DeleteCapacityProvider",BBt="DeleteCapacityProviderRequest",UBt="DeleteCapacityProviderResponse",qBt="DeleteCodeSigningConfig",$Bt="DeleteCodeSigningConfigRequest",GBt="DeleteCodeSigningConfigResponse",k1="DurableConfig",N1="DocumentDBEventSourceConfig",GBe="DurableExecutions",iu="DurableExecutionArn",jBt="DurableExecutionAlreadyStartedException",W0="DurableExecutionName",VBt="DeleteEventSourceMapping",HBt="DeleteEventSourceMappingRequest",zBt="DeleteFunction",WBt="DeleteFunctionConcurrency",KBt="DeleteFunctionConcurrencyRequest",QBt="DeleteFunctionCodeSigningConfig",XBt="DeleteFunctionCodeSigningConfigRequest",JBt="DeleteFunctionEventInvokeConfig",YBt="DeleteFunctionEventInvokeConfigRequest",ZBt="DeleteFunctionRequest",eUt="DeleteFunctionResponse",tUt="DeleteFunctionUrlConfig",rUt="DeleteFunctionUrlConfigRequest",L1="DeadLetterConfig",nUt="DeleteLayerVersion",sUt="DeleteLayerVersionRequest",oUt="DatabaseName",iUt="DeleteProvisionedConcurrencyConfig",aUt="DeleteProvisionedConcurrencyConfigRequest",cUt="DryRun",jBe="Destination",VBe="Duration",or="Error",Rh="ErrorCode",uUt="EC2AccessDeniedException",lUt="EC2ErrorCode",dUt="EC2ThrottledException",pUt="EC2UnexpectedException",HBe="ErrorData",mUt="ErrorDetails",zBe="ExecutionDetails",gUt="EnvironmentError",fUt="ExecutionEnvironmentMemoryGiBPerVCpu",hUt="EventError",WBe="ExecutionFailedDetails",SUt="EFSIOException",EUt="EFSMountConnectivityException",yUt="EFSMountFailureException",_Ut="EFSMountTimeoutException",CUt="ExposeHeaders",RUt="EventId",vUt="ExcludedInstanceTypes",xUt="EventInput",KBe="ErrorMessage",PUt="ENILimitReachedException",bUt="ErrorObject",IUt="EntryPoint",AUt="EnvironmentResponse",TUt="EventRecordFormat",wUt="EventResult",M1="EphemeralStorage",aM="EventSourceArn",QBe="ExecutionStartedDetails",XBe="ExecutionSucceededDetails",JBe="ExecutionStoppedDetails",DUt="EventSourceMappings",OUt="EventSourceMappingArn",kUt="EventSourceMappingConfiguration",NUt="EventSourceMappingsList",LUt="EventSourceMappingMetricsConfig",MUt="EventSourceToken",FUt="EventStream",YBe="ErrorType",ZBe="ExecutionTimedOutDetails",F1="EndTimestamp",BUt="EventType",UUt="EventTimestamp",eUe="ExecutionTimeout",m8="ExecutedVersion",qUt="EnvironmentVariableName",$Ut="EnvironmentVariableValue",GUt="EnvironmentVariables",tUe="Enabled",wFe="Endpoints",B1="Environment",jUt="Event",rUe="Events",VUt="Execution",HUt="Filter",ws="FunctionArn",zUt="FunctionArns",WUt="FunctionCount",nUe="FilterCriteriaError",KUt="FunctionCodeLocation",U1="FilterCriteria",QUt="FunctionCode",XUt="FunctionConfiguration",JUt="FullDocument",YUt="FunctionError",ZUt="FunctionEventInvokeConfig",eqt="FunctionEventInvokeConfigList",tqt="FunctionEventInvokeConfigs",rqt="FilterList",nqt="FunctionList",Ce="FunctionName",g8="FunctionResponseTypes",sqt="FunctionState",f8="FileSystemConfigs",oqt="FileSystemConfigList",iqt="FileSystemConfig",sUe="FunctionScalingConfig",q1="FunctionUrl",aqt="FunctionUrlAuthType",cqt="FunctionUrlConfig",uqt="FunctionUrlConfigList",lqt="FunctionUrlConfigs",$p="FunctionVersion",dqt="FunctionVersionsByCapacityProviderList",pqt="FunctionVersionsByCapacityProviderListItem",mqt="FunctionVersionsPerCapacityProviderLimitExceededException",gqt="FunctionVersions",fqt="Filters",hqt="Functions",Sqt="GetAlias",Eqt="GetAliasRequest",yqt="GetAccountSettings",_qt="GetAccountSettingsRequest",Cqt="GetAccountSettingsResponse",Rqt="GetCapacityProvider",vqt="GetCapacityProviderRequest",xqt="GetCapacityProviderResponse",Pqt="GetCodeSigningConfig",bqt="GetCodeSigningConfigRequest",Iqt="GetCodeSigningConfigResponse",Aqt="GetDurableExecution",Tqt="GetDurableExecutionHistory",wqt="GetDurableExecutionHistoryRequest",Dqt="GetDurableExecutionHistoryResponse",Oqt="GetDurableExecutionRequest",kqt="GetDurableExecutionResponse",Nqt="GetDurableExecutionState",Lqt="GetDurableExecutionStateRequest",Mqt="GetDurableExecutionStateResponse",Fqt="GetEventSourceMapping",Bqt="GetEventSourceMappingRequest",Uqt="GetFunction",qqt="GetFunctionConcurrency",$qt="GetFunctionConcurrencyRequest",Gqt="GetFunctionConcurrencyResponse",jqt="GetFunctionConfigurationRequest",Vqt="GetFunctionCodeSigningConfig",Hqt="GetFunctionCodeSigningConfigRequest",zqt="GetFunctionCodeSigningConfigResponse",Wqt="GetFunctionConfiguration",Kqt="GetFunctionEventInvokeConfig",Qqt="GetFunctionEventInvokeConfigRequest",Xqt="GetFunctionRequest",Jqt="GetFunctionRecursionConfig",Yqt="GetFunctionRecursionConfigRequest",Zqt="GetFunctionRecursionConfigResponse",e$t="GetFunctionResponse",t$t="GetFunctionScalingConfig",r$t="GetFunctionScalingConfigRequest",n$t="GetFunctionScalingConfigResponse",s$t="GetFunctionUrlConfig",o$t="GetFunctionUrlConfigRequest",i$t="GetFunctionUrlConfigResponse",a$t="GetLayerVersion",c$t="GetLayerVersionByArn",u$t="GetLayerVersionByArnRequest",l$t="GetLayerVersionPolicy",d$t="GetLayerVersionPolicyRequest",p$t="GetLayerVersionPolicyResponse",m$t="GetLayerVersionRequest",g$t="GetLayerVersionResponse",f$t="GetPolicy",h$t="GetProvisionedConcurrencyConfig",S$t="GetProvisionedConcurrencyConfigRequest",E$t="GetProvisionedConcurrencyConfigResponse",y$t="GetPolicyRequest",_$t="GetPolicyResponse",C$t="GetRuntimeManagementConfig",R$t="GetRuntimeManagementConfigRequest",v$t="GetRuntimeManagementConfigResponse",h8="Handler",x$t="HeartbeatTimeout",P$t="HeartbeatTimeoutSeconds",oUe="Input",b$t="InvokeArgs",iUe="Ipv6AllowedForDualStack",I$t="InvokeAsyncRequest",A$t="InvokeAsyncResponse",T$t="InvokeAsync",$1="ImageConfig",aUe="InvocationCompletedDetails",w$t="ImageConfigError",cUe="ImageConfigResponse",D$t="InvalidCodeSignatureException",O$t="InvokeComplete",DFe="IncludeExecutionData",vh="InvokeMode",S8="InputPayload",k$t="InvalidParameterValueException",E8="InstanceRequirements",N$t="InvalidRequestContentException",L$t="InvalidRuntimeException",M$t="InvokeResponseStreamUpdate",F$t="InvocationRequest",B$t="InvocationResponse",U$t="InvalidSecurityGroupIDException",q$t="InvalidSubnetIDException",uUe="InvocationType",y8="ImageUri",$$t="InvokedViaFunctionUrl",G$t="InvokeWithResponseStream",j$t="InvokeWithResponseStreamCompleteEvent",V$t="InvokeWithResponseStreamRequest",H$t="InvokeWithResponseStreamResponseEvent",z$t="InvokeWithResponseStreamResponse",W$t="InvalidZipFileException",_8="Id",K$t="Invoke",lUe="KmsKeyArn",Q$t="KMSAccessDeniedException",X$t="KMSDisabledException",J$t="KMSInvalidStateException",xh="KMSKeyArn",Y$t="KMSNotFoundException",Z$t="KafkaSchemaRegistryAccessConfig",eGt="KafkaSchemaRegistryAccessConfigList",tGt="KafkaSchemaRegistryConfig",rGt="KafkaSchemaValidationConfig",nGt="KafkaSchemaValidationConfigList",G1="Layers",C8="LayerArn",sGt="ListAliasesRequest",oGt="ListAliasesResponse",iGt="ListAliases",j1="LoggingConfig",aGt="ListCapacityProviders",cGt="ListCapacityProvidersRequest",uGt="ListCapacityProvidersResponse",lGt="ListCodeSigningConfigs",dGt="ListCodeSigningConfigsRequest",pGt="ListCodeSigningConfigsResponse",mGt="ListDurableExecutionsByFunction",gGt="ListDurableExecutionsByFunctionRequest",fGt="ListDurableExecutionsByFunctionResponse",hGt="ListEventSourceMappings",SGt="ListEventSourceMappingsRequest",EGt="ListEventSourceMappingsResponse",yGt="LogFormat",_Gt="ListFunctionsByCodeSigningConfig",CGt="ListFunctionsByCodeSigningConfigRequest",RGt="ListFunctionsByCodeSigningConfigResponse",vGt="ListFunctionEventInvokeConfigs",xGt="ListFunctionEventInvokeConfigsRequest",PGt="ListFunctionEventInvokeConfigsResponse",bGt="ListFunctionsRequest",IGt="ListFunctionsResponse",AGt="ListFunctionUrlConfigs",TGt="ListFunctionUrlConfigsRequest",wGt="ListFunctionUrlConfigsResponse",DGt="ListFunctionVersionsByCapacityProvider",OGt="ListFunctionVersionsByCapacityProviderRequest",kGt="ListFunctionVersionsByCapacityProviderResponse",NGt="ListFunctions",LGt="LogGroup",V1="LicenseInfo",MGt="LayersList",FGt="LayersListItem",BGt="ListLayersRequest",UGt="ListLayersResponse",qGt="ListLayerVersions",$Gt="ListLayerVersionsRequest",GGt="ListLayerVersionsResponse",jGt="ListLayers",Jl="LastModified",dUe="LambdaManagedInstancesCapacityProviderConfig",VGt="LocalMountPath",R8="LastModifiedTime",HGt="LatestMatchingVersion",Yl="LayerName",zGt="ListProvisionedConcurrencyConfigs",WGt="ListProvisionedConcurrencyConfigsRequest",KGt="ListProvisionedConcurrencyConfigsResponse",QGt="LastProcessingResult",pUe="LogResult",XGt="LayersReferenceList",mUe="LogType",JGt="ListTagsRequest",YGt="ListTagsResponse",ZGt="ListTags",e2t="LastUpdateStatus",t2t="LastUpdateStatusReason",r2t="LastUpdateStatusReasonCode",n2t="LayerVersions",v8="LayerVersionArn",s2t="ListVersionsByFunction",o2t="ListVersionsByFunctionRequest",i2t="ListVersionsByFunctionResponse",a2t="LayerVersionContentInput",c2t="LayerVersionContentOutput",u2t="LayerVersionsList",l2t="LayerVersionsListItem",d2t="Layer",gUe="Location",rt="Message",p2t="MaxAge",m2t="MasterArn",x8="MaximumBatchingWindowInSeconds",P8="MetricsConfig",g2t="MaximumConcurrency",b8="MaximumEventAgeInSeconds",f2t="MinExecutionEnvironments",h2t="MaxExecutionEnvironments",pt="MaxItems",S2t="MinimumPollers",E2t="MaximumPollers",OFe="MasterRegion",Ph="MaximumRetryAttempts",I8="MaximumRecordAgeInSeconds",A8="MemorySize",y2t="MaxVCpuCount",mt="Marker",_2t="Metrics",fUe="Mode",Zl="Name",hUe="NextAttemptDelaySeconds",C2t="NextAttemptTimestamp",R2t="NewExecutionState",gn="NextMarker",v2t="NoPublishedVersionException",T8="Operations",SUe="OnFailure",x2t="OrganizationId",P2t="OperationPayload",b2t="OutputPayload",EUe="OnSuccess",I2t="OptimizationStatus",A2t="OperationUpdate",T2t="OperationUpdates",w2t="Operation",yUe="Principal",_Ue="PermissionsConfig",D2t="ProvisionedConcurrencyConfigs",O2t="ProvisionedConcurrencyConfigList",k2t="ProvisionedConcurrencyConfigListItem",N2t="ProvisionedConcurrencyConfigNotFoundException",L2t="ProvisionedConcurrentExecutions",M2t="PayloadChunk",F2t="PerExecutionEnvironmentMaxConcurrency",w8="ParallelizationFactor",B2t="PutFunctionConcurrency",U2t="PutFunctionConcurrencyRequest",q2t="PutFunctionCodeSigningConfig",$2t="PutFunctionCodeSigningConfigRequest",G2t="PutFunctionCodeSigningConfigResponse",j2t="PreconditionFailedException",V2t="PutFunctionEventInvokeConfig",H2t="PutFunctionEventInvokeConfigRequest",z2t="PutFunctionRecursionConfig",W2t="PutFunctionRecursionConfigRequest",K2t="PutFunctionRecursionConfigResponse",Q2t="PutFunctionScalingConfig",X2t="PutFunctionScalingConfigRequest",J2t="PutFunctionScalingConfigResponse",Y2t="PollerGroupName",D8="ParentId",Z2t="PolicyLengthExceededException",ejt="PublishLayerVersion",tjt="PublishLayerVersionRequest",rjt="PublishLayerVersionResponse",njt="PredefinedMetricType",sjt="PrincipalOrgID",H1="ProvisionedPollerConfig",ojt="PutProvisionedConcurrencyConfig",ijt="PutProvisionedConcurrencyConfigRequest",ajt="PutProvisionedConcurrencyConfigResponse",cjt="PutRuntimeManagementConfig",ujt="PutRuntimeManagementConfigRequest",ljt="PutRuntimeManagementConfigResponse",CUe="PackageType",O8="PublishTo",djt="PublishVersion",pjt="PublishVersionRequest",ed="Payload",mjt="Pattern",RUe="Policy",vUe="Publish",xe="Qualifier",xUe="Queues",ta="Result",gjt="Retry-After",k8="RoutingConfig",N8="ReservedConcurrentExecutions",fjt="ResourceConflictException",PUe="ReplayChildren",L8="RetryDetails",hjt="RequestedFunctionScalingConfig",$n="RevisionId",Sjt="RecursiveInvocationException",Ejt="ResolvedImageUri",yjt="ResourceInUseException",_jt="RequestId",M8="RecursiveLoop",Cjt="RemoveLayerVersionPermission",Rjt="RemoveLayerVersionPermissionRequest",vjt="ResourceNotFoundException",xjt="ResourceNotReadyException",cM="ReverseOrder",Pjt="RemovePermission",F8="RequestedProvisionedConcurrentExecutions",bjt="RetentionPeriodInDays",Ijt="RemovePermissionRequest",Ajt="ResponseStreamContentType",Tjt="RepositoryType",wjt="RequestTooLargeException",z1="RuntimeVersionArn",bUe="RuntimeVersionConfig",Djt="RuntimeVersionError",B8="Resource",Ojt="Reason",U8="Role",q8="Runtime",IUe="Statement",kjt="SourceArn",W1="SourceAccessConfigurations",Njt="SourceAccessConfiguration",Ljt="SourceAccount",kFe="StartedAfter",$8="S3Bucket",NFe="StartedBefore",K1="ScalingConfig",G8="StatusCode",AUe="StepDetails",Mjt="StopDurableExecution",Fjt="SendDurableExecutionCallbackFailure",Bjt="SendDurableExecutionCallbackFailureRequest",Ujt="SendDurableExecutionCallbackFailureResponse",qjt="SendDurableExecutionCallbackHeartbeat",$jt="SendDurableExecutionCallbackHeartbeatRequest",Gjt="SendDurableExecutionCallbackHeartbeatResponse",jjt="SendDurableExecutionCallbackSuccess",Vjt="SendDurableExecutionCallbackSuccessRequest",Hjt="SendDurableExecutionCallbackSuccessResponse",zjt="StopDurableExecutionRequest",Wjt="StopDurableExecutionResponse",Kjt="ServiceException",TUe="ScheduledEndTimestamp",wUe="StepFailedDetails",j8="SecurityGroupIds",Q1="StatementId",Qjt="SubnetIPAddressLimitReachedException",V8="SubnetIds",H8="SigningJobArn",z8="S3Key",W8="SourceKMSKeyArn",Xjt="SystemLogLevel",Jjt="ScalingMode",K8="SelfManagedEventSource",X1="SelfManagedKafkaEventSourceConfig",DUe="StepOptions",Q8="S3ObjectVersion",Yjt="ScalingPolicies",OUe="StartingPositionTimestamp",Zjt="SigningProfileVersionArns",X8="SigningProfileVersionArn",kUe="StartingPosition",e4t="StateReason",NUe="SchemaRegistryConfig",t4t="StateReasonCode",r4t="SerializedRequestEntityTooLargeException",n4t="SchemaRegistryURI",J8="StatusReason",s4t="SensitiveString",LUe="StepStartedDetails",MUe="StepSucceededDetails",o4t="SnapStartException",i4t="SnapStartNotReadyException",a4t="SnapStartResponse",c4t="SnapStartTimeoutException",J1="SnapStart",u4t="StackTrace",l4t="StackTraceEntry",d4t="StackTraceEntries",p4t="StateTransitionReason",Y1="StartTimestamp",m4t="StopTimestamp",Y8="SubType",g4t="SchemaValidationConfigs",f4t="Size",_h="State",zp="Status",LFe="Statuses",Z1="Timeout",h4t="TargetArn",eF="TracingConfig",S4t="TracingConfigResponse",FUe="TotalCodeSize",Z8="TenancyConfig",BUe="TagsError",UUe="TraceHeader",tF="TenantId",E4t="TenantIsolationMode",y4t="TagKeys",_4t="TooManyRequestsException",C4t="TagResource",R4t="TagResourceRequest",v4t="TimeoutSeconds",x4t="TargetTrackingScalingPolicy",P4t="TargetValue",e5="TumblingWindowInSeconds",Wp="Tags",qUe="Topics",t5="Truncated",Pe="Type",b4t="Updates",I4t="UpdateAlias",A4t="UntrustedArtifactOnDeployment",T4t="UpdateAliasRequest",w4t="UnreservedConcurrentExecutions",D4t="UpdateCapacityProvider",O4t="UpdateCapacityProviderRequest",k4t="UpdateCapacityProviderResponse",N4t="UpdateCodeSigningConfig",L4t="UpdateCodeSigningConfigRequest",M4t="UpdateCodeSigningConfigResponse",F4t="UpdateEventSourceMapping",B4t="UpdateEventSourceMappingRequest",U4t="UpdateFunctionCode",q4t="UpdateFunctionCodeRequest",$4t="UpdateFunctionConfigurationRequest",G4t="UpdateFunctionConfiguration",j4t="UpdateFunctionEventInvokeConfig",V4t="UpdateFunctionEventInvokeConfigRequest",H4t="UpdateFunctionUrlConfig",z4t="UpdateFunctionUrlConfigRequest",W4t="UpdateFunctionUrlConfigResponse",K4t="UnsupportedMediaTypeException",Q4t="UntagResource",$Ue="URI",r5="UpdateRuntimeOn",X4t="UntagResourceRequest",rF="UUID",GUe="Variables",bh="VpcConfig",J4t="VpcConfigResponse",Y4t="VpcId",mR="VersionNumber",gR="Version",Z4t="Versions",jUe="WaitCancelledDetails",eVt="WorkingDirectory",VUe="WaitDetails",HUe="WaitOptions",tVt="WaitSeconds",zUe="WaitStartedDetails",WUe="WaitSucceededDetails",KUe="X-Amz-Client-Context",rVt="X-Amz-Durable-Execution-Arn",nVt="X-Amz-Durable-Execution-Name",QUe="X-Amz-Executed-Version",sVt="X-Amz-Function-Error",XUe="X-Amz-Invocation-Type",oVt="X-Amz-Log-Result",JUe="X-Amz-Log-Type",YUe="X-Amz-Tenant-Id",iVt="XAmznTraceId",n5="ZipFile",bt="client",Me="error",aVt="eventPayload",ne="http",Fe="httpError",qn="httpHeader",oe="httpQuery",Ds="message",cVt="retryAfterSeconds",ZUe="streaming",ts="server",eqe="smithy.ts.sdk.synthetic.com.amazonaws.lambda",uVt="tagKeys",E="com.amazonaws.lambda",lVt=[0,E,V3t,8,21],Kp=[0,E,j3t,8,21],dVt=[0,E,H3t,{[ZUe]:1},42],pVt=[0,E,qUt,8,0],mVt=[0,E,$Ut,8,0],gVt=[0,E,HBe,8,0],fVt=[0,E,KBe,8,0],hVt=[0,E,YBe,8,0],s5=[0,E,S8,8,0],Ih=[0,E,P2t,8,0],SVt=[0,E,b2t,8,0],o5=[0,E,s4t,8,0],EVt=[0,E,l4t,8,0],yVt=[3,E,SBe,0,[FUe,PBt,bBt,sBt,w4t],[1,1,1,1,1]],_Vt=[3,E,yBe,0,[FUe,WUt],[1,1]],CVt=[3,E,w3t,0,[Yl,mR,Q1,n8,yUe,x2t,$n],[[0,1],[1,1],0,0,0,0,[0,{[oe]:$n}]]],RVt=[3,E,D3t,0,[IUe,$n],[0,0]],vVt=[3,E,L3t,0,[Ce,Q1,n8,yUe,kjt,Ljt,MUt,xe,$n,sjt,aqt,$$t],[[0,1],0,0,0,0,0,0,[0,{[oe]:xe}],0,0,0,2]],xVt=[3,E,M3t,0,[IUe],[0]],nF=[3,E,R3t,0,[C3t,Zl,$p,Ts,k8,$n],[0,0,0,0,()=>i5,0]],i5=[3,E,B3t,0,[U3t],[129]],a5=[3,E,x1,0,[Zjt],[64]],c5=[3,E,v1,0,[bBe,NUe],[0,()=>cqe]],PVt=[3,E,RBe,0,[lR,ta,or],[0,[()=>Ih,0],[()=>au,0]]],bVt=[3,E,xBe,0,[or],[[()=>ii,0]]],IVt=[3,E,NBe,0,[v4t,P$t],[1,1]],AVt=[3,E,MBe,0,[lR,x$t,Z1],[0,1,1]],TVt=[3,E,FBe,0,[ta],[[()=>hR,0]]],wVt=[3,E,qBe,0,[or],[[()=>ii,0]]],DVt=[-3,E,ABt,{[Me]:bt,[Fe]:400},[Pe,rt],[0,0]];Oe.TypeRegistry.for(E).registerError(DVt,fBe);var fR=[3,E,dR,0,[u8,_h,bh,_Ue,E8,A1,lUe,Jl],[0,0,()=>rqe,()=>tqe,()=>aqe,()=>l5,0,0]],u5=[3,E,I1,0,[dUe],[()=>tWt]],OVt=[-3,E,gBt,{[Me]:bt,[Fe]:400},[Pe,Ds],[0,0]];Oe.TypeRegistry.for(E).registerError(OVt,JFe);var tqe=[3,E,hBt,0,[fBt],[0]],l5=[3,E,A1,0,[y2t,Jjt,Yjt],[1,0,()=>u6t]],rqe=[3,E,EBt,0,[V8,j8],[64,64]],kVt=[3,E,IBe,0,[ta,or],[[()=>Ih,0],[()=>au,0]]],NVt=[3,E,ABe,0,[or],[[()=>ii,0]]],LVt=[3,E,TBe,0,[Ce,tF],[0,0]],MVt=[3,E,wBe,0,[Ce,tF,oUe,m8,iu],[0,0,[()=>oqe,0],0,0]],FVt=[3,E,DBe,0,[or],[[()=>ii,0]]],BVt=[3,E,OBe,0,[ta],[[()=>hR,0]]],UVt=[3,E,kBe,0,[or],[[()=>ii,0]]],qVt=[3,E,rBt,0,[iu,iM,b4t,wBt],[[0,1],0,[()=>x6t,0],[0,4]]],$Vt=[3,E,nBt,0,[iM,R2t],[0,[()=>GVt,0]]],GVt=[3,E,DBt,0,[T8,gn],[[()=>Eqe,0],0]],sF=[3,E,w1,0,[_Bt,ou,Ts,x1,D1,Jl],[0,0,0,()=>a5,()=>d5,0]],jVt=[-3,E,RBt,{[Me]:bt,[Fe]:404},[Pe,rt],[0,0]];Oe.TypeRegistry.for(E).registerError(jVt,t3e);var d5=[3,E,D1,0,[A4t],[0]],VVt=[-3,E,xBt,{[Me]:bt,[Fe]:400},[Pe,Ds],[0,0]];Oe.TypeRegistry.for(E).registerError(VVt,n3e);var HVt=[-3,E,OBt,{[Me]:bt,[Fe]:400},[Pe,rt],[0,0]];Oe.TypeRegistry.for(E).registerError(HVt,o3e);var nqe=[3,E,_Be,0,[N8],[1]],zVt=[3,E,vBe,0,[PUe,ta,or],[2,[()=>Ih,0],[()=>au,0]]],WVt=[3,E,PBe,0,[or],[[()=>ii,0]]],KVt=[3,E,LBe,0,[PUe],[2]],QVt=[3,E,BBe,0,[],[]],XVt=[3,E,UBe,0,[ta],[[()=>hR,0]]],Ah=[3,E,Vp,0,[x3t,b3t,k3t,N3t,CUt,p2t],[2,64,64,64,64,1]],JVt=[3,E,z3t,0,[Ce,Zl,$p,Ts,k8],[[0,1],0,0,0,()=>i5]],YVt=[3,E,X3t,0,[pR,bh,_Ue,E8,A1,lUe,Wp],[0,()=>rqe,()=>tqe,()=>aqe,()=>l5,0,128]],ZVt=[3,E,J3t,0,[dR],[()=>fR]],eHt=[3,E,Z3t,0,[Ts,x1,D1,Wp],[0,()=>a5,()=>d5,128]],tHt=[3,E,eBt,0,[w1],[()=>sF]],rHt=[3,E,iBt,0,[aM,Ce,tUe,a8,U1,x8,w8,kUe,OUe,Hp,I8,i8,Ph,Wp,e5,qUe,xUe,W1,K8,g8,v1,X1,K1,N1,xh,P8,H1],[0,0,2,1,()=>S5,1,1,0,4,()=>Th,1,2,1,128,1,64,64,()=>x5,()=>pqe,64,()=>c5,()=>R5,()=>C5,()=>m5,0,()=>h5,()=>_5]],nHt=[3,E,cBt,0,[Ce,q8,U8,h8,$Be,Ts,Z1,A8,vUe,bh,CUe,L1,B1,xh,eF,Wp,G1,f8,$1,ou,P1,M1,J1,j1,I1,O8,k1,Z8],[0,0,0,0,[()=>GHt,0],0,1,1,2,()=>hqe,0,()=>p5,[()=>sqe,0],0,()=>fqe,128,64,()=>v5,()=>E5,0,64,()=>f5,()=>mqe,()=>y5,()=>u5,0,()=>g5,()=>gqe]],sHt=[3,E,lBt,0,[Ce,xe,Ch,Vp,vh],[[0,1],[0,{[oe]:xe}],0,()=>Ah,0]],oHt=[3,E,dBt,0,[q1,ws,Ch,Vp,O1,vh],[0,0,0,()=>Ah,0,0]],p5=[3,E,L1,0,[h4t],[0]],iHt=[3,E,MBt,0,[Ce,Zl],[[0,1],[0,1]]],aHt=[3,E,BBt,0,[pR],[[0,1]]],cHt=[3,E,UBt,0,[dR],[()=>fR]],uHt=[3,E,$Bt,0,[ou],[[0,1]]],lHt=[3,E,GBt,0,[],[]],dHt=[3,E,HBt,0,[rF],[[0,1]]],pHt=[3,E,XBt,0,[Ce],[[0,1]]],mHt=[3,E,KBt,0,[Ce],[[0,1]]],gHt=[3,E,YBt,0,[Ce,xe],[[0,1],[0,{[oe]:xe}]]],fHt=[3,E,ZBt,0,[Ce,xe],[[0,1],[0,{[oe]:xe}]]],hHt=[3,E,eUt,0,[G8],[[1,32]]],SHt=[3,E,rUt,0,[Ce,xe],[[0,1],[0,{[oe]:xe}]]],EHt=[3,E,sUt,0,[Yl,mR],[[0,1],[1,1]]],yHt=[3,E,aUt,0,[Ce,xe],[[0,1],[0,{[oe]:xe}]]],Th=[3,E,Hp,0,[EUe,SUe],[()=>FWt,()=>MWt]],m5=[3,E,N1,0,[oUt,pBt,JUt],[0,0,0]],g5=[3,E,k1,0,[bjt,eUe],[1,1]],_Ht=[-3,E,jBt,{[Me]:bt,[Fe]:409},[Pe,rt],[0,0]];Oe.TypeRegistry.for(E).registerError(_Ht,d3e);var CHt=[-3,E,uUt,{[Me]:ts,[Fe]:502},[Pe,rt],[0,0]];Oe.TypeRegistry.for(E).registerError(CHt,m3e);var RHt=[-3,E,dUt,{[Me]:ts,[Fe]:502},[Pe,rt],[0,0]];Oe.TypeRegistry.for(E).registerError(RHt,f3e);var vHt=[-3,E,pUt,{[Me]:ts,[Fe]:502},[Pe,rt,lUt],[0,0,0]];Oe.TypeRegistry.for(E).registerError(vHt,S3e);var xHt=[-3,E,SUt,{[Me]:bt,[Fe]:410},[Pe,rt],[0,0]];Oe.TypeRegistry.for(E).registerError(xHt,y3e);var PHt=[-3,E,EUt,{[Me]:bt,[Fe]:408},[Pe,rt],[0,0]];Oe.TypeRegistry.for(E).registerError(PHt,C3e);var bHt=[-3,E,yUt,{[Me]:bt,[Fe]:403},[Pe,rt],[0,0]];Oe.TypeRegistry.for(E).registerError(bHt,v3e);var IHt=[-3,E,_Ut,{[Me]:bt,[Fe]:408},[Pe,rt],[0,0]];Oe.TypeRegistry.for(E).registerError(IHt,P3e);var AHt=[-3,E,PUt,{[Me]:ts,[Fe]:502},[Pe,rt],[0,0]];Oe.TypeRegistry.for(E).registerError(AHt,I3e);var sqe=[3,E,B1,0,[GUe],[[()=>yqe,0]]],THt=[3,E,gUt,0,[Rh,rt],[0,[()=>o5,0]]],wHt=[3,E,AUt,0,[GUe,or],[[()=>yqe,0],[()=>THt,0]]],f5=[3,E,M1,0,[f4t],[1]],au=[3,E,bUt,0,[KBe,YBe,HBe,u4t],[[()=>fVt,0],[()=>hVt,0],[()=>gVt,0],[()=>b6t,0]]],DHt=[3,E,jUt,0,[BUt,Y8,RUt,_8,Zl,UUt,D8,QBe,XBe,WBe,ZBe,JBe,BBe,UBe,PBe,zUe,WUe,jUe,LUe,MUe,wUe,wBe,OBe,ABe,kBe,DBe,MBe,FBe,xBe,qBe,aUe],[0,0,1,0,0,4,0,[()=>LHt,0],[()=>FHt,0],[()=>NHt,0],[()=>BHt,0],[()=>MHt,0],()=>QVt,[()=>XVt,0],[()=>WVt,0],()=>o6t,()=>i6t,[()=>r6t,0],()=>DKt,[()=>OKt,0],[()=>TKt,0],[()=>MVt,0],[()=>BVt,0],[()=>NVt,0],[()=>UVt,0],[()=>FVt,0],()=>AVt,[()=>TVt,0],[()=>bVt,0],[()=>wVt,0],[()=>qzt,0]]],ii=[3,E,hUt,0,[ed,t5],[[()=>au,0],2]],oqe=[3,E,xUt,0,[ed,t5],[[()=>s5,0],2]],hR=[3,E,wUt,0,[ed,t5],[[()=>Ih,0],2]],SR=[3,E,kUt,0,[rF,kUe,OUe,a8,x8,w8,aM,U1,ws,Jl,QGt,_h,p4t,Hp,qUe,xUe,W1,K8,I8,i8,Ph,e5,g8,v1,X1,K1,N1,xh,nUe,OUt,P8,H1],[0,0,4,1,1,1,0,()=>S5,0,4,0,0,0,()=>Th,64,64,()=>x5,()=>pqe,1,2,1,1,64,()=>c5,()=>R5,()=>C5,()=>m5,0,()=>$Ht,0,()=>h5,()=>_5]],h5=[3,E,LUt,0,[_2t],[64]],OHt=[3,E,VUt,0,[iu,W0,ws,zp,Y1,F1],[0,0,0,0,4,4]],kHt=[3,E,zBe,0,[S8],[[()=>s5,0]]],NHt=[3,E,WBe,0,[or],[[()=>ii,0]]],LHt=[3,E,QBe,0,[oUe,eUe],[[()=>oqe,0],1]],MHt=[3,E,JBe,0,[or],[[()=>ii,0]]],FHt=[3,E,XBe,0,[ta],[[()=>hR,0]]],BHt=[3,E,ZBe,0,[or],[[()=>ii,0]]],UHt=[3,E,iqt,0,[nM,VGt],[0,0]],qHt=[3,E,HUt,0,[mjt],[0]],S5=[3,E,U1,0,[fqt],[()=>f6t]],$Ht=[3,E,nUe,0,[Rh,rt],[0,0]],GHt=[3,E,QUt,0,[n5,$8,z8,Q8,y8,W8],[[()=>Kp,0],0,0,0,0,0]],jHt=[3,E,KUt,0,[Tjt,gUe,y8,Ejt,W8],[0,0,0,0,0]],Qp=[3,E,XUt,0,[Ce,ws,q8,U8,h8,l8,Ts,Z1,A8,Jl,d8,gR,bh,L1,B1,xh,eF,m2t,$n,G1,_h,e4t,t4t,e2t,t2t,r2t,f8,CUe,cUe,X8,H8,P1,M1,J1,bUe,j1,I1,IBt,k1,Z8],[0,0,0,0,0,1,0,1,1,0,0,0,()=>t6t,()=>p5,[()=>wHt,0],0,()=>$Kt,0,0,()=>R6t,0,0,0,0,0,0,()=>v5,0,[()=>Ozt,0],0,0,64,()=>f5,()=>PKt,[()=>mKt,0],()=>y5,()=>u5,0,()=>g5,()=>gqe]],oF=[3,E,ZUt,0,[Jl,ws,Ph,b8,Hp],[4,0,1,1,()=>Th]],r8=[3,E,sUe,0,[f2t,h2t],[1,1]],VHt=[3,E,cqt,0,[q1,ws,O1,R8,Vp,Ch,vh],[0,0,0,0,()=>Ah,0,0]],HHt=[3,E,pqt,0,[ws,_h],[0,0]],zHt=[-3,E,mqt,{[Me]:bt,[Fe]:400},[Pe,Ds],[0,0]];Oe.TypeRegistry.for(E).registerError(zHt,a3e);var WHt=[3,E,_qt,0,[],[]],KHt=[3,E,Cqt,0,[SBe,yBe],[()=>yVt,()=>_Vt]],QHt=[3,E,Eqt,0,[Ce,Zl],[[0,1],[0,1]]],XHt=[3,E,vqt,0,[pR],[[0,1]]],JHt=[3,E,xqt,0,[dR],[()=>fR]],YHt=[3,E,bqt,0,[ou],[[0,1]]],ZHt=[3,E,Iqt,0,[w1],[()=>sF]],ezt=[3,E,wqt,0,[iu,DFe,pt,mt,cM],[[0,1],[2,{[oe]:DFe}],[1,{[oe]:pt}],[0,{[oe]:mt}],[2,{[oe]:cM}]]],tzt=[3,E,Dqt,0,[rUe,gn],[[()=>m6t,0],0]],rzt=[3,E,Oqt,0,[iu],[[0,1]]],nzt=[3,E,kqt,0,[iu,W0,ws,S8,ta,or,Y1,zp,F1,gR,UUe],[0,0,0,[()=>s5,0],[()=>SVt,0],[()=>au,0],4,0,4,0,()=>qKt]],szt=[3,E,Lqt,0,[iu,iM,mt,pt],[[0,1],[0,{[oe]:iM}],[0,{[oe]:mt}],[1,{[oe]:pt}]]],ozt=[3,E,Mqt,0,[T8,gn],[[()=>Eqe,0],0]],izt=[3,E,Bqt,0,[rF],[[0,1]]],azt=[3,E,Hqt,0,[Ce],[[0,1]]],czt=[3,E,zqt,0,[ou,Ce],[0,0]],uzt=[3,E,$qt,0,[Ce],[[0,1]]],lzt=[3,E,Gqt,0,[N8],[1]],dzt=[3,E,jqt,0,[Ce,xe],[[0,1],[0,{[oe]:xe}]]],pzt=[3,E,Qqt,0,[Ce,xe],[[0,1],[0,{[oe]:xe}]]],mzt=[3,E,Yqt,0,[Ce],[[0,1]]],gzt=[3,E,Zqt,0,[M8],[0]],fzt=[3,E,Xqt,0,[Ce,xe],[[0,1],[0,{[oe]:xe}]]],hzt=[3,E,e$t,0,[NBt,$Be,Wp,BUe,_Be],[[()=>Qp,0],()=>jHt,128,()=>FKt,()=>nqe]],Szt=[3,E,r$t,0,[Ce,xe],[[0,1],[0,{[oe]:xe}]]],Ezt=[3,E,n$t,0,[ws,P3t,hjt],[0,()=>r8,()=>r8]],yzt=[3,E,o$t,0,[Ce,xe],[[0,1],[0,{[oe]:xe}]]],_zt=[3,E,i$t,0,[q1,ws,Ch,Vp,O1,R8,vh],[0,0,0,()=>Ah,0,0,0]],Czt=[3,E,u$t,0,[nM],[[0,{[oe]:nM}]]],Rzt=[3,E,d$t,0,[Yl,mR],[[0,1],[1,1]]],vzt=[3,E,p$t,0,[RUe,$n],[0,0]],xzt=[3,E,m$t,0,[Yl,mR],[[0,1],[1,1]]],iqe=[3,E,g$t,0,[p8,C8,v8,Ts,c8,gR,T1,V1,b1],[()=>uqe,0,0,0,0,1,64,0,64]],Pzt=[3,E,y$t,0,[Ce,xe],[[0,1],[0,{[oe]:xe}]]],bzt=[3,E,_$t,0,[RUe,$n],[0,0]],Izt=[3,E,S$t,0,[Ce,xe],[[0,1],[0,{[oe]:xe}]]],Azt=[3,E,E$t,0,[F8,s8,o8,zp,J8,Jl],[1,1,1,0,0,0]],Tzt=[3,E,R$t,0,[Ce,xe],[[0,1],[0,{[oe]:xe}]]],wzt=[3,E,v$t,0,[r5,z1,ws],[0,0,0]],E5=[3,E,$1,0,[IUt,kBt,eVt],[64,64,0]],Dzt=[3,E,w$t,0,[Rh,rt],[0,[()=>o5,0]]],Ozt=[3,E,cUe,0,[$1,or],[()=>E5,[()=>Dzt,0]]],aqe=[3,E,E8,0,[P1,I3t,vUt],[64,64,64]],kzt=[-3,E,D$t,{[Me]:bt,[Fe]:400},[Pe,rt],[0,0]];Oe.TypeRegistry.for(E).registerError(kzt,u3e);var Nzt=[-3,E,k$t,{[Me]:bt,[Fe]:400},[Pe,Ds],[0,0]];Oe.TypeRegistry.for(E).registerError(Nzt,FFe);var Lzt=[-3,E,N$t,{[Me]:bt,[Fe]:400},[Pe,Ds],[0,0]];Oe.TypeRegistry.for(E).registerError(Lzt,T3e);var Mzt=[-3,E,L$t,{[Me]:ts,[Fe]:502},[Pe,rt],[0,0]];Oe.TypeRegistry.for(E).registerError(Mzt,D3e);var Fzt=[-3,E,U$t,{[Me]:ts,[Fe]:502},[Pe,rt],[0,0]];Oe.TypeRegistry.for(E).registerError(Fzt,k3e);var Bzt=[-3,E,q$t,{[Me]:ts,[Fe]:502},[Pe,rt],[0,0]];Oe.TypeRegistry.for(E).registerError(Bzt,L3e);var Uzt=[-3,E,W$t,{[Me]:ts,[Fe]:502},[Pe,rt],[0,0]];Oe.TypeRegistry.for(E).registerError(Uzt,F3e);var qzt=[3,E,aUe,0,[Y1,F1,_jt,or],[4,4,0,[()=>ii,0]]],$zt=[3,E,F$t,0,[Ce,uUe,mUe,CBe,W0,ed,xe,tF],[[0,1],[0,{[qn]:XUe}],[0,{[qn]:JUe}],[0,{[qn]:KUe}],[0,{[qn]:nVt}],[()=>Kp,16],[0,{[oe]:xe}],[0,{[qn]:YUe}]]],Gzt=[3,E,B$t,0,[G8,YUt,pUe,ed,m8,iu],[[1,32],[0,{[qn]:sVt}],[0,{[qn]:oVt}],[()=>Kp,16],[0,{[qn]:QUe}],[0,{[qn]:rVt}]]],jzt=[3,E,I$t,0,[Ce,b$t],[[0,1],[()=>dVt,16]]],Vzt=[3,E,A$t,0,[zp],[[1,32]]],Hzt=[3,E,M$t,0,[ed],[[()=>Kp,{[aVt]:1}]]],zzt=[3,E,j$t,0,[Rh,mUt,pUe],[0,0,0]],Wzt=[3,E,V$t,0,[Ce,uUe,mUe,CBe,xe,ed,tF],[[0,1],[0,{[qn]:XUe}],[0,{[qn]:JUe}],[0,{[qn]:KUe}],[0,{[oe]:xe}],[()=>Kp,16],[0,{[qn]:YUe}]]],Kzt=[3,E,z$t,0,[G8,m8,FUt,Ajt],[[1,32],[0,{[qn]:QUe}],[()=>I6t,16],[0,{[qn]:TBt}]]],Qzt=[3,E,Z$t,0,[Pe,$Ue],[0,0]],cqe=[3,E,tGt,0,[n4t,TUt,v3t,g4t],[0,0,()=>y6t,()=>_6t]],Xzt=[3,E,rGt,0,[$3t],[0]],Jzt=[-3,E,Q$t,{[Me]:ts,[Fe]:502},[Pe,rt],[0,0]];Oe.TypeRegistry.for(E).registerError(Jzt,U3e);var Yzt=[-3,E,X$t,{[Me]:ts,[Fe]:502},[Pe,rt],[0,0]];Oe.TypeRegistry.for(E).registerError(Yzt,$3e);var Zzt=[-3,E,J$t,{[Me]:ts,[Fe]:502},[Pe,rt],[0,0]];Oe.TypeRegistry.for(E).registerError(Zzt,j3e);var eWt=[-3,E,Y$t,{[Me]:ts,[Fe]:502},[Pe,rt],[0,0]];Oe.TypeRegistry.for(E).registerError(eWt,H3e);var tWt=[3,E,dUe,0,[u8,F2t,fUt],[0,1,1]],rWt=[3,E,d2t,0,[nM,l8,X8,H8],[0,1,0,0]],nWt=[3,E,FGt,0,[Yl,C8,HGt],[0,0,()=>lqe]],sWt=[3,E,a2t,0,[$8,z8,Q8,n5],[0,0,0,[()=>Kp,0]]],uqe=[3,E,c2t,0,[gUe,d8,l8,X8,H8],[0,0,1,0,0]],lqe=[3,E,l2t,0,[v8,gR,Ts,c8,T1,V1,b1],[0,1,0,0,64,0,64]],oWt=[3,E,sGt,0,[Ce,$p,mt,pt],[[0,1],[0,{[oe]:$p}],[0,{[oe]:mt}],[1,{[oe]:pt}]]],iWt=[3,E,oGt,0,[gn,q3t],[0,()=>c6t]],aWt=[3,E,cGt,0,[_h,mt,pt],[[0,{[oe]:_h}],[0,{[oe]:mt}],[1,{[oe]:pt}]]],cWt=[3,E,uGt,0,[yBt,gn],[()=>l6t,0]],uWt=[3,E,dGt,0,[mt,pt],[[0,{[oe]:mt}],[1,{[oe]:pt}]]],lWt=[3,E,pGt,0,[gn,vBt],[0,()=>d6t]],dWt=[3,E,gGt,0,[Ce,xe,W0,LFe,kFe,NFe,cM,mt,pt],[[0,1],[0,{[oe]:xe}],[0,{[oe]:W0}],[64,{[oe]:LFe}],[4,{[oe]:kFe}],[4,{[oe]:NFe}],[2,{[oe]:cM}],[0,{[oe]:mt}],[1,{[oe]:pt}]]],pWt=[3,E,fGt,0,[GBe,gn],[()=>p6t,0]],mWt=[3,E,SGt,0,[aM,Ce,mt,pt],[[0,{[oe]:aM}],[0,{[oe]:Ce}],[0,{[oe]:mt}],[1,{[oe]:pt}]]],gWt=[3,E,EGt,0,[gn,DUt],[0,()=>g6t]],fWt=[3,E,xGt,0,[Ce,mt,pt],[[0,1],[0,{[oe]:mt}],[1,{[oe]:pt}]]],hWt=[3,E,PGt,0,[tqt,gn],[()=>h6t,0]],SWt=[3,E,CGt,0,[ou,mt,pt],[[0,1],[0,{[oe]:mt}],[1,{[oe]:pt}]]],EWt=[3,E,RGt,0,[gn,zUt],[0,64]],yWt=[3,E,bGt,0,[OFe,$p,mt,pt],[[0,{[oe]:OFe}],[0,{[oe]:$p}],[0,{[oe]:mt}],[1,{[oe]:pt}]]],_Wt=[3,E,IGt,0,[gn,hqt],[0,[()=>Sqe,0]]],CWt=[3,E,TGt,0,[Ce,mt,pt],[[0,1],[0,{[oe]:mt}],[1,{[oe]:pt}]]],RWt=[3,E,wGt,0,[lqt,gn],[()=>S6t,0]],vWt=[3,E,OGt,0,[pR,mt,pt],[[0,1],[0,{[oe]:mt}],[1,{[oe]:pt}]]],xWt=[3,E,kGt,0,[u8,gqt,gn],[0,()=>E6t,0]],PWt=[3,E,BGt,0,[oM,mt,pt,sM],[[0,{[oe]:oM}],[0,{[oe]:mt}],[1,{[oe]:pt}],[0,{[oe]:sM}]]],bWt=[3,E,UGt,0,[gn,G1],[0,()=>C6t]],IWt=[3,E,$Gt,0,[oM,Yl,mt,pt,sM],[[0,{[oe]:oM}],[0,1],[0,{[oe]:mt}],[1,{[oe]:pt}],[0,{[oe]:sM}]]],AWt=[3,E,GGt,0,[gn,n2t],[0,()=>v6t]],TWt=[3,E,WGt,0,[Ce,mt,pt],[[0,1],[0,{[oe]:mt}],[1,{[oe]:pt}]]],wWt=[3,E,KGt,0,[D2t,gn],[()=>P6t,0]],DWt=[3,E,JGt,0,[B8],[[0,1]]],OWt=[3,E,YGt,0,[Wp],[128]],kWt=[3,E,o2t,0,[Ce,mt,pt],[[0,1],[0,{[oe]:mt}],[1,{[oe]:pt}]]],NWt=[3,E,i2t,0,[gn,Z4t],[0,[()=>Sqe,0]]],y5=[3,E,j1,0,[yGt,A3t,Xjt,LGt],[0,0,0,0]],LWt=[-3,E,v2t,{[Me]:bt,[Fe]:400},[Pe,rt],[0,0]];Oe.TypeRegistry.for(E).registerError(LWt,W3e);var MWt=[3,E,SUe,0,[jBe],[0]],FWt=[3,E,EUe,0,[jBe],[0]],BWt=[3,E,w2t,0,[_8,D8,Zl,Pe,Y8,Y1,F1,zp,zBe,vBe,AUe,VUe,RBe,IBe],[0,0,0,0,0,4,4,0,[()=>kHt,0],[()=>zVt,0],[()=>AKt,0],()=>n6t,[()=>PVt,0],[()=>kVt,0]]],UWt=[3,E,A2t,0,[_8,D8,Zl,Pe,Y8,n8,ed,or,LBe,DUe,HUe,NBe,TBe],[0,0,0,0,0,0,[()=>Ih,0],[()=>au,0],()=>KVt,()=>wKt,()=>s6t,()=>IVt,()=>LVt]],qWt=[-3,E,Z2t,{[Me]:bt,[Fe]:400},[Pe,Ds],[0,0]];Oe.TypeRegistry.for(E).registerError(qWt,UFe);var $Wt=[-3,E,j2t,{[Me]:bt,[Fe]:412},[Pe,Ds],[0,0]];Oe.TypeRegistry.for(E).registerError($Wt,$Fe);var GWt=[3,E,k2t,0,[ws,F8,s8,o8,zp,J8,Jl],[0,1,1,1,0,0,0]],jWt=[-3,E,N2t,{[Me]:bt,[Fe]:404},[Pe,Ds],[0,0]];Oe.TypeRegistry.for(E).registerError(jWt,mBe);var _5=[3,E,H1,0,[S2t,E2t,Y2t],[1,1,0]],VWt=[3,E,tjt,0,[Yl,Ts,p8,T1,V1,b1],[[0,1],0,[()=>sWt,0],64,0,64]],HWt=[3,E,rjt,0,[p8,C8,v8,Ts,c8,gR,T1,V1,b1],[()=>uqe,0,0,0,0,1,64,0,64]],zWt=[3,E,pjt,0,[Ce,d8,Ts,$n,O8],[[0,1],0,0,0,0]],WWt=[3,E,$2t,0,[ou,Ce],[0,[0,1]]],KWt=[3,E,G2t,0,[ou,Ce],[0,0]],QWt=[3,E,U2t,0,[Ce,N8],[[0,1],1]],XWt=[3,E,H2t,0,[Ce,xe,Ph,b8,Hp],[[0,1],[0,{[oe]:xe}],1,1,()=>Th]],JWt=[3,E,W2t,0,[Ce,M8],[[0,1],0]],YWt=[3,E,K2t,0,[M8],[0]],ZWt=[3,E,X2t,0,[Ce,xe,sUe],[[0,1],[0,{[oe]:xe}],()=>r8]],eKt=[3,E,J2t,0,[sqt],[0]],tKt=[3,E,ijt,0,[Ce,xe,L2t],[[0,1],[0,{[oe]:xe}],1]],rKt=[3,E,ajt,0,[F8,s8,o8,zp,J8,Jl],[1,1,1,0,0,0]],nKt=[3,E,ujt,0,[Ce,xe,r5,z1],[[0,1],[0,{[oe]:xe}],0,0]],sKt=[3,E,ljt,0,[r5,ws,z1],[0,0,0]],oKt=[-3,E,Sjt,{[Me]:bt,[Fe]:400},[Pe,rt],[0,0]];Oe.TypeRegistry.for(E).registerError(oKt,Q3e);var iKt=[3,E,Rjt,0,[Yl,mR,Q1,$n],[[0,1],[1,1],[0,1],[0,{[oe]:$n}]]],aKt=[3,E,Ijt,0,[Ce,Q1,xe,$n],[[0,1],[0,1],[0,{[oe]:xe}],[0,{[oe]:$n}]]],cKt=[-3,E,wjt,{[Me]:bt,[Fe]:413},[Pe,Ds],[0,0]];Oe.TypeRegistry.for(E).registerError(cKt,J3e);var uKt=[-3,E,fjt,{[Me]:bt,[Fe]:409},[Pe,Ds],[0,0]];Oe.TypeRegistry.for(E).registerError(uKt,jFe);var lKt=[-3,E,yjt,{[Me]:bt,[Fe]:400},[Pe,rt],[0,0]];Oe.TypeRegistry.for(E).registerError(lKt,ZFe);var dKt=[-3,E,vjt,{[Me]:bt,[Fe]:404},[Pe,rt],[0,0]];Oe.TypeRegistry.for(E).registerError(dKt,HFe);var pKt=[-3,E,xjt,{[Me]:ts,[Fe]:502},[Pe,Ds],[0,0]];Oe.TypeRegistry.for(E).registerError(pKt,Z3e);var dqe=[3,E,L8,0,[K3t,hUe],[1,1]],mKt=[3,E,bUe,0,[z1,or],[0,[()=>gKt,0]]],gKt=[3,E,Djt,0,[Rh,rt],[0,[()=>o5,0]]],C5=[3,E,K1,0,[g2t],[1]],pqe=[3,E,K8,0,[wFe],[[2,E,wFe,0,0,64]]],R5=[3,E,X1,0,[bBe,NUe],[0,()=>cqe]],fKt=[3,E,Bjt,0,[lR,or],[[0,1],[()=>au,16]]],hKt=[3,E,Ujt,0,[],[]],SKt=[3,E,$jt,0,[lR],[[0,1]]],EKt=[3,E,Gjt,0,[],[]],yKt=[3,E,Vjt,0,[lR,ta],[[0,1],[()=>lVt,16]]],_Kt=[3,E,Hjt,0,[],[]],CKt=[-3,E,r4t,{[Me]:bt,[Fe]:413},[Pe,Ds],[0,0]];Oe.TypeRegistry.for(E).registerError(CKt,tBe);var RKt=[-3,E,Kjt,{[Me]:ts,[Fe]:500},[Pe,rt],[0,0]];Oe.TypeRegistry.for(E).registerError(RKt,WFe);var mqe=[3,E,J1,0,[EBe],[0]],vKt=[-3,E,o4t,{[Me]:bt,[Fe]:400},[Pe,rt],[0,0]];Oe.TypeRegistry.for(E).registerError(vKt,nBe);var xKt=[-3,E,i4t,{[Me]:bt,[Fe]:409},[Pe,rt],[0,0]];Oe.TypeRegistry.for(E).registerError(xKt,oBe);var PKt=[3,E,a4t,0,[EBe,I2t],[0,0]],bKt=[-3,E,c4t,{[Me]:bt,[Fe]:408},[Pe,rt],[0,0]];Oe.TypeRegistry.for(E).registerError(bKt,aBe);var IKt=[3,E,Njt,0,[Pe,$Ue],[0,0]],AKt=[3,E,AUe,0,[G3t,C2t,ta,or],[1,4,[()=>Ih,0],[()=>au,0]]],TKt=[3,E,wUe,0,[or,L8],[[()=>ii,0],()=>dqe]],wKt=[3,E,DUe,0,[hUe],[1]],DKt=[3,E,LUe,0,[],[]],OKt=[3,E,MUe,0,[ta,L8],[[()=>hR,0],()=>dqe]],kKt=[3,E,zjt,0,[iu,or],[[0,1],[()=>au,16]]],NKt=[3,E,Wjt,0,[m4t],[4]],LKt=[-3,E,Qjt,{[Me]:ts,[Fe]:502},[Pe,rt],[0,0]];Oe.TypeRegistry.for(E).registerError(LKt,uBe);var MKt=[3,E,R4t,0,[B8,Wp],[[0,1],128]],FKt=[3,E,BUe,0,[Rh,rt],[0,0]],BKt=[3,E,x4t,0,[njt,P4t],[0,1]],gqe=[3,E,Z8,0,[E4t],[0]],UKt=[-3,E,_4t,{[Me]:bt,[Fe]:429},[cVt,Pe,Ds,Ojt],[[0,{[qn]:gjt}],0,0,0]];Oe.TypeRegistry.for(E).registerError(UKt,QFe);var qKt=[3,E,UUe,0,[iVt],[0]],fqe=[3,E,eF,0,[fUe],[0]],$Kt=[3,E,S4t,0,[fUe],[0]],GKt=[-3,E,K4t,{[Me]:bt,[Fe]:415},[Pe,Ds],[0,0]];Oe.TypeRegistry.for(E).registerError(GKt,dBe);var jKt=[3,E,X4t,0,[B8,y4t],[[0,1],[64,{[oe]:uVt}]]],VKt=[3,E,T4t,0,[Ce,Zl,$p,Ts,k8,$n],[[0,1],[0,1],0,0,()=>i5,0]],HKt=[3,E,O4t,0,[pR,A1],[[0,1],()=>l5]],zKt=[3,E,k4t,0,[dR],[()=>fR]],WKt=[3,E,L4t,0,[ou,Ts,x1,D1],[[0,1],0,()=>a5,()=>d5]],KKt=[3,E,M4t,0,[w1],[()=>sF]],QKt=[3,E,B4t,0,[rF,Ce,tUe,a8,U1,x8,Hp,I8,i8,Ph,w8,W1,e5,g8,K1,v1,X1,N1,xh,P8,H1],[[0,1],0,2,1,()=>S5,1,()=>Th,1,2,1,1,()=>x5,1,64,()=>C5,()=>c5,()=>R5,()=>m5,0,()=>h5,()=>_5]],XKt=[3,E,q4t,0,[Ce,n5,$8,z8,Q8,y8,vUe,cUt,$n,P1,W8,O8],[[0,1],[()=>Kp,0],0,0,0,0,2,2,0,64,0,0]],JKt=[3,E,$4t,0,[Ce,U8,h8,Ts,Z1,A8,bh,B1,q8,L1,xh,eF,$n,G1,f8,$1,M1,J1,j1,I1,k1],[[0,1],0,0,0,1,1,()=>hqe,[()=>sqe,0],0,()=>p5,0,()=>fqe,0,64,()=>v5,()=>E5,()=>f5,()=>mqe,()=>y5,()=>u5,()=>g5]],YKt=[3,E,V4t,0,[Ce,xe,Ph,b8,Hp],[[0,1],[0,{[oe]:xe}],1,1,()=>Th]],ZKt=[3,E,z4t,0,[Ce,xe,Ch,Vp,vh],[[0,1],[0,{[oe]:xe}],0,()=>Ah,0]],e6t=[3,E,W4t,0,[q1,ws,Ch,Vp,O1,R8,vh],[0,0,0,()=>Ah,0,0,0]],hqe=[3,E,bh,0,[V8,j8,iUe],[64,64,2]],t6t=[3,E,J4t,0,[V8,j8,Y4t,iUe],[64,64,0,2]],r6t=[3,E,jUe,0,[or],[[()=>ii,0]]],n6t=[3,E,VUe,0,[TUe],[4]],s6t=[3,E,HUe,0,[tVt],[1]],o6t=[3,E,zUe,0,[VBe,TUe],[1,4]],i6t=[3,E,WUe,0,[VBe],[1]],ra="unit",a6t=[-3,eqe,"LambdaServiceException",0,[],[]];Oe.TypeRegistry.for(eqe).registerError(a6t,ke);var c6t=[1,E,O3t,0,()=>nF],u6t=[1,E,SBt,0,()=>BKt],l6t=[1,E,mBt,0,()=>fR],d6t=[1,E,CBt,0,()=>sF],p6t=[1,E,GBe,0,()=>OHt],m6t=[1,E,rUe,0,[()=>DHt,0]],g6t=[1,E,NUt,0,()=>SR],v5=[1,E,oqt,0,()=>UHt],f6t=[1,E,rqt,0,()=>qHt],h6t=[1,E,eqt,0,()=>oF],Sqe=[1,E,nqt,0,[()=>Qp,0]],S6t=[1,E,uqt,0,()=>VHt],E6t=[1,E,dqt,0,()=>HHt],y6t=[1,E,eGt,0,()=>Qzt],_6t=[1,E,nGt,0,()=>Xzt],C6t=[1,E,MGt,0,()=>nWt],R6t=[1,E,XGt,0,()=>rWt],v6t=[1,E,u2t,0,()=>lqe],Eqe=[1,E,T8,0,[()=>BWt,0]],x6t=[1,E,T2t,0,[()=>UWt,0]],P6t=[1,E,O2t,0,()=>GWt],x5=[1,E,W1,0,()=>IKt],b6t=[1,E,d4t,0,[()=>EVt,0]],yqe=[2,E,GUt,8,[()=>pVt,0],[()=>mVt,0]],I6t=[3,E,H$t,{[ZUe]:1},[M2t,O$t],[[()=>Hzt,0],()=>zzt]],A6t=[9,E,T3t,{[ne]:["POST","/2018-10-31/layers/{LayerName}/versions/{VersionNumber}/policy",201]},()=>CVt,()=>RVt],T6t=[9,E,F3t,{[ne]:["POST","/2015-03-31/functions/{FunctionName}/policy",201]},()=>vVt,()=>xVt],w6t=[9,E,tBt,{[ne]:["POST","/2025-12-01/durable-executions/{DurableExecutionArn}/checkpoint",200]},()=>qVt,()=>$Vt],D6t=[9,E,W3t,{[ne]:["POST","/2015-03-31/functions/{FunctionName}/aliases",201]},()=>JVt,()=>nF],O6t=[9,E,Q3t,{[ne]:["POST","/2025-11-30/capacity-providers",202]},()=>YVt,()=>ZVt],k6t=[9,E,Y3t,{[ne]:["POST","/2020-04-22/code-signing-configs",201]},()=>eHt,()=>tHt],N6t=[9,E,oBt,{[ne]:["POST","/2015-03-31/event-source-mappings",202]},()=>rHt,()=>SR],L6t=[9,E,aBt,{[ne]:["POST","/2015-03-31/functions",201]},()=>nHt,()=>Qp],M6t=[9,E,uBt,{[ne]:["POST","/2021-10-31/functions/{FunctionName}/url",201]},()=>sHt,()=>oHt],F6t=[9,E,LBt,{[ne]:["DELETE","/2015-03-31/functions/{FunctionName}/aliases/{Name}",204]},()=>iHt,()=>ra],B6t=[9,E,FBt,{[ne]:["DELETE","/2025-11-30/capacity-providers/{CapacityProviderName}",202]},()=>aHt,()=>cHt],U6t=[9,E,qBt,{[ne]:["DELETE","/2020-04-22/code-signing-configs/{CodeSigningConfigArn}",204]},()=>uHt,()=>lHt],q6t=[9,E,VBt,{[ne]:["DELETE","/2015-03-31/event-source-mappings/{UUID}",202]},()=>dHt,()=>SR],$6t=[9,E,zBt,{[ne]:["DELETE","/2015-03-31/functions/{FunctionName}",200]},()=>fHt,()=>hHt],G6t=[9,E,QBt,{[ne]:["DELETE","/2020-06-30/functions/{FunctionName}/code-signing-config",204]},()=>pHt,()=>ra],j6t=[9,E,WBt,{[ne]:["DELETE","/2017-10-31/functions/{FunctionName}/concurrency",204]},()=>mHt,()=>ra],V6t=[9,E,JBt,{[ne]:["DELETE","/2019-09-25/functions/{FunctionName}/event-invoke-config",204]},()=>gHt,()=>ra],H6t=[9,E,tUt,{[ne]:["DELETE","/2021-10-31/functions/{FunctionName}/url",204]},()=>SHt,()=>ra],z6t=[9,E,nUt,{[ne]:["DELETE","/2018-10-31/layers/{LayerName}/versions/{VersionNumber}",204]},()=>EHt,()=>ra],W6t=[9,E,iUt,{[ne]:["DELETE","/2019-09-30/functions/{FunctionName}/provisioned-concurrency",204]},()=>yHt,()=>ra],K6t=[9,E,yqt,{[ne]:["GET","/2016-08-19/account-settings",200]},()=>WHt,()=>KHt],Q6t=[9,E,Sqt,{[ne]:["GET","/2015-03-31/functions/{FunctionName}/aliases/{Name}",200]},()=>QHt,()=>nF],X6t=[9,E,Rqt,{[ne]:["GET","/2025-11-30/capacity-providers/{CapacityProviderName}",200]},()=>XHt,()=>JHt],J6t=[9,E,Pqt,{[ne]:["GET","/2020-04-22/code-signing-configs/{CodeSigningConfigArn}",200]},()=>YHt,()=>ZHt],Y6t=[9,E,Aqt,{[ne]:["GET","/2025-12-01/durable-executions/{DurableExecutionArn}",200]},()=>rzt,()=>nzt],Z6t=[9,E,Tqt,{[ne]:["GET","/2025-12-01/durable-executions/{DurableExecutionArn}/history",200]},()=>ezt,()=>tzt],e9t=[9,E,Nqt,{[ne]:["GET","/2025-12-01/durable-executions/{DurableExecutionArn}/state",200]},()=>szt,()=>ozt],t9t=[9,E,Fqt,{[ne]:["GET","/2015-03-31/event-source-mappings/{UUID}",200]},()=>izt,()=>SR],r9t=[9,E,Uqt,{[ne]:["GET","/2015-03-31/functions/{FunctionName}",200]},()=>fzt,()=>hzt],n9t=[9,E,Vqt,{[ne]:["GET","/2020-06-30/functions/{FunctionName}/code-signing-config",200]},()=>azt,()=>czt],s9t=[9,E,qqt,{[ne]:["GET","/2019-09-30/functions/{FunctionName}/concurrency",200]},()=>uzt,()=>lzt],o9t=[9,E,Wqt,{[ne]:["GET","/2015-03-31/functions/{FunctionName}/configuration",200]},()=>dzt,()=>Qp],i9t=[9,E,Kqt,{[ne]:["GET","/2019-09-25/functions/{FunctionName}/event-invoke-config",200]},()=>pzt,()=>oF],a9t=[9,E,Jqt,{[ne]:["GET","/2024-08-31/functions/{FunctionName}/recursion-config",200]},()=>mzt,()=>gzt],c9t=[9,E,t$t,{[ne]:["GET","/2025-11-30/functions/{FunctionName}/function-scaling-config",200]},()=>Szt,()=>Ezt],u9t=[9,E,s$t,{[ne]:["GET","/2021-10-31/functions/{FunctionName}/url",200]},()=>yzt,()=>_zt],l9t=[9,E,a$t,{[ne]:["GET","/2018-10-31/layers/{LayerName}/versions/{VersionNumber}",200]},()=>xzt,()=>iqe],d9t=[9,E,c$t,{[ne]:["GET","/2018-10-31/layers?find=LayerVersion",200]},()=>Czt,()=>iqe],p9t=[9,E,l$t,{[ne]:["GET","/2018-10-31/layers/{LayerName}/versions/{VersionNumber}/policy",200]},()=>Rzt,()=>vzt],m9t=[9,E,f$t,{[ne]:["GET","/2015-03-31/functions/{FunctionName}/policy",200]},()=>Pzt,()=>bzt],g9t=[9,E,h$t,{[ne]:["GET","/2019-09-30/functions/{FunctionName}/provisioned-concurrency",200]},()=>Izt,()=>Azt],f9t=[9,E,C$t,{[ne]:["GET","/2021-07-20/functions/{FunctionName}/runtime-management-config",200]},()=>Tzt,()=>wzt],h9t=[9,E,K$t,{[ne]:["POST","/2015-03-31/functions/{FunctionName}/invocations",200]},()=>$zt,()=>Gzt],S9t=[9,E,T$t,{[ne]:["POST","/2014-11-13/functions/{FunctionName}/invoke-async",202]},()=>jzt,()=>Vzt],E9t=[9,E,G$t,{[ne]:["POST","/2021-11-15/functions/{FunctionName}/response-streaming-invocations",200]},()=>Wzt,()=>Kzt],y9t=[9,E,iGt,{[ne]:["GET","/2015-03-31/functions/{FunctionName}/aliases",200]},()=>oWt,()=>iWt],_9t=[9,E,aGt,{[ne]:["GET","/2025-11-30/capacity-providers",200]},()=>aWt,()=>cWt],C9t=[9,E,lGt,{[ne]:["GET","/2020-04-22/code-signing-configs",200]},()=>uWt,()=>lWt],R9t=[9,E,mGt,{[ne]:["GET","/2025-12-01/functions/{FunctionName}/durable-executions",200]},()=>dWt,()=>pWt],v9t=[9,E,hGt,{[ne]:["GET","/2015-03-31/event-source-mappings",200]},()=>mWt,()=>gWt],x9t=[9,E,vGt,{[ne]:["GET","/2019-09-25/functions/{FunctionName}/event-invoke-config/list",200]},()=>fWt,()=>hWt],P9t=[9,E,NGt,{[ne]:["GET","/2015-03-31/functions",200]},()=>yWt,()=>_Wt],b9t=[9,E,_Gt,{[ne]:["GET","/2020-04-22/code-signing-configs/{CodeSigningConfigArn}/functions",200]},()=>SWt,()=>EWt],I9t=[9,E,AGt,{[ne]:["GET","/2021-10-31/functions/{FunctionName}/urls",200]},()=>CWt,()=>RWt],A9t=[9,E,DGt,{[ne]:["GET","/2025-11-30/capacity-providers/{CapacityProviderName}/function-versions",200]},()=>vWt,()=>xWt],T9t=[9,E,jGt,{[ne]:["GET","/2018-10-31/layers",200]},()=>PWt,()=>bWt],w9t=[9,E,qGt,{[ne]:["GET","/2018-10-31/layers/{LayerName}/versions",200]},()=>IWt,()=>AWt],D9t=[9,E,zGt,{[ne]:["GET","/2019-09-30/functions/{FunctionName}/provisioned-concurrency?List=ALL",200]},()=>TWt,()=>wWt],O9t=[9,E,ZGt,{[ne]:["GET","/2017-03-31/tags/{Resource}",200]},()=>DWt,()=>OWt],k9t=[9,E,s2t,{[ne]:["GET","/2015-03-31/functions/{FunctionName}/versions",200]},()=>kWt,()=>NWt],N9t=[9,E,ejt,{[ne]:["POST","/2018-10-31/layers/{LayerName}/versions",201]},()=>VWt,()=>HWt],L9t=[9,E,djt,{[ne]:["POST","/2015-03-31/functions/{FunctionName}/versions",201]},()=>zWt,()=>Qp],M9t=[9,E,q2t,{[ne]:["PUT","/2020-06-30/functions/{FunctionName}/code-signing-config",200]},()=>WWt,()=>KWt],F9t=[9,E,B2t,{[ne]:["PUT","/2017-10-31/functions/{FunctionName}/concurrency",200]},()=>QWt,()=>nqe],B9t=[9,E,V2t,{[ne]:["PUT","/2019-09-25/functions/{FunctionName}/event-invoke-config",200]},()=>XWt,()=>oF],U9t=[9,E,z2t,{[ne]:["PUT","/2024-08-31/functions/{FunctionName}/recursion-config",200]},()=>JWt,()=>YWt],q9t=[9,E,Q2t,{[ne]:["PUT","/2025-11-30/functions/{FunctionName}/function-scaling-config",202]},()=>ZWt,()=>eKt],$9t=[9,E,ojt,{[ne]:["PUT","/2019-09-30/functions/{FunctionName}/provisioned-concurrency",202]},()=>tKt,()=>rKt],G9t=[9,E,cjt,{[ne]:["PUT","/2021-07-20/functions/{FunctionName}/runtime-management-config",200]},()=>nKt,()=>sKt],j9t=[9,E,Cjt,{[ne]:["DELETE","/2018-10-31/layers/{LayerName}/versions/{VersionNumber}/policy/{StatementId}",204]},()=>iKt,()=>ra],V9t=[9,E,Pjt,{[ne]:["DELETE","/2015-03-31/functions/{FunctionName}/policy/{StatementId}",204]},()=>aKt,()=>ra],H9t=[9,E,Fjt,{[ne]:["POST","/2025-12-01/durable-execution-callbacks/{CallbackId}/fail",200]},()=>fKt,()=>hKt],z9t=[9,E,qjt,{[ne]:["POST","/2025-12-01/durable-execution-callbacks/{CallbackId}/heartbeat",200]},()=>SKt,()=>EKt],W9t=[9,E,jjt,{[ne]:["POST","/2025-12-01/durable-execution-callbacks/{CallbackId}/succeed",200]},()=>yKt,()=>_Kt],K9t=[9,E,Mjt,{[ne]:["POST","/2025-12-01/durable-executions/{DurableExecutionArn}/stop",200]},()=>kKt,()=>NKt],Q9t=[9,E,C4t,{[ne]:["POST","/2017-03-31/tags/{Resource}",204]},()=>MKt,()=>ra],X9t=[9,E,Q4t,{[ne]:["DELETE","/2017-03-31/tags/{Resource}",204]},()=>jKt,()=>ra],J9t=[9,E,I4t,{[ne]:["PUT","/2015-03-31/functions/{FunctionName}/aliases/{Name}",200]},()=>VKt,()=>nF],Y9t=[9,E,D4t,{[ne]:["PUT","/2025-11-30/capacity-providers/{CapacityProviderName}",202]},()=>HKt,()=>zKt],Z9t=[9,E,N4t,{[ne]:["PUT","/2020-04-22/code-signing-configs/{CodeSigningConfigArn}",200]},()=>WKt,()=>KKt],e8t=[9,E,F4t,{[ne]:["PUT","/2015-03-31/event-source-mappings/{UUID}",202]},()=>QKt,()=>SR],t8t=[9,E,U4t,{[ne]:["PUT","/2015-03-31/functions/{FunctionName}/code",200]},()=>XKt,()=>Qp],r8t=[9,E,G4t,{[ne]:["PUT","/2015-03-31/functions/{FunctionName}/configuration",200]},()=>JKt,()=>Qp],n8t=[9,E,j4t,{[ne]:["POST","/2019-09-25/functions/{FunctionName}/event-invoke-config",200]},()=>YKt,()=>oF],s8t=[9,E,H4t,{[ne]:["PUT","/2021-10-31/functions/{FunctionName}/url",200]},()=>ZKt,()=>e6t],uM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","AddLayerVersionPermission",{}).n("LambdaClient","AddLayerVersionPermissionCommand").sc(A6t).build(){},lM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","AddPermission",{}).n("LambdaClient","AddPermissionCommand").sc(T6t).build(){},dM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","CheckpointDurableExecution",{}).n("LambdaClient","CheckpointDurableExecutionCommand").sc(w6t).build(){},pM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","CreateAlias",{}).n("LambdaClient","CreateAliasCommand").sc(D6t).build(){},mM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","CreateCapacityProvider",{}).n("LambdaClient","CreateCapacityProviderCommand").sc(O6t).build(){},gM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","CreateCodeSigningConfig",{}).n("LambdaClient","CreateCodeSigningConfigCommand").sc(k6t).build(){},fM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","CreateEventSourceMapping",{}).n("LambdaClient","CreateEventSourceMappingCommand").sc(N6t).build(){},hM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","CreateFunction",{}).n("LambdaClient","CreateFunctionCommand").sc(L6t).build(){},SM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","CreateFunctionUrlConfig",{}).n("LambdaClient","CreateFunctionUrlConfigCommand").sc(M6t).build(){},EM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","DeleteAlias",{}).n("LambdaClient","DeleteAliasCommand").sc(F6t).build(){},yM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","DeleteCapacityProvider",{}).n("LambdaClient","DeleteCapacityProviderCommand").sc(B6t).build(){},_M=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","DeleteCodeSigningConfig",{}).n("LambdaClient","DeleteCodeSigningConfigCommand").sc(U6t).build(){},CM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","DeleteEventSourceMapping",{}).n("LambdaClient","DeleteEventSourceMappingCommand").sc(q6t).build(){},RM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","DeleteFunctionCodeSigningConfig",{}).n("LambdaClient","DeleteFunctionCodeSigningConfigCommand").sc(G6t).build(){},vM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","DeleteFunction",{}).n("LambdaClient","DeleteFunctionCommand").sc($6t).build(){},xM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","DeleteFunctionConcurrency",{}).n("LambdaClient","DeleteFunctionConcurrencyCommand").sc(j6t).build(){},PM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","DeleteFunctionEventInvokeConfig",{}).n("LambdaClient","DeleteFunctionEventInvokeConfigCommand").sc(V6t).build(){},bM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","DeleteFunctionUrlConfig",{}).n("LambdaClient","DeleteFunctionUrlConfigCommand").sc(H6t).build(){},IM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","DeleteLayerVersion",{}).n("LambdaClient","DeleteLayerVersionCommand").sc(z6t).build(){},AM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","DeleteProvisionedConcurrencyConfig",{}).n("LambdaClient","DeleteProvisionedConcurrencyConfigCommand").sc(W6t).build(){},TM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","GetAccountSettings",{}).n("LambdaClient","GetAccountSettingsCommand").sc(K6t).build(){},wM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","GetAlias",{}).n("LambdaClient","GetAliasCommand").sc(Q6t).build(){},DM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","GetCapacityProvider",{}).n("LambdaClient","GetCapacityProviderCommand").sc(X6t).build(){},OM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","GetCodeSigningConfig",{}).n("LambdaClient","GetCodeSigningConfigCommand").sc(J6t).build(){},kM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","GetDurableExecution",{}).n("LambdaClient","GetDurableExecutionCommand").sc(Y6t).build(){},K0=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","GetDurableExecutionHistory",{}).n("LambdaClient","GetDurableExecutionHistoryCommand").sc(Z6t).build(){},Q0=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","GetDurableExecutionState",{}).n("LambdaClient","GetDurableExecutionStateCommand").sc(e9t).build(){},NM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","GetEventSourceMapping",{}).n("LambdaClient","GetEventSourceMappingCommand").sc(t9t).build(){},LM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","GetFunctionCodeSigningConfig",{}).n("LambdaClient","GetFunctionCodeSigningConfigCommand").sc(n9t).build(){},Gp=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","GetFunction",{}).n("LambdaClient","GetFunctionCommand").sc(r9t).build(){},MM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","GetFunctionConcurrency",{}).n("LambdaClient","GetFunctionConcurrencyCommand").sc(s9t).build(){},jp=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","GetFunctionConfiguration",{}).n("LambdaClient","GetFunctionConfigurationCommand").sc(o9t).build(){},FM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","GetFunctionEventInvokeConfig",{}).n("LambdaClient","GetFunctionEventInvokeConfigCommand").sc(i9t).build(){},BM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","GetFunctionRecursionConfig",{}).n("LambdaClient","GetFunctionRecursionConfigCommand").sc(a9t).build(){},UM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","GetFunctionScalingConfig",{}).n("LambdaClient","GetFunctionScalingConfigCommand").sc(c9t).build(){},qM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","GetFunctionUrlConfig",{}).n("LambdaClient","GetFunctionUrlConfigCommand").sc(u9t).build(){},$M=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","GetLayerVersionByArn",{}).n("LambdaClient","GetLayerVersionByArnCommand").sc(d9t).build(){},GM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","GetLayerVersion",{}).n("LambdaClient","GetLayerVersionCommand").sc(l9t).build(){},jM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","GetLayerVersionPolicy",{}).n("LambdaClient","GetLayerVersionPolicyCommand").sc(p9t).build(){},VM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","GetPolicy",{}).n("LambdaClient","GetPolicyCommand").sc(m9t).build(){},HM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","GetProvisionedConcurrencyConfig",{}).n("LambdaClient","GetProvisionedConcurrencyConfigCommand").sc(g9t).build(){},zM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","GetRuntimeManagementConfig",{}).n("LambdaClient","GetRuntimeManagementConfigCommand").sc(f9t).build(){},WM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","InvokeAsync",{}).n("LambdaClient","InvokeAsyncCommand").sc(S9t).build(){},KM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","Invoke",{}).n("LambdaClient","InvokeCommand").sc(h9t).build(){},QM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","InvokeWithResponseStream",{eventStream:{output:!0}}).n("LambdaClient","InvokeWithResponseStreamCommand").sc(E9t).build(){},X0=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","ListAliases",{}).n("LambdaClient","ListAliasesCommand").sc(y9t).build(){},J0=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","ListCapacityProviders",{}).n("LambdaClient","ListCapacityProvidersCommand").sc(_9t).build(){},Y0=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","ListCodeSigningConfigs",{}).n("LambdaClient","ListCodeSigningConfigsCommand").sc(C9t).build(){},Z0=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","ListDurableExecutionsByFunction",{}).n("LambdaClient","ListDurableExecutionsByFunctionCommand").sc(R9t).build(){},eR=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","ListEventSourceMappings",{}).n("LambdaClient","ListEventSourceMappingsCommand").sc(v9t).build(){},tR=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","ListFunctionEventInvokeConfigs",{}).n("LambdaClient","ListFunctionEventInvokeConfigsCommand").sc(x9t).build(){},rR=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","ListFunctionsByCodeSigningConfig",{}).n("LambdaClient","ListFunctionsByCodeSigningConfigCommand").sc(b9t).build(){},nR=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","ListFunctions",{}).n("LambdaClient","ListFunctionsCommand").sc(P9t).build(){},sR=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","ListFunctionUrlConfigs",{}).n("LambdaClient","ListFunctionUrlConfigsCommand").sc(I9t).build(){},oR=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","ListFunctionVersionsByCapacityProvider",{}).n("LambdaClient","ListFunctionVersionsByCapacityProviderCommand").sc(A9t).build(){},iR=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","ListLayers",{}).n("LambdaClient","ListLayersCommand").sc(T9t).build(){},aR=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","ListLayerVersions",{}).n("LambdaClient","ListLayerVersionsCommand").sc(w9t).build(){},cR=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","ListProvisionedConcurrencyConfigs",{}).n("LambdaClient","ListProvisionedConcurrencyConfigsCommand").sc(D9t).build(){},XM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","ListTags",{}).n("LambdaClient","ListTagsCommand").sc(O9t).build(){},uR=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","ListVersionsByFunction",{}).n("LambdaClient","ListVersionsByFunctionCommand").sc(k9t).build(){},JM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","PublishLayerVersion",{}).n("LambdaClient","PublishLayerVersionCommand").sc(N9t).build(){},YM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","PublishVersion",{}).n("LambdaClient","PublishVersionCommand").sc(L9t).build(){},ZM=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","PutFunctionCodeSigningConfig",{}).n("LambdaClient","PutFunctionCodeSigningConfigCommand").sc(M9t).build(){},e1=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","PutFunctionConcurrency",{}).n("LambdaClient","PutFunctionConcurrencyCommand").sc(F9t).build(){},t1=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","PutFunctionEventInvokeConfig",{}).n("LambdaClient","PutFunctionEventInvokeConfigCommand").sc(B9t).build(){},r1=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","PutFunctionRecursionConfig",{}).n("LambdaClient","PutFunctionRecursionConfigCommand").sc(U9t).build(){},n1=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","PutFunctionScalingConfig",{}).n("LambdaClient","PutFunctionScalingConfigCommand").sc(q9t).build(){},s1=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","PutProvisionedConcurrencyConfig",{}).n("LambdaClient","PutProvisionedConcurrencyConfigCommand").sc($9t).build(){},o1=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","PutRuntimeManagementConfig",{}).n("LambdaClient","PutRuntimeManagementConfigCommand").sc(G9t).build(){},i1=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","RemoveLayerVersionPermission",{}).n("LambdaClient","RemoveLayerVersionPermissionCommand").sc(j9t).build(){},a1=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","RemovePermission",{}).n("LambdaClient","RemovePermissionCommand").sc(V9t).build(){},c1=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","SendDurableExecutionCallbackFailure",{}).n("LambdaClient","SendDurableExecutionCallbackFailureCommand").sc(H9t).build(){},u1=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","SendDurableExecutionCallbackHeartbeat",{}).n("LambdaClient","SendDurableExecutionCallbackHeartbeatCommand").sc(z9t).build(){},l1=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","SendDurableExecutionCallbackSuccess",{}).n("LambdaClient","SendDurableExecutionCallbackSuccessCommand").sc(W9t).build(){},d1=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","StopDurableExecution",{}).n("LambdaClient","StopDurableExecutionCommand").sc(K9t).build(){},p1=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","TagResource",{}).n("LambdaClient","TagResourceCommand").sc(Q9t).build(){},m1=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","UntagResource",{}).n("LambdaClient","UntagResourceCommand").sc(X9t).build(){},g1=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","UpdateAlias",{}).n("LambdaClient","UpdateAliasCommand").sc(J9t).build(){},f1=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","UpdateCapacityProvider",{}).n("LambdaClient","UpdateCapacityProviderCommand").sc(Y9t).build(){},h1=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","UpdateCodeSigningConfig",{}).n("LambdaClient","UpdateCodeSigningConfigCommand").sc(Z9t).build(){},S1=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","UpdateEventSourceMapping",{}).n("LambdaClient","UpdateEventSourceMappingCommand").sc(e8t).build(){},E1=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","UpdateFunctionCode",{}).n("LambdaClient","UpdateFunctionCodeCommand").sc(t8t).build(){},y1=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","UpdateFunctionConfiguration",{}).n("LambdaClient","UpdateFunctionConfigurationCommand").sc(r8t).build(){},_1=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","UpdateFunctionEventInvokeConfig",{}).n("LambdaClient","UpdateFunctionEventInvokeConfigCommand").sc(n8t).build(){},C1=class extends Z.Command.classBuilder().ep(re).m(function(e,r,n,s){return[te.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AWSGirApiService","UpdateFunctionUrlConfig",{}).n("LambdaClient","UpdateFunctionUrlConfigCommand").sc(s8t).build(){},o8t={AddLayerVersionPermissionCommand:uM,AddPermissionCommand:lM,CheckpointDurableExecutionCommand:dM,CreateAliasCommand:pM,CreateCapacityProviderCommand:mM,CreateCodeSigningConfigCommand:gM,CreateEventSourceMappingCommand:fM,CreateFunctionCommand:hM,CreateFunctionUrlConfigCommand:SM,DeleteAliasCommand:EM,DeleteCapacityProviderCommand:yM,DeleteCodeSigningConfigCommand:_M,DeleteEventSourceMappingCommand:CM,DeleteFunctionCommand:vM,DeleteFunctionCodeSigningConfigCommand:RM,DeleteFunctionConcurrencyCommand:xM,DeleteFunctionEventInvokeConfigCommand:PM,DeleteFunctionUrlConfigCommand:bM,DeleteLayerVersionCommand:IM,DeleteProvisionedConcurrencyConfigCommand:AM,GetAccountSettingsCommand:TM,GetAliasCommand:wM,GetCapacityProviderCommand:DM,GetCodeSigningConfigCommand:OM,GetDurableExecutionCommand:kM,GetDurableExecutionHistoryCommand:K0,GetDurableExecutionStateCommand:Q0,GetEventSourceMappingCommand:NM,GetFunctionCommand:Gp,GetFunctionCodeSigningConfigCommand:LM,GetFunctionConcurrencyCommand:MM,GetFunctionConfigurationCommand:jp,GetFunctionEventInvokeConfigCommand:FM,GetFunctionRecursionConfigCommand:BM,GetFunctionScalingConfigCommand:UM,GetFunctionUrlConfigCommand:qM,GetLayerVersionCommand:GM,GetLayerVersionByArnCommand:$M,GetLayerVersionPolicyCommand:jM,GetPolicyCommand:VM,GetProvisionedConcurrencyConfigCommand:HM,GetRuntimeManagementConfigCommand:zM,InvokeCommand:KM,InvokeAsyncCommand:WM,InvokeWithResponseStreamCommand:QM,ListAliasesCommand:X0,ListCapacityProvidersCommand:J0,ListCodeSigningConfigsCommand:Y0,ListDurableExecutionsByFunctionCommand:Z0,ListEventSourceMappingsCommand:eR,ListFunctionEventInvokeConfigsCommand:tR,ListFunctionsCommand:nR,ListFunctionsByCodeSigningConfigCommand:rR,ListFunctionUrlConfigsCommand:sR,ListFunctionVersionsByCapacityProviderCommand:oR,ListLayersCommand:iR,ListLayerVersionsCommand:aR,ListProvisionedConcurrencyConfigsCommand:cR,ListTagsCommand:XM,ListVersionsByFunctionCommand:uR,PublishLayerVersionCommand:JM,PublishVersionCommand:YM,PutFunctionCodeSigningConfigCommand:ZM,PutFunctionConcurrencyCommand:e1,PutFunctionEventInvokeConfigCommand:t1,PutFunctionRecursionConfigCommand:r1,PutFunctionScalingConfigCommand:n1,PutProvisionedConcurrencyConfigCommand:s1,PutRuntimeManagementConfigCommand:o1,RemoveLayerVersionPermissionCommand:i1,RemovePermissionCommand:a1,SendDurableExecutionCallbackFailureCommand:c1,SendDurableExecutionCallbackHeartbeatCommand:u1,SendDurableExecutionCallbackSuccessCommand:l1,StopDurableExecutionCommand:d1,TagResourceCommand:p1,UntagResourceCommand:m1,UpdateAliasCommand:g1,UpdateCapacityProviderCommand:f1,UpdateCodeSigningConfigCommand:h1,UpdateEventSourceMappingCommand:S1,UpdateFunctionCodeCommand:E1,UpdateFunctionConfigurationCommand:y1,UpdateFunctionEventInvokeConfigCommand:_1,UpdateFunctionUrlConfigCommand:C1},R1=class extends Dr{};Z.createAggregatedClient(o8t,R1);var i8t=Ur.createPaginator(Dr,K0,"Marker","NextMarker","MaxItems"),a8t=Ur.createPaginator(Dr,Q0,"Marker","NextMarker","MaxItems"),c8t=Ur.createPaginator(Dr,X0,"Marker","NextMarker","MaxItems"),u8t=Ur.createPaginator(Dr,J0,"Marker","NextMarker","MaxItems"),l8t=Ur.createPaginator(Dr,Y0,"Marker","NextMarker","MaxItems"),d8t=Ur.createPaginator(Dr,Z0,"Marker","NextMarker","MaxItems"),p8t=Ur.createPaginator(Dr,eR,"Marker","NextMarker","MaxItems"),m8t=Ur.createPaginator(Dr,tR,"Marker","NextMarker","MaxItems"),g8t=Ur.createPaginator(Dr,sR,"Marker","NextMarker","MaxItems"),f8t=Ur.createPaginator(Dr,oR,"Marker","NextMarker","MaxItems"),h8t=Ur.createPaginator(Dr,rR,"Marker","NextMarker","MaxItems"),S8t=Ur.createPaginator(Dr,nR,"Marker","NextMarker","MaxItems"),E8t=Ur.createPaginator(Dr,aR,"Marker","NextMarker","MaxItems"),y8t=Ur.createPaginator(Dr,iR,"Marker","NextMarker","MaxItems"),_8t=Ur.createPaginator(Dr,cR,"Marker","NextMarker","MaxItems"),C8t=Ur.createPaginator(Dr,uR,"Marker","NextMarker","MaxItems"),_qe=async(t,e)=>{let r;try{let n=await t.send(new jp(e));r=n;try{if(n.State==="Active")return{state:je.WaiterState.SUCCESS,reason:r}}catch{}try{if(n.State==="Failed")return{state:je.WaiterState.FAILURE,reason:r}}catch{}try{if(n.State==="Pending")return{state:je.WaiterState.RETRY,reason:r}}catch{}}catch(n){r=n}return{state:je.WaiterState.RETRY,reason:r}},R8t=async(t,e)=>{let r={minDelay:5,maxDelay:300};return je.createWaiter({...r,...t},e,_qe)},v8t=async(t,e)=>{let r={minDelay:5,maxDelay:300},n=await je.createWaiter({...r,...t},e,_qe);return je.checkExceptions(n)},Cqe=async(t,e)=>{let r;try{let n=await t.send(new Gp(e));r=n;try{if(n.Configuration.State==="Active")return{state:je.WaiterState.SUCCESS,reason:r}}catch{}try{if(n.Configuration.State==="Failed")return{state:je.WaiterState.FAILURE,reason:r}}catch{}try{if(n.Configuration.State==="Pending")return{state:je.WaiterState.RETRY,reason:r}}catch{}}catch(n){r=n}return{state:je.WaiterState.RETRY,reason:r}},x8t=async(t,e)=>{let r={minDelay:1,maxDelay:300};return je.createWaiter({...r,...t},e,Cqe)},P8t=async(t,e)=>{let r={minDelay:1,maxDelay:300},n=await je.createWaiter({...r,...t},e,Cqe);return je.checkExceptions(n)},Rqe=async(t,e)=>{let r;try{return r=await t.send(new Gp(e)),{state:je.WaiterState.SUCCESS,reason:r}}catch(n){if(r=n,n.name&&n.name=="ResourceNotFoundException")return{state:je.WaiterState.RETRY,reason:r}}return{state:je.WaiterState.RETRY,reason:r}},b8t=async(t,e)=>{let r={minDelay:1,maxDelay:20};return je.createWaiter({...r,...t},e,Rqe)},I8t=async(t,e)=>{let r={minDelay:1,maxDelay:20},n=await je.createWaiter({...r,...t},e,Rqe);return je.checkExceptions(n)},vqe=async(t,e)=>{let r;try{let n=await t.send(new jp(e));r=n;try{if(n.LastUpdateStatus==="Successful")return{state:je.WaiterState.SUCCESS,reason:r}}catch{}try{if(n.LastUpdateStatus==="Failed")return{state:je.WaiterState.FAILURE,reason:r}}catch{}try{if(n.LastUpdateStatus==="InProgress")return{state:je.WaiterState.RETRY,reason:r}}catch{}}catch(n){r=n}return{state:je.WaiterState.RETRY,reason:r}},A8t=async(t,e)=>{let r={minDelay:5,maxDelay:300};return je.createWaiter({...r,...t},e,vqe)},T8t=async(t,e)=>{let r={minDelay:5,maxDelay:300},n=await je.createWaiter({...r,...t},e,vqe);return je.checkExceptions(n)},xqe=async(t,e)=>{let r;try{let n=await t.send(new Gp(e));r=n;try{if(n.Configuration.LastUpdateStatus==="Successful")return{state:je.WaiterState.SUCCESS,reason:r}}catch{}try{if(n.Configuration.LastUpdateStatus==="Failed")return{state:je.WaiterState.FAILURE,reason:r}}catch{}try{if(n.Configuration.LastUpdateStatus==="InProgress")return{state:je.WaiterState.RETRY,reason:r}}catch{}}catch(n){r=n}return{state:je.WaiterState.RETRY,reason:r}},w8t=async(t,e)=>{let r={minDelay:1,maxDelay:300};return je.createWaiter({...r,...t},e,xqe)},D8t=async(t,e)=>{let r={minDelay:1,maxDelay:300},n=await je.createWaiter({...r,...t},e,xqe);return je.checkExceptions(n)},Pqe=async(t,e)=>{let r;try{let n=await t.send(new jp(e));r=n;try{if(n.State==="Active")return{state:je.WaiterState.SUCCESS,reason:r}}catch{}try{if(n.State==="Failed")return{state:je.WaiterState.FAILURE,reason:r}}catch{}try{if(n.State==="Pending")return{state:je.WaiterState.RETRY,reason:r}}catch{}}catch(n){r=n}return{state:je.WaiterState.RETRY,reason:r}},O8t=async(t,e)=>{let r={minDelay:5,maxDelay:1560};return je.createWaiter({...r,...t},e,Pqe)},k8t=async(t,e)=>{let r={minDelay:5,maxDelay:1560},n=await je.createWaiter({...r,...t},e,Pqe);return je.checkExceptions(n)},N8t={CallerRateLimitExceeded:"CallerRateLimitExceeded",ConcurrentInvocationLimitExceeded:"ConcurrentInvocationLimitExceeded",ConcurrentSnapshotCreateLimitExceeded:"ConcurrentSnapshotCreateLimitExceeded",FunctionInvocationRateLimitExceeded:"FunctionInvocationRateLimitExceeded",ReservedFunctionConcurrentInvocationLimitExceeded:"ReservedFunctionConcurrentInvocationLimitExceeded",ReservedFunctionInvocationRateLimitExceeded:"ReservedFunctionInvocationRateLimitExceeded"},L8t={AWS_IAM:"AWS_IAM",NONE:"NONE"},M8t={BASIC_AUTH:"BASIC_AUTH",CLIENT_CERTIFICATE_TLS_AUTH:"CLIENT_CERTIFICATE_TLS_AUTH",SERVER_ROOT_CA_CERTIFICATE:"SERVER_ROOT_CA_CERTIFICATE"},F8t={JSON:"JSON",SOURCE:"SOURCE"},B8t={KEY:"KEY",VALUE:"VALUE"},U8t={Debug:"DEBUG",Error:"ERROR",Fatal:"FATAL",Info:"INFO",Trace:"TRACE",Warn:"WARN"},q8t={arm64:"arm64",x86_64:"x86_64"},$8t={Auto:"Auto",Manual:"Manual"},G8t={LambdaCapacityProviderAverageCPUUtilization:"LambdaCapacityProviderAverageCPUUtilization"},j8t={Active:"Active",Deleting:"Deleting",Failed:"Failed",Pending:"Pending"},V8t={Active:"Active",ActiveNonInvocable:"ActiveNonInvocable",Deactivated:"Deactivated",Deactivating:"Deactivating",Deleting:"Deleting",Failed:"Failed",Inactive:"Inactive",Pending:"Pending"},H8t={CANCEL:"CANCEL",FAIL:"FAIL",RETRY:"RETRY",START:"START",SUCCEED:"SUCCEED"},z8t={CALLBACK:"CALLBACK",CHAINED_INVOKE:"CHAINED_INVOKE",CONTEXT:"CONTEXT",EXECUTION:"EXECUTION",STEP:"STEP",WAIT:"WAIT"},W8t={CANCELLED:"CANCELLED",FAILED:"FAILED",PENDING:"PENDING",READY:"READY",STARTED:"STARTED",STOPPED:"STOPPED",SUCCEEDED:"SUCCEEDED",TIMED_OUT:"TIMED_OUT"},K8t={Enforce:"Enforce",Warn:"Warn"},Q8t={Default:"Default",UpdateLookup:"UpdateLookup"},X8t={ReportBatchItemFailures:"ReportBatchItemFailures"},J8t={EventCount:"EventCount"},Y8t={KAFKA_BOOTSTRAP_SERVERS:"KAFKA_BOOTSTRAP_SERVERS"},Z8t={BASIC_AUTH:"BASIC_AUTH",CLIENT_CERTIFICATE_TLS_AUTH:"CLIENT_CERTIFICATE_TLS_AUTH",SASL_SCRAM_256_AUTH:"SASL_SCRAM_256_AUTH",SASL_SCRAM_512_AUTH:"SASL_SCRAM_512_AUTH",SERVER_ROOT_CA_CERTIFICATE:"SERVER_ROOT_CA_CERTIFICATE",VIRTUAL_HOST:"VIRTUAL_HOST",VPC_SECURITY_GROUP:"VPC_SECURITY_GROUP",VPC_SUBNET:"VPC_SUBNET"},e5t={AT_TIMESTAMP:"AT_TIMESTAMP",LATEST:"LATEST",TRIM_HORIZON:"TRIM_HORIZON"},t5t={Json:"JSON",Text:"Text"},r5t={Debug:"DEBUG",Info:"INFO",Warn:"WARN"},n5t={Image:"Image",Zip:"Zip"},s5t={LATEST_PUBLISHED:"LATEST_PUBLISHED"},o5t={dotnet10:"dotnet10",dotnet6:"dotnet6",dotnet8:"dotnet8",dotnetcore10:"dotnetcore1.0",dotnetcore20:"dotnetcore2.0",dotnetcore21:"dotnetcore2.1",dotnetcore31:"dotnetcore3.1",go1x:"go1.x",java11:"java11",java17:"java17",java21:"java21",java25:"java25",java8:"java8",java8al2:"java8.al2",nodejs:"nodejs",nodejs10x:"nodejs10.x",nodejs12x:"nodejs12.x",nodejs14x:"nodejs14.x",nodejs16x:"nodejs16.x",nodejs18x:"nodejs18.x",nodejs20x:"nodejs20.x",nodejs22x:"nodejs22.x",nodejs24x:"nodejs24.x",nodejs43:"nodejs4.3",nodejs43edge:"nodejs4.3-edge",nodejs610:"nodejs6.10",nodejs810:"nodejs8.10",provided:"provided",providedal2:"provided.al2",providedal2023:"provided.al2023",python27:"python2.7",python310:"python3.10",python311:"python3.11",python312:"python3.12",python313:"python3.13",python314:"python3.14",python36:"python3.6",python37:"python3.7",python38:"python3.8",python39:"python3.9",ruby25:"ruby2.5",ruby27:"ruby2.7",ruby32:"ruby3.2",ruby33:"ruby3.3",ruby34:"ruby3.4"},i5t={None:"None",PublishedVersions:"PublishedVersions"},a5t={PER_TENANT:"PER_TENANT"},c5t={Active:"Active",PassThrough:"PassThrough"},u5t={Failed:"Failed",InProgress:"InProgress",Successful:"Successful"},l5t={CapacityProviderScalingLimitExceeded:"CapacityProviderScalingLimitExceeded",DisabledKMSKey:"DisabledKMSKey",DisallowedByVpcEncryptionControl:"DisallowedByVpcEncryptionControl",EC2RequestLimitExceeded:"EC2RequestLimitExceeded",EFSIOError:"EFSIOError",EFSMountConnectivityError:"EFSMountConnectivityError",EFSMountFailure:"EFSMountFailure",EFSMountTimeout:"EFSMountTimeout",EniLimitExceeded:"EniLimitExceeded",FunctionError:"FunctionError",FunctionErrorExtensionInitError:"FunctionError.ExtensionInitError",FunctionErrorInitResourceExhausted:"FunctionError.InitResourceExhausted",FunctionErrorInitTimeout:"FunctionError.InitTimeout",FunctionErrorInvalidEntryPoint:"FunctionError.InvalidEntryPoint",FunctionErrorInvalidWorkingDirectory:"FunctionError.InvalidWorkingDirectory",FunctionErrorPermissionDenied:"FunctionError.PermissionDenied",FunctionErrorRuntimeInitError:"FunctionError.RuntimeInitError",FunctionErrorTooManyExtensions:"FunctionError.TooManyExtensions",ImageAccessDenied:"ImageAccessDenied",ImageDeleted:"ImageDeleted",InsufficientCapacity:"InsufficientCapacity",InsufficientRolePermissions:"InsufficientRolePermissions",InternalError:"InternalError",InvalidConfiguration:"InvalidConfiguration",InvalidImage:"InvalidImage",InvalidRuntime:"InvalidRuntime",InvalidSecurityGroup:"InvalidSecurityGroup",InvalidStateKMSKey:"InvalidStateKMSKey",InvalidSubnet:"InvalidSubnet",InvalidZipFileException:"InvalidZipFileException",KMSKeyAccessDenied:"KMSKeyAccessDenied",KMSKeyNotFound:"KMSKeyNotFound",SubnetOutOfIPAddresses:"SubnetOutOfIPAddresses",VcpuLimitExceeded:"VcpuLimitExceeded"},d5t={Off:"Off",On:"On"},p5t={CapacityProviderScalingLimitExceeded:"CapacityProviderScalingLimitExceeded",Creating:"Creating",DisabledKMSKey:"DisabledKMSKey",DisallowedByVpcEncryptionControl:"DisallowedByVpcEncryptionControl",DrainingDurableExecutions:"DrainingDurableExecutions",EC2RequestLimitExceeded:"EC2RequestLimitExceeded",EFSIOError:"EFSIOError",EFSMountConnectivityError:"EFSMountConnectivityError",EFSMountFailure:"EFSMountFailure",EFSMountTimeout:"EFSMountTimeout",EniLimitExceeded:"EniLimitExceeded",FunctionError:"FunctionError",FunctionErrorExtensionInitError:"FunctionError.ExtensionInitError",FunctionErrorInitResourceExhausted:"FunctionError.InitResourceExhausted",FunctionErrorInitTimeout:"FunctionError.InitTimeout",FunctionErrorInvalidEntryPoint:"FunctionError.InvalidEntryPoint",FunctionErrorInvalidWorkingDirectory:"FunctionError.InvalidWorkingDirectory",FunctionErrorPermissionDenied:"FunctionError.PermissionDenied",FunctionErrorRuntimeInitError:"FunctionError.RuntimeInitError",FunctionErrorTooManyExtensions:"FunctionError.TooManyExtensions",Idle:"Idle",ImageAccessDenied:"ImageAccessDenied",ImageDeleted:"ImageDeleted",InsufficientCapacity:"InsufficientCapacity",InsufficientRolePermissions:"InsufficientRolePermissions",InternalError:"InternalError",InvalidConfiguration:"InvalidConfiguration",InvalidImage:"InvalidImage",InvalidRuntime:"InvalidRuntime",InvalidSecurityGroup:"InvalidSecurityGroup",InvalidStateKMSKey:"InvalidStateKMSKey",InvalidSubnet:"InvalidSubnet",InvalidZipFileException:"InvalidZipFileException",KMSKeyAccessDenied:"KMSKeyAccessDenied",KMSKeyNotFound:"KMSKeyNotFound",Restoring:"Restoring",SubnetOutOfIPAddresses:"SubnetOutOfIPAddresses",VcpuLimitExceeded:"VcpuLimitExceeded"},m5t={BUFFERED:"BUFFERED",RESPONSE_STREAM:"RESPONSE_STREAM"},g5t={Allow:"Allow",Terminate:"Terminate"},f5t={Auto:"Auto",FunctionUpdate:"FunctionUpdate",Manual:"Manual"},h5t={DryRun:"DryRun",Event:"Event",RequestResponse:"RequestResponse"},S5t={None:"None",Tail:"Tail"},E5t={DryRun:"DryRun",RequestResponse:"RequestResponse"},y5t={ALL:"ALL"},_5t={FAILED:"FAILED",IN_PROGRESS:"IN_PROGRESS",READY:"READY"},C5t={FAILED:"FAILED",RUNNING:"RUNNING",STOPPED:"STOPPED",SUCCEEDED:"SUCCEEDED",TIMED_OUT:"TIMED_OUT"},R5t={CallbackFailed:"CallbackFailed",CallbackStarted:"CallbackStarted",CallbackSucceeded:"CallbackSucceeded",CallbackTimedOut:"CallbackTimedOut",ChainedInvokeFailed:"ChainedInvokeFailed",ChainedInvokeStarted:"ChainedInvokeStarted",ChainedInvokeStopped:"ChainedInvokeStopped",ChainedInvokeSucceeded:"ChainedInvokeSucceeded",ChainedInvokeTimedOut:"ChainedInvokeTimedOut",ContextFailed:"ContextFailed",ContextStarted:"ContextStarted",ContextSucceeded:"ContextSucceeded",ExecutionFailed:"ExecutionFailed",ExecutionStarted:"ExecutionStarted",ExecutionStopped:"ExecutionStopped",ExecutionSucceeded:"ExecutionSucceeded",ExecutionTimedOut:"ExecutionTimedOut",InvocationCompleted:"InvocationCompleted",StepFailed:"StepFailed",StepStarted:"StepStarted",StepSucceeded:"StepSucceeded",WaitCancelled:"WaitCancelled",WaitStarted:"WaitStarted",WaitSucceeded:"WaitSucceeded"};Object.defineProperty(A,"$Command",{enumerable:!0,get:function(){return Z.Command}});Object.defineProperty(A,"__Client",{enumerable:!0,get:function(){return Z.Client}});A.AddLayerVersionPermissionCommand=uM;A.AddPermissionCommand=lM;A.ApplicationLogLevel=U8t;A.Architecture=q8t;A.CallbackTimeoutException=fBe;A.CapacityProviderLimitExceededException=JFe;A.CapacityProviderPredefinedMetricType=G8t;A.CapacityProviderScalingMode=$8t;A.CapacityProviderState=j8t;A.CheckpointDurableExecutionCommand=dM;A.CodeSigningConfigNotFoundException=t3e;A.CodeSigningPolicy=K8t;A.CodeStorageExceededException=n3e;A.CodeVerificationFailedException=o3e;A.CreateAliasCommand=pM;A.CreateCapacityProviderCommand=mM;A.CreateCodeSigningConfigCommand=gM;A.CreateEventSourceMappingCommand=fM;A.CreateFunctionCommand=hM;A.CreateFunctionUrlConfigCommand=SM;A.DeleteAliasCommand=EM;A.DeleteCapacityProviderCommand=yM;A.DeleteCodeSigningConfigCommand=_M;A.DeleteEventSourceMappingCommand=CM;A.DeleteFunctionCodeSigningConfigCommand=RM;A.DeleteFunctionCommand=vM;A.DeleteFunctionConcurrencyCommand=xM;A.DeleteFunctionEventInvokeConfigCommand=PM;A.DeleteFunctionUrlConfigCommand=bM;A.DeleteLayerVersionCommand=IM;A.DeleteProvisionedConcurrencyConfigCommand=AM;A.DurableExecutionAlreadyStartedException=d3e;A.EC2AccessDeniedException=m3e;A.EC2ThrottledException=f3e;A.EC2UnexpectedException=S3e;A.EFSIOException=y3e;A.EFSMountConnectivityException=C3e;A.EFSMountFailureException=v3e;A.EFSMountTimeoutException=P3e;A.ENILimitReachedException=I3e;A.EndPointType=Y8t;A.EventSourceMappingMetric=J8t;A.EventSourcePosition=e5t;A.EventType=R5t;A.ExecutionStatus=C5t;A.FullDocument=Q8t;A.FunctionResponseType=X8t;A.FunctionUrlAuthType=L8t;A.FunctionVersion=y5t;A.FunctionVersionLatestPublished=s5t;A.FunctionVersionsPerCapacityProviderLimitExceededException=a3e;A.GetAccountSettingsCommand=TM;A.GetAliasCommand=wM;A.GetCapacityProviderCommand=DM;A.GetCodeSigningConfigCommand=OM;A.GetDurableExecutionCommand=kM;A.GetDurableExecutionHistoryCommand=K0;A.GetDurableExecutionStateCommand=Q0;A.GetEventSourceMappingCommand=NM;A.GetFunctionCodeSigningConfigCommand=LM;A.GetFunctionCommand=Gp;A.GetFunctionConcurrencyCommand=MM;A.GetFunctionConfigurationCommand=jp;A.GetFunctionEventInvokeConfigCommand=FM;A.GetFunctionRecursionConfigCommand=BM;A.GetFunctionScalingConfigCommand=UM;A.GetFunctionUrlConfigCommand=qM;A.GetLayerVersionByArnCommand=$M;A.GetLayerVersionCommand=GM;A.GetLayerVersionPolicyCommand=jM;A.GetPolicyCommand=VM;A.GetProvisionedConcurrencyConfigCommand=HM;A.GetRuntimeManagementConfigCommand=zM;A.InvalidCodeSignatureException=u3e;A.InvalidParameterValueException=FFe;A.InvalidRequestContentException=T3e;A.InvalidRuntimeException=D3e;A.InvalidSecurityGroupIDException=k3e;A.InvalidSubnetIDException=L3e;A.InvalidZipFileException=F3e;A.InvocationType=h5t;A.InvokeAsyncCommand=WM;A.InvokeCommand=KM;A.InvokeMode=m5t;A.InvokeWithResponseStreamCommand=QM;A.KMSAccessDeniedException=U3e;A.KMSDisabledException=$3e;A.KMSInvalidStateException=j3e;A.KMSNotFoundException=H3e;A.KafkaSchemaRegistryAuthType=M8t;A.KafkaSchemaValidationAttribute=B8t;A.Lambda=R1;A.LambdaClient=Dr;A.LambdaServiceException=ke;A.LastUpdateStatus=u5t;A.LastUpdateStatusReasonCode=l5t;A.ListAliasesCommand=X0;A.ListCapacityProvidersCommand=J0;A.ListCodeSigningConfigsCommand=Y0;A.ListDurableExecutionsByFunctionCommand=Z0;A.ListEventSourceMappingsCommand=eR;A.ListFunctionEventInvokeConfigsCommand=tR;A.ListFunctionUrlConfigsCommand=sR;A.ListFunctionVersionsByCapacityProviderCommand=oR;A.ListFunctionsByCodeSigningConfigCommand=rR;A.ListFunctionsCommand=nR;A.ListLayerVersionsCommand=aR;A.ListLayersCommand=iR;A.ListProvisionedConcurrencyConfigsCommand=cR;A.ListTagsCommand=XM;A.ListVersionsByFunctionCommand=uR;A.LogFormat=t5t;A.LogType=S5t;A.NoPublishedVersionException=W3e;A.OperationAction=H8t;A.OperationStatus=W8t;A.OperationType=z8t;A.PackageType=n5t;A.PolicyLengthExceededException=UFe;A.PreconditionFailedException=$Fe;A.ProvisionedConcurrencyConfigNotFoundException=mBe;A.ProvisionedConcurrencyStatusEnum=_5t;A.PublishLayerVersionCommand=JM;A.PublishVersionCommand=YM;A.PutFunctionCodeSigningConfigCommand=ZM;A.PutFunctionConcurrencyCommand=e1;A.PutFunctionEventInvokeConfigCommand=t1;A.PutFunctionRecursionConfigCommand=r1;A.PutFunctionScalingConfigCommand=n1;A.PutProvisionedConcurrencyConfigCommand=s1;A.PutRuntimeManagementConfigCommand=o1;A.RecursiveInvocationException=Q3e;A.RecursiveLoop=g5t;A.RemoveLayerVersionPermissionCommand=i1;A.RemovePermissionCommand=a1;A.RequestTooLargeException=J3e;A.ResourceConflictException=jFe;A.ResourceInUseException=ZFe;A.ResourceNotFoundException=HFe;A.ResourceNotReadyException=Z3e;A.ResponseStreamingInvocationType=E5t;A.Runtime=o5t;A.SchemaRegistryEventRecordFormat=F8t;A.SendDurableExecutionCallbackFailureCommand=c1;A.SendDurableExecutionCallbackHeartbeatCommand=u1;A.SendDurableExecutionCallbackSuccessCommand=l1;A.SerializedRequestEntityTooLargeException=tBe;A.ServiceException=WFe;A.SnapStartApplyOn=i5t;A.SnapStartException=nBe;A.SnapStartNotReadyException=oBe;A.SnapStartOptimizationStatus=d5t;A.SnapStartTimeoutException=aBe;A.SourceAccessType=Z8t;A.State=V8t;A.StateReasonCode=p5t;A.StopDurableExecutionCommand=d1;A.SubnetIPAddressLimitReachedException=uBe;A.SystemLogLevel=r5t;A.TagResourceCommand=p1;A.TenantIsolationMode=a5t;A.ThrottleReason=N8t;A.TooManyRequestsException=QFe;A.TracingMode=c5t;A.UnsupportedMediaTypeException=dBe;A.UntagResourceCommand=m1;A.UpdateAliasCommand=g1;A.UpdateCapacityProviderCommand=f1;A.UpdateCodeSigningConfigCommand=h1;A.UpdateEventSourceMappingCommand=S1;A.UpdateFunctionCodeCommand=E1;A.UpdateFunctionConfigurationCommand=y1;A.UpdateFunctionEventInvokeConfigCommand=_1;A.UpdateFunctionUrlConfigCommand=C1;A.UpdateRuntimeOn=f5t;A.paginateGetDurableExecutionHistory=i8t;A.paginateGetDurableExecutionState=a8t;A.paginateListAliases=c8t;A.paginateListCapacityProviders=u8t;A.paginateListCodeSigningConfigs=l8t;A.paginateListDurableExecutionsByFunction=d8t;A.paginateListEventSourceMappings=p8t;A.paginateListFunctionEventInvokeConfigs=m8t;A.paginateListFunctionUrlConfigs=g8t;A.paginateListFunctionVersionsByCapacityProvider=f8t;A.paginateListFunctions=S8t;A.paginateListFunctionsByCodeSigningConfig=h8t;A.paginateListLayerVersions=E8t;A.paginateListLayers=y8t;A.paginateListProvisionedConcurrencyConfigs=_8t;A.paginateListVersionsByFunction=C8t;A.waitForFunctionActive=R8t;A.waitForFunctionActiveV2=x8t;A.waitForFunctionExists=b8t;A.waitForFunctionUpdated=A8t;A.waitForFunctionUpdatedV2=w8t;A.waitForPublishedVersionActive=O8t;A.waitUntilFunctionActive=v8t;A.waitUntilFunctionActiveV2=P8t;A.waitUntilFunctionExists=I8t;A.waitUntilFunctionUpdated=T8t;A.waitUntilFunctionUpdatedV2=D8t;A.waitUntilPublishedVersionActive=k8t});var Tqe=b(iF=>{"use strict";var v5t=require("@smithy/protocol-http");function Iqe(t){return e=>async r=>{let{request:n}=r;if(t.expectContinueHeader!==!1&&v5t.HttpRequest.isInstance(n)&&n.body&&t.runtime==="node"&&t.requestHandler?.constructor?.name!=="FetchHttpHandler"){let s=!0;if(typeof t.expectContinueHeader=="number")try{s=(Number(n.headers?.["content-length"])??t.bodyLengthChecker?.(n.body)??1/0)>=t.expectContinueHeader}catch{}else s=!!t.expectContinueHeader;s&&(n.headers.Expect="100-continue")}return e({...r,request:n})}}var Aqe={step:"build",tags:["SET_EXPECT_HEADER","EXPECT_HEADER"],name:"addExpectContinueMiddleware",override:!0},x5t=t=>({applyToStack:e=>{e.add(Iqe(t),Aqe)}});iF.addExpectContinueMiddleware=Iqe;iF.addExpectContinueMiddlewareOptions=Aqe;iF.getAddExpectContinuePlugin=x5t});var Dqe=b(aF=>{"use strict";Object.defineProperty(aF,"__esModule",{value:!0});aF.getCrc32ChecksumAlgorithmFunction=void 0;var P5t=require("tslib"),b5t=require("@aws-crypto/crc32"),I5t=require("@aws-crypto/util"),wqe=P5t.__importStar(require("zlib")),P5=class{checksum=0;update(e){this.checksum=wqe.crc32(e,this.checksum)}async digest(){return(0,I5t.numToUint8)(this.checksum)}reset(){this.checksum=0}},A5t=()=>typeof wqe.crc32>"u"?b5t.AwsCrc32:P5;aF.getCrc32ChecksumAlgorithmFunction=A5t});var D5=b(be=>{"use strict";var cu=(Dt(),ue(Fr)),kqe=require("@smithy/protocol-http"),Nqe=require("@smithy/util-stream"),T5t=require("@smithy/is-array-buffer"),w5t=require("@aws-crypto/crc32c"),D5t=Dqe(),O5t=require("@smithy/util-utf8"),Oqe=require("@smithy/util-middleware"),uu={WHEN_SUPPORTED:"WHEN_SUPPORTED",WHEN_REQUIRED:"WHEN_REQUIRED"},A5=uu.WHEN_SUPPORTED,wh={WHEN_SUPPORTED:"WHEN_SUPPORTED",WHEN_REQUIRED:"WHEN_REQUIRED"},T5=uu.WHEN_SUPPORTED;be.ChecksumAlgorithm=void 0;(function(t){t.MD5="MD5",t.CRC32="CRC32",t.CRC32C="CRC32C",t.CRC64NVME="CRC64NVME",t.SHA1="SHA1",t.SHA256="SHA256"})(be.ChecksumAlgorithm||(be.ChecksumAlgorithm={}));be.ChecksumLocation=void 0;(function(t){t.HEADER="header",t.TRAILER="trailer"})(be.ChecksumLocation||(be.ChecksumLocation={}));var cF=be.ChecksumAlgorithm.CRC32,Dh;(function(t){t.ENV="env",t.CONFIG="shared config entry"})(Dh||(Dh={}));var uF=(t,e,r,n)=>{if(!(e in t))return;let s=t[e].toUpperCase();if(!Object.values(r).includes(s))throw new TypeError(`Cannot load ${n} '${e}'. Expected one of ${Object.values(r)}, got '${t[e]}'.`);return s},Lqe="AWS_REQUEST_CHECKSUM_CALCULATION",Mqe="request_checksum_calculation",k5t={environmentVariableSelector:t=>uF(t,Lqe,uu,Dh.ENV),configFileSelector:t=>uF(t,Mqe,uu,Dh.CONFIG),default:A5},Fqe="AWS_RESPONSE_CHECKSUM_VALIDATION",Bqe="response_checksum_validation",N5t={environmentVariableSelector:t=>uF(t,Fqe,wh,Dh.ENV),configFileSelector:t=>uF(t,Bqe,wh,Dh.CONFIG),default:T5},b5={CrtCrc64Nvme:null},I5=[be.ChecksumAlgorithm.CRC32,be.ChecksumAlgorithm.CRC32C,be.ChecksumAlgorithm.CRC64NVME,be.ChecksumAlgorithm.SHA1,be.ChecksumAlgorithm.SHA256],L5t=[be.ChecksumAlgorithm.SHA256,be.ChecksumAlgorithm.SHA1,be.ChecksumAlgorithm.CRC32,be.ChecksumAlgorithm.CRC32C,be.ChecksumAlgorithm.CRC64NVME],M5t=(t,{requestChecksumRequired:e,requestAlgorithmMember:r,requestChecksumCalculation:n})=>{if(!r)return n===uu.WHEN_SUPPORTED||e?cF:void 0;if(!t[r])return;let s=t[r];if(!I5.includes(s))throw new Error(`The checksum algorithm "${s}" is not supported by the client. Select one of ${I5}.`);return s},w5=t=>t===be.ChecksumAlgorithm.MD5?"content-md5":`x-amz-checksum-${t.toLowerCase()}`,F5t=(t,e)=>{let r=t.toLowerCase();for(let n of Object.keys(e))if(r===n.toLowerCase())return!0;return!1},B5t=(t,e)=>{let r=t.toLowerCase();for(let n of Object.keys(e))if(n.toLowerCase().startsWith(r))return!0;return!1},Uqe=t=>t!==void 0&&typeof t!="string"&&!ArrayBuffer.isView(t)&&!T5t.isArrayBuffer(t),qqe=(t,e)=>{switch(t){case be.ChecksumAlgorithm.MD5:return e.md5;case be.ChecksumAlgorithm.CRC32:return D5t.getCrc32ChecksumAlgorithmFunction();case be.ChecksumAlgorithm.CRC32C:return w5t.AwsCrc32c;case be.ChecksumAlgorithm.CRC64NVME:if(typeof b5.CrtCrc64Nvme!="function")throw new Error(`Please check whether you have installed the "@aws-sdk/crc64-nvme-crt" package explicitly. -You must also register the package by calling [require("@aws-sdk/crc64-nvme-crt");] or an ESM equivalent such as [import "@aws-sdk/crc64-nvme-crt";]. -For more information please go to https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt`);return b5.CrtCrc64Nvme;case be.ChecksumAlgorithm.SHA1:return e.sha1;case be.ChecksumAlgorithm.SHA256:return e.sha256;default:throw new Error(`Unsupported checksum algorithm: ${t}`)}},$qe=(t,e)=>{let r=new t;return r.update(O5t.toUint8Array(e||"")),r.digest()},Gqe={name:"flexibleChecksumsMiddleware",step:"build",tags:["BODY_CHECKSUM"],override:!0},jqe=(t,e)=>(r,n)=>async s=>{if(!kqe.HttpRequest.isInstance(s.request)||B5t("x-amz-checksum-",s.request.headers))return r(s);let{request:o,input:i}=s,{body:a,headers:c}=o,{base64Encoder:u,streamHasher:l}=t,{requestChecksumRequired:d,requestAlgorithmMember:p}=e,g=await t.requestChecksumCalculation(),y=p?.name,R=p?.httpHeader;y&&!i[y]&&(g===uu.WHEN_SUPPORTED||d)&&(i[y]=cF,R&&(c[R]=cF));let D=M5t(i,{requestChecksumRequired:d,requestAlgorithmMember:p?.name,requestChecksumCalculation:g}),B=a,M=c;if(D){switch(D){case be.ChecksumAlgorithm.CRC32:cu.setFeature(n,"FLEXIBLE_CHECKSUMS_REQ_CRC32","U");break;case be.ChecksumAlgorithm.CRC32C:cu.setFeature(n,"FLEXIBLE_CHECKSUMS_REQ_CRC32C","V");break;case be.ChecksumAlgorithm.CRC64NVME:cu.setFeature(n,"FLEXIBLE_CHECKSUMS_REQ_CRC64","W");break;case be.ChecksumAlgorithm.SHA1:cu.setFeature(n,"FLEXIBLE_CHECKSUMS_REQ_SHA1","X");break;case be.ChecksumAlgorithm.SHA256:cu.setFeature(n,"FLEXIBLE_CHECKSUMS_REQ_SHA256","Y");break}let Y=w5(D),Te=qqe(D,t);if(Uqe(a)){let{getAwsChunkedEncodingStream:Ht,bodyLengthChecker:Tt}=t;B=Ht(typeof t.requestStreamBufferSize=="number"&&t.requestStreamBufferSize>=8*1024?Nqe.createBufferedReadable(a,t.requestStreamBufferSize,n.logger):a,{base64Encoder:u,bodyLengthChecker:Tt,checksumLocationName:Y,checksumAlgorithmFn:Te,streamHasher:l}),M={...c,"content-encoding":c["content-encoding"]?`${c["content-encoding"]},aws-chunked`:"aws-chunked","transfer-encoding":"chunked","x-amz-decoded-content-length":c["content-length"],"x-amz-content-sha256":"STREAMING-UNSIGNED-PAYLOAD-TRAILER","x-amz-trailer":Y},delete M["content-length"]}else if(!F5t(Y,c)){let Ht=await $qe(Te,a);M={...c,[Y]:u(Ht)}}}return await r({...s,request:{...o,headers:M,body:B}})},U5t={name:"flexibleChecksumsInputMiddleware",toMiddleware:"serializerMiddleware",relation:"before",tags:["BODY_CHECKSUM"],override:!0},q5t=(t,e)=>(r,n)=>async s=>{let o=s.input,{requestValidationModeMember:i}=e,a=await t.requestChecksumCalculation(),c=await t.responseChecksumValidation();switch(a){case uu.WHEN_REQUIRED:cu.setFeature(n,"FLEXIBLE_CHECKSUMS_REQ_WHEN_REQUIRED","a");break;case uu.WHEN_SUPPORTED:cu.setFeature(n,"FLEXIBLE_CHECKSUMS_REQ_WHEN_SUPPORTED","Z");break}switch(c){case wh.WHEN_REQUIRED:cu.setFeature(n,"FLEXIBLE_CHECKSUMS_RES_WHEN_REQUIRED","c");break;case wh.WHEN_SUPPORTED:cu.setFeature(n,"FLEXIBLE_CHECKSUMS_RES_WHEN_SUPPORTED","b");break}return i&&!o[i]&&c===wh.WHEN_SUPPORTED&&(o[i]="ENABLED"),r(s)},Vqe=(t=[])=>{let e=[];for(let r of L5t)!t.includes(r)||!I5.includes(r)||e.push(r);return e},$5t=t=>{let e=t.lastIndexOf("-");if(e!==-1){let r=t.slice(e+1);if(!r.startsWith("0")){let n=parseInt(r,10);if(!isNaN(n)&&n>=1&&n<=1e4)return!0}}return!1},G5t=async(t,{checksumAlgorithmFn:e,base64Encoder:r})=>r(await $qe(e,t)),j5t=async(t,{config:e,responseAlgorithms:r,logger:n})=>{let s=Vqe(r),{body:o,headers:i}=t;for(let a of s){let c=w5(a),u=i[c];if(u){let l;try{l=qqe(a,e)}catch(g){if(a===be.ChecksumAlgorithm.CRC64NVME){n?.warn(`Skipping ${be.ChecksumAlgorithm.CRC64NVME} checksum validation: ${g.message}`);continue}throw g}let{base64Encoder:d}=e;if(Uqe(o)){t.body=Nqe.createChecksumStream({expectedChecksum:u,checksumSourceLocation:c,checksum:new l,source:o,base64Encoder:d});return}let p=await G5t(o,{checksumAlgorithmFn:l,base64Encoder:d});if(p===u)break;throw new Error(`Checksum mismatch: expected "${p}" but received "${u}" in response header "${c}".`)}}},V5t={name:"flexibleChecksumsResponseMiddleware",toMiddleware:"deserializerMiddleware",relation:"after",tags:["BODY_CHECKSUM"],override:!0},H5t=(t,e)=>(r,n)=>async s=>{if(!kqe.HttpRequest.isInstance(s.request))return r(s);let o=s.input,i=await r(s),a=i.response,{requestValidationModeMember:c,responseAlgorithms:u}=e;if(c&&o[c]==="ENABLED"){let{clientName:l,commandName:d}=n;if(l==="S3Client"&&d==="GetObjectCommand"&&Vqe(u).every(g=>{let y=w5(g),R=a.headers[y];return!R||$5t(R)}))return i;await j5t(a,{config:t,responseAlgorithms:u,logger:n.logger})}return i},z5t=(t,e)=>({applyToStack:r=>{r.add(jqe(t,e),Gqe),r.addRelativeTo(q5t(t,e),U5t),r.addRelativeTo(H5t(t,e),V5t)}}),W5t=t=>{let{requestChecksumCalculation:e,responseChecksumValidation:r,requestStreamBufferSize:n}=t;return Object.assign(t,{requestChecksumCalculation:Oqe.normalizeProvider(e??A5),responseChecksumValidation:Oqe.normalizeProvider(r??T5),requestStreamBufferSize:Number(n??0)})};be.CONFIG_REQUEST_CHECKSUM_CALCULATION=Mqe;be.CONFIG_RESPONSE_CHECKSUM_VALIDATION=Bqe;be.DEFAULT_CHECKSUM_ALGORITHM=cF;be.DEFAULT_REQUEST_CHECKSUM_CALCULATION=A5;be.DEFAULT_RESPONSE_CHECKSUM_VALIDATION=T5;be.ENV_REQUEST_CHECKSUM_CALCULATION=Lqe;be.ENV_RESPONSE_CHECKSUM_VALIDATION=Fqe;be.NODE_REQUEST_CHECKSUM_CALCULATION_CONFIG_OPTIONS=k5t;be.NODE_RESPONSE_CHECKSUM_VALIDATION_CONFIG_OPTIONS=N5t;be.RequestChecksumCalculation=uu;be.ResponseChecksumValidation=wh;be.crc64NvmeCrtContainer=b5;be.flexibleChecksumsMiddleware=jqe;be.flexibleChecksumsMiddlewareOptions=Gqe;be.getFlexibleChecksumsPlugin=z5t;be.resolveFlexibleChecksumsConfig=W5t});var k5=b((vnn,zqe)=>{"use strict";var lF=Object.defineProperty,K5t=Object.getOwnPropertyDescriptor,Q5t=Object.getOwnPropertyNames,X5t=Object.prototype.hasOwnProperty,O5=(t,e)=>lF(t,"name",{value:e,configurable:!0}),J5t=(t,e)=>{for(var r in e)lF(t,r,{get:e[r],enumerable:!0})},Y5t=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of Q5t(e))!X5t.call(t,s)&&s!==r&&lF(t,s,{get:()=>e[s],enumerable:!(n=K5t(e,s))||n.enumerable});return t},Z5t=t=>Y5t(lF({},"__esModule",{value:!0}),t),Hqe={};J5t(Hqe,{build:()=>rQt,parse:()=>tQt,validate:()=>eQt});zqe.exports=Z5t(Hqe);var eQt=O5(t=>typeof t=="string"&&t.indexOf("arn:")===0&&t.split(":").length>=6,"validate"),tQt=O5(t=>{let e=t.split(":");if(e.length<6||e[0]!=="arn")throw new Error("Malformed ARN");let[,r,n,s,o,...i]=e;return{partition:r,service:n,region:s,accountId:o,resource:i.join(":")}},"parse"),rQt=O5(t=>{let{partition:e="aws",service:r,region:n,accountId:s,resource:o}=t;if([r,n,s,o].some(i=>typeof i!="string"))throw new Error("Input ARN object is invalid");return`arn:${e}:${r}:${n}:${s}:${o}`},"build")});var gF=b(Ct=>{"use strict";var ER=require("@smithy/protocol-http"),Xqe=require("@smithy/smithy-client"),nQt=require("@smithy/signature-v4"),dF=require("@smithy/util-config-provider"),sQt=(Dt(),ue(Fr)),Jqe=require("@smithy/core");require("@smithy/types");var oQt=require("@smithy/util-middleware"),Wqe=require("@smithy/util-stream"),iQt=k5(),aQt="content-length",cQt="x-amz-decoded-content-length";function Yqe(){return(t,e)=>async r=>{let{request:n}=r;if(ER.HttpRequest.isInstance(n)&&!(aQt in n.headers)&&!(cQt in n.headers)){let s="Are you using a Stream of unknown length as the Body of a PutObject request? Consider using Upload instead from @aws-sdk/lib-storage.";typeof e?.logger?.warn=="function"&&!(e.logger instanceof Xqe.NoOpLogger)?e.logger.warn(s):console.warn(s)}return t({...r})}}var Zqe={step:"finalizeRequest",tags:["CHECK_CONTENT_LENGTH_HEADER"],name:"getCheckContentLengthHeaderPlugin",override:!0},uQt=t=>({applyToStack:e=>{e.add(Yqe(),Zqe)}}),e$e=t=>(e,r)=>async n=>{let s=await t.region(),o=t.region,i=()=>{};r.__s3RegionRedirect&&(Object.defineProperty(t,"region",{writable:!1,value:async()=>r.__s3RegionRedirect}),i=()=>Object.defineProperty(t,"region",{writable:!0,value:o}));try{let a=await e(n);if(r.__s3RegionRedirect){i();let c=await t.region();if(s!==c)throw new Error("Region was not restored following S3 region redirect.")}return a}catch(a){throw i(),a}},t$e={tags:["REGION_REDIRECT","S3"],name:"regionRedirectEndpointMiddleware",override:!0,relation:"before",toMiddleware:"endpointV2Middleware"};function r$e(t){return(e,r)=>async n=>{try{return await e(n)}catch(s){if(t.followRegionRedirects){let o=s?.$metadata?.httpStatusCode,i=r.commandName==="HeadBucketCommand",a=s?.$response?.headers?.["x-amz-bucket-region"];if(a&&(o===301||o===400&&(s?.name==="IllegalLocationConstraintException"||i))){try{let c=a;r.logger?.debug(`Redirecting from ${await t.region()} to ${c}`),r.__s3RegionRedirect=c}catch(c){throw new Error("Region redirect failed: "+c)}return e(n)}}throw s}}}var n$e={step:"initialize",tags:["REGION_REDIRECT","S3"],name:"regionRedirectMiddleware",override:!0},lQt=t=>({applyToStack:e=>{e.add(r$e(t),n$e),e.addRelativeTo(e$e(t),t$e)}}),s$e=t=>(e,r)=>async n=>{let s=await e(n),{response:o}=s;if(ER.HttpResponse.isInstance(o)&&o.headers.expires){o.headers.expiresstring=o.headers.expires;try{Xqe.parseRfc7231DateTime(o.headers.expires)}catch(i){r.logger?.warn(`AWS SDK Warning for ${r.clientName}::${r.commandName} response parsing (${o.headers.expires}): ${i}`),delete o.headers.expires}}return s},o$e={tags:["S3"],name:"s3ExpiresMiddleware",override:!0,relation:"after",toMiddleware:"deserializerMiddleware"},dQt=t=>({applyToStack:e=>{e.addRelativeTo(s$e(),o$e)}}),pF=class t{data;lastPurgeTime=Date.now();static EXPIRED_CREDENTIAL_PURGE_INTERVAL_MS=3e4;constructor(e={}){this.data=e}get(e){let r=this.data[e];if(r)return r}set(e,r){return this.data[e]=r,r}delete(e){delete this.data[e]}async purgeExpired(){let e=Date.now();if(!(this.lastPurgeTime+t.EXPIRED_CREDENTIAL_PURGE_INTERVAL_MS>e))for(let r in this.data){let n=this.data[r];if(!n.isRefreshing){let s=await n.identity;s.expiration&&s.expiration.getTime()(i.expiration?.getTime()??0){s.set(n,new Oh(Promise.resolve(u)))})),i)):s.set(n,new Oh(this.getIdentity(n))).identity}async getIdentity(e){await this.cache.purgeExpired().catch(s=>{console.warn(`Error while clearing expired entries in S3ExpressIdentityCache: -`+s)});let r=await this.createSessionFn(e);if(!r.Credentials?.AccessKeyId||!r.Credentials?.SecretAccessKey)throw new Error("s3#createSession response credential missing AccessKeyId or SecretAccessKey.");return{accessKeyId:r.Credentials.AccessKeyId,secretAccessKey:r.Credentials.SecretAccessKey,sessionToken:r.Credentials.SessionToken,expiration:r.Credentials.Expiration?new Date(r.Credentials.Expiration):void 0}}},pQt="Directory",mQt="S3Express",gQt="sigv4-s3express",N5="X-Amz-S3session-Token",L5=N5.toLowerCase(),fQt="AWS_S3_DISABLE_EXPRESS_SESSION_AUTH",hQt="s3_disable_express_session_auth",SQt={environmentVariableSelector:t=>dF.booleanSelector(t,fQt,dF.SelectorType.ENV),configFileSelector:t=>dF.booleanSelector(t,hQt,dF.SelectorType.CONFIG),default:!1},M5=class extends nQt.SignatureV4{async signWithCredentials(e,r,n){let s=Kqe(r);e.headers[L5]=r.sessionToken;let o=this;return Qqe(o,s),o.signRequest(e,n??{})}async presignWithCredentials(e,r,n){let s=Kqe(r);return delete e.headers[L5],e.headers[N5]=r.sessionToken,e.query=e.query??{},e.query[N5]=r.sessionToken,Qqe(this,s),this.presign(e,n)}};function Kqe(t){return{accessKeyId:t.accessKeyId,secretAccessKey:t.secretAccessKey,expiration:t.expiration}}function Qqe(t,e){let r=setTimeout(()=>{throw new Error("SignatureV4S3Express credential override was created but not called.")},10),n=t.credentialProvider,s=()=>(clearTimeout(r),t.credentialProvider=n,Promise.resolve(e));t.credentialProvider=s}var i$e=t=>(e,r)=>async n=>{if(r.endpointV2){let s=r.endpointV2,o=s.properties?.authSchemes?.[0]?.name===gQt;if((s.properties?.backend===mQt||s.properties?.bucketType===pQt)&&(sQt.setFeature(r,"S3_EXPRESS_BUCKET","J"),r.isS3ExpressBucket=!0),o){let a=n.input.Bucket;if(a){let c=await t.s3ExpressIdentityProvider.getS3ExpressIdentity(await t.credentials(),{Bucket:a});r.s3ExpressIdentity=c,ER.HttpRequest.isInstance(n.request)&&c.sessionToken&&(n.request.headers[L5]=c.sessionToken)}}}return e(n)},a$e={name:"s3ExpressMiddleware",step:"build",tags:["S3","S3_EXPRESS"],override:!0},EQt=t=>({applyToStack:e=>{e.add(i$e(t),a$e)}}),yQt=async(t,e,r,n)=>{let s=await n.signWithCredentials(r,t,{});if(s.headers["X-Amz-Security-Token"]||s.headers["x-amz-security-token"])throw new Error("X-Amz-Security-Token must not be set for s3-express requests.");return s},_Qt=t=>e=>{throw e},CQt=(t,e)=>{},RQt=Jqe.httpSigningMiddlewareOptions,c$e=t=>(e,r)=>async n=>{if(!ER.HttpRequest.isInstance(n.request))return e(n);let o=oQt.getSmithyContext(r).selectedHttpAuthScheme;if(!o)throw new Error("No HttpAuthScheme was selected: unable to sign request");let{httpAuthOption:{signingProperties:i={}},identity:a,signer:c}=o,u;r.s3ExpressIdentity?u=await yQt(r.s3ExpressIdentity,i,n.request,await t.signer()):u=await c.sign(n.request,a,i);let l=await e({...n,request:u}).catch((c.errorHandler||_Qt)(i));return(c.successHandler||CQt)(l.response,i),l},vQt=t=>({applyToStack:e=>{e.addRelativeTo(c$e(t),Jqe.httpSigningMiddlewareOptions)}}),xQt=(t,{session:e})=>{let[r,n]=e,{forcePathStyle:s,useAccelerateEndpoint:o,disableMultiregionAccessPoints:i,followRegionRedirects:a,s3ExpressIdentityProvider:c,bucketEndpoint:u,expectContinueHeader:l}=t;return Object.assign(t,{forcePathStyle:s??!1,useAccelerateEndpoint:o??!1,disableMultiregionAccessPoints:i??!1,followRegionRedirects:a??!1,s3ExpressIdentityProvider:c??new mF(async d=>r().send(new n({Bucket:d}))),bucketEndpoint:u??!1,expectContinueHeader:l??2097152})},PQt={CopyObjectCommand:!0,UploadPartCopyCommand:!0,CompleteMultipartUploadCommand:!0},bQt=3e3,u$e=t=>(e,r)=>async n=>{let s=await e(n),{response:o}=s;if(!ER.HttpResponse.isInstance(o))return s;let{statusCode:i,body:a}=o;if(i<200||i>=300||!(typeof a?.stream=="function"||typeof a?.pipe=="function"||typeof a?.tee=="function"))return s;let u=a,l=a;a&&typeof a=="object"&&!(a instanceof Uint8Array)&&([u,l]=await Wqe.splitStream(a)),o.body=l;let d=await IQt(u,{streamCollector:async g=>Wqe.headStream(g,bQt)});typeof u?.destroy=="function"&&u.destroy();let p=t.utf8Encoder(d.subarray(d.length-16));if(d.length===0&&PQt[r.commandName]){let g=new Error("S3 aborted request");throw g.name="InternalError",g}return p&&p.endsWith("")&&(o.statusCode=400),s},IQt=(t=new Uint8Array,e)=>t instanceof Uint8Array?Promise.resolve(t):e.streamCollector(t)||Promise.resolve(new Uint8Array),l$e={relation:"after",toMiddleware:"deserializerMiddleware",tags:["THROW_200_EXCEPTIONS","S3"],name:"throw200ExceptionsMiddleware",override:!0},AQt=t=>({applyToStack:e=>{e.addRelativeTo(u$e(t),l$e)}});function TQt(t){return(e,r)=>async n=>{if(t.bucketEndpoint){let s=r.endpointV2;if(s){let o=n.input.Bucket;if(typeof o=="string")try{let i=new URL(o);r.endpointV2={...s,url:i}}catch(i){let a=`@aws-sdk/middleware-sdk-s3: bucketEndpoint=true was set but Bucket=${o} could not be parsed as URL.`;throw r.logger?.constructor?.name==="NoOpLogger"?console.warn(a):r.logger?.warn?.(a),i}}}return e(n)}}var wQt={name:"bucketEndpointMiddleware",override:!0,relation:"after",toMiddleware:"endpointV2Middleware"};function d$e({bucketEndpoint:t}){return e=>async r=>{let{input:{Bucket:n}}=r;if(!t&&typeof n=="string"&&!iQt.validate(n)&&n.indexOf("/")>=0){let s=new Error(`Bucket name shouldn't contain '/', received '${n}'`);throw s.name="InvalidBucketName",s}return e({...r})}}var p$e={step:"initialize",tags:["VALIDATE_BUCKET_NAME"],name:"validateBucketNameMiddleware",override:!0},DQt=t=>({applyToStack:e=>{e.add(d$e(t),p$e),e.addRelativeTo(TQt(t),wQt)}});Ct.NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_OPTIONS=SQt;Ct.S3ExpressIdentityCache=pF;Ct.S3ExpressIdentityCacheEntry=Oh;Ct.S3ExpressIdentityProviderImpl=mF;Ct.SignatureV4S3Express=M5;Ct.checkContentLengthHeader=Yqe;Ct.checkContentLengthHeaderMiddlewareOptions=Zqe;Ct.getCheckContentLengthHeaderPlugin=uQt;Ct.getRegionRedirectMiddlewarePlugin=lQt;Ct.getS3ExpiresMiddlewarePlugin=dQt;Ct.getS3ExpressHttpSigningPlugin=vQt;Ct.getS3ExpressPlugin=EQt;Ct.getThrow200ExceptionsPlugin=AQt;Ct.getValidateBucketNamePlugin=DQt;Ct.regionRedirectEndpointMiddleware=e$e;Ct.regionRedirectEndpointMiddlewareOptions=t$e;Ct.regionRedirectMiddleware=r$e;Ct.regionRedirectMiddlewareOptions=n$e;Ct.resolveS3Config=xQt;Ct.s3ExpiresMiddleware=s$e;Ct.s3ExpiresMiddlewareOptions=o$e;Ct.s3ExpressHttpSigningMiddleware=c$e;Ct.s3ExpressHttpSigningMiddlewareOptions=RQt;Ct.s3ExpressMiddleware=i$e;Ct.s3ExpressMiddlewareOptions=a$e;Ct.throw200ExceptionsMiddleware=u$e;Ct.throw200ExceptionsMiddlewareOptions=l$e;Ct.validateBucketNameMiddleware=d$e;Ct.validateBucketNameMiddlewareOptions=p$e});var U5=b(B5=>{"use strict";var OQt=gF(),m$e=require("@smithy/signature-v4"),yR={CrtSignerV4:null},F5=class{sigv4aSigner;sigv4Signer;signerOptions;static sigv4aDependency(){return typeof yR.CrtSignerV4=="function"?"crt":typeof m$e.signatureV4aContainer.SignatureV4a=="function"?"js":"none"}constructor(e){this.sigv4Signer=new OQt.SignatureV4S3Express(e),this.signerOptions=e}async sign(e,r={}){return r.signingRegion==="*"?this.getSigv4aSigner().sign(e,r):this.sigv4Signer.sign(e,r)}async signWithCredentials(e,r,n={}){if(n.signingRegion==="*"){let s=this.getSigv4aSigner(),o=yR.CrtSignerV4;if(o&&s instanceof o)return s.signWithCredentials(e,r,n);throw new Error(`signWithCredentials with signingRegion '*' is only supported when using the CRT dependency @aws-sdk/signature-v4-crt. Please check whether you have installed the "@aws-sdk/signature-v4-crt" package explicitly. You must also register the package by calling [require("@aws-sdk/signature-v4-crt");] or an ESM equivalent such as [import "@aws-sdk/signature-v4-crt";]. For more information please go to https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt`)}return this.sigv4Signer.signWithCredentials(e,r,n)}async presign(e,r={}){if(r.signingRegion==="*"){let n=this.getSigv4aSigner(),s=yR.CrtSignerV4;if(s&&n instanceof s)return n.presign(e,r);throw new Error(`presign with signingRegion '*' is only supported when using the CRT dependency @aws-sdk/signature-v4-crt. Please check whether you have installed the "@aws-sdk/signature-v4-crt" package explicitly. You must also register the package by calling [require("@aws-sdk/signature-v4-crt");] or an ESM equivalent such as [import "@aws-sdk/signature-v4-crt";]. For more information please go to https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt`)}return this.sigv4Signer.presign(e,r)}async presignWithCredentials(e,r,n={}){if(n.signingRegion==="*")throw new Error("Method presignWithCredentials is not supported for [signingRegion=*].");return this.sigv4Signer.presignWithCredentials(e,r,n)}getSigv4aSigner(){if(!this.sigv4aSigner){let e=yR.CrtSignerV4,r=m$e.signatureV4aContainer.SignatureV4a;if(this.signerOptions.runtime==="node"){if(!e&&!r)throw new Error("Neither CRT nor JS SigV4a implementation is available. Please load either @aws-sdk/signature-v4-crt or @aws-sdk/signature-v4a. For more information please go to https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt");if(e&&typeof e=="function")this.sigv4aSigner=new e({...this.signerOptions,signingAlgorithm:1});else if(r&&typeof r=="function")this.sigv4aSigner=new r({...this.signerOptions});else throw new Error("Available SigV4a implementation is not a valid constructor. Please ensure you've properly imported @aws-sdk/signature-v4-crt or @aws-sdk/signature-v4a.For more information please go to https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt")}else{if(!r||typeof r!="function")throw new Error("JS SigV4a implementation is not available or not a valid constructor. Please check whether you have installed the @aws-sdk/signature-v4a package explicitly. The CRT implementation is not available for browsers. You must also register the package by calling [require('@aws-sdk/signature-v4a');] or an ESM equivalent such as [import '@aws-sdk/signature-v4a';]. For more information please go to https://github.com/aws/aws-sdk-js-v3#using-javascript-non-crt-implementation-of-sigv4a");this.sigv4aSigner=new r({...this.signerOptions})}}return this.sigv4aSigner}};B5.SignatureV4MultiRegion=F5;B5.signatureV4CrtContainer=yR});var qGe=b(xF=>{"use strict";Object.defineProperty(xF,"__esModule",{value:!0});xF.ruleSet=void 0;var lQ="required",v="type",F="rules",P="conditions",k="fn",N="argv",me="ref",qe="assign",ie="url",ae="properties",lu="backend",en="authSchemes",kr="disableDoubleEncoding",Nr="signingName",fn="signingRegion",ce="headers",dQ="signingRegionSet",kQt=6,NQt=!1,Ya=!0,go="isSet",Cr="booleanEquals",de="error",_F="aws.partition",it="stringEquals",ir="getAttr",ar="name",Ut="substring",g$e="bucketSuffix",pQ="parseURL",q="endpoint",U="tree",CF="aws.isVirtualHostableS3Bucket",RF="{url#scheme}://{Bucket}.{url#authority}{url#path}",tc="not",f$e="accessPointSuffix",yF="{url#scheme}://{url#authority}{url#path}",xGe="hardwareType",PGe="regionPrefix",h$e="bucketAliasSuffix",cQ="outpostId",Xp="isValidHostLabel",mQ="sigv4a",bR="s3-outposts",Mh="s3",bGe="{url#scheme}://{url#authority}{url#normalizedPath}{Bucket}",IGe="https://{Bucket}.s3-accelerate.{partitionResult#dnsSuffix}",S$e="https://{Bucket}.s3.{partitionResult#dnsSuffix}",AGe="aws.parseArn",TGe="bucketArn",wGe="arnType",vF="",gQ="s3-object-lambda",DGe="accesspoint",fQ="accessPointName",E$e="{url#scheme}://{accessPointName}-{bucketArn#accountId}.{url#authority}{url#path}",y$e="mrapPartition",_$e="outpostType",C$e="arnPrefix",OGe="{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}",R$e="https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",v$e="https://s3.{partitionResult#dnsSuffix}",kh={[lQ]:!1,[v]:"string"},Nh={[lQ]:!0,default:!1,[v]:"boolean"},_R={[lQ]:!1,[v]:"boolean"},ci={[k]:Cr,[N]:[{[me]:"Accelerate"},!0]},Gt={[k]:Cr,[N]:[{[me]:"UseFIPS"},!0]},kt={[k]:Cr,[N]:[{[me]:"UseDualStack"},!0]},_r={[k]:go,[N]:[{[me]:"Endpoint"}]},kGe={[k]:_F,[N]:[{[me]:"Region"}],[qe]:"partitionResult"},x$e={[k]:it,[N]:[{[k]:ir,[N]:[{[me]:"partitionResult"},ar]},"aws-cn"]},RR={[k]:go,[N]:[{[me]:"Bucket"}]},nt={[me]:"Bucket"},P$e={[P]:[ci],[de]:"S3Express does not support S3 Accelerate.",[v]:de},b$e={[P]:[_r,{[k]:pQ,[N]:[{[me]:"Endpoint"}],[qe]:"url"}],[F]:[{[P]:[{[k]:go,[N]:[{[me]:"DisableS3ExpressSessionAuth"}]},{[k]:Cr,[N]:[{[me]:"DisableS3ExpressSessionAuth"},!0]}],[F]:[{[P]:[{[k]:Cr,[N]:[{[k]:ir,[N]:[{[me]:"url"},"isIp"]},!0]}],[F]:[{[P]:[{[k]:"uriEncode",[N]:[nt],[qe]:"uri_encoded_bucket"}],[F]:[{[q]:{[ie]:"{url#scheme}://{url#authority}/{uri_encoded_bucket}{url#path}",[ae]:{[lu]:"S3Express",[en]:[{[kr]:!0,[ar]:"sigv4",[Nr]:"s3express",[fn]:"{Region}"}]},[ce]:{}},[v]:q}],[v]:U}],[v]:U},{[P]:[{[k]:CF,[N]:[nt,!1]}],[F]:[{[q]:{[ie]:RF,[ae]:{[lu]:"S3Express",[en]:[{[kr]:!0,[ar]:"sigv4",[Nr]:"s3express",[fn]:"{Region}"}]},[ce]:{}},[v]:q}],[v]:U},{[de]:"S3Express bucket name is not a valid virtual hostable name.",[v]:de}],[v]:U},{[P]:[{[k]:Cr,[N]:[{[k]:ir,[N]:[{[me]:"url"},"isIp"]},!0]}],[F]:[{[P]:[{[k]:"uriEncode",[N]:[nt],[qe]:"uri_encoded_bucket"}],[F]:[{[q]:{[ie]:"{url#scheme}://{url#authority}/{uri_encoded_bucket}{url#path}",[ae]:{[lu]:"S3Express",[en]:[{[kr]:!0,[ar]:"sigv4-s3express",[Nr]:"s3express",[fn]:"{Region}"}]},[ce]:{}},[v]:q}],[v]:U}],[v]:U},{[P]:[{[k]:CF,[N]:[nt,!1]}],[F]:[{[q]:{[ie]:RF,[ae]:{[lu]:"S3Express",[en]:[{[kr]:!0,[ar]:"sigv4-s3express",[Nr]:"s3express",[fn]:"{Region}"}]},[ce]:{}},[v]:q}],[v]:U},{[de]:"S3Express bucket name is not a valid virtual hostable name.",[v]:de}],[v]:U},rs={[k]:pQ,[N]:[{[me]:"Endpoint"}],[qe]:"url"},q5={[k]:Cr,[N]:[{[k]:ir,[N]:[{[me]:"url"},"isIp"]},!0]},NGe={[me]:"url"},LGe={[k]:"uriEncode",[N]:[nt],[qe]:"uri_encoded_bucket"},mo={[lu]:"S3Express",[en]:[{[kr]:!0,[ar]:"sigv4",[Nr]:"s3express",[fn]:"{Region}"}]},Ie={},MGe={[k]:CF,[N]:[nt,!1]},I$e={[de]:"S3Express bucket name is not a valid virtual hostable name.",[v]:de},A$e={[k]:go,[N]:[{[me]:"UseS3ExpressControlEndpoint"}]},T$e={[k]:Cr,[N]:[{[me]:"UseS3ExpressControlEndpoint"},!0]},Be={[k]:tc,[N]:[_r]},Je={[k]:Cr,[N]:[{[me]:"UseDualStack"},!1]},He={[k]:Cr,[N]:[{[me]:"UseFIPS"},!1]},fF={[de]:"Unrecognized S3Express bucket name format.",[v]:de},w$e={[k]:tc,[N]:[RR]},D$e={[me]:xGe},O$e={[P]:[Be],[de]:"Expected a endpoint to be specified but no endpoint was found",[v]:de},hF={[en]:[{[kr]:!0,[ar]:mQ,[Nr]:bR,[dQ]:["*"]},{[kr]:!0,[ar]:"sigv4",[Nr]:bR,[fn]:"{Region}"}]},$5={[k]:Cr,[N]:[{[me]:"ForcePathStyle"},!1]},LQt={[me]:"ForcePathStyle"},Or={[k]:Cr,[N]:[{[me]:"Accelerate"},!1]},qr={[k]:it,[N]:[{[me]:"Region"},"aws-global"]},Jr={[en]:[{[kr]:!0,[ar]:"sigv4",[Nr]:Mh,[fn]:"us-east-1"}]},et={[k]:tc,[N]:[qr]},Yr={[k]:Cr,[N]:[{[me]:"UseGlobalEndpoint"},!0]},k$e={[ie]:"https://{Bucket}.s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}",[ae]:{[en]:[{[kr]:!0,[ar]:"sigv4",[Nr]:Mh,[fn]:"{Region}"}]},[ce]:{}},Lr={[en]:[{[kr]:!0,[ar]:"sigv4",[Nr]:Mh,[fn]:"{Region}"}]},Zr={[k]:Cr,[N]:[{[me]:"UseGlobalEndpoint"},!1]},N$e={[ie]:"https://{Bucket}.s3-fips.{Region}.{partitionResult#dnsSuffix}",[ae]:Lr,[ce]:{}},L$e={[ie]:"https://{Bucket}.s3-accelerate.dualstack.{partitionResult#dnsSuffix}",[ae]:Lr,[ce]:{}},M$e={[ie]:"https://{Bucket}.s3.dualstack.{Region}.{partitionResult#dnsSuffix}",[ae]:Lr,[ce]:{}},G5={[k]:Cr,[N]:[{[k]:ir,[N]:[NGe,"isIp"]},!1]},j5={[ie]:bGe,[ae]:Lr,[ce]:{}},uQ={[ie]:RF,[ae]:Lr,[ce]:{}},F$e={[q]:uQ,[v]:q},V5={[ie]:IGe,[ae]:Lr,[ce]:{}},B$e={[ie]:"https://{Bucket}.s3.{Region}.{partitionResult#dnsSuffix}",[ae]:Lr,[ce]:{}},SF={[de]:"Invalid region: region was not a valid DNS name.",[v]:de},Os={[me]:TGe},FGe={[me]:wGe},H5={[k]:ir,[N]:[Os,"service"]},hQ={[me]:fQ},U$e={[P]:[kt],[de]:"S3 Object Lambda does not support Dual-stack",[v]:de},q$e={[P]:[ci],[de]:"S3 Object Lambda does not support S3 Accelerate",[v]:de},$$e={[P]:[{[k]:go,[N]:[{[me]:"DisableAccessPoints"}]},{[k]:Cr,[N]:[{[me]:"DisableAccessPoints"},!0]}],[de]:"Access points are not supported for this operation",[v]:de},z5={[P]:[{[k]:go,[N]:[{[me]:"UseArnRegion"}]},{[k]:Cr,[N]:[{[me]:"UseArnRegion"},!1]},{[k]:tc,[N]:[{[k]:it,[N]:[{[k]:ir,[N]:[Os,"region"]},"{Region}"]}]}],[de]:"Invalid configuration: region from ARN `{bucketArn#region}` does not match client region `{Region}` and UseArnRegion is `false`",[v]:de},BGe={[k]:ir,[N]:[{[me]:"bucketPartition"},ar]},UGe={[k]:ir,[N]:[Os,"accountId"]},W5={[en]:[{[kr]:!0,[ar]:"sigv4",[Nr]:gQ,[fn]:"{bucketArn#region}"}]},G$e={[de]:"Invalid ARN: The access point name may only contain a-z, A-Z, 0-9 and `-`. Found: `{accessPointName}`",[v]:de},K5={[de]:"Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `{bucketArn#accountId}`",[v]:de},Q5={[de]:"Invalid region in ARN: `{bucketArn#region}` (invalid DNS name)",[v]:de},X5={[de]:"Client was configured for partition `{partitionResult#name}` but ARN (`{Bucket}`) has `{bucketPartition#name}`",[v]:de},j$e={[de]:"Invalid ARN: The ARN may only contain a single resource component after `accesspoint`.",[v]:de},V$e={[de]:"Invalid ARN: Expected a resource of the format `accesspoint:` but no name was provided",[v]:de},CR={[en]:[{[kr]:!0,[ar]:"sigv4",[Nr]:Mh,[fn]:"{bucketArn#region}"}]},H$e={[en]:[{[kr]:!0,[ar]:mQ,[Nr]:bR,[dQ]:["*"]},{[kr]:!0,[ar]:"sigv4",[Nr]:bR,[fn]:"{bucketArn#region}"}]},z$e={[k]:AGe,[N]:[nt]},W$e={[ie]:"https://s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",[ae]:Lr,[ce]:{}},K$e={[ie]:"https://s3-fips.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",[ae]:Lr,[ce]:{}},Q$e={[ie]:"https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",[ae]:Lr,[ce]:{}},J5={[ie]:OGe,[ae]:Lr,[ce]:{}},X$e={[ie]:"https://s3.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",[ae]:Lr,[ce]:{}},J$e={[me]:"UseObjectLambdaEndpoint"},Y5={[en]:[{[kr]:!0,[ar]:"sigv4",[Nr]:gQ,[fn]:"{Region}"}]},Y$e={[ie]:"https://s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}",[ae]:Lr,[ce]:{}},Z$e={[ie]:"https://s3-fips.{Region}.{partitionResult#dnsSuffix}",[ae]:Lr,[ce]:{}},eGe={[ie]:"https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}",[ae]:Lr,[ce]:{}},Z5={[ie]:yF,[ae]:Lr,[ce]:{}},tGe={[ie]:"https://s3.{Region}.{partitionResult#dnsSuffix}",[ae]:Lr,[ce]:{}},eQ=[{[me]:"Region"}],MQt=[{[me]:"Endpoint"}],FQt=[nt],tQ=[ci],Lh=[_r,rs],rGe=[{[k]:go,[N]:[{[me]:"DisableS3ExpressSessionAuth"}]},{[k]:Cr,[N]:[{[me]:"DisableS3ExpressSessionAuth"},!0]}],BQt=[LGe],nGe=[MGe],ai=[kGe],rQ=[Gt,kt],vR=[Gt,Je],xR=[He,kt],PR=[He,Je],sGe=[{[k]:Ut,[N]:[nt,6,14,!0],[qe]:"s3expressAvailabilityZoneId"},{[k]:Ut,[N]:[nt,14,16,!0],[qe]:"s3expressAvailabilityZoneDelim"},{[k]:it,[N]:[{[me]:"s3expressAvailabilityZoneDelim"},"--"]}],Za=[{[P]:[Gt,kt],[q]:{[ie]:"https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}",[ae]:mo,[ce]:{}},[v]:q},{[P]:vR,[q]:{[ie]:"https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}",[ae]:mo,[ce]:{}},[v]:q},{[P]:xR,[q]:{[ie]:"https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}",[ae]:mo,[ce]:{}},[v]:q},{[P]:PR,[q]:{[ie]:"https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}",[ae]:mo,[ce]:{}},[v]:q}],oGe=[{[k]:Ut,[N]:[nt,6,15,!0],[qe]:"s3expressAvailabilityZoneId"},{[k]:Ut,[N]:[nt,15,17,!0],[qe]:"s3expressAvailabilityZoneDelim"},{[k]:it,[N]:[{[me]:"s3expressAvailabilityZoneDelim"},"--"]}],iGe=[{[k]:Ut,[N]:[nt,6,19,!0],[qe]:"s3expressAvailabilityZoneId"},{[k]:Ut,[N]:[nt,19,21,!0],[qe]:"s3expressAvailabilityZoneDelim"},{[k]:it,[N]:[{[me]:"s3expressAvailabilityZoneDelim"},"--"]}],aGe=[{[k]:Ut,[N]:[nt,6,20,!0],[qe]:"s3expressAvailabilityZoneId"},{[k]:Ut,[N]:[nt,20,22,!0],[qe]:"s3expressAvailabilityZoneDelim"},{[k]:it,[N]:[{[me]:"s3expressAvailabilityZoneDelim"},"--"]}],cGe=[{[k]:Ut,[N]:[nt,6,26,!0],[qe]:"s3expressAvailabilityZoneId"},{[k]:Ut,[N]:[nt,26,28,!0],[qe]:"s3expressAvailabilityZoneDelim"},{[k]:it,[N]:[{[me]:"s3expressAvailabilityZoneDelim"},"--"]}],ec=[{[P]:[Gt,kt],[q]:{[ie]:"https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}",[ae]:{[lu]:"S3Express",[en]:[{[kr]:!0,[ar]:"sigv4-s3express",[Nr]:"s3express",[fn]:"{Region}"}]},[ce]:{}},[v]:q},{[P]:vR,[q]:{[ie]:"https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}",[ae]:{[lu]:"S3Express",[en]:[{[kr]:!0,[ar]:"sigv4-s3express",[Nr]:"s3express",[fn]:"{Region}"}]},[ce]:{}},[v]:q},{[P]:xR,[q]:{[ie]:"https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}",[ae]:{[lu]:"S3Express",[en]:[{[kr]:!0,[ar]:"sigv4-s3express",[Nr]:"s3express",[fn]:"{Region}"}]},[ce]:{}},[v]:q},{[P]:PR,[q]:{[ie]:"https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}",[ae]:{[lu]:"S3Express",[en]:[{[kr]:!0,[ar]:"sigv4-s3express",[Nr]:"s3express",[fn]:"{Region}"}]},[ce]:{}},[v]:q}],uGe=[nt,0,7,!0],lGe=[{[k]:Ut,[N]:[nt,7,15,!0],[qe]:"s3expressAvailabilityZoneId"},{[k]:Ut,[N]:[nt,15,17,!0],[qe]:"s3expressAvailabilityZoneDelim"},{[k]:it,[N]:[{[me]:"s3expressAvailabilityZoneDelim"},"--"]}],dGe=[{[k]:Ut,[N]:[nt,7,16,!0],[qe]:"s3expressAvailabilityZoneId"},{[k]:Ut,[N]:[nt,16,18,!0],[qe]:"s3expressAvailabilityZoneDelim"},{[k]:it,[N]:[{[me]:"s3expressAvailabilityZoneDelim"},"--"]}],pGe=[{[k]:Ut,[N]:[nt,7,20,!0],[qe]:"s3expressAvailabilityZoneId"},{[k]:Ut,[N]:[nt,20,22,!0],[qe]:"s3expressAvailabilityZoneDelim"},{[k]:it,[N]:[{[me]:"s3expressAvailabilityZoneDelim"},"--"]}],mGe=[{[k]:Ut,[N]:[nt,7,21,!0],[qe]:"s3expressAvailabilityZoneId"},{[k]:Ut,[N]:[nt,21,23,!0],[qe]:"s3expressAvailabilityZoneDelim"},{[k]:it,[N]:[{[me]:"s3expressAvailabilityZoneDelim"},"--"]}],gGe=[{[k]:Ut,[N]:[nt,7,27,!0],[qe]:"s3expressAvailabilityZoneId"},{[k]:Ut,[N]:[nt,27,29,!0],[qe]:"s3expressAvailabilityZoneDelim"},{[k]:it,[N]:[{[me]:"s3expressAvailabilityZoneDelim"},"--"]}],UQt=[RR],fGe=[{[k]:Xp,[N]:[{[me]:cQ},!1]}],hGe=[{[k]:it,[N]:[{[me]:PGe},"beta"]}],qQt=["*"],SGe=[{[k]:Xp,[N]:[{[me]:"Region"},!1]}],td=[{[k]:it,[N]:[{[me]:"Region"},"us-east-1"]}],nQ=[{[k]:it,[N]:[FGe,DGe]}],EGe=[{[k]:ir,[N]:[Os,"resourceId[1]"],[qe]:fQ},{[k]:tc,[N]:[{[k]:it,[N]:[hQ,vF]}]}],$Qt=[Os,"resourceId[1]"],yGe=[kt],sQ=[{[k]:tc,[N]:[{[k]:it,[N]:[{[k]:ir,[N]:[Os,"region"]},vF]}]}],_Ge=[{[k]:tc,[N]:[{[k]:go,[N]:[{[k]:ir,[N]:[Os,"resourceId[2]"]}]}]}],GQt=[Os,"resourceId[2]"],oQ=[{[k]:_F,[N]:[{[k]:ir,[N]:[Os,"region"]}],[qe]:"bucketPartition"}],CGe=[{[k]:it,[N]:[BGe,{[k]:ir,[N]:[{[me]:"partitionResult"},ar]}]}],iQ=[{[k]:Xp,[N]:[{[k]:ir,[N]:[Os,"region"]},!0]}],aQ=[{[k]:Xp,[N]:[UGe,!1]}],RGe=[{[k]:Xp,[N]:[hQ,!1]}],EF=[Gt],vGe=[{[k]:Xp,[N]:[{[me]:"Region"},!0]}],jQt={version:"1.0",parameters:{Bucket:kh,Region:kh,UseFIPS:Nh,UseDualStack:Nh,Endpoint:kh,ForcePathStyle:Nh,Accelerate:Nh,UseGlobalEndpoint:Nh,UseObjectLambdaEndpoint:_R,Key:kh,Prefix:kh,CopySource:kh,DisableAccessPoints:_R,DisableMultiRegionAccessPoints:Nh,UseArnRegion:_R,UseS3ExpressControlEndpoint:_R,DisableS3ExpressSessionAuth:_R},[F]:[{[P]:[{[k]:go,[N]:eQ}],[F]:[{[P]:[ci,Gt],error:"Accelerate cannot be used with FIPS",[v]:de},{[P]:[kt,_r],error:"Cannot set dual-stack in combination with a custom endpoint.",[v]:de},{[P]:[_r,Gt],error:"A custom endpoint cannot be combined with FIPS",[v]:de},{[P]:[_r,ci],error:"A custom endpoint cannot be combined with S3 Accelerate",[v]:de},{[P]:[Gt,kGe,x$e],error:"Partition does not support FIPS",[v]:de},{[P]:[RR,{[k]:Ut,[N]:[nt,0,kQt,Ya],[qe]:g$e},{[k]:it,[N]:[{[me]:g$e},"--x-s3"]}],[F]:[P$e,b$e,{[P]:[A$e,T$e],[F]:[{[P]:ai,[F]:[{[P]:[LGe,Be],[F]:[{[P]:rQ,endpoint:{[ie]:"https://s3express-control-fips.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",[ae]:mo,[ce]:Ie},[v]:q},{[P]:vR,endpoint:{[ie]:"https://s3express-control-fips.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",[ae]:mo,[ce]:Ie},[v]:q},{[P]:xR,endpoint:{[ie]:"https://s3express-control.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",[ae]:mo,[ce]:Ie},[v]:q},{[P]:PR,endpoint:{[ie]:"https://s3express-control.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",[ae]:mo,[ce]:Ie},[v]:q}],[v]:U}],[v]:U}],[v]:U},{[P]:nGe,[F]:[{[P]:ai,[F]:[{[P]:rGe,[F]:[{[P]:sGe,[F]:Za,[v]:U},{[P]:oGe,[F]:Za,[v]:U},{[P]:iGe,[F]:Za,[v]:U},{[P]:aGe,[F]:Za,[v]:U},{[P]:cGe,[F]:Za,[v]:U},fF],[v]:U},{[P]:sGe,[F]:ec,[v]:U},{[P]:oGe,[F]:ec,[v]:U},{[P]:iGe,[F]:ec,[v]:U},{[P]:aGe,[F]:ec,[v]:U},{[P]:cGe,[F]:ec,[v]:U},fF],[v]:U}],[v]:U},I$e],[v]:U},{[P]:[RR,{[k]:Ut,[N]:uGe,[qe]:f$e},{[k]:it,[N]:[{[me]:f$e},"--xa-s3"]}],[F]:[P$e,b$e,{[P]:nGe,[F]:[{[P]:ai,[F]:[{[P]:rGe,[F]:[{[P]:lGe,[F]:Za,[v]:U},{[P]:dGe,[F]:Za,[v]:U},{[P]:pGe,[F]:Za,[v]:U},{[P]:mGe,[F]:Za,[v]:U},{[P]:gGe,[F]:Za,[v]:U},fF],[v]:U},{[P]:lGe,[F]:ec,[v]:U},{[P]:dGe,[F]:ec,[v]:U},{[P]:pGe,[F]:ec,[v]:U},{[P]:mGe,[F]:ec,[v]:U},{[P]:gGe,[F]:ec,[v]:U},fF],[v]:U}],[v]:U},I$e],[v]:U},{[P]:[w$e,A$e,T$e],[F]:[{[P]:ai,[F]:[{[P]:Lh,endpoint:{[ie]:yF,[ae]:mo,[ce]:Ie},[v]:q},{[P]:rQ,endpoint:{[ie]:"https://s3express-control-fips.dualstack.{Region}.{partitionResult#dnsSuffix}",[ae]:mo,[ce]:Ie},[v]:q},{[P]:vR,endpoint:{[ie]:"https://s3express-control-fips.{Region}.{partitionResult#dnsSuffix}",[ae]:mo,[ce]:Ie},[v]:q},{[P]:xR,endpoint:{[ie]:"https://s3express-control.dualstack.{Region}.{partitionResult#dnsSuffix}",[ae]:mo,[ce]:Ie},[v]:q},{[P]:PR,endpoint:{[ie]:"https://s3express-control.{Region}.{partitionResult#dnsSuffix}",[ae]:mo,[ce]:Ie},[v]:q}],[v]:U}],[v]:U},{[P]:[RR,{[k]:Ut,[N]:[nt,49,50,Ya],[qe]:xGe},{[k]:Ut,[N]:[nt,8,12,Ya],[qe]:PGe},{[k]:Ut,[N]:uGe,[qe]:h$e},{[k]:Ut,[N]:[nt,32,49,Ya],[qe]:cQ},{[k]:_F,[N]:eQ,[qe]:"regionPartition"},{[k]:it,[N]:[{[me]:h$e},"--op-s3"]}],[F]:[{[P]:fGe,[F]:[{[P]:[{[k]:it,[N]:[D$e,"e"]}],[F]:[{[P]:hGe,[F]:[O$e,{[P]:Lh,endpoint:{[ie]:"https://{Bucket}.ec2.{url#authority}",[ae]:hF,[ce]:Ie},[v]:q}],[v]:U},{endpoint:{[ie]:"https://{Bucket}.ec2.s3-outposts.{Region}.{regionPartition#dnsSuffix}",[ae]:hF,[ce]:Ie},[v]:q}],[v]:U},{[P]:[{[k]:it,[N]:[D$e,"o"]}],[F]:[{[P]:hGe,[F]:[O$e,{[P]:Lh,endpoint:{[ie]:"https://{Bucket}.op-{outpostId}.{url#authority}",[ae]:hF,[ce]:Ie},[v]:q}],[v]:U},{endpoint:{[ie]:"https://{Bucket}.op-{outpostId}.s3-outposts.{Region}.{regionPartition#dnsSuffix}",[ae]:hF,[ce]:Ie},[v]:q}],[v]:U},{error:'Unrecognized hardware type: "Expected hardware type o or e but got {hardwareType}"',[v]:de}],[v]:U},{error:"Invalid ARN: The outpost Id must only contain a-z, A-Z, 0-9 and `-`.",[v]:de}],[v]:U},{[P]:UQt,[F]:[{[P]:[_r,{[k]:tc,[N]:[{[k]:go,[N]:[{[k]:pQ,[N]:MQt}]}]}],error:"Custom endpoint `{Endpoint}` was not a valid URI",[v]:de},{[P]:[$5,MGe],[F]:[{[P]:ai,[F]:[{[P]:SGe,[F]:[{[P]:[ci,x$e],error:"S3 Accelerate cannot be used in this region",[v]:de},{[P]:[kt,Gt,Or,Be,qr],endpoint:{[ie]:"https://{Bucket}.s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}",[ae]:Jr,[ce]:Ie},[v]:q},{[P]:[kt,Gt,Or,Be,et,Yr],[F]:[{endpoint:k$e,[v]:q}],[v]:U},{[P]:[kt,Gt,Or,Be,et,Zr],endpoint:k$e,[v]:q},{[P]:[Je,Gt,Or,Be,qr],endpoint:{[ie]:"https://{Bucket}.s3-fips.us-east-1.{partitionResult#dnsSuffix}",[ae]:Jr,[ce]:Ie},[v]:q},{[P]:[Je,Gt,Or,Be,et,Yr],[F]:[{endpoint:N$e,[v]:q}],[v]:U},{[P]:[Je,Gt,Or,Be,et,Zr],endpoint:N$e,[v]:q},{[P]:[kt,He,ci,Be,qr],endpoint:{[ie]:"https://{Bucket}.s3-accelerate.dualstack.us-east-1.{partitionResult#dnsSuffix}",[ae]:Jr,[ce]:Ie},[v]:q},{[P]:[kt,He,ci,Be,et,Yr],[F]:[{endpoint:L$e,[v]:q}],[v]:U},{[P]:[kt,He,ci,Be,et,Zr],endpoint:L$e,[v]:q},{[P]:[kt,He,Or,Be,qr],endpoint:{[ie]:"https://{Bucket}.s3.dualstack.us-east-1.{partitionResult#dnsSuffix}",[ae]:Jr,[ce]:Ie},[v]:q},{[P]:[kt,He,Or,Be,et,Yr],[F]:[{endpoint:M$e,[v]:q}],[v]:U},{[P]:[kt,He,Or,Be,et,Zr],endpoint:M$e,[v]:q},{[P]:[Je,He,Or,_r,rs,q5,qr],endpoint:{[ie]:bGe,[ae]:Jr,[ce]:Ie},[v]:q},{[P]:[Je,He,Or,_r,rs,G5,qr],endpoint:{[ie]:RF,[ae]:Jr,[ce]:Ie},[v]:q},{[P]:[Je,He,Or,_r,rs,q5,et,Yr],[F]:[{[P]:td,endpoint:j5,[v]:q},{endpoint:j5,[v]:q}],[v]:U},{[P]:[Je,He,Or,_r,rs,G5,et,Yr],[F]:[{[P]:td,endpoint:uQ,[v]:q},F$e],[v]:U},{[P]:[Je,He,Or,_r,rs,q5,et,Zr],endpoint:j5,[v]:q},{[P]:[Je,He,Or,_r,rs,G5,et,Zr],endpoint:uQ,[v]:q},{[P]:[Je,He,ci,Be,qr],endpoint:{[ie]:IGe,[ae]:Jr,[ce]:Ie},[v]:q},{[P]:[Je,He,ci,Be,et,Yr],[F]:[{[P]:td,endpoint:V5,[v]:q},{endpoint:V5,[v]:q}],[v]:U},{[P]:[Je,He,ci,Be,et,Zr],endpoint:V5,[v]:q},{[P]:[Je,He,Or,Be,qr],endpoint:{[ie]:S$e,[ae]:Jr,[ce]:Ie},[v]:q},{[P]:[Je,He,Or,Be,et,Yr],[F]:[{[P]:td,endpoint:{[ie]:S$e,[ae]:Lr,[ce]:Ie},[v]:q},{endpoint:B$e,[v]:q}],[v]:U},{[P]:[Je,He,Or,Be,et,Zr],endpoint:B$e,[v]:q}],[v]:U},SF],[v]:U}],[v]:U},{[P]:[_r,rs,{[k]:it,[N]:[{[k]:ir,[N]:[NGe,"scheme"]},"http"]},{[k]:CF,[N]:[nt,Ya]},$5,He,Je,Or],[F]:[{[P]:ai,[F]:[{[P]:SGe,[F]:[F$e],[v]:U},SF],[v]:U}],[v]:U},{[P]:[$5,{[k]:AGe,[N]:FQt,[qe]:TGe}],[F]:[{[P]:[{[k]:ir,[N]:[Os,"resourceId[0]"],[qe]:wGe},{[k]:tc,[N]:[{[k]:it,[N]:[FGe,vF]}]}],[F]:[{[P]:[{[k]:it,[N]:[H5,gQ]}],[F]:[{[P]:nQ,[F]:[{[P]:EGe,[F]:[U$e,q$e,{[P]:sQ,[F]:[$$e,{[P]:_Ge,[F]:[z5,{[P]:oQ,[F]:[{[P]:ai,[F]:[{[P]:CGe,[F]:[{[P]:iQ,[F]:[{[P]:[{[k]:it,[N]:[UGe,vF]}],error:"Invalid ARN: Missing account id",[v]:de},{[P]:aQ,[F]:[{[P]:RGe,[F]:[{[P]:Lh,endpoint:{[ie]:E$e,[ae]:W5,[ce]:Ie},[v]:q},{[P]:EF,endpoint:{[ie]:"https://{accessPointName}-{bucketArn#accountId}.s3-object-lambda-fips.{bucketArn#region}.{bucketPartition#dnsSuffix}",[ae]:W5,[ce]:Ie},[v]:q},{endpoint:{[ie]:"https://{accessPointName}-{bucketArn#accountId}.s3-object-lambda.{bucketArn#region}.{bucketPartition#dnsSuffix}",[ae]:W5,[ce]:Ie},[v]:q}],[v]:U},G$e],[v]:U},K5],[v]:U},Q5],[v]:U},X5],[v]:U}],[v]:U}],[v]:U},j$e],[v]:U},{error:"Invalid ARN: bucket ARN is missing a region",[v]:de}],[v]:U},V$e],[v]:U},{error:"Invalid ARN: Object Lambda ARNs only support `accesspoint` arn types, but found: `{arnType}`",[v]:de}],[v]:U},{[P]:nQ,[F]:[{[P]:EGe,[F]:[{[P]:sQ,[F]:[{[P]:nQ,[F]:[{[P]:sQ,[F]:[$$e,{[P]:_Ge,[F]:[z5,{[P]:oQ,[F]:[{[P]:ai,[F]:[{[P]:[{[k]:it,[N]:[BGe,"{partitionResult#name}"]}],[F]:[{[P]:iQ,[F]:[{[P]:[{[k]:it,[N]:[H5,Mh]}],[F]:[{[P]:aQ,[F]:[{[P]:RGe,[F]:[{[P]:tQ,error:"Access Points do not support S3 Accelerate",[v]:de},{[P]:rQ,endpoint:{[ie]:"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint-fips.dualstack.{bucketArn#region}.{bucketPartition#dnsSuffix}",[ae]:CR,[ce]:Ie},[v]:q},{[P]:vR,endpoint:{[ie]:"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint-fips.{bucketArn#region}.{bucketPartition#dnsSuffix}",[ae]:CR,[ce]:Ie},[v]:q},{[P]:xR,endpoint:{[ie]:"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint.dualstack.{bucketArn#region}.{bucketPartition#dnsSuffix}",[ae]:CR,[ce]:Ie},[v]:q},{[P]:[He,Je,_r,rs],endpoint:{[ie]:E$e,[ae]:CR,[ce]:Ie},[v]:q},{[P]:PR,endpoint:{[ie]:"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint.{bucketArn#region}.{bucketPartition#dnsSuffix}",[ae]:CR,[ce]:Ie},[v]:q}],[v]:U},G$e],[v]:U},K5],[v]:U},{error:"Invalid ARN: The ARN was not for the S3 service, found: {bucketArn#service}",[v]:de}],[v]:U},Q5],[v]:U},X5],[v]:U}],[v]:U}],[v]:U},j$e],[v]:U}],[v]:U}],[v]:U},{[P]:[{[k]:Xp,[N]:[hQ,Ya]}],[F]:[{[P]:yGe,error:"S3 MRAP does not support dual-stack",[v]:de},{[P]:EF,error:"S3 MRAP does not support FIPS",[v]:de},{[P]:tQ,error:"S3 MRAP does not support S3 Accelerate",[v]:de},{[P]:[{[k]:Cr,[N]:[{[me]:"DisableMultiRegionAccessPoints"},Ya]}],error:"Invalid configuration: Multi-Region Access Point ARNs are disabled.",[v]:de},{[P]:[{[k]:_F,[N]:eQ,[qe]:y$e}],[F]:[{[P]:[{[k]:it,[N]:[{[k]:ir,[N]:[{[me]:y$e},ar]},{[k]:ir,[N]:[Os,"partition"]}]}],[F]:[{endpoint:{[ie]:"https://{accessPointName}.accesspoint.s3-global.{mrapPartition#dnsSuffix}",[ae]:{[en]:[{[kr]:Ya,name:mQ,[Nr]:Mh,[dQ]:qQt}]},[ce]:Ie},[v]:q}],[v]:U},{error:"Client was configured for partition `{mrapPartition#name}` but bucket referred to partition `{bucketArn#partition}`",[v]:de}],[v]:U}],[v]:U},{error:"Invalid Access Point Name",[v]:de}],[v]:U},V$e],[v]:U},{[P]:[{[k]:it,[N]:[H5,bR]}],[F]:[{[P]:yGe,error:"S3 Outposts does not support Dual-stack",[v]:de},{[P]:EF,error:"S3 Outposts does not support FIPS",[v]:de},{[P]:tQ,error:"S3 Outposts does not support S3 Accelerate",[v]:de},{[P]:[{[k]:go,[N]:[{[k]:ir,[N]:[Os,"resourceId[4]"]}]}],error:"Invalid Arn: Outpost Access Point ARN contains sub resources",[v]:de},{[P]:[{[k]:ir,[N]:$Qt,[qe]:cQ}],[F]:[{[P]:fGe,[F]:[z5,{[P]:oQ,[F]:[{[P]:ai,[F]:[{[P]:CGe,[F]:[{[P]:iQ,[F]:[{[P]:aQ,[F]:[{[P]:[{[k]:ir,[N]:GQt,[qe]:_$e}],[F]:[{[P]:[{[k]:ir,[N]:[Os,"resourceId[3]"],[qe]:fQ}],[F]:[{[P]:[{[k]:it,[N]:[{[me]:_$e},DGe]}],[F]:[{[P]:Lh,endpoint:{[ie]:"https://{accessPointName}-{bucketArn#accountId}.{outpostId}.{url#authority}",[ae]:H$e,[ce]:Ie},[v]:q},{endpoint:{[ie]:"https://{accessPointName}-{bucketArn#accountId}.{outpostId}.s3-outposts.{bucketArn#region}.{bucketPartition#dnsSuffix}",[ae]:H$e,[ce]:Ie},[v]:q}],[v]:U},{error:"Expected an outpost type `accesspoint`, found {outpostType}",[v]:de}],[v]:U},{error:"Invalid ARN: expected an access point name",[v]:de}],[v]:U},{error:"Invalid ARN: Expected a 4-component resource",[v]:de}],[v]:U},K5],[v]:U},Q5],[v]:U},X5],[v]:U}],[v]:U}],[v]:U},{error:"Invalid ARN: The outpost Id may only contain a-z, A-Z, 0-9 and `-`. Found: `{outpostId}`",[v]:de}],[v]:U},{error:"Invalid ARN: The Outpost Id was not set",[v]:de}],[v]:U},{error:"Invalid ARN: Unrecognized format: {Bucket} (type: {arnType})",[v]:de}],[v]:U},{error:"Invalid ARN: No ARN type specified",[v]:de}],[v]:U},{[P]:[{[k]:Ut,[N]:[nt,0,4,NQt],[qe]:C$e},{[k]:it,[N]:[{[me]:C$e},"arn:"]},{[k]:tc,[N]:[{[k]:go,[N]:[z$e]}]}],error:"Invalid ARN: `{Bucket}` was not a valid ARN",[v]:de},{[P]:[{[k]:Cr,[N]:[LQt,Ya]},z$e],error:"Path-style addressing cannot be used with ARN buckets",[v]:de},{[P]:BQt,[F]:[{[P]:ai,[F]:[{[P]:[Or],[F]:[{[P]:[kt,Be,Gt,qr],endpoint:{[ie]:"https://s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",[ae]:Jr,[ce]:Ie},[v]:q},{[P]:[kt,Be,Gt,et,Yr],[F]:[{endpoint:W$e,[v]:q}],[v]:U},{[P]:[kt,Be,Gt,et,Zr],endpoint:W$e,[v]:q},{[P]:[Je,Be,Gt,qr],endpoint:{[ie]:"https://s3-fips.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",[ae]:Jr,[ce]:Ie},[v]:q},{[P]:[Je,Be,Gt,et,Yr],[F]:[{endpoint:K$e,[v]:q}],[v]:U},{[P]:[Je,Be,Gt,et,Zr],endpoint:K$e,[v]:q},{[P]:[kt,Be,He,qr],endpoint:{[ie]:"https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",[ae]:Jr,[ce]:Ie},[v]:q},{[P]:[kt,Be,He,et,Yr],[F]:[{endpoint:Q$e,[v]:q}],[v]:U},{[P]:[kt,Be,He,et,Zr],endpoint:Q$e,[v]:q},{[P]:[Je,_r,rs,He,qr],endpoint:{[ie]:OGe,[ae]:Jr,[ce]:Ie},[v]:q},{[P]:[Je,_r,rs,He,et,Yr],[F]:[{[P]:td,endpoint:J5,[v]:q},{endpoint:J5,[v]:q}],[v]:U},{[P]:[Je,_r,rs,He,et,Zr],endpoint:J5,[v]:q},{[P]:[Je,Be,He,qr],endpoint:{[ie]:R$e,[ae]:Jr,[ce]:Ie},[v]:q},{[P]:[Je,Be,He,et,Yr],[F]:[{[P]:td,endpoint:{[ie]:R$e,[ae]:Lr,[ce]:Ie},[v]:q},{endpoint:X$e,[v]:q}],[v]:U},{[P]:[Je,Be,He,et,Zr],endpoint:X$e,[v]:q}],[v]:U},{error:"Path-style addressing cannot be used with S3 Accelerate",[v]:de}],[v]:U}],[v]:U}],[v]:U},{[P]:[{[k]:go,[N]:[J$e]},{[k]:Cr,[N]:[J$e,Ya]}],[F]:[{[P]:ai,[F]:[{[P]:vGe,[F]:[U$e,q$e,{[P]:Lh,endpoint:{[ie]:yF,[ae]:Y5,[ce]:Ie},[v]:q},{[P]:EF,endpoint:{[ie]:"https://s3-object-lambda-fips.{Region}.{partitionResult#dnsSuffix}",[ae]:Y5,[ce]:Ie},[v]:q},{endpoint:{[ie]:"https://s3-object-lambda.{Region}.{partitionResult#dnsSuffix}",[ae]:Y5,[ce]:Ie},[v]:q}],[v]:U},SF],[v]:U}],[v]:U},{[P]:[w$e],[F]:[{[P]:ai,[F]:[{[P]:vGe,[F]:[{[P]:[Gt,kt,Be,qr],endpoint:{[ie]:"https://s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}",[ae]:Jr,[ce]:Ie},[v]:q},{[P]:[Gt,kt,Be,et,Yr],[F]:[{endpoint:Y$e,[v]:q}],[v]:U},{[P]:[Gt,kt,Be,et,Zr],endpoint:Y$e,[v]:q},{[P]:[Gt,Je,Be,qr],endpoint:{[ie]:"https://s3-fips.us-east-1.{partitionResult#dnsSuffix}",[ae]:Jr,[ce]:Ie},[v]:q},{[P]:[Gt,Je,Be,et,Yr],[F]:[{endpoint:Z$e,[v]:q}],[v]:U},{[P]:[Gt,Je,Be,et,Zr],endpoint:Z$e,[v]:q},{[P]:[He,kt,Be,qr],endpoint:{[ie]:"https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}",[ae]:Jr,[ce]:Ie},[v]:q},{[P]:[He,kt,Be,et,Yr],[F]:[{endpoint:eGe,[v]:q}],[v]:U},{[P]:[He,kt,Be,et,Zr],endpoint:eGe,[v]:q},{[P]:[He,Je,_r,rs,qr],endpoint:{[ie]:yF,[ae]:Jr,[ce]:Ie},[v]:q},{[P]:[He,Je,_r,rs,et,Yr],[F]:[{[P]:td,endpoint:Z5,[v]:q},{endpoint:Z5,[v]:q}],[v]:U},{[P]:[He,Je,_r,rs,et,Zr],endpoint:Z5,[v]:q},{[P]:[He,Je,Be,qr],endpoint:{[ie]:v$e,[ae]:Jr,[ce]:Ie},[v]:q},{[P]:[He,Je,Be,et,Yr],[F]:[{[P]:td,endpoint:{[ie]:v$e,[ae]:Lr,[ce]:Ie},[v]:q},{endpoint:tGe,[v]:q}],[v]:U},{[P]:[He,Je,Be,et,Zr],endpoint:tGe,[v]:q}],[v]:U},SF],[v]:U}],[v]:U}],[v]:U},{error:"A region must be set when sending requests to S3.",[v]:de}]};xF.ruleSet=jQt});var EQ=b(PF=>{"use strict";Object.defineProperty(PF,"__esModule",{value:!0});PF.defaultEndpointResolver=void 0;var VQt=Ta(),SQ=require("@smithy/util-endpoints"),HQt=qGe(),zQt=new SQ.EndpointCache({size:50,params:["Accelerate","Bucket","DisableAccessPoints","DisableMultiRegionAccessPoints","DisableS3ExpressSessionAuth","Endpoint","ForcePathStyle","Region","UseArnRegion","UseDualStack","UseFIPS","UseGlobalEndpoint","UseObjectLambdaEndpoint","UseS3ExpressControlEndpoint"]}),WQt=(t,e={})=>zQt.get(t,()=>(0,SQ.resolveEndpoint)(HQt.ruleSet,{endpointParams:t,logger:e.logger}));PF.defaultEndpointResolver=WQt;SQ.customEndpointFunctions.aws=VQt.awsEndpointFunctions});var yQ=b(rd=>{"use strict";Object.defineProperty(rd,"__esModule",{value:!0});rd.resolveHttpAuthSchemeConfig=rd.defaultS3HttpAuthSchemeProvider=rd.defaultS3HttpAuthSchemeParametersProvider=void 0;var $Ge=(Dt(),ue(Fr)),KQt=U5(),QQt=require("@smithy/middleware-endpoint"),bF=require("@smithy/util-middleware"),XQt=EQ(),JQt=t=>async(e,r,n)=>{if(!n)throw new Error("Could not find `input` for `defaultEndpointRuleSetHttpAuthSchemeParametersProvider`");let s=await t(e,r,n),o=(0,bF.getSmithyContext)(r)?.commandInstance?.constructor?.getEndpointParameterInstructions;if(!o)throw new Error(`getEndpointParameterInstructions() is not defined on \`${r.commandName}\``);let i=await(0,QQt.resolveParams)(n,{getEndpointParameterInstructions:o},e);return Object.assign(s,i)},YQt=async(t,e,r)=>({operation:(0,bF.getSmithyContext)(e).operation,region:await(0,bF.normalizeProvider)(t.region)()||(()=>{throw new Error("expected `region` to be configured for `aws.auth#sigv4`")})()});rd.defaultS3HttpAuthSchemeParametersProvider=JQt(YQt);function GGe(t){return{schemeId:"aws.auth#sigv4",signingProperties:{name:"s3",region:t.region},propertiesExtractor:(e,r)=>({signingProperties:{config:e,context:r}})}}function jGe(t){return{schemeId:"aws.auth#sigv4a",signingProperties:{name:"s3",region:t.region},propertiesExtractor:(e,r)=>({signingProperties:{config:e,context:r}})}}var ZQt=(t,e,r)=>s=>{let i=t(s).properties?.authSchemes;if(!i)return e(s);let a=[];for(let c of i){let{name:u,properties:l={},...d}=c,p=u.toLowerCase();u!==p&&console.warn(`HttpAuthScheme has been normalized with lowercasing: \`${u}\` to \`${p}\``);let g;if(p==="sigv4a"){g="aws.auth#sigv4a";let D=i.find(B=>{let M=B.name.toLowerCase();return M!=="sigv4a"&&M.startsWith("sigv4")});if(KQt.SignatureV4MultiRegion.sigv4aDependency()==="none"&&D)continue}else if(p.startsWith("sigv4"))g="aws.auth#sigv4";else throw new Error(`Unknown HttpAuthScheme found in \`@smithy.rules#endpointRuleSet\`: \`${p}\``);let y=r[g];if(!y)throw new Error(`Could not find HttpAuthOption create function for \`${g}\``);let R=y(s);R.schemeId=g,R.signingProperties={...R.signingProperties||{},...d,...l},a.push(R)}return a},eXt=t=>{let e=[];switch(t.operation){default:e.push(GGe(t)),e.push(jGe(t))}return e};rd.defaultS3HttpAuthSchemeProvider=ZQt(XQt.defaultEndpointResolver,eXt,{"aws.auth#sigv4":GGe,"aws.auth#sigv4a":jGe});var tXt=t=>{let e=(0,$Ge.resolveAwsSdkSigV4Config)(t),r=(0,$Ge.resolveAwsSdkSigV4AConfig)(e);return Object.assign(r,{authSchemePreference:(0,bF.normalizeProvider)(t.authSchemePreference??[])})};rd.resolveHttpAuthSchemeConfig=tXt});var VGe=b((Tnn,rXt)=>{rXt.exports={name:"@aws-sdk/client-s3",description:"AWS SDK for JavaScript S3 Client for Node.js, Browser and React Native",version:"3.952.0",scripts:{build:"concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types'","build:cjs":"node ../../scripts/compilation/inline client-s3","build:es":"tsc -p tsconfig.es.json","build:include:deps":"lerna run --scope $npm_package_name --include-dependencies build","build:types":"tsc -p tsconfig.types.json","build:types:downlevel":"downlevel-dts dist-types dist-types/ts3.4",clean:"rimraf ./dist-* && rimraf *.tsbuildinfo","extract:docs":"api-extractor run --local","generate:client":"node ../../scripts/generate-clients/single-service --solo s3",test:"yarn g:vitest run","test:browser":"node ./test/browser-build/esbuild && yarn g:vitest run -c vitest.config.browser.mts","test:browser:watch":"node ./test/browser-build/esbuild && yarn g:vitest watch -c vitest.config.browser.mts","test:e2e":"yarn g:vitest run -c vitest.config.e2e.mts && yarn test:browser","test:e2e:watch":"yarn g:vitest watch -c vitest.config.e2e.mts","test:index":"tsc --noEmit ./test/index-types.ts && node ./test/index-objects.spec.mjs","test:integration":"yarn g:vitest run -c vitest.config.integ.mts","test:integration:watch":"yarn g:vitest watch -c vitest.config.integ.mts","test:watch":"yarn g:vitest watch"},main:"./dist-cjs/index.js",types:"./dist-types/index.d.ts",module:"./dist-es/index.js",sideEffects:!1,dependencies:{"@aws-crypto/sha1-browser":"5.2.0","@aws-crypto/sha256-browser":"5.2.0","@aws-crypto/sha256-js":"5.2.0","@aws-sdk/core":"3.947.0","@aws-sdk/credential-provider-node":"3.952.0","@aws-sdk/middleware-bucket-endpoint":"3.936.0","@aws-sdk/middleware-expect-continue":"3.936.0","@aws-sdk/middleware-flexible-checksums":"3.947.0","@aws-sdk/middleware-host-header":"3.936.0","@aws-sdk/middleware-location-constraint":"3.936.0","@aws-sdk/middleware-logger":"3.936.0","@aws-sdk/middleware-recursion-detection":"3.948.0","@aws-sdk/middleware-sdk-s3":"3.947.0","@aws-sdk/middleware-ssec":"3.936.0","@aws-sdk/middleware-user-agent":"3.947.0","@aws-sdk/region-config-resolver":"3.936.0","@aws-sdk/signature-v4-multi-region":"3.947.0","@aws-sdk/types":"3.936.0","@aws-sdk/util-endpoints":"3.936.0","@aws-sdk/util-user-agent-browser":"3.936.0","@aws-sdk/util-user-agent-node":"3.947.0","@smithy/config-resolver":"^4.4.3","@smithy/core":"^3.18.7","@smithy/eventstream-serde-browser":"^4.2.5","@smithy/eventstream-serde-config-resolver":"^4.3.5","@smithy/eventstream-serde-node":"^4.2.5","@smithy/fetch-http-handler":"^5.3.6","@smithy/hash-blob-browser":"^4.2.6","@smithy/hash-node":"^4.2.5","@smithy/hash-stream-node":"^4.2.5","@smithy/invalid-dependency":"^4.2.5","@smithy/md5-js":"^4.2.5","@smithy/middleware-content-length":"^4.2.5","@smithy/middleware-endpoint":"^4.3.14","@smithy/middleware-retry":"^4.4.14","@smithy/middleware-serde":"^4.2.6","@smithy/middleware-stack":"^4.2.5","@smithy/node-config-provider":"^4.3.5","@smithy/node-http-handler":"^4.4.5","@smithy/protocol-http":"^5.3.5","@smithy/smithy-client":"^4.9.10","@smithy/types":"^4.9.0","@smithy/url-parser":"^4.2.5","@smithy/util-base64":"^4.3.0","@smithy/util-body-length-browser":"^4.2.0","@smithy/util-body-length-node":"^4.2.1","@smithy/util-defaults-mode-browser":"^4.3.13","@smithy/util-defaults-mode-node":"^4.2.16","@smithy/util-endpoints":"^3.2.5","@smithy/util-middleware":"^4.2.5","@smithy/util-retry":"^4.2.5","@smithy/util-stream":"^4.5.6","@smithy/util-utf8":"^4.2.0","@smithy/util-waiter":"^4.2.5",tslib:"^2.6.2"},devDependencies:{"@aws-sdk/signature-v4-crt":"3.947.0","@tsconfig/node18":"18.2.4","@types/node":"^18.19.69",concurrently:"7.0.0","downlevel-dts":"0.10.1",rimraf:"3.0.2",typescript:"~5.8.3"},engines:{node:">=18.0.0"},typesVersions:{"<4.0":{"dist-types/*":["dist-types/ts3.4/*"]}},files:["dist-*/**"],author:{name:"AWS SDK for JavaScript Team",url:"https://aws.amazon.com/javascript/"},license:"Apache-2.0",browser:{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.browser"},"react-native":{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.native"},homepage:"https://github.com/aws/aws-sdk-js-v3/tree/main/clients/client-s3",repository:{type:"git",url:"https://github.com/aws/aws-sdk-js-v3.git",directory:"clients/client-s3"}}});var a2e=b(Rr=>{"use strict";var nd=require("@smithy/util-config-provider"),HGe=k5(),nXt=require("@smithy/protocol-http"),zGe="AWS_S3_DISABLE_MULTIREGION_ACCESS_POINTS",WGe="s3_disable_multiregion_access_points",sXt={environmentVariableSelector:t=>nd.booleanSelector(t,zGe,nd.SelectorType.ENV),configFileSelector:t=>nd.booleanSelector(t,WGe,nd.SelectorType.CONFIG),default:!1},KGe="AWS_S3_USE_ARN_REGION",QGe="s3_use_arn_region",oXt={environmentVariableSelector:t=>nd.booleanSelector(t,KGe,nd.SelectorType.ENV),configFileSelector:t=>nd.booleanSelector(t,QGe,nd.SelectorType.CONFIG),default:void 0},iXt=/^[a-z0-9][a-z0-9\.\-]{1,61}[a-z0-9]$/,aXt=/(\d+\.){3}\d+/,cXt=/\.\./,XGe=/\./,uXt=/^(.+\.)?s3(-fips)?(\.dualstack)?[.-]([a-z0-9-]+)\./,JGe=/^s3(-external-1)?\.amazonaws\.com$/,_Q="amazonaws.com",lXt=t=>typeof t.bucketName=="string",dXt=t=>iXt.test(t)&&!aXt.test(t)&&!cXt.test(t),YGe=t=>{let e=t.match(uXt);return[e[4],t.replace(new RegExp(`^${e[0]}`),"")]},pXt=t=>JGe.test(t)?["us-east-1",_Q]:YGe(t),ZGe=t=>JGe.test(t)?[t.replace(`.${_Q}`,""),_Q]:YGe(t),mXt=t=>{if(t.pathStyleEndpoint)throw new Error("Path-style S3 endpoint is not supported when bucket is an ARN");if(t.accelerateEndpoint)throw new Error("Accelerate endpoint is not supported when bucket is an ARN");if(!t.tlsCompatible)throw new Error("HTTPS is required when bucket is an ARN")},gXt=t=>{if(t!=="s3"&&t!=="s3-outposts"&&t!=="s3-object-lambda")throw new Error("Expect 's3' or 's3-outposts' or 's3-object-lambda' in ARN service component")},fXt=t=>{if(t!=="s3")throw new Error("Expect 's3' in Accesspoint ARN service component")},e2e=t=>{if(t!=="s3-outposts")throw new Error("Expect 's3-posts' in Outpost ARN service component")},t2e=(t,e)=>{if(t!==e.clientPartition)throw new Error(`Partition in ARN is incompatible, got "${t}" but expected "${e.clientPartition}"`)},hXt=(t,e)=>{},RQ=t=>{if(["s3-external-1","aws-global"].includes(t))throw new Error(`Client region ${t} is not regional`)},r2e=t=>{if(!/[0-9]{12}/.exec(t))throw new Error("Access point ARN accountID does not match regex '[0-9]{12}'")},Fh=(t,e={tlsCompatible:!0})=>{if(t.length>=64||!/^[a-z0-9][a-z0-9.-]*[a-z0-9]$/.test(t)||/(\d+\.){3}\d+/.test(t)||/[.-]{2}/.test(t)||e?.tlsCompatible&&XGe.test(t))throw new Error(`Invalid DNS label ${t}`)},SXt=t=>{if(t.isCustomEndpoint){if(t.dualstackEndpoint)throw new Error("Dualstack endpoint is not supported with custom endpoint");if(t.accelerateEndpoint)throw new Error("Accelerate endpoint is not supported with custom endpoint")}},n2e=t=>{let e=t.includes(":")?":":"/",[r,...n]=t.split(e);if(r==="accesspoint"){if(n.length!==1||n[0]==="")throw new Error(`Access Point ARN should have one resource accesspoint${e}{accesspointname}`);return{accesspointName:n[0]}}else if(r==="outpost"){if(!n[0]||n[1]!=="accesspoint"||!n[2]||n.length!==3)throw new Error(`Outpost ARN should have resource outpost${e}{outpostId}${e}accesspoint${e}{accesspointName}`);let[s,o,i]=n;return{outpostId:s,accesspointName:i}}else throw new Error(`ARN resource should begin with 'accesspoint${e}' or 'outpost${e}'`)},EXt=t=>{},s2e=t=>{if(t)throw new Error("FIPS region is not supported with Outpost.")},yXt=t=>{try{t.split(".").forEach(e=>{Fh(e)})}catch{throw new Error(`"${t}" is not a DNS compatible name.`)}},CQ=t=>(SXt(t),lXt(t)?_Xt(t):CXt(t)),_Xt=({accelerateEndpoint:t=!1,clientRegion:e,baseHostname:r,bucketName:n,dualstackEndpoint:s=!1,fipsEndpoint:o=!1,pathStyleEndpoint:i=!1,tlsCompatible:a=!0,isCustomEndpoint:c=!1})=>{let[u,l]=c?[e,r]:pXt(r);return i||!dXt(n)||a&&XGe.test(n)?{bucketEndpoint:!1,hostname:s?`s3.dualstack.${u}.${l}`:r}:(t?r=`s3-accelerate${s?".dualstack":""}.${l}`:s&&(r=`s3.dualstack.${u}.${l}`),{bucketEndpoint:!0,hostname:`${n}.${r}`})},CXt=t=>{let{isCustomEndpoint:e,baseHostname:r,clientRegion:n}=t,s=e?r:ZGe(r)[1],{pathStyleEndpoint:o,accelerateEndpoint:i=!1,fipsEndpoint:a=!1,tlsCompatible:c=!0,bucketName:u,clientPartition:l="aws"}=t;mXt({pathStyleEndpoint:o,accelerateEndpoint:i,tlsCompatible:c});let{service:d,partition:p,accountId:g,region:y,resource:R}=u;gXt(d),t2e(p,{clientPartition:l}),r2e(g);let{accesspointName:D,outpostId:B}=n2e(R);return d==="s3-object-lambda"?RXt({...t,tlsCompatible:c,bucketName:u,accesspointName:D,hostnameSuffix:s}):y===""?vXt({...t,mrapAlias:D,hostnameSuffix:s}):B?xXt({...t,clientRegion:n,outpostId:B,accesspointName:D,hostnameSuffix:s}):PXt({...t,clientRegion:n,accesspointName:D,hostnameSuffix:s})},RXt=({dualstackEndpoint:t=!1,fipsEndpoint:e=!1,tlsCompatible:r=!0,useArnRegion:n,clientRegion:s,clientSigningRegion:o=s,accesspointName:i,bucketName:a,hostnameSuffix:c})=>{let{accountId:u,region:l,service:d}=a;RQ(s);let p=`${i}-${u}`;Fh(p,{tlsCompatible:r});let g=n?l:s,y=n?l:o;return{bucketEndpoint:!0,hostname:`${p}.${d}${e?"-fips":""}.${g}.${c}`,signingRegion:y,signingService:d}},vXt=({disableMultiregionAccessPoints:t,dualstackEndpoint:e=!1,isCustomEndpoint:r,mrapAlias:n,hostnameSuffix:s})=>{if(t===!0)throw new Error("SDK is attempting to use a MRAP ARN. Please enable to feature.");return yXt(n),{bucketEndpoint:!0,hostname:`${n}${r?"":".accesspoint.s3-global"}.${s}`,signingRegion:"*"}},xXt=({useArnRegion:t,clientRegion:e,clientSigningRegion:r=e,bucketName:n,outpostId:s,dualstackEndpoint:o=!1,fipsEndpoint:i=!1,tlsCompatible:a=!0,accesspointName:c,isCustomEndpoint:u,hostnameSuffix:l})=>{RQ(e);let d=`${c}-${n.accountId}`;Fh(d,{tlsCompatible:a});let p=t?n.region:e,g=t?n.region:r;return e2e(n.service),Fh(s,{tlsCompatible:a}),s2e(i),{bucketEndpoint:!0,hostname:`${`${d}.${s}`}${u?"":`.s3-outposts.${p}`}.${l}`,signingRegion:g,signingService:"s3-outposts"}},PXt=({useArnRegion:t,clientRegion:e,clientSigningRegion:r=e,bucketName:n,dualstackEndpoint:s=!1,fipsEndpoint:o=!1,tlsCompatible:i=!0,accesspointName:a,isCustomEndpoint:c,hostnameSuffix:u})=>{RQ(e);let l=`${a}-${n.accountId}`;Fh(l,{tlsCompatible:i});let d=t?n.region:e,p=t?n.region:r;return fXt(n.service),{bucketEndpoint:!0,hostname:`${l}${c?"":`.s3-accesspoint${o?"-fips":""}${s?".dualstack":""}.${d}`}.${u}`,signingRegion:p}},o2e=t=>(e,r)=>async n=>{let{Bucket:s}=n.input,o=t.bucketEndpoint,i=n.request;if(nXt.HttpRequest.isInstance(i)){if(t.bucketEndpoint)i.hostname=s;else if(HGe.validate(s)){let a=HGe.parse(s),c=await t.region(),u=await t.useDualstackEndpoint(),l=await t.useFipsEndpoint(),{partition:d,signingRegion:p=c}=await t.regionInfoProvider(c,{useDualstackEndpoint:u,useFipsEndpoint:l})||{},g=await t.useArnRegion(),{hostname:y,bucketEndpoint:R,signingRegion:D,signingService:B}=CQ({bucketName:a,baseHostname:i.hostname,accelerateEndpoint:t.useAccelerateEndpoint,dualstackEndpoint:u,fipsEndpoint:l,pathStyleEndpoint:t.forcePathStyle,tlsCompatible:i.protocol==="https:",useArnRegion:g,clientPartition:d,clientSigningRegion:p,clientRegion:c,isCustomEndpoint:t.isCustomEndpoint,disableMultiregionAccessPoints:await t.disableMultiregionAccessPoints()});D&&D!==p&&(r.signing_region=D),B&&B!=="s3"&&(r.signing_service=B),i.hostname=y,o=R}else{let a=await t.region(),c=await t.useDualstackEndpoint(),u=await t.useFipsEndpoint(),{hostname:l,bucketEndpoint:d}=CQ({bucketName:s,clientRegion:a,baseHostname:i.hostname,accelerateEndpoint:t.useAccelerateEndpoint,dualstackEndpoint:c,fipsEndpoint:u,pathStyleEndpoint:t.forcePathStyle,tlsCompatible:i.protocol==="https:",isCustomEndpoint:t.isCustomEndpoint});i.hostname=l,o=d}o&&(i.path=i.path.replace(/^(\/)?[^\/]+/,""),i.path===""&&(i.path="/"))}return e({...n,request:i})},i2e={tags:["BUCKET_ENDPOINT"],name:"bucketEndpointMiddleware",relation:"before",toMiddleware:"hostHeaderMiddleware",override:!0},bXt=t=>({applyToStack:e=>{e.addRelativeTo(o2e(t),i2e)}});function IXt(t){let{bucketEndpoint:e=!1,forcePathStyle:r=!1,useAccelerateEndpoint:n=!1,useArnRegion:s,disableMultiregionAccessPoints:o=!1}=t;return Object.assign(t,{bucketEndpoint:e,forcePathStyle:r,useAccelerateEndpoint:n,useArnRegion:typeof s=="function"?s:()=>Promise.resolve(s),disableMultiregionAccessPoints:typeof o=="function"?o:()=>Promise.resolve(o)})}Rr.NODE_DISABLE_MULTIREGION_ACCESS_POINT_CONFIG_OPTIONS=sXt;Rr.NODE_DISABLE_MULTIREGION_ACCESS_POINT_ENV_NAME=zGe;Rr.NODE_DISABLE_MULTIREGION_ACCESS_POINT_INI_NAME=WGe;Rr.NODE_USE_ARN_REGION_CONFIG_OPTIONS=oXt;Rr.NODE_USE_ARN_REGION_ENV_NAME=KGe;Rr.NODE_USE_ARN_REGION_INI_NAME=QGe;Rr.bucketEndpointMiddleware=o2e;Rr.bucketEndpointMiddlewareOptions=i2e;Rr.bucketHostname=CQ;Rr.getArnResources=n2e;Rr.getBucketEndpointPlugin=bXt;Rr.getSuffixForArnEndpoint=ZGe;Rr.resolveBucketEndpointConfig=IXt;Rr.validateAccountId=r2e;Rr.validateDNSHostLabel=Fh;Rr.validateNoDualstack=EXt;Rr.validateNoFIPS=s2e;Rr.validateOutpostService=e2e;Rr.validatePartition=t2e;Rr.validateRegion=hXt});var p2e=b(IF=>{"use strict";Object.defineProperty(IF,"__esModule",{value:!0});IF.getRuntimeConfig=void 0;var c2e=(Dt(),ue(Fr)),AXt=(wa(),ue(Wg)),TXt=U5(),wXt=require("@smithy/smithy-client"),DXt=require("@smithy/url-parser"),u2e=require("@smithy/util-base64"),l2e=require("@smithy/util-stream"),d2e=require("@smithy/util-utf8"),OXt=yQ(),kXt=EQ(),NXt=t=>({apiVersion:"2006-03-01",base64Decoder:t?.base64Decoder??u2e.fromBase64,base64Encoder:t?.base64Encoder??u2e.toBase64,disableHostPrefix:t?.disableHostPrefix??!1,endpointProvider:t?.endpointProvider??kXt.defaultEndpointResolver,extensions:t?.extensions??[],getAwsChunkedEncodingStream:t?.getAwsChunkedEncodingStream??l2e.getAwsChunkedEncodingStream,httpAuthSchemeProvider:t?.httpAuthSchemeProvider??OXt.defaultS3HttpAuthSchemeProvider,httpAuthSchemes:t?.httpAuthSchemes??[{schemeId:"aws.auth#sigv4",identityProvider:e=>e.getIdentityProvider("aws.auth#sigv4"),signer:new c2e.AwsSdkSigV4Signer},{schemeId:"aws.auth#sigv4a",identityProvider:e=>e.getIdentityProvider("aws.auth#sigv4a"),signer:new c2e.AwsSdkSigV4ASigner}],logger:t?.logger??new wXt.NoOpLogger,protocol:t?.protocol??new AXt.AwsRestXmlProtocol({defaultNamespace:"com.amazonaws.s3",xmlNamespace:"http://s3.amazonaws.com/doc/2006-03-01/"}),sdkStreamMixin:t?.sdkStreamMixin??l2e.sdkStreamMixin,serviceId:t?.serviceId??"S3",signerConstructor:t?.signerConstructor??TXt.SignatureV4MultiRegion,signingEscapePath:t?.signingEscapePath??!1,urlParser:t?.urlParser??DXt.parseUrl,useArnRegion:t?.useArnRegion??void 0,utf8Decoder:t?.utf8Decoder??d2e.fromUtf8,utf8Encoder:t?.utf8Encoder??d2e.toUtf8});IF.getRuntimeConfig=NXt});var E2e=b(TF=>{"use strict";Object.defineProperty(TF,"__esModule",{value:!0});TF.getRuntimeConfig=void 0;var LXt=require("tslib"),MXt=LXt.__importDefault(VGe()),vQ=(Dt(),ue(Fr)),FXt=O_(),BXt=a2e(),m2e=D5(),UXt=gF(),g2e=Mc(),AF=require("@smithy/config-resolver"),qXt=require("@smithy/eventstream-serde-node"),xQ=require("@smithy/hash-node"),$Xt=require("@smithy/hash-stream-node"),f2e=require("@smithy/middleware-retry"),ui=require("@smithy/node-config-provider"),h2e=require("@smithy/node-http-handler"),S2e=require("@smithy/smithy-client"),GXt=require("@smithy/util-body-length-node"),jXt=require("@smithy/util-defaults-mode-node"),VXt=require("@smithy/util-retry"),HXt=p2e(),zXt=t=>{(0,S2e.emitWarningIfUnsupportedVersion)(process.version);let e=(0,jXt.resolveDefaultsModeConfig)(t),r=()=>e().then(S2e.loadConfigsForDefaultMode),n=(0,HXt.getRuntimeConfig)(t);(0,vQ.emitWarningIfUnsupportedVersion)(process.version);let s={profile:t?.profile,logger:n.logger};return{...n,...t,runtime:"node",defaultsMode:e,authSchemePreference:t?.authSchemePreference??(0,ui.loadConfig)(vQ.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS,s),bodyLengthChecker:t?.bodyLengthChecker??GXt.calculateBodyLength,credentialDefaultProvider:t?.credentialDefaultProvider??FXt.defaultProvider,defaultUserAgentProvider:t?.defaultUserAgentProvider??(0,g2e.createDefaultUserAgentProvider)({serviceId:n.serviceId,clientVersion:MXt.default.version}),disableS3ExpressSessionAuth:t?.disableS3ExpressSessionAuth??(0,ui.loadConfig)(UXt.NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_OPTIONS,s),eventStreamSerdeProvider:t?.eventStreamSerdeProvider??qXt.eventStreamSerdeProvider,maxAttempts:t?.maxAttempts??(0,ui.loadConfig)(f2e.NODE_MAX_ATTEMPT_CONFIG_OPTIONS,t),md5:t?.md5??xQ.Hash.bind(null,"md5"),region:t?.region??(0,ui.loadConfig)(AF.NODE_REGION_CONFIG_OPTIONS,{...AF.NODE_REGION_CONFIG_FILE_OPTIONS,...s}),requestChecksumCalculation:t?.requestChecksumCalculation??(0,ui.loadConfig)(m2e.NODE_REQUEST_CHECKSUM_CALCULATION_CONFIG_OPTIONS,s),requestHandler:h2e.NodeHttpHandler.create(t?.requestHandler??r),responseChecksumValidation:t?.responseChecksumValidation??(0,ui.loadConfig)(m2e.NODE_RESPONSE_CHECKSUM_VALIDATION_CONFIG_OPTIONS,s),retryMode:t?.retryMode??(0,ui.loadConfig)({...f2e.NODE_RETRY_MODE_CONFIG_OPTIONS,default:async()=>(await r()).retryMode||VXt.DEFAULT_RETRY_MODE},t),sha1:t?.sha1??xQ.Hash.bind(null,"sha1"),sha256:t?.sha256??xQ.Hash.bind(null,"sha256"),sigv4aSigningRegionSet:t?.sigv4aSigningRegionSet??(0,ui.loadConfig)(vQ.NODE_SIGV4A_CONFIG_OPTIONS,s),streamCollector:t?.streamCollector??h2e.streamCollector,streamHasher:t?.streamHasher??$Xt.readableStreamHasher,useArnRegion:t?.useArnRegion??(0,ui.loadConfig)(BXt.NODE_USE_ARN_REGION_CONFIG_OPTIONS,s),useDualstackEndpoint:t?.useDualstackEndpoint??(0,ui.loadConfig)(AF.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS,s),useFipsEndpoint:t?.useFipsEndpoint??(0,ui.loadConfig)(AF.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS,s),userAgentAppId:t?.userAgentAppId??(0,ui.loadConfig)(g2e.NODE_APP_ID_CONFIG_OPTIONS,s)}};TF.getRuntimeConfig=zXt});var R2e=b(IR=>{"use strict";function y2e(t){return e=>async r=>{let n={...r.input},s=[{target:"SSECustomerKey",hash:"SSECustomerKeyMD5"},{target:"CopySourceSSECustomerKey",hash:"CopySourceSSECustomerKeyMD5"}];for(let o of s){let i=n[o.target];if(i){let a;typeof i=="string"?C2e(i,t)?a=t.base64Decoder(i):(a=t.utf8Decoder(i),n[o.target]=t.base64Encoder(a)):(a=ArrayBuffer.isView(i)?new Uint8Array(i.buffer,i.byteOffset,i.byteLength):new Uint8Array(i),n[o.target]=t.base64Encoder(a));let c=new t.md5;c.update(a),n[o.hash]=t.base64Encoder(await c.digest())}}return e({...r,input:n})}}var _2e={name:"ssecMiddleware",step:"initialize",tags:["SSE"],override:!0},WXt=t=>({applyToStack:e=>{e.add(y2e(t),_2e)}});function C2e(t,e){if(!/^(?:[A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(t))return!1;try{return e.base64Decoder(t).length===32}catch{return!1}}IR.getSsecPlugin=WXt;IR.isValidBase64EncodedSSECustomerKey=C2e;IR.ssecMiddleware=y2e;IR.ssecMiddlewareOptions=_2e});var P2e=b(wF=>{"use strict";function v2e(t){return e=>async r=>{let{CreateBucketConfiguration:n}=r.input,s=await t.region();return!n?.LocationConstraint&&!n?.Location&&s!=="us-east-1"&&(r.input.CreateBucketConfiguration=r.input.CreateBucketConfiguration??{},r.input.CreateBucketConfiguration.LocationConstraint=s),e(r)}}var x2e={step:"initialize",tags:["LOCATION_CONSTRAINT","CREATE_BUCKET_CONFIGURATION"],name:"locationConstraintMiddleware",override:!0},KXt=t=>({applyToStack:e=>{e.add(v2e(t),x2e)}});wF.getLocationConstraintPlugin=KXt;wF.locationConstraintMiddleware=v2e;wF.locationConstraintMiddlewareOptions=x2e});var zHe=b(I=>{"use strict";var QXt=Tqe(),Rt=D5(),b2e=wc(),XXt=Dc(),JXt=Oc(),le=gF(),I2e=Oa(),YXt=require("@smithy/config-resolver"),Jp=require("@smithy/core"),Gn=require("@smithy/core/schema"),ZXt=require("@smithy/eventstream-serde-config-resolver"),eJt=require("@smithy/middleware-content-length"),z=require("@smithy/middleware-endpoint"),A2e=require("@smithy/middleware-retry"),j=require("@smithy/smithy-client"),T2e=yQ(),tJt=E2e(),w2e=Na(),D2e=require("@smithy/protocol-http"),oa=R2e(),rJt=P2e(),gr=require("@smithy/util-waiter"),nJt=t=>Object.assign(t,{useFipsEndpoint:t.useFipsEndpoint??!1,useDualstackEndpoint:t.useDualstackEndpoint??!1,forcePathStyle:t.forcePathStyle??!1,useAccelerateEndpoint:t.useAccelerateEndpoint??!1,useGlobalEndpoint:t.useGlobalEndpoint??!1,disableMultiregionAccessPoints:t.disableMultiregionAccessPoints??!1,defaultSigningName:"s3"}),K={ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},DisableS3ExpressSessionAuth:{type:"clientContextParams",name:"disableS3ExpressSessionAuth"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}},jn=class G2e extends j.ServiceException{constructor(e){super(e),Object.setPrototypeOf(this,G2e.prototype)}},j2e=class V2e extends jn{name="NoSuchUpload";$fault="client";constructor(e){super({name:"NoSuchUpload",$fault:"client",...e}),Object.setPrototypeOf(this,V2e.prototype)}},H2e=class z2e extends jn{name="ObjectNotInActiveTierError";$fault="client";constructor(e){super({name:"ObjectNotInActiveTierError",$fault:"client",...e}),Object.setPrototypeOf(this,z2e.prototype)}},W2e=class K2e extends jn{name="BucketAlreadyExists";$fault="client";constructor(e){super({name:"BucketAlreadyExists",$fault:"client",...e}),Object.setPrototypeOf(this,K2e.prototype)}},Q2e=class X2e extends jn{name="BucketAlreadyOwnedByYou";$fault="client";constructor(e){super({name:"BucketAlreadyOwnedByYou",$fault:"client",...e}),Object.setPrototypeOf(this,X2e.prototype)}},J2e=class Y2e extends jn{name="NoSuchBucket";$fault="client";constructor(e){super({name:"NoSuchBucket",$fault:"client",...e}),Object.setPrototypeOf(this,Y2e.prototype)}},Z2e=class eje extends jn{name="InvalidObjectState";$fault="client";StorageClass;AccessTier;constructor(e){super({name:"InvalidObjectState",$fault:"client",...e}),Object.setPrototypeOf(this,eje.prototype),this.StorageClass=e.StorageClass,this.AccessTier=e.AccessTier}},tje=class rje extends jn{name="NoSuchKey";$fault="client";constructor(e){super({name:"NoSuchKey",$fault:"client",...e}),Object.setPrototypeOf(this,rje.prototype)}},nje=class sje extends jn{name="NotFound";$fault="client";constructor(e){super({name:"NotFound",$fault:"client",...e}),Object.setPrototypeOf(this,sje.prototype)}},oje=class ije extends jn{name="EncryptionTypeMismatch";$fault="client";constructor(e){super({name:"EncryptionTypeMismatch",$fault:"client",...e}),Object.setPrototypeOf(this,ije.prototype)}},aje=class cje extends jn{name="InvalidRequest";$fault="client";constructor(e){super({name:"InvalidRequest",$fault:"client",...e}),Object.setPrototypeOf(this,cje.prototype)}},uje=class lje extends jn{name="InvalidWriteOffset";$fault="client";constructor(e){super({name:"InvalidWriteOffset",$fault:"client",...e}),Object.setPrototypeOf(this,lje.prototype)}},dje=class pje extends jn{name="TooManyParts";$fault="client";constructor(e){super({name:"TooManyParts",$fault:"client",...e}),Object.setPrototypeOf(this,pje.prototype)}},mje=class gje extends jn{name="IdempotencyParameterMismatch";$fault="client";constructor(e){super({name:"IdempotencyParameterMismatch",$fault:"client",...e}),Object.setPrototypeOf(this,gje.prototype)}},fje=class hje extends jn{name="ObjectAlreadyInActiveTierError";$fault="client";constructor(e){super({name:"ObjectAlreadyInActiveTierError",$fault:"client",...e}),Object.setPrototypeOf(this,hje.prototype)}},sJt="Account",oJt="AnalyticsAndOperator",DF="AccelerateConfiguration",VB="AccessControlList",qh="ACL",Sje="AnalyticsConfigurationList",Yp="AccessControlPolicy",Eje="AccessControlTranslation",AR="AnalyticsConfiguration",yje="AbortDate",iJt="AnalyticsExportDestination",aJt="AnalyticsFilter",cJt="AllowedHeaders",uJt="AllowedHeader",lJt="AccountId",_je="AbortIncompleteMultipartUpload",O2e="AccessKeyId",dJt="AllowedMethods",pJt="AbortMultipartUpload",mJt="AbortMultipartUploadOutput",gJt="AbortMultipartUploadRequest",fJt="AllowedMethod",hJt="AllowedOrigins",SJt="AllowedOrigin",EJt="AccessPointAlias",Cje="AccessPointArn",yJt="AllowQuotedRecordDelimiter",kQ="AcceptRanges",Rje="AbortRuleId",OF="AbacStatus",_Jt="AnalyticsS3BucketDestination",CJt="ApplyServerSideEncryptionByDefault",RJt="ArchiveStatus",vje="AccessTier",FR="And",$="Bucket",NQ="BucketArn",vJt="BucketAlreadyExists",xJt="BucketAccountId",PJt="BucketAlreadyOwnedByYou",xje="BlockedEncryptionTypes",LQ="BypassGovernanceRetention",bJt="BucketInfo",ns="BucketKeyEnabled",IJt="BucketLifecycleConfiguration",AJt="BucketLocationName",kF="BucketLoggingStatus",TJt="BucketLocationType",wJt="BucketName",Pje="BytesProcessed",k2e="BlockPublicAcls",N2e="BlockPublicPolicy",MQ="BucketRegion",bje="BytesReturned",Ije="BytesScanned",BR="Body",FQ="Buckets",Aje="Checksum",st="ChecksumAlgorithm",DJt="CannedACL",OJt="CreateBucket",PQ="CreateBucketConfiguration",kJt="CreateBucketMetadataConfiguration",NJt="CreateBucketMetadataConfigurationRequest",LJt="CreateBucketMetadataTableConfiguration",MJt="CreateBucketMetadataTableConfigurationRequest",FJt="CreateBucketOutput",BJt="CreateBucketRequest",$h="CacheControl",ss="ChecksumCRC32",os="ChecksumCRC32C",is="ChecksumCRC64NVME",UR="Cache-Control",UJt="CreationDate",qR="Content-Disposition",Gh="ContentDisposition",qJt="ContinuationEvent",$R="Content-Encoding",jh="ContentEncoding",$Jt="CloudFunction",GJt="CloudFunctionConfiguration",Vh="ContentLanguage",GR="Content-Language",jR="Content-Length",VR="ContentLength",Zt="Content-MD5",er="ContentMD5",jJt="CompletedMultipartUpload",VJt="CompleteMultipartUploadOutput",HJt="CreateMultipartUploadOutput",zJt="CompleteMultipartUploadResult",WJt="CompleteMultipartUploadRequest",KJt="CreateMultipartUploadRequest",Tje="CompleteMultipartUpload",QJt="CreateMultipartUpload",wje="ChecksumMode",XJt="CopyObject",JJt="CopyObjectOutput",Dje="CopyObjectResult",NF="CORSConfiguration",BQ="CORSRules",UQ="CORSRule",YJt="CopyObjectRequest",ZJt="CommonPrefix",eYt="CommonPrefixList",tYt="CompletedPartList",Oje="CopyPartResult",rYt="CompletedPart",HB="CommonPrefixes",qQ="ContentRange",nYt="ConfirmRemoveSelfBucketAccess",kje="Content-Range",Nje="CopySource",as="ChecksumSHA1",cs="ChecksumSHA256",Lje="CopySourceIfMatch",Mje="CopySourceIfModifiedSince",Fje="CopySourceIfNoneMatch",Bje="CopySourceIfUnmodifiedSince",sYt="CreateSessionOutput",oYt="CreateSessionResult",iYt="CopySourceRange",aYt="CreateSessionRequest",Uje="CopySourceSSECustomerAlgorithm",$Q="CopySourceSSECustomerKey",qje="CopySourceSSECustomerKeyMD5",$je="CSV",Gje="CopySourceVersionId",cYt="CSVInput",uYt="CSVOutput",GQ="ConfigurationState",lYt="CreateSession",fo="ChecksumType",HR="Content-Type",dYt="ClientToken",Hh="ContentType",pYt="CompressionType",ks="ContinuationToken",jje="Condition",mYt="Code",gYt="Comments",Vje="Contents",fYt="Cont",L2e="Credentials",zh="Days",hYt="DaysAfterInitiation",SYt="DeleteBucket",EYt="DeleteBucketAnalyticsConfiguration",yYt="DeleteBucketAnalyticsConfigurationRequest",_Yt="DeleteBucketCors",CYt="DeleteBucketCorsRequest",RYt="DeleteBucketEncryption",vYt="DeleteBucketEncryptionRequest",xYt="DeleteBucketInventoryConfiguration",PYt="DeleteBucketInventoryConfigurationRequest",bYt="DeleteBucketIntelligentTieringConfiguration",IYt="DeleteBucketIntelligentTieringConfigurationRequest",AYt="DeleteBucketLifecycle",TYt="DeleteBucketLifecycleRequest",wYt="DeleteBucketMetadataConfiguration",DYt="DeleteBucketMetadataConfigurationRequest",OYt="DeleteBucketMetricsConfigurationRequest",kYt="DeleteBucketMetricsConfiguration",NYt="DeleteBucketMetadataTableConfiguration",LYt="DeleteBucketMetadataTableConfigurationRequest",MYt="DeleteBucketOwnershipControls",FYt="DeleteBucketOwnershipControlsRequest",BYt="DeleteBucketPolicy",UYt="DeleteBucketPolicyRequest",qYt="DeleteBucketRequest",$Yt="DeleteBucketReplicationRequest",GYt="DeleteBucketReplication",jYt="DeleteBucketTagging",VYt="DeleteBucketTaggingRequest",HYt="DeleteBucketWebsite",zYt="DeleteBucketWebsiteRequest",WYt="DataExport",KYt="DestinationIfMatch",QYt="DestinationIfModifiedSince",XYt="DestinationIfNoneMatch",JYt="DestinationIfUnmodifiedSince",Zp="DeleteMarker",YYt="DeleteMarkerEntry",Hje="DeleteMarkerReplication",ZYt="DeleteMarkerVersionId",zje="DeleteMarkers",jQ="DisplayName",e7t="DeletedObject",t7t="DeleteObjectOutput",r7t="DeleteObjectsOutput",n7t="DeleteObjectRequest",s7t="DeleteObjectsRequest",o7t="DeleteObjectTagging",i7t="DeleteObjectTaggingOutput",a7t="DeleteObjectTaggingRequest",c7t="DeletedObjects",u7t="DeleteObject",l7t="DeleteObjects",d7t="DeletePublicAccessBlock",p7t="DeletePublicAccessBlockRequest",m7t="DataRedundancy",Wje="DefaultRetention",g7t="DeleteResult",Kje="DestinationResult",Qje="Date",bQ="Delete",f7t="Deleted",od="Delimiter",zB="Destination",h7t="Description",Xje="Details",rc="Expiration",S7t="EmailAddress",Jje="EventBridgeConfiguration",X="ExpectedBucketOwner",zR="EncryptionConfiguration",Yje="ErrorCode",E7t="ErrorDetails",VQ="ErrorDocument",y7t="EndEvent",_7t="ExposeHeaders",C7t="ExposeHeader",Zje="ErrorMessage",R7t="ExpiredObjectDeleteMarker",e4e="ExistingObjectReplication",LF="ExpiresString",t4e="ExpectedSourceBucketOwner",HQ="EncryptionType",v7t="EncryptionTypeList",x7t="EncryptionTypeMismatch",tn="ETag",id="EncodingType",P7t="EventThreshold",r4e="ExpressionType",zQ="Encryption",b7t="Enabled",n4e="End",s4e="Errors",WR="Error",WQ="Events",KQ="Event",na="Expires",o4e="Expression",du="Filter",i4e="FieldDelimiter",I7t="FileHeaderInfo",A7t="FetchOwner",a4e="FilterRule",T7t="FilterRuleList",w7t="FilterRules",D7t="Field",c4e="Format",O7t="Frequency",WB="Grants",k7t="GetBucketAbac",N7t="GetBucketAccelerateConfiguration",L7t="GetBucketAccelerateConfigurationOutput",M7t="GetBucketAnalyticsConfigurationOutput",F7t="GetBucketAccelerateConfigurationRequest",B7t="GetBucketAnalyticsConfigurationRequest",U7t="GetBucketAnalyticsConfiguration",q7t="GetBucketAbacOutput",$7t="GetBucketAclOutput",G7t="GetBucketAbacRequest",j7t="GetBucketAclRequest",V7t="GetBucketAcl",H7t="GetBucketCors",z7t="GetBucketCorsOutput",W7t="GetBucketCorsRequest",K7t="GetBucketEncryption",Q7t="GetBucketEncryptionOutput",X7t="GetBucketEncryptionRequest",J7t="GetBucketInventoryConfiguration",Y7t="GetBucketInventoryConfigurationOutput",Z7t="GetBucketInventoryConfigurationRequest",eZt="GetBucketIntelligentTieringConfiguration",tZt="GetBucketIntelligentTieringConfigurationOutput",rZt="GetBucketIntelligentTieringConfigurationRequest",nZt="GetBucketLocation",sZt="GetBucketLifecycleConfiguration",oZt="GetBucketLifecycleConfigurationOutput",iZt="GetBucketLifecycleConfigurationRequest",aZt="GetBucketLocationOutput",cZt="GetBucketLoggingOutput",uZt="GetBucketLocationRequest",lZt="GetBucketLoggingRequest",dZt="GetBucketLogging",pZt="GetBucketMetadataConfiguration",mZt="GetBucketMetadataConfigurationOutput",gZt="GetBucketMetricsConfigurationOutput",u4e="GetBucketMetadataConfigurationResult",fZt="GetBucketMetadataConfigurationRequest",hZt="GetBucketMetricsConfigurationRequest",SZt="GetBucketMetricsConfiguration",EZt="GetBucketMetadataTableConfiguration",yZt="GetBucketMetadataTableConfigurationOutput",l4e="GetBucketMetadataTableConfigurationResult",_Zt="GetBucketMetadataTableConfigurationRequest",CZt="GetBucketNotificationConfiguration",RZt="GetBucketNotificationConfigurationRequest",vZt="GetBucketOwnershipControls",xZt="GetBucketOwnershipControlsOutput",PZt="GetBucketOwnershipControlsRequest",bZt="GetBucketPolicy",IZt="GetBucketPolicyOutput",AZt="GetBucketPolicyRequest",TZt="GetBucketPolicyStatus",wZt="GetBucketPolicyStatusOutput",DZt="GetBucketPolicyStatusRequest",OZt="GetBucketReplication",kZt="GetBucketReplicationOutput",NZt="GetBucketRequestPayment",LZt="GetBucketRequestPaymentOutput",MZt="GetBucketRequestPaymentRequest",FZt="GetBucketReplicationRequest",BZt="GetBucketTagging",UZt="GetBucketTaggingOutput",qZt="GetBucketTaggingRequest",$Zt="GetBucketVersioning",GZt="GetBucketVersioningOutput",jZt="GetBucketVersioningRequest",VZt="GetBucketWebsite",HZt="GetBucketWebsiteOutput",zZt="GetBucketWebsiteRequest",Wh="GrantFullControl",d4e="GlacierJobParameters",WZt="GetObject",KZt="GetObjectAcl",QZt="GetObjectAclOutput",XZt="GetObjectAttributesOutput",JZt="GetObjectAttributesParts",YZt="GetObjectAclRequest",ZZt="GetObjectAttributesResponse",eer="GetObjectAttributesRequest",ter="GetObjectAttributes",rer="GetObjectLockConfiguration",ner="GetObjectLockConfigurationOutput",ser="GetObjectLockConfigurationRequest",oer="GetObjectLegalHold",ier="GetObjectLegalHoldOutput",aer="GetObjectLegalHoldRequest",cer="GetObjectOutput",uer="GetObjectRequest",ler="GetObjectRetentionOutput",der="GetObjectRetentionRequest",per="GetObjectRetention",mer="GetObjectTagging",ger="GetObjectTaggingOutput",fer="GetObjectTorrentOutput",her="GetObjectTaggingRequest",Ser="GetObjectTorrentRequest",Eer="GetObjectTorrent",yer="GetPublicAccessBlock",_er="GetPublicAccessBlockOutput",Cer="GetPublicAccessBlockRequest",Kh="GrantRead",Qh="GrantReadACP",QQ="GrantWrite",Xh="GrantWriteACP",XQ="Grant",JQ="Grantee",Rer="HeadBucket",ver="HeadBucketOutput",xer="HeadBucketRequest",Per="HttpErrorCodeReturnedEquals",p4e="HostName",ber="HeadObject",Ier="HeadObjectOutput",Aer="HeadObjectRequest",Ter="HttpRedirectCode",$r="Id",TR="InventoryConfiguration",m4e="InventoryConfigurationList",Jh="ID",YQ="IndexDocument",wer="InventoryDestination",Der="IsEnabled",Oer="InventoryEncryption",ker="InventoryFilter",g4e="IsLatest",Yh="IfMatch",Ner="IfMatchInitiatedTime",Ler="IfMatchLastModifiedTime",Mer="IfMatchSize",ZQ="If-Modified-Since",f4e="IfModifiedSince",Fer="InitiateMultipartUploadResult",em="If-Match",KR="IfNoneMatch",Zh="If-None-Match",Ber="InventoryOptionalFields",Uer="InvalidObjectState",qer="IncludedObjectVersions",M2e="IsPublic",F2e="IgnorePublicAcls",$er="IdempotencyParameterMismatch",Ger="InvalidRequest",jer="IsRestoreInProgress",eX="InputSerialization",Ver="InventoryS3BucketDestination",Her="InventorySchedule",nc="IsTruncated",zer="IntelligentTieringAndOperator",wR="IntelligentTieringConfiguration",h4e="IntelligentTieringConfigurationList",S4e="InventoryTableConfigurationResult",Wer="InventoryTableConfigurationUpdates",MF="InventoryTableConfiguration",Ker="IntelligentTieringFilter",E4e="IfUnmodifiedSince",tX="If-Unmodified-Since",Qer="InvalidWriteOffset",rX="Initiator",Xer="Initiated",y4e="JSON",Jer="JSONInput",Yer="JSONOutput",FF="JournalTableConfiguration",_4e="JournalTableConfigurationResult",Zer="JournalTableConfigurationUpdates",Qe="Key",etr="KeyCount",ttr="KeyId",rtr="KmsKeyArn",KB="KeyMarker",ntr="KMSContext",str="KMSKeyId",otr="KMSMasterKeyID",itr="KeyPrefixEquals",BF="Location",atr="ListAllMyBucketsResult",ctr="ListAllMyDirectoryBucketsResult",utr="ListBuckets",ltr="ListBucketAnalyticsConfigurations",dtr="ListBucketAnalyticsConfigurationsOutput",ptr="ListBucketAnalyticsConfigurationResult",mtr="ListBucketAnalyticsConfigurationsRequest",gtr="ListBucketInventoryConfigurations",ftr="ListBucketInventoryConfigurationsOutput",htr="ListBucketInventoryConfigurationsRequest",Str="ListBucketIntelligentTieringConfigurations",Etr="ListBucketIntelligentTieringConfigurationsOutput",ytr="ListBucketIntelligentTieringConfigurationsRequest",_tr="ListBucketMetricsConfigurations",Ctr="ListBucketMetricsConfigurationsOutput",Rtr="ListBucketMetricsConfigurationsRequest",vtr="ListBucketsOutput",xtr="ListBucketsRequest",C4e="ListBucketResult",IQ="LocationConstraint",AQ="LifecycleConfiguration",Ptr="ListDirectoryBuckets",btr="ListDirectoryBucketsOutput",Itr="ListDirectoryBucketsRequest",nX="LoggingEnabled",Atr="LifecycleExpiration",Ttr="LambdaFunctionArn",wtr="LambdaFunctionConfiguration",Dtr="LambdaFunctionConfigurationList",Otr="LambdaFunctionConfigurations",UF="LegalHold",ktr="LocationInfo",Ntr="ListInventoryConfigurationsResult",sc="LastModified",Ltr="ListMetricsConfigurationsResult",Mtr="LastModifiedTime",Ftr="ListMultipartUploads",Btr="ListMultipartUploadsOutput",Utr="ListMultipartUploadsResult",qtr="ListMultipartUploadsRequest",sX="Last-Modified",$tr="ListObjects",Gtr="ListObjectsOutput",jtr="ListObjectsRequest",Vtr="ListObjectsV2",Htr="ListObjectsV2Output",ztr="ListObjectVersionsOutput",Wtr="ListObjectsV2Request",Ktr="ListObjectVersionsRequest",Qtr="ListObjectVersions",Xtr="ListParts",Jtr="ListPartsOutput",Ytr="ListPartsResult",Ztr="ListPartsRequest",err="LifecycleRule",trr="LifecycleRuleAndOperator",rrr="LifecycleRuleFilter",nrr="LifecycleRules",srr="ListVersionsResult",eS="Metadata",orr="MetricsAndOperator",irr="MaxAgeSeconds",arr="MaxBuckets",TQ="MetadataConfiguration",R4e="MetricsConfigurationList",v4e="MetadataConfigurationResult",DR="MetricsConfiguration",crr="MetadataDirective",urr="MaxDirectoryBuckets",x4e="MfaDelete",P4e="MetadataEntry",lrr="MetricsFilter",oX="MFA",b4e="MFADelete",tS="MaxKeys",iX="MissingMeta",drr="MpuObjectSize",QB="MaxParts",wQ="MetadataTableConfiguration",I4e="MetadataTableConfigurationResult",prr="MetadataTableEncryptionConfiguration",A4e="MultipartUpload",mrr="MultipartUploadList",T4e="MaxUploads",w4e="Marker",D4e="Metrics",grr="Message",frr="Minutes",O4e="Mode",tm="Name",DQ="NotificationConfiguration",hrr="NotificationConfigurationFilter",QR="NextContinuationToken",k4e="NoncurrentDays",Srr="NotFound",N4e="NextKeyMarker",Err="NextMarker",L4e="NewerNoncurrentVersions",M4e="NextPartNumberMarker",yrr="NoSuchBucket",_rr="NoSuchKey",Crr="NoSuchUpload",Rrr="NextUploadIdMarker",F4e="NoncurrentVersionExpiration",vrr="NextVersionIdMarker",xrr="NoncurrentVersionTransitions",Prr="NoncurrentVersionTransitionList",B4e="NoncurrentVersionTransition",ia="Owner",brr="ObjectAttributes",Irr="ObjectAlreadyInActiveTierError",qF="OwnershipControls",Arr="OwnershipControlsRule",Trr="OwnershipControlsRules",wrr="OptionalFields",Drr="ObjectIdentifier",Orr="ObjectIdentifierList",U4e="OutputLocation",$F="ObjectLockConfiguration",krr="ObjectLockEnabled",Nrr="ObjectLockEnabledForBucket",Lrr="ObjectLockLegalHold",rS="ObjectLockLegalHoldStatus",nS="ObjectLockMode",Mrr="ObjectLockRetention",sS="ObjectLockRetainUntilDate",Frr="ObjectLockRule",Brr="ObjectList",Urr="ObjectNotInActiveTierError",q4e="ObjectOwnership",aX="OptionalObjectAttributes",qrr="ObjectParts",$rr="ObjectPart",Grr="ObjectSize",$4e="ObjectSizeGreaterThan",G4e="ObjectSizeLessThan",jrr="OutputSchemaVersion",cX="OutputSerialization",Vrr="ObjectVersion",Hrr="ObjectVersionList",zrr="Objects",j4e="Object",qt="Prefix",GF="PublicAccessBlockConfiguration",Wrr="PutBucketAbac",Krr="PutBucketAccelerateConfiguration",Qrr="PutBucketAccelerateConfigurationRequest",Xrr="PutBucketAnalyticsConfigurationRequest",Jrr="PutBucketAnalyticsConfiguration",Yrr="PutBucketAbacRequest",Zrr="PutBucketAclRequest",enr="PutBucketAcl",tnr="PutBucketCors",rnr="PutBucketCorsRequest",nnr="PutBucketEncryption",snr="PutBucketEncryptionRequest",onr="PutBucketInventoryConfiguration",inr="PutBucketInventoryConfigurationRequest",anr="PutBucketIntelligentTieringConfiguration",cnr="PutBucketIntelligentTieringConfigurationRequest",unr="PutBucketLogging",lnr="PutBucketLifecycleConfiguration",dnr="PutBucketLifecycleConfigurationOutput",pnr="PutBucketLifecycleConfigurationRequest",mnr="PutBucketLoggingRequest",gnr="PutBucketMetricsConfiguration",fnr="PutBucketMetricsConfigurationRequest",hnr="PutBucketNotificationConfiguration",Snr="PutBucketNotificationConfigurationRequest",Enr="PutBucketOwnershipControls",ynr="PutBucketOwnershipControlsRequest",_nr="PutBucketPolicy",Cnr="PutBucketPolicyRequest",Rnr="PutBucketReplication",vnr="PutBucketRequestPayment",xnr="PutBucketRequestPaymentRequest",Pnr="PutBucketReplicationRequest",bnr="PutBucketTagging",Inr="PutBucketTaggingRequest",Anr="PutBucketVersioning",Tnr="PutBucketVersioningRequest",wnr="PutBucketWebsite",Dnr="PutBucketWebsiteRequest",XB="PartsCount",Onr="PartitionDateSource",knr="ProgressEvent",Nnr="ParquetInput",Lnr="PartsList",rm="PartNumber",JB="PartNumberMarker",Mnr="PutObject",Fnr="PutObjectAcl",Bnr="PutObjectAclOutput",Unr="PutObjectAclRequest",qnr="PutObjectLockConfiguration",$nr="PutObjectLockConfigurationOutput",Gnr="PutObjectLockConfigurationRequest",jnr="PutObjectLegalHold",Vnr="PutObjectLegalHoldOutput",Hnr="PutObjectLegalHoldRequest",znr="PutObjectOutput",Wnr="PutObjectRequest",Knr="PutObjectRetentionOutput",Qnr="PutObjectRetentionRequest",Xnr="PutObjectRetention",Jnr="PutObjectTagging",Ynr="PutObjectTaggingOutput",Znr="PutObjectTaggingRequest",jF="PartitionedPrefix",esr="PutPublicAccessBlock",tsr="PutPublicAccessBlockRequest",V4e="PolicyStatus",YB="Parts",ZB="Part",rsr="Parquet",H4e="Payer",z4e="Payload",W4e="Permission",K4e="Policy",Q4e="Progress",nsr="Priority",X4e="Protocol",ssr="Quiet",osr="QueueArn",J4e="QuoteCharacter",isr="QueueConfigurationList",asr="QueueConfigurations",Y4e="QueueConfiguration",Z4e="QuoteEscapeCharacter",csr="QuoteFields",usr="Queue",XR="Rules",uX="RedirectAllRequestsTo",jt="RequestCharged",eVe="ResponseCacheControl",tVe="ResponseContentDisposition",rVe="ResponseContentEncoding",nVe="ResponseContentLanguage",sVe="ResponseContentType",VF="ReplicationConfiguration",lX="RecordDelimiter",oVe="ResponseExpires",lsr="RestoreExpiryDate",eU="RecordExpiration",dsr="RecordsEvent",psr="ReplicaKmsKeyID",msr="ReplaceKeyPrefixWith",gsr="ReplaceKeyWith",iVe="ReplicaModifications",fsr="RenameObject",hsr="RenameObjectOutput",Ssr="RestoreObjectOutput",Esr="RestoreOutputPath",ysr="RenameObjectRequest",_sr="RestoreObjectRequest",Csr="RestoreObject",It="RequestPayer",B2e="RestrictPublicBuckets",HF="RequestPaymentConfiguration",aVe="RequestProgress",dX="RoutingRules",Rsr="ReplicationRuleAndOperator",vsr="ReplicationRuleFilter",xsr="ReplicationRule",Psr="ReplicationRules",bsr="RequestRoute",OQ="RestoreRequest",cVe="RoutingRule",pX="ReplicationStatus",mX="RestoreStatus",Isr="RenameSource",uVe="ReplicationTime",Asr="ReplicationTimeValue",Tsr="RequestToken",wsr="RetainUntilDate",zF="Range",gX="Restore",Dsr="Records",lVe="Redirect",WF="Retention",Osr="Role",oS="Rule",Vn="Status",dVe="StartAfter",U2e="SecretAccessKey",ksr="SseAlgorithm",Nsr="StreamingBlob",pVe="S3BucketDestination",Hn="StorageClass",mVe="StorageClassAnalysis",Lsr="StorageClassAnalysisDataExport",Msr="SessionCredentialValue",Fsr="SessionCredentials",Bsr="StatusCode",Usr="SkipDestinationValidation",qsr="StatsEvent",$sr="SourceIfMatch",Gsr="SourceIfModifiedSince",jsr="SourceIfNoneMatch",Vsr="SourceIfUnmodifiedSince",gVe="SSE-KMS",fVe="SseKmsEncryptedObjects",Hsr="S3KeyFilter",zsr="S3Key",Wsr="S3Location",Ksr="SessionMode",Qsr="SelectObjectContent",Xsr="SelectObjectContentEventStream",Jsr="SelectObjectContentOutput",Ysr="SelectObjectContentRequest",hVe="SelectParameters",KF="SimplePrefix",SVe="ScanRange",EVe="SSE-S3",yVe="SourceSelectionCriteria",Ns="ServerSideEncryption",Zsr="SSEAlgorithm",eor="ServerSideEncryptionByDefault",QF="ServerSideEncryptionConfiguration",Gr="SSECustomerAlgorithm",li="SSECustomerKey",jr="SSECustomerKeyMD5",_Ve="SSEKMS",pu="SSEKMSEncryptionContext",us="SSEKMSKeyId",tor="ServerSideEncryptionRule",ror="ServerSideEncryptionRules",CVe="SSES3",q2e="SessionToken",RVe="S3TablesDestination",vVe="S3TablesDestinationResult",nor="S3",sor="Schedule",iS="Size",oor="Start",xVe="Stats",ior="Suffix",aS="Tags",fX="TableArn",aor="TopicArn",cor="TargetBucket",hX="TableBucketArn",uor="TableBucketType",SX="TagCount",lor="TopicConfigurationList",dor="TopicConfigurations",PVe="TopicConfiguration",por="TaggingDirective",EX="TransitionDefaultMinimumObjectSize",bVe="TargetGrants",mor="TargetGrant",gor="TieringList",hor="TransitionList",Sor="TooManyParts",IVe="TableNamespace",tU="TableName",AVe="TargetObjectKeyFormat",Eor="TargetPrefix",yor="TotalPartsCount",rU="TagSet",TVe="TableStatus",di="Tag",sa="Tagging",wVe="Tier",_or="Tierings",DVe="Tiering",Cor="Time",OVe="Token",Ror="Topic",vor="Transitions",kVe="Transition",JR="Type",xor="Uploads",Por="UpdateBucketMetadataInventoryTableConfiguration",bor="UpdateBucketMetadataInventoryTableConfigurationRequest",Ior="UpdateBucketMetadataJournalTableConfiguration",Aor="UpdateBucketMetadataJournalTableConfigurationRequest",ad="UploadId",NVe="UploadIdMarker",LVe="UserMetadata",Tor="UploadPart",wor="UploadPartCopy",Dor="UploadPartCopyOutput",Oor="UploadPartCopyRequest",kor="UploadPartOutput",Nor="UploadPartRequest",Lor="URI",Mor="Upload",yX="Value",XF="VersioningConfiguration",vt="VersionId",MVe="VersionIdMarker",For="Versions",Bor="Version",JF="WebsiteConfiguration",Uor="WriteGetObjectResponse",qor="WriteGetObjectResponseRequest",$or="WriteOffsetBytes",YR="WebsiteRedirectLocation",Gor="Years",FVe="accept-ranges",jor="bucket-region",Ls="client",nm="continuation-token",nU="delimiter",Ms="error",_X="eventPayload",Vor="endpoint",sU="encoding-type",Hor="fetch-owner",Q="http",ho="httpError",m="httpHeader",zor="hostLabel",at="httpPayload",cS="httpPrefixHeaders",se="httpQuery",BVe="http://www.w3.org/2001/XMLSchema-instance",pi="id",Wor="idempotencyToken",UVe="key-marker",Kor="marker",Qor="max-buckets",Xor="max-directory-buckets",CX="max-keys",Jor="max-parts",Yor="max-uploads",ZR="prefix",oU="partNumber",Zor="part-number-marker",qVe="response-cache-control",$Ve="response-content-disposition",GVe="response-content-encoding",jVe="response-content-language",VVe="response-content-type",HVe="response-expires",zVe="streaming",eir="start-after",WVe="smithy.ts.sdk.synthetic.com.amazonaws.s3",ev="uploadId",tir="upload-id-marker",Fs="versionId",rir="version-id-marker",KVe="xsi",nir="xmlAttribute",Ae="xmlFlattened",L="xmlName",QVe="xmlNamespace",uS="x-amz-acl",XVe="x-amz-abort-date",sir="x-amz-access-point-alias",JVe="x-amz-abort-rule-id",oir="x-amz-archive-status",YVe="x-amz-bucket-arn",RX="x-amz-bypass-governance-retention",iir="x-amz-bucket-location-name",air="x-amz-bucket-location-type",cir="x-amz-bucket-object-lock-enabled",ZVe="x-amz-bucket-object-lock-token",uir="x-amz-bucket-region",vX="x-amz-checksum-algorithm",sm="x-amz-checksum-crc32",om="x-amz-checksum-crc32c",im="x-amz-checksum-crc64nvme",eHe="x-amz-checksum-mode",lir="x-amz-confirm-remove-self-bucket-access",am="x-amz-checksum-sha1",cm="x-amz-checksum-sha256",tHe="x-amz-copy-source",rHe="x-amz-copy-source-if-match",nHe="x-amz-copy-source-if-modified-since",sHe="x-amz-copy-source-if-none-match",oHe="x-amz-copy-source-if-unmodified-since",dir="x-amz-create-session-mode",pir="x-amz-copy-source-range",iHe="x-amz-copy-source-server-side-encryption-customer-algorithm",aHe="x-amz-copy-source-server-side-encryption-customer-key",cHe="x-amz-copy-source-server-side-encryption-customer-key-MD5",uHe="x-amz-copy-source-version-id",lS="x-amz-checksum-type",mir="x-amz-client-token",iU="x-amz-delete-marker",tv="x-amz-expiration",J="x-amz-expected-bucket-owner",gir="x-amz-fwd-error-code",fir="x-amz-fwd-error-message",hir="x-amz-fwd-header-Cache-Control",Sir="x-amz-fwd-header-Content-Disposition",Eir="x-amz-fwd-header-Content-Encoding",yir="x-amz-fwd-header-Content-Language",_ir="x-amz-fwd-header-Content-Range",Cir="x-amz-fwd-header-Content-Type",Rir="x-amz-fwd-header-ETag",vir="x-amz-fwd-header-Expires",xir="x-amz-fwd-header-Last-Modified",Pir="x-amz-fwd-header-accept-ranges",bir="x-amz-fwd-header-x-amz-checksum-crc32",Iir="x-amz-fwd-header-x-amz-checksum-crc32c",Air="x-amz-fwd-header-x-amz-checksum-crc64nvme",Tir="x-amz-fwd-header-x-amz-checksum-sha1",wir="x-amz-fwd-header-x-amz-checksum-sha256",Dir="x-amz-fwd-header-x-amz-delete-marker",Oir="x-amz-fwd-header-x-amz-expiration",kir="x-amz-fwd-header-x-amz-missing-meta",Nir="x-amz-fwd-header-x-amz-mp-parts-count",Lir="x-amz-fwd-header-x-amz-object-lock-legal-hold",Mir="x-amz-fwd-header-x-amz-object-lock-mode",Fir="x-amz-fwd-header-x-amz-object-lock-retain-until-date",Bir="x-amz-fwd-header-x-amz-restore",Uir="x-amz-fwd-header-x-amz-request-charged",qir="x-amz-fwd-header-x-amz-replication-status",$ir="x-amz-fwd-header-x-amz-storage-class",Gir="x-amz-fwd-header-x-amz-server-side-encryption",jir="x-amz-fwd-header-x-amz-server-side-encryption-aws-kms-key-id",Vir="x-amz-fwd-header-x-amz-server-side-encryption-bucket-key-enabled",Hir="x-amz-fwd-header-x-amz-server-side-encryption-customer-algorithm",zir="x-amz-fwd-header-x-amz-server-side-encryption-customer-key-MD5",Wir="x-amz-fwd-header-x-amz-tagging-count",Kir="x-amz-fwd-header-x-amz-version-id",Qir="x-amz-fwd-status",dS="x-amz-grant-full-control",pS="x-amz-grant-read",mS="x-amz-grant-read-acp",xX="x-amz-grant-write",gS="x-amz-grant-write-acp",Xir="x-amz-if-match-initiated-time",Jir="x-amz-if-match-last-modified-time",Yir="x-amz-if-match-size",fS="x-amz-meta-",PX="x-amz-mfa",Zir="x-amz-metadata-directive",lHe="x-amz-missing-meta",ear="x-amz-mp-object-size",tar="x-amz-max-parts",dHe="x-amz-mp-parts-count",rar="x-amz-object-attributes",rv="x-amz-object-lock-legal-hold",nv="x-amz-object-lock-mode",sv="x-amz-object-lock-retain-until-date",nar="x-amz-object-ownership",bX="x-amz-optional-object-attributes",sar="x-amz-object-size",oar="x-amz-part-number-marker",pHe="x-amz-restore",Vt="x-amz-request-charged",iar="x-amz-restore-output-path",At="x-amz-request-payer",aar="x-amz-request-route",mHe="x-amz-replication-status",car="x-amz-rename-source",uar="x-amz-rename-source-if-match",lar="x-amz-rename-source-if-modified-since",dar="x-amz-rename-source-if-none-match",par="x-amz-rename-source-if-unmodified-since",mar="x-amz-request-token",ov="x-amz-storage-class",Nt="x-amz-sdk-checksum-algorithm",gar="x-amz-skip-destination-validation",gHe="x-amz-source-expected-bucket-owner",So="x-amz-server-side-encryption",Eo="x-amz-server-side-encryption-aws-kms-key-id",yo="x-amz-server-side-encryption-bucket-key-enabled",cd="x-amz-server-side-encryption-context",rn="x-amz-server-side-encryption-customer-algorithm",aa="x-amz-server-side-encryption-customer-key",nn="x-amz-server-side-encryption-customer-key-MD5",IX="x-amz-tagging",fHe="x-amz-tagging-count",far="x-amz-tagging-directive",AX="x-amz-transition-default-minimum-object-size",oc="x-amz-version-id",har="x-amz-write-offset-bytes",iv="x-amz-website-redirect-location",Sar="xsi:type",f="com.amazonaws.s3",hHe=[0,f,$Q,8,0],$2e=[0,f,Msr,8,0],ca=[0,f,li,8,0],ud=[0,f,pu,8,0],hn=[0,f,us,8,0],av=[0,f,Nsr,{[zVe]:1},42],SHe=[3,f,OF,0,[Vn],[0]],Ear=[3,f,_je,0,[hYt],[1]],yar=[3,f,mJt,0,[jt],[[0,{[m]:Vt}]]],_ar=[3,f,gJt,0,[$,Qe,ad,It,X,Ner],[[0,1],[0,1],[0,{[se]:ev}],[0,{[m]:At}],[0,{[m]:J}],[6,{[m]:Xir}]]],Car=[3,f,DF,0,[Vn],[0]],EHe=[3,f,Yp,0,[WB,ia],[[()=>cU,{[L]:VB}],()=>mu]],Rar=[3,f,Eje,0,[ia],[0]],xar=[3,f,oJt,0,[qt,aS],[0,[()=>gu,{[L]:di,[Ae]:1}]]],TX=[3,f,AR,0,[$r,du,mVe],[0,[()=>Omr,0],()=>$pr]],Par=[3,f,iJt,0,[pVe],[()=>bar]],bar=[3,f,_Jt,0,[c4e,xJt,$,qt],[0,0,0,0]],Iar=[3,f,xje,0,[HQ],[[()=>umr,{[Ae]:1}]]],Aar=[3,f,$,0,[tm,UJt,MQ,NQ],[0,4,0,0]],Tar=[-3,f,vJt,{[Ms]:Ls,[ho]:409},[],[]];Gn.TypeRegistry.for(f).registerError(Tar,W2e);var war=[-3,f,PJt,{[Ms]:Ls,[ho]:409},[],[]];Gn.TypeRegistry.for(f).registerError(war,Q2e);var Dar=[3,f,bJt,0,[m7t,JR],[0,0]],Oar=[3,f,IJt,0,[XR],[[()=>UHe,{[L]:oS,[Ae]:1}]]],kar=[3,f,kF,0,[nX],[[()=>xHe,0]]],Nar=[3,f,Aje,0,[ss,os,is,as,cs,fo],[0,0,0,0,0,0]],Lar=[3,f,ZJt,0,[qt],[0]],Mar=[3,f,jJt,0,[YB],[[()=>imr,{[L]:ZB,[Ae]:1}]]],Far=[3,f,rYt,0,[tn,ss,os,is,as,cs,rm],[0,0,0,0,0,0,1]],Bar=[3,f,VJt,{[L]:zJt},[BF,$,Qe,rc,tn,ss,os,is,as,cs,fo,Ns,vt,us,ns,jt],[0,0,0,[0,{[m]:tv}],0,0,0,0,0,0,0,[0,{[m]:So}],[0,{[m]:oc}],[()=>hn,{[m]:Eo}],[2,{[m]:yo}],[0,{[m]:Vt}]]],Uar=[3,f,WJt,0,[$,Qe,A4e,ad,ss,os,is,as,cs,fo,drr,It,X,Yh,KR,Gr,li,jr],[[0,1],[0,1],[()=>Mar,{[L]:Tje,[at]:1}],[0,{[se]:ev}],[0,{[m]:sm}],[0,{[m]:om}],[0,{[m]:im}],[0,{[m]:am}],[0,{[m]:cm}],[0,{[m]:lS}],[1,{[m]:ear}],[0,{[m]:At}],[0,{[m]:J}],[0,{[m]:em}],[0,{[m]:Zh}],[0,{[m]:rn}],[()=>ca,{[m]:aa}],[0,{[m]:nn}]]],qar=[3,f,jje,0,[Per,itr],[0,0]],$ar=[3,f,qJt,0,[],[]],Gar=[3,f,JJt,0,[Dje,rc,Gje,vt,Ns,Gr,jr,us,pu,ns,jt],[[()=>Var,16],[0,{[m]:tv}],[0,{[m]:uHe}],[0,{[m]:oc}],[0,{[m]:So}],[0,{[m]:rn}],[0,{[m]:nn}],[()=>hn,{[m]:Eo}],[()=>ud,{[m]:cd}],[2,{[m]:yo}],[0,{[m]:Vt}]]],jar=[3,f,YJt,0,[qh,$,$h,st,Gh,jh,Vh,Hh,Nje,Lje,Mje,Fje,Bje,na,Wh,Kh,Qh,Xh,Yh,KR,Qe,eS,crr,por,Ns,Hn,YR,Gr,li,jr,us,pu,ns,Uje,$Q,qje,It,sa,nS,sS,rS,X,t4e],[[0,{[m]:uS}],[0,1],[0,{[m]:UR}],[0,{[m]:vX}],[0,{[m]:qR}],[0,{[m]:$R}],[0,{[m]:GR}],[0,{[m]:HR}],[0,{[m]:tHe}],[0,{[m]:rHe}],[4,{[m]:nHe}],[0,{[m]:sHe}],[4,{[m]:oHe}],[4,{[m]:na}],[0,{[m]:dS}],[0,{[m]:pS}],[0,{[m]:mS}],[0,{[m]:gS}],[0,{[m]:em}],[0,{[m]:Zh}],[0,1],[128,{[cS]:fS}],[0,{[m]:Zir}],[0,{[m]:far}],[0,{[m]:So}],[0,{[m]:ov}],[0,{[m]:iv}],[0,{[m]:rn}],[()=>ca,{[m]:aa}],[0,{[m]:nn}],[()=>hn,{[m]:Eo}],[()=>ud,{[m]:cd}],[2,{[m]:yo}],[0,{[m]:iHe}],[()=>hHe,{[m]:aHe}],[0,{[m]:cHe}],[0,{[m]:At}],[0,{[m]:IX}],[0,{[m]:nv}],[5,{[m]:sv}],[0,{[m]:rv}],[0,{[m]:J}],[0,{[m]:gHe}]]],Var=[3,f,Dje,0,[tn,sc,fo,ss,os,is,as,cs],[0,4,0,0,0,0,0,0]],Har=[3,f,Oje,0,[tn,sc,ss,os,is,as,cs],[0,4,0,0,0,0,0]],zar=[3,f,NF,0,[BQ],[[()=>BHe,{[L]:UQ,[Ae]:1}]]],War=[3,f,UQ,0,[Jh,cJt,dJt,hJt,_7t,irr],[0,[64,{[L]:uJt,[Ae]:1}],[64,{[L]:fJt,[Ae]:1}],[64,{[L]:SJt,[Ae]:1}],[64,{[L]:C7t,[Ae]:1}],1]],Kar=[3,f,PQ,0,[IQ,BF,$,aS],[0,()=>Ylr,()=>Dar,[()=>gu,0]]],Qar=[3,f,NJt,0,[$,er,st,TQ,X],[[0,1],[0,{[m]:Zt}],[0,{[m]:Nt}],[()=>Zlr,{[L]:TQ,[at]:1}],[0,{[m]:J}]]],Xar=[3,f,MJt,0,[$,er,st,wQ,X],[[0,1],[0,{[m]:Zt}],[0,{[m]:Nt}],[()=>rdr,{[L]:wQ,[at]:1}],[0,{[m]:J}]]],Jar=[3,f,FJt,0,[BF,NQ],[[0,{[m]:BF}],[0,{[m]:YVe}]]],Yar=[3,f,BJt,0,[qh,$,PQ,Wh,Kh,Qh,QQ,Xh,Nrr,q4e],[[0,{[m]:uS}],[0,1],[()=>Kar,{[L]:PQ,[at]:1}],[0,{[m]:dS}],[0,{[m]:pS}],[0,{[m]:mS}],[0,{[m]:xX}],[0,{[m]:gS}],[2,{[m]:cir}],[0,{[m]:nar}]]],Zar=[3,f,HJt,{[L]:Fer},[yje,Rje,$,Qe,ad,Ns,Gr,jr,us,pu,ns,jt,st,fo],[[4,{[m]:XVe}],[0,{[m]:JVe}],[0,{[L]:$}],0,0,[0,{[m]:So}],[0,{[m]:rn}],[0,{[m]:nn}],[()=>hn,{[m]:Eo}],[()=>ud,{[m]:cd}],[2,{[m]:yo}],[0,{[m]:Vt}],[0,{[m]:vX}],[0,{[m]:lS}]]],ecr=[3,f,KJt,0,[qh,$,$h,Gh,jh,Vh,Hh,na,Wh,Kh,Qh,Xh,Qe,eS,Ns,Hn,YR,Gr,li,jr,us,pu,ns,It,sa,nS,sS,rS,X,st,fo],[[0,{[m]:uS}],[0,1],[0,{[m]:UR}],[0,{[m]:qR}],[0,{[m]:$R}],[0,{[m]:GR}],[0,{[m]:HR}],[4,{[m]:na}],[0,{[m]:dS}],[0,{[m]:pS}],[0,{[m]:mS}],[0,{[m]:gS}],[0,1],[128,{[cS]:fS}],[0,{[m]:So}],[0,{[m]:ov}],[0,{[m]:iv}],[0,{[m]:rn}],[()=>ca,{[m]:aa}],[0,{[m]:nn}],[()=>hn,{[m]:Eo}],[()=>ud,{[m]:cd}],[2,{[m]:yo}],[0,{[m]:At}],[0,{[m]:IX}],[0,{[m]:nv}],[5,{[m]:sv}],[0,{[m]:rv}],[0,{[m]:J}],[0,{[m]:vX}],[0,{[m]:lS}]]],tcr=[3,f,sYt,{[L]:oYt},[Ns,us,pu,ns,L2e],[[0,{[m]:So}],[()=>hn,{[m]:Eo}],[()=>ud,{[m]:cd}],[2,{[m]:yo}],[()=>kpr,{[L]:L2e}]]],rcr=[3,f,aYt,0,[Ksr,$,Ns,us,pu,ns],[[0,{[m]:dir}],[0,1],[0,{[m]:So}],[()=>hn,{[m]:Eo}],[()=>ud,{[m]:cd}],[2,{[m]:yo}]]],ncr=[3,f,cYt,0,[I7t,gYt,Z4e,lX,i4e,J4e,yJt],[0,0,0,0,0,0,2]],scr=[3,f,uYt,0,[csr,Z4e,lX,i4e,J4e],[0,0,0,0,0]],ocr=[3,f,Wje,0,[O4e,zh,Gor],[0,1,1]],icr=[3,f,bQ,0,[zrr,ssr],[[()=>ymr,{[L]:j4e,[Ae]:1}],2]],acr=[3,f,yYt,0,[$,$r,X],[[0,1],[0,{[se]:pi}],[0,{[m]:J}]]],ccr=[3,f,CYt,0,[$,X],[[0,1],[0,{[m]:J}]]],ucr=[3,f,vYt,0,[$,X],[[0,1],[0,{[m]:J}]]],lcr=[3,f,IYt,0,[$,$r,X],[[0,1],[0,{[se]:pi}],[0,{[m]:J}]]],dcr=[3,f,PYt,0,[$,$r,X],[[0,1],[0,{[se]:pi}],[0,{[m]:J}]]],pcr=[3,f,TYt,0,[$,X],[[0,1],[0,{[m]:J}]]],mcr=[3,f,DYt,0,[$,X],[[0,1],[0,{[m]:J}]]],gcr=[3,f,LYt,0,[$,X],[[0,1],[0,{[m]:J}]]],fcr=[3,f,OYt,0,[$,$r,X],[[0,1],[0,{[se]:pi}],[0,{[m]:J}]]],hcr=[3,f,FYt,0,[$,X],[[0,1],[0,{[m]:J}]]],Scr=[3,f,UYt,0,[$,X],[[0,1],[0,{[m]:J}]]],Ecr=[3,f,$Yt,0,[$,X],[[0,1],[0,{[m]:J}]]],ycr=[3,f,qYt,0,[$,X],[[0,1],[0,{[m]:J}]]],_cr=[3,f,VYt,0,[$,X],[[0,1],[0,{[m]:J}]]],Ccr=[3,f,zYt,0,[$,X],[[0,1],[0,{[m]:J}]]],Rcr=[3,f,e7t,0,[Qe,vt,Zp,ZYt],[0,0,2,0]],vcr=[3,f,YYt,0,[ia,Qe,vt,g4e,sc],[()=>mu,0,0,2,4]],xcr=[3,f,Hje,0,[Vn],[0]],Pcr=[3,f,t7t,0,[Zp,vt,jt],[[2,{[m]:iU}],[0,{[m]:oc}],[0,{[m]:Vt}]]],bcr=[3,f,n7t,0,[$,Qe,oX,vt,It,LQ,X,Yh,Ler,Mer],[[0,1],[0,1],[0,{[m]:PX}],[0,{[se]:Fs}],[0,{[m]:At}],[2,{[m]:RX}],[0,{[m]:J}],[0,{[m]:em}],[6,{[m]:Jir}],[1,{[m]:Yir}]]],Icr=[3,f,r7t,{[L]:g7t},[f7t,jt,s4e],[[()=>amr,{[Ae]:1}],[0,{[m]:Vt}],[()=>lmr,{[L]:WR,[Ae]:1}]]],Acr=[3,f,s7t,0,[$,bQ,oX,It,LQ,X,st],[[0,1],[()=>icr,{[L]:bQ,[at]:1}],[0,{[m]:PX}],[0,{[m]:At}],[2,{[m]:RX}],[0,{[m]:J}],[0,{[m]:Nt}]]],Tcr=[3,f,i7t,0,[vt],[[0,{[m]:oc}]]],wcr=[3,f,a7t,0,[$,Qe,vt,X],[[0,1],[0,1],[0,{[se]:Fs}],[0,{[m]:J}]]],Dcr=[3,f,p7t,0,[$,X],[[0,1],[0,{[m]:J}]]],Ocr=[3,f,zB,0,[$,sJt,Hn,Eje,zR,uVe,D4e],[0,0,0,()=>Rar,()=>Lcr,()=>hpr,()=>sdr]],kcr=[3,f,Kje,0,[uor,hX,IVe],[0,0,0]],Ncr=[3,f,zQ,0,[HQ,str,ntr],[0,[()=>hn,0],0]],Lcr=[3,f,zR,0,[psr],[0]],Mcr=[-3,f,x7t,{[Ms]:Ls,[ho]:400},[],[]];Gn.TypeRegistry.for(f).registerError(Mcr,oje);var Fcr=[3,f,y7t,0,[],[]],Bcr=[3,f,WR,0,[Qe,vt,mYt,grr],[0,0,0,0]],wX=[3,f,E7t,0,[Yje,Zje],[0,0]],yHe=[3,f,VQ,0,[Qe],[0]],Ucr=[3,f,Jje,0,[],[]],qcr=[3,f,e4e,0,[Vn],[0]],$cr=[3,f,a4e,0,[tm,yX],[0,0]],Gcr=[3,f,q7t,0,[OF],[[()=>SHe,16]]],jcr=[3,f,G7t,0,[$,X],[[0,1],[0,{[m]:J}]]],Vcr=[3,f,L7t,{[L]:DF},[Vn,jt],[0,[0,{[m]:Vt}]]],Hcr=[3,f,F7t,0,[$,X,It],[[0,1],[0,{[m]:J}],[0,{[m]:At}]]],zcr=[3,f,$7t,{[L]:Yp},[ia,WB],[()=>mu,[()=>cU,{[L]:VB}]]],Wcr=[3,f,j7t,0,[$,X],[[0,1],[0,{[m]:J}]]],Kcr=[3,f,M7t,0,[AR],[[()=>TX,16]]],Qcr=[3,f,B7t,0,[$,$r,X],[[0,1],[0,{[se]:pi}],[0,{[m]:J}]]],Xcr=[3,f,z7t,{[L]:NF},[BQ],[[()=>BHe,{[L]:UQ,[Ae]:1}]]],Jcr=[3,f,W7t,0,[$,X],[[0,1],[0,{[m]:J}]]],Ycr=[3,f,Q7t,0,[QF],[[()=>MHe,16]]],Zcr=[3,f,X7t,0,[$,X],[[0,1],[0,{[m]:J}]]],eur=[3,f,tZt,0,[wR],[[()=>DX,16]]],tur=[3,f,rZt,0,[$,$r,X],[[0,1],[0,{[se]:pi}],[0,{[m]:J}]]],rur=[3,f,Y7t,0,[TR],[[()=>OX,16]]],nur=[3,f,Z7t,0,[$,$r,X],[[0,1],[0,{[se]:pi}],[0,{[m]:J}]]],sur=[3,f,oZt,{[L]:AQ},[XR,EX],[[()=>UHe,{[L]:oS,[Ae]:1}],[0,{[m]:AX}]]],our=[3,f,iZt,0,[$,X],[[0,1],[0,{[m]:J}]]],iur=[3,f,aZt,{[L]:IQ},[IQ],[0]],aur=[3,f,uZt,0,[$,X],[[0,1],[0,{[m]:J}]]],cur=[3,f,cZt,{[L]:kF},[nX],[[()=>xHe,0]]],uur=[3,f,lZt,0,[$,X],[[0,1],[0,{[m]:J}]]],lur=[3,f,mZt,0,[u4e],[[()=>pur,16]]],dur=[3,f,fZt,0,[$,X],[[0,1],[0,{[m]:J}]]],pur=[3,f,u4e,0,[v4e],[()=>edr]],mur=[3,f,yZt,0,[l4e],[[()=>fur,16]]],gur=[3,f,_Zt,0,[$,X],[[0,1],[0,{[m]:J}]]],fur=[3,f,l4e,0,[I4e,Vn,WR],[()=>ndr,0,()=>wX]],hur=[3,f,gZt,0,[DR],[[()=>NX,16]]],Sur=[3,f,hZt,0,[$,$r,X],[[0,1],[0,{[se]:pi}],[0,{[m]:J}]]],Eur=[3,f,RZt,0,[$,X],[[0,1],[0,{[m]:J}]]],yur=[3,f,xZt,0,[qF],[[()=>wHe,16]]],_ur=[3,f,PZt,0,[$,X],[[0,1],[0,{[m]:J}]]],Cur=[3,f,IZt,0,[K4e],[[0,16]]],Rur=[3,f,AZt,0,[$,X],[[0,1],[0,{[m]:J}]]],vur=[3,f,wZt,0,[V4e],[[()=>Pdr,16]]],xur=[3,f,DZt,0,[$,X],[[0,1],[0,{[m]:J}]]],Pur=[3,f,kZt,0,[VF],[[()=>kHe,16]]],bur=[3,f,FZt,0,[$,X],[[0,1],[0,{[m]:J}]]],Iur=[3,f,LZt,{[L]:HF},[H4e],[0]],Aur=[3,f,MZt,0,[$,X],[[0,1],[0,{[m]:J}]]],Tur=[3,f,UZt,{[L]:sa},[rU],[[()=>gu,0]]],wur=[3,f,qZt,0,[$,X],[[0,1],[0,{[m]:J}]]],Dur=[3,f,GZt,{[L]:XF},[Vn,b4e],[0,[0,{[L]:x4e}]]],Our=[3,f,jZt,0,[$,X],[[0,1],[0,{[m]:J}]]],kur=[3,f,HZt,{[L]:JF},[uX,YQ,VQ,dX],[()=>OHe,()=>CHe,()=>yHe,[()=>$He,0]]],Nur=[3,f,zZt,0,[$,X],[[0,1],[0,{[m]:J}]]],Lur=[3,f,QZt,{[L]:Yp},[ia,WB,jt],[()=>mu,[()=>cU,{[L]:VB}],[0,{[m]:Vt}]]],Mur=[3,f,YZt,0,[$,Qe,vt,It,X],[[0,1],[0,1],[0,{[se]:Fs}],[0,{[m]:At}],[0,{[m]:J}]]],Fur=[3,f,XZt,{[L]:ZZt},[Zp,sc,vt,jt,tn,Aje,qrr,Hn,Grr],[[2,{[m]:iU}],[4,{[m]:sX}],[0,{[m]:oc}],[0,{[m]:Vt}],0,()=>Nar,[()=>Bur,0],0,1]],Bur=[3,f,JZt,0,[yor,JB,M4e,QB,nc,YB],[[1,{[L]:XB}],0,0,1,2,[()=>vmr,{[L]:ZB,[Ae]:1}]]],Uur=[3,f,eer,0,[$,Qe,vt,QB,JB,Gr,li,jr,It,X,brr],[[0,1],[0,1],[0,{[se]:Fs}],[1,{[m]:tar}],[0,{[m]:oar}],[0,{[m]:rn}],[()=>ca,{[m]:aa}],[0,{[m]:nn}],[0,{[m]:At}],[0,{[m]:J}],[64,{[m]:rar}]]],qur=[3,f,ier,0,[UF],[[()=>IHe,{[L]:UF,[at]:1}]]],$ur=[3,f,aer,0,[$,Qe,vt,It,X],[[0,1],[0,1],[0,{[se]:Fs}],[0,{[m]:At}],[0,{[m]:J}]]],Gur=[3,f,ner,0,[$F],[[()=>bHe,16]]],jur=[3,f,ser,0,[$,X],[[0,1],[0,{[m]:J}]]],Vur=[3,f,cer,0,[BR,Zp,kQ,rc,gX,sc,VR,tn,ss,os,is,as,cs,fo,iX,vt,$h,Gh,jh,Vh,qQ,Hh,na,LF,YR,Ns,eS,Gr,jr,us,ns,Hn,jt,pX,XB,SX,nS,sS,rS],[[()=>av,16],[2,{[m]:iU}],[0,{[m]:FVe}],[0,{[m]:tv}],[0,{[m]:pHe}],[4,{[m]:sX}],[1,{[m]:jR}],[0,{[m]:tn}],[0,{[m]:sm}],[0,{[m]:om}],[0,{[m]:im}],[0,{[m]:am}],[0,{[m]:cm}],[0,{[m]:lS}],[1,{[m]:lHe}],[0,{[m]:oc}],[0,{[m]:UR}],[0,{[m]:qR}],[0,{[m]:$R}],[0,{[m]:GR}],[0,{[m]:kje}],[0,{[m]:HR}],[4,{[m]:na}],[0,{[m]:LF}],[0,{[m]:iv}],[0,{[m]:So}],[128,{[cS]:fS}],[0,{[m]:rn}],[0,{[m]:nn}],[()=>hn,{[m]:Eo}],[2,{[m]:yo}],[0,{[m]:ov}],[0,{[m]:Vt}],[0,{[m]:mHe}],[1,{[m]:dHe}],[1,{[m]:fHe}],[0,{[m]:nv}],[5,{[m]:sv}],[0,{[m]:rv}]]],Hur=[3,f,uer,0,[$,Yh,f4e,KR,E4e,Qe,zF,eVe,tVe,rVe,nVe,sVe,oVe,vt,Gr,li,jr,It,rm,X,wje],[[0,1],[0,{[m]:em}],[4,{[m]:ZQ}],[0,{[m]:Zh}],[4,{[m]:tX}],[0,1],[0,{[m]:zF}],[0,{[se]:qVe}],[0,{[se]:$Ve}],[0,{[se]:GVe}],[0,{[se]:jVe}],[0,{[se]:VVe}],[6,{[se]:HVe}],[0,{[se]:Fs}],[0,{[m]:rn}],[()=>ca,{[m]:aa}],[0,{[m]:nn}],[0,{[m]:At}],[1,{[se]:oU}],[0,{[m]:J}],[0,{[m]:eHe}]]],zur=[3,f,ler,0,[WF],[[()=>AHe,{[L]:WF,[at]:1}]]],Wur=[3,f,der,0,[$,Qe,vt,It,X],[[0,1],[0,1],[0,{[se]:Fs}],[0,{[m]:At}],[0,{[m]:J}]]],Kur=[3,f,ger,{[L]:sa},[vt,rU],[[0,{[m]:oc}],[()=>gu,0]]],Qur=[3,f,her,0,[$,Qe,vt,X,It],[[0,1],[0,1],[0,{[se]:Fs}],[0,{[m]:J}],[0,{[m]:At}]]],Xur=[3,f,fer,0,[BR,jt],[[()=>av,16],[0,{[m]:Vt}]]],Jur=[3,f,Ser,0,[$,Qe,It,X],[[0,1],[0,1],[0,{[m]:At}],[0,{[m]:J}]]],Yur=[3,f,_er,0,[GF],[[()=>DHe,16]]],Zur=[3,f,Cer,0,[$,X],[[0,1],[0,{[m]:J}]]],elr=[3,f,d4e,0,[wVe],[0]],tlr=[3,f,XQ,0,[JQ,W4e],[[()=>_He,{[QVe]:[KVe,BVe]}],0]],_He=[3,f,JQ,0,[jQ,S7t,Jh,Lor,JR],[0,0,0,0,[0,{[L]:Sar,[nir]:1}]]],rlr=[3,f,ver,0,[NQ,TJt,AJt,MQ,EJt],[[0,{[m]:YVe}],[0,{[m]:air}],[0,{[m]:iir}],[0,{[m]:uir}],[2,{[m]:sir}]]],nlr=[3,f,xer,0,[$,X],[[0,1],[0,{[m]:J}]]],slr=[3,f,Ier,0,[Zp,kQ,rc,gX,RJt,sc,VR,ss,os,is,as,cs,fo,tn,iX,vt,$h,Gh,jh,Vh,Hh,qQ,na,LF,YR,Ns,eS,Gr,jr,us,ns,Hn,jt,pX,XB,SX,nS,sS,rS],[[2,{[m]:iU}],[0,{[m]:FVe}],[0,{[m]:tv}],[0,{[m]:pHe}],[0,{[m]:oir}],[4,{[m]:sX}],[1,{[m]:jR}],[0,{[m]:sm}],[0,{[m]:om}],[0,{[m]:im}],[0,{[m]:am}],[0,{[m]:cm}],[0,{[m]:lS}],[0,{[m]:tn}],[1,{[m]:lHe}],[0,{[m]:oc}],[0,{[m]:UR}],[0,{[m]:qR}],[0,{[m]:$R}],[0,{[m]:GR}],[0,{[m]:HR}],[0,{[m]:kje}],[4,{[m]:na}],[0,{[m]:LF}],[0,{[m]:iv}],[0,{[m]:So}],[128,{[cS]:fS}],[0,{[m]:rn}],[0,{[m]:nn}],[()=>hn,{[m]:Eo}],[2,{[m]:yo}],[0,{[m]:ov}],[0,{[m]:Vt}],[0,{[m]:mHe}],[1,{[m]:dHe}],[1,{[m]:fHe}],[0,{[m]:nv}],[5,{[m]:sv}],[0,{[m]:rv}]]],olr=[3,f,Aer,0,[$,Yh,f4e,KR,E4e,Qe,zF,eVe,tVe,rVe,nVe,sVe,oVe,vt,Gr,li,jr,It,rm,X,wje],[[0,1],[0,{[m]:em}],[4,{[m]:ZQ}],[0,{[m]:Zh}],[4,{[m]:tX}],[0,1],[0,{[m]:zF}],[0,{[se]:qVe}],[0,{[se]:$Ve}],[0,{[se]:GVe}],[0,{[se]:jVe}],[0,{[se]:VVe}],[6,{[se]:HVe}],[0,{[se]:Fs}],[0,{[m]:rn}],[()=>ca,{[m]:aa}],[0,{[m]:nn}],[0,{[m]:At}],[1,{[se]:oU}],[0,{[m]:J}],[0,{[m]:eHe}]]],ilr=[-3,f,$er,{[Ms]:Ls,[ho]:400},[],[]];Gn.TypeRegistry.for(f).registerError(ilr,mje);var CHe=[3,f,YQ,0,[ior],[0]],RHe=[3,f,rX,0,[Jh,jQ],[0,0]],vHe=[3,f,eX,0,[$je,pYt,y4e,rsr],[()=>ncr,0,()=>vlr,()=>Rdr]],alr=[3,f,zer,0,[qt,aS],[0,[()=>gu,{[L]:di,[Ae]:1}]]],DX=[3,f,wR,0,[$r,du,Vn,_or],[0,[()=>clr,0],0,[()=>Amr,{[L]:DVe,[Ae]:1}]]],clr=[3,f,Ker,0,[qt,di,FR],[0,()=>hS,[()=>alr,0]]],ulr=[-3,f,Uer,{[Ms]:Ls,[ho]:403},[Hn,vje],[0,0]];Gn.TypeRegistry.for(f).registerError(ulr,Z2e);var llr=[-3,f,Ger,{[Ms]:Ls,[ho]:400},[],[]];Gn.TypeRegistry.for(f).registerError(llr,aje);var dlr=[-3,f,Qer,{[Ms]:Ls,[ho]:400},[],[]];Gn.TypeRegistry.for(f).registerError(dlr,uje);var OX=[3,f,TR,0,[zB,Der,du,$r,qer,wrr,sor],[[()=>plr,0],2,()=>glr,0,0,[()=>gmr,0],()=>hlr]],plr=[3,f,wer,0,[pVe],[[()=>flr,0]]],mlr=[3,f,Oer,0,[CVe,_Ve],[[()=>Bpr,{[L]:EVe}],[()=>Mpr,{[L]:gVe}]]],glr=[3,f,ker,0,[qt],[0]],flr=[3,f,Ver,0,[lJt,$,c4e,qt,zQ],[0,0,0,0,[()=>mlr,0]]],hlr=[3,f,Her,0,[O7t],[0]],Slr=[3,f,MF,0,[GQ,zR],[0,()=>kX]],Elr=[3,f,S4e,0,[GQ,TVe,WR,tU,fX],[0,0,()=>wX,0,0]],ylr=[3,f,Wer,0,[GQ,zR],[0,()=>kX]],_lr=[3,f,FF,0,[eU,zR],[()=>MX,()=>kX]],Clr=[3,f,_4e,0,[TVe,WR,tU,fX,eU],[0,()=>wX,0,0,()=>MX]],Rlr=[3,f,Zer,0,[eU],[()=>MX]],vlr=[3,f,Jer,0,[JR],[0]],xlr=[3,f,Yer,0,[lX],[0]],Plr=[3,f,wtr,0,[$r,Ttr,WQ,du],[0,[0,{[L]:$Jt}],[64,{[L]:KQ,[Ae]:1}],[()=>LX,0]]],blr=[3,f,Atr,0,[Qje,zh,R7t],[5,1,2]],Ilr=[3,f,err,0,[rc,Jh,qt,du,Vn,vor,xrr,F4e,_je],[()=>blr,0,0,[()=>Tlr,0],0,[()=>wmr,{[L]:kVe,[Ae]:1}],[()=>Emr,{[L]:B4e,[Ae]:1}],()=>adr,()=>Ear]],Alr=[3,f,trr,0,[qt,aS,$4e,G4e],[0,[()=>gu,{[L]:di,[Ae]:1}],1,1]],Tlr=[3,f,rrr,0,[qt,di,$4e,G4e,FR],[0,()=>hS,1,1,[()=>Alr,0]]],wlr=[3,f,dtr,{[L]:ptr},[nc,ks,QR,Sje],[2,0,0,[()=>omr,{[L]:AR,[Ae]:1}]]],Dlr=[3,f,mtr,0,[$,ks,X],[[0,1],[0,{[se]:nm}],[0,{[m]:J}]]],Olr=[3,f,Etr,0,[nc,ks,QR,h4e],[2,0,0,[()=>pmr,{[L]:wR,[Ae]:1}]]],klr=[3,f,ytr,0,[$,ks,X],[[0,1],[0,{[se]:nm}],[0,{[m]:J}]]],Nlr=[3,f,ftr,{[L]:Ntr},[ks,m4e,nc,QR],[0,[()=>mmr,{[L]:TR,[Ae]:1}],2,0]],Llr=[3,f,htr,0,[$,ks,X],[[0,1],[0,{[se]:nm}],[0,{[m]:J}]]],Mlr=[3,f,Ctr,{[L]:Ltr},[nc,ks,QR,R4e],[2,0,0,[()=>hmr,{[L]:DR,[Ae]:1}]]],Flr=[3,f,Rtr,0,[$,ks,X],[[0,1],[0,{[se]:nm}],[0,{[m]:J}]]],Blr=[3,f,vtr,{[L]:atr},[FQ,ia,ks,qt],[[()=>FHe,0],()=>mu,0,0]],Ulr=[3,f,xtr,0,[arr,ks,qt,MQ],[[1,{[se]:Qor}],[0,{[se]:nm}],[0,{[se]:ZR}],[0,{[se]:jor}]]],qlr=[3,f,btr,{[L]:ctr},[FQ,ks],[[()=>FHe,0],0]],$lr=[3,f,Itr,0,[ks,urr],[[0,{[se]:nm}],[1,{[se]:Xor}]]],Glr=[3,f,Btr,{[L]:Utr},[$,KB,NVe,N4e,qt,od,Rrr,T4e,nc,xor,HB,id,jt],[0,0,0,0,0,0,0,1,2,[()=>Smr,{[L]:Mor,[Ae]:1}],[()=>aU,{[Ae]:1}],0,[0,{[m]:Vt}]]],jlr=[3,f,qtr,0,[$,od,id,KB,T4e,qt,NVe,X,It],[[0,1],[0,{[se]:nU}],[0,{[se]:sU}],[0,{[se]:UVe}],[1,{[se]:Yor}],[0,{[se]:ZR}],[0,{[se]:tir}],[0,{[m]:J}],[0,{[m]:At}]]],Vlr=[3,f,Gtr,{[L]:C4e},[nc,w4e,Err,Vje,tm,qt,od,tS,HB,id,jt],[2,0,0,[()=>qHe,{[Ae]:1}],0,0,0,1,[()=>aU,{[Ae]:1}],0,[0,{[m]:Vt}]]],Hlr=[3,f,jtr,0,[$,od,id,w4e,tS,qt,It,X,aX],[[0,1],[0,{[se]:nU}],[0,{[se]:sU}],[0,{[se]:Kor}],[1,{[se]:CX}],[0,{[se]:ZR}],[0,{[m]:At}],[0,{[m]:J}],[64,{[m]:bX}]]],zlr=[3,f,Htr,{[L]:C4e},[nc,Vje,tm,qt,od,tS,HB,id,etr,ks,QR,dVe,jt],[2,[()=>qHe,{[Ae]:1}],0,0,0,1,[()=>aU,{[Ae]:1}],0,1,0,0,0,[0,{[m]:Vt}]]],Wlr=[3,f,Wtr,0,[$,od,id,tS,qt,ks,A7t,dVe,It,X,aX],[[0,1],[0,{[se]:nU}],[0,{[se]:sU}],[1,{[se]:CX}],[0,{[se]:ZR}],[0,{[se]:nm}],[2,{[se]:Hor}],[0,{[se]:eir}],[0,{[m]:At}],[0,{[m]:J}],[64,{[m]:bX}]]],Klr=[3,f,ztr,{[L]:srr},[nc,KB,MVe,N4e,vrr,For,zje,tm,qt,od,tS,HB,id,jt],[2,0,0,0,0,[()=>_mr,{[L]:Bor,[Ae]:1}],[()=>cmr,{[L]:Zp,[Ae]:1}],0,0,0,1,[()=>aU,{[Ae]:1}],0,[0,{[m]:Vt}]]],Qlr=[3,f,Ktr,0,[$,od,id,KB,tS,qt,MVe,X,It,aX],[[0,1],[0,{[se]:nU}],[0,{[se]:sU}],[0,{[se]:UVe}],[1,{[se]:CX}],[0,{[se]:ZR}],[0,{[se]:rir}],[0,{[m]:J}],[0,{[m]:At}],[64,{[m]:bX}]]],Xlr=[3,f,Jtr,{[L]:Ytr},[yje,Rje,$,Qe,ad,JB,M4e,QB,nc,YB,rX,ia,Hn,jt,st,fo],[[4,{[m]:XVe}],[0,{[m]:JVe}],0,0,0,0,0,1,2,[()=>Rmr,{[L]:ZB,[Ae]:1}],()=>RHe,()=>mu,0,[0,{[m]:Vt}],0,0]],Jlr=[3,f,Ztr,0,[$,Qe,QB,JB,ad,It,X,Gr,li,jr],[[0,1],[0,1],[1,{[se]:Jor}],[0,{[se]:Zor}],[0,{[se]:ev}],[0,{[m]:At}],[0,{[m]:J}],[0,{[m]:rn}],[()=>ca,{[m]:aa}],[0,{[m]:nn}]]],Ylr=[3,f,ktr,0,[JR,tm],[0,0]],xHe=[3,f,nX,0,[cor,bVe,Eor,AVe],[0,[()=>Imr,0],0,[()=>Vpr,0]]],Zlr=[3,f,TQ,0,[FF,MF],[()=>_lr,()=>Slr]],edr=[3,f,v4e,0,[Kje,_4e,S4e],[()=>kcr,()=>Clr,()=>Elr]],tdr=[3,f,P4e,0,[tm,yX],[0,0]],rdr=[3,f,wQ,0,[RVe],[()=>Ppr]],ndr=[3,f,I4e,0,[vVe],[()=>bpr]],kX=[3,f,prr,0,[ksr,rtr],[0,0]],sdr=[3,f,D4e,0,[Vn,P7t],[0,()=>NHe]],odr=[3,f,orr,0,[qt,aS,Cje],[0,[()=>gu,{[L]:di,[Ae]:1}],0]],NX=[3,f,DR,0,[$r,du],[0,[()=>kmr,0]]],idr=[3,f,A4e,0,[ad,Qe,Xer,Hn,ia,rX,st,fo],[0,0,4,0,()=>mu,()=>RHe,0,0]],adr=[3,f,F4e,0,[k4e,L4e],[1,1]],cdr=[3,f,B4e,0,[k4e,Hn,L4e],[1,0,1]],udr=[-3,f,yrr,{[Ms]:Ls,[ho]:404},[],[]];Gn.TypeRegistry.for(f).registerError(udr,J2e);var ldr=[-3,f,_rr,{[Ms]:Ls,[ho]:404},[],[]];Gn.TypeRegistry.for(f).registerError(ldr,tje);var ddr=[-3,f,Crr,{[Ms]:Ls,[ho]:404},[],[]];Gn.TypeRegistry.for(f).registerError(ddr,j2e);var pdr=[-3,f,Srr,{[Ms]:Ls},[],[]];Gn.TypeRegistry.for(f).registerError(pdr,nje);var PHe=[3,f,DQ,0,[dor,asr,Otr,Jje],[[()=>Tmr,{[L]:PVe,[Ae]:1}],[()=>xmr,{[L]:Y4e,[Ae]:1}],[()=>fmr,{[L]:GJt,[Ae]:1}],()=>Ucr]],LX=[3,f,hrr,0,[Qe],[[()=>vpr,{[L]:zsr}]]],mdr=[3,f,j4e,0,[Qe,sc,tn,st,fo,iS,Hn,ia,mX],[0,4,0,[64,{[Ae]:1}],0,1,0,()=>mu,()=>LHe]],gdr=[-3,f,Irr,{[Ms]:Ls,[ho]:403},[],[]];Gn.TypeRegistry.for(f).registerError(gdr,fje);var fdr=[3,f,Drr,0,[Qe,vt,tn,Mtr,iS],[0,0,0,6,1]],bHe=[3,f,$F,0,[krr,oS],[0,()=>hdr]],IHe=[3,f,Lrr,0,[Vn],[0]],AHe=[3,f,Mrr,0,[O4e,wsr],[0,5]],hdr=[3,f,Frr,0,[Wje],[()=>ocr]],Sdr=[-3,f,Urr,{[Ms]:Ls,[ho]:403},[],[]];Gn.TypeRegistry.for(f).registerError(Sdr,H2e);var Edr=[3,f,$rr,0,[rm,iS,ss,os,is,as,cs],[1,1,0,0,0,0,0]],ydr=[3,f,Vrr,0,[tn,st,fo,iS,Hn,Qe,vt,g4e,sc,ia,mX],[0,[64,{[Ae]:1}],0,1,0,0,0,2,4,()=>mu,()=>LHe]],_dr=[3,f,U4e,0,[nor],[[()=>xpr,0]]],THe=[3,f,cX,0,[$je,y4e],[()=>scr,()=>xlr]],mu=[3,f,ia,0,[jQ,Jh],[0,0]],wHe=[3,f,qF,0,[XR],[[()=>Cmr,{[L]:oS,[Ae]:1}]]],Cdr=[3,f,Arr,0,[q4e],[0]],Rdr=[3,f,Nnr,0,[],[]],vdr=[3,f,ZB,0,[rm,sc,tn,iS,ss,os,is,as,cs],[1,4,0,1,0,0,0,0,0]],xdr=[3,f,jF,{[L]:jF},[Onr],[0]],Pdr=[3,f,V4e,0,[M2e],[[2,{[L]:M2e}]]],bdr=[3,f,Q4e,0,[Ije,Pje,bje],[1,1,1]],Idr=[3,f,knr,0,[Xje],[[()=>bdr,{[_X]:1}]]],DHe=[3,f,GF,0,[k2e,F2e,N2e,B2e],[[2,{[L]:k2e}],[2,{[L]:F2e}],[2,{[L]:N2e}],[2,{[L]:B2e}]]],Adr=[3,f,Yrr,0,[$,er,st,X,OF],[[0,1],[0,{[m]:Zt}],[0,{[m]:Nt}],[0,{[m]:J}],[()=>SHe,{[L]:OF,[at]:1}]]],Tdr=[3,f,Qrr,0,[$,DF,X,st],[[0,1],[()=>Car,{[L]:DF,[at]:1}],[0,{[m]:J}],[0,{[m]:Nt}]]],wdr=[3,f,Zrr,0,[qh,Yp,$,er,st,Wh,Kh,Qh,QQ,Xh,X],[[0,{[m]:uS}],[()=>EHe,{[L]:Yp,[at]:1}],[0,1],[0,{[m]:Zt}],[0,{[m]:Nt}],[0,{[m]:dS}],[0,{[m]:pS}],[0,{[m]:mS}],[0,{[m]:xX}],[0,{[m]:gS}],[0,{[m]:J}]]],Ddr=[3,f,Xrr,0,[$,$r,AR,X],[[0,1],[0,{[se]:pi}],[()=>TX,{[L]:AR,[at]:1}],[0,{[m]:J}]]],Odr=[3,f,rnr,0,[$,NF,er,st,X],[[0,1],[()=>zar,{[L]:NF,[at]:1}],[0,{[m]:Zt}],[0,{[m]:Nt}],[0,{[m]:J}]]],kdr=[3,f,snr,0,[$,er,st,QF,X],[[0,1],[0,{[m]:Zt}],[0,{[m]:Nt}],[()=>MHe,{[L]:QF,[at]:1}],[0,{[m]:J}]]],Ndr=[3,f,cnr,0,[$,$r,X,wR],[[0,1],[0,{[se]:pi}],[0,{[m]:J}],[()=>DX,{[L]:wR,[at]:1}]]],Ldr=[3,f,inr,0,[$,$r,TR,X],[[0,1],[0,{[se]:pi}],[()=>OX,{[L]:TR,[at]:1}],[0,{[m]:J}]]],Mdr=[3,f,dnr,0,[EX],[[0,{[m]:AX}]]],Fdr=[3,f,pnr,0,[$,st,AQ,X,EX],[[0,1],[0,{[m]:Nt}],[()=>Oar,{[L]:AQ,[at]:1}],[0,{[m]:J}],[0,{[m]:AX}]]],Bdr=[3,f,mnr,0,[$,kF,er,st,X],[[0,1],[()=>kar,{[L]:kF,[at]:1}],[0,{[m]:Zt}],[0,{[m]:Nt}],[0,{[m]:J}]]],Udr=[3,f,fnr,0,[$,$r,DR,X],[[0,1],[0,{[se]:pi}],[()=>NX,{[L]:DR,[at]:1}],[0,{[m]:J}]]],qdr=[3,f,Snr,0,[$,DQ,X,Usr],[[0,1],[()=>PHe,{[L]:DQ,[at]:1}],[0,{[m]:J}],[2,{[m]:gar}]]],$dr=[3,f,ynr,0,[$,er,X,qF,st],[[0,1],[0,{[m]:Zt}],[0,{[m]:J}],[()=>wHe,{[L]:qF,[at]:1}],[0,{[m]:Nt}]]],Gdr=[3,f,Cnr,0,[$,er,st,nYt,K4e,X],[[0,1],[0,{[m]:Zt}],[0,{[m]:Nt}],[2,{[m]:lir}],[0,16],[0,{[m]:J}]]],jdr=[3,f,Pnr,0,[$,er,st,VF,OVe,X],[[0,1],[0,{[m]:Zt}],[0,{[m]:Nt}],[()=>kHe,{[L]:VF,[at]:1}],[0,{[m]:ZVe}],[0,{[m]:J}]]],Vdr=[3,f,xnr,0,[$,er,st,HF,X],[[0,1],[0,{[m]:Zt}],[0,{[m]:Nt}],[()=>Spr,{[L]:HF,[at]:1}],[0,{[m]:J}]]],Hdr=[3,f,Inr,0,[$,er,st,sa,X],[[0,1],[0,{[m]:Zt}],[0,{[m]:Nt}],[()=>FX,{[L]:sa,[at]:1}],[0,{[m]:J}]]],zdr=[3,f,Tnr,0,[$,er,st,oX,XF,X],[[0,1],[0,{[m]:Zt}],[0,{[m]:Nt}],[0,{[m]:PX}],[()=>tmr,{[L]:XF,[at]:1}],[0,{[m]:J}]]],Wdr=[3,f,Dnr,0,[$,er,st,JF,X],[[0,1],[0,{[m]:Zt}],[0,{[m]:Nt}],[()=>rmr,{[L]:JF,[at]:1}],[0,{[m]:J}]]],Kdr=[3,f,Bnr,0,[jt],[[0,{[m]:Vt}]]],Qdr=[3,f,Unr,0,[qh,Yp,$,er,st,Wh,Kh,Qh,QQ,Xh,Qe,It,vt,X],[[0,{[m]:uS}],[()=>EHe,{[L]:Yp,[at]:1}],[0,1],[0,{[m]:Zt}],[0,{[m]:Nt}],[0,{[m]:dS}],[0,{[m]:pS}],[0,{[m]:mS}],[0,{[m]:xX}],[0,{[m]:gS}],[0,1],[0,{[m]:At}],[0,{[se]:Fs}],[0,{[m]:J}]]],Xdr=[3,f,Vnr,0,[jt],[[0,{[m]:Vt}]]],Jdr=[3,f,Hnr,0,[$,Qe,UF,It,vt,er,st,X],[[0,1],[0,1],[()=>IHe,{[L]:UF,[at]:1}],[0,{[m]:At}],[0,{[se]:Fs}],[0,{[m]:Zt}],[0,{[m]:Nt}],[0,{[m]:J}]]],Ydr=[3,f,$nr,0,[jt],[[0,{[m]:Vt}]]],Zdr=[3,f,Gnr,0,[$,$F,It,OVe,er,st,X],[[0,1],[()=>bHe,{[L]:$F,[at]:1}],[0,{[m]:At}],[0,{[m]:ZVe}],[0,{[m]:Zt}],[0,{[m]:Nt}],[0,{[m]:J}]]],epr=[3,f,znr,0,[rc,tn,ss,os,is,as,cs,fo,Ns,vt,Gr,jr,us,pu,ns,iS,jt],[[0,{[m]:tv}],[0,{[m]:tn}],[0,{[m]:sm}],[0,{[m]:om}],[0,{[m]:im}],[0,{[m]:am}],[0,{[m]:cm}],[0,{[m]:lS}],[0,{[m]:So}],[0,{[m]:oc}],[0,{[m]:rn}],[0,{[m]:nn}],[()=>hn,{[m]:Eo}],[()=>ud,{[m]:cd}],[2,{[m]:yo}],[1,{[m]:sar}],[0,{[m]:Vt}]]],tpr=[3,f,Wnr,0,[qh,BR,$,$h,Gh,jh,Vh,VR,er,Hh,st,ss,os,is,as,cs,na,Yh,KR,Wh,Kh,Qh,Xh,Qe,$or,eS,Ns,Hn,YR,Gr,li,jr,us,pu,ns,It,sa,nS,sS,rS,X],[[0,{[m]:uS}],[()=>av,16],[0,1],[0,{[m]:UR}],[0,{[m]:qR}],[0,{[m]:$R}],[0,{[m]:GR}],[1,{[m]:jR}],[0,{[m]:Zt}],[0,{[m]:HR}],[0,{[m]:Nt}],[0,{[m]:sm}],[0,{[m]:om}],[0,{[m]:im}],[0,{[m]:am}],[0,{[m]:cm}],[4,{[m]:na}],[0,{[m]:em}],[0,{[m]:Zh}],[0,{[m]:dS}],[0,{[m]:pS}],[0,{[m]:mS}],[0,{[m]:gS}],[0,1],[1,{[m]:har}],[128,{[cS]:fS}],[0,{[m]:So}],[0,{[m]:ov}],[0,{[m]:iv}],[0,{[m]:rn}],[()=>ca,{[m]:aa}],[0,{[m]:nn}],[()=>hn,{[m]:Eo}],[()=>ud,{[m]:cd}],[2,{[m]:yo}],[0,{[m]:At}],[0,{[m]:IX}],[0,{[m]:nv}],[5,{[m]:sv}],[0,{[m]:rv}],[0,{[m]:J}]]],rpr=[3,f,Knr,0,[jt],[[0,{[m]:Vt}]]],npr=[3,f,Qnr,0,[$,Qe,WF,It,vt,LQ,er,st,X],[[0,1],[0,1],[()=>AHe,{[L]:WF,[at]:1}],[0,{[m]:At}],[0,{[se]:Fs}],[2,{[m]:RX}],[0,{[m]:Zt}],[0,{[m]:Nt}],[0,{[m]:J}]]],spr=[3,f,Ynr,0,[vt],[[0,{[m]:oc}]]],opr=[3,f,Znr,0,[$,Qe,vt,er,st,sa,X,It],[[0,1],[0,1],[0,{[se]:Fs}],[0,{[m]:Zt}],[0,{[m]:Nt}],[()=>FX,{[L]:sa,[at]:1}],[0,{[m]:J}],[0,{[m]:At}]]],ipr=[3,f,tsr,0,[$,er,st,GF,X],[[0,1],[0,{[m]:Zt}],[0,{[m]:Nt}],[()=>DHe,{[L]:GF,[at]:1}],[0,{[m]:J}]]],apr=[3,f,Y4e,0,[$r,osr,WQ,du],[0,[0,{[L]:usr}],[64,{[L]:KQ,[Ae]:1}],[()=>LX,0]]],MX=[3,f,eU,0,[rc,zh],[0,1]],cpr=[3,f,dsr,0,[z4e],[[21,{[_X]:1}]]],upr=[3,f,lVe,0,[p4e,Ter,X4e,msr,gsr],[0,0,0,0,0]],OHe=[3,f,uX,0,[p4e,X4e],[0,0]],lpr=[3,f,hsr,0,[],[]],dpr=[3,f,ysr,0,[$,Qe,Isr,KYt,XYt,QYt,JYt,$sr,jsr,Gsr,Vsr,dYt],[[0,1],[0,1],[0,{[m]:car}],[0,{[m]:em}],[0,{[m]:Zh}],[4,{[m]:ZQ}],[4,{[m]:tX}],[0,{[m]:uar}],[0,{[m]:dar}],[6,{[m]:lar}],[6,{[m]:par}],[0,{[m]:mir,[Wor]:1}]]],ppr=[3,f,iVe,0,[Vn],[0]],kHe=[3,f,VF,0,[Osr,XR],[0,[()=>Pmr,{[L]:oS,[Ae]:1}]]],mpr=[3,f,xsr,0,[Jh,nsr,qt,du,Vn,yVe,e4e,zB,Hje],[0,1,0,[()=>fpr,0],0,()=>Lpr,()=>qcr,()=>Ocr,()=>xcr]],gpr=[3,f,Rsr,0,[qt,aS],[0,[()=>gu,{[L]:di,[Ae]:1}]]],fpr=[3,f,vsr,0,[qt,di,FR],[0,()=>hS,[()=>gpr,0]]],hpr=[3,f,uVe,0,[Vn,Cor],[0,()=>NHe]],NHe=[3,f,Asr,0,[frr],[1]],Spr=[3,f,HF,0,[H4e],[0]],Epr=[3,f,aVe,0,[b7t],[2]],ypr=[3,f,Ssr,0,[jt,Esr],[[0,{[m]:Vt}],[0,{[m]:iar}]]],_pr=[3,f,_sr,0,[$,Qe,vt,OQ,It,st,X],[[0,1],[0,1],[0,{[se]:Fs}],[()=>Cpr,{[at]:1,[L]:OQ}],[0,{[m]:At}],[0,{[m]:Nt}],[0,{[m]:J}]]],Cpr=[3,f,OQ,0,[zh,d4e,JR,wVe,h7t,hVe,U4e],[1,()=>elr,0,0,0,()=>wpr,[()=>_dr,0]]],LHe=[3,f,mX,0,[jer,lsr],[2,4]],Rpr=[3,f,cVe,0,[jje,lVe],[()=>qar,()=>upr]],vpr=[3,f,Hsr,0,[w7t],[[()=>dmr,{[L]:a4e,[Ae]:1}]]],xpr=[3,f,Wsr,0,[wJt,qt,zQ,DJt,VB,sa,LVe,Hn],[0,0,[()=>Ncr,0],0,[()=>cU,0],[()=>FX,0],[()=>Dmr,0],0]],Ppr=[3,f,RVe,0,[hX,tU],[0,0]],bpr=[3,f,vVe,0,[hX,tU,fX,IVe],[0,0,0,0]],Ipr=[3,f,SVe,0,[oor,n4e],[1,1]],Apr=[3,f,Jsr,0,[z4e],[[()=>Nmr,16]]],Tpr=[3,f,Ysr,0,[$,Qe,Gr,li,jr,o4e,r4e,aVe,eX,cX,SVe,X],[[0,1],[0,1],[0,{[m]:rn}],[()=>ca,{[m]:aa}],[0,{[m]:nn}],0,0,()=>Epr,()=>vHe,()=>THe,()=>Ipr,[0,{[m]:J}]]],wpr=[3,f,hVe,0,[eX,r4e,o4e,cX],[()=>vHe,0,0,()=>THe]],Dpr=[3,f,eor,0,[Zsr,otr],[0,[()=>hn,0]]],MHe=[3,f,QF,0,[XR],[[()=>bmr,{[L]:oS,[Ae]:1}]]],Opr=[3,f,tor,0,[CJt,ns,xje],[[()=>Dpr,0],2,[()=>Iar,0]]],kpr=[3,f,Fsr,0,[O2e,U2e,q2e,rc],[[0,{[L]:O2e}],[()=>$2e,{[L]:U2e}],[()=>$2e,{[L]:q2e}],[4,{[L]:rc}]]],Npr=[3,f,KF,{[L]:KF},[],[]],Lpr=[3,f,yVe,0,[fVe,iVe],[()=>Fpr,()=>ppr]],Mpr=[3,f,_Ve,{[L]:gVe},[ttr],[[()=>hn,0]]],Fpr=[3,f,fVe,0,[Vn],[0]],Bpr=[3,f,CVe,{[L]:EVe},[],[]],Upr=[3,f,xVe,0,[Ije,Pje,bje],[1,1,1]],qpr=[3,f,qsr,0,[Xje],[[()=>Upr,{[_X]:1}]]],$pr=[3,f,mVe,0,[WYt],[()=>Gpr]],Gpr=[3,f,Lsr,0,[jrr,zB],[0,()=>Par]],hS=[3,f,di,0,[Qe,yX],[0,0]],FX=[3,f,sa,0,[rU],[[()=>gu,0]]],jpr=[3,f,mor,0,[JQ,W4e],[[()=>_He,{[QVe]:[KVe,BVe]}],0]],Vpr=[3,f,AVe,0,[KF,jF],[[()=>Npr,{[L]:KF}],[()=>xdr,{[L]:jF}]]],Hpr=[3,f,DVe,0,[zh,vje],[1,0]],zpr=[-3,f,Sor,{[Ms]:Ls,[ho]:400},[],[]];Gn.TypeRegistry.for(f).registerError(zpr,dje);var Wpr=[3,f,PVe,0,[$r,aor,WQ,du],[0,[0,{[L]:Ror}],[64,{[L]:KQ,[Ae]:1}],[()=>LX,0]]],Kpr=[3,f,kVe,0,[Qje,zh,Hn],[5,1,0]],Qpr=[3,f,bor,0,[$,er,st,MF,X],[[0,1],[0,{[m]:Zt}],[0,{[m]:Nt}],[()=>ylr,{[L]:MF,[at]:1}],[0,{[m]:J}]]],Xpr=[3,f,Aor,0,[$,er,st,FF,X],[[0,1],[0,{[m]:Zt}],[0,{[m]:Nt}],[()=>Rlr,{[L]:FF,[at]:1}],[0,{[m]:J}]]],Jpr=[3,f,Dor,0,[Gje,Oje,Ns,Gr,jr,us,ns,jt],[[0,{[m]:uHe}],[()=>Har,16],[0,{[m]:So}],[0,{[m]:rn}],[0,{[m]:nn}],[()=>hn,{[m]:Eo}],[2,{[m]:yo}],[0,{[m]:Vt}]]],Ypr=[3,f,Oor,0,[$,Nje,Lje,Mje,Fje,Bje,iYt,Qe,rm,ad,Gr,li,jr,Uje,$Q,qje,It,X,t4e],[[0,1],[0,{[m]:tHe}],[0,{[m]:rHe}],[4,{[m]:nHe}],[0,{[m]:sHe}],[4,{[m]:oHe}],[0,{[m]:pir}],[0,1],[1,{[se]:oU}],[0,{[se]:ev}],[0,{[m]:rn}],[()=>ca,{[m]:aa}],[0,{[m]:nn}],[0,{[m]:iHe}],[()=>hHe,{[m]:aHe}],[0,{[m]:cHe}],[0,{[m]:At}],[0,{[m]:J}],[0,{[m]:gHe}]]],Zpr=[3,f,kor,0,[Ns,tn,ss,os,is,as,cs,Gr,jr,us,ns,jt],[[0,{[m]:So}],[0,{[m]:tn}],[0,{[m]:sm}],[0,{[m]:om}],[0,{[m]:im}],[0,{[m]:am}],[0,{[m]:cm}],[0,{[m]:rn}],[0,{[m]:nn}],[()=>hn,{[m]:Eo}],[2,{[m]:yo}],[0,{[m]:Vt}]]],emr=[3,f,Nor,0,[BR,$,VR,er,st,ss,os,is,as,cs,Qe,rm,ad,Gr,li,jr,It,X],[[()=>av,16],[0,1],[1,{[m]:jR}],[0,{[m]:Zt}],[0,{[m]:Nt}],[0,{[m]:sm}],[0,{[m]:om}],[0,{[m]:im}],[0,{[m]:am}],[0,{[m]:cm}],[0,1],[1,{[se]:oU}],[0,{[se]:ev}],[0,{[m]:rn}],[()=>ca,{[m]:aa}],[0,{[m]:nn}],[0,{[m]:At}],[0,{[m]:J}]]],tmr=[3,f,XF,0,[b4e,Vn],[[0,{[L]:x4e}],0]],rmr=[3,f,JF,0,[VQ,YQ,uX,dX],[()=>yHe,()=>CHe,()=>OHe,[()=>$He,0]]],nmr=[3,f,qor,0,[bsr,Tsr,BR,Bsr,Yje,Zje,kQ,$h,Gh,jh,Vh,VR,qQ,Hh,ss,os,is,as,cs,Zp,tn,na,rc,sc,iX,eS,nS,rS,sS,XB,pX,jt,gX,Ns,Gr,us,jr,Hn,SX,vt,ns],[[0,{[zor]:1,[m]:aar}],[0,{[m]:mar}],[()=>av,16],[1,{[m]:Qir}],[0,{[m]:gir}],[0,{[m]:fir}],[0,{[m]:Pir}],[0,{[m]:hir}],[0,{[m]:Sir}],[0,{[m]:Eir}],[0,{[m]:yir}],[1,{[m]:jR}],[0,{[m]:_ir}],[0,{[m]:Cir}],[0,{[m]:bir}],[0,{[m]:Iir}],[0,{[m]:Air}],[0,{[m]:Tir}],[0,{[m]:wir}],[2,{[m]:Dir}],[0,{[m]:Rir}],[4,{[m]:vir}],[0,{[m]:Oir}],[4,{[m]:xir}],[1,{[m]:kir}],[128,{[cS]:fS}],[0,{[m]:Mir}],[0,{[m]:Lir}],[5,{[m]:Fir}],[1,{[m]:Nir}],[0,{[m]:qir}],[0,{[m]:Uir}],[0,{[m]:Bir}],[0,{[m]:Gir}],[0,{[m]:Hir}],[()=>hn,{[m]:jir}],[0,{[m]:zir}],[0,{[m]:$ir}],[1,{[m]:Wir}],[0,{[m]:Kir}],[2,{[m]:Vir}]]],ze="unit",smr=[-3,WVe,"S3ServiceException",0,[],[]];Gn.TypeRegistry.for(WVe).registerError(smr,jn);var omr=[1,f,Sje,0,[()=>TX,0]],FHe=[1,f,FQ,0,[()=>Aar,{[L]:$}]],aU=[1,f,eYt,0,()=>Lar],imr=[1,f,tYt,0,()=>Far],BHe=[1,f,BQ,0,[()=>War,0]],amr=[1,f,c7t,0,()=>Rcr],cmr=[1,f,zje,0,()=>vcr],umr=[1,f,v7t,0,[0,{[L]:HQ}]],lmr=[1,f,s4e,0,()=>Bcr],dmr=[1,f,T7t,0,()=>$cr],cU=[1,f,WB,0,[()=>tlr,{[L]:XQ}]],pmr=[1,f,h4e,0,[()=>DX,0]],mmr=[1,f,m4e,0,[()=>OX,0]],gmr=[1,f,Ber,0,[0,{[L]:D7t}]],fmr=[1,f,Dtr,0,[()=>Plr,0]],UHe=[1,f,nrr,0,[()=>Ilr,0]],hmr=[1,f,R4e,0,[()=>NX,0]],Smr=[1,f,mrr,0,()=>idr],Emr=[1,f,Prr,0,()=>cdr],ymr=[1,f,Orr,0,()=>fdr],qHe=[1,f,Brr,0,[()=>mdr,0]],_mr=[1,f,Hrr,0,[()=>ydr,0]],Cmr=[1,f,Trr,0,()=>Cdr],Rmr=[1,f,YB,0,()=>vdr],vmr=[1,f,Lnr,0,()=>Edr],xmr=[1,f,isr,0,[()=>apr,0]],Pmr=[1,f,Psr,0,[()=>mpr,0]],$He=[1,f,dX,0,[()=>Rpr,{[L]:cVe}]],bmr=[1,f,ror,0,[()=>Opr,0]],gu=[1,f,rU,0,[()=>hS,{[L]:di}]],Imr=[1,f,bVe,0,[()=>jpr,{[L]:XQ}]],Amr=[1,f,gor,0,()=>Hpr],Tmr=[1,f,lor,0,[()=>Wpr,0]],wmr=[1,f,hor,0,()=>Kpr],Dmr=[1,f,LVe,0,[()=>tdr,{[L]:P4e}]],Omr=[3,f,aJt,0,[qt,di,FR],[0,()=>hS,[()=>xar,0]]],kmr=[3,f,lrr,0,[qt,di,Cje,FR],[0,()=>hS,0,[()=>odr,0]]],Nmr=[3,f,Xsr,{[zVe]:1},[Dsr,xVe,Q4e,fYt,n4e],[[()=>cpr,0],[()=>qpr,0],[()=>Idr,0],()=>$ar,()=>Fcr]],Lmr=[9,f,pJt,{[Q]:["DELETE","/{Key+}?x-id=AbortMultipartUpload",204]},()=>_ar,()=>yar],Mmr=[9,f,Tje,{[Q]:["POST","/{Key+}",200]},()=>Uar,()=>Bar],Fmr=[9,f,XJt,{[Q]:["PUT","/{Key+}?x-id=CopyObject",200]},()=>jar,()=>Gar],Bmr=[9,f,OJt,{[Q]:["PUT","/",200]},()=>Yar,()=>Jar],Umr=[9,f,kJt,{[Q]:["POST","/?metadataConfiguration",200]},()=>Qar,()=>ze],qmr=[9,f,LJt,{[Q]:["POST","/?metadataTable",200]},()=>Xar,()=>ze],$mr=[9,f,QJt,{[Q]:["POST","/{Key+}?uploads",200]},()=>ecr,()=>Zar],Gmr=[9,f,lYt,{[Q]:["GET","/?session",200]},()=>rcr,()=>tcr],jmr=[9,f,SYt,{[Q]:["DELETE","/",204]},()=>ycr,()=>ze],Vmr=[9,f,EYt,{[Q]:["DELETE","/?analytics",204]},()=>acr,()=>ze],Hmr=[9,f,_Yt,{[Q]:["DELETE","/?cors",204]},()=>ccr,()=>ze],zmr=[9,f,RYt,{[Q]:["DELETE","/?encryption",204]},()=>ucr,()=>ze],Wmr=[9,f,bYt,{[Q]:["DELETE","/?intelligent-tiering",204]},()=>lcr,()=>ze],Kmr=[9,f,xYt,{[Q]:["DELETE","/?inventory",204]},()=>dcr,()=>ze],Qmr=[9,f,AYt,{[Q]:["DELETE","/?lifecycle",204]},()=>pcr,()=>ze],Xmr=[9,f,wYt,{[Q]:["DELETE","/?metadataConfiguration",204]},()=>mcr,()=>ze],Jmr=[9,f,NYt,{[Q]:["DELETE","/?metadataTable",204]},()=>gcr,()=>ze],Ymr=[9,f,kYt,{[Q]:["DELETE","/?metrics",204]},()=>fcr,()=>ze],Zmr=[9,f,MYt,{[Q]:["DELETE","/?ownershipControls",204]},()=>hcr,()=>ze],egr=[9,f,BYt,{[Q]:["DELETE","/?policy",204]},()=>Scr,()=>ze],tgr=[9,f,GYt,{[Q]:["DELETE","/?replication",204]},()=>Ecr,()=>ze],rgr=[9,f,jYt,{[Q]:["DELETE","/?tagging",204]},()=>_cr,()=>ze],ngr=[9,f,HYt,{[Q]:["DELETE","/?website",204]},()=>Ccr,()=>ze],sgr=[9,f,u7t,{[Q]:["DELETE","/{Key+}?x-id=DeleteObject",204]},()=>bcr,()=>Pcr],ogr=[9,f,l7t,{[Q]:["POST","/?delete",200]},()=>Acr,()=>Icr],igr=[9,f,o7t,{[Q]:["DELETE","/{Key+}?tagging",204]},()=>wcr,()=>Tcr],agr=[9,f,d7t,{[Q]:["DELETE","/?publicAccessBlock",204]},()=>Dcr,()=>ze],cgr=[9,f,k7t,{[Q]:["GET","/?abac",200]},()=>jcr,()=>Gcr],ugr=[9,f,N7t,{[Q]:["GET","/?accelerate",200]},()=>Hcr,()=>Vcr],lgr=[9,f,V7t,{[Q]:["GET","/?acl",200]},()=>Wcr,()=>zcr],dgr=[9,f,U7t,{[Q]:["GET","/?analytics&x-id=GetBucketAnalyticsConfiguration",200]},()=>Qcr,()=>Kcr],pgr=[9,f,H7t,{[Q]:["GET","/?cors",200]},()=>Jcr,()=>Xcr],mgr=[9,f,K7t,{[Q]:["GET","/?encryption",200]},()=>Zcr,()=>Ycr],ggr=[9,f,eZt,{[Q]:["GET","/?intelligent-tiering&x-id=GetBucketIntelligentTieringConfiguration",200]},()=>tur,()=>eur],fgr=[9,f,J7t,{[Q]:["GET","/?inventory&x-id=GetBucketInventoryConfiguration",200]},()=>nur,()=>rur],hgr=[9,f,sZt,{[Q]:["GET","/?lifecycle",200]},()=>our,()=>sur],Sgr=[9,f,nZt,{[Q]:["GET","/?location",200]},()=>aur,()=>iur],Egr=[9,f,dZt,{[Q]:["GET","/?logging",200]},()=>uur,()=>cur],ygr=[9,f,pZt,{[Q]:["GET","/?metadataConfiguration",200]},()=>dur,()=>lur],_gr=[9,f,EZt,{[Q]:["GET","/?metadataTable",200]},()=>gur,()=>mur],Cgr=[9,f,SZt,{[Q]:["GET","/?metrics&x-id=GetBucketMetricsConfiguration",200]},()=>Sur,()=>hur],Rgr=[9,f,CZt,{[Q]:["GET","/?notification",200]},()=>Eur,()=>PHe],vgr=[9,f,vZt,{[Q]:["GET","/?ownershipControls",200]},()=>_ur,()=>yur],xgr=[9,f,bZt,{[Q]:["GET","/?policy",200]},()=>Rur,()=>Cur],Pgr=[9,f,TZt,{[Q]:["GET","/?policyStatus",200]},()=>xur,()=>vur],bgr=[9,f,OZt,{[Q]:["GET","/?replication",200]},()=>bur,()=>Pur],Igr=[9,f,NZt,{[Q]:["GET","/?requestPayment",200]},()=>Aur,()=>Iur],Agr=[9,f,BZt,{[Q]:["GET","/?tagging",200]},()=>wur,()=>Tur],Tgr=[9,f,$Zt,{[Q]:["GET","/?versioning",200]},()=>Our,()=>Dur],wgr=[9,f,VZt,{[Q]:["GET","/?website",200]},()=>Nur,()=>kur],Dgr=[9,f,WZt,{[Q]:["GET","/{Key+}?x-id=GetObject",200]},()=>Hur,()=>Vur],Ogr=[9,f,KZt,{[Q]:["GET","/{Key+}?acl",200]},()=>Mur,()=>Lur],kgr=[9,f,ter,{[Q]:["GET","/{Key+}?attributes",200]},()=>Uur,()=>Fur],Ngr=[9,f,oer,{[Q]:["GET","/{Key+}?legal-hold",200]},()=>$ur,()=>qur],Lgr=[9,f,rer,{[Q]:["GET","/?object-lock",200]},()=>jur,()=>Gur],Mgr=[9,f,per,{[Q]:["GET","/{Key+}?retention",200]},()=>Wur,()=>zur],Fgr=[9,f,mer,{[Q]:["GET","/{Key+}?tagging",200]},()=>Qur,()=>Kur],Bgr=[9,f,Eer,{[Q]:["GET","/{Key+}?torrent",200]},()=>Jur,()=>Xur],Ugr=[9,f,yer,{[Q]:["GET","/?publicAccessBlock",200]},()=>Zur,()=>Yur],qgr=[9,f,Rer,{[Q]:["HEAD","/",200]},()=>nlr,()=>rlr],$gr=[9,f,ber,{[Q]:["HEAD","/{Key+}",200]},()=>olr,()=>slr],Ggr=[9,f,ltr,{[Q]:["GET","/?analytics&x-id=ListBucketAnalyticsConfigurations",200]},()=>Dlr,()=>wlr],jgr=[9,f,Str,{[Q]:["GET","/?intelligent-tiering&x-id=ListBucketIntelligentTieringConfigurations",200]},()=>klr,()=>Olr],Vgr=[9,f,gtr,{[Q]:["GET","/?inventory&x-id=ListBucketInventoryConfigurations",200]},()=>Llr,()=>Nlr],Hgr=[9,f,_tr,{[Q]:["GET","/?metrics&x-id=ListBucketMetricsConfigurations",200]},()=>Flr,()=>Mlr],zgr=[9,f,utr,{[Q]:["GET","/?x-id=ListBuckets",200]},()=>Ulr,()=>Blr],Wgr=[9,f,Ptr,{[Q]:["GET","/?x-id=ListDirectoryBuckets",200]},()=>$lr,()=>qlr],Kgr=[9,f,Ftr,{[Q]:["GET","/?uploads",200]},()=>jlr,()=>Glr],Qgr=[9,f,$tr,{[Q]:["GET","/",200]},()=>Hlr,()=>Vlr],Xgr=[9,f,Vtr,{[Q]:["GET","/?list-type=2",200]},()=>Wlr,()=>zlr],Jgr=[9,f,Qtr,{[Q]:["GET","/?versions",200]},()=>Qlr,()=>Klr],Ygr=[9,f,Xtr,{[Q]:["GET","/{Key+}?x-id=ListParts",200]},()=>Jlr,()=>Xlr],Zgr=[9,f,Wrr,{[Q]:["PUT","/?abac",200]},()=>Adr,()=>ze],efr=[9,f,Krr,{[Q]:["PUT","/?accelerate",200]},()=>Tdr,()=>ze],tfr=[9,f,enr,{[Q]:["PUT","/?acl",200]},()=>wdr,()=>ze],rfr=[9,f,Jrr,{[Q]:["PUT","/?analytics",200]},()=>Ddr,()=>ze],nfr=[9,f,tnr,{[Q]:["PUT","/?cors",200]},()=>Odr,()=>ze],sfr=[9,f,nnr,{[Q]:["PUT","/?encryption",200]},()=>kdr,()=>ze],ofr=[9,f,anr,{[Q]:["PUT","/?intelligent-tiering",200]},()=>Ndr,()=>ze],ifr=[9,f,onr,{[Q]:["PUT","/?inventory",200]},()=>Ldr,()=>ze],afr=[9,f,lnr,{[Q]:["PUT","/?lifecycle",200]},()=>Fdr,()=>Mdr],cfr=[9,f,unr,{[Q]:["PUT","/?logging",200]},()=>Bdr,()=>ze],ufr=[9,f,gnr,{[Q]:["PUT","/?metrics",200]},()=>Udr,()=>ze],lfr=[9,f,hnr,{[Q]:["PUT","/?notification",200]},()=>qdr,()=>ze],dfr=[9,f,Enr,{[Q]:["PUT","/?ownershipControls",200]},()=>$dr,()=>ze],pfr=[9,f,_nr,{[Q]:["PUT","/?policy",200]},()=>Gdr,()=>ze],mfr=[9,f,Rnr,{[Q]:["PUT","/?replication",200]},()=>jdr,()=>ze],gfr=[9,f,vnr,{[Q]:["PUT","/?requestPayment",200]},()=>Vdr,()=>ze],ffr=[9,f,bnr,{[Q]:["PUT","/?tagging",200]},()=>Hdr,()=>ze],hfr=[9,f,Anr,{[Q]:["PUT","/?versioning",200]},()=>zdr,()=>ze],Sfr=[9,f,wnr,{[Q]:["PUT","/?website",200]},()=>Wdr,()=>ze],Efr=[9,f,Mnr,{[Q]:["PUT","/{Key+}?x-id=PutObject",200]},()=>tpr,()=>epr],yfr=[9,f,Fnr,{[Q]:["PUT","/{Key+}?acl",200]},()=>Qdr,()=>Kdr],_fr=[9,f,jnr,{[Q]:["PUT","/{Key+}?legal-hold",200]},()=>Jdr,()=>Xdr],Cfr=[9,f,qnr,{[Q]:["PUT","/?object-lock",200]},()=>Zdr,()=>Ydr],Rfr=[9,f,Xnr,{[Q]:["PUT","/{Key+}?retention",200]},()=>npr,()=>rpr],vfr=[9,f,Jnr,{[Q]:["PUT","/{Key+}?tagging",200]},()=>opr,()=>spr],xfr=[9,f,esr,{[Q]:["PUT","/?publicAccessBlock",200]},()=>ipr,()=>ze],Pfr=[9,f,fsr,{[Q]:["PUT","/{Key+}?renameObject",200]},()=>dpr,()=>lpr],bfr=[9,f,Csr,{[Q]:["POST","/{Key+}?restore",200]},()=>_pr,()=>ypr],Ifr=[9,f,Qsr,{[Q]:["POST","/{Key+}?select&select-type=2",200]},()=>Tpr,()=>Apr],Afr=[9,f,Por,{[Q]:["PUT","/?metadataInventoryTable",200]},()=>Qpr,()=>ze],Tfr=[9,f,Ior,{[Q]:["PUT","/?metadataJournalTable",200]},()=>Xpr,()=>ze],wfr=[9,f,Tor,{[Q]:["PUT","/{Key+}?x-id=UploadPart",200]},()=>emr,()=>Zpr],Dfr=[9,f,wor,{[Q]:["PUT","/{Key+}?x-id=UploadPartCopy",200]},()=>Ypr,()=>Jpr],Ofr=[9,f,Uor,{[Vor]:["{RequestRoute}."],[Q]:["POST","/WriteGetObjectResponse",200]},()=>nmr,()=>ze],OR=class extends j.Command.classBuilder().ep({...K,DisableS3ExpressSessionAuth:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","CreateSession",{}).n("S3Client","CreateSessionCommand").sc(Gmr).build(){},kfr=t=>{let e=t.httpAuthSchemes,r=t.httpAuthSchemeProvider,n=t.credentials;return{setHttpAuthScheme(s){let o=e.findIndex(i=>i.schemeId===s.schemeId);o===-1?e.push(s):e.splice(o,1,s)},httpAuthSchemes(){return e},setHttpAuthSchemeProvider(s){r=s},httpAuthSchemeProvider(){return r},setCredentials(s){n=s},credentials(){return n}}},Nfr=t=>({httpAuthSchemes:t.httpAuthSchemes(),httpAuthSchemeProvider:t.httpAuthSchemeProvider(),credentials:t.credentials()}),Lfr=(t,e)=>{let r=Object.assign(w2e.getAwsRegionExtensionConfiguration(t),j.getDefaultExtensionConfiguration(t),D2e.getHttpHandlerExtensionConfiguration(t),kfr(t));return e.forEach(n=>n.configure(r)),Object.assign(t,w2e.resolveAwsRegionExtensionConfiguration(r),j.resolveDefaultRuntimeConfig(r),D2e.resolveHttpHandlerRuntimeConfig(r),Nfr(r))},sd=class extends j.Client{config;constructor(...[e]){let r=tJt.getRuntimeConfig(e||{});super(r),this.initConfig=r;let n=nJt(r),s=I2e.resolveUserAgentConfig(n),o=Rt.resolveFlexibleChecksumsConfig(s),i=A2e.resolveRetryConfig(o),a=YXt.resolveRegionConfig(i),c=b2e.resolveHostHeaderConfig(a),u=z.resolveEndpointConfig(c),l=ZXt.resolveEventStreamSerdeConfig(u),d=T2e.resolveHttpAuthSchemeConfig(l),p=le.resolveS3Config(d,{session:[()=>this,OR]}),g=Lfr(p,e?.extensions||[]);this.config=g,this.middlewareStack.use(Gn.getSchemaSerdePlugin(this.config)),this.middlewareStack.use(I2e.getUserAgentPlugin(this.config)),this.middlewareStack.use(A2e.getRetryPlugin(this.config)),this.middlewareStack.use(eJt.getContentLengthPlugin(this.config)),this.middlewareStack.use(b2e.getHostHeaderPlugin(this.config)),this.middlewareStack.use(XXt.getLoggerPlugin(this.config)),this.middlewareStack.use(JXt.getRecursionDetectionPlugin(this.config)),this.middlewareStack.use(Jp.getHttpAuthSchemeEndpointRuleSetPlugin(this.config,{httpAuthSchemeParametersProvider:T2e.defaultS3HttpAuthSchemeParametersProvider,identityProviderConfigProvider:async y=>new Jp.DefaultIdentityProviderConfig({"aws.auth#sigv4":y.credentials,"aws.auth#sigv4a":y.credentials})})),this.middlewareStack.use(Jp.getHttpSigningPlugin(this.config)),this.middlewareStack.use(le.getValidateBucketNamePlugin(this.config)),this.middlewareStack.use(QXt.getAddExpectContinuePlugin(this.config)),this.middlewareStack.use(le.getRegionRedirectMiddlewarePlugin(this.config)),this.middlewareStack.use(le.getS3ExpressPlugin(this.config)),this.middlewareStack.use(le.getS3ExpressHttpSigningPlugin(this.config))}destroy(){super.destroy()}},YF=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"},Key:{type:"contextParams",name:"Key"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","AbortMultipartUpload",{}).n("S3Client","AbortMultipartUploadCommand").sc(Lmr).build(){},ZF=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"},Key:{type:"contextParams",name:"Key"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n),oa.getSsecPlugin(n)]}).s("AmazonS3","CompleteMultipartUpload",{}).n("S3Client","CompleteMultipartUploadCommand").sc(Mmr).build(){},e3=class extends j.Command.classBuilder().ep({...K,DisableS3ExpressSessionAuth:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"},Key:{type:"contextParams",name:"Key"},CopySource:{type:"contextParams",name:"CopySource"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n),oa.getSsecPlugin(n)]}).s("AmazonS3","CopyObject",{}).n("S3Client","CopyObjectCommand").sc(Fmr).build(){},t3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},DisableAccessPoints:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n),rJt.getLocationConstraintPlugin(n)]}).s("AmazonS3","CreateBucket",{}).n("S3Client","CreateBucketCommand").sc(Bmr).build(){},r3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),Rt.getFlexibleChecksumsPlugin(n,{requestAlgorithmMember:{httpHeader:"x-amz-sdk-checksum-algorithm",name:"ChecksumAlgorithm"},requestChecksumRequired:!0})]}).s("AmazonS3","CreateBucketMetadataConfiguration",{}).n("S3Client","CreateBucketMetadataConfigurationCommand").sc(Umr).build(){},n3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),Rt.getFlexibleChecksumsPlugin(n,{requestAlgorithmMember:{httpHeader:"x-amz-sdk-checksum-algorithm",name:"ChecksumAlgorithm"},requestChecksumRequired:!0})]}).s("AmazonS3","CreateBucketMetadataTableConfiguration",{}).n("S3Client","CreateBucketMetadataTableConfigurationCommand").sc(qmr).build(){},s3=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"},Key:{type:"contextParams",name:"Key"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n),oa.getSsecPlugin(n)]}).s("AmazonS3","CreateMultipartUpload",{}).n("S3Client","CreateMultipartUploadCommand").sc($mr).build(){},o3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AmazonS3","DeleteBucketAnalyticsConfiguration",{}).n("S3Client","DeleteBucketAnalyticsConfigurationCommand").sc(Vmr).build(){},i3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AmazonS3","DeleteBucket",{}).n("S3Client","DeleteBucketCommand").sc(jmr).build(){},a3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AmazonS3","DeleteBucketCors",{}).n("S3Client","DeleteBucketCorsCommand").sc(Hmr).build(){},c3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AmazonS3","DeleteBucketEncryption",{}).n("S3Client","DeleteBucketEncryptionCommand").sc(zmr).build(){},u3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AmazonS3","DeleteBucketIntelligentTieringConfiguration",{}).n("S3Client","DeleteBucketIntelligentTieringConfigurationCommand").sc(Wmr).build(){},l3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AmazonS3","DeleteBucketInventoryConfiguration",{}).n("S3Client","DeleteBucketInventoryConfigurationCommand").sc(Kmr).build(){},d3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AmazonS3","DeleteBucketLifecycle",{}).n("S3Client","DeleteBucketLifecycleCommand").sc(Qmr).build(){},p3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AmazonS3","DeleteBucketMetadataConfiguration",{}).n("S3Client","DeleteBucketMetadataConfigurationCommand").sc(Xmr).build(){},m3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AmazonS3","DeleteBucketMetadataTableConfiguration",{}).n("S3Client","DeleteBucketMetadataTableConfigurationCommand").sc(Jmr).build(){},g3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AmazonS3","DeleteBucketMetricsConfiguration",{}).n("S3Client","DeleteBucketMetricsConfigurationCommand").sc(Ymr).build(){},f3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AmazonS3","DeleteBucketOwnershipControls",{}).n("S3Client","DeleteBucketOwnershipControlsCommand").sc(Zmr).build(){},h3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AmazonS3","DeleteBucketPolicy",{}).n("S3Client","DeleteBucketPolicyCommand").sc(egr).build(){},S3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AmazonS3","DeleteBucketReplication",{}).n("S3Client","DeleteBucketReplicationCommand").sc(tgr).build(){},E3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AmazonS3","DeleteBucketTagging",{}).n("S3Client","DeleteBucketTaggingCommand").sc(rgr).build(){},y3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AmazonS3","DeleteBucketWebsite",{}).n("S3Client","DeleteBucketWebsiteCommand").sc(ngr).build(){},_3=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"},Key:{type:"contextParams",name:"Key"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","DeleteObject",{}).n("S3Client","DeleteObjectCommand").sc(sgr).build(){},C3=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),Rt.getFlexibleChecksumsPlugin(n,{requestAlgorithmMember:{httpHeader:"x-amz-sdk-checksum-algorithm",name:"ChecksumAlgorithm"},requestChecksumRequired:!0}),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","DeleteObjects",{}).n("S3Client","DeleteObjectsCommand").sc(ogr).build(){},R3=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","DeleteObjectTagging",{}).n("S3Client","DeleteObjectTaggingCommand").sc(igr).build(){},v3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AmazonS3","DeletePublicAccessBlock",{}).n("S3Client","DeletePublicAccessBlockCommand").sc(agr).build(){},x3=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","GetBucketAbac",{}).n("S3Client","GetBucketAbacCommand").sc(cgr).build(){},P3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","GetBucketAccelerateConfiguration",{}).n("S3Client","GetBucketAccelerateConfigurationCommand").sc(ugr).build(){},b3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","GetBucketAcl",{}).n("S3Client","GetBucketAclCommand").sc(lgr).build(){},I3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","GetBucketAnalyticsConfiguration",{}).n("S3Client","GetBucketAnalyticsConfigurationCommand").sc(dgr).build(){},A3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","GetBucketCors",{}).n("S3Client","GetBucketCorsCommand").sc(pgr).build(){},T3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","GetBucketEncryption",{}).n("S3Client","GetBucketEncryptionCommand").sc(mgr).build(){},w3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","GetBucketIntelligentTieringConfiguration",{}).n("S3Client","GetBucketIntelligentTieringConfigurationCommand").sc(ggr).build(){},D3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","GetBucketInventoryConfiguration",{}).n("S3Client","GetBucketInventoryConfigurationCommand").sc(fgr).build(){},O3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","GetBucketLifecycleConfiguration",{}).n("S3Client","GetBucketLifecycleConfigurationCommand").sc(hgr).build(){},k3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","GetBucketLocation",{}).n("S3Client","GetBucketLocationCommand").sc(Sgr).build(){},N3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","GetBucketLogging",{}).n("S3Client","GetBucketLoggingCommand").sc(Egr).build(){},L3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","GetBucketMetadataConfiguration",{}).n("S3Client","GetBucketMetadataConfigurationCommand").sc(ygr).build(){},M3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","GetBucketMetadataTableConfiguration",{}).n("S3Client","GetBucketMetadataTableConfigurationCommand").sc(_gr).build(){},F3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","GetBucketMetricsConfiguration",{}).n("S3Client","GetBucketMetricsConfigurationCommand").sc(Cgr).build(){},B3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","GetBucketNotificationConfiguration",{}).n("S3Client","GetBucketNotificationConfigurationCommand").sc(Rgr).build(){},U3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","GetBucketOwnershipControls",{}).n("S3Client","GetBucketOwnershipControlsCommand").sc(vgr).build(){},q3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","GetBucketPolicy",{}).n("S3Client","GetBucketPolicyCommand").sc(xgr).build(){},$3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","GetBucketPolicyStatus",{}).n("S3Client","GetBucketPolicyStatusCommand").sc(Pgr).build(){},G3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","GetBucketReplication",{}).n("S3Client","GetBucketReplicationCommand").sc(bgr).build(){},j3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","GetBucketRequestPayment",{}).n("S3Client","GetBucketRequestPaymentCommand").sc(Igr).build(){},V3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","GetBucketTagging",{}).n("S3Client","GetBucketTaggingCommand").sc(Agr).build(){},H3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","GetBucketVersioning",{}).n("S3Client","GetBucketVersioningCommand").sc(Tgr).build(){},z3=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","GetBucketWebsite",{}).n("S3Client","GetBucketWebsiteCommand").sc(wgr).build(){},W3=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"},Key:{type:"contextParams",name:"Key"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","GetObjectAcl",{}).n("S3Client","GetObjectAclCommand").sc(Ogr).build(){},K3=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n),oa.getSsecPlugin(n)]}).s("AmazonS3","GetObjectAttributes",{}).n("S3Client","GetObjectAttributesCommand").sc(kgr).build(){},Q3=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"},Key:{type:"contextParams",name:"Key"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),Rt.getFlexibleChecksumsPlugin(n,{requestChecksumRequired:!1,requestValidationModeMember:"ChecksumMode",responseAlgorithms:["CRC64NVME","CRC32","CRC32C","SHA256","SHA1"]}),oa.getSsecPlugin(n),le.getS3ExpiresMiddlewarePlugin(n)]}).s("AmazonS3","GetObject",{}).n("S3Client","GetObjectCommand").sc(Dgr).build(){},X3=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","GetObjectLegalHold",{}).n("S3Client","GetObjectLegalHoldCommand").sc(Ngr).build(){},J3=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","GetObjectLockConfiguration",{}).n("S3Client","GetObjectLockConfigurationCommand").sc(Lgr).build(){},Y3=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","GetObjectRetention",{}).n("S3Client","GetObjectRetentionCommand").sc(Mgr).build(){},Z3=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","GetObjectTagging",{}).n("S3Client","GetObjectTaggingCommand").sc(Fgr).build(){},eB=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AmazonS3","GetObjectTorrent",{}).n("S3Client","GetObjectTorrentCommand").sc(Bgr).build(){},tB=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","GetPublicAccessBlock",{}).n("S3Client","GetPublicAccessBlockCommand").sc(Ugr).build(){},Bh=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","HeadBucket",{}).n("S3Client","HeadBucketCommand").sc(qgr).build(){},Uh=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"},Key:{type:"contextParams",name:"Key"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n),oa.getSsecPlugin(n),le.getS3ExpiresMiddlewarePlugin(n)]}).s("AmazonS3","HeadObject",{}).n("S3Client","HeadObjectCommand").sc($gr).build(){},rB=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","ListBucketAnalyticsConfigurations",{}).n("S3Client","ListBucketAnalyticsConfigurationsCommand").sc(Ggr).build(){},nB=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","ListBucketIntelligentTieringConfigurations",{}).n("S3Client","ListBucketIntelligentTieringConfigurationsCommand").sc(jgr).build(){},sB=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","ListBucketInventoryConfigurations",{}).n("S3Client","ListBucketInventoryConfigurationsCommand").sc(Vgr).build(){},oB=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","ListBucketMetricsConfigurations",{}).n("S3Client","ListBucketMetricsConfigurationsCommand").sc(Hgr).build(){},kR=class extends j.Command.classBuilder().ep(K).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","ListBuckets",{}).n("S3Client","ListBucketsCommand").sc(zgr).build(){},NR=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","ListDirectoryBuckets",{}).n("S3Client","ListDirectoryBucketsCommand").sc(Wgr).build(){},iB=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"},Prefix:{type:"contextParams",name:"Prefix"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","ListMultipartUploads",{}).n("S3Client","ListMultipartUploadsCommand").sc(Kgr).build(){},aB=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"},Prefix:{type:"contextParams",name:"Prefix"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","ListObjects",{}).n("S3Client","ListObjectsCommand").sc(Qgr).build(){},LR=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"},Prefix:{type:"contextParams",name:"Prefix"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","ListObjectsV2",{}).n("S3Client","ListObjectsV2Command").sc(Xgr).build(){},cB=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"},Prefix:{type:"contextParams",name:"Prefix"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","ListObjectVersions",{}).n("S3Client","ListObjectVersionsCommand").sc(Jgr).build(){},MR=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"},Key:{type:"contextParams",name:"Key"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n),oa.getSsecPlugin(n)]}).s("AmazonS3","ListParts",{}).n("S3Client","ListPartsCommand").sc(Ygr).build(){},uB=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),Rt.getFlexibleChecksumsPlugin(n,{requestAlgorithmMember:{httpHeader:"x-amz-sdk-checksum-algorithm",name:"ChecksumAlgorithm"},requestChecksumRequired:!1})]}).s("AmazonS3","PutBucketAbac",{}).n("S3Client","PutBucketAbacCommand").sc(Zgr).build(){},lB=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),Rt.getFlexibleChecksumsPlugin(n,{requestAlgorithmMember:{httpHeader:"x-amz-sdk-checksum-algorithm",name:"ChecksumAlgorithm"},requestChecksumRequired:!1})]}).s("AmazonS3","PutBucketAccelerateConfiguration",{}).n("S3Client","PutBucketAccelerateConfigurationCommand").sc(efr).build(){},dB=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),Rt.getFlexibleChecksumsPlugin(n,{requestAlgorithmMember:{httpHeader:"x-amz-sdk-checksum-algorithm",name:"ChecksumAlgorithm"},requestChecksumRequired:!0})]}).s("AmazonS3","PutBucketAcl",{}).n("S3Client","PutBucketAclCommand").sc(tfr).build(){},pB=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AmazonS3","PutBucketAnalyticsConfiguration",{}).n("S3Client","PutBucketAnalyticsConfigurationCommand").sc(rfr).build(){},mB=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),Rt.getFlexibleChecksumsPlugin(n,{requestAlgorithmMember:{httpHeader:"x-amz-sdk-checksum-algorithm",name:"ChecksumAlgorithm"},requestChecksumRequired:!0})]}).s("AmazonS3","PutBucketCors",{}).n("S3Client","PutBucketCorsCommand").sc(nfr).build(){},gB=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),Rt.getFlexibleChecksumsPlugin(n,{requestAlgorithmMember:{httpHeader:"x-amz-sdk-checksum-algorithm",name:"ChecksumAlgorithm"},requestChecksumRequired:!0})]}).s("AmazonS3","PutBucketEncryption",{}).n("S3Client","PutBucketEncryptionCommand").sc(sfr).build(){},fB=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AmazonS3","PutBucketIntelligentTieringConfiguration",{}).n("S3Client","PutBucketIntelligentTieringConfigurationCommand").sc(ofr).build(){},hB=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AmazonS3","PutBucketInventoryConfiguration",{}).n("S3Client","PutBucketInventoryConfigurationCommand").sc(ifr).build(){},SB=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),Rt.getFlexibleChecksumsPlugin(n,{requestAlgorithmMember:{httpHeader:"x-amz-sdk-checksum-algorithm",name:"ChecksumAlgorithm"},requestChecksumRequired:!0}),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","PutBucketLifecycleConfiguration",{}).n("S3Client","PutBucketLifecycleConfigurationCommand").sc(afr).build(){},EB=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),Rt.getFlexibleChecksumsPlugin(n,{requestAlgorithmMember:{httpHeader:"x-amz-sdk-checksum-algorithm",name:"ChecksumAlgorithm"},requestChecksumRequired:!0})]}).s("AmazonS3","PutBucketLogging",{}).n("S3Client","PutBucketLoggingCommand").sc(cfr).build(){},yB=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AmazonS3","PutBucketMetricsConfiguration",{}).n("S3Client","PutBucketMetricsConfigurationCommand").sc(ufr).build(){},_B=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AmazonS3","PutBucketNotificationConfiguration",{}).n("S3Client","PutBucketNotificationConfigurationCommand").sc(lfr).build(){},CB=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),Rt.getFlexibleChecksumsPlugin(n,{requestAlgorithmMember:{httpHeader:"x-amz-sdk-checksum-algorithm",name:"ChecksumAlgorithm"},requestChecksumRequired:!0})]}).s("AmazonS3","PutBucketOwnershipControls",{}).n("S3Client","PutBucketOwnershipControlsCommand").sc(dfr).build(){},RB=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),Rt.getFlexibleChecksumsPlugin(n,{requestAlgorithmMember:{httpHeader:"x-amz-sdk-checksum-algorithm",name:"ChecksumAlgorithm"},requestChecksumRequired:!0})]}).s("AmazonS3","PutBucketPolicy",{}).n("S3Client","PutBucketPolicyCommand").sc(pfr).build(){},vB=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),Rt.getFlexibleChecksumsPlugin(n,{requestAlgorithmMember:{httpHeader:"x-amz-sdk-checksum-algorithm",name:"ChecksumAlgorithm"},requestChecksumRequired:!0})]}).s("AmazonS3","PutBucketReplication",{}).n("S3Client","PutBucketReplicationCommand").sc(mfr).build(){},xB=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),Rt.getFlexibleChecksumsPlugin(n,{requestAlgorithmMember:{httpHeader:"x-amz-sdk-checksum-algorithm",name:"ChecksumAlgorithm"},requestChecksumRequired:!0})]}).s("AmazonS3","PutBucketRequestPayment",{}).n("S3Client","PutBucketRequestPaymentCommand").sc(gfr).build(){},PB=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),Rt.getFlexibleChecksumsPlugin(n,{requestAlgorithmMember:{httpHeader:"x-amz-sdk-checksum-algorithm",name:"ChecksumAlgorithm"},requestChecksumRequired:!0})]}).s("AmazonS3","PutBucketTagging",{}).n("S3Client","PutBucketTaggingCommand").sc(ffr).build(){},bB=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),Rt.getFlexibleChecksumsPlugin(n,{requestAlgorithmMember:{httpHeader:"x-amz-sdk-checksum-algorithm",name:"ChecksumAlgorithm"},requestChecksumRequired:!0})]}).s("AmazonS3","PutBucketVersioning",{}).n("S3Client","PutBucketVersioningCommand").sc(hfr).build(){},IB=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),Rt.getFlexibleChecksumsPlugin(n,{requestAlgorithmMember:{httpHeader:"x-amz-sdk-checksum-algorithm",name:"ChecksumAlgorithm"},requestChecksumRequired:!0})]}).s("AmazonS3","PutBucketWebsite",{}).n("S3Client","PutBucketWebsiteCommand").sc(Sfr).build(){},AB=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"},Key:{type:"contextParams",name:"Key"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),Rt.getFlexibleChecksumsPlugin(n,{requestAlgorithmMember:{httpHeader:"x-amz-sdk-checksum-algorithm",name:"ChecksumAlgorithm"},requestChecksumRequired:!0}),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","PutObjectAcl",{}).n("S3Client","PutObjectAclCommand").sc(yfr).build(){},TB=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"},Key:{type:"contextParams",name:"Key"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),Rt.getFlexibleChecksumsPlugin(n,{requestAlgorithmMember:{httpHeader:"x-amz-sdk-checksum-algorithm",name:"ChecksumAlgorithm"},requestChecksumRequired:!1}),le.getCheckContentLengthHeaderPlugin(n),le.getThrow200ExceptionsPlugin(n),oa.getSsecPlugin(n)]}).s("AmazonS3","PutObject",{}).n("S3Client","PutObjectCommand").sc(Efr).build(){},wB=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),Rt.getFlexibleChecksumsPlugin(n,{requestAlgorithmMember:{httpHeader:"x-amz-sdk-checksum-algorithm",name:"ChecksumAlgorithm"},requestChecksumRequired:!0}),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","PutObjectLegalHold",{}).n("S3Client","PutObjectLegalHoldCommand").sc(_fr).build(){},DB=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),Rt.getFlexibleChecksumsPlugin(n,{requestAlgorithmMember:{httpHeader:"x-amz-sdk-checksum-algorithm",name:"ChecksumAlgorithm"},requestChecksumRequired:!0}),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","PutObjectLockConfiguration",{}).n("S3Client","PutObjectLockConfigurationCommand").sc(Cfr).build(){},OB=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),Rt.getFlexibleChecksumsPlugin(n,{requestAlgorithmMember:{httpHeader:"x-amz-sdk-checksum-algorithm",name:"ChecksumAlgorithm"},requestChecksumRequired:!0}),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","PutObjectRetention",{}).n("S3Client","PutObjectRetentionCommand").sc(Rfr).build(){},kB=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),Rt.getFlexibleChecksumsPlugin(n,{requestAlgorithmMember:{httpHeader:"x-amz-sdk-checksum-algorithm",name:"ChecksumAlgorithm"},requestChecksumRequired:!0}),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","PutObjectTagging",{}).n("S3Client","PutObjectTaggingCommand").sc(vfr).build(){},NB=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),Rt.getFlexibleChecksumsPlugin(n,{requestAlgorithmMember:{httpHeader:"x-amz-sdk-checksum-algorithm",name:"ChecksumAlgorithm"},requestChecksumRequired:!0})]}).s("AmazonS3","PutPublicAccessBlock",{}).n("S3Client","PutPublicAccessBlockCommand").sc(xfr).build(){},LB=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"},Key:{type:"contextParams",name:"Key"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","RenameObject",{}).n("S3Client","RenameObjectCommand").sc(Pfr).build(){},MB=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),Rt.getFlexibleChecksumsPlugin(n,{requestAlgorithmMember:{httpHeader:"x-amz-sdk-checksum-algorithm",name:"ChecksumAlgorithm"},requestChecksumRequired:!1}),le.getThrow200ExceptionsPlugin(n)]}).s("AmazonS3","RestoreObject",{}).n("S3Client","RestoreObjectCommand").sc(bfr).build(){},FB=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n),oa.getSsecPlugin(n)]}).s("AmazonS3","SelectObjectContent",{eventStream:{output:!0}}).n("S3Client","SelectObjectContentCommand").sc(Ifr).build(){},BB=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),Rt.getFlexibleChecksumsPlugin(n,{requestAlgorithmMember:{httpHeader:"x-amz-sdk-checksum-algorithm",name:"ChecksumAlgorithm"},requestChecksumRequired:!0})]}).s("AmazonS3","UpdateBucketMetadataInventoryTableConfiguration",{}).n("S3Client","UpdateBucketMetadataInventoryTableConfigurationCommand").sc(Afr).build(){},UB=class extends j.Command.classBuilder().ep({...K,UseS3ExpressControlEndpoint:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),Rt.getFlexibleChecksumsPlugin(n,{requestAlgorithmMember:{httpHeader:"x-amz-sdk-checksum-algorithm",name:"ChecksumAlgorithm"},requestChecksumRequired:!0})]}).s("AmazonS3","UpdateBucketMetadataJournalTableConfiguration",{}).n("S3Client","UpdateBucketMetadataJournalTableConfigurationCommand").sc(Tfr).build(){},qB=class extends j.Command.classBuilder().ep({...K,Bucket:{type:"contextParams",name:"Bucket"},Key:{type:"contextParams",name:"Key"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),Rt.getFlexibleChecksumsPlugin(n,{requestAlgorithmMember:{httpHeader:"x-amz-sdk-checksum-algorithm",name:"ChecksumAlgorithm"},requestChecksumRequired:!1}),le.getThrow200ExceptionsPlugin(n),oa.getSsecPlugin(n)]}).s("AmazonS3","UploadPart",{}).n("S3Client","UploadPartCommand").sc(wfr).build(){},$B=class extends j.Command.classBuilder().ep({...K,DisableS3ExpressSessionAuth:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions()),le.getThrow200ExceptionsPlugin(n),oa.getSsecPlugin(n)]}).s("AmazonS3","UploadPartCopy",{}).n("S3Client","UploadPartCopyCommand").sc(Dfr).build(){},GB=class extends j.Command.classBuilder().ep({...K,UseObjectLambdaEndpoint:{type:"staticContextParams",value:!0}}).m(function(e,r,n,s){return[z.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("AmazonS3","WriteGetObjectResponse",{}).n("S3Client","WriteGetObjectResponseCommand").sc(Ofr).build(){},Mfr={AbortMultipartUploadCommand:YF,CompleteMultipartUploadCommand:ZF,CopyObjectCommand:e3,CreateBucketCommand:t3,CreateBucketMetadataConfigurationCommand:r3,CreateBucketMetadataTableConfigurationCommand:n3,CreateMultipartUploadCommand:s3,CreateSessionCommand:OR,DeleteBucketCommand:i3,DeleteBucketAnalyticsConfigurationCommand:o3,DeleteBucketCorsCommand:a3,DeleteBucketEncryptionCommand:c3,DeleteBucketIntelligentTieringConfigurationCommand:u3,DeleteBucketInventoryConfigurationCommand:l3,DeleteBucketLifecycleCommand:d3,DeleteBucketMetadataConfigurationCommand:p3,DeleteBucketMetadataTableConfigurationCommand:m3,DeleteBucketMetricsConfigurationCommand:g3,DeleteBucketOwnershipControlsCommand:f3,DeleteBucketPolicyCommand:h3,DeleteBucketReplicationCommand:S3,DeleteBucketTaggingCommand:E3,DeleteBucketWebsiteCommand:y3,DeleteObjectCommand:_3,DeleteObjectsCommand:C3,DeleteObjectTaggingCommand:R3,DeletePublicAccessBlockCommand:v3,GetBucketAbacCommand:x3,GetBucketAccelerateConfigurationCommand:P3,GetBucketAclCommand:b3,GetBucketAnalyticsConfigurationCommand:I3,GetBucketCorsCommand:A3,GetBucketEncryptionCommand:T3,GetBucketIntelligentTieringConfigurationCommand:w3,GetBucketInventoryConfigurationCommand:D3,GetBucketLifecycleConfigurationCommand:O3,GetBucketLocationCommand:k3,GetBucketLoggingCommand:N3,GetBucketMetadataConfigurationCommand:L3,GetBucketMetadataTableConfigurationCommand:M3,GetBucketMetricsConfigurationCommand:F3,GetBucketNotificationConfigurationCommand:B3,GetBucketOwnershipControlsCommand:U3,GetBucketPolicyCommand:q3,GetBucketPolicyStatusCommand:$3,GetBucketReplicationCommand:G3,GetBucketRequestPaymentCommand:j3,GetBucketTaggingCommand:V3,GetBucketVersioningCommand:H3,GetBucketWebsiteCommand:z3,GetObjectCommand:Q3,GetObjectAclCommand:W3,GetObjectAttributesCommand:K3,GetObjectLegalHoldCommand:X3,GetObjectLockConfigurationCommand:J3,GetObjectRetentionCommand:Y3,GetObjectTaggingCommand:Z3,GetObjectTorrentCommand:eB,GetPublicAccessBlockCommand:tB,HeadBucketCommand:Bh,HeadObjectCommand:Uh,ListBucketAnalyticsConfigurationsCommand:rB,ListBucketIntelligentTieringConfigurationsCommand:nB,ListBucketInventoryConfigurationsCommand:sB,ListBucketMetricsConfigurationsCommand:oB,ListBucketsCommand:kR,ListDirectoryBucketsCommand:NR,ListMultipartUploadsCommand:iB,ListObjectsCommand:aB,ListObjectsV2Command:LR,ListObjectVersionsCommand:cB,ListPartsCommand:MR,PutBucketAbacCommand:uB,PutBucketAccelerateConfigurationCommand:lB,PutBucketAclCommand:dB,PutBucketAnalyticsConfigurationCommand:pB,PutBucketCorsCommand:mB,PutBucketEncryptionCommand:gB,PutBucketIntelligentTieringConfigurationCommand:fB,PutBucketInventoryConfigurationCommand:hB,PutBucketLifecycleConfigurationCommand:SB,PutBucketLoggingCommand:EB,PutBucketMetricsConfigurationCommand:yB,PutBucketNotificationConfigurationCommand:_B,PutBucketOwnershipControlsCommand:CB,PutBucketPolicyCommand:RB,PutBucketReplicationCommand:vB,PutBucketRequestPaymentCommand:xB,PutBucketTaggingCommand:PB,PutBucketVersioningCommand:bB,PutBucketWebsiteCommand:IB,PutObjectCommand:TB,PutObjectAclCommand:AB,PutObjectLegalHoldCommand:wB,PutObjectLockConfigurationCommand:DB,PutObjectRetentionCommand:OB,PutObjectTaggingCommand:kB,PutPublicAccessBlockCommand:NB,RenameObjectCommand:LB,RestoreObjectCommand:MB,SelectObjectContentCommand:FB,UpdateBucketMetadataInventoryTableConfigurationCommand:BB,UpdateBucketMetadataJournalTableConfigurationCommand:UB,UploadPartCommand:qB,UploadPartCopyCommand:$B,WriteGetObjectResponseCommand:GB},jB=class extends sd{};j.createAggregatedClient(Mfr,jB);var Ffr=Jp.createPaginator(sd,kR,"ContinuationToken","ContinuationToken","MaxBuckets"),Bfr=Jp.createPaginator(sd,NR,"ContinuationToken","ContinuationToken","MaxDirectoryBuckets"),Ufr=Jp.createPaginator(sd,LR,"ContinuationToken","NextContinuationToken","MaxKeys"),qfr=Jp.createPaginator(sd,MR,"PartNumberMarker","NextPartNumberMarker","MaxParts"),GHe=async(t,e)=>{let r;try{return r=await t.send(new Bh(e)),{state:gr.WaiterState.SUCCESS,reason:r}}catch(n){if(r=n,n.name&&n.name=="NotFound")return{state:gr.WaiterState.RETRY,reason:r}}return{state:gr.WaiterState.RETRY,reason:r}},$fr=async(t,e)=>{let r={minDelay:5,maxDelay:120};return gr.createWaiter({...r,...t},e,GHe)},Gfr=async(t,e)=>{let r={minDelay:5,maxDelay:120},n=await gr.createWaiter({...r,...t},e,GHe);return gr.checkExceptions(n)},jHe=async(t,e)=>{let r;try{r=await t.send(new Bh(e))}catch(n){if(r=n,n.name&&n.name=="NotFound")return{state:gr.WaiterState.SUCCESS,reason:r}}return{state:gr.WaiterState.RETRY,reason:r}},jfr=async(t,e)=>{let r={minDelay:5,maxDelay:120};return gr.createWaiter({...r,...t},e,jHe)},Vfr=async(t,e)=>{let r={minDelay:5,maxDelay:120},n=await gr.createWaiter({...r,...t},e,jHe);return gr.checkExceptions(n)},VHe=async(t,e)=>{let r;try{return r=await t.send(new Uh(e)),{state:gr.WaiterState.SUCCESS,reason:r}}catch(n){if(r=n,n.name&&n.name=="NotFound")return{state:gr.WaiterState.RETRY,reason:r}}return{state:gr.WaiterState.RETRY,reason:r}},Hfr=async(t,e)=>{let r={minDelay:5,maxDelay:120};return gr.createWaiter({...r,...t},e,VHe)},zfr=async(t,e)=>{let r={minDelay:5,maxDelay:120},n=await gr.createWaiter({...r,...t},e,VHe);return gr.checkExceptions(n)},HHe=async(t,e)=>{let r;try{r=await t.send(new Uh(e))}catch(n){if(r=n,n.name&&n.name=="NotFound")return{state:gr.WaiterState.SUCCESS,reason:r}}return{state:gr.WaiterState.RETRY,reason:r}},Wfr=async(t,e)=>{let r={minDelay:5,maxDelay:120};return gr.createWaiter({...r,...t},e,HHe)},Kfr=async(t,e)=>{let r={minDelay:5,maxDelay:120},n=await gr.createWaiter({...r,...t},e,HHe);return gr.checkExceptions(n)},Qfr={Disabled:"Disabled",Enabled:"Enabled"},Xfr={requester:"requester"},Jfr={requester:"requester"},Yfr={Enabled:"Enabled",Suspended:"Suspended"},Zfr={AmazonCustomerByEmail:"AmazonCustomerByEmail",CanonicalUser:"CanonicalUser",Group:"Group"},ehr={FULL_CONTROL:"FULL_CONTROL",READ:"READ",READ_ACP:"READ_ACP",WRITE:"WRITE",WRITE_ACP:"WRITE_ACP"},thr={Destination:"Destination"},rhr={COMPOSITE:"COMPOSITE",FULL_OBJECT:"FULL_OBJECT"},nhr={AES256:"AES256",aws_fsx:"aws:fsx",aws_kms:"aws:kms",aws_kms_dsse:"aws:kms:dsse"},shr={authenticated_read:"authenticated-read",aws_exec_read:"aws-exec-read",bucket_owner_full_control:"bucket-owner-full-control",bucket_owner_read:"bucket-owner-read",private:"private",public_read:"public-read",public_read_write:"public-read-write"},ohr={CRC32:"CRC32",CRC32C:"CRC32C",CRC64NVME:"CRC64NVME",SHA1:"SHA1",SHA256:"SHA256"},ihr={COPY:"COPY",REPLACE:"REPLACE"},ahr={OFF:"OFF",ON:"ON"},chr={COMPLIANCE:"COMPLIANCE",GOVERNANCE:"GOVERNANCE"},uhr={DEEP_ARCHIVE:"DEEP_ARCHIVE",EXPRESS_ONEZONE:"EXPRESS_ONEZONE",FSX_ONTAP:"FSX_ONTAP",FSX_OPENZFS:"FSX_OPENZFS",GLACIER:"GLACIER",GLACIER_IR:"GLACIER_IR",INTELLIGENT_TIERING:"INTELLIGENT_TIERING",ONEZONE_IA:"ONEZONE_IA",OUTPOSTS:"OUTPOSTS",REDUCED_REDUNDANCY:"REDUCED_REDUNDANCY",SNOW:"SNOW",STANDARD:"STANDARD",STANDARD_IA:"STANDARD_IA"},lhr={COPY:"COPY",REPLACE:"REPLACE"},dhr={authenticated_read:"authenticated-read",private:"private",public_read:"public-read",public_read_write:"public-read-write"},phr={SingleAvailabilityZone:"SingleAvailabilityZone",SingleLocalZone:"SingleLocalZone"},mhr={Directory:"Directory"},ghr={AvailabilityZone:"AvailabilityZone",LocalZone:"LocalZone"},fhr={EU:"EU",af_south_1:"af-south-1",ap_east_1:"ap-east-1",ap_northeast_1:"ap-northeast-1",ap_northeast_2:"ap-northeast-2",ap_northeast_3:"ap-northeast-3",ap_south_1:"ap-south-1",ap_south_2:"ap-south-2",ap_southeast_1:"ap-southeast-1",ap_southeast_2:"ap-southeast-2",ap_southeast_3:"ap-southeast-3",ap_southeast_4:"ap-southeast-4",ap_southeast_5:"ap-southeast-5",ca_central_1:"ca-central-1",cn_north_1:"cn-north-1",cn_northwest_1:"cn-northwest-1",eu_central_1:"eu-central-1",eu_central_2:"eu-central-2",eu_north_1:"eu-north-1",eu_south_1:"eu-south-1",eu_south_2:"eu-south-2",eu_west_1:"eu-west-1",eu_west_2:"eu-west-2",eu_west_3:"eu-west-3",il_central_1:"il-central-1",me_central_1:"me-central-1",me_south_1:"me-south-1",sa_east_1:"sa-east-1",us_east_2:"us-east-2",us_gov_east_1:"us-gov-east-1",us_gov_west_1:"us-gov-west-1",us_west_1:"us-west-1",us_west_2:"us-west-2"},hhr={BucketOwnerEnforced:"BucketOwnerEnforced",BucketOwnerPreferred:"BucketOwnerPreferred",ObjectWriter:"ObjectWriter"},Shr={DISABLED:"DISABLED",ENABLED:"ENABLED"},Ehr={AES256:"AES256",aws_kms:"aws:kms"},yhr={DISABLED:"DISABLED",ENABLED:"ENABLED"},_hr={ReadOnly:"ReadOnly",ReadWrite:"ReadWrite"},Chr={CSV:"CSV"},Rhr={V_1:"V_1"},vhr={NONE:"NONE",SSE_C:"SSE-C"},xhr={Disabled:"Disabled",Enabled:"Enabled"},Phr={ARCHIVE_ACCESS:"ARCHIVE_ACCESS",DEEP_ARCHIVE_ACCESS:"DEEP_ARCHIVE_ACCESS"},bhr={CSV:"CSV",ORC:"ORC",Parquet:"Parquet"},Ihr={All:"All",Current:"Current"},Ahr={BucketKeyStatus:"BucketKeyStatus",ChecksumAlgorithm:"ChecksumAlgorithm",ETag:"ETag",EncryptionStatus:"EncryptionStatus",IntelligentTieringAccessTier:"IntelligentTieringAccessTier",IsMultipartUploaded:"IsMultipartUploaded",LastModifiedDate:"LastModifiedDate",LifecycleExpirationDate:"LifecycleExpirationDate",ObjectAccessControlList:"ObjectAccessControlList",ObjectLockLegalHoldStatus:"ObjectLockLegalHoldStatus",ObjectLockMode:"ObjectLockMode",ObjectLockRetainUntilDate:"ObjectLockRetainUntilDate",ObjectOwner:"ObjectOwner",ReplicationStatus:"ReplicationStatus",Size:"Size",StorageClass:"StorageClass"},Thr={Daily:"Daily",Weekly:"Weekly"},whr={DEEP_ARCHIVE:"DEEP_ARCHIVE",GLACIER:"GLACIER",GLACIER_IR:"GLACIER_IR",INTELLIGENT_TIERING:"INTELLIGENT_TIERING",ONEZONE_IA:"ONEZONE_IA",STANDARD_IA:"STANDARD_IA"},Dhr={Disabled:"Disabled",Enabled:"Enabled"},Ohr={all_storage_classes_128K:"all_storage_classes_128K",varies_by_storage_class:"varies_by_storage_class"},khr={FULL_CONTROL:"FULL_CONTROL",READ:"READ",WRITE:"WRITE"},Nhr={DeliveryTime:"DeliveryTime",EventTime:"EventTime"},Lhr={aws:"aws",customer:"customer"},Mhr={s3_IntelligentTiering:"s3:IntelligentTiering",s3_LifecycleExpiration_:"s3:LifecycleExpiration:*",s3_LifecycleExpiration_Delete:"s3:LifecycleExpiration:Delete",s3_LifecycleExpiration_DeleteMarkerCreated:"s3:LifecycleExpiration:DeleteMarkerCreated",s3_LifecycleTransition:"s3:LifecycleTransition",s3_ObjectAcl_Put:"s3:ObjectAcl:Put",s3_ObjectCreated_:"s3:ObjectCreated:*",s3_ObjectCreated_CompleteMultipartUpload:"s3:ObjectCreated:CompleteMultipartUpload",s3_ObjectCreated_Copy:"s3:ObjectCreated:Copy",s3_ObjectCreated_Post:"s3:ObjectCreated:Post",s3_ObjectCreated_Put:"s3:ObjectCreated:Put",s3_ObjectRemoved_:"s3:ObjectRemoved:*",s3_ObjectRemoved_Delete:"s3:ObjectRemoved:Delete",s3_ObjectRemoved_DeleteMarkerCreated:"s3:ObjectRemoved:DeleteMarkerCreated",s3_ObjectRestore_:"s3:ObjectRestore:*",s3_ObjectRestore_Completed:"s3:ObjectRestore:Completed",s3_ObjectRestore_Delete:"s3:ObjectRestore:Delete",s3_ObjectRestore_Post:"s3:ObjectRestore:Post",s3_ObjectTagging_:"s3:ObjectTagging:*",s3_ObjectTagging_Delete:"s3:ObjectTagging:Delete",s3_ObjectTagging_Put:"s3:ObjectTagging:Put",s3_ReducedRedundancyLostObject:"s3:ReducedRedundancyLostObject",s3_Replication_:"s3:Replication:*",s3_Replication_OperationFailedReplication:"s3:Replication:OperationFailedReplication",s3_Replication_OperationMissedThreshold:"s3:Replication:OperationMissedThreshold",s3_Replication_OperationNotTracked:"s3:Replication:OperationNotTracked",s3_Replication_OperationReplicatedAfterThreshold:"s3:Replication:OperationReplicatedAfterThreshold"},Fhr={prefix:"prefix",suffix:"suffix"},Bhr={Disabled:"Disabled",Enabled:"Enabled"},Uhr={Disabled:"Disabled",Enabled:"Enabled"},qhr={Disabled:"Disabled",Enabled:"Enabled"},$hr={Disabled:"Disabled",Enabled:"Enabled"},Ghr={Disabled:"Disabled",Enabled:"Enabled"},jhr={Disabled:"Disabled",Enabled:"Enabled"},Vhr={Disabled:"Disabled",Enabled:"Enabled"},Hhr={BucketOwner:"BucketOwner",Requester:"Requester"},zhr={Disabled:"Disabled",Enabled:"Enabled"},Whr={Enabled:"Enabled",Suspended:"Suspended"},Khr={http:"http",https:"https"},Qhr={COMPLETE:"COMPLETE",COMPLETED:"COMPLETED",FAILED:"FAILED",PENDING:"PENDING",REPLICA:"REPLICA"},Xhr={ENABLED:"ENABLED"},Jhr={CHECKSUM:"Checksum",ETAG:"ETag",OBJECT_PARTS:"ObjectParts",OBJECT_SIZE:"ObjectSize",STORAGE_CLASS:"StorageClass"},Yhr={Enabled:"Enabled"},Zhr={COMPLIANCE:"COMPLIANCE",GOVERNANCE:"GOVERNANCE"},eSr={ARCHIVE_ACCESS:"ARCHIVE_ACCESS",DEEP_ARCHIVE_ACCESS:"DEEP_ARCHIVE_ACCESS"},tSr={url:"url"},rSr={DEEP_ARCHIVE:"DEEP_ARCHIVE",EXPRESS_ONEZONE:"EXPRESS_ONEZONE",FSX_ONTAP:"FSX_ONTAP",FSX_OPENZFS:"FSX_OPENZFS",GLACIER:"GLACIER",GLACIER_IR:"GLACIER_IR",INTELLIGENT_TIERING:"INTELLIGENT_TIERING",ONEZONE_IA:"ONEZONE_IA",OUTPOSTS:"OUTPOSTS",REDUCED_REDUNDANCY:"REDUCED_REDUNDANCY",SNOW:"SNOW",STANDARD:"STANDARD",STANDARD_IA:"STANDARD_IA"},nSr={RESTORE_STATUS:"RestoreStatus"},sSr={STANDARD:"STANDARD"},oSr={Disabled:"Disabled",Enabled:"Enabled"},iSr={Bulk:"Bulk",Expedited:"Expedited",Standard:"Standard"},aSr={SQL:"SQL"},cSr={BZIP2:"BZIP2",GZIP:"GZIP",NONE:"NONE"},uSr={IGNORE:"IGNORE",NONE:"NONE",USE:"USE"},lSr={DOCUMENT:"DOCUMENT",LINES:"LINES"},dSr={ALWAYS:"ALWAYS",ASNEEDED:"ASNEEDED"},pSr={SELECT:"SELECT"};Object.defineProperty(I,"$Command",{enumerable:!0,get:function(){return j.Command}});Object.defineProperty(I,"__Client",{enumerable:!0,get:function(){return j.Client}});I.AbortMultipartUploadCommand=YF;I.AnalyticsS3ExportFileFormat=Chr;I.ArchiveStatus=eSr;I.BucketAbacStatus=Qfr;I.BucketAccelerateStatus=Yfr;I.BucketAlreadyExists=W2e;I.BucketAlreadyOwnedByYou=Q2e;I.BucketCannedACL=dhr;I.BucketLocationConstraint=fhr;I.BucketLogsPermission=khr;I.BucketType=mhr;I.BucketVersioningStatus=Whr;I.ChecksumAlgorithm=ohr;I.ChecksumMode=Xhr;I.ChecksumType=rhr;I.CompleteMultipartUploadCommand=ZF;I.CompressionType=cSr;I.CopyObjectCommand=e3;I.CreateBucketCommand=t3;I.CreateBucketMetadataConfigurationCommand=r3;I.CreateBucketMetadataTableConfigurationCommand=n3;I.CreateMultipartUploadCommand=s3;I.CreateSessionCommand=OR;I.DataRedundancy=phr;I.DeleteBucketAnalyticsConfigurationCommand=o3;I.DeleteBucketCommand=i3;I.DeleteBucketCorsCommand=a3;I.DeleteBucketEncryptionCommand=c3;I.DeleteBucketIntelligentTieringConfigurationCommand=u3;I.DeleteBucketInventoryConfigurationCommand=l3;I.DeleteBucketLifecycleCommand=d3;I.DeleteBucketMetadataConfigurationCommand=p3;I.DeleteBucketMetadataTableConfigurationCommand=m3;I.DeleteBucketMetricsConfigurationCommand=g3;I.DeleteBucketOwnershipControlsCommand=f3;I.DeleteBucketPolicyCommand=h3;I.DeleteBucketReplicationCommand=S3;I.DeleteBucketTaggingCommand=E3;I.DeleteBucketWebsiteCommand=y3;I.DeleteMarkerReplicationStatus=Bhr;I.DeleteObjectCommand=_3;I.DeleteObjectTaggingCommand=R3;I.DeleteObjectsCommand=C3;I.DeletePublicAccessBlockCommand=v3;I.EncodingType=tSr;I.EncryptionType=vhr;I.EncryptionTypeMismatch=oje;I.Event=Mhr;I.ExistingObjectReplicationStatus=$hr;I.ExpirationState=yhr;I.ExpirationStatus=Dhr;I.ExpressionType=aSr;I.FileHeaderInfo=uSr;I.FilterRuleName=Fhr;I.GetBucketAbacCommand=x3;I.GetBucketAccelerateConfigurationCommand=P3;I.GetBucketAclCommand=b3;I.GetBucketAnalyticsConfigurationCommand=I3;I.GetBucketCorsCommand=A3;I.GetBucketEncryptionCommand=T3;I.GetBucketIntelligentTieringConfigurationCommand=w3;I.GetBucketInventoryConfigurationCommand=D3;I.GetBucketLifecycleConfigurationCommand=O3;I.GetBucketLocationCommand=k3;I.GetBucketLoggingCommand=N3;I.GetBucketMetadataConfigurationCommand=L3;I.GetBucketMetadataTableConfigurationCommand=M3;I.GetBucketMetricsConfigurationCommand=F3;I.GetBucketNotificationConfigurationCommand=B3;I.GetBucketOwnershipControlsCommand=U3;I.GetBucketPolicyCommand=q3;I.GetBucketPolicyStatusCommand=$3;I.GetBucketReplicationCommand=G3;I.GetBucketRequestPaymentCommand=j3;I.GetBucketTaggingCommand=V3;I.GetBucketVersioningCommand=H3;I.GetBucketWebsiteCommand=z3;I.GetObjectAclCommand=W3;I.GetObjectAttributesCommand=K3;I.GetObjectCommand=Q3;I.GetObjectLegalHoldCommand=X3;I.GetObjectLockConfigurationCommand=J3;I.GetObjectRetentionCommand=Y3;I.GetObjectTaggingCommand=Z3;I.GetObjectTorrentCommand=eB;I.GetPublicAccessBlockCommand=tB;I.HeadBucketCommand=Bh;I.HeadObjectCommand=Uh;I.IdempotencyParameterMismatch=mje;I.IntelligentTieringAccessTier=Phr;I.IntelligentTieringStatus=xhr;I.InvalidObjectState=Z2e;I.InvalidRequest=aje;I.InvalidWriteOffset=uje;I.InventoryConfigurationState=Shr;I.InventoryFormat=bhr;I.InventoryFrequency=Thr;I.InventoryIncludedObjectVersions=Ihr;I.InventoryOptionalField=Ahr;I.JSONType=lSr;I.ListBucketAnalyticsConfigurationsCommand=rB;I.ListBucketIntelligentTieringConfigurationsCommand=nB;I.ListBucketInventoryConfigurationsCommand=sB;I.ListBucketMetricsConfigurationsCommand=oB;I.ListBucketsCommand=kR;I.ListDirectoryBucketsCommand=NR;I.ListMultipartUploadsCommand=iB;I.ListObjectVersionsCommand=cB;I.ListObjectsCommand=aB;I.ListObjectsV2Command=LR;I.ListPartsCommand=MR;I.LocationType=ghr;I.MFADelete=oSr;I.MFADeleteStatus=zhr;I.MetadataDirective=ihr;I.MetricsStatus=Uhr;I.NoSuchBucket=J2e;I.NoSuchKey=tje;I.NoSuchUpload=j2e;I.NotFound=nje;I.ObjectAlreadyInActiveTierError=fje;I.ObjectAttributes=Jhr;I.ObjectCannedACL=shr;I.ObjectLockEnabled=Yhr;I.ObjectLockLegalHoldStatus=ahr;I.ObjectLockMode=chr;I.ObjectLockRetentionMode=Zhr;I.ObjectNotInActiveTierError=H2e;I.ObjectOwnership=hhr;I.ObjectStorageClass=rSr;I.ObjectVersionStorageClass=sSr;I.OptionalObjectAttributes=nSr;I.OwnerOverride=thr;I.PartitionDateSource=Nhr;I.Payer=Hhr;I.Permission=ehr;I.Protocol=Khr;I.PutBucketAbacCommand=uB;I.PutBucketAccelerateConfigurationCommand=lB;I.PutBucketAclCommand=dB;I.PutBucketAnalyticsConfigurationCommand=pB;I.PutBucketCorsCommand=mB;I.PutBucketEncryptionCommand=gB;I.PutBucketIntelligentTieringConfigurationCommand=fB;I.PutBucketInventoryConfigurationCommand=hB;I.PutBucketLifecycleConfigurationCommand=SB;I.PutBucketLoggingCommand=EB;I.PutBucketMetricsConfigurationCommand=yB;I.PutBucketNotificationConfigurationCommand=_B;I.PutBucketOwnershipControlsCommand=CB;I.PutBucketPolicyCommand=RB;I.PutBucketReplicationCommand=vB;I.PutBucketRequestPaymentCommand=xB;I.PutBucketTaggingCommand=PB;I.PutBucketVersioningCommand=bB;I.PutBucketWebsiteCommand=IB;I.PutObjectAclCommand=AB;I.PutObjectCommand=TB;I.PutObjectLegalHoldCommand=wB;I.PutObjectLockConfigurationCommand=DB;I.PutObjectRetentionCommand=OB;I.PutObjectTaggingCommand=kB;I.PutPublicAccessBlockCommand=NB;I.QuoteFields=dSr;I.RenameObjectCommand=LB;I.ReplicaModificationsStatus=Ghr;I.ReplicationRuleStatus=Vhr;I.ReplicationStatus=Qhr;I.ReplicationTimeStatus=qhr;I.RequestCharged=Xfr;I.RequestPayer=Jfr;I.RestoreObjectCommand=MB;I.RestoreRequestType=pSr;I.S3=jB;I.S3Client=sd;I.S3ServiceException=jn;I.S3TablesBucketType=Lhr;I.SelectObjectContentCommand=FB;I.ServerSideEncryption=nhr;I.SessionMode=_hr;I.SseKmsEncryptedObjectsStatus=jhr;I.StorageClass=uhr;I.StorageClassAnalysisSchemaVersion=Rhr;I.TableSseAlgorithm=Ehr;I.TaggingDirective=lhr;I.Tier=iSr;I.TooManyParts=dje;I.TransitionDefaultMinimumObjectSize=Ohr;I.TransitionStorageClass=whr;I.Type=Zfr;I.UpdateBucketMetadataInventoryTableConfigurationCommand=BB;I.UpdateBucketMetadataJournalTableConfigurationCommand=UB;I.UploadPartCommand=qB;I.UploadPartCopyCommand=$B;I.WriteGetObjectResponseCommand=GB;I.paginateListBuckets=Ffr;I.paginateListDirectoryBuckets=Bfr;I.paginateListObjectsV2=Ufr;I.paginateListParts=qfr;I.waitForBucketExists=$fr;I.waitForBucketNotExists=jfr;I.waitForObjectExists=Hfr;I.waitForObjectNotExists=Wfr;I.waitUntilBucketExists=Gfr;I.waitUntilBucketNotExists=Vfr;I.waitUntilObjectExists=zfr;I.waitUntilObjectNotExists=Kfr});var UX=b(ld=>{"use strict";Object.defineProperty(ld,"__esModule",{value:!0});ld.resolveHttpAuthSchemeConfig=ld.defaultCloudWatchLogsHttpAuthSchemeProvider=ld.defaultCloudWatchLogsHttpAuthSchemeParametersProvider=void 0;var mSr=(Dt(),ue(Fr)),BX=require("@smithy/util-middleware"),gSr=async(t,e,r)=>({operation:(0,BX.getSmithyContext)(e).operation,region:await(0,BX.normalizeProvider)(t.region)()||(()=>{throw new Error("expected `region` to be configured for `aws.auth#sigv4`")})()});ld.defaultCloudWatchLogsHttpAuthSchemeParametersProvider=gSr;function fSr(t){return{schemeId:"aws.auth#sigv4",signingProperties:{name:"logs",region:t.region},propertiesExtractor:(e,r)=>({signingProperties:{config:e,context:r}})}}var hSr=t=>{let e=[];switch(t.operation){default:e.push(fSr(t))}return e};ld.defaultCloudWatchLogsHttpAuthSchemeProvider=hSr;var SSr=t=>{let e=(0,mSr.resolveAwsSdkSigV4Config)(t);return Object.assign(e,{authSchemePreference:(0,BX.normalizeProvider)(t.authSchemePreference??[])})};ld.resolveHttpAuthSchemeConfig=SSr});var WHe=b((Fnn,ESr)=>{ESr.exports={name:"@aws-sdk/client-cloudwatch-logs",description:"AWS SDK for JavaScript Cloudwatch Logs Client for Node.js, Browser and React Native",version:"3.952.0",scripts:{build:"concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types'","build:cjs":"node ../../scripts/compilation/inline client-cloudwatch-logs","build:es":"tsc -p tsconfig.es.json","build:include:deps":"lerna run --scope $npm_package_name --include-dependencies build","build:types":"tsc -p tsconfig.types.json","build:types:downlevel":"downlevel-dts dist-types dist-types/ts3.4",clean:"rimraf ./dist-* && rimraf *.tsbuildinfo","extract:docs":"api-extractor run --local","generate:client":"node ../../scripts/generate-clients/single-service --solo cloudwatch-logs","test:e2e":"yarn g:vitest run -c vitest.config.e2e.mts","test:e2e:watch":"yarn g:vitest watch -c vitest.config.e2e.mts","test:index":"tsc --noEmit ./test/index-types.ts && node ./test/index-objects.spec.mjs"},main:"./dist-cjs/index.js",types:"./dist-types/index.d.ts",module:"./dist-es/index.js",sideEffects:!1,dependencies:{"@aws-crypto/sha256-browser":"5.2.0","@aws-crypto/sha256-js":"5.2.0","@aws-sdk/core":"3.947.0","@aws-sdk/credential-provider-node":"3.952.0","@aws-sdk/middleware-host-header":"3.936.0","@aws-sdk/middleware-logger":"3.936.0","@aws-sdk/middleware-recursion-detection":"3.948.0","@aws-sdk/middleware-user-agent":"3.947.0","@aws-sdk/region-config-resolver":"3.936.0","@aws-sdk/types":"3.936.0","@aws-sdk/util-endpoints":"3.936.0","@aws-sdk/util-user-agent-browser":"3.936.0","@aws-sdk/util-user-agent-node":"3.947.0","@smithy/config-resolver":"^4.4.3","@smithy/core":"^3.18.7","@smithy/eventstream-serde-browser":"^4.2.5","@smithy/eventstream-serde-config-resolver":"^4.3.5","@smithy/eventstream-serde-node":"^4.2.5","@smithy/fetch-http-handler":"^5.3.6","@smithy/hash-node":"^4.2.5","@smithy/invalid-dependency":"^4.2.5","@smithy/middleware-content-length":"^4.2.5","@smithy/middleware-endpoint":"^4.3.14","@smithy/middleware-retry":"^4.4.14","@smithy/middleware-serde":"^4.2.6","@smithy/middleware-stack":"^4.2.5","@smithy/node-config-provider":"^4.3.5","@smithy/node-http-handler":"^4.4.5","@smithy/protocol-http":"^5.3.5","@smithy/smithy-client":"^4.9.10","@smithy/types":"^4.9.0","@smithy/url-parser":"^4.2.5","@smithy/util-base64":"^4.3.0","@smithy/util-body-length-browser":"^4.2.0","@smithy/util-body-length-node":"^4.2.1","@smithy/util-defaults-mode-browser":"^4.3.13","@smithy/util-defaults-mode-node":"^4.2.16","@smithy/util-endpoints":"^3.2.5","@smithy/util-middleware":"^4.2.5","@smithy/util-retry":"^4.2.5","@smithy/util-utf8":"^4.2.0",tslib:"^2.6.2"},devDependencies:{"@tsconfig/node18":"18.2.4","@types/node":"^18.19.69",concurrently:"7.0.0","downlevel-dts":"0.10.1",rimraf:"3.0.2",typescript:"~5.8.3"},engines:{node:">=18.0.0"},typesVersions:{"<4.0":{"dist-types/*":["dist-types/ts3.4/*"]}},files:["dist-*/**"],author:{name:"AWS SDK for JavaScript Team",url:"https://aws.amazon.com/javascript/"},license:"Apache-2.0",browser:{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.browser"},"react-native":{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.native"},homepage:"https://github.com/aws/aws-sdk-js-v3/tree/main/clients/client-cloudwatch-logs",repository:{type:"git",url:"https://github.com/aws/aws-sdk-js-v3.git",directory:"clients/client-cloudwatch-logs"}}});var cze=b(uU=>{"use strict";Object.defineProperty(uU,"__esModule",{value:!0});uU.ruleSet=void 0;var oze="required",mi="fn",gi="argv",ES="ref",KHe=!0,QHe="isSet",cv="booleanEquals",SS="error",um="endpoint",fu="tree",$X="PartitionResult",XHe="stringEquals",JHe={[oze]:!1,type:"string"},YHe={[oze]:!0,default:!1,type:"boolean"},ZHe={[ES]:"Endpoint"},ize={[mi]:cv,[gi]:[{[ES]:"UseFIPS"},!0]},aze={[mi]:cv,[gi]:[{[ES]:"UseDualStack"},!0]},Bs={},qX={[ES]:"Region"},eze={[mi]:"getAttr",[gi]:[{[ES]:$X},"supportsFIPS"]},tze={[mi]:cv,[gi]:[!0,{[mi]:"getAttr",[gi]:[{[ES]:$X},"supportsDualStack"]}]},rze=[ize],nze=[aze],sze=[qX],ySr={version:"1.0",parameters:{Region:JHe,UseDualStack:YHe,UseFIPS:YHe,Endpoint:JHe},rules:[{conditions:[{[mi]:QHe,[gi]:[ZHe]}],rules:[{conditions:rze,error:"Invalid Configuration: FIPS and custom endpoint are not supported",type:SS},{conditions:nze,error:"Invalid Configuration: Dualstack and custom endpoint are not supported",type:SS},{endpoint:{url:ZHe,properties:Bs,headers:Bs},type:um}],type:fu},{conditions:[{[mi]:QHe,[gi]:sze}],rules:[{conditions:[{[mi]:"aws.partition",[gi]:sze,assign:$X}],rules:[{conditions:[ize,aze],rules:[{conditions:[{[mi]:cv,[gi]:[KHe,eze]},tze],rules:[{endpoint:{url:"https://logs-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:Bs,headers:Bs},type:um}],type:fu},{error:"FIPS and DualStack are enabled, but this partition does not support one or both",type:SS}],type:fu},{conditions:rze,rules:[{conditions:[{[mi]:cv,[gi]:[eze,KHe]}],rules:[{conditions:[{[mi]:XHe,[gi]:[qX,"us-gov-east-1"]}],endpoint:{url:"https://logs.us-gov-east-1.amazonaws.com",properties:Bs,headers:Bs},type:um},{conditions:[{[mi]:XHe,[gi]:[qX,"us-gov-west-1"]}],endpoint:{url:"https://logs.us-gov-west-1.amazonaws.com",properties:Bs,headers:Bs},type:um},{endpoint:{url:"https://logs-fips.{Region}.{PartitionResult#dnsSuffix}",properties:Bs,headers:Bs},type:um}],type:fu},{error:"FIPS is enabled but this partition does not support FIPS",type:SS}],type:fu},{conditions:nze,rules:[{conditions:[tze],rules:[{endpoint:{url:"https://logs.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:Bs,headers:Bs},type:um}],type:fu},{error:"DualStack is enabled but this partition does not support DualStack",type:SS}],type:fu},{endpoint:{url:"https://logs.{Region}.{PartitionResult#dnsSuffix}",properties:Bs,headers:Bs},type:um}],type:fu}],type:fu},{error:"Invalid Configuration: Missing Region",type:SS}]};uU.ruleSet=ySr});var uze=b(lU=>{"use strict";Object.defineProperty(lU,"__esModule",{value:!0});lU.defaultEndpointResolver=void 0;var _Sr=Ta(),GX=require("@smithy/util-endpoints"),CSr=cze(),RSr=new GX.EndpointCache({size:50,params:["Endpoint","Region","UseDualStack","UseFIPS"]}),vSr=(t,e={})=>RSr.get(t,()=>(0,GX.resolveEndpoint)(CSr.ruleSet,{endpointParams:t,logger:e.logger}));lU.defaultEndpointResolver=vSr;GX.customEndpointFunctions.aws=_Sr.awsEndpointFunctions});var pze=b(dU=>{"use strict";Object.defineProperty(dU,"__esModule",{value:!0});dU.getRuntimeConfig=void 0;var xSr=(Dt(),ue(Fr)),PSr=(wa(),ue(Wg)),bSr=require("@smithy/smithy-client"),ISr=require("@smithy/url-parser"),lze=require("@smithy/util-base64"),dze=require("@smithy/util-utf8"),ASr=UX(),TSr=uze(),wSr=t=>({apiVersion:"2014-03-28",base64Decoder:t?.base64Decoder??lze.fromBase64,base64Encoder:t?.base64Encoder??lze.toBase64,disableHostPrefix:t?.disableHostPrefix??!1,endpointProvider:t?.endpointProvider??TSr.defaultEndpointResolver,extensions:t?.extensions??[],httpAuthSchemeProvider:t?.httpAuthSchemeProvider??ASr.defaultCloudWatchLogsHttpAuthSchemeProvider,httpAuthSchemes:t?.httpAuthSchemes??[{schemeId:"aws.auth#sigv4",identityProvider:e=>e.getIdentityProvider("aws.auth#sigv4"),signer:new xSr.AwsSdkSigV4Signer}],logger:t?.logger??new bSr.NoOpLogger,protocol:t?.protocol??new PSr.AwsJson1_1Protocol({defaultNamespace:"com.amazonaws.cloudwatchlogs",serviceTarget:"Logs_20140328",awsQueryCompatible:!1}),serviceId:t?.serviceId??"CloudWatch Logs",urlParser:t?.urlParser??ISr.parseUrl,utf8Decoder:t?.utf8Decoder??dze.fromUtf8,utf8Encoder:t?.utf8Encoder??dze.toUtf8});dU.getRuntimeConfig=wSr});var Eze=b(mU=>{"use strict";Object.defineProperty(mU,"__esModule",{value:!0});mU.getRuntimeConfig=void 0;var DSr=require("tslib"),OSr=DSr.__importDefault(WHe()),mze=(Dt(),ue(Fr)),kSr=O_(),gze=Mc(),pU=require("@smithy/config-resolver"),NSr=require("@smithy/eventstream-serde-node"),LSr=require("@smithy/hash-node"),fze=require("@smithy/middleware-retry"),lm=require("@smithy/node-config-provider"),hze=require("@smithy/node-http-handler"),Sze=require("@smithy/smithy-client"),MSr=require("@smithy/util-body-length-node"),FSr=require("@smithy/util-defaults-mode-node"),BSr=require("@smithy/util-retry"),USr=pze(),qSr=t=>{(0,Sze.emitWarningIfUnsupportedVersion)(process.version);let e=(0,FSr.resolveDefaultsModeConfig)(t),r=()=>e().then(Sze.loadConfigsForDefaultMode),n=(0,USr.getRuntimeConfig)(t);(0,mze.emitWarningIfUnsupportedVersion)(process.version);let s={profile:t?.profile,logger:n.logger};return{...n,...t,runtime:"node",defaultsMode:e,authSchemePreference:t?.authSchemePreference??(0,lm.loadConfig)(mze.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS,s),bodyLengthChecker:t?.bodyLengthChecker??MSr.calculateBodyLength,credentialDefaultProvider:t?.credentialDefaultProvider??kSr.defaultProvider,defaultUserAgentProvider:t?.defaultUserAgentProvider??(0,gze.createDefaultUserAgentProvider)({serviceId:n.serviceId,clientVersion:OSr.default.version}),eventStreamSerdeProvider:t?.eventStreamSerdeProvider??NSr.eventStreamSerdeProvider,maxAttempts:t?.maxAttempts??(0,lm.loadConfig)(fze.NODE_MAX_ATTEMPT_CONFIG_OPTIONS,t),region:t?.region??(0,lm.loadConfig)(pU.NODE_REGION_CONFIG_OPTIONS,{...pU.NODE_REGION_CONFIG_FILE_OPTIONS,...s}),requestHandler:hze.NodeHttpHandler.create(t?.requestHandler??r),retryMode:t?.retryMode??(0,lm.loadConfig)({...fze.NODE_RETRY_MODE_CONFIG_OPTIONS,default:async()=>(await r()).retryMode||BSr.DEFAULT_RETRY_MODE},t),sha256:t?.sha256??LSr.Hash.bind(null,"sha256"),streamCollector:t?.streamCollector??hze.streamCollector,useDualstackEndpoint:t?.useDualstackEndpoint??(0,lm.loadConfig)(pU.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS,s),useFipsEndpoint:t?.useFipsEndpoint??(0,lm.loadConfig)(pU.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS,s),userAgentAppId:t?.userAgentAppId??(0,lm.loadConfig)(gze.NODE_APP_ID_CONFIG_OPTIONS,s)}};mU.getRuntimeConfig=qSr});var BKe=b(w=>{"use strict";var yze=wc(),$Sr=Dc(),GSr=Oc(),_ze=Oa(),jSr=require("@smithy/config-resolver"),vr=require("@smithy/core"),cr=require("@smithy/core/schema"),VSr=require("@smithy/eventstream-serde-config-resolver"),HSr=require("@smithy/middleware-content-length"),V=require("@smithy/middleware-endpoint"),Cze=require("@smithy/middleware-retry"),G=require("@smithy/smithy-client"),Rze=UX(),zSr=Eze(),vze=Na(),xze=require("@smithy/protocol-http"),WSr=t=>Object.assign(t,{useDualstackEndpoint:t.useDualstackEndpoint??!1,useFipsEndpoint:t.useFipsEndpoint??!1,defaultSigningName:"logs"}),W={UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}},KSr=t=>{let e=t.httpAuthSchemes,r=t.httpAuthSchemeProvider,n=t.credentials;return{setHttpAuthScheme(s){let o=e.findIndex(i=>i.schemeId===s.schemeId);o===-1?e.push(s):e.splice(o,1,s)},httpAuthSchemes(){return e},setHttpAuthSchemeProvider(s){r=s},httpAuthSchemeProvider(){return r},setCredentials(s){n=s},credentials(){return n}}},QSr=t=>({httpAuthSchemes:t.httpAuthSchemes(),httpAuthSchemeProvider:t.httpAuthSchemeProvider(),credentials:t.credentials()}),XSr=(t,e)=>{let r=Object.assign(vze.getAwsRegionExtensionConfiguration(t),G.getDefaultExtensionConfiguration(t),xze.getHttpHandlerExtensionConfiguration(t),KSr(t));return e.forEach(n=>n.configure(r)),Object.assign(t,vze.resolveAwsRegionExtensionConfiguration(r),G.resolveDefaultRuntimeConfig(r),xze.resolveHttpHandlerRuntimeConfig(r),QSr(r))},fr=class extends G.Client{config;constructor(...[e]){let r=zSr.getRuntimeConfig(e||{});super(r),this.initConfig=r;let n=WSr(r),s=_ze.resolveUserAgentConfig(n),o=Cze.resolveRetryConfig(s),i=jSr.resolveRegionConfig(o),a=yze.resolveHostHeaderConfig(i),c=V.resolveEndpointConfig(a),u=VSr.resolveEventStreamSerdeConfig(c),l=Rze.resolveHttpAuthSchemeConfig(u),d=XSr(l,e?.extensions||[]);this.config=d,this.middlewareStack.use(cr.getSchemaSerdePlugin(this.config)),this.middlewareStack.use(_ze.getUserAgentPlugin(this.config)),this.middlewareStack.use(Cze.getRetryPlugin(this.config)),this.middlewareStack.use(HSr.getContentLengthPlugin(this.config)),this.middlewareStack.use(yze.getHostHeaderPlugin(this.config)),this.middlewareStack.use($Sr.getLoggerPlugin(this.config)),this.middlewareStack.use(GSr.getRecursionDetectionPlugin(this.config)),this.middlewareStack.use(vr.getHttpAuthSchemeEndpointRuleSetPlugin(this.config,{httpAuthSchemeParametersProvider:Rze.defaultCloudWatchLogsHttpAuthSchemeParametersProvider,identityProviderConfigProvider:async p=>new vr.DefaultIdentityProviderConfig({"aws.auth#sigv4":p.credentials})})),this.middlewareStack.use(vr.getHttpSigningPlugin(this.config))}destroy(){super.destroy()}},ur=class Pze extends G.ServiceException{constructor(e){super(e),Object.setPrototypeOf(this,Pze.prototype)}},bze=class Ize extends ur{name="AccessDeniedException";$fault="client";constructor(e){super({name:"AccessDeniedException",$fault:"client",...e}),Object.setPrototypeOf(this,Ize.prototype)}},Aze=class Tze extends ur{name="InvalidParameterException";$fault="client";constructor(e){super({name:"InvalidParameterException",$fault:"client",...e}),Object.setPrototypeOf(this,Tze.prototype)}},wze=class Dze extends ur{name="OperationAbortedException";$fault="client";constructor(e){super({name:"OperationAbortedException",$fault:"client",...e}),Object.setPrototypeOf(this,Dze.prototype)}},Oze=class kze extends ur{name="ResourceNotFoundException";$fault="client";constructor(e){super({name:"ResourceNotFoundException",$fault:"client",...e}),Object.setPrototypeOf(this,kze.prototype)}},Nze=class Lze extends ur{name="ServiceUnavailableException";$fault="server";constructor(e){super({name:"ServiceUnavailableException",$fault:"server",...e}),Object.setPrototypeOf(this,Lze.prototype)}},Mze=class Fze extends ur{name="InternalServerException";$fault="server";constructor(e){super({name:"InternalServerException",$fault:"server",...e}),Object.setPrototypeOf(this,Fze.prototype)}},Bze=class Uze extends ur{name="ThrottlingException";$fault="client";constructor(e){super({name:"ThrottlingException",$fault:"client",...e}),Object.setPrototypeOf(this,Uze.prototype)}},qze=class $ze extends ur{name="ValidationException";$fault="client";constructor(e){super({name:"ValidationException",$fault:"client",...e}),Object.setPrototypeOf(this,$ze.prototype)}},Gze=class jze extends ur{name="InvalidOperationException";$fault="client";constructor(e){super({name:"InvalidOperationException",$fault:"client",...e}),Object.setPrototypeOf(this,jze.prototype)}},Vze=class Hze extends ur{name="ConflictException";$fault="client";constructor(e){super({name:"ConflictException",$fault:"client",...e}),Object.setPrototypeOf(this,Hze.prototype)}},zze=class Wze extends ur{name="ServiceQuotaExceededException";$fault="client";constructor(e){super({name:"ServiceQuotaExceededException",$fault:"client",...e}),Object.setPrototypeOf(this,Wze.prototype)}},Kze=class Qze extends ur{name="LimitExceededException";$fault="client";constructor(e){super({name:"LimitExceededException",$fault:"client",...e}),Object.setPrototypeOf(this,Qze.prototype)}},Xze=class Jze extends ur{name="ResourceAlreadyExistsException";$fault="client";constructor(e){super({name:"ResourceAlreadyExistsException",$fault:"client",...e}),Object.setPrototypeOf(this,Jze.prototype)}},Yze=class Zze extends ur{name="DataAlreadyAcceptedException";$fault="client";expectedSequenceToken;constructor(e){super({name:"DataAlreadyAcceptedException",$fault:"client",...e}),Object.setPrototypeOf(this,Zze.prototype),this.expectedSequenceToken=e.expectedSequenceToken}},eWe=class tWe extends ur{name="InternalStreamingException";$fault="client";constructor(e){super({name:"InternalStreamingException",$fault:"client",...e}),Object.setPrototypeOf(this,tWe.prototype)}},rWe=class nWe extends ur{name="InvalidSequenceTokenException";$fault="client";expectedSequenceToken;constructor(e){super({name:"InvalidSequenceTokenException",$fault:"client",...e}),Object.setPrototypeOf(this,nWe.prototype),this.expectedSequenceToken=e.expectedSequenceToken}},sWe=class oWe extends ur{name="UnrecognizedClientException";$fault="client";constructor(e){super({name:"UnrecognizedClientException",$fault:"client",...e}),Object.setPrototypeOf(this,oWe.prototype)}},iWe=class aWe extends ur{name="SessionStreamingException";$fault="client";constructor(e){super({name:"SessionStreamingException",$fault:"client",...e}),Object.setPrototypeOf(this,aWe.prototype)}},cWe=class uWe extends ur{name="SessionTimeoutException";$fault="client";constructor(e){super({name:"SessionTimeoutException",$fault:"client",...e}),Object.setPrototypeOf(this,uWe.prototype)}},lWe=class dWe extends ur{name="MalformedQueryException";$fault="client";queryCompileError;constructor(e){super({name:"MalformedQueryException",$fault:"client",...e}),Object.setPrototypeOf(this,dWe.prototype),this.queryCompileError=e.queryCompileError}},pWe=class mWe extends ur{name="TooManyTagsException";$fault="client";resourceName;constructor(e){super({name:"TooManyTagsException",$fault:"client",...e}),Object.setPrototypeOf(this,mWe.prototype),this.resourceName=e.resourceName}},JSr="Anomaly",YSr="AnomalyDetector",ZSr="AccessDeniedException",eEr="AnomalyDetectors",tEr="AllowedFields",rEr="AddKeys",nEr="AddKeyEntry",sEr="AddKeyEntries",oEr="AssociateKmsKey",iEr="AssociateKmsKeyRequest",aEr="AggregateLogGroupSummary",cEr="AggregateLogGroupSummaries",uEr="AccountPolicy",lEr="AccountPolicies",dEr="AssociateSourceToS3TableIntegration",pEr="AssociateSourceToS3TableIntegrationRequest",mEr="AssociateSourceToS3TableIntegrationResponse",gEr="Anomalies",fEr="CreateDelivery",hEr="CreateDeliveryRequest",SEr="CreateDeliveryResponse",EEr="ConflictException",yEr="CancelExportTask",_Er="CancelExportTaskRequest",CEr="CreateExportTaskRequest",REr="CreateExportTaskResponse",vEr="CreateExportTask",xEr="CancelImportTask",PEr="CancelImportTaskRequest",bEr="CancelImportTaskResponse",IEr="CreateImportTaskRequest",AEr="CreateImportTaskResponse",TEr="CreateImportTask",wEr="CreateLogAnomalyDetector",DEr="CreateLogAnomalyDetectorRequest",OEr="CreateLogAnomalyDetectorResponse",kEr="CreateLogGroup",NEr="CreateLogGroupRequest",LEr="CreateLogStream",MEr="CreateLogStreamRequest",FEr="CreateScheduledQuery",BEr="CreateScheduledQueryRequest",UEr="CreateScheduledQueryResponse",qEr="CSV",$Er="ConfigurationTemplate",GEr="ConfigurationTemplateDeliveryConfigValues",jEr="ConfigurationTemplates",VEr="CopyValue",HEr="CopyValueEntry",zEr="CopyValueEntries",WEr="Delivery",KEr="DataAlreadyAcceptedException",QEr="DeleteAccountPolicy",XEr="DeleteAccountPolicyRequest",JEr="DescribeAccountPoliciesRequest",YEr="DescribeAccountPoliciesResponse",ZEr="DescribeAccountPolicies",eyr="DestinationConfiguration",tyr="DescribeConfigurationTemplates",ryr="DescribeConfigurationTemplatesRequest",nyr="DescribeConfigurationTemplatesResponse",syr="DeliveryDestination",oyr="DeliveryDestinationConfiguration",iyr="DeleteDeliveryDestination",ayr="DeleteDeliveryDestinationPolicy",cyr="DeleteDeliveryDestinationPolicyRequest",uyr="DeleteDeliveryDestinationRequest",lyr="DescribeDeliveryDestinationsRequest",dyr="DescribeDeliveryDestinationsResponse",pyr="DescribeDeliveryDestinations",myr="DeleteDataProtectionPolicy",gyr="DeleteDataProtectionPolicyRequest",fyr="DeleteDeliveryRequest",hyr="DeleteDestinationRequest",Syr="DescribeDeliveriesRequest",Eyr="DescribeDeliveriesResponse",yyr="DescribeDestinationsRequest",_yr="DescribeDestinationsResponse",Cyr="DeleteDeliverySource",Ryr="DeleteDeliverySourceRequest",vyr="DescribeDeliverySourcesRequest",xyr="DescribeDeliverySourcesResponse",Pyr="DescribeDeliverySources",byr="DeliveryDestinations",Iyr="DeleteDelivery",Ayr="DeleteDestination",Tyr="DescribeDeliveries",wyr="DescribeDestinations",Dyr="DescribeExportTasks",Oyr="DescribeExportTasksRequest",kyr="DescribeExportTasksResponse",Nyr="DescribeFieldIndexes",Lyr="DescribeFieldIndexesRequest",Myr="DescribeFieldIndexesResponse",Fyr="DeleteIntegration",Byr="DeleteIndexPolicy",Uyr="DeleteIndexPolicyRequest",qyr="DeleteIndexPolicyResponse",$yr="DescribeIndexPoliciesRequest",Gyr="DescribeIndexPoliciesResponse",jyr="DescribeIndexPolicies",Vyr="DeleteIntegrationRequest",Hyr="DeleteIntegrationResponse",zyr="DescribeImportTasks",Wyr="DescribeImportTaskBatches",Kyr="DescribeImportTaskBatchesRequest",Qyr="DescribeImportTaskBatchesResponse",Xyr="DescribeImportTasksRequest",Jyr="DescribeImportTasksResponse",Yyr="DeleteKeys",Zyr="DisassociateKmsKey",e_r="DisassociateKmsKeyRequest",t_r="DeleteLogAnomalyDetector",r_r="DeleteLogAnomalyDetectorRequest",n_r="DeleteLogGroup",s_r="DeleteLogGroupRequest",o_r="DescribeLogGroupsRequest",i_r="DescribeLogGroupsResponse",a_r="DescribeLogGroups",c_r="DeleteLogStream",u_r="DeleteLogStreamRequest",l_r="DescribeLogStreamsRequest",d_r="DescribeLogStreamsResponse",p_r="DescribeLogStreams",m_r="DeleteMetricFilter",g_r="DeleteMetricFilterRequest",f_r="DescribeMetricFiltersRequest",h_r="DescribeMetricFiltersResponse",S_r="DescribeMetricFilters",E_r="DestinationNamePrefix",y_r="DescribeQueries",__r="DeleteQueryDefinition",C_r="DeleteQueryDefinitionRequest",R_r="DeleteQueryDefinitionResponse",v_r="DescribeQueryDefinitionsRequest",x_r="DescribeQueryDefinitionsResponse",P_r="DescribeQueryDefinitions",b_r="DescribeQueriesRequest",I_r="DescribeQueriesResponse",A_r="DeleteResourcePolicy",T_r="DeleteResourcePolicyRequest",w_r="DeleteRetentionPolicyRequest",D_r="DescribeResourcePoliciesRequest",O_r="DescribeResourcePoliciesResponse",k_r="DeleteRetentionPolicy",N_r="DescribeResourcePolicies",L_r="DataSource",M_r="DataSourceFilter",F_r="DeleteSubscriptionFilterRequest",B_r="DescribeSubscriptionFiltersRequest",U_r="DescribeSubscriptionFiltersResponse",q_r="DisassociateSourceFromS3TableIntegration",$_r="DisassociateSourceFromS3TableIntegrationRequest",G_r="DisassociateSourceFromS3TableIntegrationResponse",j_r="DataSourceFilters",V_r="DeleteSubscriptionFilter",H_r="DescribeSubscriptionFilters",z_r="DeleteScheduledQuery",W_r="DeleteScheduledQueryRequest",K_r="DeleteScheduledQueryResponse",Q_r="DeliverySource",X_r="DeliverySources",J_r="DeleteTransformer",Y_r="DateTimeConverter",Z_r="DeleteTransformerRequest",eCr="Destination",tCr="Deliveries",rCr="Destinations",nCr="Entity",sCr="ExportTask",oCr="ExportTaskExecutionInfo",iCr="ExportTaskStatus",aCr="ExportTasks",cCr="FieldsData",uCr="FieldIndex",lCr="FieldIndexes",dCr="FilteredLogEvent",pCr="FilterLogEventsRequest",mCr="FilterLogEventsResponse",gCr="FilteredLogEvents",fCr="FilterLogEvents",hCr="Grok",SCr="GetDelivery",ECr="GetDeliveryDestination",yCr="GetDeliveryDestinationPolicy",_Cr="GetDeliveryDestinationPolicyRequest",CCr="GetDeliveryDestinationPolicyResponse",RCr="GetDeliveryDestinationRequest",vCr="GetDeliveryDestinationResponse",xCr="GetDataProtectionPolicy",PCr="GetDataProtectionPolicyRequest",bCr="GetDataProtectionPolicyResponse",ICr="GetDeliveryRequest",ACr="GetDeliveryResponse",TCr="GetDeliverySource",wCr="GetDeliverySourceRequest",DCr="GetDeliverySourceResponse",OCr="GroupingIdentifier",kCr="GetIntegrationRequest",NCr="GetIntegrationResponse",LCr="GetIntegration",MCr="GroupingIdentifiers",FCr="GetLogAnomalyDetector",BCr="GetLogAnomalyDetectorRequest",UCr="GetLogAnomalyDetectorResponse",qCr="GetLogEvents",$Cr="GetLogEventsRequest",GCr="GetLogEventsResponse",jCr="GetLogFields",VCr="GetLogFieldsRequest",HCr="GetLogFieldsResponse",zCr="GetLogGroupFields",WCr="GetLogGroupFieldsRequest",KCr="GetLogGroupFieldsResponse",QCr="GetLogObject",XCr="GetLogObjectRequest",JCr="GetLogObjectResponseStream",YCr="GetLogObjectResponse",ZCr="GetLogRecord",e0r="GetLogRecordRequest",t0r="GetLogRecordResponse",r0r="GetQueryResults",n0r="GetQueryResultsRequest",s0r="GetQueryResultsResponse",o0r="GetScheduledQuery",i0r="GetScheduledQueryHistory",a0r="GetScheduledQueryHistoryRequest",c0r="GetScheduledQueryHistoryResponse",u0r="GetScheduledQueryRequest",l0r="GetScheduledQueryResponse",d0r="GetTransformer",p0r="GetTransformerRequest",m0r="GetTransformerResponse",g0r="Import",f0r="ImportBatch",h0r="ImportBatchList",S0r="IntegrationDetails",E0r="ImportFilter",y0r="ImportList",_0r="InputLogEvent",C0r="InputLogEvents",R0r="InvalidOperationException",v0r="IndexPolicy",x0r="InvalidParameterException",P0r="IndexPolicies",b0r="ImportStatistics",I0r="InternalServerException",gWe="InternalStreamingException",A0r="InvalidSequenceTokenException",T0r="IntegrationSummary",w0r="IntegrationSummaries",D0r="ListAnomalies",O0r="ListAggregateLogGroupSummaries",k0r="ListAggregateLogGroupSummariesRequest",N0r="ListAggregateLogGroupSummariesResponse",L0r="ListAnomaliesRequest",M0r="ListAnomaliesResponse",F0r="LowerCaseString",B0r="LogEvent",U0r="LimitExceededException",q0r="LogFieldsList",$0r="LogFieldsListItem",G0r="LogFieldType",j0r="LogGroup",V0r="LogGroupField",H0r="LogGroupFieldList",z0r="LogGroupSummary",W0r="LogGroupSummaries",K0r="LogGroups",Q0r="ListIntegrations",X0r="ListIntegrationsRequest",J0r="ListIntegrationsResponse",Y0r="ListLogAnomalyDetectors",Z0r="ListLogAnomalyDetectorsRequest",eRr="ListLogAnomalyDetectorsResponse",tRr="ListLogGroups",rRr="ListLogGroupsForQuery",nRr="ListLogGroupsForQueryRequest",sRr="ListLogGroupsForQueryResponse",oRr="ListLogGroupsRequest",iRr="ListLogGroupsResponse",aRr="LogStream",cRr="ListSourcesForS3TableIntegration",uRr="ListSourcesForS3TableIntegrationRequest",lRr="ListSourcesForS3TableIntegrationResponse",dRr="ListScheduledQueries",pRr="ListScheduledQueriesRequest",mRr="ListScheduledQueriesResponse",gRr="LogSamples",fRr="LogStreams",hRr="ListTagsForResource",SRr="ListTagsForResourceRequest",ERr="ListTagsForResourceResponse",yRr="ListTagsLogGroup",_Rr="ListTagsLogGroupRequest",CRr="ListTagsLogGroupResponse",RRr="ListToMap",vRr="LiveTailSessionLogEvent",xRr="LiveTailSessionMetadata",PRr="LiveTailSessionResults",bRr="LiveTailSessionStart",IRr="LiveTailSessionUpdate",ARr="MetricFilter",TRr="MetricFilterMatches",wRr="MetricFilterMatchRecord",DRr="MetricFilters",ORr="MoveKeys",kRr="MoveKeyEntry",NRr="MoveKeyEntries",LRr="MalformedQueryException",MRr="MetricTransformation",FRr="MetricTransformations",BRr="OperationAbortedException",URr="OutputLogEvent",qRr="OutputLogEvents",$Rr="OpenSearchApplication",GRr="OpenSearchCollection",jRr="OpenSearchDataAccessPolicy",VRr="OpenSearchDataSource",HRr="OpenSearchEncryptionPolicy",zRr="OpenSearchIntegrationDetails",WRr="OpenSearchLifecyclePolicy",KRr="OpenSearchNetworkPolicy",QRr="OpenSearchResourceConfig",XRr="OpenSearchResourceStatus",JRr="OpenSearchWorkspace",YRr="Policy",ZRr="PutAccountPolicy",evr="PutAccountPolicyRequest",tvr="PutAccountPolicyResponse",rvr="ParseCloudfront",nvr="PutDestination",svr="PutDeliveryDestination",ovr="PutDeliveryDestinationPolicy",ivr="PutDeliveryDestinationPolicyRequest",avr="PutDeliveryDestinationPolicyResponse",cvr="PutDeliveryDestinationRequest",uvr="PutDeliveryDestinationResponse",lvr="PutDestinationPolicy",dvr="PutDataProtectionPolicy",pvr="PutDataProtectionPolicyRequest",mvr="PutDataProtectionPolicyResponse",gvr="PutDestinationPolicyRequest",fvr="PutDestinationRequest",hvr="PutDestinationResponse",Svr="PutDeliverySource",Evr="PutDeliverySourceRequest",yvr="PutDeliverySourceResponse",_vr="PutIntegration",Cvr="PutIndexPolicy",Rvr="PutIndexPolicyRequest",vvr="PutIndexPolicyResponse",xvr="PutIntegrationRequest",Pvr="PutIntegrationResponse",bvr="ParseJSON",Ivr="ParseKeyValue",Avr="PutLogEvents",Tvr="PutLogEventsRequest",wvr="PutLogEventsResponse",Dvr="PutLogGroupDeletionProtection",Ovr="PutLogGroupDeletionProtectionRequest",kvr="PutMetricFilter",Nvr="PutMetricFilterRequest",Lvr="ParsePostgres",Mvr="PutQueryDefinition",Fvr="PutQueryDefinitionRequest",Bvr="PutQueryDefinitionResponse",Uvr="ParseRoute53",qvr="PutResourcePolicy",$vr="PutResourcePolicyRequest",Gvr="PutResourcePolicyResponse",jvr="PutRetentionPolicyRequest",Vvr="PutRetentionPolicy",Hvr="PutSubscriptionFilter",zvr="PutSubscriptionFilterRequest",Wvr="PatternToken",Kvr="ParseToOCSF",Qvr="PutTransformerRequest",Xvr="PatternTokens",Jvr="PutTransformer",Yvr="ParseVPC",Zvr="ParseWAF",exr="Processor",txr="Processors",rxr="QueryCompileError",nxr="QueryCompileErrorLocation",sxr="QueryDefinition",oxr="QueryDefinitionList",ixr="QueryInfo",axr="QueryInfoList",cxr="QueryResults",uxr="QueryStatistics",lxr="ResourceAlreadyExistsException",dxr="ResourceConfig",pxr="RejectedEntityInfo",mxr="RecordField",gxr="ResultField",fxr="RenameKeys",hxr="RenameKeyEntry",Sxr="RenameKeyEntries",Exr="RejectedLogEventsInfo",yxr="ResourceNotFoundException",_xr="ResourcePolicy",Cxr="ResourcePolicies",Rxr="ResultRows",vxr="S3Configuration",xxr="S3DeliveryConfiguration",Pxr="SubscriptionFilter",bxr="SubscriptionFilters",Ixr="SearchedLogStream",Axr="SearchedLogStreams",Txr="StartLiveTail",wxr="StartLiveTailRequest",Dxr="StartLiveTailResponseStream",Oxr="StartLiveTailResponse",kxr="SuppressionPeriod",Nxr="StartQuery",Lxr="ScheduledQueryDestination",Mxr="ScheduledQueryDestinationList",Fxr="ServiceQuotaExceededException",Bxr="StartQueryRequest",Uxr="StartQueryResponse",qxr="StopQueryRequest",$xr="StopQueryResponse",Gxr="ScheduledQuerySummary",jxr="ScheduledQuerySummaryList",Vxr="StopQuery",Hxr="SplitString",fWe="SessionStreamingException",zxr="SplitStringEntry",Wxr="SplitStringEntries",Kxr="SubstituteStringEntry",Qxr="SubstituteStringEntries",Xxr="SubstituteString",hWe="SessionTimeoutException",Jxr="S3TableIntegrationSource",Yxr="S3TableIntegrationSources",Zxr="ServiceUnavailableException",ePr="TypeConverter",tPr="TypeConverterEntry",rPr="TypeConverterEntries",nPr="ThrottlingException",sPr="TriggerHistoryRecord",oPr="TriggerHistoryRecordList",iPr="TransformedLogs",aPr="TagLogGroup",cPr="TagLogGroupRequest",uPr="TransformedLogRecord",lPr="TestMetricFilter",dPr="TestMetricFilterRequest",pPr="TestMetricFilterResponse",mPr="TooManyTagsException",gPr="TagResource",fPr="TagResourceRequest",hPr="TrimString",SPr="TestTransformer",EPr="TestTransformerRequest",yPr="TestTransformerResponse",_Pr="UpdateAnomaly",CPr="UpdateAnomalyRequest",RPr="UnrecognizedClientException",vPr="UpperCaseString",xPr="UpdateDeliveryConfiguration",PPr="UpdateDeliveryConfigurationRequest",bPr="UpdateDeliveryConfigurationResponse",IPr="UpdateLogAnomalyDetector",APr="UpdateLogAnomalyDetectorRequest",TPr="UntagLogGroup",wPr="UntagLogGroupRequest",DPr="UntagResource",OPr="UntagResourceRequest",kPr="UpdateScheduledQuery",NPr="UpdateScheduledQueryRequest",LPr="UpdateScheduledQueryResponse",MPr="ValidationException",FPr="active",SWe="applicationArn",BPr="allowedActionForAllowVendedLogsDeliveryForResource",UPr="anomalyDetectors",dd="anomalyDetectorArn",EWe="anomalyDetectorStatus",qPr="applicationEndpoint",$Pr="allowedFields",GPr="allowedFieldDelimiters",jPr="accountId",Xq="accountIdentifiers",yWe="anomalyId",VPr="applicationId",HPr="addKeys",zPr="aggregateLogGroupSummaries",WPr="allowedOutputFormats",Jq="applyOnTransformedLogs",KPr="accountPolicies",jX="accessPolicy",QPr="accountPolicy",XPr="allowedSuffixPathFields",Yq="anomalyVisibilityTime",JPr="anomalies",YPr="application",yS="arn",ZPr="attributes",ebr="baseline",tbr="batchId",rbr="batchImportStatus",nbr="bytesImported",sbr="bytesScanned",Vr="client",obr="collectionArn",ibr="collectionEndpoint",_o="creationTime",_We="creationTimeStamp",abr="createdTimeStamp",cbr="clientToken",ubr="configurationTemplates",lbr="completionTime",dbr="createTime",pbr="copyValue",mbr="columns",gbr="code",fbr="collection",hbr="csv",Iv="description",CWe="destinationArn",Av="destinationConfiguration",Sbr="deliveryDestinations",RWe="deliveryDestinationArn",vWe="deliveryDestinationConfiguration",Ebr="defaultDeliveryConfigValues",VX="deliveryDestinationName",xWe="deliveryDestinationPolicy",Zq="deliveryDestinationType",ybr="deliveryDestinationTypes",PWe="deliveryDestination",bWe="destinationIdentifier",_br="deleteKeys",HX="detectorName",e$="destinationName",IWe="destinationPrefix",zX="deletionProtectionEnabled",Cbr="dataProtectionStatus",Rbr="destinationResourceArn",WX="dataSource",AWe="deliverySourceName",TWe="dataSourceName",vbr="dataSourceRoleArn",xbr="dataSourceType",wWe="dataSources",Pbr="deliverySources",DWe="deliverySource",bbr="destinationType",Ibr="dateTimeConverter",Abr="dynamicTokenPosition",Tbr="defaultValue",wbr="dashboardViewerPrincipals",Dbr="data",OWe="delivery",kWe="delimiter",Obr="deliveries",Tv="destination",kbr="descending",NWe="destinations",Nbr="dimensions",LWe="distribution",xr="error",Lbr="estimatedBytesSkipped",Mbr="endCharOffset",Fbr="endEventTime",t$="evaluationFrequency",Bbr="enableHiveCompatiblePath",Ubr="executionInfo",qbr="eventId",$br="encryptionKey",Gbr="expiredLogEventEndIndex",r$="errorMessage",MWe="eventMessage",FWe="eventNumber",jbr="encryptionPolicy",n$="executionRoleArn",BWe="expectedRevisionId",Vbr="estimatedRecordsSkipped",Hbr="executionStatuses",UWe="emitSystemFields",qWe="emitSystemFieldDimensions",$We="expectedSequenceToken",zbr="eventSource",Wbr="executionStatus",Kbr="exportTasks",s$="endTime",Qbr="errorType",Xbr="extractedValues",Jbr="element",dm="entries",Ybr="enabled",GWe="endpoint",Zbr="entity",eIr="enumerations",jWe="events",KX="from",wv="fieldDelimiter",tIr="flattenedElement",rIr="firstEventTime",nIr="firstEventTimestamp",sIr="fieldIndexes",oIr="fieldIndexName",iIr="fieldIndexNames",aIr="filterLogGroupArn",_S="filterName",VWe="filterNamePrefix",ic="filterPattern",cIr="firstSeen",o$="fieldSelectionCriteria",uIr="fieldStream",lIr="forceUpdate",HWe="fields",dIr="field",pIr="flatten",mIr="force",gIr="grok",fIr="groupBy",hIr="groupingIdentifiers",SIr="histogram",zWe="httpError",pd="identifier",WWe="integrationArn",EIr="importBatches",yIr="integrationDetails",KWe="importDestinationArn",_Ir="isDynamic",QWe="importFilter",pm="importId",QX="includeLinkedAccounts",CS="integrationName",CIr="integrationNamePrefix",RIr="indexPolicies",vIr="isPatternLevelSuppression",xIr="inheritedProperties",PIr="indexPolicy",bIr="importRoleArn",XWe="importStatistics",i$="importSourceArn",XX="importStatus",a$="integrationStatus",IIr="integrationSummaries",JX="ingestionTime",AIr="inferredTokenName",c$="integrationType",u$="id",TIr="imports",wIr="interleaved",Dv="key",DIr="keyAttributes",OIr="kmsKeyArn",RS="kmsKeyId",kIr="keyPrefix",NIr="keyValueDelimiter",LIr="locale",MIr="lowerCaseString",FIr="logEvents",JWe="logEventFilterPattern",YWe="logEventMessages",YX="lastExecutionStatus",BIr="lastEventTime",UIr="lastEventTimestamp",qIr="logFields",$Ir="logFieldName",GIr="logFieldType",ZWe="logGroups",eKe="logGroupArn",l$="logGroupArnList",jIr="logGroupCount",vS="logGroupClass",VIr="logGroupFields",ua="logGroupIdentifiers",Hr="logGroupIdentifier",Et="logGroupName",HIr="logGroupNamePrefix",ZX="logGroupNamePattern",eJ="logGroupNames",zIr="logGroupsScanned",WIr="lastIngestionTime",KIr="lastModified",QIr="lastModifiedTime",tKe="lastModifiedTimeStamp",XIr="logObjectPointer",JIr="lifecyclePolicy",YIr="logRecord",ZIr="logRecordPointer",eAr="lastSeen",md="logStreamName",tJ="logStreamNamePrefix",rKe="logStreamNamePrefixes",rJ="logStreamNames",tAr="lastScanTime",rAr="logSamples",nAr="logStreams",nJ="logType",sAr="listToMap",sJ="lastTriggeredTime",oAr="logTypes",hu="lastUpdatedTime",iAr="lastUpdateTime",Mr="limit",aAr="location",Lt="message",cAr="metricFilters",uAr="metricFilterCount",lAr="moveKeys",nKe="metricName",sKe="metricNamespace",dAr="matchPatterns",xS="maxResults",oKe="metricTransformations",pAr="metricValue",mAr="mappingVersion",gAr="match",fAr="mandatory",hAr="matches",zr="name",SAr="nextBackwardToken",EAr="nextForwardToken",yAr="nonMatchValue",_Ar="networkPolicy",CAr="nextSequenceToken",Re="nextToken",RAr="orderBy",iKe="outputFormat",Ov="overwriteIfExists",vAr="openSearchIntegrationDetails",xAr="openSearchResourceConfig",PAr="ocsfVersion",bAr="priority",IAr="parseCloudfront",Su="policyDocument",aKe="patternId",AAr="processedIdentifier",TAr="parseJSON",wAr="parseKeyValue",fi="policyName",DAr="parsePostgres",OAr="patternRegex",kAr="parseRoute53",NAr="patternString",cKe="policyScope",d$="policyType",LAr="parseToOCSF",MAr="patternTokens",FAr="parseVPC",BAr="parseWAF",UAr="percent",uKe="policy",qAr="queries",$Ar="quoteCharacter",GAr="queryCompileError",jAr="queryDefinitions",p$="queryDefinitionId",VAr="queryDefinitionNamePrefix",PS="queryId",la="queryLanguage",gd="queryString",HAr="results",fd="resourceArn",zAr="resourceArns",kv="roleArn",WAr="resourceConfig",KAr="retentionDays",QAr="rejectedEntityInfo",m$="recordFields",lKe="resourceIdentifier",dKe="retentionInDays",XAr="requestId",pKe="revisionId",JAr="renameKeys",YAr="rejectedLogEventsInfo",ZAr="recordsMatched",eTr="resourceName",tTr="resourcePolicies",rTr="resourcePolicy",nTr="recordsScanned",sTr="responseStream",oTr="resourceType",iTr="resourceTypes",aTr="renameTo",mKe="scope",gKe="storedBytes",fKe="selectionCriteria",cTr="startCharOffset",uTr="searchedCompletely",lTr="s3Configuration",dTr="statusCode",pTr="suppressedDate",g$="s3DeliveryConfiguration",Nv="scheduleExpression",f$="scheduleEndTime",mTr="startEventTime",gTr="subscriptionFilters",fTr="startFromHead",hTr="sessionId",STr="searchedLogStreams",ETr="sessionMetadata",yTr="statusMessage",_Tr="suffixPath",CTr="suppressionPeriod",RTr="scheduledQueries",Lv="scheduledQueryArn",vTr="sessionResults",xTr="statusReason",PTr="suppressionState",h$="scheduleStartTime",bTr="sessionStart",ITr="splitString",ATr="substituteString",TTr="sourceTimezone",S$="startTimeOffset",wTr="sequenceToken",E$="startTime",DTr="suppressionType",OTr="suppressedUntil",kTr="sessionUpdate",NTr="suppressionUnit",LTr="sampled",oJ="service",hKe="server",SKe="smithy.ts.sdk.synthetic.com.amazonaws.cloudwatchlogs",Sn="source",MTr="sources",hd="state",zn="status",FTr="statistics",EKe="streaming",BTr="suppressed",yKe="success",y$="target",_Ke="targetArn",iJ="transformerConfig",UTr="typeConverter",qTr="transformedEventMessage",$Tr="targetFormat",GTr="triggerHistory",_$="taskId",jTr="tagKeys",VTr="transformedLogs",CKe="taskName",HTr="tooNewLogEventStartIndex",zTr="tooOldLogEventEndIndex",WTr="tokenString",KTr="trimString",QTr="targetTimezone",XTr="triggeredTimestamp",ls="tags",Mv="timezone",Fv="timestamp",JTr="time",aJ="to",Bv="type",C$="unmask",YTr="upperCaseString",ZTr="uploadSequenceToken",ewr="unit",R$="value",twr="valueKey",rwr="workspace",nwr="workspaceId",v$="withKeys",h="com.amazonaws.cloudwatchlogs",swr=[-3,h,ZSr,{[xr]:Vr},[Lt],[0]];cr.TypeRegistry.for(h).registerError(swr,bze);var RKe=[3,h,uEr,0,[fi,Su,hu,d$,mKe,fKe,jPr],[0,0,1,0,0,0,0]],owr=[3,h,nEr,0,[Dv,R$,Ov],[0,0,2]],iwr=[3,h,rEr,0,[dm],[()=>ALr]],awr=[3,h,aEr,0,[jIr,hIr],[1,()=>GLr]],cwr=[3,h,JSr,0,[yWe,aKe,dd,NAr,OAr,bAr,cIr,eAr,Iv,FPr,hd,SIr,rAr,MAr,l$,BTr,pTr,OTr,vIr],[0,0,0,0,0,0,1,1,0,2,0,129,()=>YLr,()=>sMr,64,2,1,1,2]],uwr=[3,h,YSr,0,[dd,HX,l$,t$,ic,EWe,RS,_We,tKe,Yq],[0,0,64,0,0,0,0,1,1,1]],lwr=[3,h,iEr,0,[Et,RS,lKe],[0,0,0]],dwr=[3,h,pEr,0,[WWe,WX],[0,()=>vKe]],pwr=[3,h,mEr,0,[pd],[0]],mwr=[3,h,_Er,0,[_$],[0]],gwr=[3,h,PEr,0,[pm],[0]],fwr=[3,h,bEr,0,[pm,XWe,XX,_o,hu],[0,()=>IKe,0,1,1]],hwr=[3,h,$Er,0,[oJ,nJ,oTr,Zq,Ebr,$Pr,WPr,BPr,GPr,XPr],[0,0,0,0,()=>Swr,()=>wLr,64,0,64,64]],Swr=[3,h,GEr,0,[m$,wv,g$],[64,0,()=>x$]],Ewr=[-3,h,EEr,{[xr]:Vr},[Lt],[0]];cr.TypeRegistry.for(h).registerError(Ewr,Vze);var ywr=[3,h,VEr,0,[dm],[()=>NLr]],_wr=[3,h,HEr,0,[Sn,y$,Ov],[0,0,2]],Cwr=[3,h,hEr,0,[AWe,RWe,m$,wv,g$,ls],[0,0,64,0,()=>x$,128]],Rwr=[3,h,SEr,0,[OWe],[()=>cJ]],vwr=[3,h,CEr,0,[CKe,Et,tJ,KX,aJ,Tv,IWe],[0,0,0,1,1,0,0]],xwr=[3,h,REr,0,[_$],[0]],Pwr=[3,h,IEr,0,[i$,bIr,QWe],[0,0,()=>bKe]],bwr=[3,h,AEr,0,[pm,KWe,_o],[0,0,1]],Iwr=[3,h,DEr,0,[l$,HX,t$,ic,RS,Yq,ls],[64,0,0,0,0,1,128]],Awr=[3,h,OEr,0,[dd],[0]],Twr=[3,h,NEr,0,[Et,RS,ls,vS,zX],[0,0,128,0,2]],wwr=[3,h,MEr,0,[Et,md],[0,0]],Dwr=[3,h,BEr,0,[zr,Iv,la,gd,ua,Nv,Mv,S$,Av,h$,f$,n$,hd,ls],[0,0,0,0,64,0,0,1,()=>Uv,1,1,0,0,128]],Owr=[3,h,UEr,0,[Lv,hd],[0,0]],kwr=[3,h,qEr,0,[$Ar,kWe,mbr,Sn],[0,0,64,0]],Nwr=[-3,h,KEr,{[xr]:Vr},[$We,Lt],[0,0]];cr.TypeRegistry.for(h).registerError(Nwr,Yze);var vKe=[3,h,L_r,0,[zr,Bv],[0,0]],Lwr=[3,h,M_r,0,[zr,Bv],[0,0]],Mwr=[3,h,Y_r,0,[Sn,y$,$Tr,dAr,TTr,QTr,LIr],[0,0,0,64,0,0,0]],Fwr=[3,h,XEr,0,[fi,d$],[0,0]],Bwr=[3,h,gyr,0,[Hr],[0]],Uwr=[3,h,cyr,0,[VX],[0]],qwr=[3,h,uyr,0,[zr],[0]],$wr=[3,h,fyr,0,[u$],[0]],Gwr=[3,h,Ryr,0,[zr],[0]],jwr=[3,h,hyr,0,[e$],[0]],Vwr=[3,h,Uyr,0,[Hr],[0]],Hwr=[3,h,qyr,0,[],[]],zwr=[3,h,Vyr,0,[CS,mIr],[0,2]],Wwr=[3,h,Hyr,0,[],[]],Kwr=[3,h,Yyr,0,[v$],[64]],Qwr=[3,h,r_r,0,[dd],[0]],Xwr=[3,h,s_r,0,[Et],[0]],Jwr=[3,h,u_r,0,[Et,md],[0,0]],Ywr=[3,h,g_r,0,[Et,_S],[0,0]],Zwr=[3,h,C_r,0,[p$],[0]],eDr=[3,h,R_r,0,[yKe],[2]],tDr=[3,h,T_r,0,[fi,fd,BWe],[0,0,0]],rDr=[3,h,w_r,0,[Et],[0]],nDr=[3,h,W_r,0,[pd],[0]],sDr=[3,h,K_r,0,[],[]],oDr=[3,h,F_r,0,[Et,_S],[0,0]],iDr=[3,h,Z_r,0,[Hr],[0]],cJ=[3,h,WEr,0,[u$,yS,AWe,RWe,Zq,m$,wv,g$,ls],[0,0,0,0,0,64,0,()=>x$,128]],uJ=[3,h,syr,0,[zr,yS,Zq,iKe,vWe,ls],[0,0,0,0,()=>xKe,128]],xKe=[3,h,oyr,0,[Rbr],[0]],lJ=[3,h,Q_r,0,[zr,yS,zAr,oJ,nJ,ls],[0,0,64,0,0,128]],aDr=[3,h,JEr,0,[d$,fi,Xq,Re],[0,0,64,0]],cDr=[3,h,YEr,0,[KPr,Re],[()=>ILr,0]],uDr=[3,h,ryr,0,[oJ,oAr,iTr,ybr,Re,Mr],[0,64,64,64,0,1]],lDr=[3,h,nyr,0,[ubr,Re],[()=>kLr,0]],dDr=[3,h,Syr,0,[Re,Mr],[0,1]],pDr=[3,h,Eyr,0,[Obr,Re],[()=>LLr,0]],mDr=[3,h,lyr,0,[Re,Mr],[0,1]],gDr=[3,h,dyr,0,[Sbr,Re],[()=>MLr,0]],fDr=[3,h,vyr,0,[Re,Mr],[0,1]],hDr=[3,h,xyr,0,[Pbr,Re],[()=>FLr,0]],SDr=[3,h,yyr,0,[E_r,Re,Mr],[0,0,1]],EDr=[3,h,_yr,0,[NWe,Re],[()=>BLr,0]],yDr=[3,h,Oyr,0,[_$,dTr,Re,Mr],[0,0,0,1]],_Dr=[3,h,kyr,0,[Kbr,Re],[()=>ULr,0]],CDr=[3,h,Lyr,0,[ua,Re],[64,0]],RDr=[3,h,Myr,0,[sIr,Re],[()=>qLr,0]],vDr=[3,h,Kyr,0,[pm,rbr,Mr,Re],[0,64,1,0]],xDr=[3,h,Qyr,0,[i$,pm,EIr,Re],[0,0,()=>jLr,0]],PDr=[3,h,Xyr,0,[pm,XX,i$,Mr,Re],[0,0,0,1,0]],bDr=[3,h,Jyr,0,[TIr,Re],[()=>VLr,0]],IDr=[3,h,$yr,0,[ua,Re],[64,0]],ADr=[3,h,Gyr,0,[RIr,Re],[()=>HLr,0]],TDr=[3,h,o_r,0,[Xq,HIr,ZX,Re,Mr,QX,vS,ua],[64,0,0,0,1,2,0,64]],wDr=[3,h,i_r,0,[ZWe,Re],[()=>XLr,0]],DDr=[3,h,l_r,0,[Et,Hr,tJ,RAr,kbr,Re,Mr],[0,0,0,0,2,0,1]],ODr=[3,h,d_r,0,[nAr,Re],[()=>ZLr,0]],kDr=[3,h,f_r,0,[Et,VWe,Re,Mr,nKe,sKe],[0,0,0,1,0,0]],NDr=[3,h,h_r,0,[cAr,Re],[()=>tMr,0]],LDr=[3,h,b_r,0,[Et,zn,xS,Re,la],[0,0,1,0,0]],MDr=[3,h,I_r,0,[qAr,Re],[()=>iMr,0]],FDr=[3,h,v_r,0,[la,VAr,xS,Re],[0,0,1,0]],BDr=[3,h,x_r,0,[jAr,Re],[()=>oMr,0]],UDr=[3,h,D_r,0,[Re,Mr,fd,cKe],[0,1,0,0]],qDr=[3,h,O_r,0,[tTr,Re],[()=>uMr,0]],$Dr=[3,h,B_r,0,[Et,VWe,Re,Mr],[0,0,0,1]],GDr=[3,h,U_r,0,[gTr,Re],[()=>hMr,0]],PKe=[3,h,eCr,0,[e$,_Ke,kv,jX,yS,_o],[0,0,0,0,0,1]],Uv=[3,h,eyr,0,[lTr],[()=>FNr]],jDr=[3,h,e_r,0,[Et,lKe],[0,0]],VDr=[3,h,$_r,0,[pd],[0]],HDr=[3,h,G_r,0,[pd],[0]],zDr=[3,h,nCr,0,[DIr,ZPr],[128,128]],WDr=[3,h,sCr,0,[_$,CKe,Et,KX,aJ,Tv,IWe,zn,Ubr],[0,0,0,1,1,0,0,()=>QDr,()=>KDr]],KDr=[3,h,oCr,0,[_o,lbr],[1,1]],QDr=[3,h,iCr,0,[gbr,Lt],[0,0]],XDr=[3,h,uCr,0,[Hr,oIr,tAr,rIr,BIr,Bv],[0,0,1,1,1,0]],JDr=[3,h,cCr,0,[Dbr],[21]],YDr=[3,h,dCr,0,[md,Fv,Lt,JX,qbr],[0,1,0,1,0]],ZDr=[3,h,pCr,0,[Et,Hr,rJ,tJ,E$,s$,ic,Re,Mr,wIr,C$],[0,0,64,0,1,1,0,0,1,2,2]],eOr=[3,h,mCr,0,[jWe,STr,Re],[()=>$Lr,()=>gMr,0]],tOr=[3,h,PCr,0,[Hr],[0]],rOr=[3,h,bCr,0,[Hr,Su,hu],[0,0,1]],nOr=[3,h,_Cr,0,[VX],[0]],sOr=[3,h,CCr,0,[uKe],[()=>DKe]],oOr=[3,h,RCr,0,[zr],[0]],iOr=[3,h,vCr,0,[PWe],[()=>uJ]],aOr=[3,h,ICr,0,[u$],[0]],cOr=[3,h,ACr,0,[OWe],[()=>cJ]],uOr=[3,h,wCr,0,[zr],[0]],lOr=[3,h,DCr,0,[DWe],[()=>lJ]],dOr=[3,h,kCr,0,[CS],[0]],pOr=[3,h,NCr,0,[CS,c$,a$,yIr],[0,0,0,()=>RMr]],mOr=[3,h,BCr,0,[dd],[0]],gOr=[3,h,UCr,0,[HX,l$,t$,ic,EWe,RS,_We,tKe,Yq],[0,64,0,0,0,0,1,1,1]],fOr=[3,h,$Cr,0,[Et,Hr,md,E$,s$,Re,Mr,fTr,C$],[0,0,0,1,1,0,1,2,2]],hOr=[3,h,GCr,0,[jWe,EAr,SAr],[()=>nMr,0,0]],SOr=[3,h,VCr,0,[TWe,xbr],[0,0]],EOr=[3,h,HCr,0,[qIr],[()=>MKe]],yOr=[3,h,WCr,0,[Et,JTr,Hr],[0,1,0]],_Or=[3,h,KCr,0,[VIr],[()=>QLr]],COr=[3,h,XCr,0,[C$,XIr],[2,0]],ROr=[3,h,YCr,0,[uIr],[[()=>CMr,0]]],vOr=[3,h,e0r,0,[ZIr,C$],[0,2]],xOr=[3,h,t0r,0,[YIr],[128]],POr=[3,h,n0r,0,[PS],[0]],bOr=[3,h,s0r,0,[la,HAr,FTr,zn,$br],[0,()=>aMr,()=>ANr,0,0]],IOr=[3,h,a0r,0,[pd,E$,s$,Hbr,xS,Re],[0,1,1,64,1,0]],AOr=[3,h,c0r,0,[zr,Lv,GTr,Re],[0,0,()=>yMr,0]],TOr=[3,h,u0r,0,[pd],[0]],wOr=[3,h,l0r,0,[Lv,zr,Iv,la,gd,ua,Nv,Mv,S$,Av,hd,sJ,YX,h$,f$,n$,_o,hu],[0,0,0,0,0,64,0,0,1,()=>Uv,0,1,0,1,1,0,1,1]],DOr=[3,h,p0r,0,[Hr],[0]],OOr=[3,h,m0r,0,[Hr,_o,QIr,iJ],[0,1,1,()=>dJ]],kOr=[3,h,hCr,0,[Sn,gAr],[0,0]],NOr=[3,h,OCr,0,[Dv,R$],[0,0]],LOr=[3,h,g0r,0,[pm,i$,XX,KWe,XWe,QWe,_o,hu,r$],[0,0,0,0,()=>IKe,()=>bKe,1,1,0]],MOr=[3,h,f0r,0,[tbr,zn,r$],[0,0,0]],bKe=[3,h,E0r,0,[mTr,Fbr],[1,1]],IKe=[3,h,b0r,0,[nbr],[1]],AKe=[3,h,v0r,0,[Hr,iAr,Su,fi,Sn],[0,1,0,0,0]],FOr=[3,h,_0r,0,[Fv,Lt],[1,0]],BOr=[3,h,T0r,0,[CS,c$,a$],[0,0,0]],UOr=[-3,h,I0r,{[xr]:hKe,[zWe]:500},[Lt],[0]];cr.TypeRegistry.for(h).registerError(UOr,Mze);var TKe=[-3,h,gWe,{[xr]:Vr},[Lt],[0]];cr.TypeRegistry.for(h).registerError(TKe,eWe);var qOr=[-3,h,R0r,{[xr]:Vr},[Lt],[0]];cr.TypeRegistry.for(h).registerError(qOr,Gze);var $Or=[-3,h,x0r,{[xr]:Vr},[Lt],[0]];cr.TypeRegistry.for(h).registerError($Or,Aze);var GOr=[-3,h,A0r,{[xr]:Vr},[$We,Lt],[0,0]];cr.TypeRegistry.for(h).registerError(GOr,rWe);var jOr=[-3,h,U0r,{[xr]:Vr},[Lt],[0]];cr.TypeRegistry.for(h).registerError(jOr,Kze);var VOr=[3,h,k0r,0,[Xq,QX,vS,ZX,wWe,fIr,Re,Mr],[64,2,0,0,()=>LKe,0,0,1]],HOr=[3,h,N0r,0,[zPr,Re],[()=>TLr,0]],zOr=[3,h,L0r,0,[dd,PTr,Mr,Re],[0,0,1,0]],WOr=[3,h,M0r,0,[JPr,Re],[()=>DLr,0]],KOr=[3,h,X0r,0,[CIr,c$,a$],[0,0,0]],QOr=[3,h,J0r,0,[IIr],[()=>WLr]],XOr=[3,h,Z0r,0,[aIr,Mr,Re],[0,1,0]],JOr=[3,h,eRr,0,[UPr,Re],[()=>OLr,0]],YOr=[3,h,nRr,0,[PS,Re,xS],[0,0,1]],ZOr=[3,h,sRr,0,[ua,Re],[64,0]],ekr=[3,h,oRr,0,[ZX,vS,QX,Xq,Re,Mr,wWe,iIr],[0,0,2,64,0,1,()=>LKe,64]],tkr=[3,h,iRr,0,[ZWe,Re],[()=>JLr,0]],rkr=[3,h,pRr,0,[xS,Re,hd],[1,0,0]],nkr=[3,h,mRr,0,[Re,RTr],[0,()=>mMr]],skr=[3,h,uRr,0,[WWe,xS,Re],[0,1,0]],okr=[3,h,lRr,0,[MTr,Re],[()=>dMr,0]],ikr=[3,h,SRr,0,[fd],[0]],akr=[3,h,ERr,0,[ls],[128]],ckr=[3,h,_Rr,0,[Et],[0]],ukr=[3,h,CRr,0,[ls],[128]],lkr=[3,h,RRr,0,[Sn,Dv,twr,y$,pIr,tIr],[0,0,0,0,2,0]],dkr=[3,h,vRr,0,[md,Hr,Lt,Fv,JX],[0,0,0,1,1]],pkr=[3,h,xRr,0,[LTr],[2]],mkr=[3,h,bRr,0,[XAr,hTr,ua,rJ,rKe,JWe],[0,0,64,64,64,0]],gkr=[3,h,IRr,0,[ETr,vTr],[()=>pkr,()=>KLr]],fkr=[3,h,B0r,0,[Fv,Lt],[1,0]],hkr=[3,h,$0r,0,[$Ir,GIr],[0,()=>wKe]],wKe=[3,h,G0r,0,[Bv,Jbr,HWe],[0,()=>wKe,()=>MKe]],Skr=[3,h,j0r,0,[Et,_o,dKe,uAr,yS,gKe,RS,Cbr,xIr,vS,eKe,zX],[0,1,1,1,0,1,0,0,64,0,0,2]],Ekr=[3,h,V0r,0,[zr,UAr],[0,1]],ykr=[3,h,z0r,0,[Et,eKe,vS],[0,0,0]],_kr=[3,h,aRr,0,[md,_o,nIr,UIr,WIr,ZTr,yS,gKe],[0,1,1,1,1,0,0,1]],Ckr=[3,h,F0r,0,[v$],[64]],Rkr=[-3,h,LRr,{[xr]:Vr},[GAr,Lt],[()=>xNr,0]];cr.TypeRegistry.for(h).registerError(Rkr,lWe);var vkr=[3,h,ARr,0,[_S,ic,oKe,_o,Et,Jq,o$,qWe],[0,0,()=>FKe,1,0,2,0,64]],xkr=[3,h,wRr,0,[FWe,MWe,Xbr],[1,0,128]],Pkr=[3,h,MRr,0,[nKe,sKe,pAr,Tbr,Nbr,ewr],[0,0,0,1,128,0]],bkr=[3,h,kRr,0,[Sn,y$,Ov],[0,0,2]],Ikr=[3,h,ORr,0,[dm],[()=>rMr]],Akr=[3,h,$Rr,0,[qPr,SWe,VPr,zn],[0,0,0,()=>Sd]],Tkr=[3,h,GRr,0,[ibr,obr,zn],[0,0,()=>Sd]],wkr=[3,h,jRr,0,[fi,zn],[0,()=>Sd]],Dkr=[3,h,VRr,0,[TWe,zn],[0,()=>Sd]],Okr=[3,h,HRr,0,[fi,zn],[0,()=>Sd]],kkr=[3,h,zRr,0,[WX,YPr,fbr,rwr,jbr,_Ar,jX,JIr],[()=>Dkr,()=>Akr,()=>Tkr,()=>Fkr,()=>Okr,()=>Lkr,()=>wkr,()=>Nkr]],Nkr=[3,h,WRr,0,[fi,zn],[0,()=>Sd]],Lkr=[3,h,KRr,0,[fi,zn],[0,()=>Sd]],Mkr=[3,h,QRr,0,[OIr,vbr,wbr,SWe,KAr],[0,0,64,0,1]],Sd=[3,h,XRr,0,[zn,yTr],[0,0]],Fkr=[3,h,JRr,0,[nwr,zn],[0,()=>Sd]],Bkr=[-3,h,BRr,{[xr]:Vr},[Lt],[0]];cr.TypeRegistry.for(h).registerError(Bkr,wze);var Ukr=[3,h,URr,0,[Fv,Lt,JX],[1,0,1]],qkr=[3,h,rvr,0,[Sn],[0]],$kr=[3,h,bvr,0,[Sn,Tv],[0,0]],Gkr=[3,h,Ivr,0,[Sn,Tv,wv,NIr,kIr,yAr,Ov],[0,0,0,0,0,0,2]],jkr=[3,h,Lvr,0,[Sn],[0]],Vkr=[3,h,Uvr,0,[Sn],[0]],Hkr=[3,h,Kvr,0,[Sn,zbr,PAr,mAr],[0,0,0,0]],zkr=[3,h,Yvr,0,[Sn],[0]],Wkr=[3,h,Zvr,0,[Sn],[0]],Kkr=[3,h,Wvr,0,[Abr,_Ir,WTr,eIr,AIr],[1,2,0,129,0]],DKe=[3,h,YRr,0,[xWe],[0]],Qkr=[3,h,exr,0,[HPr,pbr,hbr,Ibr,_br,gIr,sAr,MIr,lAr,IAr,TAr,wAr,kAr,LAr,DAr,FAr,BAr,JAr,ITr,ATr,KTr,UTr,YTr],[()=>iwr,()=>ywr,()=>kwr,()=>Mwr,()=>Kwr,()=>kOr,()=>lkr,()=>Ckr,()=>Ikr,()=>qkr,()=>$kr,()=>Gkr,()=>Vkr,()=>Hkr,()=>jkr,()=>zkr,()=>Wkr,()=>kNr,()=>VNr,()=>ZNr,()=>pLr,()=>mLr,()=>xLr]],Xkr=[3,h,evr,0,[fi,Su,d$,mKe,fKe],[0,0,0,0,0]],Jkr=[3,h,tvr,0,[QPr],[()=>RKe]],Ykr=[3,h,pvr,0,[Hr,Su],[0,0]],Zkr=[3,h,mvr,0,[Hr,Su,hu],[0,0,1]],eNr=[3,h,ivr,0,[VX,xWe],[0,0]],tNr=[3,h,avr,0,[uKe],[()=>DKe]],rNr=[3,h,cvr,0,[zr,iKe,vWe,Zq,ls],[0,0,()=>xKe,0,128]],nNr=[3,h,uvr,0,[PWe],[()=>uJ]],sNr=[3,h,Evr,0,[zr,fd,nJ,ls],[0,0,0,128]],oNr=[3,h,yvr,0,[DWe],[()=>lJ]],iNr=[3,h,gvr,0,[e$,jX,lIr],[0,0,2]],aNr=[3,h,fvr,0,[e$,_Ke,kv,ls],[0,0,0,128]],cNr=[3,h,hvr,0,[Tv],[()=>PKe]],uNr=[3,h,Rvr,0,[Hr,Su],[0,0]],lNr=[3,h,vvr,0,[PIr],[()=>AKe]],dNr=[3,h,xvr,0,[CS,WAr,c$],[0,()=>vMr,0]],pNr=[3,h,Pvr,0,[CS,a$],[0,0]],mNr=[3,h,Tvr,0,[Et,md,FIr,wTr,Zbr],[0,0,()=>zLr,0,()=>zDr]],gNr=[3,h,wvr,0,[CAr,YAr,QAr],[0,()=>DNr,()=>wNr]],fNr=[3,h,Ovr,0,[Hr,zX],[0,2]],hNr=[3,h,Nvr,0,[Et,_S,ic,oKe,Jq,o$,qWe],[0,0,0,()=>FKe,2,0,64]],SNr=[3,h,Fvr,0,[la,zr,p$,eJ,gd,cbr],[0,0,0,64,0,[0,4]]],ENr=[3,h,Bvr,0,[p$],[0]],yNr=[3,h,$vr,0,[fi,Su,fd,BWe],[0,0,0,0]],_Nr=[3,h,Gvr,0,[rTr,pKe],[()=>OKe,0]],CNr=[3,h,jvr,0,[Et,dKe],[0,1]],RNr=[3,h,zvr,0,[Et,_S,ic,CWe,kv,LWe,Jq,o$,UWe],[0,0,0,0,0,0,2,0,64]],vNr=[3,h,Qvr,0,[Hr,iJ],[0,()=>dJ]],xNr=[3,h,rxr,0,[aAr,Lt],[()=>PNr,0]],PNr=[3,h,nxr,0,[cTr,Mbr],[1,1]],bNr=[3,h,sxr,0,[la,p$,zr,gd,KIr,eJ],[0,0,0,0,1,64]],INr=[3,h,ixr,0,[la,PS,gd,zn,dbr,Et],[0,0,0,0,1,0]],ANr=[3,h,uxr,0,[ZAr,nTr,Vbr,sbr,Lbr,zIr],[1,1,1,1,1,1]],TNr=[3,h,mxr,0,[zr,fAr],[0,2]],wNr=[3,h,pxr,0,[Qbr],[0]],DNr=[3,h,Exr,0,[HTr,zTr,Gbr],[1,1,1]],ONr=[3,h,hxr,0,[Dv,aTr,Ov],[0,0,2]],kNr=[3,h,fxr,0,[dm],[()=>cMr]],NNr=[-3,h,lxr,{[xr]:Vr},[Lt],[0]];cr.TypeRegistry.for(h).registerError(NNr,Xze);var LNr=[-3,h,yxr,{[xr]:Vr},[Lt],[0]];cr.TypeRegistry.for(h).registerError(LNr,Oze);var OKe=[3,h,_xr,0,[fi,Su,hu,cKe,fd,pKe],[0,0,1,0,0,0]],MNr=[3,h,gxr,0,[dIr,R$],[0,0]],FNr=[3,h,vxr,0,[bWe,kv],[0,0]],x$=[3,h,xxr,0,[_Tr,Bbr],[0,2]],BNr=[3,h,Jxr,0,[pd,WX,zn,xTr,abr],[0,()=>vKe,0,0,1]],UNr=[3,h,Lxr,0,[bbr,bWe,zn,AAr,r$],[0,0,0,0,0]],qNr=[3,h,Gxr,0,[Lv,zr,hd,sJ,YX,Nv,Mv,Av,_o,hu],[0,0,0,1,0,0,0,()=>Uv,1,1]],$Nr=[3,h,Ixr,0,[md,uTr],[0,2]],GNr=[-3,h,Fxr,{[xr]:Vr},[Lt],[0]];cr.TypeRegistry.for(h).registerError(GNr,zze);var jNr=[-3,h,Zxr,{[xr]:hKe},[Lt],[0]];cr.TypeRegistry.for(h).registerError(jNr,Nze);var kKe=[-3,h,fWe,{[xr]:Vr},[Lt],[0]];cr.TypeRegistry.for(h).registerError(kKe,iWe);var NKe=[-3,h,hWe,{[xr]:Vr},[Lt],[0]];cr.TypeRegistry.for(h).registerError(NKe,cWe);var VNr=[3,h,Hxr,0,[dm],[()=>fMr]],HNr=[3,h,zxr,0,[Sn,kWe],[0,0]],zNr=[3,h,wxr,0,[ua,rJ,rKe,JWe],[64,64,64,0]],WNr=[3,h,Oxr,0,[sTr],[[()=>xMr,0]]],KNr=[3,h,Bxr,0,[la,Et,eJ,ua,E$,s$,gd,Mr],[0,0,64,64,1,1,0,1]],QNr=[3,h,Uxr,0,[PS],[0]],XNr=[3,h,qxr,0,[PS],[0]],JNr=[3,h,$xr,0,[yKe],[2]],YNr=[3,h,Pxr,0,[_S,Et,ic,CWe,kv,LWe,Jq,_o,o$,UWe],[0,0,0,0,0,0,2,1,0,64]],ZNr=[3,h,Xxr,0,[dm],[()=>SMr]],eLr=[3,h,Kxr,0,[Sn,KX,aJ],[0,0,0]],tLr=[3,h,kxr,0,[R$,NTr],[1,0]],rLr=[3,h,cPr,0,[Et,ls],[0,128]],nLr=[3,h,fPr,0,[fd,ls],[0,128]],sLr=[3,h,dPr,0,[ic,YWe],[0,64]],oLr=[3,h,pPr,0,[hAr],[()=>eMr]],iLr=[3,h,EPr,0,[iJ,YWe],[()=>dJ,64]],aLr=[3,h,yPr,0,[VTr],[()=>EMr]],cLr=[-3,h,nPr,{[xr]:Vr},[Lt],[0]];cr.TypeRegistry.for(h).registerError(cLr,Bze);var uLr=[-3,h,mPr,{[xr]:Vr,[zWe]:400},[Lt,eTr],[0,0]];cr.TypeRegistry.for(h).registerError(uLr,pWe);var lLr=[3,h,uPr,0,[FWe,MWe,qTr],[1,0,0]],dLr=[3,h,sPr,0,[PS,Wbr,XTr,r$,NWe],[0,0,1,0,()=>pMr]],pLr=[3,h,hPr,0,[v$],[64]],mLr=[3,h,ePr,0,[dm],[()=>_Mr]],gLr=[3,h,tPr,0,[Dv,Bv],[0,0]],fLr=[-3,h,RPr,{[xr]:Vr},[Lt],[0]];cr.TypeRegistry.for(h).registerError(fLr,sWe);var hLr=[3,h,wPr,0,[Et,ls],[0,64]],SLr=[3,h,OPr,0,[fd,jTr],[0,64]],ELr=[3,h,CPr,0,[yWe,aKe,dd,DTr,CTr,ebr],[0,0,0,0,()=>tLr,2]],yLr=[3,h,PPr,0,[u$,m$,wv,g$],[0,64,0,()=>x$]],_Lr=[3,h,bPr,0,[],[]],CLr=[3,h,APr,0,[dd,t$,ic,Yq,Ybr],[0,0,0,1,2]],RLr=[3,h,NPr,0,[pd,Iv,la,gd,ua,Nv,Mv,S$,Av,h$,f$,n$,hd],[0,0,0,0,64,0,0,1,()=>Uv,1,1,0,0]],vLr=[3,h,LPr,0,[Lv,zr,Iv,la,gd,ua,Nv,Mv,S$,Av,hd,sJ,YX,h$,f$,n$,_o,hu],[0,0,0,0,0,64,0,0,1,()=>Uv,0,1,0,1,1,0,1,1]],xLr=[3,h,vPr,0,[v$],[64]],PLr=[-3,h,MPr,{[xr]:Vr},[Lt],[0]];cr.TypeRegistry.for(h).registerError(PLr,qze);var gt="unit",bLr=[-3,SKe,"CloudWatchLogsServiceException",0,[],[]];cr.TypeRegistry.for(SKe).registerError(bLr,ur);var ILr=[1,h,lEr,0,()=>RKe],ALr=[1,h,sEr,0,()=>owr],TLr=[1,h,cEr,0,()=>awr],wLr=[1,h,tEr,0,()=>TNr],DLr=[1,h,gEr,0,()=>cwr],OLr=[1,h,eEr,0,()=>uwr],kLr=[1,h,jEr,0,()=>hwr],NLr=[1,h,zEr,0,()=>_wr],LKe=[1,h,j_r,0,()=>Lwr],LLr=[1,h,tCr,0,()=>cJ],MLr=[1,h,byr,0,()=>uJ],FLr=[1,h,X_r,0,()=>lJ],BLr=[1,h,rCr,0,()=>PKe],ULr=[1,h,aCr,0,()=>WDr],qLr=[1,h,lCr,0,()=>XDr],$Lr=[1,h,gCr,0,()=>YDr],GLr=[1,h,MCr,0,()=>NOr],jLr=[1,h,h0r,0,()=>MOr],VLr=[1,h,y0r,0,()=>LOr],HLr=[1,h,P0r,0,()=>AKe],zLr=[1,h,C0r,0,()=>FOr],WLr=[1,h,w0r,0,()=>BOr],KLr=[1,h,PRr,0,()=>dkr],MKe=[1,h,q0r,0,()=>hkr],QLr=[1,h,H0r,0,()=>Ekr],XLr=[1,h,K0r,0,()=>Skr],JLr=[1,h,W0r,0,()=>ykr],YLr=[1,h,gRr,0,()=>fkr],ZLr=[1,h,fRr,0,()=>_kr],eMr=[1,h,TRr,0,()=>xkr],tMr=[1,h,DRr,0,()=>vkr],FKe=[1,h,FRr,0,()=>Pkr],rMr=[1,h,NRr,0,()=>bkr],nMr=[1,h,qRr,0,()=>Ukr],sMr=[1,h,Xvr,0,()=>Kkr],dJ=[1,h,txr,0,()=>Qkr],oMr=[1,h,oxr,0,()=>bNr],iMr=[1,h,axr,0,()=>INr],aMr=[1,h,cxr,0,()=>lMr],cMr=[1,h,Sxr,0,()=>ONr],uMr=[1,h,Cxr,0,()=>OKe],lMr=[1,h,Rxr,0,()=>MNr],dMr=[1,h,Yxr,0,()=>BNr],pMr=[1,h,Mxr,0,()=>UNr],mMr=[1,h,jxr,0,()=>qNr],gMr=[1,h,Axr,0,()=>$Nr],fMr=[1,h,Wxr,0,()=>HNr],hMr=[1,h,bxr,0,()=>YNr],SMr=[1,h,Qxr,0,()=>eLr],EMr=[1,h,iPr,0,()=>lLr],yMr=[1,h,oPr,0,()=>dLr],_Mr=[1,h,rPr,0,()=>gLr],CMr=[3,h,JCr,{[EKe]:1},[HWe,gWe],[()=>JDr,[()=>TKe,0]]],RMr=[3,h,S0r,0,[vAr],[()=>kkr]],vMr=[3,h,dxr,0,[xAr],[()=>Mkr]],xMr=[3,h,Dxr,{[EKe]:1},[bTr,kTr,hWe,fWe],[()=>mkr,()=>gkr,[()=>NKe,0],[()=>kKe,0]]],PMr=[9,h,oEr,0,()=>lwr,()=>gt],bMr=[9,h,dEr,0,()=>dwr,()=>pwr],IMr=[9,h,yEr,0,()=>mwr,()=>gt],AMr=[9,h,xEr,0,()=>gwr,()=>fwr],TMr=[9,h,fEr,0,()=>Cwr,()=>Rwr],wMr=[9,h,vEr,0,()=>vwr,()=>xwr],DMr=[9,h,TEr,0,()=>Pwr,()=>bwr],OMr=[9,h,wEr,0,()=>Iwr,()=>Awr],kMr=[9,h,kEr,0,()=>Twr,()=>gt],NMr=[9,h,LEr,0,()=>wwr,()=>gt],LMr=[9,h,FEr,0,()=>Dwr,()=>Owr],MMr=[9,h,QEr,0,()=>Fwr,()=>gt],FMr=[9,h,myr,0,()=>Bwr,()=>gt],BMr=[9,h,Iyr,0,()=>$wr,()=>gt],UMr=[9,h,iyr,0,()=>qwr,()=>gt],qMr=[9,h,ayr,0,()=>Uwr,()=>gt],$Mr=[9,h,Cyr,0,()=>Gwr,()=>gt],GMr=[9,h,Ayr,0,()=>jwr,()=>gt],jMr=[9,h,Byr,0,()=>Vwr,()=>Hwr],VMr=[9,h,Fyr,0,()=>zwr,()=>Wwr],HMr=[9,h,t_r,0,()=>Qwr,()=>gt],zMr=[9,h,n_r,0,()=>Xwr,()=>gt],WMr=[9,h,c_r,0,()=>Jwr,()=>gt],KMr=[9,h,m_r,0,()=>Ywr,()=>gt],QMr=[9,h,__r,0,()=>Zwr,()=>eDr],XMr=[9,h,A_r,0,()=>tDr,()=>gt],JMr=[9,h,k_r,0,()=>rDr,()=>gt],YMr=[9,h,z_r,0,()=>nDr,()=>sDr],ZMr=[9,h,V_r,0,()=>oDr,()=>gt],e1r=[9,h,J_r,0,()=>iDr,()=>gt],t1r=[9,h,ZEr,0,()=>aDr,()=>cDr],r1r=[9,h,tyr,0,()=>uDr,()=>lDr],n1r=[9,h,Tyr,0,()=>dDr,()=>pDr],s1r=[9,h,pyr,0,()=>mDr,()=>gDr],o1r=[9,h,Pyr,0,()=>fDr,()=>hDr],i1r=[9,h,wyr,0,()=>SDr,()=>EDr],a1r=[9,h,Dyr,0,()=>yDr,()=>_Dr],c1r=[9,h,Nyr,0,()=>CDr,()=>RDr],u1r=[9,h,Wyr,0,()=>vDr,()=>xDr],l1r=[9,h,zyr,0,()=>PDr,()=>bDr],d1r=[9,h,jyr,0,()=>IDr,()=>ADr],p1r=[9,h,a_r,0,()=>TDr,()=>wDr],m1r=[9,h,p_r,0,()=>DDr,()=>ODr],g1r=[9,h,S_r,0,()=>kDr,()=>NDr],f1r=[9,h,y_r,0,()=>LDr,()=>MDr],h1r=[9,h,P_r,0,()=>FDr,()=>BDr],S1r=[9,h,N_r,0,()=>UDr,()=>qDr],E1r=[9,h,H_r,0,()=>$Dr,()=>GDr],y1r=[9,h,Zyr,0,()=>jDr,()=>gt],_1r=[9,h,q_r,0,()=>VDr,()=>HDr],C1r=[9,h,fCr,0,()=>ZDr,()=>eOr],R1r=[9,h,xCr,0,()=>tOr,()=>rOr],v1r=[9,h,SCr,0,()=>aOr,()=>cOr],x1r=[9,h,ECr,0,()=>oOr,()=>iOr],P1r=[9,h,yCr,0,()=>nOr,()=>sOr],b1r=[9,h,TCr,0,()=>uOr,()=>lOr],I1r=[9,h,LCr,0,()=>dOr,()=>pOr],A1r=[9,h,FCr,0,()=>mOr,()=>gOr],T1r=[9,h,qCr,0,()=>fOr,()=>hOr],w1r=[9,h,jCr,0,()=>SOr,()=>EOr],D1r=[9,h,zCr,0,()=>yOr,()=>_Or],O1r=[9,h,QCr,{[GWe]:["streaming-"]},()=>COr,()=>ROr],k1r=[9,h,ZCr,0,()=>vOr,()=>xOr],N1r=[9,h,r0r,0,()=>POr,()=>bOr],L1r=[9,h,o0r,0,()=>TOr,()=>wOr],M1r=[9,h,i0r,0,()=>IOr,()=>AOr],F1r=[9,h,d0r,0,()=>DOr,()=>OOr],B1r=[9,h,O0r,0,()=>VOr,()=>HOr],U1r=[9,h,D0r,0,()=>zOr,()=>WOr],q1r=[9,h,Q0r,0,()=>KOr,()=>QOr],$1r=[9,h,Y0r,0,()=>XOr,()=>JOr],G1r=[9,h,tRr,0,()=>ekr,()=>tkr],j1r=[9,h,rRr,0,()=>YOr,()=>ZOr],V1r=[9,h,dRr,0,()=>rkr,()=>nkr],H1r=[9,h,cRr,0,()=>skr,()=>okr],z1r=[9,h,hRr,0,()=>ikr,()=>akr],W1r=[9,h,yRr,0,()=>ckr,()=>ukr],K1r=[9,h,ZRr,0,()=>Xkr,()=>Jkr],Q1r=[9,h,dvr,0,()=>Ykr,()=>Zkr],X1r=[9,h,svr,0,()=>rNr,()=>nNr],J1r=[9,h,ovr,0,()=>eNr,()=>tNr],Y1r=[9,h,Svr,0,()=>sNr,()=>oNr],Z1r=[9,h,nvr,0,()=>aNr,()=>cNr],eFr=[9,h,lvr,0,()=>iNr,()=>gt],tFr=[9,h,Cvr,0,()=>uNr,()=>lNr],rFr=[9,h,_vr,0,()=>dNr,()=>pNr],nFr=[9,h,Avr,0,()=>mNr,()=>gNr],sFr=[9,h,Dvr,0,()=>fNr,()=>gt],oFr=[9,h,kvr,0,()=>hNr,()=>gt],iFr=[9,h,Mvr,0,()=>SNr,()=>ENr],aFr=[9,h,qvr,0,()=>yNr,()=>_Nr],cFr=[9,h,Vvr,0,()=>CNr,()=>gt],uFr=[9,h,Hvr,0,()=>RNr,()=>gt],lFr=[9,h,Jvr,0,()=>vNr,()=>gt],dFr=[9,h,Txr,{[GWe]:["streaming-"]},()=>zNr,()=>WNr],pFr=[9,h,Nxr,0,()=>KNr,()=>QNr],mFr=[9,h,Vxr,0,()=>XNr,()=>JNr],gFr=[9,h,aPr,0,()=>rLr,()=>gt],fFr=[9,h,gPr,0,()=>nLr,()=>gt],hFr=[9,h,lPr,0,()=>sLr,()=>oLr],SFr=[9,h,SPr,0,()=>iLr,()=>aLr],EFr=[9,h,TPr,0,()=>hLr,()=>gt],yFr=[9,h,DPr,0,()=>SLr,()=>gt],_Fr=[9,h,_Pr,0,()=>ELr,()=>gt],CFr=[9,h,xPr,0,()=>yLr,()=>_Lr],RFr=[9,h,IPr,0,()=>CLr,()=>gt],vFr=[9,h,kPr,0,()=>RLr,()=>vLr],gU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","AssociateKmsKey",{}).n("CloudWatchLogsClient","AssociateKmsKeyCommand").sc(PMr).build(){},fU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","AssociateSourceToS3TableIntegration",{}).n("CloudWatchLogsClient","AssociateSourceToS3TableIntegrationCommand").sc(bMr).build(){},hU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","CancelExportTask",{}).n("CloudWatchLogsClient","CancelExportTaskCommand").sc(IMr).build(){},SU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","CancelImportTask",{}).n("CloudWatchLogsClient","CancelImportTaskCommand").sc(AMr).build(){},EU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","CreateDelivery",{}).n("CloudWatchLogsClient","CreateDeliveryCommand").sc(TMr).build(){},yU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","CreateExportTask",{}).n("CloudWatchLogsClient","CreateExportTaskCommand").sc(wMr).build(){},_U=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","CreateImportTask",{}).n("CloudWatchLogsClient","CreateImportTaskCommand").sc(DMr).build(){},CU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","CreateLogAnomalyDetector",{}).n("CloudWatchLogsClient","CreateLogAnomalyDetectorCommand").sc(OMr).build(){},RU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","CreateLogGroup",{}).n("CloudWatchLogsClient","CreateLogGroupCommand").sc(kMr).build(){},vU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","CreateLogStream",{}).n("CloudWatchLogsClient","CreateLogStreamCommand").sc(NMr).build(){},xU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","CreateScheduledQuery",{}).n("CloudWatchLogsClient","CreateScheduledQueryCommand").sc(LMr).build(){},PU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DeleteAccountPolicy",{}).n("CloudWatchLogsClient","DeleteAccountPolicyCommand").sc(MMr).build(){},bU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DeleteDataProtectionPolicy",{}).n("CloudWatchLogsClient","DeleteDataProtectionPolicyCommand").sc(FMr).build(){},IU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DeleteDelivery",{}).n("CloudWatchLogsClient","DeleteDeliveryCommand").sc(BMr).build(){},AU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DeleteDeliveryDestination",{}).n("CloudWatchLogsClient","DeleteDeliveryDestinationCommand").sc(UMr).build(){},TU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DeleteDeliveryDestinationPolicy",{}).n("CloudWatchLogsClient","DeleteDeliveryDestinationPolicyCommand").sc(qMr).build(){},wU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DeleteDeliverySource",{}).n("CloudWatchLogsClient","DeleteDeliverySourceCommand").sc($Mr).build(){},DU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DeleteDestination",{}).n("CloudWatchLogsClient","DeleteDestinationCommand").sc(GMr).build(){},OU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DeleteIndexPolicy",{}).n("CloudWatchLogsClient","DeleteIndexPolicyCommand").sc(jMr).build(){},kU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DeleteIntegration",{}).n("CloudWatchLogsClient","DeleteIntegrationCommand").sc(VMr).build(){},NU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DeleteLogAnomalyDetector",{}).n("CloudWatchLogsClient","DeleteLogAnomalyDetectorCommand").sc(HMr).build(){},LU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DeleteLogGroup",{}).n("CloudWatchLogsClient","DeleteLogGroupCommand").sc(zMr).build(){},MU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DeleteLogStream",{}).n("CloudWatchLogsClient","DeleteLogStreamCommand").sc(WMr).build(){},FU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DeleteMetricFilter",{}).n("CloudWatchLogsClient","DeleteMetricFilterCommand").sc(KMr).build(){},BU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DeleteQueryDefinition",{}).n("CloudWatchLogsClient","DeleteQueryDefinitionCommand").sc(QMr).build(){},UU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DeleteResourcePolicy",{}).n("CloudWatchLogsClient","DeleteResourcePolicyCommand").sc(XMr).build(){},qU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DeleteRetentionPolicy",{}).n("CloudWatchLogsClient","DeleteRetentionPolicyCommand").sc(JMr).build(){},$U=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DeleteScheduledQuery",{}).n("CloudWatchLogsClient","DeleteScheduledQueryCommand").sc(YMr).build(){},GU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DeleteSubscriptionFilter",{}).n("CloudWatchLogsClient","DeleteSubscriptionFilterCommand").sc(ZMr).build(){},jU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DeleteTransformer",{}).n("CloudWatchLogsClient","DeleteTransformerCommand").sc(e1r).build(){},VU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DescribeAccountPolicies",{}).n("CloudWatchLogsClient","DescribeAccountPoliciesCommand").sc(t1r).build(){},uv=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DescribeConfigurationTemplates",{}).n("CloudWatchLogsClient","DescribeConfigurationTemplatesCommand").sc(r1r).build(){},lv=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DescribeDeliveries",{}).n("CloudWatchLogsClient","DescribeDeliveriesCommand").sc(n1r).build(){},dv=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DescribeDeliveryDestinations",{}).n("CloudWatchLogsClient","DescribeDeliveryDestinationsCommand").sc(s1r).build(){},pv=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DescribeDeliverySources",{}).n("CloudWatchLogsClient","DescribeDeliverySourcesCommand").sc(o1r).build(){},mv=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DescribeDestinations",{}).n("CloudWatchLogsClient","DescribeDestinationsCommand").sc(i1r).build(){},HU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DescribeExportTasks",{}).n("CloudWatchLogsClient","DescribeExportTasksCommand").sc(a1r).build(){},zU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DescribeFieldIndexes",{}).n("CloudWatchLogsClient","DescribeFieldIndexesCommand").sc(c1r).build(){},WU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DescribeImportTaskBatches",{}).n("CloudWatchLogsClient","DescribeImportTaskBatchesCommand").sc(u1r).build(){},KU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DescribeImportTasks",{}).n("CloudWatchLogsClient","DescribeImportTasksCommand").sc(l1r).build(){},QU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DescribeIndexPolicies",{}).n("CloudWatchLogsClient","DescribeIndexPoliciesCommand").sc(d1r).build(){},gv=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DescribeLogGroups",{}).n("CloudWatchLogsClient","DescribeLogGroupsCommand").sc(p1r).build(){},fv=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DescribeLogStreams",{}).n("CloudWatchLogsClient","DescribeLogStreamsCommand").sc(m1r).build(){},hv=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DescribeMetricFilters",{}).n("CloudWatchLogsClient","DescribeMetricFiltersCommand").sc(g1r).build(){},XU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DescribeQueries",{}).n("CloudWatchLogsClient","DescribeQueriesCommand").sc(f1r).build(){},JU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DescribeQueryDefinitions",{}).n("CloudWatchLogsClient","DescribeQueryDefinitionsCommand").sc(h1r).build(){},YU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DescribeResourcePolicies",{}).n("CloudWatchLogsClient","DescribeResourcePoliciesCommand").sc(S1r).build(){},Sv=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DescribeSubscriptionFilters",{}).n("CloudWatchLogsClient","DescribeSubscriptionFiltersCommand").sc(E1r).build(){},ZU=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DisassociateKmsKey",{}).n("CloudWatchLogsClient","DisassociateKmsKeyCommand").sc(y1r).build(){},eq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","DisassociateSourceFromS3TableIntegration",{}).n("CloudWatchLogsClient","DisassociateSourceFromS3TableIntegrationCommand").sc(_1r).build(){},Ev=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","FilterLogEvents",{}).n("CloudWatchLogsClient","FilterLogEventsCommand").sc(C1r).build(){},tq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","GetDataProtectionPolicy",{}).n("CloudWatchLogsClient","GetDataProtectionPolicyCommand").sc(R1r).build(){},rq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","GetDelivery",{}).n("CloudWatchLogsClient","GetDeliveryCommand").sc(v1r).build(){},nq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","GetDeliveryDestination",{}).n("CloudWatchLogsClient","GetDeliveryDestinationCommand").sc(x1r).build(){},sq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","GetDeliveryDestinationPolicy",{}).n("CloudWatchLogsClient","GetDeliveryDestinationPolicyCommand").sc(P1r).build(){},oq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","GetDeliverySource",{}).n("CloudWatchLogsClient","GetDeliverySourceCommand").sc(b1r).build(){},iq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","GetIntegration",{}).n("CloudWatchLogsClient","GetIntegrationCommand").sc(I1r).build(){},aq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","GetLogAnomalyDetector",{}).n("CloudWatchLogsClient","GetLogAnomalyDetectorCommand").sc(A1r).build(){},yv=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","GetLogEvents",{}).n("CloudWatchLogsClient","GetLogEventsCommand").sc(T1r).build(){},cq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","GetLogFields",{}).n("CloudWatchLogsClient","GetLogFieldsCommand").sc(w1r).build(){},uq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","GetLogGroupFields",{}).n("CloudWatchLogsClient","GetLogGroupFieldsCommand").sc(D1r).build(){},lq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","GetLogObject",{eventStream:{output:!0}}).n("CloudWatchLogsClient","GetLogObjectCommand").sc(O1r).build(){},dq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","GetLogRecord",{}).n("CloudWatchLogsClient","GetLogRecordCommand").sc(k1r).build(){},pq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","GetQueryResults",{}).n("CloudWatchLogsClient","GetQueryResultsCommand").sc(N1r).build(){},mq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","GetScheduledQuery",{}).n("CloudWatchLogsClient","GetScheduledQueryCommand").sc(L1r).build(){},_v=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","GetScheduledQueryHistory",{}).n("CloudWatchLogsClient","GetScheduledQueryHistoryCommand").sc(M1r).build(){},gq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","GetTransformer",{}).n("CloudWatchLogsClient","GetTransformerCommand").sc(F1r).build(){},Cv=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","ListAggregateLogGroupSummaries",{}).n("CloudWatchLogsClient","ListAggregateLogGroupSummariesCommand").sc(B1r).build(){},Rv=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","ListAnomalies",{}).n("CloudWatchLogsClient","ListAnomaliesCommand").sc(U1r).build(){},fq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","ListIntegrations",{}).n("CloudWatchLogsClient","ListIntegrationsCommand").sc(q1r).build(){},vv=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","ListLogAnomalyDetectors",{}).n("CloudWatchLogsClient","ListLogAnomalyDetectorsCommand").sc($1r).build(){},hq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","ListLogGroups",{}).n("CloudWatchLogsClient","ListLogGroupsCommand").sc(G1r).build(){},xv=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","ListLogGroupsForQuery",{}).n("CloudWatchLogsClient","ListLogGroupsForQueryCommand").sc(j1r).build(){},Pv=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","ListScheduledQueries",{}).n("CloudWatchLogsClient","ListScheduledQueriesCommand").sc(V1r).build(){},bv=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","ListSourcesForS3TableIntegration",{}).n("CloudWatchLogsClient","ListSourcesForS3TableIntegrationCommand").sc(H1r).build(){},Sq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","ListTagsForResource",{}).n("CloudWatchLogsClient","ListTagsForResourceCommand").sc(z1r).build(){},Eq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","ListTagsLogGroup",{}).n("CloudWatchLogsClient","ListTagsLogGroupCommand").sc(W1r).build(){},yq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","PutAccountPolicy",{}).n("CloudWatchLogsClient","PutAccountPolicyCommand").sc(K1r).build(){},_q=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","PutDataProtectionPolicy",{}).n("CloudWatchLogsClient","PutDataProtectionPolicyCommand").sc(Q1r).build(){},Cq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","PutDeliveryDestination",{}).n("CloudWatchLogsClient","PutDeliveryDestinationCommand").sc(X1r).build(){},Rq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","PutDeliveryDestinationPolicy",{}).n("CloudWatchLogsClient","PutDeliveryDestinationPolicyCommand").sc(J1r).build(){},vq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","PutDeliverySource",{}).n("CloudWatchLogsClient","PutDeliverySourceCommand").sc(Y1r).build(){},xq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","PutDestination",{}).n("CloudWatchLogsClient","PutDestinationCommand").sc(Z1r).build(){},Pq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","PutDestinationPolicy",{}).n("CloudWatchLogsClient","PutDestinationPolicyCommand").sc(eFr).build(){},bq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","PutIndexPolicy",{}).n("CloudWatchLogsClient","PutIndexPolicyCommand").sc(tFr).build(){},Iq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","PutIntegration",{}).n("CloudWatchLogsClient","PutIntegrationCommand").sc(rFr).build(){},Aq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","PutLogEvents",{}).n("CloudWatchLogsClient","PutLogEventsCommand").sc(nFr).build(){},Tq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","PutLogGroupDeletionProtection",{}).n("CloudWatchLogsClient","PutLogGroupDeletionProtectionCommand").sc(sFr).build(){},wq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","PutMetricFilter",{}).n("CloudWatchLogsClient","PutMetricFilterCommand").sc(oFr).build(){},Dq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","PutQueryDefinition",{}).n("CloudWatchLogsClient","PutQueryDefinitionCommand").sc(iFr).build(){},Oq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","PutResourcePolicy",{}).n("CloudWatchLogsClient","PutResourcePolicyCommand").sc(aFr).build(){},kq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","PutRetentionPolicy",{}).n("CloudWatchLogsClient","PutRetentionPolicyCommand").sc(cFr).build(){},Nq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","PutSubscriptionFilter",{}).n("CloudWatchLogsClient","PutSubscriptionFilterCommand").sc(uFr).build(){},Lq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","PutTransformer",{}).n("CloudWatchLogsClient","PutTransformerCommand").sc(lFr).build(){},Mq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","StartLiveTail",{eventStream:{output:!0}}).n("CloudWatchLogsClient","StartLiveTailCommand").sc(dFr).build(){},Fq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","StartQuery",{}).n("CloudWatchLogsClient","StartQueryCommand").sc(pFr).build(){},Bq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","StopQuery",{}).n("CloudWatchLogsClient","StopQueryCommand").sc(mFr).build(){},Uq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","TagLogGroup",{}).n("CloudWatchLogsClient","TagLogGroupCommand").sc(gFr).build(){},qq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","TagResource",{}).n("CloudWatchLogsClient","TagResourceCommand").sc(fFr).build(){},$q=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","TestMetricFilter",{}).n("CloudWatchLogsClient","TestMetricFilterCommand").sc(hFr).build(){},Gq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","TestTransformer",{}).n("CloudWatchLogsClient","TestTransformerCommand").sc(SFr).build(){},jq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","UntagLogGroup",{}).n("CloudWatchLogsClient","UntagLogGroupCommand").sc(EFr).build(){},Vq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","UntagResource",{}).n("CloudWatchLogsClient","UntagResourceCommand").sc(yFr).build(){},Hq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","UpdateAnomaly",{}).n("CloudWatchLogsClient","UpdateAnomalyCommand").sc(_Fr).build(){},zq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","UpdateDeliveryConfiguration",{}).n("CloudWatchLogsClient","UpdateDeliveryConfigurationCommand").sc(CFr).build(){},Wq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","UpdateLogAnomalyDetector",{}).n("CloudWatchLogsClient","UpdateLogAnomalyDetectorCommand").sc(RFr).build(){},Kq=class extends G.Command.classBuilder().ep(W).m(function(e,r,n,s){return[V.getEndpointPlugin(n,e.getEndpointParameterInstructions())]}).s("Logs_20140328","UpdateScheduledQuery",{}).n("CloudWatchLogsClient","UpdateScheduledQueryCommand").sc(vFr).build(){},xFr={AssociateKmsKeyCommand:gU,AssociateSourceToS3TableIntegrationCommand:fU,CancelExportTaskCommand:hU,CancelImportTaskCommand:SU,CreateDeliveryCommand:EU,CreateExportTaskCommand:yU,CreateImportTaskCommand:_U,CreateLogAnomalyDetectorCommand:CU,CreateLogGroupCommand:RU,CreateLogStreamCommand:vU,CreateScheduledQueryCommand:xU,DeleteAccountPolicyCommand:PU,DeleteDataProtectionPolicyCommand:bU,DeleteDeliveryCommand:IU,DeleteDeliveryDestinationCommand:AU,DeleteDeliveryDestinationPolicyCommand:TU,DeleteDeliverySourceCommand:wU,DeleteDestinationCommand:DU,DeleteIndexPolicyCommand:OU,DeleteIntegrationCommand:kU,DeleteLogAnomalyDetectorCommand:NU,DeleteLogGroupCommand:LU,DeleteLogStreamCommand:MU,DeleteMetricFilterCommand:FU,DeleteQueryDefinitionCommand:BU,DeleteResourcePolicyCommand:UU,DeleteRetentionPolicyCommand:qU,DeleteScheduledQueryCommand:$U,DeleteSubscriptionFilterCommand:GU,DeleteTransformerCommand:jU,DescribeAccountPoliciesCommand:VU,DescribeConfigurationTemplatesCommand:uv,DescribeDeliveriesCommand:lv,DescribeDeliveryDestinationsCommand:dv,DescribeDeliverySourcesCommand:pv,DescribeDestinationsCommand:mv,DescribeExportTasksCommand:HU,DescribeFieldIndexesCommand:zU,DescribeImportTaskBatchesCommand:WU,DescribeImportTasksCommand:KU,DescribeIndexPoliciesCommand:QU,DescribeLogGroupsCommand:gv,DescribeLogStreamsCommand:fv,DescribeMetricFiltersCommand:hv,DescribeQueriesCommand:XU,DescribeQueryDefinitionsCommand:JU,DescribeResourcePoliciesCommand:YU,DescribeSubscriptionFiltersCommand:Sv,DisassociateKmsKeyCommand:ZU,DisassociateSourceFromS3TableIntegrationCommand:eq,FilterLogEventsCommand:Ev,GetDataProtectionPolicyCommand:tq,GetDeliveryCommand:rq,GetDeliveryDestinationCommand:nq,GetDeliveryDestinationPolicyCommand:sq,GetDeliverySourceCommand:oq,GetIntegrationCommand:iq,GetLogAnomalyDetectorCommand:aq,GetLogEventsCommand:yv,GetLogFieldsCommand:cq,GetLogGroupFieldsCommand:uq,GetLogObjectCommand:lq,GetLogRecordCommand:dq,GetQueryResultsCommand:pq,GetScheduledQueryCommand:mq,GetScheduledQueryHistoryCommand:_v,GetTransformerCommand:gq,ListAggregateLogGroupSummariesCommand:Cv,ListAnomaliesCommand:Rv,ListIntegrationsCommand:fq,ListLogAnomalyDetectorsCommand:vv,ListLogGroupsCommand:hq,ListLogGroupsForQueryCommand:xv,ListScheduledQueriesCommand:Pv,ListSourcesForS3TableIntegrationCommand:bv,ListTagsForResourceCommand:Sq,ListTagsLogGroupCommand:Eq,PutAccountPolicyCommand:yq,PutDataProtectionPolicyCommand:_q,PutDeliveryDestinationCommand:Cq,PutDeliveryDestinationPolicyCommand:Rq,PutDeliverySourceCommand:vq,PutDestinationCommand:xq,PutDestinationPolicyCommand:Pq,PutIndexPolicyCommand:bq,PutIntegrationCommand:Iq,PutLogEventsCommand:Aq,PutLogGroupDeletionProtectionCommand:Tq,PutMetricFilterCommand:wq,PutQueryDefinitionCommand:Dq,PutResourcePolicyCommand:Oq,PutRetentionPolicyCommand:kq,PutSubscriptionFilterCommand:Nq,PutTransformerCommand:Lq,StartLiveTailCommand:Mq,StartQueryCommand:Fq,StopQueryCommand:Bq,TagLogGroupCommand:Uq,TagResourceCommand:qq,TestMetricFilterCommand:$q,TestTransformerCommand:Gq,UntagLogGroupCommand:jq,UntagResourceCommand:Vq,UpdateAnomalyCommand:Hq,UpdateDeliveryConfigurationCommand:zq,UpdateLogAnomalyDetectorCommand:Wq,UpdateScheduledQueryCommand:Kq},Qq=class extends fr{};G.createAggregatedClient(xFr,Qq);var PFr=vr.createPaginator(fr,uv,"nextToken","nextToken","limit"),bFr=vr.createPaginator(fr,lv,"nextToken","nextToken","limit"),IFr=vr.createPaginator(fr,dv,"nextToken","nextToken","limit"),AFr=vr.createPaginator(fr,pv,"nextToken","nextToken","limit"),TFr=vr.createPaginator(fr,mv,"nextToken","nextToken","limit"),wFr=vr.createPaginator(fr,gv,"nextToken","nextToken","limit"),DFr=vr.createPaginator(fr,fv,"nextToken","nextToken","limit"),OFr=vr.createPaginator(fr,hv,"nextToken","nextToken","limit"),kFr=vr.createPaginator(fr,Sv,"nextToken","nextToken","limit"),NFr=vr.createPaginator(fr,Ev,"nextToken","nextToken","limit"),LFr=vr.createPaginator(fr,yv,"nextToken","nextForwardToken","limit"),MFr=vr.createPaginator(fr,_v,"nextToken","nextToken","maxResults"),FFr=vr.createPaginator(fr,Cv,"nextToken","nextToken","limit"),BFr=vr.createPaginator(fr,Rv,"nextToken","nextToken","limit"),UFr=vr.createPaginator(fr,vv,"nextToken","nextToken","limit"),qFr=vr.createPaginator(fr,xv,"nextToken","nextToken","maxResults"),$Fr=vr.createPaginator(fr,Pv,"nextToken","nextToken","maxResults"),GFr=vr.createPaginator(fr,bv,"nextToken","nextToken","maxResults"),jFr={DATA_PROTECTION_POLICY:"DATA_PROTECTION_POLICY",FIELD_INDEX_POLICY:"FIELD_INDEX_POLICY",METRIC_EXTRACTION_POLICY:"METRIC_EXTRACTION_POLICY",SUBSCRIPTION_FILTER_POLICY:"SUBSCRIPTION_FILTER_POLICY",TRANSFORMER_POLICY:"TRANSFORMER_POLICY"},VFr={ALL:"ALL"},HFr={CLIENT_ERROR:"CLIENT_ERROR",COMPLETE:"COMPLETE",FAILED:"FAILED",IN_PROGRESS:"IN_PROGRESS"},zFr={Active:"Active",Baseline:"Baseline",Suppressed:"Suppressed"},WFr={ANALYZING:"ANALYZING",DELETED:"DELETED",FAILED:"FAILED",INITIALIZING:"INITIALIZING",PAUSED:"PAUSED",TRAINING:"TRAINING"},KFr={FIFTEEN_MIN:"FIFTEEN_MIN",FIVE_MIN:"FIVE_MIN",ONE_HOUR:"ONE_HOUR",ONE_MIN:"ONE_MIN",TEN_MIN:"TEN_MIN",THIRTY_MIN:"THIRTY_MIN"},QFr={CANCELLED:"CANCELLED",COMPLETED:"COMPLETED",FAILED:"FAILED",IN_PROGRESS:"IN_PROGRESS"},XFr={JSON:"json",PARQUET:"parquet",PLAIN:"plain",RAW:"raw",W3C:"w3c"},JFr={CWL:"CWL",FH:"FH",S3:"S3",XRAY:"XRAY"},YFr={DELIVERY:"DELIVERY",INFREQUENT_ACCESS:"INFREQUENT_ACCESS",STANDARD:"STANDARD"},ZFr={CWLI:"CWLI",PPL:"PPL",SQL:"SQL"},e3r={DISABLED:"DISABLED",ENABLED:"ENABLED"},t3r={ACTIVATED:"ACTIVATED",ARCHIVED:"ARCHIVED",DELETED:"DELETED",DISABLED:"DISABLED"},r3r={CANCELLED:"CANCELLED",COMPLETED:"COMPLETED",FAILED:"FAILED",PENDING:"PENDING",PENDING_CANCEL:"PENDING_CANCEL",RUNNING:"RUNNING"},n3r={FACET:"FACET",FIELD_INDEX:"FIELD_INDEX"},s3r={ACCOUNT:"ACCOUNT",LOG_GROUP:"LOG_GROUP"},o3r={ACCOUNT_DATA_PROTECTION:"ACCOUNT_DATA_PROTECTION"},i3r={LastEventTime:"LastEventTime",LogStreamName:"LogStreamName"},a3r={Bits:"Bits",BitsSecond:"Bits/Second",Bytes:"Bytes",BytesSecond:"Bytes/Second",Count:"Count",CountSecond:"Count/Second",Gigabits:"Gigabits",GigabitsSecond:"Gigabits/Second",Gigabytes:"Gigabytes",GigabytesSecond:"Gigabytes/Second",Kilobits:"Kilobits",KilobitsSecond:"Kilobits/Second",Kilobytes:"Kilobytes",KilobytesSecond:"Kilobytes/Second",Megabits:"Megabits",MegabitsSecond:"Megabits/Second",Megabytes:"Megabytes",MegabytesSecond:"Megabytes/Second",Microseconds:"Microseconds",Milliseconds:"Milliseconds",None:"None",Percent:"Percent",Seconds:"Seconds",Terabits:"Terabits",TerabitsSecond:"Terabits/Second",Terabytes:"Terabytes",TerabytesSecond:"Terabytes/Second"},c3r={Cancelled:"Cancelled",Complete:"Complete",Failed:"Failed",Running:"Running",Scheduled:"Scheduled",Timeout:"Timeout",Unknown:"Unknown"},u3r={ACCOUNT:"ACCOUNT",RESOURCE:"RESOURCE"},l3r={ByLogStream:"ByLogStream",Random:"Random"},d3r={ENTITY_SIZE_TOO_LARGE:"EntitySizeTooLarge",INVALID_ATTRIBUTES:"InvalidAttributes",INVALID_ENTITY:"InvalidEntity",INVALID_KEY_ATTRIBUTE:"InvalidKeyAttributes",INVALID_TYPE_VALUE:"InvalidTypeValue",MISSING_REQUIRED_FIELDS:"MissingRequiredFields",UNSUPPORTED_LOG_GROUP_TYPE:"UnsupportedLogGroupType"},p3r={AWSWAF:"AWSWAF",CLOUD_TRAIL:"CloudTrail",EKS_AUDIT:"EKSAudit",ROUTE53_RESOLVER:"Route53Resolver",VPC_FLOW:"VPCFlow"},m3r={Complete:"Complete",Failed:"Failed",InvalidQuery:"InvalidQuery",Running:"Running",Timeout:"Timeout"},g3r={FIRST:"first",LAST:"last"},f3r={ACTIVE:"ACTIVE",ERROR:"ERROR",NOT_FOUND:"NOT_FOUND"},h3r={ACTIVE:"ACTIVE",FAILED:"FAILED",PROVISIONING:"PROVISIONING"},S3r={OPENSEARCH:"OPENSEARCH"},E3r={S3:"S3"},y3r={V1_1:"V1.1",V1_5:"V1.5"},_3r={BOOLEAN:"boolean",DOUBLE:"double",INTEGER:"integer",STRING:"string"},C3r={DATA_SOURCE_NAME_AND_TYPE:"DATA_SOURCE_NAME_AND_TYPE",DATA_SOURCE_NAME_TYPE_AND_FORMAT:"DATA_SOURCE_NAME_TYPE_AND_FORMAT"},R3r={SUPPRESSED:"SUPPRESSED",UNSUPPRESSED:"UNSUPPRESSED"},v3r={ACTIVE:"ACTIVE",DATA_SOURCE_DELETE_IN_PROGRESS:"DATA_SOURCE_DELETE_IN_PROGRESS",FAILED:"FAILED",UNHEALTHY:"UNHEALTHY"},x3r={HOURS:"HOURS",MINUTES:"MINUTES",SECONDS:"SECONDS"},P3r={INFINITE:"INFINITE",LIMITED:"LIMITED"};Object.defineProperty(w,"$Command",{enumerable:!0,get:function(){return G.Command}});Object.defineProperty(w,"__Client",{enumerable:!0,get:function(){return G.Client}});w.AccessDeniedException=bze;w.ActionStatus=HFr;w.AnomalyDetectorStatus=WFr;w.AssociateKmsKeyCommand=gU;w.AssociateSourceToS3TableIntegrationCommand=fU;w.CancelExportTaskCommand=hU;w.CancelImportTaskCommand=SU;w.CloudWatchLogs=Qq;w.CloudWatchLogsClient=fr;w.CloudWatchLogsServiceException=ur;w.ConflictException=Vze;w.CreateDeliveryCommand=EU;w.CreateExportTaskCommand=yU;w.CreateImportTaskCommand=_U;w.CreateLogAnomalyDetectorCommand=CU;w.CreateLogGroupCommand=RU;w.CreateLogStreamCommand=vU;w.CreateScheduledQueryCommand=xU;w.DataAlreadyAcceptedException=Yze;w.DataProtectionStatus=t3r;w.DeleteAccountPolicyCommand=PU;w.DeleteDataProtectionPolicyCommand=bU;w.DeleteDeliveryCommand=IU;w.DeleteDeliveryDestinationCommand=AU;w.DeleteDeliveryDestinationPolicyCommand=TU;w.DeleteDeliverySourceCommand=wU;w.DeleteDestinationCommand=DU;w.DeleteIndexPolicyCommand=OU;w.DeleteIntegrationCommand=kU;w.DeleteLogAnomalyDetectorCommand=NU;w.DeleteLogGroupCommand=LU;w.DeleteLogStreamCommand=MU;w.DeleteMetricFilterCommand=FU;w.DeleteQueryDefinitionCommand=BU;w.DeleteResourcePolicyCommand=UU;w.DeleteRetentionPolicyCommand=qU;w.DeleteScheduledQueryCommand=$U;w.DeleteSubscriptionFilterCommand=GU;w.DeleteTransformerCommand=jU;w.DeliveryDestinationType=JFr;w.DescribeAccountPoliciesCommand=VU;w.DescribeConfigurationTemplatesCommand=uv;w.DescribeDeliveriesCommand=lv;w.DescribeDeliveryDestinationsCommand=dv;w.DescribeDeliverySourcesCommand=pv;w.DescribeDestinationsCommand=mv;w.DescribeExportTasksCommand=HU;w.DescribeFieldIndexesCommand=zU;w.DescribeImportTaskBatchesCommand=WU;w.DescribeImportTasksCommand=KU;w.DescribeIndexPoliciesCommand=QU;w.DescribeLogGroupsCommand=gv;w.DescribeLogStreamsCommand=fv;w.DescribeMetricFiltersCommand=hv;w.DescribeQueriesCommand=XU;w.DescribeQueryDefinitionsCommand=JU;w.DescribeResourcePoliciesCommand=YU;w.DescribeSubscriptionFiltersCommand=Sv;w.DisassociateKmsKeyCommand=ZU;w.DisassociateSourceFromS3TableIntegrationCommand=eq;w.Distribution=l3r;w.EntityRejectionErrorType=d3r;w.EvaluationFrequency=KFr;w.EventSource=p3r;w.ExecutionStatus=m3r;w.ExportTaskStatusCode=r3r;w.FilterLogEventsCommand=Ev;w.FlattenedElement=g3r;w.GetDataProtectionPolicyCommand=tq;w.GetDeliveryCommand=rq;w.GetDeliveryDestinationCommand=nq;w.GetDeliveryDestinationPolicyCommand=sq;w.GetDeliverySourceCommand=oq;w.GetIntegrationCommand=iq;w.GetLogAnomalyDetectorCommand=aq;w.GetLogEventsCommand=yv;w.GetLogFieldsCommand=cq;w.GetLogGroupFieldsCommand=uq;w.GetLogObjectCommand=lq;w.GetLogRecordCommand=dq;w.GetQueryResultsCommand=pq;w.GetScheduledQueryCommand=mq;w.GetScheduledQueryHistoryCommand=_v;w.GetTransformerCommand=gq;w.ImportStatus=QFr;w.IndexSource=s3r;w.IndexType=n3r;w.InheritedProperty=o3r;w.IntegrationStatus=h3r;w.IntegrationType=S3r;w.InternalServerException=Mze;w.InternalStreamingException=eWe;w.InvalidOperationException=Gze;w.InvalidParameterException=Aze;w.InvalidSequenceTokenException=rWe;w.LimitExceededException=Kze;w.ListAggregateLogGroupSummariesCommand=Cv;w.ListAggregateLogGroupSummariesGroupBy=C3r;w.ListAnomaliesCommand=Rv;w.ListIntegrationsCommand=fq;w.ListLogAnomalyDetectorsCommand=vv;w.ListLogGroupsCommand=hq;w.ListLogGroupsForQueryCommand=xv;w.ListScheduledQueriesCommand=Pv;w.ListSourcesForS3TableIntegrationCommand=bv;w.ListTagsForResourceCommand=Sq;w.ListTagsLogGroupCommand=Eq;w.LogGroupClass=YFr;w.MalformedQueryException=lWe;w.OCSFVersion=y3r;w.OpenSearchResourceStatusType=f3r;w.OperationAbortedException=wze;w.OrderBy=i3r;w.OutputFormat=XFr;w.PolicyScope=u3r;w.PolicyType=jFr;w.PutAccountPolicyCommand=yq;w.PutDataProtectionPolicyCommand=_q;w.PutDeliveryDestinationCommand=Cq;w.PutDeliveryDestinationPolicyCommand=Rq;w.PutDeliverySourceCommand=vq;w.PutDestinationCommand=xq;w.PutDestinationPolicyCommand=Pq;w.PutIndexPolicyCommand=bq;w.PutIntegrationCommand=Iq;w.PutLogEventsCommand=Aq;w.PutLogGroupDeletionProtectionCommand=Tq;w.PutMetricFilterCommand=wq;w.PutQueryDefinitionCommand=Dq;w.PutResourcePolicyCommand=Oq;w.PutRetentionPolicyCommand=kq;w.PutSubscriptionFilterCommand=Nq;w.PutTransformerCommand=Lq;w.QueryLanguage=ZFr;w.QueryStatus=c3r;w.ResourceAlreadyExistsException=Xze;w.ResourceNotFoundException=Oze;w.S3TableIntegrationSourceStatus=v3r;w.ScheduledQueryDestinationType=E3r;w.ScheduledQueryState=e3r;w.Scope=VFr;w.ServiceQuotaExceededException=zze;w.ServiceUnavailableException=Nze;w.SessionStreamingException=iWe;w.SessionTimeoutException=cWe;w.StandardUnit=a3r;w.StartLiveTailCommand=Mq;w.StartQueryCommand=Fq;w.State=zFr;w.StopQueryCommand=Bq;w.SuppressionState=R3r;w.SuppressionType=P3r;w.SuppressionUnit=x3r;w.TagLogGroupCommand=Uq;w.TagResourceCommand=qq;w.TestMetricFilterCommand=$q;w.TestTransformerCommand=Gq;w.ThrottlingException=Bze;w.TooManyTagsException=pWe;w.Type=_3r;w.UnrecognizedClientException=sWe;w.UntagLogGroupCommand=jq;w.UntagResourceCommand=Vq;w.UpdateAnomalyCommand=Hq;w.UpdateDeliveryConfigurationCommand=zq;w.UpdateLogAnomalyDetectorCommand=Wq;w.UpdateScheduledQueryCommand=Kq;w.ValidationException=qze;w.paginateDescribeConfigurationTemplates=PFr;w.paginateDescribeDeliveries=bFr;w.paginateDescribeDeliveryDestinations=IFr;w.paginateDescribeDeliverySources=AFr;w.paginateDescribeDestinations=TFr;w.paginateDescribeLogGroups=wFr;w.paginateDescribeLogStreams=DFr;w.paginateDescribeMetricFilters=OFr;w.paginateDescribeSubscriptionFilters=kFr;w.paginateFilterLogEvents=NFr;w.paginateGetLogEvents=LFr;w.paginateGetScheduledQueryHistory=MFr;w.paginateListAggregateLogGroupSummaries=FFr;w.paginateListAnomalies=BFr;w.paginateListLogAnomalyDetectors=UFr;w.paginateListLogGroupsForQuery=qFr;w.paginateListScheduledQueries=$Fr;w.paginateListSourcesForS3TableIntegration=GFr});var F3r={};wt(F3r,{CONTENT_TYPE:()=>i6e,X_ORIGINAL_CONTENT_TYPE:()=>mJ,app:()=>L3r,get:()=>M3r,processLambdaResponse:()=>a6e});module.exports=ue(F3r);var w$=O(B$(),1),D$=O(require("path"),1),$Ke=require("url"),GKe=O(zJ(),1);var Wfe=O(CA(),1),tT=O(DV(),1);var wy=()=>!Object.prototype.hasOwnProperty.call(process.env,"AWS_LAMBDA_FUNCTION_NAME"),zfe=(t,e,r)=>{let n=e instanceof Error?e:new Error(String(e));console.error(JSON.stringify({[`__MRT__${t}`]:"error",type:"MRT_internal",error:n.message,stack:n.stack,...r}))};var Dy=class t extends Error{constructor(e){super(e),this.name="DataStoreNotFoundError",Object.setPrototypeOf(this,t.prototype)}},Oy=class t extends Error{constructor(e){super(e),this.name="DataStoreServiceError",Object.setPrototypeOf(this,t.prototype)}},wg=class t extends Error{constructor(e){super(e),this.name="DataStoreUnavailableError",Object.setPrototypeOf(this,t.prototype)}},eT=class t{_tableName="";_ddb=null;static _instance=null;static _testDocumentClient=null;static _testLogMRTError=null;constructor(){}getClient(){if(!this.isDataStoreAvailable())throw new wg("The data store is unavailable.");return t._testDocumentClient?(this._tableName=`DataAccessLayer-${process.env.AWS_REGION}`,t._testDocumentClient):(this._ddb||(this._tableName=`DataAccessLayer-${process.env.AWS_REGION}`,this._ddb=tT.DynamoDBDocumentClient.from(new Wfe.DynamoDBClient({region:process.env.AWS_REGION}))),this._ddb)}static getDataStore(){return t._instance||(t._instance=new t),t._instance}isDataStoreAvailable(){return!!(process.env.AWS_REGION&&process.env.MOBIFY_PROPERTY_ID&&process.env.DEPLOY_TARGET)}async getEntry(e){if(!this.isDataStoreAvailable())throw new wg("The data store is unavailable.");let r=this.getClient(),n;try{n=await r.send(new tT.GetCommand({TableName:this._tableName,Key:{projectEnvironment:`${process.env.MOBIFY_PROPERTY_ID} ${process.env.DEPLOY_TARGET}`,key:e}}))}catch(s){throw(t._testLogMRTError??zfe)("data_store",s,{key:e,tableName:this._tableName}),new Oy("Data store request failed.")}if(!n.Item?.value)throw new Dy(`Data store entry '${e}' not found.`);return{key:e,value:n.Item.value}}};var Zfe=require("set-cookie-parser"),ehe=require("change-case"),the=require("url"),rT="access-control-allow-origin",Kfe="host",Qfe="location",Xfe="origin",Dg="set-cookie",OV="user-agent",Jfe=["http","aws"],Yfe="x-proxy-request-url";var Mut=8192,Og=class{httpFormat;headers;_modified;constructor(e,r){if(!Jfe.includes(r))throw new Error(`Headers format must be one of ${Jfe.join(", ")}`);this.httpFormat=r==="http",this.headers={};for(let[n,s]of Object.entries(e))this.httpFormat?n===Dg?this.headers[n]=s.slice():this.headers[n]=s.split(/,\s*/).map(o=>o.trim()):this.headers[n]=s.map(o=>o.value.trim());this._modified=!1}get modified(){return this._modified}keys(){return Object.keys(this.headers)}getSetCookie(){return this.headers[Dg]||[]}setSetCookie(e){if(this._modified=!0,!(e&&e.length)){delete this.headers[Dg];return}this.headers[Dg]=e.slice()}getHeader(e){let r=e.toLowerCase(),n=this.headers[r];if(n)return n[0]}setHeader(e,r){this._modified=!0;let n=e.toLowerCase();this.headers[n]=[r]}deleteHeader(e){this._modified=!0;let r=e.toLowerCase();delete this.headers[r]}toAWSFormat(){let e={};for(let[r,n]of Object.entries(this.headers)){let s=r.includes("_")?r:(0,ehe.trainCase)(r);e[r]=n.map(o=>({key:s,value:o}))}return e}toHTTPFormat(){let e={};for(let[r,n]of Object.entries(this.headers))r===Dg?e[r]=n.slice():e[r]=n.join(", ");return e}toObject(){return this.httpFormat?this.toHTTPFormat():this.toAWSFormat()}},Fut=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],But=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],nT=t=>{let e=Number(t).toString();return e.length>1?e:`0${e}`},Uut=t=>{let e=[nT(t.getUTCHours()),nT(t.getUTCMinutes()),nT(t.getUTCSeconds())].join(":");return[`${Fut[t.getUTCDay()]},`,nT(t.getUTCDate()),But[t.getUTCMonth()],t.getUTCFullYear(),e,"GMT"].join(" ")},qut=t=>{let e=[`${t.name}=${t.value}`];return t.path&&e.push(`Path=${t.path}`),t.expires&&e.push(`Expires=${Uut(t.expires)}`),t.domain&&e.push(`Domain=${t.domain}`),t.maxAge&&e.push(`Max-Age=${t.maxAge}`),t.secure&&e.push("Secure"),t.httpOnly&&e.push("HttpOnly"),t.sameSite&&e.push(`SameSite=${t.sameSite}`),e.join("; ")},kV="IPV6",NV="IPV4",LV="localhost",$ut=[{type:kV,regexp:/^\[([a-fA-F0-9:]+)\]:(\d+)$/,isIPOrLocalhost:!0,hasPort:!0},{type:kV,regexp:/^([a-fA-F0-9:]+)$/,isIPOrLocalhost:!0,hasPort:!1},{type:NV,regexp:/^(\d+\.\d+\.\d+\.\d+):(\d+)$/,isIPOrLocalhost:!0,hasPort:!0},{type:NV,regexp:/^(\d+\.\d+\.\d+\.\d+)$/,isIPOrLocalhost:!0,hasPort:!1},{type:LV,regexp:/^(localhost):(\d+)$/,isIPOrLocalhost:!0,hasPort:!0},{type:LV,regexp:/^(localhost)$/,isIPOrLocalhost:!0,hasPort:!1},{type:null,regexp:/(.+):\d+/,isIPOrLocalhost:!1,hasPort:!0}],Gut=t=>{for(let e of $ut){let r=e.regexp.exec(t);if(!r)continue;let n={host:t,hostname:r[1],isIPOrLocalhost:e.isIPOrLocalhost};if(e.hasPort){let s;switch(e.type){case kV:s=n.host.split(e.regexp).filter(o=>o.length>0);break;case NV:case LV:default:s=n.host.split(":");break}[n.hostname,n.port]=s}return n}return{host:t,hostname:t,isIPOrLocalhost:!1}},jut=(t,e,r)=>{let n=t.split(".").filter(u=>u),s=n.join("."),o=Gut(e);if(r===s)return o.hostname;if(!r.endsWith(s))return t;if(o.isIPOrLocalhost)return o.hostname;let a=r.split(".").length-n.length;return o.hostname.split(".").slice(a).join(".")},Vut=({appHostname:t,setCookies:e,targetHost:r,logging:n=!1})=>e&&e.length?(0,Zfe.parse)(e,{decodeValues:!1}).map(i=>{if(i.domain){let a=jut(i.domain,t,r);n&&console.log(`Rewriting proxy response set-cookie header domain from "${i.domain}" to "${a}"`),i.domain=a}return i}).map(qut):[],rhe=({appHostname:t,caching:e,headers:r,headerFormat:n="http",proxyPath:s,requestUrl:o,statusCode:i=200,targetProtocol:a,targetHost:c,appProtocol:u="https",logging:l=!1})=>{let d=new Og(r?{...r}:{},n),p=`${u}://${t}`,g=`${a}://${c}`;if(o){let D=(o.startsWith("/")?`${g}${o}`:o).slice(0,Mut);l&&console.log(`Setting proxy response ${Yfe} header to "${D}"`),d.setHeader(Yfe,D)}let y=s.endsWith("/")?s.slice(0,-1):s,R=d.getHeader(rT);if(l&&R&&console.log(`Header ${rT} has value "${R}"`),R===g&&(l&&console.log(`Rewriting proxy response ${rT} header to "${p}"`),d.setHeader(rT,p)),e)d.deleteHeader(Dg);else{let D=Vut({appHostname:t,setCookies:d.getSetCookie(),targetHost:c,logging:l});d.setSetCookie(D)}if(i>=301&&i<=308){l&&console.log(`Status code is ${i}, checking Location header`);let D=d.getHeader(Qfe);if(l&&console.log(`Location header has value "${D}"`),D){let B=new the.URL(D,g);if(B.protocol===`${a}:`&&B.host===c){B.protocol=u,B.host=t,B.pathname=y+B.pathname;let M=B.toString();d.setHeader(Qfe,M),l&&console.log(`Rewriting proxy response Location header from "${D}" to "${M}"`)}}}return d.toObject()},Hut=["x-mobify-access-key","x-sfdc-access-control"];var zut={"x-mobify":"true"},Wut={accept:!0,"accept-charset":!0,"accept-encoding":!0,"accept-language":!0,authorization:!0,range:!0,host:!0,origin:!0,"if-match":!0,"if-modified-since":!0,"if-none-match":!0,"if-range":!0,"if-unmodified-since":!0},nhe=({caching:t=!1,headers:e,headerFormat:r="http",targetProtocol:n,targetHost:s,logging:o=!1})=>{if(!e)return{};let i=new Og({...e},r);Hut.forEach(l=>i.deleteHeader(l)),t&&(i.keys().forEach(l=>{Wut[l]||i.deleteHeader(l)}),i.setHeader(OV,"Amazon CloudFront"));let a=i.getHeader(Kfe);a!==s&&(o&&console.log(`Rewriting proxy request Host header from "${a}" to "${s}"`),i.setHeader(Kfe,s));let c=i.getHeader(Xfe),u=`${n}://${s}`;return c&&c!==u&&i.setHeader(Xfe,u),i.getHeader(OV)&&i.setHeader(OV,"Amazon CloudFront"),Object.entries(zut).forEach(([l,d])=>{i.setHeader(l,d)}),i.toObject()};var she=require("http-proxy-middleware"),Kut=/^\/mobify\/(proxy|caching)\/([^/]+)/,Qut=({proxyRequest:t,incomingRequest:e,caching:r=!1,proxyPath:n,targetHost:s,targetProtocol:o,rewriteRequestHeaders:i})=>{let a=e.headers,u=(i??nhe)({caching:r,headers:a,headerFormat:"http",targetHost:s,targetProtocol:o});Object.entries(u).forEach(([l,d])=>t.setHeader(l,d)),Object.keys(a).forEach(l=>{u[l]||t.removeHeader(l)})},Xut=({appHostname:t,proxyPath:e,targetProtocol:r,targetHost:n,appProtocol:s="https",caching:o},i)=>{let a=i??she.createProxyMiddleware,c=`${r}://${n}`;return{fn:a({changeOrigin:!0,cookieDomainRewrite:{targetHost:t},cookiePathRewrite:!1,followRedirects:!1,onError:(d,p,g)=>{g.writeHead(500,{"Content-Type":"text/plain"}),g.end(`Error in proxy request to ${p.url}: ${d}`)},onProxyReq:(d,p)=>{Qut({proxyRequest:d,incomingRequest:p,caching:o,proxyPath:e,targetHost:n,targetProtocol:r})},onProxyRes:(d,p)=>{let g=p.url?.replace(Kut,"");d.headers=rhe({appHostname:t,caching:!!o,targetHost:n,targetProtocol:r,appProtocol:s,proxyPath:e,statusCode:d.statusCode,headers:d.headers,headerFormat:"http",requestUrl:g})},target:c}),path:e}},ohe=(t,e,r="https",n)=>{let s=[];return t.forEach(o=>{let i=o.host.startsWith("https://")?"https":"http",a=o.host.replace(`${i}://`,""),c=Xut({proxyPath:o.path,targetProtocol:i,targetHost:a,appProtocol:r,appHostname:e,caching:!1},n);s.push(c)}),s};var ahe=O(B$(),1),FV=O(require("fs"),1),che=O(require("path"),1),uhe=O(require("mime-types"),1),lhe=O(require("qs"),1),BV="/mobify",dhe=`${BV}/proxy`,Jut=`${BV}/caching`,Yut=`${BV}/bundle`,Zut=dhe,elt=Yut,tlt=["x-api-key","x-apigateway-event","x-apigateway-context","x-mobify-access-key","x-sfdc-access-control"],MV="x-mobify-request-class",ihe="x-mobify-querystring",UV="x-mobify-rp-local",rlt="content-type",nlt="max-age=0, nocache, nostore, must-revalidate",slt=t=>t.startsWith(Zut)||t.startsWith(elt),olt=async t=>t&&FV.default.existsSync(t)?await import(t):null,phe=()=>({appHostname:process.env.EXTERNAL_DOMAIN_NAME||"localhost:2401",deployTarget:process.env.DEPLOY_TARGET||"local-target",environment:process.env.ENVIRONMENT||"development"}),mhe=(t,e,r)=>{let n={};r?(n=lhe.default.parse(r),t.originalUrl=`${e}?${r}`):t.originalUrl=e,Object.defineProperty(t,"query",{value:{...n},writable:!0,enumerable:!0,configurable:!0})},ghe=(t,e=!1)=>{e&&delete t.headers[UV],tlt.forEach(r=>{delete t.headers[r]})},fhe=(t,e)=>{let r=e,n=t.headers[ihe];return n&&n!==""&&(r=n),delete t.headers[ihe],r},hhe=(t,e)=>{let r=async(s,o)=>{if(slt(s.originalUrl))return;let i=await olt(t),a=s.originalUrl.split("?")[1],c=a||void 0,u=s.originalUrl.split("?")[0];if(c=fhe(s,c),i){let l=new Og(s.headers,"http"),{appHostname:d,deployTarget:p,environment:g}=phe(),y=i.processRequest({headers:l,path:s.path,querystring:c,getRequestClass:()=>l.getHeader(MV),setRequestClass:R=>l.setHeader(MV,R),parameters:{deployTarget:p,appHostname:d,proxyConfigs:e||[],environment:g}});console.assert(y&&"path"in y&&"querystring"in y,`Expected processRequest to return an object with "path" and "querystring" properties, but got ${JSON.stringify(y,null,2)}`),c=y.querystring,u=y.path,l.modified&&(s.headers=l.toObject())}c!==a&&mhe(s,u,c),o.locals.requestClass=s.headers[MV],s.headers[UV]="true"};return(s,o,i)=>{if(s.path==="/"&&!["GET","HEAD","OPTIONS"].includes(s.method)){o.sendStatus(405);return}r(s,o).then(()=>{ghe(s,!1),i()}).catch(a=>{i(a)})}},She=(t,e="http",r=!1,n)=>{if(!t)return[];let{appHostname:s}=phe(),o=ohe(t,s,e,n),i=[];return o.forEach(a=>{let c=`${dhe}/${a.path}`,u=`${Jut}/${a.path}`;i.push({fn:a.fn,path:c}),r&&i.push({fn:a.fn,path:u})}),i},ilt=(t,e)=>{let r=che.default.basename(e),n=uhe.default.lookup(r)||"application/octet-stream";t.set(rlt,n);let s=FV.default.statSync(e).mtime,o=s.toUTCString();t.set("date",o),t.set("last-modified",o),t.set("etag",s.getTime().toString()),t.set("cache-control",nlt)},Ehe=t=>ahe.default.static(t,{dotfiles:"deny",setHeaders:ilt,fallthrough:!1}),yhe=()=>(t,e,r)=>{t.headers.host=process.env.EXTERNAL_DOMAIN_NAME||"localhost:2401",r()},_he=()=>(t,e,r)=>{if(!t.headers[UV]){let n=t.originalUrl.split("?")[1]||void 0,s=fhe(t,n),o=t.originalUrl.split("?")[0];mhe(t,o,s)}ghe(t,!0),r()};var lO=O(Wxe(),1);var gPt=()=>!wy(),fPt="ssr",Wz=()=>({Project:process.env.MOBIFY_PROPERTY_ID||"UNKNOWN",Target:process.env.DEPLOY_TARGET||"UNKNOWN"}),Q_=class t{_CW=null;_queue=[];static _override=!1;static _instance=null;static _testClient=null;constructor(){this._CW=null,this._queue=[]}get queueLength(){return this._queue.length}_setup(){return t._testClient?(this._CW=t._testClient,this._CW):(!this._CW&&(gPt()||t._override)&&(this._CW=new lO.CloudWatchClient({region:process.env.AWS_REGION||"us-east-1",maxAttempts:1})),this._CW)}_convertToMetricDatum(e,r){let n={MetricName:e.name,Value:e.value||0,Timestamp:e.timestamp instanceof Date?e.timestamp:r,Unit:e.unit||"Count"};if(e.dimensions){let s=[];Object.entries(e.dimensions).forEach(([o,i])=>{i&&s.push({Name:o,Value:i})}),s.length>0&&(n.Dimensions=s)}return n}async _putMetricData(e,r){if(!e)return Promise.resolve();try{let n=new lO.PutMetricDataCommand({MetricData:r,Namespace:fPt});await e.send(n)}catch(n){console.warn(`Metrics: error sending data: ${n}`)}}_sendBatchedMetrics(e){if(e.length===0)return;let r=this._setup(),n=[],s=20;for(let o=0;o{console.warn(`Metrics: error during batch send: ${o}`)})}flush(){let e=[...this._queue];return this._queue=[],this._sendBatchedMetrics(e),Promise.resolve()}send(e,r=!1){let n=new Date,s=e.map(o=>this._convertToMetricDatum(o,n));r?this._sendBatchedMetrics(s):this._queue.push(...s)}static getSender(){return t._instance||(t._instance=new t),t._instance}};Q_._override=!!process.env.SEND_CW_METRICS;var ibt=require("http"),abt=require("node:stream/promises"),uW=O(require("node:zlib"),1),cbt=O(mPe(),1),ubt=O(fPe(),1);var QPt=Object.defineProperty,Ee=(t,e)=>QPt(t,"name",{value:e,configurable:!0});var EPe=require("node:http"),Y8r=require("node:stream"),xPe=require("node:http"),bPe=require("node:http"),yPe=["gzip","deflate","br"],_Pe=["image/png","image/jpeg","image/jpg","image/avif","image/bmp","image/x-png","image/gif","image/webp","video/mp4","application/pdf"],pO={},Zz={context:null,event:null};function CPe(){return Zz}Ee(CPe,"getCurrentInvoke");function mO({event:t,context:e}){Zz.event=t,Zz.context=e}Ee(mO,"setCurrentInvoke");function Hc(t,e){let r=e?"base64":"utf8",n=Buffer.from(t,r),s=Buffer.byteLength(n,r);return[n,s]}Ee(Hc,"getEventBodyAsBuffer");function mp(t,e=",",r=!1){return Object.keys(t).reduce((n,s)=>{let o=r?s.toLowerCase():s,i=t[s];return Array.isArray(i)?n[o]=i.join(e):n[o]=(i??"")+"",n},{})}Ee(mp,"getFlattenedHeadersMap");function J_(t){return Object.keys(t).reduce((e,r)=>{let n=t[r];return e[r.toLowerCase()]=Array.isArray(n)?n.map(String):[String(n)],e},{})}Ee(J_,"getMultiValueHeadersMap");function gO(t){return Object.keys(t).reduce((e,r)=>{let n=t[r],s=r.toLowerCase();return Array.isArray(n)?s!=="set-cookie"?e.headers[r]=n.join(","):e.cookies.push(...n):s==="set-cookie"&&n!==void 0?e.cookies.push(n??""):e.headers[r]=String(n??""),e},{cookies:[],headers:{}})}Ee(gO,"getFlattenedHeadersMapAndCookies");function eW(t){if(!t)return{};let e={},r=t.trim().split(` -`);for(let n=0;n"u"?e[i]=a:Array.isArray(e[i])?e[i].push(a):e[i]=[e[i],a]}return e}Ee(eW,"parseHeaders");function fO(t){let e={};for(let[r,n]of Object.entries(t))e[r.toLowerCase()]=n;return e}Ee(fO,"keysToLowercase");function tW(t,e){let r=t["content-encoding"];return r?(Array.isArray(r)||(r=r.split(",")),r.some(n=>e.includes(n.trim()))):!1}Ee(tW,"isContentEncodingBinary");function rW(t){let e=t["content-type"],r=Array.isArray(e)?e[0]||"":e||"";if(!e)return"";let n=r.indexOf(";");return n===-1?r:r.slice(0,n)}Ee(rW,"getContentType");function nW(t,e){let r=rW(t);return r?e.includes(r.trim()):!1}Ee(nW,"isContentTypeBinary");function hO(t,e){return"isBinary"in e?e.isBinary===!1?!1:e.isBinary(t):tW(t,e.contentEncodings)||nW(t,e.contentTypes)}Ee(hO,"isBinary");var yr=Ee(()=>{},"NO_OP"),RPe=Symbol("InternalLogger"),XPt={debug:[["debug","debug"],["verbose","debug"],["info","info"],["error","error"],["warn","warn"]],verbose:[["verbose","debug"],["info","info"],["error","error"],["warn","warn"]],info:[["info","info"],["error","error"],["warn","warn"]],warn:[["warn","warn"],["error","error"]],error:[["error","error"]],none:[]},JPt=Ee(t=>typeof t=="function"?t():t,"lazyPrint"),YPt=Ee(t=>(e,...r)=>console[t](e,...r.map(JPt)),"print");function sW({level:t}={level:"error"}){let e=XPt[t];if(!e)throw new Error("Invalid log level");let r={[RPe]:!0,error:yr,debug:yr,info:yr,verbose:yr,warn:yr};for(let[n,s]of e)r[n]=YPt(s);return r}Ee(sW,"createDefaultLogger");function vPe(t){return!!t[RPe]}Ee(vPe,"isInternalLogger");function nr(t,e){return t===void 0?e:t}Ee(nr,"getDefaultIfUndefined");function xl(t,e){if(String(e||"").length===0)return t;if(typeof e=="string")return`${t}?${e}`;let r=oW(e);return r?`${t}?${r}`:t}Ee(xl,"getPathWithQueryStringParams");function oW(t){let e=new URLSearchParams,r=Object.entries(t||{});if(r.length===0)return"";for(let[n,s]of r){if(!Array.isArray(s)){e.append(n,s||"");continue}for(let o of s)e.append(n,o)}return e.toString()}Ee(oW,"getQueryParamsStringFromRecord");var ZPt=Ee(t=>t,"NOOPBasePath");function gp(t){if(!t)return ZPt;let e=t.length;return r=>r.startsWith(t)?r.slice(r.indexOf(t)+e,r.length)||"/":r}Ee(gp,"buildStripBasePath");function iW(t){return!!("readableEnded"in t&&t.readableEnded||"writableEnded"in t&&t.writableEnded)}Ee(iW,"isStreamEnded");function SO(t){return iW(t)?Promise.resolve(t):new Promise((e,r)=>{let n=!1;function s(o){n||(n=!0,t.removeListener("error",s),t.removeListener("end",s),t.removeListener("finish",s),o?r(o):e(t))}Ee(s,"complete"),t.once("error",s),t.once("end",s),t.once("finish",s)})}Ee(SO,"waitForStreamComplete");var ebt=443,aW=class extends EPe.IncomingMessage{static{Ee(this,"ServerlessRequest")}constructor({method:t,url:e,headers:r,body:n,remoteAddress:s}){super({encrypted:!0,readable:!0,remoteAddress:s,address:Ee(()=>({port:ebt}),"address"),on:yr,removeListener:yr,removeEventListener:yr,end:yr,destroy:yr}),this.statusCode=200,this.statusMessage="OK",this.complete=!0,this.httpVersion="1.1",this.httpVersionMajor=1,this.httpVersionMinor=1,this.method=t,this.headers=r,this.body=n,this.url=e,this.ip=s,this._read=()=>{this.push(n),this.push(null)}}ip;body};function EO(t){if(Buffer.isBuffer(t))return t.toString("utf8");if(typeof t=="string")return t;if(t instanceof Uint8Array)return new TextDecoder().decode(t);throw new Error(`response.write() of unexpected type: ${typeof t}`)}Ee(EO,"getString");var hPe=`\r -\r -`,tbt=`0\r -\r -`,X_=Symbol("Response body"),yf=Symbol("Response headers");function dO(t,e){if(Buffer.isBuffer(e)||typeof e=="string"||e instanceof Uint8Array)t[X_].push(Buffer.from(e));else throw new Error(`response.write() of unexpected type: ${typeof e}`)}Ee(dO,"addData");var Y_=class PPe extends xPe.ServerResponse{static{Ee(this,"ServerlessResponse")}constructor({method:e}){super({method:e}),this[X_]=[],this[yf]={},this.useChunkedEncodingByDefault=!1,this.chunkedEncoding=!1,this._header="";let r=1,n={_writableState:{},writable:!0,on:yr,removeListener:yr,destroy:yr,cork:yr,uncork:yr,write:Ee((s,o,i)=>{if(typeof o=="function"&&(i=o,o=null),this._header===""||this._wroteHeader)this.chunkedEncoding?r>0?r--:s!==tbt&&(dO(this,s),r=3):dO(this,s);else{let a=EO(s),c=a.indexOf(hPe);if(c!==-1){let u=a.slice(c+hPe.length);u&&!this.chunkedEncoding&&dO(this,u),this._wroteHeader=!0}}typeof i=="function"&&i()},"write")};this.assignSocket(n)}_header;_headers;_wroteHeader;[X_];[yf];get headers(){return this[yf]}static from(e){let r=new PPe({method:e.method});return r.statusCode=e.statusCode||0,r[yf]=e.headers,r[X_]=e.body?[Buffer.from(e.body)]:[],r.end(),r}static body(e){return Buffer.concat(e[X_])}static headers(e){let r=e.getHeaders();return Object.assign(r,e[yf])}setHeader(e,r){this._wroteHeader?this[yf][e]=r:super.setHeader(e,r)}writeHead(e,r,n){let s=typeof r=="string"?n:r,o=Array.isArray(s)?s:[s||{}];for(let i of o)for(let a in i)if(this.setHeader(a,i[a]),!this._wroteHeader)break;return this.callNativeWriteHead(e,r,n)}callNativeWriteHead(e,r,n){return super.writeHead(e,r,n)}},rbt=Buffer.from(`\r -`),SPe=`0\r -\r -`,nbt=`\r -\r -`,sbt=`\r -`,obt=class extends bPe.ServerResponse{static{Ee(this,"ServerlessStreamResponse")}constructor({method:t,onReceiveHeaders:e,log:r}){super({method:t}),this.useChunkedEncodingByDefault=!0,this.chunkedEncoding=!0;let n=null,s=!1,o=!1,i={_writableState:{},writable:!0,on:yr,removeListener:yr,destroy:yr,cork:yr,uncork:yr,write:Ee((a,c,u)=>{if(typeof c=="function"&&(u=c,c=null),r.debug("SERVERLESS_ADAPTER:RESPONSE_STREAM:DATA",()=>({data:Buffer.isBuffer(a)?a.toString("utf8"):a,encoding:c})),!n){let l=EO(a),d=l.indexOf(sbt),p=+l.slice(0,d).split(" ")[1],g=l.indexOf(nbt),y=l.slice(d+2,g),R=eW(y);return r.debug("SERVERLESS_ADAPTER:RESPONSE_STREAM:FRAMEWORK_HEADERS",()=>({headers:R})),n=e(p,R),l.substring(g+4)===SPe&&n.end(),!0}if(a===SPe)return n.end(u),!0;if(Buffer.isBuffer(a)&&rbt.equals(a)){if(!s)return s=!0,!0;if(s&&o)return s=!1,o=!1,!0}return s&&(o=!0,n.write(a,u)),!0},"write")};this.assignSocket(i)}},cW=class{static{Ee(this,"BaseHandler")}getAdapterByEventAndContext(t,e,r,n){let s=r.filter(o=>o.canHandle(t,e,n));if(s.length===0)throw new Error("SERVERLESS_ADAPTER: Couldn't find adapter to handle this event.");if(s.length>1)throw new Error(`SERVERLESS_ADAPTER: Two or more adapters was resolved by the event, the adapters are: ${r.map(o=>o.getAdapterName()).join(", ")}.`);return s[0]}getServerlessRequestResponseFromAdapterRequest(t){let e=new aW({method:t.method,headers:t.headers,body:t.body,remoteAddress:t.remoteAddress,url:t.path}),r=new Y_({method:t.method});return[e,r]}};var IPe=class APe{static{Ee(this,"ServerlessAdapter")}constructor(e){this.app=e}app;binarySettings={contentEncodings:yPe,contentTypes:_Pe};respondWithErrors=!1;log=sW();adapters=[];framework;resolver;handler;static new(e){return new APe(e)}setHandler(e){if(this.handler)throw new Error("SERVERLESS_ADAPTER: The handler should not set twice.");return this.handler=e,this}setResolver(e){if(this.resolver)throw new Error("SERVERLESS_ADAPTER: The resolver should not set twice.");return this.resolver=e,this}setFramework(e){if(this.framework)throw new Error("SERVERLESS_ADAPTER: The framework should not set twice.");return this.framework=e,this}setLogger(e){return this.log=e,this}setBinarySettings(e){return this.binarySettings={...this.binarySettings,...e},this}setRespondWithErrors(e){return this.respondWithErrors=e,this}addAdapter(e){return this.adapters.push(e),this}build(){if(!this.resolver)throw new Error("SERVERLESS_ADAPTER: Is required to set a resolver before build.");if(!this.framework)throw new Error("SERVERLESS_ADAPTER: Is required to set a framework before build.");if(!this.handler)throw new Error("SERVERLESS_ADAPTER: Is required to set a handler before build.");if(this.adapters.length===0)throw new Error("SERVERLESS_ADAPTER: Is required to set at least one adapter.");return this.handler.getHandler(this.app,this.framework,this.adapters,this.resolver,this.binarySettings,this.respondWithErrors,this.log)}};var lbt;try{typeof uW.default.createZstdCompress=="function"&&(lbt=uW.default.createZstdCompress)}catch{}var A1e=O(require("fs/promises"),1),T1e=O(require("path"),1),w1e=require("url"),V0=O(dbe(),1),K9=O(require("crypto"),1),JL=O(b1e(),1);var MFt={},AFt=T1e.default.dirname((0,w1e.fileURLToPath)(MFt.url)),Q9=class extends Error{constructor(e,...r){super(...r),this.message=JSON.stringify(e,null,2),this.name="IntentionalError"}},TFt=["aws_execution_env","aws_lambda_function_memory_size","aws_lambda_function_name","aws_lambda_function_version","aws_lambda_log_group_name","aws_lambda_log_stream_name","aws_region","bundle_id","customer_*","deploy_id","deploy_target","external_domain_name","mobify_property_id","mrt_allow_cookies","mrt_env_base_path","node_env","node_options","tz"],wFt="https://tls-v1-1.badssl.com:1011/",DFt="https://tls-v1-2.badssl.com:1012/",D1e=t=>Object.assign({},...Object.keys(t).sort().map(e=>({[e]:t[e]}))),OFt=(t,e)=>t&&Object.keys(t).filter(r=>{let n=r.toLowerCase().trim();return e.some(s=>s.endsWith("*")&&n.startsWith(s.slice(0,-1))||s===n)}).sort().reduce((r,n)=>(r[n]=t[n],r),{}),Ql=(t,e)=>({args:t.query,protocol:t.protocol,method:t.method,path:t.path,query:t.query,route_path:t.route.path,body:t.body,headers:D1e(t.headers),ip:t.ip,env:OFt(process.env,TFt),timestamp:new Date().toISOString(),...typeof e=="object"?{additional_info:e}:{}}),X9=(t,e)=>e.json(Ql(t)),O1e=t=>{throw new Q9(Ql(t))},k1e=async(t,e)=>{let r=await fetch(wFt).then(s=>s.ok).catch(()=>!1),n=await fetch(DFt).then(s=>s.ok).catch(()=>!1);e.header("Content-Type","application/json"),e.send(JSON.stringify({"tls1.1":r,"tls1.2":n},null,4))},J9=async(t,e)=>{let r=String(t.params.duration||"60");isNaN(parseInt(r))&&(r="60"),e.set("Cache-Control",`s-maxage=${r}`),e.json(Ql(t))},N1e=async(t,e)=>{if(Object.hasOwn(t.query,"name")){let r=t.query.name,n=t.query.value;e.cookie(r,n)}e.set("Cache-Control","private, max-age=60"),e.json(Ql(t))},L1e=async(t,e)=>{for(let[r,n]of Object.entries(t.query))e.set(r,n);e.json(Ql(t))},M1e=async(t,e)=>{e.set("X-Multi-Value-Header",["value1","value2","value3"]),e.json(Ql(t))},F1e=async(t,e)=>{let r=t.query.status?parseInt(t.query.status):200;e.status(r),e.set("X-Status-Code",r.toString()),e.json(Ql(t))},B1e=async(t,e)=>{let r=process.memoryUsage(),n=t?.query?.count?parseInt(t.query.count):1,s=t?.query?.size?parseInt(t.query.size):1024,o=global?.gc&&t?.query&&(I1e(t.query.forcegc)||I1e(t.query.gc)),i=Date.now();kFt(n,s);let a=Date.now()-i,c=Date.now();o&&global.gc&&global.gc();let u=Date.now()-c,l=process.memoryUsage(),d=NFt(l,r),p=10,g=Math.round(n*s/1024/1024*p)/p,y={memory_end:l,memory_delta:d,malloc_time:a,gc_time:u,force_gc:o,test_count:n,test_size:s,test_total_alloc_mb:g};e.json(Ql(t,y))},kFt=(t,e)=>{let r=[];for(let n=0;n{let r={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&Object.prototype.hasOwnProperty.call(e,n)&&typeof t[n]=="number"&&typeof e[n]=="number"&&(r[n]=t[n]-e[n]);return r},I1e=t=>{if(t==null||typeof t!="string"||t.trim()==="")return!1;let e=t.toLowerCase();return e==="true"||e==="1"||e==="on"||e==="enable"||e==="enabled"||e==="yes"},U1e=async(t,e)=>{e.json({headers:D1e(t.headers)})},q1e=(t,e,r)=>{console.log(`Request: ${t.method} ${t.originalUrl}`),console.log(`Request headers: ${JSON.stringify(t.headers,null,2)}`);let n={string:"string value",number:1234567890,boolean:!0,null:null,undefined:void 0,NaN:NaN,object:{foo:"bar"},array:[1,2,3],date:new Date};for(let s of Object.values(n))console.log(s);return e.on("finish",()=>{let s=e.headersSent?String(e.statusCode):String(-1);if(console.log(`Response status: ${s}`),e.headersSent){let o=JSON.stringify(e.getHeaders(),null,2);console.log(`Response headers: ${o}`)}}),r()},$1e=(t,e,r)=>{let n=process.env.MRT_ENV_BASE_PATH;return console.debug(`Base path: Base path: ${n}`),console.debug(`Request path: Request path: ${t.url}`),n&&(t.path.startsWith(`${n}/`)||t.path===n)&&(t.url=t.url.slice(n.length)||"/",console.debug(`Base path: Rewrote ${n} -> Original url: ${t.originalUrl} -> New url: ${t.url}`)),r()},G1e=async(t,e)=>{e.setHeader("Content-Type","text/plain");let r=20;for(let n=0;n<100;n++)e.write(`Here is a streaming chunk${n} -`),n<99&&await new Promise(s=>setTimeout(s,r));e.end()},j1e=async(t,e)=>{try{let r=`${AFt}/static/example.json`,n=await A1e.default.readFile(r,{encoding:"utf8"}),s=JSON.parse(n);e.json(s)}catch(r){e.status(500).json({error:r})}},LFt=t=>{let e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",r="";for(let n=0;n{if(process.env.MRT_BUNDLE_TYPE!=="stream"){e.status(200),e.json({streaming:!1});return}e.status(200),e.setHeader("Content-Type","text/plain"),e.write(`This is the first piece of streamed data. -`);let r=Date.now();for(let n=0;n<20;n++)setTimeout(()=>{let s=`${Date.now()-r}ms This is the ${n+1} piece of streamed data after a delay ${LFt(1024)}. -`;e.write(s),e.flush(),n===19&&e.end()},n*500)},H1e=(t,e)=>{let r=V0.default.createLogger({level:"info",format:V0.default.format.json(),defaultMeta:{service:"user-service"}});r.add(new V0.default.transports.Console({format:V0.default.format.json()})),r.log("info","json log using winston that triggers KeyError"),r.log({metadata:"defined by cust",level:"info",log:"json log using winston",telemetryEvent:"telemetryEvent field defined by customer"}),console.log({"winston-test":"this is a json log using console.log"}),console.warn({"winston-test":"this is a json log using console.warn"}),console.debug({"winston-test":"this is a json log using console.debug"}),console.info({"winston-test":"this is a json log using console.info"}),console.error({"winston-test":"this is a json log using console.error"}),e.json({message:"Winston logging completed"})},z1e=async(t,e)=>{let r=t.query.delay?parseInt(t.query.delay):1e4,n=Date.now();console.log({duration:Date.now()-n,message:`Pre-delayed logging ${r}ms`}),await new Promise(s=>setTimeout(s,r)),console.log({duration:Date.now()-n,message:`Delayed logging ${r}ms`}),e.json({duration:Date.now()-n,message:`Delayed logging ${r}ms`})},W1e=(t,e)=>{let r=t.query.count?parseInt(t.query.count):1e4,n=new TextEncoder,s=Date.now(),o=0;for(let a=0;a{let r=t.query.count?parseInt(t.query.count):1e4,n=new TextEncoder,s=Date.now(),o=0,i="";for(let c=0;c{let r=[new Date().getTime(),Number(process.hrtime.bigint())],n={name:"mrt.ref.trace",traceId:K9.default.randomBytes(16).toString("hex"),id:K9.default.randomBytes(8).toString("hex"),forwardTrace:!0,start_time:r,end_time:[new Date().getTime(),Number(process.hrtime.bigint())]};console.log(JSON.stringify(n)),e.json(n)},X1e=async(t,e)=>{let r=eT.getDataStore();if(!r.isDataStoreAvailable())return e.json({dataStore:!1});let n;try{n=await r.getEntry(String(t.params.key))}catch(s){if(s instanceof wg)return e.status(400).json({error:s.message});if(s instanceof Dy)return e.status(404).json({error:s.message});if(s instanceof Oy)return e.status(500).json({error:s.message});throw s}return e.json(n)},J1e=async(t,e)=>{let r=t.query.secretId;if(!r)return e.status(400).json({error:"Missing required query parameter: secretId"});let n=new JL.SecretsManagerClient({region:process.env.AWS_REGION}),s=new JL.GetSecretValueCommand({SecretId:r});try{let o=await n.send(s);return e.status(200).json({success:!0,secretId:r,arn:o.ARN,versionId:o.VersionId,hasSecretString:!!o.SecretString,hasSecretBinary:!!o.SecretBinary})}catch(o){let i=o,a=i.name||i.code,c=500,u=i.message||"Unknown error";switch(a){case"ResourceNotFoundException":c=404;break;case"InvalidRequestException":case"InvalidParameterException":c=400;break;case"DecryptionFailure":case"InternalServiceError":c=500;break;case"AccessDeniedException":c=403;break;default:c=500}return e.status(c).json({success:!1,error:u,errorCode:a,secretId:r})}},Y1e=(t,e)=>{let r=t.headers["x-site-id"],n=t.headers.authorization,s=t.headers.cookie,o={};s&&s.split(";").forEach(d=>{let[p,g]=d.trim().split("=");p&&g&&(o[p]=g)});let i=r?`cc-at_${r}`:null,a=i?o[i]:null,c=t.headers.sfdc_dwsid,u={siteIdPresent:!!r,siteId:r,authHeaderPresent:!!n,authHeader:n,expectedCookieName:i,expectedCookieValue:a,authHeaderMatchesCookie:!1,sfdc_dwsidPresent:!!c,sfdc_dwsidValue:c,dwsidPresent:!!o.dwsid,dwsidValue:o.dwsid,sfdc_dwsidMatchesDwsid:c===o.dwsid};if(n&&a){let d=`Bearer ${a}`;u.authHeaderMatchesCookie=n===d}let l=u.siteIdPresent&&u.authHeaderPresent&&u.authHeaderMatchesCookie&&u.sfdc_dwsidPresent&&u.sfdc_dwsidMatchesDwsid;return e.json({success:l,validations:u,allCookies:o,headers:{"x-site-id":t.headers["x-site-id"],authorization:t.headers.authorization,cookie:t.headers.cookie,sfdc_dwsid:t.headers.sfdc_dwsid}})};var P$=O(bqe(),1),b$=O(zHe(),1),I$=O(BKe(),1),UKe=O(CA(),1),A$=O(DV(),1),T$=(t,e)=>{if(typeof t!="object"||t===null)return!1;let r=t;return r.name===e||r.message===e},b3r=async t=>{let e=new P$.LambdaClient;try{await e.send(new P$.InvokeCommand(t))}catch(r){if(T$(r,"AccessDeniedException"))return!0;console.error(r)}return console.error("Lambda isolation test failed!"),!1},I3r=async t=>{let e=t.Region||process.env.AWS_REGION||"us-east-1",r=new b$.S3Client({region:e});delete t.Region;try{await r.send(new b$.GetObjectCommand(t))}catch(n){if(T$(n,"AccessDenied"))return!0;console.error(n)}return console.error("S3 isolation test failed!"),!1},A3r=async t=>{let e=new I$.CloudWatchLogsClient;try{let r=Math.random().toString(36).slice(2,7);await e.send(new I$.CreateLogStreamCommand({...t,logStreamName:`new_log_stream_${r}`}))}catch(r){if(T$(r,"AccessDeniedException"))return!0;console.error(r)}return console.error("Log group isolation test failed!"),!1},T3r=async t=>{if(!process.env.AWS_REGION||!t.dalKey||!t.dalProjectEnvironment)return console.error("DAL isolation test failed: missing required parameters"),!1;let e=`DataAccessLayer-${process.env.AWS_REGION}`,r=A$.DynamoDBDocumentClient.from(new UKe.DynamoDBClient({region:process.env.AWS_REGION}));try{await r.send(new A$.GetCommand({TableName:e,Key:{projectEnvironment:t.dalProjectEnvironment,key:t.dalKey}}))}catch(n){if(T$(n,"AccessDeniedException"))return!0;console.error(n)}return console.error("DAL isolation test failed: Target B accessed Target A's DAL entry"),!1},w3r=async t=>{let e=[{name:"origin",keys:["FunctionName"],fn:b3r},{name:"storage",keys:["Bucket","Key","Region"],fn:I3r},{name:"logs",keys:["logGroupName"],fn:A3r},{name:"dal",keys:["dalKey","dalProjectEnvironment"],fn:T3r}],r={};for(let n of e){let{keys:s,fn:o,name:i}=n,a=Object.keys(t).filter(c=>s.includes(c)).reduce((c,u)=>(c[u]=t[u],c),{});r[i]=await o(a)}return r},qKe=async(t,e)=>{let r=await w3r(t.query);e.header("Content-Type","application/json"),e.send(JSON.stringify(r,null,4))};var k3r={},D3r=(t,e,r)=>{e.set("server","mrt-reference-app"),r()},O3r=t=>(e,r,n)=>{r.locals.requestStartTime=Date.now();let s=()=>{let o=Date.now()-r.locals.requestStartTime;if(t.metrics){let i=[{name:"RequestTime",value:o,unit:"Milliseconds",dimensions:Wz()}],a={name:"RequestSuccess",value:1,unit:"Count",dimensions:Wz()};r.statusCode===404?a.name="RequestFailed404":r.statusCode>=400&&r.statusCode<=499?a.name="RequestFailed400":r.statusCode>=500&&r.statusCode<=599&&(a.name="RequestFailed500"),i.push(a),t.metrics.send(i,!0)}};r.on("finish",s),r.on("error",s),n()},jKe=()=>{let t=(0,w$.default)();if(t.disable("x-powered-by"),t.use(D3r),t.metrics=Q_.getSender(),t.use(O3r(t)),t.use(yhe()),wy()){let e=D$.default.dirname((0,$Ke.fileURLToPath)(k3r.url)),r=process.env.RP_EXTENSION?".ts":".js",n=D$.default.resolve(e,`../request-processor${r}`);console.log("Using request processor:",n);let s=[{host:"https://playground-22x-us-west-1.mobify-storefront.com",path:"api"}];t.use(hhe(n,s)),She(s).forEach(a=>{t.use(a.path,a.fn)});let i=D$.default.resolve(e,"../static");console.log("Using static asset directory:",i),t.use(`/mobify/bundle/${process.env.BUNDLE_ID||"1"}/static/`,Ehe(i))}return t.use(_he()),t.get("/favicon.ico",w$.default.static("static/favicon.ico")),t.get("/robots.txt",w$.default.static("static/robots.txt")),t.use((e,r,n)=>(r.set("Cache-Control","no-cache"),n())),t.use(q1e),t.use($1e),t.all("/exception",O1e),t.get("/tls",k1e),t.get("/cache",J9),t.get("/cache/:duration",J9),t.get("/memtest",B1e),t.get("/cookie",N1e),t.get("/headers",U1e),t.get("/isolation",qKe),t.get("/set-response-headers",L1e),t.get("/multi-value-headers",M1e),t.get("/streaming",G1e),t.get("/ssr-shared",j1e),t.get("/streaming-large",V1e),t.get("/set-status",F1e),t.get("/winston-logging",H1e),t.get("/delayed-logging",z1e),t.get("/mass-logging",W1e),t.get("/large-logging",K1e),t.get("/trace-logging",Q1e),t.get("/data-store/:key",X1e),t.get("/secrets-manager",J1e),t.get("/proxy-transformation",Y1e),t.all("/auth/logout",(e,r)=>r.status(401).send("Logged out")),t.use("/auth{*alias}",(0,GKe.default)({users:{mobify:"supersecret"},challenge:!0,realm:process.env.EXTERNAL_DOMAIN_NAME||"echo-test"})),t.all("/auth{*alias}",X9),t.all("/{*splat}",X9),t.set("json spaces",4),t};var O$=O(require("node:util"),1),pJ=class extends cW{static{Ee(this,"DefaultHandler")}getHandler(t,e,r,n,s,o,i){return(a,c,u)=>{this.onReceiveRequest(i,a,c,s,o);let l=this.getAdapterByEventAndContext(a,c,r,i);return this.onResolveAdapter(i,l),mO({event:a,context:c}),n.createResolver({event:a,context:c,callback:u,log:i,respondWithErrors:o,adapter:l}).run(()=>this.forwardRequestToFramework(t,e,a,c,l,s,i))}}onReceiveRequest(t,e,r,n,s){t.debug("SERVERLESS_ADAPTER:PROXY",()=>({event:O$.default.inspect(e,{depth:null}),context:O$.default.inspect(r,{depth:null}),binarySettings:n,respondWithErrors:s}))}onResolveAdapter(t,e){t.debug("SERVERLESS_ADAPTER:RESOLVED_ADAPTER_NAME: ",e.getAdapterName())}onResolveRequestValues(t,e){t.debug("SERVERLESS_ADAPTER:FORWARD_REQUEST_TO_FRAMEWORK:REQUEST_VALUES",()=>({requestValues:{...e,body:e.body?.toString()}}))}onResolveForwardedResponseToFramework(t,e){t.debug("SERVERLESS_ADAPTER:FORWARD_REQUEST_TO_FRAMEWORK:RESPONSE",()=>({response:e}))}onForwardResponse(t,e,r,n,s){t.debug("SERVERLESS_ADAPTER:FORWARD_RESPONSE:EVENT_SOURCE_RESPONSE_PARAMS",()=>({statusCode:e,body:r,headers:n,isBase64Encoded:s}))}onForwardResponseAdapterResponse(t,e,r){t.debug("SERVERLESS_ADAPTER:FORWARD_RESPONSE:EVENT_SOURCE_RESPONSE",()=>({successResponse:O$.default.inspect(e,{depth:null}),body:r}))}async forwardRequestToFramework(t,e,r,n,s,o,i){let a=s.getRequest(r,n,i);this.onResolveRequestValues(i,a);let[c,u]=this.getServerlessRequestResponseFromAdapterRequest(a);return e.sendRequest(t,c,u),await SO(u),this.onResolveForwardedResponseToFramework(i,u),this.forwardResponse(r,u,s,o,i)}forwardResponse(t,e,r,n,s){let o=e.statusCode,i=Y_.headers(e),a=hO(i,n),c=a?"base64":"utf8",u=Y_.body(e).toString(c),l=a?"[BASE64_ENCODED]":u;this.onForwardResponse(s,o,l,i,a);let d=r.getResponse({event:t,statusCode:o,body:u,headers:i,isBase64Encoded:a,response:e,log:s});return this.onForwardResponseAdapterResponse(s,d,l),d}};var VKe=class{static{Ee(this,"CallbackResolver")}createResolver({callback:t,event:e,log:r,respondWithErrors:n,adapter:s}){if(!t)throw new Error('Could not figure out how to create the resolver because the "callback" argument was not sent.');let o={succeed:Ee(i=>t(null,i),"succeed"),fail:Ee(i=>t(i,null),"fail")};return{run:Ee(i=>{i().then(a=>o.succeed(a)).catch(a=>{r.error("SERVERLESS_ADAPTER:RESPOND_TO_EVENT_SOURCE_WITH_ERROR",a),s.onErrorWhileForwarding({delegatedResolver:o,error:a,log:r,event:e,respondWithErrors:n})})},"run")}}};var asn=class HKe{constructor(e){this.options=e,this.stripPathFn=gp(this.options?.stripBasePath)}static{Ee(this,"AlbAdapter")}stripPathFn;getAdapterName(){return HKe.name}canHandle(e){let r=e;return!!(r?.requestContext&&r.requestContext.elb)}getRequest(e){let r=e.httpMethod,n=this.getPathFromEvent(e),s=e.multiValueHeaders?mp(e.multiValueHeaders,",",!0):e.headers,o;if(e.body){let[a,c]=Hc(e.body,e.isBase64Encoded);o=a,s["content-length"]=String(c)}let i="";return s["x-forwarded-for"]&&(i=s["x-forwarded-for"]),{method:r,headers:s,body:o,remoteAddress:i,path:n}}getResponse({event:e,headers:r,body:n,isBase64Encoded:s,statusCode:o}){let i=e.headers?void 0:J_(r),a=e.headers?mp(r):void 0;return a&&a["transfer-encoding"]==="chunked"&&delete a["transfer-encoding"],i&&i["transfer-encoding"]?.includes("chunked")&&delete i["transfer-encoding"],{statusCode:o,body:n,headers:a,multiValueHeaders:i,isBase64Encoded:s}}onErrorWhileForwarding({error:e,delegatedResolver:r,respondWithErrors:n,event:s,log:o}){let i=n&&e.stack||"",a=this.getResponse({event:s,statusCode:500,body:i,headers:{},isBase64Encoded:!1,log:o});r.succeed(a)}getPathFromEvent(e){let r=this.stripPathFn(e.path),n=e.headers?e.queryStringParameters:e.multiValueQueryStringParameters;return xl(r,n||{})}},zKe=class WKe{constructor(e){this.options=e,this.stripPathFn=gp(this.options?.stripBasePath)}static{Ee(this,"ApiGatewayV1Adapter")}stripPathFn;getAdapterName(){return WKe.name}canHandle(e){let r=e;return!!(r?.requestContext&&r.version!=="2.0"&&r.headers&&r.multiValueHeaders&&(r.queryStringParameters===null&&r.multiValueQueryStringParameters===null||r.queryStringParameters&&r.multiValueQueryStringParameters))}getRequest(e){let r=e.httpMethod,n=this.options?.lowercaseRequestHeaders?fO(e.headers):{...e.headers};for(let a of Object.keys(e.multiValueHeaders||{})){let c=e.multiValueHeaders[a];!c||c?.length<=1||(n[a]=c.join(","))}let s=this.getPathFromEvent(e),o;if(e.body){let[a,c]=Hc(e.body,e.isBase64Encoded);o=a,n["content-length"]=c+""}let i=e.requestContext.identity.sourceIp;return{method:r,headers:n,body:o,remoteAddress:i,path:s}}getResponse({headers:e,body:r,isBase64Encoded:n,statusCode:s,response:o}){let i=J_(e),a=nr(this.options?.throwOnChunkedTransferEncoding,!0);if(i["transfer-encoding"]?.some(c=>c.includes("chunked"))||o?.chunkedEncoding){if(a)throw new Error("chunked encoding in headers is not supported by API Gateway V1");delete i["transfer-encoding"]}return{statusCode:s,body:r,multiValueHeaders:i,isBase64Encoded:n}}onErrorWhileForwarding({error:e,delegatedResolver:r,respondWithErrors:n,event:s,log:o}){let i=n?e.stack:"",a=this.getResponse({event:s,statusCode:500,body:i||"",headers:{},isBase64Encoded:!1,log:o});r.succeed(a)}getPathFromEvent(e){let r=this.stripPathFn(e.path),n=e.multiValueQueryStringParameters||{};if(e.queryStringParameters)for(let s of Object.keys(e.queryStringParameters)){let o=e.queryStringParameters[s];o!==void 0&&(Array.isArray(n[s])||(n[s]=[]),!n[s].includes(o)&&n[s].push(o))}return xl(r,n)}},csn=class KKe{constructor(e){this.options=e,this.stripPathFn=gp(this.options?.stripBasePath)}static{Ee(this,"ApiGatewayV2Adapter")}stripPathFn;getAdapterName(){return KKe.name}canHandle(e){let r=e;return!!(r?.requestContext&&r.version==="2.0")}getRequest(e){let r=e.requestContext.http.method,n=this.getPathFromEvent(e),s={...e.headers};e.cookies&&(s.cookie=e.cookies.join("; "));let o;if(e.body){let[a,c]=Hc(e.body,e.isBase64Encoded);o=a,s["content-length"]=c+""}let i=e.requestContext.http.sourceIp;return{method:r,headers:s,body:o,remoteAddress:i,path:n}}getResponse({headers:e,body:r,isBase64Encoded:n,statusCode:s,response:o}){let{cookies:i,headers:a}=gO(e),c=nr(this.options?.throwOnChunkedTransferEncoding,!0),u=a["transfer-encoding"];if(u&&u.includes("chunked")||o?.chunkedEncoding){if(c)throw new Error("chunked encoding in headers is not supported by API Gateway V2");delete a["transfer-encoding"]}return{statusCode:s,body:r,headers:a,isBase64Encoded:n,cookies:i}}onErrorWhileForwarding({error:e,delegatedResolver:r,respondWithErrors:n,event:s,log:o}){let i=n?e.stack:"",a=this.getResponse({event:s,statusCode:500,body:i||"",headers:{},isBase64Encoded:!1,log:o});r.succeed(a)}getPathFromEvent(e){let r=this.stripPathFn(e.rawPath),n=e.rawQueryString;return xl(r,n||{})}},qv=class{constructor(t){this.options=t}static{Ee(this,"AwsSimpleAdapter")}getAdapterName(){throw new Error("not implemented.")}canHandle(t){throw new Error("not implemented.")}getRequest(t){let e=this.options.forwardPath,r=this.options.forwardMethod,[n,s]=Hc(JSON.stringify(t),!1),o={host:this.options.host,"content-type":"application/json","content-length":String(s)};return{method:r,headers:o,body:n,path:e}}getResponse({body:t,headers:e,isBase64Encoded:r,event:n,statusCode:s}){if(this.hasInvalidStatusCode(s))throw new Error(JSON.stringify({body:t,headers:e,isBase64Encoded:r,event:n,statusCode:s}));if(!this.options.batch)return pO;if(r)throw new Error("SERVERLESS_ADAPTER: The response could not be base64 encoded when you set batch: true, the response should be a JSON.");return t?JSON.parse(t):pO}onErrorWhileForwarding({error:t,delegatedResolver:e}){e.fail(t)}hasInvalidStatusCode(t){return t<200||t>=400}},usn=class QKe extends qv{static{Ee(this,"DynamoDBAdapter")}constructor(e){super({forwardPath:nr(e?.dynamoDBForwardPath,"/dynamo"),forwardMethod:nr(e?.dynamoDBForwardMethod,"POST"),batch:e?.batch,host:"dynamodb.amazonaws.com"})}getAdapterName(){return QKe.name}canHandle(e){let r=e;return Array.isArray(r?.Records)?r.Records[0]?.eventSource==="aws:dynamodb":!1}},lsn=class XKe extends qv{static{Ee(this,"EventBridgeAdapter")}constructor(e){super({forwardPath:nr(e?.eventBridgeForwardPath,"/eventbridge"),forwardMethod:nr(e?.eventBridgeForwardMethod,"POST"),batch:!1,host:"events.amazonaws.com"})}getAdapterName(){return XKe.name}canHandle(e){let r=e;return!!(r&&r.version&&r.version==="0"&&r.id&&r["detail-type"]&&r.source&&r.account&&r.time&&r.region&&r.resources&&Array.isArray(r.resources)&&r.detail&&typeof r.detail=="object"&&!Array.isArray(r.detail))}},JKe=["Connection","Expect","Keep-Alive","Proxy-Authenticate","Proxy-Authorization","Proxy-Connection","Trailer","Upgrade","X-Accel-Buffering","X-Accel-Charset","X-Accel-Limit-Rate","X-Accel-Redirect",/(X-Amz-Cf-)(.*)/gim,"X-Cache",/(X-Edge-)(.*)/gim,"X-Forwarded-Proto","X-Real-IP"],YKe=1024*40,ZKe=1024*1024,dsn=class e6e{constructor(e){this.options=e;let r=nr(this.options?.disallowedHeaders,JKe);this.cachedDisallowedHeaders=r.map(n=>n instanceof RegExp?n:new RegExp(`(${n})`,"gim"))}static{Ee(this,"LambdaEdgeAdapter")}cachedDisallowedHeaders;getAdapterName(){return e6e.name}canHandle(e){let r=e;if(!Array.isArray(r?.Records))return!1;let n=r.Records[0]?.cf?.config?.eventType;return["origin-response","origin-request","viewer-response","viewer-request"].includes(n)}getRequest(e){let r=e.Records[0],n=r.cf.request,s=n.method,o=this.options?.getPathFromEvent?this.options.getPathFromEvent(r):void 0,i=xl(n.uri,n.querystring),a=nr(o,i),c=n.clientIp,u=this.getFlattenedHeadersFromCloudfrontRequest(n),l;if(n.body){let[p,g]=Hc(JSON.stringify(n.body),!1);l=p,u["content-length"]=g.toString()}let{host:d}=u;return{method:s,path:a,headers:u,body:l,remoteAddress:c,host:d,hostname:d}}getResponse(e){let r=this.getResponseToLambdaEdge(e),n=new TextEncoder().encode(JSON.stringify(r)).length,s=this.isEventTypeOrigin(e.event.Records[0].cf.config)?nr(this.options?.originMaxResponseSizeInBytes,ZKe):nr(this.options?.viewerMaxResponseSizeInBytes,YKe);return n<=s||(this.options?.onResponseSizeExceedLimit?this.options.onResponseSizeExceedLimit(r):e.log.error(`SERVERLESS_ADAPTER:LAMBDA_EDGE_ADAPTER: Max response size exceeded: ${n} of the max of ${s}.`)),r}onErrorWhileForwarding({error:e,delegatedResolver:r}){r.fail(e)}getFlattenedHeadersFromCloudfrontRequest(e){return Object.keys(e.headers).reduce((r,n)=>{let s=e.headers[n];return r[n]=s.map(o=>o.value).join(","),r},{})}getResponseToLambdaEdge({body:e,headers:r}){let n=nr(this.options?.shouldUseHeadersFromFramework,!1),s=JSON.parse(e);return s.headers&&(s.headers=Object.keys(s.headers).reduce((o,i)=>(this.shouldStripHeader(i)||(o[i]=s.headers[i]),o),{})),n&&(s.headers=this.getHeadersForCloudfrontResponse(r)),s}getHeadersForCloudfrontResponse(e){return Object.keys(e).reduce((r,n)=>{if(this.shouldStripHeader(n))return r;r[n]||(r[n]=[]);let s=e[n];if(!Array.isArray(s))return r[n].push({key:n,value:s||""}),r;let o=s.map(i=>({key:n,value:i}));return r[n].push(...o),r},{})}shouldStripHeader(e){if(this.options?.shouldStripHeader)return this.options.shouldStripHeader(e);let r=e.toLowerCase();for(let n of this.cachedDisallowedHeaders)if(n.test(r))return!0;return!1}isEventTypeOrigin(e){return e.eventType.includes("origin")}},psn=class t6e extends qv{static{Ee(this,"S3Adapter")}constructor(e){super({forwardPath:nr(e?.s3ForwardPath,"/s3"),forwardMethod:nr(e?.s3ForwardMethod,"POST"),batch:!1,host:"s3.amazonaws.com"})}getAdapterName(){return t6e.name}canHandle(e){let r=e;return Array.isArray(r?.Records)?r.Records[0]?.eventSource==="aws:s3":!1}},msn=class r6e extends qv{static{Ee(this,"SNSAdapter")}constructor(e){super({forwardPath:nr(e?.snsForwardPath,"/sns"),forwardMethod:nr(e?.snsForwardMethod,"POST"),batch:!1,host:"sns.amazonaws.com"})}getAdapterName(){return r6e.name}canHandle(e){let r=e;return Array.isArray(r?.Records)?r.Records[0]?.EventSource==="aws:sns":!1}},gsn=class n6e extends qv{static{Ee(this,"SQSAdapter")}constructor(e){super({forwardPath:nr(e?.sqsForwardPath,"/sqs"),forwardMethod:nr(e?.sqsForwardMethod,"POST"),batch:e?.batch,host:"sqs.amazonaws.com"})}getAdapterName(){return n6e.name}canHandle(e){let r=e;return Array.isArray(r?.Records)?r.Records[0]?.eventSource==="aws:sqs":!1}},fsn=class s6e{constructor(e){this.options=e,this.stripPathFn=gp(this.options?.stripBasePath);let r=nr(this.options?.disallowedHeaders,JKe);this.cachedDisallowedHeaders=r.map(n=>n instanceof RegExp?n:new RegExp(`(${n})`,"gim"))}static{Ee(this,"RequestLambdaEdgeAdapter")}stripPathFn;cachedDisallowedHeaders;getAdapterName(){return s6e.name}canHandle(e){let r=e;if(!Array.isArray(r?.Records))return!1;let n=r.Records[0]?.cf?.config?.eventType;return n==="viewer-request"||n==="origin-request"}getRequest(e){let r=e.Records[0].cf.request,n=r.method,s=this.stripPathFn(xl(r.uri,r.querystring)),o=r.clientIp,i=this.getFlattenedHeadersFromCloudfrontRequest(r),a;if(r.body){let[u,l]=Hc(r.body.data,r.body.encoding==="base64");a=u,i["content-length"]=l.toString()}let{host:c}=i;return{method:n,path:s,headers:i,body:a,remoteAddress:o,host:c,hostname:c}}getResponse({body:e,headers:r,isBase64Encoded:n,statusCode:s,log:o,event:i}){let a=this.getHeadersForCloudfrontResponse(r),c=i.Records[0].cf.config.eventType==="origin-request"?nr(this.options?.originMaxResponseSizeInBytes,ZKe):nr(this.options?.viewerMaxResponseSizeInBytes,YKe),u={body:e,status:s.toString(),bodyEncoding:n?"base64":"text",headers:a},l=e.length;return l<=c||(this.options?.onResponseSizeExceedLimit?this.options.onResponseSizeExceedLimit(u):o.error(`SERVERLESS_ADAPTER:LAMBDA_EDGE_ADAPTER: Max response size exceeded: ${l} of the max of ${c}.`)),u}onErrorWhileForwarding({error:e,delegatedResolver:r,respondWithErrors:n,log:s,event:o}){let i=n?e.stack:"",a=this.getResponse({event:o,statusCode:500,body:i||"",headers:{},isBase64Encoded:!1,log:s});r.succeed(a)}getFlattenedHeadersFromCloudfrontRequest(e){return Object.keys(e.headers).reduce((r,n)=>{let s=e.headers[n];return s.length===1?r[n]=s[0].value:r[n]=s.map(o=>o.value).join(","),r},{})}getHeadersForCloudfrontResponse(e){return Object.keys(e).reduce((r,n)=>{if(this.shouldStripHeader(n))return r;let s=n.toLowerCase();r[s]||(r[s]=[]);let o=e[n];if(!Array.isArray(o))return r[s].push({key:n,value:o||""}),r;let i=o.map(a=>({key:n,value:a}));return r[s].push(...i),r},{})}shouldStripHeader(e){if(this.options?.shouldStripHeader)return this.options.shouldStripHeader(e);let r=e.toLowerCase();for(let n of this.cachedDisallowedHeaders)if(n.test(r))return!0;return!1}};var o6e=class{static{Ee(this,"ExpressFramework")}sendRequest(t,e,r){t(e,r)}};var i6e="content-type",mJ="x-original-content-type",a6e=(t,e)=>{if(!t)return t;let r=e.headers?.["x-correlation-id"],n=mp(t.multiValueHeaders||{},",",!0);n.date=new Date().toUTCString(),delete t.multiValueHeaders,r&&(n["x-correlation-id"]=r);let s=n[mJ];return s&&(n[i6e]=s,delete n[mJ]),{...t,headers:n}},N3r=t=>(e,r,n)=>{let s=IPe.new(t).setFramework(new o6e).setHandler(new pJ).setResolver(new VKe).addAdapter(new zKe({lowercaseRequestHeaders:!0,throwOnChunkedTransferEncoding:!1})).build();return r.callbackWaitsForEmptyEventLoop=!1,s(e,r,(i,a)=>n(i,a6e(a,e)))},c6e=jKe(),L3r=c6e,M3r=N3r(c6e);0&&(module.exports={CONTENT_TYPE,X_ORIGINAL_CONTENT_TYPE,app,get,processLambdaResponse}); -/*! Bundled license information: - -express/lib/view.js: - (*! - * express - * Copyright(c) 2009-2013 TJ Holowaychuk - * Copyright(c) 2013 Roman Shtylman - * Copyright(c) 2014-2015 Douglas Christopher Wilson - * MIT Licensed - *) - -express/lib/utils.js: - (*! - * express - * Copyright(c) 2009-2013 TJ Holowaychuk - * Copyright(c) 2014-2015 Douglas Christopher Wilson - * MIT Licensed - *) - -express/lib/application.js: - (*! - * express - * Copyright(c) 2009-2013 TJ Holowaychuk - * Copyright(c) 2013 Roman Shtylman - * Copyright(c) 2014-2015 Douglas Christopher Wilson - * MIT Licensed - *) - -express/lib/request.js: - (*! - * express - * Copyright(c) 2009-2013 TJ Holowaychuk - * Copyright(c) 2013 Roman Shtylman - * Copyright(c) 2014-2015 Douglas Christopher Wilson - * MIT Licensed - *) - -express/lib/response.js: - (*! - * express - * Copyright(c) 2009-2013 TJ Holowaychuk - * Copyright(c) 2014-2015 Douglas Christopher Wilson - * MIT Licensed - *) - -express/lib/express.js: - (*! - * express - * Copyright(c) 2009-2013 TJ Holowaychuk - * Copyright(c) 2013 Roman Shtylman - * Copyright(c) 2014-2015 Douglas Christopher Wilson - * MIT Licensed - *) - -express/index.js: - (*! - * express - * Copyright(c) 2009-2013 TJ Holowaychuk - * Copyright(c) 2013 Roman Shtylman - * Copyright(c) 2014-2015 Douglas Christopher Wilson - * MIT Licensed - *) - -negotiator/index.js: - (*! - * negotiator - * Copyright(c) 2012 Federico Romero - * Copyright(c) 2012-2014 Isaac Z. Schlueter - * Copyright(c) 2015 Douglas Christopher Wilson - * MIT Licensed - *) - -compressible/index.js: - (*! - * compressible - * Copyright(c) 2013 Jonathan Ong - * Copyright(c) 2014 Jeremiah Senkpiel - * Copyright(c) 2015 Douglas Christopher Wilson - * MIT Licensed - *) -*/ -//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2V4cHJlc3MvbGliL3ZpZXcuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2V4cHJlc3MvbGliL3V0aWxzLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9leHByZXNzL2xpYi9hcHBsaWNhdGlvbi5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZXhwcmVzcy9saWIvcmVxdWVzdC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZXhwcmVzcy9saWIvcmVzcG9uc2UuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2V4cHJlc3MvbGliL2V4cHJlc3MuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2V4cHJlc3MvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2V4cHJlc3MtYmFzaWMtYXV0aC9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9hY2NvdW50LWlkLWVuZHBvaW50L0FjY291bnRJZEVuZHBvaW50TW9kZUNvbnN0YW50cy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9hY2NvdW50LWlkLWVuZHBvaW50L0FjY291bnRJZEVuZHBvaW50TW9kZUNvbmZpZ1Jlc29sdmVyLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2FjY291bnQtaWQtZW5kcG9pbnQvTm9kZUFjY291bnRJZEVuZHBvaW50TW9kZUNvbmZpZ09wdGlvbnMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvYWNjb3VudC1pZC1lbmRwb2ludC9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvZW5kcG9pbnQtY2FjaGUvZGlzdC1janMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL21pZGRsZXdhcmUtZW5kcG9pbnQtZGlzY292ZXJ5L2Rpc3QtY2pzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL21pZGRsZXdhcmUtaG9zdC1oZWFkZXIvZGlzdC1janMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbWlkZGxld2FyZS1sb2dnZXIvZGlzdC1janMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbWlkZGxld2FyZS1yZWN1cnNpb24tZGV0ZWN0aW9uL2Rpc3QtY2pzL3JlY3Vyc2lvbkRldGVjdGlvbk1pZGRsZXdhcmUuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbWlkZGxld2FyZS1yZWN1cnNpb24tZGV0ZWN0aW9uL2Rpc3QtY2pzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL21pZGRsZXdhcmUtdXNlci1hZ2VudC9ub2RlX21vZHVsZXMvQGF3cy1zZGsvdXRpbC1lbmRwb2ludHMvZGlzdC1janMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvY2xpZW50L2VtaXRXYXJuaW5nSWZVbnN1cHBvcnRlZFZlcnNpb24uanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvY2xpZW50L3NldENyZWRlbnRpYWxGZWF0dXJlLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2NsaWVudC9zZXRGZWF0dXJlLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2NsaWVudC9zZXRUb2tlbkZlYXR1cmUuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvY2xpZW50L2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2h0dHBBdXRoU2NoZW1lcy91dGlscy9nZXREYXRlSGVhZGVyLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2h0dHBBdXRoU2NoZW1lcy91dGlscy9nZXRTa2V3Q29ycmVjdGVkRGF0ZS5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9odHRwQXV0aFNjaGVtZXMvdXRpbHMvaXNDbG9ja1NrZXdlZC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9odHRwQXV0aFNjaGVtZXMvdXRpbHMvZ2V0VXBkYXRlZFN5c3RlbUNsb2NrT2Zmc2V0LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2h0dHBBdXRoU2NoZW1lcy91dGlscy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9odHRwQXV0aFNjaGVtZXMvYXdzX3Nkay9Bd3NTZGtTaWdWNFNpZ25lci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9odHRwQXV0aFNjaGVtZXMvYXdzX3Nkay9Bd3NTZGtTaWdWNEFTaWduZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvaHR0cEF1dGhTY2hlbWVzL3V0aWxzL2dldEFycmF5Rm9yQ29tbWFTZXBhcmF0ZWRTdHJpbmcuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvaHR0cEF1dGhTY2hlbWVzL3V0aWxzL2dldEJlYXJlclRva2VuRW52S2V5LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2h0dHBBdXRoU2NoZW1lcy9hd3Nfc2RrL05PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9PUFRJT05TLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2h0dHBBdXRoU2NoZW1lcy9hd3Nfc2RrL3Jlc29sdmVBd3NTZGtTaWdWNEFDb25maWcuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvaHR0cEF1dGhTY2hlbWVzL2F3c19zZGsvcmVzb2x2ZUF3c1Nka1NpZ1Y0Q29uZmlnLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2h0dHBBdXRoU2NoZW1lcy9hd3Nfc2RrL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2h0dHBBdXRoU2NoZW1lcy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvUHJvdG9jb2xMaWIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL2Nib3IvQXdzU21pdGh5UnBjVjJDYm9yUHJvdG9jb2wuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL2NvZXJjaW5nLXNlcmlhbGl6ZXJzLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9Db25maWd1cmFibGVTZXJkZUNvbnRleHQuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL1VuaW9uU2VyZGUuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL2pzb24vanNvblJldml2ZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL2NvbW1vbi5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvanNvbi9wYXJzZUpzb25Cb2R5LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9qc29uL0pzb25TaGFwZURlc2VyaWFsaXplci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvanNvbi9qc29uUmVwbGFjZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL2pzb24vSnNvblNoYXBlU2VyaWFsaXplci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvanNvbi9Kc29uQ29kZWMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL2pzb24vQXdzSnNvblJwY1Byb3RvY29sLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9qc29uL0F3c0pzb24xXzBQcm90b2NvbC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvanNvbi9Bd3NKc29uMV8xUHJvdG9jb2wuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL2pzb24vQXdzUmVzdEpzb25Qcm90b2NvbC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvanNvbi9hd3NFeHBlY3RVbmlvbi5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay94bWwtYnVpbGRlci9kaXN0LWNqcy94bWwtcGFyc2VyLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL3htbC1idWlsZGVyL2Rpc3QtY2pzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy94bWwvWG1sU2hhcGVEZXNlcmlhbGl6ZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL3F1ZXJ5L1F1ZXJ5U2hhcGVTZXJpYWxpemVyLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9xdWVyeS9Bd3NRdWVyeVByb3RvY29sLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9xdWVyeS9Bd3NFYzJRdWVyeVByb3RvY29sLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy94bWwvcGFyc2VYbWxCb2R5LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy94bWwvWG1sU2hhcGVTZXJpYWxpemVyLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy94bWwvWG1sQ29kZWMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL3htbC9Bd3NSZXN0WG1sUHJvdG9jb2wuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9taWRkbGV3YXJlLXVzZXItYWdlbnQvZGlzdC1janMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9kaXN0LWNqcy9hdXRoL2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9wYWNrYWdlLmpzb24iLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1lbnYvZGlzdC1janMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1odHRwL2Rpc3QtY2pzL2Zyb21IdHRwL2NoZWNrVXJsLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItaHR0cC9kaXN0LWNqcy9mcm9tSHR0cC9yZXF1ZXN0SGVscGVycy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLWh0dHAvZGlzdC1janMvZnJvbUh0dHAvcmV0cnktd3JhcHBlci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLWh0dHAvZGlzdC1janMvZnJvbUh0dHAvZnJvbUh0dHAuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1odHRwL2Rpc3QtY2pzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zc28tb2lkYy9hdXRoL2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3Nzby1vaWRjL2VuZHBvaW50L0VuZHBvaW50UGFyYW1ldGVycy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9wYWNrYWdlLmpzb24iLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvdXRpbC11c2VyLWFnZW50LW5vZGUvZGlzdC1janMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL3V0aWwtZW5kcG9pbnRzL2Rpc3QtY2pzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zc28tb2lkYy9lbmRwb2ludC9ydWxlc2V0LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zc28tb2lkYy9lbmRwb2ludC9lbmRwb2ludFJlc29sdmVyLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zc28tb2lkYy9tb2RlbHMvU1NPT0lEQ1NlcnZpY2VFeGNlcHRpb24uanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3Nzby1vaWRjL21vZGVscy9lcnJvcnMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3Nzby1vaWRjL3NjaGVtYXMvc2NoZW1hc18wLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zc28tb2lkYy9ydW50aW1lQ29uZmlnLnNoYXJlZC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3NvLW9pZGMvcnVudGltZUNvbmZpZy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9yZWdpb24tY29uZmlnLXJlc29sdmVyL2Rpc3QtY2pzL3JlZ2lvbkNvbmZpZy9zdHNSZWdpb25EZWZhdWx0UmVzb2x2ZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvcmVnaW9uLWNvbmZpZy1yZXNvbHZlci9kaXN0LWNqcy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3NvLW9pZGMvYXV0aC9odHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24uanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3Nzby1vaWRjL3J1bnRpbWVFeHRlbnNpb25zLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zc28tb2lkYy9TU09PSURDQ2xpZW50LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zc28tb2lkYy9jb21tYW5kcy9DcmVhdGVUb2tlbkNvbW1hbmQuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3Nzby1vaWRjL1NTT09JREMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3Nzby1vaWRjL2NvbW1hbmRzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zc28tb2lkYy9tb2RlbHMvZW51bXMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3Nzby1vaWRjL21vZGVscy9tb2RlbHNfMC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3NvLW9pZGMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvdG9rZW4tcHJvdmlkZXJzL2Rpc3QtY2pzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zc28vZGlzdC1janMvYXV0aC9odHRwQXV0aFNjaGVtZVByb3ZpZGVyLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zc28vcGFja2FnZS5qc29uIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zc28vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL3V0aWwtZW5kcG9pbnRzL2Rpc3QtY2pzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zc28vZGlzdC1janMvZW5kcG9pbnQvcnVsZXNldC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtc3NvL2Rpc3QtY2pzL2VuZHBvaW50L2VuZHBvaW50UmVzb2x2ZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNzby9kaXN0LWNqcy9tb2RlbHMvU1NPU2VydmljZUV4Y2VwdGlvbi5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtc3NvL2Rpc3QtY2pzL21vZGVscy9lcnJvcnMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNzby9kaXN0LWNqcy9zY2hlbWFzL3NjaGVtYXNfMC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtc3NvL2Rpc3QtY2pzL3J1bnRpbWVDb25maWcuc2hhcmVkLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zc28vZGlzdC1janMvcnVudGltZUNvbmZpZy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtc3NvL2Rpc3QtY2pzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItc3NvL2Rpc3QtY2pzL2xvYWRTc28tQnc3VlN2bE8uanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1zc28vZGlzdC1janMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3NpZ25pbi9hdXRoL2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3NpZ25pbi9lbmRwb2ludC9FbmRwb2ludFBhcmFtZXRlcnMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3NpZ25pbi9lbmRwb2ludC9ydWxlc2V0LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zaWduaW4vZW5kcG9pbnQvZW5kcG9pbnRSZXNvbHZlci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc2lnbmluL21vZGVscy9TaWduaW5TZXJ2aWNlRXhjZXB0aW9uLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zaWduaW4vbW9kZWxzL2Vycm9ycy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc2lnbmluL3NjaGVtYXMvc2NoZW1hc18wLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zaWduaW4vcnVudGltZUNvbmZpZy5zaGFyZWQuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3NpZ25pbi9ydW50aW1lQ29uZmlnLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zaWduaW4vYXV0aC9odHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24uanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3NpZ25pbi9ydW50aW1lRXh0ZW5zaW9ucy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc2lnbmluL1NpZ25pbkNsaWVudC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc2lnbmluL2NvbW1hbmRzL0NyZWF0ZU9BdXRoMlRva2VuQ29tbWFuZC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc2lnbmluL1NpZ25pbi5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc2lnbmluL2NvbW1hbmRzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zaWduaW4vbW9kZWxzL2VudW1zLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zaWduaW4vbW9kZWxzL21vZGVsc18wLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zaWduaW4vaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1sb2dpbi9kaXN0LWNqcy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3RzL2F1dGgvaHR0cEF1dGhTY2hlbWVQcm92aWRlci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3RzL2VuZHBvaW50L0VuZHBvaW50UGFyYW1ldGVycy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3RzL2VuZHBvaW50L3J1bGVzZXQuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3N0cy9lbmRwb2ludC9lbmRwb2ludFJlc29sdmVyLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zdHMvbW9kZWxzL1NUU1NlcnZpY2VFeGNlcHRpb24uanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3N0cy9tb2RlbHMvZXJyb3JzLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zdHMvc2NoZW1hcy9zY2hlbWFzXzAuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3N0cy9ydW50aW1lQ29uZmlnLnNoYXJlZC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3RzL3J1bnRpbWVDb25maWcuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3N0cy9hdXRoL2h0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbi5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3RzL3J1bnRpbWVFeHRlbnNpb25zLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zdHMvU1RTQ2xpZW50LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zdHMvY29tbWFuZHMvQXNzdW1lUm9sZUNvbW1hbmQuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3N0cy9jb21tYW5kcy9Bc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5Q29tbWFuZC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3RzL1NUUy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3RzL2NvbW1hbmRzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zdHMvbW9kZWxzL21vZGVsc18wLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zdHMvZGVmYXVsdFN0c1JvbGVBc3N1bWVycy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3RzL2RlZmF1bHRSb2xlQXNzdW1lcnMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3N0cy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLXByb2Nlc3MvZGlzdC1janMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci13ZWItaWRlbnRpdHkvZGlzdC1janMvZnJvbVdlYlRva2VuLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItd2ViLWlkZW50aXR5L2Rpc3QtY2pzL2Zyb21Ub2tlbkZpbGUuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci13ZWItaWRlbnRpdHkvZGlzdC1janMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1pbmkvZGlzdC1janMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlL2Rpc3QtY2pzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9keW5hbW9kYi1jb2RlYy9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL1Byb3RvY29sTGliLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9keW5hbW9kYi1jb2RlYy9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL2Nib3IvQXdzU21pdGh5UnBjVjJDYm9yUHJvdG9jb2wuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2R5bmFtb2RiLWNvZGVjL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvY29lcmNpbmctc2VyaWFsaXplcnMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2R5bmFtb2RiLWNvZGVjL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvQ29uZmlndXJhYmxlU2VyZGVDb250ZXh0LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9keW5hbW9kYi1jb2RlYy9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL1VuaW9uU2VyZGUuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2R5bmFtb2RiLWNvZGVjL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvanNvbi9qc29uUmV2aXZlci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvZHluYW1vZGItY29kZWMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9jb21tb24uanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2R5bmFtb2RiLWNvZGVjL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvanNvbi9wYXJzZUpzb25Cb2R5LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9keW5hbW9kYi1jb2RlYy9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL2pzb24vSnNvblNoYXBlRGVzZXJpYWxpemVyLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9keW5hbW9kYi1jb2RlYy9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL2pzb24vanNvblJlcGxhY2VyLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9keW5hbW9kYi1jb2RlYy9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL2pzb24vSnNvblNoYXBlU2VyaWFsaXplci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvZHluYW1vZGItY29kZWMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9qc29uL0pzb25Db2RlYy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvZHluYW1vZGItY29kZWMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9qc29uL0F3c0pzb25ScGNQcm90b2NvbC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvZHluYW1vZGItY29kZWMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9qc29uL0F3c0pzb24xXzBQcm90b2NvbC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvZHluYW1vZGItY29kZWMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9qc29uL0F3c0pzb24xXzFQcm90b2NvbC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvZHluYW1vZGItY29kZWMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9qc29uL0F3c1Jlc3RKc29uUHJvdG9jb2wuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2R5bmFtb2RiLWNvZGVjL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvanNvbi9hd3NFeHBlY3RVbmlvbi5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvZHluYW1vZGItY29kZWMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL3htbC1idWlsZGVyL2Rpc3QtY2pzL3htbC1wYXJzZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2R5bmFtb2RiLWNvZGVjL25vZGVfbW9kdWxlcy9AYXdzLXNkay94bWwtYnVpbGRlci9kaXN0LWNqcy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvZHluYW1vZGItY29kZWMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy94bWwvWG1sU2hhcGVEZXNlcmlhbGl6ZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2R5bmFtb2RiLWNvZGVjL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvcXVlcnkvUXVlcnlTaGFwZVNlcmlhbGl6ZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2R5bmFtb2RiLWNvZGVjL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvcXVlcnkvQXdzUXVlcnlQcm90b2NvbC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvZHluYW1vZGItY29kZWMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9xdWVyeS9Bd3NFYzJRdWVyeVByb3RvY29sLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9keW5hbW9kYi1jb2RlYy9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL3htbC9wYXJzZVhtbEJvZHkuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2R5bmFtb2RiLWNvZGVjL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMveG1sL1htbFNoYXBlU2VyaWFsaXplci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvZHluYW1vZGItY29kZWMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy94bWwvWG1sQ29kZWMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2R5bmFtb2RiLWNvZGVjL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMveG1sL0F3c1Jlc3RYbWxQcm90b2NvbC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvZHluYW1vZGItY29kZWMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvZHluYW1vZGItY29kZWMvZGlzdC1janMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvdXRpbC1lbmRwb2ludHMvZGlzdC1janMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYi9kaXN0LWNqcy9lbmRwb2ludC9ydWxlc2V0LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvZGlzdC1janMvZW5kcG9pbnQvZW5kcG9pbnRSZXNvbHZlci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL2Rpc3QtY2pzL3J1bnRpbWVDb25maWcuc2hhcmVkLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtZHluYW1vZGIvZGlzdC1janMvcnVudGltZUNvbmZpZy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiL2Rpc3QtY2pzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9saWItZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2NsaWVudC9lbWl0V2FybmluZ0lmVW5zdXBwb3J0ZWRWZXJzaW9uLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9saWItZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2NsaWVudC9zZXRDcmVkZW50aWFsRmVhdHVyZS5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbGliLWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9jbGllbnQvc2V0RmVhdHVyZS5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbGliLWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9jbGllbnQvc2V0VG9rZW5GZWF0dXJlLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9saWItZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2NsaWVudC9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbGliLWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9odHRwQXV0aFNjaGVtZXMvdXRpbHMvZ2V0RGF0ZUhlYWRlci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbGliLWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9odHRwQXV0aFNjaGVtZXMvdXRpbHMvZ2V0U2tld0NvcnJlY3RlZERhdGUuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2xpYi1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvaHR0cEF1dGhTY2hlbWVzL3V0aWxzL2lzQ2xvY2tTa2V3ZWQuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2xpYi1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvaHR0cEF1dGhTY2hlbWVzL3V0aWxzL2dldFVwZGF0ZWRTeXN0ZW1DbG9ja09mZnNldC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbGliLWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9odHRwQXV0aFNjaGVtZXMvdXRpbHMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2xpYi1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvaHR0cEF1dGhTY2hlbWVzL2F3c19zZGsvQXdzU2RrU2lnVjRTaWduZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2xpYi1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvaHR0cEF1dGhTY2hlbWVzL2F3c19zZGsvQXdzU2RrU2lnVjRBU2lnbmVyLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9saWItZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2h0dHBBdXRoU2NoZW1lcy91dGlscy9nZXRBcnJheUZvckNvbW1hU2VwYXJhdGVkU3RyaW5nLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9saWItZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2h0dHBBdXRoU2NoZW1lcy91dGlscy9nZXRCZWFyZXJUb2tlbkVudktleS5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbGliLWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9odHRwQXV0aFNjaGVtZXMvYXdzX3Nkay9OT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfT1BUSU9OUy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbGliLWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9odHRwQXV0aFNjaGVtZXMvYXdzX3Nkay9yZXNvbHZlQXdzU2RrU2lnVjRBQ29uZmlnLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9saWItZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2h0dHBBdXRoU2NoZW1lcy9hd3Nfc2RrL3Jlc29sdmVBd3NTZGtTaWdWNENvbmZpZy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbGliLWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9odHRwQXV0aFNjaGVtZXMvYXdzX3Nkay9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbGliLWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9odHRwQXV0aFNjaGVtZXMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2xpYi1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL1Byb3RvY29sTGliLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9saWItZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9jYm9yL0F3c1NtaXRoeVJwY1YyQ2JvclByb3RvY29sLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9saWItZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9jb2VyY2luZy1zZXJpYWxpemVycy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbGliLWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvQ29uZmlndXJhYmxlU2VyZGVDb250ZXh0LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9saWItZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9VbmlvblNlcmRlLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9saWItZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9qc29uL2pzb25SZXZpdmVyLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9saWItZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9jb21tb24uanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2xpYi1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL2pzb24vcGFyc2VKc29uQm9keS5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbGliLWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvanNvbi9Kc29uU2hhcGVEZXNlcmlhbGl6ZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2xpYi1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL2pzb24vanNvblJlcGxhY2VyLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9saWItZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9qc29uL0pzb25TaGFwZVNlcmlhbGl6ZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2xpYi1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL2pzb24vSnNvbkNvZGVjLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9saWItZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9qc29uL0F3c0pzb25ScGNQcm90b2NvbC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbGliLWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvanNvbi9Bd3NKc29uMV8wUHJvdG9jb2wuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2xpYi1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL2pzb24vQXdzSnNvbjFfMVByb3RvY29sLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9saWItZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9qc29uL0F3c1Jlc3RKc29uUHJvdG9jb2wuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2xpYi1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL2pzb24vYXdzRXhwZWN0VW5pb24uanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2xpYi1keW5hbW9kYi9ub2RlX21vZHVsZXMvQGF3cy1zZGsveG1sLWJ1aWxkZXIvZGlzdC1janMveG1sLXBhcnNlci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbGliLWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay94bWwtYnVpbGRlci9kaXN0LWNqcy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbGliLWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMveG1sL1htbFNoYXBlRGVzZXJpYWxpemVyLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9saWItZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9xdWVyeS9RdWVyeVNoYXBlU2VyaWFsaXplci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbGliLWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvcXVlcnkvQXdzUXVlcnlQcm90b2NvbC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbGliLWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvcXVlcnkvQXdzRWMyUXVlcnlQcm90b2NvbC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbGliLWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMveG1sL3BhcnNlWG1sQm9keS5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbGliLWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMveG1sL1htbFNoYXBlU2VyaWFsaXplci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbGliLWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMveG1sL1htbENvZGVjLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9saWItZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy94bWwvQXdzUmVzdFhtbFByb3RvY29sLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9saWItZHluYW1vZGIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbGliLWR5bmFtb2RiL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL3V0aWwtZHluYW1vZGIvZGlzdC1janMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2xpYi1keW5hbW9kYi9kaXN0LWNqcy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbWlkZGxld2FyZS1ob3N0LWhlYWRlci9kaXN0LWNqcy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbWlkZGxld2FyZS1sb2dnZXIvZGlzdC1janMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL21pZGRsZXdhcmUtcmVjdXJzaW9uLWRldGVjdGlvbi9kaXN0LWNqcy9yZWN1cnNpb25EZXRlY3Rpb25NaWRkbGV3YXJlLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9taWRkbGV3YXJlLXJlY3Vyc2lvbi1kZXRlY3Rpb24vZGlzdC1janMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL3V0aWwtZW5kcG9pbnRzL2Rpc3QtY2pzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9jbGllbnQvZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbi5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvY2xpZW50L3NldENyZWRlbnRpYWxGZWF0dXJlLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9jbGllbnQvc2V0RmVhdHVyZS5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvY2xpZW50L3NldFRva2VuRmVhdHVyZS5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvY2xpZW50L2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9odHRwQXV0aFNjaGVtZXMvdXRpbHMvZ2V0RGF0ZUhlYWRlci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvaHR0cEF1dGhTY2hlbWVzL3V0aWxzL2dldFNrZXdDb3JyZWN0ZWREYXRlLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9odHRwQXV0aFNjaGVtZXMvdXRpbHMvaXNDbG9ja1NrZXdlZC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvaHR0cEF1dGhTY2hlbWVzL3V0aWxzL2dldFVwZGF0ZWRTeXN0ZW1DbG9ja09mZnNldC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvaHR0cEF1dGhTY2hlbWVzL3V0aWxzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9odHRwQXV0aFNjaGVtZXMvYXdzX3Nkay9Bd3NTZGtTaWdWNFNpZ25lci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvaHR0cEF1dGhTY2hlbWVzL2F3c19zZGsvQXdzU2RrU2lnVjRBU2lnbmVyLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9odHRwQXV0aFNjaGVtZXMvdXRpbHMvZ2V0QXJyYXlGb3JDb21tYVNlcGFyYXRlZFN0cmluZy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvaHR0cEF1dGhTY2hlbWVzL3V0aWxzL2dldEJlYXJlclRva2VuRW52S2V5LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9odHRwQXV0aFNjaGVtZXMvYXdzX3Nkay9OT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfT1BUSU9OUy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvaHR0cEF1dGhTY2hlbWVzL2F3c19zZGsvcmVzb2x2ZUF3c1Nka1NpZ1Y0QUNvbmZpZy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvaHR0cEF1dGhTY2hlbWVzL2F3c19zZGsvcmVzb2x2ZUF3c1Nka1NpZ1Y0Q29uZmlnLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9odHRwQXV0aFNjaGVtZXMvYXdzX3Nkay9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvaHR0cEF1dGhTY2hlbWVzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvUHJvdG9jb2xMaWIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9jYm9yL0F3c1NtaXRoeVJwY1YyQ2JvclByb3RvY29sLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvY29lcmNpbmctc2VyaWFsaXplcnMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9Db25maWd1cmFibGVTZXJkZUNvbnRleHQuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9zdHJ1Y3RJdGVyYXRvci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL2pzb24vanNvblJldml2ZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9jb21tb24uanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9qc29uL3BhcnNlSnNvbkJvZHkuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9qc29uL0pzb25TaGFwZURlc2VyaWFsaXplci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL2pzb24vanNvblJlcGxhY2VyLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvanNvbi9Kc29uU2hhcGVTZXJpYWxpemVyLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvanNvbi9Kc29uQ29kZWMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9qc29uL0F3c0pzb25ScGNQcm90b2NvbC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL2pzb24vQXdzSnNvbjFfMFByb3RvY29sLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvanNvbi9Bd3NKc29uMV8xUHJvdG9jb2wuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9qc29uL0F3c1Jlc3RKc29uUHJvdG9jb2wuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9qc29uL2F3c0V4cGVjdFVuaW9uLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL25vZGVfbW9kdWxlcy9AYXdzLXNkay94bWwtYnVpbGRlci9kaXN0LWNqcy94bWwtcGFyc2VyLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL25vZGVfbW9kdWxlcy9AYXdzLXNkay94bWwtYnVpbGRlci9kaXN0LWNqcy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL3htbC9YbWxTaGFwZURlc2VyaWFsaXplci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL3F1ZXJ5L1F1ZXJ5U2hhcGVTZXJpYWxpemVyLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvcXVlcnkvQXdzUXVlcnlQcm90b2NvbC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL3F1ZXJ5L0F3c0VjMlF1ZXJ5UHJvdG9jb2wuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy94bWwvcGFyc2VYbWxCb2R5LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMveG1sL1htbFNoYXBlU2VyaWFsaXplci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL3htbC9YbWxDb2RlYy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL3htbC9Bd3NSZXN0WG1sUHJvdG9jb2wuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9taWRkbGV3YXJlLXVzZXItYWdlbnQvZGlzdC1janMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1jbG91ZHdhdGNoL2Rpc3QtY2pzL2F1dGgvaHR0cEF1dGhTY2hlbWVQcm92aWRlci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWNsb3Vkd2F0Y2gvcGFja2FnZS5qc29uIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLW5vZGUvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItZW52L2Rpc3QtY2pzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLW5vZGUvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItaHR0cC9kaXN0LWNqcy9mcm9tSHR0cC9jaGVja1VybC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLWh0dHAvZGlzdC1janMvZnJvbUh0dHAvcmVxdWVzdEhlbHBlcnMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbm9kZS9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1odHRwL2Rpc3QtY2pzL2Zyb21IdHRwL3JldHJ5LXdyYXBwZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbm9kZS9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1odHRwL2Rpc3QtY2pzL2Zyb21IdHRwL2Zyb21IdHRwLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLW5vZGUvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItaHR0cC9kaXN0LWNqcy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3NvLW9pZGMvYXV0aC9odHRwQXV0aFNjaGVtZVByb3ZpZGVyLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLW5vZGUvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zc28tb2lkYy9lbmRwb2ludC9FbmRwb2ludFBhcmFtZXRlcnMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbm9kZS9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvcGFja2FnZS5qc29uIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay91dGlsLXVzZXItYWdlbnQtbm9kZS9kaXN0LWNqcy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3NvLW9pZGMvZW5kcG9pbnQvcnVsZXNldC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3NvLW9pZGMvZW5kcG9pbnQvZW5kcG9pbnRSZXNvbHZlci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3NvLW9pZGMvcnVudGltZUNvbmZpZy5zaGFyZWQuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbm9kZS9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3Nzby1vaWRjL3J1bnRpbWVDb25maWcuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL3JlZ2lvbi1jb25maWctcmVzb2x2ZXIvZGlzdC1janMvcmVnaW9uQ29uZmlnL3N0c1JlZ2lvbkRlZmF1bHRSZXNvbHZlci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvcmVnaW9uLWNvbmZpZy1yZXNvbHZlci9kaXN0LWNqcy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3NvLW9pZGMvYXV0aC9odHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24uanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbm9kZS9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3Nzby1vaWRjL3J1bnRpbWVFeHRlbnNpb25zLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLW5vZGUvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zc28tb2lkYy9TU09PSURDQ2xpZW50LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLW5vZGUvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zc28tb2lkYy9tb2RlbHMvU1NPT0lEQ1NlcnZpY2VFeGNlcHRpb24uanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbm9kZS9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3Nzby1vaWRjL21vZGVscy9lcnJvcnMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbm9kZS9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3Nzby1vaWRjL3NjaGVtYXMvc2NoZW1hc18wLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLW5vZGUvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zc28tb2lkYy9jb21tYW5kcy9DcmVhdGVUb2tlbkNvbW1hbmQuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbm9kZS9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3Nzby1vaWRjL1NTT09JREMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbm9kZS9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3Nzby1vaWRjL2NvbW1hbmRzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLW5vZGUvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zc28tb2lkYy9tb2RlbHMvZW51bXMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbm9kZS9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3Nzby1vaWRjL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLW5vZGUvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL3Rva2VuLXByb3ZpZGVycy9kaXN0LWNqcy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtc3NvL2Rpc3QtY2pzL2F1dGgvaHR0cEF1dGhTY2hlbWVQcm92aWRlci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtc3NvL3BhY2thZ2UuanNvbiIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtc3NvL2Rpc3QtY2pzL2VuZHBvaW50L3J1bGVzZXQuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbm9kZS9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNzby9kaXN0LWNqcy9lbmRwb2ludC9lbmRwb2ludFJlc29sdmVyLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLW5vZGUvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zc28vZGlzdC1janMvcnVudGltZUNvbmZpZy5zaGFyZWQuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbm9kZS9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNzby9kaXN0LWNqcy9ydW50aW1lQ29uZmlnLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLW5vZGUvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zc28vZGlzdC1janMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbm9kZS9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1zc28vZGlzdC1janMvbG9hZFNzby1DVnk4aXFzWi5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLXNzby9kaXN0LWNqcy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1sb2dpbi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3NpZ25pbi9hdXRoL2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbG9naW4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zaWduaW4vZW5kcG9pbnQvRW5kcG9pbnRQYXJhbWV0ZXJzLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLWxvZ2luL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9wYWNrYWdlLmpzb24iLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbG9naW4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zaWduaW4vZW5kcG9pbnQvcnVsZXNldC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1sb2dpbi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3NpZ25pbi9lbmRwb2ludC9lbmRwb2ludFJlc29sdmVyLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLWxvZ2luL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc2lnbmluL3J1bnRpbWVDb25maWcuc2hhcmVkLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLWxvZ2luL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc2lnbmluL3J1bnRpbWVDb25maWcuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbG9naW4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zaWduaW4vYXV0aC9odHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24uanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbG9naW4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zaWduaW4vcnVudGltZUV4dGVuc2lvbnMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbG9naW4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zaWduaW4vU2lnbmluQ2xpZW50LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLWxvZ2luL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc2lnbmluL21vZGVscy9TaWduaW5TZXJ2aWNlRXhjZXB0aW9uLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLWxvZ2luL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc2lnbmluL21vZGVscy9lcnJvcnMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbG9naW4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zaWduaW4vc2NoZW1hcy9zY2hlbWFzXzAuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbG9naW4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zaWduaW4vY29tbWFuZHMvQ3JlYXRlT0F1dGgyVG9rZW5Db21tYW5kLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLWxvZ2luL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc2lnbmluL1NpZ25pbi5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1sb2dpbi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3NpZ25pbi9jb21tYW5kcy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1sb2dpbi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3NpZ25pbi9tb2RlbHMvZW51bXMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbG9naW4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zaWduaW4vaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbG9naW4vZGlzdC1janMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbm9kZS9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3N0cy9hdXRoL2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbm9kZS9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3N0cy9lbmRwb2ludC9FbmRwb2ludFBhcmFtZXRlcnMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbm9kZS9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3N0cy9lbmRwb2ludC9ydWxlc2V0LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLW5vZGUvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zdHMvZW5kcG9pbnQvZW5kcG9pbnRSZXNvbHZlci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3RzL3J1bnRpbWVDb25maWcuc2hhcmVkLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLW5vZGUvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zdHMvcnVudGltZUNvbmZpZy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3RzL2F1dGgvaHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLW5vZGUvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zdHMvcnVudGltZUV4dGVuc2lvbnMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbm9kZS9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3N0cy9TVFNDbGllbnQuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbm9kZS9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3N0cy9tb2RlbHMvU1RTU2VydmljZUV4Y2VwdGlvbi5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3RzL21vZGVscy9lcnJvcnMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbm9kZS9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3N0cy9zY2hlbWFzL3NjaGVtYXNfMC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3RzL2NvbW1hbmRzL0Fzc3VtZVJvbGVDb21tYW5kLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLW5vZGUvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zdHMvY29tbWFuZHMvQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eUNvbW1hbmQuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbm9kZS9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3N0cy9TVFMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbm9kZS9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3N0cy9jb21tYW5kcy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3RzL2RlZmF1bHRTdHNSb2xlQXNzdW1lcnMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbm9kZS9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3N0cy9kZWZhdWx0Um9sZUFzc3VtZXJzLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLW5vZGUvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zdHMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbm9kZS9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1wcm9jZXNzL2Rpc3QtY2pzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLW5vZGUvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItd2ViLWlkZW50aXR5L2Rpc3QtY2pzL2Zyb21XZWJUb2tlbi5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLXdlYi1pZGVudGl0eS9kaXN0LWNqcy9mcm9tVG9rZW5GaWxlLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLW5vZGUvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItd2ViLWlkZW50aXR5L2Rpc3QtY2pzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLW5vZGUvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItaW5pL2Rpc3QtY2pzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLW5vZGUvZGlzdC1janMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1jbG91ZHdhdGNoL2Rpc3QtY2pzL2VuZHBvaW50L3J1bGVzZXQuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1jbG91ZHdhdGNoL2Rpc3QtY2pzL2VuZHBvaW50L2VuZHBvaW50UmVzb2x2ZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1jbG91ZHdhdGNoL2Rpc3QtY2pzL3J1bnRpbWVDb25maWcuc2hhcmVkLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtY2xvdWR3YXRjaC9kaXN0LWNqcy9ydW50aW1lQ29uZmlnLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtY2xvdWR3YXRjaC9kaXN0LWNqcy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvbmVnb3RpYXRvci9saWIvY2hhcnNldC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvbmVnb3RpYXRvci9saWIvZW5jb2RpbmcuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL25lZ290aWF0b3IvbGliL2xhbmd1YWdlLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9uZWdvdGlhdG9yL2xpYi9tZWRpYVR5cGUuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL25lZ290aWF0b3IvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NvbXByZXNzaWJsZS9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvd2luc3Rvbi9saWIvd2luc3Rvbi9jb21tb24uanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3dpbnN0b24vcGFja2FnZS5qc29uIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy93aW5zdG9uL2xpYi93aW5zdG9uL3RyYW5zcG9ydHMvY29uc29sZS5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvd2luc3Rvbi9saWIvd2luc3Rvbi90YWlsLWZpbGUuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3dpbnN0b24vbGliL3dpbnN0b24vdHJhbnNwb3J0cy9maWxlLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy93aW5zdG9uL2xpYi93aW5zdG9uL3RyYW5zcG9ydHMvaHR0cC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvd2luc3Rvbi9saWIvd2luc3Rvbi90cmFuc3BvcnRzL3N0cmVhbS5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvd2luc3Rvbi9saWIvd2luc3Rvbi90cmFuc3BvcnRzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy93aW5zdG9uL2xpYi93aW5zdG9uL2NvbmZpZy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvd2luc3Rvbi9saWIvd2luc3Rvbi9leGNlcHRpb24tc3RyZWFtLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy93aW5zdG9uL2xpYi93aW5zdG9uL2V4Y2VwdGlvbi1oYW5kbGVyLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy93aW5zdG9uL2xpYi93aW5zdG9uL3JlamVjdGlvbi1zdHJlYW0uanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3dpbnN0b24vbGliL3dpbnN0b24vcmVqZWN0aW9uLWhhbmRsZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3dpbnN0b24vbGliL3dpbnN0b24vcHJvZmlsZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3dpbnN0b24vbGliL3dpbnN0b24vbG9nZ2VyLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy93aW5zdG9uL2xpYi93aW5zdG9uL2NyZWF0ZS1sb2dnZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3dpbnN0b24vbGliL3dpbnN0b24vY29udGFpbmVyLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy93aW5zdG9uL2xpYi93aW5zdG9uLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtc2VjcmV0cy1tYW5hZ2VyL25vZGVfbW9kdWxlcy9AYXdzLXNkay9taWRkbGV3YXJlLWhvc3QtaGVhZGVyL2Rpc3QtY2pzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtc2VjcmV0cy1tYW5hZ2VyL25vZGVfbW9kdWxlcy9AYXdzLXNkay9taWRkbGV3YXJlLWxvZ2dlci9kaXN0LWNqcy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlci9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbWlkZGxld2FyZS1yZWN1cnNpb24tZGV0ZWN0aW9uL2Rpc3QtY2pzL3JlY3Vyc2lvbkRldGVjdGlvbk1pZGRsZXdhcmUuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL21pZGRsZXdhcmUtcmVjdXJzaW9uLWRldGVjdGlvbi9kaXN0LWNqcy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlci9ub2RlX21vZHVsZXMvQGF3cy1zZGsvdXRpbC1lbmRwb2ludHMvZGlzdC1janMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2NsaWVudC9lbWl0V2FybmluZ0lmVW5zdXBwb3J0ZWRWZXJzaW9uLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtc2VjcmV0cy1tYW5hZ2VyL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9jbGllbnQvbG9uZ1BvbGxNaWRkbGV3YXJlLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtc2VjcmV0cy1tYW5hZ2VyL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9jbGllbnQvc2V0Q3JlZGVudGlhbEZlYXR1cmUuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2NsaWVudC9zZXRGZWF0dXJlLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtc2VjcmV0cy1tYW5hZ2VyL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9jbGllbnQvc2V0VG9rZW5GZWF0dXJlLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtc2VjcmV0cy1tYW5hZ2VyL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9jbGllbnQvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL21pZGRsZXdhcmUtdXNlci1hZ2VudC9kaXN0LWNqcy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlci9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvaHR0cEF1dGhTY2hlbWVzL3V0aWxzL2dldERhdGVIZWFkZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2h0dHBBdXRoU2NoZW1lcy91dGlscy9nZXRTa2V3Q29ycmVjdGVkRGF0ZS5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlci9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvaHR0cEF1dGhTY2hlbWVzL3V0aWxzL2lzQ2xvY2tTa2V3ZWQuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2h0dHBBdXRoU2NoZW1lcy91dGlscy9nZXRVcGRhdGVkU3lzdGVtQ2xvY2tPZmZzZXQuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2h0dHBBdXRoU2NoZW1lcy91dGlscy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlci9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvaHR0cEF1dGhTY2hlbWVzL2F3c19zZGsvQXdzU2RrU2lnVjRTaWduZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2h0dHBBdXRoU2NoZW1lcy9hd3Nfc2RrL0F3c1Nka1NpZ1Y0QVNpZ25lci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlci9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvaHR0cEF1dGhTY2hlbWVzL3V0aWxzL2dldEFycmF5Rm9yQ29tbWFTZXBhcmF0ZWRTdHJpbmcuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2h0dHBBdXRoU2NoZW1lcy91dGlscy9nZXRCZWFyZXJUb2tlbkVudktleS5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlci9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvaHR0cEF1dGhTY2hlbWVzL2F3c19zZGsvTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX09QVElPTlMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2h0dHBBdXRoU2NoZW1lcy9hd3Nfc2RrL3Jlc29sdmVBd3NTZGtTaWdWNEFDb25maWcuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2h0dHBBdXRoU2NoZW1lcy9hd3Nfc2RrL3Jlc29sdmVBd3NTZGtTaWdWNENvbmZpZy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlci9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvaHR0cEF1dGhTY2hlbWVzL2F3c19zZGsvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2h0dHBBdXRoU2NoZW1lcy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlci9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL1Byb3RvY29sTGliLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtc2VjcmV0cy1tYW5hZ2VyL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvY2Jvci9Bd3NTbWl0aHlScGNWMkNib3JQcm90b2NvbC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlci9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL2NvZXJjaW5nLXNlcmlhbGl6ZXJzLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtc2VjcmV0cy1tYW5hZ2VyL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvQ29uZmlndXJhYmxlU2VyZGVDb250ZXh0LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtc2VjcmV0cy1tYW5hZ2VyL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvVW5pb25TZXJkZS5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlci9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL2pzb24vanNvblJldml2ZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9jb21tb24uanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9qc29uL3BhcnNlSnNvbkJvZHkuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9qc29uL0pzb25TaGFwZURlc2VyaWFsaXplci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlci9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL2pzb24vanNvblJlcGxhY2VyLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtc2VjcmV0cy1tYW5hZ2VyL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvanNvbi9Kc29uU2hhcGVTZXJpYWxpemVyLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtc2VjcmV0cy1tYW5hZ2VyL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvanNvbi9Kc29uQ29kZWMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9qc29uL0F3c0pzb25ScGNQcm90b2NvbC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlci9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL2pzb24vQXdzSnNvbjFfMFByb3RvY29sLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtc2VjcmV0cy1tYW5hZ2VyL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvanNvbi9Bd3NKc29uMV8xUHJvdG9jb2wuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9qc29uL0F3c1Jlc3RKc29uUHJvdG9jb2wuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9qc29uL2F3c0V4cGVjdFVuaW9uLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtc2VjcmV0cy1tYW5hZ2VyL25vZGVfbW9kdWxlcy9AYXdzLXNkay94bWwtYnVpbGRlci9kaXN0LWNqcy94bWwtZXh0ZXJuYWwvbm9kYWJsZV9lbnRpdGllcy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlci9ub2RlX21vZHVsZXMvQGF3cy1zZGsveG1sLWJ1aWxkZXIvZGlzdC1janMveG1sLXBhcnNlci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlci9ub2RlX21vZHVsZXMvQGF3cy1zZGsveG1sLWJ1aWxkZXIvZGlzdC1janMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy94bWwvWG1sU2hhcGVEZXNlcmlhbGl6ZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9xdWVyeS9RdWVyeVNoYXBlU2VyaWFsaXplci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlci9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL3F1ZXJ5L0F3c1F1ZXJ5UHJvdG9jb2wuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9xdWVyeS9Bd3NFYzJRdWVyeVByb3RvY29sLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtc2VjcmV0cy1tYW5hZ2VyL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvcXVlcnkvUXVlcnlTZXJpYWxpemVyU2V0dGluZ3MuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy94bWwvcGFyc2VYbWxCb2R5LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtc2VjcmV0cy1tYW5hZ2VyL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMveG1sL1htbFNoYXBlU2VyaWFsaXplci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlci9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL3htbC9YbWxDb2RlYy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlci9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL3htbC9Bd3NSZXN0WG1sUHJvdG9jb2wuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlci9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtc2VjcmV0cy1tYW5hZ2VyL2Rpc3QtY2pzL2F1dGgvaHR0cEF1dGhTY2hlbWVQcm92aWRlci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlci9wYWNrYWdlLmpzb24iLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItZW52L2Rpc3QtY2pzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtc2VjcmV0cy1tYW5hZ2VyL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLWh0dHAvZGlzdC1janMvZnJvbUh0dHAvY2hlY2tVcmwuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItaHR0cC9kaXN0LWNqcy9mcm9tSHR0cC9yZXF1ZXN0SGVscGVycy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlci9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1odHRwL2Rpc3QtY2pzL2Zyb21IdHRwL3JldHJ5LXdyYXBwZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItaHR0cC9kaXN0LWNqcy9mcm9tSHR0cC9mcm9tSHR0cC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlci9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1odHRwL2Rpc3QtY2pzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbWlkZGxld2FyZS1ob3N0LWhlYWRlci9kaXN0LWNqcy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL21pZGRsZXdhcmUtbG9nZ2VyL2Rpc3QtY2pzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbWlkZGxld2FyZS1yZWN1cnNpb24tZGV0ZWN0aW9uL2Rpc3QtY2pzL3JlY3Vyc2lvbkRldGVjdGlvbk1pZGRsZXdhcmUuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL25vZGVfbW9kdWxlcy9AYXdzLXNkay9taWRkbGV3YXJlLXJlY3Vyc2lvbi1kZXRlY3Rpb24vZGlzdC1janMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL25vZGVfbW9kdWxlcy9AYXdzLXNkay91dGlsLWVuZHBvaW50cy9kaXN0LWNqcy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2NsaWVudC9lbWl0V2FybmluZ0lmVW5zdXBwb3J0ZWRWZXJzaW9uLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvY2xpZW50L2xvbmdQb2xsTWlkZGxld2FyZS5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2NsaWVudC9zZXRDcmVkZW50aWFsRmVhdHVyZS5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2NsaWVudC9zZXRGZWF0dXJlLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvY2xpZW50L3NldFRva2VuRmVhdHVyZS5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2NsaWVudC9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL21pZGRsZXdhcmUtdXNlci1hZ2VudC9kaXN0LWNqcy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2h0dHBBdXRoU2NoZW1lcy91dGlscy9nZXREYXRlSGVhZGVyLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvaHR0cEF1dGhTY2hlbWVzL3V0aWxzL2dldFNrZXdDb3JyZWN0ZWREYXRlLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvaHR0cEF1dGhTY2hlbWVzL3V0aWxzL2lzQ2xvY2tTa2V3ZWQuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9odHRwQXV0aFNjaGVtZXMvdXRpbHMvZ2V0VXBkYXRlZFN5c3RlbUNsb2NrT2Zmc2V0LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvaHR0cEF1dGhTY2hlbWVzL3V0aWxzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvaHR0cEF1dGhTY2hlbWVzL2F3c19zZGsvQXdzU2RrU2lnVjRTaWduZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9odHRwQXV0aFNjaGVtZXMvYXdzX3Nkay9Bd3NTZGtTaWdWNEFTaWduZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9odHRwQXV0aFNjaGVtZXMvdXRpbHMvZ2V0QXJyYXlGb3JDb21tYVNlcGFyYXRlZFN0cmluZy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2h0dHBBdXRoU2NoZW1lcy91dGlscy9nZXRCZWFyZXJUb2tlbkVudktleS5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2h0dHBBdXRoU2NoZW1lcy9hd3Nfc2RrL05PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9PUFRJT05TLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvaHR0cEF1dGhTY2hlbWVzL2F3c19zZGsvcmVzb2x2ZUF3c1Nka1NpZ1Y0QUNvbmZpZy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2h0dHBBdXRoU2NoZW1lcy9hd3Nfc2RrL3Jlc29sdmVBd3NTZGtTaWdWNENvbmZpZy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL2h0dHBBdXRoU2NoZW1lcy9hd3Nfc2RrL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvaHR0cEF1dGhTY2hlbWVzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3NvLW9pZGMvYXV0aC9odHRwQXV0aFNjaGVtZVByb3ZpZGVyLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3NvLW9pZGMvZW5kcG9pbnQvRW5kcG9pbnRQYXJhbWV0ZXJzLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9wYWNrYWdlLmpzb24iLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL25vZGVfbW9kdWxlcy9AYXdzLXNkay91dGlsLXVzZXItYWdlbnQtbm9kZS9kaXN0LWNqcy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9Qcm90b2NvbExpYi5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9jYm9yL0F3c1NtaXRoeVJwY1YyQ2JvclByb3RvY29sLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL2NvZXJjaW5nLXNlcmlhbGl6ZXJzLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9VbmlvblNlcmRlLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL2pzb24vanNvblJldml2ZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvY29tbW9uLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL2pzb24vcGFyc2VKc29uQm9keS5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9qc29uL0pzb25TaGFwZURlc2VyaWFsaXplci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9qc29uL2pzb25SZXBsYWNlci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9qc29uL0pzb25TaGFwZVNlcmlhbGl6ZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvanNvbi9Kc29uQ29kZWMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvanNvbi9Bd3NKc29uUnBjUHJvdG9jb2wuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvanNvbi9Bd3NKc29uMV8wUHJvdG9jb2wuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvanNvbi9Bd3NKc29uMV8xUHJvdG9jb2wuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvanNvbi9Bd3NSZXN0SnNvblByb3RvY29sLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL2pzb24vYXdzRXhwZWN0VW5pb24uanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL25vZGVfbW9kdWxlcy9AYXdzLXNkay94bWwtYnVpbGRlci9kaXN0LWNqcy94bWwtZXh0ZXJuYWwvbm9kYWJsZV9lbnRpdGllcy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL3htbC1idWlsZGVyL2Rpc3QtY2pzL3htbC1wYXJzZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL25vZGVfbW9kdWxlcy9AYXdzLXNkay94bWwtYnVpbGRlci9kaXN0LWNqcy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy94bWwvWG1sU2hhcGVEZXNlcmlhbGl6ZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvcXVlcnkvUXVlcnlTaGFwZVNlcmlhbGl6ZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMvcXVlcnkvQXdzUXVlcnlQcm90b2NvbC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9xdWVyeS9Bd3NFYzJRdWVyeVByb3RvY29sLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL3F1ZXJ5L1F1ZXJ5U2VyaWFsaXplclNldHRpbmdzLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY29yZS9kaXN0LWVzL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL3htbC9wYXJzZVhtbEJvZHkuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMveG1sL1htbFNoYXBlU2VyaWFsaXplci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy94bWwvWG1sQ29kZWMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jb3JlL2Rpc3QtZXMvc3VibW9kdWxlcy9wcm90b2NvbHMveG1sL0F3c1Jlc3RYbWxQcm90b2NvbC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1lcy9zdWJtb2R1bGVzL3Byb3RvY29scy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3Nzby1vaWRjL2VuZHBvaW50L2JkZC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3Nzby1vaWRjL2VuZHBvaW50L2VuZHBvaW50UmVzb2x2ZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zc28tb2lkYy9tb2RlbHMvU1NPT0lEQ1NlcnZpY2VFeGNlcHRpb24uanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zc28tb2lkYy9tb2RlbHMvZXJyb3JzLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3NvLW9pZGMvc2NoZW1hcy9zY2hlbWFzXzAuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zc28tb2lkYy9ydW50aW1lQ29uZmlnLnNoYXJlZC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3Nzby1vaWRjL3J1bnRpbWVDb25maWcuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL25vZGVfbW9kdWxlcy9AYXdzLXNkay9yZWdpb24tY29uZmlnLXJlc29sdmVyL2Rpc3QtY2pzL3JlZ2lvbkNvbmZpZy9zdHNSZWdpb25EZWZhdWx0UmVzb2x2ZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL25vZGVfbW9kdWxlcy9AYXdzLXNkay9yZWdpb24tY29uZmlnLXJlc29sdmVyL2Rpc3QtY2pzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3NvLW9pZGMvYXV0aC9odHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24uanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zc28tb2lkYy9ydW50aW1lRXh0ZW5zaW9ucy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3Nzby1vaWRjL1NTT09JRENDbGllbnQuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zc28tb2lkYy9jb21tYW5kcy9DcmVhdGVUb2tlbkNvbW1hbmQuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zc28tb2lkYy9TU09PSURDLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3NvLW9pZGMvY29tbWFuZHMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zc28tb2lkYy9tb2RlbHMvZW51bXMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zc28tb2lkYy9tb2RlbHMvbW9kZWxzXzAuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zc28tb2lkYy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlci9ub2RlX21vZHVsZXMvQGF3cy1zZGsvdG9rZW4tcHJvdmlkZXJzL2Rpc3QtY2pzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3NvL2F1dGgvaHR0cEF1dGhTY2hlbWVQcm92aWRlci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3Nzby9lbmRwb2ludC9FbmRwb2ludFBhcmFtZXRlcnMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zc28vZW5kcG9pbnQvYmRkLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3NvL2VuZHBvaW50L2VuZHBvaW50UmVzb2x2ZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zc28vbW9kZWxzL1NTT1NlcnZpY2VFeGNlcHRpb24uanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zc28vbW9kZWxzL2Vycm9ycy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3Nzby9zY2hlbWFzL3NjaGVtYXNfMC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3Nzby9ydW50aW1lQ29uZmlnLnNoYXJlZC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3Nzby9ydW50aW1lQ29uZmlnLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3NvL2F1dGgvaHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3NvL3J1bnRpbWVFeHRlbnNpb25zLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3NvL1NTT0NsaWVudC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3Nzby9jb21tYW5kcy9HZXRSb2xlQ3JlZGVudGlhbHNDb21tYW5kLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3NvL1NTTy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3Nzby9jb21tYW5kcy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3Nzby9tb2RlbHMvbW9kZWxzXzAuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zc28vaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItc3NvL2Rpc3QtY2pzL2xvYWRTc28tQktETnJzYWwuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItc3NvL2Rpc3QtY2pzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc2lnbmluL2F1dGgvaHR0cEF1dGhTY2hlbWVQcm92aWRlci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3NpZ25pbi9lbmRwb2ludC9FbmRwb2ludFBhcmFtZXRlcnMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zaWduaW4vZW5kcG9pbnQvYmRkLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc2lnbmluL2VuZHBvaW50L2VuZHBvaW50UmVzb2x2ZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zaWduaW4vbW9kZWxzL1NpZ25pblNlcnZpY2VFeGNlcHRpb24uanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zaWduaW4vbW9kZWxzL2Vycm9ycy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3NpZ25pbi9zY2hlbWFzL3NjaGVtYXNfMC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3NpZ25pbi9ydW50aW1lQ29uZmlnLnNoYXJlZC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3NpZ25pbi9ydW50aW1lQ29uZmlnLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc2lnbmluL2F1dGgvaHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc2lnbmluL3J1bnRpbWVFeHRlbnNpb25zLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc2lnbmluL1NpZ25pbkNsaWVudC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3NpZ25pbi9jb21tYW5kcy9DcmVhdGVPQXV0aDJUb2tlbkNvbW1hbmQuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zaWduaW4vU2lnbmluLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc2lnbmluL2NvbW1hbmRzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc2lnbmluL21vZGVscy9lbnVtcy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3NpZ25pbi9tb2RlbHMvbW9kZWxzXzAuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zaWduaW4vaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbG9naW4vZGlzdC1janMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL25vZGVfbW9kdWxlcy9AYXdzLXNkay9taWRkbGV3YXJlLXNkay1zMy9kaXN0LWNqcy90b1N0cmVhbS5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL3V0aWwtYXJuLXBhcnNlci9kaXN0LWNqcy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL21pZGRsZXdhcmUtc2RrLXMzL2Rpc3QtY2pzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9ub2RlX21vZHVsZXMvQGF3cy1zZGsvc2lnbmF0dXJlLXY0LW11bHRpLXJlZ2lvbi9kaXN0LWNqcy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3N0cy9lbmRwb2ludC9iZGQuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zdHMvZW5kcG9pbnQvZW5kcG9pbnRSZXNvbHZlci5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3N0cy9hdXRoL2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zdHMvZW5kcG9pbnQvRW5kcG9pbnRQYXJhbWV0ZXJzLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3RzL21vZGVscy9TVFNTZXJ2aWNlRXhjZXB0aW9uLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3RzL21vZGVscy9lcnJvcnMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zdHMvc2NoZW1hcy9zY2hlbWFzXzAuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zdHMvcnVudGltZUNvbmZpZy5zaGFyZWQuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zdHMvcnVudGltZUNvbmZpZy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3N0cy9hdXRoL2h0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbi5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3N0cy9ydW50aW1lRXh0ZW5zaW9ucy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3N0cy9TVFNDbGllbnQuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zdHMvY29tbWFuZHMvQXNzdW1lUm9sZUNvbW1hbmQuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zdHMvY29tbWFuZHMvQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eUNvbW1hbmQuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zdHMvU1RTLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3RzL2NvbW1hbmRzL2luZGV4LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3RzL21vZGVscy9tb2RlbHNfMC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1lcy9zdWJtb2R1bGVzL3N0cy9kZWZhdWx0U3RzUm9sZUFzc3VtZXJzLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWVzL3N1Ym1vZHVsZXMvc3RzL2RlZmF1bHRSb2xlQXNzdW1lcnMuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtZXMvc3VibW9kdWxlcy9zdHMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItcHJvY2Vzcy9kaXN0LWNqcy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlci9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci13ZWItaWRlbnRpdHkvZGlzdC1janMvZnJvbVdlYlRva2VuLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtc2VjcmV0cy1tYW5hZ2VyL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLXdlYi1pZGVudGl0eS9kaXN0LWNqcy9mcm9tVG9rZW5GaWxlLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtc2VjcmV0cy1tYW5hZ2VyL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLXdlYi1pZGVudGl0eS9kaXN0LWNqcy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlci9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1pbmkvZGlzdC1janMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbm9kZS9kaXN0LWNqcy9pbmRleC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlci9ub2RlX21vZHVsZXMvQGF3cy1zZGsvdXRpbC11c2VyLWFnZW50LW5vZGUvZGlzdC1janMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvZGlzdC1janMvZW5kcG9pbnQvcnVsZXNldC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlci9kaXN0LWNqcy9lbmRwb2ludC9lbmRwb2ludFJlc29sdmVyLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtc2VjcmV0cy1tYW5hZ2VyL2Rpc3QtY2pzL21vZGVscy9TZWNyZXRzTWFuYWdlclNlcnZpY2VFeGNlcHRpb24uanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvZGlzdC1janMvbW9kZWxzL2Vycm9ycy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlci9kaXN0LWNqcy9zY2hlbWFzL3NjaGVtYXNfMC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlci9kaXN0LWNqcy9ydW50aW1lQ29uZmlnLnNoYXJlZC5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlci9kaXN0LWNqcy9ydW50aW1lQ29uZmlnLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtc2VjcmV0cy1tYW5hZ2VyL25vZGVfbW9kdWxlcy9AYXdzLXNkay9yZWdpb24tY29uZmlnLXJlc29sdmVyL2Rpc3QtY2pzL3JlZ2lvbkNvbmZpZy9zdHNSZWdpb25EZWZhdWx0UmVzb2x2ZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL3JlZ2lvbi1jb25maWctcmVzb2x2ZXIvZGlzdC1janMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXIvZGlzdC1janMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1sYW1iZGEvZGlzdC1janMvYXV0aC9odHRwQXV0aFNjaGVtZVByb3ZpZGVyLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtbGFtYmRhL3BhY2thZ2UuanNvbiIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWxhbWJkYS9kaXN0LWNqcy9lbmRwb2ludC9ydWxlc2V0LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtbGFtYmRhL2Rpc3QtY2pzL2VuZHBvaW50L2VuZHBvaW50UmVzb2x2ZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1sYW1iZGEvZGlzdC1janMvcnVudGltZUNvbmZpZy5zaGFyZWQuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1sYW1iZGEvZGlzdC1janMvcnVudGltZUNvbmZpZy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWxhbWJkYS9kaXN0LWNqcy9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbWlkZGxld2FyZS1leHBlY3QtY29udGludWUvZGlzdC1janMvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL21pZGRsZXdhcmUtZmxleGlibGUtY2hlY2tzdW1zL2Rpc3QtY2pzL2dldENyYzMyQ2hlY2tzdW1BbGdvcml0aG1GdW5jdGlvbi5qcyIsICIuLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbWlkZGxld2FyZS1mbGV4aWJsZS1jaGVja3N1bXMvZGlzdC1janMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL3V0aWwtYXJuLXBhcnNlci9kaXN0LWNqcy9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbWlkZGxld2FyZS1zZGstczMvZGlzdC1janMvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL3NpZ25hdHVyZS12NC1tdWx0aS1yZWdpb24vZGlzdC1janMvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zMy9kaXN0LWNqcy9lbmRwb2ludC9ydWxlc2V0LmpzIiwgIi4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtczMvZGlzdC1janMvZW5kcG9pbnQvZW5kcG9pbnRSZXNvbHZlci5qcyIsICIuLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXMzL2Rpc3QtY2pzL2F1dGgvaHR0cEF1dGhTY2hlbWVQcm92aWRlci5qcyIsICIuLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXMzL3BhY2thZ2UuanNvbiIsICIuLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbWlkZGxld2FyZS1idWNrZXQtZW5kcG9pbnQvZGlzdC1janMvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1zMy9kaXN0LWNqcy9ydW50aW1lQ29uZmlnLnNoYXJlZC5qcyIsICIuLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LXMzL2Rpc3QtY2pzL3J1bnRpbWVDb25maWcuanMiLCAiLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL21pZGRsZXdhcmUtc3NlYy9kaXN0LWNqcy9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbWlkZGxld2FyZS1sb2NhdGlvbi1jb25zdHJhaW50L2Rpc3QtY2pzL2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtczMvZGlzdC1janMvaW5kZXguanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1jbG91ZHdhdGNoLWxvZ3MvZGlzdC1janMvYXV0aC9odHRwQXV0aFNjaGVtZVByb3ZpZGVyLmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtY2xvdWR3YXRjaC1sb2dzL3BhY2thZ2UuanNvbiIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWNsb3Vkd2F0Y2gtbG9ncy9kaXN0LWNqcy9lbmRwb2ludC9ydWxlc2V0LmpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jbGllbnQtY2xvdWR3YXRjaC1sb2dzL2Rpc3QtY2pzL2VuZHBvaW50L2VuZHBvaW50UmVzb2x2ZXIuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1jbG91ZHdhdGNoLWxvZ3MvZGlzdC1janMvcnVudGltZUNvbmZpZy5zaGFyZWQuanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NsaWVudC1jbG91ZHdhdGNoLWxvZ3MvZGlzdC1janMvcnVudGltZUNvbmZpZy5qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY2xpZW50LWNsb3Vkd2F0Y2gtbG9ncy9kaXN0LWNqcy9pbmRleC5qcyIsICIuLi9zcmMvc3NyLnRzIiwgIi4uL3NyYy9hcHAvc2VydmVyLnRzIiwgIi4uLy4uL21ydC11dGlsaXRpZXMvc3JjL21pZGRsZXdhcmUvZGF0YS1zdG9yZS50cyIsICIuLi8uLi9tcnQtdXRpbGl0aWVzL3NyYy91dGlscy91dGlscy50cyIsICIuLi8uLi9tcnQtdXRpbGl0aWVzL3NyYy91dGlscy9zc3ItcHJveHlpbmcudHMiLCAiLi4vLi4vbXJ0LXV0aWxpdGllcy9zcmMvdXRpbHMvY29uZmlndXJlLXByb3h5aW5nLnRzIiwgIi4uLy4uL21ydC11dGlsaXRpZXMvc3JjL21pZGRsZXdhcmUvbWlkZGxld2FyZS50cyIsICIuLi8uLi9tcnQtdXRpbGl0aWVzL3NyYy9tZXRyaWNzL21ldHJpY3Mtc2VuZGVyLnRzIiwgIi4uLy4uL21ydC11dGlsaXRpZXMvc3JjL3N0cmVhbWluZy9jcmVhdGUtbGFtYmRhLWFkYXB0ZXIudHMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BoNGFkL3NlcnZlcmxlc3MtYWRhcHRlci9saWIvY2h1bmstUVdQVklYMlQubWpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AaDRhZC9zZXJ2ZXJsZXNzLWFkYXB0ZXIvc3JjL25ldHdvcmsvcmVxdWVzdC50cyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGg0YWQvc2VydmVybGVzcy1hZGFwdGVyL3NyYy9jb3JlL2NvbnN0YW50cy50cyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGg0YWQvc2VydmVybGVzcy1hZGFwdGVyL3NyYy9jb3JlL2N1cnJlbnQtaW52b2tlLnRzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AaDRhZC9zZXJ2ZXJsZXNzLWFkYXB0ZXIvc3JjL2NvcmUvZXZlbnQtYm9keS50cyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGg0YWQvc2VydmVybGVzcy1hZGFwdGVyL3NyYy9jb3JlL2hlYWRlcnMudHMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BoNGFkL3NlcnZlcmxlc3MtYWRhcHRlci9zcmMvY29yZS9pcy1iaW5hcnkudHMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BoNGFkL3NlcnZlcmxlc3MtYWRhcHRlci9zcmMvY29yZS9uby1vcC50cyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGg0YWQvc2VydmVybGVzcy1hZGFwdGVyL3NyYy9jb3JlL2xvZ2dlci50cyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGg0YWQvc2VydmVybGVzcy1hZGFwdGVyL3NyYy9jb3JlL29wdGlvbmFsLnRzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AaDRhZC9zZXJ2ZXJsZXNzLWFkYXB0ZXIvc3JjL2NvcmUvcGF0aC50cyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGg0YWQvc2VydmVybGVzcy1hZGFwdGVyL3NyYy9jb3JlL3N0cmVhbS50cyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGg0YWQvc2VydmVybGVzcy1hZGFwdGVyL3NyYy9uZXR3b3JrL3Jlc3BvbnNlLnRzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AaDRhZC9zZXJ2ZXJsZXNzLWFkYXB0ZXIvc3JjL25ldHdvcmsvdXRpbHMudHMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BoNGFkL3NlcnZlcmxlc3MtYWRhcHRlci9zcmMvbmV0d29yay9yZXNwb25zZS1zdHJlYW0udHMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BoNGFkL3NlcnZlcmxlc3MtYWRhcHRlci9zcmMvY29yZS9iYXNlLWhhbmRsZXIudHMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BoNGFkL3NlcnZlcmxlc3MtYWRhcHRlci9zcmMvc2VydmVybGVzcy1hZGFwdGVyLnRzIiwgIi4uL3NyYy91dGlscy9yZWZlcmVuY2Utcm91dGVzLnRzIiwgIi4uL3NyYy91dGlscy9pc29sYXRpb24tYWN0aW9ucy50cyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGg0YWQvc2VydmVybGVzcy1hZGFwdGVyL3NyYy9oYW5kbGVycy9kZWZhdWx0L2RlZmF1bHQuaGFuZGxlci50cyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGg0YWQvc2VydmVybGVzcy1hZGFwdGVyL3NyYy9yZXNvbHZlcnMvY2FsbGJhY2svY2FsbGJhY2sucmVzb2x2ZXIudHMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BoNGFkL3NlcnZlcmxlc3MtYWRhcHRlci9zcmMvYWRhcHRlcnMvYXdzL2FsYi5hZGFwdGVyLnRzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AaDRhZC9zZXJ2ZXJsZXNzLWFkYXB0ZXIvc3JjL2FkYXB0ZXJzL2F3cy9hcGktZ2F0ZXdheS12MS5hZGFwdGVyLnRzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AaDRhZC9zZXJ2ZXJsZXNzLWFkYXB0ZXIvc3JjL2FkYXB0ZXJzL2F3cy9hcGktZ2F0ZXdheS12Mi5hZGFwdGVyLnRzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AaDRhZC9zZXJ2ZXJsZXNzLWFkYXB0ZXIvc3JjL2FkYXB0ZXJzL2F3cy9iYXNlL2F3cy1zaW1wbGUtYWRhcHRlci50cyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGg0YWQvc2VydmVybGVzcy1hZGFwdGVyL3NyYy9hZGFwdGVycy9hd3MvZHluYW1vZGIuYWRhcHRlci50cyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGg0YWQvc2VydmVybGVzcy1hZGFwdGVyL3NyYy9hZGFwdGVycy9hd3MvZXZlbnQtYnJpZGdlLmFkYXB0ZXIudHMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BoNGFkL3NlcnZlcmxlc3MtYWRhcHRlci9zcmMvYWRhcHRlcnMvYXdzL2xhbWJkYS1lZGdlLmFkYXB0ZXIudHMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BoNGFkL3NlcnZlcmxlc3MtYWRhcHRlci9zcmMvYWRhcHRlcnMvYXdzL3MzLmFkYXB0ZXIudHMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BoNGFkL3NlcnZlcmxlc3MtYWRhcHRlci9zcmMvYWRhcHRlcnMvYXdzL3Nucy5hZGFwdGVyLnRzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AaDRhZC9zZXJ2ZXJsZXNzLWFkYXB0ZXIvc3JjL2FkYXB0ZXJzL2F3cy9zcXMuYWRhcHRlci50cyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGg0YWQvc2VydmVybGVzcy1hZGFwdGVyL3NyYy9hZGFwdGVycy9hd3MvcmVxdWVzdC1sYW1iZGEtZWRnZS5hZGFwdGVyLnRzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9AaDRhZC9zZXJ2ZXJsZXNzLWFkYXB0ZXIvc3JjL2ZyYW1ld29ya3MvZXhwcmVzcy9leHByZXNzLmZyYW1ld29yay50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyohXG4gKiBleHByZXNzXG4gKiBDb3B5cmlnaHQoYykgMjAwOS0yMDEzIFRKIEhvbG93YXljaHVrXG4gKiBDb3B5cmlnaHQoYykgMjAxMyBSb21hbiBTaHR5bG1hblxuICogQ29weXJpZ2h0KGMpIDIwMTQtMjAxNSBEb3VnbGFzIENocmlzdG9waGVyIFdpbHNvblxuICogTUlUIExpY2Vuc2VkXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG4vKipcbiAqIE1vZHVsZSBkZXBlbmRlbmNpZXMuXG4gKiBAcHJpdmF0ZVxuICovXG5cbnZhciBkZWJ1ZyA9IHJlcXVpcmUoJ2RlYnVnJykoJ2V4cHJlc3M6dmlldycpO1xudmFyIHBhdGggPSByZXF1aXJlKCdub2RlOnBhdGgnKTtcbnZhciBmcyA9IHJlcXVpcmUoJ25vZGU6ZnMnKTtcblxuLyoqXG4gKiBNb2R1bGUgdmFyaWFibGVzLlxuICogQHByaXZhdGVcbiAqL1xuXG52YXIgZGlybmFtZSA9IHBhdGguZGlybmFtZTtcbnZhciBiYXNlbmFtZSA9IHBhdGguYmFzZW5hbWU7XG52YXIgZXh0bmFtZSA9IHBhdGguZXh0bmFtZTtcbnZhciBqb2luID0gcGF0aC5qb2luO1xudmFyIHJlc29sdmUgPSBwYXRoLnJlc29sdmU7XG5cbi8qKlxuICogTW9kdWxlIGV4cG9ydHMuXG4gKiBAcHVibGljXG4gKi9cblxubW9kdWxlLmV4cG9ydHMgPSBWaWV3O1xuXG4vKipcbiAqIEluaXRpYWxpemUgYSBuZXcgYFZpZXdgIHdpdGggdGhlIGdpdmVuIGBuYW1lYC5cbiAqXG4gKiBPcHRpb25zOlxuICpcbiAqICAgLSBgZGVmYXVsdEVuZ2luZWAgdGhlIGRlZmF1bHQgdGVtcGxhdGUgZW5naW5lIG5hbWVcbiAqICAgLSBgZW5naW5lc2AgdGVtcGxhdGUgZW5naW5lIHJlcXVpcmUoKSBjYWNoZVxuICogICAtIGByb290YCByb290IHBhdGggZm9yIHZpZXcgbG9va3VwXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IG5hbWVcbiAqIEBwYXJhbSB7b2JqZWN0fSBvcHRpb25zXG4gKiBAcHVibGljXG4gKi9cblxuZnVuY3Rpb24gVmlldyhuYW1lLCBvcHRpb25zKSB7XG4gIHZhciBvcHRzID0gb3B0aW9ucyB8fCB7fTtcblxuICB0aGlzLmRlZmF1bHRFbmdpbmUgPSBvcHRzLmRlZmF1bHRFbmdpbmU7XG4gIHRoaXMuZXh0ID0gZXh0bmFtZShuYW1lKTtcbiAgdGhpcy5uYW1lID0gbmFtZTtcbiAgdGhpcy5yb290ID0gb3B0cy5yb290O1xuXG4gIGlmICghdGhpcy5leHQgJiYgIXRoaXMuZGVmYXVsdEVuZ2luZSkge1xuICAgIHRocm93IG5ldyBFcnJvcignTm8gZGVmYXVsdCBlbmdpbmUgd2FzIHNwZWNpZmllZCBhbmQgbm8gZXh0ZW5zaW9uIHdhcyBwcm92aWRlZC4nKTtcbiAgfVxuXG4gIHZhciBmaWxlTmFtZSA9IG5hbWU7XG5cbiAgaWYgKCF0aGlzLmV4dCkge1xuICAgIC8vIGdldCBleHRlbnNpb24gZnJvbSBkZWZhdWx0IGVuZ2luZSBuYW1lXG4gICAgdGhpcy5leHQgPSB0aGlzLmRlZmF1bHRFbmdpbmVbMF0gIT09ICcuJ1xuICAgICAgPyAnLicgKyB0aGlzLmRlZmF1bHRFbmdpbmVcbiAgICAgIDogdGhpcy5kZWZhdWx0RW5naW5lO1xuXG4gICAgZmlsZU5hbWUgKz0gdGhpcy5leHQ7XG4gIH1cblxuICBpZiAoIW9wdHMuZW5naW5lc1t0aGlzLmV4dF0pIHtcbiAgICAvLyBsb2FkIGVuZ2luZVxuICAgIHZhciBtb2QgPSB0aGlzLmV4dC5zbGljZSgxKVxuICAgIGRlYnVnKCdyZXF1aXJlIFwiJXNcIicsIG1vZClcblxuICAgIC8vIGRlZmF1bHQgZW5naW5lIGV4cG9ydFxuICAgIHZhciBmbiA9IHJlcXVpcmUobW9kKS5fX2V4cHJlc3NcblxuICAgIGlmICh0eXBlb2YgZm4gIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTW9kdWxlIFwiJyArIG1vZCArICdcIiBkb2VzIG5vdCBwcm92aWRlIGEgdmlldyBlbmdpbmUuJylcbiAgICB9XG5cbiAgICBvcHRzLmVuZ2luZXNbdGhpcy5leHRdID0gZm5cbiAgfVxuXG4gIC8vIHN0b3JlIGxvYWRlZCBlbmdpbmVcbiAgdGhpcy5lbmdpbmUgPSBvcHRzLmVuZ2luZXNbdGhpcy5leHRdO1xuXG4gIC8vIGxvb2t1cCBwYXRoXG4gIHRoaXMucGF0aCA9IHRoaXMubG9va3VwKGZpbGVOYW1lKTtcbn1cblxuLyoqXG4gKiBMb29rdXAgdmlldyBieSB0aGUgZ2l2ZW4gYG5hbWVgXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IG5hbWVcbiAqIEBwcml2YXRlXG4gKi9cblxuVmlldy5wcm90b3R5cGUubG9va3VwID0gZnVuY3Rpb24gbG9va3VwKG5hbWUpIHtcbiAgdmFyIHBhdGg7XG4gIHZhciByb290cyA9IFtdLmNvbmNhdCh0aGlzLnJvb3QpO1xuXG4gIGRlYnVnKCdsb29rdXAgXCIlc1wiJywgbmFtZSk7XG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCByb290cy5sZW5ndGggJiYgIXBhdGg7IGkrKykge1xuICAgIHZhciByb290ID0gcm9vdHNbaV07XG5cbiAgICAvLyByZXNvbHZlIHRoZSBwYXRoXG4gICAgdmFyIGxvYyA9IHJlc29sdmUocm9vdCwgbmFtZSk7XG4gICAgdmFyIGRpciA9IGRpcm5hbWUobG9jKTtcbiAgICB2YXIgZmlsZSA9IGJhc2VuYW1lKGxvYyk7XG5cbiAgICAvLyByZXNvbHZlIHRoZSBmaWxlXG4gICAgcGF0aCA9IHRoaXMucmVzb2x2ZShkaXIsIGZpbGUpO1xuICB9XG5cbiAgcmV0dXJuIHBhdGg7XG59O1xuXG4vKipcbiAqIFJlbmRlciB3aXRoIHRoZSBnaXZlbiBvcHRpb25zLlxuICpcbiAqIEBwYXJhbSB7b2JqZWN0fSBvcHRpb25zXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBjYWxsYmFja1xuICogQHByaXZhdGVcbiAqL1xuXG5WaWV3LnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbiByZW5kZXIob3B0aW9ucywgY2FsbGJhY2spIHtcbiAgdmFyIHN5bmMgPSB0cnVlO1xuXG4gIGRlYnVnKCdyZW5kZXIgXCIlc1wiJywgdGhpcy5wYXRoKTtcblxuICAvLyByZW5kZXIsIG5vcm1hbGl6aW5nIHN5bmMgY2FsbGJhY2tzXG4gIHRoaXMuZW5naW5lKHRoaXMucGF0aCwgb3B0aW9ucywgZnVuY3Rpb24gb25SZW5kZXIoKSB7XG4gICAgaWYgKCFzeW5jKSB7XG4gICAgICByZXR1cm4gY2FsbGJhY2suYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICB9XG5cbiAgICAvLyBjb3B5IGFyZ3VtZW50c1xuICAgIHZhciBhcmdzID0gbmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGgpO1xuICAgIHZhciBjbnR4ID0gdGhpcztcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBhcmdzW2ldID0gYXJndW1lbnRzW2ldO1xuICAgIH1cblxuICAgIC8vIGZvcmNlIGNhbGxiYWNrIHRvIGJlIGFzeW5jXG4gICAgcmV0dXJuIHByb2Nlc3MubmV4dFRpY2soZnVuY3Rpb24gcmVuZGVyVGljaygpIHtcbiAgICAgIHJldHVybiBjYWxsYmFjay5hcHBseShjbnR4LCBhcmdzKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgc3luYyA9IGZhbHNlO1xufTtcblxuLyoqXG4gKiBSZXNvbHZlIHRoZSBmaWxlIHdpdGhpbiB0aGUgZ2l2ZW4gZGlyZWN0b3J5LlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBkaXJcbiAqIEBwYXJhbSB7c3RyaW5nfSBmaWxlXG4gKiBAcHJpdmF0ZVxuICovXG5cblZpZXcucHJvdG90eXBlLnJlc29sdmUgPSBmdW5jdGlvbiByZXNvbHZlKGRpciwgZmlsZSkge1xuICB2YXIgZXh0ID0gdGhpcy5leHQ7XG5cbiAgLy8gPHBhdGg+LjxleHQ+XG4gIHZhciBwYXRoID0gam9pbihkaXIsIGZpbGUpO1xuICB2YXIgc3RhdCA9IHRyeVN0YXQocGF0aCk7XG5cbiAgaWYgKHN0YXQgJiYgc3RhdC5pc0ZpbGUoKSkge1xuICAgIHJldHVybiBwYXRoO1xuICB9XG5cbiAgLy8gPHBhdGg+L2luZGV4LjxleHQ+XG4gIHBhdGggPSBqb2luKGRpciwgYmFzZW5hbWUoZmlsZSwgZXh0KSwgJ2luZGV4JyArIGV4dCk7XG4gIHN0YXQgPSB0cnlTdGF0KHBhdGgpO1xuXG4gIGlmIChzdGF0ICYmIHN0YXQuaXNGaWxlKCkpIHtcbiAgICByZXR1cm4gcGF0aDtcbiAgfVxufTtcblxuLyoqXG4gKiBSZXR1cm4gYSBzdGF0LCBtYXliZS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcGF0aFxuICogQHJldHVybiB7ZnMuU3RhdHN9XG4gKiBAcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIHRyeVN0YXQocGF0aCkge1xuICBkZWJ1Zygnc3RhdCBcIiVzXCInLCBwYXRoKTtcblxuICB0cnkge1xuICAgIHJldHVybiBmcy5zdGF0U3luYyhwYXRoKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cbiIsICIvKiFcbiAqIGV4cHJlc3NcbiAqIENvcHlyaWdodChjKSAyMDA5LTIwMTMgVEogSG9sb3dheWNodWtcbiAqIENvcHlyaWdodChjKSAyMDE0LTIwMTUgRG91Z2xhcyBDaHJpc3RvcGhlciBXaWxzb25cbiAqIE1JVCBMaWNlbnNlZFxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuLyoqXG4gKiBNb2R1bGUgZGVwZW5kZW5jaWVzLlxuICogQGFwaSBwcml2YXRlXG4gKi9cblxudmFyIHsgTUVUSE9EUyB9ID0gcmVxdWlyZSgnbm9kZTpodHRwJyk7XG52YXIgY29udGVudFR5cGUgPSByZXF1aXJlKCdjb250ZW50LXR5cGUnKTtcbnZhciBldGFnID0gcmVxdWlyZSgnZXRhZycpO1xudmFyIG1pbWUgPSByZXF1aXJlKCdtaW1lLXR5cGVzJylcbnZhciBwcm94eWFkZHIgPSByZXF1aXJlKCdwcm94eS1hZGRyJyk7XG52YXIgcXMgPSByZXF1aXJlKCdxcycpO1xudmFyIHF1ZXJ5c3RyaW5nID0gcmVxdWlyZSgncXVlcnlzdHJpbmcnKTtcblxuLyoqXG4gKiBBIGxpc3Qgb2YgbG93ZXJjYXNlZCBIVFRQIG1ldGhvZHMgdGhhdCBhcmUgc3VwcG9ydGVkIGJ5IE5vZGUuanMuXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuZXhwb3J0cy5tZXRob2RzID0gTUVUSE9EUy5tYXAoKG1ldGhvZCkgPT4gbWV0aG9kLnRvTG93ZXJDYXNlKCkpO1xuXG4vKipcbiAqIFJldHVybiBzdHJvbmcgRVRhZyBmb3IgYGJvZHlgLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfEJ1ZmZlcn0gYm9keVxuICogQHBhcmFtIHtTdHJpbmd9IFtlbmNvZGluZ11cbiAqIEByZXR1cm4ge1N0cmluZ31cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmV4cG9ydHMuZXRhZyA9IGNyZWF0ZUVUYWdHZW5lcmF0b3IoeyB3ZWFrOiBmYWxzZSB9KVxuXG4vKipcbiAqIFJldHVybiB3ZWFrIEVUYWcgZm9yIGBib2R5YC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ3xCdWZmZXJ9IGJvZHlcbiAqIEBwYXJhbSB7U3RyaW5nfSBbZW5jb2RpbmddXG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5leHBvcnRzLndldGFnID0gY3JlYXRlRVRhZ0dlbmVyYXRvcih7IHdlYWs6IHRydWUgfSlcblxuLyoqXG4gKiBOb3JtYWxpemUgdGhlIGdpdmVuIGB0eXBlYCwgZm9yIGV4YW1wbGUgXCJodG1sXCIgYmVjb21lcyBcInRleHQvaHRtbFwiLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSB0eXBlXG4gKiBAcmV0dXJuIHtPYmplY3R9XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5leHBvcnRzLm5vcm1hbGl6ZVR5cGUgPSBmdW5jdGlvbih0eXBlKXtcbiAgcmV0dXJuIH50eXBlLmluZGV4T2YoJy8nKVxuICAgID8gYWNjZXB0UGFyYW1zKHR5cGUpXG4gICAgOiB7IHZhbHVlOiAobWltZS5sb29rdXAodHlwZSkgfHwgJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbScpLCBwYXJhbXM6IHt9IH1cbn07XG5cbi8qKlxuICogTm9ybWFsaXplIGB0eXBlc2AsIGZvciBleGFtcGxlIFwiaHRtbFwiIGJlY29tZXMgXCJ0ZXh0L2h0bWxcIi5cbiAqXG4gKiBAcGFyYW0ge0FycmF5fSB0eXBlc1xuICogQHJldHVybiB7QXJyYXl9XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5leHBvcnRzLm5vcm1hbGl6ZVR5cGVzID0gZnVuY3Rpb24odHlwZXMpIHtcbiAgcmV0dXJuIHR5cGVzLm1hcChleHBvcnRzLm5vcm1hbGl6ZVR5cGUpO1xufTtcblxuXG4vKipcbiAqIFBhcnNlIGFjY2VwdCBwYXJhbXMgYHN0cmAgcmV0dXJuaW5nIGFuXG4gKiBvYmplY3Qgd2l0aCBgLnZhbHVlYCwgYC5xdWFsaXR5YCBhbmQgYC5wYXJhbXNgLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBzdHJcbiAqIEByZXR1cm4ge09iamVjdH1cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIGFjY2VwdFBhcmFtcyAoc3RyKSB7XG4gIHZhciBsZW5ndGggPSBzdHIubGVuZ3RoO1xuICB2YXIgY29sb25JbmRleCA9IHN0ci5pbmRleE9mKCc7Jyk7XG4gIHZhciBpbmRleCA9IGNvbG9uSW5kZXggPT09IC0xID8gbGVuZ3RoIDogY29sb25JbmRleDtcbiAgdmFyIHJldCA9IHsgdmFsdWU6IHN0ci5zbGljZSgwLCBpbmRleCkudHJpbSgpLCBxdWFsaXR5OiAxLCBwYXJhbXM6IHt9IH07XG5cbiAgd2hpbGUgKGluZGV4IDwgbGVuZ3RoKSB7XG4gICAgdmFyIHNwbGl0SW5kZXggPSBzdHIuaW5kZXhPZignPScsIGluZGV4KTtcbiAgICBpZiAoc3BsaXRJbmRleCA9PT0gLTEpIGJyZWFrO1xuXG4gICAgdmFyIGNvbG9uSW5kZXggPSBzdHIuaW5kZXhPZignOycsIGluZGV4KTtcbiAgICB2YXIgZW5kSW5kZXggPSBjb2xvbkluZGV4ID09PSAtMSA/IGxlbmd0aCA6IGNvbG9uSW5kZXg7XG5cbiAgICBpZiAoc3BsaXRJbmRleCA+IGVuZEluZGV4KSB7XG4gICAgICBpbmRleCA9IHN0ci5sYXN0SW5kZXhPZignOycsIHNwbGl0SW5kZXggLSAxKSArIDE7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICB2YXIga2V5ID0gc3RyLnNsaWNlKGluZGV4LCBzcGxpdEluZGV4KS50cmltKCk7XG4gICAgdmFyIHZhbHVlID0gc3RyLnNsaWNlKHNwbGl0SW5kZXggKyAxLCBlbmRJbmRleCkudHJpbSgpO1xuXG4gICAgaWYgKGtleSA9PT0gJ3EnKSB7XG4gICAgICByZXQucXVhbGl0eSA9IHBhcnNlRmxvYXQodmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXQucGFyYW1zW2tleV0gPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBpbmRleCA9IGVuZEluZGV4ICsgMTtcbiAgfVxuXG4gIHJldHVybiByZXQ7XG59XG5cbi8qKlxuICogQ29tcGlsZSBcImV0YWdcIiB2YWx1ZSB0byBmdW5jdGlvbi5cbiAqXG4gKiBAcGFyYW0gIHtCb29sZWFufFN0cmluZ3xGdW5jdGlvbn0gdmFsXG4gKiBAcmV0dXJuIHtGdW5jdGlvbn1cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmV4cG9ydHMuY29tcGlsZUVUYWcgPSBmdW5jdGlvbih2YWwpIHtcbiAgdmFyIGZuO1xuXG4gIGlmICh0eXBlb2YgdmFsID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIHZhbDtcbiAgfVxuXG4gIHN3aXRjaCAodmFsKSB7XG4gICAgY2FzZSB0cnVlOlxuICAgIGNhc2UgJ3dlYWsnOlxuICAgICAgZm4gPSBleHBvcnRzLndldGFnO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBmYWxzZTpcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ3N0cm9uZyc6XG4gICAgICBmbiA9IGV4cG9ydHMuZXRhZztcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCd1bmtub3duIHZhbHVlIGZvciBldGFnIGZ1bmN0aW9uOiAnICsgdmFsKTtcbiAgfVxuXG4gIHJldHVybiBmbjtcbn1cblxuLyoqXG4gKiBDb21waWxlIFwicXVlcnkgcGFyc2VyXCIgdmFsdWUgdG8gZnVuY3Rpb24uXG4gKlxuICogQHBhcmFtICB7U3RyaW5nfEZ1bmN0aW9ufSB2YWxcbiAqIEByZXR1cm4ge0Z1bmN0aW9ufVxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZXhwb3J0cy5jb21waWxlUXVlcnlQYXJzZXIgPSBmdW5jdGlvbiBjb21waWxlUXVlcnlQYXJzZXIodmFsKSB7XG4gIHZhciBmbjtcblxuICBpZiAodHlwZW9mIHZhbCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiB2YWw7XG4gIH1cblxuICBzd2l0Y2ggKHZhbCkge1xuICAgIGNhc2UgdHJ1ZTpcbiAgICBjYXNlICdzaW1wbGUnOlxuICAgICAgZm4gPSBxdWVyeXN0cmluZy5wYXJzZTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgZmFsc2U6XG4gICAgICBicmVhaztcbiAgICBjYXNlICdleHRlbmRlZCc6XG4gICAgICBmbiA9IHBhcnNlRXh0ZW5kZWRRdWVyeVN0cmluZztcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCd1bmtub3duIHZhbHVlIGZvciBxdWVyeSBwYXJzZXIgZnVuY3Rpb246ICcgKyB2YWwpO1xuICB9XG5cbiAgcmV0dXJuIGZuO1xufVxuXG4vKipcbiAqIENvbXBpbGUgXCJwcm94eSB0cnVzdFwiIHZhbHVlIHRvIGZ1bmN0aW9uLlxuICpcbiAqIEBwYXJhbSAge0Jvb2xlYW58U3RyaW5nfE51bWJlcnxBcnJheXxGdW5jdGlvbn0gdmFsXG4gKiBAcmV0dXJuIHtGdW5jdGlvbn1cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmV4cG9ydHMuY29tcGlsZVRydXN0ID0gZnVuY3Rpb24odmFsKSB7XG4gIGlmICh0eXBlb2YgdmFsID09PSAnZnVuY3Rpb24nKSByZXR1cm4gdmFsO1xuXG4gIGlmICh2YWwgPT09IHRydWUpIHtcbiAgICAvLyBTdXBwb3J0IHBsYWluIHRydWUvZmFsc2VcbiAgICByZXR1cm4gZnVuY3Rpb24oKXsgcmV0dXJuIHRydWUgfTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgdmFsID09PSAnbnVtYmVyJykge1xuICAgIC8vIFN1cHBvcnQgdHJ1c3RpbmcgaG9wIGNvdW50XG4gICAgcmV0dXJuIGZ1bmN0aW9uKGEsIGkpeyByZXR1cm4gaSA8IHZhbCB9O1xuICB9XG5cbiAgaWYgKHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnKSB7XG4gICAgLy8gU3VwcG9ydCBjb21tYS1zZXBhcmF0ZWQgdmFsdWVzXG4gICAgdmFsID0gdmFsLnNwbGl0KCcsJylcbiAgICAgIC5tYXAoZnVuY3Rpb24gKHYpIHsgcmV0dXJuIHYudHJpbSgpIH0pXG4gIH1cblxuICByZXR1cm4gcHJveHlhZGRyLmNvbXBpbGUodmFsIHx8IFtdKTtcbn1cblxuLyoqXG4gKiBTZXQgdGhlIGNoYXJzZXQgaW4gYSBnaXZlbiBDb250ZW50LVR5cGUgc3RyaW5nLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSB0eXBlXG4gKiBAcGFyYW0ge1N0cmluZ30gY2hhcnNldFxuICogQHJldHVybiB7U3RyaW5nfVxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZXhwb3J0cy5zZXRDaGFyc2V0ID0gZnVuY3Rpb24gc2V0Q2hhcnNldCh0eXBlLCBjaGFyc2V0KSB7XG4gIGlmICghdHlwZSB8fCAhY2hhcnNldCkge1xuICAgIHJldHVybiB0eXBlO1xuICB9XG5cbiAgLy8gcGFyc2UgdHlwZVxuICB2YXIgcGFyc2VkID0gY29udGVudFR5cGUucGFyc2UodHlwZSk7XG5cbiAgLy8gc2V0IGNoYXJzZXRcbiAgcGFyc2VkLnBhcmFtZXRlcnMuY2hhcnNldCA9IGNoYXJzZXQ7XG5cbiAgLy8gZm9ybWF0IHR5cGVcbiAgcmV0dXJuIGNvbnRlbnRUeXBlLmZvcm1hdChwYXJzZWQpO1xufTtcblxuLyoqXG4gKiBDcmVhdGUgYW4gRVRhZyBnZW5lcmF0b3IgZnVuY3Rpb24sIGdlbmVyYXRpbmcgRVRhZ3Mgd2l0aFxuICogdGhlIGdpdmVuIG9wdGlvbnMuXG4gKlxuICogQHBhcmFtIHtvYmplY3R9IG9wdGlvbnNcbiAqIEByZXR1cm4ge2Z1bmN0aW9ufVxuICogQHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBjcmVhdGVFVGFnR2VuZXJhdG9yIChvcHRpb25zKSB7XG4gIHJldHVybiBmdW5jdGlvbiBnZW5lcmF0ZUVUYWcgKGJvZHksIGVuY29kaW5nKSB7XG4gICAgdmFyIGJ1ZiA9ICFCdWZmZXIuaXNCdWZmZXIoYm9keSlcbiAgICAgID8gQnVmZmVyLmZyb20oYm9keSwgZW5jb2RpbmcpXG4gICAgICA6IGJvZHlcblxuICAgIHJldHVybiBldGFnKGJ1Ziwgb3B0aW9ucylcbiAgfVxufVxuXG4vKipcbiAqIFBhcnNlIGFuIGV4dGVuZGVkIHF1ZXJ5IHN0cmluZyB3aXRoIHFzLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBzdHJcbiAqIEByZXR1cm4ge09iamVjdH1cbiAqIEBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gcGFyc2VFeHRlbmRlZFF1ZXJ5U3RyaW5nKHN0cikge1xuICByZXR1cm4gcXMucGFyc2Uoc3RyLCB7XG4gICAgYWxsb3dQcm90b3R5cGVzOiB0cnVlXG4gIH0pO1xufVxuIiwgIi8qIVxuICogZXhwcmVzc1xuICogQ29weXJpZ2h0KGMpIDIwMDktMjAxMyBUSiBIb2xvd2F5Y2h1a1xuICogQ29weXJpZ2h0KGMpIDIwMTMgUm9tYW4gU2h0eWxtYW5cbiAqIENvcHlyaWdodChjKSAyMDE0LTIwMTUgRG91Z2xhcyBDaHJpc3RvcGhlciBXaWxzb25cbiAqIE1JVCBMaWNlbnNlZFxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuLyoqXG4gKiBNb2R1bGUgZGVwZW5kZW5jaWVzLlxuICogQHByaXZhdGVcbiAqL1xuXG52YXIgZmluYWxoYW5kbGVyID0gcmVxdWlyZSgnZmluYWxoYW5kbGVyJyk7XG52YXIgZGVidWcgPSByZXF1aXJlKCdkZWJ1ZycpKCdleHByZXNzOmFwcGxpY2F0aW9uJyk7XG52YXIgVmlldyA9IHJlcXVpcmUoJy4vdmlldycpO1xudmFyIGh0dHAgPSByZXF1aXJlKCdub2RlOmh0dHAnKTtcbnZhciBtZXRob2RzID0gcmVxdWlyZSgnLi91dGlscycpLm1ldGhvZHM7XG52YXIgY29tcGlsZUVUYWcgPSByZXF1aXJlKCcuL3V0aWxzJykuY29tcGlsZUVUYWc7XG52YXIgY29tcGlsZVF1ZXJ5UGFyc2VyID0gcmVxdWlyZSgnLi91dGlscycpLmNvbXBpbGVRdWVyeVBhcnNlcjtcbnZhciBjb21waWxlVHJ1c3QgPSByZXF1aXJlKCcuL3V0aWxzJykuY29tcGlsZVRydXN0O1xudmFyIHJlc29sdmUgPSByZXF1aXJlKCdub2RlOnBhdGgnKS5yZXNvbHZlO1xudmFyIG9uY2UgPSByZXF1aXJlKCdvbmNlJylcbnZhciBSb3V0ZXIgPSByZXF1aXJlKCdyb3V0ZXInKTtcblxuLyoqXG4gKiBNb2R1bGUgdmFyaWFibGVzLlxuICogQHByaXZhdGVcbiAqL1xuXG52YXIgc2xpY2UgPSBBcnJheS5wcm90b3R5cGUuc2xpY2U7XG52YXIgZmxhdHRlbiA9IEFycmF5LnByb3RvdHlwZS5mbGF0O1xuXG4vKipcbiAqIEFwcGxpY2F0aW9uIHByb3RvdHlwZS5cbiAqL1xuXG52YXIgYXBwID0gZXhwb3J0cyA9IG1vZHVsZS5leHBvcnRzID0ge307XG5cbi8qKlxuICogVmFyaWFibGUgZm9yIHRydXN0IHByb3h5IGluaGVyaXRhbmNlIGJhY2stY29tcGF0XG4gKiBAcHJpdmF0ZVxuICovXG5cbnZhciB0cnVzdFByb3h5RGVmYXVsdFN5bWJvbCA9ICdAQHN5bWJvbDp0cnVzdF9wcm94eV9kZWZhdWx0JztcblxuLyoqXG4gKiBJbml0aWFsaXplIHRoZSBzZXJ2ZXIuXG4gKlxuICogICAtIHNldHVwIGRlZmF1bHQgY29uZmlndXJhdGlvblxuICogICAtIHNldHVwIGRlZmF1bHQgbWlkZGxld2FyZVxuICogICAtIHNldHVwIHJvdXRlIHJlZmxlY3Rpb24gbWV0aG9kc1xuICpcbiAqIEBwcml2YXRlXG4gKi9cblxuYXBwLmluaXQgPSBmdW5jdGlvbiBpbml0KCkge1xuICB2YXIgcm91dGVyID0gbnVsbDtcblxuICB0aGlzLmNhY2hlID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgdGhpcy5lbmdpbmVzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgdGhpcy5zZXR0aW5ncyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG5cbiAgdGhpcy5kZWZhdWx0Q29uZmlndXJhdGlvbigpO1xuXG4gIC8vIFNldHVwIGdldHRpbmcgdG8gbGF6aWx5IGFkZCBiYXNlIHJvdXRlclxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgJ3JvdXRlcicsIHtcbiAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uIGdldHJvdXRlcigpIHtcbiAgICAgIGlmIChyb3V0ZXIgPT09IG51bGwpIHtcbiAgICAgICAgcm91dGVyID0gbmV3IFJvdXRlcih7XG4gICAgICAgICAgY2FzZVNlbnNpdGl2ZTogdGhpcy5lbmFibGVkKCdjYXNlIHNlbnNpdGl2ZSByb3V0aW5nJyksXG4gICAgICAgICAgc3RyaWN0OiB0aGlzLmVuYWJsZWQoJ3N0cmljdCByb3V0aW5nJylcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByb3V0ZXI7XG4gICAgfVxuICB9KTtcbn07XG5cbi8qKlxuICogSW5pdGlhbGl6ZSBhcHBsaWNhdGlvbiBjb25maWd1cmF0aW9uLlxuICogQHByaXZhdGVcbiAqL1xuXG5hcHAuZGVmYXVsdENvbmZpZ3VyYXRpb24gPSBmdW5jdGlvbiBkZWZhdWx0Q29uZmlndXJhdGlvbigpIHtcbiAgdmFyIGVudiA9IHByb2Nlc3MuZW52Lk5PREVfRU5WIHx8ICdkZXZlbG9wbWVudCc7XG5cbiAgLy8gZGVmYXVsdCBzZXR0aW5nc1xuICB0aGlzLmVuYWJsZSgneC1wb3dlcmVkLWJ5Jyk7XG4gIHRoaXMuc2V0KCdldGFnJywgJ3dlYWsnKTtcbiAgdGhpcy5zZXQoJ2VudicsIGVudik7XG4gIHRoaXMuc2V0KCdxdWVyeSBwYXJzZXInLCAnc2ltcGxlJylcbiAgdGhpcy5zZXQoJ3N1YmRvbWFpbiBvZmZzZXQnLCAyKTtcbiAgdGhpcy5zZXQoJ3RydXN0IHByb3h5JywgZmFsc2UpO1xuXG4gIC8vIHRydXN0IHByb3h5IGluaGVyaXQgYmFjay1jb21wYXRcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMuc2V0dGluZ3MsIHRydXN0UHJveHlEZWZhdWx0U3ltYm9sLCB7XG4gICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgIHZhbHVlOiB0cnVlXG4gIH0pO1xuXG4gIGRlYnVnKCdib290aW5nIGluICVzIG1vZGUnLCBlbnYpO1xuXG4gIHRoaXMub24oJ21vdW50JywgZnVuY3Rpb24gb25tb3VudChwYXJlbnQpIHtcbiAgICAvLyBpbmhlcml0IHRydXN0IHByb3h5XG4gICAgaWYgKHRoaXMuc2V0dGluZ3NbdHJ1c3RQcm94eURlZmF1bHRTeW1ib2xdID09PSB0cnVlXG4gICAgICAmJiB0eXBlb2YgcGFyZW50LnNldHRpbmdzWyd0cnVzdCBwcm94eSBmbiddID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBkZWxldGUgdGhpcy5zZXR0aW5nc1sndHJ1c3QgcHJveHknXTtcbiAgICAgIGRlbGV0ZSB0aGlzLnNldHRpbmdzWyd0cnVzdCBwcm94eSBmbiddO1xuICAgIH1cblxuICAgIC8vIGluaGVyaXQgcHJvdG9zXG4gICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMucmVxdWVzdCwgcGFyZW50LnJlcXVlc3QpXG4gICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMucmVzcG9uc2UsIHBhcmVudC5yZXNwb25zZSlcbiAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcy5lbmdpbmVzLCBwYXJlbnQuZW5naW5lcylcbiAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcy5zZXR0aW5ncywgcGFyZW50LnNldHRpbmdzKVxuICB9KTtcblxuICAvLyBzZXR1cCBsb2NhbHNcbiAgdGhpcy5sb2NhbHMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuXG4gIC8vIHRvcC1tb3N0IGFwcCBpcyBtb3VudGVkIGF0IC9cbiAgdGhpcy5tb3VudHBhdGggPSAnLyc7XG5cbiAgLy8gZGVmYXVsdCBsb2NhbHNcbiAgdGhpcy5sb2NhbHMuc2V0dGluZ3MgPSB0aGlzLnNldHRpbmdzO1xuXG4gIC8vIGRlZmF1bHQgY29uZmlndXJhdGlvblxuICB0aGlzLnNldCgndmlldycsIFZpZXcpO1xuICB0aGlzLnNldCgndmlld3MnLCByZXNvbHZlKCd2aWV3cycpKTtcbiAgdGhpcy5zZXQoJ2pzb25wIGNhbGxiYWNrIG5hbWUnLCAnY2FsbGJhY2snKTtcblxuICBpZiAoZW52ID09PSAncHJvZHVjdGlvbicpIHtcbiAgICB0aGlzLmVuYWJsZSgndmlldyBjYWNoZScpO1xuICB9XG59O1xuXG4vKipcbiAqIERpc3BhdGNoIGEgcmVxLCByZXMgcGFpciBpbnRvIHRoZSBhcHBsaWNhdGlvbi4gU3RhcnRzIHBpcGVsaW5lIHByb2Nlc3NpbmcuXG4gKlxuICogSWYgbm8gY2FsbGJhY2sgaXMgcHJvdmlkZWQsIHRoZW4gZGVmYXVsdCBlcnJvciBoYW5kbGVycyB3aWxsIHJlc3BvbmRcbiAqIGluIHRoZSBldmVudCBvZiBhbiBlcnJvciBidWJibGluZyB0aHJvdWdoIHRoZSBzdGFjay5cbiAqXG4gKiBAcHJpdmF0ZVxuICovXG5cbmFwcC5oYW5kbGUgPSBmdW5jdGlvbiBoYW5kbGUocmVxLCByZXMsIGNhbGxiYWNrKSB7XG4gIC8vIGZpbmFsIGhhbmRsZXJcbiAgdmFyIGRvbmUgPSBjYWxsYmFjayB8fCBmaW5hbGhhbmRsZXIocmVxLCByZXMsIHtcbiAgICBlbnY6IHRoaXMuZ2V0KCdlbnYnKSxcbiAgICBvbmVycm9yOiBsb2dlcnJvci5iaW5kKHRoaXMpXG4gIH0pO1xuXG4gIC8vIHNldCBwb3dlcmVkIGJ5IGhlYWRlclxuICBpZiAodGhpcy5lbmFibGVkKCd4LXBvd2VyZWQtYnknKSkge1xuICAgIHJlcy5zZXRIZWFkZXIoJ1gtUG93ZXJlZC1CeScsICdFeHByZXNzJyk7XG4gIH1cblxuICAvLyBzZXQgY2lyY3VsYXIgcmVmZXJlbmNlc1xuICByZXEucmVzID0gcmVzO1xuICByZXMucmVxID0gcmVxO1xuXG4gIC8vIGFsdGVyIHRoZSBwcm90b3R5cGVzXG4gIE9iamVjdC5zZXRQcm90b3R5cGVPZihyZXEsIHRoaXMucmVxdWVzdClcbiAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHJlcywgdGhpcy5yZXNwb25zZSlcblxuICAvLyBzZXR1cCBsb2NhbHNcbiAgaWYgKCFyZXMubG9jYWxzKSB7XG4gICAgcmVzLmxvY2FscyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gIH1cblxuICB0aGlzLnJvdXRlci5oYW5kbGUocmVxLCByZXMsIGRvbmUpO1xufTtcblxuLyoqXG4gKiBQcm94eSBgUm91dGVyI3VzZSgpYCB0byBhZGQgbWlkZGxld2FyZSB0byB0aGUgYXBwIHJvdXRlci5cbiAqIFNlZSBSb3V0ZXIjdXNlKCkgZG9jdW1lbnRhdGlvbiBmb3IgZGV0YWlscy5cbiAqXG4gKiBJZiB0aGUgX2ZuXyBwYXJhbWV0ZXIgaXMgYW4gZXhwcmVzcyBhcHAsIHRoZW4gaXQgd2lsbCBiZVxuICogbW91bnRlZCBhdCB0aGUgX3JvdXRlXyBzcGVjaWZpZWQuXG4gKlxuICogQHB1YmxpY1xuICovXG5cbmFwcC51c2UgPSBmdW5jdGlvbiB1c2UoZm4pIHtcbiAgdmFyIG9mZnNldCA9IDA7XG4gIHZhciBwYXRoID0gJy8nO1xuXG4gIC8vIGRlZmF1bHQgcGF0aCB0byAnLydcbiAgLy8gZGlzYW1iaWd1YXRlIGFwcC51c2UoW2ZuXSlcbiAgaWYgKHR5cGVvZiBmbiAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIHZhciBhcmcgPSBmbjtcblxuICAgIHdoaWxlIChBcnJheS5pc0FycmF5KGFyZykgJiYgYXJnLmxlbmd0aCAhPT0gMCkge1xuICAgICAgYXJnID0gYXJnWzBdO1xuICAgIH1cblxuICAgIC8vIGZpcnN0IGFyZyBpcyB0aGUgcGF0aFxuICAgIGlmICh0eXBlb2YgYXJnICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICBvZmZzZXQgPSAxO1xuICAgICAgcGF0aCA9IGZuO1xuICAgIH1cbiAgfVxuXG4gIHZhciBmbnMgPSBmbGF0dGVuLmNhbGwoc2xpY2UuY2FsbChhcmd1bWVudHMsIG9mZnNldCksIEluZmluaXR5KTtcblxuICBpZiAoZm5zLmxlbmd0aCA9PT0gMCkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ2FwcC51c2UoKSByZXF1aXJlcyBhIG1pZGRsZXdhcmUgZnVuY3Rpb24nKVxuICB9XG5cbiAgLy8gZ2V0IHJvdXRlclxuICB2YXIgcm91dGVyID0gdGhpcy5yb3V0ZXI7XG5cbiAgZm5zLmZvckVhY2goZnVuY3Rpb24gKGZuKSB7XG4gICAgLy8gbm9uLWV4cHJlc3MgYXBwXG4gICAgaWYgKCFmbiB8fCAhZm4uaGFuZGxlIHx8ICFmbi5zZXQpIHtcbiAgICAgIHJldHVybiByb3V0ZXIudXNlKHBhdGgsIGZuKTtcbiAgICB9XG5cbiAgICBkZWJ1ZygnLnVzZSBhcHAgdW5kZXIgJXMnLCBwYXRoKTtcbiAgICBmbi5tb3VudHBhdGggPSBwYXRoO1xuICAgIGZuLnBhcmVudCA9IHRoaXM7XG5cbiAgICAvLyByZXN0b3JlIC5hcHAgcHJvcGVydHkgb24gcmVxIGFuZCByZXNcbiAgICByb3V0ZXIudXNlKHBhdGgsIGZ1bmN0aW9uIG1vdW50ZWRfYXBwKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgICB2YXIgb3JpZyA9IHJlcS5hcHA7XG4gICAgICBmbi5oYW5kbGUocmVxLCByZXMsIGZ1bmN0aW9uIChlcnIpIHtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHJlcSwgb3JpZy5yZXF1ZXN0KVxuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YocmVzLCBvcmlnLnJlc3BvbnNlKVxuICAgICAgICBuZXh0KGVycik7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIC8vIG1vdW50ZWQgYW4gYXBwXG4gICAgZm4uZW1pdCgnbW91bnQnLCB0aGlzKTtcbiAgfSwgdGhpcyk7XG5cbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIFByb3h5IHRvIHRoZSBhcHAgYFJvdXRlciNyb3V0ZSgpYFxuICogUmV0dXJucyBhIG5ldyBgUm91dGVgIGluc3RhbmNlIGZvciB0aGUgX3BhdGhfLlxuICpcbiAqIFJvdXRlcyBhcmUgaXNvbGF0ZWQgbWlkZGxld2FyZSBzdGFja3MgZm9yIHNwZWNpZmljIHBhdGhzLlxuICogU2VlIHRoZSBSb3V0ZSBhcGkgZG9jcyBmb3IgZGV0YWlscy5cbiAqXG4gKiBAcHVibGljXG4gKi9cblxuYXBwLnJvdXRlID0gZnVuY3Rpb24gcm91dGUocGF0aCkge1xuICByZXR1cm4gdGhpcy5yb3V0ZXIucm91dGUocGF0aCk7XG59O1xuXG4vKipcbiAqIFJlZ2lzdGVyIHRoZSBnaXZlbiB0ZW1wbGF0ZSBlbmdpbmUgY2FsbGJhY2sgYGZuYFxuICogYXMgYGV4dGAuXG4gKlxuICogQnkgZGVmYXVsdCB3aWxsIGByZXF1aXJlKClgIHRoZSBlbmdpbmUgYmFzZWQgb24gdGhlXG4gKiBmaWxlIGV4dGVuc2lvbi4gRm9yIGV4YW1wbGUgaWYgeW91IHRyeSB0byByZW5kZXJcbiAqIGEgXCJmb28uZWpzXCIgZmlsZSBFeHByZXNzIHdpbGwgaW52b2tlIHRoZSBmb2xsb3dpbmcgaW50ZXJuYWxseTpcbiAqXG4gKiAgICAgYXBwLmVuZ2luZSgnZWpzJywgcmVxdWlyZSgnZWpzJykuX19leHByZXNzKTtcbiAqXG4gKiBGb3IgZW5naW5lcyB0aGF0IGRvIG5vdCBwcm92aWRlIGAuX19leHByZXNzYCBvdXQgb2YgdGhlIGJveCxcbiAqIG9yIGlmIHlvdSB3aXNoIHRvIFwibWFwXCIgYSBkaWZmZXJlbnQgZXh0ZW5zaW9uIHRvIHRoZSB0ZW1wbGF0ZSBlbmdpbmVcbiAqIHlvdSBtYXkgdXNlIHRoaXMgbWV0aG9kLiBGb3IgZXhhbXBsZSBtYXBwaW5nIHRoZSBFSlMgdGVtcGxhdGUgZW5naW5lIHRvXG4gKiBcIi5odG1sXCIgZmlsZXM6XG4gKlxuICogICAgIGFwcC5lbmdpbmUoJ2h0bWwnLCByZXF1aXJlKCdlanMnKS5yZW5kZXJGaWxlKTtcbiAqXG4gKiBJbiB0aGlzIGNhc2UgRUpTIHByb3ZpZGVzIGEgYC5yZW5kZXJGaWxlKClgIG1ldGhvZCB3aXRoXG4gKiB0aGUgc2FtZSBzaWduYXR1cmUgdGhhdCBFeHByZXNzIGV4cGVjdHM6IGAocGF0aCwgb3B0aW9ucywgY2FsbGJhY2spYCxcbiAqIHRob3VnaCBub3RlIHRoYXQgaXQgYWxpYXNlcyB0aGlzIG1ldGhvZCBhcyBgZWpzLl9fZXhwcmVzc2AgaW50ZXJuYWxseVxuICogc28gaWYgeW91J3JlIHVzaW5nIFwiLmVqc1wiIGV4dGVuc2lvbnMgeW91IGRvbid0IG5lZWQgdG8gZG8gYW55dGhpbmcuXG4gKlxuICogU29tZSB0ZW1wbGF0ZSBlbmdpbmVzIGRvIG5vdCBmb2xsb3cgdGhpcyBjb252ZW50aW9uLCB0aGVcbiAqIFtDb25zb2xpZGF0ZS5qc10oaHR0cHM6Ly9naXRodWIuY29tL3RqL2NvbnNvbGlkYXRlLmpzKVxuICogbGlicmFyeSB3YXMgY3JlYXRlZCB0byBtYXAgYWxsIG9mIG5vZGUncyBwb3B1bGFyIHRlbXBsYXRlXG4gKiBlbmdpbmVzIHRvIGZvbGxvdyB0aGlzIGNvbnZlbnRpb24sIHRodXMgYWxsb3dpbmcgdGhlbSB0b1xuICogd29yayBzZWFtbGVzc2x5IHdpdGhpbiBFeHByZXNzLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBleHRcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZuXG4gKiBAcmV0dXJuIHthcHB9IGZvciBjaGFpbmluZ1xuICogQHB1YmxpY1xuICovXG5cbmFwcC5lbmdpbmUgPSBmdW5jdGlvbiBlbmdpbmUoZXh0LCBmbikge1xuICBpZiAodHlwZW9mIGZuICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdjYWxsYmFjayBmdW5jdGlvbiByZXF1aXJlZCcpO1xuICB9XG5cbiAgLy8gZ2V0IGZpbGUgZXh0ZW5zaW9uXG4gIHZhciBleHRlbnNpb24gPSBleHRbMF0gIT09ICcuJ1xuICAgID8gJy4nICsgZXh0XG4gICAgOiBleHQ7XG5cbiAgLy8gc3RvcmUgZW5naW5lXG4gIHRoaXMuZW5naW5lc1tleHRlbnNpb25dID0gZm47XG5cbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIFByb3h5IHRvIGBSb3V0ZXIjcGFyYW0oKWAgd2l0aCBvbmUgYWRkZWQgYXBpIGZlYXR1cmUuIFRoZSBfbmFtZV8gcGFyYW1ldGVyXG4gKiBjYW4gYmUgYW4gYXJyYXkgb2YgbmFtZXMuXG4gKlxuICogU2VlIHRoZSBSb3V0ZXIjcGFyYW0oKSBkb2NzIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd8QXJyYXl9IG5hbWVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZuXG4gKiBAcmV0dXJuIHthcHB9IGZvciBjaGFpbmluZ1xuICogQHB1YmxpY1xuICovXG5cbmFwcC5wYXJhbSA9IGZ1bmN0aW9uIHBhcmFtKG5hbWUsIGZuKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KG5hbWUpKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuYW1lLmxlbmd0aDsgaSsrKSB7XG4gICAgICB0aGlzLnBhcmFtKG5hbWVbaV0sIGZuKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHRoaXMucm91dGVyLnBhcmFtKG5hbWUsIGZuKTtcblxuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogQXNzaWduIGBzZXR0aW5nYCB0byBgdmFsYCwgb3IgcmV0dXJuIGBzZXR0aW5nYCdzIHZhbHVlLlxuICpcbiAqICAgIGFwcC5zZXQoJ2ZvbycsICdiYXInKTtcbiAqICAgIGFwcC5zZXQoJ2ZvbycpO1xuICogICAgLy8gPT4gXCJiYXJcIlxuICpcbiAqIE1vdW50ZWQgc2VydmVycyBpbmhlcml0IHRoZWlyIHBhcmVudCBzZXJ2ZXIncyBzZXR0aW5ncy5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gc2V0dGluZ1xuICogQHBhcmFtIHsqfSBbdmFsXVxuICogQHJldHVybiB7U2VydmVyfSBmb3IgY2hhaW5pbmdcbiAqIEBwdWJsaWNcbiAqL1xuXG5hcHAuc2V0ID0gZnVuY3Rpb24gc2V0KHNldHRpbmcsIHZhbCkge1xuICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMSkge1xuICAgIC8vIGFwcC5nZXQoc2V0dGluZylcbiAgICByZXR1cm4gdGhpcy5zZXR0aW5nc1tzZXR0aW5nXTtcbiAgfVxuXG4gIGRlYnVnKCdzZXQgXCIlc1wiIHRvICVvJywgc2V0dGluZywgdmFsKTtcblxuICAvLyBzZXQgdmFsdWVcbiAgdGhpcy5zZXR0aW5nc1tzZXR0aW5nXSA9IHZhbDtcblxuICAvLyB0cmlnZ2VyIG1hdGNoZWQgc2V0dGluZ3NcbiAgc3dpdGNoIChzZXR0aW5nKSB7XG4gICAgY2FzZSAnZXRhZyc6XG4gICAgICB0aGlzLnNldCgnZXRhZyBmbicsIGNvbXBpbGVFVGFnKHZhbCkpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAncXVlcnkgcGFyc2VyJzpcbiAgICAgIHRoaXMuc2V0KCdxdWVyeSBwYXJzZXIgZm4nLCBjb21waWxlUXVlcnlQYXJzZXIodmFsKSk7XG4gICAgICBicmVhaztcbiAgICBjYXNlICd0cnVzdCBwcm94eSc6XG4gICAgICB0aGlzLnNldCgndHJ1c3QgcHJveHkgZm4nLCBjb21waWxlVHJ1c3QodmFsKSk7XG5cbiAgICAgIC8vIHRydXN0IHByb3h5IGluaGVyaXQgYmFjay1jb21wYXRcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLnNldHRpbmdzLCB0cnVzdFByb3h5RGVmYXVsdFN5bWJvbCwge1xuICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgIHZhbHVlOiBmYWxzZVxuICAgICAgfSk7XG5cbiAgICAgIGJyZWFrO1xuICB9XG5cbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIFJldHVybiB0aGUgYXBwJ3MgYWJzb2x1dGUgcGF0aG5hbWVcbiAqIGJhc2VkIG9uIHRoZSBwYXJlbnQocykgdGhhdCBoYXZlXG4gKiBtb3VudGVkIGl0LlxuICpcbiAqIEZvciBleGFtcGxlIGlmIHRoZSBhcHBsaWNhdGlvbiB3YXNcbiAqIG1vdW50ZWQgYXMgXCIvYWRtaW5cIiwgd2hpY2ggaXRzZWxmXG4gKiB3YXMgbW91bnRlZCBhcyBcIi9ibG9nXCIgdGhlbiB0aGVcbiAqIHJldHVybiB2YWx1ZSB3b3VsZCBiZSBcIi9ibG9nL2FkbWluXCIuXG4gKlxuICogQHJldHVybiB7U3RyaW5nfVxuICogQHByaXZhdGVcbiAqL1xuXG5hcHAucGF0aCA9IGZ1bmN0aW9uIHBhdGgoKSB7XG4gIHJldHVybiB0aGlzLnBhcmVudFxuICAgID8gdGhpcy5wYXJlbnQucGF0aCgpICsgdGhpcy5tb3VudHBhdGhcbiAgICA6ICcnO1xufTtcblxuLyoqXG4gKiBDaGVjayBpZiBgc2V0dGluZ2AgaXMgZW5hYmxlZCAodHJ1dGh5KS5cbiAqXG4gKiAgICBhcHAuZW5hYmxlZCgnZm9vJylcbiAqICAgIC8vID0+IGZhbHNlXG4gKlxuICogICAgYXBwLmVuYWJsZSgnZm9vJylcbiAqICAgIGFwcC5lbmFibGVkKCdmb28nKVxuICogICAgLy8gPT4gdHJ1ZVxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBzZXR0aW5nXG4gKiBAcmV0dXJuIHtCb29sZWFufVxuICogQHB1YmxpY1xuICovXG5cbmFwcC5lbmFibGVkID0gZnVuY3Rpb24gZW5hYmxlZChzZXR0aW5nKSB7XG4gIHJldHVybiBCb29sZWFuKHRoaXMuc2V0KHNldHRpbmcpKTtcbn07XG5cbi8qKlxuICogQ2hlY2sgaWYgYHNldHRpbmdgIGlzIGRpc2FibGVkLlxuICpcbiAqICAgIGFwcC5kaXNhYmxlZCgnZm9vJylcbiAqICAgIC8vID0+IHRydWVcbiAqXG4gKiAgICBhcHAuZW5hYmxlKCdmb28nKVxuICogICAgYXBwLmRpc2FibGVkKCdmb28nKVxuICogICAgLy8gPT4gZmFsc2VcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gc2V0dGluZ1xuICogQHJldHVybiB7Qm9vbGVhbn1cbiAqIEBwdWJsaWNcbiAqL1xuXG5hcHAuZGlzYWJsZWQgPSBmdW5jdGlvbiBkaXNhYmxlZChzZXR0aW5nKSB7XG4gIHJldHVybiAhdGhpcy5zZXQoc2V0dGluZyk7XG59O1xuXG4vKipcbiAqIEVuYWJsZSBgc2V0dGluZ2AuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHNldHRpbmdcbiAqIEByZXR1cm4ge2FwcH0gZm9yIGNoYWluaW5nXG4gKiBAcHVibGljXG4gKi9cblxuYXBwLmVuYWJsZSA9IGZ1bmN0aW9uIGVuYWJsZShzZXR0aW5nKSB7XG4gIHJldHVybiB0aGlzLnNldChzZXR0aW5nLCB0cnVlKTtcbn07XG5cbi8qKlxuICogRGlzYWJsZSBgc2V0dGluZ2AuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHNldHRpbmdcbiAqIEByZXR1cm4ge2FwcH0gZm9yIGNoYWluaW5nXG4gKiBAcHVibGljXG4gKi9cblxuYXBwLmRpc2FibGUgPSBmdW5jdGlvbiBkaXNhYmxlKHNldHRpbmcpIHtcbiAgcmV0dXJuIHRoaXMuc2V0KHNldHRpbmcsIGZhbHNlKTtcbn07XG5cbi8qKlxuICogRGVsZWdhdGUgYC5WRVJCKC4uLilgIGNhbGxzIHRvIGByb3V0ZXIuVkVSQiguLi4pYC5cbiAqL1xuXG5tZXRob2RzLmZvckVhY2goZnVuY3Rpb24gKG1ldGhvZCkge1xuICBhcHBbbWV0aG9kXSA9IGZ1bmN0aW9uIChwYXRoKSB7XG4gICAgaWYgKG1ldGhvZCA9PT0gJ2dldCcgJiYgYXJndW1lbnRzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgLy8gYXBwLmdldChzZXR0aW5nKVxuICAgICAgcmV0dXJuIHRoaXMuc2V0KHBhdGgpO1xuICAgIH1cblxuICAgIHZhciByb3V0ZSA9IHRoaXMucm91dGUocGF0aCk7XG4gICAgcm91dGVbbWV0aG9kXS5hcHBseShyb3V0ZSwgc2xpY2UuY2FsbChhcmd1bWVudHMsIDEpKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfTtcbn0pO1xuXG4vKipcbiAqIFNwZWNpYWwtY2FzZWQgXCJhbGxcIiBtZXRob2QsIGFwcGx5aW5nIHRoZSBnaXZlbiByb3V0ZSBgcGF0aGAsXG4gKiBtaWRkbGV3YXJlLCBhbmQgY2FsbGJhY2sgdG8gX2V2ZXJ5XyBIVFRQIG1ldGhvZC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gcGF0aFxuICogQHBhcmFtIHtGdW5jdGlvbn0gLi4uXG4gKiBAcmV0dXJuIHthcHB9IGZvciBjaGFpbmluZ1xuICogQHB1YmxpY1xuICovXG5cbmFwcC5hbGwgPSBmdW5jdGlvbiBhbGwocGF0aCkge1xuICB2YXIgcm91dGUgPSB0aGlzLnJvdXRlKHBhdGgpO1xuICB2YXIgYXJncyA9IHNsaWNlLmNhbGwoYXJndW1lbnRzLCAxKTtcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IG1ldGhvZHMubGVuZ3RoOyBpKyspIHtcbiAgICByb3V0ZVttZXRob2RzW2ldXS5hcHBseShyb3V0ZSwgYXJncyk7XG4gIH1cblxuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogUmVuZGVyIHRoZSBnaXZlbiB2aWV3IGBuYW1lYCBuYW1lIHdpdGggYG9wdGlvbnNgXG4gKiBhbmQgYSBjYWxsYmFjayBhY2NlcHRpbmcgYW4gZXJyb3IgYW5kIHRoZVxuICogcmVuZGVyZWQgdGVtcGxhdGUgc3RyaW5nLlxuICpcbiAqIEV4YW1wbGU6XG4gKlxuICogICAgYXBwLnJlbmRlcignZW1haWwnLCB7IG5hbWU6ICdUb2JpJyB9LCBmdW5jdGlvbihlcnIsIGh0bWwpe1xuICogICAgICAvLyAuLi5cbiAqICAgIH0pXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IG5hbWVcbiAqIEBwYXJhbSB7T2JqZWN0fEZ1bmN0aW9ufSBvcHRpb25zIG9yIGZuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBjYWxsYmFja1xuICogQHB1YmxpY1xuICovXG5cbmFwcC5yZW5kZXIgPSBmdW5jdGlvbiByZW5kZXIobmFtZSwgb3B0aW9ucywgY2FsbGJhY2spIHtcbiAgdmFyIGNhY2hlID0gdGhpcy5jYWNoZTtcbiAgdmFyIGRvbmUgPSBjYWxsYmFjaztcbiAgdmFyIGVuZ2luZXMgPSB0aGlzLmVuZ2luZXM7XG4gIHZhciBvcHRzID0gb3B0aW9ucztcbiAgdmFyIHZpZXc7XG5cbiAgLy8gc3VwcG9ydCBjYWxsYmFjayBmdW5jdGlvbiBhcyBzZWNvbmQgYXJnXG4gIGlmICh0eXBlb2Ygb3B0aW9ucyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGRvbmUgPSBvcHRpb25zO1xuICAgIG9wdHMgPSB7fTtcbiAgfVxuXG4gIC8vIG1lcmdlIG9wdGlvbnNcbiAgdmFyIHJlbmRlck9wdGlvbnMgPSB7IC4uLnRoaXMubG9jYWxzLCAuLi5vcHRzLl9sb2NhbHMsIC4uLm9wdHMgfTtcblxuICAvLyBzZXQgLmNhY2hlIHVubGVzcyBleHBsaWNpdGx5IHByb3ZpZGVkXG4gIGlmIChyZW5kZXJPcHRpb25zLmNhY2hlID09IG51bGwpIHtcbiAgICByZW5kZXJPcHRpb25zLmNhY2hlID0gdGhpcy5lbmFibGVkKCd2aWV3IGNhY2hlJyk7XG4gIH1cblxuICAvLyBwcmltZWQgY2FjaGVcbiAgaWYgKHJlbmRlck9wdGlvbnMuY2FjaGUpIHtcbiAgICB2aWV3ID0gY2FjaGVbbmFtZV07XG4gIH1cblxuICAvLyB2aWV3XG4gIGlmICghdmlldykge1xuICAgIHZhciBWaWV3ID0gdGhpcy5nZXQoJ3ZpZXcnKTtcblxuICAgIHZpZXcgPSBuZXcgVmlldyhuYW1lLCB7XG4gICAgICBkZWZhdWx0RW5naW5lOiB0aGlzLmdldCgndmlldyBlbmdpbmUnKSxcbiAgICAgIHJvb3Q6IHRoaXMuZ2V0KCd2aWV3cycpLFxuICAgICAgZW5naW5lczogZW5naW5lc1xuICAgIH0pO1xuXG4gICAgaWYgKCF2aWV3LnBhdGgpIHtcbiAgICAgIHZhciBkaXJzID0gQXJyYXkuaXNBcnJheSh2aWV3LnJvb3QpICYmIHZpZXcucm9vdC5sZW5ndGggPiAxXG4gICAgICAgID8gJ2RpcmVjdG9yaWVzIFwiJyArIHZpZXcucm9vdC5zbGljZSgwLCAtMSkuam9pbignXCIsIFwiJykgKyAnXCIgb3IgXCInICsgdmlldy5yb290W3ZpZXcucm9vdC5sZW5ndGggLSAxXSArICdcIidcbiAgICAgICAgOiAnZGlyZWN0b3J5IFwiJyArIHZpZXcucm9vdCArICdcIidcbiAgICAgIHZhciBlcnIgPSBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBsb29rdXAgdmlldyBcIicgKyBuYW1lICsgJ1wiIGluIHZpZXdzICcgKyBkaXJzKTtcbiAgICAgIGVyci52aWV3ID0gdmlldztcbiAgICAgIHJldHVybiBkb25lKGVycik7XG4gICAgfVxuXG4gICAgLy8gcHJpbWUgdGhlIGNhY2hlXG4gICAgaWYgKHJlbmRlck9wdGlvbnMuY2FjaGUpIHtcbiAgICAgIGNhY2hlW25hbWVdID0gdmlldztcbiAgICB9XG4gIH1cblxuICAvLyByZW5kZXJcbiAgdHJ5UmVuZGVyKHZpZXcsIHJlbmRlck9wdGlvbnMsIGRvbmUpO1xufTtcblxuLyoqXG4gKiBMaXN0ZW4gZm9yIGNvbm5lY3Rpb25zLlxuICpcbiAqIEEgbm9kZSBgaHR0cC5TZXJ2ZXJgIGlzIHJldHVybmVkLCB3aXRoIHRoaXNcbiAqIGFwcGxpY2F0aW9uICh3aGljaCBpcyBhIGBGdW5jdGlvbmApIGFzIGl0c1xuICogY2FsbGJhY2suIElmIHlvdSB3aXNoIHRvIGNyZWF0ZSBib3RoIGFuIEhUVFBcbiAqIGFuZCBIVFRQUyBzZXJ2ZXIgeW91IG1heSBkbyBzbyB3aXRoIHRoZSBcImh0dHBcIlxuICogYW5kIFwiaHR0cHNcIiBtb2R1bGVzIGFzIHNob3duIGhlcmU6XG4gKlxuICogICAgdmFyIGh0dHAgPSByZXF1aXJlKCdub2RlOmh0dHAnKVxuICogICAgICAsIGh0dHBzID0gcmVxdWlyZSgnbm9kZTpodHRwcycpXG4gKiAgICAgICwgZXhwcmVzcyA9IHJlcXVpcmUoJ2V4cHJlc3MnKVxuICogICAgICAsIGFwcCA9IGV4cHJlc3MoKTtcbiAqXG4gKiAgICBodHRwLmNyZWF0ZVNlcnZlcihhcHApLmxpc3Rlbig4MCk7XG4gKiAgICBodHRwcy5jcmVhdGVTZXJ2ZXIoeyAuLi4gfSwgYXBwKS5saXN0ZW4oNDQzKTtcbiAqXG4gKiBAcmV0dXJuIHtodHRwLlNlcnZlcn1cbiAqIEBwdWJsaWNcbiAqL1xuXG5hcHAubGlzdGVuID0gZnVuY3Rpb24gbGlzdGVuKCkge1xuICB2YXIgc2VydmVyID0gaHR0cC5jcmVhdGVTZXJ2ZXIodGhpcylcbiAgdmFyIGFyZ3MgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpXG4gIGlmICh0eXBlb2YgYXJnc1thcmdzLmxlbmd0aCAtIDFdID09PSAnZnVuY3Rpb24nKSB7XG4gICAgdmFyIGRvbmUgPSBhcmdzW2FyZ3MubGVuZ3RoIC0gMV0gPSBvbmNlKGFyZ3NbYXJncy5sZW5ndGggLSAxXSlcbiAgICBzZXJ2ZXIub25jZSgnZXJyb3InLCBkb25lKVxuICB9XG4gIHJldHVybiBzZXJ2ZXIubGlzdGVuLmFwcGx5KHNlcnZlciwgYXJncylcbn1cblxuLyoqXG4gKiBMb2cgZXJyb3IgdXNpbmcgY29uc29sZS5lcnJvci5cbiAqXG4gKiBAcGFyYW0ge0Vycm9yfSBlcnJcbiAqIEBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gbG9nZXJyb3IoZXJyKSB7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIGlmICh0aGlzLmdldCgnZW52JykgIT09ICd0ZXN0JykgY29uc29sZS5lcnJvcihlcnIuc3RhY2sgfHwgZXJyLnRvU3RyaW5nKCkpO1xufVxuXG4vKipcbiAqIFRyeSByZW5kZXJpbmcgYSB2aWV3LlxuICogQHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiB0cnlSZW5kZXIodmlldywgb3B0aW9ucywgY2FsbGJhY2spIHtcbiAgdHJ5IHtcbiAgICB2aWV3LnJlbmRlcihvcHRpb25zLCBjYWxsYmFjayk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGNhbGxiYWNrKGVycik7XG4gIH1cbn1cbiIsICIvKiFcbiAqIGV4cHJlc3NcbiAqIENvcHlyaWdodChjKSAyMDA5LTIwMTMgVEogSG9sb3dheWNodWtcbiAqIENvcHlyaWdodChjKSAyMDEzIFJvbWFuIFNodHlsbWFuXG4gKiBDb3B5cmlnaHQoYykgMjAxNC0yMDE1IERvdWdsYXMgQ2hyaXN0b3BoZXIgV2lsc29uXG4gKiBNSVQgTGljZW5zZWRcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbi8qKlxuICogTW9kdWxlIGRlcGVuZGVuY2llcy5cbiAqIEBwcml2YXRlXG4gKi9cblxudmFyIGFjY2VwdHMgPSByZXF1aXJlKCdhY2NlcHRzJyk7XG52YXIgaXNJUCA9IHJlcXVpcmUoJ25vZGU6bmV0JykuaXNJUDtcbnZhciB0eXBlaXMgPSByZXF1aXJlKCd0eXBlLWlzJyk7XG52YXIgaHR0cCA9IHJlcXVpcmUoJ25vZGU6aHR0cCcpO1xudmFyIGZyZXNoID0gcmVxdWlyZSgnZnJlc2gnKTtcbnZhciBwYXJzZVJhbmdlID0gcmVxdWlyZSgncmFuZ2UtcGFyc2VyJyk7XG52YXIgcGFyc2UgPSByZXF1aXJlKCdwYXJzZXVybCcpO1xudmFyIHByb3h5YWRkciA9IHJlcXVpcmUoJ3Byb3h5LWFkZHInKTtcblxuLyoqXG4gKiBSZXF1ZXN0IHByb3RvdHlwZS5cbiAqIEBwdWJsaWNcbiAqL1xuXG52YXIgcmVxID0gT2JqZWN0LmNyZWF0ZShodHRwLkluY29taW5nTWVzc2FnZS5wcm90b3R5cGUpXG5cbi8qKlxuICogTW9kdWxlIGV4cG9ydHMuXG4gKiBAcHVibGljXG4gKi9cblxubW9kdWxlLmV4cG9ydHMgPSByZXFcblxuLyoqXG4gKiBSZXR1cm4gcmVxdWVzdCBoZWFkZXIuXG4gKlxuICogVGhlIGBSZWZlcnJlcmAgaGVhZGVyIGZpZWxkIGlzIHNwZWNpYWwtY2FzZWQsXG4gKiBib3RoIGBSZWZlcnJlcmAgYW5kIGBSZWZlcmVyYCBhcmUgaW50ZXJjaGFuZ2VhYmxlLlxuICpcbiAqIEV4YW1wbGVzOlxuICpcbiAqICAgICByZXEuZ2V0KCdDb250ZW50LVR5cGUnKTtcbiAqICAgICAvLyA9PiBcInRleHQvcGxhaW5cIlxuICpcbiAqICAgICByZXEuZ2V0KCdjb250ZW50LXR5cGUnKTtcbiAqICAgICAvLyA9PiBcInRleHQvcGxhaW5cIlxuICpcbiAqICAgICByZXEuZ2V0KCdTb21ldGhpbmcnKTtcbiAqICAgICAvLyA9PiB1bmRlZmluZWRcbiAqXG4gKiBBbGlhc2VkIGFzIGByZXEuaGVhZGVyKClgLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lXG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKiBAcHVibGljXG4gKi9cblxucmVxLmdldCA9XG5yZXEuaGVhZGVyID0gZnVuY3Rpb24gaGVhZGVyKG5hbWUpIHtcbiAgaWYgKCFuYW1lKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignbmFtZSBhcmd1bWVudCBpcyByZXF1aXJlZCB0byByZXEuZ2V0Jyk7XG4gIH1cblxuICBpZiAodHlwZW9mIG5hbWUgIT09ICdzdHJpbmcnKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignbmFtZSBtdXN0IGJlIGEgc3RyaW5nIHRvIHJlcS5nZXQnKTtcbiAgfVxuXG4gIHZhciBsYyA9IG5hbWUudG9Mb3dlckNhc2UoKTtcblxuICBzd2l0Y2ggKGxjKSB7XG4gICAgY2FzZSAncmVmZXJlcic6XG4gICAgY2FzZSAncmVmZXJyZXInOlxuICAgICAgcmV0dXJuIHRoaXMuaGVhZGVycy5yZWZlcnJlclxuICAgICAgICB8fCB0aGlzLmhlYWRlcnMucmVmZXJlcjtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHRoaXMuaGVhZGVyc1tsY107XG4gIH1cbn07XG5cbi8qKlxuICogVG8gZG86IHVwZGF0ZSBkb2NzLlxuICpcbiAqIENoZWNrIGlmIHRoZSBnaXZlbiBgdHlwZShzKWAgaXMgYWNjZXB0YWJsZSwgcmV0dXJuaW5nXG4gKiB0aGUgYmVzdCBtYXRjaCB3aGVuIHRydWUsIG90aGVyd2lzZSBgdW5kZWZpbmVkYCwgaW4gd2hpY2hcbiAqIGNhc2UgeW91IHNob3VsZCByZXNwb25kIHdpdGggNDA2IFwiTm90IEFjY2VwdGFibGVcIi5cbiAqXG4gKiBUaGUgYHR5cGVgIHZhbHVlIG1heSBiZSBhIHNpbmdsZSBNSU1FIHR5cGUgc3RyaW5nXG4gKiBzdWNoIGFzIFwiYXBwbGljYXRpb24vanNvblwiLCBhbiBleHRlbnNpb24gbmFtZVxuICogc3VjaCBhcyBcImpzb25cIiwgYSBjb21tYS1kZWxpbWl0ZWQgbGlzdCBzdWNoIGFzIFwianNvbiwgaHRtbCwgdGV4dC9wbGFpblwiLFxuICogYW4gYXJndW1lbnQgbGlzdCBzdWNoIGFzIGBcImpzb25cIiwgXCJodG1sXCIsIFwidGV4dC9wbGFpblwiYCxcbiAqIG9yIGFuIGFycmF5IGBbXCJqc29uXCIsIFwiaHRtbFwiLCBcInRleHQvcGxhaW5cIl1gLiBXaGVuIGEgbGlzdFxuICogb3IgYXJyYXkgaXMgZ2l2ZW4sIHRoZSBfYmVzdF8gbWF0Y2gsIGlmIGFueSBpcyByZXR1cm5lZC5cbiAqXG4gKiBFeGFtcGxlczpcbiAqXG4gKiAgICAgLy8gQWNjZXB0OiB0ZXh0L2h0bWxcbiAqICAgICByZXEuYWNjZXB0cygnaHRtbCcpO1xuICogICAgIC8vID0+IFwiaHRtbFwiXG4gKlxuICogICAgIC8vIEFjY2VwdDogdGV4dC8qLCBhcHBsaWNhdGlvbi9qc29uXG4gKiAgICAgcmVxLmFjY2VwdHMoJ2h0bWwnKTtcbiAqICAgICAvLyA9PiBcImh0bWxcIlxuICogICAgIHJlcS5hY2NlcHRzKCd0ZXh0L2h0bWwnKTtcbiAqICAgICAvLyA9PiBcInRleHQvaHRtbFwiXG4gKiAgICAgcmVxLmFjY2VwdHMoJ2pzb24sIHRleHQnKTtcbiAqICAgICAvLyA9PiBcImpzb25cIlxuICogICAgIHJlcS5hY2NlcHRzKCdhcHBsaWNhdGlvbi9qc29uJyk7XG4gKiAgICAgLy8gPT4gXCJhcHBsaWNhdGlvbi9qc29uXCJcbiAqXG4gKiAgICAgLy8gQWNjZXB0OiB0ZXh0LyosIGFwcGxpY2F0aW9uL2pzb25cbiAqICAgICByZXEuYWNjZXB0cygnaW1hZ2UvcG5nJyk7XG4gKiAgICAgcmVxLmFjY2VwdHMoJ3BuZycpO1xuICogICAgIC8vID0+IHVuZGVmaW5lZFxuICpcbiAqICAgICAvLyBBY2NlcHQ6IHRleHQvKjtxPS41LCBhcHBsaWNhdGlvbi9qc29uXG4gKiAgICAgcmVxLmFjY2VwdHMoWydodG1sJywgJ2pzb24nXSk7XG4gKiAgICAgcmVxLmFjY2VwdHMoJ2h0bWwnLCAnanNvbicpO1xuICogICAgIHJlcS5hY2NlcHRzKCdodG1sLCBqc29uJyk7XG4gKiAgICAgLy8gPT4gXCJqc29uXCJcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ3xBcnJheX0gdHlwZShzKVxuICogQHJldHVybiB7U3RyaW5nfEFycmF5fEJvb2xlYW59XG4gKiBAcHVibGljXG4gKi9cblxucmVxLmFjY2VwdHMgPSBmdW5jdGlvbigpe1xuICB2YXIgYWNjZXB0ID0gYWNjZXB0cyh0aGlzKTtcbiAgcmV0dXJuIGFjY2VwdC50eXBlcy5hcHBseShhY2NlcHQsIGFyZ3VtZW50cyk7XG59O1xuXG4vKipcbiAqIENoZWNrIGlmIHRoZSBnaXZlbiBgZW5jb2RpbmdgcyBhcmUgYWNjZXB0ZWQuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IC4uLmVuY29kaW5nXG4gKiBAcmV0dXJuIHtTdHJpbmd8QXJyYXl9XG4gKiBAcHVibGljXG4gKi9cblxucmVxLmFjY2VwdHNFbmNvZGluZ3MgPSBmdW5jdGlvbigpe1xuICB2YXIgYWNjZXB0ID0gYWNjZXB0cyh0aGlzKTtcbiAgcmV0dXJuIGFjY2VwdC5lbmNvZGluZ3MuYXBwbHkoYWNjZXB0LCBhcmd1bWVudHMpO1xufTtcblxuLyoqXG4gKiBDaGVjayBpZiB0aGUgZ2l2ZW4gYGNoYXJzZXRgcyBhcmUgYWNjZXB0YWJsZSxcbiAqIG90aGVyd2lzZSB5b3Ugc2hvdWxkIHJlc3BvbmQgd2l0aCA0MDYgXCJOb3QgQWNjZXB0YWJsZVwiLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSAuLi5jaGFyc2V0XG4gKiBAcmV0dXJuIHtTdHJpbmd8QXJyYXl9XG4gKiBAcHVibGljXG4gKi9cblxucmVxLmFjY2VwdHNDaGFyc2V0cyA9IGZ1bmN0aW9uKCl7XG4gIHZhciBhY2NlcHQgPSBhY2NlcHRzKHRoaXMpO1xuICByZXR1cm4gYWNjZXB0LmNoYXJzZXRzLmFwcGx5KGFjY2VwdCwgYXJndW1lbnRzKTtcbn07XG5cbi8qKlxuICogQ2hlY2sgaWYgdGhlIGdpdmVuIGBsYW5nYHMgYXJlIGFjY2VwdGFibGUsXG4gKiBvdGhlcndpc2UgeW91IHNob3VsZCByZXNwb25kIHdpdGggNDA2IFwiTm90IEFjY2VwdGFibGVcIi5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gLi4ubGFuZ1xuICogQHJldHVybiB7U3RyaW5nfEFycmF5fVxuICogQHB1YmxpY1xuICovXG5cbnJlcS5hY2NlcHRzTGFuZ3VhZ2VzID0gZnVuY3Rpb24oKXtcbiAgdmFyIGFjY2VwdCA9IGFjY2VwdHModGhpcyk7XG4gIHJldHVybiBhY2NlcHQubGFuZ3VhZ2VzLmFwcGx5KGFjY2VwdCwgYXJndW1lbnRzKTtcbn07XG5cbi8qKlxuICogUGFyc2UgUmFuZ2UgaGVhZGVyIGZpZWxkLCBjYXBwaW5nIHRvIHRoZSBnaXZlbiBgc2l6ZWAuXG4gKlxuICogVW5zcGVjaWZpZWQgcmFuZ2VzIHN1Y2ggYXMgXCIwLVwiIHJlcXVpcmUga25vd2xlZGdlIG9mIHlvdXIgcmVzb3VyY2UgbGVuZ3RoLiBJblxuICogdGhlIGNhc2Ugb2YgYSBieXRlIHJhbmdlIHRoaXMgaXMgb2YgY291cnNlIHRoZSB0b3RhbCBudW1iZXIgb2YgYnl0ZXMuIElmIHRoZVxuICogUmFuZ2UgaGVhZGVyIGZpZWxkIGlzIG5vdCBnaXZlbiBgdW5kZWZpbmVkYCBpcyByZXR1cm5lZCwgYC0xYCB3aGVuIHVuc2F0aXNmaWFibGUsXG4gKiBhbmQgYC0yYCB3aGVuIHN5bnRhY3RpY2FsbHkgaW52YWxpZC5cbiAqXG4gKiBXaGVuIHJhbmdlcyBhcmUgcmV0dXJuZWQsIHRoZSBhcnJheSBoYXMgYSBcInR5cGVcIiBwcm9wZXJ0eSB3aGljaCBpcyB0aGUgdHlwZSBvZlxuICogcmFuZ2UgdGhhdCBpcyByZXF1aXJlZCAobW9zdCBjb21tb25seSwgXCJieXRlc1wiKS4gRWFjaCBhcnJheSBlbGVtZW50IGlzIGFuIG9iamVjdFxuICogd2l0aCBhIFwic3RhcnRcIiBhbmQgXCJlbmRcIiBwcm9wZXJ0eSBmb3IgdGhlIHBvcnRpb24gb2YgdGhlIHJhbmdlLlxuICpcbiAqIFRoZSBcImNvbWJpbmVcIiBvcHRpb24gY2FuIGJlIHNldCB0byBgdHJ1ZWAgYW5kIG92ZXJsYXBwaW5nICYgYWRqYWNlbnQgcmFuZ2VzXG4gKiB3aWxsIGJlIGNvbWJpbmVkIGludG8gYSBzaW5nbGUgcmFuZ2UuXG4gKlxuICogTk9URTogcmVtZW1iZXIgdGhhdCByYW5nZXMgYXJlIGluY2x1c2l2ZSwgc28gZm9yIGV4YW1wbGUgXCJSYW5nZTogdXNlcnM9MC0zXCJcbiAqIHNob3VsZCByZXNwb25kIHdpdGggNCB1c2VycyB3aGVuIGF2YWlsYWJsZSwgbm90IDMuXG4gKlxuICogQHBhcmFtIHtudW1iZXJ9IHNpemVcbiAqIEBwYXJhbSB7b2JqZWN0fSBbb3B0aW9uc11cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMuY29tYmluZT1mYWxzZV1cbiAqIEByZXR1cm4ge251bWJlcnxhcnJheX1cbiAqIEBwdWJsaWNcbiAqL1xuXG5yZXEucmFuZ2UgPSBmdW5jdGlvbiByYW5nZShzaXplLCBvcHRpb25zKSB7XG4gIHZhciByYW5nZSA9IHRoaXMuZ2V0KCdSYW5nZScpO1xuICBpZiAoIXJhbmdlKSByZXR1cm47XG4gIHJldHVybiBwYXJzZVJhbmdlKHNpemUsIHJhbmdlLCBvcHRpb25zKTtcbn07XG5cbi8qKlxuICogUGFyc2UgdGhlIHF1ZXJ5IHN0cmluZyBvZiBgcmVxLnVybGAuXG4gKlxuICogVGhpcyB1c2VzIHRoZSBcInF1ZXJ5IHBhcnNlclwiIHNldHRpbmcgdG8gcGFyc2UgdGhlIHJhd1xuICogc3RyaW5nIGludG8gYW4gb2JqZWN0LlxuICpcbiAqIEByZXR1cm4ge1N0cmluZ31cbiAqIEBhcGkgcHVibGljXG4gKi9cblxuZGVmaW5lR2V0dGVyKHJlcSwgJ3F1ZXJ5JywgZnVuY3Rpb24gcXVlcnkoKXtcbiAgdmFyIHF1ZXJ5cGFyc2UgPSB0aGlzLmFwcC5nZXQoJ3F1ZXJ5IHBhcnNlciBmbicpO1xuXG4gIGlmICghcXVlcnlwYXJzZSkge1xuICAgIC8vIHBhcnNpbmcgaXMgZGlzYWJsZWRcbiAgICByZXR1cm4gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgfVxuXG4gIHZhciBxdWVyeXN0cmluZyA9IHBhcnNlKHRoaXMpLnF1ZXJ5O1xuXG4gIHJldHVybiBxdWVyeXBhcnNlKHF1ZXJ5c3RyaW5nKTtcbn0pO1xuXG4vKipcbiAqIENoZWNrIGlmIHRoZSBpbmNvbWluZyByZXF1ZXN0IGNvbnRhaW5zIHRoZSBcIkNvbnRlbnQtVHlwZVwiXG4gKiBoZWFkZXIgZmllbGQsIGFuZCBpdCBjb250YWlucyB0aGUgZ2l2ZW4gbWltZSBgdHlwZWAuXG4gKlxuICogRXhhbXBsZXM6XG4gKlxuICogICAgICAvLyBXaXRoIENvbnRlbnQtVHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04XG4gKiAgICAgIHJlcS5pcygnaHRtbCcpO1xuICogICAgICByZXEuaXMoJ3RleHQvaHRtbCcpO1xuICogICAgICByZXEuaXMoJ3RleHQvKicpO1xuICogICAgICAvLyA9PiB0cnVlXG4gKlxuICogICAgICAvLyBXaGVuIENvbnRlbnQtVHlwZSBpcyBhcHBsaWNhdGlvbi9qc29uXG4gKiAgICAgIHJlcS5pcygnanNvbicpO1xuICogICAgICByZXEuaXMoJ2FwcGxpY2F0aW9uL2pzb24nKTtcbiAqICAgICAgcmVxLmlzKCdhcHBsaWNhdGlvbi8qJyk7XG4gKiAgICAgIC8vID0+IHRydWVcbiAqXG4gKiAgICAgIHJlcS5pcygnaHRtbCcpO1xuICogICAgICAvLyA9PiBmYWxzZVxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfEFycmF5fSB0eXBlcy4uLlxuICogQHJldHVybiB7U3RyaW5nfGZhbHNlfG51bGx9XG4gKiBAcHVibGljXG4gKi9cblxucmVxLmlzID0gZnVuY3Rpb24gaXModHlwZXMpIHtcbiAgdmFyIGFyciA9IHR5cGVzO1xuXG4gIC8vIHN1cHBvcnQgZmxhdHRlbmVkIGFyZ3VtZW50c1xuICBpZiAoIUFycmF5LmlzQXJyYXkodHlwZXMpKSB7XG4gICAgYXJyID0gbmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGgpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgaSsrKSB7XG4gICAgICBhcnJbaV0gPSBhcmd1bWVudHNbaV07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHR5cGVpcyh0aGlzLCBhcnIpO1xufTtcblxuLyoqXG4gKiBSZXR1cm4gdGhlIHByb3RvY29sIHN0cmluZyBcImh0dHBcIiBvciBcImh0dHBzXCJcbiAqIHdoZW4gcmVxdWVzdGVkIHdpdGggVExTLiBXaGVuIHRoZSBcInRydXN0IHByb3h5XCJcbiAqIHNldHRpbmcgdHJ1c3RzIHRoZSBzb2NrZXQgYWRkcmVzcywgdGhlXG4gKiBcIlgtRm9yd2FyZGVkLVByb3RvXCIgaGVhZGVyIGZpZWxkIHdpbGwgYmUgdHJ1c3RlZFxuICogYW5kIHVzZWQgaWYgcHJlc2VudC5cbiAqXG4gKiBJZiB5b3UncmUgcnVubmluZyBiZWhpbmQgYSByZXZlcnNlIHByb3h5IHRoYXRcbiAqIHN1cHBsaWVzIGh0dHBzIGZvciB5b3UgdGhpcyBtYXkgYmUgZW5hYmxlZC5cbiAqXG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKiBAcHVibGljXG4gKi9cblxuZGVmaW5lR2V0dGVyKHJlcSwgJ3Byb3RvY29sJywgZnVuY3Rpb24gcHJvdG9jb2woKXtcbiAgdmFyIHByb3RvID0gdGhpcy5jb25uZWN0aW9uLmVuY3J5cHRlZFxuICAgID8gJ2h0dHBzJ1xuICAgIDogJ2h0dHAnO1xuICB2YXIgdHJ1c3QgPSB0aGlzLmFwcC5nZXQoJ3RydXN0IHByb3h5IGZuJyk7XG5cbiAgaWYgKCF0cnVzdCh0aGlzLmNvbm5lY3Rpb24ucmVtb3RlQWRkcmVzcywgMCkpIHtcbiAgICByZXR1cm4gcHJvdG87XG4gIH1cblxuICAvLyBOb3RlOiBYLUZvcndhcmRlZC1Qcm90byBpcyBub3JtYWxseSBvbmx5IGV2ZXIgYVxuICAvLyAgICAgICBzaW5nbGUgdmFsdWUsIGJ1dCB0aGlzIGlzIHRvIGJlIHNhZmUuXG4gIHZhciBoZWFkZXIgPSB0aGlzLmdldCgnWC1Gb3J3YXJkZWQtUHJvdG8nKSB8fCBwcm90b1xuICB2YXIgaW5kZXggPSBoZWFkZXIuaW5kZXhPZignLCcpXG5cbiAgcmV0dXJuIGluZGV4ICE9PSAtMVxuICAgID8gaGVhZGVyLnN1YnN0cmluZygwLCBpbmRleCkudHJpbSgpXG4gICAgOiBoZWFkZXIudHJpbSgpXG59KTtcblxuLyoqXG4gKiBTaG9ydC1oYW5kIGZvcjpcbiAqXG4gKiAgICByZXEucHJvdG9jb2wgPT09ICdodHRwcydcbiAqXG4gKiBAcmV0dXJuIHtCb29sZWFufVxuICogQHB1YmxpY1xuICovXG5cbmRlZmluZUdldHRlcihyZXEsICdzZWN1cmUnLCBmdW5jdGlvbiBzZWN1cmUoKXtcbiAgcmV0dXJuIHRoaXMucHJvdG9jb2wgPT09ICdodHRwcyc7XG59KTtcblxuLyoqXG4gKiBSZXR1cm4gdGhlIHJlbW90ZSBhZGRyZXNzIGZyb20gdGhlIHRydXN0ZWQgcHJveHkuXG4gKlxuICogVGhlIGlzIHRoZSByZW1vdGUgYWRkcmVzcyBvbiB0aGUgc29ja2V0IHVubGVzc1xuICogXCJ0cnVzdCBwcm94eVwiIGlzIHNldC5cbiAqXG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKiBAcHVibGljXG4gKi9cblxuZGVmaW5lR2V0dGVyKHJlcSwgJ2lwJywgZnVuY3Rpb24gaXAoKXtcbiAgdmFyIHRydXN0ID0gdGhpcy5hcHAuZ2V0KCd0cnVzdCBwcm94eSBmbicpO1xuICByZXR1cm4gcHJveHlhZGRyKHRoaXMsIHRydXN0KTtcbn0pO1xuXG4vKipcbiAqIFdoZW4gXCJ0cnVzdCBwcm94eVwiIGlzIHNldCwgdHJ1c3RlZCBwcm94eSBhZGRyZXNzZXMgKyBjbGllbnQuXG4gKlxuICogRm9yIGV4YW1wbGUgaWYgdGhlIHZhbHVlIHdlcmUgXCJjbGllbnQsIHByb3h5MSwgcHJveHkyXCJcbiAqIHlvdSB3b3VsZCByZWNlaXZlIHRoZSBhcnJheSBgW1wiY2xpZW50XCIsIFwicHJveHkxXCIsIFwicHJveHkyXCJdYFxuICogd2hlcmUgXCJwcm94eTJcIiBpcyB0aGUgZnVydGhlc3QgZG93bi1zdHJlYW0gYW5kIFwicHJveHkxXCIgYW5kXG4gKiBcInByb3h5MlwiIHdlcmUgdHJ1c3RlZC5cbiAqXG4gKiBAcmV0dXJuIHtBcnJheX1cbiAqIEBwdWJsaWNcbiAqL1xuXG5kZWZpbmVHZXR0ZXIocmVxLCAnaXBzJywgZnVuY3Rpb24gaXBzKCkge1xuICB2YXIgdHJ1c3QgPSB0aGlzLmFwcC5nZXQoJ3RydXN0IHByb3h5IGZuJyk7XG4gIHZhciBhZGRycyA9IHByb3h5YWRkci5hbGwodGhpcywgdHJ1c3QpO1xuXG4gIC8vIHJldmVyc2UgdGhlIG9yZGVyICh0byBmYXJ0aGVzdCAtPiBjbG9zZXN0KVxuICAvLyBhbmQgcmVtb3ZlIHNvY2tldCBhZGRyZXNzXG4gIGFkZHJzLnJldmVyc2UoKS5wb3AoKVxuXG4gIHJldHVybiBhZGRyc1xufSk7XG5cbi8qKlxuICogUmV0dXJuIHN1YmRvbWFpbnMgYXMgYW4gYXJyYXkuXG4gKlxuICogU3ViZG9tYWlucyBhcmUgdGhlIGRvdC1zZXBhcmF0ZWQgcGFydHMgb2YgdGhlIGhvc3QgYmVmb3JlIHRoZSBtYWluIGRvbWFpbiBvZlxuICogdGhlIGFwcC4gQnkgZGVmYXVsdCwgdGhlIGRvbWFpbiBvZiB0aGUgYXBwIGlzIGFzc3VtZWQgdG8gYmUgdGhlIGxhc3QgdHdvXG4gKiBwYXJ0cyBvZiB0aGUgaG9zdC4gVGhpcyBjYW4gYmUgY2hhbmdlZCBieSBzZXR0aW5nIFwic3ViZG9tYWluIG9mZnNldFwiLlxuICpcbiAqIEZvciBleGFtcGxlLCBpZiB0aGUgZG9tYWluIGlzIFwidG9iaS5mZXJyZXRzLmV4YW1wbGUuY29tXCI6XG4gKiBJZiBcInN1YmRvbWFpbiBvZmZzZXRcIiBpcyBub3Qgc2V0LCByZXEuc3ViZG9tYWlucyBpcyBgW1wiZmVycmV0c1wiLCBcInRvYmlcIl1gLlxuICogSWYgXCJzdWJkb21haW4gb2Zmc2V0XCIgaXMgMywgcmVxLnN1YmRvbWFpbnMgaXMgYFtcInRvYmlcIl1gLlxuICpcbiAqIEByZXR1cm4ge0FycmF5fVxuICogQHB1YmxpY1xuICovXG5cbmRlZmluZUdldHRlcihyZXEsICdzdWJkb21haW5zJywgZnVuY3Rpb24gc3ViZG9tYWlucygpIHtcbiAgdmFyIGhvc3RuYW1lID0gdGhpcy5ob3N0bmFtZTtcblxuICBpZiAoIWhvc3RuYW1lKSByZXR1cm4gW107XG5cbiAgdmFyIG9mZnNldCA9IHRoaXMuYXBwLmdldCgnc3ViZG9tYWluIG9mZnNldCcpO1xuICB2YXIgc3ViZG9tYWlucyA9ICFpc0lQKGhvc3RuYW1lKVxuICAgID8gaG9zdG5hbWUuc3BsaXQoJy4nKS5yZXZlcnNlKClcbiAgICA6IFtob3N0bmFtZV07XG5cbiAgcmV0dXJuIHN1YmRvbWFpbnMuc2xpY2Uob2Zmc2V0KTtcbn0pO1xuXG4vKipcbiAqIFNob3J0LWhhbmQgZm9yIGB1cmwucGFyc2UocmVxLnVybCkucGF0aG5hbWVgLlxuICpcbiAqIEByZXR1cm4ge1N0cmluZ31cbiAqIEBwdWJsaWNcbiAqL1xuXG5kZWZpbmVHZXR0ZXIocmVxLCAncGF0aCcsIGZ1bmN0aW9uIHBhdGgoKSB7XG4gIHJldHVybiBwYXJzZSh0aGlzKS5wYXRobmFtZTtcbn0pO1xuXG4vKipcbiAqIFBhcnNlIHRoZSBcIkhvc3RcIiBoZWFkZXIgZmllbGQgdG8gYSBob3N0LlxuICpcbiAqIFdoZW4gdGhlIFwidHJ1c3QgcHJveHlcIiBzZXR0aW5nIHRydXN0cyB0aGUgc29ja2V0XG4gKiBhZGRyZXNzLCB0aGUgXCJYLUZvcndhcmRlZC1Ib3N0XCIgaGVhZGVyIGZpZWxkIHdpbGxcbiAqIGJlIHRydXN0ZWQuXG4gKlxuICogQHJldHVybiB7U3RyaW5nfVxuICogQHB1YmxpY1xuICovXG5cbmRlZmluZUdldHRlcihyZXEsICdob3N0JywgZnVuY3Rpb24gaG9zdCgpe1xuICB2YXIgdHJ1c3QgPSB0aGlzLmFwcC5nZXQoJ3RydXN0IHByb3h5IGZuJyk7XG4gIHZhciB2YWwgPSB0aGlzLmdldCgnWC1Gb3J3YXJkZWQtSG9zdCcpO1xuXG4gIGlmICghdmFsIHx8ICF0cnVzdCh0aGlzLmNvbm5lY3Rpb24ucmVtb3RlQWRkcmVzcywgMCkpIHtcbiAgICB2YWwgPSB0aGlzLmdldCgnSG9zdCcpO1xuICB9IGVsc2UgaWYgKHZhbC5pbmRleE9mKCcsJykgIT09IC0xKSB7XG4gICAgLy8gTm90ZTogWC1Gb3J3YXJkZWQtSG9zdCBpcyBub3JtYWxseSBvbmx5IGV2ZXIgYVxuICAgIC8vICAgICAgIHNpbmdsZSB2YWx1ZSwgYnV0IHRoaXMgaXMgdG8gYmUgc2FmZS5cbiAgICB2YWwgPSB2YWwuc3Vic3RyaW5nKDAsIHZhbC5pbmRleE9mKCcsJykpLnRyaW1SaWdodCgpXG4gIH1cblxuICByZXR1cm4gdmFsIHx8IHVuZGVmaW5lZDtcbn0pO1xuXG4vKipcbiAqIFBhcnNlIHRoZSBcIkhvc3RcIiBoZWFkZXIgZmllbGQgdG8gYSBob3N0bmFtZS5cbiAqXG4gKiBXaGVuIHRoZSBcInRydXN0IHByb3h5XCIgc2V0dGluZyB0cnVzdHMgdGhlIHNvY2tldFxuICogYWRkcmVzcywgdGhlIFwiWC1Gb3J3YXJkZWQtSG9zdFwiIGhlYWRlciBmaWVsZCB3aWxsXG4gKiBiZSB0cnVzdGVkLlxuICpcbiAqIEByZXR1cm4ge1N0cmluZ31cbiAqIEBhcGkgcHVibGljXG4gKi9cblxuZGVmaW5lR2V0dGVyKHJlcSwgJ2hvc3RuYW1lJywgZnVuY3Rpb24gaG9zdG5hbWUoKXtcbiAgdmFyIGhvc3QgPSB0aGlzLmhvc3Q7XG5cbiAgaWYgKCFob3N0KSByZXR1cm47XG5cbiAgLy8gSVB2NiBsaXRlcmFsIHN1cHBvcnRcbiAgdmFyIG9mZnNldCA9IGhvc3RbMF0gPT09ICdbJ1xuICAgID8gaG9zdC5pbmRleE9mKCddJykgKyAxXG4gICAgOiAwO1xuICB2YXIgaW5kZXggPSBob3N0LmluZGV4T2YoJzonLCBvZmZzZXQpO1xuXG4gIHJldHVybiBpbmRleCAhPT0gLTFcbiAgICA/IGhvc3Quc3Vic3RyaW5nKDAsIGluZGV4KVxuICAgIDogaG9zdDtcbn0pO1xuXG4vKipcbiAqIENoZWNrIGlmIHRoZSByZXF1ZXN0IGlzIGZyZXNoLCBha2FcbiAqIExhc3QtTW9kaWZpZWQgb3IgdGhlIEVUYWdcbiAqIHN0aWxsIG1hdGNoLlxuICpcbiAqIEByZXR1cm4ge0Jvb2xlYW59XG4gKiBAcHVibGljXG4gKi9cblxuZGVmaW5lR2V0dGVyKHJlcSwgJ2ZyZXNoJywgZnVuY3Rpb24oKXtcbiAgdmFyIG1ldGhvZCA9IHRoaXMubWV0aG9kO1xuICB2YXIgcmVzID0gdGhpcy5yZXNcbiAgdmFyIHN0YXR1cyA9IHJlcy5zdGF0dXNDb2RlXG5cbiAgLy8gR0VUIG9yIEhFQUQgZm9yIHdlYWsgZnJlc2huZXNzIHZhbGlkYXRpb24gb25seVxuICBpZiAoJ0dFVCcgIT09IG1ldGhvZCAmJiAnSEVBRCcgIT09IG1ldGhvZCkgcmV0dXJuIGZhbHNlO1xuXG4gIC8vIDJ4eCBvciAzMDQgYXMgcGVyIHJmYzI2MTYgMTQuMjZcbiAgaWYgKChzdGF0dXMgPj0gMjAwICYmIHN0YXR1cyA8IDMwMCkgfHwgMzA0ID09PSBzdGF0dXMpIHtcbiAgICByZXR1cm4gZnJlc2godGhpcy5oZWFkZXJzLCB7XG4gICAgICAnZXRhZyc6IHJlcy5nZXQoJ0VUYWcnKSxcbiAgICAgICdsYXN0LW1vZGlmaWVkJzogcmVzLmdldCgnTGFzdC1Nb2RpZmllZCcpXG4gICAgfSlcbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn0pO1xuXG4vKipcbiAqIENoZWNrIGlmIHRoZSByZXF1ZXN0IGlzIHN0YWxlLCBha2FcbiAqIFwiTGFzdC1Nb2RpZmllZFwiIGFuZCAvIG9yIHRoZSBcIkVUYWdcIiBmb3IgdGhlXG4gKiByZXNvdXJjZSBoYXMgY2hhbmdlZC5cbiAqXG4gKiBAcmV0dXJuIHtCb29sZWFufVxuICogQHB1YmxpY1xuICovXG5cbmRlZmluZUdldHRlcihyZXEsICdzdGFsZScsIGZ1bmN0aW9uIHN0YWxlKCl7XG4gIHJldHVybiAhdGhpcy5mcmVzaDtcbn0pO1xuXG4vKipcbiAqIENoZWNrIGlmIHRoZSByZXF1ZXN0IHdhcyBhbiBfWE1MSHR0cFJlcXVlc3RfLlxuICpcbiAqIEByZXR1cm4ge0Jvb2xlYW59XG4gKiBAcHVibGljXG4gKi9cblxuZGVmaW5lR2V0dGVyKHJlcSwgJ3hocicsIGZ1bmN0aW9uIHhocigpe1xuICB2YXIgdmFsID0gdGhpcy5nZXQoJ1gtUmVxdWVzdGVkLVdpdGgnKSB8fCAnJztcbiAgcmV0dXJuIHZhbC50b0xvd2VyQ2FzZSgpID09PSAneG1saHR0cHJlcXVlc3QnO1xufSk7XG5cbi8qKlxuICogSGVscGVyIGZ1bmN0aW9uIGZvciBjcmVhdGluZyBhIGdldHRlciBvbiBhbiBvYmplY3QuXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IG9ialxuICogQHBhcmFtIHtTdHJpbmd9IG5hbWVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGdldHRlclxuICogQHByaXZhdGVcbiAqL1xuZnVuY3Rpb24gZGVmaW5lR2V0dGVyKG9iaiwgbmFtZSwgZ2V0dGVyKSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIG5hbWUsIHtcbiAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGdldHRlclxuICB9KTtcbn1cbiIsICIvKiFcbiAqIGV4cHJlc3NcbiAqIENvcHlyaWdodChjKSAyMDA5LTIwMTMgVEogSG9sb3dheWNodWtcbiAqIENvcHlyaWdodChjKSAyMDE0LTIwMTUgRG91Z2xhcyBDaHJpc3RvcGhlciBXaWxzb25cbiAqIE1JVCBMaWNlbnNlZFxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuLyoqXG4gKiBNb2R1bGUgZGVwZW5kZW5jaWVzLlxuICogQHByaXZhdGVcbiAqL1xuXG52YXIgY29udGVudERpc3Bvc2l0aW9uID0gcmVxdWlyZSgnY29udGVudC1kaXNwb3NpdGlvbicpO1xudmFyIGNyZWF0ZUVycm9yID0gcmVxdWlyZSgnaHR0cC1lcnJvcnMnKVxudmFyIGVuY29kZVVybCA9IHJlcXVpcmUoJ2VuY29kZXVybCcpO1xudmFyIGVzY2FwZUh0bWwgPSByZXF1aXJlKCdlc2NhcGUtaHRtbCcpO1xudmFyIGh0dHAgPSByZXF1aXJlKCdub2RlOmh0dHAnKTtcbnZhciBvbkZpbmlzaGVkID0gcmVxdWlyZSgnb24tZmluaXNoZWQnKTtcbnZhciBtaW1lID0gcmVxdWlyZSgnbWltZS10eXBlcycpXG52YXIgcGF0aCA9IHJlcXVpcmUoJ25vZGU6cGF0aCcpO1xudmFyIHBhdGhJc0Fic29sdXRlID0gcmVxdWlyZSgnbm9kZTpwYXRoJykuaXNBYnNvbHV0ZTtcbnZhciBzdGF0dXNlcyA9IHJlcXVpcmUoJ3N0YXR1c2VzJylcbnZhciBzaWduID0gcmVxdWlyZSgnY29va2llLXNpZ25hdHVyZScpLnNpZ247XG52YXIgbm9ybWFsaXplVHlwZSA9IHJlcXVpcmUoJy4vdXRpbHMnKS5ub3JtYWxpemVUeXBlO1xudmFyIG5vcm1hbGl6ZVR5cGVzID0gcmVxdWlyZSgnLi91dGlscycpLm5vcm1hbGl6ZVR5cGVzO1xudmFyIHNldENoYXJzZXQgPSByZXF1aXJlKCcuL3V0aWxzJykuc2V0Q2hhcnNldDtcbnZhciBjb29raWUgPSByZXF1aXJlKCdjb29raWUnKTtcbnZhciBzZW5kID0gcmVxdWlyZSgnc2VuZCcpO1xudmFyIGV4dG5hbWUgPSBwYXRoLmV4dG5hbWU7XG52YXIgcmVzb2x2ZSA9IHBhdGgucmVzb2x2ZTtcbnZhciB2YXJ5ID0gcmVxdWlyZSgndmFyeScpO1xuXG4vKipcbiAqIFJlc3BvbnNlIHByb3RvdHlwZS5cbiAqIEBwdWJsaWNcbiAqL1xuXG52YXIgcmVzID0gT2JqZWN0LmNyZWF0ZShodHRwLlNlcnZlclJlc3BvbnNlLnByb3RvdHlwZSlcblxuLyoqXG4gKiBNb2R1bGUgZXhwb3J0cy5cbiAqIEBwdWJsaWNcbiAqL1xuXG5tb2R1bGUuZXhwb3J0cyA9IHJlc1xuXG4vKipcbiAqIFNldCB0aGUgSFRUUCBzdGF0dXMgY29kZSBmb3IgdGhlIHJlc3BvbnNlLlxuICpcbiAqIEV4cGVjdHMgYW4gaW50ZWdlciB2YWx1ZSBiZXR3ZWVuIDEwMCBhbmQgOTk5IGluY2x1c2l2ZS5cbiAqIFRocm93cyBhbiBlcnJvciBpZiB0aGUgcHJvdmlkZWQgc3RhdHVzIGNvZGUgaXMgbm90IGFuIGludGVnZXIgb3IgaWYgaXQncyBvdXRzaWRlIHRoZSBhbGxvd2FibGUgcmFuZ2UuXG4gKlxuICogQHBhcmFtIHtudW1iZXJ9IGNvZGUgLSBUaGUgSFRUUCBzdGF0dXMgY29kZSB0byBzZXQuXG4gKiBAcmV0dXJuIHtTZXJ2ZXJSZXNwb25zZX0gLSBSZXR1cm5zIGl0c2VsZiBmb3IgY2hhaW5pbmcgbWV0aG9kcy5cbiAqIEB0aHJvd3Mge1R5cGVFcnJvcn0gSWYgYGNvZGVgIGlzIG5vdCBhbiBpbnRlZ2VyLlxuICogQHRocm93cyB7UmFuZ2VFcnJvcn0gSWYgYGNvZGVgIGlzIG91dHNpZGUgdGhlIHJhbmdlIDEwMCB0byA5OTkuXG4gKiBAcHVibGljXG4gKi9cblxucmVzLnN0YXR1cyA9IGZ1bmN0aW9uIHN0YXR1cyhjb2RlKSB7XG4gIC8vIENoZWNrIGlmIHRoZSBzdGF0dXMgY29kZSBpcyBub3QgYW4gaW50ZWdlclxuICBpZiAoIU51bWJlci5pc0ludGVnZXIoY29kZSkpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBJbnZhbGlkIHN0YXR1cyBjb2RlOiAke0pTT04uc3RyaW5naWZ5KGNvZGUpfS4gU3RhdHVzIGNvZGUgbXVzdCBiZSBhbiBpbnRlZ2VyLmApO1xuICB9XG4gIC8vIENoZWNrIGlmIHRoZSBzdGF0dXMgY29kZSBpcyBvdXRzaWRlIG9mIE5vZGUncyB2YWxpZCByYW5nZVxuICBpZiAoY29kZSA8IDEwMCB8fCBjb2RlID4gOTk5KSB7XG4gICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoYEludmFsaWQgc3RhdHVzIGNvZGU6ICR7SlNPTi5zdHJpbmdpZnkoY29kZSl9LiBTdGF0dXMgY29kZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiA5OSBhbmQgbGVzcyB0aGFuIDEwMDAuYCk7XG4gIH1cblxuICB0aGlzLnN0YXR1c0NvZGUgPSBjb2RlO1xuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogU2V0IExpbmsgaGVhZGVyIGZpZWxkIHdpdGggdGhlIGdpdmVuIGBsaW5rc2AuXG4gKlxuICogRXhhbXBsZXM6XG4gKlxuICogICAgcmVzLmxpbmtzKHtcbiAqICAgICAgbmV4dDogJ2h0dHA6Ly9hcGkuZXhhbXBsZS5jb20vdXNlcnM/cGFnZT0yJyxcbiAqICAgICAgbGFzdDogJ2h0dHA6Ly9hcGkuZXhhbXBsZS5jb20vdXNlcnM/cGFnZT01JyxcbiAqICAgICAgcGFnZXM6IFtcbiAqICAgICAgICAnaHR0cDovL2FwaS5leGFtcGxlLmNvbS91c2Vycz9wYWdlPTEnLFxuICogICAgICAgICdodHRwOi8vYXBpLmV4YW1wbGUuY29tL3VzZXJzP3BhZ2U9MidcbiAqICAgICAgXVxuICogICAgfSk7XG4gKlxuICogQHBhcmFtIHtPYmplY3R9IGxpbmtzXG4gKiBAcmV0dXJuIHtTZXJ2ZXJSZXNwb25zZX1cbiAqIEBwdWJsaWNcbiAqL1xuXG5yZXMubGlua3MgPSBmdW5jdGlvbihsaW5rcykge1xuICB2YXIgbGluayA9IHRoaXMuZ2V0KCdMaW5rJykgfHwgJyc7XG4gIGlmIChsaW5rKSBsaW5rICs9ICcsICc7XG4gIHJldHVybiB0aGlzLnNldCgnTGluaycsIGxpbmsgKyBPYmplY3Qua2V5cyhsaW5rcykubWFwKGZ1bmN0aW9uKHJlbCkge1xuICAgIC8vIEFsbG93IG11bHRpcGxlIGxpbmtzIGlmIGxpbmtzW3JlbF0gaXMgYW4gYXJyYXlcbiAgICBpZiAoQXJyYXkuaXNBcnJheShsaW5rc1tyZWxdKSkge1xuICAgICAgcmV0dXJuIGxpbmtzW3JlbF0ubWFwKGZ1bmN0aW9uIChzaW5nbGVMaW5rKSB7XG4gICAgICAgIHJldHVybiBgPCR7c2luZ2xlTGlua30+OyByZWw9XCIke3JlbH1cImA7XG4gICAgICB9KS5qb2luKCcsICcpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gYDwke2xpbmtzW3JlbF19PjsgcmVsPVwiJHtyZWx9XCJgO1xuICAgIH1cbiAgfSkuam9pbignLCAnKSk7XG59O1xuXG4vKipcbiAqIFNlbmQgYSByZXNwb25zZS5cbiAqXG4gKiBFeGFtcGxlczpcbiAqXG4gKiAgICAgcmVzLnNlbmQoQnVmZmVyLmZyb20oJ3dhaG9vJykpO1xuICogICAgIHJlcy5zZW5kKHsgc29tZTogJ2pzb24nIH0pO1xuICogICAgIHJlcy5zZW5kKCc8cD5zb21lIGh0bWw8L3A+Jyk7XG4gKlxuICogQHBhcmFtIHtzdHJpbmd8bnVtYmVyfGJvb2xlYW58b2JqZWN0fEJ1ZmZlcn0gYm9keVxuICogQHB1YmxpY1xuICovXG5cbnJlcy5zZW5kID0gZnVuY3Rpb24gc2VuZChib2R5KSB7XG4gIHZhciBjaHVuayA9IGJvZHk7XG4gIHZhciBlbmNvZGluZztcbiAgdmFyIHJlcSA9IHRoaXMucmVxO1xuICB2YXIgdHlwZTtcblxuICAvLyBzZXR0aW5nc1xuICB2YXIgYXBwID0gdGhpcy5hcHA7XG5cbiAgc3dpdGNoICh0eXBlb2YgY2h1bmspIHtcbiAgICAvLyBzdHJpbmcgZGVmYXVsdGluZyB0byBodG1sXG4gICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgIGlmICghdGhpcy5nZXQoJ0NvbnRlbnQtVHlwZScpKSB7XG4gICAgICAgIHRoaXMudHlwZSgnaHRtbCcpO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnYm9vbGVhbic6XG4gICAgY2FzZSAnbnVtYmVyJzpcbiAgICBjYXNlICdvYmplY3QnOlxuICAgICAgaWYgKGNodW5rID09PSBudWxsKSB7XG4gICAgICAgIGNodW5rID0gJyc7XG4gICAgICB9IGVsc2UgaWYgKEFycmF5QnVmZmVyLmlzVmlldyhjaHVuaykpIHtcbiAgICAgICAgaWYgKCF0aGlzLmdldCgnQ29udGVudC1UeXBlJykpIHtcbiAgICAgICAgICB0aGlzLnR5cGUoJ2JpbicpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gdGhpcy5qc29uKGNodW5rKTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICB9XG5cbiAgLy8gd3JpdGUgc3RyaW5ncyBpbiB1dGYtOFxuICBpZiAodHlwZW9mIGNodW5rID09PSAnc3RyaW5nJykge1xuICAgIGVuY29kaW5nID0gJ3V0ZjgnO1xuICAgIHR5cGUgPSB0aGlzLmdldCgnQ29udGVudC1UeXBlJyk7XG5cbiAgICAvLyByZWZsZWN0IHRoaXMgaW4gY29udGVudC10eXBlXG4gICAgaWYgKHR5cGVvZiB0eXBlID09PSAnc3RyaW5nJykge1xuICAgICAgdGhpcy5zZXQoJ0NvbnRlbnQtVHlwZScsIHNldENoYXJzZXQodHlwZSwgJ3V0Zi04JykpO1xuICAgIH1cbiAgfVxuXG4gIC8vIGRldGVybWluZSBpZiBFVGFnIHNob3VsZCBiZSBnZW5lcmF0ZWRcbiAgdmFyIGV0YWdGbiA9IGFwcC5nZXQoJ2V0YWcgZm4nKVxuICB2YXIgZ2VuZXJhdGVFVGFnID0gIXRoaXMuZ2V0KCdFVGFnJykgJiYgdHlwZW9mIGV0YWdGbiA9PT0gJ2Z1bmN0aW9uJ1xuXG4gIC8vIHBvcHVsYXRlIENvbnRlbnQtTGVuZ3RoXG4gIHZhciBsZW5cbiAgaWYgKGNodW5rICE9PSB1bmRlZmluZWQpIHtcbiAgICBpZiAoQnVmZmVyLmlzQnVmZmVyKGNodW5rKSkge1xuICAgICAgLy8gZ2V0IGxlbmd0aCBvZiBCdWZmZXJcbiAgICAgIGxlbiA9IGNodW5rLmxlbmd0aFxuICAgIH0gZWxzZSBpZiAoIWdlbmVyYXRlRVRhZyAmJiBjaHVuay5sZW5ndGggPCAxMDAwKSB7XG4gICAgICAvLyBqdXN0IGNhbGN1bGF0ZSBsZW5ndGggd2hlbiBubyBFVGFnICsgc21hbGwgY2h1bmtcbiAgICAgIGxlbiA9IEJ1ZmZlci5ieXRlTGVuZ3RoKGNodW5rLCBlbmNvZGluZylcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gY29udmVydCBjaHVuayB0byBCdWZmZXIgYW5kIGNhbGN1bGF0ZVxuICAgICAgY2h1bmsgPSBCdWZmZXIuZnJvbShjaHVuaywgZW5jb2RpbmcpXG4gICAgICBlbmNvZGluZyA9IHVuZGVmaW5lZDtcbiAgICAgIGxlbiA9IGNodW5rLmxlbmd0aFxuICAgIH1cblxuICAgIHRoaXMuc2V0KCdDb250ZW50LUxlbmd0aCcsIGxlbik7XG4gIH1cblxuICAvLyBwb3B1bGF0ZSBFVGFnXG4gIHZhciBldGFnO1xuICBpZiAoZ2VuZXJhdGVFVGFnICYmIGxlbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgaWYgKChldGFnID0gZXRhZ0ZuKGNodW5rLCBlbmNvZGluZykpKSB7XG4gICAgICB0aGlzLnNldCgnRVRhZycsIGV0YWcpO1xuICAgIH1cbiAgfVxuXG4gIC8vIGZyZXNobmVzc1xuICBpZiAocmVxLmZyZXNoKSB0aGlzLnN0YXR1cygzMDQpO1xuXG4gIC8vIHN0cmlwIGlycmVsZXZhbnQgaGVhZGVyc1xuICBpZiAoMjA0ID09PSB0aGlzLnN0YXR1c0NvZGUgfHwgMzA0ID09PSB0aGlzLnN0YXR1c0NvZGUpIHtcbiAgICB0aGlzLnJlbW92ZUhlYWRlcignQ29udGVudC1UeXBlJyk7XG4gICAgdGhpcy5yZW1vdmVIZWFkZXIoJ0NvbnRlbnQtTGVuZ3RoJyk7XG4gICAgdGhpcy5yZW1vdmVIZWFkZXIoJ1RyYW5zZmVyLUVuY29kaW5nJyk7XG4gICAgY2h1bmsgPSAnJztcbiAgfVxuXG4gIC8vIGFsdGVyIGhlYWRlcnMgZm9yIDIwNVxuICBpZiAodGhpcy5zdGF0dXNDb2RlID09PSAyMDUpIHtcbiAgICB0aGlzLnNldCgnQ29udGVudC1MZW5ndGgnLCAnMCcpXG4gICAgdGhpcy5yZW1vdmVIZWFkZXIoJ1RyYW5zZmVyLUVuY29kaW5nJylcbiAgICBjaHVuayA9ICcnXG4gIH1cblxuICBpZiAocmVxLm1ldGhvZCA9PT0gJ0hFQUQnKSB7XG4gICAgLy8gc2tpcCBib2R5IGZvciBIRUFEXG4gICAgdGhpcy5lbmQoKTtcbiAgfSBlbHNlIHtcbiAgICAvLyByZXNwb25kXG4gICAgdGhpcy5lbmQoY2h1bmssIGVuY29kaW5nKTtcbiAgfVxuXG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBTZW5kIEpTT04gcmVzcG9uc2UuXG4gKlxuICogRXhhbXBsZXM6XG4gKlxuICogICAgIHJlcy5qc29uKG51bGwpO1xuICogICAgIHJlcy5qc29uKHsgdXNlcjogJ3RqJyB9KTtcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ3xudW1iZXJ8Ym9vbGVhbnxvYmplY3R9IG9ialxuICogQHB1YmxpY1xuICovXG5cbnJlcy5qc29uID0gZnVuY3Rpb24ganNvbihvYmopIHtcbiAgLy8gc2V0dGluZ3NcbiAgdmFyIGFwcCA9IHRoaXMuYXBwO1xuICB2YXIgZXNjYXBlID0gYXBwLmdldCgnanNvbiBlc2NhcGUnKVxuICB2YXIgcmVwbGFjZXIgPSBhcHAuZ2V0KCdqc29uIHJlcGxhY2VyJyk7XG4gIHZhciBzcGFjZXMgPSBhcHAuZ2V0KCdqc29uIHNwYWNlcycpO1xuICB2YXIgYm9keSA9IHN0cmluZ2lmeShvYmosIHJlcGxhY2VyLCBzcGFjZXMsIGVzY2FwZSlcblxuICAvLyBjb250ZW50LXR5cGVcbiAgaWYgKCF0aGlzLmdldCgnQ29udGVudC1UeXBlJykpIHtcbiAgICB0aGlzLnNldCgnQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcbiAgfVxuXG4gIHJldHVybiB0aGlzLnNlbmQoYm9keSk7XG59O1xuXG4vKipcbiAqIFNlbmQgSlNPTiByZXNwb25zZSB3aXRoIEpTT05QIGNhbGxiYWNrIHN1cHBvcnQuXG4gKlxuICogRXhhbXBsZXM6XG4gKlxuICogICAgIHJlcy5qc29ucChudWxsKTtcbiAqICAgICByZXMuanNvbnAoeyB1c2VyOiAndGonIH0pO1xuICpcbiAqIEBwYXJhbSB7c3RyaW5nfG51bWJlcnxib29sZWFufG9iamVjdH0gb2JqXG4gKiBAcHVibGljXG4gKi9cblxucmVzLmpzb25wID0gZnVuY3Rpb24ganNvbnAob2JqKSB7XG4gIC8vIHNldHRpbmdzXG4gIHZhciBhcHAgPSB0aGlzLmFwcDtcbiAgdmFyIGVzY2FwZSA9IGFwcC5nZXQoJ2pzb24gZXNjYXBlJylcbiAgdmFyIHJlcGxhY2VyID0gYXBwLmdldCgnanNvbiByZXBsYWNlcicpO1xuICB2YXIgc3BhY2VzID0gYXBwLmdldCgnanNvbiBzcGFjZXMnKTtcbiAgdmFyIGJvZHkgPSBzdHJpbmdpZnkob2JqLCByZXBsYWNlciwgc3BhY2VzLCBlc2NhcGUpXG4gIHZhciBjYWxsYmFjayA9IHRoaXMucmVxLnF1ZXJ5W2FwcC5nZXQoJ2pzb25wIGNhbGxiYWNrIG5hbWUnKV07XG5cbiAgLy8gY29udGVudC10eXBlXG4gIGlmICghdGhpcy5nZXQoJ0NvbnRlbnQtVHlwZScpKSB7XG4gICAgdGhpcy5zZXQoJ1gtQ29udGVudC1UeXBlLU9wdGlvbnMnLCAnbm9zbmlmZicpO1xuICAgIHRoaXMuc2V0KCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xuICB9XG5cbiAgLy8gZml4dXAgY2FsbGJhY2tcbiAgaWYgKEFycmF5LmlzQXJyYXkoY2FsbGJhY2spKSB7XG4gICAgY2FsbGJhY2sgPSBjYWxsYmFja1swXTtcbiAgfVxuXG4gIC8vIGpzb25wXG4gIGlmICh0eXBlb2YgY2FsbGJhY2sgPT09ICdzdHJpbmcnICYmIGNhbGxiYWNrLmxlbmd0aCAhPT0gMCkge1xuICAgIHRoaXMuc2V0KCdYLUNvbnRlbnQtVHlwZS1PcHRpb25zJywgJ25vc25pZmYnKTtcbiAgICB0aGlzLnNldCgnQ29udGVudC1UeXBlJywgJ3RleHQvamF2YXNjcmlwdCcpO1xuXG4gICAgLy8gcmVzdHJpY3QgY2FsbGJhY2sgY2hhcnNldFxuICAgIGNhbGxiYWNrID0gY2FsbGJhY2sucmVwbGFjZSgvW15cXFtcXF1cXHckLl0vZywgJycpO1xuXG4gICAgaWYgKGJvZHkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgLy8gZW1wdHkgYXJndW1lbnRcbiAgICAgIGJvZHkgPSAnJ1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIGJvZHkgPT09ICdzdHJpbmcnKSB7XG4gICAgICAvLyByZXBsYWNlIGNoYXJzIG5vdCBhbGxvd2VkIGluIEphdmFTY3JpcHQgdGhhdCBhcmUgaW4gSlNPTlxuICAgICAgYm9keSA9IGJvZHlcbiAgICAgICAgLnJlcGxhY2UoL1xcdTIwMjgvZywgJ1xcXFx1MjAyOCcpXG4gICAgICAgIC5yZXBsYWNlKC9cXHUyMDI5L2csICdcXFxcdTIwMjknKVxuICAgIH1cblxuICAgIC8vIHRoZSAvKiovIGlzIGEgc3BlY2lmaWMgc2VjdXJpdHkgbWl0aWdhdGlvbiBmb3IgXCJSb3NldHRhIEZsYXNoIEpTT05QIGFidXNlXCJcbiAgICAvLyB0aGUgdHlwZW9mIGNoZWNrIGlzIGp1c3QgdG8gcmVkdWNlIGNsaWVudCBlcnJvciBub2lzZVxuICAgIGJvZHkgPSAnLyoqLyB0eXBlb2YgJyArIGNhbGxiYWNrICsgJyA9PT0gXFwnZnVuY3Rpb25cXCcgJiYgJyArIGNhbGxiYWNrICsgJygnICsgYm9keSArICcpOyc7XG4gIH1cblxuICByZXR1cm4gdGhpcy5zZW5kKGJvZHkpO1xufTtcblxuLyoqXG4gKiBTZW5kIGdpdmVuIEhUVFAgc3RhdHVzIGNvZGUuXG4gKlxuICogU2V0cyB0aGUgcmVzcG9uc2Ugc3RhdHVzIHRvIGBzdGF0dXNDb2RlYCBhbmQgdGhlIGJvZHkgb2YgdGhlXG4gKiByZXNwb25zZSB0byB0aGUgc3RhbmRhcmQgZGVzY3JpcHRpb24gZnJvbSBub2RlJ3MgaHR0cC5TVEFUVVNfQ09ERVNcbiAqIG9yIHRoZSBzdGF0dXNDb2RlIG51bWJlciBpZiBubyBkZXNjcmlwdGlvbi5cbiAqXG4gKiBFeGFtcGxlczpcbiAqXG4gKiAgICAgcmVzLnNlbmRTdGF0dXMoMjAwKTtcbiAqXG4gKiBAcGFyYW0ge251bWJlcn0gc3RhdHVzQ29kZVxuICogQHB1YmxpY1xuICovXG5cbnJlcy5zZW5kU3RhdHVzID0gZnVuY3Rpb24gc2VuZFN0YXR1cyhzdGF0dXNDb2RlKSB7XG4gIHZhciBib2R5ID0gc3RhdHVzZXMubWVzc2FnZVtzdGF0dXNDb2RlXSB8fCBTdHJpbmcoc3RhdHVzQ29kZSlcblxuICB0aGlzLnN0YXR1cyhzdGF0dXNDb2RlKTtcbiAgdGhpcy50eXBlKCd0eHQnKTtcblxuICByZXR1cm4gdGhpcy5zZW5kKGJvZHkpO1xufTtcblxuLyoqXG4gKiBUcmFuc2ZlciB0aGUgZmlsZSBhdCB0aGUgZ2l2ZW4gYHBhdGhgLlxuICpcbiAqIEF1dG9tYXRpY2FsbHkgc2V0cyB0aGUgX0NvbnRlbnQtVHlwZV8gcmVzcG9uc2UgaGVhZGVyIGZpZWxkLlxuICogVGhlIGNhbGxiYWNrIGBjYWxsYmFjayhlcnIpYCBpcyBpbnZva2VkIHdoZW4gdGhlIHRyYW5zZmVyIGlzIGNvbXBsZXRlXG4gKiBvciB3aGVuIGFuIGVycm9yIG9jY3Vycy4gQmUgc3VyZSB0byBjaGVjayBgcmVzLmhlYWRlcnNTZW50YFxuICogaWYgeW91IHdpc2ggdG8gYXR0ZW1wdCByZXNwb25kaW5nLCBhcyB0aGUgaGVhZGVyIGFuZCBzb21lIGRhdGFcbiAqIG1heSBoYXZlIGFscmVhZHkgYmVlbiB0cmFuc2ZlcnJlZC5cbiAqXG4gKiBPcHRpb25zOlxuICpcbiAqICAgLSBgbWF4QWdlYCAgIGRlZmF1bHRpbmcgdG8gMCAoY2FuIGJlIHN0cmluZyBjb252ZXJ0ZWQgYnkgYG1zYClcbiAqICAgLSBgcm9vdGAgICAgIHJvb3QgZGlyZWN0b3J5IGZvciByZWxhdGl2ZSBmaWxlbmFtZXNcbiAqICAgLSBgaGVhZGVyc2AgIG9iamVjdCBvZiBoZWFkZXJzIHRvIHNlcnZlIHdpdGggZmlsZVxuICogICAtIGBkb3RmaWxlc2Agc2VydmUgZG90ZmlsZXMsIGRlZmF1bHRpbmcgdG8gZmFsc2U7IGNhbiBiZSBgXCJhbGxvd1wiYCB0byBzZW5kIHRoZW1cbiAqXG4gKiBPdGhlciBvcHRpb25zIGFyZSBwYXNzZWQgYWxvbmcgdG8gYHNlbmRgLlxuICpcbiAqIEV4YW1wbGVzOlxuICpcbiAqICBUaGUgZm9sbG93aW5nIGV4YW1wbGUgaWxsdXN0cmF0ZXMgaG93IGByZXMuc2VuZEZpbGUoKWAgbWF5XG4gKiAgYmUgdXNlZCBhcyBhbiBhbHRlcm5hdGl2ZSBmb3IgdGhlIGBzdGF0aWMoKWAgbWlkZGxld2FyZSBmb3JcbiAqICBkeW5hbWljIHNpdHVhdGlvbnMuIFRoZSBjb2RlIGJhY2tpbmcgYHJlcy5zZW5kRmlsZSgpYCBpcyBhY3R1YWxseVxuICogIHRoZSBzYW1lIGNvZGUsIHNvIEhUVFAgY2FjaGUgc3VwcG9ydCBldGMgaXMgaWRlbnRpY2FsLlxuICpcbiAqICAgICBhcHAuZ2V0KCcvdXNlci86dWlkL3Bob3Rvcy86ZmlsZScsIGZ1bmN0aW9uKHJlcSwgcmVzKXtcbiAqICAgICAgIHZhciB1aWQgPSByZXEucGFyYW1zLnVpZFxuICogICAgICAgICAsIGZpbGUgPSByZXEucGFyYW1zLmZpbGU7XG4gKlxuICogICAgICAgcmVxLnVzZXIubWF5Vmlld0ZpbGVzRnJvbSh1aWQsIGZ1bmN0aW9uKHllcyl7XG4gKiAgICAgICAgIGlmICh5ZXMpIHtcbiAqICAgICAgICAgICByZXMuc2VuZEZpbGUoJy91cGxvYWRzLycgKyB1aWQgKyAnLycgKyBmaWxlKTtcbiAqICAgICAgICAgfSBlbHNlIHtcbiAqICAgICAgICAgICByZXMuc2VuZCg0MDMsICdTb3JyeSEgeW91IGNhbnQgc2VlIHRoYXQuJyk7XG4gKiAgICAgICAgIH1cbiAqICAgICAgIH0pO1xuICogICAgIH0pO1xuICpcbiAqIEBwdWJsaWNcbiAqL1xuXG5yZXMuc2VuZEZpbGUgPSBmdW5jdGlvbiBzZW5kRmlsZShwYXRoLCBvcHRpb25zLCBjYWxsYmFjaykge1xuICB2YXIgZG9uZSA9IGNhbGxiYWNrO1xuICB2YXIgcmVxID0gdGhpcy5yZXE7XG4gIHZhciByZXMgPSB0aGlzO1xuICB2YXIgbmV4dCA9IHJlcS5uZXh0O1xuICB2YXIgb3B0cyA9IG9wdGlvbnMgfHwge307XG5cbiAgaWYgKCFwYXRoKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcigncGF0aCBhcmd1bWVudCBpcyByZXF1aXJlZCB0byByZXMuc2VuZEZpbGUnKTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgcGF0aCAhPT0gJ3N0cmluZycpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdwYXRoIG11c3QgYmUgYSBzdHJpbmcgdG8gcmVzLnNlbmRGaWxlJylcbiAgfVxuXG4gIC8vIHN1cHBvcnQgZnVuY3Rpb24gYXMgc2Vjb25kIGFyZ1xuICBpZiAodHlwZW9mIG9wdGlvbnMgPT09ICdmdW5jdGlvbicpIHtcbiAgICBkb25lID0gb3B0aW9ucztcbiAgICBvcHRzID0ge307XG4gIH1cblxuICBpZiAoIW9wdHMucm9vdCAmJiAhcGF0aElzQWJzb2x1dGUocGF0aCkpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdwYXRoIG11c3QgYmUgYWJzb2x1dGUgb3Igc3BlY2lmeSByb290IHRvIHJlcy5zZW5kRmlsZScpO1xuICB9XG5cbiAgLy8gY3JlYXRlIGZpbGUgc3RyZWFtXG4gIHZhciBwYXRobmFtZSA9IGVuY29kZVVSSShwYXRoKTtcblxuICAvLyB3aXJlIGFwcGxpY2F0aW9uIGV0YWcgb3B0aW9uIHRvIHNlbmRcbiAgb3B0cy5ldGFnID0gdGhpcy5hcHAuZW5hYmxlZCgnZXRhZycpO1xuICB2YXIgZmlsZSA9IHNlbmQocmVxLCBwYXRobmFtZSwgb3B0cyk7XG5cbiAgLy8gdHJhbnNmZXJcbiAgc2VuZGZpbGUocmVzLCBmaWxlLCBvcHRzLCBmdW5jdGlvbiAoZXJyKSB7XG4gICAgaWYgKGRvbmUpIHJldHVybiBkb25lKGVycik7XG4gICAgaWYgKGVyciAmJiBlcnIuY29kZSA9PT0gJ0VJU0RJUicpIHJldHVybiBuZXh0KCk7XG5cbiAgICAvLyBuZXh0KCkgYWxsIGJ1dCB3cml0ZSBlcnJvcnNcbiAgICBpZiAoZXJyICYmIGVyci5jb2RlICE9PSAnRUNPTk5BQk9SVEVEJyAmJiBlcnIuc3lzY2FsbCAhPT0gJ3dyaXRlJykge1xuICAgICAgbmV4dChlcnIpO1xuICAgIH1cbiAgfSk7XG59O1xuXG4vKipcbiAqIFRyYW5zZmVyIHRoZSBmaWxlIGF0IHRoZSBnaXZlbiBgcGF0aGAgYXMgYW4gYXR0YWNobWVudC5cbiAqXG4gKiBPcHRpb25hbGx5IHByb3ZpZGluZyBhbiBhbHRlcm5hdGUgYXR0YWNobWVudCBgZmlsZW5hbWVgLFxuICogYW5kIG9wdGlvbmFsIGNhbGxiYWNrIGBjYWxsYmFjayhlcnIpYC4gVGhlIGNhbGxiYWNrIGlzIGludm9rZWRcbiAqIHdoZW4gdGhlIGRhdGEgdHJhbnNmZXIgaXMgY29tcGxldGUsIG9yIHdoZW4gYW4gZXJyb3IgaGFzXG4gKiBvY2N1cnJlZC4gQmUgc3VyZSB0byBjaGVjayBgcmVzLmhlYWRlcnNTZW50YCBpZiB5b3UgcGxhbiB0byByZXNwb25kLlxuICpcbiAqIE9wdGlvbmFsbHkgcHJvdmlkaW5nIGFuIGBvcHRpb25zYCBvYmplY3QgdG8gdXNlIHdpdGggYHJlcy5zZW5kRmlsZSgpYC5cbiAqIFRoaXMgZnVuY3Rpb24gd2lsbCBzZXQgdGhlIGBDb250ZW50LURpc3Bvc2l0aW9uYCBoZWFkZXIsIG92ZXJyaWRpbmdcbiAqIGFueSBgQ29udGVudC1EaXNwb3NpdGlvbmAgaGVhZGVyIHBhc3NlZCBhcyBoZWFkZXIgb3B0aW9ucyBpbiBvcmRlclxuICogdG8gc2V0IHRoZSBhdHRhY2htZW50IGFuZCBmaWxlbmFtZS5cbiAqXG4gKiBUaGlzIG1ldGhvZCB1c2VzIGByZXMuc2VuZEZpbGUoKWAuXG4gKlxuICogQHB1YmxpY1xuICovXG5cbnJlcy5kb3dubG9hZCA9IGZ1bmN0aW9uIGRvd25sb2FkIChwYXRoLCBmaWxlbmFtZSwgb3B0aW9ucywgY2FsbGJhY2spIHtcbiAgdmFyIGRvbmUgPSBjYWxsYmFjaztcbiAgdmFyIG5hbWUgPSBmaWxlbmFtZTtcbiAgdmFyIG9wdHMgPSBvcHRpb25zIHx8IG51bGxcblxuICAvLyBzdXBwb3J0IGZ1bmN0aW9uIGFzIHNlY29uZCBvciB0aGlyZCBhcmdcbiAgaWYgKHR5cGVvZiBmaWxlbmFtZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGRvbmUgPSBmaWxlbmFtZTtcbiAgICBuYW1lID0gbnVsbDtcbiAgICBvcHRzID0gbnVsbFxuICB9IGVsc2UgaWYgKHR5cGVvZiBvcHRpb25zID09PSAnZnVuY3Rpb24nKSB7XG4gICAgZG9uZSA9IG9wdGlvbnNcbiAgICBvcHRzID0gbnVsbFxuICB9XG5cbiAgLy8gc3VwcG9ydCBvcHRpb25hbCBmaWxlbmFtZSwgd2hlcmUgb3B0aW9ucyBtYXkgYmUgaW4gaXQncyBwbGFjZVxuICBpZiAodHlwZW9mIGZpbGVuYW1lID09PSAnb2JqZWN0JyAmJlxuICAgICh0eXBlb2Ygb3B0aW9ucyA9PT0gJ2Z1bmN0aW9uJyB8fCBvcHRpb25zID09PSB1bmRlZmluZWQpKSB7XG4gICAgbmFtZSA9IG51bGxcbiAgICBvcHRzID0gZmlsZW5hbWVcbiAgfVxuXG4gIC8vIHNldCBDb250ZW50LURpc3Bvc2l0aW9uIHdoZW4gZmlsZSBpcyBzZW50XG4gIHZhciBoZWFkZXJzID0ge1xuICAgICdDb250ZW50LURpc3Bvc2l0aW9uJzogY29udGVudERpc3Bvc2l0aW9uKG5hbWUgfHwgcGF0aClcbiAgfTtcblxuICAvLyBtZXJnZSB1c2VyLXByb3ZpZGVkIGhlYWRlcnNcbiAgaWYgKG9wdHMgJiYgb3B0cy5oZWFkZXJzKSB7XG4gICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhvcHRzLmhlYWRlcnMpXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIga2V5ID0ga2V5c1tpXVxuICAgICAgaWYgKGtleS50b0xvd2VyQ2FzZSgpICE9PSAnY29udGVudC1kaXNwb3NpdGlvbicpIHtcbiAgICAgICAgaGVhZGVyc1trZXldID0gb3B0cy5oZWFkZXJzW2tleV1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBtZXJnZSB1c2VyLXByb3ZpZGVkIG9wdGlvbnNcbiAgb3B0cyA9IE9iamVjdC5jcmVhdGUob3B0cylcbiAgb3B0cy5oZWFkZXJzID0gaGVhZGVyc1xuXG4gIC8vIFJlc29sdmUgdGhlIGZ1bGwgcGF0aCBmb3Igc2VuZEZpbGVcbiAgdmFyIGZ1bGxQYXRoID0gIW9wdHMucm9vdFxuICAgID8gcmVzb2x2ZShwYXRoKVxuICAgIDogcGF0aFxuXG4gIC8vIHNlbmQgZmlsZVxuICByZXR1cm4gdGhpcy5zZW5kRmlsZShmdWxsUGF0aCwgb3B0cywgZG9uZSlcbn07XG5cbi8qKlxuICogU2V0IF9Db250ZW50LVR5cGVfIHJlc3BvbnNlIGhlYWRlciB3aXRoIGB0eXBlYCB0aHJvdWdoIGBtaW1lLmNvbnRlbnRUeXBlKClgXG4gKiB3aGVuIGl0IGRvZXMgbm90IGNvbnRhaW4gXCIvXCIsIG9yIHNldCB0aGUgQ29udGVudC1UeXBlIHRvIGB0eXBlYCBvdGhlcndpc2UuXG4gKiBXaGVuIG5vIG1hcHBpbmcgaXMgZm91bmQgdGhvdWdoIGBtaW1lLmNvbnRlbnRUeXBlKClgLCB0aGUgdHlwZSBpcyBzZXQgdG9cbiAqIFwiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtXCIuXG4gKlxuICogRXhhbXBsZXM6XG4gKlxuICogICAgIHJlcy50eXBlKCcuaHRtbCcpO1xuICogICAgIHJlcy50eXBlKCdodG1sJyk7XG4gKiAgICAgcmVzLnR5cGUoJ2pzb24nKTtcbiAqICAgICByZXMudHlwZSgnYXBwbGljYXRpb24vanNvbicpO1xuICogICAgIHJlcy50eXBlKCdwbmcnKTtcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gdHlwZVxuICogQHJldHVybiB7U2VydmVyUmVzcG9uc2V9IGZvciBjaGFpbmluZ1xuICogQHB1YmxpY1xuICovXG5cbnJlcy5jb250ZW50VHlwZSA9XG5yZXMudHlwZSA9IGZ1bmN0aW9uIGNvbnRlbnRUeXBlKHR5cGUpIHtcbiAgdmFyIGN0ID0gdHlwZS5pbmRleE9mKCcvJykgPT09IC0xXG4gICAgPyAobWltZS5jb250ZW50VHlwZSh0eXBlKSB8fCAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJylcbiAgICA6IHR5cGU7XG5cbiAgcmV0dXJuIHRoaXMuc2V0KCdDb250ZW50LVR5cGUnLCBjdCk7XG59O1xuXG4vKipcbiAqIFJlc3BvbmQgdG8gdGhlIEFjY2VwdGFibGUgZm9ybWF0cyB1c2luZyBhbiBgb2JqYFxuICogb2YgbWltZS10eXBlIGNhbGxiYWNrcy5cbiAqXG4gKiBUaGlzIG1ldGhvZCB1c2VzIGByZXEuYWNjZXB0ZWRgLCBhbiBhcnJheSBvZlxuICogYWNjZXB0YWJsZSB0eXBlcyBvcmRlcmVkIGJ5IHRoZWlyIHF1YWxpdHkgdmFsdWVzLlxuICogV2hlbiBcIkFjY2VwdFwiIGlzIG5vdCBwcmVzZW50IHRoZSBfZmlyc3RfIGNhbGxiYWNrXG4gKiBpcyBpbnZva2VkLCBvdGhlcndpc2UgdGhlIGZpcnN0IG1hdGNoIGlzIHVzZWQuIFdoZW5cbiAqIG5vIG1hdGNoIGlzIHBlcmZvcm1lZCB0aGUgc2VydmVyIHJlc3BvbmRzIHdpdGhcbiAqIDQwNiBcIk5vdCBBY2NlcHRhYmxlXCIuXG4gKlxuICogQ29udGVudC1UeXBlIGlzIHNldCBmb3IgeW91LCBob3dldmVyIGlmIHlvdSBjaG9vc2VcbiAqIHlvdSBtYXkgYWx0ZXIgdGhpcyB3aXRoaW4gdGhlIGNhbGxiYWNrIHVzaW5nIGByZXMudHlwZSgpYFxuICogb3IgYHJlcy5zZXQoJ0NvbnRlbnQtVHlwZScsIC4uLilgLlxuICpcbiAqICAgIHJlcy5mb3JtYXQoe1xuICogICAgICAndGV4dC9wbGFpbic6IGZ1bmN0aW9uKCl7XG4gKiAgICAgICAgcmVzLnNlbmQoJ2hleScpO1xuICogICAgICB9LFxuICpcbiAqICAgICAgJ3RleHQvaHRtbCc6IGZ1bmN0aW9uKCl7XG4gKiAgICAgICAgcmVzLnNlbmQoJzxwPmhleTwvcD4nKTtcbiAqICAgICAgfSxcbiAqXG4gKiAgICAgICdhcHBsaWNhdGlvbi9qc29uJzogZnVuY3Rpb24gKCkge1xuICogICAgICAgIHJlcy5zZW5kKHsgbWVzc2FnZTogJ2hleScgfSk7XG4gKiAgICAgIH1cbiAqICAgIH0pO1xuICpcbiAqIEluIGFkZGl0aW9uIHRvIGNhbm9uaWNhbGl6ZWQgTUlNRSB0eXBlcyB5b3UgbWF5XG4gKiBhbHNvIHVzZSBleHRuYW1lcyBtYXBwZWQgdG8gdGhlc2UgdHlwZXM6XG4gKlxuICogICAgcmVzLmZvcm1hdCh7XG4gKiAgICAgIHRleHQ6IGZ1bmN0aW9uKCl7XG4gKiAgICAgICAgcmVzLnNlbmQoJ2hleScpO1xuICogICAgICB9LFxuICpcbiAqICAgICAgaHRtbDogZnVuY3Rpb24oKXtcbiAqICAgICAgICByZXMuc2VuZCgnPHA+aGV5PC9wPicpO1xuICogICAgICB9LFxuICpcbiAqICAgICAganNvbjogZnVuY3Rpb24oKXtcbiAqICAgICAgICByZXMuc2VuZCh7IG1lc3NhZ2U6ICdoZXknIH0pO1xuICogICAgICB9XG4gKiAgICB9KTtcbiAqXG4gKiBCeSBkZWZhdWx0IEV4cHJlc3MgcGFzc2VzIGFuIGBFcnJvcmBcbiAqIHdpdGggYSBgLnN0YXR1c2Agb2YgNDA2IHRvIGBuZXh0KGVycilgXG4gKiBpZiBhIG1hdGNoIGlzIG5vdCBtYWRlLiBJZiB5b3UgcHJvdmlkZVxuICogYSBgLmRlZmF1bHRgIGNhbGxiYWNrIGl0IHdpbGwgYmUgaW52b2tlZFxuICogaW5zdGVhZC5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqXG4gKiBAcmV0dXJuIHtTZXJ2ZXJSZXNwb25zZX0gZm9yIGNoYWluaW5nXG4gKiBAcHVibGljXG4gKi9cblxucmVzLmZvcm1hdCA9IGZ1bmN0aW9uKG9iail7XG4gIHZhciByZXEgPSB0aGlzLnJlcTtcbiAgdmFyIG5leHQgPSByZXEubmV4dDtcblxuICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKG9iailcbiAgICAuZmlsdGVyKGZ1bmN0aW9uICh2KSB7IHJldHVybiB2ICE9PSAnZGVmYXVsdCcgfSlcblxuICB2YXIga2V5ID0ga2V5cy5sZW5ndGggPiAwXG4gICAgPyByZXEuYWNjZXB0cyhrZXlzKVxuICAgIDogZmFsc2U7XG5cbiAgdGhpcy52YXJ5KFwiQWNjZXB0XCIpO1xuXG4gIGlmIChrZXkpIHtcbiAgICB0aGlzLnNldCgnQ29udGVudC1UeXBlJywgbm9ybWFsaXplVHlwZShrZXkpLnZhbHVlKTtcbiAgICBvYmpba2V5XShyZXEsIHRoaXMsIG5leHQpO1xuICB9IGVsc2UgaWYgKG9iai5kZWZhdWx0KSB7XG4gICAgb2JqLmRlZmF1bHQocmVxLCB0aGlzLCBuZXh0KVxuICB9IGVsc2Uge1xuICAgIG5leHQoY3JlYXRlRXJyb3IoNDA2LCB7XG4gICAgICB0eXBlczogbm9ybWFsaXplVHlwZXMoa2V5cykubWFwKGZ1bmN0aW9uIChvKSB7IHJldHVybiBvLnZhbHVlIH0pXG4gICAgfSkpXG4gIH1cblxuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogU2V0IF9Db250ZW50LURpc3Bvc2l0aW9uXyBoZWFkZXIgdG8gX2F0dGFjaG1lbnRfIHdpdGggb3B0aW9uYWwgYGZpbGVuYW1lYC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gZmlsZW5hbWVcbiAqIEByZXR1cm4ge1NlcnZlclJlc3BvbnNlfVxuICogQHB1YmxpY1xuICovXG5cbnJlcy5hdHRhY2htZW50ID0gZnVuY3Rpb24gYXR0YWNobWVudChmaWxlbmFtZSkge1xuICBpZiAoZmlsZW5hbWUpIHtcbiAgICB0aGlzLnR5cGUoZXh0bmFtZShmaWxlbmFtZSkpO1xuICB9XG5cbiAgdGhpcy5zZXQoJ0NvbnRlbnQtRGlzcG9zaXRpb24nLCBjb250ZW50RGlzcG9zaXRpb24oZmlsZW5hbWUpKTtcblxuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogQXBwZW5kIGFkZGl0aW9uYWwgaGVhZGVyIGBmaWVsZGAgd2l0aCB2YWx1ZSBgdmFsYC5cbiAqXG4gKiBFeGFtcGxlOlxuICpcbiAqICAgIHJlcy5hcHBlbmQoJ0xpbmsnLCBbJzxodHRwOi8vbG9jYWxob3N0Lz4nLCAnPGh0dHA6Ly9sb2NhbGhvc3Q6MzAwMC8+J10pO1xuICogICAgcmVzLmFwcGVuZCgnU2V0LUNvb2tpZScsICdmb289YmFyOyBQYXRoPS87IEh0dHBPbmx5Jyk7XG4gKiAgICByZXMuYXBwZW5kKCdXYXJuaW5nJywgJzE5OSBNaXNjZWxsYW5lb3VzIHdhcm5pbmcnKTtcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gZmllbGRcbiAqIEBwYXJhbSB7U3RyaW5nfEFycmF5fSB2YWxcbiAqIEByZXR1cm4ge1NlcnZlclJlc3BvbnNlfSBmb3IgY2hhaW5pbmdcbiAqIEBwdWJsaWNcbiAqL1xuXG5yZXMuYXBwZW5kID0gZnVuY3Rpb24gYXBwZW5kKGZpZWxkLCB2YWwpIHtcbiAgdmFyIHByZXYgPSB0aGlzLmdldChmaWVsZCk7XG4gIHZhciB2YWx1ZSA9IHZhbDtcblxuICBpZiAocHJldikge1xuICAgIC8vIGNvbmNhdCB0aGUgbmV3IGFuZCBwcmV2IHZhbHNcbiAgICB2YWx1ZSA9IEFycmF5LmlzQXJyYXkocHJldikgPyBwcmV2LmNvbmNhdCh2YWwpXG4gICAgICA6IEFycmF5LmlzQXJyYXkodmFsKSA/IFtwcmV2XS5jb25jYXQodmFsKVxuICAgICAgICA6IFtwcmV2LCB2YWxdXG4gIH1cblxuICByZXR1cm4gdGhpcy5zZXQoZmllbGQsIHZhbHVlKTtcbn07XG5cbi8qKlxuICogU2V0IGhlYWRlciBgZmllbGRgIHRvIGB2YWxgLCBvciBwYXNzXG4gKiBhbiBvYmplY3Qgb2YgaGVhZGVyIGZpZWxkcy5cbiAqXG4gKiBFeGFtcGxlczpcbiAqXG4gKiAgICByZXMuc2V0KCdGb28nLCBbJ2JhcicsICdiYXonXSk7XG4gKiAgICByZXMuc2V0KCdBY2NlcHQnLCAnYXBwbGljYXRpb24vanNvbicpO1xuICogICAgcmVzLnNldCh7IEFjY2VwdDogJ3RleHQvcGxhaW4nLCAnWC1BUEktS2V5JzogJ3RvYmknIH0pO1xuICpcbiAqIEFsaWFzZWQgYXMgYHJlcy5oZWFkZXIoKWAuXG4gKlxuICogV2hlbiB0aGUgc2V0IGhlYWRlciBpcyBcIkNvbnRlbnQtVHlwZVwiLCB0aGUgdHlwZSBpcyBleHBhbmRlZCB0byBpbmNsdWRlXG4gKiB0aGUgY2hhcnNldCBpZiBub3QgcHJlc2VudCB1c2luZyBgbWltZS5jb250ZW50VHlwZSgpYC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ3xPYmplY3R9IGZpZWxkXG4gKiBAcGFyYW0ge1N0cmluZ3xBcnJheX0gdmFsXG4gKiBAcmV0dXJuIHtTZXJ2ZXJSZXNwb25zZX0gZm9yIGNoYWluaW5nXG4gKiBAcHVibGljXG4gKi9cblxucmVzLnNldCA9XG5yZXMuaGVhZGVyID0gZnVuY3Rpb24gaGVhZGVyKGZpZWxkLCB2YWwpIHtcbiAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDIpIHtcbiAgICB2YXIgdmFsdWUgPSBBcnJheS5pc0FycmF5KHZhbClcbiAgICAgID8gdmFsLm1hcChTdHJpbmcpXG4gICAgICA6IFN0cmluZyh2YWwpO1xuXG4gICAgLy8gYWRkIGNoYXJzZXQgdG8gY29udGVudC10eXBlXG4gICAgaWYgKGZpZWxkLnRvTG93ZXJDYXNlKCkgPT09ICdjb250ZW50LXR5cGUnKSB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignQ29udGVudC1UeXBlIGNhbm5vdCBiZSBzZXQgdG8gYW4gQXJyYXknKTtcbiAgICAgIH1cbiAgICAgIHZhbHVlID0gbWltZS5jb250ZW50VHlwZSh2YWx1ZSlcbiAgICB9XG5cbiAgICB0aGlzLnNldEhlYWRlcihmaWVsZCwgdmFsdWUpO1xuICB9IGVsc2Uge1xuICAgIGZvciAodmFyIGtleSBpbiBmaWVsZCkge1xuICAgICAgdGhpcy5zZXQoa2V5LCBmaWVsZFtrZXldKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIEdldCB2YWx1ZSBmb3IgaGVhZGVyIGBmaWVsZGAuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGZpZWxkXG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKiBAcHVibGljXG4gKi9cblxucmVzLmdldCA9IGZ1bmN0aW9uKGZpZWxkKXtcbiAgcmV0dXJuIHRoaXMuZ2V0SGVhZGVyKGZpZWxkKTtcbn07XG5cbi8qKlxuICogQ2xlYXIgY29va2llIGBuYW1lYC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gbmFtZVxuICogQHBhcmFtIHtPYmplY3R9IFtvcHRpb25zXVxuICogQHJldHVybiB7U2VydmVyUmVzcG9uc2V9IGZvciBjaGFpbmluZ1xuICogQHB1YmxpY1xuICovXG5cbnJlcy5jbGVhckNvb2tpZSA9IGZ1bmN0aW9uIGNsZWFyQ29va2llKG5hbWUsIG9wdGlvbnMpIHtcbiAgLy8gRm9yY2UgY29va2llIGV4cGlyYXRpb24gYnkgc2V0dGluZyBleHBpcmVzIHRvIHRoZSBwYXN0XG4gIGNvbnN0IG9wdHMgPSB7IHBhdGg6ICcvJywgLi4ub3B0aW9ucywgZXhwaXJlczogbmV3IERhdGUoMSl9O1xuICAvLyBlbnN1cmUgbWF4QWdlIGlzIG5vdCBwYXNzZWRcbiAgZGVsZXRlIG9wdHMubWF4QWdlXG5cbiAgcmV0dXJuIHRoaXMuY29va2llKG5hbWUsICcnLCBvcHRzKTtcbn07XG5cbi8qKlxuICogU2V0IGNvb2tpZSBgbmFtZWAgdG8gYHZhbHVlYCwgd2l0aCB0aGUgZ2l2ZW4gYG9wdGlvbnNgLlxuICpcbiAqIE9wdGlvbnM6XG4gKlxuICogICAgLSBgbWF4QWdlYCAgIG1heC1hZ2UgaW4gbWlsbGlzZWNvbmRzLCBjb252ZXJ0ZWQgdG8gYGV4cGlyZXNgXG4gKiAgICAtIGBzaWduZWRgICAgc2lnbiB0aGUgY29va2llXG4gKiAgICAtIGBwYXRoYCAgICAgZGVmYXVsdHMgdG8gXCIvXCJcbiAqXG4gKiBFeGFtcGxlczpcbiAqXG4gKiAgICAvLyBcIlJlbWVtYmVyIE1lXCIgZm9yIDE1IG1pbnV0ZXNcbiAqICAgIHJlcy5jb29raWUoJ3JlbWVtYmVybWUnLCAnMScsIHsgZXhwaXJlczogbmV3IERhdGUoRGF0ZS5ub3coKSArIDkwMDAwMCksIGh0dHBPbmx5OiB0cnVlIH0pO1xuICpcbiAqICAgIC8vIHNhbWUgYXMgYWJvdmVcbiAqICAgIHJlcy5jb29raWUoJ3JlbWVtYmVybWUnLCAnMScsIHsgbWF4QWdlOiA5MDAwMDAsIGh0dHBPbmx5OiB0cnVlIH0pXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IG5hbWVcbiAqIEBwYXJhbSB7U3RyaW5nfE9iamVjdH0gdmFsdWVcbiAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0aW9uc11cbiAqIEByZXR1cm4ge1NlcnZlclJlc3BvbnNlfSBmb3IgY2hhaW5pbmdcbiAqIEBwdWJsaWNcbiAqL1xuXG5yZXMuY29va2llID0gZnVuY3Rpb24gKG5hbWUsIHZhbHVlLCBvcHRpb25zKSB7XG4gIHZhciBvcHRzID0geyAuLi5vcHRpb25zIH07XG4gIHZhciBzZWNyZXQgPSB0aGlzLnJlcS5zZWNyZXQ7XG4gIHZhciBzaWduZWQgPSBvcHRzLnNpZ25lZDtcblxuICBpZiAoc2lnbmVkICYmICFzZWNyZXQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2Nvb2tpZVBhcnNlcihcInNlY3JldFwiKSByZXF1aXJlZCBmb3Igc2lnbmVkIGNvb2tpZXMnKTtcbiAgfVxuXG4gIHZhciB2YWwgPSB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnXG4gICAgPyAnajonICsgSlNPTi5zdHJpbmdpZnkodmFsdWUpXG4gICAgOiBTdHJpbmcodmFsdWUpO1xuXG4gIGlmIChzaWduZWQpIHtcbiAgICB2YWwgPSAnczonICsgc2lnbih2YWwsIHNlY3JldCk7XG4gIH1cblxuICBpZiAob3B0cy5tYXhBZ2UgIT0gbnVsbCkge1xuICAgIHZhciBtYXhBZ2UgPSBvcHRzLm1heEFnZSAtIDBcblxuICAgIGlmICghaXNOYU4obWF4QWdlKSkge1xuICAgICAgb3B0cy5leHBpcmVzID0gbmV3IERhdGUoRGF0ZS5ub3coKSArIG1heEFnZSlcbiAgICAgIG9wdHMubWF4QWdlID0gTWF0aC5mbG9vcihtYXhBZ2UgLyAxMDAwKVxuICAgIH1cbiAgfVxuXG4gIGlmIChvcHRzLnBhdGggPT0gbnVsbCkge1xuICAgIG9wdHMucGF0aCA9ICcvJztcbiAgfVxuXG4gIHRoaXMuYXBwZW5kKCdTZXQtQ29va2llJywgY29va2llLnNlcmlhbGl6ZShuYW1lLCBTdHJpbmcodmFsKSwgb3B0cykpO1xuXG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBTZXQgdGhlIGxvY2F0aW9uIGhlYWRlciB0byBgdXJsYC5cbiAqXG4gKiBUaGUgZ2l2ZW4gYHVybGAgY2FuIGFsc28gYmUgXCJiYWNrXCIsIHdoaWNoIHJlZGlyZWN0c1xuICogdG8gdGhlIF9SZWZlcnJlcl8gb3IgX1JlZmVyZXJfIGhlYWRlcnMgb3IgXCIvXCIuXG4gKlxuICogRXhhbXBsZXM6XG4gKlxuICogICAgcmVzLmxvY2F0aW9uKCcvZm9vL2JhcicpLjtcbiAqICAgIHJlcy5sb2NhdGlvbignaHR0cDovL2V4YW1wbGUuY29tJyk7XG4gKiAgICByZXMubG9jYXRpb24oJy4uL2xvZ2luJyk7XG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHVybFxuICogQHJldHVybiB7U2VydmVyUmVzcG9uc2V9IGZvciBjaGFpbmluZ1xuICogQHB1YmxpY1xuICovXG5cbnJlcy5sb2NhdGlvbiA9IGZ1bmN0aW9uIGxvY2F0aW9uKHVybCkge1xuICByZXR1cm4gdGhpcy5zZXQoJ0xvY2F0aW9uJywgZW5jb2RlVXJsKHVybCkpO1xufTtcblxuLyoqXG4gKiBSZWRpcmVjdCB0byB0aGUgZ2l2ZW4gYHVybGAgd2l0aCBvcHRpb25hbCByZXNwb25zZSBgc3RhdHVzYFxuICogZGVmYXVsdGluZyB0byAzMDIuXG4gKlxuICogRXhhbXBsZXM6XG4gKlxuICogICAgcmVzLnJlZGlyZWN0KCcvZm9vL2JhcicpO1xuICogICAgcmVzLnJlZGlyZWN0KCdodHRwOi8vZXhhbXBsZS5jb20nKTtcbiAqICAgIHJlcy5yZWRpcmVjdCgzMDEsICdodHRwOi8vZXhhbXBsZS5jb20nKTtcbiAqICAgIHJlcy5yZWRpcmVjdCgnLi4vbG9naW4nKTsgLy8gL2Jsb2cvcG9zdC8xIC0+IC9ibG9nL2xvZ2luXG4gKlxuICogQHB1YmxpY1xuICovXG5cbnJlcy5yZWRpcmVjdCA9IGZ1bmN0aW9uIHJlZGlyZWN0KHVybCkge1xuICB2YXIgYWRkcmVzcyA9IHVybDtcbiAgdmFyIGJvZHk7XG4gIHZhciBzdGF0dXMgPSAzMDI7XG5cbiAgLy8gYWxsb3cgc3RhdHVzIC8gdXJsXG4gIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAyKSB7XG4gICAgc3RhdHVzID0gYXJndW1lbnRzWzBdXG4gICAgYWRkcmVzcyA9IGFyZ3VtZW50c1sxXVxuICB9XG5cbiAgLy8gU2V0IGxvY2F0aW9uIGhlYWRlclxuICBhZGRyZXNzID0gdGhpcy5sb2NhdGlvbihhZGRyZXNzKS5nZXQoJ0xvY2F0aW9uJyk7XG5cbiAgLy8gU3VwcG9ydCB0ZXh0L3twbGFpbixodG1sfSBieSBkZWZhdWx0XG4gIHRoaXMuZm9ybWF0KHtcbiAgICB0ZXh0OiBmdW5jdGlvbigpe1xuICAgICAgYm9keSA9IHN0YXR1c2VzLm1lc3NhZ2Vbc3RhdHVzXSArICcuIFJlZGlyZWN0aW5nIHRvICcgKyBhZGRyZXNzXG4gICAgfSxcblxuICAgIGh0bWw6IGZ1bmN0aW9uKCl7XG4gICAgICB2YXIgdSA9IGVzY2FwZUh0bWwoYWRkcmVzcyk7XG4gICAgICBib2R5ID0gJzxwPicgKyBzdGF0dXNlcy5tZXNzYWdlW3N0YXR1c10gKyAnLiBSZWRpcmVjdGluZyB0byAnICsgdSArICc8L3A+J1xuICAgIH0sXG5cbiAgICBkZWZhdWx0OiBmdW5jdGlvbigpe1xuICAgICAgYm9keSA9ICcnO1xuICAgIH1cbiAgfSk7XG5cbiAgLy8gUmVzcG9uZFxuICB0aGlzLnN0YXR1cyhzdGF0dXMpO1xuICB0aGlzLnNldCgnQ29udGVudC1MZW5ndGgnLCBCdWZmZXIuYnl0ZUxlbmd0aChib2R5KSk7XG5cbiAgaWYgKHRoaXMucmVxLm1ldGhvZCA9PT0gJ0hFQUQnKSB7XG4gICAgdGhpcy5lbmQoKTtcbiAgfSBlbHNlIHtcbiAgICB0aGlzLmVuZChib2R5KTtcbiAgfVxufTtcblxuLyoqXG4gKiBBZGQgYGZpZWxkYCB0byBWYXJ5LiBJZiBhbHJlYWR5IHByZXNlbnQgaW4gdGhlIFZhcnkgc2V0LCB0aGVuXG4gKiB0aGlzIGNhbGwgaXMgc2ltcGx5IGlnbm9yZWQuXG4gKlxuICogQHBhcmFtIHtBcnJheXxTdHJpbmd9IGZpZWxkXG4gKiBAcmV0dXJuIHtTZXJ2ZXJSZXNwb25zZX0gZm9yIGNoYWluaW5nXG4gKiBAcHVibGljXG4gKi9cblxucmVzLnZhcnkgPSBmdW5jdGlvbihmaWVsZCl7XG4gIHZhcnkodGhpcywgZmllbGQpO1xuXG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBSZW5kZXIgYHZpZXdgIHdpdGggdGhlIGdpdmVuIGBvcHRpb25zYCBhbmQgb3B0aW9uYWwgY2FsbGJhY2sgYGZuYC5cbiAqIFdoZW4gYSBjYWxsYmFjayBmdW5jdGlvbiBpcyBnaXZlbiBhIHJlc3BvbnNlIHdpbGwgX25vdF8gYmUgbWFkZVxuICogYXV0b21hdGljYWxseSwgb3RoZXJ3aXNlIGEgcmVzcG9uc2Ugb2YgXzIwMF8gYW5kIF90ZXh0L2h0bWxfIGlzIGdpdmVuLlxuICpcbiAqIE9wdGlvbnM6XG4gKlxuICogIC0gYGNhY2hlYCAgICAgYm9vbGVhbiBoaW50aW5nIHRvIHRoZSBlbmdpbmUgaXQgc2hvdWxkIGNhY2hlXG4gKiAgLSBgZmlsZW5hbWVgICBmaWxlbmFtZSBvZiB0aGUgdmlldyBiZWluZyByZW5kZXJlZFxuICpcbiAqIEBwdWJsaWNcbiAqL1xuXG5yZXMucmVuZGVyID0gZnVuY3Rpb24gcmVuZGVyKHZpZXcsIG9wdGlvbnMsIGNhbGxiYWNrKSB7XG4gIHZhciBhcHAgPSB0aGlzLnJlcS5hcHA7XG4gIHZhciBkb25lID0gY2FsbGJhY2s7XG4gIHZhciBvcHRzID0gb3B0aW9ucyB8fCB7fTtcbiAgdmFyIHJlcSA9IHRoaXMucmVxO1xuICB2YXIgc2VsZiA9IHRoaXM7XG5cbiAgLy8gc3VwcG9ydCBjYWxsYmFjayBmdW5jdGlvbiBhcyBzZWNvbmQgYXJnXG4gIGlmICh0eXBlb2Ygb3B0aW9ucyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGRvbmUgPSBvcHRpb25zO1xuICAgIG9wdHMgPSB7fTtcbiAgfVxuXG4gIC8vIG1lcmdlIHJlcy5sb2NhbHNcbiAgb3B0cy5fbG9jYWxzID0gc2VsZi5sb2NhbHM7XG5cbiAgLy8gZGVmYXVsdCBjYWxsYmFjayB0byByZXNwb25kXG4gIGRvbmUgPSBkb25lIHx8IGZ1bmN0aW9uIChlcnIsIHN0cikge1xuICAgIGlmIChlcnIpIHJldHVybiByZXEubmV4dChlcnIpO1xuICAgIHNlbGYuc2VuZChzdHIpO1xuICB9O1xuXG4gIC8vIHJlbmRlclxuICBhcHAucmVuZGVyKHZpZXcsIG9wdHMsIGRvbmUpO1xufTtcblxuLy8gcGlwZSB0aGUgc2VuZCBmaWxlIHN0cmVhbVxuZnVuY3Rpb24gc2VuZGZpbGUocmVzLCBmaWxlLCBvcHRpb25zLCBjYWxsYmFjaykge1xuICB2YXIgZG9uZSA9IGZhbHNlO1xuICB2YXIgc3RyZWFtaW5nO1xuXG4gIC8vIHJlcXVlc3QgYWJvcnRlZFxuICBmdW5jdGlvbiBvbmFib3J0ZWQoKSB7XG4gICAgaWYgKGRvbmUpIHJldHVybjtcbiAgICBkb25lID0gdHJ1ZTtcblxuICAgIHZhciBlcnIgPSBuZXcgRXJyb3IoJ1JlcXVlc3QgYWJvcnRlZCcpO1xuICAgIGVyci5jb2RlID0gJ0VDT05OQUJPUlRFRCc7XG4gICAgY2FsbGJhY2soZXJyKTtcbiAgfVxuXG4gIC8vIGRpcmVjdG9yeVxuICBmdW5jdGlvbiBvbmRpcmVjdG9yeSgpIHtcbiAgICBpZiAoZG9uZSkgcmV0dXJuO1xuICAgIGRvbmUgPSB0cnVlO1xuXG4gICAgdmFyIGVyciA9IG5ldyBFcnJvcignRUlTRElSLCByZWFkJyk7XG4gICAgZXJyLmNvZGUgPSAnRUlTRElSJztcbiAgICBjYWxsYmFjayhlcnIpO1xuICB9XG5cbiAgLy8gZXJyb3JzXG4gIGZ1bmN0aW9uIG9uZXJyb3IoZXJyKSB7XG4gICAgaWYgKGRvbmUpIHJldHVybjtcbiAgICBkb25lID0gdHJ1ZTtcbiAgICBjYWxsYmFjayhlcnIpO1xuICB9XG5cbiAgLy8gZW5kZWRcbiAgZnVuY3Rpb24gb25lbmQoKSB7XG4gICAgaWYgKGRvbmUpIHJldHVybjtcbiAgICBkb25lID0gdHJ1ZTtcbiAgICBjYWxsYmFjaygpO1xuICB9XG5cbiAgLy8gZmlsZVxuICBmdW5jdGlvbiBvbmZpbGUoKSB7XG4gICAgc3RyZWFtaW5nID0gZmFsc2U7XG4gIH1cblxuICAvLyBmaW5pc2hlZFxuICBmdW5jdGlvbiBvbmZpbmlzaChlcnIpIHtcbiAgICBpZiAoZXJyICYmIGVyci5jb2RlID09PSAnRUNPTk5SRVNFVCcpIHJldHVybiBvbmFib3J0ZWQoKTtcbiAgICBpZiAoZXJyKSByZXR1cm4gb25lcnJvcihlcnIpO1xuICAgIGlmIChkb25lKSByZXR1cm47XG5cbiAgICBzZXRJbW1lZGlhdGUoZnVuY3Rpb24gKCkge1xuICAgICAgaWYgKHN0cmVhbWluZyAhPT0gZmFsc2UgJiYgIWRvbmUpIHtcbiAgICAgICAgb25hYm9ydGVkKCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKGRvbmUpIHJldHVybjtcbiAgICAgIGRvbmUgPSB0cnVlO1xuICAgICAgY2FsbGJhY2soKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIHN0cmVhbWluZ1xuICBmdW5jdGlvbiBvbnN0cmVhbSgpIHtcbiAgICBzdHJlYW1pbmcgPSB0cnVlO1xuICB9XG5cbiAgZmlsZS5vbignZGlyZWN0b3J5Jywgb25kaXJlY3RvcnkpO1xuICBmaWxlLm9uKCdlbmQnLCBvbmVuZCk7XG4gIGZpbGUub24oJ2Vycm9yJywgb25lcnJvcik7XG4gIGZpbGUub24oJ2ZpbGUnLCBvbmZpbGUpO1xuICBmaWxlLm9uKCdzdHJlYW0nLCBvbnN0cmVhbSk7XG4gIG9uRmluaXNoZWQocmVzLCBvbmZpbmlzaCk7XG5cbiAgaWYgKG9wdGlvbnMuaGVhZGVycykge1xuICAgIC8vIHNldCBoZWFkZXJzIG9uIHN1Y2Nlc3NmdWwgdHJhbnNmZXJcbiAgICBmaWxlLm9uKCdoZWFkZXJzJywgZnVuY3Rpb24gaGVhZGVycyhyZXMpIHtcbiAgICAgIHZhciBvYmogPSBvcHRpb25zLmhlYWRlcnM7XG4gICAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKG9iaik7XG5cbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgayA9IGtleXNbaV07XG4gICAgICAgIHJlcy5zZXRIZWFkZXIoaywgb2JqW2tdKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8vIHBpcGVcbiAgZmlsZS5waXBlKHJlcyk7XG59XG5cbi8qKlxuICogU3RyaW5naWZ5IEpTT04sIGxpa2UgSlNPTi5zdHJpbmdpZnksIGJ1dCB2OCBvcHRpbWl6ZWQsIHdpdGggdGhlXG4gKiBhYmlsaXR5IHRvIGVzY2FwZSBjaGFyYWN0ZXJzIHRoYXQgY2FuIHRyaWdnZXIgSFRNTCBzbmlmZmluZy5cbiAqXG4gKiBAcGFyYW0geyp9IHZhbHVlXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSByZXBsYWNlclxuICogQHBhcmFtIHtudW1iZXJ9IHNwYWNlc1xuICogQHBhcmFtIHtib29sZWFufSBlc2NhcGVcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiBAcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIHN0cmluZ2lmeSAodmFsdWUsIHJlcGxhY2VyLCBzcGFjZXMsIGVzY2FwZSkge1xuICAvLyB2OCBjaGVja3MgYXJndW1lbnRzLmxlbmd0aCBmb3Igb3B0aW1pemluZyBzaW1wbGUgY2FsbFxuICAvLyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvdjgvaXNzdWVzL2RldGFpbD9pZD00NzMwXG4gIHZhciBqc29uID0gcmVwbGFjZXIgfHwgc3BhY2VzXG4gICAgPyBKU09OLnN0cmluZ2lmeSh2YWx1ZSwgcmVwbGFjZXIsIHNwYWNlcylcbiAgICA6IEpTT04uc3RyaW5naWZ5KHZhbHVlKTtcblxuICBpZiAoZXNjYXBlICYmIHR5cGVvZiBqc29uID09PSAnc3RyaW5nJykge1xuICAgIGpzb24gPSBqc29uLnJlcGxhY2UoL1s8PiZdL2csIGZ1bmN0aW9uIChjKSB7XG4gICAgICBzd2l0Y2ggKGMuY2hhckNvZGVBdCgwKSkge1xuICAgICAgICBjYXNlIDB4M2M6XG4gICAgICAgICAgcmV0dXJuICdcXFxcdTAwM2MnXG4gICAgICAgIGNhc2UgMHgzZTpcbiAgICAgICAgICByZXR1cm4gJ1xcXFx1MDAzZSdcbiAgICAgICAgY2FzZSAweDI2OlxuICAgICAgICAgIHJldHVybiAnXFxcXHUwMDI2J1xuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dDogdW5yZWFjaGFibGUgZGVmYXVsdCAqL1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiBjXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIHJldHVybiBqc29uXG59XG4iLCAiLyohXG4gKiBleHByZXNzXG4gKiBDb3B5cmlnaHQoYykgMjAwOS0yMDEzIFRKIEhvbG93YXljaHVrXG4gKiBDb3B5cmlnaHQoYykgMjAxMyBSb21hbiBTaHR5bG1hblxuICogQ29weXJpZ2h0KGMpIDIwMTQtMjAxNSBEb3VnbGFzIENocmlzdG9waGVyIFdpbHNvblxuICogTUlUIExpY2Vuc2VkXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG4vKipcbiAqIE1vZHVsZSBkZXBlbmRlbmNpZXMuXG4gKi9cblxudmFyIGJvZHlQYXJzZXIgPSByZXF1aXJlKCdib2R5LXBhcnNlcicpXG52YXIgRXZlbnRFbWl0dGVyID0gcmVxdWlyZSgnbm9kZTpldmVudHMnKS5FdmVudEVtaXR0ZXI7XG52YXIgbWl4aW4gPSByZXF1aXJlKCdtZXJnZS1kZXNjcmlwdG9ycycpO1xudmFyIHByb3RvID0gcmVxdWlyZSgnLi9hcHBsaWNhdGlvbicpO1xudmFyIFJvdXRlciA9IHJlcXVpcmUoJ3JvdXRlcicpO1xudmFyIHJlcSA9IHJlcXVpcmUoJy4vcmVxdWVzdCcpO1xudmFyIHJlcyA9IHJlcXVpcmUoJy4vcmVzcG9uc2UnKTtcblxuLyoqXG4gKiBFeHBvc2UgYGNyZWF0ZUFwcGxpY2F0aW9uKClgLlxuICovXG5cbmV4cG9ydHMgPSBtb2R1bGUuZXhwb3J0cyA9IGNyZWF0ZUFwcGxpY2F0aW9uO1xuXG4vKipcbiAqIENyZWF0ZSBhbiBleHByZXNzIGFwcGxpY2F0aW9uLlxuICpcbiAqIEByZXR1cm4ge0Z1bmN0aW9ufVxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5mdW5jdGlvbiBjcmVhdGVBcHBsaWNhdGlvbigpIHtcbiAgdmFyIGFwcCA9IGZ1bmN0aW9uKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgYXBwLmhhbmRsZShyZXEsIHJlcywgbmV4dCk7XG4gIH07XG5cbiAgbWl4aW4oYXBwLCBFdmVudEVtaXR0ZXIucHJvdG90eXBlLCBmYWxzZSk7XG4gIG1peGluKGFwcCwgcHJvdG8sIGZhbHNlKTtcblxuICAvLyBleHBvc2UgdGhlIHByb3RvdHlwZSB0aGF0IHdpbGwgZ2V0IHNldCBvbiByZXF1ZXN0c1xuICBhcHAucmVxdWVzdCA9IE9iamVjdC5jcmVhdGUocmVxLCB7XG4gICAgYXBwOiB7IGNvbmZpZ3VyYWJsZTogdHJ1ZSwgZW51bWVyYWJsZTogdHJ1ZSwgd3JpdGFibGU6IHRydWUsIHZhbHVlOiBhcHAgfVxuICB9KVxuXG4gIC8vIGV4cG9zZSB0aGUgcHJvdG90eXBlIHRoYXQgd2lsbCBnZXQgc2V0IG9uIHJlc3BvbnNlc1xuICBhcHAucmVzcG9uc2UgPSBPYmplY3QuY3JlYXRlKHJlcywge1xuICAgIGFwcDogeyBjb25maWd1cmFibGU6IHRydWUsIGVudW1lcmFibGU6IHRydWUsIHdyaXRhYmxlOiB0cnVlLCB2YWx1ZTogYXBwIH1cbiAgfSlcblxuICBhcHAuaW5pdCgpO1xuICByZXR1cm4gYXBwO1xufVxuXG4vKipcbiAqIEV4cG9zZSB0aGUgcHJvdG90eXBlcy5cbiAqL1xuXG5leHBvcnRzLmFwcGxpY2F0aW9uID0gcHJvdG87XG5leHBvcnRzLnJlcXVlc3QgPSByZXE7XG5leHBvcnRzLnJlc3BvbnNlID0gcmVzO1xuXG4vKipcbiAqIEV4cG9zZSBjb25zdHJ1Y3RvcnMuXG4gKi9cblxuZXhwb3J0cy5Sb3V0ZSA9IFJvdXRlci5Sb3V0ZTtcbmV4cG9ydHMuUm91dGVyID0gUm91dGVyO1xuXG4vKipcbiAqIEV4cG9zZSBtaWRkbGV3YXJlXG4gKi9cblxuZXhwb3J0cy5qc29uID0gYm9keVBhcnNlci5qc29uXG5leHBvcnRzLnJhdyA9IGJvZHlQYXJzZXIucmF3XG5leHBvcnRzLnN0YXRpYyA9IHJlcXVpcmUoJ3NlcnZlLXN0YXRpYycpO1xuZXhwb3J0cy50ZXh0ID0gYm9keVBhcnNlci50ZXh0XG5leHBvcnRzLnVybGVuY29kZWQgPSBib2R5UGFyc2VyLnVybGVuY29kZWRcbiIsICIvKiFcbiAqIGV4cHJlc3NcbiAqIENvcHlyaWdodChjKSAyMDA5LTIwMTMgVEogSG9sb3dheWNodWtcbiAqIENvcHlyaWdodChjKSAyMDEzIFJvbWFuIFNodHlsbWFuXG4gKiBDb3B5cmlnaHQoYykgMjAxNC0yMDE1IERvdWdsYXMgQ2hyaXN0b3BoZXIgV2lsc29uXG4gKiBNSVQgTGljZW5zZWRcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9saWIvZXhwcmVzcycpO1xuIiwgImNvbnN0IGF1dGggPSByZXF1aXJlKCdiYXNpYy1hdXRoJylcbmNvbnN0IGFzc2VydCA9IHJlcXVpcmUoJ2Fzc2VydCcpXG5jb25zdCB0aW1pbmdTYWZlRXF1YWwgPSByZXF1aXJlKCdjcnlwdG8nKS50aW1pbmdTYWZlRXF1YWxcblxuLy8gQ3JlZGl0cyBmb3IgdGhlIGFjdHVhbCBhbGdvcml0aG0gZ28gdG8gZ2l0aHViL0BCcnVjZTE3XG4vLyBUaGFua3MgdG8gZ2l0aHViL0BocmFiYW4gZm9yIG1ha2luZyBtZSBpbXBsZW1lbnQgdGhpc1xuZnVuY3Rpb24gc2FmZUNvbXBhcmUodXNlcklucHV0LCBzZWNyZXQpIHtcbiAgICBjb25zdCB1c2VySW5wdXRMZW5ndGggPSBCdWZmZXIuYnl0ZUxlbmd0aCh1c2VySW5wdXQpXG4gICAgY29uc3Qgc2VjcmV0TGVuZ3RoID0gQnVmZmVyLmJ5dGVMZW5ndGgoc2VjcmV0KVxuXG4gICAgY29uc3QgdXNlcklucHV0QnVmZmVyID0gQnVmZmVyLmFsbG9jKHVzZXJJbnB1dExlbmd0aCwgMCwgJ3V0ZjgnKVxuICAgIHVzZXJJbnB1dEJ1ZmZlci53cml0ZSh1c2VySW5wdXQpXG4gICAgY29uc3Qgc2VjcmV0QnVmZmVyID0gQnVmZmVyLmFsbG9jKHVzZXJJbnB1dExlbmd0aCwgMCwgJ3V0ZjgnKVxuICAgIHNlY3JldEJ1ZmZlci53cml0ZShzZWNyZXQpXG5cbiAgICByZXR1cm4gISEodGltaW5nU2FmZUVxdWFsKHVzZXJJbnB1dEJ1ZmZlciwgc2VjcmV0QnVmZmVyKSAmIHVzZXJJbnB1dExlbmd0aCA9PT0gc2VjcmV0TGVuZ3RoKVxufVxuXG5mdW5jdGlvbiBlbnN1cmVGdW5jdGlvbihvcHRpb24sIGRlZmF1bHRWYWx1ZSkge1xuICAgIGlmKG9wdGlvbiA9PSB1bmRlZmluZWQpXG4gICAgICAgIHJldHVybiBmdW5jdGlvbigpIHsgcmV0dXJuIGRlZmF1bHRWYWx1ZSB9XG5cbiAgICBpZih0eXBlb2Ygb3B0aW9uICE9ICdmdW5jdGlvbicpXG4gICAgICAgIHJldHVybiBmdW5jdGlvbigpIHsgcmV0dXJuIG9wdGlvbiB9XG5cbiAgICByZXR1cm4gb3B0aW9uXG59XG5cbmZ1bmN0aW9uIGJ1aWxkTWlkZGxld2FyZShvcHRpb25zKSB7XG4gICAgdmFyIGNoYWxsZW5nZSA9IG9wdGlvbnMuY2hhbGxlbmdlICE9IHVuZGVmaW5lZCA/ICEhb3B0aW9ucy5jaGFsbGVuZ2UgOiBmYWxzZVxuICAgIHZhciB1c2VycyA9IG9wdGlvbnMudXNlcnMgfHwge31cbiAgICB2YXIgYXV0aG9yaXplciA9IG9wdGlvbnMuYXV0aG9yaXplciB8fCBzdGF0aWNVc2Vyc0F1dGhvcml6ZXJcbiAgICB2YXIgaXNBc3luYyA9IG9wdGlvbnMuYXV0aG9yaXplQXN5bmMgIT0gdW5kZWZpbmVkID8gISFvcHRpb25zLmF1dGhvcml6ZUFzeW5jIDogZmFsc2VcbiAgICB2YXIgZ2V0UmVzcG9uc2VCb2R5ID0gZW5zdXJlRnVuY3Rpb24ob3B0aW9ucy51bmF1dGhvcml6ZWRSZXNwb25zZSwgJycpXG4gICAgdmFyIHJlYWxtID0gZW5zdXJlRnVuY3Rpb24ob3B0aW9ucy5yZWFsbSlcblxuICAgIGFzc2VydCh0eXBlb2YgdXNlcnMgPT0gJ29iamVjdCcsICdFeHBlY3RlZCBhbiBvYmplY3QgZm9yIHRoZSBiYXNpYyBhdXRoIHVzZXJzLCBmb3VuZCAnICsgdHlwZW9mIHVzZXJzICsgJyBpbnN0ZWFkJylcbiAgICBhc3NlcnQodHlwZW9mIGF1dGhvcml6ZXIgPT0gJ2Z1bmN0aW9uJywgJ0V4cGVjdGVkIGEgZnVuY3Rpb24gZm9yIHRoZSBiYXNpYyBhdXRoIGF1dGhvcml6ZXIsIGZvdW5kICcgKyB0eXBlb2YgYXV0aG9yaXplciArICcgaW5zdGVhZCcpXG5cbiAgICBmdW5jdGlvbiBzdGF0aWNVc2Vyc0F1dGhvcml6ZXIodXNlcm5hbWUsIHBhc3N3b3JkKSB7XG4gICAgICAgIGZvcih2YXIgaSBpbiB1c2VycylcbiAgICAgICAgICAgIGlmKHNhZmVDb21wYXJlKHVzZXJuYW1lLCBpKSAmIHNhZmVDb21wYXJlKHBhc3N3b3JkLCB1c2Vyc1tpXSkpXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWVcblxuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG5cbiAgICByZXR1cm4gZnVuY3Rpb24gYXV0aE1pZGRsZXdhcmUocmVxLCByZXMsIG5leHQpIHtcbiAgICAgICAgdmFyIGF1dGhlbnRpY2F0aW9uID0gYXV0aChyZXEpXG5cbiAgICAgICAgaWYoIWF1dGhlbnRpY2F0aW9uKVxuICAgICAgICAgICAgcmV0dXJuIHVuYXV0aG9yaXplZCgpXG5cbiAgICAgICAgcmVxLmF1dGggPSB7XG4gICAgICAgICAgICB1c2VyOiBhdXRoZW50aWNhdGlvbi5uYW1lLFxuICAgICAgICAgICAgcGFzc3dvcmQ6IGF1dGhlbnRpY2F0aW9uLnBhc3NcbiAgICAgICAgfVxuXG4gICAgICAgIGlmKGlzQXN5bmMpXG4gICAgICAgICAgICByZXR1cm4gYXV0aG9yaXplcihhdXRoZW50aWNhdGlvbi5uYW1lLCBhdXRoZW50aWNhdGlvbi5wYXNzLCBhdXRob3JpemVyQ2FsbGJhY2spXG4gICAgICAgIGVsc2UgaWYoIWF1dGhvcml6ZXIoYXV0aGVudGljYXRpb24ubmFtZSwgYXV0aGVudGljYXRpb24ucGFzcykpXG4gICAgICAgICAgICByZXR1cm4gdW5hdXRob3JpemVkKClcblxuICAgICAgICByZXR1cm4gbmV4dCgpXG5cbiAgICAgICAgZnVuY3Rpb24gdW5hdXRob3JpemVkKCkge1xuICAgICAgICAgICAgaWYoY2hhbGxlbmdlKSB7XG4gICAgICAgICAgICAgICAgdmFyIGNoYWxsZW5nZVN0cmluZyA9ICdCYXNpYydcbiAgICAgICAgICAgICAgICB2YXIgcmVhbG1OYW1lID0gcmVhbG0ocmVxKVxuXG4gICAgICAgICAgICAgICAgaWYocmVhbG1OYW1lKVxuICAgICAgICAgICAgICAgICAgICBjaGFsbGVuZ2VTdHJpbmcgKz0gJyByZWFsbT1cIicgKyByZWFsbU5hbWUgKyAnXCInXG5cbiAgICAgICAgICAgICAgICByZXMuc2V0KCdXV1ctQXV0aGVudGljYXRlJywgY2hhbGxlbmdlU3RyaW5nKVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvL1RPRE86IEFsbG93IHJlc3BvbnNlIGJvZHkgdG8gYmUgSlNPTiAobWF5YmUgYXV0b2RldGVjdD8pXG4gICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGdldFJlc3BvbnNlQm9keShyZXEpXG5cbiAgICAgICAgICAgIGlmKHR5cGVvZiByZXNwb25zZSA9PSAnc3RyaW5nJylcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzLnN0YXR1cyg0MDEpLnNlbmQocmVzcG9uc2UpXG5cbiAgICAgICAgICAgIHJldHVybiByZXMuc3RhdHVzKDQwMSkuanNvbihyZXNwb25zZSlcbiAgICAgICAgfVxuXG4gICAgICAgIGZ1bmN0aW9uIGF1dGhvcml6ZXJDYWxsYmFjayhlcnIsIGFwcHJvdmVkKSB7XG4gICAgICAgICAgICBhc3NlcnQuaWZFcnJvcihlcnIpXG5cbiAgICAgICAgICAgIGlmKGFwcHJvdmVkKVxuICAgICAgICAgICAgICAgIHJldHVybiBuZXh0KClcblxuICAgICAgICAgICAgcmV0dXJuIHVuYXV0aG9yaXplZCgpXG4gICAgICAgIH1cbiAgICB9XG59XG5cbmJ1aWxkTWlkZGxld2FyZS5zYWZlQ29tcGFyZSA9IHNhZmVDb21wYXJlXG5tb2R1bGUuZXhwb3J0cyA9IGJ1aWxkTWlkZGxld2FyZVxuIiwgImV4cG9ydCBjb25zdCBERUZBVUxUX0FDQ09VTlRfSURfRU5EUE9JTlRfTU9ERSA9IFwicHJlZmVycmVkXCI7XG5leHBvcnQgY29uc3QgQUNDT1VOVF9JRF9FTkRQT0lOVF9NT0RFX1ZBTFVFUyA9IFtcImRpc2FibGVkXCIsIFwicHJlZmVycmVkXCIsIFwicmVxdWlyZWRcIl07XG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVBY2NvdW50SWRFbmRwb2ludE1vZGUodmFsdWUpIHtcbiAgICByZXR1cm4gQUNDT1VOVF9JRF9FTkRQT0lOVF9NT0RFX1ZBTFVFUy5pbmNsdWRlcyh2YWx1ZSk7XG59XG4iLCAiaW1wb3J0IHsgbm9ybWFsaXplUHJvdmlkZXIgfSBmcm9tIFwiQHNtaXRoeS91dGlsLW1pZGRsZXdhcmVcIjtcbmltcG9ydCB7IERFRkFVTFRfQUNDT1VOVF9JRF9FTkRQT0lOVF9NT0RFLCB2YWxpZGF0ZUFjY291bnRJZEVuZHBvaW50TW9kZSwgfSBmcm9tIFwiLi9BY2NvdW50SWRFbmRwb2ludE1vZGVDb25zdGFudHNcIjtcbmV4cG9ydCBjb25zdCByZXNvbHZlQWNjb3VudElkRW5kcG9pbnRNb2RlQ29uZmlnID0gKGlucHV0KSA9PiB7XG4gICAgY29uc3QgeyBhY2NvdW50SWRFbmRwb2ludE1vZGUgfSA9IGlucHV0O1xuICAgIGNvbnN0IGFjY291bnRJZEVuZHBvaW50TW9kZVByb3ZpZGVyID0gbm9ybWFsaXplUHJvdmlkZXIoYWNjb3VudElkRW5kcG9pbnRNb2RlID8/IERFRkFVTFRfQUNDT1VOVF9JRF9FTkRQT0lOVF9NT0RFKTtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihpbnB1dCwge1xuICAgICAgICBhY2NvdW50SWRFbmRwb2ludE1vZGU6IGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGFjY0lkTW9kZSA9IGF3YWl0IGFjY291bnRJZEVuZHBvaW50TW9kZVByb3ZpZGVyKCk7XG4gICAgICAgICAgICBpZiAoIXZhbGlkYXRlQWNjb3VudElkRW5kcG9pbnRNb2RlKGFjY0lkTW9kZSkpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgdmFsdWUgZm9yIGFjY291bnRJZEVuZHBvaW50TW9kZTogJHthY2NJZE1vZGV9LiBWYWxpZCB2YWx1ZXMgYXJlOiBcInJlcXVpcmVkXCIsIFwicHJlZmVycmVkXCIsIFwiZGlzYWJsZWRcIi5gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBhY2NJZE1vZGU7XG4gICAgICAgIH0sXG4gICAgfSk7XG59O1xuIiwgImltcG9ydCB7IERFRkFVTFRfQUNDT1VOVF9JRF9FTkRQT0lOVF9NT0RFLCB2YWxpZGF0ZUFjY291bnRJZEVuZHBvaW50TW9kZSwgfSBmcm9tIFwiLi9BY2NvdW50SWRFbmRwb2ludE1vZGVDb25zdGFudHNcIjtcbmNvbnN0IGVyciA9IFwiSW52YWxpZCBBY2NvdW50SWRFbmRwb2ludE1vZGUgdmFsdWVcIjtcbmNvbnN0IF90aHJvdyA9IChtZXNzYWdlKSA9PiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xufTtcbmV4cG9ydCBjb25zdCBFTlZfQUNDT1VOVF9JRF9FTkRQT0lOVF9NT0RFID0gXCJBV1NfQUNDT1VOVF9JRF9FTkRQT0lOVF9NT0RFXCI7XG5leHBvcnQgY29uc3QgQ09ORklHX0FDQ09VTlRfSURfRU5EUE9JTlRfTU9ERSA9IFwiYWNjb3VudF9pZF9lbmRwb2ludF9tb2RlXCI7XG5leHBvcnQgY29uc3QgTk9ERV9BQ0NPVU5UX0lEX0VORFBPSU5UX01PREVfQ09ORklHX09QVElPTlMgPSB7XG4gICAgZW52aXJvbm1lbnRWYXJpYWJsZVNlbGVjdG9yOiAoZW52KSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gZW52W0VOVl9BQ0NPVU5UX0lEX0VORFBPSU5UX01PREVdO1xuICAgICAgICBpZiAodmFsdWUgJiYgIXZhbGlkYXRlQWNjb3VudElkRW5kcG9pbnRNb2RlKHZhbHVlKSkge1xuICAgICAgICAgICAgX3Rocm93KGVycik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH0sXG4gICAgY29uZmlnRmlsZVNlbGVjdG9yOiAocHJvZmlsZSkgPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHByb2ZpbGVbQ09ORklHX0FDQ09VTlRfSURfRU5EUE9JTlRfTU9ERV07XG4gICAgICAgIGlmICh2YWx1ZSAmJiAhdmFsaWRhdGVBY2NvdW50SWRFbmRwb2ludE1vZGUodmFsdWUpKSB7XG4gICAgICAgICAgICBfdGhyb3coZXJyKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfSxcbiAgICBkZWZhdWx0OiBERUZBVUxUX0FDQ09VTlRfSURfRU5EUE9JTlRfTU9ERSxcbn07XG4iLCAiZXhwb3J0ICogZnJvbSBcIi4vQWNjb3VudElkRW5kcG9pbnRNb2RlQ29uZmlnUmVzb2x2ZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0FjY291bnRJZEVuZHBvaW50TW9kZUNvbnN0YW50c1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vTm9kZUFjY291bnRJZEVuZHBvaW50TW9kZUNvbmZpZ09wdGlvbnNcIjtcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBMUlVDYWNoZSA9IHJlcXVpcmUoJ21uZW1vbmlzdC9scnUtY2FjaGUnKTtcblxuY2xhc3MgRW5kcG9pbnRDYWNoZSB7XG4gICAgY2FjaGU7XG4gICAgY29uc3RydWN0b3IoY2FwYWNpdHkpIHtcbiAgICAgICAgdGhpcy5jYWNoZSA9IG5ldyBMUlVDYWNoZShjYXBhY2l0eSk7XG4gICAgfVxuICAgIGdldEVuZHBvaW50KGtleSkge1xuICAgICAgICBjb25zdCBlbmRwb2ludHNXaXRoRXhwaXJ5ID0gdGhpcy5nZXQoa2V5KTtcbiAgICAgICAgaWYgKCFlbmRwb2ludHNXaXRoRXhwaXJ5IHx8IGVuZHBvaW50c1dpdGhFeHBpcnkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGVuZHBvaW50cyA9IGVuZHBvaW50c1dpdGhFeHBpcnkubWFwKChlbmRwb2ludCkgPT4gZW5kcG9pbnQuQWRkcmVzcyk7XG4gICAgICAgIHJldHVybiBlbmRwb2ludHNbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogZW5kcG9pbnRzLmxlbmd0aCldO1xuICAgIH1cbiAgICBnZXQoa2V5KSB7XG4gICAgICAgIGlmICghdGhpcy5oYXMoa2V5KSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5jYWNoZS5nZXQoa2V5KTtcbiAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50c1dpdGhFeHBpcnkgPSB2YWx1ZS5maWx0ZXIoKGVuZHBvaW50KSA9PiBub3cgPCBlbmRwb2ludC5FeHBpcmVzKTtcbiAgICAgICAgaWYgKGVuZHBvaW50c1dpdGhFeHBpcnkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLmRlbGV0ZShrZXkpO1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZW5kcG9pbnRzV2l0aEV4cGlyeTtcbiAgICB9XG4gICAgc2V0KGtleSwgZW5kcG9pbnRzKSB7XG4gICAgICAgIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG4gICAgICAgIHRoaXMuY2FjaGUuc2V0KGtleSwgZW5kcG9pbnRzLm1hcCgoeyBBZGRyZXNzLCBDYWNoZVBlcmlvZEluTWludXRlcyB9KSA9PiAoe1xuICAgICAgICAgICAgQWRkcmVzcyxcbiAgICAgICAgICAgIEV4cGlyZXM6IG5vdyArIENhY2hlUGVyaW9kSW5NaW51dGVzICogNjAgKiAxMDAwLFxuICAgICAgICB9KSkpO1xuICAgIH1cbiAgICBkZWxldGUoa2V5KSB7XG4gICAgICAgIHRoaXMuY2FjaGUuc2V0KGtleSwgW10pO1xuICAgIH1cbiAgICBoYXMoa2V5KSB7XG4gICAgICAgIGlmICghdGhpcy5jYWNoZS5oYXMoa2V5KSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGVuZHBvaW50cyA9IHRoaXMuY2FjaGUucGVlayhrZXkpO1xuICAgICAgICBpZiAoIWVuZHBvaW50cykge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBlbmRwb2ludHMubGVuZ3RoID4gMDtcbiAgICB9XG4gICAgY2xlYXIoKSB7XG4gICAgICAgIHRoaXMuY2FjaGUuY2xlYXIoKTtcbiAgICB9XG59XG5cbmV4cG9ydHMuRW5kcG9pbnRDYWNoZSA9IEVuZHBvaW50Q2FjaGU7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgcHJvdG9jb2xIdHRwID0gcmVxdWlyZSgnQHNtaXRoeS9wcm90b2NvbC1odHRwJyk7XG52YXIgZW5kcG9pbnRDYWNoZSA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL2VuZHBvaW50LWNhY2hlJyk7XG5cbmNvbnN0IEVOVl9FTkRQT0lOVF9ESVNDT1ZFUlkgPSBbXCJBV1NfRU5BQkxFX0VORFBPSU5UX0RJU0NPVkVSWVwiLCBcIkFXU19FTkRQT0lOVF9ESVNDT1ZFUllfRU5BQkxFRFwiXTtcbmNvbnN0IENPTkZJR19FTkRQT0lOVF9ESVNDT1ZFUlkgPSBcImVuZHBvaW50X2Rpc2NvdmVyeV9lbmFibGVkXCI7XG5jb25zdCBpc0ZhbHN5ID0gKHZhbHVlKSA9PiBbXCJmYWxzZVwiLCBcIjBcIl0uaW5kZXhPZih2YWx1ZSkgPj0gMDtcbmNvbnN0IE5PREVfRU5EUE9JTlRfRElTQ09WRVJZX0NPTkZJR19PUFRJT05TID0ge1xuICAgIGVudmlyb25tZW50VmFyaWFibGVTZWxlY3RvcjogKGVudikgPT4ge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IEVOVl9FTkRQT0lOVF9ESVNDT1ZFUlkubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGVudktleSA9IEVOVl9FTkRQT0lOVF9ESVNDT1ZFUllbaV07XG4gICAgICAgICAgICBpZiAoZW52S2V5IGluIGVudikge1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZW52W2VudktleV07XG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlID09PSBcIlwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IEVycm9yKGBFbnZpcm9ubWVudCB2YXJpYWJsZSAke2VudktleX0gY2FuJ3QgYmUgZW1wdHkgb2YgdW5kZWZpbmVkLCBnb3QgXCIke3ZhbHVlfVwiYCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiAhaXNGYWxzeSh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGNvbmZpZ0ZpbGVTZWxlY3RvcjogKHByb2ZpbGUpID0+IHtcbiAgICAgICAgaWYgKENPTkZJR19FTkRQT0lOVF9ESVNDT1ZFUlkgaW4gcHJvZmlsZSkge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBwcm9maWxlW0NPTkZJR19FTkRQT0lOVF9ESVNDT1ZFUlldO1xuICAgICAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBFcnJvcihgU2hhcmVkIGNvbmZpZyBlbnRyeSAke0NPTkZJR19FTkRQT0lOVF9ESVNDT1ZFUll9IGNhbid0IGJlIHVuZGVmaW5lZCwgZ290IFwiJHt2YWx1ZX1cImApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuICFpc0ZhbHN5KHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgZGVmYXVsdDogdW5kZWZpbmVkLFxufTtcblxuY29uc3QgZ2V0Q2FjaGVLZXkgPSBhc3luYyAoY29tbWFuZE5hbWUsIGNvbmZpZywgb3B0aW9ucykgPT4ge1xuICAgIGNvbnN0IHsgYWNjZXNzS2V5SWQgfSA9IGF3YWl0IGNvbmZpZy5jcmVkZW50aWFscygpO1xuICAgIGNvbnN0IHsgaWRlbnRpZmllcnMgfSA9IG9wdGlvbnM7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgLi4uKGFjY2Vzc0tleUlkICYmIHsgYWNjZXNzS2V5SWQgfSksXG4gICAgICAgIC4uLihpZGVudGlmaWVycyAmJiB7XG4gICAgICAgICAgICBjb21tYW5kTmFtZSxcbiAgICAgICAgICAgIGlkZW50aWZpZXJzOiBPYmplY3QuZW50cmllcyhpZGVudGlmaWVycylcbiAgICAgICAgICAgICAgICAuc29ydCgpXG4gICAgICAgICAgICAgICAgLnJlZHVjZSgoYWNjLCBba2V5LCB2YWx1ZV0pID0+ICh7IC4uLmFjYywgW2tleV06IHZhbHVlIH0pLCB7fSksXG4gICAgICAgIH0pLFxuICAgIH0pO1xufTtcblxuY29uc3QgcmVxdWVzdFF1ZXVlID0ge307XG5jb25zdCB1cGRhdGVEaXNjb3ZlcmVkRW5kcG9pbnRJbkNhY2hlID0gYXN5bmMgKGNvbmZpZywgb3B0aW9ucykgPT4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNvbnN0IHsgZW5kcG9pbnRDYWNoZSB9ID0gY29uZmlnO1xuICAgIGNvbnN0IHsgY2FjaGVLZXksIGNvbW1hbmROYW1lLCBpZGVudGlmaWVycyB9ID0gb3B0aW9ucztcbiAgICBjb25zdCBlbmRwb2ludHMgPSBlbmRwb2ludENhY2hlLmdldChjYWNoZUtleSk7XG4gICAgaWYgKGVuZHBvaW50cyAmJiBlbmRwb2ludHMubGVuZ3RoID09PSAxICYmIGVuZHBvaW50c1swXS5BZGRyZXNzID09PSBcIlwiKSB7XG4gICAgICAgIGlmIChvcHRpb25zLmlzRGlzY292ZXJlZEVuZHBvaW50UmVxdWlyZWQpIHtcbiAgICAgICAgICAgIGlmICghcmVxdWVzdFF1ZXVlW2NhY2hlS2V5XSlcbiAgICAgICAgICAgICAgICByZXF1ZXN0UXVldWVbY2FjaGVLZXldID0gW107XG4gICAgICAgICAgICByZXF1ZXN0UXVldWVbY2FjaGVLZXldLnB1c2goeyByZXNvbHZlLCByZWplY3QgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZWxzZSBpZiAoZW5kcG9pbnRzICYmIGVuZHBvaW50cy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHJlc29sdmUoKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGNvbnN0IHBsYWNlaG9sZGVyRW5kcG9pbnRzID0gW3sgQWRkcmVzczogXCJcIiwgQ2FjaGVQZXJpb2RJbk1pbnV0ZXM6IDEgfV07XG4gICAgICAgIGVuZHBvaW50Q2FjaGUuc2V0KGNhY2hlS2V5LCBwbGFjZWhvbGRlckVuZHBvaW50cyk7XG4gICAgICAgIGNvbnN0IGNvbW1hbmQgPSBuZXcgb3B0aW9ucy5lbmRwb2ludERpc2NvdmVyeUNvbW1hbmRDdG9yKHtcbiAgICAgICAgICAgIE9wZXJhdGlvbjogY29tbWFuZE5hbWUuc2xpY2UoMCwgLTcpLFxuICAgICAgICAgICAgSWRlbnRpZmllcnM6IGlkZW50aWZpZXJzLFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgaGFuZGxlciA9IGNvbW1hbmQucmVzb2x2ZU1pZGRsZXdhcmUob3B0aW9ucy5jbGllbnRTdGFjaywgY29uZmlnLCBvcHRpb25zLm9wdGlvbnMpO1xuICAgICAgICBoYW5kbGVyKGNvbW1hbmQpXG4gICAgICAgICAgICAudGhlbigocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICBlbmRwb2ludENhY2hlLnNldChjYWNoZUtleSwgcmVzdWx0Lm91dHB1dC5FbmRwb2ludHMpO1xuICAgICAgICAgICAgaWYgKHJlcXVlc3RRdWV1ZVtjYWNoZUtleV0pIHtcbiAgICAgICAgICAgICAgICByZXF1ZXN0UXVldWVbY2FjaGVLZXldLmZvckVhY2goKHsgcmVzb2x2ZSB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBkZWxldGUgcmVxdWVzdFF1ZXVlW2NhY2hlS2V5XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgfSlcbiAgICAgICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgICAgIGVuZHBvaW50Q2FjaGUuZGVsZXRlKGNhY2hlS2V5KTtcbiAgICAgICAgICAgIGNvbnN0IGVycm9yVG9UaHJvdyA9IE9iamVjdC5hc3NpZ24obmV3IEVycm9yKGBUaGUgb3BlcmF0aW9uIHRvIGRpc2NvdmVyIGVuZHBvaW50IGZhaWxlZC5gICtcbiAgICAgICAgICAgICAgICBgIFBsZWFzZSByZXRyeSwgb3IgcHJvdmlkZSBhIGN1c3RvbSBlbmRwb2ludCBhbmQgZGlzYWJsZSBlbmRwb2ludCBkaXNjb3ZlcnkgdG8gcHJvY2VlZC5gKSwgeyByZWFzb246IGVycm9yIH0pO1xuICAgICAgICAgICAgaWYgKHJlcXVlc3RRdWV1ZVtjYWNoZUtleV0pIHtcbiAgICAgICAgICAgICAgICByZXF1ZXN0UXVldWVbY2FjaGVLZXldLmZvckVhY2goKHsgcmVqZWN0IH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycm9yVG9UaHJvdyk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgZGVsZXRlIHJlcXVlc3RRdWV1ZVtjYWNoZUtleV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAob3B0aW9ucy5pc0Rpc2NvdmVyZWRFbmRwb2ludFJlcXVpcmVkKSB7XG4gICAgICAgICAgICAgICAgcmVqZWN0KGVycm9yVG9UaHJvdyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludENhY2hlLnNldChjYWNoZUtleSwgcGxhY2Vob2xkZXJFbmRwb2ludHMpO1xuICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufSk7XG5cbmNvbnN0IGVuZHBvaW50RGlzY292ZXJ5TWlkZGxld2FyZSA9IChjb25maWcsIG1pZGRsZXdhcmVDb25maWcpID0+IChuZXh0LCBjb250ZXh0KSA9PiBhc3luYyAoYXJncykgPT4ge1xuICAgIGlmIChjb25maWcuaXNDdXN0b21FbmRwb2ludCkge1xuICAgICAgICBpZiAoY29uZmlnLmlzQ2xpZW50RW5kcG9pbnREaXNjb3ZlcnlFbmFibGVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEN1c3RvbSBlbmRwb2ludCBpcyBzdXBwbGllZDsgZW5kcG9pbnREaXNjb3ZlcnlFbmFibGVkIG11c3Qgbm90IGJlIHRydWUuYCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5leHQoYXJncyk7XG4gICAgfVxuICAgIGNvbnN0IHsgZW5kcG9pbnREaXNjb3ZlcnlDb21tYW5kQ3RvciB9ID0gY29uZmlnO1xuICAgIGNvbnN0IHsgaXNEaXNjb3ZlcmVkRW5kcG9pbnRSZXF1aXJlZCwgaWRlbnRpZmllcnMgfSA9IG1pZGRsZXdhcmVDb25maWc7XG4gICAgY29uc3QgY2xpZW50TmFtZSA9IGNvbnRleHQuY2xpZW50TmFtZTtcbiAgICBjb25zdCBjb21tYW5kTmFtZSA9IGNvbnRleHQuY29tbWFuZE5hbWU7XG4gICAgY29uc3QgaXNFbmRwb2ludERpc2NvdmVyeUVuYWJsZWQgPSBhd2FpdCBjb25maWcuZW5kcG9pbnREaXNjb3ZlcnlFbmFibGVkKCk7XG4gICAgY29uc3QgY2FjaGVLZXkgPSBhd2FpdCBnZXRDYWNoZUtleShjb21tYW5kTmFtZSwgY29uZmlnLCB7IGlkZW50aWZpZXJzIH0pO1xuICAgIGlmIChpc0Rpc2NvdmVyZWRFbmRwb2ludFJlcXVpcmVkKSB7XG4gICAgICAgIGlmIChpc0VuZHBvaW50RGlzY292ZXJ5RW5hYmxlZCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRW5kcG9pbnQgRGlzY292ZXJ5IGlzIGRpc2FibGVkIGJ1dCAke2NvbW1hbmROYW1lfSBvbiAke2NsaWVudE5hbWV9IHJlcXVpcmVzIGl0LmAgK1xuICAgICAgICAgICAgICAgIGAgUGxlYXNlIGNoZWNrIHlvdXIgY29uZmlndXJhdGlvbnMuYCk7XG4gICAgICAgIH1cbiAgICAgICAgYXdhaXQgdXBkYXRlRGlzY292ZXJlZEVuZHBvaW50SW5DYWNoZShjb25maWcsIHtcbiAgICAgICAgICAgIC4uLm1pZGRsZXdhcmVDb25maWcsXG4gICAgICAgICAgICBjb21tYW5kTmFtZSxcbiAgICAgICAgICAgIGNhY2hlS2V5LFxuICAgICAgICAgICAgZW5kcG9pbnREaXNjb3ZlcnlDb21tYW5kQ3RvcixcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGVsc2UgaWYgKGlzRW5kcG9pbnREaXNjb3ZlcnlFbmFibGVkKSB7XG4gICAgICAgIHVwZGF0ZURpc2NvdmVyZWRFbmRwb2ludEluQ2FjaGUoY29uZmlnLCB7XG4gICAgICAgICAgICAuLi5taWRkbGV3YXJlQ29uZmlnLFxuICAgICAgICAgICAgY29tbWFuZE5hbWUsXG4gICAgICAgICAgICBjYWNoZUtleSxcbiAgICAgICAgICAgIGVuZHBvaW50RGlzY292ZXJ5Q29tbWFuZEN0b3IsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCB7IHJlcXVlc3QgfSA9IGFyZ3M7XG4gICAgaWYgKGNhY2hlS2V5ICYmIHByb3RvY29sSHR0cC5IdHRwUmVxdWVzdC5pc0luc3RhbmNlKHJlcXVlc3QpKSB7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50ID0gY29uZmlnLmVuZHBvaW50Q2FjaGUuZ2V0RW5kcG9pbnQoY2FjaGVLZXkpO1xuICAgICAgICBpZiAoZW5kcG9pbnQpIHtcbiAgICAgICAgICAgIHJlcXVlc3QuaG9zdG5hbWUgPSBlbmRwb2ludDtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbmV4dChhcmdzKTtcbn07XG5cbmNvbnN0IGVuZHBvaW50RGlzY292ZXJ5TWlkZGxld2FyZU9wdGlvbnMgPSB7XG4gICAgbmFtZTogXCJlbmRwb2ludERpc2NvdmVyeU1pZGRsZXdhcmVcIixcbiAgICBzdGVwOiBcImJ1aWxkXCIsXG4gICAgdGFnczogW1wiRU5EUE9JTlRfRElTQ09WRVJZXCJdLFxuICAgIG92ZXJyaWRlOiB0cnVlLFxufTtcbmNvbnN0IGdldEVuZHBvaW50RGlzY292ZXJ5UGx1Z2luID0gKHBsdWdpbkNvbmZpZywgbWlkZGxld2FyZUNvbmZpZykgPT4gKHtcbiAgICBhcHBseVRvU3RhY2s6IChjb21tYW5kU3RhY2spID0+IHtcbiAgICAgICAgY29tbWFuZFN0YWNrLmFkZChlbmRwb2ludERpc2NvdmVyeU1pZGRsZXdhcmUocGx1Z2luQ29uZmlnLCBtaWRkbGV3YXJlQ29uZmlnKSwgZW5kcG9pbnREaXNjb3ZlcnlNaWRkbGV3YXJlT3B0aW9ucyk7XG4gICAgfSxcbn0pO1xuY29uc3QgZ2V0RW5kcG9pbnREaXNjb3ZlcnlSZXF1aXJlZFBsdWdpbiA9IChwbHVnaW5Db25maWcsIG1pZGRsZXdhcmVDb25maWcpID0+ICh7XG4gICAgYXBwbHlUb1N0YWNrOiAoY29tbWFuZFN0YWNrKSA9PiB7XG4gICAgICAgIGNvbW1hbmRTdGFjay5hZGQoZW5kcG9pbnREaXNjb3ZlcnlNaWRkbGV3YXJlKHBsdWdpbkNvbmZpZywgeyAuLi5taWRkbGV3YXJlQ29uZmlnLCBpc0Rpc2NvdmVyZWRFbmRwb2ludFJlcXVpcmVkOiB0cnVlIH0pLCBlbmRwb2ludERpc2NvdmVyeU1pZGRsZXdhcmVPcHRpb25zKTtcbiAgICB9LFxufSk7XG5jb25zdCBnZXRFbmRwb2ludERpc2NvdmVyeU9wdGlvbmFsUGx1Z2luID0gKHBsdWdpbkNvbmZpZywgbWlkZGxld2FyZUNvbmZpZykgPT4gKHtcbiAgICBhcHBseVRvU3RhY2s6IChjb21tYW5kU3RhY2spID0+IHtcbiAgICAgICAgY29tbWFuZFN0YWNrLmFkZChlbmRwb2ludERpc2NvdmVyeU1pZGRsZXdhcmUocGx1Z2luQ29uZmlnLCB7IC4uLm1pZGRsZXdhcmVDb25maWcsIGlzRGlzY292ZXJlZEVuZHBvaW50UmVxdWlyZWQ6IGZhbHNlIH0pLCBlbmRwb2ludERpc2NvdmVyeU1pZGRsZXdhcmVPcHRpb25zKTtcbiAgICB9LFxufSk7XG5cbmNvbnN0IHJlc29sdmVFbmRwb2ludERpc2NvdmVyeUNvbmZpZyA9IChpbnB1dCwgeyBlbmRwb2ludERpc2NvdmVyeUNvbW1hbmRDdG9yIH0pID0+IHtcbiAgICBjb25zdCB7IGVuZHBvaW50Q2FjaGVTaXplLCBlbmRwb2ludERpc2NvdmVyeUVuYWJsZWQsIGVuZHBvaW50RGlzY292ZXJ5RW5hYmxlZFByb3ZpZGVyIH0gPSBpbnB1dDtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihpbnB1dCwge1xuICAgICAgICBlbmRwb2ludERpc2NvdmVyeUNvbW1hbmRDdG9yLFxuICAgICAgICBlbmRwb2ludENhY2hlOiBuZXcgZW5kcG9pbnRDYWNoZS5FbmRwb2ludENhY2hlKGVuZHBvaW50Q2FjaGVTaXplID8/IDEwMDApLFxuICAgICAgICBlbmRwb2ludERpc2NvdmVyeUVuYWJsZWQ6IGVuZHBvaW50RGlzY292ZXJ5RW5hYmxlZCAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgICA/ICgpID0+IFByb21pc2UucmVzb2x2ZShlbmRwb2ludERpc2NvdmVyeUVuYWJsZWQpXG4gICAgICAgICAgICA6IGVuZHBvaW50RGlzY292ZXJ5RW5hYmxlZFByb3ZpZGVyLFxuICAgICAgICBpc0NsaWVudEVuZHBvaW50RGlzY292ZXJ5RW5hYmxlZDogZW5kcG9pbnREaXNjb3ZlcnlFbmFibGVkICE9PSB1bmRlZmluZWQsXG4gICAgfSk7XG59O1xuXG5leHBvcnRzLk5PREVfRU5EUE9JTlRfRElTQ09WRVJZX0NPTkZJR19PUFRJT05TID0gTk9ERV9FTkRQT0lOVF9ESVNDT1ZFUllfQ09ORklHX09QVElPTlM7XG5leHBvcnRzLmVuZHBvaW50RGlzY292ZXJ5TWlkZGxld2FyZU9wdGlvbnMgPSBlbmRwb2ludERpc2NvdmVyeU1pZGRsZXdhcmVPcHRpb25zO1xuZXhwb3J0cy5nZXRFbmRwb2ludERpc2NvdmVyeU9wdGlvbmFsUGx1Z2luID0gZ2V0RW5kcG9pbnREaXNjb3ZlcnlPcHRpb25hbFBsdWdpbjtcbmV4cG9ydHMuZ2V0RW5kcG9pbnREaXNjb3ZlcnlQbHVnaW4gPSBnZXRFbmRwb2ludERpc2NvdmVyeVBsdWdpbjtcbmV4cG9ydHMuZ2V0RW5kcG9pbnREaXNjb3ZlcnlSZXF1aXJlZFBsdWdpbiA9IGdldEVuZHBvaW50RGlzY292ZXJ5UmVxdWlyZWRQbHVnaW47XG5leHBvcnRzLnJlc29sdmVFbmRwb2ludERpc2NvdmVyeUNvbmZpZyA9IHJlc29sdmVFbmRwb2ludERpc2NvdmVyeUNvbmZpZztcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBwcm90b2NvbEh0dHAgPSByZXF1aXJlKCdAc21pdGh5L3Byb3RvY29sLWh0dHAnKTtcblxuZnVuY3Rpb24gcmVzb2x2ZUhvc3RIZWFkZXJDb25maWcoaW5wdXQpIHtcbiAgICByZXR1cm4gaW5wdXQ7XG59XG5jb25zdCBob3N0SGVhZGVyTWlkZGxld2FyZSA9IChvcHRpb25zKSA9PiAobmV4dCkgPT4gYXN5bmMgKGFyZ3MpID0+IHtcbiAgICBpZiAoIXByb3RvY29sSHR0cC5IdHRwUmVxdWVzdC5pc0luc3RhbmNlKGFyZ3MucmVxdWVzdCkpXG4gICAgICAgIHJldHVybiBuZXh0KGFyZ3MpO1xuICAgIGNvbnN0IHsgcmVxdWVzdCB9ID0gYXJncztcbiAgICBjb25zdCB7IGhhbmRsZXJQcm90b2NvbCA9IFwiXCIgfSA9IG9wdGlvbnMucmVxdWVzdEhhbmRsZXIubWV0YWRhdGEgfHwge307XG4gICAgaWYgKGhhbmRsZXJQcm90b2NvbC5pbmRleE9mKFwiaDJcIikgPj0gMCAmJiAhcmVxdWVzdC5oZWFkZXJzW1wiOmF1dGhvcml0eVwiXSkge1xuICAgICAgICBkZWxldGUgcmVxdWVzdC5oZWFkZXJzW1wiaG9zdFwiXTtcbiAgICAgICAgcmVxdWVzdC5oZWFkZXJzW1wiOmF1dGhvcml0eVwiXSA9IHJlcXVlc3QuaG9zdG5hbWUgKyAocmVxdWVzdC5wb3J0ID8gXCI6XCIgKyByZXF1ZXN0LnBvcnQgOiBcIlwiKTtcbiAgICB9XG4gICAgZWxzZSBpZiAoIXJlcXVlc3QuaGVhZGVyc1tcImhvc3RcIl0pIHtcbiAgICAgICAgbGV0IGhvc3QgPSByZXF1ZXN0Lmhvc3RuYW1lO1xuICAgICAgICBpZiAocmVxdWVzdC5wb3J0ICE9IG51bGwpXG4gICAgICAgICAgICBob3N0ICs9IGA6JHtyZXF1ZXN0LnBvcnR9YDtcbiAgICAgICAgcmVxdWVzdC5oZWFkZXJzW1wiaG9zdFwiXSA9IGhvc3Q7XG4gICAgfVxuICAgIHJldHVybiBuZXh0KGFyZ3MpO1xufTtcbmNvbnN0IGhvc3RIZWFkZXJNaWRkbGV3YXJlT3B0aW9ucyA9IHtcbiAgICBuYW1lOiBcImhvc3RIZWFkZXJNaWRkbGV3YXJlXCIsXG4gICAgc3RlcDogXCJidWlsZFwiLFxuICAgIHByaW9yaXR5OiBcImxvd1wiLFxuICAgIHRhZ3M6IFtcIkhPU1RcIl0sXG4gICAgb3ZlcnJpZGU6IHRydWUsXG59O1xuY29uc3QgZ2V0SG9zdEhlYWRlclBsdWdpbiA9IChvcHRpb25zKSA9PiAoe1xuICAgIGFwcGx5VG9TdGFjazogKGNsaWVudFN0YWNrKSA9PiB7XG4gICAgICAgIGNsaWVudFN0YWNrLmFkZChob3N0SGVhZGVyTWlkZGxld2FyZShvcHRpb25zKSwgaG9zdEhlYWRlck1pZGRsZXdhcmVPcHRpb25zKTtcbiAgICB9LFxufSk7XG5cbmV4cG9ydHMuZ2V0SG9zdEhlYWRlclBsdWdpbiA9IGdldEhvc3RIZWFkZXJQbHVnaW47XG5leHBvcnRzLmhvc3RIZWFkZXJNaWRkbGV3YXJlID0gaG9zdEhlYWRlck1pZGRsZXdhcmU7XG5leHBvcnRzLmhvc3RIZWFkZXJNaWRkbGV3YXJlT3B0aW9ucyA9IGhvc3RIZWFkZXJNaWRkbGV3YXJlT3B0aW9ucztcbmV4cG9ydHMucmVzb2x2ZUhvc3RIZWFkZXJDb25maWcgPSByZXNvbHZlSG9zdEhlYWRlckNvbmZpZztcbiIsICIndXNlIHN0cmljdCc7XG5cbmNvbnN0IGxvZ2dlck1pZGRsZXdhcmUgPSAoKSA9PiAobmV4dCwgY29udGV4dCkgPT4gYXN5bmMgKGFyZ3MpID0+IHtcbiAgICB0cnkge1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IG5leHQoYXJncyk7XG4gICAgICAgIGNvbnN0IHsgY2xpZW50TmFtZSwgY29tbWFuZE5hbWUsIGxvZ2dlciwgZHluYW1vRGJEb2N1bWVudENsaWVudE9wdGlvbnMgPSB7fSB9ID0gY29udGV4dDtcbiAgICAgICAgY29uc3QgeyBvdmVycmlkZUlucHV0RmlsdGVyU2Vuc2l0aXZlTG9nLCBvdmVycmlkZU91dHB1dEZpbHRlclNlbnNpdGl2ZUxvZyB9ID0gZHluYW1vRGJEb2N1bWVudENsaWVudE9wdGlvbnM7XG4gICAgICAgIGNvbnN0IGlucHV0RmlsdGVyU2Vuc2l0aXZlTG9nID0gb3ZlcnJpZGVJbnB1dEZpbHRlclNlbnNpdGl2ZUxvZyA/PyBjb250ZXh0LmlucHV0RmlsdGVyU2Vuc2l0aXZlTG9nO1xuICAgICAgICBjb25zdCBvdXRwdXRGaWx0ZXJTZW5zaXRpdmVMb2cgPSBvdmVycmlkZU91dHB1dEZpbHRlclNlbnNpdGl2ZUxvZyA/PyBjb250ZXh0Lm91dHB1dEZpbHRlclNlbnNpdGl2ZUxvZztcbiAgICAgICAgY29uc3QgeyAkbWV0YWRhdGEsIC4uLm91dHB1dFdpdGhvdXRNZXRhZGF0YSB9ID0gcmVzcG9uc2Uub3V0cHV0O1xuICAgICAgICBsb2dnZXI/LmluZm8/Lih7XG4gICAgICAgICAgICBjbGllbnROYW1lLFxuICAgICAgICAgICAgY29tbWFuZE5hbWUsXG4gICAgICAgICAgICBpbnB1dDogaW5wdXRGaWx0ZXJTZW5zaXRpdmVMb2coYXJncy5pbnB1dCksXG4gICAgICAgICAgICBvdXRwdXQ6IG91dHB1dEZpbHRlclNlbnNpdGl2ZUxvZyhvdXRwdXRXaXRob3V0TWV0YWRhdGEpLFxuICAgICAgICAgICAgbWV0YWRhdGE6ICRtZXRhZGF0YSxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICB9XG4gICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnN0IHsgY2xpZW50TmFtZSwgY29tbWFuZE5hbWUsIGxvZ2dlciwgZHluYW1vRGJEb2N1bWVudENsaWVudE9wdGlvbnMgPSB7fSB9ID0gY29udGV4dDtcbiAgICAgICAgY29uc3QgeyBvdmVycmlkZUlucHV0RmlsdGVyU2Vuc2l0aXZlTG9nIH0gPSBkeW5hbW9EYkRvY3VtZW50Q2xpZW50T3B0aW9ucztcbiAgICAgICAgY29uc3QgaW5wdXRGaWx0ZXJTZW5zaXRpdmVMb2cgPSBvdmVycmlkZUlucHV0RmlsdGVyU2Vuc2l0aXZlTG9nID8/IGNvbnRleHQuaW5wdXRGaWx0ZXJTZW5zaXRpdmVMb2c7XG4gICAgICAgIGxvZ2dlcj8uZXJyb3I/Lih7XG4gICAgICAgICAgICBjbGllbnROYW1lLFxuICAgICAgICAgICAgY29tbWFuZE5hbWUsXG4gICAgICAgICAgICBpbnB1dDogaW5wdXRGaWx0ZXJTZW5zaXRpdmVMb2coYXJncy5pbnB1dCksXG4gICAgICAgICAgICBlcnJvcixcbiAgICAgICAgICAgIG1ldGFkYXRhOiBlcnJvci4kbWV0YWRhdGEsXG4gICAgICAgIH0pO1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG59O1xuY29uc3QgbG9nZ2VyTWlkZGxld2FyZU9wdGlvbnMgPSB7XG4gICAgbmFtZTogXCJsb2dnZXJNaWRkbGV3YXJlXCIsXG4gICAgdGFnczogW1wiTE9HR0VSXCJdLFxuICAgIHN0ZXA6IFwiaW5pdGlhbGl6ZVwiLFxuICAgIG92ZXJyaWRlOiB0cnVlLFxufTtcbmNvbnN0IGdldExvZ2dlclBsdWdpbiA9IChvcHRpb25zKSA9PiAoe1xuICAgIGFwcGx5VG9TdGFjazogKGNsaWVudFN0YWNrKSA9PiB7XG4gICAgICAgIGNsaWVudFN0YWNrLmFkZChsb2dnZXJNaWRkbGV3YXJlKCksIGxvZ2dlck1pZGRsZXdhcmVPcHRpb25zKTtcbiAgICB9LFxufSk7XG5cbmV4cG9ydHMuZ2V0TG9nZ2VyUGx1Z2luID0gZ2V0TG9nZ2VyUGx1Z2luO1xuZXhwb3J0cy5sb2dnZXJNaWRkbGV3YXJlID0gbG9nZ2VyTWlkZGxld2FyZTtcbmV4cG9ydHMubG9nZ2VyTWlkZGxld2FyZU9wdGlvbnMgPSBsb2dnZXJNaWRkbGV3YXJlT3B0aW9ucztcbiIsICJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMucmVjdXJzaW9uRGV0ZWN0aW9uTWlkZGxld2FyZSA9IHZvaWQgMDtcbmNvbnN0IGxhbWJkYV9pbnZva2Vfc3RvcmVfMSA9IHJlcXVpcmUoXCJAYXdzL2xhbWJkYS1pbnZva2Utc3RvcmVcIik7XG5jb25zdCBwcm90b2NvbF9odHRwXzEgPSByZXF1aXJlKFwiQHNtaXRoeS9wcm90b2NvbC1odHRwXCIpO1xuY29uc3QgVFJBQ0VfSURfSEVBREVSX05BTUUgPSBcIlgtQW16bi1UcmFjZS1JZFwiO1xuY29uc3QgRU5WX0xBTUJEQV9GVU5DVElPTl9OQU1FID0gXCJBV1NfTEFNQkRBX0ZVTkNUSU9OX05BTUVcIjtcbmNvbnN0IEVOVl9UUkFDRV9JRCA9IFwiX1hfQU1aTl9UUkFDRV9JRFwiO1xuY29uc3QgcmVjdXJzaW9uRGV0ZWN0aW9uTWlkZGxld2FyZSA9ICgpID0+IChuZXh0KSA9PiBhc3luYyAoYXJncykgPT4ge1xuICAgIGNvbnN0IHsgcmVxdWVzdCB9ID0gYXJncztcbiAgICBpZiAoIXByb3RvY29sX2h0dHBfMS5IdHRwUmVxdWVzdC5pc0luc3RhbmNlKHJlcXVlc3QpKSB7XG4gICAgICAgIHJldHVybiBuZXh0KGFyZ3MpO1xuICAgIH1cbiAgICBjb25zdCB0cmFjZUlkSGVhZGVyID0gT2JqZWN0LmtleXMocmVxdWVzdC5oZWFkZXJzID8/IHt9KS5maW5kKChoKSA9PiBoLnRvTG93ZXJDYXNlKCkgPT09IFRSQUNFX0lEX0hFQURFUl9OQU1FLnRvTG93ZXJDYXNlKCkpID8/XG4gICAgICAgIFRSQUNFX0lEX0hFQURFUl9OQU1FO1xuICAgIGlmIChyZXF1ZXN0LmhlYWRlcnMuaGFzT3duUHJvcGVydHkodHJhY2VJZEhlYWRlcikpIHtcbiAgICAgICAgcmV0dXJuIG5leHQoYXJncyk7XG4gICAgfVxuICAgIGNvbnN0IGZ1bmN0aW9uTmFtZSA9IHByb2Nlc3MuZW52W0VOVl9MQU1CREFfRlVOQ1RJT05fTkFNRV07XG4gICAgY29uc3QgdHJhY2VJZEZyb21FbnYgPSBwcm9jZXNzLmVudltFTlZfVFJBQ0VfSURdO1xuICAgIGNvbnN0IGludm9rZVN0b3JlID0gYXdhaXQgbGFtYmRhX2ludm9rZV9zdG9yZV8xLkludm9rZVN0b3JlLmdldEluc3RhbmNlQXN5bmMoKTtcbiAgICBjb25zdCB0cmFjZUlkRnJvbUludm9rZVN0b3JlID0gaW52b2tlU3RvcmU/LmdldFhSYXlUcmFjZUlkKCk7XG4gICAgY29uc3QgdHJhY2VJZCA9IHRyYWNlSWRGcm9tSW52b2tlU3RvcmUgPz8gdHJhY2VJZEZyb21FbnY7XG4gICAgY29uc3Qgbm9uRW1wdHlTdHJpbmcgPSAoc3RyKSA9PiB0eXBlb2Ygc3RyID09PSBcInN0cmluZ1wiICYmIHN0ci5sZW5ndGggPiAwO1xuICAgIGlmIChub25FbXB0eVN0cmluZyhmdW5jdGlvbk5hbWUpICYmIG5vbkVtcHR5U3RyaW5nKHRyYWNlSWQpKSB7XG4gICAgICAgIHJlcXVlc3QuaGVhZGVyc1tUUkFDRV9JRF9IRUFERVJfTkFNRV0gPSB0cmFjZUlkO1xuICAgIH1cbiAgICByZXR1cm4gbmV4dCh7XG4gICAgICAgIC4uLmFyZ3MsXG4gICAgICAgIHJlcXVlc3QsXG4gICAgfSk7XG59O1xuZXhwb3J0cy5yZWN1cnNpb25EZXRlY3Rpb25NaWRkbGV3YXJlID0gcmVjdXJzaW9uRGV0ZWN0aW9uTWlkZGxld2FyZTtcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciByZWN1cnNpb25EZXRlY3Rpb25NaWRkbGV3YXJlID0gcmVxdWlyZSgnLi9yZWN1cnNpb25EZXRlY3Rpb25NaWRkbGV3YXJlJyk7XG5cbmNvbnN0IHJlY3Vyc2lvbkRldGVjdGlvbk1pZGRsZXdhcmVPcHRpb25zID0ge1xuICAgIHN0ZXA6IFwiYnVpbGRcIixcbiAgICB0YWdzOiBbXCJSRUNVUlNJT05fREVURUNUSU9OXCJdLFxuICAgIG5hbWU6IFwicmVjdXJzaW9uRGV0ZWN0aW9uTWlkZGxld2FyZVwiLFxuICAgIG92ZXJyaWRlOiB0cnVlLFxuICAgIHByaW9yaXR5OiBcImxvd1wiLFxufTtcblxuY29uc3QgZ2V0UmVjdXJzaW9uRGV0ZWN0aW9uUGx1Z2luID0gKG9wdGlvbnMpID0+ICh7XG4gICAgYXBwbHlUb1N0YWNrOiAoY2xpZW50U3RhY2spID0+IHtcbiAgICAgICAgY2xpZW50U3RhY2suYWRkKHJlY3Vyc2lvbkRldGVjdGlvbk1pZGRsZXdhcmUucmVjdXJzaW9uRGV0ZWN0aW9uTWlkZGxld2FyZSgpLCByZWN1cnNpb25EZXRlY3Rpb25NaWRkbGV3YXJlT3B0aW9ucyk7XG4gICAgfSxcbn0pO1xuXG5leHBvcnRzLmdldFJlY3Vyc2lvbkRldGVjdGlvblBsdWdpbiA9IGdldFJlY3Vyc2lvbkRldGVjdGlvblBsdWdpbjtcbk9iamVjdC5rZXlzKHJlY3Vyc2lvbkRldGVjdGlvbk1pZGRsZXdhcmUpLmZvckVhY2goZnVuY3Rpb24gKGspIHtcbiAgICBpZiAoayAhPT0gJ2RlZmF1bHQnICYmICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXhwb3J0cywgaykpIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBrLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gcmVjdXJzaW9uRGV0ZWN0aW9uTWlkZGxld2FyZVtrXTsgfVxuICAgIH0pO1xufSk7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgdXRpbEVuZHBvaW50cyA9IHJlcXVpcmUoJ0BzbWl0aHkvdXRpbC1lbmRwb2ludHMnKTtcbnZhciB1cmxQYXJzZXIgPSByZXF1aXJlKCdAc21pdGh5L3VybC1wYXJzZXInKTtcblxuY29uc3QgaXNWaXJ0dWFsSG9zdGFibGVTM0J1Y2tldCA9ICh2YWx1ZSwgYWxsb3dTdWJEb21haW5zID0gZmFsc2UpID0+IHtcbiAgICBpZiAoYWxsb3dTdWJEb21haW5zKSB7XG4gICAgICAgIGZvciAoY29uc3QgbGFiZWwgb2YgdmFsdWUuc3BsaXQoXCIuXCIpKSB7XG4gICAgICAgICAgICBpZiAoIWlzVmlydHVhbEhvc3RhYmxlUzNCdWNrZXQobGFiZWwpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAoIXV0aWxFbmRwb2ludHMuaXNWYWxpZEhvc3RMYWJlbCh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAodmFsdWUubGVuZ3RoIDwgMyB8fCB2YWx1ZS5sZW5ndGggPiA2Mykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmICh2YWx1ZSAhPT0gdmFsdWUudG9Mb3dlckNhc2UoKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmICh1dGlsRW5kcG9pbnRzLmlzSXBBZGRyZXNzKHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xufTtcblxuY29uc3QgQVJOX0RFTElNSVRFUiA9IFwiOlwiO1xuY29uc3QgUkVTT1VSQ0VfREVMSU1JVEVSID0gXCIvXCI7XG5jb25zdCBwYXJzZUFybiA9ICh2YWx1ZSkgPT4ge1xuICAgIGNvbnN0IHNlZ21lbnRzID0gdmFsdWUuc3BsaXQoQVJOX0RFTElNSVRFUik7XG4gICAgaWYgKHNlZ21lbnRzLmxlbmd0aCA8IDYpXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIGNvbnN0IFthcm4sIHBhcnRpdGlvbiwgc2VydmljZSwgcmVnaW9uLCBhY2NvdW50SWQsIC4uLnJlc291cmNlUGF0aF0gPSBzZWdtZW50cztcbiAgICBpZiAoYXJuICE9PSBcImFyblwiIHx8IHBhcnRpdGlvbiA9PT0gXCJcIiB8fCBzZXJ2aWNlID09PSBcIlwiIHx8IHJlc291cmNlUGF0aC5qb2luKEFSTl9ERUxJTUlURVIpID09PSBcIlwiKVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICBjb25zdCByZXNvdXJjZUlkID0gcmVzb3VyY2VQYXRoLm1hcCgocmVzb3VyY2UpID0+IHJlc291cmNlLnNwbGl0KFJFU09VUkNFX0RFTElNSVRFUikpLmZsYXQoKTtcbiAgICByZXR1cm4ge1xuICAgICAgICBwYXJ0aXRpb24sXG4gICAgICAgIHNlcnZpY2UsXG4gICAgICAgIHJlZ2lvbixcbiAgICAgICAgYWNjb3VudElkLFxuICAgICAgICByZXNvdXJjZUlkLFxuICAgIH07XG59O1xuXG52YXIgcGFydGl0aW9ucyA9IFtcblx0e1xuXHRcdGlkOiBcImF3c1wiLFxuXHRcdG91dHB1dHM6IHtcblx0XHRcdGRuc1N1ZmZpeDogXCJhbWF6b25hd3MuY29tXCIsXG5cdFx0XHRkdWFsU3RhY2tEbnNTdWZmaXg6IFwiYXBpLmF3c1wiLFxuXHRcdFx0aW1wbGljaXRHbG9iYWxSZWdpb246IFwidXMtZWFzdC0xXCIsXG5cdFx0XHRuYW1lOiBcImF3c1wiLFxuXHRcdFx0c3VwcG9ydHNEdWFsU3RhY2s6IHRydWUsXG5cdFx0XHRzdXBwb3J0c0ZJUFM6IHRydWVcblx0XHR9LFxuXHRcdHJlZ2lvblJlZ2V4OiBcIl4odXN8ZXV8YXB8c2F8Y2F8bWV8YWZ8aWx8bXgpXFxcXC1cXFxcdytcXFxcLVxcXFxkKyRcIixcblx0XHRyZWdpb25zOiB7XG5cdFx0XHRcImFmLXNvdXRoLTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBZnJpY2EgKENhcGUgVG93bilcIlxuXHRcdFx0fSxcblx0XHRcdFwiYXAtZWFzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChIb25nIEtvbmcpXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLWVhc3QtMlwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFzaWEgUGFjaWZpYyAoVGFpcGVpKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJhcC1ub3J0aGVhc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFzaWEgUGFjaWZpYyAoVG9reW8pXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLW5vcnRoZWFzdC0yXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChTZW91bClcIlxuXHRcdFx0fSxcblx0XHRcdFwiYXAtbm9ydGhlYXN0LTNcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBc2lhIFBhY2lmaWMgKE9zYWthKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJhcC1zb3V0aC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChNdW1iYWkpXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLXNvdXRoLTJcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBc2lhIFBhY2lmaWMgKEh5ZGVyYWJhZClcIlxuXHRcdFx0fSxcblx0XHRcdFwiYXAtc291dGhlYXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBc2lhIFBhY2lmaWMgKFNpbmdhcG9yZSlcIlxuXHRcdFx0fSxcblx0XHRcdFwiYXAtc291dGhlYXN0LTJcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBc2lhIFBhY2lmaWMgKFN5ZG5leSlcIlxuXHRcdFx0fSxcblx0XHRcdFwiYXAtc291dGhlYXN0LTNcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBc2lhIFBhY2lmaWMgKEpha2FydGEpXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLXNvdXRoZWFzdC00XCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChNZWxib3VybmUpXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLXNvdXRoZWFzdC01XCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChNYWxheXNpYSlcIlxuXHRcdFx0fSxcblx0XHRcdFwiYXAtc291dGhlYXN0LTZcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBc2lhIFBhY2lmaWMgKE5ldyBaZWFsYW5kKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJhcC1zb3V0aGVhc3QtN1wiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFzaWEgUGFjaWZpYyAoVGhhaWxhbmQpXCJcblx0XHRcdH0sXG5cdFx0XHRcImF3cy1nbG9iYWxcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJhd3MgZ2xvYmFsIHJlZ2lvblwiXG5cdFx0XHR9LFxuXHRcdFx0XCJjYS1jZW50cmFsLTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJDYW5hZGEgKENlbnRyYWwpXCJcblx0XHRcdH0sXG5cdFx0XHRcImNhLXdlc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkNhbmFkYSBXZXN0IChDYWxnYXJ5KVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJldS1jZW50cmFsLTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJFdXJvcGUgKEZyYW5rZnVydClcIlxuXHRcdFx0fSxcblx0XHRcdFwiZXUtY2VudHJhbC0yXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiRXVyb3BlIChadXJpY2gpXCJcblx0XHRcdH0sXG5cdFx0XHRcImV1LW5vcnRoLTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJFdXJvcGUgKFN0b2NraG9sbSlcIlxuXHRcdFx0fSxcblx0XHRcdFwiZXUtc291dGgtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkV1cm9wZSAoTWlsYW4pXCJcblx0XHRcdH0sXG5cdFx0XHRcImV1LXNvdXRoLTJcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJFdXJvcGUgKFNwYWluKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJldS13ZXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJFdXJvcGUgKElyZWxhbmQpXCJcblx0XHRcdH0sXG5cdFx0XHRcImV1LXdlc3QtMlwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkV1cm9wZSAoTG9uZG9uKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJldS13ZXN0LTNcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJFdXJvcGUgKFBhcmlzKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJpbC1jZW50cmFsLTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJJc3JhZWwgKFRlbCBBdml2KVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJtZS1jZW50cmFsLTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJNaWRkbGUgRWFzdCAoVUFFKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJtZS1zb3V0aC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiTWlkZGxlIEVhc3QgKEJhaHJhaW4pXCJcblx0XHRcdH0sXG5cdFx0XHRcIm14LWNlbnRyYWwtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIk1leGljbyAoQ2VudHJhbClcIlxuXHRcdFx0fSxcblx0XHRcdFwic2EtZWFzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiU291dGggQW1lcmljYSAoU2FvIFBhdWxvKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJ1cy1lYXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJVUyBFYXN0IChOLiBWaXJnaW5pYSlcIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtZWFzdC0yXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiVVMgRWFzdCAoT2hpbylcIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtd2VzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiVVMgV2VzdCAoTi4gQ2FsaWZvcm5pYSlcIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtd2VzdC0yXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiVVMgV2VzdCAoT3JlZ29uKVwiXG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXHR7XG5cdFx0aWQ6IFwiYXdzLWNuXCIsXG5cdFx0b3V0cHV0czoge1xuXHRcdFx0ZG5zU3VmZml4OiBcImFtYXpvbmF3cy5jb20uY25cIixcblx0XHRcdGR1YWxTdGFja0Ruc1N1ZmZpeDogXCJhcGkuYW1hem9ud2Vic2VydmljZXMuY29tLmNuXCIsXG5cdFx0XHRpbXBsaWNpdEdsb2JhbFJlZ2lvbjogXCJjbi1ub3J0aHdlc3QtMVwiLFxuXHRcdFx0bmFtZTogXCJhd3MtY25cIixcblx0XHRcdHN1cHBvcnRzRHVhbFN0YWNrOiB0cnVlLFxuXHRcdFx0c3VwcG9ydHNGSVBTOiB0cnVlXG5cdFx0fSxcblx0XHRyZWdpb25SZWdleDogXCJeY25cXFxcLVxcXFx3K1xcXFwtXFxcXGQrJFwiLFxuXHRcdHJlZ2lvbnM6IHtcblx0XHRcdFwiYXdzLWNuLWdsb2JhbFwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcImF3cy1jbiBnbG9iYWwgcmVnaW9uXCJcblx0XHRcdH0sXG5cdFx0XHRcImNuLW5vcnRoLTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJDaGluYSAoQmVpamluZylcIlxuXHRcdFx0fSxcblx0XHRcdFwiY24tbm9ydGh3ZXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJDaGluYSAoTmluZ3hpYSlcIlxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0e1xuXHRcdGlkOiBcImF3cy1ldXNjXCIsXG5cdFx0b3V0cHV0czoge1xuXHRcdFx0ZG5zU3VmZml4OiBcImFtYXpvbmF3cy5ldVwiLFxuXHRcdFx0ZHVhbFN0YWNrRG5zU3VmZml4OiBcImFwaS5hbWF6b253ZWJzZXJ2aWNlcy5ldVwiLFxuXHRcdFx0aW1wbGljaXRHbG9iYWxSZWdpb246IFwiZXVzYy1kZS1lYXN0LTFcIixcblx0XHRcdG5hbWU6IFwiYXdzLWV1c2NcIixcblx0XHRcdHN1cHBvcnRzRHVhbFN0YWNrOiB0cnVlLFxuXHRcdFx0c3VwcG9ydHNGSVBTOiB0cnVlXG5cdFx0fSxcblx0XHRyZWdpb25SZWdleDogXCJeZXVzY1xcXFwtKGRlKVxcXFwtXFxcXHcrXFxcXC1cXFxcZCskXCIsXG5cdFx0cmVnaW9uczoge1xuXHRcdFx0XCJldXNjLWRlLWVhc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFXUyBFdXJvcGVhbiBTb3ZlcmVpZ24gQ2xvdWQgKEdlcm1hbnkpXCJcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdHtcblx0XHRpZDogXCJhd3MtaXNvXCIsXG5cdFx0b3V0cHV0czoge1xuXHRcdFx0ZG5zU3VmZml4OiBcImMycy5pYy5nb3ZcIixcblx0XHRcdGR1YWxTdGFja0Ruc1N1ZmZpeDogXCJhcGkuYXdzLmljLmdvdlwiLFxuXHRcdFx0aW1wbGljaXRHbG9iYWxSZWdpb246IFwidXMtaXNvLWVhc3QtMVwiLFxuXHRcdFx0bmFtZTogXCJhd3MtaXNvXCIsXG5cdFx0XHRzdXBwb3J0c0R1YWxTdGFjazogdHJ1ZSxcblx0XHRcdHN1cHBvcnRzRklQUzogdHJ1ZVxuXHRcdH0sXG5cdFx0cmVnaW9uUmVnZXg6IFwiXnVzXFxcXC1pc29cXFxcLVxcXFx3K1xcXFwtXFxcXGQrJFwiLFxuXHRcdHJlZ2lvbnM6IHtcblx0XHRcdFwiYXdzLWlzby1nbG9iYWxcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJhd3MtaXNvIGdsb2JhbCByZWdpb25cIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtaXNvLWVhc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIlVTIElTTyBFYXN0XCJcblx0XHRcdH0sXG5cdFx0XHRcInVzLWlzby13ZXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJVUyBJU08gV0VTVFwiXG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXHR7XG5cdFx0aWQ6IFwiYXdzLWlzby1iXCIsXG5cdFx0b3V0cHV0czoge1xuXHRcdFx0ZG5zU3VmZml4OiBcInNjMnMuc2dvdi5nb3ZcIixcblx0XHRcdGR1YWxTdGFja0Ruc1N1ZmZpeDogXCJhcGkuYXdzLnNjbG91ZFwiLFxuXHRcdFx0aW1wbGljaXRHbG9iYWxSZWdpb246IFwidXMtaXNvYi1lYXN0LTFcIixcblx0XHRcdG5hbWU6IFwiYXdzLWlzby1iXCIsXG5cdFx0XHRzdXBwb3J0c0R1YWxTdGFjazogdHJ1ZSxcblx0XHRcdHN1cHBvcnRzRklQUzogdHJ1ZVxuXHRcdH0sXG5cdFx0cmVnaW9uUmVnZXg6IFwiXnVzXFxcXC1pc29iXFxcXC1cXFxcdytcXFxcLVxcXFxkKyRcIixcblx0XHRyZWdpb25zOiB7XG5cdFx0XHRcImF3cy1pc28tYi1nbG9iYWxcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJhd3MtaXNvLWIgZ2xvYmFsIHJlZ2lvblwiXG5cdFx0XHR9LFxuXHRcdFx0XCJ1cy1pc29iLWVhc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIlVTIElTT0IgRWFzdCAoT2hpbylcIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtaXNvYi13ZXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJVUyBJU09CIFdlc3RcIlxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0e1xuXHRcdGlkOiBcImF3cy1pc28tZVwiLFxuXHRcdG91dHB1dHM6IHtcblx0XHRcdGRuc1N1ZmZpeDogXCJjbG91ZC5hZGMtZS51a1wiLFxuXHRcdFx0ZHVhbFN0YWNrRG5zU3VmZml4OiBcImFwaS5jbG91ZC1hd3MuYWRjLWUudWtcIixcblx0XHRcdGltcGxpY2l0R2xvYmFsUmVnaW9uOiBcImV1LWlzb2Utd2VzdC0xXCIsXG5cdFx0XHRuYW1lOiBcImF3cy1pc28tZVwiLFxuXHRcdFx0c3VwcG9ydHNEdWFsU3RhY2s6IHRydWUsXG5cdFx0XHRzdXBwb3J0c0ZJUFM6IHRydWVcblx0XHR9LFxuXHRcdHJlZ2lvblJlZ2V4OiBcIl5ldVxcXFwtaXNvZVxcXFwtXFxcXHcrXFxcXC1cXFxcZCskXCIsXG5cdFx0cmVnaW9uczoge1xuXHRcdFx0XCJhd3MtaXNvLWUtZ2xvYmFsXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiYXdzLWlzby1lIGdsb2JhbCByZWdpb25cIlxuXHRcdFx0fSxcblx0XHRcdFwiZXUtaXNvZS13ZXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJFVSBJU09FIFdlc3RcIlxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0e1xuXHRcdGlkOiBcImF3cy1pc28tZlwiLFxuXHRcdG91dHB1dHM6IHtcblx0XHRcdGRuc1N1ZmZpeDogXCJjc3AuaGNpLmljLmdvdlwiLFxuXHRcdFx0ZHVhbFN0YWNrRG5zU3VmZml4OiBcImFwaS5hd3MuaGNpLmljLmdvdlwiLFxuXHRcdFx0aW1wbGljaXRHbG9iYWxSZWdpb246IFwidXMtaXNvZi1zb3V0aC0xXCIsXG5cdFx0XHRuYW1lOiBcImF3cy1pc28tZlwiLFxuXHRcdFx0c3VwcG9ydHNEdWFsU3RhY2s6IHRydWUsXG5cdFx0XHRzdXBwb3J0c0ZJUFM6IHRydWVcblx0XHR9LFxuXHRcdHJlZ2lvblJlZ2V4OiBcIl51c1xcXFwtaXNvZlxcXFwtXFxcXHcrXFxcXC1cXFxcZCskXCIsXG5cdFx0cmVnaW9uczoge1xuXHRcdFx0XCJhd3MtaXNvLWYtZ2xvYmFsXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiYXdzLWlzby1mIGdsb2JhbCByZWdpb25cIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtaXNvZi1lYXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJVUyBJU09GIEVBU1RcIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtaXNvZi1zb3V0aC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiVVMgSVNPRiBTT1VUSFwiXG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXHR7XG5cdFx0aWQ6IFwiYXdzLXVzLWdvdlwiLFxuXHRcdG91dHB1dHM6IHtcblx0XHRcdGRuc1N1ZmZpeDogXCJhbWF6b25hd3MuY29tXCIsXG5cdFx0XHRkdWFsU3RhY2tEbnNTdWZmaXg6IFwiYXBpLmF3c1wiLFxuXHRcdFx0aW1wbGljaXRHbG9iYWxSZWdpb246IFwidXMtZ292LXdlc3QtMVwiLFxuXHRcdFx0bmFtZTogXCJhd3MtdXMtZ292XCIsXG5cdFx0XHRzdXBwb3J0c0R1YWxTdGFjazogdHJ1ZSxcblx0XHRcdHN1cHBvcnRzRklQUzogdHJ1ZVxuXHRcdH0sXG5cdFx0cmVnaW9uUmVnZXg6IFwiXnVzXFxcXC1nb3ZcXFxcLVxcXFx3K1xcXFwtXFxcXGQrJFwiLFxuXHRcdHJlZ2lvbnM6IHtcblx0XHRcdFwiYXdzLXVzLWdvdi1nbG9iYWxcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJhd3MtdXMtZ292IGdsb2JhbCByZWdpb25cIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtZ292LWVhc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFXUyBHb3ZDbG91ZCAoVVMtRWFzdClcIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtZ292LXdlc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFXUyBHb3ZDbG91ZCAoVVMtV2VzdClcIlxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXTtcbnZhciB2ZXJzaW9uID0gXCIxLjFcIjtcbnZhciBwYXJ0aXRpb25zSW5mbyA9IHtcblx0cGFydGl0aW9uczogcGFydGl0aW9ucyxcblx0dmVyc2lvbjogdmVyc2lvblxufTtcblxubGV0IHNlbGVjdGVkUGFydGl0aW9uc0luZm8gPSBwYXJ0aXRpb25zSW5mbztcbmxldCBzZWxlY3RlZFVzZXJBZ2VudFByZWZpeCA9IFwiXCI7XG5jb25zdCBwYXJ0aXRpb24gPSAodmFsdWUpID0+IHtcbiAgICBjb25zdCB7IHBhcnRpdGlvbnMgfSA9IHNlbGVjdGVkUGFydGl0aW9uc0luZm87XG4gICAgZm9yIChjb25zdCBwYXJ0aXRpb24gb2YgcGFydGl0aW9ucykge1xuICAgICAgICBjb25zdCB7IHJlZ2lvbnMsIG91dHB1dHMgfSA9IHBhcnRpdGlvbjtcbiAgICAgICAgZm9yIChjb25zdCBbcmVnaW9uLCByZWdpb25EYXRhXSBvZiBPYmplY3QuZW50cmllcyhyZWdpb25zKSkge1xuICAgICAgICAgICAgaWYgKHJlZ2lvbiA9PT0gdmFsdWUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAuLi5vdXRwdXRzLFxuICAgICAgICAgICAgICAgICAgICAuLi5yZWdpb25EYXRhLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgZm9yIChjb25zdCBwYXJ0aXRpb24gb2YgcGFydGl0aW9ucykge1xuICAgICAgICBjb25zdCB7IHJlZ2lvblJlZ2V4LCBvdXRwdXRzIH0gPSBwYXJ0aXRpb247XG4gICAgICAgIGlmIChuZXcgUmVnRXhwKHJlZ2lvblJlZ2V4KS50ZXN0KHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5vdXRwdXRzLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBERUZBVUxUX1BBUlRJVElPTiA9IHBhcnRpdGlvbnMuZmluZCgocGFydGl0aW9uKSA9PiBwYXJ0aXRpb24uaWQgPT09IFwiYXdzXCIpO1xuICAgIGlmICghREVGQVVMVF9QQVJUSVRJT04pIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiUHJvdmlkZWQgcmVnaW9uIHdhcyBub3QgZm91bmQgaW4gdGhlIHBhcnRpdGlvbiBhcnJheSBvciByZWdleCxcIiArXG4gICAgICAgICAgICBcIiBhbmQgZGVmYXVsdCBwYXJ0aXRpb24gd2l0aCBpZCAnYXdzJyBkb2Vzbid0IGV4aXN0LlwiKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgLi4uREVGQVVMVF9QQVJUSVRJT04ub3V0cHV0cyxcbiAgICB9O1xufTtcbmNvbnN0IHNldFBhcnRpdGlvbkluZm8gPSAocGFydGl0aW9uc0luZm8sIHVzZXJBZ2VudFByZWZpeCA9IFwiXCIpID0+IHtcbiAgICBzZWxlY3RlZFBhcnRpdGlvbnNJbmZvID0gcGFydGl0aW9uc0luZm87XG4gICAgc2VsZWN0ZWRVc2VyQWdlbnRQcmVmaXggPSB1c2VyQWdlbnRQcmVmaXg7XG59O1xuY29uc3QgdXNlRGVmYXVsdFBhcnRpdGlvbkluZm8gPSAoKSA9PiB7XG4gICAgc2V0UGFydGl0aW9uSW5mbyhwYXJ0aXRpb25zSW5mbywgXCJcIik7XG59O1xuY29uc3QgZ2V0VXNlckFnZW50UHJlZml4ID0gKCkgPT4gc2VsZWN0ZWRVc2VyQWdlbnRQcmVmaXg7XG5cbmNvbnN0IGF3c0VuZHBvaW50RnVuY3Rpb25zID0ge1xuICAgIGlzVmlydHVhbEhvc3RhYmxlUzNCdWNrZXQ6IGlzVmlydHVhbEhvc3RhYmxlUzNCdWNrZXQsXG4gICAgcGFyc2VBcm46IHBhcnNlQXJuLFxuICAgIHBhcnRpdGlvbjogcGFydGl0aW9uLFxufTtcbnV0aWxFbmRwb2ludHMuY3VzdG9tRW5kcG9pbnRGdW5jdGlvbnMuYXdzID0gYXdzRW5kcG9pbnRGdW5jdGlvbnM7XG5cbmNvbnN0IHJlc29sdmVEZWZhdWx0QXdzUmVnaW9uYWxFbmRwb2ludHNDb25maWcgPSAoaW5wdXQpID0+IHtcbiAgICBpZiAodHlwZW9mIGlucHV0LmVuZHBvaW50UHJvdmlkZXIgIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJAYXdzLXNkay91dGlsLWVuZHBvaW50IC0gZW5kcG9pbnRQcm92aWRlciBhbmQgZW5kcG9pbnQgbWlzc2luZyBpbiBjb25maWcgZm9yIHRoaXMgY2xpZW50LlwiKTtcbiAgICB9XG4gICAgY29uc3QgeyBlbmRwb2ludCB9ID0gaW5wdXQ7XG4gICAgaWYgKGVuZHBvaW50ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaW5wdXQuZW5kcG9pbnQgPSBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gdG9FbmRwb2ludFYxKGlucHV0LmVuZHBvaW50UHJvdmlkZXIoe1xuICAgICAgICAgICAgICAgIFJlZ2lvbjogdHlwZW9mIGlucHV0LnJlZ2lvbiA9PT0gXCJmdW5jdGlvblwiID8gYXdhaXQgaW5wdXQucmVnaW9uKCkgOiBpbnB1dC5yZWdpb24sXG4gICAgICAgICAgICAgICAgVXNlRHVhbFN0YWNrOiB0eXBlb2YgaW5wdXQudXNlRHVhbHN0YWNrRW5kcG9pbnQgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICA/IGF3YWl0IGlucHV0LnVzZUR1YWxzdGFja0VuZHBvaW50KClcbiAgICAgICAgICAgICAgICAgICAgOiBpbnB1dC51c2VEdWFsc3RhY2tFbmRwb2ludCxcbiAgICAgICAgICAgICAgICBVc2VGSVBTOiB0eXBlb2YgaW5wdXQudXNlRmlwc0VuZHBvaW50ID09PSBcImZ1bmN0aW9uXCIgPyBhd2FpdCBpbnB1dC51c2VGaXBzRW5kcG9pbnQoKSA6IGlucHV0LnVzZUZpcHNFbmRwb2ludCxcbiAgICAgICAgICAgICAgICBFbmRwb2ludDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfSwgeyBsb2dnZXI6IGlucHV0LmxvZ2dlciB9KSk7XG4gICAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiBpbnB1dDtcbn07XG5jb25zdCB0b0VuZHBvaW50VjEgPSAoZW5kcG9pbnQpID0+IHVybFBhcnNlci5wYXJzZVVybChlbmRwb2ludC51cmwpO1xuXG5leHBvcnRzLkVuZHBvaW50RXJyb3IgPSB1dGlsRW5kcG9pbnRzLkVuZHBvaW50RXJyb3I7XG5leHBvcnRzLmlzSXBBZGRyZXNzID0gdXRpbEVuZHBvaW50cy5pc0lwQWRkcmVzcztcbmV4cG9ydHMucmVzb2x2ZUVuZHBvaW50ID0gdXRpbEVuZHBvaW50cy5yZXNvbHZlRW5kcG9pbnQ7XG5leHBvcnRzLmF3c0VuZHBvaW50RnVuY3Rpb25zID0gYXdzRW5kcG9pbnRGdW5jdGlvbnM7XG5leHBvcnRzLmdldFVzZXJBZ2VudFByZWZpeCA9IGdldFVzZXJBZ2VudFByZWZpeDtcbmV4cG9ydHMucGFydGl0aW9uID0gcGFydGl0aW9uO1xuZXhwb3J0cy5yZXNvbHZlRGVmYXVsdEF3c1JlZ2lvbmFsRW5kcG9pbnRzQ29uZmlnID0gcmVzb2x2ZURlZmF1bHRBd3NSZWdpb25hbEVuZHBvaW50c0NvbmZpZztcbmV4cG9ydHMuc2V0UGFydGl0aW9uSW5mbyA9IHNldFBhcnRpdGlvbkluZm87XG5leHBvcnRzLnRvRW5kcG9pbnRWMSA9IHRvRW5kcG9pbnRWMTtcbmV4cG9ydHMudXNlRGVmYXVsdFBhcnRpdGlvbkluZm8gPSB1c2VEZWZhdWx0UGFydGl0aW9uSW5mbztcbiIsICJleHBvcnQgY29uc3Qgc3RhdGUgPSB7XG4gICAgd2FybmluZ0VtaXR0ZWQ6IGZhbHNlLFxufTtcbmV4cG9ydCBjb25zdCBlbWl0V2FybmluZ0lmVW5zdXBwb3J0ZWRWZXJzaW9uID0gKHZlcnNpb24pID0+IHtcbiAgICBpZiAodmVyc2lvbiAmJiAhc3RhdGUud2FybmluZ0VtaXR0ZWQgJiYgcGFyc2VJbnQodmVyc2lvbi5zdWJzdHJpbmcoMSwgdmVyc2lvbi5pbmRleE9mKFwiLlwiKSkpIDwgMjApIHtcbiAgICAgICAgc3RhdGUud2FybmluZ0VtaXR0ZWQgPSB0cnVlO1xuICAgICAgICBwcm9jZXNzLmVtaXRXYXJuaW5nKGBOb2RlRGVwcmVjYXRpb25XYXJuaW5nOiBUaGUgQVdTIFNESyBmb3IgSmF2YVNjcmlwdCAodjMpIHdpbGxcbm5vIGxvbmdlciBzdXBwb3J0IE5vZGUuanMgJHt2ZXJzaW9ufSBpbiBKYW51YXJ5IDIwMjYuXG5cblRvIGNvbnRpbnVlIHJlY2VpdmluZyB1cGRhdGVzIHRvIEFXUyBzZXJ2aWNlcywgYnVnIGZpeGVzLCBhbmQgc2VjdXJpdHlcbnVwZGF0ZXMgcGxlYXNlIHVwZ3JhZGUgdG8gYSBzdXBwb3J0ZWQgTm9kZS5qcyBMVFMgdmVyc2lvbi5cblxuTW9yZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgYXQ6IGh0dHBzOi8vYS5jby9jODk1SkZwYCk7XG4gICAgfVxufTtcbiIsICJleHBvcnQgZnVuY3Rpb24gc2V0Q3JlZGVudGlhbEZlYXR1cmUoY3JlZGVudGlhbHMsIGZlYXR1cmUsIHZhbHVlKSB7XG4gICAgaWYgKCFjcmVkZW50aWFscy4kc291cmNlKSB7XG4gICAgICAgIGNyZWRlbnRpYWxzLiRzb3VyY2UgPSB7fTtcbiAgICB9XG4gICAgY3JlZGVudGlhbHMuJHNvdXJjZVtmZWF0dXJlXSA9IHZhbHVlO1xuICAgIHJldHVybiBjcmVkZW50aWFscztcbn1cbiIsICJleHBvcnQgZnVuY3Rpb24gc2V0RmVhdHVyZShjb250ZXh0LCBmZWF0dXJlLCB2YWx1ZSkge1xuICAgIGlmICghY29udGV4dC5fX2F3c19zZGtfY29udGV4dCkge1xuICAgICAgICBjb250ZXh0Ll9fYXdzX3Nka19jb250ZXh0ID0ge1xuICAgICAgICAgICAgZmVhdHVyZXM6IHt9LFxuICAgICAgICB9O1xuICAgIH1cbiAgICBlbHNlIGlmICghY29udGV4dC5fX2F3c19zZGtfY29udGV4dC5mZWF0dXJlcykge1xuICAgICAgICBjb250ZXh0Ll9fYXdzX3Nka19jb250ZXh0LmZlYXR1cmVzID0ge307XG4gICAgfVxuICAgIGNvbnRleHQuX19hd3Nfc2RrX2NvbnRleHQuZmVhdHVyZXNbZmVhdHVyZV0gPSB2YWx1ZTtcbn1cbiIsICJleHBvcnQgZnVuY3Rpb24gc2V0VG9rZW5GZWF0dXJlKHRva2VuLCBmZWF0dXJlLCB2YWx1ZSkge1xuICAgIGlmICghdG9rZW4uJHNvdXJjZSkge1xuICAgICAgICB0b2tlbi4kc291cmNlID0ge307XG4gICAgfVxuICAgIHRva2VuLiRzb3VyY2VbZmVhdHVyZV0gPSB2YWx1ZTtcbiAgICByZXR1cm4gdG9rZW47XG59XG4iLCAiZXhwb3J0ICogZnJvbSBcIi4vZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvblwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc2V0Q3JlZGVudGlhbEZlYXR1cmVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NldEZlYXR1cmVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NldFRva2VuRmVhdHVyZVwiO1xuIiwgImltcG9ydCB7IEh0dHBSZXNwb25zZSB9IGZyb20gXCJAc21pdGh5L3Byb3RvY29sLWh0dHBcIjtcbmV4cG9ydCBjb25zdCBnZXREYXRlSGVhZGVyID0gKHJlc3BvbnNlKSA9PiBIdHRwUmVzcG9uc2UuaXNJbnN0YW5jZShyZXNwb25zZSkgPyByZXNwb25zZS5oZWFkZXJzPy5kYXRlID8/IHJlc3BvbnNlLmhlYWRlcnM/LkRhdGUgOiB1bmRlZmluZWQ7XG4iLCAiZXhwb3J0IGNvbnN0IGdldFNrZXdDb3JyZWN0ZWREYXRlID0gKHN5c3RlbUNsb2NrT2Zmc2V0KSA9PiBuZXcgRGF0ZShEYXRlLm5vdygpICsgc3lzdGVtQ2xvY2tPZmZzZXQpO1xuIiwgImltcG9ydCB7IGdldFNrZXdDb3JyZWN0ZWREYXRlIH0gZnJvbSBcIi4vZ2V0U2tld0NvcnJlY3RlZERhdGVcIjtcbmV4cG9ydCBjb25zdCBpc0Nsb2NrU2tld2VkID0gKGNsb2NrVGltZSwgc3lzdGVtQ2xvY2tPZmZzZXQpID0+IE1hdGguYWJzKGdldFNrZXdDb3JyZWN0ZWREYXRlKHN5c3RlbUNsb2NrT2Zmc2V0KS5nZXRUaW1lKCkgLSBjbG9ja1RpbWUpID49IDMwMDAwMDtcbiIsICJpbXBvcnQgeyBpc0Nsb2NrU2tld2VkIH0gZnJvbSBcIi4vaXNDbG9ja1NrZXdlZFwiO1xuZXhwb3J0IGNvbnN0IGdldFVwZGF0ZWRTeXN0ZW1DbG9ja09mZnNldCA9IChjbG9ja1RpbWUsIGN1cnJlbnRTeXN0ZW1DbG9ja09mZnNldCkgPT4ge1xuICAgIGNvbnN0IGNsb2NrVGltZUluTXMgPSBEYXRlLnBhcnNlKGNsb2NrVGltZSk7XG4gICAgaWYgKGlzQ2xvY2tTa2V3ZWQoY2xvY2tUaW1lSW5NcywgY3VycmVudFN5c3RlbUNsb2NrT2Zmc2V0KSkge1xuICAgICAgICByZXR1cm4gY2xvY2tUaW1lSW5NcyAtIERhdGUubm93KCk7XG4gICAgfVxuICAgIHJldHVybiBjdXJyZW50U3lzdGVtQ2xvY2tPZmZzZXQ7XG59O1xuIiwgImV4cG9ydCAqIGZyb20gXCIuL2dldERhdGVIZWFkZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2dldFNrZXdDb3JyZWN0ZWREYXRlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9nZXRVcGRhdGVkU3lzdGVtQ2xvY2tPZmZzZXRcIjtcbiIsICJpbXBvcnQgeyBIdHRwUmVxdWVzdCB9IGZyb20gXCJAc21pdGh5L3Byb3RvY29sLWh0dHBcIjtcbmltcG9ydCB7IGdldERhdGVIZWFkZXIsIGdldFNrZXdDb3JyZWN0ZWREYXRlLCBnZXRVcGRhdGVkU3lzdGVtQ2xvY2tPZmZzZXQgfSBmcm9tIFwiLi4vdXRpbHNcIjtcbmNvbnN0IHRocm93U2lnbmluZ1Byb3BlcnR5RXJyb3IgPSAobmFtZSwgcHJvcGVydHkpID0+IHtcbiAgICBpZiAoIXByb3BlcnR5KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgUHJvcGVydHkgXFxgJHtuYW1lfVxcYCBpcyBub3QgcmVzb2x2ZWQgZm9yIEFXUyBTREsgU2lnVjRBdXRoYCk7XG4gICAgfVxuICAgIHJldHVybiBwcm9wZXJ0eTtcbn07XG5leHBvcnQgY29uc3QgdmFsaWRhdGVTaWduaW5nUHJvcGVydGllcyA9IGFzeW5jIChzaWduaW5nUHJvcGVydGllcykgPT4ge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aHJvd1NpZ25pbmdQcm9wZXJ0eUVycm9yKFwiY29udGV4dFwiLCBzaWduaW5nUHJvcGVydGllcy5jb250ZXh0KTtcbiAgICBjb25zdCBjb25maWcgPSB0aHJvd1NpZ25pbmdQcm9wZXJ0eUVycm9yKFwiY29uZmlnXCIsIHNpZ25pbmdQcm9wZXJ0aWVzLmNvbmZpZyk7XG4gICAgY29uc3QgYXV0aFNjaGVtZSA9IGNvbnRleHQuZW5kcG9pbnRWMj8ucHJvcGVydGllcz8uYXV0aFNjaGVtZXM/LlswXTtcbiAgICBjb25zdCBzaWduZXJGdW5jdGlvbiA9IHRocm93U2lnbmluZ1Byb3BlcnR5RXJyb3IoXCJzaWduZXJcIiwgY29uZmlnLnNpZ25lcik7XG4gICAgY29uc3Qgc2lnbmVyID0gYXdhaXQgc2lnbmVyRnVuY3Rpb24oYXV0aFNjaGVtZSk7XG4gICAgY29uc3Qgc2lnbmluZ1JlZ2lvbiA9IHNpZ25pbmdQcm9wZXJ0aWVzPy5zaWduaW5nUmVnaW9uO1xuICAgIGNvbnN0IHNpZ25pbmdSZWdpb25TZXQgPSBzaWduaW5nUHJvcGVydGllcz8uc2lnbmluZ1JlZ2lvblNldDtcbiAgICBjb25zdCBzaWduaW5nTmFtZSA9IHNpZ25pbmdQcm9wZXJ0aWVzPy5zaWduaW5nTmFtZTtcbiAgICByZXR1cm4ge1xuICAgICAgICBjb25maWcsXG4gICAgICAgIHNpZ25lcixcbiAgICAgICAgc2lnbmluZ1JlZ2lvbixcbiAgICAgICAgc2lnbmluZ1JlZ2lvblNldCxcbiAgICAgICAgc2lnbmluZ05hbWUsXG4gICAgfTtcbn07XG5leHBvcnQgY2xhc3MgQXdzU2RrU2lnVjRTaWduZXIge1xuICAgIGFzeW5jIHNpZ24oaHR0cFJlcXVlc3QsIGlkZW50aXR5LCBzaWduaW5nUHJvcGVydGllcykge1xuICAgICAgICBpZiAoIUh0dHBSZXF1ZXN0LmlzSW5zdGFuY2UoaHR0cFJlcXVlc3QpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJUaGUgcmVxdWVzdCBpcyBub3QgYW4gaW5zdGFuY2Ugb2YgYEh0dHBSZXF1ZXN0YCBhbmQgY2Fubm90IGJlIHNpZ25lZFwiKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB2YWxpZGF0ZWRQcm9wcyA9IGF3YWl0IHZhbGlkYXRlU2lnbmluZ1Byb3BlcnRpZXMoc2lnbmluZ1Byb3BlcnRpZXMpO1xuICAgICAgICBjb25zdCB7IGNvbmZpZywgc2lnbmVyIH0gPSB2YWxpZGF0ZWRQcm9wcztcbiAgICAgICAgbGV0IHsgc2lnbmluZ1JlZ2lvbiwgc2lnbmluZ05hbWUgfSA9IHZhbGlkYXRlZFByb3BzO1xuICAgICAgICBjb25zdCBoYW5kbGVyRXhlY3V0aW9uQ29udGV4dCA9IHNpZ25pbmdQcm9wZXJ0aWVzLmNvbnRleHQ7XG4gICAgICAgIGlmIChoYW5kbGVyRXhlY3V0aW9uQ29udGV4dD8uYXV0aFNjaGVtZXM/Lmxlbmd0aCA/PyAwID4gMSkge1xuICAgICAgICAgICAgY29uc3QgW2ZpcnN0LCBzZWNvbmRdID0gaGFuZGxlckV4ZWN1dGlvbkNvbnRleHQuYXV0aFNjaGVtZXM7XG4gICAgICAgICAgICBpZiAoZmlyc3Q/Lm5hbWUgPT09IFwic2lndjRhXCIgJiYgc2Vjb25kPy5uYW1lID09PSBcInNpZ3Y0XCIpIHtcbiAgICAgICAgICAgICAgICBzaWduaW5nUmVnaW9uID0gc2Vjb25kPy5zaWduaW5nUmVnaW9uID8/IHNpZ25pbmdSZWdpb247XG4gICAgICAgICAgICAgICAgc2lnbmluZ05hbWUgPSBzZWNvbmQ/LnNpZ25pbmdOYW1lID8/IHNpZ25pbmdOYW1lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNpZ25lZFJlcXVlc3QgPSBhd2FpdCBzaWduZXIuc2lnbihodHRwUmVxdWVzdCwge1xuICAgICAgICAgICAgc2lnbmluZ0RhdGU6IGdldFNrZXdDb3JyZWN0ZWREYXRlKGNvbmZpZy5zeXN0ZW1DbG9ja09mZnNldCksXG4gICAgICAgICAgICBzaWduaW5nUmVnaW9uOiBzaWduaW5nUmVnaW9uLFxuICAgICAgICAgICAgc2lnbmluZ1NlcnZpY2U6IHNpZ25pbmdOYW1lLFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHNpZ25lZFJlcXVlc3Q7XG4gICAgfVxuICAgIGVycm9ySGFuZGxlcihzaWduaW5nUHJvcGVydGllcykge1xuICAgICAgICByZXR1cm4gKGVycm9yKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzZXJ2ZXJUaW1lID0gZXJyb3IuU2VydmVyVGltZSA/PyBnZXREYXRlSGVhZGVyKGVycm9yLiRyZXNwb25zZSk7XG4gICAgICAgICAgICBpZiAoc2VydmVyVGltZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHRocm93U2lnbmluZ1Byb3BlcnR5RXJyb3IoXCJjb25maWdcIiwgc2lnbmluZ1Byb3BlcnRpZXMuY29uZmlnKTtcbiAgICAgICAgICAgICAgICBjb25zdCBpbml0aWFsU3lzdGVtQ2xvY2tPZmZzZXQgPSBjb25maWcuc3lzdGVtQ2xvY2tPZmZzZXQ7XG4gICAgICAgICAgICAgICAgY29uZmlnLnN5c3RlbUNsb2NrT2Zmc2V0ID0gZ2V0VXBkYXRlZFN5c3RlbUNsb2NrT2Zmc2V0KHNlcnZlclRpbWUsIGNvbmZpZy5zeXN0ZW1DbG9ja09mZnNldCk7XG4gICAgICAgICAgICAgICAgY29uc3QgY2xvY2tTa2V3Q29ycmVjdGVkID0gY29uZmlnLnN5c3RlbUNsb2NrT2Zmc2V0ICE9PSBpbml0aWFsU3lzdGVtQ2xvY2tPZmZzZXQ7XG4gICAgICAgICAgICAgICAgaWYgKGNsb2NrU2tld0NvcnJlY3RlZCAmJiBlcnJvci4kbWV0YWRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgZXJyb3IuJG1ldGFkYXRhLmNsb2NrU2tld0NvcnJlY3RlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH07XG4gICAgfVxuICAgIHN1Y2Nlc3NIYW5kbGVyKGh0dHBSZXNwb25zZSwgc2lnbmluZ1Byb3BlcnRpZXMpIHtcbiAgICAgICAgY29uc3QgZGF0ZUhlYWRlciA9IGdldERhdGVIZWFkZXIoaHR0cFJlc3BvbnNlKTtcbiAgICAgICAgaWYgKGRhdGVIZWFkZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHRocm93U2lnbmluZ1Byb3BlcnR5RXJyb3IoXCJjb25maWdcIiwgc2lnbmluZ1Byb3BlcnRpZXMuY29uZmlnKTtcbiAgICAgICAgICAgIGNvbmZpZy5zeXN0ZW1DbG9ja09mZnNldCA9IGdldFVwZGF0ZWRTeXN0ZW1DbG9ja09mZnNldChkYXRlSGVhZGVyLCBjb25maWcuc3lzdGVtQ2xvY2tPZmZzZXQpO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0IGNvbnN0IEFXU1NES1NpZ1Y0U2lnbmVyID0gQXdzU2RrU2lnVjRTaWduZXI7XG4iLCAiaW1wb3J0IHsgSHR0cFJlcXVlc3QgfSBmcm9tIFwiQHNtaXRoeS9wcm90b2NvbC1odHRwXCI7XG5pbXBvcnQgeyBnZXRTa2V3Q29ycmVjdGVkRGF0ZSB9IGZyb20gXCIuLi91dGlsc1wiO1xuaW1wb3J0IHsgQXdzU2RrU2lnVjRTaWduZXIsIHZhbGlkYXRlU2lnbmluZ1Byb3BlcnRpZXMgfSBmcm9tIFwiLi9Bd3NTZGtTaWdWNFNpZ25lclwiO1xuZXhwb3J0IGNsYXNzIEF3c1Nka1NpZ1Y0QVNpZ25lciBleHRlbmRzIEF3c1Nka1NpZ1Y0U2lnbmVyIHtcbiAgICBhc3luYyBzaWduKGh0dHBSZXF1ZXN0LCBpZGVudGl0eSwgc2lnbmluZ1Byb3BlcnRpZXMpIHtcbiAgICAgICAgaWYgKCFIdHRwUmVxdWVzdC5pc0luc3RhbmNlKGh0dHBSZXF1ZXN0KSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVGhlIHJlcXVlc3QgaXMgbm90IGFuIGluc3RhbmNlIG9mIGBIdHRwUmVxdWVzdGAgYW5kIGNhbm5vdCBiZSBzaWduZWRcIik7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgeyBjb25maWcsIHNpZ25lciwgc2lnbmluZ1JlZ2lvbiwgc2lnbmluZ1JlZ2lvblNldCwgc2lnbmluZ05hbWUgfSA9IGF3YWl0IHZhbGlkYXRlU2lnbmluZ1Byb3BlcnRpZXMoc2lnbmluZ1Byb3BlcnRpZXMpO1xuICAgICAgICBjb25zdCBjb25maWdSZXNvbHZlZFNpZ25pbmdSZWdpb25TZXQgPSBhd2FpdCBjb25maWcuc2lndjRhU2lnbmluZ1JlZ2lvblNldD8uKCk7XG4gICAgICAgIGNvbnN0IG11bHRpUmVnaW9uT3ZlcnJpZGUgPSAoY29uZmlnUmVzb2x2ZWRTaWduaW5nUmVnaW9uU2V0ID8/XG4gICAgICAgICAgICBzaWduaW5nUmVnaW9uU2V0ID8/IFtzaWduaW5nUmVnaW9uXSkuam9pbihcIixcIik7XG4gICAgICAgIGNvbnN0IHNpZ25lZFJlcXVlc3QgPSBhd2FpdCBzaWduZXIuc2lnbihodHRwUmVxdWVzdCwge1xuICAgICAgICAgICAgc2lnbmluZ0RhdGU6IGdldFNrZXdDb3JyZWN0ZWREYXRlKGNvbmZpZy5zeXN0ZW1DbG9ja09mZnNldCksXG4gICAgICAgICAgICBzaWduaW5nUmVnaW9uOiBtdWx0aVJlZ2lvbk92ZXJyaWRlLFxuICAgICAgICAgICAgc2lnbmluZ1NlcnZpY2U6IHNpZ25pbmdOYW1lLFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHNpZ25lZFJlcXVlc3Q7XG4gICAgfVxufVxuIiwgImV4cG9ydCBjb25zdCBnZXRBcnJheUZvckNvbW1hU2VwYXJhdGVkU3RyaW5nID0gKHN0cikgPT4gdHlwZW9mIHN0ciA9PT0gXCJzdHJpbmdcIiAmJiBzdHIubGVuZ3RoID4gMCA/IHN0ci5zcGxpdChcIixcIikubWFwKChpdGVtKSA9PiBpdGVtLnRyaW0oKSkgOiBbXTtcbiIsICJleHBvcnQgY29uc3QgZ2V0QmVhcmVyVG9rZW5FbnZLZXkgPSAoc2lnbmluZ05hbWUpID0+IGBBV1NfQkVBUkVSX1RPS0VOXyR7c2lnbmluZ05hbWUucmVwbGFjZSgvW1xccy1dL2csIFwiX1wiKS50b1VwcGVyQ2FzZSgpfWA7XG4iLCAiaW1wb3J0IHsgZ2V0QXJyYXlGb3JDb21tYVNlcGFyYXRlZFN0cmluZyB9IGZyb20gXCIuLi91dGlscy9nZXRBcnJheUZvckNvbW1hU2VwYXJhdGVkU3RyaW5nXCI7XG5pbXBvcnQgeyBnZXRCZWFyZXJUb2tlbkVudktleSB9IGZyb20gXCIuLi91dGlscy9nZXRCZWFyZXJUb2tlbkVudktleVwiO1xuY29uc3QgTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX0VOVl9LRVkgPSBcIkFXU19BVVRIX1NDSEVNRV9QUkVGRVJFTkNFXCI7XG5jb25zdCBOT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfQ09ORklHX0tFWSA9IFwiYXV0aF9zY2hlbWVfcHJlZmVyZW5jZVwiO1xuZXhwb3J0IGNvbnN0IE5PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9PUFRJT05TID0ge1xuICAgIGVudmlyb25tZW50VmFyaWFibGVTZWxlY3RvcjogKGVudiwgb3B0aW9ucykgPT4ge1xuICAgICAgICBpZiAob3B0aW9ucz8uc2lnbmluZ05hbWUpIHtcbiAgICAgICAgICAgIGNvbnN0IGJlYXJlclRva2VuS2V5ID0gZ2V0QmVhcmVyVG9rZW5FbnZLZXkob3B0aW9ucy5zaWduaW5nTmFtZSk7XG4gICAgICAgICAgICBpZiAoYmVhcmVyVG9rZW5LZXkgaW4gZW52KVxuICAgICAgICAgICAgICAgIHJldHVybiBbXCJodHRwQmVhcmVyQXV0aFwiXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIShOT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfRU5WX0tFWSBpbiBlbnYpKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgcmV0dXJuIGdldEFycmF5Rm9yQ29tbWFTZXBhcmF0ZWRTdHJpbmcoZW52W05PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9FTlZfS0VZXSk7XG4gICAgfSxcbiAgICBjb25maWdGaWxlU2VsZWN0b3I6IChwcm9maWxlKSA9PiB7XG4gICAgICAgIGlmICghKE5PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9DT05GSUdfS0VZIGluIHByb2ZpbGUpKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgcmV0dXJuIGdldEFycmF5Rm9yQ29tbWFTZXBhcmF0ZWRTdHJpbmcocHJvZmlsZVtOT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfQ09ORklHX0tFWV0pO1xuICAgIH0sXG4gICAgZGVmYXVsdDogW10sXG59O1xuIiwgImltcG9ydCB7IG5vcm1hbGl6ZVByb3ZpZGVyIH0gZnJvbSBcIkBzbWl0aHkvY29yZVwiO1xuaW1wb3J0IHsgUHJvdmlkZXJFcnJvciB9IGZyb20gXCJAc21pdGh5L3Byb3BlcnR5LXByb3ZpZGVyXCI7XG5leHBvcnQgY29uc3QgcmVzb2x2ZUF3c1Nka1NpZ1Y0QUNvbmZpZyA9IChjb25maWcpID0+IHtcbiAgICBjb25maWcuc2lndjRhU2lnbmluZ1JlZ2lvblNldCA9IG5vcm1hbGl6ZVByb3ZpZGVyKGNvbmZpZy5zaWd2NGFTaWduaW5nUmVnaW9uU2V0KTtcbiAgICByZXR1cm4gY29uZmlnO1xufTtcbmV4cG9ydCBjb25zdCBOT0RFX1NJR1Y0QV9DT05GSUdfT1BUSU9OUyA9IHtcbiAgICBlbnZpcm9ubWVudFZhcmlhYmxlU2VsZWN0b3IoZW52KSB7XG4gICAgICAgIGlmIChlbnYuQVdTX1NJR1Y0QV9TSUdOSU5HX1JFR0lPTl9TRVQpIHtcbiAgICAgICAgICAgIHJldHVybiBlbnYuQVdTX1NJR1Y0QV9TSUdOSU5HX1JFR0lPTl9TRVQuc3BsaXQoXCIsXCIpLm1hcCgoXykgPT4gXy50cmltKCkpO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IG5ldyBQcm92aWRlckVycm9yKFwiQVdTX1NJR1Y0QV9TSUdOSU5HX1JFR0lPTl9TRVQgbm90IHNldCBpbiBlbnYuXCIsIHtcbiAgICAgICAgICAgIHRyeU5leHRMaW5rOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICB9LFxuICAgIGNvbmZpZ0ZpbGVTZWxlY3Rvcihwcm9maWxlKSB7XG4gICAgICAgIGlmIChwcm9maWxlLnNpZ3Y0YV9zaWduaW5nX3JlZ2lvbl9zZXQpIHtcbiAgICAgICAgICAgIHJldHVybiAocHJvZmlsZS5zaWd2NGFfc2lnbmluZ19yZWdpb25fc2V0ID8/IFwiXCIpLnNwbGl0KFwiLFwiKS5tYXAoKF8pID0+IF8udHJpbSgpKTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBuZXcgUHJvdmlkZXJFcnJvcihcInNpZ3Y0YV9zaWduaW5nX3JlZ2lvbl9zZXQgbm90IHNldCBpbiBwcm9maWxlLlwiLCB7XG4gICAgICAgICAgICB0cnlOZXh0TGluazogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgfSxcbiAgICBkZWZhdWx0OiB1bmRlZmluZWQsXG59O1xuIiwgImltcG9ydCB7IHNldENyZWRlbnRpYWxGZWF0dXJlIH0gZnJvbSBcIkBhd3Mtc2RrL2NvcmUvY2xpZW50XCI7XG5pbXBvcnQgeyBkb2VzSWRlbnRpdHlSZXF1aXJlUmVmcmVzaCwgaXNJZGVudGl0eUV4cGlyZWQsIG1lbW9pemVJZGVudGl0eVByb3ZpZGVyLCBub3JtYWxpemVQcm92aWRlciwgfSBmcm9tIFwiQHNtaXRoeS9jb3JlXCI7XG5pbXBvcnQgeyBTaWduYXR1cmVWNCB9IGZyb20gXCJAc21pdGh5L3NpZ25hdHVyZS12NFwiO1xuZXhwb3J0IGNvbnN0IHJlc29sdmVBd3NTZGtTaWdWNENvbmZpZyA9IChjb25maWcpID0+IHtcbiAgICBsZXQgaW5wdXRDcmVkZW50aWFscyA9IGNvbmZpZy5jcmVkZW50aWFscztcbiAgICBsZXQgaXNVc2VyU3VwcGxpZWQgPSAhIWNvbmZpZy5jcmVkZW50aWFscztcbiAgICBsZXQgcmVzb2x2ZWRDcmVkZW50aWFscyA9IHVuZGVmaW5lZDtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoY29uZmlnLCBcImNyZWRlbnRpYWxzXCIsIHtcbiAgICAgICAgc2V0KGNyZWRlbnRpYWxzKSB7XG4gICAgICAgICAgICBpZiAoY3JlZGVudGlhbHMgJiYgY3JlZGVudGlhbHMgIT09IGlucHV0Q3JlZGVudGlhbHMgJiYgY3JlZGVudGlhbHMgIT09IHJlc29sdmVkQ3JlZGVudGlhbHMpIHtcbiAgICAgICAgICAgICAgICBpc1VzZXJTdXBwbGllZCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpbnB1dENyZWRlbnRpYWxzID0gY3JlZGVudGlhbHM7XG4gICAgICAgICAgICBjb25zdCBtZW1vaXplZFByb3ZpZGVyID0gbm9ybWFsaXplQ3JlZGVudGlhbFByb3ZpZGVyKGNvbmZpZywge1xuICAgICAgICAgICAgICAgIGNyZWRlbnRpYWxzOiBpbnB1dENyZWRlbnRpYWxzLFxuICAgICAgICAgICAgICAgIGNyZWRlbnRpYWxEZWZhdWx0UHJvdmlkZXI6IGNvbmZpZy5jcmVkZW50aWFsRGVmYXVsdFByb3ZpZGVyLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCBib3VuZFByb3ZpZGVyID0gYmluZENhbGxlckNvbmZpZyhjb25maWcsIG1lbW9pemVkUHJvdmlkZXIpO1xuICAgICAgICAgICAgaWYgKGlzVXNlclN1cHBsaWVkICYmICFib3VuZFByb3ZpZGVyLmF0dHJpYnV0ZWQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpc0NyZWRlbnRpYWxPYmplY3QgPSB0eXBlb2YgaW5wdXRDcmVkZW50aWFscyA9PT0gXCJvYmplY3RcIiAmJiBpbnB1dENyZWRlbnRpYWxzICE9PSBudWxsO1xuICAgICAgICAgICAgICAgIHJlc29sdmVkQ3JlZGVudGlhbHMgPSBhc3luYyAob3B0aW9ucykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjcmVkcyA9IGF3YWl0IGJvdW5kUHJvdmlkZXIob3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGF0dHJpYnV0ZWRDcmVkcyA9IGNyZWRzO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNDcmVkZW50aWFsT2JqZWN0ICYmICghYXR0cmlidXRlZENyZWRzLiRzb3VyY2UgfHwgT2JqZWN0LmtleXMoYXR0cmlidXRlZENyZWRzLiRzb3VyY2UpLmxlbmd0aCA9PT0gMCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzZXRDcmVkZW50aWFsRmVhdHVyZShhdHRyaWJ1dGVkQ3JlZHMsIFwiQ1JFREVOVElBTFNfQ09ERVwiLCBcImVcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGF0dHJpYnV0ZWRDcmVkcztcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIHJlc29sdmVkQ3JlZGVudGlhbHMubWVtb2l6ZWQgPSBib3VuZFByb3ZpZGVyLm1lbW9pemVkO1xuICAgICAgICAgICAgICAgIHJlc29sdmVkQ3JlZGVudGlhbHMuY29uZmlnQm91bmQgPSBib3VuZFByb3ZpZGVyLmNvbmZpZ0JvdW5kO1xuICAgICAgICAgICAgICAgIHJlc29sdmVkQ3JlZGVudGlhbHMuYXR0cmlidXRlZCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXNvbHZlZENyZWRlbnRpYWxzID0gYm91bmRQcm92aWRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZ2V0KCkge1xuICAgICAgICAgICAgcmV0dXJuIHJlc29sdmVkQ3JlZGVudGlhbHM7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICB9KTtcbiAgICBjb25maWcuY3JlZGVudGlhbHMgPSBpbnB1dENyZWRlbnRpYWxzO1xuICAgIGNvbnN0IHsgc2lnbmluZ0VzY2FwZVBhdGggPSB0cnVlLCBzeXN0ZW1DbG9ja09mZnNldCA9IGNvbmZpZy5zeXN0ZW1DbG9ja09mZnNldCB8fCAwLCBzaGEyNTYsIH0gPSBjb25maWc7XG4gICAgbGV0IHNpZ25lcjtcbiAgICBpZiAoY29uZmlnLnNpZ25lcikge1xuICAgICAgICBzaWduZXIgPSBub3JtYWxpemVQcm92aWRlcihjb25maWcuc2lnbmVyKTtcbiAgICB9XG4gICAgZWxzZSBpZiAoY29uZmlnLnJlZ2lvbkluZm9Qcm92aWRlcikge1xuICAgICAgICBzaWduZXIgPSAoKSA9PiBub3JtYWxpemVQcm92aWRlcihjb25maWcucmVnaW9uKSgpXG4gICAgICAgICAgICAudGhlbihhc3luYyAocmVnaW9uKSA9PiBbXG4gICAgICAgICAgICAoYXdhaXQgY29uZmlnLnJlZ2lvbkluZm9Qcm92aWRlcihyZWdpb24sIHtcbiAgICAgICAgICAgICAgICB1c2VGaXBzRW5kcG9pbnQ6IGF3YWl0IGNvbmZpZy51c2VGaXBzRW5kcG9pbnQoKSxcbiAgICAgICAgICAgICAgICB1c2VEdWFsc3RhY2tFbmRwb2ludDogYXdhaXQgY29uZmlnLnVzZUR1YWxzdGFja0VuZHBvaW50KCksXG4gICAgICAgICAgICB9KSkgfHwge30sXG4gICAgICAgICAgICByZWdpb24sXG4gICAgICAgIF0pXG4gICAgICAgICAgICAudGhlbigoW3JlZ2lvbkluZm8sIHJlZ2lvbl0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgc2lnbmluZ1JlZ2lvbiwgc2lnbmluZ1NlcnZpY2UgfSA9IHJlZ2lvbkluZm87XG4gICAgICAgICAgICBjb25maWcuc2lnbmluZ1JlZ2lvbiA9IGNvbmZpZy5zaWduaW5nUmVnaW9uIHx8IHNpZ25pbmdSZWdpb24gfHwgcmVnaW9uO1xuICAgICAgICAgICAgY29uZmlnLnNpZ25pbmdOYW1lID0gY29uZmlnLnNpZ25pbmdOYW1lIHx8IHNpZ25pbmdTZXJ2aWNlIHx8IGNvbmZpZy5zZXJ2aWNlSWQ7XG4gICAgICAgICAgICBjb25zdCBwYXJhbXMgPSB7XG4gICAgICAgICAgICAgICAgLi4uY29uZmlnLFxuICAgICAgICAgICAgICAgIGNyZWRlbnRpYWxzOiBjb25maWcuY3JlZGVudGlhbHMsXG4gICAgICAgICAgICAgICAgcmVnaW9uOiBjb25maWcuc2lnbmluZ1JlZ2lvbixcbiAgICAgICAgICAgICAgICBzZXJ2aWNlOiBjb25maWcuc2lnbmluZ05hbWUsXG4gICAgICAgICAgICAgICAgc2hhMjU2LFxuICAgICAgICAgICAgICAgIHVyaUVzY2FwZVBhdGg6IHNpZ25pbmdFc2NhcGVQYXRoLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGNvbnN0IFNpZ25lckN0b3IgPSBjb25maWcuc2lnbmVyQ29uc3RydWN0b3IgfHwgU2lnbmF0dXJlVjQ7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFNpZ25lckN0b3IocGFyYW1zKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBzaWduZXIgPSBhc3luYyAoYXV0aFNjaGVtZSkgPT4ge1xuICAgICAgICAgICAgYXV0aFNjaGVtZSA9IE9iamVjdC5hc3NpZ24oe30sIHtcbiAgICAgICAgICAgICAgICBuYW1lOiBcInNpZ3Y0XCIsXG4gICAgICAgICAgICAgICAgc2lnbmluZ05hbWU6IGNvbmZpZy5zaWduaW5nTmFtZSB8fCBjb25maWcuZGVmYXVsdFNpZ25pbmdOYW1lLFxuICAgICAgICAgICAgICAgIHNpZ25pbmdSZWdpb246IGF3YWl0IG5vcm1hbGl6ZVByb3ZpZGVyKGNvbmZpZy5yZWdpb24pKCksXG4gICAgICAgICAgICAgICAgcHJvcGVydGllczoge30sXG4gICAgICAgICAgICB9LCBhdXRoU2NoZW1lKTtcbiAgICAgICAgICAgIGNvbnN0IHNpZ25pbmdSZWdpb24gPSBhdXRoU2NoZW1lLnNpZ25pbmdSZWdpb247XG4gICAgICAgICAgICBjb25zdCBzaWduaW5nU2VydmljZSA9IGF1dGhTY2hlbWUuc2lnbmluZ05hbWU7XG4gICAgICAgICAgICBjb25maWcuc2lnbmluZ1JlZ2lvbiA9IGNvbmZpZy5zaWduaW5nUmVnaW9uIHx8IHNpZ25pbmdSZWdpb247XG4gICAgICAgICAgICBjb25maWcuc2lnbmluZ05hbWUgPSBjb25maWcuc2lnbmluZ05hbWUgfHwgc2lnbmluZ1NlcnZpY2UgfHwgY29uZmlnLnNlcnZpY2VJZDtcbiAgICAgICAgICAgIGNvbnN0IHBhcmFtcyA9IHtcbiAgICAgICAgICAgICAgICAuLi5jb25maWcsXG4gICAgICAgICAgICAgICAgY3JlZGVudGlhbHM6IGNvbmZpZy5jcmVkZW50aWFscyxcbiAgICAgICAgICAgICAgICByZWdpb246IGNvbmZpZy5zaWduaW5nUmVnaW9uLFxuICAgICAgICAgICAgICAgIHNlcnZpY2U6IGNvbmZpZy5zaWduaW5nTmFtZSxcbiAgICAgICAgICAgICAgICBzaGEyNTYsXG4gICAgICAgICAgICAgICAgdXJpRXNjYXBlUGF0aDogc2lnbmluZ0VzY2FwZVBhdGgsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY29uc3QgU2lnbmVyQ3RvciA9IGNvbmZpZy5zaWduZXJDb25zdHJ1Y3RvciB8fCBTaWduYXR1cmVWNDtcbiAgICAgICAgICAgIHJldHVybiBuZXcgU2lnbmVyQ3RvcihwYXJhbXMpO1xuICAgICAgICB9O1xuICAgIH1cbiAgICBjb25zdCByZXNvbHZlZENvbmZpZyA9IE9iamVjdC5hc3NpZ24oY29uZmlnLCB7XG4gICAgICAgIHN5c3RlbUNsb2NrT2Zmc2V0LFxuICAgICAgICBzaWduaW5nRXNjYXBlUGF0aCxcbiAgICAgICAgc2lnbmVyLFxuICAgIH0pO1xuICAgIHJldHVybiByZXNvbHZlZENvbmZpZztcbn07XG5leHBvcnQgY29uc3QgcmVzb2x2ZUFXU1NES1NpZ1Y0Q29uZmlnID0gcmVzb2x2ZUF3c1Nka1NpZ1Y0Q29uZmlnO1xuZnVuY3Rpb24gbm9ybWFsaXplQ3JlZGVudGlhbFByb3ZpZGVyKGNvbmZpZywgeyBjcmVkZW50aWFscywgY3JlZGVudGlhbERlZmF1bHRQcm92aWRlciwgfSkge1xuICAgIGxldCBjcmVkZW50aWFsc1Byb3ZpZGVyO1xuICAgIGlmIChjcmVkZW50aWFscykge1xuICAgICAgICBpZiAoIWNyZWRlbnRpYWxzPy5tZW1vaXplZCkge1xuICAgICAgICAgICAgY3JlZGVudGlhbHNQcm92aWRlciA9IG1lbW9pemVJZGVudGl0eVByb3ZpZGVyKGNyZWRlbnRpYWxzLCBpc0lkZW50aXR5RXhwaXJlZCwgZG9lc0lkZW50aXR5UmVxdWlyZVJlZnJlc2gpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY3JlZGVudGlhbHNQcm92aWRlciA9IGNyZWRlbnRpYWxzO1xuICAgICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBpZiAoY3JlZGVudGlhbERlZmF1bHRQcm92aWRlcikge1xuICAgICAgICAgICAgY3JlZGVudGlhbHNQcm92aWRlciA9IG5vcm1hbGl6ZVByb3ZpZGVyKGNyZWRlbnRpYWxEZWZhdWx0UHJvdmlkZXIoT2JqZWN0LmFzc2lnbih7fSwgY29uZmlnLCB7XG4gICAgICAgICAgICAgICAgcGFyZW50Q2xpZW50Q29uZmlnOiBjb25maWcsXG4gICAgICAgICAgICB9KSkpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY3JlZGVudGlhbHNQcm92aWRlciA9IGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJAYXdzLXNkay9jb3JlOjpyZXNvbHZlQXdzU2RrU2lnVjRDb25maWcgLSBgY3JlZGVudGlhbHNgIG5vdCBwcm92aWRlZCBhbmQgbm8gY3JlZGVudGlhbERlZmF1bHRQcm92aWRlciB3YXMgY29uZmlndXJlZC5cIik7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfVxuICAgIGNyZWRlbnRpYWxzUHJvdmlkZXIubWVtb2l6ZWQgPSB0cnVlO1xuICAgIHJldHVybiBjcmVkZW50aWFsc1Byb3ZpZGVyO1xufVxuZnVuY3Rpb24gYmluZENhbGxlckNvbmZpZyhjb25maWcsIGNyZWRlbnRpYWxzUHJvdmlkZXIpIHtcbiAgICBpZiAoY3JlZGVudGlhbHNQcm92aWRlci5jb25maWdCb3VuZCkge1xuICAgICAgICByZXR1cm4gY3JlZGVudGlhbHNQcm92aWRlcjtcbiAgICB9XG4gICAgY29uc3QgZm4gPSBhc3luYyAob3B0aW9ucykgPT4gY3JlZGVudGlhbHNQcm92aWRlcih7IC4uLm9wdGlvbnMsIGNhbGxlckNsaWVudENvbmZpZzogY29uZmlnIH0pO1xuICAgIGZuLm1lbW9pemVkID0gY3JlZGVudGlhbHNQcm92aWRlci5tZW1vaXplZDtcbiAgICBmbi5jb25maWdCb3VuZCA9IHRydWU7XG4gICAgcmV0dXJuIGZuO1xufVxuIiwgImV4cG9ydCB7IEF3c1Nka1NpZ1Y0U2lnbmVyLCBBV1NTREtTaWdWNFNpZ25lciwgdmFsaWRhdGVTaWduaW5nUHJvcGVydGllcyB9IGZyb20gXCIuL0F3c1Nka1NpZ1Y0U2lnbmVyXCI7XG5leHBvcnQgeyBBd3NTZGtTaWdWNEFTaWduZXIgfSBmcm9tIFwiLi9Bd3NTZGtTaWdWNEFTaWduZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL05PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9PUFRJT05TXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9yZXNvbHZlQXdzU2RrU2lnVjRBQ29uZmlnXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9yZXNvbHZlQXdzU2RrU2lnVjRDb25maWdcIjtcbiIsICJleHBvcnQgKiBmcm9tIFwiLi9hd3Nfc2RrXCI7XG5leHBvcnQgKiBmcm9tIFwiLi91dGlscy9nZXRCZWFyZXJUb2tlbkVudktleVwiO1xuIiwgImltcG9ydCB7IE5vcm1hbGl6ZWRTY2hlbWEsIFR5cGVSZWdpc3RyeSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2NoZW1hXCI7XG5pbXBvcnQgeyBkZWNvcmF0ZVNlcnZpY2VFeGNlcHRpb24gfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5leHBvcnQgY2xhc3MgUHJvdG9jb2xMaWIge1xuICAgIHF1ZXJ5Q29tcGF0O1xuICAgIGNvbnN0cnVjdG9yKHF1ZXJ5Q29tcGF0ID0gZmFsc2UpIHtcbiAgICAgICAgdGhpcy5xdWVyeUNvbXBhdCA9IHF1ZXJ5Q29tcGF0O1xuICAgIH1cbiAgICByZXNvbHZlUmVzdENvbnRlbnRUeXBlKGRlZmF1bHRDb250ZW50VHlwZSwgaW5wdXRTY2hlbWEpIHtcbiAgICAgICAgY29uc3QgbWVtYmVycyA9IGlucHV0U2NoZW1hLmdldE1lbWJlclNjaGVtYXMoKTtcbiAgICAgICAgY29uc3QgaHR0cFBheWxvYWRNZW1iZXIgPSBPYmplY3QudmFsdWVzKG1lbWJlcnMpLmZpbmQoKG0pID0+IHtcbiAgICAgICAgICAgIHJldHVybiAhIW0uZ2V0TWVyZ2VkVHJhaXRzKCkuaHR0cFBheWxvYWQ7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoaHR0cFBheWxvYWRNZW1iZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IG1lZGlhVHlwZSA9IGh0dHBQYXlsb2FkTWVtYmVyLmdldE1lcmdlZFRyYWl0cygpLm1lZGlhVHlwZTtcbiAgICAgICAgICAgIGlmIChtZWRpYVR5cGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbWVkaWFUeXBlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoaHR0cFBheWxvYWRNZW1iZXIuaXNTdHJpbmdTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBcInRleHQvcGxhaW5cIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGh0dHBQYXlsb2FkTWVtYmVyLmlzQmxvYlNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtXCI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZGVmYXVsdENvbnRlbnRUeXBlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKCFpbnB1dFNjaGVtYS5pc1VuaXRTY2hlbWEoKSkge1xuICAgICAgICAgICAgY29uc3QgaGFzQm9keSA9IE9iamVjdC52YWx1ZXMobWVtYmVycykuZmluZCgobSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgaHR0cFF1ZXJ5LCBodHRwUXVlcnlQYXJhbXMsIGh0dHBIZWFkZXIsIGh0dHBMYWJlbCwgaHR0cFByZWZpeEhlYWRlcnMgfSA9IG0uZ2V0TWVyZ2VkVHJhaXRzKCk7XG4gICAgICAgICAgICAgICAgY29uc3Qgbm9QcmVmaXhIZWFkZXJzID0gaHR0cFByZWZpeEhlYWRlcnMgPT09IHZvaWQgMDtcbiAgICAgICAgICAgICAgICByZXR1cm4gIWh0dHBRdWVyeSAmJiAhaHR0cFF1ZXJ5UGFyYW1zICYmICFodHRwSGVhZGVyICYmICFodHRwTGFiZWwgJiYgbm9QcmVmaXhIZWFkZXJzO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAoaGFzQm9keSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBkZWZhdWx0Q29udGVudFR5cGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgYXN5bmMgZ2V0RXJyb3JTY2hlbWFPclRocm93QmFzZUV4Y2VwdGlvbihlcnJvcklkZW50aWZpZXIsIGRlZmF1bHROYW1lc3BhY2UsIHJlc3BvbnNlLCBkYXRhT2JqZWN0LCBtZXRhZGF0YSwgZ2V0RXJyb3JTY2hlbWEpIHtcbiAgICAgICAgbGV0IG5hbWVzcGFjZSA9IGRlZmF1bHROYW1lc3BhY2U7XG4gICAgICAgIGxldCBlcnJvck5hbWUgPSBlcnJvcklkZW50aWZpZXI7XG4gICAgICAgIGlmIChlcnJvcklkZW50aWZpZXIuaW5jbHVkZXMoXCIjXCIpKSB7XG4gICAgICAgICAgICBbbmFtZXNwYWNlLCBlcnJvck5hbWVdID0gZXJyb3JJZGVudGlmaWVyLnNwbGl0KFwiI1wiKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBlcnJvck1ldGFkYXRhID0ge1xuICAgICAgICAgICAgJG1ldGFkYXRhOiBtZXRhZGF0YSxcbiAgICAgICAgICAgICRmYXVsdDogcmVzcG9uc2Uuc3RhdHVzQ29kZSA8IDUwMCA/IFwiY2xpZW50XCIgOiBcInNlcnZlclwiLFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCByZWdpc3RyeSA9IFR5cGVSZWdpc3RyeS5mb3IobmFtZXNwYWNlKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGVycm9yU2NoZW1hID0gZ2V0RXJyb3JTY2hlbWE/LihyZWdpc3RyeSwgZXJyb3JOYW1lKSA/PyByZWdpc3RyeS5nZXRTY2hlbWEoZXJyb3JJZGVudGlmaWVyKTtcbiAgICAgICAgICAgIHJldHVybiB7IGVycm9yU2NoZW1hLCBlcnJvck1ldGFkYXRhIH07XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIGRhdGFPYmplY3QubWVzc2FnZSA9IGRhdGFPYmplY3QubWVzc2FnZSA/PyBkYXRhT2JqZWN0Lk1lc3NhZ2UgPz8gXCJVbmtub3duRXJyb3JcIjtcbiAgICAgICAgICAgIGNvbnN0IHN5bnRoZXRpYyA9IFR5cGVSZWdpc3RyeS5mb3IoXCJzbWl0aHkudHMuc2RrLnN5bnRoZXRpYy5cIiArIG5hbWVzcGFjZSk7XG4gICAgICAgICAgICBjb25zdCBiYXNlRXhjZXB0aW9uU2NoZW1hID0gc3ludGhldGljLmdldEJhc2VFeGNlcHRpb24oKTtcbiAgICAgICAgICAgIGlmIChiYXNlRXhjZXB0aW9uU2NoZW1hKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgRXJyb3JDdG9yID0gc3ludGhldGljLmdldEVycm9yQ3RvcihiYXNlRXhjZXB0aW9uU2NoZW1hKSA/PyBFcnJvcjtcbiAgICAgICAgICAgICAgICB0aHJvdyB0aGlzLmRlY29yYXRlU2VydmljZUV4Y2VwdGlvbihPYmplY3QuYXNzaWduKG5ldyBFcnJvckN0b3IoeyBuYW1lOiBlcnJvck5hbWUgfSksIGVycm9yTWV0YWRhdGEpLCBkYXRhT2JqZWN0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRocm93IHRoaXMuZGVjb3JhdGVTZXJ2aWNlRXhjZXB0aW9uKE9iamVjdC5hc3NpZ24obmV3IEVycm9yKGVycm9yTmFtZSksIGVycm9yTWV0YWRhdGEpLCBkYXRhT2JqZWN0KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBkZWNvcmF0ZVNlcnZpY2VFeGNlcHRpb24oZXhjZXB0aW9uLCBhZGRpdGlvbnMgPSB7fSkge1xuICAgICAgICBpZiAodGhpcy5xdWVyeUNvbXBhdCkge1xuICAgICAgICAgICAgY29uc3QgbXNnID0gZXhjZXB0aW9uLk1lc3NhZ2UgPz8gYWRkaXRpb25zLk1lc3NhZ2U7XG4gICAgICAgICAgICBjb25zdCBlcnJvciA9IGRlY29yYXRlU2VydmljZUV4Y2VwdGlvbihleGNlcHRpb24sIGFkZGl0aW9ucyk7XG4gICAgICAgICAgICBpZiAobXNnKSB7XG4gICAgICAgICAgICAgICAgZXJyb3IubWVzc2FnZSA9IG1zZztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVycm9yLkVycm9yID0ge1xuICAgICAgICAgICAgICAgIC4uLmVycm9yLkVycm9yLFxuICAgICAgICAgICAgICAgIFR5cGU6IGVycm9yLkVycm9yPy5UeXBlLFxuICAgICAgICAgICAgICAgIENvZGU6IGVycm9yLkVycm9yPy5Db2RlLFxuICAgICAgICAgICAgICAgIE1lc3NhZ2U6IGVycm9yLkVycm9yPy5tZXNzYWdlID8/IGVycm9yLkVycm9yPy5NZXNzYWdlID8/IG1zZyxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBjb25zdCByZXFJZCA9IGVycm9yLiRtZXRhZGF0YS5yZXF1ZXN0SWQ7XG4gICAgICAgICAgICBpZiAocmVxSWQpIHtcbiAgICAgICAgICAgICAgICBlcnJvci5SZXF1ZXN0SWQgPSByZXFJZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBlcnJvcjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGVjb3JhdGVTZXJ2aWNlRXhjZXB0aW9uKGV4Y2VwdGlvbiwgYWRkaXRpb25zKTtcbiAgICB9XG4gICAgc2V0UXVlcnlDb21wYXRFcnJvcihvdXRwdXQsIHJlc3BvbnNlKSB7XG4gICAgICAgIGNvbnN0IHF1ZXJ5RXJyb3JIZWFkZXIgPSByZXNwb25zZS5oZWFkZXJzPy5bXCJ4LWFtem4tcXVlcnktZXJyb3JcIl07XG4gICAgICAgIGlmIChvdXRwdXQgIT09IHVuZGVmaW5lZCAmJiBxdWVyeUVycm9ySGVhZGVyICE9IG51bGwpIHtcbiAgICAgICAgICAgIGNvbnN0IFtDb2RlLCBUeXBlXSA9IHF1ZXJ5RXJyb3JIZWFkZXIuc3BsaXQoXCI7XCIpO1xuICAgICAgICAgICAgY29uc3QgZW50cmllcyA9IE9iamVjdC5lbnRyaWVzKG91dHB1dCk7XG4gICAgICAgICAgICBjb25zdCBFcnJvciA9IHtcbiAgICAgICAgICAgICAgICBDb2RlLFxuICAgICAgICAgICAgICAgIFR5cGUsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihvdXRwdXQsIEVycm9yKTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgW2ssIHZdIG9mIGVudHJpZXMpIHtcbiAgICAgICAgICAgICAgICBFcnJvcltrID09PSBcIm1lc3NhZ2VcIiA/IFwiTWVzc2FnZVwiIDoga10gPSB2O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVsZXRlIEVycm9yLl9fdHlwZTtcbiAgICAgICAgICAgIG91dHB1dC5FcnJvciA9IEVycm9yO1xuICAgICAgICB9XG4gICAgfVxuICAgIHF1ZXJ5Q29tcGF0T3V0cHV0KHF1ZXJ5Q29tcGF0RXJyb3JEYXRhLCBlcnJvckRhdGEpIHtcbiAgICAgICAgaWYgKHF1ZXJ5Q29tcGF0RXJyb3JEYXRhLkVycm9yKSB7XG4gICAgICAgICAgICBlcnJvckRhdGEuRXJyb3IgPSBxdWVyeUNvbXBhdEVycm9yRGF0YS5FcnJvcjtcbiAgICAgICAgfVxuICAgICAgICBpZiAocXVlcnlDb21wYXRFcnJvckRhdGEuVHlwZSkge1xuICAgICAgICAgICAgZXJyb3JEYXRhLlR5cGUgPSBxdWVyeUNvbXBhdEVycm9yRGF0YS5UeXBlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChxdWVyeUNvbXBhdEVycm9yRGF0YS5Db2RlKSB7XG4gICAgICAgICAgICBlcnJvckRhdGEuQ29kZSA9IHF1ZXJ5Q29tcGF0RXJyb3JEYXRhLkNvZGU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZmluZFF1ZXJ5Q29tcGF0aWJsZUVycm9yKHJlZ2lzdHJ5LCBlcnJvck5hbWUpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiByZWdpc3RyeS5nZXRTY2hlbWEoZXJyb3JOYW1lKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgcmV0dXJuIHJlZ2lzdHJ5LmZpbmQoKHNjaGVtYSkgPT4gTm9ybWFsaXplZFNjaGVtYS5vZihzY2hlbWEpLmdldE1lcmdlZFRyYWl0cygpLmF3c1F1ZXJ5RXJyb3I/LlswXSA9PT0gZXJyb3JOYW1lKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBsb2FkU21pdGh5UnBjVjJDYm9yRXJyb3JDb2RlLCBTbWl0aHlScGNWMkNib3JQcm90b2NvbCB9IGZyb20gXCJAc21pdGh5L2NvcmUvY2JvclwiO1xuaW1wb3J0IHsgTm9ybWFsaXplZFNjaGVtYSwgVHlwZVJlZ2lzdHJ5IH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IFByb3RvY29sTGliIH0gZnJvbSBcIi4uL1Byb3RvY29sTGliXCI7XG5leHBvcnQgY2xhc3MgQXdzU21pdGh5UnBjVjJDYm9yUHJvdG9jb2wgZXh0ZW5kcyBTbWl0aHlScGNWMkNib3JQcm90b2NvbCB7XG4gICAgYXdzUXVlcnlDb21wYXRpYmxlO1xuICAgIG1peGluO1xuICAgIGNvbnN0cnVjdG9yKHsgZGVmYXVsdE5hbWVzcGFjZSwgYXdzUXVlcnlDb21wYXRpYmxlLCB9KSB7XG4gICAgICAgIHN1cGVyKHsgZGVmYXVsdE5hbWVzcGFjZSB9KTtcbiAgICAgICAgdGhpcy5hd3NRdWVyeUNvbXBhdGlibGUgPSAhIWF3c1F1ZXJ5Q29tcGF0aWJsZTtcbiAgICAgICAgdGhpcy5taXhpbiA9IG5ldyBQcm90b2NvbExpYih0aGlzLmF3c1F1ZXJ5Q29tcGF0aWJsZSk7XG4gICAgfVxuICAgIGFzeW5jIHNlcmlhbGl6ZVJlcXVlc3Qob3BlcmF0aW9uU2NoZW1hLCBpbnB1dCwgY29udGV4dCkge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gYXdhaXQgc3VwZXIuc2VyaWFsaXplUmVxdWVzdChvcGVyYXRpb25TY2hlbWEsIGlucHV0LCBjb250ZXh0KTtcbiAgICAgICAgaWYgKHRoaXMuYXdzUXVlcnlDb21wYXRpYmxlKSB7XG4gICAgICAgICAgICByZXF1ZXN0LmhlYWRlcnNbXCJ4LWFtem4tcXVlcnktbW9kZVwiXSA9IFwidHJ1ZVwiO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXF1ZXN0O1xuICAgIH1cbiAgICBhc3luYyBoYW5kbGVFcnJvcihvcGVyYXRpb25TY2hlbWEsIGNvbnRleHQsIHJlc3BvbnNlLCBkYXRhT2JqZWN0LCBtZXRhZGF0YSkge1xuICAgICAgICBpZiAodGhpcy5hd3NRdWVyeUNvbXBhdGlibGUpIHtcbiAgICAgICAgICAgIHRoaXMubWl4aW4uc2V0UXVlcnlDb21wYXRFcnJvcihkYXRhT2JqZWN0LCByZXNwb25zZSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZXJyb3JOYW1lID0gKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvbXBhdEhlYWRlciA9IHJlc3BvbnNlLmhlYWRlcnNbXCJ4LWFtem4tcXVlcnktZXJyb3JcIl07XG4gICAgICAgICAgICBpZiAoY29tcGF0SGVhZGVyICYmIHRoaXMuYXdzUXVlcnlDb21wYXRpYmxlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvbXBhdEhlYWRlci5zcGxpdChcIjtcIilbMF07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbG9hZFNtaXRoeVJwY1YyQ2JvckVycm9yQ29kZShyZXNwb25zZSwgZGF0YU9iamVjdCkgPz8gXCJVbmtub3duXCI7XG4gICAgICAgIH0pKCk7XG4gICAgICAgIGNvbnN0IHsgZXJyb3JTY2hlbWEsIGVycm9yTWV0YWRhdGEgfSA9IGF3YWl0IHRoaXMubWl4aW4uZ2V0RXJyb3JTY2hlbWFPclRocm93QmFzZUV4Y2VwdGlvbihlcnJvck5hbWUsIHRoaXMub3B0aW9ucy5kZWZhdWx0TmFtZXNwYWNlLCByZXNwb25zZSwgZGF0YU9iamVjdCwgbWV0YWRhdGEsIHRoaXMuYXdzUXVlcnlDb21wYXRpYmxlID8gdGhpcy5taXhpbi5maW5kUXVlcnlDb21wYXRpYmxlRXJyb3IgOiB1bmRlZmluZWQpO1xuICAgICAgICBjb25zdCBucyA9IE5vcm1hbGl6ZWRTY2hlbWEub2YoZXJyb3JTY2hlbWEpO1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gZGF0YU9iamVjdC5tZXNzYWdlID8/IGRhdGFPYmplY3QuTWVzc2FnZSA/PyBcIlVua25vd25cIjtcbiAgICAgICAgY29uc3QgRXJyb3JDdG9yID0gVHlwZVJlZ2lzdHJ5LmZvcihlcnJvclNjaGVtYVsxXSkuZ2V0RXJyb3JDdG9yKGVycm9yU2NoZW1hKSA/PyBFcnJvcjtcbiAgICAgICAgY29uc3QgZXhjZXB0aW9uID0gbmV3IEVycm9yQ3RvcihtZXNzYWdlKTtcbiAgICAgICAgY29uc3Qgb3V0cHV0ID0ge307XG4gICAgICAgIGZvciAoY29uc3QgW25hbWUsIG1lbWJlcl0gb2YgbnMuc3RydWN0SXRlcmF0b3IoKSkge1xuICAgICAgICAgICAgaWYgKGRhdGFPYmplY3RbbmFtZV0gIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIG91dHB1dFtuYW1lXSA9IHRoaXMuZGVzZXJpYWxpemVyLnJlYWRWYWx1ZShtZW1iZXIsIGRhdGFPYmplY3RbbmFtZV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmF3c1F1ZXJ5Q29tcGF0aWJsZSkge1xuICAgICAgICAgICAgdGhpcy5taXhpbi5xdWVyeUNvbXBhdE91dHB1dChkYXRhT2JqZWN0LCBvdXRwdXQpO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IHRoaXMubWl4aW4uZGVjb3JhdGVTZXJ2aWNlRXhjZXB0aW9uKE9iamVjdC5hc3NpZ24oZXhjZXB0aW9uLCBlcnJvck1ldGFkYXRhLCB7XG4gICAgICAgICAgICAkZmF1bHQ6IG5zLmdldE1lcmdlZFRyYWl0cygpLmVycm9yLFxuICAgICAgICAgICAgbWVzc2FnZSxcbiAgICAgICAgfSwgb3V0cHV0KSwgZGF0YU9iamVjdCk7XG4gICAgfVxufVxuIiwgImV4cG9ydCBjb25zdCBfdG9TdHIgPSAodmFsKSA9PiB7XG4gICAgaWYgKHZhbCA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiB2YWw7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgdmFsID09PSBcIm51bWJlclwiIHx8IHR5cGVvZiB2YWwgPT09IFwiYmlnaW50XCIpIHtcbiAgICAgICAgY29uc3Qgd2FybmluZyA9IG5ldyBFcnJvcihgUmVjZWl2ZWQgbnVtYmVyICR7dmFsfSB3aGVyZSBhIHN0cmluZyB3YXMgZXhwZWN0ZWQuYCk7XG4gICAgICAgIHdhcm5pbmcubmFtZSA9IFwiV2FybmluZ1wiO1xuICAgICAgICBjb25zb2xlLndhcm4od2FybmluZyk7XG4gICAgICAgIHJldHVybiBTdHJpbmcodmFsKTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB2YWwgPT09IFwiYm9vbGVhblwiKSB7XG4gICAgICAgIGNvbnN0IHdhcm5pbmcgPSBuZXcgRXJyb3IoYFJlY2VpdmVkIGJvb2xlYW4gJHt2YWx9IHdoZXJlIGEgc3RyaW5nIHdhcyBleHBlY3RlZC5gKTtcbiAgICAgICAgd2FybmluZy5uYW1lID0gXCJXYXJuaW5nXCI7XG4gICAgICAgIGNvbnNvbGUud2Fybih3YXJuaW5nKTtcbiAgICAgICAgcmV0dXJuIFN0cmluZyh2YWwpO1xuICAgIH1cbiAgICByZXR1cm4gdmFsO1xufTtcbmV4cG9ydCBjb25zdCBfdG9Cb29sID0gKHZhbCkgPT4ge1xuICAgIGlmICh2YWwgPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gdmFsO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHZhbCA9PT0gXCJudW1iZXJcIikge1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHZhbCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICBjb25zdCBsb3dlcmNhc2UgPSB2YWwudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgaWYgKHZhbCAhPT0gXCJcIiAmJiBsb3dlcmNhc2UgIT09IFwiZmFsc2VcIiAmJiBsb3dlcmNhc2UgIT09IFwidHJ1ZVwiKSB7XG4gICAgICAgICAgICBjb25zdCB3YXJuaW5nID0gbmV3IEVycm9yKGBSZWNlaXZlZCBzdHJpbmcgXCIke3ZhbH1cIiB3aGVyZSBhIGJvb2xlYW4gd2FzIGV4cGVjdGVkLmApO1xuICAgICAgICAgICAgd2FybmluZy5uYW1lID0gXCJXYXJuaW5nXCI7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4od2FybmluZyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbCAhPT0gXCJcIiAmJiBsb3dlcmNhc2UgIT09IFwiZmFsc2VcIjtcbiAgICB9XG4gICAgcmV0dXJuIHZhbDtcbn07XG5leHBvcnQgY29uc3QgX3RvTnVtID0gKHZhbCkgPT4ge1xuICAgIGlmICh2YWwgPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gdmFsO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHZhbCA9PT0gXCJib29sZWFuXCIpIHtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB2YWwgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgY29uc3QgbnVtID0gTnVtYmVyKHZhbCk7XG4gICAgICAgIGlmIChudW0udG9TdHJpbmcoKSAhPT0gdmFsKSB7XG4gICAgICAgICAgICBjb25zdCB3YXJuaW5nID0gbmV3IEVycm9yKGBSZWNlaXZlZCBzdHJpbmcgXCIke3ZhbH1cIiB3aGVyZSBhIG51bWJlciB3YXMgZXhwZWN0ZWQuYCk7XG4gICAgICAgICAgICB3YXJuaW5nLm5hbWUgPSBcIldhcm5pbmdcIjtcbiAgICAgICAgICAgIGNvbnNvbGUud2Fybih3YXJuaW5nKTtcbiAgICAgICAgICAgIHJldHVybiB2YWw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbDtcbn07XG4iLCAiZXhwb3J0IGNsYXNzIFNlcmRlQ29udGV4dENvbmZpZyB7XG4gICAgc2VyZGVDb250ZXh0O1xuICAgIHNldFNlcmRlQ29udGV4dChzZXJkZUNvbnRleHQpIHtcbiAgICAgICAgdGhpcy5zZXJkZUNvbnRleHQgPSBzZXJkZUNvbnRleHQ7XG4gICAgfVxufVxuIiwgImV4cG9ydCBjbGFzcyBVbmlvblNlcmRlIHtcbiAgICBmcm9tO1xuICAgIHRvO1xuICAgIGtleXM7XG4gICAgY29uc3RydWN0b3IoZnJvbSwgdG8pIHtcbiAgICAgICAgdGhpcy5mcm9tID0gZnJvbTtcbiAgICAgICAgdGhpcy50byA9IHRvO1xuICAgICAgICB0aGlzLmtleXMgPSBuZXcgU2V0KE9iamVjdC5rZXlzKHRoaXMuZnJvbSkuZmlsdGVyKChrKSA9PiBrICE9PSBcIl9fdHlwZVwiKSk7XG4gICAgfVxuICAgIG1hcmsoa2V5KSB7XG4gICAgICAgIHRoaXMua2V5cy5kZWxldGUoa2V5KTtcbiAgICB9XG4gICAgaGFzVW5rbm93bigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMua2V5cy5zaXplID09PSAxICYmIE9iamVjdC5rZXlzKHRoaXMudG8pLmxlbmd0aCA9PT0gMDtcbiAgICB9XG4gICAgd3JpdGVVbmtub3duKCkge1xuICAgICAgICBpZiAodGhpcy5oYXNVbmtub3duKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IGsgPSB0aGlzLmtleXMudmFsdWVzKCkubmV4dCgpLnZhbHVlO1xuICAgICAgICAgICAgY29uc3QgdiA9IHRoaXMuZnJvbVtrXTtcbiAgICAgICAgICAgIHRoaXMudG8uJHVua25vd24gPSBbaywgdl07XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgTnVtZXJpY1ZhbHVlIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zZXJkZVwiO1xuZXhwb3J0IGZ1bmN0aW9uIGpzb25SZXZpdmVyKGtleSwgdmFsdWUsIGNvbnRleHQpIHtcbiAgICBpZiAoY29udGV4dD8uc291cmNlKSB7XG4gICAgICAgIGNvbnN0IG51bWVyaWNTdHJpbmcgPSBjb250ZXh0LnNvdXJjZTtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgaWYgKHZhbHVlID4gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIgfHwgdmFsdWUgPCBOdW1iZXIuTUlOX1NBRkVfSU5URUdFUiB8fCBudW1lcmljU3RyaW5nICE9PSBTdHJpbmcodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNGcmFjdGlvbmFsID0gbnVtZXJpY1N0cmluZy5pbmNsdWRlcyhcIi5cIik7XG4gICAgICAgICAgICAgICAgaWYgKGlzRnJhY3Rpb25hbCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IE51bWVyaWNWYWx1ZShudW1lcmljU3RyaW5nLCBcImJpZ0RlY2ltYWxcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gQmlnSW50KG51bWVyaWNTdHJpbmcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG59XG4iLCAiaW1wb3J0IHsgY29sbGVjdEJvZHkgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyB0b1V0ZjggfSBmcm9tIFwiQHNtaXRoeS91dGlsLXV0ZjhcIjtcbmV4cG9ydCBjb25zdCBjb2xsZWN0Qm9keVN0cmluZyA9IChzdHJlYW1Cb2R5LCBjb250ZXh0KSA9PiBjb2xsZWN0Qm9keShzdHJlYW1Cb2R5LCBjb250ZXh0KS50aGVuKChib2R5KSA9PiAoY29udGV4dD8udXRmOEVuY29kZXIgPz8gdG9VdGY4KShib2R5KSk7XG4iLCAiaW1wb3J0IHsgY29sbGVjdEJvZHlTdHJpbmcgfSBmcm9tIFwiLi4vY29tbW9uXCI7XG5leHBvcnQgY29uc3QgcGFyc2VKc29uQm9keSA9IChzdHJlYW1Cb2R5LCBjb250ZXh0KSA9PiBjb2xsZWN0Qm9keVN0cmluZyhzdHJlYW1Cb2R5LCBjb250ZXh0KS50aGVuKChlbmNvZGVkKSA9PiB7XG4gICAgaWYgKGVuY29kZWQubGVuZ3RoKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShlbmNvZGVkKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgaWYgKGU/Lm5hbWUgPT09IFwiU3ludGF4RXJyb3JcIikge1xuICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCBcIiRyZXNwb25zZUJvZHlUZXh0XCIsIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGVuY29kZWQsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7fTtcbn0pO1xuZXhwb3J0IGNvbnN0IHBhcnNlSnNvbkVycm9yQm9keSA9IGFzeW5jIChlcnJvckJvZHksIGNvbnRleHQpID0+IHtcbiAgICBjb25zdCB2YWx1ZSA9IGF3YWl0IHBhcnNlSnNvbkJvZHkoZXJyb3JCb2R5LCBjb250ZXh0KTtcbiAgICB2YWx1ZS5tZXNzYWdlID0gdmFsdWUubWVzc2FnZSA/PyB2YWx1ZS5NZXNzYWdlO1xuICAgIHJldHVybiB2YWx1ZTtcbn07XG5leHBvcnQgY29uc3QgbG9hZFJlc3RKc29uRXJyb3JDb2RlID0gKG91dHB1dCwgZGF0YSkgPT4ge1xuICAgIGNvbnN0IGZpbmRLZXkgPSAob2JqZWN0LCBrZXkpID0+IE9iamVjdC5rZXlzKG9iamVjdCkuZmluZCgoaykgPT4gay50b0xvd2VyQ2FzZSgpID09PSBrZXkudG9Mb3dlckNhc2UoKSk7XG4gICAgY29uc3Qgc2FuaXRpemVFcnJvckNvZGUgPSAocmF3VmFsdWUpID0+IHtcbiAgICAgICAgbGV0IGNsZWFuVmFsdWUgPSByYXdWYWx1ZTtcbiAgICAgICAgaWYgKHR5cGVvZiBjbGVhblZhbHVlID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICBjbGVhblZhbHVlID0gY2xlYW5WYWx1ZS50b1N0cmluZygpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjbGVhblZhbHVlLmluZGV4T2YoXCIsXCIpID49IDApIHtcbiAgICAgICAgICAgIGNsZWFuVmFsdWUgPSBjbGVhblZhbHVlLnNwbGl0KFwiLFwiKVswXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2xlYW5WYWx1ZS5pbmRleE9mKFwiOlwiKSA+PSAwKSB7XG4gICAgICAgICAgICBjbGVhblZhbHVlID0gY2xlYW5WYWx1ZS5zcGxpdChcIjpcIilbMF07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNsZWFuVmFsdWUuaW5kZXhPZihcIiNcIikgPj0gMCkge1xuICAgICAgICAgICAgY2xlYW5WYWx1ZSA9IGNsZWFuVmFsdWUuc3BsaXQoXCIjXCIpWzFdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjbGVhblZhbHVlO1xuICAgIH07XG4gICAgY29uc3QgaGVhZGVyS2V5ID0gZmluZEtleShvdXRwdXQuaGVhZGVycywgXCJ4LWFtem4tZXJyb3J0eXBlXCIpO1xuICAgIGlmIChoZWFkZXJLZXkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gc2FuaXRpemVFcnJvckNvZGUob3V0cHV0LmhlYWRlcnNbaGVhZGVyS2V5XSk7XG4gICAgfVxuICAgIGlmIChkYXRhICYmIHR5cGVvZiBkYXRhID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgIGNvbnN0IGNvZGVLZXkgPSBmaW5kS2V5KGRhdGEsIFwiY29kZVwiKTtcbiAgICAgICAgaWYgKGNvZGVLZXkgJiYgZGF0YVtjb2RlS2V5XSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gc2FuaXRpemVFcnJvckNvZGUoZGF0YVtjb2RlS2V5XSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGFbXCJfX3R5cGVcIl0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHNhbml0aXplRXJyb3JDb2RlKGRhdGFbXCJfX3R5cGVcIl0pO1xuICAgICAgICB9XG4gICAgfVxufTtcbiIsICJpbXBvcnQgeyBkZXRlcm1pbmVUaW1lc3RhbXBGb3JtYXQgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3Byb3RvY29sc1wiO1xuaW1wb3J0IHsgTm9ybWFsaXplZFNjaGVtYSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2NoZW1hXCI7XG5pbXBvcnQgeyBMYXp5SnNvblN0cmluZywgTnVtZXJpY1ZhbHVlLCBwYXJzZUVwb2NoVGltZXN0YW1wLCBwYXJzZVJmYzMzMzlEYXRlVGltZVdpdGhPZmZzZXQsIHBhcnNlUmZjNzIzMURhdGVUaW1lLCB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2VyZGVcIjtcbmltcG9ydCB7IGZyb21CYXNlNjQgfSBmcm9tIFwiQHNtaXRoeS91dGlsLWJhc2U2NFwiO1xuaW1wb3J0IHsgU2VyZGVDb250ZXh0Q29uZmlnIH0gZnJvbSBcIi4uL0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dFwiO1xuaW1wb3J0IHsgVW5pb25TZXJkZSB9IGZyb20gXCIuLi9VbmlvblNlcmRlXCI7XG5pbXBvcnQgeyBqc29uUmV2aXZlciB9IGZyb20gXCIuL2pzb25SZXZpdmVyXCI7XG5pbXBvcnQgeyBwYXJzZUpzb25Cb2R5IH0gZnJvbSBcIi4vcGFyc2VKc29uQm9keVwiO1xuZXhwb3J0IGNsYXNzIEpzb25TaGFwZURlc2VyaWFsaXplciBleHRlbmRzIFNlcmRlQ29udGV4dENvbmZpZyB7XG4gICAgc2V0dGluZ3M7XG4gICAgY29uc3RydWN0b3Ioc2V0dGluZ3MpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5zZXR0aW5ncyA9IHNldHRpbmdzO1xuICAgIH1cbiAgICBhc3luYyByZWFkKHNjaGVtYSwgZGF0YSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVhZChzY2hlbWEsIHR5cGVvZiBkYXRhID09PSBcInN0cmluZ1wiID8gSlNPTi5wYXJzZShkYXRhLCBqc29uUmV2aXZlcikgOiBhd2FpdCBwYXJzZUpzb25Cb2R5KGRhdGEsIHRoaXMuc2VyZGVDb250ZXh0KSk7XG4gICAgfVxuICAgIHJlYWRPYmplY3Qoc2NoZW1hLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZWFkKHNjaGVtYSwgZGF0YSk7XG4gICAgfVxuICAgIF9yZWFkKHNjaGVtYSwgdmFsdWUpIHtcbiAgICAgICAgY29uc3QgaXNPYmplY3QgPSB2YWx1ZSAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCI7XG4gICAgICAgIGNvbnN0IG5zID0gTm9ybWFsaXplZFNjaGVtYS5vZihzY2hlbWEpO1xuICAgICAgICBpZiAoaXNPYmplY3QpIHtcbiAgICAgICAgICAgIGlmIChucy5pc1N0cnVjdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVjb3JkID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgY29uc3QgdW5pb24gPSBucy5pc1VuaW9uU2NoZW1hKCk7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3V0ID0ge307XG4gICAgICAgICAgICAgICAgbGV0IG5hbWVNYXAgPSB2b2lkIDA7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBqc29uTmFtZSB9ID0gdGhpcy5zZXR0aW5ncztcbiAgICAgICAgICAgICAgICBpZiAoanNvbk5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZU1hcCA9IHt9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBsZXQgdW5pb25TZXJkZTtcbiAgICAgICAgICAgICAgICBpZiAodW5pb24pIHtcbiAgICAgICAgICAgICAgICAgICAgdW5pb25TZXJkZSA9IG5ldyBVbmlvblNlcmRlKHJlY29yZCwgb3V0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBbbWVtYmVyTmFtZSwgbWVtYmVyU2NoZW1hXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBmcm9tS2V5ID0gbWVtYmVyTmFtZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGpzb25OYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmcm9tS2V5ID0gbWVtYmVyU2NoZW1hLmdldE1lcmdlZFRyYWl0cygpLmpzb25OYW1lID8/IGZyb21LZXk7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lTWFwW2Zyb21LZXldID0gbWVtYmVyTmFtZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAodW5pb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHVuaW9uU2VyZGUubWFyayhmcm9tS2V5KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAocmVjb3JkW2Zyb21LZXldICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG91dFttZW1iZXJOYW1lXSA9IHRoaXMuX3JlYWQobWVtYmVyU2NoZW1hLCByZWNvcmRbZnJvbUtleV0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh1bmlvbikge1xuICAgICAgICAgICAgICAgICAgICB1bmlvblNlcmRlLndyaXRlVW5rbm93bigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmICh0eXBlb2YgcmVjb3JkLl9fdHlwZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IFtrLCB2XSBvZiBPYmplY3QuZW50cmllcyhyZWNvcmQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0ID0ganNvbk5hbWUgPyBuYW1lTWFwW2tdID8/IGsgOiBrO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEodCBpbiBvdXQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0W3RdID0gdjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gb3V0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpICYmIG5zLmlzTGlzdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbGlzdE1lbWJlciA9IG5zLmdldFZhbHVlU2NoZW1hKCk7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3V0ID0gW107XG4gICAgICAgICAgICAgICAgY29uc3Qgc3BhcnNlID0gISFucy5nZXRNZXJnZWRUcmFpdHMoKS5zcGFyc2U7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzcGFyc2UgfHwgaXRlbSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvdXQucHVzaCh0aGlzLl9yZWFkKGxpc3RNZW1iZXIsIGl0ZW0pKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gb3V0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG5zLmlzTWFwU2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBtYXBNZW1iZXIgPSBucy5nZXRWYWx1ZVNjaGVtYSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IG91dCA9IHt9O1xuICAgICAgICAgICAgICAgIGNvbnN0IHNwYXJzZSA9ICEhbnMuZ2V0TWVyZ2VkVHJhaXRzKCkuc3BhcnNlO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgW19rLCBfdl0gb2YgT2JqZWN0LmVudHJpZXModmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzcGFyc2UgfHwgX3YgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3V0W19rXSA9IHRoaXMuX3JlYWQobWFwTWVtYmVyLCBfdik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIG91dDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAobnMuaXNCbG9iU2NoZW1hKCkgJiYgdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICByZXR1cm4gZnJvbUJhc2U2NCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbWVkaWFUeXBlID0gbnMuZ2V0TWVyZ2VkVHJhaXRzKCkubWVkaWFUeXBlO1xuICAgICAgICBpZiAobnMuaXNTdHJpbmdTY2hlbWEoKSAmJiB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgJiYgbWVkaWFUeXBlKSB7XG4gICAgICAgICAgICBjb25zdCBpc0pzb24gPSBtZWRpYVR5cGUgPT09IFwiYXBwbGljYXRpb24vanNvblwiIHx8IG1lZGlhVHlwZS5lbmRzV2l0aChcIitqc29uXCIpO1xuICAgICAgICAgICAgaWYgKGlzSnNvbikge1xuICAgICAgICAgICAgICAgIHJldHVybiBMYXp5SnNvblN0cmluZy5mcm9tKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobnMuaXNUaW1lc3RhbXBTY2hlbWEoKSAmJiB2YWx1ZSAhPSBudWxsKSB7XG4gICAgICAgICAgICBjb25zdCBmb3JtYXQgPSBkZXRlcm1pbmVUaW1lc3RhbXBGb3JtYXQobnMsIHRoaXMuc2V0dGluZ3MpO1xuICAgICAgICAgICAgc3dpdGNoIChmb3JtYXQpIHtcbiAgICAgICAgICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZVJmYzMzMzlEYXRlVGltZVdpdGhPZmZzZXQodmFsdWUpO1xuICAgICAgICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlUmZjNzIzMURhdGVUaW1lKHZhbHVlKTtcbiAgICAgICAgICAgICAgICBjYXNlIDc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZUVwb2NoVGltZXN0YW1wKHZhbHVlKTtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oXCJNaXNzaW5nIHRpbWVzdGFtcCBmb3JtYXQsIHBhcnNpbmcgdmFsdWUgd2l0aCBEYXRlIGNvbnN0cnVjdG9yOlwiLCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZSh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzQmlnSW50ZWdlclNjaGVtYSgpICYmICh0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCIgfHwgdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiKSkge1xuICAgICAgICAgICAgcmV0dXJuIEJpZ0ludCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzQmlnRGVjaW1hbFNjaGVtYSgpICYmIHZhbHVlICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgTnVtZXJpY1ZhbHVlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgdW50eXBlZCA9IHZhbHVlO1xuICAgICAgICAgICAgaWYgKHVudHlwZWQudHlwZSA9PT0gXCJiaWdEZWNpbWFsXCIgJiYgXCJzdHJpbmdcIiBpbiB1bnR5cGVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBOdW1lcmljVmFsdWUodW50eXBlZC5zdHJpbmcsIHVudHlwZWQudHlwZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbmV3IE51bWVyaWNWYWx1ZShTdHJpbmcodmFsdWUpLCBcImJpZ0RlY2ltYWxcIik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzTnVtZXJpY1NjaGVtYSgpICYmIHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgc3dpdGNoICh2YWx1ZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgXCJJbmZpbml0eVwiOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gSW5maW5pdHk7XG4gICAgICAgICAgICAgICAgY2FzZSBcIi1JbmZpbml0eVwiOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gLUluZmluaXR5O1xuICAgICAgICAgICAgICAgIGNhc2UgXCJOYU5cIjpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5hTjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobnMuaXNEb2N1bWVudFNjaGVtYSgpKSB7XG4gICAgICAgICAgICBpZiAoaXNPYmplY3QpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBvdXQgPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IFtdIDoge307XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBbaywgdl0gb2YgT2JqZWN0LmVudHJpZXModmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2IGluc3RhbmNlb2YgTnVtZXJpY1ZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvdXRba10gPSB2O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3V0W2tdID0gdGhpcy5fcmVhZChucywgdik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIG91dDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBzdHJ1Y3R1cmVkQ2xvbmUodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgTnVtZXJpY1ZhbHVlIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zZXJkZVwiO1xuY29uc3QgTlVNRVJJQ19DT05UUk9MX0NIQVIgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKDkyNSk7XG5leHBvcnQgY2xhc3MgSnNvblJlcGxhY2VyIHtcbiAgICB2YWx1ZXMgPSBuZXcgTWFwKCk7XG4gICAgY291bnRlciA9IDA7XG4gICAgc3RhZ2UgPSAwO1xuICAgIGNyZWF0ZVJlcGxhY2VyKCkge1xuICAgICAgICBpZiAodGhpcy5zdGFnZSA9PT0gMSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSBKc29uUmVwbGFjZXIgYWxyZWFkeSBjcmVhdGVkLlwiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5zdGFnZSA9PT0gMikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSBKc29uUmVwbGFjZXIgZXhoYXVzdGVkLlwiKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnN0YWdlID0gMTtcbiAgICAgICAgcmV0dXJuIChrZXksIHZhbHVlKSA9PiB7XG4gICAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBOdW1lcmljVmFsdWUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB2ID0gYCR7TlVNRVJJQ19DT05UUk9MX0NIQVIgKyBcIm52XCIgKyB0aGlzLmNvdW50ZXIrK31fYCArIHZhbHVlLnN0cmluZztcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlcy5zZXQoYFwiJHt2fVwiYCwgdmFsdWUuc3RyaW5nKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwiYmlnaW50XCIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzID0gdmFsdWUudG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICBjb25zdCB2ID0gYCR7TlVNRVJJQ19DT05UUk9MX0NIQVIgKyBcImJcIiArIHRoaXMuY291bnRlcisrfV9gICsgcztcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlcy5zZXQoYFwiJHt2fVwiYCwgcyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHY7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH07XG4gICAgfVxuICAgIHJlcGxhY2VJbkpzb24oanNvbikge1xuICAgICAgICBpZiAodGhpcy5zdGFnZSA9PT0gMCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSBKc29uUmVwbGFjZXIgbm90IGNyZWF0ZWQgeWV0LlwiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5zdGFnZSA9PT0gMikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSBKc29uUmVwbGFjZXIgZXhoYXVzdGVkLlwiKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnN0YWdlID0gMjtcbiAgICAgICAgaWYgKHRoaXMuY291bnRlciA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIGpzb247XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgdGhpcy52YWx1ZXMpIHtcbiAgICAgICAgICAgIGpzb24gPSBqc29uLnJlcGxhY2Uoa2V5LCB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGpzb247XG4gICAgfVxufVxuIiwgImltcG9ydCB7IGRldGVybWluZVRpbWVzdGFtcEZvcm1hdCB9IGZyb20gXCJAc21pdGh5L2NvcmUvcHJvdG9jb2xzXCI7XG5pbXBvcnQgeyBOb3JtYWxpemVkU2NoZW1hIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IGRhdGVUb1V0Y1N0cmluZywgZ2VuZXJhdGVJZGVtcG90ZW5jeVRva2VuLCBMYXp5SnNvblN0cmluZywgTnVtZXJpY1ZhbHVlIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zZXJkZVwiO1xuaW1wb3J0IHsgdG9CYXNlNjQgfSBmcm9tIFwiQHNtaXRoeS91dGlsLWJhc2U2NFwiO1xuaW1wb3J0IHsgU2VyZGVDb250ZXh0Q29uZmlnIH0gZnJvbSBcIi4uL0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dFwiO1xuaW1wb3J0IHsgSnNvblJlcGxhY2VyIH0gZnJvbSBcIi4vanNvblJlcGxhY2VyXCI7XG5leHBvcnQgY2xhc3MgSnNvblNoYXBlU2VyaWFsaXplciBleHRlbmRzIFNlcmRlQ29udGV4dENvbmZpZyB7XG4gICAgc2V0dGluZ3M7XG4gICAgYnVmZmVyO1xuICAgIHVzZVJlcGxhY2VyID0gZmFsc2U7XG4gICAgcm9vdFNjaGVtYTtcbiAgICBjb25zdHJ1Y3RvcihzZXR0aW5ncykge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnNldHRpbmdzID0gc2V0dGluZ3M7XG4gICAgfVxuICAgIHdyaXRlKHNjaGVtYSwgdmFsdWUpIHtcbiAgICAgICAgdGhpcy5yb290U2NoZW1hID0gTm9ybWFsaXplZFNjaGVtYS5vZihzY2hlbWEpO1xuICAgICAgICB0aGlzLmJ1ZmZlciA9IHRoaXMuX3dyaXRlKHRoaXMucm9vdFNjaGVtYSwgdmFsdWUpO1xuICAgIH1cbiAgICB3cml0ZURpc2NyaW1pbmF0ZWREb2N1bWVudChzY2hlbWEsIHZhbHVlKSB7XG4gICAgICAgIHRoaXMud3JpdGUoc2NoZW1hLCB2YWx1ZSk7XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5idWZmZXIgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgIHRoaXMuYnVmZmVyLl9fdHlwZSA9IE5vcm1hbGl6ZWRTY2hlbWEub2Yoc2NoZW1hKS5nZXROYW1lKHRydWUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGZsdXNoKCkge1xuICAgICAgICBjb25zdCB7IHJvb3RTY2hlbWEsIHVzZVJlcGxhY2VyIH0gPSB0aGlzO1xuICAgICAgICB0aGlzLnJvb3RTY2hlbWEgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMudXNlUmVwbGFjZXIgPSBmYWxzZTtcbiAgICAgICAgaWYgKHJvb3RTY2hlbWE/LmlzU3RydWN0U2NoZW1hKCkgfHwgcm9vdFNjaGVtYT8uaXNEb2N1bWVudFNjaGVtYSgpKSB7XG4gICAgICAgICAgICBpZiAoIXVzZVJlcGxhY2VyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHRoaXMuYnVmZmVyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHJlcGxhY2VyID0gbmV3IEpzb25SZXBsYWNlcigpO1xuICAgICAgICAgICAgcmV0dXJuIHJlcGxhY2VyLnJlcGxhY2VJbkpzb24oSlNPTi5zdHJpbmdpZnkodGhpcy5idWZmZXIsIHJlcGxhY2VyLmNyZWF0ZVJlcGxhY2VyKCksIDApKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5idWZmZXI7XG4gICAgfVxuICAgIF93cml0ZShzY2hlbWEsIHZhbHVlLCBjb250YWluZXIpIHtcbiAgICAgICAgY29uc3QgaXNPYmplY3QgPSB2YWx1ZSAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCI7XG4gICAgICAgIGNvbnN0IG5zID0gTm9ybWFsaXplZFNjaGVtYS5vZihzY2hlbWEpO1xuICAgICAgICBpZiAoaXNPYmplY3QpIHtcbiAgICAgICAgICAgIGlmIChucy5pc1N0cnVjdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVjb3JkID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3V0ID0ge307XG4gICAgICAgICAgICAgICAgY29uc3QgeyBqc29uTmFtZSB9ID0gdGhpcy5zZXR0aW5ncztcbiAgICAgICAgICAgICAgICBsZXQgbmFtZU1hcCA9IHZvaWQgMDtcbiAgICAgICAgICAgICAgICBpZiAoanNvbk5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZU1hcCA9IHt9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IFttZW1iZXJOYW1lLCBtZW1iZXJTY2hlbWFdIG9mIG5zLnN0cnVjdEl0ZXJhdG9yKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VyaWFsaXphYmxlVmFsdWUgPSB0aGlzLl93cml0ZShtZW1iZXJTY2hlbWEsIHJlY29yZFttZW1iZXJOYW1lXSwgbnMpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoc2VyaWFsaXphYmxlVmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRhcmdldEtleSA9IG1lbWJlck5hbWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoanNvbk5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRLZXkgPSBtZW1iZXJTY2hlbWEuZ2V0TWVyZ2VkVHJhaXRzKCkuanNvbk5hbWUgPz8gbWVtYmVyTmFtZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lTWFwW21lbWJlck5hbWVdID0gdGFyZ2V0S2V5O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgb3V0W3RhcmdldEtleV0gPSBzZXJpYWxpemFibGVWYWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAobnMuaXNVbmlvblNjaGVtYSgpICYmIE9iamVjdC5rZXlzKG91dCkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgJHVua25vd24gfSA9IHJlY29yZDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoJHVua25vd24pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBbaywgdl0gPSAkdW5rbm93bjtcbiAgICAgICAgICAgICAgICAgICAgICAgIG91dFtrXSA9IHRoaXMuX3dyaXRlKDE1LCB2KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmICh0eXBlb2YgcmVjb3JkLl9fdHlwZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IFtrLCB2XSBvZiBPYmplY3QuZW50cmllcyhyZWNvcmQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXRLZXkgPSBqc29uTmFtZSA/IG5hbWVNYXBba10gPz8gayA6IGs7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoISh0YXJnZXRLZXkgaW4gb3V0KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dFt0YXJnZXRLZXldID0gdGhpcy5fd3JpdGUoMTUsIHYpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBvdXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgbnMuaXNMaXN0U2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBsaXN0TWVtYmVyID0gbnMuZ2V0VmFsdWVTY2hlbWEoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBvdXQgPSBbXTtcbiAgICAgICAgICAgICAgICBjb25zdCBzcGFyc2UgPSAhIW5zLmdldE1lcmdlZFRyYWl0cygpLnNwYXJzZTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNwYXJzZSB8fCBpdGVtICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG91dC5wdXNoKHRoaXMuX3dyaXRlKGxpc3RNZW1iZXIsIGl0ZW0pKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gb3V0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG5zLmlzTWFwU2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBtYXBNZW1iZXIgPSBucy5nZXRWYWx1ZVNjaGVtYSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IG91dCA9IHt9O1xuICAgICAgICAgICAgICAgIGNvbnN0IHNwYXJzZSA9ICEhbnMuZ2V0TWVyZ2VkVHJhaXRzKCkuc3BhcnNlO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgW19rLCBfdl0gb2YgT2JqZWN0LmVudHJpZXModmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzcGFyc2UgfHwgX3YgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3V0W19rXSA9IHRoaXMuX3dyaXRlKG1hcE1lbWJlciwgX3YpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBvdXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBVaW50OEFycmF5ICYmIChucy5pc0Jsb2JTY2hlbWEoKSB8fCBucy5pc0RvY3VtZW50U2NoZW1hKCkpKSB7XG4gICAgICAgICAgICAgICAgaWYgKG5zID09PSB0aGlzLnJvb3RTY2hlbWEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gKHRoaXMuc2VyZGVDb250ZXh0Py5iYXNlNjRFbmNvZGVyID8/IHRvQmFzZTY0KSh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlICYmIChucy5pc1RpbWVzdGFtcFNjaGVtYSgpIHx8IG5zLmlzRG9jdW1lbnRTY2hlbWEoKSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmb3JtYXQgPSBkZXRlcm1pbmVUaW1lc3RhbXBGb3JtYXQobnMsIHRoaXMuc2V0dGluZ3MpO1xuICAgICAgICAgICAgICAgIHN3aXRjaCAoZm9ybWF0KSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZS50b0lTT1N0cmluZygpLnJlcGxhY2UoXCIuMDAwWlwiLCBcIlpcIik7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBkYXRlVG9VdGNTdHJpbmcodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDc6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUuZ2V0VGltZSgpIC8gMTAwMDtcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihcIk1pc3NpbmcgdGltZXN0YW1wIGZvcm1hdCwgdXNpbmcgZXBvY2ggc2Vjb25kc1wiLCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUuZ2V0VGltZSgpIC8gMTAwMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBOdW1lcmljVmFsdWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVzZVJlcGxhY2VyID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodmFsdWUgPT09IG51bGwgJiYgY29udGFpbmVyPy5pc1N0cnVjdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICByZXR1cm4gdm9pZCAwO1xuICAgICAgICB9XG4gICAgICAgIGlmIChucy5pc1N0cmluZ1NjaGVtYSgpKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcInVuZGVmaW5lZFwiICYmIG5zLmlzSWRlbXBvdGVuY3lUb2tlbigpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGdlbmVyYXRlSWRlbXBvdGVuY3lUb2tlbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgbWVkaWFUeXBlID0gbnMuZ2V0TWVyZ2VkVHJhaXRzKCkubWVkaWFUeXBlO1xuICAgICAgICAgICAgaWYgKHZhbHVlICE9IG51bGwgJiYgbWVkaWFUeXBlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNKc29uID0gbWVkaWFUeXBlID09PSBcImFwcGxpY2F0aW9uL2pzb25cIiB8fCBtZWRpYVR5cGUuZW5kc1dpdGgoXCIranNvblwiKTtcbiAgICAgICAgICAgICAgICBpZiAoaXNKc29uKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBMYXp5SnNvblN0cmluZy5mcm9tKHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJudW1iZXJcIiAmJiBucy5pc051bWVyaWNTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKE1hdGguYWJzKHZhbHVlKSA9PT0gSW5maW5pdHkgfHwgaXNOYU4odmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiAmJiBucy5pc0Jsb2JTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKG5zID09PSB0aGlzLnJvb3RTY2hlbWEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gKHRoaXMuc2VyZGVDb250ZXh0Py5iYXNlNjRFbmNvZGVyID8/IHRvQmFzZTY0KSh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJiaWdpbnRcIikge1xuICAgICAgICAgICAgdGhpcy51c2VSZXBsYWNlciA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzRG9jdW1lbnRTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKGlzT2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3V0ID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyBbXSA6IHt9O1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodiBpbnN0YW5jZW9mIE51bWVyaWNWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51c2VSZXBsYWNlciA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBvdXRba10gPSB2O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3V0W2tdID0gdGhpcy5fd3JpdGUobnMsIHYpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBvdXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3RydWN0dXJlZENsb25lKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IFNlcmRlQ29udGV4dENvbmZpZyB9IGZyb20gXCIuLi9Db25maWd1cmFibGVTZXJkZUNvbnRleHRcIjtcbmltcG9ydCB7IEpzb25TaGFwZURlc2VyaWFsaXplciB9IGZyb20gXCIuL0pzb25TaGFwZURlc2VyaWFsaXplclwiO1xuaW1wb3J0IHsgSnNvblNoYXBlU2VyaWFsaXplciB9IGZyb20gXCIuL0pzb25TaGFwZVNlcmlhbGl6ZXJcIjtcbmV4cG9ydCBjbGFzcyBKc29uQ29kZWMgZXh0ZW5kcyBTZXJkZUNvbnRleHRDb25maWcge1xuICAgIHNldHRpbmdzO1xuICAgIGNvbnN0cnVjdG9yKHNldHRpbmdzKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuc2V0dGluZ3MgPSBzZXR0aW5ncztcbiAgICB9XG4gICAgY3JlYXRlU2VyaWFsaXplcigpIHtcbiAgICAgICAgY29uc3Qgc2VyaWFsaXplciA9IG5ldyBKc29uU2hhcGVTZXJpYWxpemVyKHRoaXMuc2V0dGluZ3MpO1xuICAgICAgICBzZXJpYWxpemVyLnNldFNlcmRlQ29udGV4dCh0aGlzLnNlcmRlQ29udGV4dCk7XG4gICAgICAgIHJldHVybiBzZXJpYWxpemVyO1xuICAgIH1cbiAgICBjcmVhdGVEZXNlcmlhbGl6ZXIoKSB7XG4gICAgICAgIGNvbnN0IGRlc2VyaWFsaXplciA9IG5ldyBKc29uU2hhcGVEZXNlcmlhbGl6ZXIodGhpcy5zZXR0aW5ncyk7XG4gICAgICAgIGRlc2VyaWFsaXplci5zZXRTZXJkZUNvbnRleHQodGhpcy5zZXJkZUNvbnRleHQpO1xuICAgICAgICByZXR1cm4gZGVzZXJpYWxpemVyO1xuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBScGNQcm90b2NvbCB9IGZyb20gXCJAc21pdGh5L2NvcmUvcHJvdG9jb2xzXCI7XG5pbXBvcnQgeyBkZXJlZiwgTm9ybWFsaXplZFNjaGVtYSwgVHlwZVJlZ2lzdHJ5IH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IFByb3RvY29sTGliIH0gZnJvbSBcIi4uL1Byb3RvY29sTGliXCI7XG5pbXBvcnQgeyBKc29uQ29kZWMgfSBmcm9tIFwiLi9Kc29uQ29kZWNcIjtcbmltcG9ydCB7IGxvYWRSZXN0SnNvbkVycm9yQ29kZSB9IGZyb20gXCIuL3BhcnNlSnNvbkJvZHlcIjtcbmV4cG9ydCBjbGFzcyBBd3NKc29uUnBjUHJvdG9jb2wgZXh0ZW5kcyBScGNQcm90b2NvbCB7XG4gICAgc2VyaWFsaXplcjtcbiAgICBkZXNlcmlhbGl6ZXI7XG4gICAgc2VydmljZVRhcmdldDtcbiAgICBjb2RlYztcbiAgICBtaXhpbjtcbiAgICBhd3NRdWVyeUNvbXBhdGlibGU7XG4gICAgY29uc3RydWN0b3IoeyBkZWZhdWx0TmFtZXNwYWNlLCBzZXJ2aWNlVGFyZ2V0LCBhd3NRdWVyeUNvbXBhdGlibGUsIGpzb25Db2RlYywgfSkge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBkZWZhdWx0TmFtZXNwYWNlLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zZXJ2aWNlVGFyZ2V0ID0gc2VydmljZVRhcmdldDtcbiAgICAgICAgdGhpcy5jb2RlYyA9XG4gICAgICAgICAgICBqc29uQ29kZWMgPz9cbiAgICAgICAgICAgICAgICBuZXcgSnNvbkNvZGVjKHtcbiAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wRm9ybWF0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB1c2VUcmFpdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IDcsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGpzb25OYW1lOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zZXJpYWxpemVyID0gdGhpcy5jb2RlYy5jcmVhdGVTZXJpYWxpemVyKCk7XG4gICAgICAgIHRoaXMuZGVzZXJpYWxpemVyID0gdGhpcy5jb2RlYy5jcmVhdGVEZXNlcmlhbGl6ZXIoKTtcbiAgICAgICAgdGhpcy5hd3NRdWVyeUNvbXBhdGlibGUgPSAhIWF3c1F1ZXJ5Q29tcGF0aWJsZTtcbiAgICAgICAgdGhpcy5taXhpbiA9IG5ldyBQcm90b2NvbExpYih0aGlzLmF3c1F1ZXJ5Q29tcGF0aWJsZSk7XG4gICAgfVxuICAgIGFzeW5jIHNlcmlhbGl6ZVJlcXVlc3Qob3BlcmF0aW9uU2NoZW1hLCBpbnB1dCwgY29udGV4dCkge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gYXdhaXQgc3VwZXIuc2VyaWFsaXplUmVxdWVzdChvcGVyYXRpb25TY2hlbWEsIGlucHV0LCBjb250ZXh0KTtcbiAgICAgICAgaWYgKCFyZXF1ZXN0LnBhdGguZW5kc1dpdGgoXCIvXCIpKSB7XG4gICAgICAgICAgICByZXF1ZXN0LnBhdGggKz0gXCIvXCI7XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbihyZXF1ZXN0LmhlYWRlcnMsIHtcbiAgICAgICAgICAgIFwiY29udGVudC10eXBlXCI6IGBhcHBsaWNhdGlvbi94LWFtei1qc29uLSR7dGhpcy5nZXRKc29uUnBjVmVyc2lvbigpfWAsXG4gICAgICAgICAgICBcIngtYW16LXRhcmdldFwiOiBgJHt0aGlzLnNlcnZpY2VUYXJnZXR9LiR7b3BlcmF0aW9uU2NoZW1hLm5hbWV9YCxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmICh0aGlzLmF3c1F1ZXJ5Q29tcGF0aWJsZSkge1xuICAgICAgICAgICAgcmVxdWVzdC5oZWFkZXJzW1wieC1hbXpuLXF1ZXJ5LW1vZGVcIl0gPSBcInRydWVcIjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGVyZWYob3BlcmF0aW9uU2NoZW1hLmlucHV0KSA9PT0gXCJ1bml0XCIgfHwgIXJlcXVlc3QuYm9keSkge1xuICAgICAgICAgICAgcmVxdWVzdC5ib2R5ID0gXCJ7fVwiO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXF1ZXN0O1xuICAgIH1cbiAgICBnZXRQYXlsb2FkQ29kZWMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvZGVjO1xuICAgIH1cbiAgICBhc3luYyBoYW5kbGVFcnJvcihvcGVyYXRpb25TY2hlbWEsIGNvbnRleHQsIHJlc3BvbnNlLCBkYXRhT2JqZWN0LCBtZXRhZGF0YSkge1xuICAgICAgICBpZiAodGhpcy5hd3NRdWVyeUNvbXBhdGlibGUpIHtcbiAgICAgICAgICAgIHRoaXMubWl4aW4uc2V0UXVlcnlDb21wYXRFcnJvcihkYXRhT2JqZWN0LCByZXNwb25zZSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZXJyb3JJZGVudGlmaWVyID0gbG9hZFJlc3RKc29uRXJyb3JDb2RlKHJlc3BvbnNlLCBkYXRhT2JqZWN0KSA/PyBcIlVua25vd25cIjtcbiAgICAgICAgY29uc3QgeyBlcnJvclNjaGVtYSwgZXJyb3JNZXRhZGF0YSB9ID0gYXdhaXQgdGhpcy5taXhpbi5nZXRFcnJvclNjaGVtYU9yVGhyb3dCYXNlRXhjZXB0aW9uKGVycm9ySWRlbnRpZmllciwgdGhpcy5vcHRpb25zLmRlZmF1bHROYW1lc3BhY2UsIHJlc3BvbnNlLCBkYXRhT2JqZWN0LCBtZXRhZGF0YSwgdGhpcy5hd3NRdWVyeUNvbXBhdGlibGUgPyB0aGlzLm1peGluLmZpbmRRdWVyeUNvbXBhdGlibGVFcnJvciA6IHVuZGVmaW5lZCk7XG4gICAgICAgIGNvbnN0IG5zID0gTm9ybWFsaXplZFNjaGVtYS5vZihlcnJvclNjaGVtYSk7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBkYXRhT2JqZWN0Lm1lc3NhZ2UgPz8gZGF0YU9iamVjdC5NZXNzYWdlID8/IFwiVW5rbm93blwiO1xuICAgICAgICBjb25zdCBFcnJvckN0b3IgPSBUeXBlUmVnaXN0cnkuZm9yKGVycm9yU2NoZW1hWzFdKS5nZXRFcnJvckN0b3IoZXJyb3JTY2hlbWEpID8/IEVycm9yO1xuICAgICAgICBjb25zdCBleGNlcHRpb24gPSBuZXcgRXJyb3JDdG9yKG1lc3NhZ2UpO1xuICAgICAgICBjb25zdCBvdXRwdXQgPSB7fTtcbiAgICAgICAgZm9yIChjb25zdCBbbmFtZSwgbWVtYmVyXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICBpZiAoZGF0YU9iamVjdFtuYW1lXSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgb3V0cHV0W25hbWVdID0gdGhpcy5jb2RlYy5jcmVhdGVEZXNlcmlhbGl6ZXIoKS5yZWFkT2JqZWN0KG1lbWJlciwgZGF0YU9iamVjdFtuYW1lXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuYXdzUXVlcnlDb21wYXRpYmxlKSB7XG4gICAgICAgICAgICB0aGlzLm1peGluLnF1ZXJ5Q29tcGF0T3V0cHV0KGRhdGFPYmplY3QsIG91dHB1dCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgdGhpcy5taXhpbi5kZWNvcmF0ZVNlcnZpY2VFeGNlcHRpb24oT2JqZWN0LmFzc2lnbihleGNlcHRpb24sIGVycm9yTWV0YWRhdGEsIHtcbiAgICAgICAgICAgICRmYXVsdDogbnMuZ2V0TWVyZ2VkVHJhaXRzKCkuZXJyb3IsXG4gICAgICAgICAgICBtZXNzYWdlLFxuICAgICAgICB9LCBvdXRwdXQpLCBkYXRhT2JqZWN0KTtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgQXdzSnNvblJwY1Byb3RvY29sIH0gZnJvbSBcIi4vQXdzSnNvblJwY1Byb3RvY29sXCI7XG5leHBvcnQgY2xhc3MgQXdzSnNvbjFfMFByb3RvY29sIGV4dGVuZHMgQXdzSnNvblJwY1Byb3RvY29sIHtcbiAgICBjb25zdHJ1Y3Rvcih7IGRlZmF1bHROYW1lc3BhY2UsIHNlcnZpY2VUYXJnZXQsIGF3c1F1ZXJ5Q29tcGF0aWJsZSwganNvbkNvZGVjLCB9KSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIGRlZmF1bHROYW1lc3BhY2UsXG4gICAgICAgICAgICBzZXJ2aWNlVGFyZ2V0LFxuICAgICAgICAgICAgYXdzUXVlcnlDb21wYXRpYmxlLFxuICAgICAgICAgICAganNvbkNvZGVjLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgZ2V0U2hhcGVJZCgpIHtcbiAgICAgICAgcmV0dXJuIFwiYXdzLnByb3RvY29scyNhd3NKc29uMV8wXCI7XG4gICAgfVxuICAgIGdldEpzb25ScGNWZXJzaW9uKCkge1xuICAgICAgICByZXR1cm4gXCIxLjBcIjtcbiAgICB9XG4gICAgZ2V0RGVmYXVsdENvbnRlbnRUeXBlKCkge1xuICAgICAgICByZXR1cm4gXCJhcHBsaWNhdGlvbi94LWFtei1qc29uLTEuMFwiO1xuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBBd3NKc29uUnBjUHJvdG9jb2wgfSBmcm9tIFwiLi9Bd3NKc29uUnBjUHJvdG9jb2xcIjtcbmV4cG9ydCBjbGFzcyBBd3NKc29uMV8xUHJvdG9jb2wgZXh0ZW5kcyBBd3NKc29uUnBjUHJvdG9jb2wge1xuICAgIGNvbnN0cnVjdG9yKHsgZGVmYXVsdE5hbWVzcGFjZSwgc2VydmljZVRhcmdldCwgYXdzUXVlcnlDb21wYXRpYmxlLCBqc29uQ29kZWMsIH0pIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgZGVmYXVsdE5hbWVzcGFjZSxcbiAgICAgICAgICAgIHNlcnZpY2VUYXJnZXQsXG4gICAgICAgICAgICBhd3NRdWVyeUNvbXBhdGlibGUsXG4gICAgICAgICAgICBqc29uQ29kZWMsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBnZXRTaGFwZUlkKCkge1xuICAgICAgICByZXR1cm4gXCJhd3MucHJvdG9jb2xzI2F3c0pzb24xXzFcIjtcbiAgICB9XG4gICAgZ2V0SnNvblJwY1ZlcnNpb24oKSB7XG4gICAgICAgIHJldHVybiBcIjEuMVwiO1xuICAgIH1cbiAgICBnZXREZWZhdWx0Q29udGVudFR5cGUoKSB7XG4gICAgICAgIHJldHVybiBcImFwcGxpY2F0aW9uL3gtYW16LWpzb24tMS4xXCI7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IEh0dHBCaW5kaW5nUHJvdG9jb2wsIEh0dHBJbnRlcmNlcHRpbmdTaGFwZURlc2VyaWFsaXplciwgSHR0cEludGVyY2VwdGluZ1NoYXBlU2VyaWFsaXplciwgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3Byb3RvY29sc1wiO1xuaW1wb3J0IHsgTm9ybWFsaXplZFNjaGVtYSwgVHlwZVJlZ2lzdHJ5IH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IFByb3RvY29sTGliIH0gZnJvbSBcIi4uL1Byb3RvY29sTGliXCI7XG5pbXBvcnQgeyBKc29uQ29kZWMgfSBmcm9tIFwiLi9Kc29uQ29kZWNcIjtcbmltcG9ydCB7IGxvYWRSZXN0SnNvbkVycm9yQ29kZSB9IGZyb20gXCIuL3BhcnNlSnNvbkJvZHlcIjtcbmV4cG9ydCBjbGFzcyBBd3NSZXN0SnNvblByb3RvY29sIGV4dGVuZHMgSHR0cEJpbmRpbmdQcm90b2NvbCB7XG4gICAgc2VyaWFsaXplcjtcbiAgICBkZXNlcmlhbGl6ZXI7XG4gICAgY29kZWM7XG4gICAgbWl4aW4gPSBuZXcgUHJvdG9jb2xMaWIoKTtcbiAgICBjb25zdHJ1Y3Rvcih7IGRlZmF1bHROYW1lc3BhY2UgfSkge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBkZWZhdWx0TmFtZXNwYWNlLFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3Qgc2V0dGluZ3MgPSB7XG4gICAgICAgICAgICB0aW1lc3RhbXBGb3JtYXQ6IHtcbiAgICAgICAgICAgICAgICB1c2VUcmFpdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiA3LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGh0dHBCaW5kaW5nczogdHJ1ZSxcbiAgICAgICAgICAgIGpzb25OYW1lOiB0cnVlLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmNvZGVjID0gbmV3IEpzb25Db2RlYyhzZXR0aW5ncyk7XG4gICAgICAgIHRoaXMuc2VyaWFsaXplciA9IG5ldyBIdHRwSW50ZXJjZXB0aW5nU2hhcGVTZXJpYWxpemVyKHRoaXMuY29kZWMuY3JlYXRlU2VyaWFsaXplcigpLCBzZXR0aW5ncyk7XG4gICAgICAgIHRoaXMuZGVzZXJpYWxpemVyID0gbmV3IEh0dHBJbnRlcmNlcHRpbmdTaGFwZURlc2VyaWFsaXplcih0aGlzLmNvZGVjLmNyZWF0ZURlc2VyaWFsaXplcigpLCBzZXR0aW5ncyk7XG4gICAgfVxuICAgIGdldFNoYXBlSWQoKSB7XG4gICAgICAgIHJldHVybiBcImF3cy5wcm90b2NvbHMjcmVzdEpzb24xXCI7XG4gICAgfVxuICAgIGdldFBheWxvYWRDb2RlYygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29kZWM7XG4gICAgfVxuICAgIHNldFNlcmRlQ29udGV4dChzZXJkZUNvbnRleHQpIHtcbiAgICAgICAgdGhpcy5jb2RlYy5zZXRTZXJkZUNvbnRleHQoc2VyZGVDb250ZXh0KTtcbiAgICAgICAgc3VwZXIuc2V0U2VyZGVDb250ZXh0KHNlcmRlQ29udGV4dCk7XG4gICAgfVxuICAgIGFzeW5jIHNlcmlhbGl6ZVJlcXVlc3Qob3BlcmF0aW9uU2NoZW1hLCBpbnB1dCwgY29udGV4dCkge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gYXdhaXQgc3VwZXIuc2VyaWFsaXplUmVxdWVzdChvcGVyYXRpb25TY2hlbWEsIGlucHV0LCBjb250ZXh0KTtcbiAgICAgICAgY29uc3QgaW5wdXRTY2hlbWEgPSBOb3JtYWxpemVkU2NoZW1hLm9mKG9wZXJhdGlvblNjaGVtYS5pbnB1dCk7XG4gICAgICAgIGlmICghcmVxdWVzdC5oZWFkZXJzW1wiY29udGVudC10eXBlXCJdKSB7XG4gICAgICAgICAgICBjb25zdCBjb250ZW50VHlwZSA9IHRoaXMubWl4aW4ucmVzb2x2ZVJlc3RDb250ZW50VHlwZSh0aGlzLmdldERlZmF1bHRDb250ZW50VHlwZSgpLCBpbnB1dFNjaGVtYSk7XG4gICAgICAgICAgICBpZiAoY29udGVudFR5cGUpIHtcbiAgICAgICAgICAgICAgICByZXF1ZXN0LmhlYWRlcnNbXCJjb250ZW50LXR5cGVcIl0gPSBjb250ZW50VHlwZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAocmVxdWVzdC5ib2R5ID09IG51bGwgJiYgcmVxdWVzdC5oZWFkZXJzW1wiY29udGVudC10eXBlXCJdID09PSB0aGlzLmdldERlZmF1bHRDb250ZW50VHlwZSgpKSB7XG4gICAgICAgICAgICByZXF1ZXN0LmJvZHkgPSBcInt9XCI7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlcXVlc3Q7XG4gICAgfVxuICAgIGFzeW5jIGRlc2VyaWFsaXplUmVzcG9uc2Uob3BlcmF0aW9uU2NoZW1hLCBjb250ZXh0LCByZXNwb25zZSkge1xuICAgICAgICBjb25zdCBvdXRwdXQgPSBhd2FpdCBzdXBlci5kZXNlcmlhbGl6ZVJlc3BvbnNlKG9wZXJhdGlvblNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UpO1xuICAgICAgICBjb25zdCBvdXRwdXRTY2hlbWEgPSBOb3JtYWxpemVkU2NoZW1hLm9mKG9wZXJhdGlvblNjaGVtYS5vdXRwdXQpO1xuICAgICAgICBmb3IgKGNvbnN0IFtuYW1lLCBtZW1iZXJdIG9mIG91dHB1dFNjaGVtYS5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICBpZiAobWVtYmVyLmdldE1lbWJlclRyYWl0cygpLmh0dHBQYXlsb2FkICYmICEobmFtZSBpbiBvdXRwdXQpKSB7XG4gICAgICAgICAgICAgICAgb3V0cHV0W25hbWVdID0gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb3V0cHV0O1xuICAgIH1cbiAgICBhc3luYyBoYW5kbGVFcnJvcihvcGVyYXRpb25TY2hlbWEsIGNvbnRleHQsIHJlc3BvbnNlLCBkYXRhT2JqZWN0LCBtZXRhZGF0YSkge1xuICAgICAgICBjb25zdCBlcnJvcklkZW50aWZpZXIgPSBsb2FkUmVzdEpzb25FcnJvckNvZGUocmVzcG9uc2UsIGRhdGFPYmplY3QpID8/IFwiVW5rbm93blwiO1xuICAgICAgICBjb25zdCB7IGVycm9yU2NoZW1hLCBlcnJvck1ldGFkYXRhIH0gPSBhd2FpdCB0aGlzLm1peGluLmdldEVycm9yU2NoZW1hT3JUaHJvd0Jhc2VFeGNlcHRpb24oZXJyb3JJZGVudGlmaWVyLCB0aGlzLm9wdGlvbnMuZGVmYXVsdE5hbWVzcGFjZSwgcmVzcG9uc2UsIGRhdGFPYmplY3QsIG1ldGFkYXRhKTtcbiAgICAgICAgY29uc3QgbnMgPSBOb3JtYWxpemVkU2NoZW1hLm9mKGVycm9yU2NoZW1hKTtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGRhdGFPYmplY3QubWVzc2FnZSA/PyBkYXRhT2JqZWN0Lk1lc3NhZ2UgPz8gXCJVbmtub3duXCI7XG4gICAgICAgIGNvbnN0IEVycm9yQ3RvciA9IFR5cGVSZWdpc3RyeS5mb3IoZXJyb3JTY2hlbWFbMV0pLmdldEVycm9yQ3RvcihlcnJvclNjaGVtYSkgPz8gRXJyb3I7XG4gICAgICAgIGNvbnN0IGV4Y2VwdGlvbiA9IG5ldyBFcnJvckN0b3IobWVzc2FnZSk7XG4gICAgICAgIGF3YWl0IHRoaXMuZGVzZXJpYWxpemVIdHRwTWVzc2FnZShlcnJvclNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UsIGRhdGFPYmplY3QpO1xuICAgICAgICBjb25zdCBvdXRwdXQgPSB7fTtcbiAgICAgICAgZm9yIChjb25zdCBbbmFtZSwgbWVtYmVyXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBtZW1iZXIuZ2V0TWVyZ2VkVHJhaXRzKCkuanNvbk5hbWUgPz8gbmFtZTtcbiAgICAgICAgICAgIG91dHB1dFtuYW1lXSA9IHRoaXMuY29kZWMuY3JlYXRlRGVzZXJpYWxpemVyKCkucmVhZE9iamVjdChtZW1iZXIsIGRhdGFPYmplY3RbdGFyZ2V0XSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgdGhpcy5taXhpbi5kZWNvcmF0ZVNlcnZpY2VFeGNlcHRpb24oT2JqZWN0LmFzc2lnbihleGNlcHRpb24sIGVycm9yTWV0YWRhdGEsIHtcbiAgICAgICAgICAgICRmYXVsdDogbnMuZ2V0TWVyZ2VkVHJhaXRzKCkuZXJyb3IsXG4gICAgICAgICAgICBtZXNzYWdlLFxuICAgICAgICB9LCBvdXRwdXQpLCBkYXRhT2JqZWN0KTtcbiAgICB9XG4gICAgZ2V0RGVmYXVsdENvbnRlbnRUeXBlKCkge1xuICAgICAgICByZXR1cm4gXCJhcHBsaWNhdGlvbi9qc29uXCI7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IGV4cGVjdFVuaW9uIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuZXhwb3J0IGNvbnN0IGF3c0V4cGVjdFVuaW9uID0gKHZhbHVlKSA9PiB7XG4gICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIiAmJiBcIl9fdHlwZVwiIGluIHZhbHVlKSB7XG4gICAgICAgIGRlbGV0ZSB2YWx1ZS5fX3R5cGU7XG4gICAgfVxuICAgIHJldHVybiBleHBlY3RVbmlvbih2YWx1ZSk7XG59O1xuIiwgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5wYXJzZVhNTCA9IHBhcnNlWE1MO1xuY29uc3QgZmFzdF94bWxfcGFyc2VyXzEgPSByZXF1aXJlKFwiZmFzdC14bWwtcGFyc2VyXCIpO1xuY29uc3QgcGFyc2VyID0gbmV3IGZhc3RfeG1sX3BhcnNlcl8xLlhNTFBhcnNlcih7XG4gICAgYXR0cmlidXRlTmFtZVByZWZpeDogXCJcIixcbiAgICBodG1sRW50aXRpZXM6IHRydWUsXG4gICAgaWdub3JlQXR0cmlidXRlczogZmFsc2UsXG4gICAgaWdub3JlRGVjbGFyYXRpb246IHRydWUsXG4gICAgcGFyc2VUYWdWYWx1ZTogZmFsc2UsXG4gICAgdHJpbVZhbHVlczogZmFsc2UsXG4gICAgdGFnVmFsdWVQcm9jZXNzb3I6IChfLCB2YWwpID0+ICh2YWwudHJpbSgpID09PSBcIlwiICYmIHZhbC5pbmNsdWRlcyhcIlxcblwiKSA/IFwiXCIgOiB1bmRlZmluZWQpLFxufSk7XG5wYXJzZXIuYWRkRW50aXR5KFwiI3hEXCIsIFwiXFxyXCIpO1xucGFyc2VyLmFkZEVudGl0eShcIiMxMFwiLCBcIlxcblwiKTtcbmZ1bmN0aW9uIHBhcnNlWE1MKHhtbFN0cmluZykge1xuICAgIHJldHVybiBwYXJzZXIucGFyc2UoeG1sU3RyaW5nLCB0cnVlKTtcbn1cbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciB4bWxQYXJzZXIgPSByZXF1aXJlKCcuL3htbC1wYXJzZXInKTtcblxuZnVuY3Rpb24gZXNjYXBlQXR0cmlidXRlKHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlLnJlcGxhY2UoLyYvZywgXCImYW1wO1wiKS5yZXBsYWNlKC88L2csIFwiJmx0O1wiKS5yZXBsYWNlKC8+L2csIFwiJmd0O1wiKS5yZXBsYWNlKC9cIi9nLCBcIiZxdW90O1wiKTtcbn1cblxuZnVuY3Rpb24gZXNjYXBlRWxlbWVudCh2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZVxuICAgICAgICAucmVwbGFjZSgvJi9nLCBcIiZhbXA7XCIpXG4gICAgICAgIC5yZXBsYWNlKC9cIi9nLCBcIiZxdW90O1wiKVxuICAgICAgICAucmVwbGFjZSgvJy9nLCBcIiZhcG9zO1wiKVxuICAgICAgICAucmVwbGFjZSgvPC9nLCBcIiZsdDtcIilcbiAgICAgICAgLnJlcGxhY2UoLz4vZywgXCImZ3Q7XCIpXG4gICAgICAgIC5yZXBsYWNlKC9cXHIvZywgXCImI3gwRDtcIilcbiAgICAgICAgLnJlcGxhY2UoL1xcbi9nLCBcIiYjeDBBO1wiKVxuICAgICAgICAucmVwbGFjZSgvXFx1MDA4NS9nLCBcIiYjeDg1O1wiKVxuICAgICAgICAucmVwbGFjZSgvXFx1MjAyOC8sIFwiJiN4MjAyODtcIik7XG59XG5cbmNsYXNzIFhtbFRleHQge1xuICAgIHZhbHVlO1xuICAgIGNvbnN0cnVjdG9yKHZhbHVlKSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB9XG4gICAgdG9TdHJpbmcoKSB7XG4gICAgICAgIHJldHVybiBlc2NhcGVFbGVtZW50KFwiXCIgKyB0aGlzLnZhbHVlKTtcbiAgICB9XG59XG5cbmNsYXNzIFhtbE5vZGUge1xuICAgIG5hbWU7XG4gICAgY2hpbGRyZW47XG4gICAgYXR0cmlidXRlcyA9IHt9O1xuICAgIHN0YXRpYyBvZihuYW1lLCBjaGlsZFRleHQsIHdpdGhOYW1lKSB7XG4gICAgICAgIGNvbnN0IG5vZGUgPSBuZXcgWG1sTm9kZShuYW1lKTtcbiAgICAgICAgaWYgKGNoaWxkVGV4dCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBub2RlLmFkZENoaWxkTm9kZShuZXcgWG1sVGV4dChjaGlsZFRleHQpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAod2l0aE5hbWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgbm9kZS53aXRoTmFtZSh3aXRoTmFtZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5vZGU7XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKG5hbWUsIGNoaWxkcmVuID0gW10pIHtcbiAgICAgICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICAgICAgdGhpcy5jaGlsZHJlbiA9IGNoaWxkcmVuO1xuICAgIH1cbiAgICB3aXRoTmFtZShuYW1lKSB7XG4gICAgICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBhZGRBdHRyaWJ1dGUobmFtZSwgdmFsdWUpIHtcbiAgICAgICAgdGhpcy5hdHRyaWJ1dGVzW25hbWVdID0gdmFsdWU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBhZGRDaGlsZE5vZGUoY2hpbGQpIHtcbiAgICAgICAgdGhpcy5jaGlsZHJlbi5wdXNoKGNoaWxkKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIHJlbW92ZUF0dHJpYnV0ZShuYW1lKSB7XG4gICAgICAgIGRlbGV0ZSB0aGlzLmF0dHJpYnV0ZXNbbmFtZV07XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBuKG5hbWUpIHtcbiAgICAgICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIGMoY2hpbGQpIHtcbiAgICAgICAgdGhpcy5jaGlsZHJlbi5wdXNoKGNoaWxkKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIGEobmFtZSwgdmFsdWUpIHtcbiAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuYXR0cmlidXRlc1tuYW1lXSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBjYyhpbnB1dCwgZmllbGQsIHdpdGhOYW1lID0gZmllbGQpIHtcbiAgICAgICAgaWYgKGlucHV0W2ZpZWxkXSAhPSBudWxsKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlID0gWG1sTm9kZS5vZihmaWVsZCwgaW5wdXRbZmllbGRdKS53aXRoTmFtZSh3aXRoTmFtZSk7XG4gICAgICAgICAgICB0aGlzLmMobm9kZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbChpbnB1dCwgbGlzdE5hbWUsIG1lbWJlck5hbWUsIHZhbHVlUHJvdmlkZXIpIHtcbiAgICAgICAgaWYgKGlucHV0W2xpc3ROYW1lXSAhPSBudWxsKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlcyA9IHZhbHVlUHJvdmlkZXIoKTtcbiAgICAgICAgICAgIG5vZGVzLm1hcCgobm9kZSkgPT4ge1xuICAgICAgICAgICAgICAgIG5vZGUud2l0aE5hbWUobWVtYmVyTmFtZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5jKG5vZGUpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbGMoaW5wdXQsIGxpc3ROYW1lLCBtZW1iZXJOYW1lLCB2YWx1ZVByb3ZpZGVyKSB7XG4gICAgICAgIGlmIChpbnB1dFtsaXN0TmFtZV0gIT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZXMgPSB2YWx1ZVByb3ZpZGVyKCk7XG4gICAgICAgICAgICBjb25zdCBjb250YWluZXJOb2RlID0gbmV3IFhtbE5vZGUobWVtYmVyTmFtZSk7XG4gICAgICAgICAgICBub2Rlcy5tYXAoKG5vZGUpID0+IHtcbiAgICAgICAgICAgICAgICBjb250YWluZXJOb2RlLmMobm9kZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuYyhjb250YWluZXJOb2RlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICB0b1N0cmluZygpIHtcbiAgICAgICAgY29uc3QgaGFzQ2hpbGRyZW4gPSBCb29sZWFuKHRoaXMuY2hpbGRyZW4ubGVuZ3RoKTtcbiAgICAgICAgbGV0IHhtbFRleHQgPSBgPCR7dGhpcy5uYW1lfWA7XG4gICAgICAgIGNvbnN0IGF0dHJpYnV0ZXMgPSB0aGlzLmF0dHJpYnV0ZXM7XG4gICAgICAgIGZvciAoY29uc3QgYXR0cmlidXRlTmFtZSBvZiBPYmplY3Qua2V5cyhhdHRyaWJ1dGVzKSkge1xuICAgICAgICAgICAgY29uc3QgYXR0cmlidXRlID0gYXR0cmlidXRlc1thdHRyaWJ1dGVOYW1lXTtcbiAgICAgICAgICAgIGlmIChhdHRyaWJ1dGUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHhtbFRleHQgKz0gYCAke2F0dHJpYnV0ZU5hbWV9PVwiJHtlc2NhcGVBdHRyaWJ1dGUoXCJcIiArIGF0dHJpYnV0ZSl9XCJgO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiAoeG1sVGV4dCArPSAhaGFzQ2hpbGRyZW4gPyBcIi8+XCIgOiBgPiR7dGhpcy5jaGlsZHJlbi5tYXAoKGMpID0+IGMudG9TdHJpbmcoKSkuam9pbihcIlwiKX08LyR7dGhpcy5uYW1lfT5gKTtcbiAgICB9XG59XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcInBhcnNlWE1MXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4geG1sUGFyc2VyLnBhcnNlWE1MOyB9XG59KTtcbmV4cG9ydHMuWG1sTm9kZSA9IFhtbE5vZGU7XG5leHBvcnRzLlhtbFRleHQgPSBYbWxUZXh0O1xuIiwgImltcG9ydCB7IHBhcnNlWE1MIH0gZnJvbSBcIkBhd3Mtc2RrL3htbC1idWlsZGVyXCI7XG5pbXBvcnQgeyBGcm9tU3RyaW5nU2hhcGVEZXNlcmlhbGl6ZXIgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3Byb3RvY29sc1wiO1xuaW1wb3J0IHsgTm9ybWFsaXplZFNjaGVtYSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2NoZW1hXCI7XG5pbXBvcnQgeyBnZXRWYWx1ZUZyb21UZXh0Tm9kZSB9IGZyb20gXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjtcbmltcG9ydCB7IHRvVXRmOCB9IGZyb20gXCJAc21pdGh5L3V0aWwtdXRmOFwiO1xuaW1wb3J0IHsgU2VyZGVDb250ZXh0Q29uZmlnIH0gZnJvbSBcIi4uL0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dFwiO1xuaW1wb3J0IHsgVW5pb25TZXJkZSB9IGZyb20gXCIuLi9VbmlvblNlcmRlXCI7XG5leHBvcnQgY2xhc3MgWG1sU2hhcGVEZXNlcmlhbGl6ZXIgZXh0ZW5kcyBTZXJkZUNvbnRleHRDb25maWcge1xuICAgIHNldHRpbmdzO1xuICAgIHN0cmluZ0Rlc2VyaWFsaXplcjtcbiAgICBjb25zdHJ1Y3RvcihzZXR0aW5ncykge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnNldHRpbmdzID0gc2V0dGluZ3M7XG4gICAgICAgIHRoaXMuc3RyaW5nRGVzZXJpYWxpemVyID0gbmV3IEZyb21TdHJpbmdTaGFwZURlc2VyaWFsaXplcihzZXR0aW5ncyk7XG4gICAgfVxuICAgIHNldFNlcmRlQ29udGV4dChzZXJkZUNvbnRleHQpIHtcbiAgICAgICAgdGhpcy5zZXJkZUNvbnRleHQgPSBzZXJkZUNvbnRleHQ7XG4gICAgICAgIHRoaXMuc3RyaW5nRGVzZXJpYWxpemVyLnNldFNlcmRlQ29udGV4dChzZXJkZUNvbnRleHQpO1xuICAgIH1cbiAgICByZWFkKHNjaGVtYSwgYnl0ZXMsIGtleSkge1xuICAgICAgICBjb25zdCBucyA9IE5vcm1hbGl6ZWRTY2hlbWEub2Yoc2NoZW1hKTtcbiAgICAgICAgY29uc3QgbWVtYmVyU2NoZW1hcyA9IG5zLmdldE1lbWJlclNjaGVtYXMoKTtcbiAgICAgICAgY29uc3QgaXNFdmVudFBheWxvYWQgPSBucy5pc1N0cnVjdFNjaGVtYSgpICYmXG4gICAgICAgICAgICBucy5pc01lbWJlclNjaGVtYSgpICYmXG4gICAgICAgICAgICAhIU9iamVjdC52YWx1ZXMobWVtYmVyU2NoZW1hcykuZmluZCgobWVtYmVyTnMpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gISFtZW1iZXJOcy5nZXRNZW1iZXJUcmFpdHMoKS5ldmVudFBheWxvYWQ7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgaWYgKGlzRXZlbnRQYXlsb2FkKSB7XG4gICAgICAgICAgICBjb25zdCBvdXRwdXQgPSB7fTtcbiAgICAgICAgICAgIGNvbnN0IG1lbWJlck5hbWUgPSBPYmplY3Qua2V5cyhtZW1iZXJTY2hlbWFzKVswXTtcbiAgICAgICAgICAgIGNvbnN0IGV2ZW50TWVtYmVyU2NoZW1hID0gbWVtYmVyU2NoZW1hc1ttZW1iZXJOYW1lXTtcbiAgICAgICAgICAgIGlmIChldmVudE1lbWJlclNjaGVtYS5pc0Jsb2JTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIG91dHB1dFttZW1iZXJOYW1lXSA9IGJ5dGVzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgb3V0cHV0W21lbWJlck5hbWVdID0gdGhpcy5yZWFkKG1lbWJlclNjaGVtYXNbbWVtYmVyTmFtZV0sIGJ5dGVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBvdXRwdXQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgeG1sU3RyaW5nID0gKHRoaXMuc2VyZGVDb250ZXh0Py51dGY4RW5jb2RlciA/PyB0b1V0ZjgpKGJ5dGVzKTtcbiAgICAgICAgY29uc3QgcGFyc2VkT2JqZWN0ID0gdGhpcy5wYXJzZVhtbCh4bWxTdHJpbmcpO1xuICAgICAgICByZXR1cm4gdGhpcy5yZWFkU2NoZW1hKHNjaGVtYSwga2V5ID8gcGFyc2VkT2JqZWN0W2tleV0gOiBwYXJzZWRPYmplY3QpO1xuICAgIH1cbiAgICByZWFkU2NoZW1hKF9zY2hlbWEsIHZhbHVlKSB7XG4gICAgICAgIGNvbnN0IG5zID0gTm9ybWFsaXplZFNjaGVtYS5vZihfc2NoZW1hKTtcbiAgICAgICAgaWYgKG5zLmlzVW5pdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdHJhaXRzID0gbnMuZ2V0TWVyZ2VkVHJhaXRzKCk7XG4gICAgICAgIGlmIChucy5pc0xpc3RTY2hlbWEoKSAmJiAhQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnJlYWRTY2hlbWEobnMsIFt2YWx1ZV0pO1xuICAgICAgICB9XG4gICAgICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgY29uc3Qgc3BhcnNlID0gISF0cmFpdHMuc3BhcnNlO1xuICAgICAgICAgICAgY29uc3QgZmxhdCA9ICEhdHJhaXRzLnhtbEZsYXR0ZW5lZDtcbiAgICAgICAgICAgIGlmIChucy5pc0xpc3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxpc3RWYWx1ZSA9IG5zLmdldFZhbHVlU2NoZW1hKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgYnVmZmVyID0gW107XG4gICAgICAgICAgICAgICAgY29uc3Qgc291cmNlS2V5ID0gbGlzdFZhbHVlLmdldE1lcmdlZFRyYWl0cygpLnhtbE5hbWUgPz8gXCJtZW1iZXJcIjtcbiAgICAgICAgICAgICAgICBjb25zdCBzb3VyY2UgPSBmbGF0ID8gdmFsdWUgOiAodmFsdWVbMF0gPz8gdmFsdWUpW3NvdXJjZUtleV07XG4gICAgICAgICAgICAgICAgY29uc3Qgc291cmNlQXJyYXkgPSBBcnJheS5pc0FycmF5KHNvdXJjZSkgPyBzb3VyY2UgOiBbc291cmNlXTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHYgb2Ygc291cmNlQXJyYXkpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHYgIT0gbnVsbCB8fCBzcGFyc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5wdXNoKHRoaXMucmVhZFNjaGVtYShsaXN0VmFsdWUsIHYpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gYnVmZmVyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgYnVmZmVyID0ge307XG4gICAgICAgICAgICBpZiAobnMuaXNNYXBTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGtleU5zID0gbnMuZ2V0S2V5U2NoZW1hKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgbWVtYmVyTnMgPSBucy5nZXRWYWx1ZVNjaGVtYSgpO1xuICAgICAgICAgICAgICAgIGxldCBlbnRyaWVzO1xuICAgICAgICAgICAgICAgIGlmIChmbGF0KSB7XG4gICAgICAgICAgICAgICAgICAgIGVudHJpZXMgPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW3ZhbHVlXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGVudHJpZXMgPSBBcnJheS5pc0FycmF5KHZhbHVlLmVudHJ5KSA/IHZhbHVlLmVudHJ5IDogW3ZhbHVlLmVudHJ5XTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3Qga2V5UHJvcGVydHkgPSBrZXlOcy5nZXRNZXJnZWRUcmFpdHMoKS54bWxOYW1lID8/IFwia2V5XCI7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWVQcm9wZXJ0eSA9IG1lbWJlck5zLmdldE1lcmdlZFRyYWl0cygpLnhtbE5hbWUgPz8gXCJ2YWx1ZVwiO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZW50cnkgb2YgZW50cmllcykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSBlbnRyeVtrZXlQcm9wZXJ0eV07XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZW50cnlbdmFsdWVQcm9wZXJ0eV07XG4gICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSAhPSBudWxsIHx8IHNwYXJzZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyW2tleV0gPSB0aGlzLnJlYWRTY2hlbWEobWVtYmVyTnMsIHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gYnVmZmVyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG5zLmlzU3RydWN0U2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB1bmlvbiA9IG5zLmlzVW5pb25TY2hlbWEoKTtcbiAgICAgICAgICAgICAgICBsZXQgdW5pb25TZXJkZTtcbiAgICAgICAgICAgICAgICBpZiAodW5pb24pIHtcbiAgICAgICAgICAgICAgICAgICAgdW5pb25TZXJkZSA9IG5ldyBVbmlvblNlcmRlKHZhbHVlLCBidWZmZXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IFttZW1iZXJOYW1lLCBtZW1iZXJTY2hlbWFdIG9mIG5zLnN0cnVjdEl0ZXJhdG9yKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbWVtYmVyVHJhaXRzID0gbWVtYmVyU2NoZW1hLmdldE1lcmdlZFRyYWl0cygpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxPYmplY3RLZXkgPSAhbWVtYmVyVHJhaXRzLmh0dHBQYXlsb2FkXG4gICAgICAgICAgICAgICAgICAgICAgICA/IG1lbWJlclNjaGVtYS5nZXRNZW1iZXJUcmFpdHMoKS54bWxOYW1lID8/IG1lbWJlck5hbWVcbiAgICAgICAgICAgICAgICAgICAgICAgIDogbWVtYmVyVHJhaXRzLnhtbE5hbWUgPz8gbWVtYmVyU2NoZW1hLmdldE5hbWUoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHVuaW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB1bmlvblNlcmRlLm1hcmsoeG1sT2JqZWN0S2V5KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWVbeG1sT2JqZWN0S2V5XSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJbbWVtYmVyTmFtZV0gPSB0aGlzLnJlYWRTY2hlbWEobWVtYmVyU2NoZW1hLCB2YWx1ZVt4bWxPYmplY3RLZXldKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodW5pb24pIHtcbiAgICAgICAgICAgICAgICAgICAgdW5pb25TZXJkZS53cml0ZVVua25vd24oKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGJ1ZmZlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChucy5pc0RvY3VtZW50U2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEBhd3Mtc2RrL2NvcmUvcHJvdG9jb2xzIC0geG1sIGRlc2VyaWFsaXplciB1bmhhbmRsZWQgc2NoZW1hIHR5cGUgZm9yICR7bnMuZ2V0TmFtZSh0cnVlKX1gKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobnMuaXNMaXN0U2NoZW1hKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobnMuaXNNYXBTY2hlbWEoKSB8fCBucy5pc1N0cnVjdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICByZXR1cm4ge307XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuc3RyaW5nRGVzZXJpYWxpemVyLnJlYWQobnMsIHZhbHVlKTtcbiAgICB9XG4gICAgcGFyc2VYbWwoeG1sKSB7XG4gICAgICAgIGlmICh4bWwubGVuZ3RoKSB7XG4gICAgICAgICAgICBsZXQgcGFyc2VkT2JqO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBwYXJzZWRPYmogPSBwYXJzZVhNTCh4bWwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICBpZiAoZSAmJiB0eXBlb2YgZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwgXCIkcmVzcG9uc2VCb2R5VGV4dFwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogeG1sLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHRleHROb2RlTmFtZSA9IFwiI3RleHRcIjtcbiAgICAgICAgICAgIGNvbnN0IGtleSA9IE9iamVjdC5rZXlzKHBhcnNlZE9iailbMF07XG4gICAgICAgICAgICBjb25zdCBwYXJzZWRPYmpUb1JldHVybiA9IHBhcnNlZE9ialtrZXldO1xuICAgICAgICAgICAgaWYgKHBhcnNlZE9ialRvUmV0dXJuW3RleHROb2RlTmFtZV0pIHtcbiAgICAgICAgICAgICAgICBwYXJzZWRPYmpUb1JldHVybltrZXldID0gcGFyc2VkT2JqVG9SZXR1cm5bdGV4dE5vZGVOYW1lXTtcbiAgICAgICAgICAgICAgICBkZWxldGUgcGFyc2VkT2JqVG9SZXR1cm5bdGV4dE5vZGVOYW1lXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBnZXRWYWx1ZUZyb21UZXh0Tm9kZShwYXJzZWRPYmpUb1JldHVybik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHt9O1xuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBkZXRlcm1pbmVUaW1lc3RhbXBGb3JtYXQsIGV4dGVuZGVkRW5jb2RlVVJJQ29tcG9uZW50IH0gZnJvbSBcIkBzbWl0aHkvY29yZS9wcm90b2NvbHNcIjtcbmltcG9ydCB7IE5vcm1hbGl6ZWRTY2hlbWEgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3NjaGVtYVwiO1xuaW1wb3J0IHsgZ2VuZXJhdGVJZGVtcG90ZW5jeVRva2VuLCBOdW1lcmljVmFsdWUgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3NlcmRlXCI7XG5pbXBvcnQgeyBkYXRlVG9VdGNTdHJpbmcgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyB0b0Jhc2U2NCB9IGZyb20gXCJAc21pdGh5L3V0aWwtYmFzZTY0XCI7XG5pbXBvcnQgeyBTZXJkZUNvbnRleHRDb25maWcgfSBmcm9tIFwiLi4vQ29uZmlndXJhYmxlU2VyZGVDb250ZXh0XCI7XG5leHBvcnQgY2xhc3MgUXVlcnlTaGFwZVNlcmlhbGl6ZXIgZXh0ZW5kcyBTZXJkZUNvbnRleHRDb25maWcge1xuICAgIHNldHRpbmdzO1xuICAgIGJ1ZmZlcjtcbiAgICBjb25zdHJ1Y3RvcihzZXR0aW5ncykge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnNldHRpbmdzID0gc2V0dGluZ3M7XG4gICAgfVxuICAgIHdyaXRlKHNjaGVtYSwgdmFsdWUsIHByZWZpeCA9IFwiXCIpIHtcbiAgICAgICAgaWYgKHRoaXMuYnVmZmVyID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuYnVmZmVyID0gXCJcIjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBucyA9IE5vcm1hbGl6ZWRTY2hlbWEub2Yoc2NoZW1hKTtcbiAgICAgICAgaWYgKHByZWZpeCAmJiAhcHJlZml4LmVuZHNXaXRoKFwiLlwiKSkge1xuICAgICAgICAgICAgcHJlZml4ICs9IFwiLlwiO1xuICAgICAgICB9XG4gICAgICAgIGlmIChucy5pc0Jsb2JTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiB8fCB2YWx1ZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlS2V5KHByZWZpeCk7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKCh0aGlzLnNlcmRlQ29udGV4dD8uYmFzZTY0RW5jb2RlciA/PyB0b0Jhc2U2NCkodmFsdWUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChucy5pc0Jvb2xlYW5TY2hlbWEoKSB8fCBucy5pc051bWVyaWNTY2hlbWEoKSB8fCBucy5pc1N0cmluZ1NjaGVtYSgpKSB7XG4gICAgICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVLZXkocHJlZml4KTtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlVmFsdWUoU3RyaW5nKHZhbHVlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChucy5pc0lkZW1wb3RlbmN5VG9rZW4oKSkge1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVLZXkocHJlZml4KTtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlVmFsdWUoZ2VuZXJhdGVJZGVtcG90ZW5jeVRva2VuKCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKG5zLmlzQmlnSW50ZWdlclNjaGVtYSgpKSB7XG4gICAgICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVLZXkocHJlZml4KTtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlVmFsdWUoU3RyaW5nKHZhbHVlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAobnMuaXNCaWdEZWNpbWFsU2NoZW1hKCkpIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZUtleShwcmVmaXgpO1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVWYWx1ZSh2YWx1ZSBpbnN0YW5jZW9mIE51bWVyaWNWYWx1ZSA/IHZhbHVlLnN0cmluZyA6IFN0cmluZyh2YWx1ZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKG5zLmlzVGltZXN0YW1wU2NoZW1hKCkpIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlS2V5KHByZWZpeCk7XG4gICAgICAgICAgICAgICAgY29uc3QgZm9ybWF0ID0gZGV0ZXJtaW5lVGltZXN0YW1wRm9ybWF0KG5zLCB0aGlzLnNldHRpbmdzKTtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGZvcm1hdCkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLndyaXRlVmFsdWUodmFsdWUudG9JU09TdHJpbmcoKS5yZXBsYWNlKFwiLjAwMFpcIiwgXCJaXCIpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLndyaXRlVmFsdWUoZGF0ZVRvVXRjU3RyaW5nKHZhbHVlKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA3OlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKFN0cmluZyh2YWx1ZS5nZXRUaW1lKCkgLyAxMDAwKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAobnMuaXNEb2N1bWVudFNjaGVtYSgpKSB7XG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlKDY0IHwgMTUsIHZhbHVlLCBwcmVmaXgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZSg0LCB2YWx1ZSwgcHJlZml4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHZhbHVlIGluc3RhbmNlb2YgVWludDhBcnJheSkge1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGUoMjEsIHZhbHVlLCBwcmVmaXgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAodmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZSgxMjggfCAxNSwgdmFsdWUsIHByZWZpeCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlS2V5KHByZWZpeCk7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKFN0cmluZyh2YWx1ZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKG5zLmlzTGlzdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnNldHRpbmdzLnNlcmlhbGl6ZUVtcHR5TGlzdHMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMud3JpdGVLZXkocHJlZml4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMud3JpdGVWYWx1ZShcIlwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbWVtYmVyID0gbnMuZ2V0VmFsdWVTY2hlbWEoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZmxhdCA9IHRoaXMuc2V0dGluZ3MuZmxhdHRlbkxpc3RzIHx8IG5zLmdldE1lcmdlZFRyYWl0cygpLnhtbEZsYXR0ZW5lZDtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGkgPSAxO1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpdGVtID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRyYWl0cyA9IG1lbWJlci5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN1ZmZpeCA9IHRoaXMuZ2V0S2V5KFwibWVtYmVyXCIsIHRyYWl0cy54bWxOYW1lLCB0cmFpdHMuZWMyUXVlcnlOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IGZsYXQgPyBgJHtwcmVmaXh9JHtpfWAgOiBgJHtwcmVmaXh9JHtzdWZmaXh9LiR7aX1gO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53cml0ZShtZW1iZXIsIGl0ZW0sIGtleSk7XG4gICAgICAgICAgICAgICAgICAgICAgICArK2k7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAobnMuaXNNYXBTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgICAgIGNvbnN0IGtleVNjaGVtYSA9IG5zLmdldEtleVNjaGVtYSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IG1lbWJlclNjaGVtYSA9IG5zLmdldFZhbHVlU2NoZW1hKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgZmxhdCA9IG5zLmdldE1lcmdlZFRyYWl0cygpLnhtbEZsYXR0ZW5lZDtcbiAgICAgICAgICAgICAgICBsZXQgaSA9IDE7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBbaywgdl0gb2YgT2JqZWN0LmVudHJpZXModmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2ID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGtleVRyYWl0cyA9IGtleVNjaGVtYS5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qga2V5U3VmZml4ID0gdGhpcy5nZXRLZXkoXCJrZXlcIiwga2V5VHJhaXRzLnhtbE5hbWUsIGtleVRyYWl0cy5lYzJRdWVyeU5hbWUpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSBmbGF0ID8gYCR7cHJlZml4fSR7aX0uJHtrZXlTdWZmaXh9YCA6IGAke3ByZWZpeH1lbnRyeS4ke2l9LiR7a2V5U3VmZml4fWA7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbFRyYWl0cyA9IG1lbWJlclNjaGVtYS5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWVTdWZmaXggPSB0aGlzLmdldEtleShcInZhbHVlXCIsIHZhbFRyYWl0cy54bWxOYW1lLCB2YWxUcmFpdHMuZWMyUXVlcnlOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWVLZXkgPSBmbGF0ID8gYCR7cHJlZml4fSR7aX0uJHt2YWx1ZVN1ZmZpeH1gIDogYCR7cHJlZml4fWVudHJ5LiR7aX0uJHt2YWx1ZVN1ZmZpeH1gO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLndyaXRlKGtleVNjaGVtYSwgaywga2V5KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy53cml0ZShtZW1iZXJTY2hlbWEsIHYsIHZhbHVlS2V5KTtcbiAgICAgICAgICAgICAgICAgICAgKytpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChucy5pc1N0cnVjdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICBpZiAodmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICAgICAgbGV0IGRpZFdyaXRlTWVtYmVyID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBbbWVtYmVyTmFtZSwgbWVtYmVyXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZVttZW1iZXJOYW1lXSA9PSBudWxsICYmICFtZW1iZXIuaXNJZGVtcG90ZW5jeVRva2VuKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRyYWl0cyA9IG1lbWJlci5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3VmZml4ID0gdGhpcy5nZXRLZXkobWVtYmVyTmFtZSwgdHJhaXRzLnhtbE5hbWUsIHRyYWl0cy5lYzJRdWVyeU5hbWUsIFwic3RydWN0XCIpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSBgJHtwcmVmaXh9JHtzdWZmaXh9YDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy53cml0ZShtZW1iZXIsIHZhbHVlW21lbWJlck5hbWVdLCBrZXkpO1xuICAgICAgICAgICAgICAgICAgICBkaWRXcml0ZU1lbWJlciA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICghZGlkV3JpdGVNZW1iZXIgJiYgbnMuaXNVbmlvblNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgJHVua25vd24gfSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSgkdW5rbm93bikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFtrLCB2XSA9ICR1bmtub3duO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qga2V5ID0gYCR7cHJlZml4fSR7a31gO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53cml0ZSgxNSwgdiwga2V5KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChucy5pc1VuaXRTY2hlbWEoKSkge1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBAYXdzLXNkay9jb3JlL3Byb3RvY29scyAtIFF1ZXJ5U2VyaWFsaXplciB1bnJlY29nbml6ZWQgc2NoZW1hIHR5cGUgJHtucy5nZXROYW1lKHRydWUpfWApO1xuICAgICAgICB9XG4gICAgfVxuICAgIGZsdXNoKCkge1xuICAgICAgICBpZiAodGhpcy5idWZmZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSBRdWVyeVNlcmlhbGl6ZXIgY2Fubm90IGZsdXNoIHdpdGggbm90aGluZyB3cml0dGVuIHRvIGJ1ZmZlci5cIik7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc3RyID0gdGhpcy5idWZmZXI7XG4gICAgICAgIGRlbGV0ZSB0aGlzLmJ1ZmZlcjtcbiAgICAgICAgcmV0dXJuIHN0cjtcbiAgICB9XG4gICAgZ2V0S2V5KG1lbWJlck5hbWUsIHhtbE5hbWUsIGVjMlF1ZXJ5TmFtZSwga2V5U291cmNlKSB7XG4gICAgICAgIGNvbnN0IHsgZWMyLCBjYXBpdGFsaXplS2V5cyB9ID0gdGhpcy5zZXR0aW5ncztcbiAgICAgICAgaWYgKGVjMiAmJiBlYzJRdWVyeU5hbWUpIHtcbiAgICAgICAgICAgIHJldHVybiBlYzJRdWVyeU5hbWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qga2V5ID0geG1sTmFtZSA/PyBtZW1iZXJOYW1lO1xuICAgICAgICBpZiAoY2FwaXRhbGl6ZUtleXMgJiYga2V5U291cmNlID09PSBcInN0cnVjdFwiKSB7XG4gICAgICAgICAgICByZXR1cm4ga2V5WzBdLnRvVXBwZXJDYXNlKCkgKyBrZXkuc2xpY2UoMSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGtleTtcbiAgICB9XG4gICAgd3JpdGVLZXkoa2V5KSB7XG4gICAgICAgIGlmIChrZXkuZW5kc1dpdGgoXCIuXCIpKSB7XG4gICAgICAgICAgICBrZXkgPSBrZXkuc2xpY2UoMCwga2V5Lmxlbmd0aCAtIDEpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYnVmZmVyICs9IGAmJHtleHRlbmRlZEVuY29kZVVSSUNvbXBvbmVudChrZXkpfT1gO1xuICAgIH1cbiAgICB3cml0ZVZhbHVlKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuYnVmZmVyICs9IGV4dGVuZGVkRW5jb2RlVVJJQ29tcG9uZW50KHZhbHVlKTtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgY29sbGVjdEJvZHksIFJwY1Byb3RvY29sIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9wcm90b2NvbHNcIjtcbmltcG9ydCB7IGRlcmVmLCBOb3JtYWxpemVkU2NoZW1hLCBUeXBlUmVnaXN0cnkgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3NjaGVtYVwiO1xuaW1wb3J0IHsgUHJvdG9jb2xMaWIgfSBmcm9tIFwiLi4vUHJvdG9jb2xMaWJcIjtcbmltcG9ydCB7IFhtbFNoYXBlRGVzZXJpYWxpemVyIH0gZnJvbSBcIi4uL3htbC9YbWxTaGFwZURlc2VyaWFsaXplclwiO1xuaW1wb3J0IHsgUXVlcnlTaGFwZVNlcmlhbGl6ZXIgfSBmcm9tIFwiLi9RdWVyeVNoYXBlU2VyaWFsaXplclwiO1xuZXhwb3J0IGNsYXNzIEF3c1F1ZXJ5UHJvdG9jb2wgZXh0ZW5kcyBScGNQcm90b2NvbCB7XG4gICAgb3B0aW9ucztcbiAgICBzZXJpYWxpemVyO1xuICAgIGRlc2VyaWFsaXplcjtcbiAgICBtaXhpbiA9IG5ldyBQcm90b2NvbExpYigpO1xuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgZGVmYXVsdE5hbWVzcGFjZTogb3B0aW9ucy5kZWZhdWx0TmFtZXNwYWNlLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgICAgICAgY29uc3Qgc2V0dGluZ3MgPSB7XG4gICAgICAgICAgICB0aW1lc3RhbXBGb3JtYXQ6IHtcbiAgICAgICAgICAgICAgICB1c2VUcmFpdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiA1LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGh0dHBCaW5kaW5nczogZmFsc2UsXG4gICAgICAgICAgICB4bWxOYW1lc3BhY2U6IG9wdGlvbnMueG1sTmFtZXNwYWNlLFxuICAgICAgICAgICAgc2VydmljZU5hbWVzcGFjZTogb3B0aW9ucy5kZWZhdWx0TmFtZXNwYWNlLFxuICAgICAgICAgICAgc2VyaWFsaXplRW1wdHlMaXN0czogdHJ1ZSxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5zZXJpYWxpemVyID0gbmV3IFF1ZXJ5U2hhcGVTZXJpYWxpemVyKHNldHRpbmdzKTtcbiAgICAgICAgdGhpcy5kZXNlcmlhbGl6ZXIgPSBuZXcgWG1sU2hhcGVEZXNlcmlhbGl6ZXIoc2V0dGluZ3MpO1xuICAgIH1cbiAgICBnZXRTaGFwZUlkKCkge1xuICAgICAgICByZXR1cm4gXCJhd3MucHJvdG9jb2xzI2F3c1F1ZXJ5XCI7XG4gICAgfVxuICAgIHNldFNlcmRlQ29udGV4dChzZXJkZUNvbnRleHQpIHtcbiAgICAgICAgdGhpcy5zZXJpYWxpemVyLnNldFNlcmRlQ29udGV4dChzZXJkZUNvbnRleHQpO1xuICAgICAgICB0aGlzLmRlc2VyaWFsaXplci5zZXRTZXJkZUNvbnRleHQoc2VyZGVDb250ZXh0KTtcbiAgICB9XG4gICAgZ2V0UGF5bG9hZENvZGVjKCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJBV1NRdWVyeSBwcm90b2NvbCBoYXMgbm8gcGF5bG9hZCBjb2RlYy5cIik7XG4gICAgfVxuICAgIGFzeW5jIHNlcmlhbGl6ZVJlcXVlc3Qob3BlcmF0aW9uU2NoZW1hLCBpbnB1dCwgY29udGV4dCkge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gYXdhaXQgc3VwZXIuc2VyaWFsaXplUmVxdWVzdChvcGVyYXRpb25TY2hlbWEsIGlucHV0LCBjb250ZXh0KTtcbiAgICAgICAgaWYgKCFyZXF1ZXN0LnBhdGguZW5kc1dpdGgoXCIvXCIpKSB7XG4gICAgICAgICAgICByZXF1ZXN0LnBhdGggKz0gXCIvXCI7XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbihyZXF1ZXN0LmhlYWRlcnMsIHtcbiAgICAgICAgICAgIFwiY29udGVudC10eXBlXCI6IGBhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWRgLFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGRlcmVmKG9wZXJhdGlvblNjaGVtYS5pbnB1dCkgPT09IFwidW5pdFwiIHx8ICFyZXF1ZXN0LmJvZHkpIHtcbiAgICAgICAgICAgIHJlcXVlc3QuYm9keSA9IFwiXCI7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYWN0aW9uID0gb3BlcmF0aW9uU2NoZW1hLm5hbWUuc3BsaXQoXCIjXCIpWzFdID8/IG9wZXJhdGlvblNjaGVtYS5uYW1lO1xuICAgICAgICByZXF1ZXN0LmJvZHkgPSBgQWN0aW9uPSR7YWN0aW9ufSZWZXJzaW9uPSR7dGhpcy5vcHRpb25zLnZlcnNpb259YCArIHJlcXVlc3QuYm9keTtcbiAgICAgICAgaWYgKHJlcXVlc3QuYm9keS5lbmRzV2l0aChcIiZcIikpIHtcbiAgICAgICAgICAgIHJlcXVlc3QuYm9keSA9IHJlcXVlc3QuYm9keS5zbGljZSgtMSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlcXVlc3Q7XG4gICAgfVxuICAgIGFzeW5jIGRlc2VyaWFsaXplUmVzcG9uc2Uob3BlcmF0aW9uU2NoZW1hLCBjb250ZXh0LCByZXNwb25zZSkge1xuICAgICAgICBjb25zdCBkZXNlcmlhbGl6ZXIgPSB0aGlzLmRlc2VyaWFsaXplcjtcbiAgICAgICAgY29uc3QgbnMgPSBOb3JtYWxpemVkU2NoZW1hLm9mKG9wZXJhdGlvblNjaGVtYS5vdXRwdXQpO1xuICAgICAgICBjb25zdCBkYXRhT2JqZWN0ID0ge307XG4gICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXNDb2RlID49IDMwMCkge1xuICAgICAgICAgICAgY29uc3QgYnl0ZXMgPSBhd2FpdCBjb2xsZWN0Qm9keShyZXNwb25zZS5ib2R5LCBjb250ZXh0KTtcbiAgICAgICAgICAgIGlmIChieXRlcy5ieXRlTGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oZGF0YU9iamVjdCwgYXdhaXQgZGVzZXJpYWxpemVyLnJlYWQoMTUsIGJ5dGVzKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmhhbmRsZUVycm9yKG9wZXJhdGlvblNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UsIGRhdGFPYmplY3QsIHRoaXMuZGVzZXJpYWxpemVNZXRhZGF0YShyZXNwb25zZSkpO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgaGVhZGVyIGluIHJlc3BvbnNlLmhlYWRlcnMpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gcmVzcG9uc2UuaGVhZGVyc1toZWFkZXJdO1xuICAgICAgICAgICAgZGVsZXRlIHJlc3BvbnNlLmhlYWRlcnNbaGVhZGVyXTtcbiAgICAgICAgICAgIHJlc3BvbnNlLmhlYWRlcnNbaGVhZGVyLnRvTG93ZXJDYXNlKCldID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc2hvcnROYW1lID0gb3BlcmF0aW9uU2NoZW1hLm5hbWUuc3BsaXQoXCIjXCIpWzFdID8/IG9wZXJhdGlvblNjaGVtYS5uYW1lO1xuICAgICAgICBjb25zdCBhd3NRdWVyeVJlc3VsdEtleSA9IG5zLmlzU3RydWN0U2NoZW1hKCkgJiYgdGhpcy51c2VOZXN0ZWRSZXN1bHQoKSA/IHNob3J0TmFtZSArIFwiUmVzdWx0XCIgOiB1bmRlZmluZWQ7XG4gICAgICAgIGNvbnN0IGJ5dGVzID0gYXdhaXQgY29sbGVjdEJvZHkocmVzcG9uc2UuYm9keSwgY29udGV4dCk7XG4gICAgICAgIGlmIChieXRlcy5ieXRlTGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihkYXRhT2JqZWN0LCBhd2FpdCBkZXNlcmlhbGl6ZXIucmVhZChucywgYnl0ZXMsIGF3c1F1ZXJ5UmVzdWx0S2V5KSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgb3V0cHV0ID0ge1xuICAgICAgICAgICAgJG1ldGFkYXRhOiB0aGlzLmRlc2VyaWFsaXplTWV0YWRhdGEocmVzcG9uc2UpLFxuICAgICAgICAgICAgLi4uZGF0YU9iamVjdCxcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIG91dHB1dDtcbiAgICB9XG4gICAgdXNlTmVzdGVkUmVzdWx0KCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgYXN5bmMgaGFuZGxlRXJyb3Iob3BlcmF0aW9uU2NoZW1hLCBjb250ZXh0LCByZXNwb25zZSwgZGF0YU9iamVjdCwgbWV0YWRhdGEpIHtcbiAgICAgICAgY29uc3QgZXJyb3JJZGVudGlmaWVyID0gdGhpcy5sb2FkUXVlcnlFcnJvckNvZGUocmVzcG9uc2UsIGRhdGFPYmplY3QpID8/IFwiVW5rbm93blwiO1xuICAgICAgICBjb25zdCBlcnJvckRhdGEgPSB0aGlzLmxvYWRRdWVyeUVycm9yKGRhdGFPYmplY3QpID8/IHt9O1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gdGhpcy5sb2FkUXVlcnlFcnJvck1lc3NhZ2UoZGF0YU9iamVjdCk7XG4gICAgICAgIGVycm9yRGF0YS5tZXNzYWdlID0gbWVzc2FnZTtcbiAgICAgICAgZXJyb3JEYXRhLkVycm9yID0ge1xuICAgICAgICAgICAgVHlwZTogZXJyb3JEYXRhLlR5cGUsXG4gICAgICAgICAgICBDb2RlOiBlcnJvckRhdGEuQ29kZSxcbiAgICAgICAgICAgIE1lc3NhZ2U6IG1lc3NhZ2UsXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHsgZXJyb3JTY2hlbWEsIGVycm9yTWV0YWRhdGEgfSA9IGF3YWl0IHRoaXMubWl4aW4uZ2V0RXJyb3JTY2hlbWFPclRocm93QmFzZUV4Y2VwdGlvbihlcnJvcklkZW50aWZpZXIsIHRoaXMub3B0aW9ucy5kZWZhdWx0TmFtZXNwYWNlLCByZXNwb25zZSwgZXJyb3JEYXRhLCBtZXRhZGF0YSwgdGhpcy5taXhpbi5maW5kUXVlcnlDb21wYXRpYmxlRXJyb3IpO1xuICAgICAgICBjb25zdCBucyA9IE5vcm1hbGl6ZWRTY2hlbWEub2YoZXJyb3JTY2hlbWEpO1xuICAgICAgICBjb25zdCBFcnJvckN0b3IgPSBUeXBlUmVnaXN0cnkuZm9yKGVycm9yU2NoZW1hWzFdKS5nZXRFcnJvckN0b3IoZXJyb3JTY2hlbWEpID8/IEVycm9yO1xuICAgICAgICBjb25zdCBleGNlcHRpb24gPSBuZXcgRXJyb3JDdG9yKG1lc3NhZ2UpO1xuICAgICAgICBjb25zdCBvdXRwdXQgPSB7XG4gICAgICAgICAgICBUeXBlOiBlcnJvckRhdGEuRXJyb3IuVHlwZSxcbiAgICAgICAgICAgIENvZGU6IGVycm9yRGF0YS5FcnJvci5Db2RlLFxuICAgICAgICAgICAgRXJyb3I6IGVycm9yRGF0YS5FcnJvcixcbiAgICAgICAgfTtcbiAgICAgICAgZm9yIChjb25zdCBbbmFtZSwgbWVtYmVyXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBtZW1iZXIuZ2V0TWVyZ2VkVHJhaXRzKCkueG1sTmFtZSA/PyBuYW1lO1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBlcnJvckRhdGFbdGFyZ2V0XSA/PyBkYXRhT2JqZWN0W3RhcmdldF07XG4gICAgICAgICAgICBvdXRwdXRbbmFtZV0gPSB0aGlzLmRlc2VyaWFsaXplci5yZWFkU2NoZW1hKG1lbWJlciwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IHRoaXMubWl4aW4uZGVjb3JhdGVTZXJ2aWNlRXhjZXB0aW9uKE9iamVjdC5hc3NpZ24oZXhjZXB0aW9uLCBlcnJvck1ldGFkYXRhLCB7XG4gICAgICAgICAgICAkZmF1bHQ6IG5zLmdldE1lcmdlZFRyYWl0cygpLmVycm9yLFxuICAgICAgICAgICAgbWVzc2FnZSxcbiAgICAgICAgfSwgb3V0cHV0KSwgZGF0YU9iamVjdCk7XG4gICAgfVxuICAgIGxvYWRRdWVyeUVycm9yQ29kZShvdXRwdXQsIGRhdGEpIHtcbiAgICAgICAgY29uc3QgY29kZSA9IChkYXRhLkVycm9ycz8uWzBdPy5FcnJvciA/PyBkYXRhLkVycm9ycz8uRXJyb3IgPz8gZGF0YS5FcnJvcik/LkNvZGU7XG4gICAgICAgIGlmIChjb2RlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBjb2RlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvdXRwdXQuc3RhdHVzQ29kZSA9PSA0MDQpIHtcbiAgICAgICAgICAgIHJldHVybiBcIk5vdEZvdW5kXCI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbG9hZFF1ZXJ5RXJyb3IoZGF0YSkge1xuICAgICAgICByZXR1cm4gZGF0YS5FcnJvcnM/LlswXT8uRXJyb3IgPz8gZGF0YS5FcnJvcnM/LkVycm9yID8/IGRhdGEuRXJyb3I7XG4gICAgfVxuICAgIGxvYWRRdWVyeUVycm9yTWVzc2FnZShkYXRhKSB7XG4gICAgICAgIGNvbnN0IGVycm9yRGF0YSA9IHRoaXMubG9hZFF1ZXJ5RXJyb3IoZGF0YSk7XG4gICAgICAgIHJldHVybiBlcnJvckRhdGE/Lm1lc3NhZ2UgPz8gZXJyb3JEYXRhPy5NZXNzYWdlID8/IGRhdGEubWVzc2FnZSA/PyBkYXRhLk1lc3NhZ2UgPz8gXCJVbmtub3duXCI7XG4gICAgfVxuICAgIGdldERlZmF1bHRDb250ZW50VHlwZSgpIHtcbiAgICAgICAgcmV0dXJuIFwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkXCI7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IEF3c1F1ZXJ5UHJvdG9jb2wgfSBmcm9tIFwiLi9Bd3NRdWVyeVByb3RvY29sXCI7XG5leHBvcnQgY2xhc3MgQXdzRWMyUXVlcnlQcm90b2NvbCBleHRlbmRzIEF3c1F1ZXJ5UHJvdG9jb2wge1xuICAgIG9wdGlvbnM7XG4gICAgY29uc3RydWN0b3Iob3B0aW9ucykge1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgICAgICAgY29uc3QgZWMyU2V0dGluZ3MgPSB7XG4gICAgICAgICAgICBjYXBpdGFsaXplS2V5czogdHJ1ZSxcbiAgICAgICAgICAgIGZsYXR0ZW5MaXN0czogdHJ1ZSxcbiAgICAgICAgICAgIHNlcmlhbGl6ZUVtcHR5TGlzdHM6IGZhbHNlLFxuICAgICAgICAgICAgZWMyOiB0cnVlLFxuICAgICAgICB9O1xuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMuc2VyaWFsaXplci5zZXR0aW5ncywgZWMyU2V0dGluZ3MpO1xuICAgIH1cbiAgICB1c2VOZXN0ZWRSZXN1bHQoKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgcGFyc2VYTUwgfSBmcm9tIFwiQGF3cy1zZGsveG1sLWJ1aWxkZXJcIjtcbmltcG9ydCB7IGdldFZhbHVlRnJvbVRleHROb2RlIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgY29sbGVjdEJvZHlTdHJpbmcgfSBmcm9tIFwiLi4vY29tbW9uXCI7XG5leHBvcnQgY29uc3QgcGFyc2VYbWxCb2R5ID0gKHN0cmVhbUJvZHksIGNvbnRleHQpID0+IGNvbGxlY3RCb2R5U3RyaW5nKHN0cmVhbUJvZHksIGNvbnRleHQpLnRoZW4oKGVuY29kZWQpID0+IHtcbiAgICBpZiAoZW5jb2RlZC5sZW5ndGgpIHtcbiAgICAgICAgbGV0IHBhcnNlZE9iajtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHBhcnNlZE9iaiA9IHBhcnNlWE1MKGVuY29kZWQpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICBpZiAoZSAmJiB0eXBlb2YgZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCBcIiRyZXNwb25zZUJvZHlUZXh0XCIsIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGVuY29kZWQsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHRleHROb2RlTmFtZSA9IFwiI3RleHRcIjtcbiAgICAgICAgY29uc3Qga2V5ID0gT2JqZWN0LmtleXMocGFyc2VkT2JqKVswXTtcbiAgICAgICAgY29uc3QgcGFyc2VkT2JqVG9SZXR1cm4gPSBwYXJzZWRPYmpba2V5XTtcbiAgICAgICAgaWYgKHBhcnNlZE9ialRvUmV0dXJuW3RleHROb2RlTmFtZV0pIHtcbiAgICAgICAgICAgIHBhcnNlZE9ialRvUmV0dXJuW2tleV0gPSBwYXJzZWRPYmpUb1JldHVyblt0ZXh0Tm9kZU5hbWVdO1xuICAgICAgICAgICAgZGVsZXRlIHBhcnNlZE9ialRvUmV0dXJuW3RleHROb2RlTmFtZV07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGdldFZhbHVlRnJvbVRleHROb2RlKHBhcnNlZE9ialRvUmV0dXJuKTtcbiAgICB9XG4gICAgcmV0dXJuIHt9O1xufSk7XG5leHBvcnQgY29uc3QgcGFyc2VYbWxFcnJvckJvZHkgPSBhc3luYyAoZXJyb3JCb2R5LCBjb250ZXh0KSA9PiB7XG4gICAgY29uc3QgdmFsdWUgPSBhd2FpdCBwYXJzZVhtbEJvZHkoZXJyb3JCb2R5LCBjb250ZXh0KTtcbiAgICBpZiAodmFsdWUuRXJyb3IpIHtcbiAgICAgICAgdmFsdWUuRXJyb3IubWVzc2FnZSA9IHZhbHVlLkVycm9yLm1lc3NhZ2UgPz8gdmFsdWUuRXJyb3IuTWVzc2FnZTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlO1xufTtcbmV4cG9ydCBjb25zdCBsb2FkUmVzdFhtbEVycm9yQ29kZSA9IChvdXRwdXQsIGRhdGEpID0+IHtcbiAgICBpZiAoZGF0YT8uRXJyb3I/LkNvZGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gZGF0YS5FcnJvci5Db2RlO1xuICAgIH1cbiAgICBpZiAoZGF0YT8uQ29kZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiBkYXRhLkNvZGU7XG4gICAgfVxuICAgIGlmIChvdXRwdXQuc3RhdHVzQ29kZSA9PSA0MDQpIHtcbiAgICAgICAgcmV0dXJuIFwiTm90Rm91bmRcIjtcbiAgICB9XG59O1xuIiwgImltcG9ydCB7IFhtbE5vZGUsIFhtbFRleHQgfSBmcm9tIFwiQGF3cy1zZGsveG1sLWJ1aWxkZXJcIjtcbmltcG9ydCB7IGRldGVybWluZVRpbWVzdGFtcEZvcm1hdCB9IGZyb20gXCJAc21pdGh5L2NvcmUvcHJvdG9jb2xzXCI7XG5pbXBvcnQgeyBOb3JtYWxpemVkU2NoZW1hIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IGdlbmVyYXRlSWRlbXBvdGVuY3lUb2tlbiwgTnVtZXJpY1ZhbHVlIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zZXJkZVwiO1xuaW1wb3J0IHsgZGF0ZVRvVXRjU3RyaW5nIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgZnJvbUJhc2U2NCwgdG9CYXNlNjQgfSBmcm9tIFwiQHNtaXRoeS91dGlsLWJhc2U2NFwiO1xuaW1wb3J0IHsgU2VyZGVDb250ZXh0Q29uZmlnIH0gZnJvbSBcIi4uL0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dFwiO1xuZXhwb3J0IGNsYXNzIFhtbFNoYXBlU2VyaWFsaXplciBleHRlbmRzIFNlcmRlQ29udGV4dENvbmZpZyB7XG4gICAgc2V0dGluZ3M7XG4gICAgc3RyaW5nQnVmZmVyO1xuICAgIGJ5dGVCdWZmZXI7XG4gICAgYnVmZmVyO1xuICAgIGNvbnN0cnVjdG9yKHNldHRpbmdzKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuc2V0dGluZ3MgPSBzZXR0aW5ncztcbiAgICB9XG4gICAgd3JpdGUoc2NoZW1hLCB2YWx1ZSkge1xuICAgICAgICBjb25zdCBucyA9IE5vcm1hbGl6ZWRTY2hlbWEub2Yoc2NoZW1hKTtcbiAgICAgICAgaWYgKG5zLmlzU3RyaW5nU2NoZW1hKCkgJiYgdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICB0aGlzLnN0cmluZ0J1ZmZlciA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKG5zLmlzQmxvYlNjaGVtYSgpKSB7XG4gICAgICAgICAgICB0aGlzLmJ5dGVCdWZmZXIgPVxuICAgICAgICAgICAgICAgIFwiYnl0ZUxlbmd0aFwiIGluIHZhbHVlXG4gICAgICAgICAgICAgICAgICAgID8gdmFsdWVcbiAgICAgICAgICAgICAgICAgICAgOiAodGhpcy5zZXJkZUNvbnRleHQ/LmJhc2U2NERlY29kZXIgPz8gZnJvbUJhc2U2NCkodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5idWZmZXIgPSB0aGlzLndyaXRlU3RydWN0KG5zLCB2YWx1ZSwgdW5kZWZpbmVkKTtcbiAgICAgICAgICAgIGNvbnN0IHRyYWl0cyA9IG5zLmdldE1lcmdlZFRyYWl0cygpO1xuICAgICAgICAgICAgaWYgKHRyYWl0cy5odHRwUGF5bG9hZCAmJiAhdHJhaXRzLnhtbE5hbWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmJ1ZmZlci53aXRoTmFtZShucy5nZXROYW1lKCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGZsdXNoKCkge1xuICAgICAgICBpZiAodGhpcy5ieXRlQnVmZmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IGJ5dGVzID0gdGhpcy5ieXRlQnVmZmVyO1xuICAgICAgICAgICAgZGVsZXRlIHRoaXMuYnl0ZUJ1ZmZlcjtcbiAgICAgICAgICAgIHJldHVybiBieXRlcztcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5zdHJpbmdCdWZmZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgY29uc3Qgc3RyID0gdGhpcy5zdHJpbmdCdWZmZXI7XG4gICAgICAgICAgICBkZWxldGUgdGhpcy5zdHJpbmdCdWZmZXI7XG4gICAgICAgICAgICByZXR1cm4gc3RyO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGJ1ZmZlciA9IHRoaXMuYnVmZmVyO1xuICAgICAgICBpZiAodGhpcy5zZXR0aW5ncy54bWxOYW1lc3BhY2UpIHtcbiAgICAgICAgICAgIGlmICghYnVmZmVyPy5hdHRyaWJ1dGVzPy5bXCJ4bWxuc1wiXSkge1xuICAgICAgICAgICAgICAgIGJ1ZmZlci5hZGRBdHRyaWJ1dGUoXCJ4bWxuc1wiLCB0aGlzLnNldHRpbmdzLnhtbE5hbWVzcGFjZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZGVsZXRlIHRoaXMuYnVmZmVyO1xuICAgICAgICByZXR1cm4gYnVmZmVyLnRvU3RyaW5nKCk7XG4gICAgfVxuICAgIHdyaXRlU3RydWN0KG5zLCB2YWx1ZSwgcGFyZW50WG1sbnMpIHtcbiAgICAgICAgY29uc3QgdHJhaXRzID0gbnMuZ2V0TWVyZ2VkVHJhaXRzKCk7XG4gICAgICAgIGNvbnN0IG5hbWUgPSBucy5pc01lbWJlclNjaGVtYSgpICYmICF0cmFpdHMuaHR0cFBheWxvYWRcbiAgICAgICAgICAgID8gbnMuZ2V0TWVtYmVyVHJhaXRzKCkueG1sTmFtZSA/PyBucy5nZXRNZW1iZXJOYW1lKClcbiAgICAgICAgICAgIDogdHJhaXRzLnhtbE5hbWUgPz8gbnMuZ2V0TmFtZSgpO1xuICAgICAgICBpZiAoIW5hbWUgfHwgIW5zLmlzU3RydWN0U2NoZW1hKCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSB4bWwgc2VyaWFsaXplciwgY2Fubm90IHdyaXRlIHN0cnVjdCB3aXRoIGVtcHR5IG5hbWUgb3Igbm9uLXN0cnVjdCwgc2NoZW1hPSR7bnMuZ2V0TmFtZSh0cnVlKX0uYCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc3RydWN0WG1sTm9kZSA9IFhtbE5vZGUub2YobmFtZSk7XG4gICAgICAgIGNvbnN0IFt4bWxuc0F0dHIsIHhtbG5zXSA9IHRoaXMuZ2V0WG1sbnNBdHRyaWJ1dGUobnMsIHBhcmVudFhtbG5zKTtcbiAgICAgICAgZm9yIChjb25zdCBbbWVtYmVyTmFtZSwgbWVtYmVyU2NoZW1hXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICBjb25zdCB2YWwgPSB2YWx1ZVttZW1iZXJOYW1lXTtcbiAgICAgICAgICAgIGlmICh2YWwgIT0gbnVsbCB8fCBtZW1iZXJTY2hlbWEuaXNJZGVtcG90ZW5jeVRva2VuKCkpIHtcbiAgICAgICAgICAgICAgICBpZiAobWVtYmVyU2NoZW1hLmdldE1lcmdlZFRyYWl0cygpLnhtbEF0dHJpYnV0ZSkge1xuICAgICAgICAgICAgICAgICAgICBzdHJ1Y3RYbWxOb2RlLmFkZEF0dHJpYnV0ZShtZW1iZXJTY2hlbWEuZ2V0TWVyZ2VkVHJhaXRzKCkueG1sTmFtZSA/PyBtZW1iZXJOYW1lLCB0aGlzLndyaXRlU2ltcGxlKG1lbWJlclNjaGVtYSwgdmFsKSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAobWVtYmVyU2NoZW1hLmlzTGlzdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMud3JpdGVMaXN0KG1lbWJlclNjaGVtYSwgdmFsLCBzdHJ1Y3RYbWxOb2RlLCB4bWxucyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKG1lbWJlclNjaGVtYS5pc01hcFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMud3JpdGVNYXAobWVtYmVyU2NoZW1hLCB2YWwsIHN0cnVjdFhtbE5vZGUsIHhtbG5zKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAobWVtYmVyU2NoZW1hLmlzU3RydWN0U2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgc3RydWN0WG1sTm9kZS5hZGRDaGlsZE5vZGUodGhpcy53cml0ZVN0cnVjdChtZW1iZXJTY2hlbWEsIHZhbCwgeG1sbnMpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1lbWJlck5vZGUgPSBYbWxOb2RlLm9mKG1lbWJlclNjaGVtYS5nZXRNZXJnZWRUcmFpdHMoKS54bWxOYW1lID8/IG1lbWJlclNjaGVtYS5nZXRNZW1iZXJOYW1lKCkpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLndyaXRlU2ltcGxlSW50byhtZW1iZXJTY2hlbWEsIHZhbCwgbWVtYmVyTm9kZSwgeG1sbnMpO1xuICAgICAgICAgICAgICAgICAgICBzdHJ1Y3RYbWxOb2RlLmFkZENoaWxkTm9kZShtZW1iZXJOb2RlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgeyAkdW5rbm93biB9ID0gdmFsdWU7XG4gICAgICAgIGlmICgkdW5rbm93biAmJiBucy5pc1VuaW9uU2NoZW1hKCkgJiYgQXJyYXkuaXNBcnJheSgkdW5rbm93bikgJiYgT2JqZWN0LmtleXModmFsdWUpLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgY29uc3QgW2ssIHZdID0gJHVua25vd247XG4gICAgICAgICAgICBjb25zdCBub2RlID0gWG1sTm9kZS5vZihrKTtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdiAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIFhtbE5vZGUgfHwgdmFsdWUgaW5zdGFuY2VvZiBYbWxUZXh0KSB7XG4gICAgICAgICAgICAgICAgICAgIHN0cnVjdFhtbE5vZGUuYWRkQ2hpbGROb2RlKHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQGF3cy1zZGsgLSAkdW5rbm93biB1bmlvbiBtZW1iZXIgaW4gWE1MIHJlcXVpcmVzIGAgK1xuICAgICAgICAgICAgICAgICAgICAgICAgYHZhbHVlIG9mIHR5cGUgc3RyaW5nLCBAYXdzLXNkay94bWwtYnVpbGRlcjo6WG1sTm9kZSBvciBYbWxUZXh0LmApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMud3JpdGVTaW1wbGVJbnRvKDAsIHYsIG5vZGUsIHhtbG5zKTtcbiAgICAgICAgICAgIHN0cnVjdFhtbE5vZGUuYWRkQ2hpbGROb2RlKG5vZGUpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh4bWxucykge1xuICAgICAgICAgICAgc3RydWN0WG1sTm9kZS5hZGRBdHRyaWJ1dGUoeG1sbnNBdHRyLCB4bWxucyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN0cnVjdFhtbE5vZGU7XG4gICAgfVxuICAgIHdyaXRlTGlzdChsaXN0TWVtYmVyLCBhcnJheSwgY29udGFpbmVyLCBwYXJlbnRYbWxucykge1xuICAgICAgICBpZiAoIWxpc3RNZW1iZXIuaXNNZW1iZXJTY2hlbWEoKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBAYXdzLXNkay9jb3JlL3Byb3RvY29scyAtIHhtbCBzZXJpYWxpemVyLCBjYW5ub3Qgd3JpdGUgbm9uLW1lbWJlciBsaXN0OiAke2xpc3RNZW1iZXIuZ2V0TmFtZSh0cnVlKX1gKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBsaXN0VHJhaXRzID0gbGlzdE1lbWJlci5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgY29uc3QgbGlzdFZhbHVlU2NoZW1hID0gbGlzdE1lbWJlci5nZXRWYWx1ZVNjaGVtYSgpO1xuICAgICAgICBjb25zdCBsaXN0VmFsdWVUcmFpdHMgPSBsaXN0VmFsdWVTY2hlbWEuZ2V0TWVyZ2VkVHJhaXRzKCk7XG4gICAgICAgIGNvbnN0IHNwYXJzZSA9ICEhbGlzdFZhbHVlVHJhaXRzLnNwYXJzZTtcbiAgICAgICAgY29uc3QgZmxhdCA9ICEhbGlzdFRyYWl0cy54bWxGbGF0dGVuZWQ7XG4gICAgICAgIGNvbnN0IFt4bWxuc0F0dHIsIHhtbG5zXSA9IHRoaXMuZ2V0WG1sbnNBdHRyaWJ1dGUobGlzdE1lbWJlciwgcGFyZW50WG1sbnMpO1xuICAgICAgICBjb25zdCB3cml0ZUl0ZW0gPSAoY29udGFpbmVyLCB2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgaWYgKGxpc3RWYWx1ZVNjaGVtYS5pc0xpc3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVMaXN0KGxpc3RWYWx1ZVNjaGVtYSwgQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV0sIGNvbnRhaW5lciwgeG1sbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAobGlzdFZhbHVlU2NoZW1hLmlzTWFwU2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlTWFwKGxpc3RWYWx1ZVNjaGVtYSwgdmFsdWUsIGNvbnRhaW5lciwgeG1sbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAobGlzdFZhbHVlU2NoZW1hLmlzU3RydWN0U2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgPSB0aGlzLndyaXRlU3RydWN0KGxpc3RWYWx1ZVNjaGVtYSwgdmFsdWUsIHhtbG5zKTtcbiAgICAgICAgICAgICAgICBjb250YWluZXIuYWRkQ2hpbGROb2RlKHN0cnVjdC53aXRoTmFtZShmbGF0ID8gbGlzdFRyYWl0cy54bWxOYW1lID8/IGxpc3RNZW1iZXIuZ2V0TWVtYmVyTmFtZSgpIDogbGlzdFZhbHVlVHJhaXRzLnhtbE5hbWUgPz8gXCJtZW1iZXJcIikpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbGlzdEl0ZW1Ob2RlID0gWG1sTm9kZS5vZihmbGF0ID8gbGlzdFRyYWl0cy54bWxOYW1lID8/IGxpc3RNZW1iZXIuZ2V0TWVtYmVyTmFtZSgpIDogbGlzdFZhbHVlVHJhaXRzLnhtbE5hbWUgPz8gXCJtZW1iZXJcIik7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZVNpbXBsZUludG8obGlzdFZhbHVlU2NoZW1hLCB2YWx1ZSwgbGlzdEl0ZW1Ob2RlLCB4bWxucyk7XG4gICAgICAgICAgICAgICAgY29udGFpbmVyLmFkZENoaWxkTm9kZShsaXN0SXRlbU5vZGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBpZiAoZmxhdCkge1xuICAgICAgICAgICAgZm9yIChjb25zdCB2YWx1ZSBvZiBhcnJheSkge1xuICAgICAgICAgICAgICAgIGlmIChzcGFyc2UgfHwgdmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICB3cml0ZUl0ZW0oY29udGFpbmVyLCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgbGlzdE5vZGUgPSBYbWxOb2RlLm9mKGxpc3RUcmFpdHMueG1sTmFtZSA/PyBsaXN0TWVtYmVyLmdldE1lbWJlck5hbWUoKSk7XG4gICAgICAgICAgICBpZiAoeG1sbnMpIHtcbiAgICAgICAgICAgICAgICBsaXN0Tm9kZS5hZGRBdHRyaWJ1dGUoeG1sbnNBdHRyLCB4bWxucyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHZhbHVlIG9mIGFycmF5KSB7XG4gICAgICAgICAgICAgICAgaWYgKHNwYXJzZSB8fCB2YWx1ZSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHdyaXRlSXRlbShsaXN0Tm9kZSwgdmFsdWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnRhaW5lci5hZGRDaGlsZE5vZGUobGlzdE5vZGUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHdyaXRlTWFwKG1hcE1lbWJlciwgbWFwLCBjb250YWluZXIsIHBhcmVudFhtbG5zLCBjb250YWluZXJJc01hcCA9IGZhbHNlKSB7XG4gICAgICAgIGlmICghbWFwTWVtYmVyLmlzTWVtYmVyU2NoZW1hKCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSB4bWwgc2VyaWFsaXplciwgY2Fubm90IHdyaXRlIG5vbi1tZW1iZXIgbWFwOiAke21hcE1lbWJlci5nZXROYW1lKHRydWUpfWApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG1hcFRyYWl0cyA9IG1hcE1lbWJlci5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgY29uc3QgbWFwS2V5U2NoZW1hID0gbWFwTWVtYmVyLmdldEtleVNjaGVtYSgpO1xuICAgICAgICBjb25zdCBtYXBLZXlUcmFpdHMgPSBtYXBLZXlTY2hlbWEuZ2V0TWVyZ2VkVHJhaXRzKCk7XG4gICAgICAgIGNvbnN0IGtleVRhZyA9IG1hcEtleVRyYWl0cy54bWxOYW1lID8/IFwia2V5XCI7XG4gICAgICAgIGNvbnN0IG1hcFZhbHVlU2NoZW1hID0gbWFwTWVtYmVyLmdldFZhbHVlU2NoZW1hKCk7XG4gICAgICAgIGNvbnN0IG1hcFZhbHVlVHJhaXRzID0gbWFwVmFsdWVTY2hlbWEuZ2V0TWVyZ2VkVHJhaXRzKCk7XG4gICAgICAgIGNvbnN0IHZhbHVlVGFnID0gbWFwVmFsdWVUcmFpdHMueG1sTmFtZSA/PyBcInZhbHVlXCI7XG4gICAgICAgIGNvbnN0IHNwYXJzZSA9ICEhbWFwVmFsdWVUcmFpdHMuc3BhcnNlO1xuICAgICAgICBjb25zdCBmbGF0ID0gISFtYXBUcmFpdHMueG1sRmxhdHRlbmVkO1xuICAgICAgICBjb25zdCBbeG1sbnNBdHRyLCB4bWxuc10gPSB0aGlzLmdldFhtbG5zQXR0cmlidXRlKG1hcE1lbWJlciwgcGFyZW50WG1sbnMpO1xuICAgICAgICBjb25zdCBhZGRLZXlWYWx1ZSA9IChlbnRyeSwga2V5LCB2YWwpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGtleU5vZGUgPSBYbWxOb2RlLm9mKGtleVRhZywga2V5KTtcbiAgICAgICAgICAgIGNvbnN0IFtrZXlYbWxuc0F0dHIsIGtleVhtbG5zXSA9IHRoaXMuZ2V0WG1sbnNBdHRyaWJ1dGUobWFwS2V5U2NoZW1hLCB4bWxucyk7XG4gICAgICAgICAgICBpZiAoa2V5WG1sbnMpIHtcbiAgICAgICAgICAgICAgICBrZXlOb2RlLmFkZEF0dHJpYnV0ZShrZXlYbWxuc0F0dHIsIGtleVhtbG5zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVudHJ5LmFkZENoaWxkTm9kZShrZXlOb2RlKTtcbiAgICAgICAgICAgIGxldCB2YWx1ZU5vZGUgPSBYbWxOb2RlLm9mKHZhbHVlVGFnKTtcbiAgICAgICAgICAgIGlmIChtYXBWYWx1ZVNjaGVtYS5pc0xpc3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVMaXN0KG1hcFZhbHVlU2NoZW1hLCB2YWwsIHZhbHVlTm9kZSwgeG1sbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAobWFwVmFsdWVTY2hlbWEuaXNNYXBTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVNYXAobWFwVmFsdWVTY2hlbWEsIHZhbCwgdmFsdWVOb2RlLCB4bWxucywgdHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChtYXBWYWx1ZVNjaGVtYS5pc1N0cnVjdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgdmFsdWVOb2RlID0gdGhpcy53cml0ZVN0cnVjdChtYXBWYWx1ZVNjaGVtYSwgdmFsLCB4bWxucyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlU2ltcGxlSW50byhtYXBWYWx1ZVNjaGVtYSwgdmFsLCB2YWx1ZU5vZGUsIHhtbG5zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVudHJ5LmFkZENoaWxkTm9kZSh2YWx1ZU5vZGUpO1xuICAgICAgICB9O1xuICAgICAgICBpZiAoZmxhdCkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWxdIG9mIE9iamVjdC5lbnRyaWVzKG1hcCkpIHtcbiAgICAgICAgICAgICAgICBpZiAoc3BhcnNlIHx8IHZhbCAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVudHJ5ID0gWG1sTm9kZS5vZihtYXBUcmFpdHMueG1sTmFtZSA/PyBtYXBNZW1iZXIuZ2V0TWVtYmVyTmFtZSgpKTtcbiAgICAgICAgICAgICAgICAgICAgYWRkS2V5VmFsdWUoZW50cnksIGtleSwgdmFsKTtcbiAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyLmFkZENoaWxkTm9kZShlbnRyeSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgbGV0IG1hcE5vZGU7XG4gICAgICAgICAgICBpZiAoIWNvbnRhaW5lcklzTWFwKSB7XG4gICAgICAgICAgICAgICAgbWFwTm9kZSA9IFhtbE5vZGUub2YobWFwVHJhaXRzLnhtbE5hbWUgPz8gbWFwTWVtYmVyLmdldE1lbWJlck5hbWUoKSk7XG4gICAgICAgICAgICAgICAgaWYgKHhtbG5zKSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcE5vZGUuYWRkQXR0cmlidXRlKHhtbG5zQXR0ciwgeG1sbnMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb250YWluZXIuYWRkQ2hpbGROb2RlKG1hcE5vZGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWxdIG9mIE9iamVjdC5lbnRyaWVzKG1hcCkpIHtcbiAgICAgICAgICAgICAgICBpZiAoc3BhcnNlIHx8IHZhbCAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVudHJ5ID0gWG1sTm9kZS5vZihcImVudHJ5XCIpO1xuICAgICAgICAgICAgICAgICAgICBhZGRLZXlWYWx1ZShlbnRyeSwga2V5LCB2YWwpO1xuICAgICAgICAgICAgICAgICAgICAoY29udGFpbmVySXNNYXAgPyBjb250YWluZXIgOiBtYXBOb2RlKS5hZGRDaGlsZE5vZGUoZW50cnkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICB3cml0ZVNpbXBsZShfc2NoZW1hLCB2YWx1ZSkge1xuICAgICAgICBpZiAobnVsbCA9PT0gdmFsdWUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkBhd3Mtc2RrL2NvcmUvcHJvdG9jb2xzIC0gKFhNTCBzZXJpYWxpemVyKSBjYW5ub3Qgd3JpdGUgbnVsbCB2YWx1ZS5cIik7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbnMgPSBOb3JtYWxpemVkU2NoZW1hLm9mKF9zY2hlbWEpO1xuICAgICAgICBsZXQgbm9kZUNvbnRlbnRzID0gbnVsbDtcbiAgICAgICAgaWYgKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgaWYgKG5zLmlzQmxvYlNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgbm9kZUNvbnRlbnRzID0gKHRoaXMuc2VyZGVDb250ZXh0Py5iYXNlNjRFbmNvZGVyID8/IHRvQmFzZTY0KSh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChucy5pc1RpbWVzdGFtcFNjaGVtYSgpICYmIHZhbHVlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZvcm1hdCA9IGRldGVybWluZVRpbWVzdGFtcEZvcm1hdChucywgdGhpcy5zZXR0aW5ncyk7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChmb3JtYXQpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgICAgICAgICAgICAgbm9kZUNvbnRlbnRzID0gdmFsdWUudG9JU09TdHJpbmcoKS5yZXBsYWNlKFwiLjAwMFpcIiwgXCJaXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vZGVDb250ZW50cyA9IGRhdGVUb1V0Y1N0cmluZyh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA3OlxuICAgICAgICAgICAgICAgICAgICAgICAgbm9kZUNvbnRlbnRzID0gU3RyaW5nKHZhbHVlLmdldFRpbWUoKSAvIDEwMDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oXCJNaXNzaW5nIHRpbWVzdGFtcCBmb3JtYXQsIHVzaW5nIGh0dHAgZGF0ZVwiLCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBub2RlQ29udGVudHMgPSBkYXRlVG9VdGNTdHJpbmcodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAobnMuaXNCaWdEZWNpbWFsU2NoZW1hKCkgJiYgdmFsdWUpIHtcbiAgICAgICAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBOdW1lcmljVmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlLnN0cmluZztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChucy5pc01hcFNjaGVtYSgpIHx8IG5zLmlzTGlzdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSB4bWwgc2VyaWFsaXplciwgY2Fubm90IGNhbGwgX3dyaXRlKCkgb24gTGlzdC9NYXAgc2NoZW1hLCBjYWxsIHdyaXRlTGlzdCBvciB3cml0ZU1hcCgpIGluc3RlYWQuXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBAYXdzLXNkay9jb3JlL3Byb3RvY29scyAtIHhtbCBzZXJpYWxpemVyLCB1bmhhbmRsZWQgc2NoZW1hIHR5cGUgZm9yIG9iamVjdCB2YWx1ZSBhbmQgc2NoZW1hOiAke25zLmdldE5hbWUodHJ1ZSl9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzQm9vbGVhblNjaGVtYSgpIHx8IG5zLmlzTnVtZXJpY1NjaGVtYSgpIHx8IG5zLmlzQmlnSW50ZWdlclNjaGVtYSgpIHx8IG5zLmlzQmlnRGVjaW1hbFNjaGVtYSgpKSB7XG4gICAgICAgICAgICBub2RlQ29udGVudHMgPSBTdHJpbmcodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChucy5pc1N0cmluZ1NjaGVtYSgpKSB7XG4gICAgICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCAmJiBucy5pc0lkZW1wb3RlbmN5VG9rZW4oKSkge1xuICAgICAgICAgICAgICAgIG5vZGVDb250ZW50cyA9IGdlbmVyYXRlSWRlbXBvdGVuY3lUb2tlbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgbm9kZUNvbnRlbnRzID0gU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAobm9kZUNvbnRlbnRzID09PSBudWxsKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuaGFuZGxlZCBzY2hlbWEtdmFsdWUgcGFpciAke25zLmdldE5hbWUodHJ1ZSl9PSR7dmFsdWV9YCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5vZGVDb250ZW50cztcbiAgICB9XG4gICAgd3JpdGVTaW1wbGVJbnRvKF9zY2hlbWEsIHZhbHVlLCBpbnRvLCBwYXJlbnRYbWxucykge1xuICAgICAgICBjb25zdCBub2RlQ29udGVudHMgPSB0aGlzLndyaXRlU2ltcGxlKF9zY2hlbWEsIHZhbHVlKTtcbiAgICAgICAgY29uc3QgbnMgPSBOb3JtYWxpemVkU2NoZW1hLm9mKF9zY2hlbWEpO1xuICAgICAgICBjb25zdCBjb250ZW50ID0gbmV3IFhtbFRleHQobm9kZUNvbnRlbnRzKTtcbiAgICAgICAgY29uc3QgW3htbG5zQXR0ciwgeG1sbnNdID0gdGhpcy5nZXRYbWxuc0F0dHJpYnV0ZShucywgcGFyZW50WG1sbnMpO1xuICAgICAgICBpZiAoeG1sbnMpIHtcbiAgICAgICAgICAgIGludG8uYWRkQXR0cmlidXRlKHhtbG5zQXR0ciwgeG1sbnMpO1xuICAgICAgICB9XG4gICAgICAgIGludG8uYWRkQ2hpbGROb2RlKGNvbnRlbnQpO1xuICAgIH1cbiAgICBnZXRYbWxuc0F0dHJpYnV0ZShucywgcGFyZW50WG1sbnMpIHtcbiAgICAgICAgY29uc3QgdHJhaXRzID0gbnMuZ2V0TWVyZ2VkVHJhaXRzKCk7XG4gICAgICAgIGNvbnN0IFtwcmVmaXgsIHhtbG5zXSA9IHRyYWl0cy54bWxOYW1lc3BhY2UgPz8gW107XG4gICAgICAgIGlmICh4bWxucyAmJiB4bWxucyAhPT0gcGFyZW50WG1sbnMpIHtcbiAgICAgICAgICAgIHJldHVybiBbcHJlZml4ID8gYHhtbG5zOiR7cHJlZml4fWAgOiBcInhtbG5zXCIsIHhtbG5zXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gW3ZvaWQgMCwgdm9pZCAwXTtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgU2VyZGVDb250ZXh0Q29uZmlnIH0gZnJvbSBcIi4uL0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dFwiO1xuaW1wb3J0IHsgWG1sU2hhcGVEZXNlcmlhbGl6ZXIgfSBmcm9tIFwiLi9YbWxTaGFwZURlc2VyaWFsaXplclwiO1xuaW1wb3J0IHsgWG1sU2hhcGVTZXJpYWxpemVyIH0gZnJvbSBcIi4vWG1sU2hhcGVTZXJpYWxpemVyXCI7XG5leHBvcnQgY2xhc3MgWG1sQ29kZWMgZXh0ZW5kcyBTZXJkZUNvbnRleHRDb25maWcge1xuICAgIHNldHRpbmdzO1xuICAgIGNvbnN0cnVjdG9yKHNldHRpbmdzKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuc2V0dGluZ3MgPSBzZXR0aW5ncztcbiAgICB9XG4gICAgY3JlYXRlU2VyaWFsaXplcigpIHtcbiAgICAgICAgY29uc3Qgc2VyaWFsaXplciA9IG5ldyBYbWxTaGFwZVNlcmlhbGl6ZXIodGhpcy5zZXR0aW5ncyk7XG4gICAgICAgIHNlcmlhbGl6ZXIuc2V0U2VyZGVDb250ZXh0KHRoaXMuc2VyZGVDb250ZXh0KTtcbiAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZXI7XG4gICAgfVxuICAgIGNyZWF0ZURlc2VyaWFsaXplcigpIHtcbiAgICAgICAgY29uc3QgZGVzZXJpYWxpemVyID0gbmV3IFhtbFNoYXBlRGVzZXJpYWxpemVyKHRoaXMuc2V0dGluZ3MpO1xuICAgICAgICBkZXNlcmlhbGl6ZXIuc2V0U2VyZGVDb250ZXh0KHRoaXMuc2VyZGVDb250ZXh0KTtcbiAgICAgICAgcmV0dXJuIGRlc2VyaWFsaXplcjtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgSHR0cEJpbmRpbmdQcm90b2NvbCwgSHR0cEludGVyY2VwdGluZ1NoYXBlRGVzZXJpYWxpemVyLCBIdHRwSW50ZXJjZXB0aW5nU2hhcGVTZXJpYWxpemVyLCB9IGZyb20gXCJAc21pdGh5L2NvcmUvcHJvdG9jb2xzXCI7XG5pbXBvcnQgeyBOb3JtYWxpemVkU2NoZW1hLCBUeXBlUmVnaXN0cnkgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3NjaGVtYVwiO1xuaW1wb3J0IHsgUHJvdG9jb2xMaWIgfSBmcm9tIFwiLi4vUHJvdG9jb2xMaWJcIjtcbmltcG9ydCB7IGxvYWRSZXN0WG1sRXJyb3JDb2RlIH0gZnJvbSBcIi4vcGFyc2VYbWxCb2R5XCI7XG5pbXBvcnQgeyBYbWxDb2RlYyB9IGZyb20gXCIuL1htbENvZGVjXCI7XG5leHBvcnQgY2xhc3MgQXdzUmVzdFhtbFByb3RvY29sIGV4dGVuZHMgSHR0cEJpbmRpbmdQcm90b2NvbCB7XG4gICAgY29kZWM7XG4gICAgc2VyaWFsaXplcjtcbiAgICBkZXNlcmlhbGl6ZXI7XG4gICAgbWl4aW4gPSBuZXcgUHJvdG9jb2xMaWIoKTtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgICAgICBjb25zdCBzZXR0aW5ncyA9IHtcbiAgICAgICAgICAgIHRpbWVzdGFtcEZvcm1hdDoge1xuICAgICAgICAgICAgICAgIHVzZVRyYWl0OiB0cnVlLFxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IDUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaHR0cEJpbmRpbmdzOiB0cnVlLFxuICAgICAgICAgICAgeG1sTmFtZXNwYWNlOiBvcHRpb25zLnhtbE5hbWVzcGFjZSxcbiAgICAgICAgICAgIHNlcnZpY2VOYW1lc3BhY2U6IG9wdGlvbnMuZGVmYXVsdE5hbWVzcGFjZSxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5jb2RlYyA9IG5ldyBYbWxDb2RlYyhzZXR0aW5ncyk7XG4gICAgICAgIHRoaXMuc2VyaWFsaXplciA9IG5ldyBIdHRwSW50ZXJjZXB0aW5nU2hhcGVTZXJpYWxpemVyKHRoaXMuY29kZWMuY3JlYXRlU2VyaWFsaXplcigpLCBzZXR0aW5ncyk7XG4gICAgICAgIHRoaXMuZGVzZXJpYWxpemVyID0gbmV3IEh0dHBJbnRlcmNlcHRpbmdTaGFwZURlc2VyaWFsaXplcih0aGlzLmNvZGVjLmNyZWF0ZURlc2VyaWFsaXplcigpLCBzZXR0aW5ncyk7XG4gICAgfVxuICAgIGdldFBheWxvYWRDb2RlYygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29kZWM7XG4gICAgfVxuICAgIGdldFNoYXBlSWQoKSB7XG4gICAgICAgIHJldHVybiBcImF3cy5wcm90b2NvbHMjcmVzdFhtbFwiO1xuICAgIH1cbiAgICBhc3luYyBzZXJpYWxpemVSZXF1ZXN0KG9wZXJhdGlvblNjaGVtYSwgaW5wdXQsIGNvbnRleHQpIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IGF3YWl0IHN1cGVyLnNlcmlhbGl6ZVJlcXVlc3Qob3BlcmF0aW9uU2NoZW1hLCBpbnB1dCwgY29udGV4dCk7XG4gICAgICAgIGNvbnN0IGlucHV0U2NoZW1hID0gTm9ybWFsaXplZFNjaGVtYS5vZihvcGVyYXRpb25TY2hlbWEuaW5wdXQpO1xuICAgICAgICBpZiAoIXJlcXVlc3QuaGVhZGVyc1tcImNvbnRlbnQtdHlwZVwiXSkge1xuICAgICAgICAgICAgY29uc3QgY29udGVudFR5cGUgPSB0aGlzLm1peGluLnJlc29sdmVSZXN0Q29udGVudFR5cGUodGhpcy5nZXREZWZhdWx0Q29udGVudFR5cGUoKSwgaW5wdXRTY2hlbWEpO1xuICAgICAgICAgICAgaWYgKGNvbnRlbnRUeXBlKSB7XG4gICAgICAgICAgICAgICAgcmVxdWVzdC5oZWFkZXJzW1wiY29udGVudC10eXBlXCJdID0gY29udGVudFR5cGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiByZXF1ZXN0LmJvZHkgPT09IFwic3RyaW5nXCIgJiZcbiAgICAgICAgICAgIHJlcXVlc3QuaGVhZGVyc1tcImNvbnRlbnQtdHlwZVwiXSA9PT0gdGhpcy5nZXREZWZhdWx0Q29udGVudFR5cGUoKSAmJlxuICAgICAgICAgICAgIXJlcXVlc3QuYm9keS5zdGFydHNXaXRoKFwiPD94bWwgXCIpICYmXG4gICAgICAgICAgICAhdGhpcy5oYXNVbnN0cnVjdHVyZWRQYXlsb2FkQmluZGluZyhpbnB1dFNjaGVtYSkpIHtcbiAgICAgICAgICAgIHJlcXVlc3QuYm9keSA9ICc8P3htbCB2ZXJzaW9uPVwiMS4wXCIgZW5jb2Rpbmc9XCJVVEYtOFwiPz4nICsgcmVxdWVzdC5ib2R5O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXF1ZXN0O1xuICAgIH1cbiAgICBhc3luYyBkZXNlcmlhbGl6ZVJlc3BvbnNlKG9wZXJhdGlvblNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UpIHtcbiAgICAgICAgcmV0dXJuIHN1cGVyLmRlc2VyaWFsaXplUmVzcG9uc2Uob3BlcmF0aW9uU2NoZW1hLCBjb250ZXh0LCByZXNwb25zZSk7XG4gICAgfVxuICAgIGFzeW5jIGhhbmRsZUVycm9yKG9wZXJhdGlvblNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UsIGRhdGFPYmplY3QsIG1ldGFkYXRhKSB7XG4gICAgICAgIGNvbnN0IGVycm9ySWRlbnRpZmllciA9IGxvYWRSZXN0WG1sRXJyb3JDb2RlKHJlc3BvbnNlLCBkYXRhT2JqZWN0KSA/PyBcIlVua25vd25cIjtcbiAgICAgICAgaWYgKGRhdGFPYmplY3QuRXJyb3IgJiYgdHlwZW9mIGRhdGFPYmplY3QuRXJyb3IgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGRhdGFPYmplY3QuRXJyb3IpKSB7XG4gICAgICAgICAgICAgICAgZGF0YU9iamVjdFtrZXldID0gZGF0YU9iamVjdC5FcnJvcltrZXldO1xuICAgICAgICAgICAgICAgIGlmIChrZXkudG9Mb3dlckNhc2UoKSA9PT0gXCJtZXNzYWdlXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgZGF0YU9iamVjdC5tZXNzYWdlID0gZGF0YU9iamVjdC5FcnJvcltrZXldO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YU9iamVjdC5SZXF1ZXN0SWQgJiYgIW1ldGFkYXRhLnJlcXVlc3RJZCkge1xuICAgICAgICAgICAgbWV0YWRhdGEucmVxdWVzdElkID0gZGF0YU9iamVjdC5SZXF1ZXN0SWQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgeyBlcnJvclNjaGVtYSwgZXJyb3JNZXRhZGF0YSB9ID0gYXdhaXQgdGhpcy5taXhpbi5nZXRFcnJvclNjaGVtYU9yVGhyb3dCYXNlRXhjZXB0aW9uKGVycm9ySWRlbnRpZmllciwgdGhpcy5vcHRpb25zLmRlZmF1bHROYW1lc3BhY2UsIHJlc3BvbnNlLCBkYXRhT2JqZWN0LCBtZXRhZGF0YSk7XG4gICAgICAgIGNvbnN0IG5zID0gTm9ybWFsaXplZFNjaGVtYS5vZihlcnJvclNjaGVtYSk7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBkYXRhT2JqZWN0LkVycm9yPy5tZXNzYWdlID8/IGRhdGFPYmplY3QuRXJyb3I/Lk1lc3NhZ2UgPz8gZGF0YU9iamVjdC5tZXNzYWdlID8/IGRhdGFPYmplY3QuTWVzc2FnZSA/PyBcIlVua25vd25cIjtcbiAgICAgICAgY29uc3QgRXJyb3JDdG9yID0gVHlwZVJlZ2lzdHJ5LmZvcihlcnJvclNjaGVtYVsxXSkuZ2V0RXJyb3JDdG9yKGVycm9yU2NoZW1hKSA/PyBFcnJvcjtcbiAgICAgICAgY29uc3QgZXhjZXB0aW9uID0gbmV3IEVycm9yQ3RvcihtZXNzYWdlKTtcbiAgICAgICAgYXdhaXQgdGhpcy5kZXNlcmlhbGl6ZUh0dHBNZXNzYWdlKGVycm9yU2NoZW1hLCBjb250ZXh0LCByZXNwb25zZSwgZGF0YU9iamVjdCk7XG4gICAgICAgIGNvbnN0IG91dHB1dCA9IHt9O1xuICAgICAgICBmb3IgKGNvbnN0IFtuYW1lLCBtZW1iZXJdIG9mIG5zLnN0cnVjdEl0ZXJhdG9yKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IG1lbWJlci5nZXRNZXJnZWRUcmFpdHMoKS54bWxOYW1lID8/IG5hbWU7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGRhdGFPYmplY3QuRXJyb3I/Llt0YXJnZXRdID8/IGRhdGFPYmplY3RbdGFyZ2V0XTtcbiAgICAgICAgICAgIG91dHB1dFtuYW1lXSA9IHRoaXMuY29kZWMuY3JlYXRlRGVzZXJpYWxpemVyKCkucmVhZFNjaGVtYShtZW1iZXIsIHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyB0aGlzLm1peGluLmRlY29yYXRlU2VydmljZUV4Y2VwdGlvbihPYmplY3QuYXNzaWduKGV4Y2VwdGlvbiwgZXJyb3JNZXRhZGF0YSwge1xuICAgICAgICAgICAgJGZhdWx0OiBucy5nZXRNZXJnZWRUcmFpdHMoKS5lcnJvcixcbiAgICAgICAgICAgIG1lc3NhZ2UsXG4gICAgICAgIH0sIG91dHB1dCksIGRhdGFPYmplY3QpO1xuICAgIH1cbiAgICBnZXREZWZhdWx0Q29udGVudFR5cGUoKSB7XG4gICAgICAgIHJldHVybiBcImFwcGxpY2F0aW9uL3htbFwiO1xuICAgIH1cbiAgICBoYXNVbnN0cnVjdHVyZWRQYXlsb2FkQmluZGluZyhucykge1xuICAgICAgICBmb3IgKGNvbnN0IFssIG1lbWJlcl0gb2YgbnMuc3RydWN0SXRlcmF0b3IoKSkge1xuICAgICAgICAgICAgaWYgKG1lbWJlci5nZXRNZXJnZWRUcmFpdHMoKS5odHRwUGF5bG9hZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAhKG1lbWJlci5pc1N0cnVjdFNjaGVtYSgpIHx8IG1lbWJlci5pc01hcFNjaGVtYSgpIHx8IG1lbWJlci5pc0xpc3RTY2hlbWEoKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cbiIsICJleHBvcnQgKiBmcm9tIFwiLi9jYm9yL0F3c1NtaXRoeVJwY1YyQ2JvclByb3RvY29sXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb2VyY2luZy1zZXJpYWxpemVyc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vanNvbi9Bd3NKc29uMV8wUHJvdG9jb2xcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2pzb24vQXdzSnNvbjFfMVByb3RvY29sXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9qc29uL0F3c0pzb25ScGNQcm90b2NvbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vanNvbi9Bd3NSZXN0SnNvblByb3RvY29sXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9qc29uL0pzb25Db2RlY1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vanNvbi9Kc29uU2hhcGVEZXNlcmlhbGl6ZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2pzb24vSnNvblNoYXBlU2VyaWFsaXplclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vanNvbi9hd3NFeHBlY3RVbmlvblwiO1xuZXhwb3J0ICogZnJvbSBcIi4vanNvbi9wYXJzZUpzb25Cb2R5XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9xdWVyeS9Bd3NFYzJRdWVyeVByb3RvY29sXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9xdWVyeS9Bd3NRdWVyeVByb3RvY29sXCI7XG5leHBvcnQgKiBmcm9tIFwiLi94bWwvQXdzUmVzdFhtbFByb3RvY29sXCI7XG5leHBvcnQgKiBmcm9tIFwiLi94bWwvWG1sQ29kZWNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3htbC9YbWxTaGFwZURlc2VyaWFsaXplclwiO1xuZXhwb3J0ICogZnJvbSBcIi4veG1sL1htbFNoYXBlU2VyaWFsaXplclwiO1xuZXhwb3J0ICogZnJvbSBcIi4veG1sL3BhcnNlWG1sQm9keVwiO1xuIiwgImV4cG9ydCAqIGZyb20gXCIuL3N1Ym1vZHVsZXMvY2xpZW50L2luZGV4XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zdWJtb2R1bGVzL2h0dHBBdXRoU2NoZW1lcy9pbmRleFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3VibW9kdWxlcy9wcm90b2NvbHMvaW5kZXhcIjtcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBjb3JlID0gcmVxdWlyZSgnQHNtaXRoeS9jb3JlJyk7XG52YXIgdXRpbEVuZHBvaW50cyA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL3V0aWwtZW5kcG9pbnRzJyk7XG52YXIgcHJvdG9jb2xIdHRwID0gcmVxdWlyZSgnQHNtaXRoeS9wcm90b2NvbC1odHRwJyk7XG52YXIgY29yZSQxID0gcmVxdWlyZSgnQGF3cy1zZGsvY29yZScpO1xuXG5jb25zdCBERUZBVUxUX1VBX0FQUF9JRCA9IHVuZGVmaW5lZDtcbmZ1bmN0aW9uIGlzVmFsaWRVc2VyQWdlbnRBcHBJZChhcHBJZCkge1xuICAgIGlmIChhcHBJZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gdHlwZW9mIGFwcElkID09PSBcInN0cmluZ1wiICYmIGFwcElkLmxlbmd0aCA8PSA1MDtcbn1cbmZ1bmN0aW9uIHJlc29sdmVVc2VyQWdlbnRDb25maWcoaW5wdXQpIHtcbiAgICBjb25zdCBub3JtYWxpemVkQXBwSWRQcm92aWRlciA9IGNvcmUubm9ybWFsaXplUHJvdmlkZXIoaW5wdXQudXNlckFnZW50QXBwSWQgPz8gREVGQVVMVF9VQV9BUFBfSUQpO1xuICAgIGNvbnN0IHsgY3VzdG9tVXNlckFnZW50IH0gPSBpbnB1dDtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihpbnB1dCwge1xuICAgICAgICBjdXN0b21Vc2VyQWdlbnQ6IHR5cGVvZiBjdXN0b21Vc2VyQWdlbnQgPT09IFwic3RyaW5nXCIgPyBbW2N1c3RvbVVzZXJBZ2VudF1dIDogY3VzdG9tVXNlckFnZW50LFxuICAgICAgICB1c2VyQWdlbnRBcHBJZDogYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYXBwSWQgPSBhd2FpdCBub3JtYWxpemVkQXBwSWRQcm92aWRlcigpO1xuICAgICAgICAgICAgaWYgKCFpc1ZhbGlkVXNlckFnZW50QXBwSWQoYXBwSWQpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbG9nZ2VyID0gaW5wdXQubG9nZ2VyPy5jb25zdHJ1Y3Rvcj8ubmFtZSA9PT0gXCJOb09wTG9nZ2VyXCIgfHwgIWlucHV0LmxvZ2dlciA/IGNvbnNvbGUgOiBpbnB1dC5sb2dnZXI7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBhcHBJZCAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgICAgICBsb2dnZXI/Lndhcm4oXCJ1c2VyQWdlbnRBcHBJZCBtdXN0IGJlIGEgc3RyaW5nIG9yIHVuZGVmaW5lZC5cIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKGFwcElkLmxlbmd0aCA+IDUwKSB7XG4gICAgICAgICAgICAgICAgICAgIGxvZ2dlcj8ud2FybihcIlRoZSBwcm92aWRlZCB1c2VyQWdlbnRBcHBJZCBleGNlZWRzIHRoZSBtYXhpbXVtIGxlbmd0aCBvZiA1MCBjaGFyYWN0ZXJzLlwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gYXBwSWQ7XG4gICAgICAgIH0sXG4gICAgfSk7XG59XG5cbmNvbnN0IEFDQ09VTlRfSURfRU5EUE9JTlRfUkVHRVggPSAvXFxkezEyfVxcLmRkYi87XG5hc3luYyBmdW5jdGlvbiBjaGVja0ZlYXR1cmVzKGNvbnRleHQsIGNvbmZpZywgYXJncykge1xuICAgIGNvbnN0IHJlcXVlc3QgPSBhcmdzLnJlcXVlc3Q7XG4gICAgaWYgKHJlcXVlc3Q/LmhlYWRlcnM/LltcInNtaXRoeS1wcm90b2NvbFwiXSA9PT0gXCJycGMtdjItY2JvclwiKSB7XG4gICAgICAgIGNvcmUkMS5zZXRGZWF0dXJlKGNvbnRleHQsIFwiUFJPVE9DT0xfUlBDX1YyX0NCT1JcIiwgXCJNXCIpO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIGNvbmZpZy5yZXRyeVN0cmF0ZWd5ID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgY29uc3QgcmV0cnlTdHJhdGVneSA9IGF3YWl0IGNvbmZpZy5yZXRyeVN0cmF0ZWd5KCk7XG4gICAgICAgIGlmICh0eXBlb2YgcmV0cnlTdHJhdGVneS5hY3F1aXJlSW5pdGlhbFJldHJ5VG9rZW4gPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgaWYgKHJldHJ5U3RyYXRlZ3kuY29uc3RydWN0b3I/Lm5hbWU/LmluY2x1ZGVzKFwiQWRhcHRpdmVcIikpIHtcbiAgICAgICAgICAgICAgICBjb3JlJDEuc2V0RmVhdHVyZShjb250ZXh0LCBcIlJFVFJZX01PREVfQURBUFRJVkVcIiwgXCJGXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29yZSQxLnNldEZlYXR1cmUoY29udGV4dCwgXCJSRVRSWV9NT0RFX1NUQU5EQVJEXCIsIFwiRVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvcmUkMS5zZXRGZWF0dXJlKGNvbnRleHQsIFwiUkVUUllfTU9ERV9MRUdBQ1lcIiwgXCJEXCIpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGlmICh0eXBlb2YgY29uZmlnLmFjY291bnRJZEVuZHBvaW50TW9kZSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50VjIgPSBjb250ZXh0LmVuZHBvaW50VjI7XG4gICAgICAgIGlmIChTdHJpbmcoZW5kcG9pbnRWMj8udXJsPy5ob3N0bmFtZSkubWF0Y2goQUNDT1VOVF9JRF9FTkRQT0lOVF9SRUdFWCkpIHtcbiAgICAgICAgICAgIGNvcmUkMS5zZXRGZWF0dXJlKGNvbnRleHQsIFwiQUNDT1VOVF9JRF9FTkRQT0lOVFwiLCBcIk9cIik7XG4gICAgICAgIH1cbiAgICAgICAgc3dpdGNoIChhd2FpdCBjb25maWcuYWNjb3VudElkRW5kcG9pbnRNb2RlPy4oKSkge1xuICAgICAgICAgICAgY2FzZSBcImRpc2FibGVkXCI6XG4gICAgICAgICAgICAgICAgY29yZSQxLnNldEZlYXR1cmUoY29udGV4dCwgXCJBQ0NPVU5UX0lEX01PREVfRElTQUJMRURcIiwgXCJRXCIpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBcInByZWZlcnJlZFwiOlxuICAgICAgICAgICAgICAgIGNvcmUkMS5zZXRGZWF0dXJlKGNvbnRleHQsIFwiQUNDT1VOVF9JRF9NT0RFX1BSRUZFUlJFRFwiLCBcIlBcIik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFwicmVxdWlyZWRcIjpcbiAgICAgICAgICAgICAgICBjb3JlJDEuc2V0RmVhdHVyZShjb250ZXh0LCBcIkFDQ09VTlRfSURfTU9ERV9SRVFVSVJFRFwiLCBcIlJcIik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgaWRlbnRpdHkgPSBjb250ZXh0Ll9fc21pdGh5X2NvbnRleHQ/LnNlbGVjdGVkSHR0cEF1dGhTY2hlbWU/LmlkZW50aXR5O1xuICAgIGlmIChpZGVudGl0eT8uJHNvdXJjZSkge1xuICAgICAgICBjb25zdCBjcmVkZW50aWFscyA9IGlkZW50aXR5O1xuICAgICAgICBpZiAoY3JlZGVudGlhbHMuYWNjb3VudElkKSB7XG4gICAgICAgICAgICBjb3JlJDEuc2V0RmVhdHVyZShjb250ZXh0LCBcIlJFU09MVkVEX0FDQ09VTlRfSURcIiwgXCJUXCIpO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKGNyZWRlbnRpYWxzLiRzb3VyY2UgPz8ge30pKSB7XG4gICAgICAgICAgICBjb3JlJDEuc2V0RmVhdHVyZShjb250ZXh0LCBrZXksIHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuY29uc3QgVVNFUl9BR0VOVCA9IFwidXNlci1hZ2VudFwiO1xuY29uc3QgWF9BTVpfVVNFUl9BR0VOVCA9IFwieC1hbXotdXNlci1hZ2VudFwiO1xuY29uc3QgU1BBQ0UgPSBcIiBcIjtcbmNvbnN0IFVBX05BTUVfU0VQQVJBVE9SID0gXCIvXCI7XG5jb25zdCBVQV9OQU1FX0VTQ0FQRV9SRUdFWCA9IC9bXiEkJSYnKitcXC0uXl9gfH5cXHddL2c7XG5jb25zdCBVQV9WQUxVRV9FU0NBUEVfUkVHRVggPSAvW14hJCUmJyorXFwtLl5fYHx+XFx3I10vZztcbmNvbnN0IFVBX0VTQ0FQRV9DSEFSID0gXCItXCI7XG5cbmNvbnN0IEJZVEVfTElNSVQgPSAxMDI0O1xuZnVuY3Rpb24gZW5jb2RlRmVhdHVyZXMoZmVhdHVyZXMpIHtcbiAgICBsZXQgYnVmZmVyID0gXCJcIjtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBmZWF0dXJlcykge1xuICAgICAgICBjb25zdCB2YWwgPSBmZWF0dXJlc1trZXldO1xuICAgICAgICBpZiAoYnVmZmVyLmxlbmd0aCArIHZhbC5sZW5ndGggKyAxIDw9IEJZVEVfTElNSVQpIHtcbiAgICAgICAgICAgIGlmIChidWZmZXIubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgYnVmZmVyICs9IFwiLFwiICsgdmFsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgYnVmZmVyICs9IHZhbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICByZXR1cm4gYnVmZmVyO1xufVxuXG5jb25zdCB1c2VyQWdlbnRNaWRkbGV3YXJlID0gKG9wdGlvbnMpID0+IChuZXh0LCBjb250ZXh0KSA9PiBhc3luYyAoYXJncykgPT4ge1xuICAgIGNvbnN0IHsgcmVxdWVzdCB9ID0gYXJncztcbiAgICBpZiAoIXByb3RvY29sSHR0cC5IdHRwUmVxdWVzdC5pc0luc3RhbmNlKHJlcXVlc3QpKSB7XG4gICAgICAgIHJldHVybiBuZXh0KGFyZ3MpO1xuICAgIH1cbiAgICBjb25zdCB7IGhlYWRlcnMgfSA9IHJlcXVlc3Q7XG4gICAgY29uc3QgdXNlckFnZW50ID0gY29udGV4dD8udXNlckFnZW50Py5tYXAoZXNjYXBlVXNlckFnZW50KSB8fCBbXTtcbiAgICBjb25zdCBkZWZhdWx0VXNlckFnZW50ID0gKGF3YWl0IG9wdGlvbnMuZGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyKCkpLm1hcChlc2NhcGVVc2VyQWdlbnQpO1xuICAgIGF3YWl0IGNoZWNrRmVhdHVyZXMoY29udGV4dCwgb3B0aW9ucywgYXJncyk7XG4gICAgY29uc3QgYXdzQ29udGV4dCA9IGNvbnRleHQ7XG4gICAgZGVmYXVsdFVzZXJBZ2VudC5wdXNoKGBtLyR7ZW5jb2RlRmVhdHVyZXMoT2JqZWN0LmFzc2lnbih7fSwgY29udGV4dC5fX3NtaXRoeV9jb250ZXh0Py5mZWF0dXJlcywgYXdzQ29udGV4dC5fX2F3c19zZGtfY29udGV4dD8uZmVhdHVyZXMpKX1gKTtcbiAgICBjb25zdCBjdXN0b21Vc2VyQWdlbnQgPSBvcHRpb25zPy5jdXN0b21Vc2VyQWdlbnQ/Lm1hcChlc2NhcGVVc2VyQWdlbnQpIHx8IFtdO1xuICAgIGNvbnN0IGFwcElkID0gYXdhaXQgb3B0aW9ucy51c2VyQWdlbnRBcHBJZCgpO1xuICAgIGlmIChhcHBJZCkge1xuICAgICAgICBkZWZhdWx0VXNlckFnZW50LnB1c2goZXNjYXBlVXNlckFnZW50KFtgYXBwYCwgYCR7YXBwSWR9YF0pKTtcbiAgICB9XG4gICAgY29uc3QgcHJlZml4ID0gdXRpbEVuZHBvaW50cy5nZXRVc2VyQWdlbnRQcmVmaXgoKTtcbiAgICBjb25zdCBzZGtVc2VyQWdlbnRWYWx1ZSA9IChwcmVmaXggPyBbcHJlZml4XSA6IFtdKVxuICAgICAgICAuY29uY2F0KFsuLi5kZWZhdWx0VXNlckFnZW50LCAuLi51c2VyQWdlbnQsIC4uLmN1c3RvbVVzZXJBZ2VudF0pXG4gICAgICAgIC5qb2luKFNQQUNFKTtcbiAgICBjb25zdCBub3JtYWxVQVZhbHVlID0gW1xuICAgICAgICAuLi5kZWZhdWx0VXNlckFnZW50LmZpbHRlcigoc2VjdGlvbikgPT4gc2VjdGlvbi5zdGFydHNXaXRoKFwiYXdzLXNkay1cIikpLFxuICAgICAgICAuLi5jdXN0b21Vc2VyQWdlbnQsXG4gICAgXS5qb2luKFNQQUNFKTtcbiAgICBpZiAob3B0aW9ucy5ydW50aW1lICE9PSBcImJyb3dzZXJcIikge1xuICAgICAgICBpZiAobm9ybWFsVUFWYWx1ZSkge1xuICAgICAgICAgICAgaGVhZGVyc1tYX0FNWl9VU0VSX0FHRU5UXSA9IGhlYWRlcnNbWF9BTVpfVVNFUl9BR0VOVF1cbiAgICAgICAgICAgICAgICA/IGAke2hlYWRlcnNbVVNFUl9BR0VOVF19ICR7bm9ybWFsVUFWYWx1ZX1gXG4gICAgICAgICAgICAgICAgOiBub3JtYWxVQVZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGhlYWRlcnNbVVNFUl9BR0VOVF0gPSBzZGtVc2VyQWdlbnRWYWx1ZTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGhlYWRlcnNbWF9BTVpfVVNFUl9BR0VOVF0gPSBzZGtVc2VyQWdlbnRWYWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIG5leHQoe1xuICAgICAgICAuLi5hcmdzLFxuICAgICAgICByZXF1ZXN0LFxuICAgIH0pO1xufTtcbmNvbnN0IGVzY2FwZVVzZXJBZ2VudCA9ICh1c2VyQWdlbnRQYWlyKSA9PiB7XG4gICAgY29uc3QgbmFtZSA9IHVzZXJBZ2VudFBhaXJbMF1cbiAgICAgICAgLnNwbGl0KFVBX05BTUVfU0VQQVJBVE9SKVxuICAgICAgICAubWFwKChwYXJ0KSA9PiBwYXJ0LnJlcGxhY2UoVUFfTkFNRV9FU0NBUEVfUkVHRVgsIFVBX0VTQ0FQRV9DSEFSKSlcbiAgICAgICAgLmpvaW4oVUFfTkFNRV9TRVBBUkFUT1IpO1xuICAgIGNvbnN0IHZlcnNpb24gPSB1c2VyQWdlbnRQYWlyWzFdPy5yZXBsYWNlKFVBX1ZBTFVFX0VTQ0FQRV9SRUdFWCwgVUFfRVNDQVBFX0NIQVIpO1xuICAgIGNvbnN0IHByZWZpeFNlcGFyYXRvckluZGV4ID0gbmFtZS5pbmRleE9mKFVBX05BTUVfU0VQQVJBVE9SKTtcbiAgICBjb25zdCBwcmVmaXggPSBuYW1lLnN1YnN0cmluZygwLCBwcmVmaXhTZXBhcmF0b3JJbmRleCk7XG4gICAgbGV0IHVhTmFtZSA9IG5hbWUuc3Vic3RyaW5nKHByZWZpeFNlcGFyYXRvckluZGV4ICsgMSk7XG4gICAgaWYgKHByZWZpeCA9PT0gXCJhcGlcIikge1xuICAgICAgICB1YU5hbWUgPSB1YU5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICB9XG4gICAgcmV0dXJuIFtwcmVmaXgsIHVhTmFtZSwgdmVyc2lvbl1cbiAgICAgICAgLmZpbHRlcigoaXRlbSkgPT4gaXRlbSAmJiBpdGVtLmxlbmd0aCA+IDApXG4gICAgICAgIC5yZWR1Y2UoKGFjYywgaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgc3dpdGNoIChpbmRleCkge1xuICAgICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgICAgIHJldHVybiBpdGVtO1xuICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgIHJldHVybiBgJHthY2N9LyR7aXRlbX1gO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gYCR7YWNjfSMke2l0ZW19YDtcbiAgICAgICAgfVxuICAgIH0sIFwiXCIpO1xufTtcbmNvbnN0IGdldFVzZXJBZ2VudE1pZGRsZXdhcmVPcHRpb25zID0ge1xuICAgIG5hbWU6IFwiZ2V0VXNlckFnZW50TWlkZGxld2FyZVwiLFxuICAgIHN0ZXA6IFwiYnVpbGRcIixcbiAgICBwcmlvcml0eTogXCJsb3dcIixcbiAgICB0YWdzOiBbXCJTRVRfVVNFUl9BR0VOVFwiLCBcIlVTRVJfQUdFTlRcIl0sXG4gICAgb3ZlcnJpZGU6IHRydWUsXG59O1xuY29uc3QgZ2V0VXNlckFnZW50UGx1Z2luID0gKGNvbmZpZykgPT4gKHtcbiAgICBhcHBseVRvU3RhY2s6IChjbGllbnRTdGFjaykgPT4ge1xuICAgICAgICBjbGllbnRTdGFjay5hZGQodXNlckFnZW50TWlkZGxld2FyZShjb25maWcpLCBnZXRVc2VyQWdlbnRNaWRkbGV3YXJlT3B0aW9ucyk7XG4gICAgfSxcbn0pO1xuXG5leHBvcnRzLkRFRkFVTFRfVUFfQVBQX0lEID0gREVGQVVMVF9VQV9BUFBfSUQ7XG5leHBvcnRzLmdldFVzZXJBZ2VudE1pZGRsZXdhcmVPcHRpb25zID0gZ2V0VXNlckFnZW50TWlkZGxld2FyZU9wdGlvbnM7XG5leHBvcnRzLmdldFVzZXJBZ2VudFBsdWdpbiA9IGdldFVzZXJBZ2VudFBsdWdpbjtcbmV4cG9ydHMucmVzb2x2ZVVzZXJBZ2VudENvbmZpZyA9IHJlc29sdmVVc2VyQWdlbnRDb25maWc7XG5leHBvcnRzLnVzZXJBZ2VudE1pZGRsZXdhcmUgPSB1c2VyQWdlbnRNaWRkbGV3YXJlO1xuIiwgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5yZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWcgPSBleHBvcnRzLmRlZmF1bHREeW5hbW9EQkh0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSBleHBvcnRzLmRlZmF1bHREeW5hbW9EQkh0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyID0gdm9pZCAwO1xuY29uc3QgY29yZV8xID0gcmVxdWlyZShcIkBhd3Mtc2RrL2NvcmVcIik7XG5jb25zdCB1dGlsX21pZGRsZXdhcmVfMSA9IHJlcXVpcmUoXCJAc21pdGh5L3V0aWwtbWlkZGxld2FyZVwiKTtcbmNvbnN0IGRlZmF1bHREeW5hbW9EQkh0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyID0gYXN5bmMgKGNvbmZpZywgY29udGV4dCwgaW5wdXQpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgICBvcGVyYXRpb246ICgwLCB1dGlsX21pZGRsZXdhcmVfMS5nZXRTbWl0aHlDb250ZXh0KShjb250ZXh0KS5vcGVyYXRpb24sXG4gICAgICAgIHJlZ2lvbjogYXdhaXQgKDAsIHV0aWxfbWlkZGxld2FyZV8xLm5vcm1hbGl6ZVByb3ZpZGVyKShjb25maWcucmVnaW9uKSgpIHx8ICgoKSA9PiB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJleHBlY3RlZCBgcmVnaW9uYCB0byBiZSBjb25maWd1cmVkIGZvciBgYXdzLmF1dGgjc2lndjRgXCIpO1xuICAgICAgICB9KSgpLFxuICAgIH07XG59O1xuZXhwb3J0cy5kZWZhdWx0RHluYW1vREJIdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlciA9IGRlZmF1bHREeW5hbW9EQkh0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyO1xuZnVuY3Rpb24gY3JlYXRlQXdzQXV0aFNpZ3Y0SHR0cEF1dGhPcHRpb24oYXV0aFBhcmFtZXRlcnMpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBzY2hlbWVJZDogXCJhd3MuYXV0aCNzaWd2NFwiLFxuICAgICAgICBzaWduaW5nUHJvcGVydGllczoge1xuICAgICAgICAgICAgbmFtZTogXCJkeW5hbW9kYlwiLFxuICAgICAgICAgICAgcmVnaW9uOiBhdXRoUGFyYW1ldGVycy5yZWdpb24sXG4gICAgICAgIH0sXG4gICAgICAgIHByb3BlcnRpZXNFeHRyYWN0b3I6IChjb25maWcsIGNvbnRleHQpID0+ICh7XG4gICAgICAgICAgICBzaWduaW5nUHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgIGNvbmZpZyxcbiAgICAgICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgfTtcbn1cbmNvbnN0IGRlZmF1bHREeW5hbW9EQkh0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSAoYXV0aFBhcmFtZXRlcnMpID0+IHtcbiAgICBjb25zdCBvcHRpb25zID0gW107XG4gICAgc3dpdGNoIChhdXRoUGFyYW1ldGVycy5vcGVyYXRpb24pIHtcbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgb3B0aW9ucy5wdXNoKGNyZWF0ZUF3c0F1dGhTaWd2NEh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG9wdGlvbnM7XG59O1xuZXhwb3J0cy5kZWZhdWx0RHluYW1vREJIdHRwQXV0aFNjaGVtZVByb3ZpZGVyID0gZGVmYXVsdER5bmFtb0RCSHR0cEF1dGhTY2hlbWVQcm92aWRlcjtcbmNvbnN0IHJlc29sdmVIdHRwQXV0aFNjaGVtZUNvbmZpZyA9IChjb25maWcpID0+IHtcbiAgICBjb25zdCBjb25maWdfMCA9ICgwLCBjb3JlXzEucmVzb2x2ZUF3c1Nka1NpZ1Y0Q29uZmlnKShjb25maWcpO1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKGNvbmZpZ18wLCB7XG4gICAgICAgIGF1dGhTY2hlbWVQcmVmZXJlbmNlOiAoMCwgdXRpbF9taWRkbGV3YXJlXzEubm9ybWFsaXplUHJvdmlkZXIpKGNvbmZpZy5hdXRoU2NoZW1lUHJlZmVyZW5jZSA/PyBbXSksXG4gICAgfSk7XG59O1xuZXhwb3J0cy5yZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWcgPSByZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWc7XG4iLCAie1xuICBcIm5hbWVcIjogXCJAYXdzLXNkay9jbGllbnQtZHluYW1vZGJcIixcbiAgXCJkZXNjcmlwdGlvblwiOiBcIkFXUyBTREsgZm9yIEphdmFTY3JpcHQgRHluYW1vZGIgQ2xpZW50IGZvciBOb2RlLmpzLCBCcm93c2VyIGFuZCBSZWFjdCBOYXRpdmVcIixcbiAgXCJ2ZXJzaW9uXCI6IFwiMy45ODAuMFwiLFxuICBcInNjcmlwdHNcIjoge1xuICAgIFwiYnVpbGRcIjogXCJjb25jdXJyZW50bHkgJ3lhcm46YnVpbGQ6dHlwZXMnICd5YXJuOmJ1aWxkOmVzJyAmJiB5YXJuIGJ1aWxkOmNqc1wiLFxuICAgIFwiYnVpbGQ6Y2pzXCI6IFwibm9kZSAuLi8uLi9zY3JpcHRzL2NvbXBpbGF0aW9uL2lubGluZSBjbGllbnQtZHluYW1vZGJcIixcbiAgICBcImJ1aWxkOmVzXCI6IFwidHNjIC1wIHRzY29uZmlnLmVzLmpzb25cIixcbiAgICBcImJ1aWxkOmluY2x1ZGU6ZGVwc1wiOiBcInlhcm4gZzp0dXJibyBydW4gYnVpbGQgLUY9XFxcIiRucG1fcGFja2FnZV9uYW1lXFxcIlwiLFxuICAgIFwiYnVpbGQ6dHlwZXNcIjogXCJ0c2MgLXAgdHNjb25maWcudHlwZXMuanNvblwiLFxuICAgIFwiYnVpbGQ6dHlwZXM6ZG93bmxldmVsXCI6IFwiZG93bmxldmVsLWR0cyBkaXN0LXR5cGVzIGRpc3QtdHlwZXMvdHMzLjRcIixcbiAgICBcImNsZWFuXCI6IFwicHJlbW92ZSBkaXN0LWNqcyBkaXN0LWVzIGRpc3QtdHlwZXMgdHNjb25maWcuY2pzLnRzYnVpbGRpbmZvIHRzY29uZmlnLmVzLnRzYnVpbGRpbmZvIHRzY29uZmlnLnR5cGVzLnRzYnVpbGRpbmZvXCIsXG4gICAgXCJleHRyYWN0OmRvY3NcIjogXCJhcGktZXh0cmFjdG9yIHJ1biAtLWxvY2FsXCIsXG4gICAgXCJnZW5lcmF0ZTpjbGllbnRcIjogXCJub2RlIC4uLy4uL3NjcmlwdHMvZ2VuZXJhdGUtY2xpZW50cy9zaW5nbGUtc2VydmljZSAtLXNvbG8gZHluYW1vZGJcIixcbiAgICBcInRlc3Q6ZTJlXCI6IFwieWFybiBnOnZpdGVzdCBydW4gLWMgdml0ZXN0LmNvbmZpZy5lMmUubXRzXCIsXG4gICAgXCJ0ZXN0OmUyZTp3YXRjaFwiOiBcInlhcm4gZzp2aXRlc3Qgd2F0Y2ggLWMgdml0ZXN0LmNvbmZpZy5lMmUubXRzXCIsXG4gICAgXCJ0ZXN0OmluZGV4XCI6IFwidHNjIC0tbm9FbWl0IC4vdGVzdC9pbmRleC10eXBlcy50cyAmJiBub2RlIC4vdGVzdC9pbmRleC1vYmplY3RzLnNwZWMubWpzXCJcbiAgfSxcbiAgXCJtYWluXCI6IFwiLi9kaXN0LWNqcy9pbmRleC5qc1wiLFxuICBcInR5cGVzXCI6IFwiLi9kaXN0LXR5cGVzL2luZGV4LmQudHNcIixcbiAgXCJtb2R1bGVcIjogXCIuL2Rpc3QtZXMvaW5kZXguanNcIixcbiAgXCJzaWRlRWZmZWN0c1wiOiBmYWxzZSxcbiAgXCJkZXBlbmRlbmNpZXNcIjoge1xuICAgIFwiQGF3cy1jcnlwdG8vc2hhMjU2LWJyb3dzZXJcIjogXCI1LjIuMFwiLFxuICAgIFwiQGF3cy1jcnlwdG8vc2hhMjU2LWpzXCI6IFwiNS4yLjBcIixcbiAgICBcIkBhd3Mtc2RrL2NvcmVcIjogXCJeMy45NzMuNVwiLFxuICAgIFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlXCI6IFwiXjMuOTcyLjRcIixcbiAgICBcIkBhd3Mtc2RrL2R5bmFtb2RiLWNvZGVjXCI6IFwiXjMuOTcyLjVcIixcbiAgICBcIkBhd3Mtc2RrL21pZGRsZXdhcmUtZW5kcG9pbnQtZGlzY292ZXJ5XCI6IFwiXjMuOTcyLjNcIixcbiAgICBcIkBhd3Mtc2RrL21pZGRsZXdhcmUtaG9zdC1oZWFkZXJcIjogXCJeMy45NzIuM1wiLFxuICAgIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1sb2dnZXJcIjogXCJeMy45NzIuM1wiLFxuICAgIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1yZWN1cnNpb24tZGV0ZWN0aW9uXCI6IFwiXjMuOTcyLjNcIixcbiAgICBcIkBhd3Mtc2RrL21pZGRsZXdhcmUtdXNlci1hZ2VudFwiOiBcIl4zLjk3Mi41XCIsXG4gICAgXCJAYXdzLXNkay9yZWdpb24tY29uZmlnLXJlc29sdmVyXCI6IFwiXjMuOTcyLjNcIixcbiAgICBcIkBhd3Mtc2RrL3R5cGVzXCI6IFwiXjMuOTczLjFcIixcbiAgICBcIkBhd3Mtc2RrL3V0aWwtZW5kcG9pbnRzXCI6IFwiMy45ODAuMFwiLFxuICAgIFwiQGF3cy1zZGsvdXRpbC11c2VyLWFnZW50LWJyb3dzZXJcIjogXCJeMy45NzIuM1wiLFxuICAgIFwiQGF3cy1zZGsvdXRpbC11c2VyLWFnZW50LW5vZGVcIjogXCJeMy45NzIuM1wiLFxuICAgIFwiQHNtaXRoeS9jb25maWctcmVzb2x2ZXJcIjogXCJeNC40LjZcIixcbiAgICBcIkBzbWl0aHkvY29yZVwiOiBcIl4zLjIyLjBcIixcbiAgICBcIkBzbWl0aHkvZmV0Y2gtaHR0cC1oYW5kbGVyXCI6IFwiXjUuMy45XCIsXG4gICAgXCJAc21pdGh5L2hhc2gtbm9kZVwiOiBcIl40LjIuOFwiLFxuICAgIFwiQHNtaXRoeS9pbnZhbGlkLWRlcGVuZGVuY3lcIjogXCJeNC4yLjhcIixcbiAgICBcIkBzbWl0aHkvbWlkZGxld2FyZS1jb250ZW50LWxlbmd0aFwiOiBcIl40LjIuOFwiLFxuICAgIFwiQHNtaXRoeS9taWRkbGV3YXJlLWVuZHBvaW50XCI6IFwiXjQuNC4xMlwiLFxuICAgIFwiQHNtaXRoeS9taWRkbGV3YXJlLXJldHJ5XCI6IFwiXjQuNC4yOVwiLFxuICAgIFwiQHNtaXRoeS9taWRkbGV3YXJlLXNlcmRlXCI6IFwiXjQuMi45XCIsXG4gICAgXCJAc21pdGh5L21pZGRsZXdhcmUtc3RhY2tcIjogXCJeNC4yLjhcIixcbiAgICBcIkBzbWl0aHkvbm9kZS1jb25maWctcHJvdmlkZXJcIjogXCJeNC4zLjhcIixcbiAgICBcIkBzbWl0aHkvbm9kZS1odHRwLWhhbmRsZXJcIjogXCJeNC40LjhcIixcbiAgICBcIkBzbWl0aHkvcHJvdG9jb2wtaHR0cFwiOiBcIl41LjMuOFwiLFxuICAgIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI6IFwiXjQuMTEuMVwiLFxuICAgIFwiQHNtaXRoeS90eXBlc1wiOiBcIl40LjEyLjBcIixcbiAgICBcIkBzbWl0aHkvdXJsLXBhcnNlclwiOiBcIl40LjIuOFwiLFxuICAgIFwiQHNtaXRoeS91dGlsLWJhc2U2NFwiOiBcIl40LjMuMFwiLFxuICAgIFwiQHNtaXRoeS91dGlsLWJvZHktbGVuZ3RoLWJyb3dzZXJcIjogXCJeNC4yLjBcIixcbiAgICBcIkBzbWl0aHkvdXRpbC1ib2R5LWxlbmd0aC1ub2RlXCI6IFwiXjQuMi4xXCIsXG4gICAgXCJAc21pdGh5L3V0aWwtZGVmYXVsdHMtbW9kZS1icm93c2VyXCI6IFwiXjQuMy4yOFwiLFxuICAgIFwiQHNtaXRoeS91dGlsLWRlZmF1bHRzLW1vZGUtbm9kZVwiOiBcIl40LjIuMzFcIixcbiAgICBcIkBzbWl0aHkvdXRpbC1lbmRwb2ludHNcIjogXCJeMy4yLjhcIixcbiAgICBcIkBzbWl0aHkvdXRpbC1taWRkbGV3YXJlXCI6IFwiXjQuMi44XCIsXG4gICAgXCJAc21pdGh5L3V0aWwtcmV0cnlcIjogXCJeNC4yLjhcIixcbiAgICBcIkBzbWl0aHkvdXRpbC11dGY4XCI6IFwiXjQuMi4wXCIsXG4gICAgXCJAc21pdGh5L3V0aWwtd2FpdGVyXCI6IFwiXjQuMi44XCIsXG4gICAgXCJ0c2xpYlwiOiBcIl4yLjYuMlwiXG4gIH0sXG4gIFwiZGV2RGVwZW5kZW5jaWVzXCI6IHtcbiAgICBcIkB0c2NvbmZpZy9ub2RlMjBcIjogXCIyMC4xLjhcIixcbiAgICBcIkB0eXBlcy9ub2RlXCI6IFwiXjIwLjE0LjhcIixcbiAgICBcImNvbmN1cnJlbnRseVwiOiBcIjcuMC4wXCIsXG4gICAgXCJkb3dubGV2ZWwtZHRzXCI6IFwiMC4xMC4xXCIsXG4gICAgXCJwcmVtb3ZlXCI6IFwiNC4wLjBcIixcbiAgICBcInR5cGVzY3JpcHRcIjogXCJ+NS44LjNcIlxuICB9LFxuICBcImVuZ2luZXNcIjoge1xuICAgIFwibm9kZVwiOiBcIj49MjAuMC4wXCJcbiAgfSxcbiAgXCJ0eXBlc1ZlcnNpb25zXCI6IHtcbiAgICBcIjw0LjBcIjoge1xuICAgICAgXCJkaXN0LXR5cGVzLypcIjogW1xuICAgICAgICBcImRpc3QtdHlwZXMvdHMzLjQvKlwiXG4gICAgICBdXG4gICAgfVxuICB9LFxuICBcImZpbGVzXCI6IFtcbiAgICBcImRpc3QtKi8qKlwiXG4gIF0sXG4gIFwiYXV0aG9yXCI6IHtcbiAgICBcIm5hbWVcIjogXCJBV1MgU0RLIGZvciBKYXZhU2NyaXB0IFRlYW1cIixcbiAgICBcInVybFwiOiBcImh0dHBzOi8vYXdzLmFtYXpvbi5jb20vamF2YXNjcmlwdC9cIlxuICB9LFxuICBcImxpY2Vuc2VcIjogXCJBcGFjaGUtMi4wXCIsXG4gIFwiYnJvd3NlclwiOiB7XG4gICAgXCIuL2Rpc3QtZXMvcnVudGltZUNvbmZpZ1wiOiBcIi4vZGlzdC1lcy9ydW50aW1lQ29uZmlnLmJyb3dzZXJcIlxuICB9LFxuICBcInJlYWN0LW5hdGl2ZVwiOiB7XG4gICAgXCIuL2Rpc3QtZXMvcnVudGltZUNvbmZpZ1wiOiBcIi4vZGlzdC1lcy9ydW50aW1lQ29uZmlnLm5hdGl2ZVwiXG4gIH0sXG4gIFwiaG9tZXBhZ2VcIjogXCJodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1zZGstanMtdjMvdHJlZS9tYWluL2NsaWVudHMvY2xpZW50LWR5bmFtb2RiXCIsXG4gIFwicmVwb3NpdG9yeVwiOiB7XG4gICAgXCJ0eXBlXCI6IFwiZ2l0XCIsXG4gICAgXCJ1cmxcIjogXCJodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1zZGstanMtdjMuZ2l0XCIsXG4gICAgXCJkaXJlY3RvcnlcIjogXCJjbGllbnRzL2NsaWVudC1keW5hbW9kYlwiXG4gIH1cbn1cbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBjbGllbnQgPSByZXF1aXJlKCdAYXdzLXNkay9jb3JlL2NsaWVudCcpO1xudmFyIHByb3BlcnR5UHJvdmlkZXIgPSByZXF1aXJlKCdAc21pdGh5L3Byb3BlcnR5LXByb3ZpZGVyJyk7XG5cbmNvbnN0IEVOVl9LRVkgPSBcIkFXU19BQ0NFU1NfS0VZX0lEXCI7XG5jb25zdCBFTlZfU0VDUkVUID0gXCJBV1NfU0VDUkVUX0FDQ0VTU19LRVlcIjtcbmNvbnN0IEVOVl9TRVNTSU9OID0gXCJBV1NfU0VTU0lPTl9UT0tFTlwiO1xuY29uc3QgRU5WX0VYUElSQVRJT04gPSBcIkFXU19DUkVERU5USUFMX0VYUElSQVRJT05cIjtcbmNvbnN0IEVOVl9DUkVERU5USUFMX1NDT1BFID0gXCJBV1NfQ1JFREVOVElBTF9TQ09QRVwiO1xuY29uc3QgRU5WX0FDQ09VTlRfSUQgPSBcIkFXU19BQ0NPVU5UX0lEXCI7XG5jb25zdCBmcm9tRW52ID0gKGluaXQpID0+IGFzeW5jICgpID0+IHtcbiAgICBpbml0Py5sb2dnZXI/LmRlYnVnKFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1lbnYgLSBmcm9tRW52XCIpO1xuICAgIGNvbnN0IGFjY2Vzc0tleUlkID0gcHJvY2Vzcy5lbnZbRU5WX0tFWV07XG4gICAgY29uc3Qgc2VjcmV0QWNjZXNzS2V5ID0gcHJvY2Vzcy5lbnZbRU5WX1NFQ1JFVF07XG4gICAgY29uc3Qgc2Vzc2lvblRva2VuID0gcHJvY2Vzcy5lbnZbRU5WX1NFU1NJT05dO1xuICAgIGNvbnN0IGV4cGlyeSA9IHByb2Nlc3MuZW52W0VOVl9FWFBJUkFUSU9OXTtcbiAgICBjb25zdCBjcmVkZW50aWFsU2NvcGUgPSBwcm9jZXNzLmVudltFTlZfQ1JFREVOVElBTF9TQ09QRV07XG4gICAgY29uc3QgYWNjb3VudElkID0gcHJvY2Vzcy5lbnZbRU5WX0FDQ09VTlRfSURdO1xuICAgIGlmIChhY2Nlc3NLZXlJZCAmJiBzZWNyZXRBY2Nlc3NLZXkpIHtcbiAgICAgICAgY29uc3QgY3JlZGVudGlhbHMgPSB7XG4gICAgICAgICAgICBhY2Nlc3NLZXlJZCxcbiAgICAgICAgICAgIHNlY3JldEFjY2Vzc0tleSxcbiAgICAgICAgICAgIC4uLihzZXNzaW9uVG9rZW4gJiYgeyBzZXNzaW9uVG9rZW4gfSksXG4gICAgICAgICAgICAuLi4oZXhwaXJ5ICYmIHsgZXhwaXJhdGlvbjogbmV3IERhdGUoZXhwaXJ5KSB9KSxcbiAgICAgICAgICAgIC4uLihjcmVkZW50aWFsU2NvcGUgJiYgeyBjcmVkZW50aWFsU2NvcGUgfSksXG4gICAgICAgICAgICAuLi4oYWNjb3VudElkICYmIHsgYWNjb3VudElkIH0pLFxuICAgICAgICB9O1xuICAgICAgICBjbGllbnQuc2V0Q3JlZGVudGlhbEZlYXR1cmUoY3JlZGVudGlhbHMsIFwiQ1JFREVOVElBTFNfRU5WX1ZBUlNcIiwgXCJnXCIpO1xuICAgICAgICByZXR1cm4gY3JlZGVudGlhbHM7XG4gICAgfVxuICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLkNyZWRlbnRpYWxzUHJvdmlkZXJFcnJvcihcIlVuYWJsZSB0byBmaW5kIGVudmlyb25tZW50IHZhcmlhYmxlIGNyZWRlbnRpYWxzLlwiLCB7IGxvZ2dlcjogaW5pdD8ubG9nZ2VyIH0pO1xufTtcblxuZXhwb3J0cy5FTlZfQUNDT1VOVF9JRCA9IEVOVl9BQ0NPVU5UX0lEO1xuZXhwb3J0cy5FTlZfQ1JFREVOVElBTF9TQ09QRSA9IEVOVl9DUkVERU5USUFMX1NDT1BFO1xuZXhwb3J0cy5FTlZfRVhQSVJBVElPTiA9IEVOVl9FWFBJUkFUSU9OO1xuZXhwb3J0cy5FTlZfS0VZID0gRU5WX0tFWTtcbmV4cG9ydHMuRU5WX1NFQ1JFVCA9IEVOVl9TRUNSRVQ7XG5leHBvcnRzLkVOVl9TRVNTSU9OID0gRU5WX1NFU1NJT047XG5leHBvcnRzLmZyb21FbnYgPSBmcm9tRW52O1xuIiwgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5jaGVja1VybCA9IHZvaWQgMDtcbmNvbnN0IHByb3BlcnR5X3Byb3ZpZGVyXzEgPSByZXF1aXJlKFwiQHNtaXRoeS9wcm9wZXJ0eS1wcm92aWRlclwiKTtcbmNvbnN0IExPT1BCQUNLX0NJRFJfSVB2NCA9IFwiMTI3LjAuMC4wLzhcIjtcbmNvbnN0IExPT1BCQUNLX0NJRFJfSVB2NiA9IFwiOjoxLzEyOFwiO1xuY29uc3QgRUNTX0NPTlRBSU5FUl9IT1NUID0gXCIxNjkuMjU0LjE3MC4yXCI7XG5jb25zdCBFS1NfQ09OVEFJTkVSX0hPU1RfSVB2NCA9IFwiMTY5LjI1NC4xNzAuMjNcIjtcbmNvbnN0IEVLU19DT05UQUlORVJfSE9TVF9JUHY2ID0gXCJbZmQwMDplYzI6OjIzXVwiO1xuY29uc3QgY2hlY2tVcmwgPSAodXJsLCBsb2dnZXIpID0+IHtcbiAgICBpZiAodXJsLnByb3RvY29sID09PSBcImh0dHBzOlwiKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHVybC5ob3N0bmFtZSA9PT0gRUNTX0NPTlRBSU5FUl9IT1NUIHx8XG4gICAgICAgIHVybC5ob3N0bmFtZSA9PT0gRUtTX0NPTlRBSU5FUl9IT1NUX0lQdjQgfHxcbiAgICAgICAgdXJsLmhvc3RuYW1lID09PSBFS1NfQ09OVEFJTkVSX0hPU1RfSVB2Nikge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh1cmwuaG9zdG5hbWUuaW5jbHVkZXMoXCJbXCIpKSB7XG4gICAgICAgIGlmICh1cmwuaG9zdG5hbWUgPT09IFwiWzo6MV1cIiB8fCB1cmwuaG9zdG5hbWUgPT09IFwiWzAwMDA6MDAwMDowMDAwOjAwMDA6MDAwMDowMDAwOjAwMDA6MDAwMV1cIikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBpZiAodXJsLmhvc3RuYW1lID09PSBcImxvY2FsaG9zdFwiKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaXBDb21wb25lbnRzID0gdXJsLmhvc3RuYW1lLnNwbGl0KFwiLlwiKTtcbiAgICAgICAgY29uc3QgaW5SYW5nZSA9IChjb21wb25lbnQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG51bSA9IHBhcnNlSW50KGNvbXBvbmVudCwgMTApO1xuICAgICAgICAgICAgcmV0dXJuIDAgPD0gbnVtICYmIG51bSA8PSAyNTU7XG4gICAgICAgIH07XG4gICAgICAgIGlmIChpcENvbXBvbmVudHNbMF0gPT09IFwiMTI3XCIgJiZcbiAgICAgICAgICAgIGluUmFuZ2UoaXBDb21wb25lbnRzWzFdKSAmJlxuICAgICAgICAgICAgaW5SYW5nZShpcENvbXBvbmVudHNbMl0pICYmXG4gICAgICAgICAgICBpblJhbmdlKGlwQ29tcG9uZW50c1szXSkgJiZcbiAgICAgICAgICAgIGlwQ29tcG9uZW50cy5sZW5ndGggPT09IDQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgIH1cbiAgICB0aHJvdyBuZXcgcHJvcGVydHlfcHJvdmlkZXJfMS5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoYFVSTCBub3QgYWNjZXB0ZWQuIEl0IG11c3QgZWl0aGVyIGJlIEhUVFBTIG9yIG1hdGNoIG9uZSBvZiB0aGUgZm9sbG93aW5nOlxuICAtIGxvb3BiYWNrIENJRFIgMTI3LjAuMC4wLzggb3IgWzo6MS8xMjhdXG4gIC0gRUNTIGNvbnRhaW5lciBob3N0IDE2OS4yNTQuMTcwLjJcbiAgLSBFS1MgY29udGFpbmVyIGhvc3QgMTY5LjI1NC4xNzAuMjMgb3IgW2ZkMDA6ZWMyOjoyM11gLCB7IGxvZ2dlciB9KTtcbn07XG5leHBvcnRzLmNoZWNrVXJsID0gY2hlY2tVcmw7XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmNyZWF0ZUdldFJlcXVlc3QgPSBjcmVhdGVHZXRSZXF1ZXN0O1xuZXhwb3J0cy5nZXRDcmVkZW50aWFscyA9IGdldENyZWRlbnRpYWxzO1xuY29uc3QgcHJvcGVydHlfcHJvdmlkZXJfMSA9IHJlcXVpcmUoXCJAc21pdGh5L3Byb3BlcnR5LXByb3ZpZGVyXCIpO1xuY29uc3QgcHJvdG9jb2xfaHR0cF8xID0gcmVxdWlyZShcIkBzbWl0aHkvcHJvdG9jb2wtaHR0cFwiKTtcbmNvbnN0IHNtaXRoeV9jbGllbnRfMSA9IHJlcXVpcmUoXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIik7XG5jb25zdCB1dGlsX3N0cmVhbV8xID0gcmVxdWlyZShcIkBzbWl0aHkvdXRpbC1zdHJlYW1cIik7XG5mdW5jdGlvbiBjcmVhdGVHZXRSZXF1ZXN0KHVybCkge1xuICAgIHJldHVybiBuZXcgcHJvdG9jb2xfaHR0cF8xLkh0dHBSZXF1ZXN0KHtcbiAgICAgICAgcHJvdG9jb2w6IHVybC5wcm90b2NvbCxcbiAgICAgICAgaG9zdG5hbWU6IHVybC5ob3N0bmFtZSxcbiAgICAgICAgcG9ydDogTnVtYmVyKHVybC5wb3J0KSxcbiAgICAgICAgcGF0aDogdXJsLnBhdGhuYW1lLFxuICAgICAgICBxdWVyeTogQXJyYXkuZnJvbSh1cmwuc2VhcmNoUGFyYW1zLmVudHJpZXMoKSkucmVkdWNlKChhY2MsIFtrLCB2XSkgPT4ge1xuICAgICAgICAgICAgYWNjW2tdID0gdjtcbiAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH0sIHt9KSxcbiAgICAgICAgZnJhZ21lbnQ6IHVybC5oYXNoLFxuICAgIH0pO1xufVxuYXN5bmMgZnVuY3Rpb24gZ2V0Q3JlZGVudGlhbHMocmVzcG9uc2UsIGxvZ2dlcikge1xuICAgIGNvbnN0IHN0cmVhbSA9ICgwLCB1dGlsX3N0cmVhbV8xLnNka1N0cmVhbU1peGluKShyZXNwb25zZS5ib2R5KTtcbiAgICBjb25zdCBzdHIgPSBhd2FpdCBzdHJlYW0udHJhbnNmb3JtVG9TdHJpbmcoKTtcbiAgICBpZiAocmVzcG9uc2Uuc3RhdHVzQ29kZSA9PT0gMjAwKSB7XG4gICAgICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2Uoc3RyKTtcbiAgICAgICAgaWYgKHR5cGVvZiBwYXJzZWQuQWNjZXNzS2V5SWQgIT09IFwic3RyaW5nXCIgfHxcbiAgICAgICAgICAgIHR5cGVvZiBwYXJzZWQuU2VjcmV0QWNjZXNzS2V5ICE9PSBcInN0cmluZ1wiIHx8XG4gICAgICAgICAgICB0eXBlb2YgcGFyc2VkLlRva2VuICE9PSBcInN0cmluZ1wiIHx8XG4gICAgICAgICAgICB0eXBlb2YgcGFyc2VkLkV4cGlyYXRpb24gIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eV9wcm92aWRlcl8xLkNyZWRlbnRpYWxzUHJvdmlkZXJFcnJvcihcIkhUVFAgY3JlZGVudGlhbCBwcm92aWRlciByZXNwb25zZSBub3Qgb2YgdGhlIHJlcXVpcmVkIGZvcm1hdCwgYW4gb2JqZWN0IG1hdGNoaW5nOiBcIiArXG4gICAgICAgICAgICAgICAgXCJ7IEFjY2Vzc0tleUlkOiBzdHJpbmcsIFNlY3JldEFjY2Vzc0tleTogc3RyaW5nLCBUb2tlbjogc3RyaW5nLCBFeHBpcmF0aW9uOiBzdHJpbmcocmZjMzMzOSkgfVwiLCB7IGxvZ2dlciB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgYWNjZXNzS2V5SWQ6IHBhcnNlZC5BY2Nlc3NLZXlJZCxcbiAgICAgICAgICAgIHNlY3JldEFjY2Vzc0tleTogcGFyc2VkLlNlY3JldEFjY2Vzc0tleSxcbiAgICAgICAgICAgIHNlc3Npb25Ub2tlbjogcGFyc2VkLlRva2VuLFxuICAgICAgICAgICAgZXhwaXJhdGlvbjogKDAsIHNtaXRoeV9jbGllbnRfMS5wYXJzZVJmYzMzMzlEYXRlVGltZSkocGFyc2VkLkV4cGlyYXRpb24pLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBpZiAocmVzcG9uc2Uuc3RhdHVzQ29kZSA+PSA0MDAgJiYgcmVzcG9uc2Uuc3RhdHVzQ29kZSA8IDUwMCkge1xuICAgICAgICBsZXQgcGFyc2VkQm9keSA9IHt9O1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcGFyc2VkQm9keSA9IEpTT04ucGFyc2Uoc3RyKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkgeyB9XG4gICAgICAgIHRocm93IE9iamVjdC5hc3NpZ24obmV3IHByb3BlcnR5X3Byb3ZpZGVyXzEuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKGBTZXJ2ZXIgcmVzcG9uZGVkIHdpdGggc3RhdHVzOiAke3Jlc3BvbnNlLnN0YXR1c0NvZGV9YCwgeyBsb2dnZXIgfSksIHtcbiAgICAgICAgICAgIENvZGU6IHBhcnNlZEJvZHkuQ29kZSxcbiAgICAgICAgICAgIE1lc3NhZ2U6IHBhcnNlZEJvZHkuTWVzc2FnZSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHRocm93IG5ldyBwcm9wZXJ0eV9wcm92aWRlcl8xLkNyZWRlbnRpYWxzUHJvdmlkZXJFcnJvcihgU2VydmVyIHJlc3BvbmRlZCB3aXRoIHN0YXR1czogJHtyZXNwb25zZS5zdGF0dXNDb2RlfWAsIHsgbG9nZ2VyIH0pO1xufVxuIiwgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5yZXRyeVdyYXBwZXIgPSB2b2lkIDA7XG5jb25zdCByZXRyeVdyYXBwZXIgPSAodG9SZXRyeSwgbWF4UmV0cmllcywgZGVsYXlNcykgPT4ge1xuICAgIHJldHVybiBhc3luYyAoKSA9PiB7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWF4UmV0cmllczsgKytpKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHJldHVybiBhd2FpdCB0b1JldHJ5KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIGRlbGF5TXMpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYXdhaXQgdG9SZXRyeSgpO1xuICAgIH07XG59O1xuZXhwb3J0cy5yZXRyeVdyYXBwZXIgPSByZXRyeVdyYXBwZXI7XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmZyb21IdHRwID0gdm9pZCAwO1xuY29uc3QgdHNsaWJfMSA9IHJlcXVpcmUoXCJ0c2xpYlwiKTtcbmNvbnN0IGNsaWVudF8xID0gcmVxdWlyZShcIkBhd3Mtc2RrL2NvcmUvY2xpZW50XCIpO1xuY29uc3Qgbm9kZV9odHRwX2hhbmRsZXJfMSA9IHJlcXVpcmUoXCJAc21pdGh5L25vZGUtaHR0cC1oYW5kbGVyXCIpO1xuY29uc3QgcHJvcGVydHlfcHJvdmlkZXJfMSA9IHJlcXVpcmUoXCJAc21pdGh5L3Byb3BlcnR5LXByb3ZpZGVyXCIpO1xuY29uc3QgcHJvbWlzZXNfMSA9IHRzbGliXzEuX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJmcy9wcm9taXNlc1wiKSk7XG5jb25zdCBjaGVja1VybF8xID0gcmVxdWlyZShcIi4vY2hlY2tVcmxcIik7XG5jb25zdCByZXF1ZXN0SGVscGVyc18xID0gcmVxdWlyZShcIi4vcmVxdWVzdEhlbHBlcnNcIik7XG5jb25zdCByZXRyeV93cmFwcGVyXzEgPSByZXF1aXJlKFwiLi9yZXRyeS13cmFwcGVyXCIpO1xuY29uc3QgQVdTX0NPTlRBSU5FUl9DUkVERU5USUFMU19SRUxBVElWRV9VUkkgPSBcIkFXU19DT05UQUlORVJfQ1JFREVOVElBTFNfUkVMQVRJVkVfVVJJXCI7XG5jb25zdCBERUZBVUxUX0xJTktfTE9DQUxfSE9TVCA9IFwiaHR0cDovLzE2OS4yNTQuMTcwLjJcIjtcbmNvbnN0IEFXU19DT05UQUlORVJfQ1JFREVOVElBTFNfRlVMTF9VUkkgPSBcIkFXU19DT05UQUlORVJfQ1JFREVOVElBTFNfRlVMTF9VUklcIjtcbmNvbnN0IEFXU19DT05UQUlORVJfQVVUSE9SSVpBVElPTl9UT0tFTl9GSUxFID0gXCJBV1NfQ09OVEFJTkVSX0FVVEhPUklaQVRJT05fVE9LRU5fRklMRVwiO1xuY29uc3QgQVdTX0NPTlRBSU5FUl9BVVRIT1JJWkFUSU9OX1RPS0VOID0gXCJBV1NfQ09OVEFJTkVSX0FVVEhPUklaQVRJT05fVE9LRU5cIjtcbmNvbnN0IGZyb21IdHRwID0gKG9wdGlvbnMgPSB7fSkgPT4ge1xuICAgIG9wdGlvbnMubG9nZ2VyPy5kZWJ1ZyhcIkBhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItaHR0cCAtIGZyb21IdHRwXCIpO1xuICAgIGxldCBob3N0O1xuICAgIGNvbnN0IHJlbGF0aXZlID0gb3B0aW9ucy5hd3NDb250YWluZXJDcmVkZW50aWFsc1JlbGF0aXZlVXJpID8/IHByb2Nlc3MuZW52W0FXU19DT05UQUlORVJfQ1JFREVOVElBTFNfUkVMQVRJVkVfVVJJXTtcbiAgICBjb25zdCBmdWxsID0gb3B0aW9ucy5hd3NDb250YWluZXJDcmVkZW50aWFsc0Z1bGxVcmkgPz8gcHJvY2Vzcy5lbnZbQVdTX0NPTlRBSU5FUl9DUkVERU5USUFMU19GVUxMX1VSSV07XG4gICAgY29uc3QgdG9rZW4gPSBvcHRpb25zLmF3c0NvbnRhaW5lckF1dGhvcml6YXRpb25Ub2tlbiA/PyBwcm9jZXNzLmVudltBV1NfQ09OVEFJTkVSX0FVVEhPUklaQVRJT05fVE9LRU5dO1xuICAgIGNvbnN0IHRva2VuRmlsZSA9IG9wdGlvbnMuYXdzQ29udGFpbmVyQXV0aG9yaXphdGlvblRva2VuRmlsZSA/PyBwcm9jZXNzLmVudltBV1NfQ09OVEFJTkVSX0FVVEhPUklaQVRJT05fVE9LRU5fRklMRV07XG4gICAgY29uc3Qgd2FybiA9IG9wdGlvbnMubG9nZ2VyPy5jb25zdHJ1Y3Rvcj8ubmFtZSA9PT0gXCJOb09wTG9nZ2VyXCIgfHwgIW9wdGlvbnMubG9nZ2VyPy53YXJuXG4gICAgICAgID8gY29uc29sZS53YXJuXG4gICAgICAgIDogb3B0aW9ucy5sb2dnZXIud2Fybi5iaW5kKG9wdGlvbnMubG9nZ2VyKTtcbiAgICBpZiAocmVsYXRpdmUgJiYgZnVsbCkge1xuICAgICAgICB3YXJuKFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1odHRwOiBcIiArXG4gICAgICAgICAgICBcInlvdSBoYXZlIHNldCBib3RoIGF3c0NvbnRhaW5lckNyZWRlbnRpYWxzUmVsYXRpdmVVcmkgYW5kIGF3c0NvbnRhaW5lckNyZWRlbnRpYWxzRnVsbFVyaS5cIik7XG4gICAgICAgIHdhcm4oXCJhd3NDb250YWluZXJDcmVkZW50aWFsc0Z1bGxVcmkgd2lsbCB0YWtlIHByZWNlZGVuY2UuXCIpO1xuICAgIH1cbiAgICBpZiAodG9rZW4gJiYgdG9rZW5GaWxlKSB7XG4gICAgICAgIHdhcm4oXCJAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLWh0dHA6IFwiICtcbiAgICAgICAgICAgIFwieW91IGhhdmUgc2V0IGJvdGggYXdzQ29udGFpbmVyQXV0aG9yaXphdGlvblRva2VuIGFuZCBhd3NDb250YWluZXJBdXRob3JpemF0aW9uVG9rZW5GaWxlLlwiKTtcbiAgICAgICAgd2FybihcImF3c0NvbnRhaW5lckF1dGhvcml6YXRpb25Ub2tlbiB3aWxsIHRha2UgcHJlY2VkZW5jZS5cIik7XG4gICAgfVxuICAgIGlmIChmdWxsKSB7XG4gICAgICAgIGhvc3QgPSBmdWxsO1xuICAgIH1cbiAgICBlbHNlIGlmIChyZWxhdGl2ZSkge1xuICAgICAgICBob3N0ID0gYCR7REVGQVVMVF9MSU5LX0xPQ0FMX0hPU1R9JHtyZWxhdGl2ZX1gO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5X3Byb3ZpZGVyXzEuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKGBObyBIVFRQIGNyZWRlbnRpYWwgcHJvdmlkZXIgaG9zdCBwcm92aWRlZC5cblNldCBBV1NfQ09OVEFJTkVSX0NSRURFTlRJQUxTX0ZVTExfVVJJIG9yIEFXU19DT05UQUlORVJfQ1JFREVOVElBTFNfUkVMQVRJVkVfVVJJLmAsIHsgbG9nZ2VyOiBvcHRpb25zLmxvZ2dlciB9KTtcbiAgICB9XG4gICAgY29uc3QgdXJsID0gbmV3IFVSTChob3N0KTtcbiAgICAoMCwgY2hlY2tVcmxfMS5jaGVja1VybCkodXJsLCBvcHRpb25zLmxvZ2dlcik7XG4gICAgY29uc3QgcmVxdWVzdEhhbmRsZXIgPSBub2RlX2h0dHBfaGFuZGxlcl8xLk5vZGVIdHRwSGFuZGxlci5jcmVhdGUoe1xuICAgICAgICByZXF1ZXN0VGltZW91dDogb3B0aW9ucy50aW1lb3V0ID8/IDEwMDAsXG4gICAgICAgIGNvbm5lY3Rpb25UaW1lb3V0OiBvcHRpb25zLnRpbWVvdXQgPz8gMTAwMCxcbiAgICB9KTtcbiAgICByZXR1cm4gKDAsIHJldHJ5X3dyYXBwZXJfMS5yZXRyeVdyYXBwZXIpKGFzeW5jICgpID0+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgwLCByZXF1ZXN0SGVscGVyc18xLmNyZWF0ZUdldFJlcXVlc3QpKHVybCk7XG4gICAgICAgIGlmICh0b2tlbikge1xuICAgICAgICAgICAgcmVxdWVzdC5oZWFkZXJzLkF1dGhvcml6YXRpb24gPSB0b2tlbjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0b2tlbkZpbGUpIHtcbiAgICAgICAgICAgIHJlcXVlc3QuaGVhZGVycy5BdXRob3JpemF0aW9uID0gKGF3YWl0IHByb21pc2VzXzEuZGVmYXVsdC5yZWFkRmlsZSh0b2tlbkZpbGUpKS50b1N0cmluZygpO1xuICAgICAgICB9XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZXF1ZXN0SGFuZGxlci5oYW5kbGUocmVxdWVzdCk7XG4gICAgICAgICAgICByZXR1cm4gKDAsIHJlcXVlc3RIZWxwZXJzXzEuZ2V0Q3JlZGVudGlhbHMpKHJlc3VsdC5yZXNwb25zZSkudGhlbigoY3JlZHMpID0+ICgwLCBjbGllbnRfMS5zZXRDcmVkZW50aWFsRmVhdHVyZSkoY3JlZHMsIFwiQ1JFREVOVElBTFNfSFRUUFwiLCBcInpcIikpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlfcHJvdmlkZXJfMS5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoU3RyaW5nKGUpLCB7IGxvZ2dlcjogb3B0aW9ucy5sb2dnZXIgfSk7XG4gICAgICAgIH1cbiAgICB9LCBvcHRpb25zLm1heFJldHJpZXMgPz8gMywgb3B0aW9ucy50aW1lb3V0ID8/IDEwMDApO1xufTtcbmV4cG9ydHMuZnJvbUh0dHAgPSBmcm9tSHR0cDtcbiIsICJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuZnJvbUh0dHAgPSB2b2lkIDA7XG52YXIgZnJvbUh0dHBfMSA9IHJlcXVpcmUoXCIuL2Zyb21IdHRwL2Zyb21IdHRwXCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiZnJvbUh0dHBcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGZyb21IdHRwXzEuZnJvbUh0dHA7IH0gfSk7XG4iLCAiaW1wb3J0IHsgcmVzb2x2ZUF3c1Nka1NpZ1Y0Q29uZmlnIH0gZnJvbSBcIkBhd3Mtc2RrL2NvcmVcIjtcbmltcG9ydCB7IGdldFNtaXRoeUNvbnRleHQsIG5vcm1hbGl6ZVByb3ZpZGVyIH0gZnJvbSBcIkBzbWl0aHkvdXRpbC1taWRkbGV3YXJlXCI7XG5leHBvcnQgY29uc3QgZGVmYXVsdFNTT09JRENIdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlciA9IGFzeW5jIChjb25maWcsIGNvbnRleHQsIGlucHV0KSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgb3BlcmF0aW9uOiBnZXRTbWl0aHlDb250ZXh0KGNvbnRleHQpLm9wZXJhdGlvbixcbiAgICAgICAgcmVnaW9uOiAoYXdhaXQgbm9ybWFsaXplUHJvdmlkZXIoY29uZmlnLnJlZ2lvbikoKSkgfHxcbiAgICAgICAgICAgICgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiZXhwZWN0ZWQgYHJlZ2lvbmAgdG8gYmUgY29uZmlndXJlZCBmb3IgYGF3cy5hdXRoI3NpZ3Y0YFwiKTtcbiAgICAgICAgICAgIH0pKCksXG4gICAgfTtcbn07XG5mdW5jdGlvbiBjcmVhdGVBd3NBdXRoU2lndjRIdHRwQXV0aE9wdGlvbihhdXRoUGFyYW1ldGVycykge1xuICAgIHJldHVybiB7XG4gICAgICAgIHNjaGVtZUlkOiBcImF3cy5hdXRoI3NpZ3Y0XCIsXG4gICAgICAgIHNpZ25pbmdQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICBuYW1lOiBcInNzby1vYXV0aFwiLFxuICAgICAgICAgICAgcmVnaW9uOiBhdXRoUGFyYW1ldGVycy5yZWdpb24sXG4gICAgICAgIH0sXG4gICAgICAgIHByb3BlcnRpZXNFeHRyYWN0b3I6IChjb25maWcsIGNvbnRleHQpID0+ICh7XG4gICAgICAgICAgICBzaWduaW5nUHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgIGNvbmZpZyxcbiAgICAgICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgfTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVNtaXRoeUFwaU5vQXV0aEh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc2NoZW1lSWQ6IFwic21pdGh5LmFwaSNub0F1dGhcIixcbiAgICB9O1xufVxuZXhwb3J0IGNvbnN0IGRlZmF1bHRTU09PSURDSHR0cEF1dGhTY2hlbWVQcm92aWRlciA9IChhdXRoUGFyYW1ldGVycykgPT4ge1xuICAgIGNvbnN0IG9wdGlvbnMgPSBbXTtcbiAgICBzd2l0Y2ggKGF1dGhQYXJhbWV0ZXJzLm9wZXJhdGlvbikge1xuICAgICAgICBjYXNlIFwiQ3JlYXRlVG9rZW5cIjoge1xuICAgICAgICAgICAgb3B0aW9ucy5wdXNoKGNyZWF0ZVNtaXRoeUFwaU5vQXV0aEh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICBvcHRpb25zLnB1c2goY3JlYXRlQXdzQXV0aFNpZ3Y0SHR0cEF1dGhPcHRpb24oYXV0aFBhcmFtZXRlcnMpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gb3B0aW9ucztcbn07XG5leHBvcnQgY29uc3QgcmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIGNvbnN0IGNvbmZpZ18wID0gcmVzb2x2ZUF3c1Nka1NpZ1Y0Q29uZmlnKGNvbmZpZyk7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oY29uZmlnXzAsIHtcbiAgICAgICAgYXV0aFNjaGVtZVByZWZlcmVuY2U6IG5vcm1hbGl6ZVByb3ZpZGVyKGNvbmZpZy5hdXRoU2NoZW1lUHJlZmVyZW5jZSA/PyBbXSksXG4gICAgfSk7XG59O1xuIiwgImV4cG9ydCBjb25zdCByZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzID0gKG9wdGlvbnMpID0+IHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihvcHRpb25zLCB7XG4gICAgICAgIHVzZUR1YWxzdGFja0VuZHBvaW50OiBvcHRpb25zLnVzZUR1YWxzdGFja0VuZHBvaW50ID8/IGZhbHNlLFxuICAgICAgICB1c2VGaXBzRW5kcG9pbnQ6IG9wdGlvbnMudXNlRmlwc0VuZHBvaW50ID8/IGZhbHNlLFxuICAgICAgICBkZWZhdWx0U2lnbmluZ05hbWU6IFwic3NvLW9hdXRoXCIsXG4gICAgfSk7XG59O1xuZXhwb3J0IGNvbnN0IGNvbW1vblBhcmFtcyA9IHtcbiAgICBVc2VGSVBTOiB7IHR5cGU6IFwiYnVpbHRJblBhcmFtc1wiLCBuYW1lOiBcInVzZUZpcHNFbmRwb2ludFwiIH0sXG4gICAgRW5kcG9pbnQ6IHsgdHlwZTogXCJidWlsdEluUGFyYW1zXCIsIG5hbWU6IFwiZW5kcG9pbnRcIiB9LFxuICAgIFJlZ2lvbjogeyB0eXBlOiBcImJ1aWx0SW5QYXJhbXNcIiwgbmFtZTogXCJyZWdpb25cIiB9LFxuICAgIFVzZUR1YWxTdGFjazogeyB0eXBlOiBcImJ1aWx0SW5QYXJhbXNcIiwgbmFtZTogXCJ1c2VEdWFsc3RhY2tFbmRwb2ludFwiIH0sXG59O1xuIiwgIntcbiAgXCJuYW1lXCI6IFwiQGF3cy1zZGsvbmVzdGVkLWNsaWVudHNcIixcbiAgXCJ2ZXJzaW9uXCI6IFwiMy45OTYuMFwiLFxuICBcImRlc2NyaXB0aW9uXCI6IFwiTmVzdGVkIGNsaWVudHMgZm9yIEFXUyBTREsgcGFja2FnZXMuXCIsXG4gIFwibWFpblwiOiBcIi4vZGlzdC1janMvaW5kZXguanNcIixcbiAgXCJtb2R1bGVcIjogXCIuL2Rpc3QtZXMvaW5kZXguanNcIixcbiAgXCJ0eXBlc1wiOiBcIi4vZGlzdC10eXBlcy9pbmRleC5kLnRzXCIsXG4gIFwic2NyaXB0c1wiOiB7XG4gICAgXCJidWlsZFwiOiBcInlhcm4gbGludCAmJiBjb25jdXJyZW50bHkgJ3lhcm46YnVpbGQ6dHlwZXMnICd5YXJuOmJ1aWxkOmVzJyAmJiB5YXJuIGJ1aWxkOmNqc1wiLFxuICAgIFwiYnVpbGQ6Y2pzXCI6IFwibm9kZSAuLi8uLi9zY3JpcHRzL2NvbXBpbGF0aW9uL2lubGluZSBuZXN0ZWQtY2xpZW50c1wiLFxuICAgIFwiYnVpbGQ6ZXNcIjogXCJ0c2MgLXAgdHNjb25maWcuZXMuanNvblwiLFxuICAgIFwiYnVpbGQ6aW5jbHVkZTpkZXBzXCI6IFwieWFybiBnOnR1cmJvIHJ1biBidWlsZCAtRj1cXFwiJG5wbV9wYWNrYWdlX25hbWVcXFwiXCIsXG4gICAgXCJidWlsZDp0eXBlc1wiOiBcInRzYyAtcCB0c2NvbmZpZy50eXBlcy5qc29uXCIsXG4gICAgXCJidWlsZDp0eXBlczpkb3dubGV2ZWxcIjogXCJkb3dubGV2ZWwtZHRzIGRpc3QtdHlwZXMgZGlzdC10eXBlcy90czMuNFwiLFxuICAgIFwiY2xlYW5cIjogXCJwcmVtb3ZlIGRpc3QtY2pzIGRpc3QtZXMgZGlzdC10eXBlcyB0c2NvbmZpZy5janMudHNidWlsZGluZm8gdHNjb25maWcuZXMudHNidWlsZGluZm8gdHNjb25maWcudHlwZXMudHNidWlsZGluZm9cIixcbiAgICBcImxpbnRcIjogXCJub2RlIC4uLy4uL3NjcmlwdHMvdmFsaWRhdGlvbi9zdWJtb2R1bGVzLWxpbnRlci5qcyAtLXBrZyBuZXN0ZWQtY2xpZW50c1wiLFxuICAgIFwidGVzdFwiOiBcInlhcm4gZzp2aXRlc3QgcnVuXCIsXG4gICAgXCJ0ZXN0OndhdGNoXCI6IFwieWFybiBnOnZpdGVzdCB3YXRjaFwiXG4gIH0sXG4gIFwiZW5naW5lc1wiOiB7XG4gICAgXCJub2RlXCI6IFwiPj0yMC4wLjBcIlxuICB9LFxuICBcInNpZGVFZmZlY3RzXCI6IGZhbHNlLFxuICBcImF1dGhvclwiOiB7XG4gICAgXCJuYW1lXCI6IFwiQVdTIFNESyBmb3IgSmF2YVNjcmlwdCBUZWFtXCIsXG4gICAgXCJ1cmxcIjogXCJodHRwczovL2F3cy5hbWF6b24uY29tL2phdmFzY3JpcHQvXCJcbiAgfSxcbiAgXCJsaWNlbnNlXCI6IFwiQXBhY2hlLTIuMFwiLFxuICBcImRlcGVuZGVuY2llc1wiOiB7XG4gICAgXCJAYXdzLWNyeXB0by9zaGEyNTYtYnJvd3NlclwiOiBcIjUuMi4wXCIsXG4gICAgXCJAYXdzLWNyeXB0by9zaGEyNTYtanNcIjogXCI1LjIuMFwiLFxuICAgIFwiQGF3cy1zZGsvY29yZVwiOiBcIl4zLjk3My4xMlwiLFxuICAgIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1ob3N0LWhlYWRlclwiOiBcIl4zLjk3Mi4zXCIsXG4gICAgXCJAYXdzLXNkay9taWRkbGV3YXJlLWxvZ2dlclwiOiBcIl4zLjk3Mi4zXCIsXG4gICAgXCJAYXdzLXNkay9taWRkbGV3YXJlLXJlY3Vyc2lvbi1kZXRlY3Rpb25cIjogXCJeMy45NzIuM1wiLFxuICAgIFwiQGF3cy1zZGsvbWlkZGxld2FyZS11c2VyLWFnZW50XCI6IFwiXjMuOTcyLjEyXCIsXG4gICAgXCJAYXdzLXNkay9yZWdpb24tY29uZmlnLXJlc29sdmVyXCI6IFwiXjMuOTcyLjNcIixcbiAgICBcIkBhd3Mtc2RrL3R5cGVzXCI6IFwiXjMuOTczLjFcIixcbiAgICBcIkBhd3Mtc2RrL3V0aWwtZW5kcG9pbnRzXCI6IFwiMy45OTYuMFwiLFxuICAgIFwiQGF3cy1zZGsvdXRpbC11c2VyLWFnZW50LWJyb3dzZXJcIjogXCJeMy45NzIuM1wiLFxuICAgIFwiQGF3cy1zZGsvdXRpbC11c2VyLWFnZW50LW5vZGVcIjogXCJeMy45NzIuMTFcIixcbiAgICBcIkBzbWl0aHkvY29uZmlnLXJlc29sdmVyXCI6IFwiXjQuNC42XCIsXG4gICAgXCJAc21pdGh5L2NvcmVcIjogXCJeMy4yMy4yXCIsXG4gICAgXCJAc21pdGh5L2ZldGNoLWh0dHAtaGFuZGxlclwiOiBcIl41LjMuOVwiLFxuICAgIFwiQHNtaXRoeS9oYXNoLW5vZGVcIjogXCJeNC4yLjhcIixcbiAgICBcIkBzbWl0aHkvaW52YWxpZC1kZXBlbmRlbmN5XCI6IFwiXjQuMi44XCIsXG4gICAgXCJAc21pdGh5L21pZGRsZXdhcmUtY29udGVudC1sZW5ndGhcIjogXCJeNC4yLjhcIixcbiAgICBcIkBzbWl0aHkvbWlkZGxld2FyZS1lbmRwb2ludFwiOiBcIl40LjQuMTZcIixcbiAgICBcIkBzbWl0aHkvbWlkZGxld2FyZS1yZXRyeVwiOiBcIl40LjQuMzNcIixcbiAgICBcIkBzbWl0aHkvbWlkZGxld2FyZS1zZXJkZVwiOiBcIl40LjIuOVwiLFxuICAgIFwiQHNtaXRoeS9taWRkbGV3YXJlLXN0YWNrXCI6IFwiXjQuMi44XCIsXG4gICAgXCJAc21pdGh5L25vZGUtY29uZmlnLXByb3ZpZGVyXCI6IFwiXjQuMy44XCIsXG4gICAgXCJAc21pdGh5L25vZGUtaHR0cC1oYW5kbGVyXCI6IFwiXjQuNC4xMFwiLFxuICAgIFwiQHNtaXRoeS9wcm90b2NvbC1odHRwXCI6IFwiXjUuMy44XCIsXG4gICAgXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjogXCJeNC4xMS41XCIsXG4gICAgXCJAc21pdGh5L3R5cGVzXCI6IFwiXjQuMTIuMFwiLFxuICAgIFwiQHNtaXRoeS91cmwtcGFyc2VyXCI6IFwiXjQuMi44XCIsXG4gICAgXCJAc21pdGh5L3V0aWwtYmFzZTY0XCI6IFwiXjQuMy4wXCIsXG4gICAgXCJAc21pdGh5L3V0aWwtYm9keS1sZW5ndGgtYnJvd3NlclwiOiBcIl40LjIuMFwiLFxuICAgIFwiQHNtaXRoeS91dGlsLWJvZHktbGVuZ3RoLW5vZGVcIjogXCJeNC4yLjFcIixcbiAgICBcIkBzbWl0aHkvdXRpbC1kZWZhdWx0cy1tb2RlLWJyb3dzZXJcIjogXCJeNC4zLjMyXCIsXG4gICAgXCJAc21pdGh5L3V0aWwtZGVmYXVsdHMtbW9kZS1ub2RlXCI6IFwiXjQuMi4zNVwiLFxuICAgIFwiQHNtaXRoeS91dGlsLWVuZHBvaW50c1wiOiBcIl4zLjIuOFwiLFxuICAgIFwiQHNtaXRoeS91dGlsLW1pZGRsZXdhcmVcIjogXCJeNC4yLjhcIixcbiAgICBcIkBzbWl0aHkvdXRpbC1yZXRyeVwiOiBcIl40LjIuOFwiLFxuICAgIFwiQHNtaXRoeS91dGlsLXV0ZjhcIjogXCJeNC4yLjBcIixcbiAgICBcInRzbGliXCI6IFwiXjIuNi4yXCJcbiAgfSxcbiAgXCJkZXZEZXBlbmRlbmNpZXNcIjoge1xuICAgIFwiY29uY3VycmVudGx5XCI6IFwiNy4wLjBcIixcbiAgICBcImRvd25sZXZlbC1kdHNcIjogXCIwLjEwLjFcIixcbiAgICBcInByZW1vdmVcIjogXCI0LjAuMFwiLFxuICAgIFwidHlwZXNjcmlwdFwiOiBcIn41LjguM1wiXG4gIH0sXG4gIFwidHlwZXNWZXJzaW9uc1wiOiB7XG4gICAgXCI8NC4wXCI6IHtcbiAgICAgIFwiZGlzdC10eXBlcy8qXCI6IFtcbiAgICAgICAgXCJkaXN0LXR5cGVzL3RzMy40LypcIlxuICAgICAgXVxuICAgIH1cbiAgfSxcbiAgXCJmaWxlc1wiOiBbXG4gICAgXCIuL3NpZ25pbi5kLnRzXCIsXG4gICAgXCIuL3NpZ25pbi5qc1wiLFxuICAgIFwiLi9zc28tb2lkYy5kLnRzXCIsXG4gICAgXCIuL3Nzby1vaWRjLmpzXCIsXG4gICAgXCIuL3N0cy5kLnRzXCIsXG4gICAgXCIuL3N0cy5qc1wiLFxuICAgIFwiZGlzdC0qLyoqXCJcbiAgXSxcbiAgXCJicm93c2VyXCI6IHtcbiAgICBcIi4vZGlzdC1lcy9zdWJtb2R1bGVzL3NpZ25pbi9ydW50aW1lQ29uZmlnXCI6IFwiLi9kaXN0LWVzL3N1Ym1vZHVsZXMvc2lnbmluL3J1bnRpbWVDb25maWcuYnJvd3NlclwiLFxuICAgIFwiLi9kaXN0LWVzL3N1Ym1vZHVsZXMvc3NvLW9pZGMvcnVudGltZUNvbmZpZ1wiOiBcIi4vZGlzdC1lcy9zdWJtb2R1bGVzL3Nzby1vaWRjL3J1bnRpbWVDb25maWcuYnJvd3NlclwiLFxuICAgIFwiLi9kaXN0LWVzL3N1Ym1vZHVsZXMvc3RzL3J1bnRpbWVDb25maWdcIjogXCIuL2Rpc3QtZXMvc3VibW9kdWxlcy9zdHMvcnVudGltZUNvbmZpZy5icm93c2VyXCJcbiAgfSxcbiAgXCJyZWFjdC1uYXRpdmVcIjoge30sXG4gIFwiaG9tZXBhZ2VcIjogXCJodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1zZGstanMtdjMvdHJlZS9tYWluL3BhY2thZ2VzL25lc3RlZC1jbGllbnRzXCIsXG4gIFwicmVwb3NpdG9yeVwiOiB7XG4gICAgXCJ0eXBlXCI6IFwiZ2l0XCIsXG4gICAgXCJ1cmxcIjogXCJodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1zZGstanMtdjMuZ2l0XCIsXG4gICAgXCJkaXJlY3RvcnlcIjogXCJwYWNrYWdlcy9uZXN0ZWQtY2xpZW50c1wiXG4gIH0sXG4gIFwiZXhwb3J0c1wiOiB7XG4gICAgXCIuL3BhY2thZ2UuanNvblwiOiBcIi4vcGFja2FnZS5qc29uXCIsXG4gICAgXCIuL3Nzby1vaWRjXCI6IHtcbiAgICAgIFwidHlwZXNcIjogXCIuL2Rpc3QtdHlwZXMvc3VibW9kdWxlcy9zc28tb2lkYy9pbmRleC5kLnRzXCIsXG4gICAgICBcIm1vZHVsZVwiOiBcIi4vZGlzdC1lcy9zdWJtb2R1bGVzL3Nzby1vaWRjL2luZGV4LmpzXCIsXG4gICAgICBcIm5vZGVcIjogXCIuL2Rpc3QtY2pzL3N1Ym1vZHVsZXMvc3NvLW9pZGMvaW5kZXguanNcIixcbiAgICAgIFwiaW1wb3J0XCI6IFwiLi9kaXN0LWVzL3N1Ym1vZHVsZXMvc3NvLW9pZGMvaW5kZXguanNcIixcbiAgICAgIFwicmVxdWlyZVwiOiBcIi4vZGlzdC1janMvc3VibW9kdWxlcy9zc28tb2lkYy9pbmRleC5qc1wiXG4gICAgfSxcbiAgICBcIi4vc3RzXCI6IHtcbiAgICAgIFwidHlwZXNcIjogXCIuL2Rpc3QtdHlwZXMvc3VibW9kdWxlcy9zdHMvaW5kZXguZC50c1wiLFxuICAgICAgXCJtb2R1bGVcIjogXCIuL2Rpc3QtZXMvc3VibW9kdWxlcy9zdHMvaW5kZXguanNcIixcbiAgICAgIFwibm9kZVwiOiBcIi4vZGlzdC1janMvc3VibW9kdWxlcy9zdHMvaW5kZXguanNcIixcbiAgICAgIFwiaW1wb3J0XCI6IFwiLi9kaXN0LWVzL3N1Ym1vZHVsZXMvc3RzL2luZGV4LmpzXCIsXG4gICAgICBcInJlcXVpcmVcIjogXCIuL2Rpc3QtY2pzL3N1Ym1vZHVsZXMvc3RzL2luZGV4LmpzXCJcbiAgICB9LFxuICAgIFwiLi9zaWduaW5cIjoge1xuICAgICAgXCJ0eXBlc1wiOiBcIi4vZGlzdC10eXBlcy9zdWJtb2R1bGVzL3NpZ25pbi9pbmRleC5kLnRzXCIsXG4gICAgICBcIm1vZHVsZVwiOiBcIi4vZGlzdC1lcy9zdWJtb2R1bGVzL3NpZ25pbi9pbmRleC5qc1wiLFxuICAgICAgXCJub2RlXCI6IFwiLi9kaXN0LWNqcy9zdWJtb2R1bGVzL3NpZ25pbi9pbmRleC5qc1wiLFxuICAgICAgXCJpbXBvcnRcIjogXCIuL2Rpc3QtZXMvc3VibW9kdWxlcy9zaWduaW4vaW5kZXguanNcIixcbiAgICAgIFwicmVxdWlyZVwiOiBcIi4vZGlzdC1janMvc3VibW9kdWxlcy9zaWduaW4vaW5kZXguanNcIlxuICAgIH1cbiAgfVxufVxuIiwgIid1c2Ugc3RyaWN0JztcblxudmFyIG9zID0gcmVxdWlyZSgnb3MnKTtcbnZhciBwcm9jZXNzID0gcmVxdWlyZSgncHJvY2VzcycpO1xudmFyIG1pZGRsZXdhcmVVc2VyQWdlbnQgPSByZXF1aXJlKCdAYXdzLXNkay9taWRkbGV3YXJlLXVzZXItYWdlbnQnKTtcblxuY29uc3QgZ2V0UnVudGltZVVzZXJBZ2VudFBhaXIgPSAoKSA9PiB7XG4gICAgY29uc3QgcnVudGltZXNUb0NoZWNrID0gW1wiZGVub1wiLCBcImJ1blwiLCBcImxscnRcIl07XG4gICAgZm9yIChjb25zdCBydW50aW1lIG9mIHJ1bnRpbWVzVG9DaGVjaykge1xuICAgICAgICBpZiAocHJvY2Vzcy52ZXJzaW9uc1tydW50aW1lXSkge1xuICAgICAgICAgICAgcmV0dXJuIFtgbWQvJHtydW50aW1lfWAsIHByb2Nlc3MudmVyc2lvbnNbcnVudGltZV1dO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBbXCJtZC9ub2RlanNcIiwgcHJvY2Vzcy52ZXJzaW9ucy5ub2RlXTtcbn07XG5cbmNvbnN0IGNydEF2YWlsYWJpbGl0eSA9IHtcbiAgICBpc0NydEF2YWlsYWJsZTogZmFsc2UsXG59O1xuXG5jb25zdCBpc0NydEF2YWlsYWJsZSA9ICgpID0+IHtcbiAgICBpZiAoY3J0QXZhaWxhYmlsaXR5LmlzQ3J0QXZhaWxhYmxlKSB7XG4gICAgICAgIHJldHVybiBbXCJtZC9jcnQtYXZhaWxcIl07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xufTtcblxuY29uc3QgY3JlYXRlRGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyID0gKHsgc2VydmljZUlkLCBjbGllbnRWZXJzaW9uIH0pID0+IHtcbiAgICBjb25zdCBydW50aW1lVXNlckFnZW50UGFpciA9IGdldFJ1bnRpbWVVc2VyQWdlbnRQYWlyKCk7XG4gICAgcmV0dXJuIGFzeW5jIChjb25maWcpID0+IHtcbiAgICAgICAgY29uc3Qgc2VjdGlvbnMgPSBbXG4gICAgICAgICAgICBbXCJhd3Mtc2RrLWpzXCIsIGNsaWVudFZlcnNpb25dLFxuICAgICAgICAgICAgW1widWFcIiwgXCIyLjFcIl0sXG4gICAgICAgICAgICBbYG9zLyR7b3MucGxhdGZvcm0oKX1gLCBvcy5yZWxlYXNlKCldLFxuICAgICAgICAgICAgW1wibGFuZy9qc1wiXSxcbiAgICAgICAgICAgIHJ1bnRpbWVVc2VyQWdlbnRQYWlyLFxuICAgICAgICBdO1xuICAgICAgICBjb25zdCBjcnRBdmFpbGFibGUgPSBpc0NydEF2YWlsYWJsZSgpO1xuICAgICAgICBpZiAoY3J0QXZhaWxhYmxlKSB7XG4gICAgICAgICAgICBzZWN0aW9ucy5wdXNoKGNydEF2YWlsYWJsZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNlcnZpY2VJZCkge1xuICAgICAgICAgICAgc2VjdGlvbnMucHVzaChbYGFwaS8ke3NlcnZpY2VJZH1gLCBjbGllbnRWZXJzaW9uXSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHByb2Nlc3MuZW52LkFXU19FWEVDVVRJT05fRU5WKSB7XG4gICAgICAgICAgICBzZWN0aW9ucy5wdXNoKFtgZXhlYy1lbnYvJHtwcm9jZXNzLmVudi5BV1NfRVhFQ1VUSU9OX0VOVn1gXSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYXBwSWQgPSBhd2FpdCBjb25maWc/LnVzZXJBZ2VudEFwcElkPy4oKTtcbiAgICAgICAgY29uc3QgcmVzb2x2ZWRVc2VyQWdlbnQgPSBhcHBJZCA/IFsuLi5zZWN0aW9ucywgW2BhcHAvJHthcHBJZH1gXV0gOiBbLi4uc2VjdGlvbnNdO1xuICAgICAgICByZXR1cm4gcmVzb2x2ZWRVc2VyQWdlbnQ7XG4gICAgfTtcbn07XG5jb25zdCBkZWZhdWx0VXNlckFnZW50ID0gY3JlYXRlRGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyO1xuXG5jb25zdCBVQV9BUFBfSURfRU5WX05BTUUgPSBcIkFXU19TREtfVUFfQVBQX0lEXCI7XG5jb25zdCBVQV9BUFBfSURfSU5JX05BTUUgPSBcInNka191YV9hcHBfaWRcIjtcbmNvbnN0IFVBX0FQUF9JRF9JTklfTkFNRV9ERVBSRUNBVEVEID0gXCJzZGstdWEtYXBwLWlkXCI7XG5jb25zdCBOT0RFX0FQUF9JRF9DT05GSUdfT1BUSU9OUyA9IHtcbiAgICBlbnZpcm9ubWVudFZhcmlhYmxlU2VsZWN0b3I6IChlbnYpID0+IGVudltVQV9BUFBfSURfRU5WX05BTUVdLFxuICAgIGNvbmZpZ0ZpbGVTZWxlY3RvcjogKHByb2ZpbGUpID0+IHByb2ZpbGVbVUFfQVBQX0lEX0lOSV9OQU1FXSA/PyBwcm9maWxlW1VBX0FQUF9JRF9JTklfTkFNRV9ERVBSRUNBVEVEXSxcbiAgICBkZWZhdWx0OiBtaWRkbGV3YXJlVXNlckFnZW50LkRFRkFVTFRfVUFfQVBQX0lELFxufTtcblxuZXhwb3J0cy5OT0RFX0FQUF9JRF9DT05GSUdfT1BUSU9OUyA9IE5PREVfQVBQX0lEX0NPTkZJR19PUFRJT05TO1xuZXhwb3J0cy5VQV9BUFBfSURfRU5WX05BTUUgPSBVQV9BUFBfSURfRU5WX05BTUU7XG5leHBvcnRzLlVBX0FQUF9JRF9JTklfTkFNRSA9IFVBX0FQUF9JRF9JTklfTkFNRTtcbmV4cG9ydHMuY3JlYXRlRGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyID0gY3JlYXRlRGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyO1xuZXhwb3J0cy5jcnRBdmFpbGFiaWxpdHkgPSBjcnRBdmFpbGFiaWxpdHk7XG5leHBvcnRzLmRlZmF1bHRVc2VyQWdlbnQgPSBkZWZhdWx0VXNlckFnZW50O1xuIiwgIid1c2Ugc3RyaWN0JztcblxudmFyIHV0aWxFbmRwb2ludHMgPSByZXF1aXJlKCdAc21pdGh5L3V0aWwtZW5kcG9pbnRzJyk7XG52YXIgdXJsUGFyc2VyID0gcmVxdWlyZSgnQHNtaXRoeS91cmwtcGFyc2VyJyk7XG5cbmNvbnN0IGlzVmlydHVhbEhvc3RhYmxlUzNCdWNrZXQgPSAodmFsdWUsIGFsbG93U3ViRG9tYWlucyA9IGZhbHNlKSA9PiB7XG4gICAgaWYgKGFsbG93U3ViRG9tYWlucykge1xuICAgICAgICBmb3IgKGNvbnN0IGxhYmVsIG9mIHZhbHVlLnNwbGl0KFwiLlwiKSkge1xuICAgICAgICAgICAgaWYgKCFpc1ZpcnR1YWxIb3N0YWJsZVMzQnVja2V0KGxhYmVsKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKCF1dGlsRW5kcG9pbnRzLmlzVmFsaWRIb3N0TGFiZWwodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKHZhbHVlLmxlbmd0aCA8IDMgfHwgdmFsdWUubGVuZ3RoID4gNjMpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAodmFsdWUgIT09IHZhbHVlLnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAodXRpbEVuZHBvaW50cy5pc0lwQWRkcmVzcyh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbn07XG5cbmNvbnN0IEFSTl9ERUxJTUlURVIgPSBcIjpcIjtcbmNvbnN0IFJFU09VUkNFX0RFTElNSVRFUiA9IFwiL1wiO1xuY29uc3QgcGFyc2VBcm4gPSAodmFsdWUpID0+IHtcbiAgICBjb25zdCBzZWdtZW50cyA9IHZhbHVlLnNwbGl0KEFSTl9ERUxJTUlURVIpO1xuICAgIGlmIChzZWdtZW50cy5sZW5ndGggPCA2KVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICBjb25zdCBbYXJuLCBwYXJ0aXRpb24sIHNlcnZpY2UsIHJlZ2lvbiwgYWNjb3VudElkLCAuLi5yZXNvdXJjZVBhdGhdID0gc2VnbWVudHM7XG4gICAgaWYgKGFybiAhPT0gXCJhcm5cIiB8fCBwYXJ0aXRpb24gPT09IFwiXCIgfHwgc2VydmljZSA9PT0gXCJcIiB8fCByZXNvdXJjZVBhdGguam9pbihBUk5fREVMSU1JVEVSKSA9PT0gXCJcIilcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgcmVzb3VyY2VJZCA9IHJlc291cmNlUGF0aC5tYXAoKHJlc291cmNlKSA9PiByZXNvdXJjZS5zcGxpdChSRVNPVVJDRV9ERUxJTUlURVIpKS5mbGF0KCk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcGFydGl0aW9uLFxuICAgICAgICBzZXJ2aWNlLFxuICAgICAgICByZWdpb24sXG4gICAgICAgIGFjY291bnRJZCxcbiAgICAgICAgcmVzb3VyY2VJZCxcbiAgICB9O1xufTtcblxudmFyIHBhcnRpdGlvbnMgPSBbXG5cdHtcblx0XHRpZDogXCJhd3NcIixcblx0XHRvdXRwdXRzOiB7XG5cdFx0XHRkbnNTdWZmaXg6IFwiYW1hem9uYXdzLmNvbVwiLFxuXHRcdFx0ZHVhbFN0YWNrRG5zU3VmZml4OiBcImFwaS5hd3NcIixcblx0XHRcdGltcGxpY2l0R2xvYmFsUmVnaW9uOiBcInVzLWVhc3QtMVwiLFxuXHRcdFx0bmFtZTogXCJhd3NcIixcblx0XHRcdHN1cHBvcnRzRHVhbFN0YWNrOiB0cnVlLFxuXHRcdFx0c3VwcG9ydHNGSVBTOiB0cnVlXG5cdFx0fSxcblx0XHRyZWdpb25SZWdleDogXCJeKHVzfGV1fGFwfHNhfGNhfG1lfGFmfGlsfG14KVxcXFwtXFxcXHcrXFxcXC1cXFxcZCskXCIsXG5cdFx0cmVnaW9uczoge1xuXHRcdFx0XCJhZi1zb3V0aC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQWZyaWNhIChDYXBlIFRvd24pXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLWVhc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFzaWEgUGFjaWZpYyAoSG9uZyBLb25nKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJhcC1lYXN0LTJcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBc2lhIFBhY2lmaWMgKFRhaXBlaSlcIlxuXHRcdFx0fSxcblx0XHRcdFwiYXAtbm9ydGhlYXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBc2lhIFBhY2lmaWMgKFRva3lvKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJhcC1ub3J0aGVhc3QtMlwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFzaWEgUGFjaWZpYyAoU2VvdWwpXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLW5vcnRoZWFzdC0zXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChPc2FrYSlcIlxuXHRcdFx0fSxcblx0XHRcdFwiYXAtc291dGgtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFzaWEgUGFjaWZpYyAoTXVtYmFpKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJhcC1zb3V0aC0yXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChIeWRlcmFiYWQpXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLXNvdXRoZWFzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChTaW5nYXBvcmUpXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLXNvdXRoZWFzdC0yXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChTeWRuZXkpXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLXNvdXRoZWFzdC0zXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChKYWthcnRhKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJhcC1zb3V0aGVhc3QtNFwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFzaWEgUGFjaWZpYyAoTWVsYm91cm5lKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJhcC1zb3V0aGVhc3QtNVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFzaWEgUGFjaWZpYyAoTWFsYXlzaWEpXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLXNvdXRoZWFzdC02XCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChOZXcgWmVhbGFuZClcIlxuXHRcdFx0fSxcblx0XHRcdFwiYXAtc291dGhlYXN0LTdcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBc2lhIFBhY2lmaWMgKFRoYWlsYW5kKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJhd3MtZ2xvYmFsXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiYXdzIGdsb2JhbCByZWdpb25cIlxuXHRcdFx0fSxcblx0XHRcdFwiY2EtY2VudHJhbC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQ2FuYWRhIChDZW50cmFsKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJjYS13ZXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJDYW5hZGEgV2VzdCAoQ2FsZ2FyeSlcIlxuXHRcdFx0fSxcblx0XHRcdFwiZXUtY2VudHJhbC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiRXVyb3BlIChGcmFua2Z1cnQpXCJcblx0XHRcdH0sXG5cdFx0XHRcImV1LWNlbnRyYWwtMlwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkV1cm9wZSAoWnVyaWNoKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJldS1ub3J0aC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiRXVyb3BlIChTdG9ja2hvbG0pXCJcblx0XHRcdH0sXG5cdFx0XHRcImV1LXNvdXRoLTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJFdXJvcGUgKE1pbGFuKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJldS1zb3V0aC0yXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiRXVyb3BlIChTcGFpbilcIlxuXHRcdFx0fSxcblx0XHRcdFwiZXUtd2VzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiRXVyb3BlIChJcmVsYW5kKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJldS13ZXN0LTJcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJFdXJvcGUgKExvbmRvbilcIlxuXHRcdFx0fSxcblx0XHRcdFwiZXUtd2VzdC0zXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiRXVyb3BlIChQYXJpcylcIlxuXHRcdFx0fSxcblx0XHRcdFwiaWwtY2VudHJhbC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiSXNyYWVsIChUZWwgQXZpdilcIlxuXHRcdFx0fSxcblx0XHRcdFwibWUtY2VudHJhbC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiTWlkZGxlIEVhc3QgKFVBRSlcIlxuXHRcdFx0fSxcblx0XHRcdFwibWUtc291dGgtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIk1pZGRsZSBFYXN0IChCYWhyYWluKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJteC1jZW50cmFsLTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJNZXhpY28gKENlbnRyYWwpXCJcblx0XHRcdH0sXG5cdFx0XHRcInNhLWVhc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIlNvdXRoIEFtZXJpY2EgKFNhbyBQYXVsbylcIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtZWFzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiVVMgRWFzdCAoTi4gVmlyZ2luaWEpXCJcblx0XHRcdH0sXG5cdFx0XHRcInVzLWVhc3QtMlwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIlVTIEVhc3QgKE9oaW8pXCJcblx0XHRcdH0sXG5cdFx0XHRcInVzLXdlc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIlVTIFdlc3QgKE4uIENhbGlmb3JuaWEpXCJcblx0XHRcdH0sXG5cdFx0XHRcInVzLXdlc3QtMlwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIlVTIFdlc3QgKE9yZWdvbilcIlxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0e1xuXHRcdGlkOiBcImF3cy1jblwiLFxuXHRcdG91dHB1dHM6IHtcblx0XHRcdGRuc1N1ZmZpeDogXCJhbWF6b25hd3MuY29tLmNuXCIsXG5cdFx0XHRkdWFsU3RhY2tEbnNTdWZmaXg6IFwiYXBpLmFtYXpvbndlYnNlcnZpY2VzLmNvbS5jblwiLFxuXHRcdFx0aW1wbGljaXRHbG9iYWxSZWdpb246IFwiY24tbm9ydGh3ZXN0LTFcIixcblx0XHRcdG5hbWU6IFwiYXdzLWNuXCIsXG5cdFx0XHRzdXBwb3J0c0R1YWxTdGFjazogdHJ1ZSxcblx0XHRcdHN1cHBvcnRzRklQUzogdHJ1ZVxuXHRcdH0sXG5cdFx0cmVnaW9uUmVnZXg6IFwiXmNuXFxcXC1cXFxcdytcXFxcLVxcXFxkKyRcIixcblx0XHRyZWdpb25zOiB7XG5cdFx0XHRcImF3cy1jbi1nbG9iYWxcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJhd3MtY24gZ2xvYmFsIHJlZ2lvblwiXG5cdFx0XHR9LFxuXHRcdFx0XCJjbi1ub3J0aC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQ2hpbmEgKEJlaWppbmcpXCJcblx0XHRcdH0sXG5cdFx0XHRcImNuLW5vcnRod2VzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQ2hpbmEgKE5pbmd4aWEpXCJcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdHtcblx0XHRpZDogXCJhd3MtZXVzY1wiLFxuXHRcdG91dHB1dHM6IHtcblx0XHRcdGRuc1N1ZmZpeDogXCJhbWF6b25hd3MuZXVcIixcblx0XHRcdGR1YWxTdGFja0Ruc1N1ZmZpeDogXCJhcGkuYW1hem9ud2Vic2VydmljZXMuZXVcIixcblx0XHRcdGltcGxpY2l0R2xvYmFsUmVnaW9uOiBcImV1c2MtZGUtZWFzdC0xXCIsXG5cdFx0XHRuYW1lOiBcImF3cy1ldXNjXCIsXG5cdFx0XHRzdXBwb3J0c0R1YWxTdGFjazogdHJ1ZSxcblx0XHRcdHN1cHBvcnRzRklQUzogdHJ1ZVxuXHRcdH0sXG5cdFx0cmVnaW9uUmVnZXg6IFwiXmV1c2NcXFxcLShkZSlcXFxcLVxcXFx3K1xcXFwtXFxcXGQrJFwiLFxuXHRcdHJlZ2lvbnM6IHtcblx0XHRcdFwiZXVzYy1kZS1lYXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBV1MgRXVyb3BlYW4gU292ZXJlaWduIENsb3VkIChHZXJtYW55KVwiXG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXHR7XG5cdFx0aWQ6IFwiYXdzLWlzb1wiLFxuXHRcdG91dHB1dHM6IHtcblx0XHRcdGRuc1N1ZmZpeDogXCJjMnMuaWMuZ292XCIsXG5cdFx0XHRkdWFsU3RhY2tEbnNTdWZmaXg6IFwiYXBpLmF3cy5pYy5nb3ZcIixcblx0XHRcdGltcGxpY2l0R2xvYmFsUmVnaW9uOiBcInVzLWlzby1lYXN0LTFcIixcblx0XHRcdG5hbWU6IFwiYXdzLWlzb1wiLFxuXHRcdFx0c3VwcG9ydHNEdWFsU3RhY2s6IHRydWUsXG5cdFx0XHRzdXBwb3J0c0ZJUFM6IHRydWVcblx0XHR9LFxuXHRcdHJlZ2lvblJlZ2V4OiBcIl51c1xcXFwtaXNvXFxcXC1cXFxcdytcXFxcLVxcXFxkKyRcIixcblx0XHRyZWdpb25zOiB7XG5cdFx0XHRcImF3cy1pc28tZ2xvYmFsXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiYXdzLWlzbyBnbG9iYWwgcmVnaW9uXCJcblx0XHRcdH0sXG5cdFx0XHRcInVzLWlzby1lYXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJVUyBJU08gRWFzdFwiXG5cdFx0XHR9LFxuXHRcdFx0XCJ1cy1pc28td2VzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiVVMgSVNPIFdFU1RcIlxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0e1xuXHRcdGlkOiBcImF3cy1pc28tYlwiLFxuXHRcdG91dHB1dHM6IHtcblx0XHRcdGRuc1N1ZmZpeDogXCJzYzJzLnNnb3YuZ292XCIsXG5cdFx0XHRkdWFsU3RhY2tEbnNTdWZmaXg6IFwiYXBpLmF3cy5zY2xvdWRcIixcblx0XHRcdGltcGxpY2l0R2xvYmFsUmVnaW9uOiBcInVzLWlzb2ItZWFzdC0xXCIsXG5cdFx0XHRuYW1lOiBcImF3cy1pc28tYlwiLFxuXHRcdFx0c3VwcG9ydHNEdWFsU3RhY2s6IHRydWUsXG5cdFx0XHRzdXBwb3J0c0ZJUFM6IHRydWVcblx0XHR9LFxuXHRcdHJlZ2lvblJlZ2V4OiBcIl51c1xcXFwtaXNvYlxcXFwtXFxcXHcrXFxcXC1cXFxcZCskXCIsXG5cdFx0cmVnaW9uczoge1xuXHRcdFx0XCJhd3MtaXNvLWItZ2xvYmFsXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiYXdzLWlzby1iIGdsb2JhbCByZWdpb25cIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtaXNvYi1lYXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJVUyBJU09CIEVhc3QgKE9oaW8pXCJcblx0XHRcdH0sXG5cdFx0XHRcInVzLWlzb2Itd2VzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiVVMgSVNPQiBXZXN0XCJcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdHtcblx0XHRpZDogXCJhd3MtaXNvLWVcIixcblx0XHRvdXRwdXRzOiB7XG5cdFx0XHRkbnNTdWZmaXg6IFwiY2xvdWQuYWRjLWUudWtcIixcblx0XHRcdGR1YWxTdGFja0Ruc1N1ZmZpeDogXCJhcGkuY2xvdWQtYXdzLmFkYy1lLnVrXCIsXG5cdFx0XHRpbXBsaWNpdEdsb2JhbFJlZ2lvbjogXCJldS1pc29lLXdlc3QtMVwiLFxuXHRcdFx0bmFtZTogXCJhd3MtaXNvLWVcIixcblx0XHRcdHN1cHBvcnRzRHVhbFN0YWNrOiB0cnVlLFxuXHRcdFx0c3VwcG9ydHNGSVBTOiB0cnVlXG5cdFx0fSxcblx0XHRyZWdpb25SZWdleDogXCJeZXVcXFxcLWlzb2VcXFxcLVxcXFx3K1xcXFwtXFxcXGQrJFwiLFxuXHRcdHJlZ2lvbnM6IHtcblx0XHRcdFwiYXdzLWlzby1lLWdsb2JhbFwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcImF3cy1pc28tZSBnbG9iYWwgcmVnaW9uXCJcblx0XHRcdH0sXG5cdFx0XHRcImV1LWlzb2Utd2VzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiRVUgSVNPRSBXZXN0XCJcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdHtcblx0XHRpZDogXCJhd3MtaXNvLWZcIixcblx0XHRvdXRwdXRzOiB7XG5cdFx0XHRkbnNTdWZmaXg6IFwiY3NwLmhjaS5pYy5nb3ZcIixcblx0XHRcdGR1YWxTdGFja0Ruc1N1ZmZpeDogXCJhcGkuYXdzLmhjaS5pYy5nb3ZcIixcblx0XHRcdGltcGxpY2l0R2xvYmFsUmVnaW9uOiBcInVzLWlzb2Ytc291dGgtMVwiLFxuXHRcdFx0bmFtZTogXCJhd3MtaXNvLWZcIixcblx0XHRcdHN1cHBvcnRzRHVhbFN0YWNrOiB0cnVlLFxuXHRcdFx0c3VwcG9ydHNGSVBTOiB0cnVlXG5cdFx0fSxcblx0XHRyZWdpb25SZWdleDogXCJedXNcXFxcLWlzb2ZcXFxcLVxcXFx3K1xcXFwtXFxcXGQrJFwiLFxuXHRcdHJlZ2lvbnM6IHtcblx0XHRcdFwiYXdzLWlzby1mLWdsb2JhbFwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcImF3cy1pc28tZiBnbG9iYWwgcmVnaW9uXCJcblx0XHRcdH0sXG5cdFx0XHRcInVzLWlzb2YtZWFzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiVVMgSVNPRiBFQVNUXCJcblx0XHRcdH0sXG5cdFx0XHRcInVzLWlzb2Ytc291dGgtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIlVTIElTT0YgU09VVEhcIlxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0e1xuXHRcdGlkOiBcImF3cy11cy1nb3ZcIixcblx0XHRvdXRwdXRzOiB7XG5cdFx0XHRkbnNTdWZmaXg6IFwiYW1hem9uYXdzLmNvbVwiLFxuXHRcdFx0ZHVhbFN0YWNrRG5zU3VmZml4OiBcImFwaS5hd3NcIixcblx0XHRcdGltcGxpY2l0R2xvYmFsUmVnaW9uOiBcInVzLWdvdi13ZXN0LTFcIixcblx0XHRcdG5hbWU6IFwiYXdzLXVzLWdvdlwiLFxuXHRcdFx0c3VwcG9ydHNEdWFsU3RhY2s6IHRydWUsXG5cdFx0XHRzdXBwb3J0c0ZJUFM6IHRydWVcblx0XHR9LFxuXHRcdHJlZ2lvblJlZ2V4OiBcIl51c1xcXFwtZ292XFxcXC1cXFxcdytcXFxcLVxcXFxkKyRcIixcblx0XHRyZWdpb25zOiB7XG5cdFx0XHRcImF3cy11cy1nb3YtZ2xvYmFsXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiYXdzLXVzLWdvdiBnbG9iYWwgcmVnaW9uXCJcblx0XHRcdH0sXG5cdFx0XHRcInVzLWdvdi1lYXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBV1MgR292Q2xvdWQgKFVTLUVhc3QpXCJcblx0XHRcdH0sXG5cdFx0XHRcInVzLWdvdi13ZXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBV1MgR292Q2xvdWQgKFVTLVdlc3QpXCJcblx0XHRcdH1cblx0XHR9XG5cdH1cbl07XG52YXIgdmVyc2lvbiA9IFwiMS4xXCI7XG52YXIgcGFydGl0aW9uc0luZm8gPSB7XG5cdHBhcnRpdGlvbnM6IHBhcnRpdGlvbnMsXG5cdHZlcnNpb246IHZlcnNpb25cbn07XG5cbmxldCBzZWxlY3RlZFBhcnRpdGlvbnNJbmZvID0gcGFydGl0aW9uc0luZm87XG5sZXQgc2VsZWN0ZWRVc2VyQWdlbnRQcmVmaXggPSBcIlwiO1xuY29uc3QgcGFydGl0aW9uID0gKHZhbHVlKSA9PiB7XG4gICAgY29uc3QgeyBwYXJ0aXRpb25zIH0gPSBzZWxlY3RlZFBhcnRpdGlvbnNJbmZvO1xuICAgIGZvciAoY29uc3QgcGFydGl0aW9uIG9mIHBhcnRpdGlvbnMpIHtcbiAgICAgICAgY29uc3QgeyByZWdpb25zLCBvdXRwdXRzIH0gPSBwYXJ0aXRpb247XG4gICAgICAgIGZvciAoY29uc3QgW3JlZ2lvbiwgcmVnaW9uRGF0YV0gb2YgT2JqZWN0LmVudHJpZXMocmVnaW9ucykpIHtcbiAgICAgICAgICAgIGlmIChyZWdpb24gPT09IHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgLi4ub3V0cHV0cyxcbiAgICAgICAgICAgICAgICAgICAgLi4ucmVnaW9uRGF0YSxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGZvciAoY29uc3QgcGFydGl0aW9uIG9mIHBhcnRpdGlvbnMpIHtcbiAgICAgICAgY29uc3QgeyByZWdpb25SZWdleCwgb3V0cHV0cyB9ID0gcGFydGl0aW9uO1xuICAgICAgICBpZiAobmV3IFJlZ0V4cChyZWdpb25SZWdleCkudGVzdCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgLi4ub3V0cHV0cyxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgREVGQVVMVF9QQVJUSVRJT04gPSBwYXJ0aXRpb25zLmZpbmQoKHBhcnRpdGlvbikgPT4gcGFydGl0aW9uLmlkID09PSBcImF3c1wiKTtcbiAgICBpZiAoIURFRkFVTFRfUEFSVElUSU9OKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIlByb3ZpZGVkIHJlZ2lvbiB3YXMgbm90IGZvdW5kIGluIHRoZSBwYXJ0aXRpb24gYXJyYXkgb3IgcmVnZXgsXCIgK1xuICAgICAgICAgICAgXCIgYW5kIGRlZmF1bHQgcGFydGl0aW9uIHdpdGggaWQgJ2F3cycgZG9lc24ndCBleGlzdC5cIik7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIC4uLkRFRkFVTFRfUEFSVElUSU9OLm91dHB1dHMsXG4gICAgfTtcbn07XG5jb25zdCBzZXRQYXJ0aXRpb25JbmZvID0gKHBhcnRpdGlvbnNJbmZvLCB1c2VyQWdlbnRQcmVmaXggPSBcIlwiKSA9PiB7XG4gICAgc2VsZWN0ZWRQYXJ0aXRpb25zSW5mbyA9IHBhcnRpdGlvbnNJbmZvO1xuICAgIHNlbGVjdGVkVXNlckFnZW50UHJlZml4ID0gdXNlckFnZW50UHJlZml4O1xufTtcbmNvbnN0IHVzZURlZmF1bHRQYXJ0aXRpb25JbmZvID0gKCkgPT4ge1xuICAgIHNldFBhcnRpdGlvbkluZm8ocGFydGl0aW9uc0luZm8sIFwiXCIpO1xufTtcbmNvbnN0IGdldFVzZXJBZ2VudFByZWZpeCA9ICgpID0+IHNlbGVjdGVkVXNlckFnZW50UHJlZml4O1xuXG5jb25zdCBhd3NFbmRwb2ludEZ1bmN0aW9ucyA9IHtcbiAgICBpc1ZpcnR1YWxIb3N0YWJsZVMzQnVja2V0OiBpc1ZpcnR1YWxIb3N0YWJsZVMzQnVja2V0LFxuICAgIHBhcnNlQXJuOiBwYXJzZUFybixcbiAgICBwYXJ0aXRpb246IHBhcnRpdGlvbixcbn07XG51dGlsRW5kcG9pbnRzLmN1c3RvbUVuZHBvaW50RnVuY3Rpb25zLmF3cyA9IGF3c0VuZHBvaW50RnVuY3Rpb25zO1xuXG5jb25zdCByZXNvbHZlRGVmYXVsdEF3c1JlZ2lvbmFsRW5kcG9pbnRzQ29uZmlnID0gKGlucHV0KSA9PiB7XG4gICAgaWYgKHR5cGVvZiBpbnB1dC5lbmRwb2ludFByb3ZpZGVyICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQGF3cy1zZGsvdXRpbC1lbmRwb2ludCAtIGVuZHBvaW50UHJvdmlkZXIgYW5kIGVuZHBvaW50IG1pc3NpbmcgaW4gY29uZmlnIGZvciB0aGlzIGNsaWVudC5cIik7XG4gICAgfVxuICAgIGNvbnN0IHsgZW5kcG9pbnQgfSA9IGlucHV0O1xuICAgIGlmIChlbmRwb2ludCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlucHV0LmVuZHBvaW50ID0gYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHRvRW5kcG9pbnRWMShpbnB1dC5lbmRwb2ludFByb3ZpZGVyKHtcbiAgICAgICAgICAgICAgICBSZWdpb246IHR5cGVvZiBpbnB1dC5yZWdpb24gPT09IFwiZnVuY3Rpb25cIiA/IGF3YWl0IGlucHV0LnJlZ2lvbigpIDogaW5wdXQucmVnaW9uLFxuICAgICAgICAgICAgICAgIFVzZUR1YWxTdGFjazogdHlwZW9mIGlucHV0LnVzZUR1YWxzdGFja0VuZHBvaW50ID09PSBcImZ1bmN0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgPyBhd2FpdCBpbnB1dC51c2VEdWFsc3RhY2tFbmRwb2ludCgpXG4gICAgICAgICAgICAgICAgICAgIDogaW5wdXQudXNlRHVhbHN0YWNrRW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgVXNlRklQUzogdHlwZW9mIGlucHV0LnVzZUZpcHNFbmRwb2ludCA9PT0gXCJmdW5jdGlvblwiID8gYXdhaXQgaW5wdXQudXNlRmlwc0VuZHBvaW50KCkgOiBpbnB1dC51c2VGaXBzRW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgRW5kcG9pbnQ6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIH0sIHsgbG9nZ2VyOiBpbnB1dC5sb2dnZXIgfSkpO1xuICAgICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gaW5wdXQ7XG59O1xuY29uc3QgdG9FbmRwb2ludFYxID0gKGVuZHBvaW50KSA9PiB1cmxQYXJzZXIucGFyc2VVcmwoZW5kcG9pbnQudXJsKTtcblxuZXhwb3J0cy5FbmRwb2ludEVycm9yID0gdXRpbEVuZHBvaW50cy5FbmRwb2ludEVycm9yO1xuZXhwb3J0cy5pc0lwQWRkcmVzcyA9IHV0aWxFbmRwb2ludHMuaXNJcEFkZHJlc3M7XG5leHBvcnRzLnJlc29sdmVFbmRwb2ludCA9IHV0aWxFbmRwb2ludHMucmVzb2x2ZUVuZHBvaW50O1xuZXhwb3J0cy5hd3NFbmRwb2ludEZ1bmN0aW9ucyA9IGF3c0VuZHBvaW50RnVuY3Rpb25zO1xuZXhwb3J0cy5nZXRVc2VyQWdlbnRQcmVmaXggPSBnZXRVc2VyQWdlbnRQcmVmaXg7XG5leHBvcnRzLnBhcnRpdGlvbiA9IHBhcnRpdGlvbjtcbmV4cG9ydHMucmVzb2x2ZURlZmF1bHRBd3NSZWdpb25hbEVuZHBvaW50c0NvbmZpZyA9IHJlc29sdmVEZWZhdWx0QXdzUmVnaW9uYWxFbmRwb2ludHNDb25maWc7XG5leHBvcnRzLnNldFBhcnRpdGlvbkluZm8gPSBzZXRQYXJ0aXRpb25JbmZvO1xuZXhwb3J0cy50b0VuZHBvaW50VjEgPSB0b0VuZHBvaW50VjE7XG5leHBvcnRzLnVzZURlZmF1bHRQYXJ0aXRpb25JbmZvID0gdXNlRGVmYXVsdFBhcnRpdGlvbkluZm87XG4iLCAiY29uc3QgdSA9IFwicmVxdWlyZWRcIiwgdiA9IFwiZm5cIiwgdyA9IFwiYXJndlwiLCB4ID0gXCJyZWZcIjtcbmNvbnN0IGEgPSB0cnVlLCBiID0gXCJpc1NldFwiLCBjID0gXCJib29sZWFuRXF1YWxzXCIsIGQgPSBcImVycm9yXCIsIGUgPSBcImVuZHBvaW50XCIsIGYgPSBcInRyZWVcIiwgZyA9IFwiUGFydGl0aW9uUmVzdWx0XCIsIGggPSBcImdldEF0dHJcIiwgaSA9IHsgW3VdOiBmYWxzZSwgXCJ0eXBlXCI6IFwic3RyaW5nXCIgfSwgaiA9IHsgW3VdOiB0cnVlLCBcImRlZmF1bHRcIjogZmFsc2UsIFwidHlwZVwiOiBcImJvb2xlYW5cIiB9LCBrID0geyBbeF06IFwiRW5kcG9pbnRcIiB9LCBsID0geyBbdl06IGMsIFt3XTogW3sgW3hdOiBcIlVzZUZJUFNcIiB9LCB0cnVlXSB9LCBtID0geyBbdl06IGMsIFt3XTogW3sgW3hdOiBcIlVzZUR1YWxTdGFja1wiIH0sIHRydWVdIH0sIG4gPSB7fSwgbyA9IHsgW3ZdOiBoLCBbd106IFt7IFt4XTogZyB9LCBcInN1cHBvcnRzRklQU1wiXSB9LCBwID0geyBbeF06IGcgfSwgcSA9IHsgW3ZdOiBjLCBbd106IFt0cnVlLCB7IFt2XTogaCwgW3ddOiBbcCwgXCJzdXBwb3J0c0R1YWxTdGFja1wiXSB9XSB9LCByID0gW2xdLCBzID0gW21dLCB0ID0gW3sgW3hdOiBcIlJlZ2lvblwiIH1dO1xuY29uc3QgX2RhdGEgPSB7IHZlcnNpb246IFwiMS4wXCIsIHBhcmFtZXRlcnM6IHsgUmVnaW9uOiBpLCBVc2VEdWFsU3RhY2s6IGosIFVzZUZJUFM6IGosIEVuZHBvaW50OiBpIH0sIHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbeyBbdl06IGIsIFt3XTogW2tdIH1dLCBydWxlczogW3sgY29uZGl0aW9uczogciwgZXJyb3I6IFwiSW52YWxpZCBDb25maWd1cmF0aW9uOiBGSVBTIGFuZCBjdXN0b20gZW5kcG9pbnQgYXJlIG5vdCBzdXBwb3J0ZWRcIiwgdHlwZTogZCB9LCB7IGNvbmRpdGlvbnM6IHMsIGVycm9yOiBcIkludmFsaWQgQ29uZmlndXJhdGlvbjogRHVhbHN0YWNrIGFuZCBjdXN0b20gZW5kcG9pbnQgYXJlIG5vdCBzdXBwb3J0ZWRcIiwgdHlwZTogZCB9LCB7IGVuZHBvaW50OiB7IHVybDogaywgcHJvcGVydGllczogbiwgaGVhZGVyczogbiB9LCB0eXBlOiBlIH1dLCB0eXBlOiBmIH0sIHsgY29uZGl0aW9uczogW3sgW3ZdOiBiLCBbd106IHQgfV0sIHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbeyBbdl06IFwiYXdzLnBhcnRpdGlvblwiLCBbd106IHQsIGFzc2lnbjogZyB9XSwgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IFtsLCBtXSwgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IFt7IFt2XTogYywgW3ddOiBbYSwgb10gfSwgcV0sIHJ1bGVzOiBbeyBlbmRwb2ludDogeyB1cmw6IFwiaHR0cHM6Ly9vaWRjLWZpcHMue1JlZ2lvbn0ue1BhcnRpdGlvblJlc3VsdCNkdWFsU3RhY2tEbnNTdWZmaXh9XCIsIHByb3BlcnRpZXM6IG4sIGhlYWRlcnM6IG4gfSwgdHlwZTogZSB9XSwgdHlwZTogZiB9LCB7IGVycm9yOiBcIkZJUFMgYW5kIER1YWxTdGFjayBhcmUgZW5hYmxlZCwgYnV0IHRoaXMgcGFydGl0aW9uIGRvZXMgbm90IHN1cHBvcnQgb25lIG9yIGJvdGhcIiwgdHlwZTogZCB9XSwgdHlwZTogZiB9LCB7IGNvbmRpdGlvbnM6IHIsIHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbeyBbdl06IGMsIFt3XTogW28sIGFdIH1dLCBydWxlczogW3sgY29uZGl0aW9uczogW3sgW3ZdOiBcInN0cmluZ0VxdWFsc1wiLCBbd106IFt7IFt2XTogaCwgW3ddOiBbcCwgXCJuYW1lXCJdIH0sIFwiYXdzLXVzLWdvdlwiXSB9XSwgZW5kcG9pbnQ6IHsgdXJsOiBcImh0dHBzOi8vb2lkYy57UmVnaW9ufS5hbWF6b25hd3MuY29tXCIsIHByb3BlcnRpZXM6IG4sIGhlYWRlcnM6IG4gfSwgdHlwZTogZSB9LCB7IGVuZHBvaW50OiB7IHVybDogXCJodHRwczovL29pZGMtZmlwcy57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH1cIiwgcHJvcGVydGllczogbiwgaGVhZGVyczogbiB9LCB0eXBlOiBlIH1dLCB0eXBlOiBmIH0sIHsgZXJyb3I6IFwiRklQUyBpcyBlbmFibGVkIGJ1dCB0aGlzIHBhcnRpdGlvbiBkb2VzIG5vdCBzdXBwb3J0IEZJUFNcIiwgdHlwZTogZCB9XSwgdHlwZTogZiB9LCB7IGNvbmRpdGlvbnM6IHMsIHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbcV0sIHJ1bGVzOiBbeyBlbmRwb2ludDogeyB1cmw6IFwiaHR0cHM6Ly9vaWRjLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZHVhbFN0YWNrRG5zU3VmZml4fVwiLCBwcm9wZXJ0aWVzOiBuLCBoZWFkZXJzOiBuIH0sIHR5cGU6IGUgfV0sIHR5cGU6IGYgfSwgeyBlcnJvcjogXCJEdWFsU3RhY2sgaXMgZW5hYmxlZCBidXQgdGhpcyBwYXJ0aXRpb24gZG9lcyBub3Qgc3VwcG9ydCBEdWFsU3RhY2tcIiwgdHlwZTogZCB9XSwgdHlwZTogZiB9LCB7IGVuZHBvaW50OiB7IHVybDogXCJodHRwczovL29pZGMue1JlZ2lvbn0ue1BhcnRpdGlvblJlc3VsdCNkbnNTdWZmaXh9XCIsIHByb3BlcnRpZXM6IG4sIGhlYWRlcnM6IG4gfSwgdHlwZTogZSB9XSwgdHlwZTogZiB9XSwgdHlwZTogZiB9LCB7IGVycm9yOiBcIkludmFsaWQgQ29uZmlndXJhdGlvbjogTWlzc2luZyBSZWdpb25cIiwgdHlwZTogZCB9XSB9O1xuZXhwb3J0IGNvbnN0IHJ1bGVTZXQgPSBfZGF0YTtcbiIsICJpbXBvcnQgeyBhd3NFbmRwb2ludEZ1bmN0aW9ucyB9IGZyb20gXCJAYXdzLXNkay91dGlsLWVuZHBvaW50c1wiO1xuaW1wb3J0IHsgY3VzdG9tRW5kcG9pbnRGdW5jdGlvbnMsIEVuZHBvaW50Q2FjaGUsIHJlc29sdmVFbmRwb2ludCB9IGZyb20gXCJAc21pdGh5L3V0aWwtZW5kcG9pbnRzXCI7XG5pbXBvcnQgeyBydWxlU2V0IH0gZnJvbSBcIi4vcnVsZXNldFwiO1xuY29uc3QgY2FjaGUgPSBuZXcgRW5kcG9pbnRDYWNoZSh7XG4gICAgc2l6ZTogNTAsXG4gICAgcGFyYW1zOiBbXCJFbmRwb2ludFwiLCBcIlJlZ2lvblwiLCBcIlVzZUR1YWxTdGFja1wiLCBcIlVzZUZJUFNcIl0sXG59KTtcbmV4cG9ydCBjb25zdCBkZWZhdWx0RW5kcG9pbnRSZXNvbHZlciA9IChlbmRwb2ludFBhcmFtcywgY29udGV4dCA9IHt9KSA9PiB7XG4gICAgcmV0dXJuIGNhY2hlLmdldChlbmRwb2ludFBhcmFtcywgKCkgPT4gcmVzb2x2ZUVuZHBvaW50KHJ1bGVTZXQsIHtcbiAgICAgICAgZW5kcG9pbnRQYXJhbXM6IGVuZHBvaW50UGFyYW1zLFxuICAgICAgICBsb2dnZXI6IGNvbnRleHQubG9nZ2VyLFxuICAgIH0pKTtcbn07XG5jdXN0b21FbmRwb2ludEZ1bmN0aW9ucy5hd3MgPSBhd3NFbmRwb2ludEZ1bmN0aW9ucztcbiIsICJpbXBvcnQgeyBTZXJ2aWNlRXhjZXB0aW9uIGFzIF9fU2VydmljZUV4Y2VwdGlvbiwgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5leHBvcnQgeyBfX1NlcnZpY2VFeGNlcHRpb24gfTtcbmV4cG9ydCBjbGFzcyBTU09PSURDU2VydmljZUV4Y2VwdGlvbiBleHRlbmRzIF9fU2VydmljZUV4Y2VwdGlvbiB7XG4gICAgY29uc3RydWN0b3Iob3B0aW9ucykge1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFNTT09JRENTZXJ2aWNlRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IFNTT09JRENTZXJ2aWNlRXhjZXB0aW9uIGFzIF9fQmFzZUV4Y2VwdGlvbiB9IGZyb20gXCIuL1NTT09JRENTZXJ2aWNlRXhjZXB0aW9uXCI7XG5leHBvcnQgY2xhc3MgQWNjZXNzRGVuaWVkRXhjZXB0aW9uIGV4dGVuZHMgX19CYXNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJBY2Nlc3NEZW5pZWRFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGVycm9yO1xuICAgIHJlYXNvbjtcbiAgICBlcnJvcl9kZXNjcmlwdGlvbjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiQWNjZXNzRGVuaWVkRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEFjY2Vzc0RlbmllZEV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLmVycm9yID0gb3B0cy5lcnJvcjtcbiAgICAgICAgdGhpcy5yZWFzb24gPSBvcHRzLnJlYXNvbjtcbiAgICAgICAgdGhpcy5lcnJvcl9kZXNjcmlwdGlvbiA9IG9wdHMuZXJyb3JfZGVzY3JpcHRpb247XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIEF1dGhvcml6YXRpb25QZW5kaW5nRXhjZXB0aW9uIGV4dGVuZHMgX19CYXNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJBdXRob3JpemF0aW9uUGVuZGluZ0V4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgZXJyb3I7XG4gICAgZXJyb3JfZGVzY3JpcHRpb247XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkF1dGhvcml6YXRpb25QZW5kaW5nRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEF1dGhvcml6YXRpb25QZW5kaW5nRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuZXJyb3IgPSBvcHRzLmVycm9yO1xuICAgICAgICB0aGlzLmVycm9yX2Rlc2NyaXB0aW9uID0gb3B0cy5lcnJvcl9kZXNjcmlwdGlvbjtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgRXhwaXJlZFRva2VuRXhjZXB0aW9uIGV4dGVuZHMgX19CYXNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJFeHBpcmVkVG9rZW5FeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGVycm9yO1xuICAgIGVycm9yX2Rlc2NyaXB0aW9uO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJFeHBpcmVkVG9rZW5FeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgRXhwaXJlZFRva2VuRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuZXJyb3IgPSBvcHRzLmVycm9yO1xuICAgICAgICB0aGlzLmVycm9yX2Rlc2NyaXB0aW9uID0gb3B0cy5lcnJvcl9kZXNjcmlwdGlvbjtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb24gZXh0ZW5kcyBfX0Jhc2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIkludGVybmFsU2VydmVyRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJzZXJ2ZXJcIjtcbiAgICBlcnJvcjtcbiAgICBlcnJvcl9kZXNjcmlwdGlvbjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJzZXJ2ZXJcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5lcnJvciA9IG9wdHMuZXJyb3I7XG4gICAgICAgIHRoaXMuZXJyb3JfZGVzY3JpcHRpb24gPSBvcHRzLmVycm9yX2Rlc2NyaXB0aW9uO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBJbnZhbGlkQ2xpZW50RXhjZXB0aW9uIGV4dGVuZHMgX19CYXNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJJbnZhbGlkQ2xpZW50RXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBlcnJvcjtcbiAgICBlcnJvcl9kZXNjcmlwdGlvbjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiSW52YWxpZENsaWVudEV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBJbnZhbGlkQ2xpZW50RXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuZXJyb3IgPSBvcHRzLmVycm9yO1xuICAgICAgICB0aGlzLmVycm9yX2Rlc2NyaXB0aW9uID0gb3B0cy5lcnJvcl9kZXNjcmlwdGlvbjtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgSW52YWxpZEdyYW50RXhjZXB0aW9uIGV4dGVuZHMgX19CYXNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJJbnZhbGlkR3JhbnRFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGVycm9yO1xuICAgIGVycm9yX2Rlc2NyaXB0aW9uO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJJbnZhbGlkR3JhbnRFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgSW52YWxpZEdyYW50RXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuZXJyb3IgPSBvcHRzLmVycm9yO1xuICAgICAgICB0aGlzLmVycm9yX2Rlc2NyaXB0aW9uID0gb3B0cy5lcnJvcl9kZXNjcmlwdGlvbjtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgSW52YWxpZFJlcXVlc3RFeGNlcHRpb24gZXh0ZW5kcyBfX0Jhc2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIkludmFsaWRSZXF1ZXN0RXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBlcnJvcjtcbiAgICByZWFzb247XG4gICAgZXJyb3JfZGVzY3JpcHRpb247XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkludmFsaWRSZXF1ZXN0RXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEludmFsaWRSZXF1ZXN0RXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuZXJyb3IgPSBvcHRzLmVycm9yO1xuICAgICAgICB0aGlzLnJlYXNvbiA9IG9wdHMucmVhc29uO1xuICAgICAgICB0aGlzLmVycm9yX2Rlc2NyaXB0aW9uID0gb3B0cy5lcnJvcl9kZXNjcmlwdGlvbjtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgSW52YWxpZFNjb3BlRXhjZXB0aW9uIGV4dGVuZHMgX19CYXNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJJbnZhbGlkU2NvcGVFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGVycm9yO1xuICAgIGVycm9yX2Rlc2NyaXB0aW9uO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJJbnZhbGlkU2NvcGVFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgSW52YWxpZFNjb3BlRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuZXJyb3IgPSBvcHRzLmVycm9yO1xuICAgICAgICB0aGlzLmVycm9yX2Rlc2NyaXB0aW9uID0gb3B0cy5lcnJvcl9kZXNjcmlwdGlvbjtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgU2xvd0Rvd25FeGNlcHRpb24gZXh0ZW5kcyBfX0Jhc2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIlNsb3dEb3duRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBlcnJvcjtcbiAgICBlcnJvcl9kZXNjcmlwdGlvbjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiU2xvd0Rvd25FeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgU2xvd0Rvd25FeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5lcnJvciA9IG9wdHMuZXJyb3I7XG4gICAgICAgIHRoaXMuZXJyb3JfZGVzY3JpcHRpb24gPSBvcHRzLmVycm9yX2Rlc2NyaXB0aW9uO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBVbmF1dGhvcml6ZWRDbGllbnRFeGNlcHRpb24gZXh0ZW5kcyBfX0Jhc2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIlVuYXV0aG9yaXplZENsaWVudEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgZXJyb3I7XG4gICAgZXJyb3JfZGVzY3JpcHRpb247XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIlVuYXV0aG9yaXplZENsaWVudEV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBVbmF1dGhvcml6ZWRDbGllbnRFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5lcnJvciA9IG9wdHMuZXJyb3I7XG4gICAgICAgIHRoaXMuZXJyb3JfZGVzY3JpcHRpb24gPSBvcHRzLmVycm9yX2Rlc2NyaXB0aW9uO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBVbnN1cHBvcnRlZEdyYW50VHlwZUV4Y2VwdGlvbiBleHRlbmRzIF9fQmFzZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiVW5zdXBwb3J0ZWRHcmFudFR5cGVFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGVycm9yO1xuICAgIGVycm9yX2Rlc2NyaXB0aW9uO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJVbnN1cHBvcnRlZEdyYW50VHlwZUV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBVbnN1cHBvcnRlZEdyYW50VHlwZUV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLmVycm9yID0gb3B0cy5lcnJvcjtcbiAgICAgICAgdGhpcy5lcnJvcl9kZXNjcmlwdGlvbiA9IG9wdHMuZXJyb3JfZGVzY3JpcHRpb247XG4gICAgfVxufVxuIiwgImNvbnN0IF9BREUgPSBcIkFjY2Vzc0RlbmllZEV4Y2VwdGlvblwiO1xuY29uc3QgX0FQRSA9IFwiQXV0aG9yaXphdGlvblBlbmRpbmdFeGNlcHRpb25cIjtcbmNvbnN0IF9BVCA9IFwiQWNjZXNzVG9rZW5cIjtcbmNvbnN0IF9DUyA9IFwiQ2xpZW50U2VjcmV0XCI7XG5jb25zdCBfQ1QgPSBcIkNyZWF0ZVRva2VuXCI7XG5jb25zdCBfQ1RSID0gXCJDcmVhdGVUb2tlblJlcXVlc3RcIjtcbmNvbnN0IF9DVFJyID0gXCJDcmVhdGVUb2tlblJlc3BvbnNlXCI7XG5jb25zdCBfQ1YgPSBcIkNvZGVWZXJpZmllclwiO1xuY29uc3QgX0VURSA9IFwiRXhwaXJlZFRva2VuRXhjZXB0aW9uXCI7XG5jb25zdCBfSUNFID0gXCJJbnZhbGlkQ2xpZW50RXhjZXB0aW9uXCI7XG5jb25zdCBfSUdFID0gXCJJbnZhbGlkR3JhbnRFeGNlcHRpb25cIjtcbmNvbnN0IF9JUkUgPSBcIkludmFsaWRSZXF1ZXN0RXhjZXB0aW9uXCI7XG5jb25zdCBfSVNFID0gXCJJbnRlcm5hbFNlcnZlckV4Y2VwdGlvblwiO1xuY29uc3QgX0lTRW4gPSBcIkludmFsaWRTY29wZUV4Y2VwdGlvblwiO1xuY29uc3QgX0lUID0gXCJJZFRva2VuXCI7XG5jb25zdCBfUlQgPSBcIlJlZnJlc2hUb2tlblwiO1xuY29uc3QgX1NERSA9IFwiU2xvd0Rvd25FeGNlcHRpb25cIjtcbmNvbnN0IF9VQ0UgPSBcIlVuYXV0aG9yaXplZENsaWVudEV4Y2VwdGlvblwiO1xuY29uc3QgX1VHVEUgPSBcIlVuc3VwcG9ydGVkR3JhbnRUeXBlRXhjZXB0aW9uXCI7XG5jb25zdCBfYVQgPSBcImFjY2Vzc1Rva2VuXCI7XG5jb25zdCBfYyA9IFwiY2xpZW50XCI7XG5jb25zdCBfY0kgPSBcImNsaWVudElkXCI7XG5jb25zdCBfY1MgPSBcImNsaWVudFNlY3JldFwiO1xuY29uc3QgX2NWID0gXCJjb2RlVmVyaWZpZXJcIjtcbmNvbnN0IF9jbyA9IFwiY29kZVwiO1xuY29uc3QgX2RDID0gXCJkZXZpY2VDb2RlXCI7XG5jb25zdCBfZSA9IFwiZXJyb3JcIjtcbmNvbnN0IF9lSSA9IFwiZXhwaXJlc0luXCI7XG5jb25zdCBfZWQgPSBcImVycm9yX2Rlc2NyaXB0aW9uXCI7XG5jb25zdCBfZ1QgPSBcImdyYW50VHlwZVwiO1xuY29uc3QgX2ggPSBcImh0dHBcIjtcbmNvbnN0IF9oRSA9IFwiaHR0cEVycm9yXCI7XG5jb25zdCBfaVQgPSBcImlkVG9rZW5cIjtcbmNvbnN0IF9yID0gXCJyZWFzb25cIjtcbmNvbnN0IF9yVCA9IFwicmVmcmVzaFRva2VuXCI7XG5jb25zdCBfclUgPSBcInJlZGlyZWN0VXJpXCI7XG5jb25zdCBfcyA9IFwic21pdGh5LnRzLnNkay5zeW50aGV0aWMuY29tLmFtYXpvbmF3cy5zc29vaWRjXCI7XG5jb25zdCBfc2MgPSBcInNjb3BlXCI7XG5jb25zdCBfc2UgPSBcInNlcnZlclwiO1xuY29uc3QgX3RUID0gXCJ0b2tlblR5cGVcIjtcbmNvbnN0IG4wID0gXCJjb20uYW1hem9uYXdzLnNzb29pZGNcIjtcbmltcG9ydCB7IFR5cGVSZWdpc3RyeSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2NoZW1hXCI7XG5pbXBvcnQgeyBBY2Nlc3NEZW5pZWRFeGNlcHRpb24sIEF1dGhvcml6YXRpb25QZW5kaW5nRXhjZXB0aW9uLCBFeHBpcmVkVG9rZW5FeGNlcHRpb24sIEludGVybmFsU2VydmVyRXhjZXB0aW9uLCBJbnZhbGlkQ2xpZW50RXhjZXB0aW9uLCBJbnZhbGlkR3JhbnRFeGNlcHRpb24sIEludmFsaWRSZXF1ZXN0RXhjZXB0aW9uLCBJbnZhbGlkU2NvcGVFeGNlcHRpb24sIFNsb3dEb3duRXhjZXB0aW9uLCBVbmF1dGhvcml6ZWRDbGllbnRFeGNlcHRpb24sIFVuc3VwcG9ydGVkR3JhbnRUeXBlRXhjZXB0aW9uLCB9IGZyb20gXCIuLi9tb2RlbHMvZXJyb3JzXCI7XG5pbXBvcnQgeyBTU09PSURDU2VydmljZUV4Y2VwdGlvbiB9IGZyb20gXCIuLi9tb2RlbHMvU1NPT0lEQ1NlcnZpY2VFeGNlcHRpb25cIjtcbmNvbnN0IF9zX3JlZ2lzdHJ5ID0gVHlwZVJlZ2lzdHJ5LmZvcihfcyk7XG5leHBvcnQgdmFyIFNTT09JRENTZXJ2aWNlRXhjZXB0aW9uJCA9IFstMywgX3MsIFwiU1NPT0lEQ1NlcnZpY2VFeGNlcHRpb25cIiwgMCwgW10sIFtdXTtcbl9zX3JlZ2lzdHJ5LnJlZ2lzdGVyRXJyb3IoU1NPT0lEQ1NlcnZpY2VFeGNlcHRpb24kLCBTU09PSURDU2VydmljZUV4Y2VwdGlvbik7XG5jb25zdCBuMF9yZWdpc3RyeSA9IFR5cGVSZWdpc3RyeS5mb3IobjApO1xuZXhwb3J0IHZhciBBY2Nlc3NEZW5pZWRFeGNlcHRpb24kID0gW1xuICAgIC0zLFxuICAgIG4wLFxuICAgIF9BREUsXG4gICAgeyBbX2VdOiBfYywgW19oRV06IDQwMCB9LFxuICAgIFtfZSwgX3IsIF9lZF0sXG4gICAgWzAsIDAsIDBdLFxuXTtcbm4wX3JlZ2lzdHJ5LnJlZ2lzdGVyRXJyb3IoQWNjZXNzRGVuaWVkRXhjZXB0aW9uJCwgQWNjZXNzRGVuaWVkRXhjZXB0aW9uKTtcbmV4cG9ydCB2YXIgQXV0aG9yaXphdGlvblBlbmRpbmdFeGNlcHRpb24kID0gW1xuICAgIC0zLFxuICAgIG4wLFxuICAgIF9BUEUsXG4gICAgeyBbX2VdOiBfYywgW19oRV06IDQwMCB9LFxuICAgIFtfZSwgX2VkXSxcbiAgICBbMCwgMF0sXG5dO1xubjBfcmVnaXN0cnkucmVnaXN0ZXJFcnJvcihBdXRob3JpemF0aW9uUGVuZGluZ0V4Y2VwdGlvbiQsIEF1dGhvcml6YXRpb25QZW5kaW5nRXhjZXB0aW9uKTtcbmV4cG9ydCB2YXIgRXhwaXJlZFRva2VuRXhjZXB0aW9uJCA9IFstMywgbjAsIF9FVEUsIHsgW19lXTogX2MsIFtfaEVdOiA0MDAgfSwgW19lLCBfZWRdLCBbMCwgMF1dO1xubjBfcmVnaXN0cnkucmVnaXN0ZXJFcnJvcihFeHBpcmVkVG9rZW5FeGNlcHRpb24kLCBFeHBpcmVkVG9rZW5FeGNlcHRpb24pO1xuZXhwb3J0IHZhciBJbnRlcm5hbFNlcnZlckV4Y2VwdGlvbiQgPSBbLTMsIG4wLCBfSVNFLCB7IFtfZV06IF9zZSwgW19oRV06IDUwMCB9LCBbX2UsIF9lZF0sIFswLCAwXV07XG5uMF9yZWdpc3RyeS5yZWdpc3RlckVycm9yKEludGVybmFsU2VydmVyRXhjZXB0aW9uJCwgSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb24pO1xuZXhwb3J0IHZhciBJbnZhbGlkQ2xpZW50RXhjZXB0aW9uJCA9IFstMywgbjAsIF9JQ0UsIHsgW19lXTogX2MsIFtfaEVdOiA0MDEgfSwgW19lLCBfZWRdLCBbMCwgMF1dO1xubjBfcmVnaXN0cnkucmVnaXN0ZXJFcnJvcihJbnZhbGlkQ2xpZW50RXhjZXB0aW9uJCwgSW52YWxpZENsaWVudEV4Y2VwdGlvbik7XG5leHBvcnQgdmFyIEludmFsaWRHcmFudEV4Y2VwdGlvbiQgPSBbLTMsIG4wLCBfSUdFLCB7IFtfZV06IF9jLCBbX2hFXTogNDAwIH0sIFtfZSwgX2VkXSwgWzAsIDBdXTtcbm4wX3JlZ2lzdHJ5LnJlZ2lzdGVyRXJyb3IoSW52YWxpZEdyYW50RXhjZXB0aW9uJCwgSW52YWxpZEdyYW50RXhjZXB0aW9uKTtcbmV4cG9ydCB2YXIgSW52YWxpZFJlcXVlc3RFeGNlcHRpb24kID0gW1xuICAgIC0zLFxuICAgIG4wLFxuICAgIF9JUkUsXG4gICAgeyBbX2VdOiBfYywgW19oRV06IDQwMCB9LFxuICAgIFtfZSwgX3IsIF9lZF0sXG4gICAgWzAsIDAsIDBdLFxuXTtcbm4wX3JlZ2lzdHJ5LnJlZ2lzdGVyRXJyb3IoSW52YWxpZFJlcXVlc3RFeGNlcHRpb24kLCBJbnZhbGlkUmVxdWVzdEV4Y2VwdGlvbik7XG5leHBvcnQgdmFyIEludmFsaWRTY29wZUV4Y2VwdGlvbiQgPSBbLTMsIG4wLCBfSVNFbiwgeyBbX2VdOiBfYywgW19oRV06IDQwMCB9LCBbX2UsIF9lZF0sIFswLCAwXV07XG5uMF9yZWdpc3RyeS5yZWdpc3RlckVycm9yKEludmFsaWRTY29wZUV4Y2VwdGlvbiQsIEludmFsaWRTY29wZUV4Y2VwdGlvbik7XG5leHBvcnQgdmFyIFNsb3dEb3duRXhjZXB0aW9uJCA9IFstMywgbjAsIF9TREUsIHsgW19lXTogX2MsIFtfaEVdOiA0MDAgfSwgW19lLCBfZWRdLCBbMCwgMF1dO1xubjBfcmVnaXN0cnkucmVnaXN0ZXJFcnJvcihTbG93RG93bkV4Y2VwdGlvbiQsIFNsb3dEb3duRXhjZXB0aW9uKTtcbmV4cG9ydCB2YXIgVW5hdXRob3JpemVkQ2xpZW50RXhjZXB0aW9uJCA9IFtcbiAgICAtMyxcbiAgICBuMCxcbiAgICBfVUNFLFxuICAgIHsgW19lXTogX2MsIFtfaEVdOiA0MDAgfSxcbiAgICBbX2UsIF9lZF0sXG4gICAgWzAsIDBdLFxuXTtcbm4wX3JlZ2lzdHJ5LnJlZ2lzdGVyRXJyb3IoVW5hdXRob3JpemVkQ2xpZW50RXhjZXB0aW9uJCwgVW5hdXRob3JpemVkQ2xpZW50RXhjZXB0aW9uKTtcbmV4cG9ydCB2YXIgVW5zdXBwb3J0ZWRHcmFudFR5cGVFeGNlcHRpb24kID0gW1xuICAgIC0zLFxuICAgIG4wLFxuICAgIF9VR1RFLFxuICAgIHsgW19lXTogX2MsIFtfaEVdOiA0MDAgfSxcbiAgICBbX2UsIF9lZF0sXG4gICAgWzAsIDBdLFxuXTtcbm4wX3JlZ2lzdHJ5LnJlZ2lzdGVyRXJyb3IoVW5zdXBwb3J0ZWRHcmFudFR5cGVFeGNlcHRpb24kLCBVbnN1cHBvcnRlZEdyYW50VHlwZUV4Y2VwdGlvbik7XG5leHBvcnQgY29uc3QgZXJyb3JUeXBlUmVnaXN0cmllcyA9IFtfc19yZWdpc3RyeSwgbjBfcmVnaXN0cnldO1xudmFyIEFjY2Vzc1Rva2VuID0gWzAsIG4wLCBfQVQsIDgsIDBdO1xudmFyIENsaWVudFNlY3JldCA9IFswLCBuMCwgX0NTLCA4LCAwXTtcbnZhciBDb2RlVmVyaWZpZXIgPSBbMCwgbjAsIF9DViwgOCwgMF07XG52YXIgSWRUb2tlbiA9IFswLCBuMCwgX0lULCA4LCAwXTtcbnZhciBSZWZyZXNoVG9rZW4gPSBbMCwgbjAsIF9SVCwgOCwgMF07XG5leHBvcnQgdmFyIENyZWF0ZVRva2VuUmVxdWVzdCQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfQ1RSLFxuICAgIDAsXG4gICAgW19jSSwgX2NTLCBfZ1QsIF9kQywgX2NvLCBfclQsIF9zYywgX3JVLCBfY1ZdLFxuICAgIFswLCBbKCkgPT4gQ2xpZW50U2VjcmV0LCAwXSwgMCwgMCwgMCwgWygpID0+IFJlZnJlc2hUb2tlbiwgMF0sIDY0IHwgMCwgMCwgWygpID0+IENvZGVWZXJpZmllciwgMF1dLFxuICAgIDMsXG5dO1xuZXhwb3J0IHZhciBDcmVhdGVUb2tlblJlc3BvbnNlJCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9DVFJyLFxuICAgIDAsXG4gICAgW19hVCwgX3RULCBfZUksIF9yVCwgX2lUXSxcbiAgICBbWygpID0+IEFjY2Vzc1Rva2VuLCAwXSwgMCwgMSwgWygpID0+IFJlZnJlc2hUb2tlbiwgMF0sIFsoKSA9PiBJZFRva2VuLCAwXV0sXG5dO1xudmFyIFNjb3BlcyA9IDY0IHwgMDtcbmV4cG9ydCB2YXIgQ3JlYXRlVG9rZW4kID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0NULFxuICAgIHsgW19oXTogW1wiUE9TVFwiLCBcIi90b2tlblwiLCAyMDBdIH0sXG4gICAgKCkgPT4gQ3JlYXRlVG9rZW5SZXF1ZXN0JCxcbiAgICAoKSA9PiBDcmVhdGVUb2tlblJlc3BvbnNlJCxcbl07XG4iLCAiaW1wb3J0IHsgQXdzU2RrU2lnVjRTaWduZXIgfSBmcm9tIFwiQGF3cy1zZGsvY29yZVwiO1xuaW1wb3J0IHsgQXdzUmVzdEpzb25Qcm90b2NvbCB9IGZyb20gXCJAYXdzLXNkay9jb3JlL3Byb3RvY29sc1wiO1xuaW1wb3J0IHsgTm9BdXRoU2lnbmVyIH0gZnJvbSBcIkBzbWl0aHkvY29yZVwiO1xuaW1wb3J0IHsgTm9PcExvZ2dlciB9IGZyb20gXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjtcbmltcG9ydCB7IHBhcnNlVXJsIH0gZnJvbSBcIkBzbWl0aHkvdXJsLXBhcnNlclwiO1xuaW1wb3J0IHsgZnJvbUJhc2U2NCwgdG9CYXNlNjQgfSBmcm9tIFwiQHNtaXRoeS91dGlsLWJhc2U2NFwiO1xuaW1wb3J0IHsgZnJvbVV0ZjgsIHRvVXRmOCB9IGZyb20gXCJAc21pdGh5L3V0aWwtdXRmOFwiO1xuaW1wb3J0IHsgZGVmYXVsdFNTT09JRENIdHRwQXV0aFNjaGVtZVByb3ZpZGVyIH0gZnJvbSBcIi4vYXV0aC9odHRwQXV0aFNjaGVtZVByb3ZpZGVyXCI7XG5pbXBvcnQgeyBkZWZhdWx0RW5kcG9pbnRSZXNvbHZlciB9IGZyb20gXCIuL2VuZHBvaW50L2VuZHBvaW50UmVzb2x2ZXJcIjtcbmltcG9ydCB7IGVycm9yVHlwZVJlZ2lzdHJpZXMgfSBmcm9tIFwiLi9zY2hlbWFzL3NjaGVtYXNfMFwiO1xuZXhwb3J0IGNvbnN0IGdldFJ1bnRpbWVDb25maWcgPSAoY29uZmlnKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgYXBpVmVyc2lvbjogXCIyMDE5LTA2LTEwXCIsXG4gICAgICAgIGJhc2U2NERlY29kZXI6IGNvbmZpZz8uYmFzZTY0RGVjb2RlciA/PyBmcm9tQmFzZTY0LFxuICAgICAgICBiYXNlNjRFbmNvZGVyOiBjb25maWc/LmJhc2U2NEVuY29kZXIgPz8gdG9CYXNlNjQsXG4gICAgICAgIGRpc2FibGVIb3N0UHJlZml4OiBjb25maWc/LmRpc2FibGVIb3N0UHJlZml4ID8/IGZhbHNlLFxuICAgICAgICBlbmRwb2ludFByb3ZpZGVyOiBjb25maWc/LmVuZHBvaW50UHJvdmlkZXIgPz8gZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIsXG4gICAgICAgIGV4dGVuc2lvbnM6IGNvbmZpZz8uZXh0ZW5zaW9ucyA/PyBbXSxcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVQcm92aWRlcjogY29uZmlnPy5odHRwQXV0aFNjaGVtZVByb3ZpZGVyID8/IGRlZmF1bHRTU09PSURDSHR0cEF1dGhTY2hlbWVQcm92aWRlcixcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVzOiBjb25maWc/Lmh0dHBBdXRoU2NoZW1lcyA/PyBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgc2NoZW1lSWQ6IFwiYXdzLmF1dGgjc2lndjRcIixcbiAgICAgICAgICAgICAgICBpZGVudGl0eVByb3ZpZGVyOiAoaXBjKSA9PiBpcGMuZ2V0SWRlbnRpdHlQcm92aWRlcihcImF3cy5hdXRoI3NpZ3Y0XCIpLFxuICAgICAgICAgICAgICAgIHNpZ25lcjogbmV3IEF3c1Nka1NpZ1Y0U2lnbmVyKCksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHNjaGVtZUlkOiBcInNtaXRoeS5hcGkjbm9BdXRoXCIsXG4gICAgICAgICAgICAgICAgaWRlbnRpdHlQcm92aWRlcjogKGlwYykgPT4gaXBjLmdldElkZW50aXR5UHJvdmlkZXIoXCJzbWl0aHkuYXBpI25vQXV0aFwiKSB8fCAoYXN5bmMgKCkgPT4gKHt9KSksXG4gICAgICAgICAgICAgICAgc2lnbmVyOiBuZXcgTm9BdXRoU2lnbmVyKCksXG4gICAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBsb2dnZXI6IGNvbmZpZz8ubG9nZ2VyID8/IG5ldyBOb09wTG9nZ2VyKCksXG4gICAgICAgIHByb3RvY29sOiBjb25maWc/LnByb3RvY29sID8/IEF3c1Jlc3RKc29uUHJvdG9jb2wsXG4gICAgICAgIHByb3RvY29sU2V0dGluZ3M6IGNvbmZpZz8ucHJvdG9jb2xTZXR0aW5ncyA/PyB7XG4gICAgICAgICAgICBkZWZhdWx0TmFtZXNwYWNlOiBcImNvbS5hbWF6b25hd3Muc3Nvb2lkY1wiLFxuICAgICAgICAgICAgZXJyb3JUeXBlUmVnaXN0cmllcyxcbiAgICAgICAgICAgIHZlcnNpb246IFwiMjAxOS0wNi0xMFwiLFxuICAgICAgICAgICAgc2VydmljZVRhcmdldDogXCJBV1NTU09PSURDU2VydmljZVwiLFxuICAgICAgICB9LFxuICAgICAgICBzZXJ2aWNlSWQ6IGNvbmZpZz8uc2VydmljZUlkID8/IFwiU1NPIE9JRENcIixcbiAgICAgICAgdXJsUGFyc2VyOiBjb25maWc/LnVybFBhcnNlciA/PyBwYXJzZVVybCxcbiAgICAgICAgdXRmOERlY29kZXI6IGNvbmZpZz8udXRmOERlY29kZXIgPz8gZnJvbVV0ZjgsXG4gICAgICAgIHV0ZjhFbmNvZGVyOiBjb25maWc/LnV0ZjhFbmNvZGVyID8/IHRvVXRmOCxcbiAgICB9O1xufTtcbiIsICJpbXBvcnQgcGFja2FnZUluZm8gZnJvbSBcIi4uLy4uLy4uL3BhY2thZ2UuanNvblwiO1xuaW1wb3J0IHsgZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbiBhcyBhd3NDaGVja1ZlcnNpb24sIE5PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9PUFRJT05TIH0gZnJvbSBcIkBhd3Mtc2RrL2NvcmVcIjtcbmltcG9ydCB7IGNyZWF0ZURlZmF1bHRVc2VyQWdlbnRQcm92aWRlciwgTk9ERV9BUFBfSURfQ09ORklHX09QVElPTlMgfSBmcm9tIFwiQGF3cy1zZGsvdXRpbC11c2VyLWFnZW50LW5vZGVcIjtcbmltcG9ydCB7IE5PREVfUkVHSU9OX0NPTkZJR19GSUxFX09QVElPTlMsIE5PREVfUkVHSU9OX0NPTkZJR19PUFRJT05TLCBOT0RFX1VTRV9EVUFMU1RBQ0tfRU5EUE9JTlRfQ09ORklHX09QVElPTlMsIE5PREVfVVNFX0ZJUFNfRU5EUE9JTlRfQ09ORklHX09QVElPTlMsIH0gZnJvbSBcIkBzbWl0aHkvY29uZmlnLXJlc29sdmVyXCI7XG5pbXBvcnQgeyBIYXNoIH0gZnJvbSBcIkBzbWl0aHkvaGFzaC1ub2RlXCI7XG5pbXBvcnQgeyBOT0RFX01BWF9BVFRFTVBUX0NPTkZJR19PUFRJT05TLCBOT0RFX1JFVFJZX01PREVfQ09ORklHX09QVElPTlMgfSBmcm9tIFwiQHNtaXRoeS9taWRkbGV3YXJlLXJldHJ5XCI7XG5pbXBvcnQgeyBsb2FkQ29uZmlnIGFzIGxvYWROb2RlQ29uZmlnIH0gZnJvbSBcIkBzbWl0aHkvbm9kZS1jb25maWctcHJvdmlkZXJcIjtcbmltcG9ydCB7IE5vZGVIdHRwSGFuZGxlciBhcyBSZXF1ZXN0SGFuZGxlciwgc3RyZWFtQ29sbGVjdG9yIH0gZnJvbSBcIkBzbWl0aHkvbm9kZS1odHRwLWhhbmRsZXJcIjtcbmltcG9ydCB7IGVtaXRXYXJuaW5nSWZVbnN1cHBvcnRlZFZlcnNpb24sIGxvYWRDb25maWdzRm9yRGVmYXVsdE1vZGUgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyBjYWxjdWxhdGVCb2R5TGVuZ3RoIH0gZnJvbSBcIkBzbWl0aHkvdXRpbC1ib2R5LWxlbmd0aC1ub2RlXCI7XG5pbXBvcnQgeyByZXNvbHZlRGVmYXVsdHNNb2RlQ29uZmlnIH0gZnJvbSBcIkBzbWl0aHkvdXRpbC1kZWZhdWx0cy1tb2RlLW5vZGVcIjtcbmltcG9ydCB7IERFRkFVTFRfUkVUUllfTU9ERSB9IGZyb20gXCJAc21pdGh5L3V0aWwtcmV0cnlcIjtcbmltcG9ydCB7IGdldFJ1bnRpbWVDb25maWcgYXMgZ2V0U2hhcmVkUnVudGltZUNvbmZpZyB9IGZyb20gXCIuL3J1bnRpbWVDb25maWcuc2hhcmVkXCI7XG5leHBvcnQgY29uc3QgZ2V0UnVudGltZUNvbmZpZyA9IChjb25maWcpID0+IHtcbiAgICBlbWl0V2FybmluZ0lmVW5zdXBwb3J0ZWRWZXJzaW9uKHByb2Nlc3MudmVyc2lvbik7XG4gICAgY29uc3QgZGVmYXVsdHNNb2RlID0gcmVzb2x2ZURlZmF1bHRzTW9kZUNvbmZpZyhjb25maWcpO1xuICAgIGNvbnN0IGRlZmF1bHRDb25maWdQcm92aWRlciA9ICgpID0+IGRlZmF1bHRzTW9kZSgpLnRoZW4obG9hZENvbmZpZ3NGb3JEZWZhdWx0TW9kZSk7XG4gICAgY29uc3QgY2xpZW50U2hhcmVkVmFsdWVzID0gZ2V0U2hhcmVkUnVudGltZUNvbmZpZyhjb25maWcpO1xuICAgIGF3c0NoZWNrVmVyc2lvbihwcm9jZXNzLnZlcnNpb24pO1xuICAgIGNvbnN0IGxvYWRlckNvbmZpZyA9IHtcbiAgICAgICAgcHJvZmlsZTogY29uZmlnPy5wcm9maWxlLFxuICAgICAgICBsb2dnZXI6IGNsaWVudFNoYXJlZFZhbHVlcy5sb2dnZXIsXG4gICAgfTtcbiAgICByZXR1cm4ge1xuICAgICAgICAuLi5jbGllbnRTaGFyZWRWYWx1ZXMsXG4gICAgICAgIC4uLmNvbmZpZyxcbiAgICAgICAgcnVudGltZTogXCJub2RlXCIsXG4gICAgICAgIGRlZmF1bHRzTW9kZSxcbiAgICAgICAgYXV0aFNjaGVtZVByZWZlcmVuY2U6IGNvbmZpZz8uYXV0aFNjaGVtZVByZWZlcmVuY2UgPz8gbG9hZE5vZGVDb25maWcoTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX09QVElPTlMsIGxvYWRlckNvbmZpZyksXG4gICAgICAgIGJvZHlMZW5ndGhDaGVja2VyOiBjb25maWc/LmJvZHlMZW5ndGhDaGVja2VyID8/IGNhbGN1bGF0ZUJvZHlMZW5ndGgsXG4gICAgICAgIGRlZmF1bHRVc2VyQWdlbnRQcm92aWRlcjogY29uZmlnPy5kZWZhdWx0VXNlckFnZW50UHJvdmlkZXIgPz9cbiAgICAgICAgICAgIGNyZWF0ZURlZmF1bHRVc2VyQWdlbnRQcm92aWRlcih7IHNlcnZpY2VJZDogY2xpZW50U2hhcmVkVmFsdWVzLnNlcnZpY2VJZCwgY2xpZW50VmVyc2lvbjogcGFja2FnZUluZm8udmVyc2lvbiB9KSxcbiAgICAgICAgbWF4QXR0ZW1wdHM6IGNvbmZpZz8ubWF4QXR0ZW1wdHMgPz8gbG9hZE5vZGVDb25maWcoTk9ERV9NQVhfQVRURU1QVF9DT05GSUdfT1BUSU9OUywgY29uZmlnKSxcbiAgICAgICAgcmVnaW9uOiBjb25maWc/LnJlZ2lvbiA/P1xuICAgICAgICAgICAgbG9hZE5vZGVDb25maWcoTk9ERV9SRUdJT05fQ09ORklHX09QVElPTlMsIHsgLi4uTk9ERV9SRUdJT05fQ09ORklHX0ZJTEVfT1BUSU9OUywgLi4ubG9hZGVyQ29uZmlnIH0pLFxuICAgICAgICByZXF1ZXN0SGFuZGxlcjogUmVxdWVzdEhhbmRsZXIuY3JlYXRlKGNvbmZpZz8ucmVxdWVzdEhhbmRsZXIgPz8gZGVmYXVsdENvbmZpZ1Byb3ZpZGVyKSxcbiAgICAgICAgcmV0cnlNb2RlOiBjb25maWc/LnJldHJ5TW9kZSA/P1xuICAgICAgICAgICAgbG9hZE5vZGVDb25maWcoe1xuICAgICAgICAgICAgICAgIC4uLk5PREVfUkVUUllfTU9ERV9DT05GSUdfT1BUSU9OUyxcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiBhc3luYyAoKSA9PiAoYXdhaXQgZGVmYXVsdENvbmZpZ1Byb3ZpZGVyKCkpLnJldHJ5TW9kZSB8fCBERUZBVUxUX1JFVFJZX01PREUsXG4gICAgICAgICAgICB9LCBjb25maWcpLFxuICAgICAgICBzaGEyNTY6IGNvbmZpZz8uc2hhMjU2ID8/IEhhc2guYmluZChudWxsLCBcInNoYTI1NlwiKSxcbiAgICAgICAgc3RyZWFtQ29sbGVjdG9yOiBjb25maWc/LnN0cmVhbUNvbGxlY3RvciA/PyBzdHJlYW1Db2xsZWN0b3IsXG4gICAgICAgIHVzZUR1YWxzdGFja0VuZHBvaW50OiBjb25maWc/LnVzZUR1YWxzdGFja0VuZHBvaW50ID8/IGxvYWROb2RlQ29uZmlnKE5PREVfVVNFX0RVQUxTVEFDS19FTkRQT0lOVF9DT05GSUdfT1BUSU9OUywgbG9hZGVyQ29uZmlnKSxcbiAgICAgICAgdXNlRmlwc0VuZHBvaW50OiBjb25maWc/LnVzZUZpcHNFbmRwb2ludCA/PyBsb2FkTm9kZUNvbmZpZyhOT0RFX1VTRV9GSVBTX0VORFBPSU5UX0NPTkZJR19PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgICAgICB1c2VyQWdlbnRBcHBJZDogY29uZmlnPy51c2VyQWdlbnRBcHBJZCA/PyBsb2FkTm9kZUNvbmZpZyhOT0RFX0FQUF9JRF9DT05GSUdfT1BUSU9OUywgbG9hZGVyQ29uZmlnKSxcbiAgICB9O1xufTtcbiIsICJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMud2FybmluZyA9IHZvaWQgMDtcbmV4cG9ydHMuc3RzUmVnaW9uRGVmYXVsdFJlc29sdmVyID0gc3RzUmVnaW9uRGVmYXVsdFJlc29sdmVyO1xuY29uc3QgY29uZmlnX3Jlc29sdmVyXzEgPSByZXF1aXJlKFwiQHNtaXRoeS9jb25maWctcmVzb2x2ZXJcIik7XG5jb25zdCBub2RlX2NvbmZpZ19wcm92aWRlcl8xID0gcmVxdWlyZShcIkBzbWl0aHkvbm9kZS1jb25maWctcHJvdmlkZXJcIik7XG5mdW5jdGlvbiBzdHNSZWdpb25EZWZhdWx0UmVzb2x2ZXIobG9hZGVyQ29uZmlnID0ge30pIHtcbiAgICByZXR1cm4gKDAsIG5vZGVfY29uZmlnX3Byb3ZpZGVyXzEubG9hZENvbmZpZykoe1xuICAgICAgICAuLi5jb25maWdfcmVzb2x2ZXJfMS5OT0RFX1JFR0lPTl9DT05GSUdfT1BUSU9OUyxcbiAgICAgICAgYXN5bmMgZGVmYXVsdCgpIHtcbiAgICAgICAgICAgIGlmICghZXhwb3J0cy53YXJuaW5nLnNpbGVuY2UpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oXCJAYXdzLXNkayAtIFdBUk4gLSBkZWZhdWx0IFNUUyByZWdpb24gb2YgdXMtZWFzdC0xIHVzZWQuIFNlZSBAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVycyBSRUFETUUgYW5kIHNldCBhIHJlZ2lvbiBleHBsaWNpdGx5LlwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBcInVzLWVhc3QtMVwiO1xuICAgICAgICB9LFxuICAgIH0sIHsgLi4uY29uZmlnX3Jlc29sdmVyXzEuTk9ERV9SRUdJT05fQ09ORklHX0ZJTEVfT1BUSU9OUywgLi4ubG9hZGVyQ29uZmlnIH0pO1xufVxuZXhwb3J0cy53YXJuaW5nID0ge1xuICAgIHNpbGVuY2U6IGZhbHNlLFxufTtcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBzdHNSZWdpb25EZWZhdWx0UmVzb2x2ZXIgPSByZXF1aXJlKCcuL3JlZ2lvbkNvbmZpZy9zdHNSZWdpb25EZWZhdWx0UmVzb2x2ZXInKTtcbnZhciBjb25maWdSZXNvbHZlciA9IHJlcXVpcmUoJ0BzbWl0aHkvY29uZmlnLXJlc29sdmVyJyk7XG5cbmNvbnN0IGdldEF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24gPSAocnVudGltZUNvbmZpZykgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIHNldFJlZ2lvbihyZWdpb24pIHtcbiAgICAgICAgICAgIHJ1bnRpbWVDb25maWcucmVnaW9uID0gcmVnaW9uO1xuICAgICAgICB9LFxuICAgICAgICByZWdpb24oKSB7XG4gICAgICAgICAgICByZXR1cm4gcnVudGltZUNvbmZpZy5yZWdpb247XG4gICAgICAgIH0sXG4gICAgfTtcbn07XG5jb25zdCByZXNvbHZlQXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiA9IChhd3NSZWdpb25FeHRlbnNpb25Db25maWd1cmF0aW9uKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcmVnaW9uOiBhd3NSZWdpb25FeHRlbnNpb25Db25maWd1cmF0aW9uLnJlZ2lvbigpLFxuICAgIH07XG59O1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJOT0RFX1JFR0lPTl9DT05GSUdfRklMRV9PUFRJT05TXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gY29uZmlnUmVzb2x2ZXIuTk9ERV9SRUdJT05fQ09ORklHX0ZJTEVfT1BUSU9OUzsgfVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJOT0RFX1JFR0lPTl9DT05GSUdfT1BUSU9OU1wiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGNvbmZpZ1Jlc29sdmVyLk5PREVfUkVHSU9OX0NPTkZJR19PUFRJT05TOyB9XG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIlJFR0lPTl9FTlZfTkFNRVwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGNvbmZpZ1Jlc29sdmVyLlJFR0lPTl9FTlZfTkFNRTsgfVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJSRUdJT05fSU5JX05BTUVcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBjb25maWdSZXNvbHZlci5SRUdJT05fSU5JX05BTUU7IH1cbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwicmVzb2x2ZVJlZ2lvbkNvbmZpZ1wiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGNvbmZpZ1Jlc29sdmVyLnJlc29sdmVSZWdpb25Db25maWc7IH1cbn0pO1xuZXhwb3J0cy5nZXRBd3NSZWdpb25FeHRlbnNpb25Db25maWd1cmF0aW9uID0gZ2V0QXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbjtcbmV4cG9ydHMucmVzb2x2ZUF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24gPSByZXNvbHZlQXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbjtcbk9iamVjdC5rZXlzKHN0c1JlZ2lvbkRlZmF1bHRSZXNvbHZlcikuZm9yRWFjaChmdW5jdGlvbiAoaykge1xuICAgIGlmIChrICE9PSAnZGVmYXVsdCcgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChleHBvcnRzLCBrKSkgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIGssIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBzdHNSZWdpb25EZWZhdWx0UmVzb2x2ZXJba107IH1cbiAgICB9KTtcbn0pO1xuIiwgImV4cG9ydCBjb25zdCBnZXRIdHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24gPSAocnVudGltZUNvbmZpZykgPT4ge1xuICAgIGNvbnN0IF9odHRwQXV0aFNjaGVtZXMgPSBydW50aW1lQ29uZmlnLmh0dHBBdXRoU2NoZW1lcztcbiAgICBsZXQgX2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSBydW50aW1lQ29uZmlnLmh0dHBBdXRoU2NoZW1lUHJvdmlkZXI7XG4gICAgbGV0IF9jcmVkZW50aWFscyA9IHJ1bnRpbWVDb25maWcuY3JlZGVudGlhbHM7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc2V0SHR0cEF1dGhTY2hlbWUoaHR0cEF1dGhTY2hlbWUpIHtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gX2h0dHBBdXRoU2NoZW1lcy5maW5kSW5kZXgoKHNjaGVtZSkgPT4gc2NoZW1lLnNjaGVtZUlkID09PSBodHRwQXV0aFNjaGVtZS5zY2hlbWVJZCk7XG4gICAgICAgICAgICBpZiAoaW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgX2h0dHBBdXRoU2NoZW1lcy5wdXNoKGh0dHBBdXRoU2NoZW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIF9odHRwQXV0aFNjaGVtZXMuc3BsaWNlKGluZGV4LCAxLCBodHRwQXV0aFNjaGVtZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGh0dHBBdXRoU2NoZW1lcygpIHtcbiAgICAgICAgICAgIHJldHVybiBfaHR0cEF1dGhTY2hlbWVzO1xuICAgICAgICB9LFxuICAgICAgICBzZXRIdHRwQXV0aFNjaGVtZVByb3ZpZGVyKGh0dHBBdXRoU2NoZW1lUHJvdmlkZXIpIHtcbiAgICAgICAgICAgIF9odHRwQXV0aFNjaGVtZVByb3ZpZGVyID0gaHR0cEF1dGhTY2hlbWVQcm92aWRlcjtcbiAgICAgICAgfSxcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVQcm92aWRlcigpIHtcbiAgICAgICAgICAgIHJldHVybiBfaHR0cEF1dGhTY2hlbWVQcm92aWRlcjtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0Q3JlZGVudGlhbHMoY3JlZGVudGlhbHMpIHtcbiAgICAgICAgICAgIF9jcmVkZW50aWFscyA9IGNyZWRlbnRpYWxzO1xuICAgICAgICB9LFxuICAgICAgICBjcmVkZW50aWFscygpIHtcbiAgICAgICAgICAgIHJldHVybiBfY3JlZGVudGlhbHM7XG4gICAgICAgIH0sXG4gICAgfTtcbn07XG5leHBvcnQgY29uc3QgcmVzb2x2ZUh0dHBBdXRoUnVudGltZUNvbmZpZyA9IChjb25maWcpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgICBodHRwQXV0aFNjaGVtZXM6IGNvbmZpZy5odHRwQXV0aFNjaGVtZXMoKSxcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVQcm92aWRlcjogY29uZmlnLmh0dHBBdXRoU2NoZW1lUHJvdmlkZXIoKSxcbiAgICAgICAgY3JlZGVudGlhbHM6IGNvbmZpZy5jcmVkZW50aWFscygpLFxuICAgIH07XG59O1xuIiwgImltcG9ydCB7IGdldEF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24sIHJlc29sdmVBd3NSZWdpb25FeHRlbnNpb25Db25maWd1cmF0aW9uLCB9IGZyb20gXCJAYXdzLXNkay9yZWdpb24tY29uZmlnLXJlc29sdmVyXCI7XG5pbXBvcnQgeyBnZXRIdHRwSGFuZGxlckV4dGVuc2lvbkNvbmZpZ3VyYXRpb24sIHJlc29sdmVIdHRwSGFuZGxlclJ1bnRpbWVDb25maWcgfSBmcm9tIFwiQHNtaXRoeS9wcm90b2NvbC1odHRwXCI7XG5pbXBvcnQgeyBnZXREZWZhdWx0RXh0ZW5zaW9uQ29uZmlndXJhdGlvbiwgcmVzb2x2ZURlZmF1bHRSdW50aW1lQ29uZmlnIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgZ2V0SHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uLCByZXNvbHZlSHR0cEF1dGhSdW50aW1lQ29uZmlnIH0gZnJvbSBcIi4vYXV0aC9odHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb25cIjtcbmV4cG9ydCBjb25zdCByZXNvbHZlUnVudGltZUV4dGVuc2lvbnMgPSAocnVudGltZUNvbmZpZywgZXh0ZW5zaW9ucykgPT4ge1xuICAgIGNvbnN0IGV4dGVuc2lvbkNvbmZpZ3VyYXRpb24gPSBPYmplY3QuYXNzaWduKGdldEF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24ocnVudGltZUNvbmZpZyksIGdldERlZmF1bHRFeHRlbnNpb25Db25maWd1cmF0aW9uKHJ1bnRpbWVDb25maWcpLCBnZXRIdHRwSGFuZGxlckV4dGVuc2lvbkNvbmZpZ3VyYXRpb24ocnVudGltZUNvbmZpZyksIGdldEh0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbihydW50aW1lQ29uZmlnKSk7XG4gICAgZXh0ZW5zaW9ucy5mb3JFYWNoKChleHRlbnNpb24pID0+IGV4dGVuc2lvbi5jb25maWd1cmUoZXh0ZW5zaW9uQ29uZmlndXJhdGlvbikpO1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHJ1bnRpbWVDb25maWcsIHJlc29sdmVBd3NSZWdpb25FeHRlbnNpb25Db25maWd1cmF0aW9uKGV4dGVuc2lvbkNvbmZpZ3VyYXRpb24pLCByZXNvbHZlRGVmYXVsdFJ1bnRpbWVDb25maWcoZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiksIHJlc29sdmVIdHRwSGFuZGxlclJ1bnRpbWVDb25maWcoZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiksIHJlc29sdmVIdHRwQXV0aFJ1bnRpbWVDb25maWcoZXh0ZW5zaW9uQ29uZmlndXJhdGlvbikpO1xufTtcbiIsICJpbXBvcnQgeyBnZXRIb3N0SGVhZGVyUGx1Z2luLCByZXNvbHZlSG9zdEhlYWRlckNvbmZpZywgfSBmcm9tIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1ob3N0LWhlYWRlclwiO1xuaW1wb3J0IHsgZ2V0TG9nZ2VyUGx1Z2luIH0gZnJvbSBcIkBhd3Mtc2RrL21pZGRsZXdhcmUtbG9nZ2VyXCI7XG5pbXBvcnQgeyBnZXRSZWN1cnNpb25EZXRlY3Rpb25QbHVnaW4gfSBmcm9tIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1yZWN1cnNpb24tZGV0ZWN0aW9uXCI7XG5pbXBvcnQgeyBnZXRVc2VyQWdlbnRQbHVnaW4sIHJlc29sdmVVc2VyQWdlbnRDb25maWcsIH0gZnJvbSBcIkBhd3Mtc2RrL21pZGRsZXdhcmUtdXNlci1hZ2VudFwiO1xuaW1wb3J0IHsgcmVzb2x2ZVJlZ2lvbkNvbmZpZyB9IGZyb20gXCJAc21pdGh5L2NvbmZpZy1yZXNvbHZlclwiO1xuaW1wb3J0IHsgRGVmYXVsdElkZW50aXR5UHJvdmlkZXJDb25maWcsIGdldEh0dHBBdXRoU2NoZW1lRW5kcG9pbnRSdWxlU2V0UGx1Z2luLCBnZXRIdHRwU2lnbmluZ1BsdWdpbiwgfSBmcm9tIFwiQHNtaXRoeS9jb3JlXCI7XG5pbXBvcnQgeyBnZXRTY2hlbWFTZXJkZVBsdWdpbiB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2NoZW1hXCI7XG5pbXBvcnQgeyBnZXRDb250ZW50TGVuZ3RoUGx1Z2luIH0gZnJvbSBcIkBzbWl0aHkvbWlkZGxld2FyZS1jb250ZW50LWxlbmd0aFwiO1xuaW1wb3J0IHsgcmVzb2x2ZUVuZHBvaW50Q29uZmlnLCB9IGZyb20gXCJAc21pdGh5L21pZGRsZXdhcmUtZW5kcG9pbnRcIjtcbmltcG9ydCB7IGdldFJldHJ5UGx1Z2luLCByZXNvbHZlUmV0cnlDb25maWcsIH0gZnJvbSBcIkBzbWl0aHkvbWlkZGxld2FyZS1yZXRyeVwiO1xuaW1wb3J0IHsgQ2xpZW50IGFzIF9fQ2xpZW50LCB9IGZyb20gXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjtcbmltcG9ydCB7IGRlZmF1bHRTU09PSURDSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIsIHJlc29sdmVIdHRwQXV0aFNjaGVtZUNvbmZpZywgfSBmcm9tIFwiLi9hdXRoL2h0dHBBdXRoU2NoZW1lUHJvdmlkZXJcIjtcbmltcG9ydCB7IHJlc29sdmVDbGllbnRFbmRwb2ludFBhcmFtZXRlcnMgfSBmcm9tIFwiLi9lbmRwb2ludC9FbmRwb2ludFBhcmFtZXRlcnNcIjtcbmltcG9ydCB7IGdldFJ1bnRpbWVDb25maWcgYXMgX19nZXRSdW50aW1lQ29uZmlnIH0gZnJvbSBcIi4vcnVudGltZUNvbmZpZ1wiO1xuaW1wb3J0IHsgcmVzb2x2ZVJ1bnRpbWVFeHRlbnNpb25zIH0gZnJvbSBcIi4vcnVudGltZUV4dGVuc2lvbnNcIjtcbmV4cG9ydCB7IF9fQ2xpZW50IH07XG5leHBvcnQgY2xhc3MgU1NPT0lEQ0NsaWVudCBleHRlbmRzIF9fQ2xpZW50IHtcbiAgICBjb25maWc7XG4gICAgY29uc3RydWN0b3IoLi4uW2NvbmZpZ3VyYXRpb25dKSB7XG4gICAgICAgIGNvbnN0IF9jb25maWdfMCA9IF9fZ2V0UnVudGltZUNvbmZpZyhjb25maWd1cmF0aW9uIHx8IHt9KTtcbiAgICAgICAgc3VwZXIoX2NvbmZpZ18wKTtcbiAgICAgICAgdGhpcy5pbml0Q29uZmlnID0gX2NvbmZpZ18wO1xuICAgICAgICBjb25zdCBfY29uZmlnXzEgPSByZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzKF9jb25maWdfMCk7XG4gICAgICAgIGNvbnN0IF9jb25maWdfMiA9IHJlc29sdmVVc2VyQWdlbnRDb25maWcoX2NvbmZpZ18xKTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ18zID0gcmVzb2x2ZVJldHJ5Q29uZmlnKF9jb25maWdfMik7XG4gICAgICAgIGNvbnN0IF9jb25maWdfNCA9IHJlc29sdmVSZWdpb25Db25maWcoX2NvbmZpZ18zKTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ181ID0gcmVzb2x2ZUhvc3RIZWFkZXJDb25maWcoX2NvbmZpZ180KTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ182ID0gcmVzb2x2ZUVuZHBvaW50Q29uZmlnKF9jb25maWdfNSk7XG4gICAgICAgIGNvbnN0IF9jb25maWdfNyA9IHJlc29sdmVIdHRwQXV0aFNjaGVtZUNvbmZpZyhfY29uZmlnXzYpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzggPSByZXNvbHZlUnVudGltZUV4dGVuc2lvbnMoX2NvbmZpZ183LCBjb25maWd1cmF0aW9uPy5leHRlbnNpb25zIHx8IFtdKTtcbiAgICAgICAgdGhpcy5jb25maWcgPSBfY29uZmlnXzg7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShnZXRTY2hlbWFTZXJkZVBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoZ2V0VXNlckFnZW50UGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShnZXRSZXRyeVBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoZ2V0Q29udGVudExlbmd0aFBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoZ2V0SG9zdEhlYWRlclBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoZ2V0TG9nZ2VyUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShnZXRSZWN1cnNpb25EZXRlY3Rpb25QbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGdldEh0dHBBdXRoU2NoZW1lRW5kcG9pbnRSdWxlU2V0UGx1Z2luKHRoaXMuY29uZmlnLCB7XG4gICAgICAgICAgICBodHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlcjogZGVmYXVsdFNTT09JRENIdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlcixcbiAgICAgICAgICAgIGlkZW50aXR5UHJvdmlkZXJDb25maWdQcm92aWRlcjogYXN5bmMgKGNvbmZpZykgPT4gbmV3IERlZmF1bHRJZGVudGl0eVByb3ZpZGVyQ29uZmlnKHtcbiAgICAgICAgICAgICAgICBcImF3cy5hdXRoI3NpZ3Y0XCI6IGNvbmZpZy5jcmVkZW50aWFscyxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICB9KSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShnZXRIdHRwU2lnbmluZ1BsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgIH1cbiAgICBkZXN0cm95KCkge1xuICAgICAgICBzdXBlci5kZXN0cm95KCk7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IGdldEVuZHBvaW50UGx1Z2luIH0gZnJvbSBcIkBzbWl0aHkvbWlkZGxld2FyZS1lbmRwb2ludFwiO1xuaW1wb3J0IHsgQ29tbWFuZCBhcyAkQ29tbWFuZCB9IGZyb20gXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjtcbmltcG9ydCB7IGNvbW1vblBhcmFtcyB9IGZyb20gXCIuLi9lbmRwb2ludC9FbmRwb2ludFBhcmFtZXRlcnNcIjtcbmltcG9ydCB7IENyZWF0ZVRva2VuJCB9IGZyb20gXCIuLi9zY2hlbWFzL3NjaGVtYXNfMFwiO1xuZXhwb3J0IHsgJENvbW1hbmQgfTtcbmV4cG9ydCBjbGFzcyBDcmVhdGVUb2tlbkNvbW1hbmQgZXh0ZW5kcyAkQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW2dldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTU1NPT0lEQ1NlcnZpY2VcIiwgXCJDcmVhdGVUb2tlblwiLCB7fSlcbiAgICAubihcIlNTT09JRENDbGllbnRcIiwgXCJDcmVhdGVUb2tlbkNvbW1hbmRcIilcbiAgICAuc2MoQ3JlYXRlVG9rZW4kKVxuICAgIC5idWlsZCgpIHtcbn1cbiIsICJpbXBvcnQgeyBjcmVhdGVBZ2dyZWdhdGVkQ2xpZW50IH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgQ3JlYXRlVG9rZW5Db21tYW5kIH0gZnJvbSBcIi4vY29tbWFuZHMvQ3JlYXRlVG9rZW5Db21tYW5kXCI7XG5pbXBvcnQgeyBTU09PSURDQ2xpZW50IH0gZnJvbSBcIi4vU1NPT0lEQ0NsaWVudFwiO1xuY29uc3QgY29tbWFuZHMgPSB7XG4gICAgQ3JlYXRlVG9rZW5Db21tYW5kLFxufTtcbmV4cG9ydCBjbGFzcyBTU09PSURDIGV4dGVuZHMgU1NPT0lEQ0NsaWVudCB7XG59XG5jcmVhdGVBZ2dyZWdhdGVkQ2xpZW50KGNvbW1hbmRzLCBTU09PSURDKTtcbiIsICJleHBvcnQgKiBmcm9tIFwiLi9DcmVhdGVUb2tlbkNvbW1hbmRcIjtcbiIsICJleHBvcnQgY29uc3QgQWNjZXNzRGVuaWVkRXhjZXB0aW9uUmVhc29uID0ge1xuICAgIEtNU19BQ0NFU1NfREVOSUVEOiBcIktNU19BY2Nlc3NEZW5pZWRFeGNlcHRpb25cIixcbn07XG5leHBvcnQgY29uc3QgSW52YWxpZFJlcXVlc3RFeGNlcHRpb25SZWFzb24gPSB7XG4gICAgS01TX0RJU0FCTEVEX0tFWTogXCJLTVNfRGlzYWJsZWRFeGNlcHRpb25cIixcbiAgICBLTVNfSU5WQUxJRF9LRVlfVVNBR0U6IFwiS01TX0ludmFsaWRLZXlVc2FnZUV4Y2VwdGlvblwiLFxuICAgIEtNU19JTlZBTElEX1NUQVRFOiBcIktNU19JbnZhbGlkU3RhdGVFeGNlcHRpb25cIixcbiAgICBLTVNfS0VZX05PVF9GT1VORDogXCJLTVNfTm90Rm91bmRFeGNlcHRpb25cIixcbn07XG4iLCAiZXhwb3J0IHt9O1xuIiwgImV4cG9ydCAqIGZyb20gXCIuL1NTT09JRENDbGllbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL1NTT09JRENcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbW1hbmRzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zY2hlbWFzL3NjaGVtYXNfMFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWxzL2VudW1zXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9tb2RlbHMvZXJyb3JzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9tb2RlbHMvbW9kZWxzXzBcIjtcbmV4cG9ydCB7IFNTT09JRENTZXJ2aWNlRXhjZXB0aW9uIH0gZnJvbSBcIi4vbW9kZWxzL1NTT09JRENTZXJ2aWNlRXhjZXB0aW9uXCI7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgY2xpZW50ID0gcmVxdWlyZSgnQGF3cy1zZGsvY29yZS9jbGllbnQnKTtcbnZhciBodHRwQXV0aFNjaGVtZXMgPSByZXF1aXJlKCdAYXdzLXNkay9jb3JlL2h0dHBBdXRoU2NoZW1lcycpO1xudmFyIHByb3BlcnR5UHJvdmlkZXIgPSByZXF1aXJlKCdAc21pdGh5L3Byb3BlcnR5LXByb3ZpZGVyJyk7XG52YXIgc2hhcmVkSW5pRmlsZUxvYWRlciA9IHJlcXVpcmUoJ0BzbWl0aHkvc2hhcmVkLWluaS1maWxlLWxvYWRlcicpO1xudmFyIGZzID0gcmVxdWlyZSgnZnMnKTtcblxuY29uc3QgZnJvbUVudlNpZ25pbmdOYW1lID0gKHsgbG9nZ2VyLCBzaWduaW5nTmFtZSB9ID0ge30pID0+IGFzeW5jICgpID0+IHtcbiAgICBsb2dnZXI/LmRlYnVnPy4oXCJAYXdzLXNkay90b2tlbi1wcm92aWRlcnMgLSBmcm9tRW52U2lnbmluZ05hbWVcIik7XG4gICAgaWYgKCFzaWduaW5nTmFtZSkge1xuICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5Ub2tlblByb3ZpZGVyRXJyb3IoXCJQbGVhc2UgcGFzcyAnc2lnbmluZ05hbWUnIHRvIGNvbXB1dGUgZW52aXJvbm1lbnQgdmFyaWFibGUga2V5XCIsIHsgbG9nZ2VyIH0pO1xuICAgIH1cbiAgICBjb25zdCBiZWFyZXJUb2tlbktleSA9IGh0dHBBdXRoU2NoZW1lcy5nZXRCZWFyZXJUb2tlbkVudktleShzaWduaW5nTmFtZSk7XG4gICAgaWYgKCEoYmVhcmVyVG9rZW5LZXkgaW4gcHJvY2Vzcy5lbnYpKSB7XG4gICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLlRva2VuUHJvdmlkZXJFcnJvcihgVG9rZW4gbm90IHByZXNlbnQgaW4gJyR7YmVhcmVyVG9rZW5LZXl9JyBlbnZpcm9ubWVudCB2YXJpYWJsZWAsIHsgbG9nZ2VyIH0pO1xuICAgIH1cbiAgICBjb25zdCB0b2tlbiA9IHsgdG9rZW46IHByb2Nlc3MuZW52W2JlYXJlclRva2VuS2V5XSB9O1xuICAgIGNsaWVudC5zZXRUb2tlbkZlYXR1cmUodG9rZW4sIFwiQkVBUkVSX1NFUlZJQ0VfRU5WX1ZBUlNcIiwgXCIzXCIpO1xuICAgIHJldHVybiB0b2tlbjtcbn07XG5cbmNvbnN0IEVYUElSRV9XSU5ET1dfTVMgPSA1ICogNjAgKiAxMDAwO1xuY29uc3QgUkVGUkVTSF9NRVNTQUdFID0gYFRvIHJlZnJlc2ggdGhpcyBTU08gc2Vzc2lvbiBydW4gJ2F3cyBzc28gbG9naW4nIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgcHJvZmlsZS5gO1xuXG5jb25zdCBnZXRTc29PaWRjQ2xpZW50ID0gYXN5bmMgKHNzb1JlZ2lvbiwgaW5pdCA9IHt9LCBjYWxsZXJDbGllbnRDb25maWcpID0+IHtcbiAgICBjb25zdCB7IFNTT09JRENDbGllbnQgfSA9IGF3YWl0IGltcG9ydCgnQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvc3NvLW9pZGMnKTtcbiAgICBjb25zdCBjb2FsZXNjZSA9IChwcm9wKSA9PiBpbml0LmNsaWVudENvbmZpZz8uW3Byb3BdID8/IGluaXQucGFyZW50Q2xpZW50Q29uZmlnPy5bcHJvcF0gPz8gY2FsbGVyQ2xpZW50Q29uZmlnPy5bcHJvcF07XG4gICAgY29uc3Qgc3NvT2lkY0NsaWVudCA9IG5ldyBTU09PSURDQ2xpZW50KE9iamVjdC5hc3NpZ24oe30sIGluaXQuY2xpZW50Q29uZmlnID8/IHt9LCB7XG4gICAgICAgIHJlZ2lvbjogc3NvUmVnaW9uID8/IGluaXQuY2xpZW50Q29uZmlnPy5yZWdpb24sXG4gICAgICAgIGxvZ2dlcjogY29hbGVzY2UoXCJsb2dnZXJcIiksXG4gICAgICAgIHVzZXJBZ2VudEFwcElkOiBjb2FsZXNjZShcInVzZXJBZ2VudEFwcElkXCIpLFxuICAgIH0pKTtcbiAgICByZXR1cm4gc3NvT2lkY0NsaWVudDtcbn07XG5cbmNvbnN0IGdldE5ld1Nzb09pZGNUb2tlbiA9IGFzeW5jIChzc29Ub2tlbiwgc3NvUmVnaW9uLCBpbml0ID0ge30sIGNhbGxlckNsaWVudENvbmZpZykgPT4ge1xuICAgIGNvbnN0IHsgQ3JlYXRlVG9rZW5Db21tYW5kIH0gPSBhd2FpdCBpbXBvcnQoJ0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL3Nzby1vaWRjJyk7XG4gICAgY29uc3Qgc3NvT2lkY0NsaWVudCA9IGF3YWl0IGdldFNzb09pZGNDbGllbnQoc3NvUmVnaW9uLCBpbml0LCBjYWxsZXJDbGllbnRDb25maWcpO1xuICAgIHJldHVybiBzc29PaWRjQ2xpZW50LnNlbmQobmV3IENyZWF0ZVRva2VuQ29tbWFuZCh7XG4gICAgICAgIGNsaWVudElkOiBzc29Ub2tlbi5jbGllbnRJZCxcbiAgICAgICAgY2xpZW50U2VjcmV0OiBzc29Ub2tlbi5jbGllbnRTZWNyZXQsXG4gICAgICAgIHJlZnJlc2hUb2tlbjogc3NvVG9rZW4ucmVmcmVzaFRva2VuLFxuICAgICAgICBncmFudFR5cGU6IFwicmVmcmVzaF90b2tlblwiLFxuICAgIH0pKTtcbn07XG5cbmNvbnN0IHZhbGlkYXRlVG9rZW5FeHBpcnkgPSAodG9rZW4pID0+IHtcbiAgICBpZiAodG9rZW4uZXhwaXJhdGlvbiAmJiB0b2tlbi5leHBpcmF0aW9uLmdldFRpbWUoKSA8IERhdGUubm93KCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuVG9rZW5Qcm92aWRlckVycm9yKGBUb2tlbiBpcyBleHBpcmVkLiAke1JFRlJFU0hfTUVTU0FHRX1gLCBmYWxzZSk7XG4gICAgfVxufTtcblxuY29uc3QgdmFsaWRhdGVUb2tlbktleSA9IChrZXksIHZhbHVlLCBmb3JSZWZyZXNoID0gZmFsc2UpID0+IHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLlRva2VuUHJvdmlkZXJFcnJvcihgVmFsdWUgbm90IHByZXNlbnQgZm9yICcke2tleX0nIGluIFNTTyBUb2tlbiR7Zm9yUmVmcmVzaCA/IFwiLiBDYW5ub3QgcmVmcmVzaFwiIDogXCJcIn0uICR7UkVGUkVTSF9NRVNTQUdFfWAsIGZhbHNlKTtcbiAgICB9XG59O1xuXG5jb25zdCB7IHdyaXRlRmlsZSB9ID0gZnMucHJvbWlzZXM7XG5jb25zdCB3cml0ZVNTT1Rva2VuVG9GaWxlID0gKGlkLCBzc29Ub2tlbikgPT4ge1xuICAgIGNvbnN0IHRva2VuRmlsZXBhdGggPSBzaGFyZWRJbmlGaWxlTG9hZGVyLmdldFNTT1Rva2VuRmlsZXBhdGgoaWQpO1xuICAgIGNvbnN0IHRva2VuU3RyaW5nID0gSlNPTi5zdHJpbmdpZnkoc3NvVG9rZW4sIG51bGwsIDIpO1xuICAgIHJldHVybiB3cml0ZUZpbGUodG9rZW5GaWxlcGF0aCwgdG9rZW5TdHJpbmcpO1xufTtcblxuY29uc3QgbGFzdFJlZnJlc2hBdHRlbXB0VGltZSA9IG5ldyBEYXRlKDApO1xuY29uc3QgZnJvbVNzbyA9IChpbml0ID0ge30pID0+IGFzeW5jICh7IGNhbGxlckNsaWVudENvbmZpZyB9ID0ge30pID0+IHtcbiAgICBpbml0LmxvZ2dlcj8uZGVidWcoXCJAYXdzLXNkay90b2tlbi1wcm92aWRlcnMgLSBmcm9tU3NvXCIpO1xuICAgIGNvbnN0IHByb2ZpbGVzID0gYXdhaXQgc2hhcmVkSW5pRmlsZUxvYWRlci5wYXJzZUtub3duRmlsZXMoaW5pdCk7XG4gICAgY29uc3QgcHJvZmlsZU5hbWUgPSBzaGFyZWRJbmlGaWxlTG9hZGVyLmdldFByb2ZpbGVOYW1lKHtcbiAgICAgICAgcHJvZmlsZTogaW5pdC5wcm9maWxlID8/IGNhbGxlckNsaWVudENvbmZpZz8ucHJvZmlsZSxcbiAgICB9KTtcbiAgICBjb25zdCBwcm9maWxlID0gcHJvZmlsZXNbcHJvZmlsZU5hbWVdO1xuICAgIGlmICghcHJvZmlsZSkge1xuICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5Ub2tlblByb3ZpZGVyRXJyb3IoYFByb2ZpbGUgJyR7cHJvZmlsZU5hbWV9JyBjb3VsZCBub3QgYmUgZm91bmQgaW4gc2hhcmVkIGNyZWRlbnRpYWxzIGZpbGUuYCwgZmFsc2UpO1xuICAgIH1cbiAgICBlbHNlIGlmICghcHJvZmlsZVtcInNzb19zZXNzaW9uXCJdKSB7XG4gICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLlRva2VuUHJvdmlkZXJFcnJvcihgUHJvZmlsZSAnJHtwcm9maWxlTmFtZX0nIGlzIG1pc3NpbmcgcmVxdWlyZWQgcHJvcGVydHkgJ3Nzb19zZXNzaW9uJy5gKTtcbiAgICB9XG4gICAgY29uc3Qgc3NvU2Vzc2lvbk5hbWUgPSBwcm9maWxlW1wic3NvX3Nlc3Npb25cIl07XG4gICAgY29uc3Qgc3NvU2Vzc2lvbnMgPSBhd2FpdCBzaGFyZWRJbmlGaWxlTG9hZGVyLmxvYWRTc29TZXNzaW9uRGF0YShpbml0KTtcbiAgICBjb25zdCBzc29TZXNzaW9uID0gc3NvU2Vzc2lvbnNbc3NvU2Vzc2lvbk5hbWVdO1xuICAgIGlmICghc3NvU2Vzc2lvbikge1xuICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5Ub2tlblByb3ZpZGVyRXJyb3IoYFNzbyBzZXNzaW9uICcke3Nzb1Nlc3Npb25OYW1lfScgY291bGQgbm90IGJlIGZvdW5kIGluIHNoYXJlZCBjcmVkZW50aWFscyBmaWxlLmAsIGZhbHNlKTtcbiAgICB9XG4gICAgZm9yIChjb25zdCBzc29TZXNzaW9uUmVxdWlyZWRLZXkgb2YgW1wic3NvX3N0YXJ0X3VybFwiLCBcInNzb19yZWdpb25cIl0pIHtcbiAgICAgICAgaWYgKCFzc29TZXNzaW9uW3Nzb1Nlc3Npb25SZXF1aXJlZEtleV0pIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLlRva2VuUHJvdmlkZXJFcnJvcihgU3NvIHNlc3Npb24gJyR7c3NvU2Vzc2lvbk5hbWV9JyBpcyBtaXNzaW5nIHJlcXVpcmVkIHByb3BlcnR5ICcke3Nzb1Nlc3Npb25SZXF1aXJlZEtleX0nLmAsIGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBzc29TZXNzaW9uW1wic3NvX3N0YXJ0X3VybFwiXTtcbiAgICBjb25zdCBzc29SZWdpb24gPSBzc29TZXNzaW9uW1wic3NvX3JlZ2lvblwiXTtcbiAgICBsZXQgc3NvVG9rZW47XG4gICAgdHJ5IHtcbiAgICAgICAgc3NvVG9rZW4gPSBhd2FpdCBzaGFyZWRJbmlGaWxlTG9hZGVyLmdldFNTT1Rva2VuRnJvbUZpbGUoc3NvU2Vzc2lvbk5hbWUpO1xuICAgIH1cbiAgICBjYXRjaCAoZSkge1xuICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5Ub2tlblByb3ZpZGVyRXJyb3IoYFRoZSBTU08gc2Vzc2lvbiB0b2tlbiBhc3NvY2lhdGVkIHdpdGggcHJvZmlsZT0ke3Byb2ZpbGVOYW1lfSB3YXMgbm90IGZvdW5kIG9yIGlzIGludmFsaWQuICR7UkVGUkVTSF9NRVNTQUdFfWAsIGZhbHNlKTtcbiAgICB9XG4gICAgdmFsaWRhdGVUb2tlbktleShcImFjY2Vzc1Rva2VuXCIsIHNzb1Rva2VuLmFjY2Vzc1Rva2VuKTtcbiAgICB2YWxpZGF0ZVRva2VuS2V5KFwiZXhwaXJlc0F0XCIsIHNzb1Rva2VuLmV4cGlyZXNBdCk7XG4gICAgY29uc3QgeyBhY2Nlc3NUb2tlbiwgZXhwaXJlc0F0IH0gPSBzc29Ub2tlbjtcbiAgICBjb25zdCBleGlzdGluZ1Rva2VuID0geyB0b2tlbjogYWNjZXNzVG9rZW4sIGV4cGlyYXRpb246IG5ldyBEYXRlKGV4cGlyZXNBdCkgfTtcbiAgICBpZiAoZXhpc3RpbmdUb2tlbi5leHBpcmF0aW9uLmdldFRpbWUoKSAtIERhdGUubm93KCkgPiBFWFBJUkVfV0lORE9XX01TKSB7XG4gICAgICAgIHJldHVybiBleGlzdGluZ1Rva2VuO1xuICAgIH1cbiAgICBpZiAoRGF0ZS5ub3coKSAtIGxhc3RSZWZyZXNoQXR0ZW1wdFRpbWUuZ2V0VGltZSgpIDwgMzAgKiAxMDAwKSB7XG4gICAgICAgIHZhbGlkYXRlVG9rZW5FeHBpcnkoZXhpc3RpbmdUb2tlbik7XG4gICAgICAgIHJldHVybiBleGlzdGluZ1Rva2VuO1xuICAgIH1cbiAgICB2YWxpZGF0ZVRva2VuS2V5KFwiY2xpZW50SWRcIiwgc3NvVG9rZW4uY2xpZW50SWQsIHRydWUpO1xuICAgIHZhbGlkYXRlVG9rZW5LZXkoXCJjbGllbnRTZWNyZXRcIiwgc3NvVG9rZW4uY2xpZW50U2VjcmV0LCB0cnVlKTtcbiAgICB2YWxpZGF0ZVRva2VuS2V5KFwicmVmcmVzaFRva2VuXCIsIHNzb1Rva2VuLnJlZnJlc2hUb2tlbiwgdHJ1ZSk7XG4gICAgdHJ5IHtcbiAgICAgICAgbGFzdFJlZnJlc2hBdHRlbXB0VGltZS5zZXRUaW1lKERhdGUubm93KCkpO1xuICAgICAgICBjb25zdCBuZXdTc29PaWRjVG9rZW4gPSBhd2FpdCBnZXROZXdTc29PaWRjVG9rZW4oc3NvVG9rZW4sIHNzb1JlZ2lvbiwgaW5pdCwgY2FsbGVyQ2xpZW50Q29uZmlnKTtcbiAgICAgICAgdmFsaWRhdGVUb2tlbktleShcImFjY2Vzc1Rva2VuXCIsIG5ld1Nzb09pZGNUb2tlbi5hY2Nlc3NUb2tlbik7XG4gICAgICAgIHZhbGlkYXRlVG9rZW5LZXkoXCJleHBpcmVzSW5cIiwgbmV3U3NvT2lkY1Rva2VuLmV4cGlyZXNJbik7XG4gICAgICAgIGNvbnN0IG5ld1Rva2VuRXhwaXJhdGlvbiA9IG5ldyBEYXRlKERhdGUubm93KCkgKyBuZXdTc29PaWRjVG9rZW4uZXhwaXJlc0luICogMTAwMCk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhd2FpdCB3cml0ZVNTT1Rva2VuVG9GaWxlKHNzb1Nlc3Npb25OYW1lLCB7XG4gICAgICAgICAgICAgICAgLi4uc3NvVG9rZW4sXG4gICAgICAgICAgICAgICAgYWNjZXNzVG9rZW46IG5ld1Nzb09pZGNUb2tlbi5hY2Nlc3NUb2tlbixcbiAgICAgICAgICAgICAgICBleHBpcmVzQXQ6IG5ld1Rva2VuRXhwaXJhdGlvbi50b0lTT1N0cmluZygpLFxuICAgICAgICAgICAgICAgIHJlZnJlc2hUb2tlbjogbmV3U3NvT2lkY1Rva2VuLnJlZnJlc2hUb2tlbixcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0b2tlbjogbmV3U3NvT2lkY1Rva2VuLmFjY2Vzc1Rva2VuLFxuICAgICAgICAgICAgZXhwaXJhdGlvbjogbmV3VG9rZW5FeHBpcmF0aW9uLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgdmFsaWRhdGVUb2tlbkV4cGlyeShleGlzdGluZ1Rva2VuKTtcbiAgICAgICAgcmV0dXJuIGV4aXN0aW5nVG9rZW47XG4gICAgfVxufTtcblxuY29uc3QgZnJvbVN0YXRpYyA9ICh7IHRva2VuLCBsb2dnZXIgfSkgPT4gYXN5bmMgKCkgPT4ge1xuICAgIGxvZ2dlcj8uZGVidWcoXCJAYXdzLXNkay90b2tlbi1wcm92aWRlcnMgLSBmcm9tU3RhdGljXCIpO1xuICAgIGlmICghdG9rZW4gfHwgIXRva2VuLnRva2VuKSB7XG4gICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLlRva2VuUHJvdmlkZXJFcnJvcihgUGxlYXNlIHBhc3MgYSB2YWxpZCB0b2tlbiB0byBmcm9tU3RhdGljYCwgZmFsc2UpO1xuICAgIH1cbiAgICByZXR1cm4gdG9rZW47XG59O1xuXG5jb25zdCBub2RlUHJvdmlkZXIgPSAoaW5pdCA9IHt9KSA9PiBwcm9wZXJ0eVByb3ZpZGVyLm1lbW9pemUocHJvcGVydHlQcm92aWRlci5jaGFpbihmcm9tU3NvKGluaXQpLCBhc3luYyAoKSA9PiB7XG4gICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuVG9rZW5Qcm92aWRlckVycm9yKFwiQ291bGQgbm90IGxvYWQgdG9rZW4gZnJvbSBhbnkgcHJvdmlkZXJzXCIsIGZhbHNlKTtcbn0pLCAodG9rZW4pID0+IHRva2VuLmV4cGlyYXRpb24gIT09IHVuZGVmaW5lZCAmJiB0b2tlbi5leHBpcmF0aW9uLmdldFRpbWUoKSAtIERhdGUubm93KCkgPCAzMDAwMDAsICh0b2tlbikgPT4gdG9rZW4uZXhwaXJhdGlvbiAhPT0gdW5kZWZpbmVkKTtcblxuZXhwb3J0cy5mcm9tRW52U2lnbmluZ05hbWUgPSBmcm9tRW52U2lnbmluZ05hbWU7XG5leHBvcnRzLmZyb21Tc28gPSBmcm9tU3NvO1xuZXhwb3J0cy5mcm9tU3RhdGljID0gZnJvbVN0YXRpYztcbmV4cG9ydHMubm9kZVByb3ZpZGVyID0gbm9kZVByb3ZpZGVyO1xuIiwgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5yZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWcgPSBleHBvcnRzLmRlZmF1bHRTU09IdHRwQXV0aFNjaGVtZVByb3ZpZGVyID0gZXhwb3J0cy5kZWZhdWx0U1NPSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIgPSB2b2lkIDA7XG5jb25zdCBjb3JlXzEgPSByZXF1aXJlKFwiQGF3cy1zZGsvY29yZVwiKTtcbmNvbnN0IHV0aWxfbWlkZGxld2FyZV8xID0gcmVxdWlyZShcIkBzbWl0aHkvdXRpbC1taWRkbGV3YXJlXCIpO1xuY29uc3QgZGVmYXVsdFNTT0h0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyID0gYXN5bmMgKGNvbmZpZywgY29udGV4dCwgaW5wdXQpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgICBvcGVyYXRpb246ICgwLCB1dGlsX21pZGRsZXdhcmVfMS5nZXRTbWl0aHlDb250ZXh0KShjb250ZXh0KS5vcGVyYXRpb24sXG4gICAgICAgIHJlZ2lvbjogYXdhaXQgKDAsIHV0aWxfbWlkZGxld2FyZV8xLm5vcm1hbGl6ZVByb3ZpZGVyKShjb25maWcucmVnaW9uKSgpIHx8ICgoKSA9PiB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJleHBlY3RlZCBgcmVnaW9uYCB0byBiZSBjb25maWd1cmVkIGZvciBgYXdzLmF1dGgjc2lndjRgXCIpO1xuICAgICAgICB9KSgpLFxuICAgIH07XG59O1xuZXhwb3J0cy5kZWZhdWx0U1NPSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIgPSBkZWZhdWx0U1NPSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXI7XG5mdW5jdGlvbiBjcmVhdGVBd3NBdXRoU2lndjRIdHRwQXV0aE9wdGlvbihhdXRoUGFyYW1ldGVycykge1xuICAgIHJldHVybiB7XG4gICAgICAgIHNjaGVtZUlkOiBcImF3cy5hdXRoI3NpZ3Y0XCIsXG4gICAgICAgIHNpZ25pbmdQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICBuYW1lOiBcImF3c3Nzb3BvcnRhbFwiLFxuICAgICAgICAgICAgcmVnaW9uOiBhdXRoUGFyYW1ldGVycy5yZWdpb24sXG4gICAgICAgIH0sXG4gICAgICAgIHByb3BlcnRpZXNFeHRyYWN0b3I6IChjb25maWcsIGNvbnRleHQpID0+ICh7XG4gICAgICAgICAgICBzaWduaW5nUHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgIGNvbmZpZyxcbiAgICAgICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgfTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVNtaXRoeUFwaU5vQXV0aEh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc2NoZW1lSWQ6IFwic21pdGh5LmFwaSNub0F1dGhcIixcbiAgICB9O1xufVxuY29uc3QgZGVmYXVsdFNTT0h0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSAoYXV0aFBhcmFtZXRlcnMpID0+IHtcbiAgICBjb25zdCBvcHRpb25zID0gW107XG4gICAgc3dpdGNoIChhdXRoUGFyYW1ldGVycy5vcGVyYXRpb24pIHtcbiAgICAgICAgY2FzZSBcIkdldFJvbGVDcmVkZW50aWFsc1wiOlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG9wdGlvbnMucHVzaChjcmVhdGVTbWl0aHlBcGlOb0F1dGhIdHRwQXV0aE9wdGlvbihhdXRoUGFyYW1ldGVycykpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgO1xuICAgICAgICBjYXNlIFwiTGlzdEFjY291bnRSb2xlc1wiOlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG9wdGlvbnMucHVzaChjcmVhdGVTbWl0aHlBcGlOb0F1dGhIdHRwQXV0aE9wdGlvbihhdXRoUGFyYW1ldGVycykpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgO1xuICAgICAgICBjYXNlIFwiTGlzdEFjY291bnRzXCI6XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgb3B0aW9ucy5wdXNoKGNyZWF0ZVNtaXRoeUFwaU5vQXV0aEh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA7XG4gICAgICAgIGNhc2UgXCJMb2dvdXRcIjpcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBvcHRpb25zLnB1c2goY3JlYXRlU21pdGh5QXBpTm9BdXRoSHR0cEF1dGhPcHRpb24oYXV0aFBhcmFtZXRlcnMpKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDtcbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgb3B0aW9ucy5wdXNoKGNyZWF0ZUF3c0F1dGhTaWd2NEh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG9wdGlvbnM7XG59O1xuZXhwb3J0cy5kZWZhdWx0U1NPSHR0cEF1dGhTY2hlbWVQcm92aWRlciA9IGRlZmF1bHRTU09IdHRwQXV0aFNjaGVtZVByb3ZpZGVyO1xuY29uc3QgcmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIGNvbnN0IGNvbmZpZ18wID0gKDAsIGNvcmVfMS5yZXNvbHZlQXdzU2RrU2lnVjRDb25maWcpKGNvbmZpZyk7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oY29uZmlnXzAsIHtcbiAgICAgICAgYXV0aFNjaGVtZVByZWZlcmVuY2U6ICgwLCB1dGlsX21pZGRsZXdhcmVfMS5ub3JtYWxpemVQcm92aWRlcikoY29uZmlnLmF1dGhTY2hlbWVQcmVmZXJlbmNlID8/IFtdKSxcbiAgICB9KTtcbn07XG5leHBvcnRzLnJlc29sdmVIdHRwQXV0aFNjaGVtZUNvbmZpZyA9IHJlc29sdmVIdHRwQXV0aFNjaGVtZUNvbmZpZztcbiIsICJ7XG4gIFwibmFtZVwiOiBcIkBhd3Mtc2RrL2NsaWVudC1zc29cIixcbiAgXCJkZXNjcmlwdGlvblwiOiBcIkFXUyBTREsgZm9yIEphdmFTY3JpcHQgU3NvIENsaWVudCBmb3IgTm9kZS5qcywgQnJvd3NlciBhbmQgUmVhY3QgTmF0aXZlXCIsXG4gIFwidmVyc2lvblwiOiBcIjMuOTk2LjBcIixcbiAgXCJzY3JpcHRzXCI6IHtcbiAgICBcImJ1aWxkXCI6IFwiY29uY3VycmVudGx5ICd5YXJuOmJ1aWxkOnR5cGVzJyAneWFybjpidWlsZDplcycgJiYgeWFybiBidWlsZDpjanNcIixcbiAgICBcImJ1aWxkOmNqc1wiOiBcIm5vZGUgLi4vLi4vc2NyaXB0cy9jb21waWxhdGlvbi9pbmxpbmUgY2xpZW50LXNzb1wiLFxuICAgIFwiYnVpbGQ6ZXNcIjogXCJ0c2MgLXAgdHNjb25maWcuZXMuanNvblwiLFxuICAgIFwiYnVpbGQ6aW5jbHVkZTpkZXBzXCI6IFwieWFybiBnOnR1cmJvIHJ1biBidWlsZCAtRj1cXFwiJG5wbV9wYWNrYWdlX25hbWVcXFwiXCIsXG4gICAgXCJidWlsZDp0eXBlc1wiOiBcInRzYyAtcCB0c2NvbmZpZy50eXBlcy5qc29uXCIsXG4gICAgXCJidWlsZDp0eXBlczpkb3dubGV2ZWxcIjogXCJkb3dubGV2ZWwtZHRzIGRpc3QtdHlwZXMgZGlzdC10eXBlcy90czMuNFwiLFxuICAgIFwiY2xlYW5cIjogXCJwcmVtb3ZlIGRpc3QtY2pzIGRpc3QtZXMgZGlzdC10eXBlcyB0c2NvbmZpZy5janMudHNidWlsZGluZm8gdHNjb25maWcuZXMudHNidWlsZGluZm8gdHNjb25maWcudHlwZXMudHNidWlsZGluZm9cIixcbiAgICBcImV4dHJhY3Q6ZG9jc1wiOiBcImFwaS1leHRyYWN0b3IgcnVuIC0tbG9jYWxcIixcbiAgICBcImdlbmVyYXRlOmNsaWVudFwiOiBcIm5vZGUgLi4vLi4vc2NyaXB0cy9nZW5lcmF0ZS1jbGllbnRzL3NpbmdsZS1zZXJ2aWNlIC0tc29sbyBzc29cIixcbiAgICBcInRlc3Q6aW5kZXhcIjogXCJ0c2MgLS1ub0VtaXQgLi90ZXN0L2luZGV4LXR5cGVzLnRzICYmIG5vZGUgLi90ZXN0L2luZGV4LW9iamVjdHMuc3BlYy5tanNcIlxuICB9LFxuICBcIm1haW5cIjogXCIuL2Rpc3QtY2pzL2luZGV4LmpzXCIsXG4gIFwidHlwZXNcIjogXCIuL2Rpc3QtdHlwZXMvaW5kZXguZC50c1wiLFxuICBcIm1vZHVsZVwiOiBcIi4vZGlzdC1lcy9pbmRleC5qc1wiLFxuICBcInNpZGVFZmZlY3RzXCI6IGZhbHNlLFxuICBcImRlcGVuZGVuY2llc1wiOiB7XG4gICAgXCJAYXdzLWNyeXB0by9zaGEyNTYtYnJvd3NlclwiOiBcIjUuMi4wXCIsXG4gICAgXCJAYXdzLWNyeXB0by9zaGEyNTYtanNcIjogXCI1LjIuMFwiLFxuICAgIFwiQGF3cy1zZGsvY29yZVwiOiBcIl4zLjk3My4xMlwiLFxuICAgIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1ob3N0LWhlYWRlclwiOiBcIl4zLjk3Mi4zXCIsXG4gICAgXCJAYXdzLXNkay9taWRkbGV3YXJlLWxvZ2dlclwiOiBcIl4zLjk3Mi4zXCIsXG4gICAgXCJAYXdzLXNkay9taWRkbGV3YXJlLXJlY3Vyc2lvbi1kZXRlY3Rpb25cIjogXCJeMy45NzIuM1wiLFxuICAgIFwiQGF3cy1zZGsvbWlkZGxld2FyZS11c2VyLWFnZW50XCI6IFwiXjMuOTcyLjEyXCIsXG4gICAgXCJAYXdzLXNkay9yZWdpb24tY29uZmlnLXJlc29sdmVyXCI6IFwiXjMuOTcyLjNcIixcbiAgICBcIkBhd3Mtc2RrL3R5cGVzXCI6IFwiXjMuOTczLjFcIixcbiAgICBcIkBhd3Mtc2RrL3V0aWwtZW5kcG9pbnRzXCI6IFwiMy45OTYuMFwiLFxuICAgIFwiQGF3cy1zZGsvdXRpbC11c2VyLWFnZW50LWJyb3dzZXJcIjogXCJeMy45NzIuM1wiLFxuICAgIFwiQGF3cy1zZGsvdXRpbC11c2VyLWFnZW50LW5vZGVcIjogXCJeMy45NzIuMTFcIixcbiAgICBcIkBzbWl0aHkvY29uZmlnLXJlc29sdmVyXCI6IFwiXjQuNC42XCIsXG4gICAgXCJAc21pdGh5L2NvcmVcIjogXCJeMy4yMy4yXCIsXG4gICAgXCJAc21pdGh5L2ZldGNoLWh0dHAtaGFuZGxlclwiOiBcIl41LjMuOVwiLFxuICAgIFwiQHNtaXRoeS9oYXNoLW5vZGVcIjogXCJeNC4yLjhcIixcbiAgICBcIkBzbWl0aHkvaW52YWxpZC1kZXBlbmRlbmN5XCI6IFwiXjQuMi44XCIsXG4gICAgXCJAc21pdGh5L21pZGRsZXdhcmUtY29udGVudC1sZW5ndGhcIjogXCJeNC4yLjhcIixcbiAgICBcIkBzbWl0aHkvbWlkZGxld2FyZS1lbmRwb2ludFwiOiBcIl40LjQuMTZcIixcbiAgICBcIkBzbWl0aHkvbWlkZGxld2FyZS1yZXRyeVwiOiBcIl40LjQuMzNcIixcbiAgICBcIkBzbWl0aHkvbWlkZGxld2FyZS1zZXJkZVwiOiBcIl40LjIuOVwiLFxuICAgIFwiQHNtaXRoeS9taWRkbGV3YXJlLXN0YWNrXCI6IFwiXjQuMi44XCIsXG4gICAgXCJAc21pdGh5L25vZGUtY29uZmlnLXByb3ZpZGVyXCI6IFwiXjQuMy44XCIsXG4gICAgXCJAc21pdGh5L25vZGUtaHR0cC1oYW5kbGVyXCI6IFwiXjQuNC4xMFwiLFxuICAgIFwiQHNtaXRoeS9wcm90b2NvbC1odHRwXCI6IFwiXjUuMy44XCIsXG4gICAgXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjogXCJeNC4xMS41XCIsXG4gICAgXCJAc21pdGh5L3R5cGVzXCI6IFwiXjQuMTIuMFwiLFxuICAgIFwiQHNtaXRoeS91cmwtcGFyc2VyXCI6IFwiXjQuMi44XCIsXG4gICAgXCJAc21pdGh5L3V0aWwtYmFzZTY0XCI6IFwiXjQuMy4wXCIsXG4gICAgXCJAc21pdGh5L3V0aWwtYm9keS1sZW5ndGgtYnJvd3NlclwiOiBcIl40LjIuMFwiLFxuICAgIFwiQHNtaXRoeS91dGlsLWJvZHktbGVuZ3RoLW5vZGVcIjogXCJeNC4yLjFcIixcbiAgICBcIkBzbWl0aHkvdXRpbC1kZWZhdWx0cy1tb2RlLWJyb3dzZXJcIjogXCJeNC4zLjMyXCIsXG4gICAgXCJAc21pdGh5L3V0aWwtZGVmYXVsdHMtbW9kZS1ub2RlXCI6IFwiXjQuMi4zNVwiLFxuICAgIFwiQHNtaXRoeS91dGlsLWVuZHBvaW50c1wiOiBcIl4zLjIuOFwiLFxuICAgIFwiQHNtaXRoeS91dGlsLW1pZGRsZXdhcmVcIjogXCJeNC4yLjhcIixcbiAgICBcIkBzbWl0aHkvdXRpbC1yZXRyeVwiOiBcIl40LjIuOFwiLFxuICAgIFwiQHNtaXRoeS91dGlsLXV0ZjhcIjogXCJeNC4yLjBcIixcbiAgICBcInRzbGliXCI6IFwiXjIuNi4yXCJcbiAgfSxcbiAgXCJkZXZEZXBlbmRlbmNpZXNcIjoge1xuICAgIFwiQHRzY29uZmlnL25vZGUyMFwiOiBcIjIwLjEuOFwiLFxuICAgIFwiQHR5cGVzL25vZGVcIjogXCJeMjAuMTQuOFwiLFxuICAgIFwiY29uY3VycmVudGx5XCI6IFwiNy4wLjBcIixcbiAgICBcImRvd25sZXZlbC1kdHNcIjogXCIwLjEwLjFcIixcbiAgICBcInByZW1vdmVcIjogXCI0LjAuMFwiLFxuICAgIFwidHlwZXNjcmlwdFwiOiBcIn41LjguM1wiXG4gIH0sXG4gIFwiZW5naW5lc1wiOiB7XG4gICAgXCJub2RlXCI6IFwiPj0yMC4wLjBcIlxuICB9LFxuICBcInR5cGVzVmVyc2lvbnNcIjoge1xuICAgIFwiPDQuMFwiOiB7XG4gICAgICBcImRpc3QtdHlwZXMvKlwiOiBbXG4gICAgICAgIFwiZGlzdC10eXBlcy90czMuNC8qXCJcbiAgICAgIF1cbiAgICB9XG4gIH0sXG4gIFwiZmlsZXNcIjogW1xuICAgIFwiZGlzdC0qLyoqXCJcbiAgXSxcbiAgXCJhdXRob3JcIjoge1xuICAgIFwibmFtZVwiOiBcIkFXUyBTREsgZm9yIEphdmFTY3JpcHQgVGVhbVwiLFxuICAgIFwidXJsXCI6IFwiaHR0cHM6Ly9hd3MuYW1hem9uLmNvbS9qYXZhc2NyaXB0L1wiXG4gIH0sXG4gIFwibGljZW5zZVwiOiBcIkFwYWNoZS0yLjBcIixcbiAgXCJicm93c2VyXCI6IHtcbiAgICBcIi4vZGlzdC1lcy9ydW50aW1lQ29uZmlnXCI6IFwiLi9kaXN0LWVzL3J1bnRpbWVDb25maWcuYnJvd3NlclwiXG4gIH0sXG4gIFwicmVhY3QtbmF0aXZlXCI6IHtcbiAgICBcIi4vZGlzdC1lcy9ydW50aW1lQ29uZmlnXCI6IFwiLi9kaXN0LWVzL3J1bnRpbWVDb25maWcubmF0aXZlXCJcbiAgfSxcbiAgXCJob21lcGFnZVwiOiBcImh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLXNkay1qcy12My90cmVlL21haW4vY2xpZW50cy9jbGllbnQtc3NvXCIsXG4gIFwicmVwb3NpdG9yeVwiOiB7XG4gICAgXCJ0eXBlXCI6IFwiZ2l0XCIsXG4gICAgXCJ1cmxcIjogXCJodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1zZGstanMtdjMuZ2l0XCIsXG4gICAgXCJkaXJlY3RvcnlcIjogXCJjbGllbnRzL2NsaWVudC1zc29cIlxuICB9XG59XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgdXRpbEVuZHBvaW50cyA9IHJlcXVpcmUoJ0BzbWl0aHkvdXRpbC1lbmRwb2ludHMnKTtcbnZhciB1cmxQYXJzZXIgPSByZXF1aXJlKCdAc21pdGh5L3VybC1wYXJzZXInKTtcblxuY29uc3QgaXNWaXJ0dWFsSG9zdGFibGVTM0J1Y2tldCA9ICh2YWx1ZSwgYWxsb3dTdWJEb21haW5zID0gZmFsc2UpID0+IHtcbiAgICBpZiAoYWxsb3dTdWJEb21haW5zKSB7XG4gICAgICAgIGZvciAoY29uc3QgbGFiZWwgb2YgdmFsdWUuc3BsaXQoXCIuXCIpKSB7XG4gICAgICAgICAgICBpZiAoIWlzVmlydHVhbEhvc3RhYmxlUzNCdWNrZXQobGFiZWwpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAoIXV0aWxFbmRwb2ludHMuaXNWYWxpZEhvc3RMYWJlbCh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAodmFsdWUubGVuZ3RoIDwgMyB8fCB2YWx1ZS5sZW5ndGggPiA2Mykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmICh2YWx1ZSAhPT0gdmFsdWUudG9Mb3dlckNhc2UoKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmICh1dGlsRW5kcG9pbnRzLmlzSXBBZGRyZXNzKHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xufTtcblxuY29uc3QgQVJOX0RFTElNSVRFUiA9IFwiOlwiO1xuY29uc3QgUkVTT1VSQ0VfREVMSU1JVEVSID0gXCIvXCI7XG5jb25zdCBwYXJzZUFybiA9ICh2YWx1ZSkgPT4ge1xuICAgIGNvbnN0IHNlZ21lbnRzID0gdmFsdWUuc3BsaXQoQVJOX0RFTElNSVRFUik7XG4gICAgaWYgKHNlZ21lbnRzLmxlbmd0aCA8IDYpXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIGNvbnN0IFthcm4sIHBhcnRpdGlvbiwgc2VydmljZSwgcmVnaW9uLCBhY2NvdW50SWQsIC4uLnJlc291cmNlUGF0aF0gPSBzZWdtZW50cztcbiAgICBpZiAoYXJuICE9PSBcImFyblwiIHx8IHBhcnRpdGlvbiA9PT0gXCJcIiB8fCBzZXJ2aWNlID09PSBcIlwiIHx8IHJlc291cmNlUGF0aC5qb2luKEFSTl9ERUxJTUlURVIpID09PSBcIlwiKVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICBjb25zdCByZXNvdXJjZUlkID0gcmVzb3VyY2VQYXRoLm1hcCgocmVzb3VyY2UpID0+IHJlc291cmNlLnNwbGl0KFJFU09VUkNFX0RFTElNSVRFUikpLmZsYXQoKTtcbiAgICByZXR1cm4ge1xuICAgICAgICBwYXJ0aXRpb24sXG4gICAgICAgIHNlcnZpY2UsXG4gICAgICAgIHJlZ2lvbixcbiAgICAgICAgYWNjb3VudElkLFxuICAgICAgICByZXNvdXJjZUlkLFxuICAgIH07XG59O1xuXG52YXIgcGFydGl0aW9ucyA9IFtcblx0e1xuXHRcdGlkOiBcImF3c1wiLFxuXHRcdG91dHB1dHM6IHtcblx0XHRcdGRuc1N1ZmZpeDogXCJhbWF6b25hd3MuY29tXCIsXG5cdFx0XHRkdWFsU3RhY2tEbnNTdWZmaXg6IFwiYXBpLmF3c1wiLFxuXHRcdFx0aW1wbGljaXRHbG9iYWxSZWdpb246IFwidXMtZWFzdC0xXCIsXG5cdFx0XHRuYW1lOiBcImF3c1wiLFxuXHRcdFx0c3VwcG9ydHNEdWFsU3RhY2s6IHRydWUsXG5cdFx0XHRzdXBwb3J0c0ZJUFM6IHRydWVcblx0XHR9LFxuXHRcdHJlZ2lvblJlZ2V4OiBcIl4odXN8ZXV8YXB8c2F8Y2F8bWV8YWZ8aWx8bXgpXFxcXC1cXFxcdytcXFxcLVxcXFxkKyRcIixcblx0XHRyZWdpb25zOiB7XG5cdFx0XHRcImFmLXNvdXRoLTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBZnJpY2EgKENhcGUgVG93bilcIlxuXHRcdFx0fSxcblx0XHRcdFwiYXAtZWFzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChIb25nIEtvbmcpXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLWVhc3QtMlwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFzaWEgUGFjaWZpYyAoVGFpcGVpKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJhcC1ub3J0aGVhc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFzaWEgUGFjaWZpYyAoVG9reW8pXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLW5vcnRoZWFzdC0yXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChTZW91bClcIlxuXHRcdFx0fSxcblx0XHRcdFwiYXAtbm9ydGhlYXN0LTNcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBc2lhIFBhY2lmaWMgKE9zYWthKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJhcC1zb3V0aC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChNdW1iYWkpXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLXNvdXRoLTJcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBc2lhIFBhY2lmaWMgKEh5ZGVyYWJhZClcIlxuXHRcdFx0fSxcblx0XHRcdFwiYXAtc291dGhlYXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBc2lhIFBhY2lmaWMgKFNpbmdhcG9yZSlcIlxuXHRcdFx0fSxcblx0XHRcdFwiYXAtc291dGhlYXN0LTJcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBc2lhIFBhY2lmaWMgKFN5ZG5leSlcIlxuXHRcdFx0fSxcblx0XHRcdFwiYXAtc291dGhlYXN0LTNcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBc2lhIFBhY2lmaWMgKEpha2FydGEpXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLXNvdXRoZWFzdC00XCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChNZWxib3VybmUpXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLXNvdXRoZWFzdC01XCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChNYWxheXNpYSlcIlxuXHRcdFx0fSxcblx0XHRcdFwiYXAtc291dGhlYXN0LTZcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBc2lhIFBhY2lmaWMgKE5ldyBaZWFsYW5kKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJhcC1zb3V0aGVhc3QtN1wiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFzaWEgUGFjaWZpYyAoVGhhaWxhbmQpXCJcblx0XHRcdH0sXG5cdFx0XHRcImF3cy1nbG9iYWxcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJhd3MgZ2xvYmFsIHJlZ2lvblwiXG5cdFx0XHR9LFxuXHRcdFx0XCJjYS1jZW50cmFsLTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJDYW5hZGEgKENlbnRyYWwpXCJcblx0XHRcdH0sXG5cdFx0XHRcImNhLXdlc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkNhbmFkYSBXZXN0IChDYWxnYXJ5KVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJldS1jZW50cmFsLTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJFdXJvcGUgKEZyYW5rZnVydClcIlxuXHRcdFx0fSxcblx0XHRcdFwiZXUtY2VudHJhbC0yXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiRXVyb3BlIChadXJpY2gpXCJcblx0XHRcdH0sXG5cdFx0XHRcImV1LW5vcnRoLTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJFdXJvcGUgKFN0b2NraG9sbSlcIlxuXHRcdFx0fSxcblx0XHRcdFwiZXUtc291dGgtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkV1cm9wZSAoTWlsYW4pXCJcblx0XHRcdH0sXG5cdFx0XHRcImV1LXNvdXRoLTJcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJFdXJvcGUgKFNwYWluKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJldS13ZXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJFdXJvcGUgKElyZWxhbmQpXCJcblx0XHRcdH0sXG5cdFx0XHRcImV1LXdlc3QtMlwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkV1cm9wZSAoTG9uZG9uKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJldS13ZXN0LTNcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJFdXJvcGUgKFBhcmlzKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJpbC1jZW50cmFsLTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJJc3JhZWwgKFRlbCBBdml2KVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJtZS1jZW50cmFsLTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJNaWRkbGUgRWFzdCAoVUFFKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJtZS1zb3V0aC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiTWlkZGxlIEVhc3QgKEJhaHJhaW4pXCJcblx0XHRcdH0sXG5cdFx0XHRcIm14LWNlbnRyYWwtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIk1leGljbyAoQ2VudHJhbClcIlxuXHRcdFx0fSxcblx0XHRcdFwic2EtZWFzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiU291dGggQW1lcmljYSAoU2FvIFBhdWxvKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJ1cy1lYXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJVUyBFYXN0IChOLiBWaXJnaW5pYSlcIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtZWFzdC0yXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiVVMgRWFzdCAoT2hpbylcIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtd2VzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiVVMgV2VzdCAoTi4gQ2FsaWZvcm5pYSlcIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtd2VzdC0yXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiVVMgV2VzdCAoT3JlZ29uKVwiXG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXHR7XG5cdFx0aWQ6IFwiYXdzLWNuXCIsXG5cdFx0b3V0cHV0czoge1xuXHRcdFx0ZG5zU3VmZml4OiBcImFtYXpvbmF3cy5jb20uY25cIixcblx0XHRcdGR1YWxTdGFja0Ruc1N1ZmZpeDogXCJhcGkuYW1hem9ud2Vic2VydmljZXMuY29tLmNuXCIsXG5cdFx0XHRpbXBsaWNpdEdsb2JhbFJlZ2lvbjogXCJjbi1ub3J0aHdlc3QtMVwiLFxuXHRcdFx0bmFtZTogXCJhd3MtY25cIixcblx0XHRcdHN1cHBvcnRzRHVhbFN0YWNrOiB0cnVlLFxuXHRcdFx0c3VwcG9ydHNGSVBTOiB0cnVlXG5cdFx0fSxcblx0XHRyZWdpb25SZWdleDogXCJeY25cXFxcLVxcXFx3K1xcXFwtXFxcXGQrJFwiLFxuXHRcdHJlZ2lvbnM6IHtcblx0XHRcdFwiYXdzLWNuLWdsb2JhbFwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcImF3cy1jbiBnbG9iYWwgcmVnaW9uXCJcblx0XHRcdH0sXG5cdFx0XHRcImNuLW5vcnRoLTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJDaGluYSAoQmVpamluZylcIlxuXHRcdFx0fSxcblx0XHRcdFwiY24tbm9ydGh3ZXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJDaGluYSAoTmluZ3hpYSlcIlxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0e1xuXHRcdGlkOiBcImF3cy1ldXNjXCIsXG5cdFx0b3V0cHV0czoge1xuXHRcdFx0ZG5zU3VmZml4OiBcImFtYXpvbmF3cy5ldVwiLFxuXHRcdFx0ZHVhbFN0YWNrRG5zU3VmZml4OiBcImFwaS5hbWF6b253ZWJzZXJ2aWNlcy5ldVwiLFxuXHRcdFx0aW1wbGljaXRHbG9iYWxSZWdpb246IFwiZXVzYy1kZS1lYXN0LTFcIixcblx0XHRcdG5hbWU6IFwiYXdzLWV1c2NcIixcblx0XHRcdHN1cHBvcnRzRHVhbFN0YWNrOiB0cnVlLFxuXHRcdFx0c3VwcG9ydHNGSVBTOiB0cnVlXG5cdFx0fSxcblx0XHRyZWdpb25SZWdleDogXCJeZXVzY1xcXFwtKGRlKVxcXFwtXFxcXHcrXFxcXC1cXFxcZCskXCIsXG5cdFx0cmVnaW9uczoge1xuXHRcdFx0XCJldXNjLWRlLWVhc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFXUyBFdXJvcGVhbiBTb3ZlcmVpZ24gQ2xvdWQgKEdlcm1hbnkpXCJcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdHtcblx0XHRpZDogXCJhd3MtaXNvXCIsXG5cdFx0b3V0cHV0czoge1xuXHRcdFx0ZG5zU3VmZml4OiBcImMycy5pYy5nb3ZcIixcblx0XHRcdGR1YWxTdGFja0Ruc1N1ZmZpeDogXCJhcGkuYXdzLmljLmdvdlwiLFxuXHRcdFx0aW1wbGljaXRHbG9iYWxSZWdpb246IFwidXMtaXNvLWVhc3QtMVwiLFxuXHRcdFx0bmFtZTogXCJhd3MtaXNvXCIsXG5cdFx0XHRzdXBwb3J0c0R1YWxTdGFjazogdHJ1ZSxcblx0XHRcdHN1cHBvcnRzRklQUzogdHJ1ZVxuXHRcdH0sXG5cdFx0cmVnaW9uUmVnZXg6IFwiXnVzXFxcXC1pc29cXFxcLVxcXFx3K1xcXFwtXFxcXGQrJFwiLFxuXHRcdHJlZ2lvbnM6IHtcblx0XHRcdFwiYXdzLWlzby1nbG9iYWxcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJhd3MtaXNvIGdsb2JhbCByZWdpb25cIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtaXNvLWVhc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIlVTIElTTyBFYXN0XCJcblx0XHRcdH0sXG5cdFx0XHRcInVzLWlzby13ZXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJVUyBJU08gV0VTVFwiXG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXHR7XG5cdFx0aWQ6IFwiYXdzLWlzby1iXCIsXG5cdFx0b3V0cHV0czoge1xuXHRcdFx0ZG5zU3VmZml4OiBcInNjMnMuc2dvdi5nb3ZcIixcblx0XHRcdGR1YWxTdGFja0Ruc1N1ZmZpeDogXCJhcGkuYXdzLnNjbG91ZFwiLFxuXHRcdFx0aW1wbGljaXRHbG9iYWxSZWdpb246IFwidXMtaXNvYi1lYXN0LTFcIixcblx0XHRcdG5hbWU6IFwiYXdzLWlzby1iXCIsXG5cdFx0XHRzdXBwb3J0c0R1YWxTdGFjazogdHJ1ZSxcblx0XHRcdHN1cHBvcnRzRklQUzogdHJ1ZVxuXHRcdH0sXG5cdFx0cmVnaW9uUmVnZXg6IFwiXnVzXFxcXC1pc29iXFxcXC1cXFxcdytcXFxcLVxcXFxkKyRcIixcblx0XHRyZWdpb25zOiB7XG5cdFx0XHRcImF3cy1pc28tYi1nbG9iYWxcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJhd3MtaXNvLWIgZ2xvYmFsIHJlZ2lvblwiXG5cdFx0XHR9LFxuXHRcdFx0XCJ1cy1pc29iLWVhc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIlVTIElTT0IgRWFzdCAoT2hpbylcIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtaXNvYi13ZXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJVUyBJU09CIFdlc3RcIlxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0e1xuXHRcdGlkOiBcImF3cy1pc28tZVwiLFxuXHRcdG91dHB1dHM6IHtcblx0XHRcdGRuc1N1ZmZpeDogXCJjbG91ZC5hZGMtZS51a1wiLFxuXHRcdFx0ZHVhbFN0YWNrRG5zU3VmZml4OiBcImFwaS5jbG91ZC1hd3MuYWRjLWUudWtcIixcblx0XHRcdGltcGxpY2l0R2xvYmFsUmVnaW9uOiBcImV1LWlzb2Utd2VzdC0xXCIsXG5cdFx0XHRuYW1lOiBcImF3cy1pc28tZVwiLFxuXHRcdFx0c3VwcG9ydHNEdWFsU3RhY2s6IHRydWUsXG5cdFx0XHRzdXBwb3J0c0ZJUFM6IHRydWVcblx0XHR9LFxuXHRcdHJlZ2lvblJlZ2V4OiBcIl5ldVxcXFwtaXNvZVxcXFwtXFxcXHcrXFxcXC1cXFxcZCskXCIsXG5cdFx0cmVnaW9uczoge1xuXHRcdFx0XCJhd3MtaXNvLWUtZ2xvYmFsXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiYXdzLWlzby1lIGdsb2JhbCByZWdpb25cIlxuXHRcdFx0fSxcblx0XHRcdFwiZXUtaXNvZS13ZXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJFVSBJU09FIFdlc3RcIlxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0e1xuXHRcdGlkOiBcImF3cy1pc28tZlwiLFxuXHRcdG91dHB1dHM6IHtcblx0XHRcdGRuc1N1ZmZpeDogXCJjc3AuaGNpLmljLmdvdlwiLFxuXHRcdFx0ZHVhbFN0YWNrRG5zU3VmZml4OiBcImFwaS5hd3MuaGNpLmljLmdvdlwiLFxuXHRcdFx0aW1wbGljaXRHbG9iYWxSZWdpb246IFwidXMtaXNvZi1zb3V0aC0xXCIsXG5cdFx0XHRuYW1lOiBcImF3cy1pc28tZlwiLFxuXHRcdFx0c3VwcG9ydHNEdWFsU3RhY2s6IHRydWUsXG5cdFx0XHRzdXBwb3J0c0ZJUFM6IHRydWVcblx0XHR9LFxuXHRcdHJlZ2lvblJlZ2V4OiBcIl51c1xcXFwtaXNvZlxcXFwtXFxcXHcrXFxcXC1cXFxcZCskXCIsXG5cdFx0cmVnaW9uczoge1xuXHRcdFx0XCJhd3MtaXNvLWYtZ2xvYmFsXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiYXdzLWlzby1mIGdsb2JhbCByZWdpb25cIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtaXNvZi1lYXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJVUyBJU09GIEVBU1RcIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtaXNvZi1zb3V0aC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiVVMgSVNPRiBTT1VUSFwiXG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXHR7XG5cdFx0aWQ6IFwiYXdzLXVzLWdvdlwiLFxuXHRcdG91dHB1dHM6IHtcblx0XHRcdGRuc1N1ZmZpeDogXCJhbWF6b25hd3MuY29tXCIsXG5cdFx0XHRkdWFsU3RhY2tEbnNTdWZmaXg6IFwiYXBpLmF3c1wiLFxuXHRcdFx0aW1wbGljaXRHbG9iYWxSZWdpb246IFwidXMtZ292LXdlc3QtMVwiLFxuXHRcdFx0bmFtZTogXCJhd3MtdXMtZ292XCIsXG5cdFx0XHRzdXBwb3J0c0R1YWxTdGFjazogdHJ1ZSxcblx0XHRcdHN1cHBvcnRzRklQUzogdHJ1ZVxuXHRcdH0sXG5cdFx0cmVnaW9uUmVnZXg6IFwiXnVzXFxcXC1nb3ZcXFxcLVxcXFx3K1xcXFwtXFxcXGQrJFwiLFxuXHRcdHJlZ2lvbnM6IHtcblx0XHRcdFwiYXdzLXVzLWdvdi1nbG9iYWxcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJhd3MtdXMtZ292IGdsb2JhbCByZWdpb25cIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtZ292LWVhc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFXUyBHb3ZDbG91ZCAoVVMtRWFzdClcIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtZ292LXdlc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFXUyBHb3ZDbG91ZCAoVVMtV2VzdClcIlxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXTtcbnZhciB2ZXJzaW9uID0gXCIxLjFcIjtcbnZhciBwYXJ0aXRpb25zSW5mbyA9IHtcblx0cGFydGl0aW9uczogcGFydGl0aW9ucyxcblx0dmVyc2lvbjogdmVyc2lvblxufTtcblxubGV0IHNlbGVjdGVkUGFydGl0aW9uc0luZm8gPSBwYXJ0aXRpb25zSW5mbztcbmxldCBzZWxlY3RlZFVzZXJBZ2VudFByZWZpeCA9IFwiXCI7XG5jb25zdCBwYXJ0aXRpb24gPSAodmFsdWUpID0+IHtcbiAgICBjb25zdCB7IHBhcnRpdGlvbnMgfSA9IHNlbGVjdGVkUGFydGl0aW9uc0luZm87XG4gICAgZm9yIChjb25zdCBwYXJ0aXRpb24gb2YgcGFydGl0aW9ucykge1xuICAgICAgICBjb25zdCB7IHJlZ2lvbnMsIG91dHB1dHMgfSA9IHBhcnRpdGlvbjtcbiAgICAgICAgZm9yIChjb25zdCBbcmVnaW9uLCByZWdpb25EYXRhXSBvZiBPYmplY3QuZW50cmllcyhyZWdpb25zKSkge1xuICAgICAgICAgICAgaWYgKHJlZ2lvbiA9PT0gdmFsdWUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAuLi5vdXRwdXRzLFxuICAgICAgICAgICAgICAgICAgICAuLi5yZWdpb25EYXRhLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgZm9yIChjb25zdCBwYXJ0aXRpb24gb2YgcGFydGl0aW9ucykge1xuICAgICAgICBjb25zdCB7IHJlZ2lvblJlZ2V4LCBvdXRwdXRzIH0gPSBwYXJ0aXRpb247XG4gICAgICAgIGlmIChuZXcgUmVnRXhwKHJlZ2lvblJlZ2V4KS50ZXN0KHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5vdXRwdXRzLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBERUZBVUxUX1BBUlRJVElPTiA9IHBhcnRpdGlvbnMuZmluZCgocGFydGl0aW9uKSA9PiBwYXJ0aXRpb24uaWQgPT09IFwiYXdzXCIpO1xuICAgIGlmICghREVGQVVMVF9QQVJUSVRJT04pIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiUHJvdmlkZWQgcmVnaW9uIHdhcyBub3QgZm91bmQgaW4gdGhlIHBhcnRpdGlvbiBhcnJheSBvciByZWdleCxcIiArXG4gICAgICAgICAgICBcIiBhbmQgZGVmYXVsdCBwYXJ0aXRpb24gd2l0aCBpZCAnYXdzJyBkb2Vzbid0IGV4aXN0LlwiKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgLi4uREVGQVVMVF9QQVJUSVRJT04ub3V0cHV0cyxcbiAgICB9O1xufTtcbmNvbnN0IHNldFBhcnRpdGlvbkluZm8gPSAocGFydGl0aW9uc0luZm8sIHVzZXJBZ2VudFByZWZpeCA9IFwiXCIpID0+IHtcbiAgICBzZWxlY3RlZFBhcnRpdGlvbnNJbmZvID0gcGFydGl0aW9uc0luZm87XG4gICAgc2VsZWN0ZWRVc2VyQWdlbnRQcmVmaXggPSB1c2VyQWdlbnRQcmVmaXg7XG59O1xuY29uc3QgdXNlRGVmYXVsdFBhcnRpdGlvbkluZm8gPSAoKSA9PiB7XG4gICAgc2V0UGFydGl0aW9uSW5mbyhwYXJ0aXRpb25zSW5mbywgXCJcIik7XG59O1xuY29uc3QgZ2V0VXNlckFnZW50UHJlZml4ID0gKCkgPT4gc2VsZWN0ZWRVc2VyQWdlbnRQcmVmaXg7XG5cbmNvbnN0IGF3c0VuZHBvaW50RnVuY3Rpb25zID0ge1xuICAgIGlzVmlydHVhbEhvc3RhYmxlUzNCdWNrZXQ6IGlzVmlydHVhbEhvc3RhYmxlUzNCdWNrZXQsXG4gICAgcGFyc2VBcm46IHBhcnNlQXJuLFxuICAgIHBhcnRpdGlvbjogcGFydGl0aW9uLFxufTtcbnV0aWxFbmRwb2ludHMuY3VzdG9tRW5kcG9pbnRGdW5jdGlvbnMuYXdzID0gYXdzRW5kcG9pbnRGdW5jdGlvbnM7XG5cbmNvbnN0IHJlc29sdmVEZWZhdWx0QXdzUmVnaW9uYWxFbmRwb2ludHNDb25maWcgPSAoaW5wdXQpID0+IHtcbiAgICBpZiAodHlwZW9mIGlucHV0LmVuZHBvaW50UHJvdmlkZXIgIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJAYXdzLXNkay91dGlsLWVuZHBvaW50IC0gZW5kcG9pbnRQcm92aWRlciBhbmQgZW5kcG9pbnQgbWlzc2luZyBpbiBjb25maWcgZm9yIHRoaXMgY2xpZW50LlwiKTtcbiAgICB9XG4gICAgY29uc3QgeyBlbmRwb2ludCB9ID0gaW5wdXQ7XG4gICAgaWYgKGVuZHBvaW50ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaW5wdXQuZW5kcG9pbnQgPSBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gdG9FbmRwb2ludFYxKGlucHV0LmVuZHBvaW50UHJvdmlkZXIoe1xuICAgICAgICAgICAgICAgIFJlZ2lvbjogdHlwZW9mIGlucHV0LnJlZ2lvbiA9PT0gXCJmdW5jdGlvblwiID8gYXdhaXQgaW5wdXQucmVnaW9uKCkgOiBpbnB1dC5yZWdpb24sXG4gICAgICAgICAgICAgICAgVXNlRHVhbFN0YWNrOiB0eXBlb2YgaW5wdXQudXNlRHVhbHN0YWNrRW5kcG9pbnQgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICA/IGF3YWl0IGlucHV0LnVzZUR1YWxzdGFja0VuZHBvaW50KClcbiAgICAgICAgICAgICAgICAgICAgOiBpbnB1dC51c2VEdWFsc3RhY2tFbmRwb2ludCxcbiAgICAgICAgICAgICAgICBVc2VGSVBTOiB0eXBlb2YgaW5wdXQudXNlRmlwc0VuZHBvaW50ID09PSBcImZ1bmN0aW9uXCIgPyBhd2FpdCBpbnB1dC51c2VGaXBzRW5kcG9pbnQoKSA6IGlucHV0LnVzZUZpcHNFbmRwb2ludCxcbiAgICAgICAgICAgICAgICBFbmRwb2ludDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfSwgeyBsb2dnZXI6IGlucHV0LmxvZ2dlciB9KSk7XG4gICAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiBpbnB1dDtcbn07XG5jb25zdCB0b0VuZHBvaW50VjEgPSAoZW5kcG9pbnQpID0+IHVybFBhcnNlci5wYXJzZVVybChlbmRwb2ludC51cmwpO1xuXG5leHBvcnRzLkVuZHBvaW50RXJyb3IgPSB1dGlsRW5kcG9pbnRzLkVuZHBvaW50RXJyb3I7XG5leHBvcnRzLmlzSXBBZGRyZXNzID0gdXRpbEVuZHBvaW50cy5pc0lwQWRkcmVzcztcbmV4cG9ydHMucmVzb2x2ZUVuZHBvaW50ID0gdXRpbEVuZHBvaW50cy5yZXNvbHZlRW5kcG9pbnQ7XG5leHBvcnRzLmF3c0VuZHBvaW50RnVuY3Rpb25zID0gYXdzRW5kcG9pbnRGdW5jdGlvbnM7XG5leHBvcnRzLmdldFVzZXJBZ2VudFByZWZpeCA9IGdldFVzZXJBZ2VudFByZWZpeDtcbmV4cG9ydHMucGFydGl0aW9uID0gcGFydGl0aW9uO1xuZXhwb3J0cy5yZXNvbHZlRGVmYXVsdEF3c1JlZ2lvbmFsRW5kcG9pbnRzQ29uZmlnID0gcmVzb2x2ZURlZmF1bHRBd3NSZWdpb25hbEVuZHBvaW50c0NvbmZpZztcbmV4cG9ydHMuc2V0UGFydGl0aW9uSW5mbyA9IHNldFBhcnRpdGlvbkluZm87XG5leHBvcnRzLnRvRW5kcG9pbnRWMSA9IHRvRW5kcG9pbnRWMTtcbmV4cG9ydHMudXNlRGVmYXVsdFBhcnRpdGlvbkluZm8gPSB1c2VEZWZhdWx0UGFydGl0aW9uSW5mbztcbiIsICJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMucnVsZVNldCA9IHZvaWQgMDtcbmNvbnN0IHUgPSBcInJlcXVpcmVkXCIsIHYgPSBcImZuXCIsIHcgPSBcImFyZ3ZcIiwgeCA9IFwicmVmXCI7XG5jb25zdCBhID0gdHJ1ZSwgYiA9IFwiaXNTZXRcIiwgYyA9IFwiYm9vbGVhbkVxdWFsc1wiLCBkID0gXCJlcnJvclwiLCBlID0gXCJlbmRwb2ludFwiLCBmID0gXCJ0cmVlXCIsIGcgPSBcIlBhcnRpdGlvblJlc3VsdFwiLCBoID0gXCJnZXRBdHRyXCIsIGkgPSB7IFt1XTogZmFsc2UsIFwidHlwZVwiOiBcInN0cmluZ1wiIH0sIGogPSB7IFt1XTogdHJ1ZSwgXCJkZWZhdWx0XCI6IGZhbHNlLCBcInR5cGVcIjogXCJib29sZWFuXCIgfSwgayA9IHsgW3hdOiBcIkVuZHBvaW50XCIgfSwgbCA9IHsgW3ZdOiBjLCBbd106IFt7IFt4XTogXCJVc2VGSVBTXCIgfSwgdHJ1ZV0gfSwgbSA9IHsgW3ZdOiBjLCBbd106IFt7IFt4XTogXCJVc2VEdWFsU3RhY2tcIiB9LCB0cnVlXSB9LCBuID0ge30sIG8gPSB7IFt2XTogaCwgW3ddOiBbeyBbeF06IGcgfSwgXCJzdXBwb3J0c0ZJUFNcIl0gfSwgcCA9IHsgW3hdOiBnIH0sIHEgPSB7IFt2XTogYywgW3ddOiBbdHJ1ZSwgeyBbdl06IGgsIFt3XTogW3AsIFwic3VwcG9ydHNEdWFsU3RhY2tcIl0gfV0gfSwgciA9IFtsXSwgcyA9IFttXSwgdCA9IFt7IFt4XTogXCJSZWdpb25cIiB9XTtcbmNvbnN0IF9kYXRhID0geyB2ZXJzaW9uOiBcIjEuMFwiLCBwYXJhbWV0ZXJzOiB7IFJlZ2lvbjogaSwgVXNlRHVhbFN0YWNrOiBqLCBVc2VGSVBTOiBqLCBFbmRwb2ludDogaSB9LCBydWxlczogW3sgY29uZGl0aW9uczogW3sgW3ZdOiBiLCBbd106IFtrXSB9XSwgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IHIsIGVycm9yOiBcIkludmFsaWQgQ29uZmlndXJhdGlvbjogRklQUyBhbmQgY3VzdG9tIGVuZHBvaW50IGFyZSBub3Qgc3VwcG9ydGVkXCIsIHR5cGU6IGQgfSwgeyBjb25kaXRpb25zOiBzLCBlcnJvcjogXCJJbnZhbGlkIENvbmZpZ3VyYXRpb246IER1YWxzdGFjayBhbmQgY3VzdG9tIGVuZHBvaW50IGFyZSBub3Qgc3VwcG9ydGVkXCIsIHR5cGU6IGQgfSwgeyBlbmRwb2ludDogeyB1cmw6IGssIHByb3BlcnRpZXM6IG4sIGhlYWRlcnM6IG4gfSwgdHlwZTogZSB9XSwgdHlwZTogZiB9LCB7IGNvbmRpdGlvbnM6IFt7IFt2XTogYiwgW3ddOiB0IH1dLCBydWxlczogW3sgY29uZGl0aW9uczogW3sgW3ZdOiBcImF3cy5wYXJ0aXRpb25cIiwgW3ddOiB0LCBhc3NpZ246IGcgfV0sIHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbbCwgbV0sIHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbeyBbdl06IGMsIFt3XTogW2EsIG9dIH0sIHFdLCBydWxlczogW3sgZW5kcG9pbnQ6IHsgdXJsOiBcImh0dHBzOi8vcG9ydGFsLnNzby1maXBzLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZHVhbFN0YWNrRG5zU3VmZml4fVwiLCBwcm9wZXJ0aWVzOiBuLCBoZWFkZXJzOiBuIH0sIHR5cGU6IGUgfV0sIHR5cGU6IGYgfSwgeyBlcnJvcjogXCJGSVBTIGFuZCBEdWFsU3RhY2sgYXJlIGVuYWJsZWQsIGJ1dCB0aGlzIHBhcnRpdGlvbiBkb2VzIG5vdCBzdXBwb3J0IG9uZSBvciBib3RoXCIsIHR5cGU6IGQgfV0sIHR5cGU6IGYgfSwgeyBjb25kaXRpb25zOiByLCBydWxlczogW3sgY29uZGl0aW9uczogW3sgW3ZdOiBjLCBbd106IFtvLCBhXSB9XSwgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IFt7IFt2XTogXCJzdHJpbmdFcXVhbHNcIiwgW3ddOiBbeyBbdl06IGgsIFt3XTogW3AsIFwibmFtZVwiXSB9LCBcImF3cy11cy1nb3ZcIl0gfV0sIGVuZHBvaW50OiB7IHVybDogXCJodHRwczovL3BvcnRhbC5zc28ue1JlZ2lvbn0uYW1hem9uYXdzLmNvbVwiLCBwcm9wZXJ0aWVzOiBuLCBoZWFkZXJzOiBuIH0sIHR5cGU6IGUgfSwgeyBlbmRwb2ludDogeyB1cmw6IFwiaHR0cHM6Ly9wb3J0YWwuc3NvLWZpcHMue1JlZ2lvbn0ue1BhcnRpdGlvblJlc3VsdCNkbnNTdWZmaXh9XCIsIHByb3BlcnRpZXM6IG4sIGhlYWRlcnM6IG4gfSwgdHlwZTogZSB9XSwgdHlwZTogZiB9LCB7IGVycm9yOiBcIkZJUFMgaXMgZW5hYmxlZCBidXQgdGhpcyBwYXJ0aXRpb24gZG9lcyBub3Qgc3VwcG9ydCBGSVBTXCIsIHR5cGU6IGQgfV0sIHR5cGU6IGYgfSwgeyBjb25kaXRpb25zOiBzLCBydWxlczogW3sgY29uZGl0aW9uczogW3FdLCBydWxlczogW3sgZW5kcG9pbnQ6IHsgdXJsOiBcImh0dHBzOi8vcG9ydGFsLnNzby57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2R1YWxTdGFja0Ruc1N1ZmZpeH1cIiwgcHJvcGVydGllczogbiwgaGVhZGVyczogbiB9LCB0eXBlOiBlIH1dLCB0eXBlOiBmIH0sIHsgZXJyb3I6IFwiRHVhbFN0YWNrIGlzIGVuYWJsZWQgYnV0IHRoaXMgcGFydGl0aW9uIGRvZXMgbm90IHN1cHBvcnQgRHVhbFN0YWNrXCIsIHR5cGU6IGQgfV0sIHR5cGU6IGYgfSwgeyBlbmRwb2ludDogeyB1cmw6IFwiaHR0cHM6Ly9wb3J0YWwuc3NvLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZG5zU3VmZml4fVwiLCBwcm9wZXJ0aWVzOiBuLCBoZWFkZXJzOiBuIH0sIHR5cGU6IGUgfV0sIHR5cGU6IGYgfV0sIHR5cGU6IGYgfSwgeyBlcnJvcjogXCJJbnZhbGlkIENvbmZpZ3VyYXRpb246IE1pc3NpbmcgUmVnaW9uXCIsIHR5cGU6IGQgfV0gfTtcbmV4cG9ydHMucnVsZVNldCA9IF9kYXRhO1xuIiwgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5kZWZhdWx0RW5kcG9pbnRSZXNvbHZlciA9IHZvaWQgMDtcbmNvbnN0IHV0aWxfZW5kcG9pbnRzXzEgPSByZXF1aXJlKFwiQGF3cy1zZGsvdXRpbC1lbmRwb2ludHNcIik7XG5jb25zdCB1dGlsX2VuZHBvaW50c18yID0gcmVxdWlyZShcIkBzbWl0aHkvdXRpbC1lbmRwb2ludHNcIik7XG5jb25zdCBydWxlc2V0XzEgPSByZXF1aXJlKFwiLi9ydWxlc2V0XCIpO1xuY29uc3QgY2FjaGUgPSBuZXcgdXRpbF9lbmRwb2ludHNfMi5FbmRwb2ludENhY2hlKHtcbiAgICBzaXplOiA1MCxcbiAgICBwYXJhbXM6IFtcIkVuZHBvaW50XCIsIFwiUmVnaW9uXCIsIFwiVXNlRHVhbFN0YWNrXCIsIFwiVXNlRklQU1wiXSxcbn0pO1xuY29uc3QgZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIgPSAoZW5kcG9pbnRQYXJhbXMsIGNvbnRleHQgPSB7fSkgPT4ge1xuICAgIHJldHVybiBjYWNoZS5nZXQoZW5kcG9pbnRQYXJhbXMsICgpID0+ICgwLCB1dGlsX2VuZHBvaW50c18yLnJlc29sdmVFbmRwb2ludCkocnVsZXNldF8xLnJ1bGVTZXQsIHtcbiAgICAgICAgZW5kcG9pbnRQYXJhbXM6IGVuZHBvaW50UGFyYW1zLFxuICAgICAgICBsb2dnZXI6IGNvbnRleHQubG9nZ2VyLFxuICAgIH0pKTtcbn07XG5leHBvcnRzLmRlZmF1bHRFbmRwb2ludFJlc29sdmVyID0gZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXI7XG51dGlsX2VuZHBvaW50c18yLmN1c3RvbUVuZHBvaW50RnVuY3Rpb25zLmF3cyA9IHV0aWxfZW5kcG9pbnRzXzEuYXdzRW5kcG9pbnRGdW5jdGlvbnM7XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlNTT1NlcnZpY2VFeGNlcHRpb24gPSBleHBvcnRzLl9fU2VydmljZUV4Y2VwdGlvbiA9IHZvaWQgMDtcbmNvbnN0IHNtaXRoeV9jbGllbnRfMSA9IHJlcXVpcmUoXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX1NlcnZpY2VFeGNlcHRpb25cIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHNtaXRoeV9jbGllbnRfMS5TZXJ2aWNlRXhjZXB0aW9uOyB9IH0pO1xuY2xhc3MgU1NPU2VydmljZUV4Y2VwdGlvbiBleHRlbmRzIHNtaXRoeV9jbGllbnRfMS5TZXJ2aWNlRXhjZXB0aW9uIHtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgU1NPU2VydmljZUV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn1cbmV4cG9ydHMuU1NPU2VydmljZUV4Y2VwdGlvbiA9IFNTT1NlcnZpY2VFeGNlcHRpb247XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlVuYXV0aG9yaXplZEV4Y2VwdGlvbiA9IGV4cG9ydHMuVG9vTWFueVJlcXVlc3RzRXhjZXB0aW9uID0gZXhwb3J0cy5SZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uID0gZXhwb3J0cy5JbnZhbGlkUmVxdWVzdEV4Y2VwdGlvbiA9IHZvaWQgMDtcbmNvbnN0IFNTT1NlcnZpY2VFeGNlcHRpb25fMSA9IHJlcXVpcmUoXCIuL1NTT1NlcnZpY2VFeGNlcHRpb25cIik7XG5jbGFzcyBJbnZhbGlkUmVxdWVzdEV4Y2VwdGlvbiBleHRlbmRzIFNTT1NlcnZpY2VFeGNlcHRpb25fMS5TU09TZXJ2aWNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJJbnZhbGlkUmVxdWVzdEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkludmFsaWRSZXF1ZXN0RXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEludmFsaWRSZXF1ZXN0RXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgfVxufVxuZXhwb3J0cy5JbnZhbGlkUmVxdWVzdEV4Y2VwdGlvbiA9IEludmFsaWRSZXF1ZXN0RXhjZXB0aW9uO1xuY2xhc3MgUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvbiBleHRlbmRzIFNTT1NlcnZpY2VFeGNlcHRpb25fMS5TU09TZXJ2aWNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgfVxufVxuZXhwb3J0cy5SZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uID0gUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvbjtcbmNsYXNzIFRvb01hbnlSZXF1ZXN0c0V4Y2VwdGlvbiBleHRlbmRzIFNTT1NlcnZpY2VFeGNlcHRpb25fMS5TU09TZXJ2aWNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJUb29NYW55UmVxdWVzdHNFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJUb29NYW55UmVxdWVzdHNFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgVG9vTWFueVJlcXVlc3RzRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgfVxufVxuZXhwb3J0cy5Ub29NYW55UmVxdWVzdHNFeGNlcHRpb24gPSBUb29NYW55UmVxdWVzdHNFeGNlcHRpb247XG5jbGFzcyBVbmF1dGhvcml6ZWRFeGNlcHRpb24gZXh0ZW5kcyBTU09TZXJ2aWNlRXhjZXB0aW9uXzEuU1NPU2VydmljZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiVW5hdXRob3JpemVkRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiVW5hdXRob3JpemVkRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFVuYXV0aG9yaXplZEV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn1cbmV4cG9ydHMuVW5hdXRob3JpemVkRXhjZXB0aW9uID0gVW5hdXRob3JpemVkRXhjZXB0aW9uO1xuIiwgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5Mb2dvdXQkID0gZXhwb3J0cy5MaXN0QWNjb3VudHMkID0gZXhwb3J0cy5MaXN0QWNjb3VudFJvbGVzJCA9IGV4cG9ydHMuR2V0Um9sZUNyZWRlbnRpYWxzJCA9IGV4cG9ydHMuUm9sZUluZm8kID0gZXhwb3J0cy5Sb2xlQ3JlZGVudGlhbHMkID0gZXhwb3J0cy5Mb2dvdXRSZXF1ZXN0JCA9IGV4cG9ydHMuTGlzdEFjY291bnRzUmVzcG9uc2UkID0gZXhwb3J0cy5MaXN0QWNjb3VudHNSZXF1ZXN0JCA9IGV4cG9ydHMuTGlzdEFjY291bnRSb2xlc1Jlc3BvbnNlJCA9IGV4cG9ydHMuTGlzdEFjY291bnRSb2xlc1JlcXVlc3QkID0gZXhwb3J0cy5HZXRSb2xlQ3JlZGVudGlhbHNSZXNwb25zZSQgPSBleHBvcnRzLkdldFJvbGVDcmVkZW50aWFsc1JlcXVlc3QkID0gZXhwb3J0cy5BY2NvdW50SW5mbyQgPSBleHBvcnRzLmVycm9yVHlwZVJlZ2lzdHJpZXMgPSBleHBvcnRzLlVuYXV0aG9yaXplZEV4Y2VwdGlvbiQgPSBleHBvcnRzLlRvb01hbnlSZXF1ZXN0c0V4Y2VwdGlvbiQgPSBleHBvcnRzLlJlc291cmNlTm90Rm91bmRFeGNlcHRpb24kID0gZXhwb3J0cy5JbnZhbGlkUmVxdWVzdEV4Y2VwdGlvbiQgPSBleHBvcnRzLlNTT1NlcnZpY2VFeGNlcHRpb24kID0gdm9pZCAwO1xuY29uc3QgX0FJID0gXCJBY2NvdW50SW5mb1wiO1xuY29uc3QgX0FMVCA9IFwiQWNjb3VudExpc3RUeXBlXCI7XG5jb25zdCBfQVRUID0gXCJBY2Nlc3NUb2tlblR5cGVcIjtcbmNvbnN0IF9HUkMgPSBcIkdldFJvbGVDcmVkZW50aWFsc1wiO1xuY29uc3QgX0dSQ1IgPSBcIkdldFJvbGVDcmVkZW50aWFsc1JlcXVlc3RcIjtcbmNvbnN0IF9HUkNSZSA9IFwiR2V0Um9sZUNyZWRlbnRpYWxzUmVzcG9uc2VcIjtcbmNvbnN0IF9JUkUgPSBcIkludmFsaWRSZXF1ZXN0RXhjZXB0aW9uXCI7XG5jb25zdCBfTCA9IFwiTG9nb3V0XCI7XG5jb25zdCBfTEEgPSBcIkxpc3RBY2NvdW50c1wiO1xuY29uc3QgX0xBUiA9IFwiTGlzdEFjY291bnRzUmVxdWVzdFwiO1xuY29uc3QgX0xBUlIgPSBcIkxpc3RBY2NvdW50Um9sZXNSZXF1ZXN0XCI7XG5jb25zdCBfTEFSUmkgPSBcIkxpc3RBY2NvdW50Um9sZXNSZXNwb25zZVwiO1xuY29uc3QgX0xBUmkgPSBcIkxpc3RBY2NvdW50c1Jlc3BvbnNlXCI7XG5jb25zdCBfTEFSaXMgPSBcIkxpc3RBY2NvdW50Um9sZXNcIjtcbmNvbnN0IF9MUiA9IFwiTG9nb3V0UmVxdWVzdFwiO1xuY29uc3QgX1JDID0gXCJSb2xlQ3JlZGVudGlhbHNcIjtcbmNvbnN0IF9SSSA9IFwiUm9sZUluZm9cIjtcbmNvbnN0IF9STFQgPSBcIlJvbGVMaXN0VHlwZVwiO1xuY29uc3QgX1JORkUgPSBcIlJlc291cmNlTm90Rm91bmRFeGNlcHRpb25cIjtcbmNvbnN0IF9TQUtUID0gXCJTZWNyZXRBY2Nlc3NLZXlUeXBlXCI7XG5jb25zdCBfU1RUID0gXCJTZXNzaW9uVG9rZW5UeXBlXCI7XG5jb25zdCBfVE1SRSA9IFwiVG9vTWFueVJlcXVlc3RzRXhjZXB0aW9uXCI7XG5jb25zdCBfVUUgPSBcIlVuYXV0aG9yaXplZEV4Y2VwdGlvblwiO1xuY29uc3QgX2FJID0gXCJhY2NvdW50SWRcIjtcbmNvbnN0IF9hS0kgPSBcImFjY2Vzc0tleUlkXCI7XG5jb25zdCBfYUwgPSBcImFjY291bnRMaXN0XCI7XG5jb25zdCBfYU4gPSBcImFjY291bnROYW1lXCI7XG5jb25zdCBfYVQgPSBcImFjY2Vzc1Rva2VuXCI7XG5jb25zdCBfYWkgPSBcImFjY291bnRfaWRcIjtcbmNvbnN0IF9jID0gXCJjbGllbnRcIjtcbmNvbnN0IF9lID0gXCJlcnJvclwiO1xuY29uc3QgX2VBID0gXCJlbWFpbEFkZHJlc3NcIjtcbmNvbnN0IF9leCA9IFwiZXhwaXJhdGlvblwiO1xuY29uc3QgX2ggPSBcImh0dHBcIjtcbmNvbnN0IF9oRSA9IFwiaHR0cEVycm9yXCI7XG5jb25zdCBfaEggPSBcImh0dHBIZWFkZXJcIjtcbmNvbnN0IF9oUSA9IFwiaHR0cFF1ZXJ5XCI7XG5jb25zdCBfbSA9IFwibWVzc2FnZVwiO1xuY29uc3QgX21SID0gXCJtYXhSZXN1bHRzXCI7XG5jb25zdCBfbXIgPSBcIm1heF9yZXN1bHRcIjtcbmNvbnN0IF9uVCA9IFwibmV4dFRva2VuXCI7XG5jb25zdCBfbnQgPSBcIm5leHRfdG9rZW5cIjtcbmNvbnN0IF9yQyA9IFwicm9sZUNyZWRlbnRpYWxzXCI7XG5jb25zdCBfckwgPSBcInJvbGVMaXN0XCI7XG5jb25zdCBfck4gPSBcInJvbGVOYW1lXCI7XG5jb25zdCBfcm4gPSBcInJvbGVfbmFtZVwiO1xuY29uc3QgX3MgPSBcInNtaXRoeS50cy5zZGsuc3ludGhldGljLmNvbS5hbWF6b25hd3Muc3NvXCI7XG5jb25zdCBfc0FLID0gXCJzZWNyZXRBY2Nlc3NLZXlcIjtcbmNvbnN0IF9zVCA9IFwic2Vzc2lvblRva2VuXCI7XG5jb25zdCBfeGFzYnQgPSBcIngtYW16LXNzb19iZWFyZXJfdG9rZW5cIjtcbmNvbnN0IG4wID0gXCJjb20uYW1hem9uYXdzLnNzb1wiO1xuY29uc3Qgc2NoZW1hXzEgPSByZXF1aXJlKFwiQHNtaXRoeS9jb3JlL3NjaGVtYVwiKTtcbmNvbnN0IGVycm9yc18xID0gcmVxdWlyZShcIi4uL21vZGVscy9lcnJvcnNcIik7XG5jb25zdCBTU09TZXJ2aWNlRXhjZXB0aW9uXzEgPSByZXF1aXJlKFwiLi4vbW9kZWxzL1NTT1NlcnZpY2VFeGNlcHRpb25cIik7XG5jb25zdCBfc19yZWdpc3RyeSA9IHNjaGVtYV8xLlR5cGVSZWdpc3RyeS5mb3IoX3MpO1xuZXhwb3J0cy5TU09TZXJ2aWNlRXhjZXB0aW9uJCA9IFstMywgX3MsIFwiU1NPU2VydmljZUV4Y2VwdGlvblwiLCAwLCBbXSwgW11dO1xuX3NfcmVnaXN0cnkucmVnaXN0ZXJFcnJvcihleHBvcnRzLlNTT1NlcnZpY2VFeGNlcHRpb24kLCBTU09TZXJ2aWNlRXhjZXB0aW9uXzEuU1NPU2VydmljZUV4Y2VwdGlvbik7XG5jb25zdCBuMF9yZWdpc3RyeSA9IHNjaGVtYV8xLlR5cGVSZWdpc3RyeS5mb3IobjApO1xuZXhwb3J0cy5JbnZhbGlkUmVxdWVzdEV4Y2VwdGlvbiQgPSBbLTMsIG4wLCBfSVJFLFxuICAgIHsgW19lXTogX2MsIFtfaEVdOiA0MDAgfSxcbiAgICBbX21dLFxuICAgIFswXVxuXTtcbm4wX3JlZ2lzdHJ5LnJlZ2lzdGVyRXJyb3IoZXhwb3J0cy5JbnZhbGlkUmVxdWVzdEV4Y2VwdGlvbiQsIGVycm9yc18xLkludmFsaWRSZXF1ZXN0RXhjZXB0aW9uKTtcbmV4cG9ydHMuUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvbiQgPSBbLTMsIG4wLCBfUk5GRSxcbiAgICB7IFtfZV06IF9jLCBbX2hFXTogNDA0IH0sXG4gICAgW19tXSxcbiAgICBbMF1cbl07XG5uMF9yZWdpc3RyeS5yZWdpc3RlckVycm9yKGV4cG9ydHMuUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvbiQsIGVycm9yc18xLlJlc291cmNlTm90Rm91bmRFeGNlcHRpb24pO1xuZXhwb3J0cy5Ub29NYW55UmVxdWVzdHNFeGNlcHRpb24kID0gWy0zLCBuMCwgX1RNUkUsXG4gICAgeyBbX2VdOiBfYywgW19oRV06IDQyOSB9LFxuICAgIFtfbV0sXG4gICAgWzBdXG5dO1xubjBfcmVnaXN0cnkucmVnaXN0ZXJFcnJvcihleHBvcnRzLlRvb01hbnlSZXF1ZXN0c0V4Y2VwdGlvbiQsIGVycm9yc18xLlRvb01hbnlSZXF1ZXN0c0V4Y2VwdGlvbik7XG5leHBvcnRzLlVuYXV0aG9yaXplZEV4Y2VwdGlvbiQgPSBbLTMsIG4wLCBfVUUsXG4gICAgeyBbX2VdOiBfYywgW19oRV06IDQwMSB9LFxuICAgIFtfbV0sXG4gICAgWzBdXG5dO1xubjBfcmVnaXN0cnkucmVnaXN0ZXJFcnJvcihleHBvcnRzLlVuYXV0aG9yaXplZEV4Y2VwdGlvbiQsIGVycm9yc18xLlVuYXV0aG9yaXplZEV4Y2VwdGlvbik7XG5leHBvcnRzLmVycm9yVHlwZVJlZ2lzdHJpZXMgPSBbXG4gICAgX3NfcmVnaXN0cnksXG4gICAgbjBfcmVnaXN0cnksXG5dO1xudmFyIEFjY2Vzc1Rva2VuVHlwZSA9IFswLCBuMCwgX0FUVCwgOCwgMF07XG52YXIgU2VjcmV0QWNjZXNzS2V5VHlwZSA9IFswLCBuMCwgX1NBS1QsIDgsIDBdO1xudmFyIFNlc3Npb25Ub2tlblR5cGUgPSBbMCwgbjAsIF9TVFQsIDgsIDBdO1xuZXhwb3J0cy5BY2NvdW50SW5mbyQgPSBbMywgbjAsIF9BSSxcbiAgICAwLFxuICAgIFtfYUksIF9hTiwgX2VBXSxcbiAgICBbMCwgMCwgMF1cbl07XG5leHBvcnRzLkdldFJvbGVDcmVkZW50aWFsc1JlcXVlc3QkID0gWzMsIG4wLCBfR1JDUixcbiAgICAwLFxuICAgIFtfck4sIF9hSSwgX2FUXSxcbiAgICBbWzAsIHsgW19oUV06IF9ybiB9XSwgWzAsIHsgW19oUV06IF9haSB9XSwgWygpID0+IEFjY2Vzc1Rva2VuVHlwZSwgeyBbX2hIXTogX3hhc2J0IH1dXSwgM1xuXTtcbmV4cG9ydHMuR2V0Um9sZUNyZWRlbnRpYWxzUmVzcG9uc2UkID0gWzMsIG4wLCBfR1JDUmUsXG4gICAgMCxcbiAgICBbX3JDXSxcbiAgICBbWygpID0+IGV4cG9ydHMuUm9sZUNyZWRlbnRpYWxzJCwgMF1dXG5dO1xuZXhwb3J0cy5MaXN0QWNjb3VudFJvbGVzUmVxdWVzdCQgPSBbMywgbjAsIF9MQVJSLFxuICAgIDAsXG4gICAgW19hVCwgX2FJLCBfblQsIF9tUl0sXG4gICAgW1soKSA9PiBBY2Nlc3NUb2tlblR5cGUsIHsgW19oSF06IF94YXNidCB9XSwgWzAsIHsgW19oUV06IF9haSB9XSwgWzAsIHsgW19oUV06IF9udCB9XSwgWzEsIHsgW19oUV06IF9tciB9XV0sIDJcbl07XG5leHBvcnRzLkxpc3RBY2NvdW50Um9sZXNSZXNwb25zZSQgPSBbMywgbjAsIF9MQVJSaSxcbiAgICAwLFxuICAgIFtfblQsIF9yTF0sXG4gICAgWzAsICgpID0+IFJvbGVMaXN0VHlwZV1cbl07XG5leHBvcnRzLkxpc3RBY2NvdW50c1JlcXVlc3QkID0gWzMsIG4wLCBfTEFSLFxuICAgIDAsXG4gICAgW19hVCwgX25ULCBfbVJdLFxuICAgIFtbKCkgPT4gQWNjZXNzVG9rZW5UeXBlLCB7IFtfaEhdOiBfeGFzYnQgfV0sIFswLCB7IFtfaFFdOiBfbnQgfV0sIFsxLCB7IFtfaFFdOiBfbXIgfV1dLCAxXG5dO1xuZXhwb3J0cy5MaXN0QWNjb3VudHNSZXNwb25zZSQgPSBbMywgbjAsIF9MQVJpLFxuICAgIDAsXG4gICAgW19uVCwgX2FMXSxcbiAgICBbMCwgKCkgPT4gQWNjb3VudExpc3RUeXBlXVxuXTtcbmV4cG9ydHMuTG9nb3V0UmVxdWVzdCQgPSBbMywgbjAsIF9MUixcbiAgICAwLFxuICAgIFtfYVRdLFxuICAgIFtbKCkgPT4gQWNjZXNzVG9rZW5UeXBlLCB7IFtfaEhdOiBfeGFzYnQgfV1dLCAxXG5dO1xuZXhwb3J0cy5Sb2xlQ3JlZGVudGlhbHMkID0gWzMsIG4wLCBfUkMsXG4gICAgMCxcbiAgICBbX2FLSSwgX3NBSywgX3NULCBfZXhdLFxuICAgIFswLCBbKCkgPT4gU2VjcmV0QWNjZXNzS2V5VHlwZSwgMF0sIFsoKSA9PiBTZXNzaW9uVG9rZW5UeXBlLCAwXSwgMV1cbl07XG5leHBvcnRzLlJvbGVJbmZvJCA9IFszLCBuMCwgX1JJLFxuICAgIDAsXG4gICAgW19yTiwgX2FJXSxcbiAgICBbMCwgMF1cbl07XG52YXIgX19Vbml0ID0gXCJ1bml0XCI7XG52YXIgQWNjb3VudExpc3RUeXBlID0gWzEsIG4wLCBfQUxULFxuICAgIDAsICgpID0+IGV4cG9ydHMuQWNjb3VudEluZm8kXG5dO1xudmFyIFJvbGVMaXN0VHlwZSA9IFsxLCBuMCwgX1JMVCxcbiAgICAwLCAoKSA9PiBleHBvcnRzLlJvbGVJbmZvJFxuXTtcbmV4cG9ydHMuR2V0Um9sZUNyZWRlbnRpYWxzJCA9IFs5LCBuMCwgX0dSQyxcbiAgICB7IFtfaF06IFtcIkdFVFwiLCBcIi9mZWRlcmF0aW9uL2NyZWRlbnRpYWxzXCIsIDIwMF0gfSwgKCkgPT4gZXhwb3J0cy5HZXRSb2xlQ3JlZGVudGlhbHNSZXF1ZXN0JCwgKCkgPT4gZXhwb3J0cy5HZXRSb2xlQ3JlZGVudGlhbHNSZXNwb25zZSRcbl07XG5leHBvcnRzLkxpc3RBY2NvdW50Um9sZXMkID0gWzksIG4wLCBfTEFSaXMsXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIvYXNzaWdubWVudC9yb2xlc1wiLCAyMDBdIH0sICgpID0+IGV4cG9ydHMuTGlzdEFjY291bnRSb2xlc1JlcXVlc3QkLCAoKSA9PiBleHBvcnRzLkxpc3RBY2NvdW50Um9sZXNSZXNwb25zZSRcbl07XG5leHBvcnRzLkxpc3RBY2NvdW50cyQgPSBbOSwgbjAsIF9MQSxcbiAgICB7IFtfaF06IFtcIkdFVFwiLCBcIi9hc3NpZ25tZW50L2FjY291bnRzXCIsIDIwMF0gfSwgKCkgPT4gZXhwb3J0cy5MaXN0QWNjb3VudHNSZXF1ZXN0JCwgKCkgPT4gZXhwb3J0cy5MaXN0QWNjb3VudHNSZXNwb25zZSRcbl07XG5leHBvcnRzLkxvZ291dCQgPSBbOSwgbjAsIF9MLFxuICAgIHsgW19oXTogW1wiUE9TVFwiLCBcIi9sb2dvdXRcIiwgMjAwXSB9LCAoKSA9PiBleHBvcnRzLkxvZ291dFJlcXVlc3QkLCAoKSA9PiBfX1VuaXRcbl07XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmdldFJ1bnRpbWVDb25maWcgPSB2b2lkIDA7XG5jb25zdCBjb3JlXzEgPSByZXF1aXJlKFwiQGF3cy1zZGsvY29yZVwiKTtcbmNvbnN0IHByb3RvY29sc18xID0gcmVxdWlyZShcIkBhd3Mtc2RrL2NvcmUvcHJvdG9jb2xzXCIpO1xuY29uc3QgY29yZV8yID0gcmVxdWlyZShcIkBzbWl0aHkvY29yZVwiKTtcbmNvbnN0IHNtaXRoeV9jbGllbnRfMSA9IHJlcXVpcmUoXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIik7XG5jb25zdCB1cmxfcGFyc2VyXzEgPSByZXF1aXJlKFwiQHNtaXRoeS91cmwtcGFyc2VyXCIpO1xuY29uc3QgdXRpbF9iYXNlNjRfMSA9IHJlcXVpcmUoXCJAc21pdGh5L3V0aWwtYmFzZTY0XCIpO1xuY29uc3QgdXRpbF91dGY4XzEgPSByZXF1aXJlKFwiQHNtaXRoeS91dGlsLXV0ZjhcIik7XG5jb25zdCBodHRwQXV0aFNjaGVtZVByb3ZpZGVyXzEgPSByZXF1aXJlKFwiLi9hdXRoL2h0dHBBdXRoU2NoZW1lUHJvdmlkZXJcIik7XG5jb25zdCBlbmRwb2ludFJlc29sdmVyXzEgPSByZXF1aXJlKFwiLi9lbmRwb2ludC9lbmRwb2ludFJlc29sdmVyXCIpO1xuY29uc3Qgc2NoZW1hc18wXzEgPSByZXF1aXJlKFwiLi9zY2hlbWFzL3NjaGVtYXNfMFwiKTtcbmNvbnN0IGdldFJ1bnRpbWVDb25maWcgPSAoY29uZmlnKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgYXBpVmVyc2lvbjogXCIyMDE5LTA2LTEwXCIsXG4gICAgICAgIGJhc2U2NERlY29kZXI6IGNvbmZpZz8uYmFzZTY0RGVjb2RlciA/PyB1dGlsX2Jhc2U2NF8xLmZyb21CYXNlNjQsXG4gICAgICAgIGJhc2U2NEVuY29kZXI6IGNvbmZpZz8uYmFzZTY0RW5jb2RlciA/PyB1dGlsX2Jhc2U2NF8xLnRvQmFzZTY0LFxuICAgICAgICBkaXNhYmxlSG9zdFByZWZpeDogY29uZmlnPy5kaXNhYmxlSG9zdFByZWZpeCA/PyBmYWxzZSxcbiAgICAgICAgZW5kcG9pbnRQcm92aWRlcjogY29uZmlnPy5lbmRwb2ludFByb3ZpZGVyID8/IGVuZHBvaW50UmVzb2x2ZXJfMS5kZWZhdWx0RW5kcG9pbnRSZXNvbHZlcixcbiAgICAgICAgZXh0ZW5zaW9uczogY29uZmlnPy5leHRlbnNpb25zID8/IFtdLFxuICAgICAgICBodHRwQXV0aFNjaGVtZVByb3ZpZGVyOiBjb25maWc/Lmh0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPz8gaHR0cEF1dGhTY2hlbWVQcm92aWRlcl8xLmRlZmF1bHRTU09IdHRwQXV0aFNjaGVtZVByb3ZpZGVyLFxuICAgICAgICBodHRwQXV0aFNjaGVtZXM6IGNvbmZpZz8uaHR0cEF1dGhTY2hlbWVzID8/IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzY2hlbWVJZDogXCJhd3MuYXV0aCNzaWd2NFwiLFxuICAgICAgICAgICAgICAgIGlkZW50aXR5UHJvdmlkZXI6IChpcGMpID0+IGlwYy5nZXRJZGVudGl0eVByb3ZpZGVyKFwiYXdzLmF1dGgjc2lndjRcIiksXG4gICAgICAgICAgICAgICAgc2lnbmVyOiBuZXcgY29yZV8xLkF3c1Nka1NpZ1Y0U2lnbmVyKCksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHNjaGVtZUlkOiBcInNtaXRoeS5hcGkjbm9BdXRoXCIsXG4gICAgICAgICAgICAgICAgaWRlbnRpdHlQcm92aWRlcjogKGlwYykgPT4gaXBjLmdldElkZW50aXR5UHJvdmlkZXIoXCJzbWl0aHkuYXBpI25vQXV0aFwiKSB8fCAoYXN5bmMgKCkgPT4gKHt9KSksXG4gICAgICAgICAgICAgICAgc2lnbmVyOiBuZXcgY29yZV8yLk5vQXV0aFNpZ25lcigpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgbG9nZ2VyOiBjb25maWc/LmxvZ2dlciA/PyBuZXcgc21pdGh5X2NsaWVudF8xLk5vT3BMb2dnZXIoKSxcbiAgICAgICAgcHJvdG9jb2w6IGNvbmZpZz8ucHJvdG9jb2wgPz8gcHJvdG9jb2xzXzEuQXdzUmVzdEpzb25Qcm90b2NvbCxcbiAgICAgICAgcHJvdG9jb2xTZXR0aW5nczogY29uZmlnPy5wcm90b2NvbFNldHRpbmdzID8/IHtcbiAgICAgICAgICAgIGRlZmF1bHROYW1lc3BhY2U6IFwiY29tLmFtYXpvbmF3cy5zc29cIixcbiAgICAgICAgICAgIGVycm9yVHlwZVJlZ2lzdHJpZXM6IHNjaGVtYXNfMF8xLmVycm9yVHlwZVJlZ2lzdHJpZXMsXG4gICAgICAgICAgICB2ZXJzaW9uOiBcIjIwMTktMDYtMTBcIixcbiAgICAgICAgICAgIHNlcnZpY2VUYXJnZXQ6IFwiU1dCUG9ydGFsU2VydmljZVwiLFxuICAgICAgICB9LFxuICAgICAgICBzZXJ2aWNlSWQ6IGNvbmZpZz8uc2VydmljZUlkID8/IFwiU1NPXCIsXG4gICAgICAgIHVybFBhcnNlcjogY29uZmlnPy51cmxQYXJzZXIgPz8gdXJsX3BhcnNlcl8xLnBhcnNlVXJsLFxuICAgICAgICB1dGY4RGVjb2RlcjogY29uZmlnPy51dGY4RGVjb2RlciA/PyB1dGlsX3V0ZjhfMS5mcm9tVXRmOCxcbiAgICAgICAgdXRmOEVuY29kZXI6IGNvbmZpZz8udXRmOEVuY29kZXIgPz8gdXRpbF91dGY4XzEudG9VdGY4LFxuICAgIH07XG59O1xuZXhwb3J0cy5nZXRSdW50aW1lQ29uZmlnID0gZ2V0UnVudGltZUNvbmZpZztcbiIsICJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuZ2V0UnVudGltZUNvbmZpZyA9IHZvaWQgMDtcbmNvbnN0IHRzbGliXzEgPSByZXF1aXJlKFwidHNsaWJcIik7XG5jb25zdCBwYWNrYWdlX2pzb25fMSA9IHRzbGliXzEuX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuLi9wYWNrYWdlLmpzb25cIikpO1xuY29uc3QgY29yZV8xID0gcmVxdWlyZShcIkBhd3Mtc2RrL2NvcmVcIik7XG5jb25zdCB1dGlsX3VzZXJfYWdlbnRfbm9kZV8xID0gcmVxdWlyZShcIkBhd3Mtc2RrL3V0aWwtdXNlci1hZ2VudC1ub2RlXCIpO1xuY29uc3QgY29uZmlnX3Jlc29sdmVyXzEgPSByZXF1aXJlKFwiQHNtaXRoeS9jb25maWctcmVzb2x2ZXJcIik7XG5jb25zdCBoYXNoX25vZGVfMSA9IHJlcXVpcmUoXCJAc21pdGh5L2hhc2gtbm9kZVwiKTtcbmNvbnN0IG1pZGRsZXdhcmVfcmV0cnlfMSA9IHJlcXVpcmUoXCJAc21pdGh5L21pZGRsZXdhcmUtcmV0cnlcIik7XG5jb25zdCBub2RlX2NvbmZpZ19wcm92aWRlcl8xID0gcmVxdWlyZShcIkBzbWl0aHkvbm9kZS1jb25maWctcHJvdmlkZXJcIik7XG5jb25zdCBub2RlX2h0dHBfaGFuZGxlcl8xID0gcmVxdWlyZShcIkBzbWl0aHkvbm9kZS1odHRwLWhhbmRsZXJcIik7XG5jb25zdCBzbWl0aHlfY2xpZW50XzEgPSByZXF1aXJlKFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCIpO1xuY29uc3QgdXRpbF9ib2R5X2xlbmd0aF9ub2RlXzEgPSByZXF1aXJlKFwiQHNtaXRoeS91dGlsLWJvZHktbGVuZ3RoLW5vZGVcIik7XG5jb25zdCB1dGlsX2RlZmF1bHRzX21vZGVfbm9kZV8xID0gcmVxdWlyZShcIkBzbWl0aHkvdXRpbC1kZWZhdWx0cy1tb2RlLW5vZGVcIik7XG5jb25zdCB1dGlsX3JldHJ5XzEgPSByZXF1aXJlKFwiQHNtaXRoeS91dGlsLXJldHJ5XCIpO1xuY29uc3QgcnVudGltZUNvbmZpZ19zaGFyZWRfMSA9IHJlcXVpcmUoXCIuL3J1bnRpbWVDb25maWcuc2hhcmVkXCIpO1xuY29uc3QgZ2V0UnVudGltZUNvbmZpZyA9IChjb25maWcpID0+IHtcbiAgICAoMCwgc21pdGh5X2NsaWVudF8xLmVtaXRXYXJuaW5nSWZVbnN1cHBvcnRlZFZlcnNpb24pKHByb2Nlc3MudmVyc2lvbik7XG4gICAgY29uc3QgZGVmYXVsdHNNb2RlID0gKDAsIHV0aWxfZGVmYXVsdHNfbW9kZV9ub2RlXzEucmVzb2x2ZURlZmF1bHRzTW9kZUNvbmZpZykoY29uZmlnKTtcbiAgICBjb25zdCBkZWZhdWx0Q29uZmlnUHJvdmlkZXIgPSAoKSA9PiBkZWZhdWx0c01vZGUoKS50aGVuKHNtaXRoeV9jbGllbnRfMS5sb2FkQ29uZmlnc0ZvckRlZmF1bHRNb2RlKTtcbiAgICBjb25zdCBjbGllbnRTaGFyZWRWYWx1ZXMgPSAoMCwgcnVudGltZUNvbmZpZ19zaGFyZWRfMS5nZXRSdW50aW1lQ29uZmlnKShjb25maWcpO1xuICAgICgwLCBjb3JlXzEuZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbikocHJvY2Vzcy52ZXJzaW9uKTtcbiAgICBjb25zdCBsb2FkZXJDb25maWcgPSB7XG4gICAgICAgIHByb2ZpbGU6IGNvbmZpZz8ucHJvZmlsZSxcbiAgICAgICAgbG9nZ2VyOiBjbGllbnRTaGFyZWRWYWx1ZXMubG9nZ2VyLFxuICAgIH07XG4gICAgcmV0dXJuIHtcbiAgICAgICAgLi4uY2xpZW50U2hhcmVkVmFsdWVzLFxuICAgICAgICAuLi5jb25maWcsXG4gICAgICAgIHJ1bnRpbWU6IFwibm9kZVwiLFxuICAgICAgICBkZWZhdWx0c01vZGUsXG4gICAgICAgIGF1dGhTY2hlbWVQcmVmZXJlbmNlOiBjb25maWc/LmF1dGhTY2hlbWVQcmVmZXJlbmNlID8/ICgwLCBub2RlX2NvbmZpZ19wcm92aWRlcl8xLmxvYWRDb25maWcpKGNvcmVfMS5OT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfT1BUSU9OUywgbG9hZGVyQ29uZmlnKSxcbiAgICAgICAgYm9keUxlbmd0aENoZWNrZXI6IGNvbmZpZz8uYm9keUxlbmd0aENoZWNrZXIgPz8gdXRpbF9ib2R5X2xlbmd0aF9ub2RlXzEuY2FsY3VsYXRlQm9keUxlbmd0aCxcbiAgICAgICAgZGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyOiBjb25maWc/LmRlZmF1bHRVc2VyQWdlbnRQcm92aWRlciA/PyAoMCwgdXRpbF91c2VyX2FnZW50X25vZGVfMS5jcmVhdGVEZWZhdWx0VXNlckFnZW50UHJvdmlkZXIpKHsgc2VydmljZUlkOiBjbGllbnRTaGFyZWRWYWx1ZXMuc2VydmljZUlkLCBjbGllbnRWZXJzaW9uOiBwYWNrYWdlX2pzb25fMS5kZWZhdWx0LnZlcnNpb24gfSksXG4gICAgICAgIG1heEF0dGVtcHRzOiBjb25maWc/Lm1heEF0dGVtcHRzID8/ICgwLCBub2RlX2NvbmZpZ19wcm92aWRlcl8xLmxvYWRDb25maWcpKG1pZGRsZXdhcmVfcmV0cnlfMS5OT0RFX01BWF9BVFRFTVBUX0NPTkZJR19PUFRJT05TLCBjb25maWcpLFxuICAgICAgICByZWdpb246IGNvbmZpZz8ucmVnaW9uID8/ICgwLCBub2RlX2NvbmZpZ19wcm92aWRlcl8xLmxvYWRDb25maWcpKGNvbmZpZ19yZXNvbHZlcl8xLk5PREVfUkVHSU9OX0NPTkZJR19PUFRJT05TLCB7IC4uLmNvbmZpZ19yZXNvbHZlcl8xLk5PREVfUkVHSU9OX0NPTkZJR19GSUxFX09QVElPTlMsIC4uLmxvYWRlckNvbmZpZyB9KSxcbiAgICAgICAgcmVxdWVzdEhhbmRsZXI6IG5vZGVfaHR0cF9oYW5kbGVyXzEuTm9kZUh0dHBIYW5kbGVyLmNyZWF0ZShjb25maWc/LnJlcXVlc3RIYW5kbGVyID8/IGRlZmF1bHRDb25maWdQcm92aWRlciksXG4gICAgICAgIHJldHJ5TW9kZTogY29uZmlnPy5yZXRyeU1vZGUgPz9cbiAgICAgICAgICAgICgwLCBub2RlX2NvbmZpZ19wcm92aWRlcl8xLmxvYWRDb25maWcpKHtcbiAgICAgICAgICAgICAgICAuLi5taWRkbGV3YXJlX3JldHJ5XzEuTk9ERV9SRVRSWV9NT0RFX0NPTkZJR19PUFRJT05TLFxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IGFzeW5jICgpID0+IChhd2FpdCBkZWZhdWx0Q29uZmlnUHJvdmlkZXIoKSkucmV0cnlNb2RlIHx8IHV0aWxfcmV0cnlfMS5ERUZBVUxUX1JFVFJZX01PREUsXG4gICAgICAgICAgICB9LCBjb25maWcpLFxuICAgICAgICBzaGEyNTY6IGNvbmZpZz8uc2hhMjU2ID8/IGhhc2hfbm9kZV8xLkhhc2guYmluZChudWxsLCBcInNoYTI1NlwiKSxcbiAgICAgICAgc3RyZWFtQ29sbGVjdG9yOiBjb25maWc/LnN0cmVhbUNvbGxlY3RvciA/PyBub2RlX2h0dHBfaGFuZGxlcl8xLnN0cmVhbUNvbGxlY3RvcixcbiAgICAgICAgdXNlRHVhbHN0YWNrRW5kcG9pbnQ6IGNvbmZpZz8udXNlRHVhbHN0YWNrRW5kcG9pbnQgPz8gKDAsIG5vZGVfY29uZmlnX3Byb3ZpZGVyXzEubG9hZENvbmZpZykoY29uZmlnX3Jlc29sdmVyXzEuTk9ERV9VU0VfRFVBTFNUQUNLX0VORFBPSU5UX0NPTkZJR19PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgICAgICB1c2VGaXBzRW5kcG9pbnQ6IGNvbmZpZz8udXNlRmlwc0VuZHBvaW50ID8/ICgwLCBub2RlX2NvbmZpZ19wcm92aWRlcl8xLmxvYWRDb25maWcpKGNvbmZpZ19yZXNvbHZlcl8xLk5PREVfVVNFX0ZJUFNfRU5EUE9JTlRfQ09ORklHX09QVElPTlMsIGxvYWRlckNvbmZpZyksXG4gICAgICAgIHVzZXJBZ2VudEFwcElkOiBjb25maWc/LnVzZXJBZ2VudEFwcElkID8/ICgwLCBub2RlX2NvbmZpZ19wcm92aWRlcl8xLmxvYWRDb25maWcpKHV0aWxfdXNlcl9hZ2VudF9ub2RlXzEuTk9ERV9BUFBfSURfQ09ORklHX09QVElPTlMsIGxvYWRlckNvbmZpZyksXG4gICAgfTtcbn07XG5leHBvcnRzLmdldFJ1bnRpbWVDb25maWcgPSBnZXRSdW50aW1lQ29uZmlnO1xuIiwgIid1c2Ugc3RyaWN0JztcblxudmFyIG1pZGRsZXdhcmVIb3N0SGVhZGVyID0gcmVxdWlyZSgnQGF3cy1zZGsvbWlkZGxld2FyZS1ob3N0LWhlYWRlcicpO1xudmFyIG1pZGRsZXdhcmVMb2dnZXIgPSByZXF1aXJlKCdAYXdzLXNkay9taWRkbGV3YXJlLWxvZ2dlcicpO1xudmFyIG1pZGRsZXdhcmVSZWN1cnNpb25EZXRlY3Rpb24gPSByZXF1aXJlKCdAYXdzLXNkay9taWRkbGV3YXJlLXJlY3Vyc2lvbi1kZXRlY3Rpb24nKTtcbnZhciBtaWRkbGV3YXJlVXNlckFnZW50ID0gcmVxdWlyZSgnQGF3cy1zZGsvbWlkZGxld2FyZS11c2VyLWFnZW50Jyk7XG52YXIgY29uZmlnUmVzb2x2ZXIgPSByZXF1aXJlKCdAc21pdGh5L2NvbmZpZy1yZXNvbHZlcicpO1xudmFyIGNvcmUgPSByZXF1aXJlKCdAc21pdGh5L2NvcmUnKTtcbnZhciBzY2hlbWEgPSByZXF1aXJlKCdAc21pdGh5L2NvcmUvc2NoZW1hJyk7XG52YXIgbWlkZGxld2FyZUNvbnRlbnRMZW5ndGggPSByZXF1aXJlKCdAc21pdGh5L21pZGRsZXdhcmUtY29udGVudC1sZW5ndGgnKTtcbnZhciBtaWRkbGV3YXJlRW5kcG9pbnQgPSByZXF1aXJlKCdAc21pdGh5L21pZGRsZXdhcmUtZW5kcG9pbnQnKTtcbnZhciBtaWRkbGV3YXJlUmV0cnkgPSByZXF1aXJlKCdAc21pdGh5L21pZGRsZXdhcmUtcmV0cnknKTtcbnZhciBzbWl0aHlDbGllbnQgPSByZXF1aXJlKCdAc21pdGh5L3NtaXRoeS1jbGllbnQnKTtcbnZhciBodHRwQXV0aFNjaGVtZVByb3ZpZGVyID0gcmVxdWlyZSgnLi9hdXRoL2h0dHBBdXRoU2NoZW1lUHJvdmlkZXInKTtcbnZhciBydW50aW1lQ29uZmlnID0gcmVxdWlyZSgnLi9ydW50aW1lQ29uZmlnJyk7XG52YXIgcmVnaW9uQ29uZmlnUmVzb2x2ZXIgPSByZXF1aXJlKCdAYXdzLXNkay9yZWdpb24tY29uZmlnLXJlc29sdmVyJyk7XG52YXIgcHJvdG9jb2xIdHRwID0gcmVxdWlyZSgnQHNtaXRoeS9wcm90b2NvbC1odHRwJyk7XG52YXIgc2NoZW1hc18wID0gcmVxdWlyZSgnLi9zY2hlbWFzL3NjaGVtYXNfMCcpO1xudmFyIGVycm9ycyA9IHJlcXVpcmUoJy4vbW9kZWxzL2Vycm9ycycpO1xudmFyIFNTT1NlcnZpY2VFeGNlcHRpb24gPSByZXF1aXJlKCcuL21vZGVscy9TU09TZXJ2aWNlRXhjZXB0aW9uJyk7XG5cbmNvbnN0IHJlc29sdmVDbGllbnRFbmRwb2ludFBhcmFtZXRlcnMgPSAob3B0aW9ucykgPT4ge1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKG9wdGlvbnMsIHtcbiAgICAgICAgdXNlRHVhbHN0YWNrRW5kcG9pbnQ6IG9wdGlvbnMudXNlRHVhbHN0YWNrRW5kcG9pbnQgPz8gZmFsc2UsXG4gICAgICAgIHVzZUZpcHNFbmRwb2ludDogb3B0aW9ucy51c2VGaXBzRW5kcG9pbnQgPz8gZmFsc2UsXG4gICAgICAgIGRlZmF1bHRTaWduaW5nTmFtZTogXCJhd3Nzc29wb3J0YWxcIixcbiAgICB9KTtcbn07XG5jb25zdCBjb21tb25QYXJhbXMgPSB7XG4gICAgVXNlRklQUzogeyB0eXBlOiBcImJ1aWx0SW5QYXJhbXNcIiwgbmFtZTogXCJ1c2VGaXBzRW5kcG9pbnRcIiB9LFxuICAgIEVuZHBvaW50OiB7IHR5cGU6IFwiYnVpbHRJblBhcmFtc1wiLCBuYW1lOiBcImVuZHBvaW50XCIgfSxcbiAgICBSZWdpb246IHsgdHlwZTogXCJidWlsdEluUGFyYW1zXCIsIG5hbWU6IFwicmVnaW9uXCIgfSxcbiAgICBVc2VEdWFsU3RhY2s6IHsgdHlwZTogXCJidWlsdEluUGFyYW1zXCIsIG5hbWU6IFwidXNlRHVhbHN0YWNrRW5kcG9pbnRcIiB9LFxufTtcblxuY29uc3QgZ2V0SHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uID0gKHJ1bnRpbWVDb25maWcpID0+IHtcbiAgICBjb25zdCBfaHR0cEF1dGhTY2hlbWVzID0gcnVudGltZUNvbmZpZy5odHRwQXV0aFNjaGVtZXM7XG4gICAgbGV0IF9odHRwQXV0aFNjaGVtZVByb3ZpZGVyID0gcnVudGltZUNvbmZpZy5odHRwQXV0aFNjaGVtZVByb3ZpZGVyO1xuICAgIGxldCBfY3JlZGVudGlhbHMgPSBydW50aW1lQ29uZmlnLmNyZWRlbnRpYWxzO1xuICAgIHJldHVybiB7XG4gICAgICAgIHNldEh0dHBBdXRoU2NoZW1lKGh0dHBBdXRoU2NoZW1lKSB7XG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IF9odHRwQXV0aFNjaGVtZXMuZmluZEluZGV4KChzY2hlbWUpID0+IHNjaGVtZS5zY2hlbWVJZCA9PT0gaHR0cEF1dGhTY2hlbWUuc2NoZW1lSWQpO1xuICAgICAgICAgICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgICAgICAgICAgIF9odHRwQXV0aFNjaGVtZXMucHVzaChodHRwQXV0aFNjaGVtZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBfaHR0cEF1dGhTY2hlbWVzLnNwbGljZShpbmRleCwgMSwgaHR0cEF1dGhTY2hlbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBodHRwQXV0aFNjaGVtZXMoKSB7XG4gICAgICAgICAgICByZXR1cm4gX2h0dHBBdXRoU2NoZW1lcztcbiAgICAgICAgfSxcbiAgICAgICAgc2V0SHR0cEF1dGhTY2hlbWVQcm92aWRlcihodHRwQXV0aFNjaGVtZVByb3ZpZGVyKSB7XG4gICAgICAgICAgICBfaHR0cEF1dGhTY2hlbWVQcm92aWRlciA9IGh0dHBBdXRoU2NoZW1lUHJvdmlkZXI7XG4gICAgICAgIH0sXG4gICAgICAgIGh0dHBBdXRoU2NoZW1lUHJvdmlkZXIoKSB7XG4gICAgICAgICAgICByZXR1cm4gX2h0dHBBdXRoU2NoZW1lUHJvdmlkZXI7XG4gICAgICAgIH0sXG4gICAgICAgIHNldENyZWRlbnRpYWxzKGNyZWRlbnRpYWxzKSB7XG4gICAgICAgICAgICBfY3JlZGVudGlhbHMgPSBjcmVkZW50aWFscztcbiAgICAgICAgfSxcbiAgICAgICAgY3JlZGVudGlhbHMoKSB7XG4gICAgICAgICAgICByZXR1cm4gX2NyZWRlbnRpYWxzO1xuICAgICAgICB9LFxuICAgIH07XG59O1xuY29uc3QgcmVzb2x2ZUh0dHBBdXRoUnVudGltZUNvbmZpZyA9IChjb25maWcpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgICBodHRwQXV0aFNjaGVtZXM6IGNvbmZpZy5odHRwQXV0aFNjaGVtZXMoKSxcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVQcm92aWRlcjogY29uZmlnLmh0dHBBdXRoU2NoZW1lUHJvdmlkZXIoKSxcbiAgICAgICAgY3JlZGVudGlhbHM6IGNvbmZpZy5jcmVkZW50aWFscygpLFxuICAgIH07XG59O1xuXG5jb25zdCByZXNvbHZlUnVudGltZUV4dGVuc2lvbnMgPSAocnVudGltZUNvbmZpZywgZXh0ZW5zaW9ucykgPT4ge1xuICAgIGNvbnN0IGV4dGVuc2lvbkNvbmZpZ3VyYXRpb24gPSBPYmplY3QuYXNzaWduKHJlZ2lvbkNvbmZpZ1Jlc29sdmVyLmdldEF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24ocnVudGltZUNvbmZpZyksIHNtaXRoeUNsaWVudC5nZXREZWZhdWx0RXh0ZW5zaW9uQ29uZmlndXJhdGlvbihydW50aW1lQ29uZmlnKSwgcHJvdG9jb2xIdHRwLmdldEh0dHBIYW5kbGVyRXh0ZW5zaW9uQ29uZmlndXJhdGlvbihydW50aW1lQ29uZmlnKSwgZ2V0SHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uKHJ1bnRpbWVDb25maWcpKTtcbiAgICBleHRlbnNpb25zLmZvckVhY2goKGV4dGVuc2lvbikgPT4gZXh0ZW5zaW9uLmNvbmZpZ3VyZShleHRlbnNpb25Db25maWd1cmF0aW9uKSk7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24ocnVudGltZUNvbmZpZywgcmVnaW9uQ29uZmlnUmVzb2x2ZXIucmVzb2x2ZUF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24oZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiksIHNtaXRoeUNsaWVudC5yZXNvbHZlRGVmYXVsdFJ1bnRpbWVDb25maWcoZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiksIHByb3RvY29sSHR0cC5yZXNvbHZlSHR0cEhhbmRsZXJSdW50aW1lQ29uZmlnKGV4dGVuc2lvbkNvbmZpZ3VyYXRpb24pLCByZXNvbHZlSHR0cEF1dGhSdW50aW1lQ29uZmlnKGV4dGVuc2lvbkNvbmZpZ3VyYXRpb24pKTtcbn07XG5cbmNsYXNzIFNTT0NsaWVudCBleHRlbmRzIHNtaXRoeUNsaWVudC5DbGllbnQge1xuICAgIGNvbmZpZztcbiAgICBjb25zdHJ1Y3RvciguLi5bY29uZmlndXJhdGlvbl0pIHtcbiAgICAgICAgY29uc3QgX2NvbmZpZ18wID0gcnVudGltZUNvbmZpZy5nZXRSdW50aW1lQ29uZmlnKGNvbmZpZ3VyYXRpb24gfHwge30pO1xuICAgICAgICBzdXBlcihfY29uZmlnXzApO1xuICAgICAgICB0aGlzLmluaXRDb25maWcgPSBfY29uZmlnXzA7XG4gICAgICAgIGNvbnN0IF9jb25maWdfMSA9IHJlc29sdmVDbGllbnRFbmRwb2ludFBhcmFtZXRlcnMoX2NvbmZpZ18wKTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ18yID0gbWlkZGxld2FyZVVzZXJBZ2VudC5yZXNvbHZlVXNlckFnZW50Q29uZmlnKF9jb25maWdfMSk7XG4gICAgICAgIGNvbnN0IF9jb25maWdfMyA9IG1pZGRsZXdhcmVSZXRyeS5yZXNvbHZlUmV0cnlDb25maWcoX2NvbmZpZ18yKTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ180ID0gY29uZmlnUmVzb2x2ZXIucmVzb2x2ZVJlZ2lvbkNvbmZpZyhfY29uZmlnXzMpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzUgPSBtaWRkbGV3YXJlSG9zdEhlYWRlci5yZXNvbHZlSG9zdEhlYWRlckNvbmZpZyhfY29uZmlnXzQpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzYgPSBtaWRkbGV3YXJlRW5kcG9pbnQucmVzb2x2ZUVuZHBvaW50Q29uZmlnKF9jb25maWdfNSk7XG4gICAgICAgIGNvbnN0IF9jb25maWdfNyA9IGh0dHBBdXRoU2NoZW1lUHJvdmlkZXIucmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnKF9jb25maWdfNik7XG4gICAgICAgIGNvbnN0IF9jb25maWdfOCA9IHJlc29sdmVSdW50aW1lRXh0ZW5zaW9ucyhfY29uZmlnXzcsIGNvbmZpZ3VyYXRpb24/LmV4dGVuc2lvbnMgfHwgW10pO1xuICAgICAgICB0aGlzLmNvbmZpZyA9IF9jb25maWdfODtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKHNjaGVtYS5nZXRTY2hlbWFTZXJkZVBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UobWlkZGxld2FyZVVzZXJBZ2VudC5nZXRVc2VyQWdlbnRQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKG1pZGRsZXdhcmVSZXRyeS5nZXRSZXRyeVBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UobWlkZGxld2FyZUNvbnRlbnRMZW5ndGguZ2V0Q29udGVudExlbmd0aFBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UobWlkZGxld2FyZUhvc3RIZWFkZXIuZ2V0SG9zdEhlYWRlclBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UobWlkZGxld2FyZUxvZ2dlci5nZXRMb2dnZXJQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKG1pZGRsZXdhcmVSZWN1cnNpb25EZXRlY3Rpb24uZ2V0UmVjdXJzaW9uRGV0ZWN0aW9uUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShjb3JlLmdldEh0dHBBdXRoU2NoZW1lRW5kcG9pbnRSdWxlU2V0UGx1Z2luKHRoaXMuY29uZmlnLCB7XG4gICAgICAgICAgICBodHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlcjogaHR0cEF1dGhTY2hlbWVQcm92aWRlci5kZWZhdWx0U1NPSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIsXG4gICAgICAgICAgICBpZGVudGl0eVByb3ZpZGVyQ29uZmlnUHJvdmlkZXI6IGFzeW5jIChjb25maWcpID0+IG5ldyBjb3JlLkRlZmF1bHRJZGVudGl0eVByb3ZpZGVyQ29uZmlnKHtcbiAgICAgICAgICAgICAgICBcImF3cy5hdXRoI3NpZ3Y0XCI6IGNvbmZpZy5jcmVkZW50aWFscyxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICB9KSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShjb3JlLmdldEh0dHBTaWduaW5nUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgfVxuICAgIGRlc3Ryb3koKSB7XG4gICAgICAgIHN1cGVyLmRlc3Ryb3koKTtcbiAgICB9XG59XG5cbmNsYXNzIEdldFJvbGVDcmVkZW50aWFsc0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIlNXQlBvcnRhbFNlcnZpY2VcIiwgXCJHZXRSb2xlQ3JlZGVudGlhbHNcIiwge30pXG4gICAgLm4oXCJTU09DbGllbnRcIiwgXCJHZXRSb2xlQ3JlZGVudGlhbHNDb21tYW5kXCIpXG4gICAgLnNjKHNjaGVtYXNfMC5HZXRSb2xlQ3JlZGVudGlhbHMkKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgTGlzdEFjY291bnRSb2xlc0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIlNXQlBvcnRhbFNlcnZpY2VcIiwgXCJMaXN0QWNjb3VudFJvbGVzXCIsIHt9KVxuICAgIC5uKFwiU1NPQ2xpZW50XCIsIFwiTGlzdEFjY291bnRSb2xlc0NvbW1hbmRcIilcbiAgICAuc2Moc2NoZW1hc18wLkxpc3RBY2NvdW50Um9sZXMkKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgTGlzdEFjY291bnRzQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiU1dCUG9ydGFsU2VydmljZVwiLCBcIkxpc3RBY2NvdW50c1wiLCB7fSlcbiAgICAubihcIlNTT0NsaWVudFwiLCBcIkxpc3RBY2NvdW50c0NvbW1hbmRcIilcbiAgICAuc2Moc2NoZW1hc18wLkxpc3RBY2NvdW50cyQpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBMb2dvdXRDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJTV0JQb3J0YWxTZXJ2aWNlXCIsIFwiTG9nb3V0XCIsIHt9KVxuICAgIC5uKFwiU1NPQ2xpZW50XCIsIFwiTG9nb3V0Q29tbWFuZFwiKVxuICAgIC5zYyhzY2hlbWFzXzAuTG9nb3V0JClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNvbnN0IHBhZ2luYXRlTGlzdEFjY291bnRSb2xlcyA9IGNvcmUuY3JlYXRlUGFnaW5hdG9yKFNTT0NsaWVudCwgTGlzdEFjY291bnRSb2xlc0NvbW1hbmQsIFwibmV4dFRva2VuXCIsIFwibmV4dFRva2VuXCIsIFwibWF4UmVzdWx0c1wiKTtcblxuY29uc3QgcGFnaW5hdGVMaXN0QWNjb3VudHMgPSBjb3JlLmNyZWF0ZVBhZ2luYXRvcihTU09DbGllbnQsIExpc3RBY2NvdW50c0NvbW1hbmQsIFwibmV4dFRva2VuXCIsIFwibmV4dFRva2VuXCIsIFwibWF4UmVzdWx0c1wiKTtcblxuY29uc3QgY29tbWFuZHMgPSB7XG4gICAgR2V0Um9sZUNyZWRlbnRpYWxzQ29tbWFuZCxcbiAgICBMaXN0QWNjb3VudFJvbGVzQ29tbWFuZCxcbiAgICBMaXN0QWNjb3VudHNDb21tYW5kLFxuICAgIExvZ291dENvbW1hbmQsXG59O1xuY29uc3QgcGFnaW5hdG9ycyA9IHtcbiAgICBwYWdpbmF0ZUxpc3RBY2NvdW50Um9sZXMsXG4gICAgcGFnaW5hdGVMaXN0QWNjb3VudHMsXG59O1xuY2xhc3MgU1NPIGV4dGVuZHMgU1NPQ2xpZW50IHtcbn1cbnNtaXRoeUNsaWVudC5jcmVhdGVBZ2dyZWdhdGVkQ2xpZW50KGNvbW1hbmRzLCBTU08sIHsgcGFnaW5hdG9ycyB9KTtcblxuZXhwb3J0cy4kQ29tbWFuZCA9IHNtaXRoeUNsaWVudC5Db21tYW5kO1xuZXhwb3J0cy5fX0NsaWVudCA9IHNtaXRoeUNsaWVudC5DbGllbnQ7XG5leHBvcnRzLlNTT1NlcnZpY2VFeGNlcHRpb24gPSBTU09TZXJ2aWNlRXhjZXB0aW9uLlNTT1NlcnZpY2VFeGNlcHRpb247XG5leHBvcnRzLkdldFJvbGVDcmVkZW50aWFsc0NvbW1hbmQgPSBHZXRSb2xlQ3JlZGVudGlhbHNDb21tYW5kO1xuZXhwb3J0cy5MaXN0QWNjb3VudFJvbGVzQ29tbWFuZCA9IExpc3RBY2NvdW50Um9sZXNDb21tYW5kO1xuZXhwb3J0cy5MaXN0QWNjb3VudHNDb21tYW5kID0gTGlzdEFjY291bnRzQ29tbWFuZDtcbmV4cG9ydHMuTG9nb3V0Q29tbWFuZCA9IExvZ291dENvbW1hbmQ7XG5leHBvcnRzLlNTTyA9IFNTTztcbmV4cG9ydHMuU1NPQ2xpZW50ID0gU1NPQ2xpZW50O1xuZXhwb3J0cy5wYWdpbmF0ZUxpc3RBY2NvdW50Um9sZXMgPSBwYWdpbmF0ZUxpc3RBY2NvdW50Um9sZXM7XG5leHBvcnRzLnBhZ2luYXRlTGlzdEFjY291bnRzID0gcGFnaW5hdGVMaXN0QWNjb3VudHM7XG5PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc2NoZW1hc18wLCAnX19wcm90b19fJykgJiZcbiAgICAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGV4cG9ydHMsICdfX3Byb3RvX18nKSAmJlxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19wcm90b19fJywge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICB2YWx1ZTogc2NoZW1hc18wWydfX3Byb3RvX18nXVxuICAgIH0pO1xuXG5PYmplY3Qua2V5cyhzY2hlbWFzXzApLmZvckVhY2goZnVuY3Rpb24gKGspIHtcbiAgICBpZiAoayAhPT0gJ2RlZmF1bHQnICYmICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXhwb3J0cywgaykpIGV4cG9ydHNba10gPSBzY2hlbWFzXzBba107XG59KTtcbk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlcnJvcnMsICdfX3Byb3RvX18nKSAmJlxuICAgICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXhwb3J0cywgJ19fcHJvdG9fXycpICYmXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX3Byb3RvX18nLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIHZhbHVlOiBlcnJvcnNbJ19fcHJvdG9fXyddXG4gICAgfSk7XG5cbk9iamVjdC5rZXlzKGVycm9ycykuZm9yRWFjaChmdW5jdGlvbiAoaykge1xuICAgIGlmIChrICE9PSAnZGVmYXVsdCcgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChleHBvcnRzLCBrKSkgZXhwb3J0c1trXSA9IGVycm9yc1trXTtcbn0pO1xuIiwgIid1c2Ugc3RyaWN0JztcblxudmFyIGNsaWVudFNzbyA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL2NsaWVudC1zc28nKTtcblxuXG5cbmV4cG9ydHMuR2V0Um9sZUNyZWRlbnRpYWxzQ29tbWFuZCA9IGNsaWVudFNzby5HZXRSb2xlQ3JlZGVudGlhbHNDb21tYW5kO1xuZXhwb3J0cy5TU09DbGllbnQgPSBjbGllbnRTc28uU1NPQ2xpZW50O1xuIiwgIid1c2Ugc3RyaWN0JztcblxudmFyIHByb3BlcnR5UHJvdmlkZXIgPSByZXF1aXJlKCdAc21pdGh5L3Byb3BlcnR5LXByb3ZpZGVyJyk7XG52YXIgc2hhcmVkSW5pRmlsZUxvYWRlciA9IHJlcXVpcmUoJ0BzbWl0aHkvc2hhcmVkLWluaS1maWxlLWxvYWRlcicpO1xudmFyIGNsaWVudCA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL2NvcmUvY2xpZW50Jyk7XG52YXIgdG9rZW5Qcm92aWRlcnMgPSByZXF1aXJlKCdAYXdzLXNkay90b2tlbi1wcm92aWRlcnMnKTtcblxuY29uc3QgaXNTc29Qcm9maWxlID0gKGFyZykgPT4gYXJnICYmXG4gICAgKHR5cGVvZiBhcmcuc3NvX3N0YXJ0X3VybCA9PT0gXCJzdHJpbmdcIiB8fFxuICAgICAgICB0eXBlb2YgYXJnLnNzb19hY2NvdW50X2lkID09PSBcInN0cmluZ1wiIHx8XG4gICAgICAgIHR5cGVvZiBhcmcuc3NvX3Nlc3Npb24gPT09IFwic3RyaW5nXCIgfHxcbiAgICAgICAgdHlwZW9mIGFyZy5zc29fcmVnaW9uID09PSBcInN0cmluZ1wiIHx8XG4gICAgICAgIHR5cGVvZiBhcmcuc3NvX3JvbGVfbmFtZSA9PT0gXCJzdHJpbmdcIik7XG5cbmNvbnN0IFNIT1VMRF9GQUlMX0NSRURFTlRJQUxfQ0hBSU4gPSBmYWxzZTtcbmNvbnN0IHJlc29sdmVTU09DcmVkZW50aWFscyA9IGFzeW5jICh7IHNzb1N0YXJ0VXJsLCBzc29TZXNzaW9uLCBzc29BY2NvdW50SWQsIHNzb1JlZ2lvbiwgc3NvUm9sZU5hbWUsIHNzb0NsaWVudCwgY2xpZW50Q29uZmlnLCBwYXJlbnRDbGllbnRDb25maWcsIGNhbGxlckNsaWVudENvbmZpZywgcHJvZmlsZSwgZmlsZXBhdGgsIGNvbmZpZ0ZpbGVwYXRoLCBpZ25vcmVDYWNoZSwgbG9nZ2VyLCB9KSA9PiB7XG4gICAgbGV0IHRva2VuO1xuICAgIGNvbnN0IHJlZnJlc2hNZXNzYWdlID0gYFRvIHJlZnJlc2ggdGhpcyBTU08gc2Vzc2lvbiBydW4gYXdzIHNzbyBsb2dpbiB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIHByb2ZpbGUuYDtcbiAgICBpZiAoc3NvU2Vzc2lvbikge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgX3Rva2VuID0gYXdhaXQgdG9rZW5Qcm92aWRlcnMuZnJvbVNzbyh7XG4gICAgICAgICAgICAgICAgcHJvZmlsZSxcbiAgICAgICAgICAgICAgICBmaWxlcGF0aCxcbiAgICAgICAgICAgICAgICBjb25maWdGaWxlcGF0aCxcbiAgICAgICAgICAgICAgICBpZ25vcmVDYWNoZSxcbiAgICAgICAgICAgIH0pKCk7XG4gICAgICAgICAgICB0b2tlbiA9IHtcbiAgICAgICAgICAgICAgICBhY2Nlc3NUb2tlbjogX3Rva2VuLnRva2VuLFxuICAgICAgICAgICAgICAgIGV4cGlyZXNBdDogbmV3IERhdGUoX3Rva2VuLmV4cGlyYXRpb24pLnRvSVNPU3RyaW5nKCksXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoZS5tZXNzYWdlLCB7XG4gICAgICAgICAgICAgICAgdHJ5TmV4dExpbms6IFNIT1VMRF9GQUlMX0NSRURFTlRJQUxfQ0hBSU4sXG4gICAgICAgICAgICAgICAgbG9nZ2VyLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB0b2tlbiA9IGF3YWl0IHNoYXJlZEluaUZpbGVMb2FkZXIuZ2V0U1NPVG9rZW5Gcm9tRmlsZShzc29TdGFydFVybCk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLkNyZWRlbnRpYWxzUHJvdmlkZXJFcnJvcihgVGhlIFNTTyBzZXNzaW9uIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHByb2ZpbGUgaXMgaW52YWxpZC4gJHtyZWZyZXNoTWVzc2FnZX1gLCB7XG4gICAgICAgICAgICAgICAgdHJ5TmV4dExpbms6IFNIT1VMRF9GQUlMX0NSRURFTlRJQUxfQ0hBSU4sXG4gICAgICAgICAgICAgICAgbG9nZ2VyLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKG5ldyBEYXRlKHRva2VuLmV4cGlyZXNBdCkuZ2V0VGltZSgpIC0gRGF0ZS5ub3coKSA8PSAwKSB7XG4gICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLkNyZWRlbnRpYWxzUHJvdmlkZXJFcnJvcihgVGhlIFNTTyBzZXNzaW9uIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHByb2ZpbGUgaGFzIGV4cGlyZWQuICR7cmVmcmVzaE1lc3NhZ2V9YCwge1xuICAgICAgICAgICAgdHJ5TmV4dExpbms6IFNIT1VMRF9GQUlMX0NSRURFTlRJQUxfQ0hBSU4sXG4gICAgICAgICAgICBsb2dnZXIsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCB7IGFjY2Vzc1Rva2VuIH0gPSB0b2tlbjtcbiAgICBjb25zdCB7IFNTT0NsaWVudCwgR2V0Um9sZUNyZWRlbnRpYWxzQ29tbWFuZCB9ID0gYXdhaXQgUHJvbWlzZS5yZXNvbHZlKCkudGhlbihmdW5jdGlvbiAoKSB7IHJldHVybiByZXF1aXJlKCcuL2xvYWRTc28tQnc3VlN2bE8uanMnKTsgfSk7XG4gICAgY29uc3Qgc3NvID0gc3NvQ2xpZW50IHx8XG4gICAgICAgIG5ldyBTU09DbGllbnQoT2JqZWN0LmFzc2lnbih7fSwgY2xpZW50Q29uZmlnID8/IHt9LCB7XG4gICAgICAgICAgICBsb2dnZXI6IGNsaWVudENvbmZpZz8ubG9nZ2VyID8/IGNhbGxlckNsaWVudENvbmZpZz8ubG9nZ2VyID8/IHBhcmVudENsaWVudENvbmZpZz8ubG9nZ2VyLFxuICAgICAgICAgICAgcmVnaW9uOiBjbGllbnRDb25maWc/LnJlZ2lvbiA/PyBzc29SZWdpb24sXG4gICAgICAgICAgICB1c2VyQWdlbnRBcHBJZDogY2xpZW50Q29uZmlnPy51c2VyQWdlbnRBcHBJZCA/PyBjYWxsZXJDbGllbnRDb25maWc/LnVzZXJBZ2VudEFwcElkID8/IHBhcmVudENsaWVudENvbmZpZz8udXNlckFnZW50QXBwSWQsXG4gICAgICAgIH0pKTtcbiAgICBsZXQgc3NvUmVzcDtcbiAgICB0cnkge1xuICAgICAgICBzc29SZXNwID0gYXdhaXQgc3NvLnNlbmQobmV3IEdldFJvbGVDcmVkZW50aWFsc0NvbW1hbmQoe1xuICAgICAgICAgICAgYWNjb3VudElkOiBzc29BY2NvdW50SWQsXG4gICAgICAgICAgICByb2xlTmFtZTogc3NvUm9sZU5hbWUsXG4gICAgICAgICAgICBhY2Nlc3NUb2tlbixcbiAgICAgICAgfSkpO1xuICAgIH1cbiAgICBjYXRjaCAoZSkge1xuICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoZSwge1xuICAgICAgICAgICAgdHJ5TmV4dExpbms6IFNIT1VMRF9GQUlMX0NSRURFTlRJQUxfQ0hBSU4sXG4gICAgICAgICAgICBsb2dnZXIsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCB7IHJvbGVDcmVkZW50aWFsczogeyBhY2Nlc3NLZXlJZCwgc2VjcmV0QWNjZXNzS2V5LCBzZXNzaW9uVG9rZW4sIGV4cGlyYXRpb24sIGNyZWRlbnRpYWxTY29wZSwgYWNjb3VudElkIH0gPSB7fSwgfSA9IHNzb1Jlc3A7XG4gICAgaWYgKCFhY2Nlc3NLZXlJZCB8fCAhc2VjcmV0QWNjZXNzS2V5IHx8ICFzZXNzaW9uVG9rZW4gfHwgIWV4cGlyYXRpb24pIHtcbiAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKFwiU1NPIHJldHVybnMgYW4gaW52YWxpZCB0ZW1wb3JhcnkgY3JlZGVudGlhbC5cIiwge1xuICAgICAgICAgICAgdHJ5TmV4dExpbms6IFNIT1VMRF9GQUlMX0NSRURFTlRJQUxfQ0hBSU4sXG4gICAgICAgICAgICBsb2dnZXIsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCBjcmVkZW50aWFscyA9IHtcbiAgICAgICAgYWNjZXNzS2V5SWQsXG4gICAgICAgIHNlY3JldEFjY2Vzc0tleSxcbiAgICAgICAgc2Vzc2lvblRva2VuLFxuICAgICAgICBleHBpcmF0aW9uOiBuZXcgRGF0ZShleHBpcmF0aW9uKSxcbiAgICAgICAgLi4uKGNyZWRlbnRpYWxTY29wZSAmJiB7IGNyZWRlbnRpYWxTY29wZSB9KSxcbiAgICAgICAgLi4uKGFjY291bnRJZCAmJiB7IGFjY291bnRJZCB9KSxcbiAgICB9O1xuICAgIGlmIChzc29TZXNzaW9uKSB7XG4gICAgICAgIGNsaWVudC5zZXRDcmVkZW50aWFsRmVhdHVyZShjcmVkZW50aWFscywgXCJDUkVERU5USUFMU19TU09cIiwgXCJzXCIpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgY2xpZW50LnNldENyZWRlbnRpYWxGZWF0dXJlKGNyZWRlbnRpYWxzLCBcIkNSRURFTlRJQUxTX1NTT19MRUdBQ1lcIiwgXCJ1XCIpO1xuICAgIH1cbiAgICByZXR1cm4gY3JlZGVudGlhbHM7XG59O1xuXG5jb25zdCB2YWxpZGF0ZVNzb1Byb2ZpbGUgPSAocHJvZmlsZSwgbG9nZ2VyKSA9PiB7XG4gICAgY29uc3QgeyBzc29fc3RhcnRfdXJsLCBzc29fYWNjb3VudF9pZCwgc3NvX3JlZ2lvbiwgc3NvX3JvbGVfbmFtZSB9ID0gcHJvZmlsZTtcbiAgICBpZiAoIXNzb19zdGFydF91cmwgfHwgIXNzb19hY2NvdW50X2lkIHx8ICFzc29fcmVnaW9uIHx8ICFzc29fcm9sZV9uYW1lKSB7XG4gICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLkNyZWRlbnRpYWxzUHJvdmlkZXJFcnJvcihgUHJvZmlsZSBpcyBjb25maWd1cmVkIHdpdGggaW52YWxpZCBTU08gY3JlZGVudGlhbHMuIFJlcXVpcmVkIHBhcmFtZXRlcnMgXCJzc29fYWNjb3VudF9pZFwiLCBgICtcbiAgICAgICAgICAgIGBcInNzb19yZWdpb25cIiwgXCJzc29fcm9sZV9uYW1lXCIsIFwic3NvX3N0YXJ0X3VybFwiLiBHb3QgJHtPYmplY3Qua2V5cyhwcm9maWxlKS5qb2luKFwiLCBcIil9XFxuUmVmZXJlbmNlOiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2xpL2xhdGVzdC91c2VyZ3VpZGUvY2xpLWNvbmZpZ3VyZS1zc28uaHRtbGAsIHsgdHJ5TmV4dExpbms6IGZhbHNlLCBsb2dnZXIgfSk7XG4gICAgfVxuICAgIHJldHVybiBwcm9maWxlO1xufTtcblxuY29uc3QgZnJvbVNTTyA9IChpbml0ID0ge30pID0+IGFzeW5jICh7IGNhbGxlckNsaWVudENvbmZpZyB9ID0ge30pID0+IHtcbiAgICBpbml0LmxvZ2dlcj8uZGVidWcoXCJAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLXNzbyAtIGZyb21TU09cIik7XG4gICAgY29uc3QgeyBzc29TdGFydFVybCwgc3NvQWNjb3VudElkLCBzc29SZWdpb24sIHNzb1JvbGVOYW1lLCBzc29TZXNzaW9uIH0gPSBpbml0O1xuICAgIGNvbnN0IHsgc3NvQ2xpZW50IH0gPSBpbml0O1xuICAgIGNvbnN0IHByb2ZpbGVOYW1lID0gc2hhcmVkSW5pRmlsZUxvYWRlci5nZXRQcm9maWxlTmFtZSh7XG4gICAgICAgIHByb2ZpbGU6IGluaXQucHJvZmlsZSA/PyBjYWxsZXJDbGllbnRDb25maWc/LnByb2ZpbGUsXG4gICAgfSk7XG4gICAgaWYgKCFzc29TdGFydFVybCAmJiAhc3NvQWNjb3VudElkICYmICFzc29SZWdpb24gJiYgIXNzb1JvbGVOYW1lICYmICFzc29TZXNzaW9uKSB7XG4gICAgICAgIGNvbnN0IHByb2ZpbGVzID0gYXdhaXQgc2hhcmVkSW5pRmlsZUxvYWRlci5wYXJzZUtub3duRmlsZXMoaW5pdCk7XG4gICAgICAgIGNvbnN0IHByb2ZpbGUgPSBwcm9maWxlc1twcm9maWxlTmFtZV07XG4gICAgICAgIGlmICghcHJvZmlsZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKGBQcm9maWxlICR7cHJvZmlsZU5hbWV9IHdhcyBub3QgZm91bmQuYCwgeyBsb2dnZXI6IGluaXQubG9nZ2VyIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmICghaXNTc29Qcm9maWxlKHByb2ZpbGUpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoYFByb2ZpbGUgJHtwcm9maWxlTmFtZX0gaXMgbm90IGNvbmZpZ3VyZWQgd2l0aCBTU08gY3JlZGVudGlhbHMuYCwge1xuICAgICAgICAgICAgICAgIGxvZ2dlcjogaW5pdC5sb2dnZXIsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocHJvZmlsZT8uc3NvX3Nlc3Npb24pIHtcbiAgICAgICAgICAgIGNvbnN0IHNzb1Nlc3Npb25zID0gYXdhaXQgc2hhcmVkSW5pRmlsZUxvYWRlci5sb2FkU3NvU2Vzc2lvbkRhdGEoaW5pdCk7XG4gICAgICAgICAgICBjb25zdCBzZXNzaW9uID0gc3NvU2Vzc2lvbnNbcHJvZmlsZS5zc29fc2Vzc2lvbl07XG4gICAgICAgICAgICBjb25zdCBjb25mbGljdE1zZyA9IGAgY29uZmlndXJhdGlvbnMgaW4gcHJvZmlsZSAke3Byb2ZpbGVOYW1lfSBhbmQgc3NvLXNlc3Npb24gJHtwcm9maWxlLnNzb19zZXNzaW9ufWA7XG4gICAgICAgICAgICBpZiAoc3NvUmVnaW9uICYmIHNzb1JlZ2lvbiAhPT0gc2Vzc2lvbi5zc29fcmVnaW9uKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKGBDb25mbGljdGluZyBTU08gcmVnaW9uYCArIGNvbmZsaWN0TXNnLCB7XG4gICAgICAgICAgICAgICAgICAgIHRyeU5leHRMaW5rOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgbG9nZ2VyOiBpbml0LmxvZ2dlcixcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzc29TdGFydFVybCAmJiBzc29TdGFydFVybCAhPT0gc2Vzc2lvbi5zc29fc3RhcnRfdXJsKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKGBDb25mbGljdGluZyBTU08gc3RhcnRfdXJsYCArIGNvbmZsaWN0TXNnLCB7XG4gICAgICAgICAgICAgICAgICAgIHRyeU5leHRMaW5rOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgbG9nZ2VyOiBpbml0LmxvZ2dlcixcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHByb2ZpbGUuc3NvX3JlZ2lvbiA9IHNlc3Npb24uc3NvX3JlZ2lvbjtcbiAgICAgICAgICAgIHByb2ZpbGUuc3NvX3N0YXJ0X3VybCA9IHNlc3Npb24uc3NvX3N0YXJ0X3VybDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB7IHNzb19zdGFydF91cmwsIHNzb19hY2NvdW50X2lkLCBzc29fcmVnaW9uLCBzc29fcm9sZV9uYW1lLCBzc29fc2Vzc2lvbiB9ID0gdmFsaWRhdGVTc29Qcm9maWxlKHByb2ZpbGUsIGluaXQubG9nZ2VyKTtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVTU09DcmVkZW50aWFscyh7XG4gICAgICAgICAgICBzc29TdGFydFVybDogc3NvX3N0YXJ0X3VybCxcbiAgICAgICAgICAgIHNzb1Nlc3Npb246IHNzb19zZXNzaW9uLFxuICAgICAgICAgICAgc3NvQWNjb3VudElkOiBzc29fYWNjb3VudF9pZCxcbiAgICAgICAgICAgIHNzb1JlZ2lvbjogc3NvX3JlZ2lvbixcbiAgICAgICAgICAgIHNzb1JvbGVOYW1lOiBzc29fcm9sZV9uYW1lLFxuICAgICAgICAgICAgc3NvQ2xpZW50OiBzc29DbGllbnQsXG4gICAgICAgICAgICBjbGllbnRDb25maWc6IGluaXQuY2xpZW50Q29uZmlnLFxuICAgICAgICAgICAgcGFyZW50Q2xpZW50Q29uZmlnOiBpbml0LnBhcmVudENsaWVudENvbmZpZyxcbiAgICAgICAgICAgIGNhbGxlckNsaWVudENvbmZpZzogaW5pdC5jYWxsZXJDbGllbnRDb25maWcsXG4gICAgICAgICAgICBwcm9maWxlOiBwcm9maWxlTmFtZSxcbiAgICAgICAgICAgIGZpbGVwYXRoOiBpbml0LmZpbGVwYXRoLFxuICAgICAgICAgICAgY29uZmlnRmlsZXBhdGg6IGluaXQuY29uZmlnRmlsZXBhdGgsXG4gICAgICAgICAgICBpZ25vcmVDYWNoZTogaW5pdC5pZ25vcmVDYWNoZSxcbiAgICAgICAgICAgIGxvZ2dlcjogaW5pdC5sb2dnZXIsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBlbHNlIGlmICghc3NvU3RhcnRVcmwgfHwgIXNzb0FjY291bnRJZCB8fCAhc3NvUmVnaW9uIHx8ICFzc29Sb2xlTmFtZSkge1xuICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoXCJJbmNvbXBsZXRlIGNvbmZpZ3VyYXRpb24uIFRoZSBmcm9tU1NPKCkgYXJndW1lbnQgaGFzaCBtdXN0IGluY2x1ZGUgXCIgK1xuICAgICAgICAgICAgJ1wic3NvU3RhcnRVcmxcIiwgXCJzc29BY2NvdW50SWRcIiwgXCJzc29SZWdpb25cIiwgXCJzc29Sb2xlTmFtZVwiJywgeyB0cnlOZXh0TGluazogZmFsc2UsIGxvZ2dlcjogaW5pdC5sb2dnZXIgfSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZVNTT0NyZWRlbnRpYWxzKHtcbiAgICAgICAgICAgIHNzb1N0YXJ0VXJsLFxuICAgICAgICAgICAgc3NvU2Vzc2lvbixcbiAgICAgICAgICAgIHNzb0FjY291bnRJZCxcbiAgICAgICAgICAgIHNzb1JlZ2lvbixcbiAgICAgICAgICAgIHNzb1JvbGVOYW1lLFxuICAgICAgICAgICAgc3NvQ2xpZW50LFxuICAgICAgICAgICAgY2xpZW50Q29uZmlnOiBpbml0LmNsaWVudENvbmZpZyxcbiAgICAgICAgICAgIHBhcmVudENsaWVudENvbmZpZzogaW5pdC5wYXJlbnRDbGllbnRDb25maWcsXG4gICAgICAgICAgICBjYWxsZXJDbGllbnRDb25maWc6IGluaXQuY2FsbGVyQ2xpZW50Q29uZmlnLFxuICAgICAgICAgICAgcHJvZmlsZTogcHJvZmlsZU5hbWUsXG4gICAgICAgICAgICBmaWxlcGF0aDogaW5pdC5maWxlcGF0aCxcbiAgICAgICAgICAgIGNvbmZpZ0ZpbGVwYXRoOiBpbml0LmNvbmZpZ0ZpbGVwYXRoLFxuICAgICAgICAgICAgaWdub3JlQ2FjaGU6IGluaXQuaWdub3JlQ2FjaGUsXG4gICAgICAgICAgICBsb2dnZXI6IGluaXQubG9nZ2VyLFxuICAgICAgICB9KTtcbiAgICB9XG59O1xuXG5leHBvcnRzLmZyb21TU08gPSBmcm9tU1NPO1xuZXhwb3J0cy5pc1Nzb1Byb2ZpbGUgPSBpc1Nzb1Byb2ZpbGU7XG5leHBvcnRzLnZhbGlkYXRlU3NvUHJvZmlsZSA9IHZhbGlkYXRlU3NvUHJvZmlsZTtcbiIsICJpbXBvcnQgeyByZXNvbHZlQXdzU2RrU2lnVjRDb25maWcgfSBmcm9tIFwiQGF3cy1zZGsvY29yZVwiO1xuaW1wb3J0IHsgZ2V0U21pdGh5Q29udGV4dCwgbm9ybWFsaXplUHJvdmlkZXIgfSBmcm9tIFwiQHNtaXRoeS91dGlsLW1pZGRsZXdhcmVcIjtcbmV4cG9ydCBjb25zdCBkZWZhdWx0U2lnbmluSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIgPSBhc3luYyAoY29uZmlnLCBjb250ZXh0LCBpbnB1dCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIG9wZXJhdGlvbjogZ2V0U21pdGh5Q29udGV4dChjb250ZXh0KS5vcGVyYXRpb24sXG4gICAgICAgIHJlZ2lvbjogKGF3YWl0IG5vcm1hbGl6ZVByb3ZpZGVyKGNvbmZpZy5yZWdpb24pKCkpIHx8XG4gICAgICAgICAgICAoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcImV4cGVjdGVkIGByZWdpb25gIHRvIGJlIGNvbmZpZ3VyZWQgZm9yIGBhd3MuYXV0aCNzaWd2NGBcIik7XG4gICAgICAgICAgICB9KSgpLFxuICAgIH07XG59O1xuZnVuY3Rpb24gY3JlYXRlQXdzQXV0aFNpZ3Y0SHR0cEF1dGhPcHRpb24oYXV0aFBhcmFtZXRlcnMpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBzY2hlbWVJZDogXCJhd3MuYXV0aCNzaWd2NFwiLFxuICAgICAgICBzaWduaW5nUHJvcGVydGllczoge1xuICAgICAgICAgICAgbmFtZTogXCJzaWduaW5cIixcbiAgICAgICAgICAgIHJlZ2lvbjogYXV0aFBhcmFtZXRlcnMucmVnaW9uLFxuICAgICAgICB9LFxuICAgICAgICBwcm9wZXJ0aWVzRXh0cmFjdG9yOiAoY29uZmlnLCBjb250ZXh0KSA9PiAoe1xuICAgICAgICAgICAgc2lnbmluZ1Byb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICBjb25maWcsXG4gICAgICAgICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pLFxuICAgIH07XG59XG5mdW5jdGlvbiBjcmVhdGVTbWl0aHlBcGlOb0F1dGhIdHRwQXV0aE9wdGlvbihhdXRoUGFyYW1ldGVycykge1xuICAgIHJldHVybiB7XG4gICAgICAgIHNjaGVtZUlkOiBcInNtaXRoeS5hcGkjbm9BdXRoXCIsXG4gICAgfTtcbn1cbmV4cG9ydCBjb25zdCBkZWZhdWx0U2lnbmluSHR0cEF1dGhTY2hlbWVQcm92aWRlciA9IChhdXRoUGFyYW1ldGVycykgPT4ge1xuICAgIGNvbnN0IG9wdGlvbnMgPSBbXTtcbiAgICBzd2l0Y2ggKGF1dGhQYXJhbWV0ZXJzLm9wZXJhdGlvbikge1xuICAgICAgICBjYXNlIFwiQ3JlYXRlT0F1dGgyVG9rZW5cIjoge1xuICAgICAgICAgICAgb3B0aW9ucy5wdXNoKGNyZWF0ZVNtaXRoeUFwaU5vQXV0aEh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICBvcHRpb25zLnB1c2goY3JlYXRlQXdzQXV0aFNpZ3Y0SHR0cEF1dGhPcHRpb24oYXV0aFBhcmFtZXRlcnMpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gb3B0aW9ucztcbn07XG5leHBvcnQgY29uc3QgcmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIGNvbnN0IGNvbmZpZ18wID0gcmVzb2x2ZUF3c1Nka1NpZ1Y0Q29uZmlnKGNvbmZpZyk7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oY29uZmlnXzAsIHtcbiAgICAgICAgYXV0aFNjaGVtZVByZWZlcmVuY2U6IG5vcm1hbGl6ZVByb3ZpZGVyKGNvbmZpZy5hdXRoU2NoZW1lUHJlZmVyZW5jZSA/PyBbXSksXG4gICAgfSk7XG59O1xuIiwgImV4cG9ydCBjb25zdCByZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzID0gKG9wdGlvbnMpID0+IHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihvcHRpb25zLCB7XG4gICAgICAgIHVzZUR1YWxzdGFja0VuZHBvaW50OiBvcHRpb25zLnVzZUR1YWxzdGFja0VuZHBvaW50ID8/IGZhbHNlLFxuICAgICAgICB1c2VGaXBzRW5kcG9pbnQ6IG9wdGlvbnMudXNlRmlwc0VuZHBvaW50ID8/IGZhbHNlLFxuICAgICAgICBkZWZhdWx0U2lnbmluZ05hbWU6IFwic2lnbmluXCIsXG4gICAgfSk7XG59O1xuZXhwb3J0IGNvbnN0IGNvbW1vblBhcmFtcyA9IHtcbiAgICBVc2VGSVBTOiB7IHR5cGU6IFwiYnVpbHRJblBhcmFtc1wiLCBuYW1lOiBcInVzZUZpcHNFbmRwb2ludFwiIH0sXG4gICAgRW5kcG9pbnQ6IHsgdHlwZTogXCJidWlsdEluUGFyYW1zXCIsIG5hbWU6IFwiZW5kcG9pbnRcIiB9LFxuICAgIFJlZ2lvbjogeyB0eXBlOiBcImJ1aWx0SW5QYXJhbXNcIiwgbmFtZTogXCJyZWdpb25cIiB9LFxuICAgIFVzZUR1YWxTdGFjazogeyB0eXBlOiBcImJ1aWx0SW5QYXJhbXNcIiwgbmFtZTogXCJ1c2VEdWFsc3RhY2tFbmRwb2ludFwiIH0sXG59O1xuIiwgImNvbnN0IHUgPSBcInJlcXVpcmVkXCIsIHYgPSBcImZuXCIsIHcgPSBcImFyZ3ZcIiwgeCA9IFwicmVmXCI7XG5jb25zdCBhID0gdHJ1ZSwgYiA9IFwiaXNTZXRcIiwgYyA9IFwiYm9vbGVhbkVxdWFsc1wiLCBkID0gXCJlcnJvclwiLCBlID0gXCJlbmRwb2ludFwiLCBmID0gXCJ0cmVlXCIsIGcgPSBcIlBhcnRpdGlvblJlc3VsdFwiLCBoID0gXCJzdHJpbmdFcXVhbHNcIiwgaSA9IHsgW3VdOiB0cnVlLCBcImRlZmF1bHRcIjogZmFsc2UsIFwidHlwZVwiOiBcImJvb2xlYW5cIiB9LCBqID0geyBbdV06IGZhbHNlLCBcInR5cGVcIjogXCJzdHJpbmdcIiB9LCBrID0geyBbeF06IFwiRW5kcG9pbnRcIiB9LCBsID0geyBbdl06IGMsIFt3XTogW3sgW3hdOiBcIlVzZUZJUFNcIiB9LCB0cnVlXSB9LCBtID0geyBbdl06IGMsIFt3XTogW3sgW3hdOiBcIlVzZUR1YWxTdGFja1wiIH0sIHRydWVdIH0sIG4gPSB7fSwgbyA9IHsgW3ZdOiBcImdldEF0dHJcIiwgW3ddOiBbeyBbeF06IGcgfSwgXCJuYW1lXCJdIH0sIHAgPSB7IFt2XTogYywgW3ddOiBbeyBbeF06IFwiVXNlRklQU1wiIH0sIGZhbHNlXSB9LCBxID0geyBbdl06IGMsIFt3XTogW3sgW3hdOiBcIlVzZUR1YWxTdGFja1wiIH0sIGZhbHNlXSB9LCByID0geyBbdl06IFwiZ2V0QXR0clwiLCBbd106IFt7IFt4XTogZyB9LCBcInN1cHBvcnRzRklQU1wiXSB9LCBzID0geyBbdl06IGMsIFt3XTogW3RydWUsIHsgW3ZdOiBcImdldEF0dHJcIiwgW3ddOiBbeyBbeF06IGcgfSwgXCJzdXBwb3J0c0R1YWxTdGFja1wiXSB9XSB9LCB0ID0gW3sgW3hdOiBcIlJlZ2lvblwiIH1dO1xuY29uc3QgX2RhdGEgPSB7IHZlcnNpb246IFwiMS4wXCIsIHBhcmFtZXRlcnM6IHsgVXNlRHVhbFN0YWNrOiBpLCBVc2VGSVBTOiBpLCBFbmRwb2ludDogaiwgUmVnaW9uOiBqIH0sIHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbeyBbdl06IGIsIFt3XTogW2tdIH1dLCBydWxlczogW3sgY29uZGl0aW9uczogW2xdLCBlcnJvcjogXCJJbnZhbGlkIENvbmZpZ3VyYXRpb246IEZJUFMgYW5kIGN1c3RvbSBlbmRwb2ludCBhcmUgbm90IHN1cHBvcnRlZFwiLCB0eXBlOiBkIH0sIHsgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IFttXSwgZXJyb3I6IFwiSW52YWxpZCBDb25maWd1cmF0aW9uOiBEdWFsc3RhY2sgYW5kIGN1c3RvbSBlbmRwb2ludCBhcmUgbm90IHN1cHBvcnRlZFwiLCB0eXBlOiBkIH0sIHsgZW5kcG9pbnQ6IHsgdXJsOiBrLCBwcm9wZXJ0aWVzOiBuLCBoZWFkZXJzOiBuIH0sIHR5cGU6IGUgfV0sIHR5cGU6IGYgfV0sIHR5cGU6IGYgfSwgeyBydWxlczogW3sgY29uZGl0aW9uczogW3sgW3ZdOiBiLCBbd106IHQgfV0sIHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbeyBbdl06IFwiYXdzLnBhcnRpdGlvblwiLCBbd106IHQsIGFzc2lnbjogZyB9XSwgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IFt7IFt2XTogaCwgW3ddOiBbbywgXCJhd3NcIl0gfSwgcCwgcV0sIGVuZHBvaW50OiB7IHVybDogXCJodHRwczovL3tSZWdpb259LnNpZ25pbi5hd3MuYW1hem9uLmNvbVwiLCBwcm9wZXJ0aWVzOiBuLCBoZWFkZXJzOiBuIH0sIHR5cGU6IGUgfSwgeyBjb25kaXRpb25zOiBbeyBbdl06IGgsIFt3XTogW28sIFwiYXdzLWNuXCJdIH0sIHAsIHFdLCBlbmRwb2ludDogeyB1cmw6IFwiaHR0cHM6Ly97UmVnaW9ufS5zaWduaW4uYW1hem9uYXdzLmNuXCIsIHByb3BlcnRpZXM6IG4sIGhlYWRlcnM6IG4gfSwgdHlwZTogZSB9LCB7IGNvbmRpdGlvbnM6IFt7IFt2XTogaCwgW3ddOiBbbywgXCJhd3MtdXMtZ292XCJdIH0sIHAsIHFdLCBlbmRwb2ludDogeyB1cmw6IFwiaHR0cHM6Ly97UmVnaW9ufS5zaWduaW4uYW1hem9uYXdzLXVzLWdvdi5jb21cIiwgcHJvcGVydGllczogbiwgaGVhZGVyczogbiB9LCB0eXBlOiBlIH0sIHsgY29uZGl0aW9uczogW2wsIG1dLCBydWxlczogW3sgY29uZGl0aW9uczogW3sgW3ZdOiBjLCBbd106IFthLCByXSB9LCBzXSwgcnVsZXM6IFt7IGVuZHBvaW50OiB7IHVybDogXCJodHRwczovL3NpZ25pbi1maXBzLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZHVhbFN0YWNrRG5zU3VmZml4fVwiLCBwcm9wZXJ0aWVzOiBuLCBoZWFkZXJzOiBuIH0sIHR5cGU6IGUgfV0sIHR5cGU6IGYgfSwgeyBlcnJvcjogXCJGSVBTIGFuZCBEdWFsU3RhY2sgYXJlIGVuYWJsZWQsIGJ1dCB0aGlzIHBhcnRpdGlvbiBkb2VzIG5vdCBzdXBwb3J0IG9uZSBvciBib3RoXCIsIHR5cGU6IGQgfV0sIHR5cGU6IGYgfSwgeyBjb25kaXRpb25zOiBbbCwgcV0sIHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbeyBbdl06IGMsIFt3XTogW3IsIGFdIH1dLCBydWxlczogW3sgZW5kcG9pbnQ6IHsgdXJsOiBcImh0dHBzOi8vc2lnbmluLWZpcHMue1JlZ2lvbn0ue1BhcnRpdGlvblJlc3VsdCNkbnNTdWZmaXh9XCIsIHByb3BlcnRpZXM6IG4sIGhlYWRlcnM6IG4gfSwgdHlwZTogZSB9XSwgdHlwZTogZiB9LCB7IGVycm9yOiBcIkZJUFMgaXMgZW5hYmxlZCBidXQgdGhpcyBwYXJ0aXRpb24gZG9lcyBub3Qgc3VwcG9ydCBGSVBTXCIsIHR5cGU6IGQgfV0sIHR5cGU6IGYgfSwgeyBjb25kaXRpb25zOiBbcCwgbV0sIHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbc10sIHJ1bGVzOiBbeyBlbmRwb2ludDogeyB1cmw6IFwiaHR0cHM6Ly9zaWduaW4ue1JlZ2lvbn0ue1BhcnRpdGlvblJlc3VsdCNkdWFsU3RhY2tEbnNTdWZmaXh9XCIsIHByb3BlcnRpZXM6IG4sIGhlYWRlcnM6IG4gfSwgdHlwZTogZSB9XSwgdHlwZTogZiB9LCB7IGVycm9yOiBcIkR1YWxTdGFjayBpcyBlbmFibGVkIGJ1dCB0aGlzIHBhcnRpdGlvbiBkb2VzIG5vdCBzdXBwb3J0IER1YWxTdGFja1wiLCB0eXBlOiBkIH1dLCB0eXBlOiBmIH0sIHsgZW5kcG9pbnQ6IHsgdXJsOiBcImh0dHBzOi8vc2lnbmluLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZG5zU3VmZml4fVwiLCBwcm9wZXJ0aWVzOiBuLCBoZWFkZXJzOiBuIH0sIHR5cGU6IGUgfV0sIHR5cGU6IGYgfV0sIHR5cGU6IGYgfSwgeyBlcnJvcjogXCJJbnZhbGlkIENvbmZpZ3VyYXRpb246IE1pc3NpbmcgUmVnaW9uXCIsIHR5cGU6IGQgfV0sIHR5cGU6IGYgfV0gfTtcbmV4cG9ydCBjb25zdCBydWxlU2V0ID0gX2RhdGE7XG4iLCAiaW1wb3J0IHsgYXdzRW5kcG9pbnRGdW5jdGlvbnMgfSBmcm9tIFwiQGF3cy1zZGsvdXRpbC1lbmRwb2ludHNcIjtcbmltcG9ydCB7IGN1c3RvbUVuZHBvaW50RnVuY3Rpb25zLCBFbmRwb2ludENhY2hlLCByZXNvbHZlRW5kcG9pbnQgfSBmcm9tIFwiQHNtaXRoeS91dGlsLWVuZHBvaW50c1wiO1xuaW1wb3J0IHsgcnVsZVNldCB9IGZyb20gXCIuL3J1bGVzZXRcIjtcbmNvbnN0IGNhY2hlID0gbmV3IEVuZHBvaW50Q2FjaGUoe1xuICAgIHNpemU6IDUwLFxuICAgIHBhcmFtczogW1wiRW5kcG9pbnRcIiwgXCJSZWdpb25cIiwgXCJVc2VEdWFsU3RhY2tcIiwgXCJVc2VGSVBTXCJdLFxufSk7XG5leHBvcnQgY29uc3QgZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIgPSAoZW5kcG9pbnRQYXJhbXMsIGNvbnRleHQgPSB7fSkgPT4ge1xuICAgIHJldHVybiBjYWNoZS5nZXQoZW5kcG9pbnRQYXJhbXMsICgpID0+IHJlc29sdmVFbmRwb2ludChydWxlU2V0LCB7XG4gICAgICAgIGVuZHBvaW50UGFyYW1zOiBlbmRwb2ludFBhcmFtcyxcbiAgICAgICAgbG9nZ2VyOiBjb250ZXh0LmxvZ2dlcixcbiAgICB9KSk7XG59O1xuY3VzdG9tRW5kcG9pbnRGdW5jdGlvbnMuYXdzID0gYXdzRW5kcG9pbnRGdW5jdGlvbnM7XG4iLCAiaW1wb3J0IHsgU2VydmljZUV4Y2VwdGlvbiBhcyBfX1NlcnZpY2VFeGNlcHRpb24sIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuZXhwb3J0IHsgX19TZXJ2aWNlRXhjZXB0aW9uIH07XG5leHBvcnQgY2xhc3MgU2lnbmluU2VydmljZUV4Y2VwdGlvbiBleHRlbmRzIF9fU2VydmljZUV4Y2VwdGlvbiB7XG4gICAgY29uc3RydWN0b3Iob3B0aW9ucykge1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFNpZ25pblNlcnZpY2VFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgU2lnbmluU2VydmljZUV4Y2VwdGlvbiBhcyBfX0Jhc2VFeGNlcHRpb24gfSBmcm9tIFwiLi9TaWduaW5TZXJ2aWNlRXhjZXB0aW9uXCI7XG5leHBvcnQgY2xhc3MgQWNjZXNzRGVuaWVkRXhjZXB0aW9uIGV4dGVuZHMgX19CYXNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJBY2Nlc3NEZW5pZWRFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGVycm9yO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJBY2Nlc3NEZW5pZWRFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgQWNjZXNzRGVuaWVkRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuZXJyb3IgPSBvcHRzLmVycm9yO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBJbnRlcm5hbFNlcnZlckV4Y2VwdGlvbiBleHRlbmRzIF9fQmFzZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcInNlcnZlclwiO1xuICAgIGVycm9yO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJJbnRlcm5hbFNlcnZlckV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcInNlcnZlclwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBJbnRlcm5hbFNlcnZlckV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLmVycm9yID0gb3B0cy5lcnJvcjtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgVG9vTWFueVJlcXVlc3RzRXJyb3IgZXh0ZW5kcyBfX0Jhc2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIlRvb01hbnlSZXF1ZXN0c0Vycm9yXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBlcnJvcjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiVG9vTWFueVJlcXVlc3RzRXJyb3JcIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgVG9vTWFueVJlcXVlc3RzRXJyb3IucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5lcnJvciA9IG9wdHMuZXJyb3I7XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIFZhbGlkYXRpb25FeGNlcHRpb24gZXh0ZW5kcyBfX0Jhc2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIlZhbGlkYXRpb25FeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGVycm9yO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJWYWxpZGF0aW9uRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFZhbGlkYXRpb25FeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5lcnJvciA9IG9wdHMuZXJyb3I7XG4gICAgfVxufVxuIiwgImNvbnN0IF9BREUgPSBcIkFjY2Vzc0RlbmllZEV4Y2VwdGlvblwiO1xuY29uc3QgX0FUID0gXCJBY2Nlc3NUb2tlblwiO1xuY29uc3QgX0NPQVQgPSBcIkNyZWF0ZU9BdXRoMlRva2VuXCI7XG5jb25zdCBfQ09BVFIgPSBcIkNyZWF0ZU9BdXRoMlRva2VuUmVxdWVzdFwiO1xuY29uc3QgX0NPQVRSQiA9IFwiQ3JlYXRlT0F1dGgyVG9rZW5SZXF1ZXN0Qm9keVwiO1xuY29uc3QgX0NPQVRSQnIgPSBcIkNyZWF0ZU9BdXRoMlRva2VuUmVzcG9uc2VCb2R5XCI7XG5jb25zdCBfQ09BVFJyID0gXCJDcmVhdGVPQXV0aDJUb2tlblJlc3BvbnNlXCI7XG5jb25zdCBfSVNFID0gXCJJbnRlcm5hbFNlcnZlckV4Y2VwdGlvblwiO1xuY29uc3QgX1JUID0gXCJSZWZyZXNoVG9rZW5cIjtcbmNvbnN0IF9UTVJFID0gXCJUb29NYW55UmVxdWVzdHNFcnJvclwiO1xuY29uc3QgX1ZFID0gXCJWYWxpZGF0aW9uRXhjZXB0aW9uXCI7XG5jb25zdCBfYUtJID0gXCJhY2Nlc3NLZXlJZFwiO1xuY29uc3QgX2FUID0gXCJhY2Nlc3NUb2tlblwiO1xuY29uc3QgX2MgPSBcImNsaWVudFwiO1xuY29uc3QgX2NJID0gXCJjbGllbnRJZFwiO1xuY29uc3QgX2NWID0gXCJjb2RlVmVyaWZpZXJcIjtcbmNvbnN0IF9jbyA9IFwiY29kZVwiO1xuY29uc3QgX2UgPSBcImVycm9yXCI7XG5jb25zdCBfZUkgPSBcImV4cGlyZXNJblwiO1xuY29uc3QgX2dUID0gXCJncmFudFR5cGVcIjtcbmNvbnN0IF9oID0gXCJodHRwXCI7XG5jb25zdCBfaEUgPSBcImh0dHBFcnJvclwiO1xuY29uc3QgX2lUID0gXCJpZFRva2VuXCI7XG5jb25zdCBfak4gPSBcImpzb25OYW1lXCI7XG5jb25zdCBfbSA9IFwibWVzc2FnZVwiO1xuY29uc3QgX3JUID0gXCJyZWZyZXNoVG9rZW5cIjtcbmNvbnN0IF9yVSA9IFwicmVkaXJlY3RVcmlcIjtcbmNvbnN0IF9zID0gXCJzbWl0aHkudHMuc2RrLnN5bnRoZXRpYy5jb20uYW1hem9uYXdzLnNpZ25pblwiO1xuY29uc3QgX3NBSyA9IFwic2VjcmV0QWNjZXNzS2V5XCI7XG5jb25zdCBfc1QgPSBcInNlc3Npb25Ub2tlblwiO1xuY29uc3QgX3NlID0gXCJzZXJ2ZXJcIjtcbmNvbnN0IF90SSA9IFwidG9rZW5JbnB1dFwiO1xuY29uc3QgX3RPID0gXCJ0b2tlbk91dHB1dFwiO1xuY29uc3QgX3RUID0gXCJ0b2tlblR5cGVcIjtcbmNvbnN0IG4wID0gXCJjb20uYW1hem9uYXdzLnNpZ25pblwiO1xuaW1wb3J0IHsgVHlwZVJlZ2lzdHJ5IH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IEFjY2Vzc0RlbmllZEV4Y2VwdGlvbiwgSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb24sIFRvb01hbnlSZXF1ZXN0c0Vycm9yLCBWYWxpZGF0aW9uRXhjZXB0aW9uLCB9IGZyb20gXCIuLi9tb2RlbHMvZXJyb3JzXCI7XG5pbXBvcnQgeyBTaWduaW5TZXJ2aWNlRXhjZXB0aW9uIH0gZnJvbSBcIi4uL21vZGVscy9TaWduaW5TZXJ2aWNlRXhjZXB0aW9uXCI7XG5jb25zdCBfc19yZWdpc3RyeSA9IFR5cGVSZWdpc3RyeS5mb3IoX3MpO1xuZXhwb3J0IHZhciBTaWduaW5TZXJ2aWNlRXhjZXB0aW9uJCA9IFstMywgX3MsIFwiU2lnbmluU2VydmljZUV4Y2VwdGlvblwiLCAwLCBbXSwgW11dO1xuX3NfcmVnaXN0cnkucmVnaXN0ZXJFcnJvcihTaWduaW5TZXJ2aWNlRXhjZXB0aW9uJCwgU2lnbmluU2VydmljZUV4Y2VwdGlvbik7XG5jb25zdCBuMF9yZWdpc3RyeSA9IFR5cGVSZWdpc3RyeS5mb3IobjApO1xuZXhwb3J0IHZhciBBY2Nlc3NEZW5pZWRFeGNlcHRpb24kID0gWy0zLCBuMCwgX0FERSwgeyBbX2VdOiBfYyB9LCBbX2UsIF9tXSwgWzAsIDBdLCAyXTtcbm4wX3JlZ2lzdHJ5LnJlZ2lzdGVyRXJyb3IoQWNjZXNzRGVuaWVkRXhjZXB0aW9uJCwgQWNjZXNzRGVuaWVkRXhjZXB0aW9uKTtcbmV4cG9ydCB2YXIgSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb24kID0gWy0zLCBuMCwgX0lTRSwgeyBbX2VdOiBfc2UsIFtfaEVdOiA1MDAgfSwgW19lLCBfbV0sIFswLCAwXSwgMl07XG5uMF9yZWdpc3RyeS5yZWdpc3RlckVycm9yKEludGVybmFsU2VydmVyRXhjZXB0aW9uJCwgSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb24pO1xuZXhwb3J0IHZhciBUb29NYW55UmVxdWVzdHNFcnJvciQgPSBbLTMsIG4wLCBfVE1SRSwgeyBbX2VdOiBfYywgW19oRV06IDQyOSB9LCBbX2UsIF9tXSwgWzAsIDBdLCAyXTtcbm4wX3JlZ2lzdHJ5LnJlZ2lzdGVyRXJyb3IoVG9vTWFueVJlcXVlc3RzRXJyb3IkLCBUb29NYW55UmVxdWVzdHNFcnJvcik7XG5leHBvcnQgdmFyIFZhbGlkYXRpb25FeGNlcHRpb24kID0gWy0zLCBuMCwgX1ZFLCB7IFtfZV06IF9jLCBbX2hFXTogNDAwIH0sIFtfZSwgX21dLCBbMCwgMF0sIDJdO1xubjBfcmVnaXN0cnkucmVnaXN0ZXJFcnJvcihWYWxpZGF0aW9uRXhjZXB0aW9uJCwgVmFsaWRhdGlvbkV4Y2VwdGlvbik7XG5leHBvcnQgY29uc3QgZXJyb3JUeXBlUmVnaXN0cmllcyA9IFtfc19yZWdpc3RyeSwgbjBfcmVnaXN0cnldO1xudmFyIFJlZnJlc2hUb2tlbiA9IFswLCBuMCwgX1JULCA4LCAwXTtcbmV4cG9ydCB2YXIgQWNjZXNzVG9rZW4kID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0FULFxuICAgIDgsXG4gICAgW19hS0ksIF9zQUssIF9zVF0sXG4gICAgW1xuICAgICAgICBbMCwgeyBbX2pOXTogX2FLSSB9XSxcbiAgICAgICAgWzAsIHsgW19qTl06IF9zQUsgfV0sXG4gICAgICAgIFswLCB7IFtfak5dOiBfc1QgfV0sXG4gICAgXSxcbiAgICAzLFxuXTtcbmV4cG9ydCB2YXIgQ3JlYXRlT0F1dGgyVG9rZW5SZXF1ZXN0JCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9DT0FUUixcbiAgICAwLFxuICAgIFtfdEldLFxuICAgIFtbKCkgPT4gQ3JlYXRlT0F1dGgyVG9rZW5SZXF1ZXN0Qm9keSQsIDE2XV0sXG4gICAgMSxcbl07XG5leHBvcnQgdmFyIENyZWF0ZU9BdXRoMlRva2VuUmVxdWVzdEJvZHkkID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0NPQVRSQixcbiAgICAwLFxuICAgIFtfY0ksIF9nVCwgX2NvLCBfclUsIF9jViwgX3JUXSxcbiAgICBbXG4gICAgICAgIFswLCB7IFtfak5dOiBfY0kgfV0sXG4gICAgICAgIFswLCB7IFtfak5dOiBfZ1QgfV0sXG4gICAgICAgIDAsXG4gICAgICAgIFswLCB7IFtfak5dOiBfclUgfV0sXG4gICAgICAgIFswLCB7IFtfak5dOiBfY1YgfV0sXG4gICAgICAgIFsoKSA9PiBSZWZyZXNoVG9rZW4sIHsgW19qTl06IF9yVCB9XSxcbiAgICBdLFxuICAgIDIsXG5dO1xuZXhwb3J0IHZhciBDcmVhdGVPQXV0aDJUb2tlblJlc3BvbnNlJCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9DT0FUUnIsXG4gICAgMCxcbiAgICBbX3RPXSxcbiAgICBbWygpID0+IENyZWF0ZU9BdXRoMlRva2VuUmVzcG9uc2VCb2R5JCwgMTZdXSxcbiAgICAxLFxuXTtcbmV4cG9ydCB2YXIgQ3JlYXRlT0F1dGgyVG9rZW5SZXNwb25zZUJvZHkkID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0NPQVRSQnIsXG4gICAgMCxcbiAgICBbX2FULCBfdFQsIF9lSSwgX3JULCBfaVRdLFxuICAgIFtcbiAgICAgICAgWygpID0+IEFjY2Vzc1Rva2VuJCwgeyBbX2pOXTogX2FUIH1dLFxuICAgICAgICBbMCwgeyBbX2pOXTogX3RUIH1dLFxuICAgICAgICBbMSwgeyBbX2pOXTogX2VJIH1dLFxuICAgICAgICBbKCkgPT4gUmVmcmVzaFRva2VuLCB7IFtfak5dOiBfclQgfV0sXG4gICAgICAgIFswLCB7IFtfak5dOiBfaVQgfV0sXG4gICAgXSxcbiAgICA0LFxuXTtcbmV4cG9ydCB2YXIgQ3JlYXRlT0F1dGgyVG9rZW4kID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0NPQVQsXG4gICAgeyBbX2hdOiBbXCJQT1NUXCIsIFwiL3YxL3Rva2VuXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBDcmVhdGVPQXV0aDJUb2tlblJlcXVlc3QkLFxuICAgICgpID0+IENyZWF0ZU9BdXRoMlRva2VuUmVzcG9uc2UkLFxuXTtcbiIsICJpbXBvcnQgeyBBd3NTZGtTaWdWNFNpZ25lciB9IGZyb20gXCJAYXdzLXNkay9jb3JlXCI7XG5pbXBvcnQgeyBBd3NSZXN0SnNvblByb3RvY29sIH0gZnJvbSBcIkBhd3Mtc2RrL2NvcmUvcHJvdG9jb2xzXCI7XG5pbXBvcnQgeyBOb0F1dGhTaWduZXIgfSBmcm9tIFwiQHNtaXRoeS9jb3JlXCI7XG5pbXBvcnQgeyBOb09wTG9nZ2VyIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgcGFyc2VVcmwgfSBmcm9tIFwiQHNtaXRoeS91cmwtcGFyc2VyXCI7XG5pbXBvcnQgeyBmcm9tQmFzZTY0LCB0b0Jhc2U2NCB9IGZyb20gXCJAc21pdGh5L3V0aWwtYmFzZTY0XCI7XG5pbXBvcnQgeyBmcm9tVXRmOCwgdG9VdGY4IH0gZnJvbSBcIkBzbWl0aHkvdXRpbC11dGY4XCI7XG5pbXBvcnQgeyBkZWZhdWx0U2lnbmluSHR0cEF1dGhTY2hlbWVQcm92aWRlciB9IGZyb20gXCIuL2F1dGgvaHR0cEF1dGhTY2hlbWVQcm92aWRlclwiO1xuaW1wb3J0IHsgZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIgfSBmcm9tIFwiLi9lbmRwb2ludC9lbmRwb2ludFJlc29sdmVyXCI7XG5pbXBvcnQgeyBlcnJvclR5cGVSZWdpc3RyaWVzIH0gZnJvbSBcIi4vc2NoZW1hcy9zY2hlbWFzXzBcIjtcbmV4cG9ydCBjb25zdCBnZXRSdW50aW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIGFwaVZlcnNpb246IFwiMjAyMy0wMS0wMVwiLFxuICAgICAgICBiYXNlNjREZWNvZGVyOiBjb25maWc/LmJhc2U2NERlY29kZXIgPz8gZnJvbUJhc2U2NCxcbiAgICAgICAgYmFzZTY0RW5jb2RlcjogY29uZmlnPy5iYXNlNjRFbmNvZGVyID8/IHRvQmFzZTY0LFxuICAgICAgICBkaXNhYmxlSG9zdFByZWZpeDogY29uZmlnPy5kaXNhYmxlSG9zdFByZWZpeCA/PyBmYWxzZSxcbiAgICAgICAgZW5kcG9pbnRQcm92aWRlcjogY29uZmlnPy5lbmRwb2ludFByb3ZpZGVyID8/IGRlZmF1bHRFbmRwb2ludFJlc29sdmVyLFxuICAgICAgICBleHRlbnNpb25zOiBjb25maWc/LmV4dGVuc2lvbnMgPz8gW10sXG4gICAgICAgIGh0dHBBdXRoU2NoZW1lUHJvdmlkZXI6IGNvbmZpZz8uaHR0cEF1dGhTY2hlbWVQcm92aWRlciA/PyBkZWZhdWx0U2lnbmluSHR0cEF1dGhTY2hlbWVQcm92aWRlcixcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVzOiBjb25maWc/Lmh0dHBBdXRoU2NoZW1lcyA/PyBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgc2NoZW1lSWQ6IFwiYXdzLmF1dGgjc2lndjRcIixcbiAgICAgICAgICAgICAgICBpZGVudGl0eVByb3ZpZGVyOiAoaXBjKSA9PiBpcGMuZ2V0SWRlbnRpdHlQcm92aWRlcihcImF3cy5hdXRoI3NpZ3Y0XCIpLFxuICAgICAgICAgICAgICAgIHNpZ25lcjogbmV3IEF3c1Nka1NpZ1Y0U2lnbmVyKCksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHNjaGVtZUlkOiBcInNtaXRoeS5hcGkjbm9BdXRoXCIsXG4gICAgICAgICAgICAgICAgaWRlbnRpdHlQcm92aWRlcjogKGlwYykgPT4gaXBjLmdldElkZW50aXR5UHJvdmlkZXIoXCJzbWl0aHkuYXBpI25vQXV0aFwiKSB8fCAoYXN5bmMgKCkgPT4gKHt9KSksXG4gICAgICAgICAgICAgICAgc2lnbmVyOiBuZXcgTm9BdXRoU2lnbmVyKCksXG4gICAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBsb2dnZXI6IGNvbmZpZz8ubG9nZ2VyID8/IG5ldyBOb09wTG9nZ2VyKCksXG4gICAgICAgIHByb3RvY29sOiBjb25maWc/LnByb3RvY29sID8/IEF3c1Jlc3RKc29uUHJvdG9jb2wsXG4gICAgICAgIHByb3RvY29sU2V0dGluZ3M6IGNvbmZpZz8ucHJvdG9jb2xTZXR0aW5ncyA/PyB7XG4gICAgICAgICAgICBkZWZhdWx0TmFtZXNwYWNlOiBcImNvbS5hbWF6b25hd3Muc2lnbmluXCIsXG4gICAgICAgICAgICBlcnJvclR5cGVSZWdpc3RyaWVzLFxuICAgICAgICAgICAgdmVyc2lvbjogXCIyMDIzLTAxLTAxXCIsXG4gICAgICAgICAgICBzZXJ2aWNlVGFyZ2V0OiBcIlNpZ25pblwiLFxuICAgICAgICB9LFxuICAgICAgICBzZXJ2aWNlSWQ6IGNvbmZpZz8uc2VydmljZUlkID8/IFwiU2lnbmluXCIsXG4gICAgICAgIHVybFBhcnNlcjogY29uZmlnPy51cmxQYXJzZXIgPz8gcGFyc2VVcmwsXG4gICAgICAgIHV0ZjhEZWNvZGVyOiBjb25maWc/LnV0ZjhEZWNvZGVyID8/IGZyb21VdGY4LFxuICAgICAgICB1dGY4RW5jb2RlcjogY29uZmlnPy51dGY4RW5jb2RlciA/PyB0b1V0ZjgsXG4gICAgfTtcbn07XG4iLCAiaW1wb3J0IHBhY2thZ2VJbmZvIGZyb20gXCIuLi8uLi8uLi9wYWNrYWdlLmpzb25cIjtcbmltcG9ydCB7IGVtaXRXYXJuaW5nSWZVbnN1cHBvcnRlZFZlcnNpb24gYXMgYXdzQ2hlY2tWZXJzaW9uLCBOT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfT1BUSU9OUyB9IGZyb20gXCJAYXdzLXNkay9jb3JlXCI7XG5pbXBvcnQgeyBjcmVhdGVEZWZhdWx0VXNlckFnZW50UHJvdmlkZXIsIE5PREVfQVBQX0lEX0NPTkZJR19PUFRJT05TIH0gZnJvbSBcIkBhd3Mtc2RrL3V0aWwtdXNlci1hZ2VudC1ub2RlXCI7XG5pbXBvcnQgeyBOT0RFX1JFR0lPTl9DT05GSUdfRklMRV9PUFRJT05TLCBOT0RFX1JFR0lPTl9DT05GSUdfT1BUSU9OUywgTk9ERV9VU0VfRFVBTFNUQUNLX0VORFBPSU5UX0NPTkZJR19PUFRJT05TLCBOT0RFX1VTRV9GSVBTX0VORFBPSU5UX0NPTkZJR19PUFRJT05TLCB9IGZyb20gXCJAc21pdGh5L2NvbmZpZy1yZXNvbHZlclwiO1xuaW1wb3J0IHsgSGFzaCB9IGZyb20gXCJAc21pdGh5L2hhc2gtbm9kZVwiO1xuaW1wb3J0IHsgTk9ERV9NQVhfQVRURU1QVF9DT05GSUdfT1BUSU9OUywgTk9ERV9SRVRSWV9NT0RFX0NPTkZJR19PUFRJT05TIH0gZnJvbSBcIkBzbWl0aHkvbWlkZGxld2FyZS1yZXRyeVwiO1xuaW1wb3J0IHsgbG9hZENvbmZpZyBhcyBsb2FkTm9kZUNvbmZpZyB9IGZyb20gXCJAc21pdGh5L25vZGUtY29uZmlnLXByb3ZpZGVyXCI7XG5pbXBvcnQgeyBOb2RlSHR0cEhhbmRsZXIgYXMgUmVxdWVzdEhhbmRsZXIsIHN0cmVhbUNvbGxlY3RvciB9IGZyb20gXCJAc21pdGh5L25vZGUtaHR0cC1oYW5kbGVyXCI7XG5pbXBvcnQgeyBlbWl0V2FybmluZ0lmVW5zdXBwb3J0ZWRWZXJzaW9uLCBsb2FkQ29uZmlnc0ZvckRlZmF1bHRNb2RlIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgY2FsY3VsYXRlQm9keUxlbmd0aCB9IGZyb20gXCJAc21pdGh5L3V0aWwtYm9keS1sZW5ndGgtbm9kZVwiO1xuaW1wb3J0IHsgcmVzb2x2ZURlZmF1bHRzTW9kZUNvbmZpZyB9IGZyb20gXCJAc21pdGh5L3V0aWwtZGVmYXVsdHMtbW9kZS1ub2RlXCI7XG5pbXBvcnQgeyBERUZBVUxUX1JFVFJZX01PREUgfSBmcm9tIFwiQHNtaXRoeS91dGlsLXJldHJ5XCI7XG5pbXBvcnQgeyBnZXRSdW50aW1lQ29uZmlnIGFzIGdldFNoYXJlZFJ1bnRpbWVDb25maWcgfSBmcm9tIFwiLi9ydW50aW1lQ29uZmlnLnNoYXJlZFwiO1xuZXhwb3J0IGNvbnN0IGdldFJ1bnRpbWVDb25maWcgPSAoY29uZmlnKSA9PiB7XG4gICAgZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbihwcm9jZXNzLnZlcnNpb24pO1xuICAgIGNvbnN0IGRlZmF1bHRzTW9kZSA9IHJlc29sdmVEZWZhdWx0c01vZGVDb25maWcoY29uZmlnKTtcbiAgICBjb25zdCBkZWZhdWx0Q29uZmlnUHJvdmlkZXIgPSAoKSA9PiBkZWZhdWx0c01vZGUoKS50aGVuKGxvYWRDb25maWdzRm9yRGVmYXVsdE1vZGUpO1xuICAgIGNvbnN0IGNsaWVudFNoYXJlZFZhbHVlcyA9IGdldFNoYXJlZFJ1bnRpbWVDb25maWcoY29uZmlnKTtcbiAgICBhd3NDaGVja1ZlcnNpb24ocHJvY2Vzcy52ZXJzaW9uKTtcbiAgICBjb25zdCBsb2FkZXJDb25maWcgPSB7XG4gICAgICAgIHByb2ZpbGU6IGNvbmZpZz8ucHJvZmlsZSxcbiAgICAgICAgbG9nZ2VyOiBjbGllbnRTaGFyZWRWYWx1ZXMubG9nZ2VyLFxuICAgIH07XG4gICAgcmV0dXJuIHtcbiAgICAgICAgLi4uY2xpZW50U2hhcmVkVmFsdWVzLFxuICAgICAgICAuLi5jb25maWcsXG4gICAgICAgIHJ1bnRpbWU6IFwibm9kZVwiLFxuICAgICAgICBkZWZhdWx0c01vZGUsXG4gICAgICAgIGF1dGhTY2hlbWVQcmVmZXJlbmNlOiBjb25maWc/LmF1dGhTY2hlbWVQcmVmZXJlbmNlID8/IGxvYWROb2RlQ29uZmlnKE5PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgICAgICBib2R5TGVuZ3RoQ2hlY2tlcjogY29uZmlnPy5ib2R5TGVuZ3RoQ2hlY2tlciA/PyBjYWxjdWxhdGVCb2R5TGVuZ3RoLFxuICAgICAgICBkZWZhdWx0VXNlckFnZW50UHJvdmlkZXI6IGNvbmZpZz8uZGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyID8/XG4gICAgICAgICAgICBjcmVhdGVEZWZhdWx0VXNlckFnZW50UHJvdmlkZXIoeyBzZXJ2aWNlSWQ6IGNsaWVudFNoYXJlZFZhbHVlcy5zZXJ2aWNlSWQsIGNsaWVudFZlcnNpb246IHBhY2thZ2VJbmZvLnZlcnNpb24gfSksXG4gICAgICAgIG1heEF0dGVtcHRzOiBjb25maWc/Lm1heEF0dGVtcHRzID8/IGxvYWROb2RlQ29uZmlnKE5PREVfTUFYX0FUVEVNUFRfQ09ORklHX09QVElPTlMsIGNvbmZpZyksXG4gICAgICAgIHJlZ2lvbjogY29uZmlnPy5yZWdpb24gPz9cbiAgICAgICAgICAgIGxvYWROb2RlQ29uZmlnKE5PREVfUkVHSU9OX0NPTkZJR19PUFRJT05TLCB7IC4uLk5PREVfUkVHSU9OX0NPTkZJR19GSUxFX09QVElPTlMsIC4uLmxvYWRlckNvbmZpZyB9KSxcbiAgICAgICAgcmVxdWVzdEhhbmRsZXI6IFJlcXVlc3RIYW5kbGVyLmNyZWF0ZShjb25maWc/LnJlcXVlc3RIYW5kbGVyID8/IGRlZmF1bHRDb25maWdQcm92aWRlciksXG4gICAgICAgIHJldHJ5TW9kZTogY29uZmlnPy5yZXRyeU1vZGUgPz9cbiAgICAgICAgICAgIGxvYWROb2RlQ29uZmlnKHtcbiAgICAgICAgICAgICAgICAuLi5OT0RFX1JFVFJZX01PREVfQ09ORklHX09QVElPTlMsXG4gICAgICAgICAgICAgICAgZGVmYXVsdDogYXN5bmMgKCkgPT4gKGF3YWl0IGRlZmF1bHRDb25maWdQcm92aWRlcigpKS5yZXRyeU1vZGUgfHwgREVGQVVMVF9SRVRSWV9NT0RFLFxuICAgICAgICAgICAgfSwgY29uZmlnKSxcbiAgICAgICAgc2hhMjU2OiBjb25maWc/LnNoYTI1NiA/PyBIYXNoLmJpbmQobnVsbCwgXCJzaGEyNTZcIiksXG4gICAgICAgIHN0cmVhbUNvbGxlY3RvcjogY29uZmlnPy5zdHJlYW1Db2xsZWN0b3IgPz8gc3RyZWFtQ29sbGVjdG9yLFxuICAgICAgICB1c2VEdWFsc3RhY2tFbmRwb2ludDogY29uZmlnPy51c2VEdWFsc3RhY2tFbmRwb2ludCA/PyBsb2FkTm9kZUNvbmZpZyhOT0RFX1VTRV9EVUFMU1RBQ0tfRU5EUE9JTlRfQ09ORklHX09QVElPTlMsIGxvYWRlckNvbmZpZyksXG4gICAgICAgIHVzZUZpcHNFbmRwb2ludDogY29uZmlnPy51c2VGaXBzRW5kcG9pbnQgPz8gbG9hZE5vZGVDb25maWcoTk9ERV9VU0VfRklQU19FTkRQT0lOVF9DT05GSUdfT1BUSU9OUywgbG9hZGVyQ29uZmlnKSxcbiAgICAgICAgdXNlckFnZW50QXBwSWQ6IGNvbmZpZz8udXNlckFnZW50QXBwSWQgPz8gbG9hZE5vZGVDb25maWcoTk9ERV9BUFBfSURfQ09ORklHX09QVElPTlMsIGxvYWRlckNvbmZpZyksXG4gICAgfTtcbn07XG4iLCAiZXhwb3J0IGNvbnN0IGdldEh0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiA9IChydW50aW1lQ29uZmlnKSA9PiB7XG4gICAgY29uc3QgX2h0dHBBdXRoU2NoZW1lcyA9IHJ1bnRpbWVDb25maWcuaHR0cEF1dGhTY2hlbWVzO1xuICAgIGxldCBfaHR0cEF1dGhTY2hlbWVQcm92aWRlciA9IHJ1bnRpbWVDb25maWcuaHR0cEF1dGhTY2hlbWVQcm92aWRlcjtcbiAgICBsZXQgX2NyZWRlbnRpYWxzID0gcnVudGltZUNvbmZpZy5jcmVkZW50aWFscztcbiAgICByZXR1cm4ge1xuICAgICAgICBzZXRIdHRwQXV0aFNjaGVtZShodHRwQXV0aFNjaGVtZSkge1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSBfaHR0cEF1dGhTY2hlbWVzLmZpbmRJbmRleCgoc2NoZW1lKSA9PiBzY2hlbWUuc2NoZW1lSWQgPT09IGh0dHBBdXRoU2NoZW1lLnNjaGVtZUlkKTtcbiAgICAgICAgICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICBfaHR0cEF1dGhTY2hlbWVzLnB1c2goaHR0cEF1dGhTY2hlbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgX2h0dHBBdXRoU2NoZW1lcy5zcGxpY2UoaW5kZXgsIDEsIGh0dHBBdXRoU2NoZW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVzKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9odHRwQXV0aFNjaGVtZXM7XG4gICAgICAgIH0sXG4gICAgICAgIHNldEh0dHBBdXRoU2NoZW1lUHJvdmlkZXIoaHR0cEF1dGhTY2hlbWVQcm92aWRlcikge1xuICAgICAgICAgICAgX2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSBodHRwQXV0aFNjaGVtZVByb3ZpZGVyO1xuICAgICAgICB9LFxuICAgICAgICBodHRwQXV0aFNjaGVtZVByb3ZpZGVyKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9odHRwQXV0aFNjaGVtZVByb3ZpZGVyO1xuICAgICAgICB9LFxuICAgICAgICBzZXRDcmVkZW50aWFscyhjcmVkZW50aWFscykge1xuICAgICAgICAgICAgX2NyZWRlbnRpYWxzID0gY3JlZGVudGlhbHM7XG4gICAgICAgIH0sXG4gICAgICAgIGNyZWRlbnRpYWxzKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9jcmVkZW50aWFscztcbiAgICAgICAgfSxcbiAgICB9O1xufTtcbmV4cG9ydCBjb25zdCByZXNvbHZlSHR0cEF1dGhSdW50aW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIGh0dHBBdXRoU2NoZW1lczogY29uZmlnLmh0dHBBdXRoU2NoZW1lcygpLFxuICAgICAgICBodHRwQXV0aFNjaGVtZVByb3ZpZGVyOiBjb25maWcuaHR0cEF1dGhTY2hlbWVQcm92aWRlcigpLFxuICAgICAgICBjcmVkZW50aWFsczogY29uZmlnLmNyZWRlbnRpYWxzKCksXG4gICAgfTtcbn07XG4iLCAiaW1wb3J0IHsgZ2V0QXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiwgcmVzb2x2ZUF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24sIH0gZnJvbSBcIkBhd3Mtc2RrL3JlZ2lvbi1jb25maWctcmVzb2x2ZXJcIjtcbmltcG9ydCB7IGdldEh0dHBIYW5kbGVyRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiwgcmVzb2x2ZUh0dHBIYW5kbGVyUnVudGltZUNvbmZpZyB9IGZyb20gXCJAc21pdGh5L3Byb3RvY29sLWh0dHBcIjtcbmltcG9ydCB7IGdldERlZmF1bHRFeHRlbnNpb25Db25maWd1cmF0aW9uLCByZXNvbHZlRGVmYXVsdFJ1bnRpbWVDb25maWcgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyBnZXRIdHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24sIHJlc29sdmVIdHRwQXV0aFJ1bnRpbWVDb25maWcgfSBmcm9tIFwiLi9hdXRoL2h0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvblwiO1xuZXhwb3J0IGNvbnN0IHJlc29sdmVSdW50aW1lRXh0ZW5zaW9ucyA9IChydW50aW1lQ29uZmlnLCBleHRlbnNpb25zKSA9PiB7XG4gICAgY29uc3QgZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiA9IE9iamVjdC5hc3NpZ24oZ2V0QXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbihydW50aW1lQ29uZmlnKSwgZ2V0RGVmYXVsdEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24ocnVudGltZUNvbmZpZyksIGdldEh0dHBIYW5kbGVyRXh0ZW5zaW9uQ29uZmlndXJhdGlvbihydW50aW1lQ29uZmlnKSwgZ2V0SHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uKHJ1bnRpbWVDb25maWcpKTtcbiAgICBleHRlbnNpb25zLmZvckVhY2goKGV4dGVuc2lvbikgPT4gZXh0ZW5zaW9uLmNvbmZpZ3VyZShleHRlbnNpb25Db25maWd1cmF0aW9uKSk7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24ocnVudGltZUNvbmZpZywgcmVzb2x2ZUF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24oZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiksIHJlc29sdmVEZWZhdWx0UnVudGltZUNvbmZpZyhleHRlbnNpb25Db25maWd1cmF0aW9uKSwgcmVzb2x2ZUh0dHBIYW5kbGVyUnVudGltZUNvbmZpZyhleHRlbnNpb25Db25maWd1cmF0aW9uKSwgcmVzb2x2ZUh0dHBBdXRoUnVudGltZUNvbmZpZyhleHRlbnNpb25Db25maWd1cmF0aW9uKSk7XG59O1xuIiwgImltcG9ydCB7IGdldEhvc3RIZWFkZXJQbHVnaW4sIHJlc29sdmVIb3N0SGVhZGVyQ29uZmlnLCB9IGZyb20gXCJAYXdzLXNkay9taWRkbGV3YXJlLWhvc3QtaGVhZGVyXCI7XG5pbXBvcnQgeyBnZXRMb2dnZXJQbHVnaW4gfSBmcm9tIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1sb2dnZXJcIjtcbmltcG9ydCB7IGdldFJlY3Vyc2lvbkRldGVjdGlvblBsdWdpbiB9IGZyb20gXCJAYXdzLXNkay9taWRkbGV3YXJlLXJlY3Vyc2lvbi1kZXRlY3Rpb25cIjtcbmltcG9ydCB7IGdldFVzZXJBZ2VudFBsdWdpbiwgcmVzb2x2ZVVzZXJBZ2VudENvbmZpZywgfSBmcm9tIFwiQGF3cy1zZGsvbWlkZGxld2FyZS11c2VyLWFnZW50XCI7XG5pbXBvcnQgeyByZXNvbHZlUmVnaW9uQ29uZmlnIH0gZnJvbSBcIkBzbWl0aHkvY29uZmlnLXJlc29sdmVyXCI7XG5pbXBvcnQgeyBEZWZhdWx0SWRlbnRpdHlQcm92aWRlckNvbmZpZywgZ2V0SHR0cEF1dGhTY2hlbWVFbmRwb2ludFJ1bGVTZXRQbHVnaW4sIGdldEh0dHBTaWduaW5nUGx1Z2luLCB9IGZyb20gXCJAc21pdGh5L2NvcmVcIjtcbmltcG9ydCB7IGdldFNjaGVtYVNlcmRlUGx1Z2luIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IGdldENvbnRlbnRMZW5ndGhQbHVnaW4gfSBmcm9tIFwiQHNtaXRoeS9taWRkbGV3YXJlLWNvbnRlbnQtbGVuZ3RoXCI7XG5pbXBvcnQgeyByZXNvbHZlRW5kcG9pbnRDb25maWcsIH0gZnJvbSBcIkBzbWl0aHkvbWlkZGxld2FyZS1lbmRwb2ludFwiO1xuaW1wb3J0IHsgZ2V0UmV0cnlQbHVnaW4sIHJlc29sdmVSZXRyeUNvbmZpZywgfSBmcm9tIFwiQHNtaXRoeS9taWRkbGV3YXJlLXJldHJ5XCI7XG5pbXBvcnQgeyBDbGllbnQgYXMgX19DbGllbnQsIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgZGVmYXVsdFNpZ25pbkh0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyLCByZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWcsIH0gZnJvbSBcIi4vYXV0aC9odHRwQXV0aFNjaGVtZVByb3ZpZGVyXCI7XG5pbXBvcnQgeyByZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzIH0gZnJvbSBcIi4vZW5kcG9pbnQvRW5kcG9pbnRQYXJhbWV0ZXJzXCI7XG5pbXBvcnQgeyBnZXRSdW50aW1lQ29uZmlnIGFzIF9fZ2V0UnVudGltZUNvbmZpZyB9IGZyb20gXCIuL3J1bnRpbWVDb25maWdcIjtcbmltcG9ydCB7IHJlc29sdmVSdW50aW1lRXh0ZW5zaW9ucyB9IGZyb20gXCIuL3J1bnRpbWVFeHRlbnNpb25zXCI7XG5leHBvcnQgeyBfX0NsaWVudCB9O1xuZXhwb3J0IGNsYXNzIFNpZ25pbkNsaWVudCBleHRlbmRzIF9fQ2xpZW50IHtcbiAgICBjb25maWc7XG4gICAgY29uc3RydWN0b3IoLi4uW2NvbmZpZ3VyYXRpb25dKSB7XG4gICAgICAgIGNvbnN0IF9jb25maWdfMCA9IF9fZ2V0UnVudGltZUNvbmZpZyhjb25maWd1cmF0aW9uIHx8IHt9KTtcbiAgICAgICAgc3VwZXIoX2NvbmZpZ18wKTtcbiAgICAgICAgdGhpcy5pbml0Q29uZmlnID0gX2NvbmZpZ18wO1xuICAgICAgICBjb25zdCBfY29uZmlnXzEgPSByZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzKF9jb25maWdfMCk7XG4gICAgICAgIGNvbnN0IF9jb25maWdfMiA9IHJlc29sdmVVc2VyQWdlbnRDb25maWcoX2NvbmZpZ18xKTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ18zID0gcmVzb2x2ZVJldHJ5Q29uZmlnKF9jb25maWdfMik7XG4gICAgICAgIGNvbnN0IF9jb25maWdfNCA9IHJlc29sdmVSZWdpb25Db25maWcoX2NvbmZpZ18zKTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ181ID0gcmVzb2x2ZUhvc3RIZWFkZXJDb25maWcoX2NvbmZpZ180KTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ182ID0gcmVzb2x2ZUVuZHBvaW50Q29uZmlnKF9jb25maWdfNSk7XG4gICAgICAgIGNvbnN0IF9jb25maWdfNyA9IHJlc29sdmVIdHRwQXV0aFNjaGVtZUNvbmZpZyhfY29uZmlnXzYpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzggPSByZXNvbHZlUnVudGltZUV4dGVuc2lvbnMoX2NvbmZpZ183LCBjb25maWd1cmF0aW9uPy5leHRlbnNpb25zIHx8IFtdKTtcbiAgICAgICAgdGhpcy5jb25maWcgPSBfY29uZmlnXzg7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShnZXRTY2hlbWFTZXJkZVBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoZ2V0VXNlckFnZW50UGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShnZXRSZXRyeVBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoZ2V0Q29udGVudExlbmd0aFBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoZ2V0SG9zdEhlYWRlclBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoZ2V0TG9nZ2VyUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShnZXRSZWN1cnNpb25EZXRlY3Rpb25QbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGdldEh0dHBBdXRoU2NoZW1lRW5kcG9pbnRSdWxlU2V0UGx1Z2luKHRoaXMuY29uZmlnLCB7XG4gICAgICAgICAgICBodHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlcjogZGVmYXVsdFNpZ25pbkh0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyLFxuICAgICAgICAgICAgaWRlbnRpdHlQcm92aWRlckNvbmZpZ1Byb3ZpZGVyOiBhc3luYyAoY29uZmlnKSA9PiBuZXcgRGVmYXVsdElkZW50aXR5UHJvdmlkZXJDb25maWcoe1xuICAgICAgICAgICAgICAgIFwiYXdzLmF1dGgjc2lndjRcIjogY29uZmlnLmNyZWRlbnRpYWxzLFxuICAgICAgICAgICAgfSksXG4gICAgICAgIH0pKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGdldEh0dHBTaWduaW5nUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgfVxuICAgIGRlc3Ryb3koKSB7XG4gICAgICAgIHN1cGVyLmRlc3Ryb3koKTtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgZ2V0RW5kcG9pbnRQbHVnaW4gfSBmcm9tIFwiQHNtaXRoeS9taWRkbGV3YXJlLWVuZHBvaW50XCI7XG5pbXBvcnQgeyBDb21tYW5kIGFzICRDb21tYW5kIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgY29tbW9uUGFyYW1zIH0gZnJvbSBcIi4uL2VuZHBvaW50L0VuZHBvaW50UGFyYW1ldGVyc1wiO1xuaW1wb3J0IHsgQ3JlYXRlT0F1dGgyVG9rZW4kIH0gZnJvbSBcIi4uL3NjaGVtYXMvc2NoZW1hc18wXCI7XG5leHBvcnQgeyAkQ29tbWFuZCB9O1xuZXhwb3J0IGNsYXNzIENyZWF0ZU9BdXRoMlRva2VuQ29tbWFuZCBleHRlbmRzICRDb21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJTaWduaW5cIiwgXCJDcmVhdGVPQXV0aDJUb2tlblwiLCB7fSlcbiAgICAubihcIlNpZ25pbkNsaWVudFwiLCBcIkNyZWF0ZU9BdXRoMlRva2VuQ29tbWFuZFwiKVxuICAgIC5zYyhDcmVhdGVPQXV0aDJUb2tlbiQpXG4gICAgLmJ1aWxkKCkge1xufVxuIiwgImltcG9ydCB7IGNyZWF0ZUFnZ3JlZ2F0ZWRDbGllbnQgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyBDcmVhdGVPQXV0aDJUb2tlbkNvbW1hbmQsIH0gZnJvbSBcIi4vY29tbWFuZHMvQ3JlYXRlT0F1dGgyVG9rZW5Db21tYW5kXCI7XG5pbXBvcnQgeyBTaWduaW5DbGllbnQgfSBmcm9tIFwiLi9TaWduaW5DbGllbnRcIjtcbmNvbnN0IGNvbW1hbmRzID0ge1xuICAgIENyZWF0ZU9BdXRoMlRva2VuQ29tbWFuZCxcbn07XG5leHBvcnQgY2xhc3MgU2lnbmluIGV4dGVuZHMgU2lnbmluQ2xpZW50IHtcbn1cbmNyZWF0ZUFnZ3JlZ2F0ZWRDbGllbnQoY29tbWFuZHMsIFNpZ25pbik7XG4iLCAiZXhwb3J0ICogZnJvbSBcIi4vQ3JlYXRlT0F1dGgyVG9rZW5Db21tYW5kXCI7XG4iLCAiZXhwb3J0IGNvbnN0IE9BdXRoMkVycm9yQ29kZSA9IHtcbiAgICBBVVRIQ09ERV9FWFBJUkVEOiBcIkFVVEhDT0RFX0VYUElSRURcIixcbiAgICBJTlNVRkZJQ0lFTlRfUEVSTUlTU0lPTlM6IFwiSU5TVUZGSUNJRU5UX1BFUk1JU1NJT05TXCIsXG4gICAgSU5WQUxJRF9SRVFVRVNUOiBcIklOVkFMSURfUkVRVUVTVFwiLFxuICAgIFNFUlZFUl9FUlJPUjogXCJzZXJ2ZXJfZXJyb3JcIixcbiAgICBUT0tFTl9FWFBJUkVEOiBcIlRPS0VOX0VYUElSRURcIixcbiAgICBVU0VSX0NSRURFTlRJQUxTX0NIQU5HRUQ6IFwiVVNFUl9DUkVERU5USUFMU19DSEFOR0VEXCIsXG59O1xuIiwgImV4cG9ydCB7fTtcbiIsICJleHBvcnQgKiBmcm9tIFwiLi9TaWduaW5DbGllbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL1NpZ25pblwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tbWFuZHNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NjaGVtYXMvc2NoZW1hc18wXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9tb2RlbHMvZW51bXNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21vZGVscy9lcnJvcnNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21vZGVscy9tb2RlbHNfMFwiO1xuZXhwb3J0IHsgU2lnbmluU2VydmljZUV4Y2VwdGlvbiB9IGZyb20gXCIuL21vZGVscy9TaWduaW5TZXJ2aWNlRXhjZXB0aW9uXCI7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgY2xpZW50ID0gcmVxdWlyZSgnQGF3cy1zZGsvY29yZS9jbGllbnQnKTtcbnZhciBwcm9wZXJ0eVByb3ZpZGVyID0gcmVxdWlyZSgnQHNtaXRoeS9wcm9wZXJ0eS1wcm92aWRlcicpO1xudmFyIHNoYXJlZEluaUZpbGVMb2FkZXIgPSByZXF1aXJlKCdAc21pdGh5L3NoYXJlZC1pbmktZmlsZS1sb2FkZXInKTtcbnZhciBwcm90b2NvbEh0dHAgPSByZXF1aXJlKCdAc21pdGh5L3Byb3RvY29sLWh0dHAnKTtcbnZhciBub2RlX2NyeXB0byA9IHJlcXVpcmUoJ25vZGU6Y3J5cHRvJyk7XG52YXIgbm9kZV9mcyA9IHJlcXVpcmUoJ25vZGU6ZnMnKTtcbnZhciBub2RlX29zID0gcmVxdWlyZSgnbm9kZTpvcycpO1xudmFyIG5vZGVfcGF0aCA9IHJlcXVpcmUoJ25vZGU6cGF0aCcpO1xuXG5jbGFzcyBMb2dpbkNyZWRlbnRpYWxzRmV0Y2hlciB7XG4gICAgcHJvZmlsZURhdGE7XG4gICAgaW5pdDtcbiAgICBjYWxsZXJDbGllbnRDb25maWc7XG4gICAgc3RhdGljIFJFRlJFU0hfVEhSRVNIT0xEID0gNSAqIDYwICogMTAwMDtcbiAgICBjb25zdHJ1Y3Rvcihwcm9maWxlRGF0YSwgaW5pdCwgY2FsbGVyQ2xpZW50Q29uZmlnKSB7XG4gICAgICAgIHRoaXMucHJvZmlsZURhdGEgPSBwcm9maWxlRGF0YTtcbiAgICAgICAgdGhpcy5pbml0ID0gaW5pdDtcbiAgICAgICAgdGhpcy5jYWxsZXJDbGllbnRDb25maWcgPSBjYWxsZXJDbGllbnRDb25maWc7XG4gICAgfVxuICAgIGFzeW5jIGxvYWRDcmVkZW50aWFscygpIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSBhd2FpdCB0aGlzLmxvYWRUb2tlbigpO1xuICAgICAgICBpZiAoIXRva2VuKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoYEZhaWxlZCB0byBsb2FkIGEgdG9rZW4gZm9yIHNlc3Npb24gJHt0aGlzLmxvZ2luU2Vzc2lvbn0sIHBsZWFzZSByZS1hdXRoZW50aWNhdGUgdXNpbmcgYXdzIGxvZ2luYCwgeyB0cnlOZXh0TGluazogZmFsc2UsIGxvZ2dlcjogdGhpcy5sb2dnZXIgfSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYWNjZXNzVG9rZW4gPSB0b2tlbi5hY2Nlc3NUb2tlbjtcbiAgICAgICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgICAgICAgY29uc3QgZXhwaXJ5VGltZSA9IG5ldyBEYXRlKGFjY2Vzc1Rva2VuLmV4cGlyZXNBdCkuZ2V0VGltZSgpO1xuICAgICAgICBjb25zdCB0aW1lVW50aWxFeHBpcnkgPSBleHBpcnlUaW1lIC0gbm93O1xuICAgICAgICBpZiAodGltZVVudGlsRXhwaXJ5IDw9IExvZ2luQ3JlZGVudGlhbHNGZXRjaGVyLlJFRlJFU0hfVEhSRVNIT0xEKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yZWZyZXNoKHRva2VuKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgYWNjZXNzS2V5SWQ6IGFjY2Vzc1Rva2VuLmFjY2Vzc0tleUlkLFxuICAgICAgICAgICAgc2VjcmV0QWNjZXNzS2V5OiBhY2Nlc3NUb2tlbi5zZWNyZXRBY2Nlc3NLZXksXG4gICAgICAgICAgICBzZXNzaW9uVG9rZW46IGFjY2Vzc1Rva2VuLnNlc3Npb25Ub2tlbixcbiAgICAgICAgICAgIGFjY291bnRJZDogYWNjZXNzVG9rZW4uYWNjb3VudElkLFxuICAgICAgICAgICAgZXhwaXJhdGlvbjogbmV3IERhdGUoYWNjZXNzVG9rZW4uZXhwaXJlc0F0KSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgZ2V0IGxvZ2dlcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5pdD8ubG9nZ2VyO1xuICAgIH1cbiAgICBnZXQgbG9naW5TZXNzaW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5wcm9maWxlRGF0YS5sb2dpbl9zZXNzaW9uO1xuICAgIH1cbiAgICBhc3luYyByZWZyZXNoKHRva2VuKSB7XG4gICAgICAgIGNvbnN0IHsgU2lnbmluQ2xpZW50LCBDcmVhdGVPQXV0aDJUb2tlbkNvbW1hbmQgfSA9IGF3YWl0IGltcG9ydCgnQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvc2lnbmluJyk7XG4gICAgICAgIGNvbnN0IHsgbG9nZ2VyLCB1c2VyQWdlbnRBcHBJZCB9ID0gdGhpcy5jYWxsZXJDbGllbnRDb25maWcgPz8ge307XG4gICAgICAgIGNvbnN0IGlzSDIgPSAocmVxdWVzdEhhbmRsZXIpID0+IHtcbiAgICAgICAgICAgIHJldHVybiByZXF1ZXN0SGFuZGxlcj8ubWV0YWRhdGE/LmhhbmRsZXJQcm90b2NvbCA9PT0gXCJoMlwiO1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCByZXF1ZXN0SGFuZGxlciA9IGlzSDIodGhpcy5jYWxsZXJDbGllbnRDb25maWc/LnJlcXVlc3RIYW5kbGVyKVxuICAgICAgICAgICAgPyB1bmRlZmluZWRcbiAgICAgICAgICAgIDogdGhpcy5jYWxsZXJDbGllbnRDb25maWc/LnJlcXVlc3RIYW5kbGVyO1xuICAgICAgICBjb25zdCByZWdpb24gPSB0aGlzLnByb2ZpbGVEYXRhLnJlZ2lvbiA/PyAoYXdhaXQgdGhpcy5jYWxsZXJDbGllbnRDb25maWc/LnJlZ2lvbj8uKCkpID8/IHByb2Nlc3MuZW52LkFXU19SRUdJT047XG4gICAgICAgIGNvbnN0IGNsaWVudCA9IG5ldyBTaWduaW5DbGllbnQoe1xuICAgICAgICAgICAgY3JlZGVudGlhbHM6IHtcbiAgICAgICAgICAgICAgICBhY2Nlc3NLZXlJZDogXCJcIixcbiAgICAgICAgICAgICAgICBzZWNyZXRBY2Nlc3NLZXk6IFwiXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVnaW9uLFxuICAgICAgICAgICAgcmVxdWVzdEhhbmRsZXIsXG4gICAgICAgICAgICBsb2dnZXIsXG4gICAgICAgICAgICB1c2VyQWdlbnRBcHBJZCxcbiAgICAgICAgICAgIC4uLnRoaXMuaW5pdD8uY2xpZW50Q29uZmlnLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5jcmVhdGVEUG9QSW50ZXJjZXB0b3IoY2xpZW50Lm1pZGRsZXdhcmVTdGFjayk7XG4gICAgICAgIGNvbnN0IGNvbW1hbmRJbnB1dCA9IHtcbiAgICAgICAgICAgIHRva2VuSW5wdXQ6IHtcbiAgICAgICAgICAgICAgICBjbGllbnRJZDogdG9rZW4uY2xpZW50SWQsXG4gICAgICAgICAgICAgICAgcmVmcmVzaFRva2VuOiB0b2tlbi5yZWZyZXNoVG9rZW4sXG4gICAgICAgICAgICAgICAgZ3JhbnRUeXBlOiBcInJlZnJlc2hfdG9rZW5cIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5zZW5kKG5ldyBDcmVhdGVPQXV0aDJUb2tlbkNvbW1hbmQoY29tbWFuZElucHV0KSk7XG4gICAgICAgICAgICBjb25zdCB7IGFjY2Vzc0tleUlkLCBzZWNyZXRBY2Nlc3NLZXksIHNlc3Npb25Ub2tlbiB9ID0gcmVzcG9uc2UudG9rZW5PdXRwdXQ/LmFjY2Vzc1Rva2VuID8/IHt9O1xuICAgICAgICAgICAgY29uc3QgeyByZWZyZXNoVG9rZW4sIGV4cGlyZXNJbiB9ID0gcmVzcG9uc2UudG9rZW5PdXRwdXQgPz8ge307XG4gICAgICAgICAgICBpZiAoIWFjY2Vzc0tleUlkIHx8ICFzZWNyZXRBY2Nlc3NLZXkgfHwgIXNlc3Npb25Ub2tlbiB8fCAhcmVmcmVzaFRva2VuKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKFwiVG9rZW4gcmVmcmVzaCByZXNwb25zZSBtaXNzaW5nIHJlcXVpcmVkIGZpZWxkc1wiLCB7XG4gICAgICAgICAgICAgICAgICAgIGxvZ2dlcjogdGhpcy5sb2dnZXIsXG4gICAgICAgICAgICAgICAgICAgIHRyeU5leHRMaW5rOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGV4cGlyZXNJbk1zID0gKGV4cGlyZXNJbiA/PyA5MDApICogMTAwMDtcbiAgICAgICAgICAgIGNvbnN0IGV4cGlyYXRpb24gPSBuZXcgRGF0ZShEYXRlLm5vdygpICsgZXhwaXJlc0luTXMpO1xuICAgICAgICAgICAgY29uc3QgdXBkYXRlZFRva2VuID0ge1xuICAgICAgICAgICAgICAgIC4uLnRva2VuLFxuICAgICAgICAgICAgICAgIGFjY2Vzc1Rva2VuOiB7XG4gICAgICAgICAgICAgICAgICAgIC4uLnRva2VuLmFjY2Vzc1Rva2VuLFxuICAgICAgICAgICAgICAgICAgICBhY2Nlc3NLZXlJZDogYWNjZXNzS2V5SWQsXG4gICAgICAgICAgICAgICAgICAgIHNlY3JldEFjY2Vzc0tleTogc2VjcmV0QWNjZXNzS2V5LFxuICAgICAgICAgICAgICAgICAgICBzZXNzaW9uVG9rZW46IHNlc3Npb25Ub2tlbixcbiAgICAgICAgICAgICAgICAgICAgZXhwaXJlc0F0OiBleHBpcmF0aW9uLnRvSVNPU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICByZWZyZXNoVG9rZW46IHJlZnJlc2hUb2tlbixcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBhd2FpdCB0aGlzLnNhdmVUb2tlbih1cGRhdGVkVG9rZW4pO1xuICAgICAgICAgICAgY29uc3QgbmV3QWNjZXNzVG9rZW4gPSB1cGRhdGVkVG9rZW4uYWNjZXNzVG9rZW47XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGFjY2Vzc0tleUlkOiBuZXdBY2Nlc3NUb2tlbi5hY2Nlc3NLZXlJZCxcbiAgICAgICAgICAgICAgICBzZWNyZXRBY2Nlc3NLZXk6IG5ld0FjY2Vzc1Rva2VuLnNlY3JldEFjY2Vzc0tleSxcbiAgICAgICAgICAgICAgICBzZXNzaW9uVG9rZW46IG5ld0FjY2Vzc1Rva2VuLnNlc3Npb25Ub2tlbixcbiAgICAgICAgICAgICAgICBhY2NvdW50SWQ6IG5ld0FjY2Vzc1Rva2VuLmFjY291bnRJZCxcbiAgICAgICAgICAgICAgICBleHBpcmF0aW9uLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGlmIChlcnJvci5uYW1lID09PSBcIkFjY2Vzc0RlbmllZEV4Y2VwdGlvblwiKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZXJyb3JUeXBlID0gZXJyb3IuZXJyb3I7XG4gICAgICAgICAgICAgICAgbGV0IG1lc3NhZ2U7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChlcnJvclR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBcIlRPS0VOX0VYUElSRURcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBcIllvdXIgc2Vzc2lvbiBoYXMgZXhwaXJlZC4gUGxlYXNlIHJlYXV0aGVudGljYXRlLlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgXCJVU0VSX0NSRURFTlRJQUxTX0NIQU5HRURcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVW5hYmxlIHRvIHJlZnJlc2ggY3JlZGVudGlhbHMgYmVjYXVzZSBvZiBhIGNoYW5nZSBpbiB5b3VyIHBhc3N3b3JkLiBQbGVhc2UgcmVhdXRoZW50aWNhdGUgd2l0aCB5b3VyIG5ldyBwYXNzd29yZC5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIFwiSU5TVUZGSUNJRU5UX1BFUk1JU1NJT05TXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlVuYWJsZSB0byByZWZyZXNoIGNyZWRlbnRpYWxzIGR1ZSB0byBpbnN1ZmZpY2llbnQgcGVybWlzc2lvbnMuIFlvdSBtYXkgYmUgbWlzc2luZyBwZXJtaXNzaW9uIGZvciB0aGUgJ0NyZWF0ZU9BdXRoMlRva2VuJyBhY3Rpb24uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBgRmFpbGVkIHRvIHJlZnJlc2ggdG9rZW46ICR7U3RyaW5nKGVycm9yKX0uIFBsZWFzZSByZS1hdXRoZW50aWNhdGUgdXNpbmcgXFxgYXdzIGxvZ2luXFxgYDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKG1lc3NhZ2UsIHsgbG9nZ2VyOiB0aGlzLmxvZ2dlciwgdHJ5TmV4dExpbms6IGZhbHNlIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKGBGYWlsZWQgdG8gcmVmcmVzaCB0b2tlbjogJHtTdHJpbmcoZXJyb3IpfS4gUGxlYXNlIHJlLWF1dGhlbnRpY2F0ZSB1c2luZyBhd3MgbG9naW5gLCB7IGxvZ2dlcjogdGhpcy5sb2dnZXIgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgYXN5bmMgbG9hZFRva2VuKCkge1xuICAgICAgICBjb25zdCB0b2tlbkZpbGVQYXRoID0gdGhpcy5nZXRUb2tlbkZpbGVQYXRoKCk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBsZXQgdG9rZW5EYXRhO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICB0b2tlbkRhdGEgPSBhd2FpdCBzaGFyZWRJbmlGaWxlTG9hZGVyLnJlYWRGaWxlKHRva2VuRmlsZVBhdGgsIHsgaWdub3JlQ2FjaGU6IHRoaXMuaW5pdD8uaWdub3JlQ2FjaGUgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCB7XG4gICAgICAgICAgICAgICAgdG9rZW5EYXRhID0gYXdhaXQgbm9kZV9mcy5wcm9taXNlcy5yZWFkRmlsZSh0b2tlbkZpbGVQYXRoLCBcInV0ZjhcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCB0b2tlbiA9IEpTT04ucGFyc2UodG9rZW5EYXRhKTtcbiAgICAgICAgICAgIGNvbnN0IG1pc3NpbmdGaWVsZHMgPSBbXCJhY2Nlc3NUb2tlblwiLCBcImNsaWVudElkXCIsIFwicmVmcmVzaFRva2VuXCIsIFwiZHBvcEtleVwiXS5maWx0ZXIoKGspID0+ICF0b2tlbltrXSk7XG4gICAgICAgICAgICBpZiAoIXRva2VuLmFjY2Vzc1Rva2VuPy5hY2NvdW50SWQpIHtcbiAgICAgICAgICAgICAgICBtaXNzaW5nRmllbGRzLnB1c2goXCJhY2NvdW50SWRcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobWlzc2luZ0ZpZWxkcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKGBUb2tlbiB2YWxpZGF0aW9uIGZhaWxlZCwgbWlzc2luZyBmaWVsZHM6ICR7bWlzc2luZ0ZpZWxkcy5qb2luKFwiLCBcIil9YCwge1xuICAgICAgICAgICAgICAgICAgICBsb2dnZXI6IHRoaXMubG9nZ2VyLFxuICAgICAgICAgICAgICAgICAgICB0cnlOZXh0TGluazogZmFsc2UsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdG9rZW47XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoYEZhaWxlZCB0byBsb2FkIHRva2VuIGZyb20gJHt0b2tlbkZpbGVQYXRofTogJHtTdHJpbmcoZXJyb3IpfWAsIHtcbiAgICAgICAgICAgICAgICBsb2dnZXI6IHRoaXMubG9nZ2VyLFxuICAgICAgICAgICAgICAgIHRyeU5leHRMaW5rOiBmYWxzZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIGFzeW5jIHNhdmVUb2tlbih0b2tlbikge1xuICAgICAgICBjb25zdCB0b2tlbkZpbGVQYXRoID0gdGhpcy5nZXRUb2tlbkZpbGVQYXRoKCk7XG4gICAgICAgIGNvbnN0IGRpcmVjdG9yeSA9IG5vZGVfcGF0aC5kaXJuYW1lKHRva2VuRmlsZVBhdGgpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgYXdhaXQgbm9kZV9mcy5wcm9taXNlcy5ta2RpcihkaXJlY3RvcnksIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICB9XG4gICAgICAgIGF3YWl0IG5vZGVfZnMucHJvbWlzZXMud3JpdGVGaWxlKHRva2VuRmlsZVBhdGgsIEpTT04uc3RyaW5naWZ5KHRva2VuLCBudWxsLCAyKSwgXCJ1dGY4XCIpO1xuICAgIH1cbiAgICBnZXRUb2tlbkZpbGVQYXRoKCkge1xuICAgICAgICBjb25zdCBkaXJlY3RvcnkgPSBwcm9jZXNzLmVudi5BV1NfTE9HSU5fQ0FDSEVfRElSRUNUT1JZID8/IG5vZGVfcGF0aC5qb2luKG5vZGVfb3MuaG9tZWRpcigpLCBcIi5hd3NcIiwgXCJsb2dpblwiLCBcImNhY2hlXCIpO1xuICAgICAgICBjb25zdCBsb2dpblNlc3Npb25CeXRlcyA9IEJ1ZmZlci5mcm9tKHRoaXMubG9naW5TZXNzaW9uLCBcInV0ZjhcIik7XG4gICAgICAgIGNvbnN0IGxvZ2luU2Vzc2lvblNoYTI1NiA9IG5vZGVfY3J5cHRvLmNyZWF0ZUhhc2goXCJzaGEyNTZcIikudXBkYXRlKGxvZ2luU2Vzc2lvbkJ5dGVzKS5kaWdlc3QoXCJoZXhcIik7XG4gICAgICAgIHJldHVybiBub2RlX3BhdGguam9pbihkaXJlY3RvcnksIGAke2xvZ2luU2Vzc2lvblNoYTI1Nn0uanNvbmApO1xuICAgIH1cbiAgICBkZXJUb1Jhd1NpZ25hdHVyZShkZXJTaWduYXR1cmUpIHtcbiAgICAgICAgbGV0IG9mZnNldCA9IDI7XG4gICAgICAgIGlmIChkZXJTaWduYXR1cmVbb2Zmc2V0XSAhPT0gMHgwMikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBERVIgc2lnbmF0dXJlXCIpO1xuICAgICAgICB9XG4gICAgICAgIG9mZnNldCsrO1xuICAgICAgICBjb25zdCByTGVuZ3RoID0gZGVyU2lnbmF0dXJlW29mZnNldCsrXTtcbiAgICAgICAgbGV0IHIgPSBkZXJTaWduYXR1cmUuc3ViYXJyYXkob2Zmc2V0LCBvZmZzZXQgKyByTGVuZ3RoKTtcbiAgICAgICAgb2Zmc2V0ICs9IHJMZW5ndGg7XG4gICAgICAgIGlmIChkZXJTaWduYXR1cmVbb2Zmc2V0XSAhPT0gMHgwMikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBERVIgc2lnbmF0dXJlXCIpO1xuICAgICAgICB9XG4gICAgICAgIG9mZnNldCsrO1xuICAgICAgICBjb25zdCBzTGVuZ3RoID0gZGVyU2lnbmF0dXJlW29mZnNldCsrXTtcbiAgICAgICAgbGV0IHMgPSBkZXJTaWduYXR1cmUuc3ViYXJyYXkob2Zmc2V0LCBvZmZzZXQgKyBzTGVuZ3RoKTtcbiAgICAgICAgciA9IHJbMF0gPT09IDB4MDAgPyByLnN1YmFycmF5KDEpIDogcjtcbiAgICAgICAgcyA9IHNbMF0gPT09IDB4MDAgPyBzLnN1YmFycmF5KDEpIDogcztcbiAgICAgICAgY29uc3QgclBhZGRlZCA9IEJ1ZmZlci5jb25jYXQoW0J1ZmZlci5hbGxvYygzMiAtIHIubGVuZ3RoKSwgcl0pO1xuICAgICAgICBjb25zdCBzUGFkZGVkID0gQnVmZmVyLmNvbmNhdChbQnVmZmVyLmFsbG9jKDMyIC0gcy5sZW5ndGgpLCBzXSk7XG4gICAgICAgIHJldHVybiBCdWZmZXIuY29uY2F0KFtyUGFkZGVkLCBzUGFkZGVkXSk7XG4gICAgfVxuICAgIGNyZWF0ZURQb1BJbnRlcmNlcHRvcihtaWRkbGV3YXJlU3RhY2spIHtcbiAgICAgICAgbWlkZGxld2FyZVN0YWNrLmFkZCgobmV4dCkgPT4gYXN5bmMgKGFyZ3MpID0+IHtcbiAgICAgICAgICAgIGlmIChwcm90b2NvbEh0dHAuSHR0cFJlcXVlc3QuaXNJbnN0YW5jZShhcmdzLnJlcXVlc3QpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdCA9IGFyZ3MucmVxdWVzdDtcbiAgICAgICAgICAgICAgICBjb25zdCBhY3R1YWxFbmRwb2ludCA9IGAke3JlcXVlc3QucHJvdG9jb2x9Ly8ke3JlcXVlc3QuaG9zdG5hbWV9JHtyZXF1ZXN0LnBvcnQgPyBgOiR7cmVxdWVzdC5wb3J0fWAgOiBcIlwifSR7cmVxdWVzdC5wYXRofWA7XG4gICAgICAgICAgICAgICAgY29uc3QgZHBvcCA9IGF3YWl0IHRoaXMuZ2VuZXJhdGVEcG9wKHJlcXVlc3QubWV0aG9kLCBhY3R1YWxFbmRwb2ludCk7XG4gICAgICAgICAgICAgICAgcmVxdWVzdC5oZWFkZXJzID0ge1xuICAgICAgICAgICAgICAgICAgICAuLi5yZXF1ZXN0LmhlYWRlcnMsXG4gICAgICAgICAgICAgICAgICAgIERQb1A6IGRwb3AsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBuZXh0KGFyZ3MpO1xuICAgICAgICB9LCB7XG4gICAgICAgICAgICBzdGVwOiBcImZpbmFsaXplUmVxdWVzdFwiLFxuICAgICAgICAgICAgbmFtZTogXCJkcG9wSW50ZXJjZXB0b3JcIixcbiAgICAgICAgICAgIG92ZXJyaWRlOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgYXN5bmMgZ2VuZXJhdGVEcG9wKG1ldGhvZCA9IFwiUE9TVFwiLCBlbmRwb2ludCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IGF3YWl0IHRoaXMubG9hZFRva2VuKCk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBwcml2YXRlS2V5ID0gbm9kZV9jcnlwdG8uY3JlYXRlUHJpdmF0ZUtleSh7XG4gICAgICAgICAgICAgICAga2V5OiB0b2tlbi5kcG9wS2V5LFxuICAgICAgICAgICAgICAgIGZvcm1hdDogXCJwZW1cIixcbiAgICAgICAgICAgICAgICB0eXBlOiBcInNlYzFcIixcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29uc3QgcHVibGljS2V5ID0gbm9kZV9jcnlwdG8uY3JlYXRlUHVibGljS2V5KHByaXZhdGVLZXkpO1xuICAgICAgICAgICAgY29uc3QgcHVibGljRGVyID0gcHVibGljS2V5LmV4cG9ydCh7IGZvcm1hdDogXCJkZXJcIiwgdHlwZTogXCJzcGtpXCIgfSk7XG4gICAgICAgICAgICBsZXQgcG9pbnRTdGFydCA9IC0xO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwdWJsaWNEZXIubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBpZiAocHVibGljRGVyW2ldID09PSAweDA0KSB7XG4gICAgICAgICAgICAgICAgICAgIHBvaW50U3RhcnQgPSBpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCB4ID0gcHVibGljRGVyLnNsaWNlKHBvaW50U3RhcnQgKyAxLCBwb2ludFN0YXJ0ICsgMzMpO1xuICAgICAgICAgICAgY29uc3QgeSA9IHB1YmxpY0Rlci5zbGljZShwb2ludFN0YXJ0ICsgMzMsIHBvaW50U3RhcnQgKyA2NSk7XG4gICAgICAgICAgICBjb25zdCBoZWFkZXIgPSB7XG4gICAgICAgICAgICAgICAgYWxnOiBcIkVTMjU2XCIsXG4gICAgICAgICAgICAgICAgdHlwOiBcImRwb3Arand0XCIsXG4gICAgICAgICAgICAgICAgandrOiB7XG4gICAgICAgICAgICAgICAgICAgIGt0eTogXCJFQ1wiLFxuICAgICAgICAgICAgICAgICAgICBjcnY6IFwiUC0yNTZcIixcbiAgICAgICAgICAgICAgICAgICAgeDogeC50b1N0cmluZyhcImJhc2U2NHVybFwiKSxcbiAgICAgICAgICAgICAgICAgICAgeTogeS50b1N0cmluZyhcImJhc2U2NHVybFwiKSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGNvbnN0IHBheWxvYWQgPSB7XG4gICAgICAgICAgICAgICAganRpOiBjcnlwdG8ucmFuZG9tVVVJRCgpLFxuICAgICAgICAgICAgICAgIGh0bTogbWV0aG9kLFxuICAgICAgICAgICAgICAgIGh0dTogZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgaWF0OiBNYXRoLmZsb29yKERhdGUubm93KCkgLyAxMDAwKSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBjb25zdCBoZWFkZXJCNjQgPSBCdWZmZXIuZnJvbShKU09OLnN0cmluZ2lmeShoZWFkZXIpKS50b1N0cmluZyhcImJhc2U2NHVybFwiKTtcbiAgICAgICAgICAgIGNvbnN0IHBheWxvYWRCNjQgPSBCdWZmZXIuZnJvbShKU09OLnN0cmluZ2lmeShwYXlsb2FkKSkudG9TdHJpbmcoXCJiYXNlNjR1cmxcIik7XG4gICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gYCR7aGVhZGVyQjY0fS4ke3BheWxvYWRCNjR9YDtcbiAgICAgICAgICAgIGNvbnN0IGFzbjFTaWduYXR1cmUgPSBub2RlX2NyeXB0by5zaWduKFwic2hhMjU2XCIsIEJ1ZmZlci5mcm9tKG1lc3NhZ2UpLCBwcml2YXRlS2V5KTtcbiAgICAgICAgICAgIGNvbnN0IHJhd1NpZ25hdHVyZSA9IHRoaXMuZGVyVG9SYXdTaWduYXR1cmUoYXNuMVNpZ25hdHVyZSk7XG4gICAgICAgICAgICBjb25zdCBzaWduYXR1cmVCNjQgPSByYXdTaWduYXR1cmUudG9TdHJpbmcoXCJiYXNlNjR1cmxcIik7XG4gICAgICAgICAgICByZXR1cm4gYCR7bWVzc2FnZX0uJHtzaWduYXR1cmVCNjR9YDtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLkNyZWRlbnRpYWxzUHJvdmlkZXJFcnJvcihgRmFpbGVkIHRvIGdlbmVyYXRlIERwb3AgcHJvb2Y6ICR7ZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiBTdHJpbmcoZXJyb3IpfWAsIHsgbG9nZ2VyOiB0aGlzLmxvZ2dlciwgdHJ5TmV4dExpbms6IGZhbHNlIH0pO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5jb25zdCBmcm9tTG9naW5DcmVkZW50aWFscyA9IChpbml0KSA9PiBhc3luYyAoeyBjYWxsZXJDbGllbnRDb25maWcgfSA9IHt9KSA9PiB7XG4gICAgaW5pdD8ubG9nZ2VyPy5kZWJ1Zz8uKFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlcnMgLSBmcm9tTG9naW5DcmVkZW50aWFsc1wiKTtcbiAgICBjb25zdCBwcm9maWxlcyA9IGF3YWl0IHNoYXJlZEluaUZpbGVMb2FkZXIucGFyc2VLbm93bkZpbGVzKGluaXQgfHwge30pO1xuICAgIGNvbnN0IHByb2ZpbGVOYW1lID0gc2hhcmVkSW5pRmlsZUxvYWRlci5nZXRQcm9maWxlTmFtZSh7XG4gICAgICAgIHByb2ZpbGU6IGluaXQ/LnByb2ZpbGUgPz8gY2FsbGVyQ2xpZW50Q29uZmlnPy5wcm9maWxlLFxuICAgIH0pO1xuICAgIGNvbnN0IHByb2ZpbGUgPSBwcm9maWxlc1twcm9maWxlTmFtZV07XG4gICAgaWYgKCFwcm9maWxlPy5sb2dpbl9zZXNzaW9uKSB7XG4gICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLkNyZWRlbnRpYWxzUHJvdmlkZXJFcnJvcihgUHJvZmlsZSAke3Byb2ZpbGVOYW1lfSBkb2VzIG5vdCBjb250YWluIGxvZ2luX3Nlc3Npb24uYCwge1xuICAgICAgICAgICAgdHJ5TmV4dExpbms6IHRydWUsXG4gICAgICAgICAgICBsb2dnZXI6IGluaXQ/LmxvZ2dlcixcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IGZldGNoZXIgPSBuZXcgTG9naW5DcmVkZW50aWFsc0ZldGNoZXIocHJvZmlsZSwgaW5pdCwgY2FsbGVyQ2xpZW50Q29uZmlnKTtcbiAgICBjb25zdCBjcmVkZW50aWFscyA9IGF3YWl0IGZldGNoZXIubG9hZENyZWRlbnRpYWxzKCk7XG4gICAgcmV0dXJuIGNsaWVudC5zZXRDcmVkZW50aWFsRmVhdHVyZShjcmVkZW50aWFscywgXCJDUkVERU5USUFMU19MT0dJTlwiLCBcIkFEXCIpO1xufTtcblxuZXhwb3J0cy5mcm9tTG9naW5DcmVkZW50aWFscyA9IGZyb21Mb2dpbkNyZWRlbnRpYWxzO1xuIiwgImltcG9ydCB7IHJlc29sdmVBd3NTZGtTaWdWNENvbmZpZyB9IGZyb20gXCJAYXdzLXNkay9jb3JlXCI7XG5pbXBvcnQgeyBnZXRTbWl0aHlDb250ZXh0LCBub3JtYWxpemVQcm92aWRlciB9IGZyb20gXCJAc21pdGh5L3V0aWwtbWlkZGxld2FyZVwiO1xuaW1wb3J0IHsgU1RTQ2xpZW50IH0gZnJvbSBcIi4uL1NUU0NsaWVudFwiO1xuZXhwb3J0IGNvbnN0IGRlZmF1bHRTVFNIdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlciA9IGFzeW5jIChjb25maWcsIGNvbnRleHQsIGlucHV0KSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgb3BlcmF0aW9uOiBnZXRTbWl0aHlDb250ZXh0KGNvbnRleHQpLm9wZXJhdGlvbixcbiAgICAgICAgcmVnaW9uOiAoYXdhaXQgbm9ybWFsaXplUHJvdmlkZXIoY29uZmlnLnJlZ2lvbikoKSkgfHxcbiAgICAgICAgICAgICgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiZXhwZWN0ZWQgYHJlZ2lvbmAgdG8gYmUgY29uZmlndXJlZCBmb3IgYGF3cy5hdXRoI3NpZ3Y0YFwiKTtcbiAgICAgICAgICAgIH0pKCksXG4gICAgfTtcbn07XG5mdW5jdGlvbiBjcmVhdGVBd3NBdXRoU2lndjRIdHRwQXV0aE9wdGlvbihhdXRoUGFyYW1ldGVycykge1xuICAgIHJldHVybiB7XG4gICAgICAgIHNjaGVtZUlkOiBcImF3cy5hdXRoI3NpZ3Y0XCIsXG4gICAgICAgIHNpZ25pbmdQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICBuYW1lOiBcInN0c1wiLFxuICAgICAgICAgICAgcmVnaW9uOiBhdXRoUGFyYW1ldGVycy5yZWdpb24sXG4gICAgICAgIH0sXG4gICAgICAgIHByb3BlcnRpZXNFeHRyYWN0b3I6IChjb25maWcsIGNvbnRleHQpID0+ICh7XG4gICAgICAgICAgICBzaWduaW5nUHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgIGNvbmZpZyxcbiAgICAgICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgfTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVNtaXRoeUFwaU5vQXV0aEh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc2NoZW1lSWQ6IFwic21pdGh5LmFwaSNub0F1dGhcIixcbiAgICB9O1xufVxuZXhwb3J0IGNvbnN0IGRlZmF1bHRTVFNIdHRwQXV0aFNjaGVtZVByb3ZpZGVyID0gKGF1dGhQYXJhbWV0ZXJzKSA9PiB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IFtdO1xuICAgIHN3aXRjaCAoYXV0aFBhcmFtZXRlcnMub3BlcmF0aW9uKSB7XG4gICAgICAgIGNhc2UgXCJBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5XCI6IHtcbiAgICAgICAgICAgIG9wdGlvbnMucHVzaChjcmVhdGVTbWl0aHlBcGlOb0F1dGhIdHRwQXV0aE9wdGlvbihhdXRoUGFyYW1ldGVycykpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgb3B0aW9ucy5wdXNoKGNyZWF0ZUF3c0F1dGhTaWd2NEh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG9wdGlvbnM7XG59O1xuZXhwb3J0IGNvbnN0IHJlc29sdmVTdHNBdXRoQ29uZmlnID0gKGlucHV0KSA9PiBPYmplY3QuYXNzaWduKGlucHV0LCB7XG4gICAgc3RzQ2xpZW50Q3RvcjogU1RTQ2xpZW50LFxufSk7XG5leHBvcnQgY29uc3QgcmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIGNvbnN0IGNvbmZpZ18wID0gcmVzb2x2ZVN0c0F1dGhDb25maWcoY29uZmlnKTtcbiAgICBjb25zdCBjb25maWdfMSA9IHJlc29sdmVBd3NTZGtTaWdWNENvbmZpZyhjb25maWdfMCk7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oY29uZmlnXzEsIHtcbiAgICAgICAgYXV0aFNjaGVtZVByZWZlcmVuY2U6IG5vcm1hbGl6ZVByb3ZpZGVyKGNvbmZpZy5hdXRoU2NoZW1lUHJlZmVyZW5jZSA/PyBbXSksXG4gICAgfSk7XG59O1xuIiwgImV4cG9ydCBjb25zdCByZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzID0gKG9wdGlvbnMpID0+IHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihvcHRpb25zLCB7XG4gICAgICAgIHVzZUR1YWxzdGFja0VuZHBvaW50OiBvcHRpb25zLnVzZUR1YWxzdGFja0VuZHBvaW50ID8/IGZhbHNlLFxuICAgICAgICB1c2VGaXBzRW5kcG9pbnQ6IG9wdGlvbnMudXNlRmlwc0VuZHBvaW50ID8/IGZhbHNlLFxuICAgICAgICB1c2VHbG9iYWxFbmRwb2ludDogb3B0aW9ucy51c2VHbG9iYWxFbmRwb2ludCA/PyBmYWxzZSxcbiAgICAgICAgZGVmYXVsdFNpZ25pbmdOYW1lOiBcInN0c1wiLFxuICAgIH0pO1xufTtcbmV4cG9ydCBjb25zdCBjb21tb25QYXJhbXMgPSB7XG4gICAgVXNlR2xvYmFsRW5kcG9pbnQ6IHsgdHlwZTogXCJidWlsdEluUGFyYW1zXCIsIG5hbWU6IFwidXNlR2xvYmFsRW5kcG9pbnRcIiB9LFxuICAgIFVzZUZJUFM6IHsgdHlwZTogXCJidWlsdEluUGFyYW1zXCIsIG5hbWU6IFwidXNlRmlwc0VuZHBvaW50XCIgfSxcbiAgICBFbmRwb2ludDogeyB0eXBlOiBcImJ1aWx0SW5QYXJhbXNcIiwgbmFtZTogXCJlbmRwb2ludFwiIH0sXG4gICAgUmVnaW9uOiB7IHR5cGU6IFwiYnVpbHRJblBhcmFtc1wiLCBuYW1lOiBcInJlZ2lvblwiIH0sXG4gICAgVXNlRHVhbFN0YWNrOiB7IHR5cGU6IFwiYnVpbHRJblBhcmFtc1wiLCBuYW1lOiBcInVzZUR1YWxzdGFja0VuZHBvaW50XCIgfSxcbn07XG4iLCAiY29uc3QgRiA9IFwicmVxdWlyZWRcIiwgRyA9IFwidHlwZVwiLCBIID0gXCJmblwiLCBJID0gXCJhcmd2XCIsIEogPSBcInJlZlwiO1xuY29uc3QgYSA9IGZhbHNlLCBiID0gdHJ1ZSwgYyA9IFwiYm9vbGVhbkVxdWFsc1wiLCBkID0gXCJzdHJpbmdFcXVhbHNcIiwgZSA9IFwic2lndjRcIiwgZiA9IFwic3RzXCIsIGcgPSBcInVzLWVhc3QtMVwiLCBoID0gXCJlbmRwb2ludFwiLCBpID0gXCJodHRwczovL3N0cy57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH1cIiwgaiA9IFwidHJlZVwiLCBrID0gXCJlcnJvclwiLCBsID0gXCJnZXRBdHRyXCIsIG0gPSB7IFtGXTogZmFsc2UsIFtHXTogXCJzdHJpbmdcIiB9LCBuID0geyBbRl06IHRydWUsIFwiZGVmYXVsdFwiOiBmYWxzZSwgW0ddOiBcImJvb2xlYW5cIiB9LCBvID0geyBbSl06IFwiRW5kcG9pbnRcIiB9LCBwID0geyBbSF06IFwiaXNTZXRcIiwgW0ldOiBbeyBbSl06IFwiUmVnaW9uXCIgfV0gfSwgcSA9IHsgW0pdOiBcIlJlZ2lvblwiIH0sIHIgPSB7IFtIXTogXCJhd3MucGFydGl0aW9uXCIsIFtJXTogW3FdLCBcImFzc2lnblwiOiBcIlBhcnRpdGlvblJlc3VsdFwiIH0sIHMgPSB7IFtKXTogXCJVc2VGSVBTXCIgfSwgdCA9IHsgW0pdOiBcIlVzZUR1YWxTdGFja1wiIH0sIHUgPSB7IFwidXJsXCI6IFwiaHR0cHM6Ly9zdHMuYW1hem9uYXdzLmNvbVwiLCBcInByb3BlcnRpZXNcIjogeyBcImF1dGhTY2hlbWVzXCI6IFt7IFwibmFtZVwiOiBlLCBcInNpZ25pbmdOYW1lXCI6IGYsIFwic2lnbmluZ1JlZ2lvblwiOiBnIH1dIH0sIFwiaGVhZGVyc1wiOiB7fSB9LCB2ID0ge30sIHcgPSB7IFwiY29uZGl0aW9uc1wiOiBbeyBbSF06IGQsIFtJXTogW3EsIFwiYXdzLWdsb2JhbFwiXSB9XSwgW2hdOiB1LCBbR106IGggfSwgeCA9IHsgW0hdOiBjLCBbSV06IFtzLCB0cnVlXSB9LCB5ID0geyBbSF06IGMsIFtJXTogW3QsIHRydWVdIH0sIHogPSB7IFtIXTogbCwgW0ldOiBbeyBbSl06IFwiUGFydGl0aW9uUmVzdWx0XCIgfSwgXCJzdXBwb3J0c0ZJUFNcIl0gfSwgQSA9IHsgW0pdOiBcIlBhcnRpdGlvblJlc3VsdFwiIH0sIEIgPSB7IFtIXTogYywgW0ldOiBbdHJ1ZSwgeyBbSF06IGwsIFtJXTogW0EsIFwic3VwcG9ydHNEdWFsU3RhY2tcIl0gfV0gfSwgQyA9IFt7IFtIXTogXCJpc1NldFwiLCBbSV06IFtvXSB9XSwgRCA9IFt4XSwgRSA9IFt5XTtcbmNvbnN0IF9kYXRhID0geyB2ZXJzaW9uOiBcIjEuMFwiLCBwYXJhbWV0ZXJzOiB7IFJlZ2lvbjogbSwgVXNlRHVhbFN0YWNrOiBuLCBVc2VGSVBTOiBuLCBFbmRwb2ludDogbSwgVXNlR2xvYmFsRW5kcG9pbnQ6IG4gfSwgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IFt7IFtIXTogYywgW0ldOiBbeyBbSl06IFwiVXNlR2xvYmFsRW5kcG9pbnRcIiB9LCBiXSB9LCB7IFtIXTogXCJub3RcIiwgW0ldOiBDIH0sIHAsIHIsIHsgW0hdOiBjLCBbSV06IFtzLCBhXSB9LCB7IFtIXTogYywgW0ldOiBbdCwgYV0gfV0sIHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbeyBbSF06IGQsIFtJXTogW3EsIFwiYXAtbm9ydGhlYXN0LTFcIl0gfV0sIGVuZHBvaW50OiB1LCBbR106IGggfSwgeyBjb25kaXRpb25zOiBbeyBbSF06IGQsIFtJXTogW3EsIFwiYXAtc291dGgtMVwiXSB9XSwgZW5kcG9pbnQ6IHUsIFtHXTogaCB9LCB7IGNvbmRpdGlvbnM6IFt7IFtIXTogZCwgW0ldOiBbcSwgXCJhcC1zb3V0aGVhc3QtMVwiXSB9XSwgZW5kcG9pbnQ6IHUsIFtHXTogaCB9LCB7IGNvbmRpdGlvbnM6IFt7IFtIXTogZCwgW0ldOiBbcSwgXCJhcC1zb3V0aGVhc3QtMlwiXSB9XSwgZW5kcG9pbnQ6IHUsIFtHXTogaCB9LCB3LCB7IGNvbmRpdGlvbnM6IFt7IFtIXTogZCwgW0ldOiBbcSwgXCJjYS1jZW50cmFsLTFcIl0gfV0sIGVuZHBvaW50OiB1LCBbR106IGggfSwgeyBjb25kaXRpb25zOiBbeyBbSF06IGQsIFtJXTogW3EsIFwiZXUtY2VudHJhbC0xXCJdIH1dLCBlbmRwb2ludDogdSwgW0ddOiBoIH0sIHsgY29uZGl0aW9uczogW3sgW0hdOiBkLCBbSV06IFtxLCBcImV1LW5vcnRoLTFcIl0gfV0sIGVuZHBvaW50OiB1LCBbR106IGggfSwgeyBjb25kaXRpb25zOiBbeyBbSF06IGQsIFtJXTogW3EsIFwiZXUtd2VzdC0xXCJdIH1dLCBlbmRwb2ludDogdSwgW0ddOiBoIH0sIHsgY29uZGl0aW9uczogW3sgW0hdOiBkLCBbSV06IFtxLCBcImV1LXdlc3QtMlwiXSB9XSwgZW5kcG9pbnQ6IHUsIFtHXTogaCB9LCB7IGNvbmRpdGlvbnM6IFt7IFtIXTogZCwgW0ldOiBbcSwgXCJldS13ZXN0LTNcIl0gfV0sIGVuZHBvaW50OiB1LCBbR106IGggfSwgeyBjb25kaXRpb25zOiBbeyBbSF06IGQsIFtJXTogW3EsIFwic2EtZWFzdC0xXCJdIH1dLCBlbmRwb2ludDogdSwgW0ddOiBoIH0sIHsgY29uZGl0aW9uczogW3sgW0hdOiBkLCBbSV06IFtxLCBnXSB9XSwgZW5kcG9pbnQ6IHUsIFtHXTogaCB9LCB7IGNvbmRpdGlvbnM6IFt7IFtIXTogZCwgW0ldOiBbcSwgXCJ1cy1lYXN0LTJcIl0gfV0sIGVuZHBvaW50OiB1LCBbR106IGggfSwgeyBjb25kaXRpb25zOiBbeyBbSF06IGQsIFtJXTogW3EsIFwidXMtd2VzdC0xXCJdIH1dLCBlbmRwb2ludDogdSwgW0ddOiBoIH0sIHsgY29uZGl0aW9uczogW3sgW0hdOiBkLCBbSV06IFtxLCBcInVzLXdlc3QtMlwiXSB9XSwgZW5kcG9pbnQ6IHUsIFtHXTogaCB9LCB7IGVuZHBvaW50OiB7IHVybDogaSwgcHJvcGVydGllczogeyBhdXRoU2NoZW1lczogW3sgbmFtZTogZSwgc2lnbmluZ05hbWU6IGYsIHNpZ25pbmdSZWdpb246IFwie1JlZ2lvbn1cIiB9XSB9LCBoZWFkZXJzOiB2IH0sIFtHXTogaCB9XSwgW0ddOiBqIH0sIHsgY29uZGl0aW9uczogQywgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IEQsIGVycm9yOiBcIkludmFsaWQgQ29uZmlndXJhdGlvbjogRklQUyBhbmQgY3VzdG9tIGVuZHBvaW50IGFyZSBub3Qgc3VwcG9ydGVkXCIsIFtHXTogayB9LCB7IGNvbmRpdGlvbnM6IEUsIGVycm9yOiBcIkludmFsaWQgQ29uZmlndXJhdGlvbjogRHVhbHN0YWNrIGFuZCBjdXN0b20gZW5kcG9pbnQgYXJlIG5vdCBzdXBwb3J0ZWRcIiwgW0ddOiBrIH0sIHsgZW5kcG9pbnQ6IHsgdXJsOiBvLCBwcm9wZXJ0aWVzOiB2LCBoZWFkZXJzOiB2IH0sIFtHXTogaCB9XSwgW0ddOiBqIH0sIHsgY29uZGl0aW9uczogW3BdLCBydWxlczogW3sgY29uZGl0aW9uczogW3JdLCBydWxlczogW3sgY29uZGl0aW9uczogW3gsIHldLCBydWxlczogW3sgY29uZGl0aW9uczogW3sgW0hdOiBjLCBbSV06IFtiLCB6XSB9LCBCXSwgcnVsZXM6IFt7IGVuZHBvaW50OiB7IHVybDogXCJodHRwczovL3N0cy1maXBzLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZHVhbFN0YWNrRG5zU3VmZml4fVwiLCBwcm9wZXJ0aWVzOiB2LCBoZWFkZXJzOiB2IH0sIFtHXTogaCB9XSwgW0ddOiBqIH0sIHsgZXJyb3I6IFwiRklQUyBhbmQgRHVhbFN0YWNrIGFyZSBlbmFibGVkLCBidXQgdGhpcyBwYXJ0aXRpb24gZG9lcyBub3Qgc3VwcG9ydCBvbmUgb3IgYm90aFwiLCBbR106IGsgfV0sIFtHXTogaiB9LCB7IGNvbmRpdGlvbnM6IEQsIHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbeyBbSF06IGMsIFtJXTogW3osIGJdIH1dLCBydWxlczogW3sgY29uZGl0aW9uczogW3sgW0hdOiBkLCBbSV06IFt7IFtIXTogbCwgW0ldOiBbQSwgXCJuYW1lXCJdIH0sIFwiYXdzLXVzLWdvdlwiXSB9XSwgZW5kcG9pbnQ6IHsgdXJsOiBcImh0dHBzOi8vc3RzLntSZWdpb259LmFtYXpvbmF3cy5jb21cIiwgcHJvcGVydGllczogdiwgaGVhZGVyczogdiB9LCBbR106IGggfSwgeyBlbmRwb2ludDogeyB1cmw6IFwiaHR0cHM6Ly9zdHMtZmlwcy57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH1cIiwgcHJvcGVydGllczogdiwgaGVhZGVyczogdiB9LCBbR106IGggfV0sIFtHXTogaiB9LCB7IGVycm9yOiBcIkZJUFMgaXMgZW5hYmxlZCBidXQgdGhpcyBwYXJ0aXRpb24gZG9lcyBub3Qgc3VwcG9ydCBGSVBTXCIsIFtHXTogayB9XSwgW0ddOiBqIH0sIHsgY29uZGl0aW9uczogRSwgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IFtCXSwgcnVsZXM6IFt7IGVuZHBvaW50OiB7IHVybDogXCJodHRwczovL3N0cy57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2R1YWxTdGFja0Ruc1N1ZmZpeH1cIiwgcHJvcGVydGllczogdiwgaGVhZGVyczogdiB9LCBbR106IGggfV0sIFtHXTogaiB9LCB7IGVycm9yOiBcIkR1YWxTdGFjayBpcyBlbmFibGVkIGJ1dCB0aGlzIHBhcnRpdGlvbiBkb2VzIG5vdCBzdXBwb3J0IER1YWxTdGFja1wiLCBbR106IGsgfV0sIFtHXTogaiB9LCB3LCB7IGVuZHBvaW50OiB7IHVybDogaSwgcHJvcGVydGllczogdiwgaGVhZGVyczogdiB9LCBbR106IGggfV0sIFtHXTogaiB9XSwgW0ddOiBqIH0sIHsgZXJyb3I6IFwiSW52YWxpZCBDb25maWd1cmF0aW9uOiBNaXNzaW5nIFJlZ2lvblwiLCBbR106IGsgfV0gfTtcbmV4cG9ydCBjb25zdCBydWxlU2V0ID0gX2RhdGE7XG4iLCAiaW1wb3J0IHsgYXdzRW5kcG9pbnRGdW5jdGlvbnMgfSBmcm9tIFwiQGF3cy1zZGsvdXRpbC1lbmRwb2ludHNcIjtcbmltcG9ydCB7IGN1c3RvbUVuZHBvaW50RnVuY3Rpb25zLCBFbmRwb2ludENhY2hlLCByZXNvbHZlRW5kcG9pbnQgfSBmcm9tIFwiQHNtaXRoeS91dGlsLWVuZHBvaW50c1wiO1xuaW1wb3J0IHsgcnVsZVNldCB9IGZyb20gXCIuL3J1bGVzZXRcIjtcbmNvbnN0IGNhY2hlID0gbmV3IEVuZHBvaW50Q2FjaGUoe1xuICAgIHNpemU6IDUwLFxuICAgIHBhcmFtczogW1wiRW5kcG9pbnRcIiwgXCJSZWdpb25cIiwgXCJVc2VEdWFsU3RhY2tcIiwgXCJVc2VGSVBTXCIsIFwiVXNlR2xvYmFsRW5kcG9pbnRcIl0sXG59KTtcbmV4cG9ydCBjb25zdCBkZWZhdWx0RW5kcG9pbnRSZXNvbHZlciA9IChlbmRwb2ludFBhcmFtcywgY29udGV4dCA9IHt9KSA9PiB7XG4gICAgcmV0dXJuIGNhY2hlLmdldChlbmRwb2ludFBhcmFtcywgKCkgPT4gcmVzb2x2ZUVuZHBvaW50KHJ1bGVTZXQsIHtcbiAgICAgICAgZW5kcG9pbnRQYXJhbXM6IGVuZHBvaW50UGFyYW1zLFxuICAgICAgICBsb2dnZXI6IGNvbnRleHQubG9nZ2VyLFxuICAgIH0pKTtcbn07XG5jdXN0b21FbmRwb2ludEZ1bmN0aW9ucy5hd3MgPSBhd3NFbmRwb2ludEZ1bmN0aW9ucztcbiIsICJpbXBvcnQgeyBTZXJ2aWNlRXhjZXB0aW9uIGFzIF9fU2VydmljZUV4Y2VwdGlvbiwgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5leHBvcnQgeyBfX1NlcnZpY2VFeGNlcHRpb24gfTtcbmV4cG9ydCBjbGFzcyBTVFNTZXJ2aWNlRXhjZXB0aW9uIGV4dGVuZHMgX19TZXJ2aWNlRXhjZXB0aW9uIHtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgU1RTU2VydmljZUV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBTVFNTZXJ2aWNlRXhjZXB0aW9uIGFzIF9fQmFzZUV4Y2VwdGlvbiB9IGZyb20gXCIuL1NUU1NlcnZpY2VFeGNlcHRpb25cIjtcbmV4cG9ydCBjbGFzcyBFeHBpcmVkVG9rZW5FeGNlcHRpb24gZXh0ZW5kcyBfX0Jhc2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIkV4cGlyZWRUb2tlbkV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkV4cGlyZWRUb2tlbkV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBFeHBpcmVkVG9rZW5FeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFeGNlcHRpb24gZXh0ZW5kcyBfX0Jhc2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIk1hbGZvcm1lZFBvbGljeURvY3VtZW50RXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgUGFja2VkUG9saWN5VG9vTGFyZ2VFeGNlcHRpb24gZXh0ZW5kcyBfX0Jhc2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIlBhY2tlZFBvbGljeVRvb0xhcmdlRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiUGFja2VkUG9saWN5VG9vTGFyZ2VFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgUGFja2VkUG9saWN5VG9vTGFyZ2VFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgUmVnaW9uRGlzYWJsZWRFeGNlcHRpb24gZXh0ZW5kcyBfX0Jhc2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIlJlZ2lvbkRpc2FibGVkRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiUmVnaW9uRGlzYWJsZWRFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgUmVnaW9uRGlzYWJsZWRFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgSURQUmVqZWN0ZWRDbGFpbUV4Y2VwdGlvbiBleHRlbmRzIF9fQmFzZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiSURQUmVqZWN0ZWRDbGFpbUV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIklEUFJlamVjdGVkQ2xhaW1FeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgSURQUmVqZWN0ZWRDbGFpbUV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBJbnZhbGlkSWRlbnRpdHlUb2tlbkV4Y2VwdGlvbiBleHRlbmRzIF9fQmFzZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiSW52YWxpZElkZW50aXR5VG9rZW5FeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJJbnZhbGlkSWRlbnRpdHlUb2tlbkV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBJbnZhbGlkSWRlbnRpdHlUb2tlbkV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBJRFBDb21tdW5pY2F0aW9uRXJyb3JFeGNlcHRpb24gZXh0ZW5kcyBfX0Jhc2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIklEUENvbW11bmljYXRpb25FcnJvckV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIklEUENvbW11bmljYXRpb25FcnJvckV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBJRFBDb21tdW5pY2F0aW9uRXJyb3JFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59XG4iLCAiY29uc3QgX0EgPSBcIkFyblwiO1xuY29uc3QgX0FLSSA9IFwiQWNjZXNzS2V5SWRcIjtcbmNvbnN0IF9BUiA9IFwiQXNzdW1lUm9sZVwiO1xuY29uc3QgX0FSSSA9IFwiQXNzdW1lZFJvbGVJZFwiO1xuY29uc3QgX0FSUiA9IFwiQXNzdW1lUm9sZVJlcXVlc3RcIjtcbmNvbnN0IF9BUlJzID0gXCJBc3N1bWVSb2xlUmVzcG9uc2VcIjtcbmNvbnN0IF9BUlUgPSBcIkFzc3VtZWRSb2xlVXNlclwiO1xuY29uc3QgX0FSV1dJID0gXCJBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5XCI7XG5jb25zdCBfQVJXV0lSID0gXCJBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5UmVxdWVzdFwiO1xuY29uc3QgX0FSV1dJUnMgPSBcIkFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlSZXNwb25zZVwiO1xuY29uc3QgX0F1ID0gXCJBdWRpZW5jZVwiO1xuY29uc3QgX0MgPSBcIkNyZWRlbnRpYWxzXCI7XG5jb25zdCBfQ0EgPSBcIkNvbnRleHRBc3NlcnRpb25cIjtcbmNvbnN0IF9EUyA9IFwiRHVyYXRpb25TZWNvbmRzXCI7XG5jb25zdCBfRSA9IFwiRXhwaXJhdGlvblwiO1xuY29uc3QgX0VJID0gXCJFeHRlcm5hbElkXCI7XG5jb25zdCBfRVRFID0gXCJFeHBpcmVkVG9rZW5FeGNlcHRpb25cIjtcbmNvbnN0IF9JRFBDRUUgPSBcIklEUENvbW11bmljYXRpb25FcnJvckV4Y2VwdGlvblwiO1xuY29uc3QgX0lEUFJDRSA9IFwiSURQUmVqZWN0ZWRDbGFpbUV4Y2VwdGlvblwiO1xuY29uc3QgX0lJVEUgPSBcIkludmFsaWRJZGVudGl0eVRva2VuRXhjZXB0aW9uXCI7XG5jb25zdCBfSyA9IFwiS2V5XCI7XG5jb25zdCBfTVBERSA9IFwiTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFeGNlcHRpb25cIjtcbmNvbnN0IF9QID0gXCJQb2xpY3lcIjtcbmNvbnN0IF9QQSA9IFwiUG9saWN5QXJuc1wiO1xuY29uc3QgX1BBciA9IFwiUHJvdmlkZXJBcm5cIjtcbmNvbnN0IF9QQyA9IFwiUHJvdmlkZWRDb250ZXh0c1wiO1xuY29uc3QgX1BDTFQgPSBcIlByb3ZpZGVkQ29udGV4dHNMaXN0VHlwZVwiO1xuY29uc3QgX1BDciA9IFwiUHJvdmlkZWRDb250ZXh0XCI7XG5jb25zdCBfUERUID0gXCJQb2xpY3lEZXNjcmlwdG9yVHlwZVwiO1xuY29uc3QgX1BJID0gXCJQcm92aWRlcklkXCI7XG5jb25zdCBfUFBTID0gXCJQYWNrZWRQb2xpY3lTaXplXCI7XG5jb25zdCBfUFBUTEUgPSBcIlBhY2tlZFBvbGljeVRvb0xhcmdlRXhjZXB0aW9uXCI7XG5jb25zdCBfUHIgPSBcIlByb3ZpZGVyXCI7XG5jb25zdCBfUkEgPSBcIlJvbGVBcm5cIjtcbmNvbnN0IF9SREUgPSBcIlJlZ2lvbkRpc2FibGVkRXhjZXB0aW9uXCI7XG5jb25zdCBfUlNOID0gXCJSb2xlU2Vzc2lvbk5hbWVcIjtcbmNvbnN0IF9TQUsgPSBcIlNlY3JldEFjY2Vzc0tleVwiO1xuY29uc3QgX1NGV0lUID0gXCJTdWJqZWN0RnJvbVdlYklkZW50aXR5VG9rZW5cIjtcbmNvbnN0IF9TSSA9IFwiU291cmNlSWRlbnRpdHlcIjtcbmNvbnN0IF9TTiA9IFwiU2VyaWFsTnVtYmVyXCI7XG5jb25zdCBfU1QgPSBcIlNlc3Npb25Ub2tlblwiO1xuY29uc3QgX1QgPSBcIlRhZ3NcIjtcbmNvbnN0IF9UQyA9IFwiVG9rZW5Db2RlXCI7XG5jb25zdCBfVFRLID0gXCJUcmFuc2l0aXZlVGFnS2V5c1wiO1xuY29uc3QgX1RhID0gXCJUYWdcIjtcbmNvbnN0IF9WID0gXCJWYWx1ZVwiO1xuY29uc3QgX1dJVCA9IFwiV2ViSWRlbnRpdHlUb2tlblwiO1xuY29uc3QgX2EgPSBcImFyblwiO1xuY29uc3QgX2FLU1QgPSBcImFjY2Vzc0tleVNlY3JldFR5cGVcIjtcbmNvbnN0IF9hUUUgPSBcImF3c1F1ZXJ5RXJyb3JcIjtcbmNvbnN0IF9jID0gXCJjbGllbnRcIjtcbmNvbnN0IF9jVFQgPSBcImNsaWVudFRva2VuVHlwZVwiO1xuY29uc3QgX2UgPSBcImVycm9yXCI7XG5jb25zdCBfaEUgPSBcImh0dHBFcnJvclwiO1xuY29uc3QgX20gPSBcIm1lc3NhZ2VcIjtcbmNvbnN0IF9wRExUID0gXCJwb2xpY3lEZXNjcmlwdG9yTGlzdFR5cGVcIjtcbmNvbnN0IF9zID0gXCJzbWl0aHkudHMuc2RrLnN5bnRoZXRpYy5jb20uYW1hem9uYXdzLnN0c1wiO1xuY29uc3QgX3RMVCA9IFwidGFnTGlzdFR5cGVcIjtcbmNvbnN0IG4wID0gXCJjb20uYW1hem9uYXdzLnN0c1wiO1xuaW1wb3J0IHsgVHlwZVJlZ2lzdHJ5IH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IEV4cGlyZWRUb2tlbkV4Y2VwdGlvbiwgSURQQ29tbXVuaWNhdGlvbkVycm9yRXhjZXB0aW9uLCBJRFBSZWplY3RlZENsYWltRXhjZXB0aW9uLCBJbnZhbGlkSWRlbnRpdHlUb2tlbkV4Y2VwdGlvbiwgTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFeGNlcHRpb24sIFBhY2tlZFBvbGljeVRvb0xhcmdlRXhjZXB0aW9uLCBSZWdpb25EaXNhYmxlZEV4Y2VwdGlvbiwgfSBmcm9tIFwiLi4vbW9kZWxzL2Vycm9yc1wiO1xuaW1wb3J0IHsgU1RTU2VydmljZUV4Y2VwdGlvbiB9IGZyb20gXCIuLi9tb2RlbHMvU1RTU2VydmljZUV4Y2VwdGlvblwiO1xuY29uc3QgX3NfcmVnaXN0cnkgPSBUeXBlUmVnaXN0cnkuZm9yKF9zKTtcbmV4cG9ydCB2YXIgU1RTU2VydmljZUV4Y2VwdGlvbiQgPSBbLTMsIF9zLCBcIlNUU1NlcnZpY2VFeGNlcHRpb25cIiwgMCwgW10sIFtdXTtcbl9zX3JlZ2lzdHJ5LnJlZ2lzdGVyRXJyb3IoU1RTU2VydmljZUV4Y2VwdGlvbiQsIFNUU1NlcnZpY2VFeGNlcHRpb24pO1xuY29uc3QgbjBfcmVnaXN0cnkgPSBUeXBlUmVnaXN0cnkuZm9yKG4wKTtcbmV4cG9ydCB2YXIgRXhwaXJlZFRva2VuRXhjZXB0aW9uJCA9IFtcbiAgICAtMyxcbiAgICBuMCxcbiAgICBfRVRFLFxuICAgIHsgW19hUUVdOiBbYEV4cGlyZWRUb2tlbkV4Y2VwdGlvbmAsIDQwMF0sIFtfZV06IF9jLCBbX2hFXTogNDAwIH0sXG4gICAgW19tXSxcbiAgICBbMF0sXG5dO1xubjBfcmVnaXN0cnkucmVnaXN0ZXJFcnJvcihFeHBpcmVkVG9rZW5FeGNlcHRpb24kLCBFeHBpcmVkVG9rZW5FeGNlcHRpb24pO1xuZXhwb3J0IHZhciBJRFBDb21tdW5pY2F0aW9uRXJyb3JFeGNlcHRpb24kID0gW1xuICAgIC0zLFxuICAgIG4wLFxuICAgIF9JRFBDRUUsXG4gICAgeyBbX2FRRV06IFtgSURQQ29tbXVuaWNhdGlvbkVycm9yYCwgNDAwXSwgW19lXTogX2MsIFtfaEVdOiA0MDAgfSxcbiAgICBbX21dLFxuICAgIFswXSxcbl07XG5uMF9yZWdpc3RyeS5yZWdpc3RlckVycm9yKElEUENvbW11bmljYXRpb25FcnJvckV4Y2VwdGlvbiQsIElEUENvbW11bmljYXRpb25FcnJvckV4Y2VwdGlvbik7XG5leHBvcnQgdmFyIElEUFJlamVjdGVkQ2xhaW1FeGNlcHRpb24kID0gW1xuICAgIC0zLFxuICAgIG4wLFxuICAgIF9JRFBSQ0UsXG4gICAgeyBbX2FRRV06IFtgSURQUmVqZWN0ZWRDbGFpbWAsIDQwM10sIFtfZV06IF9jLCBbX2hFXTogNDAzIH0sXG4gICAgW19tXSxcbiAgICBbMF0sXG5dO1xubjBfcmVnaXN0cnkucmVnaXN0ZXJFcnJvcihJRFBSZWplY3RlZENsYWltRXhjZXB0aW9uJCwgSURQUmVqZWN0ZWRDbGFpbUV4Y2VwdGlvbik7XG5leHBvcnQgdmFyIEludmFsaWRJZGVudGl0eVRva2VuRXhjZXB0aW9uJCA9IFtcbiAgICAtMyxcbiAgICBuMCxcbiAgICBfSUlURSxcbiAgICB7IFtfYVFFXTogW2BJbnZhbGlkSWRlbnRpdHlUb2tlbmAsIDQwMF0sIFtfZV06IF9jLCBbX2hFXTogNDAwIH0sXG4gICAgW19tXSxcbiAgICBbMF0sXG5dO1xubjBfcmVnaXN0cnkucmVnaXN0ZXJFcnJvcihJbnZhbGlkSWRlbnRpdHlUb2tlbkV4Y2VwdGlvbiQsIEludmFsaWRJZGVudGl0eVRva2VuRXhjZXB0aW9uKTtcbmV4cG9ydCB2YXIgTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFeGNlcHRpb24kID0gW1xuICAgIC0zLFxuICAgIG4wLFxuICAgIF9NUERFLFxuICAgIHsgW19hUUVdOiBbYE1hbGZvcm1lZFBvbGljeURvY3VtZW50YCwgNDAwXSwgW19lXTogX2MsIFtfaEVdOiA0MDAgfSxcbiAgICBbX21dLFxuICAgIFswXSxcbl07XG5uMF9yZWdpc3RyeS5yZWdpc3RlckVycm9yKE1hbGZvcm1lZFBvbGljeURvY3VtZW50RXhjZXB0aW9uJCwgTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFeGNlcHRpb24pO1xuZXhwb3J0IHZhciBQYWNrZWRQb2xpY3lUb29MYXJnZUV4Y2VwdGlvbiQgPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX1BQVExFLFxuICAgIHsgW19hUUVdOiBbYFBhY2tlZFBvbGljeVRvb0xhcmdlYCwgNDAwXSwgW19lXTogX2MsIFtfaEVdOiA0MDAgfSxcbiAgICBbX21dLFxuICAgIFswXSxcbl07XG5uMF9yZWdpc3RyeS5yZWdpc3RlckVycm9yKFBhY2tlZFBvbGljeVRvb0xhcmdlRXhjZXB0aW9uJCwgUGFja2VkUG9saWN5VG9vTGFyZ2VFeGNlcHRpb24pO1xuZXhwb3J0IHZhciBSZWdpb25EaXNhYmxlZEV4Y2VwdGlvbiQgPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX1JERSxcbiAgICB7IFtfYVFFXTogW2BSZWdpb25EaXNhYmxlZEV4Y2VwdGlvbmAsIDQwM10sIFtfZV06IF9jLCBbX2hFXTogNDAzIH0sXG4gICAgW19tXSxcbiAgICBbMF0sXG5dO1xubjBfcmVnaXN0cnkucmVnaXN0ZXJFcnJvcihSZWdpb25EaXNhYmxlZEV4Y2VwdGlvbiQsIFJlZ2lvbkRpc2FibGVkRXhjZXB0aW9uKTtcbmV4cG9ydCBjb25zdCBlcnJvclR5cGVSZWdpc3RyaWVzID0gW19zX3JlZ2lzdHJ5LCBuMF9yZWdpc3RyeV07XG52YXIgYWNjZXNzS2V5U2VjcmV0VHlwZSA9IFswLCBuMCwgX2FLU1QsIDgsIDBdO1xudmFyIGNsaWVudFRva2VuVHlwZSA9IFswLCBuMCwgX2NUVCwgOCwgMF07XG5leHBvcnQgdmFyIEFzc3VtZWRSb2xlVXNlciQgPSBbMywgbjAsIF9BUlUsIDAsIFtfQVJJLCBfQV0sIFswLCAwXSwgMl07XG5leHBvcnQgdmFyIEFzc3VtZVJvbGVSZXF1ZXN0JCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9BUlIsXG4gICAgMCxcbiAgICBbX1JBLCBfUlNOLCBfUEEsIF9QLCBfRFMsIF9ULCBfVFRLLCBfRUksIF9TTiwgX1RDLCBfU0ksIF9QQ10sXG4gICAgWzAsIDAsICgpID0+IHBvbGljeURlc2NyaXB0b3JMaXN0VHlwZSwgMCwgMSwgKCkgPT4gdGFnTGlzdFR5cGUsIDY0IHwgMCwgMCwgMCwgMCwgMCwgKCkgPT4gUHJvdmlkZWRDb250ZXh0c0xpc3RUeXBlXSxcbiAgICAyLFxuXTtcbmV4cG9ydCB2YXIgQXNzdW1lUm9sZVJlc3BvbnNlJCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9BUlJzLFxuICAgIDAsXG4gICAgW19DLCBfQVJVLCBfUFBTLCBfU0ldLFxuICAgIFtbKCkgPT4gQ3JlZGVudGlhbHMkLCAwXSwgKCkgPT4gQXNzdW1lZFJvbGVVc2VyJCwgMSwgMF0sXG5dO1xuZXhwb3J0IHZhciBBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5UmVxdWVzdCQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfQVJXV0lSLFxuICAgIDAsXG4gICAgW19SQSwgX1JTTiwgX1dJVCwgX1BJLCBfUEEsIF9QLCBfRFNdLFxuICAgIFswLCAwLCBbKCkgPT4gY2xpZW50VG9rZW5UeXBlLCAwXSwgMCwgKCkgPT4gcG9saWN5RGVzY3JpcHRvckxpc3RUeXBlLCAwLCAxXSxcbiAgICAzLFxuXTtcbmV4cG9ydCB2YXIgQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eVJlc3BvbnNlJCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9BUldXSVJzLFxuICAgIDAsXG4gICAgW19DLCBfU0ZXSVQsIF9BUlUsIF9QUFMsIF9QciwgX0F1LCBfU0ldLFxuICAgIFtbKCkgPT4gQ3JlZGVudGlhbHMkLCAwXSwgMCwgKCkgPT4gQXNzdW1lZFJvbGVVc2VyJCwgMSwgMCwgMCwgMF0sXG5dO1xuZXhwb3J0IHZhciBDcmVkZW50aWFscyQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfQyxcbiAgICAwLFxuICAgIFtfQUtJLCBfU0FLLCBfU1QsIF9FXSxcbiAgICBbMCwgWygpID0+IGFjY2Vzc0tleVNlY3JldFR5cGUsIDBdLCAwLCA0XSxcbiAgICA0LFxuXTtcbmV4cG9ydCB2YXIgUG9saWN5RGVzY3JpcHRvclR5cGUkID0gWzMsIG4wLCBfUERULCAwLCBbX2FdLCBbMF1dO1xuZXhwb3J0IHZhciBQcm92aWRlZENvbnRleHQkID0gWzMsIG4wLCBfUENyLCAwLCBbX1BBciwgX0NBXSwgWzAsIDBdXTtcbmV4cG9ydCB2YXIgVGFnJCA9IFszLCBuMCwgX1RhLCAwLCBbX0ssIF9WXSwgWzAsIDBdLCAyXTtcbnZhciBwb2xpY3lEZXNjcmlwdG9yTGlzdFR5cGUgPSBbMSwgbjAsIF9wRExULCAwLCAoKSA9PiBQb2xpY3lEZXNjcmlwdG9yVHlwZSRdO1xudmFyIFByb3ZpZGVkQ29udGV4dHNMaXN0VHlwZSA9IFsxLCBuMCwgX1BDTFQsIDAsICgpID0+IFByb3ZpZGVkQ29udGV4dCRdO1xudmFyIHRhZ0tleUxpc3RUeXBlID0gNjQgfCAwO1xudmFyIHRhZ0xpc3RUeXBlID0gWzEsIG4wLCBfdExULCAwLCAoKSA9PiBUYWckXTtcbmV4cG9ydCB2YXIgQXNzdW1lUm9sZSQgPSBbOSwgbjAsIF9BUiwgMCwgKCkgPT4gQXNzdW1lUm9sZVJlcXVlc3QkLCAoKSA9PiBBc3N1bWVSb2xlUmVzcG9uc2UkXTtcbmV4cG9ydCB2YXIgQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eSQgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfQVJXV0ksXG4gICAgMCxcbiAgICAoKSA9PiBBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5UmVxdWVzdCQsXG4gICAgKCkgPT4gQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eVJlc3BvbnNlJCxcbl07XG4iLCAiaW1wb3J0IHsgQXdzU2RrU2lnVjRTaWduZXIgfSBmcm9tIFwiQGF3cy1zZGsvY29yZVwiO1xuaW1wb3J0IHsgQXdzUXVlcnlQcm90b2NvbCB9IGZyb20gXCJAYXdzLXNkay9jb3JlL3Byb3RvY29sc1wiO1xuaW1wb3J0IHsgTm9BdXRoU2lnbmVyIH0gZnJvbSBcIkBzbWl0aHkvY29yZVwiO1xuaW1wb3J0IHsgTm9PcExvZ2dlciB9IGZyb20gXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjtcbmltcG9ydCB7IHBhcnNlVXJsIH0gZnJvbSBcIkBzbWl0aHkvdXJsLXBhcnNlclwiO1xuaW1wb3J0IHsgZnJvbUJhc2U2NCwgdG9CYXNlNjQgfSBmcm9tIFwiQHNtaXRoeS91dGlsLWJhc2U2NFwiO1xuaW1wb3J0IHsgZnJvbVV0ZjgsIHRvVXRmOCB9IGZyb20gXCJAc21pdGh5L3V0aWwtdXRmOFwiO1xuaW1wb3J0IHsgZGVmYXVsdFNUU0h0dHBBdXRoU2NoZW1lUHJvdmlkZXIgfSBmcm9tIFwiLi9hdXRoL2h0dHBBdXRoU2NoZW1lUHJvdmlkZXJcIjtcbmltcG9ydCB7IGRlZmF1bHRFbmRwb2ludFJlc29sdmVyIH0gZnJvbSBcIi4vZW5kcG9pbnQvZW5kcG9pbnRSZXNvbHZlclwiO1xuaW1wb3J0IHsgZXJyb3JUeXBlUmVnaXN0cmllcyB9IGZyb20gXCIuL3NjaGVtYXMvc2NoZW1hc18wXCI7XG5leHBvcnQgY29uc3QgZ2V0UnVudGltZUNvbmZpZyA9IChjb25maWcpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgICBhcGlWZXJzaW9uOiBcIjIwMTEtMDYtMTVcIixcbiAgICAgICAgYmFzZTY0RGVjb2RlcjogY29uZmlnPy5iYXNlNjREZWNvZGVyID8/IGZyb21CYXNlNjQsXG4gICAgICAgIGJhc2U2NEVuY29kZXI6IGNvbmZpZz8uYmFzZTY0RW5jb2RlciA/PyB0b0Jhc2U2NCxcbiAgICAgICAgZGlzYWJsZUhvc3RQcmVmaXg6IGNvbmZpZz8uZGlzYWJsZUhvc3RQcmVmaXggPz8gZmFsc2UsXG4gICAgICAgIGVuZHBvaW50UHJvdmlkZXI6IGNvbmZpZz8uZW5kcG9pbnRQcm92aWRlciA/PyBkZWZhdWx0RW5kcG9pbnRSZXNvbHZlcixcbiAgICAgICAgZXh0ZW5zaW9uczogY29uZmlnPy5leHRlbnNpb25zID8/IFtdLFxuICAgICAgICBodHRwQXV0aFNjaGVtZVByb3ZpZGVyOiBjb25maWc/Lmh0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPz8gZGVmYXVsdFNUU0h0dHBBdXRoU2NoZW1lUHJvdmlkZXIsXG4gICAgICAgIGh0dHBBdXRoU2NoZW1lczogY29uZmlnPy5odHRwQXV0aFNjaGVtZXMgPz8gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHNjaGVtZUlkOiBcImF3cy5hdXRoI3NpZ3Y0XCIsXG4gICAgICAgICAgICAgICAgaWRlbnRpdHlQcm92aWRlcjogKGlwYykgPT4gaXBjLmdldElkZW50aXR5UHJvdmlkZXIoXCJhd3MuYXV0aCNzaWd2NFwiKSxcbiAgICAgICAgICAgICAgICBzaWduZXI6IG5ldyBBd3NTZGtTaWdWNFNpZ25lcigpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzY2hlbWVJZDogXCJzbWl0aHkuYXBpI25vQXV0aFwiLFxuICAgICAgICAgICAgICAgIGlkZW50aXR5UHJvdmlkZXI6IChpcGMpID0+IGlwYy5nZXRJZGVudGl0eVByb3ZpZGVyKFwic21pdGh5LmFwaSNub0F1dGhcIikgfHwgKGFzeW5jICgpID0+ICh7fSkpLFxuICAgICAgICAgICAgICAgIHNpZ25lcjogbmV3IE5vQXV0aFNpZ25lcigpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgbG9nZ2VyOiBjb25maWc/LmxvZ2dlciA/PyBuZXcgTm9PcExvZ2dlcigpLFxuICAgICAgICBwcm90b2NvbDogY29uZmlnPy5wcm90b2NvbCA/PyBBd3NRdWVyeVByb3RvY29sLFxuICAgICAgICBwcm90b2NvbFNldHRpbmdzOiBjb25maWc/LnByb3RvY29sU2V0dGluZ3MgPz8ge1xuICAgICAgICAgICAgZGVmYXVsdE5hbWVzcGFjZTogXCJjb20uYW1hem9uYXdzLnN0c1wiLFxuICAgICAgICAgICAgZXJyb3JUeXBlUmVnaXN0cmllcyxcbiAgICAgICAgICAgIHhtbE5hbWVzcGFjZTogXCJodHRwczovL3N0cy5hbWF6b25hd3MuY29tL2RvYy8yMDExLTA2LTE1L1wiLFxuICAgICAgICAgICAgdmVyc2lvbjogXCIyMDExLTA2LTE1XCIsXG4gICAgICAgICAgICBzZXJ2aWNlVGFyZ2V0OiBcIkFXU1NlY3VyaXR5VG9rZW5TZXJ2aWNlVjIwMTEwNjE1XCIsXG4gICAgICAgIH0sXG4gICAgICAgIHNlcnZpY2VJZDogY29uZmlnPy5zZXJ2aWNlSWQgPz8gXCJTVFNcIixcbiAgICAgICAgdXJsUGFyc2VyOiBjb25maWc/LnVybFBhcnNlciA/PyBwYXJzZVVybCxcbiAgICAgICAgdXRmOERlY29kZXI6IGNvbmZpZz8udXRmOERlY29kZXIgPz8gZnJvbVV0ZjgsXG4gICAgICAgIHV0ZjhFbmNvZGVyOiBjb25maWc/LnV0ZjhFbmNvZGVyID8/IHRvVXRmOCxcbiAgICB9O1xufTtcbiIsICJpbXBvcnQgcGFja2FnZUluZm8gZnJvbSBcIi4uLy4uLy4uL3BhY2thZ2UuanNvblwiO1xuaW1wb3J0IHsgQXdzU2RrU2lnVjRTaWduZXIsIGVtaXRXYXJuaW5nSWZVbnN1cHBvcnRlZFZlcnNpb24gYXMgYXdzQ2hlY2tWZXJzaW9uLCBOT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfT1BUSU9OUywgfSBmcm9tIFwiQGF3cy1zZGsvY29yZVwiO1xuaW1wb3J0IHsgY3JlYXRlRGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyLCBOT0RFX0FQUF9JRF9DT05GSUdfT1BUSU9OUyB9IGZyb20gXCJAYXdzLXNkay91dGlsLXVzZXItYWdlbnQtbm9kZVwiO1xuaW1wb3J0IHsgTk9ERV9SRUdJT05fQ09ORklHX0ZJTEVfT1BUSU9OUywgTk9ERV9SRUdJT05fQ09ORklHX09QVElPTlMsIE5PREVfVVNFX0RVQUxTVEFDS19FTkRQT0lOVF9DT05GSUdfT1BUSU9OUywgTk9ERV9VU0VfRklQU19FTkRQT0lOVF9DT05GSUdfT1BUSU9OUywgfSBmcm9tIFwiQHNtaXRoeS9jb25maWctcmVzb2x2ZXJcIjtcbmltcG9ydCB7IE5vQXV0aFNpZ25lciB9IGZyb20gXCJAc21pdGh5L2NvcmVcIjtcbmltcG9ydCB7IEhhc2ggfSBmcm9tIFwiQHNtaXRoeS9oYXNoLW5vZGVcIjtcbmltcG9ydCB7IE5PREVfTUFYX0FUVEVNUFRfQ09ORklHX09QVElPTlMsIE5PREVfUkVUUllfTU9ERV9DT05GSUdfT1BUSU9OUyB9IGZyb20gXCJAc21pdGh5L21pZGRsZXdhcmUtcmV0cnlcIjtcbmltcG9ydCB7IGxvYWRDb25maWcgYXMgbG9hZE5vZGVDb25maWcgfSBmcm9tIFwiQHNtaXRoeS9ub2RlLWNvbmZpZy1wcm92aWRlclwiO1xuaW1wb3J0IHsgTm9kZUh0dHBIYW5kbGVyIGFzIFJlcXVlc3RIYW5kbGVyLCBzdHJlYW1Db2xsZWN0b3IgfSBmcm9tIFwiQHNtaXRoeS9ub2RlLWh0dHAtaGFuZGxlclwiO1xuaW1wb3J0IHsgZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbiwgbG9hZENvbmZpZ3NGb3JEZWZhdWx0TW9kZSB9IGZyb20gXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjtcbmltcG9ydCB7IGNhbGN1bGF0ZUJvZHlMZW5ndGggfSBmcm9tIFwiQHNtaXRoeS91dGlsLWJvZHktbGVuZ3RoLW5vZGVcIjtcbmltcG9ydCB7IHJlc29sdmVEZWZhdWx0c01vZGVDb25maWcgfSBmcm9tIFwiQHNtaXRoeS91dGlsLWRlZmF1bHRzLW1vZGUtbm9kZVwiO1xuaW1wb3J0IHsgREVGQVVMVF9SRVRSWV9NT0RFIH0gZnJvbSBcIkBzbWl0aHkvdXRpbC1yZXRyeVwiO1xuaW1wb3J0IHsgZ2V0UnVudGltZUNvbmZpZyBhcyBnZXRTaGFyZWRSdW50aW1lQ29uZmlnIH0gZnJvbSBcIi4vcnVudGltZUNvbmZpZy5zaGFyZWRcIjtcbmV4cG9ydCBjb25zdCBnZXRSdW50aW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIGVtaXRXYXJuaW5nSWZVbnN1cHBvcnRlZFZlcnNpb24ocHJvY2Vzcy52ZXJzaW9uKTtcbiAgICBjb25zdCBkZWZhdWx0c01vZGUgPSByZXNvbHZlRGVmYXVsdHNNb2RlQ29uZmlnKGNvbmZpZyk7XG4gICAgY29uc3QgZGVmYXVsdENvbmZpZ1Byb3ZpZGVyID0gKCkgPT4gZGVmYXVsdHNNb2RlKCkudGhlbihsb2FkQ29uZmlnc0ZvckRlZmF1bHRNb2RlKTtcbiAgICBjb25zdCBjbGllbnRTaGFyZWRWYWx1ZXMgPSBnZXRTaGFyZWRSdW50aW1lQ29uZmlnKGNvbmZpZyk7XG4gICAgYXdzQ2hlY2tWZXJzaW9uKHByb2Nlc3MudmVyc2lvbik7XG4gICAgY29uc3QgbG9hZGVyQ29uZmlnID0ge1xuICAgICAgICBwcm9maWxlOiBjb25maWc/LnByb2ZpbGUsXG4gICAgICAgIGxvZ2dlcjogY2xpZW50U2hhcmVkVmFsdWVzLmxvZ2dlcixcbiAgICB9O1xuICAgIHJldHVybiB7XG4gICAgICAgIC4uLmNsaWVudFNoYXJlZFZhbHVlcyxcbiAgICAgICAgLi4uY29uZmlnLFxuICAgICAgICBydW50aW1lOiBcIm5vZGVcIixcbiAgICAgICAgZGVmYXVsdHNNb2RlLFxuICAgICAgICBhdXRoU2NoZW1lUHJlZmVyZW5jZTogY29uZmlnPy5hdXRoU2NoZW1lUHJlZmVyZW5jZSA/PyBsb2FkTm9kZUNvbmZpZyhOT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfT1BUSU9OUywgbG9hZGVyQ29uZmlnKSxcbiAgICAgICAgYm9keUxlbmd0aENoZWNrZXI6IGNvbmZpZz8uYm9keUxlbmd0aENoZWNrZXIgPz8gY2FsY3VsYXRlQm9keUxlbmd0aCxcbiAgICAgICAgZGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyOiBjb25maWc/LmRlZmF1bHRVc2VyQWdlbnRQcm92aWRlciA/P1xuICAgICAgICAgICAgY3JlYXRlRGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyKHsgc2VydmljZUlkOiBjbGllbnRTaGFyZWRWYWx1ZXMuc2VydmljZUlkLCBjbGllbnRWZXJzaW9uOiBwYWNrYWdlSW5mby52ZXJzaW9uIH0pLFxuICAgICAgICBodHRwQXV0aFNjaGVtZXM6IGNvbmZpZz8uaHR0cEF1dGhTY2hlbWVzID8/IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzY2hlbWVJZDogXCJhd3MuYXV0aCNzaWd2NFwiLFxuICAgICAgICAgICAgICAgIGlkZW50aXR5UHJvdmlkZXI6IChpcGMpID0+IGlwYy5nZXRJZGVudGl0eVByb3ZpZGVyKFwiYXdzLmF1dGgjc2lndjRcIikgfHxcbiAgICAgICAgICAgICAgICAgICAgKGFzeW5jIChpZFByb3BzKSA9PiBhd2FpdCBjb25maWcuY3JlZGVudGlhbERlZmF1bHRQcm92aWRlcihpZFByb3BzPy5fX2NvbmZpZyB8fCB7fSkoKSksXG4gICAgICAgICAgICAgICAgc2lnbmVyOiBuZXcgQXdzU2RrU2lnVjRTaWduZXIoKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgc2NoZW1lSWQ6IFwic21pdGh5LmFwaSNub0F1dGhcIixcbiAgICAgICAgICAgICAgICBpZGVudGl0eVByb3ZpZGVyOiAoaXBjKSA9PiBpcGMuZ2V0SWRlbnRpdHlQcm92aWRlcihcInNtaXRoeS5hcGkjbm9BdXRoXCIpIHx8IChhc3luYyAoKSA9PiAoe30pKSxcbiAgICAgICAgICAgICAgICBzaWduZXI6IG5ldyBOb0F1dGhTaWduZXIoKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIG1heEF0dGVtcHRzOiBjb25maWc/Lm1heEF0dGVtcHRzID8/IGxvYWROb2RlQ29uZmlnKE5PREVfTUFYX0FUVEVNUFRfQ09ORklHX09QVElPTlMsIGNvbmZpZyksXG4gICAgICAgIHJlZ2lvbjogY29uZmlnPy5yZWdpb24gPz9cbiAgICAgICAgICAgIGxvYWROb2RlQ29uZmlnKE5PREVfUkVHSU9OX0NPTkZJR19PUFRJT05TLCB7IC4uLk5PREVfUkVHSU9OX0NPTkZJR19GSUxFX09QVElPTlMsIC4uLmxvYWRlckNvbmZpZyB9KSxcbiAgICAgICAgcmVxdWVzdEhhbmRsZXI6IFJlcXVlc3RIYW5kbGVyLmNyZWF0ZShjb25maWc/LnJlcXVlc3RIYW5kbGVyID8/IGRlZmF1bHRDb25maWdQcm92aWRlciksXG4gICAgICAgIHJldHJ5TW9kZTogY29uZmlnPy5yZXRyeU1vZGUgPz9cbiAgICAgICAgICAgIGxvYWROb2RlQ29uZmlnKHtcbiAgICAgICAgICAgICAgICAuLi5OT0RFX1JFVFJZX01PREVfQ09ORklHX09QVElPTlMsXG4gICAgICAgICAgICAgICAgZGVmYXVsdDogYXN5bmMgKCkgPT4gKGF3YWl0IGRlZmF1bHRDb25maWdQcm92aWRlcigpKS5yZXRyeU1vZGUgfHwgREVGQVVMVF9SRVRSWV9NT0RFLFxuICAgICAgICAgICAgfSwgY29uZmlnKSxcbiAgICAgICAgc2hhMjU2OiBjb25maWc/LnNoYTI1NiA/PyBIYXNoLmJpbmQobnVsbCwgXCJzaGEyNTZcIiksXG4gICAgICAgIHN0cmVhbUNvbGxlY3RvcjogY29uZmlnPy5zdHJlYW1Db2xsZWN0b3IgPz8gc3RyZWFtQ29sbGVjdG9yLFxuICAgICAgICB1c2VEdWFsc3RhY2tFbmRwb2ludDogY29uZmlnPy51c2VEdWFsc3RhY2tFbmRwb2ludCA/PyBsb2FkTm9kZUNvbmZpZyhOT0RFX1VTRV9EVUFMU1RBQ0tfRU5EUE9JTlRfQ09ORklHX09QVElPTlMsIGxvYWRlckNvbmZpZyksXG4gICAgICAgIHVzZUZpcHNFbmRwb2ludDogY29uZmlnPy51c2VGaXBzRW5kcG9pbnQgPz8gbG9hZE5vZGVDb25maWcoTk9ERV9VU0VfRklQU19FTkRQT0lOVF9DT05GSUdfT1BUSU9OUywgbG9hZGVyQ29uZmlnKSxcbiAgICAgICAgdXNlckFnZW50QXBwSWQ6IGNvbmZpZz8udXNlckFnZW50QXBwSWQgPz8gbG9hZE5vZGVDb25maWcoTk9ERV9BUFBfSURfQ09ORklHX09QVElPTlMsIGxvYWRlckNvbmZpZyksXG4gICAgfTtcbn07XG4iLCAiZXhwb3J0IGNvbnN0IGdldEh0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiA9IChydW50aW1lQ29uZmlnKSA9PiB7XG4gICAgY29uc3QgX2h0dHBBdXRoU2NoZW1lcyA9IHJ1bnRpbWVDb25maWcuaHR0cEF1dGhTY2hlbWVzO1xuICAgIGxldCBfaHR0cEF1dGhTY2hlbWVQcm92aWRlciA9IHJ1bnRpbWVDb25maWcuaHR0cEF1dGhTY2hlbWVQcm92aWRlcjtcbiAgICBsZXQgX2NyZWRlbnRpYWxzID0gcnVudGltZUNvbmZpZy5jcmVkZW50aWFscztcbiAgICByZXR1cm4ge1xuICAgICAgICBzZXRIdHRwQXV0aFNjaGVtZShodHRwQXV0aFNjaGVtZSkge1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSBfaHR0cEF1dGhTY2hlbWVzLmZpbmRJbmRleCgoc2NoZW1lKSA9PiBzY2hlbWUuc2NoZW1lSWQgPT09IGh0dHBBdXRoU2NoZW1lLnNjaGVtZUlkKTtcbiAgICAgICAgICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICBfaHR0cEF1dGhTY2hlbWVzLnB1c2goaHR0cEF1dGhTY2hlbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgX2h0dHBBdXRoU2NoZW1lcy5zcGxpY2UoaW5kZXgsIDEsIGh0dHBBdXRoU2NoZW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVzKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9odHRwQXV0aFNjaGVtZXM7XG4gICAgICAgIH0sXG4gICAgICAgIHNldEh0dHBBdXRoU2NoZW1lUHJvdmlkZXIoaHR0cEF1dGhTY2hlbWVQcm92aWRlcikge1xuICAgICAgICAgICAgX2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSBodHRwQXV0aFNjaGVtZVByb3ZpZGVyO1xuICAgICAgICB9LFxuICAgICAgICBodHRwQXV0aFNjaGVtZVByb3ZpZGVyKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9odHRwQXV0aFNjaGVtZVByb3ZpZGVyO1xuICAgICAgICB9LFxuICAgICAgICBzZXRDcmVkZW50aWFscyhjcmVkZW50aWFscykge1xuICAgICAgICAgICAgX2NyZWRlbnRpYWxzID0gY3JlZGVudGlhbHM7XG4gICAgICAgIH0sXG4gICAgICAgIGNyZWRlbnRpYWxzKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9jcmVkZW50aWFscztcbiAgICAgICAgfSxcbiAgICB9O1xufTtcbmV4cG9ydCBjb25zdCByZXNvbHZlSHR0cEF1dGhSdW50aW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIGh0dHBBdXRoU2NoZW1lczogY29uZmlnLmh0dHBBdXRoU2NoZW1lcygpLFxuICAgICAgICBodHRwQXV0aFNjaGVtZVByb3ZpZGVyOiBjb25maWcuaHR0cEF1dGhTY2hlbWVQcm92aWRlcigpLFxuICAgICAgICBjcmVkZW50aWFsczogY29uZmlnLmNyZWRlbnRpYWxzKCksXG4gICAgfTtcbn07XG4iLCAiaW1wb3J0IHsgZ2V0QXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiwgcmVzb2x2ZUF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24sIH0gZnJvbSBcIkBhd3Mtc2RrL3JlZ2lvbi1jb25maWctcmVzb2x2ZXJcIjtcbmltcG9ydCB7IGdldEh0dHBIYW5kbGVyRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiwgcmVzb2x2ZUh0dHBIYW5kbGVyUnVudGltZUNvbmZpZyB9IGZyb20gXCJAc21pdGh5L3Byb3RvY29sLWh0dHBcIjtcbmltcG9ydCB7IGdldERlZmF1bHRFeHRlbnNpb25Db25maWd1cmF0aW9uLCByZXNvbHZlRGVmYXVsdFJ1bnRpbWVDb25maWcgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyBnZXRIdHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24sIHJlc29sdmVIdHRwQXV0aFJ1bnRpbWVDb25maWcgfSBmcm9tIFwiLi9hdXRoL2h0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvblwiO1xuZXhwb3J0IGNvbnN0IHJlc29sdmVSdW50aW1lRXh0ZW5zaW9ucyA9IChydW50aW1lQ29uZmlnLCBleHRlbnNpb25zKSA9PiB7XG4gICAgY29uc3QgZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiA9IE9iamVjdC5hc3NpZ24oZ2V0QXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbihydW50aW1lQ29uZmlnKSwgZ2V0RGVmYXVsdEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24ocnVudGltZUNvbmZpZyksIGdldEh0dHBIYW5kbGVyRXh0ZW5zaW9uQ29uZmlndXJhdGlvbihydW50aW1lQ29uZmlnKSwgZ2V0SHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uKHJ1bnRpbWVDb25maWcpKTtcbiAgICBleHRlbnNpb25zLmZvckVhY2goKGV4dGVuc2lvbikgPT4gZXh0ZW5zaW9uLmNvbmZpZ3VyZShleHRlbnNpb25Db25maWd1cmF0aW9uKSk7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24ocnVudGltZUNvbmZpZywgcmVzb2x2ZUF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24oZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiksIHJlc29sdmVEZWZhdWx0UnVudGltZUNvbmZpZyhleHRlbnNpb25Db25maWd1cmF0aW9uKSwgcmVzb2x2ZUh0dHBIYW5kbGVyUnVudGltZUNvbmZpZyhleHRlbnNpb25Db25maWd1cmF0aW9uKSwgcmVzb2x2ZUh0dHBBdXRoUnVudGltZUNvbmZpZyhleHRlbnNpb25Db25maWd1cmF0aW9uKSk7XG59O1xuIiwgImltcG9ydCB7IGdldEhvc3RIZWFkZXJQbHVnaW4sIHJlc29sdmVIb3N0SGVhZGVyQ29uZmlnLCB9IGZyb20gXCJAYXdzLXNkay9taWRkbGV3YXJlLWhvc3QtaGVhZGVyXCI7XG5pbXBvcnQgeyBnZXRMb2dnZXJQbHVnaW4gfSBmcm9tIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1sb2dnZXJcIjtcbmltcG9ydCB7IGdldFJlY3Vyc2lvbkRldGVjdGlvblBsdWdpbiB9IGZyb20gXCJAYXdzLXNkay9taWRkbGV3YXJlLXJlY3Vyc2lvbi1kZXRlY3Rpb25cIjtcbmltcG9ydCB7IGdldFVzZXJBZ2VudFBsdWdpbiwgcmVzb2x2ZVVzZXJBZ2VudENvbmZpZywgfSBmcm9tIFwiQGF3cy1zZGsvbWlkZGxld2FyZS11c2VyLWFnZW50XCI7XG5pbXBvcnQgeyByZXNvbHZlUmVnaW9uQ29uZmlnIH0gZnJvbSBcIkBzbWl0aHkvY29uZmlnLXJlc29sdmVyXCI7XG5pbXBvcnQgeyBEZWZhdWx0SWRlbnRpdHlQcm92aWRlckNvbmZpZywgZ2V0SHR0cEF1dGhTY2hlbWVFbmRwb2ludFJ1bGVTZXRQbHVnaW4sIGdldEh0dHBTaWduaW5nUGx1Z2luLCB9IGZyb20gXCJAc21pdGh5L2NvcmVcIjtcbmltcG9ydCB7IGdldFNjaGVtYVNlcmRlUGx1Z2luIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IGdldENvbnRlbnRMZW5ndGhQbHVnaW4gfSBmcm9tIFwiQHNtaXRoeS9taWRkbGV3YXJlLWNvbnRlbnQtbGVuZ3RoXCI7XG5pbXBvcnQgeyByZXNvbHZlRW5kcG9pbnRDb25maWcsIH0gZnJvbSBcIkBzbWl0aHkvbWlkZGxld2FyZS1lbmRwb2ludFwiO1xuaW1wb3J0IHsgZ2V0UmV0cnlQbHVnaW4sIHJlc29sdmVSZXRyeUNvbmZpZywgfSBmcm9tIFwiQHNtaXRoeS9taWRkbGV3YXJlLXJldHJ5XCI7XG5pbXBvcnQgeyBDbGllbnQgYXMgX19DbGllbnQsIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgZGVmYXVsdFNUU0h0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyLCByZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWcsIH0gZnJvbSBcIi4vYXV0aC9odHRwQXV0aFNjaGVtZVByb3ZpZGVyXCI7XG5pbXBvcnQgeyByZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzIH0gZnJvbSBcIi4vZW5kcG9pbnQvRW5kcG9pbnRQYXJhbWV0ZXJzXCI7XG5pbXBvcnQgeyBnZXRSdW50aW1lQ29uZmlnIGFzIF9fZ2V0UnVudGltZUNvbmZpZyB9IGZyb20gXCIuL3J1bnRpbWVDb25maWdcIjtcbmltcG9ydCB7IHJlc29sdmVSdW50aW1lRXh0ZW5zaW9ucyB9IGZyb20gXCIuL3J1bnRpbWVFeHRlbnNpb25zXCI7XG5leHBvcnQgeyBfX0NsaWVudCB9O1xuZXhwb3J0IGNsYXNzIFNUU0NsaWVudCBleHRlbmRzIF9fQ2xpZW50IHtcbiAgICBjb25maWc7XG4gICAgY29uc3RydWN0b3IoLi4uW2NvbmZpZ3VyYXRpb25dKSB7XG4gICAgICAgIGNvbnN0IF9jb25maWdfMCA9IF9fZ2V0UnVudGltZUNvbmZpZyhjb25maWd1cmF0aW9uIHx8IHt9KTtcbiAgICAgICAgc3VwZXIoX2NvbmZpZ18wKTtcbiAgICAgICAgdGhpcy5pbml0Q29uZmlnID0gX2NvbmZpZ18wO1xuICAgICAgICBjb25zdCBfY29uZmlnXzEgPSByZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzKF9jb25maWdfMCk7XG4gICAgICAgIGNvbnN0IF9jb25maWdfMiA9IHJlc29sdmVVc2VyQWdlbnRDb25maWcoX2NvbmZpZ18xKTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ18zID0gcmVzb2x2ZVJldHJ5Q29uZmlnKF9jb25maWdfMik7XG4gICAgICAgIGNvbnN0IF9jb25maWdfNCA9IHJlc29sdmVSZWdpb25Db25maWcoX2NvbmZpZ18zKTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ181ID0gcmVzb2x2ZUhvc3RIZWFkZXJDb25maWcoX2NvbmZpZ180KTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ182ID0gcmVzb2x2ZUVuZHBvaW50Q29uZmlnKF9jb25maWdfNSk7XG4gICAgICAgIGNvbnN0IF9jb25maWdfNyA9IHJlc29sdmVIdHRwQXV0aFNjaGVtZUNvbmZpZyhfY29uZmlnXzYpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzggPSByZXNvbHZlUnVudGltZUV4dGVuc2lvbnMoX2NvbmZpZ183LCBjb25maWd1cmF0aW9uPy5leHRlbnNpb25zIHx8IFtdKTtcbiAgICAgICAgdGhpcy5jb25maWcgPSBfY29uZmlnXzg7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShnZXRTY2hlbWFTZXJkZVBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoZ2V0VXNlckFnZW50UGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShnZXRSZXRyeVBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoZ2V0Q29udGVudExlbmd0aFBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoZ2V0SG9zdEhlYWRlclBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoZ2V0TG9nZ2VyUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShnZXRSZWN1cnNpb25EZXRlY3Rpb25QbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGdldEh0dHBBdXRoU2NoZW1lRW5kcG9pbnRSdWxlU2V0UGx1Z2luKHRoaXMuY29uZmlnLCB7XG4gICAgICAgICAgICBodHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlcjogZGVmYXVsdFNUU0h0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyLFxuICAgICAgICAgICAgaWRlbnRpdHlQcm92aWRlckNvbmZpZ1Byb3ZpZGVyOiBhc3luYyAoY29uZmlnKSA9PiBuZXcgRGVmYXVsdElkZW50aXR5UHJvdmlkZXJDb25maWcoe1xuICAgICAgICAgICAgICAgIFwiYXdzLmF1dGgjc2lndjRcIjogY29uZmlnLmNyZWRlbnRpYWxzLFxuICAgICAgICAgICAgfSksXG4gICAgICAgIH0pKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGdldEh0dHBTaWduaW5nUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgfVxuICAgIGRlc3Ryb3koKSB7XG4gICAgICAgIHN1cGVyLmRlc3Ryb3koKTtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgZ2V0RW5kcG9pbnRQbHVnaW4gfSBmcm9tIFwiQHNtaXRoeS9taWRkbGV3YXJlLWVuZHBvaW50XCI7XG5pbXBvcnQgeyBDb21tYW5kIGFzICRDb21tYW5kIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgY29tbW9uUGFyYW1zIH0gZnJvbSBcIi4uL2VuZHBvaW50L0VuZHBvaW50UGFyYW1ldGVyc1wiO1xuaW1wb3J0IHsgQXNzdW1lUm9sZSQgfSBmcm9tIFwiLi4vc2NoZW1hcy9zY2hlbWFzXzBcIjtcbmV4cG9ydCB7ICRDb21tYW5kIH07XG5leHBvcnQgY2xhc3MgQXNzdW1lUm9sZUNvbW1hbmQgZXh0ZW5kcyAkQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW2dldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTU2VjdXJpdHlUb2tlblNlcnZpY2VWMjAxMTA2MTVcIiwgXCJBc3N1bWVSb2xlXCIsIHt9KVxuICAgIC5uKFwiU1RTQ2xpZW50XCIsIFwiQXNzdW1lUm9sZUNvbW1hbmRcIilcbiAgICAuc2MoQXNzdW1lUm9sZSQpXG4gICAgLmJ1aWxkKCkge1xufVxuIiwgImltcG9ydCB7IGdldEVuZHBvaW50UGx1Z2luIH0gZnJvbSBcIkBzbWl0aHkvbWlkZGxld2FyZS1lbmRwb2ludFwiO1xuaW1wb3J0IHsgQ29tbWFuZCBhcyAkQ29tbWFuZCB9IGZyb20gXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjtcbmltcG9ydCB7IGNvbW1vblBhcmFtcyB9IGZyb20gXCIuLi9lbmRwb2ludC9FbmRwb2ludFBhcmFtZXRlcnNcIjtcbmltcG9ydCB7IEFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHkkIH0gZnJvbSBcIi4uL3NjaGVtYXMvc2NoZW1hc18wXCI7XG5leHBvcnQgeyAkQ29tbWFuZCB9O1xuZXhwb3J0IGNsYXNzIEFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlDb21tYW5kIGV4dGVuZHMgJENvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFtnZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFXU1NlY3VyaXR5VG9rZW5TZXJ2aWNlVjIwMTEwNjE1XCIsIFwiQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eVwiLCB7fSlcbiAgICAubihcIlNUU0NsaWVudFwiLCBcIkFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlDb21tYW5kXCIpXG4gICAgLnNjKEFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHkkKVxuICAgIC5idWlsZCgpIHtcbn1cbiIsICJpbXBvcnQgeyBjcmVhdGVBZ2dyZWdhdGVkQ2xpZW50IH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgQXNzdW1lUm9sZUNvbW1hbmQgfSBmcm9tIFwiLi9jb21tYW5kcy9Bc3N1bWVSb2xlQ29tbWFuZFwiO1xuaW1wb3J0IHsgQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eUNvbW1hbmQgfSBmcm9tIFwiLi9jb21tYW5kcy9Bc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5Q29tbWFuZFwiO1xuaW1wb3J0IHsgU1RTQ2xpZW50IH0gZnJvbSBcIi4vU1RTQ2xpZW50XCI7XG5jb25zdCBjb21tYW5kcyA9IHtcbiAgICBBc3N1bWVSb2xlQ29tbWFuZCxcbiAgICBBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5Q29tbWFuZCxcbn07XG5leHBvcnQgY2xhc3MgU1RTIGV4dGVuZHMgU1RTQ2xpZW50IHtcbn1cbmNyZWF0ZUFnZ3JlZ2F0ZWRDbGllbnQoY29tbWFuZHMsIFNUUyk7XG4iLCAiZXhwb3J0ICogZnJvbSBcIi4vQXNzdW1lUm9sZUNvbW1hbmRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0Fzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlDb21tYW5kXCI7XG4iLCAiZXhwb3J0IHt9O1xuIiwgImltcG9ydCB7IHNldENyZWRlbnRpYWxGZWF0dXJlIH0gZnJvbSBcIkBhd3Mtc2RrL2NvcmUvY2xpZW50XCI7XG5pbXBvcnQgeyBzdHNSZWdpb25EZWZhdWx0UmVzb2x2ZXIgfSBmcm9tIFwiQGF3cy1zZGsvcmVnaW9uLWNvbmZpZy1yZXNvbHZlclwiO1xuaW1wb3J0IHsgQXNzdW1lUm9sZUNvbW1hbmQgfSBmcm9tIFwiLi9jb21tYW5kcy9Bc3N1bWVSb2xlQ29tbWFuZFwiO1xuaW1wb3J0IHsgQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eUNvbW1hbmQsIH0gZnJvbSBcIi4vY29tbWFuZHMvQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eUNvbW1hbmRcIjtcbmNvbnN0IGdldEFjY291bnRJZEZyb21Bc3N1bWVkUm9sZVVzZXIgPSAoYXNzdW1lZFJvbGVVc2VyKSA9PiB7XG4gICAgaWYgKHR5cGVvZiBhc3N1bWVkUm9sZVVzZXI/LkFybiA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICBjb25zdCBhcm5Db21wb25lbnRzID0gYXNzdW1lZFJvbGVVc2VyLkFybi5zcGxpdChcIjpcIik7XG4gICAgICAgIGlmIChhcm5Db21wb25lbnRzLmxlbmd0aCA+IDQgJiYgYXJuQ29tcG9uZW50c1s0XSAhPT0gXCJcIikge1xuICAgICAgICAgICAgcmV0dXJuIGFybkNvbXBvbmVudHNbNF07XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbn07XG5jb25zdCByZXNvbHZlUmVnaW9uID0gYXN5bmMgKF9yZWdpb24sIF9wYXJlbnRSZWdpb24sIGNyZWRlbnRpYWxQcm92aWRlckxvZ2dlciwgbG9hZGVyQ29uZmlnID0ge30pID0+IHtcbiAgICBjb25zdCByZWdpb24gPSB0eXBlb2YgX3JlZ2lvbiA9PT0gXCJmdW5jdGlvblwiID8gYXdhaXQgX3JlZ2lvbigpIDogX3JlZ2lvbjtcbiAgICBjb25zdCBwYXJlbnRSZWdpb24gPSB0eXBlb2YgX3BhcmVudFJlZ2lvbiA9PT0gXCJmdW5jdGlvblwiID8gYXdhaXQgX3BhcmVudFJlZ2lvbigpIDogX3BhcmVudFJlZ2lvbjtcbiAgICBsZXQgc3RzRGVmYXVsdFJlZ2lvbiA9IFwiXCI7XG4gICAgY29uc3QgcmVzb2x2ZWRSZWdpb24gPSByZWdpb24gPz8gcGFyZW50UmVnaW9uID8/IChzdHNEZWZhdWx0UmVnaW9uID0gYXdhaXQgc3RzUmVnaW9uRGVmYXVsdFJlc29sdmVyKGxvYWRlckNvbmZpZykoKSk7XG4gICAgY3JlZGVudGlhbFByb3ZpZGVyTG9nZ2VyPy5kZWJ1Zz8uKFwiQGF3cy1zZGsvY2xpZW50LXN0czo6cmVzb2x2ZVJlZ2lvblwiLCBcImFjY2VwdGluZyBmaXJzdCBvZjpcIiwgYCR7cmVnaW9ufSAoY3JlZGVudGlhbCBwcm92aWRlciBjbGllbnRDb25maWcpYCwgYCR7cGFyZW50UmVnaW9ufSAoY29udGV4dHVhbCBjbGllbnQpYCwgYCR7c3RzRGVmYXVsdFJlZ2lvbn0gKFNUUyBkZWZhdWx0OiBBV1NfUkVHSU9OLCBwcm9maWxlIHJlZ2lvbiwgb3IgdXMtZWFzdC0xKWApO1xuICAgIHJldHVybiByZXNvbHZlZFJlZ2lvbjtcbn07XG5leHBvcnQgY29uc3QgZ2V0RGVmYXVsdFJvbGVBc3N1bWVyID0gKHN0c09wdGlvbnMsIFNUU0NsaWVudCkgPT4ge1xuICAgIGxldCBzdHNDbGllbnQ7XG4gICAgbGV0IGNsb3N1cmVTb3VyY2VDcmVkcztcbiAgICByZXR1cm4gYXN5bmMgKHNvdXJjZUNyZWRzLCBwYXJhbXMpID0+IHtcbiAgICAgICAgY2xvc3VyZVNvdXJjZUNyZWRzID0gc291cmNlQ3JlZHM7XG4gICAgICAgIGlmICghc3RzQ2xpZW50KSB7XG4gICAgICAgICAgICBjb25zdCB7IGxvZ2dlciA9IHN0c09wdGlvbnM/LnBhcmVudENsaWVudENvbmZpZz8ubG9nZ2VyLCBwcm9maWxlID0gc3RzT3B0aW9ucz8ucGFyZW50Q2xpZW50Q29uZmlnPy5wcm9maWxlLCByZWdpb24sIHJlcXVlc3RIYW5kbGVyID0gc3RzT3B0aW9ucz8ucGFyZW50Q2xpZW50Q29uZmlnPy5yZXF1ZXN0SGFuZGxlciwgY3JlZGVudGlhbFByb3ZpZGVyTG9nZ2VyLCB1c2VyQWdlbnRBcHBJZCA9IHN0c09wdGlvbnM/LnBhcmVudENsaWVudENvbmZpZz8udXNlckFnZW50QXBwSWQsIH0gPSBzdHNPcHRpb25zO1xuICAgICAgICAgICAgY29uc3QgcmVzb2x2ZWRSZWdpb24gPSBhd2FpdCByZXNvbHZlUmVnaW9uKHJlZ2lvbiwgc3RzT3B0aW9ucz8ucGFyZW50Q2xpZW50Q29uZmlnPy5yZWdpb24sIGNyZWRlbnRpYWxQcm92aWRlckxvZ2dlciwge1xuICAgICAgICAgICAgICAgIGxvZ2dlcixcbiAgICAgICAgICAgICAgICBwcm9maWxlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCBpc0NvbXBhdGlibGVSZXF1ZXN0SGFuZGxlciA9ICFpc0gyKHJlcXVlc3RIYW5kbGVyKTtcbiAgICAgICAgICAgIHN0c0NsaWVudCA9IG5ldyBTVFNDbGllbnQoe1xuICAgICAgICAgICAgICAgIC4uLnN0c09wdGlvbnMsXG4gICAgICAgICAgICAgICAgdXNlckFnZW50QXBwSWQsXG4gICAgICAgICAgICAgICAgcHJvZmlsZSxcbiAgICAgICAgICAgICAgICBjcmVkZW50aWFsRGVmYXVsdFByb3ZpZGVyOiAoKSA9PiBhc3luYyAoKSA9PiBjbG9zdXJlU291cmNlQ3JlZHMsXG4gICAgICAgICAgICAgICAgcmVnaW9uOiByZXNvbHZlZFJlZ2lvbixcbiAgICAgICAgICAgICAgICByZXF1ZXN0SGFuZGxlcjogaXNDb21wYXRpYmxlUmVxdWVzdEhhbmRsZXIgPyByZXF1ZXN0SGFuZGxlciA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBsb2dnZXI6IGxvZ2dlcixcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHsgQ3JlZGVudGlhbHMsIEFzc3VtZWRSb2xlVXNlciB9ID0gYXdhaXQgc3RzQ2xpZW50LnNlbmQobmV3IEFzc3VtZVJvbGVDb21tYW5kKHBhcmFtcykpO1xuICAgICAgICBpZiAoIUNyZWRlbnRpYWxzIHx8ICFDcmVkZW50aWFscy5BY2Nlc3NLZXlJZCB8fCAhQ3JlZGVudGlhbHMuU2VjcmV0QWNjZXNzS2V5KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgcmVzcG9uc2UgZnJvbSBTVFMuYXNzdW1lUm9sZSBjYWxsIHdpdGggcm9sZSAke3BhcmFtcy5Sb2xlQXJufWApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGFjY291bnRJZCA9IGdldEFjY291bnRJZEZyb21Bc3N1bWVkUm9sZVVzZXIoQXNzdW1lZFJvbGVVc2VyKTtcbiAgICAgICAgY29uc3QgY3JlZGVudGlhbHMgPSB7XG4gICAgICAgICAgICBhY2Nlc3NLZXlJZDogQ3JlZGVudGlhbHMuQWNjZXNzS2V5SWQsXG4gICAgICAgICAgICBzZWNyZXRBY2Nlc3NLZXk6IENyZWRlbnRpYWxzLlNlY3JldEFjY2Vzc0tleSxcbiAgICAgICAgICAgIHNlc3Npb25Ub2tlbjogQ3JlZGVudGlhbHMuU2Vzc2lvblRva2VuLFxuICAgICAgICAgICAgZXhwaXJhdGlvbjogQ3JlZGVudGlhbHMuRXhwaXJhdGlvbixcbiAgICAgICAgICAgIC4uLihDcmVkZW50aWFscy5DcmVkZW50aWFsU2NvcGUgJiYgeyBjcmVkZW50aWFsU2NvcGU6IENyZWRlbnRpYWxzLkNyZWRlbnRpYWxTY29wZSB9KSxcbiAgICAgICAgICAgIC4uLihhY2NvdW50SWQgJiYgeyBhY2NvdW50SWQgfSksXG4gICAgICAgIH07XG4gICAgICAgIHNldENyZWRlbnRpYWxGZWF0dXJlKGNyZWRlbnRpYWxzLCBcIkNSRURFTlRJQUxTX1NUU19BU1NVTUVfUk9MRVwiLCBcImlcIik7XG4gICAgICAgIHJldHVybiBjcmVkZW50aWFscztcbiAgICB9O1xufTtcbmV4cG9ydCBjb25zdCBnZXREZWZhdWx0Um9sZUFzc3VtZXJXaXRoV2ViSWRlbnRpdHkgPSAoc3RzT3B0aW9ucywgU1RTQ2xpZW50KSA9PiB7XG4gICAgbGV0IHN0c0NsaWVudDtcbiAgICByZXR1cm4gYXN5bmMgKHBhcmFtcykgPT4ge1xuICAgICAgICBpZiAoIXN0c0NsaWVudCkge1xuICAgICAgICAgICAgY29uc3QgeyBsb2dnZXIgPSBzdHNPcHRpb25zPy5wYXJlbnRDbGllbnRDb25maWc/LmxvZ2dlciwgcHJvZmlsZSA9IHN0c09wdGlvbnM/LnBhcmVudENsaWVudENvbmZpZz8ucHJvZmlsZSwgcmVnaW9uLCByZXF1ZXN0SGFuZGxlciA9IHN0c09wdGlvbnM/LnBhcmVudENsaWVudENvbmZpZz8ucmVxdWVzdEhhbmRsZXIsIGNyZWRlbnRpYWxQcm92aWRlckxvZ2dlciwgdXNlckFnZW50QXBwSWQgPSBzdHNPcHRpb25zPy5wYXJlbnRDbGllbnRDb25maWc/LnVzZXJBZ2VudEFwcElkLCB9ID0gc3RzT3B0aW9ucztcbiAgICAgICAgICAgIGNvbnN0IHJlc29sdmVkUmVnaW9uID0gYXdhaXQgcmVzb2x2ZVJlZ2lvbihyZWdpb24sIHN0c09wdGlvbnM/LnBhcmVudENsaWVudENvbmZpZz8ucmVnaW9uLCBjcmVkZW50aWFsUHJvdmlkZXJMb2dnZXIsIHtcbiAgICAgICAgICAgICAgICBsb2dnZXIsXG4gICAgICAgICAgICAgICAgcHJvZmlsZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29uc3QgaXNDb21wYXRpYmxlUmVxdWVzdEhhbmRsZXIgPSAhaXNIMihyZXF1ZXN0SGFuZGxlcik7XG4gICAgICAgICAgICBzdHNDbGllbnQgPSBuZXcgU1RTQ2xpZW50KHtcbiAgICAgICAgICAgICAgICAuLi5zdHNPcHRpb25zLFxuICAgICAgICAgICAgICAgIHVzZXJBZ2VudEFwcElkLFxuICAgICAgICAgICAgICAgIHByb2ZpbGUsXG4gICAgICAgICAgICAgICAgcmVnaW9uOiByZXNvbHZlZFJlZ2lvbixcbiAgICAgICAgICAgICAgICByZXF1ZXN0SGFuZGxlcjogaXNDb21wYXRpYmxlUmVxdWVzdEhhbmRsZXIgPyByZXF1ZXN0SGFuZGxlciA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBsb2dnZXI6IGxvZ2dlcixcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHsgQ3JlZGVudGlhbHMsIEFzc3VtZWRSb2xlVXNlciB9ID0gYXdhaXQgc3RzQ2xpZW50LnNlbmQobmV3IEFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlDb21tYW5kKHBhcmFtcykpO1xuICAgICAgICBpZiAoIUNyZWRlbnRpYWxzIHx8ICFDcmVkZW50aWFscy5BY2Nlc3NLZXlJZCB8fCAhQ3JlZGVudGlhbHMuU2VjcmV0QWNjZXNzS2V5KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgcmVzcG9uc2UgZnJvbSBTVFMuYXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eSBjYWxsIHdpdGggcm9sZSAke3BhcmFtcy5Sb2xlQXJufWApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGFjY291bnRJZCA9IGdldEFjY291bnRJZEZyb21Bc3N1bWVkUm9sZVVzZXIoQXNzdW1lZFJvbGVVc2VyKTtcbiAgICAgICAgY29uc3QgY3JlZGVudGlhbHMgPSB7XG4gICAgICAgICAgICBhY2Nlc3NLZXlJZDogQ3JlZGVudGlhbHMuQWNjZXNzS2V5SWQsXG4gICAgICAgICAgICBzZWNyZXRBY2Nlc3NLZXk6IENyZWRlbnRpYWxzLlNlY3JldEFjY2Vzc0tleSxcbiAgICAgICAgICAgIHNlc3Npb25Ub2tlbjogQ3JlZGVudGlhbHMuU2Vzc2lvblRva2VuLFxuICAgICAgICAgICAgZXhwaXJhdGlvbjogQ3JlZGVudGlhbHMuRXhwaXJhdGlvbixcbiAgICAgICAgICAgIC4uLihDcmVkZW50aWFscy5DcmVkZW50aWFsU2NvcGUgJiYgeyBjcmVkZW50aWFsU2NvcGU6IENyZWRlbnRpYWxzLkNyZWRlbnRpYWxTY29wZSB9KSxcbiAgICAgICAgICAgIC4uLihhY2NvdW50SWQgJiYgeyBhY2NvdW50SWQgfSksXG4gICAgICAgIH07XG4gICAgICAgIGlmIChhY2NvdW50SWQpIHtcbiAgICAgICAgICAgIHNldENyZWRlbnRpYWxGZWF0dXJlKGNyZWRlbnRpYWxzLCBcIlJFU09MVkVEX0FDQ09VTlRfSURcIiwgXCJUXCIpO1xuICAgICAgICB9XG4gICAgICAgIHNldENyZWRlbnRpYWxGZWF0dXJlKGNyZWRlbnRpYWxzLCBcIkNSRURFTlRJQUxTX1NUU19BU1NVTUVfUk9MRV9XRUJfSURcIiwgXCJrXCIpO1xuICAgICAgICByZXR1cm4gY3JlZGVudGlhbHM7XG4gICAgfTtcbn07XG5leHBvcnQgY29uc3QgZGVjb3JhdGVEZWZhdWx0Q3JlZGVudGlhbFByb3ZpZGVyID0gKHByb3ZpZGVyKSA9PiAoaW5wdXQpID0+IHByb3ZpZGVyKHtcbiAgICByb2xlQXNzdW1lcjogZ2V0RGVmYXVsdFJvbGVBc3N1bWVyKGlucHV0LCBpbnB1dC5zdHNDbGllbnRDdG9yKSxcbiAgICByb2xlQXNzdW1lcldpdGhXZWJJZGVudGl0eTogZ2V0RGVmYXVsdFJvbGVBc3N1bWVyV2l0aFdlYklkZW50aXR5KGlucHV0LCBpbnB1dC5zdHNDbGllbnRDdG9yKSxcbiAgICAuLi5pbnB1dCxcbn0pO1xuY29uc3QgaXNIMiA9IChyZXF1ZXN0SGFuZGxlcikgPT4ge1xuICAgIHJldHVybiByZXF1ZXN0SGFuZGxlcj8ubWV0YWRhdGE/LmhhbmRsZXJQcm90b2NvbCA9PT0gXCJoMlwiO1xufTtcbiIsICJpbXBvcnQgeyBnZXREZWZhdWx0Um9sZUFzc3VtZXIgYXMgU3RzR2V0RGVmYXVsdFJvbGVBc3N1bWVyLCBnZXREZWZhdWx0Um9sZUFzc3VtZXJXaXRoV2ViSWRlbnRpdHkgYXMgU3RzR2V0RGVmYXVsdFJvbGVBc3N1bWVyV2l0aFdlYklkZW50aXR5LCB9IGZyb20gXCIuL2RlZmF1bHRTdHNSb2xlQXNzdW1lcnNcIjtcbmltcG9ydCB7IFNUU0NsaWVudCB9IGZyb20gXCIuL1NUU0NsaWVudFwiO1xuY29uc3QgZ2V0Q3VzdG9taXphYmxlU3RzQ2xpZW50Q3RvciA9IChiYXNlQ3RvciwgY3VzdG9taXphdGlvbnMpID0+IHtcbiAgICBpZiAoIWN1c3RvbWl6YXRpb25zKVxuICAgICAgICByZXR1cm4gYmFzZUN0b3I7XG4gICAgZWxzZVxuICAgICAgICByZXR1cm4gY2xhc3MgQ3VzdG9taXphYmxlU1RTQ2xpZW50IGV4dGVuZHMgYmFzZUN0b3Ige1xuICAgICAgICAgICAgY29uc3RydWN0b3IoY29uZmlnKSB7XG4gICAgICAgICAgICAgICAgc3VwZXIoY29uZmlnKTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGN1c3RvbWl6YXRpb24gb2YgY3VzdG9taXphdGlvbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGN1c3RvbWl6YXRpb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbn07XG5leHBvcnQgY29uc3QgZ2V0RGVmYXVsdFJvbGVBc3N1bWVyID0gKHN0c09wdGlvbnMgPSB7fSwgc3RzUGx1Z2lucykgPT4gU3RzR2V0RGVmYXVsdFJvbGVBc3N1bWVyKHN0c09wdGlvbnMsIGdldEN1c3RvbWl6YWJsZVN0c0NsaWVudEN0b3IoU1RTQ2xpZW50LCBzdHNQbHVnaW5zKSk7XG5leHBvcnQgY29uc3QgZ2V0RGVmYXVsdFJvbGVBc3N1bWVyV2l0aFdlYklkZW50aXR5ID0gKHN0c09wdGlvbnMgPSB7fSwgc3RzUGx1Z2lucykgPT4gU3RzR2V0RGVmYXVsdFJvbGVBc3N1bWVyV2l0aFdlYklkZW50aXR5KHN0c09wdGlvbnMsIGdldEN1c3RvbWl6YWJsZVN0c0NsaWVudEN0b3IoU1RTQ2xpZW50LCBzdHNQbHVnaW5zKSk7XG5leHBvcnQgY29uc3QgZGVjb3JhdGVEZWZhdWx0Q3JlZGVudGlhbFByb3ZpZGVyID0gKHByb3ZpZGVyKSA9PiAoaW5wdXQpID0+IHByb3ZpZGVyKHtcbiAgICByb2xlQXNzdW1lcjogZ2V0RGVmYXVsdFJvbGVBc3N1bWVyKGlucHV0KSxcbiAgICByb2xlQXNzdW1lcldpdGhXZWJJZGVudGl0eTogZ2V0RGVmYXVsdFJvbGVBc3N1bWVyV2l0aFdlYklkZW50aXR5KGlucHV0KSxcbiAgICAuLi5pbnB1dCxcbn0pO1xuIiwgImV4cG9ydCAqIGZyb20gXCIuL1NUU0NsaWVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vU1RTXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21tYW5kc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vc2NoZW1hcy9zY2hlbWFzXzBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21vZGVscy9lcnJvcnNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21vZGVscy9tb2RlbHNfMFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZGVmYXVsdFJvbGVBc3N1bWVyc1wiO1xuZXhwb3J0IHsgU1RTU2VydmljZUV4Y2VwdGlvbiB9IGZyb20gXCIuL21vZGVscy9TVFNTZXJ2aWNlRXhjZXB0aW9uXCI7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgc2hhcmVkSW5pRmlsZUxvYWRlciA9IHJlcXVpcmUoJ0BzbWl0aHkvc2hhcmVkLWluaS1maWxlLWxvYWRlcicpO1xudmFyIHByb3BlcnR5UHJvdmlkZXIgPSByZXF1aXJlKCdAc21pdGh5L3Byb3BlcnR5LXByb3ZpZGVyJyk7XG52YXIgY2hpbGRfcHJvY2VzcyA9IHJlcXVpcmUoJ2NoaWxkX3Byb2Nlc3MnKTtcbnZhciB1dGlsID0gcmVxdWlyZSgndXRpbCcpO1xudmFyIGNsaWVudCA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL2NvcmUvY2xpZW50Jyk7XG5cbmNvbnN0IGdldFZhbGlkYXRlZFByb2Nlc3NDcmVkZW50aWFscyA9IChwcm9maWxlTmFtZSwgZGF0YSwgcHJvZmlsZXMpID0+IHtcbiAgICBpZiAoZGF0YS5WZXJzaW9uICE9PSAxKSB7XG4gICAgICAgIHRocm93IEVycm9yKGBQcm9maWxlICR7cHJvZmlsZU5hbWV9IGNyZWRlbnRpYWxfcHJvY2VzcyBkaWQgbm90IHJldHVybiBWZXJzaW9uIDEuYCk7XG4gICAgfVxuICAgIGlmIChkYXRhLkFjY2Vzc0tleUlkID09PSB1bmRlZmluZWQgfHwgZGF0YS5TZWNyZXRBY2Nlc3NLZXkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aHJvdyBFcnJvcihgUHJvZmlsZSAke3Byb2ZpbGVOYW1lfSBjcmVkZW50aWFsX3Byb2Nlc3MgcmV0dXJuZWQgaW52YWxpZCBjcmVkZW50aWFscy5gKTtcbiAgICB9XG4gICAgaWYgKGRhdGEuRXhwaXJhdGlvbikge1xuICAgICAgICBjb25zdCBjdXJyZW50VGltZSA9IG5ldyBEYXRlKCk7XG4gICAgICAgIGNvbnN0IGV4cGlyZVRpbWUgPSBuZXcgRGF0ZShkYXRhLkV4cGlyYXRpb24pO1xuICAgICAgICBpZiAoZXhwaXJlVGltZSA8IGN1cnJlbnRUaW1lKSB7XG4gICAgICAgICAgICB0aHJvdyBFcnJvcihgUHJvZmlsZSAke3Byb2ZpbGVOYW1lfSBjcmVkZW50aWFsX3Byb2Nlc3MgcmV0dXJuZWQgZXhwaXJlZCBjcmVkZW50aWFscy5gKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBsZXQgYWNjb3VudElkID0gZGF0YS5BY2NvdW50SWQ7XG4gICAgaWYgKCFhY2NvdW50SWQgJiYgcHJvZmlsZXM/Lltwcm9maWxlTmFtZV0/LmF3c19hY2NvdW50X2lkKSB7XG4gICAgICAgIGFjY291bnRJZCA9IHByb2ZpbGVzW3Byb2ZpbGVOYW1lXS5hd3NfYWNjb3VudF9pZDtcbiAgICB9XG4gICAgY29uc3QgY3JlZGVudGlhbHMgPSB7XG4gICAgICAgIGFjY2Vzc0tleUlkOiBkYXRhLkFjY2Vzc0tleUlkLFxuICAgICAgICBzZWNyZXRBY2Nlc3NLZXk6IGRhdGEuU2VjcmV0QWNjZXNzS2V5LFxuICAgICAgICAuLi4oZGF0YS5TZXNzaW9uVG9rZW4gJiYgeyBzZXNzaW9uVG9rZW46IGRhdGEuU2Vzc2lvblRva2VuIH0pLFxuICAgICAgICAuLi4oZGF0YS5FeHBpcmF0aW9uICYmIHsgZXhwaXJhdGlvbjogbmV3IERhdGUoZGF0YS5FeHBpcmF0aW9uKSB9KSxcbiAgICAgICAgLi4uKGRhdGEuQ3JlZGVudGlhbFNjb3BlICYmIHsgY3JlZGVudGlhbFNjb3BlOiBkYXRhLkNyZWRlbnRpYWxTY29wZSB9KSxcbiAgICAgICAgLi4uKGFjY291bnRJZCAmJiB7IGFjY291bnRJZCB9KSxcbiAgICB9O1xuICAgIGNsaWVudC5zZXRDcmVkZW50aWFsRmVhdHVyZShjcmVkZW50aWFscywgXCJDUkVERU5USUFMU19QUk9DRVNTXCIsIFwid1wiKTtcbiAgICByZXR1cm4gY3JlZGVudGlhbHM7XG59O1xuXG5jb25zdCByZXNvbHZlUHJvY2Vzc0NyZWRlbnRpYWxzID0gYXN5bmMgKHByb2ZpbGVOYW1lLCBwcm9maWxlcywgbG9nZ2VyKSA9PiB7XG4gICAgY29uc3QgcHJvZmlsZSA9IHByb2ZpbGVzW3Byb2ZpbGVOYW1lXTtcbiAgICBpZiAocHJvZmlsZXNbcHJvZmlsZU5hbWVdKSB7XG4gICAgICAgIGNvbnN0IGNyZWRlbnRpYWxQcm9jZXNzID0gcHJvZmlsZVtcImNyZWRlbnRpYWxfcHJvY2Vzc1wiXTtcbiAgICAgICAgaWYgKGNyZWRlbnRpYWxQcm9jZXNzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IGV4ZWNQcm9taXNlID0gdXRpbC5wcm9taXNpZnkoc2hhcmVkSW5pRmlsZUxvYWRlci5leHRlcm5hbERhdGFJbnRlcmNlcHRvcj8uZ2V0VG9rZW5SZWNvcmQ/LigpLmV4ZWMgPz8gY2hpbGRfcHJvY2Vzcy5leGVjKTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBzdGRvdXQgfSA9IGF3YWl0IGV4ZWNQcm9taXNlKGNyZWRlbnRpYWxQcm9jZXNzKTtcbiAgICAgICAgICAgICAgICBsZXQgZGF0YTtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBkYXRhID0gSlNPTi5wYXJzZShzdGRvdXQudHJpbSgpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2F0Y2gge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBFcnJvcihgUHJvZmlsZSAke3Byb2ZpbGVOYW1lfSBjcmVkZW50aWFsX3Byb2Nlc3MgcmV0dXJuZWQgaW52YWxpZCBKU09OLmApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gZ2V0VmFsaWRhdGVkUHJvY2Vzc0NyZWRlbnRpYWxzKHByb2ZpbGVOYW1lLCBkYXRhLCBwcm9maWxlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoZXJyb3IubWVzc2FnZSwgeyBsb2dnZXIgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoYFByb2ZpbGUgJHtwcm9maWxlTmFtZX0gZGlkIG5vdCBjb250YWluIGNyZWRlbnRpYWxfcHJvY2Vzcy5gLCB7IGxvZ2dlciB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKGBQcm9maWxlICR7cHJvZmlsZU5hbWV9IGNvdWxkIG5vdCBiZSBmb3VuZCBpbiBzaGFyZWQgY3JlZGVudGlhbHMgZmlsZS5gLCB7XG4gICAgICAgICAgICBsb2dnZXIsXG4gICAgICAgIH0pO1xuICAgIH1cbn07XG5cbmNvbnN0IGZyb21Qcm9jZXNzID0gKGluaXQgPSB7fSkgPT4gYXN5bmMgKHsgY2FsbGVyQ2xpZW50Q29uZmlnIH0gPSB7fSkgPT4ge1xuICAgIGluaXQubG9nZ2VyPy5kZWJ1ZyhcIkBhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItcHJvY2VzcyAtIGZyb21Qcm9jZXNzXCIpO1xuICAgIGNvbnN0IHByb2ZpbGVzID0gYXdhaXQgc2hhcmVkSW5pRmlsZUxvYWRlci5wYXJzZUtub3duRmlsZXMoaW5pdCk7XG4gICAgcmV0dXJuIHJlc29sdmVQcm9jZXNzQ3JlZGVudGlhbHMoc2hhcmVkSW5pRmlsZUxvYWRlci5nZXRQcm9maWxlTmFtZSh7XG4gICAgICAgIHByb2ZpbGU6IGluaXQucHJvZmlsZSA/PyBjYWxsZXJDbGllbnRDb25maWc/LnByb2ZpbGUsXG4gICAgfSksIHByb2ZpbGVzLCBpbml0LmxvZ2dlcik7XG59O1xuXG5leHBvcnRzLmZyb21Qcm9jZXNzID0gZnJvbVByb2Nlc3M7XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19jcmVhdGVCaW5kaW5nID0gKHRoaXMgJiYgdGhpcy5fX2NyZWF0ZUJpbmRpbmcpIHx8IChPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwgayk7XG4gICAgaWYgKCFkZXNjIHx8IChcImdldFwiIGluIGRlc2MgPyAhbS5fX2VzTW9kdWxlIDogZGVzYy53cml0YWJsZSB8fCBkZXNjLmNvbmZpZ3VyYWJsZSkpIHtcbiAgICAgIGRlc2MgPSB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiBtW2tdOyB9IH07XG4gICAgfVxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBrMiwgZGVzYyk7XG59KSA6IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgb1trMl0gPSBtW2tdO1xufSkpO1xudmFyIF9fc2V0TW9kdWxlRGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19zZXRNb2R1bGVEZWZhdWx0KSB8fCAoT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCB2KSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIFwiZGVmYXVsdFwiLCB7IGVudW1lcmFibGU6IHRydWUsIHZhbHVlOiB2IH0pO1xufSkgOiBmdW5jdGlvbihvLCB2KSB7XG4gICAgb1tcImRlZmF1bHRcIl0gPSB2O1xufSk7XG52YXIgX19pbXBvcnRTdGFyID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydFN0YXIpIHx8IChmdW5jdGlvbiAoKSB7XG4gICAgdmFyIG93bktleXMgPSBmdW5jdGlvbihvKSB7XG4gICAgICAgIG93bktleXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyB8fCBmdW5jdGlvbiAobykge1xuICAgICAgICAgICAgdmFyIGFyID0gW107XG4gICAgICAgICAgICBmb3IgKHZhciBrIGluIG8pIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobywgaykpIGFyW2FyLmxlbmd0aF0gPSBrO1xuICAgICAgICAgICAgcmV0dXJuIGFyO1xuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gb3duS2V5cyhvKTtcbiAgICB9O1xuICAgIHJldHVybiBmdW5jdGlvbiAobW9kKSB7XG4gICAgICAgIGlmIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpIHJldHVybiBtb2Q7XG4gICAgICAgIHZhciByZXN1bHQgPSB7fTtcbiAgICAgICAgaWYgKG1vZCAhPSBudWxsKSBmb3IgKHZhciBrID0gb3duS2V5cyhtb2QpLCBpID0gMDsgaSA8IGsubGVuZ3RoOyBpKyspIGlmIChrW2ldICE9PSBcImRlZmF1bHRcIikgX19jcmVhdGVCaW5kaW5nKHJlc3VsdCwgbW9kLCBrW2ldKTtcbiAgICAgICAgX19zZXRNb2R1bGVEZWZhdWx0KHJlc3VsdCwgbW9kKTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9O1xufSkoKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuZnJvbVdlYlRva2VuID0gdm9pZCAwO1xuY29uc3QgZnJvbVdlYlRva2VuID0gKGluaXQpID0+IGFzeW5jIChhd3NJZGVudGl0eVByb3BlcnRpZXMpID0+IHtcbiAgICBpbml0LmxvZ2dlcj8uZGVidWcoXCJAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLXdlYi1pZGVudGl0eSAtIGZyb21XZWJUb2tlblwiKTtcbiAgICBjb25zdCB7IHJvbGVBcm4sIHJvbGVTZXNzaW9uTmFtZSwgd2ViSWRlbnRpdHlUb2tlbiwgcHJvdmlkZXJJZCwgcG9saWN5QXJucywgcG9saWN5LCBkdXJhdGlvblNlY29uZHMgfSA9IGluaXQ7XG4gICAgbGV0IHsgcm9sZUFzc3VtZXJXaXRoV2ViSWRlbnRpdHkgfSA9IGluaXQ7XG4gICAgaWYgKCFyb2xlQXNzdW1lcldpdGhXZWJJZGVudGl0eSkge1xuICAgICAgICBjb25zdCB7IGdldERlZmF1bHRSb2xlQXNzdW1lcldpdGhXZWJJZGVudGl0eSB9ID0gYXdhaXQgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiBfX2ltcG9ydFN0YXIocmVxdWlyZShcIkBhd3Mtc2RrL25lc3RlZC1jbGllbnRzL3N0c1wiKSkpO1xuICAgICAgICByb2xlQXNzdW1lcldpdGhXZWJJZGVudGl0eSA9IGdldERlZmF1bHRSb2xlQXNzdW1lcldpdGhXZWJJZGVudGl0eSh7XG4gICAgICAgICAgICAuLi5pbml0LmNsaWVudENvbmZpZyxcbiAgICAgICAgICAgIGNyZWRlbnRpYWxQcm92aWRlckxvZ2dlcjogaW5pdC5sb2dnZXIsXG4gICAgICAgICAgICBwYXJlbnRDbGllbnRDb25maWc6IHtcbiAgICAgICAgICAgICAgICAuLi5hd3NJZGVudGl0eVByb3BlcnRpZXM/LmNhbGxlckNsaWVudENvbmZpZyxcbiAgICAgICAgICAgICAgICAuLi5pbml0LnBhcmVudENsaWVudENvbmZpZyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sIGluaXQuY2xpZW50UGx1Z2lucyk7XG4gICAgfVxuICAgIHJldHVybiByb2xlQXNzdW1lcldpdGhXZWJJZGVudGl0eSh7XG4gICAgICAgIFJvbGVBcm46IHJvbGVBcm4sXG4gICAgICAgIFJvbGVTZXNzaW9uTmFtZTogcm9sZVNlc3Npb25OYW1lID8/IGBhd3Mtc2RrLWpzLXNlc3Npb24tJHtEYXRlLm5vdygpfWAsXG4gICAgICAgIFdlYklkZW50aXR5VG9rZW46IHdlYklkZW50aXR5VG9rZW4sXG4gICAgICAgIFByb3ZpZGVySWQ6IHByb3ZpZGVySWQsXG4gICAgICAgIFBvbGljeUFybnM6IHBvbGljeUFybnMsXG4gICAgICAgIFBvbGljeTogcG9saWN5LFxuICAgICAgICBEdXJhdGlvblNlY29uZHM6IGR1cmF0aW9uU2Vjb25kcyxcbiAgICB9KTtcbn07XG5leHBvcnRzLmZyb21XZWJUb2tlbiA9IGZyb21XZWJUb2tlbjtcbiIsICJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuZnJvbVRva2VuRmlsZSA9IHZvaWQgMDtcbmNvbnN0IGNsaWVudF8xID0gcmVxdWlyZShcIkBhd3Mtc2RrL2NvcmUvY2xpZW50XCIpO1xuY29uc3QgcHJvcGVydHlfcHJvdmlkZXJfMSA9IHJlcXVpcmUoXCJAc21pdGh5L3Byb3BlcnR5LXByb3ZpZGVyXCIpO1xuY29uc3Qgc2hhcmVkX2luaV9maWxlX2xvYWRlcl8xID0gcmVxdWlyZShcIkBzbWl0aHkvc2hhcmVkLWluaS1maWxlLWxvYWRlclwiKTtcbmNvbnN0IGZzXzEgPSByZXF1aXJlKFwiZnNcIik7XG5jb25zdCBmcm9tV2ViVG9rZW5fMSA9IHJlcXVpcmUoXCIuL2Zyb21XZWJUb2tlblwiKTtcbmNvbnN0IEVOVl9UT0tFTl9GSUxFID0gXCJBV1NfV0VCX0lERU5USVRZX1RPS0VOX0ZJTEVcIjtcbmNvbnN0IEVOVl9ST0xFX0FSTiA9IFwiQVdTX1JPTEVfQVJOXCI7XG5jb25zdCBFTlZfUk9MRV9TRVNTSU9OX05BTUUgPSBcIkFXU19ST0xFX1NFU1NJT05fTkFNRVwiO1xuY29uc3QgZnJvbVRva2VuRmlsZSA9IChpbml0ID0ge30pID0+IGFzeW5jIChhd3NJZGVudGl0eVByb3BlcnRpZXMpID0+IHtcbiAgICBpbml0LmxvZ2dlcj8uZGVidWcoXCJAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLXdlYi1pZGVudGl0eSAtIGZyb21Ub2tlbkZpbGVcIik7XG4gICAgY29uc3Qgd2ViSWRlbnRpdHlUb2tlbkZpbGUgPSBpbml0Py53ZWJJZGVudGl0eVRva2VuRmlsZSA/PyBwcm9jZXNzLmVudltFTlZfVE9LRU5fRklMRV07XG4gICAgY29uc3Qgcm9sZUFybiA9IGluaXQ/LnJvbGVBcm4gPz8gcHJvY2Vzcy5lbnZbRU5WX1JPTEVfQVJOXTtcbiAgICBjb25zdCByb2xlU2Vzc2lvbk5hbWUgPSBpbml0Py5yb2xlU2Vzc2lvbk5hbWUgPz8gcHJvY2Vzcy5lbnZbRU5WX1JPTEVfU0VTU0lPTl9OQU1FXTtcbiAgICBpZiAoIXdlYklkZW50aXR5VG9rZW5GaWxlIHx8ICFyb2xlQXJuKSB7XG4gICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eV9wcm92aWRlcl8xLkNyZWRlbnRpYWxzUHJvdmlkZXJFcnJvcihcIldlYiBpZGVudGl0eSBjb25maWd1cmF0aW9uIG5vdCBzcGVjaWZpZWRcIiwge1xuICAgICAgICAgICAgbG9nZ2VyOiBpbml0LmxvZ2dlcixcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IGNyZWRlbnRpYWxzID0gYXdhaXQgKDAsIGZyb21XZWJUb2tlbl8xLmZyb21XZWJUb2tlbikoe1xuICAgICAgICAuLi5pbml0LFxuICAgICAgICB3ZWJJZGVudGl0eVRva2VuOiBzaGFyZWRfaW5pX2ZpbGVfbG9hZGVyXzEuZXh0ZXJuYWxEYXRhSW50ZXJjZXB0b3I/LmdldFRva2VuUmVjb3JkPy4oKVt3ZWJJZGVudGl0eVRva2VuRmlsZV0gPz9cbiAgICAgICAgICAgICgwLCBmc18xLnJlYWRGaWxlU3luYykod2ViSWRlbnRpdHlUb2tlbkZpbGUsIHsgZW5jb2Rpbmc6IFwiYXNjaWlcIiB9KSxcbiAgICAgICAgcm9sZUFybixcbiAgICAgICAgcm9sZVNlc3Npb25OYW1lLFxuICAgIH0pKGF3c0lkZW50aXR5UHJvcGVydGllcyk7XG4gICAgaWYgKHdlYklkZW50aXR5VG9rZW5GaWxlID09PSBwcm9jZXNzLmVudltFTlZfVE9LRU5fRklMRV0pIHtcbiAgICAgICAgKDAsIGNsaWVudF8xLnNldENyZWRlbnRpYWxGZWF0dXJlKShjcmVkZW50aWFscywgXCJDUkVERU5USUFMU19FTlZfVkFSU19TVFNfV0VCX0lEX1RPS0VOXCIsIFwiaFwiKTtcbiAgICB9XG4gICAgcmV0dXJuIGNyZWRlbnRpYWxzO1xufTtcbmV4cG9ydHMuZnJvbVRva2VuRmlsZSA9IGZyb21Ub2tlbkZpbGU7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgZnJvbVRva2VuRmlsZSA9IHJlcXVpcmUoJy4vZnJvbVRva2VuRmlsZScpO1xudmFyIGZyb21XZWJUb2tlbiA9IHJlcXVpcmUoJy4vZnJvbVdlYlRva2VuJyk7XG5cblxuXG5PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZnJvbVRva2VuRmlsZSwgJ19fcHJvdG9fXycpICYmXG5cdCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXhwb3J0cywgJ19fcHJvdG9fXycpICYmXG5cdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19wcm90b19fJywge1xuXHRcdGVudW1lcmFibGU6IHRydWUsXG5cdFx0dmFsdWU6IGZyb21Ub2tlbkZpbGVbJ19fcHJvdG9fXyddXG5cdH0pO1xuXG5PYmplY3Qua2V5cyhmcm9tVG9rZW5GaWxlKS5mb3JFYWNoKGZ1bmN0aW9uIChrKSB7XG5cdGlmIChrICE9PSAnZGVmYXVsdCcgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChleHBvcnRzLCBrKSkgZXhwb3J0c1trXSA9IGZyb21Ub2tlbkZpbGVba107XG59KTtcbk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChmcm9tV2ViVG9rZW4sICdfX3Byb3RvX18nKSAmJlxuXHQhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGV4cG9ydHMsICdfX3Byb3RvX18nKSAmJlxuXHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fcHJvdG9fXycsIHtcblx0XHRlbnVtZXJhYmxlOiB0cnVlLFxuXHRcdHZhbHVlOiBmcm9tV2ViVG9rZW5bJ19fcHJvdG9fXyddXG5cdH0pO1xuXG5PYmplY3Qua2V5cyhmcm9tV2ViVG9rZW4pLmZvckVhY2goZnVuY3Rpb24gKGspIHtcblx0aWYgKGsgIT09ICdkZWZhdWx0JyAmJiAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGV4cG9ydHMsIGspKSBleHBvcnRzW2tdID0gZnJvbVdlYlRva2VuW2tdO1xufSk7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgc2hhcmVkSW5pRmlsZUxvYWRlciA9IHJlcXVpcmUoJ0BzbWl0aHkvc2hhcmVkLWluaS1maWxlLWxvYWRlcicpO1xudmFyIHByb3BlcnR5UHJvdmlkZXIgPSByZXF1aXJlKCdAc21pdGh5L3Byb3BlcnR5LXByb3ZpZGVyJyk7XG52YXIgY2xpZW50ID0gcmVxdWlyZSgnQGF3cy1zZGsvY29yZS9jbGllbnQnKTtcbnZhciBjcmVkZW50aWFsUHJvdmlkZXJMb2dpbiA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbG9naW4nKTtcblxuY29uc3QgcmVzb2x2ZUNyZWRlbnRpYWxTb3VyY2UgPSAoY3JlZGVudGlhbFNvdXJjZSwgcHJvZmlsZU5hbWUsIGxvZ2dlcikgPT4ge1xuICAgIGNvbnN0IHNvdXJjZVByb3ZpZGVyc01hcCA9IHtcbiAgICAgICAgRWNzQ29udGFpbmVyOiBhc3luYyAob3B0aW9ucykgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBmcm9tSHR0cCB9ID0gYXdhaXQgaW1wb3J0KCdAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLWh0dHAnKTtcbiAgICAgICAgICAgIGNvbnN0IHsgZnJvbUNvbnRhaW5lck1ldGFkYXRhIH0gPSBhd2FpdCBpbXBvcnQoJ0BzbWl0aHkvY3JlZGVudGlhbC1wcm92aWRlci1pbWRzJyk7XG4gICAgICAgICAgICBsb2dnZXI/LmRlYnVnKFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1pbmkgLSBjcmVkZW50aWFsX3NvdXJjZSBpcyBFY3NDb250YWluZXJcIik7XG4gICAgICAgICAgICByZXR1cm4gYXN5bmMgKCkgPT4gcHJvcGVydHlQcm92aWRlci5jaGFpbihmcm9tSHR0cChvcHRpb25zID8/IHt9KSwgZnJvbUNvbnRhaW5lck1ldGFkYXRhKG9wdGlvbnMpKSgpLnRoZW4oc2V0TmFtZWRQcm92aWRlcik7XG4gICAgICAgIH0sXG4gICAgICAgIEVjMkluc3RhbmNlTWV0YWRhdGE6IGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgICAgICAgICBsb2dnZXI/LmRlYnVnKFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1pbmkgLSBjcmVkZW50aWFsX3NvdXJjZSBpcyBFYzJJbnN0YW5jZU1ldGFkYXRhXCIpO1xuICAgICAgICAgICAgY29uc3QgeyBmcm9tSW5zdGFuY2VNZXRhZGF0YSB9ID0gYXdhaXQgaW1wb3J0KCdAc21pdGh5L2NyZWRlbnRpYWwtcHJvdmlkZXItaW1kcycpO1xuICAgICAgICAgICAgcmV0dXJuIGFzeW5jICgpID0+IGZyb21JbnN0YW5jZU1ldGFkYXRhKG9wdGlvbnMpKCkudGhlbihzZXROYW1lZFByb3ZpZGVyKTtcbiAgICAgICAgfSxcbiAgICAgICAgRW52aXJvbm1lbnQ6IGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgICAgICAgICBsb2dnZXI/LmRlYnVnKFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1pbmkgLSBjcmVkZW50aWFsX3NvdXJjZSBpcyBFbnZpcm9ubWVudFwiKTtcbiAgICAgICAgICAgIGNvbnN0IHsgZnJvbUVudiB9ID0gYXdhaXQgaW1wb3J0KCdAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLWVudicpO1xuICAgICAgICAgICAgcmV0dXJuIGFzeW5jICgpID0+IGZyb21FbnYob3B0aW9ucykoKS50aGVuKHNldE5hbWVkUHJvdmlkZXIpO1xuICAgICAgICB9LFxuICAgIH07XG4gICAgaWYgKGNyZWRlbnRpYWxTb3VyY2UgaW4gc291cmNlUHJvdmlkZXJzTWFwKSB7XG4gICAgICAgIHJldHVybiBzb3VyY2VQcm92aWRlcnNNYXBbY3JlZGVudGlhbFNvdXJjZV07XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoYFVuc3VwcG9ydGVkIGNyZWRlbnRpYWwgc291cmNlIGluIHByb2ZpbGUgJHtwcm9maWxlTmFtZX0uIEdvdCAke2NyZWRlbnRpYWxTb3VyY2V9LCBgICtcbiAgICAgICAgICAgIGBleHBlY3RlZCBFY3NDb250YWluZXIgb3IgRWMySW5zdGFuY2VNZXRhZGF0YSBvciBFbnZpcm9ubWVudC5gLCB7IGxvZ2dlciB9KTtcbiAgICB9XG59O1xuY29uc3Qgc2V0TmFtZWRQcm92aWRlciA9IChjcmVkcykgPT4gY2xpZW50LnNldENyZWRlbnRpYWxGZWF0dXJlKGNyZWRzLCBcIkNSRURFTlRJQUxTX1BST0ZJTEVfTkFNRURfUFJPVklERVJcIiwgXCJwXCIpO1xuXG5jb25zdCBpc0Fzc3VtZVJvbGVQcm9maWxlID0gKGFyZywgeyBwcm9maWxlID0gXCJkZWZhdWx0XCIsIGxvZ2dlciB9ID0ge30pID0+IHtcbiAgICByZXR1cm4gKEJvb2xlYW4oYXJnKSAmJlxuICAgICAgICB0eXBlb2YgYXJnID09PSBcIm9iamVjdFwiICYmXG4gICAgICAgIHR5cGVvZiBhcmcucm9sZV9hcm4gPT09IFwic3RyaW5nXCIgJiZcbiAgICAgICAgW1widW5kZWZpbmVkXCIsIFwic3RyaW5nXCJdLmluZGV4T2YodHlwZW9mIGFyZy5yb2xlX3Nlc3Npb25fbmFtZSkgPiAtMSAmJlxuICAgICAgICBbXCJ1bmRlZmluZWRcIiwgXCJzdHJpbmdcIl0uaW5kZXhPZih0eXBlb2YgYXJnLmV4dGVybmFsX2lkKSA+IC0xICYmXG4gICAgICAgIFtcInVuZGVmaW5lZFwiLCBcInN0cmluZ1wiXS5pbmRleE9mKHR5cGVvZiBhcmcubWZhX3NlcmlhbCkgPiAtMSAmJlxuICAgICAgICAoaXNBc3N1bWVSb2xlV2l0aFNvdXJjZVByb2ZpbGUoYXJnLCB7IHByb2ZpbGUsIGxvZ2dlciB9KSB8fCBpc0NyZWRlbnRpYWxTb3VyY2VQcm9maWxlKGFyZywgeyBwcm9maWxlLCBsb2dnZXIgfSkpKTtcbn07XG5jb25zdCBpc0Fzc3VtZVJvbGVXaXRoU291cmNlUHJvZmlsZSA9IChhcmcsIHsgcHJvZmlsZSwgbG9nZ2VyIH0pID0+IHtcbiAgICBjb25zdCB3aXRoU291cmNlUHJvZmlsZSA9IHR5cGVvZiBhcmcuc291cmNlX3Byb2ZpbGUgPT09IFwic3RyaW5nXCIgJiYgdHlwZW9mIGFyZy5jcmVkZW50aWFsX3NvdXJjZSA9PT0gXCJ1bmRlZmluZWRcIjtcbiAgICBpZiAod2l0aFNvdXJjZVByb2ZpbGUpIHtcbiAgICAgICAgbG9nZ2VyPy5kZWJ1Zz8uKGAgICAgJHtwcm9maWxlfSBpc0Fzc3VtZVJvbGVXaXRoU291cmNlUHJvZmlsZSBzb3VyY2VfcHJvZmlsZT0ke2FyZy5zb3VyY2VfcHJvZmlsZX1gKTtcbiAgICB9XG4gICAgcmV0dXJuIHdpdGhTb3VyY2VQcm9maWxlO1xufTtcbmNvbnN0IGlzQ3JlZGVudGlhbFNvdXJjZVByb2ZpbGUgPSAoYXJnLCB7IHByb2ZpbGUsIGxvZ2dlciB9KSA9PiB7XG4gICAgY29uc3Qgd2l0aFByb3ZpZGVyUHJvZmlsZSA9IHR5cGVvZiBhcmcuY3JlZGVudGlhbF9zb3VyY2UgPT09IFwic3RyaW5nXCIgJiYgdHlwZW9mIGFyZy5zb3VyY2VfcHJvZmlsZSA9PT0gXCJ1bmRlZmluZWRcIjtcbiAgICBpZiAod2l0aFByb3ZpZGVyUHJvZmlsZSkge1xuICAgICAgICBsb2dnZXI/LmRlYnVnPy4oYCAgICAke3Byb2ZpbGV9IGlzQ3JlZGVudGlhbFNvdXJjZVByb2ZpbGUgY3JlZGVudGlhbF9zb3VyY2U9JHthcmcuY3JlZGVudGlhbF9zb3VyY2V9YCk7XG4gICAgfVxuICAgIHJldHVybiB3aXRoUHJvdmlkZXJQcm9maWxlO1xufTtcbmNvbnN0IHJlc29sdmVBc3N1bWVSb2xlQ3JlZGVudGlhbHMgPSBhc3luYyAocHJvZmlsZU5hbWUsIHByb2ZpbGVzLCBvcHRpb25zLCBjYWxsZXJDbGllbnRDb25maWcsIHZpc2l0ZWRQcm9maWxlcyA9IHt9LCByZXNvbHZlUHJvZmlsZURhdGEpID0+IHtcbiAgICBvcHRpb25zLmxvZ2dlcj8uZGVidWcoXCJAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLWluaSAtIHJlc29sdmVBc3N1bWVSb2xlQ3JlZGVudGlhbHMgKFNUUylcIik7XG4gICAgY29uc3QgcHJvZmlsZURhdGEgPSBwcm9maWxlc1twcm9maWxlTmFtZV07XG4gICAgY29uc3QgeyBzb3VyY2VfcHJvZmlsZSwgcmVnaW9uIH0gPSBwcm9maWxlRGF0YTtcbiAgICBpZiAoIW9wdGlvbnMucm9sZUFzc3VtZXIpIHtcbiAgICAgICAgY29uc3QgeyBnZXREZWZhdWx0Um9sZUFzc3VtZXIgfSA9IGF3YWl0IGltcG9ydCgnQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvc3RzJyk7XG4gICAgICAgIG9wdGlvbnMucm9sZUFzc3VtZXIgPSBnZXREZWZhdWx0Um9sZUFzc3VtZXIoe1xuICAgICAgICAgICAgLi4ub3B0aW9ucy5jbGllbnRDb25maWcsXG4gICAgICAgICAgICBjcmVkZW50aWFsUHJvdmlkZXJMb2dnZXI6IG9wdGlvbnMubG9nZ2VyLFxuICAgICAgICAgICAgcGFyZW50Q2xpZW50Q29uZmlnOiB7XG4gICAgICAgICAgICAgICAgLi4uY2FsbGVyQ2xpZW50Q29uZmlnLFxuICAgICAgICAgICAgICAgIC4uLm9wdGlvbnM/LnBhcmVudENsaWVudENvbmZpZyxcbiAgICAgICAgICAgICAgICByZWdpb246IHJlZ2lvbiA/PyBvcHRpb25zPy5wYXJlbnRDbGllbnRDb25maWc/LnJlZ2lvbiA/PyBjYWxsZXJDbGllbnRDb25maWc/LnJlZ2lvbixcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sIG9wdGlvbnMuY2xpZW50UGx1Z2lucyk7XG4gICAgfVxuICAgIGlmIChzb3VyY2VfcHJvZmlsZSAmJiBzb3VyY2VfcHJvZmlsZSBpbiB2aXNpdGVkUHJvZmlsZXMpIHtcbiAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKGBEZXRlY3RlZCBhIGN5Y2xlIGF0dGVtcHRpbmcgdG8gcmVzb2x2ZSBjcmVkZW50aWFscyBmb3IgcHJvZmlsZWAgK1xuICAgICAgICAgICAgYCAke3NoYXJlZEluaUZpbGVMb2FkZXIuZ2V0UHJvZmlsZU5hbWUob3B0aW9ucyl9LiBQcm9maWxlcyB2aXNpdGVkOiBgICtcbiAgICAgICAgICAgIE9iamVjdC5rZXlzKHZpc2l0ZWRQcm9maWxlcykuam9pbihcIiwgXCIpLCB7IGxvZ2dlcjogb3B0aW9ucy5sb2dnZXIgfSk7XG4gICAgfVxuICAgIG9wdGlvbnMubG9nZ2VyPy5kZWJ1ZyhgQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1pbmkgLSBmaW5kaW5nIGNyZWRlbnRpYWwgcmVzb2x2ZXIgdXNpbmcgJHtzb3VyY2VfcHJvZmlsZSA/IGBzb3VyY2VfcHJvZmlsZT1bJHtzb3VyY2VfcHJvZmlsZX1dYCA6IGBwcm9maWxlPVske3Byb2ZpbGVOYW1lfV1gfWApO1xuICAgIGNvbnN0IHNvdXJjZUNyZWRzUHJvdmlkZXIgPSBzb3VyY2VfcHJvZmlsZVxuICAgICAgICA/IHJlc29sdmVQcm9maWxlRGF0YShzb3VyY2VfcHJvZmlsZSwgcHJvZmlsZXMsIG9wdGlvbnMsIGNhbGxlckNsaWVudENvbmZpZywge1xuICAgICAgICAgICAgLi4udmlzaXRlZFByb2ZpbGVzLFxuICAgICAgICAgICAgW3NvdXJjZV9wcm9maWxlXTogdHJ1ZSxcbiAgICAgICAgfSwgaXNDcmVkZW50aWFsU291cmNlV2l0aG91dFJvbGVBcm4ocHJvZmlsZXNbc291cmNlX3Byb2ZpbGVdID8/IHt9KSlcbiAgICAgICAgOiAoYXdhaXQgcmVzb2x2ZUNyZWRlbnRpYWxTb3VyY2UocHJvZmlsZURhdGEuY3JlZGVudGlhbF9zb3VyY2UsIHByb2ZpbGVOYW1lLCBvcHRpb25zLmxvZ2dlcikob3B0aW9ucykpKCk7XG4gICAgaWYgKGlzQ3JlZGVudGlhbFNvdXJjZVdpdGhvdXRSb2xlQXJuKHByb2ZpbGVEYXRhKSkge1xuICAgICAgICByZXR1cm4gc291cmNlQ3JlZHNQcm92aWRlci50aGVuKChjcmVkcykgPT4gY2xpZW50LnNldENyZWRlbnRpYWxGZWF0dXJlKGNyZWRzLCBcIkNSRURFTlRJQUxTX1BST0ZJTEVfU09VUkNFX1BST0ZJTEVcIiwgXCJvXCIpKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IHtcbiAgICAgICAgICAgIFJvbGVBcm46IHByb2ZpbGVEYXRhLnJvbGVfYXJuLFxuICAgICAgICAgICAgUm9sZVNlc3Npb25OYW1lOiBwcm9maWxlRGF0YS5yb2xlX3Nlc3Npb25fbmFtZSB8fCBgYXdzLXNkay1qcy0ke0RhdGUubm93KCl9YCxcbiAgICAgICAgICAgIEV4dGVybmFsSWQ6IHByb2ZpbGVEYXRhLmV4dGVybmFsX2lkLFxuICAgICAgICAgICAgRHVyYXRpb25TZWNvbmRzOiBwYXJzZUludChwcm9maWxlRGF0YS5kdXJhdGlvbl9zZWNvbmRzIHx8IFwiMzYwMFwiLCAxMCksXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHsgbWZhX3NlcmlhbCB9ID0gcHJvZmlsZURhdGE7XG4gICAgICAgIGlmIChtZmFfc2VyaWFsKSB7XG4gICAgICAgICAgICBpZiAoIW9wdGlvbnMubWZhQ29kZVByb3ZpZGVyKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKGBQcm9maWxlICR7cHJvZmlsZU5hbWV9IHJlcXVpcmVzIG11bHRpLWZhY3RvciBhdXRoZW50aWNhdGlvbiwgYnV0IG5vIE1GQSBjb2RlIGNhbGxiYWNrIHdhcyBwcm92aWRlZC5gLCB7IGxvZ2dlcjogb3B0aW9ucy5sb2dnZXIsIHRyeU5leHRMaW5rOiBmYWxzZSB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBhcmFtcy5TZXJpYWxOdW1iZXIgPSBtZmFfc2VyaWFsO1xuICAgICAgICAgICAgcGFyYW1zLlRva2VuQ29kZSA9IGF3YWl0IG9wdGlvbnMubWZhQ29kZVByb3ZpZGVyKG1mYV9zZXJpYWwpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNvdXJjZUNyZWRzID0gYXdhaXQgc291cmNlQ3JlZHNQcm92aWRlcjtcbiAgICAgICAgcmV0dXJuIG9wdGlvbnMucm9sZUFzc3VtZXIoc291cmNlQ3JlZHMsIHBhcmFtcykudGhlbigoY3JlZHMpID0+IGNsaWVudC5zZXRDcmVkZW50aWFsRmVhdHVyZShjcmVkcywgXCJDUkVERU5USUFMU19QUk9GSUxFX1NPVVJDRV9QUk9GSUxFXCIsIFwib1wiKSk7XG4gICAgfVxufTtcbmNvbnN0IGlzQ3JlZGVudGlhbFNvdXJjZVdpdGhvdXRSb2xlQXJuID0gKHNlY3Rpb24pID0+IHtcbiAgICByZXR1cm4gIXNlY3Rpb24ucm9sZV9hcm4gJiYgISFzZWN0aW9uLmNyZWRlbnRpYWxfc291cmNlO1xufTtcblxuY29uc3QgaXNMb2dpblByb2ZpbGUgPSAoZGF0YSkgPT4ge1xuICAgIHJldHVybiBCb29sZWFuKGRhdGEgJiYgZGF0YS5sb2dpbl9zZXNzaW9uKTtcbn07XG5jb25zdCByZXNvbHZlTG9naW5DcmVkZW50aWFscyA9IGFzeW5jIChwcm9maWxlTmFtZSwgb3B0aW9ucywgY2FsbGVyQ2xpZW50Q29uZmlnKSA9PiB7XG4gICAgY29uc3QgY3JlZGVudGlhbHMgPSBhd2FpdCBjcmVkZW50aWFsUHJvdmlkZXJMb2dpbi5mcm9tTG9naW5DcmVkZW50aWFscyh7XG4gICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgIHByb2ZpbGU6IHByb2ZpbGVOYW1lLFxuICAgIH0pKHsgY2FsbGVyQ2xpZW50Q29uZmlnIH0pO1xuICAgIHJldHVybiBjbGllbnQuc2V0Q3JlZGVudGlhbEZlYXR1cmUoY3JlZGVudGlhbHMsIFwiQ1JFREVOVElBTFNfUFJPRklMRV9MT0dJTlwiLCBcIkFDXCIpO1xufTtcblxuY29uc3QgaXNQcm9jZXNzUHJvZmlsZSA9IChhcmcpID0+IEJvb2xlYW4oYXJnKSAmJiB0eXBlb2YgYXJnID09PSBcIm9iamVjdFwiICYmIHR5cGVvZiBhcmcuY3JlZGVudGlhbF9wcm9jZXNzID09PSBcInN0cmluZ1wiO1xuY29uc3QgcmVzb2x2ZVByb2Nlc3NDcmVkZW50aWFscyA9IGFzeW5jIChvcHRpb25zLCBwcm9maWxlKSA9PiBpbXBvcnQoJ0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItcHJvY2VzcycpLnRoZW4oKHsgZnJvbVByb2Nlc3MgfSkgPT4gZnJvbVByb2Nlc3Moe1xuICAgIC4uLm9wdGlvbnMsXG4gICAgcHJvZmlsZSxcbn0pKCkudGhlbigoY3JlZHMpID0+IGNsaWVudC5zZXRDcmVkZW50aWFsRmVhdHVyZShjcmVkcywgXCJDUkVERU5USUFMU19QUk9GSUxFX1BST0NFU1NcIiwgXCJ2XCIpKSk7XG5cbmNvbnN0IHJlc29sdmVTc29DcmVkZW50aWFscyA9IGFzeW5jIChwcm9maWxlLCBwcm9maWxlRGF0YSwgb3B0aW9ucyA9IHt9LCBjYWxsZXJDbGllbnRDb25maWcpID0+IHtcbiAgICBjb25zdCB7IGZyb21TU08gfSA9IGF3YWl0IGltcG9ydCgnQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1zc28nKTtcbiAgICByZXR1cm4gZnJvbVNTTyh7XG4gICAgICAgIHByb2ZpbGUsXG4gICAgICAgIGxvZ2dlcjogb3B0aW9ucy5sb2dnZXIsXG4gICAgICAgIHBhcmVudENsaWVudENvbmZpZzogb3B0aW9ucy5wYXJlbnRDbGllbnRDb25maWcsXG4gICAgICAgIGNsaWVudENvbmZpZzogb3B0aW9ucy5jbGllbnRDb25maWcsXG4gICAgfSkoe1xuICAgICAgICBjYWxsZXJDbGllbnRDb25maWcsXG4gICAgfSkudGhlbigoY3JlZHMpID0+IHtcbiAgICAgICAgaWYgKHByb2ZpbGVEYXRhLnNzb19zZXNzaW9uKSB7XG4gICAgICAgICAgICByZXR1cm4gY2xpZW50LnNldENyZWRlbnRpYWxGZWF0dXJlKGNyZWRzLCBcIkNSRURFTlRJQUxTX1BST0ZJTEVfU1NPXCIsIFwiclwiKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBjbGllbnQuc2V0Q3JlZGVudGlhbEZlYXR1cmUoY3JlZHMsIFwiQ1JFREVOVElBTFNfUFJPRklMRV9TU09fTEVHQUNZXCIsIFwidFwiKTtcbiAgICAgICAgfVxuICAgIH0pO1xufTtcbmNvbnN0IGlzU3NvUHJvZmlsZSA9IChhcmcpID0+IGFyZyAmJlxuICAgICh0eXBlb2YgYXJnLnNzb19zdGFydF91cmwgPT09IFwic3RyaW5nXCIgfHxcbiAgICAgICAgdHlwZW9mIGFyZy5zc29fYWNjb3VudF9pZCA9PT0gXCJzdHJpbmdcIiB8fFxuICAgICAgICB0eXBlb2YgYXJnLnNzb19zZXNzaW9uID09PSBcInN0cmluZ1wiIHx8XG4gICAgICAgIHR5cGVvZiBhcmcuc3NvX3JlZ2lvbiA9PT0gXCJzdHJpbmdcIiB8fFxuICAgICAgICB0eXBlb2YgYXJnLnNzb19yb2xlX25hbWUgPT09IFwic3RyaW5nXCIpO1xuXG5jb25zdCBpc1N0YXRpY0NyZWRzUHJvZmlsZSA9IChhcmcpID0+IEJvb2xlYW4oYXJnKSAmJlxuICAgIHR5cGVvZiBhcmcgPT09IFwib2JqZWN0XCIgJiZcbiAgICB0eXBlb2YgYXJnLmF3c19hY2Nlc3Nfa2V5X2lkID09PSBcInN0cmluZ1wiICYmXG4gICAgdHlwZW9mIGFyZy5hd3Nfc2VjcmV0X2FjY2Vzc19rZXkgPT09IFwic3RyaW5nXCIgJiZcbiAgICBbXCJ1bmRlZmluZWRcIiwgXCJzdHJpbmdcIl0uaW5kZXhPZih0eXBlb2YgYXJnLmF3c19zZXNzaW9uX3Rva2VuKSA+IC0xICYmXG4gICAgW1widW5kZWZpbmVkXCIsIFwic3RyaW5nXCJdLmluZGV4T2YodHlwZW9mIGFyZy5hd3NfYWNjb3VudF9pZCkgPiAtMTtcbmNvbnN0IHJlc29sdmVTdGF0aWNDcmVkZW50aWFscyA9IGFzeW5jIChwcm9maWxlLCBvcHRpb25zKSA9PiB7XG4gICAgb3B0aW9ucz8ubG9nZ2VyPy5kZWJ1ZyhcIkBhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItaW5pIC0gcmVzb2x2ZVN0YXRpY0NyZWRlbnRpYWxzXCIpO1xuICAgIGNvbnN0IGNyZWRlbnRpYWxzID0ge1xuICAgICAgICBhY2Nlc3NLZXlJZDogcHJvZmlsZS5hd3NfYWNjZXNzX2tleV9pZCxcbiAgICAgICAgc2VjcmV0QWNjZXNzS2V5OiBwcm9maWxlLmF3c19zZWNyZXRfYWNjZXNzX2tleSxcbiAgICAgICAgc2Vzc2lvblRva2VuOiBwcm9maWxlLmF3c19zZXNzaW9uX3Rva2VuLFxuICAgICAgICAuLi4ocHJvZmlsZS5hd3NfY3JlZGVudGlhbF9zY29wZSAmJiB7IGNyZWRlbnRpYWxTY29wZTogcHJvZmlsZS5hd3NfY3JlZGVudGlhbF9zY29wZSB9KSxcbiAgICAgICAgLi4uKHByb2ZpbGUuYXdzX2FjY291bnRfaWQgJiYgeyBhY2NvdW50SWQ6IHByb2ZpbGUuYXdzX2FjY291bnRfaWQgfSksXG4gICAgfTtcbiAgICByZXR1cm4gY2xpZW50LnNldENyZWRlbnRpYWxGZWF0dXJlKGNyZWRlbnRpYWxzLCBcIkNSRURFTlRJQUxTX1BST0ZJTEVcIiwgXCJuXCIpO1xufTtcblxuY29uc3QgaXNXZWJJZGVudGl0eVByb2ZpbGUgPSAoYXJnKSA9PiBCb29sZWFuKGFyZykgJiZcbiAgICB0eXBlb2YgYXJnID09PSBcIm9iamVjdFwiICYmXG4gICAgdHlwZW9mIGFyZy53ZWJfaWRlbnRpdHlfdG9rZW5fZmlsZSA9PT0gXCJzdHJpbmdcIiAmJlxuICAgIHR5cGVvZiBhcmcucm9sZV9hcm4gPT09IFwic3RyaW5nXCIgJiZcbiAgICBbXCJ1bmRlZmluZWRcIiwgXCJzdHJpbmdcIl0uaW5kZXhPZih0eXBlb2YgYXJnLnJvbGVfc2Vzc2lvbl9uYW1lKSA+IC0xO1xuY29uc3QgcmVzb2x2ZVdlYklkZW50aXR5Q3JlZGVudGlhbHMgPSBhc3luYyAocHJvZmlsZSwgb3B0aW9ucywgY2FsbGVyQ2xpZW50Q29uZmlnKSA9PiBpbXBvcnQoJ0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItd2ViLWlkZW50aXR5JykudGhlbigoeyBmcm9tVG9rZW5GaWxlIH0pID0+IGZyb21Ub2tlbkZpbGUoe1xuICAgIHdlYklkZW50aXR5VG9rZW5GaWxlOiBwcm9maWxlLndlYl9pZGVudGl0eV90b2tlbl9maWxlLFxuICAgIHJvbGVBcm46IHByb2ZpbGUucm9sZV9hcm4sXG4gICAgcm9sZVNlc3Npb25OYW1lOiBwcm9maWxlLnJvbGVfc2Vzc2lvbl9uYW1lLFxuICAgIHJvbGVBc3N1bWVyV2l0aFdlYklkZW50aXR5OiBvcHRpb25zLnJvbGVBc3N1bWVyV2l0aFdlYklkZW50aXR5LFxuICAgIGxvZ2dlcjogb3B0aW9ucy5sb2dnZXIsXG4gICAgcGFyZW50Q2xpZW50Q29uZmlnOiBvcHRpb25zLnBhcmVudENsaWVudENvbmZpZyxcbn0pKHtcbiAgICBjYWxsZXJDbGllbnRDb25maWcsXG59KS50aGVuKChjcmVkcykgPT4gY2xpZW50LnNldENyZWRlbnRpYWxGZWF0dXJlKGNyZWRzLCBcIkNSRURFTlRJQUxTX1BST0ZJTEVfU1RTX1dFQl9JRF9UT0tFTlwiLCBcInFcIikpKTtcblxuY29uc3QgcmVzb2x2ZVByb2ZpbGVEYXRhID0gYXN5bmMgKHByb2ZpbGVOYW1lLCBwcm9maWxlcywgb3B0aW9ucywgY2FsbGVyQ2xpZW50Q29uZmlnLCB2aXNpdGVkUHJvZmlsZXMgPSB7fSwgaXNBc3N1bWVSb2xlUmVjdXJzaXZlQ2FsbCA9IGZhbHNlKSA9PiB7XG4gICAgY29uc3QgZGF0YSA9IHByb2ZpbGVzW3Byb2ZpbGVOYW1lXTtcbiAgICBpZiAoT2JqZWN0LmtleXModmlzaXRlZFByb2ZpbGVzKS5sZW5ndGggPiAwICYmIGlzU3RhdGljQ3JlZHNQcm9maWxlKGRhdGEpKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlU3RhdGljQ3JlZGVudGlhbHMoZGF0YSwgb3B0aW9ucyk7XG4gICAgfVxuICAgIGlmIChpc0Fzc3VtZVJvbGVSZWN1cnNpdmVDYWxsIHx8IGlzQXNzdW1lUm9sZVByb2ZpbGUoZGF0YSwgeyBwcm9maWxlOiBwcm9maWxlTmFtZSwgbG9nZ2VyOiBvcHRpb25zLmxvZ2dlciB9KSkge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZUFzc3VtZVJvbGVDcmVkZW50aWFscyhwcm9maWxlTmFtZSwgcHJvZmlsZXMsIG9wdGlvbnMsIGNhbGxlckNsaWVudENvbmZpZywgdmlzaXRlZFByb2ZpbGVzLCByZXNvbHZlUHJvZmlsZURhdGEpO1xuICAgIH1cbiAgICBpZiAoaXNTdGF0aWNDcmVkc1Byb2ZpbGUoZGF0YSkpIHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVTdGF0aWNDcmVkZW50aWFscyhkYXRhLCBvcHRpb25zKTtcbiAgICB9XG4gICAgaWYgKGlzV2ViSWRlbnRpdHlQcm9maWxlKGRhdGEpKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlV2ViSWRlbnRpdHlDcmVkZW50aWFscyhkYXRhLCBvcHRpb25zLCBjYWxsZXJDbGllbnRDb25maWcpO1xuICAgIH1cbiAgICBpZiAoaXNQcm9jZXNzUHJvZmlsZShkYXRhKSkge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZVByb2Nlc3NDcmVkZW50aWFscyhvcHRpb25zLCBwcm9maWxlTmFtZSk7XG4gICAgfVxuICAgIGlmIChpc1Nzb1Byb2ZpbGUoZGF0YSkpIHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHJlc29sdmVTc29DcmVkZW50aWFscyhwcm9maWxlTmFtZSwgZGF0YSwgb3B0aW9ucywgY2FsbGVyQ2xpZW50Q29uZmlnKTtcbiAgICB9XG4gICAgaWYgKGlzTG9naW5Qcm9maWxlKGRhdGEpKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlTG9naW5DcmVkZW50aWFscyhwcm9maWxlTmFtZSwgb3B0aW9ucywgY2FsbGVyQ2xpZW50Q29uZmlnKTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKGBDb3VsZCBub3QgcmVzb2x2ZSBjcmVkZW50aWFscyB1c2luZyBwcm9maWxlOiBbJHtwcm9maWxlTmFtZX1dIGluIGNvbmZpZ3VyYXRpb24vY3JlZGVudGlhbHMgZmlsZShzKS5gLCB7IGxvZ2dlcjogb3B0aW9ucy5sb2dnZXIgfSk7XG59O1xuXG5jb25zdCBmcm9tSW5pID0gKGluaXQgPSB7fSkgPT4gYXN5bmMgKHsgY2FsbGVyQ2xpZW50Q29uZmlnIH0gPSB7fSkgPT4ge1xuICAgIGluaXQubG9nZ2VyPy5kZWJ1ZyhcIkBhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItaW5pIC0gZnJvbUluaVwiKTtcbiAgICBjb25zdCBwcm9maWxlcyA9IGF3YWl0IHNoYXJlZEluaUZpbGVMb2FkZXIucGFyc2VLbm93bkZpbGVzKGluaXQpO1xuICAgIHJldHVybiByZXNvbHZlUHJvZmlsZURhdGEoc2hhcmVkSW5pRmlsZUxvYWRlci5nZXRQcm9maWxlTmFtZSh7XG4gICAgICAgIHByb2ZpbGU6IGluaXQucHJvZmlsZSA/PyBjYWxsZXJDbGllbnRDb25maWc/LnByb2ZpbGUsXG4gICAgfSksIHByb2ZpbGVzLCBpbml0LCBjYWxsZXJDbGllbnRDb25maWcpO1xufTtcblxuZXhwb3J0cy5mcm9tSW5pID0gZnJvbUluaTtcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBjcmVkZW50aWFsUHJvdmlkZXJFbnYgPSByZXF1aXJlKCdAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLWVudicpO1xudmFyIHByb3BlcnR5UHJvdmlkZXIgPSByZXF1aXJlKCdAc21pdGh5L3Byb3BlcnR5LXByb3ZpZGVyJyk7XG52YXIgc2hhcmVkSW5pRmlsZUxvYWRlciA9IHJlcXVpcmUoJ0BzbWl0aHkvc2hhcmVkLWluaS1maWxlLWxvYWRlcicpO1xuXG5jb25zdCBFTlZfSU1EU19ESVNBQkxFRCA9IFwiQVdTX0VDMl9NRVRBREFUQV9ESVNBQkxFRFwiO1xuY29uc3QgcmVtb3RlUHJvdmlkZXIgPSBhc3luYyAoaW5pdCkgPT4ge1xuICAgIGNvbnN0IHsgRU5WX0NNRFNfRlVMTF9VUkksIEVOVl9DTURTX1JFTEFUSVZFX1VSSSwgZnJvbUNvbnRhaW5lck1ldGFkYXRhLCBmcm9tSW5zdGFuY2VNZXRhZGF0YSB9ID0gYXdhaXQgaW1wb3J0KCdAc21pdGh5L2NyZWRlbnRpYWwtcHJvdmlkZXItaW1kcycpO1xuICAgIGlmIChwcm9jZXNzLmVudltFTlZfQ01EU19SRUxBVElWRV9VUkldIHx8IHByb2Nlc3MuZW52W0VOVl9DTURTX0ZVTExfVVJJXSkge1xuICAgICAgICBpbml0LmxvZ2dlcj8uZGVidWcoXCJAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLW5vZGUgLSByZW1vdGVQcm92aWRlcjo6ZnJvbUh0dHAvZnJvbUNvbnRhaW5lck1ldGFkYXRhXCIpO1xuICAgICAgICBjb25zdCB7IGZyb21IdHRwIH0gPSBhd2FpdCBpbXBvcnQoJ0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItaHR0cCcpO1xuICAgICAgICByZXR1cm4gcHJvcGVydHlQcm92aWRlci5jaGFpbihmcm9tSHR0cChpbml0KSwgZnJvbUNvbnRhaW5lck1ldGFkYXRhKGluaXQpKTtcbiAgICB9XG4gICAgaWYgKHByb2Nlc3MuZW52W0VOVl9JTURTX0RJU0FCTEVEXSAmJiBwcm9jZXNzLmVudltFTlZfSU1EU19ESVNBQkxFRF0gIT09IFwiZmFsc2VcIikge1xuICAgICAgICByZXR1cm4gYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKFwiRUMyIEluc3RhbmNlIE1ldGFkYXRhIFNlcnZpY2UgYWNjZXNzIGRpc2FibGVkXCIsIHsgbG9nZ2VyOiBpbml0LmxvZ2dlciB9KTtcbiAgICAgICAgfTtcbiAgICB9XG4gICAgaW5pdC5sb2dnZXI/LmRlYnVnKFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlIC0gcmVtb3RlUHJvdmlkZXI6OmZyb21JbnN0YW5jZU1ldGFkYXRhXCIpO1xuICAgIHJldHVybiBmcm9tSW5zdGFuY2VNZXRhZGF0YShpbml0KTtcbn07XG5cbmZ1bmN0aW9uIG1lbW9pemVDaGFpbihwcm92aWRlcnMsIHRyZWF0QXNFeHBpcmVkKSB7XG4gICAgY29uc3QgY2hhaW4gPSBpbnRlcm5hbENyZWF0ZUNoYWluKHByb3ZpZGVycyk7XG4gICAgbGV0IGFjdGl2ZUxvY2s7XG4gICAgbGV0IHBhc3NpdmVMb2NrO1xuICAgIGxldCBjcmVkZW50aWFscztcbiAgICBjb25zdCBwcm92aWRlciA9IGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgICAgIGlmIChvcHRpb25zPy5mb3JjZVJlZnJlc2gpIHtcbiAgICAgICAgICAgIHJldHVybiBhd2FpdCBjaGFpbihvcHRpb25zKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY3JlZGVudGlhbHM/LmV4cGlyYXRpb24pIHtcbiAgICAgICAgICAgIGlmIChjcmVkZW50aWFscz8uZXhwaXJhdGlvbj8uZ2V0VGltZSgpIDwgRGF0ZS5ub3coKSkge1xuICAgICAgICAgICAgICAgIGNyZWRlbnRpYWxzID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChhY3RpdmVMb2NrKSB7XG4gICAgICAgICAgICBhd2FpdCBhY3RpdmVMb2NrO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKCFjcmVkZW50aWFscyB8fCB0cmVhdEFzRXhwaXJlZD8uKGNyZWRlbnRpYWxzKSkge1xuICAgICAgICAgICAgaWYgKGNyZWRlbnRpYWxzKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFwYXNzaXZlTG9jaykge1xuICAgICAgICAgICAgICAgICAgICBwYXNzaXZlTG9jayA9IGNoYWluKG9wdGlvbnMpXG4gICAgICAgICAgICAgICAgICAgICAgICAudGhlbigoYykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY3JlZGVudGlhbHMgPSBjO1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFzc2l2ZUxvY2sgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGFjdGl2ZUxvY2sgPSBjaGFpbihvcHRpb25zKVxuICAgICAgICAgICAgICAgICAgICAudGhlbigoYykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjcmVkZW50aWFscyA9IGM7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBhY3RpdmVMb2NrID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiBwcm92aWRlcihvcHRpb25zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY3JlZGVudGlhbHM7XG4gICAgfTtcbiAgICByZXR1cm4gcHJvdmlkZXI7XG59XG5jb25zdCBpbnRlcm5hbENyZWF0ZUNoYWluID0gKHByb3ZpZGVycykgPT4gYXN5bmMgKGF3c0lkZW50aXR5UHJvcGVydGllcykgPT4ge1xuICAgIGxldCBsYXN0UHJvdmlkZXJFcnJvcjtcbiAgICBmb3IgKGNvbnN0IHByb3ZpZGVyIG9mIHByb3ZpZGVycykge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHByb3ZpZGVyKGF3c0lkZW50aXR5UHJvcGVydGllcyk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgbGFzdFByb3ZpZGVyRXJyb3IgPSBlcnI7XG4gICAgICAgICAgICBpZiAoZXJyPy50cnlOZXh0TGluaykge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICB9XG4gICAgfVxuICAgIHRocm93IGxhc3RQcm92aWRlckVycm9yO1xufTtcblxubGV0IG11bHRpcGxlQ3JlZGVudGlhbFNvdXJjZVdhcm5pbmdFbWl0dGVkID0gZmFsc2U7XG5jb25zdCBkZWZhdWx0UHJvdmlkZXIgPSAoaW5pdCA9IHt9KSA9PiBtZW1vaXplQ2hhaW4oW1xuICAgIGFzeW5jICgpID0+IHtcbiAgICAgICAgY29uc3QgcHJvZmlsZSA9IGluaXQucHJvZmlsZSA/PyBwcm9jZXNzLmVudltzaGFyZWRJbmlGaWxlTG9hZGVyLkVOVl9QUk9GSUxFXTtcbiAgICAgICAgaWYgKHByb2ZpbGUpIHtcbiAgICAgICAgICAgIGNvbnN0IGVudlN0YXRpY0NyZWRlbnRpYWxzQXJlU2V0ID0gcHJvY2Vzcy5lbnZbY3JlZGVudGlhbFByb3ZpZGVyRW52LkVOVl9LRVldICYmIHByb2Nlc3MuZW52W2NyZWRlbnRpYWxQcm92aWRlckVudi5FTlZfU0VDUkVUXTtcbiAgICAgICAgICAgIGlmIChlbnZTdGF0aWNDcmVkZW50aWFsc0FyZVNldCkge1xuICAgICAgICAgICAgICAgIGlmICghbXVsdGlwbGVDcmVkZW50aWFsU291cmNlV2FybmluZ0VtaXR0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgd2FybkZuID0gaW5pdC5sb2dnZXI/Lndhcm4gJiYgaW5pdC5sb2dnZXI/LmNvbnN0cnVjdG9yPy5uYW1lICE9PSBcIk5vT3BMb2dnZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPyBpbml0LmxvZ2dlci53YXJuLmJpbmQoaW5pdC5sb2dnZXIpXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnNvbGUud2FybjtcbiAgICAgICAgICAgICAgICAgICAgd2FybkZuKGBAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLW5vZGUgLSBkZWZhdWx0UHJvdmlkZXI6OmZyb21FbnYgV0FSTklORzpcbiAgICBNdWx0aXBsZSBjcmVkZW50aWFsIHNvdXJjZXMgZGV0ZWN0ZWQ6IFxuICAgIEJvdGggQVdTX1BST0ZJTEUgYW5kIHRoZSBwYWlyIEFXU19BQ0NFU1NfS0VZX0lEL0FXU19TRUNSRVRfQUNDRVNTX0tFWSBzdGF0aWMgY3JlZGVudGlhbHMgYXJlIHNldC5cbiAgICBUaGlzIFNESyB3aWxsIHByb2NlZWQgd2l0aCB0aGUgQVdTX1BST0ZJTEUgdmFsdWUuXG4gICAgXG4gICAgSG93ZXZlciwgYSBmdXR1cmUgdmVyc2lvbiBtYXkgY2hhbmdlIHRoaXMgYmVoYXZpb3IgdG8gcHJlZmVyIHRoZSBFTlYgc3RhdGljIGNyZWRlbnRpYWxzLlxuICAgIFBsZWFzZSBlbnN1cmUgdGhhdCB5b3VyIGVudmlyb25tZW50IG9ubHkgc2V0cyBlaXRoZXIgdGhlIEFXU19QUk9GSUxFIG9yIHRoZVxuICAgIEFXU19BQ0NFU1NfS0VZX0lEL0FXU19TRUNSRVRfQUNDRVNTX0tFWSBwYWlyLlxuYCk7XG4gICAgICAgICAgICAgICAgICAgIG11bHRpcGxlQ3JlZGVudGlhbFNvdXJjZVdhcm5pbmdFbWl0dGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoXCJBV1NfUFJPRklMRSBpcyBzZXQsIHNraXBwaW5nIGZyb21FbnYgcHJvdmlkZXIuXCIsIHtcbiAgICAgICAgICAgICAgICBsb2dnZXI6IGluaXQubG9nZ2VyLFxuICAgICAgICAgICAgICAgIHRyeU5leHRMaW5rOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaW5pdC5sb2dnZXI/LmRlYnVnKFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlIC0gZGVmYXVsdFByb3ZpZGVyOjpmcm9tRW52XCIpO1xuICAgICAgICByZXR1cm4gY3JlZGVudGlhbFByb3ZpZGVyRW52LmZyb21FbnYoaW5pdCkoKTtcbiAgICB9LFxuICAgIGFzeW5jIChhd3NJZGVudGl0eVByb3BlcnRpZXMpID0+IHtcbiAgICAgICAgaW5pdC5sb2dnZXI/LmRlYnVnKFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlIC0gZGVmYXVsdFByb3ZpZGVyOjpmcm9tU1NPXCIpO1xuICAgICAgICBjb25zdCB7IHNzb1N0YXJ0VXJsLCBzc29BY2NvdW50SWQsIHNzb1JlZ2lvbiwgc3NvUm9sZU5hbWUsIHNzb1Nlc3Npb24gfSA9IGluaXQ7XG4gICAgICAgIGlmICghc3NvU3RhcnRVcmwgJiYgIXNzb0FjY291bnRJZCAmJiAhc3NvUmVnaW9uICYmICFzc29Sb2xlTmFtZSAmJiAhc3NvU2Vzc2lvbikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKFwiU2tpcHBpbmcgU1NPIHByb3ZpZGVyIGluIGRlZmF1bHQgY2hhaW4gKGlucHV0cyBkbyBub3QgaW5jbHVkZSBTU08gZmllbGRzKS5cIiwgeyBsb2dnZXI6IGluaXQubG9nZ2VyIH0pO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHsgZnJvbVNTTyB9ID0gYXdhaXQgaW1wb3J0KCdAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLXNzbycpO1xuICAgICAgICByZXR1cm4gZnJvbVNTTyhpbml0KShhd3NJZGVudGl0eVByb3BlcnRpZXMpO1xuICAgIH0sXG4gICAgYXN5bmMgKGF3c0lkZW50aXR5UHJvcGVydGllcykgPT4ge1xuICAgICAgICBpbml0LmxvZ2dlcj8uZGVidWcoXCJAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLW5vZGUgLSBkZWZhdWx0UHJvdmlkZXI6OmZyb21JbmlcIik7XG4gICAgICAgIGNvbnN0IHsgZnJvbUluaSB9ID0gYXdhaXQgaW1wb3J0KCdAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLWluaScpO1xuICAgICAgICByZXR1cm4gZnJvbUluaShpbml0KShhd3NJZGVudGl0eVByb3BlcnRpZXMpO1xuICAgIH0sXG4gICAgYXN5bmMgKGF3c0lkZW50aXR5UHJvcGVydGllcykgPT4ge1xuICAgICAgICBpbml0LmxvZ2dlcj8uZGVidWcoXCJAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLW5vZGUgLSBkZWZhdWx0UHJvdmlkZXI6OmZyb21Qcm9jZXNzXCIpO1xuICAgICAgICBjb25zdCB7IGZyb21Qcm9jZXNzIH0gPSBhd2FpdCBpbXBvcnQoJ0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItcHJvY2VzcycpO1xuICAgICAgICByZXR1cm4gZnJvbVByb2Nlc3MoaW5pdCkoYXdzSWRlbnRpdHlQcm9wZXJ0aWVzKTtcbiAgICB9LFxuICAgIGFzeW5jIChhd3NJZGVudGl0eVByb3BlcnRpZXMpID0+IHtcbiAgICAgICAgaW5pdC5sb2dnZXI/LmRlYnVnKFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlIC0gZGVmYXVsdFByb3ZpZGVyOjpmcm9tVG9rZW5GaWxlXCIpO1xuICAgICAgICBjb25zdCB7IGZyb21Ub2tlbkZpbGUgfSA9IGF3YWl0IGltcG9ydCgnQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci13ZWItaWRlbnRpdHknKTtcbiAgICAgICAgcmV0dXJuIGZyb21Ub2tlbkZpbGUoaW5pdCkoYXdzSWRlbnRpdHlQcm9wZXJ0aWVzKTtcbiAgICB9LFxuICAgIGFzeW5jICgpID0+IHtcbiAgICAgICAgaW5pdC5sb2dnZXI/LmRlYnVnKFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlIC0gZGVmYXVsdFByb3ZpZGVyOjpyZW1vdGVQcm92aWRlclwiKTtcbiAgICAgICAgcmV0dXJuIChhd2FpdCByZW1vdGVQcm92aWRlcihpbml0KSkoKTtcbiAgICB9LFxuICAgIGFzeW5jICgpID0+IHtcbiAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKFwiQ291bGQgbm90IGxvYWQgY3JlZGVudGlhbHMgZnJvbSBhbnkgcHJvdmlkZXJzXCIsIHtcbiAgICAgICAgICAgIHRyeU5leHRMaW5rOiBmYWxzZSxcbiAgICAgICAgICAgIGxvZ2dlcjogaW5pdC5sb2dnZXIsXG4gICAgICAgIH0pO1xuICAgIH0sXG5dLCBjcmVkZW50aWFsc1RyZWF0ZWRBc0V4cGlyZWQpO1xuY29uc3QgY3JlZGVudGlhbHNXaWxsTmVlZFJlZnJlc2ggPSAoY3JlZGVudGlhbHMpID0+IGNyZWRlbnRpYWxzPy5leHBpcmF0aW9uICE9PSB1bmRlZmluZWQ7XG5jb25zdCBjcmVkZW50aWFsc1RyZWF0ZWRBc0V4cGlyZWQgPSAoY3JlZGVudGlhbHMpID0+IGNyZWRlbnRpYWxzPy5leHBpcmF0aW9uICE9PSB1bmRlZmluZWQgJiYgY3JlZGVudGlhbHMuZXhwaXJhdGlvbi5nZXRUaW1lKCkgLSBEYXRlLm5vdygpIDwgMzAwMDAwO1xuXG5leHBvcnRzLmNyZWRlbnRpYWxzVHJlYXRlZEFzRXhwaXJlZCA9IGNyZWRlbnRpYWxzVHJlYXRlZEFzRXhwaXJlZDtcbmV4cG9ydHMuY3JlZGVudGlhbHNXaWxsTmVlZFJlZnJlc2ggPSBjcmVkZW50aWFsc1dpbGxOZWVkUmVmcmVzaDtcbmV4cG9ydHMuZGVmYXVsdFByb3ZpZGVyID0gZGVmYXVsdFByb3ZpZGVyO1xuIiwgImltcG9ydCB7IE5vcm1hbGl6ZWRTY2hlbWEsIFR5cGVSZWdpc3RyeSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2NoZW1hXCI7XG5pbXBvcnQgeyBkZWNvcmF0ZVNlcnZpY2VFeGNlcHRpb24gfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5leHBvcnQgY2xhc3MgUHJvdG9jb2xMaWIge1xuICAgIHF1ZXJ5Q29tcGF0O1xuICAgIGNvbnN0cnVjdG9yKHF1ZXJ5Q29tcGF0ID0gZmFsc2UpIHtcbiAgICAgICAgdGhpcy5xdWVyeUNvbXBhdCA9IHF1ZXJ5Q29tcGF0O1xuICAgIH1cbiAgICByZXNvbHZlUmVzdENvbnRlbnRUeXBlKGRlZmF1bHRDb250ZW50VHlwZSwgaW5wdXRTY2hlbWEpIHtcbiAgICAgICAgY29uc3QgbWVtYmVycyA9IGlucHV0U2NoZW1hLmdldE1lbWJlclNjaGVtYXMoKTtcbiAgICAgICAgY29uc3QgaHR0cFBheWxvYWRNZW1iZXIgPSBPYmplY3QudmFsdWVzKG1lbWJlcnMpLmZpbmQoKG0pID0+IHtcbiAgICAgICAgICAgIHJldHVybiAhIW0uZ2V0TWVyZ2VkVHJhaXRzKCkuaHR0cFBheWxvYWQ7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoaHR0cFBheWxvYWRNZW1iZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IG1lZGlhVHlwZSA9IGh0dHBQYXlsb2FkTWVtYmVyLmdldE1lcmdlZFRyYWl0cygpLm1lZGlhVHlwZTtcbiAgICAgICAgICAgIGlmIChtZWRpYVR5cGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbWVkaWFUeXBlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoaHR0cFBheWxvYWRNZW1iZXIuaXNTdHJpbmdTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBcInRleHQvcGxhaW5cIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGh0dHBQYXlsb2FkTWVtYmVyLmlzQmxvYlNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtXCI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZGVmYXVsdENvbnRlbnRUeXBlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKCFpbnB1dFNjaGVtYS5pc1VuaXRTY2hlbWEoKSkge1xuICAgICAgICAgICAgY29uc3QgaGFzQm9keSA9IE9iamVjdC52YWx1ZXMobWVtYmVycykuZmluZCgobSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgaHR0cFF1ZXJ5LCBodHRwUXVlcnlQYXJhbXMsIGh0dHBIZWFkZXIsIGh0dHBMYWJlbCwgaHR0cFByZWZpeEhlYWRlcnMgfSA9IG0uZ2V0TWVyZ2VkVHJhaXRzKCk7XG4gICAgICAgICAgICAgICAgY29uc3Qgbm9QcmVmaXhIZWFkZXJzID0gaHR0cFByZWZpeEhlYWRlcnMgPT09IHZvaWQgMDtcbiAgICAgICAgICAgICAgICByZXR1cm4gIWh0dHBRdWVyeSAmJiAhaHR0cFF1ZXJ5UGFyYW1zICYmICFodHRwSGVhZGVyICYmICFodHRwTGFiZWwgJiYgbm9QcmVmaXhIZWFkZXJzO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAoaGFzQm9keSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBkZWZhdWx0Q29udGVudFR5cGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgYXN5bmMgZ2V0RXJyb3JTY2hlbWFPclRocm93QmFzZUV4Y2VwdGlvbihlcnJvcklkZW50aWZpZXIsIGRlZmF1bHROYW1lc3BhY2UsIHJlc3BvbnNlLCBkYXRhT2JqZWN0LCBtZXRhZGF0YSwgZ2V0RXJyb3JTY2hlbWEpIHtcbiAgICAgICAgbGV0IG5hbWVzcGFjZSA9IGRlZmF1bHROYW1lc3BhY2U7XG4gICAgICAgIGxldCBlcnJvck5hbWUgPSBlcnJvcklkZW50aWZpZXI7XG4gICAgICAgIGlmIChlcnJvcklkZW50aWZpZXIuaW5jbHVkZXMoXCIjXCIpKSB7XG4gICAgICAgICAgICBbbmFtZXNwYWNlLCBlcnJvck5hbWVdID0gZXJyb3JJZGVudGlmaWVyLnNwbGl0KFwiI1wiKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBlcnJvck1ldGFkYXRhID0ge1xuICAgICAgICAgICAgJG1ldGFkYXRhOiBtZXRhZGF0YSxcbiAgICAgICAgICAgICRmYXVsdDogcmVzcG9uc2Uuc3RhdHVzQ29kZSA8IDUwMCA/IFwiY2xpZW50XCIgOiBcInNlcnZlclwiLFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCByZWdpc3RyeSA9IFR5cGVSZWdpc3RyeS5mb3IobmFtZXNwYWNlKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGVycm9yU2NoZW1hID0gZ2V0RXJyb3JTY2hlbWE/LihyZWdpc3RyeSwgZXJyb3JOYW1lKSA/PyByZWdpc3RyeS5nZXRTY2hlbWEoZXJyb3JJZGVudGlmaWVyKTtcbiAgICAgICAgICAgIHJldHVybiB7IGVycm9yU2NoZW1hLCBlcnJvck1ldGFkYXRhIH07XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIGRhdGFPYmplY3QubWVzc2FnZSA9IGRhdGFPYmplY3QubWVzc2FnZSA/PyBkYXRhT2JqZWN0Lk1lc3NhZ2UgPz8gXCJVbmtub3duRXJyb3JcIjtcbiAgICAgICAgICAgIGNvbnN0IHN5bnRoZXRpYyA9IFR5cGVSZWdpc3RyeS5mb3IoXCJzbWl0aHkudHMuc2RrLnN5bnRoZXRpYy5cIiArIG5hbWVzcGFjZSk7XG4gICAgICAgICAgICBjb25zdCBiYXNlRXhjZXB0aW9uU2NoZW1hID0gc3ludGhldGljLmdldEJhc2VFeGNlcHRpb24oKTtcbiAgICAgICAgICAgIGlmIChiYXNlRXhjZXB0aW9uU2NoZW1hKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgRXJyb3JDdG9yID0gc3ludGhldGljLmdldEVycm9yQ3RvcihiYXNlRXhjZXB0aW9uU2NoZW1hKSA/PyBFcnJvcjtcbiAgICAgICAgICAgICAgICB0aHJvdyB0aGlzLmRlY29yYXRlU2VydmljZUV4Y2VwdGlvbihPYmplY3QuYXNzaWduKG5ldyBFcnJvckN0b3IoeyBuYW1lOiBlcnJvck5hbWUgfSksIGVycm9yTWV0YWRhdGEpLCBkYXRhT2JqZWN0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRocm93IHRoaXMuZGVjb3JhdGVTZXJ2aWNlRXhjZXB0aW9uKE9iamVjdC5hc3NpZ24obmV3IEVycm9yKGVycm9yTmFtZSksIGVycm9yTWV0YWRhdGEpLCBkYXRhT2JqZWN0KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBkZWNvcmF0ZVNlcnZpY2VFeGNlcHRpb24oZXhjZXB0aW9uLCBhZGRpdGlvbnMgPSB7fSkge1xuICAgICAgICBpZiAodGhpcy5xdWVyeUNvbXBhdCkge1xuICAgICAgICAgICAgY29uc3QgbXNnID0gZXhjZXB0aW9uLk1lc3NhZ2UgPz8gYWRkaXRpb25zLk1lc3NhZ2U7XG4gICAgICAgICAgICBjb25zdCBlcnJvciA9IGRlY29yYXRlU2VydmljZUV4Y2VwdGlvbihleGNlcHRpb24sIGFkZGl0aW9ucyk7XG4gICAgICAgICAgICBpZiAobXNnKSB7XG4gICAgICAgICAgICAgICAgZXJyb3IubWVzc2FnZSA9IG1zZztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVycm9yLkVycm9yID0ge1xuICAgICAgICAgICAgICAgIC4uLmVycm9yLkVycm9yLFxuICAgICAgICAgICAgICAgIFR5cGU6IGVycm9yLkVycm9yPy5UeXBlLFxuICAgICAgICAgICAgICAgIENvZGU6IGVycm9yLkVycm9yPy5Db2RlLFxuICAgICAgICAgICAgICAgIE1lc3NhZ2U6IGVycm9yLkVycm9yPy5tZXNzYWdlID8/IGVycm9yLkVycm9yPy5NZXNzYWdlID8/IG1zZyxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBjb25zdCByZXFJZCA9IGVycm9yLiRtZXRhZGF0YS5yZXF1ZXN0SWQ7XG4gICAgICAgICAgICBpZiAocmVxSWQpIHtcbiAgICAgICAgICAgICAgICBlcnJvci5SZXF1ZXN0SWQgPSByZXFJZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBlcnJvcjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGVjb3JhdGVTZXJ2aWNlRXhjZXB0aW9uKGV4Y2VwdGlvbiwgYWRkaXRpb25zKTtcbiAgICB9XG4gICAgc2V0UXVlcnlDb21wYXRFcnJvcihvdXRwdXQsIHJlc3BvbnNlKSB7XG4gICAgICAgIGNvbnN0IHF1ZXJ5RXJyb3JIZWFkZXIgPSByZXNwb25zZS5oZWFkZXJzPy5bXCJ4LWFtem4tcXVlcnktZXJyb3JcIl07XG4gICAgICAgIGlmIChvdXRwdXQgIT09IHVuZGVmaW5lZCAmJiBxdWVyeUVycm9ySGVhZGVyICE9IG51bGwpIHtcbiAgICAgICAgICAgIGNvbnN0IFtDb2RlLCBUeXBlXSA9IHF1ZXJ5RXJyb3JIZWFkZXIuc3BsaXQoXCI7XCIpO1xuICAgICAgICAgICAgY29uc3QgZW50cmllcyA9IE9iamVjdC5lbnRyaWVzKG91dHB1dCk7XG4gICAgICAgICAgICBjb25zdCBFcnJvciA9IHtcbiAgICAgICAgICAgICAgICBDb2RlLFxuICAgICAgICAgICAgICAgIFR5cGUsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihvdXRwdXQsIEVycm9yKTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgW2ssIHZdIG9mIGVudHJpZXMpIHtcbiAgICAgICAgICAgICAgICBFcnJvcltrID09PSBcIm1lc3NhZ2VcIiA/IFwiTWVzc2FnZVwiIDoga10gPSB2O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVsZXRlIEVycm9yLl9fdHlwZTtcbiAgICAgICAgICAgIG91dHB1dC5FcnJvciA9IEVycm9yO1xuICAgICAgICB9XG4gICAgfVxuICAgIHF1ZXJ5Q29tcGF0T3V0cHV0KHF1ZXJ5Q29tcGF0RXJyb3JEYXRhLCBlcnJvckRhdGEpIHtcbiAgICAgICAgaWYgKHF1ZXJ5Q29tcGF0RXJyb3JEYXRhLkVycm9yKSB7XG4gICAgICAgICAgICBlcnJvckRhdGEuRXJyb3IgPSBxdWVyeUNvbXBhdEVycm9yRGF0YS5FcnJvcjtcbiAgICAgICAgfVxuICAgICAgICBpZiAocXVlcnlDb21wYXRFcnJvckRhdGEuVHlwZSkge1xuICAgICAgICAgICAgZXJyb3JEYXRhLlR5cGUgPSBxdWVyeUNvbXBhdEVycm9yRGF0YS5UeXBlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChxdWVyeUNvbXBhdEVycm9yRGF0YS5Db2RlKSB7XG4gICAgICAgICAgICBlcnJvckRhdGEuQ29kZSA9IHF1ZXJ5Q29tcGF0RXJyb3JEYXRhLkNvZGU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZmluZFF1ZXJ5Q29tcGF0aWJsZUVycm9yKHJlZ2lzdHJ5LCBlcnJvck5hbWUpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiByZWdpc3RyeS5nZXRTY2hlbWEoZXJyb3JOYW1lKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgcmV0dXJuIHJlZ2lzdHJ5LmZpbmQoKHNjaGVtYSkgPT4gTm9ybWFsaXplZFNjaGVtYS5vZihzY2hlbWEpLmdldE1lcmdlZFRyYWl0cygpLmF3c1F1ZXJ5RXJyb3I/LlswXSA9PT0gZXJyb3JOYW1lKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBsb2FkU21pdGh5UnBjVjJDYm9yRXJyb3JDb2RlLCBTbWl0aHlScGNWMkNib3JQcm90b2NvbCB9IGZyb20gXCJAc21pdGh5L2NvcmUvY2JvclwiO1xuaW1wb3J0IHsgTm9ybWFsaXplZFNjaGVtYSwgVHlwZVJlZ2lzdHJ5IH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IFByb3RvY29sTGliIH0gZnJvbSBcIi4uL1Byb3RvY29sTGliXCI7XG5leHBvcnQgY2xhc3MgQXdzU21pdGh5UnBjVjJDYm9yUHJvdG9jb2wgZXh0ZW5kcyBTbWl0aHlScGNWMkNib3JQcm90b2NvbCB7XG4gICAgYXdzUXVlcnlDb21wYXRpYmxlO1xuICAgIG1peGluO1xuICAgIGNvbnN0cnVjdG9yKHsgZGVmYXVsdE5hbWVzcGFjZSwgYXdzUXVlcnlDb21wYXRpYmxlLCB9KSB7XG4gICAgICAgIHN1cGVyKHsgZGVmYXVsdE5hbWVzcGFjZSB9KTtcbiAgICAgICAgdGhpcy5hd3NRdWVyeUNvbXBhdGlibGUgPSAhIWF3c1F1ZXJ5Q29tcGF0aWJsZTtcbiAgICAgICAgdGhpcy5taXhpbiA9IG5ldyBQcm90b2NvbExpYih0aGlzLmF3c1F1ZXJ5Q29tcGF0aWJsZSk7XG4gICAgfVxuICAgIGFzeW5jIHNlcmlhbGl6ZVJlcXVlc3Qob3BlcmF0aW9uU2NoZW1hLCBpbnB1dCwgY29udGV4dCkge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gYXdhaXQgc3VwZXIuc2VyaWFsaXplUmVxdWVzdChvcGVyYXRpb25TY2hlbWEsIGlucHV0LCBjb250ZXh0KTtcbiAgICAgICAgaWYgKHRoaXMuYXdzUXVlcnlDb21wYXRpYmxlKSB7XG4gICAgICAgICAgICByZXF1ZXN0LmhlYWRlcnNbXCJ4LWFtem4tcXVlcnktbW9kZVwiXSA9IFwidHJ1ZVwiO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXF1ZXN0O1xuICAgIH1cbiAgICBhc3luYyBoYW5kbGVFcnJvcihvcGVyYXRpb25TY2hlbWEsIGNvbnRleHQsIHJlc3BvbnNlLCBkYXRhT2JqZWN0LCBtZXRhZGF0YSkge1xuICAgICAgICBpZiAodGhpcy5hd3NRdWVyeUNvbXBhdGlibGUpIHtcbiAgICAgICAgICAgIHRoaXMubWl4aW4uc2V0UXVlcnlDb21wYXRFcnJvcihkYXRhT2JqZWN0LCByZXNwb25zZSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZXJyb3JOYW1lID0gKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvbXBhdEhlYWRlciA9IHJlc3BvbnNlLmhlYWRlcnNbXCJ4LWFtem4tcXVlcnktZXJyb3JcIl07XG4gICAgICAgICAgICBpZiAoY29tcGF0SGVhZGVyICYmIHRoaXMuYXdzUXVlcnlDb21wYXRpYmxlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvbXBhdEhlYWRlci5zcGxpdChcIjtcIilbMF07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbG9hZFNtaXRoeVJwY1YyQ2JvckVycm9yQ29kZShyZXNwb25zZSwgZGF0YU9iamVjdCkgPz8gXCJVbmtub3duXCI7XG4gICAgICAgIH0pKCk7XG4gICAgICAgIGNvbnN0IHsgZXJyb3JTY2hlbWEsIGVycm9yTWV0YWRhdGEgfSA9IGF3YWl0IHRoaXMubWl4aW4uZ2V0RXJyb3JTY2hlbWFPclRocm93QmFzZUV4Y2VwdGlvbihlcnJvck5hbWUsIHRoaXMub3B0aW9ucy5kZWZhdWx0TmFtZXNwYWNlLCByZXNwb25zZSwgZGF0YU9iamVjdCwgbWV0YWRhdGEsIHRoaXMuYXdzUXVlcnlDb21wYXRpYmxlID8gdGhpcy5taXhpbi5maW5kUXVlcnlDb21wYXRpYmxlRXJyb3IgOiB1bmRlZmluZWQpO1xuICAgICAgICBjb25zdCBucyA9IE5vcm1hbGl6ZWRTY2hlbWEub2YoZXJyb3JTY2hlbWEpO1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gZGF0YU9iamVjdC5tZXNzYWdlID8/IGRhdGFPYmplY3QuTWVzc2FnZSA/PyBcIlVua25vd25cIjtcbiAgICAgICAgY29uc3QgRXJyb3JDdG9yID0gVHlwZVJlZ2lzdHJ5LmZvcihlcnJvclNjaGVtYVsxXSkuZ2V0RXJyb3JDdG9yKGVycm9yU2NoZW1hKSA/PyBFcnJvcjtcbiAgICAgICAgY29uc3QgZXhjZXB0aW9uID0gbmV3IEVycm9yQ3RvcihtZXNzYWdlKTtcbiAgICAgICAgY29uc3Qgb3V0cHV0ID0ge307XG4gICAgICAgIGZvciAoY29uc3QgW25hbWUsIG1lbWJlcl0gb2YgbnMuc3RydWN0SXRlcmF0b3IoKSkge1xuICAgICAgICAgICAgaWYgKGRhdGFPYmplY3RbbmFtZV0gIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIG91dHB1dFtuYW1lXSA9IHRoaXMuZGVzZXJpYWxpemVyLnJlYWRWYWx1ZShtZW1iZXIsIGRhdGFPYmplY3RbbmFtZV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmF3c1F1ZXJ5Q29tcGF0aWJsZSkge1xuICAgICAgICAgICAgdGhpcy5taXhpbi5xdWVyeUNvbXBhdE91dHB1dChkYXRhT2JqZWN0LCBvdXRwdXQpO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IHRoaXMubWl4aW4uZGVjb3JhdGVTZXJ2aWNlRXhjZXB0aW9uKE9iamVjdC5hc3NpZ24oZXhjZXB0aW9uLCBlcnJvck1ldGFkYXRhLCB7XG4gICAgICAgICAgICAkZmF1bHQ6IG5zLmdldE1lcmdlZFRyYWl0cygpLmVycm9yLFxuICAgICAgICAgICAgbWVzc2FnZSxcbiAgICAgICAgfSwgb3V0cHV0KSwgZGF0YU9iamVjdCk7XG4gICAgfVxufVxuIiwgImV4cG9ydCBjb25zdCBfdG9TdHIgPSAodmFsKSA9PiB7XG4gICAgaWYgKHZhbCA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiB2YWw7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgdmFsID09PSBcIm51bWJlclwiIHx8IHR5cGVvZiB2YWwgPT09IFwiYmlnaW50XCIpIHtcbiAgICAgICAgY29uc3Qgd2FybmluZyA9IG5ldyBFcnJvcihgUmVjZWl2ZWQgbnVtYmVyICR7dmFsfSB3aGVyZSBhIHN0cmluZyB3YXMgZXhwZWN0ZWQuYCk7XG4gICAgICAgIHdhcm5pbmcubmFtZSA9IFwiV2FybmluZ1wiO1xuICAgICAgICBjb25zb2xlLndhcm4od2FybmluZyk7XG4gICAgICAgIHJldHVybiBTdHJpbmcodmFsKTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB2YWwgPT09IFwiYm9vbGVhblwiKSB7XG4gICAgICAgIGNvbnN0IHdhcm5pbmcgPSBuZXcgRXJyb3IoYFJlY2VpdmVkIGJvb2xlYW4gJHt2YWx9IHdoZXJlIGEgc3RyaW5nIHdhcyBleHBlY3RlZC5gKTtcbiAgICAgICAgd2FybmluZy5uYW1lID0gXCJXYXJuaW5nXCI7XG4gICAgICAgIGNvbnNvbGUud2Fybih3YXJuaW5nKTtcbiAgICAgICAgcmV0dXJuIFN0cmluZyh2YWwpO1xuICAgIH1cbiAgICByZXR1cm4gdmFsO1xufTtcbmV4cG9ydCBjb25zdCBfdG9Cb29sID0gKHZhbCkgPT4ge1xuICAgIGlmICh2YWwgPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gdmFsO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHZhbCA9PT0gXCJudW1iZXJcIikge1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHZhbCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICBjb25zdCBsb3dlcmNhc2UgPSB2YWwudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgaWYgKHZhbCAhPT0gXCJcIiAmJiBsb3dlcmNhc2UgIT09IFwiZmFsc2VcIiAmJiBsb3dlcmNhc2UgIT09IFwidHJ1ZVwiKSB7XG4gICAgICAgICAgICBjb25zdCB3YXJuaW5nID0gbmV3IEVycm9yKGBSZWNlaXZlZCBzdHJpbmcgXCIke3ZhbH1cIiB3aGVyZSBhIGJvb2xlYW4gd2FzIGV4cGVjdGVkLmApO1xuICAgICAgICAgICAgd2FybmluZy5uYW1lID0gXCJXYXJuaW5nXCI7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4od2FybmluZyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbCAhPT0gXCJcIiAmJiBsb3dlcmNhc2UgIT09IFwiZmFsc2VcIjtcbiAgICB9XG4gICAgcmV0dXJuIHZhbDtcbn07XG5leHBvcnQgY29uc3QgX3RvTnVtID0gKHZhbCkgPT4ge1xuICAgIGlmICh2YWwgPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gdmFsO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHZhbCA9PT0gXCJib29sZWFuXCIpIHtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB2YWwgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgY29uc3QgbnVtID0gTnVtYmVyKHZhbCk7XG4gICAgICAgIGlmIChudW0udG9TdHJpbmcoKSAhPT0gdmFsKSB7XG4gICAgICAgICAgICBjb25zdCB3YXJuaW5nID0gbmV3IEVycm9yKGBSZWNlaXZlZCBzdHJpbmcgXCIke3ZhbH1cIiB3aGVyZSBhIG51bWJlciB3YXMgZXhwZWN0ZWQuYCk7XG4gICAgICAgICAgICB3YXJuaW5nLm5hbWUgPSBcIldhcm5pbmdcIjtcbiAgICAgICAgICAgIGNvbnNvbGUud2Fybih3YXJuaW5nKTtcbiAgICAgICAgICAgIHJldHVybiB2YWw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbDtcbn07XG4iLCAiZXhwb3J0IGNsYXNzIFNlcmRlQ29udGV4dENvbmZpZyB7XG4gICAgc2VyZGVDb250ZXh0O1xuICAgIHNldFNlcmRlQ29udGV4dChzZXJkZUNvbnRleHQpIHtcbiAgICAgICAgdGhpcy5zZXJkZUNvbnRleHQgPSBzZXJkZUNvbnRleHQ7XG4gICAgfVxufVxuIiwgImV4cG9ydCBjbGFzcyBVbmlvblNlcmRlIHtcbiAgICBmcm9tO1xuICAgIHRvO1xuICAgIGtleXM7XG4gICAgY29uc3RydWN0b3IoZnJvbSwgdG8pIHtcbiAgICAgICAgdGhpcy5mcm9tID0gZnJvbTtcbiAgICAgICAgdGhpcy50byA9IHRvO1xuICAgICAgICB0aGlzLmtleXMgPSBuZXcgU2V0KE9iamVjdC5rZXlzKHRoaXMuZnJvbSkuZmlsdGVyKChrKSA9PiBrICE9PSBcIl9fdHlwZVwiKSk7XG4gICAgfVxuICAgIG1hcmsoa2V5KSB7XG4gICAgICAgIHRoaXMua2V5cy5kZWxldGUoa2V5KTtcbiAgICB9XG4gICAgaGFzVW5rbm93bigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMua2V5cy5zaXplID09PSAxICYmIE9iamVjdC5rZXlzKHRoaXMudG8pLmxlbmd0aCA9PT0gMDtcbiAgICB9XG4gICAgd3JpdGVVbmtub3duKCkge1xuICAgICAgICBpZiAodGhpcy5oYXNVbmtub3duKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IGsgPSB0aGlzLmtleXMudmFsdWVzKCkubmV4dCgpLnZhbHVlO1xuICAgICAgICAgICAgY29uc3QgdiA9IHRoaXMuZnJvbVtrXTtcbiAgICAgICAgICAgIHRoaXMudG8uJHVua25vd24gPSBbaywgdl07XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgTnVtZXJpY1ZhbHVlIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zZXJkZVwiO1xuZXhwb3J0IGZ1bmN0aW9uIGpzb25SZXZpdmVyKGtleSwgdmFsdWUsIGNvbnRleHQpIHtcbiAgICBpZiAoY29udGV4dD8uc291cmNlKSB7XG4gICAgICAgIGNvbnN0IG51bWVyaWNTdHJpbmcgPSBjb250ZXh0LnNvdXJjZTtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgaWYgKHZhbHVlID4gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIgfHwgdmFsdWUgPCBOdW1iZXIuTUlOX1NBRkVfSU5URUdFUiB8fCBudW1lcmljU3RyaW5nICE9PSBTdHJpbmcodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNGcmFjdGlvbmFsID0gbnVtZXJpY1N0cmluZy5pbmNsdWRlcyhcIi5cIik7XG4gICAgICAgICAgICAgICAgaWYgKGlzRnJhY3Rpb25hbCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IE51bWVyaWNWYWx1ZShudW1lcmljU3RyaW5nLCBcImJpZ0RlY2ltYWxcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gQmlnSW50KG51bWVyaWNTdHJpbmcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG59XG4iLCAiaW1wb3J0IHsgY29sbGVjdEJvZHkgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyB0b1V0ZjggfSBmcm9tIFwiQHNtaXRoeS91dGlsLXV0ZjhcIjtcbmV4cG9ydCBjb25zdCBjb2xsZWN0Qm9keVN0cmluZyA9IChzdHJlYW1Cb2R5LCBjb250ZXh0KSA9PiBjb2xsZWN0Qm9keShzdHJlYW1Cb2R5LCBjb250ZXh0KS50aGVuKChib2R5KSA9PiAoY29udGV4dD8udXRmOEVuY29kZXIgPz8gdG9VdGY4KShib2R5KSk7XG4iLCAiaW1wb3J0IHsgY29sbGVjdEJvZHlTdHJpbmcgfSBmcm9tIFwiLi4vY29tbW9uXCI7XG5leHBvcnQgY29uc3QgcGFyc2VKc29uQm9keSA9IChzdHJlYW1Cb2R5LCBjb250ZXh0KSA9PiBjb2xsZWN0Qm9keVN0cmluZyhzdHJlYW1Cb2R5LCBjb250ZXh0KS50aGVuKChlbmNvZGVkKSA9PiB7XG4gICAgaWYgKGVuY29kZWQubGVuZ3RoKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShlbmNvZGVkKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgaWYgKGU/Lm5hbWUgPT09IFwiU3ludGF4RXJyb3JcIikge1xuICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCBcIiRyZXNwb25zZUJvZHlUZXh0XCIsIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGVuY29kZWQsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7fTtcbn0pO1xuZXhwb3J0IGNvbnN0IHBhcnNlSnNvbkVycm9yQm9keSA9IGFzeW5jIChlcnJvckJvZHksIGNvbnRleHQpID0+IHtcbiAgICBjb25zdCB2YWx1ZSA9IGF3YWl0IHBhcnNlSnNvbkJvZHkoZXJyb3JCb2R5LCBjb250ZXh0KTtcbiAgICB2YWx1ZS5tZXNzYWdlID0gdmFsdWUubWVzc2FnZSA/PyB2YWx1ZS5NZXNzYWdlO1xuICAgIHJldHVybiB2YWx1ZTtcbn07XG5leHBvcnQgY29uc3QgbG9hZFJlc3RKc29uRXJyb3JDb2RlID0gKG91dHB1dCwgZGF0YSkgPT4ge1xuICAgIGNvbnN0IGZpbmRLZXkgPSAob2JqZWN0LCBrZXkpID0+IE9iamVjdC5rZXlzKG9iamVjdCkuZmluZCgoaykgPT4gay50b0xvd2VyQ2FzZSgpID09PSBrZXkudG9Mb3dlckNhc2UoKSk7XG4gICAgY29uc3Qgc2FuaXRpemVFcnJvckNvZGUgPSAocmF3VmFsdWUpID0+IHtcbiAgICAgICAgbGV0IGNsZWFuVmFsdWUgPSByYXdWYWx1ZTtcbiAgICAgICAgaWYgKHR5cGVvZiBjbGVhblZhbHVlID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICBjbGVhblZhbHVlID0gY2xlYW5WYWx1ZS50b1N0cmluZygpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjbGVhblZhbHVlLmluZGV4T2YoXCIsXCIpID49IDApIHtcbiAgICAgICAgICAgIGNsZWFuVmFsdWUgPSBjbGVhblZhbHVlLnNwbGl0KFwiLFwiKVswXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2xlYW5WYWx1ZS5pbmRleE9mKFwiOlwiKSA+PSAwKSB7XG4gICAgICAgICAgICBjbGVhblZhbHVlID0gY2xlYW5WYWx1ZS5zcGxpdChcIjpcIilbMF07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNsZWFuVmFsdWUuaW5kZXhPZihcIiNcIikgPj0gMCkge1xuICAgICAgICAgICAgY2xlYW5WYWx1ZSA9IGNsZWFuVmFsdWUuc3BsaXQoXCIjXCIpWzFdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjbGVhblZhbHVlO1xuICAgIH07XG4gICAgY29uc3QgaGVhZGVyS2V5ID0gZmluZEtleShvdXRwdXQuaGVhZGVycywgXCJ4LWFtem4tZXJyb3J0eXBlXCIpO1xuICAgIGlmIChoZWFkZXJLZXkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gc2FuaXRpemVFcnJvckNvZGUob3V0cHV0LmhlYWRlcnNbaGVhZGVyS2V5XSk7XG4gICAgfVxuICAgIGlmIChkYXRhICYmIHR5cGVvZiBkYXRhID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgIGNvbnN0IGNvZGVLZXkgPSBmaW5kS2V5KGRhdGEsIFwiY29kZVwiKTtcbiAgICAgICAgaWYgKGNvZGVLZXkgJiYgZGF0YVtjb2RlS2V5XSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gc2FuaXRpemVFcnJvckNvZGUoZGF0YVtjb2RlS2V5XSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGFbXCJfX3R5cGVcIl0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHNhbml0aXplRXJyb3JDb2RlKGRhdGFbXCJfX3R5cGVcIl0pO1xuICAgICAgICB9XG4gICAgfVxufTtcbiIsICJpbXBvcnQgeyBkZXRlcm1pbmVUaW1lc3RhbXBGb3JtYXQgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3Byb3RvY29sc1wiO1xuaW1wb3J0IHsgTm9ybWFsaXplZFNjaGVtYSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2NoZW1hXCI7XG5pbXBvcnQgeyBMYXp5SnNvblN0cmluZywgTnVtZXJpY1ZhbHVlLCBwYXJzZUVwb2NoVGltZXN0YW1wLCBwYXJzZVJmYzMzMzlEYXRlVGltZVdpdGhPZmZzZXQsIHBhcnNlUmZjNzIzMURhdGVUaW1lLCB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2VyZGVcIjtcbmltcG9ydCB7IGZyb21CYXNlNjQgfSBmcm9tIFwiQHNtaXRoeS91dGlsLWJhc2U2NFwiO1xuaW1wb3J0IHsgU2VyZGVDb250ZXh0Q29uZmlnIH0gZnJvbSBcIi4uL0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dFwiO1xuaW1wb3J0IHsgVW5pb25TZXJkZSB9IGZyb20gXCIuLi9VbmlvblNlcmRlXCI7XG5pbXBvcnQgeyBqc29uUmV2aXZlciB9IGZyb20gXCIuL2pzb25SZXZpdmVyXCI7XG5pbXBvcnQgeyBwYXJzZUpzb25Cb2R5IH0gZnJvbSBcIi4vcGFyc2VKc29uQm9keVwiO1xuZXhwb3J0IGNsYXNzIEpzb25TaGFwZURlc2VyaWFsaXplciBleHRlbmRzIFNlcmRlQ29udGV4dENvbmZpZyB7XG4gICAgc2V0dGluZ3M7XG4gICAgY29uc3RydWN0b3Ioc2V0dGluZ3MpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5zZXR0aW5ncyA9IHNldHRpbmdzO1xuICAgIH1cbiAgICBhc3luYyByZWFkKHNjaGVtYSwgZGF0YSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVhZChzY2hlbWEsIHR5cGVvZiBkYXRhID09PSBcInN0cmluZ1wiID8gSlNPTi5wYXJzZShkYXRhLCBqc29uUmV2aXZlcikgOiBhd2FpdCBwYXJzZUpzb25Cb2R5KGRhdGEsIHRoaXMuc2VyZGVDb250ZXh0KSk7XG4gICAgfVxuICAgIHJlYWRPYmplY3Qoc2NoZW1hLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZWFkKHNjaGVtYSwgZGF0YSk7XG4gICAgfVxuICAgIF9yZWFkKHNjaGVtYSwgdmFsdWUpIHtcbiAgICAgICAgY29uc3QgaXNPYmplY3QgPSB2YWx1ZSAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCI7XG4gICAgICAgIGNvbnN0IG5zID0gTm9ybWFsaXplZFNjaGVtYS5vZihzY2hlbWEpO1xuICAgICAgICBpZiAoaXNPYmplY3QpIHtcbiAgICAgICAgICAgIGlmIChucy5pc1N0cnVjdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVjb3JkID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgY29uc3QgdW5pb24gPSBucy5pc1VuaW9uU2NoZW1hKCk7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3V0ID0ge307XG4gICAgICAgICAgICAgICAgbGV0IG5hbWVNYXAgPSB2b2lkIDA7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBqc29uTmFtZSB9ID0gdGhpcy5zZXR0aW5ncztcbiAgICAgICAgICAgICAgICBpZiAoanNvbk5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZU1hcCA9IHt9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBsZXQgdW5pb25TZXJkZTtcbiAgICAgICAgICAgICAgICBpZiAodW5pb24pIHtcbiAgICAgICAgICAgICAgICAgICAgdW5pb25TZXJkZSA9IG5ldyBVbmlvblNlcmRlKHJlY29yZCwgb3V0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBbbWVtYmVyTmFtZSwgbWVtYmVyU2NoZW1hXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBmcm9tS2V5ID0gbWVtYmVyTmFtZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGpzb25OYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmcm9tS2V5ID0gbWVtYmVyU2NoZW1hLmdldE1lcmdlZFRyYWl0cygpLmpzb25OYW1lID8/IGZyb21LZXk7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lTWFwW2Zyb21LZXldID0gbWVtYmVyTmFtZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAodW5pb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHVuaW9uU2VyZGUubWFyayhmcm9tS2V5KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAocmVjb3JkW2Zyb21LZXldICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG91dFttZW1iZXJOYW1lXSA9IHRoaXMuX3JlYWQobWVtYmVyU2NoZW1hLCByZWNvcmRbZnJvbUtleV0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh1bmlvbikge1xuICAgICAgICAgICAgICAgICAgICB1bmlvblNlcmRlLndyaXRlVW5rbm93bigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmICh0eXBlb2YgcmVjb3JkLl9fdHlwZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IFtrLCB2XSBvZiBPYmplY3QuZW50cmllcyhyZWNvcmQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0ID0ganNvbk5hbWUgPyBuYW1lTWFwW2tdID8/IGsgOiBrO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEodCBpbiBvdXQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0W3RdID0gdjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gb3V0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpICYmIG5zLmlzTGlzdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbGlzdE1lbWJlciA9IG5zLmdldFZhbHVlU2NoZW1hKCk7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3V0ID0gW107XG4gICAgICAgICAgICAgICAgY29uc3Qgc3BhcnNlID0gISFucy5nZXRNZXJnZWRUcmFpdHMoKS5zcGFyc2U7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzcGFyc2UgfHwgaXRlbSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvdXQucHVzaCh0aGlzLl9yZWFkKGxpc3RNZW1iZXIsIGl0ZW0pKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gb3V0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG5zLmlzTWFwU2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBtYXBNZW1iZXIgPSBucy5nZXRWYWx1ZVNjaGVtYSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IG91dCA9IHt9O1xuICAgICAgICAgICAgICAgIGNvbnN0IHNwYXJzZSA9ICEhbnMuZ2V0TWVyZ2VkVHJhaXRzKCkuc3BhcnNlO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgW19rLCBfdl0gb2YgT2JqZWN0LmVudHJpZXModmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzcGFyc2UgfHwgX3YgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3V0W19rXSA9IHRoaXMuX3JlYWQobWFwTWVtYmVyLCBfdik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIG91dDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAobnMuaXNCbG9iU2NoZW1hKCkgJiYgdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICByZXR1cm4gZnJvbUJhc2U2NCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbWVkaWFUeXBlID0gbnMuZ2V0TWVyZ2VkVHJhaXRzKCkubWVkaWFUeXBlO1xuICAgICAgICBpZiAobnMuaXNTdHJpbmdTY2hlbWEoKSAmJiB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgJiYgbWVkaWFUeXBlKSB7XG4gICAgICAgICAgICBjb25zdCBpc0pzb24gPSBtZWRpYVR5cGUgPT09IFwiYXBwbGljYXRpb24vanNvblwiIHx8IG1lZGlhVHlwZS5lbmRzV2l0aChcIitqc29uXCIpO1xuICAgICAgICAgICAgaWYgKGlzSnNvbikge1xuICAgICAgICAgICAgICAgIHJldHVybiBMYXp5SnNvblN0cmluZy5mcm9tKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobnMuaXNUaW1lc3RhbXBTY2hlbWEoKSAmJiB2YWx1ZSAhPSBudWxsKSB7XG4gICAgICAgICAgICBjb25zdCBmb3JtYXQgPSBkZXRlcm1pbmVUaW1lc3RhbXBGb3JtYXQobnMsIHRoaXMuc2V0dGluZ3MpO1xuICAgICAgICAgICAgc3dpdGNoIChmb3JtYXQpIHtcbiAgICAgICAgICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZVJmYzMzMzlEYXRlVGltZVdpdGhPZmZzZXQodmFsdWUpO1xuICAgICAgICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlUmZjNzIzMURhdGVUaW1lKHZhbHVlKTtcbiAgICAgICAgICAgICAgICBjYXNlIDc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZUVwb2NoVGltZXN0YW1wKHZhbHVlKTtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oXCJNaXNzaW5nIHRpbWVzdGFtcCBmb3JtYXQsIHBhcnNpbmcgdmFsdWUgd2l0aCBEYXRlIGNvbnN0cnVjdG9yOlwiLCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZSh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzQmlnSW50ZWdlclNjaGVtYSgpICYmICh0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCIgfHwgdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiKSkge1xuICAgICAgICAgICAgcmV0dXJuIEJpZ0ludCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzQmlnRGVjaW1hbFNjaGVtYSgpICYmIHZhbHVlICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgTnVtZXJpY1ZhbHVlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgdW50eXBlZCA9IHZhbHVlO1xuICAgICAgICAgICAgaWYgKHVudHlwZWQudHlwZSA9PT0gXCJiaWdEZWNpbWFsXCIgJiYgXCJzdHJpbmdcIiBpbiB1bnR5cGVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBOdW1lcmljVmFsdWUodW50eXBlZC5zdHJpbmcsIHVudHlwZWQudHlwZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbmV3IE51bWVyaWNWYWx1ZShTdHJpbmcodmFsdWUpLCBcImJpZ0RlY2ltYWxcIik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzTnVtZXJpY1NjaGVtYSgpICYmIHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgc3dpdGNoICh2YWx1ZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgXCJJbmZpbml0eVwiOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gSW5maW5pdHk7XG4gICAgICAgICAgICAgICAgY2FzZSBcIi1JbmZpbml0eVwiOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gLUluZmluaXR5O1xuICAgICAgICAgICAgICAgIGNhc2UgXCJOYU5cIjpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5hTjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobnMuaXNEb2N1bWVudFNjaGVtYSgpKSB7XG4gICAgICAgICAgICBpZiAoaXNPYmplY3QpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBvdXQgPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IFtdIDoge307XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBbaywgdl0gb2YgT2JqZWN0LmVudHJpZXModmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2IGluc3RhbmNlb2YgTnVtZXJpY1ZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvdXRba10gPSB2O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3V0W2tdID0gdGhpcy5fcmVhZChucywgdik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIG91dDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBzdHJ1Y3R1cmVkQ2xvbmUodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgTnVtZXJpY1ZhbHVlIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zZXJkZVwiO1xuY29uc3QgTlVNRVJJQ19DT05UUk9MX0NIQVIgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKDkyNSk7XG5leHBvcnQgY2xhc3MgSnNvblJlcGxhY2VyIHtcbiAgICB2YWx1ZXMgPSBuZXcgTWFwKCk7XG4gICAgY291bnRlciA9IDA7XG4gICAgc3RhZ2UgPSAwO1xuICAgIGNyZWF0ZVJlcGxhY2VyKCkge1xuICAgICAgICBpZiAodGhpcy5zdGFnZSA9PT0gMSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSBKc29uUmVwbGFjZXIgYWxyZWFkeSBjcmVhdGVkLlwiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5zdGFnZSA9PT0gMikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSBKc29uUmVwbGFjZXIgZXhoYXVzdGVkLlwiKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnN0YWdlID0gMTtcbiAgICAgICAgcmV0dXJuIChrZXksIHZhbHVlKSA9PiB7XG4gICAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBOdW1lcmljVmFsdWUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB2ID0gYCR7TlVNRVJJQ19DT05UUk9MX0NIQVIgKyBcIm52XCIgKyB0aGlzLmNvdW50ZXIrK31fYCArIHZhbHVlLnN0cmluZztcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlcy5zZXQoYFwiJHt2fVwiYCwgdmFsdWUuc3RyaW5nKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwiYmlnaW50XCIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzID0gdmFsdWUudG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICBjb25zdCB2ID0gYCR7TlVNRVJJQ19DT05UUk9MX0NIQVIgKyBcImJcIiArIHRoaXMuY291bnRlcisrfV9gICsgcztcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlcy5zZXQoYFwiJHt2fVwiYCwgcyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHY7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH07XG4gICAgfVxuICAgIHJlcGxhY2VJbkpzb24oanNvbikge1xuICAgICAgICBpZiAodGhpcy5zdGFnZSA9PT0gMCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSBKc29uUmVwbGFjZXIgbm90IGNyZWF0ZWQgeWV0LlwiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5zdGFnZSA9PT0gMikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSBKc29uUmVwbGFjZXIgZXhoYXVzdGVkLlwiKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnN0YWdlID0gMjtcbiAgICAgICAgaWYgKHRoaXMuY291bnRlciA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIGpzb247XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgdGhpcy52YWx1ZXMpIHtcbiAgICAgICAgICAgIGpzb24gPSBqc29uLnJlcGxhY2Uoa2V5LCB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGpzb247XG4gICAgfVxufVxuIiwgImltcG9ydCB7IGRldGVybWluZVRpbWVzdGFtcEZvcm1hdCB9IGZyb20gXCJAc21pdGh5L2NvcmUvcHJvdG9jb2xzXCI7XG5pbXBvcnQgeyBOb3JtYWxpemVkU2NoZW1hIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IGRhdGVUb1V0Y1N0cmluZywgZ2VuZXJhdGVJZGVtcG90ZW5jeVRva2VuLCBMYXp5SnNvblN0cmluZywgTnVtZXJpY1ZhbHVlIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zZXJkZVwiO1xuaW1wb3J0IHsgdG9CYXNlNjQgfSBmcm9tIFwiQHNtaXRoeS91dGlsLWJhc2U2NFwiO1xuaW1wb3J0IHsgU2VyZGVDb250ZXh0Q29uZmlnIH0gZnJvbSBcIi4uL0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dFwiO1xuaW1wb3J0IHsgSnNvblJlcGxhY2VyIH0gZnJvbSBcIi4vanNvblJlcGxhY2VyXCI7XG5leHBvcnQgY2xhc3MgSnNvblNoYXBlU2VyaWFsaXplciBleHRlbmRzIFNlcmRlQ29udGV4dENvbmZpZyB7XG4gICAgc2V0dGluZ3M7XG4gICAgYnVmZmVyO1xuICAgIHVzZVJlcGxhY2VyID0gZmFsc2U7XG4gICAgcm9vdFNjaGVtYTtcbiAgICBjb25zdHJ1Y3RvcihzZXR0aW5ncykge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnNldHRpbmdzID0gc2V0dGluZ3M7XG4gICAgfVxuICAgIHdyaXRlKHNjaGVtYSwgdmFsdWUpIHtcbiAgICAgICAgdGhpcy5yb290U2NoZW1hID0gTm9ybWFsaXplZFNjaGVtYS5vZihzY2hlbWEpO1xuICAgICAgICB0aGlzLmJ1ZmZlciA9IHRoaXMuX3dyaXRlKHRoaXMucm9vdFNjaGVtYSwgdmFsdWUpO1xuICAgIH1cbiAgICB3cml0ZURpc2NyaW1pbmF0ZWREb2N1bWVudChzY2hlbWEsIHZhbHVlKSB7XG4gICAgICAgIHRoaXMud3JpdGUoc2NoZW1hLCB2YWx1ZSk7XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5idWZmZXIgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgIHRoaXMuYnVmZmVyLl9fdHlwZSA9IE5vcm1hbGl6ZWRTY2hlbWEub2Yoc2NoZW1hKS5nZXROYW1lKHRydWUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGZsdXNoKCkge1xuICAgICAgICBjb25zdCB7IHJvb3RTY2hlbWEsIHVzZVJlcGxhY2VyIH0gPSB0aGlzO1xuICAgICAgICB0aGlzLnJvb3RTY2hlbWEgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMudXNlUmVwbGFjZXIgPSBmYWxzZTtcbiAgICAgICAgaWYgKHJvb3RTY2hlbWE/LmlzU3RydWN0U2NoZW1hKCkgfHwgcm9vdFNjaGVtYT8uaXNEb2N1bWVudFNjaGVtYSgpKSB7XG4gICAgICAgICAgICBpZiAoIXVzZVJlcGxhY2VyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHRoaXMuYnVmZmVyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHJlcGxhY2VyID0gbmV3IEpzb25SZXBsYWNlcigpO1xuICAgICAgICAgICAgcmV0dXJuIHJlcGxhY2VyLnJlcGxhY2VJbkpzb24oSlNPTi5zdHJpbmdpZnkodGhpcy5idWZmZXIsIHJlcGxhY2VyLmNyZWF0ZVJlcGxhY2VyKCksIDApKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5idWZmZXI7XG4gICAgfVxuICAgIF93cml0ZShzY2hlbWEsIHZhbHVlLCBjb250YWluZXIpIHtcbiAgICAgICAgY29uc3QgaXNPYmplY3QgPSB2YWx1ZSAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCI7XG4gICAgICAgIGNvbnN0IG5zID0gTm9ybWFsaXplZFNjaGVtYS5vZihzY2hlbWEpO1xuICAgICAgICBpZiAoaXNPYmplY3QpIHtcbiAgICAgICAgICAgIGlmIChucy5pc1N0cnVjdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVjb3JkID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3V0ID0ge307XG4gICAgICAgICAgICAgICAgY29uc3QgeyBqc29uTmFtZSB9ID0gdGhpcy5zZXR0aW5ncztcbiAgICAgICAgICAgICAgICBsZXQgbmFtZU1hcCA9IHZvaWQgMDtcbiAgICAgICAgICAgICAgICBpZiAoanNvbk5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZU1hcCA9IHt9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IFttZW1iZXJOYW1lLCBtZW1iZXJTY2hlbWFdIG9mIG5zLnN0cnVjdEl0ZXJhdG9yKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VyaWFsaXphYmxlVmFsdWUgPSB0aGlzLl93cml0ZShtZW1iZXJTY2hlbWEsIHJlY29yZFttZW1iZXJOYW1lXSwgbnMpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoc2VyaWFsaXphYmxlVmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRhcmdldEtleSA9IG1lbWJlck5hbWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoanNvbk5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRLZXkgPSBtZW1iZXJTY2hlbWEuZ2V0TWVyZ2VkVHJhaXRzKCkuanNvbk5hbWUgPz8gbWVtYmVyTmFtZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lTWFwW21lbWJlck5hbWVdID0gdGFyZ2V0S2V5O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgb3V0W3RhcmdldEtleV0gPSBzZXJpYWxpemFibGVWYWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAobnMuaXNVbmlvblNjaGVtYSgpICYmIE9iamVjdC5rZXlzKG91dCkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgJHVua25vd24gfSA9IHJlY29yZDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoJHVua25vd24pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBbaywgdl0gPSAkdW5rbm93bjtcbiAgICAgICAgICAgICAgICAgICAgICAgIG91dFtrXSA9IHRoaXMuX3dyaXRlKDE1LCB2KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmICh0eXBlb2YgcmVjb3JkLl9fdHlwZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IFtrLCB2XSBvZiBPYmplY3QuZW50cmllcyhyZWNvcmQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXRLZXkgPSBqc29uTmFtZSA/IG5hbWVNYXBba10gPz8gayA6IGs7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoISh0YXJnZXRLZXkgaW4gb3V0KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dFt0YXJnZXRLZXldID0gdGhpcy5fd3JpdGUoMTUsIHYpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBvdXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgbnMuaXNMaXN0U2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBsaXN0TWVtYmVyID0gbnMuZ2V0VmFsdWVTY2hlbWEoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBvdXQgPSBbXTtcbiAgICAgICAgICAgICAgICBjb25zdCBzcGFyc2UgPSAhIW5zLmdldE1lcmdlZFRyYWl0cygpLnNwYXJzZTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNwYXJzZSB8fCBpdGVtICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG91dC5wdXNoKHRoaXMuX3dyaXRlKGxpc3RNZW1iZXIsIGl0ZW0pKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gb3V0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG5zLmlzTWFwU2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBtYXBNZW1iZXIgPSBucy5nZXRWYWx1ZVNjaGVtYSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IG91dCA9IHt9O1xuICAgICAgICAgICAgICAgIGNvbnN0IHNwYXJzZSA9ICEhbnMuZ2V0TWVyZ2VkVHJhaXRzKCkuc3BhcnNlO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgW19rLCBfdl0gb2YgT2JqZWN0LmVudHJpZXModmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzcGFyc2UgfHwgX3YgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3V0W19rXSA9IHRoaXMuX3dyaXRlKG1hcE1lbWJlciwgX3YpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBvdXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBVaW50OEFycmF5ICYmIChucy5pc0Jsb2JTY2hlbWEoKSB8fCBucy5pc0RvY3VtZW50U2NoZW1hKCkpKSB7XG4gICAgICAgICAgICAgICAgaWYgKG5zID09PSB0aGlzLnJvb3RTY2hlbWEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gKHRoaXMuc2VyZGVDb250ZXh0Py5iYXNlNjRFbmNvZGVyID8/IHRvQmFzZTY0KSh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlICYmIChucy5pc1RpbWVzdGFtcFNjaGVtYSgpIHx8IG5zLmlzRG9jdW1lbnRTY2hlbWEoKSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmb3JtYXQgPSBkZXRlcm1pbmVUaW1lc3RhbXBGb3JtYXQobnMsIHRoaXMuc2V0dGluZ3MpO1xuICAgICAgICAgICAgICAgIHN3aXRjaCAoZm9ybWF0KSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZS50b0lTT1N0cmluZygpLnJlcGxhY2UoXCIuMDAwWlwiLCBcIlpcIik7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBkYXRlVG9VdGNTdHJpbmcodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDc6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUuZ2V0VGltZSgpIC8gMTAwMDtcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihcIk1pc3NpbmcgdGltZXN0YW1wIGZvcm1hdCwgdXNpbmcgZXBvY2ggc2Vjb25kc1wiLCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUuZ2V0VGltZSgpIC8gMTAwMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBOdW1lcmljVmFsdWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVzZVJlcGxhY2VyID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodmFsdWUgPT09IG51bGwgJiYgY29udGFpbmVyPy5pc1N0cnVjdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICByZXR1cm4gdm9pZCAwO1xuICAgICAgICB9XG4gICAgICAgIGlmIChucy5pc1N0cmluZ1NjaGVtYSgpKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcInVuZGVmaW5lZFwiICYmIG5zLmlzSWRlbXBvdGVuY3lUb2tlbigpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGdlbmVyYXRlSWRlbXBvdGVuY3lUb2tlbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgbWVkaWFUeXBlID0gbnMuZ2V0TWVyZ2VkVHJhaXRzKCkubWVkaWFUeXBlO1xuICAgICAgICAgICAgaWYgKHZhbHVlICE9IG51bGwgJiYgbWVkaWFUeXBlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNKc29uID0gbWVkaWFUeXBlID09PSBcImFwcGxpY2F0aW9uL2pzb25cIiB8fCBtZWRpYVR5cGUuZW5kc1dpdGgoXCIranNvblwiKTtcbiAgICAgICAgICAgICAgICBpZiAoaXNKc29uKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBMYXp5SnNvblN0cmluZy5mcm9tKHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJudW1iZXJcIiAmJiBucy5pc051bWVyaWNTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKE1hdGguYWJzKHZhbHVlKSA9PT0gSW5maW5pdHkgfHwgaXNOYU4odmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiAmJiBucy5pc0Jsb2JTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKG5zID09PSB0aGlzLnJvb3RTY2hlbWEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gKHRoaXMuc2VyZGVDb250ZXh0Py5iYXNlNjRFbmNvZGVyID8/IHRvQmFzZTY0KSh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJiaWdpbnRcIikge1xuICAgICAgICAgICAgdGhpcy51c2VSZXBsYWNlciA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzRG9jdW1lbnRTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKGlzT2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3V0ID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyBbXSA6IHt9O1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodiBpbnN0YW5jZW9mIE51bWVyaWNWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51c2VSZXBsYWNlciA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBvdXRba10gPSB2O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3V0W2tdID0gdGhpcy5fd3JpdGUobnMsIHYpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBvdXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3RydWN0dXJlZENsb25lKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IFNlcmRlQ29udGV4dENvbmZpZyB9IGZyb20gXCIuLi9Db25maWd1cmFibGVTZXJkZUNvbnRleHRcIjtcbmltcG9ydCB7IEpzb25TaGFwZURlc2VyaWFsaXplciB9IGZyb20gXCIuL0pzb25TaGFwZURlc2VyaWFsaXplclwiO1xuaW1wb3J0IHsgSnNvblNoYXBlU2VyaWFsaXplciB9IGZyb20gXCIuL0pzb25TaGFwZVNlcmlhbGl6ZXJcIjtcbmV4cG9ydCBjbGFzcyBKc29uQ29kZWMgZXh0ZW5kcyBTZXJkZUNvbnRleHRDb25maWcge1xuICAgIHNldHRpbmdzO1xuICAgIGNvbnN0cnVjdG9yKHNldHRpbmdzKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuc2V0dGluZ3MgPSBzZXR0aW5ncztcbiAgICB9XG4gICAgY3JlYXRlU2VyaWFsaXplcigpIHtcbiAgICAgICAgY29uc3Qgc2VyaWFsaXplciA9IG5ldyBKc29uU2hhcGVTZXJpYWxpemVyKHRoaXMuc2V0dGluZ3MpO1xuICAgICAgICBzZXJpYWxpemVyLnNldFNlcmRlQ29udGV4dCh0aGlzLnNlcmRlQ29udGV4dCk7XG4gICAgICAgIHJldHVybiBzZXJpYWxpemVyO1xuICAgIH1cbiAgICBjcmVhdGVEZXNlcmlhbGl6ZXIoKSB7XG4gICAgICAgIGNvbnN0IGRlc2VyaWFsaXplciA9IG5ldyBKc29uU2hhcGVEZXNlcmlhbGl6ZXIodGhpcy5zZXR0aW5ncyk7XG4gICAgICAgIGRlc2VyaWFsaXplci5zZXRTZXJkZUNvbnRleHQodGhpcy5zZXJkZUNvbnRleHQpO1xuICAgICAgICByZXR1cm4gZGVzZXJpYWxpemVyO1xuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBScGNQcm90b2NvbCB9IGZyb20gXCJAc21pdGh5L2NvcmUvcHJvdG9jb2xzXCI7XG5pbXBvcnQgeyBkZXJlZiwgTm9ybWFsaXplZFNjaGVtYSwgVHlwZVJlZ2lzdHJ5IH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IFByb3RvY29sTGliIH0gZnJvbSBcIi4uL1Byb3RvY29sTGliXCI7XG5pbXBvcnQgeyBKc29uQ29kZWMgfSBmcm9tIFwiLi9Kc29uQ29kZWNcIjtcbmltcG9ydCB7IGxvYWRSZXN0SnNvbkVycm9yQ29kZSB9IGZyb20gXCIuL3BhcnNlSnNvbkJvZHlcIjtcbmV4cG9ydCBjbGFzcyBBd3NKc29uUnBjUHJvdG9jb2wgZXh0ZW5kcyBScGNQcm90b2NvbCB7XG4gICAgc2VyaWFsaXplcjtcbiAgICBkZXNlcmlhbGl6ZXI7XG4gICAgc2VydmljZVRhcmdldDtcbiAgICBjb2RlYztcbiAgICBtaXhpbjtcbiAgICBhd3NRdWVyeUNvbXBhdGlibGU7XG4gICAgY29uc3RydWN0b3IoeyBkZWZhdWx0TmFtZXNwYWNlLCBzZXJ2aWNlVGFyZ2V0LCBhd3NRdWVyeUNvbXBhdGlibGUsIGpzb25Db2RlYywgfSkge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBkZWZhdWx0TmFtZXNwYWNlLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zZXJ2aWNlVGFyZ2V0ID0gc2VydmljZVRhcmdldDtcbiAgICAgICAgdGhpcy5jb2RlYyA9XG4gICAgICAgICAgICBqc29uQ29kZWMgPz9cbiAgICAgICAgICAgICAgICBuZXcgSnNvbkNvZGVjKHtcbiAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wRm9ybWF0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB1c2VUcmFpdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IDcsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGpzb25OYW1lOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zZXJpYWxpemVyID0gdGhpcy5jb2RlYy5jcmVhdGVTZXJpYWxpemVyKCk7XG4gICAgICAgIHRoaXMuZGVzZXJpYWxpemVyID0gdGhpcy5jb2RlYy5jcmVhdGVEZXNlcmlhbGl6ZXIoKTtcbiAgICAgICAgdGhpcy5hd3NRdWVyeUNvbXBhdGlibGUgPSAhIWF3c1F1ZXJ5Q29tcGF0aWJsZTtcbiAgICAgICAgdGhpcy5taXhpbiA9IG5ldyBQcm90b2NvbExpYih0aGlzLmF3c1F1ZXJ5Q29tcGF0aWJsZSk7XG4gICAgfVxuICAgIGFzeW5jIHNlcmlhbGl6ZVJlcXVlc3Qob3BlcmF0aW9uU2NoZW1hLCBpbnB1dCwgY29udGV4dCkge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gYXdhaXQgc3VwZXIuc2VyaWFsaXplUmVxdWVzdChvcGVyYXRpb25TY2hlbWEsIGlucHV0LCBjb250ZXh0KTtcbiAgICAgICAgaWYgKCFyZXF1ZXN0LnBhdGguZW5kc1dpdGgoXCIvXCIpKSB7XG4gICAgICAgICAgICByZXF1ZXN0LnBhdGggKz0gXCIvXCI7XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbihyZXF1ZXN0LmhlYWRlcnMsIHtcbiAgICAgICAgICAgIFwiY29udGVudC10eXBlXCI6IGBhcHBsaWNhdGlvbi94LWFtei1qc29uLSR7dGhpcy5nZXRKc29uUnBjVmVyc2lvbigpfWAsXG4gICAgICAgICAgICBcIngtYW16LXRhcmdldFwiOiBgJHt0aGlzLnNlcnZpY2VUYXJnZXR9LiR7b3BlcmF0aW9uU2NoZW1hLm5hbWV9YCxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmICh0aGlzLmF3c1F1ZXJ5Q29tcGF0aWJsZSkge1xuICAgICAgICAgICAgcmVxdWVzdC5oZWFkZXJzW1wieC1hbXpuLXF1ZXJ5LW1vZGVcIl0gPSBcInRydWVcIjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGVyZWYob3BlcmF0aW9uU2NoZW1hLmlucHV0KSA9PT0gXCJ1bml0XCIgfHwgIXJlcXVlc3QuYm9keSkge1xuICAgICAgICAgICAgcmVxdWVzdC5ib2R5ID0gXCJ7fVwiO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXF1ZXN0O1xuICAgIH1cbiAgICBnZXRQYXlsb2FkQ29kZWMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvZGVjO1xuICAgIH1cbiAgICBhc3luYyBoYW5kbGVFcnJvcihvcGVyYXRpb25TY2hlbWEsIGNvbnRleHQsIHJlc3BvbnNlLCBkYXRhT2JqZWN0LCBtZXRhZGF0YSkge1xuICAgICAgICBpZiAodGhpcy5hd3NRdWVyeUNvbXBhdGlibGUpIHtcbiAgICAgICAgICAgIHRoaXMubWl4aW4uc2V0UXVlcnlDb21wYXRFcnJvcihkYXRhT2JqZWN0LCByZXNwb25zZSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZXJyb3JJZGVudGlmaWVyID0gbG9hZFJlc3RKc29uRXJyb3JDb2RlKHJlc3BvbnNlLCBkYXRhT2JqZWN0KSA/PyBcIlVua25vd25cIjtcbiAgICAgICAgY29uc3QgeyBlcnJvclNjaGVtYSwgZXJyb3JNZXRhZGF0YSB9ID0gYXdhaXQgdGhpcy5taXhpbi5nZXRFcnJvclNjaGVtYU9yVGhyb3dCYXNlRXhjZXB0aW9uKGVycm9ySWRlbnRpZmllciwgdGhpcy5vcHRpb25zLmRlZmF1bHROYW1lc3BhY2UsIHJlc3BvbnNlLCBkYXRhT2JqZWN0LCBtZXRhZGF0YSwgdGhpcy5hd3NRdWVyeUNvbXBhdGlibGUgPyB0aGlzLm1peGluLmZpbmRRdWVyeUNvbXBhdGlibGVFcnJvciA6IHVuZGVmaW5lZCk7XG4gICAgICAgIGNvbnN0IG5zID0gTm9ybWFsaXplZFNjaGVtYS5vZihlcnJvclNjaGVtYSk7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBkYXRhT2JqZWN0Lm1lc3NhZ2UgPz8gZGF0YU9iamVjdC5NZXNzYWdlID8/IFwiVW5rbm93blwiO1xuICAgICAgICBjb25zdCBFcnJvckN0b3IgPSBUeXBlUmVnaXN0cnkuZm9yKGVycm9yU2NoZW1hWzFdKS5nZXRFcnJvckN0b3IoZXJyb3JTY2hlbWEpID8/IEVycm9yO1xuICAgICAgICBjb25zdCBleGNlcHRpb24gPSBuZXcgRXJyb3JDdG9yKG1lc3NhZ2UpO1xuICAgICAgICBjb25zdCBvdXRwdXQgPSB7fTtcbiAgICAgICAgZm9yIChjb25zdCBbbmFtZSwgbWVtYmVyXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICBpZiAoZGF0YU9iamVjdFtuYW1lXSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgb3V0cHV0W25hbWVdID0gdGhpcy5jb2RlYy5jcmVhdGVEZXNlcmlhbGl6ZXIoKS5yZWFkT2JqZWN0KG1lbWJlciwgZGF0YU9iamVjdFtuYW1lXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuYXdzUXVlcnlDb21wYXRpYmxlKSB7XG4gICAgICAgICAgICB0aGlzLm1peGluLnF1ZXJ5Q29tcGF0T3V0cHV0KGRhdGFPYmplY3QsIG91dHB1dCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgdGhpcy5taXhpbi5kZWNvcmF0ZVNlcnZpY2VFeGNlcHRpb24oT2JqZWN0LmFzc2lnbihleGNlcHRpb24sIGVycm9yTWV0YWRhdGEsIHtcbiAgICAgICAgICAgICRmYXVsdDogbnMuZ2V0TWVyZ2VkVHJhaXRzKCkuZXJyb3IsXG4gICAgICAgICAgICBtZXNzYWdlLFxuICAgICAgICB9LCBvdXRwdXQpLCBkYXRhT2JqZWN0KTtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgQXdzSnNvblJwY1Byb3RvY29sIH0gZnJvbSBcIi4vQXdzSnNvblJwY1Byb3RvY29sXCI7XG5leHBvcnQgY2xhc3MgQXdzSnNvbjFfMFByb3RvY29sIGV4dGVuZHMgQXdzSnNvblJwY1Byb3RvY29sIHtcbiAgICBjb25zdHJ1Y3Rvcih7IGRlZmF1bHROYW1lc3BhY2UsIHNlcnZpY2VUYXJnZXQsIGF3c1F1ZXJ5Q29tcGF0aWJsZSwganNvbkNvZGVjLCB9KSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIGRlZmF1bHROYW1lc3BhY2UsXG4gICAgICAgICAgICBzZXJ2aWNlVGFyZ2V0LFxuICAgICAgICAgICAgYXdzUXVlcnlDb21wYXRpYmxlLFxuICAgICAgICAgICAganNvbkNvZGVjLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgZ2V0U2hhcGVJZCgpIHtcbiAgICAgICAgcmV0dXJuIFwiYXdzLnByb3RvY29scyNhd3NKc29uMV8wXCI7XG4gICAgfVxuICAgIGdldEpzb25ScGNWZXJzaW9uKCkge1xuICAgICAgICByZXR1cm4gXCIxLjBcIjtcbiAgICB9XG4gICAgZ2V0RGVmYXVsdENvbnRlbnRUeXBlKCkge1xuICAgICAgICByZXR1cm4gXCJhcHBsaWNhdGlvbi94LWFtei1qc29uLTEuMFwiO1xuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBBd3NKc29uUnBjUHJvdG9jb2wgfSBmcm9tIFwiLi9Bd3NKc29uUnBjUHJvdG9jb2xcIjtcbmV4cG9ydCBjbGFzcyBBd3NKc29uMV8xUHJvdG9jb2wgZXh0ZW5kcyBBd3NKc29uUnBjUHJvdG9jb2wge1xuICAgIGNvbnN0cnVjdG9yKHsgZGVmYXVsdE5hbWVzcGFjZSwgc2VydmljZVRhcmdldCwgYXdzUXVlcnlDb21wYXRpYmxlLCBqc29uQ29kZWMsIH0pIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgZGVmYXVsdE5hbWVzcGFjZSxcbiAgICAgICAgICAgIHNlcnZpY2VUYXJnZXQsXG4gICAgICAgICAgICBhd3NRdWVyeUNvbXBhdGlibGUsXG4gICAgICAgICAgICBqc29uQ29kZWMsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBnZXRTaGFwZUlkKCkge1xuICAgICAgICByZXR1cm4gXCJhd3MucHJvdG9jb2xzI2F3c0pzb24xXzFcIjtcbiAgICB9XG4gICAgZ2V0SnNvblJwY1ZlcnNpb24oKSB7XG4gICAgICAgIHJldHVybiBcIjEuMVwiO1xuICAgIH1cbiAgICBnZXREZWZhdWx0Q29udGVudFR5cGUoKSB7XG4gICAgICAgIHJldHVybiBcImFwcGxpY2F0aW9uL3gtYW16LWpzb24tMS4xXCI7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IEh0dHBCaW5kaW5nUHJvdG9jb2wsIEh0dHBJbnRlcmNlcHRpbmdTaGFwZURlc2VyaWFsaXplciwgSHR0cEludGVyY2VwdGluZ1NoYXBlU2VyaWFsaXplciwgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3Byb3RvY29sc1wiO1xuaW1wb3J0IHsgTm9ybWFsaXplZFNjaGVtYSwgVHlwZVJlZ2lzdHJ5IH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IFByb3RvY29sTGliIH0gZnJvbSBcIi4uL1Byb3RvY29sTGliXCI7XG5pbXBvcnQgeyBKc29uQ29kZWMgfSBmcm9tIFwiLi9Kc29uQ29kZWNcIjtcbmltcG9ydCB7IGxvYWRSZXN0SnNvbkVycm9yQ29kZSB9IGZyb20gXCIuL3BhcnNlSnNvbkJvZHlcIjtcbmV4cG9ydCBjbGFzcyBBd3NSZXN0SnNvblByb3RvY29sIGV4dGVuZHMgSHR0cEJpbmRpbmdQcm90b2NvbCB7XG4gICAgc2VyaWFsaXplcjtcbiAgICBkZXNlcmlhbGl6ZXI7XG4gICAgY29kZWM7XG4gICAgbWl4aW4gPSBuZXcgUHJvdG9jb2xMaWIoKTtcbiAgICBjb25zdHJ1Y3Rvcih7IGRlZmF1bHROYW1lc3BhY2UgfSkge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBkZWZhdWx0TmFtZXNwYWNlLFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3Qgc2V0dGluZ3MgPSB7XG4gICAgICAgICAgICB0aW1lc3RhbXBGb3JtYXQ6IHtcbiAgICAgICAgICAgICAgICB1c2VUcmFpdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiA3LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGh0dHBCaW5kaW5nczogdHJ1ZSxcbiAgICAgICAgICAgIGpzb25OYW1lOiB0cnVlLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmNvZGVjID0gbmV3IEpzb25Db2RlYyhzZXR0aW5ncyk7XG4gICAgICAgIHRoaXMuc2VyaWFsaXplciA9IG5ldyBIdHRwSW50ZXJjZXB0aW5nU2hhcGVTZXJpYWxpemVyKHRoaXMuY29kZWMuY3JlYXRlU2VyaWFsaXplcigpLCBzZXR0aW5ncyk7XG4gICAgICAgIHRoaXMuZGVzZXJpYWxpemVyID0gbmV3IEh0dHBJbnRlcmNlcHRpbmdTaGFwZURlc2VyaWFsaXplcih0aGlzLmNvZGVjLmNyZWF0ZURlc2VyaWFsaXplcigpLCBzZXR0aW5ncyk7XG4gICAgfVxuICAgIGdldFNoYXBlSWQoKSB7XG4gICAgICAgIHJldHVybiBcImF3cy5wcm90b2NvbHMjcmVzdEpzb24xXCI7XG4gICAgfVxuICAgIGdldFBheWxvYWRDb2RlYygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29kZWM7XG4gICAgfVxuICAgIHNldFNlcmRlQ29udGV4dChzZXJkZUNvbnRleHQpIHtcbiAgICAgICAgdGhpcy5jb2RlYy5zZXRTZXJkZUNvbnRleHQoc2VyZGVDb250ZXh0KTtcbiAgICAgICAgc3VwZXIuc2V0U2VyZGVDb250ZXh0KHNlcmRlQ29udGV4dCk7XG4gICAgfVxuICAgIGFzeW5jIHNlcmlhbGl6ZVJlcXVlc3Qob3BlcmF0aW9uU2NoZW1hLCBpbnB1dCwgY29udGV4dCkge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gYXdhaXQgc3VwZXIuc2VyaWFsaXplUmVxdWVzdChvcGVyYXRpb25TY2hlbWEsIGlucHV0LCBjb250ZXh0KTtcbiAgICAgICAgY29uc3QgaW5wdXRTY2hlbWEgPSBOb3JtYWxpemVkU2NoZW1hLm9mKG9wZXJhdGlvblNjaGVtYS5pbnB1dCk7XG4gICAgICAgIGlmICghcmVxdWVzdC5oZWFkZXJzW1wiY29udGVudC10eXBlXCJdKSB7XG4gICAgICAgICAgICBjb25zdCBjb250ZW50VHlwZSA9IHRoaXMubWl4aW4ucmVzb2x2ZVJlc3RDb250ZW50VHlwZSh0aGlzLmdldERlZmF1bHRDb250ZW50VHlwZSgpLCBpbnB1dFNjaGVtYSk7XG4gICAgICAgICAgICBpZiAoY29udGVudFR5cGUpIHtcbiAgICAgICAgICAgICAgICByZXF1ZXN0LmhlYWRlcnNbXCJjb250ZW50LXR5cGVcIl0gPSBjb250ZW50VHlwZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAocmVxdWVzdC5ib2R5ID09IG51bGwgJiYgcmVxdWVzdC5oZWFkZXJzW1wiY29udGVudC10eXBlXCJdID09PSB0aGlzLmdldERlZmF1bHRDb250ZW50VHlwZSgpKSB7XG4gICAgICAgICAgICByZXF1ZXN0LmJvZHkgPSBcInt9XCI7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlcXVlc3Q7XG4gICAgfVxuICAgIGFzeW5jIGRlc2VyaWFsaXplUmVzcG9uc2Uob3BlcmF0aW9uU2NoZW1hLCBjb250ZXh0LCByZXNwb25zZSkge1xuICAgICAgICBjb25zdCBvdXRwdXQgPSBhd2FpdCBzdXBlci5kZXNlcmlhbGl6ZVJlc3BvbnNlKG9wZXJhdGlvblNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UpO1xuICAgICAgICBjb25zdCBvdXRwdXRTY2hlbWEgPSBOb3JtYWxpemVkU2NoZW1hLm9mKG9wZXJhdGlvblNjaGVtYS5vdXRwdXQpO1xuICAgICAgICBmb3IgKGNvbnN0IFtuYW1lLCBtZW1iZXJdIG9mIG91dHB1dFNjaGVtYS5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICBpZiAobWVtYmVyLmdldE1lbWJlclRyYWl0cygpLmh0dHBQYXlsb2FkICYmICEobmFtZSBpbiBvdXRwdXQpKSB7XG4gICAgICAgICAgICAgICAgb3V0cHV0W25hbWVdID0gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb3V0cHV0O1xuICAgIH1cbiAgICBhc3luYyBoYW5kbGVFcnJvcihvcGVyYXRpb25TY2hlbWEsIGNvbnRleHQsIHJlc3BvbnNlLCBkYXRhT2JqZWN0LCBtZXRhZGF0YSkge1xuICAgICAgICBjb25zdCBlcnJvcklkZW50aWZpZXIgPSBsb2FkUmVzdEpzb25FcnJvckNvZGUocmVzcG9uc2UsIGRhdGFPYmplY3QpID8/IFwiVW5rbm93blwiO1xuICAgICAgICBjb25zdCB7IGVycm9yU2NoZW1hLCBlcnJvck1ldGFkYXRhIH0gPSBhd2FpdCB0aGlzLm1peGluLmdldEVycm9yU2NoZW1hT3JUaHJvd0Jhc2VFeGNlcHRpb24oZXJyb3JJZGVudGlmaWVyLCB0aGlzLm9wdGlvbnMuZGVmYXVsdE5hbWVzcGFjZSwgcmVzcG9uc2UsIGRhdGFPYmplY3QsIG1ldGFkYXRhKTtcbiAgICAgICAgY29uc3QgbnMgPSBOb3JtYWxpemVkU2NoZW1hLm9mKGVycm9yU2NoZW1hKTtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGRhdGFPYmplY3QubWVzc2FnZSA/PyBkYXRhT2JqZWN0Lk1lc3NhZ2UgPz8gXCJVbmtub3duXCI7XG4gICAgICAgIGNvbnN0IEVycm9yQ3RvciA9IFR5cGVSZWdpc3RyeS5mb3IoZXJyb3JTY2hlbWFbMV0pLmdldEVycm9yQ3RvcihlcnJvclNjaGVtYSkgPz8gRXJyb3I7XG4gICAgICAgIGNvbnN0IGV4Y2VwdGlvbiA9IG5ldyBFcnJvckN0b3IobWVzc2FnZSk7XG4gICAgICAgIGF3YWl0IHRoaXMuZGVzZXJpYWxpemVIdHRwTWVzc2FnZShlcnJvclNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UsIGRhdGFPYmplY3QpO1xuICAgICAgICBjb25zdCBvdXRwdXQgPSB7fTtcbiAgICAgICAgZm9yIChjb25zdCBbbmFtZSwgbWVtYmVyXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBtZW1iZXIuZ2V0TWVyZ2VkVHJhaXRzKCkuanNvbk5hbWUgPz8gbmFtZTtcbiAgICAgICAgICAgIG91dHB1dFtuYW1lXSA9IHRoaXMuY29kZWMuY3JlYXRlRGVzZXJpYWxpemVyKCkucmVhZE9iamVjdChtZW1iZXIsIGRhdGFPYmplY3RbdGFyZ2V0XSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgdGhpcy5taXhpbi5kZWNvcmF0ZVNlcnZpY2VFeGNlcHRpb24oT2JqZWN0LmFzc2lnbihleGNlcHRpb24sIGVycm9yTWV0YWRhdGEsIHtcbiAgICAgICAgICAgICRmYXVsdDogbnMuZ2V0TWVyZ2VkVHJhaXRzKCkuZXJyb3IsXG4gICAgICAgICAgICBtZXNzYWdlLFxuICAgICAgICB9LCBvdXRwdXQpLCBkYXRhT2JqZWN0KTtcbiAgICB9XG4gICAgZ2V0RGVmYXVsdENvbnRlbnRUeXBlKCkge1xuICAgICAgICByZXR1cm4gXCJhcHBsaWNhdGlvbi9qc29uXCI7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IGV4cGVjdFVuaW9uIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuZXhwb3J0IGNvbnN0IGF3c0V4cGVjdFVuaW9uID0gKHZhbHVlKSA9PiB7XG4gICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIiAmJiBcIl9fdHlwZVwiIGluIHZhbHVlKSB7XG4gICAgICAgIGRlbGV0ZSB2YWx1ZS5fX3R5cGU7XG4gICAgfVxuICAgIHJldHVybiBleHBlY3RVbmlvbih2YWx1ZSk7XG59O1xuIiwgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5wYXJzZVhNTCA9IHBhcnNlWE1MO1xuY29uc3QgZmFzdF94bWxfcGFyc2VyXzEgPSByZXF1aXJlKFwiZmFzdC14bWwtcGFyc2VyXCIpO1xuY29uc3QgcGFyc2VyID0gbmV3IGZhc3RfeG1sX3BhcnNlcl8xLlhNTFBhcnNlcih7XG4gICAgYXR0cmlidXRlTmFtZVByZWZpeDogXCJcIixcbiAgICBodG1sRW50aXRpZXM6IHRydWUsXG4gICAgaWdub3JlQXR0cmlidXRlczogZmFsc2UsXG4gICAgaWdub3JlRGVjbGFyYXRpb246IHRydWUsXG4gICAgcGFyc2VUYWdWYWx1ZTogZmFsc2UsXG4gICAgdHJpbVZhbHVlczogZmFsc2UsXG4gICAgdGFnVmFsdWVQcm9jZXNzb3I6IChfLCB2YWwpID0+ICh2YWwudHJpbSgpID09PSBcIlwiICYmIHZhbC5pbmNsdWRlcyhcIlxcblwiKSA/IFwiXCIgOiB1bmRlZmluZWQpLFxufSk7XG5wYXJzZXIuYWRkRW50aXR5KFwiI3hEXCIsIFwiXFxyXCIpO1xucGFyc2VyLmFkZEVudGl0eShcIiMxMFwiLCBcIlxcblwiKTtcbmZ1bmN0aW9uIHBhcnNlWE1MKHhtbFN0cmluZykge1xuICAgIHJldHVybiBwYXJzZXIucGFyc2UoeG1sU3RyaW5nLCB0cnVlKTtcbn1cbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciB4bWxQYXJzZXIgPSByZXF1aXJlKCcuL3htbC1wYXJzZXInKTtcblxuZnVuY3Rpb24gZXNjYXBlQXR0cmlidXRlKHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlLnJlcGxhY2UoLyYvZywgXCImYW1wO1wiKS5yZXBsYWNlKC88L2csIFwiJmx0O1wiKS5yZXBsYWNlKC8+L2csIFwiJmd0O1wiKS5yZXBsYWNlKC9cIi9nLCBcIiZxdW90O1wiKTtcbn1cblxuZnVuY3Rpb24gZXNjYXBlRWxlbWVudCh2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZVxuICAgICAgICAucmVwbGFjZSgvJi9nLCBcIiZhbXA7XCIpXG4gICAgICAgIC5yZXBsYWNlKC9cIi9nLCBcIiZxdW90O1wiKVxuICAgICAgICAucmVwbGFjZSgvJy9nLCBcIiZhcG9zO1wiKVxuICAgICAgICAucmVwbGFjZSgvPC9nLCBcIiZsdDtcIilcbiAgICAgICAgLnJlcGxhY2UoLz4vZywgXCImZ3Q7XCIpXG4gICAgICAgIC5yZXBsYWNlKC9cXHIvZywgXCImI3gwRDtcIilcbiAgICAgICAgLnJlcGxhY2UoL1xcbi9nLCBcIiYjeDBBO1wiKVxuICAgICAgICAucmVwbGFjZSgvXFx1MDA4NS9nLCBcIiYjeDg1O1wiKVxuICAgICAgICAucmVwbGFjZSgvXFx1MjAyOC8sIFwiJiN4MjAyODtcIik7XG59XG5cbmNsYXNzIFhtbFRleHQge1xuICAgIHZhbHVlO1xuICAgIGNvbnN0cnVjdG9yKHZhbHVlKSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB9XG4gICAgdG9TdHJpbmcoKSB7XG4gICAgICAgIHJldHVybiBlc2NhcGVFbGVtZW50KFwiXCIgKyB0aGlzLnZhbHVlKTtcbiAgICB9XG59XG5cbmNsYXNzIFhtbE5vZGUge1xuICAgIG5hbWU7XG4gICAgY2hpbGRyZW47XG4gICAgYXR0cmlidXRlcyA9IHt9O1xuICAgIHN0YXRpYyBvZihuYW1lLCBjaGlsZFRleHQsIHdpdGhOYW1lKSB7XG4gICAgICAgIGNvbnN0IG5vZGUgPSBuZXcgWG1sTm9kZShuYW1lKTtcbiAgICAgICAgaWYgKGNoaWxkVGV4dCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBub2RlLmFkZENoaWxkTm9kZShuZXcgWG1sVGV4dChjaGlsZFRleHQpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAod2l0aE5hbWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgbm9kZS53aXRoTmFtZSh3aXRoTmFtZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5vZGU7XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKG5hbWUsIGNoaWxkcmVuID0gW10pIHtcbiAgICAgICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICAgICAgdGhpcy5jaGlsZHJlbiA9IGNoaWxkcmVuO1xuICAgIH1cbiAgICB3aXRoTmFtZShuYW1lKSB7XG4gICAgICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBhZGRBdHRyaWJ1dGUobmFtZSwgdmFsdWUpIHtcbiAgICAgICAgdGhpcy5hdHRyaWJ1dGVzW25hbWVdID0gdmFsdWU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBhZGRDaGlsZE5vZGUoY2hpbGQpIHtcbiAgICAgICAgdGhpcy5jaGlsZHJlbi5wdXNoKGNoaWxkKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIHJlbW92ZUF0dHJpYnV0ZShuYW1lKSB7XG4gICAgICAgIGRlbGV0ZSB0aGlzLmF0dHJpYnV0ZXNbbmFtZV07XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBuKG5hbWUpIHtcbiAgICAgICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIGMoY2hpbGQpIHtcbiAgICAgICAgdGhpcy5jaGlsZHJlbi5wdXNoKGNoaWxkKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIGEobmFtZSwgdmFsdWUpIHtcbiAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuYXR0cmlidXRlc1tuYW1lXSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBjYyhpbnB1dCwgZmllbGQsIHdpdGhOYW1lID0gZmllbGQpIHtcbiAgICAgICAgaWYgKGlucHV0W2ZpZWxkXSAhPSBudWxsKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlID0gWG1sTm9kZS5vZihmaWVsZCwgaW5wdXRbZmllbGRdKS53aXRoTmFtZSh3aXRoTmFtZSk7XG4gICAgICAgICAgICB0aGlzLmMobm9kZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbChpbnB1dCwgbGlzdE5hbWUsIG1lbWJlck5hbWUsIHZhbHVlUHJvdmlkZXIpIHtcbiAgICAgICAgaWYgKGlucHV0W2xpc3ROYW1lXSAhPSBudWxsKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlcyA9IHZhbHVlUHJvdmlkZXIoKTtcbiAgICAgICAgICAgIG5vZGVzLm1hcCgobm9kZSkgPT4ge1xuICAgICAgICAgICAgICAgIG5vZGUud2l0aE5hbWUobWVtYmVyTmFtZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5jKG5vZGUpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbGMoaW5wdXQsIGxpc3ROYW1lLCBtZW1iZXJOYW1lLCB2YWx1ZVByb3ZpZGVyKSB7XG4gICAgICAgIGlmIChpbnB1dFtsaXN0TmFtZV0gIT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZXMgPSB2YWx1ZVByb3ZpZGVyKCk7XG4gICAgICAgICAgICBjb25zdCBjb250YWluZXJOb2RlID0gbmV3IFhtbE5vZGUobWVtYmVyTmFtZSk7XG4gICAgICAgICAgICBub2Rlcy5tYXAoKG5vZGUpID0+IHtcbiAgICAgICAgICAgICAgICBjb250YWluZXJOb2RlLmMobm9kZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuYyhjb250YWluZXJOb2RlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICB0b1N0cmluZygpIHtcbiAgICAgICAgY29uc3QgaGFzQ2hpbGRyZW4gPSBCb29sZWFuKHRoaXMuY2hpbGRyZW4ubGVuZ3RoKTtcbiAgICAgICAgbGV0IHhtbFRleHQgPSBgPCR7dGhpcy5uYW1lfWA7XG4gICAgICAgIGNvbnN0IGF0dHJpYnV0ZXMgPSB0aGlzLmF0dHJpYnV0ZXM7XG4gICAgICAgIGZvciAoY29uc3QgYXR0cmlidXRlTmFtZSBvZiBPYmplY3Qua2V5cyhhdHRyaWJ1dGVzKSkge1xuICAgICAgICAgICAgY29uc3QgYXR0cmlidXRlID0gYXR0cmlidXRlc1thdHRyaWJ1dGVOYW1lXTtcbiAgICAgICAgICAgIGlmIChhdHRyaWJ1dGUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHhtbFRleHQgKz0gYCAke2F0dHJpYnV0ZU5hbWV9PVwiJHtlc2NhcGVBdHRyaWJ1dGUoXCJcIiArIGF0dHJpYnV0ZSl9XCJgO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiAoeG1sVGV4dCArPSAhaGFzQ2hpbGRyZW4gPyBcIi8+XCIgOiBgPiR7dGhpcy5jaGlsZHJlbi5tYXAoKGMpID0+IGMudG9TdHJpbmcoKSkuam9pbihcIlwiKX08LyR7dGhpcy5uYW1lfT5gKTtcbiAgICB9XG59XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcInBhcnNlWE1MXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4geG1sUGFyc2VyLnBhcnNlWE1MOyB9XG59KTtcbmV4cG9ydHMuWG1sTm9kZSA9IFhtbE5vZGU7XG5leHBvcnRzLlhtbFRleHQgPSBYbWxUZXh0O1xuIiwgImltcG9ydCB7IHBhcnNlWE1MIH0gZnJvbSBcIkBhd3Mtc2RrL3htbC1idWlsZGVyXCI7XG5pbXBvcnQgeyBGcm9tU3RyaW5nU2hhcGVEZXNlcmlhbGl6ZXIgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3Byb3RvY29sc1wiO1xuaW1wb3J0IHsgTm9ybWFsaXplZFNjaGVtYSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2NoZW1hXCI7XG5pbXBvcnQgeyBnZXRWYWx1ZUZyb21UZXh0Tm9kZSB9IGZyb20gXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjtcbmltcG9ydCB7IHRvVXRmOCB9IGZyb20gXCJAc21pdGh5L3V0aWwtdXRmOFwiO1xuaW1wb3J0IHsgU2VyZGVDb250ZXh0Q29uZmlnIH0gZnJvbSBcIi4uL0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dFwiO1xuaW1wb3J0IHsgVW5pb25TZXJkZSB9IGZyb20gXCIuLi9VbmlvblNlcmRlXCI7XG5leHBvcnQgY2xhc3MgWG1sU2hhcGVEZXNlcmlhbGl6ZXIgZXh0ZW5kcyBTZXJkZUNvbnRleHRDb25maWcge1xuICAgIHNldHRpbmdzO1xuICAgIHN0cmluZ0Rlc2VyaWFsaXplcjtcbiAgICBjb25zdHJ1Y3RvcihzZXR0aW5ncykge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnNldHRpbmdzID0gc2V0dGluZ3M7XG4gICAgICAgIHRoaXMuc3RyaW5nRGVzZXJpYWxpemVyID0gbmV3IEZyb21TdHJpbmdTaGFwZURlc2VyaWFsaXplcihzZXR0aW5ncyk7XG4gICAgfVxuICAgIHNldFNlcmRlQ29udGV4dChzZXJkZUNvbnRleHQpIHtcbiAgICAgICAgdGhpcy5zZXJkZUNvbnRleHQgPSBzZXJkZUNvbnRleHQ7XG4gICAgICAgIHRoaXMuc3RyaW5nRGVzZXJpYWxpemVyLnNldFNlcmRlQ29udGV4dChzZXJkZUNvbnRleHQpO1xuICAgIH1cbiAgICByZWFkKHNjaGVtYSwgYnl0ZXMsIGtleSkge1xuICAgICAgICBjb25zdCBucyA9IE5vcm1hbGl6ZWRTY2hlbWEub2Yoc2NoZW1hKTtcbiAgICAgICAgY29uc3QgbWVtYmVyU2NoZW1hcyA9IG5zLmdldE1lbWJlclNjaGVtYXMoKTtcbiAgICAgICAgY29uc3QgaXNFdmVudFBheWxvYWQgPSBucy5pc1N0cnVjdFNjaGVtYSgpICYmXG4gICAgICAgICAgICBucy5pc01lbWJlclNjaGVtYSgpICYmXG4gICAgICAgICAgICAhIU9iamVjdC52YWx1ZXMobWVtYmVyU2NoZW1hcykuZmluZCgobWVtYmVyTnMpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gISFtZW1iZXJOcy5nZXRNZW1iZXJUcmFpdHMoKS5ldmVudFBheWxvYWQ7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgaWYgKGlzRXZlbnRQYXlsb2FkKSB7XG4gICAgICAgICAgICBjb25zdCBvdXRwdXQgPSB7fTtcbiAgICAgICAgICAgIGNvbnN0IG1lbWJlck5hbWUgPSBPYmplY3Qua2V5cyhtZW1iZXJTY2hlbWFzKVswXTtcbiAgICAgICAgICAgIGNvbnN0IGV2ZW50TWVtYmVyU2NoZW1hID0gbWVtYmVyU2NoZW1hc1ttZW1iZXJOYW1lXTtcbiAgICAgICAgICAgIGlmIChldmVudE1lbWJlclNjaGVtYS5pc0Jsb2JTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIG91dHB1dFttZW1iZXJOYW1lXSA9IGJ5dGVzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgb3V0cHV0W21lbWJlck5hbWVdID0gdGhpcy5yZWFkKG1lbWJlclNjaGVtYXNbbWVtYmVyTmFtZV0sIGJ5dGVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBvdXRwdXQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgeG1sU3RyaW5nID0gKHRoaXMuc2VyZGVDb250ZXh0Py51dGY4RW5jb2RlciA/PyB0b1V0ZjgpKGJ5dGVzKTtcbiAgICAgICAgY29uc3QgcGFyc2VkT2JqZWN0ID0gdGhpcy5wYXJzZVhtbCh4bWxTdHJpbmcpO1xuICAgICAgICByZXR1cm4gdGhpcy5yZWFkU2NoZW1hKHNjaGVtYSwga2V5ID8gcGFyc2VkT2JqZWN0W2tleV0gOiBwYXJzZWRPYmplY3QpO1xuICAgIH1cbiAgICByZWFkU2NoZW1hKF9zY2hlbWEsIHZhbHVlKSB7XG4gICAgICAgIGNvbnN0IG5zID0gTm9ybWFsaXplZFNjaGVtYS5vZihfc2NoZW1hKTtcbiAgICAgICAgaWYgKG5zLmlzVW5pdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdHJhaXRzID0gbnMuZ2V0TWVyZ2VkVHJhaXRzKCk7XG4gICAgICAgIGlmIChucy5pc0xpc3RTY2hlbWEoKSAmJiAhQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnJlYWRTY2hlbWEobnMsIFt2YWx1ZV0pO1xuICAgICAgICB9XG4gICAgICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgY29uc3Qgc3BhcnNlID0gISF0cmFpdHMuc3BhcnNlO1xuICAgICAgICAgICAgY29uc3QgZmxhdCA9ICEhdHJhaXRzLnhtbEZsYXR0ZW5lZDtcbiAgICAgICAgICAgIGlmIChucy5pc0xpc3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxpc3RWYWx1ZSA9IG5zLmdldFZhbHVlU2NoZW1hKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgYnVmZmVyID0gW107XG4gICAgICAgICAgICAgICAgY29uc3Qgc291cmNlS2V5ID0gbGlzdFZhbHVlLmdldE1lcmdlZFRyYWl0cygpLnhtbE5hbWUgPz8gXCJtZW1iZXJcIjtcbiAgICAgICAgICAgICAgICBjb25zdCBzb3VyY2UgPSBmbGF0ID8gdmFsdWUgOiAodmFsdWVbMF0gPz8gdmFsdWUpW3NvdXJjZUtleV07XG4gICAgICAgICAgICAgICAgY29uc3Qgc291cmNlQXJyYXkgPSBBcnJheS5pc0FycmF5KHNvdXJjZSkgPyBzb3VyY2UgOiBbc291cmNlXTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHYgb2Ygc291cmNlQXJyYXkpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHYgIT0gbnVsbCB8fCBzcGFyc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5wdXNoKHRoaXMucmVhZFNjaGVtYShsaXN0VmFsdWUsIHYpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gYnVmZmVyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgYnVmZmVyID0ge307XG4gICAgICAgICAgICBpZiAobnMuaXNNYXBTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGtleU5zID0gbnMuZ2V0S2V5U2NoZW1hKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgbWVtYmVyTnMgPSBucy5nZXRWYWx1ZVNjaGVtYSgpO1xuICAgICAgICAgICAgICAgIGxldCBlbnRyaWVzO1xuICAgICAgICAgICAgICAgIGlmIChmbGF0KSB7XG4gICAgICAgICAgICAgICAgICAgIGVudHJpZXMgPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW3ZhbHVlXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGVudHJpZXMgPSBBcnJheS5pc0FycmF5KHZhbHVlLmVudHJ5KSA/IHZhbHVlLmVudHJ5IDogW3ZhbHVlLmVudHJ5XTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3Qga2V5UHJvcGVydHkgPSBrZXlOcy5nZXRNZXJnZWRUcmFpdHMoKS54bWxOYW1lID8/IFwia2V5XCI7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWVQcm9wZXJ0eSA9IG1lbWJlck5zLmdldE1lcmdlZFRyYWl0cygpLnhtbE5hbWUgPz8gXCJ2YWx1ZVwiO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZW50cnkgb2YgZW50cmllcykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSBlbnRyeVtrZXlQcm9wZXJ0eV07XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZW50cnlbdmFsdWVQcm9wZXJ0eV07XG4gICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSAhPSBudWxsIHx8IHNwYXJzZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyW2tleV0gPSB0aGlzLnJlYWRTY2hlbWEobWVtYmVyTnMsIHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gYnVmZmVyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG5zLmlzU3RydWN0U2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB1bmlvbiA9IG5zLmlzVW5pb25TY2hlbWEoKTtcbiAgICAgICAgICAgICAgICBsZXQgdW5pb25TZXJkZTtcbiAgICAgICAgICAgICAgICBpZiAodW5pb24pIHtcbiAgICAgICAgICAgICAgICAgICAgdW5pb25TZXJkZSA9IG5ldyBVbmlvblNlcmRlKHZhbHVlLCBidWZmZXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IFttZW1iZXJOYW1lLCBtZW1iZXJTY2hlbWFdIG9mIG5zLnN0cnVjdEl0ZXJhdG9yKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbWVtYmVyVHJhaXRzID0gbWVtYmVyU2NoZW1hLmdldE1lcmdlZFRyYWl0cygpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxPYmplY3RLZXkgPSAhbWVtYmVyVHJhaXRzLmh0dHBQYXlsb2FkXG4gICAgICAgICAgICAgICAgICAgICAgICA/IG1lbWJlclNjaGVtYS5nZXRNZW1iZXJUcmFpdHMoKS54bWxOYW1lID8/IG1lbWJlck5hbWVcbiAgICAgICAgICAgICAgICAgICAgICAgIDogbWVtYmVyVHJhaXRzLnhtbE5hbWUgPz8gbWVtYmVyU2NoZW1hLmdldE5hbWUoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHVuaW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB1bmlvblNlcmRlLm1hcmsoeG1sT2JqZWN0S2V5KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWVbeG1sT2JqZWN0S2V5XSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJbbWVtYmVyTmFtZV0gPSB0aGlzLnJlYWRTY2hlbWEobWVtYmVyU2NoZW1hLCB2YWx1ZVt4bWxPYmplY3RLZXldKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodW5pb24pIHtcbiAgICAgICAgICAgICAgICAgICAgdW5pb25TZXJkZS53cml0ZVVua25vd24oKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGJ1ZmZlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChucy5pc0RvY3VtZW50U2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEBhd3Mtc2RrL2NvcmUvcHJvdG9jb2xzIC0geG1sIGRlc2VyaWFsaXplciB1bmhhbmRsZWQgc2NoZW1hIHR5cGUgZm9yICR7bnMuZ2V0TmFtZSh0cnVlKX1gKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobnMuaXNMaXN0U2NoZW1hKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobnMuaXNNYXBTY2hlbWEoKSB8fCBucy5pc1N0cnVjdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICByZXR1cm4ge307XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuc3RyaW5nRGVzZXJpYWxpemVyLnJlYWQobnMsIHZhbHVlKTtcbiAgICB9XG4gICAgcGFyc2VYbWwoeG1sKSB7XG4gICAgICAgIGlmICh4bWwubGVuZ3RoKSB7XG4gICAgICAgICAgICBsZXQgcGFyc2VkT2JqO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBwYXJzZWRPYmogPSBwYXJzZVhNTCh4bWwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICBpZiAoZSAmJiB0eXBlb2YgZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwgXCIkcmVzcG9uc2VCb2R5VGV4dFwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogeG1sLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHRleHROb2RlTmFtZSA9IFwiI3RleHRcIjtcbiAgICAgICAgICAgIGNvbnN0IGtleSA9IE9iamVjdC5rZXlzKHBhcnNlZE9iailbMF07XG4gICAgICAgICAgICBjb25zdCBwYXJzZWRPYmpUb1JldHVybiA9IHBhcnNlZE9ialtrZXldO1xuICAgICAgICAgICAgaWYgKHBhcnNlZE9ialRvUmV0dXJuW3RleHROb2RlTmFtZV0pIHtcbiAgICAgICAgICAgICAgICBwYXJzZWRPYmpUb1JldHVybltrZXldID0gcGFyc2VkT2JqVG9SZXR1cm5bdGV4dE5vZGVOYW1lXTtcbiAgICAgICAgICAgICAgICBkZWxldGUgcGFyc2VkT2JqVG9SZXR1cm5bdGV4dE5vZGVOYW1lXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBnZXRWYWx1ZUZyb21UZXh0Tm9kZShwYXJzZWRPYmpUb1JldHVybik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHt9O1xuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBkZXRlcm1pbmVUaW1lc3RhbXBGb3JtYXQsIGV4dGVuZGVkRW5jb2RlVVJJQ29tcG9uZW50IH0gZnJvbSBcIkBzbWl0aHkvY29yZS9wcm90b2NvbHNcIjtcbmltcG9ydCB7IE5vcm1hbGl6ZWRTY2hlbWEgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3NjaGVtYVwiO1xuaW1wb3J0IHsgZ2VuZXJhdGVJZGVtcG90ZW5jeVRva2VuLCBOdW1lcmljVmFsdWUgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3NlcmRlXCI7XG5pbXBvcnQgeyBkYXRlVG9VdGNTdHJpbmcgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyB0b0Jhc2U2NCB9IGZyb20gXCJAc21pdGh5L3V0aWwtYmFzZTY0XCI7XG5pbXBvcnQgeyBTZXJkZUNvbnRleHRDb25maWcgfSBmcm9tIFwiLi4vQ29uZmlndXJhYmxlU2VyZGVDb250ZXh0XCI7XG5leHBvcnQgY2xhc3MgUXVlcnlTaGFwZVNlcmlhbGl6ZXIgZXh0ZW5kcyBTZXJkZUNvbnRleHRDb25maWcge1xuICAgIHNldHRpbmdzO1xuICAgIGJ1ZmZlcjtcbiAgICBjb25zdHJ1Y3RvcihzZXR0aW5ncykge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnNldHRpbmdzID0gc2V0dGluZ3M7XG4gICAgfVxuICAgIHdyaXRlKHNjaGVtYSwgdmFsdWUsIHByZWZpeCA9IFwiXCIpIHtcbiAgICAgICAgaWYgKHRoaXMuYnVmZmVyID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuYnVmZmVyID0gXCJcIjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBucyA9IE5vcm1hbGl6ZWRTY2hlbWEub2Yoc2NoZW1hKTtcbiAgICAgICAgaWYgKHByZWZpeCAmJiAhcHJlZml4LmVuZHNXaXRoKFwiLlwiKSkge1xuICAgICAgICAgICAgcHJlZml4ICs9IFwiLlwiO1xuICAgICAgICB9XG4gICAgICAgIGlmIChucy5pc0Jsb2JTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiB8fCB2YWx1ZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlS2V5KHByZWZpeCk7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKCh0aGlzLnNlcmRlQ29udGV4dD8uYmFzZTY0RW5jb2RlciA/PyB0b0Jhc2U2NCkodmFsdWUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChucy5pc0Jvb2xlYW5TY2hlbWEoKSB8fCBucy5pc051bWVyaWNTY2hlbWEoKSB8fCBucy5pc1N0cmluZ1NjaGVtYSgpKSB7XG4gICAgICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVLZXkocHJlZml4KTtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlVmFsdWUoU3RyaW5nKHZhbHVlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChucy5pc0lkZW1wb3RlbmN5VG9rZW4oKSkge1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVLZXkocHJlZml4KTtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlVmFsdWUoZ2VuZXJhdGVJZGVtcG90ZW5jeVRva2VuKCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKG5zLmlzQmlnSW50ZWdlclNjaGVtYSgpKSB7XG4gICAgICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVLZXkocHJlZml4KTtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlVmFsdWUoU3RyaW5nKHZhbHVlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAobnMuaXNCaWdEZWNpbWFsU2NoZW1hKCkpIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZUtleShwcmVmaXgpO1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVWYWx1ZSh2YWx1ZSBpbnN0YW5jZW9mIE51bWVyaWNWYWx1ZSA/IHZhbHVlLnN0cmluZyA6IFN0cmluZyh2YWx1ZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKG5zLmlzVGltZXN0YW1wU2NoZW1hKCkpIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlS2V5KHByZWZpeCk7XG4gICAgICAgICAgICAgICAgY29uc3QgZm9ybWF0ID0gZGV0ZXJtaW5lVGltZXN0YW1wRm9ybWF0KG5zLCB0aGlzLnNldHRpbmdzKTtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGZvcm1hdCkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLndyaXRlVmFsdWUodmFsdWUudG9JU09TdHJpbmcoKS5yZXBsYWNlKFwiLjAwMFpcIiwgXCJaXCIpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLndyaXRlVmFsdWUoZGF0ZVRvVXRjU3RyaW5nKHZhbHVlKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA3OlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKFN0cmluZyh2YWx1ZS5nZXRUaW1lKCkgLyAxMDAwKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAobnMuaXNEb2N1bWVudFNjaGVtYSgpKSB7XG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlKDY0IHwgMTUsIHZhbHVlLCBwcmVmaXgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZSg0LCB2YWx1ZSwgcHJlZml4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHZhbHVlIGluc3RhbmNlb2YgVWludDhBcnJheSkge1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGUoMjEsIHZhbHVlLCBwcmVmaXgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAodmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZSgxMjggfCAxNSwgdmFsdWUsIHByZWZpeCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlS2V5KHByZWZpeCk7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKFN0cmluZyh2YWx1ZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKG5zLmlzTGlzdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnNldHRpbmdzLnNlcmlhbGl6ZUVtcHR5TGlzdHMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMud3JpdGVLZXkocHJlZml4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMud3JpdGVWYWx1ZShcIlwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbWVtYmVyID0gbnMuZ2V0VmFsdWVTY2hlbWEoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZmxhdCA9IHRoaXMuc2V0dGluZ3MuZmxhdHRlbkxpc3RzIHx8IG5zLmdldE1lcmdlZFRyYWl0cygpLnhtbEZsYXR0ZW5lZDtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGkgPSAxO1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpdGVtID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRyYWl0cyA9IG1lbWJlci5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN1ZmZpeCA9IHRoaXMuZ2V0S2V5KFwibWVtYmVyXCIsIHRyYWl0cy54bWxOYW1lLCB0cmFpdHMuZWMyUXVlcnlOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IGZsYXQgPyBgJHtwcmVmaXh9JHtpfWAgOiBgJHtwcmVmaXh9JHtzdWZmaXh9LiR7aX1gO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53cml0ZShtZW1iZXIsIGl0ZW0sIGtleSk7XG4gICAgICAgICAgICAgICAgICAgICAgICArK2k7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAobnMuaXNNYXBTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgICAgIGNvbnN0IGtleVNjaGVtYSA9IG5zLmdldEtleVNjaGVtYSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IG1lbWJlclNjaGVtYSA9IG5zLmdldFZhbHVlU2NoZW1hKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgZmxhdCA9IG5zLmdldE1lcmdlZFRyYWl0cygpLnhtbEZsYXR0ZW5lZDtcbiAgICAgICAgICAgICAgICBsZXQgaSA9IDE7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBbaywgdl0gb2YgT2JqZWN0LmVudHJpZXModmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2ID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGtleVRyYWl0cyA9IGtleVNjaGVtYS5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qga2V5U3VmZml4ID0gdGhpcy5nZXRLZXkoXCJrZXlcIiwga2V5VHJhaXRzLnhtbE5hbWUsIGtleVRyYWl0cy5lYzJRdWVyeU5hbWUpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSBmbGF0ID8gYCR7cHJlZml4fSR7aX0uJHtrZXlTdWZmaXh9YCA6IGAke3ByZWZpeH1lbnRyeS4ke2l9LiR7a2V5U3VmZml4fWA7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbFRyYWl0cyA9IG1lbWJlclNjaGVtYS5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWVTdWZmaXggPSB0aGlzLmdldEtleShcInZhbHVlXCIsIHZhbFRyYWl0cy54bWxOYW1lLCB2YWxUcmFpdHMuZWMyUXVlcnlOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWVLZXkgPSBmbGF0ID8gYCR7cHJlZml4fSR7aX0uJHt2YWx1ZVN1ZmZpeH1gIDogYCR7cHJlZml4fWVudHJ5LiR7aX0uJHt2YWx1ZVN1ZmZpeH1gO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLndyaXRlKGtleVNjaGVtYSwgaywga2V5KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy53cml0ZShtZW1iZXJTY2hlbWEsIHYsIHZhbHVlS2V5KTtcbiAgICAgICAgICAgICAgICAgICAgKytpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChucy5pc1N0cnVjdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICBpZiAodmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICAgICAgbGV0IGRpZFdyaXRlTWVtYmVyID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBbbWVtYmVyTmFtZSwgbWVtYmVyXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZVttZW1iZXJOYW1lXSA9PSBudWxsICYmICFtZW1iZXIuaXNJZGVtcG90ZW5jeVRva2VuKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRyYWl0cyA9IG1lbWJlci5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3VmZml4ID0gdGhpcy5nZXRLZXkobWVtYmVyTmFtZSwgdHJhaXRzLnhtbE5hbWUsIHRyYWl0cy5lYzJRdWVyeU5hbWUsIFwic3RydWN0XCIpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSBgJHtwcmVmaXh9JHtzdWZmaXh9YDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy53cml0ZShtZW1iZXIsIHZhbHVlW21lbWJlck5hbWVdLCBrZXkpO1xuICAgICAgICAgICAgICAgICAgICBkaWRXcml0ZU1lbWJlciA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICghZGlkV3JpdGVNZW1iZXIgJiYgbnMuaXNVbmlvblNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgJHVua25vd24gfSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSgkdW5rbm93bikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFtrLCB2XSA9ICR1bmtub3duO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qga2V5ID0gYCR7cHJlZml4fSR7a31gO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53cml0ZSgxNSwgdiwga2V5KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChucy5pc1VuaXRTY2hlbWEoKSkge1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBAYXdzLXNkay9jb3JlL3Byb3RvY29scyAtIFF1ZXJ5U2VyaWFsaXplciB1bnJlY29nbml6ZWQgc2NoZW1hIHR5cGUgJHtucy5nZXROYW1lKHRydWUpfWApO1xuICAgICAgICB9XG4gICAgfVxuICAgIGZsdXNoKCkge1xuICAgICAgICBpZiAodGhpcy5idWZmZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSBRdWVyeVNlcmlhbGl6ZXIgY2Fubm90IGZsdXNoIHdpdGggbm90aGluZyB3cml0dGVuIHRvIGJ1ZmZlci5cIik7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc3RyID0gdGhpcy5idWZmZXI7XG4gICAgICAgIGRlbGV0ZSB0aGlzLmJ1ZmZlcjtcbiAgICAgICAgcmV0dXJuIHN0cjtcbiAgICB9XG4gICAgZ2V0S2V5KG1lbWJlck5hbWUsIHhtbE5hbWUsIGVjMlF1ZXJ5TmFtZSwga2V5U291cmNlKSB7XG4gICAgICAgIGNvbnN0IHsgZWMyLCBjYXBpdGFsaXplS2V5cyB9ID0gdGhpcy5zZXR0aW5ncztcbiAgICAgICAgaWYgKGVjMiAmJiBlYzJRdWVyeU5hbWUpIHtcbiAgICAgICAgICAgIHJldHVybiBlYzJRdWVyeU5hbWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qga2V5ID0geG1sTmFtZSA/PyBtZW1iZXJOYW1lO1xuICAgICAgICBpZiAoY2FwaXRhbGl6ZUtleXMgJiYga2V5U291cmNlID09PSBcInN0cnVjdFwiKSB7XG4gICAgICAgICAgICByZXR1cm4ga2V5WzBdLnRvVXBwZXJDYXNlKCkgKyBrZXkuc2xpY2UoMSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGtleTtcbiAgICB9XG4gICAgd3JpdGVLZXkoa2V5KSB7XG4gICAgICAgIGlmIChrZXkuZW5kc1dpdGgoXCIuXCIpKSB7XG4gICAgICAgICAgICBrZXkgPSBrZXkuc2xpY2UoMCwga2V5Lmxlbmd0aCAtIDEpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYnVmZmVyICs9IGAmJHtleHRlbmRlZEVuY29kZVVSSUNvbXBvbmVudChrZXkpfT1gO1xuICAgIH1cbiAgICB3cml0ZVZhbHVlKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuYnVmZmVyICs9IGV4dGVuZGVkRW5jb2RlVVJJQ29tcG9uZW50KHZhbHVlKTtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgY29sbGVjdEJvZHksIFJwY1Byb3RvY29sIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9wcm90b2NvbHNcIjtcbmltcG9ydCB7IGRlcmVmLCBOb3JtYWxpemVkU2NoZW1hLCBUeXBlUmVnaXN0cnkgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3NjaGVtYVwiO1xuaW1wb3J0IHsgUHJvdG9jb2xMaWIgfSBmcm9tIFwiLi4vUHJvdG9jb2xMaWJcIjtcbmltcG9ydCB7IFhtbFNoYXBlRGVzZXJpYWxpemVyIH0gZnJvbSBcIi4uL3htbC9YbWxTaGFwZURlc2VyaWFsaXplclwiO1xuaW1wb3J0IHsgUXVlcnlTaGFwZVNlcmlhbGl6ZXIgfSBmcm9tIFwiLi9RdWVyeVNoYXBlU2VyaWFsaXplclwiO1xuZXhwb3J0IGNsYXNzIEF3c1F1ZXJ5UHJvdG9jb2wgZXh0ZW5kcyBScGNQcm90b2NvbCB7XG4gICAgb3B0aW9ucztcbiAgICBzZXJpYWxpemVyO1xuICAgIGRlc2VyaWFsaXplcjtcbiAgICBtaXhpbiA9IG5ldyBQcm90b2NvbExpYigpO1xuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgZGVmYXVsdE5hbWVzcGFjZTogb3B0aW9ucy5kZWZhdWx0TmFtZXNwYWNlLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgICAgICAgY29uc3Qgc2V0dGluZ3MgPSB7XG4gICAgICAgICAgICB0aW1lc3RhbXBGb3JtYXQ6IHtcbiAgICAgICAgICAgICAgICB1c2VUcmFpdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiA1LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGh0dHBCaW5kaW5nczogZmFsc2UsXG4gICAgICAgICAgICB4bWxOYW1lc3BhY2U6IG9wdGlvbnMueG1sTmFtZXNwYWNlLFxuICAgICAgICAgICAgc2VydmljZU5hbWVzcGFjZTogb3B0aW9ucy5kZWZhdWx0TmFtZXNwYWNlLFxuICAgICAgICAgICAgc2VyaWFsaXplRW1wdHlMaXN0czogdHJ1ZSxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5zZXJpYWxpemVyID0gbmV3IFF1ZXJ5U2hhcGVTZXJpYWxpemVyKHNldHRpbmdzKTtcbiAgICAgICAgdGhpcy5kZXNlcmlhbGl6ZXIgPSBuZXcgWG1sU2hhcGVEZXNlcmlhbGl6ZXIoc2V0dGluZ3MpO1xuICAgIH1cbiAgICBnZXRTaGFwZUlkKCkge1xuICAgICAgICByZXR1cm4gXCJhd3MucHJvdG9jb2xzI2F3c1F1ZXJ5XCI7XG4gICAgfVxuICAgIHNldFNlcmRlQ29udGV4dChzZXJkZUNvbnRleHQpIHtcbiAgICAgICAgdGhpcy5zZXJpYWxpemVyLnNldFNlcmRlQ29udGV4dChzZXJkZUNvbnRleHQpO1xuICAgICAgICB0aGlzLmRlc2VyaWFsaXplci5zZXRTZXJkZUNvbnRleHQoc2VyZGVDb250ZXh0KTtcbiAgICB9XG4gICAgZ2V0UGF5bG9hZENvZGVjKCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJBV1NRdWVyeSBwcm90b2NvbCBoYXMgbm8gcGF5bG9hZCBjb2RlYy5cIik7XG4gICAgfVxuICAgIGFzeW5jIHNlcmlhbGl6ZVJlcXVlc3Qob3BlcmF0aW9uU2NoZW1hLCBpbnB1dCwgY29udGV4dCkge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gYXdhaXQgc3VwZXIuc2VyaWFsaXplUmVxdWVzdChvcGVyYXRpb25TY2hlbWEsIGlucHV0LCBjb250ZXh0KTtcbiAgICAgICAgaWYgKCFyZXF1ZXN0LnBhdGguZW5kc1dpdGgoXCIvXCIpKSB7XG4gICAgICAgICAgICByZXF1ZXN0LnBhdGggKz0gXCIvXCI7XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbihyZXF1ZXN0LmhlYWRlcnMsIHtcbiAgICAgICAgICAgIFwiY29udGVudC10eXBlXCI6IGBhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWRgLFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGRlcmVmKG9wZXJhdGlvblNjaGVtYS5pbnB1dCkgPT09IFwidW5pdFwiIHx8ICFyZXF1ZXN0LmJvZHkpIHtcbiAgICAgICAgICAgIHJlcXVlc3QuYm9keSA9IFwiXCI7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYWN0aW9uID0gb3BlcmF0aW9uU2NoZW1hLm5hbWUuc3BsaXQoXCIjXCIpWzFdID8/IG9wZXJhdGlvblNjaGVtYS5uYW1lO1xuICAgICAgICByZXF1ZXN0LmJvZHkgPSBgQWN0aW9uPSR7YWN0aW9ufSZWZXJzaW9uPSR7dGhpcy5vcHRpb25zLnZlcnNpb259YCArIHJlcXVlc3QuYm9keTtcbiAgICAgICAgaWYgKHJlcXVlc3QuYm9keS5lbmRzV2l0aChcIiZcIikpIHtcbiAgICAgICAgICAgIHJlcXVlc3QuYm9keSA9IHJlcXVlc3QuYm9keS5zbGljZSgtMSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlcXVlc3Q7XG4gICAgfVxuICAgIGFzeW5jIGRlc2VyaWFsaXplUmVzcG9uc2Uob3BlcmF0aW9uU2NoZW1hLCBjb250ZXh0LCByZXNwb25zZSkge1xuICAgICAgICBjb25zdCBkZXNlcmlhbGl6ZXIgPSB0aGlzLmRlc2VyaWFsaXplcjtcbiAgICAgICAgY29uc3QgbnMgPSBOb3JtYWxpemVkU2NoZW1hLm9mKG9wZXJhdGlvblNjaGVtYS5vdXRwdXQpO1xuICAgICAgICBjb25zdCBkYXRhT2JqZWN0ID0ge307XG4gICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXNDb2RlID49IDMwMCkge1xuICAgICAgICAgICAgY29uc3QgYnl0ZXMgPSBhd2FpdCBjb2xsZWN0Qm9keShyZXNwb25zZS5ib2R5LCBjb250ZXh0KTtcbiAgICAgICAgICAgIGlmIChieXRlcy5ieXRlTGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oZGF0YU9iamVjdCwgYXdhaXQgZGVzZXJpYWxpemVyLnJlYWQoMTUsIGJ5dGVzKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmhhbmRsZUVycm9yKG9wZXJhdGlvblNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UsIGRhdGFPYmplY3QsIHRoaXMuZGVzZXJpYWxpemVNZXRhZGF0YShyZXNwb25zZSkpO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgaGVhZGVyIGluIHJlc3BvbnNlLmhlYWRlcnMpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gcmVzcG9uc2UuaGVhZGVyc1toZWFkZXJdO1xuICAgICAgICAgICAgZGVsZXRlIHJlc3BvbnNlLmhlYWRlcnNbaGVhZGVyXTtcbiAgICAgICAgICAgIHJlc3BvbnNlLmhlYWRlcnNbaGVhZGVyLnRvTG93ZXJDYXNlKCldID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc2hvcnROYW1lID0gb3BlcmF0aW9uU2NoZW1hLm5hbWUuc3BsaXQoXCIjXCIpWzFdID8/IG9wZXJhdGlvblNjaGVtYS5uYW1lO1xuICAgICAgICBjb25zdCBhd3NRdWVyeVJlc3VsdEtleSA9IG5zLmlzU3RydWN0U2NoZW1hKCkgJiYgdGhpcy51c2VOZXN0ZWRSZXN1bHQoKSA/IHNob3J0TmFtZSArIFwiUmVzdWx0XCIgOiB1bmRlZmluZWQ7XG4gICAgICAgIGNvbnN0IGJ5dGVzID0gYXdhaXQgY29sbGVjdEJvZHkocmVzcG9uc2UuYm9keSwgY29udGV4dCk7XG4gICAgICAgIGlmIChieXRlcy5ieXRlTGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihkYXRhT2JqZWN0LCBhd2FpdCBkZXNlcmlhbGl6ZXIucmVhZChucywgYnl0ZXMsIGF3c1F1ZXJ5UmVzdWx0S2V5KSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgb3V0cHV0ID0ge1xuICAgICAgICAgICAgJG1ldGFkYXRhOiB0aGlzLmRlc2VyaWFsaXplTWV0YWRhdGEocmVzcG9uc2UpLFxuICAgICAgICAgICAgLi4uZGF0YU9iamVjdCxcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIG91dHB1dDtcbiAgICB9XG4gICAgdXNlTmVzdGVkUmVzdWx0KCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgYXN5bmMgaGFuZGxlRXJyb3Iob3BlcmF0aW9uU2NoZW1hLCBjb250ZXh0LCByZXNwb25zZSwgZGF0YU9iamVjdCwgbWV0YWRhdGEpIHtcbiAgICAgICAgY29uc3QgZXJyb3JJZGVudGlmaWVyID0gdGhpcy5sb2FkUXVlcnlFcnJvckNvZGUocmVzcG9uc2UsIGRhdGFPYmplY3QpID8/IFwiVW5rbm93blwiO1xuICAgICAgICBjb25zdCBlcnJvckRhdGEgPSB0aGlzLmxvYWRRdWVyeUVycm9yKGRhdGFPYmplY3QpID8/IHt9O1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gdGhpcy5sb2FkUXVlcnlFcnJvck1lc3NhZ2UoZGF0YU9iamVjdCk7XG4gICAgICAgIGVycm9yRGF0YS5tZXNzYWdlID0gbWVzc2FnZTtcbiAgICAgICAgZXJyb3JEYXRhLkVycm9yID0ge1xuICAgICAgICAgICAgVHlwZTogZXJyb3JEYXRhLlR5cGUsXG4gICAgICAgICAgICBDb2RlOiBlcnJvckRhdGEuQ29kZSxcbiAgICAgICAgICAgIE1lc3NhZ2U6IG1lc3NhZ2UsXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHsgZXJyb3JTY2hlbWEsIGVycm9yTWV0YWRhdGEgfSA9IGF3YWl0IHRoaXMubWl4aW4uZ2V0RXJyb3JTY2hlbWFPclRocm93QmFzZUV4Y2VwdGlvbihlcnJvcklkZW50aWZpZXIsIHRoaXMub3B0aW9ucy5kZWZhdWx0TmFtZXNwYWNlLCByZXNwb25zZSwgZXJyb3JEYXRhLCBtZXRhZGF0YSwgdGhpcy5taXhpbi5maW5kUXVlcnlDb21wYXRpYmxlRXJyb3IpO1xuICAgICAgICBjb25zdCBucyA9IE5vcm1hbGl6ZWRTY2hlbWEub2YoZXJyb3JTY2hlbWEpO1xuICAgICAgICBjb25zdCBFcnJvckN0b3IgPSBUeXBlUmVnaXN0cnkuZm9yKGVycm9yU2NoZW1hWzFdKS5nZXRFcnJvckN0b3IoZXJyb3JTY2hlbWEpID8/IEVycm9yO1xuICAgICAgICBjb25zdCBleGNlcHRpb24gPSBuZXcgRXJyb3JDdG9yKG1lc3NhZ2UpO1xuICAgICAgICBjb25zdCBvdXRwdXQgPSB7XG4gICAgICAgICAgICBUeXBlOiBlcnJvckRhdGEuRXJyb3IuVHlwZSxcbiAgICAgICAgICAgIENvZGU6IGVycm9yRGF0YS5FcnJvci5Db2RlLFxuICAgICAgICAgICAgRXJyb3I6IGVycm9yRGF0YS5FcnJvcixcbiAgICAgICAgfTtcbiAgICAgICAgZm9yIChjb25zdCBbbmFtZSwgbWVtYmVyXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBtZW1iZXIuZ2V0TWVyZ2VkVHJhaXRzKCkueG1sTmFtZSA/PyBuYW1lO1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBlcnJvckRhdGFbdGFyZ2V0XSA/PyBkYXRhT2JqZWN0W3RhcmdldF07XG4gICAgICAgICAgICBvdXRwdXRbbmFtZV0gPSB0aGlzLmRlc2VyaWFsaXplci5yZWFkU2NoZW1hKG1lbWJlciwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IHRoaXMubWl4aW4uZGVjb3JhdGVTZXJ2aWNlRXhjZXB0aW9uKE9iamVjdC5hc3NpZ24oZXhjZXB0aW9uLCBlcnJvck1ldGFkYXRhLCB7XG4gICAgICAgICAgICAkZmF1bHQ6IG5zLmdldE1lcmdlZFRyYWl0cygpLmVycm9yLFxuICAgICAgICAgICAgbWVzc2FnZSxcbiAgICAgICAgfSwgb3V0cHV0KSwgZGF0YU9iamVjdCk7XG4gICAgfVxuICAgIGxvYWRRdWVyeUVycm9yQ29kZShvdXRwdXQsIGRhdGEpIHtcbiAgICAgICAgY29uc3QgY29kZSA9IChkYXRhLkVycm9ycz8uWzBdPy5FcnJvciA/PyBkYXRhLkVycm9ycz8uRXJyb3IgPz8gZGF0YS5FcnJvcik/LkNvZGU7XG4gICAgICAgIGlmIChjb2RlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBjb2RlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvdXRwdXQuc3RhdHVzQ29kZSA9PSA0MDQpIHtcbiAgICAgICAgICAgIHJldHVybiBcIk5vdEZvdW5kXCI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbG9hZFF1ZXJ5RXJyb3IoZGF0YSkge1xuICAgICAgICByZXR1cm4gZGF0YS5FcnJvcnM/LlswXT8uRXJyb3IgPz8gZGF0YS5FcnJvcnM/LkVycm9yID8/IGRhdGEuRXJyb3I7XG4gICAgfVxuICAgIGxvYWRRdWVyeUVycm9yTWVzc2FnZShkYXRhKSB7XG4gICAgICAgIGNvbnN0IGVycm9yRGF0YSA9IHRoaXMubG9hZFF1ZXJ5RXJyb3IoZGF0YSk7XG4gICAgICAgIHJldHVybiBlcnJvckRhdGE/Lm1lc3NhZ2UgPz8gZXJyb3JEYXRhPy5NZXNzYWdlID8/IGRhdGEubWVzc2FnZSA/PyBkYXRhLk1lc3NhZ2UgPz8gXCJVbmtub3duXCI7XG4gICAgfVxuICAgIGdldERlZmF1bHRDb250ZW50VHlwZSgpIHtcbiAgICAgICAgcmV0dXJuIFwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkXCI7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IEF3c1F1ZXJ5UHJvdG9jb2wgfSBmcm9tIFwiLi9Bd3NRdWVyeVByb3RvY29sXCI7XG5leHBvcnQgY2xhc3MgQXdzRWMyUXVlcnlQcm90b2NvbCBleHRlbmRzIEF3c1F1ZXJ5UHJvdG9jb2wge1xuICAgIG9wdGlvbnM7XG4gICAgY29uc3RydWN0b3Iob3B0aW9ucykge1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgICAgICAgY29uc3QgZWMyU2V0dGluZ3MgPSB7XG4gICAgICAgICAgICBjYXBpdGFsaXplS2V5czogdHJ1ZSxcbiAgICAgICAgICAgIGZsYXR0ZW5MaXN0czogdHJ1ZSxcbiAgICAgICAgICAgIHNlcmlhbGl6ZUVtcHR5TGlzdHM6IGZhbHNlLFxuICAgICAgICAgICAgZWMyOiB0cnVlLFxuICAgICAgICB9O1xuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMuc2VyaWFsaXplci5zZXR0aW5ncywgZWMyU2V0dGluZ3MpO1xuICAgIH1cbiAgICB1c2VOZXN0ZWRSZXN1bHQoKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgcGFyc2VYTUwgfSBmcm9tIFwiQGF3cy1zZGsveG1sLWJ1aWxkZXJcIjtcbmltcG9ydCB7IGdldFZhbHVlRnJvbVRleHROb2RlIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgY29sbGVjdEJvZHlTdHJpbmcgfSBmcm9tIFwiLi4vY29tbW9uXCI7XG5leHBvcnQgY29uc3QgcGFyc2VYbWxCb2R5ID0gKHN0cmVhbUJvZHksIGNvbnRleHQpID0+IGNvbGxlY3RCb2R5U3RyaW5nKHN0cmVhbUJvZHksIGNvbnRleHQpLnRoZW4oKGVuY29kZWQpID0+IHtcbiAgICBpZiAoZW5jb2RlZC5sZW5ndGgpIHtcbiAgICAgICAgbGV0IHBhcnNlZE9iajtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHBhcnNlZE9iaiA9IHBhcnNlWE1MKGVuY29kZWQpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICBpZiAoZSAmJiB0eXBlb2YgZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCBcIiRyZXNwb25zZUJvZHlUZXh0XCIsIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGVuY29kZWQsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHRleHROb2RlTmFtZSA9IFwiI3RleHRcIjtcbiAgICAgICAgY29uc3Qga2V5ID0gT2JqZWN0LmtleXMocGFyc2VkT2JqKVswXTtcbiAgICAgICAgY29uc3QgcGFyc2VkT2JqVG9SZXR1cm4gPSBwYXJzZWRPYmpba2V5XTtcbiAgICAgICAgaWYgKHBhcnNlZE9ialRvUmV0dXJuW3RleHROb2RlTmFtZV0pIHtcbiAgICAgICAgICAgIHBhcnNlZE9ialRvUmV0dXJuW2tleV0gPSBwYXJzZWRPYmpUb1JldHVyblt0ZXh0Tm9kZU5hbWVdO1xuICAgICAgICAgICAgZGVsZXRlIHBhcnNlZE9ialRvUmV0dXJuW3RleHROb2RlTmFtZV07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGdldFZhbHVlRnJvbVRleHROb2RlKHBhcnNlZE9ialRvUmV0dXJuKTtcbiAgICB9XG4gICAgcmV0dXJuIHt9O1xufSk7XG5leHBvcnQgY29uc3QgcGFyc2VYbWxFcnJvckJvZHkgPSBhc3luYyAoZXJyb3JCb2R5LCBjb250ZXh0KSA9PiB7XG4gICAgY29uc3QgdmFsdWUgPSBhd2FpdCBwYXJzZVhtbEJvZHkoZXJyb3JCb2R5LCBjb250ZXh0KTtcbiAgICBpZiAodmFsdWUuRXJyb3IpIHtcbiAgICAgICAgdmFsdWUuRXJyb3IubWVzc2FnZSA9IHZhbHVlLkVycm9yLm1lc3NhZ2UgPz8gdmFsdWUuRXJyb3IuTWVzc2FnZTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlO1xufTtcbmV4cG9ydCBjb25zdCBsb2FkUmVzdFhtbEVycm9yQ29kZSA9IChvdXRwdXQsIGRhdGEpID0+IHtcbiAgICBpZiAoZGF0YT8uRXJyb3I/LkNvZGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gZGF0YS5FcnJvci5Db2RlO1xuICAgIH1cbiAgICBpZiAoZGF0YT8uQ29kZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiBkYXRhLkNvZGU7XG4gICAgfVxuICAgIGlmIChvdXRwdXQuc3RhdHVzQ29kZSA9PSA0MDQpIHtcbiAgICAgICAgcmV0dXJuIFwiTm90Rm91bmRcIjtcbiAgICB9XG59O1xuIiwgImltcG9ydCB7IFhtbE5vZGUsIFhtbFRleHQgfSBmcm9tIFwiQGF3cy1zZGsveG1sLWJ1aWxkZXJcIjtcbmltcG9ydCB7IGRldGVybWluZVRpbWVzdGFtcEZvcm1hdCB9IGZyb20gXCJAc21pdGh5L2NvcmUvcHJvdG9jb2xzXCI7XG5pbXBvcnQgeyBOb3JtYWxpemVkU2NoZW1hIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IGdlbmVyYXRlSWRlbXBvdGVuY3lUb2tlbiwgTnVtZXJpY1ZhbHVlIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zZXJkZVwiO1xuaW1wb3J0IHsgZGF0ZVRvVXRjU3RyaW5nIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgZnJvbUJhc2U2NCwgdG9CYXNlNjQgfSBmcm9tIFwiQHNtaXRoeS91dGlsLWJhc2U2NFwiO1xuaW1wb3J0IHsgU2VyZGVDb250ZXh0Q29uZmlnIH0gZnJvbSBcIi4uL0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dFwiO1xuZXhwb3J0IGNsYXNzIFhtbFNoYXBlU2VyaWFsaXplciBleHRlbmRzIFNlcmRlQ29udGV4dENvbmZpZyB7XG4gICAgc2V0dGluZ3M7XG4gICAgc3RyaW5nQnVmZmVyO1xuICAgIGJ5dGVCdWZmZXI7XG4gICAgYnVmZmVyO1xuICAgIGNvbnN0cnVjdG9yKHNldHRpbmdzKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuc2V0dGluZ3MgPSBzZXR0aW5ncztcbiAgICB9XG4gICAgd3JpdGUoc2NoZW1hLCB2YWx1ZSkge1xuICAgICAgICBjb25zdCBucyA9IE5vcm1hbGl6ZWRTY2hlbWEub2Yoc2NoZW1hKTtcbiAgICAgICAgaWYgKG5zLmlzU3RyaW5nU2NoZW1hKCkgJiYgdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICB0aGlzLnN0cmluZ0J1ZmZlciA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKG5zLmlzQmxvYlNjaGVtYSgpKSB7XG4gICAgICAgICAgICB0aGlzLmJ5dGVCdWZmZXIgPVxuICAgICAgICAgICAgICAgIFwiYnl0ZUxlbmd0aFwiIGluIHZhbHVlXG4gICAgICAgICAgICAgICAgICAgID8gdmFsdWVcbiAgICAgICAgICAgICAgICAgICAgOiAodGhpcy5zZXJkZUNvbnRleHQ/LmJhc2U2NERlY29kZXIgPz8gZnJvbUJhc2U2NCkodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5idWZmZXIgPSB0aGlzLndyaXRlU3RydWN0KG5zLCB2YWx1ZSwgdW5kZWZpbmVkKTtcbiAgICAgICAgICAgIGNvbnN0IHRyYWl0cyA9IG5zLmdldE1lcmdlZFRyYWl0cygpO1xuICAgICAgICAgICAgaWYgKHRyYWl0cy5odHRwUGF5bG9hZCAmJiAhdHJhaXRzLnhtbE5hbWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmJ1ZmZlci53aXRoTmFtZShucy5nZXROYW1lKCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGZsdXNoKCkge1xuICAgICAgICBpZiAodGhpcy5ieXRlQnVmZmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IGJ5dGVzID0gdGhpcy5ieXRlQnVmZmVyO1xuICAgICAgICAgICAgZGVsZXRlIHRoaXMuYnl0ZUJ1ZmZlcjtcbiAgICAgICAgICAgIHJldHVybiBieXRlcztcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5zdHJpbmdCdWZmZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgY29uc3Qgc3RyID0gdGhpcy5zdHJpbmdCdWZmZXI7XG4gICAgICAgICAgICBkZWxldGUgdGhpcy5zdHJpbmdCdWZmZXI7XG4gICAgICAgICAgICByZXR1cm4gc3RyO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGJ1ZmZlciA9IHRoaXMuYnVmZmVyO1xuICAgICAgICBpZiAodGhpcy5zZXR0aW5ncy54bWxOYW1lc3BhY2UpIHtcbiAgICAgICAgICAgIGlmICghYnVmZmVyPy5hdHRyaWJ1dGVzPy5bXCJ4bWxuc1wiXSkge1xuICAgICAgICAgICAgICAgIGJ1ZmZlci5hZGRBdHRyaWJ1dGUoXCJ4bWxuc1wiLCB0aGlzLnNldHRpbmdzLnhtbE5hbWVzcGFjZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZGVsZXRlIHRoaXMuYnVmZmVyO1xuICAgICAgICByZXR1cm4gYnVmZmVyLnRvU3RyaW5nKCk7XG4gICAgfVxuICAgIHdyaXRlU3RydWN0KG5zLCB2YWx1ZSwgcGFyZW50WG1sbnMpIHtcbiAgICAgICAgY29uc3QgdHJhaXRzID0gbnMuZ2V0TWVyZ2VkVHJhaXRzKCk7XG4gICAgICAgIGNvbnN0IG5hbWUgPSBucy5pc01lbWJlclNjaGVtYSgpICYmICF0cmFpdHMuaHR0cFBheWxvYWRcbiAgICAgICAgICAgID8gbnMuZ2V0TWVtYmVyVHJhaXRzKCkueG1sTmFtZSA/PyBucy5nZXRNZW1iZXJOYW1lKClcbiAgICAgICAgICAgIDogdHJhaXRzLnhtbE5hbWUgPz8gbnMuZ2V0TmFtZSgpO1xuICAgICAgICBpZiAoIW5hbWUgfHwgIW5zLmlzU3RydWN0U2NoZW1hKCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSB4bWwgc2VyaWFsaXplciwgY2Fubm90IHdyaXRlIHN0cnVjdCB3aXRoIGVtcHR5IG5hbWUgb3Igbm9uLXN0cnVjdCwgc2NoZW1hPSR7bnMuZ2V0TmFtZSh0cnVlKX0uYCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc3RydWN0WG1sTm9kZSA9IFhtbE5vZGUub2YobmFtZSk7XG4gICAgICAgIGNvbnN0IFt4bWxuc0F0dHIsIHhtbG5zXSA9IHRoaXMuZ2V0WG1sbnNBdHRyaWJ1dGUobnMsIHBhcmVudFhtbG5zKTtcbiAgICAgICAgZm9yIChjb25zdCBbbWVtYmVyTmFtZSwgbWVtYmVyU2NoZW1hXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICBjb25zdCB2YWwgPSB2YWx1ZVttZW1iZXJOYW1lXTtcbiAgICAgICAgICAgIGlmICh2YWwgIT0gbnVsbCB8fCBtZW1iZXJTY2hlbWEuaXNJZGVtcG90ZW5jeVRva2VuKCkpIHtcbiAgICAgICAgICAgICAgICBpZiAobWVtYmVyU2NoZW1hLmdldE1lcmdlZFRyYWl0cygpLnhtbEF0dHJpYnV0ZSkge1xuICAgICAgICAgICAgICAgICAgICBzdHJ1Y3RYbWxOb2RlLmFkZEF0dHJpYnV0ZShtZW1iZXJTY2hlbWEuZ2V0TWVyZ2VkVHJhaXRzKCkueG1sTmFtZSA/PyBtZW1iZXJOYW1lLCB0aGlzLndyaXRlU2ltcGxlKG1lbWJlclNjaGVtYSwgdmFsKSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAobWVtYmVyU2NoZW1hLmlzTGlzdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMud3JpdGVMaXN0KG1lbWJlclNjaGVtYSwgdmFsLCBzdHJ1Y3RYbWxOb2RlLCB4bWxucyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKG1lbWJlclNjaGVtYS5pc01hcFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMud3JpdGVNYXAobWVtYmVyU2NoZW1hLCB2YWwsIHN0cnVjdFhtbE5vZGUsIHhtbG5zKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAobWVtYmVyU2NoZW1hLmlzU3RydWN0U2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgc3RydWN0WG1sTm9kZS5hZGRDaGlsZE5vZGUodGhpcy53cml0ZVN0cnVjdChtZW1iZXJTY2hlbWEsIHZhbCwgeG1sbnMpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1lbWJlck5vZGUgPSBYbWxOb2RlLm9mKG1lbWJlclNjaGVtYS5nZXRNZXJnZWRUcmFpdHMoKS54bWxOYW1lID8/IG1lbWJlclNjaGVtYS5nZXRNZW1iZXJOYW1lKCkpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLndyaXRlU2ltcGxlSW50byhtZW1iZXJTY2hlbWEsIHZhbCwgbWVtYmVyTm9kZSwgeG1sbnMpO1xuICAgICAgICAgICAgICAgICAgICBzdHJ1Y3RYbWxOb2RlLmFkZENoaWxkTm9kZShtZW1iZXJOb2RlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgeyAkdW5rbm93biB9ID0gdmFsdWU7XG4gICAgICAgIGlmICgkdW5rbm93biAmJiBucy5pc1VuaW9uU2NoZW1hKCkgJiYgQXJyYXkuaXNBcnJheSgkdW5rbm93bikgJiYgT2JqZWN0LmtleXModmFsdWUpLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgY29uc3QgW2ssIHZdID0gJHVua25vd247XG4gICAgICAgICAgICBjb25zdCBub2RlID0gWG1sTm9kZS5vZihrKTtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdiAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIFhtbE5vZGUgfHwgdmFsdWUgaW5zdGFuY2VvZiBYbWxUZXh0KSB7XG4gICAgICAgICAgICAgICAgICAgIHN0cnVjdFhtbE5vZGUuYWRkQ2hpbGROb2RlKHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQGF3cy1zZGsgLSAkdW5rbm93biB1bmlvbiBtZW1iZXIgaW4gWE1MIHJlcXVpcmVzIGAgK1xuICAgICAgICAgICAgICAgICAgICAgICAgYHZhbHVlIG9mIHR5cGUgc3RyaW5nLCBAYXdzLXNkay94bWwtYnVpbGRlcjo6WG1sTm9kZSBvciBYbWxUZXh0LmApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMud3JpdGVTaW1wbGVJbnRvKDAsIHYsIG5vZGUsIHhtbG5zKTtcbiAgICAgICAgICAgIHN0cnVjdFhtbE5vZGUuYWRkQ2hpbGROb2RlKG5vZGUpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh4bWxucykge1xuICAgICAgICAgICAgc3RydWN0WG1sTm9kZS5hZGRBdHRyaWJ1dGUoeG1sbnNBdHRyLCB4bWxucyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN0cnVjdFhtbE5vZGU7XG4gICAgfVxuICAgIHdyaXRlTGlzdChsaXN0TWVtYmVyLCBhcnJheSwgY29udGFpbmVyLCBwYXJlbnRYbWxucykge1xuICAgICAgICBpZiAoIWxpc3RNZW1iZXIuaXNNZW1iZXJTY2hlbWEoKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBAYXdzLXNkay9jb3JlL3Byb3RvY29scyAtIHhtbCBzZXJpYWxpemVyLCBjYW5ub3Qgd3JpdGUgbm9uLW1lbWJlciBsaXN0OiAke2xpc3RNZW1iZXIuZ2V0TmFtZSh0cnVlKX1gKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBsaXN0VHJhaXRzID0gbGlzdE1lbWJlci5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgY29uc3QgbGlzdFZhbHVlU2NoZW1hID0gbGlzdE1lbWJlci5nZXRWYWx1ZVNjaGVtYSgpO1xuICAgICAgICBjb25zdCBsaXN0VmFsdWVUcmFpdHMgPSBsaXN0VmFsdWVTY2hlbWEuZ2V0TWVyZ2VkVHJhaXRzKCk7XG4gICAgICAgIGNvbnN0IHNwYXJzZSA9ICEhbGlzdFZhbHVlVHJhaXRzLnNwYXJzZTtcbiAgICAgICAgY29uc3QgZmxhdCA9ICEhbGlzdFRyYWl0cy54bWxGbGF0dGVuZWQ7XG4gICAgICAgIGNvbnN0IFt4bWxuc0F0dHIsIHhtbG5zXSA9IHRoaXMuZ2V0WG1sbnNBdHRyaWJ1dGUobGlzdE1lbWJlciwgcGFyZW50WG1sbnMpO1xuICAgICAgICBjb25zdCB3cml0ZUl0ZW0gPSAoY29udGFpbmVyLCB2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgaWYgKGxpc3RWYWx1ZVNjaGVtYS5pc0xpc3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVMaXN0KGxpc3RWYWx1ZVNjaGVtYSwgQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV0sIGNvbnRhaW5lciwgeG1sbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAobGlzdFZhbHVlU2NoZW1hLmlzTWFwU2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlTWFwKGxpc3RWYWx1ZVNjaGVtYSwgdmFsdWUsIGNvbnRhaW5lciwgeG1sbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAobGlzdFZhbHVlU2NoZW1hLmlzU3RydWN0U2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgPSB0aGlzLndyaXRlU3RydWN0KGxpc3RWYWx1ZVNjaGVtYSwgdmFsdWUsIHhtbG5zKTtcbiAgICAgICAgICAgICAgICBjb250YWluZXIuYWRkQ2hpbGROb2RlKHN0cnVjdC53aXRoTmFtZShmbGF0ID8gbGlzdFRyYWl0cy54bWxOYW1lID8/IGxpc3RNZW1iZXIuZ2V0TWVtYmVyTmFtZSgpIDogbGlzdFZhbHVlVHJhaXRzLnhtbE5hbWUgPz8gXCJtZW1iZXJcIikpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbGlzdEl0ZW1Ob2RlID0gWG1sTm9kZS5vZihmbGF0ID8gbGlzdFRyYWl0cy54bWxOYW1lID8/IGxpc3RNZW1iZXIuZ2V0TWVtYmVyTmFtZSgpIDogbGlzdFZhbHVlVHJhaXRzLnhtbE5hbWUgPz8gXCJtZW1iZXJcIik7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZVNpbXBsZUludG8obGlzdFZhbHVlU2NoZW1hLCB2YWx1ZSwgbGlzdEl0ZW1Ob2RlLCB4bWxucyk7XG4gICAgICAgICAgICAgICAgY29udGFpbmVyLmFkZENoaWxkTm9kZShsaXN0SXRlbU5vZGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBpZiAoZmxhdCkge1xuICAgICAgICAgICAgZm9yIChjb25zdCB2YWx1ZSBvZiBhcnJheSkge1xuICAgICAgICAgICAgICAgIGlmIChzcGFyc2UgfHwgdmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICB3cml0ZUl0ZW0oY29udGFpbmVyLCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgbGlzdE5vZGUgPSBYbWxOb2RlLm9mKGxpc3RUcmFpdHMueG1sTmFtZSA/PyBsaXN0TWVtYmVyLmdldE1lbWJlck5hbWUoKSk7XG4gICAgICAgICAgICBpZiAoeG1sbnMpIHtcbiAgICAgICAgICAgICAgICBsaXN0Tm9kZS5hZGRBdHRyaWJ1dGUoeG1sbnNBdHRyLCB4bWxucyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHZhbHVlIG9mIGFycmF5KSB7XG4gICAgICAgICAgICAgICAgaWYgKHNwYXJzZSB8fCB2YWx1ZSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHdyaXRlSXRlbShsaXN0Tm9kZSwgdmFsdWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnRhaW5lci5hZGRDaGlsZE5vZGUobGlzdE5vZGUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHdyaXRlTWFwKG1hcE1lbWJlciwgbWFwLCBjb250YWluZXIsIHBhcmVudFhtbG5zLCBjb250YWluZXJJc01hcCA9IGZhbHNlKSB7XG4gICAgICAgIGlmICghbWFwTWVtYmVyLmlzTWVtYmVyU2NoZW1hKCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSB4bWwgc2VyaWFsaXplciwgY2Fubm90IHdyaXRlIG5vbi1tZW1iZXIgbWFwOiAke21hcE1lbWJlci5nZXROYW1lKHRydWUpfWApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG1hcFRyYWl0cyA9IG1hcE1lbWJlci5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgY29uc3QgbWFwS2V5U2NoZW1hID0gbWFwTWVtYmVyLmdldEtleVNjaGVtYSgpO1xuICAgICAgICBjb25zdCBtYXBLZXlUcmFpdHMgPSBtYXBLZXlTY2hlbWEuZ2V0TWVyZ2VkVHJhaXRzKCk7XG4gICAgICAgIGNvbnN0IGtleVRhZyA9IG1hcEtleVRyYWl0cy54bWxOYW1lID8/IFwia2V5XCI7XG4gICAgICAgIGNvbnN0IG1hcFZhbHVlU2NoZW1hID0gbWFwTWVtYmVyLmdldFZhbHVlU2NoZW1hKCk7XG4gICAgICAgIGNvbnN0IG1hcFZhbHVlVHJhaXRzID0gbWFwVmFsdWVTY2hlbWEuZ2V0TWVyZ2VkVHJhaXRzKCk7XG4gICAgICAgIGNvbnN0IHZhbHVlVGFnID0gbWFwVmFsdWVUcmFpdHMueG1sTmFtZSA/PyBcInZhbHVlXCI7XG4gICAgICAgIGNvbnN0IHNwYXJzZSA9ICEhbWFwVmFsdWVUcmFpdHMuc3BhcnNlO1xuICAgICAgICBjb25zdCBmbGF0ID0gISFtYXBUcmFpdHMueG1sRmxhdHRlbmVkO1xuICAgICAgICBjb25zdCBbeG1sbnNBdHRyLCB4bWxuc10gPSB0aGlzLmdldFhtbG5zQXR0cmlidXRlKG1hcE1lbWJlciwgcGFyZW50WG1sbnMpO1xuICAgICAgICBjb25zdCBhZGRLZXlWYWx1ZSA9IChlbnRyeSwga2V5LCB2YWwpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGtleU5vZGUgPSBYbWxOb2RlLm9mKGtleVRhZywga2V5KTtcbiAgICAgICAgICAgIGNvbnN0IFtrZXlYbWxuc0F0dHIsIGtleVhtbG5zXSA9IHRoaXMuZ2V0WG1sbnNBdHRyaWJ1dGUobWFwS2V5U2NoZW1hLCB4bWxucyk7XG4gICAgICAgICAgICBpZiAoa2V5WG1sbnMpIHtcbiAgICAgICAgICAgICAgICBrZXlOb2RlLmFkZEF0dHJpYnV0ZShrZXlYbWxuc0F0dHIsIGtleVhtbG5zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVudHJ5LmFkZENoaWxkTm9kZShrZXlOb2RlKTtcbiAgICAgICAgICAgIGxldCB2YWx1ZU5vZGUgPSBYbWxOb2RlLm9mKHZhbHVlVGFnKTtcbiAgICAgICAgICAgIGlmIChtYXBWYWx1ZVNjaGVtYS5pc0xpc3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVMaXN0KG1hcFZhbHVlU2NoZW1hLCB2YWwsIHZhbHVlTm9kZSwgeG1sbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAobWFwVmFsdWVTY2hlbWEuaXNNYXBTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVNYXAobWFwVmFsdWVTY2hlbWEsIHZhbCwgdmFsdWVOb2RlLCB4bWxucywgdHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChtYXBWYWx1ZVNjaGVtYS5pc1N0cnVjdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgdmFsdWVOb2RlID0gdGhpcy53cml0ZVN0cnVjdChtYXBWYWx1ZVNjaGVtYSwgdmFsLCB4bWxucyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlU2ltcGxlSW50byhtYXBWYWx1ZVNjaGVtYSwgdmFsLCB2YWx1ZU5vZGUsIHhtbG5zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVudHJ5LmFkZENoaWxkTm9kZSh2YWx1ZU5vZGUpO1xuICAgICAgICB9O1xuICAgICAgICBpZiAoZmxhdCkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWxdIG9mIE9iamVjdC5lbnRyaWVzKG1hcCkpIHtcbiAgICAgICAgICAgICAgICBpZiAoc3BhcnNlIHx8IHZhbCAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVudHJ5ID0gWG1sTm9kZS5vZihtYXBUcmFpdHMueG1sTmFtZSA/PyBtYXBNZW1iZXIuZ2V0TWVtYmVyTmFtZSgpKTtcbiAgICAgICAgICAgICAgICAgICAgYWRkS2V5VmFsdWUoZW50cnksIGtleSwgdmFsKTtcbiAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyLmFkZENoaWxkTm9kZShlbnRyeSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgbGV0IG1hcE5vZGU7XG4gICAgICAgICAgICBpZiAoIWNvbnRhaW5lcklzTWFwKSB7XG4gICAgICAgICAgICAgICAgbWFwTm9kZSA9IFhtbE5vZGUub2YobWFwVHJhaXRzLnhtbE5hbWUgPz8gbWFwTWVtYmVyLmdldE1lbWJlck5hbWUoKSk7XG4gICAgICAgICAgICAgICAgaWYgKHhtbG5zKSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcE5vZGUuYWRkQXR0cmlidXRlKHhtbG5zQXR0ciwgeG1sbnMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb250YWluZXIuYWRkQ2hpbGROb2RlKG1hcE5vZGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWxdIG9mIE9iamVjdC5lbnRyaWVzKG1hcCkpIHtcbiAgICAgICAgICAgICAgICBpZiAoc3BhcnNlIHx8IHZhbCAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVudHJ5ID0gWG1sTm9kZS5vZihcImVudHJ5XCIpO1xuICAgICAgICAgICAgICAgICAgICBhZGRLZXlWYWx1ZShlbnRyeSwga2V5LCB2YWwpO1xuICAgICAgICAgICAgICAgICAgICAoY29udGFpbmVySXNNYXAgPyBjb250YWluZXIgOiBtYXBOb2RlKS5hZGRDaGlsZE5vZGUoZW50cnkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICB3cml0ZVNpbXBsZShfc2NoZW1hLCB2YWx1ZSkge1xuICAgICAgICBpZiAobnVsbCA9PT0gdmFsdWUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkBhd3Mtc2RrL2NvcmUvcHJvdG9jb2xzIC0gKFhNTCBzZXJpYWxpemVyKSBjYW5ub3Qgd3JpdGUgbnVsbCB2YWx1ZS5cIik7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbnMgPSBOb3JtYWxpemVkU2NoZW1hLm9mKF9zY2hlbWEpO1xuICAgICAgICBsZXQgbm9kZUNvbnRlbnRzID0gbnVsbDtcbiAgICAgICAgaWYgKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgaWYgKG5zLmlzQmxvYlNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgbm9kZUNvbnRlbnRzID0gKHRoaXMuc2VyZGVDb250ZXh0Py5iYXNlNjRFbmNvZGVyID8/IHRvQmFzZTY0KSh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChucy5pc1RpbWVzdGFtcFNjaGVtYSgpICYmIHZhbHVlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZvcm1hdCA9IGRldGVybWluZVRpbWVzdGFtcEZvcm1hdChucywgdGhpcy5zZXR0aW5ncyk7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChmb3JtYXQpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgICAgICAgICAgICAgbm9kZUNvbnRlbnRzID0gdmFsdWUudG9JU09TdHJpbmcoKS5yZXBsYWNlKFwiLjAwMFpcIiwgXCJaXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vZGVDb250ZW50cyA9IGRhdGVUb1V0Y1N0cmluZyh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA3OlxuICAgICAgICAgICAgICAgICAgICAgICAgbm9kZUNvbnRlbnRzID0gU3RyaW5nKHZhbHVlLmdldFRpbWUoKSAvIDEwMDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oXCJNaXNzaW5nIHRpbWVzdGFtcCBmb3JtYXQsIHVzaW5nIGh0dHAgZGF0ZVwiLCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBub2RlQ29udGVudHMgPSBkYXRlVG9VdGNTdHJpbmcodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAobnMuaXNCaWdEZWNpbWFsU2NoZW1hKCkgJiYgdmFsdWUpIHtcbiAgICAgICAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBOdW1lcmljVmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlLnN0cmluZztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChucy5pc01hcFNjaGVtYSgpIHx8IG5zLmlzTGlzdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSB4bWwgc2VyaWFsaXplciwgY2Fubm90IGNhbGwgX3dyaXRlKCkgb24gTGlzdC9NYXAgc2NoZW1hLCBjYWxsIHdyaXRlTGlzdCBvciB3cml0ZU1hcCgpIGluc3RlYWQuXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBAYXdzLXNkay9jb3JlL3Byb3RvY29scyAtIHhtbCBzZXJpYWxpemVyLCB1bmhhbmRsZWQgc2NoZW1hIHR5cGUgZm9yIG9iamVjdCB2YWx1ZSBhbmQgc2NoZW1hOiAke25zLmdldE5hbWUodHJ1ZSl9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzQm9vbGVhblNjaGVtYSgpIHx8IG5zLmlzTnVtZXJpY1NjaGVtYSgpIHx8IG5zLmlzQmlnSW50ZWdlclNjaGVtYSgpIHx8IG5zLmlzQmlnRGVjaW1hbFNjaGVtYSgpKSB7XG4gICAgICAgICAgICBub2RlQ29udGVudHMgPSBTdHJpbmcodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChucy5pc1N0cmluZ1NjaGVtYSgpKSB7XG4gICAgICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCAmJiBucy5pc0lkZW1wb3RlbmN5VG9rZW4oKSkge1xuICAgICAgICAgICAgICAgIG5vZGVDb250ZW50cyA9IGdlbmVyYXRlSWRlbXBvdGVuY3lUb2tlbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgbm9kZUNvbnRlbnRzID0gU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAobm9kZUNvbnRlbnRzID09PSBudWxsKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuaGFuZGxlZCBzY2hlbWEtdmFsdWUgcGFpciAke25zLmdldE5hbWUodHJ1ZSl9PSR7dmFsdWV9YCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5vZGVDb250ZW50cztcbiAgICB9XG4gICAgd3JpdGVTaW1wbGVJbnRvKF9zY2hlbWEsIHZhbHVlLCBpbnRvLCBwYXJlbnRYbWxucykge1xuICAgICAgICBjb25zdCBub2RlQ29udGVudHMgPSB0aGlzLndyaXRlU2ltcGxlKF9zY2hlbWEsIHZhbHVlKTtcbiAgICAgICAgY29uc3QgbnMgPSBOb3JtYWxpemVkU2NoZW1hLm9mKF9zY2hlbWEpO1xuICAgICAgICBjb25zdCBjb250ZW50ID0gbmV3IFhtbFRleHQobm9kZUNvbnRlbnRzKTtcbiAgICAgICAgY29uc3QgW3htbG5zQXR0ciwgeG1sbnNdID0gdGhpcy5nZXRYbWxuc0F0dHJpYnV0ZShucywgcGFyZW50WG1sbnMpO1xuICAgICAgICBpZiAoeG1sbnMpIHtcbiAgICAgICAgICAgIGludG8uYWRkQXR0cmlidXRlKHhtbG5zQXR0ciwgeG1sbnMpO1xuICAgICAgICB9XG4gICAgICAgIGludG8uYWRkQ2hpbGROb2RlKGNvbnRlbnQpO1xuICAgIH1cbiAgICBnZXRYbWxuc0F0dHJpYnV0ZShucywgcGFyZW50WG1sbnMpIHtcbiAgICAgICAgY29uc3QgdHJhaXRzID0gbnMuZ2V0TWVyZ2VkVHJhaXRzKCk7XG4gICAgICAgIGNvbnN0IFtwcmVmaXgsIHhtbG5zXSA9IHRyYWl0cy54bWxOYW1lc3BhY2UgPz8gW107XG4gICAgICAgIGlmICh4bWxucyAmJiB4bWxucyAhPT0gcGFyZW50WG1sbnMpIHtcbiAgICAgICAgICAgIHJldHVybiBbcHJlZml4ID8gYHhtbG5zOiR7cHJlZml4fWAgOiBcInhtbG5zXCIsIHhtbG5zXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gW3ZvaWQgMCwgdm9pZCAwXTtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgU2VyZGVDb250ZXh0Q29uZmlnIH0gZnJvbSBcIi4uL0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dFwiO1xuaW1wb3J0IHsgWG1sU2hhcGVEZXNlcmlhbGl6ZXIgfSBmcm9tIFwiLi9YbWxTaGFwZURlc2VyaWFsaXplclwiO1xuaW1wb3J0IHsgWG1sU2hhcGVTZXJpYWxpemVyIH0gZnJvbSBcIi4vWG1sU2hhcGVTZXJpYWxpemVyXCI7XG5leHBvcnQgY2xhc3MgWG1sQ29kZWMgZXh0ZW5kcyBTZXJkZUNvbnRleHRDb25maWcge1xuICAgIHNldHRpbmdzO1xuICAgIGNvbnN0cnVjdG9yKHNldHRpbmdzKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuc2V0dGluZ3MgPSBzZXR0aW5ncztcbiAgICB9XG4gICAgY3JlYXRlU2VyaWFsaXplcigpIHtcbiAgICAgICAgY29uc3Qgc2VyaWFsaXplciA9IG5ldyBYbWxTaGFwZVNlcmlhbGl6ZXIodGhpcy5zZXR0aW5ncyk7XG4gICAgICAgIHNlcmlhbGl6ZXIuc2V0U2VyZGVDb250ZXh0KHRoaXMuc2VyZGVDb250ZXh0KTtcbiAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZXI7XG4gICAgfVxuICAgIGNyZWF0ZURlc2VyaWFsaXplcigpIHtcbiAgICAgICAgY29uc3QgZGVzZXJpYWxpemVyID0gbmV3IFhtbFNoYXBlRGVzZXJpYWxpemVyKHRoaXMuc2V0dGluZ3MpO1xuICAgICAgICBkZXNlcmlhbGl6ZXIuc2V0U2VyZGVDb250ZXh0KHRoaXMuc2VyZGVDb250ZXh0KTtcbiAgICAgICAgcmV0dXJuIGRlc2VyaWFsaXplcjtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgSHR0cEJpbmRpbmdQcm90b2NvbCwgSHR0cEludGVyY2VwdGluZ1NoYXBlRGVzZXJpYWxpemVyLCBIdHRwSW50ZXJjZXB0aW5nU2hhcGVTZXJpYWxpemVyLCB9IGZyb20gXCJAc21pdGh5L2NvcmUvcHJvdG9jb2xzXCI7XG5pbXBvcnQgeyBOb3JtYWxpemVkU2NoZW1hLCBUeXBlUmVnaXN0cnkgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3NjaGVtYVwiO1xuaW1wb3J0IHsgUHJvdG9jb2xMaWIgfSBmcm9tIFwiLi4vUHJvdG9jb2xMaWJcIjtcbmltcG9ydCB7IGxvYWRSZXN0WG1sRXJyb3JDb2RlIH0gZnJvbSBcIi4vcGFyc2VYbWxCb2R5XCI7XG5pbXBvcnQgeyBYbWxDb2RlYyB9IGZyb20gXCIuL1htbENvZGVjXCI7XG5leHBvcnQgY2xhc3MgQXdzUmVzdFhtbFByb3RvY29sIGV4dGVuZHMgSHR0cEJpbmRpbmdQcm90b2NvbCB7XG4gICAgY29kZWM7XG4gICAgc2VyaWFsaXplcjtcbiAgICBkZXNlcmlhbGl6ZXI7XG4gICAgbWl4aW4gPSBuZXcgUHJvdG9jb2xMaWIoKTtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgICAgICBjb25zdCBzZXR0aW5ncyA9IHtcbiAgICAgICAgICAgIHRpbWVzdGFtcEZvcm1hdDoge1xuICAgICAgICAgICAgICAgIHVzZVRyYWl0OiB0cnVlLFxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IDUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaHR0cEJpbmRpbmdzOiB0cnVlLFxuICAgICAgICAgICAgeG1sTmFtZXNwYWNlOiBvcHRpb25zLnhtbE5hbWVzcGFjZSxcbiAgICAgICAgICAgIHNlcnZpY2VOYW1lc3BhY2U6IG9wdGlvbnMuZGVmYXVsdE5hbWVzcGFjZSxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5jb2RlYyA9IG5ldyBYbWxDb2RlYyhzZXR0aW5ncyk7XG4gICAgICAgIHRoaXMuc2VyaWFsaXplciA9IG5ldyBIdHRwSW50ZXJjZXB0aW5nU2hhcGVTZXJpYWxpemVyKHRoaXMuY29kZWMuY3JlYXRlU2VyaWFsaXplcigpLCBzZXR0aW5ncyk7XG4gICAgICAgIHRoaXMuZGVzZXJpYWxpemVyID0gbmV3IEh0dHBJbnRlcmNlcHRpbmdTaGFwZURlc2VyaWFsaXplcih0aGlzLmNvZGVjLmNyZWF0ZURlc2VyaWFsaXplcigpLCBzZXR0aW5ncyk7XG4gICAgfVxuICAgIGdldFBheWxvYWRDb2RlYygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29kZWM7XG4gICAgfVxuICAgIGdldFNoYXBlSWQoKSB7XG4gICAgICAgIHJldHVybiBcImF3cy5wcm90b2NvbHMjcmVzdFhtbFwiO1xuICAgIH1cbiAgICBhc3luYyBzZXJpYWxpemVSZXF1ZXN0KG9wZXJhdGlvblNjaGVtYSwgaW5wdXQsIGNvbnRleHQpIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IGF3YWl0IHN1cGVyLnNlcmlhbGl6ZVJlcXVlc3Qob3BlcmF0aW9uU2NoZW1hLCBpbnB1dCwgY29udGV4dCk7XG4gICAgICAgIGNvbnN0IGlucHV0U2NoZW1hID0gTm9ybWFsaXplZFNjaGVtYS5vZihvcGVyYXRpb25TY2hlbWEuaW5wdXQpO1xuICAgICAgICBpZiAoIXJlcXVlc3QuaGVhZGVyc1tcImNvbnRlbnQtdHlwZVwiXSkge1xuICAgICAgICAgICAgY29uc3QgY29udGVudFR5cGUgPSB0aGlzLm1peGluLnJlc29sdmVSZXN0Q29udGVudFR5cGUodGhpcy5nZXREZWZhdWx0Q29udGVudFR5cGUoKSwgaW5wdXRTY2hlbWEpO1xuICAgICAgICAgICAgaWYgKGNvbnRlbnRUeXBlKSB7XG4gICAgICAgICAgICAgICAgcmVxdWVzdC5oZWFkZXJzW1wiY29udGVudC10eXBlXCJdID0gY29udGVudFR5cGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiByZXF1ZXN0LmJvZHkgPT09IFwic3RyaW5nXCIgJiZcbiAgICAgICAgICAgIHJlcXVlc3QuaGVhZGVyc1tcImNvbnRlbnQtdHlwZVwiXSA9PT0gdGhpcy5nZXREZWZhdWx0Q29udGVudFR5cGUoKSAmJlxuICAgICAgICAgICAgIXJlcXVlc3QuYm9keS5zdGFydHNXaXRoKFwiPD94bWwgXCIpICYmXG4gICAgICAgICAgICAhdGhpcy5oYXNVbnN0cnVjdHVyZWRQYXlsb2FkQmluZGluZyhpbnB1dFNjaGVtYSkpIHtcbiAgICAgICAgICAgIHJlcXVlc3QuYm9keSA9ICc8P3htbCB2ZXJzaW9uPVwiMS4wXCIgZW5jb2Rpbmc9XCJVVEYtOFwiPz4nICsgcmVxdWVzdC5ib2R5O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXF1ZXN0O1xuICAgIH1cbiAgICBhc3luYyBkZXNlcmlhbGl6ZVJlc3BvbnNlKG9wZXJhdGlvblNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UpIHtcbiAgICAgICAgcmV0dXJuIHN1cGVyLmRlc2VyaWFsaXplUmVzcG9uc2Uob3BlcmF0aW9uU2NoZW1hLCBjb250ZXh0LCByZXNwb25zZSk7XG4gICAgfVxuICAgIGFzeW5jIGhhbmRsZUVycm9yKG9wZXJhdGlvblNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UsIGRhdGFPYmplY3QsIG1ldGFkYXRhKSB7XG4gICAgICAgIGNvbnN0IGVycm9ySWRlbnRpZmllciA9IGxvYWRSZXN0WG1sRXJyb3JDb2RlKHJlc3BvbnNlLCBkYXRhT2JqZWN0KSA/PyBcIlVua25vd25cIjtcbiAgICAgICAgaWYgKGRhdGFPYmplY3QuRXJyb3IgJiYgdHlwZW9mIGRhdGFPYmplY3QuRXJyb3IgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGRhdGFPYmplY3QuRXJyb3IpKSB7XG4gICAgICAgICAgICAgICAgZGF0YU9iamVjdFtrZXldID0gZGF0YU9iamVjdC5FcnJvcltrZXldO1xuICAgICAgICAgICAgICAgIGlmIChrZXkudG9Mb3dlckNhc2UoKSA9PT0gXCJtZXNzYWdlXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgZGF0YU9iamVjdC5tZXNzYWdlID0gZGF0YU9iamVjdC5FcnJvcltrZXldO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YU9iamVjdC5SZXF1ZXN0SWQgJiYgIW1ldGFkYXRhLnJlcXVlc3RJZCkge1xuICAgICAgICAgICAgbWV0YWRhdGEucmVxdWVzdElkID0gZGF0YU9iamVjdC5SZXF1ZXN0SWQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgeyBlcnJvclNjaGVtYSwgZXJyb3JNZXRhZGF0YSB9ID0gYXdhaXQgdGhpcy5taXhpbi5nZXRFcnJvclNjaGVtYU9yVGhyb3dCYXNlRXhjZXB0aW9uKGVycm9ySWRlbnRpZmllciwgdGhpcy5vcHRpb25zLmRlZmF1bHROYW1lc3BhY2UsIHJlc3BvbnNlLCBkYXRhT2JqZWN0LCBtZXRhZGF0YSk7XG4gICAgICAgIGNvbnN0IG5zID0gTm9ybWFsaXplZFNjaGVtYS5vZihlcnJvclNjaGVtYSk7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBkYXRhT2JqZWN0LkVycm9yPy5tZXNzYWdlID8/IGRhdGFPYmplY3QuRXJyb3I/Lk1lc3NhZ2UgPz8gZGF0YU9iamVjdC5tZXNzYWdlID8/IGRhdGFPYmplY3QuTWVzc2FnZSA/PyBcIlVua25vd25cIjtcbiAgICAgICAgY29uc3QgRXJyb3JDdG9yID0gVHlwZVJlZ2lzdHJ5LmZvcihlcnJvclNjaGVtYVsxXSkuZ2V0RXJyb3JDdG9yKGVycm9yU2NoZW1hKSA/PyBFcnJvcjtcbiAgICAgICAgY29uc3QgZXhjZXB0aW9uID0gbmV3IEVycm9yQ3RvcihtZXNzYWdlKTtcbiAgICAgICAgYXdhaXQgdGhpcy5kZXNlcmlhbGl6ZUh0dHBNZXNzYWdlKGVycm9yU2NoZW1hLCBjb250ZXh0LCByZXNwb25zZSwgZGF0YU9iamVjdCk7XG4gICAgICAgIGNvbnN0IG91dHB1dCA9IHt9O1xuICAgICAgICBmb3IgKGNvbnN0IFtuYW1lLCBtZW1iZXJdIG9mIG5zLnN0cnVjdEl0ZXJhdG9yKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IG1lbWJlci5nZXRNZXJnZWRUcmFpdHMoKS54bWxOYW1lID8/IG5hbWU7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGRhdGFPYmplY3QuRXJyb3I/Llt0YXJnZXRdID8/IGRhdGFPYmplY3RbdGFyZ2V0XTtcbiAgICAgICAgICAgIG91dHB1dFtuYW1lXSA9IHRoaXMuY29kZWMuY3JlYXRlRGVzZXJpYWxpemVyKCkucmVhZFNjaGVtYShtZW1iZXIsIHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyB0aGlzLm1peGluLmRlY29yYXRlU2VydmljZUV4Y2VwdGlvbihPYmplY3QuYXNzaWduKGV4Y2VwdGlvbiwgZXJyb3JNZXRhZGF0YSwge1xuICAgICAgICAgICAgJGZhdWx0OiBucy5nZXRNZXJnZWRUcmFpdHMoKS5lcnJvcixcbiAgICAgICAgICAgIG1lc3NhZ2UsXG4gICAgICAgIH0sIG91dHB1dCksIGRhdGFPYmplY3QpO1xuICAgIH1cbiAgICBnZXREZWZhdWx0Q29udGVudFR5cGUoKSB7XG4gICAgICAgIHJldHVybiBcImFwcGxpY2F0aW9uL3htbFwiO1xuICAgIH1cbiAgICBoYXNVbnN0cnVjdHVyZWRQYXlsb2FkQmluZGluZyhucykge1xuICAgICAgICBmb3IgKGNvbnN0IFssIG1lbWJlcl0gb2YgbnMuc3RydWN0SXRlcmF0b3IoKSkge1xuICAgICAgICAgICAgaWYgKG1lbWJlci5nZXRNZXJnZWRUcmFpdHMoKS5odHRwUGF5bG9hZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAhKG1lbWJlci5pc1N0cnVjdFNjaGVtYSgpIHx8IG1lbWJlci5pc01hcFNjaGVtYSgpIHx8IG1lbWJlci5pc0xpc3RTY2hlbWEoKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cbiIsICJleHBvcnQgKiBmcm9tIFwiLi9jYm9yL0F3c1NtaXRoeVJwY1YyQ2JvclByb3RvY29sXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb2VyY2luZy1zZXJpYWxpemVyc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vanNvbi9Bd3NKc29uMV8wUHJvdG9jb2xcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2pzb24vQXdzSnNvbjFfMVByb3RvY29sXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9qc29uL0F3c0pzb25ScGNQcm90b2NvbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vanNvbi9Bd3NSZXN0SnNvblByb3RvY29sXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9qc29uL0pzb25Db2RlY1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vanNvbi9Kc29uU2hhcGVEZXNlcmlhbGl6ZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2pzb24vSnNvblNoYXBlU2VyaWFsaXplclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vanNvbi9hd3NFeHBlY3RVbmlvblwiO1xuZXhwb3J0ICogZnJvbSBcIi4vanNvbi9wYXJzZUpzb25Cb2R5XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9xdWVyeS9Bd3NFYzJRdWVyeVByb3RvY29sXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9xdWVyeS9Bd3NRdWVyeVByb3RvY29sXCI7XG5leHBvcnQgKiBmcm9tIFwiLi94bWwvQXdzUmVzdFhtbFByb3RvY29sXCI7XG5leHBvcnQgKiBmcm9tIFwiLi94bWwvWG1sQ29kZWNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3htbC9YbWxTaGFwZURlc2VyaWFsaXplclwiO1xuZXhwb3J0ICogZnJvbSBcIi4veG1sL1htbFNoYXBlU2VyaWFsaXplclwiO1xuZXhwb3J0ICogZnJvbSBcIi4veG1sL3BhcnNlWG1sQm9keVwiO1xuIiwgIid1c2Ugc3RyaWN0JztcblxudmFyIHByb3RvY29scyA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL2NvcmUvcHJvdG9jb2xzJyk7XG52YXIgc2NoZW1hID0gcmVxdWlyZSgnQHNtaXRoeS9jb3JlL3NjaGVtYScpO1xudmFyIHNtaXRoeUNsaWVudCA9IHJlcXVpcmUoJ0BzbWl0aHkvc21pdGh5LWNsaWVudCcpO1xudmFyIHV0aWxCYXNlNjQgPSByZXF1aXJlKCdAc21pdGh5L3V0aWwtYmFzZTY0Jyk7XG5cbmNsYXNzIER5bmFtb0RCSnNvbkNvZGVjIGV4dGVuZHMgcHJvdG9jb2xzLkpzb25Db2RlYyB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIHRpbWVzdGFtcEZvcm1hdDoge1xuICAgICAgICAgICAgICAgIHVzZVRyYWl0OiB0cnVlLFxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IDcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAganNvbk5hbWU6IGZhbHNlLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgY3JlYXRlU2VyaWFsaXplcigpIHtcbiAgICAgICAgY29uc3Qgc2VyaWFsaXplciA9IG5ldyBEeW5hbW9EQkpzb25TaGFwZVNlcmlhbGl6ZXIodGhpcy5zZXR0aW5ncyk7XG4gICAgICAgIHNlcmlhbGl6ZXIuc2V0U2VyZGVDb250ZXh0KHRoaXMuc2VyZGVDb250ZXh0KTtcbiAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZXI7XG4gICAgfVxuICAgIGNyZWF0ZURlc2VyaWFsaXplcigpIHtcbiAgICAgICAgY29uc3QgZGVzZXJpYWxpemVyID0gbmV3IER5bmFtb0RCSnNvblNoYXBlRGVzZXJpYWxpemVyKHRoaXMuc2V0dGluZ3MpO1xuICAgICAgICBkZXNlcmlhbGl6ZXIuc2V0U2VyZGVDb250ZXh0KHRoaXMuc2VyZGVDb250ZXh0KTtcbiAgICAgICAgcmV0dXJuIGRlc2VyaWFsaXplcjtcbiAgICB9XG59XG5jb25zdCBBVFRSSUJVVEVfVkFMVUUgPSBcImNvbS5hbWF6b25hd3MuZHluYW1vZGIjQXR0cmlidXRlVmFsdWVcIjtcbmNsYXNzIER5bmFtb0RCSnNvblNoYXBlU2VyaWFsaXplciBleHRlbmRzIHByb3RvY29scy5Kc29uU2hhcGVTZXJpYWxpemVyIHtcbiAgICBfd3JpdGUoc2NoZW1hJDEsIHZhbHVlLCBjb250YWluZXIpIHtcbiAgICAgICAgY29uc3QgbnMgPSBzY2hlbWEuTm9ybWFsaXplZFNjaGVtYS5vZihzY2hlbWEkMSk7XG4gICAgICAgIGlmIChucy5pc1N0cnVjdFNjaGVtYSgpICYmIG5zLmdldE5hbWUodHJ1ZSkgPT09IEFUVFJJQlVURV9WQUxVRSkge1xuICAgICAgICAgICAgaWYgKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgICAgIGNvbnN0IGF2ID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3V0ID0gc21pdGh5Q2xpZW50Ll9qc29uKGF2KTtcbiAgICAgICAgICAgICAgICBjb25zdCBiYXNlNjRFbmNvZGUgPSB0aGlzLnNlcmRlQ29udGV4dD8uYmFzZTY0RW5jb2RlciA/PyB1dGlsQmFzZTY0LnRvQmFzZTY0O1xuICAgICAgICAgICAgICAgIGlmIChhdi5CIGluc3RhbmNlb2YgVWludDhBcnJheSkge1xuICAgICAgICAgICAgICAgICAgICBvdXQuQiA9IGJhc2U2NEVuY29kZShhdi5CKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoYXYuQlMpKSB7XG4gICAgICAgICAgICAgICAgICAgIG91dC5CUyA9IGF2LkJTLm1hcChiYXNlNjRFbmNvZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShhdi5MKSkge1xuICAgICAgICAgICAgICAgICAgICBvdXQuTCA9IGF2LkwuZmlsdGVyKCh2KSA9PiB2ICE9IG51bGwpLm1hcCgodikgPT4gdGhpcy5fd3JpdGUobnMsIHYsIGNvbnRhaW5lcikpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoYXYuTSAmJiB0eXBlb2YgYXYuTSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgICAgICAgICBvdXQuTSA9IHt9O1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IFtrLCB2XSBvZiBPYmplY3QuZW50cmllcyhhdi5NKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHYgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dC5NW2tdID0gdGhpcy5fd3JpdGUobnMsIHYsIGNvbnRhaW5lcik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIG91dDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc3VwZXIuX3dyaXRlKG5zLCB2YWx1ZSwgY29udGFpbmVyKTtcbiAgICB9XG59XG5jbGFzcyBEeW5hbW9EQkpzb25TaGFwZURlc2VyaWFsaXplciBleHRlbmRzIHByb3RvY29scy5Kc29uU2hhcGVEZXNlcmlhbGl6ZXIge1xuICAgIF9yZWFkKHNjaGVtYSQxLCB2YWx1ZSkge1xuICAgICAgICBjb25zdCBucyA9IHNjaGVtYS5Ob3JtYWxpemVkU2NoZW1hLm9mKHNjaGVtYSQxKTtcbiAgICAgICAgaWYgKG5zLmlzU3RydWN0U2NoZW1hKCkgJiYgbnMuZ2V0TmFtZSh0cnVlKSA9PT0gQVRUUklCVVRFX1ZBTFVFKSB7XG4gICAgICAgICAgICBpZiAodmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYXYgPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICBjb25zdCBvdXQgPSBzbWl0aHlDbGllbnQuX2pzb24oYXYpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGJhc2U2NERlY29kZXIgPSB0aGlzLnNlcmRlQ29udGV4dD8uYmFzZTY0RGVjb2RlciA/PyB1dGlsQmFzZTY0LmZyb21CYXNlNjQ7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBhdi5CID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAgICAgICAgIG91dC5CID0gYmFzZTY0RGVjb2Rlcihhdi5CKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoYXYuQlMpKSB7XG4gICAgICAgICAgICAgICAgICAgIG91dC5CUyA9IGF2LkJTLm1hcChiYXNlNjREZWNvZGVyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoYXYuTCkpIHtcbiAgICAgICAgICAgICAgICAgICAgb3V0LkwgPSBhdi5MLm1hcCgodikgPT4gdGhpcy5fcmVhZChucywgdikpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoYXYuTSAmJiB0eXBlb2YgYXYuTSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgICAgICAgICBvdXQuTSA9IHt9O1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IFtrLCB2XSBvZiBPYmplY3QuZW50cmllcyhhdi5NKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3V0Lk1ba10gPSB0aGlzLl9yZWFkKG5zLCB2KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gb3V0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzdXBlci5fcmVhZChucywgdmFsdWUpO1xuICAgIH1cbn1cblxuZXhwb3J0cy5EeW5hbW9EQkpzb25Db2RlYyA9IER5bmFtb0RCSnNvbkNvZGVjO1xuIiwgIid1c2Ugc3RyaWN0JztcblxudmFyIHV0aWxFbmRwb2ludHMgPSByZXF1aXJlKCdAc21pdGh5L3V0aWwtZW5kcG9pbnRzJyk7XG52YXIgdXJsUGFyc2VyID0gcmVxdWlyZSgnQHNtaXRoeS91cmwtcGFyc2VyJyk7XG5cbmNvbnN0IGlzVmlydHVhbEhvc3RhYmxlUzNCdWNrZXQgPSAodmFsdWUsIGFsbG93U3ViRG9tYWlucyA9IGZhbHNlKSA9PiB7XG4gICAgaWYgKGFsbG93U3ViRG9tYWlucykge1xuICAgICAgICBmb3IgKGNvbnN0IGxhYmVsIG9mIHZhbHVlLnNwbGl0KFwiLlwiKSkge1xuICAgICAgICAgICAgaWYgKCFpc1ZpcnR1YWxIb3N0YWJsZVMzQnVja2V0KGxhYmVsKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKCF1dGlsRW5kcG9pbnRzLmlzVmFsaWRIb3N0TGFiZWwodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKHZhbHVlLmxlbmd0aCA8IDMgfHwgdmFsdWUubGVuZ3RoID4gNjMpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAodmFsdWUgIT09IHZhbHVlLnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAodXRpbEVuZHBvaW50cy5pc0lwQWRkcmVzcyh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbn07XG5cbmNvbnN0IEFSTl9ERUxJTUlURVIgPSBcIjpcIjtcbmNvbnN0IFJFU09VUkNFX0RFTElNSVRFUiA9IFwiL1wiO1xuY29uc3QgcGFyc2VBcm4gPSAodmFsdWUpID0+IHtcbiAgICBjb25zdCBzZWdtZW50cyA9IHZhbHVlLnNwbGl0KEFSTl9ERUxJTUlURVIpO1xuICAgIGlmIChzZWdtZW50cy5sZW5ndGggPCA2KVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICBjb25zdCBbYXJuLCBwYXJ0aXRpb24sIHNlcnZpY2UsIHJlZ2lvbiwgYWNjb3VudElkLCAuLi5yZXNvdXJjZVBhdGhdID0gc2VnbWVudHM7XG4gICAgaWYgKGFybiAhPT0gXCJhcm5cIiB8fCBwYXJ0aXRpb24gPT09IFwiXCIgfHwgc2VydmljZSA9PT0gXCJcIiB8fCByZXNvdXJjZVBhdGguam9pbihBUk5fREVMSU1JVEVSKSA9PT0gXCJcIilcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgcmVzb3VyY2VJZCA9IHJlc291cmNlUGF0aC5tYXAoKHJlc291cmNlKSA9PiByZXNvdXJjZS5zcGxpdChSRVNPVVJDRV9ERUxJTUlURVIpKS5mbGF0KCk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcGFydGl0aW9uLFxuICAgICAgICBzZXJ2aWNlLFxuICAgICAgICByZWdpb24sXG4gICAgICAgIGFjY291bnRJZCxcbiAgICAgICAgcmVzb3VyY2VJZCxcbiAgICB9O1xufTtcblxudmFyIHBhcnRpdGlvbnMgPSBbXG5cdHtcblx0XHRpZDogXCJhd3NcIixcblx0XHRvdXRwdXRzOiB7XG5cdFx0XHRkbnNTdWZmaXg6IFwiYW1hem9uYXdzLmNvbVwiLFxuXHRcdFx0ZHVhbFN0YWNrRG5zU3VmZml4OiBcImFwaS5hd3NcIixcblx0XHRcdGltcGxpY2l0R2xvYmFsUmVnaW9uOiBcInVzLWVhc3QtMVwiLFxuXHRcdFx0bmFtZTogXCJhd3NcIixcblx0XHRcdHN1cHBvcnRzRHVhbFN0YWNrOiB0cnVlLFxuXHRcdFx0c3VwcG9ydHNGSVBTOiB0cnVlXG5cdFx0fSxcblx0XHRyZWdpb25SZWdleDogXCJeKHVzfGV1fGFwfHNhfGNhfG1lfGFmfGlsfG14KVxcXFwtXFxcXHcrXFxcXC1cXFxcZCskXCIsXG5cdFx0cmVnaW9uczoge1xuXHRcdFx0XCJhZi1zb3V0aC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQWZyaWNhIChDYXBlIFRvd24pXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLWVhc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFzaWEgUGFjaWZpYyAoSG9uZyBLb25nKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJhcC1lYXN0LTJcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBc2lhIFBhY2lmaWMgKFRhaXBlaSlcIlxuXHRcdFx0fSxcblx0XHRcdFwiYXAtbm9ydGhlYXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBc2lhIFBhY2lmaWMgKFRva3lvKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJhcC1ub3J0aGVhc3QtMlwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFzaWEgUGFjaWZpYyAoU2VvdWwpXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLW5vcnRoZWFzdC0zXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChPc2FrYSlcIlxuXHRcdFx0fSxcblx0XHRcdFwiYXAtc291dGgtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFzaWEgUGFjaWZpYyAoTXVtYmFpKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJhcC1zb3V0aC0yXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChIeWRlcmFiYWQpXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLXNvdXRoZWFzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChTaW5nYXBvcmUpXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLXNvdXRoZWFzdC0yXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChTeWRuZXkpXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLXNvdXRoZWFzdC0zXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChKYWthcnRhKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJhcC1zb3V0aGVhc3QtNFwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFzaWEgUGFjaWZpYyAoTWVsYm91cm5lKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJhcC1zb3V0aGVhc3QtNVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFzaWEgUGFjaWZpYyAoTWFsYXlzaWEpXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLXNvdXRoZWFzdC02XCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChOZXcgWmVhbGFuZClcIlxuXHRcdFx0fSxcblx0XHRcdFwiYXAtc291dGhlYXN0LTdcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBc2lhIFBhY2lmaWMgKFRoYWlsYW5kKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJhd3MtZ2xvYmFsXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiYXdzIGdsb2JhbCByZWdpb25cIlxuXHRcdFx0fSxcblx0XHRcdFwiY2EtY2VudHJhbC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQ2FuYWRhIChDZW50cmFsKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJjYS13ZXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJDYW5hZGEgV2VzdCAoQ2FsZ2FyeSlcIlxuXHRcdFx0fSxcblx0XHRcdFwiZXUtY2VudHJhbC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiRXVyb3BlIChGcmFua2Z1cnQpXCJcblx0XHRcdH0sXG5cdFx0XHRcImV1LWNlbnRyYWwtMlwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkV1cm9wZSAoWnVyaWNoKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJldS1ub3J0aC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiRXVyb3BlIChTdG9ja2hvbG0pXCJcblx0XHRcdH0sXG5cdFx0XHRcImV1LXNvdXRoLTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJFdXJvcGUgKE1pbGFuKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJldS1zb3V0aC0yXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiRXVyb3BlIChTcGFpbilcIlxuXHRcdFx0fSxcblx0XHRcdFwiZXUtd2VzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiRXVyb3BlIChJcmVsYW5kKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJldS13ZXN0LTJcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJFdXJvcGUgKExvbmRvbilcIlxuXHRcdFx0fSxcblx0XHRcdFwiZXUtd2VzdC0zXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiRXVyb3BlIChQYXJpcylcIlxuXHRcdFx0fSxcblx0XHRcdFwiaWwtY2VudHJhbC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiSXNyYWVsIChUZWwgQXZpdilcIlxuXHRcdFx0fSxcblx0XHRcdFwibWUtY2VudHJhbC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiTWlkZGxlIEVhc3QgKFVBRSlcIlxuXHRcdFx0fSxcblx0XHRcdFwibWUtc291dGgtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIk1pZGRsZSBFYXN0IChCYWhyYWluKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJteC1jZW50cmFsLTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJNZXhpY28gKENlbnRyYWwpXCJcblx0XHRcdH0sXG5cdFx0XHRcInNhLWVhc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIlNvdXRoIEFtZXJpY2EgKFNhbyBQYXVsbylcIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtZWFzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiVVMgRWFzdCAoTi4gVmlyZ2luaWEpXCJcblx0XHRcdH0sXG5cdFx0XHRcInVzLWVhc3QtMlwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIlVTIEVhc3QgKE9oaW8pXCJcblx0XHRcdH0sXG5cdFx0XHRcInVzLXdlc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIlVTIFdlc3QgKE4uIENhbGlmb3JuaWEpXCJcblx0XHRcdH0sXG5cdFx0XHRcInVzLXdlc3QtMlwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIlVTIFdlc3QgKE9yZWdvbilcIlxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0e1xuXHRcdGlkOiBcImF3cy1jblwiLFxuXHRcdG91dHB1dHM6IHtcblx0XHRcdGRuc1N1ZmZpeDogXCJhbWF6b25hd3MuY29tLmNuXCIsXG5cdFx0XHRkdWFsU3RhY2tEbnNTdWZmaXg6IFwiYXBpLmFtYXpvbndlYnNlcnZpY2VzLmNvbS5jblwiLFxuXHRcdFx0aW1wbGljaXRHbG9iYWxSZWdpb246IFwiY24tbm9ydGh3ZXN0LTFcIixcblx0XHRcdG5hbWU6IFwiYXdzLWNuXCIsXG5cdFx0XHRzdXBwb3J0c0R1YWxTdGFjazogdHJ1ZSxcblx0XHRcdHN1cHBvcnRzRklQUzogdHJ1ZVxuXHRcdH0sXG5cdFx0cmVnaW9uUmVnZXg6IFwiXmNuXFxcXC1cXFxcdytcXFxcLVxcXFxkKyRcIixcblx0XHRyZWdpb25zOiB7XG5cdFx0XHRcImF3cy1jbi1nbG9iYWxcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJhd3MtY24gZ2xvYmFsIHJlZ2lvblwiXG5cdFx0XHR9LFxuXHRcdFx0XCJjbi1ub3J0aC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQ2hpbmEgKEJlaWppbmcpXCJcblx0XHRcdH0sXG5cdFx0XHRcImNuLW5vcnRod2VzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQ2hpbmEgKE5pbmd4aWEpXCJcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdHtcblx0XHRpZDogXCJhd3MtZXVzY1wiLFxuXHRcdG91dHB1dHM6IHtcblx0XHRcdGRuc1N1ZmZpeDogXCJhbWF6b25hd3MuZXVcIixcblx0XHRcdGR1YWxTdGFja0Ruc1N1ZmZpeDogXCJhcGkuYW1hem9ud2Vic2VydmljZXMuZXVcIixcblx0XHRcdGltcGxpY2l0R2xvYmFsUmVnaW9uOiBcImV1c2MtZGUtZWFzdC0xXCIsXG5cdFx0XHRuYW1lOiBcImF3cy1ldXNjXCIsXG5cdFx0XHRzdXBwb3J0c0R1YWxTdGFjazogdHJ1ZSxcblx0XHRcdHN1cHBvcnRzRklQUzogdHJ1ZVxuXHRcdH0sXG5cdFx0cmVnaW9uUmVnZXg6IFwiXmV1c2NcXFxcLShkZSlcXFxcLVxcXFx3K1xcXFwtXFxcXGQrJFwiLFxuXHRcdHJlZ2lvbnM6IHtcblx0XHRcdFwiZXVzYy1kZS1lYXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBV1MgRXVyb3BlYW4gU292ZXJlaWduIENsb3VkIChHZXJtYW55KVwiXG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXHR7XG5cdFx0aWQ6IFwiYXdzLWlzb1wiLFxuXHRcdG91dHB1dHM6IHtcblx0XHRcdGRuc1N1ZmZpeDogXCJjMnMuaWMuZ292XCIsXG5cdFx0XHRkdWFsU3RhY2tEbnNTdWZmaXg6IFwiYXBpLmF3cy5pYy5nb3ZcIixcblx0XHRcdGltcGxpY2l0R2xvYmFsUmVnaW9uOiBcInVzLWlzby1lYXN0LTFcIixcblx0XHRcdG5hbWU6IFwiYXdzLWlzb1wiLFxuXHRcdFx0c3VwcG9ydHNEdWFsU3RhY2s6IHRydWUsXG5cdFx0XHRzdXBwb3J0c0ZJUFM6IHRydWVcblx0XHR9LFxuXHRcdHJlZ2lvblJlZ2V4OiBcIl51c1xcXFwtaXNvXFxcXC1cXFxcdytcXFxcLVxcXFxkKyRcIixcblx0XHRyZWdpb25zOiB7XG5cdFx0XHRcImF3cy1pc28tZ2xvYmFsXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiYXdzLWlzbyBnbG9iYWwgcmVnaW9uXCJcblx0XHRcdH0sXG5cdFx0XHRcInVzLWlzby1lYXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJVUyBJU08gRWFzdFwiXG5cdFx0XHR9LFxuXHRcdFx0XCJ1cy1pc28td2VzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiVVMgSVNPIFdFU1RcIlxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0e1xuXHRcdGlkOiBcImF3cy1pc28tYlwiLFxuXHRcdG91dHB1dHM6IHtcblx0XHRcdGRuc1N1ZmZpeDogXCJzYzJzLnNnb3YuZ292XCIsXG5cdFx0XHRkdWFsU3RhY2tEbnNTdWZmaXg6IFwiYXBpLmF3cy5zY2xvdWRcIixcblx0XHRcdGltcGxpY2l0R2xvYmFsUmVnaW9uOiBcInVzLWlzb2ItZWFzdC0xXCIsXG5cdFx0XHRuYW1lOiBcImF3cy1pc28tYlwiLFxuXHRcdFx0c3VwcG9ydHNEdWFsU3RhY2s6IHRydWUsXG5cdFx0XHRzdXBwb3J0c0ZJUFM6IHRydWVcblx0XHR9LFxuXHRcdHJlZ2lvblJlZ2V4OiBcIl51c1xcXFwtaXNvYlxcXFwtXFxcXHcrXFxcXC1cXFxcZCskXCIsXG5cdFx0cmVnaW9uczoge1xuXHRcdFx0XCJhd3MtaXNvLWItZ2xvYmFsXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiYXdzLWlzby1iIGdsb2JhbCByZWdpb25cIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtaXNvYi1lYXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJVUyBJU09CIEVhc3QgKE9oaW8pXCJcblx0XHRcdH0sXG5cdFx0XHRcInVzLWlzb2Itd2VzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiVVMgSVNPQiBXZXN0XCJcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdHtcblx0XHRpZDogXCJhd3MtaXNvLWVcIixcblx0XHRvdXRwdXRzOiB7XG5cdFx0XHRkbnNTdWZmaXg6IFwiY2xvdWQuYWRjLWUudWtcIixcblx0XHRcdGR1YWxTdGFja0Ruc1N1ZmZpeDogXCJhcGkuY2xvdWQtYXdzLmFkYy1lLnVrXCIsXG5cdFx0XHRpbXBsaWNpdEdsb2JhbFJlZ2lvbjogXCJldS1pc29lLXdlc3QtMVwiLFxuXHRcdFx0bmFtZTogXCJhd3MtaXNvLWVcIixcblx0XHRcdHN1cHBvcnRzRHVhbFN0YWNrOiB0cnVlLFxuXHRcdFx0c3VwcG9ydHNGSVBTOiB0cnVlXG5cdFx0fSxcblx0XHRyZWdpb25SZWdleDogXCJeZXVcXFxcLWlzb2VcXFxcLVxcXFx3K1xcXFwtXFxcXGQrJFwiLFxuXHRcdHJlZ2lvbnM6IHtcblx0XHRcdFwiYXdzLWlzby1lLWdsb2JhbFwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcImF3cy1pc28tZSBnbG9iYWwgcmVnaW9uXCJcblx0XHRcdH0sXG5cdFx0XHRcImV1LWlzb2Utd2VzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiRVUgSVNPRSBXZXN0XCJcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdHtcblx0XHRpZDogXCJhd3MtaXNvLWZcIixcblx0XHRvdXRwdXRzOiB7XG5cdFx0XHRkbnNTdWZmaXg6IFwiY3NwLmhjaS5pYy5nb3ZcIixcblx0XHRcdGR1YWxTdGFja0Ruc1N1ZmZpeDogXCJhcGkuYXdzLmhjaS5pYy5nb3ZcIixcblx0XHRcdGltcGxpY2l0R2xvYmFsUmVnaW9uOiBcInVzLWlzb2Ytc291dGgtMVwiLFxuXHRcdFx0bmFtZTogXCJhd3MtaXNvLWZcIixcblx0XHRcdHN1cHBvcnRzRHVhbFN0YWNrOiB0cnVlLFxuXHRcdFx0c3VwcG9ydHNGSVBTOiB0cnVlXG5cdFx0fSxcblx0XHRyZWdpb25SZWdleDogXCJedXNcXFxcLWlzb2ZcXFxcLVxcXFx3K1xcXFwtXFxcXGQrJFwiLFxuXHRcdHJlZ2lvbnM6IHtcblx0XHRcdFwiYXdzLWlzby1mLWdsb2JhbFwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcImF3cy1pc28tZiBnbG9iYWwgcmVnaW9uXCJcblx0XHRcdH0sXG5cdFx0XHRcInVzLWlzb2YtZWFzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiVVMgSVNPRiBFQVNUXCJcblx0XHRcdH0sXG5cdFx0XHRcInVzLWlzb2Ytc291dGgtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIlVTIElTT0YgU09VVEhcIlxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0e1xuXHRcdGlkOiBcImF3cy11cy1nb3ZcIixcblx0XHRvdXRwdXRzOiB7XG5cdFx0XHRkbnNTdWZmaXg6IFwiYW1hem9uYXdzLmNvbVwiLFxuXHRcdFx0ZHVhbFN0YWNrRG5zU3VmZml4OiBcImFwaS5hd3NcIixcblx0XHRcdGltcGxpY2l0R2xvYmFsUmVnaW9uOiBcInVzLWdvdi13ZXN0LTFcIixcblx0XHRcdG5hbWU6IFwiYXdzLXVzLWdvdlwiLFxuXHRcdFx0c3VwcG9ydHNEdWFsU3RhY2s6IHRydWUsXG5cdFx0XHRzdXBwb3J0c0ZJUFM6IHRydWVcblx0XHR9LFxuXHRcdHJlZ2lvblJlZ2V4OiBcIl51c1xcXFwtZ292XFxcXC1cXFxcdytcXFxcLVxcXFxkKyRcIixcblx0XHRyZWdpb25zOiB7XG5cdFx0XHRcImF3cy11cy1nb3YtZ2xvYmFsXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiYXdzLXVzLWdvdiBnbG9iYWwgcmVnaW9uXCJcblx0XHRcdH0sXG5cdFx0XHRcInVzLWdvdi1lYXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBV1MgR292Q2xvdWQgKFVTLUVhc3QpXCJcblx0XHRcdH0sXG5cdFx0XHRcInVzLWdvdi13ZXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBV1MgR292Q2xvdWQgKFVTLVdlc3QpXCJcblx0XHRcdH1cblx0XHR9XG5cdH1cbl07XG52YXIgdmVyc2lvbiA9IFwiMS4xXCI7XG52YXIgcGFydGl0aW9uc0luZm8gPSB7XG5cdHBhcnRpdGlvbnM6IHBhcnRpdGlvbnMsXG5cdHZlcnNpb246IHZlcnNpb25cbn07XG5cbmxldCBzZWxlY3RlZFBhcnRpdGlvbnNJbmZvID0gcGFydGl0aW9uc0luZm87XG5sZXQgc2VsZWN0ZWRVc2VyQWdlbnRQcmVmaXggPSBcIlwiO1xuY29uc3QgcGFydGl0aW9uID0gKHZhbHVlKSA9PiB7XG4gICAgY29uc3QgeyBwYXJ0aXRpb25zIH0gPSBzZWxlY3RlZFBhcnRpdGlvbnNJbmZvO1xuICAgIGZvciAoY29uc3QgcGFydGl0aW9uIG9mIHBhcnRpdGlvbnMpIHtcbiAgICAgICAgY29uc3QgeyByZWdpb25zLCBvdXRwdXRzIH0gPSBwYXJ0aXRpb247XG4gICAgICAgIGZvciAoY29uc3QgW3JlZ2lvbiwgcmVnaW9uRGF0YV0gb2YgT2JqZWN0LmVudHJpZXMocmVnaW9ucykpIHtcbiAgICAgICAgICAgIGlmIChyZWdpb24gPT09IHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgLi4ub3V0cHV0cyxcbiAgICAgICAgICAgICAgICAgICAgLi4ucmVnaW9uRGF0YSxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGZvciAoY29uc3QgcGFydGl0aW9uIG9mIHBhcnRpdGlvbnMpIHtcbiAgICAgICAgY29uc3QgeyByZWdpb25SZWdleCwgb3V0cHV0cyB9ID0gcGFydGl0aW9uO1xuICAgICAgICBpZiAobmV3IFJlZ0V4cChyZWdpb25SZWdleCkudGVzdCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgLi4ub3V0cHV0cyxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgREVGQVVMVF9QQVJUSVRJT04gPSBwYXJ0aXRpb25zLmZpbmQoKHBhcnRpdGlvbikgPT4gcGFydGl0aW9uLmlkID09PSBcImF3c1wiKTtcbiAgICBpZiAoIURFRkFVTFRfUEFSVElUSU9OKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIlByb3ZpZGVkIHJlZ2lvbiB3YXMgbm90IGZvdW5kIGluIHRoZSBwYXJ0aXRpb24gYXJyYXkgb3IgcmVnZXgsXCIgK1xuICAgICAgICAgICAgXCIgYW5kIGRlZmF1bHQgcGFydGl0aW9uIHdpdGggaWQgJ2F3cycgZG9lc24ndCBleGlzdC5cIik7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIC4uLkRFRkFVTFRfUEFSVElUSU9OLm91dHB1dHMsXG4gICAgfTtcbn07XG5jb25zdCBzZXRQYXJ0aXRpb25JbmZvID0gKHBhcnRpdGlvbnNJbmZvLCB1c2VyQWdlbnRQcmVmaXggPSBcIlwiKSA9PiB7XG4gICAgc2VsZWN0ZWRQYXJ0aXRpb25zSW5mbyA9IHBhcnRpdGlvbnNJbmZvO1xuICAgIHNlbGVjdGVkVXNlckFnZW50UHJlZml4ID0gdXNlckFnZW50UHJlZml4O1xufTtcbmNvbnN0IHVzZURlZmF1bHRQYXJ0aXRpb25JbmZvID0gKCkgPT4ge1xuICAgIHNldFBhcnRpdGlvbkluZm8ocGFydGl0aW9uc0luZm8sIFwiXCIpO1xufTtcbmNvbnN0IGdldFVzZXJBZ2VudFByZWZpeCA9ICgpID0+IHNlbGVjdGVkVXNlckFnZW50UHJlZml4O1xuXG5jb25zdCBhd3NFbmRwb2ludEZ1bmN0aW9ucyA9IHtcbiAgICBpc1ZpcnR1YWxIb3N0YWJsZVMzQnVja2V0OiBpc1ZpcnR1YWxIb3N0YWJsZVMzQnVja2V0LFxuICAgIHBhcnNlQXJuOiBwYXJzZUFybixcbiAgICBwYXJ0aXRpb246IHBhcnRpdGlvbixcbn07XG51dGlsRW5kcG9pbnRzLmN1c3RvbUVuZHBvaW50RnVuY3Rpb25zLmF3cyA9IGF3c0VuZHBvaW50RnVuY3Rpb25zO1xuXG5jb25zdCByZXNvbHZlRGVmYXVsdEF3c1JlZ2lvbmFsRW5kcG9pbnRzQ29uZmlnID0gKGlucHV0KSA9PiB7XG4gICAgaWYgKHR5cGVvZiBpbnB1dC5lbmRwb2ludFByb3ZpZGVyICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQGF3cy1zZGsvdXRpbC1lbmRwb2ludCAtIGVuZHBvaW50UHJvdmlkZXIgYW5kIGVuZHBvaW50IG1pc3NpbmcgaW4gY29uZmlnIGZvciB0aGlzIGNsaWVudC5cIik7XG4gICAgfVxuICAgIGNvbnN0IHsgZW5kcG9pbnQgfSA9IGlucHV0O1xuICAgIGlmIChlbmRwb2ludCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlucHV0LmVuZHBvaW50ID0gYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHRvRW5kcG9pbnRWMShpbnB1dC5lbmRwb2ludFByb3ZpZGVyKHtcbiAgICAgICAgICAgICAgICBSZWdpb246IHR5cGVvZiBpbnB1dC5yZWdpb24gPT09IFwiZnVuY3Rpb25cIiA/IGF3YWl0IGlucHV0LnJlZ2lvbigpIDogaW5wdXQucmVnaW9uLFxuICAgICAgICAgICAgICAgIFVzZUR1YWxTdGFjazogdHlwZW9mIGlucHV0LnVzZUR1YWxzdGFja0VuZHBvaW50ID09PSBcImZ1bmN0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgPyBhd2FpdCBpbnB1dC51c2VEdWFsc3RhY2tFbmRwb2ludCgpXG4gICAgICAgICAgICAgICAgICAgIDogaW5wdXQudXNlRHVhbHN0YWNrRW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgVXNlRklQUzogdHlwZW9mIGlucHV0LnVzZUZpcHNFbmRwb2ludCA9PT0gXCJmdW5jdGlvblwiID8gYXdhaXQgaW5wdXQudXNlRmlwc0VuZHBvaW50KCkgOiBpbnB1dC51c2VGaXBzRW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgRW5kcG9pbnQ6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIH0sIHsgbG9nZ2VyOiBpbnB1dC5sb2dnZXIgfSkpO1xuICAgICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gaW5wdXQ7XG59O1xuY29uc3QgdG9FbmRwb2ludFYxID0gKGVuZHBvaW50KSA9PiB1cmxQYXJzZXIucGFyc2VVcmwoZW5kcG9pbnQudXJsKTtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiRW5kcG9pbnRFcnJvclwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHV0aWxFbmRwb2ludHMuRW5kcG9pbnRFcnJvcjsgfVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJpc0lwQWRkcmVzc1wiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHV0aWxFbmRwb2ludHMuaXNJcEFkZHJlc3M7IH1cbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwicmVzb2x2ZUVuZHBvaW50XCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gdXRpbEVuZHBvaW50cy5yZXNvbHZlRW5kcG9pbnQ7IH1cbn0pO1xuZXhwb3J0cy5hd3NFbmRwb2ludEZ1bmN0aW9ucyA9IGF3c0VuZHBvaW50RnVuY3Rpb25zO1xuZXhwb3J0cy5nZXRVc2VyQWdlbnRQcmVmaXggPSBnZXRVc2VyQWdlbnRQcmVmaXg7XG5leHBvcnRzLnBhcnRpdGlvbiA9IHBhcnRpdGlvbjtcbmV4cG9ydHMucmVzb2x2ZURlZmF1bHRBd3NSZWdpb25hbEVuZHBvaW50c0NvbmZpZyA9IHJlc29sdmVEZWZhdWx0QXdzUmVnaW9uYWxFbmRwb2ludHNDb25maWc7XG5leHBvcnRzLnNldFBhcnRpdGlvbkluZm8gPSBzZXRQYXJ0aXRpb25JbmZvO1xuZXhwb3J0cy50b0VuZHBvaW50VjEgPSB0b0VuZHBvaW50VjE7XG5leHBvcnRzLnVzZURlZmF1bHRQYXJ0aXRpb25JbmZvID0gdXNlRGVmYXVsdFBhcnRpdGlvbkluZm87XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLnJ1bGVTZXQgPSB2b2lkIDA7XG5jb25zdCBLID0gXCJyZXF1aXJlZFwiLCBMID0gXCJ0eXBlXCIsIE0gPSBcInJ1bGVzXCIsIE4gPSBcImNvbmRpdGlvbnNcIiwgTyA9IFwiZm5cIiwgUCA9IFwiYXJndlwiLCBRID0gXCJyZWZcIiwgUiA9IFwiYXNzaWduXCIsIFMgPSBcInVybFwiLCBUID0gXCJwcm9wZXJ0aWVzXCIsIFUgPSBcImhlYWRlcnNcIiwgViA9IFwibWV0cmljVmFsdWVzXCI7XG5jb25zdCBhID0gZmFsc2UsIGIgPSBcImVycm9yXCIsIGMgPSBcInN0cmluZ0VxdWFsc1wiLCBkID0gXCJodHRwczovL2R5bmFtb2RiLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZHVhbFN0YWNrRG5zU3VmZml4fVwiLCBlID0gXCJlbmRwb2ludFwiLCBmID0gXCJ0cmVlXCIsIGcgPSBcImR5bmFtb2RiXCIsIGggPSB7IFtLXTogZmFsc2UsIFtMXTogXCJzdHJpbmdcIiB9LCBpID0geyBbS106IHRydWUsIFwiZGVmYXVsdFwiOiBmYWxzZSwgW0xdOiBcImJvb2xlYW5cIiB9LCBqID0geyBbT106IFwiaXNTZXRcIiwgW1BdOiBbeyBbUV06IFwiRW5kcG9pbnRcIiB9XSB9LCBrID0geyBbUV06IFwiRW5kcG9pbnRcIiB9LCBsID0geyBbT106IFwiaXNTZXRcIiwgW1BdOiBbeyBbUV06IFwiUmVnaW9uXCIgfV0gfSwgbSA9IHsgW1FdOiBcIlJlZ2lvblwiIH0sIG4gPSB7IFtPXTogXCJhd3MucGFydGl0aW9uXCIsIFtQXTogW21dLCBbUl06IFwiUGFydGl0aW9uUmVzdWx0XCIgfSwgbyA9IHsgW05dOiBbeyBbT106IFwiYm9vbGVhbkVxdWFsc1wiLCBbUF06IFt7IFtRXTogXCJVc2VGSVBTXCIgfSwgdHJ1ZV0gfV0sIFtiXTogXCJJbnZhbGlkIENvbmZpZ3VyYXRpb246IEZJUFMgYW5kIGN1c3RvbSBlbmRwb2ludCBhcmUgbm90IHN1cHBvcnRlZFwiLCBbTF06IGIgfSwgcCA9IHsgW09dOiBcImJvb2xlYW5FcXVhbHNcIiwgW1BdOiBbeyBbUV06IFwiVXNlRklQU1wiIH0sIHRydWVdIH0sIHEgPSB7IFtOXTogW3sgW09dOiBcImJvb2xlYW5FcXVhbHNcIiwgW1BdOiBbeyBbUV06IFwiVXNlRHVhbFN0YWNrXCIgfSwgdHJ1ZV0gfV0sIFtiXTogXCJJbnZhbGlkIENvbmZpZ3VyYXRpb246IER1YWxzdGFjayBhbmQgY3VzdG9tIGVuZHBvaW50IGFyZSBub3Qgc3VwcG9ydGVkXCIsIFtMXTogYiB9LCByID0geyBbT106IFwiYm9vbGVhbkVxdWFsc1wiLCBbUF06IFt7IFtRXTogXCJVc2VEdWFsU3RhY2tcIiB9LCB0cnVlXSB9LCBzID0geyBbZV06IHsgW1NdOiBcIntFbmRwb2ludH1cIiwgW1RdOiB7fSwgW1VdOiB7fSB9LCBbTF06IGUgfSwgdCA9IHt9LCB1ID0geyBbT106IFwiYm9vbGVhbkVxdWFsc1wiLCBbUF06IFt7IFtPXTogXCJnZXRBdHRyXCIsIFtQXTogW3sgW1FdOiBcIlBhcnRpdGlvblJlc3VsdFwiIH0sIFwic3VwcG9ydHNGSVBTXCJdIH0sIHRydWVdIH0sIHYgPSB7IFtPXTogXCJib29sZWFuRXF1YWxzXCIsIFtQXTogW3sgW09dOiBcImdldEF0dHJcIiwgW1BdOiBbeyBbUV06IFwiUGFydGl0aW9uUmVzdWx0XCIgfSwgXCJzdXBwb3J0c0R1YWxTdGFja1wiXSB9LCB0cnVlXSB9LCB3ID0geyBbTl06IFt7IFtPXTogXCJpc1NldFwiLCBbUF06IFt7IFtRXTogXCJBY2NvdW50SWRFbmRwb2ludE1vZGVcIiB9XSB9LCB7IFtPXTogYywgW1BdOiBbeyBbUV06IFwiQWNjb3VudElkRW5kcG9pbnRNb2RlXCIgfSwgXCJyZXF1aXJlZFwiXSB9XSwgW01dOiBbeyBbYl06IFwiSW52YWxpZCBDb25maWd1cmF0aW9uOiBBY2NvdW50SWRFbmRwb2ludE1vZGUgaXMgcmVxdWlyZWQgYW5kIEZJUFMgaXMgZW5hYmxlZCwgYnV0IEZJUFMgYWNjb3VudCBlbmRwb2ludHMgYXJlIG5vdCBzdXBwb3J0ZWRcIiwgW0xdOiBiIH1dLCBbTF06IGYgfSwgeCA9IHsgW09dOiBcImdldEF0dHJcIiwgW1BdOiBbeyBbUV06IFwiUGFydGl0aW9uUmVzdWx0XCIgfSwgXCJuYW1lXCJdIH0sIHkgPSB7IFtlXTogeyBbU106IFwiaHR0cHM6Ly9keW5hbW9kYi57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH1cIiwgW1RdOiB7fSwgW1VdOiB7fSB9LCBbTF06IGUgfSwgeiA9IHsgW1NdOiBcImh0dHBzOi8ve1BhcnNlZEFybiNhY2NvdW50SWR9LmRkYi57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2R1YWxTdGFja0Ruc1N1ZmZpeH1cIiwgW1RdOiB7IFtWXTogW1wiT1wiXSB9LCBbVV06IHt9IH0sIEEgPSB7IFtWXTogW1wiT1wiXSB9LCBCID0geyBbYl06IFwiQ3JlZGVudGlhbHMtc291cmNlZCBhY2NvdW50IElEIHBhcmFtZXRlciBpcyBpbnZhbGlkXCIsIFtMXTogYiB9LCBDID0geyBbTl06IFt7IFtPXTogXCJpc1NldFwiLCBbUF06IFt7IFtRXTogXCJBY2NvdW50SWRFbmRwb2ludE1vZGVcIiB9XSB9LCB7IFtPXTogYywgW1BdOiBbeyBbUV06IFwiQWNjb3VudElkRW5kcG9pbnRNb2RlXCIgfSwgXCJyZXF1aXJlZFwiXSB9XSwgW01dOiBbeyBbTl06IFt7IFtPXTogXCJub3RcIiwgW1BdOiBbcF0gfV0sIFtNXTogW3sgW05dOiBbeyBbT106IGMsIFtQXTogW3gsIFwiYXdzXCJdIH1dLCBbTV06IFt7IFtiXTogXCJBY2NvdW50SWRFbmRwb2ludE1vZGUgaXMgcmVxdWlyZWQgYnV0IG5vIEFjY291bnRJRCB3YXMgcHJvdmlkZWQgb3IgYWJsZSB0byBiZSBsb2FkZWRcIiwgW0xdOiBiIH1dLCBbTF06IGYgfSwgeyBbYl06IFwiSW52YWxpZCBDb25maWd1cmF0aW9uOiBBY2NvdW50SWRFbmRwb2ludE1vZGUgaXMgcmVxdWlyZWQgYnV0IGFjY291bnQgZW5kcG9pbnRzIGFyZSBub3Qgc3VwcG9ydGVkIGluIHRoaXMgcGFydGl0aW9uXCIsIFtMXTogYiB9XSwgW0xdOiBmIH0sIHsgW2JdOiBcIkludmFsaWQgQ29uZmlndXJhdGlvbjogQWNjb3VudElkRW5kcG9pbnRNb2RlIGlzIHJlcXVpcmVkIGFuZCBGSVBTIGlzIGVuYWJsZWQsIGJ1dCBGSVBTIGFjY291bnQgZW5kcG9pbnRzIGFyZSBub3Qgc3VwcG9ydGVkXCIsIFtMXTogYiB9XSwgW0xdOiBmIH0sIEQgPSB7IFtTXTogXCJodHRwczovL3tQYXJzZWRBcm4jYWNjb3VudElkfS5kZGIue1JlZ2lvbn0ue1BhcnRpdGlvblJlc3VsdCNkbnNTdWZmaXh9XCIsIFtUXTogQSwgW1VdOiB7fSB9LCBFID0gW3BdLCBGID0gW3JdLCBHID0gW3sgW09dOiBcImlzU2V0XCIsIFtQXTogW3sgW1FdOiBcIkFjY291bnRJZEVuZHBvaW50TW9kZVwiIH1dIH0sIHsgW09dOiBcIm5vdFwiLCBbUF06IFt7IFtPXTogYywgW1BdOiBbeyBbUV06IFwiQWNjb3VudElkRW5kcG9pbnRNb2RlXCIgfSwgXCJkaXNhYmxlZFwiXSB9XSB9LCB7IFtPXTogYywgW1BdOiBbeCwgXCJhd3NcIl0gfSwgeyBbT106IFwibm90XCIsIFtQXTogW3BdIH0sIHsgW09dOiBcImlzU2V0XCIsIFtQXTogW3sgW1FdOiBcIlJlc291cmNlQXJuXCIgfV0gfSwgeyBbT106IFwiYXdzLnBhcnNlQXJuXCIsIFtQXTogW3sgW1FdOiBcIlJlc291cmNlQXJuXCIgfV0sIFtSXTogXCJQYXJzZWRBcm5cIiB9LCB7IFtPXTogYywgW1BdOiBbeyBbT106IFwiZ2V0QXR0clwiLCBbUF06IFt7IFtRXTogXCJQYXJzZWRBcm5cIiB9LCBcInNlcnZpY2VcIl0gfSwgZ10gfSwgeyBbT106IFwiaXNWYWxpZEhvc3RMYWJlbFwiLCBbUF06IFt7IFtPXTogXCJnZXRBdHRyXCIsIFtQXTogW3sgW1FdOiBcIlBhcnNlZEFyblwiIH0sIFwicmVnaW9uXCJdIH0sIGZhbHNlXSB9LCB7IFtPXTogYywgW1BdOiBbeyBbT106IFwiZ2V0QXR0clwiLCBbUF06IFt7IFtRXTogXCJQYXJzZWRBcm5cIiB9LCBcInJlZ2lvblwiXSB9LCBcIntSZWdpb259XCJdIH0sIHsgW09dOiBcImlzVmFsaWRIb3N0TGFiZWxcIiwgW1BdOiBbeyBbT106IFwiZ2V0QXR0clwiLCBbUF06IFt7IFtRXTogXCJQYXJzZWRBcm5cIiB9LCBcImFjY291bnRJZFwiXSB9LCBmYWxzZV0gfV0sIEggPSBbeyBbT106IFwiaXNTZXRcIiwgW1BdOiBbeyBbUV06IFwiQWNjb3VudElkRW5kcG9pbnRNb2RlXCIgfV0gfSwgeyBbT106IFwibm90XCIsIFtQXTogW3sgW09dOiBjLCBbUF06IFt7IFtRXTogXCJBY2NvdW50SWRFbmRwb2ludE1vZGVcIiB9LCBcImRpc2FibGVkXCJdIH1dIH0sIHsgW09dOiBjLCBbUF06IFt4LCBcImF3c1wiXSB9LCB7IFtPXTogXCJub3RcIiwgW1BdOiBbcF0gfSwgeyBbT106IFwiaXNTZXRcIiwgW1BdOiBbeyBbUV06IFwiUmVzb3VyY2VBcm5MaXN0XCIgfV0gfSwgeyBbT106IFwiZ2V0QXR0clwiLCBbUF06IFt7IFtRXTogXCJSZXNvdXJjZUFybkxpc3RcIiB9LCBcIlswXVwiXSwgW1JdOiBcIkZpcnN0QXJuXCIgfSwgeyBbT106IFwiYXdzLnBhcnNlQXJuXCIsIFtQXTogW3sgW1FdOiBcIkZpcnN0QXJuXCIgfV0sIFtSXTogXCJQYXJzZWRBcm5cIiB9LCB7IFtPXTogYywgW1BdOiBbeyBbT106IFwiZ2V0QXR0clwiLCBbUF06IFt7IFtRXTogXCJQYXJzZWRBcm5cIiB9LCBcInNlcnZpY2VcIl0gfSwgZ10gfSwgeyBbT106IFwiaXNWYWxpZEhvc3RMYWJlbFwiLCBbUF06IFt7IFtPXTogXCJnZXRBdHRyXCIsIFtQXTogW3sgW1FdOiBcIlBhcnNlZEFyblwiIH0sIFwicmVnaW9uXCJdIH0sIGZhbHNlXSB9LCB7IFtPXTogYywgW1BdOiBbeyBbT106IFwiZ2V0QXR0clwiLCBbUF06IFt7IFtRXTogXCJQYXJzZWRBcm5cIiB9LCBcInJlZ2lvblwiXSB9LCBcIntSZWdpb259XCJdIH0sIHsgW09dOiBcImlzVmFsaWRIb3N0TGFiZWxcIiwgW1BdOiBbeyBbT106IFwiZ2V0QXR0clwiLCBbUF06IFt7IFtRXTogXCJQYXJzZWRBcm5cIiB9LCBcImFjY291bnRJZFwiXSB9LCBmYWxzZV0gfV0sIEkgPSBbeyBbT106IFwiaXNTZXRcIiwgW1BdOiBbeyBbUV06IFwiQWNjb3VudElkRW5kcG9pbnRNb2RlXCIgfV0gfSwgeyBbT106IFwibm90XCIsIFtQXTogW3sgW09dOiBjLCBbUF06IFt7IFtRXTogXCJBY2NvdW50SWRFbmRwb2ludE1vZGVcIiB9LCBcImRpc2FibGVkXCJdIH1dIH0sIHsgW09dOiBjLCBbUF06IFt4LCBcImF3c1wiXSB9LCB7IFtPXTogXCJub3RcIiwgW1BdOiBbcF0gfSwgeyBbT106IFwiaXNTZXRcIiwgW1BdOiBbeyBbUV06IFwiQWNjb3VudElkXCIgfV0gfV0sIEogPSBbeyBbT106IFwiaXNWYWxpZEhvc3RMYWJlbFwiLCBbUF06IFt7IFtRXTogXCJBY2NvdW50SWRcIiB9LCBmYWxzZV0gfV07XG5jb25zdCBfZGF0YSA9IHsgdmVyc2lvbjogXCIxLjBcIiwgcGFyYW1ldGVyczogeyBSZWdpb246IGgsIFVzZUR1YWxTdGFjazogaSwgVXNlRklQUzogaSwgRW5kcG9pbnQ6IGgsIEFjY291bnRJZDogaCwgQWNjb3VudElkRW5kcG9pbnRNb2RlOiBoLCBSZXNvdXJjZUFybjogaCwgUmVzb3VyY2VBcm5MaXN0OiB7IFtLXTogYSwgW0xdOiBcInN0cmluZ0FycmF5XCIgfSB9LCBbTV06IFt7IFtOXTogW2osIGwsIG5dLCBbTV06IFtvLCBxLCB7IFtOXTogW3sgW09dOiBjLCBbUF06IFtrLCBkXSB9XSwgZXJyb3I6IFwiRW5kcG9pbnQgb3ZlcnJpZGUgaXMgbm90IHN1cHBvcnRlZCBmb3IgZHVhbC1zdGFjayBlbmRwb2ludHMuIFBsZWFzZSBlbmFibGUgZHVhbC1zdGFjayBmdW5jdGlvbmFsaXR5IGJ5IGVuYWJsaW5nIHRoZSBjb25maWd1cmF0aW9uLiBGb3IgbW9yZSBkZXRhaWxzLCBzZWU6IGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zZGtyZWYvbGF0ZXN0L2d1aWRlL2ZlYXR1cmUtZW5kcG9pbnRzLmh0bWxcIiwgW0xdOiBiIH0sIHNdLCBbTF06IGYgfSwgeyBbTl06IFtqXSwgW01dOiBbbywgcSwgc10sIFtMXTogZiB9LCB7IFtOXTogW2xdLCBbTV06IFt7IFtOXTogW25dLCBbTV06IFt7IFtOXTogW3sgW09dOiBjLCBbUF06IFttLCBcImxvY2FsXCJdIH1dLCBbTV06IFt7IFtOXTogRSwgZXJyb3I6IFwiSW52YWxpZCBDb25maWd1cmF0aW9uOiBGSVBTIGFuZCBsb2NhbCBlbmRwb2ludCBhcmUgbm90IHN1cHBvcnRlZFwiLCBbTF06IGIgfSwgeyBbTl06IEYsIGVycm9yOiBcIkludmFsaWQgQ29uZmlndXJhdGlvbjogRHVhbHN0YWNrIGFuZCBsb2NhbCBlbmRwb2ludCBhcmUgbm90IHN1cHBvcnRlZFwiLCBbTF06IGIgfSwgeyBlbmRwb2ludDogeyBbU106IFwiaHR0cDovL2xvY2FsaG9zdDo4MDAwXCIsIFtUXTogeyBhdXRoU2NoZW1lczogW3sgbmFtZTogXCJzaWd2NFwiLCBzaWduaW5nUmVnaW9uOiBcInVzLWVhc3QtMVwiLCBzaWduaW5nTmFtZTogZyB9XSB9LCBbVV06IHQgfSwgW0xdOiBlIH1dLCBbTF06IGYgfSwgeyBbTl06IFtwLCByXSwgW01dOiBbeyBbTl06IFt1LCB2XSwgW01dOiBbdywgeyBlbmRwb2ludDogeyBbU106IFwiaHR0cHM6Ly9keW5hbW9kYi1maXBzLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZHVhbFN0YWNrRG5zU3VmZml4fVwiLCBbVF06IHQsIFtVXTogdCB9LCBbTF06IGUgfV0sIFtMXTogZiB9LCB7IGVycm9yOiBcIkZJUFMgYW5kIER1YWxTdGFjayBhcmUgZW5hYmxlZCwgYnV0IHRoaXMgcGFydGl0aW9uIGRvZXMgbm90IHN1cHBvcnQgb25lIG9yIGJvdGhcIiwgW0xdOiBiIH1dLCBbTF06IGYgfSwgeyBbTl06IEUsIFtNXTogW3sgW05dOiBbdV0sIFtNXTogW3sgW05dOiBbeyBbT106IGMsIFtQXTogW3gsIFwiYXdzLXVzLWdvdlwiXSB9XSwgW01dOiBbdywgeV0sIFtMXTogZiB9LCB3LCB7IGVuZHBvaW50OiB7IFtTXTogXCJodHRwczovL2R5bmFtb2RiLWZpcHMue1JlZ2lvbn0ue1BhcnRpdGlvblJlc3VsdCNkbnNTdWZmaXh9XCIsIFtUXTogdCwgW1VdOiB0IH0sIFtMXTogZSB9XSwgW0xdOiBmIH0sIHsgZXJyb3I6IFwiRklQUyBpcyBlbmFibGVkIGJ1dCB0aGlzIHBhcnRpdGlvbiBkb2VzIG5vdCBzdXBwb3J0IEZJUFNcIiwgW0xdOiBiIH1dLCBbTF06IGYgfSwgeyBbTl06IEYsIFtNXTogW3sgW05dOiBbdl0sIFtNXTogW3sgW05dOiBHLCBlbmRwb2ludDogeiwgW0xdOiBlIH0sIHsgW05dOiBILCBlbmRwb2ludDogeiwgW0xdOiBlIH0sIHsgW05dOiBJLCBbTV06IFt7IFtOXTogSiwgW01dOiBbeyBlbmRwb2ludDogeyBbU106IFwiaHR0cHM6Ly97QWNjb3VudElkfS5kZGIue1JlZ2lvbn0ue1BhcnRpdGlvblJlc3VsdCNkdWFsU3RhY2tEbnNTdWZmaXh9XCIsIFtUXTogQSwgW1VdOiB0IH0sIFtMXTogZSB9XSwgW0xdOiBmIH0sIEJdLCBbTF06IGYgfSwgQywgeyBlbmRwb2ludDogeyBbU106IGQsIFtUXTogdCwgW1VdOiB0IH0sIFtMXTogZSB9XSwgW0xdOiBmIH0sIHsgZXJyb3I6IFwiRHVhbFN0YWNrIGlzIGVuYWJsZWQgYnV0IHRoaXMgcGFydGl0aW9uIGRvZXMgbm90IHN1cHBvcnQgRHVhbFN0YWNrXCIsIFtMXTogYiB9XSwgW0xdOiBmIH0sIHsgW05dOiBHLCBlbmRwb2ludDogRCwgW0xdOiBlIH0sIHsgW05dOiBILCBlbmRwb2ludDogRCwgW0xdOiBlIH0sIHsgW05dOiBJLCBbTV06IFt7IFtOXTogSiwgW01dOiBbeyBlbmRwb2ludDogeyBbU106IFwiaHR0cHM6Ly97QWNjb3VudElkfS5kZGIue1JlZ2lvbn0ue1BhcnRpdGlvblJlc3VsdCNkbnNTdWZmaXh9XCIsIFtUXTogQSwgW1VdOiB0IH0sIFtMXTogZSB9XSwgW0xdOiBmIH0sIEJdLCBbTF06IGYgfSwgQywgeV0sIFtMXTogZiB9XSwgW0xdOiBmIH0sIHsgZXJyb3I6IFwiSW52YWxpZCBDb25maWd1cmF0aW9uOiBNaXNzaW5nIFJlZ2lvblwiLCBbTF06IGIgfV0gfTtcbmV4cG9ydHMucnVsZVNldCA9IF9kYXRhO1xuIiwgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5kZWZhdWx0RW5kcG9pbnRSZXNvbHZlciA9IHZvaWQgMDtcbmNvbnN0IHV0aWxfZW5kcG9pbnRzXzEgPSByZXF1aXJlKFwiQGF3cy1zZGsvdXRpbC1lbmRwb2ludHNcIik7XG5jb25zdCB1dGlsX2VuZHBvaW50c18yID0gcmVxdWlyZShcIkBzbWl0aHkvdXRpbC1lbmRwb2ludHNcIik7XG5jb25zdCBydWxlc2V0XzEgPSByZXF1aXJlKFwiLi9ydWxlc2V0XCIpO1xuY29uc3QgY2FjaGUgPSBuZXcgdXRpbF9lbmRwb2ludHNfMi5FbmRwb2ludENhY2hlKHtcbiAgICBzaXplOiA1MCxcbiAgICBwYXJhbXM6IFtcbiAgICAgICAgXCJBY2NvdW50SWRcIixcbiAgICAgICAgXCJBY2NvdW50SWRFbmRwb2ludE1vZGVcIixcbiAgICAgICAgXCJFbmRwb2ludFwiLFxuICAgICAgICBcIlJlZ2lvblwiLFxuICAgICAgICBcIlJlc291cmNlQXJuXCIsXG4gICAgICAgIFwiUmVzb3VyY2VBcm5MaXN0XCIsXG4gICAgICAgIFwiVXNlRHVhbFN0YWNrXCIsXG4gICAgICAgIFwiVXNlRklQU1wiLFxuICAgIF0sXG59KTtcbmNvbnN0IGRlZmF1bHRFbmRwb2ludFJlc29sdmVyID0gKGVuZHBvaW50UGFyYW1zLCBjb250ZXh0ID0ge30pID0+IHtcbiAgICByZXR1cm4gY2FjaGUuZ2V0KGVuZHBvaW50UGFyYW1zLCAoKSA9PiAoMCwgdXRpbF9lbmRwb2ludHNfMi5yZXNvbHZlRW5kcG9pbnQpKHJ1bGVzZXRfMS5ydWxlU2V0LCB7XG4gICAgICAgIGVuZHBvaW50UGFyYW1zOiBlbmRwb2ludFBhcmFtcyxcbiAgICAgICAgbG9nZ2VyOiBjb250ZXh0LmxvZ2dlcixcbiAgICB9KSk7XG59O1xuZXhwb3J0cy5kZWZhdWx0RW5kcG9pbnRSZXNvbHZlciA9IGRlZmF1bHRFbmRwb2ludFJlc29sdmVyO1xudXRpbF9lbmRwb2ludHNfMi5jdXN0b21FbmRwb2ludEZ1bmN0aW9ucy5hd3MgPSB1dGlsX2VuZHBvaW50c18xLmF3c0VuZHBvaW50RnVuY3Rpb25zO1xuIiwgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5nZXRSdW50aW1lQ29uZmlnID0gdm9pZCAwO1xuY29uc3QgY29yZV8xID0gcmVxdWlyZShcIkBhd3Mtc2RrL2NvcmVcIik7XG5jb25zdCBwcm90b2NvbHNfMSA9IHJlcXVpcmUoXCJAYXdzLXNkay9jb3JlL3Byb3RvY29sc1wiKTtcbmNvbnN0IGR5bmFtb2RiX2NvZGVjXzEgPSByZXF1aXJlKFwiQGF3cy1zZGsvZHluYW1vZGItY29kZWNcIik7XG5jb25zdCBzbWl0aHlfY2xpZW50XzEgPSByZXF1aXJlKFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCIpO1xuY29uc3QgdXJsX3BhcnNlcl8xID0gcmVxdWlyZShcIkBzbWl0aHkvdXJsLXBhcnNlclwiKTtcbmNvbnN0IHV0aWxfYmFzZTY0XzEgPSByZXF1aXJlKFwiQHNtaXRoeS91dGlsLWJhc2U2NFwiKTtcbmNvbnN0IHV0aWxfdXRmOF8xID0gcmVxdWlyZShcIkBzbWl0aHkvdXRpbC11dGY4XCIpO1xuY29uc3QgaHR0cEF1dGhTY2hlbWVQcm92aWRlcl8xID0gcmVxdWlyZShcIi4vYXV0aC9odHRwQXV0aFNjaGVtZVByb3ZpZGVyXCIpO1xuY29uc3QgZW5kcG9pbnRSZXNvbHZlcl8xID0gcmVxdWlyZShcIi4vZW5kcG9pbnQvZW5kcG9pbnRSZXNvbHZlclwiKTtcbmNvbnN0IGdldFJ1bnRpbWVDb25maWcgPSAoY29uZmlnKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgYXBpVmVyc2lvbjogXCIyMDEyLTA4LTEwXCIsXG4gICAgICAgIGJhc2U2NERlY29kZXI6IGNvbmZpZz8uYmFzZTY0RGVjb2RlciA/PyB1dGlsX2Jhc2U2NF8xLmZyb21CYXNlNjQsXG4gICAgICAgIGJhc2U2NEVuY29kZXI6IGNvbmZpZz8uYmFzZTY0RW5jb2RlciA/PyB1dGlsX2Jhc2U2NF8xLnRvQmFzZTY0LFxuICAgICAgICBkaXNhYmxlSG9zdFByZWZpeDogY29uZmlnPy5kaXNhYmxlSG9zdFByZWZpeCA/PyBmYWxzZSxcbiAgICAgICAgZW5kcG9pbnRQcm92aWRlcjogY29uZmlnPy5lbmRwb2ludFByb3ZpZGVyID8/IGVuZHBvaW50UmVzb2x2ZXJfMS5kZWZhdWx0RW5kcG9pbnRSZXNvbHZlcixcbiAgICAgICAgZXh0ZW5zaW9uczogY29uZmlnPy5leHRlbnNpb25zID8/IFtdLFxuICAgICAgICBodHRwQXV0aFNjaGVtZVByb3ZpZGVyOiBjb25maWc/Lmh0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPz8gaHR0cEF1dGhTY2hlbWVQcm92aWRlcl8xLmRlZmF1bHREeW5hbW9EQkh0dHBBdXRoU2NoZW1lUHJvdmlkZXIsXG4gICAgICAgIGh0dHBBdXRoU2NoZW1lczogY29uZmlnPy5odHRwQXV0aFNjaGVtZXMgPz8gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHNjaGVtZUlkOiBcImF3cy5hdXRoI3NpZ3Y0XCIsXG4gICAgICAgICAgICAgICAgaWRlbnRpdHlQcm92aWRlcjogKGlwYykgPT4gaXBjLmdldElkZW50aXR5UHJvdmlkZXIoXCJhd3MuYXV0aCNzaWd2NFwiKSxcbiAgICAgICAgICAgICAgICBzaWduZXI6IG5ldyBjb3JlXzEuQXdzU2RrU2lnVjRTaWduZXIoKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIGxvZ2dlcjogY29uZmlnPy5sb2dnZXIgPz8gbmV3IHNtaXRoeV9jbGllbnRfMS5Ob09wTG9nZ2VyKCksXG4gICAgICAgIHByb3RvY29sOiBjb25maWc/LnByb3RvY29sID8/IHByb3RvY29sc18xLkF3c0pzb24xXzBQcm90b2NvbCxcbiAgICAgICAgcHJvdG9jb2xTZXR0aW5nczogY29uZmlnPy5wcm90b2NvbFNldHRpbmdzID8/IHtcbiAgICAgICAgICAgIGRlZmF1bHROYW1lc3BhY2U6IFwiY29tLmFtYXpvbmF3cy5keW5hbW9kYlwiLFxuICAgICAgICAgICAgeG1sTmFtZXNwYWNlOiBcImh0dHA6Ly9keW5hbW9kYi5hbWF6b25hd3MuY29tL2RvYy8yMDEyLTA4LTEwL1wiLFxuICAgICAgICAgICAgdmVyc2lvbjogXCIyMDEyLTA4LTEwXCIsXG4gICAgICAgICAgICBzZXJ2aWNlVGFyZ2V0OiBcIkR5bmFtb0RCXzIwMTIwODEwXCIsXG4gICAgICAgICAgICBqc29uQ29kZWM6IG5ldyBkeW5hbW9kYl9jb2RlY18xLkR5bmFtb0RCSnNvbkNvZGVjKCksXG4gICAgICAgIH0sXG4gICAgICAgIHNlcnZpY2VJZDogY29uZmlnPy5zZXJ2aWNlSWQgPz8gXCJEeW5hbW9EQlwiLFxuICAgICAgICB1cmxQYXJzZXI6IGNvbmZpZz8udXJsUGFyc2VyID8/IHVybF9wYXJzZXJfMS5wYXJzZVVybCxcbiAgICAgICAgdXRmOERlY29kZXI6IGNvbmZpZz8udXRmOERlY29kZXIgPz8gdXRpbF91dGY4XzEuZnJvbVV0ZjgsXG4gICAgICAgIHV0ZjhFbmNvZGVyOiBjb25maWc/LnV0ZjhFbmNvZGVyID8/IHV0aWxfdXRmOF8xLnRvVXRmOCxcbiAgICB9O1xufTtcbmV4cG9ydHMuZ2V0UnVudGltZUNvbmZpZyA9IGdldFJ1bnRpbWVDb25maWc7XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmdldFJ1bnRpbWVDb25maWcgPSB2b2lkIDA7XG5jb25zdCB0c2xpYl8xID0gcmVxdWlyZShcInRzbGliXCIpO1xuY29uc3QgcGFja2FnZV9qc29uXzEgPSB0c2xpYl8xLl9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi4vcGFja2FnZS5qc29uXCIpKTtcbmNvbnN0IGNvcmVfMSA9IHJlcXVpcmUoXCJAYXdzLXNkay9jb3JlXCIpO1xuY29uc3QgYWNjb3VudF9pZF9lbmRwb2ludF8xID0gcmVxdWlyZShcIkBhd3Mtc2RrL2NvcmUvYWNjb3VudC1pZC1lbmRwb2ludFwiKTtcbmNvbnN0IGNyZWRlbnRpYWxfcHJvdmlkZXJfbm9kZV8xID0gcmVxdWlyZShcIkBhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbm9kZVwiKTtcbmNvbnN0IG1pZGRsZXdhcmVfZW5kcG9pbnRfZGlzY292ZXJ5XzEgPSByZXF1aXJlKFwiQGF3cy1zZGsvbWlkZGxld2FyZS1lbmRwb2ludC1kaXNjb3ZlcnlcIik7XG5jb25zdCB1dGlsX3VzZXJfYWdlbnRfbm9kZV8xID0gcmVxdWlyZShcIkBhd3Mtc2RrL3V0aWwtdXNlci1hZ2VudC1ub2RlXCIpO1xuY29uc3QgY29uZmlnX3Jlc29sdmVyXzEgPSByZXF1aXJlKFwiQHNtaXRoeS9jb25maWctcmVzb2x2ZXJcIik7XG5jb25zdCBoYXNoX25vZGVfMSA9IHJlcXVpcmUoXCJAc21pdGh5L2hhc2gtbm9kZVwiKTtcbmNvbnN0IG1pZGRsZXdhcmVfcmV0cnlfMSA9IHJlcXVpcmUoXCJAc21pdGh5L21pZGRsZXdhcmUtcmV0cnlcIik7XG5jb25zdCBub2RlX2NvbmZpZ19wcm92aWRlcl8xID0gcmVxdWlyZShcIkBzbWl0aHkvbm9kZS1jb25maWctcHJvdmlkZXJcIik7XG5jb25zdCBub2RlX2h0dHBfaGFuZGxlcl8xID0gcmVxdWlyZShcIkBzbWl0aHkvbm9kZS1odHRwLWhhbmRsZXJcIik7XG5jb25zdCBzbWl0aHlfY2xpZW50XzEgPSByZXF1aXJlKFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCIpO1xuY29uc3QgdXRpbF9ib2R5X2xlbmd0aF9ub2RlXzEgPSByZXF1aXJlKFwiQHNtaXRoeS91dGlsLWJvZHktbGVuZ3RoLW5vZGVcIik7XG5jb25zdCB1dGlsX2RlZmF1bHRzX21vZGVfbm9kZV8xID0gcmVxdWlyZShcIkBzbWl0aHkvdXRpbC1kZWZhdWx0cy1tb2RlLW5vZGVcIik7XG5jb25zdCB1dGlsX3JldHJ5XzEgPSByZXF1aXJlKFwiQHNtaXRoeS91dGlsLXJldHJ5XCIpO1xuY29uc3QgcnVudGltZUNvbmZpZ19zaGFyZWRfMSA9IHJlcXVpcmUoXCIuL3J1bnRpbWVDb25maWcuc2hhcmVkXCIpO1xuY29uc3QgZ2V0UnVudGltZUNvbmZpZyA9IChjb25maWcpID0+IHtcbiAgICAoMCwgc21pdGh5X2NsaWVudF8xLmVtaXRXYXJuaW5nSWZVbnN1cHBvcnRlZFZlcnNpb24pKHByb2Nlc3MudmVyc2lvbik7XG4gICAgY29uc3QgZGVmYXVsdHNNb2RlID0gKDAsIHV0aWxfZGVmYXVsdHNfbW9kZV9ub2RlXzEucmVzb2x2ZURlZmF1bHRzTW9kZUNvbmZpZykoY29uZmlnKTtcbiAgICBjb25zdCBkZWZhdWx0Q29uZmlnUHJvdmlkZXIgPSAoKSA9PiBkZWZhdWx0c01vZGUoKS50aGVuKHNtaXRoeV9jbGllbnRfMS5sb2FkQ29uZmlnc0ZvckRlZmF1bHRNb2RlKTtcbiAgICBjb25zdCBjbGllbnRTaGFyZWRWYWx1ZXMgPSAoMCwgcnVudGltZUNvbmZpZ19zaGFyZWRfMS5nZXRSdW50aW1lQ29uZmlnKShjb25maWcpO1xuICAgICgwLCBjb3JlXzEuZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbikocHJvY2Vzcy52ZXJzaW9uKTtcbiAgICBjb25zdCBsb2FkZXJDb25maWcgPSB7XG4gICAgICAgIHByb2ZpbGU6IGNvbmZpZz8ucHJvZmlsZSxcbiAgICAgICAgbG9nZ2VyOiBjbGllbnRTaGFyZWRWYWx1ZXMubG9nZ2VyLFxuICAgIH07XG4gICAgcmV0dXJuIHtcbiAgICAgICAgLi4uY2xpZW50U2hhcmVkVmFsdWVzLFxuICAgICAgICAuLi5jb25maWcsXG4gICAgICAgIHJ1bnRpbWU6IFwibm9kZVwiLFxuICAgICAgICBkZWZhdWx0c01vZGUsXG4gICAgICAgIGFjY291bnRJZEVuZHBvaW50TW9kZTogY29uZmlnPy5hY2NvdW50SWRFbmRwb2ludE1vZGUgPz8gKDAsIG5vZGVfY29uZmlnX3Byb3ZpZGVyXzEubG9hZENvbmZpZykoYWNjb3VudF9pZF9lbmRwb2ludF8xLk5PREVfQUNDT1VOVF9JRF9FTkRQT0lOVF9NT0RFX0NPTkZJR19PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgICAgICBhdXRoU2NoZW1lUHJlZmVyZW5jZTogY29uZmlnPy5hdXRoU2NoZW1lUHJlZmVyZW5jZSA/PyAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKShjb3JlXzEuTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX09QVElPTlMsIGxvYWRlckNvbmZpZyksXG4gICAgICAgIGJvZHlMZW5ndGhDaGVja2VyOiBjb25maWc/LmJvZHlMZW5ndGhDaGVja2VyID8/IHV0aWxfYm9keV9sZW5ndGhfbm9kZV8xLmNhbGN1bGF0ZUJvZHlMZW5ndGgsXG4gICAgICAgIGNyZWRlbnRpYWxEZWZhdWx0UHJvdmlkZXI6IGNvbmZpZz8uY3JlZGVudGlhbERlZmF1bHRQcm92aWRlciA/PyBjcmVkZW50aWFsX3Byb3ZpZGVyX25vZGVfMS5kZWZhdWx0UHJvdmlkZXIsXG4gICAgICAgIGRlZmF1bHRVc2VyQWdlbnRQcm92aWRlcjogY29uZmlnPy5kZWZhdWx0VXNlckFnZW50UHJvdmlkZXIgPz8gKDAsIHV0aWxfdXNlcl9hZ2VudF9ub2RlXzEuY3JlYXRlRGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyKSh7IHNlcnZpY2VJZDogY2xpZW50U2hhcmVkVmFsdWVzLnNlcnZpY2VJZCwgY2xpZW50VmVyc2lvbjogcGFja2FnZV9qc29uXzEuZGVmYXVsdC52ZXJzaW9uIH0pLFxuICAgICAgICBlbmRwb2ludERpc2NvdmVyeUVuYWJsZWRQcm92aWRlcjogY29uZmlnPy5lbmRwb2ludERpc2NvdmVyeUVuYWJsZWRQcm92aWRlciA/PyAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKShtaWRkbGV3YXJlX2VuZHBvaW50X2Rpc2NvdmVyeV8xLk5PREVfRU5EUE9JTlRfRElTQ09WRVJZX0NPTkZJR19PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgICAgICBtYXhBdHRlbXB0czogY29uZmlnPy5tYXhBdHRlbXB0cyA/PyAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKShtaWRkbGV3YXJlX3JldHJ5XzEuTk9ERV9NQVhfQVRURU1QVF9DT05GSUdfT1BUSU9OUywgY29uZmlnKSxcbiAgICAgICAgcmVnaW9uOiBjb25maWc/LnJlZ2lvbiA/PyAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKShjb25maWdfcmVzb2x2ZXJfMS5OT0RFX1JFR0lPTl9DT05GSUdfT1BUSU9OUywgeyAuLi5jb25maWdfcmVzb2x2ZXJfMS5OT0RFX1JFR0lPTl9DT05GSUdfRklMRV9PUFRJT05TLCAuLi5sb2FkZXJDb25maWcgfSksXG4gICAgICAgIHJlcXVlc3RIYW5kbGVyOiBub2RlX2h0dHBfaGFuZGxlcl8xLk5vZGVIdHRwSGFuZGxlci5jcmVhdGUoY29uZmlnPy5yZXF1ZXN0SGFuZGxlciA/PyBkZWZhdWx0Q29uZmlnUHJvdmlkZXIpLFxuICAgICAgICByZXRyeU1vZGU6IGNvbmZpZz8ucmV0cnlNb2RlID8/XG4gICAgICAgICAgICAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKSh7XG4gICAgICAgICAgICAgICAgLi4ubWlkZGxld2FyZV9yZXRyeV8xLk5PREVfUkVUUllfTU9ERV9DT05GSUdfT1BUSU9OUyxcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiBhc3luYyAoKSA9PiAoYXdhaXQgZGVmYXVsdENvbmZpZ1Byb3ZpZGVyKCkpLnJldHJ5TW9kZSB8fCB1dGlsX3JldHJ5XzEuREVGQVVMVF9SRVRSWV9NT0RFLFxuICAgICAgICAgICAgfSwgY29uZmlnKSxcbiAgICAgICAgc2hhMjU2OiBjb25maWc/LnNoYTI1NiA/PyBoYXNoX25vZGVfMS5IYXNoLmJpbmQobnVsbCwgXCJzaGEyNTZcIiksXG4gICAgICAgIHN0cmVhbUNvbGxlY3RvcjogY29uZmlnPy5zdHJlYW1Db2xsZWN0b3IgPz8gbm9kZV9odHRwX2hhbmRsZXJfMS5zdHJlYW1Db2xsZWN0b3IsXG4gICAgICAgIHVzZUR1YWxzdGFja0VuZHBvaW50OiBjb25maWc/LnVzZUR1YWxzdGFja0VuZHBvaW50ID8/ICgwLCBub2RlX2NvbmZpZ19wcm92aWRlcl8xLmxvYWRDb25maWcpKGNvbmZpZ19yZXNvbHZlcl8xLk5PREVfVVNFX0RVQUxTVEFDS19FTkRQT0lOVF9DT05GSUdfT1BUSU9OUywgbG9hZGVyQ29uZmlnKSxcbiAgICAgICAgdXNlRmlwc0VuZHBvaW50OiBjb25maWc/LnVzZUZpcHNFbmRwb2ludCA/PyAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKShjb25maWdfcmVzb2x2ZXJfMS5OT0RFX1VTRV9GSVBTX0VORFBPSU5UX0NPTkZJR19PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgICAgICB1c2VyQWdlbnRBcHBJZDogY29uZmlnPy51c2VyQWdlbnRBcHBJZCA/PyAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKSh1dGlsX3VzZXJfYWdlbnRfbm9kZV8xLk5PREVfQVBQX0lEX0NPTkZJR19PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgIH07XG59O1xuZXhwb3J0cy5nZXRSdW50aW1lQ29uZmlnID0gZ2V0UnVudGltZUNvbmZpZztcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBhY2NvdW50SWRFbmRwb2ludCA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL2NvcmUvYWNjb3VudC1pZC1lbmRwb2ludCcpO1xudmFyIG1pZGRsZXdhcmVFbmRwb2ludERpc2NvdmVyeSA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL21pZGRsZXdhcmUtZW5kcG9pbnQtZGlzY292ZXJ5Jyk7XG52YXIgbWlkZGxld2FyZUhvc3RIZWFkZXIgPSByZXF1aXJlKCdAYXdzLXNkay9taWRkbGV3YXJlLWhvc3QtaGVhZGVyJyk7XG52YXIgbWlkZGxld2FyZUxvZ2dlciA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL21pZGRsZXdhcmUtbG9nZ2VyJyk7XG52YXIgbWlkZGxld2FyZVJlY3Vyc2lvbkRldGVjdGlvbiA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL21pZGRsZXdhcmUtcmVjdXJzaW9uLWRldGVjdGlvbicpO1xudmFyIG1pZGRsZXdhcmVVc2VyQWdlbnQgPSByZXF1aXJlKCdAYXdzLXNkay9taWRkbGV3YXJlLXVzZXItYWdlbnQnKTtcbnZhciBjb25maWdSZXNvbHZlciA9IHJlcXVpcmUoJ0BzbWl0aHkvY29uZmlnLXJlc29sdmVyJyk7XG52YXIgY29yZSA9IHJlcXVpcmUoJ0BzbWl0aHkvY29yZScpO1xudmFyIHNjaGVtYSA9IHJlcXVpcmUoJ0BzbWl0aHkvY29yZS9zY2hlbWEnKTtcbnZhciBtaWRkbGV3YXJlQ29udGVudExlbmd0aCA9IHJlcXVpcmUoJ0BzbWl0aHkvbWlkZGxld2FyZS1jb250ZW50LWxlbmd0aCcpO1xudmFyIG1pZGRsZXdhcmVFbmRwb2ludCA9IHJlcXVpcmUoJ0BzbWl0aHkvbWlkZGxld2FyZS1lbmRwb2ludCcpO1xudmFyIG1pZGRsZXdhcmVSZXRyeSA9IHJlcXVpcmUoJ0BzbWl0aHkvbWlkZGxld2FyZS1yZXRyeScpO1xudmFyIHNtaXRoeUNsaWVudCA9IHJlcXVpcmUoJ0BzbWl0aHkvc21pdGh5LWNsaWVudCcpO1xudmFyIGh0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSByZXF1aXJlKCcuL2F1dGgvaHR0cEF1dGhTY2hlbWVQcm92aWRlcicpO1xudmFyIHJ1bnRpbWVDb25maWcgPSByZXF1aXJlKCcuL3J1bnRpbWVDb25maWcnKTtcbnZhciByZWdpb25Db25maWdSZXNvbHZlciA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL3JlZ2lvbi1jb25maWctcmVzb2x2ZXInKTtcbnZhciBwcm90b2NvbEh0dHAgPSByZXF1aXJlKCdAc21pdGh5L3Byb3RvY29sLWh0dHAnKTtcbnZhciB1dGlsV2FpdGVyID0gcmVxdWlyZSgnQHNtaXRoeS91dGlsLXdhaXRlcicpO1xuXG5jb25zdCByZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzID0gKG9wdGlvbnMpID0+IHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihvcHRpb25zLCB7XG4gICAgICAgIHVzZUR1YWxzdGFja0VuZHBvaW50OiBvcHRpb25zLnVzZUR1YWxzdGFja0VuZHBvaW50ID8/IGZhbHNlLFxuICAgICAgICB1c2VGaXBzRW5kcG9pbnQ6IG9wdGlvbnMudXNlRmlwc0VuZHBvaW50ID8/IGZhbHNlLFxuICAgICAgICBkZWZhdWx0U2lnbmluZ05hbWU6IFwiZHluYW1vZGJcIixcbiAgICB9KTtcbn07XG5jb25zdCBjb21tb25QYXJhbXMgPSB7XG4gICAgVXNlRklQUzogeyB0eXBlOiBcImJ1aWx0SW5QYXJhbXNcIiwgbmFtZTogXCJ1c2VGaXBzRW5kcG9pbnRcIiB9LFxuICAgIEFjY291bnRJZDogeyB0eXBlOiBcImJ1aWx0SW5QYXJhbXNcIiwgbmFtZTogXCJhY2NvdW50SWRcIiB9LFxuICAgIEVuZHBvaW50OiB7IHR5cGU6IFwiYnVpbHRJblBhcmFtc1wiLCBuYW1lOiBcImVuZHBvaW50XCIgfSxcbiAgICBSZWdpb246IHsgdHlwZTogXCJidWlsdEluUGFyYW1zXCIsIG5hbWU6IFwicmVnaW9uXCIgfSxcbiAgICBVc2VEdWFsU3RhY2s6IHsgdHlwZTogXCJidWlsdEluUGFyYW1zXCIsIG5hbWU6IFwidXNlRHVhbHN0YWNrRW5kcG9pbnRcIiB9LFxuICAgIEFjY291bnRJZEVuZHBvaW50TW9kZTogeyB0eXBlOiBcImJ1aWx0SW5QYXJhbXNcIiwgbmFtZTogXCJhY2NvdW50SWRFbmRwb2ludE1vZGVcIiB9LFxufTtcblxuY2xhc3MgRHluYW1vREJTZXJ2aWNlRXhjZXB0aW9uIGV4dGVuZHMgc21pdGh5Q2xpZW50LlNlcnZpY2VFeGNlcHRpb24ge1xuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnMpIHtcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBEeW5hbW9EQlNlcnZpY2VFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59XG5cbmNsYXNzIEJhY2t1cEluVXNlRXhjZXB0aW9uIGV4dGVuZHMgRHluYW1vREJTZXJ2aWNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJCYWNrdXBJblVzZUV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkJhY2t1cEluVXNlRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEJhY2t1cEluVXNlRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgfVxufVxuY2xhc3MgQmFja3VwTm90Rm91bmRFeGNlcHRpb24gZXh0ZW5kcyBEeW5hbW9EQlNlcnZpY2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIkJhY2t1cE5vdEZvdW5kRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiQmFja3VwTm90Rm91bmRFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgQmFja3VwTm90Rm91bmRFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59XG5jbGFzcyBJbnRlcm5hbFNlcnZlckVycm9yIGV4dGVuZHMgRHluYW1vREJTZXJ2aWNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJJbnRlcm5hbFNlcnZlckVycm9yXCI7XG4gICAgJGZhdWx0ID0gXCJzZXJ2ZXJcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiSW50ZXJuYWxTZXJ2ZXJFcnJvclwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcInNlcnZlclwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBJbnRlcm5hbFNlcnZlckVycm9yLnByb3RvdHlwZSk7XG4gICAgfVxufVxuY2xhc3MgUmVxdWVzdExpbWl0RXhjZWVkZWQgZXh0ZW5kcyBEeW5hbW9EQlNlcnZpY2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIlJlcXVlc3RMaW1pdEV4Y2VlZGVkXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBUaHJvdHRsaW5nUmVhc29ucztcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiUmVxdWVzdExpbWl0RXhjZWVkZWRcIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgUmVxdWVzdExpbWl0RXhjZWVkZWQucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5UaHJvdHRsaW5nUmVhc29ucyA9IG9wdHMuVGhyb3R0bGluZ1JlYXNvbnM7XG4gICAgfVxufVxuY2xhc3MgVGhyb3R0bGluZ0V4Y2VwdGlvbiBleHRlbmRzIER5bmFtb0RCU2VydmljZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiVGhyb3R0bGluZ0V4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgdGhyb3R0bGluZ1JlYXNvbnM7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIlRocm90dGxpbmdFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgVGhyb3R0bGluZ0V4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLnRocm90dGxpbmdSZWFzb25zID0gb3B0cy50aHJvdHRsaW5nUmVhc29ucztcbiAgICB9XG59XG5jbGFzcyBJbnZhbGlkRW5kcG9pbnRFeGNlcHRpb24gZXh0ZW5kcyBEeW5hbW9EQlNlcnZpY2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIkludmFsaWRFbmRwb2ludEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgTWVzc2FnZTtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiSW52YWxpZEVuZHBvaW50RXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEludmFsaWRFbmRwb2ludEV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLk1lc3NhZ2UgPSBvcHRzLk1lc3NhZ2U7XG4gICAgfVxufVxuY2xhc3MgUHJvdmlzaW9uZWRUaHJvdWdocHV0RXhjZWVkZWRFeGNlcHRpb24gZXh0ZW5kcyBEeW5hbW9EQlNlcnZpY2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIlByb3Zpc2lvbmVkVGhyb3VnaHB1dEV4Y2VlZGVkRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBUaHJvdHRsaW5nUmVhc29ucztcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiUHJvdmlzaW9uZWRUaHJvdWdocHV0RXhjZWVkZWRFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgUHJvdmlzaW9uZWRUaHJvdWdocHV0RXhjZWVkZWRFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5UaHJvdHRsaW5nUmVhc29ucyA9IG9wdHMuVGhyb3R0bGluZ1JlYXNvbnM7XG4gICAgfVxufVxuY2xhc3MgUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvbiBleHRlbmRzIER5bmFtb0RCU2VydmljZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIlJlc291cmNlTm90Rm91bmRFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn1cbmNsYXNzIEl0ZW1Db2xsZWN0aW9uU2l6ZUxpbWl0RXhjZWVkZWRFeGNlcHRpb24gZXh0ZW5kcyBEeW5hbW9EQlNlcnZpY2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIkl0ZW1Db2xsZWN0aW9uU2l6ZUxpbWl0RXhjZWVkZWRFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJJdGVtQ29sbGVjdGlvblNpemVMaW1pdEV4Y2VlZGVkRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEl0ZW1Db2xsZWN0aW9uU2l6ZUxpbWl0RXhjZWVkZWRFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59XG5jbGFzcyBSZXBsaWNhdGVkV3JpdGVDb25mbGljdEV4Y2VwdGlvbiBleHRlbmRzIER5bmFtb0RCU2VydmljZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiUmVwbGljYXRlZFdyaXRlQ29uZmxpY3RFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgICRyZXRyeWFibGUgPSB7fTtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiUmVwbGljYXRlZFdyaXRlQ29uZmxpY3RFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgUmVwbGljYXRlZFdyaXRlQ29uZmxpY3RFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59XG5jbGFzcyBDb250aW51b3VzQmFja3Vwc1VuYXZhaWxhYmxlRXhjZXB0aW9uIGV4dGVuZHMgRHluYW1vREJTZXJ2aWNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJDb250aW51b3VzQmFja3Vwc1VuYXZhaWxhYmxlRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiQ29udGludW91c0JhY2t1cHNVbmF2YWlsYWJsZUV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBDb250aW51b3VzQmFja3Vwc1VuYXZhaWxhYmxlRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgfVxufVxuY2xhc3MgTGltaXRFeGNlZWRlZEV4Y2VwdGlvbiBleHRlbmRzIER5bmFtb0RCU2VydmljZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiTGltaXRFeGNlZWRlZEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkxpbWl0RXhjZWVkZWRFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgTGltaXRFeGNlZWRlZEV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn1cbmNsYXNzIFRhYmxlSW5Vc2VFeGNlcHRpb24gZXh0ZW5kcyBEeW5hbW9EQlNlcnZpY2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIlRhYmxlSW5Vc2VFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJUYWJsZUluVXNlRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFRhYmxlSW5Vc2VFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59XG5jbGFzcyBUYWJsZU5vdEZvdW5kRXhjZXB0aW9uIGV4dGVuZHMgRHluYW1vREJTZXJ2aWNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJUYWJsZU5vdEZvdW5kRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiVGFibGVOb3RGb3VuZEV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBUYWJsZU5vdEZvdW5kRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgfVxufVxuY2xhc3MgR2xvYmFsVGFibGVBbHJlYWR5RXhpc3RzRXhjZXB0aW9uIGV4dGVuZHMgRHluYW1vREJTZXJ2aWNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJHbG9iYWxUYWJsZUFscmVhZHlFeGlzdHNFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJHbG9iYWxUYWJsZUFscmVhZHlFeGlzdHNFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgR2xvYmFsVGFibGVBbHJlYWR5RXhpc3RzRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgfVxufVxuY2xhc3MgUmVzb3VyY2VJblVzZUV4Y2VwdGlvbiBleHRlbmRzIER5bmFtb0RCU2VydmljZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiUmVzb3VyY2VJblVzZUV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIlJlc291cmNlSW5Vc2VFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgUmVzb3VyY2VJblVzZUV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn1cbmNsYXNzIFRyYW5zYWN0aW9uQ29uZmxpY3RFeGNlcHRpb24gZXh0ZW5kcyBEeW5hbW9EQlNlcnZpY2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIlRyYW5zYWN0aW9uQ29uZmxpY3RFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJUcmFuc2FjdGlvbkNvbmZsaWN0RXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFRyYW5zYWN0aW9uQ29uZmxpY3RFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59XG5jbGFzcyBQb2xpY3lOb3RGb3VuZEV4Y2VwdGlvbiBleHRlbmRzIER5bmFtb0RCU2VydmljZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiUG9saWN5Tm90Rm91bmRFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJQb2xpY3lOb3RGb3VuZEV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBQb2xpY3lOb3RGb3VuZEV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn1cbmNsYXNzIEV4cG9ydE5vdEZvdW5kRXhjZXB0aW9uIGV4dGVuZHMgRHluYW1vREJTZXJ2aWNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJFeHBvcnROb3RGb3VuZEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkV4cG9ydE5vdEZvdW5kRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEV4cG9ydE5vdEZvdW5kRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgfVxufVxuY2xhc3MgR2xvYmFsVGFibGVOb3RGb3VuZEV4Y2VwdGlvbiBleHRlbmRzIER5bmFtb0RCU2VydmljZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiR2xvYmFsVGFibGVOb3RGb3VuZEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkdsb2JhbFRhYmxlTm90Rm91bmRFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgR2xvYmFsVGFibGVOb3RGb3VuZEV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn1cbmNsYXNzIEltcG9ydE5vdEZvdW5kRXhjZXB0aW9uIGV4dGVuZHMgRHluYW1vREJTZXJ2aWNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJJbXBvcnROb3RGb3VuZEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkltcG9ydE5vdEZvdW5kRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEltcG9ydE5vdEZvdW5kRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgfVxufVxuY2xhc3MgRHVwbGljYXRlSXRlbUV4Y2VwdGlvbiBleHRlbmRzIER5bmFtb0RCU2VydmljZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiRHVwbGljYXRlSXRlbUV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkR1cGxpY2F0ZUl0ZW1FeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgRHVwbGljYXRlSXRlbUV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn1cbmNsYXNzIElkZW1wb3RlbnRQYXJhbWV0ZXJNaXNtYXRjaEV4Y2VwdGlvbiBleHRlbmRzIER5bmFtb0RCU2VydmljZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiSWRlbXBvdGVudFBhcmFtZXRlck1pc21hdGNoRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBNZXNzYWdlO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJJZGVtcG90ZW50UGFyYW1ldGVyTWlzbWF0Y2hFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgSWRlbXBvdGVudFBhcmFtZXRlck1pc21hdGNoRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuTWVzc2FnZSA9IG9wdHMuTWVzc2FnZTtcbiAgICB9XG59XG5jbGFzcyBUcmFuc2FjdGlvbkluUHJvZ3Jlc3NFeGNlcHRpb24gZXh0ZW5kcyBEeW5hbW9EQlNlcnZpY2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIlRyYW5zYWN0aW9uSW5Qcm9ncmVzc0V4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgTWVzc2FnZTtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiVHJhbnNhY3Rpb25JblByb2dyZXNzRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFRyYW5zYWN0aW9uSW5Qcm9ncmVzc0V4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLk1lc3NhZ2UgPSBvcHRzLk1lc3NhZ2U7XG4gICAgfVxufVxuY2xhc3MgRXhwb3J0Q29uZmxpY3RFeGNlcHRpb24gZXh0ZW5kcyBEeW5hbW9EQlNlcnZpY2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIkV4cG9ydENvbmZsaWN0RXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiRXhwb3J0Q29uZmxpY3RFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgRXhwb3J0Q29uZmxpY3RFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59XG5jbGFzcyBJbnZhbGlkRXhwb3J0VGltZUV4Y2VwdGlvbiBleHRlbmRzIER5bmFtb0RCU2VydmljZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiSW52YWxpZEV4cG9ydFRpbWVFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJJbnZhbGlkRXhwb3J0VGltZUV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBJbnZhbGlkRXhwb3J0VGltZUV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn1cbmNsYXNzIFBvaW50SW5UaW1lUmVjb3ZlcnlVbmF2YWlsYWJsZUV4Y2VwdGlvbiBleHRlbmRzIER5bmFtb0RCU2VydmljZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiUG9pbnRJblRpbWVSZWNvdmVyeVVuYXZhaWxhYmxlRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiUG9pbnRJblRpbWVSZWNvdmVyeVVuYXZhaWxhYmxlRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFBvaW50SW5UaW1lUmVjb3ZlcnlVbmF2YWlsYWJsZUV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn1cbmNsYXNzIEltcG9ydENvbmZsaWN0RXhjZXB0aW9uIGV4dGVuZHMgRHluYW1vREJTZXJ2aWNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJJbXBvcnRDb25mbGljdEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkltcG9ydENvbmZsaWN0RXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEltcG9ydENvbmZsaWN0RXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgfVxufVxuY2xhc3MgVGFibGVBbHJlYWR5RXhpc3RzRXhjZXB0aW9uIGV4dGVuZHMgRHluYW1vREJTZXJ2aWNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJUYWJsZUFscmVhZHlFeGlzdHNFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJUYWJsZUFscmVhZHlFeGlzdHNFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgVGFibGVBbHJlYWR5RXhpc3RzRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgfVxufVxuY2xhc3MgSW52YWxpZFJlc3RvcmVUaW1lRXhjZXB0aW9uIGV4dGVuZHMgRHluYW1vREJTZXJ2aWNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJJbnZhbGlkUmVzdG9yZVRpbWVFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJJbnZhbGlkUmVzdG9yZVRpbWVFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgSW52YWxpZFJlc3RvcmVUaW1lRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgfVxufVxuY2xhc3MgUmVwbGljYUFscmVhZHlFeGlzdHNFeGNlcHRpb24gZXh0ZW5kcyBEeW5hbW9EQlNlcnZpY2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIlJlcGxpY2FBbHJlYWR5RXhpc3RzRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiUmVwbGljYUFscmVhZHlFeGlzdHNFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgUmVwbGljYUFscmVhZHlFeGlzdHNFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59XG5jbGFzcyBSZXBsaWNhTm90Rm91bmRFeGNlcHRpb24gZXh0ZW5kcyBEeW5hbW9EQlNlcnZpY2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIlJlcGxpY2FOb3RGb3VuZEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIlJlcGxpY2FOb3RGb3VuZEV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBSZXBsaWNhTm90Rm91bmRFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59XG5jbGFzcyBJbmRleE5vdEZvdW5kRXhjZXB0aW9uIGV4dGVuZHMgRHluYW1vREJTZXJ2aWNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJJbmRleE5vdEZvdW5kRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiSW5kZXhOb3RGb3VuZEV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBJbmRleE5vdEZvdW5kRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgfVxufVxuY2xhc3MgQ29uZGl0aW9uYWxDaGVja0ZhaWxlZEV4Y2VwdGlvbiBleHRlbmRzIER5bmFtb0RCU2VydmljZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiQ29uZGl0aW9uYWxDaGVja0ZhaWxlZEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgSXRlbTtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiQ29uZGl0aW9uYWxDaGVja0ZhaWxlZEV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBDb25kaXRpb25hbENoZWNrRmFpbGVkRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuSXRlbSA9IG9wdHMuSXRlbTtcbiAgICB9XG59XG5jbGFzcyBUcmFuc2FjdGlvbkNhbmNlbGVkRXhjZXB0aW9uIGV4dGVuZHMgRHluYW1vREJTZXJ2aWNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJUcmFuc2FjdGlvbkNhbmNlbGVkRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBNZXNzYWdlO1xuICAgIENhbmNlbGxhdGlvblJlYXNvbnM7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIlRyYW5zYWN0aW9uQ2FuY2VsZWRFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgVHJhbnNhY3Rpb25DYW5jZWxlZEV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLk1lc3NhZ2UgPSBvcHRzLk1lc3NhZ2U7XG4gICAgICAgIHRoaXMuQ2FuY2VsbGF0aW9uUmVhc29ucyA9IG9wdHMuQ2FuY2VsbGF0aW9uUmVhc29ucztcbiAgICB9XG59XG5cbmNvbnN0IF9BID0gXCJBY3Rpb25cIjtcbmNvbnN0IF9BQkEgPSBcIkFyY2hpdmFsQmFja3VwQXJuXCI7XG5jb25zdCBfQUNEVFAgPSBcIkFwcHJveGltYXRlQ3JlYXRpb25EYXRlVGltZVByZWNpc2lvblwiO1xuY29uc3QgX0FEID0gXCJBdHRyaWJ1dGVEZWZpbml0aW9uXCI7XG5jb25zdCBfQURUID0gXCJBcmNoaXZhbERhdGVUaW1lXCI7XG5jb25zdCBfQUR0ID0gXCJBdHRyaWJ1dGVEZWZpbml0aW9uc1wiO1xuY29uc3QgX0FNID0gXCJBdHRyaWJ1dGVNYXBcIjtcbmNvbnN0IF9BTVJDVSA9IFwiQWNjb3VudE1heFJlYWRDYXBhY2l0eVVuaXRzXCI7XG5jb25zdCBfQU1XQ1UgPSBcIkFjY291bnRNYXhXcml0ZUNhcGFjaXR5VW5pdHNcIjtcbmNvbnN0IF9BTiA9IFwiQXR0cmlidXRlTmFtZVwiO1xuY29uc3QgX0FSID0gXCJBcmNoaXZhbFJlYXNvblwiO1xuY29uc3QgX0FTID0gXCJBcmNoaXZhbFN1bW1hcnlcIjtcbmNvbnN0IF9BU0QgPSBcIkF1dG9TY2FsaW5nRGlzYWJsZWRcIjtcbmNvbnN0IF9BU1BEID0gXCJBdXRvU2NhbGluZ1BvbGljeURlc2NyaXB0aW9uXCI7XG5jb25zdCBfQVNQREwgPSBcIkF1dG9TY2FsaW5nUG9saWN5RGVzY3JpcHRpb25MaXN0XCI7XG5jb25zdCBfQVNQVSA9IFwiQXV0b1NjYWxpbmdQb2xpY3lVcGRhdGVcIjtcbmNvbnN0IF9BU1JBID0gXCJBdXRvU2NhbGluZ1JvbGVBcm5cIjtcbmNvbnN0IF9BU1NEID0gXCJBdXRvU2NhbGluZ1NldHRpbmdzRGVzY3JpcHRpb25cIjtcbmNvbnN0IF9BU1NVID0gXCJBdXRvU2NhbGluZ1NldHRpbmdzVXBkYXRlXCI7XG5jb25zdCBfQVNUVFNQQ0QgPSBcIkF1dG9TY2FsaW5nVGFyZ2V0VHJhY2tpbmdTY2FsaW5nUG9saWN5Q29uZmlndXJhdGlvbkRlc2NyaXB0aW9uXCI7XG5jb25zdCBfQVNUVFNQQ1UgPSBcIkF1dG9TY2FsaW5nVGFyZ2V0VHJhY2tpbmdTY2FsaW5nUG9saWN5Q29uZmlndXJhdGlvblVwZGF0ZVwiO1xuY29uc3QgX0FUID0gXCJBdHRyaWJ1dGVUeXBlXCI7XG5jb25zdCBfQVRHID0gXCJBdHRyaWJ1dGVzVG9HZXRcIjtcbmNvbnN0IF9BVSA9IFwiQXR0cmlidXRlVXBkYXRlc1wiO1xuY29uc3QgX0FWID0gXCJBdHRyaWJ1dGVWYWx1ZVwiO1xuY29uc3QgX0FWTCA9IFwiQXR0cmlidXRlVmFsdWVMaXN0XCI7XG5jb25zdCBfQVZVID0gXCJBdHRyaWJ1dGVWYWx1ZVVwZGF0ZVwiO1xuY29uc3QgX0FkID0gXCJBZGRyZXNzXCI7XG5jb25zdCBfQXQgPSBcIkF0dHJpYnV0ZXNcIjtcbmNvbnN0IF9CID0gXCJCYWNrZmlsbGluZ1wiO1xuY29uc3QgX0JBID0gXCJCYWNrdXBBcm5cIjtcbmNvbnN0IF9CQ0RUID0gXCJCYWNrdXBDcmVhdGlvbkRhdGVUaW1lXCI7XG5jb25zdCBfQkQgPSBcIkJhY2t1cERlc2NyaXB0aW9uXCI7XG5jb25zdCBfQkRhID0gXCJCYWNrdXBEZXRhaWxzXCI7XG5jb25zdCBfQkVEVCA9IFwiQmFja3VwRXhwaXJ5RGF0ZVRpbWVcIjtcbmNvbnN0IF9CRVMgPSBcIkJhdGNoRXhlY3V0ZVN0YXRlbWVudFwiO1xuY29uc3QgX0JFU0kgPSBcIkJhdGNoRXhlY3V0ZVN0YXRlbWVudElucHV0XCI7XG5jb25zdCBfQkVTTyA9IFwiQmF0Y2hFeGVjdXRlU3RhdGVtZW50T3V0cHV0XCI7XG5jb25zdCBfQkdJID0gXCJCYXRjaEdldEl0ZW1cIjtcbmNvbnN0IF9CR0lJID0gXCJCYXRjaEdldEl0ZW1JbnB1dFwiO1xuY29uc3QgX0JHSU8gPSBcIkJhdGNoR2V0SXRlbU91dHB1dFwiO1xuY29uc3QgX0JHUk0gPSBcIkJhdGNoR2V0UmVzcG9uc2VNYXBcIjtcbmNvbnN0IF9CR1JNYSA9IFwiQmF0Y2hHZXRSZXF1ZXN0TWFwXCI7XG5jb25zdCBfQklVRSA9IFwiQmFja3VwSW5Vc2VFeGNlcHRpb25cIjtcbmNvbnN0IF9CTSA9IFwiQmlsbGluZ01vZGVcIjtcbmNvbnN0IF9CTU8gPSBcIkJpbGxpbmdNb2RlT3ZlcnJpZGVcIjtcbmNvbnN0IF9CTVMgPSBcIkJpbGxpbmdNb2RlU3VtbWFyeVwiO1xuY29uc3QgX0JOID0gXCJCYWNrdXBOYW1lXCI7XG5jb25zdCBfQk5GRSA9IFwiQmFja3VwTm90Rm91bmRFeGNlcHRpb25cIjtcbmNvbnN0IF9CT09MID0gXCJCT09MXCI7XG5jb25zdCBfQlMgPSBcIkJhY2t1cFN0YXR1c1wiO1xuY29uc3QgX0JTQiA9IFwiQmFja3VwU2l6ZUJ5dGVzXCI7XG5jb25zdCBfQlNCaSA9IFwiQmlsbGVkU2l6ZUJ5dGVzXCI7XG5jb25zdCBfQlNFID0gXCJCYXRjaFN0YXRlbWVudEVycm9yXCI7XG5jb25zdCBfQlNSID0gXCJCYXRjaFN0YXRlbWVudFJlcXVlc3RcIjtcbmNvbnN0IF9CU1JhID0gXCJCYXRjaFN0YXRlbWVudFJlc3BvbnNlXCI7XG5jb25zdCBfQlNfID0gXCJCU1wiO1xuY29uc3QgX0JTYSA9IFwiQmFja3VwU3VtbWFyeVwiO1xuY29uc3QgX0JTYWMgPSBcIkJhY2t1cFN1bW1hcmllc1wiO1xuY29uc3QgX0JUID0gXCJCYWNrdXBUeXBlXCI7XG5jb25zdCBfQldJID0gXCJCYXRjaFdyaXRlSXRlbVwiO1xuY29uc3QgX0JXSUkgPSBcIkJhdGNoV3JpdGVJdGVtSW5wdXRcIjtcbmNvbnN0IF9CV0lPID0gXCJCYXRjaFdyaXRlSXRlbU91dHB1dFwiO1xuY29uc3QgX0JXSVJNID0gXCJCYXRjaFdyaXRlSXRlbVJlcXVlc3RNYXBcIjtcbmNvbnN0IF9CXyA9IFwiQlwiO1xuY29uc3QgX0MgPSBcIkNvZGVcIjtcbmNvbnN0IF9DQiA9IFwiQ3JlYXRlQmFja3VwXCI7XG5jb25zdCBfQ0JEID0gXCJDb250aW51b3VzQmFja3Vwc0Rlc2NyaXB0aW9uXCI7XG5jb25zdCBfQ0JJID0gXCJDcmVhdGVCYWNrdXBJbnB1dFwiO1xuY29uc3QgX0NCTyA9IFwiQ3JlYXRlQmFja3VwT3V0cHV0XCI7XG5jb25zdCBfQ0JTID0gXCJDb250aW51b3VzQmFja3Vwc1N0YXR1c1wiO1xuY29uc3QgX0NCVUUgPSBcIkNvbnRpbnVvdXNCYWNrdXBzVW5hdmFpbGFibGVFeGNlcHRpb25cIjtcbmNvbnN0IF9DQyA9IFwiQ29uc3VtZWRDYXBhY2l0eVwiO1xuY29uc3QgX0NDRkUgPSBcIkNvbmRpdGlvbmFsQ2hlY2tGYWlsZWRFeGNlcHRpb25cIjtcbmNvbnN0IF9DQ00gPSBcIkNvbnN1bWVkQ2FwYWNpdHlNdWx0aXBsZVwiO1xuY29uc3QgX0NDbyA9IFwiQ29uZGl0aW9uQ2hlY2tcIjtcbmNvbnN0IF9DRFQgPSBcIkNyZWF0aW9uRGF0ZVRpbWVcIjtcbmNvbnN0IF9DRSA9IFwiQ29uZGl0aW9uRXhwcmVzc2lvblwiO1xuY29uc3QgX0NHU0lBID0gXCJDcmVhdGVHbG9iYWxTZWNvbmRhcnlJbmRleEFjdGlvblwiO1xuY29uc3QgX0NHVCA9IFwiQ3JlYXRlR2xvYmFsVGFibGVcIjtcbmNvbnN0IF9DR1RJID0gXCJDcmVhdGVHbG9iYWxUYWJsZUlucHV0XCI7XG5jb25zdCBfQ0dUTyA9IFwiQ3JlYXRlR2xvYmFsVGFibGVPdXRwdXRcIjtcbmNvbnN0IF9DR1RXR01BID0gXCJDcmVhdGVHbG9iYWxUYWJsZVdpdG5lc3NHcm91cE1lbWJlckFjdGlvblwiO1xuY29uc3QgX0NJQSA9IFwiQ29udHJpYnV0b3JJbnNpZ2h0c0FjdGlvblwiO1xuY29uc3QgX0NJTSA9IFwiQ29udHJpYnV0b3JJbnNpZ2h0c01vZGVcIjtcbmNvbnN0IF9DSVJMID0gXCJDb250cmlidXRvckluc2lnaHRzUnVsZUxpc3RcIjtcbmNvbnN0IF9DSVMgPSBcIkNvbnRyaWJ1dG9ySW5zaWdodHNTdW1tYXJ5XCI7XG5jb25zdCBfQ0lTbyA9IFwiQ29udHJpYnV0b3JJbnNpZ2h0c1N0YXR1c1wiO1xuY29uc3QgX0NJU29uID0gXCJDb250cmlidXRvckluc2lnaHRzU3VtbWFyaWVzXCI7XG5jb25zdCBfQ08gPSBcIkNvbXBhcmlzb25PcGVyYXRvclwiO1xuY29uc3QgX0NPbyA9IFwiQ29uZGl0aW9uYWxPcGVyYXRvclwiO1xuY29uc3QgX0NPcyA9IFwiQ3N2T3B0aW9uc1wiO1xuY29uc3QgX0NQSU0gPSBcIkNhY2hlUGVyaW9kSW5NaW51dGVzXCI7XG5jb25zdCBfQ1IgPSBcIkNvbnNpc3RlbnRSZWFkXCI7XG5jb25zdCBfQ1JBID0gXCJDcmVhdGVSZXBsaWNhQWN0aW9uXCI7XG5jb25zdCBfQ1JHTUEgPSBcIkNyZWF0ZVJlcGxpY2F0aW9uR3JvdXBNZW1iZXJBY3Rpb25cIjtcbmNvbnN0IF9DUkwgPSBcIkNhbmNlbGxhdGlvblJlYXNvbkxpc3RcIjtcbmNvbnN0IF9DUlNSQSA9IFwiQ29uZmlybVJlbW92ZVNlbGZSZXNvdXJjZUFjY2Vzc1wiO1xuY29uc3QgX0NSVCA9IFwiQ2xpZW50UmVxdWVzdFRva2VuXCI7XG5jb25zdCBfQ1JhID0gXCJDYW5jZWxsYXRpb25SZWFzb25cIjtcbmNvbnN0IF9DUmFuID0gXCJDYW5jZWxsYXRpb25SZWFzb25zXCI7XG5jb25zdCBfQ1QgPSBcIkNsaWVudFRva2VuXCI7XG5jb25zdCBfQ1RJID0gXCJDcmVhdGVUYWJsZUlucHV0XCI7XG5jb25zdCBfQ1RPID0gXCJDcmVhdGVUYWJsZU91dHB1dFwiO1xuY29uc3QgX0NUciA9IFwiQ3JlYXRlVGFibGVcIjtcbmNvbnN0IF9DVSA9IFwiQ2FwYWNpdHlVbml0c1wiO1xuY29uc3QgX0NXTEdBID0gXCJDbG91ZFdhdGNoTG9nR3JvdXBBcm5cIjtcbmNvbnN0IF9DYSA9IFwiQ2FwYWNpdHlcIjtcbmNvbnN0IF9DbyA9IFwiQ29uZGl0aW9uXCI7XG5jb25zdCBfQ291ID0gXCJDb3VudFwiO1xuY29uc3QgX0NyID0gXCJDcmVhdGVcIjtcbmNvbnN0IF9DcyA9IFwiQ3N2XCI7XG5jb25zdCBfRCA9IFwiRGVsaW1pdGVyXCI7XG5jb25zdCBfREIgPSBcIkRlbGV0ZUJhY2t1cFwiO1xuY29uc3QgX0RCSSA9IFwiRGVsZXRlQmFja3VwSW5wdXRcIjtcbmNvbnN0IF9EQkllID0gXCJEZXNjcmliZUJhY2t1cElucHV0XCI7XG5jb25zdCBfREJPID0gXCJEZWxldGVCYWNrdXBPdXRwdXRcIjtcbmNvbnN0IF9EQk9lID0gXCJEZXNjcmliZUJhY2t1cE91dHB1dFwiO1xuY29uc3QgX0RCZSA9IFwiRGVzY3JpYmVCYWNrdXBcIjtcbmNvbnN0IF9EQ0IgPSBcIkRlc2NyaWJlQ29udGludW91c0JhY2t1cHNcIjtcbmNvbnN0IF9EQ0JJID0gXCJEZXNjcmliZUNvbnRpbnVvdXNCYWNrdXBzSW5wdXRcIjtcbmNvbnN0IF9EQ0JPID0gXCJEZXNjcmliZUNvbnRpbnVvdXNCYWNrdXBzT3V0cHV0XCI7XG5jb25zdCBfRENJID0gXCJEZXNjcmliZUNvbnRyaWJ1dG9ySW5zaWdodHNcIjtcbmNvbnN0IF9EQ0lJID0gXCJEZXNjcmliZUNvbnRyaWJ1dG9ySW5zaWdodHNJbnB1dFwiO1xuY29uc3QgX0RDSU8gPSBcIkRlc2NyaWJlQ29udHJpYnV0b3JJbnNpZ2h0c091dHB1dFwiO1xuY29uc3QgX0RFID0gXCJEZXNjcmliZUVuZHBvaW50c1wiO1xuY29uc3QgX0RFSSA9IFwiRGVzY3JpYmVFeHBvcnRJbnB1dFwiO1xuY29uc3QgX0RFTyA9IFwiRGVzY3JpYmVFeHBvcnRPdXRwdXRcIjtcbmNvbnN0IF9ERVIgPSBcIkRlc2NyaWJlRW5kcG9pbnRzUmVxdWVzdFwiO1xuY29uc3QgX0RFUmUgPSBcIkRlc2NyaWJlRW5kcG9pbnRzUmVzcG9uc2VcIjtcbmNvbnN0IF9ERWUgPSBcIkRlc2NyaWJlRXhwb3J0XCI7XG5jb25zdCBfREdTSUEgPSBcIkRlbGV0ZUdsb2JhbFNlY29uZGFyeUluZGV4QWN0aW9uXCI7XG5jb25zdCBfREdUID0gXCJEZXNjcmliZUdsb2JhbFRhYmxlXCI7XG5jb25zdCBfREdUSSA9IFwiRGVzY3JpYmVHbG9iYWxUYWJsZUlucHV0XCI7XG5jb25zdCBfREdUTyA9IFwiRGVzY3JpYmVHbG9iYWxUYWJsZU91dHB1dFwiO1xuY29uc3QgX0RHVFMgPSBcIkRlc2NyaWJlR2xvYmFsVGFibGVTZXR0aW5nc1wiO1xuY29uc3QgX0RHVFNJID0gXCJEZXNjcmliZUdsb2JhbFRhYmxlU2V0dGluZ3NJbnB1dFwiO1xuY29uc3QgX0RHVFNPID0gXCJEZXNjcmliZUdsb2JhbFRhYmxlU2V0dGluZ3NPdXRwdXRcIjtcbmNvbnN0IF9ER1RXR01BID0gXCJEZWxldGVHbG9iYWxUYWJsZVdpdG5lc3NHcm91cE1lbWJlckFjdGlvblwiO1xuY29uc3QgX0RJID0gXCJEZWxldGVJdGVtXCI7XG5jb25zdCBfRElFID0gXCJEdXBsaWNhdGVJdGVtRXhjZXB0aW9uXCI7XG5jb25zdCBfRElJID0gXCJEZWxldGVJdGVtSW5wdXRcIjtcbmNvbnN0IF9ESUllID0gXCJEZXNjcmliZUltcG9ydElucHV0XCI7XG5jb25zdCBfRElPID0gXCJEZWxldGVJdGVtT3V0cHV0XCI7XG5jb25zdCBfRElPZSA9IFwiRGVzY3JpYmVJbXBvcnRPdXRwdXRcIjtcbmNvbnN0IF9ESWUgPSBcIkRlc2NyaWJlSW1wb3J0XCI7XG5jb25zdCBfREtTRCA9IFwiRGVzY3JpYmVLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb25cIjtcbmNvbnN0IF9ES1NESSA9IFwiRGVzY3JpYmVLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb25JbnB1dFwiO1xuY29uc3QgX0RLU0RPID0gXCJEZXNjcmliZUtpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvbk91dHB1dFwiO1xuY29uc3QgX0RLU0RpID0gXCJEaXNhYmxlS2luZXNpc1N0cmVhbWluZ0Rlc3RpbmF0aW9uXCI7XG5jb25zdCBfREwgPSBcIkRlc2NyaWJlTGltaXRzXCI7XG5jb25zdCBfRExJID0gXCJEZXNjcmliZUxpbWl0c0lucHV0XCI7XG5jb25zdCBfRExPID0gXCJEZXNjcmliZUxpbWl0c091dHB1dFwiO1xuY29uc3QgX0RQRSA9IFwiRGVsZXRpb25Qcm90ZWN0aW9uRW5hYmxlZFwiO1xuY29uc3QgX0RSID0gXCJEZWxldGVSZXF1ZXN0XCI7XG5jb25zdCBfRFJBID0gXCJEZWxldGVSZXBsaWNhQWN0aW9uXCI7XG5jb25zdCBfRFJHTUEgPSBcIkRlbGV0ZVJlcGxpY2F0aW9uR3JvdXBNZW1iZXJBY3Rpb25cIjtcbmNvbnN0IF9EUlAgPSBcIkRlbGV0ZVJlc291cmNlUG9saWN5XCI7XG5jb25zdCBfRFJQSSA9IFwiRGVsZXRlUmVzb3VyY2VQb2xpY3lJbnB1dFwiO1xuY29uc3QgX0RSUE8gPSBcIkRlbGV0ZVJlc291cmNlUG9saWN5T3V0cHV0XCI7XG5jb25zdCBfRFMgPSBcIkRlc3RpbmF0aW9uU3RhdHVzXCI7XG5jb25zdCBfRFNEID0gXCJEZXN0aW5hdGlvblN0YXR1c0Rlc2NyaXB0aW9uXCI7XG5jb25zdCBfRFNJID0gXCJEaXNhYmxlU2NhbGVJblwiO1xuY29uc3QgX0RUID0gXCJEZWxldGVUYWJsZVwiO1xuY29uc3QgX0RUSSA9IFwiRGVsZXRlVGFibGVJbnB1dFwiO1xuY29uc3QgX0RUSWUgPSBcIkRlc2NyaWJlVGFibGVJbnB1dFwiO1xuY29uc3QgX0RUTyA9IFwiRGVsZXRlVGFibGVPdXRwdXRcIjtcbmNvbnN0IF9EVE9lID0gXCJEZXNjcmliZVRhYmxlT3V0cHV0XCI7XG5jb25zdCBfRFRSQVMgPSBcIkRlc2NyaWJlVGFibGVSZXBsaWNhQXV0b1NjYWxpbmdcIjtcbmNvbnN0IF9EVFJBU0kgPSBcIkRlc2NyaWJlVGFibGVSZXBsaWNhQXV0b1NjYWxpbmdJbnB1dFwiO1xuY29uc3QgX0RUUkFTTyA9IFwiRGVzY3JpYmVUYWJsZVJlcGxpY2FBdXRvU2NhbGluZ091dHB1dFwiO1xuY29uc3QgX0RUVEwgPSBcIkRlc2NyaWJlVGltZVRvTGl2ZVwiO1xuY29uc3QgX0RUVExJID0gXCJEZXNjcmliZVRpbWVUb0xpdmVJbnB1dFwiO1xuY29uc3QgX0RUVExPID0gXCJEZXNjcmliZVRpbWVUb0xpdmVPdXRwdXRcIjtcbmNvbnN0IF9EVGUgPSBcIkRlc2NyaWJlVGFibGVcIjtcbmNvbnN0IF9EZSA9IFwiRGVsZXRlXCI7XG5jb25zdCBfRSA9IFwiRXJyb3JcIjtcbmNvbnN0IF9FQSA9IFwiRXhwb3J0QXJuXCI7XG5jb25zdCBfRUFNID0gXCJFeHBlY3RlZEF0dHJpYnV0ZU1hcFwiO1xuY29uc3QgX0VBTiA9IFwiRXhwcmVzc2lvbkF0dHJpYnV0ZU5hbWVzXCI7XG5jb25zdCBfRUFWID0gXCJFeHByZXNzaW9uQXR0cmlidXRlVmFsdWVzXCI7XG5jb25zdCBfRUFWTSA9IFwiRXhwcmVzc2lvbkF0dHJpYnV0ZVZhbHVlTWFwXCI7XG5jb25zdCBfRUFWeCA9IFwiRXhwZWN0ZWRBdHRyaWJ1dGVWYWx1ZVwiO1xuY29uc3QgX0VDID0gXCJFcnJvckNvdW50XCI7XG5jb25zdCBfRUNFID0gXCJFeHBvcnRDb25mbGljdEV4Y2VwdGlvblwiO1xuY29uc3QgX0VEID0gXCJFeHBvcnREZXNjcmlwdGlvblwiO1xuY29uc3QgX0VEeCA9IFwiRXhjZXB0aW9uRGVzY3JpcHRpb25cIjtcbmNvbnN0IF9FRiA9IFwiRXhwb3J0Rm9ybWF0XCI7XG5jb25zdCBfRUZUID0gXCJFeHBvcnRGcm9tVGltZVwiO1xuY29uc3QgX0VLU0MgPSBcIkVuYWJsZUtpbmVzaXNTdHJlYW1pbmdDb25maWd1cmF0aW9uXCI7XG5jb25zdCBfRUtTRCA9IFwiRW5hYmxlS2luZXNpc1N0cmVhbWluZ0Rlc3RpbmF0aW9uXCI7XG5jb25zdCBfRU0gPSBcIkV4cG9ydE1hbmlmZXN0XCI7XG5jb25zdCBfRU4gPSBcIkV4Y2VwdGlvbk5hbWVcIjtcbmNvbnN0IF9FTkZFID0gXCJFeHBvcnROb3RGb3VuZEV4Y2VwdGlvblwiO1xuY29uc3QgX0VSRFQgPSBcIkVhcmxpZXN0UmVzdG9yYWJsZURhdGVUaW1lXCI7XG5jb25zdCBfRVJJID0gXCJFeHBlY3RlZFJldmlzaW9uSWRcIjtcbmNvbnN0IF9FUyA9IFwiRXhwb3J0U3RhdHVzXCI7XG5jb25zdCBfRVNCQSA9IFwiRXhjbHVzaXZlU3RhcnRCYWNrdXBBcm5cIjtcbmNvbnN0IF9FU0dUTiA9IFwiRXhjbHVzaXZlU3RhcnRHbG9iYWxUYWJsZU5hbWVcIjtcbmNvbnN0IF9FU0kgPSBcIkV4ZWN1dGVTdGF0ZW1lbnRJbnB1dFwiO1xuY29uc3QgX0VTSyA9IFwiRXhjbHVzaXZlU3RhcnRLZXlcIjtcbmNvbnN0IF9FU08gPSBcIkV4ZWN1dGVTdGF0ZW1lbnRPdXRwdXRcIjtcbmNvbnN0IF9FU1ROID0gXCJFeGNsdXNpdmVTdGFydFRhYmxlTmFtZVwiO1xuY29uc3QgX0VTeCA9IFwiRXhwb3J0U3VtbWFyeVwiO1xuY29uc3QgX0VTeGUgPSBcIkV4ZWN1dGVTdGF0ZW1lbnRcIjtcbmNvbnN0IF9FU3hwID0gXCJFeHBvcnRTdW1tYXJpZXNcIjtcbmNvbnN0IF9FVCA9IFwiRW5kVGltZVwiO1xuY29uc3QgX0VUSSA9IFwiRXhlY3V0ZVRyYW5zYWN0aW9uSW5wdXRcIjtcbmNvbnN0IF9FVE8gPSBcIkV4ZWN1dGVUcmFuc2FjdGlvbk91dHB1dFwiO1xuY29uc3QgX0VUVCA9IFwiRXhwb3J0VG9UaW1lXCI7XG5jb25zdCBfRVRUUElUID0gXCJFeHBvcnRUYWJsZVRvUG9pbnRJblRpbWVcIjtcbmNvbnN0IF9FVFRQSVRJID0gXCJFeHBvcnRUYWJsZVRvUG9pbnRJblRpbWVJbnB1dFwiO1xuY29uc3QgX0VUVFBJVE8gPSBcIkV4cG9ydFRhYmxlVG9Qb2ludEluVGltZU91dHB1dFwiO1xuY29uc3QgX0VUeCA9IFwiRXhwb3J0VGltZVwiO1xuY29uc3QgX0VUeGUgPSBcIkV4ZWN1dGVUcmFuc2FjdGlvblwiO1xuY29uc3QgX0VUeHAgPSBcIkV4cG9ydFR5cGVcIjtcbmNvbnN0IF9FVlQgPSBcIkV4cG9ydFZpZXdUeXBlXCI7XG5jb25zdCBfRW4gPSBcIkVuZHBvaW50c1wiO1xuY29uc3QgX0VuYSA9IFwiRW5hYmxlZFwiO1xuY29uc3QgX0VuZCA9IFwiRW5kcG9pbnRcIjtcbmNvbnN0IF9FeCA9IFwiRXhwZWN0ZWRcIjtcbmNvbnN0IF9FeGkgPSBcIkV4aXN0c1wiO1xuY29uc3QgX0ZDID0gXCJGYWlsdXJlQ29kZVwiO1xuY29uc3QgX0ZDTSA9IFwiRmlsdGVyQ29uZGl0aW9uTWFwXCI7XG5jb25zdCBfRkUgPSBcIkZhaWx1cmVFeGNlcHRpb25cIjtcbmNvbnN0IF9GRWkgPSBcIkZpbHRlckV4cHJlc3Npb25cIjtcbmNvbnN0IF9GTSA9IFwiRmFpbHVyZU1lc3NhZ2VcIjtcbmNvbnN0IF9HID0gXCJHZXRcIjtcbmNvbnN0IF9HSSA9IFwiR2V0SXRlbVwiO1xuY29uc3QgX0dJSSA9IFwiR2V0SXRlbUlucHV0XCI7XG5jb25zdCBfR0lPID0gXCJHZXRJdGVtT3V0cHV0XCI7XG5jb25zdCBfR1JQID0gXCJHZXRSZXNvdXJjZVBvbGljeVwiO1xuY29uc3QgX0dSUEkgPSBcIkdldFJlc291cmNlUG9saWN5SW5wdXRcIjtcbmNvbnN0IF9HUlBPID0gXCJHZXRSZXNvdXJjZVBvbGljeU91dHB1dFwiO1xuY29uc3QgX0dTSSA9IFwiR2xvYmFsU2Vjb25kYXJ5SW5kZXhlc1wiO1xuY29uc3QgX0dTSUFTVSA9IFwiR2xvYmFsU2Vjb25kYXJ5SW5kZXhBdXRvU2NhbGluZ1VwZGF0ZVwiO1xuY29uc3QgX0dTSUFTVUwgPSBcIkdsb2JhbFNlY29uZGFyeUluZGV4QXV0b1NjYWxpbmdVcGRhdGVMaXN0XCI7XG5jb25zdCBfR1NJRCA9IFwiR2xvYmFsU2Vjb25kYXJ5SW5kZXhEZXNjcmlwdGlvblwiO1xuY29uc3QgX0dTSURMID0gXCJHbG9iYWxTZWNvbmRhcnlJbmRleERlc2NyaXB0aW9uTGlzdFwiO1xuY29uc3QgX0dTSUkgPSBcIkdsb2JhbFNlY29uZGFyeUluZGV4SW5mb1wiO1xuY29uc3QgX0dTSUwgPSBcIkdsb2JhbFNlY29uZGFyeUluZGV4TGlzdFwiO1xuY29uc3QgX0dTSU8gPSBcIkdsb2JhbFNlY29uZGFyeUluZGV4T3ZlcnJpZGVcIjtcbmNvbnN0IF9HU0lVID0gXCJHbG9iYWxTZWNvbmRhcnlJbmRleFVwZGF0ZVwiO1xuY29uc3QgX0dTSVVMID0gXCJHbG9iYWxTZWNvbmRhcnlJbmRleFVwZGF0ZUxpc3RcIjtcbmNvbnN0IF9HU0lVbCA9IFwiR2xvYmFsU2Vjb25kYXJ5SW5kZXhVcGRhdGVzXCI7XG5jb25zdCBfR1NJV1REID0gXCJHbG9iYWxTZWNvbmRhcnlJbmRleFdhcm1UaHJvdWdocHV0RGVzY3JpcHRpb25cIjtcbmNvbnN0IF9HU0lsID0gXCJHbG9iYWxTZWNvbmRhcnlJbmRleFwiO1xuY29uc3QgX0dUID0gXCJHbG9iYWxUYWJsZVwiO1xuY29uc3QgX0dUQSA9IFwiR2xvYmFsVGFibGVBcm5cIjtcbmNvbnN0IF9HVEFFRSA9IFwiR2xvYmFsVGFibGVBbHJlYWR5RXhpc3RzRXhjZXB0aW9uXCI7XG5jb25zdCBfR1RCTSA9IFwiR2xvYmFsVGFibGVCaWxsaW5nTW9kZVwiO1xuY29uc3QgX0dURCA9IFwiR2xvYmFsVGFibGVEZXNjcmlwdGlvblwiO1xuY29uc3QgX0dUR1NJU1UgPSBcIkdsb2JhbFRhYmxlR2xvYmFsU2Vjb25kYXJ5SW5kZXhTZXR0aW5nc1VwZGF0ZVwiO1xuY29uc3QgX0dUR1NJU1VMID0gXCJHbG9iYWxUYWJsZUdsb2JhbFNlY29uZGFyeUluZGV4U2V0dGluZ3NVcGRhdGVMaXN0XCI7XG5jb25zdCBfR1RMID0gXCJHbG9iYWxUYWJsZUxpc3RcIjtcbmNvbnN0IF9HVE4gPSBcIkdsb2JhbFRhYmxlTmFtZVwiO1xuY29uc3QgX0dUTkZFID0gXCJHbG9iYWxUYWJsZU5vdEZvdW5kRXhjZXB0aW9uXCI7XG5jb25zdCBfR1RQV0NBU1NVID0gXCJHbG9iYWxUYWJsZVByb3Zpc2lvbmVkV3JpdGVDYXBhY2l0eUF1dG9TY2FsaW5nU2V0dGluZ3NVcGRhdGVcIjtcbmNvbnN0IF9HVFBXQ1UgPSBcIkdsb2JhbFRhYmxlUHJvdmlzaW9uZWRXcml0ZUNhcGFjaXR5VW5pdHNcIjtcbmNvbnN0IF9HVFMgPSBcIkdsb2JhbFRhYmxlU3RhdHVzXCI7XG5jb25zdCBfR1RWID0gXCJHbG9iYWxUYWJsZVZlcnNpb25cIjtcbmNvbnN0IF9HVFcgPSBcIkdsb2JhbFRhYmxlV2l0bmVzc2VzXCI7XG5jb25zdCBfR1RXRCA9IFwiR2xvYmFsVGFibGVXaXRuZXNzRGVzY3JpcHRpb25cIjtcbmNvbnN0IF9HVFdETCA9IFwiR2xvYmFsVGFibGVXaXRuZXNzRGVzY3JpcHRpb25MaXN0XCI7XG5jb25zdCBfR1RXR1UgPSBcIkdsb2JhbFRhYmxlV2l0bmVzc0dyb3VwVXBkYXRlXCI7XG5jb25zdCBfR1RXR1VMID0gXCJHbG9iYWxUYWJsZVdpdG5lc3NHcm91cFVwZGF0ZUxpc3RcIjtcbmNvbnN0IF9HVFdVID0gXCJHbG9iYWxUYWJsZVdpdG5lc3NVcGRhdGVzXCI7XG5jb25zdCBfR1RsID0gXCJHbG9iYWxUYWJsZXNcIjtcbmNvbnN0IF9ITCA9IFwiSGVhZGVyTGlzdFwiO1xuY29uc3QgX0kgPSBcIkl0ZW1cIjtcbmNvbnN0IF9JQSA9IFwiSW1wb3J0QXJuXCI7XG5jb25zdCBfSUFuID0gXCJJbmRleEFyblwiO1xuY29uc3QgX0lDID0gXCJJdGVtQ291bnRcIjtcbmNvbnN0IF9JQ0UgPSBcIkltcG9ydENvbmZsaWN0RXhjZXB0aW9uXCI7XG5jb25zdCBfSUNLID0gXCJJdGVtQ29sbGVjdGlvbktleVwiO1xuY29uc3QgX0lDS0FNID0gXCJJdGVtQ29sbGVjdGlvbktleUF0dHJpYnV0ZU1hcFwiO1xuY29uc3QgX0lDTSA9IFwiSXRlbUNvbGxlY3Rpb25NZXRyaWNzXCI7XG5jb25zdCBfSUNNTSA9IFwiSXRlbUNvbGxlY3Rpb25NZXRyaWNzTXVsdGlwbGVcIjtcbmNvbnN0IF9JQ01QVCA9IFwiSXRlbUNvbGxlY3Rpb25NZXRyaWNzUGVyVGFibGVcIjtcbmNvbnN0IF9JQ1NMRUUgPSBcIkl0ZW1Db2xsZWN0aW9uU2l6ZUxpbWl0RXhjZWVkZWRFeGNlcHRpb25cIjtcbmNvbnN0IF9JQ1QgPSBcIklucHV0Q29tcHJlc3Npb25UeXBlXCI7XG5jb25zdCBfSUVEVCA9IFwiSW5hY2Nlc3NpYmxlRW5jcnlwdGlvbkRhdGVUaW1lXCI7XG5jb25zdCBfSUVFID0gXCJJbnZhbGlkRW5kcG9pbnRFeGNlcHRpb25cIjtcbmNvbnN0IF9JRVMgPSBcIkluY3JlbWVudGFsRXhwb3J0U3BlY2lmaWNhdGlvblwiO1xuY29uc3QgX0lFVEUgPSBcIkludmFsaWRFeHBvcnRUaW1lRXhjZXB0aW9uXCI7XG5jb25zdCBfSUYgPSBcIklucHV0Rm9ybWF0XCI7XG5jb25zdCBfSUZPID0gXCJJbnB1dEZvcm1hdE9wdGlvbnNcIjtcbmNvbnN0IF9JSUMgPSBcIkltcG9ydGVkSXRlbUNvdW50XCI7XG5jb25zdCBfSUwgPSBcIkl0ZW1MaXN0XCI7XG5jb25zdCBfSU4gPSBcIkluZGV4TmFtZVwiO1xuY29uc3QgX0lORkUgPSBcIkltcG9ydE5vdEZvdW5kRXhjZXB0aW9uXCI7XG5jb25zdCBfSU5GRW4gPSBcIkluZGV4Tm90Rm91bmRFeGNlcHRpb25cIjtcbmNvbnN0IF9JUE1FID0gXCJJZGVtcG90ZW50UGFyYW1ldGVyTWlzbWF0Y2hFeGNlcHRpb25cIjtcbmNvbnN0IF9JUiA9IFwiSXRlbVJlc3BvbnNlXCI7XG5jb25zdCBfSVJMID0gXCJJdGVtUmVzcG9uc2VMaXN0XCI7XG5jb25zdCBfSVJURSA9IFwiSW52YWxpZFJlc3RvcmVUaW1lRXhjZXB0aW9uXCI7XG5jb25zdCBfSVMgPSBcIkluZGV4U3RhdHVzXCI7XG5jb25zdCBfSVNCID0gXCJJbmRleFNpemVCeXRlc1wiO1xuY29uc3QgX0lTRSA9IFwiSW50ZXJuYWxTZXJ2ZXJFcnJvclwiO1xuY29uc3QgX0lTTCA9IFwiSW1wb3J0U3VtbWFyeUxpc3RcIjtcbmNvbnN0IF9JU20gPSBcIkltcG9ydFN1bW1hcnlcIjtcbmNvbnN0IF9JU21wID0gXCJJbXBvcnRTdGF0dXNcIjtcbmNvbnN0IF9JVCA9IFwiSW1wb3J0VGFibGVcIjtcbmNvbnN0IF9JVEQgPSBcIkltcG9ydFRhYmxlRGVzY3JpcHRpb25cIjtcbmNvbnN0IF9JVEkgPSBcIkltcG9ydFRhYmxlSW5wdXRcIjtcbmNvbnN0IF9JVE8gPSBcIkltcG9ydFRhYmxlT3V0cHV0XCI7XG5jb25zdCBfSXQgPSBcIkl0ZW1zXCI7XG5jb25zdCBfSyA9IFwiS2V5XCI7XG5jb25zdCBfS0FBID0gXCJLZXlzQW5kQXR0cmlidXRlc1wiO1xuY29uc3QgX0tDID0gXCJLZXlDb25kaXRpb25zXCI7XG5jb25zdCBfS0NFID0gXCJLZXlDb25kaXRpb25FeHByZXNzaW9uXCI7XG5jb25zdCBfS0RTRCA9IFwiS2luZXNpc0RhdGFTdHJlYW1EZXN0aW5hdGlvbnNcIjtcbmNvbnN0IF9LRFNEaSA9IFwiS2luZXNpc0RhdGFTdHJlYW1EZXN0aW5hdGlvblwiO1xuY29uc3QgX0tMID0gXCJLZXlMaXN0XCI7XG5jb25zdCBfS01TTUtBID0gXCJLTVNNYXN0ZXJLZXlBcm5cIjtcbmNvbnN0IF9LTVNNS0kgPSBcIktNU01hc3RlcktleUlkXCI7XG5jb25zdCBfS1MgPSBcIktleVNjaGVtYVwiO1xuY29uc3QgX0tTREkgPSBcIktpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvbklucHV0XCI7XG5jb25zdCBfS1NETyA9IFwiS2luZXNpc1N0cmVhbWluZ0Rlc3RpbmF0aW9uT3V0cHV0XCI7XG5jb25zdCBfS1NFID0gXCJLZXlTY2hlbWFFbGVtZW50XCI7XG5jb25zdCBfS1QgPSBcIktleVR5cGVcIjtcbmNvbnN0IF9LZSA9IFwiS2V5c1wiO1xuY29uc3QgX0wgPSBcIkxpbWl0XCI7XG5jb25zdCBfTEFWID0gXCJMaXN0QXR0cmlidXRlVmFsdWVcIjtcbmNvbnN0IF9MQiA9IFwiTGlzdEJhY2t1cHNcIjtcbmNvbnN0IF9MQkkgPSBcIkxpc3RCYWNrdXBzSW5wdXRcIjtcbmNvbnN0IF9MQk8gPSBcIkxpc3RCYWNrdXBzT3V0cHV0XCI7XG5jb25zdCBfTENJID0gXCJMaXN0Q29udHJpYnV0b3JJbnNpZ2h0c1wiO1xuY29uc3QgX0xDSUkgPSBcIkxpc3RDb250cmlidXRvckluc2lnaHRzSW5wdXRcIjtcbmNvbnN0IF9MQ0lPID0gXCJMaXN0Q29udHJpYnV0b3JJbnNpZ2h0c091dHB1dFwiO1xuY29uc3QgX0xERFQgPSBcIkxhc3REZWNyZWFzZURhdGVUaW1lXCI7XG5jb25zdCBfTEUgPSBcIkxpc3RFeHBvcnRzXCI7XG5jb25zdCBfTEVCQSA9IFwiTGFzdEV2YWx1YXRlZEJhY2t1cEFyblwiO1xuY29uc3QgX0xFRSA9IFwiTGltaXRFeGNlZWRlZEV4Y2VwdGlvblwiO1xuY29uc3QgX0xFR1ROID0gXCJMYXN0RXZhbHVhdGVkR2xvYmFsVGFibGVOYW1lXCI7XG5jb25zdCBfTEVJID0gXCJMaXN0RXhwb3J0c0lucHV0XCI7XG5jb25zdCBfTEVLID0gXCJMYXN0RXZhbHVhdGVkS2V5XCI7XG5jb25zdCBfTEVPID0gXCJMaXN0RXhwb3J0c091dHB1dFwiO1xuY29uc3QgX0xFVE4gPSBcIkxhc3RFdmFsdWF0ZWRUYWJsZU5hbWVcIjtcbmNvbnN0IF9MR1QgPSBcIkxpc3RHbG9iYWxUYWJsZXNcIjtcbmNvbnN0IF9MR1RJID0gXCJMaXN0R2xvYmFsVGFibGVzSW5wdXRcIjtcbmNvbnN0IF9MR1RPID0gXCJMaXN0R2xvYmFsVGFibGVzT3V0cHV0XCI7XG5jb25zdCBfTEkgPSBcIkxpc3RJbXBvcnRzXCI7XG5jb25zdCBfTElEVCA9IFwiTGFzdEluY3JlYXNlRGF0ZVRpbWVcIjtcbmNvbnN0IF9MSUkgPSBcIkxpc3RJbXBvcnRzSW5wdXRcIjtcbmNvbnN0IF9MSU8gPSBcIkxpc3RJbXBvcnRzT3V0cHV0XCI7XG5jb25zdCBfTFJEVCA9IFwiTGF0ZXN0UmVzdG9yYWJsZURhdGVUaW1lXCI7XG5jb25zdCBfTFNBID0gXCJMYXRlc3RTdHJlYW1Bcm5cIjtcbmNvbnN0IF9MU0kgPSBcIkxvY2FsU2Vjb25kYXJ5SW5kZXhlc1wiO1xuY29uc3QgX0xTSUQgPSBcIkxvY2FsU2Vjb25kYXJ5SW5kZXhEZXNjcmlwdGlvblwiO1xuY29uc3QgX0xTSURMID0gXCJMb2NhbFNlY29uZGFyeUluZGV4RGVzY3JpcHRpb25MaXN0XCI7XG5jb25zdCBfTFNJSSA9IFwiTG9jYWxTZWNvbmRhcnlJbmRleEluZm9cIjtcbmNvbnN0IF9MU0lMID0gXCJMb2NhbFNlY29uZGFyeUluZGV4TGlzdFwiO1xuY29uc3QgX0xTSU8gPSBcIkxvY2FsU2Vjb25kYXJ5SW5kZXhPdmVycmlkZVwiO1xuY29uc3QgX0xTSW8gPSBcIkxvY2FsU2Vjb25kYXJ5SW5kZXhcIjtcbmNvbnN0IF9MU0wgPSBcIkxhdGVzdFN0cmVhbUxhYmVsXCI7XG5jb25zdCBfTFQgPSBcIkxpc3RUYWJsZXNcIjtcbmNvbnN0IF9MVEkgPSBcIkxpc3RUYWJsZXNJbnB1dFwiO1xuY29uc3QgX0xUTyA9IFwiTGlzdFRhYmxlc091dHB1dFwiO1xuY29uc3QgX0xUT1IgPSBcIkxpc3RUYWdzT2ZSZXNvdXJjZVwiO1xuY29uc3QgX0xUT1JJID0gXCJMaXN0VGFnc09mUmVzb3VyY2VJbnB1dFwiO1xuY29uc3QgX0xUT1JPID0gXCJMaXN0VGFnc09mUmVzb3VyY2VPdXRwdXRcIjtcbmNvbnN0IF9MVURUID0gXCJMYXN0VXBkYXRlRGF0ZVRpbWVcIjtcbmNvbnN0IF9MVVRQUFJEVCA9IFwiTGFzdFVwZGF0ZVRvUGF5UGVyUmVxdWVzdERhdGVUaW1lXCI7XG5jb25zdCBfTF8gPSBcIkxcIjtcbmNvbnN0IF9NID0gXCJNZXNzYWdlXCI7XG5jb25zdCBfTUFWID0gXCJNYXBBdHRyaWJ1dGVWYWx1ZVwiO1xuY29uc3QgX01SID0gXCJNYXhSZXN1bHRzXCI7XG5jb25zdCBfTVJDID0gXCJNdWx0aVJlZ2lvbkNvbnNpc3RlbmN5XCI7XG5jb25zdCBfTVJSVSA9IFwiTWF4UmVhZFJlcXVlc3RVbml0c1wiO1xuY29uc3QgX01VID0gXCJNaW5pbXVtVW5pdHNcIjtcbmNvbnN0IF9NVWEgPSBcIk1heGltdW1Vbml0c1wiO1xuY29uc3QgX01XUlUgPSBcIk1heFdyaXRlUmVxdWVzdFVuaXRzXCI7XG5jb25zdCBfTV8gPSBcIk1cIjtcbmNvbnN0IF9OID0gXCJOXCI7XG5jb25zdCBfTktBID0gXCJOb25LZXlBdHRyaWJ1dGVzXCI7XG5jb25zdCBfTk9EVCA9IFwiTnVtYmVyT2ZEZWNyZWFzZXNUb2RheVwiO1xuY29uc3QgX05TID0gXCJOU1wiO1xuY29uc3QgX05UID0gXCJOZXh0VG9rZW5cIjtcbmNvbnN0IF9OVUxMID0gXCJOVUxMXCI7XG5jb25zdCBfT0RUID0gXCJPbkRlbWFuZFRocm91Z2hwdXRcIjtcbmNvbnN0IF9PRFRPID0gXCJPbkRlbWFuZFRocm91Z2hwdXRPdmVycmlkZVwiO1xuY29uc3QgX1AgPSBcIlBhcmFtZXRlcnNcIjtcbmNvbnN0IF9QRSA9IFwiUHJvamVjdGlvbkV4cHJlc3Npb25cIjtcbmNvbnN0IF9QSSA9IFwiUHV0SXRlbVwiO1xuY29uc3QgX1BJQyA9IFwiUHJvY2Vzc2VkSXRlbUNvdW50XCI7XG5jb25zdCBfUElJID0gXCJQdXRJdGVtSW5wdXRcIjtcbmNvbnN0IF9QSUlBTSA9IFwiUHV0SXRlbUlucHV0QXR0cmlidXRlTWFwXCI7XG5jb25zdCBfUElPID0gXCJQdXRJdGVtT3V0cHV0XCI7XG5jb25zdCBfUElUUkQgPSBcIlBvaW50SW5UaW1lUmVjb3ZlcnlEZXNjcmlwdGlvblwiO1xuY29uc3QgX1BJVFJFID0gXCJQb2ludEluVGltZVJlY292ZXJ5RW5hYmxlZFwiO1xuY29uc3QgX1BJVFJTID0gXCJQb2ludEluVGltZVJlY292ZXJ5U3RhdHVzXCI7XG5jb25zdCBfUElUUlNvID0gXCJQb2ludEluVGltZVJlY292ZXJ5U3BlY2lmaWNhdGlvblwiO1xuY29uc3QgX1BJVFJVRSA9IFwiUG9pbnRJblRpbWVSZWNvdmVyeVVuYXZhaWxhYmxlRXhjZXB0aW9uXCI7XG5jb25zdCBfUE4gPSBcIlBvbGljeU5hbWVcIjtcbmNvbnN0IF9QTkZFID0gXCJQb2xpY3lOb3RGb3VuZEV4Y2VwdGlvblwiO1xuY29uc3QgX1BRTEJSID0gXCJQYXJ0aVFMQmF0Y2hSZXF1ZXN0XCI7XG5jb25zdCBfUFFMQlJhID0gXCJQYXJ0aVFMQmF0Y2hSZXNwb25zZVwiO1xuY29uc3QgX1BSID0gXCJQdXRSZXF1ZXN0XCI7XG5jb25zdCBfUFJDQVNTID0gXCJQcm92aXNpb25lZFJlYWRDYXBhY2l0eUF1dG9TY2FsaW5nU2V0dGluZ3NcIjtcbmNvbnN0IF9QUkNBU1NVID0gXCJQcm92aXNpb25lZFJlYWRDYXBhY2l0eUF1dG9TY2FsaW5nU2V0dGluZ3NVcGRhdGVcIjtcbmNvbnN0IF9QUkNBU1UgPSBcIlByb3Zpc2lvbmVkUmVhZENhcGFjaXR5QXV0b1NjYWxpbmdVcGRhdGVcIjtcbmNvbnN0IF9QUkNVID0gXCJQcm92aXNpb25lZFJlYWRDYXBhY2l0eVVuaXRzXCI7XG5jb25zdCBfUFJQID0gXCJQdXRSZXNvdXJjZVBvbGljeVwiO1xuY29uc3QgX1BSUEkgPSBcIlB1dFJlc291cmNlUG9saWN5SW5wdXRcIjtcbmNvbnN0IF9QUlBPID0gXCJQdXRSZXNvdXJjZVBvbGljeU91dHB1dFwiO1xuY29uc3QgX1BTID0gXCJQYWdlU2l6ZVwiO1xuY29uc3QgX1BTQiA9IFwiUHJvY2Vzc2VkU2l6ZUJ5dGVzXCI7XG5jb25zdCBfUFNQID0gXCJQcmVwYXJlZFN0YXRlbWVudFBhcmFtZXRlcnNcIjtcbmNvbnN0IF9QU2EgPSBcIlBhcmFtZXRlcml6ZWRTdGF0ZW1lbnRcIjtcbmNvbnN0IF9QU2FyID0gXCJQYXJhbWV0ZXJpemVkU3RhdGVtZW50c1wiO1xuY29uc3QgX1BUID0gXCJQcm92aXNpb25lZFRocm91Z2hwdXRcIjtcbmNvbnN0IF9QVEQgPSBcIlByb3Zpc2lvbmVkVGhyb3VnaHB1dERlc2NyaXB0aW9uXCI7XG5jb25zdCBfUFRFRSA9IFwiUHJvdmlzaW9uZWRUaHJvdWdocHV0RXhjZWVkZWRFeGNlcHRpb25cIjtcbmNvbnN0IF9QVE8gPSBcIlByb3Zpc2lvbmVkVGhyb3VnaHB1dE92ZXJyaWRlXCI7XG5jb25zdCBfUFRyID0gXCJQcm9qZWN0aW9uVHlwZVwiO1xuY29uc3QgX1BXQ0FTUyA9IFwiUHJvdmlzaW9uZWRXcml0ZUNhcGFjaXR5QXV0b1NjYWxpbmdTZXR0aW5nc1wiO1xuY29uc3QgX1BXQ0FTU1UgPSBcIlByb3Zpc2lvbmVkV3JpdGVDYXBhY2l0eUF1dG9TY2FsaW5nU2V0dGluZ3NVcGRhdGVcIjtcbmNvbnN0IF9QV0NBU1UgPSBcIlByb3Zpc2lvbmVkV3JpdGVDYXBhY2l0eUF1dG9TY2FsaW5nVXBkYXRlXCI7XG5jb25zdCBfUFdDVSA9IFwiUHJvdmlzaW9uZWRXcml0ZUNhcGFjaXR5VW5pdHNcIjtcbmNvbnN0IF9QbyA9IFwiUG9saWN5XCI7XG5jb25zdCBfUHIgPSBcIlByb2plY3Rpb25cIjtcbmNvbnN0IF9QdSA9IFwiUHV0XCI7XG5jb25zdCBfUSA9IFwiUXVlcnlcIjtcbmNvbnN0IF9RRiA9IFwiUXVlcnlGaWx0ZXJcIjtcbmNvbnN0IF9RSSA9IFwiUXVlcnlJbnB1dFwiO1xuY29uc3QgX1FPID0gXCJRdWVyeU91dHB1dFwiO1xuY29uc3QgX1IgPSBcIlJlc3BvbnNlc1wiO1xuY29uc3QgX1JBID0gXCJSZXNvdXJjZUFyblwiO1xuY29uc3QgX1JBRUUgPSBcIlJlcGxpY2FBbHJlYWR5RXhpc3RzRXhjZXB0aW9uXCI7XG5jb25zdCBfUkFTRCA9IFwiUmVwbGljYUF1dG9TY2FsaW5nRGVzY3JpcHRpb25cIjtcbmNvbnN0IF9SQVNETCA9IFwiUmVwbGljYUF1dG9TY2FsaW5nRGVzY3JpcHRpb25MaXN0XCI7XG5jb25zdCBfUkFTVSA9IFwiUmVwbGljYUF1dG9TY2FsaW5nVXBkYXRlXCI7XG5jb25zdCBfUkFTVUwgPSBcIlJlcGxpY2FBdXRvU2NhbGluZ1VwZGF0ZUxpc3RcIjtcbmNvbnN0IF9SQk1TID0gXCJSZXBsaWNhQmlsbGluZ01vZGVTdW1tYXJ5XCI7XG5jb25zdCBfUkNDID0gXCJSZXR1cm5Db25zdW1lZENhcGFjaXR5XCI7XG5jb25zdCBfUkNVID0gXCJSZWFkQ2FwYWNpdHlVbml0c1wiO1xuY29uc3QgX1JEID0gXCJSZXBsaWNhRGVzY3JpcHRpb25cIjtcbmNvbnN0IF9SREwgPSBcIlJlcGxpY2FEZXNjcmlwdGlvbkxpc3RcIjtcbmNvbnN0IF9SRFQgPSBcIlJlc3RvcmVEYXRlVGltZVwiO1xuY29uc3QgX1JHID0gXCJSZXBsaWNhdGlvbkdyb3VwXCI7XG5jb25zdCBfUkdTSSA9IFwiUmVwbGljYUdsb2JhbFNlY29uZGFyeUluZGV4XCI7XG5jb25zdCBfUkdTSUFTRCA9IFwiUmVwbGljYUdsb2JhbFNlY29uZGFyeUluZGV4QXV0b1NjYWxpbmdEZXNjcmlwdGlvblwiO1xuY29uc3QgX1JHU0lBU0RMID0gXCJSZXBsaWNhR2xvYmFsU2Vjb25kYXJ5SW5kZXhBdXRvU2NhbGluZ0Rlc2NyaXB0aW9uTGlzdFwiO1xuY29uc3QgX1JHU0lBU1UgPSBcIlJlcGxpY2FHbG9iYWxTZWNvbmRhcnlJbmRleEF1dG9TY2FsaW5nVXBkYXRlXCI7XG5jb25zdCBfUkdTSUFTVUwgPSBcIlJlcGxpY2FHbG9iYWxTZWNvbmRhcnlJbmRleEF1dG9TY2FsaW5nVXBkYXRlTGlzdFwiO1xuY29uc3QgX1JHU0lEID0gXCJSZXBsaWNhR2xvYmFsU2Vjb25kYXJ5SW5kZXhEZXNjcmlwdGlvblwiO1xuY29uc3QgX1JHU0lETCA9IFwiUmVwbGljYUdsb2JhbFNlY29uZGFyeUluZGV4RGVzY3JpcHRpb25MaXN0XCI7XG5jb25zdCBfUkdTSUwgPSBcIlJlcGxpY2FHbG9iYWxTZWNvbmRhcnlJbmRleExpc3RcIjtcbmNvbnN0IF9SR1NJUyA9IFwiUmVwbGljYUdsb2JhbFNlY29uZGFyeUluZGV4U2V0dGluZ3NcIjtcbmNvbnN0IF9SR1NJU0QgPSBcIlJlcGxpY2FHbG9iYWxTZWNvbmRhcnlJbmRleFNldHRpbmdzRGVzY3JpcHRpb25cIjtcbmNvbnN0IF9SR1NJU0RMID0gXCJSZXBsaWNhR2xvYmFsU2Vjb25kYXJ5SW5kZXhTZXR0aW5nc0Rlc2NyaXB0aW9uTGlzdFwiO1xuY29uc3QgX1JHU0lTVSA9IFwiUmVwbGljYUdsb2JhbFNlY29uZGFyeUluZGV4U2V0dGluZ3NVcGRhdGVcIjtcbmNvbnN0IF9SR1NJU1VMID0gXCJSZXBsaWNhR2xvYmFsU2Vjb25kYXJ5SW5kZXhTZXR0aW5nc1VwZGF0ZUxpc3RcIjtcbmNvbnN0IF9SR1NJVSA9IFwiUmVwbGljYUdsb2JhbFNlY29uZGFyeUluZGV4VXBkYXRlc1wiO1xuY29uc3QgX1JHVSA9IFwiUmVwbGljYXRpb25Hcm91cFVwZGF0ZVwiO1xuY29uc3QgX1JHVUwgPSBcIlJlcGxpY2F0aW9uR3JvdXBVcGRhdGVMaXN0XCI7XG5jb25zdCBfUkkgPSBcIlJlcXVlc3RJdGVtc1wiO1xuY29uc3QgX1JJQ00gPSBcIlJldHVybkl0ZW1Db2xsZWN0aW9uTWV0cmljc1wiO1xuY29uc3QgX1JJRFQgPSBcIlJlcGxpY2FJbmFjY2Vzc2libGVEYXRlVGltZVwiO1xuY29uc3QgX1JJUCA9IFwiUmVzdG9yZUluUHJvZ3Jlc3NcIjtcbmNvbnN0IF9SSVVFID0gXCJSZXNvdXJjZUluVXNlRXhjZXB0aW9uXCI7XG5jb25zdCBfUkllID0gXCJSZXZpc2lvbklkXCI7XG5jb25zdCBfUkwgPSBcIlJlcGxpY2FMaXN0XCI7XG5jb25zdCBfUkxFID0gXCJSZXF1ZXN0TGltaXRFeGNlZWRlZFwiO1xuY29uc3QgX1JOID0gXCJSZWdpb25OYW1lXCI7XG5jb25zdCBfUk5GRSA9IFwiUmVwbGljYU5vdEZvdW5kRXhjZXB0aW9uXCI7XG5jb25zdCBfUk5GRWUgPSBcIlJlc291cmNlTm90Rm91bmRFeGNlcHRpb25cIjtcbmNvbnN0IF9SUCA9IFwiUmVzb3VyY2VQb2xpY3lcIjtcbmNvbnN0IF9SUElEID0gXCJSZWNvdmVyeVBlcmlvZEluRGF5c1wiO1xuY29uc3QgX1JQUkNBU1MgPSBcIlJlcGxpY2FQcm92aXNpb25lZFJlYWRDYXBhY2l0eUF1dG9TY2FsaW5nU2V0dGluZ3NcIjtcbmNvbnN0IF9SUFJDQVNTVSA9IFwiUmVwbGljYVByb3Zpc2lvbmVkUmVhZENhcGFjaXR5QXV0b1NjYWxpbmdTZXR0aW5nc1VwZGF0ZVwiO1xuY29uc3QgX1JQUkNBU1UgPSBcIlJlcGxpY2FQcm92aXNpb25lZFJlYWRDYXBhY2l0eUF1dG9TY2FsaW5nVXBkYXRlXCI7XG5jb25zdCBfUlBSQ1UgPSBcIlJlcGxpY2FQcm92aXNpb25lZFJlYWRDYXBhY2l0eVVuaXRzXCI7XG5jb25zdCBfUlBXQ0FTUyA9IFwiUmVwbGljYVByb3Zpc2lvbmVkV3JpdGVDYXBhY2l0eUF1dG9TY2FsaW5nU2V0dGluZ3NcIjtcbmNvbnN0IF9SUFdDVSA9IFwiUmVwbGljYVByb3Zpc2lvbmVkV3JpdGVDYXBhY2l0eVVuaXRzXCI7XG5jb25zdCBfUlMgPSBcIlJlcGxpY2FTZXR0aW5nc1wiO1xuY29uc3QgX1JTRCA9IFwiUmVwbGljYVN0YXR1c0Rlc2NyaXB0aW9uXCI7XG5jb25zdCBfUlNETCA9IFwiUmVwbGljYVNldHRpbmdzRGVzY3JpcHRpb25MaXN0XCI7XG5jb25zdCBfUlNEZSA9IFwiUmVwbGljYVNldHRpbmdzRGVzY3JpcHRpb25cIjtcbmNvbnN0IF9SU1BQID0gXCJSZXBsaWNhU3RhdHVzUGVyY2VudFByb2dyZXNzXCI7XG5jb25zdCBfUlNVID0gXCJSZXBsaWNhU2V0dGluZ3NVcGRhdGVcIjtcbmNvbnN0IF9SU1VMID0gXCJSZXBsaWNhU2V0dGluZ3NVcGRhdGVMaXN0XCI7XG5jb25zdCBfUlNlID0gXCJSZXBsaWNhU3RhdHVzXCI7XG5jb25zdCBfUlNlcyA9IFwiUmVzdG9yZVN1bW1hcnlcIjtcbmNvbnN0IF9SVEMgPSBcIlJlcGxpY2FUYWJsZUNsYXNzXCI7XG5jb25zdCBfUlRDUyA9IFwiUmVwbGljYVRhYmxlQ2xhc3NTdW1tYXJ5XCI7XG5jb25zdCBfUlRGQiA9IFwiUmVzdG9yZVRhYmxlRnJvbUJhY2t1cFwiO1xuY29uc3QgX1JURkJJID0gXCJSZXN0b3JlVGFibGVGcm9tQmFja3VwSW5wdXRcIjtcbmNvbnN0IF9SVEZCTyA9IFwiUmVzdG9yZVRhYmxlRnJvbUJhY2t1cE91dHB1dFwiO1xuY29uc3QgX1JUVFBJVCA9IFwiUmVzdG9yZVRhYmxlVG9Qb2ludEluVGltZVwiO1xuY29uc3QgX1JUVFBJVEkgPSBcIlJlc3RvcmVUYWJsZVRvUG9pbnRJblRpbWVJbnB1dFwiO1xuY29uc3QgX1JUVFBJVE8gPSBcIlJlc3RvcmVUYWJsZVRvUG9pbnRJblRpbWVPdXRwdXRcIjtcbmNvbnN0IF9SVSA9IFwiUmVwbGljYVVwZGF0ZVwiO1xuY29uc3QgX1JVTCA9IFwiUmVwbGljYVVwZGF0ZUxpc3RcIjtcbmNvbnN0IF9SVVBTID0gXCJSZWFkVW5pdHNQZXJTZWNvbmRcIjtcbmNvbnN0IF9SVWUgPSBcIlJlcGxpY2FVcGRhdGVzXCI7XG5jb25zdCBfUlYgPSBcIlJldHVyblZhbHVlc1wiO1xuY29uc3QgX1JWT0NDRiA9IFwiUmV0dXJuVmFsdWVzT25Db25kaXRpb25DaGVja0ZhaWx1cmVcIjtcbmNvbnN0IF9SV0NFID0gXCJSZXBsaWNhdGVkV3JpdGVDb25mbGljdEV4Y2VwdGlvblwiO1xuY29uc3QgX1JlID0gXCJSZXBsaWNhXCI7XG5jb25zdCBfUmVwID0gXCJSZXBsaWNhc1wiO1xuY29uc3QgX1MgPSBcIlN0YXRlbWVudHNcIjtcbmNvbnN0IF9TQSA9IFwiU3RyZWFtQXJuXCI7XG5jb25zdCBfU0IgPSBcIlMzQnVja2V0XCI7XG5jb25zdCBfU0JBID0gXCJTb3VyY2VCYWNrdXBBcm5cIjtcbmNvbnN0IF9TQk8gPSBcIlMzQnVja2V0T3duZXJcIjtcbmNvbnN0IF9TQlMgPSBcIlMzQnVja2V0U291cmNlXCI7XG5jb25zdCBfU0MgPSBcIlNjYW5uZWRDb3VudFwiO1xuY29uc3QgX1NEID0gXCJTdHJlYW1EZXNjcmlwdGlvblwiO1xuY29uc3QgX1NFID0gXCJTdHJlYW1FbmFibGVkXCI7XG5jb25zdCBfU0VSR0IgPSBcIlNpemVFc3RpbWF0ZVJhbmdlR0JcIjtcbmNvbnN0IF9TRiA9IFwiU2NhbkZpbHRlclwiO1xuY29uc3QgX1NJID0gXCJTY2FuSW5wdXRcIjtcbmNvbnN0IF9TSUMgPSBcIlNjYWxlSW5Db29sZG93blwiO1xuY29uc3QgX1NJQ00gPSBcIlNlY29uZGFyeUluZGV4ZXNDYXBhY2l0eU1hcFwiO1xuY29uc3QgX1NJRiA9IFwiU2NhbkluZGV4Rm9yd2FyZFwiO1xuY29uc3QgX1NLUCA9IFwiUzNLZXlQcmVmaXhcIjtcbmNvbnN0IF9TTyA9IFwiU2Nhbk91dHB1dFwiO1xuY29uc3QgX1NPQyA9IFwiU2NhbGVPdXRDb29sZG93blwiO1xuY29uc3QgX1NQID0gXCJTY2FsaW5nUG9saWNpZXNcIjtcbmNvbnN0IF9TUFUgPSBcIlNjYWxpbmdQb2xpY3lVcGRhdGVcIjtcbmNvbnN0IF9TUHIgPSBcIlMzUHJlZml4XCI7XG5jb25zdCBfU1MgPSBcIlN0cmVhbVNwZWNpZmljYXRpb25cIjtcbmNvbnN0IF9TU0EgPSBcIlMzU3NlQWxnb3JpdGhtXCI7XG5jb25zdCBfU1NFRCA9IFwiU1NFRGVzY3JpcHRpb25cIjtcbmNvbnN0IF9TU0VTID0gXCJTU0VTcGVjaWZpY2F0aW9uXCI7XG5jb25zdCBfU1NFU08gPSBcIlNTRVNwZWNpZmljYXRpb25PdmVycmlkZVwiO1xuY29uc3QgX1NTRVQgPSBcIlNTRVR5cGVcIjtcbmNvbnN0IF9TU0tLSSA9IFwiUzNTc2VLbXNLZXlJZFwiO1xuY29uc3QgX1NTXyA9IFwiU1NcIjtcbmNvbnN0IF9TVCA9IFwiU3RhcnRUaW1lXCI7XG5jb25zdCBfU1RBID0gXCJTb3VyY2VUYWJsZUFyblwiO1xuY29uc3QgX1NURCA9IFwiU291cmNlVGFibGVEZXRhaWxzXCI7XG5jb25zdCBfU1RGRCA9IFwiU291cmNlVGFibGVGZWF0dXJlRGV0YWlsc1wiO1xuY29uc3QgX1NUTiA9IFwiU291cmNlVGFibGVOYW1lXCI7XG5jb25zdCBfU1ZUID0gXCJTdHJlYW1WaWV3VHlwZVwiO1xuY29uc3QgX1NfID0gXCJTXCI7XG5jb25zdCBfU2MgPSBcIlNjYW5cIjtcbmNvbnN0IF9TZSA9IFwiU2VsZWN0XCI7XG5jb25zdCBfU2VnID0gXCJTZWdtZW50XCI7XG5jb25zdCBfU3QgPSBcIlN0YXRlbWVudFwiO1xuY29uc3QgX1N0YSA9IFwiU3RhdHVzXCI7XG5jb25zdCBfVCA9IFwiVGFibGVcIjtcbmNvbnN0IF9UQSA9IFwiVGFibGVBcm5cIjtcbmNvbnN0IF9UQUVFID0gXCJUYWJsZUFscmVhZHlFeGlzdHNFeGNlcHRpb25cIjtcbmNvbnN0IF9UQVNEID0gXCJUYWJsZUF1dG9TY2FsaW5nRGVzY3JpcHRpb25cIjtcbmNvbnN0IF9UQyA9IFwiVGFibGVDbGFzc1wiO1xuY29uc3QgX1RDRFQgPSBcIlRhYmxlQ3JlYXRpb25EYXRlVGltZVwiO1xuY29uc3QgX1RDRSA9IFwiVHJhbnNhY3Rpb25DYW5jZWxlZEV4Y2VwdGlvblwiO1xuY29uc3QgX1RDRXIgPSBcIlRyYW5zYWN0aW9uQ29uZmxpY3RFeGNlcHRpb25cIjtcbmNvbnN0IF9UQ08gPSBcIlRhYmxlQ2xhc3NPdmVycmlkZVwiO1xuY29uc3QgX1RDUCA9IFwiVGFibGVDcmVhdGlvblBhcmFtZXRlcnNcIjtcbmNvbnN0IF9UQ1MgPSBcIlRhYmxlQ2xhc3NTdW1tYXJ5XCI7XG5jb25zdCBfVEQgPSBcIlRhYmxlRGVzY3JpcHRpb25cIjtcbmNvbnN0IF9URSA9IFwiVGhyb3R0bGluZ0V4Y2VwdGlvblwiO1xuY29uc3QgX1RHSSA9IFwiVHJhbnNhY3RHZXRJdGVtXCI7XG5jb25zdCBfVEdJSSA9IFwiVHJhbnNhY3RHZXRJdGVtc0lucHV0XCI7XG5jb25zdCBfVEdJTCA9IFwiVHJhbnNhY3RHZXRJdGVtTGlzdFwiO1xuY29uc3QgX1RHSU8gPSBcIlRyYW5zYWN0R2V0SXRlbXNPdXRwdXRcIjtcbmNvbnN0IF9UR0lyID0gXCJUcmFuc2FjdEdldEl0ZW1zXCI7XG5jb25zdCBfVEkgPSBcIlRhYmxlSWRcIjtcbmNvbnN0IF9USVBFID0gXCJUcmFuc2FjdGlvbkluUHJvZ3Jlc3NFeGNlcHRpb25cIjtcbmNvbnN0IF9USVVFID0gXCJUYWJsZUluVXNlRXhjZXB0aW9uXCI7XG5jb25zdCBfVElyID0gXCJUcmFuc2FjdEl0ZW1zXCI7XG5jb25zdCBfVEsgPSBcIlRhZ0tleXNcIjtcbmNvbnN0IF9UTCA9IFwiVGFnTGlzdFwiO1xuY29uc3QgX1RNUkNVID0gXCJUYWJsZU1heFJlYWRDYXBhY2l0eVVuaXRzXCI7XG5jb25zdCBfVE1XQ1UgPSBcIlRhYmxlTWF4V3JpdGVDYXBhY2l0eVVuaXRzXCI7XG5jb25zdCBfVE4gPSBcIlRhYmxlTmFtZVwiO1xuY29uc3QgX1RORkUgPSBcIlRhYmxlTm90Rm91bmRFeGNlcHRpb25cIjtcbmNvbnN0IF9UTmEgPSBcIlRhYmxlTmFtZXNcIjtcbmNvbnN0IF9UUiA9IFwiVGhyb3R0bGluZ1JlYXNvbnNcIjtcbmNvbnN0IF9UUkkgPSBcIlRhZ1Jlc291cmNlSW5wdXRcIjtcbmNvbnN0IF9UUkwgPSBcIlRocm90dGxpbmdSZWFzb25MaXN0XCI7XG5jb25zdCBfVFJMQiA9IFwiVGltZVJhbmdlTG93ZXJCb3VuZFwiO1xuY29uc3QgX1RSVUIgPSBcIlRpbWVSYW5nZVVwcGVyQm91bmRcIjtcbmNvbnN0IF9UUmEgPSBcIlRhZ1Jlc291cmNlXCI7XG5jb25zdCBfVFJoID0gXCJUaHJvdHRsaW5nUmVhc29uXCI7XG5jb25zdCBfVFMgPSBcIlRyYW5zYWN0U3RhdGVtZW50c1wiO1xuY29uc3QgX1RTQiA9IFwiVGFibGVTaXplQnl0ZXNcIjtcbmNvbnN0IF9UU2EgPSBcIlRhYmxlU3RhdHVzXCI7XG5jb25zdCBfVFNvID0gXCJUb3RhbFNlZ21lbnRzXCI7XG5jb25zdCBfVFRMRCA9IFwiVGltZVRvTGl2ZURlc2NyaXB0aW9uXCI7XG5jb25zdCBfVFRMUyA9IFwiVGltZVRvTGl2ZVN0YXR1c1wiO1xuY29uc3QgX1RUTFNpID0gXCJUaW1lVG9MaXZlU3BlY2lmaWNhdGlvblwiO1xuY29uc3QgX1RUTiA9IFwiVGFyZ2V0VGFibGVOYW1lXCI7XG5jb25zdCBfVFRTUEMgPSBcIlRhcmdldFRyYWNraW5nU2NhbGluZ1BvbGljeUNvbmZpZ3VyYXRpb25cIjtcbmNvbnN0IF9UViA9IFwiVGFyZ2V0VmFsdWVcIjtcbmNvbnN0IF9UV0kgPSBcIlRyYW5zYWN0V3JpdGVJdGVtXCI7XG5jb25zdCBfVFdJSSA9IFwiVHJhbnNhY3RXcml0ZUl0ZW1zSW5wdXRcIjtcbmNvbnN0IF9UV0lMID0gXCJUcmFuc2FjdFdyaXRlSXRlbUxpc3RcIjtcbmNvbnN0IF9UV0lPID0gXCJUcmFuc2FjdFdyaXRlSXRlbXNPdXRwdXRcIjtcbmNvbnN0IF9UV0lyID0gXCJUcmFuc2FjdFdyaXRlSXRlbXNcIjtcbmNvbnN0IF9UV1REID0gXCJUYWJsZVdhcm1UaHJvdWdocHV0RGVzY3JpcHRpb25cIjtcbmNvbnN0IF9UYSA9IFwiVGFnc1wiO1xuY29uc3QgX1RhZyA9IFwiVGFnXCI7XG5jb25zdCBfVSA9IFwiVXBkYXRlXCI7XG5jb25zdCBfVUNCID0gXCJVcGRhdGVDb250aW51b3VzQmFja3Vwc1wiO1xuY29uc3QgX1VDQkkgPSBcIlVwZGF0ZUNvbnRpbnVvdXNCYWNrdXBzSW5wdXRcIjtcbmNvbnN0IF9VQ0JPID0gXCJVcGRhdGVDb250aW51b3VzQmFja3Vwc091dHB1dFwiO1xuY29uc3QgX1VDSSA9IFwiVXBkYXRlQ29udHJpYnV0b3JJbnNpZ2h0c1wiO1xuY29uc3QgX1VDSUkgPSBcIlVwZGF0ZUNvbnRyaWJ1dG9ySW5zaWdodHNJbnB1dFwiO1xuY29uc3QgX1VDSU8gPSBcIlVwZGF0ZUNvbnRyaWJ1dG9ySW5zaWdodHNPdXRwdXRcIjtcbmNvbnN0IF9VRSA9IFwiVXBkYXRlRXhwcmVzc2lvblwiO1xuY29uc3QgX1VHU0lBID0gXCJVcGRhdGVHbG9iYWxTZWNvbmRhcnlJbmRleEFjdGlvblwiO1xuY29uc3QgX1VHVCA9IFwiVXBkYXRlR2xvYmFsVGFibGVcIjtcbmNvbnN0IF9VR1RJID0gXCJVcGRhdGVHbG9iYWxUYWJsZUlucHV0XCI7XG5jb25zdCBfVUdUTyA9IFwiVXBkYXRlR2xvYmFsVGFibGVPdXRwdXRcIjtcbmNvbnN0IF9VR1RTID0gXCJVcGRhdGVHbG9iYWxUYWJsZVNldHRpbmdzXCI7XG5jb25zdCBfVUdUU0kgPSBcIlVwZGF0ZUdsb2JhbFRhYmxlU2V0dGluZ3NJbnB1dFwiO1xuY29uc3QgX1VHVFNPID0gXCJVcGRhdGVHbG9iYWxUYWJsZVNldHRpbmdzT3V0cHV0XCI7XG5jb25zdCBfVUkgPSBcIlVucHJvY2Vzc2VkSXRlbXNcIjtcbmNvbnN0IF9VSUkgPSBcIlVwZGF0ZUl0ZW1JbnB1dFwiO1xuY29uc3QgX1VJTyA9IFwiVXBkYXRlSXRlbU91dHB1dFwiO1xuY29uc3QgX1VJcCA9IFwiVXBkYXRlSXRlbVwiO1xuY29uc3QgX1VLID0gXCJVbnByb2Nlc3NlZEtleXNcIjtcbmNvbnN0IF9VS1NDID0gXCJVcGRhdGVLaW5lc2lzU3RyZWFtaW5nQ29uZmlndXJhdGlvblwiO1xuY29uc3QgX1VLU0QgPSBcIlVwZGF0ZUtpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvblwiO1xuY29uc3QgX1VLU0RJID0gXCJVcGRhdGVLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb25JbnB1dFwiO1xuY29uc3QgX1VLU0RPID0gXCJVcGRhdGVLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb25PdXRwdXRcIjtcbmNvbnN0IF9VTFJUID0gXCJVc2VMYXRlc3RSZXN0b3JhYmxlVGltZVwiO1xuY29uc3QgX1VSID0gXCJVbnRhZ1Jlc291cmNlXCI7XG5jb25zdCBfVVJHTUEgPSBcIlVwZGF0ZVJlcGxpY2F0aW9uR3JvdXBNZW1iZXJBY3Rpb25cIjtcbmNvbnN0IF9VUkkgPSBcIlVudGFnUmVzb3VyY2VJbnB1dFwiO1xuY29uc3QgX1VUID0gXCJVcGRhdGVUYWJsZVwiO1xuY29uc3QgX1VUSSA9IFwiVXBkYXRlVGFibGVJbnB1dFwiO1xuY29uc3QgX1VUTyA9IFwiVXBkYXRlVGFibGVPdXRwdXRcIjtcbmNvbnN0IF9VVFJBUyA9IFwiVXBkYXRlVGFibGVSZXBsaWNhQXV0b1NjYWxpbmdcIjtcbmNvbnN0IF9VVFJBU0kgPSBcIlVwZGF0ZVRhYmxlUmVwbGljYUF1dG9TY2FsaW5nSW5wdXRcIjtcbmNvbnN0IF9VVFJBU08gPSBcIlVwZGF0ZVRhYmxlUmVwbGljYUF1dG9TY2FsaW5nT3V0cHV0XCI7XG5jb25zdCBfVVRUTCA9IFwiVXBkYXRlVGltZVRvTGl2ZVwiO1xuY29uc3QgX1VUVExJID0gXCJVcGRhdGVUaW1lVG9MaXZlSW5wdXRcIjtcbmNvbnN0IF9VVFRMTyA9IFwiVXBkYXRlVGltZVRvTGl2ZU91dHB1dFwiO1xuY29uc3QgX1YgPSBcIlZhbHVlXCI7XG5jb25zdCBfV0NVID0gXCJXcml0ZUNhcGFjaXR5VW5pdHNcIjtcbmNvbnN0IF9XUiA9IFwiV3JpdGVSZXF1ZXN0XCI7XG5jb25zdCBfV1JyID0gXCJXcml0ZVJlcXVlc3RzXCI7XG5jb25zdCBfV1MgPSBcIldpdG5lc3NTdGF0dXNcIjtcbmNvbnN0IF9XVCA9IFwiV2FybVRocm91Z2hwdXRcIjtcbmNvbnN0IF9XVVBTID0gXCJXcml0ZVVuaXRzUGVyU2Vjb25kXCI7XG5jb25zdCBfYVFFID0gXCJhd3NRdWVyeUVycm9yXCI7XG5jb25zdCBfYyA9IFwiY2xpZW50XCI7XG5jb25zdCBfZSA9IFwiZXJyb3JcIjtcbmNvbnN0IF9oRSA9IFwiaHR0cEVycm9yXCI7XG5jb25zdCBfaEggPSBcImh0dHBIZWFkZXJcIjtcbmNvbnN0IF9tID0gXCJtZXNzYWdlXCI7XG5jb25zdCBfciA9IFwicmVhc29uXCI7XG5jb25zdCBfcmUgPSBcInJlc291cmNlXCI7XG5jb25zdCBfcyA9IFwic2VydmVyXCI7XG5jb25zdCBfc20gPSBcInNtaXRoeS50cy5zZGsuc3ludGhldGljLmNvbS5hbWF6b25hd3MuZHluYW1vZGJcIjtcbmNvbnN0IF90UiA9IFwidGhyb3R0bGluZ1JlYXNvbnNcIjtcbmNvbnN0IF94YWNyc3JhID0gXCJ4LWFtei1jb25maXJtLXJlbW92ZS1zZWxmLXJlc291cmNlLWFjY2Vzc1wiO1xuY29uc3QgbjAgPSBcImNvbS5hbWF6b25hd3MuZHluYW1vZGJcIjtcbnZhciBBcmNoaXZhbFN1bW1hcnkkID0gWzMsIG4wLCBfQVMsXG4gICAgMCxcbiAgICBbX0FEVCwgX0FSLCBfQUJBXSxcbiAgICBbNCwgMCwgMF1cbl07XG52YXIgQXR0cmlidXRlRGVmaW5pdGlvbiQgPSBbMywgbjAsIF9BRCxcbiAgICAwLFxuICAgIFtfQU4sIF9BVF0sXG4gICAgWzAsIDBdLCAyXG5dO1xudmFyIEF0dHJpYnV0ZVZhbHVlVXBkYXRlJCA9IFszLCBuMCwgX0FWVSxcbiAgICAwLFxuICAgIFtfViwgX0FdLFxuICAgIFsoKSA9PiBBdHRyaWJ1dGVWYWx1ZSQsIDBdXG5dO1xudmFyIEF1dG9TY2FsaW5nUG9saWN5RGVzY3JpcHRpb24kID0gWzMsIG4wLCBfQVNQRCxcbiAgICAwLFxuICAgIFtfUE4sIF9UVFNQQ10sXG4gICAgWzAsICgpID0+IEF1dG9TY2FsaW5nVGFyZ2V0VHJhY2tpbmdTY2FsaW5nUG9saWN5Q29uZmlndXJhdGlvbkRlc2NyaXB0aW9uJF1cbl07XG52YXIgQXV0b1NjYWxpbmdQb2xpY3lVcGRhdGUkID0gWzMsIG4wLCBfQVNQVSxcbiAgICAwLFxuICAgIFtfVFRTUEMsIF9QTl0sXG4gICAgWygpID0+IEF1dG9TY2FsaW5nVGFyZ2V0VHJhY2tpbmdTY2FsaW5nUG9saWN5Q29uZmlndXJhdGlvblVwZGF0ZSQsIDBdLCAxXG5dO1xudmFyIEF1dG9TY2FsaW5nU2V0dGluZ3NEZXNjcmlwdGlvbiQgPSBbMywgbjAsIF9BU1NELFxuICAgIDAsXG4gICAgW19NVSwgX01VYSwgX0FTRCwgX0FTUkEsIF9TUF0sXG4gICAgWzEsIDEsIDIsIDAsICgpID0+IEF1dG9TY2FsaW5nUG9saWN5RGVzY3JpcHRpb25MaXN0XVxuXTtcbnZhciBBdXRvU2NhbGluZ1NldHRpbmdzVXBkYXRlJCA9IFszLCBuMCwgX0FTU1UsXG4gICAgMCxcbiAgICBbX01VLCBfTVVhLCBfQVNELCBfQVNSQSwgX1NQVV0sXG4gICAgWzEsIDEsIDIsIDAsICgpID0+IEF1dG9TY2FsaW5nUG9saWN5VXBkYXRlJF1cbl07XG52YXIgQXV0b1NjYWxpbmdUYXJnZXRUcmFja2luZ1NjYWxpbmdQb2xpY3lDb25maWd1cmF0aW9uRGVzY3JpcHRpb24kID0gWzMsIG4wLCBfQVNUVFNQQ0QsXG4gICAgMCxcbiAgICBbX1RWLCBfRFNJLCBfU0lDLCBfU09DXSxcbiAgICBbMSwgMiwgMSwgMV0sIDFcbl07XG52YXIgQXV0b1NjYWxpbmdUYXJnZXRUcmFja2luZ1NjYWxpbmdQb2xpY3lDb25maWd1cmF0aW9uVXBkYXRlJCA9IFszLCBuMCwgX0FTVFRTUENVLFxuICAgIDAsXG4gICAgW19UViwgX0RTSSwgX1NJQywgX1NPQ10sXG4gICAgWzEsIDIsIDEsIDFdLCAxXG5dO1xudmFyIEJhY2t1cERlc2NyaXB0aW9uJCA9IFszLCBuMCwgX0JELFxuICAgIDAsXG4gICAgW19CRGEsIF9TVEQsIF9TVEZEXSxcbiAgICBbKCkgPT4gQmFja3VwRGV0YWlscyQsICgpID0+IFNvdXJjZVRhYmxlRGV0YWlscyQsICgpID0+IFNvdXJjZVRhYmxlRmVhdHVyZURldGFpbHMkXVxuXTtcbnZhciBCYWNrdXBEZXRhaWxzJCA9IFszLCBuMCwgX0JEYSxcbiAgICAwLFxuICAgIFtfQkEsIF9CTiwgX0JTLCBfQlQsIF9CQ0RULCBfQlNCLCBfQkVEVF0sXG4gICAgWzAsIDAsIDAsIDAsIDQsIDEsIDRdLCA1XG5dO1xudmFyIEJhY2t1cEluVXNlRXhjZXB0aW9uJCA9IFstMywgbjAsIF9CSVVFLFxuICAgIHsgW19lXTogX2MgfSxcbiAgICBbX21dLFxuICAgIFswXVxuXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKEJhY2t1cEluVXNlRXhjZXB0aW9uJCwgQmFja3VwSW5Vc2VFeGNlcHRpb24pO1xudmFyIEJhY2t1cE5vdEZvdW5kRXhjZXB0aW9uJCA9IFstMywgbjAsIF9CTkZFLFxuICAgIHsgW19lXTogX2MgfSxcbiAgICBbX21dLFxuICAgIFswXVxuXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKEJhY2t1cE5vdEZvdW5kRXhjZXB0aW9uJCwgQmFja3VwTm90Rm91bmRFeGNlcHRpb24pO1xudmFyIEJhY2t1cFN1bW1hcnkkID0gWzMsIG4wLCBfQlNhLFxuICAgIDAsXG4gICAgW19UTiwgX1RJLCBfVEEsIF9CQSwgX0JOLCBfQkNEVCwgX0JFRFQsIF9CUywgX0JULCBfQlNCXSxcbiAgICBbMCwgMCwgMCwgMCwgMCwgNCwgNCwgMCwgMCwgMV1cbl07XG52YXIgQmF0Y2hFeGVjdXRlU3RhdGVtZW50SW5wdXQkID0gWzMsIG4wLCBfQkVTSSxcbiAgICAwLFxuICAgIFtfUywgX1JDQ10sXG4gICAgWygpID0+IFBhcnRpUUxCYXRjaFJlcXVlc3QsIDBdLCAxXG5dO1xudmFyIEJhdGNoRXhlY3V0ZVN0YXRlbWVudE91dHB1dCQgPSBbMywgbjAsIF9CRVNPLFxuICAgIDAsXG4gICAgW19SLCBfQ0NdLFxuICAgIFsoKSA9PiBQYXJ0aVFMQmF0Y2hSZXNwb25zZSwgKCkgPT4gQ29uc3VtZWRDYXBhY2l0eU11bHRpcGxlXVxuXTtcbnZhciBCYXRjaEdldEl0ZW1JbnB1dCQgPSBbMywgbjAsIF9CR0lJLFxuICAgIDAsXG4gICAgW19SSSwgX1JDQ10sXG4gICAgWygpID0+IEJhdGNoR2V0UmVxdWVzdE1hcCwgMF0sIDFcbl07XG52YXIgQmF0Y2hHZXRJdGVtT3V0cHV0JCA9IFszLCBuMCwgX0JHSU8sXG4gICAgMCxcbiAgICBbX1IsIF9VSywgX0NDXSxcbiAgICBbKCkgPT4gQmF0Y2hHZXRSZXNwb25zZU1hcCwgKCkgPT4gQmF0Y2hHZXRSZXF1ZXN0TWFwLCAoKSA9PiBDb25zdW1lZENhcGFjaXR5TXVsdGlwbGVdXG5dO1xudmFyIEJhdGNoU3RhdGVtZW50RXJyb3IkID0gWzMsIG4wLCBfQlNFLFxuICAgIDAsXG4gICAgW19DLCBfTSwgX0ldLFxuICAgIFswLCAwLCAoKSA9PiBBdHRyaWJ1dGVNYXBdXG5dO1xudmFyIEJhdGNoU3RhdGVtZW50UmVxdWVzdCQgPSBbMywgbjAsIF9CU1IsXG4gICAgMCxcbiAgICBbX1N0LCBfUCwgX0NSLCBfUlZPQ0NGXSxcbiAgICBbMCwgKCkgPT4gUHJlcGFyZWRTdGF0ZW1lbnRQYXJhbWV0ZXJzLCAyLCAwXSwgMVxuXTtcbnZhciBCYXRjaFN0YXRlbWVudFJlc3BvbnNlJCA9IFszLCBuMCwgX0JTUmEsXG4gICAgMCxcbiAgICBbX0UsIF9UTiwgX0ldLFxuICAgIFsoKSA9PiBCYXRjaFN0YXRlbWVudEVycm9yJCwgMCwgKCkgPT4gQXR0cmlidXRlTWFwXVxuXTtcbnZhciBCYXRjaFdyaXRlSXRlbUlucHV0JCA9IFszLCBuMCwgX0JXSUksXG4gICAgMCxcbiAgICBbX1JJLCBfUkNDLCBfUklDTV0sXG4gICAgWygpID0+IEJhdGNoV3JpdGVJdGVtUmVxdWVzdE1hcCwgMCwgMF0sIDFcbl07XG52YXIgQmF0Y2hXcml0ZUl0ZW1PdXRwdXQkID0gWzMsIG4wLCBfQldJTyxcbiAgICAwLFxuICAgIFtfVUksIF9JQ00sIF9DQ10sXG4gICAgWygpID0+IEJhdGNoV3JpdGVJdGVtUmVxdWVzdE1hcCwgKCkgPT4gSXRlbUNvbGxlY3Rpb25NZXRyaWNzUGVyVGFibGUsICgpID0+IENvbnN1bWVkQ2FwYWNpdHlNdWx0aXBsZV1cbl07XG52YXIgQmlsbGluZ01vZGVTdW1tYXJ5JCA9IFszLCBuMCwgX0JNUyxcbiAgICAwLFxuICAgIFtfQk0sIF9MVVRQUFJEVF0sXG4gICAgWzAsIDRdXG5dO1xudmFyIENhbmNlbGxhdGlvblJlYXNvbiQgPSBbMywgbjAsIF9DUmEsXG4gICAgMCxcbiAgICBbX0ksIF9DLCBfTV0sXG4gICAgWygpID0+IEF0dHJpYnV0ZU1hcCwgMCwgMF1cbl07XG52YXIgQ2FwYWNpdHkkID0gWzMsIG4wLCBfQ2EsXG4gICAgMCxcbiAgICBbX1JDVSwgX1dDVSwgX0NVXSxcbiAgICBbMSwgMSwgMV1cbl07XG52YXIgQ29uZGl0aW9uJCA9IFszLCBuMCwgX0NvLFxuICAgIDAsXG4gICAgW19DTywgX0FWTF0sXG4gICAgWzAsICgpID0+IEF0dHJpYnV0ZVZhbHVlTGlzdF0sIDFcbl07XG52YXIgQ29uZGl0aW9uYWxDaGVja0ZhaWxlZEV4Y2VwdGlvbiQgPSBbLTMsIG4wLCBfQ0NGRSxcbiAgICB7IFtfZV06IF9jIH0sXG4gICAgW19tLCBfSV0sXG4gICAgWzAsICgpID0+IEF0dHJpYnV0ZU1hcF1cbl07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihDb25kaXRpb25hbENoZWNrRmFpbGVkRXhjZXB0aW9uJCwgQ29uZGl0aW9uYWxDaGVja0ZhaWxlZEV4Y2VwdGlvbik7XG52YXIgQ29uZGl0aW9uQ2hlY2skID0gWzMsIG4wLCBfQ0NvLFxuICAgIDAsXG4gICAgW19LLCBfVE4sIF9DRSwgX0VBTiwgX0VBViwgX1JWT0NDRl0sXG4gICAgWygpID0+IEtleSwgMCwgMCwgMTI4IHwgMCwgKCkgPT4gRXhwcmVzc2lvbkF0dHJpYnV0ZVZhbHVlTWFwLCAwXSwgM1xuXTtcbnZhciBDb25zdW1lZENhcGFjaXR5JCA9IFszLCBuMCwgX0NDLFxuICAgIDAsXG4gICAgW19UTiwgX0NVLCBfUkNVLCBfV0NVLCBfVCwgX0xTSSwgX0dTSV0sXG4gICAgWzAsIDEsIDEsIDEsICgpID0+IENhcGFjaXR5JCwgKCkgPT4gU2Vjb25kYXJ5SW5kZXhlc0NhcGFjaXR5TWFwLCAoKSA9PiBTZWNvbmRhcnlJbmRleGVzQ2FwYWNpdHlNYXBdXG5dO1xudmFyIENvbnRpbnVvdXNCYWNrdXBzRGVzY3JpcHRpb24kID0gWzMsIG4wLCBfQ0JELFxuICAgIDAsXG4gICAgW19DQlMsIF9QSVRSRF0sXG4gICAgWzAsICgpID0+IFBvaW50SW5UaW1lUmVjb3ZlcnlEZXNjcmlwdGlvbiRdLCAxXG5dO1xudmFyIENvbnRpbnVvdXNCYWNrdXBzVW5hdmFpbGFibGVFeGNlcHRpb24kID0gWy0zLCBuMCwgX0NCVUUsXG4gICAgeyBbX2VdOiBfYyB9LFxuICAgIFtfbV0sXG4gICAgWzBdXG5dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoQ29udGludW91c0JhY2t1cHNVbmF2YWlsYWJsZUV4Y2VwdGlvbiQsIENvbnRpbnVvdXNCYWNrdXBzVW5hdmFpbGFibGVFeGNlcHRpb24pO1xudmFyIENvbnRyaWJ1dG9ySW5zaWdodHNTdW1tYXJ5JCA9IFszLCBuMCwgX0NJUyxcbiAgICAwLFxuICAgIFtfVE4sIF9JTiwgX0NJU28sIF9DSU1dLFxuICAgIFswLCAwLCAwLCAwXVxuXTtcbnZhciBDcmVhdGVCYWNrdXBJbnB1dCQgPSBbMywgbjAsIF9DQkksXG4gICAgMCxcbiAgICBbX1ROLCBfQk5dLFxuICAgIFswLCAwXSwgMlxuXTtcbnZhciBDcmVhdGVCYWNrdXBPdXRwdXQkID0gWzMsIG4wLCBfQ0JPLFxuICAgIDAsXG4gICAgW19CRGFdLFxuICAgIFsoKSA9PiBCYWNrdXBEZXRhaWxzJF1cbl07XG52YXIgQ3JlYXRlR2xvYmFsU2Vjb25kYXJ5SW5kZXhBY3Rpb24kID0gWzMsIG4wLCBfQ0dTSUEsXG4gICAgMCxcbiAgICBbX0lOLCBfS1MsIF9QciwgX1BULCBfT0RULCBfV1RdLFxuICAgIFswLCAoKSA9PiBLZXlTY2hlbWEsICgpID0+IFByb2plY3Rpb24kLCAoKSA9PiBQcm92aXNpb25lZFRocm91Z2hwdXQkLCAoKSA9PiBPbkRlbWFuZFRocm91Z2hwdXQkLCAoKSA9PiBXYXJtVGhyb3VnaHB1dCRdLCAzXG5dO1xudmFyIENyZWF0ZUdsb2JhbFRhYmxlSW5wdXQkID0gWzMsIG4wLCBfQ0dUSSxcbiAgICAwLFxuICAgIFtfR1ROLCBfUkddLFxuICAgIFswLCAoKSA9PiBSZXBsaWNhTGlzdF0sIDJcbl07XG52YXIgQ3JlYXRlR2xvYmFsVGFibGVPdXRwdXQkID0gWzMsIG4wLCBfQ0dUTyxcbiAgICAwLFxuICAgIFtfR1REXSxcbiAgICBbKCkgPT4gR2xvYmFsVGFibGVEZXNjcmlwdGlvbiRdXG5dO1xudmFyIENyZWF0ZUdsb2JhbFRhYmxlV2l0bmVzc0dyb3VwTWVtYmVyQWN0aW9uJCA9IFszLCBuMCwgX0NHVFdHTUEsXG4gICAgMCxcbiAgICBbX1JOXSxcbiAgICBbMF0sIDFcbl07XG52YXIgQ3JlYXRlUmVwbGljYUFjdGlvbiQgPSBbMywgbjAsIF9DUkEsXG4gICAgMCxcbiAgICBbX1JOXSxcbiAgICBbMF0sIDFcbl07XG52YXIgQ3JlYXRlUmVwbGljYXRpb25Hcm91cE1lbWJlckFjdGlvbiQgPSBbMywgbjAsIF9DUkdNQSxcbiAgICAwLFxuICAgIFtfUk4sIF9LTVNNS0ksIF9QVE8sIF9PRFRPLCBfR1NJLCBfVENPXSxcbiAgICBbMCwgMCwgKCkgPT4gUHJvdmlzaW9uZWRUaHJvdWdocHV0T3ZlcnJpZGUkLCAoKSA9PiBPbkRlbWFuZFRocm91Z2hwdXRPdmVycmlkZSQsICgpID0+IFJlcGxpY2FHbG9iYWxTZWNvbmRhcnlJbmRleExpc3QsIDBdLCAxXG5dO1xudmFyIENyZWF0ZVRhYmxlSW5wdXQkID0gWzMsIG4wLCBfQ1RJLFxuICAgIDAsXG4gICAgW19BRHQsIF9UTiwgX0tTLCBfTFNJLCBfR1NJLCBfQk0sIF9QVCwgX1NTLCBfU1NFUywgX1RhLCBfVEMsIF9EUEUsIF9XVCwgX1JQLCBfT0RUXSxcbiAgICBbKCkgPT4gQXR0cmlidXRlRGVmaW5pdGlvbnMsIDAsICgpID0+IEtleVNjaGVtYSwgKCkgPT4gTG9jYWxTZWNvbmRhcnlJbmRleExpc3QsICgpID0+IEdsb2JhbFNlY29uZGFyeUluZGV4TGlzdCwgMCwgKCkgPT4gUHJvdmlzaW9uZWRUaHJvdWdocHV0JCwgKCkgPT4gU3RyZWFtU3BlY2lmaWNhdGlvbiQsICgpID0+IFNTRVNwZWNpZmljYXRpb24kLCAoKSA9PiBUYWdMaXN0LCAwLCAyLCAoKSA9PiBXYXJtVGhyb3VnaHB1dCQsIDAsICgpID0+IE9uRGVtYW5kVGhyb3VnaHB1dCRdLCAzXG5dO1xudmFyIENyZWF0ZVRhYmxlT3V0cHV0JCA9IFszLCBuMCwgX0NUTyxcbiAgICAwLFxuICAgIFtfVERdLFxuICAgIFsoKSA9PiBUYWJsZURlc2NyaXB0aW9uJF1cbl07XG52YXIgQ3N2T3B0aW9ucyQgPSBbMywgbjAsIF9DT3MsXG4gICAgMCxcbiAgICBbX0QsIF9ITF0sXG4gICAgWzAsIDY0IHwgMF1cbl07XG52YXIgRGVsZXRlJCA9IFszLCBuMCwgX0RlLFxuICAgIDAsXG4gICAgW19LLCBfVE4sIF9DRSwgX0VBTiwgX0VBViwgX1JWT0NDRl0sXG4gICAgWygpID0+IEtleSwgMCwgMCwgMTI4IHwgMCwgKCkgPT4gRXhwcmVzc2lvbkF0dHJpYnV0ZVZhbHVlTWFwLCAwXSwgMlxuXTtcbnZhciBEZWxldGVCYWNrdXBJbnB1dCQgPSBbMywgbjAsIF9EQkksXG4gICAgMCxcbiAgICBbX0JBXSxcbiAgICBbMF0sIDFcbl07XG52YXIgRGVsZXRlQmFja3VwT3V0cHV0JCA9IFszLCBuMCwgX0RCTyxcbiAgICAwLFxuICAgIFtfQkRdLFxuICAgIFsoKSA9PiBCYWNrdXBEZXNjcmlwdGlvbiRdXG5dO1xudmFyIERlbGV0ZUdsb2JhbFNlY29uZGFyeUluZGV4QWN0aW9uJCA9IFszLCBuMCwgX0RHU0lBLFxuICAgIDAsXG4gICAgW19JTl0sXG4gICAgWzBdLCAxXG5dO1xudmFyIERlbGV0ZUdsb2JhbFRhYmxlV2l0bmVzc0dyb3VwTWVtYmVyQWN0aW9uJCA9IFszLCBuMCwgX0RHVFdHTUEsXG4gICAgMCxcbiAgICBbX1JOXSxcbiAgICBbMF0sIDFcbl07XG52YXIgRGVsZXRlSXRlbUlucHV0JCA9IFszLCBuMCwgX0RJSSxcbiAgICAwLFxuICAgIFtfVE4sIF9LLCBfRXgsIF9DT28sIF9SViwgX1JDQywgX1JJQ00sIF9DRSwgX0VBTiwgX0VBViwgX1JWT0NDRl0sXG4gICAgWzAsICgpID0+IEtleSwgKCkgPT4gRXhwZWN0ZWRBdHRyaWJ1dGVNYXAsIDAsIDAsIDAsIDAsIDAsIDEyOCB8IDAsICgpID0+IEV4cHJlc3Npb25BdHRyaWJ1dGVWYWx1ZU1hcCwgMF0sIDJcbl07XG52YXIgRGVsZXRlSXRlbU91dHB1dCQgPSBbMywgbjAsIF9ESU8sXG4gICAgMCxcbiAgICBbX0F0LCBfQ0MsIF9JQ01dLFxuICAgIFsoKSA9PiBBdHRyaWJ1dGVNYXAsICgpID0+IENvbnN1bWVkQ2FwYWNpdHkkLCAoKSA9PiBJdGVtQ29sbGVjdGlvbk1ldHJpY3MkXVxuXTtcbnZhciBEZWxldGVSZXBsaWNhQWN0aW9uJCA9IFszLCBuMCwgX0RSQSxcbiAgICAwLFxuICAgIFtfUk5dLFxuICAgIFswXSwgMVxuXTtcbnZhciBEZWxldGVSZXBsaWNhdGlvbkdyb3VwTWVtYmVyQWN0aW9uJCA9IFszLCBuMCwgX0RSR01BLFxuICAgIDAsXG4gICAgW19STl0sXG4gICAgWzBdLCAxXG5dO1xudmFyIERlbGV0ZVJlcXVlc3QkID0gWzMsIG4wLCBfRFIsXG4gICAgMCxcbiAgICBbX0tdLFxuICAgIFsoKSA9PiBLZXldLCAxXG5dO1xudmFyIERlbGV0ZVJlc291cmNlUG9saWN5SW5wdXQkID0gWzMsIG4wLCBfRFJQSSxcbiAgICAwLFxuICAgIFtfUkEsIF9FUkldLFxuICAgIFswLCAwXSwgMVxuXTtcbnZhciBEZWxldGVSZXNvdXJjZVBvbGljeU91dHB1dCQgPSBbMywgbjAsIF9EUlBPLFxuICAgIDAsXG4gICAgW19SSWVdLFxuICAgIFswXVxuXTtcbnZhciBEZWxldGVUYWJsZUlucHV0JCA9IFszLCBuMCwgX0RUSSxcbiAgICAwLFxuICAgIFtfVE5dLFxuICAgIFswXSwgMVxuXTtcbnZhciBEZWxldGVUYWJsZU91dHB1dCQgPSBbMywgbjAsIF9EVE8sXG4gICAgMCxcbiAgICBbX1REXSxcbiAgICBbKCkgPT4gVGFibGVEZXNjcmlwdGlvbiRdXG5dO1xudmFyIERlc2NyaWJlQmFja3VwSW5wdXQkID0gWzMsIG4wLCBfREJJZSxcbiAgICAwLFxuICAgIFtfQkFdLFxuICAgIFswXSwgMVxuXTtcbnZhciBEZXNjcmliZUJhY2t1cE91dHB1dCQgPSBbMywgbjAsIF9EQk9lLFxuICAgIDAsXG4gICAgW19CRF0sXG4gICAgWygpID0+IEJhY2t1cERlc2NyaXB0aW9uJF1cbl07XG52YXIgRGVzY3JpYmVDb250aW51b3VzQmFja3Vwc0lucHV0JCA9IFszLCBuMCwgX0RDQkksXG4gICAgMCxcbiAgICBbX1ROXSxcbiAgICBbMF0sIDFcbl07XG52YXIgRGVzY3JpYmVDb250aW51b3VzQmFja3Vwc091dHB1dCQgPSBbMywgbjAsIF9EQ0JPLFxuICAgIDAsXG4gICAgW19DQkRdLFxuICAgIFsoKSA9PiBDb250aW51b3VzQmFja3Vwc0Rlc2NyaXB0aW9uJF1cbl07XG52YXIgRGVzY3JpYmVDb250cmlidXRvckluc2lnaHRzSW5wdXQkID0gWzMsIG4wLCBfRENJSSxcbiAgICAwLFxuICAgIFtfVE4sIF9JTl0sXG4gICAgWzAsIDBdLCAxXG5dO1xudmFyIERlc2NyaWJlQ29udHJpYnV0b3JJbnNpZ2h0c091dHB1dCQgPSBbMywgbjAsIF9EQ0lPLFxuICAgIDAsXG4gICAgW19UTiwgX0lOLCBfQ0lSTCwgX0NJU28sIF9MVURULCBfRkUsIF9DSU1dLFxuICAgIFswLCAwLCA2NCB8IDAsIDAsIDQsICgpID0+IEZhaWx1cmVFeGNlcHRpb24kLCAwXVxuXTtcbnZhciBEZXNjcmliZUVuZHBvaW50c1JlcXVlc3QkID0gWzMsIG4wLCBfREVSLFxuICAgIDAsXG4gICAgW10sXG4gICAgW11cbl07XG52YXIgRGVzY3JpYmVFbmRwb2ludHNSZXNwb25zZSQgPSBbMywgbjAsIF9ERVJlLFxuICAgIDAsXG4gICAgW19Fbl0sXG4gICAgWygpID0+IEVuZHBvaW50c10sIDFcbl07XG52YXIgRGVzY3JpYmVFeHBvcnRJbnB1dCQgPSBbMywgbjAsIF9ERUksXG4gICAgMCxcbiAgICBbX0VBXSxcbiAgICBbMF0sIDFcbl07XG52YXIgRGVzY3JpYmVFeHBvcnRPdXRwdXQkID0gWzMsIG4wLCBfREVPLFxuICAgIDAsXG4gICAgW19FRF0sXG4gICAgWygpID0+IEV4cG9ydERlc2NyaXB0aW9uJF1cbl07XG52YXIgRGVzY3JpYmVHbG9iYWxUYWJsZUlucHV0JCA9IFszLCBuMCwgX0RHVEksXG4gICAgMCxcbiAgICBbX0dUTl0sXG4gICAgWzBdLCAxXG5dO1xudmFyIERlc2NyaWJlR2xvYmFsVGFibGVPdXRwdXQkID0gWzMsIG4wLCBfREdUTyxcbiAgICAwLFxuICAgIFtfR1REXSxcbiAgICBbKCkgPT4gR2xvYmFsVGFibGVEZXNjcmlwdGlvbiRdXG5dO1xudmFyIERlc2NyaWJlR2xvYmFsVGFibGVTZXR0aW5nc0lucHV0JCA9IFszLCBuMCwgX0RHVFNJLFxuICAgIDAsXG4gICAgW19HVE5dLFxuICAgIFswXSwgMVxuXTtcbnZhciBEZXNjcmliZUdsb2JhbFRhYmxlU2V0dGluZ3NPdXRwdXQkID0gWzMsIG4wLCBfREdUU08sXG4gICAgMCxcbiAgICBbX0dUTiwgX1JTXSxcbiAgICBbMCwgKCkgPT4gUmVwbGljYVNldHRpbmdzRGVzY3JpcHRpb25MaXN0XVxuXTtcbnZhciBEZXNjcmliZUltcG9ydElucHV0JCA9IFszLCBuMCwgX0RJSWUsXG4gICAgMCxcbiAgICBbX0lBXSxcbiAgICBbMF0sIDFcbl07XG52YXIgRGVzY3JpYmVJbXBvcnRPdXRwdXQkID0gWzMsIG4wLCBfRElPZSxcbiAgICAwLFxuICAgIFtfSVREXSxcbiAgICBbKCkgPT4gSW1wb3J0VGFibGVEZXNjcmlwdGlvbiRdLCAxXG5dO1xudmFyIERlc2NyaWJlS2luZXNpc1N0cmVhbWluZ0Rlc3RpbmF0aW9uSW5wdXQkID0gWzMsIG4wLCBfREtTREksXG4gICAgMCxcbiAgICBbX1ROXSxcbiAgICBbMF0sIDFcbl07XG52YXIgRGVzY3JpYmVLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb25PdXRwdXQkID0gWzMsIG4wLCBfREtTRE8sXG4gICAgMCxcbiAgICBbX1ROLCBfS0RTRF0sXG4gICAgWzAsICgpID0+IEtpbmVzaXNEYXRhU3RyZWFtRGVzdGluYXRpb25zXVxuXTtcbnZhciBEZXNjcmliZUxpbWl0c0lucHV0JCA9IFszLCBuMCwgX0RMSSxcbiAgICAwLFxuICAgIFtdLFxuICAgIFtdXG5dO1xudmFyIERlc2NyaWJlTGltaXRzT3V0cHV0JCA9IFszLCBuMCwgX0RMTyxcbiAgICAwLFxuICAgIFtfQU1SQ1UsIF9BTVdDVSwgX1RNUkNVLCBfVE1XQ1VdLFxuICAgIFsxLCAxLCAxLCAxXVxuXTtcbnZhciBEZXNjcmliZVRhYmxlSW5wdXQkID0gWzMsIG4wLCBfRFRJZSxcbiAgICAwLFxuICAgIFtfVE5dLFxuICAgIFswXSwgMVxuXTtcbnZhciBEZXNjcmliZVRhYmxlT3V0cHV0JCA9IFszLCBuMCwgX0RUT2UsXG4gICAgMCxcbiAgICBbX1RdLFxuICAgIFsoKSA9PiBUYWJsZURlc2NyaXB0aW9uJF1cbl07XG52YXIgRGVzY3JpYmVUYWJsZVJlcGxpY2FBdXRvU2NhbGluZ0lucHV0JCA9IFszLCBuMCwgX0RUUkFTSSxcbiAgICAwLFxuICAgIFtfVE5dLFxuICAgIFswXSwgMVxuXTtcbnZhciBEZXNjcmliZVRhYmxlUmVwbGljYUF1dG9TY2FsaW5nT3V0cHV0JCA9IFszLCBuMCwgX0RUUkFTTyxcbiAgICAwLFxuICAgIFtfVEFTRF0sXG4gICAgWygpID0+IFRhYmxlQXV0b1NjYWxpbmdEZXNjcmlwdGlvbiRdXG5dO1xudmFyIERlc2NyaWJlVGltZVRvTGl2ZUlucHV0JCA9IFszLCBuMCwgX0RUVExJLFxuICAgIDAsXG4gICAgW19UTl0sXG4gICAgWzBdLCAxXG5dO1xudmFyIERlc2NyaWJlVGltZVRvTGl2ZU91dHB1dCQgPSBbMywgbjAsIF9EVFRMTyxcbiAgICAwLFxuICAgIFtfVFRMRF0sXG4gICAgWygpID0+IFRpbWVUb0xpdmVEZXNjcmlwdGlvbiRdXG5dO1xudmFyIER1cGxpY2F0ZUl0ZW1FeGNlcHRpb24kID0gWy0zLCBuMCwgX0RJRSxcbiAgICB7IFtfZV06IF9jIH0sXG4gICAgW19tXSxcbiAgICBbMF1cbl07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihEdXBsaWNhdGVJdGVtRXhjZXB0aW9uJCwgRHVwbGljYXRlSXRlbUV4Y2VwdGlvbik7XG52YXIgRW5hYmxlS2luZXNpc1N0cmVhbWluZ0NvbmZpZ3VyYXRpb24kID0gWzMsIG4wLCBfRUtTQyxcbiAgICAwLFxuICAgIFtfQUNEVFBdLFxuICAgIFswXVxuXTtcbnZhciBFbmRwb2ludCQgPSBbMywgbjAsIF9FbmQsXG4gICAgMCxcbiAgICBbX0FkLCBfQ1BJTV0sXG4gICAgWzAsIDFdLCAyXG5dO1xudmFyIEV4ZWN1dGVTdGF0ZW1lbnRJbnB1dCQgPSBbMywgbjAsIF9FU0ksXG4gICAgMCxcbiAgICBbX1N0LCBfUCwgX0NSLCBfTlQsIF9SQ0MsIF9MLCBfUlZPQ0NGXSxcbiAgICBbMCwgKCkgPT4gUHJlcGFyZWRTdGF0ZW1lbnRQYXJhbWV0ZXJzLCAyLCAwLCAwLCAxLCAwXSwgMVxuXTtcbnZhciBFeGVjdXRlU3RhdGVtZW50T3V0cHV0JCA9IFszLCBuMCwgX0VTTyxcbiAgICAwLFxuICAgIFtfSXQsIF9OVCwgX0NDLCBfTEVLXSxcbiAgICBbKCkgPT4gSXRlbUxpc3QsIDAsICgpID0+IENvbnN1bWVkQ2FwYWNpdHkkLCAoKSA9PiBLZXldXG5dO1xudmFyIEV4ZWN1dGVUcmFuc2FjdGlvbklucHV0JCA9IFszLCBuMCwgX0VUSSxcbiAgICAwLFxuICAgIFtfVFMsIF9DUlQsIF9SQ0NdLFxuICAgIFsoKSA9PiBQYXJhbWV0ZXJpemVkU3RhdGVtZW50cywgWzAsIDRdLCAwXSwgMVxuXTtcbnZhciBFeGVjdXRlVHJhbnNhY3Rpb25PdXRwdXQkID0gWzMsIG4wLCBfRVRPLFxuICAgIDAsXG4gICAgW19SLCBfQ0NdLFxuICAgIFsoKSA9PiBJdGVtUmVzcG9uc2VMaXN0LCAoKSA9PiBDb25zdW1lZENhcGFjaXR5TXVsdGlwbGVdXG5dO1xudmFyIEV4cGVjdGVkQXR0cmlidXRlVmFsdWUkID0gWzMsIG4wLCBfRUFWeCxcbiAgICAwLFxuICAgIFtfViwgX0V4aSwgX0NPLCBfQVZMXSxcbiAgICBbKCkgPT4gQXR0cmlidXRlVmFsdWUkLCAyLCAwLCAoKSA9PiBBdHRyaWJ1dGVWYWx1ZUxpc3RdXG5dO1xudmFyIEV4cG9ydENvbmZsaWN0RXhjZXB0aW9uJCA9IFstMywgbjAsIF9FQ0UsXG4gICAgeyBbX2VdOiBfYyB9LFxuICAgIFtfbV0sXG4gICAgWzBdXG5dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoRXhwb3J0Q29uZmxpY3RFeGNlcHRpb24kLCBFeHBvcnRDb25mbGljdEV4Y2VwdGlvbik7XG52YXIgRXhwb3J0RGVzY3JpcHRpb24kID0gWzMsIG4wLCBfRUQsXG4gICAgMCxcbiAgICBbX0VBLCBfRVMsIF9TVCwgX0VULCBfRU0sIF9UQSwgX1RJLCBfRVR4LCBfQ1QsIF9TQiwgX1NCTywgX1NQciwgX1NTQSwgX1NTS0tJLCBfRkMsIF9GTSwgX0VGLCBfQlNCaSwgX0lDLCBfRVR4cCwgX0lFU10sXG4gICAgWzAsIDAsIDQsIDQsIDAsIDAsIDAsIDQsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEsIDEsIDAsICgpID0+IEluY3JlbWVudGFsRXhwb3J0U3BlY2lmaWNhdGlvbiRdXG5dO1xudmFyIEV4cG9ydE5vdEZvdW5kRXhjZXB0aW9uJCA9IFstMywgbjAsIF9FTkZFLFxuICAgIHsgW19lXTogX2MgfSxcbiAgICBbX21dLFxuICAgIFswXVxuXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKEV4cG9ydE5vdEZvdW5kRXhjZXB0aW9uJCwgRXhwb3J0Tm90Rm91bmRFeGNlcHRpb24pO1xudmFyIEV4cG9ydFN1bW1hcnkkID0gWzMsIG4wLCBfRVN4LFxuICAgIDAsXG4gICAgW19FQSwgX0VTLCBfRVR4cF0sXG4gICAgWzAsIDAsIDBdXG5dO1xudmFyIEV4cG9ydFRhYmxlVG9Qb2ludEluVGltZUlucHV0JCA9IFszLCBuMCwgX0VUVFBJVEksXG4gICAgMCxcbiAgICBbX1RBLCBfU0IsIF9FVHgsIF9DVCwgX1NCTywgX1NQciwgX1NTQSwgX1NTS0tJLCBfRUYsIF9FVHhwLCBfSUVTXSxcbiAgICBbMCwgMCwgNCwgWzAsIDRdLCAwLCAwLCAwLCAwLCAwLCAwLCAoKSA9PiBJbmNyZW1lbnRhbEV4cG9ydFNwZWNpZmljYXRpb24kXSwgMlxuXTtcbnZhciBFeHBvcnRUYWJsZVRvUG9pbnRJblRpbWVPdXRwdXQkID0gWzMsIG4wLCBfRVRUUElUTyxcbiAgICAwLFxuICAgIFtfRURdLFxuICAgIFsoKSA9PiBFeHBvcnREZXNjcmlwdGlvbiRdXG5dO1xudmFyIEZhaWx1cmVFeGNlcHRpb24kID0gWzMsIG4wLCBfRkUsXG4gICAgMCxcbiAgICBbX0VOLCBfRUR4XSxcbiAgICBbMCwgMF1cbl07XG52YXIgR2V0JCA9IFszLCBuMCwgX0csXG4gICAgMCxcbiAgICBbX0ssIF9UTiwgX1BFLCBfRUFOXSxcbiAgICBbKCkgPT4gS2V5LCAwLCAwLCAxMjggfCAwXSwgMlxuXTtcbnZhciBHZXRJdGVtSW5wdXQkID0gWzMsIG4wLCBfR0lJLFxuICAgIDAsXG4gICAgW19UTiwgX0ssIF9BVEcsIF9DUiwgX1JDQywgX1BFLCBfRUFOXSxcbiAgICBbMCwgKCkgPT4gS2V5LCA2NCB8IDAsIDIsIDAsIDAsIDEyOCB8IDBdLCAyXG5dO1xudmFyIEdldEl0ZW1PdXRwdXQkID0gWzMsIG4wLCBfR0lPLFxuICAgIDAsXG4gICAgW19JLCBfQ0NdLFxuICAgIFsoKSA9PiBBdHRyaWJ1dGVNYXAsICgpID0+IENvbnN1bWVkQ2FwYWNpdHkkXVxuXTtcbnZhciBHZXRSZXNvdXJjZVBvbGljeUlucHV0JCA9IFszLCBuMCwgX0dSUEksXG4gICAgMCxcbiAgICBbX1JBXSxcbiAgICBbMF0sIDFcbl07XG52YXIgR2V0UmVzb3VyY2VQb2xpY3lPdXRwdXQkID0gWzMsIG4wLCBfR1JQTyxcbiAgICAwLFxuICAgIFtfUG8sIF9SSWVdLFxuICAgIFswLCAwXVxuXTtcbnZhciBHbG9iYWxTZWNvbmRhcnlJbmRleCQgPSBbMywgbjAsIF9HU0lsLFxuICAgIDAsXG4gICAgW19JTiwgX0tTLCBfUHIsIF9QVCwgX09EVCwgX1dUXSxcbiAgICBbMCwgKCkgPT4gS2V5U2NoZW1hLCAoKSA9PiBQcm9qZWN0aW9uJCwgKCkgPT4gUHJvdmlzaW9uZWRUaHJvdWdocHV0JCwgKCkgPT4gT25EZW1hbmRUaHJvdWdocHV0JCwgKCkgPT4gV2FybVRocm91Z2hwdXQkXSwgM1xuXTtcbnZhciBHbG9iYWxTZWNvbmRhcnlJbmRleEF1dG9TY2FsaW5nVXBkYXRlJCA9IFszLCBuMCwgX0dTSUFTVSxcbiAgICAwLFxuICAgIFtfSU4sIF9QV0NBU1VdLFxuICAgIFswLCAoKSA9PiBBdXRvU2NhbGluZ1NldHRpbmdzVXBkYXRlJF1cbl07XG52YXIgR2xvYmFsU2Vjb25kYXJ5SW5kZXhEZXNjcmlwdGlvbiQgPSBbMywgbjAsIF9HU0lELFxuICAgIDAsXG4gICAgW19JTiwgX0tTLCBfUHIsIF9JUywgX0IsIF9QVCwgX0lTQiwgX0lDLCBfSUFuLCBfT0RULCBfV1RdLFxuICAgIFswLCAoKSA9PiBLZXlTY2hlbWEsICgpID0+IFByb2plY3Rpb24kLCAwLCAyLCAoKSA9PiBQcm92aXNpb25lZFRocm91Z2hwdXREZXNjcmlwdGlvbiQsIDEsIDEsIDAsICgpID0+IE9uRGVtYW5kVGhyb3VnaHB1dCQsICgpID0+IEdsb2JhbFNlY29uZGFyeUluZGV4V2FybVRocm91Z2hwdXREZXNjcmlwdGlvbiRdXG5dO1xudmFyIEdsb2JhbFNlY29uZGFyeUluZGV4SW5mbyQgPSBbMywgbjAsIF9HU0lJLFxuICAgIDAsXG4gICAgW19JTiwgX0tTLCBfUHIsIF9QVCwgX09EVF0sXG4gICAgWzAsICgpID0+IEtleVNjaGVtYSwgKCkgPT4gUHJvamVjdGlvbiQsICgpID0+IFByb3Zpc2lvbmVkVGhyb3VnaHB1dCQsICgpID0+IE9uRGVtYW5kVGhyb3VnaHB1dCRdXG5dO1xudmFyIEdsb2JhbFNlY29uZGFyeUluZGV4VXBkYXRlJCA9IFszLCBuMCwgX0dTSVUsXG4gICAgMCxcbiAgICBbX1UsIF9DciwgX0RlXSxcbiAgICBbKCkgPT4gVXBkYXRlR2xvYmFsU2Vjb25kYXJ5SW5kZXhBY3Rpb24kLCAoKSA9PiBDcmVhdGVHbG9iYWxTZWNvbmRhcnlJbmRleEFjdGlvbiQsICgpID0+IERlbGV0ZUdsb2JhbFNlY29uZGFyeUluZGV4QWN0aW9uJF1cbl07XG52YXIgR2xvYmFsU2Vjb25kYXJ5SW5kZXhXYXJtVGhyb3VnaHB1dERlc2NyaXB0aW9uJCA9IFszLCBuMCwgX0dTSVdURCxcbiAgICAwLFxuICAgIFtfUlVQUywgX1dVUFMsIF9TdGFdLFxuICAgIFsxLCAxLCAwXVxuXTtcbnZhciBHbG9iYWxUYWJsZSQgPSBbMywgbjAsIF9HVCxcbiAgICAwLFxuICAgIFtfR1ROLCBfUkddLFxuICAgIFswLCAoKSA9PiBSZXBsaWNhTGlzdF1cbl07XG52YXIgR2xvYmFsVGFibGVBbHJlYWR5RXhpc3RzRXhjZXB0aW9uJCA9IFstMywgbjAsIF9HVEFFRSxcbiAgICB7IFtfZV06IF9jIH0sXG4gICAgW19tXSxcbiAgICBbMF1cbl07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihHbG9iYWxUYWJsZUFscmVhZHlFeGlzdHNFeGNlcHRpb24kLCBHbG9iYWxUYWJsZUFscmVhZHlFeGlzdHNFeGNlcHRpb24pO1xudmFyIEdsb2JhbFRhYmxlRGVzY3JpcHRpb24kID0gWzMsIG4wLCBfR1RELFxuICAgIDAsXG4gICAgW19SRywgX0dUQSwgX0NEVCwgX0dUUywgX0dUTl0sXG4gICAgWygpID0+IFJlcGxpY2FEZXNjcmlwdGlvbkxpc3QsIDAsIDQsIDAsIDBdXG5dO1xudmFyIEdsb2JhbFRhYmxlR2xvYmFsU2Vjb25kYXJ5SW5kZXhTZXR0aW5nc1VwZGF0ZSQgPSBbMywgbjAsIF9HVEdTSVNVLFxuICAgIDAsXG4gICAgW19JTiwgX1BXQ1UsIF9QV0NBU1NVXSxcbiAgICBbMCwgMSwgKCkgPT4gQXV0b1NjYWxpbmdTZXR0aW5nc1VwZGF0ZSRdLCAxXG5dO1xudmFyIEdsb2JhbFRhYmxlTm90Rm91bmRFeGNlcHRpb24kID0gWy0zLCBuMCwgX0dUTkZFLFxuICAgIHsgW19lXTogX2MgfSxcbiAgICBbX21dLFxuICAgIFswXVxuXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKEdsb2JhbFRhYmxlTm90Rm91bmRFeGNlcHRpb24kLCBHbG9iYWxUYWJsZU5vdEZvdW5kRXhjZXB0aW9uKTtcbnZhciBHbG9iYWxUYWJsZVdpdG5lc3NEZXNjcmlwdGlvbiQgPSBbMywgbjAsIF9HVFdELFxuICAgIDAsXG4gICAgW19STiwgX1dTXSxcbiAgICBbMCwgMF1cbl07XG52YXIgR2xvYmFsVGFibGVXaXRuZXNzR3JvdXBVcGRhdGUkID0gWzMsIG4wLCBfR1RXR1UsXG4gICAgMCxcbiAgICBbX0NyLCBfRGVdLFxuICAgIFsoKSA9PiBDcmVhdGVHbG9iYWxUYWJsZVdpdG5lc3NHcm91cE1lbWJlckFjdGlvbiQsICgpID0+IERlbGV0ZUdsb2JhbFRhYmxlV2l0bmVzc0dyb3VwTWVtYmVyQWN0aW9uJF1cbl07XG52YXIgSWRlbXBvdGVudFBhcmFtZXRlck1pc21hdGNoRXhjZXB0aW9uJCA9IFstMywgbjAsIF9JUE1FLFxuICAgIHsgW19lXTogX2MgfSxcbiAgICBbX01dLFxuICAgIFswXVxuXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKElkZW1wb3RlbnRQYXJhbWV0ZXJNaXNtYXRjaEV4Y2VwdGlvbiQsIElkZW1wb3RlbnRQYXJhbWV0ZXJNaXNtYXRjaEV4Y2VwdGlvbik7XG52YXIgSW1wb3J0Q29uZmxpY3RFeGNlcHRpb24kID0gWy0zLCBuMCwgX0lDRSxcbiAgICB7IFtfZV06IF9jIH0sXG4gICAgW19tXSxcbiAgICBbMF1cbl07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihJbXBvcnRDb25mbGljdEV4Y2VwdGlvbiQsIEltcG9ydENvbmZsaWN0RXhjZXB0aW9uKTtcbnZhciBJbXBvcnROb3RGb3VuZEV4Y2VwdGlvbiQgPSBbLTMsIG4wLCBfSU5GRSxcbiAgICB7IFtfZV06IF9jIH0sXG4gICAgW19tXSxcbiAgICBbMF1cbl07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihJbXBvcnROb3RGb3VuZEV4Y2VwdGlvbiQsIEltcG9ydE5vdEZvdW5kRXhjZXB0aW9uKTtcbnZhciBJbXBvcnRTdW1tYXJ5JCA9IFszLCBuMCwgX0lTbSxcbiAgICAwLFxuICAgIFtfSUEsIF9JU21wLCBfVEEsIF9TQlMsIF9DV0xHQSwgX0lGLCBfU1QsIF9FVF0sXG4gICAgWzAsIDAsIDAsICgpID0+IFMzQnVja2V0U291cmNlJCwgMCwgMCwgNCwgNF1cbl07XG52YXIgSW1wb3J0VGFibGVEZXNjcmlwdGlvbiQgPSBbMywgbjAsIF9JVEQsXG4gICAgMCxcbiAgICBbX0lBLCBfSVNtcCwgX1RBLCBfVEksIF9DVCwgX1NCUywgX0VDLCBfQ1dMR0EsIF9JRiwgX0lGTywgX0lDVCwgX1RDUCwgX1NULCBfRVQsIF9QU0IsIF9QSUMsIF9JSUMsIF9GQywgX0ZNXSxcbiAgICBbMCwgMCwgMCwgMCwgMCwgKCkgPT4gUzNCdWNrZXRTb3VyY2UkLCAxLCAwLCAwLCAoKSA9PiBJbnB1dEZvcm1hdE9wdGlvbnMkLCAwLCAoKSA9PiBUYWJsZUNyZWF0aW9uUGFyYW1ldGVycyQsIDQsIDQsIDEsIDEsIDEsIDAsIDBdXG5dO1xudmFyIEltcG9ydFRhYmxlSW5wdXQkID0gWzMsIG4wLCBfSVRJLFxuICAgIDAsXG4gICAgW19TQlMsIF9JRiwgX1RDUCwgX0NULCBfSUZPLCBfSUNUXSxcbiAgICBbKCkgPT4gUzNCdWNrZXRTb3VyY2UkLCAwLCAoKSA9PiBUYWJsZUNyZWF0aW9uUGFyYW1ldGVycyQsIFswLCA0XSwgKCkgPT4gSW5wdXRGb3JtYXRPcHRpb25zJCwgMF0sIDNcbl07XG52YXIgSW1wb3J0VGFibGVPdXRwdXQkID0gWzMsIG4wLCBfSVRPLFxuICAgIDAsXG4gICAgW19JVERdLFxuICAgIFsoKSA9PiBJbXBvcnRUYWJsZURlc2NyaXB0aW9uJF0sIDFcbl07XG52YXIgSW5jcmVtZW50YWxFeHBvcnRTcGVjaWZpY2F0aW9uJCA9IFszLCBuMCwgX0lFUyxcbiAgICAwLFxuICAgIFtfRUZULCBfRVRULCBfRVZUXSxcbiAgICBbNCwgNCwgMF1cbl07XG52YXIgSW5kZXhOb3RGb3VuZEV4Y2VwdGlvbiQgPSBbLTMsIG4wLCBfSU5GRW4sXG4gICAgeyBbX2VdOiBfYyB9LFxuICAgIFtfbV0sXG4gICAgWzBdXG5dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoSW5kZXhOb3RGb3VuZEV4Y2VwdGlvbiQsIEluZGV4Tm90Rm91bmRFeGNlcHRpb24pO1xudmFyIElucHV0Rm9ybWF0T3B0aW9ucyQgPSBbMywgbjAsIF9JRk8sXG4gICAgMCxcbiAgICBbX0NzXSxcbiAgICBbKCkgPT4gQ3N2T3B0aW9ucyRdXG5dO1xudmFyIEludGVybmFsU2VydmVyRXJyb3IkID0gWy0zLCBuMCwgX0lTRSxcbiAgICB7IFtfZV06IF9zIH0sXG4gICAgW19tXSxcbiAgICBbMF1cbl07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihJbnRlcm5hbFNlcnZlckVycm9yJCwgSW50ZXJuYWxTZXJ2ZXJFcnJvcik7XG52YXIgSW52YWxpZEVuZHBvaW50RXhjZXB0aW9uJCA9IFstMywgbjAsIF9JRUUsXG4gICAgeyBbX2VdOiBfYywgW19oRV06IDQyMSB9LFxuICAgIFtfTV0sXG4gICAgWzBdXG5dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoSW52YWxpZEVuZHBvaW50RXhjZXB0aW9uJCwgSW52YWxpZEVuZHBvaW50RXhjZXB0aW9uKTtcbnZhciBJbnZhbGlkRXhwb3J0VGltZUV4Y2VwdGlvbiQgPSBbLTMsIG4wLCBfSUVURSxcbiAgICB7IFtfZV06IF9jIH0sXG4gICAgW19tXSxcbiAgICBbMF1cbl07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihJbnZhbGlkRXhwb3J0VGltZUV4Y2VwdGlvbiQsIEludmFsaWRFeHBvcnRUaW1lRXhjZXB0aW9uKTtcbnZhciBJbnZhbGlkUmVzdG9yZVRpbWVFeGNlcHRpb24kID0gWy0zLCBuMCwgX0lSVEUsXG4gICAgeyBbX2VdOiBfYyB9LFxuICAgIFtfbV0sXG4gICAgWzBdXG5dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoSW52YWxpZFJlc3RvcmVUaW1lRXhjZXB0aW9uJCwgSW52YWxpZFJlc3RvcmVUaW1lRXhjZXB0aW9uKTtcbnZhciBJdGVtQ29sbGVjdGlvbk1ldHJpY3MkID0gWzMsIG4wLCBfSUNNLFxuICAgIDAsXG4gICAgW19JQ0ssIF9TRVJHQl0sXG4gICAgWygpID0+IEl0ZW1Db2xsZWN0aW9uS2V5QXR0cmlidXRlTWFwLCA2NCB8IDFdXG5dO1xudmFyIEl0ZW1Db2xsZWN0aW9uU2l6ZUxpbWl0RXhjZWVkZWRFeGNlcHRpb24kID0gWy0zLCBuMCwgX0lDU0xFRSxcbiAgICB7IFtfZV06IF9jIH0sXG4gICAgW19tXSxcbiAgICBbMF1cbl07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihJdGVtQ29sbGVjdGlvblNpemVMaW1pdEV4Y2VlZGVkRXhjZXB0aW9uJCwgSXRlbUNvbGxlY3Rpb25TaXplTGltaXRFeGNlZWRlZEV4Y2VwdGlvbik7XG52YXIgSXRlbVJlc3BvbnNlJCA9IFszLCBuMCwgX0lSLFxuICAgIDAsXG4gICAgW19JXSxcbiAgICBbKCkgPT4gQXR0cmlidXRlTWFwXVxuXTtcbnZhciBLZXlzQW5kQXR0cmlidXRlcyQgPSBbMywgbjAsIF9LQUEsXG4gICAgMCxcbiAgICBbX0tlLCBfQVRHLCBfQ1IsIF9QRSwgX0VBTl0sXG4gICAgWygpID0+IEtleUxpc3QsIDY0IHwgMCwgMiwgMCwgMTI4IHwgMF0sIDFcbl07XG52YXIgS2V5U2NoZW1hRWxlbWVudCQgPSBbMywgbjAsIF9LU0UsXG4gICAgMCxcbiAgICBbX0FOLCBfS1RdLFxuICAgIFswLCAwXSwgMlxuXTtcbnZhciBLaW5lc2lzRGF0YVN0cmVhbURlc3RpbmF0aW9uJCA9IFszLCBuMCwgX0tEU0RpLFxuICAgIDAsXG4gICAgW19TQSwgX0RTLCBfRFNELCBfQUNEVFBdLFxuICAgIFswLCAwLCAwLCAwXVxuXTtcbnZhciBLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb25JbnB1dCQgPSBbMywgbjAsIF9LU0RJLFxuICAgIDAsXG4gICAgW19UTiwgX1NBLCBfRUtTQ10sXG4gICAgWzAsIDAsICgpID0+IEVuYWJsZUtpbmVzaXNTdHJlYW1pbmdDb25maWd1cmF0aW9uJF0sIDJcbl07XG52YXIgS2luZXNpc1N0cmVhbWluZ0Rlc3RpbmF0aW9uT3V0cHV0JCA9IFszLCBuMCwgX0tTRE8sXG4gICAgMCxcbiAgICBbX1ROLCBfU0EsIF9EUywgX0VLU0NdLFxuICAgIFswLCAwLCAwLCAoKSA9PiBFbmFibGVLaW5lc2lzU3RyZWFtaW5nQ29uZmlndXJhdGlvbiRdXG5dO1xudmFyIExpbWl0RXhjZWVkZWRFeGNlcHRpb24kID0gWy0zLCBuMCwgX0xFRSxcbiAgICB7IFtfZV06IF9jIH0sXG4gICAgW19tXSxcbiAgICBbMF1cbl07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihMaW1pdEV4Y2VlZGVkRXhjZXB0aW9uJCwgTGltaXRFeGNlZWRlZEV4Y2VwdGlvbik7XG52YXIgTGlzdEJhY2t1cHNJbnB1dCQgPSBbMywgbjAsIF9MQkksXG4gICAgMCxcbiAgICBbX1ROLCBfTCwgX1RSTEIsIF9UUlVCLCBfRVNCQSwgX0JUXSxcbiAgICBbMCwgMSwgNCwgNCwgMCwgMF1cbl07XG52YXIgTGlzdEJhY2t1cHNPdXRwdXQkID0gWzMsIG4wLCBfTEJPLFxuICAgIDAsXG4gICAgW19CU2FjLCBfTEVCQV0sXG4gICAgWygpID0+IEJhY2t1cFN1bW1hcmllcywgMF1cbl07XG52YXIgTGlzdENvbnRyaWJ1dG9ySW5zaWdodHNJbnB1dCQgPSBbMywgbjAsIF9MQ0lJLFxuICAgIDAsXG4gICAgW19UTiwgX05ULCBfTVJdLFxuICAgIFswLCAwLCAxXVxuXTtcbnZhciBMaXN0Q29udHJpYnV0b3JJbnNpZ2h0c091dHB1dCQgPSBbMywgbjAsIF9MQ0lPLFxuICAgIDAsXG4gICAgW19DSVNvbiwgX05UXSxcbiAgICBbKCkgPT4gQ29udHJpYnV0b3JJbnNpZ2h0c1N1bW1hcmllcywgMF1cbl07XG52YXIgTGlzdEV4cG9ydHNJbnB1dCQgPSBbMywgbjAsIF9MRUksXG4gICAgMCxcbiAgICBbX1RBLCBfTVIsIF9OVF0sXG4gICAgWzAsIDEsIDBdXG5dO1xudmFyIExpc3RFeHBvcnRzT3V0cHV0JCA9IFszLCBuMCwgX0xFTyxcbiAgICAwLFxuICAgIFtfRVN4cCwgX05UXSxcbiAgICBbKCkgPT4gRXhwb3J0U3VtbWFyaWVzLCAwXVxuXTtcbnZhciBMaXN0R2xvYmFsVGFibGVzSW5wdXQkID0gWzMsIG4wLCBfTEdUSSxcbiAgICAwLFxuICAgIFtfRVNHVE4sIF9MLCBfUk5dLFxuICAgIFswLCAxLCAwXVxuXTtcbnZhciBMaXN0R2xvYmFsVGFibGVzT3V0cHV0JCA9IFszLCBuMCwgX0xHVE8sXG4gICAgMCxcbiAgICBbX0dUbCwgX0xFR1ROXSxcbiAgICBbKCkgPT4gR2xvYmFsVGFibGVMaXN0LCAwXVxuXTtcbnZhciBMaXN0SW1wb3J0c0lucHV0JCA9IFszLCBuMCwgX0xJSSxcbiAgICAwLFxuICAgIFtfVEEsIF9QUywgX05UXSxcbiAgICBbMCwgMSwgMF1cbl07XG52YXIgTGlzdEltcG9ydHNPdXRwdXQkID0gWzMsIG4wLCBfTElPLFxuICAgIDAsXG4gICAgW19JU0wsIF9OVF0sXG4gICAgWygpID0+IEltcG9ydFN1bW1hcnlMaXN0LCAwXVxuXTtcbnZhciBMaXN0VGFibGVzSW5wdXQkID0gWzMsIG4wLCBfTFRJLFxuICAgIDAsXG4gICAgW19FU1ROLCBfTF0sXG4gICAgWzAsIDFdXG5dO1xudmFyIExpc3RUYWJsZXNPdXRwdXQkID0gWzMsIG4wLCBfTFRPLFxuICAgIDAsXG4gICAgW19UTmEsIF9MRVROXSxcbiAgICBbNjQgfCAwLCAwXVxuXTtcbnZhciBMaXN0VGFnc09mUmVzb3VyY2VJbnB1dCQgPSBbMywgbjAsIF9MVE9SSSxcbiAgICAwLFxuICAgIFtfUkEsIF9OVF0sXG4gICAgWzAsIDBdLCAxXG5dO1xudmFyIExpc3RUYWdzT2ZSZXNvdXJjZU91dHB1dCQgPSBbMywgbjAsIF9MVE9STyxcbiAgICAwLFxuICAgIFtfVGEsIF9OVF0sXG4gICAgWygpID0+IFRhZ0xpc3QsIDBdXG5dO1xudmFyIExvY2FsU2Vjb25kYXJ5SW5kZXgkID0gWzMsIG4wLCBfTFNJbyxcbiAgICAwLFxuICAgIFtfSU4sIF9LUywgX1ByXSxcbiAgICBbMCwgKCkgPT4gS2V5U2NoZW1hLCAoKSA9PiBQcm9qZWN0aW9uJF0sIDNcbl07XG52YXIgTG9jYWxTZWNvbmRhcnlJbmRleERlc2NyaXB0aW9uJCA9IFszLCBuMCwgX0xTSUQsXG4gICAgMCxcbiAgICBbX0lOLCBfS1MsIF9QciwgX0lTQiwgX0lDLCBfSUFuXSxcbiAgICBbMCwgKCkgPT4gS2V5U2NoZW1hLCAoKSA9PiBQcm9qZWN0aW9uJCwgMSwgMSwgMF1cbl07XG52YXIgTG9jYWxTZWNvbmRhcnlJbmRleEluZm8kID0gWzMsIG4wLCBfTFNJSSxcbiAgICAwLFxuICAgIFtfSU4sIF9LUywgX1ByXSxcbiAgICBbMCwgKCkgPT4gS2V5U2NoZW1hLCAoKSA9PiBQcm9qZWN0aW9uJF1cbl07XG52YXIgT25EZW1hbmRUaHJvdWdocHV0JCA9IFszLCBuMCwgX09EVCxcbiAgICAwLFxuICAgIFtfTVJSVSwgX01XUlVdLFxuICAgIFsxLCAxXVxuXTtcbnZhciBPbkRlbWFuZFRocm91Z2hwdXRPdmVycmlkZSQgPSBbMywgbjAsIF9PRFRPLFxuICAgIDAsXG4gICAgW19NUlJVXSxcbiAgICBbMV1cbl07XG52YXIgUGFyYW1ldGVyaXplZFN0YXRlbWVudCQgPSBbMywgbjAsIF9QU2EsXG4gICAgMCxcbiAgICBbX1N0LCBfUCwgX1JWT0NDRl0sXG4gICAgWzAsICgpID0+IFByZXBhcmVkU3RhdGVtZW50UGFyYW1ldGVycywgMF0sIDFcbl07XG52YXIgUG9pbnRJblRpbWVSZWNvdmVyeURlc2NyaXB0aW9uJCA9IFszLCBuMCwgX1BJVFJELFxuICAgIDAsXG4gICAgW19QSVRSUywgX1JQSUQsIF9FUkRULCBfTFJEVF0sXG4gICAgWzAsIDEsIDQsIDRdXG5dO1xudmFyIFBvaW50SW5UaW1lUmVjb3ZlcnlTcGVjaWZpY2F0aW9uJCA9IFszLCBuMCwgX1BJVFJTbyxcbiAgICAwLFxuICAgIFtfUElUUkUsIF9SUElEXSxcbiAgICBbMiwgMV0sIDFcbl07XG52YXIgUG9pbnRJblRpbWVSZWNvdmVyeVVuYXZhaWxhYmxlRXhjZXB0aW9uJCA9IFstMywgbjAsIF9QSVRSVUUsXG4gICAgeyBbX2VdOiBfYyB9LFxuICAgIFtfbV0sXG4gICAgWzBdXG5dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoUG9pbnRJblRpbWVSZWNvdmVyeVVuYXZhaWxhYmxlRXhjZXB0aW9uJCwgUG9pbnRJblRpbWVSZWNvdmVyeVVuYXZhaWxhYmxlRXhjZXB0aW9uKTtcbnZhciBQb2xpY3lOb3RGb3VuZEV4Y2VwdGlvbiQgPSBbLTMsIG4wLCBfUE5GRSxcbiAgICB7IFtfZV06IF9jIH0sXG4gICAgW19tXSxcbiAgICBbMF1cbl07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihQb2xpY3lOb3RGb3VuZEV4Y2VwdGlvbiQsIFBvbGljeU5vdEZvdW5kRXhjZXB0aW9uKTtcbnZhciBQcm9qZWN0aW9uJCA9IFszLCBuMCwgX1ByLFxuICAgIDAsXG4gICAgW19QVHIsIF9OS0FdLFxuICAgIFswLCA2NCB8IDBdXG5dO1xudmFyIFByb3Zpc2lvbmVkVGhyb3VnaHB1dCQgPSBbMywgbjAsIF9QVCxcbiAgICAwLFxuICAgIFtfUkNVLCBfV0NVXSxcbiAgICBbMSwgMV0sIDJcbl07XG52YXIgUHJvdmlzaW9uZWRUaHJvdWdocHV0RGVzY3JpcHRpb24kID0gWzMsIG4wLCBfUFRELFxuICAgIDAsXG4gICAgW19MSURULCBfTEREVCwgX05PRFQsIF9SQ1UsIF9XQ1VdLFxuICAgIFs0LCA0LCAxLCAxLCAxXVxuXTtcbnZhciBQcm92aXNpb25lZFRocm91Z2hwdXRFeGNlZWRlZEV4Y2VwdGlvbiQgPSBbLTMsIG4wLCBfUFRFRSxcbiAgICB7IFtfZV06IF9jIH0sXG4gICAgW19tLCBfVFJdLFxuICAgIFswLCAoKSA9PiBUaHJvdHRsaW5nUmVhc29uTGlzdF1cbl07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihQcm92aXNpb25lZFRocm91Z2hwdXRFeGNlZWRlZEV4Y2VwdGlvbiQsIFByb3Zpc2lvbmVkVGhyb3VnaHB1dEV4Y2VlZGVkRXhjZXB0aW9uKTtcbnZhciBQcm92aXNpb25lZFRocm91Z2hwdXRPdmVycmlkZSQgPSBbMywgbjAsIF9QVE8sXG4gICAgMCxcbiAgICBbX1JDVV0sXG4gICAgWzFdXG5dO1xudmFyIFB1dCQgPSBbMywgbjAsIF9QdSxcbiAgICAwLFxuICAgIFtfSSwgX1ROLCBfQ0UsIF9FQU4sIF9FQVYsIF9SVk9DQ0ZdLFxuICAgIFsoKSA9PiBQdXRJdGVtSW5wdXRBdHRyaWJ1dGVNYXAsIDAsIDAsIDEyOCB8IDAsICgpID0+IEV4cHJlc3Npb25BdHRyaWJ1dGVWYWx1ZU1hcCwgMF0sIDJcbl07XG52YXIgUHV0SXRlbUlucHV0JCA9IFszLCBuMCwgX1BJSSxcbiAgICAwLFxuICAgIFtfVE4sIF9JLCBfRXgsIF9SViwgX1JDQywgX1JJQ00sIF9DT28sIF9DRSwgX0VBTiwgX0VBViwgX1JWT0NDRl0sXG4gICAgWzAsICgpID0+IFB1dEl0ZW1JbnB1dEF0dHJpYnV0ZU1hcCwgKCkgPT4gRXhwZWN0ZWRBdHRyaWJ1dGVNYXAsIDAsIDAsIDAsIDAsIDAsIDEyOCB8IDAsICgpID0+IEV4cHJlc3Npb25BdHRyaWJ1dGVWYWx1ZU1hcCwgMF0sIDJcbl07XG52YXIgUHV0SXRlbU91dHB1dCQgPSBbMywgbjAsIF9QSU8sXG4gICAgMCxcbiAgICBbX0F0LCBfQ0MsIF9JQ01dLFxuICAgIFsoKSA9PiBBdHRyaWJ1dGVNYXAsICgpID0+IENvbnN1bWVkQ2FwYWNpdHkkLCAoKSA9PiBJdGVtQ29sbGVjdGlvbk1ldHJpY3MkXVxuXTtcbnZhciBQdXRSZXF1ZXN0JCA9IFszLCBuMCwgX1BSLFxuICAgIDAsXG4gICAgW19JXSxcbiAgICBbKCkgPT4gUHV0SXRlbUlucHV0QXR0cmlidXRlTWFwXSwgMVxuXTtcbnZhciBQdXRSZXNvdXJjZVBvbGljeUlucHV0JCA9IFszLCBuMCwgX1BSUEksXG4gICAgMCxcbiAgICBbX1JBLCBfUG8sIF9FUkksIF9DUlNSQV0sXG4gICAgWzAsIDAsIDAsIFsyLCB7IFtfaEhdOiBfeGFjcnNyYSB9XV0sIDJcbl07XG52YXIgUHV0UmVzb3VyY2VQb2xpY3lPdXRwdXQkID0gWzMsIG4wLCBfUFJQTyxcbiAgICAwLFxuICAgIFtfUkllXSxcbiAgICBbMF1cbl07XG52YXIgUXVlcnlJbnB1dCQgPSBbMywgbjAsIF9RSSxcbiAgICAwLFxuICAgIFtfVE4sIF9JTiwgX1NlLCBfQVRHLCBfTCwgX0NSLCBfS0MsIF9RRiwgX0NPbywgX1NJRiwgX0VTSywgX1JDQywgX1BFLCBfRkVpLCBfS0NFLCBfRUFOLCBfRUFWXSxcbiAgICBbMCwgMCwgMCwgNjQgfCAwLCAxLCAyLCAoKSA9PiBLZXlDb25kaXRpb25zLCAoKSA9PiBGaWx0ZXJDb25kaXRpb25NYXAsIDAsIDIsICgpID0+IEtleSwgMCwgMCwgMCwgMCwgMTI4IHwgMCwgKCkgPT4gRXhwcmVzc2lvbkF0dHJpYnV0ZVZhbHVlTWFwXSwgMVxuXTtcbnZhciBRdWVyeU91dHB1dCQgPSBbMywgbjAsIF9RTyxcbiAgICAwLFxuICAgIFtfSXQsIF9Db3UsIF9TQywgX0xFSywgX0NDXSxcbiAgICBbKCkgPT4gSXRlbUxpc3QsIDEsIDEsICgpID0+IEtleSwgKCkgPT4gQ29uc3VtZWRDYXBhY2l0eSRdXG5dO1xudmFyIFJlcGxpY2EkID0gWzMsIG4wLCBfUmUsXG4gICAgMCxcbiAgICBbX1JOXSxcbiAgICBbMF1cbl07XG52YXIgUmVwbGljYUFscmVhZHlFeGlzdHNFeGNlcHRpb24kID0gWy0zLCBuMCwgX1JBRUUsXG4gICAgeyBbX2VdOiBfYyB9LFxuICAgIFtfbV0sXG4gICAgWzBdXG5dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoUmVwbGljYUFscmVhZHlFeGlzdHNFeGNlcHRpb24kLCBSZXBsaWNhQWxyZWFkeUV4aXN0c0V4Y2VwdGlvbik7XG52YXIgUmVwbGljYUF1dG9TY2FsaW5nRGVzY3JpcHRpb24kID0gWzMsIG4wLCBfUkFTRCxcbiAgICAwLFxuICAgIFtfUk4sIF9HU0ksIF9SUFJDQVNTLCBfUlBXQ0FTUywgX1JTZV0sXG4gICAgWzAsICgpID0+IFJlcGxpY2FHbG9iYWxTZWNvbmRhcnlJbmRleEF1dG9TY2FsaW5nRGVzY3JpcHRpb25MaXN0LCAoKSA9PiBBdXRvU2NhbGluZ1NldHRpbmdzRGVzY3JpcHRpb24kLCAoKSA9PiBBdXRvU2NhbGluZ1NldHRpbmdzRGVzY3JpcHRpb24kLCAwXVxuXTtcbnZhciBSZXBsaWNhQXV0b1NjYWxpbmdVcGRhdGUkID0gWzMsIG4wLCBfUkFTVSxcbiAgICAwLFxuICAgIFtfUk4sIF9SR1NJVSwgX1JQUkNBU1VdLFxuICAgIFswLCAoKSA9PiBSZXBsaWNhR2xvYmFsU2Vjb25kYXJ5SW5kZXhBdXRvU2NhbGluZ1VwZGF0ZUxpc3QsICgpID0+IEF1dG9TY2FsaW5nU2V0dGluZ3NVcGRhdGUkXSwgMVxuXTtcbnZhciBSZXBsaWNhRGVzY3JpcHRpb24kID0gWzMsIG4wLCBfUkQsXG4gICAgMCxcbiAgICBbX1JOLCBfUlNlLCBfUlNELCBfUlNQUCwgX0tNU01LSSwgX1BUTywgX09EVE8sIF9XVCwgX0dTSSwgX1JJRFQsIF9SVENTXSxcbiAgICBbMCwgMCwgMCwgMCwgMCwgKCkgPT4gUHJvdmlzaW9uZWRUaHJvdWdocHV0T3ZlcnJpZGUkLCAoKSA9PiBPbkRlbWFuZFRocm91Z2hwdXRPdmVycmlkZSQsICgpID0+IFRhYmxlV2FybVRocm91Z2hwdXREZXNjcmlwdGlvbiQsICgpID0+IFJlcGxpY2FHbG9iYWxTZWNvbmRhcnlJbmRleERlc2NyaXB0aW9uTGlzdCwgNCwgKCkgPT4gVGFibGVDbGFzc1N1bW1hcnkkXVxuXTtcbnZhciBSZXBsaWNhR2xvYmFsU2Vjb25kYXJ5SW5kZXgkID0gWzMsIG4wLCBfUkdTSSxcbiAgICAwLFxuICAgIFtfSU4sIF9QVE8sIF9PRFRPXSxcbiAgICBbMCwgKCkgPT4gUHJvdmlzaW9uZWRUaHJvdWdocHV0T3ZlcnJpZGUkLCAoKSA9PiBPbkRlbWFuZFRocm91Z2hwdXRPdmVycmlkZSRdLCAxXG5dO1xudmFyIFJlcGxpY2FHbG9iYWxTZWNvbmRhcnlJbmRleEF1dG9TY2FsaW5nRGVzY3JpcHRpb24kID0gWzMsIG4wLCBfUkdTSUFTRCxcbiAgICAwLFxuICAgIFtfSU4sIF9JUywgX1BSQ0FTUywgX1BXQ0FTU10sXG4gICAgWzAsIDAsICgpID0+IEF1dG9TY2FsaW5nU2V0dGluZ3NEZXNjcmlwdGlvbiQsICgpID0+IEF1dG9TY2FsaW5nU2V0dGluZ3NEZXNjcmlwdGlvbiRdXG5dO1xudmFyIFJlcGxpY2FHbG9iYWxTZWNvbmRhcnlJbmRleEF1dG9TY2FsaW5nVXBkYXRlJCA9IFszLCBuMCwgX1JHU0lBU1UsXG4gICAgMCxcbiAgICBbX0lOLCBfUFJDQVNVXSxcbiAgICBbMCwgKCkgPT4gQXV0b1NjYWxpbmdTZXR0aW5nc1VwZGF0ZSRdXG5dO1xudmFyIFJlcGxpY2FHbG9iYWxTZWNvbmRhcnlJbmRleERlc2NyaXB0aW9uJCA9IFszLCBuMCwgX1JHU0lELFxuICAgIDAsXG4gICAgW19JTiwgX1BUTywgX09EVE8sIF9XVF0sXG4gICAgWzAsICgpID0+IFByb3Zpc2lvbmVkVGhyb3VnaHB1dE92ZXJyaWRlJCwgKCkgPT4gT25EZW1hbmRUaHJvdWdocHV0T3ZlcnJpZGUkLCAoKSA9PiBHbG9iYWxTZWNvbmRhcnlJbmRleFdhcm1UaHJvdWdocHV0RGVzY3JpcHRpb24kXVxuXTtcbnZhciBSZXBsaWNhR2xvYmFsU2Vjb25kYXJ5SW5kZXhTZXR0aW5nc0Rlc2NyaXB0aW9uJCA9IFszLCBuMCwgX1JHU0lTRCxcbiAgICAwLFxuICAgIFtfSU4sIF9JUywgX1BSQ1UsIF9QUkNBU1MsIF9QV0NVLCBfUFdDQVNTXSxcbiAgICBbMCwgMCwgMSwgKCkgPT4gQXV0b1NjYWxpbmdTZXR0aW5nc0Rlc2NyaXB0aW9uJCwgMSwgKCkgPT4gQXV0b1NjYWxpbmdTZXR0aW5nc0Rlc2NyaXB0aW9uJF0sIDFcbl07XG52YXIgUmVwbGljYUdsb2JhbFNlY29uZGFyeUluZGV4U2V0dGluZ3NVcGRhdGUkID0gWzMsIG4wLCBfUkdTSVNVLFxuICAgIDAsXG4gICAgW19JTiwgX1BSQ1UsIF9QUkNBU1NVXSxcbiAgICBbMCwgMSwgKCkgPT4gQXV0b1NjYWxpbmdTZXR0aW5nc1VwZGF0ZSRdLCAxXG5dO1xudmFyIFJlcGxpY2FOb3RGb3VuZEV4Y2VwdGlvbiQgPSBbLTMsIG4wLCBfUk5GRSxcbiAgICB7IFtfZV06IF9jIH0sXG4gICAgW19tXSxcbiAgICBbMF1cbl07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihSZXBsaWNhTm90Rm91bmRFeGNlcHRpb24kLCBSZXBsaWNhTm90Rm91bmRFeGNlcHRpb24pO1xudmFyIFJlcGxpY2FTZXR0aW5nc0Rlc2NyaXB0aW9uJCA9IFszLCBuMCwgX1JTRGUsXG4gICAgMCxcbiAgICBbX1JOLCBfUlNlLCBfUkJNUywgX1JQUkNVLCBfUlBSQ0FTUywgX1JQV0NVLCBfUlBXQ0FTUywgX1JHU0lTLCBfUlRDU10sXG4gICAgWzAsIDAsICgpID0+IEJpbGxpbmdNb2RlU3VtbWFyeSQsIDEsICgpID0+IEF1dG9TY2FsaW5nU2V0dGluZ3NEZXNjcmlwdGlvbiQsIDEsICgpID0+IEF1dG9TY2FsaW5nU2V0dGluZ3NEZXNjcmlwdGlvbiQsICgpID0+IFJlcGxpY2FHbG9iYWxTZWNvbmRhcnlJbmRleFNldHRpbmdzRGVzY3JpcHRpb25MaXN0LCAoKSA9PiBUYWJsZUNsYXNzU3VtbWFyeSRdLCAxXG5dO1xudmFyIFJlcGxpY2FTZXR0aW5nc1VwZGF0ZSQgPSBbMywgbjAsIF9SU1UsXG4gICAgMCxcbiAgICBbX1JOLCBfUlBSQ1UsIF9SUFJDQVNTVSwgX1JHU0lTVSwgX1JUQ10sXG4gICAgWzAsIDEsICgpID0+IEF1dG9TY2FsaW5nU2V0dGluZ3NVcGRhdGUkLCAoKSA9PiBSZXBsaWNhR2xvYmFsU2Vjb25kYXJ5SW5kZXhTZXR0aW5nc1VwZGF0ZUxpc3QsIDBdLCAxXG5dO1xudmFyIFJlcGxpY2F0ZWRXcml0ZUNvbmZsaWN0RXhjZXB0aW9uJCA9IFstMywgbjAsIF9SV0NFLFxuICAgIHsgW19lXTogX2MgfSxcbiAgICBbX21dLFxuICAgIFswXVxuXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKFJlcGxpY2F0ZWRXcml0ZUNvbmZsaWN0RXhjZXB0aW9uJCwgUmVwbGljYXRlZFdyaXRlQ29uZmxpY3RFeGNlcHRpb24pO1xudmFyIFJlcGxpY2F0aW9uR3JvdXBVcGRhdGUkID0gWzMsIG4wLCBfUkdVLFxuICAgIDAsXG4gICAgW19DciwgX1UsIF9EZV0sXG4gICAgWygpID0+IENyZWF0ZVJlcGxpY2F0aW9uR3JvdXBNZW1iZXJBY3Rpb24kLCAoKSA9PiBVcGRhdGVSZXBsaWNhdGlvbkdyb3VwTWVtYmVyQWN0aW9uJCwgKCkgPT4gRGVsZXRlUmVwbGljYXRpb25Hcm91cE1lbWJlckFjdGlvbiRdXG5dO1xudmFyIFJlcGxpY2FVcGRhdGUkID0gWzMsIG4wLCBfUlUsXG4gICAgMCxcbiAgICBbX0NyLCBfRGVdLFxuICAgIFsoKSA9PiBDcmVhdGVSZXBsaWNhQWN0aW9uJCwgKCkgPT4gRGVsZXRlUmVwbGljYUFjdGlvbiRdXG5dO1xudmFyIFJlcXVlc3RMaW1pdEV4Y2VlZGVkJCA9IFstMywgbjAsIF9STEUsXG4gICAgeyBbX2VdOiBfYyB9LFxuICAgIFtfbSwgX1RSXSxcbiAgICBbMCwgKCkgPT4gVGhyb3R0bGluZ1JlYXNvbkxpc3RdXG5dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoUmVxdWVzdExpbWl0RXhjZWVkZWQkLCBSZXF1ZXN0TGltaXRFeGNlZWRlZCk7XG52YXIgUmVzb3VyY2VJblVzZUV4Y2VwdGlvbiQgPSBbLTMsIG4wLCBfUklVRSxcbiAgICB7IFtfZV06IF9jIH0sXG4gICAgW19tXSxcbiAgICBbMF1cbl07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihSZXNvdXJjZUluVXNlRXhjZXB0aW9uJCwgUmVzb3VyY2VJblVzZUV4Y2VwdGlvbik7XG52YXIgUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvbiQgPSBbLTMsIG4wLCBfUk5GRWUsXG4gICAgeyBbX2VdOiBfYyB9LFxuICAgIFtfbV0sXG4gICAgWzBdXG5dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvbiQsIFJlc291cmNlTm90Rm91bmRFeGNlcHRpb24pO1xudmFyIFJlc3RvcmVTdW1tYXJ5JCA9IFszLCBuMCwgX1JTZXMsXG4gICAgMCxcbiAgICBbX1JEVCwgX1JJUCwgX1NCQSwgX1NUQV0sXG4gICAgWzQsIDIsIDAsIDBdLCAyXG5dO1xudmFyIFJlc3RvcmVUYWJsZUZyb21CYWNrdXBJbnB1dCQgPSBbMywgbjAsIF9SVEZCSSxcbiAgICAwLFxuICAgIFtfVFROLCBfQkEsIF9CTU8sIF9HU0lPLCBfTFNJTywgX1BUTywgX09EVE8sIF9TU0VTT10sXG4gICAgWzAsIDAsIDAsICgpID0+IEdsb2JhbFNlY29uZGFyeUluZGV4TGlzdCwgKCkgPT4gTG9jYWxTZWNvbmRhcnlJbmRleExpc3QsICgpID0+IFByb3Zpc2lvbmVkVGhyb3VnaHB1dCQsICgpID0+IE9uRGVtYW5kVGhyb3VnaHB1dCQsICgpID0+IFNTRVNwZWNpZmljYXRpb24kXSwgMlxuXTtcbnZhciBSZXN0b3JlVGFibGVGcm9tQmFja3VwT3V0cHV0JCA9IFszLCBuMCwgX1JURkJPLFxuICAgIDAsXG4gICAgW19URF0sXG4gICAgWygpID0+IFRhYmxlRGVzY3JpcHRpb24kXVxuXTtcbnZhciBSZXN0b3JlVGFibGVUb1BvaW50SW5UaW1lSW5wdXQkID0gWzMsIG4wLCBfUlRUUElUSSxcbiAgICAwLFxuICAgIFtfVFROLCBfU1RBLCBfU1ROLCBfVUxSVCwgX1JEVCwgX0JNTywgX0dTSU8sIF9MU0lPLCBfUFRPLCBfT0RUTywgX1NTRVNPXSxcbiAgICBbMCwgMCwgMCwgMiwgNCwgMCwgKCkgPT4gR2xvYmFsU2Vjb25kYXJ5SW5kZXhMaXN0LCAoKSA9PiBMb2NhbFNlY29uZGFyeUluZGV4TGlzdCwgKCkgPT4gUHJvdmlzaW9uZWRUaHJvdWdocHV0JCwgKCkgPT4gT25EZW1hbmRUaHJvdWdocHV0JCwgKCkgPT4gU1NFU3BlY2lmaWNhdGlvbiRdLCAxXG5dO1xudmFyIFJlc3RvcmVUYWJsZVRvUG9pbnRJblRpbWVPdXRwdXQkID0gWzMsIG4wLCBfUlRUUElUTyxcbiAgICAwLFxuICAgIFtfVERdLFxuICAgIFsoKSA9PiBUYWJsZURlc2NyaXB0aW9uJF1cbl07XG52YXIgUzNCdWNrZXRTb3VyY2UkID0gWzMsIG4wLCBfU0JTLFxuICAgIDAsXG4gICAgW19TQiwgX1NCTywgX1NLUF0sXG4gICAgWzAsIDAsIDBdLCAxXG5dO1xudmFyIFNjYW5JbnB1dCQgPSBbMywgbjAsIF9TSSxcbiAgICAwLFxuICAgIFtfVE4sIF9JTiwgX0FURywgX0wsIF9TZSwgX1NGLCBfQ09vLCBfRVNLLCBfUkNDLCBfVFNvLCBfU2VnLCBfUEUsIF9GRWksIF9FQU4sIF9FQVYsIF9DUl0sXG4gICAgWzAsIDAsIDY0IHwgMCwgMSwgMCwgKCkgPT4gRmlsdGVyQ29uZGl0aW9uTWFwLCAwLCAoKSA9PiBLZXksIDAsIDEsIDEsIDAsIDAsIDEyOCB8IDAsICgpID0+IEV4cHJlc3Npb25BdHRyaWJ1dGVWYWx1ZU1hcCwgMl0sIDFcbl07XG52YXIgU2Nhbk91dHB1dCQgPSBbMywgbjAsIF9TTyxcbiAgICAwLFxuICAgIFtfSXQsIF9Db3UsIF9TQywgX0xFSywgX0NDXSxcbiAgICBbKCkgPT4gSXRlbUxpc3QsIDEsIDEsICgpID0+IEtleSwgKCkgPT4gQ29uc3VtZWRDYXBhY2l0eSRdXG5dO1xudmFyIFNvdXJjZVRhYmxlRGV0YWlscyQgPSBbMywgbjAsIF9TVEQsXG4gICAgMCxcbiAgICBbX1ROLCBfVEksIF9LUywgX1RDRFQsIF9QVCwgX1RBLCBfVFNCLCBfT0RULCBfSUMsIF9CTV0sXG4gICAgWzAsIDAsICgpID0+IEtleVNjaGVtYSwgNCwgKCkgPT4gUHJvdmlzaW9uZWRUaHJvdWdocHV0JCwgMCwgMSwgKCkgPT4gT25EZW1hbmRUaHJvdWdocHV0JCwgMSwgMF0sIDVcbl07XG52YXIgU291cmNlVGFibGVGZWF0dXJlRGV0YWlscyQgPSBbMywgbjAsIF9TVEZELFxuICAgIDAsXG4gICAgW19MU0ksIF9HU0ksIF9TRCwgX1RUTEQsIF9TU0VEXSxcbiAgICBbKCkgPT4gTG9jYWxTZWNvbmRhcnlJbmRleGVzLCAoKSA9PiBHbG9iYWxTZWNvbmRhcnlJbmRleGVzLCAoKSA9PiBTdHJlYW1TcGVjaWZpY2F0aW9uJCwgKCkgPT4gVGltZVRvTGl2ZURlc2NyaXB0aW9uJCwgKCkgPT4gU1NFRGVzY3JpcHRpb24kXVxuXTtcbnZhciBTU0VEZXNjcmlwdGlvbiQgPSBbMywgbjAsIF9TU0VELFxuICAgIDAsXG4gICAgW19TdGEsIF9TU0VULCBfS01TTUtBLCBfSUVEVF0sXG4gICAgWzAsIDAsIDAsIDRdXG5dO1xudmFyIFNTRVNwZWNpZmljYXRpb24kID0gWzMsIG4wLCBfU1NFUyxcbiAgICAwLFxuICAgIFtfRW5hLCBfU1NFVCwgX0tNU01LSV0sXG4gICAgWzIsIDAsIDBdXG5dO1xudmFyIFN0cmVhbVNwZWNpZmljYXRpb24kID0gWzMsIG4wLCBfU1MsXG4gICAgMCxcbiAgICBbX1NFLCBfU1ZUXSxcbiAgICBbMiwgMF0sIDFcbl07XG52YXIgVGFibGVBbHJlYWR5RXhpc3RzRXhjZXB0aW9uJCA9IFstMywgbjAsIF9UQUVFLFxuICAgIHsgW19lXTogX2MgfSxcbiAgICBbX21dLFxuICAgIFswXVxuXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKFRhYmxlQWxyZWFkeUV4aXN0c0V4Y2VwdGlvbiQsIFRhYmxlQWxyZWFkeUV4aXN0c0V4Y2VwdGlvbik7XG52YXIgVGFibGVBdXRvU2NhbGluZ0Rlc2NyaXB0aW9uJCA9IFszLCBuMCwgX1RBU0QsXG4gICAgMCxcbiAgICBbX1ROLCBfVFNhLCBfUmVwXSxcbiAgICBbMCwgMCwgKCkgPT4gUmVwbGljYUF1dG9TY2FsaW5nRGVzY3JpcHRpb25MaXN0XVxuXTtcbnZhciBUYWJsZUNsYXNzU3VtbWFyeSQgPSBbMywgbjAsIF9UQ1MsXG4gICAgMCxcbiAgICBbX1RDLCBfTFVEVF0sXG4gICAgWzAsIDRdXG5dO1xudmFyIFRhYmxlQ3JlYXRpb25QYXJhbWV0ZXJzJCA9IFszLCBuMCwgX1RDUCxcbiAgICAwLFxuICAgIFtfVE4sIF9BRHQsIF9LUywgX0JNLCBfUFQsIF9PRFQsIF9TU0VTLCBfR1NJXSxcbiAgICBbMCwgKCkgPT4gQXR0cmlidXRlRGVmaW5pdGlvbnMsICgpID0+IEtleVNjaGVtYSwgMCwgKCkgPT4gUHJvdmlzaW9uZWRUaHJvdWdocHV0JCwgKCkgPT4gT25EZW1hbmRUaHJvdWdocHV0JCwgKCkgPT4gU1NFU3BlY2lmaWNhdGlvbiQsICgpID0+IEdsb2JhbFNlY29uZGFyeUluZGV4TGlzdF0sIDNcbl07XG52YXIgVGFibGVEZXNjcmlwdGlvbiQgPSBbMywgbjAsIF9URCxcbiAgICAwLFxuICAgIFtfQUR0LCBfVE4sIF9LUywgX1RTYSwgX0NEVCwgX1BULCBfVFNCLCBfSUMsIF9UQSwgX1RJLCBfQk1TLCBfTFNJLCBfR1NJLCBfU1MsIF9MU0wsIF9MU0EsIF9HVFYsIF9SZXAsIF9HVFcsIF9SU2VzLCBfU1NFRCwgX0FTLCBfVENTLCBfRFBFLCBfT0RULCBfV1QsIF9NUkNdLFxuICAgIFsoKSA9PiBBdHRyaWJ1dGVEZWZpbml0aW9ucywgMCwgKCkgPT4gS2V5U2NoZW1hLCAwLCA0LCAoKSA9PiBQcm92aXNpb25lZFRocm91Z2hwdXREZXNjcmlwdGlvbiQsIDEsIDEsIDAsIDAsICgpID0+IEJpbGxpbmdNb2RlU3VtbWFyeSQsICgpID0+IExvY2FsU2Vjb25kYXJ5SW5kZXhEZXNjcmlwdGlvbkxpc3QsICgpID0+IEdsb2JhbFNlY29uZGFyeUluZGV4RGVzY3JpcHRpb25MaXN0LCAoKSA9PiBTdHJlYW1TcGVjaWZpY2F0aW9uJCwgMCwgMCwgMCwgKCkgPT4gUmVwbGljYURlc2NyaXB0aW9uTGlzdCwgKCkgPT4gR2xvYmFsVGFibGVXaXRuZXNzRGVzY3JpcHRpb25MaXN0LCAoKSA9PiBSZXN0b3JlU3VtbWFyeSQsICgpID0+IFNTRURlc2NyaXB0aW9uJCwgKCkgPT4gQXJjaGl2YWxTdW1tYXJ5JCwgKCkgPT4gVGFibGVDbGFzc1N1bW1hcnkkLCAyLCAoKSA9PiBPbkRlbWFuZFRocm91Z2hwdXQkLCAoKSA9PiBUYWJsZVdhcm1UaHJvdWdocHV0RGVzY3JpcHRpb24kLCAwXVxuXTtcbnZhciBUYWJsZUluVXNlRXhjZXB0aW9uJCA9IFstMywgbjAsIF9USVVFLFxuICAgIHsgW19lXTogX2MgfSxcbiAgICBbX21dLFxuICAgIFswXVxuXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKFRhYmxlSW5Vc2VFeGNlcHRpb24kLCBUYWJsZUluVXNlRXhjZXB0aW9uKTtcbnZhciBUYWJsZU5vdEZvdW5kRXhjZXB0aW9uJCA9IFstMywgbjAsIF9UTkZFLFxuICAgIHsgW19lXTogX2MgfSxcbiAgICBbX21dLFxuICAgIFswXVxuXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKFRhYmxlTm90Rm91bmRFeGNlcHRpb24kLCBUYWJsZU5vdEZvdW5kRXhjZXB0aW9uKTtcbnZhciBUYWJsZVdhcm1UaHJvdWdocHV0RGVzY3JpcHRpb24kID0gWzMsIG4wLCBfVFdURCxcbiAgICAwLFxuICAgIFtfUlVQUywgX1dVUFMsIF9TdGFdLFxuICAgIFsxLCAxLCAwXVxuXTtcbnZhciBUYWckID0gWzMsIG4wLCBfVGFnLFxuICAgIDAsXG4gICAgW19LLCBfVl0sXG4gICAgWzAsIDBdLCAyXG5dO1xudmFyIFRhZ1Jlc291cmNlSW5wdXQkID0gWzMsIG4wLCBfVFJJLFxuICAgIDAsXG4gICAgW19SQSwgX1RhXSxcbiAgICBbMCwgKCkgPT4gVGFnTGlzdF0sIDJcbl07XG52YXIgVGhyb3R0bGluZ0V4Y2VwdGlvbiQgPSBbLTMsIG4wLCBfVEUsXG4gICAgeyBbX2FRRV06IFtgVGhyb3R0bGluZ2AsIDQwMF0sIFtfZV06IF9jLCBbX2hFXTogNDAwIH0sXG4gICAgW19tLCBfdFJdLFxuICAgIFswLCAoKSA9PiBUaHJvdHRsaW5nUmVhc29uTGlzdF1cbl07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihUaHJvdHRsaW5nRXhjZXB0aW9uJCwgVGhyb3R0bGluZ0V4Y2VwdGlvbik7XG52YXIgVGhyb3R0bGluZ1JlYXNvbiQgPSBbMywgbjAsIF9UUmgsXG4gICAgMCxcbiAgICBbX3IsIF9yZV0sXG4gICAgWzAsIDBdXG5dO1xudmFyIFRpbWVUb0xpdmVEZXNjcmlwdGlvbiQgPSBbMywgbjAsIF9UVExELFxuICAgIDAsXG4gICAgW19UVExTLCBfQU5dLFxuICAgIFswLCAwXVxuXTtcbnZhciBUaW1lVG9MaXZlU3BlY2lmaWNhdGlvbiQgPSBbMywgbjAsIF9UVExTaSxcbiAgICAwLFxuICAgIFtfRW5hLCBfQU5dLFxuICAgIFsyLCAwXSwgMlxuXTtcbnZhciBUcmFuc2FjdEdldEl0ZW0kID0gWzMsIG4wLCBfVEdJLFxuICAgIDAsXG4gICAgW19HXSxcbiAgICBbKCkgPT4gR2V0JF0sIDFcbl07XG52YXIgVHJhbnNhY3RHZXRJdGVtc0lucHV0JCA9IFszLCBuMCwgX1RHSUksXG4gICAgMCxcbiAgICBbX1RJciwgX1JDQ10sXG4gICAgWygpID0+IFRyYW5zYWN0R2V0SXRlbUxpc3QsIDBdLCAxXG5dO1xudmFyIFRyYW5zYWN0R2V0SXRlbXNPdXRwdXQkID0gWzMsIG4wLCBfVEdJTyxcbiAgICAwLFxuICAgIFtfQ0MsIF9SXSxcbiAgICBbKCkgPT4gQ29uc3VtZWRDYXBhY2l0eU11bHRpcGxlLCAoKSA9PiBJdGVtUmVzcG9uc2VMaXN0XVxuXTtcbnZhciBUcmFuc2FjdGlvbkNhbmNlbGVkRXhjZXB0aW9uJCA9IFstMywgbjAsIF9UQ0UsXG4gICAgeyBbX2VdOiBfYyB9LFxuICAgIFtfTSwgX0NSYW5dLFxuICAgIFswLCAoKSA9PiBDYW5jZWxsYXRpb25SZWFzb25MaXN0XVxuXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKFRyYW5zYWN0aW9uQ2FuY2VsZWRFeGNlcHRpb24kLCBUcmFuc2FjdGlvbkNhbmNlbGVkRXhjZXB0aW9uKTtcbnZhciBUcmFuc2FjdGlvbkNvbmZsaWN0RXhjZXB0aW9uJCA9IFstMywgbjAsIF9UQ0VyLFxuICAgIHsgW19lXTogX2MgfSxcbiAgICBbX21dLFxuICAgIFswXVxuXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKFRyYW5zYWN0aW9uQ29uZmxpY3RFeGNlcHRpb24kLCBUcmFuc2FjdGlvbkNvbmZsaWN0RXhjZXB0aW9uKTtcbnZhciBUcmFuc2FjdGlvbkluUHJvZ3Jlc3NFeGNlcHRpb24kID0gWy0zLCBuMCwgX1RJUEUsXG4gICAgeyBbX2VdOiBfYyB9LFxuICAgIFtfTV0sXG4gICAgWzBdXG5dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoVHJhbnNhY3Rpb25JblByb2dyZXNzRXhjZXB0aW9uJCwgVHJhbnNhY3Rpb25JblByb2dyZXNzRXhjZXB0aW9uKTtcbnZhciBUcmFuc2FjdFdyaXRlSXRlbSQgPSBbMywgbjAsIF9UV0ksXG4gICAgMCxcbiAgICBbX0NDbywgX1B1LCBfRGUsIF9VXSxcbiAgICBbKCkgPT4gQ29uZGl0aW9uQ2hlY2skLCAoKSA9PiBQdXQkLCAoKSA9PiBEZWxldGUkLCAoKSA9PiBVcGRhdGUkXVxuXTtcbnZhciBUcmFuc2FjdFdyaXRlSXRlbXNJbnB1dCQgPSBbMywgbjAsIF9UV0lJLFxuICAgIDAsXG4gICAgW19USXIsIF9SQ0MsIF9SSUNNLCBfQ1JUXSxcbiAgICBbKCkgPT4gVHJhbnNhY3RXcml0ZUl0ZW1MaXN0LCAwLCAwLCBbMCwgNF1dLCAxXG5dO1xudmFyIFRyYW5zYWN0V3JpdGVJdGVtc091dHB1dCQgPSBbMywgbjAsIF9UV0lPLFxuICAgIDAsXG4gICAgW19DQywgX0lDTV0sXG4gICAgWygpID0+IENvbnN1bWVkQ2FwYWNpdHlNdWx0aXBsZSwgKCkgPT4gSXRlbUNvbGxlY3Rpb25NZXRyaWNzUGVyVGFibGVdXG5dO1xudmFyIFVudGFnUmVzb3VyY2VJbnB1dCQgPSBbMywgbjAsIF9VUkksXG4gICAgMCxcbiAgICBbX1JBLCBfVEtdLFxuICAgIFswLCA2NCB8IDBdLCAyXG5dO1xudmFyIFVwZGF0ZSQgPSBbMywgbjAsIF9VLFxuICAgIDAsXG4gICAgW19LLCBfVUUsIF9UTiwgX0NFLCBfRUFOLCBfRUFWLCBfUlZPQ0NGXSxcbiAgICBbKCkgPT4gS2V5LCAwLCAwLCAwLCAxMjggfCAwLCAoKSA9PiBFeHByZXNzaW9uQXR0cmlidXRlVmFsdWVNYXAsIDBdLCAzXG5dO1xudmFyIFVwZGF0ZUNvbnRpbnVvdXNCYWNrdXBzSW5wdXQkID0gWzMsIG4wLCBfVUNCSSxcbiAgICAwLFxuICAgIFtfVE4sIF9QSVRSU29dLFxuICAgIFswLCAoKSA9PiBQb2ludEluVGltZVJlY292ZXJ5U3BlY2lmaWNhdGlvbiRdLCAyXG5dO1xudmFyIFVwZGF0ZUNvbnRpbnVvdXNCYWNrdXBzT3V0cHV0JCA9IFszLCBuMCwgX1VDQk8sXG4gICAgMCxcbiAgICBbX0NCRF0sXG4gICAgWygpID0+IENvbnRpbnVvdXNCYWNrdXBzRGVzY3JpcHRpb24kXVxuXTtcbnZhciBVcGRhdGVDb250cmlidXRvckluc2lnaHRzSW5wdXQkID0gWzMsIG4wLCBfVUNJSSxcbiAgICAwLFxuICAgIFtfVE4sIF9DSUEsIF9JTiwgX0NJTV0sXG4gICAgWzAsIDAsIDAsIDBdLCAyXG5dO1xudmFyIFVwZGF0ZUNvbnRyaWJ1dG9ySW5zaWdodHNPdXRwdXQkID0gWzMsIG4wLCBfVUNJTyxcbiAgICAwLFxuICAgIFtfVE4sIF9JTiwgX0NJU28sIF9DSU1dLFxuICAgIFswLCAwLCAwLCAwXVxuXTtcbnZhciBVcGRhdGVHbG9iYWxTZWNvbmRhcnlJbmRleEFjdGlvbiQgPSBbMywgbjAsIF9VR1NJQSxcbiAgICAwLFxuICAgIFtfSU4sIF9QVCwgX09EVCwgX1dUXSxcbiAgICBbMCwgKCkgPT4gUHJvdmlzaW9uZWRUaHJvdWdocHV0JCwgKCkgPT4gT25EZW1hbmRUaHJvdWdocHV0JCwgKCkgPT4gV2FybVRocm91Z2hwdXQkXSwgMVxuXTtcbnZhciBVcGRhdGVHbG9iYWxUYWJsZUlucHV0JCA9IFszLCBuMCwgX1VHVEksXG4gICAgMCxcbiAgICBbX0dUTiwgX1JVZV0sXG4gICAgWzAsICgpID0+IFJlcGxpY2FVcGRhdGVMaXN0XSwgMlxuXTtcbnZhciBVcGRhdGVHbG9iYWxUYWJsZU91dHB1dCQgPSBbMywgbjAsIF9VR1RPLFxuICAgIDAsXG4gICAgW19HVERdLFxuICAgIFsoKSA9PiBHbG9iYWxUYWJsZURlc2NyaXB0aW9uJF1cbl07XG52YXIgVXBkYXRlR2xvYmFsVGFibGVTZXR0aW5nc0lucHV0JCA9IFszLCBuMCwgX1VHVFNJLFxuICAgIDAsXG4gICAgW19HVE4sIF9HVEJNLCBfR1RQV0NVLCBfR1RQV0NBU1NVLCBfR1RHU0lTVSwgX1JTVV0sXG4gICAgWzAsIDAsIDEsICgpID0+IEF1dG9TY2FsaW5nU2V0dGluZ3NVcGRhdGUkLCAoKSA9PiBHbG9iYWxUYWJsZUdsb2JhbFNlY29uZGFyeUluZGV4U2V0dGluZ3NVcGRhdGVMaXN0LCAoKSA9PiBSZXBsaWNhU2V0dGluZ3NVcGRhdGVMaXN0XSwgMVxuXTtcbnZhciBVcGRhdGVHbG9iYWxUYWJsZVNldHRpbmdzT3V0cHV0JCA9IFszLCBuMCwgX1VHVFNPLFxuICAgIDAsXG4gICAgW19HVE4sIF9SU10sXG4gICAgWzAsICgpID0+IFJlcGxpY2FTZXR0aW5nc0Rlc2NyaXB0aW9uTGlzdF1cbl07XG52YXIgVXBkYXRlSXRlbUlucHV0JCA9IFszLCBuMCwgX1VJSSxcbiAgICAwLFxuICAgIFtfVE4sIF9LLCBfQVUsIF9FeCwgX0NPbywgX1JWLCBfUkNDLCBfUklDTSwgX1VFLCBfQ0UsIF9FQU4sIF9FQVYsIF9SVk9DQ0ZdLFxuICAgIFswLCAoKSA9PiBLZXksICgpID0+IEF0dHJpYnV0ZVVwZGF0ZXMsICgpID0+IEV4cGVjdGVkQXR0cmlidXRlTWFwLCAwLCAwLCAwLCAwLCAwLCAwLCAxMjggfCAwLCAoKSA9PiBFeHByZXNzaW9uQXR0cmlidXRlVmFsdWVNYXAsIDBdLCAyXG5dO1xudmFyIFVwZGF0ZUl0ZW1PdXRwdXQkID0gWzMsIG4wLCBfVUlPLFxuICAgIDAsXG4gICAgW19BdCwgX0NDLCBfSUNNXSxcbiAgICBbKCkgPT4gQXR0cmlidXRlTWFwLCAoKSA9PiBDb25zdW1lZENhcGFjaXR5JCwgKCkgPT4gSXRlbUNvbGxlY3Rpb25NZXRyaWNzJF1cbl07XG52YXIgVXBkYXRlS2luZXNpc1N0cmVhbWluZ0NvbmZpZ3VyYXRpb24kID0gWzMsIG4wLCBfVUtTQyxcbiAgICAwLFxuICAgIFtfQUNEVFBdLFxuICAgIFswXVxuXTtcbnZhciBVcGRhdGVLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb25JbnB1dCQgPSBbMywgbjAsIF9VS1NESSxcbiAgICAwLFxuICAgIFtfVE4sIF9TQSwgX1VLU0NdLFxuICAgIFswLCAwLCAoKSA9PiBVcGRhdGVLaW5lc2lzU3RyZWFtaW5nQ29uZmlndXJhdGlvbiRdLCAyXG5dO1xudmFyIFVwZGF0ZUtpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvbk91dHB1dCQgPSBbMywgbjAsIF9VS1NETyxcbiAgICAwLFxuICAgIFtfVE4sIF9TQSwgX0RTLCBfVUtTQ10sXG4gICAgWzAsIDAsIDAsICgpID0+IFVwZGF0ZUtpbmVzaXNTdHJlYW1pbmdDb25maWd1cmF0aW9uJF1cbl07XG52YXIgVXBkYXRlUmVwbGljYXRpb25Hcm91cE1lbWJlckFjdGlvbiQgPSBbMywgbjAsIF9VUkdNQSxcbiAgICAwLFxuICAgIFtfUk4sIF9LTVNNS0ksIF9QVE8sIF9PRFRPLCBfR1NJLCBfVENPXSxcbiAgICBbMCwgMCwgKCkgPT4gUHJvdmlzaW9uZWRUaHJvdWdocHV0T3ZlcnJpZGUkLCAoKSA9PiBPbkRlbWFuZFRocm91Z2hwdXRPdmVycmlkZSQsICgpID0+IFJlcGxpY2FHbG9iYWxTZWNvbmRhcnlJbmRleExpc3QsIDBdLCAxXG5dO1xudmFyIFVwZGF0ZVRhYmxlSW5wdXQkID0gWzMsIG4wLCBfVVRJLFxuICAgIDAsXG4gICAgW19UTiwgX0FEdCwgX0JNLCBfUFQsIF9HU0lVbCwgX1NTLCBfU1NFUywgX1JVZSwgX1RDLCBfRFBFLCBfTVJDLCBfR1RXVSwgX09EVCwgX1dUXSxcbiAgICBbMCwgKCkgPT4gQXR0cmlidXRlRGVmaW5pdGlvbnMsIDAsICgpID0+IFByb3Zpc2lvbmVkVGhyb3VnaHB1dCQsICgpID0+IEdsb2JhbFNlY29uZGFyeUluZGV4VXBkYXRlTGlzdCwgKCkgPT4gU3RyZWFtU3BlY2lmaWNhdGlvbiQsICgpID0+IFNTRVNwZWNpZmljYXRpb24kLCAoKSA9PiBSZXBsaWNhdGlvbkdyb3VwVXBkYXRlTGlzdCwgMCwgMiwgMCwgKCkgPT4gR2xvYmFsVGFibGVXaXRuZXNzR3JvdXBVcGRhdGVMaXN0LCAoKSA9PiBPbkRlbWFuZFRocm91Z2hwdXQkLCAoKSA9PiBXYXJtVGhyb3VnaHB1dCRdLCAxXG5dO1xudmFyIFVwZGF0ZVRhYmxlT3V0cHV0JCA9IFszLCBuMCwgX1VUTyxcbiAgICAwLFxuICAgIFtfVERdLFxuICAgIFsoKSA9PiBUYWJsZURlc2NyaXB0aW9uJF1cbl07XG52YXIgVXBkYXRlVGFibGVSZXBsaWNhQXV0b1NjYWxpbmdJbnB1dCQgPSBbMywgbjAsIF9VVFJBU0ksXG4gICAgMCxcbiAgICBbX1ROLCBfR1NJVWwsIF9QV0NBU1UsIF9SVWVdLFxuICAgIFswLCAoKSA9PiBHbG9iYWxTZWNvbmRhcnlJbmRleEF1dG9TY2FsaW5nVXBkYXRlTGlzdCwgKCkgPT4gQXV0b1NjYWxpbmdTZXR0aW5nc1VwZGF0ZSQsICgpID0+IFJlcGxpY2FBdXRvU2NhbGluZ1VwZGF0ZUxpc3RdLCAxXG5dO1xudmFyIFVwZGF0ZVRhYmxlUmVwbGljYUF1dG9TY2FsaW5nT3V0cHV0JCA9IFszLCBuMCwgX1VUUkFTTyxcbiAgICAwLFxuICAgIFtfVEFTRF0sXG4gICAgWygpID0+IFRhYmxlQXV0b1NjYWxpbmdEZXNjcmlwdGlvbiRdXG5dO1xudmFyIFVwZGF0ZVRpbWVUb0xpdmVJbnB1dCQgPSBbMywgbjAsIF9VVFRMSSxcbiAgICAwLFxuICAgIFtfVE4sIF9UVExTaV0sXG4gICAgWzAsICgpID0+IFRpbWVUb0xpdmVTcGVjaWZpY2F0aW9uJF0sIDJcbl07XG52YXIgVXBkYXRlVGltZVRvTGl2ZU91dHB1dCQgPSBbMywgbjAsIF9VVFRMTyxcbiAgICAwLFxuICAgIFtfVFRMU2ldLFxuICAgIFsoKSA9PiBUaW1lVG9MaXZlU3BlY2lmaWNhdGlvbiRdXG5dO1xudmFyIFdhcm1UaHJvdWdocHV0JCA9IFszLCBuMCwgX1dULFxuICAgIDAsXG4gICAgW19SVVBTLCBfV1VQU10sXG4gICAgWzEsIDFdXG5dO1xudmFyIFdyaXRlUmVxdWVzdCQgPSBbMywgbjAsIF9XUixcbiAgICAwLFxuICAgIFtfUFIsIF9EUl0sXG4gICAgWygpID0+IFB1dFJlcXVlc3QkLCAoKSA9PiBEZWxldGVSZXF1ZXN0JF1cbl07XG52YXIgX19Vbml0ID0gXCJ1bml0XCI7XG52YXIgRHluYW1vREJTZXJ2aWNlRXhjZXB0aW9uJCA9IFstMywgX3NtLCBcIkR5bmFtb0RCU2VydmljZUV4Y2VwdGlvblwiLCAwLCBbXSwgW11dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IoX3NtKS5yZWdpc3RlckVycm9yKER5bmFtb0RCU2VydmljZUV4Y2VwdGlvbiQsIER5bmFtb0RCU2VydmljZUV4Y2VwdGlvbik7XG52YXIgQXR0cmlidXRlRGVmaW5pdGlvbnMgPSBbMSwgbjAsIF9BRHQsXG4gICAgMCwgKCkgPT4gQXR0cmlidXRlRGVmaW5pdGlvbiRcbl07XG52YXIgQXR0cmlidXRlVmFsdWVMaXN0ID0gWzEsIG4wLCBfQVZMLFxuICAgIDAsICgpID0+IEF0dHJpYnV0ZVZhbHVlJFxuXTtcbnZhciBBdXRvU2NhbGluZ1BvbGljeURlc2NyaXB0aW9uTGlzdCA9IFsxLCBuMCwgX0FTUERMLFxuICAgIDAsICgpID0+IEF1dG9TY2FsaW5nUG9saWN5RGVzY3JpcHRpb24kXG5dO1xudmFyIEJhY2t1cFN1bW1hcmllcyA9IFsxLCBuMCwgX0JTYWMsXG4gICAgMCwgKCkgPT4gQmFja3VwU3VtbWFyeSRcbl07XG52YXIgQ2FuY2VsbGF0aW9uUmVhc29uTGlzdCA9IFsxLCBuMCwgX0NSTCxcbiAgICAwLCAoKSA9PiBDYW5jZWxsYXRpb25SZWFzb24kXG5dO1xudmFyIENvbnN1bWVkQ2FwYWNpdHlNdWx0aXBsZSA9IFsxLCBuMCwgX0NDTSxcbiAgICAwLCAoKSA9PiBDb25zdW1lZENhcGFjaXR5JFxuXTtcbnZhciBDb250cmlidXRvckluc2lnaHRzU3VtbWFyaWVzID0gWzEsIG4wLCBfQ0lTb24sXG4gICAgMCwgKCkgPT4gQ29udHJpYnV0b3JJbnNpZ2h0c1N1bW1hcnkkXG5dO1xudmFyIEVuZHBvaW50cyA9IFsxLCBuMCwgX0VuLFxuICAgIDAsICgpID0+IEVuZHBvaW50JFxuXTtcbnZhciBFeHBvcnRTdW1tYXJpZXMgPSBbMSwgbjAsIF9FU3hwLFxuICAgIDAsICgpID0+IEV4cG9ydFN1bW1hcnkkXG5dO1xudmFyIEdsb2JhbFNlY29uZGFyeUluZGV4QXV0b1NjYWxpbmdVcGRhdGVMaXN0ID0gWzEsIG4wLCBfR1NJQVNVTCxcbiAgICAwLCAoKSA9PiBHbG9iYWxTZWNvbmRhcnlJbmRleEF1dG9TY2FsaW5nVXBkYXRlJFxuXTtcbnZhciBHbG9iYWxTZWNvbmRhcnlJbmRleERlc2NyaXB0aW9uTGlzdCA9IFsxLCBuMCwgX0dTSURMLFxuICAgIDAsICgpID0+IEdsb2JhbFNlY29uZGFyeUluZGV4RGVzY3JpcHRpb24kXG5dO1xudmFyIEdsb2JhbFNlY29uZGFyeUluZGV4ZXMgPSBbMSwgbjAsIF9HU0ksXG4gICAgMCwgKCkgPT4gR2xvYmFsU2Vjb25kYXJ5SW5kZXhJbmZvJFxuXTtcbnZhciBHbG9iYWxTZWNvbmRhcnlJbmRleExpc3QgPSBbMSwgbjAsIF9HU0lMLFxuICAgIDAsICgpID0+IEdsb2JhbFNlY29uZGFyeUluZGV4JFxuXTtcbnZhciBHbG9iYWxTZWNvbmRhcnlJbmRleFVwZGF0ZUxpc3QgPSBbMSwgbjAsIF9HU0lVTCxcbiAgICAwLCAoKSA9PiBHbG9iYWxTZWNvbmRhcnlJbmRleFVwZGF0ZSRcbl07XG52YXIgR2xvYmFsVGFibGVHbG9iYWxTZWNvbmRhcnlJbmRleFNldHRpbmdzVXBkYXRlTGlzdCA9IFsxLCBuMCwgX0dUR1NJU1VMLFxuICAgIDAsICgpID0+IEdsb2JhbFRhYmxlR2xvYmFsU2Vjb25kYXJ5SW5kZXhTZXR0aW5nc1VwZGF0ZSRcbl07XG52YXIgR2xvYmFsVGFibGVMaXN0ID0gWzEsIG4wLCBfR1RMLFxuICAgIDAsICgpID0+IEdsb2JhbFRhYmxlJFxuXTtcbnZhciBHbG9iYWxUYWJsZVdpdG5lc3NEZXNjcmlwdGlvbkxpc3QgPSBbMSwgbjAsIF9HVFdETCxcbiAgICAwLCAoKSA9PiBHbG9iYWxUYWJsZVdpdG5lc3NEZXNjcmlwdGlvbiRcbl07XG52YXIgR2xvYmFsVGFibGVXaXRuZXNzR3JvdXBVcGRhdGVMaXN0ID0gWzEsIG4wLCBfR1RXR1VMLFxuICAgIDAsICgpID0+IEdsb2JhbFRhYmxlV2l0bmVzc0dyb3VwVXBkYXRlJFxuXTtcbnZhciBJbXBvcnRTdW1tYXJ5TGlzdCA9IFsxLCBuMCwgX0lTTCxcbiAgICAwLCAoKSA9PiBJbXBvcnRTdW1tYXJ5JFxuXTtcbnZhciBJdGVtQ29sbGVjdGlvbk1ldHJpY3NNdWx0aXBsZSA9IFsxLCBuMCwgX0lDTU0sXG4gICAgMCwgKCkgPT4gSXRlbUNvbGxlY3Rpb25NZXRyaWNzJFxuXTtcbnZhciBJdGVtTGlzdCA9IFsxLCBuMCwgX0lMLFxuICAgIDAsICgpID0+IEF0dHJpYnV0ZU1hcFxuXTtcbnZhciBJdGVtUmVzcG9uc2VMaXN0ID0gWzEsIG4wLCBfSVJMLFxuICAgIDAsICgpID0+IEl0ZW1SZXNwb25zZSRcbl07XG52YXIgS2V5TGlzdCA9IFsxLCBuMCwgX0tMLFxuICAgIDAsICgpID0+IEtleVxuXTtcbnZhciBLZXlTY2hlbWEgPSBbMSwgbjAsIF9LUyxcbiAgICAwLCAoKSA9PiBLZXlTY2hlbWFFbGVtZW50JFxuXTtcbnZhciBLaW5lc2lzRGF0YVN0cmVhbURlc3RpbmF0aW9ucyA9IFsxLCBuMCwgX0tEU0QsXG4gICAgMCwgKCkgPT4gS2luZXNpc0RhdGFTdHJlYW1EZXN0aW5hdGlvbiRcbl07XG52YXIgTGlzdEF0dHJpYnV0ZVZhbHVlID0gWzEsIG4wLCBfTEFWLFxuICAgIDAsICgpID0+IEF0dHJpYnV0ZVZhbHVlJFxuXTtcbnZhciBMb2NhbFNlY29uZGFyeUluZGV4RGVzY3JpcHRpb25MaXN0ID0gWzEsIG4wLCBfTFNJREwsXG4gICAgMCwgKCkgPT4gTG9jYWxTZWNvbmRhcnlJbmRleERlc2NyaXB0aW9uJFxuXTtcbnZhciBMb2NhbFNlY29uZGFyeUluZGV4ZXMgPSBbMSwgbjAsIF9MU0ksXG4gICAgMCwgKCkgPT4gTG9jYWxTZWNvbmRhcnlJbmRleEluZm8kXG5dO1xudmFyIExvY2FsU2Vjb25kYXJ5SW5kZXhMaXN0ID0gWzEsIG4wLCBfTFNJTCxcbiAgICAwLCAoKSA9PiBMb2NhbFNlY29uZGFyeUluZGV4JFxuXTtcbnZhciBQYXJhbWV0ZXJpemVkU3RhdGVtZW50cyA9IFsxLCBuMCwgX1BTYXIsXG4gICAgMCwgKCkgPT4gUGFyYW1ldGVyaXplZFN0YXRlbWVudCRcbl07XG52YXIgUGFydGlRTEJhdGNoUmVxdWVzdCA9IFsxLCBuMCwgX1BRTEJSLFxuICAgIDAsICgpID0+IEJhdGNoU3RhdGVtZW50UmVxdWVzdCRcbl07XG52YXIgUGFydGlRTEJhdGNoUmVzcG9uc2UgPSBbMSwgbjAsIF9QUUxCUmEsXG4gICAgMCwgKCkgPT4gQmF0Y2hTdGF0ZW1lbnRSZXNwb25zZSRcbl07XG52YXIgUHJlcGFyZWRTdGF0ZW1lbnRQYXJhbWV0ZXJzID0gWzEsIG4wLCBfUFNQLFxuICAgIDAsICgpID0+IEF0dHJpYnV0ZVZhbHVlJFxuXTtcbnZhciBSZXBsaWNhQXV0b1NjYWxpbmdEZXNjcmlwdGlvbkxpc3QgPSBbMSwgbjAsIF9SQVNETCxcbiAgICAwLCAoKSA9PiBSZXBsaWNhQXV0b1NjYWxpbmdEZXNjcmlwdGlvbiRcbl07XG52YXIgUmVwbGljYUF1dG9TY2FsaW5nVXBkYXRlTGlzdCA9IFsxLCBuMCwgX1JBU1VMLFxuICAgIDAsICgpID0+IFJlcGxpY2FBdXRvU2NhbGluZ1VwZGF0ZSRcbl07XG52YXIgUmVwbGljYURlc2NyaXB0aW9uTGlzdCA9IFsxLCBuMCwgX1JETCxcbiAgICAwLCAoKSA9PiBSZXBsaWNhRGVzY3JpcHRpb24kXG5dO1xudmFyIFJlcGxpY2FHbG9iYWxTZWNvbmRhcnlJbmRleEF1dG9TY2FsaW5nRGVzY3JpcHRpb25MaXN0ID0gWzEsIG4wLCBfUkdTSUFTREwsXG4gICAgMCwgKCkgPT4gUmVwbGljYUdsb2JhbFNlY29uZGFyeUluZGV4QXV0b1NjYWxpbmdEZXNjcmlwdGlvbiRcbl07XG52YXIgUmVwbGljYUdsb2JhbFNlY29uZGFyeUluZGV4QXV0b1NjYWxpbmdVcGRhdGVMaXN0ID0gWzEsIG4wLCBfUkdTSUFTVUwsXG4gICAgMCwgKCkgPT4gUmVwbGljYUdsb2JhbFNlY29uZGFyeUluZGV4QXV0b1NjYWxpbmdVcGRhdGUkXG5dO1xudmFyIFJlcGxpY2FHbG9iYWxTZWNvbmRhcnlJbmRleERlc2NyaXB0aW9uTGlzdCA9IFsxLCBuMCwgX1JHU0lETCxcbiAgICAwLCAoKSA9PiBSZXBsaWNhR2xvYmFsU2Vjb25kYXJ5SW5kZXhEZXNjcmlwdGlvbiRcbl07XG52YXIgUmVwbGljYUdsb2JhbFNlY29uZGFyeUluZGV4TGlzdCA9IFsxLCBuMCwgX1JHU0lMLFxuICAgIDAsICgpID0+IFJlcGxpY2FHbG9iYWxTZWNvbmRhcnlJbmRleCRcbl07XG52YXIgUmVwbGljYUdsb2JhbFNlY29uZGFyeUluZGV4U2V0dGluZ3NEZXNjcmlwdGlvbkxpc3QgPSBbMSwgbjAsIF9SR1NJU0RMLFxuICAgIDAsICgpID0+IFJlcGxpY2FHbG9iYWxTZWNvbmRhcnlJbmRleFNldHRpbmdzRGVzY3JpcHRpb24kXG5dO1xudmFyIFJlcGxpY2FHbG9iYWxTZWNvbmRhcnlJbmRleFNldHRpbmdzVXBkYXRlTGlzdCA9IFsxLCBuMCwgX1JHU0lTVUwsXG4gICAgMCwgKCkgPT4gUmVwbGljYUdsb2JhbFNlY29uZGFyeUluZGV4U2V0dGluZ3NVcGRhdGUkXG5dO1xudmFyIFJlcGxpY2FMaXN0ID0gWzEsIG4wLCBfUkwsXG4gICAgMCwgKCkgPT4gUmVwbGljYSRcbl07XG52YXIgUmVwbGljYVNldHRpbmdzRGVzY3JpcHRpb25MaXN0ID0gWzEsIG4wLCBfUlNETCxcbiAgICAwLCAoKSA9PiBSZXBsaWNhU2V0dGluZ3NEZXNjcmlwdGlvbiRcbl07XG52YXIgUmVwbGljYVNldHRpbmdzVXBkYXRlTGlzdCA9IFsxLCBuMCwgX1JTVUwsXG4gICAgMCwgKCkgPT4gUmVwbGljYVNldHRpbmdzVXBkYXRlJFxuXTtcbnZhciBSZXBsaWNhdGlvbkdyb3VwVXBkYXRlTGlzdCA9IFsxLCBuMCwgX1JHVUwsXG4gICAgMCwgKCkgPT4gUmVwbGljYXRpb25Hcm91cFVwZGF0ZSRcbl07XG52YXIgUmVwbGljYVVwZGF0ZUxpc3QgPSBbMSwgbjAsIF9SVUwsXG4gICAgMCwgKCkgPT4gUmVwbGljYVVwZGF0ZSRcbl07XG52YXIgVGFnTGlzdCA9IFsxLCBuMCwgX1RMLFxuICAgIDAsICgpID0+IFRhZyRcbl07XG52YXIgVGhyb3R0bGluZ1JlYXNvbkxpc3QgPSBbMSwgbjAsIF9UUkwsXG4gICAgMCwgKCkgPT4gVGhyb3R0bGluZ1JlYXNvbiRcbl07XG52YXIgVHJhbnNhY3RHZXRJdGVtTGlzdCA9IFsxLCBuMCwgX1RHSUwsXG4gICAgMCwgKCkgPT4gVHJhbnNhY3RHZXRJdGVtJFxuXTtcbnZhciBUcmFuc2FjdFdyaXRlSXRlbUxpc3QgPSBbMSwgbjAsIF9UV0lMLFxuICAgIDAsICgpID0+IFRyYW5zYWN0V3JpdGVJdGVtJFxuXTtcbnZhciBXcml0ZVJlcXVlc3RzID0gWzEsIG4wLCBfV1JyLFxuICAgIDAsICgpID0+IFdyaXRlUmVxdWVzdCRcbl07XG52YXIgQXR0cmlidXRlTWFwID0gWzIsIG4wLCBfQU0sXG4gICAgMCwgMCwgKCkgPT4gQXR0cmlidXRlVmFsdWUkXG5dO1xudmFyIEF0dHJpYnV0ZVVwZGF0ZXMgPSBbMiwgbjAsIF9BVSxcbiAgICAwLCAwLCAoKSA9PiBBdHRyaWJ1dGVWYWx1ZVVwZGF0ZSRcbl07XG52YXIgQmF0Y2hHZXRSZXF1ZXN0TWFwID0gWzIsIG4wLCBfQkdSTWEsXG4gICAgMCwgMCwgKCkgPT4gS2V5c0FuZEF0dHJpYnV0ZXMkXG5dO1xudmFyIEJhdGNoR2V0UmVzcG9uc2VNYXAgPSBbMiwgbjAsIF9CR1JNLFxuICAgIDAsIDAsICgpID0+IEl0ZW1MaXN0XG5dO1xudmFyIEJhdGNoV3JpdGVJdGVtUmVxdWVzdE1hcCA9IFsyLCBuMCwgX0JXSVJNLFxuICAgIDAsIDAsICgpID0+IFdyaXRlUmVxdWVzdHNcbl07XG52YXIgRXhwZWN0ZWRBdHRyaWJ1dGVNYXAgPSBbMiwgbjAsIF9FQU0sXG4gICAgMCwgMCwgKCkgPT4gRXhwZWN0ZWRBdHRyaWJ1dGVWYWx1ZSRcbl07XG52YXIgRXhwcmVzc2lvbkF0dHJpYnV0ZVZhbHVlTWFwID0gWzIsIG4wLCBfRUFWTSxcbiAgICAwLCAwLCAoKSA9PiBBdHRyaWJ1dGVWYWx1ZSRcbl07XG52YXIgRmlsdGVyQ29uZGl0aW9uTWFwID0gWzIsIG4wLCBfRkNNLFxuICAgIDAsIDAsICgpID0+IENvbmRpdGlvbiRcbl07XG52YXIgSXRlbUNvbGxlY3Rpb25LZXlBdHRyaWJ1dGVNYXAgPSBbMiwgbjAsIF9JQ0tBTSxcbiAgICAwLCAwLCAoKSA9PiBBdHRyaWJ1dGVWYWx1ZSRcbl07XG52YXIgSXRlbUNvbGxlY3Rpb25NZXRyaWNzUGVyVGFibGUgPSBbMiwgbjAsIF9JQ01QVCxcbiAgICAwLCAwLCAoKSA9PiBJdGVtQ29sbGVjdGlvbk1ldHJpY3NNdWx0aXBsZVxuXTtcbnZhciBLZXkgPSBbMiwgbjAsIF9LLFxuICAgIDAsIDAsICgpID0+IEF0dHJpYnV0ZVZhbHVlJFxuXTtcbnZhciBLZXlDb25kaXRpb25zID0gWzIsIG4wLCBfS0MsXG4gICAgMCwgMCwgKCkgPT4gQ29uZGl0aW9uJFxuXTtcbnZhciBNYXBBdHRyaWJ1dGVWYWx1ZSA9IFsyLCBuMCwgX01BVixcbiAgICAwLCAwLCAoKSA9PiBBdHRyaWJ1dGVWYWx1ZSRcbl07XG52YXIgUHV0SXRlbUlucHV0QXR0cmlidXRlTWFwID0gWzIsIG4wLCBfUElJQU0sXG4gICAgMCwgMCwgKCkgPT4gQXR0cmlidXRlVmFsdWUkXG5dO1xudmFyIFNlY29uZGFyeUluZGV4ZXNDYXBhY2l0eU1hcCA9IFsyLCBuMCwgX1NJQ00sXG4gICAgMCwgMCwgKCkgPT4gQ2FwYWNpdHkkXG5dO1xudmFyIEF0dHJpYnV0ZVZhbHVlJCA9IFs0LCBuMCwgX0FWLFxuICAgIDAsXG4gICAgW19TXywgX04sIF9CXywgX1NTXywgX05TLCBfQlNfLCBfTV8sIF9MXywgX05VTEwsIF9CT09MXSxcbiAgICBbMCwgMCwgMjEsIDY0IHwgMCwgNjQgfCAwLCA2NCB8IDIxLCAoKSA9PiBNYXBBdHRyaWJ1dGVWYWx1ZSwgKCkgPT4gTGlzdEF0dHJpYnV0ZVZhbHVlLCAyLCAyXVxuXTtcbnZhciBCYXRjaEV4ZWN1dGVTdGF0ZW1lbnQkID0gWzksIG4wLCBfQkVTLFxuICAgIDAsICgpID0+IEJhdGNoRXhlY3V0ZVN0YXRlbWVudElucHV0JCwgKCkgPT4gQmF0Y2hFeGVjdXRlU3RhdGVtZW50T3V0cHV0JFxuXTtcbnZhciBCYXRjaEdldEl0ZW0kID0gWzksIG4wLCBfQkdJLFxuICAgIDAsICgpID0+IEJhdGNoR2V0SXRlbUlucHV0JCwgKCkgPT4gQmF0Y2hHZXRJdGVtT3V0cHV0JFxuXTtcbnZhciBCYXRjaFdyaXRlSXRlbSQgPSBbOSwgbjAsIF9CV0ksXG4gICAgMCwgKCkgPT4gQmF0Y2hXcml0ZUl0ZW1JbnB1dCQsICgpID0+IEJhdGNoV3JpdGVJdGVtT3V0cHV0JFxuXTtcbnZhciBDcmVhdGVCYWNrdXAkID0gWzksIG4wLCBfQ0IsXG4gICAgMCwgKCkgPT4gQ3JlYXRlQmFja3VwSW5wdXQkLCAoKSA9PiBDcmVhdGVCYWNrdXBPdXRwdXQkXG5dO1xudmFyIENyZWF0ZUdsb2JhbFRhYmxlJCA9IFs5LCBuMCwgX0NHVCxcbiAgICAwLCAoKSA9PiBDcmVhdGVHbG9iYWxUYWJsZUlucHV0JCwgKCkgPT4gQ3JlYXRlR2xvYmFsVGFibGVPdXRwdXQkXG5dO1xudmFyIENyZWF0ZVRhYmxlJCA9IFs5LCBuMCwgX0NUcixcbiAgICAwLCAoKSA9PiBDcmVhdGVUYWJsZUlucHV0JCwgKCkgPT4gQ3JlYXRlVGFibGVPdXRwdXQkXG5dO1xudmFyIERlbGV0ZUJhY2t1cCQgPSBbOSwgbjAsIF9EQixcbiAgICAwLCAoKSA9PiBEZWxldGVCYWNrdXBJbnB1dCQsICgpID0+IERlbGV0ZUJhY2t1cE91dHB1dCRcbl07XG52YXIgRGVsZXRlSXRlbSQgPSBbOSwgbjAsIF9ESSxcbiAgICAwLCAoKSA9PiBEZWxldGVJdGVtSW5wdXQkLCAoKSA9PiBEZWxldGVJdGVtT3V0cHV0JFxuXTtcbnZhciBEZWxldGVSZXNvdXJjZVBvbGljeSQgPSBbOSwgbjAsIF9EUlAsXG4gICAgMCwgKCkgPT4gRGVsZXRlUmVzb3VyY2VQb2xpY3lJbnB1dCQsICgpID0+IERlbGV0ZVJlc291cmNlUG9saWN5T3V0cHV0JFxuXTtcbnZhciBEZWxldGVUYWJsZSQgPSBbOSwgbjAsIF9EVCxcbiAgICAwLCAoKSA9PiBEZWxldGVUYWJsZUlucHV0JCwgKCkgPT4gRGVsZXRlVGFibGVPdXRwdXQkXG5dO1xudmFyIERlc2NyaWJlQmFja3VwJCA9IFs5LCBuMCwgX0RCZSxcbiAgICAwLCAoKSA9PiBEZXNjcmliZUJhY2t1cElucHV0JCwgKCkgPT4gRGVzY3JpYmVCYWNrdXBPdXRwdXQkXG5dO1xudmFyIERlc2NyaWJlQ29udGludW91c0JhY2t1cHMkID0gWzksIG4wLCBfRENCLFxuICAgIDAsICgpID0+IERlc2NyaWJlQ29udGludW91c0JhY2t1cHNJbnB1dCQsICgpID0+IERlc2NyaWJlQ29udGludW91c0JhY2t1cHNPdXRwdXQkXG5dO1xudmFyIERlc2NyaWJlQ29udHJpYnV0b3JJbnNpZ2h0cyQgPSBbOSwgbjAsIF9EQ0ksXG4gICAgMCwgKCkgPT4gRGVzY3JpYmVDb250cmlidXRvckluc2lnaHRzSW5wdXQkLCAoKSA9PiBEZXNjcmliZUNvbnRyaWJ1dG9ySW5zaWdodHNPdXRwdXQkXG5dO1xudmFyIERlc2NyaWJlRW5kcG9pbnRzJCA9IFs5LCBuMCwgX0RFLFxuICAgIDAsICgpID0+IERlc2NyaWJlRW5kcG9pbnRzUmVxdWVzdCQsICgpID0+IERlc2NyaWJlRW5kcG9pbnRzUmVzcG9uc2UkXG5dO1xudmFyIERlc2NyaWJlRXhwb3J0JCA9IFs5LCBuMCwgX0RFZSxcbiAgICAwLCAoKSA9PiBEZXNjcmliZUV4cG9ydElucHV0JCwgKCkgPT4gRGVzY3JpYmVFeHBvcnRPdXRwdXQkXG5dO1xudmFyIERlc2NyaWJlR2xvYmFsVGFibGUkID0gWzksIG4wLCBfREdULFxuICAgIDAsICgpID0+IERlc2NyaWJlR2xvYmFsVGFibGVJbnB1dCQsICgpID0+IERlc2NyaWJlR2xvYmFsVGFibGVPdXRwdXQkXG5dO1xudmFyIERlc2NyaWJlR2xvYmFsVGFibGVTZXR0aW5ncyQgPSBbOSwgbjAsIF9ER1RTLFxuICAgIDAsICgpID0+IERlc2NyaWJlR2xvYmFsVGFibGVTZXR0aW5nc0lucHV0JCwgKCkgPT4gRGVzY3JpYmVHbG9iYWxUYWJsZVNldHRpbmdzT3V0cHV0JFxuXTtcbnZhciBEZXNjcmliZUltcG9ydCQgPSBbOSwgbjAsIF9ESWUsXG4gICAgMCwgKCkgPT4gRGVzY3JpYmVJbXBvcnRJbnB1dCQsICgpID0+IERlc2NyaWJlSW1wb3J0T3V0cHV0JFxuXTtcbnZhciBEZXNjcmliZUtpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvbiQgPSBbOSwgbjAsIF9ES1NELFxuICAgIDAsICgpID0+IERlc2NyaWJlS2luZXNpc1N0cmVhbWluZ0Rlc3RpbmF0aW9uSW5wdXQkLCAoKSA9PiBEZXNjcmliZUtpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvbk91dHB1dCRcbl07XG52YXIgRGVzY3JpYmVMaW1pdHMkID0gWzksIG4wLCBfREwsXG4gICAgMCwgKCkgPT4gRGVzY3JpYmVMaW1pdHNJbnB1dCQsICgpID0+IERlc2NyaWJlTGltaXRzT3V0cHV0JFxuXTtcbnZhciBEZXNjcmliZVRhYmxlJCA9IFs5LCBuMCwgX0RUZSxcbiAgICAwLCAoKSA9PiBEZXNjcmliZVRhYmxlSW5wdXQkLCAoKSA9PiBEZXNjcmliZVRhYmxlT3V0cHV0JFxuXTtcbnZhciBEZXNjcmliZVRhYmxlUmVwbGljYUF1dG9TY2FsaW5nJCA9IFs5LCBuMCwgX0RUUkFTLFxuICAgIDAsICgpID0+IERlc2NyaWJlVGFibGVSZXBsaWNhQXV0b1NjYWxpbmdJbnB1dCQsICgpID0+IERlc2NyaWJlVGFibGVSZXBsaWNhQXV0b1NjYWxpbmdPdXRwdXQkXG5dO1xudmFyIERlc2NyaWJlVGltZVRvTGl2ZSQgPSBbOSwgbjAsIF9EVFRMLFxuICAgIDAsICgpID0+IERlc2NyaWJlVGltZVRvTGl2ZUlucHV0JCwgKCkgPT4gRGVzY3JpYmVUaW1lVG9MaXZlT3V0cHV0JFxuXTtcbnZhciBEaXNhYmxlS2luZXNpc1N0cmVhbWluZ0Rlc3RpbmF0aW9uJCA9IFs5LCBuMCwgX0RLU0RpLFxuICAgIDAsICgpID0+IEtpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvbklucHV0JCwgKCkgPT4gS2luZXNpc1N0cmVhbWluZ0Rlc3RpbmF0aW9uT3V0cHV0JFxuXTtcbnZhciBFbmFibGVLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb24kID0gWzksIG4wLCBfRUtTRCxcbiAgICAwLCAoKSA9PiBLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb25JbnB1dCQsICgpID0+IEtpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvbk91dHB1dCRcbl07XG52YXIgRXhlY3V0ZVN0YXRlbWVudCQgPSBbOSwgbjAsIF9FU3hlLFxuICAgIDAsICgpID0+IEV4ZWN1dGVTdGF0ZW1lbnRJbnB1dCQsICgpID0+IEV4ZWN1dGVTdGF0ZW1lbnRPdXRwdXQkXG5dO1xudmFyIEV4ZWN1dGVUcmFuc2FjdGlvbiQgPSBbOSwgbjAsIF9FVHhlLFxuICAgIDAsICgpID0+IEV4ZWN1dGVUcmFuc2FjdGlvbklucHV0JCwgKCkgPT4gRXhlY3V0ZVRyYW5zYWN0aW9uT3V0cHV0JFxuXTtcbnZhciBFeHBvcnRUYWJsZVRvUG9pbnRJblRpbWUkID0gWzksIG4wLCBfRVRUUElULFxuICAgIDAsICgpID0+IEV4cG9ydFRhYmxlVG9Qb2ludEluVGltZUlucHV0JCwgKCkgPT4gRXhwb3J0VGFibGVUb1BvaW50SW5UaW1lT3V0cHV0JFxuXTtcbnZhciBHZXRJdGVtJCA9IFs5LCBuMCwgX0dJLFxuICAgIDAsICgpID0+IEdldEl0ZW1JbnB1dCQsICgpID0+IEdldEl0ZW1PdXRwdXQkXG5dO1xudmFyIEdldFJlc291cmNlUG9saWN5JCA9IFs5LCBuMCwgX0dSUCxcbiAgICAwLCAoKSA9PiBHZXRSZXNvdXJjZVBvbGljeUlucHV0JCwgKCkgPT4gR2V0UmVzb3VyY2VQb2xpY3lPdXRwdXQkXG5dO1xudmFyIEltcG9ydFRhYmxlJCA9IFs5LCBuMCwgX0lULFxuICAgIDAsICgpID0+IEltcG9ydFRhYmxlSW5wdXQkLCAoKSA9PiBJbXBvcnRUYWJsZU91dHB1dCRcbl07XG52YXIgTGlzdEJhY2t1cHMkID0gWzksIG4wLCBfTEIsXG4gICAgMCwgKCkgPT4gTGlzdEJhY2t1cHNJbnB1dCQsICgpID0+IExpc3RCYWNrdXBzT3V0cHV0JFxuXTtcbnZhciBMaXN0Q29udHJpYnV0b3JJbnNpZ2h0cyQgPSBbOSwgbjAsIF9MQ0ksXG4gICAgMCwgKCkgPT4gTGlzdENvbnRyaWJ1dG9ySW5zaWdodHNJbnB1dCQsICgpID0+IExpc3RDb250cmlidXRvckluc2lnaHRzT3V0cHV0JFxuXTtcbnZhciBMaXN0RXhwb3J0cyQgPSBbOSwgbjAsIF9MRSxcbiAgICAwLCAoKSA9PiBMaXN0RXhwb3J0c0lucHV0JCwgKCkgPT4gTGlzdEV4cG9ydHNPdXRwdXQkXG5dO1xudmFyIExpc3RHbG9iYWxUYWJsZXMkID0gWzksIG4wLCBfTEdULFxuICAgIDAsICgpID0+IExpc3RHbG9iYWxUYWJsZXNJbnB1dCQsICgpID0+IExpc3RHbG9iYWxUYWJsZXNPdXRwdXQkXG5dO1xudmFyIExpc3RJbXBvcnRzJCA9IFs5LCBuMCwgX0xJLFxuICAgIDAsICgpID0+IExpc3RJbXBvcnRzSW5wdXQkLCAoKSA9PiBMaXN0SW1wb3J0c091dHB1dCRcbl07XG52YXIgTGlzdFRhYmxlcyQgPSBbOSwgbjAsIF9MVCxcbiAgICAwLCAoKSA9PiBMaXN0VGFibGVzSW5wdXQkLCAoKSA9PiBMaXN0VGFibGVzT3V0cHV0JFxuXTtcbnZhciBMaXN0VGFnc09mUmVzb3VyY2UkID0gWzksIG4wLCBfTFRPUixcbiAgICAwLCAoKSA9PiBMaXN0VGFnc09mUmVzb3VyY2VJbnB1dCQsICgpID0+IExpc3RUYWdzT2ZSZXNvdXJjZU91dHB1dCRcbl07XG52YXIgUHV0SXRlbSQgPSBbOSwgbjAsIF9QSSxcbiAgICAwLCAoKSA9PiBQdXRJdGVtSW5wdXQkLCAoKSA9PiBQdXRJdGVtT3V0cHV0JFxuXTtcbnZhciBQdXRSZXNvdXJjZVBvbGljeSQgPSBbOSwgbjAsIF9QUlAsXG4gICAgMCwgKCkgPT4gUHV0UmVzb3VyY2VQb2xpY3lJbnB1dCQsICgpID0+IFB1dFJlc291cmNlUG9saWN5T3V0cHV0JFxuXTtcbnZhciBRdWVyeSQgPSBbOSwgbjAsIF9RLFxuICAgIDAsICgpID0+IFF1ZXJ5SW5wdXQkLCAoKSA9PiBRdWVyeU91dHB1dCRcbl07XG52YXIgUmVzdG9yZVRhYmxlRnJvbUJhY2t1cCQgPSBbOSwgbjAsIF9SVEZCLFxuICAgIDAsICgpID0+IFJlc3RvcmVUYWJsZUZyb21CYWNrdXBJbnB1dCQsICgpID0+IFJlc3RvcmVUYWJsZUZyb21CYWNrdXBPdXRwdXQkXG5dO1xudmFyIFJlc3RvcmVUYWJsZVRvUG9pbnRJblRpbWUkID0gWzksIG4wLCBfUlRUUElULFxuICAgIDAsICgpID0+IFJlc3RvcmVUYWJsZVRvUG9pbnRJblRpbWVJbnB1dCQsICgpID0+IFJlc3RvcmVUYWJsZVRvUG9pbnRJblRpbWVPdXRwdXQkXG5dO1xudmFyIFNjYW4kID0gWzksIG4wLCBfU2MsXG4gICAgMCwgKCkgPT4gU2NhbklucHV0JCwgKCkgPT4gU2Nhbk91dHB1dCRcbl07XG52YXIgVGFnUmVzb3VyY2UkID0gWzksIG4wLCBfVFJhLFxuICAgIDAsICgpID0+IFRhZ1Jlc291cmNlSW5wdXQkLCAoKSA9PiBfX1VuaXRcbl07XG52YXIgVHJhbnNhY3RHZXRJdGVtcyQgPSBbOSwgbjAsIF9UR0lyLFxuICAgIDAsICgpID0+IFRyYW5zYWN0R2V0SXRlbXNJbnB1dCQsICgpID0+IFRyYW5zYWN0R2V0SXRlbXNPdXRwdXQkXG5dO1xudmFyIFRyYW5zYWN0V3JpdGVJdGVtcyQgPSBbOSwgbjAsIF9UV0lyLFxuICAgIDAsICgpID0+IFRyYW5zYWN0V3JpdGVJdGVtc0lucHV0JCwgKCkgPT4gVHJhbnNhY3RXcml0ZUl0ZW1zT3V0cHV0JFxuXTtcbnZhciBVbnRhZ1Jlc291cmNlJCA9IFs5LCBuMCwgX1VSLFxuICAgIDAsICgpID0+IFVudGFnUmVzb3VyY2VJbnB1dCQsICgpID0+IF9fVW5pdFxuXTtcbnZhciBVcGRhdGVDb250aW51b3VzQmFja3VwcyQgPSBbOSwgbjAsIF9VQ0IsXG4gICAgMCwgKCkgPT4gVXBkYXRlQ29udGludW91c0JhY2t1cHNJbnB1dCQsICgpID0+IFVwZGF0ZUNvbnRpbnVvdXNCYWNrdXBzT3V0cHV0JFxuXTtcbnZhciBVcGRhdGVDb250cmlidXRvckluc2lnaHRzJCA9IFs5LCBuMCwgX1VDSSxcbiAgICAwLCAoKSA9PiBVcGRhdGVDb250cmlidXRvckluc2lnaHRzSW5wdXQkLCAoKSA9PiBVcGRhdGVDb250cmlidXRvckluc2lnaHRzT3V0cHV0JFxuXTtcbnZhciBVcGRhdGVHbG9iYWxUYWJsZSQgPSBbOSwgbjAsIF9VR1QsXG4gICAgMCwgKCkgPT4gVXBkYXRlR2xvYmFsVGFibGVJbnB1dCQsICgpID0+IFVwZGF0ZUdsb2JhbFRhYmxlT3V0cHV0JFxuXTtcbnZhciBVcGRhdGVHbG9iYWxUYWJsZVNldHRpbmdzJCA9IFs5LCBuMCwgX1VHVFMsXG4gICAgMCwgKCkgPT4gVXBkYXRlR2xvYmFsVGFibGVTZXR0aW5nc0lucHV0JCwgKCkgPT4gVXBkYXRlR2xvYmFsVGFibGVTZXR0aW5nc091dHB1dCRcbl07XG52YXIgVXBkYXRlSXRlbSQgPSBbOSwgbjAsIF9VSXAsXG4gICAgMCwgKCkgPT4gVXBkYXRlSXRlbUlucHV0JCwgKCkgPT4gVXBkYXRlSXRlbU91dHB1dCRcbl07XG52YXIgVXBkYXRlS2luZXNpc1N0cmVhbWluZ0Rlc3RpbmF0aW9uJCA9IFs5LCBuMCwgX1VLU0QsXG4gICAgMCwgKCkgPT4gVXBkYXRlS2luZXNpc1N0cmVhbWluZ0Rlc3RpbmF0aW9uSW5wdXQkLCAoKSA9PiBVcGRhdGVLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb25PdXRwdXQkXG5dO1xudmFyIFVwZGF0ZVRhYmxlJCA9IFs5LCBuMCwgX1VULFxuICAgIDAsICgpID0+IFVwZGF0ZVRhYmxlSW5wdXQkLCAoKSA9PiBVcGRhdGVUYWJsZU91dHB1dCRcbl07XG52YXIgVXBkYXRlVGFibGVSZXBsaWNhQXV0b1NjYWxpbmckID0gWzksIG4wLCBfVVRSQVMsXG4gICAgMCwgKCkgPT4gVXBkYXRlVGFibGVSZXBsaWNhQXV0b1NjYWxpbmdJbnB1dCQsICgpID0+IFVwZGF0ZVRhYmxlUmVwbGljYUF1dG9TY2FsaW5nT3V0cHV0JFxuXTtcbnZhciBVcGRhdGVUaW1lVG9MaXZlJCA9IFs5LCBuMCwgX1VUVEwsXG4gICAgMCwgKCkgPT4gVXBkYXRlVGltZVRvTGl2ZUlucHV0JCwgKCkgPT4gVXBkYXRlVGltZVRvTGl2ZU91dHB1dCRcbl07XG5cbmNsYXNzIERlc2NyaWJlRW5kcG9pbnRzQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiRHluYW1vREJfMjAxMjA4MTBcIiwgXCJEZXNjcmliZUVuZHBvaW50c1wiLCB7fSlcbiAgICAubihcIkR5bmFtb0RCQ2xpZW50XCIsIFwiRGVzY3JpYmVFbmRwb2ludHNDb21tYW5kXCIpXG4gICAgLnNjKERlc2NyaWJlRW5kcG9pbnRzJClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNvbnN0IGdldEh0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiA9IChydW50aW1lQ29uZmlnKSA9PiB7XG4gICAgY29uc3QgX2h0dHBBdXRoU2NoZW1lcyA9IHJ1bnRpbWVDb25maWcuaHR0cEF1dGhTY2hlbWVzO1xuICAgIGxldCBfaHR0cEF1dGhTY2hlbWVQcm92aWRlciA9IHJ1bnRpbWVDb25maWcuaHR0cEF1dGhTY2hlbWVQcm92aWRlcjtcbiAgICBsZXQgX2NyZWRlbnRpYWxzID0gcnVudGltZUNvbmZpZy5jcmVkZW50aWFscztcbiAgICByZXR1cm4ge1xuICAgICAgICBzZXRIdHRwQXV0aFNjaGVtZShodHRwQXV0aFNjaGVtZSkge1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSBfaHR0cEF1dGhTY2hlbWVzLmZpbmRJbmRleCgoc2NoZW1lKSA9PiBzY2hlbWUuc2NoZW1lSWQgPT09IGh0dHBBdXRoU2NoZW1lLnNjaGVtZUlkKTtcbiAgICAgICAgICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICBfaHR0cEF1dGhTY2hlbWVzLnB1c2goaHR0cEF1dGhTY2hlbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgX2h0dHBBdXRoU2NoZW1lcy5zcGxpY2UoaW5kZXgsIDEsIGh0dHBBdXRoU2NoZW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVzKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9odHRwQXV0aFNjaGVtZXM7XG4gICAgICAgIH0sXG4gICAgICAgIHNldEh0dHBBdXRoU2NoZW1lUHJvdmlkZXIoaHR0cEF1dGhTY2hlbWVQcm92aWRlcikge1xuICAgICAgICAgICAgX2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSBodHRwQXV0aFNjaGVtZVByb3ZpZGVyO1xuICAgICAgICB9LFxuICAgICAgICBodHRwQXV0aFNjaGVtZVByb3ZpZGVyKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9odHRwQXV0aFNjaGVtZVByb3ZpZGVyO1xuICAgICAgICB9LFxuICAgICAgICBzZXRDcmVkZW50aWFscyhjcmVkZW50aWFscykge1xuICAgICAgICAgICAgX2NyZWRlbnRpYWxzID0gY3JlZGVudGlhbHM7XG4gICAgICAgIH0sXG4gICAgICAgIGNyZWRlbnRpYWxzKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9jcmVkZW50aWFscztcbiAgICAgICAgfSxcbiAgICB9O1xufTtcbmNvbnN0IHJlc29sdmVIdHRwQXV0aFJ1bnRpbWVDb25maWcgPSAoY29uZmlnKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVzOiBjb25maWcuaHR0cEF1dGhTY2hlbWVzKCksXG4gICAgICAgIGh0dHBBdXRoU2NoZW1lUHJvdmlkZXI6IGNvbmZpZy5odHRwQXV0aFNjaGVtZVByb3ZpZGVyKCksXG4gICAgICAgIGNyZWRlbnRpYWxzOiBjb25maWcuY3JlZGVudGlhbHMoKSxcbiAgICB9O1xufTtcblxuY29uc3QgcmVzb2x2ZVJ1bnRpbWVFeHRlbnNpb25zID0gKHJ1bnRpbWVDb25maWcsIGV4dGVuc2lvbnMpID0+IHtcbiAgICBjb25zdCBleHRlbnNpb25Db25maWd1cmF0aW9uID0gT2JqZWN0LmFzc2lnbihyZWdpb25Db25maWdSZXNvbHZlci5nZXRBd3NSZWdpb25FeHRlbnNpb25Db25maWd1cmF0aW9uKHJ1bnRpbWVDb25maWcpLCBzbWl0aHlDbGllbnQuZ2V0RGVmYXVsdEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24ocnVudGltZUNvbmZpZyksIHByb3RvY29sSHR0cC5nZXRIdHRwSGFuZGxlckV4dGVuc2lvbkNvbmZpZ3VyYXRpb24ocnVudGltZUNvbmZpZyksIGdldEh0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbihydW50aW1lQ29uZmlnKSk7XG4gICAgZXh0ZW5zaW9ucy5mb3JFYWNoKChleHRlbnNpb24pID0+IGV4dGVuc2lvbi5jb25maWd1cmUoZXh0ZW5zaW9uQ29uZmlndXJhdGlvbikpO1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHJ1bnRpbWVDb25maWcsIHJlZ2lvbkNvbmZpZ1Jlc29sdmVyLnJlc29sdmVBd3NSZWdpb25FeHRlbnNpb25Db25maWd1cmF0aW9uKGV4dGVuc2lvbkNvbmZpZ3VyYXRpb24pLCBzbWl0aHlDbGllbnQucmVzb2x2ZURlZmF1bHRSdW50aW1lQ29uZmlnKGV4dGVuc2lvbkNvbmZpZ3VyYXRpb24pLCBwcm90b2NvbEh0dHAucmVzb2x2ZUh0dHBIYW5kbGVyUnVudGltZUNvbmZpZyhleHRlbnNpb25Db25maWd1cmF0aW9uKSwgcmVzb2x2ZUh0dHBBdXRoUnVudGltZUNvbmZpZyhleHRlbnNpb25Db25maWd1cmF0aW9uKSk7XG59O1xuXG5jbGFzcyBEeW5hbW9EQkNsaWVudCBleHRlbmRzIHNtaXRoeUNsaWVudC5DbGllbnQge1xuICAgIGNvbmZpZztcbiAgICBjb25zdHJ1Y3RvciguLi5bY29uZmlndXJhdGlvbl0pIHtcbiAgICAgICAgY29uc3QgX2NvbmZpZ18wID0gcnVudGltZUNvbmZpZy5nZXRSdW50aW1lQ29uZmlnKGNvbmZpZ3VyYXRpb24gfHwge30pO1xuICAgICAgICBzdXBlcihfY29uZmlnXzApO1xuICAgICAgICB0aGlzLmluaXRDb25maWcgPSBfY29uZmlnXzA7XG4gICAgICAgIGNvbnN0IF9jb25maWdfMSA9IHJlc29sdmVDbGllbnRFbmRwb2ludFBhcmFtZXRlcnMoX2NvbmZpZ18wKTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ18yID0gYWNjb3VudElkRW5kcG9pbnQucmVzb2x2ZUFjY291bnRJZEVuZHBvaW50TW9kZUNvbmZpZyhfY29uZmlnXzEpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzMgPSBtaWRkbGV3YXJlVXNlckFnZW50LnJlc29sdmVVc2VyQWdlbnRDb25maWcoX2NvbmZpZ18yKTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ180ID0gbWlkZGxld2FyZVJldHJ5LnJlc29sdmVSZXRyeUNvbmZpZyhfY29uZmlnXzMpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzUgPSBjb25maWdSZXNvbHZlci5yZXNvbHZlUmVnaW9uQ29uZmlnKF9jb25maWdfNCk7XG4gICAgICAgIGNvbnN0IF9jb25maWdfNiA9IG1pZGRsZXdhcmVIb3N0SGVhZGVyLnJlc29sdmVIb3N0SGVhZGVyQ29uZmlnKF9jb25maWdfNSk7XG4gICAgICAgIGNvbnN0IF9jb25maWdfNyA9IG1pZGRsZXdhcmVFbmRwb2ludC5yZXNvbHZlRW5kcG9pbnRDb25maWcoX2NvbmZpZ182KTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ184ID0gaHR0cEF1dGhTY2hlbWVQcm92aWRlci5yZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWcoX2NvbmZpZ183KTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ185ID0gbWlkZGxld2FyZUVuZHBvaW50RGlzY292ZXJ5LnJlc29sdmVFbmRwb2ludERpc2NvdmVyeUNvbmZpZyhfY29uZmlnXzgsIHsgZW5kcG9pbnREaXNjb3ZlcnlDb21tYW5kQ3RvcjogRGVzY3JpYmVFbmRwb2ludHNDb21tYW5kIH0pO1xuICAgICAgICBjb25zdCBfY29uZmlnXzEwID0gcmVzb2x2ZVJ1bnRpbWVFeHRlbnNpb25zKF9jb25maWdfOSwgY29uZmlndXJhdGlvbj8uZXh0ZW5zaW9ucyB8fCBbXSk7XG4gICAgICAgIHRoaXMuY29uZmlnID0gX2NvbmZpZ18xMDtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKHNjaGVtYS5nZXRTY2hlbWFTZXJkZVBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UobWlkZGxld2FyZVVzZXJBZ2VudC5nZXRVc2VyQWdlbnRQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKG1pZGRsZXdhcmVSZXRyeS5nZXRSZXRyeVBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UobWlkZGxld2FyZUNvbnRlbnRMZW5ndGguZ2V0Q29udGVudExlbmd0aFBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UobWlkZGxld2FyZUhvc3RIZWFkZXIuZ2V0SG9zdEhlYWRlclBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UobWlkZGxld2FyZUxvZ2dlci5nZXRMb2dnZXJQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKG1pZGRsZXdhcmVSZWN1cnNpb25EZXRlY3Rpb24uZ2V0UmVjdXJzaW9uRGV0ZWN0aW9uUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShjb3JlLmdldEh0dHBBdXRoU2NoZW1lRW5kcG9pbnRSdWxlU2V0UGx1Z2luKHRoaXMuY29uZmlnLCB7XG4gICAgICAgICAgICBodHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlcjogaHR0cEF1dGhTY2hlbWVQcm92aWRlci5kZWZhdWx0RHluYW1vREJIdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlcixcbiAgICAgICAgICAgIGlkZW50aXR5UHJvdmlkZXJDb25maWdQcm92aWRlcjogYXN5bmMgKGNvbmZpZykgPT4gbmV3IGNvcmUuRGVmYXVsdElkZW50aXR5UHJvdmlkZXJDb25maWcoe1xuICAgICAgICAgICAgICAgIFwiYXdzLmF1dGgjc2lndjRcIjogY29uZmlnLmNyZWRlbnRpYWxzLFxuICAgICAgICAgICAgfSksXG4gICAgICAgIH0pKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGNvcmUuZ2V0SHR0cFNpZ25pbmdQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICB9XG4gICAgZGVzdHJveSgpIHtcbiAgICAgICAgc3VwZXIuZGVzdHJveSgpO1xuICAgIH1cbn1cblxuY2xhc3MgQmF0Y2hFeGVjdXRlU3RhdGVtZW50Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiRHluYW1vREJfMjAxMjA4MTBcIiwgXCJCYXRjaEV4ZWN1dGVTdGF0ZW1lbnRcIiwge30pXG4gICAgLm4oXCJEeW5hbW9EQkNsaWVudFwiLCBcIkJhdGNoRXhlY3V0ZVN0YXRlbWVudENvbW1hbmRcIilcbiAgICAuc2MoQmF0Y2hFeGVjdXRlU3RhdGVtZW50JClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIEJhdGNoR2V0SXRlbUNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFJlc291cmNlQXJuTGlzdDogeyB0eXBlOiBcIm9wZXJhdGlvbkNvbnRleHRQYXJhbXNcIiwgZ2V0OiAoaW5wdXQpID0+IE9iamVjdC5rZXlzKGlucHV0Py5SZXF1ZXN0SXRlbXMgPz8ge30pIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJEeW5hbW9EQl8yMDEyMDgxMFwiLCBcIkJhdGNoR2V0SXRlbVwiLCB7fSlcbiAgICAubihcIkR5bmFtb0RCQ2xpZW50XCIsIFwiQmF0Y2hHZXRJdGVtQ29tbWFuZFwiKVxuICAgIC5zYyhCYXRjaEdldEl0ZW0kKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgQmF0Y2hXcml0ZUl0ZW1Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBSZXNvdXJjZUFybkxpc3Q6IHsgdHlwZTogXCJvcGVyYXRpb25Db250ZXh0UGFyYW1zXCIsIGdldDogKGlucHV0KSA9PiBPYmplY3Qua2V5cyhpbnB1dD8uUmVxdWVzdEl0ZW1zID8/IHt9KSB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiRHluYW1vREJfMjAxMjA4MTBcIiwgXCJCYXRjaFdyaXRlSXRlbVwiLCB7fSlcbiAgICAubihcIkR5bmFtb0RCQ2xpZW50XCIsIFwiQmF0Y2hXcml0ZUl0ZW1Db21tYW5kXCIpXG4gICAgLnNjKEJhdGNoV3JpdGVJdGVtJClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIENyZWF0ZUJhY2t1cENvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFJlc291cmNlQXJuOiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIlRhYmxlTmFtZVwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJEeW5hbW9EQl8yMDEyMDgxMFwiLCBcIkNyZWF0ZUJhY2t1cFwiLCB7fSlcbiAgICAubihcIkR5bmFtb0RCQ2xpZW50XCIsIFwiQ3JlYXRlQmFja3VwQ29tbWFuZFwiKVxuICAgIC5zYyhDcmVhdGVCYWNrdXAkKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgQ3JlYXRlR2xvYmFsVGFibGVDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBSZXNvdXJjZUFybjogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJHbG9iYWxUYWJsZU5hbWVcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiRHluYW1vREJfMjAxMjA4MTBcIiwgXCJDcmVhdGVHbG9iYWxUYWJsZVwiLCB7fSlcbiAgICAubihcIkR5bmFtb0RCQ2xpZW50XCIsIFwiQ3JlYXRlR2xvYmFsVGFibGVDb21tYW5kXCIpXG4gICAgLnNjKENyZWF0ZUdsb2JhbFRhYmxlJClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIENyZWF0ZVRhYmxlQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgUmVzb3VyY2VBcm46IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiVGFibGVOYW1lXCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkR5bmFtb0RCXzIwMTIwODEwXCIsIFwiQ3JlYXRlVGFibGVcIiwge30pXG4gICAgLm4oXCJEeW5hbW9EQkNsaWVudFwiLCBcIkNyZWF0ZVRhYmxlQ29tbWFuZFwiKVxuICAgIC5zYyhDcmVhdGVUYWJsZSQpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZWxldGVCYWNrdXBDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBSZXNvdXJjZUFybjogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJCYWNrdXBBcm5cIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiRHluYW1vREJfMjAxMjA4MTBcIiwgXCJEZWxldGVCYWNrdXBcIiwge30pXG4gICAgLm4oXCJEeW5hbW9EQkNsaWVudFwiLCBcIkRlbGV0ZUJhY2t1cENvbW1hbmRcIilcbiAgICAuc2MoRGVsZXRlQmFja3VwJClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERlbGV0ZUl0ZW1Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBSZXNvdXJjZUFybjogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJUYWJsZU5hbWVcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiRHluYW1vREJfMjAxMjA4MTBcIiwgXCJEZWxldGVJdGVtXCIsIHt9KVxuICAgIC5uKFwiRHluYW1vREJDbGllbnRcIiwgXCJEZWxldGVJdGVtQ29tbWFuZFwiKVxuICAgIC5zYyhEZWxldGVJdGVtJClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERlbGV0ZVJlc291cmNlUG9saWN5Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgUmVzb3VyY2VBcm46IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiUmVzb3VyY2VBcm5cIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiRHluYW1vREJfMjAxMjA4MTBcIiwgXCJEZWxldGVSZXNvdXJjZVBvbGljeVwiLCB7fSlcbiAgICAubihcIkR5bmFtb0RCQ2xpZW50XCIsIFwiRGVsZXRlUmVzb3VyY2VQb2xpY3lDb21tYW5kXCIpXG4gICAgLnNjKERlbGV0ZVJlc291cmNlUG9saWN5JClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERlbGV0ZVRhYmxlQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgUmVzb3VyY2VBcm46IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiVGFibGVOYW1lXCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkR5bmFtb0RCXzIwMTIwODEwXCIsIFwiRGVsZXRlVGFibGVcIiwge30pXG4gICAgLm4oXCJEeW5hbW9EQkNsaWVudFwiLCBcIkRlbGV0ZVRhYmxlQ29tbWFuZFwiKVxuICAgIC5zYyhEZWxldGVUYWJsZSQpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZXNjcmliZUJhY2t1cENvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFJlc291cmNlQXJuOiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJhY2t1cEFyblwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJEeW5hbW9EQl8yMDEyMDgxMFwiLCBcIkRlc2NyaWJlQmFja3VwXCIsIHt9KVxuICAgIC5uKFwiRHluYW1vREJDbGllbnRcIiwgXCJEZXNjcmliZUJhY2t1cENvbW1hbmRcIilcbiAgICAuc2MoRGVzY3JpYmVCYWNrdXAkKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgRGVzY3JpYmVDb250aW51b3VzQmFja3Vwc0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFJlc291cmNlQXJuOiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIlRhYmxlTmFtZVwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJEeW5hbW9EQl8yMDEyMDgxMFwiLCBcIkRlc2NyaWJlQ29udGludW91c0JhY2t1cHNcIiwge30pXG4gICAgLm4oXCJEeW5hbW9EQkNsaWVudFwiLCBcIkRlc2NyaWJlQ29udGludW91c0JhY2t1cHNDb21tYW5kXCIpXG4gICAgLnNjKERlc2NyaWJlQ29udGludW91c0JhY2t1cHMkKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgRGVzY3JpYmVDb250cmlidXRvckluc2lnaHRzQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgUmVzb3VyY2VBcm46IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiVGFibGVOYW1lXCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkR5bmFtb0RCXzIwMTIwODEwXCIsIFwiRGVzY3JpYmVDb250cmlidXRvckluc2lnaHRzXCIsIHt9KVxuICAgIC5uKFwiRHluYW1vREJDbGllbnRcIiwgXCJEZXNjcmliZUNvbnRyaWJ1dG9ySW5zaWdodHNDb21tYW5kXCIpXG4gICAgLnNjKERlc2NyaWJlQ29udHJpYnV0b3JJbnNpZ2h0cyQpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZXNjcmliZUV4cG9ydENvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFJlc291cmNlQXJuOiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkV4cG9ydEFyblwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJEeW5hbW9EQl8yMDEyMDgxMFwiLCBcIkRlc2NyaWJlRXhwb3J0XCIsIHt9KVxuICAgIC5uKFwiRHluYW1vREJDbGllbnRcIiwgXCJEZXNjcmliZUV4cG9ydENvbW1hbmRcIilcbiAgICAuc2MoRGVzY3JpYmVFeHBvcnQkKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgRGVzY3JpYmVHbG9iYWxUYWJsZUNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFJlc291cmNlQXJuOiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkdsb2JhbFRhYmxlTmFtZVwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJEeW5hbW9EQl8yMDEyMDgxMFwiLCBcIkRlc2NyaWJlR2xvYmFsVGFibGVcIiwge30pXG4gICAgLm4oXCJEeW5hbW9EQkNsaWVudFwiLCBcIkRlc2NyaWJlR2xvYmFsVGFibGVDb21tYW5kXCIpXG4gICAgLnNjKERlc2NyaWJlR2xvYmFsVGFibGUkKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgRGVzY3JpYmVHbG9iYWxUYWJsZVNldHRpbmdzQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgUmVzb3VyY2VBcm46IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiR2xvYmFsVGFibGVOYW1lXCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkR5bmFtb0RCXzIwMTIwODEwXCIsIFwiRGVzY3JpYmVHbG9iYWxUYWJsZVNldHRpbmdzXCIsIHt9KVxuICAgIC5uKFwiRHluYW1vREJDbGllbnRcIiwgXCJEZXNjcmliZUdsb2JhbFRhYmxlU2V0dGluZ3NDb21tYW5kXCIpXG4gICAgLnNjKERlc2NyaWJlR2xvYmFsVGFibGVTZXR0aW5ncyQpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZXNjcmliZUltcG9ydENvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFJlc291cmNlQXJuOiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkltcG9ydEFyblwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJEeW5hbW9EQl8yMDEyMDgxMFwiLCBcIkRlc2NyaWJlSW1wb3J0XCIsIHt9KVxuICAgIC5uKFwiRHluYW1vREJDbGllbnRcIiwgXCJEZXNjcmliZUltcG9ydENvbW1hbmRcIilcbiAgICAuc2MoRGVzY3JpYmVJbXBvcnQkKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgRGVzY3JpYmVLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb25Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBSZXNvdXJjZUFybjogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJUYWJsZU5hbWVcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiRHluYW1vREJfMjAxMjA4MTBcIiwgXCJEZXNjcmliZUtpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvblwiLCB7fSlcbiAgICAubihcIkR5bmFtb0RCQ2xpZW50XCIsIFwiRGVzY3JpYmVLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb25Db21tYW5kXCIpXG4gICAgLnNjKERlc2NyaWJlS2luZXNpc1N0cmVhbWluZ0Rlc3RpbmF0aW9uJClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERlc2NyaWJlTGltaXRzQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiRHluYW1vREJfMjAxMjA4MTBcIiwgXCJEZXNjcmliZUxpbWl0c1wiLCB7fSlcbiAgICAubihcIkR5bmFtb0RCQ2xpZW50XCIsIFwiRGVzY3JpYmVMaW1pdHNDb21tYW5kXCIpXG4gICAgLnNjKERlc2NyaWJlTGltaXRzJClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERlc2NyaWJlVGFibGVDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBSZXNvdXJjZUFybjogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJUYWJsZU5hbWVcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiRHluYW1vREJfMjAxMjA4MTBcIiwgXCJEZXNjcmliZVRhYmxlXCIsIHt9KVxuICAgIC5uKFwiRHluYW1vREJDbGllbnRcIiwgXCJEZXNjcmliZVRhYmxlQ29tbWFuZFwiKVxuICAgIC5zYyhEZXNjcmliZVRhYmxlJClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERlc2NyaWJlVGFibGVSZXBsaWNhQXV0b1NjYWxpbmdDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBSZXNvdXJjZUFybjogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJUYWJsZU5hbWVcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiRHluYW1vREJfMjAxMjA4MTBcIiwgXCJEZXNjcmliZVRhYmxlUmVwbGljYUF1dG9TY2FsaW5nXCIsIHt9KVxuICAgIC5uKFwiRHluYW1vREJDbGllbnRcIiwgXCJEZXNjcmliZVRhYmxlUmVwbGljYUF1dG9TY2FsaW5nQ29tbWFuZFwiKVxuICAgIC5zYyhEZXNjcmliZVRhYmxlUmVwbGljYUF1dG9TY2FsaW5nJClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERlc2NyaWJlVGltZVRvTGl2ZUNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFJlc291cmNlQXJuOiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIlRhYmxlTmFtZVwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJEeW5hbW9EQl8yMDEyMDgxMFwiLCBcIkRlc2NyaWJlVGltZVRvTGl2ZVwiLCB7fSlcbiAgICAubihcIkR5bmFtb0RCQ2xpZW50XCIsIFwiRGVzY3JpYmVUaW1lVG9MaXZlQ29tbWFuZFwiKVxuICAgIC5zYyhEZXNjcmliZVRpbWVUb0xpdmUkKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgRGlzYWJsZUtpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvbkNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFJlc291cmNlQXJuOiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIlRhYmxlTmFtZVwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJEeW5hbW9EQl8yMDEyMDgxMFwiLCBcIkRpc2FibGVLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb25cIiwge30pXG4gICAgLm4oXCJEeW5hbW9EQkNsaWVudFwiLCBcIkRpc2FibGVLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb25Db21tYW5kXCIpXG4gICAgLnNjKERpc2FibGVLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb24kKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgRW5hYmxlS2luZXNpc1N0cmVhbWluZ0Rlc3RpbmF0aW9uQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgUmVzb3VyY2VBcm46IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiVGFibGVOYW1lXCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkR5bmFtb0RCXzIwMTIwODEwXCIsIFwiRW5hYmxlS2luZXNpc1N0cmVhbWluZ0Rlc3RpbmF0aW9uXCIsIHt9KVxuICAgIC5uKFwiRHluYW1vREJDbGllbnRcIiwgXCJFbmFibGVLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb25Db21tYW5kXCIpXG4gICAgLnNjKEVuYWJsZUtpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvbiQpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBFeGVjdXRlU3RhdGVtZW50Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiRHluYW1vREJfMjAxMjA4MTBcIiwgXCJFeGVjdXRlU3RhdGVtZW50XCIsIHt9KVxuICAgIC5uKFwiRHluYW1vREJDbGllbnRcIiwgXCJFeGVjdXRlU3RhdGVtZW50Q29tbWFuZFwiKVxuICAgIC5zYyhFeGVjdXRlU3RhdGVtZW50JClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIEV4ZWN1dGVUcmFuc2FjdGlvbkNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkR5bmFtb0RCXzIwMTIwODEwXCIsIFwiRXhlY3V0ZVRyYW5zYWN0aW9uXCIsIHt9KVxuICAgIC5uKFwiRHluYW1vREJDbGllbnRcIiwgXCJFeGVjdXRlVHJhbnNhY3Rpb25Db21tYW5kXCIpXG4gICAgLnNjKEV4ZWN1dGVUcmFuc2FjdGlvbiQpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBFeHBvcnRUYWJsZVRvUG9pbnRJblRpbWVDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBSZXNvdXJjZUFybjogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJUYWJsZUFyblwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJEeW5hbW9EQl8yMDEyMDgxMFwiLCBcIkV4cG9ydFRhYmxlVG9Qb2ludEluVGltZVwiLCB7fSlcbiAgICAubihcIkR5bmFtb0RCQ2xpZW50XCIsIFwiRXhwb3J0VGFibGVUb1BvaW50SW5UaW1lQ29tbWFuZFwiKVxuICAgIC5zYyhFeHBvcnRUYWJsZVRvUG9pbnRJblRpbWUkKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgR2V0SXRlbUNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFJlc291cmNlQXJuOiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIlRhYmxlTmFtZVwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJEeW5hbW9EQl8yMDEyMDgxMFwiLCBcIkdldEl0ZW1cIiwge30pXG4gICAgLm4oXCJEeW5hbW9EQkNsaWVudFwiLCBcIkdldEl0ZW1Db21tYW5kXCIpXG4gICAgLnNjKEdldEl0ZW0kKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgR2V0UmVzb3VyY2VQb2xpY3lDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBSZXNvdXJjZUFybjogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJSZXNvdXJjZUFyblwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJEeW5hbW9EQl8yMDEyMDgxMFwiLCBcIkdldFJlc291cmNlUG9saWN5XCIsIHt9KVxuICAgIC5uKFwiRHluYW1vREJDbGllbnRcIiwgXCJHZXRSZXNvdXJjZVBvbGljeUNvbW1hbmRcIilcbiAgICAuc2MoR2V0UmVzb3VyY2VQb2xpY3kkKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgSW1wb3J0VGFibGVDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBSZXNvdXJjZUFybjogeyB0eXBlOiBcIm9wZXJhdGlvbkNvbnRleHRQYXJhbXNcIiwgZ2V0OiAoaW5wdXQpID0+IGlucHV0Py5UYWJsZUNyZWF0aW9uUGFyYW1ldGVycz8uVGFibGVOYW1lIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJEeW5hbW9EQl8yMDEyMDgxMFwiLCBcIkltcG9ydFRhYmxlXCIsIHt9KVxuICAgIC5uKFwiRHluYW1vREJDbGllbnRcIiwgXCJJbXBvcnRUYWJsZUNvbW1hbmRcIilcbiAgICAuc2MoSW1wb3J0VGFibGUkKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgTGlzdEJhY2t1cHNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBSZXNvdXJjZUFybjogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJUYWJsZU5hbWVcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiRHluYW1vREJfMjAxMjA4MTBcIiwgXCJMaXN0QmFja3Vwc1wiLCB7fSlcbiAgICAubihcIkR5bmFtb0RCQ2xpZW50XCIsIFwiTGlzdEJhY2t1cHNDb21tYW5kXCIpXG4gICAgLnNjKExpc3RCYWNrdXBzJClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIExpc3RDb250cmlidXRvckluc2lnaHRzQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgUmVzb3VyY2VBcm46IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiVGFibGVOYW1lXCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkR5bmFtb0RCXzIwMTIwODEwXCIsIFwiTGlzdENvbnRyaWJ1dG9ySW5zaWdodHNcIiwge30pXG4gICAgLm4oXCJEeW5hbW9EQkNsaWVudFwiLCBcIkxpc3RDb250cmlidXRvckluc2lnaHRzQ29tbWFuZFwiKVxuICAgIC5zYyhMaXN0Q29udHJpYnV0b3JJbnNpZ2h0cyQpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBMaXN0RXhwb3J0c0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFJlc291cmNlQXJuOiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIlRhYmxlQXJuXCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkR5bmFtb0RCXzIwMTIwODEwXCIsIFwiTGlzdEV4cG9ydHNcIiwge30pXG4gICAgLm4oXCJEeW5hbW9EQkNsaWVudFwiLCBcIkxpc3RFeHBvcnRzQ29tbWFuZFwiKVxuICAgIC5zYyhMaXN0RXhwb3J0cyQpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBMaXN0R2xvYmFsVGFibGVzQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiRHluYW1vREJfMjAxMjA4MTBcIiwgXCJMaXN0R2xvYmFsVGFibGVzXCIsIHt9KVxuICAgIC5uKFwiRHluYW1vREJDbGllbnRcIiwgXCJMaXN0R2xvYmFsVGFibGVzQ29tbWFuZFwiKVxuICAgIC5zYyhMaXN0R2xvYmFsVGFibGVzJClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIExpc3RJbXBvcnRzQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgUmVzb3VyY2VBcm46IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiVGFibGVBcm5cIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiRHluYW1vREJfMjAxMjA4MTBcIiwgXCJMaXN0SW1wb3J0c1wiLCB7fSlcbiAgICAubihcIkR5bmFtb0RCQ2xpZW50XCIsIFwiTGlzdEltcG9ydHNDb21tYW5kXCIpXG4gICAgLnNjKExpc3RJbXBvcnRzJClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIExpc3RUYWJsZXNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJEeW5hbW9EQl8yMDEyMDgxMFwiLCBcIkxpc3RUYWJsZXNcIiwge30pXG4gICAgLm4oXCJEeW5hbW9EQkNsaWVudFwiLCBcIkxpc3RUYWJsZXNDb21tYW5kXCIpXG4gICAgLnNjKExpc3RUYWJsZXMkKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgTGlzdFRhZ3NPZlJlc291cmNlQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgUmVzb3VyY2VBcm46IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiUmVzb3VyY2VBcm5cIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiRHluYW1vREJfMjAxMjA4MTBcIiwgXCJMaXN0VGFnc09mUmVzb3VyY2VcIiwge30pXG4gICAgLm4oXCJEeW5hbW9EQkNsaWVudFwiLCBcIkxpc3RUYWdzT2ZSZXNvdXJjZUNvbW1hbmRcIilcbiAgICAuc2MoTGlzdFRhZ3NPZlJlc291cmNlJClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFB1dEl0ZW1Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBSZXNvdXJjZUFybjogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJUYWJsZU5hbWVcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiRHluYW1vREJfMjAxMjA4MTBcIiwgXCJQdXRJdGVtXCIsIHt9KVxuICAgIC5uKFwiRHluYW1vREJDbGllbnRcIiwgXCJQdXRJdGVtQ29tbWFuZFwiKVxuICAgIC5zYyhQdXRJdGVtJClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFB1dFJlc291cmNlUG9saWN5Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgUmVzb3VyY2VBcm46IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiUmVzb3VyY2VBcm5cIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiRHluYW1vREJfMjAxMjA4MTBcIiwgXCJQdXRSZXNvdXJjZVBvbGljeVwiLCB7fSlcbiAgICAubihcIkR5bmFtb0RCQ2xpZW50XCIsIFwiUHV0UmVzb3VyY2VQb2xpY3lDb21tYW5kXCIpXG4gICAgLnNjKFB1dFJlc291cmNlUG9saWN5JClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFF1ZXJ5Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgUmVzb3VyY2VBcm46IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiVGFibGVOYW1lXCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkR5bmFtb0RCXzIwMTIwODEwXCIsIFwiUXVlcnlcIiwge30pXG4gICAgLm4oXCJEeW5hbW9EQkNsaWVudFwiLCBcIlF1ZXJ5Q29tbWFuZFwiKVxuICAgIC5zYyhRdWVyeSQpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBSZXN0b3JlVGFibGVGcm9tQmFja3VwQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgUmVzb3VyY2VBcm46IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiVGFyZ2V0VGFibGVOYW1lXCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkR5bmFtb0RCXzIwMTIwODEwXCIsIFwiUmVzdG9yZVRhYmxlRnJvbUJhY2t1cFwiLCB7fSlcbiAgICAubihcIkR5bmFtb0RCQ2xpZW50XCIsIFwiUmVzdG9yZVRhYmxlRnJvbUJhY2t1cENvbW1hbmRcIilcbiAgICAuc2MoUmVzdG9yZVRhYmxlRnJvbUJhY2t1cCQpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBSZXN0b3JlVGFibGVUb1BvaW50SW5UaW1lQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgUmVzb3VyY2VBcm46IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiVGFyZ2V0VGFibGVOYW1lXCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkR5bmFtb0RCXzIwMTIwODEwXCIsIFwiUmVzdG9yZVRhYmxlVG9Qb2ludEluVGltZVwiLCB7fSlcbiAgICAubihcIkR5bmFtb0RCQ2xpZW50XCIsIFwiUmVzdG9yZVRhYmxlVG9Qb2ludEluVGltZUNvbW1hbmRcIilcbiAgICAuc2MoUmVzdG9yZVRhYmxlVG9Qb2ludEluVGltZSQpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBTY2FuQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgUmVzb3VyY2VBcm46IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiVGFibGVOYW1lXCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkR5bmFtb0RCXzIwMTIwODEwXCIsIFwiU2NhblwiLCB7fSlcbiAgICAubihcIkR5bmFtb0RCQ2xpZW50XCIsIFwiU2NhbkNvbW1hbmRcIilcbiAgICAuc2MoU2NhbiQpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBUYWdSZXNvdXJjZUNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFJlc291cmNlQXJuOiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIlJlc291cmNlQXJuXCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkR5bmFtb0RCXzIwMTIwODEwXCIsIFwiVGFnUmVzb3VyY2VcIiwge30pXG4gICAgLm4oXCJEeW5hbW9EQkNsaWVudFwiLCBcIlRhZ1Jlc291cmNlQ29tbWFuZFwiKVxuICAgIC5zYyhUYWdSZXNvdXJjZSQpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBUcmFuc2FjdEdldEl0ZW1zQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgUmVzb3VyY2VBcm5MaXN0OiB7IHR5cGU6IFwib3BlcmF0aW9uQ29udGV4dFBhcmFtc1wiLCBnZXQ6IChpbnB1dCkgPT4gaW5wdXQ/LlRyYW5zYWN0SXRlbXM/Lm1hcCgob2JqKSA9PiBvYmo/LkdldD8uVGFibGVOYW1lKSB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiRHluYW1vREJfMjAxMjA4MTBcIiwgXCJUcmFuc2FjdEdldEl0ZW1zXCIsIHt9KVxuICAgIC5uKFwiRHluYW1vREJDbGllbnRcIiwgXCJUcmFuc2FjdEdldEl0ZW1zQ29tbWFuZFwiKVxuICAgIC5zYyhUcmFuc2FjdEdldEl0ZW1zJClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFRyYW5zYWN0V3JpdGVJdGVtc0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFJlc291cmNlQXJuTGlzdDogeyB0eXBlOiBcIm9wZXJhdGlvbkNvbnRleHRQYXJhbXNcIiwgZ2V0OiAoaW5wdXQpID0+IGlucHV0Py5UcmFuc2FjdEl0ZW1zPy5tYXAoKG9iaikgPT4gW29iaj8uQ29uZGl0aW9uQ2hlY2s/LlRhYmxlTmFtZSwgb2JqPy5QdXQ/LlRhYmxlTmFtZSwgb2JqPy5EZWxldGU/LlRhYmxlTmFtZSwgb2JqPy5VcGRhdGU/LlRhYmxlTmFtZV0uZmlsdGVyKChpKSA9PiBpKSkuZmxhdCgpIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJEeW5hbW9EQl8yMDEyMDgxMFwiLCBcIlRyYW5zYWN0V3JpdGVJdGVtc1wiLCB7fSlcbiAgICAubihcIkR5bmFtb0RCQ2xpZW50XCIsIFwiVHJhbnNhY3RXcml0ZUl0ZW1zQ29tbWFuZFwiKVxuICAgIC5zYyhUcmFuc2FjdFdyaXRlSXRlbXMkKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgVW50YWdSZXNvdXJjZUNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFJlc291cmNlQXJuOiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIlJlc291cmNlQXJuXCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkR5bmFtb0RCXzIwMTIwODEwXCIsIFwiVW50YWdSZXNvdXJjZVwiLCB7fSlcbiAgICAubihcIkR5bmFtb0RCQ2xpZW50XCIsIFwiVW50YWdSZXNvdXJjZUNvbW1hbmRcIilcbiAgICAuc2MoVW50YWdSZXNvdXJjZSQpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBVcGRhdGVDb250aW51b3VzQmFja3Vwc0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFJlc291cmNlQXJuOiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIlRhYmxlTmFtZVwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJEeW5hbW9EQl8yMDEyMDgxMFwiLCBcIlVwZGF0ZUNvbnRpbnVvdXNCYWNrdXBzXCIsIHt9KVxuICAgIC5uKFwiRHluYW1vREJDbGllbnRcIiwgXCJVcGRhdGVDb250aW51b3VzQmFja3Vwc0NvbW1hbmRcIilcbiAgICAuc2MoVXBkYXRlQ29udGludW91c0JhY2t1cHMkKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgVXBkYXRlQ29udHJpYnV0b3JJbnNpZ2h0c0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFJlc291cmNlQXJuOiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIlRhYmxlTmFtZVwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJEeW5hbW9EQl8yMDEyMDgxMFwiLCBcIlVwZGF0ZUNvbnRyaWJ1dG9ySW5zaWdodHNcIiwge30pXG4gICAgLm4oXCJEeW5hbW9EQkNsaWVudFwiLCBcIlVwZGF0ZUNvbnRyaWJ1dG9ySW5zaWdodHNDb21tYW5kXCIpXG4gICAgLnNjKFVwZGF0ZUNvbnRyaWJ1dG9ySW5zaWdodHMkKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgVXBkYXRlR2xvYmFsVGFibGVDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBSZXNvdXJjZUFybjogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJHbG9iYWxUYWJsZU5hbWVcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiRHluYW1vREJfMjAxMjA4MTBcIiwgXCJVcGRhdGVHbG9iYWxUYWJsZVwiLCB7fSlcbiAgICAubihcIkR5bmFtb0RCQ2xpZW50XCIsIFwiVXBkYXRlR2xvYmFsVGFibGVDb21tYW5kXCIpXG4gICAgLnNjKFVwZGF0ZUdsb2JhbFRhYmxlJClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFVwZGF0ZUdsb2JhbFRhYmxlU2V0dGluZ3NDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBSZXNvdXJjZUFybjogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJHbG9iYWxUYWJsZU5hbWVcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiRHluYW1vREJfMjAxMjA4MTBcIiwgXCJVcGRhdGVHbG9iYWxUYWJsZVNldHRpbmdzXCIsIHt9KVxuICAgIC5uKFwiRHluYW1vREJDbGllbnRcIiwgXCJVcGRhdGVHbG9iYWxUYWJsZVNldHRpbmdzQ29tbWFuZFwiKVxuICAgIC5zYyhVcGRhdGVHbG9iYWxUYWJsZVNldHRpbmdzJClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFVwZGF0ZUl0ZW1Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBSZXNvdXJjZUFybjogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJUYWJsZU5hbWVcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiRHluYW1vREJfMjAxMjA4MTBcIiwgXCJVcGRhdGVJdGVtXCIsIHt9KVxuICAgIC5uKFwiRHluYW1vREJDbGllbnRcIiwgXCJVcGRhdGVJdGVtQ29tbWFuZFwiKVxuICAgIC5zYyhVcGRhdGVJdGVtJClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFVwZGF0ZUtpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvbkNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFJlc291cmNlQXJuOiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIlRhYmxlTmFtZVwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJEeW5hbW9EQl8yMDEyMDgxMFwiLCBcIlVwZGF0ZUtpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvblwiLCB7fSlcbiAgICAubihcIkR5bmFtb0RCQ2xpZW50XCIsIFwiVXBkYXRlS2luZXNpc1N0cmVhbWluZ0Rlc3RpbmF0aW9uQ29tbWFuZFwiKVxuICAgIC5zYyhVcGRhdGVLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb24kKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgVXBkYXRlVGFibGVDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBSZXNvdXJjZUFybjogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJUYWJsZU5hbWVcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiRHluYW1vREJfMjAxMjA4MTBcIiwgXCJVcGRhdGVUYWJsZVwiLCB7fSlcbiAgICAubihcIkR5bmFtb0RCQ2xpZW50XCIsIFwiVXBkYXRlVGFibGVDb21tYW5kXCIpXG4gICAgLnNjKFVwZGF0ZVRhYmxlJClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFVwZGF0ZVRhYmxlUmVwbGljYUF1dG9TY2FsaW5nQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgUmVzb3VyY2VBcm46IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiVGFibGVOYW1lXCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkR5bmFtb0RCXzIwMTIwODEwXCIsIFwiVXBkYXRlVGFibGVSZXBsaWNhQXV0b1NjYWxpbmdcIiwge30pXG4gICAgLm4oXCJEeW5hbW9EQkNsaWVudFwiLCBcIlVwZGF0ZVRhYmxlUmVwbGljYUF1dG9TY2FsaW5nQ29tbWFuZFwiKVxuICAgIC5zYyhVcGRhdGVUYWJsZVJlcGxpY2FBdXRvU2NhbGluZyQpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBVcGRhdGVUaW1lVG9MaXZlQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgUmVzb3VyY2VBcm46IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiVGFibGVOYW1lXCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkR5bmFtb0RCXzIwMTIwODEwXCIsIFwiVXBkYXRlVGltZVRvTGl2ZVwiLCB7fSlcbiAgICAubihcIkR5bmFtb0RCQ2xpZW50XCIsIFwiVXBkYXRlVGltZVRvTGl2ZUNvbW1hbmRcIilcbiAgICAuc2MoVXBkYXRlVGltZVRvTGl2ZSQpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jb25zdCBwYWdpbmF0ZUxpc3RDb250cmlidXRvckluc2lnaHRzID0gY29yZS5jcmVhdGVQYWdpbmF0b3IoRHluYW1vREJDbGllbnQsIExpc3RDb250cmlidXRvckluc2lnaHRzQ29tbWFuZCwgXCJOZXh0VG9rZW5cIiwgXCJOZXh0VG9rZW5cIiwgXCJNYXhSZXN1bHRzXCIpO1xuXG5jb25zdCBwYWdpbmF0ZUxpc3RFeHBvcnRzID0gY29yZS5jcmVhdGVQYWdpbmF0b3IoRHluYW1vREJDbGllbnQsIExpc3RFeHBvcnRzQ29tbWFuZCwgXCJOZXh0VG9rZW5cIiwgXCJOZXh0VG9rZW5cIiwgXCJNYXhSZXN1bHRzXCIpO1xuXG5jb25zdCBwYWdpbmF0ZUxpc3RJbXBvcnRzID0gY29yZS5jcmVhdGVQYWdpbmF0b3IoRHluYW1vREJDbGllbnQsIExpc3RJbXBvcnRzQ29tbWFuZCwgXCJOZXh0VG9rZW5cIiwgXCJOZXh0VG9rZW5cIiwgXCJQYWdlU2l6ZVwiKTtcblxuY29uc3QgcGFnaW5hdGVMaXN0VGFibGVzID0gY29yZS5jcmVhdGVQYWdpbmF0b3IoRHluYW1vREJDbGllbnQsIExpc3RUYWJsZXNDb21tYW5kLCBcIkV4Y2x1c2l2ZVN0YXJ0VGFibGVOYW1lXCIsIFwiTGFzdEV2YWx1YXRlZFRhYmxlTmFtZVwiLCBcIkxpbWl0XCIpO1xuXG5jb25zdCBwYWdpbmF0ZVF1ZXJ5ID0gY29yZS5jcmVhdGVQYWdpbmF0b3IoRHluYW1vREJDbGllbnQsIFF1ZXJ5Q29tbWFuZCwgXCJFeGNsdXNpdmVTdGFydEtleVwiLCBcIkxhc3RFdmFsdWF0ZWRLZXlcIiwgXCJMaW1pdFwiKTtcblxuY29uc3QgcGFnaW5hdGVTY2FuID0gY29yZS5jcmVhdGVQYWdpbmF0b3IoRHluYW1vREJDbGllbnQsIFNjYW5Db21tYW5kLCBcIkV4Y2x1c2l2ZVN0YXJ0S2V5XCIsIFwiTGFzdEV2YWx1YXRlZEtleVwiLCBcIkxpbWl0XCIpO1xuXG5jb25zdCBjaGVja1N0YXRlJDUgPSBhc3luYyAoY2xpZW50LCBpbnB1dCkgPT4ge1xuICAgIGxldCByZWFzb247XG4gICAgdHJ5IHtcbiAgICAgICAgbGV0IHJlc3VsdCA9IGF3YWl0IGNsaWVudC5zZW5kKG5ldyBEZXNjcmliZUNvbnRyaWJ1dG9ySW5zaWdodHNDb21tYW5kKGlucHV0KSk7XG4gICAgICAgIHJlYXNvbiA9IHJlc3VsdDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJldHVybkNvbXBhcmF0b3IgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5Db250cmlidXRvckluc2lnaHRzU3RhdHVzO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmIChyZXR1cm5Db21wYXJhdG9yKCkgPT09IFwiRU5BQkxFRFwiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgc3RhdGU6IHV0aWxXYWl0ZXIuV2FpdGVyU3RhdGUuU1VDQ0VTUywgcmVhc29uIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHsgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcmV0dXJuQ29tcGFyYXRvciA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LkNvbnRyaWJ1dG9ySW5zaWdodHNTdGF0dXM7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKHJldHVybkNvbXBhcmF0b3IoKSA9PT0gXCJGQUlMRURcIikge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IHN0YXRlOiB1dGlsV2FpdGVyLldhaXRlclN0YXRlLkZBSUxVUkUsIHJlYXNvbiB9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7IH1cbiAgICB9XG4gICAgY2F0Y2ggKGV4Y2VwdGlvbikge1xuICAgICAgICByZWFzb24gPSBleGNlcHRpb247XG4gICAgfVxuICAgIHJldHVybiB7IHN0YXRlOiB1dGlsV2FpdGVyLldhaXRlclN0YXRlLlJFVFJZLCByZWFzb24gfTtcbn07XG5jb25zdCB3YWl0Rm9yQ29udHJpYnV0b3JJbnNpZ2h0c0VuYWJsZWQgPSBhc3luYyAocGFyYW1zLCBpbnB1dCkgPT4ge1xuICAgIGNvbnN0IHNlcnZpY2VEZWZhdWx0cyA9IHsgbWluRGVsYXk6IDIwLCBtYXhEZWxheTogMTIwIH07XG4gICAgcmV0dXJuIHV0aWxXYWl0ZXIuY3JlYXRlV2FpdGVyKHsgLi4uc2VydmljZURlZmF1bHRzLCAuLi5wYXJhbXMgfSwgaW5wdXQsIGNoZWNrU3RhdGUkNSk7XG59O1xuY29uc3Qgd2FpdFVudGlsQ29udHJpYnV0b3JJbnNpZ2h0c0VuYWJsZWQgPSBhc3luYyAocGFyYW1zLCBpbnB1dCkgPT4ge1xuICAgIGNvbnN0IHNlcnZpY2VEZWZhdWx0cyA9IHsgbWluRGVsYXk6IDIwLCBtYXhEZWxheTogMTIwIH07XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdXRpbFdhaXRlci5jcmVhdGVXYWl0ZXIoeyAuLi5zZXJ2aWNlRGVmYXVsdHMsIC4uLnBhcmFtcyB9LCBpbnB1dCwgY2hlY2tTdGF0ZSQ1KTtcbiAgICByZXR1cm4gdXRpbFdhaXRlci5jaGVja0V4Y2VwdGlvbnMocmVzdWx0KTtcbn07XG5cbmNvbnN0IGNoZWNrU3RhdGUkNCA9IGFzeW5jIChjbGllbnQsIGlucHV0KSA9PiB7XG4gICAgbGV0IHJlYXNvbjtcbiAgICB0cnkge1xuICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgY2xpZW50LnNlbmQobmV3IERlc2NyaWJlRXhwb3J0Q29tbWFuZChpbnB1dCkpO1xuICAgICAgICByZWFzb24gPSByZXN1bHQ7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByZXR1cm5Db21wYXJhdG9yID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQuRXhwb3J0RGVzY3JpcHRpb24uRXhwb3J0U3RhdHVzO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmIChyZXR1cm5Db21wYXJhdG9yKCkgPT09IFwiQ09NUExFVEVEXCIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBzdGF0ZTogdXRpbFdhaXRlci5XYWl0ZXJTdGF0ZS5TVUNDRVNTLCByZWFzb24gfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkgeyB9XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByZXR1cm5Db21wYXJhdG9yID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQuRXhwb3J0RGVzY3JpcHRpb24uRXhwb3J0U3RhdHVzO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmIChyZXR1cm5Db21wYXJhdG9yKCkgPT09IFwiRkFJTEVEXCIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBzdGF0ZTogdXRpbFdhaXRlci5XYWl0ZXJTdGF0ZS5GQUlMVVJFLCByZWFzb24gfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkgeyB9XG4gICAgfVxuICAgIGNhdGNoIChleGNlcHRpb24pIHtcbiAgICAgICAgcmVhc29uID0gZXhjZXB0aW9uO1xuICAgIH1cbiAgICByZXR1cm4geyBzdGF0ZTogdXRpbFdhaXRlci5XYWl0ZXJTdGF0ZS5SRVRSWSwgcmVhc29uIH07XG59O1xuY29uc3Qgd2FpdEZvckV4cG9ydENvbXBsZXRlZCA9IGFzeW5jIChwYXJhbXMsIGlucHV0KSA9PiB7XG4gICAgY29uc3Qgc2VydmljZURlZmF1bHRzID0geyBtaW5EZWxheTogMjAsIG1heERlbGF5OiAxMjAgfTtcbiAgICByZXR1cm4gdXRpbFdhaXRlci5jcmVhdGVXYWl0ZXIoeyAuLi5zZXJ2aWNlRGVmYXVsdHMsIC4uLnBhcmFtcyB9LCBpbnB1dCwgY2hlY2tTdGF0ZSQ0KTtcbn07XG5jb25zdCB3YWl0VW50aWxFeHBvcnRDb21wbGV0ZWQgPSBhc3luYyAocGFyYW1zLCBpbnB1dCkgPT4ge1xuICAgIGNvbnN0IHNlcnZpY2VEZWZhdWx0cyA9IHsgbWluRGVsYXk6IDIwLCBtYXhEZWxheTogMTIwIH07XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdXRpbFdhaXRlci5jcmVhdGVXYWl0ZXIoeyAuLi5zZXJ2aWNlRGVmYXVsdHMsIC4uLnBhcmFtcyB9LCBpbnB1dCwgY2hlY2tTdGF0ZSQ0KTtcbiAgICByZXR1cm4gdXRpbFdhaXRlci5jaGVja0V4Y2VwdGlvbnMocmVzdWx0KTtcbn07XG5cbmNvbnN0IGNoZWNrU3RhdGUkMyA9IGFzeW5jIChjbGllbnQsIGlucHV0KSA9PiB7XG4gICAgbGV0IHJlYXNvbjtcbiAgICB0cnkge1xuICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgY2xpZW50LnNlbmQobmV3IERlc2NyaWJlSW1wb3J0Q29tbWFuZChpbnB1dCkpO1xuICAgICAgICByZWFzb24gPSByZXN1bHQ7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByZXR1cm5Db21wYXJhdG9yID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQuSW1wb3J0VGFibGVEZXNjcmlwdGlvbi5JbXBvcnRTdGF0dXM7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKHJldHVybkNvbXBhcmF0b3IoKSA9PT0gXCJDT01QTEVURURcIikge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IHN0YXRlOiB1dGlsV2FpdGVyLldhaXRlclN0YXRlLlNVQ0NFU1MsIHJlYXNvbiB9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7IH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJldHVybkNvbXBhcmF0b3IgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5JbXBvcnRUYWJsZURlc2NyaXB0aW9uLkltcG9ydFN0YXR1cztcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAocmV0dXJuQ29tcGFyYXRvcigpID09PSBcIkZBSUxFRFwiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgc3RhdGU6IHV0aWxXYWl0ZXIuV2FpdGVyU3RhdGUuRkFJTFVSRSwgcmVhc29uIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHsgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcmV0dXJuQ29tcGFyYXRvciA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LkltcG9ydFRhYmxlRGVzY3JpcHRpb24uSW1wb3J0U3RhdHVzO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmIChyZXR1cm5Db21wYXJhdG9yKCkgPT09IFwiQ0FOQ0VMTEVEXCIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBzdGF0ZTogdXRpbFdhaXRlci5XYWl0ZXJTdGF0ZS5GQUlMVVJFLCByZWFzb24gfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkgeyB9XG4gICAgfVxuICAgIGNhdGNoIChleGNlcHRpb24pIHtcbiAgICAgICAgcmVhc29uID0gZXhjZXB0aW9uO1xuICAgIH1cbiAgICByZXR1cm4geyBzdGF0ZTogdXRpbFdhaXRlci5XYWl0ZXJTdGF0ZS5SRVRSWSwgcmVhc29uIH07XG59O1xuY29uc3Qgd2FpdEZvckltcG9ydENvbXBsZXRlZCA9IGFzeW5jIChwYXJhbXMsIGlucHV0KSA9PiB7XG4gICAgY29uc3Qgc2VydmljZURlZmF1bHRzID0geyBtaW5EZWxheTogMjAsIG1heERlbGF5OiAxMjAgfTtcbiAgICByZXR1cm4gdXRpbFdhaXRlci5jcmVhdGVXYWl0ZXIoeyAuLi5zZXJ2aWNlRGVmYXVsdHMsIC4uLnBhcmFtcyB9LCBpbnB1dCwgY2hlY2tTdGF0ZSQzKTtcbn07XG5jb25zdCB3YWl0VW50aWxJbXBvcnRDb21wbGV0ZWQgPSBhc3luYyAocGFyYW1zLCBpbnB1dCkgPT4ge1xuICAgIGNvbnN0IHNlcnZpY2VEZWZhdWx0cyA9IHsgbWluRGVsYXk6IDIwLCBtYXhEZWxheTogMTIwIH07XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdXRpbFdhaXRlci5jcmVhdGVXYWl0ZXIoeyAuLi5zZXJ2aWNlRGVmYXVsdHMsIC4uLnBhcmFtcyB9LCBpbnB1dCwgY2hlY2tTdGF0ZSQzKTtcbiAgICByZXR1cm4gdXRpbFdhaXRlci5jaGVja0V4Y2VwdGlvbnMocmVzdWx0KTtcbn07XG5cbmNvbnN0IGNoZWNrU3RhdGUkMiA9IGFzeW5jIChjbGllbnQsIGlucHV0KSA9PiB7XG4gICAgbGV0IHJlYXNvbjtcbiAgICB0cnkge1xuICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgY2xpZW50LnNlbmQobmV3IERlc2NyaWJlS2luZXNpc1N0cmVhbWluZ0Rlc3RpbmF0aW9uQ29tbWFuZChpbnB1dCkpO1xuICAgICAgICByZWFzb24gPSByZXN1bHQ7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByZXR1cm5Db21wYXJhdG9yID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBmbGF0XzEgPSBbXS5jb25jYXQoLi4ucmVzdWx0LktpbmVzaXNEYXRhU3RyZWFtRGVzdGluYXRpb25zKTtcbiAgICAgICAgICAgICAgICBsZXQgcHJvamVjdGlvbl8zID0gZmxhdF8xLm1hcCgoZWxlbWVudF8yKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBlbGVtZW50XzIuRGVzdGluYXRpb25TdGF0dXM7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHByb2plY3Rpb25fMztcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBmb3IgKGxldCBhbnlTdHJpbmdFcV80IG9mIHJldHVybkNvbXBhcmF0b3IoKSkge1xuICAgICAgICAgICAgICAgIGlmIChhbnlTdHJpbmdFcV80ID09IFwiQUNUSVZFXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgc3RhdGU6IHV0aWxXYWl0ZXIuV2FpdGVyU3RhdGUuU1VDQ0VTUywgcmVhc29uIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7IH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJldHVybkNvbXBhcmF0b3IgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IGZpbHRlclJlc18yID0gcmVzdWx0LktpbmVzaXNEYXRhU3RyZWFtRGVzdGluYXRpb25zLmZpbHRlcigoZWxlbWVudF8xKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoKChlbGVtZW50XzEuRGVzdGluYXRpb25TdGF0dXMgPT0gXCJESVNBQkxFRFwiKSB8fCAoZWxlbWVudF8xLkRlc3RpbmF0aW9uU3RhdHVzID09IFwiRU5BQkxFX0ZBSUxFRFwiKSkgJiYgKChlbGVtZW50XzEuRGVzdGluYXRpb25TdGF0dXMgPT0gXCJFTkFCTEVfRkFJTEVEXCIpIHx8IChlbGVtZW50XzEuRGVzdGluYXRpb25TdGF0dXMgPT0gXCJESVNBQkxFRFwiKSkpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiAoKHJlc3VsdC5LaW5lc2lzRGF0YVN0cmVhbURlc3RpbmF0aW9ucy5sZW5ndGggPiAwKSAmJiAoZmlsdGVyUmVzXzIubGVuZ3RoID09IHJlc3VsdC5LaW5lc2lzRGF0YVN0cmVhbURlc3RpbmF0aW9ucy5sZW5ndGgpKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAocmV0dXJuQ29tcGFyYXRvcigpID09IHRydWUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBzdGF0ZTogdXRpbFdhaXRlci5XYWl0ZXJTdGF0ZS5GQUlMVVJFLCByZWFzb24gfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkgeyB9XG4gICAgfVxuICAgIGNhdGNoIChleGNlcHRpb24pIHtcbiAgICAgICAgcmVhc29uID0gZXhjZXB0aW9uO1xuICAgIH1cbiAgICByZXR1cm4geyBzdGF0ZTogdXRpbFdhaXRlci5XYWl0ZXJTdGF0ZS5SRVRSWSwgcmVhc29uIH07XG59O1xuY29uc3Qgd2FpdEZvcktpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvbkFjdGl2ZSA9IGFzeW5jIChwYXJhbXMsIGlucHV0KSA9PiB7XG4gICAgY29uc3Qgc2VydmljZURlZmF1bHRzID0geyBtaW5EZWxheTogMjAsIG1heERlbGF5OiAxMjAgfTtcbiAgICByZXR1cm4gdXRpbFdhaXRlci5jcmVhdGVXYWl0ZXIoeyAuLi5zZXJ2aWNlRGVmYXVsdHMsIC4uLnBhcmFtcyB9LCBpbnB1dCwgY2hlY2tTdGF0ZSQyKTtcbn07XG5jb25zdCB3YWl0VW50aWxLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb25BY3RpdmUgPSBhc3luYyAocGFyYW1zLCBpbnB1dCkgPT4ge1xuICAgIGNvbnN0IHNlcnZpY2VEZWZhdWx0cyA9IHsgbWluRGVsYXk6IDIwLCBtYXhEZWxheTogMTIwIH07XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdXRpbFdhaXRlci5jcmVhdGVXYWl0ZXIoeyAuLi5zZXJ2aWNlRGVmYXVsdHMsIC4uLnBhcmFtcyB9LCBpbnB1dCwgY2hlY2tTdGF0ZSQyKTtcbiAgICByZXR1cm4gdXRpbFdhaXRlci5jaGVja0V4Y2VwdGlvbnMocmVzdWx0KTtcbn07XG5cbmNvbnN0IGNoZWNrU3RhdGUkMSA9IGFzeW5jIChjbGllbnQsIGlucHV0KSA9PiB7XG4gICAgbGV0IHJlYXNvbjtcbiAgICB0cnkge1xuICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgY2xpZW50LnNlbmQobmV3IERlc2NyaWJlVGFibGVDb21tYW5kKGlucHV0KSk7XG4gICAgICAgIHJlYXNvbiA9IHJlc3VsdDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJldHVybkNvbXBhcmF0b3IgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5UYWJsZS5UYWJsZVN0YXR1cztcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAocmV0dXJuQ29tcGFyYXRvcigpID09PSBcIkFDVElWRVwiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgc3RhdGU6IHV0aWxXYWl0ZXIuV2FpdGVyU3RhdGUuU1VDQ0VTUywgcmVhc29uIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHsgfVxuICAgIH1cbiAgICBjYXRjaCAoZXhjZXB0aW9uKSB7XG4gICAgICAgIHJlYXNvbiA9IGV4Y2VwdGlvbjtcbiAgICAgICAgaWYgKGV4Y2VwdGlvbi5uYW1lICYmIGV4Y2VwdGlvbi5uYW1lID09IFwiUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvblwiKSB7XG4gICAgICAgICAgICByZXR1cm4geyBzdGF0ZTogdXRpbFdhaXRlci5XYWl0ZXJTdGF0ZS5SRVRSWSwgcmVhc29uIH07XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHsgc3RhdGU6IHV0aWxXYWl0ZXIuV2FpdGVyU3RhdGUuUkVUUlksIHJlYXNvbiB9O1xufTtcbmNvbnN0IHdhaXRGb3JUYWJsZUV4aXN0cyA9IGFzeW5jIChwYXJhbXMsIGlucHV0KSA9PiB7XG4gICAgY29uc3Qgc2VydmljZURlZmF1bHRzID0geyBtaW5EZWxheTogMjAsIG1heERlbGF5OiAxMjAgfTtcbiAgICByZXR1cm4gdXRpbFdhaXRlci5jcmVhdGVXYWl0ZXIoeyAuLi5zZXJ2aWNlRGVmYXVsdHMsIC4uLnBhcmFtcyB9LCBpbnB1dCwgY2hlY2tTdGF0ZSQxKTtcbn07XG5jb25zdCB3YWl0VW50aWxUYWJsZUV4aXN0cyA9IGFzeW5jIChwYXJhbXMsIGlucHV0KSA9PiB7XG4gICAgY29uc3Qgc2VydmljZURlZmF1bHRzID0geyBtaW5EZWxheTogMjAsIG1heERlbGF5OiAxMjAgfTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB1dGlsV2FpdGVyLmNyZWF0ZVdhaXRlcih7IC4uLnNlcnZpY2VEZWZhdWx0cywgLi4ucGFyYW1zIH0sIGlucHV0LCBjaGVja1N0YXRlJDEpO1xuICAgIHJldHVybiB1dGlsV2FpdGVyLmNoZWNrRXhjZXB0aW9ucyhyZXN1bHQpO1xufTtcblxuY29uc3QgY2hlY2tTdGF0ZSA9IGFzeW5jIChjbGllbnQsIGlucHV0KSA9PiB7XG4gICAgbGV0IHJlYXNvbjtcbiAgICB0cnkge1xuICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgY2xpZW50LnNlbmQobmV3IERlc2NyaWJlVGFibGVDb21tYW5kKGlucHV0KSk7XG4gICAgICAgIHJlYXNvbiA9IHJlc3VsdDtcbiAgICB9XG4gICAgY2F0Y2ggKGV4Y2VwdGlvbikge1xuICAgICAgICByZWFzb24gPSBleGNlcHRpb247XG4gICAgICAgIGlmIChleGNlcHRpb24ubmFtZSAmJiBleGNlcHRpb24ubmFtZSA9PSBcIlJlc291cmNlTm90Rm91bmRFeGNlcHRpb25cIikge1xuICAgICAgICAgICAgcmV0dXJuIHsgc3RhdGU6IHV0aWxXYWl0ZXIuV2FpdGVyU3RhdGUuU1VDQ0VTUywgcmVhc29uIH07XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHsgc3RhdGU6IHV0aWxXYWl0ZXIuV2FpdGVyU3RhdGUuUkVUUlksIHJlYXNvbiB9O1xufTtcbmNvbnN0IHdhaXRGb3JUYWJsZU5vdEV4aXN0cyA9IGFzeW5jIChwYXJhbXMsIGlucHV0KSA9PiB7XG4gICAgY29uc3Qgc2VydmljZURlZmF1bHRzID0geyBtaW5EZWxheTogMjAsIG1heERlbGF5OiAxMjAgfTtcbiAgICByZXR1cm4gdXRpbFdhaXRlci5jcmVhdGVXYWl0ZXIoeyAuLi5zZXJ2aWNlRGVmYXVsdHMsIC4uLnBhcmFtcyB9LCBpbnB1dCwgY2hlY2tTdGF0ZSk7XG59O1xuY29uc3Qgd2FpdFVudGlsVGFibGVOb3RFeGlzdHMgPSBhc3luYyAocGFyYW1zLCBpbnB1dCkgPT4ge1xuICAgIGNvbnN0IHNlcnZpY2VEZWZhdWx0cyA9IHsgbWluRGVsYXk6IDIwLCBtYXhEZWxheTogMTIwIH07XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdXRpbFdhaXRlci5jcmVhdGVXYWl0ZXIoeyAuLi5zZXJ2aWNlRGVmYXVsdHMsIC4uLnBhcmFtcyB9LCBpbnB1dCwgY2hlY2tTdGF0ZSk7XG4gICAgcmV0dXJuIHV0aWxXYWl0ZXIuY2hlY2tFeGNlcHRpb25zKHJlc3VsdCk7XG59O1xuXG5jb25zdCBjb21tYW5kcyA9IHtcbiAgICBCYXRjaEV4ZWN1dGVTdGF0ZW1lbnRDb21tYW5kLFxuICAgIEJhdGNoR2V0SXRlbUNvbW1hbmQsXG4gICAgQmF0Y2hXcml0ZUl0ZW1Db21tYW5kLFxuICAgIENyZWF0ZUJhY2t1cENvbW1hbmQsXG4gICAgQ3JlYXRlR2xvYmFsVGFibGVDb21tYW5kLFxuICAgIENyZWF0ZVRhYmxlQ29tbWFuZCxcbiAgICBEZWxldGVCYWNrdXBDb21tYW5kLFxuICAgIERlbGV0ZUl0ZW1Db21tYW5kLFxuICAgIERlbGV0ZVJlc291cmNlUG9saWN5Q29tbWFuZCxcbiAgICBEZWxldGVUYWJsZUNvbW1hbmQsXG4gICAgRGVzY3JpYmVCYWNrdXBDb21tYW5kLFxuICAgIERlc2NyaWJlQ29udGludW91c0JhY2t1cHNDb21tYW5kLFxuICAgIERlc2NyaWJlQ29udHJpYnV0b3JJbnNpZ2h0c0NvbW1hbmQsXG4gICAgRGVzY3JpYmVFbmRwb2ludHNDb21tYW5kLFxuICAgIERlc2NyaWJlRXhwb3J0Q29tbWFuZCxcbiAgICBEZXNjcmliZUdsb2JhbFRhYmxlQ29tbWFuZCxcbiAgICBEZXNjcmliZUdsb2JhbFRhYmxlU2V0dGluZ3NDb21tYW5kLFxuICAgIERlc2NyaWJlSW1wb3J0Q29tbWFuZCxcbiAgICBEZXNjcmliZUtpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvbkNvbW1hbmQsXG4gICAgRGVzY3JpYmVMaW1pdHNDb21tYW5kLFxuICAgIERlc2NyaWJlVGFibGVDb21tYW5kLFxuICAgIERlc2NyaWJlVGFibGVSZXBsaWNhQXV0b1NjYWxpbmdDb21tYW5kLFxuICAgIERlc2NyaWJlVGltZVRvTGl2ZUNvbW1hbmQsXG4gICAgRGlzYWJsZUtpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvbkNvbW1hbmQsXG4gICAgRW5hYmxlS2luZXNpc1N0cmVhbWluZ0Rlc3RpbmF0aW9uQ29tbWFuZCxcbiAgICBFeGVjdXRlU3RhdGVtZW50Q29tbWFuZCxcbiAgICBFeGVjdXRlVHJhbnNhY3Rpb25Db21tYW5kLFxuICAgIEV4cG9ydFRhYmxlVG9Qb2ludEluVGltZUNvbW1hbmQsXG4gICAgR2V0SXRlbUNvbW1hbmQsXG4gICAgR2V0UmVzb3VyY2VQb2xpY3lDb21tYW5kLFxuICAgIEltcG9ydFRhYmxlQ29tbWFuZCxcbiAgICBMaXN0QmFja3Vwc0NvbW1hbmQsXG4gICAgTGlzdENvbnRyaWJ1dG9ySW5zaWdodHNDb21tYW5kLFxuICAgIExpc3RFeHBvcnRzQ29tbWFuZCxcbiAgICBMaXN0R2xvYmFsVGFibGVzQ29tbWFuZCxcbiAgICBMaXN0SW1wb3J0c0NvbW1hbmQsXG4gICAgTGlzdFRhYmxlc0NvbW1hbmQsXG4gICAgTGlzdFRhZ3NPZlJlc291cmNlQ29tbWFuZCxcbiAgICBQdXRJdGVtQ29tbWFuZCxcbiAgICBQdXRSZXNvdXJjZVBvbGljeUNvbW1hbmQsXG4gICAgUXVlcnlDb21tYW5kLFxuICAgIFJlc3RvcmVUYWJsZUZyb21CYWNrdXBDb21tYW5kLFxuICAgIFJlc3RvcmVUYWJsZVRvUG9pbnRJblRpbWVDb21tYW5kLFxuICAgIFNjYW5Db21tYW5kLFxuICAgIFRhZ1Jlc291cmNlQ29tbWFuZCxcbiAgICBUcmFuc2FjdEdldEl0ZW1zQ29tbWFuZCxcbiAgICBUcmFuc2FjdFdyaXRlSXRlbXNDb21tYW5kLFxuICAgIFVudGFnUmVzb3VyY2VDb21tYW5kLFxuICAgIFVwZGF0ZUNvbnRpbnVvdXNCYWNrdXBzQ29tbWFuZCxcbiAgICBVcGRhdGVDb250cmlidXRvckluc2lnaHRzQ29tbWFuZCxcbiAgICBVcGRhdGVHbG9iYWxUYWJsZUNvbW1hbmQsXG4gICAgVXBkYXRlR2xvYmFsVGFibGVTZXR0aW5nc0NvbW1hbmQsXG4gICAgVXBkYXRlSXRlbUNvbW1hbmQsXG4gICAgVXBkYXRlS2luZXNpc1N0cmVhbWluZ0Rlc3RpbmF0aW9uQ29tbWFuZCxcbiAgICBVcGRhdGVUYWJsZUNvbW1hbmQsXG4gICAgVXBkYXRlVGFibGVSZXBsaWNhQXV0b1NjYWxpbmdDb21tYW5kLFxuICAgIFVwZGF0ZVRpbWVUb0xpdmVDb21tYW5kLFxufTtcbmNvbnN0IHBhZ2luYXRvcnMgPSB7XG4gICAgcGFnaW5hdGVMaXN0Q29udHJpYnV0b3JJbnNpZ2h0cyxcbiAgICBwYWdpbmF0ZUxpc3RFeHBvcnRzLFxuICAgIHBhZ2luYXRlTGlzdEltcG9ydHMsXG4gICAgcGFnaW5hdGVMaXN0VGFibGVzLFxuICAgIHBhZ2luYXRlUXVlcnksXG4gICAgcGFnaW5hdGVTY2FuLFxufTtcbmNvbnN0IHdhaXRlcnMgPSB7XG4gICAgd2FpdFVudGlsQ29udHJpYnV0b3JJbnNpZ2h0c0VuYWJsZWQsXG4gICAgd2FpdFVudGlsRXhwb3J0Q29tcGxldGVkLFxuICAgIHdhaXRVbnRpbEltcG9ydENvbXBsZXRlZCxcbiAgICB3YWl0VW50aWxLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb25BY3RpdmUsXG4gICAgd2FpdFVudGlsVGFibGVFeGlzdHMsXG4gICAgd2FpdFVudGlsVGFibGVOb3RFeGlzdHMsXG59O1xuY2xhc3MgRHluYW1vREIgZXh0ZW5kcyBEeW5hbW9EQkNsaWVudCB7XG59XG5zbWl0aHlDbGllbnQuY3JlYXRlQWdncmVnYXRlZENsaWVudChjb21tYW5kcywgRHluYW1vREIsIHsgcGFnaW5hdG9ycywgd2FpdGVycyB9KTtcblxuY29uc3QgQXBwcm94aW1hdGVDcmVhdGlvbkRhdGVUaW1lUHJlY2lzaW9uID0ge1xuICAgIE1JQ1JPU0VDT05EOiBcIk1JQ1JPU0VDT05EXCIsXG4gICAgTUlMTElTRUNPTkQ6IFwiTUlMTElTRUNPTkRcIixcbn07XG5jb25zdCBBdHRyaWJ1dGVBY3Rpb24gPSB7XG4gICAgQUREOiBcIkFERFwiLFxuICAgIERFTEVURTogXCJERUxFVEVcIixcbiAgICBQVVQ6IFwiUFVUXCIsXG59O1xuY29uc3QgU2NhbGFyQXR0cmlidXRlVHlwZSA9IHtcbiAgICBCOiBcIkJcIixcbiAgICBOOiBcIk5cIixcbiAgICBTOiBcIlNcIixcbn07XG5jb25zdCBCYWNrdXBTdGF0dXMgPSB7XG4gICAgQVZBSUxBQkxFOiBcIkFWQUlMQUJMRVwiLFxuICAgIENSRUFUSU5HOiBcIkNSRUFUSU5HXCIsXG4gICAgREVMRVRFRDogXCJERUxFVEVEXCIsXG59O1xuY29uc3QgQmFja3VwVHlwZSA9IHtcbiAgICBBV1NfQkFDS1VQOiBcIkFXU19CQUNLVVBcIixcbiAgICBTWVNURU06IFwiU1lTVEVNXCIsXG4gICAgVVNFUjogXCJVU0VSXCIsXG59O1xuY29uc3QgQmlsbGluZ01vZGUgPSB7XG4gICAgUEFZX1BFUl9SRVFVRVNUOiBcIlBBWV9QRVJfUkVRVUVTVFwiLFxuICAgIFBST1ZJU0lPTkVEOiBcIlBST1ZJU0lPTkVEXCIsXG59O1xuY29uc3QgS2V5VHlwZSA9IHtcbiAgICBIQVNIOiBcIkhBU0hcIixcbiAgICBSQU5HRTogXCJSQU5HRVwiLFxufTtcbmNvbnN0IFByb2plY3Rpb25UeXBlID0ge1xuICAgIEFMTDogXCJBTExcIixcbiAgICBJTkNMVURFOiBcIklOQ0xVREVcIixcbiAgICBLRVlTX09OTFk6IFwiS0VZU19PTkxZXCIsXG59O1xuY29uc3QgU1NFVHlwZSA9IHtcbiAgICBBRVMyNTY6IFwiQUVTMjU2XCIsXG4gICAgS01TOiBcIktNU1wiLFxufTtcbmNvbnN0IFNTRVN0YXR1cyA9IHtcbiAgICBESVNBQkxFRDogXCJESVNBQkxFRFwiLFxuICAgIERJU0FCTElORzogXCJESVNBQkxJTkdcIixcbiAgICBFTkFCTEVEOiBcIkVOQUJMRURcIixcbiAgICBFTkFCTElORzogXCJFTkFCTElOR1wiLFxuICAgIFVQREFUSU5HOiBcIlVQREFUSU5HXCIsXG59O1xuY29uc3QgU3RyZWFtVmlld1R5cGUgPSB7XG4gICAgS0VZU19PTkxZOiBcIktFWVNfT05MWVwiLFxuICAgIE5FV19BTkRfT0xEX0lNQUdFUzogXCJORVdfQU5EX09MRF9JTUFHRVNcIixcbiAgICBORVdfSU1BR0U6IFwiTkVXX0lNQUdFXCIsXG4gICAgT0xEX0lNQUdFOiBcIk9MRF9JTUFHRVwiLFxufTtcbmNvbnN0IFRpbWVUb0xpdmVTdGF0dXMgPSB7XG4gICAgRElTQUJMRUQ6IFwiRElTQUJMRURcIixcbiAgICBESVNBQkxJTkc6IFwiRElTQUJMSU5HXCIsXG4gICAgRU5BQkxFRDogXCJFTkFCTEVEXCIsXG4gICAgRU5BQkxJTkc6IFwiRU5BQkxJTkdcIixcbn07XG5jb25zdCBCYWNrdXBUeXBlRmlsdGVyID0ge1xuICAgIEFMTDogXCJBTExcIixcbiAgICBBV1NfQkFDS1VQOiBcIkFXU19CQUNLVVBcIixcbiAgICBTWVNURU06IFwiU1lTVEVNXCIsXG4gICAgVVNFUjogXCJVU0VSXCIsXG59O1xuY29uc3QgUmV0dXJuQ29uc3VtZWRDYXBhY2l0eSA9IHtcbiAgICBJTkRFWEVTOiBcIklOREVYRVNcIixcbiAgICBOT05FOiBcIk5PTkVcIixcbiAgICBUT1RBTDogXCJUT1RBTFwiLFxufTtcbmNvbnN0IFJldHVyblZhbHVlc09uQ29uZGl0aW9uQ2hlY2tGYWlsdXJlID0ge1xuICAgIEFMTF9PTEQ6IFwiQUxMX09MRFwiLFxuICAgIE5PTkU6IFwiTk9ORVwiLFxufTtcbmNvbnN0IEJhdGNoU3RhdGVtZW50RXJyb3JDb2RlRW51bSA9IHtcbiAgICBBY2Nlc3NEZW5pZWQ6IFwiQWNjZXNzRGVuaWVkXCIsXG4gICAgQ29uZGl0aW9uYWxDaGVja0ZhaWxlZDogXCJDb25kaXRpb25hbENoZWNrRmFpbGVkXCIsXG4gICAgRHVwbGljYXRlSXRlbTogXCJEdXBsaWNhdGVJdGVtXCIsXG4gICAgSW50ZXJuYWxTZXJ2ZXJFcnJvcjogXCJJbnRlcm5hbFNlcnZlckVycm9yXCIsXG4gICAgSXRlbUNvbGxlY3Rpb25TaXplTGltaXRFeGNlZWRlZDogXCJJdGVtQ29sbGVjdGlvblNpemVMaW1pdEV4Y2VlZGVkXCIsXG4gICAgUHJvdmlzaW9uZWRUaHJvdWdocHV0RXhjZWVkZWQ6IFwiUHJvdmlzaW9uZWRUaHJvdWdocHV0RXhjZWVkZWRcIixcbiAgICBSZXF1ZXN0TGltaXRFeGNlZWRlZDogXCJSZXF1ZXN0TGltaXRFeGNlZWRlZFwiLFxuICAgIFJlc291cmNlTm90Rm91bmQ6IFwiUmVzb3VyY2VOb3RGb3VuZFwiLFxuICAgIFRocm90dGxpbmdFcnJvcjogXCJUaHJvdHRsaW5nRXJyb3JcIixcbiAgICBUcmFuc2FjdGlvbkNvbmZsaWN0OiBcIlRyYW5zYWN0aW9uQ29uZmxpY3RcIixcbiAgICBWYWxpZGF0aW9uRXJyb3I6IFwiVmFsaWRhdGlvbkVycm9yXCIsXG59O1xuY29uc3QgUmV0dXJuSXRlbUNvbGxlY3Rpb25NZXRyaWNzID0ge1xuICAgIE5PTkU6IFwiTk9ORVwiLFxuICAgIFNJWkU6IFwiU0laRVwiLFxufTtcbmNvbnN0IENvbXBhcmlzb25PcGVyYXRvciA9IHtcbiAgICBCRUdJTlNfV0lUSDogXCJCRUdJTlNfV0lUSFwiLFxuICAgIEJFVFdFRU46IFwiQkVUV0VFTlwiLFxuICAgIENPTlRBSU5TOiBcIkNPTlRBSU5TXCIsXG4gICAgRVE6IFwiRVFcIixcbiAgICBHRTogXCJHRVwiLFxuICAgIEdUOiBcIkdUXCIsXG4gICAgSU46IFwiSU5cIixcbiAgICBMRTogXCJMRVwiLFxuICAgIExUOiBcIkxUXCIsXG4gICAgTkU6IFwiTkVcIixcbiAgICBOT1RfQ09OVEFJTlM6IFwiTk9UX0NPTlRBSU5TXCIsXG4gICAgTk9UX05VTEw6IFwiTk9UX05VTExcIixcbiAgICBOVUxMOiBcIk5VTExcIixcbn07XG5jb25zdCBDb25kaXRpb25hbE9wZXJhdG9yID0ge1xuICAgIEFORDogXCJBTkRcIixcbiAgICBPUjogXCJPUlwiLFxufTtcbmNvbnN0IENvbnRpbnVvdXNCYWNrdXBzU3RhdHVzID0ge1xuICAgIERJU0FCTEVEOiBcIkRJU0FCTEVEXCIsXG4gICAgRU5BQkxFRDogXCJFTkFCTEVEXCIsXG59O1xuY29uc3QgUG9pbnRJblRpbWVSZWNvdmVyeVN0YXR1cyA9IHtcbiAgICBESVNBQkxFRDogXCJESVNBQkxFRFwiLFxuICAgIEVOQUJMRUQ6IFwiRU5BQkxFRFwiLFxufTtcbmNvbnN0IENvbnRyaWJ1dG9ySW5zaWdodHNBY3Rpb24gPSB7XG4gICAgRElTQUJMRTogXCJESVNBQkxFXCIsXG4gICAgRU5BQkxFOiBcIkVOQUJMRVwiLFxufTtcbmNvbnN0IENvbnRyaWJ1dG9ySW5zaWdodHNNb2RlID0ge1xuICAgIEFDQ0VTU0VEX0FORF9USFJPVFRMRURfS0VZUzogXCJBQ0NFU1NFRF9BTkRfVEhST1RUTEVEX0tFWVNcIixcbiAgICBUSFJPVFRMRURfS0VZUzogXCJUSFJPVFRMRURfS0VZU1wiLFxufTtcbmNvbnN0IENvbnRyaWJ1dG9ySW5zaWdodHNTdGF0dXMgPSB7XG4gICAgRElTQUJMRUQ6IFwiRElTQUJMRURcIixcbiAgICBESVNBQkxJTkc6IFwiRElTQUJMSU5HXCIsXG4gICAgRU5BQkxFRDogXCJFTkFCTEVEXCIsXG4gICAgRU5BQkxJTkc6IFwiRU5BQkxJTkdcIixcbiAgICBGQUlMRUQ6IFwiRkFJTEVEXCIsXG59O1xuY29uc3QgR2xvYmFsVGFibGVTdGF0dXMgPSB7XG4gICAgQUNUSVZFOiBcIkFDVElWRVwiLFxuICAgIENSRUFUSU5HOiBcIkNSRUFUSU5HXCIsXG4gICAgREVMRVRJTkc6IFwiREVMRVRJTkdcIixcbiAgICBVUERBVElORzogXCJVUERBVElOR1wiLFxufTtcbmNvbnN0IEluZGV4U3RhdHVzID0ge1xuICAgIEFDVElWRTogXCJBQ1RJVkVcIixcbiAgICBDUkVBVElORzogXCJDUkVBVElOR1wiLFxuICAgIERFTEVUSU5HOiBcIkRFTEVUSU5HXCIsXG4gICAgVVBEQVRJTkc6IFwiVVBEQVRJTkdcIixcbn07XG5jb25zdCBSZXBsaWNhU3RhdHVzID0ge1xuICAgIEFDVElWRTogXCJBQ1RJVkVcIixcbiAgICBBUkNISVZFRDogXCJBUkNISVZFRFwiLFxuICAgIEFSQ0hJVklORzogXCJBUkNISVZJTkdcIixcbiAgICBDUkVBVElORzogXCJDUkVBVElOR1wiLFxuICAgIENSRUFUSU9OX0ZBSUxFRDogXCJDUkVBVElPTl9GQUlMRURcIixcbiAgICBERUxFVElORzogXCJERUxFVElOR1wiLFxuICAgIElOQUNDRVNTSUJMRV9FTkNSWVBUSU9OX0NSRURFTlRJQUxTOiBcIklOQUNDRVNTSUJMRV9FTkNSWVBUSU9OX0NSRURFTlRJQUxTXCIsXG4gICAgUkVHSU9OX0RJU0FCTEVEOiBcIlJFR0lPTl9ESVNBQkxFRFwiLFxuICAgIFJFUExJQ0FUSU9OX05PVF9BVVRIT1JJWkVEOiBcIlJFUExJQ0FUSU9OX05PVF9BVVRIT1JJWkVEXCIsXG4gICAgVVBEQVRJTkc6IFwiVVBEQVRJTkdcIixcbn07XG5jb25zdCBUYWJsZUNsYXNzID0ge1xuICAgIFNUQU5EQVJEOiBcIlNUQU5EQVJEXCIsXG4gICAgU1RBTkRBUkRfSU5GUkVRVUVOVF9BQ0NFU1M6IFwiU1RBTkRBUkRfSU5GUkVRVUVOVF9BQ0NFU1NcIixcbn07XG5jb25zdCBUYWJsZVN0YXR1cyA9IHtcbiAgICBBQ1RJVkU6IFwiQUNUSVZFXCIsXG4gICAgQVJDSElWRUQ6IFwiQVJDSElWRURcIixcbiAgICBBUkNISVZJTkc6IFwiQVJDSElWSU5HXCIsXG4gICAgQ1JFQVRJTkc6IFwiQ1JFQVRJTkdcIixcbiAgICBERUxFVElORzogXCJERUxFVElOR1wiLFxuICAgIElOQUNDRVNTSUJMRV9FTkNSWVBUSU9OX0NSRURFTlRJQUxTOiBcIklOQUNDRVNTSUJMRV9FTkNSWVBUSU9OX0NSRURFTlRJQUxTXCIsXG4gICAgUkVQTElDQVRJT05fTk9UX0FVVEhPUklaRUQ6IFwiUkVQTElDQVRJT05fTk9UX0FVVEhPUklaRURcIixcbiAgICBVUERBVElORzogXCJVUERBVElOR1wiLFxufTtcbmNvbnN0IFdpdG5lc3NTdGF0dXMgPSB7XG4gICAgQUNUSVZFOiBcIkFDVElWRVwiLFxuICAgIENSRUFUSU5HOiBcIkNSRUFUSU5HXCIsXG4gICAgREVMRVRJTkc6IFwiREVMRVRJTkdcIixcbn07XG5jb25zdCBNdWx0aVJlZ2lvbkNvbnNpc3RlbmN5ID0ge1xuICAgIEVWRU5UVUFMOiBcIkVWRU5UVUFMXCIsXG4gICAgU1RST05HOiBcIlNUUk9OR1wiLFxufTtcbmNvbnN0IFJldHVyblZhbHVlID0ge1xuICAgIEFMTF9ORVc6IFwiQUxMX05FV1wiLFxuICAgIEFMTF9PTEQ6IFwiQUxMX09MRFwiLFxuICAgIE5PTkU6IFwiTk9ORVwiLFxuICAgIFVQREFURURfTkVXOiBcIlVQREFURURfTkVXXCIsXG4gICAgVVBEQVRFRF9PTEQ6IFwiVVBEQVRFRF9PTERcIixcbn07XG5jb25zdCBFeHBvcnRGb3JtYXQgPSB7XG4gICAgRFlOQU1PREJfSlNPTjogXCJEWU5BTU9EQl9KU09OXCIsXG4gICAgSU9OOiBcIklPTlwiLFxufTtcbmNvbnN0IEV4cG9ydFN0YXR1cyA9IHtcbiAgICBDT01QTEVURUQ6IFwiQ09NUExFVEVEXCIsXG4gICAgRkFJTEVEOiBcIkZBSUxFRFwiLFxuICAgIElOX1BST0dSRVNTOiBcIklOX1BST0dSRVNTXCIsXG59O1xuY29uc3QgRXhwb3J0VHlwZSA9IHtcbiAgICBGVUxMX0VYUE9SVDogXCJGVUxMX0VYUE9SVFwiLFxuICAgIElOQ1JFTUVOVEFMX0VYUE9SVDogXCJJTkNSRU1FTlRBTF9FWFBPUlRcIixcbn07XG5jb25zdCBFeHBvcnRWaWV3VHlwZSA9IHtcbiAgICBORVdfQU5EX09MRF9JTUFHRVM6IFwiTkVXX0FORF9PTERfSU1BR0VTXCIsXG4gICAgTkVXX0lNQUdFOiBcIk5FV19JTUFHRVwiLFxufTtcbmNvbnN0IFMzU3NlQWxnb3JpdGhtID0ge1xuICAgIEFFUzI1NjogXCJBRVMyNTZcIixcbiAgICBLTVM6IFwiS01TXCIsXG59O1xuY29uc3QgSW1wb3J0U3RhdHVzID0ge1xuICAgIENBTkNFTExFRDogXCJDQU5DRUxMRURcIixcbiAgICBDQU5DRUxMSU5HOiBcIkNBTkNFTExJTkdcIixcbiAgICBDT01QTEVURUQ6IFwiQ09NUExFVEVEXCIsXG4gICAgRkFJTEVEOiBcIkZBSUxFRFwiLFxuICAgIElOX1BST0dSRVNTOiBcIklOX1BST0dSRVNTXCIsXG59O1xuY29uc3QgSW5wdXRDb21wcmVzc2lvblR5cGUgPSB7XG4gICAgR1pJUDogXCJHWklQXCIsXG4gICAgTk9ORTogXCJOT05FXCIsXG4gICAgWlNURDogXCJaU1REXCIsXG59O1xuY29uc3QgSW5wdXRGb3JtYXQgPSB7XG4gICAgQ1NWOiBcIkNTVlwiLFxuICAgIERZTkFNT0RCX0pTT046IFwiRFlOQU1PREJfSlNPTlwiLFxuICAgIElPTjogXCJJT05cIixcbn07XG5jb25zdCBEZXN0aW5hdGlvblN0YXR1cyA9IHtcbiAgICBBQ1RJVkU6IFwiQUNUSVZFXCIsXG4gICAgRElTQUJMRUQ6IFwiRElTQUJMRURcIixcbiAgICBESVNBQkxJTkc6IFwiRElTQUJMSU5HXCIsXG4gICAgRU5BQkxFX0ZBSUxFRDogXCJFTkFCTEVfRkFJTEVEXCIsXG4gICAgRU5BQkxJTkc6IFwiRU5BQkxJTkdcIixcbiAgICBVUERBVElORzogXCJVUERBVElOR1wiLFxufTtcbmNvbnN0IFNlbGVjdCA9IHtcbiAgICBBTExfQVRUUklCVVRFUzogXCJBTExfQVRUUklCVVRFU1wiLFxuICAgIEFMTF9QUk9KRUNURURfQVRUUklCVVRFUzogXCJBTExfUFJPSkVDVEVEX0FUVFJJQlVURVNcIixcbiAgICBDT1VOVDogXCJDT1VOVFwiLFxuICAgIFNQRUNJRklDX0FUVFJJQlVURVM6IFwiU1BFQ0lGSUNfQVRUUklCVVRFU1wiLFxufTtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiJENvbW1hbmRcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBzbWl0aHlDbGllbnQuQ29tbWFuZDsgfVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX0NsaWVudFwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHNtaXRoeUNsaWVudC5DbGllbnQ7IH1cbn0pO1xuZXhwb3J0cy5BcHByb3hpbWF0ZUNyZWF0aW9uRGF0ZVRpbWVQcmVjaXNpb24gPSBBcHByb3hpbWF0ZUNyZWF0aW9uRGF0ZVRpbWVQcmVjaXNpb247XG5leHBvcnRzLkFyY2hpdmFsU3VtbWFyeSQgPSBBcmNoaXZhbFN1bW1hcnkkO1xuZXhwb3J0cy5BdHRyaWJ1dGVBY3Rpb24gPSBBdHRyaWJ1dGVBY3Rpb247XG5leHBvcnRzLkF0dHJpYnV0ZURlZmluaXRpb24kID0gQXR0cmlidXRlRGVmaW5pdGlvbiQ7XG5leHBvcnRzLkF0dHJpYnV0ZVZhbHVlJCA9IEF0dHJpYnV0ZVZhbHVlJDtcbmV4cG9ydHMuQXR0cmlidXRlVmFsdWVVcGRhdGUkID0gQXR0cmlidXRlVmFsdWVVcGRhdGUkO1xuZXhwb3J0cy5BdXRvU2NhbGluZ1BvbGljeURlc2NyaXB0aW9uJCA9IEF1dG9TY2FsaW5nUG9saWN5RGVzY3JpcHRpb24kO1xuZXhwb3J0cy5BdXRvU2NhbGluZ1BvbGljeVVwZGF0ZSQgPSBBdXRvU2NhbGluZ1BvbGljeVVwZGF0ZSQ7XG5leHBvcnRzLkF1dG9TY2FsaW5nU2V0dGluZ3NEZXNjcmlwdGlvbiQgPSBBdXRvU2NhbGluZ1NldHRpbmdzRGVzY3JpcHRpb24kO1xuZXhwb3J0cy5BdXRvU2NhbGluZ1NldHRpbmdzVXBkYXRlJCA9IEF1dG9TY2FsaW5nU2V0dGluZ3NVcGRhdGUkO1xuZXhwb3J0cy5BdXRvU2NhbGluZ1RhcmdldFRyYWNraW5nU2NhbGluZ1BvbGljeUNvbmZpZ3VyYXRpb25EZXNjcmlwdGlvbiQgPSBBdXRvU2NhbGluZ1RhcmdldFRyYWNraW5nU2NhbGluZ1BvbGljeUNvbmZpZ3VyYXRpb25EZXNjcmlwdGlvbiQ7XG5leHBvcnRzLkF1dG9TY2FsaW5nVGFyZ2V0VHJhY2tpbmdTY2FsaW5nUG9saWN5Q29uZmlndXJhdGlvblVwZGF0ZSQgPSBBdXRvU2NhbGluZ1RhcmdldFRyYWNraW5nU2NhbGluZ1BvbGljeUNvbmZpZ3VyYXRpb25VcGRhdGUkO1xuZXhwb3J0cy5CYWNrdXBEZXNjcmlwdGlvbiQgPSBCYWNrdXBEZXNjcmlwdGlvbiQ7XG5leHBvcnRzLkJhY2t1cERldGFpbHMkID0gQmFja3VwRGV0YWlscyQ7XG5leHBvcnRzLkJhY2t1cEluVXNlRXhjZXB0aW9uID0gQmFja3VwSW5Vc2VFeGNlcHRpb247XG5leHBvcnRzLkJhY2t1cEluVXNlRXhjZXB0aW9uJCA9IEJhY2t1cEluVXNlRXhjZXB0aW9uJDtcbmV4cG9ydHMuQmFja3VwTm90Rm91bmRFeGNlcHRpb24gPSBCYWNrdXBOb3RGb3VuZEV4Y2VwdGlvbjtcbmV4cG9ydHMuQmFja3VwTm90Rm91bmRFeGNlcHRpb24kID0gQmFja3VwTm90Rm91bmRFeGNlcHRpb24kO1xuZXhwb3J0cy5CYWNrdXBTdGF0dXMgPSBCYWNrdXBTdGF0dXM7XG5leHBvcnRzLkJhY2t1cFN1bW1hcnkkID0gQmFja3VwU3VtbWFyeSQ7XG5leHBvcnRzLkJhY2t1cFR5cGUgPSBCYWNrdXBUeXBlO1xuZXhwb3J0cy5CYWNrdXBUeXBlRmlsdGVyID0gQmFja3VwVHlwZUZpbHRlcjtcbmV4cG9ydHMuQmF0Y2hFeGVjdXRlU3RhdGVtZW50JCA9IEJhdGNoRXhlY3V0ZVN0YXRlbWVudCQ7XG5leHBvcnRzLkJhdGNoRXhlY3V0ZVN0YXRlbWVudENvbW1hbmQgPSBCYXRjaEV4ZWN1dGVTdGF0ZW1lbnRDb21tYW5kO1xuZXhwb3J0cy5CYXRjaEV4ZWN1dGVTdGF0ZW1lbnRJbnB1dCQgPSBCYXRjaEV4ZWN1dGVTdGF0ZW1lbnRJbnB1dCQ7XG5leHBvcnRzLkJhdGNoRXhlY3V0ZVN0YXRlbWVudE91dHB1dCQgPSBCYXRjaEV4ZWN1dGVTdGF0ZW1lbnRPdXRwdXQkO1xuZXhwb3J0cy5CYXRjaEdldEl0ZW0kID0gQmF0Y2hHZXRJdGVtJDtcbmV4cG9ydHMuQmF0Y2hHZXRJdGVtQ29tbWFuZCA9IEJhdGNoR2V0SXRlbUNvbW1hbmQ7XG5leHBvcnRzLkJhdGNoR2V0SXRlbUlucHV0JCA9IEJhdGNoR2V0SXRlbUlucHV0JDtcbmV4cG9ydHMuQmF0Y2hHZXRJdGVtT3V0cHV0JCA9IEJhdGNoR2V0SXRlbU91dHB1dCQ7XG5leHBvcnRzLkJhdGNoU3RhdGVtZW50RXJyb3IkID0gQmF0Y2hTdGF0ZW1lbnRFcnJvciQ7XG5leHBvcnRzLkJhdGNoU3RhdGVtZW50RXJyb3JDb2RlRW51bSA9IEJhdGNoU3RhdGVtZW50RXJyb3JDb2RlRW51bTtcbmV4cG9ydHMuQmF0Y2hTdGF0ZW1lbnRSZXF1ZXN0JCA9IEJhdGNoU3RhdGVtZW50UmVxdWVzdCQ7XG5leHBvcnRzLkJhdGNoU3RhdGVtZW50UmVzcG9uc2UkID0gQmF0Y2hTdGF0ZW1lbnRSZXNwb25zZSQ7XG5leHBvcnRzLkJhdGNoV3JpdGVJdGVtJCA9IEJhdGNoV3JpdGVJdGVtJDtcbmV4cG9ydHMuQmF0Y2hXcml0ZUl0ZW1Db21tYW5kID0gQmF0Y2hXcml0ZUl0ZW1Db21tYW5kO1xuZXhwb3J0cy5CYXRjaFdyaXRlSXRlbUlucHV0JCA9IEJhdGNoV3JpdGVJdGVtSW5wdXQkO1xuZXhwb3J0cy5CYXRjaFdyaXRlSXRlbU91dHB1dCQgPSBCYXRjaFdyaXRlSXRlbU91dHB1dCQ7XG5leHBvcnRzLkJpbGxpbmdNb2RlID0gQmlsbGluZ01vZGU7XG5leHBvcnRzLkJpbGxpbmdNb2RlU3VtbWFyeSQgPSBCaWxsaW5nTW9kZVN1bW1hcnkkO1xuZXhwb3J0cy5DYW5jZWxsYXRpb25SZWFzb24kID0gQ2FuY2VsbGF0aW9uUmVhc29uJDtcbmV4cG9ydHMuQ2FwYWNpdHkkID0gQ2FwYWNpdHkkO1xuZXhwb3J0cy5Db21wYXJpc29uT3BlcmF0b3IgPSBDb21wYXJpc29uT3BlcmF0b3I7XG5leHBvcnRzLkNvbmRpdGlvbiQgPSBDb25kaXRpb24kO1xuZXhwb3J0cy5Db25kaXRpb25DaGVjayQgPSBDb25kaXRpb25DaGVjayQ7XG5leHBvcnRzLkNvbmRpdGlvbmFsQ2hlY2tGYWlsZWRFeGNlcHRpb24gPSBDb25kaXRpb25hbENoZWNrRmFpbGVkRXhjZXB0aW9uO1xuZXhwb3J0cy5Db25kaXRpb25hbENoZWNrRmFpbGVkRXhjZXB0aW9uJCA9IENvbmRpdGlvbmFsQ2hlY2tGYWlsZWRFeGNlcHRpb24kO1xuZXhwb3J0cy5Db25kaXRpb25hbE9wZXJhdG9yID0gQ29uZGl0aW9uYWxPcGVyYXRvcjtcbmV4cG9ydHMuQ29uc3VtZWRDYXBhY2l0eSQgPSBDb25zdW1lZENhcGFjaXR5JDtcbmV4cG9ydHMuQ29udGludW91c0JhY2t1cHNEZXNjcmlwdGlvbiQgPSBDb250aW51b3VzQmFja3Vwc0Rlc2NyaXB0aW9uJDtcbmV4cG9ydHMuQ29udGludW91c0JhY2t1cHNTdGF0dXMgPSBDb250aW51b3VzQmFja3Vwc1N0YXR1cztcbmV4cG9ydHMuQ29udGludW91c0JhY2t1cHNVbmF2YWlsYWJsZUV4Y2VwdGlvbiA9IENvbnRpbnVvdXNCYWNrdXBzVW5hdmFpbGFibGVFeGNlcHRpb247XG5leHBvcnRzLkNvbnRpbnVvdXNCYWNrdXBzVW5hdmFpbGFibGVFeGNlcHRpb24kID0gQ29udGludW91c0JhY2t1cHNVbmF2YWlsYWJsZUV4Y2VwdGlvbiQ7XG5leHBvcnRzLkNvbnRyaWJ1dG9ySW5zaWdodHNBY3Rpb24gPSBDb250cmlidXRvckluc2lnaHRzQWN0aW9uO1xuZXhwb3J0cy5Db250cmlidXRvckluc2lnaHRzTW9kZSA9IENvbnRyaWJ1dG9ySW5zaWdodHNNb2RlO1xuZXhwb3J0cy5Db250cmlidXRvckluc2lnaHRzU3RhdHVzID0gQ29udHJpYnV0b3JJbnNpZ2h0c1N0YXR1cztcbmV4cG9ydHMuQ29udHJpYnV0b3JJbnNpZ2h0c1N1bW1hcnkkID0gQ29udHJpYnV0b3JJbnNpZ2h0c1N1bW1hcnkkO1xuZXhwb3J0cy5DcmVhdGVCYWNrdXAkID0gQ3JlYXRlQmFja3VwJDtcbmV4cG9ydHMuQ3JlYXRlQmFja3VwQ29tbWFuZCA9IENyZWF0ZUJhY2t1cENvbW1hbmQ7XG5leHBvcnRzLkNyZWF0ZUJhY2t1cElucHV0JCA9IENyZWF0ZUJhY2t1cElucHV0JDtcbmV4cG9ydHMuQ3JlYXRlQmFja3VwT3V0cHV0JCA9IENyZWF0ZUJhY2t1cE91dHB1dCQ7XG5leHBvcnRzLkNyZWF0ZUdsb2JhbFNlY29uZGFyeUluZGV4QWN0aW9uJCA9IENyZWF0ZUdsb2JhbFNlY29uZGFyeUluZGV4QWN0aW9uJDtcbmV4cG9ydHMuQ3JlYXRlR2xvYmFsVGFibGUkID0gQ3JlYXRlR2xvYmFsVGFibGUkO1xuZXhwb3J0cy5DcmVhdGVHbG9iYWxUYWJsZUNvbW1hbmQgPSBDcmVhdGVHbG9iYWxUYWJsZUNvbW1hbmQ7XG5leHBvcnRzLkNyZWF0ZUdsb2JhbFRhYmxlSW5wdXQkID0gQ3JlYXRlR2xvYmFsVGFibGVJbnB1dCQ7XG5leHBvcnRzLkNyZWF0ZUdsb2JhbFRhYmxlT3V0cHV0JCA9IENyZWF0ZUdsb2JhbFRhYmxlT3V0cHV0JDtcbmV4cG9ydHMuQ3JlYXRlR2xvYmFsVGFibGVXaXRuZXNzR3JvdXBNZW1iZXJBY3Rpb24kID0gQ3JlYXRlR2xvYmFsVGFibGVXaXRuZXNzR3JvdXBNZW1iZXJBY3Rpb24kO1xuZXhwb3J0cy5DcmVhdGVSZXBsaWNhQWN0aW9uJCA9IENyZWF0ZVJlcGxpY2FBY3Rpb24kO1xuZXhwb3J0cy5DcmVhdGVSZXBsaWNhdGlvbkdyb3VwTWVtYmVyQWN0aW9uJCA9IENyZWF0ZVJlcGxpY2F0aW9uR3JvdXBNZW1iZXJBY3Rpb24kO1xuZXhwb3J0cy5DcmVhdGVUYWJsZSQgPSBDcmVhdGVUYWJsZSQ7XG5leHBvcnRzLkNyZWF0ZVRhYmxlQ29tbWFuZCA9IENyZWF0ZVRhYmxlQ29tbWFuZDtcbmV4cG9ydHMuQ3JlYXRlVGFibGVJbnB1dCQgPSBDcmVhdGVUYWJsZUlucHV0JDtcbmV4cG9ydHMuQ3JlYXRlVGFibGVPdXRwdXQkID0gQ3JlYXRlVGFibGVPdXRwdXQkO1xuZXhwb3J0cy5Dc3ZPcHRpb25zJCA9IENzdk9wdGlvbnMkO1xuZXhwb3J0cy5EZWxldGUkID0gRGVsZXRlJDtcbmV4cG9ydHMuRGVsZXRlQmFja3VwJCA9IERlbGV0ZUJhY2t1cCQ7XG5leHBvcnRzLkRlbGV0ZUJhY2t1cENvbW1hbmQgPSBEZWxldGVCYWNrdXBDb21tYW5kO1xuZXhwb3J0cy5EZWxldGVCYWNrdXBJbnB1dCQgPSBEZWxldGVCYWNrdXBJbnB1dCQ7XG5leHBvcnRzLkRlbGV0ZUJhY2t1cE91dHB1dCQgPSBEZWxldGVCYWNrdXBPdXRwdXQkO1xuZXhwb3J0cy5EZWxldGVHbG9iYWxTZWNvbmRhcnlJbmRleEFjdGlvbiQgPSBEZWxldGVHbG9iYWxTZWNvbmRhcnlJbmRleEFjdGlvbiQ7XG5leHBvcnRzLkRlbGV0ZUdsb2JhbFRhYmxlV2l0bmVzc0dyb3VwTWVtYmVyQWN0aW9uJCA9IERlbGV0ZUdsb2JhbFRhYmxlV2l0bmVzc0dyb3VwTWVtYmVyQWN0aW9uJDtcbmV4cG9ydHMuRGVsZXRlSXRlbSQgPSBEZWxldGVJdGVtJDtcbmV4cG9ydHMuRGVsZXRlSXRlbUNvbW1hbmQgPSBEZWxldGVJdGVtQ29tbWFuZDtcbmV4cG9ydHMuRGVsZXRlSXRlbUlucHV0JCA9IERlbGV0ZUl0ZW1JbnB1dCQ7XG5leHBvcnRzLkRlbGV0ZUl0ZW1PdXRwdXQkID0gRGVsZXRlSXRlbU91dHB1dCQ7XG5leHBvcnRzLkRlbGV0ZVJlcGxpY2FBY3Rpb24kID0gRGVsZXRlUmVwbGljYUFjdGlvbiQ7XG5leHBvcnRzLkRlbGV0ZVJlcGxpY2F0aW9uR3JvdXBNZW1iZXJBY3Rpb24kID0gRGVsZXRlUmVwbGljYXRpb25Hcm91cE1lbWJlckFjdGlvbiQ7XG5leHBvcnRzLkRlbGV0ZVJlcXVlc3QkID0gRGVsZXRlUmVxdWVzdCQ7XG5leHBvcnRzLkRlbGV0ZVJlc291cmNlUG9saWN5JCA9IERlbGV0ZVJlc291cmNlUG9saWN5JDtcbmV4cG9ydHMuRGVsZXRlUmVzb3VyY2VQb2xpY3lDb21tYW5kID0gRGVsZXRlUmVzb3VyY2VQb2xpY3lDb21tYW5kO1xuZXhwb3J0cy5EZWxldGVSZXNvdXJjZVBvbGljeUlucHV0JCA9IERlbGV0ZVJlc291cmNlUG9saWN5SW5wdXQkO1xuZXhwb3J0cy5EZWxldGVSZXNvdXJjZVBvbGljeU91dHB1dCQgPSBEZWxldGVSZXNvdXJjZVBvbGljeU91dHB1dCQ7XG5leHBvcnRzLkRlbGV0ZVRhYmxlJCA9IERlbGV0ZVRhYmxlJDtcbmV4cG9ydHMuRGVsZXRlVGFibGVDb21tYW5kID0gRGVsZXRlVGFibGVDb21tYW5kO1xuZXhwb3J0cy5EZWxldGVUYWJsZUlucHV0JCA9IERlbGV0ZVRhYmxlSW5wdXQkO1xuZXhwb3J0cy5EZWxldGVUYWJsZU91dHB1dCQgPSBEZWxldGVUYWJsZU91dHB1dCQ7XG5leHBvcnRzLkRlc2NyaWJlQmFja3VwJCA9IERlc2NyaWJlQmFja3VwJDtcbmV4cG9ydHMuRGVzY3JpYmVCYWNrdXBDb21tYW5kID0gRGVzY3JpYmVCYWNrdXBDb21tYW5kO1xuZXhwb3J0cy5EZXNjcmliZUJhY2t1cElucHV0JCA9IERlc2NyaWJlQmFja3VwSW5wdXQkO1xuZXhwb3J0cy5EZXNjcmliZUJhY2t1cE91dHB1dCQgPSBEZXNjcmliZUJhY2t1cE91dHB1dCQ7XG5leHBvcnRzLkRlc2NyaWJlQ29udGludW91c0JhY2t1cHMkID0gRGVzY3JpYmVDb250aW51b3VzQmFja3VwcyQ7XG5leHBvcnRzLkRlc2NyaWJlQ29udGludW91c0JhY2t1cHNDb21tYW5kID0gRGVzY3JpYmVDb250aW51b3VzQmFja3Vwc0NvbW1hbmQ7XG5leHBvcnRzLkRlc2NyaWJlQ29udGludW91c0JhY2t1cHNJbnB1dCQgPSBEZXNjcmliZUNvbnRpbnVvdXNCYWNrdXBzSW5wdXQkO1xuZXhwb3J0cy5EZXNjcmliZUNvbnRpbnVvdXNCYWNrdXBzT3V0cHV0JCA9IERlc2NyaWJlQ29udGludW91c0JhY2t1cHNPdXRwdXQkO1xuZXhwb3J0cy5EZXNjcmliZUNvbnRyaWJ1dG9ySW5zaWdodHMkID0gRGVzY3JpYmVDb250cmlidXRvckluc2lnaHRzJDtcbmV4cG9ydHMuRGVzY3JpYmVDb250cmlidXRvckluc2lnaHRzQ29tbWFuZCA9IERlc2NyaWJlQ29udHJpYnV0b3JJbnNpZ2h0c0NvbW1hbmQ7XG5leHBvcnRzLkRlc2NyaWJlQ29udHJpYnV0b3JJbnNpZ2h0c0lucHV0JCA9IERlc2NyaWJlQ29udHJpYnV0b3JJbnNpZ2h0c0lucHV0JDtcbmV4cG9ydHMuRGVzY3JpYmVDb250cmlidXRvckluc2lnaHRzT3V0cHV0JCA9IERlc2NyaWJlQ29udHJpYnV0b3JJbnNpZ2h0c091dHB1dCQ7XG5leHBvcnRzLkRlc2NyaWJlRW5kcG9pbnRzJCA9IERlc2NyaWJlRW5kcG9pbnRzJDtcbmV4cG9ydHMuRGVzY3JpYmVFbmRwb2ludHNDb21tYW5kID0gRGVzY3JpYmVFbmRwb2ludHNDb21tYW5kO1xuZXhwb3J0cy5EZXNjcmliZUVuZHBvaW50c1JlcXVlc3QkID0gRGVzY3JpYmVFbmRwb2ludHNSZXF1ZXN0JDtcbmV4cG9ydHMuRGVzY3JpYmVFbmRwb2ludHNSZXNwb25zZSQgPSBEZXNjcmliZUVuZHBvaW50c1Jlc3BvbnNlJDtcbmV4cG9ydHMuRGVzY3JpYmVFeHBvcnQkID0gRGVzY3JpYmVFeHBvcnQkO1xuZXhwb3J0cy5EZXNjcmliZUV4cG9ydENvbW1hbmQgPSBEZXNjcmliZUV4cG9ydENvbW1hbmQ7XG5leHBvcnRzLkRlc2NyaWJlRXhwb3J0SW5wdXQkID0gRGVzY3JpYmVFeHBvcnRJbnB1dCQ7XG5leHBvcnRzLkRlc2NyaWJlRXhwb3J0T3V0cHV0JCA9IERlc2NyaWJlRXhwb3J0T3V0cHV0JDtcbmV4cG9ydHMuRGVzY3JpYmVHbG9iYWxUYWJsZSQgPSBEZXNjcmliZUdsb2JhbFRhYmxlJDtcbmV4cG9ydHMuRGVzY3JpYmVHbG9iYWxUYWJsZUNvbW1hbmQgPSBEZXNjcmliZUdsb2JhbFRhYmxlQ29tbWFuZDtcbmV4cG9ydHMuRGVzY3JpYmVHbG9iYWxUYWJsZUlucHV0JCA9IERlc2NyaWJlR2xvYmFsVGFibGVJbnB1dCQ7XG5leHBvcnRzLkRlc2NyaWJlR2xvYmFsVGFibGVPdXRwdXQkID0gRGVzY3JpYmVHbG9iYWxUYWJsZU91dHB1dCQ7XG5leHBvcnRzLkRlc2NyaWJlR2xvYmFsVGFibGVTZXR0aW5ncyQgPSBEZXNjcmliZUdsb2JhbFRhYmxlU2V0dGluZ3MkO1xuZXhwb3J0cy5EZXNjcmliZUdsb2JhbFRhYmxlU2V0dGluZ3NDb21tYW5kID0gRGVzY3JpYmVHbG9iYWxUYWJsZVNldHRpbmdzQ29tbWFuZDtcbmV4cG9ydHMuRGVzY3JpYmVHbG9iYWxUYWJsZVNldHRpbmdzSW5wdXQkID0gRGVzY3JpYmVHbG9iYWxUYWJsZVNldHRpbmdzSW5wdXQkO1xuZXhwb3J0cy5EZXNjcmliZUdsb2JhbFRhYmxlU2V0dGluZ3NPdXRwdXQkID0gRGVzY3JpYmVHbG9iYWxUYWJsZVNldHRpbmdzT3V0cHV0JDtcbmV4cG9ydHMuRGVzY3JpYmVJbXBvcnQkID0gRGVzY3JpYmVJbXBvcnQkO1xuZXhwb3J0cy5EZXNjcmliZUltcG9ydENvbW1hbmQgPSBEZXNjcmliZUltcG9ydENvbW1hbmQ7XG5leHBvcnRzLkRlc2NyaWJlSW1wb3J0SW5wdXQkID0gRGVzY3JpYmVJbXBvcnRJbnB1dCQ7XG5leHBvcnRzLkRlc2NyaWJlSW1wb3J0T3V0cHV0JCA9IERlc2NyaWJlSW1wb3J0T3V0cHV0JDtcbmV4cG9ydHMuRGVzY3JpYmVLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb24kID0gRGVzY3JpYmVLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb24kO1xuZXhwb3J0cy5EZXNjcmliZUtpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvbkNvbW1hbmQgPSBEZXNjcmliZUtpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvbkNvbW1hbmQ7XG5leHBvcnRzLkRlc2NyaWJlS2luZXNpc1N0cmVhbWluZ0Rlc3RpbmF0aW9uSW5wdXQkID0gRGVzY3JpYmVLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb25JbnB1dCQ7XG5leHBvcnRzLkRlc2NyaWJlS2luZXNpc1N0cmVhbWluZ0Rlc3RpbmF0aW9uT3V0cHV0JCA9IERlc2NyaWJlS2luZXNpc1N0cmVhbWluZ0Rlc3RpbmF0aW9uT3V0cHV0JDtcbmV4cG9ydHMuRGVzY3JpYmVMaW1pdHMkID0gRGVzY3JpYmVMaW1pdHMkO1xuZXhwb3J0cy5EZXNjcmliZUxpbWl0c0NvbW1hbmQgPSBEZXNjcmliZUxpbWl0c0NvbW1hbmQ7XG5leHBvcnRzLkRlc2NyaWJlTGltaXRzSW5wdXQkID0gRGVzY3JpYmVMaW1pdHNJbnB1dCQ7XG5leHBvcnRzLkRlc2NyaWJlTGltaXRzT3V0cHV0JCA9IERlc2NyaWJlTGltaXRzT3V0cHV0JDtcbmV4cG9ydHMuRGVzY3JpYmVUYWJsZSQgPSBEZXNjcmliZVRhYmxlJDtcbmV4cG9ydHMuRGVzY3JpYmVUYWJsZUNvbW1hbmQgPSBEZXNjcmliZVRhYmxlQ29tbWFuZDtcbmV4cG9ydHMuRGVzY3JpYmVUYWJsZUlucHV0JCA9IERlc2NyaWJlVGFibGVJbnB1dCQ7XG5leHBvcnRzLkRlc2NyaWJlVGFibGVPdXRwdXQkID0gRGVzY3JpYmVUYWJsZU91dHB1dCQ7XG5leHBvcnRzLkRlc2NyaWJlVGFibGVSZXBsaWNhQXV0b1NjYWxpbmckID0gRGVzY3JpYmVUYWJsZVJlcGxpY2FBdXRvU2NhbGluZyQ7XG5leHBvcnRzLkRlc2NyaWJlVGFibGVSZXBsaWNhQXV0b1NjYWxpbmdDb21tYW5kID0gRGVzY3JpYmVUYWJsZVJlcGxpY2FBdXRvU2NhbGluZ0NvbW1hbmQ7XG5leHBvcnRzLkRlc2NyaWJlVGFibGVSZXBsaWNhQXV0b1NjYWxpbmdJbnB1dCQgPSBEZXNjcmliZVRhYmxlUmVwbGljYUF1dG9TY2FsaW5nSW5wdXQkO1xuZXhwb3J0cy5EZXNjcmliZVRhYmxlUmVwbGljYUF1dG9TY2FsaW5nT3V0cHV0JCA9IERlc2NyaWJlVGFibGVSZXBsaWNhQXV0b1NjYWxpbmdPdXRwdXQkO1xuZXhwb3J0cy5EZXNjcmliZVRpbWVUb0xpdmUkID0gRGVzY3JpYmVUaW1lVG9MaXZlJDtcbmV4cG9ydHMuRGVzY3JpYmVUaW1lVG9MaXZlQ29tbWFuZCA9IERlc2NyaWJlVGltZVRvTGl2ZUNvbW1hbmQ7XG5leHBvcnRzLkRlc2NyaWJlVGltZVRvTGl2ZUlucHV0JCA9IERlc2NyaWJlVGltZVRvTGl2ZUlucHV0JDtcbmV4cG9ydHMuRGVzY3JpYmVUaW1lVG9MaXZlT3V0cHV0JCA9IERlc2NyaWJlVGltZVRvTGl2ZU91dHB1dCQ7XG5leHBvcnRzLkRlc3RpbmF0aW9uU3RhdHVzID0gRGVzdGluYXRpb25TdGF0dXM7XG5leHBvcnRzLkRpc2FibGVLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb24kID0gRGlzYWJsZUtpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvbiQ7XG5leHBvcnRzLkRpc2FibGVLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb25Db21tYW5kID0gRGlzYWJsZUtpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvbkNvbW1hbmQ7XG5leHBvcnRzLkR1cGxpY2F0ZUl0ZW1FeGNlcHRpb24gPSBEdXBsaWNhdGVJdGVtRXhjZXB0aW9uO1xuZXhwb3J0cy5EdXBsaWNhdGVJdGVtRXhjZXB0aW9uJCA9IER1cGxpY2F0ZUl0ZW1FeGNlcHRpb24kO1xuZXhwb3J0cy5EeW5hbW9EQiA9IER5bmFtb0RCO1xuZXhwb3J0cy5EeW5hbW9EQkNsaWVudCA9IER5bmFtb0RCQ2xpZW50O1xuZXhwb3J0cy5EeW5hbW9EQlNlcnZpY2VFeGNlcHRpb24gPSBEeW5hbW9EQlNlcnZpY2VFeGNlcHRpb247XG5leHBvcnRzLkR5bmFtb0RCU2VydmljZUV4Y2VwdGlvbiQgPSBEeW5hbW9EQlNlcnZpY2VFeGNlcHRpb24kO1xuZXhwb3J0cy5FbmFibGVLaW5lc2lzU3RyZWFtaW5nQ29uZmlndXJhdGlvbiQgPSBFbmFibGVLaW5lc2lzU3RyZWFtaW5nQ29uZmlndXJhdGlvbiQ7XG5leHBvcnRzLkVuYWJsZUtpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvbiQgPSBFbmFibGVLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb24kO1xuZXhwb3J0cy5FbmFibGVLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb25Db21tYW5kID0gRW5hYmxlS2luZXNpc1N0cmVhbWluZ0Rlc3RpbmF0aW9uQ29tbWFuZDtcbmV4cG9ydHMuRW5kcG9pbnQkID0gRW5kcG9pbnQkO1xuZXhwb3J0cy5FeGVjdXRlU3RhdGVtZW50JCA9IEV4ZWN1dGVTdGF0ZW1lbnQkO1xuZXhwb3J0cy5FeGVjdXRlU3RhdGVtZW50Q29tbWFuZCA9IEV4ZWN1dGVTdGF0ZW1lbnRDb21tYW5kO1xuZXhwb3J0cy5FeGVjdXRlU3RhdGVtZW50SW5wdXQkID0gRXhlY3V0ZVN0YXRlbWVudElucHV0JDtcbmV4cG9ydHMuRXhlY3V0ZVN0YXRlbWVudE91dHB1dCQgPSBFeGVjdXRlU3RhdGVtZW50T3V0cHV0JDtcbmV4cG9ydHMuRXhlY3V0ZVRyYW5zYWN0aW9uJCA9IEV4ZWN1dGVUcmFuc2FjdGlvbiQ7XG5leHBvcnRzLkV4ZWN1dGVUcmFuc2FjdGlvbkNvbW1hbmQgPSBFeGVjdXRlVHJhbnNhY3Rpb25Db21tYW5kO1xuZXhwb3J0cy5FeGVjdXRlVHJhbnNhY3Rpb25JbnB1dCQgPSBFeGVjdXRlVHJhbnNhY3Rpb25JbnB1dCQ7XG5leHBvcnRzLkV4ZWN1dGVUcmFuc2FjdGlvbk91dHB1dCQgPSBFeGVjdXRlVHJhbnNhY3Rpb25PdXRwdXQkO1xuZXhwb3J0cy5FeHBlY3RlZEF0dHJpYnV0ZVZhbHVlJCA9IEV4cGVjdGVkQXR0cmlidXRlVmFsdWUkO1xuZXhwb3J0cy5FeHBvcnRDb25mbGljdEV4Y2VwdGlvbiA9IEV4cG9ydENvbmZsaWN0RXhjZXB0aW9uO1xuZXhwb3J0cy5FeHBvcnRDb25mbGljdEV4Y2VwdGlvbiQgPSBFeHBvcnRDb25mbGljdEV4Y2VwdGlvbiQ7XG5leHBvcnRzLkV4cG9ydERlc2NyaXB0aW9uJCA9IEV4cG9ydERlc2NyaXB0aW9uJDtcbmV4cG9ydHMuRXhwb3J0Rm9ybWF0ID0gRXhwb3J0Rm9ybWF0O1xuZXhwb3J0cy5FeHBvcnROb3RGb3VuZEV4Y2VwdGlvbiA9IEV4cG9ydE5vdEZvdW5kRXhjZXB0aW9uO1xuZXhwb3J0cy5FeHBvcnROb3RGb3VuZEV4Y2VwdGlvbiQgPSBFeHBvcnROb3RGb3VuZEV4Y2VwdGlvbiQ7XG5leHBvcnRzLkV4cG9ydFN0YXR1cyA9IEV4cG9ydFN0YXR1cztcbmV4cG9ydHMuRXhwb3J0U3VtbWFyeSQgPSBFeHBvcnRTdW1tYXJ5JDtcbmV4cG9ydHMuRXhwb3J0VGFibGVUb1BvaW50SW5UaW1lJCA9IEV4cG9ydFRhYmxlVG9Qb2ludEluVGltZSQ7XG5leHBvcnRzLkV4cG9ydFRhYmxlVG9Qb2ludEluVGltZUNvbW1hbmQgPSBFeHBvcnRUYWJsZVRvUG9pbnRJblRpbWVDb21tYW5kO1xuZXhwb3J0cy5FeHBvcnRUYWJsZVRvUG9pbnRJblRpbWVJbnB1dCQgPSBFeHBvcnRUYWJsZVRvUG9pbnRJblRpbWVJbnB1dCQ7XG5leHBvcnRzLkV4cG9ydFRhYmxlVG9Qb2ludEluVGltZU91dHB1dCQgPSBFeHBvcnRUYWJsZVRvUG9pbnRJblRpbWVPdXRwdXQkO1xuZXhwb3J0cy5FeHBvcnRUeXBlID0gRXhwb3J0VHlwZTtcbmV4cG9ydHMuRXhwb3J0Vmlld1R5cGUgPSBFeHBvcnRWaWV3VHlwZTtcbmV4cG9ydHMuRmFpbHVyZUV4Y2VwdGlvbiQgPSBGYWlsdXJlRXhjZXB0aW9uJDtcbmV4cG9ydHMuR2V0JCA9IEdldCQ7XG5leHBvcnRzLkdldEl0ZW0kID0gR2V0SXRlbSQ7XG5leHBvcnRzLkdldEl0ZW1Db21tYW5kID0gR2V0SXRlbUNvbW1hbmQ7XG5leHBvcnRzLkdldEl0ZW1JbnB1dCQgPSBHZXRJdGVtSW5wdXQkO1xuZXhwb3J0cy5HZXRJdGVtT3V0cHV0JCA9IEdldEl0ZW1PdXRwdXQkO1xuZXhwb3J0cy5HZXRSZXNvdXJjZVBvbGljeSQgPSBHZXRSZXNvdXJjZVBvbGljeSQ7XG5leHBvcnRzLkdldFJlc291cmNlUG9saWN5Q29tbWFuZCA9IEdldFJlc291cmNlUG9saWN5Q29tbWFuZDtcbmV4cG9ydHMuR2V0UmVzb3VyY2VQb2xpY3lJbnB1dCQgPSBHZXRSZXNvdXJjZVBvbGljeUlucHV0JDtcbmV4cG9ydHMuR2V0UmVzb3VyY2VQb2xpY3lPdXRwdXQkID0gR2V0UmVzb3VyY2VQb2xpY3lPdXRwdXQkO1xuZXhwb3J0cy5HbG9iYWxTZWNvbmRhcnlJbmRleCQgPSBHbG9iYWxTZWNvbmRhcnlJbmRleCQ7XG5leHBvcnRzLkdsb2JhbFNlY29uZGFyeUluZGV4QXV0b1NjYWxpbmdVcGRhdGUkID0gR2xvYmFsU2Vjb25kYXJ5SW5kZXhBdXRvU2NhbGluZ1VwZGF0ZSQ7XG5leHBvcnRzLkdsb2JhbFNlY29uZGFyeUluZGV4RGVzY3JpcHRpb24kID0gR2xvYmFsU2Vjb25kYXJ5SW5kZXhEZXNjcmlwdGlvbiQ7XG5leHBvcnRzLkdsb2JhbFNlY29uZGFyeUluZGV4SW5mbyQgPSBHbG9iYWxTZWNvbmRhcnlJbmRleEluZm8kO1xuZXhwb3J0cy5HbG9iYWxTZWNvbmRhcnlJbmRleFVwZGF0ZSQgPSBHbG9iYWxTZWNvbmRhcnlJbmRleFVwZGF0ZSQ7XG5leHBvcnRzLkdsb2JhbFNlY29uZGFyeUluZGV4V2FybVRocm91Z2hwdXREZXNjcmlwdGlvbiQgPSBHbG9iYWxTZWNvbmRhcnlJbmRleFdhcm1UaHJvdWdocHV0RGVzY3JpcHRpb24kO1xuZXhwb3J0cy5HbG9iYWxUYWJsZSQgPSBHbG9iYWxUYWJsZSQ7XG5leHBvcnRzLkdsb2JhbFRhYmxlQWxyZWFkeUV4aXN0c0V4Y2VwdGlvbiA9IEdsb2JhbFRhYmxlQWxyZWFkeUV4aXN0c0V4Y2VwdGlvbjtcbmV4cG9ydHMuR2xvYmFsVGFibGVBbHJlYWR5RXhpc3RzRXhjZXB0aW9uJCA9IEdsb2JhbFRhYmxlQWxyZWFkeUV4aXN0c0V4Y2VwdGlvbiQ7XG5leHBvcnRzLkdsb2JhbFRhYmxlRGVzY3JpcHRpb24kID0gR2xvYmFsVGFibGVEZXNjcmlwdGlvbiQ7XG5leHBvcnRzLkdsb2JhbFRhYmxlR2xvYmFsU2Vjb25kYXJ5SW5kZXhTZXR0aW5nc1VwZGF0ZSQgPSBHbG9iYWxUYWJsZUdsb2JhbFNlY29uZGFyeUluZGV4U2V0dGluZ3NVcGRhdGUkO1xuZXhwb3J0cy5HbG9iYWxUYWJsZU5vdEZvdW5kRXhjZXB0aW9uID0gR2xvYmFsVGFibGVOb3RGb3VuZEV4Y2VwdGlvbjtcbmV4cG9ydHMuR2xvYmFsVGFibGVOb3RGb3VuZEV4Y2VwdGlvbiQgPSBHbG9iYWxUYWJsZU5vdEZvdW5kRXhjZXB0aW9uJDtcbmV4cG9ydHMuR2xvYmFsVGFibGVTdGF0dXMgPSBHbG9iYWxUYWJsZVN0YXR1cztcbmV4cG9ydHMuR2xvYmFsVGFibGVXaXRuZXNzRGVzY3JpcHRpb24kID0gR2xvYmFsVGFibGVXaXRuZXNzRGVzY3JpcHRpb24kO1xuZXhwb3J0cy5HbG9iYWxUYWJsZVdpdG5lc3NHcm91cFVwZGF0ZSQgPSBHbG9iYWxUYWJsZVdpdG5lc3NHcm91cFVwZGF0ZSQ7XG5leHBvcnRzLklkZW1wb3RlbnRQYXJhbWV0ZXJNaXNtYXRjaEV4Y2VwdGlvbiA9IElkZW1wb3RlbnRQYXJhbWV0ZXJNaXNtYXRjaEV4Y2VwdGlvbjtcbmV4cG9ydHMuSWRlbXBvdGVudFBhcmFtZXRlck1pc21hdGNoRXhjZXB0aW9uJCA9IElkZW1wb3RlbnRQYXJhbWV0ZXJNaXNtYXRjaEV4Y2VwdGlvbiQ7XG5leHBvcnRzLkltcG9ydENvbmZsaWN0RXhjZXB0aW9uID0gSW1wb3J0Q29uZmxpY3RFeGNlcHRpb247XG5leHBvcnRzLkltcG9ydENvbmZsaWN0RXhjZXB0aW9uJCA9IEltcG9ydENvbmZsaWN0RXhjZXB0aW9uJDtcbmV4cG9ydHMuSW1wb3J0Tm90Rm91bmRFeGNlcHRpb24gPSBJbXBvcnROb3RGb3VuZEV4Y2VwdGlvbjtcbmV4cG9ydHMuSW1wb3J0Tm90Rm91bmRFeGNlcHRpb24kID0gSW1wb3J0Tm90Rm91bmRFeGNlcHRpb24kO1xuZXhwb3J0cy5JbXBvcnRTdGF0dXMgPSBJbXBvcnRTdGF0dXM7XG5leHBvcnRzLkltcG9ydFN1bW1hcnkkID0gSW1wb3J0U3VtbWFyeSQ7XG5leHBvcnRzLkltcG9ydFRhYmxlJCA9IEltcG9ydFRhYmxlJDtcbmV4cG9ydHMuSW1wb3J0VGFibGVDb21tYW5kID0gSW1wb3J0VGFibGVDb21tYW5kO1xuZXhwb3J0cy5JbXBvcnRUYWJsZURlc2NyaXB0aW9uJCA9IEltcG9ydFRhYmxlRGVzY3JpcHRpb24kO1xuZXhwb3J0cy5JbXBvcnRUYWJsZUlucHV0JCA9IEltcG9ydFRhYmxlSW5wdXQkO1xuZXhwb3J0cy5JbXBvcnRUYWJsZU91dHB1dCQgPSBJbXBvcnRUYWJsZU91dHB1dCQ7XG5leHBvcnRzLkluY3JlbWVudGFsRXhwb3J0U3BlY2lmaWNhdGlvbiQgPSBJbmNyZW1lbnRhbEV4cG9ydFNwZWNpZmljYXRpb24kO1xuZXhwb3J0cy5JbmRleE5vdEZvdW5kRXhjZXB0aW9uID0gSW5kZXhOb3RGb3VuZEV4Y2VwdGlvbjtcbmV4cG9ydHMuSW5kZXhOb3RGb3VuZEV4Y2VwdGlvbiQgPSBJbmRleE5vdEZvdW5kRXhjZXB0aW9uJDtcbmV4cG9ydHMuSW5kZXhTdGF0dXMgPSBJbmRleFN0YXR1cztcbmV4cG9ydHMuSW5wdXRDb21wcmVzc2lvblR5cGUgPSBJbnB1dENvbXByZXNzaW9uVHlwZTtcbmV4cG9ydHMuSW5wdXRGb3JtYXQgPSBJbnB1dEZvcm1hdDtcbmV4cG9ydHMuSW5wdXRGb3JtYXRPcHRpb25zJCA9IElucHV0Rm9ybWF0T3B0aW9ucyQ7XG5leHBvcnRzLkludGVybmFsU2VydmVyRXJyb3IgPSBJbnRlcm5hbFNlcnZlckVycm9yO1xuZXhwb3J0cy5JbnRlcm5hbFNlcnZlckVycm9yJCA9IEludGVybmFsU2VydmVyRXJyb3IkO1xuZXhwb3J0cy5JbnZhbGlkRW5kcG9pbnRFeGNlcHRpb24gPSBJbnZhbGlkRW5kcG9pbnRFeGNlcHRpb247XG5leHBvcnRzLkludmFsaWRFbmRwb2ludEV4Y2VwdGlvbiQgPSBJbnZhbGlkRW5kcG9pbnRFeGNlcHRpb24kO1xuZXhwb3J0cy5JbnZhbGlkRXhwb3J0VGltZUV4Y2VwdGlvbiA9IEludmFsaWRFeHBvcnRUaW1lRXhjZXB0aW9uO1xuZXhwb3J0cy5JbnZhbGlkRXhwb3J0VGltZUV4Y2VwdGlvbiQgPSBJbnZhbGlkRXhwb3J0VGltZUV4Y2VwdGlvbiQ7XG5leHBvcnRzLkludmFsaWRSZXN0b3JlVGltZUV4Y2VwdGlvbiA9IEludmFsaWRSZXN0b3JlVGltZUV4Y2VwdGlvbjtcbmV4cG9ydHMuSW52YWxpZFJlc3RvcmVUaW1lRXhjZXB0aW9uJCA9IEludmFsaWRSZXN0b3JlVGltZUV4Y2VwdGlvbiQ7XG5leHBvcnRzLkl0ZW1Db2xsZWN0aW9uTWV0cmljcyQgPSBJdGVtQ29sbGVjdGlvbk1ldHJpY3MkO1xuZXhwb3J0cy5JdGVtQ29sbGVjdGlvblNpemVMaW1pdEV4Y2VlZGVkRXhjZXB0aW9uID0gSXRlbUNvbGxlY3Rpb25TaXplTGltaXRFeGNlZWRlZEV4Y2VwdGlvbjtcbmV4cG9ydHMuSXRlbUNvbGxlY3Rpb25TaXplTGltaXRFeGNlZWRlZEV4Y2VwdGlvbiQgPSBJdGVtQ29sbGVjdGlvblNpemVMaW1pdEV4Y2VlZGVkRXhjZXB0aW9uJDtcbmV4cG9ydHMuSXRlbVJlc3BvbnNlJCA9IEl0ZW1SZXNwb25zZSQ7XG5leHBvcnRzLktleVNjaGVtYUVsZW1lbnQkID0gS2V5U2NoZW1hRWxlbWVudCQ7XG5leHBvcnRzLktleVR5cGUgPSBLZXlUeXBlO1xuZXhwb3J0cy5LZXlzQW5kQXR0cmlidXRlcyQgPSBLZXlzQW5kQXR0cmlidXRlcyQ7XG5leHBvcnRzLktpbmVzaXNEYXRhU3RyZWFtRGVzdGluYXRpb24kID0gS2luZXNpc0RhdGFTdHJlYW1EZXN0aW5hdGlvbiQ7XG5leHBvcnRzLktpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvbklucHV0JCA9IEtpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvbklucHV0JDtcbmV4cG9ydHMuS2luZXNpc1N0cmVhbWluZ0Rlc3RpbmF0aW9uT3V0cHV0JCA9IEtpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvbk91dHB1dCQ7XG5leHBvcnRzLkxpbWl0RXhjZWVkZWRFeGNlcHRpb24gPSBMaW1pdEV4Y2VlZGVkRXhjZXB0aW9uO1xuZXhwb3J0cy5MaW1pdEV4Y2VlZGVkRXhjZXB0aW9uJCA9IExpbWl0RXhjZWVkZWRFeGNlcHRpb24kO1xuZXhwb3J0cy5MaXN0QmFja3VwcyQgPSBMaXN0QmFja3VwcyQ7XG5leHBvcnRzLkxpc3RCYWNrdXBzQ29tbWFuZCA9IExpc3RCYWNrdXBzQ29tbWFuZDtcbmV4cG9ydHMuTGlzdEJhY2t1cHNJbnB1dCQgPSBMaXN0QmFja3Vwc0lucHV0JDtcbmV4cG9ydHMuTGlzdEJhY2t1cHNPdXRwdXQkID0gTGlzdEJhY2t1cHNPdXRwdXQkO1xuZXhwb3J0cy5MaXN0Q29udHJpYnV0b3JJbnNpZ2h0cyQgPSBMaXN0Q29udHJpYnV0b3JJbnNpZ2h0cyQ7XG5leHBvcnRzLkxpc3RDb250cmlidXRvckluc2lnaHRzQ29tbWFuZCA9IExpc3RDb250cmlidXRvckluc2lnaHRzQ29tbWFuZDtcbmV4cG9ydHMuTGlzdENvbnRyaWJ1dG9ySW5zaWdodHNJbnB1dCQgPSBMaXN0Q29udHJpYnV0b3JJbnNpZ2h0c0lucHV0JDtcbmV4cG9ydHMuTGlzdENvbnRyaWJ1dG9ySW5zaWdodHNPdXRwdXQkID0gTGlzdENvbnRyaWJ1dG9ySW5zaWdodHNPdXRwdXQkO1xuZXhwb3J0cy5MaXN0RXhwb3J0cyQgPSBMaXN0RXhwb3J0cyQ7XG5leHBvcnRzLkxpc3RFeHBvcnRzQ29tbWFuZCA9IExpc3RFeHBvcnRzQ29tbWFuZDtcbmV4cG9ydHMuTGlzdEV4cG9ydHNJbnB1dCQgPSBMaXN0RXhwb3J0c0lucHV0JDtcbmV4cG9ydHMuTGlzdEV4cG9ydHNPdXRwdXQkID0gTGlzdEV4cG9ydHNPdXRwdXQkO1xuZXhwb3J0cy5MaXN0R2xvYmFsVGFibGVzJCA9IExpc3RHbG9iYWxUYWJsZXMkO1xuZXhwb3J0cy5MaXN0R2xvYmFsVGFibGVzQ29tbWFuZCA9IExpc3RHbG9iYWxUYWJsZXNDb21tYW5kO1xuZXhwb3J0cy5MaXN0R2xvYmFsVGFibGVzSW5wdXQkID0gTGlzdEdsb2JhbFRhYmxlc0lucHV0JDtcbmV4cG9ydHMuTGlzdEdsb2JhbFRhYmxlc091dHB1dCQgPSBMaXN0R2xvYmFsVGFibGVzT3V0cHV0JDtcbmV4cG9ydHMuTGlzdEltcG9ydHMkID0gTGlzdEltcG9ydHMkO1xuZXhwb3J0cy5MaXN0SW1wb3J0c0NvbW1hbmQgPSBMaXN0SW1wb3J0c0NvbW1hbmQ7XG5leHBvcnRzLkxpc3RJbXBvcnRzSW5wdXQkID0gTGlzdEltcG9ydHNJbnB1dCQ7XG5leHBvcnRzLkxpc3RJbXBvcnRzT3V0cHV0JCA9IExpc3RJbXBvcnRzT3V0cHV0JDtcbmV4cG9ydHMuTGlzdFRhYmxlcyQgPSBMaXN0VGFibGVzJDtcbmV4cG9ydHMuTGlzdFRhYmxlc0NvbW1hbmQgPSBMaXN0VGFibGVzQ29tbWFuZDtcbmV4cG9ydHMuTGlzdFRhYmxlc0lucHV0JCA9IExpc3RUYWJsZXNJbnB1dCQ7XG5leHBvcnRzLkxpc3RUYWJsZXNPdXRwdXQkID0gTGlzdFRhYmxlc091dHB1dCQ7XG5leHBvcnRzLkxpc3RUYWdzT2ZSZXNvdXJjZSQgPSBMaXN0VGFnc09mUmVzb3VyY2UkO1xuZXhwb3J0cy5MaXN0VGFnc09mUmVzb3VyY2VDb21tYW5kID0gTGlzdFRhZ3NPZlJlc291cmNlQ29tbWFuZDtcbmV4cG9ydHMuTGlzdFRhZ3NPZlJlc291cmNlSW5wdXQkID0gTGlzdFRhZ3NPZlJlc291cmNlSW5wdXQkO1xuZXhwb3J0cy5MaXN0VGFnc09mUmVzb3VyY2VPdXRwdXQkID0gTGlzdFRhZ3NPZlJlc291cmNlT3V0cHV0JDtcbmV4cG9ydHMuTG9jYWxTZWNvbmRhcnlJbmRleCQgPSBMb2NhbFNlY29uZGFyeUluZGV4JDtcbmV4cG9ydHMuTG9jYWxTZWNvbmRhcnlJbmRleERlc2NyaXB0aW9uJCA9IExvY2FsU2Vjb25kYXJ5SW5kZXhEZXNjcmlwdGlvbiQ7XG5leHBvcnRzLkxvY2FsU2Vjb25kYXJ5SW5kZXhJbmZvJCA9IExvY2FsU2Vjb25kYXJ5SW5kZXhJbmZvJDtcbmV4cG9ydHMuTXVsdGlSZWdpb25Db25zaXN0ZW5jeSA9IE11bHRpUmVnaW9uQ29uc2lzdGVuY3k7XG5leHBvcnRzLk9uRGVtYW5kVGhyb3VnaHB1dCQgPSBPbkRlbWFuZFRocm91Z2hwdXQkO1xuZXhwb3J0cy5PbkRlbWFuZFRocm91Z2hwdXRPdmVycmlkZSQgPSBPbkRlbWFuZFRocm91Z2hwdXRPdmVycmlkZSQ7XG5leHBvcnRzLlBhcmFtZXRlcml6ZWRTdGF0ZW1lbnQkID0gUGFyYW1ldGVyaXplZFN0YXRlbWVudCQ7XG5leHBvcnRzLlBvaW50SW5UaW1lUmVjb3ZlcnlEZXNjcmlwdGlvbiQgPSBQb2ludEluVGltZVJlY292ZXJ5RGVzY3JpcHRpb24kO1xuZXhwb3J0cy5Qb2ludEluVGltZVJlY292ZXJ5U3BlY2lmaWNhdGlvbiQgPSBQb2ludEluVGltZVJlY292ZXJ5U3BlY2lmaWNhdGlvbiQ7XG5leHBvcnRzLlBvaW50SW5UaW1lUmVjb3ZlcnlTdGF0dXMgPSBQb2ludEluVGltZVJlY292ZXJ5U3RhdHVzO1xuZXhwb3J0cy5Qb2ludEluVGltZVJlY292ZXJ5VW5hdmFpbGFibGVFeGNlcHRpb24gPSBQb2ludEluVGltZVJlY292ZXJ5VW5hdmFpbGFibGVFeGNlcHRpb247XG5leHBvcnRzLlBvaW50SW5UaW1lUmVjb3ZlcnlVbmF2YWlsYWJsZUV4Y2VwdGlvbiQgPSBQb2ludEluVGltZVJlY292ZXJ5VW5hdmFpbGFibGVFeGNlcHRpb24kO1xuZXhwb3J0cy5Qb2xpY3lOb3RGb3VuZEV4Y2VwdGlvbiA9IFBvbGljeU5vdEZvdW5kRXhjZXB0aW9uO1xuZXhwb3J0cy5Qb2xpY3lOb3RGb3VuZEV4Y2VwdGlvbiQgPSBQb2xpY3lOb3RGb3VuZEV4Y2VwdGlvbiQ7XG5leHBvcnRzLlByb2plY3Rpb24kID0gUHJvamVjdGlvbiQ7XG5leHBvcnRzLlByb2plY3Rpb25UeXBlID0gUHJvamVjdGlvblR5cGU7XG5leHBvcnRzLlByb3Zpc2lvbmVkVGhyb3VnaHB1dCQgPSBQcm92aXNpb25lZFRocm91Z2hwdXQkO1xuZXhwb3J0cy5Qcm92aXNpb25lZFRocm91Z2hwdXREZXNjcmlwdGlvbiQgPSBQcm92aXNpb25lZFRocm91Z2hwdXREZXNjcmlwdGlvbiQ7XG5leHBvcnRzLlByb3Zpc2lvbmVkVGhyb3VnaHB1dEV4Y2VlZGVkRXhjZXB0aW9uID0gUHJvdmlzaW9uZWRUaHJvdWdocHV0RXhjZWVkZWRFeGNlcHRpb247XG5leHBvcnRzLlByb3Zpc2lvbmVkVGhyb3VnaHB1dEV4Y2VlZGVkRXhjZXB0aW9uJCA9IFByb3Zpc2lvbmVkVGhyb3VnaHB1dEV4Y2VlZGVkRXhjZXB0aW9uJDtcbmV4cG9ydHMuUHJvdmlzaW9uZWRUaHJvdWdocHV0T3ZlcnJpZGUkID0gUHJvdmlzaW9uZWRUaHJvdWdocHV0T3ZlcnJpZGUkO1xuZXhwb3J0cy5QdXQkID0gUHV0JDtcbmV4cG9ydHMuUHV0SXRlbSQgPSBQdXRJdGVtJDtcbmV4cG9ydHMuUHV0SXRlbUNvbW1hbmQgPSBQdXRJdGVtQ29tbWFuZDtcbmV4cG9ydHMuUHV0SXRlbUlucHV0JCA9IFB1dEl0ZW1JbnB1dCQ7XG5leHBvcnRzLlB1dEl0ZW1PdXRwdXQkID0gUHV0SXRlbU91dHB1dCQ7XG5leHBvcnRzLlB1dFJlcXVlc3QkID0gUHV0UmVxdWVzdCQ7XG5leHBvcnRzLlB1dFJlc291cmNlUG9saWN5JCA9IFB1dFJlc291cmNlUG9saWN5JDtcbmV4cG9ydHMuUHV0UmVzb3VyY2VQb2xpY3lDb21tYW5kID0gUHV0UmVzb3VyY2VQb2xpY3lDb21tYW5kO1xuZXhwb3J0cy5QdXRSZXNvdXJjZVBvbGljeUlucHV0JCA9IFB1dFJlc291cmNlUG9saWN5SW5wdXQkO1xuZXhwb3J0cy5QdXRSZXNvdXJjZVBvbGljeU91dHB1dCQgPSBQdXRSZXNvdXJjZVBvbGljeU91dHB1dCQ7XG5leHBvcnRzLlF1ZXJ5JCA9IFF1ZXJ5JDtcbmV4cG9ydHMuUXVlcnlDb21tYW5kID0gUXVlcnlDb21tYW5kO1xuZXhwb3J0cy5RdWVyeUlucHV0JCA9IFF1ZXJ5SW5wdXQkO1xuZXhwb3J0cy5RdWVyeU91dHB1dCQgPSBRdWVyeU91dHB1dCQ7XG5leHBvcnRzLlJlcGxpY2EkID0gUmVwbGljYSQ7XG5leHBvcnRzLlJlcGxpY2FBbHJlYWR5RXhpc3RzRXhjZXB0aW9uID0gUmVwbGljYUFscmVhZHlFeGlzdHNFeGNlcHRpb247XG5leHBvcnRzLlJlcGxpY2FBbHJlYWR5RXhpc3RzRXhjZXB0aW9uJCA9IFJlcGxpY2FBbHJlYWR5RXhpc3RzRXhjZXB0aW9uJDtcbmV4cG9ydHMuUmVwbGljYUF1dG9TY2FsaW5nRGVzY3JpcHRpb24kID0gUmVwbGljYUF1dG9TY2FsaW5nRGVzY3JpcHRpb24kO1xuZXhwb3J0cy5SZXBsaWNhQXV0b1NjYWxpbmdVcGRhdGUkID0gUmVwbGljYUF1dG9TY2FsaW5nVXBkYXRlJDtcbmV4cG9ydHMuUmVwbGljYURlc2NyaXB0aW9uJCA9IFJlcGxpY2FEZXNjcmlwdGlvbiQ7XG5leHBvcnRzLlJlcGxpY2FHbG9iYWxTZWNvbmRhcnlJbmRleCQgPSBSZXBsaWNhR2xvYmFsU2Vjb25kYXJ5SW5kZXgkO1xuZXhwb3J0cy5SZXBsaWNhR2xvYmFsU2Vjb25kYXJ5SW5kZXhBdXRvU2NhbGluZ0Rlc2NyaXB0aW9uJCA9IFJlcGxpY2FHbG9iYWxTZWNvbmRhcnlJbmRleEF1dG9TY2FsaW5nRGVzY3JpcHRpb24kO1xuZXhwb3J0cy5SZXBsaWNhR2xvYmFsU2Vjb25kYXJ5SW5kZXhBdXRvU2NhbGluZ1VwZGF0ZSQgPSBSZXBsaWNhR2xvYmFsU2Vjb25kYXJ5SW5kZXhBdXRvU2NhbGluZ1VwZGF0ZSQ7XG5leHBvcnRzLlJlcGxpY2FHbG9iYWxTZWNvbmRhcnlJbmRleERlc2NyaXB0aW9uJCA9IFJlcGxpY2FHbG9iYWxTZWNvbmRhcnlJbmRleERlc2NyaXB0aW9uJDtcbmV4cG9ydHMuUmVwbGljYUdsb2JhbFNlY29uZGFyeUluZGV4U2V0dGluZ3NEZXNjcmlwdGlvbiQgPSBSZXBsaWNhR2xvYmFsU2Vjb25kYXJ5SW5kZXhTZXR0aW5nc0Rlc2NyaXB0aW9uJDtcbmV4cG9ydHMuUmVwbGljYUdsb2JhbFNlY29uZGFyeUluZGV4U2V0dGluZ3NVcGRhdGUkID0gUmVwbGljYUdsb2JhbFNlY29uZGFyeUluZGV4U2V0dGluZ3NVcGRhdGUkO1xuZXhwb3J0cy5SZXBsaWNhTm90Rm91bmRFeGNlcHRpb24gPSBSZXBsaWNhTm90Rm91bmRFeGNlcHRpb247XG5leHBvcnRzLlJlcGxpY2FOb3RGb3VuZEV4Y2VwdGlvbiQgPSBSZXBsaWNhTm90Rm91bmRFeGNlcHRpb24kO1xuZXhwb3J0cy5SZXBsaWNhU2V0dGluZ3NEZXNjcmlwdGlvbiQgPSBSZXBsaWNhU2V0dGluZ3NEZXNjcmlwdGlvbiQ7XG5leHBvcnRzLlJlcGxpY2FTZXR0aW5nc1VwZGF0ZSQgPSBSZXBsaWNhU2V0dGluZ3NVcGRhdGUkO1xuZXhwb3J0cy5SZXBsaWNhU3RhdHVzID0gUmVwbGljYVN0YXR1cztcbmV4cG9ydHMuUmVwbGljYVVwZGF0ZSQgPSBSZXBsaWNhVXBkYXRlJDtcbmV4cG9ydHMuUmVwbGljYXRlZFdyaXRlQ29uZmxpY3RFeGNlcHRpb24gPSBSZXBsaWNhdGVkV3JpdGVDb25mbGljdEV4Y2VwdGlvbjtcbmV4cG9ydHMuUmVwbGljYXRlZFdyaXRlQ29uZmxpY3RFeGNlcHRpb24kID0gUmVwbGljYXRlZFdyaXRlQ29uZmxpY3RFeGNlcHRpb24kO1xuZXhwb3J0cy5SZXBsaWNhdGlvbkdyb3VwVXBkYXRlJCA9IFJlcGxpY2F0aW9uR3JvdXBVcGRhdGUkO1xuZXhwb3J0cy5SZXF1ZXN0TGltaXRFeGNlZWRlZCA9IFJlcXVlc3RMaW1pdEV4Y2VlZGVkO1xuZXhwb3J0cy5SZXF1ZXN0TGltaXRFeGNlZWRlZCQgPSBSZXF1ZXN0TGltaXRFeGNlZWRlZCQ7XG5leHBvcnRzLlJlc291cmNlSW5Vc2VFeGNlcHRpb24gPSBSZXNvdXJjZUluVXNlRXhjZXB0aW9uO1xuZXhwb3J0cy5SZXNvdXJjZUluVXNlRXhjZXB0aW9uJCA9IFJlc291cmNlSW5Vc2VFeGNlcHRpb24kO1xuZXhwb3J0cy5SZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uID0gUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvbjtcbmV4cG9ydHMuUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvbiQgPSBSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uJDtcbmV4cG9ydHMuUmVzdG9yZVN1bW1hcnkkID0gUmVzdG9yZVN1bW1hcnkkO1xuZXhwb3J0cy5SZXN0b3JlVGFibGVGcm9tQmFja3VwJCA9IFJlc3RvcmVUYWJsZUZyb21CYWNrdXAkO1xuZXhwb3J0cy5SZXN0b3JlVGFibGVGcm9tQmFja3VwQ29tbWFuZCA9IFJlc3RvcmVUYWJsZUZyb21CYWNrdXBDb21tYW5kO1xuZXhwb3J0cy5SZXN0b3JlVGFibGVGcm9tQmFja3VwSW5wdXQkID0gUmVzdG9yZVRhYmxlRnJvbUJhY2t1cElucHV0JDtcbmV4cG9ydHMuUmVzdG9yZVRhYmxlRnJvbUJhY2t1cE91dHB1dCQgPSBSZXN0b3JlVGFibGVGcm9tQmFja3VwT3V0cHV0JDtcbmV4cG9ydHMuUmVzdG9yZVRhYmxlVG9Qb2ludEluVGltZSQgPSBSZXN0b3JlVGFibGVUb1BvaW50SW5UaW1lJDtcbmV4cG9ydHMuUmVzdG9yZVRhYmxlVG9Qb2ludEluVGltZUNvbW1hbmQgPSBSZXN0b3JlVGFibGVUb1BvaW50SW5UaW1lQ29tbWFuZDtcbmV4cG9ydHMuUmVzdG9yZVRhYmxlVG9Qb2ludEluVGltZUlucHV0JCA9IFJlc3RvcmVUYWJsZVRvUG9pbnRJblRpbWVJbnB1dCQ7XG5leHBvcnRzLlJlc3RvcmVUYWJsZVRvUG9pbnRJblRpbWVPdXRwdXQkID0gUmVzdG9yZVRhYmxlVG9Qb2ludEluVGltZU91dHB1dCQ7XG5leHBvcnRzLlJldHVybkNvbnN1bWVkQ2FwYWNpdHkgPSBSZXR1cm5Db25zdW1lZENhcGFjaXR5O1xuZXhwb3J0cy5SZXR1cm5JdGVtQ29sbGVjdGlvbk1ldHJpY3MgPSBSZXR1cm5JdGVtQ29sbGVjdGlvbk1ldHJpY3M7XG5leHBvcnRzLlJldHVyblZhbHVlID0gUmV0dXJuVmFsdWU7XG5leHBvcnRzLlJldHVyblZhbHVlc09uQ29uZGl0aW9uQ2hlY2tGYWlsdXJlID0gUmV0dXJuVmFsdWVzT25Db25kaXRpb25DaGVja0ZhaWx1cmU7XG5leHBvcnRzLlMzQnVja2V0U291cmNlJCA9IFMzQnVja2V0U291cmNlJDtcbmV4cG9ydHMuUzNTc2VBbGdvcml0aG0gPSBTM1NzZUFsZ29yaXRobTtcbmV4cG9ydHMuU1NFRGVzY3JpcHRpb24kID0gU1NFRGVzY3JpcHRpb24kO1xuZXhwb3J0cy5TU0VTcGVjaWZpY2F0aW9uJCA9IFNTRVNwZWNpZmljYXRpb24kO1xuZXhwb3J0cy5TU0VTdGF0dXMgPSBTU0VTdGF0dXM7XG5leHBvcnRzLlNTRVR5cGUgPSBTU0VUeXBlO1xuZXhwb3J0cy5TY2FsYXJBdHRyaWJ1dGVUeXBlID0gU2NhbGFyQXR0cmlidXRlVHlwZTtcbmV4cG9ydHMuU2NhbiQgPSBTY2FuJDtcbmV4cG9ydHMuU2NhbkNvbW1hbmQgPSBTY2FuQ29tbWFuZDtcbmV4cG9ydHMuU2NhbklucHV0JCA9IFNjYW5JbnB1dCQ7XG5leHBvcnRzLlNjYW5PdXRwdXQkID0gU2Nhbk91dHB1dCQ7XG5leHBvcnRzLlNlbGVjdCA9IFNlbGVjdDtcbmV4cG9ydHMuU291cmNlVGFibGVEZXRhaWxzJCA9IFNvdXJjZVRhYmxlRGV0YWlscyQ7XG5leHBvcnRzLlNvdXJjZVRhYmxlRmVhdHVyZURldGFpbHMkID0gU291cmNlVGFibGVGZWF0dXJlRGV0YWlscyQ7XG5leHBvcnRzLlN0cmVhbVNwZWNpZmljYXRpb24kID0gU3RyZWFtU3BlY2lmaWNhdGlvbiQ7XG5leHBvcnRzLlN0cmVhbVZpZXdUeXBlID0gU3RyZWFtVmlld1R5cGU7XG5leHBvcnRzLlRhYmxlQWxyZWFkeUV4aXN0c0V4Y2VwdGlvbiA9IFRhYmxlQWxyZWFkeUV4aXN0c0V4Y2VwdGlvbjtcbmV4cG9ydHMuVGFibGVBbHJlYWR5RXhpc3RzRXhjZXB0aW9uJCA9IFRhYmxlQWxyZWFkeUV4aXN0c0V4Y2VwdGlvbiQ7XG5leHBvcnRzLlRhYmxlQXV0b1NjYWxpbmdEZXNjcmlwdGlvbiQgPSBUYWJsZUF1dG9TY2FsaW5nRGVzY3JpcHRpb24kO1xuZXhwb3J0cy5UYWJsZUNsYXNzID0gVGFibGVDbGFzcztcbmV4cG9ydHMuVGFibGVDbGFzc1N1bW1hcnkkID0gVGFibGVDbGFzc1N1bW1hcnkkO1xuZXhwb3J0cy5UYWJsZUNyZWF0aW9uUGFyYW1ldGVycyQgPSBUYWJsZUNyZWF0aW9uUGFyYW1ldGVycyQ7XG5leHBvcnRzLlRhYmxlRGVzY3JpcHRpb24kID0gVGFibGVEZXNjcmlwdGlvbiQ7XG5leHBvcnRzLlRhYmxlSW5Vc2VFeGNlcHRpb24gPSBUYWJsZUluVXNlRXhjZXB0aW9uO1xuZXhwb3J0cy5UYWJsZUluVXNlRXhjZXB0aW9uJCA9IFRhYmxlSW5Vc2VFeGNlcHRpb24kO1xuZXhwb3J0cy5UYWJsZU5vdEZvdW5kRXhjZXB0aW9uID0gVGFibGVOb3RGb3VuZEV4Y2VwdGlvbjtcbmV4cG9ydHMuVGFibGVOb3RGb3VuZEV4Y2VwdGlvbiQgPSBUYWJsZU5vdEZvdW5kRXhjZXB0aW9uJDtcbmV4cG9ydHMuVGFibGVTdGF0dXMgPSBUYWJsZVN0YXR1cztcbmV4cG9ydHMuVGFibGVXYXJtVGhyb3VnaHB1dERlc2NyaXB0aW9uJCA9IFRhYmxlV2FybVRocm91Z2hwdXREZXNjcmlwdGlvbiQ7XG5leHBvcnRzLlRhZyQgPSBUYWckO1xuZXhwb3J0cy5UYWdSZXNvdXJjZSQgPSBUYWdSZXNvdXJjZSQ7XG5leHBvcnRzLlRhZ1Jlc291cmNlQ29tbWFuZCA9IFRhZ1Jlc291cmNlQ29tbWFuZDtcbmV4cG9ydHMuVGFnUmVzb3VyY2VJbnB1dCQgPSBUYWdSZXNvdXJjZUlucHV0JDtcbmV4cG9ydHMuVGhyb3R0bGluZ0V4Y2VwdGlvbiA9IFRocm90dGxpbmdFeGNlcHRpb247XG5leHBvcnRzLlRocm90dGxpbmdFeGNlcHRpb24kID0gVGhyb3R0bGluZ0V4Y2VwdGlvbiQ7XG5leHBvcnRzLlRocm90dGxpbmdSZWFzb24kID0gVGhyb3R0bGluZ1JlYXNvbiQ7XG5leHBvcnRzLlRpbWVUb0xpdmVEZXNjcmlwdGlvbiQgPSBUaW1lVG9MaXZlRGVzY3JpcHRpb24kO1xuZXhwb3J0cy5UaW1lVG9MaXZlU3BlY2lmaWNhdGlvbiQgPSBUaW1lVG9MaXZlU3BlY2lmaWNhdGlvbiQ7XG5leHBvcnRzLlRpbWVUb0xpdmVTdGF0dXMgPSBUaW1lVG9MaXZlU3RhdHVzO1xuZXhwb3J0cy5UcmFuc2FjdEdldEl0ZW0kID0gVHJhbnNhY3RHZXRJdGVtJDtcbmV4cG9ydHMuVHJhbnNhY3RHZXRJdGVtcyQgPSBUcmFuc2FjdEdldEl0ZW1zJDtcbmV4cG9ydHMuVHJhbnNhY3RHZXRJdGVtc0NvbW1hbmQgPSBUcmFuc2FjdEdldEl0ZW1zQ29tbWFuZDtcbmV4cG9ydHMuVHJhbnNhY3RHZXRJdGVtc0lucHV0JCA9IFRyYW5zYWN0R2V0SXRlbXNJbnB1dCQ7XG5leHBvcnRzLlRyYW5zYWN0R2V0SXRlbXNPdXRwdXQkID0gVHJhbnNhY3RHZXRJdGVtc091dHB1dCQ7XG5leHBvcnRzLlRyYW5zYWN0V3JpdGVJdGVtJCA9IFRyYW5zYWN0V3JpdGVJdGVtJDtcbmV4cG9ydHMuVHJhbnNhY3RXcml0ZUl0ZW1zJCA9IFRyYW5zYWN0V3JpdGVJdGVtcyQ7XG5leHBvcnRzLlRyYW5zYWN0V3JpdGVJdGVtc0NvbW1hbmQgPSBUcmFuc2FjdFdyaXRlSXRlbXNDb21tYW5kO1xuZXhwb3J0cy5UcmFuc2FjdFdyaXRlSXRlbXNJbnB1dCQgPSBUcmFuc2FjdFdyaXRlSXRlbXNJbnB1dCQ7XG5leHBvcnRzLlRyYW5zYWN0V3JpdGVJdGVtc091dHB1dCQgPSBUcmFuc2FjdFdyaXRlSXRlbXNPdXRwdXQkO1xuZXhwb3J0cy5UcmFuc2FjdGlvbkNhbmNlbGVkRXhjZXB0aW9uID0gVHJhbnNhY3Rpb25DYW5jZWxlZEV4Y2VwdGlvbjtcbmV4cG9ydHMuVHJhbnNhY3Rpb25DYW5jZWxlZEV4Y2VwdGlvbiQgPSBUcmFuc2FjdGlvbkNhbmNlbGVkRXhjZXB0aW9uJDtcbmV4cG9ydHMuVHJhbnNhY3Rpb25Db25mbGljdEV4Y2VwdGlvbiA9IFRyYW5zYWN0aW9uQ29uZmxpY3RFeGNlcHRpb247XG5leHBvcnRzLlRyYW5zYWN0aW9uQ29uZmxpY3RFeGNlcHRpb24kID0gVHJhbnNhY3Rpb25Db25mbGljdEV4Y2VwdGlvbiQ7XG5leHBvcnRzLlRyYW5zYWN0aW9uSW5Qcm9ncmVzc0V4Y2VwdGlvbiA9IFRyYW5zYWN0aW9uSW5Qcm9ncmVzc0V4Y2VwdGlvbjtcbmV4cG9ydHMuVHJhbnNhY3Rpb25JblByb2dyZXNzRXhjZXB0aW9uJCA9IFRyYW5zYWN0aW9uSW5Qcm9ncmVzc0V4Y2VwdGlvbiQ7XG5leHBvcnRzLlVudGFnUmVzb3VyY2UkID0gVW50YWdSZXNvdXJjZSQ7XG5leHBvcnRzLlVudGFnUmVzb3VyY2VDb21tYW5kID0gVW50YWdSZXNvdXJjZUNvbW1hbmQ7XG5leHBvcnRzLlVudGFnUmVzb3VyY2VJbnB1dCQgPSBVbnRhZ1Jlc291cmNlSW5wdXQkO1xuZXhwb3J0cy5VcGRhdGUkID0gVXBkYXRlJDtcbmV4cG9ydHMuVXBkYXRlQ29udGludW91c0JhY2t1cHMkID0gVXBkYXRlQ29udGludW91c0JhY2t1cHMkO1xuZXhwb3J0cy5VcGRhdGVDb250aW51b3VzQmFja3Vwc0NvbW1hbmQgPSBVcGRhdGVDb250aW51b3VzQmFja3Vwc0NvbW1hbmQ7XG5leHBvcnRzLlVwZGF0ZUNvbnRpbnVvdXNCYWNrdXBzSW5wdXQkID0gVXBkYXRlQ29udGludW91c0JhY2t1cHNJbnB1dCQ7XG5leHBvcnRzLlVwZGF0ZUNvbnRpbnVvdXNCYWNrdXBzT3V0cHV0JCA9IFVwZGF0ZUNvbnRpbnVvdXNCYWNrdXBzT3V0cHV0JDtcbmV4cG9ydHMuVXBkYXRlQ29udHJpYnV0b3JJbnNpZ2h0cyQgPSBVcGRhdGVDb250cmlidXRvckluc2lnaHRzJDtcbmV4cG9ydHMuVXBkYXRlQ29udHJpYnV0b3JJbnNpZ2h0c0NvbW1hbmQgPSBVcGRhdGVDb250cmlidXRvckluc2lnaHRzQ29tbWFuZDtcbmV4cG9ydHMuVXBkYXRlQ29udHJpYnV0b3JJbnNpZ2h0c0lucHV0JCA9IFVwZGF0ZUNvbnRyaWJ1dG9ySW5zaWdodHNJbnB1dCQ7XG5leHBvcnRzLlVwZGF0ZUNvbnRyaWJ1dG9ySW5zaWdodHNPdXRwdXQkID0gVXBkYXRlQ29udHJpYnV0b3JJbnNpZ2h0c091dHB1dCQ7XG5leHBvcnRzLlVwZGF0ZUdsb2JhbFNlY29uZGFyeUluZGV4QWN0aW9uJCA9IFVwZGF0ZUdsb2JhbFNlY29uZGFyeUluZGV4QWN0aW9uJDtcbmV4cG9ydHMuVXBkYXRlR2xvYmFsVGFibGUkID0gVXBkYXRlR2xvYmFsVGFibGUkO1xuZXhwb3J0cy5VcGRhdGVHbG9iYWxUYWJsZUNvbW1hbmQgPSBVcGRhdGVHbG9iYWxUYWJsZUNvbW1hbmQ7XG5leHBvcnRzLlVwZGF0ZUdsb2JhbFRhYmxlSW5wdXQkID0gVXBkYXRlR2xvYmFsVGFibGVJbnB1dCQ7XG5leHBvcnRzLlVwZGF0ZUdsb2JhbFRhYmxlT3V0cHV0JCA9IFVwZGF0ZUdsb2JhbFRhYmxlT3V0cHV0JDtcbmV4cG9ydHMuVXBkYXRlR2xvYmFsVGFibGVTZXR0aW5ncyQgPSBVcGRhdGVHbG9iYWxUYWJsZVNldHRpbmdzJDtcbmV4cG9ydHMuVXBkYXRlR2xvYmFsVGFibGVTZXR0aW5nc0NvbW1hbmQgPSBVcGRhdGVHbG9iYWxUYWJsZVNldHRpbmdzQ29tbWFuZDtcbmV4cG9ydHMuVXBkYXRlR2xvYmFsVGFibGVTZXR0aW5nc0lucHV0JCA9IFVwZGF0ZUdsb2JhbFRhYmxlU2V0dGluZ3NJbnB1dCQ7XG5leHBvcnRzLlVwZGF0ZUdsb2JhbFRhYmxlU2V0dGluZ3NPdXRwdXQkID0gVXBkYXRlR2xvYmFsVGFibGVTZXR0aW5nc091dHB1dCQ7XG5leHBvcnRzLlVwZGF0ZUl0ZW0kID0gVXBkYXRlSXRlbSQ7XG5leHBvcnRzLlVwZGF0ZUl0ZW1Db21tYW5kID0gVXBkYXRlSXRlbUNvbW1hbmQ7XG5leHBvcnRzLlVwZGF0ZUl0ZW1JbnB1dCQgPSBVcGRhdGVJdGVtSW5wdXQkO1xuZXhwb3J0cy5VcGRhdGVJdGVtT3V0cHV0JCA9IFVwZGF0ZUl0ZW1PdXRwdXQkO1xuZXhwb3J0cy5VcGRhdGVLaW5lc2lzU3RyZWFtaW5nQ29uZmlndXJhdGlvbiQgPSBVcGRhdGVLaW5lc2lzU3RyZWFtaW5nQ29uZmlndXJhdGlvbiQ7XG5leHBvcnRzLlVwZGF0ZUtpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvbiQgPSBVcGRhdGVLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb24kO1xuZXhwb3J0cy5VcGRhdGVLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb25Db21tYW5kID0gVXBkYXRlS2luZXNpc1N0cmVhbWluZ0Rlc3RpbmF0aW9uQ29tbWFuZDtcbmV4cG9ydHMuVXBkYXRlS2luZXNpc1N0cmVhbWluZ0Rlc3RpbmF0aW9uSW5wdXQkID0gVXBkYXRlS2luZXNpc1N0cmVhbWluZ0Rlc3RpbmF0aW9uSW5wdXQkO1xuZXhwb3J0cy5VcGRhdGVLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb25PdXRwdXQkID0gVXBkYXRlS2luZXNpc1N0cmVhbWluZ0Rlc3RpbmF0aW9uT3V0cHV0JDtcbmV4cG9ydHMuVXBkYXRlUmVwbGljYXRpb25Hcm91cE1lbWJlckFjdGlvbiQgPSBVcGRhdGVSZXBsaWNhdGlvbkdyb3VwTWVtYmVyQWN0aW9uJDtcbmV4cG9ydHMuVXBkYXRlVGFibGUkID0gVXBkYXRlVGFibGUkO1xuZXhwb3J0cy5VcGRhdGVUYWJsZUNvbW1hbmQgPSBVcGRhdGVUYWJsZUNvbW1hbmQ7XG5leHBvcnRzLlVwZGF0ZVRhYmxlSW5wdXQkID0gVXBkYXRlVGFibGVJbnB1dCQ7XG5leHBvcnRzLlVwZGF0ZVRhYmxlT3V0cHV0JCA9IFVwZGF0ZVRhYmxlT3V0cHV0JDtcbmV4cG9ydHMuVXBkYXRlVGFibGVSZXBsaWNhQXV0b1NjYWxpbmckID0gVXBkYXRlVGFibGVSZXBsaWNhQXV0b1NjYWxpbmckO1xuZXhwb3J0cy5VcGRhdGVUYWJsZVJlcGxpY2FBdXRvU2NhbGluZ0NvbW1hbmQgPSBVcGRhdGVUYWJsZVJlcGxpY2FBdXRvU2NhbGluZ0NvbW1hbmQ7XG5leHBvcnRzLlVwZGF0ZVRhYmxlUmVwbGljYUF1dG9TY2FsaW5nSW5wdXQkID0gVXBkYXRlVGFibGVSZXBsaWNhQXV0b1NjYWxpbmdJbnB1dCQ7XG5leHBvcnRzLlVwZGF0ZVRhYmxlUmVwbGljYUF1dG9TY2FsaW5nT3V0cHV0JCA9IFVwZGF0ZVRhYmxlUmVwbGljYUF1dG9TY2FsaW5nT3V0cHV0JDtcbmV4cG9ydHMuVXBkYXRlVGltZVRvTGl2ZSQgPSBVcGRhdGVUaW1lVG9MaXZlJDtcbmV4cG9ydHMuVXBkYXRlVGltZVRvTGl2ZUNvbW1hbmQgPSBVcGRhdGVUaW1lVG9MaXZlQ29tbWFuZDtcbmV4cG9ydHMuVXBkYXRlVGltZVRvTGl2ZUlucHV0JCA9IFVwZGF0ZVRpbWVUb0xpdmVJbnB1dCQ7XG5leHBvcnRzLlVwZGF0ZVRpbWVUb0xpdmVPdXRwdXQkID0gVXBkYXRlVGltZVRvTGl2ZU91dHB1dCQ7XG5leHBvcnRzLldhcm1UaHJvdWdocHV0JCA9IFdhcm1UaHJvdWdocHV0JDtcbmV4cG9ydHMuV2l0bmVzc1N0YXR1cyA9IFdpdG5lc3NTdGF0dXM7XG5leHBvcnRzLldyaXRlUmVxdWVzdCQgPSBXcml0ZVJlcXVlc3QkO1xuZXhwb3J0cy5wYWdpbmF0ZUxpc3RDb250cmlidXRvckluc2lnaHRzID0gcGFnaW5hdGVMaXN0Q29udHJpYnV0b3JJbnNpZ2h0cztcbmV4cG9ydHMucGFnaW5hdGVMaXN0RXhwb3J0cyA9IHBhZ2luYXRlTGlzdEV4cG9ydHM7XG5leHBvcnRzLnBhZ2luYXRlTGlzdEltcG9ydHMgPSBwYWdpbmF0ZUxpc3RJbXBvcnRzO1xuZXhwb3J0cy5wYWdpbmF0ZUxpc3RUYWJsZXMgPSBwYWdpbmF0ZUxpc3RUYWJsZXM7XG5leHBvcnRzLnBhZ2luYXRlUXVlcnkgPSBwYWdpbmF0ZVF1ZXJ5O1xuZXhwb3J0cy5wYWdpbmF0ZVNjYW4gPSBwYWdpbmF0ZVNjYW47XG5leHBvcnRzLndhaXRGb3JDb250cmlidXRvckluc2lnaHRzRW5hYmxlZCA9IHdhaXRGb3JDb250cmlidXRvckluc2lnaHRzRW5hYmxlZDtcbmV4cG9ydHMud2FpdEZvckV4cG9ydENvbXBsZXRlZCA9IHdhaXRGb3JFeHBvcnRDb21wbGV0ZWQ7XG5leHBvcnRzLndhaXRGb3JJbXBvcnRDb21wbGV0ZWQgPSB3YWl0Rm9ySW1wb3J0Q29tcGxldGVkO1xuZXhwb3J0cy53YWl0Rm9yS2luZXNpc1N0cmVhbWluZ0Rlc3RpbmF0aW9uQWN0aXZlID0gd2FpdEZvcktpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvbkFjdGl2ZTtcbmV4cG9ydHMud2FpdEZvclRhYmxlRXhpc3RzID0gd2FpdEZvclRhYmxlRXhpc3RzO1xuZXhwb3J0cy53YWl0Rm9yVGFibGVOb3RFeGlzdHMgPSB3YWl0Rm9yVGFibGVOb3RFeGlzdHM7XG5leHBvcnRzLndhaXRVbnRpbENvbnRyaWJ1dG9ySW5zaWdodHNFbmFibGVkID0gd2FpdFVudGlsQ29udHJpYnV0b3JJbnNpZ2h0c0VuYWJsZWQ7XG5leHBvcnRzLndhaXRVbnRpbEV4cG9ydENvbXBsZXRlZCA9IHdhaXRVbnRpbEV4cG9ydENvbXBsZXRlZDtcbmV4cG9ydHMud2FpdFVudGlsSW1wb3J0Q29tcGxldGVkID0gd2FpdFVudGlsSW1wb3J0Q29tcGxldGVkO1xuZXhwb3J0cy53YWl0VW50aWxLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb25BY3RpdmUgPSB3YWl0VW50aWxLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb25BY3RpdmU7XG5leHBvcnRzLndhaXRVbnRpbFRhYmxlRXhpc3RzID0gd2FpdFVudGlsVGFibGVFeGlzdHM7XG5leHBvcnRzLndhaXRVbnRpbFRhYmxlTm90RXhpc3RzID0gd2FpdFVudGlsVGFibGVOb3RFeGlzdHM7XG4iLCAiZXhwb3J0IGNvbnN0IHN0YXRlID0ge1xuICAgIHdhcm5pbmdFbWl0dGVkOiBmYWxzZSxcbn07XG5leHBvcnQgY29uc3QgZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbiA9ICh2ZXJzaW9uKSA9PiB7XG4gICAgaWYgKHZlcnNpb24gJiYgIXN0YXRlLndhcm5pbmdFbWl0dGVkICYmIHBhcnNlSW50KHZlcnNpb24uc3Vic3RyaW5nKDEsIHZlcnNpb24uaW5kZXhPZihcIi5cIikpKSA8IDIwKSB7XG4gICAgICAgIHN0YXRlLndhcm5pbmdFbWl0dGVkID0gdHJ1ZTtcbiAgICAgICAgcHJvY2Vzcy5lbWl0V2FybmluZyhgTm9kZURlcHJlY2F0aW9uV2FybmluZzogVGhlIEFXUyBTREsgZm9yIEphdmFTY3JpcHQgKHYzKSB3aWxsXG5ubyBsb25nZXIgc3VwcG9ydCBOb2RlLmpzICR7dmVyc2lvbn0gaW4gSmFudWFyeSAyMDI2LlxuXG5UbyBjb250aW51ZSByZWNlaXZpbmcgdXBkYXRlcyB0byBBV1Mgc2VydmljZXMsIGJ1ZyBmaXhlcywgYW5kIHNlY3VyaXR5XG51cGRhdGVzIHBsZWFzZSB1cGdyYWRlIHRvIGEgc3VwcG9ydGVkIE5vZGUuanMgTFRTIHZlcnNpb24uXG5cbk1vcmUgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGF0OiBodHRwczovL2EuY28vYzg5NUpGcGApO1xuICAgIH1cbn07XG4iLCAiZXhwb3J0IGZ1bmN0aW9uIHNldENyZWRlbnRpYWxGZWF0dXJlKGNyZWRlbnRpYWxzLCBmZWF0dXJlLCB2YWx1ZSkge1xuICAgIGlmICghY3JlZGVudGlhbHMuJHNvdXJjZSkge1xuICAgICAgICBjcmVkZW50aWFscy4kc291cmNlID0ge307XG4gICAgfVxuICAgIGNyZWRlbnRpYWxzLiRzb3VyY2VbZmVhdHVyZV0gPSB2YWx1ZTtcbiAgICByZXR1cm4gY3JlZGVudGlhbHM7XG59XG4iLCAiZXhwb3J0IGZ1bmN0aW9uIHNldEZlYXR1cmUoY29udGV4dCwgZmVhdHVyZSwgdmFsdWUpIHtcbiAgICBpZiAoIWNvbnRleHQuX19hd3Nfc2RrX2NvbnRleHQpIHtcbiAgICAgICAgY29udGV4dC5fX2F3c19zZGtfY29udGV4dCA9IHtcbiAgICAgICAgICAgIGZlYXR1cmVzOiB7fSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgZWxzZSBpZiAoIWNvbnRleHQuX19hd3Nfc2RrX2NvbnRleHQuZmVhdHVyZXMpIHtcbiAgICAgICAgY29udGV4dC5fX2F3c19zZGtfY29udGV4dC5mZWF0dXJlcyA9IHt9O1xuICAgIH1cbiAgICBjb250ZXh0Ll9fYXdzX3Nka19jb250ZXh0LmZlYXR1cmVzW2ZlYXR1cmVdID0gdmFsdWU7XG59XG4iLCAiZXhwb3J0IGZ1bmN0aW9uIHNldFRva2VuRmVhdHVyZSh0b2tlbiwgZmVhdHVyZSwgdmFsdWUpIHtcbiAgICBpZiAoIXRva2VuLiRzb3VyY2UpIHtcbiAgICAgICAgdG9rZW4uJHNvdXJjZSA9IHt9O1xuICAgIH1cbiAgICB0b2tlbi4kc291cmNlW2ZlYXR1cmVdID0gdmFsdWU7XG4gICAgcmV0dXJuIHRva2VuO1xufVxuIiwgImV4cG9ydCAqIGZyb20gXCIuL2VtaXRXYXJuaW5nSWZVbnN1cHBvcnRlZFZlcnNpb25cIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NldENyZWRlbnRpYWxGZWF0dXJlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zZXRGZWF0dXJlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zZXRUb2tlbkZlYXR1cmVcIjtcbiIsICJpbXBvcnQgeyBIdHRwUmVzcG9uc2UgfSBmcm9tIFwiQHNtaXRoeS9wcm90b2NvbC1odHRwXCI7XG5leHBvcnQgY29uc3QgZ2V0RGF0ZUhlYWRlciA9IChyZXNwb25zZSkgPT4gSHR0cFJlc3BvbnNlLmlzSW5zdGFuY2UocmVzcG9uc2UpID8gcmVzcG9uc2UuaGVhZGVycz8uZGF0ZSA/PyByZXNwb25zZS5oZWFkZXJzPy5EYXRlIDogdW5kZWZpbmVkO1xuIiwgImV4cG9ydCBjb25zdCBnZXRTa2V3Q29ycmVjdGVkRGF0ZSA9IChzeXN0ZW1DbG9ja09mZnNldCkgPT4gbmV3IERhdGUoRGF0ZS5ub3coKSArIHN5c3RlbUNsb2NrT2Zmc2V0KTtcbiIsICJpbXBvcnQgeyBnZXRTa2V3Q29ycmVjdGVkRGF0ZSB9IGZyb20gXCIuL2dldFNrZXdDb3JyZWN0ZWREYXRlXCI7XG5leHBvcnQgY29uc3QgaXNDbG9ja1NrZXdlZCA9IChjbG9ja1RpbWUsIHN5c3RlbUNsb2NrT2Zmc2V0KSA9PiBNYXRoLmFicyhnZXRTa2V3Q29ycmVjdGVkRGF0ZShzeXN0ZW1DbG9ja09mZnNldCkuZ2V0VGltZSgpIC0gY2xvY2tUaW1lKSA+PSAzMDAwMDA7XG4iLCAiaW1wb3J0IHsgaXNDbG9ja1NrZXdlZCB9IGZyb20gXCIuL2lzQ2xvY2tTa2V3ZWRcIjtcbmV4cG9ydCBjb25zdCBnZXRVcGRhdGVkU3lzdGVtQ2xvY2tPZmZzZXQgPSAoY2xvY2tUaW1lLCBjdXJyZW50U3lzdGVtQ2xvY2tPZmZzZXQpID0+IHtcbiAgICBjb25zdCBjbG9ja1RpbWVJbk1zID0gRGF0ZS5wYXJzZShjbG9ja1RpbWUpO1xuICAgIGlmIChpc0Nsb2NrU2tld2VkKGNsb2NrVGltZUluTXMsIGN1cnJlbnRTeXN0ZW1DbG9ja09mZnNldCkpIHtcbiAgICAgICAgcmV0dXJuIGNsb2NrVGltZUluTXMgLSBEYXRlLm5vdygpO1xuICAgIH1cbiAgICByZXR1cm4gY3VycmVudFN5c3RlbUNsb2NrT2Zmc2V0O1xufTtcbiIsICJleHBvcnQgKiBmcm9tIFwiLi9nZXREYXRlSGVhZGVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9nZXRTa2V3Q29ycmVjdGVkRGF0ZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZ2V0VXBkYXRlZFN5c3RlbUNsb2NrT2Zmc2V0XCI7XG4iLCAiaW1wb3J0IHsgSHR0cFJlcXVlc3QgfSBmcm9tIFwiQHNtaXRoeS9wcm90b2NvbC1odHRwXCI7XG5pbXBvcnQgeyBnZXREYXRlSGVhZGVyLCBnZXRTa2V3Q29ycmVjdGVkRGF0ZSwgZ2V0VXBkYXRlZFN5c3RlbUNsb2NrT2Zmc2V0IH0gZnJvbSBcIi4uL3V0aWxzXCI7XG5jb25zdCB0aHJvd1NpZ25pbmdQcm9wZXJ0eUVycm9yID0gKG5hbWUsIHByb3BlcnR5KSA9PiB7XG4gICAgaWYgKCFwcm9wZXJ0eSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFByb3BlcnR5IFxcYCR7bmFtZX1cXGAgaXMgbm90IHJlc29sdmVkIGZvciBBV1MgU0RLIFNpZ1Y0QXV0aGApO1xuICAgIH1cbiAgICByZXR1cm4gcHJvcGVydHk7XG59O1xuZXhwb3J0IGNvbnN0IHZhbGlkYXRlU2lnbmluZ1Byb3BlcnRpZXMgPSBhc3luYyAoc2lnbmluZ1Byb3BlcnRpZXMpID0+IHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhyb3dTaWduaW5nUHJvcGVydHlFcnJvcihcImNvbnRleHRcIiwgc2lnbmluZ1Byb3BlcnRpZXMuY29udGV4dCk7XG4gICAgY29uc3QgY29uZmlnID0gdGhyb3dTaWduaW5nUHJvcGVydHlFcnJvcihcImNvbmZpZ1wiLCBzaWduaW5nUHJvcGVydGllcy5jb25maWcpO1xuICAgIGNvbnN0IGF1dGhTY2hlbWUgPSBjb250ZXh0LmVuZHBvaW50VjI/LnByb3BlcnRpZXM/LmF1dGhTY2hlbWVzPy5bMF07XG4gICAgY29uc3Qgc2lnbmVyRnVuY3Rpb24gPSB0aHJvd1NpZ25pbmdQcm9wZXJ0eUVycm9yKFwic2lnbmVyXCIsIGNvbmZpZy5zaWduZXIpO1xuICAgIGNvbnN0IHNpZ25lciA9IGF3YWl0IHNpZ25lckZ1bmN0aW9uKGF1dGhTY2hlbWUpO1xuICAgIGNvbnN0IHNpZ25pbmdSZWdpb24gPSBzaWduaW5nUHJvcGVydGllcz8uc2lnbmluZ1JlZ2lvbjtcbiAgICBjb25zdCBzaWduaW5nUmVnaW9uU2V0ID0gc2lnbmluZ1Byb3BlcnRpZXM/LnNpZ25pbmdSZWdpb25TZXQ7XG4gICAgY29uc3Qgc2lnbmluZ05hbWUgPSBzaWduaW5nUHJvcGVydGllcz8uc2lnbmluZ05hbWU7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgY29uZmlnLFxuICAgICAgICBzaWduZXIsXG4gICAgICAgIHNpZ25pbmdSZWdpb24sXG4gICAgICAgIHNpZ25pbmdSZWdpb25TZXQsXG4gICAgICAgIHNpZ25pbmdOYW1lLFxuICAgIH07XG59O1xuZXhwb3J0IGNsYXNzIEF3c1Nka1NpZ1Y0U2lnbmVyIHtcbiAgICBhc3luYyBzaWduKGh0dHBSZXF1ZXN0LCBpZGVudGl0eSwgc2lnbmluZ1Byb3BlcnRpZXMpIHtcbiAgICAgICAgaWYgKCFIdHRwUmVxdWVzdC5pc0luc3RhbmNlKGh0dHBSZXF1ZXN0KSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVGhlIHJlcXVlc3QgaXMgbm90IGFuIGluc3RhbmNlIG9mIGBIdHRwUmVxdWVzdGAgYW5kIGNhbm5vdCBiZSBzaWduZWRcIik7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdmFsaWRhdGVkUHJvcHMgPSBhd2FpdCB2YWxpZGF0ZVNpZ25pbmdQcm9wZXJ0aWVzKHNpZ25pbmdQcm9wZXJ0aWVzKTtcbiAgICAgICAgY29uc3QgeyBjb25maWcsIHNpZ25lciB9ID0gdmFsaWRhdGVkUHJvcHM7XG4gICAgICAgIGxldCB7IHNpZ25pbmdSZWdpb24sIHNpZ25pbmdOYW1lIH0gPSB2YWxpZGF0ZWRQcm9wcztcbiAgICAgICAgY29uc3QgaGFuZGxlckV4ZWN1dGlvbkNvbnRleHQgPSBzaWduaW5nUHJvcGVydGllcy5jb250ZXh0O1xuICAgICAgICBpZiAoaGFuZGxlckV4ZWN1dGlvbkNvbnRleHQ/LmF1dGhTY2hlbWVzPy5sZW5ndGggPz8gMCA+IDEpIHtcbiAgICAgICAgICAgIGNvbnN0IFtmaXJzdCwgc2Vjb25kXSA9IGhhbmRsZXJFeGVjdXRpb25Db250ZXh0LmF1dGhTY2hlbWVzO1xuICAgICAgICAgICAgaWYgKGZpcnN0Py5uYW1lID09PSBcInNpZ3Y0YVwiICYmIHNlY29uZD8ubmFtZSA9PT0gXCJzaWd2NFwiKSB7XG4gICAgICAgICAgICAgICAgc2lnbmluZ1JlZ2lvbiA9IHNlY29uZD8uc2lnbmluZ1JlZ2lvbiA/PyBzaWduaW5nUmVnaW9uO1xuICAgICAgICAgICAgICAgIHNpZ25pbmdOYW1lID0gc2Vjb25kPy5zaWduaW5nTmFtZSA/PyBzaWduaW5nTmFtZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzaWduZWRSZXF1ZXN0ID0gYXdhaXQgc2lnbmVyLnNpZ24oaHR0cFJlcXVlc3QsIHtcbiAgICAgICAgICAgIHNpZ25pbmdEYXRlOiBnZXRTa2V3Q29ycmVjdGVkRGF0ZShjb25maWcuc3lzdGVtQ2xvY2tPZmZzZXQpLFxuICAgICAgICAgICAgc2lnbmluZ1JlZ2lvbjogc2lnbmluZ1JlZ2lvbixcbiAgICAgICAgICAgIHNpZ25pbmdTZXJ2aWNlOiBzaWduaW5nTmFtZSxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBzaWduZWRSZXF1ZXN0O1xuICAgIH1cbiAgICBlcnJvckhhbmRsZXIoc2lnbmluZ1Byb3BlcnRpZXMpIHtcbiAgICAgICAgcmV0dXJuIChlcnJvcikgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc2VydmVyVGltZSA9IGVycm9yLlNlcnZlclRpbWUgPz8gZ2V0RGF0ZUhlYWRlcihlcnJvci4kcmVzcG9uc2UpO1xuICAgICAgICAgICAgaWYgKHNlcnZlclRpbWUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSB0aHJvd1NpZ25pbmdQcm9wZXJ0eUVycm9yKFwiY29uZmlnXCIsIHNpZ25pbmdQcm9wZXJ0aWVzLmNvbmZpZyk7XG4gICAgICAgICAgICAgICAgY29uc3QgaW5pdGlhbFN5c3RlbUNsb2NrT2Zmc2V0ID0gY29uZmlnLnN5c3RlbUNsb2NrT2Zmc2V0O1xuICAgICAgICAgICAgICAgIGNvbmZpZy5zeXN0ZW1DbG9ja09mZnNldCA9IGdldFVwZGF0ZWRTeXN0ZW1DbG9ja09mZnNldChzZXJ2ZXJUaW1lLCBjb25maWcuc3lzdGVtQ2xvY2tPZmZzZXQpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNsb2NrU2tld0NvcnJlY3RlZCA9IGNvbmZpZy5zeXN0ZW1DbG9ja09mZnNldCAhPT0gaW5pdGlhbFN5c3RlbUNsb2NrT2Zmc2V0O1xuICAgICAgICAgICAgICAgIGlmIChjbG9ja1NrZXdDb3JyZWN0ZWQgJiYgZXJyb3IuJG1ldGFkYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgIGVycm9yLiRtZXRhZGF0YS5jbG9ja1NrZXdDb3JyZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9O1xuICAgIH1cbiAgICBzdWNjZXNzSGFuZGxlcihodHRwUmVzcG9uc2UsIHNpZ25pbmdQcm9wZXJ0aWVzKSB7XG4gICAgICAgIGNvbnN0IGRhdGVIZWFkZXIgPSBnZXREYXRlSGVhZGVyKGh0dHBSZXNwb25zZSk7XG4gICAgICAgIGlmIChkYXRlSGVhZGVyKSB7XG4gICAgICAgICAgICBjb25zdCBjb25maWcgPSB0aHJvd1NpZ25pbmdQcm9wZXJ0eUVycm9yKFwiY29uZmlnXCIsIHNpZ25pbmdQcm9wZXJ0aWVzLmNvbmZpZyk7XG4gICAgICAgICAgICBjb25maWcuc3lzdGVtQ2xvY2tPZmZzZXQgPSBnZXRVcGRhdGVkU3lzdGVtQ2xvY2tPZmZzZXQoZGF0ZUhlYWRlciwgY29uZmlnLnN5c3RlbUNsb2NrT2Zmc2V0KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydCBjb25zdCBBV1NTREtTaWdWNFNpZ25lciA9IEF3c1Nka1NpZ1Y0U2lnbmVyO1xuIiwgImltcG9ydCB7IEh0dHBSZXF1ZXN0IH0gZnJvbSBcIkBzbWl0aHkvcHJvdG9jb2wtaHR0cFwiO1xuaW1wb3J0IHsgZ2V0U2tld0NvcnJlY3RlZERhdGUgfSBmcm9tIFwiLi4vdXRpbHNcIjtcbmltcG9ydCB7IEF3c1Nka1NpZ1Y0U2lnbmVyLCB2YWxpZGF0ZVNpZ25pbmdQcm9wZXJ0aWVzIH0gZnJvbSBcIi4vQXdzU2RrU2lnVjRTaWduZXJcIjtcbmV4cG9ydCBjbGFzcyBBd3NTZGtTaWdWNEFTaWduZXIgZXh0ZW5kcyBBd3NTZGtTaWdWNFNpZ25lciB7XG4gICAgYXN5bmMgc2lnbihodHRwUmVxdWVzdCwgaWRlbnRpdHksIHNpZ25pbmdQcm9wZXJ0aWVzKSB7XG4gICAgICAgIGlmICghSHR0cFJlcXVlc3QuaXNJbnN0YW5jZShodHRwUmVxdWVzdCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlRoZSByZXF1ZXN0IGlzIG5vdCBhbiBpbnN0YW5jZSBvZiBgSHR0cFJlcXVlc3RgIGFuZCBjYW5ub3QgYmUgc2lnbmVkXCIpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHsgY29uZmlnLCBzaWduZXIsIHNpZ25pbmdSZWdpb24sIHNpZ25pbmdSZWdpb25TZXQsIHNpZ25pbmdOYW1lIH0gPSBhd2FpdCB2YWxpZGF0ZVNpZ25pbmdQcm9wZXJ0aWVzKHNpZ25pbmdQcm9wZXJ0aWVzKTtcbiAgICAgICAgY29uc3QgY29uZmlnUmVzb2x2ZWRTaWduaW5nUmVnaW9uU2V0ID0gYXdhaXQgY29uZmlnLnNpZ3Y0YVNpZ25pbmdSZWdpb25TZXQ/LigpO1xuICAgICAgICBjb25zdCBtdWx0aVJlZ2lvbk92ZXJyaWRlID0gKGNvbmZpZ1Jlc29sdmVkU2lnbmluZ1JlZ2lvblNldCA/P1xuICAgICAgICAgICAgc2lnbmluZ1JlZ2lvblNldCA/PyBbc2lnbmluZ1JlZ2lvbl0pLmpvaW4oXCIsXCIpO1xuICAgICAgICBjb25zdCBzaWduZWRSZXF1ZXN0ID0gYXdhaXQgc2lnbmVyLnNpZ24oaHR0cFJlcXVlc3QsIHtcbiAgICAgICAgICAgIHNpZ25pbmdEYXRlOiBnZXRTa2V3Q29ycmVjdGVkRGF0ZShjb25maWcuc3lzdGVtQ2xvY2tPZmZzZXQpLFxuICAgICAgICAgICAgc2lnbmluZ1JlZ2lvbjogbXVsdGlSZWdpb25PdmVycmlkZSxcbiAgICAgICAgICAgIHNpZ25pbmdTZXJ2aWNlOiBzaWduaW5nTmFtZSxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBzaWduZWRSZXF1ZXN0O1xuICAgIH1cbn1cbiIsICJleHBvcnQgY29uc3QgZ2V0QXJyYXlGb3JDb21tYVNlcGFyYXRlZFN0cmluZyA9IChzdHIpID0+IHR5cGVvZiBzdHIgPT09IFwic3RyaW5nXCIgJiYgc3RyLmxlbmd0aCA+IDAgPyBzdHIuc3BsaXQoXCIsXCIpLm1hcCgoaXRlbSkgPT4gaXRlbS50cmltKCkpIDogW107XG4iLCAiZXhwb3J0IGNvbnN0IGdldEJlYXJlclRva2VuRW52S2V5ID0gKHNpZ25pbmdOYW1lKSA9PiBgQVdTX0JFQVJFUl9UT0tFTl8ke3NpZ25pbmdOYW1lLnJlcGxhY2UoL1tcXHMtXS9nLCBcIl9cIikudG9VcHBlckNhc2UoKX1gO1xuIiwgImltcG9ydCB7IGdldEFycmF5Rm9yQ29tbWFTZXBhcmF0ZWRTdHJpbmcgfSBmcm9tIFwiLi4vdXRpbHMvZ2V0QXJyYXlGb3JDb21tYVNlcGFyYXRlZFN0cmluZ1wiO1xuaW1wb3J0IHsgZ2V0QmVhcmVyVG9rZW5FbnZLZXkgfSBmcm9tIFwiLi4vdXRpbHMvZ2V0QmVhcmVyVG9rZW5FbnZLZXlcIjtcbmNvbnN0IE5PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9FTlZfS0VZID0gXCJBV1NfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRVwiO1xuY29uc3QgTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX0NPTkZJR19LRVkgPSBcImF1dGhfc2NoZW1lX3ByZWZlcmVuY2VcIjtcbmV4cG9ydCBjb25zdCBOT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfT1BUSU9OUyA9IHtcbiAgICBlbnZpcm9ubWVudFZhcmlhYmxlU2VsZWN0b3I6IChlbnYsIG9wdGlvbnMpID0+IHtcbiAgICAgICAgaWYgKG9wdGlvbnM/LnNpZ25pbmdOYW1lKSB7XG4gICAgICAgICAgICBjb25zdCBiZWFyZXJUb2tlbktleSA9IGdldEJlYXJlclRva2VuRW52S2V5KG9wdGlvbnMuc2lnbmluZ05hbWUpO1xuICAgICAgICAgICAgaWYgKGJlYXJlclRva2VuS2V5IGluIGVudilcbiAgICAgICAgICAgICAgICByZXR1cm4gW1wiaHR0cEJlYXJlckF1dGhcIl07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCEoTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX0VOVl9LRVkgaW4gZW52KSlcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIHJldHVybiBnZXRBcnJheUZvckNvbW1hU2VwYXJhdGVkU3RyaW5nKGVudltOT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfRU5WX0tFWV0pO1xuICAgIH0sXG4gICAgY29uZmlnRmlsZVNlbGVjdG9yOiAocHJvZmlsZSkgPT4ge1xuICAgICAgICBpZiAoIShOT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfQ09ORklHX0tFWSBpbiBwcm9maWxlKSlcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIHJldHVybiBnZXRBcnJheUZvckNvbW1hU2VwYXJhdGVkU3RyaW5nKHByb2ZpbGVbTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX0NPTkZJR19LRVldKTtcbiAgICB9LFxuICAgIGRlZmF1bHQ6IFtdLFxufTtcbiIsICJpbXBvcnQgeyBub3JtYWxpemVQcm92aWRlciB9IGZyb20gXCJAc21pdGh5L2NvcmVcIjtcbmltcG9ydCB7IFByb3ZpZGVyRXJyb3IgfSBmcm9tIFwiQHNtaXRoeS9wcm9wZXJ0eS1wcm92aWRlclwiO1xuZXhwb3J0IGNvbnN0IHJlc29sdmVBd3NTZGtTaWdWNEFDb25maWcgPSAoY29uZmlnKSA9PiB7XG4gICAgY29uZmlnLnNpZ3Y0YVNpZ25pbmdSZWdpb25TZXQgPSBub3JtYWxpemVQcm92aWRlcihjb25maWcuc2lndjRhU2lnbmluZ1JlZ2lvblNldCk7XG4gICAgcmV0dXJuIGNvbmZpZztcbn07XG5leHBvcnQgY29uc3QgTk9ERV9TSUdWNEFfQ09ORklHX09QVElPTlMgPSB7XG4gICAgZW52aXJvbm1lbnRWYXJpYWJsZVNlbGVjdG9yKGVudikge1xuICAgICAgICBpZiAoZW52LkFXU19TSUdWNEFfU0lHTklOR19SRUdJT05fU0VUKSB7XG4gICAgICAgICAgICByZXR1cm4gZW52LkFXU19TSUdWNEFfU0lHTklOR19SRUdJT05fU0VULnNwbGl0KFwiLFwiKS5tYXAoKF8pID0+IF8udHJpbSgpKTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBuZXcgUHJvdmlkZXJFcnJvcihcIkFXU19TSUdWNEFfU0lHTklOR19SRUdJT05fU0VUIG5vdCBzZXQgaW4gZW52LlwiLCB7XG4gICAgICAgICAgICB0cnlOZXh0TGluazogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgfSxcbiAgICBjb25maWdGaWxlU2VsZWN0b3IocHJvZmlsZSkge1xuICAgICAgICBpZiAocHJvZmlsZS5zaWd2NGFfc2lnbmluZ19yZWdpb25fc2V0KSB7XG4gICAgICAgICAgICByZXR1cm4gKHByb2ZpbGUuc2lndjRhX3NpZ25pbmdfcmVnaW9uX3NldCA/PyBcIlwiKS5zcGxpdChcIixcIikubWFwKChfKSA9PiBfLnRyaW0oKSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgbmV3IFByb3ZpZGVyRXJyb3IoXCJzaWd2NGFfc2lnbmluZ19yZWdpb25fc2V0IG5vdCBzZXQgaW4gcHJvZmlsZS5cIiwge1xuICAgICAgICAgICAgdHJ5TmV4dExpbms6IHRydWUsXG4gICAgICAgIH0pO1xuICAgIH0sXG4gICAgZGVmYXVsdDogdW5kZWZpbmVkLFxufTtcbiIsICJpbXBvcnQgeyBzZXRDcmVkZW50aWFsRmVhdHVyZSB9IGZyb20gXCJAYXdzLXNkay9jb3JlL2NsaWVudFwiO1xuaW1wb3J0IHsgZG9lc0lkZW50aXR5UmVxdWlyZVJlZnJlc2gsIGlzSWRlbnRpdHlFeHBpcmVkLCBtZW1vaXplSWRlbnRpdHlQcm92aWRlciwgbm9ybWFsaXplUHJvdmlkZXIsIH0gZnJvbSBcIkBzbWl0aHkvY29yZVwiO1xuaW1wb3J0IHsgU2lnbmF0dXJlVjQgfSBmcm9tIFwiQHNtaXRoeS9zaWduYXR1cmUtdjRcIjtcbmV4cG9ydCBjb25zdCByZXNvbHZlQXdzU2RrU2lnVjRDb25maWcgPSAoY29uZmlnKSA9PiB7XG4gICAgbGV0IGlucHV0Q3JlZGVudGlhbHMgPSBjb25maWcuY3JlZGVudGlhbHM7XG4gICAgbGV0IGlzVXNlclN1cHBsaWVkID0gISFjb25maWcuY3JlZGVudGlhbHM7XG4gICAgbGV0IHJlc29sdmVkQ3JlZGVudGlhbHMgPSB1bmRlZmluZWQ7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNvbmZpZywgXCJjcmVkZW50aWFsc1wiLCB7XG4gICAgICAgIHNldChjcmVkZW50aWFscykge1xuICAgICAgICAgICAgaWYgKGNyZWRlbnRpYWxzICYmIGNyZWRlbnRpYWxzICE9PSBpbnB1dENyZWRlbnRpYWxzICYmIGNyZWRlbnRpYWxzICE9PSByZXNvbHZlZENyZWRlbnRpYWxzKSB7XG4gICAgICAgICAgICAgICAgaXNVc2VyU3VwcGxpZWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaW5wdXRDcmVkZW50aWFscyA9IGNyZWRlbnRpYWxzO1xuICAgICAgICAgICAgY29uc3QgbWVtb2l6ZWRQcm92aWRlciA9IG5vcm1hbGl6ZUNyZWRlbnRpYWxQcm92aWRlcihjb25maWcsIHtcbiAgICAgICAgICAgICAgICBjcmVkZW50aWFsczogaW5wdXRDcmVkZW50aWFscyxcbiAgICAgICAgICAgICAgICBjcmVkZW50aWFsRGVmYXVsdFByb3ZpZGVyOiBjb25maWcuY3JlZGVudGlhbERlZmF1bHRQcm92aWRlcixcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29uc3QgYm91bmRQcm92aWRlciA9IGJpbmRDYWxsZXJDb25maWcoY29uZmlnLCBtZW1vaXplZFByb3ZpZGVyKTtcbiAgICAgICAgICAgIGlmIChpc1VzZXJTdXBwbGllZCAmJiAhYm91bmRQcm92aWRlci5hdHRyaWJ1dGVkKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNDcmVkZW50aWFsT2JqZWN0ID0gdHlwZW9mIGlucHV0Q3JlZGVudGlhbHMgPT09IFwib2JqZWN0XCIgJiYgaW5wdXRDcmVkZW50aWFscyAhPT0gbnVsbDtcbiAgICAgICAgICAgICAgICByZXNvbHZlZENyZWRlbnRpYWxzID0gYXN5bmMgKG9wdGlvbnMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY3JlZHMgPSBhd2FpdCBib3VuZFByb3ZpZGVyKG9wdGlvbnMpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhdHRyaWJ1dGVkQ3JlZHMgPSBjcmVkcztcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzQ3JlZGVudGlhbE9iamVjdCAmJiAoIWF0dHJpYnV0ZWRDcmVkcy4kc291cmNlIHx8IE9iamVjdC5rZXlzKGF0dHJpYnV0ZWRDcmVkcy4kc291cmNlKS5sZW5ndGggPT09IDApKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2V0Q3JlZGVudGlhbEZlYXR1cmUoYXR0cmlidXRlZENyZWRzLCBcIkNSRURFTlRJQUxTX0NPREVcIiwgXCJlXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhdHRyaWJ1dGVkQ3JlZHM7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICByZXNvbHZlZENyZWRlbnRpYWxzLm1lbW9pemVkID0gYm91bmRQcm92aWRlci5tZW1vaXplZDtcbiAgICAgICAgICAgICAgICByZXNvbHZlZENyZWRlbnRpYWxzLmNvbmZpZ0JvdW5kID0gYm91bmRQcm92aWRlci5jb25maWdCb3VuZDtcbiAgICAgICAgICAgICAgICByZXNvbHZlZENyZWRlbnRpYWxzLmF0dHJpYnV0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZWRDcmVkZW50aWFscyA9IGJvdW5kUHJvdmlkZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGdldCgpIHtcbiAgICAgICAgICAgIHJldHVybiByZXNvbHZlZENyZWRlbnRpYWxzO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgfSk7XG4gICAgY29uZmlnLmNyZWRlbnRpYWxzID0gaW5wdXRDcmVkZW50aWFscztcbiAgICBjb25zdCB7IHNpZ25pbmdFc2NhcGVQYXRoID0gdHJ1ZSwgc3lzdGVtQ2xvY2tPZmZzZXQgPSBjb25maWcuc3lzdGVtQ2xvY2tPZmZzZXQgfHwgMCwgc2hhMjU2LCB9ID0gY29uZmlnO1xuICAgIGxldCBzaWduZXI7XG4gICAgaWYgKGNvbmZpZy5zaWduZXIpIHtcbiAgICAgICAgc2lnbmVyID0gbm9ybWFsaXplUHJvdmlkZXIoY29uZmlnLnNpZ25lcik7XG4gICAgfVxuICAgIGVsc2UgaWYgKGNvbmZpZy5yZWdpb25JbmZvUHJvdmlkZXIpIHtcbiAgICAgICAgc2lnbmVyID0gKCkgPT4gbm9ybWFsaXplUHJvdmlkZXIoY29uZmlnLnJlZ2lvbikoKVxuICAgICAgICAgICAgLnRoZW4oYXN5bmMgKHJlZ2lvbikgPT4gW1xuICAgICAgICAgICAgKGF3YWl0IGNvbmZpZy5yZWdpb25JbmZvUHJvdmlkZXIocmVnaW9uLCB7XG4gICAgICAgICAgICAgICAgdXNlRmlwc0VuZHBvaW50OiBhd2FpdCBjb25maWcudXNlRmlwc0VuZHBvaW50KCksXG4gICAgICAgICAgICAgICAgdXNlRHVhbHN0YWNrRW5kcG9pbnQ6IGF3YWl0IGNvbmZpZy51c2VEdWFsc3RhY2tFbmRwb2ludCgpLFxuICAgICAgICAgICAgfSkpIHx8IHt9LFxuICAgICAgICAgICAgcmVnaW9uLFxuICAgICAgICBdKVxuICAgICAgICAgICAgLnRoZW4oKFtyZWdpb25JbmZvLCByZWdpb25dKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IHNpZ25pbmdSZWdpb24sIHNpZ25pbmdTZXJ2aWNlIH0gPSByZWdpb25JbmZvO1xuICAgICAgICAgICAgY29uZmlnLnNpZ25pbmdSZWdpb24gPSBjb25maWcuc2lnbmluZ1JlZ2lvbiB8fCBzaWduaW5nUmVnaW9uIHx8IHJlZ2lvbjtcbiAgICAgICAgICAgIGNvbmZpZy5zaWduaW5nTmFtZSA9IGNvbmZpZy5zaWduaW5nTmFtZSB8fCBzaWduaW5nU2VydmljZSB8fCBjb25maWcuc2VydmljZUlkO1xuICAgICAgICAgICAgY29uc3QgcGFyYW1zID0ge1xuICAgICAgICAgICAgICAgIC4uLmNvbmZpZyxcbiAgICAgICAgICAgICAgICBjcmVkZW50aWFsczogY29uZmlnLmNyZWRlbnRpYWxzLFxuICAgICAgICAgICAgICAgIHJlZ2lvbjogY29uZmlnLnNpZ25pbmdSZWdpb24sXG4gICAgICAgICAgICAgICAgc2VydmljZTogY29uZmlnLnNpZ25pbmdOYW1lLFxuICAgICAgICAgICAgICAgIHNoYTI1NixcbiAgICAgICAgICAgICAgICB1cmlFc2NhcGVQYXRoOiBzaWduaW5nRXNjYXBlUGF0aCxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBjb25zdCBTaWduZXJDdG9yID0gY29uZmlnLnNpZ25lckNvbnN0cnVjdG9yIHx8IFNpZ25hdHVyZVY0O1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBTaWduZXJDdG9yKHBhcmFtcyk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgc2lnbmVyID0gYXN5bmMgKGF1dGhTY2hlbWUpID0+IHtcbiAgICAgICAgICAgIGF1dGhTY2hlbWUgPSBPYmplY3QuYXNzaWduKHt9LCB7XG4gICAgICAgICAgICAgICAgbmFtZTogXCJzaWd2NFwiLFxuICAgICAgICAgICAgICAgIHNpZ25pbmdOYW1lOiBjb25maWcuc2lnbmluZ05hbWUgfHwgY29uZmlnLmRlZmF1bHRTaWduaW5nTmFtZSxcbiAgICAgICAgICAgICAgICBzaWduaW5nUmVnaW9uOiBhd2FpdCBub3JtYWxpemVQcm92aWRlcihjb25maWcucmVnaW9uKSgpLFxuICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IHt9LFxuICAgICAgICAgICAgfSwgYXV0aFNjaGVtZSk7XG4gICAgICAgICAgICBjb25zdCBzaWduaW5nUmVnaW9uID0gYXV0aFNjaGVtZS5zaWduaW5nUmVnaW9uO1xuICAgICAgICAgICAgY29uc3Qgc2lnbmluZ1NlcnZpY2UgPSBhdXRoU2NoZW1lLnNpZ25pbmdOYW1lO1xuICAgICAgICAgICAgY29uZmlnLnNpZ25pbmdSZWdpb24gPSBjb25maWcuc2lnbmluZ1JlZ2lvbiB8fCBzaWduaW5nUmVnaW9uO1xuICAgICAgICAgICAgY29uZmlnLnNpZ25pbmdOYW1lID0gY29uZmlnLnNpZ25pbmdOYW1lIHx8IHNpZ25pbmdTZXJ2aWNlIHx8IGNvbmZpZy5zZXJ2aWNlSWQ7XG4gICAgICAgICAgICBjb25zdCBwYXJhbXMgPSB7XG4gICAgICAgICAgICAgICAgLi4uY29uZmlnLFxuICAgICAgICAgICAgICAgIGNyZWRlbnRpYWxzOiBjb25maWcuY3JlZGVudGlhbHMsXG4gICAgICAgICAgICAgICAgcmVnaW9uOiBjb25maWcuc2lnbmluZ1JlZ2lvbixcbiAgICAgICAgICAgICAgICBzZXJ2aWNlOiBjb25maWcuc2lnbmluZ05hbWUsXG4gICAgICAgICAgICAgICAgc2hhMjU2LFxuICAgICAgICAgICAgICAgIHVyaUVzY2FwZVBhdGg6IHNpZ25pbmdFc2NhcGVQYXRoLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGNvbnN0IFNpZ25lckN0b3IgPSBjb25maWcuc2lnbmVyQ29uc3RydWN0b3IgfHwgU2lnbmF0dXJlVjQ7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFNpZ25lckN0b3IocGFyYW1zKTtcbiAgICAgICAgfTtcbiAgICB9XG4gICAgY29uc3QgcmVzb2x2ZWRDb25maWcgPSBPYmplY3QuYXNzaWduKGNvbmZpZywge1xuICAgICAgICBzeXN0ZW1DbG9ja09mZnNldCxcbiAgICAgICAgc2lnbmluZ0VzY2FwZVBhdGgsXG4gICAgICAgIHNpZ25lcixcbiAgICB9KTtcbiAgICByZXR1cm4gcmVzb2x2ZWRDb25maWc7XG59O1xuZXhwb3J0IGNvbnN0IHJlc29sdmVBV1NTREtTaWdWNENvbmZpZyA9IHJlc29sdmVBd3NTZGtTaWdWNENvbmZpZztcbmZ1bmN0aW9uIG5vcm1hbGl6ZUNyZWRlbnRpYWxQcm92aWRlcihjb25maWcsIHsgY3JlZGVudGlhbHMsIGNyZWRlbnRpYWxEZWZhdWx0UHJvdmlkZXIsIH0pIHtcbiAgICBsZXQgY3JlZGVudGlhbHNQcm92aWRlcjtcbiAgICBpZiAoY3JlZGVudGlhbHMpIHtcbiAgICAgICAgaWYgKCFjcmVkZW50aWFscz8ubWVtb2l6ZWQpIHtcbiAgICAgICAgICAgIGNyZWRlbnRpYWxzUHJvdmlkZXIgPSBtZW1vaXplSWRlbnRpdHlQcm92aWRlcihjcmVkZW50aWFscywgaXNJZGVudGl0eUV4cGlyZWQsIGRvZXNJZGVudGl0eVJlcXVpcmVSZWZyZXNoKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNyZWRlbnRpYWxzUHJvdmlkZXIgPSBjcmVkZW50aWFscztcbiAgICAgICAgfVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgaWYgKGNyZWRlbnRpYWxEZWZhdWx0UHJvdmlkZXIpIHtcbiAgICAgICAgICAgIGNyZWRlbnRpYWxzUHJvdmlkZXIgPSBub3JtYWxpemVQcm92aWRlcihjcmVkZW50aWFsRGVmYXVsdFByb3ZpZGVyKE9iamVjdC5hc3NpZ24oe30sIGNvbmZpZywge1xuICAgICAgICAgICAgICAgIHBhcmVudENsaWVudENvbmZpZzogY29uZmlnLFxuICAgICAgICAgICAgfSkpKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNyZWRlbnRpYWxzUHJvdmlkZXIgPSBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQGF3cy1zZGsvY29yZTo6cmVzb2x2ZUF3c1Nka1NpZ1Y0Q29uZmlnIC0gYGNyZWRlbnRpYWxzYCBub3QgcHJvdmlkZWQgYW5kIG5vIGNyZWRlbnRpYWxEZWZhdWx0UHJvdmlkZXIgd2FzIGNvbmZpZ3VyZWQuXCIpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjcmVkZW50aWFsc1Byb3ZpZGVyLm1lbW9pemVkID0gdHJ1ZTtcbiAgICByZXR1cm4gY3JlZGVudGlhbHNQcm92aWRlcjtcbn1cbmZ1bmN0aW9uIGJpbmRDYWxsZXJDb25maWcoY29uZmlnLCBjcmVkZW50aWFsc1Byb3ZpZGVyKSB7XG4gICAgaWYgKGNyZWRlbnRpYWxzUHJvdmlkZXIuY29uZmlnQm91bmQpIHtcbiAgICAgICAgcmV0dXJuIGNyZWRlbnRpYWxzUHJvdmlkZXI7XG4gICAgfVxuICAgIGNvbnN0IGZuID0gYXN5bmMgKG9wdGlvbnMpID0+IGNyZWRlbnRpYWxzUHJvdmlkZXIoeyAuLi5vcHRpb25zLCBjYWxsZXJDbGllbnRDb25maWc6IGNvbmZpZyB9KTtcbiAgICBmbi5tZW1vaXplZCA9IGNyZWRlbnRpYWxzUHJvdmlkZXIubWVtb2l6ZWQ7XG4gICAgZm4uY29uZmlnQm91bmQgPSB0cnVlO1xuICAgIHJldHVybiBmbjtcbn1cbiIsICJleHBvcnQgeyBBd3NTZGtTaWdWNFNpZ25lciwgQVdTU0RLU2lnVjRTaWduZXIsIHZhbGlkYXRlU2lnbmluZ1Byb3BlcnRpZXMgfSBmcm9tIFwiLi9Bd3NTZGtTaWdWNFNpZ25lclwiO1xuZXhwb3J0IHsgQXdzU2RrU2lnVjRBU2lnbmVyIH0gZnJvbSBcIi4vQXdzU2RrU2lnVjRBU2lnbmVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9OT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfT1BUSU9OU1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcmVzb2x2ZUF3c1Nka1NpZ1Y0QUNvbmZpZ1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcmVzb2x2ZUF3c1Nka1NpZ1Y0Q29uZmlnXCI7XG4iLCAiZXhwb3J0ICogZnJvbSBcIi4vYXdzX3Nka1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vdXRpbHMvZ2V0QmVhcmVyVG9rZW5FbnZLZXlcIjtcbiIsICJpbXBvcnQgeyBOb3JtYWxpemVkU2NoZW1hLCBUeXBlUmVnaXN0cnkgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3NjaGVtYVwiO1xuaW1wb3J0IHsgZGVjb3JhdGVTZXJ2aWNlRXhjZXB0aW9uIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuZXhwb3J0IGNsYXNzIFByb3RvY29sTGliIHtcbiAgICBxdWVyeUNvbXBhdDtcbiAgICBjb25zdHJ1Y3RvcihxdWVyeUNvbXBhdCA9IGZhbHNlKSB7XG4gICAgICAgIHRoaXMucXVlcnlDb21wYXQgPSBxdWVyeUNvbXBhdDtcbiAgICB9XG4gICAgcmVzb2x2ZVJlc3RDb250ZW50VHlwZShkZWZhdWx0Q29udGVudFR5cGUsIGlucHV0U2NoZW1hKSB7XG4gICAgICAgIGNvbnN0IG1lbWJlcnMgPSBpbnB1dFNjaGVtYS5nZXRNZW1iZXJTY2hlbWFzKCk7XG4gICAgICAgIGNvbnN0IGh0dHBQYXlsb2FkTWVtYmVyID0gT2JqZWN0LnZhbHVlcyhtZW1iZXJzKS5maW5kKChtKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gISFtLmdldE1lcmdlZFRyYWl0cygpLmh0dHBQYXlsb2FkO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGh0dHBQYXlsb2FkTWVtYmVyKSB7XG4gICAgICAgICAgICBjb25zdCBtZWRpYVR5cGUgPSBodHRwUGF5bG9hZE1lbWJlci5nZXRNZXJnZWRUcmFpdHMoKS5tZWRpYVR5cGU7XG4gICAgICAgICAgICBpZiAobWVkaWFUeXBlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1lZGlhVHlwZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGh0dHBQYXlsb2FkTWVtYmVyLmlzU3RyaW5nU2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJ0ZXh0L3BsYWluXCI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChodHRwUGF5bG9hZE1lbWJlci5pc0Jsb2JTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBcImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbVwiO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRDb250ZW50VHlwZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICghaW5wdXRTY2hlbWEuaXNVbml0U2NoZW1hKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IGhhc0JvZHkgPSBPYmplY3QudmFsdWVzKG1lbWJlcnMpLmZpbmQoKG0pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGh0dHBRdWVyeSwgaHR0cFF1ZXJ5UGFyYW1zLCBodHRwSGVhZGVyLCBodHRwTGFiZWwsIGh0dHBQcmVmaXhIZWFkZXJzIH0gPSBtLmdldE1lcmdlZFRyYWl0cygpO1xuICAgICAgICAgICAgICAgIGNvbnN0IG5vUHJlZml4SGVhZGVycyA9IGh0dHBQcmVmaXhIZWFkZXJzID09PSB2b2lkIDA7XG4gICAgICAgICAgICAgICAgcmV0dXJuICFodHRwUXVlcnkgJiYgIWh0dHBRdWVyeVBhcmFtcyAmJiAhaHR0cEhlYWRlciAmJiAhaHR0cExhYmVsICYmIG5vUHJlZml4SGVhZGVycztcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWYgKGhhc0JvZHkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZGVmYXVsdENvbnRlbnRUeXBlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGFzeW5jIGdldEVycm9yU2NoZW1hT3JUaHJvd0Jhc2VFeGNlcHRpb24oZXJyb3JJZGVudGlmaWVyLCBkZWZhdWx0TmFtZXNwYWNlLCByZXNwb25zZSwgZGF0YU9iamVjdCwgbWV0YWRhdGEsIGdldEVycm9yU2NoZW1hKSB7XG4gICAgICAgIGxldCBuYW1lc3BhY2UgPSBkZWZhdWx0TmFtZXNwYWNlO1xuICAgICAgICBsZXQgZXJyb3JOYW1lID0gZXJyb3JJZGVudGlmaWVyO1xuICAgICAgICBpZiAoZXJyb3JJZGVudGlmaWVyLmluY2x1ZGVzKFwiI1wiKSkge1xuICAgICAgICAgICAgW25hbWVzcGFjZSwgZXJyb3JOYW1lXSA9IGVycm9ySWRlbnRpZmllci5zcGxpdChcIiNcIik7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZXJyb3JNZXRhZGF0YSA9IHtcbiAgICAgICAgICAgICRtZXRhZGF0YTogbWV0YWRhdGEsXG4gICAgICAgICAgICAkZmF1bHQ6IHJlc3BvbnNlLnN0YXR1c0NvZGUgPCA1MDAgPyBcImNsaWVudFwiIDogXCJzZXJ2ZXJcIixcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgcmVnaXN0cnkgPSBUeXBlUmVnaXN0cnkuZm9yKG5hbWVzcGFjZSk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBlcnJvclNjaGVtYSA9IGdldEVycm9yU2NoZW1hPy4ocmVnaXN0cnksIGVycm9yTmFtZSkgPz8gcmVnaXN0cnkuZ2V0U2NoZW1hKGVycm9ySWRlbnRpZmllcik7XG4gICAgICAgICAgICByZXR1cm4geyBlcnJvclNjaGVtYSwgZXJyb3JNZXRhZGF0YSB9O1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICBkYXRhT2JqZWN0Lm1lc3NhZ2UgPSBkYXRhT2JqZWN0Lm1lc3NhZ2UgPz8gZGF0YU9iamVjdC5NZXNzYWdlID8/IFwiVW5rbm93bkVycm9yXCI7XG4gICAgICAgICAgICBjb25zdCBzeW50aGV0aWMgPSBUeXBlUmVnaXN0cnkuZm9yKFwic21pdGh5LnRzLnNkay5zeW50aGV0aWMuXCIgKyBuYW1lc3BhY2UpO1xuICAgICAgICAgICAgY29uc3QgYmFzZUV4Y2VwdGlvblNjaGVtYSA9IHN5bnRoZXRpYy5nZXRCYXNlRXhjZXB0aW9uKCk7XG4gICAgICAgICAgICBpZiAoYmFzZUV4Y2VwdGlvblNjaGVtYSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IEVycm9yQ3RvciA9IHN5bnRoZXRpYy5nZXRFcnJvckN0b3IoYmFzZUV4Y2VwdGlvblNjaGVtYSkgPz8gRXJyb3I7XG4gICAgICAgICAgICAgICAgdGhyb3cgdGhpcy5kZWNvcmF0ZVNlcnZpY2VFeGNlcHRpb24oT2JqZWN0LmFzc2lnbihuZXcgRXJyb3JDdG9yKHsgbmFtZTogZXJyb3JOYW1lIH0pLCBlcnJvck1ldGFkYXRhKSwgZGF0YU9iamVjdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyB0aGlzLmRlY29yYXRlU2VydmljZUV4Y2VwdGlvbihPYmplY3QuYXNzaWduKG5ldyBFcnJvcihlcnJvck5hbWUpLCBlcnJvck1ldGFkYXRhKSwgZGF0YU9iamVjdCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZGVjb3JhdGVTZXJ2aWNlRXhjZXB0aW9uKGV4Y2VwdGlvbiwgYWRkaXRpb25zID0ge30pIHtcbiAgICAgICAgaWYgKHRoaXMucXVlcnlDb21wYXQpIHtcbiAgICAgICAgICAgIGNvbnN0IG1zZyA9IGV4Y2VwdGlvbi5NZXNzYWdlID8/IGFkZGl0aW9ucy5NZXNzYWdlO1xuICAgICAgICAgICAgY29uc3QgZXJyb3IgPSBkZWNvcmF0ZVNlcnZpY2VFeGNlcHRpb24oZXhjZXB0aW9uLCBhZGRpdGlvbnMpO1xuICAgICAgICAgICAgaWYgKG1zZykge1xuICAgICAgICAgICAgICAgIGVycm9yLm1lc3NhZ2UgPSBtc2c7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlcnJvci5FcnJvciA9IHtcbiAgICAgICAgICAgICAgICAuLi5lcnJvci5FcnJvcixcbiAgICAgICAgICAgICAgICBUeXBlOiBlcnJvci5FcnJvcj8uVHlwZSxcbiAgICAgICAgICAgICAgICBDb2RlOiBlcnJvci5FcnJvcj8uQ29kZSxcbiAgICAgICAgICAgICAgICBNZXNzYWdlOiBlcnJvci5FcnJvcj8ubWVzc2FnZSA/PyBlcnJvci5FcnJvcj8uTWVzc2FnZSA/PyBtc2csXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY29uc3QgcmVxSWQgPSBlcnJvci4kbWV0YWRhdGEucmVxdWVzdElkO1xuICAgICAgICAgICAgaWYgKHJlcUlkKSB7XG4gICAgICAgICAgICAgICAgZXJyb3IuUmVxdWVzdElkID0gcmVxSWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZXJyb3I7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRlY29yYXRlU2VydmljZUV4Y2VwdGlvbihleGNlcHRpb24sIGFkZGl0aW9ucyk7XG4gICAgfVxuICAgIHNldFF1ZXJ5Q29tcGF0RXJyb3Iob3V0cHV0LCByZXNwb25zZSkge1xuICAgICAgICBjb25zdCBxdWVyeUVycm9ySGVhZGVyID0gcmVzcG9uc2UuaGVhZGVycz8uW1wieC1hbXpuLXF1ZXJ5LWVycm9yXCJdO1xuICAgICAgICBpZiAob3V0cHV0ICE9PSB1bmRlZmluZWQgJiYgcXVlcnlFcnJvckhlYWRlciAhPSBudWxsKSB7XG4gICAgICAgICAgICBjb25zdCBbQ29kZSwgVHlwZV0gPSBxdWVyeUVycm9ySGVhZGVyLnNwbGl0KFwiO1wiKTtcbiAgICAgICAgICAgIGNvbnN0IGVudHJpZXMgPSBPYmplY3QuZW50cmllcyhvdXRwdXQpO1xuICAgICAgICAgICAgY29uc3QgRXJyb3IgPSB7XG4gICAgICAgICAgICAgICAgQ29kZSxcbiAgICAgICAgICAgICAgICBUeXBlLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24ob3V0cHV0LCBFcnJvcik7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IFtrLCB2XSBvZiBlbnRyaWVzKSB7XG4gICAgICAgICAgICAgICAgRXJyb3JbayA9PT0gXCJtZXNzYWdlXCIgPyBcIk1lc3NhZ2VcIiA6IGtdID0gdjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlbGV0ZSBFcnJvci5fX3R5cGU7XG4gICAgICAgICAgICBvdXRwdXQuRXJyb3IgPSBFcnJvcjtcbiAgICAgICAgfVxuICAgIH1cbiAgICBxdWVyeUNvbXBhdE91dHB1dChxdWVyeUNvbXBhdEVycm9yRGF0YSwgZXJyb3JEYXRhKSB7XG4gICAgICAgIGlmIChxdWVyeUNvbXBhdEVycm9yRGF0YS5FcnJvcikge1xuICAgICAgICAgICAgZXJyb3JEYXRhLkVycm9yID0gcXVlcnlDb21wYXRFcnJvckRhdGEuRXJyb3I7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHF1ZXJ5Q29tcGF0RXJyb3JEYXRhLlR5cGUpIHtcbiAgICAgICAgICAgIGVycm9yRGF0YS5UeXBlID0gcXVlcnlDb21wYXRFcnJvckRhdGEuVHlwZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocXVlcnlDb21wYXRFcnJvckRhdGEuQ29kZSkge1xuICAgICAgICAgICAgZXJyb3JEYXRhLkNvZGUgPSBxdWVyeUNvbXBhdEVycm9yRGF0YS5Db2RlO1xuICAgICAgICB9XG4gICAgfVxuICAgIGZpbmRRdWVyeUNvbXBhdGlibGVFcnJvcihyZWdpc3RyeSwgZXJyb3JOYW1lKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gcmVnaXN0cnkuZ2V0U2NoZW1hKGVycm9yTmFtZSk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHJldHVybiByZWdpc3RyeS5maW5kKChzY2hlbWEpID0+IE5vcm1hbGl6ZWRTY2hlbWEub2Yoc2NoZW1hKS5nZXRNZXJnZWRUcmFpdHMoKS5hd3NRdWVyeUVycm9yPy5bMF0gPT09IGVycm9yTmFtZSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgbG9hZFNtaXRoeVJwY1YyQ2JvckVycm9yQ29kZSwgU21pdGh5UnBjVjJDYm9yUHJvdG9jb2wgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL2Nib3JcIjtcbmltcG9ydCB7IE5vcm1hbGl6ZWRTY2hlbWEsIFR5cGVSZWdpc3RyeSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2NoZW1hXCI7XG5pbXBvcnQgeyBQcm90b2NvbExpYiB9IGZyb20gXCIuLi9Qcm90b2NvbExpYlwiO1xuZXhwb3J0IGNsYXNzIEF3c1NtaXRoeVJwY1YyQ2JvclByb3RvY29sIGV4dGVuZHMgU21pdGh5UnBjVjJDYm9yUHJvdG9jb2wge1xuICAgIGF3c1F1ZXJ5Q29tcGF0aWJsZTtcbiAgICBtaXhpbjtcbiAgICBjb25zdHJ1Y3Rvcih7IGRlZmF1bHROYW1lc3BhY2UsIGF3c1F1ZXJ5Q29tcGF0aWJsZSwgfSkge1xuICAgICAgICBzdXBlcih7IGRlZmF1bHROYW1lc3BhY2UgfSk7XG4gICAgICAgIHRoaXMuYXdzUXVlcnlDb21wYXRpYmxlID0gISFhd3NRdWVyeUNvbXBhdGlibGU7XG4gICAgICAgIHRoaXMubWl4aW4gPSBuZXcgUHJvdG9jb2xMaWIodGhpcy5hd3NRdWVyeUNvbXBhdGlibGUpO1xuICAgIH1cbiAgICBhc3luYyBzZXJpYWxpemVSZXF1ZXN0KG9wZXJhdGlvblNjaGVtYSwgaW5wdXQsIGNvbnRleHQpIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IGF3YWl0IHN1cGVyLnNlcmlhbGl6ZVJlcXVlc3Qob3BlcmF0aW9uU2NoZW1hLCBpbnB1dCwgY29udGV4dCk7XG4gICAgICAgIGlmICh0aGlzLmF3c1F1ZXJ5Q29tcGF0aWJsZSkge1xuICAgICAgICAgICAgcmVxdWVzdC5oZWFkZXJzW1wieC1hbXpuLXF1ZXJ5LW1vZGVcIl0gPSBcInRydWVcIjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVxdWVzdDtcbiAgICB9XG4gICAgYXN5bmMgaGFuZGxlRXJyb3Iob3BlcmF0aW9uU2NoZW1hLCBjb250ZXh0LCByZXNwb25zZSwgZGF0YU9iamVjdCwgbWV0YWRhdGEpIHtcbiAgICAgICAgaWYgKHRoaXMuYXdzUXVlcnlDb21wYXRpYmxlKSB7XG4gICAgICAgICAgICB0aGlzLm1peGluLnNldFF1ZXJ5Q29tcGF0RXJyb3IoZGF0YU9iamVjdCwgcmVzcG9uc2UpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGVycm9yTmFtZSA9ICgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjb21wYXRIZWFkZXIgPSByZXNwb25zZS5oZWFkZXJzW1wieC1hbXpuLXF1ZXJ5LWVycm9yXCJdO1xuICAgICAgICAgICAgaWYgKGNvbXBhdEhlYWRlciAmJiB0aGlzLmF3c1F1ZXJ5Q29tcGF0aWJsZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBjb21wYXRIZWFkZXIuc3BsaXQoXCI7XCIpWzBdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGxvYWRTbWl0aHlScGNWMkNib3JFcnJvckNvZGUocmVzcG9uc2UsIGRhdGFPYmplY3QpID8/IFwiVW5rbm93blwiO1xuICAgICAgICB9KSgpO1xuICAgICAgICBjb25zdCB7IGVycm9yU2NoZW1hLCBlcnJvck1ldGFkYXRhIH0gPSBhd2FpdCB0aGlzLm1peGluLmdldEVycm9yU2NoZW1hT3JUaHJvd0Jhc2VFeGNlcHRpb24oZXJyb3JOYW1lLCB0aGlzLm9wdGlvbnMuZGVmYXVsdE5hbWVzcGFjZSwgcmVzcG9uc2UsIGRhdGFPYmplY3QsIG1ldGFkYXRhLCB0aGlzLmF3c1F1ZXJ5Q29tcGF0aWJsZSA/IHRoaXMubWl4aW4uZmluZFF1ZXJ5Q29tcGF0aWJsZUVycm9yIDogdW5kZWZpbmVkKTtcbiAgICAgICAgY29uc3QgbnMgPSBOb3JtYWxpemVkU2NoZW1hLm9mKGVycm9yU2NoZW1hKTtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGRhdGFPYmplY3QubWVzc2FnZSA/PyBkYXRhT2JqZWN0Lk1lc3NhZ2UgPz8gXCJVbmtub3duXCI7XG4gICAgICAgIGNvbnN0IEVycm9yQ3RvciA9IFR5cGVSZWdpc3RyeS5mb3IoZXJyb3JTY2hlbWFbMV0pLmdldEVycm9yQ3RvcihlcnJvclNjaGVtYSkgPz8gRXJyb3I7XG4gICAgICAgIGNvbnN0IGV4Y2VwdGlvbiA9IG5ldyBFcnJvckN0b3IobWVzc2FnZSk7XG4gICAgICAgIGNvbnN0IG91dHB1dCA9IHt9O1xuICAgICAgICBmb3IgKGNvbnN0IFtuYW1lLCBtZW1iZXJdIG9mIG5zLnN0cnVjdEl0ZXJhdG9yKCkpIHtcbiAgICAgICAgICAgIGlmIChkYXRhT2JqZWN0W25hbWVdICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICBvdXRwdXRbbmFtZV0gPSB0aGlzLmRlc2VyaWFsaXplci5yZWFkVmFsdWUobWVtYmVyLCBkYXRhT2JqZWN0W25hbWVdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5hd3NRdWVyeUNvbXBhdGlibGUpIHtcbiAgICAgICAgICAgIHRoaXMubWl4aW4ucXVlcnlDb21wYXRPdXRwdXQoZGF0YU9iamVjdCwgb3V0cHV0KTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyB0aGlzLm1peGluLmRlY29yYXRlU2VydmljZUV4Y2VwdGlvbihPYmplY3QuYXNzaWduKGV4Y2VwdGlvbiwgZXJyb3JNZXRhZGF0YSwge1xuICAgICAgICAgICAgJGZhdWx0OiBucy5nZXRNZXJnZWRUcmFpdHMoKS5lcnJvcixcbiAgICAgICAgICAgIG1lc3NhZ2UsXG4gICAgICAgIH0sIG91dHB1dCksIGRhdGFPYmplY3QpO1xuICAgIH1cbn1cbiIsICJleHBvcnQgY29uc3QgX3RvU3RyID0gKHZhbCkgPT4ge1xuICAgIGlmICh2YWwgPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gdmFsO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHZhbCA9PT0gXCJudW1iZXJcIiB8fCB0eXBlb2YgdmFsID09PSBcImJpZ2ludFwiKSB7XG4gICAgICAgIGNvbnN0IHdhcm5pbmcgPSBuZXcgRXJyb3IoYFJlY2VpdmVkIG51bWJlciAke3ZhbH0gd2hlcmUgYSBzdHJpbmcgd2FzIGV4cGVjdGVkLmApO1xuICAgICAgICB3YXJuaW5nLm5hbWUgPSBcIldhcm5pbmdcIjtcbiAgICAgICAgY29uc29sZS53YXJuKHdhcm5pbmcpO1xuICAgICAgICByZXR1cm4gU3RyaW5nKHZhbCk7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgdmFsID09PSBcImJvb2xlYW5cIikge1xuICAgICAgICBjb25zdCB3YXJuaW5nID0gbmV3IEVycm9yKGBSZWNlaXZlZCBib29sZWFuICR7dmFsfSB3aGVyZSBhIHN0cmluZyB3YXMgZXhwZWN0ZWQuYCk7XG4gICAgICAgIHdhcm5pbmcubmFtZSA9IFwiV2FybmluZ1wiO1xuICAgICAgICBjb25zb2xlLndhcm4od2FybmluZyk7XG4gICAgICAgIHJldHVybiBTdHJpbmcodmFsKTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbDtcbn07XG5leHBvcnQgY29uc3QgX3RvQm9vbCA9ICh2YWwpID0+IHtcbiAgICBpZiAodmFsID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHZhbDtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB2YWwgPT09IFwibnVtYmVyXCIpIHtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB2YWwgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgY29uc3QgbG93ZXJjYXNlID0gdmFsLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGlmICh2YWwgIT09IFwiXCIgJiYgbG93ZXJjYXNlICE9PSBcImZhbHNlXCIgJiYgbG93ZXJjYXNlICE9PSBcInRydWVcIikge1xuICAgICAgICAgICAgY29uc3Qgd2FybmluZyA9IG5ldyBFcnJvcihgUmVjZWl2ZWQgc3RyaW5nIFwiJHt2YWx9XCIgd2hlcmUgYSBib29sZWFuIHdhcyBleHBlY3RlZC5gKTtcbiAgICAgICAgICAgIHdhcm5pbmcubmFtZSA9IFwiV2FybmluZ1wiO1xuICAgICAgICAgICAgY29uc29sZS53YXJuKHdhcm5pbmcpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWwgIT09IFwiXCIgJiYgbG93ZXJjYXNlICE9PSBcImZhbHNlXCI7XG4gICAgfVxuICAgIHJldHVybiB2YWw7XG59O1xuZXhwb3J0IGNvbnN0IF90b051bSA9ICh2YWwpID0+IHtcbiAgICBpZiAodmFsID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHZhbDtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB2YWwgPT09IFwiYm9vbGVhblwiKSB7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgdmFsID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIGNvbnN0IG51bSA9IE51bWJlcih2YWwpO1xuICAgICAgICBpZiAobnVtLnRvU3RyaW5nKCkgIT09IHZhbCkge1xuICAgICAgICAgICAgY29uc3Qgd2FybmluZyA9IG5ldyBFcnJvcihgUmVjZWl2ZWQgc3RyaW5nIFwiJHt2YWx9XCIgd2hlcmUgYSBudW1iZXIgd2FzIGV4cGVjdGVkLmApO1xuICAgICAgICAgICAgd2FybmluZy5uYW1lID0gXCJXYXJuaW5nXCI7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4od2FybmluZyk7XG4gICAgICAgICAgICByZXR1cm4gdmFsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudW07XG4gICAgfVxuICAgIHJldHVybiB2YWw7XG59O1xuIiwgImV4cG9ydCBjbGFzcyBTZXJkZUNvbnRleHRDb25maWcge1xuICAgIHNlcmRlQ29udGV4dDtcbiAgICBzZXRTZXJkZUNvbnRleHQoc2VyZGVDb250ZXh0KSB7XG4gICAgICAgIHRoaXMuc2VyZGVDb250ZXh0ID0gc2VyZGVDb250ZXh0O1xuICAgIH1cbn1cbiIsICJleHBvcnQgY2xhc3MgVW5pb25TZXJkZSB7XG4gICAgZnJvbTtcbiAgICB0bztcbiAgICBrZXlzO1xuICAgIGNvbnN0cnVjdG9yKGZyb20sIHRvKSB7XG4gICAgICAgIHRoaXMuZnJvbSA9IGZyb207XG4gICAgICAgIHRoaXMudG8gPSB0bztcbiAgICAgICAgdGhpcy5rZXlzID0gbmV3IFNldChPYmplY3Qua2V5cyh0aGlzLmZyb20pLmZpbHRlcigoaykgPT4gayAhPT0gXCJfX3R5cGVcIikpO1xuICAgIH1cbiAgICBtYXJrKGtleSkge1xuICAgICAgICB0aGlzLmtleXMuZGVsZXRlKGtleSk7XG4gICAgfVxuICAgIGhhc1Vua25vd24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmtleXMuc2l6ZSA9PT0gMSAmJiBPYmplY3Qua2V5cyh0aGlzLnRvKS5sZW5ndGggPT09IDA7XG4gICAgfVxuICAgIHdyaXRlVW5rbm93bigpIHtcbiAgICAgICAgaWYgKHRoaXMuaGFzVW5rbm93bigpKSB7XG4gICAgICAgICAgICBjb25zdCBrID0gdGhpcy5rZXlzLnZhbHVlcygpLm5leHQoKS52YWx1ZTtcbiAgICAgICAgICAgIGNvbnN0IHYgPSB0aGlzLmZyb21ba107XG4gICAgICAgICAgICB0aGlzLnRvLiR1bmtub3duID0gW2ssIHZdO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwgImltcG9ydCB7IE51bWVyaWNWYWx1ZSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2VyZGVcIjtcbmV4cG9ydCBmdW5jdGlvbiBqc29uUmV2aXZlcihrZXksIHZhbHVlLCBjb250ZXh0KSB7XG4gICAgaWYgKGNvbnRleHQ/LnNvdXJjZSkge1xuICAgICAgICBjb25zdCBudW1lcmljU3RyaW5nID0gY29udGV4dC5zb3VyY2U7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZSA+IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSIHx8IHZhbHVlIDwgTnVtYmVyLk1JTl9TQUZFX0lOVEVHRVIgfHwgbnVtZXJpY1N0cmluZyAhPT0gU3RyaW5nKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzRnJhY3Rpb25hbCA9IG51bWVyaWNTdHJpbmcuaW5jbHVkZXMoXCIuXCIpO1xuICAgICAgICAgICAgICAgIGlmIChpc0ZyYWN0aW9uYWwpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBOdW1lcmljVmFsdWUobnVtZXJpY1N0cmluZywgXCJiaWdEZWNpbWFsXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEJpZ0ludChudW1lcmljU3RyaW5nKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlO1xufVxuIiwgImltcG9ydCB7IGNvbGxlY3RCb2R5IH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgdG9VdGY4IH0gZnJvbSBcIkBzbWl0aHkvdXRpbC11dGY4XCI7XG5leHBvcnQgY29uc3QgY29sbGVjdEJvZHlTdHJpbmcgPSAoc3RyZWFtQm9keSwgY29udGV4dCkgPT4gY29sbGVjdEJvZHkoc3RyZWFtQm9keSwgY29udGV4dCkudGhlbigoYm9keSkgPT4gKGNvbnRleHQ/LnV0ZjhFbmNvZGVyID8/IHRvVXRmOCkoYm9keSkpO1xuIiwgImltcG9ydCB7IGNvbGxlY3RCb2R5U3RyaW5nIH0gZnJvbSBcIi4uL2NvbW1vblwiO1xuZXhwb3J0IGNvbnN0IHBhcnNlSnNvbkJvZHkgPSAoc3RyZWFtQm9keSwgY29udGV4dCkgPT4gY29sbGVjdEJvZHlTdHJpbmcoc3RyZWFtQm9keSwgY29udGV4dCkudGhlbigoZW5jb2RlZCkgPT4ge1xuICAgIGlmIChlbmNvZGVkLmxlbmd0aCkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoZW5jb2RlZCk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIGlmIChlPy5uYW1lID09PSBcIlN5bnRheEVycm9yXCIpIHtcbiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwgXCIkcmVzcG9uc2VCb2R5VGV4dFwiLCB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBlbmNvZGVkLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4ge307XG59KTtcbmV4cG9ydCBjb25zdCBwYXJzZUpzb25FcnJvckJvZHkgPSBhc3luYyAoZXJyb3JCb2R5LCBjb250ZXh0KSA9PiB7XG4gICAgY29uc3QgdmFsdWUgPSBhd2FpdCBwYXJzZUpzb25Cb2R5KGVycm9yQm9keSwgY29udGV4dCk7XG4gICAgdmFsdWUubWVzc2FnZSA9IHZhbHVlLm1lc3NhZ2UgPz8gdmFsdWUuTWVzc2FnZTtcbiAgICByZXR1cm4gdmFsdWU7XG59O1xuZXhwb3J0IGNvbnN0IGxvYWRSZXN0SnNvbkVycm9yQ29kZSA9IChvdXRwdXQsIGRhdGEpID0+IHtcbiAgICBjb25zdCBmaW5kS2V5ID0gKG9iamVjdCwga2V5KSA9PiBPYmplY3Qua2V5cyhvYmplY3QpLmZpbmQoKGspID0+IGsudG9Mb3dlckNhc2UoKSA9PT0ga2V5LnRvTG93ZXJDYXNlKCkpO1xuICAgIGNvbnN0IHNhbml0aXplRXJyb3JDb2RlID0gKHJhd1ZhbHVlKSA9PiB7XG4gICAgICAgIGxldCBjbGVhblZhbHVlID0gcmF3VmFsdWU7XG4gICAgICAgIGlmICh0eXBlb2YgY2xlYW5WYWx1ZSA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgY2xlYW5WYWx1ZSA9IGNsZWFuVmFsdWUudG9TdHJpbmcoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2xlYW5WYWx1ZS5pbmRleE9mKFwiLFwiKSA+PSAwKSB7XG4gICAgICAgICAgICBjbGVhblZhbHVlID0gY2xlYW5WYWx1ZS5zcGxpdChcIixcIilbMF07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNsZWFuVmFsdWUuaW5kZXhPZihcIjpcIikgPj0gMCkge1xuICAgICAgICAgICAgY2xlYW5WYWx1ZSA9IGNsZWFuVmFsdWUuc3BsaXQoXCI6XCIpWzBdO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjbGVhblZhbHVlLmluZGV4T2YoXCIjXCIpID49IDApIHtcbiAgICAgICAgICAgIGNsZWFuVmFsdWUgPSBjbGVhblZhbHVlLnNwbGl0KFwiI1wiKVsxXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY2xlYW5WYWx1ZTtcbiAgICB9O1xuICAgIGNvbnN0IGhlYWRlcktleSA9IGZpbmRLZXkob3V0cHV0LmhlYWRlcnMsIFwieC1hbXpuLWVycm9ydHlwZVwiKTtcbiAgICBpZiAoaGVhZGVyS2V5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIHNhbml0aXplRXJyb3JDb2RlKG91dHB1dC5oZWFkZXJzW2hlYWRlcktleV0pO1xuICAgIH1cbiAgICBpZiAoZGF0YSAmJiB0eXBlb2YgZGF0YSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICBjb25zdCBjb2RlS2V5ID0gZmluZEtleShkYXRhLCBcImNvZGVcIik7XG4gICAgICAgIGlmIChjb2RlS2V5ICYmIGRhdGFbY29kZUtleV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHNhbml0aXplRXJyb3JDb2RlKGRhdGFbY29kZUtleV0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhW1wiX190eXBlXCJdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBzYW5pdGl6ZUVycm9yQ29kZShkYXRhW1wiX190eXBlXCJdKTtcbiAgICAgICAgfVxuICAgIH1cbn07XG4iLCAiaW1wb3J0IHsgZGV0ZXJtaW5lVGltZXN0YW1wRm9ybWF0IH0gZnJvbSBcIkBzbWl0aHkvY29yZS9wcm90b2NvbHNcIjtcbmltcG9ydCB7IE5vcm1hbGl6ZWRTY2hlbWEgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3NjaGVtYVwiO1xuaW1wb3J0IHsgTGF6eUpzb25TdHJpbmcsIE51bWVyaWNWYWx1ZSwgcGFyc2VFcG9jaFRpbWVzdGFtcCwgcGFyc2VSZmMzMzM5RGF0ZVRpbWVXaXRoT2Zmc2V0LCBwYXJzZVJmYzcyMzFEYXRlVGltZSwgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3NlcmRlXCI7XG5pbXBvcnQgeyBmcm9tQmFzZTY0IH0gZnJvbSBcIkBzbWl0aHkvdXRpbC1iYXNlNjRcIjtcbmltcG9ydCB7IFNlcmRlQ29udGV4dENvbmZpZyB9IGZyb20gXCIuLi9Db25maWd1cmFibGVTZXJkZUNvbnRleHRcIjtcbmltcG9ydCB7IFVuaW9uU2VyZGUgfSBmcm9tIFwiLi4vVW5pb25TZXJkZVwiO1xuaW1wb3J0IHsganNvblJldml2ZXIgfSBmcm9tIFwiLi9qc29uUmV2aXZlclwiO1xuaW1wb3J0IHsgcGFyc2VKc29uQm9keSB9IGZyb20gXCIuL3BhcnNlSnNvbkJvZHlcIjtcbmV4cG9ydCBjbGFzcyBKc29uU2hhcGVEZXNlcmlhbGl6ZXIgZXh0ZW5kcyBTZXJkZUNvbnRleHRDb25maWcge1xuICAgIHNldHRpbmdzO1xuICAgIGNvbnN0cnVjdG9yKHNldHRpbmdzKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuc2V0dGluZ3MgPSBzZXR0aW5ncztcbiAgICB9XG4gICAgYXN5bmMgcmVhZChzY2hlbWEsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlYWQoc2NoZW1hLCB0eXBlb2YgZGF0YSA9PT0gXCJzdHJpbmdcIiA/IEpTT04ucGFyc2UoZGF0YSwganNvblJldml2ZXIpIDogYXdhaXQgcGFyc2VKc29uQm9keShkYXRhLCB0aGlzLnNlcmRlQ29udGV4dCkpO1xuICAgIH1cbiAgICByZWFkT2JqZWN0KHNjaGVtYSwgZGF0YSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVhZChzY2hlbWEsIGRhdGEpO1xuICAgIH1cbiAgICBfcmVhZChzY2hlbWEsIHZhbHVlKSB7XG4gICAgICAgIGNvbnN0IGlzT2JqZWN0ID0gdmFsdWUgIT09IG51bGwgJiYgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiO1xuICAgICAgICBjb25zdCBucyA9IE5vcm1hbGl6ZWRTY2hlbWEub2Yoc2NoZW1hKTtcbiAgICAgICAgaWYgKGlzT2JqZWN0KSB7XG4gICAgICAgICAgICBpZiAobnMuaXNTdHJ1Y3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlY29yZCA9IHZhbHVlO1xuICAgICAgICAgICAgICAgIGNvbnN0IHVuaW9uID0gbnMuaXNVbmlvblNjaGVtYSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IG91dCA9IHt9O1xuICAgICAgICAgICAgICAgIGxldCBuYW1lTWFwID0gdm9pZCAwO1xuICAgICAgICAgICAgICAgIGNvbnN0IHsganNvbk5hbWUgfSA9IHRoaXMuc2V0dGluZ3M7XG4gICAgICAgICAgICAgICAgaWYgKGpzb25OYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWVNYXAgPSB7fTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbGV0IHVuaW9uU2VyZGU7XG4gICAgICAgICAgICAgICAgaWYgKHVuaW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIHVuaW9uU2VyZGUgPSBuZXcgVW5pb25TZXJkZShyZWNvcmQsIG91dCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgW21lbWJlck5hbWUsIG1lbWJlclNjaGVtYV0gb2YgbnMuc3RydWN0SXRlcmF0b3IoKSkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgZnJvbUtleSA9IG1lbWJlck5hbWU7XG4gICAgICAgICAgICAgICAgICAgIGlmIChqc29uTmFtZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZnJvbUtleSA9IG1lbWJlclNjaGVtYS5nZXRNZXJnZWRUcmFpdHMoKS5qc29uTmFtZSA/PyBmcm9tS2V5O1xuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZU1hcFtmcm9tS2V5XSA9IG1lbWJlck5hbWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHVuaW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB1bmlvblNlcmRlLm1hcmsoZnJvbUtleSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlY29yZFtmcm9tS2V5XSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvdXRbbWVtYmVyTmFtZV0gPSB0aGlzLl9yZWFkKG1lbWJlclNjaGVtYSwgcmVjb3JkW2Zyb21LZXldKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodW5pb24pIHtcbiAgICAgICAgICAgICAgICAgICAgdW5pb25TZXJkZS53cml0ZVVua25vd24oKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAodHlwZW9mIHJlY29yZC5fX3R5cGUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBbaywgdl0gb2YgT2JqZWN0LmVudHJpZXMocmVjb3JkKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdCA9IGpzb25OYW1lID8gbmFtZU1hcFtrXSA/PyBrIDogaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghKHQgaW4gb3V0KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dFt0XSA9IHY7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIG91dDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSAmJiBucy5pc0xpc3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxpc3RNZW1iZXIgPSBucy5nZXRWYWx1ZVNjaGVtYSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IG91dCA9IFtdO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNwYXJzZSA9ICEhbnMuZ2V0TWVyZ2VkVHJhaXRzKCkuc3BhcnNlO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiB2YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoc3BhcnNlIHx8IGl0ZW0gIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3V0LnB1c2godGhpcy5fcmVhZChsaXN0TWVtYmVyLCBpdGVtKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIG91dDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChucy5pc01hcFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbWFwTWVtYmVyID0gbnMuZ2V0VmFsdWVTY2hlbWEoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBvdXQgPSB7fTtcbiAgICAgICAgICAgICAgICBjb25zdCBzcGFyc2UgPSAhIW5zLmdldE1lcmdlZFRyYWl0cygpLnNwYXJzZTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IFtfaywgX3ZdIG9mIE9iamVjdC5lbnRyaWVzKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoc3BhcnNlIHx8IF92ICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG91dFtfa10gPSB0aGlzLl9yZWFkKG1hcE1lbWJlciwgX3YpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBvdXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzQmxvYlNjaGVtYSgpICYmIHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgcmV0dXJuIGZyb21CYXNlNjQodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG1lZGlhVHlwZSA9IG5zLmdldE1lcmdlZFRyYWl0cygpLm1lZGlhVHlwZTtcbiAgICAgICAgaWYgKG5zLmlzU3RyaW5nU2NoZW1hKCkgJiYgdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiICYmIG1lZGlhVHlwZSkge1xuICAgICAgICAgICAgY29uc3QgaXNKc29uID0gbWVkaWFUeXBlID09PSBcImFwcGxpY2F0aW9uL2pzb25cIiB8fCBtZWRpYVR5cGUuZW5kc1dpdGgoXCIranNvblwiKTtcbiAgICAgICAgICAgIGlmIChpc0pzb24pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gTGF6eUpzb25TdHJpbmcuZnJvbSh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzVGltZXN0YW1wU2NoZW1hKCkgJiYgdmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc3QgZm9ybWF0ID0gZGV0ZXJtaW5lVGltZXN0YW1wRm9ybWF0KG5zLCB0aGlzLnNldHRpbmdzKTtcbiAgICAgICAgICAgIHN3aXRjaCAoZm9ybWF0KSB7XG4gICAgICAgICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcGFyc2VSZmMzMzM5RGF0ZVRpbWVXaXRoT2Zmc2V0KHZhbHVlKTtcbiAgICAgICAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZVJmYzcyMzFEYXRlVGltZSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgY2FzZSA3OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcGFyc2VFcG9jaFRpbWVzdGFtcCh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKFwiTWlzc2luZyB0aW1lc3RhbXAgZm9ybWF0LCBwYXJzaW5nIHZhbHVlIHdpdGggRGF0ZSBjb25zdHJ1Y3RvcjpcIiwgdmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IERhdGUodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChucy5pc0JpZ0ludGVnZXJTY2hlbWEoKSAmJiAodHlwZW9mIHZhbHVlID09PSBcIm51bWJlclwiIHx8IHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikpIHtcbiAgICAgICAgICAgIHJldHVybiBCaWdJbnQodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChucy5pc0JpZ0RlY2ltYWxTY2hlbWEoKSAmJiB2YWx1ZSAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIE51bWVyaWNWYWx1ZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHVudHlwZWQgPSB2YWx1ZTtcbiAgICAgICAgICAgIGlmICh1bnR5cGVkLnR5cGUgPT09IFwiYmlnRGVjaW1hbFwiICYmIFwic3RyaW5nXCIgaW4gdW50eXBlZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgTnVtZXJpY1ZhbHVlKHVudHlwZWQuc3RyaW5nLCB1bnR5cGVkLnR5cGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG5ldyBOdW1lcmljVmFsdWUoU3RyaW5nKHZhbHVlKSwgXCJiaWdEZWNpbWFsXCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChucy5pc051bWVyaWNTY2hlbWEoKSAmJiB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIHN3aXRjaCAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIFwiSW5maW5pdHlcIjpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEluZmluaXR5O1xuICAgICAgICAgICAgICAgIGNhc2UgXCItSW5maW5pdHlcIjpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1JbmZpbml0eTtcbiAgICAgICAgICAgICAgICBjYXNlIFwiTmFOXCI6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBOYU47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzRG9jdW1lbnRTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKGlzT2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3V0ID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyBbXSA6IHt9O1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodiBpbnN0YW5jZW9mIE51bWVyaWNWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3V0W2tdID0gdjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG91dFtrXSA9IHRoaXMuX3JlYWQobnMsIHYpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBvdXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3RydWN0dXJlZENsb25lKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IE51bWVyaWNWYWx1ZSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2VyZGVcIjtcbmNvbnN0IE5VTUVSSUNfQ09OVFJPTF9DSEFSID0gU3RyaW5nLmZyb21DaGFyQ29kZSg5MjUpO1xuZXhwb3J0IGNsYXNzIEpzb25SZXBsYWNlciB7XG4gICAgdmFsdWVzID0gbmV3IE1hcCgpO1xuICAgIGNvdW50ZXIgPSAwO1xuICAgIHN0YWdlID0gMDtcbiAgICBjcmVhdGVSZXBsYWNlcigpIHtcbiAgICAgICAgaWYgKHRoaXMuc3RhZ2UgPT09IDEpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkBhd3Mtc2RrL2NvcmUvcHJvdG9jb2xzIC0gSnNvblJlcGxhY2VyIGFscmVhZHkgY3JlYXRlZC5cIik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuc3RhZ2UgPT09IDIpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkBhd3Mtc2RrL2NvcmUvcHJvdG9jb2xzIC0gSnNvblJlcGxhY2VyIGV4aGF1c3RlZC5cIik7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zdGFnZSA9IDE7XG4gICAgICAgIHJldHVybiAoa2V5LCB2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgTnVtZXJpY1ZhbHVlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdiA9IGAke05VTUVSSUNfQ09OVFJPTF9DSEFSICsgXCJudlwiICsgdGhpcy5jb3VudGVyKyt9X2AgKyB2YWx1ZS5zdHJpbmc7XG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZXMuc2V0KGBcIiR7dn1cImAsIHZhbHVlLnN0cmluZyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHY7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcImJpZ2ludFwiKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcyA9IHZhbHVlLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgdiA9IGAke05VTUVSSUNfQ09OVFJPTF9DSEFSICsgXCJiXCIgKyB0aGlzLmNvdW50ZXIrK31fYCArIHM7XG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZXMuc2V0KGBcIiR7dn1cImAsIHMpO1xuICAgICAgICAgICAgICAgIHJldHVybiB2O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9O1xuICAgIH1cbiAgICByZXBsYWNlSW5Kc29uKGpzb24pIHtcbiAgICAgICAgaWYgKHRoaXMuc3RhZ2UgPT09IDApIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkBhd3Mtc2RrL2NvcmUvcHJvdG9jb2xzIC0gSnNvblJlcGxhY2VyIG5vdCBjcmVhdGVkIHlldC5cIik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuc3RhZ2UgPT09IDIpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkBhd3Mtc2RrL2NvcmUvcHJvdG9jb2xzIC0gSnNvblJlcGxhY2VyIGV4aGF1c3RlZC5cIik7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zdGFnZSA9IDI7XG4gICAgICAgIGlmICh0aGlzLmNvdW50ZXIgPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBqc29uO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIHRoaXMudmFsdWVzKSB7XG4gICAgICAgICAgICBqc29uID0ganNvbi5yZXBsYWNlKGtleSwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBqc29uO1xuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBkZXRlcm1pbmVUaW1lc3RhbXBGb3JtYXQgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3Byb3RvY29sc1wiO1xuaW1wb3J0IHsgTm9ybWFsaXplZFNjaGVtYSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2NoZW1hXCI7XG5pbXBvcnQgeyBkYXRlVG9VdGNTdHJpbmcsIGdlbmVyYXRlSWRlbXBvdGVuY3lUb2tlbiwgTGF6eUpzb25TdHJpbmcsIE51bWVyaWNWYWx1ZSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2VyZGVcIjtcbmltcG9ydCB7IHRvQmFzZTY0IH0gZnJvbSBcIkBzbWl0aHkvdXRpbC1iYXNlNjRcIjtcbmltcG9ydCB7IFNlcmRlQ29udGV4dENvbmZpZyB9IGZyb20gXCIuLi9Db25maWd1cmFibGVTZXJkZUNvbnRleHRcIjtcbmltcG9ydCB7IEpzb25SZXBsYWNlciB9IGZyb20gXCIuL2pzb25SZXBsYWNlclwiO1xuZXhwb3J0IGNsYXNzIEpzb25TaGFwZVNlcmlhbGl6ZXIgZXh0ZW5kcyBTZXJkZUNvbnRleHRDb25maWcge1xuICAgIHNldHRpbmdzO1xuICAgIGJ1ZmZlcjtcbiAgICB1c2VSZXBsYWNlciA9IGZhbHNlO1xuICAgIHJvb3RTY2hlbWE7XG4gICAgY29uc3RydWN0b3Ioc2V0dGluZ3MpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5zZXR0aW5ncyA9IHNldHRpbmdzO1xuICAgIH1cbiAgICB3cml0ZShzY2hlbWEsIHZhbHVlKSB7XG4gICAgICAgIHRoaXMucm9vdFNjaGVtYSA9IE5vcm1hbGl6ZWRTY2hlbWEub2Yoc2NoZW1hKTtcbiAgICAgICAgdGhpcy5idWZmZXIgPSB0aGlzLl93cml0ZSh0aGlzLnJvb3RTY2hlbWEsIHZhbHVlKTtcbiAgICB9XG4gICAgd3JpdGVEaXNjcmltaW5hdGVkRG9jdW1lbnQoc2NoZW1hLCB2YWx1ZSkge1xuICAgICAgICB0aGlzLndyaXRlKHNjaGVtYSwgdmFsdWUpO1xuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYnVmZmVyID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICB0aGlzLmJ1ZmZlci5fX3R5cGUgPSBOb3JtYWxpemVkU2NoZW1hLm9mKHNjaGVtYSkuZ2V0TmFtZSh0cnVlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmbHVzaCgpIHtcbiAgICAgICAgY29uc3QgeyByb290U2NoZW1hLCB1c2VSZXBsYWNlciB9ID0gdGhpcztcbiAgICAgICAgdGhpcy5yb290U2NoZW1hID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLnVzZVJlcGxhY2VyID0gZmFsc2U7XG4gICAgICAgIGlmIChyb290U2NoZW1hPy5pc1N0cnVjdFNjaGVtYSgpIHx8IHJvb3RTY2hlbWE/LmlzRG9jdW1lbnRTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKCF1c2VSZXBsYWNlcikge1xuICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh0aGlzLmJ1ZmZlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCByZXBsYWNlciA9IG5ldyBKc29uUmVwbGFjZXIoKTtcbiAgICAgICAgICAgIHJldHVybiByZXBsYWNlci5yZXBsYWNlSW5Kc29uKEpTT04uc3RyaW5naWZ5KHRoaXMuYnVmZmVyLCByZXBsYWNlci5jcmVhdGVSZXBsYWNlcigpLCAwKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuYnVmZmVyO1xuICAgIH1cbiAgICBfd3JpdGUoc2NoZW1hLCB2YWx1ZSwgY29udGFpbmVyKSB7XG4gICAgICAgIGNvbnN0IGlzT2JqZWN0ID0gdmFsdWUgIT09IG51bGwgJiYgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiO1xuICAgICAgICBjb25zdCBucyA9IE5vcm1hbGl6ZWRTY2hlbWEub2Yoc2NoZW1hKTtcbiAgICAgICAgaWYgKGlzT2JqZWN0KSB7XG4gICAgICAgICAgICBpZiAobnMuaXNTdHJ1Y3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlY29yZCA9IHZhbHVlO1xuICAgICAgICAgICAgICAgIGNvbnN0IG91dCA9IHt9O1xuICAgICAgICAgICAgICAgIGNvbnN0IHsganNvbk5hbWUgfSA9IHRoaXMuc2V0dGluZ3M7XG4gICAgICAgICAgICAgICAgbGV0IG5hbWVNYXAgPSB2b2lkIDA7XG4gICAgICAgICAgICAgICAgaWYgKGpzb25OYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWVNYXAgPSB7fTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBbbWVtYmVyTmFtZSwgbWVtYmVyU2NoZW1hXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNlcmlhbGl6YWJsZVZhbHVlID0gdGhpcy5fd3JpdGUobWVtYmVyU2NoZW1hLCByZWNvcmRbbWVtYmVyTmFtZV0sIG5zKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNlcmlhbGl6YWJsZVZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0YXJnZXRLZXkgPSBtZW1iZXJOYW1lO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGpzb25OYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0S2V5ID0gbWVtYmVyU2NoZW1hLmdldE1lcmdlZFRyYWl0cygpLmpzb25OYW1lID8/IG1lbWJlck5hbWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZU1hcFttZW1iZXJOYW1lXSA9IHRhcmdldEtleTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIG91dFt0YXJnZXRLZXldID0gc2VyaWFsaXphYmxlVmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKG5zLmlzVW5pb25TY2hlbWEoKSAmJiBPYmplY3Qua2V5cyhvdXQpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB7ICR1bmtub3duIH0gPSByZWNvcmQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KCR1bmtub3duKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgW2ssIHZdID0gJHVua25vd247XG4gICAgICAgICAgICAgICAgICAgICAgICBvdXRba10gPSB0aGlzLl93cml0ZSgxNSwgdik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAodHlwZW9mIHJlY29yZC5fX3R5cGUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBbaywgdl0gb2YgT2JqZWN0LmVudHJpZXMocmVjb3JkKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0S2V5ID0ganNvbk5hbWUgPyBuYW1lTWFwW2tdID8/IGsgOiBrO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEodGFyZ2V0S2V5IGluIG91dCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRbdGFyZ2V0S2V5XSA9IHRoaXMuX3dyaXRlKDE1LCB2KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gb3V0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpICYmIG5zLmlzTGlzdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbGlzdE1lbWJlciA9IG5zLmdldFZhbHVlU2NoZW1hKCk7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3V0ID0gW107XG4gICAgICAgICAgICAgICAgY29uc3Qgc3BhcnNlID0gISFucy5nZXRNZXJnZWRUcmFpdHMoKS5zcGFyc2U7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzcGFyc2UgfHwgaXRlbSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvdXQucHVzaCh0aGlzLl93cml0ZShsaXN0TWVtYmVyLCBpdGVtKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIG91dDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChucy5pc01hcFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbWFwTWVtYmVyID0gbnMuZ2V0VmFsdWVTY2hlbWEoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBvdXQgPSB7fTtcbiAgICAgICAgICAgICAgICBjb25zdCBzcGFyc2UgPSAhIW5zLmdldE1lcmdlZFRyYWl0cygpLnNwYXJzZTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IFtfaywgX3ZdIG9mIE9iamVjdC5lbnRyaWVzKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoc3BhcnNlIHx8IF92ICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG91dFtfa10gPSB0aGlzLl93cml0ZShtYXBNZW1iZXIsIF92KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gb3V0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgVWludDhBcnJheSAmJiAobnMuaXNCbG9iU2NoZW1hKCkgfHwgbnMuaXNEb2N1bWVudFNjaGVtYSgpKSkge1xuICAgICAgICAgICAgICAgIGlmIChucyA9PT0gdGhpcy5yb290U2NoZW1hKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuICh0aGlzLnNlcmRlQ29udGV4dD8uYmFzZTY0RW5jb2RlciA/PyB0b0Jhc2U2NCkodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSAmJiAobnMuaXNUaW1lc3RhbXBTY2hlbWEoKSB8fCBucy5pc0RvY3VtZW50U2NoZW1hKCkpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZm9ybWF0ID0gZGV0ZXJtaW5lVGltZXN0YW1wRm9ybWF0KG5zLCB0aGlzLnNldHRpbmdzKTtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGZvcm1hdCkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUudG9JU09TdHJpbmcoKS5yZXBsYWNlKFwiLjAwMFpcIiwgXCJaXCIpO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZGF0ZVRvVXRjU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA3OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlLmdldFRpbWUoKSAvIDEwMDA7XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oXCJNaXNzaW5nIHRpbWVzdGFtcCBmb3JtYXQsIHVzaW5nIGVwb2NoIHNlY29uZHNcIiwgdmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlLmdldFRpbWUoKSAvIDEwMDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgTnVtZXJpY1ZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy51c2VSZXBsYWNlciA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbHVlID09PSBudWxsICYmIGNvbnRhaW5lcj8uaXNTdHJ1Y3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgcmV0dXJuIHZvaWQgMDtcbiAgICAgICAgfVxuICAgICAgICBpZiAobnMuaXNTdHJpbmdTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJ1bmRlZmluZWRcIiAmJiBucy5pc0lkZW1wb3RlbmN5VG9rZW4oKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBnZW5lcmF0ZUlkZW1wb3RlbmN5VG9rZW4oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IG1lZGlhVHlwZSA9IG5zLmdldE1lcmdlZFRyYWl0cygpLm1lZGlhVHlwZTtcbiAgICAgICAgICAgIGlmICh2YWx1ZSAhPSBudWxsICYmIG1lZGlhVHlwZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzSnNvbiA9IG1lZGlhVHlwZSA9PT0gXCJhcHBsaWNhdGlvbi9qc29uXCIgfHwgbWVkaWFUeXBlLmVuZHNXaXRoKFwiK2pzb25cIik7XG4gICAgICAgICAgICAgICAgaWYgKGlzSnNvbikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gTGF6eUpzb25TdHJpbmcuZnJvbSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCIgJiYgbnMuaXNOdW1lcmljU2NoZW1hKCkpIHtcbiAgICAgICAgICAgIGlmIChNYXRoLmFicyh2YWx1ZSkgPT09IEluZmluaXR5IHx8IGlzTmFOKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgJiYgbnMuaXNCbG9iU2NoZW1hKCkpIHtcbiAgICAgICAgICAgIGlmIChucyA9PT0gdGhpcy5yb290U2NoZW1hKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuICh0aGlzLnNlcmRlQ29udGV4dD8uYmFzZTY0RW5jb2RlciA/PyB0b0Jhc2U2NCkodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwiYmlnaW50XCIpIHtcbiAgICAgICAgICAgIHRoaXMudXNlUmVwbGFjZXIgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChucy5pc0RvY3VtZW50U2NoZW1hKCkpIHtcbiAgICAgICAgICAgIGlmIChpc09iamVjdCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG91dCA9IEFycmF5LmlzQXJyYXkodmFsdWUpID8gW10gOiB7fTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IFtrLCB2XSBvZiBPYmplY3QuZW50cmllcyh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHYgaW5zdGFuY2VvZiBOdW1lcmljVmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXNlUmVwbGFjZXIgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgb3V0W2tdID0gdjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG91dFtrXSA9IHRoaXMuX3dyaXRlKG5zLCB2KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gb3V0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN0cnVjdHVyZWRDbG9uZSh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBTZXJkZUNvbnRleHRDb25maWcgfSBmcm9tIFwiLi4vQ29uZmlndXJhYmxlU2VyZGVDb250ZXh0XCI7XG5pbXBvcnQgeyBKc29uU2hhcGVEZXNlcmlhbGl6ZXIgfSBmcm9tIFwiLi9Kc29uU2hhcGVEZXNlcmlhbGl6ZXJcIjtcbmltcG9ydCB7IEpzb25TaGFwZVNlcmlhbGl6ZXIgfSBmcm9tIFwiLi9Kc29uU2hhcGVTZXJpYWxpemVyXCI7XG5leHBvcnQgY2xhc3MgSnNvbkNvZGVjIGV4dGVuZHMgU2VyZGVDb250ZXh0Q29uZmlnIHtcbiAgICBzZXR0aW5ncztcbiAgICBjb25zdHJ1Y3RvcihzZXR0aW5ncykge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnNldHRpbmdzID0gc2V0dGluZ3M7XG4gICAgfVxuICAgIGNyZWF0ZVNlcmlhbGl6ZXIoKSB7XG4gICAgICAgIGNvbnN0IHNlcmlhbGl6ZXIgPSBuZXcgSnNvblNoYXBlU2VyaWFsaXplcih0aGlzLnNldHRpbmdzKTtcbiAgICAgICAgc2VyaWFsaXplci5zZXRTZXJkZUNvbnRleHQodGhpcy5zZXJkZUNvbnRleHQpO1xuICAgICAgICByZXR1cm4gc2VyaWFsaXplcjtcbiAgICB9XG4gICAgY3JlYXRlRGVzZXJpYWxpemVyKCkge1xuICAgICAgICBjb25zdCBkZXNlcmlhbGl6ZXIgPSBuZXcgSnNvblNoYXBlRGVzZXJpYWxpemVyKHRoaXMuc2V0dGluZ3MpO1xuICAgICAgICBkZXNlcmlhbGl6ZXIuc2V0U2VyZGVDb250ZXh0KHRoaXMuc2VyZGVDb250ZXh0KTtcbiAgICAgICAgcmV0dXJuIGRlc2VyaWFsaXplcjtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgUnBjUHJvdG9jb2wgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3Byb3RvY29sc1wiO1xuaW1wb3J0IHsgZGVyZWYsIE5vcm1hbGl6ZWRTY2hlbWEsIFR5cGVSZWdpc3RyeSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2NoZW1hXCI7XG5pbXBvcnQgeyBQcm90b2NvbExpYiB9IGZyb20gXCIuLi9Qcm90b2NvbExpYlwiO1xuaW1wb3J0IHsgSnNvbkNvZGVjIH0gZnJvbSBcIi4vSnNvbkNvZGVjXCI7XG5pbXBvcnQgeyBsb2FkUmVzdEpzb25FcnJvckNvZGUgfSBmcm9tIFwiLi9wYXJzZUpzb25Cb2R5XCI7XG5leHBvcnQgY2xhc3MgQXdzSnNvblJwY1Byb3RvY29sIGV4dGVuZHMgUnBjUHJvdG9jb2wge1xuICAgIHNlcmlhbGl6ZXI7XG4gICAgZGVzZXJpYWxpemVyO1xuICAgIHNlcnZpY2VUYXJnZXQ7XG4gICAgY29kZWM7XG4gICAgbWl4aW47XG4gICAgYXdzUXVlcnlDb21wYXRpYmxlO1xuICAgIGNvbnN0cnVjdG9yKHsgZGVmYXVsdE5hbWVzcGFjZSwgc2VydmljZVRhcmdldCwgYXdzUXVlcnlDb21wYXRpYmxlLCBqc29uQ29kZWMsIH0pIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgZGVmYXVsdE5hbWVzcGFjZSxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc2VydmljZVRhcmdldCA9IHNlcnZpY2VUYXJnZXQ7XG4gICAgICAgIHRoaXMuY29kZWMgPVxuICAgICAgICAgICAganNvbkNvZGVjID8/XG4gICAgICAgICAgICAgICAgbmV3IEpzb25Db2RlYyh7XG4gICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcEZvcm1hdDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgdXNlVHJhaXQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiA3LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBqc29uTmFtZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc2VyaWFsaXplciA9IHRoaXMuY29kZWMuY3JlYXRlU2VyaWFsaXplcigpO1xuICAgICAgICB0aGlzLmRlc2VyaWFsaXplciA9IHRoaXMuY29kZWMuY3JlYXRlRGVzZXJpYWxpemVyKCk7XG4gICAgICAgIHRoaXMuYXdzUXVlcnlDb21wYXRpYmxlID0gISFhd3NRdWVyeUNvbXBhdGlibGU7XG4gICAgICAgIHRoaXMubWl4aW4gPSBuZXcgUHJvdG9jb2xMaWIodGhpcy5hd3NRdWVyeUNvbXBhdGlibGUpO1xuICAgIH1cbiAgICBhc3luYyBzZXJpYWxpemVSZXF1ZXN0KG9wZXJhdGlvblNjaGVtYSwgaW5wdXQsIGNvbnRleHQpIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IGF3YWl0IHN1cGVyLnNlcmlhbGl6ZVJlcXVlc3Qob3BlcmF0aW9uU2NoZW1hLCBpbnB1dCwgY29udGV4dCk7XG4gICAgICAgIGlmICghcmVxdWVzdC5wYXRoLmVuZHNXaXRoKFwiL1wiKSkge1xuICAgICAgICAgICAgcmVxdWVzdC5wYXRoICs9IFwiL1wiO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24ocmVxdWVzdC5oZWFkZXJzLCB7XG4gICAgICAgICAgICBcImNvbnRlbnQtdHlwZVwiOiBgYXBwbGljYXRpb24veC1hbXotanNvbi0ke3RoaXMuZ2V0SnNvblJwY1ZlcnNpb24oKX1gLFxuICAgICAgICAgICAgXCJ4LWFtei10YXJnZXRcIjogYCR7dGhpcy5zZXJ2aWNlVGFyZ2V0fS4ke29wZXJhdGlvblNjaGVtYS5uYW1lfWAsXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAodGhpcy5hd3NRdWVyeUNvbXBhdGlibGUpIHtcbiAgICAgICAgICAgIHJlcXVlc3QuaGVhZGVyc1tcIngtYW16bi1xdWVyeS1tb2RlXCJdID0gXCJ0cnVlXCI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRlcmVmKG9wZXJhdGlvblNjaGVtYS5pbnB1dCkgPT09IFwidW5pdFwiIHx8ICFyZXF1ZXN0LmJvZHkpIHtcbiAgICAgICAgICAgIHJlcXVlc3QuYm9keSA9IFwie31cIjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVxdWVzdDtcbiAgICB9XG4gICAgZ2V0UGF5bG9hZENvZGVjKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb2RlYztcbiAgICB9XG4gICAgYXN5bmMgaGFuZGxlRXJyb3Iob3BlcmF0aW9uU2NoZW1hLCBjb250ZXh0LCByZXNwb25zZSwgZGF0YU9iamVjdCwgbWV0YWRhdGEpIHtcbiAgICAgICAgaWYgKHRoaXMuYXdzUXVlcnlDb21wYXRpYmxlKSB7XG4gICAgICAgICAgICB0aGlzLm1peGluLnNldFF1ZXJ5Q29tcGF0RXJyb3IoZGF0YU9iamVjdCwgcmVzcG9uc2UpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGVycm9ySWRlbnRpZmllciA9IGxvYWRSZXN0SnNvbkVycm9yQ29kZShyZXNwb25zZSwgZGF0YU9iamVjdCkgPz8gXCJVbmtub3duXCI7XG4gICAgICAgIGNvbnN0IHsgZXJyb3JTY2hlbWEsIGVycm9yTWV0YWRhdGEgfSA9IGF3YWl0IHRoaXMubWl4aW4uZ2V0RXJyb3JTY2hlbWFPclRocm93QmFzZUV4Y2VwdGlvbihlcnJvcklkZW50aWZpZXIsIHRoaXMub3B0aW9ucy5kZWZhdWx0TmFtZXNwYWNlLCByZXNwb25zZSwgZGF0YU9iamVjdCwgbWV0YWRhdGEsIHRoaXMuYXdzUXVlcnlDb21wYXRpYmxlID8gdGhpcy5taXhpbi5maW5kUXVlcnlDb21wYXRpYmxlRXJyb3IgOiB1bmRlZmluZWQpO1xuICAgICAgICBjb25zdCBucyA9IE5vcm1hbGl6ZWRTY2hlbWEub2YoZXJyb3JTY2hlbWEpO1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gZGF0YU9iamVjdC5tZXNzYWdlID8/IGRhdGFPYmplY3QuTWVzc2FnZSA/PyBcIlVua25vd25cIjtcbiAgICAgICAgY29uc3QgRXJyb3JDdG9yID0gVHlwZVJlZ2lzdHJ5LmZvcihlcnJvclNjaGVtYVsxXSkuZ2V0RXJyb3JDdG9yKGVycm9yU2NoZW1hKSA/PyBFcnJvcjtcbiAgICAgICAgY29uc3QgZXhjZXB0aW9uID0gbmV3IEVycm9yQ3RvcihtZXNzYWdlKTtcbiAgICAgICAgY29uc3Qgb3V0cHV0ID0ge307XG4gICAgICAgIGZvciAoY29uc3QgW25hbWUsIG1lbWJlcl0gb2YgbnMuc3RydWN0SXRlcmF0b3IoKSkge1xuICAgICAgICAgICAgaWYgKGRhdGFPYmplY3RbbmFtZV0gIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIG91dHB1dFtuYW1lXSA9IHRoaXMuY29kZWMuY3JlYXRlRGVzZXJpYWxpemVyKCkucmVhZE9iamVjdChtZW1iZXIsIGRhdGFPYmplY3RbbmFtZV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmF3c1F1ZXJ5Q29tcGF0aWJsZSkge1xuICAgICAgICAgICAgdGhpcy5taXhpbi5xdWVyeUNvbXBhdE91dHB1dChkYXRhT2JqZWN0LCBvdXRwdXQpO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IHRoaXMubWl4aW4uZGVjb3JhdGVTZXJ2aWNlRXhjZXB0aW9uKE9iamVjdC5hc3NpZ24oZXhjZXB0aW9uLCBlcnJvck1ldGFkYXRhLCB7XG4gICAgICAgICAgICAkZmF1bHQ6IG5zLmdldE1lcmdlZFRyYWl0cygpLmVycm9yLFxuICAgICAgICAgICAgbWVzc2FnZSxcbiAgICAgICAgfSwgb3V0cHV0KSwgZGF0YU9iamVjdCk7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IEF3c0pzb25ScGNQcm90b2NvbCB9IGZyb20gXCIuL0F3c0pzb25ScGNQcm90b2NvbFwiO1xuZXhwb3J0IGNsYXNzIEF3c0pzb24xXzBQcm90b2NvbCBleHRlbmRzIEF3c0pzb25ScGNQcm90b2NvbCB7XG4gICAgY29uc3RydWN0b3IoeyBkZWZhdWx0TmFtZXNwYWNlLCBzZXJ2aWNlVGFyZ2V0LCBhd3NRdWVyeUNvbXBhdGlibGUsIGpzb25Db2RlYywgfSkge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBkZWZhdWx0TmFtZXNwYWNlLFxuICAgICAgICAgICAgc2VydmljZVRhcmdldCxcbiAgICAgICAgICAgIGF3c1F1ZXJ5Q29tcGF0aWJsZSxcbiAgICAgICAgICAgIGpzb25Db2RlYyxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGdldFNoYXBlSWQoKSB7XG4gICAgICAgIHJldHVybiBcImF3cy5wcm90b2NvbHMjYXdzSnNvbjFfMFwiO1xuICAgIH1cbiAgICBnZXRKc29uUnBjVmVyc2lvbigpIHtcbiAgICAgICAgcmV0dXJuIFwiMS4wXCI7XG4gICAgfVxuICAgIGdldERlZmF1bHRDb250ZW50VHlwZSgpIHtcbiAgICAgICAgcmV0dXJuIFwiYXBwbGljYXRpb24veC1hbXotanNvbi0xLjBcIjtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgQXdzSnNvblJwY1Byb3RvY29sIH0gZnJvbSBcIi4vQXdzSnNvblJwY1Byb3RvY29sXCI7XG5leHBvcnQgY2xhc3MgQXdzSnNvbjFfMVByb3RvY29sIGV4dGVuZHMgQXdzSnNvblJwY1Byb3RvY29sIHtcbiAgICBjb25zdHJ1Y3Rvcih7IGRlZmF1bHROYW1lc3BhY2UsIHNlcnZpY2VUYXJnZXQsIGF3c1F1ZXJ5Q29tcGF0aWJsZSwganNvbkNvZGVjLCB9KSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIGRlZmF1bHROYW1lc3BhY2UsXG4gICAgICAgICAgICBzZXJ2aWNlVGFyZ2V0LFxuICAgICAgICAgICAgYXdzUXVlcnlDb21wYXRpYmxlLFxuICAgICAgICAgICAganNvbkNvZGVjLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgZ2V0U2hhcGVJZCgpIHtcbiAgICAgICAgcmV0dXJuIFwiYXdzLnByb3RvY29scyNhd3NKc29uMV8xXCI7XG4gICAgfVxuICAgIGdldEpzb25ScGNWZXJzaW9uKCkge1xuICAgICAgICByZXR1cm4gXCIxLjFcIjtcbiAgICB9XG4gICAgZ2V0RGVmYXVsdENvbnRlbnRUeXBlKCkge1xuICAgICAgICByZXR1cm4gXCJhcHBsaWNhdGlvbi94LWFtei1qc29uLTEuMVwiO1xuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBIdHRwQmluZGluZ1Byb3RvY29sLCBIdHRwSW50ZXJjZXB0aW5nU2hhcGVEZXNlcmlhbGl6ZXIsIEh0dHBJbnRlcmNlcHRpbmdTaGFwZVNlcmlhbGl6ZXIsIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9wcm90b2NvbHNcIjtcbmltcG9ydCB7IE5vcm1hbGl6ZWRTY2hlbWEsIFR5cGVSZWdpc3RyeSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2NoZW1hXCI7XG5pbXBvcnQgeyBQcm90b2NvbExpYiB9IGZyb20gXCIuLi9Qcm90b2NvbExpYlwiO1xuaW1wb3J0IHsgSnNvbkNvZGVjIH0gZnJvbSBcIi4vSnNvbkNvZGVjXCI7XG5pbXBvcnQgeyBsb2FkUmVzdEpzb25FcnJvckNvZGUgfSBmcm9tIFwiLi9wYXJzZUpzb25Cb2R5XCI7XG5leHBvcnQgY2xhc3MgQXdzUmVzdEpzb25Qcm90b2NvbCBleHRlbmRzIEh0dHBCaW5kaW5nUHJvdG9jb2wge1xuICAgIHNlcmlhbGl6ZXI7XG4gICAgZGVzZXJpYWxpemVyO1xuICAgIGNvZGVjO1xuICAgIG1peGluID0gbmV3IFByb3RvY29sTGliKCk7XG4gICAgY29uc3RydWN0b3IoeyBkZWZhdWx0TmFtZXNwYWNlIH0pIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgZGVmYXVsdE5hbWVzcGFjZSxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IHNldHRpbmdzID0ge1xuICAgICAgICAgICAgdGltZXN0YW1wRm9ybWF0OiB7XG4gICAgICAgICAgICAgICAgdXNlVHJhaXQ6IHRydWUsXG4gICAgICAgICAgICAgICAgZGVmYXVsdDogNyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBodHRwQmluZGluZ3M6IHRydWUsXG4gICAgICAgICAgICBqc29uTmFtZTogdHJ1ZSxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5jb2RlYyA9IG5ldyBKc29uQ29kZWMoc2V0dGluZ3MpO1xuICAgICAgICB0aGlzLnNlcmlhbGl6ZXIgPSBuZXcgSHR0cEludGVyY2VwdGluZ1NoYXBlU2VyaWFsaXplcih0aGlzLmNvZGVjLmNyZWF0ZVNlcmlhbGl6ZXIoKSwgc2V0dGluZ3MpO1xuICAgICAgICB0aGlzLmRlc2VyaWFsaXplciA9IG5ldyBIdHRwSW50ZXJjZXB0aW5nU2hhcGVEZXNlcmlhbGl6ZXIodGhpcy5jb2RlYy5jcmVhdGVEZXNlcmlhbGl6ZXIoKSwgc2V0dGluZ3MpO1xuICAgIH1cbiAgICBnZXRTaGFwZUlkKCkge1xuICAgICAgICByZXR1cm4gXCJhd3MucHJvdG9jb2xzI3Jlc3RKc29uMVwiO1xuICAgIH1cbiAgICBnZXRQYXlsb2FkQ29kZWMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvZGVjO1xuICAgIH1cbiAgICBzZXRTZXJkZUNvbnRleHQoc2VyZGVDb250ZXh0KSB7XG4gICAgICAgIHRoaXMuY29kZWMuc2V0U2VyZGVDb250ZXh0KHNlcmRlQ29udGV4dCk7XG4gICAgICAgIHN1cGVyLnNldFNlcmRlQ29udGV4dChzZXJkZUNvbnRleHQpO1xuICAgIH1cbiAgICBhc3luYyBzZXJpYWxpemVSZXF1ZXN0KG9wZXJhdGlvblNjaGVtYSwgaW5wdXQsIGNvbnRleHQpIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IGF3YWl0IHN1cGVyLnNlcmlhbGl6ZVJlcXVlc3Qob3BlcmF0aW9uU2NoZW1hLCBpbnB1dCwgY29udGV4dCk7XG4gICAgICAgIGNvbnN0IGlucHV0U2NoZW1hID0gTm9ybWFsaXplZFNjaGVtYS5vZihvcGVyYXRpb25TY2hlbWEuaW5wdXQpO1xuICAgICAgICBpZiAoIXJlcXVlc3QuaGVhZGVyc1tcImNvbnRlbnQtdHlwZVwiXSkge1xuICAgICAgICAgICAgY29uc3QgY29udGVudFR5cGUgPSB0aGlzLm1peGluLnJlc29sdmVSZXN0Q29udGVudFR5cGUodGhpcy5nZXREZWZhdWx0Q29udGVudFR5cGUoKSwgaW5wdXRTY2hlbWEpO1xuICAgICAgICAgICAgaWYgKGNvbnRlbnRUeXBlKSB7XG4gICAgICAgICAgICAgICAgcmVxdWVzdC5oZWFkZXJzW1wiY29udGVudC10eXBlXCJdID0gY29udGVudFR5cGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJlcXVlc3QuYm9keSA9PSBudWxsICYmIHJlcXVlc3QuaGVhZGVyc1tcImNvbnRlbnQtdHlwZVwiXSA9PT0gdGhpcy5nZXREZWZhdWx0Q29udGVudFR5cGUoKSkge1xuICAgICAgICAgICAgcmVxdWVzdC5ib2R5ID0gXCJ7fVwiO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXF1ZXN0O1xuICAgIH1cbiAgICBhc3luYyBkZXNlcmlhbGl6ZVJlc3BvbnNlKG9wZXJhdGlvblNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UpIHtcbiAgICAgICAgY29uc3Qgb3V0cHV0ID0gYXdhaXQgc3VwZXIuZGVzZXJpYWxpemVSZXNwb25zZShvcGVyYXRpb25TY2hlbWEsIGNvbnRleHQsIHJlc3BvbnNlKTtcbiAgICAgICAgY29uc3Qgb3V0cHV0U2NoZW1hID0gTm9ybWFsaXplZFNjaGVtYS5vZihvcGVyYXRpb25TY2hlbWEub3V0cHV0KTtcbiAgICAgICAgZm9yIChjb25zdCBbbmFtZSwgbWVtYmVyXSBvZiBvdXRwdXRTY2hlbWEuc3RydWN0SXRlcmF0b3IoKSkge1xuICAgICAgICAgICAgaWYgKG1lbWJlci5nZXRNZW1iZXJUcmFpdHMoKS5odHRwUGF5bG9hZCAmJiAhKG5hbWUgaW4gb3V0cHV0KSkge1xuICAgICAgICAgICAgICAgIG91dHB1dFtuYW1lXSA9IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG91dHB1dDtcbiAgICB9XG4gICAgYXN5bmMgaGFuZGxlRXJyb3Iob3BlcmF0aW9uU2NoZW1hLCBjb250ZXh0LCByZXNwb25zZSwgZGF0YU9iamVjdCwgbWV0YWRhdGEpIHtcbiAgICAgICAgY29uc3QgZXJyb3JJZGVudGlmaWVyID0gbG9hZFJlc3RKc29uRXJyb3JDb2RlKHJlc3BvbnNlLCBkYXRhT2JqZWN0KSA/PyBcIlVua25vd25cIjtcbiAgICAgICAgY29uc3QgeyBlcnJvclNjaGVtYSwgZXJyb3JNZXRhZGF0YSB9ID0gYXdhaXQgdGhpcy5taXhpbi5nZXRFcnJvclNjaGVtYU9yVGhyb3dCYXNlRXhjZXB0aW9uKGVycm9ySWRlbnRpZmllciwgdGhpcy5vcHRpb25zLmRlZmF1bHROYW1lc3BhY2UsIHJlc3BvbnNlLCBkYXRhT2JqZWN0LCBtZXRhZGF0YSk7XG4gICAgICAgIGNvbnN0IG5zID0gTm9ybWFsaXplZFNjaGVtYS5vZihlcnJvclNjaGVtYSk7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBkYXRhT2JqZWN0Lm1lc3NhZ2UgPz8gZGF0YU9iamVjdC5NZXNzYWdlID8/IFwiVW5rbm93blwiO1xuICAgICAgICBjb25zdCBFcnJvckN0b3IgPSBUeXBlUmVnaXN0cnkuZm9yKGVycm9yU2NoZW1hWzFdKS5nZXRFcnJvckN0b3IoZXJyb3JTY2hlbWEpID8/IEVycm9yO1xuICAgICAgICBjb25zdCBleGNlcHRpb24gPSBuZXcgRXJyb3JDdG9yKG1lc3NhZ2UpO1xuICAgICAgICBhd2FpdCB0aGlzLmRlc2VyaWFsaXplSHR0cE1lc3NhZ2UoZXJyb3JTY2hlbWEsIGNvbnRleHQsIHJlc3BvbnNlLCBkYXRhT2JqZWN0KTtcbiAgICAgICAgY29uc3Qgb3V0cHV0ID0ge307XG4gICAgICAgIGZvciAoY29uc3QgW25hbWUsIG1lbWJlcl0gb2YgbnMuc3RydWN0SXRlcmF0b3IoKSkge1xuICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gbWVtYmVyLmdldE1lcmdlZFRyYWl0cygpLmpzb25OYW1lID8/IG5hbWU7XG4gICAgICAgICAgICBvdXRwdXRbbmFtZV0gPSB0aGlzLmNvZGVjLmNyZWF0ZURlc2VyaWFsaXplcigpLnJlYWRPYmplY3QobWVtYmVyLCBkYXRhT2JqZWN0W3RhcmdldF0pO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IHRoaXMubWl4aW4uZGVjb3JhdGVTZXJ2aWNlRXhjZXB0aW9uKE9iamVjdC5hc3NpZ24oZXhjZXB0aW9uLCBlcnJvck1ldGFkYXRhLCB7XG4gICAgICAgICAgICAkZmF1bHQ6IG5zLmdldE1lcmdlZFRyYWl0cygpLmVycm9yLFxuICAgICAgICAgICAgbWVzc2FnZSxcbiAgICAgICAgfSwgb3V0cHV0KSwgZGF0YU9iamVjdCk7XG4gICAgfVxuICAgIGdldERlZmF1bHRDb250ZW50VHlwZSgpIHtcbiAgICAgICAgcmV0dXJuIFwiYXBwbGljYXRpb24vanNvblwiO1xuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBleHBlY3RVbmlvbiB9IGZyb20gXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjtcbmV4cG9ydCBjb25zdCBhd3NFeHBlY3RVbmlvbiA9ICh2YWx1ZSkgPT4ge1xuICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIgJiYgXCJfX3R5cGVcIiBpbiB2YWx1ZSkge1xuICAgICAgICBkZWxldGUgdmFsdWUuX190eXBlO1xuICAgIH1cbiAgICByZXR1cm4gZXhwZWN0VW5pb24odmFsdWUpO1xufTtcbiIsICJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMucGFyc2VYTUwgPSBwYXJzZVhNTDtcbmNvbnN0IGZhc3RfeG1sX3BhcnNlcl8xID0gcmVxdWlyZShcImZhc3QteG1sLXBhcnNlclwiKTtcbmNvbnN0IHBhcnNlciA9IG5ldyBmYXN0X3htbF9wYXJzZXJfMS5YTUxQYXJzZXIoe1xuICAgIGF0dHJpYnV0ZU5hbWVQcmVmaXg6IFwiXCIsXG4gICAgaHRtbEVudGl0aWVzOiB0cnVlLFxuICAgIGlnbm9yZUF0dHJpYnV0ZXM6IGZhbHNlLFxuICAgIGlnbm9yZURlY2xhcmF0aW9uOiB0cnVlLFxuICAgIHBhcnNlVGFnVmFsdWU6IGZhbHNlLFxuICAgIHRyaW1WYWx1ZXM6IGZhbHNlLFxuICAgIHRhZ1ZhbHVlUHJvY2Vzc29yOiAoXywgdmFsKSA9PiAodmFsLnRyaW0oKSA9PT0gXCJcIiAmJiB2YWwuaW5jbHVkZXMoXCJcXG5cIikgPyBcIlwiIDogdW5kZWZpbmVkKSxcbn0pO1xucGFyc2VyLmFkZEVudGl0eShcIiN4RFwiLCBcIlxcclwiKTtcbnBhcnNlci5hZGRFbnRpdHkoXCIjMTBcIiwgXCJcXG5cIik7XG5mdW5jdGlvbiBwYXJzZVhNTCh4bWxTdHJpbmcpIHtcbiAgICByZXR1cm4gcGFyc2VyLnBhcnNlKHhtbFN0cmluZywgdHJ1ZSk7XG59XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgeG1sUGFyc2VyID0gcmVxdWlyZSgnLi94bWwtcGFyc2VyJyk7XG5cbmZ1bmN0aW9uIGVzY2FwZUF0dHJpYnV0ZSh2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZS5yZXBsYWNlKC8mL2csIFwiJmFtcDtcIikucmVwbGFjZSgvPC9nLCBcIiZsdDtcIikucmVwbGFjZSgvPi9nLCBcIiZndDtcIikucmVwbGFjZSgvXCIvZywgXCImcXVvdDtcIik7XG59XG5cbmZ1bmN0aW9uIGVzY2FwZUVsZW1lbnQodmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWVcbiAgICAgICAgLnJlcGxhY2UoLyYvZywgXCImYW1wO1wiKVxuICAgICAgICAucmVwbGFjZSgvXCIvZywgXCImcXVvdDtcIilcbiAgICAgICAgLnJlcGxhY2UoLycvZywgXCImYXBvcztcIilcbiAgICAgICAgLnJlcGxhY2UoLzwvZywgXCImbHQ7XCIpXG4gICAgICAgIC5yZXBsYWNlKC8+L2csIFwiJmd0O1wiKVxuICAgICAgICAucmVwbGFjZSgvXFxyL2csIFwiJiN4MEQ7XCIpXG4gICAgICAgIC5yZXBsYWNlKC9cXG4vZywgXCImI3gwQTtcIilcbiAgICAgICAgLnJlcGxhY2UoL1xcdTAwODUvZywgXCImI3g4NTtcIilcbiAgICAgICAgLnJlcGxhY2UoL1xcdTIwMjgvLCBcIiYjeDIwMjg7XCIpO1xufVxuXG5jbGFzcyBYbWxUZXh0IHtcbiAgICB2YWx1ZTtcbiAgICBjb25zdHJ1Y3Rvcih2YWx1ZSkge1xuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgfVxuICAgIHRvU3RyaW5nKCkge1xuICAgICAgICByZXR1cm4gZXNjYXBlRWxlbWVudChcIlwiICsgdGhpcy52YWx1ZSk7XG4gICAgfVxufVxuXG5jbGFzcyBYbWxOb2RlIHtcbiAgICBuYW1lO1xuICAgIGNoaWxkcmVuO1xuICAgIGF0dHJpYnV0ZXMgPSB7fTtcbiAgICBzdGF0aWMgb2YobmFtZSwgY2hpbGRUZXh0LCB3aXRoTmFtZSkge1xuICAgICAgICBjb25zdCBub2RlID0gbmV3IFhtbE5vZGUobmFtZSk7XG4gICAgICAgIGlmIChjaGlsZFRleHQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgbm9kZS5hZGRDaGlsZE5vZGUobmV3IFhtbFRleHQoY2hpbGRUZXh0KSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHdpdGhOYW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIG5vZGUud2l0aE5hbWUod2l0aE5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBub2RlO1xuICAgIH1cbiAgICBjb25zdHJ1Y3RvcihuYW1lLCBjaGlsZHJlbiA9IFtdKSB7XG4gICAgICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgICAgIHRoaXMuY2hpbGRyZW4gPSBjaGlsZHJlbjtcbiAgICB9XG4gICAgd2l0aE5hbWUobmFtZSkge1xuICAgICAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgYWRkQXR0cmlidXRlKG5hbWUsIHZhbHVlKSB7XG4gICAgICAgIHRoaXMuYXR0cmlidXRlc1tuYW1lXSA9IHZhbHVlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgYWRkQ2hpbGROb2RlKGNoaWxkKSB7XG4gICAgICAgIHRoaXMuY2hpbGRyZW4ucHVzaChjaGlsZCk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICByZW1vdmVBdHRyaWJ1dGUobmFtZSkge1xuICAgICAgICBkZWxldGUgdGhpcy5hdHRyaWJ1dGVzW25hbWVdO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgbihuYW1lKSB7XG4gICAgICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBjKGNoaWxkKSB7XG4gICAgICAgIHRoaXMuY2hpbGRyZW4ucHVzaChjaGlsZCk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBhKG5hbWUsIHZhbHVlKSB7XG4gICAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLmF0dHJpYnV0ZXNbbmFtZV0gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgY2MoaW5wdXQsIGZpZWxkLCB3aXRoTmFtZSA9IGZpZWxkKSB7XG4gICAgICAgIGlmIChpbnB1dFtmaWVsZF0gIT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZSA9IFhtbE5vZGUub2YoZmllbGQsIGlucHV0W2ZpZWxkXSkud2l0aE5hbWUod2l0aE5hbWUpO1xuICAgICAgICAgICAgdGhpcy5jKG5vZGUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGwoaW5wdXQsIGxpc3ROYW1lLCBtZW1iZXJOYW1lLCB2YWx1ZVByb3ZpZGVyKSB7XG4gICAgICAgIGlmIChpbnB1dFtsaXN0TmFtZV0gIT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZXMgPSB2YWx1ZVByb3ZpZGVyKCk7XG4gICAgICAgICAgICBub2Rlcy5tYXAoKG5vZGUpID0+IHtcbiAgICAgICAgICAgICAgICBub2RlLndpdGhOYW1lKG1lbWJlck5hbWUpO1xuICAgICAgICAgICAgICAgIHRoaXMuYyhub2RlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIGxjKGlucHV0LCBsaXN0TmFtZSwgbWVtYmVyTmFtZSwgdmFsdWVQcm92aWRlcikge1xuICAgICAgICBpZiAoaW5wdXRbbGlzdE5hbWVdICE9IG51bGwpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGVzID0gdmFsdWVQcm92aWRlcigpO1xuICAgICAgICAgICAgY29uc3QgY29udGFpbmVyTm9kZSA9IG5ldyBYbWxOb2RlKG1lbWJlck5hbWUpO1xuICAgICAgICAgICAgbm9kZXMubWFwKChub2RlKSA9PiB7XG4gICAgICAgICAgICAgICAgY29udGFpbmVyTm9kZS5jKG5vZGUpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLmMoY29udGFpbmVyTm9kZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgdG9TdHJpbmcoKSB7XG4gICAgICAgIGNvbnN0IGhhc0NoaWxkcmVuID0gQm9vbGVhbih0aGlzLmNoaWxkcmVuLmxlbmd0aCk7XG4gICAgICAgIGxldCB4bWxUZXh0ID0gYDwke3RoaXMubmFtZX1gO1xuICAgICAgICBjb25zdCBhdHRyaWJ1dGVzID0gdGhpcy5hdHRyaWJ1dGVzO1xuICAgICAgICBmb3IgKGNvbnN0IGF0dHJpYnV0ZU5hbWUgb2YgT2JqZWN0LmtleXMoYXR0cmlidXRlcykpIHtcbiAgICAgICAgICAgIGNvbnN0IGF0dHJpYnV0ZSA9IGF0dHJpYnV0ZXNbYXR0cmlidXRlTmFtZV07XG4gICAgICAgICAgICBpZiAoYXR0cmlidXRlICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICB4bWxUZXh0ICs9IGAgJHthdHRyaWJ1dGVOYW1lfT1cIiR7ZXNjYXBlQXR0cmlidXRlKFwiXCIgKyBhdHRyaWJ1dGUpfVwiYDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKHhtbFRleHQgKz0gIWhhc0NoaWxkcmVuID8gXCIvPlwiIDogYD4ke3RoaXMuY2hpbGRyZW4ubWFwKChjKSA9PiBjLnRvU3RyaW5nKCkpLmpvaW4oXCJcIil9PC8ke3RoaXMubmFtZX0+YCk7XG4gICAgfVxufVxuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJwYXJzZVhNTFwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHhtbFBhcnNlci5wYXJzZVhNTDsgfVxufSk7XG5leHBvcnRzLlhtbE5vZGUgPSBYbWxOb2RlO1xuZXhwb3J0cy5YbWxUZXh0ID0gWG1sVGV4dDtcbiIsICJpbXBvcnQgeyBwYXJzZVhNTCB9IGZyb20gXCJAYXdzLXNkay94bWwtYnVpbGRlclwiO1xuaW1wb3J0IHsgRnJvbVN0cmluZ1NoYXBlRGVzZXJpYWxpemVyIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9wcm90b2NvbHNcIjtcbmltcG9ydCB7IE5vcm1hbGl6ZWRTY2hlbWEgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3NjaGVtYVwiO1xuaW1wb3J0IHsgZ2V0VmFsdWVGcm9tVGV4dE5vZGUgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyB0b1V0ZjggfSBmcm9tIFwiQHNtaXRoeS91dGlsLXV0ZjhcIjtcbmltcG9ydCB7IFNlcmRlQ29udGV4dENvbmZpZyB9IGZyb20gXCIuLi9Db25maWd1cmFibGVTZXJkZUNvbnRleHRcIjtcbmltcG9ydCB7IFVuaW9uU2VyZGUgfSBmcm9tIFwiLi4vVW5pb25TZXJkZVwiO1xuZXhwb3J0IGNsYXNzIFhtbFNoYXBlRGVzZXJpYWxpemVyIGV4dGVuZHMgU2VyZGVDb250ZXh0Q29uZmlnIHtcbiAgICBzZXR0aW5ncztcbiAgICBzdHJpbmdEZXNlcmlhbGl6ZXI7XG4gICAgY29uc3RydWN0b3Ioc2V0dGluZ3MpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5zZXR0aW5ncyA9IHNldHRpbmdzO1xuICAgICAgICB0aGlzLnN0cmluZ0Rlc2VyaWFsaXplciA9IG5ldyBGcm9tU3RyaW5nU2hhcGVEZXNlcmlhbGl6ZXIoc2V0dGluZ3MpO1xuICAgIH1cbiAgICBzZXRTZXJkZUNvbnRleHQoc2VyZGVDb250ZXh0KSB7XG4gICAgICAgIHRoaXMuc2VyZGVDb250ZXh0ID0gc2VyZGVDb250ZXh0O1xuICAgICAgICB0aGlzLnN0cmluZ0Rlc2VyaWFsaXplci5zZXRTZXJkZUNvbnRleHQoc2VyZGVDb250ZXh0KTtcbiAgICB9XG4gICAgcmVhZChzY2hlbWEsIGJ5dGVzLCBrZXkpIHtcbiAgICAgICAgY29uc3QgbnMgPSBOb3JtYWxpemVkU2NoZW1hLm9mKHNjaGVtYSk7XG4gICAgICAgIGNvbnN0IG1lbWJlclNjaGVtYXMgPSBucy5nZXRNZW1iZXJTY2hlbWFzKCk7XG4gICAgICAgIGNvbnN0IGlzRXZlbnRQYXlsb2FkID0gbnMuaXNTdHJ1Y3RTY2hlbWEoKSAmJlxuICAgICAgICAgICAgbnMuaXNNZW1iZXJTY2hlbWEoKSAmJlxuICAgICAgICAgICAgISFPYmplY3QudmFsdWVzKG1lbWJlclNjaGVtYXMpLmZpbmQoKG1lbWJlck5zKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICEhbWVtYmVyTnMuZ2V0TWVtYmVyVHJhaXRzKCkuZXZlbnRQYXlsb2FkO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIGlmIChpc0V2ZW50UGF5bG9hZCkge1xuICAgICAgICAgICAgY29uc3Qgb3V0cHV0ID0ge307XG4gICAgICAgICAgICBjb25zdCBtZW1iZXJOYW1lID0gT2JqZWN0LmtleXMobWVtYmVyU2NoZW1hcylbMF07XG4gICAgICAgICAgICBjb25zdCBldmVudE1lbWJlclNjaGVtYSA9IG1lbWJlclNjaGVtYXNbbWVtYmVyTmFtZV07XG4gICAgICAgICAgICBpZiAoZXZlbnRNZW1iZXJTY2hlbWEuaXNCbG9iU2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICBvdXRwdXRbbWVtYmVyTmFtZV0gPSBieXRlcztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIG91dHB1dFttZW1iZXJOYW1lXSA9IHRoaXMucmVhZChtZW1iZXJTY2hlbWFzW21lbWJlck5hbWVdLCBieXRlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gb3V0cHV0O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHhtbFN0cmluZyA9ICh0aGlzLnNlcmRlQ29udGV4dD8udXRmOEVuY29kZXIgPz8gdG9VdGY4KShieXRlcyk7XG4gICAgICAgIGNvbnN0IHBhcnNlZE9iamVjdCA9IHRoaXMucGFyc2VYbWwoeG1sU3RyaW5nKTtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVhZFNjaGVtYShzY2hlbWEsIGtleSA/IHBhcnNlZE9iamVjdFtrZXldIDogcGFyc2VkT2JqZWN0KTtcbiAgICB9XG4gICAgcmVhZFNjaGVtYShfc2NoZW1hLCB2YWx1ZSkge1xuICAgICAgICBjb25zdCBucyA9IE5vcm1hbGl6ZWRTY2hlbWEub2YoX3NjaGVtYSk7XG4gICAgICAgIGlmIChucy5pc1VuaXRTY2hlbWEoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHRyYWl0cyA9IG5zLmdldE1lcmdlZFRyYWl0cygpO1xuICAgICAgICBpZiAobnMuaXNMaXN0U2NoZW1hKCkgJiYgIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yZWFkU2NoZW1hKG5zLCBbdmFsdWVdKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgIGNvbnN0IHNwYXJzZSA9ICEhdHJhaXRzLnNwYXJzZTtcbiAgICAgICAgICAgIGNvbnN0IGZsYXQgPSAhIXRyYWl0cy54bWxGbGF0dGVuZWQ7XG4gICAgICAgICAgICBpZiAobnMuaXNMaXN0U2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBsaXN0VmFsdWUgPSBucy5nZXRWYWx1ZVNjaGVtYSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGJ1ZmZlciA9IFtdO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNvdXJjZUtleSA9IGxpc3RWYWx1ZS5nZXRNZXJnZWRUcmFpdHMoKS54bWxOYW1lID8/IFwibWVtYmVyXCI7XG4gICAgICAgICAgICAgICAgY29uc3Qgc291cmNlID0gZmxhdCA/IHZhbHVlIDogKHZhbHVlWzBdID8/IHZhbHVlKVtzb3VyY2VLZXldO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNvdXJjZUFycmF5ID0gQXJyYXkuaXNBcnJheShzb3VyY2UpID8gc291cmNlIDogW3NvdXJjZV07XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCB2IG9mIHNvdXJjZUFycmF5KSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2ICE9IG51bGwgfHwgc3BhcnNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBidWZmZXIucHVzaCh0aGlzLnJlYWRTY2hlbWEobGlzdFZhbHVlLCB2KSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGJ1ZmZlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGJ1ZmZlciA9IHt9O1xuICAgICAgICAgICAgaWYgKG5zLmlzTWFwU2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBrZXlOcyA9IG5zLmdldEtleVNjaGVtYSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IG1lbWJlck5zID0gbnMuZ2V0VmFsdWVTY2hlbWEoKTtcbiAgICAgICAgICAgICAgICBsZXQgZW50cmllcztcbiAgICAgICAgICAgICAgICBpZiAoZmxhdCkge1xuICAgICAgICAgICAgICAgICAgICBlbnRyaWVzID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBlbnRyaWVzID0gQXJyYXkuaXNBcnJheSh2YWx1ZS5lbnRyeSkgPyB2YWx1ZS5lbnRyeSA6IFt2YWx1ZS5lbnRyeV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IGtleVByb3BlcnR5ID0ga2V5TnMuZ2V0TWVyZ2VkVHJhaXRzKCkueG1sTmFtZSA/PyBcImtleVwiO1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlUHJvcGVydHkgPSBtZW1iZXJOcy5nZXRNZXJnZWRUcmFpdHMoKS54bWxOYW1lID8/IFwidmFsdWVcIjtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIGVudHJpZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qga2V5ID0gZW50cnlba2V5UHJvcGVydHldO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGVudHJ5W3ZhbHVlUHJvcGVydHldO1xuICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCB8fCBzcGFyc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcltrZXldID0gdGhpcy5yZWFkU2NoZW1hKG1lbWJlck5zLCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGJ1ZmZlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChucy5pc1N0cnVjdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdW5pb24gPSBucy5pc1VuaW9uU2NoZW1hKCk7XG4gICAgICAgICAgICAgICAgbGV0IHVuaW9uU2VyZGU7XG4gICAgICAgICAgICAgICAgaWYgKHVuaW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIHVuaW9uU2VyZGUgPSBuZXcgVW5pb25TZXJkZSh2YWx1ZSwgYnVmZmVyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBbbWVtYmVyTmFtZSwgbWVtYmVyU2NoZW1hXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1lbWJlclRyYWl0cyA9IG1lbWJlclNjaGVtYS5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sT2JqZWN0S2V5ID0gIW1lbWJlclRyYWl0cy5odHRwUGF5bG9hZFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBtZW1iZXJTY2hlbWEuZ2V0TWVtYmVyVHJhaXRzKCkueG1sTmFtZSA/PyBtZW1iZXJOYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICA6IG1lbWJlclRyYWl0cy54bWxOYW1lID8/IG1lbWJlclNjaGVtYS5nZXROYW1lKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh1bmlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdW5pb25TZXJkZS5tYXJrKHhtbE9iamVjdEtleSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlW3htbE9iamVjdEtleV0gIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyW21lbWJlck5hbWVdID0gdGhpcy5yZWFkU2NoZW1hKG1lbWJlclNjaGVtYSwgdmFsdWVbeG1sT2JqZWN0S2V5XSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHVuaW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIHVuaW9uU2VyZGUud3JpdGVVbmtub3duKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBidWZmZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobnMuaXNEb2N1bWVudFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBAYXdzLXNkay9jb3JlL3Byb3RvY29scyAtIHhtbCBkZXNlcmlhbGl6ZXIgdW5oYW5kbGVkIHNjaGVtYSB0eXBlIGZvciAke25zLmdldE5hbWUodHJ1ZSl9YCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzTGlzdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzTWFwU2NoZW1hKCkgfHwgbnMuaXNTdHJ1Y3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnN0cmluZ0Rlc2VyaWFsaXplci5yZWFkKG5zLCB2YWx1ZSk7XG4gICAgfVxuICAgIHBhcnNlWG1sKHhtbCkge1xuICAgICAgICBpZiAoeG1sLmxlbmd0aCkge1xuICAgICAgICAgICAgbGV0IHBhcnNlZE9iajtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgcGFyc2VkT2JqID0gcGFyc2VYTUwoeG1sKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgaWYgKGUgJiYgdHlwZW9mIGUgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIFwiJHJlc3BvbnNlQm9keVRleHRcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHhtbCxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCB0ZXh0Tm9kZU5hbWUgPSBcIiN0ZXh0XCI7XG4gICAgICAgICAgICBjb25zdCBrZXkgPSBPYmplY3Qua2V5cyhwYXJzZWRPYmopWzBdO1xuICAgICAgICAgICAgY29uc3QgcGFyc2VkT2JqVG9SZXR1cm4gPSBwYXJzZWRPYmpba2V5XTtcbiAgICAgICAgICAgIGlmIChwYXJzZWRPYmpUb1JldHVyblt0ZXh0Tm9kZU5hbWVdKSB7XG4gICAgICAgICAgICAgICAgcGFyc2VkT2JqVG9SZXR1cm5ba2V5XSA9IHBhcnNlZE9ialRvUmV0dXJuW3RleHROb2RlTmFtZV07XG4gICAgICAgICAgICAgICAgZGVsZXRlIHBhcnNlZE9ialRvUmV0dXJuW3RleHROb2RlTmFtZV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZ2V0VmFsdWVGcm9tVGV4dE5vZGUocGFyc2VkT2JqVG9SZXR1cm4pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7fTtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgZGV0ZXJtaW5lVGltZXN0YW1wRm9ybWF0LCBleHRlbmRlZEVuY29kZVVSSUNvbXBvbmVudCB9IGZyb20gXCJAc21pdGh5L2NvcmUvcHJvdG9jb2xzXCI7XG5pbXBvcnQgeyBOb3JtYWxpemVkU2NoZW1hIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IGdlbmVyYXRlSWRlbXBvdGVuY3lUb2tlbiwgTnVtZXJpY1ZhbHVlIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zZXJkZVwiO1xuaW1wb3J0IHsgZGF0ZVRvVXRjU3RyaW5nIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgdG9CYXNlNjQgfSBmcm9tIFwiQHNtaXRoeS91dGlsLWJhc2U2NFwiO1xuaW1wb3J0IHsgU2VyZGVDb250ZXh0Q29uZmlnIH0gZnJvbSBcIi4uL0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dFwiO1xuZXhwb3J0IGNsYXNzIFF1ZXJ5U2hhcGVTZXJpYWxpemVyIGV4dGVuZHMgU2VyZGVDb250ZXh0Q29uZmlnIHtcbiAgICBzZXR0aW5ncztcbiAgICBidWZmZXI7XG4gICAgY29uc3RydWN0b3Ioc2V0dGluZ3MpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5zZXR0aW5ncyA9IHNldHRpbmdzO1xuICAgIH1cbiAgICB3cml0ZShzY2hlbWEsIHZhbHVlLCBwcmVmaXggPSBcIlwiKSB7XG4gICAgICAgIGlmICh0aGlzLmJ1ZmZlciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmJ1ZmZlciA9IFwiXCI7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbnMgPSBOb3JtYWxpemVkU2NoZW1hLm9mKHNjaGVtYSk7XG4gICAgICAgIGlmIChwcmVmaXggJiYgIXByZWZpeC5lbmRzV2l0aChcIi5cIikpIHtcbiAgICAgICAgICAgIHByZWZpeCArPSBcIi5cIjtcbiAgICAgICAgfVxuICAgICAgICBpZiAobnMuaXNCbG9iU2NoZW1hKCkpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgfHwgdmFsdWUgaW5zdGFuY2VvZiBVaW50OEFycmF5KSB7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZUtleShwcmVmaXgpO1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVWYWx1ZSgodGhpcy5zZXJkZUNvbnRleHQ/LmJhc2U2NEVuY29kZXIgPz8gdG9CYXNlNjQpKHZhbHVlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAobnMuaXNCb29sZWFuU2NoZW1hKCkgfHwgbnMuaXNOdW1lcmljU2NoZW1hKCkgfHwgbnMuaXNTdHJpbmdTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlS2V5KHByZWZpeCk7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKFN0cmluZyh2YWx1ZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAobnMuaXNJZGVtcG90ZW5jeVRva2VuKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlS2V5KHByZWZpeCk7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKGdlbmVyYXRlSWRlbXBvdGVuY3lUb2tlbigpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChucy5pc0JpZ0ludGVnZXJTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlS2V5KHByZWZpeCk7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKFN0cmluZyh2YWx1ZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKG5zLmlzQmlnRGVjaW1hbFNjaGVtYSgpKSB7XG4gICAgICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVLZXkocHJlZml4KTtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlVmFsdWUodmFsdWUgaW5zdGFuY2VvZiBOdW1lcmljVmFsdWUgPyB2YWx1ZS5zdHJpbmcgOiBTdHJpbmcodmFsdWUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChucy5pc1RpbWVzdGFtcFNjaGVtYSgpKSB7XG4gICAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZUtleShwcmVmaXgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZvcm1hdCA9IGRldGVybWluZVRpbWVzdGFtcEZvcm1hdChucywgdGhpcy5zZXR0aW5ncyk7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChmb3JtYXQpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKHZhbHVlLnRvSVNPU3RyaW5nKCkucmVwbGFjZShcIi4wMDBaXCIsIFwiWlwiKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKGRhdGVUb1V0Y1N0cmluZyh2YWx1ZSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMud3JpdGVWYWx1ZShTdHJpbmcodmFsdWUuZ2V0VGltZSgpIC8gMTAwMCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKG5zLmlzRG9jdW1lbnRTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZSg2NCB8IDE1LCB2YWx1ZSwgcHJlZml4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGUoNCwgdmFsdWUsIHByZWZpeCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmICh2YWx1ZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlKDIxLCB2YWx1ZSwgcHJlZml4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGUoMTI4IHwgMTUsIHZhbHVlLCBwcmVmaXgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZUtleShwcmVmaXgpO1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVWYWx1ZShTdHJpbmcodmFsdWUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChucy5pc0xpc3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5zZXR0aW5ncy5zZXJpYWxpemVFbXB0eUxpc3RzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLndyaXRlS2V5KHByZWZpeCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLndyaXRlVmFsdWUoXCJcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1lbWJlciA9IG5zLmdldFZhbHVlU2NoZW1hKCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZsYXQgPSB0aGlzLnNldHRpbmdzLmZsYXR0ZW5MaXN0cyB8fCBucy5nZXRNZXJnZWRUcmFpdHMoKS54bWxGbGF0dGVuZWQ7XG4gICAgICAgICAgICAgICAgICAgIGxldCBpID0gMTtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbSA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0cmFpdHMgPSBtZW1iZXIuZ2V0TWVyZ2VkVHJhaXRzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdWZmaXggPSB0aGlzLmdldEtleShcIm1lbWJlclwiLCB0cmFpdHMueG1sTmFtZSwgdHJhaXRzLmVjMlF1ZXJ5TmFtZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSBmbGF0ID8gYCR7cHJlZml4fSR7aX1gIDogYCR7cHJlZml4fSR7c3VmZml4fS4ke2l9YDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMud3JpdGUobWVtYmVyLCBpdGVtLCBrZXkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgKytpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKG5zLmlzTWFwU2NoZW1hKCkpIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBrZXlTY2hlbWEgPSBucy5nZXRLZXlTY2hlbWEoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBtZW1iZXJTY2hlbWEgPSBucy5nZXRWYWx1ZVNjaGVtYSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZsYXQgPSBucy5nZXRNZXJnZWRUcmFpdHMoKS54bWxGbGF0dGVuZWQ7XG4gICAgICAgICAgICAgICAgbGV0IGkgPSAxO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodiA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBrZXlUcmFpdHMgPSBrZXlTY2hlbWEuZ2V0TWVyZ2VkVHJhaXRzKCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGtleVN1ZmZpeCA9IHRoaXMuZ2V0S2V5KFwia2V5XCIsIGtleVRyYWl0cy54bWxOYW1lLCBrZXlUcmFpdHMuZWMyUXVlcnlOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qga2V5ID0gZmxhdCA/IGAke3ByZWZpeH0ke2l9LiR7a2V5U3VmZml4fWAgOiBgJHtwcmVmaXh9ZW50cnkuJHtpfS4ke2tleVN1ZmZpeH1gO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWxUcmFpdHMgPSBtZW1iZXJTY2hlbWEuZ2V0TWVyZ2VkVHJhaXRzKCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlU3VmZml4ID0gdGhpcy5nZXRLZXkoXCJ2YWx1ZVwiLCB2YWxUcmFpdHMueG1sTmFtZSwgdmFsVHJhaXRzLmVjMlF1ZXJ5TmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlS2V5ID0gZmxhdCA/IGAke3ByZWZpeH0ke2l9LiR7dmFsdWVTdWZmaXh9YCA6IGAke3ByZWZpeH1lbnRyeS4ke2l9LiR7dmFsdWVTdWZmaXh9YDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy53cml0ZShrZXlTY2hlbWEsIGssIGtleSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMud3JpdGUobWVtYmVyU2NoZW1hLCB2LCB2YWx1ZUtleSk7XG4gICAgICAgICAgICAgICAgICAgICsraTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAobnMuaXNTdHJ1Y3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgICAgIGxldCBkaWRXcml0ZU1lbWJlciA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgW21lbWJlck5hbWUsIG1lbWJlcl0gb2YgbnMuc3RydWN0SXRlcmF0b3IoKSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWVbbWVtYmVyTmFtZV0gPT0gbnVsbCAmJiAhbWVtYmVyLmlzSWRlbXBvdGVuY3lUb2tlbigpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCB0cmFpdHMgPSBtZW1iZXIuZ2V0TWVyZ2VkVHJhaXRzKCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHN1ZmZpeCA9IHRoaXMuZ2V0S2V5KG1lbWJlck5hbWUsIHRyYWl0cy54bWxOYW1lLCB0cmFpdHMuZWMyUXVlcnlOYW1lLCBcInN0cnVjdFwiKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qga2V5ID0gYCR7cHJlZml4fSR7c3VmZml4fWA7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMud3JpdGUobWVtYmVyLCB2YWx1ZVttZW1iZXJOYW1lXSwga2V5KTtcbiAgICAgICAgICAgICAgICAgICAgZGlkV3JpdGVNZW1iZXIgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoIWRpZFdyaXRlTWVtYmVyICYmIG5zLmlzVW5pb25TY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB7ICR1bmtub3duIH0gPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoJHVua25vd24pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBbaywgdl0gPSAkdW5rbm93bjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IGAke3ByZWZpeH0ke2t9YDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMud3JpdGUoMTUsIHYsIGtleSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAobnMuaXNVbml0U2NoZW1hKCkpIHtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSBRdWVyeVNlcmlhbGl6ZXIgdW5yZWNvZ25pemVkIHNjaGVtYSB0eXBlICR7bnMuZ2V0TmFtZSh0cnVlKX1gKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmbHVzaCgpIHtcbiAgICAgICAgaWYgKHRoaXMuYnVmZmVyID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkBhd3Mtc2RrL2NvcmUvcHJvdG9jb2xzIC0gUXVlcnlTZXJpYWxpemVyIGNhbm5vdCBmbHVzaCB3aXRoIG5vdGhpbmcgd3JpdHRlbiB0byBidWZmZXIuXCIpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHN0ciA9IHRoaXMuYnVmZmVyO1xuICAgICAgICBkZWxldGUgdGhpcy5idWZmZXI7XG4gICAgICAgIHJldHVybiBzdHI7XG4gICAgfVxuICAgIGdldEtleShtZW1iZXJOYW1lLCB4bWxOYW1lLCBlYzJRdWVyeU5hbWUsIGtleVNvdXJjZSkge1xuICAgICAgICBjb25zdCB7IGVjMiwgY2FwaXRhbGl6ZUtleXMgfSA9IHRoaXMuc2V0dGluZ3M7XG4gICAgICAgIGlmIChlYzIgJiYgZWMyUXVlcnlOYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4gZWMyUXVlcnlOYW1lO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGtleSA9IHhtbE5hbWUgPz8gbWVtYmVyTmFtZTtcbiAgICAgICAgaWYgKGNhcGl0YWxpemVLZXlzICYmIGtleVNvdXJjZSA9PT0gXCJzdHJ1Y3RcIikge1xuICAgICAgICAgICAgcmV0dXJuIGtleVswXS50b1VwcGVyQ2FzZSgpICsga2V5LnNsaWNlKDEpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBrZXk7XG4gICAgfVxuICAgIHdyaXRlS2V5KGtleSkge1xuICAgICAgICBpZiAoa2V5LmVuZHNXaXRoKFwiLlwiKSkge1xuICAgICAgICAgICAga2V5ID0ga2V5LnNsaWNlKDAsIGtleS5sZW5ndGggLSAxKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmJ1ZmZlciArPSBgJiR7ZXh0ZW5kZWRFbmNvZGVVUklDb21wb25lbnQoa2V5KX09YDtcbiAgICB9XG4gICAgd3JpdGVWYWx1ZSh2YWx1ZSkge1xuICAgICAgICB0aGlzLmJ1ZmZlciArPSBleHRlbmRlZEVuY29kZVVSSUNvbXBvbmVudCh2YWx1ZSk7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IGNvbGxlY3RCb2R5LCBScGNQcm90b2NvbCB9IGZyb20gXCJAc21pdGh5L2NvcmUvcHJvdG9jb2xzXCI7XG5pbXBvcnQgeyBkZXJlZiwgTm9ybWFsaXplZFNjaGVtYSwgVHlwZVJlZ2lzdHJ5IH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IFByb3RvY29sTGliIH0gZnJvbSBcIi4uL1Byb3RvY29sTGliXCI7XG5pbXBvcnQgeyBYbWxTaGFwZURlc2VyaWFsaXplciB9IGZyb20gXCIuLi94bWwvWG1sU2hhcGVEZXNlcmlhbGl6ZXJcIjtcbmltcG9ydCB7IFF1ZXJ5U2hhcGVTZXJpYWxpemVyIH0gZnJvbSBcIi4vUXVlcnlTaGFwZVNlcmlhbGl6ZXJcIjtcbmV4cG9ydCBjbGFzcyBBd3NRdWVyeVByb3RvY29sIGV4dGVuZHMgUnBjUHJvdG9jb2wge1xuICAgIG9wdGlvbnM7XG4gICAgc2VyaWFsaXplcjtcbiAgICBkZXNlcmlhbGl6ZXI7XG4gICAgbWl4aW4gPSBuZXcgUHJvdG9jb2xMaWIoKTtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIGRlZmF1bHROYW1lc3BhY2U6IG9wdGlvbnMuZGVmYXVsdE5hbWVzcGFjZSxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgICAgIGNvbnN0IHNldHRpbmdzID0ge1xuICAgICAgICAgICAgdGltZXN0YW1wRm9ybWF0OiB7XG4gICAgICAgICAgICAgICAgdXNlVHJhaXQ6IHRydWUsXG4gICAgICAgICAgICAgICAgZGVmYXVsdDogNSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBodHRwQmluZGluZ3M6IGZhbHNlLFxuICAgICAgICAgICAgeG1sTmFtZXNwYWNlOiBvcHRpb25zLnhtbE5hbWVzcGFjZSxcbiAgICAgICAgICAgIHNlcnZpY2VOYW1lc3BhY2U6IG9wdGlvbnMuZGVmYXVsdE5hbWVzcGFjZSxcbiAgICAgICAgICAgIHNlcmlhbGl6ZUVtcHR5TGlzdHM6IHRydWUsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuc2VyaWFsaXplciA9IG5ldyBRdWVyeVNoYXBlU2VyaWFsaXplcihzZXR0aW5ncyk7XG4gICAgICAgIHRoaXMuZGVzZXJpYWxpemVyID0gbmV3IFhtbFNoYXBlRGVzZXJpYWxpemVyKHNldHRpbmdzKTtcbiAgICB9XG4gICAgZ2V0U2hhcGVJZCgpIHtcbiAgICAgICAgcmV0dXJuIFwiYXdzLnByb3RvY29scyNhd3NRdWVyeVwiO1xuICAgIH1cbiAgICBzZXRTZXJkZUNvbnRleHQoc2VyZGVDb250ZXh0KSB7XG4gICAgICAgIHRoaXMuc2VyaWFsaXplci5zZXRTZXJkZUNvbnRleHQoc2VyZGVDb250ZXh0KTtcbiAgICAgICAgdGhpcy5kZXNlcmlhbGl6ZXIuc2V0U2VyZGVDb250ZXh0KHNlcmRlQ29udGV4dCk7XG4gICAgfVxuICAgIGdldFBheWxvYWRDb2RlYygpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQVdTUXVlcnkgcHJvdG9jb2wgaGFzIG5vIHBheWxvYWQgY29kZWMuXCIpO1xuICAgIH1cbiAgICBhc3luYyBzZXJpYWxpemVSZXF1ZXN0KG9wZXJhdGlvblNjaGVtYSwgaW5wdXQsIGNvbnRleHQpIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IGF3YWl0IHN1cGVyLnNlcmlhbGl6ZVJlcXVlc3Qob3BlcmF0aW9uU2NoZW1hLCBpbnB1dCwgY29udGV4dCk7XG4gICAgICAgIGlmICghcmVxdWVzdC5wYXRoLmVuZHNXaXRoKFwiL1wiKSkge1xuICAgICAgICAgICAgcmVxdWVzdC5wYXRoICs9IFwiL1wiO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24ocmVxdWVzdC5oZWFkZXJzLCB7XG4gICAgICAgICAgICBcImNvbnRlbnQtdHlwZVwiOiBgYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkYCxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChkZXJlZihvcGVyYXRpb25TY2hlbWEuaW5wdXQpID09PSBcInVuaXRcIiB8fCAhcmVxdWVzdC5ib2R5KSB7XG4gICAgICAgICAgICByZXF1ZXN0LmJvZHkgPSBcIlwiO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGFjdGlvbiA9IG9wZXJhdGlvblNjaGVtYS5uYW1lLnNwbGl0KFwiI1wiKVsxXSA/PyBvcGVyYXRpb25TY2hlbWEubmFtZTtcbiAgICAgICAgcmVxdWVzdC5ib2R5ID0gYEFjdGlvbj0ke2FjdGlvbn0mVmVyc2lvbj0ke3RoaXMub3B0aW9ucy52ZXJzaW9ufWAgKyByZXF1ZXN0LmJvZHk7XG4gICAgICAgIGlmIChyZXF1ZXN0LmJvZHkuZW5kc1dpdGgoXCImXCIpKSB7XG4gICAgICAgICAgICByZXF1ZXN0LmJvZHkgPSByZXF1ZXN0LmJvZHkuc2xpY2UoLTEpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXF1ZXN0O1xuICAgIH1cbiAgICBhc3luYyBkZXNlcmlhbGl6ZVJlc3BvbnNlKG9wZXJhdGlvblNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UpIHtcbiAgICAgICAgY29uc3QgZGVzZXJpYWxpemVyID0gdGhpcy5kZXNlcmlhbGl6ZXI7XG4gICAgICAgIGNvbnN0IG5zID0gTm9ybWFsaXplZFNjaGVtYS5vZihvcGVyYXRpb25TY2hlbWEub3V0cHV0KTtcbiAgICAgICAgY29uc3QgZGF0YU9iamVjdCA9IHt9O1xuICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzQ29kZSA+PSAzMDApIHtcbiAgICAgICAgICAgIGNvbnN0IGJ5dGVzID0gYXdhaXQgY29sbGVjdEJvZHkocmVzcG9uc2UuYm9keSwgY29udGV4dCk7XG4gICAgICAgICAgICBpZiAoYnl0ZXMuYnl0ZUxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKGRhdGFPYmplY3QsIGF3YWl0IGRlc2VyaWFsaXplci5yZWFkKDE1LCBieXRlcykpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYXdhaXQgdGhpcy5oYW5kbGVFcnJvcihvcGVyYXRpb25TY2hlbWEsIGNvbnRleHQsIHJlc3BvbnNlLCBkYXRhT2JqZWN0LCB0aGlzLmRlc2VyaWFsaXplTWV0YWRhdGEocmVzcG9uc2UpKTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IGhlYWRlciBpbiByZXNwb25zZS5oZWFkZXJzKSB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHJlc3BvbnNlLmhlYWRlcnNbaGVhZGVyXTtcbiAgICAgICAgICAgIGRlbGV0ZSByZXNwb25zZS5oZWFkZXJzW2hlYWRlcl07XG4gICAgICAgICAgICByZXNwb25zZS5oZWFkZXJzW2hlYWRlci50b0xvd2VyQ2FzZSgpXSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNob3J0TmFtZSA9IG9wZXJhdGlvblNjaGVtYS5uYW1lLnNwbGl0KFwiI1wiKVsxXSA/PyBvcGVyYXRpb25TY2hlbWEubmFtZTtcbiAgICAgICAgY29uc3QgYXdzUXVlcnlSZXN1bHRLZXkgPSBucy5pc1N0cnVjdFNjaGVtYSgpICYmIHRoaXMudXNlTmVzdGVkUmVzdWx0KCkgPyBzaG9ydE5hbWUgKyBcIlJlc3VsdFwiIDogdW5kZWZpbmVkO1xuICAgICAgICBjb25zdCBieXRlcyA9IGF3YWl0IGNvbGxlY3RCb2R5KHJlc3BvbnNlLmJvZHksIGNvbnRleHQpO1xuICAgICAgICBpZiAoYnl0ZXMuYnl0ZUxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oZGF0YU9iamVjdCwgYXdhaXQgZGVzZXJpYWxpemVyLnJlYWQobnMsIGJ5dGVzLCBhd3NRdWVyeVJlc3VsdEtleSkpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG91dHB1dCA9IHtcbiAgICAgICAgICAgICRtZXRhZGF0YTogdGhpcy5kZXNlcmlhbGl6ZU1ldGFkYXRhKHJlc3BvbnNlKSxcbiAgICAgICAgICAgIC4uLmRhdGFPYmplY3QsXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBvdXRwdXQ7XG4gICAgfVxuICAgIHVzZU5lc3RlZFJlc3VsdCgpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGFzeW5jIGhhbmRsZUVycm9yKG9wZXJhdGlvblNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UsIGRhdGFPYmplY3QsIG1ldGFkYXRhKSB7XG4gICAgICAgIGNvbnN0IGVycm9ySWRlbnRpZmllciA9IHRoaXMubG9hZFF1ZXJ5RXJyb3JDb2RlKHJlc3BvbnNlLCBkYXRhT2JqZWN0KSA/PyBcIlVua25vd25cIjtcbiAgICAgICAgY29uc3QgZXJyb3JEYXRhID0gdGhpcy5sb2FkUXVlcnlFcnJvcihkYXRhT2JqZWN0KSA/PyB7fTtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IHRoaXMubG9hZFF1ZXJ5RXJyb3JNZXNzYWdlKGRhdGFPYmplY3QpO1xuICAgICAgICBlcnJvckRhdGEubWVzc2FnZSA9IG1lc3NhZ2U7XG4gICAgICAgIGVycm9yRGF0YS5FcnJvciA9IHtcbiAgICAgICAgICAgIFR5cGU6IGVycm9yRGF0YS5UeXBlLFxuICAgICAgICAgICAgQ29kZTogZXJyb3JEYXRhLkNvZGUsXG4gICAgICAgICAgICBNZXNzYWdlOiBtZXNzYWdlLFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCB7IGVycm9yU2NoZW1hLCBlcnJvck1ldGFkYXRhIH0gPSBhd2FpdCB0aGlzLm1peGluLmdldEVycm9yU2NoZW1hT3JUaHJvd0Jhc2VFeGNlcHRpb24oZXJyb3JJZGVudGlmaWVyLCB0aGlzLm9wdGlvbnMuZGVmYXVsdE5hbWVzcGFjZSwgcmVzcG9uc2UsIGVycm9yRGF0YSwgbWV0YWRhdGEsIHRoaXMubWl4aW4uZmluZFF1ZXJ5Q29tcGF0aWJsZUVycm9yKTtcbiAgICAgICAgY29uc3QgbnMgPSBOb3JtYWxpemVkU2NoZW1hLm9mKGVycm9yU2NoZW1hKTtcbiAgICAgICAgY29uc3QgRXJyb3JDdG9yID0gVHlwZVJlZ2lzdHJ5LmZvcihlcnJvclNjaGVtYVsxXSkuZ2V0RXJyb3JDdG9yKGVycm9yU2NoZW1hKSA/PyBFcnJvcjtcbiAgICAgICAgY29uc3QgZXhjZXB0aW9uID0gbmV3IEVycm9yQ3RvcihtZXNzYWdlKTtcbiAgICAgICAgY29uc3Qgb3V0cHV0ID0ge1xuICAgICAgICAgICAgVHlwZTogZXJyb3JEYXRhLkVycm9yLlR5cGUsXG4gICAgICAgICAgICBDb2RlOiBlcnJvckRhdGEuRXJyb3IuQ29kZSxcbiAgICAgICAgICAgIEVycm9yOiBlcnJvckRhdGEuRXJyb3IsXG4gICAgICAgIH07XG4gICAgICAgIGZvciAoY29uc3QgW25hbWUsIG1lbWJlcl0gb2YgbnMuc3RydWN0SXRlcmF0b3IoKSkge1xuICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gbWVtYmVyLmdldE1lcmdlZFRyYWl0cygpLnhtbE5hbWUgPz8gbmFtZTtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZXJyb3JEYXRhW3RhcmdldF0gPz8gZGF0YU9iamVjdFt0YXJnZXRdO1xuICAgICAgICAgICAgb3V0cHV0W25hbWVdID0gdGhpcy5kZXNlcmlhbGl6ZXIucmVhZFNjaGVtYShtZW1iZXIsIHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyB0aGlzLm1peGluLmRlY29yYXRlU2VydmljZUV4Y2VwdGlvbihPYmplY3QuYXNzaWduKGV4Y2VwdGlvbiwgZXJyb3JNZXRhZGF0YSwge1xuICAgICAgICAgICAgJGZhdWx0OiBucy5nZXRNZXJnZWRUcmFpdHMoKS5lcnJvcixcbiAgICAgICAgICAgIG1lc3NhZ2UsXG4gICAgICAgIH0sIG91dHB1dCksIGRhdGFPYmplY3QpO1xuICAgIH1cbiAgICBsb2FkUXVlcnlFcnJvckNvZGUob3V0cHV0LCBkYXRhKSB7XG4gICAgICAgIGNvbnN0IGNvZGUgPSAoZGF0YS5FcnJvcnM/LlswXT8uRXJyb3IgPz8gZGF0YS5FcnJvcnM/LkVycm9yID8/IGRhdGEuRXJyb3IpPy5Db2RlO1xuICAgICAgICBpZiAoY29kZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gY29kZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3V0cHV0LnN0YXR1c0NvZGUgPT0gNDA0KSB7XG4gICAgICAgICAgICByZXR1cm4gXCJOb3RGb3VuZFwiO1xuICAgICAgICB9XG4gICAgfVxuICAgIGxvYWRRdWVyeUVycm9yKGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIGRhdGEuRXJyb3JzPy5bMF0/LkVycm9yID8/IGRhdGEuRXJyb3JzPy5FcnJvciA/PyBkYXRhLkVycm9yO1xuICAgIH1cbiAgICBsb2FkUXVlcnlFcnJvck1lc3NhZ2UoZGF0YSkge1xuICAgICAgICBjb25zdCBlcnJvckRhdGEgPSB0aGlzLmxvYWRRdWVyeUVycm9yKGRhdGEpO1xuICAgICAgICByZXR1cm4gZXJyb3JEYXRhPy5tZXNzYWdlID8/IGVycm9yRGF0YT8uTWVzc2FnZSA/PyBkYXRhLm1lc3NhZ2UgPz8gZGF0YS5NZXNzYWdlID8/IFwiVW5rbm93blwiO1xuICAgIH1cbiAgICBnZXREZWZhdWx0Q29udGVudFR5cGUoKSB7XG4gICAgICAgIHJldHVybiBcImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZFwiO1xuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBBd3NRdWVyeVByb3RvY29sIH0gZnJvbSBcIi4vQXdzUXVlcnlQcm90b2NvbFwiO1xuZXhwb3J0IGNsYXNzIEF3c0VjMlF1ZXJ5UHJvdG9jb2wgZXh0ZW5kcyBBd3NRdWVyeVByb3RvY29sIHtcbiAgICBvcHRpb25zO1xuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnMpIHtcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgICAgIGNvbnN0IGVjMlNldHRpbmdzID0ge1xuICAgICAgICAgICAgY2FwaXRhbGl6ZUtleXM6IHRydWUsXG4gICAgICAgICAgICBmbGF0dGVuTGlzdHM6IHRydWUsXG4gICAgICAgICAgICBzZXJpYWxpemVFbXB0eUxpc3RzOiBmYWxzZSxcbiAgICAgICAgICAgIGVjMjogdHJ1ZSxcbiAgICAgICAgfTtcbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLnNlcmlhbGl6ZXIuc2V0dGluZ3MsIGVjMlNldHRpbmdzKTtcbiAgICB9XG4gICAgdXNlTmVzdGVkUmVzdWx0KCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IHBhcnNlWE1MIH0gZnJvbSBcIkBhd3Mtc2RrL3htbC1idWlsZGVyXCI7XG5pbXBvcnQgeyBnZXRWYWx1ZUZyb21UZXh0Tm9kZSB9IGZyb20gXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjtcbmltcG9ydCB7IGNvbGxlY3RCb2R5U3RyaW5nIH0gZnJvbSBcIi4uL2NvbW1vblwiO1xuZXhwb3J0IGNvbnN0IHBhcnNlWG1sQm9keSA9IChzdHJlYW1Cb2R5LCBjb250ZXh0KSA9PiBjb2xsZWN0Qm9keVN0cmluZyhzdHJlYW1Cb2R5LCBjb250ZXh0KS50aGVuKChlbmNvZGVkKSA9PiB7XG4gICAgaWYgKGVuY29kZWQubGVuZ3RoKSB7XG4gICAgICAgIGxldCBwYXJzZWRPYmo7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBwYXJzZWRPYmogPSBwYXJzZVhNTChlbmNvZGVkKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgaWYgKGUgJiYgdHlwZW9mIGUgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwgXCIkcmVzcG9uc2VCb2R5VGV4dFwiLCB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBlbmNvZGVkLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB0ZXh0Tm9kZU5hbWUgPSBcIiN0ZXh0XCI7XG4gICAgICAgIGNvbnN0IGtleSA9IE9iamVjdC5rZXlzKHBhcnNlZE9iailbMF07XG4gICAgICAgIGNvbnN0IHBhcnNlZE9ialRvUmV0dXJuID0gcGFyc2VkT2JqW2tleV07XG4gICAgICAgIGlmIChwYXJzZWRPYmpUb1JldHVyblt0ZXh0Tm9kZU5hbWVdKSB7XG4gICAgICAgICAgICBwYXJzZWRPYmpUb1JldHVybltrZXldID0gcGFyc2VkT2JqVG9SZXR1cm5bdGV4dE5vZGVOYW1lXTtcbiAgICAgICAgICAgIGRlbGV0ZSBwYXJzZWRPYmpUb1JldHVyblt0ZXh0Tm9kZU5hbWVdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBnZXRWYWx1ZUZyb21UZXh0Tm9kZShwYXJzZWRPYmpUb1JldHVybik7XG4gICAgfVxuICAgIHJldHVybiB7fTtcbn0pO1xuZXhwb3J0IGNvbnN0IHBhcnNlWG1sRXJyb3JCb2R5ID0gYXN5bmMgKGVycm9yQm9keSwgY29udGV4dCkgPT4ge1xuICAgIGNvbnN0IHZhbHVlID0gYXdhaXQgcGFyc2VYbWxCb2R5KGVycm9yQm9keSwgY29udGV4dCk7XG4gICAgaWYgKHZhbHVlLkVycm9yKSB7XG4gICAgICAgIHZhbHVlLkVycm9yLm1lc3NhZ2UgPSB2YWx1ZS5FcnJvci5tZXNzYWdlID8/IHZhbHVlLkVycm9yLk1lc3NhZ2U7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZTtcbn07XG5leHBvcnQgY29uc3QgbG9hZFJlc3RYbWxFcnJvckNvZGUgPSAob3V0cHV0LCBkYXRhKSA9PiB7XG4gICAgaWYgKGRhdGE/LkVycm9yPy5Db2RlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIGRhdGEuRXJyb3IuQ29kZTtcbiAgICB9XG4gICAgaWYgKGRhdGE/LkNvZGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gZGF0YS5Db2RlO1xuICAgIH1cbiAgICBpZiAob3V0cHV0LnN0YXR1c0NvZGUgPT0gNDA0KSB7XG4gICAgICAgIHJldHVybiBcIk5vdEZvdW5kXCI7XG4gICAgfVxufTtcbiIsICJpbXBvcnQgeyBYbWxOb2RlLCBYbWxUZXh0IH0gZnJvbSBcIkBhd3Mtc2RrL3htbC1idWlsZGVyXCI7XG5pbXBvcnQgeyBkZXRlcm1pbmVUaW1lc3RhbXBGb3JtYXQgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3Byb3RvY29sc1wiO1xuaW1wb3J0IHsgTm9ybWFsaXplZFNjaGVtYSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2NoZW1hXCI7XG5pbXBvcnQgeyBnZW5lcmF0ZUlkZW1wb3RlbmN5VG9rZW4sIE51bWVyaWNWYWx1ZSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2VyZGVcIjtcbmltcG9ydCB7IGRhdGVUb1V0Y1N0cmluZyB9IGZyb20gXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjtcbmltcG9ydCB7IGZyb21CYXNlNjQsIHRvQmFzZTY0IH0gZnJvbSBcIkBzbWl0aHkvdXRpbC1iYXNlNjRcIjtcbmltcG9ydCB7IFNlcmRlQ29udGV4dENvbmZpZyB9IGZyb20gXCIuLi9Db25maWd1cmFibGVTZXJkZUNvbnRleHRcIjtcbmV4cG9ydCBjbGFzcyBYbWxTaGFwZVNlcmlhbGl6ZXIgZXh0ZW5kcyBTZXJkZUNvbnRleHRDb25maWcge1xuICAgIHNldHRpbmdzO1xuICAgIHN0cmluZ0J1ZmZlcjtcbiAgICBieXRlQnVmZmVyO1xuICAgIGJ1ZmZlcjtcbiAgICBjb25zdHJ1Y3RvcihzZXR0aW5ncykge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnNldHRpbmdzID0gc2V0dGluZ3M7XG4gICAgfVxuICAgIHdyaXRlKHNjaGVtYSwgdmFsdWUpIHtcbiAgICAgICAgY29uc3QgbnMgPSBOb3JtYWxpemVkU2NoZW1hLm9mKHNjaGVtYSk7XG4gICAgICAgIGlmIChucy5pc1N0cmluZ1NjaGVtYSgpICYmIHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgdGhpcy5zdHJpbmdCdWZmZXIgPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChucy5pc0Jsb2JTY2hlbWEoKSkge1xuICAgICAgICAgICAgdGhpcy5ieXRlQnVmZmVyID1cbiAgICAgICAgICAgICAgICBcImJ5dGVMZW5ndGhcIiBpbiB2YWx1ZVxuICAgICAgICAgICAgICAgICAgICA/IHZhbHVlXG4gICAgICAgICAgICAgICAgICAgIDogKHRoaXMuc2VyZGVDb250ZXh0Py5iYXNlNjREZWNvZGVyID8/IGZyb21CYXNlNjQpKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuYnVmZmVyID0gdGhpcy53cml0ZVN0cnVjdChucywgdmFsdWUsIHVuZGVmaW5lZCk7XG4gICAgICAgICAgICBjb25zdCB0cmFpdHMgPSBucy5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgICAgIGlmICh0cmFpdHMuaHR0cFBheWxvYWQgJiYgIXRyYWl0cy54bWxOYW1lKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5idWZmZXIud2l0aE5hbWUobnMuZ2V0TmFtZSgpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBmbHVzaCgpIHtcbiAgICAgICAgaWYgKHRoaXMuYnl0ZUJ1ZmZlciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBjb25zdCBieXRlcyA9IHRoaXMuYnl0ZUJ1ZmZlcjtcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLmJ5dGVCdWZmZXI7XG4gICAgICAgICAgICByZXR1cm4gYnl0ZXM7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuc3RyaW5nQnVmZmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHN0ciA9IHRoaXMuc3RyaW5nQnVmZmVyO1xuICAgICAgICAgICAgZGVsZXRlIHRoaXMuc3RyaW5nQnVmZmVyO1xuICAgICAgICAgICAgcmV0dXJuIHN0cjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBidWZmZXIgPSB0aGlzLmJ1ZmZlcjtcbiAgICAgICAgaWYgKHRoaXMuc2V0dGluZ3MueG1sTmFtZXNwYWNlKSB7XG4gICAgICAgICAgICBpZiAoIWJ1ZmZlcj8uYXR0cmlidXRlcz8uW1wieG1sbnNcIl0pIHtcbiAgICAgICAgICAgICAgICBidWZmZXIuYWRkQXR0cmlidXRlKFwieG1sbnNcIiwgdGhpcy5zZXR0aW5ncy54bWxOYW1lc3BhY2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGRlbGV0ZSB0aGlzLmJ1ZmZlcjtcbiAgICAgICAgcmV0dXJuIGJ1ZmZlci50b1N0cmluZygpO1xuICAgIH1cbiAgICB3cml0ZVN0cnVjdChucywgdmFsdWUsIHBhcmVudFhtbG5zKSB7XG4gICAgICAgIGNvbnN0IHRyYWl0cyA9IG5zLmdldE1lcmdlZFRyYWl0cygpO1xuICAgICAgICBjb25zdCBuYW1lID0gbnMuaXNNZW1iZXJTY2hlbWEoKSAmJiAhdHJhaXRzLmh0dHBQYXlsb2FkXG4gICAgICAgICAgICA/IG5zLmdldE1lbWJlclRyYWl0cygpLnhtbE5hbWUgPz8gbnMuZ2V0TWVtYmVyTmFtZSgpXG4gICAgICAgICAgICA6IHRyYWl0cy54bWxOYW1lID8/IG5zLmdldE5hbWUoKTtcbiAgICAgICAgaWYgKCFuYW1lIHx8ICFucy5pc1N0cnVjdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEBhd3Mtc2RrL2NvcmUvcHJvdG9jb2xzIC0geG1sIHNlcmlhbGl6ZXIsIGNhbm5vdCB3cml0ZSBzdHJ1Y3Qgd2l0aCBlbXB0eSBuYW1lIG9yIG5vbi1zdHJ1Y3QsIHNjaGVtYT0ke25zLmdldE5hbWUodHJ1ZSl9LmApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHN0cnVjdFhtbE5vZGUgPSBYbWxOb2RlLm9mKG5hbWUpO1xuICAgICAgICBjb25zdCBbeG1sbnNBdHRyLCB4bWxuc10gPSB0aGlzLmdldFhtbG5zQXR0cmlidXRlKG5zLCBwYXJlbnRYbWxucyk7XG4gICAgICAgIGZvciAoY29uc3QgW21lbWJlck5hbWUsIG1lbWJlclNjaGVtYV0gb2YgbnMuc3RydWN0SXRlcmF0b3IoKSkge1xuICAgICAgICAgICAgY29uc3QgdmFsID0gdmFsdWVbbWVtYmVyTmFtZV07XG4gICAgICAgICAgICBpZiAodmFsICE9IG51bGwgfHwgbWVtYmVyU2NoZW1hLmlzSWRlbXBvdGVuY3lUb2tlbigpKSB7XG4gICAgICAgICAgICAgICAgaWYgKG1lbWJlclNjaGVtYS5nZXRNZXJnZWRUcmFpdHMoKS54bWxBdHRyaWJ1dGUpIHtcbiAgICAgICAgICAgICAgICAgICAgc3RydWN0WG1sTm9kZS5hZGRBdHRyaWJ1dGUobWVtYmVyU2NoZW1hLmdldE1lcmdlZFRyYWl0cygpLnhtbE5hbWUgPz8gbWVtYmVyTmFtZSwgdGhpcy53cml0ZVNpbXBsZShtZW1iZXJTY2hlbWEsIHZhbCkpO1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKG1lbWJlclNjaGVtYS5pc0xpc3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLndyaXRlTGlzdChtZW1iZXJTY2hlbWEsIHZhbCwgc3RydWN0WG1sTm9kZSwgeG1sbnMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChtZW1iZXJTY2hlbWEuaXNNYXBTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLndyaXRlTWFwKG1lbWJlclNjaGVtYSwgdmFsLCBzdHJ1Y3RYbWxOb2RlLCB4bWxucyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKG1lbWJlclNjaGVtYS5pc1N0cnVjdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHN0cnVjdFhtbE5vZGUuYWRkQ2hpbGROb2RlKHRoaXMud3JpdGVTdHJ1Y3QobWVtYmVyU2NoZW1hLCB2YWwsIHhtbG5zKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtZW1iZXJOb2RlID0gWG1sTm9kZS5vZihtZW1iZXJTY2hlbWEuZ2V0TWVyZ2VkVHJhaXRzKCkueG1sTmFtZSA/PyBtZW1iZXJTY2hlbWEuZ2V0TWVtYmVyTmFtZSgpKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy53cml0ZVNpbXBsZUludG8obWVtYmVyU2NoZW1hLCB2YWwsIG1lbWJlck5vZGUsIHhtbG5zKTtcbiAgICAgICAgICAgICAgICAgICAgc3RydWN0WG1sTm9kZS5hZGRDaGlsZE5vZGUobWVtYmVyTm9kZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHsgJHVua25vd24gfSA9IHZhbHVlO1xuICAgICAgICBpZiAoJHVua25vd24gJiYgbnMuaXNVbmlvblNjaGVtYSgpICYmIEFycmF5LmlzQXJyYXkoJHVua25vd24pICYmIE9iamVjdC5rZXlzKHZhbHVlKS5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgIGNvbnN0IFtrLCB2XSA9ICR1bmtub3duO1xuICAgICAgICAgICAgY29uc3Qgbm9kZSA9IFhtbE5vZGUub2Yoayk7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHYgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBYbWxOb2RlIHx8IHZhbHVlIGluc3RhbmNlb2YgWG1sVGV4dCkge1xuICAgICAgICAgICAgICAgICAgICBzdHJ1Y3RYbWxOb2RlLmFkZENoaWxkTm9kZSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEBhd3Mtc2RrIC0gJHVua25vd24gdW5pb24gbWVtYmVyIGluIFhNTCByZXF1aXJlcyBgICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGB2YWx1ZSBvZiB0eXBlIHN0cmluZywgQGF3cy1zZGsveG1sLWJ1aWxkZXI6OlhtbE5vZGUgb3IgWG1sVGV4dC5gKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLndyaXRlU2ltcGxlSW50bygwLCB2LCBub2RlLCB4bWxucyk7XG4gICAgICAgICAgICBzdHJ1Y3RYbWxOb2RlLmFkZENoaWxkTm9kZShub2RlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoeG1sbnMpIHtcbiAgICAgICAgICAgIHN0cnVjdFhtbE5vZGUuYWRkQXR0cmlidXRlKHhtbG5zQXR0ciwgeG1sbnMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzdHJ1Y3RYbWxOb2RlO1xuICAgIH1cbiAgICB3cml0ZUxpc3QobGlzdE1lbWJlciwgYXJyYXksIGNvbnRhaW5lciwgcGFyZW50WG1sbnMpIHtcbiAgICAgICAgaWYgKCFsaXN0TWVtYmVyLmlzTWVtYmVyU2NoZW1hKCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSB4bWwgc2VyaWFsaXplciwgY2Fubm90IHdyaXRlIG5vbi1tZW1iZXIgbGlzdDogJHtsaXN0TWVtYmVyLmdldE5hbWUodHJ1ZSl9YCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbGlzdFRyYWl0cyA9IGxpc3RNZW1iZXIuZ2V0TWVyZ2VkVHJhaXRzKCk7XG4gICAgICAgIGNvbnN0IGxpc3RWYWx1ZVNjaGVtYSA9IGxpc3RNZW1iZXIuZ2V0VmFsdWVTY2hlbWEoKTtcbiAgICAgICAgY29uc3QgbGlzdFZhbHVlVHJhaXRzID0gbGlzdFZhbHVlU2NoZW1hLmdldE1lcmdlZFRyYWl0cygpO1xuICAgICAgICBjb25zdCBzcGFyc2UgPSAhIWxpc3RWYWx1ZVRyYWl0cy5zcGFyc2U7XG4gICAgICAgIGNvbnN0IGZsYXQgPSAhIWxpc3RUcmFpdHMueG1sRmxhdHRlbmVkO1xuICAgICAgICBjb25zdCBbeG1sbnNBdHRyLCB4bWxuc10gPSB0aGlzLmdldFhtbG5zQXR0cmlidXRlKGxpc3RNZW1iZXIsIHBhcmVudFhtbG5zKTtcbiAgICAgICAgY29uc3Qgd3JpdGVJdGVtID0gKGNvbnRhaW5lciwgdmFsdWUpID0+IHtcbiAgICAgICAgICAgIGlmIChsaXN0VmFsdWVTY2hlbWEuaXNMaXN0U2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlTGlzdChsaXN0VmFsdWVTY2hlbWEsIEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbdmFsdWVdLCBjb250YWluZXIsIHhtbG5zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGxpc3RWYWx1ZVNjaGVtYS5pc01hcFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZU1hcChsaXN0VmFsdWVTY2hlbWEsIHZhbHVlLCBjb250YWluZXIsIHhtbG5zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGxpc3RWYWx1ZVNjaGVtYS5pc1N0cnVjdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0ID0gdGhpcy53cml0ZVN0cnVjdChsaXN0VmFsdWVTY2hlbWEsIHZhbHVlLCB4bWxucyk7XG4gICAgICAgICAgICAgICAgY29udGFpbmVyLmFkZENoaWxkTm9kZShzdHJ1Y3Qud2l0aE5hbWUoZmxhdCA/IGxpc3RUcmFpdHMueG1sTmFtZSA/PyBsaXN0TWVtYmVyLmdldE1lbWJlck5hbWUoKSA6IGxpc3RWYWx1ZVRyYWl0cy54bWxOYW1lID8/IFwibWVtYmVyXCIpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxpc3RJdGVtTm9kZSA9IFhtbE5vZGUub2YoZmxhdCA/IGxpc3RUcmFpdHMueG1sTmFtZSA/PyBsaXN0TWVtYmVyLmdldE1lbWJlck5hbWUoKSA6IGxpc3RWYWx1ZVRyYWl0cy54bWxOYW1lID8/IFwibWVtYmVyXCIpO1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVTaW1wbGVJbnRvKGxpc3RWYWx1ZVNjaGVtYSwgdmFsdWUsIGxpc3RJdGVtTm9kZSwgeG1sbnMpO1xuICAgICAgICAgICAgICAgIGNvbnRhaW5lci5hZGRDaGlsZE5vZGUobGlzdEl0ZW1Ob2RlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgaWYgKGZsYXQpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgdmFsdWUgb2YgYXJyYXkpIHtcbiAgICAgICAgICAgICAgICBpZiAoc3BhcnNlIHx8IHZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgd3JpdGVJdGVtKGNvbnRhaW5lciwgdmFsdWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGxpc3ROb2RlID0gWG1sTm9kZS5vZihsaXN0VHJhaXRzLnhtbE5hbWUgPz8gbGlzdE1lbWJlci5nZXRNZW1iZXJOYW1lKCkpO1xuICAgICAgICAgICAgaWYgKHhtbG5zKSB7XG4gICAgICAgICAgICAgICAgbGlzdE5vZGUuYWRkQXR0cmlidXRlKHhtbG5zQXR0ciwgeG1sbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZm9yIChjb25zdCB2YWx1ZSBvZiBhcnJheSkge1xuICAgICAgICAgICAgICAgIGlmIChzcGFyc2UgfHwgdmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICB3cml0ZUl0ZW0obGlzdE5vZGUsIHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb250YWluZXIuYWRkQ2hpbGROb2RlKGxpc3ROb2RlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICB3cml0ZU1hcChtYXBNZW1iZXIsIG1hcCwgY29udGFpbmVyLCBwYXJlbnRYbWxucywgY29udGFpbmVySXNNYXAgPSBmYWxzZSkge1xuICAgICAgICBpZiAoIW1hcE1lbWJlci5pc01lbWJlclNjaGVtYSgpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEBhd3Mtc2RrL2NvcmUvcHJvdG9jb2xzIC0geG1sIHNlcmlhbGl6ZXIsIGNhbm5vdCB3cml0ZSBub24tbWVtYmVyIG1hcDogJHttYXBNZW1iZXIuZ2V0TmFtZSh0cnVlKX1gKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBtYXBUcmFpdHMgPSBtYXBNZW1iZXIuZ2V0TWVyZ2VkVHJhaXRzKCk7XG4gICAgICAgIGNvbnN0IG1hcEtleVNjaGVtYSA9IG1hcE1lbWJlci5nZXRLZXlTY2hlbWEoKTtcbiAgICAgICAgY29uc3QgbWFwS2V5VHJhaXRzID0gbWFwS2V5U2NoZW1hLmdldE1lcmdlZFRyYWl0cygpO1xuICAgICAgICBjb25zdCBrZXlUYWcgPSBtYXBLZXlUcmFpdHMueG1sTmFtZSA/PyBcImtleVwiO1xuICAgICAgICBjb25zdCBtYXBWYWx1ZVNjaGVtYSA9IG1hcE1lbWJlci5nZXRWYWx1ZVNjaGVtYSgpO1xuICAgICAgICBjb25zdCBtYXBWYWx1ZVRyYWl0cyA9IG1hcFZhbHVlU2NoZW1hLmdldE1lcmdlZFRyYWl0cygpO1xuICAgICAgICBjb25zdCB2YWx1ZVRhZyA9IG1hcFZhbHVlVHJhaXRzLnhtbE5hbWUgPz8gXCJ2YWx1ZVwiO1xuICAgICAgICBjb25zdCBzcGFyc2UgPSAhIW1hcFZhbHVlVHJhaXRzLnNwYXJzZTtcbiAgICAgICAgY29uc3QgZmxhdCA9ICEhbWFwVHJhaXRzLnhtbEZsYXR0ZW5lZDtcbiAgICAgICAgY29uc3QgW3htbG5zQXR0ciwgeG1sbnNdID0gdGhpcy5nZXRYbWxuc0F0dHJpYnV0ZShtYXBNZW1iZXIsIHBhcmVudFhtbG5zKTtcbiAgICAgICAgY29uc3QgYWRkS2V5VmFsdWUgPSAoZW50cnksIGtleSwgdmFsKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBrZXlOb2RlID0gWG1sTm9kZS5vZihrZXlUYWcsIGtleSk7XG4gICAgICAgICAgICBjb25zdCBba2V5WG1sbnNBdHRyLCBrZXlYbWxuc10gPSB0aGlzLmdldFhtbG5zQXR0cmlidXRlKG1hcEtleVNjaGVtYSwgeG1sbnMpO1xuICAgICAgICAgICAgaWYgKGtleVhtbG5zKSB7XG4gICAgICAgICAgICAgICAga2V5Tm9kZS5hZGRBdHRyaWJ1dGUoa2V5WG1sbnNBdHRyLCBrZXlYbWxucyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbnRyeS5hZGRDaGlsZE5vZGUoa2V5Tm9kZSk7XG4gICAgICAgICAgICBsZXQgdmFsdWVOb2RlID0gWG1sTm9kZS5vZih2YWx1ZVRhZyk7XG4gICAgICAgICAgICBpZiAobWFwVmFsdWVTY2hlbWEuaXNMaXN0U2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlTGlzdChtYXBWYWx1ZVNjaGVtYSwgdmFsLCB2YWx1ZU5vZGUsIHhtbG5zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKG1hcFZhbHVlU2NoZW1hLmlzTWFwU2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlTWFwKG1hcFZhbHVlU2NoZW1hLCB2YWwsIHZhbHVlTm9kZSwgeG1sbnMsIHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAobWFwVmFsdWVTY2hlbWEuaXNTdHJ1Y3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIHZhbHVlTm9kZSA9IHRoaXMud3JpdGVTdHJ1Y3QobWFwVmFsdWVTY2hlbWEsIHZhbCwgeG1sbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZVNpbXBsZUludG8obWFwVmFsdWVTY2hlbWEsIHZhbCwgdmFsdWVOb2RlLCB4bWxucyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbnRyeS5hZGRDaGlsZE5vZGUodmFsdWVOb2RlKTtcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKGZsYXQpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsXSBvZiBPYmplY3QuZW50cmllcyhtYXApKSB7XG4gICAgICAgICAgICAgICAgaWYgKHNwYXJzZSB8fCB2YWwgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlbnRyeSA9IFhtbE5vZGUub2YobWFwVHJhaXRzLnhtbE5hbWUgPz8gbWFwTWVtYmVyLmdldE1lbWJlck5hbWUoKSk7XG4gICAgICAgICAgICAgICAgICAgIGFkZEtleVZhbHVlKGVudHJ5LCBrZXksIHZhbCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lci5hZGRDaGlsZE5vZGUoZW50cnkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGxldCBtYXBOb2RlO1xuICAgICAgICAgICAgaWYgKCFjb250YWluZXJJc01hcCkge1xuICAgICAgICAgICAgICAgIG1hcE5vZGUgPSBYbWxOb2RlLm9mKG1hcFRyYWl0cy54bWxOYW1lID8/IG1hcE1lbWJlci5nZXRNZW1iZXJOYW1lKCkpO1xuICAgICAgICAgICAgICAgIGlmICh4bWxucykge1xuICAgICAgICAgICAgICAgICAgICBtYXBOb2RlLmFkZEF0dHJpYnV0ZSh4bWxuc0F0dHIsIHhtbG5zKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29udGFpbmVyLmFkZENoaWxkTm9kZShtYXBOb2RlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsXSBvZiBPYmplY3QuZW50cmllcyhtYXApKSB7XG4gICAgICAgICAgICAgICAgaWYgKHNwYXJzZSB8fCB2YWwgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlbnRyeSA9IFhtbE5vZGUub2YoXCJlbnRyeVwiKTtcbiAgICAgICAgICAgICAgICAgICAgYWRkS2V5VmFsdWUoZW50cnksIGtleSwgdmFsKTtcbiAgICAgICAgICAgICAgICAgICAgKGNvbnRhaW5lcklzTWFwID8gY29udGFpbmVyIDogbWFwTm9kZSkuYWRkQ2hpbGROb2RlKGVudHJ5KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgd3JpdGVTaW1wbGUoX3NjaGVtYSwgdmFsdWUpIHtcbiAgICAgICAgaWYgKG51bGwgPT09IHZhbHVlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJAYXdzLXNkay9jb3JlL3Byb3RvY29scyAtIChYTUwgc2VyaWFsaXplcikgY2Fubm90IHdyaXRlIG51bGwgdmFsdWUuXCIpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5zID0gTm9ybWFsaXplZFNjaGVtYS5vZihfc2NoZW1hKTtcbiAgICAgICAgbGV0IG5vZGVDb250ZW50cyA9IG51bGw7XG4gICAgICAgIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgIGlmIChucy5pc0Jsb2JTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIG5vZGVDb250ZW50cyA9ICh0aGlzLnNlcmRlQ29udGV4dD8uYmFzZTY0RW5jb2RlciA/PyB0b0Jhc2U2NCkodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAobnMuaXNUaW1lc3RhbXBTY2hlbWEoKSAmJiB2YWx1ZSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmb3JtYXQgPSBkZXRlcm1pbmVUaW1lc3RhbXBGb3JtYXQobnMsIHRoaXMuc2V0dGluZ3MpO1xuICAgICAgICAgICAgICAgIHN3aXRjaCAoZm9ybWF0KSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vZGVDb250ZW50cyA9IHZhbHVlLnRvSVNPU3RyaW5nKCkucmVwbGFjZShcIi4wMDBaXCIsIFwiWlwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICAgICAgICAgICAgICBub2RlQ29udGVudHMgPSBkYXRlVG9VdGNTdHJpbmcodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNzpcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vZGVDb250ZW50cyA9IFN0cmluZyh2YWx1ZS5nZXRUaW1lKCkgLyAxMDAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKFwiTWlzc2luZyB0aW1lc3RhbXAgZm9ybWF0LCB1c2luZyBodHRwIGRhdGVcIiwgdmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbm9kZUNvbnRlbnRzID0gZGF0ZVRvVXRjU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKG5zLmlzQmlnRGVjaW1hbFNjaGVtYSgpICYmIHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgTnVtZXJpY1ZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZS5zdHJpbmc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAobnMuaXNNYXBTY2hlbWEoKSB8fCBucy5pc0xpc3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkBhd3Mtc2RrL2NvcmUvcHJvdG9jb2xzIC0geG1sIHNlcmlhbGl6ZXIsIGNhbm5vdCBjYWxsIF93cml0ZSgpIG9uIExpc3QvTWFwIHNjaGVtYSwgY2FsbCB3cml0ZUxpc3Qgb3Igd3JpdGVNYXAoKSBpbnN0ZWFkLlwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSB4bWwgc2VyaWFsaXplciwgdW5oYW5kbGVkIHNjaGVtYSB0eXBlIGZvciBvYmplY3QgdmFsdWUgYW5kIHNjaGVtYTogJHtucy5nZXROYW1lKHRydWUpfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChucy5pc0Jvb2xlYW5TY2hlbWEoKSB8fCBucy5pc051bWVyaWNTY2hlbWEoKSB8fCBucy5pc0JpZ0ludGVnZXJTY2hlbWEoKSB8fCBucy5pc0JpZ0RlY2ltYWxTY2hlbWEoKSkge1xuICAgICAgICAgICAgbm9kZUNvbnRlbnRzID0gU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobnMuaXNTdHJpbmdTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQgJiYgbnMuaXNJZGVtcG90ZW5jeVRva2VuKCkpIHtcbiAgICAgICAgICAgICAgICBub2RlQ29udGVudHMgPSBnZW5lcmF0ZUlkZW1wb3RlbmN5VG9rZW4oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIG5vZGVDb250ZW50cyA9IFN0cmluZyh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5vZGVDb250ZW50cyA9PT0gbnVsbCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmhhbmRsZWQgc2NoZW1hLXZhbHVlIHBhaXIgJHtucy5nZXROYW1lKHRydWUpfT0ke3ZhbHVlfWApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBub2RlQ29udGVudHM7XG4gICAgfVxuICAgIHdyaXRlU2ltcGxlSW50byhfc2NoZW1hLCB2YWx1ZSwgaW50bywgcGFyZW50WG1sbnMpIHtcbiAgICAgICAgY29uc3Qgbm9kZUNvbnRlbnRzID0gdGhpcy53cml0ZVNpbXBsZShfc2NoZW1hLCB2YWx1ZSk7XG4gICAgICAgIGNvbnN0IG5zID0gTm9ybWFsaXplZFNjaGVtYS5vZihfc2NoZW1hKTtcbiAgICAgICAgY29uc3QgY29udGVudCA9IG5ldyBYbWxUZXh0KG5vZGVDb250ZW50cyk7XG4gICAgICAgIGNvbnN0IFt4bWxuc0F0dHIsIHhtbG5zXSA9IHRoaXMuZ2V0WG1sbnNBdHRyaWJ1dGUobnMsIHBhcmVudFhtbG5zKTtcbiAgICAgICAgaWYgKHhtbG5zKSB7XG4gICAgICAgICAgICBpbnRvLmFkZEF0dHJpYnV0ZSh4bWxuc0F0dHIsIHhtbG5zKTtcbiAgICAgICAgfVxuICAgICAgICBpbnRvLmFkZENoaWxkTm9kZShjb250ZW50KTtcbiAgICB9XG4gICAgZ2V0WG1sbnNBdHRyaWJ1dGUobnMsIHBhcmVudFhtbG5zKSB7XG4gICAgICAgIGNvbnN0IHRyYWl0cyA9IG5zLmdldE1lcmdlZFRyYWl0cygpO1xuICAgICAgICBjb25zdCBbcHJlZml4LCB4bWxuc10gPSB0cmFpdHMueG1sTmFtZXNwYWNlID8/IFtdO1xuICAgICAgICBpZiAoeG1sbnMgJiYgeG1sbnMgIT09IHBhcmVudFhtbG5zKSB7XG4gICAgICAgICAgICByZXR1cm4gW3ByZWZpeCA/IGB4bWxuczoke3ByZWZpeH1gIDogXCJ4bWxuc1wiLCB4bWxuc107XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFt2b2lkIDAsIHZvaWQgMF07XG4gICAgfVxufVxuIiwgImltcG9ydCB7IFNlcmRlQ29udGV4dENvbmZpZyB9IGZyb20gXCIuLi9Db25maWd1cmFibGVTZXJkZUNvbnRleHRcIjtcbmltcG9ydCB7IFhtbFNoYXBlRGVzZXJpYWxpemVyIH0gZnJvbSBcIi4vWG1sU2hhcGVEZXNlcmlhbGl6ZXJcIjtcbmltcG9ydCB7IFhtbFNoYXBlU2VyaWFsaXplciB9IGZyb20gXCIuL1htbFNoYXBlU2VyaWFsaXplclwiO1xuZXhwb3J0IGNsYXNzIFhtbENvZGVjIGV4dGVuZHMgU2VyZGVDb250ZXh0Q29uZmlnIHtcbiAgICBzZXR0aW5ncztcbiAgICBjb25zdHJ1Y3RvcihzZXR0aW5ncykge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnNldHRpbmdzID0gc2V0dGluZ3M7XG4gICAgfVxuICAgIGNyZWF0ZVNlcmlhbGl6ZXIoKSB7XG4gICAgICAgIGNvbnN0IHNlcmlhbGl6ZXIgPSBuZXcgWG1sU2hhcGVTZXJpYWxpemVyKHRoaXMuc2V0dGluZ3MpO1xuICAgICAgICBzZXJpYWxpemVyLnNldFNlcmRlQ29udGV4dCh0aGlzLnNlcmRlQ29udGV4dCk7XG4gICAgICAgIHJldHVybiBzZXJpYWxpemVyO1xuICAgIH1cbiAgICBjcmVhdGVEZXNlcmlhbGl6ZXIoKSB7XG4gICAgICAgIGNvbnN0IGRlc2VyaWFsaXplciA9IG5ldyBYbWxTaGFwZURlc2VyaWFsaXplcih0aGlzLnNldHRpbmdzKTtcbiAgICAgICAgZGVzZXJpYWxpemVyLnNldFNlcmRlQ29udGV4dCh0aGlzLnNlcmRlQ29udGV4dCk7XG4gICAgICAgIHJldHVybiBkZXNlcmlhbGl6ZXI7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IEh0dHBCaW5kaW5nUHJvdG9jb2wsIEh0dHBJbnRlcmNlcHRpbmdTaGFwZURlc2VyaWFsaXplciwgSHR0cEludGVyY2VwdGluZ1NoYXBlU2VyaWFsaXplciwgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3Byb3RvY29sc1wiO1xuaW1wb3J0IHsgTm9ybWFsaXplZFNjaGVtYSwgVHlwZVJlZ2lzdHJ5IH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IFByb3RvY29sTGliIH0gZnJvbSBcIi4uL1Byb3RvY29sTGliXCI7XG5pbXBvcnQgeyBsb2FkUmVzdFhtbEVycm9yQ29kZSB9IGZyb20gXCIuL3BhcnNlWG1sQm9keVwiO1xuaW1wb3J0IHsgWG1sQ29kZWMgfSBmcm9tIFwiLi9YbWxDb2RlY1wiO1xuZXhwb3J0IGNsYXNzIEF3c1Jlc3RYbWxQcm90b2NvbCBleHRlbmRzIEh0dHBCaW5kaW5nUHJvdG9jb2wge1xuICAgIGNvZGVjO1xuICAgIHNlcmlhbGl6ZXI7XG4gICAgZGVzZXJpYWxpemVyO1xuICAgIG1peGluID0gbmV3IFByb3RvY29sTGliKCk7XG4gICAgY29uc3RydWN0b3Iob3B0aW9ucykge1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcbiAgICAgICAgY29uc3Qgc2V0dGluZ3MgPSB7XG4gICAgICAgICAgICB0aW1lc3RhbXBGb3JtYXQ6IHtcbiAgICAgICAgICAgICAgICB1c2VUcmFpdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiA1LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGh0dHBCaW5kaW5nczogdHJ1ZSxcbiAgICAgICAgICAgIHhtbE5hbWVzcGFjZTogb3B0aW9ucy54bWxOYW1lc3BhY2UsXG4gICAgICAgICAgICBzZXJ2aWNlTmFtZXNwYWNlOiBvcHRpb25zLmRlZmF1bHROYW1lc3BhY2UsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuY29kZWMgPSBuZXcgWG1sQ29kZWMoc2V0dGluZ3MpO1xuICAgICAgICB0aGlzLnNlcmlhbGl6ZXIgPSBuZXcgSHR0cEludGVyY2VwdGluZ1NoYXBlU2VyaWFsaXplcih0aGlzLmNvZGVjLmNyZWF0ZVNlcmlhbGl6ZXIoKSwgc2V0dGluZ3MpO1xuICAgICAgICB0aGlzLmRlc2VyaWFsaXplciA9IG5ldyBIdHRwSW50ZXJjZXB0aW5nU2hhcGVEZXNlcmlhbGl6ZXIodGhpcy5jb2RlYy5jcmVhdGVEZXNlcmlhbGl6ZXIoKSwgc2V0dGluZ3MpO1xuICAgIH1cbiAgICBnZXRQYXlsb2FkQ29kZWMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvZGVjO1xuICAgIH1cbiAgICBnZXRTaGFwZUlkKCkge1xuICAgICAgICByZXR1cm4gXCJhd3MucHJvdG9jb2xzI3Jlc3RYbWxcIjtcbiAgICB9XG4gICAgYXN5bmMgc2VyaWFsaXplUmVxdWVzdChvcGVyYXRpb25TY2hlbWEsIGlucHV0LCBjb250ZXh0KSB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSBhd2FpdCBzdXBlci5zZXJpYWxpemVSZXF1ZXN0KG9wZXJhdGlvblNjaGVtYSwgaW5wdXQsIGNvbnRleHQpO1xuICAgICAgICBjb25zdCBpbnB1dFNjaGVtYSA9IE5vcm1hbGl6ZWRTY2hlbWEub2Yob3BlcmF0aW9uU2NoZW1hLmlucHV0KTtcbiAgICAgICAgaWYgKCFyZXF1ZXN0LmhlYWRlcnNbXCJjb250ZW50LXR5cGVcIl0pIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRlbnRUeXBlID0gdGhpcy5taXhpbi5yZXNvbHZlUmVzdENvbnRlbnRUeXBlKHRoaXMuZ2V0RGVmYXVsdENvbnRlbnRUeXBlKCksIGlucHV0U2NoZW1hKTtcbiAgICAgICAgICAgIGlmIChjb250ZW50VHlwZSkge1xuICAgICAgICAgICAgICAgIHJlcXVlc3QuaGVhZGVyc1tcImNvbnRlbnQtdHlwZVwiXSA9IGNvbnRlbnRUeXBlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgcmVxdWVzdC5ib2R5ID09PSBcInN0cmluZ1wiICYmXG4gICAgICAgICAgICByZXF1ZXN0LmhlYWRlcnNbXCJjb250ZW50LXR5cGVcIl0gPT09IHRoaXMuZ2V0RGVmYXVsdENvbnRlbnRUeXBlKCkgJiZcbiAgICAgICAgICAgICFyZXF1ZXN0LmJvZHkuc3RhcnRzV2l0aChcIjw/eG1sIFwiKSAmJlxuICAgICAgICAgICAgIXRoaXMuaGFzVW5zdHJ1Y3R1cmVkUGF5bG9hZEJpbmRpbmcoaW5wdXRTY2hlbWEpKSB7XG4gICAgICAgICAgICByZXF1ZXN0LmJvZHkgPSAnPD94bWwgdmVyc2lvbj1cIjEuMFwiIGVuY29kaW5nPVwiVVRGLThcIj8+JyArIHJlcXVlc3QuYm9keTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVxdWVzdDtcbiAgICB9XG4gICAgYXN5bmMgZGVzZXJpYWxpemVSZXNwb25zZShvcGVyYXRpb25TY2hlbWEsIGNvbnRleHQsIHJlc3BvbnNlKSB7XG4gICAgICAgIHJldHVybiBzdXBlci5kZXNlcmlhbGl6ZVJlc3BvbnNlKG9wZXJhdGlvblNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UpO1xuICAgIH1cbiAgICBhc3luYyBoYW5kbGVFcnJvcihvcGVyYXRpb25TY2hlbWEsIGNvbnRleHQsIHJlc3BvbnNlLCBkYXRhT2JqZWN0LCBtZXRhZGF0YSkge1xuICAgICAgICBjb25zdCBlcnJvcklkZW50aWZpZXIgPSBsb2FkUmVzdFhtbEVycm9yQ29kZShyZXNwb25zZSwgZGF0YU9iamVjdCkgPz8gXCJVbmtub3duXCI7XG4gICAgICAgIGlmIChkYXRhT2JqZWN0LkVycm9yICYmIHR5cGVvZiBkYXRhT2JqZWN0LkVycm9yID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhkYXRhT2JqZWN0LkVycm9yKSkge1xuICAgICAgICAgICAgICAgIGRhdGFPYmplY3Rba2V5XSA9IGRhdGFPYmplY3QuRXJyb3Jba2V5XTtcbiAgICAgICAgICAgICAgICBpZiAoa2V5LnRvTG93ZXJDYXNlKCkgPT09IFwibWVzc2FnZVwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGRhdGFPYmplY3QubWVzc2FnZSA9IGRhdGFPYmplY3QuRXJyb3Jba2V5XTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGFPYmplY3QuUmVxdWVzdElkICYmICFtZXRhZGF0YS5yZXF1ZXN0SWQpIHtcbiAgICAgICAgICAgIG1ldGFkYXRhLnJlcXVlc3RJZCA9IGRhdGFPYmplY3QuUmVxdWVzdElkO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHsgZXJyb3JTY2hlbWEsIGVycm9yTWV0YWRhdGEgfSA9IGF3YWl0IHRoaXMubWl4aW4uZ2V0RXJyb3JTY2hlbWFPclRocm93QmFzZUV4Y2VwdGlvbihlcnJvcklkZW50aWZpZXIsIHRoaXMub3B0aW9ucy5kZWZhdWx0TmFtZXNwYWNlLCByZXNwb25zZSwgZGF0YU9iamVjdCwgbWV0YWRhdGEpO1xuICAgICAgICBjb25zdCBucyA9IE5vcm1hbGl6ZWRTY2hlbWEub2YoZXJyb3JTY2hlbWEpO1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gZGF0YU9iamVjdC5FcnJvcj8ubWVzc2FnZSA/PyBkYXRhT2JqZWN0LkVycm9yPy5NZXNzYWdlID8/IGRhdGFPYmplY3QubWVzc2FnZSA/PyBkYXRhT2JqZWN0Lk1lc3NhZ2UgPz8gXCJVbmtub3duXCI7XG4gICAgICAgIGNvbnN0IEVycm9yQ3RvciA9IFR5cGVSZWdpc3RyeS5mb3IoZXJyb3JTY2hlbWFbMV0pLmdldEVycm9yQ3RvcihlcnJvclNjaGVtYSkgPz8gRXJyb3I7XG4gICAgICAgIGNvbnN0IGV4Y2VwdGlvbiA9IG5ldyBFcnJvckN0b3IobWVzc2FnZSk7XG4gICAgICAgIGF3YWl0IHRoaXMuZGVzZXJpYWxpemVIdHRwTWVzc2FnZShlcnJvclNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UsIGRhdGFPYmplY3QpO1xuICAgICAgICBjb25zdCBvdXRwdXQgPSB7fTtcbiAgICAgICAgZm9yIChjb25zdCBbbmFtZSwgbWVtYmVyXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBtZW1iZXIuZ2V0TWVyZ2VkVHJhaXRzKCkueG1sTmFtZSA/PyBuYW1lO1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBkYXRhT2JqZWN0LkVycm9yPy5bdGFyZ2V0XSA/PyBkYXRhT2JqZWN0W3RhcmdldF07XG4gICAgICAgICAgICBvdXRwdXRbbmFtZV0gPSB0aGlzLmNvZGVjLmNyZWF0ZURlc2VyaWFsaXplcigpLnJlYWRTY2hlbWEobWVtYmVyLCB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgdGhpcy5taXhpbi5kZWNvcmF0ZVNlcnZpY2VFeGNlcHRpb24oT2JqZWN0LmFzc2lnbihleGNlcHRpb24sIGVycm9yTWV0YWRhdGEsIHtcbiAgICAgICAgICAgICRmYXVsdDogbnMuZ2V0TWVyZ2VkVHJhaXRzKCkuZXJyb3IsXG4gICAgICAgICAgICBtZXNzYWdlLFxuICAgICAgICB9LCBvdXRwdXQpLCBkYXRhT2JqZWN0KTtcbiAgICB9XG4gICAgZ2V0RGVmYXVsdENvbnRlbnRUeXBlKCkge1xuICAgICAgICByZXR1cm4gXCJhcHBsaWNhdGlvbi94bWxcIjtcbiAgICB9XG4gICAgaGFzVW5zdHJ1Y3R1cmVkUGF5bG9hZEJpbmRpbmcobnMpIHtcbiAgICAgICAgZm9yIChjb25zdCBbLCBtZW1iZXJdIG9mIG5zLnN0cnVjdEl0ZXJhdG9yKCkpIHtcbiAgICAgICAgICAgIGlmIChtZW1iZXIuZ2V0TWVyZ2VkVHJhaXRzKCkuaHR0cFBheWxvYWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gIShtZW1iZXIuaXNTdHJ1Y3RTY2hlbWEoKSB8fCBtZW1iZXIuaXNNYXBTY2hlbWEoKSB8fCBtZW1iZXIuaXNMaXN0U2NoZW1hKCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG59XG4iLCAiZXhwb3J0ICogZnJvbSBcIi4vY2Jvci9Bd3NTbWl0aHlScGNWMkNib3JQcm90b2NvbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29lcmNpbmctc2VyaWFsaXplcnNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2pzb24vQXdzSnNvbjFfMFByb3RvY29sXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9qc29uL0F3c0pzb24xXzFQcm90b2NvbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vanNvbi9Bd3NKc29uUnBjUHJvdG9jb2xcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2pzb24vQXdzUmVzdEpzb25Qcm90b2NvbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vanNvbi9Kc29uQ29kZWNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2pzb24vSnNvblNoYXBlRGVzZXJpYWxpemVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9qc29uL0pzb25TaGFwZVNlcmlhbGl6ZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2pzb24vYXdzRXhwZWN0VW5pb25cIjtcbmV4cG9ydCAqIGZyb20gXCIuL2pzb24vcGFyc2VKc29uQm9keVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcXVlcnkvQXdzRWMyUXVlcnlQcm90b2NvbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcXVlcnkvQXdzUXVlcnlQcm90b2NvbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4veG1sL0F3c1Jlc3RYbWxQcm90b2NvbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4veG1sL1htbENvZGVjXCI7XG5leHBvcnQgKiBmcm9tIFwiLi94bWwvWG1sU2hhcGVEZXNlcmlhbGl6ZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3htbC9YbWxTaGFwZVNlcmlhbGl6ZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3htbC9wYXJzZVhtbEJvZHlcIjtcbiIsICJleHBvcnQgKiBmcm9tIFwiLi9zdWJtb2R1bGVzL2NsaWVudC9pbmRleFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3VibW9kdWxlcy9odHRwQXV0aFNjaGVtZXMvaW5kZXhcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL2luZGV4XCI7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG5jbGFzcyBOdW1iZXJWYWx1ZSB7XG4gICAgdmFsdWU7XG4gICAgY29uc3RydWN0b3IodmFsdWUpIHtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIiAmJiBcIk5cIiBpbiB2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IFN0cmluZyh2YWx1ZS5OKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBTdHJpbmcodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHZhbHVlT2YgPSB0eXBlb2YgdmFsdWUudmFsdWVPZigpID09PSBcIm51bWJlclwiID8gdmFsdWUudmFsdWVPZigpIDogMDtcbiAgICAgICAgY29uc3QgaW1wcmVjaXNlID0gdmFsdWVPZiA+IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSIHx8XG4gICAgICAgICAgICB2YWx1ZU9mIDwgTnVtYmVyLk1JTl9TQUZFX0lOVEVHRVIgfHxcbiAgICAgICAgICAgIE1hdGguYWJzKHZhbHVlT2YpID09PSBJbmZpbml0eSB8fFxuICAgICAgICAgICAgTnVtYmVyLmlzTmFOKHZhbHVlT2YpO1xuICAgICAgICBpZiAoaW1wcmVjaXNlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE51bWJlclZhbHVlIHNob3VsZCBub3QgYmUgaW5pdGlhbGl6ZWQgd2l0aCBhbiBpbXByZWNpc2UgbnVtYmVyPSR7dmFsdWVPZn0uIFVzZSBhIHN0cmluZyBpbnN0ZWFkLmApO1xuICAgICAgICB9XG4gICAgfVxuICAgIHN0YXRpYyBmcm9tKHZhbHVlKSB7XG4gICAgICAgIHJldHVybiBuZXcgTnVtYmVyVmFsdWUodmFsdWUpO1xuICAgIH1cbiAgICB0b0F0dHJpYnV0ZVZhbHVlKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgTjogdGhpcy50b1N0cmluZygpLFxuICAgICAgICB9O1xuICAgIH1cbiAgICB0b0JpZ0ludCgpIHtcbiAgICAgICAgY29uc3Qgc3RyaW5nVmFsdWUgPSB0aGlzLnRvU3RyaW5nKCk7XG4gICAgICAgIHJldHVybiBCaWdJbnQoc3RyaW5nVmFsdWUpO1xuICAgIH1cbiAgICB0b1N0cmluZygpIHtcbiAgICAgICAgcmV0dXJuIFN0cmluZyh0aGlzLnZhbHVlKTtcbiAgICB9XG4gICAgdmFsdWVPZigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudG9TdHJpbmcoKTtcbiAgICB9XG59XG5cbmNvbnN0IGNvbnZlcnRUb0F0dHIgPSAoZGF0YSwgb3B0aW9ucykgPT4ge1xuICAgIGlmIChkYXRhID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBQYXNzIG9wdGlvbnMucmVtb3ZlVW5kZWZpbmVkVmFsdWVzPXRydWUgdG8gcmVtb3ZlIHVuZGVmaW5lZCB2YWx1ZXMgZnJvbSBtYXAvYXJyYXkvc2V0LmApO1xuICAgIH1cbiAgICBlbHNlIGlmIChkYXRhID09PSBudWxsICYmIHR5cGVvZiBkYXRhID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgIHJldHVybiBjb252ZXJ0VG9OdWxsQXR0cigpO1xuICAgIH1cbiAgICBlbHNlIGlmIChBcnJheS5pc0FycmF5KGRhdGEpKSB7XG4gICAgICAgIHJldHVybiBjb252ZXJ0VG9MaXN0QXR0cihkYXRhLCBvcHRpb25zKTtcbiAgICB9XG4gICAgZWxzZSBpZiAoZGF0YT8uY29uc3RydWN0b3I/Lm5hbWUgPT09IFwiU2V0XCIpIHtcbiAgICAgICAgcmV0dXJuIGNvbnZlcnRUb1NldEF0dHIoZGF0YSwgb3B0aW9ucyk7XG4gICAgfVxuICAgIGVsc2UgaWYgKGRhdGE/LmNvbnN0cnVjdG9yPy5uYW1lID09PSBcIk1hcFwiKSB7XG4gICAgICAgIHJldHVybiBjb252ZXJ0VG9NYXBBdHRyRnJvbUl0ZXJhYmxlKGRhdGEsIG9wdGlvbnMpO1xuICAgIH1cbiAgICBlbHNlIGlmIChkYXRhPy5jb25zdHJ1Y3Rvcj8ubmFtZSA9PT0gXCJPYmplY3RcIiB8fFxuICAgICAgICAoIWRhdGEuY29uc3RydWN0b3IgJiYgdHlwZW9mIGRhdGEgPT09IFwib2JqZWN0XCIpKSB7XG4gICAgICAgIHJldHVybiBjb252ZXJ0VG9NYXBBdHRyRnJvbUVudW1lcmFibGVQcm9wcyhkYXRhLCBvcHRpb25zKTtcbiAgICB9XG4gICAgZWxzZSBpZiAoaXNCaW5hcnkoZGF0YSkpIHtcbiAgICAgICAgaWYgKGRhdGEubGVuZ3RoID09PSAwICYmIG9wdGlvbnM/LmNvbnZlcnRFbXB0eVZhbHVlcykge1xuICAgICAgICAgICAgcmV0dXJuIGNvbnZlcnRUb051bGxBdHRyKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNvbnZlcnRUb0JpbmFyeUF0dHIoZGF0YSk7XG4gICAgfVxuICAgIGVsc2UgaWYgKHR5cGVvZiBkYXRhID09PSBcImJvb2xlYW5cIiB8fCBkYXRhPy5jb25zdHJ1Y3Rvcj8ubmFtZSA9PT0gXCJCb29sZWFuXCIpIHtcbiAgICAgICAgcmV0dXJuIHsgQk9PTDogZGF0YS52YWx1ZU9mKCkgfTtcbiAgICB9XG4gICAgZWxzZSBpZiAodHlwZW9mIGRhdGEgPT09IFwibnVtYmVyXCIgfHwgZGF0YT8uY29uc3RydWN0b3I/Lm5hbWUgPT09IFwiTnVtYmVyXCIpIHtcbiAgICAgICAgcmV0dXJuIGNvbnZlcnRUb051bWJlckF0dHIoZGF0YSwgb3B0aW9ucyk7XG4gICAgfVxuICAgIGVsc2UgaWYgKGRhdGEgaW5zdGFuY2VvZiBOdW1iZXJWYWx1ZSkge1xuICAgICAgICByZXR1cm4gZGF0YS50b0F0dHJpYnV0ZVZhbHVlKCk7XG4gICAgfVxuICAgIGVsc2UgaWYgKHR5cGVvZiBkYXRhID09PSBcImJpZ2ludFwiKSB7XG4gICAgICAgIHJldHVybiBjb252ZXJ0VG9CaWdJbnRBdHRyKGRhdGEpO1xuICAgIH1cbiAgICBlbHNlIGlmICh0eXBlb2YgZGF0YSA9PT0gXCJzdHJpbmdcIiB8fCBkYXRhPy5jb25zdHJ1Y3Rvcj8ubmFtZSA9PT0gXCJTdHJpbmdcIikge1xuICAgICAgICBpZiAoZGF0YS5sZW5ndGggPT09IDAgJiYgb3B0aW9ucz8uY29udmVydEVtcHR5VmFsdWVzKSB7XG4gICAgICAgICAgICByZXR1cm4gY29udmVydFRvTnVsbEF0dHIoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY29udmVydFRvU3RyaW5nQXR0cihkYXRhKTtcbiAgICB9XG4gICAgZWxzZSBpZiAob3B0aW9ucz8uY29udmVydENsYXNzSW5zdGFuY2VUb01hcCAmJiB0eXBlb2YgZGF0YSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICByZXR1cm4gY29udmVydFRvTWFwQXR0ckZyb21FbnVtZXJhYmxlUHJvcHMoZGF0YSwgb3B0aW9ucyk7XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgdHlwZSBwYXNzZWQ6ICR7ZGF0YX0uIFBhc3Mgb3B0aW9ucy5jb252ZXJ0Q2xhc3NJbnN0YW5jZVRvTWFwPXRydWUgdG8gbWFyc2hhbGwgdHlwZW9mIG9iamVjdCBhcyBtYXAgYXR0cmlidXRlLmApO1xufTtcbmNvbnN0IGNvbnZlcnRUb0xpc3RBdHRyID0gKGRhdGEsIG9wdGlvbnMpID0+ICh7XG4gICAgTDogZGF0YVxuICAgICAgICAuZmlsdGVyKChpdGVtKSA9PiB0eXBlb2YgaXRlbSAhPT0gXCJmdW5jdGlvblwiICYmXG4gICAgICAgICghb3B0aW9ucz8ucmVtb3ZlVW5kZWZpbmVkVmFsdWVzIHx8IChvcHRpb25zPy5yZW1vdmVVbmRlZmluZWRWYWx1ZXMgJiYgaXRlbSAhPT0gdW5kZWZpbmVkKSkpXG4gICAgICAgIC5tYXAoKGl0ZW0pID0+IGNvbnZlcnRUb0F0dHIoaXRlbSwgb3B0aW9ucykpLFxufSk7XG5jb25zdCBjb252ZXJ0VG9TZXRBdHRyID0gKHNldCwgb3B0aW9ucykgPT4ge1xuICAgIGNvbnN0IHNldFRvT3BlcmF0ZSA9IG9wdGlvbnM/LnJlbW92ZVVuZGVmaW5lZFZhbHVlcyA/IG5ldyBTZXQoWy4uLnNldF0uZmlsdGVyKCh2YWx1ZSkgPT4gdmFsdWUgIT09IHVuZGVmaW5lZCkpIDogc2V0O1xuICAgIGlmICghb3B0aW9ucz8ucmVtb3ZlVW5kZWZpbmVkVmFsdWVzICYmIHNldFRvT3BlcmF0ZS5oYXModW5kZWZpbmVkKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFBhc3Mgb3B0aW9ucy5yZW1vdmVVbmRlZmluZWRWYWx1ZXM9dHJ1ZSB0byByZW1vdmUgdW5kZWZpbmVkIHZhbHVlcyBmcm9tIG1hcC9hcnJheS9zZXQuYCk7XG4gICAgfVxuICAgIGlmIChzZXRUb09wZXJhdGUuc2l6ZSA9PT0gMCkge1xuICAgICAgICBpZiAob3B0aW9ucz8uY29udmVydEVtcHR5VmFsdWVzKSB7XG4gICAgICAgICAgICByZXR1cm4gY29udmVydFRvTnVsbEF0dHIoKTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFBhc3MgYSBub24tZW1wdHkgc2V0LCBvciBvcHRpb25zLmNvbnZlcnRFbXB0eVZhbHVlcz10cnVlLmApO1xuICAgIH1cbiAgICBjb25zdCBpdGVtID0gc2V0VG9PcGVyYXRlLnZhbHVlcygpLm5leHQoKS52YWx1ZTtcbiAgICBpZiAoaXRlbSBpbnN0YW5jZW9mIE51bWJlclZhbHVlKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBOUzogQXJyYXkuZnJvbShzZXRUb09wZXJhdGUpLm1hcCgoXykgPT4gXy50b1N0cmluZygpKSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgZWxzZSBpZiAodHlwZW9mIGl0ZW0gPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIE5TOiBBcnJheS5mcm9tKHNldFRvT3BlcmF0ZSlcbiAgICAgICAgICAgICAgICAubWFwKChudW0pID0+IGNvbnZlcnRUb051bWJlckF0dHIobnVtLCBvcHRpb25zKSlcbiAgICAgICAgICAgICAgICAubWFwKChpdGVtKSA9PiBpdGVtLk4pLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBlbHNlIGlmICh0eXBlb2YgaXRlbSA9PT0gXCJiaWdpbnRcIikge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgTlM6IEFycmF5LmZyb20oc2V0VG9PcGVyYXRlKVxuICAgICAgICAgICAgICAgIC5tYXAoY29udmVydFRvQmlnSW50QXR0cilcbiAgICAgICAgICAgICAgICAubWFwKChpdGVtKSA9PiBpdGVtLk4pLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBlbHNlIGlmICh0eXBlb2YgaXRlbSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgU1M6IEFycmF5LmZyb20oc2V0VG9PcGVyYXRlKVxuICAgICAgICAgICAgICAgIC5tYXAoY29udmVydFRvU3RyaW5nQXR0cilcbiAgICAgICAgICAgICAgICAubWFwKChpdGVtKSA9PiBpdGVtLlMpLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBlbHNlIGlmIChpc0JpbmFyeShpdGVtKSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgQlM6IEFycmF5LmZyb20oc2V0VG9PcGVyYXRlKVxuICAgICAgICAgICAgICAgIC5tYXAoY29udmVydFRvQmluYXJ5QXR0cilcbiAgICAgICAgICAgICAgICAubWFwKChpdGVtKSA9PiBpdGVtLkIpLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBPbmx5IE51bWJlciBTZXQgKE5TKSwgQmluYXJ5IFNldCAoQlMpIG9yIFN0cmluZyBTZXQgKFNTKSBhcmUgYWxsb3dlZC5gKTtcbiAgICB9XG59O1xuY29uc3QgY29udmVydFRvTWFwQXR0ckZyb21JdGVyYWJsZSA9IChkYXRhLCBvcHRpb25zKSA9PiAoe1xuICAgIE06ICgoZGF0YSkgPT4ge1xuICAgICAgICBjb25zdCBtYXAgPSB7fTtcbiAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgZGF0YSkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gXCJmdW5jdGlvblwiICYmICh2YWx1ZSAhPT0gdW5kZWZpbmVkIHx8ICFvcHRpb25zPy5yZW1vdmVVbmRlZmluZWRWYWx1ZXMpKSB7XG4gICAgICAgICAgICAgICAgbWFwW2tleV0gPSBjb252ZXJ0VG9BdHRyKHZhbHVlLCBvcHRpb25zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbWFwO1xuICAgIH0pKGRhdGEpLFxufSk7XG5jb25zdCBjb252ZXJ0VG9NYXBBdHRyRnJvbUVudW1lcmFibGVQcm9wcyA9IChkYXRhLCBvcHRpb25zKSA9PiAoe1xuICAgIE06ICgoZGF0YSkgPT4ge1xuICAgICAgICBjb25zdCBtYXAgPSB7fTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gZGF0YSkge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBkYXRhW2tleV07XG4gICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlICE9PSBcImZ1bmN0aW9uXCIgJiYgKHZhbHVlICE9PSB1bmRlZmluZWQgfHwgIW9wdGlvbnM/LnJlbW92ZVVuZGVmaW5lZFZhbHVlcykpIHtcbiAgICAgICAgICAgICAgICBtYXBba2V5XSA9IGNvbnZlcnRUb0F0dHIodmFsdWUsIG9wdGlvbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtYXA7XG4gICAgfSkoZGF0YSksXG59KTtcbmNvbnN0IGNvbnZlcnRUb051bGxBdHRyID0gKCkgPT4gKHsgTlVMTDogdHJ1ZSB9KTtcbmNvbnN0IGNvbnZlcnRUb0JpbmFyeUF0dHIgPSAoZGF0YSkgPT4gKHsgQjogZGF0YSB9KTtcbmNvbnN0IGNvbnZlcnRUb1N0cmluZ0F0dHIgPSAoZGF0YSkgPT4gKHsgUzogZGF0YS50b1N0cmluZygpIH0pO1xuY29uc3QgY29udmVydFRvQmlnSW50QXR0ciA9IChkYXRhKSA9PiAoeyBOOiBkYXRhLnRvU3RyaW5nKCkgfSk7XG5jb25zdCB2YWxpZGF0ZUJpZ0ludEFuZFRocm93ID0gKGVycm9yUHJlZml4KSA9PiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGAke2Vycm9yUHJlZml4fSBVc2UgTnVtYmVyVmFsdWUgZnJvbSBAYXdzLXNkay9saWItZHluYW1vZGIuYCk7XG59O1xuY29uc3QgY29udmVydFRvTnVtYmVyQXR0ciA9IChudW0sIG9wdGlvbnMpID0+IHtcbiAgICBpZiAoW051bWJlci5OYU4sIE51bWJlci5QT1NJVElWRV9JTkZJTklUWSwgTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZXVxuICAgICAgICAubWFwKCh2YWwpID0+IHZhbC50b1N0cmluZygpKVxuICAgICAgICAuaW5jbHVkZXMobnVtLnRvU3RyaW5nKCkpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgU3BlY2lhbCBudW1lcmljIHZhbHVlICR7bnVtLnRvU3RyaW5nKCl9IGlzIG5vdCBhbGxvd2VkYCk7XG4gICAgfVxuICAgIGVsc2UgaWYgKCFvcHRpb25zPy5hbGxvd0ltcHJlY2lzZU51bWJlcnMpIHtcbiAgICAgICAgaWYgKE51bWJlcihudW0pID4gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpIHtcbiAgICAgICAgICAgIHZhbGlkYXRlQmlnSW50QW5kVGhyb3coYE51bWJlciAke251bS50b1N0cmluZygpfSBpcyBncmVhdGVyIHRoYW4gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIuYCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoTnVtYmVyKG51bSkgPCBOdW1iZXIuTUlOX1NBRkVfSU5URUdFUikge1xuICAgICAgICAgICAgdmFsaWRhdGVCaWdJbnRBbmRUaHJvdyhgTnVtYmVyICR7bnVtLnRvU3RyaW5nKCl9IGlzIGxlc3NlciB0aGFuIE51bWJlci5NSU5fU0FGRV9JTlRFR0VSLmApO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7IE46IG51bS50b1N0cmluZygpIH07XG59O1xuY29uc3QgaXNCaW5hcnkgPSAoZGF0YSkgPT4ge1xuICAgIGNvbnN0IGJpbmFyeVR5cGVzID0gW1xuICAgICAgICBcIkFycmF5QnVmZmVyXCIsXG4gICAgICAgIFwiQmxvYlwiLFxuICAgICAgICBcIkJ1ZmZlclwiLFxuICAgICAgICBcIkRhdGFWaWV3XCIsXG4gICAgICAgIFwiRmlsZVwiLFxuICAgICAgICBcIkludDhBcnJheVwiLFxuICAgICAgICBcIlVpbnQ4QXJyYXlcIixcbiAgICAgICAgXCJVaW50OENsYW1wZWRBcnJheVwiLFxuICAgICAgICBcIkludDE2QXJyYXlcIixcbiAgICAgICAgXCJVaW50MTZBcnJheVwiLFxuICAgICAgICBcIkludDMyQXJyYXlcIixcbiAgICAgICAgXCJVaW50MzJBcnJheVwiLFxuICAgICAgICBcIkZsb2F0MzJBcnJheVwiLFxuICAgICAgICBcIkZsb2F0NjRBcnJheVwiLFxuICAgICAgICBcIkJpZ0ludDY0QXJyYXlcIixcbiAgICAgICAgXCJCaWdVaW50NjRBcnJheVwiLFxuICAgIF07XG4gICAgaWYgKGRhdGE/LmNvbnN0cnVjdG9yKSB7XG4gICAgICAgIHJldHVybiBiaW5hcnlUeXBlcy5pbmNsdWRlcyhkYXRhLmNvbnN0cnVjdG9yLm5hbWUpO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59O1xuXG5jb25zdCBjb252ZXJ0VG9OYXRpdmUgPSAoZGF0YSwgb3B0aW9ucykgPT4ge1xuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKGRhdGEpKSB7XG4gICAgICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICAgICAgICAgIGNhc2UgXCJOVUxMXCI6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJCT09MXCI6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBCb29sZWFuKHZhbHVlKTtcbiAgICAgICAgICAgICAgICBjYXNlIFwiTlwiOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29udmVydE51bWJlcih2YWx1ZSwgb3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgY2FzZSBcIkJcIjpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbnZlcnRCaW5hcnkodmFsdWUpO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJTXCI6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjb252ZXJ0U3RyaW5nKHZhbHVlKTtcbiAgICAgICAgICAgICAgICBjYXNlIFwiTFwiOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29udmVydExpc3QodmFsdWUsIG9wdGlvbnMpO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJNXCI6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjb252ZXJ0TWFwKHZhbHVlLCBvcHRpb25zKTtcbiAgICAgICAgICAgICAgICBjYXNlIFwiTlNcIjpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBTZXQodmFsdWUubWFwKChpdGVtKSA9PiBjb252ZXJ0TnVtYmVyKGl0ZW0sIG9wdGlvbnMpKSk7XG4gICAgICAgICAgICAgICAgY2FzZSBcIkJTXCI6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgU2V0KHZhbHVlLm1hcChjb252ZXJ0QmluYXJ5KSk7XG4gICAgICAgICAgICAgICAgY2FzZSBcIlNTXCI6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgU2V0KHZhbHVlLm1hcChjb252ZXJ0U3RyaW5nKSk7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCB0eXBlIHBhc3NlZDogJHtrZXl9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKGBObyB2YWx1ZSBkZWZpbmVkOiAke0pTT04uc3RyaW5naWZ5KGRhdGEpfWApO1xufTtcbmNvbnN0IGNvbnZlcnROdW1iZXIgPSAobnVtU3RyaW5nLCBvcHRpb25zKSA9PiB7XG4gICAgaWYgKHR5cGVvZiBvcHRpb25zPy53cmFwTnVtYmVycyA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHJldHVybiBvcHRpb25zPy53cmFwTnVtYmVycyhudW1TdHJpbmcpO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucz8ud3JhcE51bWJlcnMpIHtcbiAgICAgICAgcmV0dXJuIE51bWJlclZhbHVlLmZyb20obnVtU3RyaW5nKTtcbiAgICB9XG4gICAgY29uc3QgbnVtID0gTnVtYmVyKG51bVN0cmluZyk7XG4gICAgY29uc3QgaW5maW5pdHlWYWx1ZXMgPSBbTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLCBOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFldO1xuICAgIGNvbnN0IGlzTGFyZ2VGaW5pdGVOdW1iZXIgPSAobnVtID4gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIgfHwgbnVtIDwgTnVtYmVyLk1JTl9TQUZFX0lOVEVHRVIpICYmICFpbmZpbml0eVZhbHVlcy5pbmNsdWRlcyhudW0pO1xuICAgIGlmIChpc0xhcmdlRmluaXRlTnVtYmVyKSB7XG4gICAgICAgIGlmICh0eXBlb2YgQmlnSW50ID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIEJpZ0ludChudW1TdHJpbmcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAke251bVN0cmluZ30gY2FuJ3QgYmUgY29udmVydGVkIHRvIEJpZ0ludC4gU2V0IG9wdGlvbnMud3JhcE51bWJlcnMgdG8gZ2V0IHN0cmluZyB2YWx1ZS5gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgJHtudW1TdHJpbmd9IGlzIG91dHNpZGUgU0FGRV9JTlRFR0VSIGJvdW5kcy4gU2V0IG9wdGlvbnMud3JhcE51bWJlcnMgdG8gZ2V0IHN0cmluZyB2YWx1ZS5gKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVtO1xufTtcbmNvbnN0IGNvbnZlcnRTdHJpbmcgPSAoc3RyaW5nVmFsdWUpID0+IHN0cmluZ1ZhbHVlO1xuY29uc3QgY29udmVydEJpbmFyeSA9IChiaW5hcnlWYWx1ZSkgPT4gYmluYXJ5VmFsdWU7XG5jb25zdCBjb252ZXJ0TGlzdCA9IChsaXN0LCBvcHRpb25zKSA9PiBsaXN0Lm1hcCgoaXRlbSkgPT4gY29udmVydFRvTmF0aXZlKGl0ZW0sIG9wdGlvbnMpKTtcbmNvbnN0IGNvbnZlcnRNYXAgPSAobWFwLCBvcHRpb25zKSA9PiBPYmplY3QuZW50cmllcyhtYXApLnJlZHVjZSgoYWNjLCBba2V5LCB2YWx1ZV0pID0+ICgoYWNjW2tleV0gPSBjb252ZXJ0VG9OYXRpdmUodmFsdWUsIG9wdGlvbnMpKSwgYWNjKSwge30pO1xuXG5mdW5jdGlvbiBtYXJzaGFsbChkYXRhLCBvcHRpb25zKSB7XG4gICAgY29uc3QgYXR0cmlidXRlVmFsdWUgPSBjb252ZXJ0VG9BdHRyKGRhdGEsIG9wdGlvbnMpO1xuICAgIGNvbnN0IFtrZXksIHZhbHVlXSA9IE9iamVjdC5lbnRyaWVzKGF0dHJpYnV0ZVZhbHVlKVswXTtcbiAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICBjYXNlIFwiTVwiOlxuICAgICAgICBjYXNlIFwiTFwiOlxuICAgICAgICAgICAgcmV0dXJuIG9wdGlvbnM/LmNvbnZlcnRUb3BMZXZlbENvbnRhaW5lciA/IGF0dHJpYnV0ZVZhbHVlIDogdmFsdWU7XG4gICAgICAgIGNhc2UgXCJTU1wiOlxuICAgICAgICBjYXNlIFwiTlNcIjpcbiAgICAgICAgY2FzZSBcIkJTXCI6XG4gICAgICAgIGNhc2UgXCJTXCI6XG4gICAgICAgIGNhc2UgXCJOXCI6XG4gICAgICAgIGNhc2UgXCJCXCI6XG4gICAgICAgIGNhc2UgXCJOVUxMXCI6XG4gICAgICAgIGNhc2UgXCJCT09MXCI6XG4gICAgICAgIGNhc2UgXCIkdW5rbm93blwiOlxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIGF0dHJpYnV0ZVZhbHVlO1xuICAgIH1cbn1cblxuY29uc3QgdW5tYXJzaGFsbCA9IChkYXRhLCBvcHRpb25zKSA9PiB7XG4gICAgaWYgKG9wdGlvbnM/LmNvbnZlcnRXaXRob3V0TWFwV3JhcHBlcikge1xuICAgICAgICByZXR1cm4gY29udmVydFRvTmF0aXZlKGRhdGEsIG9wdGlvbnMpO1xuICAgIH1cbiAgICByZXR1cm4gY29udmVydFRvTmF0aXZlKHsgTTogZGF0YSB9LCBvcHRpb25zKTtcbn07XG5cbmV4cG9ydHMuTnVtYmVyVmFsdWVJbXBsID0gTnVtYmVyVmFsdWU7XG5leHBvcnRzLmNvbnZlcnRUb0F0dHIgPSBjb252ZXJ0VG9BdHRyO1xuZXhwb3J0cy5jb252ZXJ0VG9OYXRpdmUgPSBjb252ZXJ0VG9OYXRpdmU7XG5leHBvcnRzLm1hcnNoYWxsID0gbWFyc2hhbGw7XG5leHBvcnRzLnVubWFyc2hhbGwgPSB1bm1hcnNoYWxsO1xuIiwgIid1c2Ugc3RyaWN0JztcblxudmFyIHNtaXRoeUNsaWVudCA9IHJlcXVpcmUoJ0BzbWl0aHkvc21pdGh5LWNsaWVudCcpO1xudmFyIGNvcmUgPSByZXF1aXJlKCdAYXdzLXNkay9jb3JlJyk7XG52YXIgdXRpbER5bmFtb2RiID0gcmVxdWlyZSgnQGF3cy1zZGsvdXRpbC1keW5hbW9kYicpO1xudmFyIGNsaWVudER5bmFtb2RiID0gcmVxdWlyZSgnQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiJyk7XG52YXIgY29yZSQxID0gcmVxdWlyZSgnQHNtaXRoeS9jb3JlJyk7XG5cbmNvbnN0IFNFTEYgPSBudWxsO1xuY29uc3QgQUxMX1ZBTFVFUyA9IHt9O1xuY29uc3QgQUxMX01FTUJFUlMgPSBbXTtcbmNvbnN0IE5FWFRfTEVWRUwgPSBcIipcIjtcbmNvbnN0IHByb2Nlc3NPYmogPSAob2JqLCBwcm9jZXNzRnVuYywga2V5Tm9kZXMpID0+IHtcbiAgICBpZiAob2JqICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKGtleU5vZGVzID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBwcm9jZXNzRnVuYyhvYmopO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGtleU5vZGVzKTtcbiAgICAgICAgICAgIGNvbnN0IGdvVG9OZXh0TGV2ZWwgPSBrZXlzLmxlbmd0aCA9PT0gMSAmJiBrZXlzWzBdID09PSBORVhUX0xFVkVMO1xuICAgICAgICAgICAgY29uc3Qgc29tZUNoaWxkcmVuID0ga2V5cy5sZW5ndGggPj0gMSAmJiAhZ29Ub05leHRMZXZlbDtcbiAgICAgICAgICAgIGNvbnN0IGFsbENoaWxkcmVuID0ga2V5cy5sZW5ndGggPT09IDA7XG4gICAgICAgICAgICBpZiAoc29tZUNoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHByb2Nlc3NLZXlzSW5PYmoob2JqLCBwcm9jZXNzRnVuYywga2V5Tm9kZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoYWxsQ2hpbGRyZW4pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcHJvY2Vzc0FsbEtleXNJbk9iaihvYmosIHByb2Nlc3NGdW5jLCBTRUxGKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGdvVG9OZXh0TGV2ZWwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gT2JqZWN0LmVudHJpZXMob2JqID8/IHt9KS5yZWR1Y2UoKGFjYywgW2ssIHZdKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgdiAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhY2Nba10gPSBwcm9jZXNzT2JqKHYsIHByb2Nlc3NGdW5jLCBrZXlOb2Rlc1tORVhUX0xFVkVMXSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgICAgICAgICB9LCAoQXJyYXkuaXNBcnJheShvYmopID8gW10gOiB7fSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG59O1xuY29uc3QgcHJvY2Vzc0tleXNJbk9iaiA9IChvYmosIHByb2Nlc3NGdW5jLCBrZXlOb2RlcykgPT4ge1xuICAgIGxldCBhY2N1bXVsYXRvcjtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShvYmopKSB7XG4gICAgICAgIGFjY3VtdWxhdG9yID0gb2JqLmZpbHRlcigoaXRlbSkgPT4gdHlwZW9mIGl0ZW0gIT09IFwiZnVuY3Rpb25cIik7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBhY2N1bXVsYXRvciA9IHt9O1xuICAgICAgICBmb3IgKGNvbnN0IFtrLCB2XSBvZiBPYmplY3QuZW50cmllcyhvYmopKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHYgIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICAgIGFjY3VtdWxhdG9yW2tdID0gdjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBmb3IgKGNvbnN0IFtub2RlS2V5LCBub2Rlc10gb2YgT2JqZWN0LmVudHJpZXMoa2V5Tm9kZXMpKSB7XG4gICAgICAgIGlmICh0eXBlb2Ygb2JqW25vZGVLZXldID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHByb2Nlc3NlZFZhbHVlID0gcHJvY2Vzc09iaihvYmpbbm9kZUtleV0sIHByb2Nlc3NGdW5jLCBub2Rlcyk7XG4gICAgICAgIGlmIChwcm9jZXNzZWRWYWx1ZSAhPT0gdW5kZWZpbmVkICYmIHR5cGVvZiBwcm9jZXNzZWRWYWx1ZSAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICBhY2N1bXVsYXRvcltub2RlS2V5XSA9IHByb2Nlc3NlZFZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBhY2N1bXVsYXRvcjtcbn07XG5jb25zdCBwcm9jZXNzQWxsS2V5c0luT2JqID0gKG9iaiwgcHJvY2Vzc0Z1bmMsIGtleU5vZGVzKSA9PiB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkob2JqKSkge1xuICAgICAgICByZXR1cm4gb2JqLmZpbHRlcigoaXRlbSkgPT4gdHlwZW9mIGl0ZW0gIT09IFwiZnVuY3Rpb25cIikubWFwKChpdGVtKSA9PiBwcm9jZXNzT2JqKGl0ZW0sIHByb2Nlc3NGdW5jLCBrZXlOb2RlcykpO1xuICAgIH1cbiAgICByZXR1cm4gT2JqZWN0LmVudHJpZXMob2JqKS5yZWR1Y2UoKGFjYywgW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwcm9jZXNzZWRWYWx1ZSA9IHByb2Nlc3NPYmoodmFsdWUsIHByb2Nlc3NGdW5jLCBrZXlOb2Rlcyk7XG4gICAgICAgIGlmIChwcm9jZXNzZWRWYWx1ZSAhPT0gdW5kZWZpbmVkICYmIHR5cGVvZiBwcm9jZXNzZWRWYWx1ZSAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICBhY2Nba2V5XSA9IHByb2Nlc3NlZFZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgfSwge30pO1xufTtcbmNvbnN0IG1hcnNoYWxsSW5wdXQgPSAob2JqLCBrZXlOb2Rlcywgb3B0aW9ucykgPT4ge1xuICAgIGNvbnN0IG1hcnNoYWxsRnVuYyA9ICh0b01hcnNoYWxsKSA9PiB1dGlsRHluYW1vZGIubWFyc2hhbGwodG9NYXJzaGFsbCwgb3B0aW9ucyk7XG4gICAgcmV0dXJuIHByb2Nlc3NLZXlzSW5PYmoob2JqLCBtYXJzaGFsbEZ1bmMsIGtleU5vZGVzKTtcbn07XG5jb25zdCB1bm1hcnNoYWxsT3V0cHV0ID0gKG9iaiwga2V5Tm9kZXMsIG9wdGlvbnMpID0+IHtcbiAgICBjb25zdCB1bm1hcnNoYWxsRnVuYyA9ICh0b01hcnNoYWxsKSA9PiB1dGlsRHluYW1vZGIudW5tYXJzaGFsbCh0b01hcnNoYWxsLCBvcHRpb25zKTtcbiAgICByZXR1cm4gcHJvY2Vzc0tleXNJbk9iaihvYmosIHVubWFyc2hhbGxGdW5jLCBrZXlOb2Rlcyk7XG59O1xuXG5jbGFzcyBEeW5hbW9EQkRvY3VtZW50Q2xpZW50Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kIHtcbiAgICBhZGRNYXJzaGFsbGluZ01pZGRsZXdhcmUoY29uZmlndXJhdGlvbikge1xuICAgICAgICBjb25zdCB7IG1hcnNoYWxsT3B0aW9ucyA9IHt9LCB1bm1hcnNoYWxsT3B0aW9ucyA9IHt9IH0gPSBjb25maWd1cmF0aW9uLnRyYW5zbGF0ZUNvbmZpZyB8fCB7fTtcbiAgICAgICAgbWFyc2hhbGxPcHRpb25zLmNvbnZlcnRUb3BMZXZlbENvbnRhaW5lciA9IG1hcnNoYWxsT3B0aW9ucy5jb252ZXJ0VG9wTGV2ZWxDb250YWluZXIgPz8gdHJ1ZTtcbiAgICAgICAgdW5tYXJzaGFsbE9wdGlvbnMuY29udmVydFdpdGhvdXRNYXBXcmFwcGVyID0gdW5tYXJzaGFsbE9wdGlvbnMuY29udmVydFdpdGhvdXRNYXBXcmFwcGVyID8/IHRydWU7XG4gICAgICAgIHRoaXMuY2xpZW50Q29tbWFuZC5taWRkbGV3YXJlU3RhY2suYWRkUmVsYXRpdmVUbygobmV4dCwgY29udGV4dCkgPT4gYXN5bmMgKGFyZ3MpID0+IHtcbiAgICAgICAgICAgIGNvcmUuc2V0RmVhdHVyZShjb250ZXh0LCBcIkREQl9NQVBQRVJcIiwgXCJkXCIpO1xuICAgICAgICAgICAgcmV0dXJuIG5leHQoe1xuICAgICAgICAgICAgICAgIC4uLmFyZ3MsXG4gICAgICAgICAgICAgICAgaW5wdXQ6IG1hcnNoYWxsSW5wdXQoYXJncy5pbnB1dCwgdGhpcy5pbnB1dEtleU5vZGVzLCBtYXJzaGFsbE9wdGlvbnMpLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sIHtcbiAgICAgICAgICAgIG5hbWU6IFwiRG9jdW1lbnRNYXJzaGFsbFwiLFxuICAgICAgICAgICAgcmVsYXRpb246IFwiYmVmb3JlXCIsXG4gICAgICAgICAgICB0b01pZGRsZXdhcmU6IFwic2VyaWFsaXplck1pZGRsZXdhcmVcIixcbiAgICAgICAgICAgIG92ZXJyaWRlOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5jbGllbnRDb21tYW5kLm1pZGRsZXdhcmVTdGFjay5hZGRSZWxhdGl2ZVRvKChuZXh0LCBjb250ZXh0KSA9PiBhc3luYyAoYXJncykgPT4ge1xuICAgICAgICAgICAgY29uc3QgZGVzZXJpYWxpemVkID0gYXdhaXQgbmV4dChhcmdzKTtcbiAgICAgICAgICAgIGRlc2VyaWFsaXplZC5vdXRwdXQgPSB1bm1hcnNoYWxsT3V0cHV0KGRlc2VyaWFsaXplZC5vdXRwdXQsIHRoaXMub3V0cHV0S2V5Tm9kZXMsIHVubWFyc2hhbGxPcHRpb25zKTtcbiAgICAgICAgICAgIHJldHVybiBkZXNlcmlhbGl6ZWQ7XG4gICAgICAgIH0sIHtcbiAgICAgICAgICAgIG5hbWU6IFwiRG9jdW1lbnRVbm1hcnNoYWxsXCIsXG4gICAgICAgICAgICByZWxhdGlvbjogXCJiZWZvcmVcIixcbiAgICAgICAgICAgIHRvTWlkZGxld2FyZTogXCJkZXNlcmlhbGl6ZXJNaWRkbGV3YXJlXCIsXG4gICAgICAgICAgICBvdmVycmlkZTogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgfVxufVxuXG5jbGFzcyBCYXRjaEV4ZWN1dGVTdGF0ZW1lbnRDb21tYW5kIGV4dGVuZHMgRHluYW1vREJEb2N1bWVudENsaWVudENvbW1hbmQge1xuICAgIGlucHV0O1xuICAgIGlucHV0S2V5Tm9kZXMgPSB7XG4gICAgICAgICdTdGF0ZW1lbnRzJzoge1xuICAgICAgICAgICAgJyonOiB7XG4gICAgICAgICAgICAgICAgJ1BhcmFtZXRlcnMnOiBBTExfTUVNQkVSUyxcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICB9O1xuICAgIG91dHB1dEtleU5vZGVzID0ge1xuICAgICAgICAnUmVzcG9uc2VzJzoge1xuICAgICAgICAgICAgJyonOiB7XG4gICAgICAgICAgICAgICAgJ0Vycm9yJzoge1xuICAgICAgICAgICAgICAgICAgICAnSXRlbSc6IEFMTF9WQUxVRVMsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAnSXRlbSc6IEFMTF9WQUxVRVMsXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgfTtcbiAgICBjbGllbnRDb21tYW5kO1xuICAgIG1pZGRsZXdhcmVTdGFjaztcbiAgICBjb25zdHJ1Y3RvcihpbnB1dCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmlucHV0ID0gaW5wdXQ7XG4gICAgICAgIHRoaXMuY2xpZW50Q29tbWFuZCA9IG5ldyBjbGllbnREeW5hbW9kYi5CYXRjaEV4ZWN1dGVTdGF0ZW1lbnRDb21tYW5kKHRoaXMuaW5wdXQpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjayA9IHRoaXMuY2xpZW50Q29tbWFuZC5taWRkbGV3YXJlU3RhY2s7XG4gICAgfVxuICAgIHJlc29sdmVNaWRkbGV3YXJlKGNsaWVudFN0YWNrLCBjb25maWd1cmF0aW9uLCBvcHRpb25zKSB7XG4gICAgICAgIHRoaXMuYWRkTWFyc2hhbGxpbmdNaWRkbGV3YXJlKGNvbmZpZ3VyYXRpb24pO1xuICAgICAgICBjb25zdCBzdGFjayA9IGNsaWVudFN0YWNrLmNvbmNhdCh0aGlzLm1pZGRsZXdhcmVTdGFjayk7XG4gICAgICAgIGNvbnN0IGhhbmRsZXIgPSB0aGlzLmNsaWVudENvbW1hbmQucmVzb2x2ZU1pZGRsZXdhcmUoc3RhY2ssIGNvbmZpZ3VyYXRpb24sIG9wdGlvbnMpO1xuICAgICAgICByZXR1cm4gYXN5bmMgKCkgPT4gaGFuZGxlcih0aGlzLmNsaWVudENvbW1hbmQpO1xuICAgIH1cbn1cblxuY2xhc3MgQmF0Y2hHZXRDb21tYW5kIGV4dGVuZHMgRHluYW1vREJEb2N1bWVudENsaWVudENvbW1hbmQge1xuICAgIGlucHV0O1xuICAgIGlucHV0S2V5Tm9kZXMgPSB7XG4gICAgICAgICdSZXF1ZXN0SXRlbXMnOiB7XG4gICAgICAgICAgICAnKic6IHtcbiAgICAgICAgICAgICAgICAnS2V5cyc6IHtcbiAgICAgICAgICAgICAgICAgICAgJyonOiBBTExfVkFMVUVTXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICB9O1xuICAgIG91dHB1dEtleU5vZGVzID0ge1xuICAgICAgICAnUmVzcG9uc2VzJzoge1xuICAgICAgICAgICAgJyonOiB7XG4gICAgICAgICAgICAgICAgJyonOiBBTExfVkFMVUVTXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgICdVbnByb2Nlc3NlZEtleXMnOiB7XG4gICAgICAgICAgICAnKic6IHtcbiAgICAgICAgICAgICAgICAnS2V5cyc6IHtcbiAgICAgICAgICAgICAgICAgICAgJyonOiBBTExfVkFMVUVTXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICB9O1xuICAgIGNsaWVudENvbW1hbmQ7XG4gICAgbWlkZGxld2FyZVN0YWNrO1xuICAgIGNvbnN0cnVjdG9yKGlucHV0KSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuaW5wdXQgPSBpbnB1dDtcbiAgICAgICAgdGhpcy5jbGllbnRDb21tYW5kID0gbmV3IGNsaWVudER5bmFtb2RiLkJhdGNoR2V0SXRlbUNvbW1hbmQodGhpcy5pbnB1dCk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrID0gdGhpcy5jbGllbnRDb21tYW5kLm1pZGRsZXdhcmVTdGFjaztcbiAgICB9XG4gICAgcmVzb2x2ZU1pZGRsZXdhcmUoY2xpZW50U3RhY2ssIGNvbmZpZ3VyYXRpb24sIG9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5hZGRNYXJzaGFsbGluZ01pZGRsZXdhcmUoY29uZmlndXJhdGlvbik7XG4gICAgICAgIGNvbnN0IHN0YWNrID0gY2xpZW50U3RhY2suY29uY2F0KHRoaXMubWlkZGxld2FyZVN0YWNrKTtcbiAgICAgICAgY29uc3QgaGFuZGxlciA9IHRoaXMuY2xpZW50Q29tbWFuZC5yZXNvbHZlTWlkZGxld2FyZShzdGFjaywgY29uZmlndXJhdGlvbiwgb3B0aW9ucyk7XG4gICAgICAgIHJldHVybiBhc3luYyAoKSA9PiBoYW5kbGVyKHRoaXMuY2xpZW50Q29tbWFuZCk7XG4gICAgfVxufVxuXG5jbGFzcyBCYXRjaFdyaXRlQ29tbWFuZCBleHRlbmRzIER5bmFtb0RCRG9jdW1lbnRDbGllbnRDb21tYW5kIHtcbiAgICBpbnB1dDtcbiAgICBpbnB1dEtleU5vZGVzID0ge1xuICAgICAgICAnUmVxdWVzdEl0ZW1zJzoge1xuICAgICAgICAgICAgJyonOiB7XG4gICAgICAgICAgICAgICAgJyonOiB7XG4gICAgICAgICAgICAgICAgICAgICdQdXRSZXF1ZXN0Jzoge1xuICAgICAgICAgICAgICAgICAgICAgICAgJ0l0ZW0nOiBBTExfVkFMVUVTLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAnRGVsZXRlUmVxdWVzdCc6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICdLZXknOiBBTExfVkFMVUVTLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICB9O1xuICAgIG91dHB1dEtleU5vZGVzID0ge1xuICAgICAgICAnVW5wcm9jZXNzZWRJdGVtcyc6IHtcbiAgICAgICAgICAgICcqJzoge1xuICAgICAgICAgICAgICAgICcqJzoge1xuICAgICAgICAgICAgICAgICAgICAnUHV0UmVxdWVzdCc6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICdJdGVtJzogQUxMX1ZBTFVFUyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgJ0RlbGV0ZVJlcXVlc3QnOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAnS2V5JzogQUxMX1ZBTFVFUyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgICdJdGVtQ29sbGVjdGlvbk1ldHJpY3MnOiB7XG4gICAgICAgICAgICAnKic6IHtcbiAgICAgICAgICAgICAgICAnKic6IHtcbiAgICAgICAgICAgICAgICAgICAgJ0l0ZW1Db2xsZWN0aW9uS2V5JzogQUxMX1ZBTFVFUyxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgfTtcbiAgICBjbGllbnRDb21tYW5kO1xuICAgIG1pZGRsZXdhcmVTdGFjaztcbiAgICBjb25zdHJ1Y3RvcihpbnB1dCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmlucHV0ID0gaW5wdXQ7XG4gICAgICAgIHRoaXMuY2xpZW50Q29tbWFuZCA9IG5ldyBjbGllbnREeW5hbW9kYi5CYXRjaFdyaXRlSXRlbUNvbW1hbmQodGhpcy5pbnB1dCk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrID0gdGhpcy5jbGllbnRDb21tYW5kLm1pZGRsZXdhcmVTdGFjaztcbiAgICB9XG4gICAgcmVzb2x2ZU1pZGRsZXdhcmUoY2xpZW50U3RhY2ssIGNvbmZpZ3VyYXRpb24sIG9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5hZGRNYXJzaGFsbGluZ01pZGRsZXdhcmUoY29uZmlndXJhdGlvbik7XG4gICAgICAgIGNvbnN0IHN0YWNrID0gY2xpZW50U3RhY2suY29uY2F0KHRoaXMubWlkZGxld2FyZVN0YWNrKTtcbiAgICAgICAgY29uc3QgaGFuZGxlciA9IHRoaXMuY2xpZW50Q29tbWFuZC5yZXNvbHZlTWlkZGxld2FyZShzdGFjaywgY29uZmlndXJhdGlvbiwgb3B0aW9ucyk7XG4gICAgICAgIHJldHVybiBhc3luYyAoKSA9PiBoYW5kbGVyKHRoaXMuY2xpZW50Q29tbWFuZCk7XG4gICAgfVxufVxuXG5jbGFzcyBEZWxldGVDb21tYW5kIGV4dGVuZHMgRHluYW1vREJEb2N1bWVudENsaWVudENvbW1hbmQge1xuICAgIGlucHV0O1xuICAgIGlucHV0S2V5Tm9kZXMgPSB7XG4gICAgICAgICdLZXknOiBBTExfVkFMVUVTLFxuICAgICAgICAnRXhwZWN0ZWQnOiB7XG4gICAgICAgICAgICAnKic6IHtcbiAgICAgICAgICAgICAgICAnVmFsdWUnOiBTRUxGLFxuICAgICAgICAgICAgICAgICdBdHRyaWJ1dGVWYWx1ZUxpc3QnOiBBTExfTUVNQkVSUyxcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgJ0V4cHJlc3Npb25BdHRyaWJ1dGVWYWx1ZXMnOiBBTExfVkFMVUVTLFxuICAgIH07XG4gICAgb3V0cHV0S2V5Tm9kZXMgPSB7XG4gICAgICAgICdBdHRyaWJ1dGVzJzogQUxMX1ZBTFVFUyxcbiAgICAgICAgJ0l0ZW1Db2xsZWN0aW9uTWV0cmljcyc6IHtcbiAgICAgICAgICAgICdJdGVtQ29sbGVjdGlvbktleSc6IEFMTF9WQUxVRVMsXG4gICAgICAgIH0sXG4gICAgfTtcbiAgICBjbGllbnRDb21tYW5kO1xuICAgIG1pZGRsZXdhcmVTdGFjaztcbiAgICBjb25zdHJ1Y3RvcihpbnB1dCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmlucHV0ID0gaW5wdXQ7XG4gICAgICAgIHRoaXMuY2xpZW50Q29tbWFuZCA9IG5ldyBjbGllbnREeW5hbW9kYi5EZWxldGVJdGVtQ29tbWFuZCh0aGlzLmlucHV0KTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sgPSB0aGlzLmNsaWVudENvbW1hbmQubWlkZGxld2FyZVN0YWNrO1xuICAgIH1cbiAgICByZXNvbHZlTWlkZGxld2FyZShjbGllbnRTdGFjaywgY29uZmlndXJhdGlvbiwgb3B0aW9ucykge1xuICAgICAgICB0aGlzLmFkZE1hcnNoYWxsaW5nTWlkZGxld2FyZShjb25maWd1cmF0aW9uKTtcbiAgICAgICAgY29uc3Qgc3RhY2sgPSBjbGllbnRTdGFjay5jb25jYXQodGhpcy5taWRkbGV3YXJlU3RhY2spO1xuICAgICAgICBjb25zdCBoYW5kbGVyID0gdGhpcy5jbGllbnRDb21tYW5kLnJlc29sdmVNaWRkbGV3YXJlKHN0YWNrLCBjb25maWd1cmF0aW9uLCBvcHRpb25zKTtcbiAgICAgICAgcmV0dXJuIGFzeW5jICgpID0+IGhhbmRsZXIodGhpcy5jbGllbnRDb21tYW5kKTtcbiAgICB9XG59XG5cbmNsYXNzIEV4ZWN1dGVTdGF0ZW1lbnRDb21tYW5kIGV4dGVuZHMgRHluYW1vREJEb2N1bWVudENsaWVudENvbW1hbmQge1xuICAgIGlucHV0O1xuICAgIGlucHV0S2V5Tm9kZXMgPSB7XG4gICAgICAgICdQYXJhbWV0ZXJzJzogQUxMX01FTUJFUlMsXG4gICAgfTtcbiAgICBvdXRwdXRLZXlOb2RlcyA9IHtcbiAgICAgICAgJ0l0ZW1zJzoge1xuICAgICAgICAgICAgJyonOiBBTExfVkFMVUVTXG4gICAgICAgIH0sXG4gICAgICAgICdMYXN0RXZhbHVhdGVkS2V5JzogQUxMX1ZBTFVFUyxcbiAgICB9O1xuICAgIGNsaWVudENvbW1hbmQ7XG4gICAgbWlkZGxld2FyZVN0YWNrO1xuICAgIGNvbnN0cnVjdG9yKGlucHV0KSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuaW5wdXQgPSBpbnB1dDtcbiAgICAgICAgdGhpcy5jbGllbnRDb21tYW5kID0gbmV3IGNsaWVudER5bmFtb2RiLkV4ZWN1dGVTdGF0ZW1lbnRDb21tYW5kKHRoaXMuaW5wdXQpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjayA9IHRoaXMuY2xpZW50Q29tbWFuZC5taWRkbGV3YXJlU3RhY2s7XG4gICAgfVxuICAgIHJlc29sdmVNaWRkbGV3YXJlKGNsaWVudFN0YWNrLCBjb25maWd1cmF0aW9uLCBvcHRpb25zKSB7XG4gICAgICAgIHRoaXMuYWRkTWFyc2hhbGxpbmdNaWRkbGV3YXJlKGNvbmZpZ3VyYXRpb24pO1xuICAgICAgICBjb25zdCBzdGFjayA9IGNsaWVudFN0YWNrLmNvbmNhdCh0aGlzLm1pZGRsZXdhcmVTdGFjayk7XG4gICAgICAgIGNvbnN0IGhhbmRsZXIgPSB0aGlzLmNsaWVudENvbW1hbmQucmVzb2x2ZU1pZGRsZXdhcmUoc3RhY2ssIGNvbmZpZ3VyYXRpb24sIG9wdGlvbnMpO1xuICAgICAgICByZXR1cm4gYXN5bmMgKCkgPT4gaGFuZGxlcih0aGlzLmNsaWVudENvbW1hbmQpO1xuICAgIH1cbn1cblxuY2xhc3MgRXhlY3V0ZVRyYW5zYWN0aW9uQ29tbWFuZCBleHRlbmRzIER5bmFtb0RCRG9jdW1lbnRDbGllbnRDb21tYW5kIHtcbiAgICBpbnB1dDtcbiAgICBpbnB1dEtleU5vZGVzID0ge1xuICAgICAgICAnVHJhbnNhY3RTdGF0ZW1lbnRzJzoge1xuICAgICAgICAgICAgJyonOiB7XG4gICAgICAgICAgICAgICAgJ1BhcmFtZXRlcnMnOiBBTExfTUVNQkVSUyxcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICB9O1xuICAgIG91dHB1dEtleU5vZGVzID0ge1xuICAgICAgICAnUmVzcG9uc2VzJzoge1xuICAgICAgICAgICAgJyonOiB7XG4gICAgICAgICAgICAgICAgJ0l0ZW0nOiBBTExfVkFMVUVTLFxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgIH07XG4gICAgY2xpZW50Q29tbWFuZDtcbiAgICBtaWRkbGV3YXJlU3RhY2s7XG4gICAgY29uc3RydWN0b3IoaW5wdXQpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5pbnB1dCA9IGlucHV0O1xuICAgICAgICB0aGlzLmNsaWVudENvbW1hbmQgPSBuZXcgY2xpZW50RHluYW1vZGIuRXhlY3V0ZVRyYW5zYWN0aW9uQ29tbWFuZCh0aGlzLmlucHV0KTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sgPSB0aGlzLmNsaWVudENvbW1hbmQubWlkZGxld2FyZVN0YWNrO1xuICAgIH1cbiAgICByZXNvbHZlTWlkZGxld2FyZShjbGllbnRTdGFjaywgY29uZmlndXJhdGlvbiwgb3B0aW9ucykge1xuICAgICAgICB0aGlzLmFkZE1hcnNoYWxsaW5nTWlkZGxld2FyZShjb25maWd1cmF0aW9uKTtcbiAgICAgICAgY29uc3Qgc3RhY2sgPSBjbGllbnRTdGFjay5jb25jYXQodGhpcy5taWRkbGV3YXJlU3RhY2spO1xuICAgICAgICBjb25zdCBoYW5kbGVyID0gdGhpcy5jbGllbnRDb21tYW5kLnJlc29sdmVNaWRkbGV3YXJlKHN0YWNrLCBjb25maWd1cmF0aW9uLCBvcHRpb25zKTtcbiAgICAgICAgcmV0dXJuIGFzeW5jICgpID0+IGhhbmRsZXIodGhpcy5jbGllbnRDb21tYW5kKTtcbiAgICB9XG59XG5cbmNsYXNzIEdldENvbW1hbmQgZXh0ZW5kcyBEeW5hbW9EQkRvY3VtZW50Q2xpZW50Q29tbWFuZCB7XG4gICAgaW5wdXQ7XG4gICAgaW5wdXRLZXlOb2RlcyA9IHtcbiAgICAgICAgJ0tleSc6IEFMTF9WQUxVRVMsXG4gICAgfTtcbiAgICBvdXRwdXRLZXlOb2RlcyA9IHtcbiAgICAgICAgJ0l0ZW0nOiBBTExfVkFMVUVTLFxuICAgIH07XG4gICAgY2xpZW50Q29tbWFuZDtcbiAgICBtaWRkbGV3YXJlU3RhY2s7XG4gICAgY29uc3RydWN0b3IoaW5wdXQpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5pbnB1dCA9IGlucHV0O1xuICAgICAgICB0aGlzLmNsaWVudENvbW1hbmQgPSBuZXcgY2xpZW50RHluYW1vZGIuR2V0SXRlbUNvbW1hbmQodGhpcy5pbnB1dCk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrID0gdGhpcy5jbGllbnRDb21tYW5kLm1pZGRsZXdhcmVTdGFjaztcbiAgICB9XG4gICAgcmVzb2x2ZU1pZGRsZXdhcmUoY2xpZW50U3RhY2ssIGNvbmZpZ3VyYXRpb24sIG9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5hZGRNYXJzaGFsbGluZ01pZGRsZXdhcmUoY29uZmlndXJhdGlvbik7XG4gICAgICAgIGNvbnN0IHN0YWNrID0gY2xpZW50U3RhY2suY29uY2F0KHRoaXMubWlkZGxld2FyZVN0YWNrKTtcbiAgICAgICAgY29uc3QgaGFuZGxlciA9IHRoaXMuY2xpZW50Q29tbWFuZC5yZXNvbHZlTWlkZGxld2FyZShzdGFjaywgY29uZmlndXJhdGlvbiwgb3B0aW9ucyk7XG4gICAgICAgIHJldHVybiBhc3luYyAoKSA9PiBoYW5kbGVyKHRoaXMuY2xpZW50Q29tbWFuZCk7XG4gICAgfVxufVxuXG5jbGFzcyBQdXRDb21tYW5kIGV4dGVuZHMgRHluYW1vREJEb2N1bWVudENsaWVudENvbW1hbmQge1xuICAgIGlucHV0O1xuICAgIGlucHV0S2V5Tm9kZXMgPSB7XG4gICAgICAgICdJdGVtJzogQUxMX1ZBTFVFUyxcbiAgICAgICAgJ0V4cGVjdGVkJzoge1xuICAgICAgICAgICAgJyonOiB7XG4gICAgICAgICAgICAgICAgJ1ZhbHVlJzogU0VMRixcbiAgICAgICAgICAgICAgICAnQXR0cmlidXRlVmFsdWVMaXN0JzogQUxMX01FTUJFUlMsXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgICdFeHByZXNzaW9uQXR0cmlidXRlVmFsdWVzJzogQUxMX1ZBTFVFUyxcbiAgICB9O1xuICAgIG91dHB1dEtleU5vZGVzID0ge1xuICAgICAgICAnQXR0cmlidXRlcyc6IEFMTF9WQUxVRVMsXG4gICAgICAgICdJdGVtQ29sbGVjdGlvbk1ldHJpY3MnOiB7XG4gICAgICAgICAgICAnSXRlbUNvbGxlY3Rpb25LZXknOiBBTExfVkFMVUVTLFxuICAgICAgICB9LFxuICAgIH07XG4gICAgY2xpZW50Q29tbWFuZDtcbiAgICBtaWRkbGV3YXJlU3RhY2s7XG4gICAgY29uc3RydWN0b3IoaW5wdXQpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5pbnB1dCA9IGlucHV0O1xuICAgICAgICB0aGlzLmNsaWVudENvbW1hbmQgPSBuZXcgY2xpZW50RHluYW1vZGIuUHV0SXRlbUNvbW1hbmQodGhpcy5pbnB1dCk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrID0gdGhpcy5jbGllbnRDb21tYW5kLm1pZGRsZXdhcmVTdGFjaztcbiAgICB9XG4gICAgcmVzb2x2ZU1pZGRsZXdhcmUoY2xpZW50U3RhY2ssIGNvbmZpZ3VyYXRpb24sIG9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5hZGRNYXJzaGFsbGluZ01pZGRsZXdhcmUoY29uZmlndXJhdGlvbik7XG4gICAgICAgIGNvbnN0IHN0YWNrID0gY2xpZW50U3RhY2suY29uY2F0KHRoaXMubWlkZGxld2FyZVN0YWNrKTtcbiAgICAgICAgY29uc3QgaGFuZGxlciA9IHRoaXMuY2xpZW50Q29tbWFuZC5yZXNvbHZlTWlkZGxld2FyZShzdGFjaywgY29uZmlndXJhdGlvbiwgb3B0aW9ucyk7XG4gICAgICAgIHJldHVybiBhc3luYyAoKSA9PiBoYW5kbGVyKHRoaXMuY2xpZW50Q29tbWFuZCk7XG4gICAgfVxufVxuXG5jbGFzcyBRdWVyeUNvbW1hbmQgZXh0ZW5kcyBEeW5hbW9EQkRvY3VtZW50Q2xpZW50Q29tbWFuZCB7XG4gICAgaW5wdXQ7XG4gICAgaW5wdXRLZXlOb2RlcyA9IHtcbiAgICAgICAgJ0tleUNvbmRpdGlvbnMnOiB7XG4gICAgICAgICAgICAnKic6IHtcbiAgICAgICAgICAgICAgICAnQXR0cmlidXRlVmFsdWVMaXN0JzogQUxMX01FTUJFUlMsXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgICdRdWVyeUZpbHRlcic6IHtcbiAgICAgICAgICAgICcqJzoge1xuICAgICAgICAgICAgICAgICdBdHRyaWJ1dGVWYWx1ZUxpc3QnOiBBTExfTUVNQkVSUyxcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgJ0V4Y2x1c2l2ZVN0YXJ0S2V5JzogQUxMX1ZBTFVFUyxcbiAgICAgICAgJ0V4cHJlc3Npb25BdHRyaWJ1dGVWYWx1ZXMnOiBBTExfVkFMVUVTLFxuICAgIH07XG4gICAgb3V0cHV0S2V5Tm9kZXMgPSB7XG4gICAgICAgICdJdGVtcyc6IHtcbiAgICAgICAgICAgICcqJzogQUxMX1ZBTFVFU1xuICAgICAgICB9LFxuICAgICAgICAnTGFzdEV2YWx1YXRlZEtleSc6IEFMTF9WQUxVRVMsXG4gICAgfTtcbiAgICBjbGllbnRDb21tYW5kO1xuICAgIG1pZGRsZXdhcmVTdGFjaztcbiAgICBjb25zdHJ1Y3RvcihpbnB1dCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmlucHV0ID0gaW5wdXQ7XG4gICAgICAgIHRoaXMuY2xpZW50Q29tbWFuZCA9IG5ldyBjbGllbnREeW5hbW9kYi5RdWVyeUNvbW1hbmQodGhpcy5pbnB1dCk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrID0gdGhpcy5jbGllbnRDb21tYW5kLm1pZGRsZXdhcmVTdGFjaztcbiAgICB9XG4gICAgcmVzb2x2ZU1pZGRsZXdhcmUoY2xpZW50U3RhY2ssIGNvbmZpZ3VyYXRpb24sIG9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5hZGRNYXJzaGFsbGluZ01pZGRsZXdhcmUoY29uZmlndXJhdGlvbik7XG4gICAgICAgIGNvbnN0IHN0YWNrID0gY2xpZW50U3RhY2suY29uY2F0KHRoaXMubWlkZGxld2FyZVN0YWNrKTtcbiAgICAgICAgY29uc3QgaGFuZGxlciA9IHRoaXMuY2xpZW50Q29tbWFuZC5yZXNvbHZlTWlkZGxld2FyZShzdGFjaywgY29uZmlndXJhdGlvbiwgb3B0aW9ucyk7XG4gICAgICAgIHJldHVybiBhc3luYyAoKSA9PiBoYW5kbGVyKHRoaXMuY2xpZW50Q29tbWFuZCk7XG4gICAgfVxufVxuXG5jbGFzcyBTY2FuQ29tbWFuZCBleHRlbmRzIER5bmFtb0RCRG9jdW1lbnRDbGllbnRDb21tYW5kIHtcbiAgICBpbnB1dDtcbiAgICBpbnB1dEtleU5vZGVzID0ge1xuICAgICAgICAnU2NhbkZpbHRlcic6IHtcbiAgICAgICAgICAgICcqJzoge1xuICAgICAgICAgICAgICAgICdBdHRyaWJ1dGVWYWx1ZUxpc3QnOiBBTExfTUVNQkVSUyxcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgJ0V4Y2x1c2l2ZVN0YXJ0S2V5JzogQUxMX1ZBTFVFUyxcbiAgICAgICAgJ0V4cHJlc3Npb25BdHRyaWJ1dGVWYWx1ZXMnOiBBTExfVkFMVUVTLFxuICAgIH07XG4gICAgb3V0cHV0S2V5Tm9kZXMgPSB7XG4gICAgICAgICdJdGVtcyc6IHtcbiAgICAgICAgICAgICcqJzogQUxMX1ZBTFVFU1xuICAgICAgICB9LFxuICAgICAgICAnTGFzdEV2YWx1YXRlZEtleSc6IEFMTF9WQUxVRVMsXG4gICAgfTtcbiAgICBjbGllbnRDb21tYW5kO1xuICAgIG1pZGRsZXdhcmVTdGFjaztcbiAgICBjb25zdHJ1Y3RvcihpbnB1dCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmlucHV0ID0gaW5wdXQ7XG4gICAgICAgIHRoaXMuY2xpZW50Q29tbWFuZCA9IG5ldyBjbGllbnREeW5hbW9kYi5TY2FuQ29tbWFuZCh0aGlzLmlucHV0KTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sgPSB0aGlzLmNsaWVudENvbW1hbmQubWlkZGxld2FyZVN0YWNrO1xuICAgIH1cbiAgICByZXNvbHZlTWlkZGxld2FyZShjbGllbnRTdGFjaywgY29uZmlndXJhdGlvbiwgb3B0aW9ucykge1xuICAgICAgICB0aGlzLmFkZE1hcnNoYWxsaW5nTWlkZGxld2FyZShjb25maWd1cmF0aW9uKTtcbiAgICAgICAgY29uc3Qgc3RhY2sgPSBjbGllbnRTdGFjay5jb25jYXQodGhpcy5taWRkbGV3YXJlU3RhY2spO1xuICAgICAgICBjb25zdCBoYW5kbGVyID0gdGhpcy5jbGllbnRDb21tYW5kLnJlc29sdmVNaWRkbGV3YXJlKHN0YWNrLCBjb25maWd1cmF0aW9uLCBvcHRpb25zKTtcbiAgICAgICAgcmV0dXJuIGFzeW5jICgpID0+IGhhbmRsZXIodGhpcy5jbGllbnRDb21tYW5kKTtcbiAgICB9XG59XG5cbmNsYXNzIFRyYW5zYWN0R2V0Q29tbWFuZCBleHRlbmRzIER5bmFtb0RCRG9jdW1lbnRDbGllbnRDb21tYW5kIHtcbiAgICBpbnB1dDtcbiAgICBpbnB1dEtleU5vZGVzID0ge1xuICAgICAgICAnVHJhbnNhY3RJdGVtcyc6IHtcbiAgICAgICAgICAgICcqJzoge1xuICAgICAgICAgICAgICAgICdHZXQnOiB7XG4gICAgICAgICAgICAgICAgICAgICdLZXknOiBBTExfVkFMVUVTLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgfTtcbiAgICBvdXRwdXRLZXlOb2RlcyA9IHtcbiAgICAgICAgJ1Jlc3BvbnNlcyc6IHtcbiAgICAgICAgICAgICcqJzoge1xuICAgICAgICAgICAgICAgICdJdGVtJzogQUxMX1ZBTFVFUyxcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICB9O1xuICAgIGNsaWVudENvbW1hbmQ7XG4gICAgbWlkZGxld2FyZVN0YWNrO1xuICAgIGNvbnN0cnVjdG9yKGlucHV0KSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuaW5wdXQgPSBpbnB1dDtcbiAgICAgICAgdGhpcy5jbGllbnRDb21tYW5kID0gbmV3IGNsaWVudER5bmFtb2RiLlRyYW5zYWN0R2V0SXRlbXNDb21tYW5kKHRoaXMuaW5wdXQpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjayA9IHRoaXMuY2xpZW50Q29tbWFuZC5taWRkbGV3YXJlU3RhY2s7XG4gICAgfVxuICAgIHJlc29sdmVNaWRkbGV3YXJlKGNsaWVudFN0YWNrLCBjb25maWd1cmF0aW9uLCBvcHRpb25zKSB7XG4gICAgICAgIHRoaXMuYWRkTWFyc2hhbGxpbmdNaWRkbGV3YXJlKGNvbmZpZ3VyYXRpb24pO1xuICAgICAgICBjb25zdCBzdGFjayA9IGNsaWVudFN0YWNrLmNvbmNhdCh0aGlzLm1pZGRsZXdhcmVTdGFjayk7XG4gICAgICAgIGNvbnN0IGhhbmRsZXIgPSB0aGlzLmNsaWVudENvbW1hbmQucmVzb2x2ZU1pZGRsZXdhcmUoc3RhY2ssIGNvbmZpZ3VyYXRpb24sIG9wdGlvbnMpO1xuICAgICAgICByZXR1cm4gYXN5bmMgKCkgPT4gaGFuZGxlcih0aGlzLmNsaWVudENvbW1hbmQpO1xuICAgIH1cbn1cblxuY2xhc3MgVHJhbnNhY3RXcml0ZUNvbW1hbmQgZXh0ZW5kcyBEeW5hbW9EQkRvY3VtZW50Q2xpZW50Q29tbWFuZCB7XG4gICAgaW5wdXQ7XG4gICAgaW5wdXRLZXlOb2RlcyA9IHtcbiAgICAgICAgJ1RyYW5zYWN0SXRlbXMnOiB7XG4gICAgICAgICAgICAnKic6IHtcbiAgICAgICAgICAgICAgICAnQ29uZGl0aW9uQ2hlY2snOiB7XG4gICAgICAgICAgICAgICAgICAgICdLZXknOiBBTExfVkFMVUVTLFxuICAgICAgICAgICAgICAgICAgICAnRXhwcmVzc2lvbkF0dHJpYnV0ZVZhbHVlcyc6IEFMTF9WQUxVRVMsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAnUHV0Jzoge1xuICAgICAgICAgICAgICAgICAgICAnSXRlbSc6IEFMTF9WQUxVRVMsXG4gICAgICAgICAgICAgICAgICAgICdFeHByZXNzaW9uQXR0cmlidXRlVmFsdWVzJzogQUxMX1ZBTFVFUyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICdEZWxldGUnOiB7XG4gICAgICAgICAgICAgICAgICAgICdLZXknOiBBTExfVkFMVUVTLFxuICAgICAgICAgICAgICAgICAgICAnRXhwcmVzc2lvbkF0dHJpYnV0ZVZhbHVlcyc6IEFMTF9WQUxVRVMsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAnVXBkYXRlJzoge1xuICAgICAgICAgICAgICAgICAgICAnS2V5JzogQUxMX1ZBTFVFUyxcbiAgICAgICAgICAgICAgICAgICAgJ0V4cHJlc3Npb25BdHRyaWJ1dGVWYWx1ZXMnOiBBTExfVkFMVUVTLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgfTtcbiAgICBvdXRwdXRLZXlOb2RlcyA9IHtcbiAgICAgICAgJ0l0ZW1Db2xsZWN0aW9uTWV0cmljcyc6IHtcbiAgICAgICAgICAgICcqJzoge1xuICAgICAgICAgICAgICAgICcqJzoge1xuICAgICAgICAgICAgICAgICAgICAnSXRlbUNvbGxlY3Rpb25LZXknOiBBTExfVkFMVUVTLFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICB9O1xuICAgIGNsaWVudENvbW1hbmQ7XG4gICAgbWlkZGxld2FyZVN0YWNrO1xuICAgIGNvbnN0cnVjdG9yKGlucHV0KSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuaW5wdXQgPSBpbnB1dDtcbiAgICAgICAgdGhpcy5jbGllbnRDb21tYW5kID0gbmV3IGNsaWVudER5bmFtb2RiLlRyYW5zYWN0V3JpdGVJdGVtc0NvbW1hbmQodGhpcy5pbnB1dCk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrID0gdGhpcy5jbGllbnRDb21tYW5kLm1pZGRsZXdhcmVTdGFjaztcbiAgICB9XG4gICAgcmVzb2x2ZU1pZGRsZXdhcmUoY2xpZW50U3RhY2ssIGNvbmZpZ3VyYXRpb24sIG9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5hZGRNYXJzaGFsbGluZ01pZGRsZXdhcmUoY29uZmlndXJhdGlvbik7XG4gICAgICAgIGNvbnN0IHN0YWNrID0gY2xpZW50U3RhY2suY29uY2F0KHRoaXMubWlkZGxld2FyZVN0YWNrKTtcbiAgICAgICAgY29uc3QgaGFuZGxlciA9IHRoaXMuY2xpZW50Q29tbWFuZC5yZXNvbHZlTWlkZGxld2FyZShzdGFjaywgY29uZmlndXJhdGlvbiwgb3B0aW9ucyk7XG4gICAgICAgIHJldHVybiBhc3luYyAoKSA9PiBoYW5kbGVyKHRoaXMuY2xpZW50Q29tbWFuZCk7XG4gICAgfVxufVxuXG5jbGFzcyBVcGRhdGVDb21tYW5kIGV4dGVuZHMgRHluYW1vREJEb2N1bWVudENsaWVudENvbW1hbmQge1xuICAgIGlucHV0O1xuICAgIGlucHV0S2V5Tm9kZXMgPSB7XG4gICAgICAgICdLZXknOiBBTExfVkFMVUVTLFxuICAgICAgICAnQXR0cmlidXRlVXBkYXRlcyc6IHtcbiAgICAgICAgICAgICcqJzoge1xuICAgICAgICAgICAgICAgICdWYWx1ZSc6IFNFTEYsXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgICdFeHBlY3RlZCc6IHtcbiAgICAgICAgICAgICcqJzoge1xuICAgICAgICAgICAgICAgICdWYWx1ZSc6IFNFTEYsXG4gICAgICAgICAgICAgICAgJ0F0dHJpYnV0ZVZhbHVlTGlzdCc6IEFMTF9NRU1CRVJTLFxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICAnRXhwcmVzc2lvbkF0dHJpYnV0ZVZhbHVlcyc6IEFMTF9WQUxVRVMsXG4gICAgfTtcbiAgICBvdXRwdXRLZXlOb2RlcyA9IHtcbiAgICAgICAgJ0F0dHJpYnV0ZXMnOiBBTExfVkFMVUVTLFxuICAgICAgICAnSXRlbUNvbGxlY3Rpb25NZXRyaWNzJzoge1xuICAgICAgICAgICAgJ0l0ZW1Db2xsZWN0aW9uS2V5JzogQUxMX1ZBTFVFUyxcbiAgICAgICAgfSxcbiAgICB9O1xuICAgIGNsaWVudENvbW1hbmQ7XG4gICAgbWlkZGxld2FyZVN0YWNrO1xuICAgIGNvbnN0cnVjdG9yKGlucHV0KSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuaW5wdXQgPSBpbnB1dDtcbiAgICAgICAgdGhpcy5jbGllbnRDb21tYW5kID0gbmV3IGNsaWVudER5bmFtb2RiLlVwZGF0ZUl0ZW1Db21tYW5kKHRoaXMuaW5wdXQpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjayA9IHRoaXMuY2xpZW50Q29tbWFuZC5taWRkbGV3YXJlU3RhY2s7XG4gICAgfVxuICAgIHJlc29sdmVNaWRkbGV3YXJlKGNsaWVudFN0YWNrLCBjb25maWd1cmF0aW9uLCBvcHRpb25zKSB7XG4gICAgICAgIHRoaXMuYWRkTWFyc2hhbGxpbmdNaWRkbGV3YXJlKGNvbmZpZ3VyYXRpb24pO1xuICAgICAgICBjb25zdCBzdGFjayA9IGNsaWVudFN0YWNrLmNvbmNhdCh0aGlzLm1pZGRsZXdhcmVTdGFjayk7XG4gICAgICAgIGNvbnN0IGhhbmRsZXIgPSB0aGlzLmNsaWVudENvbW1hbmQucmVzb2x2ZU1pZGRsZXdhcmUoc3RhY2ssIGNvbmZpZ3VyYXRpb24sIG9wdGlvbnMpO1xuICAgICAgICByZXR1cm4gYXN5bmMgKCkgPT4gaGFuZGxlcih0aGlzLmNsaWVudENvbW1hbmQpO1xuICAgIH1cbn1cblxuY2xhc3MgRHluYW1vREJEb2N1bWVudENsaWVudCBleHRlbmRzIHNtaXRoeUNsaWVudC5DbGllbnQge1xuICAgIGNvbmZpZztcbiAgICBjb25zdHJ1Y3RvcihjbGllbnQsIHRyYW5zbGF0ZUNvbmZpZykge1xuICAgICAgICBzdXBlcihjbGllbnQuY29uZmlnKTtcbiAgICAgICAgdGhpcy5jb25maWcgPSBjbGllbnQuY29uZmlnO1xuICAgICAgICB0aGlzLmNvbmZpZy50cmFuc2xhdGVDb25maWcgPSB0cmFuc2xhdGVDb25maWc7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrID0gY2xpZW50Lm1pZGRsZXdhcmVTdGFjaztcbiAgICAgICAgaWYgKHRoaXMuY29uZmlnPy5jYWNoZU1pZGRsZXdhcmUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkBhd3Mtc2RrL2xpYi1keW5hbW9kYiAtIGNhY2hlTWlkZGxld2FyZT10cnVlIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggdGhlXCJcbiAgICAgICAgICAgICAgICArIFwiIER5bmFtb0RCRG9jdW1lbnRDbGllbnQuIFRoaXMgb3B0aW9uIG11c3QgYmUgc2V0IHRvIGZhbHNlLlwiKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBzdGF0aWMgZnJvbShjbGllbnQsIHRyYW5zbGF0ZUNvbmZpZykge1xuICAgICAgICByZXR1cm4gbmV3IER5bmFtb0RCRG9jdW1lbnRDbGllbnQoY2xpZW50LCB0cmFuc2xhdGVDb25maWcpO1xuICAgIH1cbiAgICBkZXN0cm95KCkge1xuICAgIH1cbn1cblxuY29uc3QgcGFnaW5hdGVRdWVyeSA9IGNvcmUkMS5jcmVhdGVQYWdpbmF0b3IoRHluYW1vREJEb2N1bWVudENsaWVudCwgUXVlcnlDb21tYW5kLCBcIkV4Y2x1c2l2ZVN0YXJ0S2V5XCIsIFwiTGFzdEV2YWx1YXRlZEtleVwiLCBcIkxpbWl0XCIpO1xuXG5jb25zdCBwYWdpbmF0ZVNjYW4gPSBjb3JlJDEuY3JlYXRlUGFnaW5hdG9yKER5bmFtb0RCRG9jdW1lbnRDbGllbnQsIFNjYW5Db21tYW5kLCBcIkV4Y2x1c2l2ZVN0YXJ0S2V5XCIsIFwiTGFzdEV2YWx1YXRlZEtleVwiLCBcIkxpbWl0XCIpO1xuXG5jbGFzcyBEeW5hbW9EQkRvY3VtZW50IGV4dGVuZHMgRHluYW1vREJEb2N1bWVudENsaWVudCB7XG4gICAgc3RhdGljIGZyb20oY2xpZW50LCB0cmFuc2xhdGVDb25maWcpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBEeW5hbW9EQkRvY3VtZW50KGNsaWVudCwgdHJhbnNsYXRlQ29uZmlnKTtcbiAgICB9XG4gICAgYmF0Y2hFeGVjdXRlU3RhdGVtZW50KGFyZ3MsIG9wdGlvbnNPckNiLCBjYikge1xuICAgICAgICBjb25zdCBjb21tYW5kID0gbmV3IEJhdGNoRXhlY3V0ZVN0YXRlbWVudENvbW1hbmQoYXJncyk7XG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9uc09yQ2IgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgdGhpcy5zZW5kKGNvbW1hbmQsIG9wdGlvbnNPckNiKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0eXBlb2YgY2IgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zT3JDYiAhPT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0IGh0dHAgb3B0aW9ucyBidXQgZ2V0ICR7dHlwZW9mIG9wdGlvbnNPckNifWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5zZW5kKGNvbW1hbmQsIG9wdGlvbnNPckNiIHx8IHt9LCBjYik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zZW5kKGNvbW1hbmQsIG9wdGlvbnNPckNiKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBiYXRjaEdldChhcmdzLCBvcHRpb25zT3JDYiwgY2IpIHtcbiAgICAgICAgY29uc3QgY29tbWFuZCA9IG5ldyBCYXRjaEdldENvbW1hbmQoYXJncyk7XG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9uc09yQ2IgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgdGhpcy5zZW5kKGNvbW1hbmQsIG9wdGlvbnNPckNiKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0eXBlb2YgY2IgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zT3JDYiAhPT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0IGh0dHAgb3B0aW9ucyBidXQgZ2V0ICR7dHlwZW9mIG9wdGlvbnNPckNifWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5zZW5kKGNvbW1hbmQsIG9wdGlvbnNPckNiIHx8IHt9LCBjYik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zZW5kKGNvbW1hbmQsIG9wdGlvbnNPckNiKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBiYXRjaFdyaXRlKGFyZ3MsIG9wdGlvbnNPckNiLCBjYikge1xuICAgICAgICBjb25zdCBjb21tYW5kID0gbmV3IEJhdGNoV3JpdGVDb21tYW5kKGFyZ3MpO1xuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnNPckNiID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgIHRoaXMuc2VuZChjb21tYW5kLCBvcHRpb25zT3JDYik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodHlwZW9mIGNiID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygb3B0aW9uc09yQ2IgIT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdCBodHRwIG9wdGlvbnMgYnV0IGdldCAke3R5cGVvZiBvcHRpb25zT3JDYn1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc2VuZChjb21tYW5kLCBvcHRpb25zT3JDYiB8fCB7fSwgY2IpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2VuZChjb21tYW5kLCBvcHRpb25zT3JDYik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZGVsZXRlKGFyZ3MsIG9wdGlvbnNPckNiLCBjYikge1xuICAgICAgICBjb25zdCBjb21tYW5kID0gbmV3IERlbGV0ZUNvbW1hbmQoYXJncyk7XG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9uc09yQ2IgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgdGhpcy5zZW5kKGNvbW1hbmQsIG9wdGlvbnNPckNiKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0eXBlb2YgY2IgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zT3JDYiAhPT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0IGh0dHAgb3B0aW9ucyBidXQgZ2V0ICR7dHlwZW9mIG9wdGlvbnNPckNifWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5zZW5kKGNvbW1hbmQsIG9wdGlvbnNPckNiIHx8IHt9LCBjYik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zZW5kKGNvbW1hbmQsIG9wdGlvbnNPckNiKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBleGVjdXRlU3RhdGVtZW50KGFyZ3MsIG9wdGlvbnNPckNiLCBjYikge1xuICAgICAgICBjb25zdCBjb21tYW5kID0gbmV3IEV4ZWN1dGVTdGF0ZW1lbnRDb21tYW5kKGFyZ3MpO1xuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnNPckNiID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgIHRoaXMuc2VuZChjb21tYW5kLCBvcHRpb25zT3JDYik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodHlwZW9mIGNiID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygb3B0aW9uc09yQ2IgIT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdCBodHRwIG9wdGlvbnMgYnV0IGdldCAke3R5cGVvZiBvcHRpb25zT3JDYn1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc2VuZChjb21tYW5kLCBvcHRpb25zT3JDYiB8fCB7fSwgY2IpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2VuZChjb21tYW5kLCBvcHRpb25zT3JDYik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZXhlY3V0ZVRyYW5zYWN0aW9uKGFyZ3MsIG9wdGlvbnNPckNiLCBjYikge1xuICAgICAgICBjb25zdCBjb21tYW5kID0gbmV3IEV4ZWN1dGVUcmFuc2FjdGlvbkNvbW1hbmQoYXJncyk7XG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9uc09yQ2IgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgdGhpcy5zZW5kKGNvbW1hbmQsIG9wdGlvbnNPckNiKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0eXBlb2YgY2IgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zT3JDYiAhPT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0IGh0dHAgb3B0aW9ucyBidXQgZ2V0ICR7dHlwZW9mIG9wdGlvbnNPckNifWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5zZW5kKGNvbW1hbmQsIG9wdGlvbnNPckNiIHx8IHt9LCBjYik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zZW5kKGNvbW1hbmQsIG9wdGlvbnNPckNiKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXQoYXJncywgb3B0aW9uc09yQ2IsIGNiKSB7XG4gICAgICAgIGNvbnN0IGNvbW1hbmQgPSBuZXcgR2V0Q29tbWFuZChhcmdzKTtcbiAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zT3JDYiA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICB0aGlzLnNlbmQoY29tbWFuZCwgb3B0aW9uc09yQ2IpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHR5cGVvZiBjYiA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnNPckNiICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3QgaHR0cCBvcHRpb25zIGJ1dCBnZXQgJHt0eXBlb2Ygb3B0aW9uc09yQ2J9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnNlbmQoY29tbWFuZCwgb3B0aW9uc09yQ2IgfHwge30sIGNiKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNlbmQoY29tbWFuZCwgb3B0aW9uc09yQ2IpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHB1dChhcmdzLCBvcHRpb25zT3JDYiwgY2IpIHtcbiAgICAgICAgY29uc3QgY29tbWFuZCA9IG5ldyBQdXRDb21tYW5kKGFyZ3MpO1xuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnNPckNiID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgIHRoaXMuc2VuZChjb21tYW5kLCBvcHRpb25zT3JDYik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodHlwZW9mIGNiID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygb3B0aW9uc09yQ2IgIT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdCBodHRwIG9wdGlvbnMgYnV0IGdldCAke3R5cGVvZiBvcHRpb25zT3JDYn1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc2VuZChjb21tYW5kLCBvcHRpb25zT3JDYiB8fCB7fSwgY2IpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2VuZChjb21tYW5kLCBvcHRpb25zT3JDYik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcXVlcnkoYXJncywgb3B0aW9uc09yQ2IsIGNiKSB7XG4gICAgICAgIGNvbnN0IGNvbW1hbmQgPSBuZXcgUXVlcnlDb21tYW5kKGFyZ3MpO1xuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnNPckNiID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgIHRoaXMuc2VuZChjb21tYW5kLCBvcHRpb25zT3JDYik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodHlwZW9mIGNiID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygb3B0aW9uc09yQ2IgIT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdCBodHRwIG9wdGlvbnMgYnV0IGdldCAke3R5cGVvZiBvcHRpb25zT3JDYn1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc2VuZChjb21tYW5kLCBvcHRpb25zT3JDYiB8fCB7fSwgY2IpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2VuZChjb21tYW5kLCBvcHRpb25zT3JDYik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgc2NhbihhcmdzLCBvcHRpb25zT3JDYiwgY2IpIHtcbiAgICAgICAgY29uc3QgY29tbWFuZCA9IG5ldyBTY2FuQ29tbWFuZChhcmdzKTtcbiAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zT3JDYiA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICB0aGlzLnNlbmQoY29tbWFuZCwgb3B0aW9uc09yQ2IpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHR5cGVvZiBjYiA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnNPckNiICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3QgaHR0cCBvcHRpb25zIGJ1dCBnZXQgJHt0eXBlb2Ygb3B0aW9uc09yQ2J9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnNlbmQoY29tbWFuZCwgb3B0aW9uc09yQ2IgfHwge30sIGNiKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNlbmQoY29tbWFuZCwgb3B0aW9uc09yQ2IpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHRyYW5zYWN0R2V0KGFyZ3MsIG9wdGlvbnNPckNiLCBjYikge1xuICAgICAgICBjb25zdCBjb21tYW5kID0gbmV3IFRyYW5zYWN0R2V0Q29tbWFuZChhcmdzKTtcbiAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zT3JDYiA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICB0aGlzLnNlbmQoY29tbWFuZCwgb3B0aW9uc09yQ2IpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHR5cGVvZiBjYiA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnNPckNiICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3QgaHR0cCBvcHRpb25zIGJ1dCBnZXQgJHt0eXBlb2Ygb3B0aW9uc09yQ2J9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnNlbmQoY29tbWFuZCwgb3B0aW9uc09yQ2IgfHwge30sIGNiKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNlbmQoY29tbWFuZCwgb3B0aW9uc09yQ2IpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHRyYW5zYWN0V3JpdGUoYXJncywgb3B0aW9uc09yQ2IsIGNiKSB7XG4gICAgICAgIGNvbnN0IGNvbW1hbmQgPSBuZXcgVHJhbnNhY3RXcml0ZUNvbW1hbmQoYXJncyk7XG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9uc09yQ2IgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgdGhpcy5zZW5kKGNvbW1hbmQsIG9wdGlvbnNPckNiKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0eXBlb2YgY2IgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zT3JDYiAhPT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0IGh0dHAgb3B0aW9ucyBidXQgZ2V0ICR7dHlwZW9mIG9wdGlvbnNPckNifWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5zZW5kKGNvbW1hbmQsIG9wdGlvbnNPckNiIHx8IHt9LCBjYik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zZW5kKGNvbW1hbmQsIG9wdGlvbnNPckNiKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICB1cGRhdGUoYXJncywgb3B0aW9uc09yQ2IsIGNiKSB7XG4gICAgICAgIGNvbnN0IGNvbW1hbmQgPSBuZXcgVXBkYXRlQ29tbWFuZChhcmdzKTtcbiAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zT3JDYiA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICB0aGlzLnNlbmQoY29tbWFuZCwgb3B0aW9uc09yQ2IpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHR5cGVvZiBjYiA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnNPckNiICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3QgaHR0cCBvcHRpb25zIGJ1dCBnZXQgJHt0eXBlb2Ygb3B0aW9uc09yQ2J9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnNlbmQoY29tbWFuZCwgb3B0aW9uc09yQ2IgfHwge30sIGNiKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNlbmQoY29tbWFuZCwgb3B0aW9uc09yQ2IpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCIkQ29tbWFuZFwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHNtaXRoeUNsaWVudC5Db21tYW5kOyB9XG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fQ2xpZW50XCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gc21pdGh5Q2xpZW50LkNsaWVudDsgfVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJOdW1iZXJWYWx1ZVwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHV0aWxEeW5hbW9kYi5OdW1iZXJWYWx1ZUltcGw7IH1cbn0pO1xuZXhwb3J0cy5CYXRjaEV4ZWN1dGVTdGF0ZW1lbnRDb21tYW5kID0gQmF0Y2hFeGVjdXRlU3RhdGVtZW50Q29tbWFuZDtcbmV4cG9ydHMuQmF0Y2hHZXRDb21tYW5kID0gQmF0Y2hHZXRDb21tYW5kO1xuZXhwb3J0cy5CYXRjaFdyaXRlQ29tbWFuZCA9IEJhdGNoV3JpdGVDb21tYW5kO1xuZXhwb3J0cy5EZWxldGVDb21tYW5kID0gRGVsZXRlQ29tbWFuZDtcbmV4cG9ydHMuRHluYW1vREJEb2N1bWVudCA9IER5bmFtb0RCRG9jdW1lbnQ7XG5leHBvcnRzLkR5bmFtb0RCRG9jdW1lbnRDbGllbnQgPSBEeW5hbW9EQkRvY3VtZW50Q2xpZW50O1xuZXhwb3J0cy5EeW5hbW9EQkRvY3VtZW50Q2xpZW50Q29tbWFuZCA9IER5bmFtb0RCRG9jdW1lbnRDbGllbnRDb21tYW5kO1xuZXhwb3J0cy5FeGVjdXRlU3RhdGVtZW50Q29tbWFuZCA9IEV4ZWN1dGVTdGF0ZW1lbnRDb21tYW5kO1xuZXhwb3J0cy5FeGVjdXRlVHJhbnNhY3Rpb25Db21tYW5kID0gRXhlY3V0ZVRyYW5zYWN0aW9uQ29tbWFuZDtcbmV4cG9ydHMuR2V0Q29tbWFuZCA9IEdldENvbW1hbmQ7XG5leHBvcnRzLlB1dENvbW1hbmQgPSBQdXRDb21tYW5kO1xuZXhwb3J0cy5RdWVyeUNvbW1hbmQgPSBRdWVyeUNvbW1hbmQ7XG5leHBvcnRzLlNjYW5Db21tYW5kID0gU2NhbkNvbW1hbmQ7XG5leHBvcnRzLlRyYW5zYWN0R2V0Q29tbWFuZCA9IFRyYW5zYWN0R2V0Q29tbWFuZDtcbmV4cG9ydHMuVHJhbnNhY3RXcml0ZUNvbW1hbmQgPSBUcmFuc2FjdFdyaXRlQ29tbWFuZDtcbmV4cG9ydHMuVXBkYXRlQ29tbWFuZCA9IFVwZGF0ZUNvbW1hbmQ7XG5leHBvcnRzLnBhZ2luYXRlUXVlcnkgPSBwYWdpbmF0ZVF1ZXJ5O1xuZXhwb3J0cy5wYWdpbmF0ZVNjYW4gPSBwYWdpbmF0ZVNjYW47XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgcHJvdG9jb2xIdHRwID0gcmVxdWlyZSgnQHNtaXRoeS9wcm90b2NvbC1odHRwJyk7XG5cbmZ1bmN0aW9uIHJlc29sdmVIb3N0SGVhZGVyQ29uZmlnKGlucHV0KSB7XG4gICAgcmV0dXJuIGlucHV0O1xufVxuY29uc3QgaG9zdEhlYWRlck1pZGRsZXdhcmUgPSAob3B0aW9ucykgPT4gKG5leHQpID0+IGFzeW5jIChhcmdzKSA9PiB7XG4gICAgaWYgKCFwcm90b2NvbEh0dHAuSHR0cFJlcXVlc3QuaXNJbnN0YW5jZShhcmdzLnJlcXVlc3QpKVxuICAgICAgICByZXR1cm4gbmV4dChhcmdzKTtcbiAgICBjb25zdCB7IHJlcXVlc3QgfSA9IGFyZ3M7XG4gICAgY29uc3QgeyBoYW5kbGVyUHJvdG9jb2wgPSBcIlwiIH0gPSBvcHRpb25zLnJlcXVlc3RIYW5kbGVyLm1ldGFkYXRhIHx8IHt9O1xuICAgIGlmIChoYW5kbGVyUHJvdG9jb2wuaW5kZXhPZihcImgyXCIpID49IDAgJiYgIXJlcXVlc3QuaGVhZGVyc1tcIjphdXRob3JpdHlcIl0pIHtcbiAgICAgICAgZGVsZXRlIHJlcXVlc3QuaGVhZGVyc1tcImhvc3RcIl07XG4gICAgICAgIHJlcXVlc3QuaGVhZGVyc1tcIjphdXRob3JpdHlcIl0gPSByZXF1ZXN0Lmhvc3RuYW1lICsgKHJlcXVlc3QucG9ydCA/IFwiOlwiICsgcmVxdWVzdC5wb3J0IDogXCJcIik7XG4gICAgfVxuICAgIGVsc2UgaWYgKCFyZXF1ZXN0LmhlYWRlcnNbXCJob3N0XCJdKSB7XG4gICAgICAgIGxldCBob3N0ID0gcmVxdWVzdC5ob3N0bmFtZTtcbiAgICAgICAgaWYgKHJlcXVlc3QucG9ydCAhPSBudWxsKVxuICAgICAgICAgICAgaG9zdCArPSBgOiR7cmVxdWVzdC5wb3J0fWA7XG4gICAgICAgIHJlcXVlc3QuaGVhZGVyc1tcImhvc3RcIl0gPSBob3N0O1xuICAgIH1cbiAgICByZXR1cm4gbmV4dChhcmdzKTtcbn07XG5jb25zdCBob3N0SGVhZGVyTWlkZGxld2FyZU9wdGlvbnMgPSB7XG4gICAgbmFtZTogXCJob3N0SGVhZGVyTWlkZGxld2FyZVwiLFxuICAgIHN0ZXA6IFwiYnVpbGRcIixcbiAgICBwcmlvcml0eTogXCJsb3dcIixcbiAgICB0YWdzOiBbXCJIT1NUXCJdLFxuICAgIG92ZXJyaWRlOiB0cnVlLFxufTtcbmNvbnN0IGdldEhvc3RIZWFkZXJQbHVnaW4gPSAob3B0aW9ucykgPT4gKHtcbiAgICBhcHBseVRvU3RhY2s6IChjbGllbnRTdGFjaykgPT4ge1xuICAgICAgICBjbGllbnRTdGFjay5hZGQoaG9zdEhlYWRlck1pZGRsZXdhcmUob3B0aW9ucyksIGhvc3RIZWFkZXJNaWRkbGV3YXJlT3B0aW9ucyk7XG4gICAgfSxcbn0pO1xuXG5leHBvcnRzLmdldEhvc3RIZWFkZXJQbHVnaW4gPSBnZXRIb3N0SGVhZGVyUGx1Z2luO1xuZXhwb3J0cy5ob3N0SGVhZGVyTWlkZGxld2FyZSA9IGhvc3RIZWFkZXJNaWRkbGV3YXJlO1xuZXhwb3J0cy5ob3N0SGVhZGVyTWlkZGxld2FyZU9wdGlvbnMgPSBob3N0SGVhZGVyTWlkZGxld2FyZU9wdGlvbnM7XG5leHBvcnRzLnJlc29sdmVIb3N0SGVhZGVyQ29uZmlnID0gcmVzb2x2ZUhvc3RIZWFkZXJDb25maWc7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG5jb25zdCBsb2dnZXJNaWRkbGV3YXJlID0gKCkgPT4gKG5leHQsIGNvbnRleHQpID0+IGFzeW5jIChhcmdzKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBuZXh0KGFyZ3MpO1xuICAgICAgICBjb25zdCB7IGNsaWVudE5hbWUsIGNvbW1hbmROYW1lLCBsb2dnZXIsIGR5bmFtb0RiRG9jdW1lbnRDbGllbnRPcHRpb25zID0ge30gfSA9IGNvbnRleHQ7XG4gICAgICAgIGNvbnN0IHsgb3ZlcnJpZGVJbnB1dEZpbHRlclNlbnNpdGl2ZUxvZywgb3ZlcnJpZGVPdXRwdXRGaWx0ZXJTZW5zaXRpdmVMb2cgfSA9IGR5bmFtb0RiRG9jdW1lbnRDbGllbnRPcHRpb25zO1xuICAgICAgICBjb25zdCBpbnB1dEZpbHRlclNlbnNpdGl2ZUxvZyA9IG92ZXJyaWRlSW5wdXRGaWx0ZXJTZW5zaXRpdmVMb2cgPz8gY29udGV4dC5pbnB1dEZpbHRlclNlbnNpdGl2ZUxvZztcbiAgICAgICAgY29uc3Qgb3V0cHV0RmlsdGVyU2Vuc2l0aXZlTG9nID0gb3ZlcnJpZGVPdXRwdXRGaWx0ZXJTZW5zaXRpdmVMb2cgPz8gY29udGV4dC5vdXRwdXRGaWx0ZXJTZW5zaXRpdmVMb2c7XG4gICAgICAgIGNvbnN0IHsgJG1ldGFkYXRhLCAuLi5vdXRwdXRXaXRob3V0TWV0YWRhdGEgfSA9IHJlc3BvbnNlLm91dHB1dDtcbiAgICAgICAgbG9nZ2VyPy5pbmZvPy4oe1xuICAgICAgICAgICAgY2xpZW50TmFtZSxcbiAgICAgICAgICAgIGNvbW1hbmROYW1lLFxuICAgICAgICAgICAgaW5wdXQ6IGlucHV0RmlsdGVyU2Vuc2l0aXZlTG9nKGFyZ3MuaW5wdXQpLFxuICAgICAgICAgICAgb3V0cHV0OiBvdXRwdXRGaWx0ZXJTZW5zaXRpdmVMb2cob3V0cHV0V2l0aG91dE1ldGFkYXRhKSxcbiAgICAgICAgICAgIG1ldGFkYXRhOiAkbWV0YWRhdGEsXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgfVxuICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zdCB7IGNsaWVudE5hbWUsIGNvbW1hbmROYW1lLCBsb2dnZXIsIGR5bmFtb0RiRG9jdW1lbnRDbGllbnRPcHRpb25zID0ge30gfSA9IGNvbnRleHQ7XG4gICAgICAgIGNvbnN0IHsgb3ZlcnJpZGVJbnB1dEZpbHRlclNlbnNpdGl2ZUxvZyB9ID0gZHluYW1vRGJEb2N1bWVudENsaWVudE9wdGlvbnM7XG4gICAgICAgIGNvbnN0IGlucHV0RmlsdGVyU2Vuc2l0aXZlTG9nID0gb3ZlcnJpZGVJbnB1dEZpbHRlclNlbnNpdGl2ZUxvZyA/PyBjb250ZXh0LmlucHV0RmlsdGVyU2Vuc2l0aXZlTG9nO1xuICAgICAgICBsb2dnZXI/LmVycm9yPy4oe1xuICAgICAgICAgICAgY2xpZW50TmFtZSxcbiAgICAgICAgICAgIGNvbW1hbmROYW1lLFxuICAgICAgICAgICAgaW5wdXQ6IGlucHV0RmlsdGVyU2Vuc2l0aXZlTG9nKGFyZ3MuaW5wdXQpLFxuICAgICAgICAgICAgZXJyb3IsXG4gICAgICAgICAgICBtZXRhZGF0YTogZXJyb3IuJG1ldGFkYXRhLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxufTtcbmNvbnN0IGxvZ2dlck1pZGRsZXdhcmVPcHRpb25zID0ge1xuICAgIG5hbWU6IFwibG9nZ2VyTWlkZGxld2FyZVwiLFxuICAgIHRhZ3M6IFtcIkxPR0dFUlwiXSxcbiAgICBzdGVwOiBcImluaXRpYWxpemVcIixcbiAgICBvdmVycmlkZTogdHJ1ZSxcbn07XG5jb25zdCBnZXRMb2dnZXJQbHVnaW4gPSAob3B0aW9ucykgPT4gKHtcbiAgICBhcHBseVRvU3RhY2s6IChjbGllbnRTdGFjaykgPT4ge1xuICAgICAgICBjbGllbnRTdGFjay5hZGQobG9nZ2VyTWlkZGxld2FyZSgpLCBsb2dnZXJNaWRkbGV3YXJlT3B0aW9ucyk7XG4gICAgfSxcbn0pO1xuXG5leHBvcnRzLmdldExvZ2dlclBsdWdpbiA9IGdldExvZ2dlclBsdWdpbjtcbmV4cG9ydHMubG9nZ2VyTWlkZGxld2FyZSA9IGxvZ2dlck1pZGRsZXdhcmU7XG5leHBvcnRzLmxvZ2dlck1pZGRsZXdhcmVPcHRpb25zID0gbG9nZ2VyTWlkZGxld2FyZU9wdGlvbnM7XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLnJlY3Vyc2lvbkRldGVjdGlvbk1pZGRsZXdhcmUgPSB2b2lkIDA7XG5jb25zdCBsYW1iZGFfaW52b2tlX3N0b3JlXzEgPSByZXF1aXJlKFwiQGF3cy9sYW1iZGEtaW52b2tlLXN0b3JlXCIpO1xuY29uc3QgcHJvdG9jb2xfaHR0cF8xID0gcmVxdWlyZShcIkBzbWl0aHkvcHJvdG9jb2wtaHR0cFwiKTtcbmNvbnN0IFRSQUNFX0lEX0hFQURFUl9OQU1FID0gXCJYLUFtem4tVHJhY2UtSWRcIjtcbmNvbnN0IEVOVl9MQU1CREFfRlVOQ1RJT05fTkFNRSA9IFwiQVdTX0xBTUJEQV9GVU5DVElPTl9OQU1FXCI7XG5jb25zdCBFTlZfVFJBQ0VfSUQgPSBcIl9YX0FNWk5fVFJBQ0VfSURcIjtcbmNvbnN0IHJlY3Vyc2lvbkRldGVjdGlvbk1pZGRsZXdhcmUgPSAoKSA9PiAobmV4dCkgPT4gYXN5bmMgKGFyZ3MpID0+IHtcbiAgICBjb25zdCB7IHJlcXVlc3QgfSA9IGFyZ3M7XG4gICAgaWYgKCFwcm90b2NvbF9odHRwXzEuSHR0cFJlcXVlc3QuaXNJbnN0YW5jZShyZXF1ZXN0KSkge1xuICAgICAgICByZXR1cm4gbmV4dChhcmdzKTtcbiAgICB9XG4gICAgY29uc3QgdHJhY2VJZEhlYWRlciA9IE9iamVjdC5rZXlzKHJlcXVlc3QuaGVhZGVycyA/PyB7fSkuZmluZCgoaCkgPT4gaC50b0xvd2VyQ2FzZSgpID09PSBUUkFDRV9JRF9IRUFERVJfTkFNRS50b0xvd2VyQ2FzZSgpKSA/P1xuICAgICAgICBUUkFDRV9JRF9IRUFERVJfTkFNRTtcbiAgICBpZiAocmVxdWVzdC5oZWFkZXJzLmhhc093blByb3BlcnR5KHRyYWNlSWRIZWFkZXIpKSB7XG4gICAgICAgIHJldHVybiBuZXh0KGFyZ3MpO1xuICAgIH1cbiAgICBjb25zdCBmdW5jdGlvbk5hbWUgPSBwcm9jZXNzLmVudltFTlZfTEFNQkRBX0ZVTkNUSU9OX05BTUVdO1xuICAgIGNvbnN0IHRyYWNlSWRGcm9tRW52ID0gcHJvY2Vzcy5lbnZbRU5WX1RSQUNFX0lEXTtcbiAgICBjb25zdCBpbnZva2VTdG9yZSA9IGF3YWl0IGxhbWJkYV9pbnZva2Vfc3RvcmVfMS5JbnZva2VTdG9yZS5nZXRJbnN0YW5jZUFzeW5jKCk7XG4gICAgY29uc3QgdHJhY2VJZEZyb21JbnZva2VTdG9yZSA9IGludm9rZVN0b3JlPy5nZXRYUmF5VHJhY2VJZCgpO1xuICAgIGNvbnN0IHRyYWNlSWQgPSB0cmFjZUlkRnJvbUludm9rZVN0b3JlID8/IHRyYWNlSWRGcm9tRW52O1xuICAgIGNvbnN0IG5vbkVtcHR5U3RyaW5nID0gKHN0cikgPT4gdHlwZW9mIHN0ciA9PT0gXCJzdHJpbmdcIiAmJiBzdHIubGVuZ3RoID4gMDtcbiAgICBpZiAobm9uRW1wdHlTdHJpbmcoZnVuY3Rpb25OYW1lKSAmJiBub25FbXB0eVN0cmluZyh0cmFjZUlkKSkge1xuICAgICAgICByZXF1ZXN0LmhlYWRlcnNbVFJBQ0VfSURfSEVBREVSX05BTUVdID0gdHJhY2VJZDtcbiAgICB9XG4gICAgcmV0dXJuIG5leHQoe1xuICAgICAgICAuLi5hcmdzLFxuICAgICAgICByZXF1ZXN0LFxuICAgIH0pO1xufTtcbmV4cG9ydHMucmVjdXJzaW9uRGV0ZWN0aW9uTWlkZGxld2FyZSA9IHJlY3Vyc2lvbkRldGVjdGlvbk1pZGRsZXdhcmU7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgcmVjdXJzaW9uRGV0ZWN0aW9uTWlkZGxld2FyZSA9IHJlcXVpcmUoJy4vcmVjdXJzaW9uRGV0ZWN0aW9uTWlkZGxld2FyZScpO1xuXG5jb25zdCByZWN1cnNpb25EZXRlY3Rpb25NaWRkbGV3YXJlT3B0aW9ucyA9IHtcbiAgICBzdGVwOiBcImJ1aWxkXCIsXG4gICAgdGFnczogW1wiUkVDVVJTSU9OX0RFVEVDVElPTlwiXSxcbiAgICBuYW1lOiBcInJlY3Vyc2lvbkRldGVjdGlvbk1pZGRsZXdhcmVcIixcbiAgICBvdmVycmlkZTogdHJ1ZSxcbiAgICBwcmlvcml0eTogXCJsb3dcIixcbn07XG5cbmNvbnN0IGdldFJlY3Vyc2lvbkRldGVjdGlvblBsdWdpbiA9IChvcHRpb25zKSA9PiAoe1xuICAgIGFwcGx5VG9TdGFjazogKGNsaWVudFN0YWNrKSA9PiB7XG4gICAgICAgIGNsaWVudFN0YWNrLmFkZChyZWN1cnNpb25EZXRlY3Rpb25NaWRkbGV3YXJlLnJlY3Vyc2lvbkRldGVjdGlvbk1pZGRsZXdhcmUoKSwgcmVjdXJzaW9uRGV0ZWN0aW9uTWlkZGxld2FyZU9wdGlvbnMpO1xuICAgIH0sXG59KTtcblxuZXhwb3J0cy5nZXRSZWN1cnNpb25EZXRlY3Rpb25QbHVnaW4gPSBnZXRSZWN1cnNpb25EZXRlY3Rpb25QbHVnaW47XG5PYmplY3Qua2V5cyhyZWN1cnNpb25EZXRlY3Rpb25NaWRkbGV3YXJlKS5mb3JFYWNoKGZ1bmN0aW9uIChrKSB7XG4gICAgaWYgKGsgIT09ICdkZWZhdWx0JyAmJiAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGV4cG9ydHMsIGspKSBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgaywge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHJlY3Vyc2lvbkRldGVjdGlvbk1pZGRsZXdhcmVba107IH1cbiAgICB9KTtcbn0pO1xuIiwgIid1c2Ugc3RyaWN0JztcblxudmFyIHV0aWxFbmRwb2ludHMgPSByZXF1aXJlKCdAc21pdGh5L3V0aWwtZW5kcG9pbnRzJyk7XG52YXIgdXJsUGFyc2VyID0gcmVxdWlyZSgnQHNtaXRoeS91cmwtcGFyc2VyJyk7XG5cbmNvbnN0IGlzVmlydHVhbEhvc3RhYmxlUzNCdWNrZXQgPSAodmFsdWUsIGFsbG93U3ViRG9tYWlucyA9IGZhbHNlKSA9PiB7XG4gICAgaWYgKGFsbG93U3ViRG9tYWlucykge1xuICAgICAgICBmb3IgKGNvbnN0IGxhYmVsIG9mIHZhbHVlLnNwbGl0KFwiLlwiKSkge1xuICAgICAgICAgICAgaWYgKCFpc1ZpcnR1YWxIb3N0YWJsZVMzQnVja2V0KGxhYmVsKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKCF1dGlsRW5kcG9pbnRzLmlzVmFsaWRIb3N0TGFiZWwodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKHZhbHVlLmxlbmd0aCA8IDMgfHwgdmFsdWUubGVuZ3RoID4gNjMpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAodmFsdWUgIT09IHZhbHVlLnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAodXRpbEVuZHBvaW50cy5pc0lwQWRkcmVzcyh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbn07XG5cbmNvbnN0IEFSTl9ERUxJTUlURVIgPSBcIjpcIjtcbmNvbnN0IFJFU09VUkNFX0RFTElNSVRFUiA9IFwiL1wiO1xuY29uc3QgcGFyc2VBcm4gPSAodmFsdWUpID0+IHtcbiAgICBjb25zdCBzZWdtZW50cyA9IHZhbHVlLnNwbGl0KEFSTl9ERUxJTUlURVIpO1xuICAgIGlmIChzZWdtZW50cy5sZW5ndGggPCA2KVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICBjb25zdCBbYXJuLCBwYXJ0aXRpb24sIHNlcnZpY2UsIHJlZ2lvbiwgYWNjb3VudElkLCAuLi5yZXNvdXJjZVBhdGhdID0gc2VnbWVudHM7XG4gICAgaWYgKGFybiAhPT0gXCJhcm5cIiB8fCBwYXJ0aXRpb24gPT09IFwiXCIgfHwgc2VydmljZSA9PT0gXCJcIiB8fCByZXNvdXJjZVBhdGguam9pbihBUk5fREVMSU1JVEVSKSA9PT0gXCJcIilcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgcmVzb3VyY2VJZCA9IHJlc291cmNlUGF0aC5tYXAoKHJlc291cmNlKSA9PiByZXNvdXJjZS5zcGxpdChSRVNPVVJDRV9ERUxJTUlURVIpKS5mbGF0KCk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcGFydGl0aW9uLFxuICAgICAgICBzZXJ2aWNlLFxuICAgICAgICByZWdpb24sXG4gICAgICAgIGFjY291bnRJZCxcbiAgICAgICAgcmVzb3VyY2VJZCxcbiAgICB9O1xufTtcblxudmFyIHBhcnRpdGlvbnMgPSBbXG5cdHtcblx0XHRpZDogXCJhd3NcIixcblx0XHRvdXRwdXRzOiB7XG5cdFx0XHRkbnNTdWZmaXg6IFwiYW1hem9uYXdzLmNvbVwiLFxuXHRcdFx0ZHVhbFN0YWNrRG5zU3VmZml4OiBcImFwaS5hd3NcIixcblx0XHRcdGltcGxpY2l0R2xvYmFsUmVnaW9uOiBcInVzLWVhc3QtMVwiLFxuXHRcdFx0bmFtZTogXCJhd3NcIixcblx0XHRcdHN1cHBvcnRzRHVhbFN0YWNrOiB0cnVlLFxuXHRcdFx0c3VwcG9ydHNGSVBTOiB0cnVlXG5cdFx0fSxcblx0XHRyZWdpb25SZWdleDogXCJeKHVzfGV1fGFwfHNhfGNhfG1lfGFmfGlsfG14KVxcXFwtXFxcXHcrXFxcXC1cXFxcZCskXCIsXG5cdFx0cmVnaW9uczoge1xuXHRcdFx0XCJhZi1zb3V0aC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQWZyaWNhIChDYXBlIFRvd24pXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLWVhc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFzaWEgUGFjaWZpYyAoSG9uZyBLb25nKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJhcC1lYXN0LTJcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBc2lhIFBhY2lmaWMgKFRhaXBlaSlcIlxuXHRcdFx0fSxcblx0XHRcdFwiYXAtbm9ydGhlYXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBc2lhIFBhY2lmaWMgKFRva3lvKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJhcC1ub3J0aGVhc3QtMlwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFzaWEgUGFjaWZpYyAoU2VvdWwpXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLW5vcnRoZWFzdC0zXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChPc2FrYSlcIlxuXHRcdFx0fSxcblx0XHRcdFwiYXAtc291dGgtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFzaWEgUGFjaWZpYyAoTXVtYmFpKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJhcC1zb3V0aC0yXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChIeWRlcmFiYWQpXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLXNvdXRoZWFzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChTaW5nYXBvcmUpXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLXNvdXRoZWFzdC0yXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChTeWRuZXkpXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLXNvdXRoZWFzdC0zXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChKYWthcnRhKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJhcC1zb3V0aGVhc3QtNFwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFzaWEgUGFjaWZpYyAoTWVsYm91cm5lKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJhcC1zb3V0aGVhc3QtNVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFzaWEgUGFjaWZpYyAoTWFsYXlzaWEpXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLXNvdXRoZWFzdC02XCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChOZXcgWmVhbGFuZClcIlxuXHRcdFx0fSxcblx0XHRcdFwiYXAtc291dGhlYXN0LTdcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBc2lhIFBhY2lmaWMgKFRoYWlsYW5kKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJhd3MtZ2xvYmFsXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiYXdzIGdsb2JhbCByZWdpb25cIlxuXHRcdFx0fSxcblx0XHRcdFwiY2EtY2VudHJhbC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQ2FuYWRhIChDZW50cmFsKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJjYS13ZXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJDYW5hZGEgV2VzdCAoQ2FsZ2FyeSlcIlxuXHRcdFx0fSxcblx0XHRcdFwiZXUtY2VudHJhbC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiRXVyb3BlIChGcmFua2Z1cnQpXCJcblx0XHRcdH0sXG5cdFx0XHRcImV1LWNlbnRyYWwtMlwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkV1cm9wZSAoWnVyaWNoKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJldS1ub3J0aC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiRXVyb3BlIChTdG9ja2hvbG0pXCJcblx0XHRcdH0sXG5cdFx0XHRcImV1LXNvdXRoLTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJFdXJvcGUgKE1pbGFuKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJldS1zb3V0aC0yXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiRXVyb3BlIChTcGFpbilcIlxuXHRcdFx0fSxcblx0XHRcdFwiZXUtd2VzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiRXVyb3BlIChJcmVsYW5kKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJldS13ZXN0LTJcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJFdXJvcGUgKExvbmRvbilcIlxuXHRcdFx0fSxcblx0XHRcdFwiZXUtd2VzdC0zXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiRXVyb3BlIChQYXJpcylcIlxuXHRcdFx0fSxcblx0XHRcdFwiaWwtY2VudHJhbC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiSXNyYWVsIChUZWwgQXZpdilcIlxuXHRcdFx0fSxcblx0XHRcdFwibWUtY2VudHJhbC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiTWlkZGxlIEVhc3QgKFVBRSlcIlxuXHRcdFx0fSxcblx0XHRcdFwibWUtc291dGgtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIk1pZGRsZSBFYXN0IChCYWhyYWluKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJteC1jZW50cmFsLTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJNZXhpY28gKENlbnRyYWwpXCJcblx0XHRcdH0sXG5cdFx0XHRcInNhLWVhc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIlNvdXRoIEFtZXJpY2EgKFNhbyBQYXVsbylcIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtZWFzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiVVMgRWFzdCAoTi4gVmlyZ2luaWEpXCJcblx0XHRcdH0sXG5cdFx0XHRcInVzLWVhc3QtMlwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIlVTIEVhc3QgKE9oaW8pXCJcblx0XHRcdH0sXG5cdFx0XHRcInVzLXdlc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIlVTIFdlc3QgKE4uIENhbGlmb3JuaWEpXCJcblx0XHRcdH0sXG5cdFx0XHRcInVzLXdlc3QtMlwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIlVTIFdlc3QgKE9yZWdvbilcIlxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0e1xuXHRcdGlkOiBcImF3cy1jblwiLFxuXHRcdG91dHB1dHM6IHtcblx0XHRcdGRuc1N1ZmZpeDogXCJhbWF6b25hd3MuY29tLmNuXCIsXG5cdFx0XHRkdWFsU3RhY2tEbnNTdWZmaXg6IFwiYXBpLmFtYXpvbndlYnNlcnZpY2VzLmNvbS5jblwiLFxuXHRcdFx0aW1wbGljaXRHbG9iYWxSZWdpb246IFwiY24tbm9ydGh3ZXN0LTFcIixcblx0XHRcdG5hbWU6IFwiYXdzLWNuXCIsXG5cdFx0XHRzdXBwb3J0c0R1YWxTdGFjazogdHJ1ZSxcblx0XHRcdHN1cHBvcnRzRklQUzogdHJ1ZVxuXHRcdH0sXG5cdFx0cmVnaW9uUmVnZXg6IFwiXmNuXFxcXC1cXFxcdytcXFxcLVxcXFxkKyRcIixcblx0XHRyZWdpb25zOiB7XG5cdFx0XHRcImF3cy1jbi1nbG9iYWxcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJhd3MtY24gZ2xvYmFsIHJlZ2lvblwiXG5cdFx0XHR9LFxuXHRcdFx0XCJjbi1ub3J0aC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQ2hpbmEgKEJlaWppbmcpXCJcblx0XHRcdH0sXG5cdFx0XHRcImNuLW5vcnRod2VzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQ2hpbmEgKE5pbmd4aWEpXCJcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdHtcblx0XHRpZDogXCJhd3MtZXVzY1wiLFxuXHRcdG91dHB1dHM6IHtcblx0XHRcdGRuc1N1ZmZpeDogXCJhbWF6b25hd3MuZXVcIixcblx0XHRcdGR1YWxTdGFja0Ruc1N1ZmZpeDogXCJhcGkuYW1hem9ud2Vic2VydmljZXMuZXVcIixcblx0XHRcdGltcGxpY2l0R2xvYmFsUmVnaW9uOiBcImV1c2MtZGUtZWFzdC0xXCIsXG5cdFx0XHRuYW1lOiBcImF3cy1ldXNjXCIsXG5cdFx0XHRzdXBwb3J0c0R1YWxTdGFjazogdHJ1ZSxcblx0XHRcdHN1cHBvcnRzRklQUzogdHJ1ZVxuXHRcdH0sXG5cdFx0cmVnaW9uUmVnZXg6IFwiXmV1c2NcXFxcLShkZSlcXFxcLVxcXFx3K1xcXFwtXFxcXGQrJFwiLFxuXHRcdHJlZ2lvbnM6IHtcblx0XHRcdFwiZXVzYy1kZS1lYXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJFVSAoR2VybWFueSlcIlxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0e1xuXHRcdGlkOiBcImF3cy1pc29cIixcblx0XHRvdXRwdXRzOiB7XG5cdFx0XHRkbnNTdWZmaXg6IFwiYzJzLmljLmdvdlwiLFxuXHRcdFx0ZHVhbFN0YWNrRG5zU3VmZml4OiBcImFwaS5hd3MuaWMuZ292XCIsXG5cdFx0XHRpbXBsaWNpdEdsb2JhbFJlZ2lvbjogXCJ1cy1pc28tZWFzdC0xXCIsXG5cdFx0XHRuYW1lOiBcImF3cy1pc29cIixcblx0XHRcdHN1cHBvcnRzRHVhbFN0YWNrOiB0cnVlLFxuXHRcdFx0c3VwcG9ydHNGSVBTOiB0cnVlXG5cdFx0fSxcblx0XHRyZWdpb25SZWdleDogXCJedXNcXFxcLWlzb1xcXFwtXFxcXHcrXFxcXC1cXFxcZCskXCIsXG5cdFx0cmVnaW9uczoge1xuXHRcdFx0XCJhd3MtaXNvLWdsb2JhbFwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcImF3cy1pc28gZ2xvYmFsIHJlZ2lvblwiXG5cdFx0XHR9LFxuXHRcdFx0XCJ1cy1pc28tZWFzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiVVMgSVNPIEVhc3RcIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtaXNvLXdlc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIlVTIElTTyBXRVNUXCJcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdHtcblx0XHRpZDogXCJhd3MtaXNvLWJcIixcblx0XHRvdXRwdXRzOiB7XG5cdFx0XHRkbnNTdWZmaXg6IFwic2Mycy5zZ292LmdvdlwiLFxuXHRcdFx0ZHVhbFN0YWNrRG5zU3VmZml4OiBcImFwaS5hd3Muc2Nsb3VkXCIsXG5cdFx0XHRpbXBsaWNpdEdsb2JhbFJlZ2lvbjogXCJ1cy1pc29iLWVhc3QtMVwiLFxuXHRcdFx0bmFtZTogXCJhd3MtaXNvLWJcIixcblx0XHRcdHN1cHBvcnRzRHVhbFN0YWNrOiB0cnVlLFxuXHRcdFx0c3VwcG9ydHNGSVBTOiB0cnVlXG5cdFx0fSxcblx0XHRyZWdpb25SZWdleDogXCJedXNcXFxcLWlzb2JcXFxcLVxcXFx3K1xcXFwtXFxcXGQrJFwiLFxuXHRcdHJlZ2lvbnM6IHtcblx0XHRcdFwiYXdzLWlzby1iLWdsb2JhbFwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcImF3cy1pc28tYiBnbG9iYWwgcmVnaW9uXCJcblx0XHRcdH0sXG5cdFx0XHRcInVzLWlzb2ItZWFzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiVVMgSVNPQiBFYXN0IChPaGlvKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJ1cy1pc29iLXdlc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIlVTIElTT0IgV2VzdFwiXG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXHR7XG5cdFx0aWQ6IFwiYXdzLWlzby1lXCIsXG5cdFx0b3V0cHV0czoge1xuXHRcdFx0ZG5zU3VmZml4OiBcImNsb3VkLmFkYy1lLnVrXCIsXG5cdFx0XHRkdWFsU3RhY2tEbnNTdWZmaXg6IFwiYXBpLmNsb3VkLWF3cy5hZGMtZS51a1wiLFxuXHRcdFx0aW1wbGljaXRHbG9iYWxSZWdpb246IFwiZXUtaXNvZS13ZXN0LTFcIixcblx0XHRcdG5hbWU6IFwiYXdzLWlzby1lXCIsXG5cdFx0XHRzdXBwb3J0c0R1YWxTdGFjazogdHJ1ZSxcblx0XHRcdHN1cHBvcnRzRklQUzogdHJ1ZVxuXHRcdH0sXG5cdFx0cmVnaW9uUmVnZXg6IFwiXmV1XFxcXC1pc29lXFxcXC1cXFxcdytcXFxcLVxcXFxkKyRcIixcblx0XHRyZWdpb25zOiB7XG5cdFx0XHRcImF3cy1pc28tZS1nbG9iYWxcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJhd3MtaXNvLWUgZ2xvYmFsIHJlZ2lvblwiXG5cdFx0XHR9LFxuXHRcdFx0XCJldS1pc29lLXdlc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkVVIElTT0UgV2VzdFwiXG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXHR7XG5cdFx0aWQ6IFwiYXdzLWlzby1mXCIsXG5cdFx0b3V0cHV0czoge1xuXHRcdFx0ZG5zU3VmZml4OiBcImNzcC5oY2kuaWMuZ292XCIsXG5cdFx0XHRkdWFsU3RhY2tEbnNTdWZmaXg6IFwiYXBpLmF3cy5oY2kuaWMuZ292XCIsXG5cdFx0XHRpbXBsaWNpdEdsb2JhbFJlZ2lvbjogXCJ1cy1pc29mLXNvdXRoLTFcIixcblx0XHRcdG5hbWU6IFwiYXdzLWlzby1mXCIsXG5cdFx0XHRzdXBwb3J0c0R1YWxTdGFjazogdHJ1ZSxcblx0XHRcdHN1cHBvcnRzRklQUzogdHJ1ZVxuXHRcdH0sXG5cdFx0cmVnaW9uUmVnZXg6IFwiXnVzXFxcXC1pc29mXFxcXC1cXFxcdytcXFxcLVxcXFxkKyRcIixcblx0XHRyZWdpb25zOiB7XG5cdFx0XHRcImF3cy1pc28tZi1nbG9iYWxcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJhd3MtaXNvLWYgZ2xvYmFsIHJlZ2lvblwiXG5cdFx0XHR9LFxuXHRcdFx0XCJ1cy1pc29mLWVhc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIlVTIElTT0YgRUFTVFwiXG5cdFx0XHR9LFxuXHRcdFx0XCJ1cy1pc29mLXNvdXRoLTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJVUyBJU09GIFNPVVRIXCJcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdHtcblx0XHRpZDogXCJhd3MtdXMtZ292XCIsXG5cdFx0b3V0cHV0czoge1xuXHRcdFx0ZG5zU3VmZml4OiBcImFtYXpvbmF3cy5jb21cIixcblx0XHRcdGR1YWxTdGFja0Ruc1N1ZmZpeDogXCJhcGkuYXdzXCIsXG5cdFx0XHRpbXBsaWNpdEdsb2JhbFJlZ2lvbjogXCJ1cy1nb3Ytd2VzdC0xXCIsXG5cdFx0XHRuYW1lOiBcImF3cy11cy1nb3ZcIixcblx0XHRcdHN1cHBvcnRzRHVhbFN0YWNrOiB0cnVlLFxuXHRcdFx0c3VwcG9ydHNGSVBTOiB0cnVlXG5cdFx0fSxcblx0XHRyZWdpb25SZWdleDogXCJedXNcXFxcLWdvdlxcXFwtXFxcXHcrXFxcXC1cXFxcZCskXCIsXG5cdFx0cmVnaW9uczoge1xuXHRcdFx0XCJhd3MtdXMtZ292LWdsb2JhbFwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcImF3cy11cy1nb3YgZ2xvYmFsIHJlZ2lvblwiXG5cdFx0XHR9LFxuXHRcdFx0XCJ1cy1nb3YtZWFzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQVdTIEdvdkNsb3VkIChVUy1FYXN0KVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJ1cy1nb3Ytd2VzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQVdTIEdvdkNsb3VkIChVUy1XZXN0KVwiXG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5dO1xudmFyIHZlcnNpb24gPSBcIjEuMVwiO1xudmFyIHBhcnRpdGlvbnNJbmZvID0ge1xuXHRwYXJ0aXRpb25zOiBwYXJ0aXRpb25zLFxuXHR2ZXJzaW9uOiB2ZXJzaW9uXG59O1xuXG5sZXQgc2VsZWN0ZWRQYXJ0aXRpb25zSW5mbyA9IHBhcnRpdGlvbnNJbmZvO1xubGV0IHNlbGVjdGVkVXNlckFnZW50UHJlZml4ID0gXCJcIjtcbmNvbnN0IHBhcnRpdGlvbiA9ICh2YWx1ZSkgPT4ge1xuICAgIGNvbnN0IHsgcGFydGl0aW9ucyB9ID0gc2VsZWN0ZWRQYXJ0aXRpb25zSW5mbztcbiAgICBmb3IgKGNvbnN0IHBhcnRpdGlvbiBvZiBwYXJ0aXRpb25zKSB7XG4gICAgICAgIGNvbnN0IHsgcmVnaW9ucywgb3V0cHV0cyB9ID0gcGFydGl0aW9uO1xuICAgICAgICBmb3IgKGNvbnN0IFtyZWdpb24sIHJlZ2lvbkRhdGFdIG9mIE9iamVjdC5lbnRyaWVzKHJlZ2lvbnMpKSB7XG4gICAgICAgICAgICBpZiAocmVnaW9uID09PSB2YWx1ZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIC4uLm91dHB1dHMsXG4gICAgICAgICAgICAgICAgICAgIC4uLnJlZ2lvbkRhdGEsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBmb3IgKGNvbnN0IHBhcnRpdGlvbiBvZiBwYXJ0aXRpb25zKSB7XG4gICAgICAgIGNvbnN0IHsgcmVnaW9uUmVnZXgsIG91dHB1dHMgfSA9IHBhcnRpdGlvbjtcbiAgICAgICAgaWYgKG5ldyBSZWdFeHAocmVnaW9uUmVnZXgpLnRlc3QodmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIC4uLm91dHB1dHMsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfVxuICAgIGNvbnN0IERFRkFVTFRfUEFSVElUSU9OID0gcGFydGl0aW9ucy5maW5kKChwYXJ0aXRpb24pID0+IHBhcnRpdGlvbi5pZCA9PT0gXCJhd3NcIik7XG4gICAgaWYgKCFERUZBVUxUX1BBUlRJVElPTikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJQcm92aWRlZCByZWdpb24gd2FzIG5vdCBmb3VuZCBpbiB0aGUgcGFydGl0aW9uIGFycmF5IG9yIHJlZ2V4LFwiICtcbiAgICAgICAgICAgIFwiIGFuZCBkZWZhdWx0IHBhcnRpdGlvbiB3aXRoIGlkICdhd3MnIGRvZXNuJ3QgZXhpc3QuXCIpO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICAuLi5ERUZBVUxUX1BBUlRJVElPTi5vdXRwdXRzLFxuICAgIH07XG59O1xuY29uc3Qgc2V0UGFydGl0aW9uSW5mbyA9IChwYXJ0aXRpb25zSW5mbywgdXNlckFnZW50UHJlZml4ID0gXCJcIikgPT4ge1xuICAgIHNlbGVjdGVkUGFydGl0aW9uc0luZm8gPSBwYXJ0aXRpb25zSW5mbztcbiAgICBzZWxlY3RlZFVzZXJBZ2VudFByZWZpeCA9IHVzZXJBZ2VudFByZWZpeDtcbn07XG5jb25zdCB1c2VEZWZhdWx0UGFydGl0aW9uSW5mbyA9ICgpID0+IHtcbiAgICBzZXRQYXJ0aXRpb25JbmZvKHBhcnRpdGlvbnNJbmZvLCBcIlwiKTtcbn07XG5jb25zdCBnZXRVc2VyQWdlbnRQcmVmaXggPSAoKSA9PiBzZWxlY3RlZFVzZXJBZ2VudFByZWZpeDtcblxuY29uc3QgYXdzRW5kcG9pbnRGdW5jdGlvbnMgPSB7XG4gICAgaXNWaXJ0dWFsSG9zdGFibGVTM0J1Y2tldDogaXNWaXJ0dWFsSG9zdGFibGVTM0J1Y2tldCxcbiAgICBwYXJzZUFybjogcGFyc2VBcm4sXG4gICAgcGFydGl0aW9uOiBwYXJ0aXRpb24sXG59O1xudXRpbEVuZHBvaW50cy5jdXN0b21FbmRwb2ludEZ1bmN0aW9ucy5hd3MgPSBhd3NFbmRwb2ludEZ1bmN0aW9ucztcblxuY29uc3QgcmVzb2x2ZURlZmF1bHRBd3NSZWdpb25hbEVuZHBvaW50c0NvbmZpZyA9IChpbnB1dCkgPT4ge1xuICAgIGlmICh0eXBlb2YgaW5wdXQuZW5kcG9pbnRQcm92aWRlciAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkBhd3Mtc2RrL3V0aWwtZW5kcG9pbnQgLSBlbmRwb2ludFByb3ZpZGVyIGFuZCBlbmRwb2ludCBtaXNzaW5nIGluIGNvbmZpZyBmb3IgdGhpcyBjbGllbnQuXCIpO1xuICAgIH1cbiAgICBjb25zdCB7IGVuZHBvaW50IH0gPSBpbnB1dDtcbiAgICBpZiAoZW5kcG9pbnQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBpbnB1dC5lbmRwb2ludCA9IGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB0b0VuZHBvaW50VjEoaW5wdXQuZW5kcG9pbnRQcm92aWRlcih7XG4gICAgICAgICAgICAgICAgUmVnaW9uOiB0eXBlb2YgaW5wdXQucmVnaW9uID09PSBcImZ1bmN0aW9uXCIgPyBhd2FpdCBpbnB1dC5yZWdpb24oKSA6IGlucHV0LnJlZ2lvbixcbiAgICAgICAgICAgICAgICBVc2VEdWFsU3RhY2s6IHR5cGVvZiBpbnB1dC51c2VEdWFsc3RhY2tFbmRwb2ludCA9PT0gXCJmdW5jdGlvblwiXG4gICAgICAgICAgICAgICAgICAgID8gYXdhaXQgaW5wdXQudXNlRHVhbHN0YWNrRW5kcG9pbnQoKVxuICAgICAgICAgICAgICAgICAgICA6IGlucHV0LnVzZUR1YWxzdGFja0VuZHBvaW50LFxuICAgICAgICAgICAgICAgIFVzZUZJUFM6IHR5cGVvZiBpbnB1dC51c2VGaXBzRW5kcG9pbnQgPT09IFwiZnVuY3Rpb25cIiA/IGF3YWl0IGlucHV0LnVzZUZpcHNFbmRwb2ludCgpIDogaW5wdXQudXNlRmlwc0VuZHBvaW50LFxuICAgICAgICAgICAgICAgIEVuZHBvaW50OiB1bmRlZmluZWQsXG4gICAgICAgICAgICB9LCB7IGxvZ2dlcjogaW5wdXQubG9nZ2VyIH0pKTtcbiAgICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIGlucHV0O1xufTtcbmNvbnN0IHRvRW5kcG9pbnRWMSA9IChlbmRwb2ludCkgPT4gdXJsUGFyc2VyLnBhcnNlVXJsKGVuZHBvaW50LnVybCk7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIkVuZHBvaW50RXJyb3JcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiB1dGlsRW5kcG9pbnRzLkVuZHBvaW50RXJyb3I7IH1cbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiaXNJcEFkZHJlc3NcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiB1dGlsRW5kcG9pbnRzLmlzSXBBZGRyZXNzOyB9XG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcInJlc29sdmVFbmRwb2ludFwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHV0aWxFbmRwb2ludHMucmVzb2x2ZUVuZHBvaW50OyB9XG59KTtcbmV4cG9ydHMuYXdzRW5kcG9pbnRGdW5jdGlvbnMgPSBhd3NFbmRwb2ludEZ1bmN0aW9ucztcbmV4cG9ydHMuZ2V0VXNlckFnZW50UHJlZml4ID0gZ2V0VXNlckFnZW50UHJlZml4O1xuZXhwb3J0cy5wYXJ0aXRpb24gPSBwYXJ0aXRpb247XG5leHBvcnRzLnJlc29sdmVEZWZhdWx0QXdzUmVnaW9uYWxFbmRwb2ludHNDb25maWcgPSByZXNvbHZlRGVmYXVsdEF3c1JlZ2lvbmFsRW5kcG9pbnRzQ29uZmlnO1xuZXhwb3J0cy5zZXRQYXJ0aXRpb25JbmZvID0gc2V0UGFydGl0aW9uSW5mbztcbmV4cG9ydHMudG9FbmRwb2ludFYxID0gdG9FbmRwb2ludFYxO1xuZXhwb3J0cy51c2VEZWZhdWx0UGFydGl0aW9uSW5mbyA9IHVzZURlZmF1bHRQYXJ0aXRpb25JbmZvO1xuIiwgImV4cG9ydCBjb25zdCBzdGF0ZSA9IHtcbiAgICB3YXJuaW5nRW1pdHRlZDogZmFsc2UsXG59O1xuZXhwb3J0IGNvbnN0IGVtaXRXYXJuaW5nSWZVbnN1cHBvcnRlZFZlcnNpb24gPSAodmVyc2lvbikgPT4ge1xuICAgIGlmICh2ZXJzaW9uICYmICFzdGF0ZS53YXJuaW5nRW1pdHRlZCAmJiBwYXJzZUludCh2ZXJzaW9uLnN1YnN0cmluZygxLCB2ZXJzaW9uLmluZGV4T2YoXCIuXCIpKSkgPCAyMCkge1xuICAgICAgICBzdGF0ZS53YXJuaW5nRW1pdHRlZCA9IHRydWU7XG4gICAgICAgIHByb2Nlc3MuZW1pdFdhcm5pbmcoYE5vZGVEZXByZWNhdGlvbldhcm5pbmc6IFRoZSBBV1MgU0RLIGZvciBKYXZhU2NyaXB0ICh2Mykgd2lsbFxubm8gbG9uZ2VyIHN1cHBvcnQgTm9kZS5qcyAke3ZlcnNpb259IGluIEphbnVhcnkgMjAyNi5cblxuVG8gY29udGludWUgcmVjZWl2aW5nIHVwZGF0ZXMgdG8gQVdTIHNlcnZpY2VzLCBidWcgZml4ZXMsIGFuZCBzZWN1cml0eVxudXBkYXRlcyBwbGVhc2UgdXBncmFkZSB0byBhIHN1cHBvcnRlZCBOb2RlLmpzIExUUyB2ZXJzaW9uLlxuXG5Nb3JlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBhdDogaHR0cHM6Ly9hLmNvL2M4OTVKRnBgKTtcbiAgICB9XG59O1xuIiwgImV4cG9ydCBmdW5jdGlvbiBzZXRDcmVkZW50aWFsRmVhdHVyZShjcmVkZW50aWFscywgZmVhdHVyZSwgdmFsdWUpIHtcbiAgICBpZiAoIWNyZWRlbnRpYWxzLiRzb3VyY2UpIHtcbiAgICAgICAgY3JlZGVudGlhbHMuJHNvdXJjZSA9IHt9O1xuICAgIH1cbiAgICBjcmVkZW50aWFscy4kc291cmNlW2ZlYXR1cmVdID0gdmFsdWU7XG4gICAgcmV0dXJuIGNyZWRlbnRpYWxzO1xufVxuIiwgImV4cG9ydCBmdW5jdGlvbiBzZXRGZWF0dXJlKGNvbnRleHQsIGZlYXR1cmUsIHZhbHVlKSB7XG4gICAgaWYgKCFjb250ZXh0Ll9fYXdzX3Nka19jb250ZXh0KSB7XG4gICAgICAgIGNvbnRleHQuX19hd3Nfc2RrX2NvbnRleHQgPSB7XG4gICAgICAgICAgICBmZWF0dXJlczoge30sXG4gICAgICAgIH07XG4gICAgfVxuICAgIGVsc2UgaWYgKCFjb250ZXh0Ll9fYXdzX3Nka19jb250ZXh0LmZlYXR1cmVzKSB7XG4gICAgICAgIGNvbnRleHQuX19hd3Nfc2RrX2NvbnRleHQuZmVhdHVyZXMgPSB7fTtcbiAgICB9XG4gICAgY29udGV4dC5fX2F3c19zZGtfY29udGV4dC5mZWF0dXJlc1tmZWF0dXJlXSA9IHZhbHVlO1xufVxuIiwgImV4cG9ydCBmdW5jdGlvbiBzZXRUb2tlbkZlYXR1cmUodG9rZW4sIGZlYXR1cmUsIHZhbHVlKSB7XG4gICAgaWYgKCF0b2tlbi4kc291cmNlKSB7XG4gICAgICAgIHRva2VuLiRzb3VyY2UgPSB7fTtcbiAgICB9XG4gICAgdG9rZW4uJHNvdXJjZVtmZWF0dXJlXSA9IHZhbHVlO1xuICAgIHJldHVybiB0b2tlbjtcbn1cbiIsICJleHBvcnQgKiBmcm9tIFwiLi9lbWl0V2FybmluZ0lmVW5zdXBwb3J0ZWRWZXJzaW9uXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zZXRDcmVkZW50aWFsRmVhdHVyZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc2V0RmVhdHVyZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc2V0VG9rZW5GZWF0dXJlXCI7XG4iLCAiaW1wb3J0IHsgSHR0cFJlc3BvbnNlIH0gZnJvbSBcIkBzbWl0aHkvcHJvdG9jb2wtaHR0cFwiO1xuZXhwb3J0IGNvbnN0IGdldERhdGVIZWFkZXIgPSAocmVzcG9uc2UpID0+IEh0dHBSZXNwb25zZS5pc0luc3RhbmNlKHJlc3BvbnNlKSA/IHJlc3BvbnNlLmhlYWRlcnM/LmRhdGUgPz8gcmVzcG9uc2UuaGVhZGVycz8uRGF0ZSA6IHVuZGVmaW5lZDtcbiIsICJleHBvcnQgY29uc3QgZ2V0U2tld0NvcnJlY3RlZERhdGUgPSAoc3lzdGVtQ2xvY2tPZmZzZXQpID0+IG5ldyBEYXRlKERhdGUubm93KCkgKyBzeXN0ZW1DbG9ja09mZnNldCk7XG4iLCAiaW1wb3J0IHsgZ2V0U2tld0NvcnJlY3RlZERhdGUgfSBmcm9tIFwiLi9nZXRTa2V3Q29ycmVjdGVkRGF0ZVwiO1xuZXhwb3J0IGNvbnN0IGlzQ2xvY2tTa2V3ZWQgPSAoY2xvY2tUaW1lLCBzeXN0ZW1DbG9ja09mZnNldCkgPT4gTWF0aC5hYnMoZ2V0U2tld0NvcnJlY3RlZERhdGUoc3lzdGVtQ2xvY2tPZmZzZXQpLmdldFRpbWUoKSAtIGNsb2NrVGltZSkgPj0gMzAwMDAwO1xuIiwgImltcG9ydCB7IGlzQ2xvY2tTa2V3ZWQgfSBmcm9tIFwiLi9pc0Nsb2NrU2tld2VkXCI7XG5leHBvcnQgY29uc3QgZ2V0VXBkYXRlZFN5c3RlbUNsb2NrT2Zmc2V0ID0gKGNsb2NrVGltZSwgY3VycmVudFN5c3RlbUNsb2NrT2Zmc2V0KSA9PiB7XG4gICAgY29uc3QgY2xvY2tUaW1lSW5NcyA9IERhdGUucGFyc2UoY2xvY2tUaW1lKTtcbiAgICBpZiAoaXNDbG9ja1NrZXdlZChjbG9ja1RpbWVJbk1zLCBjdXJyZW50U3lzdGVtQ2xvY2tPZmZzZXQpKSB7XG4gICAgICAgIHJldHVybiBjbG9ja1RpbWVJbk1zIC0gRGF0ZS5ub3coKTtcbiAgICB9XG4gICAgcmV0dXJuIGN1cnJlbnRTeXN0ZW1DbG9ja09mZnNldDtcbn07XG4iLCAiZXhwb3J0ICogZnJvbSBcIi4vZ2V0RGF0ZUhlYWRlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZ2V0U2tld0NvcnJlY3RlZERhdGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2dldFVwZGF0ZWRTeXN0ZW1DbG9ja09mZnNldFwiO1xuIiwgImltcG9ydCB7IEh0dHBSZXF1ZXN0IH0gZnJvbSBcIkBzbWl0aHkvcHJvdG9jb2wtaHR0cFwiO1xuaW1wb3J0IHsgZ2V0RGF0ZUhlYWRlciwgZ2V0U2tld0NvcnJlY3RlZERhdGUsIGdldFVwZGF0ZWRTeXN0ZW1DbG9ja09mZnNldCB9IGZyb20gXCIuLi91dGlsc1wiO1xuY29uc3QgdGhyb3dTaWduaW5nUHJvcGVydHlFcnJvciA9IChuYW1lLCBwcm9wZXJ0eSkgPT4ge1xuICAgIGlmICghcHJvcGVydHkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBQcm9wZXJ0eSBcXGAke25hbWV9XFxgIGlzIG5vdCByZXNvbHZlZCBmb3IgQVdTIFNESyBTaWdWNEF1dGhgKTtcbiAgICB9XG4gICAgcmV0dXJuIHByb3BlcnR5O1xufTtcbmV4cG9ydCBjb25zdCB2YWxpZGF0ZVNpZ25pbmdQcm9wZXJ0aWVzID0gYXN5bmMgKHNpZ25pbmdQcm9wZXJ0aWVzKSA9PiB7XG4gICAgY29uc3QgY29udGV4dCA9IHRocm93U2lnbmluZ1Byb3BlcnR5RXJyb3IoXCJjb250ZXh0XCIsIHNpZ25pbmdQcm9wZXJ0aWVzLmNvbnRleHQpO1xuICAgIGNvbnN0IGNvbmZpZyA9IHRocm93U2lnbmluZ1Byb3BlcnR5RXJyb3IoXCJjb25maWdcIiwgc2lnbmluZ1Byb3BlcnRpZXMuY29uZmlnKTtcbiAgICBjb25zdCBhdXRoU2NoZW1lID0gY29udGV4dC5lbmRwb2ludFYyPy5wcm9wZXJ0aWVzPy5hdXRoU2NoZW1lcz8uWzBdO1xuICAgIGNvbnN0IHNpZ25lckZ1bmN0aW9uID0gdGhyb3dTaWduaW5nUHJvcGVydHlFcnJvcihcInNpZ25lclwiLCBjb25maWcuc2lnbmVyKTtcbiAgICBjb25zdCBzaWduZXIgPSBhd2FpdCBzaWduZXJGdW5jdGlvbihhdXRoU2NoZW1lKTtcbiAgICBjb25zdCBzaWduaW5nUmVnaW9uID0gc2lnbmluZ1Byb3BlcnRpZXM/LnNpZ25pbmdSZWdpb247XG4gICAgY29uc3Qgc2lnbmluZ1JlZ2lvblNldCA9IHNpZ25pbmdQcm9wZXJ0aWVzPy5zaWduaW5nUmVnaW9uU2V0O1xuICAgIGNvbnN0IHNpZ25pbmdOYW1lID0gc2lnbmluZ1Byb3BlcnRpZXM/LnNpZ25pbmdOYW1lO1xuICAgIHJldHVybiB7XG4gICAgICAgIGNvbmZpZyxcbiAgICAgICAgc2lnbmVyLFxuICAgICAgICBzaWduaW5nUmVnaW9uLFxuICAgICAgICBzaWduaW5nUmVnaW9uU2V0LFxuICAgICAgICBzaWduaW5nTmFtZSxcbiAgICB9O1xufTtcbmV4cG9ydCBjbGFzcyBBd3NTZGtTaWdWNFNpZ25lciB7XG4gICAgYXN5bmMgc2lnbihodHRwUmVxdWVzdCwgaWRlbnRpdHksIHNpZ25pbmdQcm9wZXJ0aWVzKSB7XG4gICAgICAgIGlmICghSHR0cFJlcXVlc3QuaXNJbnN0YW5jZShodHRwUmVxdWVzdCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlRoZSByZXF1ZXN0IGlzIG5vdCBhbiBpbnN0YW5jZSBvZiBgSHR0cFJlcXVlc3RgIGFuZCBjYW5ub3QgYmUgc2lnbmVkXCIpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHZhbGlkYXRlZFByb3BzID0gYXdhaXQgdmFsaWRhdGVTaWduaW5nUHJvcGVydGllcyhzaWduaW5nUHJvcGVydGllcyk7XG4gICAgICAgIGNvbnN0IHsgY29uZmlnLCBzaWduZXIgfSA9IHZhbGlkYXRlZFByb3BzO1xuICAgICAgICBsZXQgeyBzaWduaW5nUmVnaW9uLCBzaWduaW5nTmFtZSB9ID0gdmFsaWRhdGVkUHJvcHM7XG4gICAgICAgIGNvbnN0IGhhbmRsZXJFeGVjdXRpb25Db250ZXh0ID0gc2lnbmluZ1Byb3BlcnRpZXMuY29udGV4dDtcbiAgICAgICAgaWYgKGhhbmRsZXJFeGVjdXRpb25Db250ZXh0Py5hdXRoU2NoZW1lcz8ubGVuZ3RoID8/IDAgPiAxKSB7XG4gICAgICAgICAgICBjb25zdCBbZmlyc3QsIHNlY29uZF0gPSBoYW5kbGVyRXhlY3V0aW9uQ29udGV4dC5hdXRoU2NoZW1lcztcbiAgICAgICAgICAgIGlmIChmaXJzdD8ubmFtZSA9PT0gXCJzaWd2NGFcIiAmJiBzZWNvbmQ/Lm5hbWUgPT09IFwic2lndjRcIikge1xuICAgICAgICAgICAgICAgIHNpZ25pbmdSZWdpb24gPSBzZWNvbmQ/LnNpZ25pbmdSZWdpb24gPz8gc2lnbmluZ1JlZ2lvbjtcbiAgICAgICAgICAgICAgICBzaWduaW5nTmFtZSA9IHNlY29uZD8uc2lnbmluZ05hbWUgPz8gc2lnbmluZ05hbWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc2lnbmVkUmVxdWVzdCA9IGF3YWl0IHNpZ25lci5zaWduKGh0dHBSZXF1ZXN0LCB7XG4gICAgICAgICAgICBzaWduaW5nRGF0ZTogZ2V0U2tld0NvcnJlY3RlZERhdGUoY29uZmlnLnN5c3RlbUNsb2NrT2Zmc2V0KSxcbiAgICAgICAgICAgIHNpZ25pbmdSZWdpb246IHNpZ25pbmdSZWdpb24sXG4gICAgICAgICAgICBzaWduaW5nU2VydmljZTogc2lnbmluZ05hbWUsXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gc2lnbmVkUmVxdWVzdDtcbiAgICB9XG4gICAgZXJyb3JIYW5kbGVyKHNpZ25pbmdQcm9wZXJ0aWVzKSB7XG4gICAgICAgIHJldHVybiAoZXJyb3IpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNlcnZlclRpbWUgPSBlcnJvci5TZXJ2ZXJUaW1lID8/IGdldERhdGVIZWFkZXIoZXJyb3IuJHJlc3BvbnNlKTtcbiAgICAgICAgICAgIGlmIChzZXJ2ZXJUaW1lKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gdGhyb3dTaWduaW5nUHJvcGVydHlFcnJvcihcImNvbmZpZ1wiLCBzaWduaW5nUHJvcGVydGllcy5jb25maWcpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGluaXRpYWxTeXN0ZW1DbG9ja09mZnNldCA9IGNvbmZpZy5zeXN0ZW1DbG9ja09mZnNldDtcbiAgICAgICAgICAgICAgICBjb25maWcuc3lzdGVtQ2xvY2tPZmZzZXQgPSBnZXRVcGRhdGVkU3lzdGVtQ2xvY2tPZmZzZXQoc2VydmVyVGltZSwgY29uZmlnLnN5c3RlbUNsb2NrT2Zmc2V0KTtcbiAgICAgICAgICAgICAgICBjb25zdCBjbG9ja1NrZXdDb3JyZWN0ZWQgPSBjb25maWcuc3lzdGVtQ2xvY2tPZmZzZXQgIT09IGluaXRpYWxTeXN0ZW1DbG9ja09mZnNldDtcbiAgICAgICAgICAgICAgICBpZiAoY2xvY2tTa2V3Q29ycmVjdGVkICYmIGVycm9yLiRtZXRhZGF0YSkge1xuICAgICAgICAgICAgICAgICAgICBlcnJvci4kbWV0YWRhdGEuY2xvY2tTa2V3Q29ycmVjdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfTtcbiAgICB9XG4gICAgc3VjY2Vzc0hhbmRsZXIoaHR0cFJlc3BvbnNlLCBzaWduaW5nUHJvcGVydGllcykge1xuICAgICAgICBjb25zdCBkYXRlSGVhZGVyID0gZ2V0RGF0ZUhlYWRlcihodHRwUmVzcG9uc2UpO1xuICAgICAgICBpZiAoZGF0ZUhlYWRlcikge1xuICAgICAgICAgICAgY29uc3QgY29uZmlnID0gdGhyb3dTaWduaW5nUHJvcGVydHlFcnJvcihcImNvbmZpZ1wiLCBzaWduaW5nUHJvcGVydGllcy5jb25maWcpO1xuICAgICAgICAgICAgY29uZmlnLnN5c3RlbUNsb2NrT2Zmc2V0ID0gZ2V0VXBkYXRlZFN5c3RlbUNsb2NrT2Zmc2V0KGRhdGVIZWFkZXIsIGNvbmZpZy5zeXN0ZW1DbG9ja09mZnNldCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnQgY29uc3QgQVdTU0RLU2lnVjRTaWduZXIgPSBBd3NTZGtTaWdWNFNpZ25lcjtcbiIsICJpbXBvcnQgeyBIdHRwUmVxdWVzdCB9IGZyb20gXCJAc21pdGh5L3Byb3RvY29sLWh0dHBcIjtcbmltcG9ydCB7IGdldFNrZXdDb3JyZWN0ZWREYXRlIH0gZnJvbSBcIi4uL3V0aWxzXCI7XG5pbXBvcnQgeyBBd3NTZGtTaWdWNFNpZ25lciwgdmFsaWRhdGVTaWduaW5nUHJvcGVydGllcyB9IGZyb20gXCIuL0F3c1Nka1NpZ1Y0U2lnbmVyXCI7XG5leHBvcnQgY2xhc3MgQXdzU2RrU2lnVjRBU2lnbmVyIGV4dGVuZHMgQXdzU2RrU2lnVjRTaWduZXIge1xuICAgIGFzeW5jIHNpZ24oaHR0cFJlcXVlc3QsIGlkZW50aXR5LCBzaWduaW5nUHJvcGVydGllcykge1xuICAgICAgICBpZiAoIUh0dHBSZXF1ZXN0LmlzSW5zdGFuY2UoaHR0cFJlcXVlc3QpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJUaGUgcmVxdWVzdCBpcyBub3QgYW4gaW5zdGFuY2Ugb2YgYEh0dHBSZXF1ZXN0YCBhbmQgY2Fubm90IGJlIHNpZ25lZFwiKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB7IGNvbmZpZywgc2lnbmVyLCBzaWduaW5nUmVnaW9uLCBzaWduaW5nUmVnaW9uU2V0LCBzaWduaW5nTmFtZSB9ID0gYXdhaXQgdmFsaWRhdGVTaWduaW5nUHJvcGVydGllcyhzaWduaW5nUHJvcGVydGllcyk7XG4gICAgICAgIGNvbnN0IGNvbmZpZ1Jlc29sdmVkU2lnbmluZ1JlZ2lvblNldCA9IGF3YWl0IGNvbmZpZy5zaWd2NGFTaWduaW5nUmVnaW9uU2V0Py4oKTtcbiAgICAgICAgY29uc3QgbXVsdGlSZWdpb25PdmVycmlkZSA9IChjb25maWdSZXNvbHZlZFNpZ25pbmdSZWdpb25TZXQgPz9cbiAgICAgICAgICAgIHNpZ25pbmdSZWdpb25TZXQgPz8gW3NpZ25pbmdSZWdpb25dKS5qb2luKFwiLFwiKTtcbiAgICAgICAgY29uc3Qgc2lnbmVkUmVxdWVzdCA9IGF3YWl0IHNpZ25lci5zaWduKGh0dHBSZXF1ZXN0LCB7XG4gICAgICAgICAgICBzaWduaW5nRGF0ZTogZ2V0U2tld0NvcnJlY3RlZERhdGUoY29uZmlnLnN5c3RlbUNsb2NrT2Zmc2V0KSxcbiAgICAgICAgICAgIHNpZ25pbmdSZWdpb246IG11bHRpUmVnaW9uT3ZlcnJpZGUsXG4gICAgICAgICAgICBzaWduaW5nU2VydmljZTogc2lnbmluZ05hbWUsXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gc2lnbmVkUmVxdWVzdDtcbiAgICB9XG59XG4iLCAiZXhwb3J0IGNvbnN0IGdldEFycmF5Rm9yQ29tbWFTZXBhcmF0ZWRTdHJpbmcgPSAoc3RyKSA9PiB0eXBlb2Ygc3RyID09PSBcInN0cmluZ1wiICYmIHN0ci5sZW5ndGggPiAwID8gc3RyLnNwbGl0KFwiLFwiKS5tYXAoKGl0ZW0pID0+IGl0ZW0udHJpbSgpKSA6IFtdO1xuIiwgImV4cG9ydCBjb25zdCBnZXRCZWFyZXJUb2tlbkVudktleSA9IChzaWduaW5nTmFtZSkgPT4gYEFXU19CRUFSRVJfVE9LRU5fJHtzaWduaW5nTmFtZS5yZXBsYWNlKC9bXFxzLV0vZywgXCJfXCIpLnRvVXBwZXJDYXNlKCl9YDtcbiIsICJpbXBvcnQgeyBnZXRBcnJheUZvckNvbW1hU2VwYXJhdGVkU3RyaW5nIH0gZnJvbSBcIi4uL3V0aWxzL2dldEFycmF5Rm9yQ29tbWFTZXBhcmF0ZWRTdHJpbmdcIjtcbmltcG9ydCB7IGdldEJlYXJlclRva2VuRW52S2V5IH0gZnJvbSBcIi4uL3V0aWxzL2dldEJlYXJlclRva2VuRW52S2V5XCI7XG5jb25zdCBOT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfRU5WX0tFWSA9IFwiQVdTX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VcIjtcbmNvbnN0IE5PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9DT05GSUdfS0VZID0gXCJhdXRoX3NjaGVtZV9wcmVmZXJlbmNlXCI7XG5leHBvcnQgY29uc3QgTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX09QVElPTlMgPSB7XG4gICAgZW52aXJvbm1lbnRWYXJpYWJsZVNlbGVjdG9yOiAoZW52LCBvcHRpb25zKSA9PiB7XG4gICAgICAgIGlmIChvcHRpb25zPy5zaWduaW5nTmFtZSkge1xuICAgICAgICAgICAgY29uc3QgYmVhcmVyVG9rZW5LZXkgPSBnZXRCZWFyZXJUb2tlbkVudktleShvcHRpb25zLnNpZ25pbmdOYW1lKTtcbiAgICAgICAgICAgIGlmIChiZWFyZXJUb2tlbktleSBpbiBlbnYpXG4gICAgICAgICAgICAgICAgcmV0dXJuIFtcImh0dHBCZWFyZXJBdXRoXCJdO1xuICAgICAgICB9XG4gICAgICAgIGlmICghKE5PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9FTlZfS0VZIGluIGVudikpXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICByZXR1cm4gZ2V0QXJyYXlGb3JDb21tYVNlcGFyYXRlZFN0cmluZyhlbnZbTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX0VOVl9LRVldKTtcbiAgICB9LFxuICAgIGNvbmZpZ0ZpbGVTZWxlY3RvcjogKHByb2ZpbGUpID0+IHtcbiAgICAgICAgaWYgKCEoTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX0NPTkZJR19LRVkgaW4gcHJvZmlsZSkpXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICByZXR1cm4gZ2V0QXJyYXlGb3JDb21tYVNlcGFyYXRlZFN0cmluZyhwcm9maWxlW05PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9DT05GSUdfS0VZXSk7XG4gICAgfSxcbiAgICBkZWZhdWx0OiBbXSxcbn07XG4iLCAiaW1wb3J0IHsgbm9ybWFsaXplUHJvdmlkZXIgfSBmcm9tIFwiQHNtaXRoeS9jb3JlXCI7XG5pbXBvcnQgeyBQcm92aWRlckVycm9yIH0gZnJvbSBcIkBzbWl0aHkvcHJvcGVydHktcHJvdmlkZXJcIjtcbmV4cG9ydCBjb25zdCByZXNvbHZlQXdzU2RrU2lnVjRBQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIGNvbmZpZy5zaWd2NGFTaWduaW5nUmVnaW9uU2V0ID0gbm9ybWFsaXplUHJvdmlkZXIoY29uZmlnLnNpZ3Y0YVNpZ25pbmdSZWdpb25TZXQpO1xuICAgIHJldHVybiBjb25maWc7XG59O1xuZXhwb3J0IGNvbnN0IE5PREVfU0lHVjRBX0NPTkZJR19PUFRJT05TID0ge1xuICAgIGVudmlyb25tZW50VmFyaWFibGVTZWxlY3RvcihlbnYpIHtcbiAgICAgICAgaWYgKGVudi5BV1NfU0lHVjRBX1NJR05JTkdfUkVHSU9OX1NFVCkge1xuICAgICAgICAgICAgcmV0dXJuIGVudi5BV1NfU0lHVjRBX1NJR05JTkdfUkVHSU9OX1NFVC5zcGxpdChcIixcIikubWFwKChfKSA9PiBfLnRyaW0oKSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgbmV3IFByb3ZpZGVyRXJyb3IoXCJBV1NfU0lHVjRBX1NJR05JTkdfUkVHSU9OX1NFVCBub3Qgc2V0IGluIGVudi5cIiwge1xuICAgICAgICAgICAgdHJ5TmV4dExpbms6IHRydWUsXG4gICAgICAgIH0pO1xuICAgIH0sXG4gICAgY29uZmlnRmlsZVNlbGVjdG9yKHByb2ZpbGUpIHtcbiAgICAgICAgaWYgKHByb2ZpbGUuc2lndjRhX3NpZ25pbmdfcmVnaW9uX3NldCkge1xuICAgICAgICAgICAgcmV0dXJuIChwcm9maWxlLnNpZ3Y0YV9zaWduaW5nX3JlZ2lvbl9zZXQgPz8gXCJcIikuc3BsaXQoXCIsXCIpLm1hcCgoXykgPT4gXy50cmltKCkpO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IG5ldyBQcm92aWRlckVycm9yKFwic2lndjRhX3NpZ25pbmdfcmVnaW9uX3NldCBub3Qgc2V0IGluIHByb2ZpbGUuXCIsIHtcbiAgICAgICAgICAgIHRyeU5leHRMaW5rOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICB9LFxuICAgIGRlZmF1bHQ6IHVuZGVmaW5lZCxcbn07XG4iLCAiaW1wb3J0IHsgc2V0Q3JlZGVudGlhbEZlYXR1cmUgfSBmcm9tIFwiQGF3cy1zZGsvY29yZS9jbGllbnRcIjtcbmltcG9ydCB7IGRvZXNJZGVudGl0eVJlcXVpcmVSZWZyZXNoLCBpc0lkZW50aXR5RXhwaXJlZCwgbWVtb2l6ZUlkZW50aXR5UHJvdmlkZXIsIG5vcm1hbGl6ZVByb3ZpZGVyLCB9IGZyb20gXCJAc21pdGh5L2NvcmVcIjtcbmltcG9ydCB7IFNpZ25hdHVyZVY0IH0gZnJvbSBcIkBzbWl0aHkvc2lnbmF0dXJlLXY0XCI7XG5leHBvcnQgY29uc3QgcmVzb2x2ZUF3c1Nka1NpZ1Y0Q29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIGxldCBpbnB1dENyZWRlbnRpYWxzID0gY29uZmlnLmNyZWRlbnRpYWxzO1xuICAgIGxldCBpc1VzZXJTdXBwbGllZCA9ICEhY29uZmlnLmNyZWRlbnRpYWxzO1xuICAgIGxldCByZXNvbHZlZENyZWRlbnRpYWxzID0gdW5kZWZpbmVkO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjb25maWcsIFwiY3JlZGVudGlhbHNcIiwge1xuICAgICAgICBzZXQoY3JlZGVudGlhbHMpIHtcbiAgICAgICAgICAgIGlmIChjcmVkZW50aWFscyAmJiBjcmVkZW50aWFscyAhPT0gaW5wdXRDcmVkZW50aWFscyAmJiBjcmVkZW50aWFscyAhPT0gcmVzb2x2ZWRDcmVkZW50aWFscykge1xuICAgICAgICAgICAgICAgIGlzVXNlclN1cHBsaWVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlucHV0Q3JlZGVudGlhbHMgPSBjcmVkZW50aWFscztcbiAgICAgICAgICAgIGNvbnN0IG1lbW9pemVkUHJvdmlkZXIgPSBub3JtYWxpemVDcmVkZW50aWFsUHJvdmlkZXIoY29uZmlnLCB7XG4gICAgICAgICAgICAgICAgY3JlZGVudGlhbHM6IGlucHV0Q3JlZGVudGlhbHMsXG4gICAgICAgICAgICAgICAgY3JlZGVudGlhbERlZmF1bHRQcm92aWRlcjogY29uZmlnLmNyZWRlbnRpYWxEZWZhdWx0UHJvdmlkZXIsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0IGJvdW5kUHJvdmlkZXIgPSBiaW5kQ2FsbGVyQ29uZmlnKGNvbmZpZywgbWVtb2l6ZWRQcm92aWRlcik7XG4gICAgICAgICAgICBpZiAoaXNVc2VyU3VwcGxpZWQgJiYgIWJvdW5kUHJvdmlkZXIuYXR0cmlidXRlZCkge1xuICAgICAgICAgICAgICAgIHJlc29sdmVkQ3JlZGVudGlhbHMgPSBhc3luYyAob3B0aW9ucykgPT4gYm91bmRQcm92aWRlcihvcHRpb25zKS50aGVuKChjcmVkcykgPT4gc2V0Q3JlZGVudGlhbEZlYXR1cmUoY3JlZHMsIFwiQ1JFREVOVElBTFNfQ09ERVwiLCBcImVcIikpO1xuICAgICAgICAgICAgICAgIHJlc29sdmVkQ3JlZGVudGlhbHMubWVtb2l6ZWQgPSBib3VuZFByb3ZpZGVyLm1lbW9pemVkO1xuICAgICAgICAgICAgICAgIHJlc29sdmVkQ3JlZGVudGlhbHMuY29uZmlnQm91bmQgPSBib3VuZFByb3ZpZGVyLmNvbmZpZ0JvdW5kO1xuICAgICAgICAgICAgICAgIHJlc29sdmVkQ3JlZGVudGlhbHMuYXR0cmlidXRlZCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXNvbHZlZENyZWRlbnRpYWxzID0gYm91bmRQcm92aWRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZ2V0KCkge1xuICAgICAgICAgICAgcmV0dXJuIHJlc29sdmVkQ3JlZGVudGlhbHM7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICB9KTtcbiAgICBjb25maWcuY3JlZGVudGlhbHMgPSBpbnB1dENyZWRlbnRpYWxzO1xuICAgIGNvbnN0IHsgc2lnbmluZ0VzY2FwZVBhdGggPSB0cnVlLCBzeXN0ZW1DbG9ja09mZnNldCA9IGNvbmZpZy5zeXN0ZW1DbG9ja09mZnNldCB8fCAwLCBzaGEyNTYsIH0gPSBjb25maWc7XG4gICAgbGV0IHNpZ25lcjtcbiAgICBpZiAoY29uZmlnLnNpZ25lcikge1xuICAgICAgICBzaWduZXIgPSBub3JtYWxpemVQcm92aWRlcihjb25maWcuc2lnbmVyKTtcbiAgICB9XG4gICAgZWxzZSBpZiAoY29uZmlnLnJlZ2lvbkluZm9Qcm92aWRlcikge1xuICAgICAgICBzaWduZXIgPSAoKSA9PiBub3JtYWxpemVQcm92aWRlcihjb25maWcucmVnaW9uKSgpXG4gICAgICAgICAgICAudGhlbihhc3luYyAocmVnaW9uKSA9PiBbXG4gICAgICAgICAgICAoYXdhaXQgY29uZmlnLnJlZ2lvbkluZm9Qcm92aWRlcihyZWdpb24sIHtcbiAgICAgICAgICAgICAgICB1c2VGaXBzRW5kcG9pbnQ6IGF3YWl0IGNvbmZpZy51c2VGaXBzRW5kcG9pbnQoKSxcbiAgICAgICAgICAgICAgICB1c2VEdWFsc3RhY2tFbmRwb2ludDogYXdhaXQgY29uZmlnLnVzZUR1YWxzdGFja0VuZHBvaW50KCksXG4gICAgICAgICAgICB9KSkgfHwge30sXG4gICAgICAgICAgICByZWdpb24sXG4gICAgICAgIF0pXG4gICAgICAgICAgICAudGhlbigoW3JlZ2lvbkluZm8sIHJlZ2lvbl0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgc2lnbmluZ1JlZ2lvbiwgc2lnbmluZ1NlcnZpY2UgfSA9IHJlZ2lvbkluZm87XG4gICAgICAgICAgICBjb25maWcuc2lnbmluZ1JlZ2lvbiA9IGNvbmZpZy5zaWduaW5nUmVnaW9uIHx8IHNpZ25pbmdSZWdpb24gfHwgcmVnaW9uO1xuICAgICAgICAgICAgY29uZmlnLnNpZ25pbmdOYW1lID0gY29uZmlnLnNpZ25pbmdOYW1lIHx8IHNpZ25pbmdTZXJ2aWNlIHx8IGNvbmZpZy5zZXJ2aWNlSWQ7XG4gICAgICAgICAgICBjb25zdCBwYXJhbXMgPSB7XG4gICAgICAgICAgICAgICAgLi4uY29uZmlnLFxuICAgICAgICAgICAgICAgIGNyZWRlbnRpYWxzOiBjb25maWcuY3JlZGVudGlhbHMsXG4gICAgICAgICAgICAgICAgcmVnaW9uOiBjb25maWcuc2lnbmluZ1JlZ2lvbixcbiAgICAgICAgICAgICAgICBzZXJ2aWNlOiBjb25maWcuc2lnbmluZ05hbWUsXG4gICAgICAgICAgICAgICAgc2hhMjU2LFxuICAgICAgICAgICAgICAgIHVyaUVzY2FwZVBhdGg6IHNpZ25pbmdFc2NhcGVQYXRoLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGNvbnN0IFNpZ25lckN0b3IgPSBjb25maWcuc2lnbmVyQ29uc3RydWN0b3IgfHwgU2lnbmF0dXJlVjQ7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFNpZ25lckN0b3IocGFyYW1zKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBzaWduZXIgPSBhc3luYyAoYXV0aFNjaGVtZSkgPT4ge1xuICAgICAgICAgICAgYXV0aFNjaGVtZSA9IE9iamVjdC5hc3NpZ24oe30sIHtcbiAgICAgICAgICAgICAgICBuYW1lOiBcInNpZ3Y0XCIsXG4gICAgICAgICAgICAgICAgc2lnbmluZ05hbWU6IGNvbmZpZy5zaWduaW5nTmFtZSB8fCBjb25maWcuZGVmYXVsdFNpZ25pbmdOYW1lLFxuICAgICAgICAgICAgICAgIHNpZ25pbmdSZWdpb246IGF3YWl0IG5vcm1hbGl6ZVByb3ZpZGVyKGNvbmZpZy5yZWdpb24pKCksXG4gICAgICAgICAgICAgICAgcHJvcGVydGllczoge30sXG4gICAgICAgICAgICB9LCBhdXRoU2NoZW1lKTtcbiAgICAgICAgICAgIGNvbnN0IHNpZ25pbmdSZWdpb24gPSBhdXRoU2NoZW1lLnNpZ25pbmdSZWdpb247XG4gICAgICAgICAgICBjb25zdCBzaWduaW5nU2VydmljZSA9IGF1dGhTY2hlbWUuc2lnbmluZ05hbWU7XG4gICAgICAgICAgICBjb25maWcuc2lnbmluZ1JlZ2lvbiA9IGNvbmZpZy5zaWduaW5nUmVnaW9uIHx8IHNpZ25pbmdSZWdpb247XG4gICAgICAgICAgICBjb25maWcuc2lnbmluZ05hbWUgPSBjb25maWcuc2lnbmluZ05hbWUgfHwgc2lnbmluZ1NlcnZpY2UgfHwgY29uZmlnLnNlcnZpY2VJZDtcbiAgICAgICAgICAgIGNvbnN0IHBhcmFtcyA9IHtcbiAgICAgICAgICAgICAgICAuLi5jb25maWcsXG4gICAgICAgICAgICAgICAgY3JlZGVudGlhbHM6IGNvbmZpZy5jcmVkZW50aWFscyxcbiAgICAgICAgICAgICAgICByZWdpb246IGNvbmZpZy5zaWduaW5nUmVnaW9uLFxuICAgICAgICAgICAgICAgIHNlcnZpY2U6IGNvbmZpZy5zaWduaW5nTmFtZSxcbiAgICAgICAgICAgICAgICBzaGEyNTYsXG4gICAgICAgICAgICAgICAgdXJpRXNjYXBlUGF0aDogc2lnbmluZ0VzY2FwZVBhdGgsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY29uc3QgU2lnbmVyQ3RvciA9IGNvbmZpZy5zaWduZXJDb25zdHJ1Y3RvciB8fCBTaWduYXR1cmVWNDtcbiAgICAgICAgICAgIHJldHVybiBuZXcgU2lnbmVyQ3RvcihwYXJhbXMpO1xuICAgICAgICB9O1xuICAgIH1cbiAgICBjb25zdCByZXNvbHZlZENvbmZpZyA9IE9iamVjdC5hc3NpZ24oY29uZmlnLCB7XG4gICAgICAgIHN5c3RlbUNsb2NrT2Zmc2V0LFxuICAgICAgICBzaWduaW5nRXNjYXBlUGF0aCxcbiAgICAgICAgc2lnbmVyLFxuICAgIH0pO1xuICAgIHJldHVybiByZXNvbHZlZENvbmZpZztcbn07XG5leHBvcnQgY29uc3QgcmVzb2x2ZUFXU1NES1NpZ1Y0Q29uZmlnID0gcmVzb2x2ZUF3c1Nka1NpZ1Y0Q29uZmlnO1xuZnVuY3Rpb24gbm9ybWFsaXplQ3JlZGVudGlhbFByb3ZpZGVyKGNvbmZpZywgeyBjcmVkZW50aWFscywgY3JlZGVudGlhbERlZmF1bHRQcm92aWRlciwgfSkge1xuICAgIGxldCBjcmVkZW50aWFsc1Byb3ZpZGVyO1xuICAgIGlmIChjcmVkZW50aWFscykge1xuICAgICAgICBpZiAoIWNyZWRlbnRpYWxzPy5tZW1vaXplZCkge1xuICAgICAgICAgICAgY3JlZGVudGlhbHNQcm92aWRlciA9IG1lbW9pemVJZGVudGl0eVByb3ZpZGVyKGNyZWRlbnRpYWxzLCBpc0lkZW50aXR5RXhwaXJlZCwgZG9lc0lkZW50aXR5UmVxdWlyZVJlZnJlc2gpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY3JlZGVudGlhbHNQcm92aWRlciA9IGNyZWRlbnRpYWxzO1xuICAgICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBpZiAoY3JlZGVudGlhbERlZmF1bHRQcm92aWRlcikge1xuICAgICAgICAgICAgY3JlZGVudGlhbHNQcm92aWRlciA9IG5vcm1hbGl6ZVByb3ZpZGVyKGNyZWRlbnRpYWxEZWZhdWx0UHJvdmlkZXIoT2JqZWN0LmFzc2lnbih7fSwgY29uZmlnLCB7XG4gICAgICAgICAgICAgICAgcGFyZW50Q2xpZW50Q29uZmlnOiBjb25maWcsXG4gICAgICAgICAgICB9KSkpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY3JlZGVudGlhbHNQcm92aWRlciA9IGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJAYXdzLXNkay9jb3JlOjpyZXNvbHZlQXdzU2RrU2lnVjRDb25maWcgLSBgY3JlZGVudGlhbHNgIG5vdCBwcm92aWRlZCBhbmQgbm8gY3JlZGVudGlhbERlZmF1bHRQcm92aWRlciB3YXMgY29uZmlndXJlZC5cIik7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfVxuICAgIGNyZWRlbnRpYWxzUHJvdmlkZXIubWVtb2l6ZWQgPSB0cnVlO1xuICAgIHJldHVybiBjcmVkZW50aWFsc1Byb3ZpZGVyO1xufVxuZnVuY3Rpb24gYmluZENhbGxlckNvbmZpZyhjb25maWcsIGNyZWRlbnRpYWxzUHJvdmlkZXIpIHtcbiAgICBpZiAoY3JlZGVudGlhbHNQcm92aWRlci5jb25maWdCb3VuZCkge1xuICAgICAgICByZXR1cm4gY3JlZGVudGlhbHNQcm92aWRlcjtcbiAgICB9XG4gICAgY29uc3QgZm4gPSBhc3luYyAob3B0aW9ucykgPT4gY3JlZGVudGlhbHNQcm92aWRlcih7IC4uLm9wdGlvbnMsIGNhbGxlckNsaWVudENvbmZpZzogY29uZmlnIH0pO1xuICAgIGZuLm1lbW9pemVkID0gY3JlZGVudGlhbHNQcm92aWRlci5tZW1vaXplZDtcbiAgICBmbi5jb25maWdCb3VuZCA9IHRydWU7XG4gICAgcmV0dXJuIGZuO1xufVxuIiwgImV4cG9ydCB7IEF3c1Nka1NpZ1Y0U2lnbmVyLCBBV1NTREtTaWdWNFNpZ25lciwgdmFsaWRhdGVTaWduaW5nUHJvcGVydGllcyB9IGZyb20gXCIuL0F3c1Nka1NpZ1Y0U2lnbmVyXCI7XG5leHBvcnQgeyBBd3NTZGtTaWdWNEFTaWduZXIgfSBmcm9tIFwiLi9Bd3NTZGtTaWdWNEFTaWduZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL05PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9PUFRJT05TXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9yZXNvbHZlQXdzU2RrU2lnVjRBQ29uZmlnXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9yZXNvbHZlQXdzU2RrU2lnVjRDb25maWdcIjtcbiIsICJleHBvcnQgKiBmcm9tIFwiLi9hd3Nfc2RrXCI7XG5leHBvcnQgKiBmcm9tIFwiLi91dGlscy9nZXRCZWFyZXJUb2tlbkVudktleVwiO1xuIiwgImltcG9ydCB7IE5vcm1hbGl6ZWRTY2hlbWEsIFR5cGVSZWdpc3RyeSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2NoZW1hXCI7XG5pbXBvcnQgeyBkZWNvcmF0ZVNlcnZpY2VFeGNlcHRpb24gfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5leHBvcnQgY2xhc3MgUHJvdG9jb2xMaWIge1xuICAgIHF1ZXJ5Q29tcGF0O1xuICAgIGNvbnN0cnVjdG9yKHF1ZXJ5Q29tcGF0ID0gZmFsc2UpIHtcbiAgICAgICAgdGhpcy5xdWVyeUNvbXBhdCA9IHF1ZXJ5Q29tcGF0O1xuICAgIH1cbiAgICByZXNvbHZlUmVzdENvbnRlbnRUeXBlKGRlZmF1bHRDb250ZW50VHlwZSwgaW5wdXRTY2hlbWEpIHtcbiAgICAgICAgY29uc3QgbWVtYmVycyA9IGlucHV0U2NoZW1hLmdldE1lbWJlclNjaGVtYXMoKTtcbiAgICAgICAgY29uc3QgaHR0cFBheWxvYWRNZW1iZXIgPSBPYmplY3QudmFsdWVzKG1lbWJlcnMpLmZpbmQoKG0pID0+IHtcbiAgICAgICAgICAgIHJldHVybiAhIW0uZ2V0TWVyZ2VkVHJhaXRzKCkuaHR0cFBheWxvYWQ7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoaHR0cFBheWxvYWRNZW1iZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IG1lZGlhVHlwZSA9IGh0dHBQYXlsb2FkTWVtYmVyLmdldE1lcmdlZFRyYWl0cygpLm1lZGlhVHlwZTtcbiAgICAgICAgICAgIGlmIChtZWRpYVR5cGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbWVkaWFUeXBlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoaHR0cFBheWxvYWRNZW1iZXIuaXNTdHJpbmdTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBcInRleHQvcGxhaW5cIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGh0dHBQYXlsb2FkTWVtYmVyLmlzQmxvYlNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtXCI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZGVmYXVsdENvbnRlbnRUeXBlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKCFpbnB1dFNjaGVtYS5pc1VuaXRTY2hlbWEoKSkge1xuICAgICAgICAgICAgY29uc3QgaGFzQm9keSA9IE9iamVjdC52YWx1ZXMobWVtYmVycykuZmluZCgobSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgaHR0cFF1ZXJ5LCBodHRwUXVlcnlQYXJhbXMsIGh0dHBIZWFkZXIsIGh0dHBMYWJlbCwgaHR0cFByZWZpeEhlYWRlcnMgfSA9IG0uZ2V0TWVyZ2VkVHJhaXRzKCk7XG4gICAgICAgICAgICAgICAgY29uc3Qgbm9QcmVmaXhIZWFkZXJzID0gaHR0cFByZWZpeEhlYWRlcnMgPT09IHZvaWQgMDtcbiAgICAgICAgICAgICAgICByZXR1cm4gIWh0dHBRdWVyeSAmJiAhaHR0cFF1ZXJ5UGFyYW1zICYmICFodHRwSGVhZGVyICYmICFodHRwTGFiZWwgJiYgbm9QcmVmaXhIZWFkZXJzO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAoaGFzQm9keSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBkZWZhdWx0Q29udGVudFR5cGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgYXN5bmMgZ2V0RXJyb3JTY2hlbWFPclRocm93QmFzZUV4Y2VwdGlvbihlcnJvcklkZW50aWZpZXIsIGRlZmF1bHROYW1lc3BhY2UsIHJlc3BvbnNlLCBkYXRhT2JqZWN0LCBtZXRhZGF0YSwgZ2V0RXJyb3JTY2hlbWEpIHtcbiAgICAgICAgbGV0IG5hbWVzcGFjZSA9IGRlZmF1bHROYW1lc3BhY2U7XG4gICAgICAgIGxldCBlcnJvck5hbWUgPSBlcnJvcklkZW50aWZpZXI7XG4gICAgICAgIGlmIChlcnJvcklkZW50aWZpZXIuaW5jbHVkZXMoXCIjXCIpKSB7XG4gICAgICAgICAgICBbbmFtZXNwYWNlLCBlcnJvck5hbWVdID0gZXJyb3JJZGVudGlmaWVyLnNwbGl0KFwiI1wiKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBlcnJvck1ldGFkYXRhID0ge1xuICAgICAgICAgICAgJG1ldGFkYXRhOiBtZXRhZGF0YSxcbiAgICAgICAgICAgICRmYXVsdDogcmVzcG9uc2Uuc3RhdHVzQ29kZSA8IDUwMCA/IFwiY2xpZW50XCIgOiBcInNlcnZlclwiLFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCByZWdpc3RyeSA9IFR5cGVSZWdpc3RyeS5mb3IobmFtZXNwYWNlKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGVycm9yU2NoZW1hID0gZ2V0RXJyb3JTY2hlbWE/LihyZWdpc3RyeSwgZXJyb3JOYW1lKSA/PyByZWdpc3RyeS5nZXRTY2hlbWEoZXJyb3JJZGVudGlmaWVyKTtcbiAgICAgICAgICAgIHJldHVybiB7IGVycm9yU2NoZW1hLCBlcnJvck1ldGFkYXRhIH07XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIGRhdGFPYmplY3QubWVzc2FnZSA9IGRhdGFPYmplY3QubWVzc2FnZSA/PyBkYXRhT2JqZWN0Lk1lc3NhZ2UgPz8gXCJVbmtub3duRXJyb3JcIjtcbiAgICAgICAgICAgIGNvbnN0IHN5bnRoZXRpYyA9IFR5cGVSZWdpc3RyeS5mb3IoXCJzbWl0aHkudHMuc2RrLnN5bnRoZXRpYy5cIiArIG5hbWVzcGFjZSk7XG4gICAgICAgICAgICBjb25zdCBiYXNlRXhjZXB0aW9uU2NoZW1hID0gc3ludGhldGljLmdldEJhc2VFeGNlcHRpb24oKTtcbiAgICAgICAgICAgIGlmIChiYXNlRXhjZXB0aW9uU2NoZW1hKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgRXJyb3JDdG9yID0gc3ludGhldGljLmdldEVycm9yQ3RvcihiYXNlRXhjZXB0aW9uU2NoZW1hKSA/PyBFcnJvcjtcbiAgICAgICAgICAgICAgICB0aHJvdyB0aGlzLmRlY29yYXRlU2VydmljZUV4Y2VwdGlvbihPYmplY3QuYXNzaWduKG5ldyBFcnJvckN0b3IoeyBuYW1lOiBlcnJvck5hbWUgfSksIGVycm9yTWV0YWRhdGEpLCBkYXRhT2JqZWN0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRocm93IHRoaXMuZGVjb3JhdGVTZXJ2aWNlRXhjZXB0aW9uKE9iamVjdC5hc3NpZ24obmV3IEVycm9yKGVycm9yTmFtZSksIGVycm9yTWV0YWRhdGEpLCBkYXRhT2JqZWN0KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBkZWNvcmF0ZVNlcnZpY2VFeGNlcHRpb24oZXhjZXB0aW9uLCBhZGRpdGlvbnMgPSB7fSkge1xuICAgICAgICBpZiAodGhpcy5xdWVyeUNvbXBhdCkge1xuICAgICAgICAgICAgY29uc3QgbXNnID0gZXhjZXB0aW9uLk1lc3NhZ2UgPz8gYWRkaXRpb25zLk1lc3NhZ2U7XG4gICAgICAgICAgICBjb25zdCBlcnJvciA9IGRlY29yYXRlU2VydmljZUV4Y2VwdGlvbihleGNlcHRpb24sIGFkZGl0aW9ucyk7XG4gICAgICAgICAgICBpZiAobXNnKSB7XG4gICAgICAgICAgICAgICAgZXJyb3IubWVzc2FnZSA9IG1zZztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVycm9yLkVycm9yID0ge1xuICAgICAgICAgICAgICAgIC4uLmVycm9yLkVycm9yLFxuICAgICAgICAgICAgICAgIFR5cGU6IGVycm9yLkVycm9yLlR5cGUsXG4gICAgICAgICAgICAgICAgQ29kZTogZXJyb3IuRXJyb3IuQ29kZSxcbiAgICAgICAgICAgICAgICBNZXNzYWdlOiBlcnJvci5FcnJvci5tZXNzYWdlID8/IGVycm9yLkVycm9yLk1lc3NhZ2UgPz8gbXNnLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGNvbnN0IHJlcUlkID0gZXJyb3IuJG1ldGFkYXRhLnJlcXVlc3RJZDtcbiAgICAgICAgICAgIGlmIChyZXFJZCkge1xuICAgICAgICAgICAgICAgIGVycm9yLlJlcXVlc3RJZCA9IHJlcUlkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGVycm9yO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkZWNvcmF0ZVNlcnZpY2VFeGNlcHRpb24oZXhjZXB0aW9uLCBhZGRpdGlvbnMpO1xuICAgIH1cbiAgICBzZXRRdWVyeUNvbXBhdEVycm9yKG91dHB1dCwgcmVzcG9uc2UpIHtcbiAgICAgICAgY29uc3QgcXVlcnlFcnJvckhlYWRlciA9IHJlc3BvbnNlLmhlYWRlcnM/LltcIngtYW16bi1xdWVyeS1lcnJvclwiXTtcbiAgICAgICAgaWYgKG91dHB1dCAhPT0gdW5kZWZpbmVkICYmIHF1ZXJ5RXJyb3JIZWFkZXIgIT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc3QgW0NvZGUsIFR5cGVdID0gcXVlcnlFcnJvckhlYWRlci5zcGxpdChcIjtcIik7XG4gICAgICAgICAgICBjb25zdCBlbnRyaWVzID0gT2JqZWN0LmVudHJpZXMob3V0cHV0KTtcbiAgICAgICAgICAgIGNvbnN0IEVycm9yID0ge1xuICAgICAgICAgICAgICAgIENvZGUsXG4gICAgICAgICAgICAgICAgVHlwZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKG91dHB1dCwgRXJyb3IpO1xuICAgICAgICAgICAgZm9yIChjb25zdCBbaywgdl0gb2YgZW50cmllcykge1xuICAgICAgICAgICAgICAgIEVycm9yW2sgPT09IFwibWVzc2FnZVwiID8gXCJNZXNzYWdlXCIgOiBrXSA9IHY7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWxldGUgRXJyb3IuX190eXBlO1xuICAgICAgICAgICAgb3V0cHV0LkVycm9yID0gRXJyb3I7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcXVlcnlDb21wYXRPdXRwdXQocXVlcnlDb21wYXRFcnJvckRhdGEsIGVycm9yRGF0YSkge1xuICAgICAgICBpZiAocXVlcnlDb21wYXRFcnJvckRhdGEuRXJyb3IpIHtcbiAgICAgICAgICAgIGVycm9yRGF0YS5FcnJvciA9IHF1ZXJ5Q29tcGF0RXJyb3JEYXRhLkVycm9yO1xuICAgICAgICB9XG4gICAgICAgIGlmIChxdWVyeUNvbXBhdEVycm9yRGF0YS5UeXBlKSB7XG4gICAgICAgICAgICBlcnJvckRhdGEuVHlwZSA9IHF1ZXJ5Q29tcGF0RXJyb3JEYXRhLlR5cGU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHF1ZXJ5Q29tcGF0RXJyb3JEYXRhLkNvZGUpIHtcbiAgICAgICAgICAgIGVycm9yRGF0YS5Db2RlID0gcXVlcnlDb21wYXRFcnJvckRhdGEuQ29kZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmaW5kUXVlcnlDb21wYXRpYmxlRXJyb3IocmVnaXN0cnksIGVycm9yTmFtZSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIHJlZ2lzdHJ5LmdldFNjaGVtYShlcnJvck5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVnaXN0cnkuZmluZCgoc2NoZW1hKSA9PiBOb3JtYWxpemVkU2NoZW1hLm9mKHNjaGVtYSkuZ2V0TWVyZ2VkVHJhaXRzKCkuYXdzUXVlcnlFcnJvcj8uWzBdID09PSBlcnJvck5hbWUpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwgImltcG9ydCB7IGxvYWRTbWl0aHlScGNWMkNib3JFcnJvckNvZGUsIFNtaXRoeVJwY1YyQ2JvclByb3RvY29sIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9jYm9yXCI7XG5pbXBvcnQgeyBOb3JtYWxpemVkU2NoZW1hLCBUeXBlUmVnaXN0cnkgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3NjaGVtYVwiO1xuaW1wb3J0IHsgUHJvdG9jb2xMaWIgfSBmcm9tIFwiLi4vUHJvdG9jb2xMaWJcIjtcbmV4cG9ydCBjbGFzcyBBd3NTbWl0aHlScGNWMkNib3JQcm90b2NvbCBleHRlbmRzIFNtaXRoeVJwY1YyQ2JvclByb3RvY29sIHtcbiAgICBhd3NRdWVyeUNvbXBhdGlibGU7XG4gICAgbWl4aW47XG4gICAgY29uc3RydWN0b3IoeyBkZWZhdWx0TmFtZXNwYWNlLCBhd3NRdWVyeUNvbXBhdGlibGUsIH0pIHtcbiAgICAgICAgc3VwZXIoeyBkZWZhdWx0TmFtZXNwYWNlIH0pO1xuICAgICAgICB0aGlzLmF3c1F1ZXJ5Q29tcGF0aWJsZSA9ICEhYXdzUXVlcnlDb21wYXRpYmxlO1xuICAgICAgICB0aGlzLm1peGluID0gbmV3IFByb3RvY29sTGliKHRoaXMuYXdzUXVlcnlDb21wYXRpYmxlKTtcbiAgICB9XG4gICAgYXN5bmMgc2VyaWFsaXplUmVxdWVzdChvcGVyYXRpb25TY2hlbWEsIGlucHV0LCBjb250ZXh0KSB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSBhd2FpdCBzdXBlci5zZXJpYWxpemVSZXF1ZXN0KG9wZXJhdGlvblNjaGVtYSwgaW5wdXQsIGNvbnRleHQpO1xuICAgICAgICBpZiAodGhpcy5hd3NRdWVyeUNvbXBhdGlibGUpIHtcbiAgICAgICAgICAgIHJlcXVlc3QuaGVhZGVyc1tcIngtYW16bi1xdWVyeS1tb2RlXCJdID0gXCJ0cnVlXCI7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlcXVlc3Q7XG4gICAgfVxuICAgIGFzeW5jIGhhbmRsZUVycm9yKG9wZXJhdGlvblNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UsIGRhdGFPYmplY3QsIG1ldGFkYXRhKSB7XG4gICAgICAgIGlmICh0aGlzLmF3c1F1ZXJ5Q29tcGF0aWJsZSkge1xuICAgICAgICAgICAgdGhpcy5taXhpbi5zZXRRdWVyeUNvbXBhdEVycm9yKGRhdGFPYmplY3QsIHJlc3BvbnNlKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBlcnJvck5hbWUgPSAoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY29tcGF0SGVhZGVyID0gcmVzcG9uc2UuaGVhZGVyc1tcIngtYW16bi1xdWVyeS1lcnJvclwiXTtcbiAgICAgICAgICAgIGlmIChjb21wYXRIZWFkZXIgJiYgdGhpcy5hd3NRdWVyeUNvbXBhdGlibGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY29tcGF0SGVhZGVyLnNwbGl0KFwiO1wiKVswXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBsb2FkU21pdGh5UnBjVjJDYm9yRXJyb3JDb2RlKHJlc3BvbnNlLCBkYXRhT2JqZWN0KSA/PyBcIlVua25vd25cIjtcbiAgICAgICAgfSkoKTtcbiAgICAgICAgY29uc3QgeyBlcnJvclNjaGVtYSwgZXJyb3JNZXRhZGF0YSB9ID0gYXdhaXQgdGhpcy5taXhpbi5nZXRFcnJvclNjaGVtYU9yVGhyb3dCYXNlRXhjZXB0aW9uKGVycm9yTmFtZSwgdGhpcy5vcHRpb25zLmRlZmF1bHROYW1lc3BhY2UsIHJlc3BvbnNlLCBkYXRhT2JqZWN0LCBtZXRhZGF0YSwgdGhpcy5hd3NRdWVyeUNvbXBhdGlibGUgPyB0aGlzLm1peGluLmZpbmRRdWVyeUNvbXBhdGlibGVFcnJvciA6IHVuZGVmaW5lZCk7XG4gICAgICAgIGNvbnN0IG5zID0gTm9ybWFsaXplZFNjaGVtYS5vZihlcnJvclNjaGVtYSk7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBkYXRhT2JqZWN0Lm1lc3NhZ2UgPz8gZGF0YU9iamVjdC5NZXNzYWdlID8/IFwiVW5rbm93blwiO1xuICAgICAgICBjb25zdCBFcnJvckN0b3IgPSBUeXBlUmVnaXN0cnkuZm9yKGVycm9yU2NoZW1hWzFdKS5nZXRFcnJvckN0b3IoZXJyb3JTY2hlbWEpID8/IEVycm9yO1xuICAgICAgICBjb25zdCBleGNlcHRpb24gPSBuZXcgRXJyb3JDdG9yKG1lc3NhZ2UpO1xuICAgICAgICBjb25zdCBvdXRwdXQgPSB7fTtcbiAgICAgICAgZm9yIChjb25zdCBbbmFtZSwgbWVtYmVyXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICBpZiAoZGF0YU9iamVjdFtuYW1lXSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgb3V0cHV0W25hbWVdID0gdGhpcy5kZXNlcmlhbGl6ZXIucmVhZFZhbHVlKG1lbWJlciwgZGF0YU9iamVjdFtuYW1lXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuYXdzUXVlcnlDb21wYXRpYmxlKSB7XG4gICAgICAgICAgICB0aGlzLm1peGluLnF1ZXJ5Q29tcGF0T3V0cHV0KGRhdGFPYmplY3QsIG91dHB1dCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgdGhpcy5taXhpbi5kZWNvcmF0ZVNlcnZpY2VFeGNlcHRpb24oT2JqZWN0LmFzc2lnbihleGNlcHRpb24sIGVycm9yTWV0YWRhdGEsIHtcbiAgICAgICAgICAgICRmYXVsdDogbnMuZ2V0TWVyZ2VkVHJhaXRzKCkuZXJyb3IsXG4gICAgICAgICAgICBtZXNzYWdlLFxuICAgICAgICB9LCBvdXRwdXQpLCBkYXRhT2JqZWN0KTtcbiAgICB9XG59XG4iLCAiZXhwb3J0IGNvbnN0IF90b1N0ciA9ICh2YWwpID0+IHtcbiAgICBpZiAodmFsID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHZhbDtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB2YWwgPT09IFwibnVtYmVyXCIgfHwgdHlwZW9mIHZhbCA9PT0gXCJiaWdpbnRcIikge1xuICAgICAgICBjb25zdCB3YXJuaW5nID0gbmV3IEVycm9yKGBSZWNlaXZlZCBudW1iZXIgJHt2YWx9IHdoZXJlIGEgc3RyaW5nIHdhcyBleHBlY3RlZC5gKTtcbiAgICAgICAgd2FybmluZy5uYW1lID0gXCJXYXJuaW5nXCI7XG4gICAgICAgIGNvbnNvbGUud2Fybih3YXJuaW5nKTtcbiAgICAgICAgcmV0dXJuIFN0cmluZyh2YWwpO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHZhbCA9PT0gXCJib29sZWFuXCIpIHtcbiAgICAgICAgY29uc3Qgd2FybmluZyA9IG5ldyBFcnJvcihgUmVjZWl2ZWQgYm9vbGVhbiAke3ZhbH0gd2hlcmUgYSBzdHJpbmcgd2FzIGV4cGVjdGVkLmApO1xuICAgICAgICB3YXJuaW5nLm5hbWUgPSBcIldhcm5pbmdcIjtcbiAgICAgICAgY29uc29sZS53YXJuKHdhcm5pbmcpO1xuICAgICAgICByZXR1cm4gU3RyaW5nKHZhbCk7XG4gICAgfVxuICAgIHJldHVybiB2YWw7XG59O1xuZXhwb3J0IGNvbnN0IF90b0Jvb2wgPSAodmFsKSA9PiB7XG4gICAgaWYgKHZhbCA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiB2YWw7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgdmFsID09PSBcIm51bWJlclwiKSB7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgdmFsID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIGNvbnN0IGxvd2VyY2FzZSA9IHZhbC50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBpZiAodmFsICE9PSBcIlwiICYmIGxvd2VyY2FzZSAhPT0gXCJmYWxzZVwiICYmIGxvd2VyY2FzZSAhPT0gXCJ0cnVlXCIpIHtcbiAgICAgICAgICAgIGNvbnN0IHdhcm5pbmcgPSBuZXcgRXJyb3IoYFJlY2VpdmVkIHN0cmluZyBcIiR7dmFsfVwiIHdoZXJlIGEgYm9vbGVhbiB3YXMgZXhwZWN0ZWQuYCk7XG4gICAgICAgICAgICB3YXJuaW5nLm5hbWUgPSBcIldhcm5pbmdcIjtcbiAgICAgICAgICAgIGNvbnNvbGUud2Fybih3YXJuaW5nKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsICE9PSBcIlwiICYmIGxvd2VyY2FzZSAhPT0gXCJmYWxzZVwiO1xuICAgIH1cbiAgICByZXR1cm4gdmFsO1xufTtcbmV4cG9ydCBjb25zdCBfdG9OdW0gPSAodmFsKSA9PiB7XG4gICAgaWYgKHZhbCA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiB2YWw7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgdmFsID09PSBcImJvb2xlYW5cIikge1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHZhbCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICBjb25zdCBudW0gPSBOdW1iZXIodmFsKTtcbiAgICAgICAgaWYgKG51bS50b1N0cmluZygpICE9PSB2YWwpIHtcbiAgICAgICAgICAgIGNvbnN0IHdhcm5pbmcgPSBuZXcgRXJyb3IoYFJlY2VpdmVkIHN0cmluZyBcIiR7dmFsfVwiIHdoZXJlIGEgbnVtYmVyIHdhcyBleHBlY3RlZC5gKTtcbiAgICAgICAgICAgIHdhcm5pbmcubmFtZSA9IFwiV2FybmluZ1wiO1xuICAgICAgICAgICAgY29uc29sZS53YXJuKHdhcm5pbmcpO1xuICAgICAgICAgICAgcmV0dXJuIHZhbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVtO1xuICAgIH1cbiAgICByZXR1cm4gdmFsO1xufTtcbiIsICJleHBvcnQgY2xhc3MgU2VyZGVDb250ZXh0Q29uZmlnIHtcbiAgICBzZXJkZUNvbnRleHQ7XG4gICAgc2V0U2VyZGVDb250ZXh0KHNlcmRlQ29udGV4dCkge1xuICAgICAgICB0aGlzLnNlcmRlQ29udGV4dCA9IHNlcmRlQ29udGV4dDtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgTm9ybWFsaXplZFNjaGVtYSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2NoZW1hXCI7XG5leHBvcnQgZnVuY3Rpb24qIHNlcmlhbGl6aW5nU3RydWN0SXRlcmF0b3IobnMsIHNvdXJjZU9iamVjdCkge1xuICAgIGlmIChucy5pc1VuaXRTY2hlbWEoKSkge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHN0cnVjdCA9IG5zLmdldFNjaGVtYSgpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3RydWN0WzRdLmxlbmd0aDsgKytpKSB7XG4gICAgICAgIGNvbnN0IGtleSA9IHN0cnVjdFs0XVtpXTtcbiAgICAgICAgY29uc3QgbWVtYmVyU2NoZW1hID0gc3RydWN0WzVdW2ldO1xuICAgICAgICBjb25zdCBtZW1iZXJOcyA9IG5ldyBOb3JtYWxpemVkU2NoZW1hKFttZW1iZXJTY2hlbWEsIDBdLCBrZXkpO1xuICAgICAgICBpZiAoIShrZXkgaW4gc291cmNlT2JqZWN0KSAmJiAhbWVtYmVyTnMuaXNJZGVtcG90ZW5jeVRva2VuKCkpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIHlpZWxkIFtrZXksIG1lbWJlck5zXTtcbiAgICB9XG59XG5leHBvcnQgZnVuY3Rpb24qIGRlc2VyaWFsaXppbmdTdHJ1Y3RJdGVyYXRvcihucywgc291cmNlT2JqZWN0LCBuYW1lVHJhaXQpIHtcbiAgICBpZiAobnMuaXNVbml0U2NoZW1hKCkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBzdHJ1Y3QgPSBucy5nZXRTY2hlbWEoKTtcbiAgICBsZXQga2V5c1JlbWFpbmluZyA9IE9iamVjdC5rZXlzKHNvdXJjZU9iamVjdCkuZmlsdGVyKChrKSA9PiBrICE9PSBcIl9fdHlwZVwiKS5sZW5ndGg7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdHJ1Y3RbNF0ubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgaWYgKGtleXNSZW1haW5pbmcgPT09IDApIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGtleSA9IHN0cnVjdFs0XVtpXTtcbiAgICAgICAgY29uc3QgbWVtYmVyU2NoZW1hID0gc3RydWN0WzVdW2ldO1xuICAgICAgICBjb25zdCBtZW1iZXJOcyA9IG5ldyBOb3JtYWxpemVkU2NoZW1hKFttZW1iZXJTY2hlbWEsIDBdLCBrZXkpO1xuICAgICAgICBsZXQgc2VyaWFsaXphdGlvbktleSA9IGtleTtcbiAgICAgICAgaWYgKG5hbWVUcmFpdCkge1xuICAgICAgICAgICAgc2VyaWFsaXphdGlvbktleSA9IG1lbWJlck5zLmdldE1lcmdlZFRyYWl0cygpW25hbWVUcmFpdF0gPz8ga2V5O1xuICAgICAgICB9XG4gICAgICAgIGlmICghKHNlcmlhbGl6YXRpb25LZXkgaW4gc291cmNlT2JqZWN0KSkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgeWllbGQgW2tleSwgbWVtYmVyTnNdO1xuICAgICAgICBrZXlzUmVtYWluaW5nIC09IDE7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IE51bWVyaWNWYWx1ZSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2VyZGVcIjtcbmV4cG9ydCBmdW5jdGlvbiBqc29uUmV2aXZlcihrZXksIHZhbHVlLCBjb250ZXh0KSB7XG4gICAgaWYgKGNvbnRleHQ/LnNvdXJjZSkge1xuICAgICAgICBjb25zdCBudW1lcmljU3RyaW5nID0gY29udGV4dC5zb3VyY2U7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZSA+IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSIHx8IHZhbHVlIDwgTnVtYmVyLk1JTl9TQUZFX0lOVEVHRVIgfHwgbnVtZXJpY1N0cmluZyAhPT0gU3RyaW5nKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzRnJhY3Rpb25hbCA9IG51bWVyaWNTdHJpbmcuaW5jbHVkZXMoXCIuXCIpO1xuICAgICAgICAgICAgICAgIGlmIChpc0ZyYWN0aW9uYWwpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBOdW1lcmljVmFsdWUobnVtZXJpY1N0cmluZywgXCJiaWdEZWNpbWFsXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEJpZ0ludChudW1lcmljU3RyaW5nKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlO1xufVxuIiwgImltcG9ydCB7IGNvbGxlY3RCb2R5IH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgdG9VdGY4IH0gZnJvbSBcIkBzbWl0aHkvdXRpbC11dGY4XCI7XG5leHBvcnQgY29uc3QgY29sbGVjdEJvZHlTdHJpbmcgPSAoc3RyZWFtQm9keSwgY29udGV4dCkgPT4gY29sbGVjdEJvZHkoc3RyZWFtQm9keSwgY29udGV4dCkudGhlbigoYm9keSkgPT4gKGNvbnRleHQ/LnV0ZjhFbmNvZGVyID8/IHRvVXRmOCkoYm9keSkpO1xuIiwgImltcG9ydCB7IGNvbGxlY3RCb2R5U3RyaW5nIH0gZnJvbSBcIi4uL2NvbW1vblwiO1xuZXhwb3J0IGNvbnN0IHBhcnNlSnNvbkJvZHkgPSAoc3RyZWFtQm9keSwgY29udGV4dCkgPT4gY29sbGVjdEJvZHlTdHJpbmcoc3RyZWFtQm9keSwgY29udGV4dCkudGhlbigoZW5jb2RlZCkgPT4ge1xuICAgIGlmIChlbmNvZGVkLmxlbmd0aCkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoZW5jb2RlZCk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIGlmIChlPy5uYW1lID09PSBcIlN5bnRheEVycm9yXCIpIHtcbiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwgXCIkcmVzcG9uc2VCb2R5VGV4dFwiLCB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBlbmNvZGVkLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4ge307XG59KTtcbmV4cG9ydCBjb25zdCBwYXJzZUpzb25FcnJvckJvZHkgPSBhc3luYyAoZXJyb3JCb2R5LCBjb250ZXh0KSA9PiB7XG4gICAgY29uc3QgdmFsdWUgPSBhd2FpdCBwYXJzZUpzb25Cb2R5KGVycm9yQm9keSwgY29udGV4dCk7XG4gICAgdmFsdWUubWVzc2FnZSA9IHZhbHVlLm1lc3NhZ2UgPz8gdmFsdWUuTWVzc2FnZTtcbiAgICByZXR1cm4gdmFsdWU7XG59O1xuZXhwb3J0IGNvbnN0IGxvYWRSZXN0SnNvbkVycm9yQ29kZSA9IChvdXRwdXQsIGRhdGEpID0+IHtcbiAgICBjb25zdCBmaW5kS2V5ID0gKG9iamVjdCwga2V5KSA9PiBPYmplY3Qua2V5cyhvYmplY3QpLmZpbmQoKGspID0+IGsudG9Mb3dlckNhc2UoKSA9PT0ga2V5LnRvTG93ZXJDYXNlKCkpO1xuICAgIGNvbnN0IHNhbml0aXplRXJyb3JDb2RlID0gKHJhd1ZhbHVlKSA9PiB7XG4gICAgICAgIGxldCBjbGVhblZhbHVlID0gcmF3VmFsdWU7XG4gICAgICAgIGlmICh0eXBlb2YgY2xlYW5WYWx1ZSA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgY2xlYW5WYWx1ZSA9IGNsZWFuVmFsdWUudG9TdHJpbmcoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2xlYW5WYWx1ZS5pbmRleE9mKFwiLFwiKSA+PSAwKSB7XG4gICAgICAgICAgICBjbGVhblZhbHVlID0gY2xlYW5WYWx1ZS5zcGxpdChcIixcIilbMF07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNsZWFuVmFsdWUuaW5kZXhPZihcIjpcIikgPj0gMCkge1xuICAgICAgICAgICAgY2xlYW5WYWx1ZSA9IGNsZWFuVmFsdWUuc3BsaXQoXCI6XCIpWzBdO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjbGVhblZhbHVlLmluZGV4T2YoXCIjXCIpID49IDApIHtcbiAgICAgICAgICAgIGNsZWFuVmFsdWUgPSBjbGVhblZhbHVlLnNwbGl0KFwiI1wiKVsxXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY2xlYW5WYWx1ZTtcbiAgICB9O1xuICAgIGNvbnN0IGhlYWRlcktleSA9IGZpbmRLZXkob3V0cHV0LmhlYWRlcnMsIFwieC1hbXpuLWVycm9ydHlwZVwiKTtcbiAgICBpZiAoaGVhZGVyS2V5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIHNhbml0aXplRXJyb3JDb2RlKG91dHB1dC5oZWFkZXJzW2hlYWRlcktleV0pO1xuICAgIH1cbiAgICBpZiAoZGF0YSAmJiB0eXBlb2YgZGF0YSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICBjb25zdCBjb2RlS2V5ID0gZmluZEtleShkYXRhLCBcImNvZGVcIik7XG4gICAgICAgIGlmIChjb2RlS2V5ICYmIGRhdGFbY29kZUtleV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHNhbml0aXplRXJyb3JDb2RlKGRhdGFbY29kZUtleV0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhW1wiX190eXBlXCJdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBzYW5pdGl6ZUVycm9yQ29kZShkYXRhW1wiX190eXBlXCJdKTtcbiAgICAgICAgfVxuICAgIH1cbn07XG4iLCAiaW1wb3J0IHsgZGV0ZXJtaW5lVGltZXN0YW1wRm9ybWF0IH0gZnJvbSBcIkBzbWl0aHkvY29yZS9wcm90b2NvbHNcIjtcbmltcG9ydCB7IE5vcm1hbGl6ZWRTY2hlbWEgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3NjaGVtYVwiO1xuaW1wb3J0IHsgTGF6eUpzb25TdHJpbmcsIE51bWVyaWNWYWx1ZSwgcGFyc2VFcG9jaFRpbWVzdGFtcCwgcGFyc2VSZmMzMzM5RGF0ZVRpbWVXaXRoT2Zmc2V0LCBwYXJzZVJmYzcyMzFEYXRlVGltZSwgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3NlcmRlXCI7XG5pbXBvcnQgeyBmcm9tQmFzZTY0IH0gZnJvbSBcIkBzbWl0aHkvdXRpbC1iYXNlNjRcIjtcbmltcG9ydCB7IFNlcmRlQ29udGV4dENvbmZpZyB9IGZyb20gXCIuLi9Db25maWd1cmFibGVTZXJkZUNvbnRleHRcIjtcbmltcG9ydCB7IGRlc2VyaWFsaXppbmdTdHJ1Y3RJdGVyYXRvciB9IGZyb20gXCIuLi9zdHJ1Y3RJdGVyYXRvclwiO1xuaW1wb3J0IHsganNvblJldml2ZXIgfSBmcm9tIFwiLi9qc29uUmV2aXZlclwiO1xuaW1wb3J0IHsgcGFyc2VKc29uQm9keSB9IGZyb20gXCIuL3BhcnNlSnNvbkJvZHlcIjtcbmV4cG9ydCBjbGFzcyBKc29uU2hhcGVEZXNlcmlhbGl6ZXIgZXh0ZW5kcyBTZXJkZUNvbnRleHRDb25maWcge1xuICAgIHNldHRpbmdzO1xuICAgIGNvbnN0cnVjdG9yKHNldHRpbmdzKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuc2V0dGluZ3MgPSBzZXR0aW5ncztcbiAgICB9XG4gICAgYXN5bmMgcmVhZChzY2hlbWEsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlYWQoc2NoZW1hLCB0eXBlb2YgZGF0YSA9PT0gXCJzdHJpbmdcIiA/IEpTT04ucGFyc2UoZGF0YSwganNvblJldml2ZXIpIDogYXdhaXQgcGFyc2VKc29uQm9keShkYXRhLCB0aGlzLnNlcmRlQ29udGV4dCkpO1xuICAgIH1cbiAgICByZWFkT2JqZWN0KHNjaGVtYSwgZGF0YSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVhZChzY2hlbWEsIGRhdGEpO1xuICAgIH1cbiAgICBfcmVhZChzY2hlbWEsIHZhbHVlKSB7XG4gICAgICAgIGNvbnN0IGlzT2JqZWN0ID0gdmFsdWUgIT09IG51bGwgJiYgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiO1xuICAgICAgICBjb25zdCBucyA9IE5vcm1hbGl6ZWRTY2hlbWEub2Yoc2NoZW1hKTtcbiAgICAgICAgaWYgKGlzT2JqZWN0KSB7XG4gICAgICAgICAgICBpZiAobnMuaXNTdHJ1Y3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG91dCA9IHt9O1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgW21lbWJlck5hbWUsIG1lbWJlclNjaGVtYV0gb2YgZGVzZXJpYWxpemluZ1N0cnVjdEl0ZXJhdG9yKG5zLCB2YWx1ZSwgdGhpcy5zZXR0aW5ncy5qc29uTmFtZSA/IFwianNvbk5hbWVcIiA6IGZhbHNlKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBmcm9tS2V5ID0gdGhpcy5zZXR0aW5ncy5qc29uTmFtZSA/IG1lbWJlclNjaGVtYS5nZXRNZXJnZWRUcmFpdHMoKS5qc29uTmFtZSA/PyBtZW1iZXJOYW1lIDogbWVtYmVyTmFtZTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGVzZXJpYWxpemVkVmFsdWUgPSB0aGlzLl9yZWFkKG1lbWJlclNjaGVtYSwgdmFsdWVbZnJvbUtleV0pO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZGVzZXJpYWxpemVkVmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3V0W21lbWJlck5hbWVdID0gZGVzZXJpYWxpemVkVmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIG91dDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSAmJiBucy5pc0xpc3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxpc3RNZW1iZXIgPSBucy5nZXRWYWx1ZVNjaGVtYSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IG91dCA9IFtdO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNwYXJzZSA9ICEhbnMuZ2V0TWVyZ2VkVHJhaXRzKCkuc3BhcnNlO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiB2YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoc3BhcnNlIHx8IGl0ZW0gIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3V0LnB1c2godGhpcy5fcmVhZChsaXN0TWVtYmVyLCBpdGVtKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIG91dDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChucy5pc01hcFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbWFwTWVtYmVyID0gbnMuZ2V0VmFsdWVTY2hlbWEoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBvdXQgPSB7fTtcbiAgICAgICAgICAgICAgICBjb25zdCBzcGFyc2UgPSAhIW5zLmdldE1lcmdlZFRyYWl0cygpLnNwYXJzZTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IFtfaywgX3ZdIG9mIE9iamVjdC5lbnRyaWVzKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoc3BhcnNlIHx8IF92ICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG91dFtfa10gPSB0aGlzLl9yZWFkKG1hcE1lbWJlciwgX3YpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBvdXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzQmxvYlNjaGVtYSgpICYmIHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgcmV0dXJuIGZyb21CYXNlNjQodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG1lZGlhVHlwZSA9IG5zLmdldE1lcmdlZFRyYWl0cygpLm1lZGlhVHlwZTtcbiAgICAgICAgaWYgKG5zLmlzU3RyaW5nU2NoZW1hKCkgJiYgdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiICYmIG1lZGlhVHlwZSkge1xuICAgICAgICAgICAgY29uc3QgaXNKc29uID0gbWVkaWFUeXBlID09PSBcImFwcGxpY2F0aW9uL2pzb25cIiB8fCBtZWRpYVR5cGUuZW5kc1dpdGgoXCIranNvblwiKTtcbiAgICAgICAgICAgIGlmIChpc0pzb24pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gTGF6eUpzb25TdHJpbmcuZnJvbSh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzVGltZXN0YW1wU2NoZW1hKCkgJiYgdmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc3QgZm9ybWF0ID0gZGV0ZXJtaW5lVGltZXN0YW1wRm9ybWF0KG5zLCB0aGlzLnNldHRpbmdzKTtcbiAgICAgICAgICAgIHN3aXRjaCAoZm9ybWF0KSB7XG4gICAgICAgICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcGFyc2VSZmMzMzM5RGF0ZVRpbWVXaXRoT2Zmc2V0KHZhbHVlKTtcbiAgICAgICAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZVJmYzcyMzFEYXRlVGltZSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgY2FzZSA3OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcGFyc2VFcG9jaFRpbWVzdGFtcCh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKFwiTWlzc2luZyB0aW1lc3RhbXAgZm9ybWF0LCBwYXJzaW5nIHZhbHVlIHdpdGggRGF0ZSBjb25zdHJ1Y3RvcjpcIiwgdmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IERhdGUodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChucy5pc0JpZ0ludGVnZXJTY2hlbWEoKSAmJiAodHlwZW9mIHZhbHVlID09PSBcIm51bWJlclwiIHx8IHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikpIHtcbiAgICAgICAgICAgIHJldHVybiBCaWdJbnQodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChucy5pc0JpZ0RlY2ltYWxTY2hlbWEoKSAmJiB2YWx1ZSAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIE51bWVyaWNWYWx1ZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHVudHlwZWQgPSB2YWx1ZTtcbiAgICAgICAgICAgIGlmICh1bnR5cGVkLnR5cGUgPT09IFwiYmlnRGVjaW1hbFwiICYmIFwic3RyaW5nXCIgaW4gdW50eXBlZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgTnVtZXJpY1ZhbHVlKHVudHlwZWQuc3RyaW5nLCB1bnR5cGVkLnR5cGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG5ldyBOdW1lcmljVmFsdWUoU3RyaW5nKHZhbHVlKSwgXCJiaWdEZWNpbWFsXCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChucy5pc051bWVyaWNTY2hlbWEoKSAmJiB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIHN3aXRjaCAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIFwiSW5maW5pdHlcIjpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEluZmluaXR5O1xuICAgICAgICAgICAgICAgIGNhc2UgXCItSW5maW5pdHlcIjpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1JbmZpbml0eTtcbiAgICAgICAgICAgICAgICBjYXNlIFwiTmFOXCI6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBOYU47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzRG9jdW1lbnRTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKGlzT2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3V0ID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyBbXSA6IHt9O1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodiBpbnN0YW5jZW9mIE51bWVyaWNWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3V0W2tdID0gdjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG91dFtrXSA9IHRoaXMuX3JlYWQobnMsIHYpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBvdXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3RydWN0dXJlZENsb25lKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IE51bWVyaWNWYWx1ZSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2VyZGVcIjtcbmNvbnN0IE5VTUVSSUNfQ09OVFJPTF9DSEFSID0gU3RyaW5nLmZyb21DaGFyQ29kZSg5MjUpO1xuZXhwb3J0IGNsYXNzIEpzb25SZXBsYWNlciB7XG4gICAgdmFsdWVzID0gbmV3IE1hcCgpO1xuICAgIGNvdW50ZXIgPSAwO1xuICAgIHN0YWdlID0gMDtcbiAgICBjcmVhdGVSZXBsYWNlcigpIHtcbiAgICAgICAgaWYgKHRoaXMuc3RhZ2UgPT09IDEpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkBhd3Mtc2RrL2NvcmUvcHJvdG9jb2xzIC0gSnNvblJlcGxhY2VyIGFscmVhZHkgY3JlYXRlZC5cIik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuc3RhZ2UgPT09IDIpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkBhd3Mtc2RrL2NvcmUvcHJvdG9jb2xzIC0gSnNvblJlcGxhY2VyIGV4aGF1c3RlZC5cIik7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zdGFnZSA9IDE7XG4gICAgICAgIHJldHVybiAoa2V5LCB2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgTnVtZXJpY1ZhbHVlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdiA9IGAke05VTUVSSUNfQ09OVFJPTF9DSEFSICsgXCJudlwiICsgdGhpcy5jb3VudGVyKyt9X2AgKyB2YWx1ZS5zdHJpbmc7XG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZXMuc2V0KGBcIiR7dn1cImAsIHZhbHVlLnN0cmluZyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHY7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcImJpZ2ludFwiKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcyA9IHZhbHVlLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgdiA9IGAke05VTUVSSUNfQ09OVFJPTF9DSEFSICsgXCJiXCIgKyB0aGlzLmNvdW50ZXIrK31fYCArIHM7XG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZXMuc2V0KGBcIiR7dn1cImAsIHMpO1xuICAgICAgICAgICAgICAgIHJldHVybiB2O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9O1xuICAgIH1cbiAgICByZXBsYWNlSW5Kc29uKGpzb24pIHtcbiAgICAgICAgaWYgKHRoaXMuc3RhZ2UgPT09IDApIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkBhd3Mtc2RrL2NvcmUvcHJvdG9jb2xzIC0gSnNvblJlcGxhY2VyIG5vdCBjcmVhdGVkIHlldC5cIik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuc3RhZ2UgPT09IDIpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkBhd3Mtc2RrL2NvcmUvcHJvdG9jb2xzIC0gSnNvblJlcGxhY2VyIGV4aGF1c3RlZC5cIik7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zdGFnZSA9IDI7XG4gICAgICAgIGlmICh0aGlzLmNvdW50ZXIgPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBqc29uO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIHRoaXMudmFsdWVzKSB7XG4gICAgICAgICAgICBqc29uID0ganNvbi5yZXBsYWNlKGtleSwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBqc29uO1xuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBkZXRlcm1pbmVUaW1lc3RhbXBGb3JtYXQgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3Byb3RvY29sc1wiO1xuaW1wb3J0IHsgTm9ybWFsaXplZFNjaGVtYSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2NoZW1hXCI7XG5pbXBvcnQgeyBkYXRlVG9VdGNTdHJpbmcsIGdlbmVyYXRlSWRlbXBvdGVuY3lUb2tlbiwgTGF6eUpzb25TdHJpbmcsIE51bWVyaWNWYWx1ZSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2VyZGVcIjtcbmltcG9ydCB7IHRvQmFzZTY0IH0gZnJvbSBcIkBzbWl0aHkvdXRpbC1iYXNlNjRcIjtcbmltcG9ydCB7IFNlcmRlQ29udGV4dENvbmZpZyB9IGZyb20gXCIuLi9Db25maWd1cmFibGVTZXJkZUNvbnRleHRcIjtcbmltcG9ydCB7IHNlcmlhbGl6aW5nU3RydWN0SXRlcmF0b3IgfSBmcm9tIFwiLi4vc3RydWN0SXRlcmF0b3JcIjtcbmltcG9ydCB7IEpzb25SZXBsYWNlciB9IGZyb20gXCIuL2pzb25SZXBsYWNlclwiO1xuZXhwb3J0IGNsYXNzIEpzb25TaGFwZVNlcmlhbGl6ZXIgZXh0ZW5kcyBTZXJkZUNvbnRleHRDb25maWcge1xuICAgIHNldHRpbmdzO1xuICAgIGJ1ZmZlcjtcbiAgICB1c2VSZXBsYWNlciA9IGZhbHNlO1xuICAgIHJvb3RTY2hlbWE7XG4gICAgY29uc3RydWN0b3Ioc2V0dGluZ3MpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5zZXR0aW5ncyA9IHNldHRpbmdzO1xuICAgIH1cbiAgICB3cml0ZShzY2hlbWEsIHZhbHVlKSB7XG4gICAgICAgIHRoaXMucm9vdFNjaGVtYSA9IE5vcm1hbGl6ZWRTY2hlbWEub2Yoc2NoZW1hKTtcbiAgICAgICAgdGhpcy5idWZmZXIgPSB0aGlzLl93cml0ZSh0aGlzLnJvb3RTY2hlbWEsIHZhbHVlKTtcbiAgICB9XG4gICAgd3JpdGVEaXNjcmltaW5hdGVkRG9jdW1lbnQoc2NoZW1hLCB2YWx1ZSkge1xuICAgICAgICB0aGlzLndyaXRlKHNjaGVtYSwgdmFsdWUpO1xuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYnVmZmVyID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICB0aGlzLmJ1ZmZlci5fX3R5cGUgPSBOb3JtYWxpemVkU2NoZW1hLm9mKHNjaGVtYSkuZ2V0TmFtZSh0cnVlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmbHVzaCgpIHtcbiAgICAgICAgY29uc3QgeyByb290U2NoZW1hLCB1c2VSZXBsYWNlciB9ID0gdGhpcztcbiAgICAgICAgdGhpcy5yb290U2NoZW1hID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLnVzZVJlcGxhY2VyID0gZmFsc2U7XG4gICAgICAgIGlmIChyb290U2NoZW1hPy5pc1N0cnVjdFNjaGVtYSgpIHx8IHJvb3RTY2hlbWE/LmlzRG9jdW1lbnRTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKCF1c2VSZXBsYWNlcikge1xuICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh0aGlzLmJ1ZmZlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCByZXBsYWNlciA9IG5ldyBKc29uUmVwbGFjZXIoKTtcbiAgICAgICAgICAgIHJldHVybiByZXBsYWNlci5yZXBsYWNlSW5Kc29uKEpTT04uc3RyaW5naWZ5KHRoaXMuYnVmZmVyLCByZXBsYWNlci5jcmVhdGVSZXBsYWNlcigpLCAwKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuYnVmZmVyO1xuICAgIH1cbiAgICBfd3JpdGUoc2NoZW1hLCB2YWx1ZSwgY29udGFpbmVyKSB7XG4gICAgICAgIGNvbnN0IGlzT2JqZWN0ID0gdmFsdWUgIT09IG51bGwgJiYgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiO1xuICAgICAgICBjb25zdCBucyA9IE5vcm1hbGl6ZWRTY2hlbWEub2Yoc2NoZW1hKTtcbiAgICAgICAgaWYgKGlzT2JqZWN0KSB7XG4gICAgICAgICAgICBpZiAobnMuaXNTdHJ1Y3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG91dCA9IHt9O1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgW21lbWJlck5hbWUsIG1lbWJlclNjaGVtYV0gb2Ygc2VyaWFsaXppbmdTdHJ1Y3RJdGVyYXRvcihucywgdmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNlcmlhbGl6YWJsZVZhbHVlID0gdGhpcy5fd3JpdGUobWVtYmVyU2NoZW1hLCB2YWx1ZVttZW1iZXJOYW1lXSwgbnMpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoc2VyaWFsaXphYmxlVmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QganNvbk5hbWUgPSBtZW1iZXJTY2hlbWEuZ2V0TWVyZ2VkVHJhaXRzKCkuanNvbk5hbWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXRLZXkgPSB0aGlzLnNldHRpbmdzLmpzb25OYW1lID8ganNvbk5hbWUgPz8gbWVtYmVyTmFtZSA6IG1lbWJlck5hbWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBvdXRbdGFyZ2V0S2V5XSA9IHNlcmlhbGl6YWJsZVZhbHVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBvdXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgbnMuaXNMaXN0U2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBsaXN0TWVtYmVyID0gbnMuZ2V0VmFsdWVTY2hlbWEoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBvdXQgPSBbXTtcbiAgICAgICAgICAgICAgICBjb25zdCBzcGFyc2UgPSAhIW5zLmdldE1lcmdlZFRyYWl0cygpLnNwYXJzZTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNwYXJzZSB8fCBpdGVtICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG91dC5wdXNoKHRoaXMuX3dyaXRlKGxpc3RNZW1iZXIsIGl0ZW0pKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gb3V0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG5zLmlzTWFwU2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBtYXBNZW1iZXIgPSBucy5nZXRWYWx1ZVNjaGVtYSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IG91dCA9IHt9O1xuICAgICAgICAgICAgICAgIGNvbnN0IHNwYXJzZSA9ICEhbnMuZ2V0TWVyZ2VkVHJhaXRzKCkuc3BhcnNlO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgW19rLCBfdl0gb2YgT2JqZWN0LmVudHJpZXModmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzcGFyc2UgfHwgX3YgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3V0W19rXSA9IHRoaXMuX3dyaXRlKG1hcE1lbWJlciwgX3YpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBvdXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBVaW50OEFycmF5ICYmIChucy5pc0Jsb2JTY2hlbWEoKSB8fCBucy5pc0RvY3VtZW50U2NoZW1hKCkpKSB7XG4gICAgICAgICAgICAgICAgaWYgKG5zID09PSB0aGlzLnJvb3RTY2hlbWEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gKHRoaXMuc2VyZGVDb250ZXh0Py5iYXNlNjRFbmNvZGVyID8/IHRvQmFzZTY0KSh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlICYmIChucy5pc1RpbWVzdGFtcFNjaGVtYSgpIHx8IG5zLmlzRG9jdW1lbnRTY2hlbWEoKSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmb3JtYXQgPSBkZXRlcm1pbmVUaW1lc3RhbXBGb3JtYXQobnMsIHRoaXMuc2V0dGluZ3MpO1xuICAgICAgICAgICAgICAgIHN3aXRjaCAoZm9ybWF0KSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZS50b0lTT1N0cmluZygpLnJlcGxhY2UoXCIuMDAwWlwiLCBcIlpcIik7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBkYXRlVG9VdGNTdHJpbmcodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDc6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUuZ2V0VGltZSgpIC8gMTAwMDtcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihcIk1pc3NpbmcgdGltZXN0YW1wIGZvcm1hdCwgdXNpbmcgZXBvY2ggc2Vjb25kc1wiLCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUuZ2V0VGltZSgpIC8gMTAwMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBOdW1lcmljVmFsdWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVzZVJlcGxhY2VyID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodmFsdWUgPT09IG51bGwgJiYgY29udGFpbmVyPy5pc1N0cnVjdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICByZXR1cm4gdm9pZCAwO1xuICAgICAgICB9XG4gICAgICAgIGlmIChucy5pc1N0cmluZ1NjaGVtYSgpKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcInVuZGVmaW5lZFwiICYmIG5zLmlzSWRlbXBvdGVuY3lUb2tlbigpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGdlbmVyYXRlSWRlbXBvdGVuY3lUb2tlbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgbWVkaWFUeXBlID0gbnMuZ2V0TWVyZ2VkVHJhaXRzKCkubWVkaWFUeXBlO1xuICAgICAgICAgICAgaWYgKHZhbHVlICE9IG51bGwgJiYgbWVkaWFUeXBlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNKc29uID0gbWVkaWFUeXBlID09PSBcImFwcGxpY2F0aW9uL2pzb25cIiB8fCBtZWRpYVR5cGUuZW5kc1dpdGgoXCIranNvblwiKTtcbiAgICAgICAgICAgICAgICBpZiAoaXNKc29uKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBMYXp5SnNvblN0cmluZy5mcm9tKHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJudW1iZXJcIiAmJiBucy5pc051bWVyaWNTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKE1hdGguYWJzKHZhbHVlKSA9PT0gSW5maW5pdHkgfHwgaXNOYU4odmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiAmJiBucy5pc0Jsb2JTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKG5zID09PSB0aGlzLnJvb3RTY2hlbWEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gKHRoaXMuc2VyZGVDb250ZXh0Py5iYXNlNjRFbmNvZGVyID8/IHRvQmFzZTY0KSh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJiaWdpbnRcIikge1xuICAgICAgICAgICAgdGhpcy51c2VSZXBsYWNlciA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzRG9jdW1lbnRTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKGlzT2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3V0ID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyBbXSA6IHt9O1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodiBpbnN0YW5jZW9mIE51bWVyaWNWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51c2VSZXBsYWNlciA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBvdXRba10gPSB2O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3V0W2tdID0gdGhpcy5fd3JpdGUobnMsIHYpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBvdXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3RydWN0dXJlZENsb25lKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IFNlcmRlQ29udGV4dENvbmZpZyB9IGZyb20gXCIuLi9Db25maWd1cmFibGVTZXJkZUNvbnRleHRcIjtcbmltcG9ydCB7IEpzb25TaGFwZURlc2VyaWFsaXplciB9IGZyb20gXCIuL0pzb25TaGFwZURlc2VyaWFsaXplclwiO1xuaW1wb3J0IHsgSnNvblNoYXBlU2VyaWFsaXplciB9IGZyb20gXCIuL0pzb25TaGFwZVNlcmlhbGl6ZXJcIjtcbmV4cG9ydCBjbGFzcyBKc29uQ29kZWMgZXh0ZW5kcyBTZXJkZUNvbnRleHRDb25maWcge1xuICAgIHNldHRpbmdzO1xuICAgIGNvbnN0cnVjdG9yKHNldHRpbmdzKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuc2V0dGluZ3MgPSBzZXR0aW5ncztcbiAgICB9XG4gICAgY3JlYXRlU2VyaWFsaXplcigpIHtcbiAgICAgICAgY29uc3Qgc2VyaWFsaXplciA9IG5ldyBKc29uU2hhcGVTZXJpYWxpemVyKHRoaXMuc2V0dGluZ3MpO1xuICAgICAgICBzZXJpYWxpemVyLnNldFNlcmRlQ29udGV4dCh0aGlzLnNlcmRlQ29udGV4dCk7XG4gICAgICAgIHJldHVybiBzZXJpYWxpemVyO1xuICAgIH1cbiAgICBjcmVhdGVEZXNlcmlhbGl6ZXIoKSB7XG4gICAgICAgIGNvbnN0IGRlc2VyaWFsaXplciA9IG5ldyBKc29uU2hhcGVEZXNlcmlhbGl6ZXIodGhpcy5zZXR0aW5ncyk7XG4gICAgICAgIGRlc2VyaWFsaXplci5zZXRTZXJkZUNvbnRleHQodGhpcy5zZXJkZUNvbnRleHQpO1xuICAgICAgICByZXR1cm4gZGVzZXJpYWxpemVyO1xuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBScGNQcm90b2NvbCB9IGZyb20gXCJAc21pdGh5L2NvcmUvcHJvdG9jb2xzXCI7XG5pbXBvcnQgeyBkZXJlZiwgTm9ybWFsaXplZFNjaGVtYSwgVHlwZVJlZ2lzdHJ5IH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IFByb3RvY29sTGliIH0gZnJvbSBcIi4uL1Byb3RvY29sTGliXCI7XG5pbXBvcnQgeyBKc29uQ29kZWMgfSBmcm9tIFwiLi9Kc29uQ29kZWNcIjtcbmltcG9ydCB7IGxvYWRSZXN0SnNvbkVycm9yQ29kZSB9IGZyb20gXCIuL3BhcnNlSnNvbkJvZHlcIjtcbmV4cG9ydCBjbGFzcyBBd3NKc29uUnBjUHJvdG9jb2wgZXh0ZW5kcyBScGNQcm90b2NvbCB7XG4gICAgc2VyaWFsaXplcjtcbiAgICBkZXNlcmlhbGl6ZXI7XG4gICAgc2VydmljZVRhcmdldDtcbiAgICBjb2RlYztcbiAgICBtaXhpbjtcbiAgICBhd3NRdWVyeUNvbXBhdGlibGU7XG4gICAgY29uc3RydWN0b3IoeyBkZWZhdWx0TmFtZXNwYWNlLCBzZXJ2aWNlVGFyZ2V0LCBhd3NRdWVyeUNvbXBhdGlibGUsIGpzb25Db2RlYywgfSkge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBkZWZhdWx0TmFtZXNwYWNlLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zZXJ2aWNlVGFyZ2V0ID0gc2VydmljZVRhcmdldDtcbiAgICAgICAgdGhpcy5jb2RlYyA9XG4gICAgICAgICAgICBqc29uQ29kZWMgPz9cbiAgICAgICAgICAgICAgICBuZXcgSnNvbkNvZGVjKHtcbiAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wRm9ybWF0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB1c2VUcmFpdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IDcsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGpzb25OYW1lOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zZXJpYWxpemVyID0gdGhpcy5jb2RlYy5jcmVhdGVTZXJpYWxpemVyKCk7XG4gICAgICAgIHRoaXMuZGVzZXJpYWxpemVyID0gdGhpcy5jb2RlYy5jcmVhdGVEZXNlcmlhbGl6ZXIoKTtcbiAgICAgICAgdGhpcy5hd3NRdWVyeUNvbXBhdGlibGUgPSAhIWF3c1F1ZXJ5Q29tcGF0aWJsZTtcbiAgICAgICAgdGhpcy5taXhpbiA9IG5ldyBQcm90b2NvbExpYih0aGlzLmF3c1F1ZXJ5Q29tcGF0aWJsZSk7XG4gICAgfVxuICAgIGFzeW5jIHNlcmlhbGl6ZVJlcXVlc3Qob3BlcmF0aW9uU2NoZW1hLCBpbnB1dCwgY29udGV4dCkge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gYXdhaXQgc3VwZXIuc2VyaWFsaXplUmVxdWVzdChvcGVyYXRpb25TY2hlbWEsIGlucHV0LCBjb250ZXh0KTtcbiAgICAgICAgaWYgKCFyZXF1ZXN0LnBhdGguZW5kc1dpdGgoXCIvXCIpKSB7XG4gICAgICAgICAgICByZXF1ZXN0LnBhdGggKz0gXCIvXCI7XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbihyZXF1ZXN0LmhlYWRlcnMsIHtcbiAgICAgICAgICAgIFwiY29udGVudC10eXBlXCI6IGBhcHBsaWNhdGlvbi94LWFtei1qc29uLSR7dGhpcy5nZXRKc29uUnBjVmVyc2lvbigpfWAsXG4gICAgICAgICAgICBcIngtYW16LXRhcmdldFwiOiBgJHt0aGlzLnNlcnZpY2VUYXJnZXR9LiR7b3BlcmF0aW9uU2NoZW1hLm5hbWV9YCxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmICh0aGlzLmF3c1F1ZXJ5Q29tcGF0aWJsZSkge1xuICAgICAgICAgICAgcmVxdWVzdC5oZWFkZXJzW1wieC1hbXpuLXF1ZXJ5LW1vZGVcIl0gPSBcInRydWVcIjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGVyZWYob3BlcmF0aW9uU2NoZW1hLmlucHV0KSA9PT0gXCJ1bml0XCIgfHwgIXJlcXVlc3QuYm9keSkge1xuICAgICAgICAgICAgcmVxdWVzdC5ib2R5ID0gXCJ7fVwiO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXF1ZXN0O1xuICAgIH1cbiAgICBnZXRQYXlsb2FkQ29kZWMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvZGVjO1xuICAgIH1cbiAgICBhc3luYyBoYW5kbGVFcnJvcihvcGVyYXRpb25TY2hlbWEsIGNvbnRleHQsIHJlc3BvbnNlLCBkYXRhT2JqZWN0LCBtZXRhZGF0YSkge1xuICAgICAgICBpZiAodGhpcy5hd3NRdWVyeUNvbXBhdGlibGUpIHtcbiAgICAgICAgICAgIHRoaXMubWl4aW4uc2V0UXVlcnlDb21wYXRFcnJvcihkYXRhT2JqZWN0LCByZXNwb25zZSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZXJyb3JJZGVudGlmaWVyID0gbG9hZFJlc3RKc29uRXJyb3JDb2RlKHJlc3BvbnNlLCBkYXRhT2JqZWN0KSA/PyBcIlVua25vd25cIjtcbiAgICAgICAgY29uc3QgeyBlcnJvclNjaGVtYSwgZXJyb3JNZXRhZGF0YSB9ID0gYXdhaXQgdGhpcy5taXhpbi5nZXRFcnJvclNjaGVtYU9yVGhyb3dCYXNlRXhjZXB0aW9uKGVycm9ySWRlbnRpZmllciwgdGhpcy5vcHRpb25zLmRlZmF1bHROYW1lc3BhY2UsIHJlc3BvbnNlLCBkYXRhT2JqZWN0LCBtZXRhZGF0YSwgdGhpcy5hd3NRdWVyeUNvbXBhdGlibGUgPyB0aGlzLm1peGluLmZpbmRRdWVyeUNvbXBhdGlibGVFcnJvciA6IHVuZGVmaW5lZCk7XG4gICAgICAgIGNvbnN0IG5zID0gTm9ybWFsaXplZFNjaGVtYS5vZihlcnJvclNjaGVtYSk7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBkYXRhT2JqZWN0Lm1lc3NhZ2UgPz8gZGF0YU9iamVjdC5NZXNzYWdlID8/IFwiVW5rbm93blwiO1xuICAgICAgICBjb25zdCBFcnJvckN0b3IgPSBUeXBlUmVnaXN0cnkuZm9yKGVycm9yU2NoZW1hWzFdKS5nZXRFcnJvckN0b3IoZXJyb3JTY2hlbWEpID8/IEVycm9yO1xuICAgICAgICBjb25zdCBleGNlcHRpb24gPSBuZXcgRXJyb3JDdG9yKG1lc3NhZ2UpO1xuICAgICAgICBjb25zdCBvdXRwdXQgPSB7fTtcbiAgICAgICAgZm9yIChjb25zdCBbbmFtZSwgbWVtYmVyXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICBpZiAoZGF0YU9iamVjdFtuYW1lXSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgb3V0cHV0W25hbWVdID0gdGhpcy5jb2RlYy5jcmVhdGVEZXNlcmlhbGl6ZXIoKS5yZWFkT2JqZWN0KG1lbWJlciwgZGF0YU9iamVjdFtuYW1lXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuYXdzUXVlcnlDb21wYXRpYmxlKSB7XG4gICAgICAgICAgICB0aGlzLm1peGluLnF1ZXJ5Q29tcGF0T3V0cHV0KGRhdGFPYmplY3QsIG91dHB1dCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgdGhpcy5taXhpbi5kZWNvcmF0ZVNlcnZpY2VFeGNlcHRpb24oT2JqZWN0LmFzc2lnbihleGNlcHRpb24sIGVycm9yTWV0YWRhdGEsIHtcbiAgICAgICAgICAgICRmYXVsdDogbnMuZ2V0TWVyZ2VkVHJhaXRzKCkuZXJyb3IsXG4gICAgICAgICAgICBtZXNzYWdlLFxuICAgICAgICB9LCBvdXRwdXQpLCBkYXRhT2JqZWN0KTtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgQXdzSnNvblJwY1Byb3RvY29sIH0gZnJvbSBcIi4vQXdzSnNvblJwY1Byb3RvY29sXCI7XG5leHBvcnQgY2xhc3MgQXdzSnNvbjFfMFByb3RvY29sIGV4dGVuZHMgQXdzSnNvblJwY1Byb3RvY29sIHtcbiAgICBjb25zdHJ1Y3Rvcih7IGRlZmF1bHROYW1lc3BhY2UsIHNlcnZpY2VUYXJnZXQsIGF3c1F1ZXJ5Q29tcGF0aWJsZSwganNvbkNvZGVjLCB9KSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIGRlZmF1bHROYW1lc3BhY2UsXG4gICAgICAgICAgICBzZXJ2aWNlVGFyZ2V0LFxuICAgICAgICAgICAgYXdzUXVlcnlDb21wYXRpYmxlLFxuICAgICAgICAgICAganNvbkNvZGVjLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgZ2V0U2hhcGVJZCgpIHtcbiAgICAgICAgcmV0dXJuIFwiYXdzLnByb3RvY29scyNhd3NKc29uMV8wXCI7XG4gICAgfVxuICAgIGdldEpzb25ScGNWZXJzaW9uKCkge1xuICAgICAgICByZXR1cm4gXCIxLjBcIjtcbiAgICB9XG4gICAgZ2V0RGVmYXVsdENvbnRlbnRUeXBlKCkge1xuICAgICAgICByZXR1cm4gXCJhcHBsaWNhdGlvbi94LWFtei1qc29uLTEuMFwiO1xuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBBd3NKc29uUnBjUHJvdG9jb2wgfSBmcm9tIFwiLi9Bd3NKc29uUnBjUHJvdG9jb2xcIjtcbmV4cG9ydCBjbGFzcyBBd3NKc29uMV8xUHJvdG9jb2wgZXh0ZW5kcyBBd3NKc29uUnBjUHJvdG9jb2wge1xuICAgIGNvbnN0cnVjdG9yKHsgZGVmYXVsdE5hbWVzcGFjZSwgc2VydmljZVRhcmdldCwgYXdzUXVlcnlDb21wYXRpYmxlLCBqc29uQ29kZWMsIH0pIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgZGVmYXVsdE5hbWVzcGFjZSxcbiAgICAgICAgICAgIHNlcnZpY2VUYXJnZXQsXG4gICAgICAgICAgICBhd3NRdWVyeUNvbXBhdGlibGUsXG4gICAgICAgICAgICBqc29uQ29kZWMsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBnZXRTaGFwZUlkKCkge1xuICAgICAgICByZXR1cm4gXCJhd3MucHJvdG9jb2xzI2F3c0pzb24xXzFcIjtcbiAgICB9XG4gICAgZ2V0SnNvblJwY1ZlcnNpb24oKSB7XG4gICAgICAgIHJldHVybiBcIjEuMVwiO1xuICAgIH1cbiAgICBnZXREZWZhdWx0Q29udGVudFR5cGUoKSB7XG4gICAgICAgIHJldHVybiBcImFwcGxpY2F0aW9uL3gtYW16LWpzb24tMS4xXCI7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IEh0dHBCaW5kaW5nUHJvdG9jb2wsIEh0dHBJbnRlcmNlcHRpbmdTaGFwZURlc2VyaWFsaXplciwgSHR0cEludGVyY2VwdGluZ1NoYXBlU2VyaWFsaXplciwgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3Byb3RvY29sc1wiO1xuaW1wb3J0IHsgTm9ybWFsaXplZFNjaGVtYSwgVHlwZVJlZ2lzdHJ5IH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IFByb3RvY29sTGliIH0gZnJvbSBcIi4uL1Byb3RvY29sTGliXCI7XG5pbXBvcnQgeyBKc29uQ29kZWMgfSBmcm9tIFwiLi9Kc29uQ29kZWNcIjtcbmltcG9ydCB7IGxvYWRSZXN0SnNvbkVycm9yQ29kZSB9IGZyb20gXCIuL3BhcnNlSnNvbkJvZHlcIjtcbmV4cG9ydCBjbGFzcyBBd3NSZXN0SnNvblByb3RvY29sIGV4dGVuZHMgSHR0cEJpbmRpbmdQcm90b2NvbCB7XG4gICAgc2VyaWFsaXplcjtcbiAgICBkZXNlcmlhbGl6ZXI7XG4gICAgY29kZWM7XG4gICAgbWl4aW4gPSBuZXcgUHJvdG9jb2xMaWIoKTtcbiAgICBjb25zdHJ1Y3Rvcih7IGRlZmF1bHROYW1lc3BhY2UgfSkge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBkZWZhdWx0TmFtZXNwYWNlLFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3Qgc2V0dGluZ3MgPSB7XG4gICAgICAgICAgICB0aW1lc3RhbXBGb3JtYXQ6IHtcbiAgICAgICAgICAgICAgICB1c2VUcmFpdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiA3LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGh0dHBCaW5kaW5nczogdHJ1ZSxcbiAgICAgICAgICAgIGpzb25OYW1lOiB0cnVlLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmNvZGVjID0gbmV3IEpzb25Db2RlYyhzZXR0aW5ncyk7XG4gICAgICAgIHRoaXMuc2VyaWFsaXplciA9IG5ldyBIdHRwSW50ZXJjZXB0aW5nU2hhcGVTZXJpYWxpemVyKHRoaXMuY29kZWMuY3JlYXRlU2VyaWFsaXplcigpLCBzZXR0aW5ncyk7XG4gICAgICAgIHRoaXMuZGVzZXJpYWxpemVyID0gbmV3IEh0dHBJbnRlcmNlcHRpbmdTaGFwZURlc2VyaWFsaXplcih0aGlzLmNvZGVjLmNyZWF0ZURlc2VyaWFsaXplcigpLCBzZXR0aW5ncyk7XG4gICAgfVxuICAgIGdldFNoYXBlSWQoKSB7XG4gICAgICAgIHJldHVybiBcImF3cy5wcm90b2NvbHMjcmVzdEpzb24xXCI7XG4gICAgfVxuICAgIGdldFBheWxvYWRDb2RlYygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29kZWM7XG4gICAgfVxuICAgIHNldFNlcmRlQ29udGV4dChzZXJkZUNvbnRleHQpIHtcbiAgICAgICAgdGhpcy5jb2RlYy5zZXRTZXJkZUNvbnRleHQoc2VyZGVDb250ZXh0KTtcbiAgICAgICAgc3VwZXIuc2V0U2VyZGVDb250ZXh0KHNlcmRlQ29udGV4dCk7XG4gICAgfVxuICAgIGFzeW5jIHNlcmlhbGl6ZVJlcXVlc3Qob3BlcmF0aW9uU2NoZW1hLCBpbnB1dCwgY29udGV4dCkge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gYXdhaXQgc3VwZXIuc2VyaWFsaXplUmVxdWVzdChvcGVyYXRpb25TY2hlbWEsIGlucHV0LCBjb250ZXh0KTtcbiAgICAgICAgY29uc3QgaW5wdXRTY2hlbWEgPSBOb3JtYWxpemVkU2NoZW1hLm9mKG9wZXJhdGlvblNjaGVtYS5pbnB1dCk7XG4gICAgICAgIGlmICghcmVxdWVzdC5oZWFkZXJzW1wiY29udGVudC10eXBlXCJdKSB7XG4gICAgICAgICAgICBjb25zdCBjb250ZW50VHlwZSA9IHRoaXMubWl4aW4ucmVzb2x2ZVJlc3RDb250ZW50VHlwZSh0aGlzLmdldERlZmF1bHRDb250ZW50VHlwZSgpLCBpbnB1dFNjaGVtYSk7XG4gICAgICAgICAgICBpZiAoY29udGVudFR5cGUpIHtcbiAgICAgICAgICAgICAgICByZXF1ZXN0LmhlYWRlcnNbXCJjb250ZW50LXR5cGVcIl0gPSBjb250ZW50VHlwZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAocmVxdWVzdC5ib2R5ID09IG51bGwgJiYgcmVxdWVzdC5oZWFkZXJzW1wiY29udGVudC10eXBlXCJdID09PSB0aGlzLmdldERlZmF1bHRDb250ZW50VHlwZSgpKSB7XG4gICAgICAgICAgICByZXF1ZXN0LmJvZHkgPSBcInt9XCI7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlcXVlc3Q7XG4gICAgfVxuICAgIGFzeW5jIGRlc2VyaWFsaXplUmVzcG9uc2Uob3BlcmF0aW9uU2NoZW1hLCBjb250ZXh0LCByZXNwb25zZSkge1xuICAgICAgICBjb25zdCBvdXRwdXQgPSBhd2FpdCBzdXBlci5kZXNlcmlhbGl6ZVJlc3BvbnNlKG9wZXJhdGlvblNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UpO1xuICAgICAgICBjb25zdCBvdXRwdXRTY2hlbWEgPSBOb3JtYWxpemVkU2NoZW1hLm9mKG9wZXJhdGlvblNjaGVtYS5vdXRwdXQpO1xuICAgICAgICBmb3IgKGNvbnN0IFtuYW1lLCBtZW1iZXJdIG9mIG91dHB1dFNjaGVtYS5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICBpZiAobWVtYmVyLmdldE1lbWJlclRyYWl0cygpLmh0dHBQYXlsb2FkICYmICEobmFtZSBpbiBvdXRwdXQpKSB7XG4gICAgICAgICAgICAgICAgb3V0cHV0W25hbWVdID0gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb3V0cHV0O1xuICAgIH1cbiAgICBhc3luYyBoYW5kbGVFcnJvcihvcGVyYXRpb25TY2hlbWEsIGNvbnRleHQsIHJlc3BvbnNlLCBkYXRhT2JqZWN0LCBtZXRhZGF0YSkge1xuICAgICAgICBjb25zdCBlcnJvcklkZW50aWZpZXIgPSBsb2FkUmVzdEpzb25FcnJvckNvZGUocmVzcG9uc2UsIGRhdGFPYmplY3QpID8/IFwiVW5rbm93blwiO1xuICAgICAgICBjb25zdCB7IGVycm9yU2NoZW1hLCBlcnJvck1ldGFkYXRhIH0gPSBhd2FpdCB0aGlzLm1peGluLmdldEVycm9yU2NoZW1hT3JUaHJvd0Jhc2VFeGNlcHRpb24oZXJyb3JJZGVudGlmaWVyLCB0aGlzLm9wdGlvbnMuZGVmYXVsdE5hbWVzcGFjZSwgcmVzcG9uc2UsIGRhdGFPYmplY3QsIG1ldGFkYXRhKTtcbiAgICAgICAgY29uc3QgbnMgPSBOb3JtYWxpemVkU2NoZW1hLm9mKGVycm9yU2NoZW1hKTtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGRhdGFPYmplY3QubWVzc2FnZSA/PyBkYXRhT2JqZWN0Lk1lc3NhZ2UgPz8gXCJVbmtub3duXCI7XG4gICAgICAgIGNvbnN0IEVycm9yQ3RvciA9IFR5cGVSZWdpc3RyeS5mb3IoZXJyb3JTY2hlbWFbMV0pLmdldEVycm9yQ3RvcihlcnJvclNjaGVtYSkgPz8gRXJyb3I7XG4gICAgICAgIGNvbnN0IGV4Y2VwdGlvbiA9IG5ldyBFcnJvckN0b3IobWVzc2FnZSk7XG4gICAgICAgIGF3YWl0IHRoaXMuZGVzZXJpYWxpemVIdHRwTWVzc2FnZShlcnJvclNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UsIGRhdGFPYmplY3QpO1xuICAgICAgICBjb25zdCBvdXRwdXQgPSB7fTtcbiAgICAgICAgZm9yIChjb25zdCBbbmFtZSwgbWVtYmVyXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBtZW1iZXIuZ2V0TWVyZ2VkVHJhaXRzKCkuanNvbk5hbWUgPz8gbmFtZTtcbiAgICAgICAgICAgIG91dHB1dFtuYW1lXSA9IHRoaXMuY29kZWMuY3JlYXRlRGVzZXJpYWxpemVyKCkucmVhZE9iamVjdChtZW1iZXIsIGRhdGFPYmplY3RbdGFyZ2V0XSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgdGhpcy5taXhpbi5kZWNvcmF0ZVNlcnZpY2VFeGNlcHRpb24oT2JqZWN0LmFzc2lnbihleGNlcHRpb24sIGVycm9yTWV0YWRhdGEsIHtcbiAgICAgICAgICAgICRmYXVsdDogbnMuZ2V0TWVyZ2VkVHJhaXRzKCkuZXJyb3IsXG4gICAgICAgICAgICBtZXNzYWdlLFxuICAgICAgICB9LCBvdXRwdXQpLCBkYXRhT2JqZWN0KTtcbiAgICB9XG4gICAgZ2V0RGVmYXVsdENvbnRlbnRUeXBlKCkge1xuICAgICAgICByZXR1cm4gXCJhcHBsaWNhdGlvbi9qc29uXCI7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IGV4cGVjdFVuaW9uIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuZXhwb3J0IGNvbnN0IGF3c0V4cGVjdFVuaW9uID0gKHZhbHVlKSA9PiB7XG4gICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIiAmJiBcIl9fdHlwZVwiIGluIHZhbHVlKSB7XG4gICAgICAgIGRlbGV0ZSB2YWx1ZS5fX3R5cGU7XG4gICAgfVxuICAgIHJldHVybiBleHBlY3RVbmlvbih2YWx1ZSk7XG59O1xuIiwgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5wYXJzZVhNTCA9IHBhcnNlWE1MO1xuY29uc3QgZmFzdF94bWxfcGFyc2VyXzEgPSByZXF1aXJlKFwiZmFzdC14bWwtcGFyc2VyXCIpO1xuY29uc3QgcGFyc2VyID0gbmV3IGZhc3RfeG1sX3BhcnNlcl8xLlhNTFBhcnNlcih7XG4gICAgYXR0cmlidXRlTmFtZVByZWZpeDogXCJcIixcbiAgICBodG1sRW50aXRpZXM6IHRydWUsXG4gICAgaWdub3JlQXR0cmlidXRlczogZmFsc2UsXG4gICAgaWdub3JlRGVjbGFyYXRpb246IHRydWUsXG4gICAgcGFyc2VUYWdWYWx1ZTogZmFsc2UsXG4gICAgdHJpbVZhbHVlczogZmFsc2UsXG4gICAgdGFnVmFsdWVQcm9jZXNzb3I6IChfLCB2YWwpID0+ICh2YWwudHJpbSgpID09PSBcIlwiICYmIHZhbC5pbmNsdWRlcyhcIlxcblwiKSA/IFwiXCIgOiB1bmRlZmluZWQpLFxufSk7XG5wYXJzZXIuYWRkRW50aXR5KFwiI3hEXCIsIFwiXFxyXCIpO1xucGFyc2VyLmFkZEVudGl0eShcIiMxMFwiLCBcIlxcblwiKTtcbmZ1bmN0aW9uIHBhcnNlWE1MKHhtbFN0cmluZykge1xuICAgIHJldHVybiBwYXJzZXIucGFyc2UoeG1sU3RyaW5nLCB0cnVlKTtcbn1cbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciB4bWxQYXJzZXIgPSByZXF1aXJlKCcuL3htbC1wYXJzZXInKTtcblxuZnVuY3Rpb24gZXNjYXBlQXR0cmlidXRlKHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlLnJlcGxhY2UoLyYvZywgXCImYW1wO1wiKS5yZXBsYWNlKC88L2csIFwiJmx0O1wiKS5yZXBsYWNlKC8+L2csIFwiJmd0O1wiKS5yZXBsYWNlKC9cIi9nLCBcIiZxdW90O1wiKTtcbn1cblxuZnVuY3Rpb24gZXNjYXBlRWxlbWVudCh2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZVxuICAgICAgICAucmVwbGFjZSgvJi9nLCBcIiZhbXA7XCIpXG4gICAgICAgIC5yZXBsYWNlKC9cIi9nLCBcIiZxdW90O1wiKVxuICAgICAgICAucmVwbGFjZSgvJy9nLCBcIiZhcG9zO1wiKVxuICAgICAgICAucmVwbGFjZSgvPC9nLCBcIiZsdDtcIilcbiAgICAgICAgLnJlcGxhY2UoLz4vZywgXCImZ3Q7XCIpXG4gICAgICAgIC5yZXBsYWNlKC9cXHIvZywgXCImI3gwRDtcIilcbiAgICAgICAgLnJlcGxhY2UoL1xcbi9nLCBcIiYjeDBBO1wiKVxuICAgICAgICAucmVwbGFjZSgvXFx1MDA4NS9nLCBcIiYjeDg1O1wiKVxuICAgICAgICAucmVwbGFjZSgvXFx1MjAyOC8sIFwiJiN4MjAyODtcIik7XG59XG5cbmNsYXNzIFhtbFRleHQge1xuICAgIHZhbHVlO1xuICAgIGNvbnN0cnVjdG9yKHZhbHVlKSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB9XG4gICAgdG9TdHJpbmcoKSB7XG4gICAgICAgIHJldHVybiBlc2NhcGVFbGVtZW50KFwiXCIgKyB0aGlzLnZhbHVlKTtcbiAgICB9XG59XG5cbmNsYXNzIFhtbE5vZGUge1xuICAgIG5hbWU7XG4gICAgY2hpbGRyZW47XG4gICAgYXR0cmlidXRlcyA9IHt9O1xuICAgIHN0YXRpYyBvZihuYW1lLCBjaGlsZFRleHQsIHdpdGhOYW1lKSB7XG4gICAgICAgIGNvbnN0IG5vZGUgPSBuZXcgWG1sTm9kZShuYW1lKTtcbiAgICAgICAgaWYgKGNoaWxkVGV4dCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBub2RlLmFkZENoaWxkTm9kZShuZXcgWG1sVGV4dChjaGlsZFRleHQpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAod2l0aE5hbWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgbm9kZS53aXRoTmFtZSh3aXRoTmFtZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5vZGU7XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKG5hbWUsIGNoaWxkcmVuID0gW10pIHtcbiAgICAgICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICAgICAgdGhpcy5jaGlsZHJlbiA9IGNoaWxkcmVuO1xuICAgIH1cbiAgICB3aXRoTmFtZShuYW1lKSB7XG4gICAgICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBhZGRBdHRyaWJ1dGUobmFtZSwgdmFsdWUpIHtcbiAgICAgICAgdGhpcy5hdHRyaWJ1dGVzW25hbWVdID0gdmFsdWU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBhZGRDaGlsZE5vZGUoY2hpbGQpIHtcbiAgICAgICAgdGhpcy5jaGlsZHJlbi5wdXNoKGNoaWxkKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIHJlbW92ZUF0dHJpYnV0ZShuYW1lKSB7XG4gICAgICAgIGRlbGV0ZSB0aGlzLmF0dHJpYnV0ZXNbbmFtZV07XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBuKG5hbWUpIHtcbiAgICAgICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIGMoY2hpbGQpIHtcbiAgICAgICAgdGhpcy5jaGlsZHJlbi5wdXNoKGNoaWxkKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIGEobmFtZSwgdmFsdWUpIHtcbiAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuYXR0cmlidXRlc1tuYW1lXSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBjYyhpbnB1dCwgZmllbGQsIHdpdGhOYW1lID0gZmllbGQpIHtcbiAgICAgICAgaWYgKGlucHV0W2ZpZWxkXSAhPSBudWxsKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlID0gWG1sTm9kZS5vZihmaWVsZCwgaW5wdXRbZmllbGRdKS53aXRoTmFtZSh3aXRoTmFtZSk7XG4gICAgICAgICAgICB0aGlzLmMobm9kZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbChpbnB1dCwgbGlzdE5hbWUsIG1lbWJlck5hbWUsIHZhbHVlUHJvdmlkZXIpIHtcbiAgICAgICAgaWYgKGlucHV0W2xpc3ROYW1lXSAhPSBudWxsKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlcyA9IHZhbHVlUHJvdmlkZXIoKTtcbiAgICAgICAgICAgIG5vZGVzLm1hcCgobm9kZSkgPT4ge1xuICAgICAgICAgICAgICAgIG5vZGUud2l0aE5hbWUobWVtYmVyTmFtZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5jKG5vZGUpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbGMoaW5wdXQsIGxpc3ROYW1lLCBtZW1iZXJOYW1lLCB2YWx1ZVByb3ZpZGVyKSB7XG4gICAgICAgIGlmIChpbnB1dFtsaXN0TmFtZV0gIT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZXMgPSB2YWx1ZVByb3ZpZGVyKCk7XG4gICAgICAgICAgICBjb25zdCBjb250YWluZXJOb2RlID0gbmV3IFhtbE5vZGUobWVtYmVyTmFtZSk7XG4gICAgICAgICAgICBub2Rlcy5tYXAoKG5vZGUpID0+IHtcbiAgICAgICAgICAgICAgICBjb250YWluZXJOb2RlLmMobm9kZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuYyhjb250YWluZXJOb2RlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICB0b1N0cmluZygpIHtcbiAgICAgICAgY29uc3QgaGFzQ2hpbGRyZW4gPSBCb29sZWFuKHRoaXMuY2hpbGRyZW4ubGVuZ3RoKTtcbiAgICAgICAgbGV0IHhtbFRleHQgPSBgPCR7dGhpcy5uYW1lfWA7XG4gICAgICAgIGNvbnN0IGF0dHJpYnV0ZXMgPSB0aGlzLmF0dHJpYnV0ZXM7XG4gICAgICAgIGZvciAoY29uc3QgYXR0cmlidXRlTmFtZSBvZiBPYmplY3Qua2V5cyhhdHRyaWJ1dGVzKSkge1xuICAgICAgICAgICAgY29uc3QgYXR0cmlidXRlID0gYXR0cmlidXRlc1thdHRyaWJ1dGVOYW1lXTtcbiAgICAgICAgICAgIGlmIChhdHRyaWJ1dGUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHhtbFRleHQgKz0gYCAke2F0dHJpYnV0ZU5hbWV9PVwiJHtlc2NhcGVBdHRyaWJ1dGUoXCJcIiArIGF0dHJpYnV0ZSl9XCJgO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiAoeG1sVGV4dCArPSAhaGFzQ2hpbGRyZW4gPyBcIi8+XCIgOiBgPiR7dGhpcy5jaGlsZHJlbi5tYXAoKGMpID0+IGMudG9TdHJpbmcoKSkuam9pbihcIlwiKX08LyR7dGhpcy5uYW1lfT5gKTtcbiAgICB9XG59XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcInBhcnNlWE1MXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4geG1sUGFyc2VyLnBhcnNlWE1MOyB9XG59KTtcbmV4cG9ydHMuWG1sTm9kZSA9IFhtbE5vZGU7XG5leHBvcnRzLlhtbFRleHQgPSBYbWxUZXh0O1xuIiwgImltcG9ydCB7IHBhcnNlWE1MIH0gZnJvbSBcIkBhd3Mtc2RrL3htbC1idWlsZGVyXCI7XG5pbXBvcnQgeyBGcm9tU3RyaW5nU2hhcGVEZXNlcmlhbGl6ZXIgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3Byb3RvY29sc1wiO1xuaW1wb3J0IHsgTm9ybWFsaXplZFNjaGVtYSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2NoZW1hXCI7XG5pbXBvcnQgeyBnZXRWYWx1ZUZyb21UZXh0Tm9kZSB9IGZyb20gXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjtcbmltcG9ydCB7IHRvVXRmOCB9IGZyb20gXCJAc21pdGh5L3V0aWwtdXRmOFwiO1xuaW1wb3J0IHsgU2VyZGVDb250ZXh0Q29uZmlnIH0gZnJvbSBcIi4uL0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dFwiO1xuZXhwb3J0IGNsYXNzIFhtbFNoYXBlRGVzZXJpYWxpemVyIGV4dGVuZHMgU2VyZGVDb250ZXh0Q29uZmlnIHtcbiAgICBzZXR0aW5ncztcbiAgICBzdHJpbmdEZXNlcmlhbGl6ZXI7XG4gICAgY29uc3RydWN0b3Ioc2V0dGluZ3MpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5zZXR0aW5ncyA9IHNldHRpbmdzO1xuICAgICAgICB0aGlzLnN0cmluZ0Rlc2VyaWFsaXplciA9IG5ldyBGcm9tU3RyaW5nU2hhcGVEZXNlcmlhbGl6ZXIoc2V0dGluZ3MpO1xuICAgIH1cbiAgICBzZXRTZXJkZUNvbnRleHQoc2VyZGVDb250ZXh0KSB7XG4gICAgICAgIHRoaXMuc2VyZGVDb250ZXh0ID0gc2VyZGVDb250ZXh0O1xuICAgICAgICB0aGlzLnN0cmluZ0Rlc2VyaWFsaXplci5zZXRTZXJkZUNvbnRleHQoc2VyZGVDb250ZXh0KTtcbiAgICB9XG4gICAgcmVhZChzY2hlbWEsIGJ5dGVzLCBrZXkpIHtcbiAgICAgICAgY29uc3QgbnMgPSBOb3JtYWxpemVkU2NoZW1hLm9mKHNjaGVtYSk7XG4gICAgICAgIGNvbnN0IG1lbWJlclNjaGVtYXMgPSBucy5nZXRNZW1iZXJTY2hlbWFzKCk7XG4gICAgICAgIGNvbnN0IGlzRXZlbnRQYXlsb2FkID0gbnMuaXNTdHJ1Y3RTY2hlbWEoKSAmJlxuICAgICAgICAgICAgbnMuaXNNZW1iZXJTY2hlbWEoKSAmJlxuICAgICAgICAgICAgISFPYmplY3QudmFsdWVzKG1lbWJlclNjaGVtYXMpLmZpbmQoKG1lbWJlck5zKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICEhbWVtYmVyTnMuZ2V0TWVtYmVyVHJhaXRzKCkuZXZlbnRQYXlsb2FkO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIGlmIChpc0V2ZW50UGF5bG9hZCkge1xuICAgICAgICAgICAgY29uc3Qgb3V0cHV0ID0ge307XG4gICAgICAgICAgICBjb25zdCBtZW1iZXJOYW1lID0gT2JqZWN0LmtleXMobWVtYmVyU2NoZW1hcylbMF07XG4gICAgICAgICAgICBjb25zdCBldmVudE1lbWJlclNjaGVtYSA9IG1lbWJlclNjaGVtYXNbbWVtYmVyTmFtZV07XG4gICAgICAgICAgICBpZiAoZXZlbnRNZW1iZXJTY2hlbWEuaXNCbG9iU2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICBvdXRwdXRbbWVtYmVyTmFtZV0gPSBieXRlcztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIG91dHB1dFttZW1iZXJOYW1lXSA9IHRoaXMucmVhZChtZW1iZXJTY2hlbWFzW21lbWJlck5hbWVdLCBieXRlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gb3V0cHV0O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHhtbFN0cmluZyA9ICh0aGlzLnNlcmRlQ29udGV4dD8udXRmOEVuY29kZXIgPz8gdG9VdGY4KShieXRlcyk7XG4gICAgICAgIGNvbnN0IHBhcnNlZE9iamVjdCA9IHRoaXMucGFyc2VYbWwoeG1sU3RyaW5nKTtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVhZFNjaGVtYShzY2hlbWEsIGtleSA/IHBhcnNlZE9iamVjdFtrZXldIDogcGFyc2VkT2JqZWN0KTtcbiAgICB9XG4gICAgcmVhZFNjaGVtYShfc2NoZW1hLCB2YWx1ZSkge1xuICAgICAgICBjb25zdCBucyA9IE5vcm1hbGl6ZWRTY2hlbWEub2YoX3NjaGVtYSk7XG4gICAgICAgIGlmIChucy5pc1VuaXRTY2hlbWEoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHRyYWl0cyA9IG5zLmdldE1lcmdlZFRyYWl0cygpO1xuICAgICAgICBpZiAobnMuaXNMaXN0U2NoZW1hKCkgJiYgIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yZWFkU2NoZW1hKG5zLCBbdmFsdWVdKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgIGNvbnN0IHNwYXJzZSA9ICEhdHJhaXRzLnNwYXJzZTtcbiAgICAgICAgICAgIGNvbnN0IGZsYXQgPSAhIXRyYWl0cy54bWxGbGF0dGVuZWQ7XG4gICAgICAgICAgICBpZiAobnMuaXNMaXN0U2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBsaXN0VmFsdWUgPSBucy5nZXRWYWx1ZVNjaGVtYSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGJ1ZmZlciA9IFtdO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNvdXJjZUtleSA9IGxpc3RWYWx1ZS5nZXRNZXJnZWRUcmFpdHMoKS54bWxOYW1lID8/IFwibWVtYmVyXCI7XG4gICAgICAgICAgICAgICAgY29uc3Qgc291cmNlID0gZmxhdCA/IHZhbHVlIDogKHZhbHVlWzBdID8/IHZhbHVlKVtzb3VyY2VLZXldO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNvdXJjZUFycmF5ID0gQXJyYXkuaXNBcnJheShzb3VyY2UpID8gc291cmNlIDogW3NvdXJjZV07XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCB2IG9mIHNvdXJjZUFycmF5KSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2ICE9IG51bGwgfHwgc3BhcnNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBidWZmZXIucHVzaCh0aGlzLnJlYWRTY2hlbWEobGlzdFZhbHVlLCB2KSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGJ1ZmZlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGJ1ZmZlciA9IHt9O1xuICAgICAgICAgICAgaWYgKG5zLmlzTWFwU2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBrZXlOcyA9IG5zLmdldEtleVNjaGVtYSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IG1lbWJlck5zID0gbnMuZ2V0VmFsdWVTY2hlbWEoKTtcbiAgICAgICAgICAgICAgICBsZXQgZW50cmllcztcbiAgICAgICAgICAgICAgICBpZiAoZmxhdCkge1xuICAgICAgICAgICAgICAgICAgICBlbnRyaWVzID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBlbnRyaWVzID0gQXJyYXkuaXNBcnJheSh2YWx1ZS5lbnRyeSkgPyB2YWx1ZS5lbnRyeSA6IFt2YWx1ZS5lbnRyeV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IGtleVByb3BlcnR5ID0ga2V5TnMuZ2V0TWVyZ2VkVHJhaXRzKCkueG1sTmFtZSA/PyBcImtleVwiO1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlUHJvcGVydHkgPSBtZW1iZXJOcy5nZXRNZXJnZWRUcmFpdHMoKS54bWxOYW1lID8/IFwidmFsdWVcIjtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIGVudHJpZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qga2V5ID0gZW50cnlba2V5UHJvcGVydHldO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGVudHJ5W3ZhbHVlUHJvcGVydHldO1xuICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCB8fCBzcGFyc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcltrZXldID0gdGhpcy5yZWFkU2NoZW1hKG1lbWJlck5zLCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGJ1ZmZlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChucy5pc1N0cnVjdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBbbWVtYmVyTmFtZSwgbWVtYmVyU2NoZW1hXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1lbWJlclRyYWl0cyA9IG1lbWJlclNjaGVtYS5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sT2JqZWN0S2V5ID0gIW1lbWJlclRyYWl0cy5odHRwUGF5bG9hZFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBtZW1iZXJTY2hlbWEuZ2V0TWVtYmVyVHJhaXRzKCkueG1sTmFtZSA/PyBtZW1iZXJOYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICA6IG1lbWJlclRyYWl0cy54bWxOYW1lID8/IG1lbWJlclNjaGVtYS5nZXROYW1lKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZVt4bWxPYmplY3RLZXldICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlclttZW1iZXJOYW1lXSA9IHRoaXMucmVhZFNjaGVtYShtZW1iZXJTY2hlbWEsIHZhbHVlW3htbE9iamVjdEtleV0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBidWZmZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobnMuaXNEb2N1bWVudFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBAYXdzLXNkay9jb3JlL3Byb3RvY29scyAtIHhtbCBkZXNlcmlhbGl6ZXIgdW5oYW5kbGVkIHNjaGVtYSB0eXBlIGZvciAke25zLmdldE5hbWUodHJ1ZSl9YCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzTGlzdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzTWFwU2NoZW1hKCkgfHwgbnMuaXNTdHJ1Y3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnN0cmluZ0Rlc2VyaWFsaXplci5yZWFkKG5zLCB2YWx1ZSk7XG4gICAgfVxuICAgIHBhcnNlWG1sKHhtbCkge1xuICAgICAgICBpZiAoeG1sLmxlbmd0aCkge1xuICAgICAgICAgICAgbGV0IHBhcnNlZE9iajtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgcGFyc2VkT2JqID0gcGFyc2VYTUwoeG1sKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgaWYgKGUgJiYgdHlwZW9mIGUgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIFwiJHJlc3BvbnNlQm9keVRleHRcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHhtbCxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCB0ZXh0Tm9kZU5hbWUgPSBcIiN0ZXh0XCI7XG4gICAgICAgICAgICBjb25zdCBrZXkgPSBPYmplY3Qua2V5cyhwYXJzZWRPYmopWzBdO1xuICAgICAgICAgICAgY29uc3QgcGFyc2VkT2JqVG9SZXR1cm4gPSBwYXJzZWRPYmpba2V5XTtcbiAgICAgICAgICAgIGlmIChwYXJzZWRPYmpUb1JldHVyblt0ZXh0Tm9kZU5hbWVdKSB7XG4gICAgICAgICAgICAgICAgcGFyc2VkT2JqVG9SZXR1cm5ba2V5XSA9IHBhcnNlZE9ialRvUmV0dXJuW3RleHROb2RlTmFtZV07XG4gICAgICAgICAgICAgICAgZGVsZXRlIHBhcnNlZE9ialRvUmV0dXJuW3RleHROb2RlTmFtZV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZ2V0VmFsdWVGcm9tVGV4dE5vZGUocGFyc2VkT2JqVG9SZXR1cm4pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7fTtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgZGV0ZXJtaW5lVGltZXN0YW1wRm9ybWF0LCBleHRlbmRlZEVuY29kZVVSSUNvbXBvbmVudCB9IGZyb20gXCJAc21pdGh5L2NvcmUvcHJvdG9jb2xzXCI7XG5pbXBvcnQgeyBOb3JtYWxpemVkU2NoZW1hIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IGdlbmVyYXRlSWRlbXBvdGVuY3lUb2tlbiwgTnVtZXJpY1ZhbHVlIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zZXJkZVwiO1xuaW1wb3J0IHsgZGF0ZVRvVXRjU3RyaW5nIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgdG9CYXNlNjQgfSBmcm9tIFwiQHNtaXRoeS91dGlsLWJhc2U2NFwiO1xuaW1wb3J0IHsgU2VyZGVDb250ZXh0Q29uZmlnIH0gZnJvbSBcIi4uL0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dFwiO1xuaW1wb3J0IHsgc2VyaWFsaXppbmdTdHJ1Y3RJdGVyYXRvciB9IGZyb20gXCIuLi9zdHJ1Y3RJdGVyYXRvclwiO1xuZXhwb3J0IGNsYXNzIFF1ZXJ5U2hhcGVTZXJpYWxpemVyIGV4dGVuZHMgU2VyZGVDb250ZXh0Q29uZmlnIHtcbiAgICBzZXR0aW5ncztcbiAgICBidWZmZXI7XG4gICAgY29uc3RydWN0b3Ioc2V0dGluZ3MpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5zZXR0aW5ncyA9IHNldHRpbmdzO1xuICAgIH1cbiAgICB3cml0ZShzY2hlbWEsIHZhbHVlLCBwcmVmaXggPSBcIlwiKSB7XG4gICAgICAgIGlmICh0aGlzLmJ1ZmZlciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmJ1ZmZlciA9IFwiXCI7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbnMgPSBOb3JtYWxpemVkU2NoZW1hLm9mKHNjaGVtYSk7XG4gICAgICAgIGlmIChwcmVmaXggJiYgIXByZWZpeC5lbmRzV2l0aChcIi5cIikpIHtcbiAgICAgICAgICAgIHByZWZpeCArPSBcIi5cIjtcbiAgICAgICAgfVxuICAgICAgICBpZiAobnMuaXNCbG9iU2NoZW1hKCkpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgfHwgdmFsdWUgaW5zdGFuY2VvZiBVaW50OEFycmF5KSB7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZUtleShwcmVmaXgpO1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVWYWx1ZSgodGhpcy5zZXJkZUNvbnRleHQ/LmJhc2U2NEVuY29kZXIgPz8gdG9CYXNlNjQpKHZhbHVlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAobnMuaXNCb29sZWFuU2NoZW1hKCkgfHwgbnMuaXNOdW1lcmljU2NoZW1hKCkgfHwgbnMuaXNTdHJpbmdTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlS2V5KHByZWZpeCk7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKFN0cmluZyh2YWx1ZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAobnMuaXNJZGVtcG90ZW5jeVRva2VuKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlS2V5KHByZWZpeCk7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKGdlbmVyYXRlSWRlbXBvdGVuY3lUb2tlbigpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChucy5pc0JpZ0ludGVnZXJTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlS2V5KHByZWZpeCk7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKFN0cmluZyh2YWx1ZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKG5zLmlzQmlnRGVjaW1hbFNjaGVtYSgpKSB7XG4gICAgICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVLZXkocHJlZml4KTtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlVmFsdWUodmFsdWUgaW5zdGFuY2VvZiBOdW1lcmljVmFsdWUgPyB2YWx1ZS5zdHJpbmcgOiBTdHJpbmcodmFsdWUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChucy5pc1RpbWVzdGFtcFNjaGVtYSgpKSB7XG4gICAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZUtleShwcmVmaXgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZvcm1hdCA9IGRldGVybWluZVRpbWVzdGFtcEZvcm1hdChucywgdGhpcy5zZXR0aW5ncyk7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChmb3JtYXQpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKHZhbHVlLnRvSVNPU3RyaW5nKCkucmVwbGFjZShcIi4wMDBaXCIsIFwiWlwiKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKGRhdGVUb1V0Y1N0cmluZyh2YWx1ZSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMud3JpdGVWYWx1ZShTdHJpbmcodmFsdWUuZ2V0VGltZSgpIC8gMTAwMCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKG5zLmlzRG9jdW1lbnRTY2hlbWEoKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBAYXdzLXNkay9jb3JlL3Byb3RvY29scyAtIFF1ZXJ5U2VyaWFsaXplciB1bnN1cHBvcnRlZCBkb2N1bWVudCB0eXBlICR7bnMuZ2V0TmFtZSh0cnVlKX1gKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChucy5pc0xpc3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5zZXR0aW5ncy5zZXJpYWxpemVFbXB0eUxpc3RzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLndyaXRlS2V5KHByZWZpeCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLndyaXRlVmFsdWUoXCJcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1lbWJlciA9IG5zLmdldFZhbHVlU2NoZW1hKCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZsYXQgPSB0aGlzLnNldHRpbmdzLmZsYXR0ZW5MaXN0cyB8fCBucy5nZXRNZXJnZWRUcmFpdHMoKS54bWxGbGF0dGVuZWQ7XG4gICAgICAgICAgICAgICAgICAgIGxldCBpID0gMTtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbSA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdWZmaXggPSB0aGlzLmdldEtleShcIm1lbWJlclwiLCBtZW1iZXIuZ2V0TWVyZ2VkVHJhaXRzKCkueG1sTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSBmbGF0ID8gYCR7cHJlZml4fSR7aX1gIDogYCR7cHJlZml4fSR7c3VmZml4fS4ke2l9YDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMud3JpdGUobWVtYmVyLCBpdGVtLCBrZXkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgKytpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKG5zLmlzTWFwU2NoZW1hKCkpIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBrZXlTY2hlbWEgPSBucy5nZXRLZXlTY2hlbWEoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBtZW1iZXJTY2hlbWEgPSBucy5nZXRWYWx1ZVNjaGVtYSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZsYXQgPSBucy5nZXRNZXJnZWRUcmFpdHMoKS54bWxGbGF0dGVuZWQ7XG4gICAgICAgICAgICAgICAgbGV0IGkgPSAxO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodiA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBrZXlTdWZmaXggPSB0aGlzLmdldEtleShcImtleVwiLCBrZXlTY2hlbWEuZ2V0TWVyZ2VkVHJhaXRzKCkueG1sTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IGZsYXQgPyBgJHtwcmVmaXh9JHtpfS4ke2tleVN1ZmZpeH1gIDogYCR7cHJlZml4fWVudHJ5LiR7aX0uJHtrZXlTdWZmaXh9YDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWVTdWZmaXggPSB0aGlzLmdldEtleShcInZhbHVlXCIsIG1lbWJlclNjaGVtYS5nZXRNZXJnZWRUcmFpdHMoKS54bWxOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWVLZXkgPSBmbGF0ID8gYCR7cHJlZml4fSR7aX0uJHt2YWx1ZVN1ZmZpeH1gIDogYCR7cHJlZml4fWVudHJ5LiR7aX0uJHt2YWx1ZVN1ZmZpeH1gO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLndyaXRlKGtleVNjaGVtYSwgaywga2V5KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy53cml0ZShtZW1iZXJTY2hlbWEsIHYsIHZhbHVlS2V5KTtcbiAgICAgICAgICAgICAgICAgICAgKytpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChucy5pc1N0cnVjdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICBpZiAodmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBbbWVtYmVyTmFtZSwgbWVtYmVyXSBvZiBzZXJpYWxpemluZ1N0cnVjdEl0ZXJhdG9yKG5zLCB2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlW21lbWJlck5hbWVdID09IG51bGwgJiYgIW1lbWJlci5pc0lkZW1wb3RlbmN5VG9rZW4oKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3VmZml4ID0gdGhpcy5nZXRLZXkobWVtYmVyTmFtZSwgbWVtYmVyLmdldE1lcmdlZFRyYWl0cygpLnhtbE5hbWUpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSBgJHtwcmVmaXh9JHtzdWZmaXh9YDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy53cml0ZShtZW1iZXIsIHZhbHVlW21lbWJlck5hbWVdLCBrZXkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChucy5pc1VuaXRTY2hlbWEoKSkge1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBAYXdzLXNkay9jb3JlL3Byb3RvY29scyAtIFF1ZXJ5U2VyaWFsaXplciB1bnJlY29nbml6ZWQgc2NoZW1hIHR5cGUgJHtucy5nZXROYW1lKHRydWUpfWApO1xuICAgICAgICB9XG4gICAgfVxuICAgIGZsdXNoKCkge1xuICAgICAgICBpZiAodGhpcy5idWZmZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSBRdWVyeVNlcmlhbGl6ZXIgY2Fubm90IGZsdXNoIHdpdGggbm90aGluZyB3cml0dGVuIHRvIGJ1ZmZlci5cIik7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc3RyID0gdGhpcy5idWZmZXI7XG4gICAgICAgIGRlbGV0ZSB0aGlzLmJ1ZmZlcjtcbiAgICAgICAgcmV0dXJuIHN0cjtcbiAgICB9XG4gICAgZ2V0S2V5KG1lbWJlck5hbWUsIHhtbE5hbWUpIHtcbiAgICAgICAgY29uc3Qga2V5ID0geG1sTmFtZSA/PyBtZW1iZXJOYW1lO1xuICAgICAgICBpZiAodGhpcy5zZXR0aW5ncy5jYXBpdGFsaXplS2V5cykge1xuICAgICAgICAgICAgcmV0dXJuIGtleVswXS50b1VwcGVyQ2FzZSgpICsga2V5LnNsaWNlKDEpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBrZXk7XG4gICAgfVxuICAgIHdyaXRlS2V5KGtleSkge1xuICAgICAgICBpZiAoa2V5LmVuZHNXaXRoKFwiLlwiKSkge1xuICAgICAgICAgICAga2V5ID0ga2V5LnNsaWNlKDAsIGtleS5sZW5ndGggLSAxKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmJ1ZmZlciArPSBgJiR7ZXh0ZW5kZWRFbmNvZGVVUklDb21wb25lbnQoa2V5KX09YDtcbiAgICB9XG4gICAgd3JpdGVWYWx1ZSh2YWx1ZSkge1xuICAgICAgICB0aGlzLmJ1ZmZlciArPSBleHRlbmRlZEVuY29kZVVSSUNvbXBvbmVudCh2YWx1ZSk7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IGNvbGxlY3RCb2R5LCBScGNQcm90b2NvbCB9IGZyb20gXCJAc21pdGh5L2NvcmUvcHJvdG9jb2xzXCI7XG5pbXBvcnQgeyBkZXJlZiwgTm9ybWFsaXplZFNjaGVtYSwgVHlwZVJlZ2lzdHJ5IH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IFByb3RvY29sTGliIH0gZnJvbSBcIi4uL1Byb3RvY29sTGliXCI7XG5pbXBvcnQgeyBYbWxTaGFwZURlc2VyaWFsaXplciB9IGZyb20gXCIuLi94bWwvWG1sU2hhcGVEZXNlcmlhbGl6ZXJcIjtcbmltcG9ydCB7IFF1ZXJ5U2hhcGVTZXJpYWxpemVyIH0gZnJvbSBcIi4vUXVlcnlTaGFwZVNlcmlhbGl6ZXJcIjtcbmV4cG9ydCBjbGFzcyBBd3NRdWVyeVByb3RvY29sIGV4dGVuZHMgUnBjUHJvdG9jb2wge1xuICAgIG9wdGlvbnM7XG4gICAgc2VyaWFsaXplcjtcbiAgICBkZXNlcmlhbGl6ZXI7XG4gICAgbWl4aW4gPSBuZXcgUHJvdG9jb2xMaWIoKTtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIGRlZmF1bHROYW1lc3BhY2U6IG9wdGlvbnMuZGVmYXVsdE5hbWVzcGFjZSxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgICAgIGNvbnN0IHNldHRpbmdzID0ge1xuICAgICAgICAgICAgdGltZXN0YW1wRm9ybWF0OiB7XG4gICAgICAgICAgICAgICAgdXNlVHJhaXQ6IHRydWUsXG4gICAgICAgICAgICAgICAgZGVmYXVsdDogNSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBodHRwQmluZGluZ3M6IGZhbHNlLFxuICAgICAgICAgICAgeG1sTmFtZXNwYWNlOiBvcHRpb25zLnhtbE5hbWVzcGFjZSxcbiAgICAgICAgICAgIHNlcnZpY2VOYW1lc3BhY2U6IG9wdGlvbnMuZGVmYXVsdE5hbWVzcGFjZSxcbiAgICAgICAgICAgIHNlcmlhbGl6ZUVtcHR5TGlzdHM6IHRydWUsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuc2VyaWFsaXplciA9IG5ldyBRdWVyeVNoYXBlU2VyaWFsaXplcihzZXR0aW5ncyk7XG4gICAgICAgIHRoaXMuZGVzZXJpYWxpemVyID0gbmV3IFhtbFNoYXBlRGVzZXJpYWxpemVyKHNldHRpbmdzKTtcbiAgICB9XG4gICAgZ2V0U2hhcGVJZCgpIHtcbiAgICAgICAgcmV0dXJuIFwiYXdzLnByb3RvY29scyNhd3NRdWVyeVwiO1xuICAgIH1cbiAgICBzZXRTZXJkZUNvbnRleHQoc2VyZGVDb250ZXh0KSB7XG4gICAgICAgIHRoaXMuc2VyaWFsaXplci5zZXRTZXJkZUNvbnRleHQoc2VyZGVDb250ZXh0KTtcbiAgICAgICAgdGhpcy5kZXNlcmlhbGl6ZXIuc2V0U2VyZGVDb250ZXh0KHNlcmRlQ29udGV4dCk7XG4gICAgfVxuICAgIGdldFBheWxvYWRDb2RlYygpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQVdTUXVlcnkgcHJvdG9jb2wgaGFzIG5vIHBheWxvYWQgY29kZWMuXCIpO1xuICAgIH1cbiAgICBhc3luYyBzZXJpYWxpemVSZXF1ZXN0KG9wZXJhdGlvblNjaGVtYSwgaW5wdXQsIGNvbnRleHQpIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IGF3YWl0IHN1cGVyLnNlcmlhbGl6ZVJlcXVlc3Qob3BlcmF0aW9uU2NoZW1hLCBpbnB1dCwgY29udGV4dCk7XG4gICAgICAgIGlmICghcmVxdWVzdC5wYXRoLmVuZHNXaXRoKFwiL1wiKSkge1xuICAgICAgICAgICAgcmVxdWVzdC5wYXRoICs9IFwiL1wiO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24ocmVxdWVzdC5oZWFkZXJzLCB7XG4gICAgICAgICAgICBcImNvbnRlbnQtdHlwZVwiOiBgYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkYCxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChkZXJlZihvcGVyYXRpb25TY2hlbWEuaW5wdXQpID09PSBcInVuaXRcIiB8fCAhcmVxdWVzdC5ib2R5KSB7XG4gICAgICAgICAgICByZXF1ZXN0LmJvZHkgPSBcIlwiO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGFjdGlvbiA9IG9wZXJhdGlvblNjaGVtYS5uYW1lLnNwbGl0KFwiI1wiKVsxXSA/PyBvcGVyYXRpb25TY2hlbWEubmFtZTtcbiAgICAgICAgcmVxdWVzdC5ib2R5ID0gYEFjdGlvbj0ke2FjdGlvbn0mVmVyc2lvbj0ke3RoaXMub3B0aW9ucy52ZXJzaW9ufWAgKyByZXF1ZXN0LmJvZHk7XG4gICAgICAgIGlmIChyZXF1ZXN0LmJvZHkuZW5kc1dpdGgoXCImXCIpKSB7XG4gICAgICAgICAgICByZXF1ZXN0LmJvZHkgPSByZXF1ZXN0LmJvZHkuc2xpY2UoLTEpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXF1ZXN0O1xuICAgIH1cbiAgICBhc3luYyBkZXNlcmlhbGl6ZVJlc3BvbnNlKG9wZXJhdGlvblNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UpIHtcbiAgICAgICAgY29uc3QgZGVzZXJpYWxpemVyID0gdGhpcy5kZXNlcmlhbGl6ZXI7XG4gICAgICAgIGNvbnN0IG5zID0gTm9ybWFsaXplZFNjaGVtYS5vZihvcGVyYXRpb25TY2hlbWEub3V0cHV0KTtcbiAgICAgICAgY29uc3QgZGF0YU9iamVjdCA9IHt9O1xuICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzQ29kZSA+PSAzMDApIHtcbiAgICAgICAgICAgIGNvbnN0IGJ5dGVzID0gYXdhaXQgY29sbGVjdEJvZHkocmVzcG9uc2UuYm9keSwgY29udGV4dCk7XG4gICAgICAgICAgICBpZiAoYnl0ZXMuYnl0ZUxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKGRhdGFPYmplY3QsIGF3YWl0IGRlc2VyaWFsaXplci5yZWFkKDE1LCBieXRlcykpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYXdhaXQgdGhpcy5oYW5kbGVFcnJvcihvcGVyYXRpb25TY2hlbWEsIGNvbnRleHQsIHJlc3BvbnNlLCBkYXRhT2JqZWN0LCB0aGlzLmRlc2VyaWFsaXplTWV0YWRhdGEocmVzcG9uc2UpKTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IGhlYWRlciBpbiByZXNwb25zZS5oZWFkZXJzKSB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHJlc3BvbnNlLmhlYWRlcnNbaGVhZGVyXTtcbiAgICAgICAgICAgIGRlbGV0ZSByZXNwb25zZS5oZWFkZXJzW2hlYWRlcl07XG4gICAgICAgICAgICByZXNwb25zZS5oZWFkZXJzW2hlYWRlci50b0xvd2VyQ2FzZSgpXSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNob3J0TmFtZSA9IG9wZXJhdGlvblNjaGVtYS5uYW1lLnNwbGl0KFwiI1wiKVsxXSA/PyBvcGVyYXRpb25TY2hlbWEubmFtZTtcbiAgICAgICAgY29uc3QgYXdzUXVlcnlSZXN1bHRLZXkgPSBucy5pc1N0cnVjdFNjaGVtYSgpICYmIHRoaXMudXNlTmVzdGVkUmVzdWx0KCkgPyBzaG9ydE5hbWUgKyBcIlJlc3VsdFwiIDogdW5kZWZpbmVkO1xuICAgICAgICBjb25zdCBieXRlcyA9IGF3YWl0IGNvbGxlY3RCb2R5KHJlc3BvbnNlLmJvZHksIGNvbnRleHQpO1xuICAgICAgICBpZiAoYnl0ZXMuYnl0ZUxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oZGF0YU9iamVjdCwgYXdhaXQgZGVzZXJpYWxpemVyLnJlYWQobnMsIGJ5dGVzLCBhd3NRdWVyeVJlc3VsdEtleSkpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG91dHB1dCA9IHtcbiAgICAgICAgICAgICRtZXRhZGF0YTogdGhpcy5kZXNlcmlhbGl6ZU1ldGFkYXRhKHJlc3BvbnNlKSxcbiAgICAgICAgICAgIC4uLmRhdGFPYmplY3QsXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBvdXRwdXQ7XG4gICAgfVxuICAgIHVzZU5lc3RlZFJlc3VsdCgpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGFzeW5jIGhhbmRsZUVycm9yKG9wZXJhdGlvblNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UsIGRhdGFPYmplY3QsIG1ldGFkYXRhKSB7XG4gICAgICAgIGNvbnN0IGVycm9ySWRlbnRpZmllciA9IHRoaXMubG9hZFF1ZXJ5RXJyb3JDb2RlKHJlc3BvbnNlLCBkYXRhT2JqZWN0KSA/PyBcIlVua25vd25cIjtcbiAgICAgICAgY29uc3QgZXJyb3JEYXRhID0gdGhpcy5sb2FkUXVlcnlFcnJvcihkYXRhT2JqZWN0KTtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IHRoaXMubG9hZFF1ZXJ5RXJyb3JNZXNzYWdlKGRhdGFPYmplY3QpO1xuICAgICAgICBlcnJvckRhdGEubWVzc2FnZSA9IG1lc3NhZ2U7XG4gICAgICAgIGVycm9yRGF0YS5FcnJvciA9IHtcbiAgICAgICAgICAgIFR5cGU6IGVycm9yRGF0YS5UeXBlLFxuICAgICAgICAgICAgQ29kZTogZXJyb3JEYXRhLkNvZGUsXG4gICAgICAgICAgICBNZXNzYWdlOiBtZXNzYWdlLFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCB7IGVycm9yU2NoZW1hLCBlcnJvck1ldGFkYXRhIH0gPSBhd2FpdCB0aGlzLm1peGluLmdldEVycm9yU2NoZW1hT3JUaHJvd0Jhc2VFeGNlcHRpb24oZXJyb3JJZGVudGlmaWVyLCB0aGlzLm9wdGlvbnMuZGVmYXVsdE5hbWVzcGFjZSwgcmVzcG9uc2UsIGVycm9yRGF0YSwgbWV0YWRhdGEsIHRoaXMubWl4aW4uZmluZFF1ZXJ5Q29tcGF0aWJsZUVycm9yKTtcbiAgICAgICAgY29uc3QgbnMgPSBOb3JtYWxpemVkU2NoZW1hLm9mKGVycm9yU2NoZW1hKTtcbiAgICAgICAgY29uc3QgRXJyb3JDdG9yID0gVHlwZVJlZ2lzdHJ5LmZvcihlcnJvclNjaGVtYVsxXSkuZ2V0RXJyb3JDdG9yKGVycm9yU2NoZW1hKSA/PyBFcnJvcjtcbiAgICAgICAgY29uc3QgZXhjZXB0aW9uID0gbmV3IEVycm9yQ3RvcihtZXNzYWdlKTtcbiAgICAgICAgY29uc3Qgb3V0cHV0ID0ge1xuICAgICAgICAgICAgVHlwZTogZXJyb3JEYXRhLkVycm9yLlR5cGUsXG4gICAgICAgICAgICBDb2RlOiBlcnJvckRhdGEuRXJyb3IuQ29kZSxcbiAgICAgICAgICAgIEVycm9yOiBlcnJvckRhdGEuRXJyb3IsXG4gICAgICAgIH07XG4gICAgICAgIGZvciAoY29uc3QgW25hbWUsIG1lbWJlcl0gb2YgbnMuc3RydWN0SXRlcmF0b3IoKSkge1xuICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gbWVtYmVyLmdldE1lcmdlZFRyYWl0cygpLnhtbE5hbWUgPz8gbmFtZTtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZXJyb3JEYXRhW3RhcmdldF0gPz8gZGF0YU9iamVjdFt0YXJnZXRdO1xuICAgICAgICAgICAgb3V0cHV0W25hbWVdID0gdGhpcy5kZXNlcmlhbGl6ZXIucmVhZFNjaGVtYShtZW1iZXIsIHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyB0aGlzLm1peGluLmRlY29yYXRlU2VydmljZUV4Y2VwdGlvbihPYmplY3QuYXNzaWduKGV4Y2VwdGlvbiwgZXJyb3JNZXRhZGF0YSwge1xuICAgICAgICAgICAgJGZhdWx0OiBucy5nZXRNZXJnZWRUcmFpdHMoKS5lcnJvcixcbiAgICAgICAgICAgIG1lc3NhZ2UsXG4gICAgICAgIH0sIG91dHB1dCksIGRhdGFPYmplY3QpO1xuICAgIH1cbiAgICBsb2FkUXVlcnlFcnJvckNvZGUob3V0cHV0LCBkYXRhKSB7XG4gICAgICAgIGNvbnN0IGNvZGUgPSAoZGF0YS5FcnJvcnM/LlswXT8uRXJyb3IgPz8gZGF0YS5FcnJvcnM/LkVycm9yID8/IGRhdGEuRXJyb3IpPy5Db2RlO1xuICAgICAgICBpZiAoY29kZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gY29kZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3V0cHV0LnN0YXR1c0NvZGUgPT0gNDA0KSB7XG4gICAgICAgICAgICByZXR1cm4gXCJOb3RGb3VuZFwiO1xuICAgICAgICB9XG4gICAgfVxuICAgIGxvYWRRdWVyeUVycm9yKGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIGRhdGEuRXJyb3JzPy5bMF0/LkVycm9yID8/IGRhdGEuRXJyb3JzPy5FcnJvciA/PyBkYXRhLkVycm9yO1xuICAgIH1cbiAgICBsb2FkUXVlcnlFcnJvck1lc3NhZ2UoZGF0YSkge1xuICAgICAgICBjb25zdCBlcnJvckRhdGEgPSB0aGlzLmxvYWRRdWVyeUVycm9yKGRhdGEpO1xuICAgICAgICByZXR1cm4gZXJyb3JEYXRhPy5tZXNzYWdlID8/IGVycm9yRGF0YT8uTWVzc2FnZSA/PyBkYXRhLm1lc3NhZ2UgPz8gZGF0YS5NZXNzYWdlID8/IFwiVW5rbm93blwiO1xuICAgIH1cbiAgICBnZXREZWZhdWx0Q29udGVudFR5cGUoKSB7XG4gICAgICAgIHJldHVybiBcImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZFwiO1xuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBBd3NRdWVyeVByb3RvY29sIH0gZnJvbSBcIi4vQXdzUXVlcnlQcm90b2NvbFwiO1xuZXhwb3J0IGNsYXNzIEF3c0VjMlF1ZXJ5UHJvdG9jb2wgZXh0ZW5kcyBBd3NRdWVyeVByb3RvY29sIHtcbiAgICBvcHRpb25zO1xuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnMpIHtcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgICAgIGNvbnN0IGVjMlNldHRpbmdzID0ge1xuICAgICAgICAgICAgY2FwaXRhbGl6ZUtleXM6IHRydWUsXG4gICAgICAgICAgICBmbGF0dGVuTGlzdHM6IHRydWUsXG4gICAgICAgICAgICBzZXJpYWxpemVFbXB0eUxpc3RzOiBmYWxzZSxcbiAgICAgICAgfTtcbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLnNlcmlhbGl6ZXIuc2V0dGluZ3MsIGVjMlNldHRpbmdzKTtcbiAgICB9XG4gICAgdXNlTmVzdGVkUmVzdWx0KCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IHBhcnNlWE1MIH0gZnJvbSBcIkBhd3Mtc2RrL3htbC1idWlsZGVyXCI7XG5pbXBvcnQgeyBnZXRWYWx1ZUZyb21UZXh0Tm9kZSB9IGZyb20gXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjtcbmltcG9ydCB7IGNvbGxlY3RCb2R5U3RyaW5nIH0gZnJvbSBcIi4uL2NvbW1vblwiO1xuZXhwb3J0IGNvbnN0IHBhcnNlWG1sQm9keSA9IChzdHJlYW1Cb2R5LCBjb250ZXh0KSA9PiBjb2xsZWN0Qm9keVN0cmluZyhzdHJlYW1Cb2R5LCBjb250ZXh0KS50aGVuKChlbmNvZGVkKSA9PiB7XG4gICAgaWYgKGVuY29kZWQubGVuZ3RoKSB7XG4gICAgICAgIGxldCBwYXJzZWRPYmo7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBwYXJzZWRPYmogPSBwYXJzZVhNTChlbmNvZGVkKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgaWYgKGUgJiYgdHlwZW9mIGUgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwgXCIkcmVzcG9uc2VCb2R5VGV4dFwiLCB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBlbmNvZGVkLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB0ZXh0Tm9kZU5hbWUgPSBcIiN0ZXh0XCI7XG4gICAgICAgIGNvbnN0IGtleSA9IE9iamVjdC5rZXlzKHBhcnNlZE9iailbMF07XG4gICAgICAgIGNvbnN0IHBhcnNlZE9ialRvUmV0dXJuID0gcGFyc2VkT2JqW2tleV07XG4gICAgICAgIGlmIChwYXJzZWRPYmpUb1JldHVyblt0ZXh0Tm9kZU5hbWVdKSB7XG4gICAgICAgICAgICBwYXJzZWRPYmpUb1JldHVybltrZXldID0gcGFyc2VkT2JqVG9SZXR1cm5bdGV4dE5vZGVOYW1lXTtcbiAgICAgICAgICAgIGRlbGV0ZSBwYXJzZWRPYmpUb1JldHVyblt0ZXh0Tm9kZU5hbWVdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBnZXRWYWx1ZUZyb21UZXh0Tm9kZShwYXJzZWRPYmpUb1JldHVybik7XG4gICAgfVxuICAgIHJldHVybiB7fTtcbn0pO1xuZXhwb3J0IGNvbnN0IHBhcnNlWG1sRXJyb3JCb2R5ID0gYXN5bmMgKGVycm9yQm9keSwgY29udGV4dCkgPT4ge1xuICAgIGNvbnN0IHZhbHVlID0gYXdhaXQgcGFyc2VYbWxCb2R5KGVycm9yQm9keSwgY29udGV4dCk7XG4gICAgaWYgKHZhbHVlLkVycm9yKSB7XG4gICAgICAgIHZhbHVlLkVycm9yLm1lc3NhZ2UgPSB2YWx1ZS5FcnJvci5tZXNzYWdlID8/IHZhbHVlLkVycm9yLk1lc3NhZ2U7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZTtcbn07XG5leHBvcnQgY29uc3QgbG9hZFJlc3RYbWxFcnJvckNvZGUgPSAob3V0cHV0LCBkYXRhKSA9PiB7XG4gICAgaWYgKGRhdGE/LkVycm9yPy5Db2RlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIGRhdGEuRXJyb3IuQ29kZTtcbiAgICB9XG4gICAgaWYgKGRhdGE/LkNvZGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gZGF0YS5Db2RlO1xuICAgIH1cbiAgICBpZiAob3V0cHV0LnN0YXR1c0NvZGUgPT0gNDA0KSB7XG4gICAgICAgIHJldHVybiBcIk5vdEZvdW5kXCI7XG4gICAgfVxufTtcbiIsICJpbXBvcnQgeyBYbWxOb2RlLCBYbWxUZXh0IH0gZnJvbSBcIkBhd3Mtc2RrL3htbC1idWlsZGVyXCI7XG5pbXBvcnQgeyBkZXRlcm1pbmVUaW1lc3RhbXBGb3JtYXQgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3Byb3RvY29sc1wiO1xuaW1wb3J0IHsgTm9ybWFsaXplZFNjaGVtYSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2NoZW1hXCI7XG5pbXBvcnQgeyBnZW5lcmF0ZUlkZW1wb3RlbmN5VG9rZW4sIE51bWVyaWNWYWx1ZSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2VyZGVcIjtcbmltcG9ydCB7IGRhdGVUb1V0Y1N0cmluZyB9IGZyb20gXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjtcbmltcG9ydCB7IGZyb21CYXNlNjQsIHRvQmFzZTY0IH0gZnJvbSBcIkBzbWl0aHkvdXRpbC1iYXNlNjRcIjtcbmltcG9ydCB7IFNlcmRlQ29udGV4dENvbmZpZyB9IGZyb20gXCIuLi9Db25maWd1cmFibGVTZXJkZUNvbnRleHRcIjtcbmltcG9ydCB7IHNlcmlhbGl6aW5nU3RydWN0SXRlcmF0b3IgfSBmcm9tIFwiLi4vc3RydWN0SXRlcmF0b3JcIjtcbmV4cG9ydCBjbGFzcyBYbWxTaGFwZVNlcmlhbGl6ZXIgZXh0ZW5kcyBTZXJkZUNvbnRleHRDb25maWcge1xuICAgIHNldHRpbmdzO1xuICAgIHN0cmluZ0J1ZmZlcjtcbiAgICBieXRlQnVmZmVyO1xuICAgIGJ1ZmZlcjtcbiAgICBjb25zdHJ1Y3RvcihzZXR0aW5ncykge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnNldHRpbmdzID0gc2V0dGluZ3M7XG4gICAgfVxuICAgIHdyaXRlKHNjaGVtYSwgdmFsdWUpIHtcbiAgICAgICAgY29uc3QgbnMgPSBOb3JtYWxpemVkU2NoZW1hLm9mKHNjaGVtYSk7XG4gICAgICAgIGlmIChucy5pc1N0cmluZ1NjaGVtYSgpICYmIHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgdGhpcy5zdHJpbmdCdWZmZXIgPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChucy5pc0Jsb2JTY2hlbWEoKSkge1xuICAgICAgICAgICAgdGhpcy5ieXRlQnVmZmVyID1cbiAgICAgICAgICAgICAgICBcImJ5dGVMZW5ndGhcIiBpbiB2YWx1ZVxuICAgICAgICAgICAgICAgICAgICA/IHZhbHVlXG4gICAgICAgICAgICAgICAgICAgIDogKHRoaXMuc2VyZGVDb250ZXh0Py5iYXNlNjREZWNvZGVyID8/IGZyb21CYXNlNjQpKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuYnVmZmVyID0gdGhpcy53cml0ZVN0cnVjdChucywgdmFsdWUsIHVuZGVmaW5lZCk7XG4gICAgICAgICAgICBjb25zdCB0cmFpdHMgPSBucy5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgICAgIGlmICh0cmFpdHMuaHR0cFBheWxvYWQgJiYgIXRyYWl0cy54bWxOYW1lKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5idWZmZXIud2l0aE5hbWUobnMuZ2V0TmFtZSgpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBmbHVzaCgpIHtcbiAgICAgICAgaWYgKHRoaXMuYnl0ZUJ1ZmZlciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBjb25zdCBieXRlcyA9IHRoaXMuYnl0ZUJ1ZmZlcjtcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLmJ5dGVCdWZmZXI7XG4gICAgICAgICAgICByZXR1cm4gYnl0ZXM7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuc3RyaW5nQnVmZmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHN0ciA9IHRoaXMuc3RyaW5nQnVmZmVyO1xuICAgICAgICAgICAgZGVsZXRlIHRoaXMuc3RyaW5nQnVmZmVyO1xuICAgICAgICAgICAgcmV0dXJuIHN0cjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBidWZmZXIgPSB0aGlzLmJ1ZmZlcjtcbiAgICAgICAgaWYgKHRoaXMuc2V0dGluZ3MueG1sTmFtZXNwYWNlKSB7XG4gICAgICAgICAgICBpZiAoIWJ1ZmZlcj8uYXR0cmlidXRlcz8uW1wieG1sbnNcIl0pIHtcbiAgICAgICAgICAgICAgICBidWZmZXIuYWRkQXR0cmlidXRlKFwieG1sbnNcIiwgdGhpcy5zZXR0aW5ncy54bWxOYW1lc3BhY2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGRlbGV0ZSB0aGlzLmJ1ZmZlcjtcbiAgICAgICAgcmV0dXJuIGJ1ZmZlci50b1N0cmluZygpO1xuICAgIH1cbiAgICB3cml0ZVN0cnVjdChucywgdmFsdWUsIHBhcmVudFhtbG5zKSB7XG4gICAgICAgIGNvbnN0IHRyYWl0cyA9IG5zLmdldE1lcmdlZFRyYWl0cygpO1xuICAgICAgICBjb25zdCBuYW1lID0gbnMuaXNNZW1iZXJTY2hlbWEoKSAmJiAhdHJhaXRzLmh0dHBQYXlsb2FkXG4gICAgICAgICAgICA/IG5zLmdldE1lbWJlclRyYWl0cygpLnhtbE5hbWUgPz8gbnMuZ2V0TWVtYmVyTmFtZSgpXG4gICAgICAgICAgICA6IHRyYWl0cy54bWxOYW1lID8/IG5zLmdldE5hbWUoKTtcbiAgICAgICAgaWYgKCFuYW1lIHx8ICFucy5pc1N0cnVjdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEBhd3Mtc2RrL2NvcmUvcHJvdG9jb2xzIC0geG1sIHNlcmlhbGl6ZXIsIGNhbm5vdCB3cml0ZSBzdHJ1Y3Qgd2l0aCBlbXB0eSBuYW1lIG9yIG5vbi1zdHJ1Y3QsIHNjaGVtYT0ke25zLmdldE5hbWUodHJ1ZSl9LmApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHN0cnVjdFhtbE5vZGUgPSBYbWxOb2RlLm9mKG5hbWUpO1xuICAgICAgICBjb25zdCBbeG1sbnNBdHRyLCB4bWxuc10gPSB0aGlzLmdldFhtbG5zQXR0cmlidXRlKG5zLCBwYXJlbnRYbWxucyk7XG4gICAgICAgIGZvciAoY29uc3QgW21lbWJlck5hbWUsIG1lbWJlclNjaGVtYV0gb2Ygc2VyaWFsaXppbmdTdHJ1Y3RJdGVyYXRvcihucywgdmFsdWUpKSB7XG4gICAgICAgICAgICBjb25zdCB2YWwgPSB2YWx1ZVttZW1iZXJOYW1lXTtcbiAgICAgICAgICAgIGlmICh2YWwgIT0gbnVsbCB8fCBtZW1iZXJTY2hlbWEuaXNJZGVtcG90ZW5jeVRva2VuKCkpIHtcbiAgICAgICAgICAgICAgICBpZiAobWVtYmVyU2NoZW1hLmdldE1lcmdlZFRyYWl0cygpLnhtbEF0dHJpYnV0ZSkge1xuICAgICAgICAgICAgICAgICAgICBzdHJ1Y3RYbWxOb2RlLmFkZEF0dHJpYnV0ZShtZW1iZXJTY2hlbWEuZ2V0TWVyZ2VkVHJhaXRzKCkueG1sTmFtZSA/PyBtZW1iZXJOYW1lLCB0aGlzLndyaXRlU2ltcGxlKG1lbWJlclNjaGVtYSwgdmFsKSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAobWVtYmVyU2NoZW1hLmlzTGlzdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMud3JpdGVMaXN0KG1lbWJlclNjaGVtYSwgdmFsLCBzdHJ1Y3RYbWxOb2RlLCB4bWxucyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKG1lbWJlclNjaGVtYS5pc01hcFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMud3JpdGVNYXAobWVtYmVyU2NoZW1hLCB2YWwsIHN0cnVjdFhtbE5vZGUsIHhtbG5zKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAobWVtYmVyU2NoZW1hLmlzU3RydWN0U2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgc3RydWN0WG1sTm9kZS5hZGRDaGlsZE5vZGUodGhpcy53cml0ZVN0cnVjdChtZW1iZXJTY2hlbWEsIHZhbCwgeG1sbnMpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1lbWJlck5vZGUgPSBYbWxOb2RlLm9mKG1lbWJlclNjaGVtYS5nZXRNZXJnZWRUcmFpdHMoKS54bWxOYW1lID8/IG1lbWJlclNjaGVtYS5nZXRNZW1iZXJOYW1lKCkpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLndyaXRlU2ltcGxlSW50byhtZW1iZXJTY2hlbWEsIHZhbCwgbWVtYmVyTm9kZSwgeG1sbnMpO1xuICAgICAgICAgICAgICAgICAgICBzdHJ1Y3RYbWxOb2RlLmFkZENoaWxkTm9kZShtZW1iZXJOb2RlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHhtbG5zKSB7XG4gICAgICAgICAgICBzdHJ1Y3RYbWxOb2RlLmFkZEF0dHJpYnV0ZSh4bWxuc0F0dHIsIHhtbG5zKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc3RydWN0WG1sTm9kZTtcbiAgICB9XG4gICAgd3JpdGVMaXN0KGxpc3RNZW1iZXIsIGFycmF5LCBjb250YWluZXIsIHBhcmVudFhtbG5zKSB7XG4gICAgICAgIGlmICghbGlzdE1lbWJlci5pc01lbWJlclNjaGVtYSgpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEBhd3Mtc2RrL2NvcmUvcHJvdG9jb2xzIC0geG1sIHNlcmlhbGl6ZXIsIGNhbm5vdCB3cml0ZSBub24tbWVtYmVyIGxpc3Q6ICR7bGlzdE1lbWJlci5nZXROYW1lKHRydWUpfWApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGxpc3RUcmFpdHMgPSBsaXN0TWVtYmVyLmdldE1lcmdlZFRyYWl0cygpO1xuICAgICAgICBjb25zdCBsaXN0VmFsdWVTY2hlbWEgPSBsaXN0TWVtYmVyLmdldFZhbHVlU2NoZW1hKCk7XG4gICAgICAgIGNvbnN0IGxpc3RWYWx1ZVRyYWl0cyA9IGxpc3RWYWx1ZVNjaGVtYS5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgY29uc3Qgc3BhcnNlID0gISFsaXN0VmFsdWVUcmFpdHMuc3BhcnNlO1xuICAgICAgICBjb25zdCBmbGF0ID0gISFsaXN0VHJhaXRzLnhtbEZsYXR0ZW5lZDtcbiAgICAgICAgY29uc3QgW3htbG5zQXR0ciwgeG1sbnNdID0gdGhpcy5nZXRYbWxuc0F0dHJpYnV0ZShsaXN0TWVtYmVyLCBwYXJlbnRYbWxucyk7XG4gICAgICAgIGNvbnN0IHdyaXRlSXRlbSA9IChjb250YWluZXIsIHZhbHVlKSA9PiB7XG4gICAgICAgICAgICBpZiAobGlzdFZhbHVlU2NoZW1hLmlzTGlzdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZUxpc3QobGlzdFZhbHVlU2NoZW1hLCBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW3ZhbHVlXSwgY29udGFpbmVyLCB4bWxucyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChsaXN0VmFsdWVTY2hlbWEuaXNNYXBTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVNYXAobGlzdFZhbHVlU2NoZW1hLCB2YWx1ZSwgY29udGFpbmVyLCB4bWxucyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChsaXN0VmFsdWVTY2hlbWEuaXNTdHJ1Y3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCA9IHRoaXMud3JpdGVTdHJ1Y3QobGlzdFZhbHVlU2NoZW1hLCB2YWx1ZSwgeG1sbnMpO1xuICAgICAgICAgICAgICAgIGNvbnRhaW5lci5hZGRDaGlsZE5vZGUoc3RydWN0LndpdGhOYW1lKGZsYXQgPyBsaXN0VHJhaXRzLnhtbE5hbWUgPz8gbGlzdE1lbWJlci5nZXRNZW1iZXJOYW1lKCkgOiBsaXN0VmFsdWVUcmFpdHMueG1sTmFtZSA/PyBcIm1lbWJlclwiKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBsaXN0SXRlbU5vZGUgPSBYbWxOb2RlLm9mKGZsYXQgPyBsaXN0VHJhaXRzLnhtbE5hbWUgPz8gbGlzdE1lbWJlci5nZXRNZW1iZXJOYW1lKCkgOiBsaXN0VmFsdWVUcmFpdHMueG1sTmFtZSA/PyBcIm1lbWJlclwiKTtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlU2ltcGxlSW50byhsaXN0VmFsdWVTY2hlbWEsIHZhbHVlLCBsaXN0SXRlbU5vZGUsIHhtbG5zKTtcbiAgICAgICAgICAgICAgICBjb250YWluZXIuYWRkQ2hpbGROb2RlKGxpc3RJdGVtTm9kZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIGlmIChmbGF0KSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHZhbHVlIG9mIGFycmF5KSB7XG4gICAgICAgICAgICAgICAgaWYgKHNwYXJzZSB8fCB2YWx1ZSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHdyaXRlSXRlbShjb250YWluZXIsIHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBsaXN0Tm9kZSA9IFhtbE5vZGUub2YobGlzdFRyYWl0cy54bWxOYW1lID8/IGxpc3RNZW1iZXIuZ2V0TWVtYmVyTmFtZSgpKTtcbiAgICAgICAgICAgIGlmICh4bWxucykge1xuICAgICAgICAgICAgICAgIGxpc3ROb2RlLmFkZEF0dHJpYnV0ZSh4bWxuc0F0dHIsIHhtbG5zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZvciAoY29uc3QgdmFsdWUgb2YgYXJyYXkpIHtcbiAgICAgICAgICAgICAgICBpZiAoc3BhcnNlIHx8IHZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgd3JpdGVJdGVtKGxpc3ROb2RlLCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29udGFpbmVyLmFkZENoaWxkTm9kZShsaXN0Tm9kZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgd3JpdGVNYXAobWFwTWVtYmVyLCBtYXAsIGNvbnRhaW5lciwgcGFyZW50WG1sbnMsIGNvbnRhaW5lcklzTWFwID0gZmFsc2UpIHtcbiAgICAgICAgaWYgKCFtYXBNZW1iZXIuaXNNZW1iZXJTY2hlbWEoKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBAYXdzLXNkay9jb3JlL3Byb3RvY29scyAtIHhtbCBzZXJpYWxpemVyLCBjYW5ub3Qgd3JpdGUgbm9uLW1lbWJlciBtYXA6ICR7bWFwTWVtYmVyLmdldE5hbWUodHJ1ZSl9YCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbWFwVHJhaXRzID0gbWFwTWVtYmVyLmdldE1lcmdlZFRyYWl0cygpO1xuICAgICAgICBjb25zdCBtYXBLZXlTY2hlbWEgPSBtYXBNZW1iZXIuZ2V0S2V5U2NoZW1hKCk7XG4gICAgICAgIGNvbnN0IG1hcEtleVRyYWl0cyA9IG1hcEtleVNjaGVtYS5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgY29uc3Qga2V5VGFnID0gbWFwS2V5VHJhaXRzLnhtbE5hbWUgPz8gXCJrZXlcIjtcbiAgICAgICAgY29uc3QgbWFwVmFsdWVTY2hlbWEgPSBtYXBNZW1iZXIuZ2V0VmFsdWVTY2hlbWEoKTtcbiAgICAgICAgY29uc3QgbWFwVmFsdWVUcmFpdHMgPSBtYXBWYWx1ZVNjaGVtYS5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgY29uc3QgdmFsdWVUYWcgPSBtYXBWYWx1ZVRyYWl0cy54bWxOYW1lID8/IFwidmFsdWVcIjtcbiAgICAgICAgY29uc3Qgc3BhcnNlID0gISFtYXBWYWx1ZVRyYWl0cy5zcGFyc2U7XG4gICAgICAgIGNvbnN0IGZsYXQgPSAhIW1hcFRyYWl0cy54bWxGbGF0dGVuZWQ7XG4gICAgICAgIGNvbnN0IFt4bWxuc0F0dHIsIHhtbG5zXSA9IHRoaXMuZ2V0WG1sbnNBdHRyaWJ1dGUobWFwTWVtYmVyLCBwYXJlbnRYbWxucyk7XG4gICAgICAgIGNvbnN0IGFkZEtleVZhbHVlID0gKGVudHJ5LCBrZXksIHZhbCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qga2V5Tm9kZSA9IFhtbE5vZGUub2Yoa2V5VGFnLCBrZXkpO1xuICAgICAgICAgICAgY29uc3QgW2tleVhtbG5zQXR0ciwga2V5WG1sbnNdID0gdGhpcy5nZXRYbWxuc0F0dHJpYnV0ZShtYXBLZXlTY2hlbWEsIHhtbG5zKTtcbiAgICAgICAgICAgIGlmIChrZXlYbWxucykge1xuICAgICAgICAgICAgICAgIGtleU5vZGUuYWRkQXR0cmlidXRlKGtleVhtbG5zQXR0ciwga2V5WG1sbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZW50cnkuYWRkQ2hpbGROb2RlKGtleU5vZGUpO1xuICAgICAgICAgICAgbGV0IHZhbHVlTm9kZSA9IFhtbE5vZGUub2YodmFsdWVUYWcpO1xuICAgICAgICAgICAgaWYgKG1hcFZhbHVlU2NoZW1hLmlzTGlzdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZUxpc3QobWFwVmFsdWVTY2hlbWEsIHZhbCwgdmFsdWVOb2RlLCB4bWxucyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChtYXBWYWx1ZVNjaGVtYS5pc01hcFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZU1hcChtYXBWYWx1ZVNjaGVtYSwgdmFsLCB2YWx1ZU5vZGUsIHhtbG5zLCB0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKG1hcFZhbHVlU2NoZW1hLmlzU3RydWN0U2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICB2YWx1ZU5vZGUgPSB0aGlzLndyaXRlU3RydWN0KG1hcFZhbHVlU2NoZW1hLCB2YWwsIHhtbG5zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVTaW1wbGVJbnRvKG1hcFZhbHVlU2NoZW1hLCB2YWwsIHZhbHVlTm9kZSwgeG1sbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZW50cnkuYWRkQ2hpbGROb2RlKHZhbHVlTm9kZSk7XG4gICAgICAgIH07XG4gICAgICAgIGlmIChmbGF0KSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbF0gb2YgT2JqZWN0LmVudHJpZXMobWFwKSkge1xuICAgICAgICAgICAgICAgIGlmIChzcGFyc2UgfHwgdmFsICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZW50cnkgPSBYbWxOb2RlLm9mKG1hcFRyYWl0cy54bWxOYW1lID8/IG1hcE1lbWJlci5nZXRNZW1iZXJOYW1lKCkpO1xuICAgICAgICAgICAgICAgICAgICBhZGRLZXlWYWx1ZShlbnRyeSwga2V5LCB2YWwpO1xuICAgICAgICAgICAgICAgICAgICBjb250YWluZXIuYWRkQ2hpbGROb2RlKGVudHJ5KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBsZXQgbWFwTm9kZTtcbiAgICAgICAgICAgIGlmICghY29udGFpbmVySXNNYXApIHtcbiAgICAgICAgICAgICAgICBtYXBOb2RlID0gWG1sTm9kZS5vZihtYXBUcmFpdHMueG1sTmFtZSA/PyBtYXBNZW1iZXIuZ2V0TWVtYmVyTmFtZSgpKTtcbiAgICAgICAgICAgICAgICBpZiAoeG1sbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgbWFwTm9kZS5hZGRBdHRyaWJ1dGUoeG1sbnNBdHRyLCB4bWxucyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnRhaW5lci5hZGRDaGlsZE5vZGUobWFwTm9kZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbF0gb2YgT2JqZWN0LmVudHJpZXMobWFwKSkge1xuICAgICAgICAgICAgICAgIGlmIChzcGFyc2UgfHwgdmFsICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZW50cnkgPSBYbWxOb2RlLm9mKFwiZW50cnlcIik7XG4gICAgICAgICAgICAgICAgICAgIGFkZEtleVZhbHVlKGVudHJ5LCBrZXksIHZhbCk7XG4gICAgICAgICAgICAgICAgICAgIChjb250YWluZXJJc01hcCA/IGNvbnRhaW5lciA6IG1hcE5vZGUpLmFkZENoaWxkTm9kZShlbnRyeSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHdyaXRlU2ltcGxlKF9zY2hlbWEsIHZhbHVlKSB7XG4gICAgICAgIGlmIChudWxsID09PSB2YWx1ZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSAoWE1MIHNlcmlhbGl6ZXIpIGNhbm5vdCB3cml0ZSBudWxsIHZhbHVlLlwiKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBucyA9IE5vcm1hbGl6ZWRTY2hlbWEub2YoX3NjaGVtYSk7XG4gICAgICAgIGxldCBub2RlQ29udGVudHMgPSBudWxsO1xuICAgICAgICBpZiAodmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICBpZiAobnMuaXNCbG9iU2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICBub2RlQ29udGVudHMgPSAodGhpcy5zZXJkZUNvbnRleHQ/LmJhc2U2NEVuY29kZXIgPz8gdG9CYXNlNjQpKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKG5zLmlzVGltZXN0YW1wU2NoZW1hKCkgJiYgdmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZm9ybWF0ID0gZGV0ZXJtaW5lVGltZXN0YW1wRm9ybWF0KG5zLCB0aGlzLnNldHRpbmdzKTtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGZvcm1hdCkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgICAgICAgICAgICAgICBub2RlQ29udGVudHMgPSB2YWx1ZS50b0lTT1N0cmluZygpLnJlcGxhY2UoXCIuMDAwWlwiLCBcIlpcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgICAgICAgICAgICAgbm9kZUNvbnRlbnRzID0gZGF0ZVRvVXRjU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDc6XG4gICAgICAgICAgICAgICAgICAgICAgICBub2RlQ29udGVudHMgPSBTdHJpbmcodmFsdWUuZ2V0VGltZSgpIC8gMTAwMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihcIk1pc3NpbmcgdGltZXN0YW1wIGZvcm1hdCwgdXNpbmcgaHR0cCBkYXRlXCIsIHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vZGVDb250ZW50cyA9IGRhdGVUb1V0Y1N0cmluZyh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChucy5pc0JpZ0RlY2ltYWxTY2hlbWEoKSAmJiB2YWx1ZSkge1xuICAgICAgICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIE51bWVyaWNWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUuc3RyaW5nO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKG5zLmlzTWFwU2NoZW1hKCkgfHwgbnMuaXNMaXN0U2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJAYXdzLXNkay9jb3JlL3Byb3RvY29scyAtIHhtbCBzZXJpYWxpemVyLCBjYW5ub3QgY2FsbCBfd3JpdGUoKSBvbiBMaXN0L01hcCBzY2hlbWEsIGNhbGwgd3JpdGVMaXN0IG9yIHdyaXRlTWFwKCkgaW5zdGVhZC5cIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEBhd3Mtc2RrL2NvcmUvcHJvdG9jb2xzIC0geG1sIHNlcmlhbGl6ZXIsIHVuaGFuZGxlZCBzY2hlbWEgdHlwZSBmb3Igb2JqZWN0IHZhbHVlIGFuZCBzY2hlbWE6ICR7bnMuZ2V0TmFtZSh0cnVlKX1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAobnMuaXNCb29sZWFuU2NoZW1hKCkgfHwgbnMuaXNOdW1lcmljU2NoZW1hKCkgfHwgbnMuaXNCaWdJbnRlZ2VyU2NoZW1hKCkgfHwgbnMuaXNCaWdEZWNpbWFsU2NoZW1hKCkpIHtcbiAgICAgICAgICAgIG5vZGVDb250ZW50cyA9IFN0cmluZyh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzU3RyaW5nU2NoZW1hKCkpIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkICYmIG5zLmlzSWRlbXBvdGVuY3lUb2tlbigpKSB7XG4gICAgICAgICAgICAgICAgbm9kZUNvbnRlbnRzID0gZ2VuZXJhdGVJZGVtcG90ZW5jeVRva2VuKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBub2RlQ29udGVudHMgPSBTdHJpbmcodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChub2RlQ29udGVudHMgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5oYW5kbGVkIHNjaGVtYS12YWx1ZSBwYWlyICR7bnMuZ2V0TmFtZSh0cnVlKX09JHt2YWx1ZX1gKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbm9kZUNvbnRlbnRzO1xuICAgIH1cbiAgICB3cml0ZVNpbXBsZUludG8oX3NjaGVtYSwgdmFsdWUsIGludG8sIHBhcmVudFhtbG5zKSB7XG4gICAgICAgIGNvbnN0IG5vZGVDb250ZW50cyA9IHRoaXMud3JpdGVTaW1wbGUoX3NjaGVtYSwgdmFsdWUpO1xuICAgICAgICBjb25zdCBucyA9IE5vcm1hbGl6ZWRTY2hlbWEub2YoX3NjaGVtYSk7XG4gICAgICAgIGNvbnN0IGNvbnRlbnQgPSBuZXcgWG1sVGV4dChub2RlQ29udGVudHMpO1xuICAgICAgICBjb25zdCBbeG1sbnNBdHRyLCB4bWxuc10gPSB0aGlzLmdldFhtbG5zQXR0cmlidXRlKG5zLCBwYXJlbnRYbWxucyk7XG4gICAgICAgIGlmICh4bWxucykge1xuICAgICAgICAgICAgaW50by5hZGRBdHRyaWJ1dGUoeG1sbnNBdHRyLCB4bWxucyk7XG4gICAgICAgIH1cbiAgICAgICAgaW50by5hZGRDaGlsZE5vZGUoY29udGVudCk7XG4gICAgfVxuICAgIGdldFhtbG5zQXR0cmlidXRlKG5zLCBwYXJlbnRYbWxucykge1xuICAgICAgICBjb25zdCB0cmFpdHMgPSBucy5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgY29uc3QgW3ByZWZpeCwgeG1sbnNdID0gdHJhaXRzLnhtbE5hbWVzcGFjZSA/PyBbXTtcbiAgICAgICAgaWYgKHhtbG5zICYmIHhtbG5zICE9PSBwYXJlbnRYbWxucykge1xuICAgICAgICAgICAgcmV0dXJuIFtwcmVmaXggPyBgeG1sbnM6JHtwcmVmaXh9YCA6IFwieG1sbnNcIiwgeG1sbnNdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBbdm9pZCAwLCB2b2lkIDBdO1xuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBTZXJkZUNvbnRleHRDb25maWcgfSBmcm9tIFwiLi4vQ29uZmlndXJhYmxlU2VyZGVDb250ZXh0XCI7XG5pbXBvcnQgeyBYbWxTaGFwZURlc2VyaWFsaXplciB9IGZyb20gXCIuL1htbFNoYXBlRGVzZXJpYWxpemVyXCI7XG5pbXBvcnQgeyBYbWxTaGFwZVNlcmlhbGl6ZXIgfSBmcm9tIFwiLi9YbWxTaGFwZVNlcmlhbGl6ZXJcIjtcbmV4cG9ydCBjbGFzcyBYbWxDb2RlYyBleHRlbmRzIFNlcmRlQ29udGV4dENvbmZpZyB7XG4gICAgc2V0dGluZ3M7XG4gICAgY29uc3RydWN0b3Ioc2V0dGluZ3MpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5zZXR0aW5ncyA9IHNldHRpbmdzO1xuICAgIH1cbiAgICBjcmVhdGVTZXJpYWxpemVyKCkge1xuICAgICAgICBjb25zdCBzZXJpYWxpemVyID0gbmV3IFhtbFNoYXBlU2VyaWFsaXplcih0aGlzLnNldHRpbmdzKTtcbiAgICAgICAgc2VyaWFsaXplci5zZXRTZXJkZUNvbnRleHQodGhpcy5zZXJkZUNvbnRleHQpO1xuICAgICAgICByZXR1cm4gc2VyaWFsaXplcjtcbiAgICB9XG4gICAgY3JlYXRlRGVzZXJpYWxpemVyKCkge1xuICAgICAgICBjb25zdCBkZXNlcmlhbGl6ZXIgPSBuZXcgWG1sU2hhcGVEZXNlcmlhbGl6ZXIodGhpcy5zZXR0aW5ncyk7XG4gICAgICAgIGRlc2VyaWFsaXplci5zZXRTZXJkZUNvbnRleHQodGhpcy5zZXJkZUNvbnRleHQpO1xuICAgICAgICByZXR1cm4gZGVzZXJpYWxpemVyO1xuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBIdHRwQmluZGluZ1Byb3RvY29sLCBIdHRwSW50ZXJjZXB0aW5nU2hhcGVEZXNlcmlhbGl6ZXIsIEh0dHBJbnRlcmNlcHRpbmdTaGFwZVNlcmlhbGl6ZXIsIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9wcm90b2NvbHNcIjtcbmltcG9ydCB7IE5vcm1hbGl6ZWRTY2hlbWEsIFR5cGVSZWdpc3RyeSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2NoZW1hXCI7XG5pbXBvcnQgeyBQcm90b2NvbExpYiB9IGZyb20gXCIuLi9Qcm90b2NvbExpYlwiO1xuaW1wb3J0IHsgbG9hZFJlc3RYbWxFcnJvckNvZGUgfSBmcm9tIFwiLi9wYXJzZVhtbEJvZHlcIjtcbmltcG9ydCB7IFhtbENvZGVjIH0gZnJvbSBcIi4vWG1sQ29kZWNcIjtcbmV4cG9ydCBjbGFzcyBBd3NSZXN0WG1sUHJvdG9jb2wgZXh0ZW5kcyBIdHRwQmluZGluZ1Byb3RvY29sIHtcbiAgICBjb2RlYztcbiAgICBzZXJpYWxpemVyO1xuICAgIGRlc2VyaWFsaXplcjtcbiAgICBtaXhpbiA9IG5ldyBQcm90b2NvbExpYigpO1xuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnMpIHtcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XG4gICAgICAgIGNvbnN0IHNldHRpbmdzID0ge1xuICAgICAgICAgICAgdGltZXN0YW1wRm9ybWF0OiB7XG4gICAgICAgICAgICAgICAgdXNlVHJhaXQ6IHRydWUsXG4gICAgICAgICAgICAgICAgZGVmYXVsdDogNSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBodHRwQmluZGluZ3M6IHRydWUsXG4gICAgICAgICAgICB4bWxOYW1lc3BhY2U6IG9wdGlvbnMueG1sTmFtZXNwYWNlLFxuICAgICAgICAgICAgc2VydmljZU5hbWVzcGFjZTogb3B0aW9ucy5kZWZhdWx0TmFtZXNwYWNlLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmNvZGVjID0gbmV3IFhtbENvZGVjKHNldHRpbmdzKTtcbiAgICAgICAgdGhpcy5zZXJpYWxpemVyID0gbmV3IEh0dHBJbnRlcmNlcHRpbmdTaGFwZVNlcmlhbGl6ZXIodGhpcy5jb2RlYy5jcmVhdGVTZXJpYWxpemVyKCksIHNldHRpbmdzKTtcbiAgICAgICAgdGhpcy5kZXNlcmlhbGl6ZXIgPSBuZXcgSHR0cEludGVyY2VwdGluZ1NoYXBlRGVzZXJpYWxpemVyKHRoaXMuY29kZWMuY3JlYXRlRGVzZXJpYWxpemVyKCksIHNldHRpbmdzKTtcbiAgICB9XG4gICAgZ2V0UGF5bG9hZENvZGVjKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb2RlYztcbiAgICB9XG4gICAgZ2V0U2hhcGVJZCgpIHtcbiAgICAgICAgcmV0dXJuIFwiYXdzLnByb3RvY29scyNyZXN0WG1sXCI7XG4gICAgfVxuICAgIGFzeW5jIHNlcmlhbGl6ZVJlcXVlc3Qob3BlcmF0aW9uU2NoZW1hLCBpbnB1dCwgY29udGV4dCkge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gYXdhaXQgc3VwZXIuc2VyaWFsaXplUmVxdWVzdChvcGVyYXRpb25TY2hlbWEsIGlucHV0LCBjb250ZXh0KTtcbiAgICAgICAgY29uc3QgaW5wdXRTY2hlbWEgPSBOb3JtYWxpemVkU2NoZW1hLm9mKG9wZXJhdGlvblNjaGVtYS5pbnB1dCk7XG4gICAgICAgIGlmICghcmVxdWVzdC5oZWFkZXJzW1wiY29udGVudC10eXBlXCJdKSB7XG4gICAgICAgICAgICBjb25zdCBjb250ZW50VHlwZSA9IHRoaXMubWl4aW4ucmVzb2x2ZVJlc3RDb250ZW50VHlwZSh0aGlzLmdldERlZmF1bHRDb250ZW50VHlwZSgpLCBpbnB1dFNjaGVtYSk7XG4gICAgICAgICAgICBpZiAoY29udGVudFR5cGUpIHtcbiAgICAgICAgICAgICAgICByZXF1ZXN0LmhlYWRlcnNbXCJjb250ZW50LXR5cGVcIl0gPSBjb250ZW50VHlwZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIHJlcXVlc3QuYm9keSA9PT0gXCJzdHJpbmdcIiAmJlxuICAgICAgICAgICAgcmVxdWVzdC5oZWFkZXJzW1wiY29udGVudC10eXBlXCJdID09PSB0aGlzLmdldERlZmF1bHRDb250ZW50VHlwZSgpICYmXG4gICAgICAgICAgICAhcmVxdWVzdC5ib2R5LnN0YXJ0c1dpdGgoXCI8P3htbCBcIikgJiZcbiAgICAgICAgICAgICF0aGlzLmhhc1Vuc3RydWN0dXJlZFBheWxvYWRCaW5kaW5nKGlucHV0U2NoZW1hKSkge1xuICAgICAgICAgICAgcmVxdWVzdC5ib2R5ID0gJzw/eG1sIHZlcnNpb249XCIxLjBcIiBlbmNvZGluZz1cIlVURi04XCI/PicgKyByZXF1ZXN0LmJvZHk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlcXVlc3Q7XG4gICAgfVxuICAgIGFzeW5jIGRlc2VyaWFsaXplUmVzcG9uc2Uob3BlcmF0aW9uU2NoZW1hLCBjb250ZXh0LCByZXNwb25zZSkge1xuICAgICAgICByZXR1cm4gc3VwZXIuZGVzZXJpYWxpemVSZXNwb25zZShvcGVyYXRpb25TY2hlbWEsIGNvbnRleHQsIHJlc3BvbnNlKTtcbiAgICB9XG4gICAgYXN5bmMgaGFuZGxlRXJyb3Iob3BlcmF0aW9uU2NoZW1hLCBjb250ZXh0LCByZXNwb25zZSwgZGF0YU9iamVjdCwgbWV0YWRhdGEpIHtcbiAgICAgICAgY29uc3QgZXJyb3JJZGVudGlmaWVyID0gbG9hZFJlc3RYbWxFcnJvckNvZGUocmVzcG9uc2UsIGRhdGFPYmplY3QpID8/IFwiVW5rbm93blwiO1xuICAgICAgICBjb25zdCB7IGVycm9yU2NoZW1hLCBlcnJvck1ldGFkYXRhIH0gPSBhd2FpdCB0aGlzLm1peGluLmdldEVycm9yU2NoZW1hT3JUaHJvd0Jhc2VFeGNlcHRpb24oZXJyb3JJZGVudGlmaWVyLCB0aGlzLm9wdGlvbnMuZGVmYXVsdE5hbWVzcGFjZSwgcmVzcG9uc2UsIGRhdGFPYmplY3QsIG1ldGFkYXRhKTtcbiAgICAgICAgY29uc3QgbnMgPSBOb3JtYWxpemVkU2NoZW1hLm9mKGVycm9yU2NoZW1hKTtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGRhdGFPYmplY3QuRXJyb3I/Lm1lc3NhZ2UgPz8gZGF0YU9iamVjdC5FcnJvcj8uTWVzc2FnZSA/PyBkYXRhT2JqZWN0Lm1lc3NhZ2UgPz8gZGF0YU9iamVjdC5NZXNzYWdlID8/IFwiVW5rbm93blwiO1xuICAgICAgICBjb25zdCBFcnJvckN0b3IgPSBUeXBlUmVnaXN0cnkuZm9yKGVycm9yU2NoZW1hWzFdKS5nZXRFcnJvckN0b3IoZXJyb3JTY2hlbWEpID8/IEVycm9yO1xuICAgICAgICBjb25zdCBleGNlcHRpb24gPSBuZXcgRXJyb3JDdG9yKG1lc3NhZ2UpO1xuICAgICAgICBhd2FpdCB0aGlzLmRlc2VyaWFsaXplSHR0cE1lc3NhZ2UoZXJyb3JTY2hlbWEsIGNvbnRleHQsIHJlc3BvbnNlLCBkYXRhT2JqZWN0KTtcbiAgICAgICAgY29uc3Qgb3V0cHV0ID0ge307XG4gICAgICAgIGZvciAoY29uc3QgW25hbWUsIG1lbWJlcl0gb2YgbnMuc3RydWN0SXRlcmF0b3IoKSkge1xuICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gbWVtYmVyLmdldE1lcmdlZFRyYWl0cygpLnhtbE5hbWUgPz8gbmFtZTtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZGF0YU9iamVjdC5FcnJvcj8uW3RhcmdldF0gPz8gZGF0YU9iamVjdFt0YXJnZXRdO1xuICAgICAgICAgICAgb3V0cHV0W25hbWVdID0gdGhpcy5jb2RlYy5jcmVhdGVEZXNlcmlhbGl6ZXIoKS5yZWFkU2NoZW1hKG1lbWJlciwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IHRoaXMubWl4aW4uZGVjb3JhdGVTZXJ2aWNlRXhjZXB0aW9uKE9iamVjdC5hc3NpZ24oZXhjZXB0aW9uLCBlcnJvck1ldGFkYXRhLCB7XG4gICAgICAgICAgICAkZmF1bHQ6IG5zLmdldE1lcmdlZFRyYWl0cygpLmVycm9yLFxuICAgICAgICAgICAgbWVzc2FnZSxcbiAgICAgICAgfSwgb3V0cHV0KSwgZGF0YU9iamVjdCk7XG4gICAgfVxuICAgIGdldERlZmF1bHRDb250ZW50VHlwZSgpIHtcbiAgICAgICAgcmV0dXJuIFwiYXBwbGljYXRpb24veG1sXCI7XG4gICAgfVxuICAgIGhhc1Vuc3RydWN0dXJlZFBheWxvYWRCaW5kaW5nKG5zKSB7XG4gICAgICAgIGZvciAoY29uc3QgWywgbWVtYmVyXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICBpZiAobWVtYmVyLmdldE1lcmdlZFRyYWl0cygpLmh0dHBQYXlsb2FkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICEobWVtYmVyLmlzU3RydWN0U2NoZW1hKCkgfHwgbWVtYmVyLmlzTWFwU2NoZW1hKCkgfHwgbWVtYmVyLmlzTGlzdFNjaGVtYSgpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuIiwgImV4cG9ydCAqIGZyb20gXCIuL2Nib3IvQXdzU21pdGh5UnBjVjJDYm9yUHJvdG9jb2xcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvZXJjaW5nLXNlcmlhbGl6ZXJzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9qc29uL0F3c0pzb24xXzBQcm90b2NvbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vanNvbi9Bd3NKc29uMV8xUHJvdG9jb2xcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2pzb24vQXdzSnNvblJwY1Byb3RvY29sXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9qc29uL0F3c1Jlc3RKc29uUHJvdG9jb2xcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2pzb24vSnNvbkNvZGVjXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9qc29uL0pzb25TaGFwZURlc2VyaWFsaXplclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vanNvbi9Kc29uU2hhcGVTZXJpYWxpemVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9qc29uL2F3c0V4cGVjdFVuaW9uXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9qc29uL3BhcnNlSnNvbkJvZHlcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3F1ZXJ5L0F3c0VjMlF1ZXJ5UHJvdG9jb2xcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3F1ZXJ5L0F3c1F1ZXJ5UHJvdG9jb2xcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3htbC9Bd3NSZXN0WG1sUHJvdG9jb2xcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3htbC9YbWxDb2RlY1wiO1xuZXhwb3J0ICogZnJvbSBcIi4veG1sL1htbFNoYXBlRGVzZXJpYWxpemVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi94bWwvWG1sU2hhcGVTZXJpYWxpemVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi94bWwvcGFyc2VYbWxCb2R5XCI7XG4iLCAiZXhwb3J0ICogZnJvbSBcIi4vc3VibW9kdWxlcy9jbGllbnQvaW5kZXhcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3N1Ym1vZHVsZXMvaHR0cEF1dGhTY2hlbWVzL2luZGV4XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zdWJtb2R1bGVzL3Byb3RvY29scy9pbmRleFwiO1xuIiwgIid1c2Ugc3RyaWN0JztcblxudmFyIGNvcmUgPSByZXF1aXJlKCdAc21pdGh5L2NvcmUnKTtcbnZhciB1dGlsRW5kcG9pbnRzID0gcmVxdWlyZSgnQGF3cy1zZGsvdXRpbC1lbmRwb2ludHMnKTtcbnZhciBwcm90b2NvbEh0dHAgPSByZXF1aXJlKCdAc21pdGh5L3Byb3RvY29sLWh0dHAnKTtcbnZhciBjb3JlJDEgPSByZXF1aXJlKCdAYXdzLXNkay9jb3JlJyk7XG5cbmNvbnN0IERFRkFVTFRfVUFfQVBQX0lEID0gdW5kZWZpbmVkO1xuZnVuY3Rpb24gaXNWYWxpZFVzZXJBZ2VudEFwcElkKGFwcElkKSB7XG4gICAgaWYgKGFwcElkID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiB0eXBlb2YgYXBwSWQgPT09IFwic3RyaW5nXCIgJiYgYXBwSWQubGVuZ3RoIDw9IDUwO1xufVxuZnVuY3Rpb24gcmVzb2x2ZVVzZXJBZ2VudENvbmZpZyhpbnB1dCkge1xuICAgIGNvbnN0IG5vcm1hbGl6ZWRBcHBJZFByb3ZpZGVyID0gY29yZS5ub3JtYWxpemVQcm92aWRlcihpbnB1dC51c2VyQWdlbnRBcHBJZCA/PyBERUZBVUxUX1VBX0FQUF9JRCk7XG4gICAgY29uc3QgeyBjdXN0b21Vc2VyQWdlbnQgfSA9IGlucHV0O1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKGlucHV0LCB7XG4gICAgICAgIGN1c3RvbVVzZXJBZ2VudDogdHlwZW9mIGN1c3RvbVVzZXJBZ2VudCA9PT0gXCJzdHJpbmdcIiA/IFtbY3VzdG9tVXNlckFnZW50XV0gOiBjdXN0b21Vc2VyQWdlbnQsXG4gICAgICAgIHVzZXJBZ2VudEFwcElkOiBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBhcHBJZCA9IGF3YWl0IG5vcm1hbGl6ZWRBcHBJZFByb3ZpZGVyKCk7XG4gICAgICAgICAgICBpZiAoIWlzVmFsaWRVc2VyQWdlbnRBcHBJZChhcHBJZCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBsb2dnZXIgPSBpbnB1dC5sb2dnZXI/LmNvbnN0cnVjdG9yPy5uYW1lID09PSBcIk5vT3BMb2dnZXJcIiB8fCAhaW5wdXQubG9nZ2VyID8gY29uc29sZSA6IGlucHV0LmxvZ2dlcjtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGFwcElkICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAgICAgICAgIGxvZ2dlcj8ud2FybihcInVzZXJBZ2VudEFwcElkIG11c3QgYmUgYSBzdHJpbmcgb3IgdW5kZWZpbmVkLlwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoYXBwSWQubGVuZ3RoID4gNTApIHtcbiAgICAgICAgICAgICAgICAgICAgbG9nZ2VyPy53YXJuKFwiVGhlIHByb3ZpZGVkIHVzZXJBZ2VudEFwcElkIGV4Y2VlZHMgdGhlIG1heGltdW0gbGVuZ3RoIG9mIDUwIGNoYXJhY3RlcnMuXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBhcHBJZDtcbiAgICAgICAgfSxcbiAgICB9KTtcbn1cblxuY29uc3QgQUNDT1VOVF9JRF9FTkRQT0lOVF9SRUdFWCA9IC9cXGR7MTJ9XFwuZGRiLztcbmFzeW5jIGZ1bmN0aW9uIGNoZWNrRmVhdHVyZXMoY29udGV4dCwgY29uZmlnLCBhcmdzKSB7XG4gICAgY29uc3QgcmVxdWVzdCA9IGFyZ3MucmVxdWVzdDtcbiAgICBpZiAocmVxdWVzdD8uaGVhZGVycz8uW1wic21pdGh5LXByb3RvY29sXCJdID09PSBcInJwYy12Mi1jYm9yXCIpIHtcbiAgICAgICAgY29yZSQxLnNldEZlYXR1cmUoY29udGV4dCwgXCJQUk9UT0NPTF9SUENfVjJfQ0JPUlwiLCBcIk1cIik7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgY29uZmlnLnJldHJ5U3RyYXRlZ3kgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICBjb25zdCByZXRyeVN0cmF0ZWd5ID0gYXdhaXQgY29uZmlnLnJldHJ5U3RyYXRlZ3koKTtcbiAgICAgICAgaWYgKHR5cGVvZiByZXRyeVN0cmF0ZWd5LmFjcXVpcmVJbml0aWFsUmV0cnlUb2tlbiA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICBpZiAocmV0cnlTdHJhdGVneS5jb25zdHJ1Y3Rvcj8ubmFtZT8uaW5jbHVkZXMoXCJBZGFwdGl2ZVwiKSkge1xuICAgICAgICAgICAgICAgIGNvcmUkMS5zZXRGZWF0dXJlKGNvbnRleHQsIFwiUkVUUllfTU9ERV9BREFQVElWRVwiLCBcIkZcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb3JlJDEuc2V0RmVhdHVyZShjb250ZXh0LCBcIlJFVFJZX01PREVfU1RBTkRBUkRcIiwgXCJFXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29yZSQxLnNldEZlYXR1cmUoY29udGV4dCwgXCJSRVRSWV9NT0RFX0xFR0FDWVwiLCBcIkRcIik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKHR5cGVvZiBjb25maWcuYWNjb3VudElkRW5kcG9pbnRNb2RlID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgY29uc3QgZW5kcG9pbnRWMiA9IGNvbnRleHQuZW5kcG9pbnRWMjtcbiAgICAgICAgaWYgKFN0cmluZyhlbmRwb2ludFYyPy51cmw/Lmhvc3RuYW1lKS5tYXRjaChBQ0NPVU5UX0lEX0VORFBPSU5UX1JFR0VYKSkge1xuICAgICAgICAgICAgY29yZSQxLnNldEZlYXR1cmUoY29udGV4dCwgXCJBQ0NPVU5UX0lEX0VORFBPSU5UXCIsIFwiT1wiKTtcbiAgICAgICAgfVxuICAgICAgICBzd2l0Y2ggKGF3YWl0IGNvbmZpZy5hY2NvdW50SWRFbmRwb2ludE1vZGU/LigpKSB7XG4gICAgICAgICAgICBjYXNlIFwiZGlzYWJsZWRcIjpcbiAgICAgICAgICAgICAgICBjb3JlJDEuc2V0RmVhdHVyZShjb250ZXh0LCBcIkFDQ09VTlRfSURfTU9ERV9ESVNBQkxFRFwiLCBcIlFcIik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFwicHJlZmVycmVkXCI6XG4gICAgICAgICAgICAgICAgY29yZSQxLnNldEZlYXR1cmUoY29udGV4dCwgXCJBQ0NPVU5UX0lEX01PREVfUFJFRkVSUkVEXCIsIFwiUFwiKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgXCJyZXF1aXJlZFwiOlxuICAgICAgICAgICAgICAgIGNvcmUkMS5zZXRGZWF0dXJlKGNvbnRleHQsIFwiQUNDT1VOVF9JRF9NT0RFX1JFUVVJUkVEXCIsIFwiUlwiKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBpZGVudGl0eSA9IGNvbnRleHQuX19zbWl0aHlfY29udGV4dD8uc2VsZWN0ZWRIdHRwQXV0aFNjaGVtZT8uaWRlbnRpdHk7XG4gICAgaWYgKGlkZW50aXR5Py4kc291cmNlKSB7XG4gICAgICAgIGNvbnN0IGNyZWRlbnRpYWxzID0gaWRlbnRpdHk7XG4gICAgICAgIGlmIChjcmVkZW50aWFscy5hY2NvdW50SWQpIHtcbiAgICAgICAgICAgIGNvcmUkMS5zZXRGZWF0dXJlKGNvbnRleHQsIFwiUkVTT0xWRURfQUNDT1VOVF9JRFwiLCBcIlRcIik7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoY3JlZGVudGlhbHMuJHNvdXJjZSA/PyB7fSkpIHtcbiAgICAgICAgICAgIGNvcmUkMS5zZXRGZWF0dXJlKGNvbnRleHQsIGtleSwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5jb25zdCBVU0VSX0FHRU5UID0gXCJ1c2VyLWFnZW50XCI7XG5jb25zdCBYX0FNWl9VU0VSX0FHRU5UID0gXCJ4LWFtei11c2VyLWFnZW50XCI7XG5jb25zdCBTUEFDRSA9IFwiIFwiO1xuY29uc3QgVUFfTkFNRV9TRVBBUkFUT1IgPSBcIi9cIjtcbmNvbnN0IFVBX05BTUVfRVNDQVBFX1JFR0VYID0gL1teISQlJicqK1xcLS5eX2B8flxcd10vZztcbmNvbnN0IFVBX1ZBTFVFX0VTQ0FQRV9SRUdFWCA9IC9bXiEkJSYnKitcXC0uXl9gfH5cXHcjXS9nO1xuY29uc3QgVUFfRVNDQVBFX0NIQVIgPSBcIi1cIjtcblxuY29uc3QgQllURV9MSU1JVCA9IDEwMjQ7XG5mdW5jdGlvbiBlbmNvZGVGZWF0dXJlcyhmZWF0dXJlcykge1xuICAgIGxldCBidWZmZXIgPSBcIlwiO1xuICAgIGZvciAoY29uc3Qga2V5IGluIGZlYXR1cmVzKSB7XG4gICAgICAgIGNvbnN0IHZhbCA9IGZlYXR1cmVzW2tleV07XG4gICAgICAgIGlmIChidWZmZXIubGVuZ3RoICsgdmFsLmxlbmd0aCArIDEgPD0gQllURV9MSU1JVCkge1xuICAgICAgICAgICAgaWYgKGJ1ZmZlci5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBidWZmZXIgKz0gXCIsXCIgKyB2YWw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBidWZmZXIgKz0gdmFsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHJldHVybiBidWZmZXI7XG59XG5cbmNvbnN0IHVzZXJBZ2VudE1pZGRsZXdhcmUgPSAob3B0aW9ucykgPT4gKG5leHQsIGNvbnRleHQpID0+IGFzeW5jIChhcmdzKSA9PiB7XG4gICAgY29uc3QgeyByZXF1ZXN0IH0gPSBhcmdzO1xuICAgIGlmICghcHJvdG9jb2xIdHRwLkh0dHBSZXF1ZXN0LmlzSW5zdGFuY2UocmVxdWVzdCkpIHtcbiAgICAgICAgcmV0dXJuIG5leHQoYXJncyk7XG4gICAgfVxuICAgIGNvbnN0IHsgaGVhZGVycyB9ID0gcmVxdWVzdDtcbiAgICBjb25zdCB1c2VyQWdlbnQgPSBjb250ZXh0Py51c2VyQWdlbnQ/Lm1hcChlc2NhcGVVc2VyQWdlbnQpIHx8IFtdO1xuICAgIGNvbnN0IGRlZmF1bHRVc2VyQWdlbnQgPSAoYXdhaXQgb3B0aW9ucy5kZWZhdWx0VXNlckFnZW50UHJvdmlkZXIoKSkubWFwKGVzY2FwZVVzZXJBZ2VudCk7XG4gICAgYXdhaXQgY2hlY2tGZWF0dXJlcyhjb250ZXh0LCBvcHRpb25zLCBhcmdzKTtcbiAgICBjb25zdCBhd3NDb250ZXh0ID0gY29udGV4dDtcbiAgICBkZWZhdWx0VXNlckFnZW50LnB1c2goYG0vJHtlbmNvZGVGZWF0dXJlcyhPYmplY3QuYXNzaWduKHt9LCBjb250ZXh0Ll9fc21pdGh5X2NvbnRleHQ/LmZlYXR1cmVzLCBhd3NDb250ZXh0Ll9fYXdzX3Nka19jb250ZXh0Py5mZWF0dXJlcykpfWApO1xuICAgIGNvbnN0IGN1c3RvbVVzZXJBZ2VudCA9IG9wdGlvbnM/LmN1c3RvbVVzZXJBZ2VudD8ubWFwKGVzY2FwZVVzZXJBZ2VudCkgfHwgW107XG4gICAgY29uc3QgYXBwSWQgPSBhd2FpdCBvcHRpb25zLnVzZXJBZ2VudEFwcElkKCk7XG4gICAgaWYgKGFwcElkKSB7XG4gICAgICAgIGRlZmF1bHRVc2VyQWdlbnQucHVzaChlc2NhcGVVc2VyQWdlbnQoW2BhcHBgLCBgJHthcHBJZH1gXSkpO1xuICAgIH1cbiAgICBjb25zdCBwcmVmaXggPSB1dGlsRW5kcG9pbnRzLmdldFVzZXJBZ2VudFByZWZpeCgpO1xuICAgIGNvbnN0IHNka1VzZXJBZ2VudFZhbHVlID0gKHByZWZpeCA/IFtwcmVmaXhdIDogW10pXG4gICAgICAgIC5jb25jYXQoWy4uLmRlZmF1bHRVc2VyQWdlbnQsIC4uLnVzZXJBZ2VudCwgLi4uY3VzdG9tVXNlckFnZW50XSlcbiAgICAgICAgLmpvaW4oU1BBQ0UpO1xuICAgIGNvbnN0IG5vcm1hbFVBVmFsdWUgPSBbXG4gICAgICAgIC4uLmRlZmF1bHRVc2VyQWdlbnQuZmlsdGVyKChzZWN0aW9uKSA9PiBzZWN0aW9uLnN0YXJ0c1dpdGgoXCJhd3Mtc2RrLVwiKSksXG4gICAgICAgIC4uLmN1c3RvbVVzZXJBZ2VudCxcbiAgICBdLmpvaW4oU1BBQ0UpO1xuICAgIGlmIChvcHRpb25zLnJ1bnRpbWUgIT09IFwiYnJvd3NlclwiKSB7XG4gICAgICAgIGlmIChub3JtYWxVQVZhbHVlKSB7XG4gICAgICAgICAgICBoZWFkZXJzW1hfQU1aX1VTRVJfQUdFTlRdID0gaGVhZGVyc1tYX0FNWl9VU0VSX0FHRU5UXVxuICAgICAgICAgICAgICAgID8gYCR7aGVhZGVyc1tVU0VSX0FHRU5UXX0gJHtub3JtYWxVQVZhbHVlfWBcbiAgICAgICAgICAgICAgICA6IG5vcm1hbFVBVmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaGVhZGVyc1tVU0VSX0FHRU5UXSA9IHNka1VzZXJBZ2VudFZhbHVlO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgaGVhZGVyc1tYX0FNWl9VU0VSX0FHRU5UXSA9IHNka1VzZXJBZ2VudFZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gbmV4dCh7XG4gICAgICAgIC4uLmFyZ3MsXG4gICAgICAgIHJlcXVlc3QsXG4gICAgfSk7XG59O1xuY29uc3QgZXNjYXBlVXNlckFnZW50ID0gKHVzZXJBZ2VudFBhaXIpID0+IHtcbiAgICBjb25zdCBuYW1lID0gdXNlckFnZW50UGFpclswXVxuICAgICAgICAuc3BsaXQoVUFfTkFNRV9TRVBBUkFUT1IpXG4gICAgICAgIC5tYXAoKHBhcnQpID0+IHBhcnQucmVwbGFjZShVQV9OQU1FX0VTQ0FQRV9SRUdFWCwgVUFfRVNDQVBFX0NIQVIpKVxuICAgICAgICAuam9pbihVQV9OQU1FX1NFUEFSQVRPUik7XG4gICAgY29uc3QgdmVyc2lvbiA9IHVzZXJBZ2VudFBhaXJbMV0/LnJlcGxhY2UoVUFfVkFMVUVfRVNDQVBFX1JFR0VYLCBVQV9FU0NBUEVfQ0hBUik7XG4gICAgY29uc3QgcHJlZml4U2VwYXJhdG9ySW5kZXggPSBuYW1lLmluZGV4T2YoVUFfTkFNRV9TRVBBUkFUT1IpO1xuICAgIGNvbnN0IHByZWZpeCA9IG5hbWUuc3Vic3RyaW5nKDAsIHByZWZpeFNlcGFyYXRvckluZGV4KTtcbiAgICBsZXQgdWFOYW1lID0gbmFtZS5zdWJzdHJpbmcocHJlZml4U2VwYXJhdG9ySW5kZXggKyAxKTtcbiAgICBpZiAocHJlZml4ID09PSBcImFwaVwiKSB7XG4gICAgICAgIHVhTmFtZSA9IHVhTmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgIH1cbiAgICByZXR1cm4gW3ByZWZpeCwgdWFOYW1lLCB2ZXJzaW9uXVxuICAgICAgICAuZmlsdGVyKChpdGVtKSA9PiBpdGVtICYmIGl0ZW0ubGVuZ3RoID4gMClcbiAgICAgICAgLnJlZHVjZSgoYWNjLCBpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICBzd2l0Y2ggKGluZGV4KSB7XG4gICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGAke2FjY30vJHtpdGVtfWA7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiBgJHthY2N9IyR7aXRlbX1gO1xuICAgICAgICB9XG4gICAgfSwgXCJcIik7XG59O1xuY29uc3QgZ2V0VXNlckFnZW50TWlkZGxld2FyZU9wdGlvbnMgPSB7XG4gICAgbmFtZTogXCJnZXRVc2VyQWdlbnRNaWRkbGV3YXJlXCIsXG4gICAgc3RlcDogXCJidWlsZFwiLFxuICAgIHByaW9yaXR5OiBcImxvd1wiLFxuICAgIHRhZ3M6IFtcIlNFVF9VU0VSX0FHRU5UXCIsIFwiVVNFUl9BR0VOVFwiXSxcbiAgICBvdmVycmlkZTogdHJ1ZSxcbn07XG5jb25zdCBnZXRVc2VyQWdlbnRQbHVnaW4gPSAoY29uZmlnKSA9PiAoe1xuICAgIGFwcGx5VG9TdGFjazogKGNsaWVudFN0YWNrKSA9PiB7XG4gICAgICAgIGNsaWVudFN0YWNrLmFkZCh1c2VyQWdlbnRNaWRkbGV3YXJlKGNvbmZpZyksIGdldFVzZXJBZ2VudE1pZGRsZXdhcmVPcHRpb25zKTtcbiAgICB9LFxufSk7XG5cbmV4cG9ydHMuREVGQVVMVF9VQV9BUFBfSUQgPSBERUZBVUxUX1VBX0FQUF9JRDtcbmV4cG9ydHMuZ2V0VXNlckFnZW50TWlkZGxld2FyZU9wdGlvbnMgPSBnZXRVc2VyQWdlbnRNaWRkbGV3YXJlT3B0aW9ucztcbmV4cG9ydHMuZ2V0VXNlckFnZW50UGx1Z2luID0gZ2V0VXNlckFnZW50UGx1Z2luO1xuZXhwb3J0cy5yZXNvbHZlVXNlckFnZW50Q29uZmlnID0gcmVzb2x2ZVVzZXJBZ2VudENvbmZpZztcbmV4cG9ydHMudXNlckFnZW50TWlkZGxld2FyZSA9IHVzZXJBZ2VudE1pZGRsZXdhcmU7XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLnJlc29sdmVIdHRwQXV0aFNjaGVtZUNvbmZpZyA9IGV4cG9ydHMuZGVmYXVsdENsb3VkV2F0Y2hIdHRwQXV0aFNjaGVtZVByb3ZpZGVyID0gZXhwb3J0cy5kZWZhdWx0Q2xvdWRXYXRjaEh0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyID0gdm9pZCAwO1xuY29uc3QgY29yZV8xID0gcmVxdWlyZShcIkBhd3Mtc2RrL2NvcmVcIik7XG5jb25zdCB1dGlsX21pZGRsZXdhcmVfMSA9IHJlcXVpcmUoXCJAc21pdGh5L3V0aWwtbWlkZGxld2FyZVwiKTtcbmNvbnN0IGRlZmF1bHRDbG91ZFdhdGNoSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIgPSBhc3luYyAoY29uZmlnLCBjb250ZXh0LCBpbnB1dCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIG9wZXJhdGlvbjogKDAsIHV0aWxfbWlkZGxld2FyZV8xLmdldFNtaXRoeUNvbnRleHQpKGNvbnRleHQpLm9wZXJhdGlvbixcbiAgICAgICAgcmVnaW9uOiAoYXdhaXQgKDAsIHV0aWxfbWlkZGxld2FyZV8xLm5vcm1hbGl6ZVByb3ZpZGVyKShjb25maWcucmVnaW9uKSgpKSB8fFxuICAgICAgICAgICAgKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJleHBlY3RlZCBgcmVnaW9uYCB0byBiZSBjb25maWd1cmVkIGZvciBgYXdzLmF1dGgjc2lndjRgXCIpO1xuICAgICAgICAgICAgfSkoKSxcbiAgICB9O1xufTtcbmV4cG9ydHMuZGVmYXVsdENsb3VkV2F0Y2hIdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlciA9IGRlZmF1bHRDbG91ZFdhdGNoSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXI7XG5mdW5jdGlvbiBjcmVhdGVBd3NBdXRoU2lndjRIdHRwQXV0aE9wdGlvbihhdXRoUGFyYW1ldGVycykge1xuICAgIHJldHVybiB7XG4gICAgICAgIHNjaGVtZUlkOiBcImF3cy5hdXRoI3NpZ3Y0XCIsXG4gICAgICAgIHNpZ25pbmdQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICBuYW1lOiBcIm1vbml0b3JpbmdcIixcbiAgICAgICAgICAgIHJlZ2lvbjogYXV0aFBhcmFtZXRlcnMucmVnaW9uLFxuICAgICAgICB9LFxuICAgICAgICBwcm9wZXJ0aWVzRXh0cmFjdG9yOiAoY29uZmlnLCBjb250ZXh0KSA9PiAoe1xuICAgICAgICAgICAgc2lnbmluZ1Byb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICBjb25maWcsXG4gICAgICAgICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pLFxuICAgIH07XG59XG5jb25zdCBkZWZhdWx0Q2xvdWRXYXRjaEh0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSAoYXV0aFBhcmFtZXRlcnMpID0+IHtcbiAgICBjb25zdCBvcHRpb25zID0gW107XG4gICAgc3dpdGNoIChhdXRoUGFyYW1ldGVycy5vcGVyYXRpb24pIHtcbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgb3B0aW9ucy5wdXNoKGNyZWF0ZUF3c0F1dGhTaWd2NEh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG9wdGlvbnM7XG59O1xuZXhwb3J0cy5kZWZhdWx0Q2xvdWRXYXRjaEh0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSBkZWZhdWx0Q2xvdWRXYXRjaEh0dHBBdXRoU2NoZW1lUHJvdmlkZXI7XG5jb25zdCByZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWcgPSAoY29uZmlnKSA9PiB7XG4gICAgY29uc3QgY29uZmlnXzAgPSAoMCwgY29yZV8xLnJlc29sdmVBd3NTZGtTaWdWNENvbmZpZykoY29uZmlnKTtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihjb25maWdfMCwge1xuICAgICAgICBhdXRoU2NoZW1lUHJlZmVyZW5jZTogKDAsIHV0aWxfbWlkZGxld2FyZV8xLm5vcm1hbGl6ZVByb3ZpZGVyKShjb25maWcuYXV0aFNjaGVtZVByZWZlcmVuY2UgPz8gW10pLFxuICAgIH0pO1xufTtcbmV4cG9ydHMucmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnID0gcmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnO1xuIiwgIntcbiAgXCJuYW1lXCI6IFwiQGF3cy1zZGsvY2xpZW50LWNsb3Vkd2F0Y2hcIixcbiAgXCJkZXNjcmlwdGlvblwiOiBcIkFXUyBTREsgZm9yIEphdmFTY3JpcHQgQ2xvdWR3YXRjaCBDbGllbnQgZm9yIE5vZGUuanMsIEJyb3dzZXIgYW5kIFJlYWN0IE5hdGl2ZVwiLFxuICBcInZlcnNpb25cIjogXCIzLjk1Mi4wXCIsXG4gIFwic2NyaXB0c1wiOiB7XG4gICAgXCJidWlsZFwiOiBcImNvbmN1cnJlbnRseSAneWFybjpidWlsZDpjanMnICd5YXJuOmJ1aWxkOmVzJyAneWFybjpidWlsZDp0eXBlcydcIixcbiAgICBcImJ1aWxkOmNqc1wiOiBcIm5vZGUgLi4vLi4vc2NyaXB0cy9jb21waWxhdGlvbi9pbmxpbmUgY2xpZW50LWNsb3Vkd2F0Y2hcIixcbiAgICBcImJ1aWxkOmVzXCI6IFwidHNjIC1wIHRzY29uZmlnLmVzLmpzb25cIixcbiAgICBcImJ1aWxkOmluY2x1ZGU6ZGVwc1wiOiBcImxlcm5hIHJ1biAtLXNjb3BlICRucG1fcGFja2FnZV9uYW1lIC0taW5jbHVkZS1kZXBlbmRlbmNpZXMgYnVpbGRcIixcbiAgICBcImJ1aWxkOnR5cGVzXCI6IFwidHNjIC1wIHRzY29uZmlnLnR5cGVzLmpzb25cIixcbiAgICBcImJ1aWxkOnR5cGVzOmRvd25sZXZlbFwiOiBcImRvd25sZXZlbC1kdHMgZGlzdC10eXBlcyBkaXN0LXR5cGVzL3RzMy40XCIsXG4gICAgXCJjbGVhblwiOiBcInJpbXJhZiAuL2Rpc3QtKiAmJiByaW1yYWYgKi50c2J1aWxkaW5mb1wiLFxuICAgIFwiZXh0cmFjdDpkb2NzXCI6IFwiYXBpLWV4dHJhY3RvciBydW4gLS1sb2NhbFwiLFxuICAgIFwiZ2VuZXJhdGU6Y2xpZW50XCI6IFwibm9kZSAuLi8uLi9zY3JpcHRzL2dlbmVyYXRlLWNsaWVudHMvc2luZ2xlLXNlcnZpY2UgLS1zb2xvIGNsb3Vkd2F0Y2hcIixcbiAgICBcInRlc3Q6ZTJlXCI6IFwieWFybiBnOnZpdGVzdCBydW4gLWMgdml0ZXN0LmNvbmZpZy5lMmUubXRzXCIsXG4gICAgXCJ0ZXN0OmUyZTp3YXRjaFwiOiBcInlhcm4gZzp2aXRlc3Qgd2F0Y2ggLWMgdml0ZXN0LmNvbmZpZy5lMmUubXRzXCIsXG4gICAgXCJ0ZXN0OmluZGV4XCI6IFwidHNjIC0tbm9FbWl0IC4vdGVzdC9pbmRleC10eXBlcy50cyAmJiBub2RlIC4vdGVzdC9pbmRleC1vYmplY3RzLnNwZWMubWpzXCJcbiAgfSxcbiAgXCJtYWluXCI6IFwiLi9kaXN0LWNqcy9pbmRleC5qc1wiLFxuICBcInR5cGVzXCI6IFwiLi9kaXN0LXR5cGVzL2luZGV4LmQudHNcIixcbiAgXCJtb2R1bGVcIjogXCIuL2Rpc3QtZXMvaW5kZXguanNcIixcbiAgXCJzaWRlRWZmZWN0c1wiOiBmYWxzZSxcbiAgXCJkZXBlbmRlbmNpZXNcIjoge1xuICAgIFwiQGF3cy1jcnlwdG8vc2hhMjU2LWJyb3dzZXJcIjogXCI1LjIuMFwiLFxuICAgIFwiQGF3cy1jcnlwdG8vc2hhMjU2LWpzXCI6IFwiNS4yLjBcIixcbiAgICBcIkBhd3Mtc2RrL2NvcmVcIjogXCIzLjk0Ny4wXCIsXG4gICAgXCJAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLW5vZGVcIjogXCIzLjk1Mi4wXCIsXG4gICAgXCJAYXdzLXNkay9taWRkbGV3YXJlLWhvc3QtaGVhZGVyXCI6IFwiMy45MzYuMFwiLFxuICAgIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1sb2dnZXJcIjogXCIzLjkzNi4wXCIsXG4gICAgXCJAYXdzLXNkay9taWRkbGV3YXJlLXJlY3Vyc2lvbi1kZXRlY3Rpb25cIjogXCIzLjk0OC4wXCIsXG4gICAgXCJAYXdzLXNkay9taWRkbGV3YXJlLXVzZXItYWdlbnRcIjogXCIzLjk0Ny4wXCIsXG4gICAgXCJAYXdzLXNkay9yZWdpb24tY29uZmlnLXJlc29sdmVyXCI6IFwiMy45MzYuMFwiLFxuICAgIFwiQGF3cy1zZGsvdHlwZXNcIjogXCIzLjkzNi4wXCIsXG4gICAgXCJAYXdzLXNkay91dGlsLWVuZHBvaW50c1wiOiBcIjMuOTM2LjBcIixcbiAgICBcIkBhd3Mtc2RrL3V0aWwtdXNlci1hZ2VudC1icm93c2VyXCI6IFwiMy45MzYuMFwiLFxuICAgIFwiQGF3cy1zZGsvdXRpbC11c2VyLWFnZW50LW5vZGVcIjogXCIzLjk0Ny4wXCIsXG4gICAgXCJAc21pdGh5L2NvbmZpZy1yZXNvbHZlclwiOiBcIl40LjQuM1wiLFxuICAgIFwiQHNtaXRoeS9jb3JlXCI6IFwiXjMuMTguN1wiLFxuICAgIFwiQHNtaXRoeS9mZXRjaC1odHRwLWhhbmRsZXJcIjogXCJeNS4zLjZcIixcbiAgICBcIkBzbWl0aHkvaGFzaC1ub2RlXCI6IFwiXjQuMi41XCIsXG4gICAgXCJAc21pdGh5L2ludmFsaWQtZGVwZW5kZW5jeVwiOiBcIl40LjIuNVwiLFxuICAgIFwiQHNtaXRoeS9taWRkbGV3YXJlLWNvbXByZXNzaW9uXCI6IFwiXjQuMy4xNFwiLFxuICAgIFwiQHNtaXRoeS9taWRkbGV3YXJlLWNvbnRlbnQtbGVuZ3RoXCI6IFwiXjQuMi41XCIsXG4gICAgXCJAc21pdGh5L21pZGRsZXdhcmUtZW5kcG9pbnRcIjogXCJeNC4zLjE0XCIsXG4gICAgXCJAc21pdGh5L21pZGRsZXdhcmUtcmV0cnlcIjogXCJeNC40LjE0XCIsXG4gICAgXCJAc21pdGh5L21pZGRsZXdhcmUtc2VyZGVcIjogXCJeNC4yLjZcIixcbiAgICBcIkBzbWl0aHkvbWlkZGxld2FyZS1zdGFja1wiOiBcIl40LjIuNVwiLFxuICAgIFwiQHNtaXRoeS9ub2RlLWNvbmZpZy1wcm92aWRlclwiOiBcIl40LjMuNVwiLFxuICAgIFwiQHNtaXRoeS9ub2RlLWh0dHAtaGFuZGxlclwiOiBcIl40LjQuNVwiLFxuICAgIFwiQHNtaXRoeS9wcm90b2NvbC1odHRwXCI6IFwiXjUuMy41XCIsXG4gICAgXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjogXCJeNC45LjEwXCIsXG4gICAgXCJAc21pdGh5L3R5cGVzXCI6IFwiXjQuOS4wXCIsXG4gICAgXCJAc21pdGh5L3VybC1wYXJzZXJcIjogXCJeNC4yLjVcIixcbiAgICBcIkBzbWl0aHkvdXRpbC1iYXNlNjRcIjogXCJeNC4zLjBcIixcbiAgICBcIkBzbWl0aHkvdXRpbC1ib2R5LWxlbmd0aC1icm93c2VyXCI6IFwiXjQuMi4wXCIsXG4gICAgXCJAc21pdGh5L3V0aWwtYm9keS1sZW5ndGgtbm9kZVwiOiBcIl40LjIuMVwiLFxuICAgIFwiQHNtaXRoeS91dGlsLWRlZmF1bHRzLW1vZGUtYnJvd3NlclwiOiBcIl40LjMuMTNcIixcbiAgICBcIkBzbWl0aHkvdXRpbC1kZWZhdWx0cy1tb2RlLW5vZGVcIjogXCJeNC4yLjE2XCIsXG4gICAgXCJAc21pdGh5L3V0aWwtZW5kcG9pbnRzXCI6IFwiXjMuMi41XCIsXG4gICAgXCJAc21pdGh5L3V0aWwtbWlkZGxld2FyZVwiOiBcIl40LjIuNVwiLFxuICAgIFwiQHNtaXRoeS91dGlsLXJldHJ5XCI6IFwiXjQuMi41XCIsXG4gICAgXCJAc21pdGh5L3V0aWwtdXRmOFwiOiBcIl40LjIuMFwiLFxuICAgIFwiQHNtaXRoeS91dGlsLXdhaXRlclwiOiBcIl40LjIuNVwiLFxuICAgIFwidHNsaWJcIjogXCJeMi42LjJcIlxuICB9LFxuICBcImRldkRlcGVuZGVuY2llc1wiOiB7XG4gICAgXCJAdHNjb25maWcvbm9kZTE4XCI6IFwiMTguMi40XCIsXG4gICAgXCJAdHlwZXMvbm9kZVwiOiBcIl4xOC4xOS42OVwiLFxuICAgIFwiY29uY3VycmVudGx5XCI6IFwiNy4wLjBcIixcbiAgICBcImRvd25sZXZlbC1kdHNcIjogXCIwLjEwLjFcIixcbiAgICBcInJpbXJhZlwiOiBcIjMuMC4yXCIsXG4gICAgXCJ0eXBlc2NyaXB0XCI6IFwifjUuOC4zXCJcbiAgfSxcbiAgXCJlbmdpbmVzXCI6IHtcbiAgICBcIm5vZGVcIjogXCI+PTE4LjAuMFwiXG4gIH0sXG4gIFwidHlwZXNWZXJzaW9uc1wiOiB7XG4gICAgXCI8NC4wXCI6IHtcbiAgICAgIFwiZGlzdC10eXBlcy8qXCI6IFtcbiAgICAgICAgXCJkaXN0LXR5cGVzL3RzMy40LypcIlxuICAgICAgXVxuICAgIH1cbiAgfSxcbiAgXCJmaWxlc1wiOiBbXG4gICAgXCJkaXN0LSovKipcIlxuICBdLFxuICBcImF1dGhvclwiOiB7XG4gICAgXCJuYW1lXCI6IFwiQVdTIFNESyBmb3IgSmF2YVNjcmlwdCBUZWFtXCIsXG4gICAgXCJ1cmxcIjogXCJodHRwczovL2F3cy5hbWF6b24uY29tL2phdmFzY3JpcHQvXCJcbiAgfSxcbiAgXCJsaWNlbnNlXCI6IFwiQXBhY2hlLTIuMFwiLFxuICBcImJyb3dzZXJcIjoge1xuICAgIFwiLi9kaXN0LWVzL3J1bnRpbWVDb25maWdcIjogXCIuL2Rpc3QtZXMvcnVudGltZUNvbmZpZy5icm93c2VyXCJcbiAgfSxcbiAgXCJyZWFjdC1uYXRpdmVcIjoge1xuICAgIFwiLi9kaXN0LWVzL3J1bnRpbWVDb25maWdcIjogXCIuL2Rpc3QtZXMvcnVudGltZUNvbmZpZy5uYXRpdmVcIlxuICB9LFxuICBcImhvbWVwYWdlXCI6IFwiaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3Mtc2RrLWpzLXYzL3RyZWUvbWFpbi9jbGllbnRzL2NsaWVudC1jbG91ZHdhdGNoXCIsXG4gIFwicmVwb3NpdG9yeVwiOiB7XG4gICAgXCJ0eXBlXCI6IFwiZ2l0XCIsXG4gICAgXCJ1cmxcIjogXCJodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1zZGstanMtdjMuZ2l0XCIsXG4gICAgXCJkaXJlY3RvcnlcIjogXCJjbGllbnRzL2NsaWVudC1jbG91ZHdhdGNoXCJcbiAgfVxufVxuIiwgIid1c2Ugc3RyaWN0JztcblxudmFyIGNsaWVudCA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL2NvcmUvY2xpZW50Jyk7XG52YXIgcHJvcGVydHlQcm92aWRlciA9IHJlcXVpcmUoJ0BzbWl0aHkvcHJvcGVydHktcHJvdmlkZXInKTtcblxuY29uc3QgRU5WX0tFWSA9IFwiQVdTX0FDQ0VTU19LRVlfSURcIjtcbmNvbnN0IEVOVl9TRUNSRVQgPSBcIkFXU19TRUNSRVRfQUNDRVNTX0tFWVwiO1xuY29uc3QgRU5WX1NFU1NJT04gPSBcIkFXU19TRVNTSU9OX1RPS0VOXCI7XG5jb25zdCBFTlZfRVhQSVJBVElPTiA9IFwiQVdTX0NSRURFTlRJQUxfRVhQSVJBVElPTlwiO1xuY29uc3QgRU5WX0NSRURFTlRJQUxfU0NPUEUgPSBcIkFXU19DUkVERU5USUFMX1NDT1BFXCI7XG5jb25zdCBFTlZfQUNDT1VOVF9JRCA9IFwiQVdTX0FDQ09VTlRfSURcIjtcbmNvbnN0IGZyb21FbnYgPSAoaW5pdCkgPT4gYXN5bmMgKCkgPT4ge1xuICAgIGluaXQ/LmxvZ2dlcj8uZGVidWcoXCJAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLWVudiAtIGZyb21FbnZcIik7XG4gICAgY29uc3QgYWNjZXNzS2V5SWQgPSBwcm9jZXNzLmVudltFTlZfS0VZXTtcbiAgICBjb25zdCBzZWNyZXRBY2Nlc3NLZXkgPSBwcm9jZXNzLmVudltFTlZfU0VDUkVUXTtcbiAgICBjb25zdCBzZXNzaW9uVG9rZW4gPSBwcm9jZXNzLmVudltFTlZfU0VTU0lPTl07XG4gICAgY29uc3QgZXhwaXJ5ID0gcHJvY2Vzcy5lbnZbRU5WX0VYUElSQVRJT05dO1xuICAgIGNvbnN0IGNyZWRlbnRpYWxTY29wZSA9IHByb2Nlc3MuZW52W0VOVl9DUkVERU5USUFMX1NDT1BFXTtcbiAgICBjb25zdCBhY2NvdW50SWQgPSBwcm9jZXNzLmVudltFTlZfQUNDT1VOVF9JRF07XG4gICAgaWYgKGFjY2Vzc0tleUlkICYmIHNlY3JldEFjY2Vzc0tleSkge1xuICAgICAgICBjb25zdCBjcmVkZW50aWFscyA9IHtcbiAgICAgICAgICAgIGFjY2Vzc0tleUlkLFxuICAgICAgICAgICAgc2VjcmV0QWNjZXNzS2V5LFxuICAgICAgICAgICAgLi4uKHNlc3Npb25Ub2tlbiAmJiB7IHNlc3Npb25Ub2tlbiB9KSxcbiAgICAgICAgICAgIC4uLihleHBpcnkgJiYgeyBleHBpcmF0aW9uOiBuZXcgRGF0ZShleHBpcnkpIH0pLFxuICAgICAgICAgICAgLi4uKGNyZWRlbnRpYWxTY29wZSAmJiB7IGNyZWRlbnRpYWxTY29wZSB9KSxcbiAgICAgICAgICAgIC4uLihhY2NvdW50SWQgJiYgeyBhY2NvdW50SWQgfSksXG4gICAgICAgIH07XG4gICAgICAgIGNsaWVudC5zZXRDcmVkZW50aWFsRmVhdHVyZShjcmVkZW50aWFscywgXCJDUkVERU5USUFMU19FTlZfVkFSU1wiLCBcImdcIik7XG4gICAgICAgIHJldHVybiBjcmVkZW50aWFscztcbiAgICB9XG4gICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKFwiVW5hYmxlIHRvIGZpbmQgZW52aXJvbm1lbnQgdmFyaWFibGUgY3JlZGVudGlhbHMuXCIsIHsgbG9nZ2VyOiBpbml0Py5sb2dnZXIgfSk7XG59O1xuXG5leHBvcnRzLkVOVl9BQ0NPVU5UX0lEID0gRU5WX0FDQ09VTlRfSUQ7XG5leHBvcnRzLkVOVl9DUkVERU5USUFMX1NDT1BFID0gRU5WX0NSRURFTlRJQUxfU0NPUEU7XG5leHBvcnRzLkVOVl9FWFBJUkFUSU9OID0gRU5WX0VYUElSQVRJT047XG5leHBvcnRzLkVOVl9LRVkgPSBFTlZfS0VZO1xuZXhwb3J0cy5FTlZfU0VDUkVUID0gRU5WX1NFQ1JFVDtcbmV4cG9ydHMuRU5WX1NFU1NJT04gPSBFTlZfU0VTU0lPTjtcbmV4cG9ydHMuZnJvbUVudiA9IGZyb21FbnY7XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmNoZWNrVXJsID0gdm9pZCAwO1xuY29uc3QgcHJvcGVydHlfcHJvdmlkZXJfMSA9IHJlcXVpcmUoXCJAc21pdGh5L3Byb3BlcnR5LXByb3ZpZGVyXCIpO1xuY29uc3QgTE9PUEJBQ0tfQ0lEUl9JUHY0ID0gXCIxMjcuMC4wLjAvOFwiO1xuY29uc3QgTE9PUEJBQ0tfQ0lEUl9JUHY2ID0gXCI6OjEvMTI4XCI7XG5jb25zdCBFQ1NfQ09OVEFJTkVSX0hPU1QgPSBcIjE2OS4yNTQuMTcwLjJcIjtcbmNvbnN0IEVLU19DT05UQUlORVJfSE9TVF9JUHY0ID0gXCIxNjkuMjU0LjE3MC4yM1wiO1xuY29uc3QgRUtTX0NPTlRBSU5FUl9IT1NUX0lQdjYgPSBcIltmZDAwOmVjMjo6MjNdXCI7XG5jb25zdCBjaGVja1VybCA9ICh1cmwsIGxvZ2dlcikgPT4ge1xuICAgIGlmICh1cmwucHJvdG9jb2wgPT09IFwiaHR0cHM6XCIpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodXJsLmhvc3RuYW1lID09PSBFQ1NfQ09OVEFJTkVSX0hPU1QgfHxcbiAgICAgICAgdXJsLmhvc3RuYW1lID09PSBFS1NfQ09OVEFJTkVSX0hPU1RfSVB2NCB8fFxuICAgICAgICB1cmwuaG9zdG5hbWUgPT09IEVLU19DT05UQUlORVJfSE9TVF9JUHY2KSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHVybC5ob3N0bmFtZS5pbmNsdWRlcyhcIltcIikpIHtcbiAgICAgICAgaWYgKHVybC5ob3N0bmFtZSA9PT0gXCJbOjoxXVwiIHx8IHVybC5ob3N0bmFtZSA9PT0gXCJbMDAwMDowMDAwOjAwMDA6MDAwMDowMDAwOjAwMDA6MDAwMDowMDAxXVwiKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGlmICh1cmwuaG9zdG5hbWUgPT09IFwibG9jYWxob3N0XCIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpcENvbXBvbmVudHMgPSB1cmwuaG9zdG5hbWUuc3BsaXQoXCIuXCIpO1xuICAgICAgICBjb25zdCBpblJhbmdlID0gKGNvbXBvbmVudCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbnVtID0gcGFyc2VJbnQoY29tcG9uZW50LCAxMCk7XG4gICAgICAgICAgICByZXR1cm4gMCA8PSBudW0gJiYgbnVtIDw9IDI1NTtcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKGlwQ29tcG9uZW50c1swXSA9PT0gXCIxMjdcIiAmJlxuICAgICAgICAgICAgaW5SYW5nZShpcENvbXBvbmVudHNbMV0pICYmXG4gICAgICAgICAgICBpblJhbmdlKGlwQ29tcG9uZW50c1syXSkgJiZcbiAgICAgICAgICAgIGluUmFuZ2UoaXBDb21wb25lbnRzWzNdKSAmJlxuICAgICAgICAgICAgaXBDb21wb25lbnRzLmxlbmd0aCA9PT0gNCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgfVxuICAgIHRocm93IG5ldyBwcm9wZXJ0eV9wcm92aWRlcl8xLkNyZWRlbnRpYWxzUHJvdmlkZXJFcnJvcihgVVJMIG5vdCBhY2NlcHRlZC4gSXQgbXVzdCBlaXRoZXIgYmUgSFRUUFMgb3IgbWF0Y2ggb25lIG9mIHRoZSBmb2xsb3dpbmc6XG4gIC0gbG9vcGJhY2sgQ0lEUiAxMjcuMC4wLjAvOCBvciBbOjoxLzEyOF1cbiAgLSBFQ1MgY29udGFpbmVyIGhvc3QgMTY5LjI1NC4xNzAuMlxuICAtIEVLUyBjb250YWluZXIgaG9zdCAxNjkuMjU0LjE3MC4yMyBvciBbZmQwMDplYzI6OjIzXWAsIHsgbG9nZ2VyIH0pO1xufTtcbmV4cG9ydHMuY2hlY2tVcmwgPSBjaGVja1VybDtcbiIsICJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuY3JlYXRlR2V0UmVxdWVzdCA9IGNyZWF0ZUdldFJlcXVlc3Q7XG5leHBvcnRzLmdldENyZWRlbnRpYWxzID0gZ2V0Q3JlZGVudGlhbHM7XG5jb25zdCBwcm9wZXJ0eV9wcm92aWRlcl8xID0gcmVxdWlyZShcIkBzbWl0aHkvcHJvcGVydHktcHJvdmlkZXJcIik7XG5jb25zdCBwcm90b2NvbF9odHRwXzEgPSByZXF1aXJlKFwiQHNtaXRoeS9wcm90b2NvbC1odHRwXCIpO1xuY29uc3Qgc21pdGh5X2NsaWVudF8xID0gcmVxdWlyZShcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiKTtcbmNvbnN0IHV0aWxfc3RyZWFtXzEgPSByZXF1aXJlKFwiQHNtaXRoeS91dGlsLXN0cmVhbVwiKTtcbmZ1bmN0aW9uIGNyZWF0ZUdldFJlcXVlc3QodXJsKSB7XG4gICAgcmV0dXJuIG5ldyBwcm90b2NvbF9odHRwXzEuSHR0cFJlcXVlc3Qoe1xuICAgICAgICBwcm90b2NvbDogdXJsLnByb3RvY29sLFxuICAgICAgICBob3N0bmFtZTogdXJsLmhvc3RuYW1lLFxuICAgICAgICBwb3J0OiBOdW1iZXIodXJsLnBvcnQpLFxuICAgICAgICBwYXRoOiB1cmwucGF0aG5hbWUsXG4gICAgICAgIHF1ZXJ5OiBBcnJheS5mcm9tKHVybC5zZWFyY2hQYXJhbXMuZW50cmllcygpKS5yZWR1Y2UoKGFjYywgW2ssIHZdKSA9PiB7XG4gICAgICAgICAgICBhY2Nba10gPSB2O1xuICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfSwge30pLFxuICAgICAgICBmcmFnbWVudDogdXJsLmhhc2gsXG4gICAgfSk7XG59XG5hc3luYyBmdW5jdGlvbiBnZXRDcmVkZW50aWFscyhyZXNwb25zZSwgbG9nZ2VyKSB7XG4gICAgY29uc3Qgc3RyZWFtID0gKDAsIHV0aWxfc3RyZWFtXzEuc2RrU3RyZWFtTWl4aW4pKHJlc3BvbnNlLmJvZHkpO1xuICAgIGNvbnN0IHN0ciA9IGF3YWl0IHN0cmVhbS50cmFuc2Zvcm1Ub1N0cmluZygpO1xuICAgIGlmIChyZXNwb25zZS5zdGF0dXNDb2RlID09PSAyMDApIHtcbiAgICAgICAgY29uc3QgcGFyc2VkID0gSlNPTi5wYXJzZShzdHIpO1xuICAgICAgICBpZiAodHlwZW9mIHBhcnNlZC5BY2Nlc3NLZXlJZCAhPT0gXCJzdHJpbmdcIiB8fFxuICAgICAgICAgICAgdHlwZW9mIHBhcnNlZC5TZWNyZXRBY2Nlc3NLZXkgIT09IFwic3RyaW5nXCIgfHxcbiAgICAgICAgICAgIHR5cGVvZiBwYXJzZWQuVG9rZW4gIT09IFwic3RyaW5nXCIgfHxcbiAgICAgICAgICAgIHR5cGVvZiBwYXJzZWQuRXhwaXJhdGlvbiAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5X3Byb3ZpZGVyXzEuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKFwiSFRUUCBjcmVkZW50aWFsIHByb3ZpZGVyIHJlc3BvbnNlIG5vdCBvZiB0aGUgcmVxdWlyZWQgZm9ybWF0LCBhbiBvYmplY3QgbWF0Y2hpbmc6IFwiICtcbiAgICAgICAgICAgICAgICBcInsgQWNjZXNzS2V5SWQ6IHN0cmluZywgU2VjcmV0QWNjZXNzS2V5OiBzdHJpbmcsIFRva2VuOiBzdHJpbmcsIEV4cGlyYXRpb246IHN0cmluZyhyZmMzMzM5KSB9XCIsIHsgbG9nZ2VyIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBhY2Nlc3NLZXlJZDogcGFyc2VkLkFjY2Vzc0tleUlkLFxuICAgICAgICAgICAgc2VjcmV0QWNjZXNzS2V5OiBwYXJzZWQuU2VjcmV0QWNjZXNzS2V5LFxuICAgICAgICAgICAgc2Vzc2lvblRva2VuOiBwYXJzZWQuVG9rZW4sXG4gICAgICAgICAgICBleHBpcmF0aW9uOiAoMCwgc21pdGh5X2NsaWVudF8xLnBhcnNlUmZjMzMzOURhdGVUaW1lKShwYXJzZWQuRXhwaXJhdGlvbiksXG4gICAgICAgIH07XG4gICAgfVxuICAgIGlmIChyZXNwb25zZS5zdGF0dXNDb2RlID49IDQwMCAmJiByZXNwb25zZS5zdGF0dXNDb2RlIDwgNTAwKSB7XG4gICAgICAgIGxldCBwYXJzZWRCb2R5ID0ge307XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBwYXJzZWRCb2R5ID0gSlNPTi5wYXJzZShzdHIpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7IH1cbiAgICAgICAgdGhyb3cgT2JqZWN0LmFzc2lnbihuZXcgcHJvcGVydHlfcHJvdmlkZXJfMS5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoYFNlcnZlciByZXNwb25kZWQgd2l0aCBzdGF0dXM6ICR7cmVzcG9uc2Uuc3RhdHVzQ29kZX1gLCB7IGxvZ2dlciB9KSwge1xuICAgICAgICAgICAgQ29kZTogcGFyc2VkQm9keS5Db2RlLFxuICAgICAgICAgICAgTWVzc2FnZTogcGFyc2VkQm9keS5NZXNzYWdlLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IHByb3BlcnR5X3Byb3ZpZGVyXzEuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKGBTZXJ2ZXIgcmVzcG9uZGVkIHdpdGggc3RhdHVzOiAke3Jlc3BvbnNlLnN0YXR1c0NvZGV9YCwgeyBsb2dnZXIgfSk7XG59XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLnJldHJ5V3JhcHBlciA9IHZvaWQgMDtcbmNvbnN0IHJldHJ5V3JhcHBlciA9ICh0b1JldHJ5LCBtYXhSZXRyaWVzLCBkZWxheU1zKSA9PiB7XG4gICAgcmV0dXJuIGFzeW5jICgpID0+IHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtYXhSZXRyaWVzOyArK2kpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHRvUmV0cnkoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgZGVsYXlNcykpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhd2FpdCB0b1JldHJ5KCk7XG4gICAgfTtcbn07XG5leHBvcnRzLnJldHJ5V3JhcHBlciA9IHJldHJ5V3JhcHBlcjtcbiIsICJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuZnJvbUh0dHAgPSB2b2lkIDA7XG5jb25zdCB0c2xpYl8xID0gcmVxdWlyZShcInRzbGliXCIpO1xuY29uc3QgY2xpZW50XzEgPSByZXF1aXJlKFwiQGF3cy1zZGsvY29yZS9jbGllbnRcIik7XG5jb25zdCBub2RlX2h0dHBfaGFuZGxlcl8xID0gcmVxdWlyZShcIkBzbWl0aHkvbm9kZS1odHRwLWhhbmRsZXJcIik7XG5jb25zdCBwcm9wZXJ0eV9wcm92aWRlcl8xID0gcmVxdWlyZShcIkBzbWl0aHkvcHJvcGVydHktcHJvdmlkZXJcIik7XG5jb25zdCBwcm9taXNlc18xID0gdHNsaWJfMS5fX2ltcG9ydERlZmF1bHQocmVxdWlyZShcImZzL3Byb21pc2VzXCIpKTtcbmNvbnN0IGNoZWNrVXJsXzEgPSByZXF1aXJlKFwiLi9jaGVja1VybFwiKTtcbmNvbnN0IHJlcXVlc3RIZWxwZXJzXzEgPSByZXF1aXJlKFwiLi9yZXF1ZXN0SGVscGVyc1wiKTtcbmNvbnN0IHJldHJ5X3dyYXBwZXJfMSA9IHJlcXVpcmUoXCIuL3JldHJ5LXdyYXBwZXJcIik7XG5jb25zdCBBV1NfQ09OVEFJTkVSX0NSRURFTlRJQUxTX1JFTEFUSVZFX1VSSSA9IFwiQVdTX0NPTlRBSU5FUl9DUkVERU5USUFMU19SRUxBVElWRV9VUklcIjtcbmNvbnN0IERFRkFVTFRfTElOS19MT0NBTF9IT1NUID0gXCJodHRwOi8vMTY5LjI1NC4xNzAuMlwiO1xuY29uc3QgQVdTX0NPTlRBSU5FUl9DUkVERU5USUFMU19GVUxMX1VSSSA9IFwiQVdTX0NPTlRBSU5FUl9DUkVERU5USUFMU19GVUxMX1VSSVwiO1xuY29uc3QgQVdTX0NPTlRBSU5FUl9BVVRIT1JJWkFUSU9OX1RPS0VOX0ZJTEUgPSBcIkFXU19DT05UQUlORVJfQVVUSE9SSVpBVElPTl9UT0tFTl9GSUxFXCI7XG5jb25zdCBBV1NfQ09OVEFJTkVSX0FVVEhPUklaQVRJT05fVE9LRU4gPSBcIkFXU19DT05UQUlORVJfQVVUSE9SSVpBVElPTl9UT0tFTlwiO1xuY29uc3QgZnJvbUh0dHAgPSAob3B0aW9ucyA9IHt9KSA9PiB7XG4gICAgb3B0aW9ucy5sb2dnZXI/LmRlYnVnKFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1odHRwIC0gZnJvbUh0dHBcIik7XG4gICAgbGV0IGhvc3Q7XG4gICAgY29uc3QgcmVsYXRpdmUgPSBvcHRpb25zLmF3c0NvbnRhaW5lckNyZWRlbnRpYWxzUmVsYXRpdmVVcmkgPz8gcHJvY2Vzcy5lbnZbQVdTX0NPTlRBSU5FUl9DUkVERU5USUFMU19SRUxBVElWRV9VUkldO1xuICAgIGNvbnN0IGZ1bGwgPSBvcHRpb25zLmF3c0NvbnRhaW5lckNyZWRlbnRpYWxzRnVsbFVyaSA/PyBwcm9jZXNzLmVudltBV1NfQ09OVEFJTkVSX0NSRURFTlRJQUxTX0ZVTExfVVJJXTtcbiAgICBjb25zdCB0b2tlbiA9IG9wdGlvbnMuYXdzQ29udGFpbmVyQXV0aG9yaXphdGlvblRva2VuID8/IHByb2Nlc3MuZW52W0FXU19DT05UQUlORVJfQVVUSE9SSVpBVElPTl9UT0tFTl07XG4gICAgY29uc3QgdG9rZW5GaWxlID0gb3B0aW9ucy5hd3NDb250YWluZXJBdXRob3JpemF0aW9uVG9rZW5GaWxlID8/IHByb2Nlc3MuZW52W0FXU19DT05UQUlORVJfQVVUSE9SSVpBVElPTl9UT0tFTl9GSUxFXTtcbiAgICBjb25zdCB3YXJuID0gb3B0aW9ucy5sb2dnZXI/LmNvbnN0cnVjdG9yPy5uYW1lID09PSBcIk5vT3BMb2dnZXJcIiB8fCAhb3B0aW9ucy5sb2dnZXI/Lndhcm5cbiAgICAgICAgPyBjb25zb2xlLndhcm5cbiAgICAgICAgOiBvcHRpb25zLmxvZ2dlci53YXJuLmJpbmQob3B0aW9ucy5sb2dnZXIpO1xuICAgIGlmIChyZWxhdGl2ZSAmJiBmdWxsKSB7XG4gICAgICAgIHdhcm4oXCJAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLWh0dHA6IFwiICtcbiAgICAgICAgICAgIFwieW91IGhhdmUgc2V0IGJvdGggYXdzQ29udGFpbmVyQ3JlZGVudGlhbHNSZWxhdGl2ZVVyaSBhbmQgYXdzQ29udGFpbmVyQ3JlZGVudGlhbHNGdWxsVXJpLlwiKTtcbiAgICAgICAgd2FybihcImF3c0NvbnRhaW5lckNyZWRlbnRpYWxzRnVsbFVyaSB3aWxsIHRha2UgcHJlY2VkZW5jZS5cIik7XG4gICAgfVxuICAgIGlmICh0b2tlbiAmJiB0b2tlbkZpbGUpIHtcbiAgICAgICAgd2FybihcIkBhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItaHR0cDogXCIgK1xuICAgICAgICAgICAgXCJ5b3UgaGF2ZSBzZXQgYm90aCBhd3NDb250YWluZXJBdXRob3JpemF0aW9uVG9rZW4gYW5kIGF3c0NvbnRhaW5lckF1dGhvcml6YXRpb25Ub2tlbkZpbGUuXCIpO1xuICAgICAgICB3YXJuKFwiYXdzQ29udGFpbmVyQXV0aG9yaXphdGlvblRva2VuIHdpbGwgdGFrZSBwcmVjZWRlbmNlLlwiKTtcbiAgICB9XG4gICAgaWYgKGZ1bGwpIHtcbiAgICAgICAgaG9zdCA9IGZ1bGw7XG4gICAgfVxuICAgIGVsc2UgaWYgKHJlbGF0aXZlKSB7XG4gICAgICAgIGhvc3QgPSBgJHtERUZBVUxUX0xJTktfTE9DQUxfSE9TVH0ke3JlbGF0aXZlfWA7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlfcHJvdmlkZXJfMS5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoYE5vIEhUVFAgY3JlZGVudGlhbCBwcm92aWRlciBob3N0IHByb3ZpZGVkLlxuU2V0IEFXU19DT05UQUlORVJfQ1JFREVOVElBTFNfRlVMTF9VUkkgb3IgQVdTX0NPTlRBSU5FUl9DUkVERU5USUFMU19SRUxBVElWRV9VUkkuYCwgeyBsb2dnZXI6IG9wdGlvbnMubG9nZ2VyIH0pO1xuICAgIH1cbiAgICBjb25zdCB1cmwgPSBuZXcgVVJMKGhvc3QpO1xuICAgICgwLCBjaGVja1VybF8xLmNoZWNrVXJsKSh1cmwsIG9wdGlvbnMubG9nZ2VyKTtcbiAgICBjb25zdCByZXF1ZXN0SGFuZGxlciA9IG5vZGVfaHR0cF9oYW5kbGVyXzEuTm9kZUh0dHBIYW5kbGVyLmNyZWF0ZSh7XG4gICAgICAgIHJlcXVlc3RUaW1lb3V0OiBvcHRpb25zLnRpbWVvdXQgPz8gMTAwMCxcbiAgICAgICAgY29ubmVjdGlvblRpbWVvdXQ6IG9wdGlvbnMudGltZW91dCA/PyAxMDAwLFxuICAgIH0pO1xuICAgIHJldHVybiAoMCwgcmV0cnlfd3JhcHBlcl8xLnJldHJ5V3JhcHBlcikoYXN5bmMgKCkgPT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKDAsIHJlcXVlc3RIZWxwZXJzXzEuY3JlYXRlR2V0UmVxdWVzdCkodXJsKTtcbiAgICAgICAgaWYgKHRva2VuKSB7XG4gICAgICAgICAgICByZXF1ZXN0LmhlYWRlcnMuQXV0aG9yaXphdGlvbiA9IHRva2VuO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHRva2VuRmlsZSkge1xuICAgICAgICAgICAgcmVxdWVzdC5oZWFkZXJzLkF1dGhvcml6YXRpb24gPSAoYXdhaXQgcHJvbWlzZXNfMS5kZWZhdWx0LnJlYWRGaWxlKHRva2VuRmlsZSkpLnRvU3RyaW5nKCk7XG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlcXVlc3RIYW5kbGVyLmhhbmRsZShyZXF1ZXN0KTtcbiAgICAgICAgICAgIHJldHVybiAoMCwgcmVxdWVzdEhlbHBlcnNfMS5nZXRDcmVkZW50aWFscykocmVzdWx0LnJlc3BvbnNlKS50aGVuKChjcmVkcykgPT4gKDAsIGNsaWVudF8xLnNldENyZWRlbnRpYWxGZWF0dXJlKShjcmVkcywgXCJDUkVERU5USUFMU19IVFRQXCIsIFwielwiKSk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eV9wcm92aWRlcl8xLkNyZWRlbnRpYWxzUHJvdmlkZXJFcnJvcihTdHJpbmcoZSksIHsgbG9nZ2VyOiBvcHRpb25zLmxvZ2dlciB9KTtcbiAgICAgICAgfVxuICAgIH0sIG9wdGlvbnMubWF4UmV0cmllcyA/PyAzLCBvcHRpb25zLnRpbWVvdXQgPz8gMTAwMCk7XG59O1xuZXhwb3J0cy5mcm9tSHR0cCA9IGZyb21IdHRwO1xuIiwgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5mcm9tSHR0cCA9IHZvaWQgMDtcbnZhciBmcm9tSHR0cF8xID0gcmVxdWlyZShcIi4vZnJvbUh0dHAvZnJvbUh0dHBcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJmcm9tSHR0cFwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gZnJvbUh0dHBfMS5mcm9tSHR0cDsgfSB9KTtcbiIsICJpbXBvcnQgeyByZXNvbHZlQXdzU2RrU2lnVjRDb25maWcsIH0gZnJvbSBcIkBhd3Mtc2RrL2NvcmVcIjtcbmltcG9ydCB7IGdldFNtaXRoeUNvbnRleHQsIG5vcm1hbGl6ZVByb3ZpZGVyIH0gZnJvbSBcIkBzbWl0aHkvdXRpbC1taWRkbGV3YXJlXCI7XG5leHBvcnQgY29uc3QgZGVmYXVsdFNTT09JRENIdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlciA9IGFzeW5jIChjb25maWcsIGNvbnRleHQsIGlucHV0KSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgb3BlcmF0aW9uOiBnZXRTbWl0aHlDb250ZXh0KGNvbnRleHQpLm9wZXJhdGlvbixcbiAgICAgICAgcmVnaW9uOiAoYXdhaXQgbm9ybWFsaXplUHJvdmlkZXIoY29uZmlnLnJlZ2lvbikoKSkgfHxcbiAgICAgICAgICAgICgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiZXhwZWN0ZWQgYHJlZ2lvbmAgdG8gYmUgY29uZmlndXJlZCBmb3IgYGF3cy5hdXRoI3NpZ3Y0YFwiKTtcbiAgICAgICAgICAgIH0pKCksXG4gICAgfTtcbn07XG5mdW5jdGlvbiBjcmVhdGVBd3NBdXRoU2lndjRIdHRwQXV0aE9wdGlvbihhdXRoUGFyYW1ldGVycykge1xuICAgIHJldHVybiB7XG4gICAgICAgIHNjaGVtZUlkOiBcImF3cy5hdXRoI3NpZ3Y0XCIsXG4gICAgICAgIHNpZ25pbmdQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICBuYW1lOiBcInNzby1vYXV0aFwiLFxuICAgICAgICAgICAgcmVnaW9uOiBhdXRoUGFyYW1ldGVycy5yZWdpb24sXG4gICAgICAgIH0sXG4gICAgICAgIHByb3BlcnRpZXNFeHRyYWN0b3I6IChjb25maWcsIGNvbnRleHQpID0+ICh7XG4gICAgICAgICAgICBzaWduaW5nUHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgIGNvbmZpZyxcbiAgICAgICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgfTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVNtaXRoeUFwaU5vQXV0aEh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc2NoZW1lSWQ6IFwic21pdGh5LmFwaSNub0F1dGhcIixcbiAgICB9O1xufVxuZXhwb3J0IGNvbnN0IGRlZmF1bHRTU09PSURDSHR0cEF1dGhTY2hlbWVQcm92aWRlciA9IChhdXRoUGFyYW1ldGVycykgPT4ge1xuICAgIGNvbnN0IG9wdGlvbnMgPSBbXTtcbiAgICBzd2l0Y2ggKGF1dGhQYXJhbWV0ZXJzLm9wZXJhdGlvbikge1xuICAgICAgICBjYXNlIFwiQ3JlYXRlVG9rZW5cIjoge1xuICAgICAgICAgICAgb3B0aW9ucy5wdXNoKGNyZWF0ZVNtaXRoeUFwaU5vQXV0aEh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICBvcHRpb25zLnB1c2goY3JlYXRlQXdzQXV0aFNpZ3Y0SHR0cEF1dGhPcHRpb24oYXV0aFBhcmFtZXRlcnMpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gb3B0aW9ucztcbn07XG5leHBvcnQgY29uc3QgcmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIGNvbnN0IGNvbmZpZ18wID0gcmVzb2x2ZUF3c1Nka1NpZ1Y0Q29uZmlnKGNvbmZpZyk7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oY29uZmlnXzAsIHtcbiAgICAgICAgYXV0aFNjaGVtZVByZWZlcmVuY2U6IG5vcm1hbGl6ZVByb3ZpZGVyKGNvbmZpZy5hdXRoU2NoZW1lUHJlZmVyZW5jZSA/PyBbXSksXG4gICAgfSk7XG59O1xuIiwgImV4cG9ydCBjb25zdCByZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzID0gKG9wdGlvbnMpID0+IHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihvcHRpb25zLCB7XG4gICAgICAgIHVzZUR1YWxzdGFja0VuZHBvaW50OiBvcHRpb25zLnVzZUR1YWxzdGFja0VuZHBvaW50ID8/IGZhbHNlLFxuICAgICAgICB1c2VGaXBzRW5kcG9pbnQ6IG9wdGlvbnMudXNlRmlwc0VuZHBvaW50ID8/IGZhbHNlLFxuICAgICAgICBkZWZhdWx0U2lnbmluZ05hbWU6IFwic3NvLW9hdXRoXCIsXG4gICAgfSk7XG59O1xuZXhwb3J0IGNvbnN0IGNvbW1vblBhcmFtcyA9IHtcbiAgICBVc2VGSVBTOiB7IHR5cGU6IFwiYnVpbHRJblBhcmFtc1wiLCBuYW1lOiBcInVzZUZpcHNFbmRwb2ludFwiIH0sXG4gICAgRW5kcG9pbnQ6IHsgdHlwZTogXCJidWlsdEluUGFyYW1zXCIsIG5hbWU6IFwiZW5kcG9pbnRcIiB9LFxuICAgIFJlZ2lvbjogeyB0eXBlOiBcImJ1aWx0SW5QYXJhbXNcIiwgbmFtZTogXCJyZWdpb25cIiB9LFxuICAgIFVzZUR1YWxTdGFjazogeyB0eXBlOiBcImJ1aWx0SW5QYXJhbXNcIiwgbmFtZTogXCJ1c2VEdWFsc3RhY2tFbmRwb2ludFwiIH0sXG59O1xuIiwgIntcbiAgXCJuYW1lXCI6IFwiQGF3cy1zZGsvbmVzdGVkLWNsaWVudHNcIixcbiAgXCJ2ZXJzaW9uXCI6IFwiMy45NTIuMFwiLFxuICBcImRlc2NyaXB0aW9uXCI6IFwiTmVzdGVkIGNsaWVudHMgZm9yIEFXUyBTREsgcGFja2FnZXMuXCIsXG4gIFwibWFpblwiOiBcIi4vZGlzdC1janMvaW5kZXguanNcIixcbiAgXCJtb2R1bGVcIjogXCIuL2Rpc3QtZXMvaW5kZXguanNcIixcbiAgXCJ0eXBlc1wiOiBcIi4vZGlzdC10eXBlcy9pbmRleC5kLnRzXCIsXG4gIFwic2NyaXB0c1wiOiB7XG4gICAgXCJidWlsZFwiOiBcInlhcm4gbGludCAmJiBjb25jdXJyZW50bHkgJ3lhcm46YnVpbGQ6Y2pzJyAneWFybjpidWlsZDplcycgJ3lhcm46YnVpbGQ6dHlwZXMnXCIsXG4gICAgXCJidWlsZDpjanNcIjogXCJub2RlIC4uLy4uL3NjcmlwdHMvY29tcGlsYXRpb24vaW5saW5lIG5lc3RlZC1jbGllbnRzXCIsXG4gICAgXCJidWlsZDplc1wiOiBcInRzYyAtcCB0c2NvbmZpZy5lcy5qc29uXCIsXG4gICAgXCJidWlsZDppbmNsdWRlOmRlcHNcIjogXCJsZXJuYSBydW4gLS1zY29wZSAkbnBtX3BhY2thZ2VfbmFtZSAtLWluY2x1ZGUtZGVwZW5kZW5jaWVzIGJ1aWxkXCIsXG4gICAgXCJidWlsZDp0eXBlc1wiOiBcInRzYyAtcCB0c2NvbmZpZy50eXBlcy5qc29uXCIsXG4gICAgXCJidWlsZDp0eXBlczpkb3dubGV2ZWxcIjogXCJkb3dubGV2ZWwtZHRzIGRpc3QtdHlwZXMgZGlzdC10eXBlcy90czMuNFwiLFxuICAgIFwiY2xlYW5cIjogXCJyaW1yYWYgLi9kaXN0LSogJiYgcmltcmFmICoudHNidWlsZGluZm9cIixcbiAgICBcImxpbnRcIjogXCJub2RlIC4uLy4uL3NjcmlwdHMvdmFsaWRhdGlvbi9zdWJtb2R1bGVzLWxpbnRlci5qcyAtLXBrZyBuZXN0ZWQtY2xpZW50c1wiLFxuICAgIFwidGVzdFwiOiBcInlhcm4gZzp2aXRlc3QgcnVuXCIsXG4gICAgXCJ0ZXN0OndhdGNoXCI6IFwieWFybiBnOnZpdGVzdCB3YXRjaFwiXG4gIH0sXG4gIFwiZW5naW5lc1wiOiB7XG4gICAgXCJub2RlXCI6IFwiPj0xOC4wLjBcIlxuICB9LFxuICBcInNpZGVFZmZlY3RzXCI6IGZhbHNlLFxuICBcImF1dGhvclwiOiB7XG4gICAgXCJuYW1lXCI6IFwiQVdTIFNESyBmb3IgSmF2YVNjcmlwdCBUZWFtXCIsXG4gICAgXCJ1cmxcIjogXCJodHRwczovL2F3cy5hbWF6b24uY29tL2phdmFzY3JpcHQvXCJcbiAgfSxcbiAgXCJsaWNlbnNlXCI6IFwiQXBhY2hlLTIuMFwiLFxuICBcImRlcGVuZGVuY2llc1wiOiB7XG4gICAgXCJAYXdzLWNyeXB0by9zaGEyNTYtYnJvd3NlclwiOiBcIjUuMi4wXCIsXG4gICAgXCJAYXdzLWNyeXB0by9zaGEyNTYtanNcIjogXCI1LjIuMFwiLFxuICAgIFwiQGF3cy1zZGsvY29yZVwiOiBcIjMuOTQ3LjBcIixcbiAgICBcIkBhd3Mtc2RrL21pZGRsZXdhcmUtaG9zdC1oZWFkZXJcIjogXCIzLjkzNi4wXCIsXG4gICAgXCJAYXdzLXNkay9taWRkbGV3YXJlLWxvZ2dlclwiOiBcIjMuOTM2LjBcIixcbiAgICBcIkBhd3Mtc2RrL21pZGRsZXdhcmUtcmVjdXJzaW9uLWRldGVjdGlvblwiOiBcIjMuOTQ4LjBcIixcbiAgICBcIkBhd3Mtc2RrL21pZGRsZXdhcmUtdXNlci1hZ2VudFwiOiBcIjMuOTQ3LjBcIixcbiAgICBcIkBhd3Mtc2RrL3JlZ2lvbi1jb25maWctcmVzb2x2ZXJcIjogXCIzLjkzNi4wXCIsXG4gICAgXCJAYXdzLXNkay90eXBlc1wiOiBcIjMuOTM2LjBcIixcbiAgICBcIkBhd3Mtc2RrL3V0aWwtZW5kcG9pbnRzXCI6IFwiMy45MzYuMFwiLFxuICAgIFwiQGF3cy1zZGsvdXRpbC11c2VyLWFnZW50LWJyb3dzZXJcIjogXCIzLjkzNi4wXCIsXG4gICAgXCJAYXdzLXNkay91dGlsLXVzZXItYWdlbnQtbm9kZVwiOiBcIjMuOTQ3LjBcIixcbiAgICBcIkBzbWl0aHkvY29uZmlnLXJlc29sdmVyXCI6IFwiXjQuNC4zXCIsXG4gICAgXCJAc21pdGh5L2NvcmVcIjogXCJeMy4xOC43XCIsXG4gICAgXCJAc21pdGh5L2ZldGNoLWh0dHAtaGFuZGxlclwiOiBcIl41LjMuNlwiLFxuICAgIFwiQHNtaXRoeS9oYXNoLW5vZGVcIjogXCJeNC4yLjVcIixcbiAgICBcIkBzbWl0aHkvaW52YWxpZC1kZXBlbmRlbmN5XCI6IFwiXjQuMi41XCIsXG4gICAgXCJAc21pdGh5L21pZGRsZXdhcmUtY29udGVudC1sZW5ndGhcIjogXCJeNC4yLjVcIixcbiAgICBcIkBzbWl0aHkvbWlkZGxld2FyZS1lbmRwb2ludFwiOiBcIl40LjMuMTRcIixcbiAgICBcIkBzbWl0aHkvbWlkZGxld2FyZS1yZXRyeVwiOiBcIl40LjQuMTRcIixcbiAgICBcIkBzbWl0aHkvbWlkZGxld2FyZS1zZXJkZVwiOiBcIl40LjIuNlwiLFxuICAgIFwiQHNtaXRoeS9taWRkbGV3YXJlLXN0YWNrXCI6IFwiXjQuMi41XCIsXG4gICAgXCJAc21pdGh5L25vZGUtY29uZmlnLXByb3ZpZGVyXCI6IFwiXjQuMy41XCIsXG4gICAgXCJAc21pdGh5L25vZGUtaHR0cC1oYW5kbGVyXCI6IFwiXjQuNC41XCIsXG4gICAgXCJAc21pdGh5L3Byb3RvY29sLWh0dHBcIjogXCJeNS4zLjVcIixcbiAgICBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiOiBcIl40LjkuMTBcIixcbiAgICBcIkBzbWl0aHkvdHlwZXNcIjogXCJeNC45LjBcIixcbiAgICBcIkBzbWl0aHkvdXJsLXBhcnNlclwiOiBcIl40LjIuNVwiLFxuICAgIFwiQHNtaXRoeS91dGlsLWJhc2U2NFwiOiBcIl40LjMuMFwiLFxuICAgIFwiQHNtaXRoeS91dGlsLWJvZHktbGVuZ3RoLWJyb3dzZXJcIjogXCJeNC4yLjBcIixcbiAgICBcIkBzbWl0aHkvdXRpbC1ib2R5LWxlbmd0aC1ub2RlXCI6IFwiXjQuMi4xXCIsXG4gICAgXCJAc21pdGh5L3V0aWwtZGVmYXVsdHMtbW9kZS1icm93c2VyXCI6IFwiXjQuMy4xM1wiLFxuICAgIFwiQHNtaXRoeS91dGlsLWRlZmF1bHRzLW1vZGUtbm9kZVwiOiBcIl40LjIuMTZcIixcbiAgICBcIkBzbWl0aHkvdXRpbC1lbmRwb2ludHNcIjogXCJeMy4yLjVcIixcbiAgICBcIkBzbWl0aHkvdXRpbC1taWRkbGV3YXJlXCI6IFwiXjQuMi41XCIsXG4gICAgXCJAc21pdGh5L3V0aWwtcmV0cnlcIjogXCJeNC4yLjVcIixcbiAgICBcIkBzbWl0aHkvdXRpbC11dGY4XCI6IFwiXjQuMi4wXCIsXG4gICAgXCJ0c2xpYlwiOiBcIl4yLjYuMlwiXG4gIH0sXG4gIFwiZGV2RGVwZW5kZW5jaWVzXCI6IHtcbiAgICBcImNvbmN1cnJlbnRseVwiOiBcIjcuMC4wXCIsXG4gICAgXCJkb3dubGV2ZWwtZHRzXCI6IFwiMC4xMC4xXCIsXG4gICAgXCJyaW1yYWZcIjogXCIzLjAuMlwiLFxuICAgIFwidHlwZXNjcmlwdFwiOiBcIn41LjguM1wiXG4gIH0sXG4gIFwidHlwZXNWZXJzaW9uc1wiOiB7XG4gICAgXCI8NC4wXCI6IHtcbiAgICAgIFwiZGlzdC10eXBlcy8qXCI6IFtcbiAgICAgICAgXCJkaXN0LXR5cGVzL3RzMy40LypcIlxuICAgICAgXVxuICAgIH1cbiAgfSxcbiAgXCJmaWxlc1wiOiBbXG4gICAgXCIuL3NpZ25pbi5kLnRzXCIsXG4gICAgXCIuL3NpZ25pbi5qc1wiLFxuICAgIFwiLi9zc28tb2lkYy5kLnRzXCIsXG4gICAgXCIuL3Nzby1vaWRjLmpzXCIsXG4gICAgXCIuL3N0cy5kLnRzXCIsXG4gICAgXCIuL3N0cy5qc1wiLFxuICAgIFwiZGlzdC0qLyoqXCJcbiAgXSxcbiAgXCJicm93c2VyXCI6IHtcbiAgICBcIi4vZGlzdC1lcy9zdWJtb2R1bGVzL3NpZ25pbi9ydW50aW1lQ29uZmlnXCI6IFwiLi9kaXN0LWVzL3N1Ym1vZHVsZXMvc2lnbmluL3J1bnRpbWVDb25maWcuYnJvd3NlclwiLFxuICAgIFwiLi9kaXN0LWVzL3N1Ym1vZHVsZXMvc3NvLW9pZGMvcnVudGltZUNvbmZpZ1wiOiBcIi4vZGlzdC1lcy9zdWJtb2R1bGVzL3Nzby1vaWRjL3J1bnRpbWVDb25maWcuYnJvd3NlclwiLFxuICAgIFwiLi9kaXN0LWVzL3N1Ym1vZHVsZXMvc3RzL3J1bnRpbWVDb25maWdcIjogXCIuL2Rpc3QtZXMvc3VibW9kdWxlcy9zdHMvcnVudGltZUNvbmZpZy5icm93c2VyXCJcbiAgfSxcbiAgXCJyZWFjdC1uYXRpdmVcIjoge30sXG4gIFwiaG9tZXBhZ2VcIjogXCJodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1zZGstanMtdjMvdHJlZS9tYWluL3BhY2thZ2VzL25lc3RlZC1jbGllbnRzXCIsXG4gIFwicmVwb3NpdG9yeVwiOiB7XG4gICAgXCJ0eXBlXCI6IFwiZ2l0XCIsXG4gICAgXCJ1cmxcIjogXCJodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1zZGstanMtdjMuZ2l0XCIsXG4gICAgXCJkaXJlY3RvcnlcIjogXCJwYWNrYWdlcy9uZXN0ZWQtY2xpZW50c1wiXG4gIH0sXG4gIFwiZXhwb3J0c1wiOiB7XG4gICAgXCIuL3BhY2thZ2UuanNvblwiOiBcIi4vcGFja2FnZS5qc29uXCIsXG4gICAgXCIuL3Nzby1vaWRjXCI6IHtcbiAgICAgIFwidHlwZXNcIjogXCIuL2Rpc3QtdHlwZXMvc3VibW9kdWxlcy9zc28tb2lkYy9pbmRleC5kLnRzXCIsXG4gICAgICBcIm1vZHVsZVwiOiBcIi4vZGlzdC1lcy9zdWJtb2R1bGVzL3Nzby1vaWRjL2luZGV4LmpzXCIsXG4gICAgICBcIm5vZGVcIjogXCIuL2Rpc3QtY2pzL3N1Ym1vZHVsZXMvc3NvLW9pZGMvaW5kZXguanNcIixcbiAgICAgIFwiaW1wb3J0XCI6IFwiLi9kaXN0LWVzL3N1Ym1vZHVsZXMvc3NvLW9pZGMvaW5kZXguanNcIixcbiAgICAgIFwicmVxdWlyZVwiOiBcIi4vZGlzdC1janMvc3VibW9kdWxlcy9zc28tb2lkYy9pbmRleC5qc1wiXG4gICAgfSxcbiAgICBcIi4vc3RzXCI6IHtcbiAgICAgIFwidHlwZXNcIjogXCIuL2Rpc3QtdHlwZXMvc3VibW9kdWxlcy9zdHMvaW5kZXguZC50c1wiLFxuICAgICAgXCJtb2R1bGVcIjogXCIuL2Rpc3QtZXMvc3VibW9kdWxlcy9zdHMvaW5kZXguanNcIixcbiAgICAgIFwibm9kZVwiOiBcIi4vZGlzdC1janMvc3VibW9kdWxlcy9zdHMvaW5kZXguanNcIixcbiAgICAgIFwiaW1wb3J0XCI6IFwiLi9kaXN0LWVzL3N1Ym1vZHVsZXMvc3RzL2luZGV4LmpzXCIsXG4gICAgICBcInJlcXVpcmVcIjogXCIuL2Rpc3QtY2pzL3N1Ym1vZHVsZXMvc3RzL2luZGV4LmpzXCJcbiAgICB9LFxuICAgIFwiLi9zaWduaW5cIjoge1xuICAgICAgXCJ0eXBlc1wiOiBcIi4vZGlzdC10eXBlcy9zdWJtb2R1bGVzL3NpZ25pbi9pbmRleC5kLnRzXCIsXG4gICAgICBcIm1vZHVsZVwiOiBcIi4vZGlzdC1lcy9zdWJtb2R1bGVzL3NpZ25pbi9pbmRleC5qc1wiLFxuICAgICAgXCJub2RlXCI6IFwiLi9kaXN0LWNqcy9zdWJtb2R1bGVzL3NpZ25pbi9pbmRleC5qc1wiLFxuICAgICAgXCJpbXBvcnRcIjogXCIuL2Rpc3QtZXMvc3VibW9kdWxlcy9zaWduaW4vaW5kZXguanNcIixcbiAgICAgIFwicmVxdWlyZVwiOiBcIi4vZGlzdC1janMvc3VibW9kdWxlcy9zaWduaW4vaW5kZXguanNcIlxuICAgIH1cbiAgfVxufVxuIiwgIid1c2Ugc3RyaWN0JztcblxudmFyIG9zID0gcmVxdWlyZSgnb3MnKTtcbnZhciBwcm9jZXNzID0gcmVxdWlyZSgncHJvY2VzcycpO1xudmFyIG1pZGRsZXdhcmVVc2VyQWdlbnQgPSByZXF1aXJlKCdAYXdzLXNkay9taWRkbGV3YXJlLXVzZXItYWdlbnQnKTtcblxuY29uc3QgY3J0QXZhaWxhYmlsaXR5ID0ge1xuICAgIGlzQ3J0QXZhaWxhYmxlOiBmYWxzZSxcbn07XG5cbmNvbnN0IGlzQ3J0QXZhaWxhYmxlID0gKCkgPT4ge1xuICAgIGlmIChjcnRBdmFpbGFiaWxpdHkuaXNDcnRBdmFpbGFibGUpIHtcbiAgICAgICAgcmV0dXJuIFtcIm1kL2NydC1hdmFpbFwiXTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG59O1xuXG5jb25zdCBjcmVhdGVEZWZhdWx0VXNlckFnZW50UHJvdmlkZXIgPSAoeyBzZXJ2aWNlSWQsIGNsaWVudFZlcnNpb24gfSkgPT4ge1xuICAgIHJldHVybiBhc3luYyAoY29uZmlnKSA9PiB7XG4gICAgICAgIGNvbnN0IHNlY3Rpb25zID0gW1xuICAgICAgICAgICAgW1wiYXdzLXNkay1qc1wiLCBjbGllbnRWZXJzaW9uXSxcbiAgICAgICAgICAgIFtcInVhXCIsIFwiMi4xXCJdLFxuICAgICAgICAgICAgW2Bvcy8ke29zLnBsYXRmb3JtKCl9YCwgb3MucmVsZWFzZSgpXSxcbiAgICAgICAgICAgIFtcImxhbmcvanNcIl0sXG4gICAgICAgICAgICBbXCJtZC9ub2RlanNcIiwgYCR7cHJvY2Vzcy52ZXJzaW9ucy5ub2RlfWBdLFxuICAgICAgICBdO1xuICAgICAgICBjb25zdCBjcnRBdmFpbGFibGUgPSBpc0NydEF2YWlsYWJsZSgpO1xuICAgICAgICBpZiAoY3J0QXZhaWxhYmxlKSB7XG4gICAgICAgICAgICBzZWN0aW9ucy5wdXNoKGNydEF2YWlsYWJsZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNlcnZpY2VJZCkge1xuICAgICAgICAgICAgc2VjdGlvbnMucHVzaChbYGFwaS8ke3NlcnZpY2VJZH1gLCBjbGllbnRWZXJzaW9uXSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHByb2Nlc3MuZW52LkFXU19FWEVDVVRJT05fRU5WKSB7XG4gICAgICAgICAgICBzZWN0aW9ucy5wdXNoKFtgZXhlYy1lbnYvJHtwcm9jZXNzLmVudi5BV1NfRVhFQ1VUSU9OX0VOVn1gXSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYXBwSWQgPSBhd2FpdCBjb25maWc/LnVzZXJBZ2VudEFwcElkPy4oKTtcbiAgICAgICAgY29uc3QgcmVzb2x2ZWRVc2VyQWdlbnQgPSBhcHBJZCA/IFsuLi5zZWN0aW9ucywgW2BhcHAvJHthcHBJZH1gXV0gOiBbLi4uc2VjdGlvbnNdO1xuICAgICAgICByZXR1cm4gcmVzb2x2ZWRVc2VyQWdlbnQ7XG4gICAgfTtcbn07XG5jb25zdCBkZWZhdWx0VXNlckFnZW50ID0gY3JlYXRlRGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyO1xuXG5jb25zdCBVQV9BUFBfSURfRU5WX05BTUUgPSBcIkFXU19TREtfVUFfQVBQX0lEXCI7XG5jb25zdCBVQV9BUFBfSURfSU5JX05BTUUgPSBcInNka191YV9hcHBfaWRcIjtcbmNvbnN0IFVBX0FQUF9JRF9JTklfTkFNRV9ERVBSRUNBVEVEID0gXCJzZGstdWEtYXBwLWlkXCI7XG5jb25zdCBOT0RFX0FQUF9JRF9DT05GSUdfT1BUSU9OUyA9IHtcbiAgICBlbnZpcm9ubWVudFZhcmlhYmxlU2VsZWN0b3I6IChlbnYpID0+IGVudltVQV9BUFBfSURfRU5WX05BTUVdLFxuICAgIGNvbmZpZ0ZpbGVTZWxlY3RvcjogKHByb2ZpbGUpID0+IHByb2ZpbGVbVUFfQVBQX0lEX0lOSV9OQU1FXSA/PyBwcm9maWxlW1VBX0FQUF9JRF9JTklfTkFNRV9ERVBSRUNBVEVEXSxcbiAgICBkZWZhdWx0OiBtaWRkbGV3YXJlVXNlckFnZW50LkRFRkFVTFRfVUFfQVBQX0lELFxufTtcblxuZXhwb3J0cy5OT0RFX0FQUF9JRF9DT05GSUdfT1BUSU9OUyA9IE5PREVfQVBQX0lEX0NPTkZJR19PUFRJT05TO1xuZXhwb3J0cy5VQV9BUFBfSURfRU5WX05BTUUgPSBVQV9BUFBfSURfRU5WX05BTUU7XG5leHBvcnRzLlVBX0FQUF9JRF9JTklfTkFNRSA9IFVBX0FQUF9JRF9JTklfTkFNRTtcbmV4cG9ydHMuY3JlYXRlRGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyID0gY3JlYXRlRGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyO1xuZXhwb3J0cy5jcnRBdmFpbGFiaWxpdHkgPSBjcnRBdmFpbGFiaWxpdHk7XG5leHBvcnRzLmRlZmF1bHRVc2VyQWdlbnQgPSBkZWZhdWx0VXNlckFnZW50O1xuIiwgImNvbnN0IHUgPSBcInJlcXVpcmVkXCIsIHYgPSBcImZuXCIsIHcgPSBcImFyZ3ZcIiwgeCA9IFwicmVmXCI7XG5jb25zdCBhID0gdHJ1ZSwgYiA9IFwiaXNTZXRcIiwgYyA9IFwiYm9vbGVhbkVxdWFsc1wiLCBkID0gXCJlcnJvclwiLCBlID0gXCJlbmRwb2ludFwiLCBmID0gXCJ0cmVlXCIsIGcgPSBcIlBhcnRpdGlvblJlc3VsdFwiLCBoID0gXCJnZXRBdHRyXCIsIGkgPSB7IFt1XTogZmFsc2UsIFwidHlwZVwiOiBcInN0cmluZ1wiIH0sIGogPSB7IFt1XTogdHJ1ZSwgXCJkZWZhdWx0XCI6IGZhbHNlLCBcInR5cGVcIjogXCJib29sZWFuXCIgfSwgayA9IHsgW3hdOiBcIkVuZHBvaW50XCIgfSwgbCA9IHsgW3ZdOiBjLCBbd106IFt7IFt4XTogXCJVc2VGSVBTXCIgfSwgdHJ1ZV0gfSwgbSA9IHsgW3ZdOiBjLCBbd106IFt7IFt4XTogXCJVc2VEdWFsU3RhY2tcIiB9LCB0cnVlXSB9LCBuID0ge30sIG8gPSB7IFt2XTogaCwgW3ddOiBbeyBbeF06IGcgfSwgXCJzdXBwb3J0c0ZJUFNcIl0gfSwgcCA9IHsgW3hdOiBnIH0sIHEgPSB7IFt2XTogYywgW3ddOiBbdHJ1ZSwgeyBbdl06IGgsIFt3XTogW3AsIFwic3VwcG9ydHNEdWFsU3RhY2tcIl0gfV0gfSwgciA9IFtsXSwgcyA9IFttXSwgdCA9IFt7IFt4XTogXCJSZWdpb25cIiB9XTtcbmNvbnN0IF9kYXRhID0geyB2ZXJzaW9uOiBcIjEuMFwiLCBwYXJhbWV0ZXJzOiB7IFJlZ2lvbjogaSwgVXNlRHVhbFN0YWNrOiBqLCBVc2VGSVBTOiBqLCBFbmRwb2ludDogaSB9LCBydWxlczogW3sgY29uZGl0aW9uczogW3sgW3ZdOiBiLCBbd106IFtrXSB9XSwgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IHIsIGVycm9yOiBcIkludmFsaWQgQ29uZmlndXJhdGlvbjogRklQUyBhbmQgY3VzdG9tIGVuZHBvaW50IGFyZSBub3Qgc3VwcG9ydGVkXCIsIHR5cGU6IGQgfSwgeyBjb25kaXRpb25zOiBzLCBlcnJvcjogXCJJbnZhbGlkIENvbmZpZ3VyYXRpb246IER1YWxzdGFjayBhbmQgY3VzdG9tIGVuZHBvaW50IGFyZSBub3Qgc3VwcG9ydGVkXCIsIHR5cGU6IGQgfSwgeyBlbmRwb2ludDogeyB1cmw6IGssIHByb3BlcnRpZXM6IG4sIGhlYWRlcnM6IG4gfSwgdHlwZTogZSB9XSwgdHlwZTogZiB9LCB7IGNvbmRpdGlvbnM6IFt7IFt2XTogYiwgW3ddOiB0IH1dLCBydWxlczogW3sgY29uZGl0aW9uczogW3sgW3ZdOiBcImF3cy5wYXJ0aXRpb25cIiwgW3ddOiB0LCBhc3NpZ246IGcgfV0sIHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbbCwgbV0sIHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbeyBbdl06IGMsIFt3XTogW2EsIG9dIH0sIHFdLCBydWxlczogW3sgZW5kcG9pbnQ6IHsgdXJsOiBcImh0dHBzOi8vb2lkYy1maXBzLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZHVhbFN0YWNrRG5zU3VmZml4fVwiLCBwcm9wZXJ0aWVzOiBuLCBoZWFkZXJzOiBuIH0sIHR5cGU6IGUgfV0sIHR5cGU6IGYgfSwgeyBlcnJvcjogXCJGSVBTIGFuZCBEdWFsU3RhY2sgYXJlIGVuYWJsZWQsIGJ1dCB0aGlzIHBhcnRpdGlvbiBkb2VzIG5vdCBzdXBwb3J0IG9uZSBvciBib3RoXCIsIHR5cGU6IGQgfV0sIHR5cGU6IGYgfSwgeyBjb25kaXRpb25zOiByLCBydWxlczogW3sgY29uZGl0aW9uczogW3sgW3ZdOiBjLCBbd106IFtvLCBhXSB9XSwgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IFt7IFt2XTogXCJzdHJpbmdFcXVhbHNcIiwgW3ddOiBbeyBbdl06IGgsIFt3XTogW3AsIFwibmFtZVwiXSB9LCBcImF3cy11cy1nb3ZcIl0gfV0sIGVuZHBvaW50OiB7IHVybDogXCJodHRwczovL29pZGMue1JlZ2lvbn0uYW1hem9uYXdzLmNvbVwiLCBwcm9wZXJ0aWVzOiBuLCBoZWFkZXJzOiBuIH0sIHR5cGU6IGUgfSwgeyBlbmRwb2ludDogeyB1cmw6IFwiaHR0cHM6Ly9vaWRjLWZpcHMue1JlZ2lvbn0ue1BhcnRpdGlvblJlc3VsdCNkbnNTdWZmaXh9XCIsIHByb3BlcnRpZXM6IG4sIGhlYWRlcnM6IG4gfSwgdHlwZTogZSB9XSwgdHlwZTogZiB9LCB7IGVycm9yOiBcIkZJUFMgaXMgZW5hYmxlZCBidXQgdGhpcyBwYXJ0aXRpb24gZG9lcyBub3Qgc3VwcG9ydCBGSVBTXCIsIHR5cGU6IGQgfV0sIHR5cGU6IGYgfSwgeyBjb25kaXRpb25zOiBzLCBydWxlczogW3sgY29uZGl0aW9uczogW3FdLCBydWxlczogW3sgZW5kcG9pbnQ6IHsgdXJsOiBcImh0dHBzOi8vb2lkYy57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2R1YWxTdGFja0Ruc1N1ZmZpeH1cIiwgcHJvcGVydGllczogbiwgaGVhZGVyczogbiB9LCB0eXBlOiBlIH1dLCB0eXBlOiBmIH0sIHsgZXJyb3I6IFwiRHVhbFN0YWNrIGlzIGVuYWJsZWQgYnV0IHRoaXMgcGFydGl0aW9uIGRvZXMgbm90IHN1cHBvcnQgRHVhbFN0YWNrXCIsIHR5cGU6IGQgfV0sIHR5cGU6IGYgfSwgeyBlbmRwb2ludDogeyB1cmw6IFwiaHR0cHM6Ly9vaWRjLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZG5zU3VmZml4fVwiLCBwcm9wZXJ0aWVzOiBuLCBoZWFkZXJzOiBuIH0sIHR5cGU6IGUgfV0sIHR5cGU6IGYgfV0sIHR5cGU6IGYgfSwgeyBlcnJvcjogXCJJbnZhbGlkIENvbmZpZ3VyYXRpb246IE1pc3NpbmcgUmVnaW9uXCIsIHR5cGU6IGQgfV0gfTtcbmV4cG9ydCBjb25zdCBydWxlU2V0ID0gX2RhdGE7XG4iLCAiaW1wb3J0IHsgYXdzRW5kcG9pbnRGdW5jdGlvbnMgfSBmcm9tIFwiQGF3cy1zZGsvdXRpbC1lbmRwb2ludHNcIjtcbmltcG9ydCB7IGN1c3RvbUVuZHBvaW50RnVuY3Rpb25zLCBFbmRwb2ludENhY2hlLCByZXNvbHZlRW5kcG9pbnQgfSBmcm9tIFwiQHNtaXRoeS91dGlsLWVuZHBvaW50c1wiO1xuaW1wb3J0IHsgcnVsZVNldCB9IGZyb20gXCIuL3J1bGVzZXRcIjtcbmNvbnN0IGNhY2hlID0gbmV3IEVuZHBvaW50Q2FjaGUoe1xuICAgIHNpemU6IDUwLFxuICAgIHBhcmFtczogW1wiRW5kcG9pbnRcIiwgXCJSZWdpb25cIiwgXCJVc2VEdWFsU3RhY2tcIiwgXCJVc2VGSVBTXCJdLFxufSk7XG5leHBvcnQgY29uc3QgZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIgPSAoZW5kcG9pbnRQYXJhbXMsIGNvbnRleHQgPSB7fSkgPT4ge1xuICAgIHJldHVybiBjYWNoZS5nZXQoZW5kcG9pbnRQYXJhbXMsICgpID0+IHJlc29sdmVFbmRwb2ludChydWxlU2V0LCB7XG4gICAgICAgIGVuZHBvaW50UGFyYW1zOiBlbmRwb2ludFBhcmFtcyxcbiAgICAgICAgbG9nZ2VyOiBjb250ZXh0LmxvZ2dlcixcbiAgICB9KSk7XG59O1xuY3VzdG9tRW5kcG9pbnRGdW5jdGlvbnMuYXdzID0gYXdzRW5kcG9pbnRGdW5jdGlvbnM7XG4iLCAiaW1wb3J0IHsgQXdzU2RrU2lnVjRTaWduZXIgfSBmcm9tIFwiQGF3cy1zZGsvY29yZVwiO1xuaW1wb3J0IHsgQXdzUmVzdEpzb25Qcm90b2NvbCB9IGZyb20gXCJAYXdzLXNkay9jb3JlL3Byb3RvY29sc1wiO1xuaW1wb3J0IHsgTm9BdXRoU2lnbmVyIH0gZnJvbSBcIkBzbWl0aHkvY29yZVwiO1xuaW1wb3J0IHsgTm9PcExvZ2dlciB9IGZyb20gXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjtcbmltcG9ydCB7IHBhcnNlVXJsIH0gZnJvbSBcIkBzbWl0aHkvdXJsLXBhcnNlclwiO1xuaW1wb3J0IHsgZnJvbUJhc2U2NCwgdG9CYXNlNjQgfSBmcm9tIFwiQHNtaXRoeS91dGlsLWJhc2U2NFwiO1xuaW1wb3J0IHsgZnJvbVV0ZjgsIHRvVXRmOCB9IGZyb20gXCJAc21pdGh5L3V0aWwtdXRmOFwiO1xuaW1wb3J0IHsgZGVmYXVsdFNTT09JRENIdHRwQXV0aFNjaGVtZVByb3ZpZGVyIH0gZnJvbSBcIi4vYXV0aC9odHRwQXV0aFNjaGVtZVByb3ZpZGVyXCI7XG5pbXBvcnQgeyBkZWZhdWx0RW5kcG9pbnRSZXNvbHZlciB9IGZyb20gXCIuL2VuZHBvaW50L2VuZHBvaW50UmVzb2x2ZXJcIjtcbmV4cG9ydCBjb25zdCBnZXRSdW50aW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIGFwaVZlcnNpb246IFwiMjAxOS0wNi0xMFwiLFxuICAgICAgICBiYXNlNjREZWNvZGVyOiBjb25maWc/LmJhc2U2NERlY29kZXIgPz8gZnJvbUJhc2U2NCxcbiAgICAgICAgYmFzZTY0RW5jb2RlcjogY29uZmlnPy5iYXNlNjRFbmNvZGVyID8/IHRvQmFzZTY0LFxuICAgICAgICBkaXNhYmxlSG9zdFByZWZpeDogY29uZmlnPy5kaXNhYmxlSG9zdFByZWZpeCA/PyBmYWxzZSxcbiAgICAgICAgZW5kcG9pbnRQcm92aWRlcjogY29uZmlnPy5lbmRwb2ludFByb3ZpZGVyID8/IGRlZmF1bHRFbmRwb2ludFJlc29sdmVyLFxuICAgICAgICBleHRlbnNpb25zOiBjb25maWc/LmV4dGVuc2lvbnMgPz8gW10sXG4gICAgICAgIGh0dHBBdXRoU2NoZW1lUHJvdmlkZXI6IGNvbmZpZz8uaHR0cEF1dGhTY2hlbWVQcm92aWRlciA/PyBkZWZhdWx0U1NPT0lEQ0h0dHBBdXRoU2NoZW1lUHJvdmlkZXIsXG4gICAgICAgIGh0dHBBdXRoU2NoZW1lczogY29uZmlnPy5odHRwQXV0aFNjaGVtZXMgPz8gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHNjaGVtZUlkOiBcImF3cy5hdXRoI3NpZ3Y0XCIsXG4gICAgICAgICAgICAgICAgaWRlbnRpdHlQcm92aWRlcjogKGlwYykgPT4gaXBjLmdldElkZW50aXR5UHJvdmlkZXIoXCJhd3MuYXV0aCNzaWd2NFwiKSxcbiAgICAgICAgICAgICAgICBzaWduZXI6IG5ldyBBd3NTZGtTaWdWNFNpZ25lcigpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzY2hlbWVJZDogXCJzbWl0aHkuYXBpI25vQXV0aFwiLFxuICAgICAgICAgICAgICAgIGlkZW50aXR5UHJvdmlkZXI6IChpcGMpID0+IGlwYy5nZXRJZGVudGl0eVByb3ZpZGVyKFwic21pdGh5LmFwaSNub0F1dGhcIikgfHwgKGFzeW5jICgpID0+ICh7fSkpLFxuICAgICAgICAgICAgICAgIHNpZ25lcjogbmV3IE5vQXV0aFNpZ25lcigpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgbG9nZ2VyOiBjb25maWc/LmxvZ2dlciA/PyBuZXcgTm9PcExvZ2dlcigpLFxuICAgICAgICBwcm90b2NvbDogY29uZmlnPy5wcm90b2NvbCA/PyBuZXcgQXdzUmVzdEpzb25Qcm90b2NvbCh7IGRlZmF1bHROYW1lc3BhY2U6IFwiY29tLmFtYXpvbmF3cy5zc29vaWRjXCIgfSksXG4gICAgICAgIHNlcnZpY2VJZDogY29uZmlnPy5zZXJ2aWNlSWQgPz8gXCJTU08gT0lEQ1wiLFxuICAgICAgICB1cmxQYXJzZXI6IGNvbmZpZz8udXJsUGFyc2VyID8/IHBhcnNlVXJsLFxuICAgICAgICB1dGY4RGVjb2RlcjogY29uZmlnPy51dGY4RGVjb2RlciA/PyBmcm9tVXRmOCxcbiAgICAgICAgdXRmOEVuY29kZXI6IGNvbmZpZz8udXRmOEVuY29kZXIgPz8gdG9VdGY4LFxuICAgIH07XG59O1xuIiwgImltcG9ydCBwYWNrYWdlSW5mbyBmcm9tIFwiLi4vLi4vLi4vcGFja2FnZS5qc29uXCI7XG5pbXBvcnQgeyBOT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfT1BUSU9OUywgZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbiBhcyBhd3NDaGVja1ZlcnNpb24gfSBmcm9tIFwiQGF3cy1zZGsvY29yZVwiO1xuaW1wb3J0IHsgTk9ERV9BUFBfSURfQ09ORklHX09QVElPTlMsIGNyZWF0ZURlZmF1bHRVc2VyQWdlbnRQcm92aWRlciB9IGZyb20gXCJAYXdzLXNkay91dGlsLXVzZXItYWdlbnQtbm9kZVwiO1xuaW1wb3J0IHsgTk9ERV9SRUdJT05fQ09ORklHX0ZJTEVfT1BUSU9OUywgTk9ERV9SRUdJT05fQ09ORklHX09QVElPTlMsIE5PREVfVVNFX0RVQUxTVEFDS19FTkRQT0lOVF9DT05GSUdfT1BUSU9OUywgTk9ERV9VU0VfRklQU19FTkRQT0lOVF9DT05GSUdfT1BUSU9OUywgfSBmcm9tIFwiQHNtaXRoeS9jb25maWctcmVzb2x2ZXJcIjtcbmltcG9ydCB7IEhhc2ggfSBmcm9tIFwiQHNtaXRoeS9oYXNoLW5vZGVcIjtcbmltcG9ydCB7IE5PREVfTUFYX0FUVEVNUFRfQ09ORklHX09QVElPTlMsIE5PREVfUkVUUllfTU9ERV9DT05GSUdfT1BUSU9OUyB9IGZyb20gXCJAc21pdGh5L21pZGRsZXdhcmUtcmV0cnlcIjtcbmltcG9ydCB7IGxvYWRDb25maWcgYXMgbG9hZE5vZGVDb25maWcgfSBmcm9tIFwiQHNtaXRoeS9ub2RlLWNvbmZpZy1wcm92aWRlclwiO1xuaW1wb3J0IHsgTm9kZUh0dHBIYW5kbGVyIGFzIFJlcXVlc3RIYW5kbGVyLCBzdHJlYW1Db2xsZWN0b3IgfSBmcm9tIFwiQHNtaXRoeS9ub2RlLWh0dHAtaGFuZGxlclwiO1xuaW1wb3J0IHsgZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbiwgbG9hZENvbmZpZ3NGb3JEZWZhdWx0TW9kZSB9IGZyb20gXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjtcbmltcG9ydCB7IGNhbGN1bGF0ZUJvZHlMZW5ndGggfSBmcm9tIFwiQHNtaXRoeS91dGlsLWJvZHktbGVuZ3RoLW5vZGVcIjtcbmltcG9ydCB7IHJlc29sdmVEZWZhdWx0c01vZGVDb25maWcgfSBmcm9tIFwiQHNtaXRoeS91dGlsLWRlZmF1bHRzLW1vZGUtbm9kZVwiO1xuaW1wb3J0IHsgREVGQVVMVF9SRVRSWV9NT0RFIH0gZnJvbSBcIkBzbWl0aHkvdXRpbC1yZXRyeVwiO1xuaW1wb3J0IHsgZ2V0UnVudGltZUNvbmZpZyBhcyBnZXRTaGFyZWRSdW50aW1lQ29uZmlnIH0gZnJvbSBcIi4vcnVudGltZUNvbmZpZy5zaGFyZWRcIjtcbmV4cG9ydCBjb25zdCBnZXRSdW50aW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIGVtaXRXYXJuaW5nSWZVbnN1cHBvcnRlZFZlcnNpb24ocHJvY2Vzcy52ZXJzaW9uKTtcbiAgICBjb25zdCBkZWZhdWx0c01vZGUgPSByZXNvbHZlRGVmYXVsdHNNb2RlQ29uZmlnKGNvbmZpZyk7XG4gICAgY29uc3QgZGVmYXVsdENvbmZpZ1Byb3ZpZGVyID0gKCkgPT4gZGVmYXVsdHNNb2RlKCkudGhlbihsb2FkQ29uZmlnc0ZvckRlZmF1bHRNb2RlKTtcbiAgICBjb25zdCBjbGllbnRTaGFyZWRWYWx1ZXMgPSBnZXRTaGFyZWRSdW50aW1lQ29uZmlnKGNvbmZpZyk7XG4gICAgYXdzQ2hlY2tWZXJzaW9uKHByb2Nlc3MudmVyc2lvbik7XG4gICAgY29uc3QgbG9hZGVyQ29uZmlnID0ge1xuICAgICAgICBwcm9maWxlOiBjb25maWc/LnByb2ZpbGUsXG4gICAgICAgIGxvZ2dlcjogY2xpZW50U2hhcmVkVmFsdWVzLmxvZ2dlcixcbiAgICB9O1xuICAgIHJldHVybiB7XG4gICAgICAgIC4uLmNsaWVudFNoYXJlZFZhbHVlcyxcbiAgICAgICAgLi4uY29uZmlnLFxuICAgICAgICBydW50aW1lOiBcIm5vZGVcIixcbiAgICAgICAgZGVmYXVsdHNNb2RlLFxuICAgICAgICBhdXRoU2NoZW1lUHJlZmVyZW5jZTogY29uZmlnPy5hdXRoU2NoZW1lUHJlZmVyZW5jZSA/PyBsb2FkTm9kZUNvbmZpZyhOT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfT1BUSU9OUywgbG9hZGVyQ29uZmlnKSxcbiAgICAgICAgYm9keUxlbmd0aENoZWNrZXI6IGNvbmZpZz8uYm9keUxlbmd0aENoZWNrZXIgPz8gY2FsY3VsYXRlQm9keUxlbmd0aCxcbiAgICAgICAgZGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyOiBjb25maWc/LmRlZmF1bHRVc2VyQWdlbnRQcm92aWRlciA/P1xuICAgICAgICAgICAgY3JlYXRlRGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyKHsgc2VydmljZUlkOiBjbGllbnRTaGFyZWRWYWx1ZXMuc2VydmljZUlkLCBjbGllbnRWZXJzaW9uOiBwYWNrYWdlSW5mby52ZXJzaW9uIH0pLFxuICAgICAgICBtYXhBdHRlbXB0czogY29uZmlnPy5tYXhBdHRlbXB0cyA/PyBsb2FkTm9kZUNvbmZpZyhOT0RFX01BWF9BVFRFTVBUX0NPTkZJR19PUFRJT05TLCBjb25maWcpLFxuICAgICAgICByZWdpb246IGNvbmZpZz8ucmVnaW9uID8/XG4gICAgICAgICAgICBsb2FkTm9kZUNvbmZpZyhOT0RFX1JFR0lPTl9DT05GSUdfT1BUSU9OUywgeyAuLi5OT0RFX1JFR0lPTl9DT05GSUdfRklMRV9PUFRJT05TLCAuLi5sb2FkZXJDb25maWcgfSksXG4gICAgICAgIHJlcXVlc3RIYW5kbGVyOiBSZXF1ZXN0SGFuZGxlci5jcmVhdGUoY29uZmlnPy5yZXF1ZXN0SGFuZGxlciA/PyBkZWZhdWx0Q29uZmlnUHJvdmlkZXIpLFxuICAgICAgICByZXRyeU1vZGU6IGNvbmZpZz8ucmV0cnlNb2RlID8/XG4gICAgICAgICAgICBsb2FkTm9kZUNvbmZpZyh7XG4gICAgICAgICAgICAgICAgLi4uTk9ERV9SRVRSWV9NT0RFX0NPTkZJR19PUFRJT05TLFxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IGFzeW5jICgpID0+IChhd2FpdCBkZWZhdWx0Q29uZmlnUHJvdmlkZXIoKSkucmV0cnlNb2RlIHx8IERFRkFVTFRfUkVUUllfTU9ERSxcbiAgICAgICAgICAgIH0sIGNvbmZpZyksXG4gICAgICAgIHNoYTI1NjogY29uZmlnPy5zaGEyNTYgPz8gSGFzaC5iaW5kKG51bGwsIFwic2hhMjU2XCIpLFxuICAgICAgICBzdHJlYW1Db2xsZWN0b3I6IGNvbmZpZz8uc3RyZWFtQ29sbGVjdG9yID8/IHN0cmVhbUNvbGxlY3RvcixcbiAgICAgICAgdXNlRHVhbHN0YWNrRW5kcG9pbnQ6IGNvbmZpZz8udXNlRHVhbHN0YWNrRW5kcG9pbnQgPz8gbG9hZE5vZGVDb25maWcoTk9ERV9VU0VfRFVBTFNUQUNLX0VORFBPSU5UX0NPTkZJR19PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgICAgICB1c2VGaXBzRW5kcG9pbnQ6IGNvbmZpZz8udXNlRmlwc0VuZHBvaW50ID8/IGxvYWROb2RlQ29uZmlnKE5PREVfVVNFX0ZJUFNfRU5EUE9JTlRfQ09ORklHX09QVElPTlMsIGxvYWRlckNvbmZpZyksXG4gICAgICAgIHVzZXJBZ2VudEFwcElkOiBjb25maWc/LnVzZXJBZ2VudEFwcElkID8/IGxvYWROb2RlQ29uZmlnKE5PREVfQVBQX0lEX0NPTkZJR19PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgIH07XG59O1xuIiwgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy53YXJuaW5nID0gdm9pZCAwO1xuZXhwb3J0cy5zdHNSZWdpb25EZWZhdWx0UmVzb2x2ZXIgPSBzdHNSZWdpb25EZWZhdWx0UmVzb2x2ZXI7XG5jb25zdCBjb25maWdfcmVzb2x2ZXJfMSA9IHJlcXVpcmUoXCJAc21pdGh5L2NvbmZpZy1yZXNvbHZlclwiKTtcbmNvbnN0IG5vZGVfY29uZmlnX3Byb3ZpZGVyXzEgPSByZXF1aXJlKFwiQHNtaXRoeS9ub2RlLWNvbmZpZy1wcm92aWRlclwiKTtcbmZ1bmN0aW9uIHN0c1JlZ2lvbkRlZmF1bHRSZXNvbHZlcihsb2FkZXJDb25maWcgPSB7fSkge1xuICAgIHJldHVybiAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKSh7XG4gICAgICAgIC4uLmNvbmZpZ19yZXNvbHZlcl8xLk5PREVfUkVHSU9OX0NPTkZJR19PUFRJT05TLFxuICAgICAgICBhc3luYyBkZWZhdWx0KCkge1xuICAgICAgICAgICAgaWYgKCFleHBvcnRzLndhcm5pbmcuc2lsZW5jZSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihcIkBhd3Mtc2RrIC0gV0FSTiAtIGRlZmF1bHQgU1RTIHJlZ2lvbiBvZiB1cy1lYXN0LTEgdXNlZC4gU2VlIEBhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXJzIFJFQURNRSBhbmQgc2V0IGEgcmVnaW9uIGV4cGxpY2l0bHkuXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIFwidXMtZWFzdC0xXCI7XG4gICAgICAgIH0sXG4gICAgfSwgeyAuLi5jb25maWdfcmVzb2x2ZXJfMS5OT0RFX1JFR0lPTl9DT05GSUdfRklMRV9PUFRJT05TLCAuLi5sb2FkZXJDb25maWcgfSk7XG59XG5leHBvcnRzLndhcm5pbmcgPSB7XG4gICAgc2lsZW5jZTogZmFsc2UsXG59O1xuIiwgIid1c2Ugc3RyaWN0JztcblxudmFyIGNvbmZpZ1Jlc29sdmVyID0gcmVxdWlyZSgnQHNtaXRoeS9jb25maWctcmVzb2x2ZXInKTtcbnZhciBzdHNSZWdpb25EZWZhdWx0UmVzb2x2ZXIgPSByZXF1aXJlKCcuL3JlZ2lvbkNvbmZpZy9zdHNSZWdpb25EZWZhdWx0UmVzb2x2ZXInKTtcblxuY29uc3QgZ2V0QXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiA9IChydW50aW1lQ29uZmlnKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc2V0UmVnaW9uKHJlZ2lvbikge1xuICAgICAgICAgICAgcnVudGltZUNvbmZpZy5yZWdpb24gPSByZWdpb247XG4gICAgICAgIH0sXG4gICAgICAgIHJlZ2lvbigpIHtcbiAgICAgICAgICAgIHJldHVybiBydW50aW1lQ29uZmlnLnJlZ2lvbjtcbiAgICAgICAgfSxcbiAgICB9O1xufTtcbmNvbnN0IHJlc29sdmVBd3NSZWdpb25FeHRlbnNpb25Db25maWd1cmF0aW9uID0gKGF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24pID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgICByZWdpb246IGF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24ucmVnaW9uKCksXG4gICAgfTtcbn07XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIk5PREVfUkVHSU9OX0NPTkZJR19GSUxFX09QVElPTlNcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBjb25maWdSZXNvbHZlci5OT0RFX1JFR0lPTl9DT05GSUdfRklMRV9PUFRJT05TOyB9XG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIk5PREVfUkVHSU9OX0NPTkZJR19PUFRJT05TXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gY29uZmlnUmVzb2x2ZXIuTk9ERV9SRUdJT05fQ09ORklHX09QVElPTlM7IH1cbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiUkVHSU9OX0VOVl9OQU1FXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gY29uZmlnUmVzb2x2ZXIuUkVHSU9OX0VOVl9OQU1FOyB9XG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIlJFR0lPTl9JTklfTkFNRVwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGNvbmZpZ1Jlc29sdmVyLlJFR0lPTl9JTklfTkFNRTsgfVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJyZXNvbHZlUmVnaW9uQ29uZmlnXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gY29uZmlnUmVzb2x2ZXIucmVzb2x2ZVJlZ2lvbkNvbmZpZzsgfVxufSk7XG5leHBvcnRzLmdldEF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24gPSBnZXRBd3NSZWdpb25FeHRlbnNpb25Db25maWd1cmF0aW9uO1xuZXhwb3J0cy5yZXNvbHZlQXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiA9IHJlc29sdmVBd3NSZWdpb25FeHRlbnNpb25Db25maWd1cmF0aW9uO1xuT2JqZWN0LmtleXMoc3RzUmVnaW9uRGVmYXVsdFJlc29sdmVyKS5mb3JFYWNoKGZ1bmN0aW9uIChrKSB7XG4gICAgaWYgKGsgIT09ICdkZWZhdWx0JyAmJiAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGV4cG9ydHMsIGspKSBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgaywge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHN0c1JlZ2lvbkRlZmF1bHRSZXNvbHZlcltrXTsgfVxuICAgIH0pO1xufSk7XG4iLCAiZXhwb3J0IGNvbnN0IGdldEh0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiA9IChydW50aW1lQ29uZmlnKSA9PiB7XG4gICAgY29uc3QgX2h0dHBBdXRoU2NoZW1lcyA9IHJ1bnRpbWVDb25maWcuaHR0cEF1dGhTY2hlbWVzO1xuICAgIGxldCBfaHR0cEF1dGhTY2hlbWVQcm92aWRlciA9IHJ1bnRpbWVDb25maWcuaHR0cEF1dGhTY2hlbWVQcm92aWRlcjtcbiAgICBsZXQgX2NyZWRlbnRpYWxzID0gcnVudGltZUNvbmZpZy5jcmVkZW50aWFscztcbiAgICByZXR1cm4ge1xuICAgICAgICBzZXRIdHRwQXV0aFNjaGVtZShodHRwQXV0aFNjaGVtZSkge1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSBfaHR0cEF1dGhTY2hlbWVzLmZpbmRJbmRleCgoc2NoZW1lKSA9PiBzY2hlbWUuc2NoZW1lSWQgPT09IGh0dHBBdXRoU2NoZW1lLnNjaGVtZUlkKTtcbiAgICAgICAgICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICBfaHR0cEF1dGhTY2hlbWVzLnB1c2goaHR0cEF1dGhTY2hlbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgX2h0dHBBdXRoU2NoZW1lcy5zcGxpY2UoaW5kZXgsIDEsIGh0dHBBdXRoU2NoZW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVzKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9odHRwQXV0aFNjaGVtZXM7XG4gICAgICAgIH0sXG4gICAgICAgIHNldEh0dHBBdXRoU2NoZW1lUHJvdmlkZXIoaHR0cEF1dGhTY2hlbWVQcm92aWRlcikge1xuICAgICAgICAgICAgX2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSBodHRwQXV0aFNjaGVtZVByb3ZpZGVyO1xuICAgICAgICB9LFxuICAgICAgICBodHRwQXV0aFNjaGVtZVByb3ZpZGVyKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9odHRwQXV0aFNjaGVtZVByb3ZpZGVyO1xuICAgICAgICB9LFxuICAgICAgICBzZXRDcmVkZW50aWFscyhjcmVkZW50aWFscykge1xuICAgICAgICAgICAgX2NyZWRlbnRpYWxzID0gY3JlZGVudGlhbHM7XG4gICAgICAgIH0sXG4gICAgICAgIGNyZWRlbnRpYWxzKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9jcmVkZW50aWFscztcbiAgICAgICAgfSxcbiAgICB9O1xufTtcbmV4cG9ydCBjb25zdCByZXNvbHZlSHR0cEF1dGhSdW50aW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIGh0dHBBdXRoU2NoZW1lczogY29uZmlnLmh0dHBBdXRoU2NoZW1lcygpLFxuICAgICAgICBodHRwQXV0aFNjaGVtZVByb3ZpZGVyOiBjb25maWcuaHR0cEF1dGhTY2hlbWVQcm92aWRlcigpLFxuICAgICAgICBjcmVkZW50aWFsczogY29uZmlnLmNyZWRlbnRpYWxzKCksXG4gICAgfTtcbn07XG4iLCAiaW1wb3J0IHsgZ2V0QXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiwgcmVzb2x2ZUF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24sIH0gZnJvbSBcIkBhd3Mtc2RrL3JlZ2lvbi1jb25maWctcmVzb2x2ZXJcIjtcbmltcG9ydCB7IGdldEh0dHBIYW5kbGVyRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiwgcmVzb2x2ZUh0dHBIYW5kbGVyUnVudGltZUNvbmZpZyB9IGZyb20gXCJAc21pdGh5L3Byb3RvY29sLWh0dHBcIjtcbmltcG9ydCB7IGdldERlZmF1bHRFeHRlbnNpb25Db25maWd1cmF0aW9uLCByZXNvbHZlRGVmYXVsdFJ1bnRpbWVDb25maWcgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyBnZXRIdHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24sIHJlc29sdmVIdHRwQXV0aFJ1bnRpbWVDb25maWcgfSBmcm9tIFwiLi9hdXRoL2h0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvblwiO1xuZXhwb3J0IGNvbnN0IHJlc29sdmVSdW50aW1lRXh0ZW5zaW9ucyA9IChydW50aW1lQ29uZmlnLCBleHRlbnNpb25zKSA9PiB7XG4gICAgY29uc3QgZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiA9IE9iamVjdC5hc3NpZ24oZ2V0QXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbihydW50aW1lQ29uZmlnKSwgZ2V0RGVmYXVsdEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24ocnVudGltZUNvbmZpZyksIGdldEh0dHBIYW5kbGVyRXh0ZW5zaW9uQ29uZmlndXJhdGlvbihydW50aW1lQ29uZmlnKSwgZ2V0SHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uKHJ1bnRpbWVDb25maWcpKTtcbiAgICBleHRlbnNpb25zLmZvckVhY2goKGV4dGVuc2lvbikgPT4gZXh0ZW5zaW9uLmNvbmZpZ3VyZShleHRlbnNpb25Db25maWd1cmF0aW9uKSk7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24ocnVudGltZUNvbmZpZywgcmVzb2x2ZUF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24oZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiksIHJlc29sdmVEZWZhdWx0UnVudGltZUNvbmZpZyhleHRlbnNpb25Db25maWd1cmF0aW9uKSwgcmVzb2x2ZUh0dHBIYW5kbGVyUnVudGltZUNvbmZpZyhleHRlbnNpb25Db25maWd1cmF0aW9uKSwgcmVzb2x2ZUh0dHBBdXRoUnVudGltZUNvbmZpZyhleHRlbnNpb25Db25maWd1cmF0aW9uKSk7XG59O1xuIiwgImltcG9ydCB7IGdldEhvc3RIZWFkZXJQbHVnaW4sIHJlc29sdmVIb3N0SGVhZGVyQ29uZmlnLCB9IGZyb20gXCJAYXdzLXNkay9taWRkbGV3YXJlLWhvc3QtaGVhZGVyXCI7XG5pbXBvcnQgeyBnZXRMb2dnZXJQbHVnaW4gfSBmcm9tIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1sb2dnZXJcIjtcbmltcG9ydCB7IGdldFJlY3Vyc2lvbkRldGVjdGlvblBsdWdpbiB9IGZyb20gXCJAYXdzLXNkay9taWRkbGV3YXJlLXJlY3Vyc2lvbi1kZXRlY3Rpb25cIjtcbmltcG9ydCB7IGdldFVzZXJBZ2VudFBsdWdpbiwgcmVzb2x2ZVVzZXJBZ2VudENvbmZpZywgfSBmcm9tIFwiQGF3cy1zZGsvbWlkZGxld2FyZS11c2VyLWFnZW50XCI7XG5pbXBvcnQgeyByZXNvbHZlUmVnaW9uQ29uZmlnIH0gZnJvbSBcIkBzbWl0aHkvY29uZmlnLXJlc29sdmVyXCI7XG5pbXBvcnQgeyBEZWZhdWx0SWRlbnRpdHlQcm92aWRlckNvbmZpZywgZ2V0SHR0cEF1dGhTY2hlbWVFbmRwb2ludFJ1bGVTZXRQbHVnaW4sIGdldEh0dHBTaWduaW5nUGx1Z2luLCB9IGZyb20gXCJAc21pdGh5L2NvcmVcIjtcbmltcG9ydCB7IGdldFNjaGVtYVNlcmRlUGx1Z2luIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IGdldENvbnRlbnRMZW5ndGhQbHVnaW4gfSBmcm9tIFwiQHNtaXRoeS9taWRkbGV3YXJlLWNvbnRlbnQtbGVuZ3RoXCI7XG5pbXBvcnQgeyByZXNvbHZlRW5kcG9pbnRDb25maWcsIH0gZnJvbSBcIkBzbWl0aHkvbWlkZGxld2FyZS1lbmRwb2ludFwiO1xuaW1wb3J0IHsgZ2V0UmV0cnlQbHVnaW4sIHJlc29sdmVSZXRyeUNvbmZpZywgfSBmcm9tIFwiQHNtaXRoeS9taWRkbGV3YXJlLXJldHJ5XCI7XG5pbXBvcnQgeyBDbGllbnQgYXMgX19DbGllbnQsIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgZGVmYXVsdFNTT09JRENIdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlciwgcmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnLCB9IGZyb20gXCIuL2F1dGgvaHR0cEF1dGhTY2hlbWVQcm92aWRlclwiO1xuaW1wb3J0IHsgcmVzb2x2ZUNsaWVudEVuZHBvaW50UGFyYW1ldGVycywgfSBmcm9tIFwiLi9lbmRwb2ludC9FbmRwb2ludFBhcmFtZXRlcnNcIjtcbmltcG9ydCB7IGdldFJ1bnRpbWVDb25maWcgYXMgX19nZXRSdW50aW1lQ29uZmlnIH0gZnJvbSBcIi4vcnVudGltZUNvbmZpZ1wiO1xuaW1wb3J0IHsgcmVzb2x2ZVJ1bnRpbWVFeHRlbnNpb25zIH0gZnJvbSBcIi4vcnVudGltZUV4dGVuc2lvbnNcIjtcbmV4cG9ydCB7IF9fQ2xpZW50IH07XG5leHBvcnQgY2xhc3MgU1NPT0lEQ0NsaWVudCBleHRlbmRzIF9fQ2xpZW50IHtcbiAgICBjb25maWc7XG4gICAgY29uc3RydWN0b3IoLi4uW2NvbmZpZ3VyYXRpb25dKSB7XG4gICAgICAgIGNvbnN0IF9jb25maWdfMCA9IF9fZ2V0UnVudGltZUNvbmZpZyhjb25maWd1cmF0aW9uIHx8IHt9KTtcbiAgICAgICAgc3VwZXIoX2NvbmZpZ18wKTtcbiAgICAgICAgdGhpcy5pbml0Q29uZmlnID0gX2NvbmZpZ18wO1xuICAgICAgICBjb25zdCBfY29uZmlnXzEgPSByZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzKF9jb25maWdfMCk7XG4gICAgICAgIGNvbnN0IF9jb25maWdfMiA9IHJlc29sdmVVc2VyQWdlbnRDb25maWcoX2NvbmZpZ18xKTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ18zID0gcmVzb2x2ZVJldHJ5Q29uZmlnKF9jb25maWdfMik7XG4gICAgICAgIGNvbnN0IF9jb25maWdfNCA9IHJlc29sdmVSZWdpb25Db25maWcoX2NvbmZpZ18zKTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ181ID0gcmVzb2x2ZUhvc3RIZWFkZXJDb25maWcoX2NvbmZpZ180KTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ182ID0gcmVzb2x2ZUVuZHBvaW50Q29uZmlnKF9jb25maWdfNSk7XG4gICAgICAgIGNvbnN0IF9jb25maWdfNyA9IHJlc29sdmVIdHRwQXV0aFNjaGVtZUNvbmZpZyhfY29uZmlnXzYpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzggPSByZXNvbHZlUnVudGltZUV4dGVuc2lvbnMoX2NvbmZpZ183LCBjb25maWd1cmF0aW9uPy5leHRlbnNpb25zIHx8IFtdKTtcbiAgICAgICAgdGhpcy5jb25maWcgPSBfY29uZmlnXzg7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShnZXRTY2hlbWFTZXJkZVBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoZ2V0VXNlckFnZW50UGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShnZXRSZXRyeVBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoZ2V0Q29udGVudExlbmd0aFBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoZ2V0SG9zdEhlYWRlclBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoZ2V0TG9nZ2VyUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShnZXRSZWN1cnNpb25EZXRlY3Rpb25QbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGdldEh0dHBBdXRoU2NoZW1lRW5kcG9pbnRSdWxlU2V0UGx1Z2luKHRoaXMuY29uZmlnLCB7XG4gICAgICAgICAgICBodHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlcjogZGVmYXVsdFNTT09JRENIdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlcixcbiAgICAgICAgICAgIGlkZW50aXR5UHJvdmlkZXJDb25maWdQcm92aWRlcjogYXN5bmMgKGNvbmZpZykgPT4gbmV3IERlZmF1bHRJZGVudGl0eVByb3ZpZGVyQ29uZmlnKHtcbiAgICAgICAgICAgICAgICBcImF3cy5hdXRoI3NpZ3Y0XCI6IGNvbmZpZy5jcmVkZW50aWFscyxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICB9KSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShnZXRIdHRwU2lnbmluZ1BsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgIH1cbiAgICBkZXN0cm95KCkge1xuICAgICAgICBzdXBlci5kZXN0cm95KCk7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IFNlcnZpY2VFeGNlcHRpb24gYXMgX19TZXJ2aWNlRXhjZXB0aW9uLCB9IGZyb20gXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjtcbmV4cG9ydCB7IF9fU2VydmljZUV4Y2VwdGlvbiB9O1xuZXhwb3J0IGNsYXNzIFNTT09JRENTZXJ2aWNlRXhjZXB0aW9uIGV4dGVuZHMgX19TZXJ2aWNlRXhjZXB0aW9uIHtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgU1NPT0lEQ1NlcnZpY2VFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgU1NPT0lEQ1NlcnZpY2VFeGNlcHRpb24gYXMgX19CYXNlRXhjZXB0aW9uIH0gZnJvbSBcIi4vU1NPT0lEQ1NlcnZpY2VFeGNlcHRpb25cIjtcbmV4cG9ydCBjbGFzcyBBY2Nlc3NEZW5pZWRFeGNlcHRpb24gZXh0ZW5kcyBfX0Jhc2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIkFjY2Vzc0RlbmllZEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgZXJyb3I7XG4gICAgcmVhc29uO1xuICAgIGVycm9yX2Rlc2NyaXB0aW9uO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJBY2Nlc3NEZW5pZWRFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgQWNjZXNzRGVuaWVkRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuZXJyb3IgPSBvcHRzLmVycm9yO1xuICAgICAgICB0aGlzLnJlYXNvbiA9IG9wdHMucmVhc29uO1xuICAgICAgICB0aGlzLmVycm9yX2Rlc2NyaXB0aW9uID0gb3B0cy5lcnJvcl9kZXNjcmlwdGlvbjtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgQXV0aG9yaXphdGlvblBlbmRpbmdFeGNlcHRpb24gZXh0ZW5kcyBfX0Jhc2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIkF1dGhvcml6YXRpb25QZW5kaW5nRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBlcnJvcjtcbiAgICBlcnJvcl9kZXNjcmlwdGlvbjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiQXV0aG9yaXphdGlvblBlbmRpbmdFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgQXV0aG9yaXphdGlvblBlbmRpbmdFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5lcnJvciA9IG9wdHMuZXJyb3I7XG4gICAgICAgIHRoaXMuZXJyb3JfZGVzY3JpcHRpb24gPSBvcHRzLmVycm9yX2Rlc2NyaXB0aW9uO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBFeHBpcmVkVG9rZW5FeGNlcHRpb24gZXh0ZW5kcyBfX0Jhc2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIkV4cGlyZWRUb2tlbkV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgZXJyb3I7XG4gICAgZXJyb3JfZGVzY3JpcHRpb247XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkV4cGlyZWRUb2tlbkV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBFeHBpcmVkVG9rZW5FeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5lcnJvciA9IG9wdHMuZXJyb3I7XG4gICAgICAgIHRoaXMuZXJyb3JfZGVzY3JpcHRpb24gPSBvcHRzLmVycm9yX2Rlc2NyaXB0aW9uO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBJbnRlcm5hbFNlcnZlckV4Y2VwdGlvbiBleHRlbmRzIF9fQmFzZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcInNlcnZlclwiO1xuICAgIGVycm9yO1xuICAgIGVycm9yX2Rlc2NyaXB0aW9uO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJJbnRlcm5hbFNlcnZlckV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcInNlcnZlclwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBJbnRlcm5hbFNlcnZlckV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLmVycm9yID0gb3B0cy5lcnJvcjtcbiAgICAgICAgdGhpcy5lcnJvcl9kZXNjcmlwdGlvbiA9IG9wdHMuZXJyb3JfZGVzY3JpcHRpb247XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIEludmFsaWRDbGllbnRFeGNlcHRpb24gZXh0ZW5kcyBfX0Jhc2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIkludmFsaWRDbGllbnRFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGVycm9yO1xuICAgIGVycm9yX2Rlc2NyaXB0aW9uO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJJbnZhbGlkQ2xpZW50RXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEludmFsaWRDbGllbnRFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5lcnJvciA9IG9wdHMuZXJyb3I7XG4gICAgICAgIHRoaXMuZXJyb3JfZGVzY3JpcHRpb24gPSBvcHRzLmVycm9yX2Rlc2NyaXB0aW9uO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBJbnZhbGlkR3JhbnRFeGNlcHRpb24gZXh0ZW5kcyBfX0Jhc2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIkludmFsaWRHcmFudEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgZXJyb3I7XG4gICAgZXJyb3JfZGVzY3JpcHRpb247XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkludmFsaWRHcmFudEV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBJbnZhbGlkR3JhbnRFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5lcnJvciA9IG9wdHMuZXJyb3I7XG4gICAgICAgIHRoaXMuZXJyb3JfZGVzY3JpcHRpb24gPSBvcHRzLmVycm9yX2Rlc2NyaXB0aW9uO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBJbnZhbGlkUmVxdWVzdEV4Y2VwdGlvbiBleHRlbmRzIF9fQmFzZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiSW52YWxpZFJlcXVlc3RFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGVycm9yO1xuICAgIHJlYXNvbjtcbiAgICBlcnJvcl9kZXNjcmlwdGlvbjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiSW52YWxpZFJlcXVlc3RFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgSW52YWxpZFJlcXVlc3RFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5lcnJvciA9IG9wdHMuZXJyb3I7XG4gICAgICAgIHRoaXMucmVhc29uID0gb3B0cy5yZWFzb247XG4gICAgICAgIHRoaXMuZXJyb3JfZGVzY3JpcHRpb24gPSBvcHRzLmVycm9yX2Rlc2NyaXB0aW9uO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBJbnZhbGlkU2NvcGVFeGNlcHRpb24gZXh0ZW5kcyBfX0Jhc2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIkludmFsaWRTY29wZUV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgZXJyb3I7XG4gICAgZXJyb3JfZGVzY3JpcHRpb247XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkludmFsaWRTY29wZUV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBJbnZhbGlkU2NvcGVFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5lcnJvciA9IG9wdHMuZXJyb3I7XG4gICAgICAgIHRoaXMuZXJyb3JfZGVzY3JpcHRpb24gPSBvcHRzLmVycm9yX2Rlc2NyaXB0aW9uO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBTbG93RG93bkV4Y2VwdGlvbiBleHRlbmRzIF9fQmFzZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiU2xvd0Rvd25FeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGVycm9yO1xuICAgIGVycm9yX2Rlc2NyaXB0aW9uO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJTbG93RG93bkV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBTbG93RG93bkV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLmVycm9yID0gb3B0cy5lcnJvcjtcbiAgICAgICAgdGhpcy5lcnJvcl9kZXNjcmlwdGlvbiA9IG9wdHMuZXJyb3JfZGVzY3JpcHRpb247XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIFVuYXV0aG9yaXplZENsaWVudEV4Y2VwdGlvbiBleHRlbmRzIF9fQmFzZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiVW5hdXRob3JpemVkQ2xpZW50RXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBlcnJvcjtcbiAgICBlcnJvcl9kZXNjcmlwdGlvbjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiVW5hdXRob3JpemVkQ2xpZW50RXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFVuYXV0aG9yaXplZENsaWVudEV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLmVycm9yID0gb3B0cy5lcnJvcjtcbiAgICAgICAgdGhpcy5lcnJvcl9kZXNjcmlwdGlvbiA9IG9wdHMuZXJyb3JfZGVzY3JpcHRpb247XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIFVuc3VwcG9ydGVkR3JhbnRUeXBlRXhjZXB0aW9uIGV4dGVuZHMgX19CYXNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJVbnN1cHBvcnRlZEdyYW50VHlwZUV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgZXJyb3I7XG4gICAgZXJyb3JfZGVzY3JpcHRpb247XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIlVuc3VwcG9ydGVkR3JhbnRUeXBlRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFVuc3VwcG9ydGVkR3JhbnRUeXBlRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuZXJyb3IgPSBvcHRzLmVycm9yO1xuICAgICAgICB0aGlzLmVycm9yX2Rlc2NyaXB0aW9uID0gb3B0cy5lcnJvcl9kZXNjcmlwdGlvbjtcbiAgICB9XG59XG4iLCAiY29uc3QgX0FERSA9IFwiQWNjZXNzRGVuaWVkRXhjZXB0aW9uXCI7XG5jb25zdCBfQVBFID0gXCJBdXRob3JpemF0aW9uUGVuZGluZ0V4Y2VwdGlvblwiO1xuY29uc3QgX0FUID0gXCJBY2Nlc3NUb2tlblwiO1xuY29uc3QgX0NTID0gXCJDbGllbnRTZWNyZXRcIjtcbmNvbnN0IF9DVCA9IFwiQ3JlYXRlVG9rZW5cIjtcbmNvbnN0IF9DVFIgPSBcIkNyZWF0ZVRva2VuUmVxdWVzdFwiO1xuY29uc3QgX0NUUnIgPSBcIkNyZWF0ZVRva2VuUmVzcG9uc2VcIjtcbmNvbnN0IF9DViA9IFwiQ29kZVZlcmlmaWVyXCI7XG5jb25zdCBfRVRFID0gXCJFeHBpcmVkVG9rZW5FeGNlcHRpb25cIjtcbmNvbnN0IF9JQ0UgPSBcIkludmFsaWRDbGllbnRFeGNlcHRpb25cIjtcbmNvbnN0IF9JR0UgPSBcIkludmFsaWRHcmFudEV4Y2VwdGlvblwiO1xuY29uc3QgX0lSRSA9IFwiSW52YWxpZFJlcXVlc3RFeGNlcHRpb25cIjtcbmNvbnN0IF9JU0UgPSBcIkludGVybmFsU2VydmVyRXhjZXB0aW9uXCI7XG5jb25zdCBfSVNFbiA9IFwiSW52YWxpZFNjb3BlRXhjZXB0aW9uXCI7XG5jb25zdCBfSVQgPSBcIklkVG9rZW5cIjtcbmNvbnN0IF9SVCA9IFwiUmVmcmVzaFRva2VuXCI7XG5jb25zdCBfU0RFID0gXCJTbG93RG93bkV4Y2VwdGlvblwiO1xuY29uc3QgX1VDRSA9IFwiVW5hdXRob3JpemVkQ2xpZW50RXhjZXB0aW9uXCI7XG5jb25zdCBfVUdURSA9IFwiVW5zdXBwb3J0ZWRHcmFudFR5cGVFeGNlcHRpb25cIjtcbmNvbnN0IF9hVCA9IFwiYWNjZXNzVG9rZW5cIjtcbmNvbnN0IF9jID0gXCJjbGllbnRcIjtcbmNvbnN0IF9jSSA9IFwiY2xpZW50SWRcIjtcbmNvbnN0IF9jUyA9IFwiY2xpZW50U2VjcmV0XCI7XG5jb25zdCBfY1YgPSBcImNvZGVWZXJpZmllclwiO1xuY29uc3QgX2NvID0gXCJjb2RlXCI7XG5jb25zdCBfZEMgPSBcImRldmljZUNvZGVcIjtcbmNvbnN0IF9lID0gXCJlcnJvclwiO1xuY29uc3QgX2VJID0gXCJleHBpcmVzSW5cIjtcbmNvbnN0IF9lZCA9IFwiZXJyb3JfZGVzY3JpcHRpb25cIjtcbmNvbnN0IF9nVCA9IFwiZ3JhbnRUeXBlXCI7XG5jb25zdCBfaCA9IFwiaHR0cFwiO1xuY29uc3QgX2hFID0gXCJodHRwRXJyb3JcIjtcbmNvbnN0IF9pVCA9IFwiaWRUb2tlblwiO1xuY29uc3QgX3IgPSBcInJlYXNvblwiO1xuY29uc3QgX3JUID0gXCJyZWZyZXNoVG9rZW5cIjtcbmNvbnN0IF9yVSA9IFwicmVkaXJlY3RVcmlcIjtcbmNvbnN0IF9zID0gXCJzY29wZVwiO1xuY29uc3QgX3NlID0gXCJzZXJ2ZXJcIjtcbmNvbnN0IF9zbSA9IFwic21pdGh5LnRzLnNkay5zeW50aGV0aWMuY29tLmFtYXpvbmF3cy5zc29vaWRjXCI7XG5jb25zdCBfdFQgPSBcInRva2VuVHlwZVwiO1xuY29uc3QgbjAgPSBcImNvbS5hbWF6b25hd3Muc3Nvb2lkY1wiO1xuaW1wb3J0IHsgVHlwZVJlZ2lzdHJ5IH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IEFjY2Vzc0RlbmllZEV4Y2VwdGlvbiBhcyBfX0FjY2Vzc0RlbmllZEV4Y2VwdGlvbiwgQXV0aG9yaXphdGlvblBlbmRpbmdFeGNlcHRpb24gYXMgX19BdXRob3JpemF0aW9uUGVuZGluZ0V4Y2VwdGlvbiwgRXhwaXJlZFRva2VuRXhjZXB0aW9uIGFzIF9fRXhwaXJlZFRva2VuRXhjZXB0aW9uLCBJbnRlcm5hbFNlcnZlckV4Y2VwdGlvbiBhcyBfX0ludGVybmFsU2VydmVyRXhjZXB0aW9uLCBJbnZhbGlkQ2xpZW50RXhjZXB0aW9uIGFzIF9fSW52YWxpZENsaWVudEV4Y2VwdGlvbiwgSW52YWxpZEdyYW50RXhjZXB0aW9uIGFzIF9fSW52YWxpZEdyYW50RXhjZXB0aW9uLCBJbnZhbGlkUmVxdWVzdEV4Y2VwdGlvbiBhcyBfX0ludmFsaWRSZXF1ZXN0RXhjZXB0aW9uLCBJbnZhbGlkU2NvcGVFeGNlcHRpb24gYXMgX19JbnZhbGlkU2NvcGVFeGNlcHRpb24sIFNsb3dEb3duRXhjZXB0aW9uIGFzIF9fU2xvd0Rvd25FeGNlcHRpb24sIFVuYXV0aG9yaXplZENsaWVudEV4Y2VwdGlvbiBhcyBfX1VuYXV0aG9yaXplZENsaWVudEV4Y2VwdGlvbiwgVW5zdXBwb3J0ZWRHcmFudFR5cGVFeGNlcHRpb24gYXMgX19VbnN1cHBvcnRlZEdyYW50VHlwZUV4Y2VwdGlvbiwgfSBmcm9tIFwiLi4vbW9kZWxzL2Vycm9yc1wiO1xuaW1wb3J0IHsgU1NPT0lEQ1NlcnZpY2VFeGNlcHRpb24gYXMgX19TU09PSURDU2VydmljZUV4Y2VwdGlvbiB9IGZyb20gXCIuLi9tb2RlbHMvU1NPT0lEQ1NlcnZpY2VFeGNlcHRpb25cIjtcbmV4cG9ydCB2YXIgQWNjZXNzVG9rZW4gPSBbMCwgbjAsIF9BVCwgOCwgMF07XG5leHBvcnQgdmFyIENsaWVudFNlY3JldCA9IFswLCBuMCwgX0NTLCA4LCAwXTtcbmV4cG9ydCB2YXIgQ29kZVZlcmlmaWVyID0gWzAsIG4wLCBfQ1YsIDgsIDBdO1xuZXhwb3J0IHZhciBJZFRva2VuID0gWzAsIG4wLCBfSVQsIDgsIDBdO1xuZXhwb3J0IHZhciBSZWZyZXNoVG9rZW4gPSBbMCwgbjAsIF9SVCwgOCwgMF07XG5leHBvcnQgdmFyIEFjY2Vzc0RlbmllZEV4Y2VwdGlvbiA9IFtcbiAgICAtMyxcbiAgICBuMCxcbiAgICBfQURFLFxuICAgIHsgW19lXTogX2MsIFtfaEVdOiA0MDAgfSxcbiAgICBbX2UsIF9yLCBfZWRdLFxuICAgIFswLCAwLCAwXSxcbl07XG5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKEFjY2Vzc0RlbmllZEV4Y2VwdGlvbiwgX19BY2Nlc3NEZW5pZWRFeGNlcHRpb24pO1xuZXhwb3J0IHZhciBBdXRob3JpemF0aW9uUGVuZGluZ0V4Y2VwdGlvbiA9IFtcbiAgICAtMyxcbiAgICBuMCxcbiAgICBfQVBFLFxuICAgIHsgW19lXTogX2MsIFtfaEVdOiA0MDAgfSxcbiAgICBbX2UsIF9lZF0sXG4gICAgWzAsIDBdLFxuXTtcblR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoQXV0aG9yaXphdGlvblBlbmRpbmdFeGNlcHRpb24sIF9fQXV0aG9yaXphdGlvblBlbmRpbmdFeGNlcHRpb24pO1xuZXhwb3J0IHZhciBDcmVhdGVUb2tlblJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfQ1RSLFxuICAgIDAsXG4gICAgW19jSSwgX2NTLCBfZ1QsIF9kQywgX2NvLCBfclQsIF9zLCBfclUsIF9jVl0sXG4gICAgWzAsIFsoKSA9PiBDbGllbnRTZWNyZXQsIDBdLCAwLCAwLCAwLCBbKCkgPT4gUmVmcmVzaFRva2VuLCAwXSwgNjQgfCAwLCAwLCBbKCkgPT4gQ29kZVZlcmlmaWVyLCAwXV0sXG5dO1xuZXhwb3J0IHZhciBDcmVhdGVUb2tlblJlc3BvbnNlID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0NUUnIsXG4gICAgMCxcbiAgICBbX2FULCBfdFQsIF9lSSwgX3JULCBfaVRdLFxuICAgIFtbKCkgPT4gQWNjZXNzVG9rZW4sIDBdLCAwLCAxLCBbKCkgPT4gUmVmcmVzaFRva2VuLCAwXSwgWygpID0+IElkVG9rZW4sIDBdXSxcbl07XG5leHBvcnQgdmFyIEV4cGlyZWRUb2tlbkV4Y2VwdGlvbiA9IFstMywgbjAsIF9FVEUsIHsgW19lXTogX2MsIFtfaEVdOiA0MDAgfSwgW19lLCBfZWRdLCBbMCwgMF1dO1xuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihFeHBpcmVkVG9rZW5FeGNlcHRpb24sIF9fRXhwaXJlZFRva2VuRXhjZXB0aW9uKTtcbmV4cG9ydCB2YXIgSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb24gPSBbLTMsIG4wLCBfSVNFLCB7IFtfZV06IF9zZSwgW19oRV06IDUwMCB9LCBbX2UsIF9lZF0sIFswLCAwXV07XG5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKEludGVybmFsU2VydmVyRXhjZXB0aW9uLCBfX0ludGVybmFsU2VydmVyRXhjZXB0aW9uKTtcbmV4cG9ydCB2YXIgSW52YWxpZENsaWVudEV4Y2VwdGlvbiA9IFstMywgbjAsIF9JQ0UsIHsgW19lXTogX2MsIFtfaEVdOiA0MDEgfSwgW19lLCBfZWRdLCBbMCwgMF1dO1xuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihJbnZhbGlkQ2xpZW50RXhjZXB0aW9uLCBfX0ludmFsaWRDbGllbnRFeGNlcHRpb24pO1xuZXhwb3J0IHZhciBJbnZhbGlkR3JhbnRFeGNlcHRpb24gPSBbLTMsIG4wLCBfSUdFLCB7IFtfZV06IF9jLCBbX2hFXTogNDAwIH0sIFtfZSwgX2VkXSwgWzAsIDBdXTtcblR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoSW52YWxpZEdyYW50RXhjZXB0aW9uLCBfX0ludmFsaWRHcmFudEV4Y2VwdGlvbik7XG5leHBvcnQgdmFyIEludmFsaWRSZXF1ZXN0RXhjZXB0aW9uID0gW1xuICAgIC0zLFxuICAgIG4wLFxuICAgIF9JUkUsXG4gICAgeyBbX2VdOiBfYywgW19oRV06IDQwMCB9LFxuICAgIFtfZSwgX3IsIF9lZF0sXG4gICAgWzAsIDAsIDBdLFxuXTtcblR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoSW52YWxpZFJlcXVlc3RFeGNlcHRpb24sIF9fSW52YWxpZFJlcXVlc3RFeGNlcHRpb24pO1xuZXhwb3J0IHZhciBJbnZhbGlkU2NvcGVFeGNlcHRpb24gPSBbLTMsIG4wLCBfSVNFbiwgeyBbX2VdOiBfYywgW19oRV06IDQwMCB9LCBbX2UsIF9lZF0sIFswLCAwXV07XG5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKEludmFsaWRTY29wZUV4Y2VwdGlvbiwgX19JbnZhbGlkU2NvcGVFeGNlcHRpb24pO1xuZXhwb3J0IHZhciBTbG93RG93bkV4Y2VwdGlvbiA9IFstMywgbjAsIF9TREUsIHsgW19lXTogX2MsIFtfaEVdOiA0MDAgfSwgW19lLCBfZWRdLCBbMCwgMF1dO1xuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihTbG93RG93bkV4Y2VwdGlvbiwgX19TbG93RG93bkV4Y2VwdGlvbik7XG5leHBvcnQgdmFyIFVuYXV0aG9yaXplZENsaWVudEV4Y2VwdGlvbiA9IFstMywgbjAsIF9VQ0UsIHsgW19lXTogX2MsIFtfaEVdOiA0MDAgfSwgW19lLCBfZWRdLCBbMCwgMF1dO1xuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihVbmF1dGhvcml6ZWRDbGllbnRFeGNlcHRpb24sIF9fVW5hdXRob3JpemVkQ2xpZW50RXhjZXB0aW9uKTtcbmV4cG9ydCB2YXIgVW5zdXBwb3J0ZWRHcmFudFR5cGVFeGNlcHRpb24gPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX1VHVEUsXG4gICAgeyBbX2VdOiBfYywgW19oRV06IDQwMCB9LFxuICAgIFtfZSwgX2VkXSxcbiAgICBbMCwgMF0sXG5dO1xuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihVbnN1cHBvcnRlZEdyYW50VHlwZUV4Y2VwdGlvbiwgX19VbnN1cHBvcnRlZEdyYW50VHlwZUV4Y2VwdGlvbik7XG5leHBvcnQgdmFyIFNTT09JRENTZXJ2aWNlRXhjZXB0aW9uID0gWy0zLCBfc20sIFwiU1NPT0lEQ1NlcnZpY2VFeGNlcHRpb25cIiwgMCwgW10sIFtdXTtcblR5cGVSZWdpc3RyeS5mb3IoX3NtKS5yZWdpc3RlckVycm9yKFNTT09JRENTZXJ2aWNlRXhjZXB0aW9uLCBfX1NTT09JRENTZXJ2aWNlRXhjZXB0aW9uKTtcbmV4cG9ydCB2YXIgU2NvcGVzID0gNjQgfCAwO1xuZXhwb3J0IHZhciBDcmVhdGVUb2tlbiA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9DVCxcbiAgICB7IFtfaF06IFtcIlBPU1RcIiwgXCIvdG9rZW5cIiwgMjAwXSB9LFxuICAgICgpID0+IENyZWF0ZVRva2VuUmVxdWVzdCxcbiAgICAoKSA9PiBDcmVhdGVUb2tlblJlc3BvbnNlLFxuXTtcbiIsICJpbXBvcnQgeyBnZXRFbmRwb2ludFBsdWdpbiB9IGZyb20gXCJAc21pdGh5L21pZGRsZXdhcmUtZW5kcG9pbnRcIjtcbmltcG9ydCB7IENvbW1hbmQgYXMgJENvbW1hbmQgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyBjb21tb25QYXJhbXMgfSBmcm9tIFwiLi4vZW5kcG9pbnQvRW5kcG9pbnRQYXJhbWV0ZXJzXCI7XG5pbXBvcnQgeyBDcmVhdGVUb2tlbiB9IGZyb20gXCIuLi9zY2hlbWFzL3NjaGVtYXNfMFwiO1xuZXhwb3J0IHsgJENvbW1hbmQgfTtcbmV4cG9ydCBjbGFzcyBDcmVhdGVUb2tlbkNvbW1hbmQgZXh0ZW5kcyAkQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW2dldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTU1NPT0lEQ1NlcnZpY2VcIiwgXCJDcmVhdGVUb2tlblwiLCB7fSlcbiAgICAubihcIlNTT09JRENDbGllbnRcIiwgXCJDcmVhdGVUb2tlbkNvbW1hbmRcIilcbiAgICAuc2MoQ3JlYXRlVG9rZW4pXG4gICAgLmJ1aWxkKCkge1xufVxuIiwgImltcG9ydCB7IGNyZWF0ZUFnZ3JlZ2F0ZWRDbGllbnQgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyBDcmVhdGVUb2tlbkNvbW1hbmQgfSBmcm9tIFwiLi9jb21tYW5kcy9DcmVhdGVUb2tlbkNvbW1hbmRcIjtcbmltcG9ydCB7IFNTT09JRENDbGllbnQgfSBmcm9tIFwiLi9TU09PSURDQ2xpZW50XCI7XG5jb25zdCBjb21tYW5kcyA9IHtcbiAgICBDcmVhdGVUb2tlbkNvbW1hbmQsXG59O1xuZXhwb3J0IGNsYXNzIFNTT09JREMgZXh0ZW5kcyBTU09PSURDQ2xpZW50IHtcbn1cbmNyZWF0ZUFnZ3JlZ2F0ZWRDbGllbnQoY29tbWFuZHMsIFNTT09JREMpO1xuIiwgImV4cG9ydCAqIGZyb20gXCIuL0NyZWF0ZVRva2VuQ29tbWFuZFwiO1xuIiwgImV4cG9ydCBjb25zdCBBY2Nlc3NEZW5pZWRFeGNlcHRpb25SZWFzb24gPSB7XG4gICAgS01TX0FDQ0VTU19ERU5JRUQ6IFwiS01TX0FjY2Vzc0RlbmllZEV4Y2VwdGlvblwiLFxufTtcbmV4cG9ydCBjb25zdCBJbnZhbGlkUmVxdWVzdEV4Y2VwdGlvblJlYXNvbiA9IHtcbiAgICBLTVNfRElTQUJMRURfS0VZOiBcIktNU19EaXNhYmxlZEV4Y2VwdGlvblwiLFxuICAgIEtNU19JTlZBTElEX0tFWV9VU0FHRTogXCJLTVNfSW52YWxpZEtleVVzYWdlRXhjZXB0aW9uXCIsXG4gICAgS01TX0lOVkFMSURfU1RBVEU6IFwiS01TX0ludmFsaWRTdGF0ZUV4Y2VwdGlvblwiLFxuICAgIEtNU19LRVlfTk9UX0ZPVU5EOiBcIktNU19Ob3RGb3VuZEV4Y2VwdGlvblwiLFxufTtcbiIsICJleHBvcnQgKiBmcm9tIFwiLi9TU09PSURDQ2xpZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9TU09PSURDXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21tYW5kc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWxzL2VudW1zXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9tb2RlbHMvZXJyb3JzXCI7XG5leHBvcnQgeyBTU09PSURDU2VydmljZUV4Y2VwdGlvbiB9IGZyb20gXCIuL21vZGVscy9TU09PSURDU2VydmljZUV4Y2VwdGlvblwiO1xuIiwgIid1c2Ugc3RyaWN0JztcblxudmFyIGNsaWVudCA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL2NvcmUvY2xpZW50Jyk7XG52YXIgaHR0cEF1dGhTY2hlbWVzID0gcmVxdWlyZSgnQGF3cy1zZGsvY29yZS9odHRwQXV0aFNjaGVtZXMnKTtcbnZhciBwcm9wZXJ0eVByb3ZpZGVyID0gcmVxdWlyZSgnQHNtaXRoeS9wcm9wZXJ0eS1wcm92aWRlcicpO1xudmFyIHNoYXJlZEluaUZpbGVMb2FkZXIgPSByZXF1aXJlKCdAc21pdGh5L3NoYXJlZC1pbmktZmlsZS1sb2FkZXInKTtcbnZhciBmcyA9IHJlcXVpcmUoJ2ZzJyk7XG5cbmNvbnN0IGZyb21FbnZTaWduaW5nTmFtZSA9ICh7IGxvZ2dlciwgc2lnbmluZ05hbWUgfSA9IHt9KSA9PiBhc3luYyAoKSA9PiB7XG4gICAgbG9nZ2VyPy5kZWJ1Zz8uKFwiQGF3cy1zZGsvdG9rZW4tcHJvdmlkZXJzIC0gZnJvbUVudlNpZ25pbmdOYW1lXCIpO1xuICAgIGlmICghc2lnbmluZ05hbWUpIHtcbiAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuVG9rZW5Qcm92aWRlckVycm9yKFwiUGxlYXNlIHBhc3MgJ3NpZ25pbmdOYW1lJyB0byBjb21wdXRlIGVudmlyb25tZW50IHZhcmlhYmxlIGtleVwiLCB7IGxvZ2dlciB9KTtcbiAgICB9XG4gICAgY29uc3QgYmVhcmVyVG9rZW5LZXkgPSBodHRwQXV0aFNjaGVtZXMuZ2V0QmVhcmVyVG9rZW5FbnZLZXkoc2lnbmluZ05hbWUpO1xuICAgIGlmICghKGJlYXJlclRva2VuS2V5IGluIHByb2Nlc3MuZW52KSkge1xuICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5Ub2tlblByb3ZpZGVyRXJyb3IoYFRva2VuIG5vdCBwcmVzZW50IGluICcke2JlYXJlclRva2VuS2V5fScgZW52aXJvbm1lbnQgdmFyaWFibGVgLCB7IGxvZ2dlciB9KTtcbiAgICB9XG4gICAgY29uc3QgdG9rZW4gPSB7IHRva2VuOiBwcm9jZXNzLmVudltiZWFyZXJUb2tlbktleV0gfTtcbiAgICBjbGllbnQuc2V0VG9rZW5GZWF0dXJlKHRva2VuLCBcIkJFQVJFUl9TRVJWSUNFX0VOVl9WQVJTXCIsIFwiM1wiKTtcbiAgICByZXR1cm4gdG9rZW47XG59O1xuXG5jb25zdCBFWFBJUkVfV0lORE9XX01TID0gNSAqIDYwICogMTAwMDtcbmNvbnN0IFJFRlJFU0hfTUVTU0FHRSA9IGBUbyByZWZyZXNoIHRoaXMgU1NPIHNlc3Npb24gcnVuICdhd3Mgc3NvIGxvZ2luJyB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIHByb2ZpbGUuYDtcblxuY29uc3QgZ2V0U3NvT2lkY0NsaWVudCA9IGFzeW5jIChzc29SZWdpb24sIGluaXQgPSB7fSwgY2FsbGVyQ2xpZW50Q29uZmlnKSA9PiB7XG4gICAgY29uc3QgeyBTU09PSURDQ2xpZW50IH0gPSBhd2FpdCBpbXBvcnQoJ0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL3Nzby1vaWRjJyk7XG4gICAgY29uc3QgY29hbGVzY2UgPSAocHJvcCkgPT4gaW5pdC5jbGllbnRDb25maWc/Lltwcm9wXSA/PyBpbml0LnBhcmVudENsaWVudENvbmZpZz8uW3Byb3BdID8/IGNhbGxlckNsaWVudENvbmZpZz8uW3Byb3BdO1xuICAgIGNvbnN0IHNzb09pZGNDbGllbnQgPSBuZXcgU1NPT0lEQ0NsaWVudChPYmplY3QuYXNzaWduKHt9LCBpbml0LmNsaWVudENvbmZpZyA/PyB7fSwge1xuICAgICAgICByZWdpb246IHNzb1JlZ2lvbiA/PyBpbml0LmNsaWVudENvbmZpZz8ucmVnaW9uLFxuICAgICAgICBsb2dnZXI6IGNvYWxlc2NlKFwibG9nZ2VyXCIpLFxuICAgICAgICB1c2VyQWdlbnRBcHBJZDogY29hbGVzY2UoXCJ1c2VyQWdlbnRBcHBJZFwiKSxcbiAgICB9KSk7XG4gICAgcmV0dXJuIHNzb09pZGNDbGllbnQ7XG59O1xuXG5jb25zdCBnZXROZXdTc29PaWRjVG9rZW4gPSBhc3luYyAoc3NvVG9rZW4sIHNzb1JlZ2lvbiwgaW5pdCA9IHt9LCBjYWxsZXJDbGllbnRDb25maWcpID0+IHtcbiAgICBjb25zdCB7IENyZWF0ZVRva2VuQ29tbWFuZCB9ID0gYXdhaXQgaW1wb3J0KCdAYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9zc28tb2lkYycpO1xuICAgIGNvbnN0IHNzb09pZGNDbGllbnQgPSBhd2FpdCBnZXRTc29PaWRjQ2xpZW50KHNzb1JlZ2lvbiwgaW5pdCwgY2FsbGVyQ2xpZW50Q29uZmlnKTtcbiAgICByZXR1cm4gc3NvT2lkY0NsaWVudC5zZW5kKG5ldyBDcmVhdGVUb2tlbkNvbW1hbmQoe1xuICAgICAgICBjbGllbnRJZDogc3NvVG9rZW4uY2xpZW50SWQsXG4gICAgICAgIGNsaWVudFNlY3JldDogc3NvVG9rZW4uY2xpZW50U2VjcmV0LFxuICAgICAgICByZWZyZXNoVG9rZW46IHNzb1Rva2VuLnJlZnJlc2hUb2tlbixcbiAgICAgICAgZ3JhbnRUeXBlOiBcInJlZnJlc2hfdG9rZW5cIixcbiAgICB9KSk7XG59O1xuXG5jb25zdCB2YWxpZGF0ZVRva2VuRXhwaXJ5ID0gKHRva2VuKSA9PiB7XG4gICAgaWYgKHRva2VuLmV4cGlyYXRpb24gJiYgdG9rZW4uZXhwaXJhdGlvbi5nZXRUaW1lKCkgPCBEYXRlLm5vdygpKSB7XG4gICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLlRva2VuUHJvdmlkZXJFcnJvcihgVG9rZW4gaXMgZXhwaXJlZC4gJHtSRUZSRVNIX01FU1NBR0V9YCwgZmFsc2UpO1xuICAgIH1cbn07XG5cbmNvbnN0IHZhbGlkYXRlVG9rZW5LZXkgPSAoa2V5LCB2YWx1ZSwgZm9yUmVmcmVzaCA9IGZhbHNlKSA9PiB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5Ub2tlblByb3ZpZGVyRXJyb3IoYFZhbHVlIG5vdCBwcmVzZW50IGZvciAnJHtrZXl9JyBpbiBTU08gVG9rZW4ke2ZvclJlZnJlc2ggPyBcIi4gQ2Fubm90IHJlZnJlc2hcIiA6IFwiXCJ9LiAke1JFRlJFU0hfTUVTU0FHRX1gLCBmYWxzZSk7XG4gICAgfVxufTtcblxuY29uc3QgeyB3cml0ZUZpbGUgfSA9IGZzLnByb21pc2VzO1xuY29uc3Qgd3JpdGVTU09Ub2tlblRvRmlsZSA9IChpZCwgc3NvVG9rZW4pID0+IHtcbiAgICBjb25zdCB0b2tlbkZpbGVwYXRoID0gc2hhcmVkSW5pRmlsZUxvYWRlci5nZXRTU09Ub2tlbkZpbGVwYXRoKGlkKTtcbiAgICBjb25zdCB0b2tlblN0cmluZyA9IEpTT04uc3RyaW5naWZ5KHNzb1Rva2VuLCBudWxsLCAyKTtcbiAgICByZXR1cm4gd3JpdGVGaWxlKHRva2VuRmlsZXBhdGgsIHRva2VuU3RyaW5nKTtcbn07XG5cbmNvbnN0IGxhc3RSZWZyZXNoQXR0ZW1wdFRpbWUgPSBuZXcgRGF0ZSgwKTtcbmNvbnN0IGZyb21Tc28gPSAoaW5pdCA9IHt9KSA9PiBhc3luYyAoeyBjYWxsZXJDbGllbnRDb25maWcgfSA9IHt9KSA9PiB7XG4gICAgaW5pdC5sb2dnZXI/LmRlYnVnKFwiQGF3cy1zZGsvdG9rZW4tcHJvdmlkZXJzIC0gZnJvbVNzb1wiKTtcbiAgICBjb25zdCBwcm9maWxlcyA9IGF3YWl0IHNoYXJlZEluaUZpbGVMb2FkZXIucGFyc2VLbm93bkZpbGVzKGluaXQpO1xuICAgIGNvbnN0IHByb2ZpbGVOYW1lID0gc2hhcmVkSW5pRmlsZUxvYWRlci5nZXRQcm9maWxlTmFtZSh7XG4gICAgICAgIHByb2ZpbGU6IGluaXQucHJvZmlsZSA/PyBjYWxsZXJDbGllbnRDb25maWc/LnByb2ZpbGUsXG4gICAgfSk7XG4gICAgY29uc3QgcHJvZmlsZSA9IHByb2ZpbGVzW3Byb2ZpbGVOYW1lXTtcbiAgICBpZiAoIXByb2ZpbGUpIHtcbiAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuVG9rZW5Qcm92aWRlckVycm9yKGBQcm9maWxlICcke3Byb2ZpbGVOYW1lfScgY291bGQgbm90IGJlIGZvdW5kIGluIHNoYXJlZCBjcmVkZW50aWFscyBmaWxlLmAsIGZhbHNlKTtcbiAgICB9XG4gICAgZWxzZSBpZiAoIXByb2ZpbGVbXCJzc29fc2Vzc2lvblwiXSkge1xuICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5Ub2tlblByb3ZpZGVyRXJyb3IoYFByb2ZpbGUgJyR7cHJvZmlsZU5hbWV9JyBpcyBtaXNzaW5nIHJlcXVpcmVkIHByb3BlcnR5ICdzc29fc2Vzc2lvbicuYCk7XG4gICAgfVxuICAgIGNvbnN0IHNzb1Nlc3Npb25OYW1lID0gcHJvZmlsZVtcInNzb19zZXNzaW9uXCJdO1xuICAgIGNvbnN0IHNzb1Nlc3Npb25zID0gYXdhaXQgc2hhcmVkSW5pRmlsZUxvYWRlci5sb2FkU3NvU2Vzc2lvbkRhdGEoaW5pdCk7XG4gICAgY29uc3Qgc3NvU2Vzc2lvbiA9IHNzb1Nlc3Npb25zW3Nzb1Nlc3Npb25OYW1lXTtcbiAgICBpZiAoIXNzb1Nlc3Npb24pIHtcbiAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuVG9rZW5Qcm92aWRlckVycm9yKGBTc28gc2Vzc2lvbiAnJHtzc29TZXNzaW9uTmFtZX0nIGNvdWxkIG5vdCBiZSBmb3VuZCBpbiBzaGFyZWQgY3JlZGVudGlhbHMgZmlsZS5gLCBmYWxzZSk7XG4gICAgfVxuICAgIGZvciAoY29uc3Qgc3NvU2Vzc2lvblJlcXVpcmVkS2V5IG9mIFtcInNzb19zdGFydF91cmxcIiwgXCJzc29fcmVnaW9uXCJdKSB7XG4gICAgICAgIGlmICghc3NvU2Vzc2lvbltzc29TZXNzaW9uUmVxdWlyZWRLZXldKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5Ub2tlblByb3ZpZGVyRXJyb3IoYFNzbyBzZXNzaW9uICcke3Nzb1Nlc3Npb25OYW1lfScgaXMgbWlzc2luZyByZXF1aXJlZCBwcm9wZXJ0eSAnJHtzc29TZXNzaW9uUmVxdWlyZWRLZXl9Jy5gLCBmYWxzZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgc3NvU2Vzc2lvbltcInNzb19zdGFydF91cmxcIl07XG4gICAgY29uc3Qgc3NvUmVnaW9uID0gc3NvU2Vzc2lvbltcInNzb19yZWdpb25cIl07XG4gICAgbGV0IHNzb1Rva2VuO1xuICAgIHRyeSB7XG4gICAgICAgIHNzb1Rva2VuID0gYXdhaXQgc2hhcmVkSW5pRmlsZUxvYWRlci5nZXRTU09Ub2tlbkZyb21GaWxlKHNzb1Nlc3Npb25OYW1lKTtcbiAgICB9XG4gICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuVG9rZW5Qcm92aWRlckVycm9yKGBUaGUgU1NPIHNlc3Npb24gdG9rZW4gYXNzb2NpYXRlZCB3aXRoIHByb2ZpbGU9JHtwcm9maWxlTmFtZX0gd2FzIG5vdCBmb3VuZCBvciBpcyBpbnZhbGlkLiAke1JFRlJFU0hfTUVTU0FHRX1gLCBmYWxzZSk7XG4gICAgfVxuICAgIHZhbGlkYXRlVG9rZW5LZXkoXCJhY2Nlc3NUb2tlblwiLCBzc29Ub2tlbi5hY2Nlc3NUb2tlbik7XG4gICAgdmFsaWRhdGVUb2tlbktleShcImV4cGlyZXNBdFwiLCBzc29Ub2tlbi5leHBpcmVzQXQpO1xuICAgIGNvbnN0IHsgYWNjZXNzVG9rZW4sIGV4cGlyZXNBdCB9ID0gc3NvVG9rZW47XG4gICAgY29uc3QgZXhpc3RpbmdUb2tlbiA9IHsgdG9rZW46IGFjY2Vzc1Rva2VuLCBleHBpcmF0aW9uOiBuZXcgRGF0ZShleHBpcmVzQXQpIH07XG4gICAgaWYgKGV4aXN0aW5nVG9rZW4uZXhwaXJhdGlvbi5nZXRUaW1lKCkgLSBEYXRlLm5vdygpID4gRVhQSVJFX1dJTkRPV19NUykge1xuICAgICAgICByZXR1cm4gZXhpc3RpbmdUb2tlbjtcbiAgICB9XG4gICAgaWYgKERhdGUubm93KCkgLSBsYXN0UmVmcmVzaEF0dGVtcHRUaW1lLmdldFRpbWUoKSA8IDMwICogMTAwMCkge1xuICAgICAgICB2YWxpZGF0ZVRva2VuRXhwaXJ5KGV4aXN0aW5nVG9rZW4pO1xuICAgICAgICByZXR1cm4gZXhpc3RpbmdUb2tlbjtcbiAgICB9XG4gICAgdmFsaWRhdGVUb2tlbktleShcImNsaWVudElkXCIsIHNzb1Rva2VuLmNsaWVudElkLCB0cnVlKTtcbiAgICB2YWxpZGF0ZVRva2VuS2V5KFwiY2xpZW50U2VjcmV0XCIsIHNzb1Rva2VuLmNsaWVudFNlY3JldCwgdHJ1ZSk7XG4gICAgdmFsaWRhdGVUb2tlbktleShcInJlZnJlc2hUb2tlblwiLCBzc29Ub2tlbi5yZWZyZXNoVG9rZW4sIHRydWUpO1xuICAgIHRyeSB7XG4gICAgICAgIGxhc3RSZWZyZXNoQXR0ZW1wdFRpbWUuc2V0VGltZShEYXRlLm5vdygpKTtcbiAgICAgICAgY29uc3QgbmV3U3NvT2lkY1Rva2VuID0gYXdhaXQgZ2V0TmV3U3NvT2lkY1Rva2VuKHNzb1Rva2VuLCBzc29SZWdpb24sIGluaXQsIGNhbGxlckNsaWVudENvbmZpZyk7XG4gICAgICAgIHZhbGlkYXRlVG9rZW5LZXkoXCJhY2Nlc3NUb2tlblwiLCBuZXdTc29PaWRjVG9rZW4uYWNjZXNzVG9rZW4pO1xuICAgICAgICB2YWxpZGF0ZVRva2VuS2V5KFwiZXhwaXJlc0luXCIsIG5ld1Nzb09pZGNUb2tlbi5leHBpcmVzSW4pO1xuICAgICAgICBjb25zdCBuZXdUb2tlbkV4cGlyYXRpb24gPSBuZXcgRGF0ZShEYXRlLm5vdygpICsgbmV3U3NvT2lkY1Rva2VuLmV4cGlyZXNJbiAqIDEwMDApO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgYXdhaXQgd3JpdGVTU09Ub2tlblRvRmlsZShzc29TZXNzaW9uTmFtZSwge1xuICAgICAgICAgICAgICAgIC4uLnNzb1Rva2VuLFxuICAgICAgICAgICAgICAgIGFjY2Vzc1Rva2VuOiBuZXdTc29PaWRjVG9rZW4uYWNjZXNzVG9rZW4sXG4gICAgICAgICAgICAgICAgZXhwaXJlc0F0OiBuZXdUb2tlbkV4cGlyYXRpb24udG9JU09TdHJpbmcoKSxcbiAgICAgICAgICAgICAgICByZWZyZXNoVG9rZW46IG5ld1Nzb09pZGNUb2tlbi5yZWZyZXNoVG9rZW4sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdG9rZW46IG5ld1Nzb09pZGNUb2tlbi5hY2Nlc3NUb2tlbixcbiAgICAgICAgICAgIGV4cGlyYXRpb246IG5ld1Rva2VuRXhwaXJhdGlvbixcbiAgICAgICAgfTtcbiAgICB9XG4gICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHZhbGlkYXRlVG9rZW5FeHBpcnkoZXhpc3RpbmdUb2tlbik7XG4gICAgICAgIHJldHVybiBleGlzdGluZ1Rva2VuO1xuICAgIH1cbn07XG5cbmNvbnN0IGZyb21TdGF0aWMgPSAoeyB0b2tlbiwgbG9nZ2VyIH0pID0+IGFzeW5jICgpID0+IHtcbiAgICBsb2dnZXI/LmRlYnVnKFwiQGF3cy1zZGsvdG9rZW4tcHJvdmlkZXJzIC0gZnJvbVN0YXRpY1wiKTtcbiAgICBpZiAoIXRva2VuIHx8ICF0b2tlbi50b2tlbikge1xuICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5Ub2tlblByb3ZpZGVyRXJyb3IoYFBsZWFzZSBwYXNzIGEgdmFsaWQgdG9rZW4gdG8gZnJvbVN0YXRpY2AsIGZhbHNlKTtcbiAgICB9XG4gICAgcmV0dXJuIHRva2VuO1xufTtcblxuY29uc3Qgbm9kZVByb3ZpZGVyID0gKGluaXQgPSB7fSkgPT4gcHJvcGVydHlQcm92aWRlci5tZW1vaXplKHByb3BlcnR5UHJvdmlkZXIuY2hhaW4oZnJvbVNzbyhpbml0KSwgYXN5bmMgKCkgPT4ge1xuICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLlRva2VuUHJvdmlkZXJFcnJvcihcIkNvdWxkIG5vdCBsb2FkIHRva2VuIGZyb20gYW55IHByb3ZpZGVyc1wiLCBmYWxzZSk7XG59KSwgKHRva2VuKSA9PiB0b2tlbi5leHBpcmF0aW9uICE9PSB1bmRlZmluZWQgJiYgdG9rZW4uZXhwaXJhdGlvbi5nZXRUaW1lKCkgLSBEYXRlLm5vdygpIDwgMzAwMDAwLCAodG9rZW4pID0+IHRva2VuLmV4cGlyYXRpb24gIT09IHVuZGVmaW5lZCk7XG5cbmV4cG9ydHMuZnJvbUVudlNpZ25pbmdOYW1lID0gZnJvbUVudlNpZ25pbmdOYW1lO1xuZXhwb3J0cy5mcm9tU3NvID0gZnJvbVNzbztcbmV4cG9ydHMuZnJvbVN0YXRpYyA9IGZyb21TdGF0aWM7XG5leHBvcnRzLm5vZGVQcm92aWRlciA9IG5vZGVQcm92aWRlcjtcbiIsICJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMucmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnID0gZXhwb3J0cy5kZWZhdWx0U1NPSHR0cEF1dGhTY2hlbWVQcm92aWRlciA9IGV4cG9ydHMuZGVmYXVsdFNTT0h0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyID0gdm9pZCAwO1xuY29uc3QgY29yZV8xID0gcmVxdWlyZShcIkBhd3Mtc2RrL2NvcmVcIik7XG5jb25zdCB1dGlsX21pZGRsZXdhcmVfMSA9IHJlcXVpcmUoXCJAc21pdGh5L3V0aWwtbWlkZGxld2FyZVwiKTtcbmNvbnN0IGRlZmF1bHRTU09IdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlciA9IGFzeW5jIChjb25maWcsIGNvbnRleHQsIGlucHV0KSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgb3BlcmF0aW9uOiAoMCwgdXRpbF9taWRkbGV3YXJlXzEuZ2V0U21pdGh5Q29udGV4dCkoY29udGV4dCkub3BlcmF0aW9uLFxuICAgICAgICByZWdpb246IChhd2FpdCAoMCwgdXRpbF9taWRkbGV3YXJlXzEubm9ybWFsaXplUHJvdmlkZXIpKGNvbmZpZy5yZWdpb24pKCkpIHx8XG4gICAgICAgICAgICAoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcImV4cGVjdGVkIGByZWdpb25gIHRvIGJlIGNvbmZpZ3VyZWQgZm9yIGBhd3MuYXV0aCNzaWd2NGBcIik7XG4gICAgICAgICAgICB9KSgpLFxuICAgIH07XG59O1xuZXhwb3J0cy5kZWZhdWx0U1NPSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIgPSBkZWZhdWx0U1NPSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXI7XG5mdW5jdGlvbiBjcmVhdGVBd3NBdXRoU2lndjRIdHRwQXV0aE9wdGlvbihhdXRoUGFyYW1ldGVycykge1xuICAgIHJldHVybiB7XG4gICAgICAgIHNjaGVtZUlkOiBcImF3cy5hdXRoI3NpZ3Y0XCIsXG4gICAgICAgIHNpZ25pbmdQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICBuYW1lOiBcImF3c3Nzb3BvcnRhbFwiLFxuICAgICAgICAgICAgcmVnaW9uOiBhdXRoUGFyYW1ldGVycy5yZWdpb24sXG4gICAgICAgIH0sXG4gICAgICAgIHByb3BlcnRpZXNFeHRyYWN0b3I6IChjb25maWcsIGNvbnRleHQpID0+ICh7XG4gICAgICAgICAgICBzaWduaW5nUHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgIGNvbmZpZyxcbiAgICAgICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgfTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVNtaXRoeUFwaU5vQXV0aEh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc2NoZW1lSWQ6IFwic21pdGh5LmFwaSNub0F1dGhcIixcbiAgICB9O1xufVxuY29uc3QgZGVmYXVsdFNTT0h0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSAoYXV0aFBhcmFtZXRlcnMpID0+IHtcbiAgICBjb25zdCBvcHRpb25zID0gW107XG4gICAgc3dpdGNoIChhdXRoUGFyYW1ldGVycy5vcGVyYXRpb24pIHtcbiAgICAgICAgY2FzZSBcIkdldFJvbGVDcmVkZW50aWFsc1wiOiB7XG4gICAgICAgICAgICBvcHRpb25zLnB1c2goY3JlYXRlU21pdGh5QXBpTm9BdXRoSHR0cEF1dGhPcHRpb24oYXV0aFBhcmFtZXRlcnMpKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgXCJMaXN0QWNjb3VudFJvbGVzXCI6IHtcbiAgICAgICAgICAgIG9wdGlvbnMucHVzaChjcmVhdGVTbWl0aHlBcGlOb0F1dGhIdHRwQXV0aE9wdGlvbihhdXRoUGFyYW1ldGVycykpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBcIkxpc3RBY2NvdW50c1wiOiB7XG4gICAgICAgICAgICBvcHRpb25zLnB1c2goY3JlYXRlU21pdGh5QXBpTm9BdXRoSHR0cEF1dGhPcHRpb24oYXV0aFBhcmFtZXRlcnMpKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgXCJMb2dvdXRcIjoge1xuICAgICAgICAgICAgb3B0aW9ucy5wdXNoKGNyZWF0ZVNtaXRoeUFwaU5vQXV0aEh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICBvcHRpb25zLnB1c2goY3JlYXRlQXdzQXV0aFNpZ3Y0SHR0cEF1dGhPcHRpb24oYXV0aFBhcmFtZXRlcnMpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gb3B0aW9ucztcbn07XG5leHBvcnRzLmRlZmF1bHRTU09IdHRwQXV0aFNjaGVtZVByb3ZpZGVyID0gZGVmYXVsdFNTT0h0dHBBdXRoU2NoZW1lUHJvdmlkZXI7XG5jb25zdCByZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWcgPSAoY29uZmlnKSA9PiB7XG4gICAgY29uc3QgY29uZmlnXzAgPSAoMCwgY29yZV8xLnJlc29sdmVBd3NTZGtTaWdWNENvbmZpZykoY29uZmlnKTtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihjb25maWdfMCwge1xuICAgICAgICBhdXRoU2NoZW1lUHJlZmVyZW5jZTogKDAsIHV0aWxfbWlkZGxld2FyZV8xLm5vcm1hbGl6ZVByb3ZpZGVyKShjb25maWcuYXV0aFNjaGVtZVByZWZlcmVuY2UgPz8gW10pLFxuICAgIH0pO1xufTtcbmV4cG9ydHMucmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnID0gcmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnO1xuIiwgIntcbiAgXCJuYW1lXCI6IFwiQGF3cy1zZGsvY2xpZW50LXNzb1wiLFxuICBcImRlc2NyaXB0aW9uXCI6IFwiQVdTIFNESyBmb3IgSmF2YVNjcmlwdCBTc28gQ2xpZW50IGZvciBOb2RlLmpzLCBCcm93c2VyIGFuZCBSZWFjdCBOYXRpdmVcIixcbiAgXCJ2ZXJzaW9uXCI6IFwiMy45NDguMFwiLFxuICBcInNjcmlwdHNcIjoge1xuICAgIFwiYnVpbGRcIjogXCJjb25jdXJyZW50bHkgJ3lhcm46YnVpbGQ6Y2pzJyAneWFybjpidWlsZDplcycgJ3lhcm46YnVpbGQ6dHlwZXMnXCIsXG4gICAgXCJidWlsZDpjanNcIjogXCJub2RlIC4uLy4uL3NjcmlwdHMvY29tcGlsYXRpb24vaW5saW5lIGNsaWVudC1zc29cIixcbiAgICBcImJ1aWxkOmVzXCI6IFwidHNjIC1wIHRzY29uZmlnLmVzLmpzb25cIixcbiAgICBcImJ1aWxkOmluY2x1ZGU6ZGVwc1wiOiBcImxlcm5hIHJ1biAtLXNjb3BlICRucG1fcGFja2FnZV9uYW1lIC0taW5jbHVkZS1kZXBlbmRlbmNpZXMgYnVpbGRcIixcbiAgICBcImJ1aWxkOnR5cGVzXCI6IFwidHNjIC1wIHRzY29uZmlnLnR5cGVzLmpzb25cIixcbiAgICBcImJ1aWxkOnR5cGVzOmRvd25sZXZlbFwiOiBcImRvd25sZXZlbC1kdHMgZGlzdC10eXBlcyBkaXN0LXR5cGVzL3RzMy40XCIsXG4gICAgXCJjbGVhblwiOiBcInJpbXJhZiAuL2Rpc3QtKiAmJiByaW1yYWYgKi50c2J1aWxkaW5mb1wiLFxuICAgIFwiZXh0cmFjdDpkb2NzXCI6IFwiYXBpLWV4dHJhY3RvciBydW4gLS1sb2NhbFwiLFxuICAgIFwiZ2VuZXJhdGU6Y2xpZW50XCI6IFwibm9kZSAuLi8uLi9zY3JpcHRzL2dlbmVyYXRlLWNsaWVudHMvc2luZ2xlLXNlcnZpY2UgLS1zb2xvIHNzb1wiLFxuICAgIFwidGVzdDppbmRleFwiOiBcInRzYyAtLW5vRW1pdCAuL3Rlc3QvaW5kZXgtdHlwZXMudHMgJiYgbm9kZSAuL3Rlc3QvaW5kZXgtb2JqZWN0cy5zcGVjLm1qc1wiXG4gIH0sXG4gIFwibWFpblwiOiBcIi4vZGlzdC1janMvaW5kZXguanNcIixcbiAgXCJ0eXBlc1wiOiBcIi4vZGlzdC10eXBlcy9pbmRleC5kLnRzXCIsXG4gIFwibW9kdWxlXCI6IFwiLi9kaXN0LWVzL2luZGV4LmpzXCIsXG4gIFwic2lkZUVmZmVjdHNcIjogZmFsc2UsXG4gIFwiZGVwZW5kZW5jaWVzXCI6IHtcbiAgICBcIkBhd3MtY3J5cHRvL3NoYTI1Ni1icm93c2VyXCI6IFwiNS4yLjBcIixcbiAgICBcIkBhd3MtY3J5cHRvL3NoYTI1Ni1qc1wiOiBcIjUuMi4wXCIsXG4gICAgXCJAYXdzLXNkay9jb3JlXCI6IFwiMy45NDcuMFwiLFxuICAgIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1ob3N0LWhlYWRlclwiOiBcIjMuOTM2LjBcIixcbiAgICBcIkBhd3Mtc2RrL21pZGRsZXdhcmUtbG9nZ2VyXCI6IFwiMy45MzYuMFwiLFxuICAgIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1yZWN1cnNpb24tZGV0ZWN0aW9uXCI6IFwiMy45NDguMFwiLFxuICAgIFwiQGF3cy1zZGsvbWlkZGxld2FyZS11c2VyLWFnZW50XCI6IFwiMy45NDcuMFwiLFxuICAgIFwiQGF3cy1zZGsvcmVnaW9uLWNvbmZpZy1yZXNvbHZlclwiOiBcIjMuOTM2LjBcIixcbiAgICBcIkBhd3Mtc2RrL3R5cGVzXCI6IFwiMy45MzYuMFwiLFxuICAgIFwiQGF3cy1zZGsvdXRpbC1lbmRwb2ludHNcIjogXCIzLjkzNi4wXCIsXG4gICAgXCJAYXdzLXNkay91dGlsLXVzZXItYWdlbnQtYnJvd3NlclwiOiBcIjMuOTM2LjBcIixcbiAgICBcIkBhd3Mtc2RrL3V0aWwtdXNlci1hZ2VudC1ub2RlXCI6IFwiMy45NDcuMFwiLFxuICAgIFwiQHNtaXRoeS9jb25maWctcmVzb2x2ZXJcIjogXCJeNC40LjNcIixcbiAgICBcIkBzbWl0aHkvY29yZVwiOiBcIl4zLjE4LjdcIixcbiAgICBcIkBzbWl0aHkvZmV0Y2gtaHR0cC1oYW5kbGVyXCI6IFwiXjUuMy42XCIsXG4gICAgXCJAc21pdGh5L2hhc2gtbm9kZVwiOiBcIl40LjIuNVwiLFxuICAgIFwiQHNtaXRoeS9pbnZhbGlkLWRlcGVuZGVuY3lcIjogXCJeNC4yLjVcIixcbiAgICBcIkBzbWl0aHkvbWlkZGxld2FyZS1jb250ZW50LWxlbmd0aFwiOiBcIl40LjIuNVwiLFxuICAgIFwiQHNtaXRoeS9taWRkbGV3YXJlLWVuZHBvaW50XCI6IFwiXjQuMy4xNFwiLFxuICAgIFwiQHNtaXRoeS9taWRkbGV3YXJlLXJldHJ5XCI6IFwiXjQuNC4xNFwiLFxuICAgIFwiQHNtaXRoeS9taWRkbGV3YXJlLXNlcmRlXCI6IFwiXjQuMi42XCIsXG4gICAgXCJAc21pdGh5L21pZGRsZXdhcmUtc3RhY2tcIjogXCJeNC4yLjVcIixcbiAgICBcIkBzbWl0aHkvbm9kZS1jb25maWctcHJvdmlkZXJcIjogXCJeNC4zLjVcIixcbiAgICBcIkBzbWl0aHkvbm9kZS1odHRwLWhhbmRsZXJcIjogXCJeNC40LjVcIixcbiAgICBcIkBzbWl0aHkvcHJvdG9jb2wtaHR0cFwiOiBcIl41LjMuNVwiLFxuICAgIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI6IFwiXjQuOS4xMFwiLFxuICAgIFwiQHNtaXRoeS90eXBlc1wiOiBcIl40LjkuMFwiLFxuICAgIFwiQHNtaXRoeS91cmwtcGFyc2VyXCI6IFwiXjQuMi41XCIsXG4gICAgXCJAc21pdGh5L3V0aWwtYmFzZTY0XCI6IFwiXjQuMy4wXCIsXG4gICAgXCJAc21pdGh5L3V0aWwtYm9keS1sZW5ndGgtYnJvd3NlclwiOiBcIl40LjIuMFwiLFxuICAgIFwiQHNtaXRoeS91dGlsLWJvZHktbGVuZ3RoLW5vZGVcIjogXCJeNC4yLjFcIixcbiAgICBcIkBzbWl0aHkvdXRpbC1kZWZhdWx0cy1tb2RlLWJyb3dzZXJcIjogXCJeNC4zLjEzXCIsXG4gICAgXCJAc21pdGh5L3V0aWwtZGVmYXVsdHMtbW9kZS1ub2RlXCI6IFwiXjQuMi4xNlwiLFxuICAgIFwiQHNtaXRoeS91dGlsLWVuZHBvaW50c1wiOiBcIl4zLjIuNVwiLFxuICAgIFwiQHNtaXRoeS91dGlsLW1pZGRsZXdhcmVcIjogXCJeNC4yLjVcIixcbiAgICBcIkBzbWl0aHkvdXRpbC1yZXRyeVwiOiBcIl40LjIuNVwiLFxuICAgIFwiQHNtaXRoeS91dGlsLXV0ZjhcIjogXCJeNC4yLjBcIixcbiAgICBcInRzbGliXCI6IFwiXjIuNi4yXCJcbiAgfSxcbiAgXCJkZXZEZXBlbmRlbmNpZXNcIjoge1xuICAgIFwiQHRzY29uZmlnL25vZGUxOFwiOiBcIjE4LjIuNFwiLFxuICAgIFwiQHR5cGVzL25vZGVcIjogXCJeMTguMTkuNjlcIixcbiAgICBcImNvbmN1cnJlbnRseVwiOiBcIjcuMC4wXCIsXG4gICAgXCJkb3dubGV2ZWwtZHRzXCI6IFwiMC4xMC4xXCIsXG4gICAgXCJyaW1yYWZcIjogXCIzLjAuMlwiLFxuICAgIFwidHlwZXNjcmlwdFwiOiBcIn41LjguM1wiXG4gIH0sXG4gIFwiZW5naW5lc1wiOiB7XG4gICAgXCJub2RlXCI6IFwiPj0xOC4wLjBcIlxuICB9LFxuICBcInR5cGVzVmVyc2lvbnNcIjoge1xuICAgIFwiPDQuMFwiOiB7XG4gICAgICBcImRpc3QtdHlwZXMvKlwiOiBbXG4gICAgICAgIFwiZGlzdC10eXBlcy90czMuNC8qXCJcbiAgICAgIF1cbiAgICB9XG4gIH0sXG4gIFwiZmlsZXNcIjogW1xuICAgIFwiZGlzdC0qLyoqXCJcbiAgXSxcbiAgXCJhdXRob3JcIjoge1xuICAgIFwibmFtZVwiOiBcIkFXUyBTREsgZm9yIEphdmFTY3JpcHQgVGVhbVwiLFxuICAgIFwidXJsXCI6IFwiaHR0cHM6Ly9hd3MuYW1hem9uLmNvbS9qYXZhc2NyaXB0L1wiXG4gIH0sXG4gIFwibGljZW5zZVwiOiBcIkFwYWNoZS0yLjBcIixcbiAgXCJicm93c2VyXCI6IHtcbiAgICBcIi4vZGlzdC1lcy9ydW50aW1lQ29uZmlnXCI6IFwiLi9kaXN0LWVzL3J1bnRpbWVDb25maWcuYnJvd3NlclwiXG4gIH0sXG4gIFwicmVhY3QtbmF0aXZlXCI6IHtcbiAgICBcIi4vZGlzdC1lcy9ydW50aW1lQ29uZmlnXCI6IFwiLi9kaXN0LWVzL3J1bnRpbWVDb25maWcubmF0aXZlXCJcbiAgfSxcbiAgXCJob21lcGFnZVwiOiBcImh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLXNkay1qcy12My90cmVlL21haW4vY2xpZW50cy9jbGllbnQtc3NvXCIsXG4gIFwicmVwb3NpdG9yeVwiOiB7XG4gICAgXCJ0eXBlXCI6IFwiZ2l0XCIsXG4gICAgXCJ1cmxcIjogXCJodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1zZGstanMtdjMuZ2l0XCIsXG4gICAgXCJkaXJlY3RvcnlcIjogXCJjbGllbnRzL2NsaWVudC1zc29cIlxuICB9XG59XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLnJ1bGVTZXQgPSB2b2lkIDA7XG5jb25zdCB1ID0gXCJyZXF1aXJlZFwiLCB2ID0gXCJmblwiLCB3ID0gXCJhcmd2XCIsIHggPSBcInJlZlwiO1xuY29uc3QgYSA9IHRydWUsIGIgPSBcImlzU2V0XCIsIGMgPSBcImJvb2xlYW5FcXVhbHNcIiwgZCA9IFwiZXJyb3JcIiwgZSA9IFwiZW5kcG9pbnRcIiwgZiA9IFwidHJlZVwiLCBnID0gXCJQYXJ0aXRpb25SZXN1bHRcIiwgaCA9IFwiZ2V0QXR0clwiLCBpID0geyBbdV06IGZhbHNlLCBcInR5cGVcIjogXCJzdHJpbmdcIiB9LCBqID0geyBbdV06IHRydWUsIFwiZGVmYXVsdFwiOiBmYWxzZSwgXCJ0eXBlXCI6IFwiYm9vbGVhblwiIH0sIGsgPSB7IFt4XTogXCJFbmRwb2ludFwiIH0sIGwgPSB7IFt2XTogYywgW3ddOiBbeyBbeF06IFwiVXNlRklQU1wiIH0sIHRydWVdIH0sIG0gPSB7IFt2XTogYywgW3ddOiBbeyBbeF06IFwiVXNlRHVhbFN0YWNrXCIgfSwgdHJ1ZV0gfSwgbiA9IHt9LCBvID0geyBbdl06IGgsIFt3XTogW3sgW3hdOiBnIH0sIFwic3VwcG9ydHNGSVBTXCJdIH0sIHAgPSB7IFt4XTogZyB9LCBxID0geyBbdl06IGMsIFt3XTogW3RydWUsIHsgW3ZdOiBoLCBbd106IFtwLCBcInN1cHBvcnRzRHVhbFN0YWNrXCJdIH1dIH0sIHIgPSBbbF0sIHMgPSBbbV0sIHQgPSBbeyBbeF06IFwiUmVnaW9uXCIgfV07XG5jb25zdCBfZGF0YSA9IHsgdmVyc2lvbjogXCIxLjBcIiwgcGFyYW1ldGVyczogeyBSZWdpb246IGksIFVzZUR1YWxTdGFjazogaiwgVXNlRklQUzogaiwgRW5kcG9pbnQ6IGkgfSwgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IFt7IFt2XTogYiwgW3ddOiBba10gfV0sIHJ1bGVzOiBbeyBjb25kaXRpb25zOiByLCBlcnJvcjogXCJJbnZhbGlkIENvbmZpZ3VyYXRpb246IEZJUFMgYW5kIGN1c3RvbSBlbmRwb2ludCBhcmUgbm90IHN1cHBvcnRlZFwiLCB0eXBlOiBkIH0sIHsgY29uZGl0aW9uczogcywgZXJyb3I6IFwiSW52YWxpZCBDb25maWd1cmF0aW9uOiBEdWFsc3RhY2sgYW5kIGN1c3RvbSBlbmRwb2ludCBhcmUgbm90IHN1cHBvcnRlZFwiLCB0eXBlOiBkIH0sIHsgZW5kcG9pbnQ6IHsgdXJsOiBrLCBwcm9wZXJ0aWVzOiBuLCBoZWFkZXJzOiBuIH0sIHR5cGU6IGUgfV0sIHR5cGU6IGYgfSwgeyBjb25kaXRpb25zOiBbeyBbdl06IGIsIFt3XTogdCB9XSwgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IFt7IFt2XTogXCJhd3MucGFydGl0aW9uXCIsIFt3XTogdCwgYXNzaWduOiBnIH1dLCBydWxlczogW3sgY29uZGl0aW9uczogW2wsIG1dLCBydWxlczogW3sgY29uZGl0aW9uczogW3sgW3ZdOiBjLCBbd106IFthLCBvXSB9LCBxXSwgcnVsZXM6IFt7IGVuZHBvaW50OiB7IHVybDogXCJodHRwczovL3BvcnRhbC5zc28tZmlwcy57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2R1YWxTdGFja0Ruc1N1ZmZpeH1cIiwgcHJvcGVydGllczogbiwgaGVhZGVyczogbiB9LCB0eXBlOiBlIH1dLCB0eXBlOiBmIH0sIHsgZXJyb3I6IFwiRklQUyBhbmQgRHVhbFN0YWNrIGFyZSBlbmFibGVkLCBidXQgdGhpcyBwYXJ0aXRpb24gZG9lcyBub3Qgc3VwcG9ydCBvbmUgb3IgYm90aFwiLCB0eXBlOiBkIH1dLCB0eXBlOiBmIH0sIHsgY29uZGl0aW9uczogciwgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IFt7IFt2XTogYywgW3ddOiBbbywgYV0gfV0sIHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbeyBbdl06IFwic3RyaW5nRXF1YWxzXCIsIFt3XTogW3sgW3ZdOiBoLCBbd106IFtwLCBcIm5hbWVcIl0gfSwgXCJhd3MtdXMtZ292XCJdIH1dLCBlbmRwb2ludDogeyB1cmw6IFwiaHR0cHM6Ly9wb3J0YWwuc3NvLntSZWdpb259LmFtYXpvbmF3cy5jb21cIiwgcHJvcGVydGllczogbiwgaGVhZGVyczogbiB9LCB0eXBlOiBlIH0sIHsgZW5kcG9pbnQ6IHsgdXJsOiBcImh0dHBzOi8vcG9ydGFsLnNzby1maXBzLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZG5zU3VmZml4fVwiLCBwcm9wZXJ0aWVzOiBuLCBoZWFkZXJzOiBuIH0sIHR5cGU6IGUgfV0sIHR5cGU6IGYgfSwgeyBlcnJvcjogXCJGSVBTIGlzIGVuYWJsZWQgYnV0IHRoaXMgcGFydGl0aW9uIGRvZXMgbm90IHN1cHBvcnQgRklQU1wiLCB0eXBlOiBkIH1dLCB0eXBlOiBmIH0sIHsgY29uZGl0aW9uczogcywgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IFtxXSwgcnVsZXM6IFt7IGVuZHBvaW50OiB7IHVybDogXCJodHRwczovL3BvcnRhbC5zc28ue1JlZ2lvbn0ue1BhcnRpdGlvblJlc3VsdCNkdWFsU3RhY2tEbnNTdWZmaXh9XCIsIHByb3BlcnRpZXM6IG4sIGhlYWRlcnM6IG4gfSwgdHlwZTogZSB9XSwgdHlwZTogZiB9LCB7IGVycm9yOiBcIkR1YWxTdGFjayBpcyBlbmFibGVkIGJ1dCB0aGlzIHBhcnRpdGlvbiBkb2VzIG5vdCBzdXBwb3J0IER1YWxTdGFja1wiLCB0eXBlOiBkIH1dLCB0eXBlOiBmIH0sIHsgZW5kcG9pbnQ6IHsgdXJsOiBcImh0dHBzOi8vcG9ydGFsLnNzby57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH1cIiwgcHJvcGVydGllczogbiwgaGVhZGVyczogbiB9LCB0eXBlOiBlIH1dLCB0eXBlOiBmIH1dLCB0eXBlOiBmIH0sIHsgZXJyb3I6IFwiSW52YWxpZCBDb25maWd1cmF0aW9uOiBNaXNzaW5nIFJlZ2lvblwiLCB0eXBlOiBkIH1dIH07XG5leHBvcnRzLnJ1bGVTZXQgPSBfZGF0YTtcbiIsICJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIgPSB2b2lkIDA7XG5jb25zdCB1dGlsX2VuZHBvaW50c18xID0gcmVxdWlyZShcIkBhd3Mtc2RrL3V0aWwtZW5kcG9pbnRzXCIpO1xuY29uc3QgdXRpbF9lbmRwb2ludHNfMiA9IHJlcXVpcmUoXCJAc21pdGh5L3V0aWwtZW5kcG9pbnRzXCIpO1xuY29uc3QgcnVsZXNldF8xID0gcmVxdWlyZShcIi4vcnVsZXNldFwiKTtcbmNvbnN0IGNhY2hlID0gbmV3IHV0aWxfZW5kcG9pbnRzXzIuRW5kcG9pbnRDYWNoZSh7XG4gICAgc2l6ZTogNTAsXG4gICAgcGFyYW1zOiBbXCJFbmRwb2ludFwiLCBcIlJlZ2lvblwiLCBcIlVzZUR1YWxTdGFja1wiLCBcIlVzZUZJUFNcIl0sXG59KTtcbmNvbnN0IGRlZmF1bHRFbmRwb2ludFJlc29sdmVyID0gKGVuZHBvaW50UGFyYW1zLCBjb250ZXh0ID0ge30pID0+IHtcbiAgICByZXR1cm4gY2FjaGUuZ2V0KGVuZHBvaW50UGFyYW1zLCAoKSA9PiAoMCwgdXRpbF9lbmRwb2ludHNfMi5yZXNvbHZlRW5kcG9pbnQpKHJ1bGVzZXRfMS5ydWxlU2V0LCB7XG4gICAgICAgIGVuZHBvaW50UGFyYW1zOiBlbmRwb2ludFBhcmFtcyxcbiAgICAgICAgbG9nZ2VyOiBjb250ZXh0LmxvZ2dlcixcbiAgICB9KSk7XG59O1xuZXhwb3J0cy5kZWZhdWx0RW5kcG9pbnRSZXNvbHZlciA9IGRlZmF1bHRFbmRwb2ludFJlc29sdmVyO1xudXRpbF9lbmRwb2ludHNfMi5jdXN0b21FbmRwb2ludEZ1bmN0aW9ucy5hd3MgPSB1dGlsX2VuZHBvaW50c18xLmF3c0VuZHBvaW50RnVuY3Rpb25zO1xuIiwgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5nZXRSdW50aW1lQ29uZmlnID0gdm9pZCAwO1xuY29uc3QgY29yZV8xID0gcmVxdWlyZShcIkBhd3Mtc2RrL2NvcmVcIik7XG5jb25zdCBwcm90b2NvbHNfMSA9IHJlcXVpcmUoXCJAYXdzLXNkay9jb3JlL3Byb3RvY29sc1wiKTtcbmNvbnN0IGNvcmVfMiA9IHJlcXVpcmUoXCJAc21pdGh5L2NvcmVcIik7XG5jb25zdCBzbWl0aHlfY2xpZW50XzEgPSByZXF1aXJlKFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCIpO1xuY29uc3QgdXJsX3BhcnNlcl8xID0gcmVxdWlyZShcIkBzbWl0aHkvdXJsLXBhcnNlclwiKTtcbmNvbnN0IHV0aWxfYmFzZTY0XzEgPSByZXF1aXJlKFwiQHNtaXRoeS91dGlsLWJhc2U2NFwiKTtcbmNvbnN0IHV0aWxfdXRmOF8xID0gcmVxdWlyZShcIkBzbWl0aHkvdXRpbC11dGY4XCIpO1xuY29uc3QgaHR0cEF1dGhTY2hlbWVQcm92aWRlcl8xID0gcmVxdWlyZShcIi4vYXV0aC9odHRwQXV0aFNjaGVtZVByb3ZpZGVyXCIpO1xuY29uc3QgZW5kcG9pbnRSZXNvbHZlcl8xID0gcmVxdWlyZShcIi4vZW5kcG9pbnQvZW5kcG9pbnRSZXNvbHZlclwiKTtcbmNvbnN0IGdldFJ1bnRpbWVDb25maWcgPSAoY29uZmlnKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgYXBpVmVyc2lvbjogXCIyMDE5LTA2LTEwXCIsXG4gICAgICAgIGJhc2U2NERlY29kZXI6IGNvbmZpZz8uYmFzZTY0RGVjb2RlciA/PyB1dGlsX2Jhc2U2NF8xLmZyb21CYXNlNjQsXG4gICAgICAgIGJhc2U2NEVuY29kZXI6IGNvbmZpZz8uYmFzZTY0RW5jb2RlciA/PyB1dGlsX2Jhc2U2NF8xLnRvQmFzZTY0LFxuICAgICAgICBkaXNhYmxlSG9zdFByZWZpeDogY29uZmlnPy5kaXNhYmxlSG9zdFByZWZpeCA/PyBmYWxzZSxcbiAgICAgICAgZW5kcG9pbnRQcm92aWRlcjogY29uZmlnPy5lbmRwb2ludFByb3ZpZGVyID8/IGVuZHBvaW50UmVzb2x2ZXJfMS5kZWZhdWx0RW5kcG9pbnRSZXNvbHZlcixcbiAgICAgICAgZXh0ZW5zaW9uczogY29uZmlnPy5leHRlbnNpb25zID8/IFtdLFxuICAgICAgICBodHRwQXV0aFNjaGVtZVByb3ZpZGVyOiBjb25maWc/Lmh0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPz8gaHR0cEF1dGhTY2hlbWVQcm92aWRlcl8xLmRlZmF1bHRTU09IdHRwQXV0aFNjaGVtZVByb3ZpZGVyLFxuICAgICAgICBodHRwQXV0aFNjaGVtZXM6IGNvbmZpZz8uaHR0cEF1dGhTY2hlbWVzID8/IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzY2hlbWVJZDogXCJhd3MuYXV0aCNzaWd2NFwiLFxuICAgICAgICAgICAgICAgIGlkZW50aXR5UHJvdmlkZXI6IChpcGMpID0+IGlwYy5nZXRJZGVudGl0eVByb3ZpZGVyKFwiYXdzLmF1dGgjc2lndjRcIiksXG4gICAgICAgICAgICAgICAgc2lnbmVyOiBuZXcgY29yZV8xLkF3c1Nka1NpZ1Y0U2lnbmVyKCksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHNjaGVtZUlkOiBcInNtaXRoeS5hcGkjbm9BdXRoXCIsXG4gICAgICAgICAgICAgICAgaWRlbnRpdHlQcm92aWRlcjogKGlwYykgPT4gaXBjLmdldElkZW50aXR5UHJvdmlkZXIoXCJzbWl0aHkuYXBpI25vQXV0aFwiKSB8fCAoYXN5bmMgKCkgPT4gKHt9KSksXG4gICAgICAgICAgICAgICAgc2lnbmVyOiBuZXcgY29yZV8yLk5vQXV0aFNpZ25lcigpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgbG9nZ2VyOiBjb25maWc/LmxvZ2dlciA/PyBuZXcgc21pdGh5X2NsaWVudF8xLk5vT3BMb2dnZXIoKSxcbiAgICAgICAgcHJvdG9jb2w6IGNvbmZpZz8ucHJvdG9jb2wgPz8gbmV3IHByb3RvY29sc18xLkF3c1Jlc3RKc29uUHJvdG9jb2woeyBkZWZhdWx0TmFtZXNwYWNlOiBcImNvbS5hbWF6b25hd3Muc3NvXCIgfSksXG4gICAgICAgIHNlcnZpY2VJZDogY29uZmlnPy5zZXJ2aWNlSWQgPz8gXCJTU09cIixcbiAgICAgICAgdXJsUGFyc2VyOiBjb25maWc/LnVybFBhcnNlciA/PyB1cmxfcGFyc2VyXzEucGFyc2VVcmwsXG4gICAgICAgIHV0ZjhEZWNvZGVyOiBjb25maWc/LnV0ZjhEZWNvZGVyID8/IHV0aWxfdXRmOF8xLmZyb21VdGY4LFxuICAgICAgICB1dGY4RW5jb2RlcjogY29uZmlnPy51dGY4RW5jb2RlciA/PyB1dGlsX3V0ZjhfMS50b1V0ZjgsXG4gICAgfTtcbn07XG5leHBvcnRzLmdldFJ1bnRpbWVDb25maWcgPSBnZXRSdW50aW1lQ29uZmlnO1xuIiwgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5nZXRSdW50aW1lQ29uZmlnID0gdm9pZCAwO1xuY29uc3QgdHNsaWJfMSA9IHJlcXVpcmUoXCJ0c2xpYlwiKTtcbmNvbnN0IHBhY2thZ2VfanNvbl8xID0gdHNsaWJfMS5fX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4uL3BhY2thZ2UuanNvblwiKSk7XG5jb25zdCBjb3JlXzEgPSByZXF1aXJlKFwiQGF3cy1zZGsvY29yZVwiKTtcbmNvbnN0IHV0aWxfdXNlcl9hZ2VudF9ub2RlXzEgPSByZXF1aXJlKFwiQGF3cy1zZGsvdXRpbC11c2VyLWFnZW50LW5vZGVcIik7XG5jb25zdCBjb25maWdfcmVzb2x2ZXJfMSA9IHJlcXVpcmUoXCJAc21pdGh5L2NvbmZpZy1yZXNvbHZlclwiKTtcbmNvbnN0IGhhc2hfbm9kZV8xID0gcmVxdWlyZShcIkBzbWl0aHkvaGFzaC1ub2RlXCIpO1xuY29uc3QgbWlkZGxld2FyZV9yZXRyeV8xID0gcmVxdWlyZShcIkBzbWl0aHkvbWlkZGxld2FyZS1yZXRyeVwiKTtcbmNvbnN0IG5vZGVfY29uZmlnX3Byb3ZpZGVyXzEgPSByZXF1aXJlKFwiQHNtaXRoeS9ub2RlLWNvbmZpZy1wcm92aWRlclwiKTtcbmNvbnN0IG5vZGVfaHR0cF9oYW5kbGVyXzEgPSByZXF1aXJlKFwiQHNtaXRoeS9ub2RlLWh0dHAtaGFuZGxlclwiKTtcbmNvbnN0IHNtaXRoeV9jbGllbnRfMSA9IHJlcXVpcmUoXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIik7XG5jb25zdCB1dGlsX2JvZHlfbGVuZ3RoX25vZGVfMSA9IHJlcXVpcmUoXCJAc21pdGh5L3V0aWwtYm9keS1sZW5ndGgtbm9kZVwiKTtcbmNvbnN0IHV0aWxfZGVmYXVsdHNfbW9kZV9ub2RlXzEgPSByZXF1aXJlKFwiQHNtaXRoeS91dGlsLWRlZmF1bHRzLW1vZGUtbm9kZVwiKTtcbmNvbnN0IHV0aWxfcmV0cnlfMSA9IHJlcXVpcmUoXCJAc21pdGh5L3V0aWwtcmV0cnlcIik7XG5jb25zdCBydW50aW1lQ29uZmlnX3NoYXJlZF8xID0gcmVxdWlyZShcIi4vcnVudGltZUNvbmZpZy5zaGFyZWRcIik7XG5jb25zdCBnZXRSdW50aW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgICgwLCBzbWl0aHlfY2xpZW50XzEuZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbikocHJvY2Vzcy52ZXJzaW9uKTtcbiAgICBjb25zdCBkZWZhdWx0c01vZGUgPSAoMCwgdXRpbF9kZWZhdWx0c19tb2RlX25vZGVfMS5yZXNvbHZlRGVmYXVsdHNNb2RlQ29uZmlnKShjb25maWcpO1xuICAgIGNvbnN0IGRlZmF1bHRDb25maWdQcm92aWRlciA9ICgpID0+IGRlZmF1bHRzTW9kZSgpLnRoZW4oc21pdGh5X2NsaWVudF8xLmxvYWRDb25maWdzRm9yRGVmYXVsdE1vZGUpO1xuICAgIGNvbnN0IGNsaWVudFNoYXJlZFZhbHVlcyA9ICgwLCBydW50aW1lQ29uZmlnX3NoYXJlZF8xLmdldFJ1bnRpbWVDb25maWcpKGNvbmZpZyk7XG4gICAgKDAsIGNvcmVfMS5lbWl0V2FybmluZ0lmVW5zdXBwb3J0ZWRWZXJzaW9uKShwcm9jZXNzLnZlcnNpb24pO1xuICAgIGNvbnN0IGxvYWRlckNvbmZpZyA9IHtcbiAgICAgICAgcHJvZmlsZTogY29uZmlnPy5wcm9maWxlLFxuICAgICAgICBsb2dnZXI6IGNsaWVudFNoYXJlZFZhbHVlcy5sb2dnZXIsXG4gICAgfTtcbiAgICByZXR1cm4ge1xuICAgICAgICAuLi5jbGllbnRTaGFyZWRWYWx1ZXMsXG4gICAgICAgIC4uLmNvbmZpZyxcbiAgICAgICAgcnVudGltZTogXCJub2RlXCIsXG4gICAgICAgIGRlZmF1bHRzTW9kZSxcbiAgICAgICAgYXV0aFNjaGVtZVByZWZlcmVuY2U6IGNvbmZpZz8uYXV0aFNjaGVtZVByZWZlcmVuY2UgPz8gKDAsIG5vZGVfY29uZmlnX3Byb3ZpZGVyXzEubG9hZENvbmZpZykoY29yZV8xLk5PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgICAgICBib2R5TGVuZ3RoQ2hlY2tlcjogY29uZmlnPy5ib2R5TGVuZ3RoQ2hlY2tlciA/PyB1dGlsX2JvZHlfbGVuZ3RoX25vZGVfMS5jYWxjdWxhdGVCb2R5TGVuZ3RoLFxuICAgICAgICBkZWZhdWx0VXNlckFnZW50UHJvdmlkZXI6IGNvbmZpZz8uZGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyID8/XG4gICAgICAgICAgICAoMCwgdXRpbF91c2VyX2FnZW50X25vZGVfMS5jcmVhdGVEZWZhdWx0VXNlckFnZW50UHJvdmlkZXIpKHsgc2VydmljZUlkOiBjbGllbnRTaGFyZWRWYWx1ZXMuc2VydmljZUlkLCBjbGllbnRWZXJzaW9uOiBwYWNrYWdlX2pzb25fMS5kZWZhdWx0LnZlcnNpb24gfSksXG4gICAgICAgIG1heEF0dGVtcHRzOiBjb25maWc/Lm1heEF0dGVtcHRzID8/ICgwLCBub2RlX2NvbmZpZ19wcm92aWRlcl8xLmxvYWRDb25maWcpKG1pZGRsZXdhcmVfcmV0cnlfMS5OT0RFX01BWF9BVFRFTVBUX0NPTkZJR19PUFRJT05TLCBjb25maWcpLFxuICAgICAgICByZWdpb246IGNvbmZpZz8ucmVnaW9uID8/XG4gICAgICAgICAgICAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKShjb25maWdfcmVzb2x2ZXJfMS5OT0RFX1JFR0lPTl9DT05GSUdfT1BUSU9OUywgeyAuLi5jb25maWdfcmVzb2x2ZXJfMS5OT0RFX1JFR0lPTl9DT05GSUdfRklMRV9PUFRJT05TLCAuLi5sb2FkZXJDb25maWcgfSksXG4gICAgICAgIHJlcXVlc3RIYW5kbGVyOiBub2RlX2h0dHBfaGFuZGxlcl8xLk5vZGVIdHRwSGFuZGxlci5jcmVhdGUoY29uZmlnPy5yZXF1ZXN0SGFuZGxlciA/PyBkZWZhdWx0Q29uZmlnUHJvdmlkZXIpLFxuICAgICAgICByZXRyeU1vZGU6IGNvbmZpZz8ucmV0cnlNb2RlID8/XG4gICAgICAgICAgICAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKSh7XG4gICAgICAgICAgICAgICAgLi4ubWlkZGxld2FyZV9yZXRyeV8xLk5PREVfUkVUUllfTU9ERV9DT05GSUdfT1BUSU9OUyxcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiBhc3luYyAoKSA9PiAoYXdhaXQgZGVmYXVsdENvbmZpZ1Byb3ZpZGVyKCkpLnJldHJ5TW9kZSB8fCB1dGlsX3JldHJ5XzEuREVGQVVMVF9SRVRSWV9NT0RFLFxuICAgICAgICAgICAgfSwgY29uZmlnKSxcbiAgICAgICAgc2hhMjU2OiBjb25maWc/LnNoYTI1NiA/PyBoYXNoX25vZGVfMS5IYXNoLmJpbmQobnVsbCwgXCJzaGEyNTZcIiksXG4gICAgICAgIHN0cmVhbUNvbGxlY3RvcjogY29uZmlnPy5zdHJlYW1Db2xsZWN0b3IgPz8gbm9kZV9odHRwX2hhbmRsZXJfMS5zdHJlYW1Db2xsZWN0b3IsXG4gICAgICAgIHVzZUR1YWxzdGFja0VuZHBvaW50OiBjb25maWc/LnVzZUR1YWxzdGFja0VuZHBvaW50ID8/ICgwLCBub2RlX2NvbmZpZ19wcm92aWRlcl8xLmxvYWRDb25maWcpKGNvbmZpZ19yZXNvbHZlcl8xLk5PREVfVVNFX0RVQUxTVEFDS19FTkRQT0lOVF9DT05GSUdfT1BUSU9OUywgbG9hZGVyQ29uZmlnKSxcbiAgICAgICAgdXNlRmlwc0VuZHBvaW50OiBjb25maWc/LnVzZUZpcHNFbmRwb2ludCA/PyAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKShjb25maWdfcmVzb2x2ZXJfMS5OT0RFX1VTRV9GSVBTX0VORFBPSU5UX0NPTkZJR19PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgICAgICB1c2VyQWdlbnRBcHBJZDogY29uZmlnPy51c2VyQWdlbnRBcHBJZCA/PyAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKSh1dGlsX3VzZXJfYWdlbnRfbm9kZV8xLk5PREVfQVBQX0lEX0NPTkZJR19PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgIH07XG59O1xuZXhwb3J0cy5nZXRSdW50aW1lQ29uZmlnID0gZ2V0UnVudGltZUNvbmZpZztcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBtaWRkbGV3YXJlSG9zdEhlYWRlciA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL21pZGRsZXdhcmUtaG9zdC1oZWFkZXInKTtcbnZhciBtaWRkbGV3YXJlTG9nZ2VyID0gcmVxdWlyZSgnQGF3cy1zZGsvbWlkZGxld2FyZS1sb2dnZXInKTtcbnZhciBtaWRkbGV3YXJlUmVjdXJzaW9uRGV0ZWN0aW9uID0gcmVxdWlyZSgnQGF3cy1zZGsvbWlkZGxld2FyZS1yZWN1cnNpb24tZGV0ZWN0aW9uJyk7XG52YXIgbWlkZGxld2FyZVVzZXJBZ2VudCA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL21pZGRsZXdhcmUtdXNlci1hZ2VudCcpO1xudmFyIGNvbmZpZ1Jlc29sdmVyID0gcmVxdWlyZSgnQHNtaXRoeS9jb25maWctcmVzb2x2ZXInKTtcbnZhciBjb3JlID0gcmVxdWlyZSgnQHNtaXRoeS9jb3JlJyk7XG52YXIgc2NoZW1hID0gcmVxdWlyZSgnQHNtaXRoeS9jb3JlL3NjaGVtYScpO1xudmFyIG1pZGRsZXdhcmVDb250ZW50TGVuZ3RoID0gcmVxdWlyZSgnQHNtaXRoeS9taWRkbGV3YXJlLWNvbnRlbnQtbGVuZ3RoJyk7XG52YXIgbWlkZGxld2FyZUVuZHBvaW50ID0gcmVxdWlyZSgnQHNtaXRoeS9taWRkbGV3YXJlLWVuZHBvaW50Jyk7XG52YXIgbWlkZGxld2FyZVJldHJ5ID0gcmVxdWlyZSgnQHNtaXRoeS9taWRkbGV3YXJlLXJldHJ5Jyk7XG52YXIgc21pdGh5Q2xpZW50ID0gcmVxdWlyZSgnQHNtaXRoeS9zbWl0aHktY2xpZW50Jyk7XG52YXIgaHR0cEF1dGhTY2hlbWVQcm92aWRlciA9IHJlcXVpcmUoJy4vYXV0aC9odHRwQXV0aFNjaGVtZVByb3ZpZGVyJyk7XG52YXIgcnVudGltZUNvbmZpZyA9IHJlcXVpcmUoJy4vcnVudGltZUNvbmZpZycpO1xudmFyIHJlZ2lvbkNvbmZpZ1Jlc29sdmVyID0gcmVxdWlyZSgnQGF3cy1zZGsvcmVnaW9uLWNvbmZpZy1yZXNvbHZlcicpO1xudmFyIHByb3RvY29sSHR0cCA9IHJlcXVpcmUoJ0BzbWl0aHkvcHJvdG9jb2wtaHR0cCcpO1xuXG5jb25zdCByZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzID0gKG9wdGlvbnMpID0+IHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihvcHRpb25zLCB7XG4gICAgICAgIHVzZUR1YWxzdGFja0VuZHBvaW50OiBvcHRpb25zLnVzZUR1YWxzdGFja0VuZHBvaW50ID8/IGZhbHNlLFxuICAgICAgICB1c2VGaXBzRW5kcG9pbnQ6IG9wdGlvbnMudXNlRmlwc0VuZHBvaW50ID8/IGZhbHNlLFxuICAgICAgICBkZWZhdWx0U2lnbmluZ05hbWU6IFwiYXdzc3NvcG9ydGFsXCIsXG4gICAgfSk7XG59O1xuY29uc3QgY29tbW9uUGFyYW1zID0ge1xuICAgIFVzZUZJUFM6IHsgdHlwZTogXCJidWlsdEluUGFyYW1zXCIsIG5hbWU6IFwidXNlRmlwc0VuZHBvaW50XCIgfSxcbiAgICBFbmRwb2ludDogeyB0eXBlOiBcImJ1aWx0SW5QYXJhbXNcIiwgbmFtZTogXCJlbmRwb2ludFwiIH0sXG4gICAgUmVnaW9uOiB7IHR5cGU6IFwiYnVpbHRJblBhcmFtc1wiLCBuYW1lOiBcInJlZ2lvblwiIH0sXG4gICAgVXNlRHVhbFN0YWNrOiB7IHR5cGU6IFwiYnVpbHRJblBhcmFtc1wiLCBuYW1lOiBcInVzZUR1YWxzdGFja0VuZHBvaW50XCIgfSxcbn07XG5cbmNvbnN0IGdldEh0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiA9IChydW50aW1lQ29uZmlnKSA9PiB7XG4gICAgY29uc3QgX2h0dHBBdXRoU2NoZW1lcyA9IHJ1bnRpbWVDb25maWcuaHR0cEF1dGhTY2hlbWVzO1xuICAgIGxldCBfaHR0cEF1dGhTY2hlbWVQcm92aWRlciA9IHJ1bnRpbWVDb25maWcuaHR0cEF1dGhTY2hlbWVQcm92aWRlcjtcbiAgICBsZXQgX2NyZWRlbnRpYWxzID0gcnVudGltZUNvbmZpZy5jcmVkZW50aWFscztcbiAgICByZXR1cm4ge1xuICAgICAgICBzZXRIdHRwQXV0aFNjaGVtZShodHRwQXV0aFNjaGVtZSkge1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSBfaHR0cEF1dGhTY2hlbWVzLmZpbmRJbmRleCgoc2NoZW1lKSA9PiBzY2hlbWUuc2NoZW1lSWQgPT09IGh0dHBBdXRoU2NoZW1lLnNjaGVtZUlkKTtcbiAgICAgICAgICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICBfaHR0cEF1dGhTY2hlbWVzLnB1c2goaHR0cEF1dGhTY2hlbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgX2h0dHBBdXRoU2NoZW1lcy5zcGxpY2UoaW5kZXgsIDEsIGh0dHBBdXRoU2NoZW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVzKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9odHRwQXV0aFNjaGVtZXM7XG4gICAgICAgIH0sXG4gICAgICAgIHNldEh0dHBBdXRoU2NoZW1lUHJvdmlkZXIoaHR0cEF1dGhTY2hlbWVQcm92aWRlcikge1xuICAgICAgICAgICAgX2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSBodHRwQXV0aFNjaGVtZVByb3ZpZGVyO1xuICAgICAgICB9LFxuICAgICAgICBodHRwQXV0aFNjaGVtZVByb3ZpZGVyKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9odHRwQXV0aFNjaGVtZVByb3ZpZGVyO1xuICAgICAgICB9LFxuICAgICAgICBzZXRDcmVkZW50aWFscyhjcmVkZW50aWFscykge1xuICAgICAgICAgICAgX2NyZWRlbnRpYWxzID0gY3JlZGVudGlhbHM7XG4gICAgICAgIH0sXG4gICAgICAgIGNyZWRlbnRpYWxzKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9jcmVkZW50aWFscztcbiAgICAgICAgfSxcbiAgICB9O1xufTtcbmNvbnN0IHJlc29sdmVIdHRwQXV0aFJ1bnRpbWVDb25maWcgPSAoY29uZmlnKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVzOiBjb25maWcuaHR0cEF1dGhTY2hlbWVzKCksXG4gICAgICAgIGh0dHBBdXRoU2NoZW1lUHJvdmlkZXI6IGNvbmZpZy5odHRwQXV0aFNjaGVtZVByb3ZpZGVyKCksXG4gICAgICAgIGNyZWRlbnRpYWxzOiBjb25maWcuY3JlZGVudGlhbHMoKSxcbiAgICB9O1xufTtcblxuY29uc3QgcmVzb2x2ZVJ1bnRpbWVFeHRlbnNpb25zID0gKHJ1bnRpbWVDb25maWcsIGV4dGVuc2lvbnMpID0+IHtcbiAgICBjb25zdCBleHRlbnNpb25Db25maWd1cmF0aW9uID0gT2JqZWN0LmFzc2lnbihyZWdpb25Db25maWdSZXNvbHZlci5nZXRBd3NSZWdpb25FeHRlbnNpb25Db25maWd1cmF0aW9uKHJ1bnRpbWVDb25maWcpLCBzbWl0aHlDbGllbnQuZ2V0RGVmYXVsdEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24ocnVudGltZUNvbmZpZyksIHByb3RvY29sSHR0cC5nZXRIdHRwSGFuZGxlckV4dGVuc2lvbkNvbmZpZ3VyYXRpb24ocnVudGltZUNvbmZpZyksIGdldEh0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbihydW50aW1lQ29uZmlnKSk7XG4gICAgZXh0ZW5zaW9ucy5mb3JFYWNoKChleHRlbnNpb24pID0+IGV4dGVuc2lvbi5jb25maWd1cmUoZXh0ZW5zaW9uQ29uZmlndXJhdGlvbikpO1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHJ1bnRpbWVDb25maWcsIHJlZ2lvbkNvbmZpZ1Jlc29sdmVyLnJlc29sdmVBd3NSZWdpb25FeHRlbnNpb25Db25maWd1cmF0aW9uKGV4dGVuc2lvbkNvbmZpZ3VyYXRpb24pLCBzbWl0aHlDbGllbnQucmVzb2x2ZURlZmF1bHRSdW50aW1lQ29uZmlnKGV4dGVuc2lvbkNvbmZpZ3VyYXRpb24pLCBwcm90b2NvbEh0dHAucmVzb2x2ZUh0dHBIYW5kbGVyUnVudGltZUNvbmZpZyhleHRlbnNpb25Db25maWd1cmF0aW9uKSwgcmVzb2x2ZUh0dHBBdXRoUnVudGltZUNvbmZpZyhleHRlbnNpb25Db25maWd1cmF0aW9uKSk7XG59O1xuXG5jbGFzcyBTU09DbGllbnQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ2xpZW50IHtcbiAgICBjb25maWc7XG4gICAgY29uc3RydWN0b3IoLi4uW2NvbmZpZ3VyYXRpb25dKSB7XG4gICAgICAgIGNvbnN0IF9jb25maWdfMCA9IHJ1bnRpbWVDb25maWcuZ2V0UnVudGltZUNvbmZpZyhjb25maWd1cmF0aW9uIHx8IHt9KTtcbiAgICAgICAgc3VwZXIoX2NvbmZpZ18wKTtcbiAgICAgICAgdGhpcy5pbml0Q29uZmlnID0gX2NvbmZpZ18wO1xuICAgICAgICBjb25zdCBfY29uZmlnXzEgPSByZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzKF9jb25maWdfMCk7XG4gICAgICAgIGNvbnN0IF9jb25maWdfMiA9IG1pZGRsZXdhcmVVc2VyQWdlbnQucmVzb2x2ZVVzZXJBZ2VudENvbmZpZyhfY29uZmlnXzEpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzMgPSBtaWRkbGV3YXJlUmV0cnkucmVzb2x2ZVJldHJ5Q29uZmlnKF9jb25maWdfMik7XG4gICAgICAgIGNvbnN0IF9jb25maWdfNCA9IGNvbmZpZ1Jlc29sdmVyLnJlc29sdmVSZWdpb25Db25maWcoX2NvbmZpZ18zKTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ181ID0gbWlkZGxld2FyZUhvc3RIZWFkZXIucmVzb2x2ZUhvc3RIZWFkZXJDb25maWcoX2NvbmZpZ180KTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ182ID0gbWlkZGxld2FyZUVuZHBvaW50LnJlc29sdmVFbmRwb2ludENvbmZpZyhfY29uZmlnXzUpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzcgPSBodHRwQXV0aFNjaGVtZVByb3ZpZGVyLnJlc29sdmVIdHRwQXV0aFNjaGVtZUNvbmZpZyhfY29uZmlnXzYpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzggPSByZXNvbHZlUnVudGltZUV4dGVuc2lvbnMoX2NvbmZpZ183LCBjb25maWd1cmF0aW9uPy5leHRlbnNpb25zIHx8IFtdKTtcbiAgICAgICAgdGhpcy5jb25maWcgPSBfY29uZmlnXzg7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShzY2hlbWEuZ2V0U2NoZW1hU2VyZGVQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKG1pZGRsZXdhcmVVc2VyQWdlbnQuZ2V0VXNlckFnZW50UGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShtaWRkbGV3YXJlUmV0cnkuZ2V0UmV0cnlQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKG1pZGRsZXdhcmVDb250ZW50TGVuZ3RoLmdldENvbnRlbnRMZW5ndGhQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKG1pZGRsZXdhcmVIb3N0SGVhZGVyLmdldEhvc3RIZWFkZXJQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKG1pZGRsZXdhcmVMb2dnZXIuZ2V0TG9nZ2VyUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShtaWRkbGV3YXJlUmVjdXJzaW9uRGV0ZWN0aW9uLmdldFJlY3Vyc2lvbkRldGVjdGlvblBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoY29yZS5nZXRIdHRwQXV0aFNjaGVtZUVuZHBvaW50UnVsZVNldFBsdWdpbih0aGlzLmNvbmZpZywge1xuICAgICAgICAgICAgaHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXI6IGh0dHBBdXRoU2NoZW1lUHJvdmlkZXIuZGVmYXVsdFNTT0h0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyLFxuICAgICAgICAgICAgaWRlbnRpdHlQcm92aWRlckNvbmZpZ1Byb3ZpZGVyOiBhc3luYyAoY29uZmlnKSA9PiBuZXcgY29yZS5EZWZhdWx0SWRlbnRpdHlQcm92aWRlckNvbmZpZyh7XG4gICAgICAgICAgICAgICAgXCJhd3MuYXV0aCNzaWd2NFwiOiBjb25maWcuY3JlZGVudGlhbHMsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgfSkpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoY29yZS5nZXRIdHRwU2lnbmluZ1BsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgIH1cbiAgICBkZXN0cm95KCkge1xuICAgICAgICBzdXBlci5kZXN0cm95KCk7XG4gICAgfVxufVxuXG5sZXQgU1NPU2VydmljZUV4Y2VwdGlvbiQxID0gY2xhc3MgU1NPU2VydmljZUV4Y2VwdGlvbiBleHRlbmRzIHNtaXRoeUNsaWVudC5TZXJ2aWNlRXhjZXB0aW9uIHtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgU1NPU2VydmljZUV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn07XG5cbmxldCBJbnZhbGlkUmVxdWVzdEV4Y2VwdGlvbiQxID0gY2xhc3MgSW52YWxpZFJlcXVlc3RFeGNlcHRpb24gZXh0ZW5kcyBTU09TZXJ2aWNlRXhjZXB0aW9uJDEge1xuICAgIG5hbWUgPSBcIkludmFsaWRSZXF1ZXN0RXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiSW52YWxpZFJlcXVlc3RFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgSW52YWxpZFJlcXVlc3RFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59O1xubGV0IFJlc291cmNlTm90Rm91bmRFeGNlcHRpb24kMSA9IGNsYXNzIFJlc291cmNlTm90Rm91bmRFeGNlcHRpb24gZXh0ZW5kcyBTU09TZXJ2aWNlRXhjZXB0aW9uJDEge1xuICAgIG5hbWUgPSBcIlJlc291cmNlTm90Rm91bmRFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFJlc291cmNlTm90Rm91bmRFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59O1xubGV0IFRvb01hbnlSZXF1ZXN0c0V4Y2VwdGlvbiQxID0gY2xhc3MgVG9vTWFueVJlcXVlc3RzRXhjZXB0aW9uIGV4dGVuZHMgU1NPU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJUb29NYW55UmVxdWVzdHNFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJUb29NYW55UmVxdWVzdHNFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgVG9vTWFueVJlcXVlc3RzRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgfVxufTtcbmxldCBVbmF1dGhvcml6ZWRFeGNlcHRpb24kMSA9IGNsYXNzIFVuYXV0aG9yaXplZEV4Y2VwdGlvbiBleHRlbmRzIFNTT1NlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiVW5hdXRob3JpemVkRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiVW5hdXRob3JpemVkRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFVuYXV0aG9yaXplZEV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn07XG5cbmNvbnN0IF9BSSA9IFwiQWNjb3VudEluZm9cIjtcbmNvbnN0IF9BTFQgPSBcIkFjY291bnRMaXN0VHlwZVwiO1xuY29uc3QgX0FUVCA9IFwiQWNjZXNzVG9rZW5UeXBlXCI7XG5jb25zdCBfR1JDID0gXCJHZXRSb2xlQ3JlZGVudGlhbHNcIjtcbmNvbnN0IF9HUkNSID0gXCJHZXRSb2xlQ3JlZGVudGlhbHNSZXF1ZXN0XCI7XG5jb25zdCBfR1JDUmUgPSBcIkdldFJvbGVDcmVkZW50aWFsc1Jlc3BvbnNlXCI7XG5jb25zdCBfSVJFID0gXCJJbnZhbGlkUmVxdWVzdEV4Y2VwdGlvblwiO1xuY29uc3QgX0wgPSBcIkxvZ291dFwiO1xuY29uc3QgX0xBID0gXCJMaXN0QWNjb3VudHNcIjtcbmNvbnN0IF9MQVIgPSBcIkxpc3RBY2NvdW50c1JlcXVlc3RcIjtcbmNvbnN0IF9MQVJSID0gXCJMaXN0QWNjb3VudFJvbGVzUmVxdWVzdFwiO1xuY29uc3QgX0xBUlJpID0gXCJMaXN0QWNjb3VudFJvbGVzUmVzcG9uc2VcIjtcbmNvbnN0IF9MQVJpID0gXCJMaXN0QWNjb3VudHNSZXNwb25zZVwiO1xuY29uc3QgX0xBUmlzID0gXCJMaXN0QWNjb3VudFJvbGVzXCI7XG5jb25zdCBfTFIgPSBcIkxvZ291dFJlcXVlc3RcIjtcbmNvbnN0IF9SQyA9IFwiUm9sZUNyZWRlbnRpYWxzXCI7XG5jb25zdCBfUkkgPSBcIlJvbGVJbmZvXCI7XG5jb25zdCBfUkxUID0gXCJSb2xlTGlzdFR5cGVcIjtcbmNvbnN0IF9STkZFID0gXCJSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uXCI7XG5jb25zdCBfU0FLVCA9IFwiU2VjcmV0QWNjZXNzS2V5VHlwZVwiO1xuY29uc3QgX1NUVCA9IFwiU2Vzc2lvblRva2VuVHlwZVwiO1xuY29uc3QgX1RNUkUgPSBcIlRvb01hbnlSZXF1ZXN0c0V4Y2VwdGlvblwiO1xuY29uc3QgX1VFID0gXCJVbmF1dGhvcml6ZWRFeGNlcHRpb25cIjtcbmNvbnN0IF9hSSA9IFwiYWNjb3VudElkXCI7XG5jb25zdCBfYUtJID0gXCJhY2Nlc3NLZXlJZFwiO1xuY29uc3QgX2FMID0gXCJhY2NvdW50TGlzdFwiO1xuY29uc3QgX2FOID0gXCJhY2NvdW50TmFtZVwiO1xuY29uc3QgX2FUID0gXCJhY2Nlc3NUb2tlblwiO1xuY29uc3QgX2FpID0gXCJhY2NvdW50X2lkXCI7XG5jb25zdCBfYyA9IFwiY2xpZW50XCI7XG5jb25zdCBfZSA9IFwiZXJyb3JcIjtcbmNvbnN0IF9lQSA9IFwiZW1haWxBZGRyZXNzXCI7XG5jb25zdCBfZXggPSBcImV4cGlyYXRpb25cIjtcbmNvbnN0IF9oID0gXCJodHRwXCI7XG5jb25zdCBfaEUgPSBcImh0dHBFcnJvclwiO1xuY29uc3QgX2hIID0gXCJodHRwSGVhZGVyXCI7XG5jb25zdCBfaFEgPSBcImh0dHBRdWVyeVwiO1xuY29uc3QgX20gPSBcIm1lc3NhZ2VcIjtcbmNvbnN0IF9tUiA9IFwibWF4UmVzdWx0c1wiO1xuY29uc3QgX21yID0gXCJtYXhfcmVzdWx0XCI7XG5jb25zdCBfblQgPSBcIm5leHRUb2tlblwiO1xuY29uc3QgX250ID0gXCJuZXh0X3Rva2VuXCI7XG5jb25zdCBfckMgPSBcInJvbGVDcmVkZW50aWFsc1wiO1xuY29uc3QgX3JMID0gXCJyb2xlTGlzdFwiO1xuY29uc3QgX3JOID0gXCJyb2xlTmFtZVwiO1xuY29uc3QgX3JuID0gXCJyb2xlX25hbWVcIjtcbmNvbnN0IF9zID0gXCJzbWl0aHkudHMuc2RrLnN5bnRoZXRpYy5jb20uYW1hem9uYXdzLnNzb1wiO1xuY29uc3QgX3NBSyA9IFwic2VjcmV0QWNjZXNzS2V5XCI7XG5jb25zdCBfc1QgPSBcInNlc3Npb25Ub2tlblwiO1xuY29uc3QgX3hhc2J0ID0gXCJ4LWFtei1zc29fYmVhcmVyX3Rva2VuXCI7XG5jb25zdCBuMCA9IFwiY29tLmFtYXpvbmF3cy5zc29cIjtcbnZhciBBY2Nlc3NUb2tlblR5cGUgPSBbMCwgbjAsIF9BVFQsIDgsIDBdO1xudmFyIFNlY3JldEFjY2Vzc0tleVR5cGUgPSBbMCwgbjAsIF9TQUtULCA4LCAwXTtcbnZhciBTZXNzaW9uVG9rZW5UeXBlID0gWzAsIG4wLCBfU1RULCA4LCAwXTtcbnZhciBBY2NvdW50SW5mbyA9IFszLCBuMCwgX0FJLCAwLCBbX2FJLCBfYU4sIF9lQV0sIFswLCAwLCAwXV07XG52YXIgR2V0Um9sZUNyZWRlbnRpYWxzUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HUkNSLFxuICAgIDAsXG4gICAgW19yTiwgX2FJLCBfYVRdLFxuICAgIFtcbiAgICAgICAgWzAsIHsgW19oUV06IF9ybiB9XSxcbiAgICAgICAgWzAsIHsgW19oUV06IF9haSB9XSxcbiAgICAgICAgWygpID0+IEFjY2Vzc1Rva2VuVHlwZSwgeyBbX2hIXTogX3hhc2J0IH1dLFxuICAgIF0sXG5dO1xudmFyIEdldFJvbGVDcmVkZW50aWFsc1Jlc3BvbnNlID0gWzMsIG4wLCBfR1JDUmUsIDAsIFtfckNdLCBbWygpID0+IFJvbGVDcmVkZW50aWFscywgMF1dXTtcbnZhciBJbnZhbGlkUmVxdWVzdEV4Y2VwdGlvbiA9IFstMywgbjAsIF9JUkUsIHsgW19lXTogX2MsIFtfaEVdOiA0MDAgfSwgW19tXSwgWzBdXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKEludmFsaWRSZXF1ZXN0RXhjZXB0aW9uLCBJbnZhbGlkUmVxdWVzdEV4Y2VwdGlvbiQxKTtcbnZhciBMaXN0QWNjb3VudFJvbGVzUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9MQVJSLFxuICAgIDAsXG4gICAgW19uVCwgX21SLCBfYVQsIF9hSV0sXG4gICAgW1xuICAgICAgICBbMCwgeyBbX2hRXTogX250IH1dLFxuICAgICAgICBbMSwgeyBbX2hRXTogX21yIH1dLFxuICAgICAgICBbKCkgPT4gQWNjZXNzVG9rZW5UeXBlLCB7IFtfaEhdOiBfeGFzYnQgfV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfYWkgfV0sXG4gICAgXSxcbl07XG52YXIgTGlzdEFjY291bnRSb2xlc1Jlc3BvbnNlID0gWzMsIG4wLCBfTEFSUmksIDAsIFtfblQsIF9yTF0sIFswLCAoKSA9PiBSb2xlTGlzdFR5cGVdXTtcbnZhciBMaXN0QWNjb3VudHNSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0xBUixcbiAgICAwLFxuICAgIFtfblQsIF9tUiwgX2FUXSxcbiAgICBbXG4gICAgICAgIFswLCB7IFtfaFFdOiBfbnQgfV0sXG4gICAgICAgIFsxLCB7IFtfaFFdOiBfbXIgfV0sXG4gICAgICAgIFsoKSA9PiBBY2Nlc3NUb2tlblR5cGUsIHsgW19oSF06IF94YXNidCB9XSxcbiAgICBdLFxuXTtcbnZhciBMaXN0QWNjb3VudHNSZXNwb25zZSA9IFszLCBuMCwgX0xBUmksIDAsIFtfblQsIF9hTF0sIFswLCAoKSA9PiBBY2NvdW50TGlzdFR5cGVdXTtcbnZhciBMb2dvdXRSZXF1ZXN0ID0gWzMsIG4wLCBfTFIsIDAsIFtfYVRdLCBbWygpID0+IEFjY2Vzc1Rva2VuVHlwZSwgeyBbX2hIXTogX3hhc2J0IH1dXV07XG52YXIgUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvbiA9IFstMywgbjAsIF9STkZFLCB7IFtfZV06IF9jLCBbX2hFXTogNDA0IH0sIFtfbV0sIFswXV07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uLCBSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uJDEpO1xudmFyIFJvbGVDcmVkZW50aWFscyA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9SQyxcbiAgICAwLFxuICAgIFtfYUtJLCBfc0FLLCBfc1QsIF9leF0sXG4gICAgWzAsIFsoKSA9PiBTZWNyZXRBY2Nlc3NLZXlUeXBlLCAwXSwgWygpID0+IFNlc3Npb25Ub2tlblR5cGUsIDBdLCAxXSxcbl07XG52YXIgUm9sZUluZm8gPSBbMywgbjAsIF9SSSwgMCwgW19yTiwgX2FJXSwgWzAsIDBdXTtcbnZhciBUb29NYW55UmVxdWVzdHNFeGNlcHRpb24gPSBbLTMsIG4wLCBfVE1SRSwgeyBbX2VdOiBfYywgW19oRV06IDQyOSB9LCBbX21dLCBbMF1dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoVG9vTWFueVJlcXVlc3RzRXhjZXB0aW9uLCBUb29NYW55UmVxdWVzdHNFeGNlcHRpb24kMSk7XG52YXIgVW5hdXRob3JpemVkRXhjZXB0aW9uID0gWy0zLCBuMCwgX1VFLCB7IFtfZV06IF9jLCBbX2hFXTogNDAxIH0sIFtfbV0sIFswXV07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihVbmF1dGhvcml6ZWRFeGNlcHRpb24sIFVuYXV0aG9yaXplZEV4Y2VwdGlvbiQxKTtcbnZhciBfX1VuaXQgPSBcInVuaXRcIjtcbnZhciBTU09TZXJ2aWNlRXhjZXB0aW9uID0gWy0zLCBfcywgXCJTU09TZXJ2aWNlRXhjZXB0aW9uXCIsIDAsIFtdLCBbXV07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihfcykucmVnaXN0ZXJFcnJvcihTU09TZXJ2aWNlRXhjZXB0aW9uLCBTU09TZXJ2aWNlRXhjZXB0aW9uJDEpO1xudmFyIEFjY291bnRMaXN0VHlwZSA9IFsxLCBuMCwgX0FMVCwgMCwgKCkgPT4gQWNjb3VudEluZm9dO1xudmFyIFJvbGVMaXN0VHlwZSA9IFsxLCBuMCwgX1JMVCwgMCwgKCkgPT4gUm9sZUluZm9dO1xudmFyIEdldFJvbGVDcmVkZW50aWFscyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9HUkMsXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIvZmVkZXJhdGlvbi9jcmVkZW50aWFsc1wiLCAyMDBdIH0sXG4gICAgKCkgPT4gR2V0Um9sZUNyZWRlbnRpYWxzUmVxdWVzdCxcbiAgICAoKSA9PiBHZXRSb2xlQ3JlZGVudGlhbHNSZXNwb25zZSxcbl07XG52YXIgTGlzdEFjY291bnRSb2xlcyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9MQVJpcyxcbiAgICB7IFtfaF06IFtcIkdFVFwiLCBcIi9hc3NpZ25tZW50L3JvbGVzXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBMaXN0QWNjb3VudFJvbGVzUmVxdWVzdCxcbiAgICAoKSA9PiBMaXN0QWNjb3VudFJvbGVzUmVzcG9uc2UsXG5dO1xudmFyIExpc3RBY2NvdW50cyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9MQSxcbiAgICB7IFtfaF06IFtcIkdFVFwiLCBcIi9hc3NpZ25tZW50L2FjY291bnRzXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBMaXN0QWNjb3VudHNSZXF1ZXN0LFxuICAgICgpID0+IExpc3RBY2NvdW50c1Jlc3BvbnNlLFxuXTtcbnZhciBMb2dvdXQgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfTCxcbiAgICB7IFtfaF06IFtcIlBPU1RcIiwgXCIvbG9nb3V0XCIsIDIwMF0gfSxcbiAgICAoKSA9PiBMb2dvdXRSZXF1ZXN0LFxuICAgICgpID0+IF9fVW5pdCxcbl07XG5cbmNsYXNzIEdldFJvbGVDcmVkZW50aWFsc0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIlNXQlBvcnRhbFNlcnZpY2VcIiwgXCJHZXRSb2xlQ3JlZGVudGlhbHNcIiwge30pXG4gICAgLm4oXCJTU09DbGllbnRcIiwgXCJHZXRSb2xlQ3JlZGVudGlhbHNDb21tYW5kXCIpXG4gICAgLnNjKEdldFJvbGVDcmVkZW50aWFscylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIExpc3RBY2NvdW50Um9sZXNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJTV0JQb3J0YWxTZXJ2aWNlXCIsIFwiTGlzdEFjY291bnRSb2xlc1wiLCB7fSlcbiAgICAubihcIlNTT0NsaWVudFwiLCBcIkxpc3RBY2NvdW50Um9sZXNDb21tYW5kXCIpXG4gICAgLnNjKExpc3RBY2NvdW50Um9sZXMpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBMaXN0QWNjb3VudHNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJTV0JQb3J0YWxTZXJ2aWNlXCIsIFwiTGlzdEFjY291bnRzXCIsIHt9KVxuICAgIC5uKFwiU1NPQ2xpZW50XCIsIFwiTGlzdEFjY291bnRzQ29tbWFuZFwiKVxuICAgIC5zYyhMaXN0QWNjb3VudHMpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBMb2dvdXRDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJTV0JQb3J0YWxTZXJ2aWNlXCIsIFwiTG9nb3V0XCIsIHt9KVxuICAgIC5uKFwiU1NPQ2xpZW50XCIsIFwiTG9nb3V0Q29tbWFuZFwiKVxuICAgIC5zYyhMb2dvdXQpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jb25zdCBjb21tYW5kcyA9IHtcbiAgICBHZXRSb2xlQ3JlZGVudGlhbHNDb21tYW5kLFxuICAgIExpc3RBY2NvdW50Um9sZXNDb21tYW5kLFxuICAgIExpc3RBY2NvdW50c0NvbW1hbmQsXG4gICAgTG9nb3V0Q29tbWFuZCxcbn07XG5jbGFzcyBTU08gZXh0ZW5kcyBTU09DbGllbnQge1xufVxuc21pdGh5Q2xpZW50LmNyZWF0ZUFnZ3JlZ2F0ZWRDbGllbnQoY29tbWFuZHMsIFNTTyk7XG5cbmNvbnN0IHBhZ2luYXRlTGlzdEFjY291bnRSb2xlcyA9IGNvcmUuY3JlYXRlUGFnaW5hdG9yKFNTT0NsaWVudCwgTGlzdEFjY291bnRSb2xlc0NvbW1hbmQsIFwibmV4dFRva2VuXCIsIFwibmV4dFRva2VuXCIsIFwibWF4UmVzdWx0c1wiKTtcblxuY29uc3QgcGFnaW5hdGVMaXN0QWNjb3VudHMgPSBjb3JlLmNyZWF0ZVBhZ2luYXRvcihTU09DbGllbnQsIExpc3RBY2NvdW50c0NvbW1hbmQsIFwibmV4dFRva2VuXCIsIFwibmV4dFRva2VuXCIsIFwibWF4UmVzdWx0c1wiKTtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiJENvbW1hbmRcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBzbWl0aHlDbGllbnQuQ29tbWFuZDsgfVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX0NsaWVudFwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHNtaXRoeUNsaWVudC5DbGllbnQ7IH1cbn0pO1xuZXhwb3J0cy5HZXRSb2xlQ3JlZGVudGlhbHNDb21tYW5kID0gR2V0Um9sZUNyZWRlbnRpYWxzQ29tbWFuZDtcbmV4cG9ydHMuSW52YWxpZFJlcXVlc3RFeGNlcHRpb24gPSBJbnZhbGlkUmVxdWVzdEV4Y2VwdGlvbiQxO1xuZXhwb3J0cy5MaXN0QWNjb3VudFJvbGVzQ29tbWFuZCA9IExpc3RBY2NvdW50Um9sZXNDb21tYW5kO1xuZXhwb3J0cy5MaXN0QWNjb3VudHNDb21tYW5kID0gTGlzdEFjY291bnRzQ29tbWFuZDtcbmV4cG9ydHMuTG9nb3V0Q29tbWFuZCA9IExvZ291dENvbW1hbmQ7XG5leHBvcnRzLlJlc291cmNlTm90Rm91bmRFeGNlcHRpb24gPSBSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uJDE7XG5leHBvcnRzLlNTTyA9IFNTTztcbmV4cG9ydHMuU1NPQ2xpZW50ID0gU1NPQ2xpZW50O1xuZXhwb3J0cy5TU09TZXJ2aWNlRXhjZXB0aW9uID0gU1NPU2VydmljZUV4Y2VwdGlvbiQxO1xuZXhwb3J0cy5Ub29NYW55UmVxdWVzdHNFeGNlcHRpb24gPSBUb29NYW55UmVxdWVzdHNFeGNlcHRpb24kMTtcbmV4cG9ydHMuVW5hdXRob3JpemVkRXhjZXB0aW9uID0gVW5hdXRob3JpemVkRXhjZXB0aW9uJDE7XG5leHBvcnRzLnBhZ2luYXRlTGlzdEFjY291bnRSb2xlcyA9IHBhZ2luYXRlTGlzdEFjY291bnRSb2xlcztcbmV4cG9ydHMucGFnaW5hdGVMaXN0QWNjb3VudHMgPSBwYWdpbmF0ZUxpc3RBY2NvdW50cztcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBjbGllbnRTc28gPSByZXF1aXJlKCdAYXdzLXNkay9jbGllbnQtc3NvJyk7XG5cblxuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJHZXRSb2xlQ3JlZGVudGlhbHNDb21tYW5kXCIsIHtcblx0ZW51bWVyYWJsZTogdHJ1ZSxcblx0Z2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBjbGllbnRTc28uR2V0Um9sZUNyZWRlbnRpYWxzQ29tbWFuZDsgfVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJTU09DbGllbnRcIiwge1xuXHRlbnVtZXJhYmxlOiB0cnVlLFxuXHRnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGNsaWVudFNzby5TU09DbGllbnQ7IH1cbn0pO1xuIiwgIid1c2Ugc3RyaWN0JztcblxudmFyIHByb3BlcnR5UHJvdmlkZXIgPSByZXF1aXJlKCdAc21pdGh5L3Byb3BlcnR5LXByb3ZpZGVyJyk7XG52YXIgc2hhcmVkSW5pRmlsZUxvYWRlciA9IHJlcXVpcmUoJ0BzbWl0aHkvc2hhcmVkLWluaS1maWxlLWxvYWRlcicpO1xudmFyIGNsaWVudCA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL2NvcmUvY2xpZW50Jyk7XG52YXIgdG9rZW5Qcm92aWRlcnMgPSByZXF1aXJlKCdAYXdzLXNkay90b2tlbi1wcm92aWRlcnMnKTtcblxuY29uc3QgaXNTc29Qcm9maWxlID0gKGFyZykgPT4gYXJnICYmXG4gICAgKHR5cGVvZiBhcmcuc3NvX3N0YXJ0X3VybCA9PT0gXCJzdHJpbmdcIiB8fFxuICAgICAgICB0eXBlb2YgYXJnLnNzb19hY2NvdW50X2lkID09PSBcInN0cmluZ1wiIHx8XG4gICAgICAgIHR5cGVvZiBhcmcuc3NvX3Nlc3Npb24gPT09IFwic3RyaW5nXCIgfHxcbiAgICAgICAgdHlwZW9mIGFyZy5zc29fcmVnaW9uID09PSBcInN0cmluZ1wiIHx8XG4gICAgICAgIHR5cGVvZiBhcmcuc3NvX3JvbGVfbmFtZSA9PT0gXCJzdHJpbmdcIik7XG5cbmNvbnN0IFNIT1VMRF9GQUlMX0NSRURFTlRJQUxfQ0hBSU4gPSBmYWxzZTtcbmNvbnN0IHJlc29sdmVTU09DcmVkZW50aWFscyA9IGFzeW5jICh7IHNzb1N0YXJ0VXJsLCBzc29TZXNzaW9uLCBzc29BY2NvdW50SWQsIHNzb1JlZ2lvbiwgc3NvUm9sZU5hbWUsIHNzb0NsaWVudCwgY2xpZW50Q29uZmlnLCBwYXJlbnRDbGllbnRDb25maWcsIGNhbGxlckNsaWVudENvbmZpZywgcHJvZmlsZSwgZmlsZXBhdGgsIGNvbmZpZ0ZpbGVwYXRoLCBpZ25vcmVDYWNoZSwgbG9nZ2VyLCB9KSA9PiB7XG4gICAgbGV0IHRva2VuO1xuICAgIGNvbnN0IHJlZnJlc2hNZXNzYWdlID0gYFRvIHJlZnJlc2ggdGhpcyBTU08gc2Vzc2lvbiBydW4gYXdzIHNzbyBsb2dpbiB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIHByb2ZpbGUuYDtcbiAgICBpZiAoc3NvU2Vzc2lvbikge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgX3Rva2VuID0gYXdhaXQgdG9rZW5Qcm92aWRlcnMuZnJvbVNzbyh7XG4gICAgICAgICAgICAgICAgcHJvZmlsZSxcbiAgICAgICAgICAgICAgICBmaWxlcGF0aCxcbiAgICAgICAgICAgICAgICBjb25maWdGaWxlcGF0aCxcbiAgICAgICAgICAgICAgICBpZ25vcmVDYWNoZSxcbiAgICAgICAgICAgIH0pKCk7XG4gICAgICAgICAgICB0b2tlbiA9IHtcbiAgICAgICAgICAgICAgICBhY2Nlc3NUb2tlbjogX3Rva2VuLnRva2VuLFxuICAgICAgICAgICAgICAgIGV4cGlyZXNBdDogbmV3IERhdGUoX3Rva2VuLmV4cGlyYXRpb24pLnRvSVNPU3RyaW5nKCksXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoZS5tZXNzYWdlLCB7XG4gICAgICAgICAgICAgICAgdHJ5TmV4dExpbms6IFNIT1VMRF9GQUlMX0NSRURFTlRJQUxfQ0hBSU4sXG4gICAgICAgICAgICAgICAgbG9nZ2VyLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB0b2tlbiA9IGF3YWl0IHNoYXJlZEluaUZpbGVMb2FkZXIuZ2V0U1NPVG9rZW5Gcm9tRmlsZShzc29TdGFydFVybCk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLkNyZWRlbnRpYWxzUHJvdmlkZXJFcnJvcihgVGhlIFNTTyBzZXNzaW9uIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHByb2ZpbGUgaXMgaW52YWxpZC4gJHtyZWZyZXNoTWVzc2FnZX1gLCB7XG4gICAgICAgICAgICAgICAgdHJ5TmV4dExpbms6IFNIT1VMRF9GQUlMX0NSRURFTlRJQUxfQ0hBSU4sXG4gICAgICAgICAgICAgICAgbG9nZ2VyLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKG5ldyBEYXRlKHRva2VuLmV4cGlyZXNBdCkuZ2V0VGltZSgpIC0gRGF0ZS5ub3coKSA8PSAwKSB7XG4gICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLkNyZWRlbnRpYWxzUHJvdmlkZXJFcnJvcihgVGhlIFNTTyBzZXNzaW9uIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHByb2ZpbGUgaGFzIGV4cGlyZWQuICR7cmVmcmVzaE1lc3NhZ2V9YCwge1xuICAgICAgICAgICAgdHJ5TmV4dExpbms6IFNIT1VMRF9GQUlMX0NSRURFTlRJQUxfQ0hBSU4sXG4gICAgICAgICAgICBsb2dnZXIsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCB7IGFjY2Vzc1Rva2VuIH0gPSB0b2tlbjtcbiAgICBjb25zdCB7IFNTT0NsaWVudCwgR2V0Um9sZUNyZWRlbnRpYWxzQ29tbWFuZCB9ID0gYXdhaXQgUHJvbWlzZS5yZXNvbHZlKCkudGhlbihmdW5jdGlvbiAoKSB7IHJldHVybiByZXF1aXJlKCcuL2xvYWRTc28tQ1Z5OGlxc1ouanMnKTsgfSk7XG4gICAgY29uc3Qgc3NvID0gc3NvQ2xpZW50IHx8XG4gICAgICAgIG5ldyBTU09DbGllbnQoT2JqZWN0LmFzc2lnbih7fSwgY2xpZW50Q29uZmlnID8/IHt9LCB7XG4gICAgICAgICAgICBsb2dnZXI6IGNsaWVudENvbmZpZz8ubG9nZ2VyID8/IGNhbGxlckNsaWVudENvbmZpZz8ubG9nZ2VyID8/IHBhcmVudENsaWVudENvbmZpZz8ubG9nZ2VyLFxuICAgICAgICAgICAgcmVnaW9uOiBjbGllbnRDb25maWc/LnJlZ2lvbiA/PyBzc29SZWdpb24sXG4gICAgICAgICAgICB1c2VyQWdlbnRBcHBJZDogY2xpZW50Q29uZmlnPy51c2VyQWdlbnRBcHBJZCA/PyBjYWxsZXJDbGllbnRDb25maWc/LnVzZXJBZ2VudEFwcElkID8/IHBhcmVudENsaWVudENvbmZpZz8udXNlckFnZW50QXBwSWQsXG4gICAgICAgIH0pKTtcbiAgICBsZXQgc3NvUmVzcDtcbiAgICB0cnkge1xuICAgICAgICBzc29SZXNwID0gYXdhaXQgc3NvLnNlbmQobmV3IEdldFJvbGVDcmVkZW50aWFsc0NvbW1hbmQoe1xuICAgICAgICAgICAgYWNjb3VudElkOiBzc29BY2NvdW50SWQsXG4gICAgICAgICAgICByb2xlTmFtZTogc3NvUm9sZU5hbWUsXG4gICAgICAgICAgICBhY2Nlc3NUb2tlbixcbiAgICAgICAgfSkpO1xuICAgIH1cbiAgICBjYXRjaCAoZSkge1xuICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoZSwge1xuICAgICAgICAgICAgdHJ5TmV4dExpbms6IFNIT1VMRF9GQUlMX0NSRURFTlRJQUxfQ0hBSU4sXG4gICAgICAgICAgICBsb2dnZXIsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCB7IHJvbGVDcmVkZW50aWFsczogeyBhY2Nlc3NLZXlJZCwgc2VjcmV0QWNjZXNzS2V5LCBzZXNzaW9uVG9rZW4sIGV4cGlyYXRpb24sIGNyZWRlbnRpYWxTY29wZSwgYWNjb3VudElkIH0gPSB7fSwgfSA9IHNzb1Jlc3A7XG4gICAgaWYgKCFhY2Nlc3NLZXlJZCB8fCAhc2VjcmV0QWNjZXNzS2V5IHx8ICFzZXNzaW9uVG9rZW4gfHwgIWV4cGlyYXRpb24pIHtcbiAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKFwiU1NPIHJldHVybnMgYW4gaW52YWxpZCB0ZW1wb3JhcnkgY3JlZGVudGlhbC5cIiwge1xuICAgICAgICAgICAgdHJ5TmV4dExpbms6IFNIT1VMRF9GQUlMX0NSRURFTlRJQUxfQ0hBSU4sXG4gICAgICAgICAgICBsb2dnZXIsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCBjcmVkZW50aWFscyA9IHtcbiAgICAgICAgYWNjZXNzS2V5SWQsXG4gICAgICAgIHNlY3JldEFjY2Vzc0tleSxcbiAgICAgICAgc2Vzc2lvblRva2VuLFxuICAgICAgICBleHBpcmF0aW9uOiBuZXcgRGF0ZShleHBpcmF0aW9uKSxcbiAgICAgICAgLi4uKGNyZWRlbnRpYWxTY29wZSAmJiB7IGNyZWRlbnRpYWxTY29wZSB9KSxcbiAgICAgICAgLi4uKGFjY291bnRJZCAmJiB7IGFjY291bnRJZCB9KSxcbiAgICB9O1xuICAgIGlmIChzc29TZXNzaW9uKSB7XG4gICAgICAgIGNsaWVudC5zZXRDcmVkZW50aWFsRmVhdHVyZShjcmVkZW50aWFscywgXCJDUkVERU5USUFMU19TU09cIiwgXCJzXCIpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgY2xpZW50LnNldENyZWRlbnRpYWxGZWF0dXJlKGNyZWRlbnRpYWxzLCBcIkNSRURFTlRJQUxTX1NTT19MRUdBQ1lcIiwgXCJ1XCIpO1xuICAgIH1cbiAgICByZXR1cm4gY3JlZGVudGlhbHM7XG59O1xuXG5jb25zdCB2YWxpZGF0ZVNzb1Byb2ZpbGUgPSAocHJvZmlsZSwgbG9nZ2VyKSA9PiB7XG4gICAgY29uc3QgeyBzc29fc3RhcnRfdXJsLCBzc29fYWNjb3VudF9pZCwgc3NvX3JlZ2lvbiwgc3NvX3JvbGVfbmFtZSB9ID0gcHJvZmlsZTtcbiAgICBpZiAoIXNzb19zdGFydF91cmwgfHwgIXNzb19hY2NvdW50X2lkIHx8ICFzc29fcmVnaW9uIHx8ICFzc29fcm9sZV9uYW1lKSB7XG4gICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLkNyZWRlbnRpYWxzUHJvdmlkZXJFcnJvcihgUHJvZmlsZSBpcyBjb25maWd1cmVkIHdpdGggaW52YWxpZCBTU08gY3JlZGVudGlhbHMuIFJlcXVpcmVkIHBhcmFtZXRlcnMgXCJzc29fYWNjb3VudF9pZFwiLCBgICtcbiAgICAgICAgICAgIGBcInNzb19yZWdpb25cIiwgXCJzc29fcm9sZV9uYW1lXCIsIFwic3NvX3N0YXJ0X3VybFwiLiBHb3QgJHtPYmplY3Qua2V5cyhwcm9maWxlKS5qb2luKFwiLCBcIil9XFxuUmVmZXJlbmNlOiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2xpL2xhdGVzdC91c2VyZ3VpZGUvY2xpLWNvbmZpZ3VyZS1zc28uaHRtbGAsIHsgdHJ5TmV4dExpbms6IGZhbHNlLCBsb2dnZXIgfSk7XG4gICAgfVxuICAgIHJldHVybiBwcm9maWxlO1xufTtcblxuY29uc3QgZnJvbVNTTyA9IChpbml0ID0ge30pID0+IGFzeW5jICh7IGNhbGxlckNsaWVudENvbmZpZyB9ID0ge30pID0+IHtcbiAgICBpbml0LmxvZ2dlcj8uZGVidWcoXCJAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLXNzbyAtIGZyb21TU09cIik7XG4gICAgY29uc3QgeyBzc29TdGFydFVybCwgc3NvQWNjb3VudElkLCBzc29SZWdpb24sIHNzb1JvbGVOYW1lLCBzc29TZXNzaW9uIH0gPSBpbml0O1xuICAgIGNvbnN0IHsgc3NvQ2xpZW50IH0gPSBpbml0O1xuICAgIGNvbnN0IHByb2ZpbGVOYW1lID0gc2hhcmVkSW5pRmlsZUxvYWRlci5nZXRQcm9maWxlTmFtZSh7XG4gICAgICAgIHByb2ZpbGU6IGluaXQucHJvZmlsZSA/PyBjYWxsZXJDbGllbnRDb25maWc/LnByb2ZpbGUsXG4gICAgfSk7XG4gICAgaWYgKCFzc29TdGFydFVybCAmJiAhc3NvQWNjb3VudElkICYmICFzc29SZWdpb24gJiYgIXNzb1JvbGVOYW1lICYmICFzc29TZXNzaW9uKSB7XG4gICAgICAgIGNvbnN0IHByb2ZpbGVzID0gYXdhaXQgc2hhcmVkSW5pRmlsZUxvYWRlci5wYXJzZUtub3duRmlsZXMoaW5pdCk7XG4gICAgICAgIGNvbnN0IHByb2ZpbGUgPSBwcm9maWxlc1twcm9maWxlTmFtZV07XG4gICAgICAgIGlmICghcHJvZmlsZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKGBQcm9maWxlICR7cHJvZmlsZU5hbWV9IHdhcyBub3QgZm91bmQuYCwgeyBsb2dnZXI6IGluaXQubG9nZ2VyIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmICghaXNTc29Qcm9maWxlKHByb2ZpbGUpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoYFByb2ZpbGUgJHtwcm9maWxlTmFtZX0gaXMgbm90IGNvbmZpZ3VyZWQgd2l0aCBTU08gY3JlZGVudGlhbHMuYCwge1xuICAgICAgICAgICAgICAgIGxvZ2dlcjogaW5pdC5sb2dnZXIsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocHJvZmlsZT8uc3NvX3Nlc3Npb24pIHtcbiAgICAgICAgICAgIGNvbnN0IHNzb1Nlc3Npb25zID0gYXdhaXQgc2hhcmVkSW5pRmlsZUxvYWRlci5sb2FkU3NvU2Vzc2lvbkRhdGEoaW5pdCk7XG4gICAgICAgICAgICBjb25zdCBzZXNzaW9uID0gc3NvU2Vzc2lvbnNbcHJvZmlsZS5zc29fc2Vzc2lvbl07XG4gICAgICAgICAgICBjb25zdCBjb25mbGljdE1zZyA9IGAgY29uZmlndXJhdGlvbnMgaW4gcHJvZmlsZSAke3Byb2ZpbGVOYW1lfSBhbmQgc3NvLXNlc3Npb24gJHtwcm9maWxlLnNzb19zZXNzaW9ufWA7XG4gICAgICAgICAgICBpZiAoc3NvUmVnaW9uICYmIHNzb1JlZ2lvbiAhPT0gc2Vzc2lvbi5zc29fcmVnaW9uKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKGBDb25mbGljdGluZyBTU08gcmVnaW9uYCArIGNvbmZsaWN0TXNnLCB7XG4gICAgICAgICAgICAgICAgICAgIHRyeU5leHRMaW5rOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgbG9nZ2VyOiBpbml0LmxvZ2dlcixcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzc29TdGFydFVybCAmJiBzc29TdGFydFVybCAhPT0gc2Vzc2lvbi5zc29fc3RhcnRfdXJsKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKGBDb25mbGljdGluZyBTU08gc3RhcnRfdXJsYCArIGNvbmZsaWN0TXNnLCB7XG4gICAgICAgICAgICAgICAgICAgIHRyeU5leHRMaW5rOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgbG9nZ2VyOiBpbml0LmxvZ2dlcixcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHByb2ZpbGUuc3NvX3JlZ2lvbiA9IHNlc3Npb24uc3NvX3JlZ2lvbjtcbiAgICAgICAgICAgIHByb2ZpbGUuc3NvX3N0YXJ0X3VybCA9IHNlc3Npb24uc3NvX3N0YXJ0X3VybDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB7IHNzb19zdGFydF91cmwsIHNzb19hY2NvdW50X2lkLCBzc29fcmVnaW9uLCBzc29fcm9sZV9uYW1lLCBzc29fc2Vzc2lvbiB9ID0gdmFsaWRhdGVTc29Qcm9maWxlKHByb2ZpbGUsIGluaXQubG9nZ2VyKTtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVTU09DcmVkZW50aWFscyh7XG4gICAgICAgICAgICBzc29TdGFydFVybDogc3NvX3N0YXJ0X3VybCxcbiAgICAgICAgICAgIHNzb1Nlc3Npb246IHNzb19zZXNzaW9uLFxuICAgICAgICAgICAgc3NvQWNjb3VudElkOiBzc29fYWNjb3VudF9pZCxcbiAgICAgICAgICAgIHNzb1JlZ2lvbjogc3NvX3JlZ2lvbixcbiAgICAgICAgICAgIHNzb1JvbGVOYW1lOiBzc29fcm9sZV9uYW1lLFxuICAgICAgICAgICAgc3NvQ2xpZW50OiBzc29DbGllbnQsXG4gICAgICAgICAgICBjbGllbnRDb25maWc6IGluaXQuY2xpZW50Q29uZmlnLFxuICAgICAgICAgICAgcGFyZW50Q2xpZW50Q29uZmlnOiBpbml0LnBhcmVudENsaWVudENvbmZpZyxcbiAgICAgICAgICAgIGNhbGxlckNsaWVudENvbmZpZzogaW5pdC5jYWxsZXJDbGllbnRDb25maWcsXG4gICAgICAgICAgICBwcm9maWxlOiBwcm9maWxlTmFtZSxcbiAgICAgICAgICAgIGZpbGVwYXRoOiBpbml0LmZpbGVwYXRoLFxuICAgICAgICAgICAgY29uZmlnRmlsZXBhdGg6IGluaXQuY29uZmlnRmlsZXBhdGgsXG4gICAgICAgICAgICBpZ25vcmVDYWNoZTogaW5pdC5pZ25vcmVDYWNoZSxcbiAgICAgICAgICAgIGxvZ2dlcjogaW5pdC5sb2dnZXIsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBlbHNlIGlmICghc3NvU3RhcnRVcmwgfHwgIXNzb0FjY291bnRJZCB8fCAhc3NvUmVnaW9uIHx8ICFzc29Sb2xlTmFtZSkge1xuICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoXCJJbmNvbXBsZXRlIGNvbmZpZ3VyYXRpb24uIFRoZSBmcm9tU1NPKCkgYXJndW1lbnQgaGFzaCBtdXN0IGluY2x1ZGUgXCIgK1xuICAgICAgICAgICAgJ1wic3NvU3RhcnRVcmxcIiwgXCJzc29BY2NvdW50SWRcIiwgXCJzc29SZWdpb25cIiwgXCJzc29Sb2xlTmFtZVwiJywgeyB0cnlOZXh0TGluazogZmFsc2UsIGxvZ2dlcjogaW5pdC5sb2dnZXIgfSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZVNTT0NyZWRlbnRpYWxzKHtcbiAgICAgICAgICAgIHNzb1N0YXJ0VXJsLFxuICAgICAgICAgICAgc3NvU2Vzc2lvbixcbiAgICAgICAgICAgIHNzb0FjY291bnRJZCxcbiAgICAgICAgICAgIHNzb1JlZ2lvbixcbiAgICAgICAgICAgIHNzb1JvbGVOYW1lLFxuICAgICAgICAgICAgc3NvQ2xpZW50LFxuICAgICAgICAgICAgY2xpZW50Q29uZmlnOiBpbml0LmNsaWVudENvbmZpZyxcbiAgICAgICAgICAgIHBhcmVudENsaWVudENvbmZpZzogaW5pdC5wYXJlbnRDbGllbnRDb25maWcsXG4gICAgICAgICAgICBjYWxsZXJDbGllbnRDb25maWc6IGluaXQuY2FsbGVyQ2xpZW50Q29uZmlnLFxuICAgICAgICAgICAgcHJvZmlsZTogcHJvZmlsZU5hbWUsXG4gICAgICAgICAgICBmaWxlcGF0aDogaW5pdC5maWxlcGF0aCxcbiAgICAgICAgICAgIGNvbmZpZ0ZpbGVwYXRoOiBpbml0LmNvbmZpZ0ZpbGVwYXRoLFxuICAgICAgICAgICAgaWdub3JlQ2FjaGU6IGluaXQuaWdub3JlQ2FjaGUsXG4gICAgICAgICAgICBsb2dnZXI6IGluaXQubG9nZ2VyLFxuICAgICAgICB9KTtcbiAgICB9XG59O1xuXG5leHBvcnRzLmZyb21TU08gPSBmcm9tU1NPO1xuZXhwb3J0cy5pc1Nzb1Byb2ZpbGUgPSBpc1Nzb1Byb2ZpbGU7XG5leHBvcnRzLnZhbGlkYXRlU3NvUHJvZmlsZSA9IHZhbGlkYXRlU3NvUHJvZmlsZTtcbiIsICJpbXBvcnQgeyByZXNvbHZlQXdzU2RrU2lnVjRDb25maWcsIH0gZnJvbSBcIkBhd3Mtc2RrL2NvcmVcIjtcbmltcG9ydCB7IGdldFNtaXRoeUNvbnRleHQsIG5vcm1hbGl6ZVByb3ZpZGVyIH0gZnJvbSBcIkBzbWl0aHkvdXRpbC1taWRkbGV3YXJlXCI7XG5leHBvcnQgY29uc3QgZGVmYXVsdFNpZ25pbkh0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyID0gYXN5bmMgKGNvbmZpZywgY29udGV4dCwgaW5wdXQpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgICBvcGVyYXRpb246IGdldFNtaXRoeUNvbnRleHQoY29udGV4dCkub3BlcmF0aW9uLFxuICAgICAgICByZWdpb246IChhd2FpdCBub3JtYWxpemVQcm92aWRlcihjb25maWcucmVnaW9uKSgpKSB8fFxuICAgICAgICAgICAgKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJleHBlY3RlZCBgcmVnaW9uYCB0byBiZSBjb25maWd1cmVkIGZvciBgYXdzLmF1dGgjc2lndjRgXCIpO1xuICAgICAgICAgICAgfSkoKSxcbiAgICB9O1xufTtcbmZ1bmN0aW9uIGNyZWF0ZUF3c0F1dGhTaWd2NEh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc2NoZW1lSWQ6IFwiYXdzLmF1dGgjc2lndjRcIixcbiAgICAgICAgc2lnbmluZ1Byb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIG5hbWU6IFwic2lnbmluXCIsXG4gICAgICAgICAgICByZWdpb246IGF1dGhQYXJhbWV0ZXJzLnJlZ2lvbixcbiAgICAgICAgfSxcbiAgICAgICAgcHJvcGVydGllc0V4dHJhY3RvcjogKGNvbmZpZywgY29udGV4dCkgPT4gKHtcbiAgICAgICAgICAgIHNpZ25pbmdQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgICAgY29uZmlnLFxuICAgICAgICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9KSxcbiAgICB9O1xufVxuZnVuY3Rpb24gY3JlYXRlU21pdGh5QXBpTm9BdXRoSHR0cEF1dGhPcHRpb24oYXV0aFBhcmFtZXRlcnMpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBzY2hlbWVJZDogXCJzbWl0aHkuYXBpI25vQXV0aFwiLFxuICAgIH07XG59XG5leHBvcnQgY29uc3QgZGVmYXVsdFNpZ25pbkh0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSAoYXV0aFBhcmFtZXRlcnMpID0+IHtcbiAgICBjb25zdCBvcHRpb25zID0gW107XG4gICAgc3dpdGNoIChhdXRoUGFyYW1ldGVycy5vcGVyYXRpb24pIHtcbiAgICAgICAgY2FzZSBcIkNyZWF0ZU9BdXRoMlRva2VuXCI6IHtcbiAgICAgICAgICAgIG9wdGlvbnMucHVzaChjcmVhdGVTbWl0aHlBcGlOb0F1dGhIdHRwQXV0aE9wdGlvbihhdXRoUGFyYW1ldGVycykpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgb3B0aW9ucy5wdXNoKGNyZWF0ZUF3c0F1dGhTaWd2NEh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG9wdGlvbnM7XG59O1xuZXhwb3J0IGNvbnN0IHJlc29sdmVIdHRwQXV0aFNjaGVtZUNvbmZpZyA9IChjb25maWcpID0+IHtcbiAgICBjb25zdCBjb25maWdfMCA9IHJlc29sdmVBd3NTZGtTaWdWNENvbmZpZyhjb25maWcpO1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKGNvbmZpZ18wLCB7XG4gICAgICAgIGF1dGhTY2hlbWVQcmVmZXJlbmNlOiBub3JtYWxpemVQcm92aWRlcihjb25maWcuYXV0aFNjaGVtZVByZWZlcmVuY2UgPz8gW10pLFxuICAgIH0pO1xufTtcbiIsICJleHBvcnQgY29uc3QgcmVzb2x2ZUNsaWVudEVuZHBvaW50UGFyYW1ldGVycyA9IChvcHRpb25zKSA9PiB7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24ob3B0aW9ucywge1xuICAgICAgICB1c2VEdWFsc3RhY2tFbmRwb2ludDogb3B0aW9ucy51c2VEdWFsc3RhY2tFbmRwb2ludCA/PyBmYWxzZSxcbiAgICAgICAgdXNlRmlwc0VuZHBvaW50OiBvcHRpb25zLnVzZUZpcHNFbmRwb2ludCA/PyBmYWxzZSxcbiAgICAgICAgZGVmYXVsdFNpZ25pbmdOYW1lOiBcInNpZ25pblwiLFxuICAgIH0pO1xufTtcbmV4cG9ydCBjb25zdCBjb21tb25QYXJhbXMgPSB7XG4gICAgVXNlRklQUzogeyB0eXBlOiBcImJ1aWx0SW5QYXJhbXNcIiwgbmFtZTogXCJ1c2VGaXBzRW5kcG9pbnRcIiB9LFxuICAgIEVuZHBvaW50OiB7IHR5cGU6IFwiYnVpbHRJblBhcmFtc1wiLCBuYW1lOiBcImVuZHBvaW50XCIgfSxcbiAgICBSZWdpb246IHsgdHlwZTogXCJidWlsdEluUGFyYW1zXCIsIG5hbWU6IFwicmVnaW9uXCIgfSxcbiAgICBVc2VEdWFsU3RhY2s6IHsgdHlwZTogXCJidWlsdEluUGFyYW1zXCIsIG5hbWU6IFwidXNlRHVhbHN0YWNrRW5kcG9pbnRcIiB9LFxufTtcbiIsICJ7XG4gIFwibmFtZVwiOiBcIkBhd3Mtc2RrL25lc3RlZC1jbGllbnRzXCIsXG4gIFwidmVyc2lvblwiOiBcIjMuOTUyLjBcIixcbiAgXCJkZXNjcmlwdGlvblwiOiBcIk5lc3RlZCBjbGllbnRzIGZvciBBV1MgU0RLIHBhY2thZ2VzLlwiLFxuICBcIm1haW5cIjogXCIuL2Rpc3QtY2pzL2luZGV4LmpzXCIsXG4gIFwibW9kdWxlXCI6IFwiLi9kaXN0LWVzL2luZGV4LmpzXCIsXG4gIFwidHlwZXNcIjogXCIuL2Rpc3QtdHlwZXMvaW5kZXguZC50c1wiLFxuICBcInNjcmlwdHNcIjoge1xuICAgIFwiYnVpbGRcIjogXCJ5YXJuIGxpbnQgJiYgY29uY3VycmVudGx5ICd5YXJuOmJ1aWxkOmNqcycgJ3lhcm46YnVpbGQ6ZXMnICd5YXJuOmJ1aWxkOnR5cGVzJ1wiLFxuICAgIFwiYnVpbGQ6Y2pzXCI6IFwibm9kZSAuLi8uLi9zY3JpcHRzL2NvbXBpbGF0aW9uL2lubGluZSBuZXN0ZWQtY2xpZW50c1wiLFxuICAgIFwiYnVpbGQ6ZXNcIjogXCJ0c2MgLXAgdHNjb25maWcuZXMuanNvblwiLFxuICAgIFwiYnVpbGQ6aW5jbHVkZTpkZXBzXCI6IFwibGVybmEgcnVuIC0tc2NvcGUgJG5wbV9wYWNrYWdlX25hbWUgLS1pbmNsdWRlLWRlcGVuZGVuY2llcyBidWlsZFwiLFxuICAgIFwiYnVpbGQ6dHlwZXNcIjogXCJ0c2MgLXAgdHNjb25maWcudHlwZXMuanNvblwiLFxuICAgIFwiYnVpbGQ6dHlwZXM6ZG93bmxldmVsXCI6IFwiZG93bmxldmVsLWR0cyBkaXN0LXR5cGVzIGRpc3QtdHlwZXMvdHMzLjRcIixcbiAgICBcImNsZWFuXCI6IFwicmltcmFmIC4vZGlzdC0qICYmIHJpbXJhZiAqLnRzYnVpbGRpbmZvXCIsXG4gICAgXCJsaW50XCI6IFwibm9kZSAuLi8uLi9zY3JpcHRzL3ZhbGlkYXRpb24vc3VibW9kdWxlcy1saW50ZXIuanMgLS1wa2cgbmVzdGVkLWNsaWVudHNcIixcbiAgICBcInRlc3RcIjogXCJ5YXJuIGc6dml0ZXN0IHJ1blwiLFxuICAgIFwidGVzdDp3YXRjaFwiOiBcInlhcm4gZzp2aXRlc3Qgd2F0Y2hcIlxuICB9LFxuICBcImVuZ2luZXNcIjoge1xuICAgIFwibm9kZVwiOiBcIj49MTguMC4wXCJcbiAgfSxcbiAgXCJzaWRlRWZmZWN0c1wiOiBmYWxzZSxcbiAgXCJhdXRob3JcIjoge1xuICAgIFwibmFtZVwiOiBcIkFXUyBTREsgZm9yIEphdmFTY3JpcHQgVGVhbVwiLFxuICAgIFwidXJsXCI6IFwiaHR0cHM6Ly9hd3MuYW1hem9uLmNvbS9qYXZhc2NyaXB0L1wiXG4gIH0sXG4gIFwibGljZW5zZVwiOiBcIkFwYWNoZS0yLjBcIixcbiAgXCJkZXBlbmRlbmNpZXNcIjoge1xuICAgIFwiQGF3cy1jcnlwdG8vc2hhMjU2LWJyb3dzZXJcIjogXCI1LjIuMFwiLFxuICAgIFwiQGF3cy1jcnlwdG8vc2hhMjU2LWpzXCI6IFwiNS4yLjBcIixcbiAgICBcIkBhd3Mtc2RrL2NvcmVcIjogXCIzLjk0Ny4wXCIsXG4gICAgXCJAYXdzLXNkay9taWRkbGV3YXJlLWhvc3QtaGVhZGVyXCI6IFwiMy45MzYuMFwiLFxuICAgIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1sb2dnZXJcIjogXCIzLjkzNi4wXCIsXG4gICAgXCJAYXdzLXNkay9taWRkbGV3YXJlLXJlY3Vyc2lvbi1kZXRlY3Rpb25cIjogXCIzLjk0OC4wXCIsXG4gICAgXCJAYXdzLXNkay9taWRkbGV3YXJlLXVzZXItYWdlbnRcIjogXCIzLjk0Ny4wXCIsXG4gICAgXCJAYXdzLXNkay9yZWdpb24tY29uZmlnLXJlc29sdmVyXCI6IFwiMy45MzYuMFwiLFxuICAgIFwiQGF3cy1zZGsvdHlwZXNcIjogXCIzLjkzNi4wXCIsXG4gICAgXCJAYXdzLXNkay91dGlsLWVuZHBvaW50c1wiOiBcIjMuOTM2LjBcIixcbiAgICBcIkBhd3Mtc2RrL3V0aWwtdXNlci1hZ2VudC1icm93c2VyXCI6IFwiMy45MzYuMFwiLFxuICAgIFwiQGF3cy1zZGsvdXRpbC11c2VyLWFnZW50LW5vZGVcIjogXCIzLjk0Ny4wXCIsXG4gICAgXCJAc21pdGh5L2NvbmZpZy1yZXNvbHZlclwiOiBcIl40LjQuM1wiLFxuICAgIFwiQHNtaXRoeS9jb3JlXCI6IFwiXjMuMTguN1wiLFxuICAgIFwiQHNtaXRoeS9mZXRjaC1odHRwLWhhbmRsZXJcIjogXCJeNS4zLjZcIixcbiAgICBcIkBzbWl0aHkvaGFzaC1ub2RlXCI6IFwiXjQuMi41XCIsXG4gICAgXCJAc21pdGh5L2ludmFsaWQtZGVwZW5kZW5jeVwiOiBcIl40LjIuNVwiLFxuICAgIFwiQHNtaXRoeS9taWRkbGV3YXJlLWNvbnRlbnQtbGVuZ3RoXCI6IFwiXjQuMi41XCIsXG4gICAgXCJAc21pdGh5L21pZGRsZXdhcmUtZW5kcG9pbnRcIjogXCJeNC4zLjE0XCIsXG4gICAgXCJAc21pdGh5L21pZGRsZXdhcmUtcmV0cnlcIjogXCJeNC40LjE0XCIsXG4gICAgXCJAc21pdGh5L21pZGRsZXdhcmUtc2VyZGVcIjogXCJeNC4yLjZcIixcbiAgICBcIkBzbWl0aHkvbWlkZGxld2FyZS1zdGFja1wiOiBcIl40LjIuNVwiLFxuICAgIFwiQHNtaXRoeS9ub2RlLWNvbmZpZy1wcm92aWRlclwiOiBcIl40LjMuNVwiLFxuICAgIFwiQHNtaXRoeS9ub2RlLWh0dHAtaGFuZGxlclwiOiBcIl40LjQuNVwiLFxuICAgIFwiQHNtaXRoeS9wcm90b2NvbC1odHRwXCI6IFwiXjUuMy41XCIsXG4gICAgXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjogXCJeNC45LjEwXCIsXG4gICAgXCJAc21pdGh5L3R5cGVzXCI6IFwiXjQuOS4wXCIsXG4gICAgXCJAc21pdGh5L3VybC1wYXJzZXJcIjogXCJeNC4yLjVcIixcbiAgICBcIkBzbWl0aHkvdXRpbC1iYXNlNjRcIjogXCJeNC4zLjBcIixcbiAgICBcIkBzbWl0aHkvdXRpbC1ib2R5LWxlbmd0aC1icm93c2VyXCI6IFwiXjQuMi4wXCIsXG4gICAgXCJAc21pdGh5L3V0aWwtYm9keS1sZW5ndGgtbm9kZVwiOiBcIl40LjIuMVwiLFxuICAgIFwiQHNtaXRoeS91dGlsLWRlZmF1bHRzLW1vZGUtYnJvd3NlclwiOiBcIl40LjMuMTNcIixcbiAgICBcIkBzbWl0aHkvdXRpbC1kZWZhdWx0cy1tb2RlLW5vZGVcIjogXCJeNC4yLjE2XCIsXG4gICAgXCJAc21pdGh5L3V0aWwtZW5kcG9pbnRzXCI6IFwiXjMuMi41XCIsXG4gICAgXCJAc21pdGh5L3V0aWwtbWlkZGxld2FyZVwiOiBcIl40LjIuNVwiLFxuICAgIFwiQHNtaXRoeS91dGlsLXJldHJ5XCI6IFwiXjQuMi41XCIsXG4gICAgXCJAc21pdGh5L3V0aWwtdXRmOFwiOiBcIl40LjIuMFwiLFxuICAgIFwidHNsaWJcIjogXCJeMi42LjJcIlxuICB9LFxuICBcImRldkRlcGVuZGVuY2llc1wiOiB7XG4gICAgXCJjb25jdXJyZW50bHlcIjogXCI3LjAuMFwiLFxuICAgIFwiZG93bmxldmVsLWR0c1wiOiBcIjAuMTAuMVwiLFxuICAgIFwicmltcmFmXCI6IFwiMy4wLjJcIixcbiAgICBcInR5cGVzY3JpcHRcIjogXCJ+NS44LjNcIlxuICB9LFxuICBcInR5cGVzVmVyc2lvbnNcIjoge1xuICAgIFwiPDQuMFwiOiB7XG4gICAgICBcImRpc3QtdHlwZXMvKlwiOiBbXG4gICAgICAgIFwiZGlzdC10eXBlcy90czMuNC8qXCJcbiAgICAgIF1cbiAgICB9XG4gIH0sXG4gIFwiZmlsZXNcIjogW1xuICAgIFwiLi9zaWduaW4uZC50c1wiLFxuICAgIFwiLi9zaWduaW4uanNcIixcbiAgICBcIi4vc3NvLW9pZGMuZC50c1wiLFxuICAgIFwiLi9zc28tb2lkYy5qc1wiLFxuICAgIFwiLi9zdHMuZC50c1wiLFxuICAgIFwiLi9zdHMuanNcIixcbiAgICBcImRpc3QtKi8qKlwiXG4gIF0sXG4gIFwiYnJvd3NlclwiOiB7XG4gICAgXCIuL2Rpc3QtZXMvc3VibW9kdWxlcy9zaWduaW4vcnVudGltZUNvbmZpZ1wiOiBcIi4vZGlzdC1lcy9zdWJtb2R1bGVzL3NpZ25pbi9ydW50aW1lQ29uZmlnLmJyb3dzZXJcIixcbiAgICBcIi4vZGlzdC1lcy9zdWJtb2R1bGVzL3Nzby1vaWRjL3J1bnRpbWVDb25maWdcIjogXCIuL2Rpc3QtZXMvc3VibW9kdWxlcy9zc28tb2lkYy9ydW50aW1lQ29uZmlnLmJyb3dzZXJcIixcbiAgICBcIi4vZGlzdC1lcy9zdWJtb2R1bGVzL3N0cy9ydW50aW1lQ29uZmlnXCI6IFwiLi9kaXN0LWVzL3N1Ym1vZHVsZXMvc3RzL3J1bnRpbWVDb25maWcuYnJvd3NlclwiXG4gIH0sXG4gIFwicmVhY3QtbmF0aXZlXCI6IHt9LFxuICBcImhvbWVwYWdlXCI6IFwiaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3Mtc2RrLWpzLXYzL3RyZWUvbWFpbi9wYWNrYWdlcy9uZXN0ZWQtY2xpZW50c1wiLFxuICBcInJlcG9zaXRvcnlcIjoge1xuICAgIFwidHlwZVwiOiBcImdpdFwiLFxuICAgIFwidXJsXCI6IFwiaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3Mtc2RrLWpzLXYzLmdpdFwiLFxuICAgIFwiZGlyZWN0b3J5XCI6IFwicGFja2FnZXMvbmVzdGVkLWNsaWVudHNcIlxuICB9LFxuICBcImV4cG9ydHNcIjoge1xuICAgIFwiLi9wYWNrYWdlLmpzb25cIjogXCIuL3BhY2thZ2UuanNvblwiLFxuICAgIFwiLi9zc28tb2lkY1wiOiB7XG4gICAgICBcInR5cGVzXCI6IFwiLi9kaXN0LXR5cGVzL3N1Ym1vZHVsZXMvc3NvLW9pZGMvaW5kZXguZC50c1wiLFxuICAgICAgXCJtb2R1bGVcIjogXCIuL2Rpc3QtZXMvc3VibW9kdWxlcy9zc28tb2lkYy9pbmRleC5qc1wiLFxuICAgICAgXCJub2RlXCI6IFwiLi9kaXN0LWNqcy9zdWJtb2R1bGVzL3Nzby1vaWRjL2luZGV4LmpzXCIsXG4gICAgICBcImltcG9ydFwiOiBcIi4vZGlzdC1lcy9zdWJtb2R1bGVzL3Nzby1vaWRjL2luZGV4LmpzXCIsXG4gICAgICBcInJlcXVpcmVcIjogXCIuL2Rpc3QtY2pzL3N1Ym1vZHVsZXMvc3NvLW9pZGMvaW5kZXguanNcIlxuICAgIH0sXG4gICAgXCIuL3N0c1wiOiB7XG4gICAgICBcInR5cGVzXCI6IFwiLi9kaXN0LXR5cGVzL3N1Ym1vZHVsZXMvc3RzL2luZGV4LmQudHNcIixcbiAgICAgIFwibW9kdWxlXCI6IFwiLi9kaXN0LWVzL3N1Ym1vZHVsZXMvc3RzL2luZGV4LmpzXCIsXG4gICAgICBcIm5vZGVcIjogXCIuL2Rpc3QtY2pzL3N1Ym1vZHVsZXMvc3RzL2luZGV4LmpzXCIsXG4gICAgICBcImltcG9ydFwiOiBcIi4vZGlzdC1lcy9zdWJtb2R1bGVzL3N0cy9pbmRleC5qc1wiLFxuICAgICAgXCJyZXF1aXJlXCI6IFwiLi9kaXN0LWNqcy9zdWJtb2R1bGVzL3N0cy9pbmRleC5qc1wiXG4gICAgfSxcbiAgICBcIi4vc2lnbmluXCI6IHtcbiAgICAgIFwidHlwZXNcIjogXCIuL2Rpc3QtdHlwZXMvc3VibW9kdWxlcy9zaWduaW4vaW5kZXguZC50c1wiLFxuICAgICAgXCJtb2R1bGVcIjogXCIuL2Rpc3QtZXMvc3VibW9kdWxlcy9zaWduaW4vaW5kZXguanNcIixcbiAgICAgIFwibm9kZVwiOiBcIi4vZGlzdC1janMvc3VibW9kdWxlcy9zaWduaW4vaW5kZXguanNcIixcbiAgICAgIFwiaW1wb3J0XCI6IFwiLi9kaXN0LWVzL3N1Ym1vZHVsZXMvc2lnbmluL2luZGV4LmpzXCIsXG4gICAgICBcInJlcXVpcmVcIjogXCIuL2Rpc3QtY2pzL3N1Ym1vZHVsZXMvc2lnbmluL2luZGV4LmpzXCJcbiAgICB9XG4gIH1cbn1cbiIsICJjb25zdCB1ID0gXCJyZXF1aXJlZFwiLCB2ID0gXCJmblwiLCB3ID0gXCJhcmd2XCIsIHggPSBcInJlZlwiO1xuY29uc3QgYSA9IHRydWUsIGIgPSBcImlzU2V0XCIsIGMgPSBcImJvb2xlYW5FcXVhbHNcIiwgZCA9IFwiZXJyb3JcIiwgZSA9IFwiZW5kcG9pbnRcIiwgZiA9IFwidHJlZVwiLCBnID0gXCJQYXJ0aXRpb25SZXN1bHRcIiwgaCA9IFwic3RyaW5nRXF1YWxzXCIsIGkgPSB7IFt1XTogdHJ1ZSwgXCJkZWZhdWx0XCI6IGZhbHNlLCBcInR5cGVcIjogXCJib29sZWFuXCIgfSwgaiA9IHsgW3VdOiBmYWxzZSwgXCJ0eXBlXCI6IFwic3RyaW5nXCIgfSwgayA9IHsgW3hdOiBcIkVuZHBvaW50XCIgfSwgbCA9IHsgW3ZdOiBjLCBbd106IFt7IFt4XTogXCJVc2VGSVBTXCIgfSwgdHJ1ZV0gfSwgbSA9IHsgW3ZdOiBjLCBbd106IFt7IFt4XTogXCJVc2VEdWFsU3RhY2tcIiB9LCB0cnVlXSB9LCBuID0ge30sIG8gPSB7IFt2XTogXCJnZXRBdHRyXCIsIFt3XTogW3sgW3hdOiBnIH0sIFwibmFtZVwiXSB9LCBwID0geyBbdl06IGMsIFt3XTogW3sgW3hdOiBcIlVzZUZJUFNcIiB9LCBmYWxzZV0gfSwgcSA9IHsgW3ZdOiBjLCBbd106IFt7IFt4XTogXCJVc2VEdWFsU3RhY2tcIiB9LCBmYWxzZV0gfSwgciA9IHsgW3ZdOiBcImdldEF0dHJcIiwgW3ddOiBbeyBbeF06IGcgfSwgXCJzdXBwb3J0c0ZJUFNcIl0gfSwgcyA9IHsgW3ZdOiBjLCBbd106IFt0cnVlLCB7IFt2XTogXCJnZXRBdHRyXCIsIFt3XTogW3sgW3hdOiBnIH0sIFwic3VwcG9ydHNEdWFsU3RhY2tcIl0gfV0gfSwgdCA9IFt7IFt4XTogXCJSZWdpb25cIiB9XTtcbmNvbnN0IF9kYXRhID0geyB2ZXJzaW9uOiBcIjEuMFwiLCBwYXJhbWV0ZXJzOiB7IFVzZUR1YWxTdGFjazogaSwgVXNlRklQUzogaSwgRW5kcG9pbnQ6IGosIFJlZ2lvbjogaiB9LCBydWxlczogW3sgY29uZGl0aW9uczogW3sgW3ZdOiBiLCBbd106IFtrXSB9XSwgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IFtsXSwgZXJyb3I6IFwiSW52YWxpZCBDb25maWd1cmF0aW9uOiBGSVBTIGFuZCBjdXN0b20gZW5kcG9pbnQgYXJlIG5vdCBzdXBwb3J0ZWRcIiwgdHlwZTogZCB9LCB7IHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbbV0sIGVycm9yOiBcIkludmFsaWQgQ29uZmlndXJhdGlvbjogRHVhbHN0YWNrIGFuZCBjdXN0b20gZW5kcG9pbnQgYXJlIG5vdCBzdXBwb3J0ZWRcIiwgdHlwZTogZCB9LCB7IGVuZHBvaW50OiB7IHVybDogaywgcHJvcGVydGllczogbiwgaGVhZGVyczogbiB9LCB0eXBlOiBlIH1dLCB0eXBlOiBmIH1dLCB0eXBlOiBmIH0sIHsgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IFt7IFt2XTogYiwgW3ddOiB0IH1dLCBydWxlczogW3sgY29uZGl0aW9uczogW3sgW3ZdOiBcImF3cy5wYXJ0aXRpb25cIiwgW3ddOiB0LCBhc3NpZ246IGcgfV0sIHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbeyBbdl06IGgsIFt3XTogW28sIFwiYXdzXCJdIH0sIHAsIHFdLCBlbmRwb2ludDogeyB1cmw6IFwiaHR0cHM6Ly97UmVnaW9ufS5zaWduaW4uYXdzLmFtYXpvbi5jb21cIiwgcHJvcGVydGllczogbiwgaGVhZGVyczogbiB9LCB0eXBlOiBlIH0sIHsgY29uZGl0aW9uczogW3sgW3ZdOiBoLCBbd106IFtvLCBcImF3cy1jblwiXSB9LCBwLCBxXSwgZW5kcG9pbnQ6IHsgdXJsOiBcImh0dHBzOi8ve1JlZ2lvbn0uc2lnbmluLmFtYXpvbmF3cy5jblwiLCBwcm9wZXJ0aWVzOiBuLCBoZWFkZXJzOiBuIH0sIHR5cGU6IGUgfSwgeyBjb25kaXRpb25zOiBbeyBbdl06IGgsIFt3XTogW28sIFwiYXdzLXVzLWdvdlwiXSB9LCBwLCBxXSwgZW5kcG9pbnQ6IHsgdXJsOiBcImh0dHBzOi8ve1JlZ2lvbn0uc2lnbmluLmFtYXpvbmF3cy11cy1nb3YuY29tXCIsIHByb3BlcnRpZXM6IG4sIGhlYWRlcnM6IG4gfSwgdHlwZTogZSB9LCB7IGNvbmRpdGlvbnM6IFtsLCBtXSwgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IFt7IFt2XTogYywgW3ddOiBbYSwgcl0gfSwgc10sIHJ1bGVzOiBbeyBlbmRwb2ludDogeyB1cmw6IFwiaHR0cHM6Ly9zaWduaW4tZmlwcy57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2R1YWxTdGFja0Ruc1N1ZmZpeH1cIiwgcHJvcGVydGllczogbiwgaGVhZGVyczogbiB9LCB0eXBlOiBlIH1dLCB0eXBlOiBmIH0sIHsgZXJyb3I6IFwiRklQUyBhbmQgRHVhbFN0YWNrIGFyZSBlbmFibGVkLCBidXQgdGhpcyBwYXJ0aXRpb24gZG9lcyBub3Qgc3VwcG9ydCBvbmUgb3IgYm90aFwiLCB0eXBlOiBkIH1dLCB0eXBlOiBmIH0sIHsgY29uZGl0aW9uczogW2wsIHFdLCBydWxlczogW3sgY29uZGl0aW9uczogW3sgW3ZdOiBjLCBbd106IFtyLCBhXSB9XSwgcnVsZXM6IFt7IGVuZHBvaW50OiB7IHVybDogXCJodHRwczovL3NpZ25pbi1maXBzLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZG5zU3VmZml4fVwiLCBwcm9wZXJ0aWVzOiBuLCBoZWFkZXJzOiBuIH0sIHR5cGU6IGUgfV0sIHR5cGU6IGYgfSwgeyBlcnJvcjogXCJGSVBTIGlzIGVuYWJsZWQgYnV0IHRoaXMgcGFydGl0aW9uIGRvZXMgbm90IHN1cHBvcnQgRklQU1wiLCB0eXBlOiBkIH1dLCB0eXBlOiBmIH0sIHsgY29uZGl0aW9uczogW3AsIG1dLCBydWxlczogW3sgY29uZGl0aW9uczogW3NdLCBydWxlczogW3sgZW5kcG9pbnQ6IHsgdXJsOiBcImh0dHBzOi8vc2lnbmluLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZHVhbFN0YWNrRG5zU3VmZml4fVwiLCBwcm9wZXJ0aWVzOiBuLCBoZWFkZXJzOiBuIH0sIHR5cGU6IGUgfV0sIHR5cGU6IGYgfSwgeyBlcnJvcjogXCJEdWFsU3RhY2sgaXMgZW5hYmxlZCBidXQgdGhpcyBwYXJ0aXRpb24gZG9lcyBub3Qgc3VwcG9ydCBEdWFsU3RhY2tcIiwgdHlwZTogZCB9XSwgdHlwZTogZiB9LCB7IGVuZHBvaW50OiB7IHVybDogXCJodHRwczovL3NpZ25pbi57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH1cIiwgcHJvcGVydGllczogbiwgaGVhZGVyczogbiB9LCB0eXBlOiBlIH1dLCB0eXBlOiBmIH1dLCB0eXBlOiBmIH0sIHsgZXJyb3I6IFwiSW52YWxpZCBDb25maWd1cmF0aW9uOiBNaXNzaW5nIFJlZ2lvblwiLCB0eXBlOiBkIH1dLCB0eXBlOiBmIH1dIH07XG5leHBvcnQgY29uc3QgcnVsZVNldCA9IF9kYXRhO1xuIiwgImltcG9ydCB7IGF3c0VuZHBvaW50RnVuY3Rpb25zIH0gZnJvbSBcIkBhd3Mtc2RrL3V0aWwtZW5kcG9pbnRzXCI7XG5pbXBvcnQgeyBjdXN0b21FbmRwb2ludEZ1bmN0aW9ucywgRW5kcG9pbnRDYWNoZSwgcmVzb2x2ZUVuZHBvaW50IH0gZnJvbSBcIkBzbWl0aHkvdXRpbC1lbmRwb2ludHNcIjtcbmltcG9ydCB7IHJ1bGVTZXQgfSBmcm9tIFwiLi9ydWxlc2V0XCI7XG5jb25zdCBjYWNoZSA9IG5ldyBFbmRwb2ludENhY2hlKHtcbiAgICBzaXplOiA1MCxcbiAgICBwYXJhbXM6IFtcIkVuZHBvaW50XCIsIFwiUmVnaW9uXCIsIFwiVXNlRHVhbFN0YWNrXCIsIFwiVXNlRklQU1wiXSxcbn0pO1xuZXhwb3J0IGNvbnN0IGRlZmF1bHRFbmRwb2ludFJlc29sdmVyID0gKGVuZHBvaW50UGFyYW1zLCBjb250ZXh0ID0ge30pID0+IHtcbiAgICByZXR1cm4gY2FjaGUuZ2V0KGVuZHBvaW50UGFyYW1zLCAoKSA9PiByZXNvbHZlRW5kcG9pbnQocnVsZVNldCwge1xuICAgICAgICBlbmRwb2ludFBhcmFtczogZW5kcG9pbnRQYXJhbXMsXG4gICAgICAgIGxvZ2dlcjogY29udGV4dC5sb2dnZXIsXG4gICAgfSkpO1xufTtcbmN1c3RvbUVuZHBvaW50RnVuY3Rpb25zLmF3cyA9IGF3c0VuZHBvaW50RnVuY3Rpb25zO1xuIiwgImltcG9ydCB7IEF3c1Nka1NpZ1Y0U2lnbmVyIH0gZnJvbSBcIkBhd3Mtc2RrL2NvcmVcIjtcbmltcG9ydCB7IEF3c1Jlc3RKc29uUHJvdG9jb2wgfSBmcm9tIFwiQGF3cy1zZGsvY29yZS9wcm90b2NvbHNcIjtcbmltcG9ydCB7IE5vQXV0aFNpZ25lciB9IGZyb20gXCJAc21pdGh5L2NvcmVcIjtcbmltcG9ydCB7IE5vT3BMb2dnZXIgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyBwYXJzZVVybCB9IGZyb20gXCJAc21pdGh5L3VybC1wYXJzZXJcIjtcbmltcG9ydCB7IGZyb21CYXNlNjQsIHRvQmFzZTY0IH0gZnJvbSBcIkBzbWl0aHkvdXRpbC1iYXNlNjRcIjtcbmltcG9ydCB7IGZyb21VdGY4LCB0b1V0ZjggfSBmcm9tIFwiQHNtaXRoeS91dGlsLXV0ZjhcIjtcbmltcG9ydCB7IGRlZmF1bHRTaWduaW5IdHRwQXV0aFNjaGVtZVByb3ZpZGVyIH0gZnJvbSBcIi4vYXV0aC9odHRwQXV0aFNjaGVtZVByb3ZpZGVyXCI7XG5pbXBvcnQgeyBkZWZhdWx0RW5kcG9pbnRSZXNvbHZlciB9IGZyb20gXCIuL2VuZHBvaW50L2VuZHBvaW50UmVzb2x2ZXJcIjtcbmV4cG9ydCBjb25zdCBnZXRSdW50aW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIGFwaVZlcnNpb246IFwiMjAyMy0wMS0wMVwiLFxuICAgICAgICBiYXNlNjREZWNvZGVyOiBjb25maWc/LmJhc2U2NERlY29kZXIgPz8gZnJvbUJhc2U2NCxcbiAgICAgICAgYmFzZTY0RW5jb2RlcjogY29uZmlnPy5iYXNlNjRFbmNvZGVyID8/IHRvQmFzZTY0LFxuICAgICAgICBkaXNhYmxlSG9zdFByZWZpeDogY29uZmlnPy5kaXNhYmxlSG9zdFByZWZpeCA/PyBmYWxzZSxcbiAgICAgICAgZW5kcG9pbnRQcm92aWRlcjogY29uZmlnPy5lbmRwb2ludFByb3ZpZGVyID8/IGRlZmF1bHRFbmRwb2ludFJlc29sdmVyLFxuICAgICAgICBleHRlbnNpb25zOiBjb25maWc/LmV4dGVuc2lvbnMgPz8gW10sXG4gICAgICAgIGh0dHBBdXRoU2NoZW1lUHJvdmlkZXI6IGNvbmZpZz8uaHR0cEF1dGhTY2hlbWVQcm92aWRlciA/PyBkZWZhdWx0U2lnbmluSHR0cEF1dGhTY2hlbWVQcm92aWRlcixcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVzOiBjb25maWc/Lmh0dHBBdXRoU2NoZW1lcyA/PyBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgc2NoZW1lSWQ6IFwiYXdzLmF1dGgjc2lndjRcIixcbiAgICAgICAgICAgICAgICBpZGVudGl0eVByb3ZpZGVyOiAoaXBjKSA9PiBpcGMuZ2V0SWRlbnRpdHlQcm92aWRlcihcImF3cy5hdXRoI3NpZ3Y0XCIpLFxuICAgICAgICAgICAgICAgIHNpZ25lcjogbmV3IEF3c1Nka1NpZ1Y0U2lnbmVyKCksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHNjaGVtZUlkOiBcInNtaXRoeS5hcGkjbm9BdXRoXCIsXG4gICAgICAgICAgICAgICAgaWRlbnRpdHlQcm92aWRlcjogKGlwYykgPT4gaXBjLmdldElkZW50aXR5UHJvdmlkZXIoXCJzbWl0aHkuYXBpI25vQXV0aFwiKSB8fCAoYXN5bmMgKCkgPT4gKHt9KSksXG4gICAgICAgICAgICAgICAgc2lnbmVyOiBuZXcgTm9BdXRoU2lnbmVyKCksXG4gICAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBsb2dnZXI6IGNvbmZpZz8ubG9nZ2VyID8/IG5ldyBOb09wTG9nZ2VyKCksXG4gICAgICAgIHByb3RvY29sOiBjb25maWc/LnByb3RvY29sID8/IG5ldyBBd3NSZXN0SnNvblByb3RvY29sKHsgZGVmYXVsdE5hbWVzcGFjZTogXCJjb20uYW1hem9uYXdzLnNpZ25pblwiIH0pLFxuICAgICAgICBzZXJ2aWNlSWQ6IGNvbmZpZz8uc2VydmljZUlkID8/IFwiU2lnbmluXCIsXG4gICAgICAgIHVybFBhcnNlcjogY29uZmlnPy51cmxQYXJzZXIgPz8gcGFyc2VVcmwsXG4gICAgICAgIHV0ZjhEZWNvZGVyOiBjb25maWc/LnV0ZjhEZWNvZGVyID8/IGZyb21VdGY4LFxuICAgICAgICB1dGY4RW5jb2RlcjogY29uZmlnPy51dGY4RW5jb2RlciA/PyB0b1V0ZjgsXG4gICAgfTtcbn07XG4iLCAiaW1wb3J0IHBhY2thZ2VJbmZvIGZyb20gXCIuLi8uLi8uLi9wYWNrYWdlLmpzb25cIjtcbmltcG9ydCB7IE5PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9PUFRJT05TLCBlbWl0V2FybmluZ0lmVW5zdXBwb3J0ZWRWZXJzaW9uIGFzIGF3c0NoZWNrVmVyc2lvbiB9IGZyb20gXCJAYXdzLXNkay9jb3JlXCI7XG5pbXBvcnQgeyBOT0RFX0FQUF9JRF9DT05GSUdfT1BUSU9OUywgY3JlYXRlRGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyIH0gZnJvbSBcIkBhd3Mtc2RrL3V0aWwtdXNlci1hZ2VudC1ub2RlXCI7XG5pbXBvcnQgeyBOT0RFX1JFR0lPTl9DT05GSUdfRklMRV9PUFRJT05TLCBOT0RFX1JFR0lPTl9DT05GSUdfT1BUSU9OUywgTk9ERV9VU0VfRFVBTFNUQUNLX0VORFBPSU5UX0NPTkZJR19PUFRJT05TLCBOT0RFX1VTRV9GSVBTX0VORFBPSU5UX0NPTkZJR19PUFRJT05TLCB9IGZyb20gXCJAc21pdGh5L2NvbmZpZy1yZXNvbHZlclwiO1xuaW1wb3J0IHsgSGFzaCB9IGZyb20gXCJAc21pdGh5L2hhc2gtbm9kZVwiO1xuaW1wb3J0IHsgTk9ERV9NQVhfQVRURU1QVF9DT05GSUdfT1BUSU9OUywgTk9ERV9SRVRSWV9NT0RFX0NPTkZJR19PUFRJT05TIH0gZnJvbSBcIkBzbWl0aHkvbWlkZGxld2FyZS1yZXRyeVwiO1xuaW1wb3J0IHsgbG9hZENvbmZpZyBhcyBsb2FkTm9kZUNvbmZpZyB9IGZyb20gXCJAc21pdGh5L25vZGUtY29uZmlnLXByb3ZpZGVyXCI7XG5pbXBvcnQgeyBOb2RlSHR0cEhhbmRsZXIgYXMgUmVxdWVzdEhhbmRsZXIsIHN0cmVhbUNvbGxlY3RvciB9IGZyb20gXCJAc21pdGh5L25vZGUtaHR0cC1oYW5kbGVyXCI7XG5pbXBvcnQgeyBlbWl0V2FybmluZ0lmVW5zdXBwb3J0ZWRWZXJzaW9uLCBsb2FkQ29uZmlnc0ZvckRlZmF1bHRNb2RlIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgY2FsY3VsYXRlQm9keUxlbmd0aCB9IGZyb20gXCJAc21pdGh5L3V0aWwtYm9keS1sZW5ndGgtbm9kZVwiO1xuaW1wb3J0IHsgcmVzb2x2ZURlZmF1bHRzTW9kZUNvbmZpZyB9IGZyb20gXCJAc21pdGh5L3V0aWwtZGVmYXVsdHMtbW9kZS1ub2RlXCI7XG5pbXBvcnQgeyBERUZBVUxUX1JFVFJZX01PREUgfSBmcm9tIFwiQHNtaXRoeS91dGlsLXJldHJ5XCI7XG5pbXBvcnQgeyBnZXRSdW50aW1lQ29uZmlnIGFzIGdldFNoYXJlZFJ1bnRpbWVDb25maWcgfSBmcm9tIFwiLi9ydW50aW1lQ29uZmlnLnNoYXJlZFwiO1xuZXhwb3J0IGNvbnN0IGdldFJ1bnRpbWVDb25maWcgPSAoY29uZmlnKSA9PiB7XG4gICAgZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbihwcm9jZXNzLnZlcnNpb24pO1xuICAgIGNvbnN0IGRlZmF1bHRzTW9kZSA9IHJlc29sdmVEZWZhdWx0c01vZGVDb25maWcoY29uZmlnKTtcbiAgICBjb25zdCBkZWZhdWx0Q29uZmlnUHJvdmlkZXIgPSAoKSA9PiBkZWZhdWx0c01vZGUoKS50aGVuKGxvYWRDb25maWdzRm9yRGVmYXVsdE1vZGUpO1xuICAgIGNvbnN0IGNsaWVudFNoYXJlZFZhbHVlcyA9IGdldFNoYXJlZFJ1bnRpbWVDb25maWcoY29uZmlnKTtcbiAgICBhd3NDaGVja1ZlcnNpb24ocHJvY2Vzcy52ZXJzaW9uKTtcbiAgICBjb25zdCBsb2FkZXJDb25maWcgPSB7XG4gICAgICAgIHByb2ZpbGU6IGNvbmZpZz8ucHJvZmlsZSxcbiAgICAgICAgbG9nZ2VyOiBjbGllbnRTaGFyZWRWYWx1ZXMubG9nZ2VyLFxuICAgIH07XG4gICAgcmV0dXJuIHtcbiAgICAgICAgLi4uY2xpZW50U2hhcmVkVmFsdWVzLFxuICAgICAgICAuLi5jb25maWcsXG4gICAgICAgIHJ1bnRpbWU6IFwibm9kZVwiLFxuICAgICAgICBkZWZhdWx0c01vZGUsXG4gICAgICAgIGF1dGhTY2hlbWVQcmVmZXJlbmNlOiBjb25maWc/LmF1dGhTY2hlbWVQcmVmZXJlbmNlID8/IGxvYWROb2RlQ29uZmlnKE5PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgICAgICBib2R5TGVuZ3RoQ2hlY2tlcjogY29uZmlnPy5ib2R5TGVuZ3RoQ2hlY2tlciA/PyBjYWxjdWxhdGVCb2R5TGVuZ3RoLFxuICAgICAgICBkZWZhdWx0VXNlckFnZW50UHJvdmlkZXI6IGNvbmZpZz8uZGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyID8/XG4gICAgICAgICAgICBjcmVhdGVEZWZhdWx0VXNlckFnZW50UHJvdmlkZXIoeyBzZXJ2aWNlSWQ6IGNsaWVudFNoYXJlZFZhbHVlcy5zZXJ2aWNlSWQsIGNsaWVudFZlcnNpb246IHBhY2thZ2VJbmZvLnZlcnNpb24gfSksXG4gICAgICAgIG1heEF0dGVtcHRzOiBjb25maWc/Lm1heEF0dGVtcHRzID8/IGxvYWROb2RlQ29uZmlnKE5PREVfTUFYX0FUVEVNUFRfQ09ORklHX09QVElPTlMsIGNvbmZpZyksXG4gICAgICAgIHJlZ2lvbjogY29uZmlnPy5yZWdpb24gPz9cbiAgICAgICAgICAgIGxvYWROb2RlQ29uZmlnKE5PREVfUkVHSU9OX0NPTkZJR19PUFRJT05TLCB7IC4uLk5PREVfUkVHSU9OX0NPTkZJR19GSUxFX09QVElPTlMsIC4uLmxvYWRlckNvbmZpZyB9KSxcbiAgICAgICAgcmVxdWVzdEhhbmRsZXI6IFJlcXVlc3RIYW5kbGVyLmNyZWF0ZShjb25maWc/LnJlcXVlc3RIYW5kbGVyID8/IGRlZmF1bHRDb25maWdQcm92aWRlciksXG4gICAgICAgIHJldHJ5TW9kZTogY29uZmlnPy5yZXRyeU1vZGUgPz9cbiAgICAgICAgICAgIGxvYWROb2RlQ29uZmlnKHtcbiAgICAgICAgICAgICAgICAuLi5OT0RFX1JFVFJZX01PREVfQ09ORklHX09QVElPTlMsXG4gICAgICAgICAgICAgICAgZGVmYXVsdDogYXN5bmMgKCkgPT4gKGF3YWl0IGRlZmF1bHRDb25maWdQcm92aWRlcigpKS5yZXRyeU1vZGUgfHwgREVGQVVMVF9SRVRSWV9NT0RFLFxuICAgICAgICAgICAgfSwgY29uZmlnKSxcbiAgICAgICAgc2hhMjU2OiBjb25maWc/LnNoYTI1NiA/PyBIYXNoLmJpbmQobnVsbCwgXCJzaGEyNTZcIiksXG4gICAgICAgIHN0cmVhbUNvbGxlY3RvcjogY29uZmlnPy5zdHJlYW1Db2xsZWN0b3IgPz8gc3RyZWFtQ29sbGVjdG9yLFxuICAgICAgICB1c2VEdWFsc3RhY2tFbmRwb2ludDogY29uZmlnPy51c2VEdWFsc3RhY2tFbmRwb2ludCA/PyBsb2FkTm9kZUNvbmZpZyhOT0RFX1VTRV9EVUFMU1RBQ0tfRU5EUE9JTlRfQ09ORklHX09QVElPTlMsIGxvYWRlckNvbmZpZyksXG4gICAgICAgIHVzZUZpcHNFbmRwb2ludDogY29uZmlnPy51c2VGaXBzRW5kcG9pbnQgPz8gbG9hZE5vZGVDb25maWcoTk9ERV9VU0VfRklQU19FTkRQT0lOVF9DT05GSUdfT1BUSU9OUywgbG9hZGVyQ29uZmlnKSxcbiAgICAgICAgdXNlckFnZW50QXBwSWQ6IGNvbmZpZz8udXNlckFnZW50QXBwSWQgPz8gbG9hZE5vZGVDb25maWcoTk9ERV9BUFBfSURfQ09ORklHX09QVElPTlMsIGxvYWRlckNvbmZpZyksXG4gICAgfTtcbn07XG4iLCAiZXhwb3J0IGNvbnN0IGdldEh0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiA9IChydW50aW1lQ29uZmlnKSA9PiB7XG4gICAgY29uc3QgX2h0dHBBdXRoU2NoZW1lcyA9IHJ1bnRpbWVDb25maWcuaHR0cEF1dGhTY2hlbWVzO1xuICAgIGxldCBfaHR0cEF1dGhTY2hlbWVQcm92aWRlciA9IHJ1bnRpbWVDb25maWcuaHR0cEF1dGhTY2hlbWVQcm92aWRlcjtcbiAgICBsZXQgX2NyZWRlbnRpYWxzID0gcnVudGltZUNvbmZpZy5jcmVkZW50aWFscztcbiAgICByZXR1cm4ge1xuICAgICAgICBzZXRIdHRwQXV0aFNjaGVtZShodHRwQXV0aFNjaGVtZSkge1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSBfaHR0cEF1dGhTY2hlbWVzLmZpbmRJbmRleCgoc2NoZW1lKSA9PiBzY2hlbWUuc2NoZW1lSWQgPT09IGh0dHBBdXRoU2NoZW1lLnNjaGVtZUlkKTtcbiAgICAgICAgICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICBfaHR0cEF1dGhTY2hlbWVzLnB1c2goaHR0cEF1dGhTY2hlbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgX2h0dHBBdXRoU2NoZW1lcy5zcGxpY2UoaW5kZXgsIDEsIGh0dHBBdXRoU2NoZW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVzKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9odHRwQXV0aFNjaGVtZXM7XG4gICAgICAgIH0sXG4gICAgICAgIHNldEh0dHBBdXRoU2NoZW1lUHJvdmlkZXIoaHR0cEF1dGhTY2hlbWVQcm92aWRlcikge1xuICAgICAgICAgICAgX2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSBodHRwQXV0aFNjaGVtZVByb3ZpZGVyO1xuICAgICAgICB9LFxuICAgICAgICBodHRwQXV0aFNjaGVtZVByb3ZpZGVyKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9odHRwQXV0aFNjaGVtZVByb3ZpZGVyO1xuICAgICAgICB9LFxuICAgICAgICBzZXRDcmVkZW50aWFscyhjcmVkZW50aWFscykge1xuICAgICAgICAgICAgX2NyZWRlbnRpYWxzID0gY3JlZGVudGlhbHM7XG4gICAgICAgIH0sXG4gICAgICAgIGNyZWRlbnRpYWxzKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9jcmVkZW50aWFscztcbiAgICAgICAgfSxcbiAgICB9O1xufTtcbmV4cG9ydCBjb25zdCByZXNvbHZlSHR0cEF1dGhSdW50aW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIGh0dHBBdXRoU2NoZW1lczogY29uZmlnLmh0dHBBdXRoU2NoZW1lcygpLFxuICAgICAgICBodHRwQXV0aFNjaGVtZVByb3ZpZGVyOiBjb25maWcuaHR0cEF1dGhTY2hlbWVQcm92aWRlcigpLFxuICAgICAgICBjcmVkZW50aWFsczogY29uZmlnLmNyZWRlbnRpYWxzKCksXG4gICAgfTtcbn07XG4iLCAiaW1wb3J0IHsgZ2V0QXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiwgcmVzb2x2ZUF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24sIH0gZnJvbSBcIkBhd3Mtc2RrL3JlZ2lvbi1jb25maWctcmVzb2x2ZXJcIjtcbmltcG9ydCB7IGdldEh0dHBIYW5kbGVyRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiwgcmVzb2x2ZUh0dHBIYW5kbGVyUnVudGltZUNvbmZpZyB9IGZyb20gXCJAc21pdGh5L3Byb3RvY29sLWh0dHBcIjtcbmltcG9ydCB7IGdldERlZmF1bHRFeHRlbnNpb25Db25maWd1cmF0aW9uLCByZXNvbHZlRGVmYXVsdFJ1bnRpbWVDb25maWcgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyBnZXRIdHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24sIHJlc29sdmVIdHRwQXV0aFJ1bnRpbWVDb25maWcgfSBmcm9tIFwiLi9hdXRoL2h0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvblwiO1xuZXhwb3J0IGNvbnN0IHJlc29sdmVSdW50aW1lRXh0ZW5zaW9ucyA9IChydW50aW1lQ29uZmlnLCBleHRlbnNpb25zKSA9PiB7XG4gICAgY29uc3QgZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiA9IE9iamVjdC5hc3NpZ24oZ2V0QXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbihydW50aW1lQ29uZmlnKSwgZ2V0RGVmYXVsdEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24ocnVudGltZUNvbmZpZyksIGdldEh0dHBIYW5kbGVyRXh0ZW5zaW9uQ29uZmlndXJhdGlvbihydW50aW1lQ29uZmlnKSwgZ2V0SHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uKHJ1bnRpbWVDb25maWcpKTtcbiAgICBleHRlbnNpb25zLmZvckVhY2goKGV4dGVuc2lvbikgPT4gZXh0ZW5zaW9uLmNvbmZpZ3VyZShleHRlbnNpb25Db25maWd1cmF0aW9uKSk7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24ocnVudGltZUNvbmZpZywgcmVzb2x2ZUF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24oZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiksIHJlc29sdmVEZWZhdWx0UnVudGltZUNvbmZpZyhleHRlbnNpb25Db25maWd1cmF0aW9uKSwgcmVzb2x2ZUh0dHBIYW5kbGVyUnVudGltZUNvbmZpZyhleHRlbnNpb25Db25maWd1cmF0aW9uKSwgcmVzb2x2ZUh0dHBBdXRoUnVudGltZUNvbmZpZyhleHRlbnNpb25Db25maWd1cmF0aW9uKSk7XG59O1xuIiwgImltcG9ydCB7IGdldEhvc3RIZWFkZXJQbHVnaW4sIHJlc29sdmVIb3N0SGVhZGVyQ29uZmlnLCB9IGZyb20gXCJAYXdzLXNkay9taWRkbGV3YXJlLWhvc3QtaGVhZGVyXCI7XG5pbXBvcnQgeyBnZXRMb2dnZXJQbHVnaW4gfSBmcm9tIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1sb2dnZXJcIjtcbmltcG9ydCB7IGdldFJlY3Vyc2lvbkRldGVjdGlvblBsdWdpbiB9IGZyb20gXCJAYXdzLXNkay9taWRkbGV3YXJlLXJlY3Vyc2lvbi1kZXRlY3Rpb25cIjtcbmltcG9ydCB7IGdldFVzZXJBZ2VudFBsdWdpbiwgcmVzb2x2ZVVzZXJBZ2VudENvbmZpZywgfSBmcm9tIFwiQGF3cy1zZGsvbWlkZGxld2FyZS11c2VyLWFnZW50XCI7XG5pbXBvcnQgeyByZXNvbHZlUmVnaW9uQ29uZmlnIH0gZnJvbSBcIkBzbWl0aHkvY29uZmlnLXJlc29sdmVyXCI7XG5pbXBvcnQgeyBEZWZhdWx0SWRlbnRpdHlQcm92aWRlckNvbmZpZywgZ2V0SHR0cEF1dGhTY2hlbWVFbmRwb2ludFJ1bGVTZXRQbHVnaW4sIGdldEh0dHBTaWduaW5nUGx1Z2luLCB9IGZyb20gXCJAc21pdGh5L2NvcmVcIjtcbmltcG9ydCB7IGdldFNjaGVtYVNlcmRlUGx1Z2luIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IGdldENvbnRlbnRMZW5ndGhQbHVnaW4gfSBmcm9tIFwiQHNtaXRoeS9taWRkbGV3YXJlLWNvbnRlbnQtbGVuZ3RoXCI7XG5pbXBvcnQgeyByZXNvbHZlRW5kcG9pbnRDb25maWcsIH0gZnJvbSBcIkBzbWl0aHkvbWlkZGxld2FyZS1lbmRwb2ludFwiO1xuaW1wb3J0IHsgZ2V0UmV0cnlQbHVnaW4sIHJlc29sdmVSZXRyeUNvbmZpZywgfSBmcm9tIFwiQHNtaXRoeS9taWRkbGV3YXJlLXJldHJ5XCI7XG5pbXBvcnQgeyBDbGllbnQgYXMgX19DbGllbnQsIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgZGVmYXVsdFNpZ25pbkh0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyLCByZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWcsIH0gZnJvbSBcIi4vYXV0aC9odHRwQXV0aFNjaGVtZVByb3ZpZGVyXCI7XG5pbXBvcnQgeyByZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzLCB9IGZyb20gXCIuL2VuZHBvaW50L0VuZHBvaW50UGFyYW1ldGVyc1wiO1xuaW1wb3J0IHsgZ2V0UnVudGltZUNvbmZpZyBhcyBfX2dldFJ1bnRpbWVDb25maWcgfSBmcm9tIFwiLi9ydW50aW1lQ29uZmlnXCI7XG5pbXBvcnQgeyByZXNvbHZlUnVudGltZUV4dGVuc2lvbnMgfSBmcm9tIFwiLi9ydW50aW1lRXh0ZW5zaW9uc1wiO1xuZXhwb3J0IHsgX19DbGllbnQgfTtcbmV4cG9ydCBjbGFzcyBTaWduaW5DbGllbnQgZXh0ZW5kcyBfX0NsaWVudCB7XG4gICAgY29uZmlnO1xuICAgIGNvbnN0cnVjdG9yKC4uLltjb25maWd1cmF0aW9uXSkge1xuICAgICAgICBjb25zdCBfY29uZmlnXzAgPSBfX2dldFJ1bnRpbWVDb25maWcoY29uZmlndXJhdGlvbiB8fCB7fSk7XG4gICAgICAgIHN1cGVyKF9jb25maWdfMCk7XG4gICAgICAgIHRoaXMuaW5pdENvbmZpZyA9IF9jb25maWdfMDtcbiAgICAgICAgY29uc3QgX2NvbmZpZ18xID0gcmVzb2x2ZUNsaWVudEVuZHBvaW50UGFyYW1ldGVycyhfY29uZmlnXzApO1xuICAgICAgICBjb25zdCBfY29uZmlnXzIgPSByZXNvbHZlVXNlckFnZW50Q29uZmlnKF9jb25maWdfMSk7XG4gICAgICAgIGNvbnN0IF9jb25maWdfMyA9IHJlc29sdmVSZXRyeUNvbmZpZyhfY29uZmlnXzIpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzQgPSByZXNvbHZlUmVnaW9uQ29uZmlnKF9jb25maWdfMyk7XG4gICAgICAgIGNvbnN0IF9jb25maWdfNSA9IHJlc29sdmVIb3N0SGVhZGVyQ29uZmlnKF9jb25maWdfNCk7XG4gICAgICAgIGNvbnN0IF9jb25maWdfNiA9IHJlc29sdmVFbmRwb2ludENvbmZpZyhfY29uZmlnXzUpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzcgPSByZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWcoX2NvbmZpZ182KTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ184ID0gcmVzb2x2ZVJ1bnRpbWVFeHRlbnNpb25zKF9jb25maWdfNywgY29uZmlndXJhdGlvbj8uZXh0ZW5zaW9ucyB8fCBbXSk7XG4gICAgICAgIHRoaXMuY29uZmlnID0gX2NvbmZpZ184O1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoZ2V0U2NoZW1hU2VyZGVQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGdldFVzZXJBZ2VudFBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoZ2V0UmV0cnlQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGdldENvbnRlbnRMZW5ndGhQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGdldEhvc3RIZWFkZXJQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGdldExvZ2dlclBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoZ2V0UmVjdXJzaW9uRGV0ZWN0aW9uUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShnZXRIdHRwQXV0aFNjaGVtZUVuZHBvaW50UnVsZVNldFBsdWdpbih0aGlzLmNvbmZpZywge1xuICAgICAgICAgICAgaHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXI6IGRlZmF1bHRTaWduaW5IdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlcixcbiAgICAgICAgICAgIGlkZW50aXR5UHJvdmlkZXJDb25maWdQcm92aWRlcjogYXN5bmMgKGNvbmZpZykgPT4gbmV3IERlZmF1bHRJZGVudGl0eVByb3ZpZGVyQ29uZmlnKHtcbiAgICAgICAgICAgICAgICBcImF3cy5hdXRoI3NpZ3Y0XCI6IGNvbmZpZy5jcmVkZW50aWFscyxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICB9KSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShnZXRIdHRwU2lnbmluZ1BsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgIH1cbiAgICBkZXN0cm95KCkge1xuICAgICAgICBzdXBlci5kZXN0cm95KCk7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IFNlcnZpY2VFeGNlcHRpb24gYXMgX19TZXJ2aWNlRXhjZXB0aW9uLCB9IGZyb20gXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjtcbmV4cG9ydCB7IF9fU2VydmljZUV4Y2VwdGlvbiB9O1xuZXhwb3J0IGNsYXNzIFNpZ25pblNlcnZpY2VFeGNlcHRpb24gZXh0ZW5kcyBfX1NlcnZpY2VFeGNlcHRpb24ge1xuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnMpIHtcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBTaWduaW5TZXJ2aWNlRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IFNpZ25pblNlcnZpY2VFeGNlcHRpb24gYXMgX19CYXNlRXhjZXB0aW9uIH0gZnJvbSBcIi4vU2lnbmluU2VydmljZUV4Y2VwdGlvblwiO1xuZXhwb3J0IGNsYXNzIEFjY2Vzc0RlbmllZEV4Y2VwdGlvbiBleHRlbmRzIF9fQmFzZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiQWNjZXNzRGVuaWVkRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBlcnJvcjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiQWNjZXNzRGVuaWVkRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEFjY2Vzc0RlbmllZEV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLmVycm9yID0gb3B0cy5lcnJvcjtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb24gZXh0ZW5kcyBfX0Jhc2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIkludGVybmFsU2VydmVyRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJzZXJ2ZXJcIjtcbiAgICBlcnJvcjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJzZXJ2ZXJcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5lcnJvciA9IG9wdHMuZXJyb3I7XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIFRvb01hbnlSZXF1ZXN0c0Vycm9yIGV4dGVuZHMgX19CYXNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJUb29NYW55UmVxdWVzdHNFcnJvclwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgZXJyb3I7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIlRvb01hbnlSZXF1ZXN0c0Vycm9yXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFRvb01hbnlSZXF1ZXN0c0Vycm9yLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuZXJyb3IgPSBvcHRzLmVycm9yO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBWYWxpZGF0aW9uRXhjZXB0aW9uIGV4dGVuZHMgX19CYXNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJWYWxpZGF0aW9uRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBlcnJvcjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiVmFsaWRhdGlvbkV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBWYWxpZGF0aW9uRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuZXJyb3IgPSBvcHRzLmVycm9yO1xuICAgIH1cbn1cbiIsICJjb25zdCBfQURFID0gXCJBY2Nlc3NEZW5pZWRFeGNlcHRpb25cIjtcbmNvbnN0IF9BVCA9IFwiQWNjZXNzVG9rZW5cIjtcbmNvbnN0IF9DT0FUID0gXCJDcmVhdGVPQXV0aDJUb2tlblwiO1xuY29uc3QgX0NPQVRSID0gXCJDcmVhdGVPQXV0aDJUb2tlblJlcXVlc3RcIjtcbmNvbnN0IF9DT0FUUkIgPSBcIkNyZWF0ZU9BdXRoMlRva2VuUmVxdWVzdEJvZHlcIjtcbmNvbnN0IF9DT0FUUkJyID0gXCJDcmVhdGVPQXV0aDJUb2tlblJlc3BvbnNlQm9keVwiO1xuY29uc3QgX0NPQVRSciA9IFwiQ3JlYXRlT0F1dGgyVG9rZW5SZXNwb25zZVwiO1xuY29uc3QgX0lTRSA9IFwiSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb25cIjtcbmNvbnN0IF9SVCA9IFwiUmVmcmVzaFRva2VuXCI7XG5jb25zdCBfVE1SRSA9IFwiVG9vTWFueVJlcXVlc3RzRXJyb3JcIjtcbmNvbnN0IF9WRSA9IFwiVmFsaWRhdGlvbkV4Y2VwdGlvblwiO1xuY29uc3QgX2FLSSA9IFwiYWNjZXNzS2V5SWRcIjtcbmNvbnN0IF9hVCA9IFwiYWNjZXNzVG9rZW5cIjtcbmNvbnN0IF9jID0gXCJjbGllbnRcIjtcbmNvbnN0IF9jSSA9IFwiY2xpZW50SWRcIjtcbmNvbnN0IF9jViA9IFwiY29kZVZlcmlmaWVyXCI7XG5jb25zdCBfY28gPSBcImNvZGVcIjtcbmNvbnN0IF9lID0gXCJlcnJvclwiO1xuY29uc3QgX2VJID0gXCJleHBpcmVzSW5cIjtcbmNvbnN0IF9nVCA9IFwiZ3JhbnRUeXBlXCI7XG5jb25zdCBfaCA9IFwiaHR0cFwiO1xuY29uc3QgX2hFID0gXCJodHRwRXJyb3JcIjtcbmNvbnN0IF9pVCA9IFwiaWRUb2tlblwiO1xuY29uc3QgX2pOID0gXCJqc29uTmFtZVwiO1xuY29uc3QgX20gPSBcIm1lc3NhZ2VcIjtcbmNvbnN0IF9yVCA9IFwicmVmcmVzaFRva2VuXCI7XG5jb25zdCBfclUgPSBcInJlZGlyZWN0VXJpXCI7XG5jb25zdCBfcyA9IFwic2VydmVyXCI7XG5jb25zdCBfc0FLID0gXCJzZWNyZXRBY2Nlc3NLZXlcIjtcbmNvbnN0IF9zVCA9IFwic2Vzc2lvblRva2VuXCI7XG5jb25zdCBfc20gPSBcInNtaXRoeS50cy5zZGsuc3ludGhldGljLmNvbS5hbWF6b25hd3Muc2lnbmluXCI7XG5jb25zdCBfdEkgPSBcInRva2VuSW5wdXRcIjtcbmNvbnN0IF90TyA9IFwidG9rZW5PdXRwdXRcIjtcbmNvbnN0IF90VCA9IFwidG9rZW5UeXBlXCI7XG5jb25zdCBuMCA9IFwiY29tLmFtYXpvbmF3cy5zaWduaW5cIjtcbmltcG9ydCB7IFR5cGVSZWdpc3RyeSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2NoZW1hXCI7XG5pbXBvcnQgeyBBY2Nlc3NEZW5pZWRFeGNlcHRpb24gYXMgX19BY2Nlc3NEZW5pZWRFeGNlcHRpb24sIEludGVybmFsU2VydmVyRXhjZXB0aW9uIGFzIF9fSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb24sIFRvb01hbnlSZXF1ZXN0c0Vycm9yIGFzIF9fVG9vTWFueVJlcXVlc3RzRXJyb3IsIFZhbGlkYXRpb25FeGNlcHRpb24gYXMgX19WYWxpZGF0aW9uRXhjZXB0aW9uLCB9IGZyb20gXCIuLi9tb2RlbHMvZXJyb3JzXCI7XG5pbXBvcnQgeyBTaWduaW5TZXJ2aWNlRXhjZXB0aW9uIGFzIF9fU2lnbmluU2VydmljZUV4Y2VwdGlvbiB9IGZyb20gXCIuLi9tb2RlbHMvU2lnbmluU2VydmljZUV4Y2VwdGlvblwiO1xuZXhwb3J0IHZhciBSZWZyZXNoVG9rZW4gPSBbMCwgbjAsIF9SVCwgOCwgMF07XG5leHBvcnQgdmFyIEFjY2Vzc0RlbmllZEV4Y2VwdGlvbiA9IFstMywgbjAsIF9BREUsIHsgW19lXTogX2MgfSwgW19lLCBfbV0sIFswLCAwXV07XG5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKEFjY2Vzc0RlbmllZEV4Y2VwdGlvbiwgX19BY2Nlc3NEZW5pZWRFeGNlcHRpb24pO1xuZXhwb3J0IHZhciBBY2Nlc3NUb2tlbiA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9BVCxcbiAgICA4LFxuICAgIFtfYUtJLCBfc0FLLCBfc1RdLFxuICAgIFtcbiAgICAgICAgWzAsIHsgW19qTl06IF9hS0kgfV0sXG4gICAgICAgIFswLCB7IFtfak5dOiBfc0FLIH1dLFxuICAgICAgICBbMCwgeyBbX2pOXTogX3NUIH1dLFxuICAgIF0sXG5dO1xuZXhwb3J0IHZhciBDcmVhdGVPQXV0aDJUb2tlblJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfQ09BVFIsXG4gICAgMCxcbiAgICBbX3RJXSxcbiAgICBbWygpID0+IENyZWF0ZU9BdXRoMlRva2VuUmVxdWVzdEJvZHksIDE2XV0sXG5dO1xuZXhwb3J0IHZhciBDcmVhdGVPQXV0aDJUb2tlblJlcXVlc3RCb2R5ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0NPQVRSQixcbiAgICAwLFxuICAgIFtfY0ksIF9nVCwgX2NvLCBfclUsIF9jViwgX3JUXSxcbiAgICBbXG4gICAgICAgIFswLCB7IFtfak5dOiBfY0kgfV0sXG4gICAgICAgIFswLCB7IFtfak5dOiBfZ1QgfV0sXG4gICAgICAgIDAsXG4gICAgICAgIFswLCB7IFtfak5dOiBfclUgfV0sXG4gICAgICAgIFswLCB7IFtfak5dOiBfY1YgfV0sXG4gICAgICAgIFsoKSA9PiBSZWZyZXNoVG9rZW4sIHsgW19qTl06IF9yVCB9XSxcbiAgICBdLFxuXTtcbmV4cG9ydCB2YXIgQ3JlYXRlT0F1dGgyVG9rZW5SZXNwb25zZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9DT0FUUnIsXG4gICAgMCxcbiAgICBbX3RPXSxcbiAgICBbWygpID0+IENyZWF0ZU9BdXRoMlRva2VuUmVzcG9uc2VCb2R5LCAxNl1dLFxuXTtcbmV4cG9ydCB2YXIgQ3JlYXRlT0F1dGgyVG9rZW5SZXNwb25zZUJvZHkgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfQ09BVFJCcixcbiAgICAwLFxuICAgIFtfYVQsIF90VCwgX2VJLCBfclQsIF9pVF0sXG4gICAgW1xuICAgICAgICBbKCkgPT4gQWNjZXNzVG9rZW4sIHsgW19qTl06IF9hVCB9XSxcbiAgICAgICAgWzAsIHsgW19qTl06IF90VCB9XSxcbiAgICAgICAgWzEsIHsgW19qTl06IF9lSSB9XSxcbiAgICAgICAgWygpID0+IFJlZnJlc2hUb2tlbiwgeyBbX2pOXTogX3JUIH1dLFxuICAgICAgICBbMCwgeyBbX2pOXTogX2lUIH1dLFxuICAgIF0sXG5dO1xuZXhwb3J0IHZhciBJbnRlcm5hbFNlcnZlckV4Y2VwdGlvbiA9IFstMywgbjAsIF9JU0UsIHsgW19lXTogX3MsIFtfaEVdOiA1MDAgfSwgW19lLCBfbV0sIFswLCAwXV07XG5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKEludGVybmFsU2VydmVyRXhjZXB0aW9uLCBfX0ludGVybmFsU2VydmVyRXhjZXB0aW9uKTtcbmV4cG9ydCB2YXIgVG9vTWFueVJlcXVlc3RzRXJyb3IgPSBbLTMsIG4wLCBfVE1SRSwgeyBbX2VdOiBfYywgW19oRV06IDQyOSB9LCBbX2UsIF9tXSwgWzAsIDBdXTtcblR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoVG9vTWFueVJlcXVlc3RzRXJyb3IsIF9fVG9vTWFueVJlcXVlc3RzRXJyb3IpO1xuZXhwb3J0IHZhciBWYWxpZGF0aW9uRXhjZXB0aW9uID0gWy0zLCBuMCwgX1ZFLCB7IFtfZV06IF9jLCBbX2hFXTogNDAwIH0sIFtfZSwgX21dLCBbMCwgMF1dO1xuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihWYWxpZGF0aW9uRXhjZXB0aW9uLCBfX1ZhbGlkYXRpb25FeGNlcHRpb24pO1xuZXhwb3J0IHZhciBTaWduaW5TZXJ2aWNlRXhjZXB0aW9uID0gWy0zLCBfc20sIFwiU2lnbmluU2VydmljZUV4Y2VwdGlvblwiLCAwLCBbXSwgW11dO1xuVHlwZVJlZ2lzdHJ5LmZvcihfc20pLnJlZ2lzdGVyRXJyb3IoU2lnbmluU2VydmljZUV4Y2VwdGlvbiwgX19TaWduaW5TZXJ2aWNlRXhjZXB0aW9uKTtcbmV4cG9ydCB2YXIgQ3JlYXRlT0F1dGgyVG9rZW4gPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfQ09BVCxcbiAgICB7IFtfaF06IFtcIlBPU1RcIiwgXCIvdjEvdG9rZW5cIiwgMjAwXSB9LFxuICAgICgpID0+IENyZWF0ZU9BdXRoMlRva2VuUmVxdWVzdCxcbiAgICAoKSA9PiBDcmVhdGVPQXV0aDJUb2tlblJlc3BvbnNlLFxuXTtcbiIsICJpbXBvcnQgeyBnZXRFbmRwb2ludFBsdWdpbiB9IGZyb20gXCJAc21pdGh5L21pZGRsZXdhcmUtZW5kcG9pbnRcIjtcbmltcG9ydCB7IENvbW1hbmQgYXMgJENvbW1hbmQgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyBjb21tb25QYXJhbXMgfSBmcm9tIFwiLi4vZW5kcG9pbnQvRW5kcG9pbnRQYXJhbWV0ZXJzXCI7XG5pbXBvcnQgeyBDcmVhdGVPQXV0aDJUb2tlbiB9IGZyb20gXCIuLi9zY2hlbWFzL3NjaGVtYXNfMFwiO1xuZXhwb3J0IHsgJENvbW1hbmQgfTtcbmV4cG9ydCBjbGFzcyBDcmVhdGVPQXV0aDJUb2tlbkNvbW1hbmQgZXh0ZW5kcyAkQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW2dldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiU2lnbmluXCIsIFwiQ3JlYXRlT0F1dGgyVG9rZW5cIiwge30pXG4gICAgLm4oXCJTaWduaW5DbGllbnRcIiwgXCJDcmVhdGVPQXV0aDJUb2tlbkNvbW1hbmRcIilcbiAgICAuc2MoQ3JlYXRlT0F1dGgyVG9rZW4pXG4gICAgLmJ1aWxkKCkge1xufVxuIiwgImltcG9ydCB7IGNyZWF0ZUFnZ3JlZ2F0ZWRDbGllbnQgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyBDcmVhdGVPQXV0aDJUb2tlbkNvbW1hbmQsIH0gZnJvbSBcIi4vY29tbWFuZHMvQ3JlYXRlT0F1dGgyVG9rZW5Db21tYW5kXCI7XG5pbXBvcnQgeyBTaWduaW5DbGllbnQgfSBmcm9tIFwiLi9TaWduaW5DbGllbnRcIjtcbmNvbnN0IGNvbW1hbmRzID0ge1xuICAgIENyZWF0ZU9BdXRoMlRva2VuQ29tbWFuZCxcbn07XG5leHBvcnQgY2xhc3MgU2lnbmluIGV4dGVuZHMgU2lnbmluQ2xpZW50IHtcbn1cbmNyZWF0ZUFnZ3JlZ2F0ZWRDbGllbnQoY29tbWFuZHMsIFNpZ25pbik7XG4iLCAiZXhwb3J0ICogZnJvbSBcIi4vQ3JlYXRlT0F1dGgyVG9rZW5Db21tYW5kXCI7XG4iLCAiZXhwb3J0IGNvbnN0IE9BdXRoMkVycm9yQ29kZSA9IHtcbiAgICBBVVRIQ09ERV9FWFBJUkVEOiBcIkFVVEhDT0RFX0VYUElSRURcIixcbiAgICBJTlNVRkZJQ0lFTlRfUEVSTUlTU0lPTlM6IFwiSU5TVUZGSUNJRU5UX1BFUk1JU1NJT05TXCIsXG4gICAgSU5WQUxJRF9SRVFVRVNUOiBcIklOVkFMSURfUkVRVUVTVFwiLFxuICAgIFNFUlZFUl9FUlJPUjogXCJzZXJ2ZXJfZXJyb3JcIixcbiAgICBUT0tFTl9FWFBJUkVEOiBcIlRPS0VOX0VYUElSRURcIixcbiAgICBVU0VSX0NSRURFTlRJQUxTX0NIQU5HRUQ6IFwiVVNFUl9DUkVERU5USUFMU19DSEFOR0VEXCIsXG59O1xuIiwgImV4cG9ydCAqIGZyb20gXCIuL1NpZ25pbkNsaWVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vU2lnbmluXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21tYW5kc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWxzL2VudW1zXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9tb2RlbHMvZXJyb3JzXCI7XG5leHBvcnQgeyBTaWduaW5TZXJ2aWNlRXhjZXB0aW9uIH0gZnJvbSBcIi4vbW9kZWxzL1NpZ25pblNlcnZpY2VFeGNlcHRpb25cIjtcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBjbGllbnQgPSByZXF1aXJlKCdAYXdzLXNkay9jb3JlL2NsaWVudCcpO1xudmFyIHByb3BlcnR5UHJvdmlkZXIgPSByZXF1aXJlKCdAc21pdGh5L3Byb3BlcnR5LXByb3ZpZGVyJyk7XG52YXIgc2hhcmVkSW5pRmlsZUxvYWRlciA9IHJlcXVpcmUoJ0BzbWl0aHkvc2hhcmVkLWluaS1maWxlLWxvYWRlcicpO1xudmFyIHByb3RvY29sSHR0cCA9IHJlcXVpcmUoJ0BzbWl0aHkvcHJvdG9jb2wtaHR0cCcpO1xudmFyIG5vZGVfY3J5cHRvID0gcmVxdWlyZSgnbm9kZTpjcnlwdG8nKTtcbnZhciBub2RlX2ZzID0gcmVxdWlyZSgnbm9kZTpmcycpO1xudmFyIG5vZGVfb3MgPSByZXF1aXJlKCdub2RlOm9zJyk7XG52YXIgbm9kZV9wYXRoID0gcmVxdWlyZSgnbm9kZTpwYXRoJyk7XG5cbmNsYXNzIExvZ2luQ3JlZGVudGlhbHNGZXRjaGVyIHtcbiAgICBwcm9maWxlRGF0YTtcbiAgICBpbml0O1xuICAgIGNhbGxlckNsaWVudENvbmZpZztcbiAgICBzdGF0aWMgUkVGUkVTSF9USFJFU0hPTEQgPSA1ICogNjAgKiAxMDAwO1xuICAgIGNvbnN0cnVjdG9yKHByb2ZpbGVEYXRhLCBpbml0LCBjYWxsZXJDbGllbnRDb25maWcpIHtcbiAgICAgICAgdGhpcy5wcm9maWxlRGF0YSA9IHByb2ZpbGVEYXRhO1xuICAgICAgICB0aGlzLmluaXQgPSBpbml0O1xuICAgICAgICB0aGlzLmNhbGxlckNsaWVudENvbmZpZyA9IGNhbGxlckNsaWVudENvbmZpZztcbiAgICB9XG4gICAgYXN5bmMgbG9hZENyZWRlbnRpYWxzKCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IGF3YWl0IHRoaXMubG9hZFRva2VuKCk7XG4gICAgICAgIGlmICghdG9rZW4pIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLkNyZWRlbnRpYWxzUHJvdmlkZXJFcnJvcihgRmFpbGVkIHRvIGxvYWQgYSB0b2tlbiBmb3Igc2Vzc2lvbiAke3RoaXMubG9naW5TZXNzaW9ufSwgcGxlYXNlIHJlLWF1dGhlbnRpY2F0ZSB1c2luZyBhd3MgbG9naW5gLCB7IHRyeU5leHRMaW5rOiBmYWxzZSwgbG9nZ2VyOiB0aGlzLmxvZ2dlciB9KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhY2Nlc3NUb2tlbiA9IHRva2VuLmFjY2Vzc1Rva2VuO1xuICAgICAgICBjb25zdCBub3cgPSBEYXRlLm5vdygpO1xuICAgICAgICBjb25zdCBleHBpcnlUaW1lID0gbmV3IERhdGUoYWNjZXNzVG9rZW4uZXhwaXJlc0F0KS5nZXRUaW1lKCk7XG4gICAgICAgIGNvbnN0IHRpbWVVbnRpbEV4cGlyeSA9IGV4cGlyeVRpbWUgLSBub3c7XG4gICAgICAgIGlmICh0aW1lVW50aWxFeHBpcnkgPD0gTG9naW5DcmVkZW50aWFsc0ZldGNoZXIuUkVGUkVTSF9USFJFU0hPTEQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnJlZnJlc2godG9rZW4pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBhY2Nlc3NLZXlJZDogYWNjZXNzVG9rZW4uYWNjZXNzS2V5SWQsXG4gICAgICAgICAgICBzZWNyZXRBY2Nlc3NLZXk6IGFjY2Vzc1Rva2VuLnNlY3JldEFjY2Vzc0tleSxcbiAgICAgICAgICAgIHNlc3Npb25Ub2tlbjogYWNjZXNzVG9rZW4uc2Vzc2lvblRva2VuLFxuICAgICAgICAgICAgYWNjb3VudElkOiBhY2Nlc3NUb2tlbi5hY2NvdW50SWQsXG4gICAgICAgICAgICBleHBpcmF0aW9uOiBuZXcgRGF0ZShhY2Nlc3NUb2tlbi5leHBpcmVzQXQpLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBnZXQgbG9nZ2VyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pbml0Py5sb2dnZXI7XG4gICAgfVxuICAgIGdldCBsb2dpblNlc3Npb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnByb2ZpbGVEYXRhLmxvZ2luX3Nlc3Npb247XG4gICAgfVxuICAgIGFzeW5jIHJlZnJlc2godG9rZW4pIHtcbiAgICAgICAgY29uc3QgeyBTaWduaW5DbGllbnQsIENyZWF0ZU9BdXRoMlRva2VuQ29tbWFuZCB9ID0gYXdhaXQgaW1wb3J0KCdAYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9zaWduaW4nKTtcbiAgICAgICAgY29uc3QgeyBsb2dnZXIsIHVzZXJBZ2VudEFwcElkIH0gPSB0aGlzLmNhbGxlckNsaWVudENvbmZpZyA/PyB7fTtcbiAgICAgICAgY29uc3QgaXNIMiA9IChyZXF1ZXN0SGFuZGxlcikgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3RIYW5kbGVyPy5tZXRhZGF0YT8uaGFuZGxlclByb3RvY29sID09PSBcImgyXCI7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHJlcXVlc3RIYW5kbGVyID0gaXNIMih0aGlzLmNhbGxlckNsaWVudENvbmZpZz8ucmVxdWVzdEhhbmRsZXIpXG4gICAgICAgICAgICA/IHVuZGVmaW5lZFxuICAgICAgICAgICAgOiB0aGlzLmNhbGxlckNsaWVudENvbmZpZz8ucmVxdWVzdEhhbmRsZXI7XG4gICAgICAgIGNvbnN0IHJlZ2lvbiA9IHRoaXMucHJvZmlsZURhdGEucmVnaW9uID8/IChhd2FpdCB0aGlzLmNhbGxlckNsaWVudENvbmZpZz8ucmVnaW9uPy4oKSkgPz8gcHJvY2Vzcy5lbnYuQVdTX1JFR0lPTjtcbiAgICAgICAgY29uc3QgY2xpZW50ID0gbmV3IFNpZ25pbkNsaWVudCh7XG4gICAgICAgICAgICBjcmVkZW50aWFsczoge1xuICAgICAgICAgICAgICAgIGFjY2Vzc0tleUlkOiBcIlwiLFxuICAgICAgICAgICAgICAgIHNlY3JldEFjY2Vzc0tleTogXCJcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZWdpb24sXG4gICAgICAgICAgICByZXF1ZXN0SGFuZGxlcixcbiAgICAgICAgICAgIGxvZ2dlcixcbiAgICAgICAgICAgIHVzZXJBZ2VudEFwcElkLFxuICAgICAgICAgICAgLi4udGhpcy5pbml0Py5jbGllbnRDb25maWcsXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmNyZWF0ZURQb1BJbnRlcmNlcHRvcihjbGllbnQubWlkZGxld2FyZVN0YWNrKTtcbiAgICAgICAgY29uc3QgY29tbWFuZElucHV0ID0ge1xuICAgICAgICAgICAgdG9rZW5JbnB1dDoge1xuICAgICAgICAgICAgICAgIGNsaWVudElkOiB0b2tlbi5jbGllbnRJZCxcbiAgICAgICAgICAgICAgICByZWZyZXNoVG9rZW46IHRva2VuLnJlZnJlc2hUb2tlbixcbiAgICAgICAgICAgICAgICBncmFudFR5cGU6IFwicmVmcmVzaF90b2tlblwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LnNlbmQobmV3IENyZWF0ZU9BdXRoMlRva2VuQ29tbWFuZChjb21tYW5kSW5wdXQpKTtcbiAgICAgICAgICAgIGNvbnN0IHsgYWNjZXNzS2V5SWQsIHNlY3JldEFjY2Vzc0tleSwgc2Vzc2lvblRva2VuIH0gPSByZXNwb25zZS50b2tlbk91dHB1dD8uYWNjZXNzVG9rZW4gPz8ge307XG4gICAgICAgICAgICBjb25zdCB7IHJlZnJlc2hUb2tlbiwgZXhwaXJlc0luIH0gPSByZXNwb25zZS50b2tlbk91dHB1dCA/PyB7fTtcbiAgICAgICAgICAgIGlmICghYWNjZXNzS2V5SWQgfHwgIXNlY3JldEFjY2Vzc0tleSB8fCAhc2Vzc2lvblRva2VuIHx8ICFyZWZyZXNoVG9rZW4pIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoXCJUb2tlbiByZWZyZXNoIHJlc3BvbnNlIG1pc3NpbmcgcmVxdWlyZWQgZmllbGRzXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgbG9nZ2VyOiB0aGlzLmxvZ2dlcixcbiAgICAgICAgICAgICAgICAgICAgdHJ5TmV4dExpbms6IGZhbHNlLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgZXhwaXJlc0luTXMgPSAoZXhwaXJlc0luID8/IDkwMCkgKiAxMDAwO1xuICAgICAgICAgICAgY29uc3QgZXhwaXJhdGlvbiA9IG5ldyBEYXRlKERhdGUubm93KCkgKyBleHBpcmVzSW5Ncyk7XG4gICAgICAgICAgICBjb25zdCB1cGRhdGVkVG9rZW4gPSB7XG4gICAgICAgICAgICAgICAgLi4udG9rZW4sXG4gICAgICAgICAgICAgICAgYWNjZXNzVG9rZW46IHtcbiAgICAgICAgICAgICAgICAgICAgLi4udG9rZW4uYWNjZXNzVG9rZW4sXG4gICAgICAgICAgICAgICAgICAgIGFjY2Vzc0tleUlkOiBhY2Nlc3NLZXlJZCxcbiAgICAgICAgICAgICAgICAgICAgc2VjcmV0QWNjZXNzS2V5OiBzZWNyZXRBY2Nlc3NLZXksXG4gICAgICAgICAgICAgICAgICAgIHNlc3Npb25Ub2tlbjogc2Vzc2lvblRva2VuLFxuICAgICAgICAgICAgICAgICAgICBleHBpcmVzQXQ6IGV4cGlyYXRpb24udG9JU09TdHJpbmcoKSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHJlZnJlc2hUb2tlbjogcmVmcmVzaFRva2VuLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuc2F2ZVRva2VuKHVwZGF0ZWRUb2tlbik7XG4gICAgICAgICAgICBjb25zdCBuZXdBY2Nlc3NUb2tlbiA9IHVwZGF0ZWRUb2tlbi5hY2Nlc3NUb2tlbjtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgYWNjZXNzS2V5SWQ6IG5ld0FjY2Vzc1Rva2VuLmFjY2Vzc0tleUlkLFxuICAgICAgICAgICAgICAgIHNlY3JldEFjY2Vzc0tleTogbmV3QWNjZXNzVG9rZW4uc2VjcmV0QWNjZXNzS2V5LFxuICAgICAgICAgICAgICAgIHNlc3Npb25Ub2tlbjogbmV3QWNjZXNzVG9rZW4uc2Vzc2lvblRva2VuLFxuICAgICAgICAgICAgICAgIGFjY291bnRJZDogbmV3QWNjZXNzVG9rZW4uYWNjb3VudElkLFxuICAgICAgICAgICAgICAgIGV4cGlyYXRpb24sXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgaWYgKGVycm9yLm5hbWUgPT09IFwiQWNjZXNzRGVuaWVkRXhjZXB0aW9uXCIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBlcnJvclR5cGUgPSBlcnJvci5lcnJvcjtcbiAgICAgICAgICAgICAgICBsZXQgbWVzc2FnZTtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGVycm9yVHlwZSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIFwiVE9LRU5fRVhQSVJFRFwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9IFwiWW91ciBzZXNzaW9uIGhhcyBleHBpcmVkLiBQbGVhc2UgcmVhdXRoZW50aWNhdGUuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBcIlVTRVJfQ1JFREVOVElBTFNfQ0hBTkdFRFwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJVbmFibGUgdG8gcmVmcmVzaCBjcmVkZW50aWFscyBiZWNhdXNlIG9mIGEgY2hhbmdlIGluIHlvdXIgcGFzc3dvcmQuIFBsZWFzZSByZWF1dGhlbnRpY2F0ZSB3aXRoIHlvdXIgbmV3IHBhc3N3b3JkLlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgXCJJTlNVRkZJQ0lFTlRfUEVSTUlTU0lPTlNcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVW5hYmxlIHRvIHJlZnJlc2ggY3JlZGVudGlhbHMgZHVlIHRvIGluc3VmZmljaWVudCBwZXJtaXNzaW9ucy4gWW91IG1heSBiZSBtaXNzaW5nIHBlcm1pc3Npb24gZm9yIHRoZSAnQ3JlYXRlT0F1dGgyVG9rZW4nIGFjdGlvbi5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9IGBGYWlsZWQgdG8gcmVmcmVzaCB0b2tlbjogJHtTdHJpbmcoZXJyb3IpfS4gUGxlYXNlIHJlLWF1dGhlbnRpY2F0ZSB1c2luZyBcXGBhd3MgbG9naW5cXGBgO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IobWVzc2FnZSwgeyBsb2dnZXI6IHRoaXMubG9nZ2VyLCB0cnlOZXh0TGluazogZmFsc2UgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoYEZhaWxlZCB0byByZWZyZXNoIHRva2VuOiAke1N0cmluZyhlcnJvcil9LiBQbGVhc2UgcmUtYXV0aGVudGljYXRlIHVzaW5nIGF3cyBsb2dpbmAsIHsgbG9nZ2VyOiB0aGlzLmxvZ2dlciB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBhc3luYyBsb2FkVG9rZW4oKSB7XG4gICAgICAgIGNvbnN0IHRva2VuRmlsZVBhdGggPSB0aGlzLmdldFRva2VuRmlsZVBhdGgoKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGxldCB0b2tlbkRhdGE7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHRva2VuRGF0YSA9IGF3YWl0IHNoYXJlZEluaUZpbGVMb2FkZXIucmVhZEZpbGUodG9rZW5GaWxlUGF0aCwgeyBpZ25vcmVDYWNoZTogdGhpcy5pbml0Py5pZ25vcmVDYWNoZSB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIHtcbiAgICAgICAgICAgICAgICB0b2tlbkRhdGEgPSBhd2FpdCBub2RlX2ZzLnByb21pc2VzLnJlYWRGaWxlKHRva2VuRmlsZVBhdGgsIFwidXRmOFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHRva2VuID0gSlNPTi5wYXJzZSh0b2tlbkRhdGEpO1xuICAgICAgICAgICAgY29uc3QgbWlzc2luZ0ZpZWxkcyA9IFtcImFjY2Vzc1Rva2VuXCIsIFwiY2xpZW50SWRcIiwgXCJyZWZyZXNoVG9rZW5cIiwgXCJkcG9wS2V5XCJdLmZpbHRlcigoaykgPT4gIXRva2VuW2tdKTtcbiAgICAgICAgICAgIGlmICghdG9rZW4uYWNjZXNzVG9rZW4/LmFjY291bnRJZCkge1xuICAgICAgICAgICAgICAgIG1pc3NpbmdGaWVsZHMucHVzaChcImFjY291bnRJZFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChtaXNzaW5nRmllbGRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoYFRva2VuIHZhbGlkYXRpb24gZmFpbGVkLCBtaXNzaW5nIGZpZWxkczogJHttaXNzaW5nRmllbGRzLmpvaW4oXCIsIFwiKX1gLCB7XG4gICAgICAgICAgICAgICAgICAgIGxvZ2dlcjogdGhpcy5sb2dnZXIsXG4gICAgICAgICAgICAgICAgICAgIHRyeU5leHRMaW5rOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0b2tlbjtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLkNyZWRlbnRpYWxzUHJvdmlkZXJFcnJvcihgRmFpbGVkIHRvIGxvYWQgdG9rZW4gZnJvbSAke3Rva2VuRmlsZVBhdGh9OiAke1N0cmluZyhlcnJvcil9YCwge1xuICAgICAgICAgICAgICAgIGxvZ2dlcjogdGhpcy5sb2dnZXIsXG4gICAgICAgICAgICAgICAgdHJ5TmV4dExpbms6IGZhbHNlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgYXN5bmMgc2F2ZVRva2VuKHRva2VuKSB7XG4gICAgICAgIGNvbnN0IHRva2VuRmlsZVBhdGggPSB0aGlzLmdldFRva2VuRmlsZVBhdGgoKTtcbiAgICAgICAgY29uc3QgZGlyZWN0b3J5ID0gbm9kZV9wYXRoLmRpcm5hbWUodG9rZW5GaWxlUGF0aCk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhd2FpdCBub2RlX2ZzLnByb21pc2VzLm1rZGlyKGRpcmVjdG9yeSwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIH1cbiAgICAgICAgYXdhaXQgbm9kZV9mcy5wcm9taXNlcy53cml0ZUZpbGUodG9rZW5GaWxlUGF0aCwgSlNPTi5zdHJpbmdpZnkodG9rZW4sIG51bGwsIDIpLCBcInV0ZjhcIik7XG4gICAgfVxuICAgIGdldFRva2VuRmlsZVBhdGgoKSB7XG4gICAgICAgIGNvbnN0IGRpcmVjdG9yeSA9IHByb2Nlc3MuZW52LkFXU19MT0dJTl9DQUNIRV9ESVJFQ1RPUlkgPz8gbm9kZV9wYXRoLmpvaW4obm9kZV9vcy5ob21lZGlyKCksIFwiLmF3c1wiLCBcImxvZ2luXCIsIFwiY2FjaGVcIik7XG4gICAgICAgIGNvbnN0IGxvZ2luU2Vzc2lvbkJ5dGVzID0gQnVmZmVyLmZyb20odGhpcy5sb2dpblNlc3Npb24sIFwidXRmOFwiKTtcbiAgICAgICAgY29uc3QgbG9naW5TZXNzaW9uU2hhMjU2ID0gbm9kZV9jcnlwdG8uY3JlYXRlSGFzaChcInNoYTI1NlwiKS51cGRhdGUobG9naW5TZXNzaW9uQnl0ZXMpLmRpZ2VzdChcImhleFwiKTtcbiAgICAgICAgcmV0dXJuIG5vZGVfcGF0aC5qb2luKGRpcmVjdG9yeSwgYCR7bG9naW5TZXNzaW9uU2hhMjU2fS5qc29uYCk7XG4gICAgfVxuICAgIGRlclRvUmF3U2lnbmF0dXJlKGRlclNpZ25hdHVyZSkge1xuICAgICAgICBsZXQgb2Zmc2V0ID0gMjtcbiAgICAgICAgaWYgKGRlclNpZ25hdHVyZVtvZmZzZXRdICE9PSAweDAyKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIERFUiBzaWduYXR1cmVcIik7XG4gICAgICAgIH1cbiAgICAgICAgb2Zmc2V0Kys7XG4gICAgICAgIGNvbnN0IHJMZW5ndGggPSBkZXJTaWduYXR1cmVbb2Zmc2V0KytdO1xuICAgICAgICBsZXQgciA9IGRlclNpZ25hdHVyZS5zdWJhcnJheShvZmZzZXQsIG9mZnNldCArIHJMZW5ndGgpO1xuICAgICAgICBvZmZzZXQgKz0gckxlbmd0aDtcbiAgICAgICAgaWYgKGRlclNpZ25hdHVyZVtvZmZzZXRdICE9PSAweDAyKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIERFUiBzaWduYXR1cmVcIik7XG4gICAgICAgIH1cbiAgICAgICAgb2Zmc2V0Kys7XG4gICAgICAgIGNvbnN0IHNMZW5ndGggPSBkZXJTaWduYXR1cmVbb2Zmc2V0KytdO1xuICAgICAgICBsZXQgcyA9IGRlclNpZ25hdHVyZS5zdWJhcnJheShvZmZzZXQsIG9mZnNldCArIHNMZW5ndGgpO1xuICAgICAgICByID0gclswXSA9PT0gMHgwMCA/IHIuc3ViYXJyYXkoMSkgOiByO1xuICAgICAgICBzID0gc1swXSA9PT0gMHgwMCA/IHMuc3ViYXJyYXkoMSkgOiBzO1xuICAgICAgICBjb25zdCByUGFkZGVkID0gQnVmZmVyLmNvbmNhdChbQnVmZmVyLmFsbG9jKDMyIC0gci5sZW5ndGgpLCByXSk7XG4gICAgICAgIGNvbnN0IHNQYWRkZWQgPSBCdWZmZXIuY29uY2F0KFtCdWZmZXIuYWxsb2MoMzIgLSBzLmxlbmd0aCksIHNdKTtcbiAgICAgICAgcmV0dXJuIEJ1ZmZlci5jb25jYXQoW3JQYWRkZWQsIHNQYWRkZWRdKTtcbiAgICB9XG4gICAgY3JlYXRlRFBvUEludGVyY2VwdG9yKG1pZGRsZXdhcmVTdGFjaykge1xuICAgICAgICBtaWRkbGV3YXJlU3RhY2suYWRkKChuZXh0KSA9PiBhc3luYyAoYXJncykgPT4ge1xuICAgICAgICAgICAgaWYgKHByb3RvY29sSHR0cC5IdHRwUmVxdWVzdC5pc0luc3RhbmNlKGFyZ3MucmVxdWVzdCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZXF1ZXN0ID0gYXJncy5yZXF1ZXN0O1xuICAgICAgICAgICAgICAgIGNvbnN0IGFjdHVhbEVuZHBvaW50ID0gYCR7cmVxdWVzdC5wcm90b2NvbH0vLyR7cmVxdWVzdC5ob3N0bmFtZX0ke3JlcXVlc3QucG9ydCA/IGA6JHtyZXF1ZXN0LnBvcnR9YCA6IFwiXCJ9JHtyZXF1ZXN0LnBhdGh9YDtcbiAgICAgICAgICAgICAgICBjb25zdCBkcG9wID0gYXdhaXQgdGhpcy5nZW5lcmF0ZURwb3AocmVxdWVzdC5tZXRob2QsIGFjdHVhbEVuZHBvaW50KTtcbiAgICAgICAgICAgICAgICByZXF1ZXN0LmhlYWRlcnMgPSB7XG4gICAgICAgICAgICAgICAgICAgIC4uLnJlcXVlc3QuaGVhZGVycyxcbiAgICAgICAgICAgICAgICAgICAgRFBvUDogZHBvcCxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG5leHQoYXJncyk7XG4gICAgICAgIH0sIHtcbiAgICAgICAgICAgIHN0ZXA6IFwiZmluYWxpemVSZXF1ZXN0XCIsXG4gICAgICAgICAgICBuYW1lOiBcImRwb3BJbnRlcmNlcHRvclwiLFxuICAgICAgICAgICAgb3ZlcnJpZGU6IHRydWUsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBhc3luYyBnZW5lcmF0ZURwb3AobWV0aG9kID0gXCJQT1NUXCIsIGVuZHBvaW50KSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gYXdhaXQgdGhpcy5sb2FkVG9rZW4oKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHByaXZhdGVLZXkgPSBub2RlX2NyeXB0by5jcmVhdGVQcml2YXRlS2V5KHtcbiAgICAgICAgICAgICAgICBrZXk6IHRva2VuLmRwb3BLZXksXG4gICAgICAgICAgICAgICAgZm9ybWF0OiBcInBlbVwiLFxuICAgICAgICAgICAgICAgIHR5cGU6IFwic2VjMVwiLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCBwdWJsaWNLZXkgPSBub2RlX2NyeXB0by5jcmVhdGVQdWJsaWNLZXkocHJpdmF0ZUtleSk7XG4gICAgICAgICAgICBjb25zdCBwdWJsaWNEZXIgPSBwdWJsaWNLZXkuZXhwb3J0KHsgZm9ybWF0OiBcImRlclwiLCB0eXBlOiBcInNwa2lcIiB9KTtcbiAgICAgICAgICAgIGxldCBwb2ludFN0YXJ0ID0gLTE7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHB1YmxpY0Rlci5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGlmIChwdWJsaWNEZXJbaV0gPT09IDB4MDQpIHtcbiAgICAgICAgICAgICAgICAgICAgcG9pbnRTdGFydCA9IGk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHggPSBwdWJsaWNEZXIuc2xpY2UocG9pbnRTdGFydCArIDEsIHBvaW50U3RhcnQgKyAzMyk7XG4gICAgICAgICAgICBjb25zdCB5ID0gcHVibGljRGVyLnNsaWNlKHBvaW50U3RhcnQgKyAzMywgcG9pbnRTdGFydCArIDY1KTtcbiAgICAgICAgICAgIGNvbnN0IGhlYWRlciA9IHtcbiAgICAgICAgICAgICAgICBhbGc6IFwiRVMyNTZcIixcbiAgICAgICAgICAgICAgICB0eXA6IFwiZHBvcCtqd3RcIixcbiAgICAgICAgICAgICAgICBqd2s6IHtcbiAgICAgICAgICAgICAgICAgICAga3R5OiBcIkVDXCIsXG4gICAgICAgICAgICAgICAgICAgIGNydjogXCJQLTI1NlwiLFxuICAgICAgICAgICAgICAgICAgICB4OiB4LnRvU3RyaW5nKFwiYmFzZTY0dXJsXCIpLFxuICAgICAgICAgICAgICAgICAgICB5OiB5LnRvU3RyaW5nKFwiYmFzZTY0dXJsXCIpLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY29uc3QgcGF5bG9hZCA9IHtcbiAgICAgICAgICAgICAgICBqdGk6IGNyeXB0by5yYW5kb21VVUlEKCksXG4gICAgICAgICAgICAgICAgaHRtOiBtZXRob2QsXG4gICAgICAgICAgICAgICAgaHR1OiBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBpYXQ6IE1hdGguZmxvb3IoRGF0ZS5ub3coKSAvIDEwMDApLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGNvbnN0IGhlYWRlckI2NCA9IEJ1ZmZlci5mcm9tKEpTT04uc3RyaW5naWZ5KGhlYWRlcikpLnRvU3RyaW5nKFwiYmFzZTY0dXJsXCIpO1xuICAgICAgICAgICAgY29uc3QgcGF5bG9hZEI2NCA9IEJ1ZmZlci5mcm9tKEpTT04uc3RyaW5naWZ5KHBheWxvYWQpKS50b1N0cmluZyhcImJhc2U2NHVybFwiKTtcbiAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgJHtoZWFkZXJCNjR9LiR7cGF5bG9hZEI2NH1gO1xuICAgICAgICAgICAgY29uc3QgYXNuMVNpZ25hdHVyZSA9IG5vZGVfY3J5cHRvLnNpZ24oXCJzaGEyNTZcIiwgQnVmZmVyLmZyb20obWVzc2FnZSksIHByaXZhdGVLZXkpO1xuICAgICAgICAgICAgY29uc3QgcmF3U2lnbmF0dXJlID0gdGhpcy5kZXJUb1Jhd1NpZ25hdHVyZShhc24xU2lnbmF0dXJlKTtcbiAgICAgICAgICAgIGNvbnN0IHNpZ25hdHVyZUI2NCA9IHJhd1NpZ25hdHVyZS50b1N0cmluZyhcImJhc2U2NHVybFwiKTtcbiAgICAgICAgICAgIHJldHVybiBgJHttZXNzYWdlfS4ke3NpZ25hdHVyZUI2NH1gO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKGBGYWlsZWQgdG8gZ2VuZXJhdGUgRHBvcCBwcm9vZjogJHtlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6IFN0cmluZyhlcnJvcil9YCwgeyBsb2dnZXI6IHRoaXMubG9nZ2VyLCB0cnlOZXh0TGluazogZmFsc2UgfSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmNvbnN0IGZyb21Mb2dpbkNyZWRlbnRpYWxzID0gKGluaXQpID0+IGFzeW5jICh7IGNhbGxlckNsaWVudENvbmZpZyB9ID0ge30pID0+IHtcbiAgICBpbml0Py5sb2dnZXI/LmRlYnVnPy4oXCJAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVycyAtIGZyb21Mb2dpbkNyZWRlbnRpYWxzXCIpO1xuICAgIGNvbnN0IHByb2ZpbGVzID0gYXdhaXQgc2hhcmVkSW5pRmlsZUxvYWRlci5wYXJzZUtub3duRmlsZXMoaW5pdCB8fCB7fSk7XG4gICAgY29uc3QgcHJvZmlsZU5hbWUgPSBzaGFyZWRJbmlGaWxlTG9hZGVyLmdldFByb2ZpbGVOYW1lKHtcbiAgICAgICAgcHJvZmlsZTogaW5pdD8ucHJvZmlsZSA/PyBjYWxsZXJDbGllbnRDb25maWc/LnByb2ZpbGUsXG4gICAgfSk7XG4gICAgY29uc3QgcHJvZmlsZSA9IHByb2ZpbGVzW3Byb2ZpbGVOYW1lXTtcbiAgICBpZiAoIXByb2ZpbGU/LmxvZ2luX3Nlc3Npb24pIHtcbiAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKGBQcm9maWxlICR7cHJvZmlsZU5hbWV9IGRvZXMgbm90IGNvbnRhaW4gbG9naW5fc2Vzc2lvbi5gLCB7XG4gICAgICAgICAgICB0cnlOZXh0TGluazogdHJ1ZSxcbiAgICAgICAgICAgIGxvZ2dlcjogaW5pdD8ubG9nZ2VyLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgZmV0Y2hlciA9IG5ldyBMb2dpbkNyZWRlbnRpYWxzRmV0Y2hlcihwcm9maWxlLCBpbml0LCBjYWxsZXJDbGllbnRDb25maWcpO1xuICAgIGNvbnN0IGNyZWRlbnRpYWxzID0gYXdhaXQgZmV0Y2hlci5sb2FkQ3JlZGVudGlhbHMoKTtcbiAgICByZXR1cm4gY2xpZW50LnNldENyZWRlbnRpYWxGZWF0dXJlKGNyZWRlbnRpYWxzLCBcIkNSRURFTlRJQUxTX0xPR0lOXCIsIFwiQURcIik7XG59O1xuXG5leHBvcnRzLmZyb21Mb2dpbkNyZWRlbnRpYWxzID0gZnJvbUxvZ2luQ3JlZGVudGlhbHM7XG4iLCAiaW1wb3J0IHsgcmVzb2x2ZUF3c1Nka1NpZ1Y0Q29uZmlnLCB9IGZyb20gXCJAYXdzLXNkay9jb3JlXCI7XG5pbXBvcnQgeyBnZXRTbWl0aHlDb250ZXh0LCBub3JtYWxpemVQcm92aWRlciB9IGZyb20gXCJAc21pdGh5L3V0aWwtbWlkZGxld2FyZVwiO1xuaW1wb3J0IHsgU1RTQ2xpZW50IH0gZnJvbSBcIi4uL1NUU0NsaWVudFwiO1xuZXhwb3J0IGNvbnN0IGRlZmF1bHRTVFNIdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlciA9IGFzeW5jIChjb25maWcsIGNvbnRleHQsIGlucHV0KSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgb3BlcmF0aW9uOiBnZXRTbWl0aHlDb250ZXh0KGNvbnRleHQpLm9wZXJhdGlvbixcbiAgICAgICAgcmVnaW9uOiAoYXdhaXQgbm9ybWFsaXplUHJvdmlkZXIoY29uZmlnLnJlZ2lvbikoKSkgfHxcbiAgICAgICAgICAgICgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiZXhwZWN0ZWQgYHJlZ2lvbmAgdG8gYmUgY29uZmlndXJlZCBmb3IgYGF3cy5hdXRoI3NpZ3Y0YFwiKTtcbiAgICAgICAgICAgIH0pKCksXG4gICAgfTtcbn07XG5mdW5jdGlvbiBjcmVhdGVBd3NBdXRoU2lndjRIdHRwQXV0aE9wdGlvbihhdXRoUGFyYW1ldGVycykge1xuICAgIHJldHVybiB7XG4gICAgICAgIHNjaGVtZUlkOiBcImF3cy5hdXRoI3NpZ3Y0XCIsXG4gICAgICAgIHNpZ25pbmdQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICBuYW1lOiBcInN0c1wiLFxuICAgICAgICAgICAgcmVnaW9uOiBhdXRoUGFyYW1ldGVycy5yZWdpb24sXG4gICAgICAgIH0sXG4gICAgICAgIHByb3BlcnRpZXNFeHRyYWN0b3I6IChjb25maWcsIGNvbnRleHQpID0+ICh7XG4gICAgICAgICAgICBzaWduaW5nUHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgIGNvbmZpZyxcbiAgICAgICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgfTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVNtaXRoeUFwaU5vQXV0aEh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc2NoZW1lSWQ6IFwic21pdGh5LmFwaSNub0F1dGhcIixcbiAgICB9O1xufVxuZXhwb3J0IGNvbnN0IGRlZmF1bHRTVFNIdHRwQXV0aFNjaGVtZVByb3ZpZGVyID0gKGF1dGhQYXJhbWV0ZXJzKSA9PiB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IFtdO1xuICAgIHN3aXRjaCAoYXV0aFBhcmFtZXRlcnMub3BlcmF0aW9uKSB7XG4gICAgICAgIGNhc2UgXCJBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5XCI6IHtcbiAgICAgICAgICAgIG9wdGlvbnMucHVzaChjcmVhdGVTbWl0aHlBcGlOb0F1dGhIdHRwQXV0aE9wdGlvbihhdXRoUGFyYW1ldGVycykpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgb3B0aW9ucy5wdXNoKGNyZWF0ZUF3c0F1dGhTaWd2NEh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG9wdGlvbnM7XG59O1xuZXhwb3J0IGNvbnN0IHJlc29sdmVTdHNBdXRoQ29uZmlnID0gKGlucHV0KSA9PiBPYmplY3QuYXNzaWduKGlucHV0LCB7XG4gICAgc3RzQ2xpZW50Q3RvcjogU1RTQ2xpZW50LFxufSk7XG5leHBvcnQgY29uc3QgcmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIGNvbnN0IGNvbmZpZ18wID0gcmVzb2x2ZVN0c0F1dGhDb25maWcoY29uZmlnKTtcbiAgICBjb25zdCBjb25maWdfMSA9IHJlc29sdmVBd3NTZGtTaWdWNENvbmZpZyhjb25maWdfMCk7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oY29uZmlnXzEsIHtcbiAgICAgICAgYXV0aFNjaGVtZVByZWZlcmVuY2U6IG5vcm1hbGl6ZVByb3ZpZGVyKGNvbmZpZy5hdXRoU2NoZW1lUHJlZmVyZW5jZSA/PyBbXSksXG4gICAgfSk7XG59O1xuIiwgImV4cG9ydCBjb25zdCByZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzID0gKG9wdGlvbnMpID0+IHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihvcHRpb25zLCB7XG4gICAgICAgIHVzZUR1YWxzdGFja0VuZHBvaW50OiBvcHRpb25zLnVzZUR1YWxzdGFja0VuZHBvaW50ID8/IGZhbHNlLFxuICAgICAgICB1c2VGaXBzRW5kcG9pbnQ6IG9wdGlvbnMudXNlRmlwc0VuZHBvaW50ID8/IGZhbHNlLFxuICAgICAgICB1c2VHbG9iYWxFbmRwb2ludDogb3B0aW9ucy51c2VHbG9iYWxFbmRwb2ludCA/PyBmYWxzZSxcbiAgICAgICAgZGVmYXVsdFNpZ25pbmdOYW1lOiBcInN0c1wiLFxuICAgIH0pO1xufTtcbmV4cG9ydCBjb25zdCBjb21tb25QYXJhbXMgPSB7XG4gICAgVXNlR2xvYmFsRW5kcG9pbnQ6IHsgdHlwZTogXCJidWlsdEluUGFyYW1zXCIsIG5hbWU6IFwidXNlR2xvYmFsRW5kcG9pbnRcIiB9LFxuICAgIFVzZUZJUFM6IHsgdHlwZTogXCJidWlsdEluUGFyYW1zXCIsIG5hbWU6IFwidXNlRmlwc0VuZHBvaW50XCIgfSxcbiAgICBFbmRwb2ludDogeyB0eXBlOiBcImJ1aWx0SW5QYXJhbXNcIiwgbmFtZTogXCJlbmRwb2ludFwiIH0sXG4gICAgUmVnaW9uOiB7IHR5cGU6IFwiYnVpbHRJblBhcmFtc1wiLCBuYW1lOiBcInJlZ2lvblwiIH0sXG4gICAgVXNlRHVhbFN0YWNrOiB7IHR5cGU6IFwiYnVpbHRJblBhcmFtc1wiLCBuYW1lOiBcInVzZUR1YWxzdGFja0VuZHBvaW50XCIgfSxcbn07XG4iLCAiY29uc3QgRiA9IFwicmVxdWlyZWRcIiwgRyA9IFwidHlwZVwiLCBIID0gXCJmblwiLCBJID0gXCJhcmd2XCIsIEogPSBcInJlZlwiO1xuY29uc3QgYSA9IGZhbHNlLCBiID0gdHJ1ZSwgYyA9IFwiYm9vbGVhbkVxdWFsc1wiLCBkID0gXCJzdHJpbmdFcXVhbHNcIiwgZSA9IFwic2lndjRcIiwgZiA9IFwic3RzXCIsIGcgPSBcInVzLWVhc3QtMVwiLCBoID0gXCJlbmRwb2ludFwiLCBpID0gXCJodHRwczovL3N0cy57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH1cIiwgaiA9IFwidHJlZVwiLCBrID0gXCJlcnJvclwiLCBsID0gXCJnZXRBdHRyXCIsIG0gPSB7IFtGXTogZmFsc2UsIFtHXTogXCJzdHJpbmdcIiB9LCBuID0geyBbRl06IHRydWUsIFwiZGVmYXVsdFwiOiBmYWxzZSwgW0ddOiBcImJvb2xlYW5cIiB9LCBvID0geyBbSl06IFwiRW5kcG9pbnRcIiB9LCBwID0geyBbSF06IFwiaXNTZXRcIiwgW0ldOiBbeyBbSl06IFwiUmVnaW9uXCIgfV0gfSwgcSA9IHsgW0pdOiBcIlJlZ2lvblwiIH0sIHIgPSB7IFtIXTogXCJhd3MucGFydGl0aW9uXCIsIFtJXTogW3FdLCBcImFzc2lnblwiOiBcIlBhcnRpdGlvblJlc3VsdFwiIH0sIHMgPSB7IFtKXTogXCJVc2VGSVBTXCIgfSwgdCA9IHsgW0pdOiBcIlVzZUR1YWxTdGFja1wiIH0sIHUgPSB7IFwidXJsXCI6IFwiaHR0cHM6Ly9zdHMuYW1hem9uYXdzLmNvbVwiLCBcInByb3BlcnRpZXNcIjogeyBcImF1dGhTY2hlbWVzXCI6IFt7IFwibmFtZVwiOiBlLCBcInNpZ25pbmdOYW1lXCI6IGYsIFwic2lnbmluZ1JlZ2lvblwiOiBnIH1dIH0sIFwiaGVhZGVyc1wiOiB7fSB9LCB2ID0ge30sIHcgPSB7IFwiY29uZGl0aW9uc1wiOiBbeyBbSF06IGQsIFtJXTogW3EsIFwiYXdzLWdsb2JhbFwiXSB9XSwgW2hdOiB1LCBbR106IGggfSwgeCA9IHsgW0hdOiBjLCBbSV06IFtzLCB0cnVlXSB9LCB5ID0geyBbSF06IGMsIFtJXTogW3QsIHRydWVdIH0sIHogPSB7IFtIXTogbCwgW0ldOiBbeyBbSl06IFwiUGFydGl0aW9uUmVzdWx0XCIgfSwgXCJzdXBwb3J0c0ZJUFNcIl0gfSwgQSA9IHsgW0pdOiBcIlBhcnRpdGlvblJlc3VsdFwiIH0sIEIgPSB7IFtIXTogYywgW0ldOiBbdHJ1ZSwgeyBbSF06IGwsIFtJXTogW0EsIFwic3VwcG9ydHNEdWFsU3RhY2tcIl0gfV0gfSwgQyA9IFt7IFtIXTogXCJpc1NldFwiLCBbSV06IFtvXSB9XSwgRCA9IFt4XSwgRSA9IFt5XTtcbmNvbnN0IF9kYXRhID0geyB2ZXJzaW9uOiBcIjEuMFwiLCBwYXJhbWV0ZXJzOiB7IFJlZ2lvbjogbSwgVXNlRHVhbFN0YWNrOiBuLCBVc2VGSVBTOiBuLCBFbmRwb2ludDogbSwgVXNlR2xvYmFsRW5kcG9pbnQ6IG4gfSwgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IFt7IFtIXTogYywgW0ldOiBbeyBbSl06IFwiVXNlR2xvYmFsRW5kcG9pbnRcIiB9LCBiXSB9LCB7IFtIXTogXCJub3RcIiwgW0ldOiBDIH0sIHAsIHIsIHsgW0hdOiBjLCBbSV06IFtzLCBhXSB9LCB7IFtIXTogYywgW0ldOiBbdCwgYV0gfV0sIHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbeyBbSF06IGQsIFtJXTogW3EsIFwiYXAtbm9ydGhlYXN0LTFcIl0gfV0sIGVuZHBvaW50OiB1LCBbR106IGggfSwgeyBjb25kaXRpb25zOiBbeyBbSF06IGQsIFtJXTogW3EsIFwiYXAtc291dGgtMVwiXSB9XSwgZW5kcG9pbnQ6IHUsIFtHXTogaCB9LCB7IGNvbmRpdGlvbnM6IFt7IFtIXTogZCwgW0ldOiBbcSwgXCJhcC1zb3V0aGVhc3QtMVwiXSB9XSwgZW5kcG9pbnQ6IHUsIFtHXTogaCB9LCB7IGNvbmRpdGlvbnM6IFt7IFtIXTogZCwgW0ldOiBbcSwgXCJhcC1zb3V0aGVhc3QtMlwiXSB9XSwgZW5kcG9pbnQ6IHUsIFtHXTogaCB9LCB3LCB7IGNvbmRpdGlvbnM6IFt7IFtIXTogZCwgW0ldOiBbcSwgXCJjYS1jZW50cmFsLTFcIl0gfV0sIGVuZHBvaW50OiB1LCBbR106IGggfSwgeyBjb25kaXRpb25zOiBbeyBbSF06IGQsIFtJXTogW3EsIFwiZXUtY2VudHJhbC0xXCJdIH1dLCBlbmRwb2ludDogdSwgW0ddOiBoIH0sIHsgY29uZGl0aW9uczogW3sgW0hdOiBkLCBbSV06IFtxLCBcImV1LW5vcnRoLTFcIl0gfV0sIGVuZHBvaW50OiB1LCBbR106IGggfSwgeyBjb25kaXRpb25zOiBbeyBbSF06IGQsIFtJXTogW3EsIFwiZXUtd2VzdC0xXCJdIH1dLCBlbmRwb2ludDogdSwgW0ddOiBoIH0sIHsgY29uZGl0aW9uczogW3sgW0hdOiBkLCBbSV06IFtxLCBcImV1LXdlc3QtMlwiXSB9XSwgZW5kcG9pbnQ6IHUsIFtHXTogaCB9LCB7IGNvbmRpdGlvbnM6IFt7IFtIXTogZCwgW0ldOiBbcSwgXCJldS13ZXN0LTNcIl0gfV0sIGVuZHBvaW50OiB1LCBbR106IGggfSwgeyBjb25kaXRpb25zOiBbeyBbSF06IGQsIFtJXTogW3EsIFwic2EtZWFzdC0xXCJdIH1dLCBlbmRwb2ludDogdSwgW0ddOiBoIH0sIHsgY29uZGl0aW9uczogW3sgW0hdOiBkLCBbSV06IFtxLCBnXSB9XSwgZW5kcG9pbnQ6IHUsIFtHXTogaCB9LCB7IGNvbmRpdGlvbnM6IFt7IFtIXTogZCwgW0ldOiBbcSwgXCJ1cy1lYXN0LTJcIl0gfV0sIGVuZHBvaW50OiB1LCBbR106IGggfSwgeyBjb25kaXRpb25zOiBbeyBbSF06IGQsIFtJXTogW3EsIFwidXMtd2VzdC0xXCJdIH1dLCBlbmRwb2ludDogdSwgW0ddOiBoIH0sIHsgY29uZGl0aW9uczogW3sgW0hdOiBkLCBbSV06IFtxLCBcInVzLXdlc3QtMlwiXSB9XSwgZW5kcG9pbnQ6IHUsIFtHXTogaCB9LCB7IGVuZHBvaW50OiB7IHVybDogaSwgcHJvcGVydGllczogeyBhdXRoU2NoZW1lczogW3sgbmFtZTogZSwgc2lnbmluZ05hbWU6IGYsIHNpZ25pbmdSZWdpb246IFwie1JlZ2lvbn1cIiB9XSB9LCBoZWFkZXJzOiB2IH0sIFtHXTogaCB9XSwgW0ddOiBqIH0sIHsgY29uZGl0aW9uczogQywgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IEQsIGVycm9yOiBcIkludmFsaWQgQ29uZmlndXJhdGlvbjogRklQUyBhbmQgY3VzdG9tIGVuZHBvaW50IGFyZSBub3Qgc3VwcG9ydGVkXCIsIFtHXTogayB9LCB7IGNvbmRpdGlvbnM6IEUsIGVycm9yOiBcIkludmFsaWQgQ29uZmlndXJhdGlvbjogRHVhbHN0YWNrIGFuZCBjdXN0b20gZW5kcG9pbnQgYXJlIG5vdCBzdXBwb3J0ZWRcIiwgW0ddOiBrIH0sIHsgZW5kcG9pbnQ6IHsgdXJsOiBvLCBwcm9wZXJ0aWVzOiB2LCBoZWFkZXJzOiB2IH0sIFtHXTogaCB9XSwgW0ddOiBqIH0sIHsgY29uZGl0aW9uczogW3BdLCBydWxlczogW3sgY29uZGl0aW9uczogW3JdLCBydWxlczogW3sgY29uZGl0aW9uczogW3gsIHldLCBydWxlczogW3sgY29uZGl0aW9uczogW3sgW0hdOiBjLCBbSV06IFtiLCB6XSB9LCBCXSwgcnVsZXM6IFt7IGVuZHBvaW50OiB7IHVybDogXCJodHRwczovL3N0cy1maXBzLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZHVhbFN0YWNrRG5zU3VmZml4fVwiLCBwcm9wZXJ0aWVzOiB2LCBoZWFkZXJzOiB2IH0sIFtHXTogaCB9XSwgW0ddOiBqIH0sIHsgZXJyb3I6IFwiRklQUyBhbmQgRHVhbFN0YWNrIGFyZSBlbmFibGVkLCBidXQgdGhpcyBwYXJ0aXRpb24gZG9lcyBub3Qgc3VwcG9ydCBvbmUgb3IgYm90aFwiLCBbR106IGsgfV0sIFtHXTogaiB9LCB7IGNvbmRpdGlvbnM6IEQsIHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbeyBbSF06IGMsIFtJXTogW3osIGJdIH1dLCBydWxlczogW3sgY29uZGl0aW9uczogW3sgW0hdOiBkLCBbSV06IFt7IFtIXTogbCwgW0ldOiBbQSwgXCJuYW1lXCJdIH0sIFwiYXdzLXVzLWdvdlwiXSB9XSwgZW5kcG9pbnQ6IHsgdXJsOiBcImh0dHBzOi8vc3RzLntSZWdpb259LmFtYXpvbmF3cy5jb21cIiwgcHJvcGVydGllczogdiwgaGVhZGVyczogdiB9LCBbR106IGggfSwgeyBlbmRwb2ludDogeyB1cmw6IFwiaHR0cHM6Ly9zdHMtZmlwcy57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH1cIiwgcHJvcGVydGllczogdiwgaGVhZGVyczogdiB9LCBbR106IGggfV0sIFtHXTogaiB9LCB7IGVycm9yOiBcIkZJUFMgaXMgZW5hYmxlZCBidXQgdGhpcyBwYXJ0aXRpb24gZG9lcyBub3Qgc3VwcG9ydCBGSVBTXCIsIFtHXTogayB9XSwgW0ddOiBqIH0sIHsgY29uZGl0aW9uczogRSwgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IFtCXSwgcnVsZXM6IFt7IGVuZHBvaW50OiB7IHVybDogXCJodHRwczovL3N0cy57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2R1YWxTdGFja0Ruc1N1ZmZpeH1cIiwgcHJvcGVydGllczogdiwgaGVhZGVyczogdiB9LCBbR106IGggfV0sIFtHXTogaiB9LCB7IGVycm9yOiBcIkR1YWxTdGFjayBpcyBlbmFibGVkIGJ1dCB0aGlzIHBhcnRpdGlvbiBkb2VzIG5vdCBzdXBwb3J0IER1YWxTdGFja1wiLCBbR106IGsgfV0sIFtHXTogaiB9LCB3LCB7IGVuZHBvaW50OiB7IHVybDogaSwgcHJvcGVydGllczogdiwgaGVhZGVyczogdiB9LCBbR106IGggfV0sIFtHXTogaiB9XSwgW0ddOiBqIH0sIHsgZXJyb3I6IFwiSW52YWxpZCBDb25maWd1cmF0aW9uOiBNaXNzaW5nIFJlZ2lvblwiLCBbR106IGsgfV0gfTtcbmV4cG9ydCBjb25zdCBydWxlU2V0ID0gX2RhdGE7XG4iLCAiaW1wb3J0IHsgYXdzRW5kcG9pbnRGdW5jdGlvbnMgfSBmcm9tIFwiQGF3cy1zZGsvdXRpbC1lbmRwb2ludHNcIjtcbmltcG9ydCB7IGN1c3RvbUVuZHBvaW50RnVuY3Rpb25zLCBFbmRwb2ludENhY2hlLCByZXNvbHZlRW5kcG9pbnQgfSBmcm9tIFwiQHNtaXRoeS91dGlsLWVuZHBvaW50c1wiO1xuaW1wb3J0IHsgcnVsZVNldCB9IGZyb20gXCIuL3J1bGVzZXRcIjtcbmNvbnN0IGNhY2hlID0gbmV3IEVuZHBvaW50Q2FjaGUoe1xuICAgIHNpemU6IDUwLFxuICAgIHBhcmFtczogW1wiRW5kcG9pbnRcIiwgXCJSZWdpb25cIiwgXCJVc2VEdWFsU3RhY2tcIiwgXCJVc2VGSVBTXCIsIFwiVXNlR2xvYmFsRW5kcG9pbnRcIl0sXG59KTtcbmV4cG9ydCBjb25zdCBkZWZhdWx0RW5kcG9pbnRSZXNvbHZlciA9IChlbmRwb2ludFBhcmFtcywgY29udGV4dCA9IHt9KSA9PiB7XG4gICAgcmV0dXJuIGNhY2hlLmdldChlbmRwb2ludFBhcmFtcywgKCkgPT4gcmVzb2x2ZUVuZHBvaW50KHJ1bGVTZXQsIHtcbiAgICAgICAgZW5kcG9pbnRQYXJhbXM6IGVuZHBvaW50UGFyYW1zLFxuICAgICAgICBsb2dnZXI6IGNvbnRleHQubG9nZ2VyLFxuICAgIH0pKTtcbn07XG5jdXN0b21FbmRwb2ludEZ1bmN0aW9ucy5hd3MgPSBhd3NFbmRwb2ludEZ1bmN0aW9ucztcbiIsICJpbXBvcnQgeyBBd3NTZGtTaWdWNFNpZ25lciB9IGZyb20gXCJAYXdzLXNkay9jb3JlXCI7XG5pbXBvcnQgeyBBd3NRdWVyeVByb3RvY29sIH0gZnJvbSBcIkBhd3Mtc2RrL2NvcmUvcHJvdG9jb2xzXCI7XG5pbXBvcnQgeyBOb0F1dGhTaWduZXIgfSBmcm9tIFwiQHNtaXRoeS9jb3JlXCI7XG5pbXBvcnQgeyBOb09wTG9nZ2VyIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgcGFyc2VVcmwgfSBmcm9tIFwiQHNtaXRoeS91cmwtcGFyc2VyXCI7XG5pbXBvcnQgeyBmcm9tQmFzZTY0LCB0b0Jhc2U2NCB9IGZyb20gXCJAc21pdGh5L3V0aWwtYmFzZTY0XCI7XG5pbXBvcnQgeyBmcm9tVXRmOCwgdG9VdGY4IH0gZnJvbSBcIkBzbWl0aHkvdXRpbC11dGY4XCI7XG5pbXBvcnQgeyBkZWZhdWx0U1RTSHR0cEF1dGhTY2hlbWVQcm92aWRlciB9IGZyb20gXCIuL2F1dGgvaHR0cEF1dGhTY2hlbWVQcm92aWRlclwiO1xuaW1wb3J0IHsgZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIgfSBmcm9tIFwiLi9lbmRwb2ludC9lbmRwb2ludFJlc29sdmVyXCI7XG5leHBvcnQgY29uc3QgZ2V0UnVudGltZUNvbmZpZyA9IChjb25maWcpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgICBhcGlWZXJzaW9uOiBcIjIwMTEtMDYtMTVcIixcbiAgICAgICAgYmFzZTY0RGVjb2RlcjogY29uZmlnPy5iYXNlNjREZWNvZGVyID8/IGZyb21CYXNlNjQsXG4gICAgICAgIGJhc2U2NEVuY29kZXI6IGNvbmZpZz8uYmFzZTY0RW5jb2RlciA/PyB0b0Jhc2U2NCxcbiAgICAgICAgZGlzYWJsZUhvc3RQcmVmaXg6IGNvbmZpZz8uZGlzYWJsZUhvc3RQcmVmaXggPz8gZmFsc2UsXG4gICAgICAgIGVuZHBvaW50UHJvdmlkZXI6IGNvbmZpZz8uZW5kcG9pbnRQcm92aWRlciA/PyBkZWZhdWx0RW5kcG9pbnRSZXNvbHZlcixcbiAgICAgICAgZXh0ZW5zaW9uczogY29uZmlnPy5leHRlbnNpb25zID8/IFtdLFxuICAgICAgICBodHRwQXV0aFNjaGVtZVByb3ZpZGVyOiBjb25maWc/Lmh0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPz8gZGVmYXVsdFNUU0h0dHBBdXRoU2NoZW1lUHJvdmlkZXIsXG4gICAgICAgIGh0dHBBdXRoU2NoZW1lczogY29uZmlnPy5odHRwQXV0aFNjaGVtZXMgPz8gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHNjaGVtZUlkOiBcImF3cy5hdXRoI3NpZ3Y0XCIsXG4gICAgICAgICAgICAgICAgaWRlbnRpdHlQcm92aWRlcjogKGlwYykgPT4gaXBjLmdldElkZW50aXR5UHJvdmlkZXIoXCJhd3MuYXV0aCNzaWd2NFwiKSxcbiAgICAgICAgICAgICAgICBzaWduZXI6IG5ldyBBd3NTZGtTaWdWNFNpZ25lcigpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzY2hlbWVJZDogXCJzbWl0aHkuYXBpI25vQXV0aFwiLFxuICAgICAgICAgICAgICAgIGlkZW50aXR5UHJvdmlkZXI6IChpcGMpID0+IGlwYy5nZXRJZGVudGl0eVByb3ZpZGVyKFwic21pdGh5LmFwaSNub0F1dGhcIikgfHwgKGFzeW5jICgpID0+ICh7fSkpLFxuICAgICAgICAgICAgICAgIHNpZ25lcjogbmV3IE5vQXV0aFNpZ25lcigpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgbG9nZ2VyOiBjb25maWc/LmxvZ2dlciA/PyBuZXcgTm9PcExvZ2dlcigpLFxuICAgICAgICBwcm90b2NvbDogY29uZmlnPy5wcm90b2NvbCA/P1xuICAgICAgICAgICAgbmV3IEF3c1F1ZXJ5UHJvdG9jb2woe1xuICAgICAgICAgICAgICAgIGRlZmF1bHROYW1lc3BhY2U6IFwiY29tLmFtYXpvbmF3cy5zdHNcIixcbiAgICAgICAgICAgICAgICB4bWxOYW1lc3BhY2U6IFwiaHR0cHM6Ly9zdHMuYW1hem9uYXdzLmNvbS9kb2MvMjAxMS0wNi0xNS9cIixcbiAgICAgICAgICAgICAgICB2ZXJzaW9uOiBcIjIwMTEtMDYtMTVcIixcbiAgICAgICAgICAgIH0pLFxuICAgICAgICBzZXJ2aWNlSWQ6IGNvbmZpZz8uc2VydmljZUlkID8/IFwiU1RTXCIsXG4gICAgICAgIHVybFBhcnNlcjogY29uZmlnPy51cmxQYXJzZXIgPz8gcGFyc2VVcmwsXG4gICAgICAgIHV0ZjhEZWNvZGVyOiBjb25maWc/LnV0ZjhEZWNvZGVyID8/IGZyb21VdGY4LFxuICAgICAgICB1dGY4RW5jb2RlcjogY29uZmlnPy51dGY4RW5jb2RlciA/PyB0b1V0ZjgsXG4gICAgfTtcbn07XG4iLCAiaW1wb3J0IHBhY2thZ2VJbmZvIGZyb20gXCIuLi8uLi8uLi9wYWNrYWdlLmpzb25cIjtcbmltcG9ydCB7IEF3c1Nka1NpZ1Y0U2lnbmVyLCBOT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfT1BUSU9OUywgZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbiBhcyBhd3NDaGVja1ZlcnNpb24sIH0gZnJvbSBcIkBhd3Mtc2RrL2NvcmVcIjtcbmltcG9ydCB7IE5PREVfQVBQX0lEX0NPTkZJR19PUFRJT05TLCBjcmVhdGVEZWZhdWx0VXNlckFnZW50UHJvdmlkZXIgfSBmcm9tIFwiQGF3cy1zZGsvdXRpbC11c2VyLWFnZW50LW5vZGVcIjtcbmltcG9ydCB7IE5PREVfUkVHSU9OX0NPTkZJR19GSUxFX09QVElPTlMsIE5PREVfUkVHSU9OX0NPTkZJR19PUFRJT05TLCBOT0RFX1VTRV9EVUFMU1RBQ0tfRU5EUE9JTlRfQ09ORklHX09QVElPTlMsIE5PREVfVVNFX0ZJUFNfRU5EUE9JTlRfQ09ORklHX09QVElPTlMsIH0gZnJvbSBcIkBzbWl0aHkvY29uZmlnLXJlc29sdmVyXCI7XG5pbXBvcnQgeyBOb0F1dGhTaWduZXIgfSBmcm9tIFwiQHNtaXRoeS9jb3JlXCI7XG5pbXBvcnQgeyBIYXNoIH0gZnJvbSBcIkBzbWl0aHkvaGFzaC1ub2RlXCI7XG5pbXBvcnQgeyBOT0RFX01BWF9BVFRFTVBUX0NPTkZJR19PUFRJT05TLCBOT0RFX1JFVFJZX01PREVfQ09ORklHX09QVElPTlMgfSBmcm9tIFwiQHNtaXRoeS9taWRkbGV3YXJlLXJldHJ5XCI7XG5pbXBvcnQgeyBsb2FkQ29uZmlnIGFzIGxvYWROb2RlQ29uZmlnIH0gZnJvbSBcIkBzbWl0aHkvbm9kZS1jb25maWctcHJvdmlkZXJcIjtcbmltcG9ydCB7IE5vZGVIdHRwSGFuZGxlciBhcyBSZXF1ZXN0SGFuZGxlciwgc3RyZWFtQ29sbGVjdG9yIH0gZnJvbSBcIkBzbWl0aHkvbm9kZS1odHRwLWhhbmRsZXJcIjtcbmltcG9ydCB7IGVtaXRXYXJuaW5nSWZVbnN1cHBvcnRlZFZlcnNpb24sIGxvYWRDb25maWdzRm9yRGVmYXVsdE1vZGUgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyBjYWxjdWxhdGVCb2R5TGVuZ3RoIH0gZnJvbSBcIkBzbWl0aHkvdXRpbC1ib2R5LWxlbmd0aC1ub2RlXCI7XG5pbXBvcnQgeyByZXNvbHZlRGVmYXVsdHNNb2RlQ29uZmlnIH0gZnJvbSBcIkBzbWl0aHkvdXRpbC1kZWZhdWx0cy1tb2RlLW5vZGVcIjtcbmltcG9ydCB7IERFRkFVTFRfUkVUUllfTU9ERSB9IGZyb20gXCJAc21pdGh5L3V0aWwtcmV0cnlcIjtcbmltcG9ydCB7IGdldFJ1bnRpbWVDb25maWcgYXMgZ2V0U2hhcmVkUnVudGltZUNvbmZpZyB9IGZyb20gXCIuL3J1bnRpbWVDb25maWcuc2hhcmVkXCI7XG5leHBvcnQgY29uc3QgZ2V0UnVudGltZUNvbmZpZyA9IChjb25maWcpID0+IHtcbiAgICBlbWl0V2FybmluZ0lmVW5zdXBwb3J0ZWRWZXJzaW9uKHByb2Nlc3MudmVyc2lvbik7XG4gICAgY29uc3QgZGVmYXVsdHNNb2RlID0gcmVzb2x2ZURlZmF1bHRzTW9kZUNvbmZpZyhjb25maWcpO1xuICAgIGNvbnN0IGRlZmF1bHRDb25maWdQcm92aWRlciA9ICgpID0+IGRlZmF1bHRzTW9kZSgpLnRoZW4obG9hZENvbmZpZ3NGb3JEZWZhdWx0TW9kZSk7XG4gICAgY29uc3QgY2xpZW50U2hhcmVkVmFsdWVzID0gZ2V0U2hhcmVkUnVudGltZUNvbmZpZyhjb25maWcpO1xuICAgIGF3c0NoZWNrVmVyc2lvbihwcm9jZXNzLnZlcnNpb24pO1xuICAgIGNvbnN0IGxvYWRlckNvbmZpZyA9IHtcbiAgICAgICAgcHJvZmlsZTogY29uZmlnPy5wcm9maWxlLFxuICAgICAgICBsb2dnZXI6IGNsaWVudFNoYXJlZFZhbHVlcy5sb2dnZXIsXG4gICAgfTtcbiAgICByZXR1cm4ge1xuICAgICAgICAuLi5jbGllbnRTaGFyZWRWYWx1ZXMsXG4gICAgICAgIC4uLmNvbmZpZyxcbiAgICAgICAgcnVudGltZTogXCJub2RlXCIsXG4gICAgICAgIGRlZmF1bHRzTW9kZSxcbiAgICAgICAgYXV0aFNjaGVtZVByZWZlcmVuY2U6IGNvbmZpZz8uYXV0aFNjaGVtZVByZWZlcmVuY2UgPz8gbG9hZE5vZGVDb25maWcoTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX09QVElPTlMsIGxvYWRlckNvbmZpZyksXG4gICAgICAgIGJvZHlMZW5ndGhDaGVja2VyOiBjb25maWc/LmJvZHlMZW5ndGhDaGVja2VyID8/IGNhbGN1bGF0ZUJvZHlMZW5ndGgsXG4gICAgICAgIGRlZmF1bHRVc2VyQWdlbnRQcm92aWRlcjogY29uZmlnPy5kZWZhdWx0VXNlckFnZW50UHJvdmlkZXIgPz9cbiAgICAgICAgICAgIGNyZWF0ZURlZmF1bHRVc2VyQWdlbnRQcm92aWRlcih7IHNlcnZpY2VJZDogY2xpZW50U2hhcmVkVmFsdWVzLnNlcnZpY2VJZCwgY2xpZW50VmVyc2lvbjogcGFja2FnZUluZm8udmVyc2lvbiB9KSxcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVzOiBjb25maWc/Lmh0dHBBdXRoU2NoZW1lcyA/PyBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgc2NoZW1lSWQ6IFwiYXdzLmF1dGgjc2lndjRcIixcbiAgICAgICAgICAgICAgICBpZGVudGl0eVByb3ZpZGVyOiAoaXBjKSA9PiBpcGMuZ2V0SWRlbnRpdHlQcm92aWRlcihcImF3cy5hdXRoI3NpZ3Y0XCIpIHx8XG4gICAgICAgICAgICAgICAgICAgIChhc3luYyAoaWRQcm9wcykgPT4gYXdhaXQgY29uZmlnLmNyZWRlbnRpYWxEZWZhdWx0UHJvdmlkZXIoaWRQcm9wcz8uX19jb25maWcgfHwge30pKCkpLFxuICAgICAgICAgICAgICAgIHNpZ25lcjogbmV3IEF3c1Nka1NpZ1Y0U2lnbmVyKCksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHNjaGVtZUlkOiBcInNtaXRoeS5hcGkjbm9BdXRoXCIsXG4gICAgICAgICAgICAgICAgaWRlbnRpdHlQcm92aWRlcjogKGlwYykgPT4gaXBjLmdldElkZW50aXR5UHJvdmlkZXIoXCJzbWl0aHkuYXBpI25vQXV0aFwiKSB8fCAoYXN5bmMgKCkgPT4gKHt9KSksXG4gICAgICAgICAgICAgICAgc2lnbmVyOiBuZXcgTm9BdXRoU2lnbmVyKCksXG4gICAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBtYXhBdHRlbXB0czogY29uZmlnPy5tYXhBdHRlbXB0cyA/PyBsb2FkTm9kZUNvbmZpZyhOT0RFX01BWF9BVFRFTVBUX0NPTkZJR19PUFRJT05TLCBjb25maWcpLFxuICAgICAgICByZWdpb246IGNvbmZpZz8ucmVnaW9uID8/XG4gICAgICAgICAgICBsb2FkTm9kZUNvbmZpZyhOT0RFX1JFR0lPTl9DT05GSUdfT1BUSU9OUywgeyAuLi5OT0RFX1JFR0lPTl9DT05GSUdfRklMRV9PUFRJT05TLCAuLi5sb2FkZXJDb25maWcgfSksXG4gICAgICAgIHJlcXVlc3RIYW5kbGVyOiBSZXF1ZXN0SGFuZGxlci5jcmVhdGUoY29uZmlnPy5yZXF1ZXN0SGFuZGxlciA/PyBkZWZhdWx0Q29uZmlnUHJvdmlkZXIpLFxuICAgICAgICByZXRyeU1vZGU6IGNvbmZpZz8ucmV0cnlNb2RlID8/XG4gICAgICAgICAgICBsb2FkTm9kZUNvbmZpZyh7XG4gICAgICAgICAgICAgICAgLi4uTk9ERV9SRVRSWV9NT0RFX0NPTkZJR19PUFRJT05TLFxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IGFzeW5jICgpID0+IChhd2FpdCBkZWZhdWx0Q29uZmlnUHJvdmlkZXIoKSkucmV0cnlNb2RlIHx8IERFRkFVTFRfUkVUUllfTU9ERSxcbiAgICAgICAgICAgIH0sIGNvbmZpZyksXG4gICAgICAgIHNoYTI1NjogY29uZmlnPy5zaGEyNTYgPz8gSGFzaC5iaW5kKG51bGwsIFwic2hhMjU2XCIpLFxuICAgICAgICBzdHJlYW1Db2xsZWN0b3I6IGNvbmZpZz8uc3RyZWFtQ29sbGVjdG9yID8/IHN0cmVhbUNvbGxlY3RvcixcbiAgICAgICAgdXNlRHVhbHN0YWNrRW5kcG9pbnQ6IGNvbmZpZz8udXNlRHVhbHN0YWNrRW5kcG9pbnQgPz8gbG9hZE5vZGVDb25maWcoTk9ERV9VU0VfRFVBTFNUQUNLX0VORFBPSU5UX0NPTkZJR19PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgICAgICB1c2VGaXBzRW5kcG9pbnQ6IGNvbmZpZz8udXNlRmlwc0VuZHBvaW50ID8/IGxvYWROb2RlQ29uZmlnKE5PREVfVVNFX0ZJUFNfRU5EUE9JTlRfQ09ORklHX09QVElPTlMsIGxvYWRlckNvbmZpZyksXG4gICAgICAgIHVzZXJBZ2VudEFwcElkOiBjb25maWc/LnVzZXJBZ2VudEFwcElkID8/IGxvYWROb2RlQ29uZmlnKE5PREVfQVBQX0lEX0NPTkZJR19PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgIH07XG59O1xuIiwgImV4cG9ydCBjb25zdCBnZXRIdHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24gPSAocnVudGltZUNvbmZpZykgPT4ge1xuICAgIGNvbnN0IF9odHRwQXV0aFNjaGVtZXMgPSBydW50aW1lQ29uZmlnLmh0dHBBdXRoU2NoZW1lcztcbiAgICBsZXQgX2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSBydW50aW1lQ29uZmlnLmh0dHBBdXRoU2NoZW1lUHJvdmlkZXI7XG4gICAgbGV0IF9jcmVkZW50aWFscyA9IHJ1bnRpbWVDb25maWcuY3JlZGVudGlhbHM7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc2V0SHR0cEF1dGhTY2hlbWUoaHR0cEF1dGhTY2hlbWUpIHtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gX2h0dHBBdXRoU2NoZW1lcy5maW5kSW5kZXgoKHNjaGVtZSkgPT4gc2NoZW1lLnNjaGVtZUlkID09PSBodHRwQXV0aFNjaGVtZS5zY2hlbWVJZCk7XG4gICAgICAgICAgICBpZiAoaW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgX2h0dHBBdXRoU2NoZW1lcy5wdXNoKGh0dHBBdXRoU2NoZW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIF9odHRwQXV0aFNjaGVtZXMuc3BsaWNlKGluZGV4LCAxLCBodHRwQXV0aFNjaGVtZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGh0dHBBdXRoU2NoZW1lcygpIHtcbiAgICAgICAgICAgIHJldHVybiBfaHR0cEF1dGhTY2hlbWVzO1xuICAgICAgICB9LFxuICAgICAgICBzZXRIdHRwQXV0aFNjaGVtZVByb3ZpZGVyKGh0dHBBdXRoU2NoZW1lUHJvdmlkZXIpIHtcbiAgICAgICAgICAgIF9odHRwQXV0aFNjaGVtZVByb3ZpZGVyID0gaHR0cEF1dGhTY2hlbWVQcm92aWRlcjtcbiAgICAgICAgfSxcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVQcm92aWRlcigpIHtcbiAgICAgICAgICAgIHJldHVybiBfaHR0cEF1dGhTY2hlbWVQcm92aWRlcjtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0Q3JlZGVudGlhbHMoY3JlZGVudGlhbHMpIHtcbiAgICAgICAgICAgIF9jcmVkZW50aWFscyA9IGNyZWRlbnRpYWxzO1xuICAgICAgICB9LFxuICAgICAgICBjcmVkZW50aWFscygpIHtcbiAgICAgICAgICAgIHJldHVybiBfY3JlZGVudGlhbHM7XG4gICAgICAgIH0sXG4gICAgfTtcbn07XG5leHBvcnQgY29uc3QgcmVzb2x2ZUh0dHBBdXRoUnVudGltZUNvbmZpZyA9IChjb25maWcpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgICBodHRwQXV0aFNjaGVtZXM6IGNvbmZpZy5odHRwQXV0aFNjaGVtZXMoKSxcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVQcm92aWRlcjogY29uZmlnLmh0dHBBdXRoU2NoZW1lUHJvdmlkZXIoKSxcbiAgICAgICAgY3JlZGVudGlhbHM6IGNvbmZpZy5jcmVkZW50aWFscygpLFxuICAgIH07XG59O1xuIiwgImltcG9ydCB7IGdldEF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24sIHJlc29sdmVBd3NSZWdpb25FeHRlbnNpb25Db25maWd1cmF0aW9uLCB9IGZyb20gXCJAYXdzLXNkay9yZWdpb24tY29uZmlnLXJlc29sdmVyXCI7XG5pbXBvcnQgeyBnZXRIdHRwSGFuZGxlckV4dGVuc2lvbkNvbmZpZ3VyYXRpb24sIHJlc29sdmVIdHRwSGFuZGxlclJ1bnRpbWVDb25maWcgfSBmcm9tIFwiQHNtaXRoeS9wcm90b2NvbC1odHRwXCI7XG5pbXBvcnQgeyBnZXREZWZhdWx0RXh0ZW5zaW9uQ29uZmlndXJhdGlvbiwgcmVzb2x2ZURlZmF1bHRSdW50aW1lQ29uZmlnIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgZ2V0SHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uLCByZXNvbHZlSHR0cEF1dGhSdW50aW1lQ29uZmlnIH0gZnJvbSBcIi4vYXV0aC9odHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb25cIjtcbmV4cG9ydCBjb25zdCByZXNvbHZlUnVudGltZUV4dGVuc2lvbnMgPSAocnVudGltZUNvbmZpZywgZXh0ZW5zaW9ucykgPT4ge1xuICAgIGNvbnN0IGV4dGVuc2lvbkNvbmZpZ3VyYXRpb24gPSBPYmplY3QuYXNzaWduKGdldEF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24ocnVudGltZUNvbmZpZyksIGdldERlZmF1bHRFeHRlbnNpb25Db25maWd1cmF0aW9uKHJ1bnRpbWVDb25maWcpLCBnZXRIdHRwSGFuZGxlckV4dGVuc2lvbkNvbmZpZ3VyYXRpb24ocnVudGltZUNvbmZpZyksIGdldEh0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbihydW50aW1lQ29uZmlnKSk7XG4gICAgZXh0ZW5zaW9ucy5mb3JFYWNoKChleHRlbnNpb24pID0+IGV4dGVuc2lvbi5jb25maWd1cmUoZXh0ZW5zaW9uQ29uZmlndXJhdGlvbikpO1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHJ1bnRpbWVDb25maWcsIHJlc29sdmVBd3NSZWdpb25FeHRlbnNpb25Db25maWd1cmF0aW9uKGV4dGVuc2lvbkNvbmZpZ3VyYXRpb24pLCByZXNvbHZlRGVmYXVsdFJ1bnRpbWVDb25maWcoZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiksIHJlc29sdmVIdHRwSGFuZGxlclJ1bnRpbWVDb25maWcoZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiksIHJlc29sdmVIdHRwQXV0aFJ1bnRpbWVDb25maWcoZXh0ZW5zaW9uQ29uZmlndXJhdGlvbikpO1xufTtcbiIsICJpbXBvcnQgeyBnZXRIb3N0SGVhZGVyUGx1Z2luLCByZXNvbHZlSG9zdEhlYWRlckNvbmZpZywgfSBmcm9tIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1ob3N0LWhlYWRlclwiO1xuaW1wb3J0IHsgZ2V0TG9nZ2VyUGx1Z2luIH0gZnJvbSBcIkBhd3Mtc2RrL21pZGRsZXdhcmUtbG9nZ2VyXCI7XG5pbXBvcnQgeyBnZXRSZWN1cnNpb25EZXRlY3Rpb25QbHVnaW4gfSBmcm9tIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1yZWN1cnNpb24tZGV0ZWN0aW9uXCI7XG5pbXBvcnQgeyBnZXRVc2VyQWdlbnRQbHVnaW4sIHJlc29sdmVVc2VyQWdlbnRDb25maWcsIH0gZnJvbSBcIkBhd3Mtc2RrL21pZGRsZXdhcmUtdXNlci1hZ2VudFwiO1xuaW1wb3J0IHsgcmVzb2x2ZVJlZ2lvbkNvbmZpZyB9IGZyb20gXCJAc21pdGh5L2NvbmZpZy1yZXNvbHZlclwiO1xuaW1wb3J0IHsgRGVmYXVsdElkZW50aXR5UHJvdmlkZXJDb25maWcsIGdldEh0dHBBdXRoU2NoZW1lRW5kcG9pbnRSdWxlU2V0UGx1Z2luLCBnZXRIdHRwU2lnbmluZ1BsdWdpbiwgfSBmcm9tIFwiQHNtaXRoeS9jb3JlXCI7XG5pbXBvcnQgeyBnZXRTY2hlbWFTZXJkZVBsdWdpbiB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2NoZW1hXCI7XG5pbXBvcnQgeyBnZXRDb250ZW50TGVuZ3RoUGx1Z2luIH0gZnJvbSBcIkBzbWl0aHkvbWlkZGxld2FyZS1jb250ZW50LWxlbmd0aFwiO1xuaW1wb3J0IHsgcmVzb2x2ZUVuZHBvaW50Q29uZmlnLCB9IGZyb20gXCJAc21pdGh5L21pZGRsZXdhcmUtZW5kcG9pbnRcIjtcbmltcG9ydCB7IGdldFJldHJ5UGx1Z2luLCByZXNvbHZlUmV0cnlDb25maWcsIH0gZnJvbSBcIkBzbWl0aHkvbWlkZGxld2FyZS1yZXRyeVwiO1xuaW1wb3J0IHsgQ2xpZW50IGFzIF9fQ2xpZW50LCB9IGZyb20gXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjtcbmltcG9ydCB7IGRlZmF1bHRTVFNIdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlciwgcmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnLCB9IGZyb20gXCIuL2F1dGgvaHR0cEF1dGhTY2hlbWVQcm92aWRlclwiO1xuaW1wb3J0IHsgcmVzb2x2ZUNsaWVudEVuZHBvaW50UGFyYW1ldGVycywgfSBmcm9tIFwiLi9lbmRwb2ludC9FbmRwb2ludFBhcmFtZXRlcnNcIjtcbmltcG9ydCB7IGdldFJ1bnRpbWVDb25maWcgYXMgX19nZXRSdW50aW1lQ29uZmlnIH0gZnJvbSBcIi4vcnVudGltZUNvbmZpZ1wiO1xuaW1wb3J0IHsgcmVzb2x2ZVJ1bnRpbWVFeHRlbnNpb25zIH0gZnJvbSBcIi4vcnVudGltZUV4dGVuc2lvbnNcIjtcbmV4cG9ydCB7IF9fQ2xpZW50IH07XG5leHBvcnQgY2xhc3MgU1RTQ2xpZW50IGV4dGVuZHMgX19DbGllbnQge1xuICAgIGNvbmZpZztcbiAgICBjb25zdHJ1Y3RvciguLi5bY29uZmlndXJhdGlvbl0pIHtcbiAgICAgICAgY29uc3QgX2NvbmZpZ18wID0gX19nZXRSdW50aW1lQ29uZmlnKGNvbmZpZ3VyYXRpb24gfHwge30pO1xuICAgICAgICBzdXBlcihfY29uZmlnXzApO1xuICAgICAgICB0aGlzLmluaXRDb25maWcgPSBfY29uZmlnXzA7XG4gICAgICAgIGNvbnN0IF9jb25maWdfMSA9IHJlc29sdmVDbGllbnRFbmRwb2ludFBhcmFtZXRlcnMoX2NvbmZpZ18wKTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ18yID0gcmVzb2x2ZVVzZXJBZ2VudENvbmZpZyhfY29uZmlnXzEpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzMgPSByZXNvbHZlUmV0cnlDb25maWcoX2NvbmZpZ18yKTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ180ID0gcmVzb2x2ZVJlZ2lvbkNvbmZpZyhfY29uZmlnXzMpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzUgPSByZXNvbHZlSG9zdEhlYWRlckNvbmZpZyhfY29uZmlnXzQpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzYgPSByZXNvbHZlRW5kcG9pbnRDb25maWcoX2NvbmZpZ181KTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ183ID0gcmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnKF9jb25maWdfNik7XG4gICAgICAgIGNvbnN0IF9jb25maWdfOCA9IHJlc29sdmVSdW50aW1lRXh0ZW5zaW9ucyhfY29uZmlnXzcsIGNvbmZpZ3VyYXRpb24/LmV4dGVuc2lvbnMgfHwgW10pO1xuICAgICAgICB0aGlzLmNvbmZpZyA9IF9jb25maWdfODtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGdldFNjaGVtYVNlcmRlUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShnZXRVc2VyQWdlbnRQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGdldFJldHJ5UGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShnZXRDb250ZW50TGVuZ3RoUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShnZXRIb3N0SGVhZGVyUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShnZXRMb2dnZXJQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGdldFJlY3Vyc2lvbkRldGVjdGlvblBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoZ2V0SHR0cEF1dGhTY2hlbWVFbmRwb2ludFJ1bGVTZXRQbHVnaW4odGhpcy5jb25maWcsIHtcbiAgICAgICAgICAgIGh0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyOiBkZWZhdWx0U1RTSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIsXG4gICAgICAgICAgICBpZGVudGl0eVByb3ZpZGVyQ29uZmlnUHJvdmlkZXI6IGFzeW5jIChjb25maWcpID0+IG5ldyBEZWZhdWx0SWRlbnRpdHlQcm92aWRlckNvbmZpZyh7XG4gICAgICAgICAgICAgICAgXCJhd3MuYXV0aCNzaWd2NFwiOiBjb25maWcuY3JlZGVudGlhbHMsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgfSkpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoZ2V0SHR0cFNpZ25pbmdQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICB9XG4gICAgZGVzdHJveSgpIHtcbiAgICAgICAgc3VwZXIuZGVzdHJveSgpO1xuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBTZXJ2aWNlRXhjZXB0aW9uIGFzIF9fU2VydmljZUV4Y2VwdGlvbiwgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5leHBvcnQgeyBfX1NlcnZpY2VFeGNlcHRpb24gfTtcbmV4cG9ydCBjbGFzcyBTVFNTZXJ2aWNlRXhjZXB0aW9uIGV4dGVuZHMgX19TZXJ2aWNlRXhjZXB0aW9uIHtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgU1RTU2VydmljZUV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBTVFNTZXJ2aWNlRXhjZXB0aW9uIGFzIF9fQmFzZUV4Y2VwdGlvbiB9IGZyb20gXCIuL1NUU1NlcnZpY2VFeGNlcHRpb25cIjtcbmV4cG9ydCBjbGFzcyBFeHBpcmVkVG9rZW5FeGNlcHRpb24gZXh0ZW5kcyBfX0Jhc2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIkV4cGlyZWRUb2tlbkV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkV4cGlyZWRUb2tlbkV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBFeHBpcmVkVG9rZW5FeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFeGNlcHRpb24gZXh0ZW5kcyBfX0Jhc2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIk1hbGZvcm1lZFBvbGljeURvY3VtZW50RXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgUGFja2VkUG9saWN5VG9vTGFyZ2VFeGNlcHRpb24gZXh0ZW5kcyBfX0Jhc2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIlBhY2tlZFBvbGljeVRvb0xhcmdlRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiUGFja2VkUG9saWN5VG9vTGFyZ2VFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgUGFja2VkUG9saWN5VG9vTGFyZ2VFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgUmVnaW9uRGlzYWJsZWRFeGNlcHRpb24gZXh0ZW5kcyBfX0Jhc2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIlJlZ2lvbkRpc2FibGVkRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiUmVnaW9uRGlzYWJsZWRFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgUmVnaW9uRGlzYWJsZWRFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgSURQUmVqZWN0ZWRDbGFpbUV4Y2VwdGlvbiBleHRlbmRzIF9fQmFzZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiSURQUmVqZWN0ZWRDbGFpbUV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIklEUFJlamVjdGVkQ2xhaW1FeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgSURQUmVqZWN0ZWRDbGFpbUV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBJbnZhbGlkSWRlbnRpdHlUb2tlbkV4Y2VwdGlvbiBleHRlbmRzIF9fQmFzZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiSW52YWxpZElkZW50aXR5VG9rZW5FeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJJbnZhbGlkSWRlbnRpdHlUb2tlbkV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBJbnZhbGlkSWRlbnRpdHlUb2tlbkV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBJRFBDb21tdW5pY2F0aW9uRXJyb3JFeGNlcHRpb24gZXh0ZW5kcyBfX0Jhc2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIklEUENvbW11bmljYXRpb25FcnJvckV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIklEUENvbW11bmljYXRpb25FcnJvckV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBJRFBDb21tdW5pY2F0aW9uRXJyb3JFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59XG4iLCAiY29uc3QgX0EgPSBcIkFyblwiO1xuY29uc3QgX0FLSSA9IFwiQWNjZXNzS2V5SWRcIjtcbmNvbnN0IF9BUiA9IFwiQXNzdW1lUm9sZVwiO1xuY29uc3QgX0FSSSA9IFwiQXNzdW1lZFJvbGVJZFwiO1xuY29uc3QgX0FSUiA9IFwiQXNzdW1lUm9sZVJlcXVlc3RcIjtcbmNvbnN0IF9BUlJzID0gXCJBc3N1bWVSb2xlUmVzcG9uc2VcIjtcbmNvbnN0IF9BUlUgPSBcIkFzc3VtZWRSb2xlVXNlclwiO1xuY29uc3QgX0FSV1dJID0gXCJBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5XCI7XG5jb25zdCBfQVJXV0lSID0gXCJBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5UmVxdWVzdFwiO1xuY29uc3QgX0FSV1dJUnMgPSBcIkFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlSZXNwb25zZVwiO1xuY29uc3QgX0F1ID0gXCJBdWRpZW5jZVwiO1xuY29uc3QgX0MgPSBcIkNyZWRlbnRpYWxzXCI7XG5jb25zdCBfQ0EgPSBcIkNvbnRleHRBc3NlcnRpb25cIjtcbmNvbnN0IF9EUyA9IFwiRHVyYXRpb25TZWNvbmRzXCI7XG5jb25zdCBfRSA9IFwiRXhwaXJhdGlvblwiO1xuY29uc3QgX0VJID0gXCJFeHRlcm5hbElkXCI7XG5jb25zdCBfRVRFID0gXCJFeHBpcmVkVG9rZW5FeGNlcHRpb25cIjtcbmNvbnN0IF9JRFBDRUUgPSBcIklEUENvbW11bmljYXRpb25FcnJvckV4Y2VwdGlvblwiO1xuY29uc3QgX0lEUFJDRSA9IFwiSURQUmVqZWN0ZWRDbGFpbUV4Y2VwdGlvblwiO1xuY29uc3QgX0lJVEUgPSBcIkludmFsaWRJZGVudGl0eVRva2VuRXhjZXB0aW9uXCI7XG5jb25zdCBfSyA9IFwiS2V5XCI7XG5jb25zdCBfTVBERSA9IFwiTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFeGNlcHRpb25cIjtcbmNvbnN0IF9QID0gXCJQb2xpY3lcIjtcbmNvbnN0IF9QQSA9IFwiUG9saWN5QXJuc1wiO1xuY29uc3QgX1BBciA9IFwiUHJvdmlkZXJBcm5cIjtcbmNvbnN0IF9QQyA9IFwiUHJvdmlkZWRDb250ZXh0c1wiO1xuY29uc3QgX1BDTFQgPSBcIlByb3ZpZGVkQ29udGV4dHNMaXN0VHlwZVwiO1xuY29uc3QgX1BDciA9IFwiUHJvdmlkZWRDb250ZXh0XCI7XG5jb25zdCBfUERUID0gXCJQb2xpY3lEZXNjcmlwdG9yVHlwZVwiO1xuY29uc3QgX1BJID0gXCJQcm92aWRlcklkXCI7XG5jb25zdCBfUFBTID0gXCJQYWNrZWRQb2xpY3lTaXplXCI7XG5jb25zdCBfUFBUTEUgPSBcIlBhY2tlZFBvbGljeVRvb0xhcmdlRXhjZXB0aW9uXCI7XG5jb25zdCBfUHIgPSBcIlByb3ZpZGVyXCI7XG5jb25zdCBfUkEgPSBcIlJvbGVBcm5cIjtcbmNvbnN0IF9SREUgPSBcIlJlZ2lvbkRpc2FibGVkRXhjZXB0aW9uXCI7XG5jb25zdCBfUlNOID0gXCJSb2xlU2Vzc2lvbk5hbWVcIjtcbmNvbnN0IF9TQUsgPSBcIlNlY3JldEFjY2Vzc0tleVwiO1xuY29uc3QgX1NGV0lUID0gXCJTdWJqZWN0RnJvbVdlYklkZW50aXR5VG9rZW5cIjtcbmNvbnN0IF9TSSA9IFwiU291cmNlSWRlbnRpdHlcIjtcbmNvbnN0IF9TTiA9IFwiU2VyaWFsTnVtYmVyXCI7XG5jb25zdCBfU1QgPSBcIlNlc3Npb25Ub2tlblwiO1xuY29uc3QgX1QgPSBcIlRhZ3NcIjtcbmNvbnN0IF9UQyA9IFwiVG9rZW5Db2RlXCI7XG5jb25zdCBfVFRLID0gXCJUcmFuc2l0aXZlVGFnS2V5c1wiO1xuY29uc3QgX1RhID0gXCJUYWdcIjtcbmNvbnN0IF9WID0gXCJWYWx1ZVwiO1xuY29uc3QgX1dJVCA9IFwiV2ViSWRlbnRpdHlUb2tlblwiO1xuY29uc3QgX2EgPSBcImFyblwiO1xuY29uc3QgX2FLU1QgPSBcImFjY2Vzc0tleVNlY3JldFR5cGVcIjtcbmNvbnN0IF9hUUUgPSBcImF3c1F1ZXJ5RXJyb3JcIjtcbmNvbnN0IF9jID0gXCJjbGllbnRcIjtcbmNvbnN0IF9jVFQgPSBcImNsaWVudFRva2VuVHlwZVwiO1xuY29uc3QgX2UgPSBcImVycm9yXCI7XG5jb25zdCBfaEUgPSBcImh0dHBFcnJvclwiO1xuY29uc3QgX20gPSBcIm1lc3NhZ2VcIjtcbmNvbnN0IF9wRExUID0gXCJwb2xpY3lEZXNjcmlwdG9yTGlzdFR5cGVcIjtcbmNvbnN0IF9zID0gXCJzbWl0aHkudHMuc2RrLnN5bnRoZXRpYy5jb20uYW1hem9uYXdzLnN0c1wiO1xuY29uc3QgX3RMVCA9IFwidGFnTGlzdFR5cGVcIjtcbmNvbnN0IG4wID0gXCJjb20uYW1hem9uYXdzLnN0c1wiO1xuaW1wb3J0IHsgVHlwZVJlZ2lzdHJ5IH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IEV4cGlyZWRUb2tlbkV4Y2VwdGlvbiBhcyBfX0V4cGlyZWRUb2tlbkV4Y2VwdGlvbiwgSURQQ29tbXVuaWNhdGlvbkVycm9yRXhjZXB0aW9uIGFzIF9fSURQQ29tbXVuaWNhdGlvbkVycm9yRXhjZXB0aW9uLCBJRFBSZWplY3RlZENsYWltRXhjZXB0aW9uIGFzIF9fSURQUmVqZWN0ZWRDbGFpbUV4Y2VwdGlvbiwgSW52YWxpZElkZW50aXR5VG9rZW5FeGNlcHRpb24gYXMgX19JbnZhbGlkSWRlbnRpdHlUb2tlbkV4Y2VwdGlvbiwgTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFeGNlcHRpb24gYXMgX19NYWxmb3JtZWRQb2xpY3lEb2N1bWVudEV4Y2VwdGlvbiwgUGFja2VkUG9saWN5VG9vTGFyZ2VFeGNlcHRpb24gYXMgX19QYWNrZWRQb2xpY3lUb29MYXJnZUV4Y2VwdGlvbiwgUmVnaW9uRGlzYWJsZWRFeGNlcHRpb24gYXMgX19SZWdpb25EaXNhYmxlZEV4Y2VwdGlvbiwgfSBmcm9tIFwiLi4vbW9kZWxzL2Vycm9yc1wiO1xuaW1wb3J0IHsgU1RTU2VydmljZUV4Y2VwdGlvbiBhcyBfX1NUU1NlcnZpY2VFeGNlcHRpb24gfSBmcm9tIFwiLi4vbW9kZWxzL1NUU1NlcnZpY2VFeGNlcHRpb25cIjtcbmV4cG9ydCB2YXIgYWNjZXNzS2V5U2VjcmV0VHlwZSA9IFswLCBuMCwgX2FLU1QsIDgsIDBdO1xuZXhwb3J0IHZhciBjbGllbnRUb2tlblR5cGUgPSBbMCwgbjAsIF9jVFQsIDgsIDBdO1xuZXhwb3J0IHZhciBBc3N1bWVkUm9sZVVzZXIgPSBbMywgbjAsIF9BUlUsIDAsIFtfQVJJLCBfQV0sIFswLCAwXV07XG5leHBvcnQgdmFyIEFzc3VtZVJvbGVSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0FSUixcbiAgICAwLFxuICAgIFtfUkEsIF9SU04sIF9QQSwgX1AsIF9EUywgX1QsIF9UVEssIF9FSSwgX1NOLCBfVEMsIF9TSSwgX1BDXSxcbiAgICBbMCwgMCwgKCkgPT4gcG9saWN5RGVzY3JpcHRvckxpc3RUeXBlLCAwLCAxLCAoKSA9PiB0YWdMaXN0VHlwZSwgNjQgfCAwLCAwLCAwLCAwLCAwLCAoKSA9PiBQcm92aWRlZENvbnRleHRzTGlzdFR5cGVdLFxuXTtcbmV4cG9ydCB2YXIgQXNzdW1lUm9sZVJlc3BvbnNlID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0FSUnMsXG4gICAgMCxcbiAgICBbX0MsIF9BUlUsIF9QUFMsIF9TSV0sXG4gICAgW1soKSA9PiBDcmVkZW50aWFscywgMF0sICgpID0+IEFzc3VtZWRSb2xlVXNlciwgMSwgMF0sXG5dO1xuZXhwb3J0IHZhciBBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5UmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9BUldXSVIsXG4gICAgMCxcbiAgICBbX1JBLCBfUlNOLCBfV0lULCBfUEksIF9QQSwgX1AsIF9EU10sXG4gICAgWzAsIDAsIFsoKSA9PiBjbGllbnRUb2tlblR5cGUsIDBdLCAwLCAoKSA9PiBwb2xpY3lEZXNjcmlwdG9yTGlzdFR5cGUsIDAsIDFdLFxuXTtcbmV4cG9ydCB2YXIgQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eVJlc3BvbnNlID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0FSV1dJUnMsXG4gICAgMCxcbiAgICBbX0MsIF9TRldJVCwgX0FSVSwgX1BQUywgX1ByLCBfQXUsIF9TSV0sXG4gICAgW1soKSA9PiBDcmVkZW50aWFscywgMF0sIDAsICgpID0+IEFzc3VtZWRSb2xlVXNlciwgMSwgMCwgMCwgMF0sXG5dO1xuZXhwb3J0IHZhciBDcmVkZW50aWFscyA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9DLFxuICAgIDAsXG4gICAgW19BS0ksIF9TQUssIF9TVCwgX0VdLFxuICAgIFswLCBbKCkgPT4gYWNjZXNzS2V5U2VjcmV0VHlwZSwgMF0sIDAsIDRdLFxuXTtcbmV4cG9ydCB2YXIgRXhwaXJlZFRva2VuRXhjZXB0aW9uID0gW1xuICAgIC0zLFxuICAgIG4wLFxuICAgIF9FVEUsXG4gICAgeyBbX2VdOiBfYywgW19oRV06IDQwMCwgW19hUUVdOiBbYEV4cGlyZWRUb2tlbkV4Y2VwdGlvbmAsIDQwMF0gfSxcbiAgICBbX21dLFxuICAgIFswXSxcbl07XG5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKEV4cGlyZWRUb2tlbkV4Y2VwdGlvbiwgX19FeHBpcmVkVG9rZW5FeGNlcHRpb24pO1xuZXhwb3J0IHZhciBJRFBDb21tdW5pY2F0aW9uRXJyb3JFeGNlcHRpb24gPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX0lEUENFRSxcbiAgICB7IFtfZV06IF9jLCBbX2hFXTogNDAwLCBbX2FRRV06IFtgSURQQ29tbXVuaWNhdGlvbkVycm9yYCwgNDAwXSB9LFxuICAgIFtfbV0sXG4gICAgWzBdLFxuXTtcblR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoSURQQ29tbXVuaWNhdGlvbkVycm9yRXhjZXB0aW9uLCBfX0lEUENvbW11bmljYXRpb25FcnJvckV4Y2VwdGlvbik7XG5leHBvcnQgdmFyIElEUFJlamVjdGVkQ2xhaW1FeGNlcHRpb24gPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX0lEUFJDRSxcbiAgICB7IFtfZV06IF9jLCBbX2hFXTogNDAzLCBbX2FRRV06IFtgSURQUmVqZWN0ZWRDbGFpbWAsIDQwM10gfSxcbiAgICBbX21dLFxuICAgIFswXSxcbl07XG5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKElEUFJlamVjdGVkQ2xhaW1FeGNlcHRpb24sIF9fSURQUmVqZWN0ZWRDbGFpbUV4Y2VwdGlvbik7XG5leHBvcnQgdmFyIEludmFsaWRJZGVudGl0eVRva2VuRXhjZXB0aW9uID0gW1xuICAgIC0zLFxuICAgIG4wLFxuICAgIF9JSVRFLFxuICAgIHsgW19lXTogX2MsIFtfaEVdOiA0MDAsIFtfYVFFXTogW2BJbnZhbGlkSWRlbnRpdHlUb2tlbmAsIDQwMF0gfSxcbiAgICBbX21dLFxuICAgIFswXSxcbl07XG5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKEludmFsaWRJZGVudGl0eVRva2VuRXhjZXB0aW9uLCBfX0ludmFsaWRJZGVudGl0eVRva2VuRXhjZXB0aW9uKTtcbmV4cG9ydCB2YXIgTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFeGNlcHRpb24gPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX01QREUsXG4gICAgeyBbX2VdOiBfYywgW19oRV06IDQwMCwgW19hUUVdOiBbYE1hbGZvcm1lZFBvbGljeURvY3VtZW50YCwgNDAwXSB9LFxuICAgIFtfbV0sXG4gICAgWzBdLFxuXTtcblR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFeGNlcHRpb24sIF9fTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFeGNlcHRpb24pO1xuZXhwb3J0IHZhciBQYWNrZWRQb2xpY3lUb29MYXJnZUV4Y2VwdGlvbiA9IFtcbiAgICAtMyxcbiAgICBuMCxcbiAgICBfUFBUTEUsXG4gICAgeyBbX2VdOiBfYywgW19oRV06IDQwMCwgW19hUUVdOiBbYFBhY2tlZFBvbGljeVRvb0xhcmdlYCwgNDAwXSB9LFxuICAgIFtfbV0sXG4gICAgWzBdLFxuXTtcblR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoUGFja2VkUG9saWN5VG9vTGFyZ2VFeGNlcHRpb24sIF9fUGFja2VkUG9saWN5VG9vTGFyZ2VFeGNlcHRpb24pO1xuZXhwb3J0IHZhciBQb2xpY3lEZXNjcmlwdG9yVHlwZSA9IFszLCBuMCwgX1BEVCwgMCwgW19hXSwgWzBdXTtcbmV4cG9ydCB2YXIgUHJvdmlkZWRDb250ZXh0ID0gWzMsIG4wLCBfUENyLCAwLCBbX1BBciwgX0NBXSwgWzAsIDBdXTtcbmV4cG9ydCB2YXIgUmVnaW9uRGlzYWJsZWRFeGNlcHRpb24gPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX1JERSxcbiAgICB7IFtfZV06IF9jLCBbX2hFXTogNDAzLCBbX2FRRV06IFtgUmVnaW9uRGlzYWJsZWRFeGNlcHRpb25gLCA0MDNdIH0sXG4gICAgW19tXSxcbiAgICBbMF0sXG5dO1xuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihSZWdpb25EaXNhYmxlZEV4Y2VwdGlvbiwgX19SZWdpb25EaXNhYmxlZEV4Y2VwdGlvbik7XG5leHBvcnQgdmFyIFRhZyA9IFszLCBuMCwgX1RhLCAwLCBbX0ssIF9WXSwgWzAsIDBdXTtcbmV4cG9ydCB2YXIgU1RTU2VydmljZUV4Y2VwdGlvbiA9IFstMywgX3MsIFwiU1RTU2VydmljZUV4Y2VwdGlvblwiLCAwLCBbXSwgW11dO1xuVHlwZVJlZ2lzdHJ5LmZvcihfcykucmVnaXN0ZXJFcnJvcihTVFNTZXJ2aWNlRXhjZXB0aW9uLCBfX1NUU1NlcnZpY2VFeGNlcHRpb24pO1xuZXhwb3J0IHZhciBwb2xpY3lEZXNjcmlwdG9yTGlzdFR5cGUgPSBbMSwgbjAsIF9wRExULCAwLCAoKSA9PiBQb2xpY3lEZXNjcmlwdG9yVHlwZV07XG5leHBvcnQgdmFyIFByb3ZpZGVkQ29udGV4dHNMaXN0VHlwZSA9IFsxLCBuMCwgX1BDTFQsIDAsICgpID0+IFByb3ZpZGVkQ29udGV4dF07XG5leHBvcnQgdmFyIHRhZ0tleUxpc3RUeXBlID0gNjQgfCAwO1xuZXhwb3J0IHZhciB0YWdMaXN0VHlwZSA9IFsxLCBuMCwgX3RMVCwgMCwgKCkgPT4gVGFnXTtcbmV4cG9ydCB2YXIgQXNzdW1lUm9sZSA9IFs5LCBuMCwgX0FSLCAwLCAoKSA9PiBBc3N1bWVSb2xlUmVxdWVzdCwgKCkgPT4gQXNzdW1lUm9sZVJlc3BvbnNlXTtcbmV4cG9ydCB2YXIgQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eSA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9BUldXSSxcbiAgICAwLFxuICAgICgpID0+IEFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlSZXF1ZXN0LFxuICAgICgpID0+IEFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlSZXNwb25zZSxcbl07XG4iLCAiaW1wb3J0IHsgZ2V0RW5kcG9pbnRQbHVnaW4gfSBmcm9tIFwiQHNtaXRoeS9taWRkbGV3YXJlLWVuZHBvaW50XCI7XG5pbXBvcnQgeyBDb21tYW5kIGFzICRDb21tYW5kIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgY29tbW9uUGFyYW1zIH0gZnJvbSBcIi4uL2VuZHBvaW50L0VuZHBvaW50UGFyYW1ldGVyc1wiO1xuaW1wb3J0IHsgQXNzdW1lUm9sZSB9IGZyb20gXCIuLi9zY2hlbWFzL3NjaGVtYXNfMFwiO1xuZXhwb3J0IHsgJENvbW1hbmQgfTtcbmV4cG9ydCBjbGFzcyBBc3N1bWVSb2xlQ29tbWFuZCBleHRlbmRzICRDb21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NTZWN1cml0eVRva2VuU2VydmljZVYyMDExMDYxNVwiLCBcIkFzc3VtZVJvbGVcIiwge30pXG4gICAgLm4oXCJTVFNDbGllbnRcIiwgXCJBc3N1bWVSb2xlQ29tbWFuZFwiKVxuICAgIC5zYyhBc3N1bWVSb2xlKVxuICAgIC5idWlsZCgpIHtcbn1cbiIsICJpbXBvcnQgeyBnZXRFbmRwb2ludFBsdWdpbiB9IGZyb20gXCJAc21pdGh5L21pZGRsZXdhcmUtZW5kcG9pbnRcIjtcbmltcG9ydCB7IENvbW1hbmQgYXMgJENvbW1hbmQgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyBjb21tb25QYXJhbXMgfSBmcm9tIFwiLi4vZW5kcG9pbnQvRW5kcG9pbnRQYXJhbWV0ZXJzXCI7XG5pbXBvcnQgeyBBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5IH0gZnJvbSBcIi4uL3NjaGVtYXMvc2NoZW1hc18wXCI7XG5leHBvcnQgeyAkQ29tbWFuZCB9O1xuZXhwb3J0IGNsYXNzIEFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlDb21tYW5kIGV4dGVuZHMgJENvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFtnZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFXU1NlY3VyaXR5VG9rZW5TZXJ2aWNlVjIwMTEwNjE1XCIsIFwiQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eVwiLCB7fSlcbiAgICAubihcIlNUU0NsaWVudFwiLCBcIkFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlDb21tYW5kXCIpXG4gICAgLnNjKEFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHkpXG4gICAgLmJ1aWxkKCkge1xufVxuIiwgImltcG9ydCB7IGNyZWF0ZUFnZ3JlZ2F0ZWRDbGllbnQgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyBBc3N1bWVSb2xlQ29tbWFuZCB9IGZyb20gXCIuL2NvbW1hbmRzL0Fzc3VtZVJvbGVDb21tYW5kXCI7XG5pbXBvcnQgeyBBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5Q29tbWFuZCwgfSBmcm9tIFwiLi9jb21tYW5kcy9Bc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5Q29tbWFuZFwiO1xuaW1wb3J0IHsgU1RTQ2xpZW50IH0gZnJvbSBcIi4vU1RTQ2xpZW50XCI7XG5jb25zdCBjb21tYW5kcyA9IHtcbiAgICBBc3N1bWVSb2xlQ29tbWFuZCxcbiAgICBBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5Q29tbWFuZCxcbn07XG5leHBvcnQgY2xhc3MgU1RTIGV4dGVuZHMgU1RTQ2xpZW50IHtcbn1cbmNyZWF0ZUFnZ3JlZ2F0ZWRDbGllbnQoY29tbWFuZHMsIFNUUyk7XG4iLCAiZXhwb3J0ICogZnJvbSBcIi4vQXNzdW1lUm9sZUNvbW1hbmRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0Fzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlDb21tYW5kXCI7XG4iLCAiaW1wb3J0IHsgc2V0Q3JlZGVudGlhbEZlYXR1cmUgfSBmcm9tIFwiQGF3cy1zZGsvY29yZS9jbGllbnRcIjtcbmltcG9ydCB7IHN0c1JlZ2lvbkRlZmF1bHRSZXNvbHZlciB9IGZyb20gXCJAYXdzLXNkay9yZWdpb24tY29uZmlnLXJlc29sdmVyXCI7XG5pbXBvcnQgeyBBc3N1bWVSb2xlQ29tbWFuZCB9IGZyb20gXCIuL2NvbW1hbmRzL0Fzc3VtZVJvbGVDb21tYW5kXCI7XG5pbXBvcnQgeyBBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5Q29tbWFuZCwgfSBmcm9tIFwiLi9jb21tYW5kcy9Bc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5Q29tbWFuZFwiO1xuY29uc3QgZ2V0QWNjb3VudElkRnJvbUFzc3VtZWRSb2xlVXNlciA9IChhc3N1bWVkUm9sZVVzZXIpID0+IHtcbiAgICBpZiAodHlwZW9mIGFzc3VtZWRSb2xlVXNlcj8uQXJuID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIGNvbnN0IGFybkNvbXBvbmVudHMgPSBhc3N1bWVkUm9sZVVzZXIuQXJuLnNwbGl0KFwiOlwiKTtcbiAgICAgICAgaWYgKGFybkNvbXBvbmVudHMubGVuZ3RoID4gNCAmJiBhcm5Db21wb25lbnRzWzRdICE9PSBcIlwiKSB7XG4gICAgICAgICAgICByZXR1cm4gYXJuQ29tcG9uZW50c1s0XTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xufTtcbmNvbnN0IHJlc29sdmVSZWdpb24gPSBhc3luYyAoX3JlZ2lvbiwgX3BhcmVudFJlZ2lvbiwgY3JlZGVudGlhbFByb3ZpZGVyTG9nZ2VyLCBsb2FkZXJDb25maWcgPSB7fSkgPT4ge1xuICAgIGNvbnN0IHJlZ2lvbiA9IHR5cGVvZiBfcmVnaW9uID09PSBcImZ1bmN0aW9uXCIgPyBhd2FpdCBfcmVnaW9uKCkgOiBfcmVnaW9uO1xuICAgIGNvbnN0IHBhcmVudFJlZ2lvbiA9IHR5cGVvZiBfcGFyZW50UmVnaW9uID09PSBcImZ1bmN0aW9uXCIgPyBhd2FpdCBfcGFyZW50UmVnaW9uKCkgOiBfcGFyZW50UmVnaW9uO1xuICAgIGxldCBzdHNEZWZhdWx0UmVnaW9uID0gXCJcIjtcbiAgICBjb25zdCByZXNvbHZlZFJlZ2lvbiA9IHJlZ2lvbiA/PyBwYXJlbnRSZWdpb24gPz8gKHN0c0RlZmF1bHRSZWdpb24gPSBhd2FpdCBzdHNSZWdpb25EZWZhdWx0UmVzb2x2ZXIobG9hZGVyQ29uZmlnKSgpKTtcbiAgICBjcmVkZW50aWFsUHJvdmlkZXJMb2dnZXI/LmRlYnVnPy4oXCJAYXdzLXNkay9jbGllbnQtc3RzOjpyZXNvbHZlUmVnaW9uXCIsIFwiYWNjZXB0aW5nIGZpcnN0IG9mOlwiLCBgJHtyZWdpb259IChjcmVkZW50aWFsIHByb3ZpZGVyIGNsaWVudENvbmZpZylgLCBgJHtwYXJlbnRSZWdpb259IChjb250ZXh0dWFsIGNsaWVudClgLCBgJHtzdHNEZWZhdWx0UmVnaW9ufSAoU1RTIGRlZmF1bHQ6IEFXU19SRUdJT04sIHByb2ZpbGUgcmVnaW9uLCBvciB1cy1lYXN0LTEpYCk7XG4gICAgcmV0dXJuIHJlc29sdmVkUmVnaW9uO1xufTtcbmV4cG9ydCBjb25zdCBnZXREZWZhdWx0Um9sZUFzc3VtZXIgPSAoc3RzT3B0aW9ucywgU1RTQ2xpZW50KSA9PiB7XG4gICAgbGV0IHN0c0NsaWVudDtcbiAgICBsZXQgY2xvc3VyZVNvdXJjZUNyZWRzO1xuICAgIHJldHVybiBhc3luYyAoc291cmNlQ3JlZHMsIHBhcmFtcykgPT4ge1xuICAgICAgICBjbG9zdXJlU291cmNlQ3JlZHMgPSBzb3VyY2VDcmVkcztcbiAgICAgICAgaWYgKCFzdHNDbGllbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgbG9nZ2VyID0gc3RzT3B0aW9ucz8ucGFyZW50Q2xpZW50Q29uZmlnPy5sb2dnZXIsIHByb2ZpbGUgPSBzdHNPcHRpb25zPy5wYXJlbnRDbGllbnRDb25maWc/LnByb2ZpbGUsIHJlZ2lvbiwgcmVxdWVzdEhhbmRsZXIgPSBzdHNPcHRpb25zPy5wYXJlbnRDbGllbnRDb25maWc/LnJlcXVlc3RIYW5kbGVyLCBjcmVkZW50aWFsUHJvdmlkZXJMb2dnZXIsIHVzZXJBZ2VudEFwcElkID0gc3RzT3B0aW9ucz8ucGFyZW50Q2xpZW50Q29uZmlnPy51c2VyQWdlbnRBcHBJZCwgfSA9IHN0c09wdGlvbnM7XG4gICAgICAgICAgICBjb25zdCByZXNvbHZlZFJlZ2lvbiA9IGF3YWl0IHJlc29sdmVSZWdpb24ocmVnaW9uLCBzdHNPcHRpb25zPy5wYXJlbnRDbGllbnRDb25maWc/LnJlZ2lvbiwgY3JlZGVudGlhbFByb3ZpZGVyTG9nZ2VyLCB7XG4gICAgICAgICAgICAgICAgbG9nZ2VyLFxuICAgICAgICAgICAgICAgIHByb2ZpbGUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0IGlzQ29tcGF0aWJsZVJlcXVlc3RIYW5kbGVyID0gIWlzSDIocmVxdWVzdEhhbmRsZXIpO1xuICAgICAgICAgICAgc3RzQ2xpZW50ID0gbmV3IFNUU0NsaWVudCh7XG4gICAgICAgICAgICAgICAgLi4uc3RzT3B0aW9ucyxcbiAgICAgICAgICAgICAgICB1c2VyQWdlbnRBcHBJZCxcbiAgICAgICAgICAgICAgICBwcm9maWxlLFxuICAgICAgICAgICAgICAgIGNyZWRlbnRpYWxEZWZhdWx0UHJvdmlkZXI6ICgpID0+IGFzeW5jICgpID0+IGNsb3N1cmVTb3VyY2VDcmVkcyxcbiAgICAgICAgICAgICAgICByZWdpb246IHJlc29sdmVkUmVnaW9uLFxuICAgICAgICAgICAgICAgIHJlcXVlc3RIYW5kbGVyOiBpc0NvbXBhdGlibGVSZXF1ZXN0SGFuZGxlciA/IHJlcXVlc3RIYW5kbGVyIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIGxvZ2dlcjogbG9nZ2VyLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgeyBDcmVkZW50aWFscywgQXNzdW1lZFJvbGVVc2VyIH0gPSBhd2FpdCBzdHNDbGllbnQuc2VuZChuZXcgQXNzdW1lUm9sZUNvbW1hbmQocGFyYW1zKSk7XG4gICAgICAgIGlmICghQ3JlZGVudGlhbHMgfHwgIUNyZWRlbnRpYWxzLkFjY2Vzc0tleUlkIHx8ICFDcmVkZW50aWFscy5TZWNyZXRBY2Nlc3NLZXkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCByZXNwb25zZSBmcm9tIFNUUy5hc3N1bWVSb2xlIGNhbGwgd2l0aCByb2xlICR7cGFyYW1zLlJvbGVBcm59YCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYWNjb3VudElkID0gZ2V0QWNjb3VudElkRnJvbUFzc3VtZWRSb2xlVXNlcihBc3N1bWVkUm9sZVVzZXIpO1xuICAgICAgICBjb25zdCBjcmVkZW50aWFscyA9IHtcbiAgICAgICAgICAgIGFjY2Vzc0tleUlkOiBDcmVkZW50aWFscy5BY2Nlc3NLZXlJZCxcbiAgICAgICAgICAgIHNlY3JldEFjY2Vzc0tleTogQ3JlZGVudGlhbHMuU2VjcmV0QWNjZXNzS2V5LFxuICAgICAgICAgICAgc2Vzc2lvblRva2VuOiBDcmVkZW50aWFscy5TZXNzaW9uVG9rZW4sXG4gICAgICAgICAgICBleHBpcmF0aW9uOiBDcmVkZW50aWFscy5FeHBpcmF0aW9uLFxuICAgICAgICAgICAgLi4uKENyZWRlbnRpYWxzLkNyZWRlbnRpYWxTY29wZSAmJiB7IGNyZWRlbnRpYWxTY29wZTogQ3JlZGVudGlhbHMuQ3JlZGVudGlhbFNjb3BlIH0pLFxuICAgICAgICAgICAgLi4uKGFjY291bnRJZCAmJiB7IGFjY291bnRJZCB9KSxcbiAgICAgICAgfTtcbiAgICAgICAgc2V0Q3JlZGVudGlhbEZlYXR1cmUoY3JlZGVudGlhbHMsIFwiQ1JFREVOVElBTFNfU1RTX0FTU1VNRV9ST0xFXCIsIFwiaVwiKTtcbiAgICAgICAgcmV0dXJuIGNyZWRlbnRpYWxzO1xuICAgIH07XG59O1xuZXhwb3J0IGNvbnN0IGdldERlZmF1bHRSb2xlQXNzdW1lcldpdGhXZWJJZGVudGl0eSA9IChzdHNPcHRpb25zLCBTVFNDbGllbnQpID0+IHtcbiAgICBsZXQgc3RzQ2xpZW50O1xuICAgIHJldHVybiBhc3luYyAocGFyYW1zKSA9PiB7XG4gICAgICAgIGlmICghc3RzQ2xpZW50KSB7XG4gICAgICAgICAgICBjb25zdCB7IGxvZ2dlciA9IHN0c09wdGlvbnM/LnBhcmVudENsaWVudENvbmZpZz8ubG9nZ2VyLCBwcm9maWxlID0gc3RzT3B0aW9ucz8ucGFyZW50Q2xpZW50Q29uZmlnPy5wcm9maWxlLCByZWdpb24sIHJlcXVlc3RIYW5kbGVyID0gc3RzT3B0aW9ucz8ucGFyZW50Q2xpZW50Q29uZmlnPy5yZXF1ZXN0SGFuZGxlciwgY3JlZGVudGlhbFByb3ZpZGVyTG9nZ2VyLCB1c2VyQWdlbnRBcHBJZCA9IHN0c09wdGlvbnM/LnBhcmVudENsaWVudENvbmZpZz8udXNlckFnZW50QXBwSWQsIH0gPSBzdHNPcHRpb25zO1xuICAgICAgICAgICAgY29uc3QgcmVzb2x2ZWRSZWdpb24gPSBhd2FpdCByZXNvbHZlUmVnaW9uKHJlZ2lvbiwgc3RzT3B0aW9ucz8ucGFyZW50Q2xpZW50Q29uZmlnPy5yZWdpb24sIGNyZWRlbnRpYWxQcm92aWRlckxvZ2dlciwge1xuICAgICAgICAgICAgICAgIGxvZ2dlcixcbiAgICAgICAgICAgICAgICBwcm9maWxlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCBpc0NvbXBhdGlibGVSZXF1ZXN0SGFuZGxlciA9ICFpc0gyKHJlcXVlc3RIYW5kbGVyKTtcbiAgICAgICAgICAgIHN0c0NsaWVudCA9IG5ldyBTVFNDbGllbnQoe1xuICAgICAgICAgICAgICAgIC4uLnN0c09wdGlvbnMsXG4gICAgICAgICAgICAgICAgdXNlckFnZW50QXBwSWQsXG4gICAgICAgICAgICAgICAgcHJvZmlsZSxcbiAgICAgICAgICAgICAgICByZWdpb246IHJlc29sdmVkUmVnaW9uLFxuICAgICAgICAgICAgICAgIHJlcXVlc3RIYW5kbGVyOiBpc0NvbXBhdGlibGVSZXF1ZXN0SGFuZGxlciA/IHJlcXVlc3RIYW5kbGVyIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIGxvZ2dlcjogbG9nZ2VyLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgeyBDcmVkZW50aWFscywgQXNzdW1lZFJvbGVVc2VyIH0gPSBhd2FpdCBzdHNDbGllbnQuc2VuZChuZXcgQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eUNvbW1hbmQocGFyYW1zKSk7XG4gICAgICAgIGlmICghQ3JlZGVudGlhbHMgfHwgIUNyZWRlbnRpYWxzLkFjY2Vzc0tleUlkIHx8ICFDcmVkZW50aWFscy5TZWNyZXRBY2Nlc3NLZXkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCByZXNwb25zZSBmcm9tIFNUUy5hc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5IGNhbGwgd2l0aCByb2xlICR7cGFyYW1zLlJvbGVBcm59YCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYWNjb3VudElkID0gZ2V0QWNjb3VudElkRnJvbUFzc3VtZWRSb2xlVXNlcihBc3N1bWVkUm9sZVVzZXIpO1xuICAgICAgICBjb25zdCBjcmVkZW50aWFscyA9IHtcbiAgICAgICAgICAgIGFjY2Vzc0tleUlkOiBDcmVkZW50aWFscy5BY2Nlc3NLZXlJZCxcbiAgICAgICAgICAgIHNlY3JldEFjY2Vzc0tleTogQ3JlZGVudGlhbHMuU2VjcmV0QWNjZXNzS2V5LFxuICAgICAgICAgICAgc2Vzc2lvblRva2VuOiBDcmVkZW50aWFscy5TZXNzaW9uVG9rZW4sXG4gICAgICAgICAgICBleHBpcmF0aW9uOiBDcmVkZW50aWFscy5FeHBpcmF0aW9uLFxuICAgICAgICAgICAgLi4uKENyZWRlbnRpYWxzLkNyZWRlbnRpYWxTY29wZSAmJiB7IGNyZWRlbnRpYWxTY29wZTogQ3JlZGVudGlhbHMuQ3JlZGVudGlhbFNjb3BlIH0pLFxuICAgICAgICAgICAgLi4uKGFjY291bnRJZCAmJiB7IGFjY291bnRJZCB9KSxcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKGFjY291bnRJZCkge1xuICAgICAgICAgICAgc2V0Q3JlZGVudGlhbEZlYXR1cmUoY3JlZGVudGlhbHMsIFwiUkVTT0xWRURfQUNDT1VOVF9JRFwiLCBcIlRcIik7XG4gICAgICAgIH1cbiAgICAgICAgc2V0Q3JlZGVudGlhbEZlYXR1cmUoY3JlZGVudGlhbHMsIFwiQ1JFREVOVElBTFNfU1RTX0FTU1VNRV9ST0xFX1dFQl9JRFwiLCBcImtcIik7XG4gICAgICAgIHJldHVybiBjcmVkZW50aWFscztcbiAgICB9O1xufTtcbmV4cG9ydCBjb25zdCBkZWNvcmF0ZURlZmF1bHRDcmVkZW50aWFsUHJvdmlkZXIgPSAocHJvdmlkZXIpID0+IChpbnB1dCkgPT4gcHJvdmlkZXIoe1xuICAgIHJvbGVBc3N1bWVyOiBnZXREZWZhdWx0Um9sZUFzc3VtZXIoaW5wdXQsIGlucHV0LnN0c0NsaWVudEN0b3IpLFxuICAgIHJvbGVBc3N1bWVyV2l0aFdlYklkZW50aXR5OiBnZXREZWZhdWx0Um9sZUFzc3VtZXJXaXRoV2ViSWRlbnRpdHkoaW5wdXQsIGlucHV0LnN0c0NsaWVudEN0b3IpLFxuICAgIC4uLmlucHV0LFxufSk7XG5jb25zdCBpc0gyID0gKHJlcXVlc3RIYW5kbGVyKSA9PiB7XG4gICAgcmV0dXJuIHJlcXVlc3RIYW5kbGVyPy5tZXRhZGF0YT8uaGFuZGxlclByb3RvY29sID09PSBcImgyXCI7XG59O1xuIiwgImltcG9ydCB7IGdldERlZmF1bHRSb2xlQXNzdW1lciBhcyBTdHNHZXREZWZhdWx0Um9sZUFzc3VtZXIsIGdldERlZmF1bHRSb2xlQXNzdW1lcldpdGhXZWJJZGVudGl0eSBhcyBTdHNHZXREZWZhdWx0Um9sZUFzc3VtZXJXaXRoV2ViSWRlbnRpdHksIH0gZnJvbSBcIi4vZGVmYXVsdFN0c1JvbGVBc3N1bWVyc1wiO1xuaW1wb3J0IHsgU1RTQ2xpZW50IH0gZnJvbSBcIi4vU1RTQ2xpZW50XCI7XG5jb25zdCBnZXRDdXN0b21pemFibGVTdHNDbGllbnRDdG9yID0gKGJhc2VDdG9yLCBjdXN0b21pemF0aW9ucykgPT4ge1xuICAgIGlmICghY3VzdG9taXphdGlvbnMpXG4gICAgICAgIHJldHVybiBiYXNlQ3RvcjtcbiAgICBlbHNlXG4gICAgICAgIHJldHVybiBjbGFzcyBDdXN0b21pemFibGVTVFNDbGllbnQgZXh0ZW5kcyBiYXNlQ3RvciB7XG4gICAgICAgICAgICBjb25zdHJ1Y3Rvcihjb25maWcpIHtcbiAgICAgICAgICAgICAgICBzdXBlcihjb25maWcpO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgY3VzdG9taXphdGlvbiBvZiBjdXN0b21pemF0aW9ucykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoY3VzdG9taXphdGlvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xufTtcbmV4cG9ydCBjb25zdCBnZXREZWZhdWx0Um9sZUFzc3VtZXIgPSAoc3RzT3B0aW9ucyA9IHt9LCBzdHNQbHVnaW5zKSA9PiBTdHNHZXREZWZhdWx0Um9sZUFzc3VtZXIoc3RzT3B0aW9ucywgZ2V0Q3VzdG9taXphYmxlU3RzQ2xpZW50Q3RvcihTVFNDbGllbnQsIHN0c1BsdWdpbnMpKTtcbmV4cG9ydCBjb25zdCBnZXREZWZhdWx0Um9sZUFzc3VtZXJXaXRoV2ViSWRlbnRpdHkgPSAoc3RzT3B0aW9ucyA9IHt9LCBzdHNQbHVnaW5zKSA9PiBTdHNHZXREZWZhdWx0Um9sZUFzc3VtZXJXaXRoV2ViSWRlbnRpdHkoc3RzT3B0aW9ucywgZ2V0Q3VzdG9taXphYmxlU3RzQ2xpZW50Q3RvcihTVFNDbGllbnQsIHN0c1BsdWdpbnMpKTtcbmV4cG9ydCBjb25zdCBkZWNvcmF0ZURlZmF1bHRDcmVkZW50aWFsUHJvdmlkZXIgPSAocHJvdmlkZXIpID0+IChpbnB1dCkgPT4gcHJvdmlkZXIoe1xuICAgIHJvbGVBc3N1bWVyOiBnZXREZWZhdWx0Um9sZUFzc3VtZXIoaW5wdXQpLFxuICAgIHJvbGVBc3N1bWVyV2l0aFdlYklkZW50aXR5OiBnZXREZWZhdWx0Um9sZUFzc3VtZXJXaXRoV2ViSWRlbnRpdHkoaW5wdXQpLFxuICAgIC4uLmlucHV0LFxufSk7XG4iLCAiZXhwb3J0ICogZnJvbSBcIi4vU1RTQ2xpZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9TVFNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbW1hbmRzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9tb2RlbHMvZXJyb3JzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9kZWZhdWx0Um9sZUFzc3VtZXJzXCI7XG5leHBvcnQgeyBTVFNTZXJ2aWNlRXhjZXB0aW9uIH0gZnJvbSBcIi4vbW9kZWxzL1NUU1NlcnZpY2VFeGNlcHRpb25cIjtcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBzaGFyZWRJbmlGaWxlTG9hZGVyID0gcmVxdWlyZSgnQHNtaXRoeS9zaGFyZWQtaW5pLWZpbGUtbG9hZGVyJyk7XG52YXIgcHJvcGVydHlQcm92aWRlciA9IHJlcXVpcmUoJ0BzbWl0aHkvcHJvcGVydHktcHJvdmlkZXInKTtcbnZhciBjaGlsZF9wcm9jZXNzID0gcmVxdWlyZSgnY2hpbGRfcHJvY2VzcycpO1xudmFyIHV0aWwgPSByZXF1aXJlKCd1dGlsJyk7XG52YXIgY2xpZW50ID0gcmVxdWlyZSgnQGF3cy1zZGsvY29yZS9jbGllbnQnKTtcblxuY29uc3QgZ2V0VmFsaWRhdGVkUHJvY2Vzc0NyZWRlbnRpYWxzID0gKHByb2ZpbGVOYW1lLCBkYXRhLCBwcm9maWxlcykgPT4ge1xuICAgIGlmIChkYXRhLlZlcnNpb24gIT09IDEpIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoYFByb2ZpbGUgJHtwcm9maWxlTmFtZX0gY3JlZGVudGlhbF9wcm9jZXNzIGRpZCBub3QgcmV0dXJuIFZlcnNpb24gMS5gKTtcbiAgICB9XG4gICAgaWYgKGRhdGEuQWNjZXNzS2V5SWQgPT09IHVuZGVmaW5lZCB8fCBkYXRhLlNlY3JldEFjY2Vzc0tleSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IEVycm9yKGBQcm9maWxlICR7cHJvZmlsZU5hbWV9IGNyZWRlbnRpYWxfcHJvY2VzcyByZXR1cm5lZCBpbnZhbGlkIGNyZWRlbnRpYWxzLmApO1xuICAgIH1cbiAgICBpZiAoZGF0YS5FeHBpcmF0aW9uKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRUaW1lID0gbmV3IERhdGUoKTtcbiAgICAgICAgY29uc3QgZXhwaXJlVGltZSA9IG5ldyBEYXRlKGRhdGEuRXhwaXJhdGlvbik7XG4gICAgICAgIGlmIChleHBpcmVUaW1lIDwgY3VycmVudFRpbWUpIHtcbiAgICAgICAgICAgIHRocm93IEVycm9yKGBQcm9maWxlICR7cHJvZmlsZU5hbWV9IGNyZWRlbnRpYWxfcHJvY2VzcyByZXR1cm5lZCBleHBpcmVkIGNyZWRlbnRpYWxzLmApO1xuICAgICAgICB9XG4gICAgfVxuICAgIGxldCBhY2NvdW50SWQgPSBkYXRhLkFjY291bnRJZDtcbiAgICBpZiAoIWFjY291bnRJZCAmJiBwcm9maWxlcz8uW3Byb2ZpbGVOYW1lXT8uYXdzX2FjY291bnRfaWQpIHtcbiAgICAgICAgYWNjb3VudElkID0gcHJvZmlsZXNbcHJvZmlsZU5hbWVdLmF3c19hY2NvdW50X2lkO1xuICAgIH1cbiAgICBjb25zdCBjcmVkZW50aWFscyA9IHtcbiAgICAgICAgYWNjZXNzS2V5SWQ6IGRhdGEuQWNjZXNzS2V5SWQsXG4gICAgICAgIHNlY3JldEFjY2Vzc0tleTogZGF0YS5TZWNyZXRBY2Nlc3NLZXksXG4gICAgICAgIC4uLihkYXRhLlNlc3Npb25Ub2tlbiAmJiB7IHNlc3Npb25Ub2tlbjogZGF0YS5TZXNzaW9uVG9rZW4gfSksXG4gICAgICAgIC4uLihkYXRhLkV4cGlyYXRpb24gJiYgeyBleHBpcmF0aW9uOiBuZXcgRGF0ZShkYXRhLkV4cGlyYXRpb24pIH0pLFxuICAgICAgICAuLi4oZGF0YS5DcmVkZW50aWFsU2NvcGUgJiYgeyBjcmVkZW50aWFsU2NvcGU6IGRhdGEuQ3JlZGVudGlhbFNjb3BlIH0pLFxuICAgICAgICAuLi4oYWNjb3VudElkICYmIHsgYWNjb3VudElkIH0pLFxuICAgIH07XG4gICAgY2xpZW50LnNldENyZWRlbnRpYWxGZWF0dXJlKGNyZWRlbnRpYWxzLCBcIkNSRURFTlRJQUxTX1BST0NFU1NcIiwgXCJ3XCIpO1xuICAgIHJldHVybiBjcmVkZW50aWFscztcbn07XG5cbmNvbnN0IHJlc29sdmVQcm9jZXNzQ3JlZGVudGlhbHMgPSBhc3luYyAocHJvZmlsZU5hbWUsIHByb2ZpbGVzLCBsb2dnZXIpID0+IHtcbiAgICBjb25zdCBwcm9maWxlID0gcHJvZmlsZXNbcHJvZmlsZU5hbWVdO1xuICAgIGlmIChwcm9maWxlc1twcm9maWxlTmFtZV0pIHtcbiAgICAgICAgY29uc3QgY3JlZGVudGlhbFByb2Nlc3MgPSBwcm9maWxlW1wiY3JlZGVudGlhbF9wcm9jZXNzXCJdO1xuICAgICAgICBpZiAoY3JlZGVudGlhbFByb2Nlc3MgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgY29uc3QgZXhlY1Byb21pc2UgPSB1dGlsLnByb21pc2lmeShzaGFyZWRJbmlGaWxlTG9hZGVyLmV4dGVybmFsRGF0YUludGVyY2VwdG9yPy5nZXRUb2tlblJlY29yZD8uKCkuZXhlYyA/PyBjaGlsZF9wcm9jZXNzLmV4ZWMpO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IHN0ZG91dCB9ID0gYXdhaXQgZXhlY1Byb21pc2UoY3JlZGVudGlhbFByb2Nlc3MpO1xuICAgICAgICAgICAgICAgIGxldCBkYXRhO1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGRhdGEgPSBKU09OLnBhcnNlKHN0ZG91dC50cmltKCkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXRjaCB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IEVycm9yKGBQcm9maWxlICR7cHJvZmlsZU5hbWV9IGNyZWRlbnRpYWxfcHJvY2VzcyByZXR1cm5lZCBpbnZhbGlkIEpTT04uYCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBnZXRWYWxpZGF0ZWRQcm9jZXNzQ3JlZGVudGlhbHMocHJvZmlsZU5hbWUsIGRhdGEsIHByb2ZpbGVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLkNyZWRlbnRpYWxzUHJvdmlkZXJFcnJvcihlcnJvci5tZXNzYWdlLCB7IGxvZ2dlciB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLkNyZWRlbnRpYWxzUHJvdmlkZXJFcnJvcihgUHJvZmlsZSAke3Byb2ZpbGVOYW1lfSBkaWQgbm90IGNvbnRhaW4gY3JlZGVudGlhbF9wcm9jZXNzLmAsIHsgbG9nZ2VyIH0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoYFByb2ZpbGUgJHtwcm9maWxlTmFtZX0gY291bGQgbm90IGJlIGZvdW5kIGluIHNoYXJlZCBjcmVkZW50aWFscyBmaWxlLmAsIHtcbiAgICAgICAgICAgIGxvZ2dlcixcbiAgICAgICAgfSk7XG4gICAgfVxufTtcblxuY29uc3QgZnJvbVByb2Nlc3MgPSAoaW5pdCA9IHt9KSA9PiBhc3luYyAoeyBjYWxsZXJDbGllbnRDb25maWcgfSA9IHt9KSA9PiB7XG4gICAgaW5pdC5sb2dnZXI/LmRlYnVnKFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1wcm9jZXNzIC0gZnJvbVByb2Nlc3NcIik7XG4gICAgY29uc3QgcHJvZmlsZXMgPSBhd2FpdCBzaGFyZWRJbmlGaWxlTG9hZGVyLnBhcnNlS25vd25GaWxlcyhpbml0KTtcbiAgICByZXR1cm4gcmVzb2x2ZVByb2Nlc3NDcmVkZW50aWFscyhzaGFyZWRJbmlGaWxlTG9hZGVyLmdldFByb2ZpbGVOYW1lKHtcbiAgICAgICAgcHJvZmlsZTogaW5pdC5wcm9maWxlID8/IGNhbGxlckNsaWVudENvbmZpZz8ucHJvZmlsZSxcbiAgICB9KSwgcHJvZmlsZXMsIGluaXQubG9nZ2VyKTtcbn07XG5cbmV4cG9ydHMuZnJvbVByb2Nlc3MgPSBmcm9tUHJvY2VzcztcbiIsICJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2NyZWF0ZUJpbmRpbmcgPSAodGhpcyAmJiB0aGlzLl9fY3JlYXRlQmluZGluZykgfHwgKE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xuICAgIHZhciBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtLCBrKTtcbiAgICBpZiAoIWRlc2MgfHwgKFwiZ2V0XCIgaW4gZGVzYyA/ICFtLl9fZXNNb2R1bGUgOiBkZXNjLndyaXRhYmxlIHx8IGRlc2MuY29uZmlndXJhYmxlKSkge1xuICAgICAgZGVzYyA9IHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIG1ba107IH0gfTtcbiAgICB9XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCBkZXNjKTtcbn0pIDogKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgICBvW2syXSA9IG1ba107XG59KSk7XG52YXIgX19zZXRNb2R1bGVEZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX3NldE1vZHVsZURlZmF1bHQpIHx8IChPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIHYpIHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgXCJkZWZhdWx0XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHYgfSk7XG59KSA6IGZ1bmN0aW9uKG8sIHYpIHtcbiAgICBvW1wiZGVmYXVsdFwiXSA9IHY7XG59KTtcbnZhciBfX2ltcG9ydFN0YXIgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0U3RhcikgfHwgKGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgb3duS2V5cyA9IGZ1bmN0aW9uKG8pIHtcbiAgICAgICAgb3duS2V5cyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzIHx8IGZ1bmN0aW9uIChvKSB7XG4gICAgICAgICAgICB2YXIgYXIgPSBbXTtcbiAgICAgICAgICAgIGZvciAodmFyIGsgaW4gbykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvLCBrKSkgYXJbYXIubGVuZ3RoXSA9IGs7XG4gICAgICAgICAgICByZXR1cm4gYXI7XG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBvd25LZXlzKG8pO1xuICAgIH07XG4gICAgcmV0dXJuIGZ1bmN0aW9uIChtb2QpIHtcbiAgICAgICAgaWYgKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgcmV0dXJuIG1vZDtcbiAgICAgICAgdmFyIHJlc3VsdCA9IHt9O1xuICAgICAgICBpZiAobW9kICE9IG51bGwpIGZvciAodmFyIGsgPSBvd25LZXlzKG1vZCksIGkgPSAwOyBpIDwgay5sZW5ndGg7IGkrKykgaWYgKGtbaV0gIT09IFwiZGVmYXVsdFwiKSBfX2NyZWF0ZUJpbmRpbmcocmVzdWx0LCBtb2QsIGtbaV0pO1xuICAgICAgICBfX3NldE1vZHVsZURlZmF1bHQocmVzdWx0LCBtb2QpO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH07XG59KSgpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5mcm9tV2ViVG9rZW4gPSB2b2lkIDA7XG5jb25zdCBmcm9tV2ViVG9rZW4gPSAoaW5pdCkgPT4gYXN5bmMgKGF3c0lkZW50aXR5UHJvcGVydGllcykgPT4ge1xuICAgIGluaXQubG9nZ2VyPy5kZWJ1ZyhcIkBhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItd2ViLWlkZW50aXR5IC0gZnJvbVdlYlRva2VuXCIpO1xuICAgIGNvbnN0IHsgcm9sZUFybiwgcm9sZVNlc3Npb25OYW1lLCB3ZWJJZGVudGl0eVRva2VuLCBwcm92aWRlcklkLCBwb2xpY3lBcm5zLCBwb2xpY3ksIGR1cmF0aW9uU2Vjb25kcyB9ID0gaW5pdDtcbiAgICBsZXQgeyByb2xlQXNzdW1lcldpdGhXZWJJZGVudGl0eSB9ID0gaW5pdDtcbiAgICBpZiAoIXJvbGVBc3N1bWVyV2l0aFdlYklkZW50aXR5KSB7XG4gICAgICAgIGNvbnN0IHsgZ2V0RGVmYXVsdFJvbGVBc3N1bWVyV2l0aFdlYklkZW50aXR5IH0gPSBhd2FpdCBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IF9faW1wb3J0U3RhcihyZXF1aXJlKFwiQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvc3RzXCIpKSk7XG4gICAgICAgIHJvbGVBc3N1bWVyV2l0aFdlYklkZW50aXR5ID0gZ2V0RGVmYXVsdFJvbGVBc3N1bWVyV2l0aFdlYklkZW50aXR5KHtcbiAgICAgICAgICAgIC4uLmluaXQuY2xpZW50Q29uZmlnLFxuICAgICAgICAgICAgY3JlZGVudGlhbFByb3ZpZGVyTG9nZ2VyOiBpbml0LmxvZ2dlcixcbiAgICAgICAgICAgIHBhcmVudENsaWVudENvbmZpZzoge1xuICAgICAgICAgICAgICAgIC4uLmF3c0lkZW50aXR5UHJvcGVydGllcz8uY2FsbGVyQ2xpZW50Q29uZmlnLFxuICAgICAgICAgICAgICAgIC4uLmluaXQucGFyZW50Q2xpZW50Q29uZmlnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSwgaW5pdC5jbGllbnRQbHVnaW5zKTtcbiAgICB9XG4gICAgcmV0dXJuIHJvbGVBc3N1bWVyV2l0aFdlYklkZW50aXR5KHtcbiAgICAgICAgUm9sZUFybjogcm9sZUFybixcbiAgICAgICAgUm9sZVNlc3Npb25OYW1lOiByb2xlU2Vzc2lvbk5hbWUgPz8gYGF3cy1zZGstanMtc2Vzc2lvbi0ke0RhdGUubm93KCl9YCxcbiAgICAgICAgV2ViSWRlbnRpdHlUb2tlbjogd2ViSWRlbnRpdHlUb2tlbixcbiAgICAgICAgUHJvdmlkZXJJZDogcHJvdmlkZXJJZCxcbiAgICAgICAgUG9saWN5QXJuczogcG9saWN5QXJucyxcbiAgICAgICAgUG9saWN5OiBwb2xpY3ksXG4gICAgICAgIER1cmF0aW9uU2Vjb25kczogZHVyYXRpb25TZWNvbmRzLFxuICAgIH0pO1xufTtcbmV4cG9ydHMuZnJvbVdlYlRva2VuID0gZnJvbVdlYlRva2VuO1xuIiwgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5mcm9tVG9rZW5GaWxlID0gdm9pZCAwO1xuY29uc3QgY2xpZW50XzEgPSByZXF1aXJlKFwiQGF3cy1zZGsvY29yZS9jbGllbnRcIik7XG5jb25zdCBwcm9wZXJ0eV9wcm92aWRlcl8xID0gcmVxdWlyZShcIkBzbWl0aHkvcHJvcGVydHktcHJvdmlkZXJcIik7XG5jb25zdCBzaGFyZWRfaW5pX2ZpbGVfbG9hZGVyXzEgPSByZXF1aXJlKFwiQHNtaXRoeS9zaGFyZWQtaW5pLWZpbGUtbG9hZGVyXCIpO1xuY29uc3QgZnNfMSA9IHJlcXVpcmUoXCJmc1wiKTtcbmNvbnN0IGZyb21XZWJUb2tlbl8xID0gcmVxdWlyZShcIi4vZnJvbVdlYlRva2VuXCIpO1xuY29uc3QgRU5WX1RPS0VOX0ZJTEUgPSBcIkFXU19XRUJfSURFTlRJVFlfVE9LRU5fRklMRVwiO1xuY29uc3QgRU5WX1JPTEVfQVJOID0gXCJBV1NfUk9MRV9BUk5cIjtcbmNvbnN0IEVOVl9ST0xFX1NFU1NJT05fTkFNRSA9IFwiQVdTX1JPTEVfU0VTU0lPTl9OQU1FXCI7XG5jb25zdCBmcm9tVG9rZW5GaWxlID0gKGluaXQgPSB7fSkgPT4gYXN5bmMgKGF3c0lkZW50aXR5UHJvcGVydGllcykgPT4ge1xuICAgIGluaXQubG9nZ2VyPy5kZWJ1ZyhcIkBhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItd2ViLWlkZW50aXR5IC0gZnJvbVRva2VuRmlsZVwiKTtcbiAgICBjb25zdCB3ZWJJZGVudGl0eVRva2VuRmlsZSA9IGluaXQ/LndlYklkZW50aXR5VG9rZW5GaWxlID8/IHByb2Nlc3MuZW52W0VOVl9UT0tFTl9GSUxFXTtcbiAgICBjb25zdCByb2xlQXJuID0gaW5pdD8ucm9sZUFybiA/PyBwcm9jZXNzLmVudltFTlZfUk9MRV9BUk5dO1xuICAgIGNvbnN0IHJvbGVTZXNzaW9uTmFtZSA9IGluaXQ/LnJvbGVTZXNzaW9uTmFtZSA/PyBwcm9jZXNzLmVudltFTlZfUk9MRV9TRVNTSU9OX05BTUVdO1xuICAgIGlmICghd2ViSWRlbnRpdHlUb2tlbkZpbGUgfHwgIXJvbGVBcm4pIHtcbiAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5X3Byb3ZpZGVyXzEuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKFwiV2ViIGlkZW50aXR5IGNvbmZpZ3VyYXRpb24gbm90IHNwZWNpZmllZFwiLCB7XG4gICAgICAgICAgICBsb2dnZXI6IGluaXQubG9nZ2VyLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgY3JlZGVudGlhbHMgPSBhd2FpdCAoMCwgZnJvbVdlYlRva2VuXzEuZnJvbVdlYlRva2VuKSh7XG4gICAgICAgIC4uLmluaXQsXG4gICAgICAgIHdlYklkZW50aXR5VG9rZW46IHNoYXJlZF9pbmlfZmlsZV9sb2FkZXJfMS5leHRlcm5hbERhdGFJbnRlcmNlcHRvcj8uZ2V0VG9rZW5SZWNvcmQ/LigpW3dlYklkZW50aXR5VG9rZW5GaWxlXSA/P1xuICAgICAgICAgICAgKDAsIGZzXzEucmVhZEZpbGVTeW5jKSh3ZWJJZGVudGl0eVRva2VuRmlsZSwgeyBlbmNvZGluZzogXCJhc2NpaVwiIH0pLFxuICAgICAgICByb2xlQXJuLFxuICAgICAgICByb2xlU2Vzc2lvbk5hbWUsXG4gICAgfSkoYXdzSWRlbnRpdHlQcm9wZXJ0aWVzKTtcbiAgICBpZiAod2ViSWRlbnRpdHlUb2tlbkZpbGUgPT09IHByb2Nlc3MuZW52W0VOVl9UT0tFTl9GSUxFXSkge1xuICAgICAgICAoMCwgY2xpZW50XzEuc2V0Q3JlZGVudGlhbEZlYXR1cmUpKGNyZWRlbnRpYWxzLCBcIkNSRURFTlRJQUxTX0VOVl9WQVJTX1NUU19XRUJfSURfVE9LRU5cIiwgXCJoXCIpO1xuICAgIH1cbiAgICByZXR1cm4gY3JlZGVudGlhbHM7XG59O1xuZXhwb3J0cy5mcm9tVG9rZW5GaWxlID0gZnJvbVRva2VuRmlsZTtcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBmcm9tVG9rZW5GaWxlID0gcmVxdWlyZSgnLi9mcm9tVG9rZW5GaWxlJyk7XG52YXIgZnJvbVdlYlRva2VuID0gcmVxdWlyZSgnLi9mcm9tV2ViVG9rZW4nKTtcblxuXG5cbk9iamVjdC5rZXlzKGZyb21Ub2tlbkZpbGUpLmZvckVhY2goZnVuY3Rpb24gKGspIHtcblx0aWYgKGsgIT09ICdkZWZhdWx0JyAmJiAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGV4cG9ydHMsIGspKSBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgaywge1xuXHRcdGVudW1lcmFibGU6IHRydWUsXG5cdFx0Z2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBmcm9tVG9rZW5GaWxlW2tdOyB9XG5cdH0pO1xufSk7XG5PYmplY3Qua2V5cyhmcm9tV2ViVG9rZW4pLmZvckVhY2goZnVuY3Rpb24gKGspIHtcblx0aWYgKGsgIT09ICdkZWZhdWx0JyAmJiAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGV4cG9ydHMsIGspKSBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgaywge1xuXHRcdGVudW1lcmFibGU6IHRydWUsXG5cdFx0Z2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBmcm9tV2ViVG9rZW5ba107IH1cblx0fSk7XG59KTtcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBzaGFyZWRJbmlGaWxlTG9hZGVyID0gcmVxdWlyZSgnQHNtaXRoeS9zaGFyZWQtaW5pLWZpbGUtbG9hZGVyJyk7XG52YXIgcHJvcGVydHlQcm92aWRlciA9IHJlcXVpcmUoJ0BzbWl0aHkvcHJvcGVydHktcHJvdmlkZXInKTtcbnZhciBjbGllbnQgPSByZXF1aXJlKCdAYXdzLXNkay9jb3JlL2NsaWVudCcpO1xudmFyIGNyZWRlbnRpYWxQcm92aWRlckxvZ2luID0gcmVxdWlyZSgnQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1sb2dpbicpO1xuXG5jb25zdCByZXNvbHZlQ3JlZGVudGlhbFNvdXJjZSA9IChjcmVkZW50aWFsU291cmNlLCBwcm9maWxlTmFtZSwgbG9nZ2VyKSA9PiB7XG4gICAgY29uc3Qgc291cmNlUHJvdmlkZXJzTWFwID0ge1xuICAgICAgICBFY3NDb250YWluZXI6IGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IGZyb21IdHRwIH0gPSBhd2FpdCBpbXBvcnQoJ0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItaHR0cCcpO1xuICAgICAgICAgICAgY29uc3QgeyBmcm9tQ29udGFpbmVyTWV0YWRhdGEgfSA9IGF3YWl0IGltcG9ydCgnQHNtaXRoeS9jcmVkZW50aWFsLXByb3ZpZGVyLWltZHMnKTtcbiAgICAgICAgICAgIGxvZ2dlcj8uZGVidWcoXCJAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLWluaSAtIGNyZWRlbnRpYWxfc291cmNlIGlzIEVjc0NvbnRhaW5lclwiKTtcbiAgICAgICAgICAgIHJldHVybiBhc3luYyAoKSA9PiBwcm9wZXJ0eVByb3ZpZGVyLmNoYWluKGZyb21IdHRwKG9wdGlvbnMgPz8ge30pLCBmcm9tQ29udGFpbmVyTWV0YWRhdGEob3B0aW9ucykpKCkudGhlbihzZXROYW1lZFByb3ZpZGVyKTtcbiAgICAgICAgfSxcbiAgICAgICAgRWMySW5zdGFuY2VNZXRhZGF0YTogYXN5bmMgKG9wdGlvbnMpID0+IHtcbiAgICAgICAgICAgIGxvZ2dlcj8uZGVidWcoXCJAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLWluaSAtIGNyZWRlbnRpYWxfc291cmNlIGlzIEVjMkluc3RhbmNlTWV0YWRhdGFcIik7XG4gICAgICAgICAgICBjb25zdCB7IGZyb21JbnN0YW5jZU1ldGFkYXRhIH0gPSBhd2FpdCBpbXBvcnQoJ0BzbWl0aHkvY3JlZGVudGlhbC1wcm92aWRlci1pbWRzJyk7XG4gICAgICAgICAgICByZXR1cm4gYXN5bmMgKCkgPT4gZnJvbUluc3RhbmNlTWV0YWRhdGEob3B0aW9ucykoKS50aGVuKHNldE5hbWVkUHJvdmlkZXIpO1xuICAgICAgICB9LFxuICAgICAgICBFbnZpcm9ubWVudDogYXN5bmMgKG9wdGlvbnMpID0+IHtcbiAgICAgICAgICAgIGxvZ2dlcj8uZGVidWcoXCJAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLWluaSAtIGNyZWRlbnRpYWxfc291cmNlIGlzIEVudmlyb25tZW50XCIpO1xuICAgICAgICAgICAgY29uc3QgeyBmcm9tRW52IH0gPSBhd2FpdCBpbXBvcnQoJ0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItZW52Jyk7XG4gICAgICAgICAgICByZXR1cm4gYXN5bmMgKCkgPT4gZnJvbUVudihvcHRpb25zKSgpLnRoZW4oc2V0TmFtZWRQcm92aWRlcik7XG4gICAgICAgIH0sXG4gICAgfTtcbiAgICBpZiAoY3JlZGVudGlhbFNvdXJjZSBpbiBzb3VyY2VQcm92aWRlcnNNYXApIHtcbiAgICAgICAgcmV0dXJuIHNvdXJjZVByb3ZpZGVyc01hcFtjcmVkZW50aWFsU291cmNlXTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLkNyZWRlbnRpYWxzUHJvdmlkZXJFcnJvcihgVW5zdXBwb3J0ZWQgY3JlZGVudGlhbCBzb3VyY2UgaW4gcHJvZmlsZSAke3Byb2ZpbGVOYW1lfS4gR290ICR7Y3JlZGVudGlhbFNvdXJjZX0sIGAgK1xuICAgICAgICAgICAgYGV4cGVjdGVkIEVjc0NvbnRhaW5lciBvciBFYzJJbnN0YW5jZU1ldGFkYXRhIG9yIEVudmlyb25tZW50LmAsIHsgbG9nZ2VyIH0pO1xuICAgIH1cbn07XG5jb25zdCBzZXROYW1lZFByb3ZpZGVyID0gKGNyZWRzKSA9PiBjbGllbnQuc2V0Q3JlZGVudGlhbEZlYXR1cmUoY3JlZHMsIFwiQ1JFREVOVElBTFNfUFJPRklMRV9OQU1FRF9QUk9WSURFUlwiLCBcInBcIik7XG5cbmNvbnN0IGlzQXNzdW1lUm9sZVByb2ZpbGUgPSAoYXJnLCB7IHByb2ZpbGUgPSBcImRlZmF1bHRcIiwgbG9nZ2VyIH0gPSB7fSkgPT4ge1xuICAgIHJldHVybiAoQm9vbGVhbihhcmcpICYmXG4gICAgICAgIHR5cGVvZiBhcmcgPT09IFwib2JqZWN0XCIgJiZcbiAgICAgICAgdHlwZW9mIGFyZy5yb2xlX2FybiA9PT0gXCJzdHJpbmdcIiAmJlxuICAgICAgICBbXCJ1bmRlZmluZWRcIiwgXCJzdHJpbmdcIl0uaW5kZXhPZih0eXBlb2YgYXJnLnJvbGVfc2Vzc2lvbl9uYW1lKSA+IC0xICYmXG4gICAgICAgIFtcInVuZGVmaW5lZFwiLCBcInN0cmluZ1wiXS5pbmRleE9mKHR5cGVvZiBhcmcuZXh0ZXJuYWxfaWQpID4gLTEgJiZcbiAgICAgICAgW1widW5kZWZpbmVkXCIsIFwic3RyaW5nXCJdLmluZGV4T2YodHlwZW9mIGFyZy5tZmFfc2VyaWFsKSA+IC0xICYmXG4gICAgICAgIChpc0Fzc3VtZVJvbGVXaXRoU291cmNlUHJvZmlsZShhcmcsIHsgcHJvZmlsZSwgbG9nZ2VyIH0pIHx8IGlzQ3JlZGVudGlhbFNvdXJjZVByb2ZpbGUoYXJnLCB7IHByb2ZpbGUsIGxvZ2dlciB9KSkpO1xufTtcbmNvbnN0IGlzQXNzdW1lUm9sZVdpdGhTb3VyY2VQcm9maWxlID0gKGFyZywgeyBwcm9maWxlLCBsb2dnZXIgfSkgPT4ge1xuICAgIGNvbnN0IHdpdGhTb3VyY2VQcm9maWxlID0gdHlwZW9mIGFyZy5zb3VyY2VfcHJvZmlsZSA9PT0gXCJzdHJpbmdcIiAmJiB0eXBlb2YgYXJnLmNyZWRlbnRpYWxfc291cmNlID09PSBcInVuZGVmaW5lZFwiO1xuICAgIGlmICh3aXRoU291cmNlUHJvZmlsZSkge1xuICAgICAgICBsb2dnZXI/LmRlYnVnPy4oYCAgICAke3Byb2ZpbGV9IGlzQXNzdW1lUm9sZVdpdGhTb3VyY2VQcm9maWxlIHNvdXJjZV9wcm9maWxlPSR7YXJnLnNvdXJjZV9wcm9maWxlfWApO1xuICAgIH1cbiAgICByZXR1cm4gd2l0aFNvdXJjZVByb2ZpbGU7XG59O1xuY29uc3QgaXNDcmVkZW50aWFsU291cmNlUHJvZmlsZSA9IChhcmcsIHsgcHJvZmlsZSwgbG9nZ2VyIH0pID0+IHtcbiAgICBjb25zdCB3aXRoUHJvdmlkZXJQcm9maWxlID0gdHlwZW9mIGFyZy5jcmVkZW50aWFsX3NvdXJjZSA9PT0gXCJzdHJpbmdcIiAmJiB0eXBlb2YgYXJnLnNvdXJjZV9wcm9maWxlID09PSBcInVuZGVmaW5lZFwiO1xuICAgIGlmICh3aXRoUHJvdmlkZXJQcm9maWxlKSB7XG4gICAgICAgIGxvZ2dlcj8uZGVidWc/LihgICAgICR7cHJvZmlsZX0gaXNDcmVkZW50aWFsU291cmNlUHJvZmlsZSBjcmVkZW50aWFsX3NvdXJjZT0ke2FyZy5jcmVkZW50aWFsX3NvdXJjZX1gKTtcbiAgICB9XG4gICAgcmV0dXJuIHdpdGhQcm92aWRlclByb2ZpbGU7XG59O1xuY29uc3QgcmVzb2x2ZUFzc3VtZVJvbGVDcmVkZW50aWFscyA9IGFzeW5jIChwcm9maWxlTmFtZSwgcHJvZmlsZXMsIG9wdGlvbnMsIGNhbGxlckNsaWVudENvbmZpZywgdmlzaXRlZFByb2ZpbGVzID0ge30sIHJlc29sdmVQcm9maWxlRGF0YSkgPT4ge1xuICAgIG9wdGlvbnMubG9nZ2VyPy5kZWJ1ZyhcIkBhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItaW5pIC0gcmVzb2x2ZUFzc3VtZVJvbGVDcmVkZW50aWFscyAoU1RTKVwiKTtcbiAgICBjb25zdCBwcm9maWxlRGF0YSA9IHByb2ZpbGVzW3Byb2ZpbGVOYW1lXTtcbiAgICBjb25zdCB7IHNvdXJjZV9wcm9maWxlLCByZWdpb24gfSA9IHByb2ZpbGVEYXRhO1xuICAgIGlmICghb3B0aW9ucy5yb2xlQXNzdW1lcikge1xuICAgICAgICBjb25zdCB7IGdldERlZmF1bHRSb2xlQXNzdW1lciB9ID0gYXdhaXQgaW1wb3J0KCdAYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9zdHMnKTtcbiAgICAgICAgb3B0aW9ucy5yb2xlQXNzdW1lciA9IGdldERlZmF1bHRSb2xlQXNzdW1lcih7XG4gICAgICAgICAgICAuLi5vcHRpb25zLmNsaWVudENvbmZpZyxcbiAgICAgICAgICAgIGNyZWRlbnRpYWxQcm92aWRlckxvZ2dlcjogb3B0aW9ucy5sb2dnZXIsXG4gICAgICAgICAgICBwYXJlbnRDbGllbnRDb25maWc6IHtcbiAgICAgICAgICAgICAgICAuLi5jYWxsZXJDbGllbnRDb25maWcsXG4gICAgICAgICAgICAgICAgLi4ub3B0aW9ucz8ucGFyZW50Q2xpZW50Q29uZmlnLFxuICAgICAgICAgICAgICAgIHJlZ2lvbjogcmVnaW9uID8/IG9wdGlvbnM/LnBhcmVudENsaWVudENvbmZpZz8ucmVnaW9uID8/IGNhbGxlckNsaWVudENvbmZpZz8ucmVnaW9uLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSwgb3B0aW9ucy5jbGllbnRQbHVnaW5zKTtcbiAgICB9XG4gICAgaWYgKHNvdXJjZV9wcm9maWxlICYmIHNvdXJjZV9wcm9maWxlIGluIHZpc2l0ZWRQcm9maWxlcykge1xuICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoYERldGVjdGVkIGEgY3ljbGUgYXR0ZW1wdGluZyB0byByZXNvbHZlIGNyZWRlbnRpYWxzIGZvciBwcm9maWxlYCArXG4gICAgICAgICAgICBgICR7c2hhcmVkSW5pRmlsZUxvYWRlci5nZXRQcm9maWxlTmFtZShvcHRpb25zKX0uIFByb2ZpbGVzIHZpc2l0ZWQ6IGAgK1xuICAgICAgICAgICAgT2JqZWN0LmtleXModmlzaXRlZFByb2ZpbGVzKS5qb2luKFwiLCBcIiksIHsgbG9nZ2VyOiBvcHRpb25zLmxvZ2dlciB9KTtcbiAgICB9XG4gICAgb3B0aW9ucy5sb2dnZXI/LmRlYnVnKGBAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLWluaSAtIGZpbmRpbmcgY3JlZGVudGlhbCByZXNvbHZlciB1c2luZyAke3NvdXJjZV9wcm9maWxlID8gYHNvdXJjZV9wcm9maWxlPVske3NvdXJjZV9wcm9maWxlfV1gIDogYHByb2ZpbGU9WyR7cHJvZmlsZU5hbWV9XWB9YCk7XG4gICAgY29uc3Qgc291cmNlQ3JlZHNQcm92aWRlciA9IHNvdXJjZV9wcm9maWxlXG4gICAgICAgID8gcmVzb2x2ZVByb2ZpbGVEYXRhKHNvdXJjZV9wcm9maWxlLCBwcm9maWxlcywgb3B0aW9ucywgY2FsbGVyQ2xpZW50Q29uZmlnLCB7XG4gICAgICAgICAgICAuLi52aXNpdGVkUHJvZmlsZXMsXG4gICAgICAgICAgICBbc291cmNlX3Byb2ZpbGVdOiB0cnVlLFxuICAgICAgICB9LCBpc0NyZWRlbnRpYWxTb3VyY2VXaXRob3V0Um9sZUFybihwcm9maWxlc1tzb3VyY2VfcHJvZmlsZV0gPz8ge30pKVxuICAgICAgICA6IChhd2FpdCByZXNvbHZlQ3JlZGVudGlhbFNvdXJjZShwcm9maWxlRGF0YS5jcmVkZW50aWFsX3NvdXJjZSwgcHJvZmlsZU5hbWUsIG9wdGlvbnMubG9nZ2VyKShvcHRpb25zKSkoKTtcbiAgICBpZiAoaXNDcmVkZW50aWFsU291cmNlV2l0aG91dFJvbGVBcm4ocHJvZmlsZURhdGEpKSB7XG4gICAgICAgIHJldHVybiBzb3VyY2VDcmVkc1Byb3ZpZGVyLnRoZW4oKGNyZWRzKSA9PiBjbGllbnQuc2V0Q3JlZGVudGlhbEZlYXR1cmUoY3JlZHMsIFwiQ1JFREVOVElBTFNfUFJPRklMRV9TT1VSQ0VfUFJPRklMRVwiLCBcIm9cIikpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgY29uc3QgcGFyYW1zID0ge1xuICAgICAgICAgICAgUm9sZUFybjogcHJvZmlsZURhdGEucm9sZV9hcm4sXG4gICAgICAgICAgICBSb2xlU2Vzc2lvbk5hbWU6IHByb2ZpbGVEYXRhLnJvbGVfc2Vzc2lvbl9uYW1lIHx8IGBhd3Mtc2RrLWpzLSR7RGF0ZS5ub3coKX1gLFxuICAgICAgICAgICAgRXh0ZXJuYWxJZDogcHJvZmlsZURhdGEuZXh0ZXJuYWxfaWQsXG4gICAgICAgICAgICBEdXJhdGlvblNlY29uZHM6IHBhcnNlSW50KHByb2ZpbGVEYXRhLmR1cmF0aW9uX3NlY29uZHMgfHwgXCIzNjAwXCIsIDEwKSxcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgeyBtZmFfc2VyaWFsIH0gPSBwcm9maWxlRGF0YTtcbiAgICAgICAgaWYgKG1mYV9zZXJpYWwpIHtcbiAgICAgICAgICAgIGlmICghb3B0aW9ucy5tZmFDb2RlUHJvdmlkZXIpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoYFByb2ZpbGUgJHtwcm9maWxlTmFtZX0gcmVxdWlyZXMgbXVsdGktZmFjdG9yIGF1dGhlbnRpY2F0aW9uLCBidXQgbm8gTUZBIGNvZGUgY2FsbGJhY2sgd2FzIHByb3ZpZGVkLmAsIHsgbG9nZ2VyOiBvcHRpb25zLmxvZ2dlciwgdHJ5TmV4dExpbms6IGZhbHNlIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcGFyYW1zLlNlcmlhbE51bWJlciA9IG1mYV9zZXJpYWw7XG4gICAgICAgICAgICBwYXJhbXMuVG9rZW5Db2RlID0gYXdhaXQgb3B0aW9ucy5tZmFDb2RlUHJvdmlkZXIobWZhX3NlcmlhbCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc291cmNlQ3JlZHMgPSBhd2FpdCBzb3VyY2VDcmVkc1Byb3ZpZGVyO1xuICAgICAgICByZXR1cm4gb3B0aW9ucy5yb2xlQXNzdW1lcihzb3VyY2VDcmVkcywgcGFyYW1zKS50aGVuKChjcmVkcykgPT4gY2xpZW50LnNldENyZWRlbnRpYWxGZWF0dXJlKGNyZWRzLCBcIkNSRURFTlRJQUxTX1BST0ZJTEVfU09VUkNFX1BST0ZJTEVcIiwgXCJvXCIpKTtcbiAgICB9XG59O1xuY29uc3QgaXNDcmVkZW50aWFsU291cmNlV2l0aG91dFJvbGVBcm4gPSAoc2VjdGlvbikgPT4ge1xuICAgIHJldHVybiAhc2VjdGlvbi5yb2xlX2FybiAmJiAhIXNlY3Rpb24uY3JlZGVudGlhbF9zb3VyY2U7XG59O1xuXG5jb25zdCBpc0xvZ2luUHJvZmlsZSA9IChkYXRhKSA9PiB7XG4gICAgcmV0dXJuIEJvb2xlYW4oZGF0YSAmJiBkYXRhLmxvZ2luX3Nlc3Npb24pO1xufTtcbmNvbnN0IHJlc29sdmVMb2dpbkNyZWRlbnRpYWxzID0gYXN5bmMgKHByb2ZpbGVOYW1lLCBvcHRpb25zLCBjYWxsZXJDbGllbnRDb25maWcpID0+IHtcbiAgICBjb25zdCBjcmVkZW50aWFscyA9IGF3YWl0IGNyZWRlbnRpYWxQcm92aWRlckxvZ2luLmZyb21Mb2dpbkNyZWRlbnRpYWxzKHtcbiAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgcHJvZmlsZTogcHJvZmlsZU5hbWUsXG4gICAgfSkoeyBjYWxsZXJDbGllbnRDb25maWcgfSk7XG4gICAgcmV0dXJuIGNsaWVudC5zZXRDcmVkZW50aWFsRmVhdHVyZShjcmVkZW50aWFscywgXCJDUkVERU5USUFMU19QUk9GSUxFX0xPR0lOXCIsIFwiQUNcIik7XG59O1xuXG5jb25zdCBpc1Byb2Nlc3NQcm9maWxlID0gKGFyZykgPT4gQm9vbGVhbihhcmcpICYmIHR5cGVvZiBhcmcgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIGFyZy5jcmVkZW50aWFsX3Byb2Nlc3MgPT09IFwic3RyaW5nXCI7XG5jb25zdCByZXNvbHZlUHJvY2Vzc0NyZWRlbnRpYWxzID0gYXN5bmMgKG9wdGlvbnMsIHByb2ZpbGUpID0+IGltcG9ydCgnQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1wcm9jZXNzJykudGhlbigoeyBmcm9tUHJvY2VzcyB9KSA9PiBmcm9tUHJvY2Vzcyh7XG4gICAgLi4ub3B0aW9ucyxcbiAgICBwcm9maWxlLFxufSkoKS50aGVuKChjcmVkcykgPT4gY2xpZW50LnNldENyZWRlbnRpYWxGZWF0dXJlKGNyZWRzLCBcIkNSRURFTlRJQUxTX1BST0ZJTEVfUFJPQ0VTU1wiLCBcInZcIikpKTtcblxuY29uc3QgcmVzb2x2ZVNzb0NyZWRlbnRpYWxzID0gYXN5bmMgKHByb2ZpbGUsIHByb2ZpbGVEYXRhLCBvcHRpb25zID0ge30sIGNhbGxlckNsaWVudENvbmZpZykgPT4ge1xuICAgIGNvbnN0IHsgZnJvbVNTTyB9ID0gYXdhaXQgaW1wb3J0KCdAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLXNzbycpO1xuICAgIHJldHVybiBmcm9tU1NPKHtcbiAgICAgICAgcHJvZmlsZSxcbiAgICAgICAgbG9nZ2VyOiBvcHRpb25zLmxvZ2dlcixcbiAgICAgICAgcGFyZW50Q2xpZW50Q29uZmlnOiBvcHRpb25zLnBhcmVudENsaWVudENvbmZpZyxcbiAgICAgICAgY2xpZW50Q29uZmlnOiBvcHRpb25zLmNsaWVudENvbmZpZyxcbiAgICB9KSh7XG4gICAgICAgIGNhbGxlckNsaWVudENvbmZpZyxcbiAgICB9KS50aGVuKChjcmVkcykgPT4ge1xuICAgICAgICBpZiAocHJvZmlsZURhdGEuc3NvX3Nlc3Npb24pIHtcbiAgICAgICAgICAgIHJldHVybiBjbGllbnQuc2V0Q3JlZGVudGlhbEZlYXR1cmUoY3JlZHMsIFwiQ1JFREVOVElBTFNfUFJPRklMRV9TU09cIiwgXCJyXCIpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGNsaWVudC5zZXRDcmVkZW50aWFsRmVhdHVyZShjcmVkcywgXCJDUkVERU5USUFMU19QUk9GSUxFX1NTT19MRUdBQ1lcIiwgXCJ0XCIpO1xuICAgICAgICB9XG4gICAgfSk7XG59O1xuY29uc3QgaXNTc29Qcm9maWxlID0gKGFyZykgPT4gYXJnICYmXG4gICAgKHR5cGVvZiBhcmcuc3NvX3N0YXJ0X3VybCA9PT0gXCJzdHJpbmdcIiB8fFxuICAgICAgICB0eXBlb2YgYXJnLnNzb19hY2NvdW50X2lkID09PSBcInN0cmluZ1wiIHx8XG4gICAgICAgIHR5cGVvZiBhcmcuc3NvX3Nlc3Npb24gPT09IFwic3RyaW5nXCIgfHxcbiAgICAgICAgdHlwZW9mIGFyZy5zc29fcmVnaW9uID09PSBcInN0cmluZ1wiIHx8XG4gICAgICAgIHR5cGVvZiBhcmcuc3NvX3JvbGVfbmFtZSA9PT0gXCJzdHJpbmdcIik7XG5cbmNvbnN0IGlzU3RhdGljQ3JlZHNQcm9maWxlID0gKGFyZykgPT4gQm9vbGVhbihhcmcpICYmXG4gICAgdHlwZW9mIGFyZyA9PT0gXCJvYmplY3RcIiAmJlxuICAgIHR5cGVvZiBhcmcuYXdzX2FjY2Vzc19rZXlfaWQgPT09IFwic3RyaW5nXCIgJiZcbiAgICB0eXBlb2YgYXJnLmF3c19zZWNyZXRfYWNjZXNzX2tleSA9PT0gXCJzdHJpbmdcIiAmJlxuICAgIFtcInVuZGVmaW5lZFwiLCBcInN0cmluZ1wiXS5pbmRleE9mKHR5cGVvZiBhcmcuYXdzX3Nlc3Npb25fdG9rZW4pID4gLTEgJiZcbiAgICBbXCJ1bmRlZmluZWRcIiwgXCJzdHJpbmdcIl0uaW5kZXhPZih0eXBlb2YgYXJnLmF3c19hY2NvdW50X2lkKSA+IC0xO1xuY29uc3QgcmVzb2x2ZVN0YXRpY0NyZWRlbnRpYWxzID0gYXN5bmMgKHByb2ZpbGUsIG9wdGlvbnMpID0+IHtcbiAgICBvcHRpb25zPy5sb2dnZXI/LmRlYnVnKFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1pbmkgLSByZXNvbHZlU3RhdGljQ3JlZGVudGlhbHNcIik7XG4gICAgY29uc3QgY3JlZGVudGlhbHMgPSB7XG4gICAgICAgIGFjY2Vzc0tleUlkOiBwcm9maWxlLmF3c19hY2Nlc3Nfa2V5X2lkLFxuICAgICAgICBzZWNyZXRBY2Nlc3NLZXk6IHByb2ZpbGUuYXdzX3NlY3JldF9hY2Nlc3Nfa2V5LFxuICAgICAgICBzZXNzaW9uVG9rZW46IHByb2ZpbGUuYXdzX3Nlc3Npb25fdG9rZW4sXG4gICAgICAgIC4uLihwcm9maWxlLmF3c19jcmVkZW50aWFsX3Njb3BlICYmIHsgY3JlZGVudGlhbFNjb3BlOiBwcm9maWxlLmF3c19jcmVkZW50aWFsX3Njb3BlIH0pLFxuICAgICAgICAuLi4ocHJvZmlsZS5hd3NfYWNjb3VudF9pZCAmJiB7IGFjY291bnRJZDogcHJvZmlsZS5hd3NfYWNjb3VudF9pZCB9KSxcbiAgICB9O1xuICAgIHJldHVybiBjbGllbnQuc2V0Q3JlZGVudGlhbEZlYXR1cmUoY3JlZGVudGlhbHMsIFwiQ1JFREVOVElBTFNfUFJPRklMRVwiLCBcIm5cIik7XG59O1xuXG5jb25zdCBpc1dlYklkZW50aXR5UHJvZmlsZSA9IChhcmcpID0+IEJvb2xlYW4oYXJnKSAmJlxuICAgIHR5cGVvZiBhcmcgPT09IFwib2JqZWN0XCIgJiZcbiAgICB0eXBlb2YgYXJnLndlYl9pZGVudGl0eV90b2tlbl9maWxlID09PSBcInN0cmluZ1wiICYmXG4gICAgdHlwZW9mIGFyZy5yb2xlX2FybiA9PT0gXCJzdHJpbmdcIiAmJlxuICAgIFtcInVuZGVmaW5lZFwiLCBcInN0cmluZ1wiXS5pbmRleE9mKHR5cGVvZiBhcmcucm9sZV9zZXNzaW9uX25hbWUpID4gLTE7XG5jb25zdCByZXNvbHZlV2ViSWRlbnRpdHlDcmVkZW50aWFscyA9IGFzeW5jIChwcm9maWxlLCBvcHRpb25zLCBjYWxsZXJDbGllbnRDb25maWcpID0+IGltcG9ydCgnQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci13ZWItaWRlbnRpdHknKS50aGVuKCh7IGZyb21Ub2tlbkZpbGUgfSkgPT4gZnJvbVRva2VuRmlsZSh7XG4gICAgd2ViSWRlbnRpdHlUb2tlbkZpbGU6IHByb2ZpbGUud2ViX2lkZW50aXR5X3Rva2VuX2ZpbGUsXG4gICAgcm9sZUFybjogcHJvZmlsZS5yb2xlX2FybixcbiAgICByb2xlU2Vzc2lvbk5hbWU6IHByb2ZpbGUucm9sZV9zZXNzaW9uX25hbWUsXG4gICAgcm9sZUFzc3VtZXJXaXRoV2ViSWRlbnRpdHk6IG9wdGlvbnMucm9sZUFzc3VtZXJXaXRoV2ViSWRlbnRpdHksXG4gICAgbG9nZ2VyOiBvcHRpb25zLmxvZ2dlcixcbiAgICBwYXJlbnRDbGllbnRDb25maWc6IG9wdGlvbnMucGFyZW50Q2xpZW50Q29uZmlnLFxufSkoe1xuICAgIGNhbGxlckNsaWVudENvbmZpZyxcbn0pLnRoZW4oKGNyZWRzKSA9PiBjbGllbnQuc2V0Q3JlZGVudGlhbEZlYXR1cmUoY3JlZHMsIFwiQ1JFREVOVElBTFNfUFJPRklMRV9TVFNfV0VCX0lEX1RPS0VOXCIsIFwicVwiKSkpO1xuXG5jb25zdCByZXNvbHZlUHJvZmlsZURhdGEgPSBhc3luYyAocHJvZmlsZU5hbWUsIHByb2ZpbGVzLCBvcHRpb25zLCBjYWxsZXJDbGllbnRDb25maWcsIHZpc2l0ZWRQcm9maWxlcyA9IHt9LCBpc0Fzc3VtZVJvbGVSZWN1cnNpdmVDYWxsID0gZmFsc2UpID0+IHtcbiAgICBjb25zdCBkYXRhID0gcHJvZmlsZXNbcHJvZmlsZU5hbWVdO1xuICAgIGlmIChPYmplY3Qua2V5cyh2aXNpdGVkUHJvZmlsZXMpLmxlbmd0aCA+IDAgJiYgaXNTdGF0aWNDcmVkc1Byb2ZpbGUoZGF0YSkpIHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVTdGF0aWNDcmVkZW50aWFscyhkYXRhLCBvcHRpb25zKTtcbiAgICB9XG4gICAgaWYgKGlzQXNzdW1lUm9sZVJlY3Vyc2l2ZUNhbGwgfHwgaXNBc3N1bWVSb2xlUHJvZmlsZShkYXRhLCB7IHByb2ZpbGU6IHByb2ZpbGVOYW1lLCBsb2dnZXI6IG9wdGlvbnMubG9nZ2VyIH0pKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlQXNzdW1lUm9sZUNyZWRlbnRpYWxzKHByb2ZpbGVOYW1lLCBwcm9maWxlcywgb3B0aW9ucywgY2FsbGVyQ2xpZW50Q29uZmlnLCB2aXNpdGVkUHJvZmlsZXMsIHJlc29sdmVQcm9maWxlRGF0YSk7XG4gICAgfVxuICAgIGlmIChpc1N0YXRpY0NyZWRzUHJvZmlsZShkYXRhKSkge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZVN0YXRpY0NyZWRlbnRpYWxzKGRhdGEsIG9wdGlvbnMpO1xuICAgIH1cbiAgICBpZiAoaXNXZWJJZGVudGl0eVByb2ZpbGUoZGF0YSkpIHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVXZWJJZGVudGl0eUNyZWRlbnRpYWxzKGRhdGEsIG9wdGlvbnMsIGNhbGxlckNsaWVudENvbmZpZyk7XG4gICAgfVxuICAgIGlmIChpc1Byb2Nlc3NQcm9maWxlKGRhdGEpKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlUHJvY2Vzc0NyZWRlbnRpYWxzKG9wdGlvbnMsIHByb2ZpbGVOYW1lKTtcbiAgICB9XG4gICAgaWYgKGlzU3NvUHJvZmlsZShkYXRhKSkge1xuICAgICAgICByZXR1cm4gYXdhaXQgcmVzb2x2ZVNzb0NyZWRlbnRpYWxzKHByb2ZpbGVOYW1lLCBkYXRhLCBvcHRpb25zLCBjYWxsZXJDbGllbnRDb25maWcpO1xuICAgIH1cbiAgICBpZiAoaXNMb2dpblByb2ZpbGUoZGF0YSkpIHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVMb2dpbkNyZWRlbnRpYWxzKHByb2ZpbGVOYW1lLCBvcHRpb25zLCBjYWxsZXJDbGllbnRDb25maWcpO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoYENvdWxkIG5vdCByZXNvbHZlIGNyZWRlbnRpYWxzIHVzaW5nIHByb2ZpbGU6IFske3Byb2ZpbGVOYW1lfV0gaW4gY29uZmlndXJhdGlvbi9jcmVkZW50aWFscyBmaWxlKHMpLmAsIHsgbG9nZ2VyOiBvcHRpb25zLmxvZ2dlciB9KTtcbn07XG5cbmNvbnN0IGZyb21JbmkgPSAoaW5pdCA9IHt9KSA9PiBhc3luYyAoeyBjYWxsZXJDbGllbnRDb25maWcgfSA9IHt9KSA9PiB7XG4gICAgaW5pdC5sb2dnZXI/LmRlYnVnKFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1pbmkgLSBmcm9tSW5pXCIpO1xuICAgIGNvbnN0IHByb2ZpbGVzID0gYXdhaXQgc2hhcmVkSW5pRmlsZUxvYWRlci5wYXJzZUtub3duRmlsZXMoaW5pdCk7XG4gICAgcmV0dXJuIHJlc29sdmVQcm9maWxlRGF0YShzaGFyZWRJbmlGaWxlTG9hZGVyLmdldFByb2ZpbGVOYW1lKHtcbiAgICAgICAgcHJvZmlsZTogaW5pdC5wcm9maWxlID8/IGNhbGxlckNsaWVudENvbmZpZz8ucHJvZmlsZSxcbiAgICB9KSwgcHJvZmlsZXMsIGluaXQsIGNhbGxlckNsaWVudENvbmZpZyk7XG59O1xuXG5leHBvcnRzLmZyb21JbmkgPSBmcm9tSW5pO1xuIiwgIid1c2Ugc3RyaWN0JztcblxudmFyIGNyZWRlbnRpYWxQcm92aWRlckVudiA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItZW52Jyk7XG52YXIgcHJvcGVydHlQcm92aWRlciA9IHJlcXVpcmUoJ0BzbWl0aHkvcHJvcGVydHktcHJvdmlkZXInKTtcbnZhciBzaGFyZWRJbmlGaWxlTG9hZGVyID0gcmVxdWlyZSgnQHNtaXRoeS9zaGFyZWQtaW5pLWZpbGUtbG9hZGVyJyk7XG5cbmNvbnN0IEVOVl9JTURTX0RJU0FCTEVEID0gXCJBV1NfRUMyX01FVEFEQVRBX0RJU0FCTEVEXCI7XG5jb25zdCByZW1vdGVQcm92aWRlciA9IGFzeW5jIChpbml0KSA9PiB7XG4gICAgY29uc3QgeyBFTlZfQ01EU19GVUxMX1VSSSwgRU5WX0NNRFNfUkVMQVRJVkVfVVJJLCBmcm9tQ29udGFpbmVyTWV0YWRhdGEsIGZyb21JbnN0YW5jZU1ldGFkYXRhIH0gPSBhd2FpdCBpbXBvcnQoJ0BzbWl0aHkvY3JlZGVudGlhbC1wcm92aWRlci1pbWRzJyk7XG4gICAgaWYgKHByb2Nlc3MuZW52W0VOVl9DTURTX1JFTEFUSVZFX1VSSV0gfHwgcHJvY2Vzcy5lbnZbRU5WX0NNRFNfRlVMTF9VUkldKSB7XG4gICAgICAgIGluaXQubG9nZ2VyPy5kZWJ1ZyhcIkBhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbm9kZSAtIHJlbW90ZVByb3ZpZGVyOjpmcm9tSHR0cC9mcm9tQ29udGFpbmVyTWV0YWRhdGFcIik7XG4gICAgICAgIGNvbnN0IHsgZnJvbUh0dHAgfSA9IGF3YWl0IGltcG9ydCgnQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1odHRwJyk7XG4gICAgICAgIHJldHVybiBwcm9wZXJ0eVByb3ZpZGVyLmNoYWluKGZyb21IdHRwKGluaXQpLCBmcm9tQ29udGFpbmVyTWV0YWRhdGEoaW5pdCkpO1xuICAgIH1cbiAgICBpZiAocHJvY2Vzcy5lbnZbRU5WX0lNRFNfRElTQUJMRURdICYmIHByb2Nlc3MuZW52W0VOVl9JTURTX0RJU0FCTEVEXSAhPT0gXCJmYWxzZVwiKSB7XG4gICAgICAgIHJldHVybiBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoXCJFQzIgSW5zdGFuY2UgTWV0YWRhdGEgU2VydmljZSBhY2Nlc3MgZGlzYWJsZWRcIiwgeyBsb2dnZXI6IGluaXQubG9nZ2VyIH0pO1xuICAgICAgICB9O1xuICAgIH1cbiAgICBpbml0LmxvZ2dlcj8uZGVidWcoXCJAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLW5vZGUgLSByZW1vdGVQcm92aWRlcjo6ZnJvbUluc3RhbmNlTWV0YWRhdGFcIik7XG4gICAgcmV0dXJuIGZyb21JbnN0YW5jZU1ldGFkYXRhKGluaXQpO1xufTtcblxuZnVuY3Rpb24gbWVtb2l6ZUNoYWluKHByb3ZpZGVycywgdHJlYXRBc0V4cGlyZWQpIHtcbiAgICBjb25zdCBjaGFpbiA9IGludGVybmFsQ3JlYXRlQ2hhaW4ocHJvdmlkZXJzKTtcbiAgICBsZXQgYWN0aXZlTG9jaztcbiAgICBsZXQgcGFzc2l2ZUxvY2s7XG4gICAgbGV0IGNyZWRlbnRpYWxzO1xuICAgIGNvbnN0IHByb3ZpZGVyID0gYXN5bmMgKG9wdGlvbnMpID0+IHtcbiAgICAgICAgaWYgKG9wdGlvbnM/LmZvcmNlUmVmcmVzaCkge1xuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IGNoYWluKG9wdGlvbnMpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjcmVkZW50aWFscz8uZXhwaXJhdGlvbikge1xuICAgICAgICAgICAgaWYgKGNyZWRlbnRpYWxzPy5leHBpcmF0aW9uPy5nZXRUaW1lKCkgPCBEYXRlLm5vdygpKSB7XG4gICAgICAgICAgICAgICAgY3JlZGVudGlhbHMgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFjdGl2ZUxvY2spIHtcbiAgICAgICAgICAgIGF3YWl0IGFjdGl2ZUxvY2s7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoIWNyZWRlbnRpYWxzIHx8IHRyZWF0QXNFeHBpcmVkPy4oY3JlZGVudGlhbHMpKSB7XG4gICAgICAgICAgICBpZiAoY3JlZGVudGlhbHMpIHtcbiAgICAgICAgICAgICAgICBpZiAoIXBhc3NpdmVMb2NrKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhc3NpdmVMb2NrID0gY2hhaW4ob3B0aW9ucykudGhlbigoYykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY3JlZGVudGlhbHMgPSBjO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFzc2l2ZUxvY2sgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGFjdGl2ZUxvY2sgPSBjaGFpbihvcHRpb25zKS50aGVuKChjKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNyZWRlbnRpYWxzID0gYztcbiAgICAgICAgICAgICAgICAgICAgYWN0aXZlTG9jayA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gcHJvdmlkZXIob3B0aW9ucyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNyZWRlbnRpYWxzO1xuICAgIH07XG4gICAgcmV0dXJuIHByb3ZpZGVyO1xufVxuY29uc3QgaW50ZXJuYWxDcmVhdGVDaGFpbiA9IChwcm92aWRlcnMpID0+IGFzeW5jIChhd3NJZGVudGl0eVByb3BlcnRpZXMpID0+IHtcbiAgICBsZXQgbGFzdFByb3ZpZGVyRXJyb3I7XG4gICAgZm9yIChjb25zdCBwcm92aWRlciBvZiBwcm92aWRlcnMpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiBhd2FpdCBwcm92aWRlcihhd3NJZGVudGl0eVByb3BlcnRpZXMpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIGxhc3RQcm92aWRlckVycm9yID0gZXJyO1xuICAgICAgICAgICAgaWYgKGVycj8udHJ5TmV4dExpbmspIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgfVxuICAgIH1cbiAgICB0aHJvdyBsYXN0UHJvdmlkZXJFcnJvcjtcbn07XG5cbmxldCBtdWx0aXBsZUNyZWRlbnRpYWxTb3VyY2VXYXJuaW5nRW1pdHRlZCA9IGZhbHNlO1xuY29uc3QgZGVmYXVsdFByb3ZpZGVyID0gKGluaXQgPSB7fSkgPT4gbWVtb2l6ZUNoYWluKFtcbiAgICBhc3luYyAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHByb2ZpbGUgPSBpbml0LnByb2ZpbGUgPz8gcHJvY2Vzcy5lbnZbc2hhcmVkSW5pRmlsZUxvYWRlci5FTlZfUFJPRklMRV07XG4gICAgICAgIGlmIChwcm9maWxlKSB7XG4gICAgICAgICAgICBjb25zdCBlbnZTdGF0aWNDcmVkZW50aWFsc0FyZVNldCA9IHByb2Nlc3MuZW52W2NyZWRlbnRpYWxQcm92aWRlckVudi5FTlZfS0VZXSAmJiBwcm9jZXNzLmVudltjcmVkZW50aWFsUHJvdmlkZXJFbnYuRU5WX1NFQ1JFVF07XG4gICAgICAgICAgICBpZiAoZW52U3RhdGljQ3JlZGVudGlhbHNBcmVTZXQpIHtcbiAgICAgICAgICAgICAgICBpZiAoIW11bHRpcGxlQ3JlZGVudGlhbFNvdXJjZVdhcm5pbmdFbWl0dGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHdhcm5GbiA9IGluaXQubG9nZ2VyPy53YXJuICYmIGluaXQubG9nZ2VyPy5jb25zdHJ1Y3Rvcj8ubmFtZSAhPT0gXCJOb09wTG9nZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gaW5pdC5sb2dnZXIud2Fybi5iaW5kKGluaXQubG9nZ2VyKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBjb25zb2xlLndhcm47XG4gICAgICAgICAgICAgICAgICAgIHdhcm5GbihgQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlIC0gZGVmYXVsdFByb3ZpZGVyOjpmcm9tRW52IFdBUk5JTkc6XG4gICAgTXVsdGlwbGUgY3JlZGVudGlhbCBzb3VyY2VzIGRldGVjdGVkOiBcbiAgICBCb3RoIEFXU19QUk9GSUxFIGFuZCB0aGUgcGFpciBBV1NfQUNDRVNTX0tFWV9JRC9BV1NfU0VDUkVUX0FDQ0VTU19LRVkgc3RhdGljIGNyZWRlbnRpYWxzIGFyZSBzZXQuXG4gICAgVGhpcyBTREsgd2lsbCBwcm9jZWVkIHdpdGggdGhlIEFXU19QUk9GSUxFIHZhbHVlLlxuICAgIFxuICAgIEhvd2V2ZXIsIGEgZnV0dXJlIHZlcnNpb24gbWF5IGNoYW5nZSB0aGlzIGJlaGF2aW9yIHRvIHByZWZlciB0aGUgRU5WIHN0YXRpYyBjcmVkZW50aWFscy5cbiAgICBQbGVhc2UgZW5zdXJlIHRoYXQgeW91ciBlbnZpcm9ubWVudCBvbmx5IHNldHMgZWl0aGVyIHRoZSBBV1NfUFJPRklMRSBvciB0aGVcbiAgICBBV1NfQUNDRVNTX0tFWV9JRC9BV1NfU0VDUkVUX0FDQ0VTU19LRVkgcGFpci5cbmApO1xuICAgICAgICAgICAgICAgICAgICBtdWx0aXBsZUNyZWRlbnRpYWxTb3VyY2VXYXJuaW5nRW1pdHRlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKFwiQVdTX1BST0ZJTEUgaXMgc2V0LCBza2lwcGluZyBmcm9tRW52IHByb3ZpZGVyLlwiLCB7XG4gICAgICAgICAgICAgICAgbG9nZ2VyOiBpbml0LmxvZ2dlcixcbiAgICAgICAgICAgICAgICB0cnlOZXh0TGluazogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGluaXQubG9nZ2VyPy5kZWJ1ZyhcIkBhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbm9kZSAtIGRlZmF1bHRQcm92aWRlcjo6ZnJvbUVudlwiKTtcbiAgICAgICAgcmV0dXJuIGNyZWRlbnRpYWxQcm92aWRlckVudi5mcm9tRW52KGluaXQpKCk7XG4gICAgfSxcbiAgICBhc3luYyAoYXdzSWRlbnRpdHlQcm9wZXJ0aWVzKSA9PiB7XG4gICAgICAgIGluaXQubG9nZ2VyPy5kZWJ1ZyhcIkBhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbm9kZSAtIGRlZmF1bHRQcm92aWRlcjo6ZnJvbVNTT1wiKTtcbiAgICAgICAgY29uc3QgeyBzc29TdGFydFVybCwgc3NvQWNjb3VudElkLCBzc29SZWdpb24sIHNzb1JvbGVOYW1lLCBzc29TZXNzaW9uIH0gPSBpbml0O1xuICAgICAgICBpZiAoIXNzb1N0YXJ0VXJsICYmICFzc29BY2NvdW50SWQgJiYgIXNzb1JlZ2lvbiAmJiAhc3NvUm9sZU5hbWUgJiYgIXNzb1Nlc3Npb24pIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLkNyZWRlbnRpYWxzUHJvdmlkZXJFcnJvcihcIlNraXBwaW5nIFNTTyBwcm92aWRlciBpbiBkZWZhdWx0IGNoYWluIChpbnB1dHMgZG8gbm90IGluY2x1ZGUgU1NPIGZpZWxkcykuXCIsIHsgbG9nZ2VyOiBpbml0LmxvZ2dlciB9KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB7IGZyb21TU08gfSA9IGF3YWl0IGltcG9ydCgnQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1zc28nKTtcbiAgICAgICAgcmV0dXJuIGZyb21TU08oaW5pdCkoYXdzSWRlbnRpdHlQcm9wZXJ0aWVzKTtcbiAgICB9LFxuICAgIGFzeW5jIChhd3NJZGVudGl0eVByb3BlcnRpZXMpID0+IHtcbiAgICAgICAgaW5pdC5sb2dnZXI/LmRlYnVnKFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlIC0gZGVmYXVsdFByb3ZpZGVyOjpmcm9tSW5pXCIpO1xuICAgICAgICBjb25zdCB7IGZyb21JbmkgfSA9IGF3YWl0IGltcG9ydCgnQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1pbmknKTtcbiAgICAgICAgcmV0dXJuIGZyb21JbmkoaW5pdCkoYXdzSWRlbnRpdHlQcm9wZXJ0aWVzKTtcbiAgICB9LFxuICAgIGFzeW5jIChhd3NJZGVudGl0eVByb3BlcnRpZXMpID0+IHtcbiAgICAgICAgaW5pdC5sb2dnZXI/LmRlYnVnKFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlIC0gZGVmYXVsdFByb3ZpZGVyOjpmcm9tUHJvY2Vzc1wiKTtcbiAgICAgICAgY29uc3QgeyBmcm9tUHJvY2VzcyB9ID0gYXdhaXQgaW1wb3J0KCdAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLXByb2Nlc3MnKTtcbiAgICAgICAgcmV0dXJuIGZyb21Qcm9jZXNzKGluaXQpKGF3c0lkZW50aXR5UHJvcGVydGllcyk7XG4gICAgfSxcbiAgICBhc3luYyAoYXdzSWRlbnRpdHlQcm9wZXJ0aWVzKSA9PiB7XG4gICAgICAgIGluaXQubG9nZ2VyPy5kZWJ1ZyhcIkBhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbm9kZSAtIGRlZmF1bHRQcm92aWRlcjo6ZnJvbVRva2VuRmlsZVwiKTtcbiAgICAgICAgY29uc3QgeyBmcm9tVG9rZW5GaWxlIH0gPSBhd2FpdCBpbXBvcnQoJ0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItd2ViLWlkZW50aXR5Jyk7XG4gICAgICAgIHJldHVybiBmcm9tVG9rZW5GaWxlKGluaXQpKGF3c0lkZW50aXR5UHJvcGVydGllcyk7XG4gICAgfSxcbiAgICBhc3luYyAoKSA9PiB7XG4gICAgICAgIGluaXQubG9nZ2VyPy5kZWJ1ZyhcIkBhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbm9kZSAtIGRlZmF1bHRQcm92aWRlcjo6cmVtb3RlUHJvdmlkZXJcIik7XG4gICAgICAgIHJldHVybiAoYXdhaXQgcmVtb3RlUHJvdmlkZXIoaW5pdCkpKCk7XG4gICAgfSxcbiAgICBhc3luYyAoKSA9PiB7XG4gICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLkNyZWRlbnRpYWxzUHJvdmlkZXJFcnJvcihcIkNvdWxkIG5vdCBsb2FkIGNyZWRlbnRpYWxzIGZyb20gYW55IHByb3ZpZGVyc1wiLCB7XG4gICAgICAgICAgICB0cnlOZXh0TGluazogZmFsc2UsXG4gICAgICAgICAgICBsb2dnZXI6IGluaXQubG9nZ2VyLFxuICAgICAgICB9KTtcbiAgICB9LFxuXSwgY3JlZGVudGlhbHNUcmVhdGVkQXNFeHBpcmVkKTtcbmNvbnN0IGNyZWRlbnRpYWxzV2lsbE5lZWRSZWZyZXNoID0gKGNyZWRlbnRpYWxzKSA9PiBjcmVkZW50aWFscz8uZXhwaXJhdGlvbiAhPT0gdW5kZWZpbmVkO1xuY29uc3QgY3JlZGVudGlhbHNUcmVhdGVkQXNFeHBpcmVkID0gKGNyZWRlbnRpYWxzKSA9PiBjcmVkZW50aWFscz8uZXhwaXJhdGlvbiAhPT0gdW5kZWZpbmVkICYmIGNyZWRlbnRpYWxzLmV4cGlyYXRpb24uZ2V0VGltZSgpIC0gRGF0ZS5ub3coKSA8IDMwMDAwMDtcblxuZXhwb3J0cy5jcmVkZW50aWFsc1RyZWF0ZWRBc0V4cGlyZWQgPSBjcmVkZW50aWFsc1RyZWF0ZWRBc0V4cGlyZWQ7XG5leHBvcnRzLmNyZWRlbnRpYWxzV2lsbE5lZWRSZWZyZXNoID0gY3JlZGVudGlhbHNXaWxsTmVlZFJlZnJlc2g7XG5leHBvcnRzLmRlZmF1bHRQcm92aWRlciA9IGRlZmF1bHRQcm92aWRlcjtcbiIsICJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMucnVsZVNldCA9IHZvaWQgMDtcbmNvbnN0IHcgPSBcInJlcXVpcmVkXCIsIHggPSBcImZuXCIsIHkgPSBcImFyZ3ZcIiwgeiA9IFwicmVmXCIsIEEgPSBcInByb3BlcnRpZXNcIiwgQiA9IFwiaGVhZGVyc1wiO1xuY29uc3QgYSA9IHRydWUsIGIgPSBmYWxzZSwgYyA9IFwiaXNTZXRcIiwgZCA9IFwiYm9vbGVhbkVxdWFsc1wiLCBlID0gXCJlcnJvclwiLCBmID0gXCJlbmRwb2ludFwiLCBnID0gXCJ0cmVlXCIsIGggPSBcIlBhcnRpdGlvblJlc3VsdFwiLCBpID0geyBbd106IHRydWUsIFwiZGVmYXVsdFwiOiBmYWxzZSwgXCJ0eXBlXCI6IFwiYm9vbGVhblwiIH0sIGogPSB7IFt3XTogZmFsc2UsIFwidHlwZVwiOiBcInN0cmluZ1wiIH0sIGsgPSB7IFt6XTogXCJFbmRwb2ludFwiIH0sIGwgPSB7IFt4XTogZCwgW3ldOiBbeyBbel06IFwiVXNlRklQU1wiIH0sIHRydWVdIH0sIG0gPSB7IFt6XTogXCJVc2VGSVBTXCIgfSwgbiA9IHsgW3hdOiBkLCBbeV06IFt7IFt6XTogXCJVc2VEdWFsU3RhY2tcIiB9LCB0cnVlXSB9LCBvID0ge30sIHAgPSB7IFt4XTogXCJzdHJpbmdFcXVhbHNcIiwgW3ldOiBbeyBbeF06IFwiZ2V0QXR0clwiLCBbeV06IFt7IFt6XTogaCB9LCBcIm5hbWVcIl0gfSwgXCJhd3MtdXMtZ292XCJdIH0sIHEgPSB7IFt4XTogZCwgW3ldOiBbeyBbel06IFwiVXNlRHVhbFN0YWNrXCIgfSwgZmFsc2VdIH0sIHIgPSB7IFwidXJsXCI6IFwiaHR0cHM6Ly9tb25pdG9yaW5nLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZG5zU3VmZml4fVwiLCBbQV06IHt9LCBbQl06IHt9IH0sIHMgPSB7IFwidXJsXCI6IFwiaHR0cHM6Ly9tb25pdG9yaW5nLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZHVhbFN0YWNrRG5zU3VmZml4fVwiLCBbQV06IHt9LCBbQl06IHt9IH0sIHQgPSB7IFt4XTogXCJnZXRBdHRyXCIsIFt5XTogW3sgW3pdOiBoIH0sIFwic3VwcG9ydHNGSVBTXCJdIH0sIHUgPSB7IFt4XTogZCwgW3ldOiBbdHJ1ZSwgeyBbeF06IFwiZ2V0QXR0clwiLCBbeV06IFt7IFt6XTogaCB9LCBcInN1cHBvcnRzRHVhbFN0YWNrXCJdIH1dIH0sIHYgPSBbeyBbel06IFwiUmVnaW9uXCIgfV07XG5jb25zdCBfZGF0YSA9IHsgdmVyc2lvbjogXCIxLjBcIiwgcGFyYW1ldGVyczogeyBVc2VEdWFsU3RhY2s6IGksIFVzZUZJUFM6IGksIEVuZHBvaW50OiBqLCBSZWdpb246IGogfSwgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IFt7IFt4XTogYywgW3ldOiBba10gfV0sIHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbbF0sIGVycm9yOiBcIkludmFsaWQgQ29uZmlndXJhdGlvbjogRklQUyBhbmQgY3VzdG9tIGVuZHBvaW50IGFyZSBub3Qgc3VwcG9ydGVkXCIsIHR5cGU6IGUgfSwgeyBydWxlczogW3sgY29uZGl0aW9uczogW25dLCBlcnJvcjogXCJJbnZhbGlkIENvbmZpZ3VyYXRpb246IER1YWxzdGFjayBhbmQgY3VzdG9tIGVuZHBvaW50IGFyZSBub3Qgc3VwcG9ydGVkXCIsIHR5cGU6IGUgfSwgeyBlbmRwb2ludDogeyB1cmw6IGssIFtBXTogbywgW0JdOiBvIH0sIHR5cGU6IGYgfV0sIHR5cGU6IGcgfV0sIHR5cGU6IGcgfSwgeyBydWxlczogW3sgY29uZGl0aW9uczogW3sgW3hdOiBjLCBbeV06IHYgfV0sIHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbeyBbeF06IFwiYXdzLnBhcnRpdGlvblwiLCBbeV06IHYsIGFzc2lnbjogaCB9XSwgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IFtwLCBsLCBxXSwgZW5kcG9pbnQ6IHIsIHR5cGU6IGYgfSwgeyBjb25kaXRpb25zOiBbcCwgbCwgbl0sIGVuZHBvaW50OiBzLCB0eXBlOiBmIH0sIHsgY29uZGl0aW9uczogW2wsIG5dLCBydWxlczogW3sgY29uZGl0aW9uczogW3sgW3hdOiBkLCBbeV06IFthLCB0XSB9LCB1XSwgcnVsZXM6IFt7IGVuZHBvaW50OiB7IHVybDogXCJodHRwczovL21vbml0b3JpbmctZmlwcy57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2R1YWxTdGFja0Ruc1N1ZmZpeH1cIiwgW0FdOiBvLCBbQl06IG8gfSwgdHlwZTogZiB9XSwgdHlwZTogZyB9LCB7IGVycm9yOiBcIkZJUFMgYW5kIER1YWxTdGFjayBhcmUgZW5hYmxlZCwgYnV0IHRoaXMgcGFydGl0aW9uIGRvZXMgbm90IHN1cHBvcnQgb25lIG9yIGJvdGhcIiwgdHlwZTogZSB9XSwgdHlwZTogZyB9LCB7IGNvbmRpdGlvbnM6IFtsLCBxXSwgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IFt7IFt4XTogZCwgW3ldOiBbdCwgYV0gfV0sIHJ1bGVzOiBbeyBlbmRwb2ludDogeyB1cmw6IFwiaHR0cHM6Ly9tb25pdG9yaW5nLWZpcHMue1JlZ2lvbn0ue1BhcnRpdGlvblJlc3VsdCNkbnNTdWZmaXh9XCIsIFtBXTogbywgW0JdOiBvIH0sIHR5cGU6IGYgfV0sIHR5cGU6IGcgfSwgeyBlcnJvcjogXCJGSVBTIGlzIGVuYWJsZWQgYnV0IHRoaXMgcGFydGl0aW9uIGRvZXMgbm90IHN1cHBvcnQgRklQU1wiLCB0eXBlOiBlIH1dLCB0eXBlOiBnIH0sIHsgY29uZGl0aW9uczogW3sgW3hdOiBkLCBbeV06IFttLCBiXSB9LCBuXSwgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IFt1XSwgcnVsZXM6IFt7IGVuZHBvaW50OiBzLCB0eXBlOiBmIH1dLCB0eXBlOiBnIH0sIHsgZXJyb3I6IFwiRHVhbFN0YWNrIGlzIGVuYWJsZWQgYnV0IHRoaXMgcGFydGl0aW9uIGRvZXMgbm90IHN1cHBvcnQgRHVhbFN0YWNrXCIsIHR5cGU6IGUgfV0sIHR5cGU6IGcgfSwgeyBlbmRwb2ludDogciwgdHlwZTogZiB9XSwgdHlwZTogZyB9XSwgdHlwZTogZyB9LCB7IGVycm9yOiBcIkludmFsaWQgQ29uZmlndXJhdGlvbjogTWlzc2luZyBSZWdpb25cIiwgdHlwZTogZSB9XSwgdHlwZTogZyB9XSB9O1xuZXhwb3J0cy5ydWxlU2V0ID0gX2RhdGE7XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmRlZmF1bHRFbmRwb2ludFJlc29sdmVyID0gdm9pZCAwO1xuY29uc3QgdXRpbF9lbmRwb2ludHNfMSA9IHJlcXVpcmUoXCJAYXdzLXNkay91dGlsLWVuZHBvaW50c1wiKTtcbmNvbnN0IHV0aWxfZW5kcG9pbnRzXzIgPSByZXF1aXJlKFwiQHNtaXRoeS91dGlsLWVuZHBvaW50c1wiKTtcbmNvbnN0IHJ1bGVzZXRfMSA9IHJlcXVpcmUoXCIuL3J1bGVzZXRcIik7XG5jb25zdCBjYWNoZSA9IG5ldyB1dGlsX2VuZHBvaW50c18yLkVuZHBvaW50Q2FjaGUoe1xuICAgIHNpemU6IDUwLFxuICAgIHBhcmFtczogW1wiRW5kcG9pbnRcIiwgXCJSZWdpb25cIiwgXCJVc2VEdWFsU3RhY2tcIiwgXCJVc2VGSVBTXCJdLFxufSk7XG5jb25zdCBkZWZhdWx0RW5kcG9pbnRSZXNvbHZlciA9IChlbmRwb2ludFBhcmFtcywgY29udGV4dCA9IHt9KSA9PiB7XG4gICAgcmV0dXJuIGNhY2hlLmdldChlbmRwb2ludFBhcmFtcywgKCkgPT4gKDAsIHV0aWxfZW5kcG9pbnRzXzIucmVzb2x2ZUVuZHBvaW50KShydWxlc2V0XzEucnVsZVNldCwge1xuICAgICAgICBlbmRwb2ludFBhcmFtczogZW5kcG9pbnRQYXJhbXMsXG4gICAgICAgIGxvZ2dlcjogY29udGV4dC5sb2dnZXIsXG4gICAgfSkpO1xufTtcbmV4cG9ydHMuZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIgPSBkZWZhdWx0RW5kcG9pbnRSZXNvbHZlcjtcbnV0aWxfZW5kcG9pbnRzXzIuY3VzdG9tRW5kcG9pbnRGdW5jdGlvbnMuYXdzID0gdXRpbF9lbmRwb2ludHNfMS5hd3NFbmRwb2ludEZ1bmN0aW9ucztcbiIsICJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuZ2V0UnVudGltZUNvbmZpZyA9IHZvaWQgMDtcbmNvbnN0IGNvcmVfMSA9IHJlcXVpcmUoXCJAYXdzLXNkay9jb3JlXCIpO1xuY29uc3QgcHJvdG9jb2xzXzEgPSByZXF1aXJlKFwiQGF3cy1zZGsvY29yZS9wcm90b2NvbHNcIik7XG5jb25zdCBzbWl0aHlfY2xpZW50XzEgPSByZXF1aXJlKFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCIpO1xuY29uc3QgdXJsX3BhcnNlcl8xID0gcmVxdWlyZShcIkBzbWl0aHkvdXJsLXBhcnNlclwiKTtcbmNvbnN0IHV0aWxfYmFzZTY0XzEgPSByZXF1aXJlKFwiQHNtaXRoeS91dGlsLWJhc2U2NFwiKTtcbmNvbnN0IHV0aWxfdXRmOF8xID0gcmVxdWlyZShcIkBzbWl0aHkvdXRpbC11dGY4XCIpO1xuY29uc3QgaHR0cEF1dGhTY2hlbWVQcm92aWRlcl8xID0gcmVxdWlyZShcIi4vYXV0aC9odHRwQXV0aFNjaGVtZVByb3ZpZGVyXCIpO1xuY29uc3QgZW5kcG9pbnRSZXNvbHZlcl8xID0gcmVxdWlyZShcIi4vZW5kcG9pbnQvZW5kcG9pbnRSZXNvbHZlclwiKTtcbmNvbnN0IGdldFJ1bnRpbWVDb25maWcgPSAoY29uZmlnKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgYXBpVmVyc2lvbjogXCIyMDEwLTA4LTAxXCIsXG4gICAgICAgIGJhc2U2NERlY29kZXI6IGNvbmZpZz8uYmFzZTY0RGVjb2RlciA/PyB1dGlsX2Jhc2U2NF8xLmZyb21CYXNlNjQsXG4gICAgICAgIGJhc2U2NEVuY29kZXI6IGNvbmZpZz8uYmFzZTY0RW5jb2RlciA/PyB1dGlsX2Jhc2U2NF8xLnRvQmFzZTY0LFxuICAgICAgICBkaXNhYmxlSG9zdFByZWZpeDogY29uZmlnPy5kaXNhYmxlSG9zdFByZWZpeCA/PyBmYWxzZSxcbiAgICAgICAgZW5kcG9pbnRQcm92aWRlcjogY29uZmlnPy5lbmRwb2ludFByb3ZpZGVyID8/IGVuZHBvaW50UmVzb2x2ZXJfMS5kZWZhdWx0RW5kcG9pbnRSZXNvbHZlcixcbiAgICAgICAgZXh0ZW5zaW9uczogY29uZmlnPy5leHRlbnNpb25zID8/IFtdLFxuICAgICAgICBodHRwQXV0aFNjaGVtZVByb3ZpZGVyOiBjb25maWc/Lmh0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPz8gaHR0cEF1dGhTY2hlbWVQcm92aWRlcl8xLmRlZmF1bHRDbG91ZFdhdGNoSHR0cEF1dGhTY2hlbWVQcm92aWRlcixcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVzOiBjb25maWc/Lmh0dHBBdXRoU2NoZW1lcyA/PyBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgc2NoZW1lSWQ6IFwiYXdzLmF1dGgjc2lndjRcIixcbiAgICAgICAgICAgICAgICBpZGVudGl0eVByb3ZpZGVyOiAoaXBjKSA9PiBpcGMuZ2V0SWRlbnRpdHlQcm92aWRlcihcImF3cy5hdXRoI3NpZ3Y0XCIpLFxuICAgICAgICAgICAgICAgIHNpZ25lcjogbmV3IGNvcmVfMS5Bd3NTZGtTaWdWNFNpZ25lcigpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgbG9nZ2VyOiBjb25maWc/LmxvZ2dlciA/PyBuZXcgc21pdGh5X2NsaWVudF8xLk5vT3BMb2dnZXIoKSxcbiAgICAgICAgcHJvdG9jb2w6IGNvbmZpZz8ucHJvdG9jb2wgPz9cbiAgICAgICAgICAgIG5ldyBwcm90b2NvbHNfMS5Bd3NKc29uMV8wUHJvdG9jb2woe1xuICAgICAgICAgICAgICAgIGRlZmF1bHROYW1lc3BhY2U6IFwiY29tLmFtYXpvbmF3cy5jbG91ZHdhdGNoXCIsXG4gICAgICAgICAgICAgICAgc2VydmljZVRhcmdldDogXCJHcmFuaXRlU2VydmljZVZlcnNpb24yMDEwMDgwMVwiLFxuICAgICAgICAgICAgICAgIGF3c1F1ZXJ5Q29tcGF0aWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICBzZXJ2aWNlSWQ6IGNvbmZpZz8uc2VydmljZUlkID8/IFwiQ2xvdWRXYXRjaFwiLFxuICAgICAgICB1cmxQYXJzZXI6IGNvbmZpZz8udXJsUGFyc2VyID8/IHVybF9wYXJzZXJfMS5wYXJzZVVybCxcbiAgICAgICAgdXRmOERlY29kZXI6IGNvbmZpZz8udXRmOERlY29kZXIgPz8gdXRpbF91dGY4XzEuZnJvbVV0ZjgsXG4gICAgICAgIHV0ZjhFbmNvZGVyOiBjb25maWc/LnV0ZjhFbmNvZGVyID8/IHV0aWxfdXRmOF8xLnRvVXRmOCxcbiAgICB9O1xufTtcbmV4cG9ydHMuZ2V0UnVudGltZUNvbmZpZyA9IGdldFJ1bnRpbWVDb25maWc7XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmdldFJ1bnRpbWVDb25maWcgPSB2b2lkIDA7XG5jb25zdCB0c2xpYl8xID0gcmVxdWlyZShcInRzbGliXCIpO1xuY29uc3QgcGFja2FnZV9qc29uXzEgPSB0c2xpYl8xLl9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi4vcGFja2FnZS5qc29uXCIpKTtcbmNvbnN0IGNvcmVfMSA9IHJlcXVpcmUoXCJAYXdzLXNkay9jb3JlXCIpO1xuY29uc3QgY3JlZGVudGlhbF9wcm92aWRlcl9ub2RlXzEgPSByZXF1aXJlKFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlXCIpO1xuY29uc3QgdXRpbF91c2VyX2FnZW50X25vZGVfMSA9IHJlcXVpcmUoXCJAYXdzLXNkay91dGlsLXVzZXItYWdlbnQtbm9kZVwiKTtcbmNvbnN0IGNvbmZpZ19yZXNvbHZlcl8xID0gcmVxdWlyZShcIkBzbWl0aHkvY29uZmlnLXJlc29sdmVyXCIpO1xuY29uc3QgaGFzaF9ub2RlXzEgPSByZXF1aXJlKFwiQHNtaXRoeS9oYXNoLW5vZGVcIik7XG5jb25zdCBtaWRkbGV3YXJlX2NvbXByZXNzaW9uXzEgPSByZXF1aXJlKFwiQHNtaXRoeS9taWRkbGV3YXJlLWNvbXByZXNzaW9uXCIpO1xuY29uc3QgbWlkZGxld2FyZV9yZXRyeV8xID0gcmVxdWlyZShcIkBzbWl0aHkvbWlkZGxld2FyZS1yZXRyeVwiKTtcbmNvbnN0IG5vZGVfY29uZmlnX3Byb3ZpZGVyXzEgPSByZXF1aXJlKFwiQHNtaXRoeS9ub2RlLWNvbmZpZy1wcm92aWRlclwiKTtcbmNvbnN0IG5vZGVfaHR0cF9oYW5kbGVyXzEgPSByZXF1aXJlKFwiQHNtaXRoeS9ub2RlLWh0dHAtaGFuZGxlclwiKTtcbmNvbnN0IHNtaXRoeV9jbGllbnRfMSA9IHJlcXVpcmUoXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIik7XG5jb25zdCB1dGlsX2JvZHlfbGVuZ3RoX25vZGVfMSA9IHJlcXVpcmUoXCJAc21pdGh5L3V0aWwtYm9keS1sZW5ndGgtbm9kZVwiKTtcbmNvbnN0IHV0aWxfZGVmYXVsdHNfbW9kZV9ub2RlXzEgPSByZXF1aXJlKFwiQHNtaXRoeS91dGlsLWRlZmF1bHRzLW1vZGUtbm9kZVwiKTtcbmNvbnN0IHV0aWxfcmV0cnlfMSA9IHJlcXVpcmUoXCJAc21pdGh5L3V0aWwtcmV0cnlcIik7XG5jb25zdCBydW50aW1lQ29uZmlnX3NoYXJlZF8xID0gcmVxdWlyZShcIi4vcnVudGltZUNvbmZpZy5zaGFyZWRcIik7XG5jb25zdCBnZXRSdW50aW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgICgwLCBzbWl0aHlfY2xpZW50XzEuZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbikocHJvY2Vzcy52ZXJzaW9uKTtcbiAgICBjb25zdCBkZWZhdWx0c01vZGUgPSAoMCwgdXRpbF9kZWZhdWx0c19tb2RlX25vZGVfMS5yZXNvbHZlRGVmYXVsdHNNb2RlQ29uZmlnKShjb25maWcpO1xuICAgIGNvbnN0IGRlZmF1bHRDb25maWdQcm92aWRlciA9ICgpID0+IGRlZmF1bHRzTW9kZSgpLnRoZW4oc21pdGh5X2NsaWVudF8xLmxvYWRDb25maWdzRm9yRGVmYXVsdE1vZGUpO1xuICAgIGNvbnN0IGNsaWVudFNoYXJlZFZhbHVlcyA9ICgwLCBydW50aW1lQ29uZmlnX3NoYXJlZF8xLmdldFJ1bnRpbWVDb25maWcpKGNvbmZpZyk7XG4gICAgKDAsIGNvcmVfMS5lbWl0V2FybmluZ0lmVW5zdXBwb3J0ZWRWZXJzaW9uKShwcm9jZXNzLnZlcnNpb24pO1xuICAgIGNvbnN0IGxvYWRlckNvbmZpZyA9IHtcbiAgICAgICAgcHJvZmlsZTogY29uZmlnPy5wcm9maWxlLFxuICAgICAgICBsb2dnZXI6IGNsaWVudFNoYXJlZFZhbHVlcy5sb2dnZXIsXG4gICAgfTtcbiAgICByZXR1cm4ge1xuICAgICAgICAuLi5jbGllbnRTaGFyZWRWYWx1ZXMsXG4gICAgICAgIC4uLmNvbmZpZyxcbiAgICAgICAgcnVudGltZTogXCJub2RlXCIsXG4gICAgICAgIGRlZmF1bHRzTW9kZSxcbiAgICAgICAgYXV0aFNjaGVtZVByZWZlcmVuY2U6IGNvbmZpZz8uYXV0aFNjaGVtZVByZWZlcmVuY2UgPz8gKDAsIG5vZGVfY29uZmlnX3Byb3ZpZGVyXzEubG9hZENvbmZpZykoY29yZV8xLk5PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgICAgICBib2R5TGVuZ3RoQ2hlY2tlcjogY29uZmlnPy5ib2R5TGVuZ3RoQ2hlY2tlciA/PyB1dGlsX2JvZHlfbGVuZ3RoX25vZGVfMS5jYWxjdWxhdGVCb2R5TGVuZ3RoLFxuICAgICAgICBjcmVkZW50aWFsRGVmYXVsdFByb3ZpZGVyOiBjb25maWc/LmNyZWRlbnRpYWxEZWZhdWx0UHJvdmlkZXIgPz8gY3JlZGVudGlhbF9wcm92aWRlcl9ub2RlXzEuZGVmYXVsdFByb3ZpZGVyLFxuICAgICAgICBkZWZhdWx0VXNlckFnZW50UHJvdmlkZXI6IGNvbmZpZz8uZGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyID8/XG4gICAgICAgICAgICAoMCwgdXRpbF91c2VyX2FnZW50X25vZGVfMS5jcmVhdGVEZWZhdWx0VXNlckFnZW50UHJvdmlkZXIpKHsgc2VydmljZUlkOiBjbGllbnRTaGFyZWRWYWx1ZXMuc2VydmljZUlkLCBjbGllbnRWZXJzaW9uOiBwYWNrYWdlX2pzb25fMS5kZWZhdWx0LnZlcnNpb24gfSksXG4gICAgICAgIGRpc2FibGVSZXF1ZXN0Q29tcHJlc3Npb246IGNvbmZpZz8uZGlzYWJsZVJlcXVlc3RDb21wcmVzc2lvbiA/PyAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKShtaWRkbGV3YXJlX2NvbXByZXNzaW9uXzEuTk9ERV9ESVNBQkxFX1JFUVVFU1RfQ09NUFJFU1NJT05fQ09ORklHX09QVElPTlMsIGNvbmZpZyksXG4gICAgICAgIG1heEF0dGVtcHRzOiBjb25maWc/Lm1heEF0dGVtcHRzID8/ICgwLCBub2RlX2NvbmZpZ19wcm92aWRlcl8xLmxvYWRDb25maWcpKG1pZGRsZXdhcmVfcmV0cnlfMS5OT0RFX01BWF9BVFRFTVBUX0NPTkZJR19PUFRJT05TLCBjb25maWcpLFxuICAgICAgICByZWdpb246IGNvbmZpZz8ucmVnaW9uID8/XG4gICAgICAgICAgICAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKShjb25maWdfcmVzb2x2ZXJfMS5OT0RFX1JFR0lPTl9DT05GSUdfT1BUSU9OUywgeyAuLi5jb25maWdfcmVzb2x2ZXJfMS5OT0RFX1JFR0lPTl9DT05GSUdfRklMRV9PUFRJT05TLCAuLi5sb2FkZXJDb25maWcgfSksXG4gICAgICAgIHJlcXVlc3RIYW5kbGVyOiBub2RlX2h0dHBfaGFuZGxlcl8xLk5vZGVIdHRwSGFuZGxlci5jcmVhdGUoY29uZmlnPy5yZXF1ZXN0SGFuZGxlciA/PyBkZWZhdWx0Q29uZmlnUHJvdmlkZXIpLFxuICAgICAgICByZXF1ZXN0TWluQ29tcHJlc3Npb25TaXplQnl0ZXM6IGNvbmZpZz8ucmVxdWVzdE1pbkNvbXByZXNzaW9uU2l6ZUJ5dGVzID8/XG4gICAgICAgICAgICAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKShtaWRkbGV3YXJlX2NvbXByZXNzaW9uXzEuTk9ERV9SRVFVRVNUX01JTl9DT01QUkVTU0lPTl9TSVpFX0JZVEVTX0NPTkZJR19PUFRJT05TLCBjb25maWcpLFxuICAgICAgICByZXRyeU1vZGU6IGNvbmZpZz8ucmV0cnlNb2RlID8/XG4gICAgICAgICAgICAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKSh7XG4gICAgICAgICAgICAgICAgLi4ubWlkZGxld2FyZV9yZXRyeV8xLk5PREVfUkVUUllfTU9ERV9DT05GSUdfT1BUSU9OUyxcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiBhc3luYyAoKSA9PiAoYXdhaXQgZGVmYXVsdENvbmZpZ1Byb3ZpZGVyKCkpLnJldHJ5TW9kZSB8fCB1dGlsX3JldHJ5XzEuREVGQVVMVF9SRVRSWV9NT0RFLFxuICAgICAgICAgICAgfSwgY29uZmlnKSxcbiAgICAgICAgc2hhMjU2OiBjb25maWc/LnNoYTI1NiA/PyBoYXNoX25vZGVfMS5IYXNoLmJpbmQobnVsbCwgXCJzaGEyNTZcIiksXG4gICAgICAgIHN0cmVhbUNvbGxlY3RvcjogY29uZmlnPy5zdHJlYW1Db2xsZWN0b3IgPz8gbm9kZV9odHRwX2hhbmRsZXJfMS5zdHJlYW1Db2xsZWN0b3IsXG4gICAgICAgIHVzZUR1YWxzdGFja0VuZHBvaW50OiBjb25maWc/LnVzZUR1YWxzdGFja0VuZHBvaW50ID8/ICgwLCBub2RlX2NvbmZpZ19wcm92aWRlcl8xLmxvYWRDb25maWcpKGNvbmZpZ19yZXNvbHZlcl8xLk5PREVfVVNFX0RVQUxTVEFDS19FTkRQT0lOVF9DT05GSUdfT1BUSU9OUywgbG9hZGVyQ29uZmlnKSxcbiAgICAgICAgdXNlRmlwc0VuZHBvaW50OiBjb25maWc/LnVzZUZpcHNFbmRwb2ludCA/PyAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKShjb25maWdfcmVzb2x2ZXJfMS5OT0RFX1VTRV9GSVBTX0VORFBPSU5UX0NPTkZJR19PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgICAgICB1c2VyQWdlbnRBcHBJZDogY29uZmlnPy51c2VyQWdlbnRBcHBJZCA/PyAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKSh1dGlsX3VzZXJfYWdlbnRfbm9kZV8xLk5PREVfQVBQX0lEX0NPTkZJR19PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgIH07XG59O1xuZXhwb3J0cy5nZXRSdW50aW1lQ29uZmlnID0gZ2V0UnVudGltZUNvbmZpZztcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBtaWRkbGV3YXJlSG9zdEhlYWRlciA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL21pZGRsZXdhcmUtaG9zdC1oZWFkZXInKTtcbnZhciBtaWRkbGV3YXJlTG9nZ2VyID0gcmVxdWlyZSgnQGF3cy1zZGsvbWlkZGxld2FyZS1sb2dnZXInKTtcbnZhciBtaWRkbGV3YXJlUmVjdXJzaW9uRGV0ZWN0aW9uID0gcmVxdWlyZSgnQGF3cy1zZGsvbWlkZGxld2FyZS1yZWN1cnNpb24tZGV0ZWN0aW9uJyk7XG52YXIgbWlkZGxld2FyZVVzZXJBZ2VudCA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL21pZGRsZXdhcmUtdXNlci1hZ2VudCcpO1xudmFyIGNvbmZpZ1Jlc29sdmVyID0gcmVxdWlyZSgnQHNtaXRoeS9jb25maWctcmVzb2x2ZXInKTtcbnZhciBjb3JlID0gcmVxdWlyZSgnQHNtaXRoeS9jb3JlJyk7XG52YXIgc2NoZW1hID0gcmVxdWlyZSgnQHNtaXRoeS9jb3JlL3NjaGVtYScpO1xudmFyIG1pZGRsZXdhcmVDb21wcmVzc2lvbiA9IHJlcXVpcmUoJ0BzbWl0aHkvbWlkZGxld2FyZS1jb21wcmVzc2lvbicpO1xudmFyIG1pZGRsZXdhcmVDb250ZW50TGVuZ3RoID0gcmVxdWlyZSgnQHNtaXRoeS9taWRkbGV3YXJlLWNvbnRlbnQtbGVuZ3RoJyk7XG52YXIgbWlkZGxld2FyZUVuZHBvaW50ID0gcmVxdWlyZSgnQHNtaXRoeS9taWRkbGV3YXJlLWVuZHBvaW50Jyk7XG52YXIgbWlkZGxld2FyZVJldHJ5ID0gcmVxdWlyZSgnQHNtaXRoeS9taWRkbGV3YXJlLXJldHJ5Jyk7XG52YXIgc21pdGh5Q2xpZW50ID0gcmVxdWlyZSgnQHNtaXRoeS9zbWl0aHktY2xpZW50Jyk7XG52YXIgaHR0cEF1dGhTY2hlbWVQcm92aWRlciA9IHJlcXVpcmUoJy4vYXV0aC9odHRwQXV0aFNjaGVtZVByb3ZpZGVyJyk7XG52YXIgcnVudGltZUNvbmZpZyA9IHJlcXVpcmUoJy4vcnVudGltZUNvbmZpZycpO1xudmFyIHJlZ2lvbkNvbmZpZ1Jlc29sdmVyID0gcmVxdWlyZSgnQGF3cy1zZGsvcmVnaW9uLWNvbmZpZy1yZXNvbHZlcicpO1xudmFyIHByb3RvY29sSHR0cCA9IHJlcXVpcmUoJ0BzbWl0aHkvcHJvdG9jb2wtaHR0cCcpO1xudmFyIHV0aWxXYWl0ZXIgPSByZXF1aXJlKCdAc21pdGh5L3V0aWwtd2FpdGVyJyk7XG5cbmNvbnN0IHJlc29sdmVDbGllbnRFbmRwb2ludFBhcmFtZXRlcnMgPSAob3B0aW9ucykgPT4ge1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKG9wdGlvbnMsIHtcbiAgICAgICAgdXNlRHVhbHN0YWNrRW5kcG9pbnQ6IG9wdGlvbnMudXNlRHVhbHN0YWNrRW5kcG9pbnQgPz8gZmFsc2UsXG4gICAgICAgIHVzZUZpcHNFbmRwb2ludDogb3B0aW9ucy51c2VGaXBzRW5kcG9pbnQgPz8gZmFsc2UsXG4gICAgICAgIGRlZmF1bHRTaWduaW5nTmFtZTogXCJtb25pdG9yaW5nXCIsXG4gICAgfSk7XG59O1xuY29uc3QgY29tbW9uUGFyYW1zID0ge1xuICAgIFVzZUZJUFM6IHsgdHlwZTogXCJidWlsdEluUGFyYW1zXCIsIG5hbWU6IFwidXNlRmlwc0VuZHBvaW50XCIgfSxcbiAgICBFbmRwb2ludDogeyB0eXBlOiBcImJ1aWx0SW5QYXJhbXNcIiwgbmFtZTogXCJlbmRwb2ludFwiIH0sXG4gICAgUmVnaW9uOiB7IHR5cGU6IFwiYnVpbHRJblBhcmFtc1wiLCBuYW1lOiBcInJlZ2lvblwiIH0sXG4gICAgVXNlRHVhbFN0YWNrOiB7IHR5cGU6IFwiYnVpbHRJblBhcmFtc1wiLCBuYW1lOiBcInVzZUR1YWxzdGFja0VuZHBvaW50XCIgfSxcbn07XG5cbmNvbnN0IGdldEh0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiA9IChydW50aW1lQ29uZmlnKSA9PiB7XG4gICAgY29uc3QgX2h0dHBBdXRoU2NoZW1lcyA9IHJ1bnRpbWVDb25maWcuaHR0cEF1dGhTY2hlbWVzO1xuICAgIGxldCBfaHR0cEF1dGhTY2hlbWVQcm92aWRlciA9IHJ1bnRpbWVDb25maWcuaHR0cEF1dGhTY2hlbWVQcm92aWRlcjtcbiAgICBsZXQgX2NyZWRlbnRpYWxzID0gcnVudGltZUNvbmZpZy5jcmVkZW50aWFscztcbiAgICByZXR1cm4ge1xuICAgICAgICBzZXRIdHRwQXV0aFNjaGVtZShodHRwQXV0aFNjaGVtZSkge1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSBfaHR0cEF1dGhTY2hlbWVzLmZpbmRJbmRleCgoc2NoZW1lKSA9PiBzY2hlbWUuc2NoZW1lSWQgPT09IGh0dHBBdXRoU2NoZW1lLnNjaGVtZUlkKTtcbiAgICAgICAgICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICBfaHR0cEF1dGhTY2hlbWVzLnB1c2goaHR0cEF1dGhTY2hlbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgX2h0dHBBdXRoU2NoZW1lcy5zcGxpY2UoaW5kZXgsIDEsIGh0dHBBdXRoU2NoZW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVzKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9odHRwQXV0aFNjaGVtZXM7XG4gICAgICAgIH0sXG4gICAgICAgIHNldEh0dHBBdXRoU2NoZW1lUHJvdmlkZXIoaHR0cEF1dGhTY2hlbWVQcm92aWRlcikge1xuICAgICAgICAgICAgX2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSBodHRwQXV0aFNjaGVtZVByb3ZpZGVyO1xuICAgICAgICB9LFxuICAgICAgICBodHRwQXV0aFNjaGVtZVByb3ZpZGVyKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9odHRwQXV0aFNjaGVtZVByb3ZpZGVyO1xuICAgICAgICB9LFxuICAgICAgICBzZXRDcmVkZW50aWFscyhjcmVkZW50aWFscykge1xuICAgICAgICAgICAgX2NyZWRlbnRpYWxzID0gY3JlZGVudGlhbHM7XG4gICAgICAgIH0sXG4gICAgICAgIGNyZWRlbnRpYWxzKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9jcmVkZW50aWFscztcbiAgICAgICAgfSxcbiAgICB9O1xufTtcbmNvbnN0IHJlc29sdmVIdHRwQXV0aFJ1bnRpbWVDb25maWcgPSAoY29uZmlnKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVzOiBjb25maWcuaHR0cEF1dGhTY2hlbWVzKCksXG4gICAgICAgIGh0dHBBdXRoU2NoZW1lUHJvdmlkZXI6IGNvbmZpZy5odHRwQXV0aFNjaGVtZVByb3ZpZGVyKCksXG4gICAgICAgIGNyZWRlbnRpYWxzOiBjb25maWcuY3JlZGVudGlhbHMoKSxcbiAgICB9O1xufTtcblxuY29uc3QgcmVzb2x2ZVJ1bnRpbWVFeHRlbnNpb25zID0gKHJ1bnRpbWVDb25maWcsIGV4dGVuc2lvbnMpID0+IHtcbiAgICBjb25zdCBleHRlbnNpb25Db25maWd1cmF0aW9uID0gT2JqZWN0LmFzc2lnbihyZWdpb25Db25maWdSZXNvbHZlci5nZXRBd3NSZWdpb25FeHRlbnNpb25Db25maWd1cmF0aW9uKHJ1bnRpbWVDb25maWcpLCBzbWl0aHlDbGllbnQuZ2V0RGVmYXVsdEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24ocnVudGltZUNvbmZpZyksIHByb3RvY29sSHR0cC5nZXRIdHRwSGFuZGxlckV4dGVuc2lvbkNvbmZpZ3VyYXRpb24ocnVudGltZUNvbmZpZyksIGdldEh0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbihydW50aW1lQ29uZmlnKSk7XG4gICAgZXh0ZW5zaW9ucy5mb3JFYWNoKChleHRlbnNpb24pID0+IGV4dGVuc2lvbi5jb25maWd1cmUoZXh0ZW5zaW9uQ29uZmlndXJhdGlvbikpO1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHJ1bnRpbWVDb25maWcsIHJlZ2lvbkNvbmZpZ1Jlc29sdmVyLnJlc29sdmVBd3NSZWdpb25FeHRlbnNpb25Db25maWd1cmF0aW9uKGV4dGVuc2lvbkNvbmZpZ3VyYXRpb24pLCBzbWl0aHlDbGllbnQucmVzb2x2ZURlZmF1bHRSdW50aW1lQ29uZmlnKGV4dGVuc2lvbkNvbmZpZ3VyYXRpb24pLCBwcm90b2NvbEh0dHAucmVzb2x2ZUh0dHBIYW5kbGVyUnVudGltZUNvbmZpZyhleHRlbnNpb25Db25maWd1cmF0aW9uKSwgcmVzb2x2ZUh0dHBBdXRoUnVudGltZUNvbmZpZyhleHRlbnNpb25Db25maWd1cmF0aW9uKSk7XG59O1xuXG5jbGFzcyBDbG91ZFdhdGNoQ2xpZW50IGV4dGVuZHMgc21pdGh5Q2xpZW50LkNsaWVudCB7XG4gICAgY29uZmlnO1xuICAgIGNvbnN0cnVjdG9yKC4uLltjb25maWd1cmF0aW9uXSkge1xuICAgICAgICBjb25zdCBfY29uZmlnXzAgPSBydW50aW1lQ29uZmlnLmdldFJ1bnRpbWVDb25maWcoY29uZmlndXJhdGlvbiB8fCB7fSk7XG4gICAgICAgIHN1cGVyKF9jb25maWdfMCk7XG4gICAgICAgIHRoaXMuaW5pdENvbmZpZyA9IF9jb25maWdfMDtcbiAgICAgICAgY29uc3QgX2NvbmZpZ18xID0gcmVzb2x2ZUNsaWVudEVuZHBvaW50UGFyYW1ldGVycyhfY29uZmlnXzApO1xuICAgICAgICBjb25zdCBfY29uZmlnXzIgPSBtaWRkbGV3YXJlVXNlckFnZW50LnJlc29sdmVVc2VyQWdlbnRDb25maWcoX2NvbmZpZ18xKTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ18zID0gbWlkZGxld2FyZVJldHJ5LnJlc29sdmVSZXRyeUNvbmZpZyhfY29uZmlnXzIpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzQgPSBjb25maWdSZXNvbHZlci5yZXNvbHZlUmVnaW9uQ29uZmlnKF9jb25maWdfMyk7XG4gICAgICAgIGNvbnN0IF9jb25maWdfNSA9IG1pZGRsZXdhcmVIb3N0SGVhZGVyLnJlc29sdmVIb3N0SGVhZGVyQ29uZmlnKF9jb25maWdfNCk7XG4gICAgICAgIGNvbnN0IF9jb25maWdfNiA9IG1pZGRsZXdhcmVFbmRwb2ludC5yZXNvbHZlRW5kcG9pbnRDb25maWcoX2NvbmZpZ181KTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ183ID0gaHR0cEF1dGhTY2hlbWVQcm92aWRlci5yZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWcoX2NvbmZpZ182KTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ184ID0gbWlkZGxld2FyZUNvbXByZXNzaW9uLnJlc29sdmVDb21wcmVzc2lvbkNvbmZpZyhfY29uZmlnXzcpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzkgPSByZXNvbHZlUnVudGltZUV4dGVuc2lvbnMoX2NvbmZpZ184LCBjb25maWd1cmF0aW9uPy5leHRlbnNpb25zIHx8IFtdKTtcbiAgICAgICAgdGhpcy5jb25maWcgPSBfY29uZmlnXzk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShzY2hlbWEuZ2V0U2NoZW1hU2VyZGVQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKG1pZGRsZXdhcmVVc2VyQWdlbnQuZ2V0VXNlckFnZW50UGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShtaWRkbGV3YXJlUmV0cnkuZ2V0UmV0cnlQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKG1pZGRsZXdhcmVDb250ZW50TGVuZ3RoLmdldENvbnRlbnRMZW5ndGhQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKG1pZGRsZXdhcmVIb3N0SGVhZGVyLmdldEhvc3RIZWFkZXJQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKG1pZGRsZXdhcmVMb2dnZXIuZ2V0TG9nZ2VyUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShtaWRkbGV3YXJlUmVjdXJzaW9uRGV0ZWN0aW9uLmdldFJlY3Vyc2lvbkRldGVjdGlvblBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoY29yZS5nZXRIdHRwQXV0aFNjaGVtZUVuZHBvaW50UnVsZVNldFBsdWdpbih0aGlzLmNvbmZpZywge1xuICAgICAgICAgICAgaHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXI6IGh0dHBBdXRoU2NoZW1lUHJvdmlkZXIuZGVmYXVsdENsb3VkV2F0Y2hIdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlcixcbiAgICAgICAgICAgIGlkZW50aXR5UHJvdmlkZXJDb25maWdQcm92aWRlcjogYXN5bmMgKGNvbmZpZykgPT4gbmV3IGNvcmUuRGVmYXVsdElkZW50aXR5UHJvdmlkZXJDb25maWcoe1xuICAgICAgICAgICAgICAgIFwiYXdzLmF1dGgjc2lndjRcIjogY29uZmlnLmNyZWRlbnRpYWxzLFxuICAgICAgICAgICAgfSksXG4gICAgICAgIH0pKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGNvcmUuZ2V0SHR0cFNpZ25pbmdQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICB9XG4gICAgZGVzdHJveSgpIHtcbiAgICAgICAgc3VwZXIuZGVzdHJveSgpO1xuICAgIH1cbn1cblxubGV0IENsb3VkV2F0Y2hTZXJ2aWNlRXhjZXB0aW9uJDEgPSBjbGFzcyBDbG91ZFdhdGNoU2VydmljZUV4Y2VwdGlvbiBleHRlbmRzIHNtaXRoeUNsaWVudC5TZXJ2aWNlRXhjZXB0aW9uIHtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgQ2xvdWRXYXRjaFNlcnZpY2VFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59O1xuXG5sZXQgQ29uY3VycmVudE1vZGlmaWNhdGlvbkV4Y2VwdGlvbiQxID0gY2xhc3MgQ29uY3VycmVudE1vZGlmaWNhdGlvbkV4Y2VwdGlvbiBleHRlbmRzIENsb3VkV2F0Y2hTZXJ2aWNlRXhjZXB0aW9uJDEge1xuICAgIG5hbWUgPSBcIkNvbmN1cnJlbnRNb2RpZmljYXRpb25FeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIE1lc3NhZ2U7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkNvbmN1cnJlbnRNb2RpZmljYXRpb25FeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgQ29uY3VycmVudE1vZGlmaWNhdGlvbkV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLk1lc3NhZ2UgPSBvcHRzLk1lc3NhZ2U7XG4gICAgfVxufTtcbmxldCBDb25mbGljdEV4Y2VwdGlvbiQxID0gY2xhc3MgQ29uZmxpY3RFeGNlcHRpb24gZXh0ZW5kcyBDbG91ZFdhdGNoU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJDb25mbGljdEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgTWVzc2FnZTtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiQ29uZmxpY3RFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgQ29uZmxpY3RFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5NZXNzYWdlID0gb3B0cy5NZXNzYWdlO1xuICAgIH1cbn07XG5sZXQgRGFzaGJvYXJkSW52YWxpZElucHV0RXJyb3IkMSA9IGNsYXNzIERhc2hib2FyZEludmFsaWRJbnB1dEVycm9yIGV4dGVuZHMgQ2xvdWRXYXRjaFNlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiRGFzaGJvYXJkSW52YWxpZElucHV0RXJyb3JcIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGRhc2hib2FyZFZhbGlkYXRpb25NZXNzYWdlcztcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiRGFzaGJvYXJkSW52YWxpZElucHV0RXJyb3JcIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgRGFzaGJvYXJkSW52YWxpZElucHV0RXJyb3IucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5kYXNoYm9hcmRWYWxpZGF0aW9uTWVzc2FnZXMgPSBvcHRzLmRhc2hib2FyZFZhbGlkYXRpb25NZXNzYWdlcztcbiAgICB9XG59O1xubGV0IERhc2hib2FyZE5vdEZvdW5kRXJyb3IkMSA9IGNsYXNzIERhc2hib2FyZE5vdEZvdW5kRXJyb3IgZXh0ZW5kcyBDbG91ZFdhdGNoU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJEYXNoYm9hcmROb3RGb3VuZEVycm9yXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiRGFzaGJvYXJkTm90Rm91bmRFcnJvclwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBEYXNoYm9hcmROb3RGb3VuZEVycm9yLnByb3RvdHlwZSk7XG4gICAgfVxufTtcbmxldCBSZXNvdXJjZU5vdEZvdW5kJDEgPSBjbGFzcyBSZXNvdXJjZU5vdEZvdW5kIGV4dGVuZHMgQ2xvdWRXYXRjaFNlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiUmVzb3VyY2VOb3RGb3VuZFwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIlJlc291cmNlTm90Rm91bmRcIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgUmVzb3VyY2VOb3RGb3VuZC5wcm90b3R5cGUpO1xuICAgIH1cbn07XG5sZXQgSW50ZXJuYWxTZXJ2aWNlRmF1bHQkMSA9IGNsYXNzIEludGVybmFsU2VydmljZUZhdWx0IGV4dGVuZHMgQ2xvdWRXYXRjaFNlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiSW50ZXJuYWxTZXJ2aWNlRmF1bHRcIjtcbiAgICAkZmF1bHQgPSBcInNlcnZlclwiO1xuICAgIE1lc3NhZ2U7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkludGVybmFsU2VydmljZUZhdWx0XCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwic2VydmVyXCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEludGVybmFsU2VydmljZUZhdWx0LnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuTWVzc2FnZSA9IG9wdHMuTWVzc2FnZTtcbiAgICB9XG59O1xubGV0IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkV4Y2VwdGlvbiQxID0gY2xhc3MgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXhjZXB0aW9uIGV4dGVuZHMgQ2xvdWRXYXRjaFNlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn07XG5sZXQgSW52YWxpZFBhcmFtZXRlclZhbHVlRXhjZXB0aW9uJDEgPSBjbGFzcyBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFeGNlcHRpb24gZXh0ZW5kcyBDbG91ZFdhdGNoU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJJbnZhbGlkUGFyYW1ldGVyVmFsdWVFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJJbnZhbGlkUGFyYW1ldGVyVmFsdWVFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgSW52YWxpZFBhcmFtZXRlclZhbHVlRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgfVxufTtcbmxldCBNaXNzaW5nUmVxdWlyZWRQYXJhbWV0ZXJFeGNlcHRpb24kMSA9IGNsYXNzIE1pc3NpbmdSZXF1aXJlZFBhcmFtZXRlckV4Y2VwdGlvbiBleHRlbmRzIENsb3VkV2F0Y2hTZXJ2aWNlRXhjZXB0aW9uJDEge1xuICAgIG5hbWUgPSBcIk1pc3NpbmdSZXF1aXJlZFBhcmFtZXRlckV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIk1pc3NpbmdSZXF1aXJlZFBhcmFtZXRlckV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBNaXNzaW5nUmVxdWlyZWRQYXJhbWV0ZXJFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59O1xubGV0IFJlc291cmNlTm90Rm91bmRFeGNlcHRpb24kMSA9IGNsYXNzIFJlc291cmNlTm90Rm91bmRFeGNlcHRpb24gZXh0ZW5kcyBDbG91ZFdhdGNoU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBSZXNvdXJjZVR5cGU7XG4gICAgUmVzb3VyY2VJZDtcbiAgICBNZXNzYWdlO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFJlc291cmNlTm90Rm91bmRFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5SZXNvdXJjZVR5cGUgPSBvcHRzLlJlc291cmNlVHlwZTtcbiAgICAgICAgdGhpcy5SZXNvdXJjZUlkID0gb3B0cy5SZXNvdXJjZUlkO1xuICAgICAgICB0aGlzLk1lc3NhZ2UgPSBvcHRzLk1lc3NhZ2U7XG4gICAgfVxufTtcbmxldCBJbnZhbGlkTmV4dFRva2VuJDEgPSBjbGFzcyBJbnZhbGlkTmV4dFRva2VuIGV4dGVuZHMgQ2xvdWRXYXRjaFNlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiSW52YWxpZE5leHRUb2tlblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkludmFsaWROZXh0VG9rZW5cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgSW52YWxpZE5leHRUb2tlbi5wcm90b3R5cGUpO1xuICAgIH1cbn07XG5sZXQgTGltaXRFeGNlZWRlZEV4Y2VwdGlvbiQxID0gY2xhc3MgTGltaXRFeGNlZWRlZEV4Y2VwdGlvbiBleHRlbmRzIENsb3VkV2F0Y2hTZXJ2aWNlRXhjZXB0aW9uJDEge1xuICAgIG5hbWUgPSBcIkxpbWl0RXhjZWVkZWRFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIE1lc3NhZ2U7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkxpbWl0RXhjZWVkZWRFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgTGltaXRFeGNlZWRlZEV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLk1lc3NhZ2UgPSBvcHRzLk1lc3NhZ2U7XG4gICAgfVxufTtcbmxldCBMaW1pdEV4Y2VlZGVkRmF1bHQkMSA9IGNsYXNzIExpbWl0RXhjZWVkZWRGYXVsdCBleHRlbmRzIENsb3VkV2F0Y2hTZXJ2aWNlRXhjZXB0aW9uJDEge1xuICAgIG5hbWUgPSBcIkxpbWl0RXhjZWVkZWRGYXVsdFwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkxpbWl0RXhjZWVkZWRGYXVsdFwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBMaW1pdEV4Y2VlZGVkRmF1bHQucHJvdG90eXBlKTtcbiAgICB9XG59O1xubGV0IEludmFsaWRGb3JtYXRGYXVsdCQxID0gY2xhc3MgSW52YWxpZEZvcm1hdEZhdWx0IGV4dGVuZHMgQ2xvdWRXYXRjaFNlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiSW52YWxpZEZvcm1hdEZhdWx0XCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiSW52YWxpZEZvcm1hdEZhdWx0XCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEludmFsaWRGb3JtYXRGYXVsdC5wcm90b3R5cGUpO1xuICAgIH1cbn07XG5cbmNvbnN0IF9BID0gXCJBdmVyYWdlXCI7XG5jb25zdCBfQUEgPSBcIkFsYXJtQWN0aW9uc1wiO1xuY29uc3QgX0FBViA9IFwiQXBwcm94aW1hdGVBZ2dyZWdhdGVWYWx1ZVwiO1xuY29uc3QgX0FBbCA9IFwiQWxhcm1Bcm5cIjtcbmNvbnN0IF9BQyA9IFwiQWxhcm1Db250cmlidXRvclwiO1xuY29uc3QgX0FDQSA9IFwiQWxhcm1Db250cmlidXRvckF0dHJpYnV0ZXNcIjtcbmNvbnN0IF9BQ0kgPSBcIkFsYXJtQ29udHJpYnV0b3JJZFwiO1xuY29uc3QgX0FDVVQgPSBcIkFsYXJtQ29uZmlndXJhdGlvblVwZGF0ZWRUaW1lc3RhbXBcIjtcbmNvbnN0IF9BQ2wgPSBcIkFsYXJtQ29udHJpYnV0b3JzXCI7XG5jb25zdCBfQUQgPSBcIkFub21hbHlEZXRlY3RvclwiO1xuY29uc3QgX0FEQyA9IFwiQW5vbWFseURldGVjdG9yQ29uZmlndXJhdGlvblwiO1xuY29uc3QgX0FERVRSID0gXCJBbm9tYWx5RGV0ZWN0b3JFeGNsdWRlZFRpbWVSYW5nZXNcIjtcbmNvbnN0IF9BRFQgPSBcIkFub21hbHlEZXRlY3RvclR5cGVzXCI7XG5jb25zdCBfQURsID0gXCJBbGFybURlc2NyaXB0aW9uXCI7XG5jb25zdCBfQURuID0gXCJBbm9tYWx5RGV0ZWN0b3JzXCI7XG5jb25zdCBfQUUgPSBcIkFjdGlvbnNFbmFibGVkXCI7XG5jb25zdCBfQUhJID0gXCJBbGFybUhpc3RvcnlJdGVtXCI7XG5jb25zdCBfQUhJbCA9IFwiQWxhcm1IaXN0b3J5SXRlbXNcIjtcbmNvbnN0IF9BSSA9IFwiQWNjb3VudElkXCI7XG5jb25zdCBfQU4gPSBcIkFsYXJtTmFtZVwiO1xuY29uc3QgX0FOUCA9IFwiQWxhcm1OYW1lUHJlZml4XCI7XG5jb25zdCBfQU5sID0gXCJBbGFybU5hbWVzXCI7XG5jb25zdCBfQU9UTCA9IFwiQXBwbHlPblRyYW5zZm9ybWVkTG9nc1wiO1xuY29uc3QgX0FQID0gXCJBY3Rpb25QcmVmaXhcIjtcbmNvbnN0IF9BUiA9IFwiQWxhcm1SdWxlXCI7XG5jb25zdCBfQVMgPSBcIkFjdGlvbnNTdXBwcmVzc29yXCI7XG5jb25zdCBfQVNCID0gXCJBY3Rpb25zU3VwcHJlc3NlZEJ5XCI7XG5jb25zdCBfQVNFUCA9IFwiQWN0aW9uc1N1cHByZXNzb3JFeHRlbnNpb25QZXJpb2RcIjtcbmNvbnN0IF9BU1IgPSBcIkFjdGlvbnNTdXBwcmVzc2VkUmVhc29uXCI7XG5jb25zdCBfQVNXUCA9IFwiQWN0aW9uc1N1cHByZXNzb3JXYWl0UGVyaW9kXCI7XG5jb25zdCBfQVNkID0gXCJBZGRpdGlvbmFsU3RhdGlzdGljc1wiO1xuY29uc3QgX0FTZyA9IFwiQWdncmVnYXRpb25TdGF0aXN0aWNcIjtcbmNvbnN0IF9BVCA9IFwiQWxhcm1UeXBlXCI7XG5jb25zdCBfQVRsID0gXCJBbGFybVR5cGVzXCI7XG5jb25zdCBfQVVDID0gXCJBcHByb3hpbWF0ZVVuaXF1ZUNvdW50XCI7XG5jb25zdCBfQVYgPSBcIkFnZ3JlZ2F0ZVZhbHVlXCI7XG5jb25zdCBfQVZwID0gXCJBcHByb3hpbWF0ZVZhbHVlXCI7XG5jb25zdCBfQXIgPSBcIkFyblwiO1xuY29uc3QgX0F0ID0gXCJBdHRyaWJ1dGVzXCI7XG5jb25zdCBfQkYgPSBcIkJhdGNoRmFpbHVyZXNcIjtcbmNvbnN0IF9DID0gXCJDb25maWd1cmF0aW9uXCI7XG5jb25zdCBfQ0EgPSBcIkNvbnRyaWJ1dG9yQXR0cmlidXRlc1wiO1xuY29uc3QgX0NBbyA9IFwiQ29tcG9zaXRlQWxhcm1cIjtcbmNvbnN0IF9DQW9tID0gXCJDb21wb3NpdGVBbGFybXNcIjtcbmNvbnN0IF9DRCA9IFwiQ3JlYXRpb25EYXRlXCI7XG5jb25zdCBfQ0UgPSBcIkNvbmZsaWN0RXhjZXB0aW9uXCI7XG5jb25zdCBfQ0kgPSBcIkNvbnRyaWJ1dG9ySWRcIjtcbmNvbnN0IF9DTUUgPSBcIkNvbmN1cnJlbnRNb2RpZmljYXRpb25FeGNlcHRpb25cIjtcbmNvbnN0IF9DTyA9IFwiQ29tcGFyaXNvbk9wZXJhdG9yXCI7XG5jb25zdCBfQ09BTiA9IFwiQ2hpbGRyZW5PZkFsYXJtTmFtZVwiO1xuY29uc3QgX0NvID0gXCJDb250cmlidXRvcnNcIjtcbmNvbnN0IF9Db2QgPSBcIkNvZGVcIjtcbmNvbnN0IF9Db3UgPSBcIkNvdW50c1wiO1xuY29uc3QgX0QgPSBcIkRpbWVuc2lvbnNcIjtcbmNvbnN0IF9EQSA9IFwiRGFzaGJvYXJkQXJuXCI7XG5jb25zdCBfREFBID0gXCJEaXNhYmxlQWxhcm1BY3Rpb25zXCI7XG5jb25zdCBfREFBSSA9IFwiRGlzYWJsZUFsYXJtQWN0aW9uc0lucHV0XCI7XG5jb25zdCBfREFDID0gXCJEZXNjcmliZUFsYXJtQ29udHJpYnV0b3JzXCI7XG5jb25zdCBfREFDSSA9IFwiRGVzY3JpYmVBbGFybUNvbnRyaWJ1dG9yc0lucHV0XCI7XG5jb25zdCBfREFDTyA9IFwiRGVzY3JpYmVBbGFybUNvbnRyaWJ1dG9yc091dHB1dFwiO1xuY29uc3QgX0RBRCA9IFwiRGVsZXRlQW5vbWFseURldGVjdG9yXCI7XG5jb25zdCBfREFESSA9IFwiRGVsZXRlQW5vbWFseURldGVjdG9ySW5wdXRcIjtcbmNvbnN0IF9EQURJZSA9IFwiRGVzY3JpYmVBbm9tYWx5RGV0ZWN0b3JzSW5wdXRcIjtcbmNvbnN0IF9EQURPID0gXCJEZWxldGVBbm9tYWx5RGV0ZWN0b3JPdXRwdXRcIjtcbmNvbnN0IF9EQURPZSA9IFwiRGVzY3JpYmVBbm9tYWx5RGV0ZWN0b3JzT3V0cHV0XCI7XG5jb25zdCBfREFEZSA9IFwiRGVzY3JpYmVBbm9tYWx5RGV0ZWN0b3JzXCI7XG5jb25zdCBfREFGTSA9IFwiRGVzY3JpYmVBbGFybXNGb3JNZXRyaWNcIjtcbmNvbnN0IF9EQUZNSSA9IFwiRGVzY3JpYmVBbGFybXNGb3JNZXRyaWNJbnB1dFwiO1xuY29uc3QgX0RBRk1PID0gXCJEZXNjcmliZUFsYXJtc0Zvck1ldHJpY091dHB1dFwiO1xuY29uc3QgX0RBSCA9IFwiRGVzY3JpYmVBbGFybUhpc3RvcnlcIjtcbmNvbnN0IF9EQUhJID0gXCJEZXNjcmliZUFsYXJtSGlzdG9yeUlucHV0XCI7XG5jb25zdCBfREFITyA9IFwiRGVzY3JpYmVBbGFybUhpc3RvcnlPdXRwdXRcIjtcbmNvbnN0IF9EQUkgPSBcIkRlbGV0ZUFsYXJtc0lucHV0XCI7XG5jb25zdCBfREFJZSA9IFwiRGVzY3JpYmVBbGFybXNJbnB1dFwiO1xuY29uc3QgX0RBTyA9IFwiRGVzY3JpYmVBbGFybXNPdXRwdXRcIjtcbmNvbnN0IF9EQWUgPSBcIkRlbGV0ZUFsYXJtc1wiO1xuY29uc3QgX0RBZXMgPSBcIkRlc2NyaWJlQWxhcm1zXCI7XG5jb25zdCBfREIgPSBcIkRhc2hib2FyZEJvZHlcIjtcbmNvbnN0IF9ERCA9IFwiRGVsZXRlRGFzaGJvYXJkc1wiO1xuY29uc3QgX0RESSA9IFwiRGVsZXRlRGFzaGJvYXJkc0lucHV0XCI7XG5jb25zdCBfRERPID0gXCJEZWxldGVEYXNoYm9hcmRzT3V0cHV0XCI7XG5jb25zdCBfREUgPSBcIkRhc2hib2FyZEVudHJ5XCI7XG5jb25zdCBfREVhID0gXCJEYXNoYm9hcmRFbnRyaWVzXCI7XG5jb25zdCBfREYgPSBcIkRpbWVuc2lvbkZpbHRlclwiO1xuY29uc3QgX0RGaSA9IFwiRGltZW5zaW9uRmlsdGVyc1wiO1xuY29uc3QgX0RJSUUgPSBcIkRhc2hib2FyZEludmFsaWRJbnB1dEVycm9yXCI7XG5jb25zdCBfRElSID0gXCJEZWxldGVJbnNpZ2h0UnVsZXNcIjtcbmNvbnN0IF9ESVJJID0gXCJEZWxldGVJbnNpZ2h0UnVsZXNJbnB1dFwiO1xuY29uc3QgX0RJUkllID0gXCJEZXNjcmliZUluc2lnaHRSdWxlc0lucHV0XCI7XG5jb25zdCBfRElSSWkgPSBcIkRpc2FibGVJbnNpZ2h0UnVsZXNJbnB1dFwiO1xuY29uc3QgX0RJUk8gPSBcIkRlbGV0ZUluc2lnaHRSdWxlc091dHB1dFwiO1xuY29uc3QgX0RJUk9lID0gXCJEZXNjcmliZUluc2lnaHRSdWxlc091dHB1dFwiO1xuY29uc3QgX0RJUk9pID0gXCJEaXNhYmxlSW5zaWdodFJ1bGVzT3V0cHV0XCI7XG5jb25zdCBfRElSZSA9IFwiRGVzY3JpYmVJbnNpZ2h0UnVsZXNcIjtcbmNvbnN0IF9ESVJpID0gXCJEaXNhYmxlSW5zaWdodFJ1bGVzXCI7XG5jb25zdCBfRE1TID0gXCJEZWxldGVNZXRyaWNTdHJlYW1cIjtcbmNvbnN0IF9ETVNJID0gXCJEZWxldGVNZXRyaWNTdHJlYW1JbnB1dFwiO1xuY29uc3QgX0RNU08gPSBcIkRlbGV0ZU1ldHJpY1N0cmVhbU91dHB1dFwiO1xuY29uc3QgX0ROID0gXCJEYXNoYm9hcmROYW1lXCI7XG5jb25zdCBfRE5GRSA9IFwiRGFzaGJvYXJkTm90Rm91bmRFcnJvclwiO1xuY29uc3QgX0ROUCA9IFwiRGFzaGJvYXJkTmFtZVByZWZpeFwiO1xuY29uc3QgX0ROYSA9IFwiRGFzaGJvYXJkTmFtZXNcIjtcbmNvbnN0IF9EUCA9IFwiRGF0YVBhdGhcIjtcbmNvbnN0IF9EVEEgPSBcIkRhdGFwb2ludHNUb0FsYXJtXCI7XG5jb25zdCBfRFZNID0gXCJEYXNoYm9hcmRWYWxpZGF0aW9uTWVzc2FnZVwiO1xuY29uc3QgX0RWTWEgPSBcIkRhc2hib2FyZFZhbGlkYXRpb25NZXNzYWdlc1wiO1xuY29uc3QgX0RhID0gXCJEYXRhcG9pbnRcIjtcbmNvbnN0IF9EYXQgPSBcIkRhdGFwb2ludHNcIjtcbmNvbnN0IF9EZSA9IFwiRGVmaW5pdGlvblwiO1xuY29uc3QgX0RpID0gXCJEaW1lbnNpb25cIjtcbmNvbnN0IF9FID0gXCJFbnRpdHlcIjtcbmNvbnN0IF9FQUEgPSBcIkVuYWJsZUFsYXJtQWN0aW9uc1wiO1xuY29uc3QgX0VBQUkgPSBcIkVuYWJsZUFsYXJtQWN0aW9uc0lucHV0XCI7XG5jb25zdCBfRUQgPSBcIkVuZERhdGVcIjtcbmNvbnN0IF9FRiA9IFwiRXhjbHVkZUZpbHRlcnNcIjtcbmNvbnN0IF9FSVIgPSBcIkVuYWJsZUluc2lnaHRSdWxlc1wiO1xuY29uc3QgX0VJUkkgPSBcIkVuYWJsZUluc2lnaHRSdWxlc0lucHV0XCI7XG5jb25zdCBfRUlSTyA9IFwiRW5hYmxlSW5zaWdodFJ1bGVzT3V0cHV0XCI7XG5jb25zdCBfRUxTQ1AgPSBcIkV2YWx1YXRlTG93U2FtcGxlQ291bnRQZXJjZW50aWxlXCI7XG5jb25zdCBfRU1EID0gXCJFbnRpdHlNZXRyaWNEYXRhXCI7XG5jb25zdCBfRU1ETCA9IFwiRW50aXR5TWV0cmljRGF0YUxpc3RcIjtcbmNvbnN0IF9FUCA9IFwiRXZhbHVhdGlvblBlcmlvZHNcIjtcbmNvbnN0IF9FUyA9IFwiRXh0ZW5kZWRTdGF0aXN0aWNzXCI7XG5jb25zdCBfRVN2ID0gXCJFdmFsdWF0aW9uU3RhdGVcIjtcbmNvbnN0IF9FU3ggPSBcIkV4dGVuZGVkU3RhdGlzdGljXCI7XG5jb25zdCBfRVQgPSBcIkVuZFRpbWVcIjtcbmNvbnN0IF9FVFIgPSBcIkV4Y2x1ZGVkVGltZVJhbmdlc1wiO1xuY29uc3QgX0VUeCA9IFwiRXhjZXB0aW9uVHlwZVwiO1xuY29uc3QgX0VuID0gXCJFbnRyaWVzXCI7XG5jb25zdCBfRXggPSBcIkV4cHJlc3Npb25cIjtcbmNvbnN0IF9GID0gXCJGYWlsdXJlc1wiO1xuY29uc3QgX0ZBID0gXCJGaXJlaG9zZUFyblwiO1xuY29uc3QgX0ZDID0gXCJGYWlsdXJlQ29kZVwiO1xuY29uc3QgX0ZEID0gXCJGYWlsdXJlRGVzY3JpcHRpb25cIjtcbmNvbnN0IF9GUiA9IFwiRmFpbHVyZVJlc291cmNlXCI7XG5jb25zdCBfR0QgPSBcIkdldERhc2hib2FyZFwiO1xuY29uc3QgX0dESSA9IFwiR2V0RGFzaGJvYXJkSW5wdXRcIjtcbmNvbnN0IF9HRE8gPSBcIkdldERhc2hib2FyZE91dHB1dFwiO1xuY29uc3QgX0dJUlIgPSBcIkdldEluc2lnaHRSdWxlUmVwb3J0XCI7XG5jb25zdCBfR0lSUkkgPSBcIkdldEluc2lnaHRSdWxlUmVwb3J0SW5wdXRcIjtcbmNvbnN0IF9HSVJSTyA9IFwiR2V0SW5zaWdodFJ1bGVSZXBvcnRPdXRwdXRcIjtcbmNvbnN0IF9HTUQgPSBcIkdldE1ldHJpY0RhdGFcIjtcbmNvbnN0IF9HTURJID0gXCJHZXRNZXRyaWNEYXRhSW5wdXRcIjtcbmNvbnN0IF9HTURPID0gXCJHZXRNZXRyaWNEYXRhT3V0cHV0XCI7XG5jb25zdCBfR01TID0gXCJHZXRNZXRyaWNTdGF0aXN0aWNzXCI7XG5jb25zdCBfR01TSSA9IFwiR2V0TWV0cmljU3RhdGlzdGljc0lucHV0XCI7XG5jb25zdCBfR01TSWUgPSBcIkdldE1ldHJpY1N0cmVhbUlucHV0XCI7XG5jb25zdCBfR01TTyA9IFwiR2V0TWV0cmljU3RhdGlzdGljc091dHB1dFwiO1xuY29uc3QgX0dNU09lID0gXCJHZXRNZXRyaWNTdHJlYW1PdXRwdXRcIjtcbmNvbnN0IF9HTVNlID0gXCJHZXRNZXRyaWNTdHJlYW1cIjtcbmNvbnN0IF9HTVdJID0gXCJHZXRNZXRyaWNXaWRnZXRJbWFnZVwiO1xuY29uc3QgX0dNV0lJID0gXCJHZXRNZXRyaWNXaWRnZXRJbWFnZUlucHV0XCI7XG5jb25zdCBfR01XSU8gPSBcIkdldE1ldHJpY1dpZGdldEltYWdlT3V0cHV0XCI7XG5jb25zdCBfSEQgPSBcIkhpc3RvcnlEYXRhXCI7XG5jb25zdCBfSElUID0gXCJIaXN0b3J5SXRlbVR5cGVcIjtcbmNvbnN0IF9IUyA9IFwiSGlzdG9yeVN1bW1hcnlcIjtcbmNvbnN0IF9JID0gXCJJZFwiO1xuY29uc3QgX0lEQSA9IFwiSW5zdWZmaWNpZW50RGF0YUFjdGlvbnNcIjtcbmNvbnN0IF9JRiA9IFwiSW5jbHVkZUZpbHRlcnNcIjtcbmNvbnN0IF9JRkYgPSBcIkludmFsaWRGb3JtYXRGYXVsdFwiO1xuY29uc3QgX0lMQSA9IFwiSW5jbHVkZUxpbmtlZEFjY291bnRzXCI7XG5jb25zdCBfSUxBTSA9IFwiSW5jbHVkZUxpbmtlZEFjY291bnRzTWV0cmljc1wiO1xuY29uc3QgX0lNID0gXCJJbmNsdWRlTWV0cmljc1wiO1xuY29uc3QgX0lOVCA9IFwiSW52YWxpZE5leHRUb2tlblwiO1xuY29uc3QgX0lQQ0UgPSBcIkludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkV4Y2VwdGlvblwiO1xuY29uc3QgX0lQVkUgPSBcIkludmFsaWRQYXJhbWV0ZXJWYWx1ZUV4Y2VwdGlvblwiO1xuY29uc3QgX0lSID0gXCJJbnNpZ2h0UnVsZXNcIjtcbmNvbnN0IF9JUkMgPSBcIkluc2lnaHRSdWxlQ29udHJpYnV0b3JcIjtcbmNvbnN0IF9JUkNEID0gXCJJbnNpZ2h0UnVsZUNvbnRyaWJ1dG9yRGF0YXBvaW50XCI7XG5jb25zdCBfSVJDRG4gPSBcIkluc2lnaHRSdWxlQ29udHJpYnV0b3JEYXRhcG9pbnRzXCI7XG5jb25zdCBfSVJDbiA9IFwiSW5zaWdodFJ1bGVDb250cmlidXRvcnNcIjtcbmNvbnN0IF9JUk1EID0gXCJJbnNpZ2h0UnVsZU1ldHJpY0RhdGFwb2ludFwiO1xuY29uc3QgX0lSTURuID0gXCJJbnNpZ2h0UnVsZU1ldHJpY0RhdGFwb2ludHNcIjtcbmNvbnN0IF9JUm4gPSBcIkluc2lnaHRSdWxlXCI7XG5jb25zdCBfSVNGID0gXCJJbnRlcm5hbFNlcnZpY2VGYXVsdFwiO1xuY29uc3QgX0sgPSBcIktleXNcIjtcbmNvbnN0IF9LQSA9IFwiS2V5QXR0cmlidXRlc1wiO1xuY29uc3QgX0tMID0gXCJLZXlMYWJlbHNcIjtcbmNvbnN0IF9LZSA9IFwiS2V5XCI7XG5jb25zdCBfTCA9IFwiTGFiZWxcIjtcbmNvbnN0IF9MRCA9IFwiTGlzdERhc2hib2FyZHNcIjtcbmNvbnN0IF9MREkgPSBcIkxpc3REYXNoYm9hcmRzSW5wdXRcIjtcbmNvbnN0IF9MRE8gPSBcIkxpc3REYXNoYm9hcmRzT3V0cHV0XCI7XG5jb25zdCBfTEVFID0gXCJMaW1pdEV4Y2VlZGVkRXhjZXB0aW9uXCI7XG5jb25zdCBfTEVGID0gXCJMaW1pdEV4Y2VlZGVkRmF1bHRcIjtcbmNvbnN0IF9MTSA9IFwiTGFzdE1vZGlmaWVkXCI7XG5jb25zdCBfTE1JID0gXCJMaXN0TWV0cmljc0lucHV0XCI7XG5jb25zdCBfTE1JUiA9IFwiTGlzdE1hbmFnZWRJbnNpZ2h0UnVsZXNcIjtcbmNvbnN0IF9MTUlSSSA9IFwiTGlzdE1hbmFnZWRJbnNpZ2h0UnVsZXNJbnB1dFwiO1xuY29uc3QgX0xNSVJPID0gXCJMaXN0TWFuYWdlZEluc2lnaHRSdWxlc091dHB1dFwiO1xuY29uc3QgX0xNTyA9IFwiTGlzdE1ldHJpY3NPdXRwdXRcIjtcbmNvbnN0IF9MTVMgPSBcIkxpc3RNZXRyaWNTdHJlYW1zXCI7XG5jb25zdCBfTE1TSSA9IFwiTGlzdE1ldHJpY1N0cmVhbXNJbnB1dFwiO1xuY29uc3QgX0xNU08gPSBcIkxpc3RNZXRyaWNTdHJlYW1zT3V0cHV0XCI7XG5jb25zdCBfTE1pID0gXCJMaXN0TWV0cmljc1wiO1xuY29uc3QgX0xPID0gXCJMYWJlbE9wdGlvbnNcIjtcbmNvbnN0IF9MVEZSID0gXCJMaXN0VGFnc0ZvclJlc291cmNlXCI7XG5jb25zdCBfTFRGUkkgPSBcIkxpc3RUYWdzRm9yUmVzb3VyY2VJbnB1dFwiO1xuY29uc3QgX0xURlJPID0gXCJMaXN0VGFnc0ZvclJlc291cmNlT3V0cHV0XCI7XG5jb25zdCBfTFVEID0gXCJMYXN0VXBkYXRlRGF0ZVwiO1xuY29uc3QgX00gPSBcIk1lc3NhZ2VcIjtcbmNvbnN0IF9NQSA9IFwiTWV0cmljQWxhcm1zXCI7XG5jb25zdCBfTUFlID0gXCJNZXRyaWNBbGFybVwiO1xuY29uc3QgX01DID0gXCJNZXRyaWNDaGFyYWN0ZXJpc3RpY3NcIjtcbmNvbnN0IF9NQ0MgPSBcIk1heENvbnRyaWJ1dG9yQ291bnRcIjtcbmNvbnN0IF9NQ1YgPSBcIk1heENvbnRyaWJ1dG9yVmFsdWVcIjtcbmNvbnN0IF9NRCA9IFwiTWV0cmljRGF0YVwiO1xuY29uc3QgX01EUSA9IFwiTWV0cmljRGF0YVF1ZXJpZXNcIjtcbmNvbnN0IF9NRFFlID0gXCJNZXRyaWNEYXRhUXVlcnlcIjtcbmNvbnN0IF9NRFIgPSBcIk1ldHJpY0RhdGFSZXN1bHRzXCI7XG5jb25zdCBfTURSTSA9IFwiTWV0cmljRGF0YVJlc3VsdE1lc3NhZ2VzXCI7XG5jb25zdCBfTURSZSA9IFwiTWV0cmljRGF0YVJlc3VsdFwiO1xuY29uc3QgX01EYSA9IFwiTWF4RGF0YXBvaW50c1wiO1xuY29uc3QgX01EZSA9IFwiTWV0cmljRGF0YXBvaW50c1wiO1xuY29uc3QgX01EZXMgPSBcIk1lc3NhZ2VEYXRhXCI7XG5jb25zdCBfTURldCA9IFwiTWV0cmljRGF0dW1cIjtcbmNvbnN0IF9NTUFEID0gXCJNZXRyaWNNYXRoQW5vbWFseURldGVjdG9yXCI7XG5jb25zdCBfTU4gPSBcIk1ldHJpY05hbWVcIjtcbmNvbnN0IF9NTmUgPSBcIk1ldHJpY05hbWVzXCI7XG5jb25zdCBfTVIgPSBcIk1heFJlY29yZHNcIjtcbmNvbnN0IF9NUkQgPSBcIk1hbmFnZWRSdWxlRGVzY3JpcHRpb25cIjtcbmNvbnN0IF9NUkRhID0gXCJNYW5hZ2VkUnVsZURlc2NyaXB0aW9uc1wiO1xuY29uc3QgX01SUEUgPSBcIk1pc3NpbmdSZXF1aXJlZFBhcmFtZXRlckV4Y2VwdGlvblwiO1xuY29uc3QgX01SUyA9IFwiTWFuYWdlZFJ1bGVTdGF0ZVwiO1xuY29uc3QgX01SYSA9IFwiTWF4UmVzdWx0c1wiO1xuY29uc3QgX01SYW4gPSBcIk1hbmFnZWRSdWxlXCI7XG5jb25zdCBfTVJhbmEgPSBcIk1hbmFnZWRSdWxlc1wiO1xuY29uc3QgX01TID0gXCJNZXRyaWNTdGF0XCI7XG5jb25zdCBfTVNFID0gXCJNZXRyaWNTdHJlYW1FbnRyeVwiO1xuY29uc3QgX01TRWUgPSBcIk1ldHJpY1N0cmVhbUVudHJpZXNcIjtcbmNvbnN0IF9NU0YgPSBcIk1ldHJpY1N0cmVhbUZpbHRlclwiO1xuY29uc3QgX01TRmUgPSBcIk1ldHJpY1N0cmVhbUZpbHRlcnNcIjtcbmNvbnN0IF9NU1NDID0gXCJNZXRyaWNTdHJlYW1TdGF0aXN0aWNzQ29uZmlndXJhdGlvblwiO1xuY29uc3QgX01TU0NlID0gXCJNZXRyaWNTdHJlYW1TdGF0aXN0aWNzQ29uZmlndXJhdGlvbnNcIjtcbmNvbnN0IF9NU1NJTSA9IFwiTWV0cmljU3RyZWFtU3RhdGlzdGljc0luY2x1ZGVNZXRyaWNzXCI7XG5jb25zdCBfTVNTTSA9IFwiTWV0cmljU3RyZWFtU3RhdGlzdGljc01ldHJpY1wiO1xuY29uc3QgX01UID0gXCJNZXRyaWNUaW1lem9uZVwiO1xuY29uc3QgX01XID0gXCJNZXRyaWNXaWRnZXRcIjtcbmNvbnN0IF9NV0kgPSBcIk1ldHJpY1dpZGdldEltYWdlXCI7XG5jb25zdCBfTWEgPSBcIk1heGltdW1cIjtcbmNvbnN0IF9NZSA9IFwiTWV0cmljc1wiO1xuY29uc3QgX01lcyA9IFwiTWVzc2FnZXNcIjtcbmNvbnN0IF9NZXQgPSBcIk1ldHJpY1wiO1xuY29uc3QgX01pID0gXCJNaW5pbXVtXCI7XG5jb25zdCBfTiA9IFwiTmFtZXNwYWNlXCI7XG5jb25zdCBfTlQgPSBcIk5leHRUb2tlblwiO1xuY29uc3QgX05hID0gXCJOYW1lXCI7XG5jb25zdCBfTmFtID0gXCJOYW1lc1wiO1xuY29uc3QgX09BID0gXCJPd25pbmdBY2NvdW50XCI7XG5jb25zdCBfT0F3ID0gXCJPd25pbmdBY2NvdW50c1wiO1xuY29uc3QgX09CID0gXCJPcmRlckJ5XCI7XG5jb25zdCBfT0YgPSBcIk91dHB1dEZvcm1hdFwiO1xuY29uc3QgX09LQSA9IFwiT0tBY3Rpb25zXCI7XG5jb25zdCBfUCA9IFwiUGVyaW9kXCI7XG5jb25zdCBfUEFEID0gXCJQdXRBbm9tYWx5RGV0ZWN0b3JcIjtcbmNvbnN0IF9QQURJID0gXCJQdXRBbm9tYWx5RGV0ZWN0b3JJbnB1dFwiO1xuY29uc3QgX1BBRE8gPSBcIlB1dEFub21hbHlEZXRlY3Rvck91dHB1dFwiO1xuY29uc3QgX1BDQSA9IFwiUHV0Q29tcG9zaXRlQWxhcm1cIjtcbmNvbnN0IF9QQ0FJID0gXCJQdXRDb21wb3NpdGVBbGFybUlucHV0XCI7XG5jb25zdCBfUEQgPSBcIlB1dERhc2hib2FyZFwiO1xuY29uc3QgX1BESSA9IFwiUHV0RGFzaGJvYXJkSW5wdXRcIjtcbmNvbnN0IF9QRE8gPSBcIlB1dERhc2hib2FyZE91dHB1dFwiO1xuY29uc3QgX1BGID0gXCJQYXJ0aWFsRmFpbHVyZVwiO1xuY29uc3QgX1BJUiA9IFwiUHV0SW5zaWdodFJ1bGVcIjtcbmNvbnN0IF9QSVJJID0gXCJQdXRJbnNpZ2h0UnVsZUlucHV0XCI7XG5jb25zdCBfUElSTyA9IFwiUHV0SW5zaWdodFJ1bGVPdXRwdXRcIjtcbmNvbnN0IF9QTUEgPSBcIlB1dE1ldHJpY0FsYXJtXCI7XG5jb25zdCBfUE1BSSA9IFwiUHV0TWV0cmljQWxhcm1JbnB1dFwiO1xuY29uc3QgX1BNRCA9IFwiUHV0TWV0cmljRGF0YVwiO1xuY29uc3QgX1BNREkgPSBcIlB1dE1ldHJpY0RhdGFJbnB1dFwiO1xuY29uc3QgX1BNSVIgPSBcIlB1dE1hbmFnZWRJbnNpZ2h0UnVsZXNcIjtcbmNvbnN0IF9QTUlSSSA9IFwiUHV0TWFuYWdlZEluc2lnaHRSdWxlc0lucHV0XCI7XG5jb25zdCBfUE1JUk8gPSBcIlB1dE1hbmFnZWRJbnNpZ2h0UnVsZXNPdXRwdXRcIjtcbmNvbnN0IF9QTVMgPSBcIlB1dE1ldHJpY1N0cmVhbVwiO1xuY29uc3QgX1BNU0kgPSBcIlB1dE1ldHJpY1N0cmVhbUlucHV0XCI7XG5jb25zdCBfUE1TTyA9IFwiUHV0TWV0cmljU3RyZWFtT3V0cHV0XCI7XG5jb25zdCBfUE9BTiA9IFwiUGFyZW50c09mQWxhcm1OYW1lXCI7XG5jb25zdCBfUFMgPSBcIlBlcmlvZGljU3Bpa2VzXCI7XG5jb25zdCBfUiA9IFwiUmFuZ2VcIjtcbmNvbnN0IF9SQSA9IFwiUm9sZUFyblwiO1xuY29uc3QgX1JBUk4gPSBcIlJlc291cmNlQVJOXCI7XG5jb25zdCBfUkFlID0gXCJSZWNlbnRseUFjdGl2ZVwiO1xuY29uc3QgX1JEID0gXCJSZXR1cm5EYXRhXCI7XG5jb25zdCBfUkR1ID0gXCJSdWxlRGVmaW5pdGlvblwiO1xuY29uc3QgX1JJID0gXCJSZXNvdXJjZUlkXCI7XG5jb25zdCBfUk4gPSBcIlJ1bGVOYW1lc1wiO1xuY29uc3QgX1JORiA9IFwiUmVzb3VyY2VOb3RGb3VuZFwiO1xuY29uc3QgX1JORkUgPSBcIlJlc291cmNlTm90Rm91bmRFeGNlcHRpb25cIjtcbmNvbnN0IF9STnUgPSBcIlJ1bGVOYW1lXCI7XG5jb25zdCBfUlMgPSBcIlJ1bGVTdGF0ZVwiO1xuY29uc3QgX1JUID0gXCJSZXNvdXJjZVR5cGVcIjtcbmNvbnN0IF9TID0gXCJTdGF0XCI7XG5jb25zdCBfU0FTID0gXCJTZXRBbGFybVN0YXRlXCI7XG5jb25zdCBfU0FTSSA9IFwiU2V0QWxhcm1TdGF0ZUlucHV0XCI7XG5jb25zdCBfU0IgPSBcIlNjYW5CeVwiO1xuY29uc3QgX1NDID0gXCJTYW1wbGVDb3VudFwiO1xuY29uc3QgX1NDdCA9IFwiU3RhdGlzdGljc0NvbmZpZ3VyYXRpb25zXCI7XG5jb25zdCBfU0N0YSA9IFwiU3RhdHVzQ29kZVwiO1xuY29uc3QgX1NEID0gXCJTdGFydERhdGVcIjtcbmNvbnN0IF9TRVYgPSBcIlN0cmljdEVudGl0eVZhbGlkYXRpb25cIjtcbmNvbnN0IF9TTUFEID0gXCJTaW5nbGVNZXRyaWNBbm9tYWx5RGV0ZWN0b3JcIjtcbmNvbnN0IF9TTVMgPSBcIlN0YXJ0TWV0cmljU3RyZWFtc1wiO1xuY29uc3QgX1NNU0kgPSBcIlN0YXJ0TWV0cmljU3RyZWFtc0lucHV0XCI7XG5jb25zdCBfU01TSXQgPSBcIlN0b3BNZXRyaWNTdHJlYW1zSW5wdXRcIjtcbmNvbnN0IF9TTVNPID0gXCJTdGFydE1ldHJpY1N0cmVhbXNPdXRwdXRcIjtcbmNvbnN0IF9TTVNPdCA9IFwiU3RvcE1ldHJpY1N0cmVhbXNPdXRwdXRcIjtcbmNvbnN0IF9TTVN0ID0gXCJTdG9wTWV0cmljU3RyZWFtc1wiO1xuY29uc3QgX1NSID0gXCJTdGF0ZVJlYXNvblwiO1xuY29uc3QgX1NSRCA9IFwiU3RhdGVSZWFzb25EYXRhXCI7XG5jb25zdCBfU1J0ID0gXCJTdG9yYWdlUmVzb2x1dGlvblwiO1xuY29uc3QgX1NTID0gXCJTdGF0aXN0aWNTZXRcIjtcbmNvbnN0IF9TVCA9IFwiU3RhcnRUaW1lXCI7XG5jb25zdCBfU1RUID0gXCJTdGF0ZVRyYW5zaXRpb25lZFRpbWVzdGFtcFwiO1xuY29uc3QgX1NVVCA9IFwiU3RhdGVVcGRhdGVkVGltZXN0YW1wXCI7XG5jb25zdCBfU1YgPSBcIlN0YXRlVmFsdWVcIjtcbmNvbnN0IF9TVnQgPSBcIlN0YXRpc3RpY1ZhbHVlc1wiO1xuY29uc3QgX1NjID0gXCJTY2hlbWFcIjtcbmNvbnN0IF9TaSA9IFwiU2l6ZVwiO1xuY29uc3QgX1N0ID0gXCJTdGF0aXN0aWNcIjtcbmNvbnN0IF9TdGEgPSBcIlN0YXRpc3RpY3NcIjtcbmNvbnN0IF9TdGF0ID0gXCJTdGF0ZVwiO1xuY29uc3QgX1N1ID0gXCJTdW1cIjtcbmNvbnN0IF9UID0gXCJUaW1lc3RhbXBcIjtcbmNvbnN0IF9USyA9IFwiVGFnS2V5c1wiO1xuY29uc3QgX1RMID0gXCJUYWdMaXN0XCI7XG5jb25zdCBfVE1EID0gXCJUcmVhdE1pc3NpbmdEYXRhXCI7XG5jb25zdCBfVE1JID0gXCJUaHJlc2hvbGRNZXRyaWNJZFwiO1xuY29uc3QgX1ROID0gXCJUZW1wbGF0ZU5hbWVcIjtcbmNvbnN0IF9UUiA9IFwiVGFnUmVzb3VyY2VcIjtcbmNvbnN0IF9UUkkgPSBcIlRhZ1Jlc291cmNlSW5wdXRcIjtcbmNvbnN0IF9UUk8gPSBcIlRhZ1Jlc291cmNlT3V0cHV0XCI7XG5jb25zdCBfVGEgPSBcIlRhZ3NcIjtcbmNvbnN0IF9UYWcgPSBcIlRhZ1wiO1xuY29uc3QgX1RoID0gXCJUaHJlc2hvbGRcIjtcbmNvbnN0IF9UaSA9IFwiVGltZXpvbmVcIjtcbmNvbnN0IF9UaW0gPSBcIlRpbWVzdGFtcHNcIjtcbmNvbnN0IF9VID0gXCJVbml0XCI7XG5jb25zdCBfVUMgPSBcIlVuaXF1ZUNvbnRyaWJ1dG9yc1wiO1xuY29uc3QgX1VSID0gXCJVbnRhZ1Jlc291cmNlXCI7XG5jb25zdCBfVVJJID0gXCJVbnRhZ1Jlc291cmNlSW5wdXRcIjtcbmNvbnN0IF9VUk8gPSBcIlVudGFnUmVzb3VyY2VPdXRwdXRcIjtcbmNvbnN0IF9WID0gXCJWYWx1ZVwiO1xuY29uc3QgX1ZhID0gXCJWYWx1ZXNcIjtcbmNvbnN0IF9hUUUgPSBcImF3c1F1ZXJ5RXJyb3JcIjtcbmNvbnN0IF9jID0gXCJjbGllbnRcIjtcbmNvbnN0IF9kVk0gPSBcImRhc2hib2FyZFZhbGlkYXRpb25NZXNzYWdlc1wiO1xuY29uc3QgX2UgPSBcImVycm9yXCI7XG5jb25zdCBfaEUgPSBcImh0dHBFcnJvclwiO1xuY29uc3QgX20gPSBcIm1lc3NhZ2VcIjtcbmNvbnN0IF9zID0gXCJzZXJ2ZXJcIjtcbmNvbnN0IF9zbSA9IFwic21pdGh5LnRzLnNkay5zeW50aGV0aWMuY29tLmFtYXpvbmF3cy5jbG91ZHdhdGNoXCI7XG5jb25zdCBuMCA9IFwiY29tLmFtYXpvbmF3cy5jbG91ZHdhdGNoXCI7XG52YXIgQWxhcm1Db250cmlidXRvciA9IFszLCBuMCwgX0FDLCAwLCBbX0NJLCBfQ0EsIF9TUiwgX1NUVF0sIFswLCAxMjggfCAwLCAwLCA0XV07XG52YXIgQWxhcm1IaXN0b3J5SXRlbSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9BSEksXG4gICAgMCxcbiAgICBbX0FOLCBfQUNJLCBfQVQsIF9ULCBfSElULCBfSFMsIF9IRCwgX0FDQV0sXG4gICAgWzAsIDAsIDAsIDQsIDAsIDAsIDAsIDEyOCB8IDBdLFxuXTtcbnZhciBBbm9tYWx5RGV0ZWN0b3IgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfQUQsXG4gICAgMCxcbiAgICBbX04sIF9NTiwgX0QsIF9TLCBfQywgX1NWLCBfTUMsIF9TTUFELCBfTU1BRF0sXG4gICAgW1xuICAgICAgICAwLFxuICAgICAgICAwLFxuICAgICAgICAoKSA9PiBEaW1lbnNpb25zLFxuICAgICAgICAwLFxuICAgICAgICAoKSA9PiBBbm9tYWx5RGV0ZWN0b3JDb25maWd1cmF0aW9uLFxuICAgICAgICAwLFxuICAgICAgICAoKSA9PiBNZXRyaWNDaGFyYWN0ZXJpc3RpY3MsXG4gICAgICAgICgpID0+IFNpbmdsZU1ldHJpY0Fub21hbHlEZXRlY3RvcixcbiAgICAgICAgKCkgPT4gTWV0cmljTWF0aEFub21hbHlEZXRlY3RvcixcbiAgICBdLFxuXTtcbnZhciBBbm9tYWx5RGV0ZWN0b3JDb25maWd1cmF0aW9uID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0FEQyxcbiAgICAwLFxuICAgIFtfRVRSLCBfTVRdLFxuICAgIFsoKSA9PiBBbm9tYWx5RGV0ZWN0b3JFeGNsdWRlZFRpbWVSYW5nZXMsIDBdLFxuXTtcbnZhciBDb21wb3NpdGVBbGFybSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9DQW8sXG4gICAgMCxcbiAgICBbX0FFLCBfQUEsIF9BQWwsIF9BQ1VULCBfQURsLCBfQU4sIF9BUiwgX0lEQSwgX09LQSwgX1NSLCBfU1JELCBfU1VULCBfU1YsIF9TVFQsIF9BU0IsIF9BU1IsIF9BUywgX0FTV1AsIF9BU0VQXSxcbiAgICBbMiwgNjQgfCAwLCAwLCA0LCAwLCAwLCAwLCA2NCB8IDAsIDY0IHwgMCwgMCwgMCwgNCwgMCwgNCwgMCwgMCwgMCwgMSwgMV0sXG5dO1xudmFyIENvbmN1cnJlbnRNb2RpZmljYXRpb25FeGNlcHRpb24gPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX0NNRSxcbiAgICB7IFtfZV06IF9jLCBbX2hFXTogNDI5LCBbX2FRRV06IFtgQ29uY3VycmVudE1vZGlmaWNhdGlvbkV4Y2VwdGlvbmAsIDQyOV0gfSxcbiAgICBbX01dLFxuICAgIFswXSxcbl07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihDb25jdXJyZW50TW9kaWZpY2F0aW9uRXhjZXB0aW9uLCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXhjZXB0aW9uJDEpO1xudmFyIENvbmZsaWN0RXhjZXB0aW9uID0gWy0zLCBuMCwgX0NFLCB7IFtfZV06IF9jLCBbX2hFXTogNDA5IH0sIFtfTV0sIFswXV07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihDb25mbGljdEV4Y2VwdGlvbiwgQ29uZmxpY3RFeGNlcHRpb24kMSk7XG52YXIgRGFzaGJvYXJkRW50cnkgPSBbMywgbjAsIF9ERSwgMCwgW19ETiwgX0RBLCBfTE0sIF9TaV0sIFswLCAwLCA0LCAxXV07XG52YXIgRGFzaGJvYXJkSW52YWxpZElucHV0RXJyb3IgPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX0RJSUUsXG4gICAgeyBbX2VdOiBfYywgW19oRV06IDQwMCwgW19hUUVdOiBbYEludmFsaWRQYXJhbWV0ZXJJbnB1dGAsIDQwMF0gfSxcbiAgICBbX20sIF9kVk1dLFxuICAgIFswLCAoKSA9PiBEYXNoYm9hcmRWYWxpZGF0aW9uTWVzc2FnZXNdLFxuXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKERhc2hib2FyZEludmFsaWRJbnB1dEVycm9yLCBEYXNoYm9hcmRJbnZhbGlkSW5wdXRFcnJvciQxKTtcbnZhciBEYXNoYm9hcmROb3RGb3VuZEVycm9yID0gW1xuICAgIC0zLFxuICAgIG4wLFxuICAgIF9ETkZFLFxuICAgIHsgW19lXTogX2MsIFtfaEVdOiA0MDQsIFtfYVFFXTogW2BSZXNvdXJjZU5vdEZvdW5kYCwgNDA0XSB9LFxuICAgIFtfbV0sXG4gICAgWzBdLFxuXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKERhc2hib2FyZE5vdEZvdW5kRXJyb3IsIERhc2hib2FyZE5vdEZvdW5kRXJyb3IkMSk7XG52YXIgRGFzaGJvYXJkVmFsaWRhdGlvbk1lc3NhZ2UgPSBbMywgbjAsIF9EVk0sIDAsIFtfRFAsIF9NXSwgWzAsIDBdXTtcbnZhciBEYXRhcG9pbnQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfRGEsXG4gICAgMCxcbiAgICBbX1QsIF9TQywgX0EsIF9TdSwgX01pLCBfTWEsIF9VLCBfRVNdLFxuICAgIFs0LCAxLCAxLCAxLCAxLCAxLCAwLCAxMjggfCAxXSxcbl07XG52YXIgRGVsZXRlQWxhcm1zSW5wdXQgPSBbMywgbjAsIF9EQUksIDAsIFtfQU5sXSwgWzY0IHwgMF1dO1xudmFyIERlbGV0ZUFub21hbHlEZXRlY3RvcklucHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0RBREksXG4gICAgMCxcbiAgICBbX04sIF9NTiwgX0QsIF9TLCBfU01BRCwgX01NQURdLFxuICAgIFswLCAwLCAoKSA9PiBEaW1lbnNpb25zLCAwLCAoKSA9PiBTaW5nbGVNZXRyaWNBbm9tYWx5RGV0ZWN0b3IsICgpID0+IE1ldHJpY01hdGhBbm9tYWx5RGV0ZWN0b3JdLFxuXTtcbnZhciBEZWxldGVBbm9tYWx5RGV0ZWN0b3JPdXRwdXQgPSBbMywgbjAsIF9EQURPLCAwLCBbXSwgW11dO1xudmFyIERlbGV0ZURhc2hib2FyZHNJbnB1dCA9IFszLCBuMCwgX0RESSwgMCwgW19ETmFdLCBbNjQgfCAwXV07XG52YXIgRGVsZXRlRGFzaGJvYXJkc091dHB1dCA9IFszLCBuMCwgX0RETywgMCwgW10sIFtdXTtcbnZhciBEZWxldGVJbnNpZ2h0UnVsZXNJbnB1dCA9IFszLCBuMCwgX0RJUkksIDAsIFtfUk5dLCBbNjQgfCAwXV07XG52YXIgRGVsZXRlSW5zaWdodFJ1bGVzT3V0cHV0ID0gWzMsIG4wLCBfRElSTywgMCwgW19GXSwgWygpID0+IEJhdGNoRmFpbHVyZXNdXTtcbnZhciBEZWxldGVNZXRyaWNTdHJlYW1JbnB1dCA9IFszLCBuMCwgX0RNU0ksIDAsIFtfTmFdLCBbMF1dO1xudmFyIERlbGV0ZU1ldHJpY1N0cmVhbU91dHB1dCA9IFszLCBuMCwgX0RNU08sIDAsIFtdLCBbXV07XG52YXIgRGVzY3JpYmVBbGFybUNvbnRyaWJ1dG9yc0lucHV0ID0gWzMsIG4wLCBfREFDSSwgMCwgW19BTiwgX05UXSwgWzAsIDBdXTtcbnZhciBEZXNjcmliZUFsYXJtQ29udHJpYnV0b3JzT3V0cHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0RBQ08sXG4gICAgMCxcbiAgICBbX0FDbCwgX05UXSxcbiAgICBbKCkgPT4gQWxhcm1Db250cmlidXRvcnMsIDBdLFxuXTtcbnZhciBEZXNjcmliZUFsYXJtSGlzdG9yeUlucHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0RBSEksXG4gICAgMCxcbiAgICBbX0FOLCBfQUNJLCBfQVRsLCBfSElULCBfU0QsIF9FRCwgX01SLCBfTlQsIF9TQl0sXG4gICAgWzAsIDAsIDY0IHwgMCwgMCwgNCwgNCwgMSwgMCwgMF0sXG5dO1xudmFyIERlc2NyaWJlQWxhcm1IaXN0b3J5T3V0cHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0RBSE8sXG4gICAgMCxcbiAgICBbX0FISWwsIF9OVF0sXG4gICAgWygpID0+IEFsYXJtSGlzdG9yeUl0ZW1zLCAwXSxcbl07XG52YXIgRGVzY3JpYmVBbGFybXNGb3JNZXRyaWNJbnB1dCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9EQUZNSSxcbiAgICAwLFxuICAgIFtfTU4sIF9OLCBfU3QsIF9FU3gsIF9ELCBfUCwgX1VdLFxuICAgIFswLCAwLCAwLCAwLCAoKSA9PiBEaW1lbnNpb25zLCAxLCAwXSxcbl07XG52YXIgRGVzY3JpYmVBbGFybXNGb3JNZXRyaWNPdXRwdXQgPSBbMywgbjAsIF9EQUZNTywgMCwgW19NQV0sIFsoKSA9PiBNZXRyaWNBbGFybXNdXTtcbnZhciBEZXNjcmliZUFsYXJtc0lucHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0RBSWUsXG4gICAgMCxcbiAgICBbX0FObCwgX0FOUCwgX0FUbCwgX0NPQU4sIF9QT0FOLCBfU1YsIF9BUCwgX01SLCBfTlRdLFxuICAgIFs2NCB8IDAsIDAsIDY0IHwgMCwgMCwgMCwgMCwgMCwgMSwgMF0sXG5dO1xudmFyIERlc2NyaWJlQWxhcm1zT3V0cHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0RBTyxcbiAgICAwLFxuICAgIFtfQ0FvbSwgX01BLCBfTlRdLFxuICAgIFsoKSA9PiBDb21wb3NpdGVBbGFybXMsICgpID0+IE1ldHJpY0FsYXJtcywgMF0sXG5dO1xudmFyIERlc2NyaWJlQW5vbWFseURldGVjdG9yc0lucHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0RBREllLFxuICAgIDAsXG4gICAgW19OVCwgX01SYSwgX04sIF9NTiwgX0QsIF9BRFRdLFxuICAgIFswLCAxLCAwLCAwLCAoKSA9PiBEaW1lbnNpb25zLCA2NCB8IDBdLFxuXTtcbnZhciBEZXNjcmliZUFub21hbHlEZXRlY3RvcnNPdXRwdXQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfREFET2UsXG4gICAgMCxcbiAgICBbX0FEbiwgX05UXSxcbiAgICBbKCkgPT4gQW5vbWFseURldGVjdG9ycywgMF0sXG5dO1xudmFyIERlc2NyaWJlSW5zaWdodFJ1bGVzSW5wdXQgPSBbMywgbjAsIF9ESVJJZSwgMCwgW19OVCwgX01SYV0sIFswLCAxXV07XG52YXIgRGVzY3JpYmVJbnNpZ2h0UnVsZXNPdXRwdXQgPSBbMywgbjAsIF9ESVJPZSwgMCwgW19OVCwgX0lSXSwgWzAsICgpID0+IEluc2lnaHRSdWxlc11dO1xudmFyIERpbWVuc2lvbiA9IFszLCBuMCwgX0RpLCAwLCBbX05hLCBfVl0sIFswLCAwXV07XG52YXIgRGltZW5zaW9uRmlsdGVyID0gWzMsIG4wLCBfREYsIDAsIFtfTmEsIF9WXSwgWzAsIDBdXTtcbnZhciBEaXNhYmxlQWxhcm1BY3Rpb25zSW5wdXQgPSBbMywgbjAsIF9EQUFJLCAwLCBbX0FObF0sIFs2NCB8IDBdXTtcbnZhciBEaXNhYmxlSW5zaWdodFJ1bGVzSW5wdXQgPSBbMywgbjAsIF9ESVJJaSwgMCwgW19STl0sIFs2NCB8IDBdXTtcbnZhciBEaXNhYmxlSW5zaWdodFJ1bGVzT3V0cHV0ID0gWzMsIG4wLCBfRElST2ksIDAsIFtfRl0sIFsoKSA9PiBCYXRjaEZhaWx1cmVzXV07XG52YXIgRW5hYmxlQWxhcm1BY3Rpb25zSW5wdXQgPSBbMywgbjAsIF9FQUFJLCAwLCBbX0FObF0sIFs2NCB8IDBdXTtcbnZhciBFbmFibGVJbnNpZ2h0UnVsZXNJbnB1dCA9IFszLCBuMCwgX0VJUkksIDAsIFtfUk5dLCBbNjQgfCAwXV07XG52YXIgRW5hYmxlSW5zaWdodFJ1bGVzT3V0cHV0ID0gWzMsIG4wLCBfRUlSTywgMCwgW19GXSwgWygpID0+IEJhdGNoRmFpbHVyZXNdXTtcbnZhciBFbnRpdHkgPSBbMywgbjAsIF9FLCAwLCBbX0tBLCBfQXRdLCBbMTI4IHwgMCwgMTI4IHwgMF1dO1xudmFyIEVudGl0eU1ldHJpY0RhdGEgPSBbMywgbjAsIF9FTUQsIDAsIFtfRSwgX01EXSwgWygpID0+IEVudGl0eSwgKCkgPT4gTWV0cmljRGF0YV1dO1xudmFyIEdldERhc2hib2FyZElucHV0ID0gWzMsIG4wLCBfR0RJLCAwLCBbX0ROXSwgWzBdXTtcbnZhciBHZXREYXNoYm9hcmRPdXRwdXQgPSBbMywgbjAsIF9HRE8sIDAsIFtfREEsIF9EQiwgX0ROXSwgWzAsIDAsIDBdXTtcbnZhciBHZXRJbnNpZ2h0UnVsZVJlcG9ydElucHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dJUlJJLFxuICAgIDAsXG4gICAgW19STnUsIF9TVCwgX0VULCBfUCwgX01DQywgX01lLCBfT0JdLFxuICAgIFswLCA0LCA0LCAxLCAxLCA2NCB8IDAsIDBdLFxuXTtcbnZhciBHZXRJbnNpZ2h0UnVsZVJlcG9ydE91dHB1dCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HSVJSTyxcbiAgICAwLFxuICAgIFtfS0wsIF9BU2csIF9BViwgX0FVQywgX0NvLCBfTURlXSxcbiAgICBbNjQgfCAwLCAwLCAxLCAxLCAoKSA9PiBJbnNpZ2h0UnVsZUNvbnRyaWJ1dG9ycywgKCkgPT4gSW5zaWdodFJ1bGVNZXRyaWNEYXRhcG9pbnRzXSxcbl07XG52YXIgR2V0TWV0cmljRGF0YUlucHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dNREksXG4gICAgMCxcbiAgICBbX01EUSwgX1NULCBfRVQsIF9OVCwgX1NCLCBfTURhLCBfTE9dLFxuICAgIFsoKSA9PiBNZXRyaWNEYXRhUXVlcmllcywgNCwgNCwgMCwgMCwgMSwgKCkgPT4gTGFiZWxPcHRpb25zXSxcbl07XG52YXIgR2V0TWV0cmljRGF0YU91dHB1dCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HTURPLFxuICAgIDAsXG4gICAgW19NRFIsIF9OVCwgX01lc10sXG4gICAgWygpID0+IE1ldHJpY0RhdGFSZXN1bHRzLCAwLCAoKSA9PiBNZXRyaWNEYXRhUmVzdWx0TWVzc2FnZXNdLFxuXTtcbnZhciBHZXRNZXRyaWNTdGF0aXN0aWNzSW5wdXQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfR01TSSxcbiAgICAwLFxuICAgIFtfTiwgX01OLCBfRCwgX1NULCBfRVQsIF9QLCBfU3RhLCBfRVMsIF9VXSxcbiAgICBbMCwgMCwgKCkgPT4gRGltZW5zaW9ucywgNCwgNCwgMSwgNjQgfCAwLCA2NCB8IDAsIDBdLFxuXTtcbnZhciBHZXRNZXRyaWNTdGF0aXN0aWNzT3V0cHV0ID0gWzMsIG4wLCBfR01TTywgMCwgW19MLCBfRGF0XSwgWzAsICgpID0+IERhdGFwb2ludHNdXTtcbnZhciBHZXRNZXRyaWNTdHJlYW1JbnB1dCA9IFszLCBuMCwgX0dNU0llLCAwLCBbX05hXSwgWzBdXTtcbnZhciBHZXRNZXRyaWNTdHJlYW1PdXRwdXQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfR01TT2UsXG4gICAgMCxcbiAgICBbX0FyLCBfTmEsIF9JRiwgX0VGLCBfRkEsIF9SQSwgX1N0YXQsIF9DRCwgX0xVRCwgX09GLCBfU0N0LCBfSUxBTV0sXG4gICAgW1xuICAgICAgICAwLFxuICAgICAgICAwLFxuICAgICAgICAoKSA9PiBNZXRyaWNTdHJlYW1GaWx0ZXJzLFxuICAgICAgICAoKSA9PiBNZXRyaWNTdHJlYW1GaWx0ZXJzLFxuICAgICAgICAwLFxuICAgICAgICAwLFxuICAgICAgICAwLFxuICAgICAgICA0LFxuICAgICAgICA0LFxuICAgICAgICAwLFxuICAgICAgICAoKSA9PiBNZXRyaWNTdHJlYW1TdGF0aXN0aWNzQ29uZmlndXJhdGlvbnMsXG4gICAgICAgIDIsXG4gICAgXSxcbl07XG52YXIgR2V0TWV0cmljV2lkZ2V0SW1hZ2VJbnB1dCA9IFszLCBuMCwgX0dNV0lJLCAwLCBbX01XLCBfT0ZdLCBbMCwgMF1dO1xudmFyIEdldE1ldHJpY1dpZGdldEltYWdlT3V0cHV0ID0gWzMsIG4wLCBfR01XSU8sIDAsIFtfTVdJXSwgWzIxXV07XG52YXIgSW5zaWdodFJ1bGUgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfSVJuLFxuICAgIDAsXG4gICAgW19OYSwgX1N0YXQsIF9TYywgX0RlLCBfTVJhbiwgX0FPVExdLFxuICAgIFswLCAwLCAwLCAwLCAyLCAyXSxcbl07XG52YXIgSW5zaWdodFJ1bGVDb250cmlidXRvciA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9JUkMsXG4gICAgMCxcbiAgICBbX0ssIF9BQVYsIF9EYXRdLFxuICAgIFs2NCB8IDAsIDEsICgpID0+IEluc2lnaHRSdWxlQ29udHJpYnV0b3JEYXRhcG9pbnRzXSxcbl07XG52YXIgSW5zaWdodFJ1bGVDb250cmlidXRvckRhdGFwb2ludCA9IFszLCBuMCwgX0lSQ0QsIDAsIFtfVCwgX0FWcF0sIFs0LCAxXV07XG52YXIgSW5zaWdodFJ1bGVNZXRyaWNEYXRhcG9pbnQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfSVJNRCxcbiAgICAwLFxuICAgIFtfVCwgX1VDLCBfTUNWLCBfU0MsIF9BLCBfU3UsIF9NaSwgX01hXSxcbiAgICBbNCwgMSwgMSwgMSwgMSwgMSwgMSwgMV0sXG5dO1xudmFyIEludGVybmFsU2VydmljZUZhdWx0ID0gW1xuICAgIC0zLFxuICAgIG4wLFxuICAgIF9JU0YsXG4gICAgeyBbX2VdOiBfcywgW19oRV06IDUwMCwgW19hUUVdOiBbYEludGVybmFsU2VydmljZUVycm9yYCwgNTAwXSB9LFxuICAgIFtfTV0sXG4gICAgWzBdLFxuXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKEludGVybmFsU2VydmljZUZhdWx0LCBJbnRlcm5hbFNlcnZpY2VGYXVsdCQxKTtcbnZhciBJbnZhbGlkRm9ybWF0RmF1bHQgPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX0lGRixcbiAgICB7IFtfZV06IF9jLCBbX2hFXTogNDAwLCBbX2FRRV06IFtgSW52YWxpZEZvcm1hdGAsIDQwMF0gfSxcbiAgICBbX21dLFxuICAgIFswXSxcbl07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihJbnZhbGlkRm9ybWF0RmF1bHQsIEludmFsaWRGb3JtYXRGYXVsdCQxKTtcbnZhciBJbnZhbGlkTmV4dFRva2VuID0gW1xuICAgIC0zLFxuICAgIG4wLFxuICAgIF9JTlQsXG4gICAgeyBbX2VdOiBfYywgW19oRV06IDQwMCwgW19hUUVdOiBbYEludmFsaWROZXh0VG9rZW5gLCA0MDBdIH0sXG4gICAgW19tXSxcbiAgICBbMF0sXG5dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoSW52YWxpZE5leHRUb2tlbiwgSW52YWxpZE5leHRUb2tlbiQxKTtcbnZhciBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FeGNlcHRpb24gPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX0lQQ0UsXG4gICAgeyBbX2VdOiBfYywgW19oRV06IDQwMCwgW19hUUVdOiBbYEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbmAsIDQwMF0gfSxcbiAgICBbX21dLFxuICAgIFswXSxcbl07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FeGNlcHRpb24sIEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkV4Y2VwdGlvbiQxKTtcbnZhciBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFeGNlcHRpb24gPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX0lQVkUsXG4gICAgeyBbX2VdOiBfYywgW19oRV06IDQwMCwgW19hUUVdOiBbYEludmFsaWRQYXJhbWV0ZXJWYWx1ZWAsIDQwMF0gfSxcbiAgICBbX21dLFxuICAgIFswXSxcbl07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihJbnZhbGlkUGFyYW1ldGVyVmFsdWVFeGNlcHRpb24sIEludmFsaWRQYXJhbWV0ZXJWYWx1ZUV4Y2VwdGlvbiQxKTtcbnZhciBMYWJlbE9wdGlvbnMgPSBbMywgbjAsIF9MTywgMCwgW19UaV0sIFswXV07XG52YXIgTGltaXRFeGNlZWRlZEV4Y2VwdGlvbiA9IFtcbiAgICAtMyxcbiAgICBuMCxcbiAgICBfTEVFLFxuICAgIHsgW19lXTogX2MsIFtfaEVdOiA0MDAsIFtfYVFFXTogW2BMaW1pdEV4Y2VlZGVkRXhjZXB0aW9uYCwgNDAwXSB9LFxuICAgIFtfTV0sXG4gICAgWzBdLFxuXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKExpbWl0RXhjZWVkZWRFeGNlcHRpb24sIExpbWl0RXhjZWVkZWRFeGNlcHRpb24kMSk7XG52YXIgTGltaXRFeGNlZWRlZEZhdWx0ID0gW1xuICAgIC0zLFxuICAgIG4wLFxuICAgIF9MRUYsXG4gICAgeyBbX2VdOiBfYywgW19oRV06IDQwMCwgW19hUUVdOiBbYExpbWl0RXhjZWVkZWRgLCA0MDBdIH0sXG4gICAgW19tXSxcbiAgICBbMF0sXG5dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoTGltaXRFeGNlZWRlZEZhdWx0LCBMaW1pdEV4Y2VlZGVkRmF1bHQkMSk7XG52YXIgTGlzdERhc2hib2FyZHNJbnB1dCA9IFszLCBuMCwgX0xESSwgMCwgW19ETlAsIF9OVF0sIFswLCAwXV07XG52YXIgTGlzdERhc2hib2FyZHNPdXRwdXQgPSBbMywgbjAsIF9MRE8sIDAsIFtfREVhLCBfTlRdLCBbKCkgPT4gRGFzaGJvYXJkRW50cmllcywgMF1dO1xudmFyIExpc3RNYW5hZ2VkSW5zaWdodFJ1bGVzSW5wdXQgPSBbMywgbjAsIF9MTUlSSSwgMCwgW19SQVJOLCBfTlQsIF9NUmFdLCBbMCwgMCwgMV1dO1xudmFyIExpc3RNYW5hZ2VkSW5zaWdodFJ1bGVzT3V0cHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0xNSVJPLFxuICAgIDAsXG4gICAgW19NUmFuYSwgX05UXSxcbiAgICBbKCkgPT4gTWFuYWdlZFJ1bGVEZXNjcmlwdGlvbnMsIDBdLFxuXTtcbnZhciBMaXN0TWV0cmljc0lucHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0xNSSxcbiAgICAwLFxuICAgIFtfTiwgX01OLCBfRCwgX05ULCBfUkFlLCBfSUxBLCBfT0FdLFxuICAgIFswLCAwLCAoKSA9PiBEaW1lbnNpb25GaWx0ZXJzLCAwLCAwLCAyLCAwXSxcbl07XG52YXIgTGlzdE1ldHJpY3NPdXRwdXQgPSBbMywgbjAsIF9MTU8sIDAsIFtfTWUsIF9OVCwgX09Bd10sIFsoKSA9PiBNZXRyaWNzLCAwLCA2NCB8IDBdXTtcbnZhciBMaXN0TWV0cmljU3RyZWFtc0lucHV0ID0gWzMsIG4wLCBfTE1TSSwgMCwgW19OVCwgX01SYV0sIFswLCAxXV07XG52YXIgTGlzdE1ldHJpY1N0cmVhbXNPdXRwdXQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfTE1TTyxcbiAgICAwLFxuICAgIFtfTlQsIF9Fbl0sXG4gICAgWzAsICgpID0+IE1ldHJpY1N0cmVhbUVudHJpZXNdLFxuXTtcbnZhciBMaXN0VGFnc0ZvclJlc291cmNlSW5wdXQgPSBbMywgbjAsIF9MVEZSSSwgMCwgW19SQVJOXSwgWzBdXTtcbnZhciBMaXN0VGFnc0ZvclJlc291cmNlT3V0cHV0ID0gWzMsIG4wLCBfTFRGUk8sIDAsIFtfVGFdLCBbKCkgPT4gVGFnTGlzdF1dO1xudmFyIE1hbmFnZWRSdWxlID0gWzMsIG4wLCBfTVJhbiwgMCwgW19UTiwgX1JBUk4sIF9UYV0sIFswLCAwLCAoKSA9PiBUYWdMaXN0XV07XG52YXIgTWFuYWdlZFJ1bGVEZXNjcmlwdGlvbiA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9NUkQsXG4gICAgMCxcbiAgICBbX1ROLCBfUkFSTiwgX1JTXSxcbiAgICBbMCwgMCwgKCkgPT4gTWFuYWdlZFJ1bGVTdGF0ZV0sXG5dO1xudmFyIE1hbmFnZWRSdWxlU3RhdGUgPSBbMywgbjAsIF9NUlMsIDAsIFtfUk51LCBfU3RhdF0sIFswLCAwXV07XG52YXIgTWVzc2FnZURhdGEgPSBbMywgbjAsIF9NRGVzLCAwLCBbX0NvZCwgX1ZdLCBbMCwgMF1dO1xudmFyIE1ldHJpYyA9IFszLCBuMCwgX01ldCwgMCwgW19OLCBfTU4sIF9EXSwgWzAsIDAsICgpID0+IERpbWVuc2lvbnNdXTtcbnZhciBNZXRyaWNBbGFybSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9NQWUsXG4gICAgMCxcbiAgICBbXG4gICAgICAgIF9BTixcbiAgICAgICAgX0FBbCxcbiAgICAgICAgX0FEbCxcbiAgICAgICAgX0FDVVQsXG4gICAgICAgIF9BRSxcbiAgICAgICAgX09LQSxcbiAgICAgICAgX0FBLFxuICAgICAgICBfSURBLFxuICAgICAgICBfU1YsXG4gICAgICAgIF9TUixcbiAgICAgICAgX1NSRCxcbiAgICAgICAgX1NVVCxcbiAgICAgICAgX01OLFxuICAgICAgICBfTixcbiAgICAgICAgX1N0LFxuICAgICAgICBfRVN4LFxuICAgICAgICBfRCxcbiAgICAgICAgX1AsXG4gICAgICAgIF9VLFxuICAgICAgICBfRVAsXG4gICAgICAgIF9EVEEsXG4gICAgICAgIF9UaCxcbiAgICAgICAgX0NPLFxuICAgICAgICBfVE1ELFxuICAgICAgICBfRUxTQ1AsXG4gICAgICAgIF9NZSxcbiAgICAgICAgX1RNSSxcbiAgICAgICAgX0VTdixcbiAgICAgICAgX1NUVCxcbiAgICBdLFxuICAgIFtcbiAgICAgICAgMCxcbiAgICAgICAgMCxcbiAgICAgICAgMCxcbiAgICAgICAgNCxcbiAgICAgICAgMixcbiAgICAgICAgNjQgfCAwLFxuICAgICAgICA2NCB8IDAsXG4gICAgICAgIDY0IHwgMCxcbiAgICAgICAgMCxcbiAgICAgICAgMCxcbiAgICAgICAgMCxcbiAgICAgICAgNCxcbiAgICAgICAgMCxcbiAgICAgICAgMCxcbiAgICAgICAgMCxcbiAgICAgICAgMCxcbiAgICAgICAgKCkgPT4gRGltZW5zaW9ucyxcbiAgICAgICAgMSxcbiAgICAgICAgMCxcbiAgICAgICAgMSxcbiAgICAgICAgMSxcbiAgICAgICAgMSxcbiAgICAgICAgMCxcbiAgICAgICAgMCxcbiAgICAgICAgMCxcbiAgICAgICAgKCkgPT4gTWV0cmljRGF0YVF1ZXJpZXMsXG4gICAgICAgIDAsXG4gICAgICAgIDAsXG4gICAgICAgIDQsXG4gICAgXSxcbl07XG52YXIgTWV0cmljQ2hhcmFjdGVyaXN0aWNzID0gWzMsIG4wLCBfTUMsIDAsIFtfUFNdLCBbMl1dO1xudmFyIE1ldHJpY0RhdGFRdWVyeSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9NRFFlLFxuICAgIDAsXG4gICAgW19JLCBfTVMsIF9FeCwgX0wsIF9SRCwgX1AsIF9BSV0sXG4gICAgWzAsICgpID0+IE1ldHJpY1N0YXQsIDAsIDAsIDIsIDEsIDBdLFxuXTtcbnZhciBNZXRyaWNEYXRhUmVzdWx0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX01EUmUsXG4gICAgMCxcbiAgICBbX0ksIF9MLCBfVGltLCBfVmEsIF9TQ3RhLCBfTWVzXSxcbiAgICBbMCwgMCwgNjQgfCA0LCA2NCB8IDEsIDAsICgpID0+IE1ldHJpY0RhdGFSZXN1bHRNZXNzYWdlc10sXG5dO1xudmFyIE1ldHJpY0RhdHVtID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX01EZXQsXG4gICAgMCxcbiAgICBbX01OLCBfRCwgX1QsIF9WLCBfU1Z0LCBfVmEsIF9Db3UsIF9VLCBfU1J0XSxcbiAgICBbMCwgKCkgPT4gRGltZW5zaW9ucywgNCwgMSwgKCkgPT4gU3RhdGlzdGljU2V0LCA2NCB8IDEsIDY0IHwgMSwgMCwgMV0sXG5dO1xudmFyIE1ldHJpY01hdGhBbm9tYWx5RGV0ZWN0b3IgPSBbMywgbjAsIF9NTUFELCAwLCBbX01EUV0sIFsoKSA9PiBNZXRyaWNEYXRhUXVlcmllc11dO1xudmFyIE1ldHJpY1N0YXQgPSBbMywgbjAsIF9NUywgMCwgW19NZXQsIF9QLCBfUywgX1VdLCBbKCkgPT4gTWV0cmljLCAxLCAwLCAwXV07XG52YXIgTWV0cmljU3RyZWFtRW50cnkgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfTVNFLFxuICAgIDAsXG4gICAgW19BciwgX0NELCBfTFVELCBfTmEsIF9GQSwgX1N0YXQsIF9PRl0sXG4gICAgWzAsIDQsIDQsIDAsIDAsIDAsIDBdLFxuXTtcbnZhciBNZXRyaWNTdHJlYW1GaWx0ZXIgPSBbMywgbjAsIF9NU0YsIDAsIFtfTiwgX01OZV0sIFswLCA2NCB8IDBdXTtcbnZhciBNZXRyaWNTdHJlYW1TdGF0aXN0aWNzQ29uZmlndXJhdGlvbiA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9NU1NDLFxuICAgIDAsXG4gICAgW19JTSwgX0FTZF0sXG4gICAgWygpID0+IE1ldHJpY1N0cmVhbVN0YXRpc3RpY3NJbmNsdWRlTWV0cmljcywgNjQgfCAwXSxcbl07XG52YXIgTWV0cmljU3RyZWFtU3RhdGlzdGljc01ldHJpYyA9IFszLCBuMCwgX01TU00sIDAsIFtfTiwgX01OXSwgWzAsIDBdXTtcbnZhciBNaXNzaW5nUmVxdWlyZWRQYXJhbWV0ZXJFeGNlcHRpb24gPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX01SUEUsXG4gICAgeyBbX2VdOiBfYywgW19oRV06IDQwMCwgW19hUUVdOiBbYE1pc3NpbmdQYXJhbWV0ZXJgLCA0MDBdIH0sXG4gICAgW19tXSxcbiAgICBbMF0sXG5dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoTWlzc2luZ1JlcXVpcmVkUGFyYW1ldGVyRXhjZXB0aW9uLCBNaXNzaW5nUmVxdWlyZWRQYXJhbWV0ZXJFeGNlcHRpb24kMSk7XG52YXIgUGFydGlhbEZhaWx1cmUgPSBbMywgbjAsIF9QRiwgMCwgW19GUiwgX0VUeCwgX0ZDLCBfRkRdLCBbMCwgMCwgMCwgMF1dO1xudmFyIFB1dEFub21hbHlEZXRlY3RvcklucHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1BBREksXG4gICAgMCxcbiAgICBbX04sIF9NTiwgX0QsIF9TLCBfQywgX01DLCBfU01BRCwgX01NQURdLFxuICAgIFtcbiAgICAgICAgMCxcbiAgICAgICAgMCxcbiAgICAgICAgKCkgPT4gRGltZW5zaW9ucyxcbiAgICAgICAgMCxcbiAgICAgICAgKCkgPT4gQW5vbWFseURldGVjdG9yQ29uZmlndXJhdGlvbixcbiAgICAgICAgKCkgPT4gTWV0cmljQ2hhcmFjdGVyaXN0aWNzLFxuICAgICAgICAoKSA9PiBTaW5nbGVNZXRyaWNBbm9tYWx5RGV0ZWN0b3IsXG4gICAgICAgICgpID0+IE1ldHJpY01hdGhBbm9tYWx5RGV0ZWN0b3IsXG4gICAgXSxcbl07XG52YXIgUHV0QW5vbWFseURldGVjdG9yT3V0cHV0ID0gWzMsIG4wLCBfUEFETywgMCwgW10sIFtdXTtcbnZhciBQdXRDb21wb3NpdGVBbGFybUlucHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1BDQUksXG4gICAgMCxcbiAgICBbX0FFLCBfQUEsIF9BRGwsIF9BTiwgX0FSLCBfSURBLCBfT0tBLCBfVGEsIF9BUywgX0FTV1AsIF9BU0VQXSxcbiAgICBbMiwgNjQgfCAwLCAwLCAwLCAwLCA2NCB8IDAsIDY0IHwgMCwgKCkgPT4gVGFnTGlzdCwgMCwgMSwgMV0sXG5dO1xudmFyIFB1dERhc2hib2FyZElucHV0ID0gWzMsIG4wLCBfUERJLCAwLCBbX0ROLCBfREJdLCBbMCwgMF1dO1xudmFyIFB1dERhc2hib2FyZE91dHB1dCA9IFszLCBuMCwgX1BETywgMCwgW19EVk1hXSwgWygpID0+IERhc2hib2FyZFZhbGlkYXRpb25NZXNzYWdlc11dO1xudmFyIFB1dEluc2lnaHRSdWxlSW5wdXQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfUElSSSxcbiAgICAwLFxuICAgIFtfUk51LCBfUlMsIF9SRHUsIF9UYSwgX0FPVExdLFxuICAgIFswLCAwLCAwLCAoKSA9PiBUYWdMaXN0LCAyXSxcbl07XG52YXIgUHV0SW5zaWdodFJ1bGVPdXRwdXQgPSBbMywgbjAsIF9QSVJPLCAwLCBbXSwgW11dO1xudmFyIFB1dE1hbmFnZWRJbnNpZ2h0UnVsZXNJbnB1dCA9IFszLCBuMCwgX1BNSVJJLCAwLCBbX01SYW5hXSwgWygpID0+IE1hbmFnZWRSdWxlc11dO1xudmFyIFB1dE1hbmFnZWRJbnNpZ2h0UnVsZXNPdXRwdXQgPSBbMywgbjAsIF9QTUlSTywgMCwgW19GXSwgWygpID0+IEJhdGNoRmFpbHVyZXNdXTtcbnZhciBQdXRNZXRyaWNBbGFybUlucHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1BNQUksXG4gICAgMCxcbiAgICBbX0FOLCBfQURsLCBfQUUsIF9PS0EsIF9BQSwgX0lEQSwgX01OLCBfTiwgX1N0LCBfRVN4LCBfRCwgX1AsIF9VLCBfRVAsIF9EVEEsIF9UaCwgX0NPLCBfVE1ELCBfRUxTQ1AsIF9NZSwgX1RhLCBfVE1JXSxcbiAgICBbXG4gICAgICAgIDAsXG4gICAgICAgIDAsXG4gICAgICAgIDIsXG4gICAgICAgIDY0IHwgMCxcbiAgICAgICAgNjQgfCAwLFxuICAgICAgICA2NCB8IDAsXG4gICAgICAgIDAsXG4gICAgICAgIDAsXG4gICAgICAgIDAsXG4gICAgICAgIDAsXG4gICAgICAgICgpID0+IERpbWVuc2lvbnMsXG4gICAgICAgIDEsXG4gICAgICAgIDAsXG4gICAgICAgIDEsXG4gICAgICAgIDEsXG4gICAgICAgIDEsXG4gICAgICAgIDAsXG4gICAgICAgIDAsXG4gICAgICAgIDAsXG4gICAgICAgICgpID0+IE1ldHJpY0RhdGFRdWVyaWVzLFxuICAgICAgICAoKSA9PiBUYWdMaXN0LFxuICAgICAgICAwLFxuICAgIF0sXG5dO1xudmFyIFB1dE1ldHJpY0RhdGFJbnB1dCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9QTURJLFxuICAgIDAsXG4gICAgW19OLCBfTUQsIF9FTUQsIF9TRVZdLFxuICAgIFswLCAoKSA9PiBNZXRyaWNEYXRhLCAoKSA9PiBFbnRpdHlNZXRyaWNEYXRhTGlzdCwgMl0sXG5dO1xudmFyIFB1dE1ldHJpY1N0cmVhbUlucHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1BNU0ksXG4gICAgMCxcbiAgICBbX05hLCBfSUYsIF9FRiwgX0ZBLCBfUkEsIF9PRiwgX1RhLCBfU0N0LCBfSUxBTV0sXG4gICAgW1xuICAgICAgICAwLFxuICAgICAgICAoKSA9PiBNZXRyaWNTdHJlYW1GaWx0ZXJzLFxuICAgICAgICAoKSA9PiBNZXRyaWNTdHJlYW1GaWx0ZXJzLFxuICAgICAgICAwLFxuICAgICAgICAwLFxuICAgICAgICAwLFxuICAgICAgICAoKSA9PiBUYWdMaXN0LFxuICAgICAgICAoKSA9PiBNZXRyaWNTdHJlYW1TdGF0aXN0aWNzQ29uZmlndXJhdGlvbnMsXG4gICAgICAgIDIsXG4gICAgXSxcbl07XG52YXIgUHV0TWV0cmljU3RyZWFtT3V0cHV0ID0gWzMsIG4wLCBfUE1TTywgMCwgW19Bcl0sIFswXV07XG52YXIgUmFuZ2UgPSBbMywgbjAsIF9SLCAwLCBbX1NULCBfRVRdLCBbNCwgNF1dO1xudmFyIFJlc291cmNlTm90Rm91bmQgPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX1JORixcbiAgICB7IFtfZV06IF9jLCBbX2hFXTogNDA0LCBbX2FRRV06IFtgUmVzb3VyY2VOb3RGb3VuZGAsIDQwNF0gfSxcbiAgICBbX21dLFxuICAgIFswXSxcbl07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihSZXNvdXJjZU5vdEZvdW5kLCBSZXNvdXJjZU5vdEZvdW5kJDEpO1xudmFyIFJlc291cmNlTm90Rm91bmRFeGNlcHRpb24gPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX1JORkUsXG4gICAgeyBbX2VdOiBfYywgW19oRV06IDQwNCwgW19hUUVdOiBbYFJlc291cmNlTm90Rm91bmRFeGNlcHRpb25gLCA0MDRdIH0sXG4gICAgW19SVCwgX1JJLCBfTV0sXG4gICAgWzAsIDAsIDBdLFxuXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKFJlc291cmNlTm90Rm91bmRFeGNlcHRpb24sIFJlc291cmNlTm90Rm91bmRFeGNlcHRpb24kMSk7XG52YXIgU2V0QWxhcm1TdGF0ZUlucHV0ID0gWzMsIG4wLCBfU0FTSSwgMCwgW19BTiwgX1NWLCBfU1IsIF9TUkRdLCBbMCwgMCwgMCwgMF1dO1xudmFyIFNpbmdsZU1ldHJpY0Fub21hbHlEZXRlY3RvciA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9TTUFELFxuICAgIDAsXG4gICAgW19BSSwgX04sIF9NTiwgX0QsIF9TXSxcbiAgICBbMCwgMCwgMCwgKCkgPT4gRGltZW5zaW9ucywgMF0sXG5dO1xudmFyIFN0YXJ0TWV0cmljU3RyZWFtc0lucHV0ID0gWzMsIG4wLCBfU01TSSwgMCwgW19OYW1dLCBbNjQgfCAwXV07XG52YXIgU3RhcnRNZXRyaWNTdHJlYW1zT3V0cHV0ID0gWzMsIG4wLCBfU01TTywgMCwgW10sIFtdXTtcbnZhciBTdGF0aXN0aWNTZXQgPSBbMywgbjAsIF9TUywgMCwgW19TQywgX1N1LCBfTWksIF9NYV0sIFsxLCAxLCAxLCAxXV07XG52YXIgU3RvcE1ldHJpY1N0cmVhbXNJbnB1dCA9IFszLCBuMCwgX1NNU0l0LCAwLCBbX05hbV0sIFs2NCB8IDBdXTtcbnZhciBTdG9wTWV0cmljU3RyZWFtc091dHB1dCA9IFszLCBuMCwgX1NNU090LCAwLCBbXSwgW11dO1xudmFyIFRhZyA9IFszLCBuMCwgX1RhZywgMCwgW19LZSwgX1ZdLCBbMCwgMF1dO1xudmFyIFRhZ1Jlc291cmNlSW5wdXQgPSBbMywgbjAsIF9UUkksIDAsIFtfUkFSTiwgX1RhXSwgWzAsICgpID0+IFRhZ0xpc3RdXTtcbnZhciBUYWdSZXNvdXJjZU91dHB1dCA9IFszLCBuMCwgX1RSTywgMCwgW10sIFtdXTtcbnZhciBVbnRhZ1Jlc291cmNlSW5wdXQgPSBbMywgbjAsIF9VUkksIDAsIFtfUkFSTiwgX1RLXSwgWzAsIDY0IHwgMF1dO1xudmFyIFVudGFnUmVzb3VyY2VPdXRwdXQgPSBbMywgbjAsIF9VUk8sIDAsIFtdLCBbXV07XG52YXIgX19Vbml0ID0gXCJ1bml0XCI7XG52YXIgQ2xvdWRXYXRjaFNlcnZpY2VFeGNlcHRpb24gPSBbLTMsIF9zbSwgXCJDbG91ZFdhdGNoU2VydmljZUV4Y2VwdGlvblwiLCAwLCBbXSwgW11dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IoX3NtKS5yZWdpc3RlckVycm9yKENsb3VkV2F0Y2hTZXJ2aWNlRXhjZXB0aW9uLCBDbG91ZFdhdGNoU2VydmljZUV4Y2VwdGlvbiQxKTtcbnZhciBBbGFybUNvbnRyaWJ1dG9ycyA9IFsxLCBuMCwgX0FDbCwgMCwgKCkgPT4gQWxhcm1Db250cmlidXRvcl07XG52YXIgQWxhcm1IaXN0b3J5SXRlbXMgPSBbMSwgbjAsIF9BSElsLCAwLCAoKSA9PiBBbGFybUhpc3RvcnlJdGVtXTtcbnZhciBBbm9tYWx5RGV0ZWN0b3JFeGNsdWRlZFRpbWVSYW5nZXMgPSBbMSwgbjAsIF9BREVUUiwgMCwgKCkgPT4gUmFuZ2VdO1xudmFyIEFub21hbHlEZXRlY3RvcnMgPSBbMSwgbjAsIF9BRG4sIDAsICgpID0+IEFub21hbHlEZXRlY3Rvcl07XG52YXIgQmF0Y2hGYWlsdXJlcyA9IFsxLCBuMCwgX0JGLCAwLCAoKSA9PiBQYXJ0aWFsRmFpbHVyZV07XG52YXIgQ29tcG9zaXRlQWxhcm1zID0gWzEsIG4wLCBfQ0FvbSwgMCwgKCkgPT4gQ29tcG9zaXRlQWxhcm1dO1xudmFyIERhc2hib2FyZEVudHJpZXMgPSBbMSwgbjAsIF9ERWEsIDAsICgpID0+IERhc2hib2FyZEVudHJ5XTtcbnZhciBEYXNoYm9hcmRWYWxpZGF0aW9uTWVzc2FnZXMgPSBbMSwgbjAsIF9EVk1hLCAwLCAoKSA9PiBEYXNoYm9hcmRWYWxpZGF0aW9uTWVzc2FnZV07XG52YXIgRGF0YXBvaW50cyA9IFsxLCBuMCwgX0RhdCwgMCwgKCkgPT4gRGF0YXBvaW50XTtcbnZhciBEaW1lbnNpb25GaWx0ZXJzID0gWzEsIG4wLCBfREZpLCAwLCAoKSA9PiBEaW1lbnNpb25GaWx0ZXJdO1xudmFyIERpbWVuc2lvbnMgPSBbMSwgbjAsIF9ELCAwLCAoKSA9PiBEaW1lbnNpb25dO1xudmFyIEVudGl0eU1ldHJpY0RhdGFMaXN0ID0gWzEsIG4wLCBfRU1ETCwgMCwgKCkgPT4gRW50aXR5TWV0cmljRGF0YV07XG52YXIgSW5zaWdodFJ1bGVDb250cmlidXRvckRhdGFwb2ludHMgPSBbXG4gICAgMSxcbiAgICBuMCxcbiAgICBfSVJDRG4sXG4gICAgMCxcbiAgICAoKSA9PiBJbnNpZ2h0UnVsZUNvbnRyaWJ1dG9yRGF0YXBvaW50LFxuXTtcbnZhciBJbnNpZ2h0UnVsZUNvbnRyaWJ1dG9ycyA9IFsxLCBuMCwgX0lSQ24sIDAsICgpID0+IEluc2lnaHRSdWxlQ29udHJpYnV0b3JdO1xudmFyIEluc2lnaHRSdWxlTWV0cmljRGF0YXBvaW50cyA9IFsxLCBuMCwgX0lSTURuLCAwLCAoKSA9PiBJbnNpZ2h0UnVsZU1ldHJpY0RhdGFwb2ludF07XG52YXIgSW5zaWdodFJ1bGVzID0gWzEsIG4wLCBfSVIsIDAsICgpID0+IEluc2lnaHRSdWxlXTtcbnZhciBNYW5hZ2VkUnVsZURlc2NyaXB0aW9ucyA9IFsxLCBuMCwgX01SRGEsIDAsICgpID0+IE1hbmFnZWRSdWxlRGVzY3JpcHRpb25dO1xudmFyIE1hbmFnZWRSdWxlcyA9IFsxLCBuMCwgX01SYW5hLCAwLCAoKSA9PiBNYW5hZ2VkUnVsZV07XG52YXIgTWV0cmljQWxhcm1zID0gWzEsIG4wLCBfTUEsIDAsICgpID0+IE1ldHJpY0FsYXJtXTtcbnZhciBNZXRyaWNEYXRhID0gWzEsIG4wLCBfTUQsIDAsICgpID0+IE1ldHJpY0RhdHVtXTtcbnZhciBNZXRyaWNEYXRhUXVlcmllcyA9IFsxLCBuMCwgX01EUSwgMCwgKCkgPT4gTWV0cmljRGF0YVF1ZXJ5XTtcbnZhciBNZXRyaWNEYXRhUmVzdWx0TWVzc2FnZXMgPSBbMSwgbjAsIF9NRFJNLCAwLCAoKSA9PiBNZXNzYWdlRGF0YV07XG52YXIgTWV0cmljRGF0YVJlc3VsdHMgPSBbMSwgbjAsIF9NRFIsIDAsICgpID0+IE1ldHJpY0RhdGFSZXN1bHRdO1xudmFyIE1ldHJpY3MgPSBbMSwgbjAsIF9NZSwgMCwgKCkgPT4gTWV0cmljXTtcbnZhciBNZXRyaWNTdHJlYW1FbnRyaWVzID0gWzEsIG4wLCBfTVNFZSwgMCwgKCkgPT4gTWV0cmljU3RyZWFtRW50cnldO1xudmFyIE1ldHJpY1N0cmVhbUZpbHRlcnMgPSBbMSwgbjAsIF9NU0ZlLCAwLCAoKSA9PiBNZXRyaWNTdHJlYW1GaWx0ZXJdO1xudmFyIE1ldHJpY1N0cmVhbVN0YXRpc3RpY3NDb25maWd1cmF0aW9ucyA9IFtcbiAgICAxLFxuICAgIG4wLFxuICAgIF9NU1NDZSxcbiAgICAwLFxuICAgICgpID0+IE1ldHJpY1N0cmVhbVN0YXRpc3RpY3NDb25maWd1cmF0aW9uLFxuXTtcbnZhciBNZXRyaWNTdHJlYW1TdGF0aXN0aWNzSW5jbHVkZU1ldHJpY3MgPSBbXG4gICAgMSxcbiAgICBuMCxcbiAgICBfTVNTSU0sXG4gICAgMCxcbiAgICAoKSA9PiBNZXRyaWNTdHJlYW1TdGF0aXN0aWNzTWV0cmljLFxuXTtcbnZhciBUYWdMaXN0ID0gWzEsIG4wLCBfVEwsIDAsICgpID0+IFRhZ107XG52YXIgRGVsZXRlQWxhcm1zID0gWzksIG4wLCBfREFlLCAwLCAoKSA9PiBEZWxldGVBbGFybXNJbnB1dCwgKCkgPT4gX19Vbml0XTtcbnZhciBEZWxldGVBbm9tYWx5RGV0ZWN0b3IgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfREFELFxuICAgIDAsXG4gICAgKCkgPT4gRGVsZXRlQW5vbWFseURldGVjdG9ySW5wdXQsXG4gICAgKCkgPT4gRGVsZXRlQW5vbWFseURldGVjdG9yT3V0cHV0LFxuXTtcbnZhciBEZWxldGVEYXNoYm9hcmRzID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0RELFxuICAgIDAsXG4gICAgKCkgPT4gRGVsZXRlRGFzaGJvYXJkc0lucHV0LFxuICAgICgpID0+IERlbGV0ZURhc2hib2FyZHNPdXRwdXQsXG5dO1xudmFyIERlbGV0ZUluc2lnaHRSdWxlcyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9ESVIsXG4gICAgMCxcbiAgICAoKSA9PiBEZWxldGVJbnNpZ2h0UnVsZXNJbnB1dCxcbiAgICAoKSA9PiBEZWxldGVJbnNpZ2h0UnVsZXNPdXRwdXQsXG5dO1xudmFyIERlbGV0ZU1ldHJpY1N0cmVhbSA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9ETVMsXG4gICAgMCxcbiAgICAoKSA9PiBEZWxldGVNZXRyaWNTdHJlYW1JbnB1dCxcbiAgICAoKSA9PiBEZWxldGVNZXRyaWNTdHJlYW1PdXRwdXQsXG5dO1xudmFyIERlc2NyaWJlQWxhcm1Db250cmlidXRvcnMgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfREFDLFxuICAgIDAsXG4gICAgKCkgPT4gRGVzY3JpYmVBbGFybUNvbnRyaWJ1dG9yc0lucHV0LFxuICAgICgpID0+IERlc2NyaWJlQWxhcm1Db250cmlidXRvcnNPdXRwdXQsXG5dO1xudmFyIERlc2NyaWJlQWxhcm1IaXN0b3J5ID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0RBSCxcbiAgICAwLFxuICAgICgpID0+IERlc2NyaWJlQWxhcm1IaXN0b3J5SW5wdXQsXG4gICAgKCkgPT4gRGVzY3JpYmVBbGFybUhpc3RvcnlPdXRwdXQsXG5dO1xudmFyIERlc2NyaWJlQWxhcm1zID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0RBZXMsXG4gICAgMCxcbiAgICAoKSA9PiBEZXNjcmliZUFsYXJtc0lucHV0LFxuICAgICgpID0+IERlc2NyaWJlQWxhcm1zT3V0cHV0LFxuXTtcbnZhciBEZXNjcmliZUFsYXJtc0Zvck1ldHJpYyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9EQUZNLFxuICAgIDAsXG4gICAgKCkgPT4gRGVzY3JpYmVBbGFybXNGb3JNZXRyaWNJbnB1dCxcbiAgICAoKSA9PiBEZXNjcmliZUFsYXJtc0Zvck1ldHJpY091dHB1dCxcbl07XG52YXIgRGVzY3JpYmVBbm9tYWx5RGV0ZWN0b3JzID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0RBRGUsXG4gICAgMCxcbiAgICAoKSA9PiBEZXNjcmliZUFub21hbHlEZXRlY3RvcnNJbnB1dCxcbiAgICAoKSA9PiBEZXNjcmliZUFub21hbHlEZXRlY3RvcnNPdXRwdXQsXG5dO1xudmFyIERlc2NyaWJlSW5zaWdodFJ1bGVzID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0RJUmUsXG4gICAgMCxcbiAgICAoKSA9PiBEZXNjcmliZUluc2lnaHRSdWxlc0lucHV0LFxuICAgICgpID0+IERlc2NyaWJlSW5zaWdodFJ1bGVzT3V0cHV0LFxuXTtcbnZhciBEaXNhYmxlQWxhcm1BY3Rpb25zID0gWzksIG4wLCBfREFBLCAwLCAoKSA9PiBEaXNhYmxlQWxhcm1BY3Rpb25zSW5wdXQsICgpID0+IF9fVW5pdF07XG52YXIgRGlzYWJsZUluc2lnaHRSdWxlcyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9ESVJpLFxuICAgIDAsXG4gICAgKCkgPT4gRGlzYWJsZUluc2lnaHRSdWxlc0lucHV0LFxuICAgICgpID0+IERpc2FibGVJbnNpZ2h0UnVsZXNPdXRwdXQsXG5dO1xudmFyIEVuYWJsZUFsYXJtQWN0aW9ucyA9IFs5LCBuMCwgX0VBQSwgMCwgKCkgPT4gRW5hYmxlQWxhcm1BY3Rpb25zSW5wdXQsICgpID0+IF9fVW5pdF07XG52YXIgRW5hYmxlSW5zaWdodFJ1bGVzID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0VJUixcbiAgICAwLFxuICAgICgpID0+IEVuYWJsZUluc2lnaHRSdWxlc0lucHV0LFxuICAgICgpID0+IEVuYWJsZUluc2lnaHRSdWxlc091dHB1dCxcbl07XG52YXIgR2V0RGFzaGJvYXJkID0gWzksIG4wLCBfR0QsIDAsICgpID0+IEdldERhc2hib2FyZElucHV0LCAoKSA9PiBHZXREYXNoYm9hcmRPdXRwdXRdO1xudmFyIEdldEluc2lnaHRSdWxlUmVwb3J0ID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0dJUlIsXG4gICAgMCxcbiAgICAoKSA9PiBHZXRJbnNpZ2h0UnVsZVJlcG9ydElucHV0LFxuICAgICgpID0+IEdldEluc2lnaHRSdWxlUmVwb3J0T3V0cHV0LFxuXTtcbnZhciBHZXRNZXRyaWNEYXRhID0gWzksIG4wLCBfR01ELCAwLCAoKSA9PiBHZXRNZXRyaWNEYXRhSW5wdXQsICgpID0+IEdldE1ldHJpY0RhdGFPdXRwdXRdO1xudmFyIEdldE1ldHJpY1N0YXRpc3RpY3MgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfR01TLFxuICAgIDAsXG4gICAgKCkgPT4gR2V0TWV0cmljU3RhdGlzdGljc0lucHV0LFxuICAgICgpID0+IEdldE1ldHJpY1N0YXRpc3RpY3NPdXRwdXQsXG5dO1xudmFyIEdldE1ldHJpY1N0cmVhbSA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9HTVNlLFxuICAgIDAsXG4gICAgKCkgPT4gR2V0TWV0cmljU3RyZWFtSW5wdXQsXG4gICAgKCkgPT4gR2V0TWV0cmljU3RyZWFtT3V0cHV0LFxuXTtcbnZhciBHZXRNZXRyaWNXaWRnZXRJbWFnZSA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9HTVdJLFxuICAgIDAsXG4gICAgKCkgPT4gR2V0TWV0cmljV2lkZ2V0SW1hZ2VJbnB1dCxcbiAgICAoKSA9PiBHZXRNZXRyaWNXaWRnZXRJbWFnZU91dHB1dCxcbl07XG52YXIgTGlzdERhc2hib2FyZHMgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfTEQsXG4gICAgMCxcbiAgICAoKSA9PiBMaXN0RGFzaGJvYXJkc0lucHV0LFxuICAgICgpID0+IExpc3REYXNoYm9hcmRzT3V0cHV0LFxuXTtcbnZhciBMaXN0TWFuYWdlZEluc2lnaHRSdWxlcyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9MTUlSLFxuICAgIDAsXG4gICAgKCkgPT4gTGlzdE1hbmFnZWRJbnNpZ2h0UnVsZXNJbnB1dCxcbiAgICAoKSA9PiBMaXN0TWFuYWdlZEluc2lnaHRSdWxlc091dHB1dCxcbl07XG52YXIgTGlzdE1ldHJpY3MgPSBbOSwgbjAsIF9MTWksIDAsICgpID0+IExpc3RNZXRyaWNzSW5wdXQsICgpID0+IExpc3RNZXRyaWNzT3V0cHV0XTtcbnZhciBMaXN0TWV0cmljU3RyZWFtcyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9MTVMsXG4gICAgMCxcbiAgICAoKSA9PiBMaXN0TWV0cmljU3RyZWFtc0lucHV0LFxuICAgICgpID0+IExpc3RNZXRyaWNTdHJlYW1zT3V0cHV0LFxuXTtcbnZhciBMaXN0VGFnc0ZvclJlc291cmNlID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0xURlIsXG4gICAgMCxcbiAgICAoKSA9PiBMaXN0VGFnc0ZvclJlc291cmNlSW5wdXQsXG4gICAgKCkgPT4gTGlzdFRhZ3NGb3JSZXNvdXJjZU91dHB1dCxcbl07XG52YXIgUHV0QW5vbWFseURldGVjdG9yID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX1BBRCxcbiAgICAwLFxuICAgICgpID0+IFB1dEFub21hbHlEZXRlY3RvcklucHV0LFxuICAgICgpID0+IFB1dEFub21hbHlEZXRlY3Rvck91dHB1dCxcbl07XG52YXIgUHV0Q29tcG9zaXRlQWxhcm0gPSBbOSwgbjAsIF9QQ0EsIDAsICgpID0+IFB1dENvbXBvc2l0ZUFsYXJtSW5wdXQsICgpID0+IF9fVW5pdF07XG52YXIgUHV0RGFzaGJvYXJkID0gWzksIG4wLCBfUEQsIDAsICgpID0+IFB1dERhc2hib2FyZElucHV0LCAoKSA9PiBQdXREYXNoYm9hcmRPdXRwdXRdO1xudmFyIFB1dEluc2lnaHRSdWxlID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX1BJUixcbiAgICAwLFxuICAgICgpID0+IFB1dEluc2lnaHRSdWxlSW5wdXQsXG4gICAgKCkgPT4gUHV0SW5zaWdodFJ1bGVPdXRwdXQsXG5dO1xudmFyIFB1dE1hbmFnZWRJbnNpZ2h0UnVsZXMgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfUE1JUixcbiAgICAwLFxuICAgICgpID0+IFB1dE1hbmFnZWRJbnNpZ2h0UnVsZXNJbnB1dCxcbiAgICAoKSA9PiBQdXRNYW5hZ2VkSW5zaWdodFJ1bGVzT3V0cHV0LFxuXTtcbnZhciBQdXRNZXRyaWNBbGFybSA9IFs5LCBuMCwgX1BNQSwgMCwgKCkgPT4gUHV0TWV0cmljQWxhcm1JbnB1dCwgKCkgPT4gX19Vbml0XTtcbnZhciBQdXRNZXRyaWNEYXRhID0gWzksIG4wLCBfUE1ELCAwLCAoKSA9PiBQdXRNZXRyaWNEYXRhSW5wdXQsICgpID0+IF9fVW5pdF07XG52YXIgUHV0TWV0cmljU3RyZWFtID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX1BNUyxcbiAgICAwLFxuICAgICgpID0+IFB1dE1ldHJpY1N0cmVhbUlucHV0LFxuICAgICgpID0+IFB1dE1ldHJpY1N0cmVhbU91dHB1dCxcbl07XG52YXIgU2V0QWxhcm1TdGF0ZSA9IFs5LCBuMCwgX1NBUywgMCwgKCkgPT4gU2V0QWxhcm1TdGF0ZUlucHV0LCAoKSA9PiBfX1VuaXRdO1xudmFyIFN0YXJ0TWV0cmljU3RyZWFtcyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9TTVMsXG4gICAgMCxcbiAgICAoKSA9PiBTdGFydE1ldHJpY1N0cmVhbXNJbnB1dCxcbiAgICAoKSA9PiBTdGFydE1ldHJpY1N0cmVhbXNPdXRwdXQsXG5dO1xudmFyIFN0b3BNZXRyaWNTdHJlYW1zID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX1NNU3QsXG4gICAgMCxcbiAgICAoKSA9PiBTdG9wTWV0cmljU3RyZWFtc0lucHV0LFxuICAgICgpID0+IFN0b3BNZXRyaWNTdHJlYW1zT3V0cHV0LFxuXTtcbnZhciBUYWdSZXNvdXJjZSA9IFs5LCBuMCwgX1RSLCAwLCAoKSA9PiBUYWdSZXNvdXJjZUlucHV0LCAoKSA9PiBUYWdSZXNvdXJjZU91dHB1dF07XG52YXIgVW50YWdSZXNvdXJjZSA9IFs5LCBuMCwgX1VSLCAwLCAoKSA9PiBVbnRhZ1Jlc291cmNlSW5wdXQsICgpID0+IFVudGFnUmVzb3VyY2VPdXRwdXRdO1xuXG5jbGFzcyBEZWxldGVBbGFybXNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJHcmFuaXRlU2VydmljZVZlcnNpb24yMDEwMDgwMVwiLCBcIkRlbGV0ZUFsYXJtc1wiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hDbGllbnRcIiwgXCJEZWxldGVBbGFybXNDb21tYW5kXCIpXG4gICAgLnNjKERlbGV0ZUFsYXJtcylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERlbGV0ZUFub21hbHlEZXRlY3RvckNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkdyYW5pdGVTZXJ2aWNlVmVyc2lvbjIwMTAwODAxXCIsIFwiRGVsZXRlQW5vbWFseURldGVjdG9yXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaENsaWVudFwiLCBcIkRlbGV0ZUFub21hbHlEZXRlY3RvckNvbW1hbmRcIilcbiAgICAuc2MoRGVsZXRlQW5vbWFseURldGVjdG9yKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgRGVsZXRlRGFzaGJvYXJkc0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkdyYW5pdGVTZXJ2aWNlVmVyc2lvbjIwMTAwODAxXCIsIFwiRGVsZXRlRGFzaGJvYXJkc1wiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hDbGllbnRcIiwgXCJEZWxldGVEYXNoYm9hcmRzQ29tbWFuZFwiKVxuICAgIC5zYyhEZWxldGVEYXNoYm9hcmRzKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgRGVsZXRlSW5zaWdodFJ1bGVzQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiR3Jhbml0ZVNlcnZpY2VWZXJzaW9uMjAxMDA4MDFcIiwgXCJEZWxldGVJbnNpZ2h0UnVsZXNcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoQ2xpZW50XCIsIFwiRGVsZXRlSW5zaWdodFJ1bGVzQ29tbWFuZFwiKVxuICAgIC5zYyhEZWxldGVJbnNpZ2h0UnVsZXMpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZWxldGVNZXRyaWNTdHJlYW1Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJHcmFuaXRlU2VydmljZVZlcnNpb24yMDEwMDgwMVwiLCBcIkRlbGV0ZU1ldHJpY1N0cmVhbVwiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hDbGllbnRcIiwgXCJEZWxldGVNZXRyaWNTdHJlYW1Db21tYW5kXCIpXG4gICAgLnNjKERlbGV0ZU1ldHJpY1N0cmVhbSlcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERlc2NyaWJlQWxhcm1Db250cmlidXRvcnNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJHcmFuaXRlU2VydmljZVZlcnNpb24yMDEwMDgwMVwiLCBcIkRlc2NyaWJlQWxhcm1Db250cmlidXRvcnNcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoQ2xpZW50XCIsIFwiRGVzY3JpYmVBbGFybUNvbnRyaWJ1dG9yc0NvbW1hbmRcIilcbiAgICAuc2MoRGVzY3JpYmVBbGFybUNvbnRyaWJ1dG9ycylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERlc2NyaWJlQWxhcm1IaXN0b3J5Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiR3Jhbml0ZVNlcnZpY2VWZXJzaW9uMjAxMDA4MDFcIiwgXCJEZXNjcmliZUFsYXJtSGlzdG9yeVwiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hDbGllbnRcIiwgXCJEZXNjcmliZUFsYXJtSGlzdG9yeUNvbW1hbmRcIilcbiAgICAuc2MoRGVzY3JpYmVBbGFybUhpc3RvcnkpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZXNjcmliZUFsYXJtc0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkdyYW5pdGVTZXJ2aWNlVmVyc2lvbjIwMTAwODAxXCIsIFwiRGVzY3JpYmVBbGFybXNcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoQ2xpZW50XCIsIFwiRGVzY3JpYmVBbGFybXNDb21tYW5kXCIpXG4gICAgLnNjKERlc2NyaWJlQWxhcm1zKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgRGVzY3JpYmVBbGFybXNGb3JNZXRyaWNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJHcmFuaXRlU2VydmljZVZlcnNpb24yMDEwMDgwMVwiLCBcIkRlc2NyaWJlQWxhcm1zRm9yTWV0cmljXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaENsaWVudFwiLCBcIkRlc2NyaWJlQWxhcm1zRm9yTWV0cmljQ29tbWFuZFwiKVxuICAgIC5zYyhEZXNjcmliZUFsYXJtc0Zvck1ldHJpYylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERlc2NyaWJlQW5vbWFseURldGVjdG9yc0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkdyYW5pdGVTZXJ2aWNlVmVyc2lvbjIwMTAwODAxXCIsIFwiRGVzY3JpYmVBbm9tYWx5RGV0ZWN0b3JzXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaENsaWVudFwiLCBcIkRlc2NyaWJlQW5vbWFseURldGVjdG9yc0NvbW1hbmRcIilcbiAgICAuc2MoRGVzY3JpYmVBbm9tYWx5RGV0ZWN0b3JzKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgRGVzY3JpYmVJbnNpZ2h0UnVsZXNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJHcmFuaXRlU2VydmljZVZlcnNpb24yMDEwMDgwMVwiLCBcIkRlc2NyaWJlSW5zaWdodFJ1bGVzXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaENsaWVudFwiLCBcIkRlc2NyaWJlSW5zaWdodFJ1bGVzQ29tbWFuZFwiKVxuICAgIC5zYyhEZXNjcmliZUluc2lnaHRSdWxlcylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERpc2FibGVBbGFybUFjdGlvbnNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJHcmFuaXRlU2VydmljZVZlcnNpb24yMDEwMDgwMVwiLCBcIkRpc2FibGVBbGFybUFjdGlvbnNcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoQ2xpZW50XCIsIFwiRGlzYWJsZUFsYXJtQWN0aW9uc0NvbW1hbmRcIilcbiAgICAuc2MoRGlzYWJsZUFsYXJtQWN0aW9ucylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERpc2FibGVJbnNpZ2h0UnVsZXNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJHcmFuaXRlU2VydmljZVZlcnNpb24yMDEwMDgwMVwiLCBcIkRpc2FibGVJbnNpZ2h0UnVsZXNcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoQ2xpZW50XCIsIFwiRGlzYWJsZUluc2lnaHRSdWxlc0NvbW1hbmRcIilcbiAgICAuc2MoRGlzYWJsZUluc2lnaHRSdWxlcylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIEVuYWJsZUFsYXJtQWN0aW9uc0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkdyYW5pdGVTZXJ2aWNlVmVyc2lvbjIwMTAwODAxXCIsIFwiRW5hYmxlQWxhcm1BY3Rpb25zXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaENsaWVudFwiLCBcIkVuYWJsZUFsYXJtQWN0aW9uc0NvbW1hbmRcIilcbiAgICAuc2MoRW5hYmxlQWxhcm1BY3Rpb25zKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgRW5hYmxlSW5zaWdodFJ1bGVzQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiR3Jhbml0ZVNlcnZpY2VWZXJzaW9uMjAxMDA4MDFcIiwgXCJFbmFibGVJbnNpZ2h0UnVsZXNcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoQ2xpZW50XCIsIFwiRW5hYmxlSW5zaWdodFJ1bGVzQ29tbWFuZFwiKVxuICAgIC5zYyhFbmFibGVJbnNpZ2h0UnVsZXMpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBHZXREYXNoYm9hcmRDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJHcmFuaXRlU2VydmljZVZlcnNpb24yMDEwMDgwMVwiLCBcIkdldERhc2hib2FyZFwiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hDbGllbnRcIiwgXCJHZXREYXNoYm9hcmRDb21tYW5kXCIpXG4gICAgLnNjKEdldERhc2hib2FyZClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIEdldEluc2lnaHRSdWxlUmVwb3J0Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiR3Jhbml0ZVNlcnZpY2VWZXJzaW9uMjAxMDA4MDFcIiwgXCJHZXRJbnNpZ2h0UnVsZVJlcG9ydFwiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hDbGllbnRcIiwgXCJHZXRJbnNpZ2h0UnVsZVJlcG9ydENvbW1hbmRcIilcbiAgICAuc2MoR2V0SW5zaWdodFJ1bGVSZXBvcnQpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBHZXRNZXRyaWNEYXRhQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiR3Jhbml0ZVNlcnZpY2VWZXJzaW9uMjAxMDA4MDFcIiwgXCJHZXRNZXRyaWNEYXRhXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaENsaWVudFwiLCBcIkdldE1ldHJpY0RhdGFDb21tYW5kXCIpXG4gICAgLnNjKEdldE1ldHJpY0RhdGEpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBHZXRNZXRyaWNTdGF0aXN0aWNzQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiR3Jhbml0ZVNlcnZpY2VWZXJzaW9uMjAxMDA4MDFcIiwgXCJHZXRNZXRyaWNTdGF0aXN0aWNzXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaENsaWVudFwiLCBcIkdldE1ldHJpY1N0YXRpc3RpY3NDb21tYW5kXCIpXG4gICAgLnNjKEdldE1ldHJpY1N0YXRpc3RpY3MpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBHZXRNZXRyaWNTdHJlYW1Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJHcmFuaXRlU2VydmljZVZlcnNpb24yMDEwMDgwMVwiLCBcIkdldE1ldHJpY1N0cmVhbVwiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hDbGllbnRcIiwgXCJHZXRNZXRyaWNTdHJlYW1Db21tYW5kXCIpXG4gICAgLnNjKEdldE1ldHJpY1N0cmVhbSlcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIEdldE1ldHJpY1dpZGdldEltYWdlQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiR3Jhbml0ZVNlcnZpY2VWZXJzaW9uMjAxMDA4MDFcIiwgXCJHZXRNZXRyaWNXaWRnZXRJbWFnZVwiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hDbGllbnRcIiwgXCJHZXRNZXRyaWNXaWRnZXRJbWFnZUNvbW1hbmRcIilcbiAgICAuc2MoR2V0TWV0cmljV2lkZ2V0SW1hZ2UpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBMaXN0RGFzaGJvYXJkc0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkdyYW5pdGVTZXJ2aWNlVmVyc2lvbjIwMTAwODAxXCIsIFwiTGlzdERhc2hib2FyZHNcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoQ2xpZW50XCIsIFwiTGlzdERhc2hib2FyZHNDb21tYW5kXCIpXG4gICAgLnNjKExpc3REYXNoYm9hcmRzKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgTGlzdE1hbmFnZWRJbnNpZ2h0UnVsZXNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJHcmFuaXRlU2VydmljZVZlcnNpb24yMDEwMDgwMVwiLCBcIkxpc3RNYW5hZ2VkSW5zaWdodFJ1bGVzXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaENsaWVudFwiLCBcIkxpc3RNYW5hZ2VkSW5zaWdodFJ1bGVzQ29tbWFuZFwiKVxuICAgIC5zYyhMaXN0TWFuYWdlZEluc2lnaHRSdWxlcylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIExpc3RNZXRyaWNzQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiR3Jhbml0ZVNlcnZpY2VWZXJzaW9uMjAxMDA4MDFcIiwgXCJMaXN0TWV0cmljc1wiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hDbGllbnRcIiwgXCJMaXN0TWV0cmljc0NvbW1hbmRcIilcbiAgICAuc2MoTGlzdE1ldHJpY3MpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBMaXN0TWV0cmljU3RyZWFtc0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkdyYW5pdGVTZXJ2aWNlVmVyc2lvbjIwMTAwODAxXCIsIFwiTGlzdE1ldHJpY1N0cmVhbXNcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoQ2xpZW50XCIsIFwiTGlzdE1ldHJpY1N0cmVhbXNDb21tYW5kXCIpXG4gICAgLnNjKExpc3RNZXRyaWNTdHJlYW1zKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkdyYW5pdGVTZXJ2aWNlVmVyc2lvbjIwMTAwODAxXCIsIFwiTGlzdFRhZ3NGb3JSZXNvdXJjZVwiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hDbGllbnRcIiwgXCJMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZFwiKVxuICAgIC5zYyhMaXN0VGFnc0ZvclJlc291cmNlKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgUHV0QW5vbWFseURldGVjdG9yQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiR3Jhbml0ZVNlcnZpY2VWZXJzaW9uMjAxMDA4MDFcIiwgXCJQdXRBbm9tYWx5RGV0ZWN0b3JcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoQ2xpZW50XCIsIFwiUHV0QW5vbWFseURldGVjdG9yQ29tbWFuZFwiKVxuICAgIC5zYyhQdXRBbm9tYWx5RGV0ZWN0b3IpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBQdXRDb21wb3NpdGVBbGFybUNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkdyYW5pdGVTZXJ2aWNlVmVyc2lvbjIwMTAwODAxXCIsIFwiUHV0Q29tcG9zaXRlQWxhcm1cIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoQ2xpZW50XCIsIFwiUHV0Q29tcG9zaXRlQWxhcm1Db21tYW5kXCIpXG4gICAgLnNjKFB1dENvbXBvc2l0ZUFsYXJtKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgUHV0RGFzaGJvYXJkQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiR3Jhbml0ZVNlcnZpY2VWZXJzaW9uMjAxMDA4MDFcIiwgXCJQdXREYXNoYm9hcmRcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoQ2xpZW50XCIsIFwiUHV0RGFzaGJvYXJkQ29tbWFuZFwiKVxuICAgIC5zYyhQdXREYXNoYm9hcmQpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBQdXRJbnNpZ2h0UnVsZUNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkdyYW5pdGVTZXJ2aWNlVmVyc2lvbjIwMTAwODAxXCIsIFwiUHV0SW5zaWdodFJ1bGVcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoQ2xpZW50XCIsIFwiUHV0SW5zaWdodFJ1bGVDb21tYW5kXCIpXG4gICAgLnNjKFB1dEluc2lnaHRSdWxlKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgUHV0TWFuYWdlZEluc2lnaHRSdWxlc0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkdyYW5pdGVTZXJ2aWNlVmVyc2lvbjIwMTAwODAxXCIsIFwiUHV0TWFuYWdlZEluc2lnaHRSdWxlc1wiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hDbGllbnRcIiwgXCJQdXRNYW5hZ2VkSW5zaWdodFJ1bGVzQ29tbWFuZFwiKVxuICAgIC5zYyhQdXRNYW5hZ2VkSW5zaWdodFJ1bGVzKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgUHV0TWV0cmljQWxhcm1Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJHcmFuaXRlU2VydmljZVZlcnNpb24yMDEwMDgwMVwiLCBcIlB1dE1ldHJpY0FsYXJtXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaENsaWVudFwiLCBcIlB1dE1ldHJpY0FsYXJtQ29tbWFuZFwiKVxuICAgIC5zYyhQdXRNZXRyaWNBbGFybSlcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFB1dE1ldHJpY0RhdGFDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgICAgbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKSxcbiAgICAgICAgbWlkZGxld2FyZUNvbXByZXNzaW9uLmdldENvbXByZXNzaW9uUGx1Z2luKGNvbmZpZywge1xuICAgICAgICAgICAgZW5jb2RpbmdzOiBbXCJnemlwXCJdLFxuICAgICAgICB9KSxcbiAgICBdO1xufSlcbiAgICAucyhcIkdyYW5pdGVTZXJ2aWNlVmVyc2lvbjIwMTAwODAxXCIsIFwiUHV0TWV0cmljRGF0YVwiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hDbGllbnRcIiwgXCJQdXRNZXRyaWNEYXRhQ29tbWFuZFwiKVxuICAgIC5zYyhQdXRNZXRyaWNEYXRhKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgUHV0TWV0cmljU3RyZWFtQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiR3Jhbml0ZVNlcnZpY2VWZXJzaW9uMjAxMDA4MDFcIiwgXCJQdXRNZXRyaWNTdHJlYW1cIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoQ2xpZW50XCIsIFwiUHV0TWV0cmljU3RyZWFtQ29tbWFuZFwiKVxuICAgIC5zYyhQdXRNZXRyaWNTdHJlYW0pXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBTZXRBbGFybVN0YXRlQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiR3Jhbml0ZVNlcnZpY2VWZXJzaW9uMjAxMDA4MDFcIiwgXCJTZXRBbGFybVN0YXRlXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaENsaWVudFwiLCBcIlNldEFsYXJtU3RhdGVDb21tYW5kXCIpXG4gICAgLnNjKFNldEFsYXJtU3RhdGUpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBTdGFydE1ldHJpY1N0cmVhbXNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJHcmFuaXRlU2VydmljZVZlcnNpb24yMDEwMDgwMVwiLCBcIlN0YXJ0TWV0cmljU3RyZWFtc1wiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hDbGllbnRcIiwgXCJTdGFydE1ldHJpY1N0cmVhbXNDb21tYW5kXCIpXG4gICAgLnNjKFN0YXJ0TWV0cmljU3RyZWFtcylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFN0b3BNZXRyaWNTdHJlYW1zQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiR3Jhbml0ZVNlcnZpY2VWZXJzaW9uMjAxMDA4MDFcIiwgXCJTdG9wTWV0cmljU3RyZWFtc1wiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hDbGllbnRcIiwgXCJTdG9wTWV0cmljU3RyZWFtc0NvbW1hbmRcIilcbiAgICAuc2MoU3RvcE1ldHJpY1N0cmVhbXMpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBUYWdSZXNvdXJjZUNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkdyYW5pdGVTZXJ2aWNlVmVyc2lvbjIwMTAwODAxXCIsIFwiVGFnUmVzb3VyY2VcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoQ2xpZW50XCIsIFwiVGFnUmVzb3VyY2VDb21tYW5kXCIpXG4gICAgLnNjKFRhZ1Jlc291cmNlKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgVW50YWdSZXNvdXJjZUNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkdyYW5pdGVTZXJ2aWNlVmVyc2lvbjIwMTAwODAxXCIsIFwiVW50YWdSZXNvdXJjZVwiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hDbGllbnRcIiwgXCJVbnRhZ1Jlc291cmNlQ29tbWFuZFwiKVxuICAgIC5zYyhVbnRhZ1Jlc291cmNlKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY29uc3QgY29tbWFuZHMgPSB7XG4gICAgRGVsZXRlQWxhcm1zQ29tbWFuZCxcbiAgICBEZWxldGVBbm9tYWx5RGV0ZWN0b3JDb21tYW5kLFxuICAgIERlbGV0ZURhc2hib2FyZHNDb21tYW5kLFxuICAgIERlbGV0ZUluc2lnaHRSdWxlc0NvbW1hbmQsXG4gICAgRGVsZXRlTWV0cmljU3RyZWFtQ29tbWFuZCxcbiAgICBEZXNjcmliZUFsYXJtQ29udHJpYnV0b3JzQ29tbWFuZCxcbiAgICBEZXNjcmliZUFsYXJtSGlzdG9yeUNvbW1hbmQsXG4gICAgRGVzY3JpYmVBbGFybXNDb21tYW5kLFxuICAgIERlc2NyaWJlQWxhcm1zRm9yTWV0cmljQ29tbWFuZCxcbiAgICBEZXNjcmliZUFub21hbHlEZXRlY3RvcnNDb21tYW5kLFxuICAgIERlc2NyaWJlSW5zaWdodFJ1bGVzQ29tbWFuZCxcbiAgICBEaXNhYmxlQWxhcm1BY3Rpb25zQ29tbWFuZCxcbiAgICBEaXNhYmxlSW5zaWdodFJ1bGVzQ29tbWFuZCxcbiAgICBFbmFibGVBbGFybUFjdGlvbnNDb21tYW5kLFxuICAgIEVuYWJsZUluc2lnaHRSdWxlc0NvbW1hbmQsXG4gICAgR2V0RGFzaGJvYXJkQ29tbWFuZCxcbiAgICBHZXRJbnNpZ2h0UnVsZVJlcG9ydENvbW1hbmQsXG4gICAgR2V0TWV0cmljRGF0YUNvbW1hbmQsXG4gICAgR2V0TWV0cmljU3RhdGlzdGljc0NvbW1hbmQsXG4gICAgR2V0TWV0cmljU3RyZWFtQ29tbWFuZCxcbiAgICBHZXRNZXRyaWNXaWRnZXRJbWFnZUNvbW1hbmQsXG4gICAgTGlzdERhc2hib2FyZHNDb21tYW5kLFxuICAgIExpc3RNYW5hZ2VkSW5zaWdodFJ1bGVzQ29tbWFuZCxcbiAgICBMaXN0TWV0cmljc0NvbW1hbmQsXG4gICAgTGlzdE1ldHJpY1N0cmVhbXNDb21tYW5kLFxuICAgIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kLFxuICAgIFB1dEFub21hbHlEZXRlY3RvckNvbW1hbmQsXG4gICAgUHV0Q29tcG9zaXRlQWxhcm1Db21tYW5kLFxuICAgIFB1dERhc2hib2FyZENvbW1hbmQsXG4gICAgUHV0SW5zaWdodFJ1bGVDb21tYW5kLFxuICAgIFB1dE1hbmFnZWRJbnNpZ2h0UnVsZXNDb21tYW5kLFxuICAgIFB1dE1ldHJpY0FsYXJtQ29tbWFuZCxcbiAgICBQdXRNZXRyaWNEYXRhQ29tbWFuZCxcbiAgICBQdXRNZXRyaWNTdHJlYW1Db21tYW5kLFxuICAgIFNldEFsYXJtU3RhdGVDb21tYW5kLFxuICAgIFN0YXJ0TWV0cmljU3RyZWFtc0NvbW1hbmQsXG4gICAgU3RvcE1ldHJpY1N0cmVhbXNDb21tYW5kLFxuICAgIFRhZ1Jlc291cmNlQ29tbWFuZCxcbiAgICBVbnRhZ1Jlc291cmNlQ29tbWFuZCxcbn07XG5jbGFzcyBDbG91ZFdhdGNoIGV4dGVuZHMgQ2xvdWRXYXRjaENsaWVudCB7XG59XG5zbWl0aHlDbGllbnQuY3JlYXRlQWdncmVnYXRlZENsaWVudChjb21tYW5kcywgQ2xvdWRXYXRjaCk7XG5cbmNvbnN0IHBhZ2luYXRlRGVzY3JpYmVBbGFybUhpc3RvcnkgPSBjb3JlLmNyZWF0ZVBhZ2luYXRvcihDbG91ZFdhdGNoQ2xpZW50LCBEZXNjcmliZUFsYXJtSGlzdG9yeUNvbW1hbmQsIFwiTmV4dFRva2VuXCIsIFwiTmV4dFRva2VuXCIsIFwiTWF4UmVjb3Jkc1wiKTtcblxuY29uc3QgcGFnaW5hdGVEZXNjcmliZUFsYXJtcyA9IGNvcmUuY3JlYXRlUGFnaW5hdG9yKENsb3VkV2F0Y2hDbGllbnQsIERlc2NyaWJlQWxhcm1zQ29tbWFuZCwgXCJOZXh0VG9rZW5cIiwgXCJOZXh0VG9rZW5cIiwgXCJNYXhSZWNvcmRzXCIpO1xuXG5jb25zdCBwYWdpbmF0ZURlc2NyaWJlQW5vbWFseURldGVjdG9ycyA9IGNvcmUuY3JlYXRlUGFnaW5hdG9yKENsb3VkV2F0Y2hDbGllbnQsIERlc2NyaWJlQW5vbWFseURldGVjdG9yc0NvbW1hbmQsIFwiTmV4dFRva2VuXCIsIFwiTmV4dFRva2VuXCIsIFwiTWF4UmVzdWx0c1wiKTtcblxuY29uc3QgcGFnaW5hdGVEZXNjcmliZUluc2lnaHRSdWxlcyA9IGNvcmUuY3JlYXRlUGFnaW5hdG9yKENsb3VkV2F0Y2hDbGllbnQsIERlc2NyaWJlSW5zaWdodFJ1bGVzQ29tbWFuZCwgXCJOZXh0VG9rZW5cIiwgXCJOZXh0VG9rZW5cIiwgXCJNYXhSZXN1bHRzXCIpO1xuXG5jb25zdCBwYWdpbmF0ZUdldE1ldHJpY0RhdGEgPSBjb3JlLmNyZWF0ZVBhZ2luYXRvcihDbG91ZFdhdGNoQ2xpZW50LCBHZXRNZXRyaWNEYXRhQ29tbWFuZCwgXCJOZXh0VG9rZW5cIiwgXCJOZXh0VG9rZW5cIiwgXCJNYXhEYXRhcG9pbnRzXCIpO1xuXG5jb25zdCBwYWdpbmF0ZUxpc3REYXNoYm9hcmRzID0gY29yZS5jcmVhdGVQYWdpbmF0b3IoQ2xvdWRXYXRjaENsaWVudCwgTGlzdERhc2hib2FyZHNDb21tYW5kLCBcIk5leHRUb2tlblwiLCBcIk5leHRUb2tlblwiLCBcIlwiKTtcblxuY29uc3QgcGFnaW5hdGVMaXN0TWFuYWdlZEluc2lnaHRSdWxlcyA9IGNvcmUuY3JlYXRlUGFnaW5hdG9yKENsb3VkV2F0Y2hDbGllbnQsIExpc3RNYW5hZ2VkSW5zaWdodFJ1bGVzQ29tbWFuZCwgXCJOZXh0VG9rZW5cIiwgXCJOZXh0VG9rZW5cIiwgXCJNYXhSZXN1bHRzXCIpO1xuXG5jb25zdCBwYWdpbmF0ZUxpc3RNZXRyaWNTdHJlYW1zID0gY29yZS5jcmVhdGVQYWdpbmF0b3IoQ2xvdWRXYXRjaENsaWVudCwgTGlzdE1ldHJpY1N0cmVhbXNDb21tYW5kLCBcIk5leHRUb2tlblwiLCBcIk5leHRUb2tlblwiLCBcIk1heFJlc3VsdHNcIik7XG5cbmNvbnN0IHBhZ2luYXRlTGlzdE1ldHJpY3MgPSBjb3JlLmNyZWF0ZVBhZ2luYXRvcihDbG91ZFdhdGNoQ2xpZW50LCBMaXN0TWV0cmljc0NvbW1hbmQsIFwiTmV4dFRva2VuXCIsIFwiTmV4dFRva2VuXCIsIFwiXCIpO1xuXG5jb25zdCBjaGVja1N0YXRlJDEgPSBhc3luYyAoY2xpZW50LCBpbnB1dCkgPT4ge1xuICAgIGxldCByZWFzb247XG4gICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgY2xpZW50LnNlbmQobmV3IERlc2NyaWJlQWxhcm1zQ29tbWFuZChpbnB1dCkpO1xuICAgICAgICByZWFzb24gPSByZXN1bHQ7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByZXR1cm5Db21wYXJhdG9yID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZsYXRfMSA9IFtdLmNvbmNhdCguLi5yZXN1bHQuTWV0cmljQWxhcm1zKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmxhdF8xLmxlbmd0aCA+IDAuMDtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAocmV0dXJuQ29tcGFyYXRvcigpID09IHRydWUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBzdGF0ZTogdXRpbFdhaXRlci5XYWl0ZXJTdGF0ZS5TVUNDRVNTLCByZWFzb24gfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkgeyB9XG4gICAgfVxuICAgIGNhdGNoIChleGNlcHRpb24pIHtcbiAgICAgICAgcmVhc29uID0gZXhjZXB0aW9uO1xuICAgIH1cbiAgICByZXR1cm4geyBzdGF0ZTogdXRpbFdhaXRlci5XYWl0ZXJTdGF0ZS5SRVRSWSwgcmVhc29uIH07XG59O1xuY29uc3Qgd2FpdEZvckFsYXJtRXhpc3RzID0gYXN5bmMgKHBhcmFtcywgaW5wdXQpID0+IHtcbiAgICBjb25zdCBzZXJ2aWNlRGVmYXVsdHMgPSB7IG1pbkRlbGF5OiA1LCBtYXhEZWxheTogMTIwIH07XG4gICAgcmV0dXJuIHV0aWxXYWl0ZXIuY3JlYXRlV2FpdGVyKHsgLi4uc2VydmljZURlZmF1bHRzLCAuLi5wYXJhbXMgfSwgaW5wdXQsIGNoZWNrU3RhdGUkMSk7XG59O1xuY29uc3Qgd2FpdFVudGlsQWxhcm1FeGlzdHMgPSBhc3luYyAocGFyYW1zLCBpbnB1dCkgPT4ge1xuICAgIGNvbnN0IHNlcnZpY2VEZWZhdWx0cyA9IHsgbWluRGVsYXk6IDUsIG1heERlbGF5OiAxMjAgfTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB1dGlsV2FpdGVyLmNyZWF0ZVdhaXRlcih7IC4uLnNlcnZpY2VEZWZhdWx0cywgLi4ucGFyYW1zIH0sIGlucHV0LCBjaGVja1N0YXRlJDEpO1xuICAgIHJldHVybiB1dGlsV2FpdGVyLmNoZWNrRXhjZXB0aW9ucyhyZXN1bHQpO1xufTtcblxuY29uc3QgY2hlY2tTdGF0ZSA9IGFzeW5jIChjbGllbnQsIGlucHV0KSA9PiB7XG4gICAgbGV0IHJlYXNvbjtcbiAgICB0cnkge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBjbGllbnQuc2VuZChuZXcgRGVzY3JpYmVBbGFybXNDb21tYW5kKGlucHV0KSk7XG4gICAgICAgIHJlYXNvbiA9IHJlc3VsdDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJldHVybkNvbXBhcmF0b3IgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZmxhdF8xID0gW10uY29uY2F0KC4uLnJlc3VsdC5Db21wb3NpdGVBbGFybXMpO1xuICAgICAgICAgICAgICAgIHJldHVybiBmbGF0XzEubGVuZ3RoID4gMC4wO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmIChyZXR1cm5Db21wYXJhdG9yKCkgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IHN0YXRlOiB1dGlsV2FpdGVyLldhaXRlclN0YXRlLlNVQ0NFU1MsIHJlYXNvbiB9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7IH1cbiAgICB9XG4gICAgY2F0Y2ggKGV4Y2VwdGlvbikge1xuICAgICAgICByZWFzb24gPSBleGNlcHRpb247XG4gICAgfVxuICAgIHJldHVybiB7IHN0YXRlOiB1dGlsV2FpdGVyLldhaXRlclN0YXRlLlJFVFJZLCByZWFzb24gfTtcbn07XG5jb25zdCB3YWl0Rm9yQ29tcG9zaXRlQWxhcm1FeGlzdHMgPSBhc3luYyAocGFyYW1zLCBpbnB1dCkgPT4ge1xuICAgIGNvbnN0IHNlcnZpY2VEZWZhdWx0cyA9IHsgbWluRGVsYXk6IDUsIG1heERlbGF5OiAxMjAgfTtcbiAgICByZXR1cm4gdXRpbFdhaXRlci5jcmVhdGVXYWl0ZXIoeyAuLi5zZXJ2aWNlRGVmYXVsdHMsIC4uLnBhcmFtcyB9LCBpbnB1dCwgY2hlY2tTdGF0ZSk7XG59O1xuY29uc3Qgd2FpdFVudGlsQ29tcG9zaXRlQWxhcm1FeGlzdHMgPSBhc3luYyAocGFyYW1zLCBpbnB1dCkgPT4ge1xuICAgIGNvbnN0IHNlcnZpY2VEZWZhdWx0cyA9IHsgbWluRGVsYXk6IDUsIG1heERlbGF5OiAxMjAgfTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB1dGlsV2FpdGVyLmNyZWF0ZVdhaXRlcih7IC4uLnNlcnZpY2VEZWZhdWx0cywgLi4ucGFyYW1zIH0sIGlucHV0LCBjaGVja1N0YXRlKTtcbiAgICByZXR1cm4gdXRpbFdhaXRlci5jaGVja0V4Y2VwdGlvbnMocmVzdWx0KTtcbn07XG5cbmNvbnN0IEFjdGlvbnNTdXBwcmVzc2VkQnkgPSB7XG4gICAgQWxhcm06IFwiQWxhcm1cIixcbiAgICBFeHRlbnNpb25QZXJpb2Q6IFwiRXh0ZW5zaW9uUGVyaW9kXCIsXG4gICAgV2FpdFBlcmlvZDogXCJXYWl0UGVyaW9kXCIsXG59O1xuY29uc3QgQWxhcm1UeXBlID0ge1xuICAgIENvbXBvc2l0ZUFsYXJtOiBcIkNvbXBvc2l0ZUFsYXJtXCIsXG4gICAgTWV0cmljQWxhcm06IFwiTWV0cmljQWxhcm1cIixcbn07XG5jb25zdCBIaXN0b3J5SXRlbVR5cGUgPSB7XG4gICAgQWN0aW9uOiBcIkFjdGlvblwiLFxuICAgIEFsYXJtQ29udHJpYnV0b3JBY3Rpb246IFwiQWxhcm1Db250cmlidXRvckFjdGlvblwiLFxuICAgIEFsYXJtQ29udHJpYnV0b3JTdGF0ZVVwZGF0ZTogXCJBbGFybUNvbnRyaWJ1dG9yU3RhdGVVcGRhdGVcIixcbiAgICBDb25maWd1cmF0aW9uVXBkYXRlOiBcIkNvbmZpZ3VyYXRpb25VcGRhdGVcIixcbiAgICBTdGF0ZVVwZGF0ZTogXCJTdGF0ZVVwZGF0ZVwiLFxufTtcbmNvbnN0IFN0YW5kYXJkVW5pdCA9IHtcbiAgICBCaXRzOiBcIkJpdHNcIixcbiAgICBCaXRzX1NlY29uZDogXCJCaXRzL1NlY29uZFwiLFxuICAgIEJ5dGVzOiBcIkJ5dGVzXCIsXG4gICAgQnl0ZXNfU2Vjb25kOiBcIkJ5dGVzL1NlY29uZFwiLFxuICAgIENvdW50OiBcIkNvdW50XCIsXG4gICAgQ291bnRfU2Vjb25kOiBcIkNvdW50L1NlY29uZFwiLFxuICAgIEdpZ2FiaXRzOiBcIkdpZ2FiaXRzXCIsXG4gICAgR2lnYWJpdHNfU2Vjb25kOiBcIkdpZ2FiaXRzL1NlY29uZFwiLFxuICAgIEdpZ2FieXRlczogXCJHaWdhYnl0ZXNcIixcbiAgICBHaWdhYnl0ZXNfU2Vjb25kOiBcIkdpZ2FieXRlcy9TZWNvbmRcIixcbiAgICBLaWxvYml0czogXCJLaWxvYml0c1wiLFxuICAgIEtpbG9iaXRzX1NlY29uZDogXCJLaWxvYml0cy9TZWNvbmRcIixcbiAgICBLaWxvYnl0ZXM6IFwiS2lsb2J5dGVzXCIsXG4gICAgS2lsb2J5dGVzX1NlY29uZDogXCJLaWxvYnl0ZXMvU2Vjb25kXCIsXG4gICAgTWVnYWJpdHM6IFwiTWVnYWJpdHNcIixcbiAgICBNZWdhYml0c19TZWNvbmQ6IFwiTWVnYWJpdHMvU2Vjb25kXCIsXG4gICAgTWVnYWJ5dGVzOiBcIk1lZ2FieXRlc1wiLFxuICAgIE1lZ2FieXRlc19TZWNvbmQ6IFwiTWVnYWJ5dGVzL1NlY29uZFwiLFxuICAgIE1pY3Jvc2Vjb25kczogXCJNaWNyb3NlY29uZHNcIixcbiAgICBNaWxsaXNlY29uZHM6IFwiTWlsbGlzZWNvbmRzXCIsXG4gICAgTm9uZTogXCJOb25lXCIsXG4gICAgUGVyY2VudDogXCJQZXJjZW50XCIsXG4gICAgU2Vjb25kczogXCJTZWNvbmRzXCIsXG4gICAgVGVyYWJpdHM6IFwiVGVyYWJpdHNcIixcbiAgICBUZXJhYml0c19TZWNvbmQ6IFwiVGVyYWJpdHMvU2Vjb25kXCIsXG4gICAgVGVyYWJ5dGVzOiBcIlRlcmFieXRlc1wiLFxuICAgIFRlcmFieXRlc19TZWNvbmQ6IFwiVGVyYWJ5dGVzL1NlY29uZFwiLFxufTtcbmNvbnN0IEFub21hbHlEZXRlY3RvclN0YXRlVmFsdWUgPSB7XG4gICAgUEVORElOR19UUkFJTklORzogXCJQRU5ESU5HX1RSQUlOSU5HXCIsXG4gICAgVFJBSU5FRDogXCJUUkFJTkVEXCIsXG4gICAgVFJBSU5FRF9JTlNVRkZJQ0lFTlRfREFUQTogXCJUUkFJTkVEX0lOU1VGRklDSUVOVF9EQVRBXCIsXG59O1xuY29uc3QgQW5vbWFseURldGVjdG9yVHlwZSA9IHtcbiAgICBNRVRSSUNfTUFUSDogXCJNRVRSSUNfTUFUSFwiLFxuICAgIFNJTkdMRV9NRVRSSUM6IFwiU0lOR0xFX01FVFJJQ1wiLFxufTtcbmNvbnN0IENvbXBhcmlzb25PcGVyYXRvciA9IHtcbiAgICBHcmVhdGVyVGhhbk9yRXF1YWxUb1RocmVzaG9sZDogXCJHcmVhdGVyVGhhbk9yRXF1YWxUb1RocmVzaG9sZFwiLFxuICAgIEdyZWF0ZXJUaGFuVGhyZXNob2xkOiBcIkdyZWF0ZXJUaGFuVGhyZXNob2xkXCIsXG4gICAgR3JlYXRlclRoYW5VcHBlclRocmVzaG9sZDogXCJHcmVhdGVyVGhhblVwcGVyVGhyZXNob2xkXCIsXG4gICAgTGVzc1RoYW5Mb3dlck9yR3JlYXRlclRoYW5VcHBlclRocmVzaG9sZDogXCJMZXNzVGhhbkxvd2VyT3JHcmVhdGVyVGhhblVwcGVyVGhyZXNob2xkXCIsXG4gICAgTGVzc1RoYW5Mb3dlclRocmVzaG9sZDogXCJMZXNzVGhhbkxvd2VyVGhyZXNob2xkXCIsXG4gICAgTGVzc1RoYW5PckVxdWFsVG9UaHJlc2hvbGQ6IFwiTGVzc1RoYW5PckVxdWFsVG9UaHJlc2hvbGRcIixcbiAgICBMZXNzVGhhblRocmVzaG9sZDogXCJMZXNzVGhhblRocmVzaG9sZFwiLFxufTtcbmNvbnN0IFN0YXRlVmFsdWUgPSB7XG4gICAgQUxBUk06IFwiQUxBUk1cIixcbiAgICBJTlNVRkZJQ0lFTlRfREFUQTogXCJJTlNVRkZJQ0lFTlRfREFUQVwiLFxuICAgIE9LOiBcIk9LXCIsXG59O1xuY29uc3QgU2NhbkJ5ID0ge1xuICAgIFRJTUVTVEFNUF9BU0NFTkRJTkc6IFwiVGltZXN0YW1wQXNjZW5kaW5nXCIsXG4gICAgVElNRVNUQU1QX0RFU0NFTkRJTkc6IFwiVGltZXN0YW1wRGVzY2VuZGluZ1wiLFxufTtcbmNvbnN0IEV2YWx1YXRpb25TdGF0ZSA9IHtcbiAgICBQQVJUSUFMX0RBVEE6IFwiUEFSVElBTF9EQVRBXCIsXG59O1xuY29uc3QgU3RhdGlzdGljID0ge1xuICAgIEF2ZXJhZ2U6IFwiQXZlcmFnZVwiLFxuICAgIE1heGltdW06IFwiTWF4aW11bVwiLFxuICAgIE1pbmltdW06IFwiTWluaW11bVwiLFxuICAgIFNhbXBsZUNvdW50OiBcIlNhbXBsZUNvdW50XCIsXG4gICAgU3VtOiBcIlN1bVwiLFxufTtcbmNvbnN0IFN0YXR1c0NvZGUgPSB7XG4gICAgQ09NUExFVEU6IFwiQ29tcGxldGVcIixcbiAgICBGT1JCSURERU46IFwiRm9yYmlkZGVuXCIsXG4gICAgSU5URVJOQUxfRVJST1I6IFwiSW50ZXJuYWxFcnJvclwiLFxuICAgIFBBUlRJQUxfREFUQTogXCJQYXJ0aWFsRGF0YVwiLFxufTtcbmNvbnN0IE1ldHJpY1N0cmVhbU91dHB1dEZvcm1hdCA9IHtcbiAgICBKU09OOiBcImpzb25cIixcbiAgICBPUEVOX1RFTEVNRVRSWV8wXzc6IFwib3BlbnRlbGVtZXRyeTAuN1wiLFxuICAgIE9QRU5fVEVMRU1FVFJZXzFfMDogXCJvcGVudGVsZW1ldHJ5MS4wXCIsXG59O1xuY29uc3QgUmVjZW50bHlBY3RpdmUgPSB7XG4gICAgUFQzSDogXCJQVDNIXCIsXG59O1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCIkQ29tbWFuZFwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHNtaXRoeUNsaWVudC5Db21tYW5kOyB9XG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fQ2xpZW50XCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gc21pdGh5Q2xpZW50LkNsaWVudDsgfVxufSk7XG5leHBvcnRzLkFjdGlvbnNTdXBwcmVzc2VkQnkgPSBBY3Rpb25zU3VwcHJlc3NlZEJ5O1xuZXhwb3J0cy5BbGFybVR5cGUgPSBBbGFybVR5cGU7XG5leHBvcnRzLkFub21hbHlEZXRlY3RvclN0YXRlVmFsdWUgPSBBbm9tYWx5RGV0ZWN0b3JTdGF0ZVZhbHVlO1xuZXhwb3J0cy5Bbm9tYWx5RGV0ZWN0b3JUeXBlID0gQW5vbWFseURldGVjdG9yVHlwZTtcbmV4cG9ydHMuQ2xvdWRXYXRjaCA9IENsb3VkV2F0Y2g7XG5leHBvcnRzLkNsb3VkV2F0Y2hDbGllbnQgPSBDbG91ZFdhdGNoQ2xpZW50O1xuZXhwb3J0cy5DbG91ZFdhdGNoU2VydmljZUV4Y2VwdGlvbiA9IENsb3VkV2F0Y2hTZXJ2aWNlRXhjZXB0aW9uJDE7XG5leHBvcnRzLkNvbXBhcmlzb25PcGVyYXRvciA9IENvbXBhcmlzb25PcGVyYXRvcjtcbmV4cG9ydHMuQ29uY3VycmVudE1vZGlmaWNhdGlvbkV4Y2VwdGlvbiA9IENvbmN1cnJlbnRNb2RpZmljYXRpb25FeGNlcHRpb24kMTtcbmV4cG9ydHMuQ29uZmxpY3RFeGNlcHRpb24gPSBDb25mbGljdEV4Y2VwdGlvbiQxO1xuZXhwb3J0cy5EYXNoYm9hcmRJbnZhbGlkSW5wdXRFcnJvciA9IERhc2hib2FyZEludmFsaWRJbnB1dEVycm9yJDE7XG5leHBvcnRzLkRhc2hib2FyZE5vdEZvdW5kRXJyb3IgPSBEYXNoYm9hcmROb3RGb3VuZEVycm9yJDE7XG5leHBvcnRzLkRlbGV0ZUFsYXJtc0NvbW1hbmQgPSBEZWxldGVBbGFybXNDb21tYW5kO1xuZXhwb3J0cy5EZWxldGVBbm9tYWx5RGV0ZWN0b3JDb21tYW5kID0gRGVsZXRlQW5vbWFseURldGVjdG9yQ29tbWFuZDtcbmV4cG9ydHMuRGVsZXRlRGFzaGJvYXJkc0NvbW1hbmQgPSBEZWxldGVEYXNoYm9hcmRzQ29tbWFuZDtcbmV4cG9ydHMuRGVsZXRlSW5zaWdodFJ1bGVzQ29tbWFuZCA9IERlbGV0ZUluc2lnaHRSdWxlc0NvbW1hbmQ7XG5leHBvcnRzLkRlbGV0ZU1ldHJpY1N0cmVhbUNvbW1hbmQgPSBEZWxldGVNZXRyaWNTdHJlYW1Db21tYW5kO1xuZXhwb3J0cy5EZXNjcmliZUFsYXJtQ29udHJpYnV0b3JzQ29tbWFuZCA9IERlc2NyaWJlQWxhcm1Db250cmlidXRvcnNDb21tYW5kO1xuZXhwb3J0cy5EZXNjcmliZUFsYXJtSGlzdG9yeUNvbW1hbmQgPSBEZXNjcmliZUFsYXJtSGlzdG9yeUNvbW1hbmQ7XG5leHBvcnRzLkRlc2NyaWJlQWxhcm1zQ29tbWFuZCA9IERlc2NyaWJlQWxhcm1zQ29tbWFuZDtcbmV4cG9ydHMuRGVzY3JpYmVBbGFybXNGb3JNZXRyaWNDb21tYW5kID0gRGVzY3JpYmVBbGFybXNGb3JNZXRyaWNDb21tYW5kO1xuZXhwb3J0cy5EZXNjcmliZUFub21hbHlEZXRlY3RvcnNDb21tYW5kID0gRGVzY3JpYmVBbm9tYWx5RGV0ZWN0b3JzQ29tbWFuZDtcbmV4cG9ydHMuRGVzY3JpYmVJbnNpZ2h0UnVsZXNDb21tYW5kID0gRGVzY3JpYmVJbnNpZ2h0UnVsZXNDb21tYW5kO1xuZXhwb3J0cy5EaXNhYmxlQWxhcm1BY3Rpb25zQ29tbWFuZCA9IERpc2FibGVBbGFybUFjdGlvbnNDb21tYW5kO1xuZXhwb3J0cy5EaXNhYmxlSW5zaWdodFJ1bGVzQ29tbWFuZCA9IERpc2FibGVJbnNpZ2h0UnVsZXNDb21tYW5kO1xuZXhwb3J0cy5FbmFibGVBbGFybUFjdGlvbnNDb21tYW5kID0gRW5hYmxlQWxhcm1BY3Rpb25zQ29tbWFuZDtcbmV4cG9ydHMuRW5hYmxlSW5zaWdodFJ1bGVzQ29tbWFuZCA9IEVuYWJsZUluc2lnaHRSdWxlc0NvbW1hbmQ7XG5leHBvcnRzLkV2YWx1YXRpb25TdGF0ZSA9IEV2YWx1YXRpb25TdGF0ZTtcbmV4cG9ydHMuR2V0RGFzaGJvYXJkQ29tbWFuZCA9IEdldERhc2hib2FyZENvbW1hbmQ7XG5leHBvcnRzLkdldEluc2lnaHRSdWxlUmVwb3J0Q29tbWFuZCA9IEdldEluc2lnaHRSdWxlUmVwb3J0Q29tbWFuZDtcbmV4cG9ydHMuR2V0TWV0cmljRGF0YUNvbW1hbmQgPSBHZXRNZXRyaWNEYXRhQ29tbWFuZDtcbmV4cG9ydHMuR2V0TWV0cmljU3RhdGlzdGljc0NvbW1hbmQgPSBHZXRNZXRyaWNTdGF0aXN0aWNzQ29tbWFuZDtcbmV4cG9ydHMuR2V0TWV0cmljU3RyZWFtQ29tbWFuZCA9IEdldE1ldHJpY1N0cmVhbUNvbW1hbmQ7XG5leHBvcnRzLkdldE1ldHJpY1dpZGdldEltYWdlQ29tbWFuZCA9IEdldE1ldHJpY1dpZGdldEltYWdlQ29tbWFuZDtcbmV4cG9ydHMuSGlzdG9yeUl0ZW1UeXBlID0gSGlzdG9yeUl0ZW1UeXBlO1xuZXhwb3J0cy5JbnRlcm5hbFNlcnZpY2VGYXVsdCA9IEludGVybmFsU2VydmljZUZhdWx0JDE7XG5leHBvcnRzLkludmFsaWRGb3JtYXRGYXVsdCA9IEludmFsaWRGb3JtYXRGYXVsdCQxO1xuZXhwb3J0cy5JbnZhbGlkTmV4dFRva2VuID0gSW52YWxpZE5leHRUb2tlbiQxO1xuZXhwb3J0cy5JbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FeGNlcHRpb24gPSBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FeGNlcHRpb24kMTtcbmV4cG9ydHMuSW52YWxpZFBhcmFtZXRlclZhbHVlRXhjZXB0aW9uID0gSW52YWxpZFBhcmFtZXRlclZhbHVlRXhjZXB0aW9uJDE7XG5leHBvcnRzLkxpbWl0RXhjZWVkZWRFeGNlcHRpb24gPSBMaW1pdEV4Y2VlZGVkRXhjZXB0aW9uJDE7XG5leHBvcnRzLkxpbWl0RXhjZWVkZWRGYXVsdCA9IExpbWl0RXhjZWVkZWRGYXVsdCQxO1xuZXhwb3J0cy5MaXN0RGFzaGJvYXJkc0NvbW1hbmQgPSBMaXN0RGFzaGJvYXJkc0NvbW1hbmQ7XG5leHBvcnRzLkxpc3RNYW5hZ2VkSW5zaWdodFJ1bGVzQ29tbWFuZCA9IExpc3RNYW5hZ2VkSW5zaWdodFJ1bGVzQ29tbWFuZDtcbmV4cG9ydHMuTGlzdE1ldHJpY1N0cmVhbXNDb21tYW5kID0gTGlzdE1ldHJpY1N0cmVhbXNDb21tYW5kO1xuZXhwb3J0cy5MaXN0TWV0cmljc0NvbW1hbmQgPSBMaXN0TWV0cmljc0NvbW1hbmQ7XG5leHBvcnRzLkxpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kID0gTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmQ7XG5leHBvcnRzLk1ldHJpY1N0cmVhbU91dHB1dEZvcm1hdCA9IE1ldHJpY1N0cmVhbU91dHB1dEZvcm1hdDtcbmV4cG9ydHMuTWlzc2luZ1JlcXVpcmVkUGFyYW1ldGVyRXhjZXB0aW9uID0gTWlzc2luZ1JlcXVpcmVkUGFyYW1ldGVyRXhjZXB0aW9uJDE7XG5leHBvcnRzLlB1dEFub21hbHlEZXRlY3RvckNvbW1hbmQgPSBQdXRBbm9tYWx5RGV0ZWN0b3JDb21tYW5kO1xuZXhwb3J0cy5QdXRDb21wb3NpdGVBbGFybUNvbW1hbmQgPSBQdXRDb21wb3NpdGVBbGFybUNvbW1hbmQ7XG5leHBvcnRzLlB1dERhc2hib2FyZENvbW1hbmQgPSBQdXREYXNoYm9hcmRDb21tYW5kO1xuZXhwb3J0cy5QdXRJbnNpZ2h0UnVsZUNvbW1hbmQgPSBQdXRJbnNpZ2h0UnVsZUNvbW1hbmQ7XG5leHBvcnRzLlB1dE1hbmFnZWRJbnNpZ2h0UnVsZXNDb21tYW5kID0gUHV0TWFuYWdlZEluc2lnaHRSdWxlc0NvbW1hbmQ7XG5leHBvcnRzLlB1dE1ldHJpY0FsYXJtQ29tbWFuZCA9IFB1dE1ldHJpY0FsYXJtQ29tbWFuZDtcbmV4cG9ydHMuUHV0TWV0cmljRGF0YUNvbW1hbmQgPSBQdXRNZXRyaWNEYXRhQ29tbWFuZDtcbmV4cG9ydHMuUHV0TWV0cmljU3RyZWFtQ29tbWFuZCA9IFB1dE1ldHJpY1N0cmVhbUNvbW1hbmQ7XG5leHBvcnRzLlJlY2VudGx5QWN0aXZlID0gUmVjZW50bHlBY3RpdmU7XG5leHBvcnRzLlJlc291cmNlTm90Rm91bmQgPSBSZXNvdXJjZU5vdEZvdW5kJDE7XG5leHBvcnRzLlJlc291cmNlTm90Rm91bmRFeGNlcHRpb24gPSBSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uJDE7XG5leHBvcnRzLlNjYW5CeSA9IFNjYW5CeTtcbmV4cG9ydHMuU2V0QWxhcm1TdGF0ZUNvbW1hbmQgPSBTZXRBbGFybVN0YXRlQ29tbWFuZDtcbmV4cG9ydHMuU3RhbmRhcmRVbml0ID0gU3RhbmRhcmRVbml0O1xuZXhwb3J0cy5TdGFydE1ldHJpY1N0cmVhbXNDb21tYW5kID0gU3RhcnRNZXRyaWNTdHJlYW1zQ29tbWFuZDtcbmV4cG9ydHMuU3RhdGVWYWx1ZSA9IFN0YXRlVmFsdWU7XG5leHBvcnRzLlN0YXRpc3RpYyA9IFN0YXRpc3RpYztcbmV4cG9ydHMuU3RhdHVzQ29kZSA9IFN0YXR1c0NvZGU7XG5leHBvcnRzLlN0b3BNZXRyaWNTdHJlYW1zQ29tbWFuZCA9IFN0b3BNZXRyaWNTdHJlYW1zQ29tbWFuZDtcbmV4cG9ydHMuVGFnUmVzb3VyY2VDb21tYW5kID0gVGFnUmVzb3VyY2VDb21tYW5kO1xuZXhwb3J0cy5VbnRhZ1Jlc291cmNlQ29tbWFuZCA9IFVudGFnUmVzb3VyY2VDb21tYW5kO1xuZXhwb3J0cy5wYWdpbmF0ZURlc2NyaWJlQWxhcm1IaXN0b3J5ID0gcGFnaW5hdGVEZXNjcmliZUFsYXJtSGlzdG9yeTtcbmV4cG9ydHMucGFnaW5hdGVEZXNjcmliZUFsYXJtcyA9IHBhZ2luYXRlRGVzY3JpYmVBbGFybXM7XG5leHBvcnRzLnBhZ2luYXRlRGVzY3JpYmVBbm9tYWx5RGV0ZWN0b3JzID0gcGFnaW5hdGVEZXNjcmliZUFub21hbHlEZXRlY3RvcnM7XG5leHBvcnRzLnBhZ2luYXRlRGVzY3JpYmVJbnNpZ2h0UnVsZXMgPSBwYWdpbmF0ZURlc2NyaWJlSW5zaWdodFJ1bGVzO1xuZXhwb3J0cy5wYWdpbmF0ZUdldE1ldHJpY0RhdGEgPSBwYWdpbmF0ZUdldE1ldHJpY0RhdGE7XG5leHBvcnRzLnBhZ2luYXRlTGlzdERhc2hib2FyZHMgPSBwYWdpbmF0ZUxpc3REYXNoYm9hcmRzO1xuZXhwb3J0cy5wYWdpbmF0ZUxpc3RNYW5hZ2VkSW5zaWdodFJ1bGVzID0gcGFnaW5hdGVMaXN0TWFuYWdlZEluc2lnaHRSdWxlcztcbmV4cG9ydHMucGFnaW5hdGVMaXN0TWV0cmljU3RyZWFtcyA9IHBhZ2luYXRlTGlzdE1ldHJpY1N0cmVhbXM7XG5leHBvcnRzLnBhZ2luYXRlTGlzdE1ldHJpY3MgPSBwYWdpbmF0ZUxpc3RNZXRyaWNzO1xuZXhwb3J0cy53YWl0Rm9yQWxhcm1FeGlzdHMgPSB3YWl0Rm9yQWxhcm1FeGlzdHM7XG5leHBvcnRzLndhaXRGb3JDb21wb3NpdGVBbGFybUV4aXN0cyA9IHdhaXRGb3JDb21wb3NpdGVBbGFybUV4aXN0cztcbmV4cG9ydHMud2FpdFVudGlsQWxhcm1FeGlzdHMgPSB3YWl0VW50aWxBbGFybUV4aXN0cztcbmV4cG9ydHMud2FpdFVudGlsQ29tcG9zaXRlQWxhcm1FeGlzdHMgPSB3YWl0VW50aWxDb21wb3NpdGVBbGFybUV4aXN0cztcbiIsICIvKipcbiAqIG5lZ290aWF0b3JcbiAqIENvcHlyaWdodChjKSAyMDEyIElzYWFjIFouIFNjaGx1ZXRlclxuICogQ29weXJpZ2h0KGMpIDIwMTQgRmVkZXJpY28gUm9tZXJvXG4gKiBDb3B5cmlnaHQoYykgMjAxNC0yMDE1IERvdWdsYXMgQ2hyaXN0b3BoZXIgV2lsc29uXG4gKiBNSVQgTGljZW5zZWRcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbi8qKlxuICogTW9kdWxlIGV4cG9ydHMuXG4gKiBAcHVibGljXG4gKi9cblxubW9kdWxlLmV4cG9ydHMgPSBwcmVmZXJyZWRDaGFyc2V0cztcbm1vZHVsZS5leHBvcnRzLnByZWZlcnJlZENoYXJzZXRzID0gcHJlZmVycmVkQ2hhcnNldHM7XG5cbi8qKlxuICogTW9kdWxlIHZhcmlhYmxlcy5cbiAqIEBwcml2YXRlXG4gKi9cblxudmFyIHNpbXBsZUNoYXJzZXRSZWdFeHAgPSAvXlxccyooW15cXHM7XSspXFxzKig/OjsoLiopKT8kLztcblxuLyoqXG4gKiBQYXJzZSB0aGUgQWNjZXB0LUNoYXJzZXQgaGVhZGVyLlxuICogQHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBwYXJzZUFjY2VwdENoYXJzZXQoYWNjZXB0KSB7XG4gIHZhciBhY2NlcHRzID0gYWNjZXB0LnNwbGl0KCcsJyk7XG5cbiAgZm9yICh2YXIgaSA9IDAsIGogPSAwOyBpIDwgYWNjZXB0cy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBjaGFyc2V0ID0gcGFyc2VDaGFyc2V0KGFjY2VwdHNbaV0udHJpbSgpLCBpKTtcblxuICAgIGlmIChjaGFyc2V0KSB7XG4gICAgICBhY2NlcHRzW2orK10gPSBjaGFyc2V0O1xuICAgIH1cbiAgfVxuXG4gIC8vIHRyaW0gYWNjZXB0c1xuICBhY2NlcHRzLmxlbmd0aCA9IGo7XG5cbiAgcmV0dXJuIGFjY2VwdHM7XG59XG5cbi8qKlxuICogUGFyc2UgYSBjaGFyc2V0IGZyb20gdGhlIEFjY2VwdC1DaGFyc2V0IGhlYWRlci5cbiAqIEBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gcGFyc2VDaGFyc2V0KHN0ciwgaSkge1xuICB2YXIgbWF0Y2ggPSBzaW1wbGVDaGFyc2V0UmVnRXhwLmV4ZWMoc3RyKTtcbiAgaWYgKCFtYXRjaCkgcmV0dXJuIG51bGw7XG5cbiAgdmFyIGNoYXJzZXQgPSBtYXRjaFsxXTtcbiAgdmFyIHEgPSAxO1xuICBpZiAobWF0Y2hbMl0pIHtcbiAgICB2YXIgcGFyYW1zID0gbWF0Y2hbMl0uc3BsaXQoJzsnKVxuICAgIGZvciAodmFyIGogPSAwOyBqIDwgcGFyYW1zLmxlbmd0aDsgaisrKSB7XG4gICAgICB2YXIgcCA9IHBhcmFtc1tqXS50cmltKCkuc3BsaXQoJz0nKTtcbiAgICAgIGlmIChwWzBdID09PSAncScpIHtcbiAgICAgICAgcSA9IHBhcnNlRmxvYXQocFsxXSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgY2hhcnNldDogY2hhcnNldCxcbiAgICBxOiBxLFxuICAgIGk6IGlcbiAgfTtcbn1cblxuLyoqXG4gKiBHZXQgdGhlIHByaW9yaXR5IG9mIGEgY2hhcnNldC5cbiAqIEBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gZ2V0Q2hhcnNldFByaW9yaXR5KGNoYXJzZXQsIGFjY2VwdGVkLCBpbmRleCkge1xuICB2YXIgcHJpb3JpdHkgPSB7bzogLTEsIHE6IDAsIHM6IDB9O1xuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgYWNjZXB0ZWQubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgc3BlYyA9IHNwZWNpZnkoY2hhcnNldCwgYWNjZXB0ZWRbaV0sIGluZGV4KTtcblxuICAgIGlmIChzcGVjICYmIChwcmlvcml0eS5zIC0gc3BlYy5zIHx8IHByaW9yaXR5LnEgLSBzcGVjLnEgfHwgcHJpb3JpdHkubyAtIHNwZWMubykgPCAwKSB7XG4gICAgICBwcmlvcml0eSA9IHNwZWM7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHByaW9yaXR5O1xufVxuXG4vKipcbiAqIEdldCB0aGUgc3BlY2lmaWNpdHkgb2YgdGhlIGNoYXJzZXQuXG4gKiBAcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIHNwZWNpZnkoY2hhcnNldCwgc3BlYywgaW5kZXgpIHtcbiAgdmFyIHMgPSAwO1xuICBpZihzcGVjLmNoYXJzZXQudG9Mb3dlckNhc2UoKSA9PT0gY2hhcnNldC50b0xvd2VyQ2FzZSgpKXtcbiAgICBzIHw9IDE7XG4gIH0gZWxzZSBpZiAoc3BlYy5jaGFyc2V0ICE9PSAnKicgKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgaTogaW5kZXgsXG4gICAgbzogc3BlYy5pLFxuICAgIHE6IHNwZWMucSxcbiAgICBzOiBzXG4gIH1cbn1cblxuLyoqXG4gKiBHZXQgdGhlIHByZWZlcnJlZCBjaGFyc2V0cyBmcm9tIGFuIEFjY2VwdC1DaGFyc2V0IGhlYWRlci5cbiAqIEBwdWJsaWNcbiAqL1xuXG5mdW5jdGlvbiBwcmVmZXJyZWRDaGFyc2V0cyhhY2NlcHQsIHByb3ZpZGVkKSB7XG4gIC8vIFJGQyAyNjE2IHNlYyAxNC4yOiBubyBoZWFkZXIgPSAqXG4gIHZhciBhY2NlcHRzID0gcGFyc2VBY2NlcHRDaGFyc2V0KGFjY2VwdCA9PT0gdW5kZWZpbmVkID8gJyonIDogYWNjZXB0IHx8ICcnKTtcblxuICBpZiAoIXByb3ZpZGVkKSB7XG4gICAgLy8gc29ydGVkIGxpc3Qgb2YgYWxsIGNoYXJzZXRzXG4gICAgcmV0dXJuIGFjY2VwdHNcbiAgICAgIC5maWx0ZXIoaXNRdWFsaXR5KVxuICAgICAgLnNvcnQoY29tcGFyZVNwZWNzKVxuICAgICAgLm1hcChnZXRGdWxsQ2hhcnNldCk7XG4gIH1cblxuICB2YXIgcHJpb3JpdGllcyA9IHByb3ZpZGVkLm1hcChmdW5jdGlvbiBnZXRQcmlvcml0eSh0eXBlLCBpbmRleCkge1xuICAgIHJldHVybiBnZXRDaGFyc2V0UHJpb3JpdHkodHlwZSwgYWNjZXB0cywgaW5kZXgpO1xuICB9KTtcblxuICAvLyBzb3J0ZWQgbGlzdCBvZiBhY2NlcHRlZCBjaGFyc2V0c1xuICByZXR1cm4gcHJpb3JpdGllcy5maWx0ZXIoaXNRdWFsaXR5KS5zb3J0KGNvbXBhcmVTcGVjcykubWFwKGZ1bmN0aW9uIGdldENoYXJzZXQocHJpb3JpdHkpIHtcbiAgICByZXR1cm4gcHJvdmlkZWRbcHJpb3JpdGllcy5pbmRleE9mKHByaW9yaXR5KV07XG4gIH0pO1xufVxuXG4vKipcbiAqIENvbXBhcmUgdHdvIHNwZWNzLlxuICogQHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBjb21wYXJlU3BlY3MoYSwgYikge1xuICByZXR1cm4gKGIucSAtIGEucSkgfHwgKGIucyAtIGEucykgfHwgKGEubyAtIGIubykgfHwgKGEuaSAtIGIuaSkgfHwgMDtcbn1cblxuLyoqXG4gKiBHZXQgZnVsbCBjaGFyc2V0IHN0cmluZy5cbiAqIEBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gZ2V0RnVsbENoYXJzZXQoc3BlYykge1xuICByZXR1cm4gc3BlYy5jaGFyc2V0O1xufVxuXG4vKipcbiAqIENoZWNrIGlmIGEgc3BlYyBoYXMgYW55IHF1YWxpdHkuXG4gKiBAcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIGlzUXVhbGl0eShzcGVjKSB7XG4gIHJldHVybiBzcGVjLnEgPiAwO1xufVxuIiwgIi8qKlxuICogbmVnb3RpYXRvclxuICogQ29weXJpZ2h0KGMpIDIwMTIgSXNhYWMgWi4gU2NobHVldGVyXG4gKiBDb3B5cmlnaHQoYykgMjAxNCBGZWRlcmljbyBSb21lcm9cbiAqIENvcHlyaWdodChjKSAyMDE0LTIwMTUgRG91Z2xhcyBDaHJpc3RvcGhlciBXaWxzb25cbiAqIE1JVCBMaWNlbnNlZFxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuLyoqXG4gKiBNb2R1bGUgZXhwb3J0cy5cbiAqIEBwdWJsaWNcbiAqL1xuXG5tb2R1bGUuZXhwb3J0cyA9IHByZWZlcnJlZEVuY29kaW5ncztcbm1vZHVsZS5leHBvcnRzLnByZWZlcnJlZEVuY29kaW5ncyA9IHByZWZlcnJlZEVuY29kaW5ncztcblxuLyoqXG4gKiBNb2R1bGUgdmFyaWFibGVzLlxuICogQHByaXZhdGVcbiAqL1xuXG52YXIgc2ltcGxlRW5jb2RpbmdSZWdFeHAgPSAvXlxccyooW15cXHM7XSspXFxzKig/OjsoLiopKT8kLztcblxuLyoqXG4gKiBQYXJzZSB0aGUgQWNjZXB0LUVuY29kaW5nIGhlYWRlci5cbiAqIEBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gcGFyc2VBY2NlcHRFbmNvZGluZyhhY2NlcHQpIHtcbiAgdmFyIGFjY2VwdHMgPSBhY2NlcHQuc3BsaXQoJywnKTtcbiAgdmFyIGhhc0lkZW50aXR5ID0gZmFsc2U7XG4gIHZhciBtaW5RdWFsaXR5ID0gMTtcblxuICBmb3IgKHZhciBpID0gMCwgaiA9IDA7IGkgPCBhY2NlcHRzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGVuY29kaW5nID0gcGFyc2VFbmNvZGluZyhhY2NlcHRzW2ldLnRyaW0oKSwgaSk7XG5cbiAgICBpZiAoZW5jb2RpbmcpIHtcbiAgICAgIGFjY2VwdHNbaisrXSA9IGVuY29kaW5nO1xuICAgICAgaGFzSWRlbnRpdHkgPSBoYXNJZGVudGl0eSB8fCBzcGVjaWZ5KCdpZGVudGl0eScsIGVuY29kaW5nKTtcbiAgICAgIG1pblF1YWxpdHkgPSBNYXRoLm1pbihtaW5RdWFsaXR5LCBlbmNvZGluZy5xIHx8IDEpO1xuICAgIH1cbiAgfVxuXG4gIGlmICghaGFzSWRlbnRpdHkpIHtcbiAgICAvKlxuICAgICAqIElmIGlkZW50aXR5IGRvZXNuJ3QgZXhwbGljaXRseSBhcHBlYXIgaW4gdGhlIGFjY2VwdC1lbmNvZGluZyBoZWFkZXIsXG4gICAgICogaXQncyBhZGRlZCB0byB0aGUgbGlzdCBvZiBhY2NlcHRhYmxlIGVuY29kaW5nIHdpdGggdGhlIGxvd2VzdCBxXG4gICAgICovXG4gICAgYWNjZXB0c1tqKytdID0ge1xuICAgICAgZW5jb2Rpbmc6ICdpZGVudGl0eScsXG4gICAgICBxOiBtaW5RdWFsaXR5LFxuICAgICAgaTogaVxuICAgIH07XG4gIH1cblxuICAvLyB0cmltIGFjY2VwdHNcbiAgYWNjZXB0cy5sZW5ndGggPSBqO1xuXG4gIHJldHVybiBhY2NlcHRzO1xufVxuXG4vKipcbiAqIFBhcnNlIGFuIGVuY29kaW5nIGZyb20gdGhlIEFjY2VwdC1FbmNvZGluZyBoZWFkZXIuXG4gKiBAcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIHBhcnNlRW5jb2Rpbmcoc3RyLCBpKSB7XG4gIHZhciBtYXRjaCA9IHNpbXBsZUVuY29kaW5nUmVnRXhwLmV4ZWMoc3RyKTtcbiAgaWYgKCFtYXRjaCkgcmV0dXJuIG51bGw7XG5cbiAgdmFyIGVuY29kaW5nID0gbWF0Y2hbMV07XG4gIHZhciBxID0gMTtcbiAgaWYgKG1hdGNoWzJdKSB7XG4gICAgdmFyIHBhcmFtcyA9IG1hdGNoWzJdLnNwbGl0KCc7Jyk7XG4gICAgZm9yICh2YXIgaiA9IDA7IGogPCBwYXJhbXMubGVuZ3RoOyBqKyspIHtcbiAgICAgIHZhciBwID0gcGFyYW1zW2pdLnRyaW0oKS5zcGxpdCgnPScpO1xuICAgICAgaWYgKHBbMF0gPT09ICdxJykge1xuICAgICAgICBxID0gcGFyc2VGbG9hdChwWzFdKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBlbmNvZGluZzogZW5jb2RpbmcsXG4gICAgcTogcSxcbiAgICBpOiBpXG4gIH07XG59XG5cbi8qKlxuICogR2V0IHRoZSBwcmlvcml0eSBvZiBhbiBlbmNvZGluZy5cbiAqIEBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gZ2V0RW5jb2RpbmdQcmlvcml0eShlbmNvZGluZywgYWNjZXB0ZWQsIGluZGV4KSB7XG4gIHZhciBwcmlvcml0eSA9IHtlbmNvZGluZzogZW5jb2RpbmcsIG86IC0xLCBxOiAwLCBzOiAwfTtcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IGFjY2VwdGVkLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIHNwZWMgPSBzcGVjaWZ5KGVuY29kaW5nLCBhY2NlcHRlZFtpXSwgaW5kZXgpO1xuXG4gICAgaWYgKHNwZWMgJiYgKHByaW9yaXR5LnMgLSBzcGVjLnMgfHwgcHJpb3JpdHkucSAtIHNwZWMucSB8fCBwcmlvcml0eS5vIC0gc3BlYy5vKSA8IDApIHtcbiAgICAgIHByaW9yaXR5ID0gc3BlYztcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcHJpb3JpdHk7XG59XG5cbi8qKlxuICogR2V0IHRoZSBzcGVjaWZpY2l0eSBvZiB0aGUgZW5jb2RpbmcuXG4gKiBAcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIHNwZWNpZnkoZW5jb2RpbmcsIHNwZWMsIGluZGV4KSB7XG4gIHZhciBzID0gMDtcbiAgaWYoc3BlYy5lbmNvZGluZy50b0xvd2VyQ2FzZSgpID09PSBlbmNvZGluZy50b0xvd2VyQ2FzZSgpKXtcbiAgICBzIHw9IDE7XG4gIH0gZWxzZSBpZiAoc3BlYy5lbmNvZGluZyAhPT0gJyonICkge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICByZXR1cm4ge1xuICAgIGVuY29kaW5nOiBlbmNvZGluZyxcbiAgICBpOiBpbmRleCxcbiAgICBvOiBzcGVjLmksXG4gICAgcTogc3BlYy5xLFxuICAgIHM6IHNcbiAgfVxufTtcblxuLyoqXG4gKiBHZXQgdGhlIHByZWZlcnJlZCBlbmNvZGluZ3MgZnJvbSBhbiBBY2NlcHQtRW5jb2RpbmcgaGVhZGVyLlxuICogQHB1YmxpY1xuICovXG5cbmZ1bmN0aW9uIHByZWZlcnJlZEVuY29kaW5ncyhhY2NlcHQsIHByb3ZpZGVkLCBwcmVmZXJyZWQpIHtcbiAgdmFyIGFjY2VwdHMgPSBwYXJzZUFjY2VwdEVuY29kaW5nKGFjY2VwdCB8fCAnJyk7XG5cbiAgdmFyIGNvbXBhcmF0b3IgPSBwcmVmZXJyZWQgPyBmdW5jdGlvbiBjb21wYXJhdG9yIChhLCBiKSB7XG4gICAgaWYgKGEucSAhPT0gYi5xKSB7XG4gICAgICByZXR1cm4gYi5xIC0gYS5xIC8vIGhpZ2hlciBxdWFsaXR5IGZpcnN0XG4gICAgfVxuXG4gICAgdmFyIGFQcmVmZXJyZWQgPSBwcmVmZXJyZWQuaW5kZXhPZihhLmVuY29kaW5nKVxuICAgIHZhciBiUHJlZmVycmVkID0gcHJlZmVycmVkLmluZGV4T2YoYi5lbmNvZGluZylcblxuICAgIGlmIChhUHJlZmVycmVkID09PSAtMSAmJiBiUHJlZmVycmVkID09PSAtMSkge1xuICAgICAgLy8gY29uc2lkZXIgdGhlIG9yaWdpbmFsIHNwZWNpZml0eS9vcmRlclxuICAgICAgcmV0dXJuIChiLnMgLSBhLnMpIHx8IChhLm8gLSBiLm8pIHx8IChhLmkgLSBiLmkpXG4gICAgfVxuXG4gICAgaWYgKGFQcmVmZXJyZWQgIT09IC0xICYmIGJQcmVmZXJyZWQgIT09IC0xKSB7XG4gICAgICByZXR1cm4gYVByZWZlcnJlZCAtIGJQcmVmZXJyZWQgLy8gY29uc2lkZXIgdGhlIHByZWZlcnJlZCBvcmRlclxuICAgIH1cblxuICAgIHJldHVybiBhUHJlZmVycmVkID09PSAtMSA/IDEgOiAtMSAvLyBwcmVmZXJyZWQgZmlyc3RcbiAgfSA6IGNvbXBhcmVTcGVjcztcblxuICBpZiAoIXByb3ZpZGVkKSB7XG4gICAgLy8gc29ydGVkIGxpc3Qgb2YgYWxsIGVuY29kaW5nc1xuICAgIHJldHVybiBhY2NlcHRzXG4gICAgICAuZmlsdGVyKGlzUXVhbGl0eSlcbiAgICAgIC5zb3J0KGNvbXBhcmF0b3IpXG4gICAgICAubWFwKGdldEZ1bGxFbmNvZGluZyk7XG4gIH1cblxuICB2YXIgcHJpb3JpdGllcyA9IHByb3ZpZGVkLm1hcChmdW5jdGlvbiBnZXRQcmlvcml0eSh0eXBlLCBpbmRleCkge1xuICAgIHJldHVybiBnZXRFbmNvZGluZ1ByaW9yaXR5KHR5cGUsIGFjY2VwdHMsIGluZGV4KTtcbiAgfSk7XG5cbiAgLy8gc29ydGVkIGxpc3Qgb2YgYWNjZXB0ZWQgZW5jb2RpbmdzXG4gIHJldHVybiBwcmlvcml0aWVzLmZpbHRlcihpc1F1YWxpdHkpLnNvcnQoY29tcGFyYXRvcikubWFwKGZ1bmN0aW9uIGdldEVuY29kaW5nKHByaW9yaXR5KSB7XG4gICAgcmV0dXJuIHByb3ZpZGVkW3ByaW9yaXRpZXMuaW5kZXhPZihwcmlvcml0eSldO1xuICB9KTtcbn1cblxuLyoqXG4gKiBDb21wYXJlIHR3byBzcGVjcy5cbiAqIEBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gY29tcGFyZVNwZWNzKGEsIGIpIHtcbiAgcmV0dXJuIChiLnEgLSBhLnEpIHx8IChiLnMgLSBhLnMpIHx8IChhLm8gLSBiLm8pIHx8IChhLmkgLSBiLmkpO1xufVxuXG4vKipcbiAqIEdldCBmdWxsIGVuY29kaW5nIHN0cmluZy5cbiAqIEBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gZ2V0RnVsbEVuY29kaW5nKHNwZWMpIHtcbiAgcmV0dXJuIHNwZWMuZW5jb2Rpbmc7XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgYSBzcGVjIGhhcyBhbnkgcXVhbGl0eS5cbiAqIEBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gaXNRdWFsaXR5KHNwZWMpIHtcbiAgcmV0dXJuIHNwZWMucSA+IDA7XG59XG4iLCAiLyoqXG4gKiBuZWdvdGlhdG9yXG4gKiBDb3B5cmlnaHQoYykgMjAxMiBJc2FhYyBaLiBTY2hsdWV0ZXJcbiAqIENvcHlyaWdodChjKSAyMDE0IEZlZGVyaWNvIFJvbWVyb1xuICogQ29weXJpZ2h0KGMpIDIwMTQtMjAxNSBEb3VnbGFzIENocmlzdG9waGVyIFdpbHNvblxuICogTUlUIExpY2Vuc2VkXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG4vKipcbiAqIE1vZHVsZSBleHBvcnRzLlxuICogQHB1YmxpY1xuICovXG5cbm1vZHVsZS5leHBvcnRzID0gcHJlZmVycmVkTGFuZ3VhZ2VzO1xubW9kdWxlLmV4cG9ydHMucHJlZmVycmVkTGFuZ3VhZ2VzID0gcHJlZmVycmVkTGFuZ3VhZ2VzO1xuXG4vKipcbiAqIE1vZHVsZSB2YXJpYWJsZXMuXG4gKiBAcHJpdmF0ZVxuICovXG5cbnZhciBzaW1wbGVMYW5ndWFnZVJlZ0V4cCA9IC9eXFxzKihbXlxcc1xcLTtdKykoPzotKFteXFxzO10rKSk/XFxzKig/OjsoLiopKT8kLztcblxuLyoqXG4gKiBQYXJzZSB0aGUgQWNjZXB0LUxhbmd1YWdlIGhlYWRlci5cbiAqIEBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gcGFyc2VBY2NlcHRMYW5ndWFnZShhY2NlcHQpIHtcbiAgdmFyIGFjY2VwdHMgPSBhY2NlcHQuc3BsaXQoJywnKTtcblxuICBmb3IgKHZhciBpID0gMCwgaiA9IDA7IGkgPCBhY2NlcHRzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGxhbmd1YWdlID0gcGFyc2VMYW5ndWFnZShhY2NlcHRzW2ldLnRyaW0oKSwgaSk7XG5cbiAgICBpZiAobGFuZ3VhZ2UpIHtcbiAgICAgIGFjY2VwdHNbaisrXSA9IGxhbmd1YWdlO1xuICAgIH1cbiAgfVxuXG4gIC8vIHRyaW0gYWNjZXB0c1xuICBhY2NlcHRzLmxlbmd0aCA9IGo7XG5cbiAgcmV0dXJuIGFjY2VwdHM7XG59XG5cbi8qKlxuICogUGFyc2UgYSBsYW5ndWFnZSBmcm9tIHRoZSBBY2NlcHQtTGFuZ3VhZ2UgaGVhZGVyLlxuICogQHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBwYXJzZUxhbmd1YWdlKHN0ciwgaSkge1xuICB2YXIgbWF0Y2ggPSBzaW1wbGVMYW5ndWFnZVJlZ0V4cC5leGVjKHN0cik7XG4gIGlmICghbWF0Y2gpIHJldHVybiBudWxsO1xuXG4gIHZhciBwcmVmaXggPSBtYXRjaFsxXVxuICB2YXIgc3VmZml4ID0gbWF0Y2hbMl1cbiAgdmFyIGZ1bGwgPSBwcmVmaXhcblxuICBpZiAoc3VmZml4KSBmdWxsICs9IFwiLVwiICsgc3VmZml4O1xuXG4gIHZhciBxID0gMTtcbiAgaWYgKG1hdGNoWzNdKSB7XG4gICAgdmFyIHBhcmFtcyA9IG1hdGNoWzNdLnNwbGl0KCc7JylcbiAgICBmb3IgKHZhciBqID0gMDsgaiA8IHBhcmFtcy5sZW5ndGg7IGorKykge1xuICAgICAgdmFyIHAgPSBwYXJhbXNbal0uc3BsaXQoJz0nKTtcbiAgICAgIGlmIChwWzBdID09PSAncScpIHEgPSBwYXJzZUZsb2F0KHBbMV0pO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgcHJlZml4OiBwcmVmaXgsXG4gICAgc3VmZml4OiBzdWZmaXgsXG4gICAgcTogcSxcbiAgICBpOiBpLFxuICAgIGZ1bGw6IGZ1bGxcbiAgfTtcbn1cblxuLyoqXG4gKiBHZXQgdGhlIHByaW9yaXR5IG9mIGEgbGFuZ3VhZ2UuXG4gKiBAcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIGdldExhbmd1YWdlUHJpb3JpdHkobGFuZ3VhZ2UsIGFjY2VwdGVkLCBpbmRleCkge1xuICB2YXIgcHJpb3JpdHkgPSB7bzogLTEsIHE6IDAsIHM6IDB9O1xuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgYWNjZXB0ZWQubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgc3BlYyA9IHNwZWNpZnkobGFuZ3VhZ2UsIGFjY2VwdGVkW2ldLCBpbmRleCk7XG5cbiAgICBpZiAoc3BlYyAmJiAocHJpb3JpdHkucyAtIHNwZWMucyB8fCBwcmlvcml0eS5xIC0gc3BlYy5xIHx8IHByaW9yaXR5Lm8gLSBzcGVjLm8pIDwgMCkge1xuICAgICAgcHJpb3JpdHkgPSBzcGVjO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBwcmlvcml0eTtcbn1cblxuLyoqXG4gKiBHZXQgdGhlIHNwZWNpZmljaXR5IG9mIHRoZSBsYW5ndWFnZS5cbiAqIEBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gc3BlY2lmeShsYW5ndWFnZSwgc3BlYywgaW5kZXgpIHtcbiAgdmFyIHAgPSBwYXJzZUxhbmd1YWdlKGxhbmd1YWdlKVxuICBpZiAoIXApIHJldHVybiBudWxsO1xuICB2YXIgcyA9IDA7XG4gIGlmKHNwZWMuZnVsbC50b0xvd2VyQ2FzZSgpID09PSBwLmZ1bGwudG9Mb3dlckNhc2UoKSl7XG4gICAgcyB8PSA0O1xuICB9IGVsc2UgaWYgKHNwZWMucHJlZml4LnRvTG93ZXJDYXNlKCkgPT09IHAuZnVsbC50b0xvd2VyQ2FzZSgpKSB7XG4gICAgcyB8PSAyO1xuICB9IGVsc2UgaWYgKHNwZWMuZnVsbC50b0xvd2VyQ2FzZSgpID09PSBwLnByZWZpeC50b0xvd2VyQ2FzZSgpKSB7XG4gICAgcyB8PSAxO1xuICB9IGVsc2UgaWYgKHNwZWMuZnVsbCAhPT0gJyonICkge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICByZXR1cm4ge1xuICAgIGk6IGluZGV4LFxuICAgIG86IHNwZWMuaSxcbiAgICBxOiBzcGVjLnEsXG4gICAgczogc1xuICB9XG59O1xuXG4vKipcbiAqIEdldCB0aGUgcHJlZmVycmVkIGxhbmd1YWdlcyBmcm9tIGFuIEFjY2VwdC1MYW5ndWFnZSBoZWFkZXIuXG4gKiBAcHVibGljXG4gKi9cblxuZnVuY3Rpb24gcHJlZmVycmVkTGFuZ3VhZ2VzKGFjY2VwdCwgcHJvdmlkZWQpIHtcbiAgLy8gUkZDIDI2MTYgc2VjIDE0LjQ6IG5vIGhlYWRlciA9ICpcbiAgdmFyIGFjY2VwdHMgPSBwYXJzZUFjY2VwdExhbmd1YWdlKGFjY2VwdCA9PT0gdW5kZWZpbmVkID8gJyonIDogYWNjZXB0IHx8ICcnKTtcblxuICBpZiAoIXByb3ZpZGVkKSB7XG4gICAgLy8gc29ydGVkIGxpc3Qgb2YgYWxsIGxhbmd1YWdlc1xuICAgIHJldHVybiBhY2NlcHRzXG4gICAgICAuZmlsdGVyKGlzUXVhbGl0eSlcbiAgICAgIC5zb3J0KGNvbXBhcmVTcGVjcylcbiAgICAgIC5tYXAoZ2V0RnVsbExhbmd1YWdlKTtcbiAgfVxuXG4gIHZhciBwcmlvcml0aWVzID0gcHJvdmlkZWQubWFwKGZ1bmN0aW9uIGdldFByaW9yaXR5KHR5cGUsIGluZGV4KSB7XG4gICAgcmV0dXJuIGdldExhbmd1YWdlUHJpb3JpdHkodHlwZSwgYWNjZXB0cywgaW5kZXgpO1xuICB9KTtcblxuICAvLyBzb3J0ZWQgbGlzdCBvZiBhY2NlcHRlZCBsYW5ndWFnZXNcbiAgcmV0dXJuIHByaW9yaXRpZXMuZmlsdGVyKGlzUXVhbGl0eSkuc29ydChjb21wYXJlU3BlY3MpLm1hcChmdW5jdGlvbiBnZXRMYW5ndWFnZShwcmlvcml0eSkge1xuICAgIHJldHVybiBwcm92aWRlZFtwcmlvcml0aWVzLmluZGV4T2YocHJpb3JpdHkpXTtcbiAgfSk7XG59XG5cbi8qKlxuICogQ29tcGFyZSB0d28gc3BlY3MuXG4gKiBAcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIGNvbXBhcmVTcGVjcyhhLCBiKSB7XG4gIHJldHVybiAoYi5xIC0gYS5xKSB8fCAoYi5zIC0gYS5zKSB8fCAoYS5vIC0gYi5vKSB8fCAoYS5pIC0gYi5pKSB8fCAwO1xufVxuXG4vKipcbiAqIEdldCBmdWxsIGxhbmd1YWdlIHN0cmluZy5cbiAqIEBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gZ2V0RnVsbExhbmd1YWdlKHNwZWMpIHtcbiAgcmV0dXJuIHNwZWMuZnVsbDtcbn1cblxuLyoqXG4gKiBDaGVjayBpZiBhIHNwZWMgaGFzIGFueSBxdWFsaXR5LlxuICogQHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBpc1F1YWxpdHkoc3BlYykge1xuICByZXR1cm4gc3BlYy5xID4gMDtcbn1cbiIsICIvKipcbiAqIG5lZ290aWF0b3JcbiAqIENvcHlyaWdodChjKSAyMDEyIElzYWFjIFouIFNjaGx1ZXRlclxuICogQ29weXJpZ2h0KGMpIDIwMTQgRmVkZXJpY28gUm9tZXJvXG4gKiBDb3B5cmlnaHQoYykgMjAxNC0yMDE1IERvdWdsYXMgQ2hyaXN0b3BoZXIgV2lsc29uXG4gKiBNSVQgTGljZW5zZWRcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbi8qKlxuICogTW9kdWxlIGV4cG9ydHMuXG4gKiBAcHVibGljXG4gKi9cblxubW9kdWxlLmV4cG9ydHMgPSBwcmVmZXJyZWRNZWRpYVR5cGVzO1xubW9kdWxlLmV4cG9ydHMucHJlZmVycmVkTWVkaWFUeXBlcyA9IHByZWZlcnJlZE1lZGlhVHlwZXM7XG5cbi8qKlxuICogTW9kdWxlIHZhcmlhYmxlcy5cbiAqIEBwcml2YXRlXG4gKi9cblxudmFyIHNpbXBsZU1lZGlhVHlwZVJlZ0V4cCA9IC9eXFxzKihbXlxcc1xcLztdKylcXC8oW147XFxzXSspXFxzKig/OjsoLiopKT8kLztcblxuLyoqXG4gKiBQYXJzZSB0aGUgQWNjZXB0IGhlYWRlci5cbiAqIEBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gcGFyc2VBY2NlcHQoYWNjZXB0KSB7XG4gIHZhciBhY2NlcHRzID0gc3BsaXRNZWRpYVR5cGVzKGFjY2VwdCk7XG5cbiAgZm9yICh2YXIgaSA9IDAsIGogPSAwOyBpIDwgYWNjZXB0cy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBtZWRpYVR5cGUgPSBwYXJzZU1lZGlhVHlwZShhY2NlcHRzW2ldLnRyaW0oKSwgaSk7XG5cbiAgICBpZiAobWVkaWFUeXBlKSB7XG4gICAgICBhY2NlcHRzW2orK10gPSBtZWRpYVR5cGU7XG4gICAgfVxuICB9XG5cbiAgLy8gdHJpbSBhY2NlcHRzXG4gIGFjY2VwdHMubGVuZ3RoID0gajtcblxuICByZXR1cm4gYWNjZXB0cztcbn1cblxuLyoqXG4gKiBQYXJzZSBhIG1lZGlhIHR5cGUgZnJvbSB0aGUgQWNjZXB0IGhlYWRlci5cbiAqIEBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gcGFyc2VNZWRpYVR5cGUoc3RyLCBpKSB7XG4gIHZhciBtYXRjaCA9IHNpbXBsZU1lZGlhVHlwZVJlZ0V4cC5leGVjKHN0cik7XG4gIGlmICghbWF0Y2gpIHJldHVybiBudWxsO1xuXG4gIHZhciBwYXJhbXMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICB2YXIgcSA9IDE7XG4gIHZhciBzdWJ0eXBlID0gbWF0Y2hbMl07XG4gIHZhciB0eXBlID0gbWF0Y2hbMV07XG5cbiAgaWYgKG1hdGNoWzNdKSB7XG4gICAgdmFyIGt2cHMgPSBzcGxpdFBhcmFtZXRlcnMobWF0Y2hbM10pLm1hcChzcGxpdEtleVZhbHVlUGFpcik7XG5cbiAgICBmb3IgKHZhciBqID0gMDsgaiA8IGt2cHMubGVuZ3RoOyBqKyspIHtcbiAgICAgIHZhciBwYWlyID0ga3Zwc1tqXTtcbiAgICAgIHZhciBrZXkgPSBwYWlyWzBdLnRvTG93ZXJDYXNlKCk7XG4gICAgICB2YXIgdmFsID0gcGFpclsxXTtcblxuICAgICAgLy8gZ2V0IHRoZSB2YWx1ZSwgdW53cmFwcGluZyBxdW90ZXNcbiAgICAgIHZhciB2YWx1ZSA9IHZhbCAmJiB2YWxbMF0gPT09ICdcIicgJiYgdmFsW3ZhbC5sZW5ndGggLSAxXSA9PT0gJ1wiJ1xuICAgICAgICA/IHZhbC5zbGljZSgxLCAtMSlcbiAgICAgICAgOiB2YWw7XG5cbiAgICAgIGlmIChrZXkgPT09ICdxJykge1xuICAgICAgICBxID0gcGFyc2VGbG9hdCh2YWx1ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICAvLyBzdG9yZSBwYXJhbWV0ZXJcbiAgICAgIHBhcmFtc1trZXldID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICB0eXBlOiB0eXBlLFxuICAgIHN1YnR5cGU6IHN1YnR5cGUsXG4gICAgcGFyYW1zOiBwYXJhbXMsXG4gICAgcTogcSxcbiAgICBpOiBpXG4gIH07XG59XG5cbi8qKlxuICogR2V0IHRoZSBwcmlvcml0eSBvZiBhIG1lZGlhIHR5cGUuXG4gKiBAcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIGdldE1lZGlhVHlwZVByaW9yaXR5KHR5cGUsIGFjY2VwdGVkLCBpbmRleCkge1xuICB2YXIgcHJpb3JpdHkgPSB7bzogLTEsIHE6IDAsIHM6IDB9O1xuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgYWNjZXB0ZWQubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgc3BlYyA9IHNwZWNpZnkodHlwZSwgYWNjZXB0ZWRbaV0sIGluZGV4KTtcblxuICAgIGlmIChzcGVjICYmIChwcmlvcml0eS5zIC0gc3BlYy5zIHx8IHByaW9yaXR5LnEgLSBzcGVjLnEgfHwgcHJpb3JpdHkubyAtIHNwZWMubykgPCAwKSB7XG4gICAgICBwcmlvcml0eSA9IHNwZWM7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHByaW9yaXR5O1xufVxuXG4vKipcbiAqIEdldCB0aGUgc3BlY2lmaWNpdHkgb2YgdGhlIG1lZGlhIHR5cGUuXG4gKiBAcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIHNwZWNpZnkodHlwZSwgc3BlYywgaW5kZXgpIHtcbiAgdmFyIHAgPSBwYXJzZU1lZGlhVHlwZSh0eXBlKTtcbiAgdmFyIHMgPSAwO1xuXG4gIGlmICghcCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaWYoc3BlYy50eXBlLnRvTG93ZXJDYXNlKCkgPT0gcC50eXBlLnRvTG93ZXJDYXNlKCkpIHtcbiAgICBzIHw9IDRcbiAgfSBlbHNlIGlmKHNwZWMudHlwZSAhPSAnKicpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGlmKHNwZWMuc3VidHlwZS50b0xvd2VyQ2FzZSgpID09IHAuc3VidHlwZS50b0xvd2VyQ2FzZSgpKSB7XG4gICAgcyB8PSAyXG4gIH0gZWxzZSBpZihzcGVjLnN1YnR5cGUgIT0gJyonKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKHNwZWMucGFyYW1zKTtcbiAgaWYgKGtleXMubGVuZ3RoID4gMCkge1xuICAgIGlmIChrZXlzLmV2ZXJ5KGZ1bmN0aW9uIChrKSB7XG4gICAgICByZXR1cm4gc3BlYy5wYXJhbXNba10gPT0gJyonIHx8IChzcGVjLnBhcmFtc1trXSB8fCAnJykudG9Mb3dlckNhc2UoKSA9PSAocC5wYXJhbXNba10gfHwgJycpLnRvTG93ZXJDYXNlKCk7XG4gICAgfSkpIHtcbiAgICAgIHMgfD0gMVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgaTogaW5kZXgsXG4gICAgbzogc3BlYy5pLFxuICAgIHE6IHNwZWMucSxcbiAgICBzOiBzLFxuICB9XG59XG5cbi8qKlxuICogR2V0IHRoZSBwcmVmZXJyZWQgbWVkaWEgdHlwZXMgZnJvbSBhbiBBY2NlcHQgaGVhZGVyLlxuICogQHB1YmxpY1xuICovXG5cbmZ1bmN0aW9uIHByZWZlcnJlZE1lZGlhVHlwZXMoYWNjZXB0LCBwcm92aWRlZCkge1xuICAvLyBSRkMgMjYxNiBzZWMgMTQuMjogbm8gaGVhZGVyID0gKi8qXG4gIHZhciBhY2NlcHRzID0gcGFyc2VBY2NlcHQoYWNjZXB0ID09PSB1bmRlZmluZWQgPyAnKi8qJyA6IGFjY2VwdCB8fCAnJyk7XG5cbiAgaWYgKCFwcm92aWRlZCkge1xuICAgIC8vIHNvcnRlZCBsaXN0IG9mIGFsbCB0eXBlc1xuICAgIHJldHVybiBhY2NlcHRzXG4gICAgICAuZmlsdGVyKGlzUXVhbGl0eSlcbiAgICAgIC5zb3J0KGNvbXBhcmVTcGVjcylcbiAgICAgIC5tYXAoZ2V0RnVsbFR5cGUpO1xuICB9XG5cbiAgdmFyIHByaW9yaXRpZXMgPSBwcm92aWRlZC5tYXAoZnVuY3Rpb24gZ2V0UHJpb3JpdHkodHlwZSwgaW5kZXgpIHtcbiAgICByZXR1cm4gZ2V0TWVkaWFUeXBlUHJpb3JpdHkodHlwZSwgYWNjZXB0cywgaW5kZXgpO1xuICB9KTtcblxuICAvLyBzb3J0ZWQgbGlzdCBvZiBhY2NlcHRlZCB0eXBlc1xuICByZXR1cm4gcHJpb3JpdGllcy5maWx0ZXIoaXNRdWFsaXR5KS5zb3J0KGNvbXBhcmVTcGVjcykubWFwKGZ1bmN0aW9uIGdldFR5cGUocHJpb3JpdHkpIHtcbiAgICByZXR1cm4gcHJvdmlkZWRbcHJpb3JpdGllcy5pbmRleE9mKHByaW9yaXR5KV07XG4gIH0pO1xufVxuXG4vKipcbiAqIENvbXBhcmUgdHdvIHNwZWNzLlxuICogQHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBjb21wYXJlU3BlY3MoYSwgYikge1xuICByZXR1cm4gKGIucSAtIGEucSkgfHwgKGIucyAtIGEucykgfHwgKGEubyAtIGIubykgfHwgKGEuaSAtIGIuaSkgfHwgMDtcbn1cblxuLyoqXG4gKiBHZXQgZnVsbCB0eXBlIHN0cmluZy5cbiAqIEBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gZ2V0RnVsbFR5cGUoc3BlYykge1xuICByZXR1cm4gc3BlYy50eXBlICsgJy8nICsgc3BlYy5zdWJ0eXBlO1xufVxuXG4vKipcbiAqIENoZWNrIGlmIGEgc3BlYyBoYXMgYW55IHF1YWxpdHkuXG4gKiBAcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIGlzUXVhbGl0eShzcGVjKSB7XG4gIHJldHVybiBzcGVjLnEgPiAwO1xufVxuXG4vKipcbiAqIENvdW50IHRoZSBudW1iZXIgb2YgcXVvdGVzIGluIGEgc3RyaW5nLlxuICogQHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBxdW90ZUNvdW50KHN0cmluZykge1xuICB2YXIgY291bnQgPSAwO1xuICB2YXIgaW5kZXggPSAwO1xuXG4gIHdoaWxlICgoaW5kZXggPSBzdHJpbmcuaW5kZXhPZignXCInLCBpbmRleCkpICE9PSAtMSkge1xuICAgIGNvdW50Kys7XG4gICAgaW5kZXgrKztcbiAgfVxuXG4gIHJldHVybiBjb3VudDtcbn1cblxuLyoqXG4gKiBTcGxpdCBhIGtleSB2YWx1ZSBwYWlyLlxuICogQHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBzcGxpdEtleVZhbHVlUGFpcihzdHIpIHtcbiAgdmFyIGluZGV4ID0gc3RyLmluZGV4T2YoJz0nKTtcbiAgdmFyIGtleTtcbiAgdmFyIHZhbDtcblxuICBpZiAoaW5kZXggPT09IC0xKSB7XG4gICAga2V5ID0gc3RyO1xuICB9IGVsc2Uge1xuICAgIGtleSA9IHN0ci5zbGljZSgwLCBpbmRleCk7XG4gICAgdmFsID0gc3RyLnNsaWNlKGluZGV4ICsgMSk7XG4gIH1cblxuICByZXR1cm4gW2tleSwgdmFsXTtcbn1cblxuLyoqXG4gKiBTcGxpdCBhbiBBY2NlcHQgaGVhZGVyIGludG8gbWVkaWEgdHlwZXMuXG4gKiBAcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIHNwbGl0TWVkaWFUeXBlcyhhY2NlcHQpIHtcbiAgdmFyIGFjY2VwdHMgPSBhY2NlcHQuc3BsaXQoJywnKTtcblxuICBmb3IgKHZhciBpID0gMSwgaiA9IDA7IGkgPCBhY2NlcHRzLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKHF1b3RlQ291bnQoYWNjZXB0c1tqXSkgJSAyID09IDApIHtcbiAgICAgIGFjY2VwdHNbKytqXSA9IGFjY2VwdHNbaV07XG4gICAgfSBlbHNlIHtcbiAgICAgIGFjY2VwdHNbal0gKz0gJywnICsgYWNjZXB0c1tpXTtcbiAgICB9XG4gIH1cblxuICAvLyB0cmltIGFjY2VwdHNcbiAgYWNjZXB0cy5sZW5ndGggPSBqICsgMTtcblxuICByZXR1cm4gYWNjZXB0cztcbn1cblxuLyoqXG4gKiBTcGxpdCBhIHN0cmluZyBvZiBwYXJhbWV0ZXJzLlxuICogQHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBzcGxpdFBhcmFtZXRlcnMoc3RyKSB7XG4gIHZhciBwYXJhbWV0ZXJzID0gc3RyLnNwbGl0KCc7Jyk7XG5cbiAgZm9yICh2YXIgaSA9IDEsIGogPSAwOyBpIDwgcGFyYW1ldGVycy5sZW5ndGg7IGkrKykge1xuICAgIGlmIChxdW90ZUNvdW50KHBhcmFtZXRlcnNbal0pICUgMiA9PSAwKSB7XG4gICAgICBwYXJhbWV0ZXJzWysral0gPSBwYXJhbWV0ZXJzW2ldO1xuICAgIH0gZWxzZSB7XG4gICAgICBwYXJhbWV0ZXJzW2pdICs9ICc7JyArIHBhcmFtZXRlcnNbaV07XG4gICAgfVxuICB9XG5cbiAgLy8gdHJpbSBwYXJhbWV0ZXJzXG4gIHBhcmFtZXRlcnMubGVuZ3RoID0gaiArIDE7XG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBwYXJhbWV0ZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgcGFyYW1ldGVyc1tpXSA9IHBhcmFtZXRlcnNbaV0udHJpbSgpO1xuICB9XG5cbiAgcmV0dXJuIHBhcmFtZXRlcnM7XG59XG4iLCAiLyohXG4gKiBuZWdvdGlhdG9yXG4gKiBDb3B5cmlnaHQoYykgMjAxMiBGZWRlcmljbyBSb21lcm9cbiAqIENvcHlyaWdodChjKSAyMDEyLTIwMTQgSXNhYWMgWi4gU2NobHVldGVyXG4gKiBDb3B5cmlnaHQoYykgMjAxNSBEb3VnbGFzIENocmlzdG9waGVyIFdpbHNvblxuICogTUlUIExpY2Vuc2VkXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgcHJlZmVycmVkQ2hhcnNldHMgPSByZXF1aXJlKCcuL2xpYi9jaGFyc2V0JylcbnZhciBwcmVmZXJyZWRFbmNvZGluZ3MgPSByZXF1aXJlKCcuL2xpYi9lbmNvZGluZycpXG52YXIgcHJlZmVycmVkTGFuZ3VhZ2VzID0gcmVxdWlyZSgnLi9saWIvbGFuZ3VhZ2UnKVxudmFyIHByZWZlcnJlZE1lZGlhVHlwZXMgPSByZXF1aXJlKCcuL2xpYi9tZWRpYVR5cGUnKVxuXG4vKipcbiAqIE1vZHVsZSBleHBvcnRzLlxuICogQHB1YmxpY1xuICovXG5cbm1vZHVsZS5leHBvcnRzID0gTmVnb3RpYXRvcjtcbm1vZHVsZS5leHBvcnRzLk5lZ290aWF0b3IgPSBOZWdvdGlhdG9yO1xuXG4vKipcbiAqIENyZWF0ZSBhIE5lZ290aWF0b3IgaW5zdGFuY2UgZnJvbSBhIHJlcXVlc3QuXG4gKiBAcGFyYW0ge29iamVjdH0gcmVxdWVzdFxuICogQHB1YmxpY1xuICovXG5cbmZ1bmN0aW9uIE5lZ290aWF0b3IocmVxdWVzdCkge1xuICBpZiAoISh0aGlzIGluc3RhbmNlb2YgTmVnb3RpYXRvcikpIHtcbiAgICByZXR1cm4gbmV3IE5lZ290aWF0b3IocmVxdWVzdCk7XG4gIH1cblxuICB0aGlzLnJlcXVlc3QgPSByZXF1ZXN0O1xufVxuXG5OZWdvdGlhdG9yLnByb3RvdHlwZS5jaGFyc2V0ID0gZnVuY3Rpb24gY2hhcnNldChhdmFpbGFibGUpIHtcbiAgdmFyIHNldCA9IHRoaXMuY2hhcnNldHMoYXZhaWxhYmxlKTtcbiAgcmV0dXJuIHNldCAmJiBzZXRbMF07XG59O1xuXG5OZWdvdGlhdG9yLnByb3RvdHlwZS5jaGFyc2V0cyA9IGZ1bmN0aW9uIGNoYXJzZXRzKGF2YWlsYWJsZSkge1xuICByZXR1cm4gcHJlZmVycmVkQ2hhcnNldHModGhpcy5yZXF1ZXN0LmhlYWRlcnNbJ2FjY2VwdC1jaGFyc2V0J10sIGF2YWlsYWJsZSk7XG59O1xuXG5OZWdvdGlhdG9yLnByb3RvdHlwZS5lbmNvZGluZyA9IGZ1bmN0aW9uIGVuY29kaW5nKGF2YWlsYWJsZSwgb3B0cykge1xuICB2YXIgc2V0ID0gdGhpcy5lbmNvZGluZ3MoYXZhaWxhYmxlLCBvcHRzKTtcbiAgcmV0dXJuIHNldCAmJiBzZXRbMF07XG59O1xuXG5OZWdvdGlhdG9yLnByb3RvdHlwZS5lbmNvZGluZ3MgPSBmdW5jdGlvbiBlbmNvZGluZ3MoYXZhaWxhYmxlLCBvcHRpb25zKSB7XG4gIHZhciBvcHRzID0gb3B0aW9ucyB8fCB7fTtcbiAgcmV0dXJuIHByZWZlcnJlZEVuY29kaW5ncyh0aGlzLnJlcXVlc3QuaGVhZGVyc1snYWNjZXB0LWVuY29kaW5nJ10sIGF2YWlsYWJsZSwgb3B0cy5wcmVmZXJyZWQpO1xufTtcblxuTmVnb3RpYXRvci5wcm90b3R5cGUubGFuZ3VhZ2UgPSBmdW5jdGlvbiBsYW5ndWFnZShhdmFpbGFibGUpIHtcbiAgdmFyIHNldCA9IHRoaXMubGFuZ3VhZ2VzKGF2YWlsYWJsZSk7XG4gIHJldHVybiBzZXQgJiYgc2V0WzBdO1xufTtcblxuTmVnb3RpYXRvci5wcm90b3R5cGUubGFuZ3VhZ2VzID0gZnVuY3Rpb24gbGFuZ3VhZ2VzKGF2YWlsYWJsZSkge1xuICByZXR1cm4gcHJlZmVycmVkTGFuZ3VhZ2VzKHRoaXMucmVxdWVzdC5oZWFkZXJzWydhY2NlcHQtbGFuZ3VhZ2UnXSwgYXZhaWxhYmxlKTtcbn07XG5cbk5lZ290aWF0b3IucHJvdG90eXBlLm1lZGlhVHlwZSA9IGZ1bmN0aW9uIG1lZGlhVHlwZShhdmFpbGFibGUpIHtcbiAgdmFyIHNldCA9IHRoaXMubWVkaWFUeXBlcyhhdmFpbGFibGUpO1xuICByZXR1cm4gc2V0ICYmIHNldFswXTtcbn07XG5cbk5lZ290aWF0b3IucHJvdG90eXBlLm1lZGlhVHlwZXMgPSBmdW5jdGlvbiBtZWRpYVR5cGVzKGF2YWlsYWJsZSkge1xuICByZXR1cm4gcHJlZmVycmVkTWVkaWFUeXBlcyh0aGlzLnJlcXVlc3QuaGVhZGVycy5hY2NlcHQsIGF2YWlsYWJsZSk7XG59O1xuXG4vLyBCYWNrd2FyZHMgY29tcGF0aWJpbGl0eVxuTmVnb3RpYXRvci5wcm90b3R5cGUucHJlZmVycmVkQ2hhcnNldCA9IE5lZ290aWF0b3IucHJvdG90eXBlLmNoYXJzZXQ7XG5OZWdvdGlhdG9yLnByb3RvdHlwZS5wcmVmZXJyZWRDaGFyc2V0cyA9IE5lZ290aWF0b3IucHJvdG90eXBlLmNoYXJzZXRzO1xuTmVnb3RpYXRvci5wcm90b3R5cGUucHJlZmVycmVkRW5jb2RpbmcgPSBOZWdvdGlhdG9yLnByb3RvdHlwZS5lbmNvZGluZztcbk5lZ290aWF0b3IucHJvdG90eXBlLnByZWZlcnJlZEVuY29kaW5ncyA9IE5lZ290aWF0b3IucHJvdG90eXBlLmVuY29kaW5ncztcbk5lZ290aWF0b3IucHJvdG90eXBlLnByZWZlcnJlZExhbmd1YWdlID0gTmVnb3RpYXRvci5wcm90b3R5cGUubGFuZ3VhZ2U7XG5OZWdvdGlhdG9yLnByb3RvdHlwZS5wcmVmZXJyZWRMYW5ndWFnZXMgPSBOZWdvdGlhdG9yLnByb3RvdHlwZS5sYW5ndWFnZXM7XG5OZWdvdGlhdG9yLnByb3RvdHlwZS5wcmVmZXJyZWRNZWRpYVR5cGUgPSBOZWdvdGlhdG9yLnByb3RvdHlwZS5tZWRpYVR5cGU7XG5OZWdvdGlhdG9yLnByb3RvdHlwZS5wcmVmZXJyZWRNZWRpYVR5cGVzID0gTmVnb3RpYXRvci5wcm90b3R5cGUubWVkaWFUeXBlcztcbiIsICIvKiFcbiAqIGNvbXByZXNzaWJsZVxuICogQ29weXJpZ2h0KGMpIDIwMTMgSm9uYXRoYW4gT25nXG4gKiBDb3B5cmlnaHQoYykgMjAxNCBKZXJlbWlhaCBTZW5rcGllbFxuICogQ29weXJpZ2h0KGMpIDIwMTUgRG91Z2xhcyBDaHJpc3RvcGhlciBXaWxzb25cbiAqIE1JVCBMaWNlbnNlZFxuICovXG5cbid1c2Ugc3RyaWN0J1xuXG4vKipcbiAqIE1vZHVsZSBkZXBlbmRlbmNpZXMuXG4gKiBAcHJpdmF0ZVxuICovXG5cbnZhciBkYiA9IHJlcXVpcmUoJ21pbWUtZGInKVxuXG4vKipcbiAqIE1vZHVsZSB2YXJpYWJsZXMuXG4gKiBAcHJpdmF0ZVxuICovXG5cbnZhciBDT01QUkVTU0lCTEVfVFlQRV9SRUdFWFAgPSAvXnRleHRcXC98XFwrKD86anNvbnx0ZXh0fHhtbCkkL2lcbnZhciBFWFRSQUNUX1RZUEVfUkVHRVhQID0gL15cXHMqKFteO1xcc10qKSg/Ojt8XFxzfCQpL1xuXG4vKipcbiAqIE1vZHVsZSBleHBvcnRzLlxuICogQHB1YmxpY1xuICovXG5cbm1vZHVsZS5leHBvcnRzID0gY29tcHJlc3NpYmxlXG5cbi8qKlxuICogQ2hlY2tzIGlmIGEgdHlwZSBpcyBjb21wcmVzc2libGUuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHR5cGVcbiAqIEByZXR1cm4ge0Jvb2xlYW59IGNvbXByZXNzaWJsZVxuICogQHB1YmxpY1xuICovXG5cbmZ1bmN0aW9uIGNvbXByZXNzaWJsZSAodHlwZSkge1xuICBpZiAoIXR5cGUgfHwgdHlwZW9mIHR5cGUgIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICAvLyBzdHJpcCBwYXJhbWV0ZXJzXG4gIHZhciBtYXRjaCA9IEVYVFJBQ1RfVFlQRV9SRUdFWFAuZXhlYyh0eXBlKVxuICB2YXIgbWltZSA9IG1hdGNoICYmIG1hdGNoWzFdLnRvTG93ZXJDYXNlKClcbiAgdmFyIGRhdGEgPSBkYlttaW1lXVxuXG4gIC8vIHJldHVybiBkYXRhYmFzZSBpbmZvcm1hdGlvblxuICBpZiAoZGF0YSAmJiBkYXRhLmNvbXByZXNzaWJsZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIGRhdGEuY29tcHJlc3NpYmxlXG4gIH1cblxuICAvLyBmYWxsYmFjayB0byByZWdleHAgb3IgdW5rbm93blxuICByZXR1cm4gQ09NUFJFU1NJQkxFX1RZUEVfUkVHRVhQLnRlc3QobWltZSkgfHwgdW5kZWZpbmVkXG59XG4iLCAiLyoqXG4gKiBjb21tb24uanM6IEludGVybmFsIGhlbHBlciBhbmQgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIHdpbnN0b24uXG4gKlxuICogKEMpIDIwMTAgQ2hhcmxpZSBSb2JiaW5zXG4gKiBNSVQgTElDRU5DRVxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuY29uc3QgeyBmb3JtYXQgfSA9IHJlcXVpcmUoJ3V0aWwnKTtcblxuLyoqXG4gKiBTZXQgb2Ygc2ltcGxlIGRlcHJlY2F0aW9uIG5vdGljZXMgYW5kIGEgd2F5IHRvIGV4cG9zZSB0aGVtIGZvciBhIHNldCBvZlxuICogcHJvcGVydGllcy5cbiAqIEB0eXBlIHtPYmplY3R9XG4gKiBAcHJpdmF0ZVxuICovXG5leHBvcnRzLndhcm4gPSB7XG4gIGRlcHJlY2F0ZWQocHJvcCkge1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoZm9ybWF0KCd7ICVzIH0gd2FzIHJlbW92ZWQgaW4gd2luc3RvbkAzLjAuMC4nLCBwcm9wKSk7XG4gICAgfTtcbiAgfSxcbiAgdXNlRm9ybWF0KHByb3ApIHtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFtcbiAgICAgICAgZm9ybWF0KCd7ICVzIH0gd2FzIHJlbW92ZWQgaW4gd2luc3RvbkAzLjAuMC4nLCBwcm9wKSxcbiAgICAgICAgJ1VzZSBhIGN1c3RvbSB3aW5zdG9uLmZvcm1hdCA9IHdpbnN0b24uZm9ybWF0KGZ1bmN0aW9uKSBpbnN0ZWFkLidcbiAgICAgIF0uam9pbignXFxuJykpO1xuICAgIH07XG4gIH0sXG4gIGZvckZ1bmN0aW9ucyhvYmosIHR5cGUsIHByb3BzKSB7XG4gICAgcHJvcHMuZm9yRWFjaChwcm9wID0+IHtcbiAgICAgIG9ialtwcm9wXSA9IGV4cG9ydHMud2Fyblt0eXBlXShwcm9wKTtcbiAgICB9KTtcbiAgfSxcbiAgZm9yUHJvcGVydGllcyhvYmosIHR5cGUsIHByb3BzKSB7XG4gICAgcHJvcHMuZm9yRWFjaChwcm9wID0+IHtcbiAgICAgIGNvbnN0IG5vdGljZSA9IGV4cG9ydHMud2Fyblt0eXBlXShwcm9wKTtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIHByb3AsIHtcbiAgICAgICAgZ2V0OiBub3RpY2UsXG4gICAgICAgIHNldDogbm90aWNlXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxufTtcbiIsICJ7XG5cdFwibmFtZVwiOiBcIndpbnN0b25cIixcblx0XCJkZXNjcmlwdGlvblwiOiBcIkEgbG9nZ2VyIGZvciBqdXN0IGFib3V0IGV2ZXJ5dGhpbmcuXCIsXG5cdFwidmVyc2lvblwiOiBcIjMuMTkuMFwiLFxuXHRcImF1dGhvclwiOiBcIkNoYXJsaWUgUm9iYmlucyA8Y2hhcmxpZS5yb2JiaW5zQGdtYWlsLmNvbT5cIixcblx0XCJtYWludGFpbmVyc1wiOiBbXG5cdFx0XCJEYXZpZCBIeWRlIDxkYWJoQGFsdW1uaS5zdGFuZm9yZC5lZHU+XCJcblx0XSxcblx0XCJyZXBvc2l0b3J5XCI6IHtcblx0XHRcInR5cGVcIjogXCJnaXRcIixcblx0XHRcInVybFwiOiBcImh0dHBzOi8vZ2l0aHViLmNvbS93aW5zdG9uanMvd2luc3Rvbi5naXRcIlxuXHR9LFxuXHRcImtleXdvcmRzXCI6IFtcblx0XHRcIndpbnN0b25cIixcblx0XHRcImxvZ2dlclwiLFxuXHRcdFwibG9nZ2luZ1wiLFxuXHRcdFwibG9nc1wiLFxuXHRcdFwic3lzYWRtaW5cIixcblx0XHRcImJ1bnlhblwiLFxuXHRcdFwicGlub1wiLFxuXHRcdFwibG9nbGV2ZWxcIixcblx0XHRcInRvb2xzXCIsXG5cdFx0XCJqc29uXCIsXG5cdFx0XCJzdHJlYW1cIlxuXHRdLFxuXHRcImRlcGVuZGVuY2llc1wiOiB7XG5cdFx0XCJAZGFiaC9kaWFnbm9zdGljc1wiOiBcIl4yLjAuOFwiLFxuXHRcdFwiQGNvbG9ycy9jb2xvcnNcIjogXCJeMS42LjBcIixcblx0XHRcImFzeW5jXCI6IFwiXjMuMi4zXCIsXG5cdFx0XCJpcy1zdHJlYW1cIjogXCJeMi4wLjBcIixcblx0XHRcImxvZ2Zvcm1cIjogXCJeMi43LjBcIixcblx0XHRcIm9uZS10aW1lXCI6IFwiXjEuMC4wXCIsXG5cdFx0XCJyZWFkYWJsZS1zdHJlYW1cIjogXCJeMy40LjBcIixcblx0XHRcInNhZmUtc3RhYmxlLXN0cmluZ2lmeVwiOiBcIl4yLjMuMVwiLFxuXHRcdFwic3RhY2stdHJhY2VcIjogXCIwLjAueFwiLFxuXHRcdFwidHJpcGxlLWJlYW1cIjogXCJeMS4zLjBcIixcblx0XHRcIndpbnN0b24tdHJhbnNwb3J0XCI6IFwiXjQuOS4wXCJcblx0fSxcblx0XCJkZXZEZXBlbmRlbmNpZXNcIjoge1xuXHRcdFwiQGJhYmVsL2NsaVwiOiBcIl43LjIzLjlcIixcblx0XHRcIkBiYWJlbC9jb3JlXCI6IFwiXjcuMjQuMFwiLFxuXHRcdFwiQGJhYmVsL3ByZXNldC1lbnZcIjogXCJeNy4yNC4wXCIsXG5cdFx0XCJAZGFiaC9lc2xpbnQtY29uZmlnLXBvcHVsaXN0XCI6IFwiXjQuNC4wXCIsXG5cdFx0XCJAdHlwZXMvbm9kZVwiOiBcIl4yMC4xMS4yNFwiLFxuXHRcdFwiYWJzdHJhY3Qtd2luc3Rvbi10cmFuc3BvcnRcIjogXCJeMC41LjFcIixcblx0XHRcImFzc3VtZVwiOiBcIl4yLjIuMFwiLFxuXHRcdFwiY3Jvc3Mtc3Bhd24tYXN5bmNcIjogXCJeMi4yLjVcIixcblx0XHRcImVzbGludFwiOiBcIl44LjU3LjBcIixcblx0XHRcImhvY2tcIjogXCJeMS40LjFcIixcblx0XHRcImplc3RcIjogXCJeMjkuNy4wXCIsXG5cdFx0XCJyaW1yYWZcIjogXCI1LjAuMTBcIixcblx0XHRcInNwbGl0MlwiOiBcIl40LjEuMFwiLFxuXHRcdFwic3RkLW1vY2tzXCI6IFwiXjIuMC4wXCIsXG5cdFx0XCJ0aHJvdWdoMlwiOiBcIl40LjAuMlwiLFxuXHRcdFwid2luc3Rvbi1jb21wYXRcIjogXCJeMC4xLjVcIlxuXHR9LFxuXHRcIm1haW5cIjogXCIuL2xpYi93aW5zdG9uLmpzXCIsXG5cdFwiYnJvd3NlclwiOiBcIi4vZGlzdC93aW5zdG9uXCIsXG5cdFwidHlwZXNcIjogXCIuL2luZGV4LmQudHNcIixcblx0XCJzY3JpcHRzXCI6IHtcblx0XHRcImxpbnRcIjogXCJlc2xpbnQgbGliLyouanMgbGliL3dpbnN0b24vKi5qcyBsaWIvd2luc3Rvbi8qKi8qLmpzIC0tcmVzb2x2ZS1wbHVnaW5zLXJlbGF0aXZlLXRvIC4vbm9kZV9tb2R1bGVzL0BkYWJoL2VzbGludC1jb25maWctcG9wdWxpc3RcIixcblx0XHRcInRlc3RcIjogXCJqZXN0XCIsXG5cdFx0XCJ0ZXN0OnVuaXRcIjogXCJqZXN0IC1jIHRlc3QvamVzdC5jb25maWcudW5pdC5qc1wiLFxuXHRcdFwidGVzdDppbnRlZ3JhdGlvblwiOiBcImplc3QgLWMgdGVzdC9qZXN0LmNvbmZpZy5pbnRlZ3JhdGlvbi5qc1wiLFxuXHRcdFwidGVzdDp0eXBlc2NyaXB0XCI6IFwibnB4IC0tcGFja2FnZSB0eXBlc2NyaXB0IHRzYyAtLXByb2plY3QgdGVzdFwiLFxuXHRcdFwiYnVpbGRcIjogXCJiYWJlbCBsaWIgLWQgZGlzdFwiLFxuXHRcdFwicHJlYnVpbGRcIjogXCJyaW1yYWYgZGlzdFwiLFxuXHRcdFwicHJlcHVibGlzaE9ubHlcIjogXCJucG0gcnVuIGJ1aWxkXCJcblx0fSxcblx0XCJlbmdpbmVzXCI6IHtcblx0XHRcIm5vZGVcIjogXCI+PSAxMi4wLjBcIlxuXHR9LFxuXHRcImxpY2Vuc2VcIjogXCJNSVRcIlxufVxuIiwgIi8qIGVzbGludC1kaXNhYmxlIG5vLWNvbnNvbGUgKi9cbi8qXG4gKiBjb25zb2xlLmpzOiBUcmFuc3BvcnQgZm9yIG91dHB1dHRpbmcgdG8gdGhlIGNvbnNvbGUuXG4gKlxuICogKEMpIDIwMTAgQ2hhcmxpZSBSb2JiaW5zXG4gKiBNSVQgTElDRU5DRVxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuY29uc3Qgb3MgPSByZXF1aXJlKCdvcycpO1xuY29uc3QgeyBMRVZFTCwgTUVTU0FHRSB9ID0gcmVxdWlyZSgndHJpcGxlLWJlYW0nKTtcbmNvbnN0IFRyYW5zcG9ydFN0cmVhbSA9IHJlcXVpcmUoJ3dpbnN0b24tdHJhbnNwb3J0Jyk7XG5cbi8qKlxuICogVHJhbnNwb3J0IGZvciBvdXRwdXR0aW5nIHRvIHRoZSBjb25zb2xlLlxuICogQHR5cGUge0NvbnNvbGV9XG4gKiBAZXh0ZW5kcyB7VHJhbnNwb3J0U3RyZWFtfVxuICovXG5tb2R1bGUuZXhwb3J0cyA9IGNsYXNzIENvbnNvbGUgZXh0ZW5kcyBUcmFuc3BvcnRTdHJlYW0ge1xuICAvKipcbiAgICogQ29uc3RydWN0b3IgZnVuY3Rpb24gZm9yIHRoZSBDb25zb2xlIHRyYW5zcG9ydCBvYmplY3QgcmVzcG9uc2libGUgZm9yXG4gICAqIHBlcnNpc3RpbmcgbG9nIG1lc3NhZ2VzIGFuZCBtZXRhZGF0YSB0byBhIHRlcm1pbmFsIG9yIFRUWS5cbiAgICogQHBhcmFtIHshT2JqZWN0fSBbb3B0aW9ucz17fV0gLSBPcHRpb25zIGZvciB0aGlzIGluc3RhbmNlLlxuICAgKi9cbiAgY29uc3RydWN0b3Iob3B0aW9ucyA9IHt9KSB7XG4gICAgc3VwZXIob3B0aW9ucyk7XG5cbiAgICAvLyBFeHBvc2UgdGhlIG5hbWUgb2YgdGhpcyBUcmFuc3BvcnQgb24gdGhlIHByb3RvdHlwZVxuICAgIHRoaXMubmFtZSA9IG9wdGlvbnMubmFtZSB8fCAnY29uc29sZSc7XG4gICAgdGhpcy5zdGRlcnJMZXZlbHMgPSB0aGlzLl9zdHJpbmdBcnJheVRvU2V0KG9wdGlvbnMuc3RkZXJyTGV2ZWxzKTtcbiAgICB0aGlzLmNvbnNvbGVXYXJuTGV2ZWxzID0gdGhpcy5fc3RyaW5nQXJyYXlUb1NldChvcHRpb25zLmNvbnNvbGVXYXJuTGV2ZWxzKTtcbiAgICB0aGlzLmVvbCA9IHR5cGVvZiBvcHRpb25zLmVvbCA9PT0gJ3N0cmluZycgPyBvcHRpb25zLmVvbCA6IG9zLkVPTDtcbiAgICB0aGlzLmZvcmNlQ29uc29sZSA9IG9wdGlvbnMuZm9yY2VDb25zb2xlIHx8IGZhbHNlO1xuXG4gICAgLy8gS2VlcCBhIHJlZmVyZW5jZSB0byB0aGUgbG9nLCB3YXJuLCBhbmQgZXJyb3IgY29uc29sZSBtZXRob2RzXG4gICAgLy8gaW4gY2FzZSB0aGV5IGdldCByZWRpcmVjdGVkIHRvIHRoaXMgdHJhbnNwb3J0IGFmdGVyIHRoZSBsb2dnZXIgaXNcbiAgICAvLyBpbnN0YW50aWF0ZWQuIFRoaXMgcHJldmVudHMgYSBjaXJjdWxhciByZWZlcmVuY2UgaXNzdWUuXG4gICAgdGhpcy5fY29uc29sZUxvZyA9IGNvbnNvbGUubG9nLmJpbmQoY29uc29sZSk7XG4gICAgdGhpcy5fY29uc29sZVdhcm4gPSBjb25zb2xlLndhcm4uYmluZChjb25zb2xlKTtcbiAgICB0aGlzLl9jb25zb2xlRXJyb3IgPSBjb25zb2xlLmVycm9yLmJpbmQoY29uc29sZSk7XG5cbiAgICB0aGlzLnNldE1heExpc3RlbmVycygzMCk7XG4gIH1cblxuICAvKipcbiAgICogQ29yZSBsb2dnaW5nIG1ldGhvZCBleHBvc2VkIHRvIFdpbnN0b24uXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBpbmZvIC0gVE9ETzogYWRkIHBhcmFtIGRlc2NyaXB0aW9uLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBjYWxsYmFjayAtIFRPRE86IGFkZCBwYXJhbSBkZXNjcmlwdGlvbi5cbiAgICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAgICovXG4gIGxvZyhpbmZvLCBjYWxsYmFjaykge1xuICAgIHNldEltbWVkaWF0ZSgoKSA9PiB0aGlzLmVtaXQoJ2xvZ2dlZCcsIGluZm8pKTtcblxuICAgIC8vIFJlbWFyazogd2hhdCBpZiB0aGVyZSBpcyBubyByYXcuLi4/XG4gICAgaWYgKHRoaXMuc3RkZXJyTGV2ZWxzW2luZm9bTEVWRUxdXSkge1xuICAgICAgaWYgKGNvbnNvbGUuX3N0ZGVyciAmJiAhdGhpcy5mb3JjZUNvbnNvbGUpIHtcbiAgICAgICAgLy8gTm9kZS5qcyBtYXBzIGBwcm9jZXNzLnN0ZGVycmAgdG8gYGNvbnNvbGUuX3N0ZGVycmAuXG4gICAgICAgIGNvbnNvbGUuX3N0ZGVyci53cml0ZShgJHtpbmZvW01FU1NBR0VdfSR7dGhpcy5lb2x9YCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBjb25zb2xlLmVycm9yIGFkZHMgYSBuZXdsaW5lXG4gICAgICAgIHRoaXMuX2NvbnNvbGVFcnJvcihpbmZvW01FU1NBR0VdKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGNhbGxiYWNrKSB7XG4gICAgICAgIGNhbGxiYWNrKCk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgY2FsbGJhY2stcmV0dXJuXG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIGlmICh0aGlzLmNvbnNvbGVXYXJuTGV2ZWxzW2luZm9bTEVWRUxdXSkge1xuICAgICAgaWYgKGNvbnNvbGUuX3N0ZGVyciAmJiAhdGhpcy5mb3JjZUNvbnNvbGUpIHtcbiAgICAgICAgLy8gTm9kZS5qcyBtYXBzIGBwcm9jZXNzLnN0ZGVycmAgdG8gYGNvbnNvbGUuX3N0ZGVycmAuXG4gICAgICAgIC8vIGluIE5vZGUuanMgY29uc29sZS53YXJuIGlzIGFuIGFsaWFzIGZvciBjb25zb2xlLmVycm9yXG4gICAgICAgIGNvbnNvbGUuX3N0ZGVyci53cml0ZShgJHtpbmZvW01FU1NBR0VdfSR7dGhpcy5lb2x9YCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBjb25zb2xlLndhcm4gYWRkcyBhIG5ld2xpbmVcbiAgICAgICAgdGhpcy5fY29uc29sZVdhcm4oaW5mb1tNRVNTQUdFXSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgICBjYWxsYmFjaygpOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIGNhbGxiYWNrLXJldHVyblxuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChjb25zb2xlLl9zdGRvdXQgJiYgIXRoaXMuZm9yY2VDb25zb2xlKSB7XG4gICAgICAvLyBOb2RlLmpzIG1hcHMgYHByb2Nlc3Muc3Rkb3V0YCB0byBgY29uc29sZS5fc3Rkb3V0YC5cbiAgICAgIGNvbnNvbGUuX3N0ZG91dC53cml0ZShgJHtpbmZvW01FU1NBR0VdfSR7dGhpcy5lb2x9YCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGNvbnNvbGUubG9nIGFkZHMgYSBuZXdsaW5lLlxuICAgICAgdGhpcy5fY29uc29sZUxvZyhpbmZvW01FU1NBR0VdKTtcbiAgICB9XG5cbiAgICBpZiAoY2FsbGJhY2spIHtcbiAgICAgIGNhbGxiYWNrKCk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgY2FsbGJhY2stcmV0dXJuXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBTZXQtbGlrZSBvYmplY3Qgd2l0aCBzdHJBcnJheSdzIGVsZW1lbnRzIGFzIGtleXMgKGVhY2ggd2l0aCB0aGVcbiAgICogdmFsdWUgdHJ1ZSkuXG4gICAqIEBwYXJhbSB7QXJyYXl9IHN0ckFycmF5IC0gQXJyYXkgb2YgU2V0LWVsZW1lbnRzIGFzIHN0cmluZ3MuXG4gICAqIEBwYXJhbSB7P3N0cmluZ30gW2Vyck1zZ10gLSBDdXN0b20gZXJyb3IgbWVzc2FnZSB0aHJvd24gb24gaW52YWxpZCBpbnB1dC5cbiAgICogQHJldHVybnMge09iamVjdH0gLSBUT0RPOiBhZGQgcmV0dXJuIGRlc2NyaXB0aW9uLlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgX3N0cmluZ0FycmF5VG9TZXQoc3RyQXJyYXksIGVyck1zZykge1xuICAgIGlmICghc3RyQXJyYXkpIHJldHVybiB7fTtcblxuICAgIGVyck1zZyA9XG4gICAgICBlcnJNc2cgfHwgJ0Nhbm5vdCBtYWtlIHNldCBmcm9tIHR5cGUgb3RoZXIgdGhhbiBBcnJheSBvZiBzdHJpbmcgZWxlbWVudHMnO1xuXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHN0ckFycmF5KSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGVyck1zZyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0ckFycmF5LnJlZHVjZSgoc2V0LCBlbCkgPT4ge1xuICAgICAgaWYgKHR5cGVvZiBlbCAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGVyck1zZyk7XG4gICAgICB9XG4gICAgICBzZXRbZWxdID0gdHJ1ZTtcblxuICAgICAgcmV0dXJuIHNldDtcbiAgICB9LCB7fSk7XG4gIH1cbn07XG4iLCAiLyoqXG4gKiB0YWlsLWZpbGUuanM6IFRPRE86IGFkZCBmaWxlIGhlYWRlciBkZXNjcmlwdGlvbi5cbiAqXG4gKiAoQykgMjAxMCBDaGFybGllIFJvYmJpbnNcbiAqIE1JVCBMSUNFTkNFXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5jb25zdCBmcyA9IHJlcXVpcmUoJ2ZzJyk7XG5jb25zdCB7IFN0cmluZ0RlY29kZXIgfSA9IHJlcXVpcmUoJ3N0cmluZ19kZWNvZGVyJyk7XG5jb25zdCB7IFN0cmVhbSB9ID0gcmVxdWlyZSgncmVhZGFibGUtc3RyZWFtJyk7XG5cbi8qKlxuICogU2ltcGxlIG5vLW9wIGZ1bmN0aW9uLlxuICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAqL1xuZnVuY3Rpb24gbm9vcCgpIHt9XG5cbi8qKlxuICogVE9ETzogYWRkIGZ1bmN0aW9uIGRlc2NyaXB0aW9uLlxuICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgLSBPcHRpb25zIGZvciB0YWlsLlxuICogQHBhcmFtIHtmdW5jdGlvbn0gaXRlciAtIEl0ZXJhdG9yIGZ1bmN0aW9uIHRvIGV4ZWN1dGUgb24gZXZlcnkgbGluZS5cbiogYHRhaWwgLWZgIGEgZmlsZS4gT3B0aW9ucyBtdXN0IGluY2x1ZGUgZmlsZS5cbiAqIEByZXR1cm5zIHttaXhlZH0gLSBUT0RPOiBhZGQgcmV0dXJuIGRlc2NyaXB0aW9uLlxuICovXG5tb2R1bGUuZXhwb3J0cyA9IChvcHRpb25zLCBpdGVyKSA9PiB7XG4gIGNvbnN0IGJ1ZmZlciA9IEJ1ZmZlci5hbGxvYyg2NCAqIDEwMjQpO1xuICBjb25zdCBkZWNvZGUgPSBuZXcgU3RyaW5nRGVjb2RlcigndXRmOCcpO1xuICBjb25zdCBzdHJlYW0gPSBuZXcgU3RyZWFtKCk7XG4gIGxldCBidWZmID0gJyc7XG4gIGxldCBwb3MgPSAwO1xuICBsZXQgcm93ID0gMDtcblxuICBpZiAob3B0aW9ucy5zdGFydCA9PT0gLTEpIHtcbiAgICBkZWxldGUgb3B0aW9ucy5zdGFydDtcbiAgfVxuXG4gIHN0cmVhbS5yZWFkYWJsZSA9IHRydWU7XG4gIHN0cmVhbS5kZXN0cm95ID0gKCkgPT4ge1xuICAgIHN0cmVhbS5kZXN0cm95ZWQgPSB0cnVlO1xuICAgIHN0cmVhbS5lbWl0KCdlbmQnKTtcbiAgICBzdHJlYW0uZW1pdCgnY2xvc2UnKTtcbiAgfTtcblxuICBmcy5vcGVuKG9wdGlvbnMuZmlsZSwgJ2ErJywgJzA2NDQnLCAoZXJyLCBmZCkgPT4ge1xuICAgIGlmIChlcnIpIHtcbiAgICAgIGlmICghaXRlcikge1xuICAgICAgICBzdHJlYW0uZW1pdCgnZXJyb3InLCBlcnIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaXRlcihlcnIpO1xuICAgICAgfVxuICAgICAgc3RyZWFtLmRlc3Ryb3koKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAoZnVuY3Rpb24gcmVhZCgpIHtcbiAgICAgIGlmIChzdHJlYW0uZGVzdHJveWVkKSB7XG4gICAgICAgIGZzLmNsb3NlKGZkLCBub29wKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZnMucmVhZChmZCwgYnVmZmVyLCAwLCBidWZmZXIubGVuZ3RoLCBwb3MsIChlcnJvciwgYnl0ZXMpID0+IHtcbiAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgaWYgKCFpdGVyKSB7XG4gICAgICAgICAgICBzdHJlYW0uZW1pdCgnZXJyb3InLCBlcnJvcik7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGl0ZXIoZXJyb3IpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBzdHJlYW0uZGVzdHJveSgpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghYnl0ZXMpIHtcbiAgICAgICAgICBpZiAoYnVmZikge1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVxZXFlcVxuICAgICAgICAgICAgaWYgKG9wdGlvbnMuc3RhcnQgPT0gbnVsbCB8fCByb3cgPiBvcHRpb25zLnN0YXJ0KSB7XG4gICAgICAgICAgICAgIGlmICghaXRlcikge1xuICAgICAgICAgICAgICAgIHN0cmVhbS5lbWl0KCdsaW5lJywgYnVmZik7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaXRlcihudWxsLCBidWZmKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcm93Kys7XG4gICAgICAgICAgICBidWZmID0gJyc7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBzZXRUaW1lb3V0KHJlYWQsIDEwMDApO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGRhdGEgPSBkZWNvZGUud3JpdGUoYnVmZmVyLnNsaWNlKDAsIGJ5dGVzKSk7XG4gICAgICAgIGlmICghaXRlcikge1xuICAgICAgICAgIHN0cmVhbS5lbWl0KCdkYXRhJywgZGF0YSk7XG4gICAgICAgIH1cblxuICAgICAgICBkYXRhID0gKGJ1ZmYgKyBkYXRhKS5zcGxpdCgvXFxuKy8pO1xuXG4gICAgICAgIGNvbnN0IGwgPSBkYXRhLmxlbmd0aCAtIDE7XG4gICAgICAgIGxldCBpID0gMDtcblxuICAgICAgICBmb3IgKDsgaSA8IGw7IGkrKykge1xuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcWVxZXFcbiAgICAgICAgICBpZiAob3B0aW9ucy5zdGFydCA9PSBudWxsIHx8IHJvdyA+IG9wdGlvbnMuc3RhcnQpIHtcbiAgICAgICAgICAgIGlmICghaXRlcikge1xuICAgICAgICAgICAgICBzdHJlYW0uZW1pdCgnbGluZScsIGRhdGFbaV0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgaXRlcihudWxsLCBkYXRhW2ldKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcm93Kys7XG4gICAgICAgIH1cblxuICAgICAgICBidWZmID0gZGF0YVtsXTtcbiAgICAgICAgcG9zICs9IGJ5dGVzO1xuICAgICAgICByZXR1cm4gcmVhZCgpO1xuICAgICAgfSk7XG4gICAgfSgpKTtcbiAgfSk7XG5cbiAgaWYgKCFpdGVyKSB7XG4gICAgcmV0dXJuIHN0cmVhbTtcbiAgfVxuXG4gIHJldHVybiBzdHJlYW0uZGVzdHJveTtcbn07XG4iLCAiLyogZXNsaW50LWRpc2FibGUgY29tcGxleGl0eSxtYXgtc3RhdGVtZW50cyAqL1xuLyoqXG4gKiBmaWxlLmpzOiBUcmFuc3BvcnQgZm9yIG91dHB1dHRpbmcgdG8gYSBsb2NhbCBsb2cgZmlsZS5cbiAqXG4gKiAoQykgMjAxMCBDaGFybGllIFJvYmJpbnNcbiAqIE1JVCBMSUNFTkNFXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5jb25zdCBmcyA9IHJlcXVpcmUoJ2ZzJyk7XG5jb25zdCBwYXRoID0gcmVxdWlyZSgncGF0aCcpO1xuY29uc3QgYXN5bmNTZXJpZXMgPSByZXF1aXJlKCdhc3luYy9zZXJpZXMnKTtcbmNvbnN0IHpsaWIgPSByZXF1aXJlKCd6bGliJyk7XG5jb25zdCB7IE1FU1NBR0UgfSA9IHJlcXVpcmUoJ3RyaXBsZS1iZWFtJyk7XG5jb25zdCB7IFN0cmVhbSwgUGFzc1Rocm91Z2ggfSA9IHJlcXVpcmUoJ3JlYWRhYmxlLXN0cmVhbScpO1xuY29uc3QgVHJhbnNwb3J0U3RyZWFtID0gcmVxdWlyZSgnd2luc3Rvbi10cmFuc3BvcnQnKTtcbmNvbnN0IGRlYnVnID0gcmVxdWlyZSgnQGRhYmgvZGlhZ25vc3RpY3MnKSgnd2luc3RvbjpmaWxlJyk7XG5jb25zdCBvcyA9IHJlcXVpcmUoJ29zJyk7XG5jb25zdCB0YWlsRmlsZSA9IHJlcXVpcmUoJy4uL3RhaWwtZmlsZScpO1xuXG4vKipcbiAqIFRyYW5zcG9ydCBmb3Igb3V0cHV0dGluZyB0byBhIGxvY2FsIGxvZyBmaWxlLlxuICogQHR5cGUge0ZpbGV9XG4gKiBAZXh0ZW5kcyB7VHJhbnNwb3J0U3RyZWFtfVxuICovXG5tb2R1bGUuZXhwb3J0cyA9IGNsYXNzIEZpbGUgZXh0ZW5kcyBUcmFuc3BvcnRTdHJlYW0ge1xuICAvKipcbiAgICogQ29uc3RydWN0b3IgZnVuY3Rpb24gZm9yIHRoZSBGaWxlIHRyYW5zcG9ydCBvYmplY3QgcmVzcG9uc2libGUgZm9yXG4gICAqIHBlcnNpc3RpbmcgbG9nIG1lc3NhZ2VzIGFuZCBtZXRhZGF0YSB0byBvbmUgb3IgbW9yZSBmaWxlcy5cbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgLSBPcHRpb25zIGZvciB0aGlzIGluc3RhbmNlLlxuICAgKi9cbiAgY29uc3RydWN0b3Iob3B0aW9ucyA9IHt9KSB7XG4gICAgc3VwZXIob3B0aW9ucyk7XG5cbiAgICAvLyBFeHBvc2UgdGhlIG5hbWUgb2YgdGhpcyBUcmFuc3BvcnQgb24gdGhlIHByb3RvdHlwZS5cbiAgICB0aGlzLm5hbWUgPSBvcHRpb25zLm5hbWUgfHwgJ2ZpbGUnO1xuXG4gICAgLy8gSGVscGVyIGZ1bmN0aW9uIHdoaWNoIHRocm93cyBhbiBgRXJyb3JgIGluIHRoZSBldmVudCB0aGF0IGFueSBvZiB0aGVcbiAgICAvLyByZXN0IG9mIHRoZSBhcmd1bWVudHMgaXMgcHJlc2VudCBpbiBgb3B0aW9uc2AuXG4gICAgZnVuY3Rpb24gdGhyb3dJZih0YXJnZXQsIC4uLmFyZ3MpIHtcbiAgICAgIGFyZ3Muc2xpY2UoMSkuZm9yRWFjaChuYW1lID0+IHtcbiAgICAgICAgaWYgKG9wdGlvbnNbbmFtZV0pIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBzZXQgJHtuYW1lfSBhbmQgJHt0YXJnZXR9IHRvZ2V0aGVyYCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIFNldHVwIHRoZSBiYXNlIHN0cmVhbSB0aGF0IGFsd2F5cyBnZXRzIHBpcGVkIHRvIHRvIGhhbmRsZSBidWZmZXJpbmcuXG4gICAgdGhpcy5fc3RyZWFtID0gbmV3IFBhc3NUaHJvdWdoKCk7XG4gICAgdGhpcy5fc3RyZWFtLnNldE1heExpc3RlbmVycygzMCk7XG5cbiAgICAvLyBCaW5kIHRoaXMgY29udGV4dCBmb3IgbGlzdGVuZXIgbWV0aG9kcy5cbiAgICB0aGlzLl9vbkVycm9yID0gdGhpcy5fb25FcnJvci5iaW5kKHRoaXMpO1xuXG4gICAgaWYgKG9wdGlvbnMuZmlsZW5hbWUgfHwgb3B0aW9ucy5kaXJuYW1lKSB7XG4gICAgICB0aHJvd0lmKCdmaWxlbmFtZSBvciBkaXJuYW1lJywgJ3N0cmVhbScpO1xuICAgICAgdGhpcy5fYmFzZW5hbWUgPSB0aGlzLmZpbGVuYW1lID0gb3B0aW9ucy5maWxlbmFtZVxuICAgICAgICA/IHBhdGguYmFzZW5hbWUob3B0aW9ucy5maWxlbmFtZSlcbiAgICAgICAgOiAnd2luc3Rvbi5sb2cnO1xuXG4gICAgICB0aGlzLmRpcm5hbWUgPSBvcHRpb25zLmRpcm5hbWUgfHwgcGF0aC5kaXJuYW1lKG9wdGlvbnMuZmlsZW5hbWUpO1xuICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucy5vcHRpb25zIHx8IHsgZmxhZ3M6ICdhJyB9O1xuICAgIH0gZWxzZSBpZiAob3B0aW9ucy5zdHJlYW0pIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICBjb25zb2xlLndhcm4oJ29wdGlvbnMuc3RyZWFtIHdpbGwgYmUgcmVtb3ZlZCBpbiB3aW5zdG9uQDQuIFVzZSB3aW5zdG9uLnRyYW5zcG9ydHMuU3RyZWFtJyk7XG4gICAgICB0aHJvd0lmKCdzdHJlYW0nLCAnZmlsZW5hbWUnLCAnbWF4c2l6ZScpO1xuICAgICAgdGhpcy5fZGVzdCA9IHRoaXMuX3N0cmVhbS5waXBlKHRoaXMuX3NldHVwU3RyZWFtKG9wdGlvbnMuc3RyZWFtKSk7XG4gICAgICB0aGlzLmRpcm5hbWUgPSBwYXRoLmRpcm5hbWUodGhpcy5fZGVzdC5wYXRoKTtcbiAgICAgIC8vIFdlIG5lZWQgdG8gbGlzdGVuIGZvciBkcmFpbiBldmVudHMgd2hlbiB3cml0ZSgpIHJldHVybnMgZmFsc2UuIFRoaXNcbiAgICAgIC8vIGNhbiBtYWtlIG5vZGUgbWFkIGF0IHRpbWVzLlxuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBsb2cgdG8gZmlsZSB3aXRob3V0IGZpbGVuYW1lIG9yIHN0cmVhbS4nKTtcbiAgICB9XG5cbiAgICB0aGlzLm1heHNpemUgPSBvcHRpb25zLm1heHNpemUgfHwgbnVsbDtcbiAgICB0aGlzLnJvdGF0aW9uRm9ybWF0ID0gb3B0aW9ucy5yb3RhdGlvbkZvcm1hdCB8fCBmYWxzZTtcbiAgICB0aGlzLnppcHBlZEFyY2hpdmUgPSBvcHRpb25zLnppcHBlZEFyY2hpdmUgfHwgZmFsc2U7XG4gICAgdGhpcy5tYXhGaWxlcyA9IG9wdGlvbnMubWF4RmlsZXMgfHwgbnVsbDtcbiAgICB0aGlzLmVvbCA9ICh0eXBlb2Ygb3B0aW9ucy5lb2wgPT09ICdzdHJpbmcnKSA/IG9wdGlvbnMuZW9sIDogb3MuRU9MO1xuICAgIHRoaXMudGFpbGFibGUgPSBvcHRpb25zLnRhaWxhYmxlIHx8IGZhbHNlO1xuICAgIHRoaXMubGF6eSA9IG9wdGlvbnMubGF6eSB8fCBmYWxzZTtcblxuICAgIC8vIEludGVybmFsIHN0YXRlIHZhcmlhYmxlcyByZXByZXNlbnRpbmcgdGhlIG51bWJlciBvZiBmaWxlcyB0aGlzIGluc3RhbmNlXG4gICAgLy8gaGFzIGNyZWF0ZWQgYW5kIHRoZSBjdXJyZW50IHNpemUgKGluIGJ5dGVzKSBvZiB0aGUgY3VycmVudCBsb2dmaWxlLlxuICAgIHRoaXMuX3NpemUgPSAwO1xuICAgIHRoaXMuX3BlbmRpbmdTaXplID0gMDtcbiAgICB0aGlzLl9jcmVhdGVkID0gMDtcbiAgICB0aGlzLl9kcmFpbiA9IGZhbHNlO1xuICAgIHRoaXMuX29wZW5pbmcgPSBmYWxzZTtcbiAgICB0aGlzLl9lbmRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLl9maWxlRXhpc3QgPSBmYWxzZTtcblxuICAgIGlmICh0aGlzLmRpcm5hbWUpIHRoaXMuX2NyZWF0ZUxvZ0RpcklmTm90RXhpc3QodGhpcy5kaXJuYW1lKTtcbiAgICBpZiAoIXRoaXMubGF6eSkgdGhpcy5vcGVuKCk7XG4gIH1cblxuICBmaW5pc2hJZkVuZGluZygpIHtcbiAgICBpZiAodGhpcy5fZW5kaW5nKSB7XG4gICAgICBpZiAodGhpcy5fb3BlbmluZykge1xuICAgICAgICB0aGlzLm9uY2UoJ29wZW4nLCAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5fc3RyZWFtLm9uY2UoJ2ZpbmlzaCcsICgpID0+IHRoaXMuZW1pdCgnZmluaXNoJykpO1xuICAgICAgICAgIHNldEltbWVkaWF0ZSgoKSA9PiB0aGlzLl9zdHJlYW0uZW5kKCkpO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX3N0cmVhbS5vbmNlKCdmaW5pc2gnLCAoKSA9PiB0aGlzLmVtaXQoJ2ZpbmlzaCcpKTtcbiAgICAgICAgc2V0SW1tZWRpYXRlKCgpID0+IHRoaXMuX3N0cmVhbS5lbmQoKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCBieSBOb2RlLmpzIFdyaXRhYmxlIHN0cmVhbSBiZWZvcmUgZW1pdHRpbmcgJ2ZpbmlzaCcuXG4gICAqIEVuc3VyZXMgYWxsIGJ1ZmZlcmVkIGRhdGEgaXMgZmx1c2hlZCB0byB0aGUgdW5kZXJseWluZyBmaWxlIHN0cmVhbVxuICAgKiBiZWZvcmUgdGhlIHRyYW5zcG9ydCBzaWduYWxzIGNvbXBsZXRpb24uXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IGNhbGxiYWNrIC0gQ2FsbGJhY2sgdG8gc2lnbmFsIGNvbXBsZXRpb24uXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBfZmluYWwoY2FsbGJhY2spIHtcbiAgICAvLyBJZiBzdGlsbCBvcGVuaW5nLCB3YWl0IGZvciB0aGUgZmlsZSB0byBiZSBvcGVuZWQgZmlyc3RcbiAgICBpZiAodGhpcy5fb3BlbmluZykge1xuICAgICAgdGhpcy5vbmNlKCdvcGVuJywgKCkgPT4gdGhpcy5fZmluYWwoY2FsbGJhY2spKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBFbmQgdGhlIFBhc3NUaHJvdWdoIHN0cmVhbVxuICAgIHRoaXMuX3N0cmVhbS5lbmQoKTtcblxuICAgIC8vIE5vIGRlc3RpbmF0aW9uIHN0cmVhbSwgY2FsbCBjYWxsYmFjayBpbW1lZGlhdGVseVxuICAgIGlmICghdGhpcy5fZGVzdCkge1xuICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7XG4gICAgfVxuXG4gICAgLy8gRGVzdGluYXRpb24gaXMgYWxyZWFkeSBmaW5pc2hlZFxuICAgIGlmICh0aGlzLl9kZXN0LndyaXRhYmxlRmluaXNoZWQpIHtcbiAgICAgIHJldHVybiBjYWxsYmFjaygpO1xuICAgIH1cblxuICAgIC8vIFdhaXQgZm9yIGRlc3RpbmF0aW9uIHN0cmVhbSB0byBmaW5pc2ggd3JpdGluZ1xuICAgIHRoaXMuX2Rlc3Qub25jZSgnZmluaXNoJywgY2FsbGJhY2spO1xuICAgIHRoaXMuX2Rlc3Qub25jZSgnZXJyb3InLCBjYWxsYmFjayk7XG4gIH1cblxuICAvKipcbiAgICogQ29yZSBsb2dnaW5nIG1ldGhvZCBleHBvc2VkIHRvIFdpbnN0b24uIE1ldGFkYXRhIGlzIG9wdGlvbmFsLlxuICAgKiBAcGFyYW0ge09iamVjdH0gaW5mbyAtIFRPRE86IGFkZCBwYXJhbSBkZXNjcmlwdGlvbi5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gY2FsbGJhY2sgLSBUT0RPOiBhZGQgcGFyYW0gZGVzY3JpcHRpb24uXG4gICAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gICAqL1xuICBsb2coaW5mbywgY2FsbGJhY2sgPSAoKSA9PiB7IH0pIHtcbiAgICAvLyBSZW1hcms6IChqY3J1Z3p6KSBXaGF0IGlzIG5lY2Vzc2FyeSBhYm91dCB0aGlzIGNhbGxiYWNrKG51bGwsIHRydWUpIG5vd1xuICAgIC8vIHdoZW4gdGhpbmtpbmcgYWJvdXQgMy54PyBTaG91bGQgc2lsZW50IGJlIGhhbmRsZWQgaW4gdGhlIGJhc2VcbiAgICAvLyBUcmFuc3BvcnRTdHJlYW0gX3dyaXRlIG1ldGhvZD9cbiAgICBpZiAodGhpcy5zaWxlbnQpIHtcbiAgICAgIGNhbGxiYWNrKCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cblxuICAgIC8vIE91dHB1dCBzdHJlYW0gYnVmZmVyIGlzIGZ1bGwgYW5kIGhhcyBhc2tlZCB1cyB0byB3YWl0IGZvciB0aGUgZHJhaW4gZXZlbnRcbiAgICBpZiAodGhpcy5fZHJhaW4pIHtcbiAgICAgIHRoaXMuX3N0cmVhbS5vbmNlKCdkcmFpbicsICgpID0+IHtcbiAgICAgICAgdGhpcy5fZHJhaW4gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5sb2coaW5mbywgY2FsbGJhY2spO1xuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLl9yb3RhdGUpIHtcbiAgICAgIHRoaXMuX3N0cmVhbS5vbmNlKCdyb3RhdGUnLCAoKSA9PiB7XG4gICAgICAgIHRoaXMuX3JvdGF0ZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLmxvZyhpbmZvLCBjYWxsYmFjayk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMubGF6eSkge1xuICAgICAgaWYgKCF0aGlzLl9maWxlRXhpc3QpIHtcbiAgICAgICAgaWYgKCF0aGlzLl9vcGVuaW5nKSB7XG4gICAgICAgICAgdGhpcy5vcGVuKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vbmNlKCdvcGVuJywgKCkgPT4ge1xuICAgICAgICAgIHRoaXMuX2ZpbGVFeGlzdCA9IHRydWU7XG4gICAgICAgICAgdGhpcy5sb2coaW5mbywgY2FsbGJhY2spO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLl9uZWVkc05ld0ZpbGUodGhpcy5fcGVuZGluZ1NpemUpKSB7XG4gICAgICAgIHRoaXMuX2Rlc3Qub25jZSgnY2xvc2UnLCAoKSA9PiB7XG4gICAgICAgICAgaWYgKCF0aGlzLl9vcGVuaW5nKSB7XG4gICAgICAgICAgICB0aGlzLm9wZW4oKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5vbmNlKCdvcGVuJywgKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5sb2coaW5mbywgY2FsbGJhY2spO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBHcmFiIHRoZSByYXcgc3RyaW5nIGFuZCBhcHBlbmQgdGhlIGV4cGVjdGVkIEVPTC5cbiAgICBjb25zdCBvdXRwdXQgPSBgJHtpbmZvW01FU1NBR0VdfSR7dGhpcy5lb2x9YDtcbiAgICBjb25zdCBieXRlcyA9IEJ1ZmZlci5ieXRlTGVuZ3RoKG91dHB1dCk7XG5cbiAgICAvLyBBZnRlciB3ZSBoYXZlIHdyaXR0ZW4gdG8gdGhlIFBhc3NUaHJvdWdoIGNoZWNrIHRvIHNlZSBpZiB3ZSBuZWVkXG4gICAgLy8gdG8gcm90YXRlIHRvIHRoZSBuZXh0IGZpbGUuXG4gICAgLy9cbiAgICAvLyBSZW1hcms6IFRoaXMgZ2V0cyBjYWxsZWQgdG9vIGVhcmx5IGFuZCBkb2VzIG5vdCBkZXBpY3Qgd2hlbiBkYXRhXG4gICAgLy8gaGFzIGJlZW4gYWN0dWFsbHkgZmx1c2hlZCB0byBkaXNrLlxuICAgIGZ1bmN0aW9uIGxvZ2dlZCgpIHtcbiAgICAgIHRoaXMuX3NpemUgKz0gYnl0ZXM7XG4gICAgICB0aGlzLl9wZW5kaW5nU2l6ZSAtPSBieXRlcztcblxuICAgICAgZGVidWcoJ2xvZ2dlZCAlcyAlcycsIHRoaXMuX3NpemUsIG91dHB1dCk7XG4gICAgICB0aGlzLmVtaXQoJ2xvZ2dlZCcsIGluZm8pO1xuXG4gICAgICAvLyBEbyBub3QgYXR0ZW1wdCB0byByb3RhdGUgZmlsZXMgd2hpbGUgcm90YXRpbmdcbiAgICAgIGlmICh0aGlzLl9yb3RhdGUpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyBEbyBub3QgYXR0ZW1wdCB0byByb3RhdGUgZmlsZXMgd2hpbGUgb3BlbmluZ1xuICAgICAgaWYgKHRoaXMuX29wZW5pbmcpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyBDaGVjayB0byBzZWUgaWYgd2UgbmVlZCB0byBlbmQgdGhlIHN0cmVhbSBhbmQgY3JlYXRlIGEgbmV3IG9uZS5cbiAgICAgIGlmICghdGhpcy5fbmVlZHNOZXdGaWxlKCkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMubGF6eSkge1xuICAgICAgICB0aGlzLl9lbmRTdHJlYW0oKCkgPT4ge3RoaXMuZW1pdCgnZmlsZWNsb3NlZCcpO30pO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8vIEVuZCB0aGUgY3VycmVudCBzdHJlYW0sIGVuc3VyZSBpdCBmbHVzaGVzIGFuZCBjcmVhdGUgYSBuZXcgb25lLlxuICAgICAgLy8gVGhpcyBjb3VsZCBwb3RlbnRpYWxseSBiZSBvcHRpbWl6ZWQgdG8gbm90IHJ1biBhIHN0YXQgY2FsbCBidXQgaXRzXG4gICAgICAvLyB0aGUgc2FmZXN0IHdheSBzaW5jZSB3ZSBhcmUgc3VwcG9ydGluZyBgbWF4RmlsZXNgLlxuICAgICAgdGhpcy5fcm90YXRlID0gdHJ1ZTtcbiAgICAgIHRoaXMuX2VuZFN0cmVhbSgoKSA9PiB0aGlzLl9yb3RhdGVGaWxlKCkpO1xuICAgIH1cblxuICAgIC8vIEtlZXAgdHJhY2sgb2YgdGhlIHBlbmRpbmcgYnl0ZXMgYmVpbmcgd3JpdHRlbiB3aGlsZSBmaWxlcyBhcmUgb3BlbmluZ1xuICAgIC8vIGluIG9yZGVyIHRvIHByb3Blcmx5IHJvdGF0ZSB0aGUgUGFzc1Rocm91Z2ggdGhpcy5fc3RyZWFtIHdoZW4gdGhlIGZpbGVcbiAgICAvLyBldmVudHVhbGx5IGRvZXMgb3Blbi5cbiAgICB0aGlzLl9wZW5kaW5nU2l6ZSArPSBieXRlcztcbiAgICBpZiAodGhpcy5fb3BlbmluZ1xuICAgICAgJiYgIXRoaXMucm90YXRlZFdoaWxlT3BlbmluZ1xuICAgICAgJiYgdGhpcy5fbmVlZHNOZXdGaWxlKHRoaXMuX3NpemUgKyB0aGlzLl9wZW5kaW5nU2l6ZSkpIHtcbiAgICAgIHRoaXMucm90YXRlZFdoaWxlT3BlbmluZyA9IHRydWU7XG4gICAgfVxuXG4gICAgY29uc3Qgd3JpdHRlbiA9IHRoaXMuX3N0cmVhbS53cml0ZShvdXRwdXQsIGxvZ2dlZC5iaW5kKHRoaXMpKTtcbiAgICBpZiAoIXdyaXR0ZW4pIHtcbiAgICAgIHRoaXMuX2RyYWluID0gdHJ1ZTtcbiAgICAgIHRoaXMuX3N0cmVhbS5vbmNlKCdkcmFpbicsICgpID0+IHtcbiAgICAgICAgdGhpcy5fZHJhaW4gPSBmYWxzZTtcbiAgICAgICAgY2FsbGJhY2soKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBjYWxsYmFjaygpOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIGNhbGxiYWNrLXJldHVyblxuICAgIH1cblxuICAgIGRlYnVnKCd3cml0dGVuJywgd3JpdHRlbiwgdGhpcy5fZHJhaW4pO1xuXG4gICAgdGhpcy5maW5pc2hJZkVuZGluZygpO1xuXG4gICAgcmV0dXJuIHdyaXR0ZW47XG4gIH1cblxuICAvKipcbiAgICogUXVlcnkgdGhlIHRyYW5zcG9ydC4gT3B0aW9ucyBvYmplY3QgaXMgb3B0aW9uYWwuXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIC0gTG9nZ2x5LWxpa2UgcXVlcnkgb3B0aW9ucyBmb3IgdGhpcyBpbnN0YW5jZS5cbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gY2FsbGJhY2sgLSBDb250aW51YXRpb24gdG8gcmVzcG9uZCB0byB3aGVuIGNvbXBsZXRlLlxuICAgKiBUT0RPOiBSZWZhY3RvciBtZS5cbiAgICovXG4gIHF1ZXJ5KG9wdGlvbnMsIGNhbGxiYWNrKSB7XG4gICAgaWYgKHR5cGVvZiBvcHRpb25zID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBjYWxsYmFjayA9IG9wdGlvbnM7XG4gICAgICBvcHRpb25zID0ge307XG4gICAgfVxuXG4gICAgb3B0aW9ucyA9IG5vcm1hbGl6ZVF1ZXJ5KG9wdGlvbnMpO1xuICAgIGNvbnN0IGZpbGUgPSBwYXRoLmpvaW4odGhpcy5kaXJuYW1lLCB0aGlzLmZpbGVuYW1lKTtcbiAgICBsZXQgYnVmZiA9ICcnO1xuICAgIGxldCByZXN1bHRzID0gW107XG4gICAgbGV0IHJvdyA9IDA7XG5cbiAgICBjb25zdCBzdHJlYW0gPSBmcy5jcmVhdGVSZWFkU3RyZWFtKGZpbGUsIHtcbiAgICAgIGVuY29kaW5nOiAndXRmOCdcbiAgICB9KTtcblxuICAgIHN0cmVhbS5vbignZXJyb3InLCBlcnIgPT4ge1xuICAgICAgaWYgKHN0cmVhbS5yZWFkYWJsZSkge1xuICAgICAgICBzdHJlYW0uZGVzdHJveSgpO1xuICAgICAgfVxuICAgICAgaWYgKCFjYWxsYmFjaykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBlcnIuY29kZSAhPT0gJ0VOT0VOVCcgPyBjYWxsYmFjayhlcnIpIDogY2FsbGJhY2sobnVsbCwgcmVzdWx0cyk7XG4gICAgfSk7XG5cbiAgICBzdHJlYW0ub24oJ2RhdGEnLCBkYXRhID0+IHtcbiAgICAgIGRhdGEgPSAoYnVmZiArIGRhdGEpLnNwbGl0KC9cXG4rLyk7XG4gICAgICBjb25zdCBsID0gZGF0YS5sZW5ndGggLSAxO1xuICAgICAgbGV0IGkgPSAwO1xuXG4gICAgICBmb3IgKDsgaSA8IGw7IGkrKykge1xuICAgICAgICBpZiAoIW9wdGlvbnMuc3RhcnQgfHwgcm93ID49IG9wdGlvbnMuc3RhcnQpIHtcbiAgICAgICAgICBhZGQoZGF0YVtpXSk7XG4gICAgICAgIH1cbiAgICAgICAgcm93Kys7XG4gICAgICB9XG5cbiAgICAgIGJ1ZmYgPSBkYXRhW2xdO1xuICAgIH0pO1xuXG4gICAgc3RyZWFtLm9uKCdjbG9zZScsICgpID0+IHtcbiAgICAgIGlmIChidWZmKSB7XG4gICAgICAgIGFkZChidWZmLCB0cnVlKTtcbiAgICAgIH1cbiAgICAgIGlmIChvcHRpb25zLm9yZGVyID09PSAnZGVzYycpIHtcbiAgICAgICAgcmVzdWx0cyA9IHJlc3VsdHMucmV2ZXJzZSgpO1xuICAgICAgfVxuXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY2FsbGJhY2stcmV0dXJuXG4gICAgICBpZiAoY2FsbGJhY2spIGNhbGxiYWNrKG51bGwsIHJlc3VsdHMpO1xuICAgIH0pO1xuXG4gICAgZnVuY3Rpb24gYWRkKGJ1ZmYsIGF0dGVtcHQpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGxvZyA9IEpTT04ucGFyc2UoYnVmZik7XG4gICAgICAgIGlmIChjaGVjayhsb2cpKSB7XG4gICAgICAgICAgcHVzaChsb2cpO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGlmICghYXR0ZW1wdCkge1xuICAgICAgICAgIHN0cmVhbS5lbWl0KCdlcnJvcicsIGUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcHVzaChsb2cpIHtcbiAgICAgIGlmIChcbiAgICAgICAgb3B0aW9ucy5yb3dzICYmXG4gICAgICAgIHJlc3VsdHMubGVuZ3RoID49IG9wdGlvbnMucm93cyAmJlxuICAgICAgICBvcHRpb25zLm9yZGVyICE9PSAnZGVzYydcbiAgICAgICkge1xuICAgICAgICBpZiAoc3RyZWFtLnJlYWRhYmxlKSB7XG4gICAgICAgICAgc3RyZWFtLmRlc3Ryb3koKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChvcHRpb25zLmZpZWxkcykge1xuICAgICAgICBsb2cgPSBvcHRpb25zLmZpZWxkcy5yZWR1Y2UoKG9iaiwga2V5KSA9PiB7XG4gICAgICAgICAgb2JqW2tleV0gPSBsb2dba2V5XTtcbiAgICAgICAgICByZXR1cm4gb2JqO1xuICAgICAgICB9LCB7fSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChvcHRpb25zLm9yZGVyID09PSAnZGVzYycpIHtcbiAgICAgICAgaWYgKHJlc3VsdHMubGVuZ3RoID49IG9wdGlvbnMucm93cykge1xuICAgICAgICAgIHJlc3VsdHMuc2hpZnQoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmVzdWx0cy5wdXNoKGxvZyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY2hlY2sobG9nKSB7XG4gICAgICBpZiAoIWxvZykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlb2YgbG9nICE9PSAnb2JqZWN0Jykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHRpbWUgPSBuZXcgRGF0ZShsb2cudGltZXN0YW1wKTtcbiAgICAgIGlmIChcbiAgICAgICAgKG9wdGlvbnMuZnJvbSAmJiB0aW1lIDwgb3B0aW9ucy5mcm9tKSB8fFxuICAgICAgICAob3B0aW9ucy51bnRpbCAmJiB0aW1lID4gb3B0aW9ucy51bnRpbCkgfHxcbiAgICAgICAgKG9wdGlvbnMubGV2ZWwgJiYgb3B0aW9ucy5sZXZlbCAhPT0gbG9nLmxldmVsKVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbm9ybWFsaXplUXVlcnkob3B0aW9ucykge1xuICAgICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG5cbiAgICAgIC8vIGxpbWl0XG4gICAgICBvcHRpb25zLnJvd3MgPSBvcHRpb25zLnJvd3MgfHwgb3B0aW9ucy5saW1pdCB8fCAxMDtcblxuICAgICAgLy8gc3RhcnRpbmcgcm93IG9mZnNldFxuICAgICAgb3B0aW9ucy5zdGFydCA9IG9wdGlvbnMuc3RhcnQgfHwgMDtcblxuICAgICAgLy8gbm93XG4gICAgICBvcHRpb25zLnVudGlsID0gb3B0aW9ucy51bnRpbCB8fCBuZXcgRGF0ZSgpO1xuICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLnVudGlsICE9PSAnb2JqZWN0Jykge1xuICAgICAgICBvcHRpb25zLnVudGlsID0gbmV3IERhdGUob3B0aW9ucy51bnRpbCk7XG4gICAgICB9XG5cbiAgICAgIC8vIG5vdyAtIDI0XG4gICAgICBvcHRpb25zLmZyb20gPSBvcHRpb25zLmZyb20gfHwgKG9wdGlvbnMudW50aWwgLSAoMjQgKiA2MCAqIDYwICogMTAwMCkpO1xuICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLmZyb20gIT09ICdvYmplY3QnKSB7XG4gICAgICAgIG9wdGlvbnMuZnJvbSA9IG5ldyBEYXRlKG9wdGlvbnMuZnJvbSk7XG4gICAgICB9XG5cbiAgICAgIC8vICdhc2MnIG9yICdkZXNjJ1xuICAgICAgb3B0aW9ucy5vcmRlciA9IG9wdGlvbnMub3JkZXIgfHwgJ2Rlc2MnO1xuXG4gICAgICByZXR1cm4gb3B0aW9ucztcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIGxvZyBzdHJlYW0gZm9yIHRoaXMgdHJhbnNwb3J0LiBPcHRpb25zIG9iamVjdCBpcyBvcHRpb25hbC5cbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgLSBTdHJlYW0gb3B0aW9ucyBmb3IgdGhpcyBpbnN0YW5jZS5cbiAgICogQHJldHVybnMge1N0cmVhbX0gLSBUT0RPOiBhZGQgcmV0dXJuIGRlc2NyaXB0aW9uLlxuICAgKiBUT0RPOiBSZWZhY3RvciBtZS5cbiAgICovXG4gIHN0cmVhbShvcHRpb25zID0ge30pIHtcbiAgICBjb25zdCBmaWxlID0gcGF0aC5qb2luKHRoaXMuZGlybmFtZSwgdGhpcy5maWxlbmFtZSk7XG4gICAgY29uc3Qgc3RyZWFtID0gbmV3IFN0cmVhbSgpO1xuICAgIGNvbnN0IHRhaWwgPSB7XG4gICAgICBmaWxlLFxuICAgICAgc3RhcnQ6IG9wdGlvbnMuc3RhcnRcbiAgICB9O1xuXG4gICAgc3RyZWFtLmRlc3Ryb3kgPSB0YWlsRmlsZSh0YWlsLCAoZXJyLCBsaW5lKSA9PiB7XG4gICAgICBpZiAoZXJyKSB7XG4gICAgICAgIHJldHVybiBzdHJlYW0uZW1pdCgnZXJyb3InLCBlcnIpO1xuICAgICAgfVxuXG4gICAgICB0cnkge1xuICAgICAgICBzdHJlYW0uZW1pdCgnZGF0YScsIGxpbmUpO1xuICAgICAgICBsaW5lID0gSlNPTi5wYXJzZShsaW5lKTtcbiAgICAgICAgc3RyZWFtLmVtaXQoJ2xvZycsIGxpbmUpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBzdHJlYW0uZW1pdCgnZXJyb3InLCBlKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBzdHJlYW07XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIHRvIHNlZSB0aGUgZmlsZXNpemUgb2YuXG4gICAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gICAqL1xuICBvcGVuKCkge1xuICAgIC8vIElmIHdlIGRvIG5vdCBoYXZlIGEgZmlsZW5hbWUgdGhlbiB3ZSB3ZXJlIHBhc3NlZCBhIHN0cmVhbSBhbmRcbiAgICAvLyBkb24ndCBuZWVkIHRvIGtlZXAgdHJhY2sgb2Ygc2l6ZS5cbiAgICBpZiAoIXRoaXMuZmlsZW5hbWUpIHJldHVybjtcbiAgICBpZiAodGhpcy5fb3BlbmluZykgcmV0dXJuO1xuXG4gICAgdGhpcy5fb3BlbmluZyA9IHRydWU7XG5cbiAgICAvLyBTdGF0IHRoZSB0YXJnZXQgZmlsZSB0byBnZXQgdGhlIHNpemUgYW5kIGNyZWF0ZSB0aGUgc3RyZWFtLlxuICAgIHRoaXMuc3RhdCgoZXJyLCBzaXplKSA9PiB7XG4gICAgICBpZiAoZXJyKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVtaXQoJ2Vycm9yJywgZXJyKTtcbiAgICAgIH1cbiAgICAgIGRlYnVnKCdzdGF0IGRvbmU6ICVzIHsgc2l6ZTogJXMgfScsIHRoaXMuZmlsZW5hbWUsIHNpemUpO1xuICAgICAgdGhpcy5fc2l6ZSA9IHNpemU7XG4gICAgICB0aGlzLl9kZXN0ID0gdGhpcy5fY3JlYXRlU3RyZWFtKHRoaXMuX3N0cmVhbSk7XG4gICAgICB0aGlzLl9vcGVuaW5nID0gZmFsc2U7XG4gICAgICB0aGlzLm9uY2UoJ29wZW4nLCAoKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5fc3RyZWFtLmVtaXQoJ3JvdGF0ZScpKSB7XG4gICAgICAgICAgdGhpcy5fcm90YXRlID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0YXQgdGhlIGZpbGUgYW5kIGFzc2VzcyBpbmZvcm1hdGlvbiBpbiBvcmRlciB0byBjcmVhdGUgdGhlIHByb3BlciBzdHJlYW0uXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IGNhbGxiYWNrIC0gVE9ETzogYWRkIHBhcmFtIGRlc2NyaXB0aW9uLlxuICAgKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICAgKi9cbiAgc3RhdChjYWxsYmFjaykge1xuICAgIGNvbnN0IHRhcmdldCA9IHRoaXMuX2dldEZpbGUoKTtcbiAgICBjb25zdCBmdWxscGF0aCA9IHBhdGguam9pbih0aGlzLmRpcm5hbWUsIHRhcmdldCk7XG5cbiAgICBmcy5zdGF0KGZ1bGxwYXRoLCAoZXJyLCBzdGF0KSA9PiB7XG4gICAgICBpZiAoZXJyICYmIGVyci5jb2RlID09PSAnRU5PRU5UJykge1xuICAgICAgICBkZWJ1ZygnRU5PRU5UXHUwMEEwb2snLCBmdWxscGF0aCk7XG4gICAgICAgIC8vIFVwZGF0ZSBpbnRlcm5hbGx5IHRyYWNrZWQgZmlsZW5hbWUgd2l0aCB0aGUgbmV3IHRhcmdldCBuYW1lLlxuICAgICAgICB0aGlzLmZpbGVuYW1lID0gdGFyZ2V0O1xuICAgICAgICByZXR1cm4gY2FsbGJhY2sobnVsbCwgMCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgZGVidWcoYGVyciAke2Vyci5jb2RlfSAke2Z1bGxwYXRofWApO1xuICAgICAgICByZXR1cm4gY2FsbGJhY2soZXJyKTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFzdGF0IHx8IHRoaXMuX25lZWRzTmV3RmlsZShzdGF0LnNpemUpKSB7XG4gICAgICAgIC8vIElmIGBzdGF0cy5zaXplYCBpcyBncmVhdGVyIHRoYW4gdGhlIGBtYXhzaXplYCBmb3IgdGhpc1xuICAgICAgICAvLyBpbnN0YW5jZSB0aGVuIHRyeSBhZ2Fpbi5cbiAgICAgICAgcmV0dXJuIHRoaXMuX2luY0ZpbGUoKCkgPT4gdGhpcy5zdGF0KGNhbGxiYWNrKSk7XG4gICAgICB9XG5cbiAgICAgIC8vIE9uY2Ugd2UgaGF2ZSBmaWd1cmVkIG91dCB3aGF0IHRoZSBmaWxlbmFtZSBpcywgc2V0IGl0XG4gICAgICAvLyBhbmQgcmV0dXJuIHRoZSBzaXplLlxuICAgICAgdGhpcy5maWxlbmFtZSA9IHRhcmdldDtcbiAgICAgIGNhbGxiYWNrKG51bGwsIHN0YXQuc2l6ZSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ2xvc2VzIHRoZSBzdHJlYW0gYXNzb2NpYXRlZCB3aXRoIHRoaXMgaW5zdGFuY2UuXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IGNiIC0gVE9ETzogYWRkIHBhcmFtIGRlc2NyaXB0aW9uLlxuICAgKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICAgKi9cbiAgY2xvc2UoY2IpIHtcbiAgICBpZiAoIXRoaXMuX3N0cmVhbSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX3N0cmVhbS5lbmQoKCkgPT4ge1xuICAgICAgaWYgKGNiKSB7XG4gICAgICAgIGNiKCk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgY2FsbGJhY2stcmV0dXJuXG4gICAgICB9XG4gICAgICB0aGlzLmVtaXQoJ2ZsdXNoJyk7XG4gICAgICB0aGlzLmVtaXQoJ2Nsb3NlZCcpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFRPRE86IGFkZCBtZXRob2QgZGVzY3JpcHRpb24uXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBzaXplIC0gVE9ETzogYWRkIHBhcmFtIGRlc2NyaXB0aW9uLlxuICAgKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICAgKi9cbiAgX25lZWRzTmV3RmlsZShzaXplKSB7XG4gICAgc2l6ZSA9IHNpemUgfHwgdGhpcy5fc2l6ZTtcbiAgICByZXR1cm4gdGhpcy5tYXhzaXplICYmIHNpemUgPj0gdGhpcy5tYXhzaXplO1xuICB9XG5cbiAgLyoqXG4gICAqIFRPRE86IGFkZCBtZXRob2QgZGVzY3JpcHRpb24uXG4gICAqIEBwYXJhbSB7RXJyb3J9IGVyciAtIFRPRE86IGFkZCBwYXJhbSBkZXNjcmlwdGlvbi5cbiAgICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAgICovXG4gIF9vbkVycm9yKGVycikge1xuICAgIHRoaXMuZW1pdCgnZXJyb3InLCBlcnIpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRPRE86IGFkZCBtZXRob2QgZGVzY3JpcHRpb24uXG4gICAqIEBwYXJhbSB7U3RyZWFtfSBzdHJlYW0gLSBUT0RPOiBhZGQgcGFyYW0gZGVzY3JpcHRpb24uXG4gICAqIEByZXR1cm5zIHttaXhlZH0gLSBUT0RPOiBhZGQgcmV0dXJuIGRlc2NyaXB0aW9uLlxuICAgKi9cbiAgX3NldHVwU3RyZWFtKHN0cmVhbSkge1xuICAgIHN0cmVhbS5vbignZXJyb3InLCB0aGlzLl9vbkVycm9yKTtcblxuICAgIHJldHVybiBzdHJlYW07XG4gIH1cblxuICAvKipcbiAgICogVE9ETzogYWRkIG1ldGhvZCBkZXNjcmlwdGlvbi5cbiAgICogQHBhcmFtIHtTdHJlYW19IHN0cmVhbSAtIFRPRE86IGFkZCBwYXJhbSBkZXNjcmlwdGlvbi5cbiAgICogQHJldHVybnMge21peGVkfSAtIFRPRE86IGFkZCByZXR1cm4gZGVzY3JpcHRpb24uXG4gICAqL1xuICBfY2xlYW51cFN0cmVhbShzdHJlYW0pIHtcbiAgICBzdHJlYW0ucmVtb3ZlTGlzdGVuZXIoJ2Vycm9yJywgdGhpcy5fb25FcnJvcik7XG4gICAgc3RyZWFtLmRlc3Ryb3koKTtcbiAgICByZXR1cm4gc3RyZWFtO1xuICB9XG5cbiAgLyoqXG4gICAqIFRPRE86IGFkZCBtZXRob2QgZGVzY3JpcHRpb24uXG4gICAqL1xuICBfcm90YXRlRmlsZSgpIHtcbiAgICB0aGlzLl9pbmNGaWxlKCgpID0+IHRoaXMub3BlbigpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVbnBpcGUgZnJvbSB0aGUgc3RyZWFtIHRoYXQgaGFzIGJlZW4gbWFya2VkIGFzIGZ1bGwgYW5kIGVuZCBpdCBzbyBpdFxuICAgKiBmbHVzaGVzIHRvIGRpc2suXG4gICAqXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IGNhbGxiYWNrIC0gQ2FsbGJhY2sgZm9yIHdoZW4gdGhlIGN1cnJlbnQgZmlsZSBoYXMgY2xvc2VkLlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgX2VuZFN0cmVhbShjYWxsYmFjayA9ICgpID0+IHsgfSkge1xuICAgIGlmICh0aGlzLl9kZXN0KSB7XG4gICAgICB0aGlzLl9zdHJlYW0udW5waXBlKHRoaXMuX2Rlc3QpO1xuICAgICAgdGhpcy5fZGVzdC5lbmQoKCkgPT4ge1xuICAgICAgICB0aGlzLl9jbGVhbnVwU3RyZWFtKHRoaXMuX2Rlc3QpO1xuICAgICAgICBjYWxsYmFjaygpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNhbGxiYWNrKCk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgY2FsbGJhY2stcmV0dXJuXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIFdyaXRhYmxlU3RyZWFtIGZvciB0aGUgYWN0aXZlIGZpbGUgb24gdGhpcyBpbnN0YW5jZS4gSWYgd2VcbiAgICogc2hvdWxkIGd6aXAgdGhlIGZpbGUgdGhlbiBhIHpsaWIgc3RyZWFtIGlzIHJldHVybmVkLlxuICAgKlxuICAgKiBAcGFyYW0ge1JlYWRhYmxlU3RyZWFtfSBzb3VyY2UgXHUyMDEzUGFzc1Rocm91Z2ggdG8gcGlwZSB0byB0aGUgZmlsZSB3aGVuIG9wZW4uXG4gICAqIEByZXR1cm5zIHtXcml0YWJsZVN0cmVhbX0gU3RyZWFtIHRoYXQgd3JpdGVzIHRvIGRpc2sgZm9yIHRoZSBhY3RpdmUgZmlsZS5cbiAgICovXG4gIF9jcmVhdGVTdHJlYW0oc291cmNlKSB7XG4gICAgY29uc3QgZnVsbHBhdGggPSBwYXRoLmpvaW4odGhpcy5kaXJuYW1lLCB0aGlzLmZpbGVuYW1lKTtcblxuICAgIGRlYnVnKCdjcmVhdGUgc3RyZWFtIHN0YXJ0JywgZnVsbHBhdGgsIHRoaXMub3B0aW9ucyk7XG4gICAgY29uc3QgZGVzdCA9IGZzLmNyZWF0ZVdyaXRlU3RyZWFtKGZ1bGxwYXRoLCB0aGlzLm9wdGlvbnMpXG4gICAgICAvLyBUT0RPOiBXaGF0IHNob3VsZCB3ZSBkbyB3aXRoIGVycm9ycyBoZXJlP1xuICAgICAgLm9uKCdlcnJvcicsIGVyciA9PiBkZWJ1ZyhlcnIpKVxuICAgICAgLm9uKCdjbG9zZScsICgpID0+IGRlYnVnKCdjbG9zZScsIGRlc3QucGF0aCwgZGVzdC5ieXRlc1dyaXR0ZW4pKVxuICAgICAgLm9uKCdvcGVuJywgKCkgPT4ge1xuICAgICAgICBkZWJ1ZygnZmlsZSBvcGVuIG9rJywgZnVsbHBhdGgpO1xuICAgICAgICB0aGlzLmVtaXQoJ29wZW4nLCBmdWxscGF0aCk7XG4gICAgICAgIHNvdXJjZS5waXBlKGRlc3QpO1xuXG4gICAgICAgIC8vIElmIHJvdGF0aW9uIG9jY3VyZWQgZHVyaW5nIHRoZSBvcGVuIG9wZXJhdGlvbiB0aGVuIHdlIGltbWVkaWF0ZWx5XG4gICAgICAgIC8vIHN0YXJ0IHdyaXRpbmcgdG8gYSBuZXcgUGFzc1Rocm91Z2gsIGJlZ2luIG9wZW5pbmcgdGhlIG5leHQgZmlsZVxuICAgICAgICAvLyBhbmQgY2xlYW51cCB0aGUgcHJldmlvdXMgc291cmNlIGFuZCBkZXN0IG9uY2UgdGhlIHNvdXJjZSBoYXMgZHJhaW5lZC5cbiAgICAgICAgaWYgKHRoaXMucm90YXRlZFdoaWxlT3BlbmluZykge1xuICAgICAgICAgIHRoaXMuX3N0cmVhbSA9IG5ldyBQYXNzVGhyb3VnaCgpO1xuICAgICAgICAgIHRoaXMuX3N0cmVhbS5zZXRNYXhMaXN0ZW5lcnMoMzApO1xuICAgICAgICAgIHRoaXMuX3JvdGF0ZUZpbGUoKTtcbiAgICAgICAgICB0aGlzLnJvdGF0ZWRXaGlsZU9wZW5pbmcgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLl9jbGVhbnVwU3RyZWFtKGRlc3QpO1xuICAgICAgICAgIHNvdXJjZS5lbmQoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICBkZWJ1ZygnY3JlYXRlIHN0cmVhbSBvaycsIGZ1bGxwYXRoKTtcbiAgICByZXR1cm4gZGVzdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUT0RPOiBhZGQgbWV0aG9kIGRlc2NyaXB0aW9uLlxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBjYWxsYmFjayAtIFRPRE86IGFkZCBwYXJhbSBkZXNjcmlwdGlvbi5cbiAgICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAgICovXG4gIF9pbmNGaWxlKGNhbGxiYWNrKSB7XG4gICAgZGVidWcoJ19pbmNGaWxlJywgdGhpcy5maWxlbmFtZSk7XG4gICAgY29uc3QgZXh0ID0gcGF0aC5leHRuYW1lKHRoaXMuX2Jhc2VuYW1lKTtcbiAgICBjb25zdCBiYXNlbmFtZSA9IHBhdGguYmFzZW5hbWUodGhpcy5fYmFzZW5hbWUsIGV4dCk7XG4gICAgY29uc3QgdGFza3MgPSBbXTtcblxuICAgIGlmICh0aGlzLnppcHBlZEFyY2hpdmUpIHtcbiAgICAgIHRhc2tzLnB1c2goXG4gICAgICAgIGZ1bmN0aW9uIChjYikge1xuICAgICAgICAgIGNvbnN0IG51bSA9IHRoaXMuX2NyZWF0ZWQgPiAwICYmICF0aGlzLnRhaWxhYmxlID8gdGhpcy5fY3JlYXRlZCA6ICcnO1xuICAgICAgICAgIHRoaXMuX2NvbXByZXNzRmlsZShcbiAgICAgICAgICAgIHBhdGguam9pbih0aGlzLmRpcm5hbWUsIGAke2Jhc2VuYW1lfSR7bnVtfSR7ZXh0fWApLFxuICAgICAgICAgICAgcGF0aC5qb2luKHRoaXMuZGlybmFtZSwgYCR7YmFzZW5hbWV9JHtudW19JHtleHR9Lmd6YCksXG4gICAgICAgICAgICBjYlxuICAgICAgICAgICk7XG4gICAgICAgIH0uYmluZCh0aGlzKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0YXNrcy5wdXNoKFxuICAgICAgZnVuY3Rpb24gKGNiKSB7XG4gICAgICAgIGlmICghdGhpcy50YWlsYWJsZSkge1xuICAgICAgICAgIHRoaXMuX2NyZWF0ZWQgKz0gMTtcbiAgICAgICAgICB0aGlzLl9jaGVja01heEZpbGVzSW5jcmVtZW50aW5nKGV4dCwgYmFzZW5hbWUsIGNiKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLl9jaGVja01heEZpbGVzVGFpbGFibGUoZXh0LCBiYXNlbmFtZSwgY2IpO1xuICAgICAgICB9XG4gICAgICB9LmJpbmQodGhpcylcbiAgICApO1xuXG4gICAgYXN5bmNTZXJpZXModGFza3MsIGNhbGxiYWNrKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBuZXh0IGZpbGVuYW1lIHRvIHVzZSBmb3IgdGhpcyBpbnN0YW5jZSBpbiB0aGUgY2FzZSB0aGF0IGxvZ1xuICAgKiBmaWxlc2l6ZXMgYXJlIGJlaW5nIGNhcHBlZC5cbiAgICogQHJldHVybnMge3N0cmluZ30gLSBUT0RPOiBhZGQgcmV0dXJuIGRlc2NyaXB0aW9uLlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgX2dldEZpbGUoKSB7XG4gICAgY29uc3QgZXh0ID0gcGF0aC5leHRuYW1lKHRoaXMuX2Jhc2VuYW1lKTtcbiAgICBjb25zdCBiYXNlbmFtZSA9IHBhdGguYmFzZW5hbWUodGhpcy5fYmFzZW5hbWUsIGV4dCk7XG4gICAgY29uc3QgaXNSb3RhdGlvbiA9IHRoaXMucm90YXRpb25Gb3JtYXRcbiAgICAgID8gdGhpcy5yb3RhdGlvbkZvcm1hdCgpXG4gICAgICA6IHRoaXMuX2NyZWF0ZWQ7XG5cbiAgICAvLyBDYXZlYXQgZW1wdG9yIChpbmRleHplcm8pOiByb3RhdGlvbkZvcm1hdCgpIHdhcyBicm9rZW4gYnkgZGVzaWduIFdoZW5cbiAgICAvLyBjb21iaW5lZCB3aXRoIG1heCBmaWxlcyBiZWNhdXNlIHRoZSBzZXQgb2YgZmlsZXMgdG8gdW5saW5rIGlzIG5ldmVyXG4gICAgLy8gc3RvcmVkLlxuICAgIHJldHVybiAhdGhpcy50YWlsYWJsZSAmJiB0aGlzLl9jcmVhdGVkXG4gICAgICA/IGAke2Jhc2VuYW1lfSR7aXNSb3RhdGlvbn0ke2V4dH1gXG4gICAgICA6IGAke2Jhc2VuYW1lfSR7ZXh0fWA7XG4gIH1cblxuICAvKipcbiAgICogSW5jcmVtZW50IHRoZSBudW1iZXIgb2YgZmlsZXMgY3JlYXRlZCBvciBjaGVja2VkIGJ5IHRoaXMgaW5zdGFuY2UuXG4gICAqIEBwYXJhbSB7bWl4ZWR9IGV4dCAtIFRPRE86IGFkZCBwYXJhbSBkZXNjcmlwdGlvbi5cbiAgICogQHBhcmFtIHttaXhlZH0gYmFzZW5hbWUgLSBUT0RPOiBhZGQgcGFyYW0gZGVzY3JpcHRpb24uXG4gICAqIEBwYXJhbSB7bWl4ZWR9IGNhbGxiYWNrIC0gVE9ETzogYWRkIHBhcmFtIGRlc2NyaXB0aW9uLlxuICAgKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgX2NoZWNrTWF4RmlsZXNJbmNyZW1lbnRpbmcoZXh0LCBiYXNlbmFtZSwgY2FsbGJhY2spIHtcbiAgICAvLyBDaGVjayBmb3IgbWF4RmlsZXMgb3B0aW9uIGFuZCBkZWxldGUgZmlsZS5cbiAgICBpZiAoIXRoaXMubWF4RmlsZXMgfHwgdGhpcy5fY3JlYXRlZCA8IHRoaXMubWF4RmlsZXMpIHtcbiAgICAgIHJldHVybiBzZXRJbW1lZGlhdGUoY2FsbGJhY2spO1xuICAgIH1cblxuICAgIGNvbnN0IG9sZGVzdCA9IHRoaXMuX2NyZWF0ZWQgLSB0aGlzLm1heEZpbGVzO1xuICAgIGNvbnN0IGlzT2xkZXN0ID0gb2xkZXN0ICE9PSAwID8gb2xkZXN0IDogJyc7XG4gICAgY29uc3QgaXNaaXBwZWQgPSB0aGlzLnppcHBlZEFyY2hpdmUgPyAnLmd6JyA6ICcnO1xuICAgIGNvbnN0IGZpbGVQYXRoID0gYCR7YmFzZW5hbWV9JHtpc09sZGVzdH0ke2V4dH0ke2lzWmlwcGVkfWA7XG4gICAgY29uc3QgdGFyZ2V0ID0gcGF0aC5qb2luKHRoaXMuZGlybmFtZSwgZmlsZVBhdGgpO1xuXG4gICAgZnMudW5saW5rKHRhcmdldCwgY2FsbGJhY2spO1xuICB9XG5cbiAgLyoqXG4gICAqIFJvbGwgZmlsZXMgZm9yd2FyZCBiYXNlZCBvbiBpbnRlZ2VyLCB1cCB0byBtYXhGaWxlcy4gZS5nLiBpZiBiYXNlIGlmXG4gICAqIGZpbGUubG9nIGFuZCBpdCBiZWNvbWVzIG92ZXJzaXplZCwgcm9sbCB0byBmaWxlMS5sb2csIGFuZCBhbGxvdyBmaWxlLmxvZ1xuICAgKiB0byBiZSByZS11c2VkLiBJZiBmaWxlIGlzIG92ZXJzaXplZCBhZ2Fpbiwgcm9sbCBmaWxlMS5sb2cgdG8gZmlsZTIubG9nLFxuICAgKiByb2xsIGZpbGUubG9nIHRvIGZpbGUxLmxvZywgYW5kIHNvIG9uLlxuICAgKiBAcGFyYW0ge21peGVkfSBleHQgLSBUT0RPOiBhZGQgcGFyYW0gZGVzY3JpcHRpb24uXG4gICAqIEBwYXJhbSB7bWl4ZWR9IGJhc2VuYW1lIC0gVE9ETzogYWRkIHBhcmFtIGRlc2NyaXB0aW9uLlxuICAgKiBAcGFyYW0ge21peGVkfSBjYWxsYmFjayAtIFRPRE86IGFkZCBwYXJhbSBkZXNjcmlwdGlvbi5cbiAgICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAgICogQHByaXZhdGVcbiAgICovXG4gIF9jaGVja01heEZpbGVzVGFpbGFibGUoZXh0LCBiYXNlbmFtZSwgY2FsbGJhY2spIHtcbiAgICBjb25zdCB0YXNrcyA9IFtdO1xuICAgIGlmICghdGhpcy5tYXhGaWxlcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIGNvbnN0IGlzWmlwcGVkID0gdGhpcy56aXBwZWRBcmNoaXZlID8gJy5neicgOiAnJztcbiAgICBjb25zdCBpc1ppcHBlZCA9IHRoaXMuemlwcGVkQXJjaGl2ZSA/ICcuZ3onIDogJyc7XG4gICAgZm9yIChsZXQgeCA9IHRoaXMubWF4RmlsZXMgLSAxOyB4ID4gMTsgeC0tKSB7XG4gICAgICB0YXNrcy5wdXNoKGZ1bmN0aW9uIChpLCBjYikge1xuICAgICAgICBsZXQgZmlsZU5hbWUgPSBgJHtiYXNlbmFtZX0keyhpIC0gMSl9JHtleHR9JHtpc1ppcHBlZH1gO1xuICAgICAgICBjb25zdCB0bXBwYXRoID0gcGF0aC5qb2luKHRoaXMuZGlybmFtZSwgZmlsZU5hbWUpO1xuXG4gICAgICAgIGZzLmV4aXN0cyh0bXBwYXRoLCBleGlzdHMgPT4ge1xuICAgICAgICAgIGlmICghZXhpc3RzKSB7XG4gICAgICAgICAgICByZXR1cm4gY2IobnVsbCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgZmlsZU5hbWUgPSBgJHtiYXNlbmFtZX0ke2l9JHtleHR9JHtpc1ppcHBlZH1gO1xuICAgICAgICAgIGZzLnJlbmFtZSh0bXBwYXRoLCBwYXRoLmpvaW4odGhpcy5kaXJuYW1lLCBmaWxlTmFtZSksIGNiKTtcbiAgICAgICAgfSk7XG4gICAgICB9LmJpbmQodGhpcywgeCkpO1xuICAgIH1cblxuICAgIGFzeW5jU2VyaWVzKHRhc2tzLCAoKSA9PiB7XG4gICAgICBmcy5yZW5hbWUoXG4gICAgICAgIHBhdGguam9pbih0aGlzLmRpcm5hbWUsIGAke2Jhc2VuYW1lfSR7ZXh0fSR7aXNaaXBwZWR9YCksXG4gICAgICAgIHBhdGguam9pbih0aGlzLmRpcm5hbWUsIGAke2Jhc2VuYW1lfTEke2V4dH0ke2lzWmlwcGVkfWApLFxuICAgICAgICBjYWxsYmFja1xuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb21wcmVzc2VzIHNyYyB0byBkZXN0IHdpdGggZ3ppcCBhbmQgdW5saW5rcyBzcmNcbiAgICogQHBhcmFtIHtzdHJpbmd9IHNyYyAtIHBhdGggdG8gc291cmNlIGZpbGUuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBkZXN0IC0gcGF0aCB0byB6aXBwZWQgZGVzdGluYXRpb24gZmlsZS5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gY2FsbGJhY2sgLSBjYWxsYmFjayBjYWxsZWQgYWZ0ZXIgZmlsZSBoYXMgYmVlbiBjb21wcmVzc2VkLlxuICAgKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgX2NvbXByZXNzRmlsZShzcmMsIGRlc3QsIGNhbGxiYWNrKSB7XG4gICAgZnMuYWNjZXNzKHNyYywgZnMuRl9PSywgKGVycikgPT4ge1xuICAgICAgaWYgKGVycikge1xuICAgICAgICByZXR1cm4gY2FsbGJhY2soKTtcbiAgICAgIH1cbiAgICAgIHZhciBnemlwID0gemxpYi5jcmVhdGVHemlwKCk7XG4gICAgICB2YXIgaW5wID0gZnMuY3JlYXRlUmVhZFN0cmVhbShzcmMpO1xuICAgICAgdmFyIG91dCA9IGZzLmNyZWF0ZVdyaXRlU3RyZWFtKGRlc3QpO1xuICAgICAgb3V0Lm9uKCdmaW5pc2gnLCAoKSA9PiB7XG4gICAgICAgIGZzLnVubGluayhzcmMsIGNhbGxiYWNrKTtcbiAgICAgIH0pO1xuICAgICAgaW5wLnBpcGUoZ3ppcCkucGlwZShvdXQpO1xuICAgIH0pO1xuICB9XG5cbiAgX2NyZWF0ZUxvZ0RpcklmTm90RXhpc3QoZGlyUGF0aCkge1xuICAgIC8qIGVzbGludC1kaXNhYmxlIG5vLXN5bmMgKi9cbiAgICBpZiAoIWZzLmV4aXN0c1N5bmMoZGlyUGF0aCkpIHtcbiAgICAgIGZzLm1rZGlyU3luYyhkaXJQYXRoLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICB9XG4gICAgLyogZXNsaW50LWVuYWJsZSBuby1zeW5jICovXG4gIH1cbn07XG4iLCAiLyoqXG4gKiBodHRwLmpzOiBUcmFuc3BvcnQgZm9yIG91dHB1dHRpbmcgdG8gYSBqc29uLXJwY3NlcnZlci5cbiAqXG4gKiAoQykgMjAxMCBDaGFybGllIFJvYmJpbnNcbiAqIE1JVCBMSUNFTkNFXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5jb25zdCBodHRwID0gcmVxdWlyZSgnaHR0cCcpO1xuY29uc3QgaHR0cHMgPSByZXF1aXJlKCdodHRwcycpO1xuY29uc3QgeyBTdHJlYW0gfSA9IHJlcXVpcmUoJ3JlYWRhYmxlLXN0cmVhbScpO1xuY29uc3QgVHJhbnNwb3J0U3RyZWFtID0gcmVxdWlyZSgnd2luc3Rvbi10cmFuc3BvcnQnKTtcbmNvbnN0IHsgY29uZmlndXJlIH0gPSByZXF1aXJlKCdzYWZlLXN0YWJsZS1zdHJpbmdpZnknKTtcblxuLyoqXG4gKiBUcmFuc3BvcnQgZm9yIG91dHB1dHRpbmcgdG8gYSBqc29uLXJwYyBzZXJ2ZXIuXG4gKiBAdHlwZSB7U3RyZWFtfVxuICogQGV4dGVuZHMge1RyYW5zcG9ydFN0cmVhbX1cbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBjbGFzcyBIdHRwIGV4dGVuZHMgVHJhbnNwb3J0U3RyZWFtIHtcbiAgLyoqXG4gICAqIENvbnN0cnVjdG9yIGZ1bmN0aW9uIGZvciB0aGUgSHR0cCB0cmFuc3BvcnQgb2JqZWN0IHJlc3BvbnNpYmxlIGZvclxuICAgKiBwZXJzaXN0aW5nIGxvZyBtZXNzYWdlcyBhbmQgbWV0YWRhdGEgdG8gYSB0ZXJtaW5hbCBvciBUVFkuXG4gICAqIEBwYXJhbSB7IU9iamVjdH0gW29wdGlvbnM9e31dIC0gT3B0aW9ucyBmb3IgdGhpcyBpbnN0YW5jZS5cbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtc3RhdGVtZW50c1xuICBjb25zdHJ1Y3RvcihvcHRpb25zID0ge30pIHtcbiAgICBzdXBlcihvcHRpb25zKTtcblxuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgdGhpcy5uYW1lID0gb3B0aW9ucy5uYW1lIHx8ICdodHRwJztcbiAgICB0aGlzLnNzbCA9ICEhb3B0aW9ucy5zc2w7XG4gICAgdGhpcy5ob3N0ID0gb3B0aW9ucy5ob3N0IHx8ICdsb2NhbGhvc3QnO1xuICAgIHRoaXMucG9ydCA9IG9wdGlvbnMucG9ydDtcbiAgICB0aGlzLmF1dGggPSBvcHRpb25zLmF1dGg7XG4gICAgdGhpcy5wYXRoID0gb3B0aW9ucy5wYXRoIHx8ICcnO1xuICAgIHRoaXMubWF4aW11bURlcHRoID0gb3B0aW9ucy5tYXhpbXVtRGVwdGg7XG4gICAgdGhpcy5hZ2VudCA9IG9wdGlvbnMuYWdlbnQ7XG4gICAgdGhpcy5oZWFkZXJzID0gb3B0aW9ucy5oZWFkZXJzIHx8IHt9O1xuICAgIHRoaXMuaGVhZGVyc1snY29udGVudC10eXBlJ10gPSAnYXBwbGljYXRpb24vanNvbic7XG4gICAgdGhpcy5iYXRjaCA9IG9wdGlvbnMuYmF0Y2ggfHwgZmFsc2U7XG4gICAgdGhpcy5iYXRjaEludGVydmFsID0gb3B0aW9ucy5iYXRjaEludGVydmFsIHx8IDUwMDA7XG4gICAgdGhpcy5iYXRjaENvdW50ID0gb3B0aW9ucy5iYXRjaENvdW50IHx8IDEwO1xuICAgIHRoaXMuYmF0Y2hPcHRpb25zID0gW107XG4gICAgdGhpcy5iYXRjaFRpbWVvdXRJRCA9IC0xO1xuICAgIHRoaXMuYmF0Y2hDYWxsYmFjayA9IHt9O1xuXG4gICAgaWYgKCF0aGlzLnBvcnQpIHtcbiAgICAgIHRoaXMucG9ydCA9IHRoaXMuc3NsID8gNDQzIDogODA7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENvcmUgbG9nZ2luZyBtZXRob2QgZXhwb3NlZCB0byBXaW5zdG9uLlxuICAgKiBAcGFyYW0ge09iamVjdH0gaW5mbyAtIFRPRE86IGFkZCBwYXJhbSBkZXNjcmlwdGlvbi5cbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gY2FsbGJhY2sgLSBUT0RPOiBhZGQgcGFyYW0gZGVzY3JpcHRpb24uXG4gICAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gICAqL1xuICBsb2coaW5mbywgY2FsbGJhY2spIHtcbiAgICB0aGlzLl9yZXF1ZXN0KGluZm8sIG51bGwsIG51bGwsIChlcnIsIHJlcykgPT4ge1xuICAgICAgaWYgKHJlcyAmJiByZXMuc3RhdHVzQ29kZSAhPT0gMjAwKSB7XG4gICAgICAgIGVyciA9IG5ldyBFcnJvcihgSW52YWxpZCBIVFRQIFN0YXR1cyBDb2RlOiAke3Jlcy5zdGF0dXNDb2RlfWApO1xuICAgICAgfVxuXG4gICAgICBpZiAoZXJyKSB7XG4gICAgICAgIHRoaXMuZW1pdCgnd2FybicsIGVycik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmVtaXQoJ2xvZ2dlZCcsIGluZm8pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gUmVtYXJrOiAoamNydWd6eikgRmlyZSBhbmQgZm9yZ2V0IGhlcmUgc28gcmVxdWVzdHMgZG9udCBjYXVzZSBidWZmZXJpbmdcbiAgICAvLyBhbmQgYmxvY2sgbW9yZSByZXF1ZXN0cyBmcm9tIGhhcHBlbmluZz9cbiAgICBpZiAoY2FsbGJhY2spIHtcbiAgICAgIHNldEltbWVkaWF0ZShjYWxsYmFjayk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFF1ZXJ5IHRoZSB0cmFuc3BvcnQuIE9wdGlvbnMgb2JqZWN0IGlzIG9wdGlvbmFsLlxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyAtICBMb2dnbHktbGlrZSBxdWVyeSBvcHRpb25zIGZvciB0aGlzIGluc3RhbmNlLlxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBjYWxsYmFjayAtIENvbnRpbnVhdGlvbiB0byByZXNwb25kIHRvIHdoZW4gY29tcGxldGUuXG4gICAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gICAqL1xuICBxdWVyeShvcHRpb25zLCBjYWxsYmFjaykge1xuICAgIGlmICh0eXBlb2Ygb3B0aW9ucyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgY2FsbGJhY2sgPSBvcHRpb25zO1xuICAgICAgb3B0aW9ucyA9IHt9O1xuICAgIH1cblxuICAgIG9wdGlvbnMgPSB7XG4gICAgICBtZXRob2Q6ICdxdWVyeScsXG4gICAgICBwYXJhbXM6IHRoaXMubm9ybWFsaXplUXVlcnkob3B0aW9ucylcbiAgICB9O1xuXG4gICAgY29uc3QgYXV0aCA9IG9wdGlvbnMucGFyYW1zLmF1dGggfHwgbnVsbDtcbiAgICBkZWxldGUgb3B0aW9ucy5wYXJhbXMuYXV0aDtcblxuICAgIGNvbnN0IHBhdGggPSBvcHRpb25zLnBhcmFtcy5wYXRoIHx8IG51bGw7XG4gICAgZGVsZXRlIG9wdGlvbnMucGFyYW1zLnBhdGg7XG5cbiAgICB0aGlzLl9yZXF1ZXN0KG9wdGlvbnMsIGF1dGgsIHBhdGgsIChlcnIsIHJlcywgYm9keSkgPT4ge1xuICAgICAgaWYgKHJlcyAmJiByZXMuc3RhdHVzQ29kZSAhPT0gMjAwKSB7XG4gICAgICAgIGVyciA9IG5ldyBFcnJvcihgSW52YWxpZCBIVFRQIFN0YXR1cyBDb2RlOiAke3Jlcy5zdGF0dXNDb2RlfWApO1xuICAgICAgfVxuXG4gICAgICBpZiAoZXJyKSB7XG4gICAgICAgIHJldHVybiBjYWxsYmFjayhlcnIpO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIGJvZHkgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgYm9keSA9IEpTT04ucGFyc2UoYm9keSk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICByZXR1cm4gY2FsbGJhY2soZSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY2FsbGJhY2sobnVsbCwgYm9keSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIGxvZyBzdHJlYW0gZm9yIHRoaXMgdHJhbnNwb3J0LiBPcHRpb25zIG9iamVjdCBpcyBvcHRpb25hbC5cbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgLSBTdHJlYW0gb3B0aW9ucyBmb3IgdGhpcyBpbnN0YW5jZS5cbiAgICogQHJldHVybnMge1N0cmVhbX0gLSBUT0RPOiBhZGQgcmV0dXJuIGRlc2NyaXB0aW9uXG4gICAqL1xuICBzdHJlYW0ob3B0aW9ucyA9IHt9KSB7XG4gICAgY29uc3Qgc3RyZWFtID0gbmV3IFN0cmVhbSgpO1xuICAgIG9wdGlvbnMgPSB7XG4gICAgICBtZXRob2Q6ICdzdHJlYW0nLFxuICAgICAgcGFyYW1zOiBvcHRpb25zXG4gICAgfTtcblxuICAgIGNvbnN0IHBhdGggPSBvcHRpb25zLnBhcmFtcy5wYXRoIHx8IG51bGw7XG4gICAgZGVsZXRlIG9wdGlvbnMucGFyYW1zLnBhdGg7XG5cbiAgICBjb25zdCBhdXRoID0gb3B0aW9ucy5wYXJhbXMuYXV0aCB8fCBudWxsO1xuICAgIGRlbGV0ZSBvcHRpb25zLnBhcmFtcy5hdXRoO1xuXG4gICAgbGV0IGJ1ZmYgPSAnJztcbiAgICBjb25zdCByZXEgPSB0aGlzLl9yZXF1ZXN0KG9wdGlvbnMsIGF1dGgsIHBhdGgpO1xuXG4gICAgc3RyZWFtLmRlc3Ryb3kgPSAoKSA9PiByZXEuZGVzdHJveSgpO1xuICAgIHJlcS5vbignZGF0YScsIGRhdGEgPT4ge1xuICAgICAgZGF0YSA9IChidWZmICsgZGF0YSkuc3BsaXQoL1xcbisvKTtcbiAgICAgIGNvbnN0IGwgPSBkYXRhLmxlbmd0aCAtIDE7XG5cbiAgICAgIGxldCBpID0gMDtcbiAgICAgIGZvciAoOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgc3RyZWFtLmVtaXQoJ2xvZycsIEpTT04ucGFyc2UoZGF0YVtpXSkpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgc3RyZWFtLmVtaXQoJ2Vycm9yJywgZSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgYnVmZiA9IGRhdGFbbF07XG4gICAgfSk7XG4gICAgcmVxLm9uKCdlcnJvcicsIGVyciA9PiBzdHJlYW0uZW1pdCgnZXJyb3InLCBlcnIpKTtcblxuICAgIHJldHVybiBzdHJlYW07XG4gIH1cblxuICAvKipcbiAgICogTWFrZSBhIHJlcXVlc3QgdG8gYSB3aW5zdG9uZCBzZXJ2ZXIgb3IgYW55IGh0dHAgc2VydmVyIHdoaWNoIGNhblxuICAgKiBoYW5kbGUganNvbi1ycGMuXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IG9wdGlvbnMgLSBPcHRpb25zIHRvIHNlbnQgdGhlIHJlcXVlc3QuXG4gICAqIEBwYXJhbSB7T2JqZWN0P30gYXV0aCAtIGF1dGhlbnRpY2F0aW9uIG9wdGlvbnNcbiAgICogQHBhcmFtIHtzdHJpbmd9IHBhdGggLSByZXF1ZXN0IHBhdGhcbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gY2FsbGJhY2sgLSBDb250aW51YXRpb24gdG8gcmVzcG9uZCB0byB3aGVuIGNvbXBsZXRlLlxuICAgKi9cbiAgX3JlcXVlc3Qob3B0aW9ucywgYXV0aCwgcGF0aCwgY2FsbGJhY2spIHtcbiAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcblxuICAgIGF1dGggPSBhdXRoIHx8IHRoaXMuYXV0aDtcbiAgICBwYXRoID0gcGF0aCB8fCB0aGlzLnBhdGggfHwgJyc7XG5cbiAgICBpZiAodGhpcy5iYXRjaCkge1xuICAgICAgdGhpcy5fZG9CYXRjaChvcHRpb25zLCBjYWxsYmFjaywgYXV0aCwgcGF0aCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2RvUmVxdWVzdChvcHRpb25zLCBjYWxsYmFjaywgYXV0aCwgcGF0aCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNlbmQgb3IgbWVtb3JpemUgdGhlIG9wdGlvbnMgYWNjb3JkaW5nIHRvIGJhdGNoIGNvbmZpZ3VyYXRpb25cbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gb3B0aW9ucyAtIE9wdGlvbnMgdG8gc2VudCB0aGUgcmVxdWVzdC5cbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gY2FsbGJhY2sgLSBDb250aW51YXRpb24gdG8gcmVzcG9uZCB0byB3aGVuIGNvbXBsZXRlLlxuICAgKiBAcGFyYW0ge09iamVjdD99IGF1dGggLSBhdXRoZW50aWNhdGlvbiBvcHRpb25zXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoIC0gcmVxdWVzdCBwYXRoXG4gICAqL1xuICBfZG9CYXRjaChvcHRpb25zLCBjYWxsYmFjaywgYXV0aCwgcGF0aCkge1xuICAgIHRoaXMuYmF0Y2hPcHRpb25zLnB1c2gob3B0aW9ucyk7XG4gICAgaWYgKHRoaXMuYmF0Y2hPcHRpb25zLmxlbmd0aCA9PT0gMSkge1xuICAgICAgLy8gRmlyc3QgbWVzc2FnZSBzdG9yZWQsIGl0J3MgdGltZSB0byBzdGFydCB0aGUgdGltZW91dCFcbiAgICAgIGNvbnN0IG1lID0gdGhpcztcbiAgICAgIHRoaXMuYmF0Y2hDYWxsYmFjayA9IGNhbGxiYWNrO1xuICAgICAgdGhpcy5iYXRjaFRpbWVvdXRJRCA9IHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAvLyB0aW1lb3V0IGlzIHJlYWNoZWQsIHNlbmQgYWxsIG1lc3NhZ2VzIHRvIGVuZHBvaW50XG4gICAgICAgIG1lLmJhdGNoVGltZW91dElEID0gLTE7XG4gICAgICAgIG1lLl9kb0JhdGNoUmVxdWVzdChtZS5iYXRjaENhbGxiYWNrLCBhdXRoLCBwYXRoKTtcbiAgICAgIH0sIHRoaXMuYmF0Y2hJbnRlcnZhbCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmJhdGNoT3B0aW9ucy5sZW5ndGggPT09IHRoaXMuYmF0Y2hDb3VudCkge1xuICAgICAgLy8gbWF4IGJhdGNoIGNvdW50IGlzIHJlYWNoZWQsIHNlbmQgYWxsIG1lc3NhZ2VzIHRvIGVuZHBvaW50XG4gICAgICB0aGlzLl9kb0JhdGNoUmVxdWVzdCh0aGlzLmJhdGNoQ2FsbGJhY2ssIGF1dGgsIHBhdGgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWF0ZSBhIHJlcXVlc3Qgd2l0aCB0aGUgbWVtb3JpemVkIGJhdGNoIG9wdGlvbnMsIHN0b3AgdGhlIGJhdGNoIHRpbWVvdXRcbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gY2FsbGJhY2sgLSBDb250aW51YXRpb24gdG8gcmVzcG9uZCB0byB3aGVuIGNvbXBsZXRlLlxuICAgKiBAcGFyYW0ge09iamVjdD99IGF1dGggLSBhdXRoZW50aWNhdGlvbiBvcHRpb25zXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoIC0gcmVxdWVzdCBwYXRoXG4gICAqL1xuICBfZG9CYXRjaFJlcXVlc3QoY2FsbGJhY2ssIGF1dGgsIHBhdGgpIHtcbiAgICBpZiAodGhpcy5iYXRjaFRpbWVvdXRJRCA+IDApIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLmJhdGNoVGltZW91dElEKTtcbiAgICAgIHRoaXMuYmF0Y2hUaW1lb3V0SUQgPSAtMTtcbiAgICB9XG4gICAgY29uc3QgYmF0Y2hPcHRpb25zQ29weSA9IHRoaXMuYmF0Y2hPcHRpb25zLnNsaWNlKCk7XG4gICAgdGhpcy5iYXRjaE9wdGlvbnMgPSBbXTtcbiAgICB0aGlzLl9kb1JlcXVlc3QoYmF0Y2hPcHRpb25zQ29weSwgY2FsbGJhY2ssIGF1dGgsIHBhdGgpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ha2UgYSByZXF1ZXN0IHRvIGEgd2luc3RvbmQgc2VydmVyIG9yIGFueSBodHRwIHNlcnZlciB3aGljaCBjYW5cbiAgICogaGFuZGxlIGpzb24tcnBjLlxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBvcHRpb25zIC0gT3B0aW9ucyB0byBzZW50IHRoZSByZXF1ZXN0LlxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBjYWxsYmFjayAtIENvbnRpbnVhdGlvbiB0byByZXNwb25kIHRvIHdoZW4gY29tcGxldGUuXG4gICAqIEBwYXJhbSB7T2JqZWN0P30gYXV0aCAtIGF1dGhlbnRpY2F0aW9uIG9wdGlvbnNcbiAgICogQHBhcmFtIHtzdHJpbmd9IHBhdGggLSByZXF1ZXN0IHBhdGhcbiAgICovXG4gIF9kb1JlcXVlc3Qob3B0aW9ucywgY2FsbGJhY2ssIGF1dGgsIHBhdGgpIHtcbiAgICAvLyBQcmVwYXJlIG9wdGlvbnMgZm9yIG91dGdvaW5nIEhUVFAgcmVxdWVzdFxuICAgIGNvbnN0IGhlYWRlcnMgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmhlYWRlcnMpO1xuICAgIGlmIChhdXRoICYmIGF1dGguYmVhcmVyKSB7XG4gICAgICBoZWFkZXJzLkF1dGhvcml6YXRpb24gPSBgQmVhcmVyICR7YXV0aC5iZWFyZXJ9YDtcbiAgICB9XG4gICAgY29uc3QgcmVxID0gKHRoaXMuc3NsID8gaHR0cHMgOiBodHRwKS5yZXF1ZXN0KHtcbiAgICAgIC4uLnRoaXMub3B0aW9ucyxcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgaG9zdDogdGhpcy5ob3N0LFxuICAgICAgcG9ydDogdGhpcy5wb3J0LFxuICAgICAgcGF0aDogYC8ke3BhdGgucmVwbGFjZSgvXlxcLy8sICcnKX1gLFxuICAgICAgaGVhZGVyczogaGVhZGVycyxcbiAgICAgIGF1dGg6IChhdXRoICYmIGF1dGgudXNlcm5hbWUgJiYgYXV0aC5wYXNzd29yZCkgPyAoYCR7YXV0aC51c2VybmFtZX06JHthdXRoLnBhc3N3b3JkfWApIDogJycsXG4gICAgICBhZ2VudDogdGhpcy5hZ2VudFxuICAgIH0pO1xuXG4gICAgcmVxLm9uKCdlcnJvcicsIGNhbGxiYWNrKTtcbiAgICByZXEub24oJ3Jlc3BvbnNlJywgcmVzID0+IChcbiAgICAgIHJlcy5vbignZW5kJywgKCkgPT4gY2FsbGJhY2sobnVsbCwgcmVzKSkucmVzdW1lKClcbiAgICApKTtcbiAgICBjb25zdCBqc29uU3RyaW5naWZ5ID0gY29uZmlndXJlKHtcbiAgICAgIC4uLih0aGlzLm1heGltdW1EZXB0aCAmJiB7IG1heGltdW1EZXB0aDogdGhpcy5tYXhpbXVtRGVwdGggfSlcbiAgICB9KTtcbiAgICByZXEuZW5kKEJ1ZmZlci5mcm9tKGpzb25TdHJpbmdpZnkob3B0aW9ucywgdGhpcy5vcHRpb25zLnJlcGxhY2VyKSwgJ3V0ZjgnKSk7XG4gIH1cbn07XG4iLCAiLyoqXG4gKiBzdHJlYW0uanM6IFRyYW5zcG9ydCBmb3Igb3V0cHV0dGluZyB0byBhbnkgYXJiaXRyYXJ5IHN0cmVhbS5cbiAqXG4gKiAoQykgMjAxMCBDaGFybGllIFJvYmJpbnNcbiAqIE1JVCBMSUNFTkNFXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5jb25zdCBpc1N0cmVhbSA9IHJlcXVpcmUoJ2lzLXN0cmVhbScpO1xuY29uc3QgeyBNRVNTQUdFIH0gPSByZXF1aXJlKCd0cmlwbGUtYmVhbScpO1xuY29uc3Qgb3MgPSByZXF1aXJlKCdvcycpO1xuY29uc3QgVHJhbnNwb3J0U3RyZWFtID0gcmVxdWlyZSgnd2luc3Rvbi10cmFuc3BvcnQnKTtcblxuLyoqXG4gKiBUcmFuc3BvcnQgZm9yIG91dHB1dHRpbmcgdG8gYW55IGFyYml0cmFyeSBzdHJlYW0uXG4gKiBAdHlwZSB7U3RyZWFtfVxuICogQGV4dGVuZHMge1RyYW5zcG9ydFN0cmVhbX1cbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBjbGFzcyBTdHJlYW0gZXh0ZW5kcyBUcmFuc3BvcnRTdHJlYW0ge1xuICAvKipcbiAgICogQ29uc3RydWN0b3IgZnVuY3Rpb24gZm9yIHRoZSBDb25zb2xlIHRyYW5zcG9ydCBvYmplY3QgcmVzcG9uc2libGUgZm9yXG4gICAqIHBlcnNpc3RpbmcgbG9nIG1lc3NhZ2VzIGFuZCBtZXRhZGF0YSB0byBhIHRlcm1pbmFsIG9yIFRUWS5cbiAgICogQHBhcmFtIHshT2JqZWN0fSBbb3B0aW9ucz17fV0gLSBPcHRpb25zIGZvciB0aGlzIGluc3RhbmNlLlxuICAgKi9cbiAgY29uc3RydWN0b3Iob3B0aW9ucyA9IHt9KSB7XG4gICAgc3VwZXIob3B0aW9ucyk7XG5cbiAgICBpZiAoIW9wdGlvbnMuc3RyZWFtIHx8ICFpc1N0cmVhbShvcHRpb25zLnN0cmVhbSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignb3B0aW9ucy5zdHJlYW0gaXMgcmVxdWlyZWQuJyk7XG4gICAgfVxuXG4gICAgLy8gV2UgbmVlZCB0byBsaXN0ZW4gZm9yIGRyYWluIGV2ZW50cyB3aGVuIHdyaXRlKCkgcmV0dXJucyBmYWxzZS4gVGhpcyBjYW5cbiAgICAvLyBtYWtlIG5vZGUgbWFkIGF0IHRpbWVzLlxuICAgIHRoaXMuX3N0cmVhbSA9IG9wdGlvbnMuc3RyZWFtO1xuICAgIHRoaXMuX3N0cmVhbS5zZXRNYXhMaXN0ZW5lcnMoSW5maW5pdHkpO1xuICAgIHRoaXMuaXNPYmplY3RNb2RlID0gb3B0aW9ucy5zdHJlYW0uX3dyaXRhYmxlU3RhdGUub2JqZWN0TW9kZTtcbiAgICB0aGlzLmVvbCA9ICh0eXBlb2Ygb3B0aW9ucy5lb2wgPT09ICdzdHJpbmcnKSA/IG9wdGlvbnMuZW9sIDogb3MuRU9MO1xuICB9XG5cbiAgLyoqXG4gICAqIENvcmUgbG9nZ2luZyBtZXRob2QgZXhwb3NlZCB0byBXaW5zdG9uLlxuICAgKiBAcGFyYW0ge09iamVjdH0gaW5mbyAtIFRPRE86IGFkZCBwYXJhbSBkZXNjcmlwdGlvbi5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gY2FsbGJhY2sgLSBUT0RPOiBhZGQgcGFyYW0gZGVzY3JpcHRpb24uXG4gICAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gICAqL1xuICBsb2coaW5mbywgY2FsbGJhY2spIHtcbiAgICBzZXRJbW1lZGlhdGUoKCkgPT4gdGhpcy5lbWl0KCdsb2dnZWQnLCBpbmZvKSk7XG4gICAgaWYgKHRoaXMuaXNPYmplY3RNb2RlKSB7XG4gICAgICB0aGlzLl9zdHJlYW0ud3JpdGUoaW5mbyk7XG4gICAgICBpZiAoY2FsbGJhY2spIHtcbiAgICAgICAgY2FsbGJhY2soKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBjYWxsYmFjay1yZXR1cm5cbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9zdHJlYW0ud3JpdGUoYCR7aW5mb1tNRVNTQUdFXX0ke3RoaXMuZW9sfWApO1xuICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgY2FsbGJhY2soKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBjYWxsYmFjay1yZXR1cm5cbiAgICB9XG4gICAgcmV0dXJuO1xuICB9XG59O1xuIiwgIi8qKlxuICogdHJhbnNwb3J0cy5qczogU2V0IG9mIGFsbCB0cmFuc3BvcnRzIFdpbnN0b24ga25vd3MgYWJvdXQuXG4gKlxuICogKEMpIDIwMTAgQ2hhcmxpZSBSb2JiaW5zXG4gKiBNSVQgTElDRU5DRVxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuLyoqXG4gKiBUT0RPOiBhZGQgcHJvcGVydHkgZGVzY3JpcHRpb24uXG4gKiBAdHlwZSB7Q29uc29sZX1cbiAqL1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdDb25zb2xlJywge1xuICBjb25maWd1cmFibGU6IHRydWUsXG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGdldCgpIHtcbiAgICByZXR1cm4gcmVxdWlyZSgnLi9jb25zb2xlJyk7XG4gIH1cbn0pO1xuXG4vKipcbiAqIFRPRE86IGFkZCBwcm9wZXJ0eSBkZXNjcmlwdGlvbi5cbiAqIEB0eXBlIHtGaWxlfVxuICovXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ0ZpbGUnLCB7XG4gIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgZ2V0KCkge1xuICAgIHJldHVybiByZXF1aXJlKCcuL2ZpbGUnKTtcbiAgfVxufSk7XG5cbi8qKlxuICogVE9ETzogYWRkIHByb3BlcnR5IGRlc2NyaXB0aW9uLlxuICogQHR5cGUge0h0dHB9XG4gKi9cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnSHR0cCcsIHtcbiAgY29uZmlndXJhYmxlOiB0cnVlLFxuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBnZXQoKSB7XG4gICAgcmV0dXJuIHJlcXVpcmUoJy4vaHR0cCcpO1xuICB9XG59KTtcblxuLyoqXG4gKiBUT0RPOiBhZGQgcHJvcGVydHkgZGVzY3JpcHRpb24uXG4gKiBAdHlwZSB7U3RyZWFtfVxuICovXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ1N0cmVhbScsIHtcbiAgY29uZmlndXJhYmxlOiB0cnVlLFxuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBnZXQoKSB7XG4gICAgcmV0dXJuIHJlcXVpcmUoJy4vc3RyZWFtJyk7XG4gIH1cbn0pO1xuIiwgIi8qKlxuICogaW5kZXguanM6IERlZmF1bHQgc2V0dGluZ3MgZm9yIGFsbCBsZXZlbHMgdGhhdCB3aW5zdG9uIGtub3dzIGFib3V0LlxuICpcbiAqIChDKSAyMDEwIENoYXJsaWUgUm9iYmluc1xuICogTUlUIExJQ0VOQ0VcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmNvbnN0IGxvZ2Zvcm0gPSByZXF1aXJlKCdsb2dmb3JtJyk7XG5jb25zdCB7IGNvbmZpZ3MgfSA9IHJlcXVpcmUoJ3RyaXBsZS1iZWFtJyk7XG5cbi8qKlxuICogRXhwb3J0IGNvbmZpZyBzZXQgZm9yIHRoZSBDTEkuXG4gKiBAdHlwZSB7T2JqZWN0fVxuICovXG5leHBvcnRzLmNsaSA9IGxvZ2Zvcm0ubGV2ZWxzKGNvbmZpZ3MuY2xpKTtcblxuLyoqXG4gKiBFeHBvcnQgY29uZmlnIHNldCBmb3IgbnBtLlxuICogQHR5cGUge09iamVjdH1cbiAqL1xuZXhwb3J0cy5ucG0gPSBsb2dmb3JtLmxldmVscyhjb25maWdzLm5wbSk7XG5cbi8qKlxuICogRXhwb3J0IGNvbmZpZyBzZXQgZm9yIHRoZSBzeXNsb2cuXG4gKiBAdHlwZSB7T2JqZWN0fVxuICovXG5leHBvcnRzLnN5c2xvZyA9IGxvZ2Zvcm0ubGV2ZWxzKGNvbmZpZ3Muc3lzbG9nKTtcblxuLyoqXG4gKiBIb2lzdCBhZGRDb2xvcnMgZnJvbSBsb2dmb3JtIHdoZXJlIGl0IHdhcyByZWZhY3RvcmVkIGludG8gaW4gd2luc3RvbkAzLlxuICogQHR5cGUge09iamVjdH1cbiAqL1xuZXhwb3J0cy5hZGRDb2xvcnMgPSBsb2dmb3JtLmxldmVscztcbiIsICIvKipcbiAqIGV4Y2VwdGlvbi1zdHJlYW0uanM6IFRPRE86IGFkZCBmaWxlIGhlYWRlciBoYW5kbGVyLlxuICpcbiAqIChDKSAyMDEwIENoYXJsaWUgUm9iYmluc1xuICogTUlUIExJQ0VOQ0VcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmNvbnN0IHsgV3JpdGFibGUgfSA9IHJlcXVpcmUoJ3JlYWRhYmxlLXN0cmVhbScpO1xuXG4vKipcbiAqIFRPRE86IGFkZCBjbGFzcyBkZXNjcmlwdGlvbi5cbiAqIEB0eXBlIHtFeGNlcHRpb25TdHJlYW19XG4gKiBAZXh0ZW5kcyB7V3JpdGFibGV9XG4gKi9cbm1vZHVsZS5leHBvcnRzID0gY2xhc3MgRXhjZXB0aW9uU3RyZWFtIGV4dGVuZHMgV3JpdGFibGUge1xuICAvKipcbiAgICogQ29uc3RydWN0b3IgZnVuY3Rpb24gZm9yIHRoZSBFeGNlcHRpb25TdHJlYW0gcmVzcG9uc2libGUgZm9yIHdyYXBwaW5nIGFcbiAgICogVHJhbnNwb3J0U3RyZWFtOyBvbmx5IGFsbG93aW5nIHdyaXRlcyBvZiBgaW5mb2Agb2JqZWN0cyB3aXRoXG4gICAqIGBpbmZvLmV4Y2VwdGlvbmAgc2V0IHRvIHRydWUuXG4gICAqIEBwYXJhbSB7IVRyYW5zcG9ydFN0cmVhbX0gdHJhbnNwb3J0IC0gU3RyZWFtIHRvIGZpbHRlciB0byBleGNlcHRpb25zXG4gICAqL1xuICBjb25zdHJ1Y3Rvcih0cmFuc3BvcnQpIHtcbiAgICBzdXBlcih7IG9iamVjdE1vZGU6IHRydWUgfSk7XG5cbiAgICBpZiAoIXRyYW5zcG9ydCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeGNlcHRpb25TdHJlYW0gcmVxdWlyZXMgYSBUcmFuc3BvcnRTdHJlYW0gaW5zdGFuY2UuJyk7XG4gICAgfVxuXG4gICAgLy8gUmVtYXJrIChpbmRleHplcm8pOiB3ZSBzZXQgYGhhbmRsZUV4Y2VwdGlvbnNgIGhlcmUgYmVjYXVzZSBpdCdzIHRoZVxuICAgIC8vIHByZWRpY2F0ZSBjaGVja2VkIGluIEV4Y2VwdGlvbkhhbmRsZXIucHJvdG90eXBlLl9fZ2V0RXhjZXB0aW9uSGFuZGxlcnNcbiAgICB0aGlzLmhhbmRsZUV4Y2VwdGlvbnMgPSB0cnVlO1xuICAgIHRoaXMudHJhbnNwb3J0ID0gdHJhbnNwb3J0O1xuICB9XG5cbiAgLyoqXG4gICAqIFdyaXRlcyB0aGUgaW5mbyBvYmplY3QgdG8gb3VyIHRyYW5zcG9ydCBpbnN0YW5jZSBpZiAoYW5kIG9ubHkgaWYpIHRoZVxuICAgKiBgZXhjZXB0aW9uYCBwcm9wZXJ0eSBpcyBzZXQgb24gdGhlIGluZm8uXG4gICAqIEBwYXJhbSB7bWl4ZWR9IGluZm8gLSBUT0RPOiBhZGQgcGFyYW0gZGVzY3JpcHRpb24uXG4gICAqIEBwYXJhbSB7bWl4ZWR9IGVuYyAtIFRPRE86IGFkZCBwYXJhbSBkZXNjcmlwdGlvbi5cbiAgICogQHBhcmFtIHttaXhlZH0gY2FsbGJhY2sgLSBUT0RPOiBhZGQgcGFyYW0gZGVzY3JpcHRpb24uXG4gICAqIEByZXR1cm5zIHttaXhlZH0gLSBUT0RPOiBhZGQgcmV0dXJuIGRlc2NyaXB0aW9uLlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgX3dyaXRlKGluZm8sIGVuYywgY2FsbGJhY2spIHtcbiAgICBpZiAoaW5mby5leGNlcHRpb24pIHtcbiAgICAgIHJldHVybiB0aGlzLnRyYW5zcG9ydC5sb2coaW5mbywgY2FsbGJhY2spO1xuICAgIH1cblxuICAgIGNhbGxiYWNrKCk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn07XG4iLCAiLyoqXG4gKiBleGNlcHRpb24taGFuZGxlci5qczogT2JqZWN0IGZvciBoYW5kbGluZyB1bmNhdWdodEV4Y2VwdGlvbiBldmVudHMuXG4gKlxuICogKEMpIDIwMTAgQ2hhcmxpZSBSb2JiaW5zXG4gKiBNSVQgTElDRU5DRVxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuY29uc3Qgb3MgPSByZXF1aXJlKCdvcycpO1xuY29uc3QgYXN5bmNGb3JFYWNoID0gcmVxdWlyZSgnYXN5bmMvZm9yRWFjaCcpO1xuY29uc3QgZGVidWcgPSByZXF1aXJlKCdAZGFiaC9kaWFnbm9zdGljcycpKCd3aW5zdG9uOmV4Y2VwdGlvbicpO1xuY29uc3Qgb25jZSA9IHJlcXVpcmUoJ29uZS10aW1lJyk7XG5jb25zdCBzdGFja1RyYWNlID0gcmVxdWlyZSgnc3RhY2stdHJhY2UnKTtcbmNvbnN0IEV4Y2VwdGlvblN0cmVhbSA9IHJlcXVpcmUoJy4vZXhjZXB0aW9uLXN0cmVhbScpO1xuXG4vKipcbiAqIE9iamVjdCBmb3IgaGFuZGxpbmcgdW5jYXVnaHRFeGNlcHRpb24gZXZlbnRzLlxuICogQHR5cGUge0V4Y2VwdGlvbkhhbmRsZXJ9XG4gKi9cbm1vZHVsZS5leHBvcnRzID0gY2xhc3MgRXhjZXB0aW9uSGFuZGxlciB7XG4gIC8qKlxuICAgKiBUT0RPOiBhZGQgY29udHJ1Y3RvciBkZXNjcmlwdGlvblxuICAgKiBAcGFyYW0geyFMb2dnZXJ9IGxvZ2dlciAtIFRPRE86IGFkZCBwYXJhbSBkZXNjcmlwdGlvblxuICAgKi9cbiAgY29uc3RydWN0b3IobG9nZ2VyKSB7XG4gICAgaWYgKCFsb2dnZXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTG9nZ2VyIGlzIHJlcXVpcmVkIHRvIGhhbmRsZSBleGNlcHRpb25zJyk7XG4gICAgfVxuXG4gICAgdGhpcy5sb2dnZXIgPSBsb2dnZXI7XG4gICAgdGhpcy5oYW5kbGVycyA9IG5ldyBNYXAoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGVzIGB1bmNhdWdodEV4Y2VwdGlvbmAgZXZlbnRzIGZvciB0aGUgY3VycmVudCBwcm9jZXNzIGJ5IGFkZGluZyBhbnlcbiAgICogaGFuZGxlcnMgcGFzc2VkIGluLlxuICAgKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICAgKi9cbiAgaGFuZGxlKC4uLmFyZ3MpIHtcbiAgICBhcmdzLmZvckVhY2goYXJnID0+IHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGFyZykpIHtcbiAgICAgICAgcmV0dXJuIGFyZy5mb3JFYWNoKGhhbmRsZXIgPT4gdGhpcy5fYWRkSGFuZGxlcihoYW5kbGVyKSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuX2FkZEhhbmRsZXIoYXJnKTtcbiAgICB9KTtcblxuICAgIGlmICghdGhpcy5jYXRjaGVyKSB7XG4gICAgICB0aGlzLmNhdGNoZXIgPSB0aGlzLl91bmNhdWdodEV4Y2VwdGlvbi5iaW5kKHRoaXMpO1xuICAgICAgcHJvY2Vzcy5vbigndW5jYXVnaHRFeGNlcHRpb24nLCB0aGlzLmNhdGNoZXIpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIGFueSBoYW5kbGVycyB0byBgdW5jYXVnaHRFeGNlcHRpb25gIGV2ZW50cyBmb3IgdGhlIGN1cnJlbnRcbiAgICogcHJvY2Vzcy4gVGhpcyBkb2VzIG5vdCBtb2RpZnkgdGhlIHN0YXRlIG9mIHRoZSBgdGhpcy5oYW5kbGVyc2Agc2V0LlxuICAgKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICAgKi9cbiAgdW5oYW5kbGUoKSB7XG4gICAgaWYgKHRoaXMuY2F0Y2hlcikge1xuICAgICAgcHJvY2Vzcy5yZW1vdmVMaXN0ZW5lcigndW5jYXVnaHRFeGNlcHRpb24nLCB0aGlzLmNhdGNoZXIpO1xuICAgICAgdGhpcy5jYXRjaGVyID0gZmFsc2U7XG5cbiAgICAgIEFycmF5LmZyb20odGhpcy5oYW5kbGVycy52YWx1ZXMoKSlcbiAgICAgICAgLmZvckVhY2god3JhcHBlciA9PiB0aGlzLmxvZ2dlci51bnBpcGUod3JhcHBlcikpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUT0RPOiBhZGQgbWV0aG9kIGRlc2NyaXB0aW9uXG4gICAqIEBwYXJhbSB7RXJyb3J9IGVyciAtIEVycm9yIHRvIGdldCBpbmZvcm1hdGlvbiBhYm91dC5cbiAgICogQHJldHVybnMge21peGVkfSAtIFRPRE86IGFkZCByZXR1cm4gZGVzY3JpcHRpb24uXG4gICAqL1xuICBnZXRBbGxJbmZvKGVycikge1xuICAgIGxldCBtZXNzYWdlID0gbnVsbDtcbiAgICBpZiAoZXJyKSB7XG4gICAgICBtZXNzYWdlID0gdHlwZW9mIGVyciA9PT0gJ3N0cmluZycgPyBlcnIgOiBlcnIubWVzc2FnZTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgZXJyb3I6IGVycixcbiAgICAgIC8vIFRPRE8gKGluZGV4emVybyk6IGhvdyBkbyB3ZSBjb25maWd1cmUgdGhpcz9cbiAgICAgIGxldmVsOiAnZXJyb3InLFxuICAgICAgbWVzc2FnZTogW1xuICAgICAgICBgdW5jYXVnaHRFeGNlcHRpb246ICR7KG1lc3NhZ2UgfHwgJyhubyBlcnJvciBtZXNzYWdlKScpfWAsXG4gICAgICAgIGVyciAmJiBlcnIuc3RhY2sgfHwgJyAgTm8gc3RhY2sgdHJhY2UnXG4gICAgICBdLmpvaW4oJ1xcbicpLFxuICAgICAgc3RhY2s6IGVyciAmJiBlcnIuc3RhY2ssXG4gICAgICBleGNlcHRpb246IHRydWUsXG4gICAgICBkYXRlOiBuZXcgRGF0ZSgpLnRvU3RyaW5nKCksXG4gICAgICBwcm9jZXNzOiB0aGlzLmdldFByb2Nlc3NJbmZvKCksXG4gICAgICBvczogdGhpcy5nZXRPc0luZm8oKSxcbiAgICAgIHRyYWNlOiB0aGlzLmdldFRyYWNlKGVycilcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgYWxsIHJlbGV2YW50IHByb2Nlc3MgaW5mb3JtYXRpb24gZm9yIHRoZSBjdXJyZW50bHkgcnVubmluZyBwcm9jZXNzLlxuICAgKiBAcmV0dXJucyB7bWl4ZWR9IC0gVE9ETzogYWRkIHJldHVybiBkZXNjcmlwdGlvbi5cbiAgICovXG4gIGdldFByb2Nlc3NJbmZvKCkge1xuICAgIHJldHVybiB7XG4gICAgICBwaWQ6IHByb2Nlc3MucGlkLFxuICAgICAgdWlkOiBwcm9jZXNzLmdldHVpZCA/IHByb2Nlc3MuZ2V0dWlkKCkgOiBudWxsLFxuICAgICAgZ2lkOiBwcm9jZXNzLmdldGdpZCA/IHByb2Nlc3MuZ2V0Z2lkKCkgOiBudWxsLFxuICAgICAgY3dkOiBwcm9jZXNzLmN3ZCgpLFxuICAgICAgZXhlY1BhdGg6IHByb2Nlc3MuZXhlY1BhdGgsXG4gICAgICB2ZXJzaW9uOiBwcm9jZXNzLnZlcnNpb24sXG4gICAgICBhcmd2OiBwcm9jZXNzLmFyZ3YsXG4gICAgICBtZW1vcnlVc2FnZTogcHJvY2Vzcy5tZW1vcnlVc2FnZSgpXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGFsbCByZWxldmFudCBPUyBpbmZvcm1hdGlvbiBmb3IgdGhlIGN1cnJlbnRseSBydW5uaW5nIHByb2Nlc3MuXG4gICAqIEByZXR1cm5zIHttaXhlZH0gLSBUT0RPOiBhZGQgcmV0dXJuIGRlc2NyaXB0aW9uLlxuICAgKi9cbiAgZ2V0T3NJbmZvKCkge1xuICAgIHJldHVybiB7XG4gICAgICBsb2FkYXZnOiBvcy5sb2FkYXZnKCksXG4gICAgICB1cHRpbWU6IG9zLnVwdGltZSgpXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGEgc3RhY2sgdHJhY2UgZm9yIHRoZSBzcGVjaWZpZWQgZXJyb3IuXG4gICAqIEBwYXJhbSB7bWl4ZWR9IGVyciAtIFRPRE86IGFkZCBwYXJhbSBkZXNjcmlwdGlvbi5cbiAgICogQHJldHVybnMge21peGVkfSAtIFRPRE86IGFkZCByZXR1cm4gZGVzY3JpcHRpb24uXG4gICAqL1xuICBnZXRUcmFjZShlcnIpIHtcbiAgICBjb25zdCB0cmFjZSA9IGVyciA/IHN0YWNrVHJhY2UucGFyc2UoZXJyKSA6IHN0YWNrVHJhY2UuZ2V0KCk7XG4gICAgcmV0dXJuIHRyYWNlLm1hcChzaXRlID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNvbHVtbjogc2l0ZS5nZXRDb2x1bW5OdW1iZXIoKSxcbiAgICAgICAgZmlsZTogc2l0ZS5nZXRGaWxlTmFtZSgpLFxuICAgICAgICBmdW5jdGlvbjogc2l0ZS5nZXRGdW5jdGlvbk5hbWUoKSxcbiAgICAgICAgbGluZTogc2l0ZS5nZXRMaW5lTnVtYmVyKCksXG4gICAgICAgIG1ldGhvZDogc2l0ZS5nZXRNZXRob2ROYW1lKCksXG4gICAgICAgIG5hdGl2ZTogc2l0ZS5pc05hdGl2ZSgpXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEhlbHBlciBtZXRob2QgdG8gYWRkIGEgdHJhbnNwb3J0IGFzIGFuIGV4Y2VwdGlvbiBoYW5kbGVyLlxuICAgKiBAcGFyYW0ge1RyYW5zcG9ydH0gaGFuZGxlciAtIFRoZSB0cmFuc3BvcnQgdG8gYWRkIGFzIGFuIGV4Y2VwdGlvbiBoYW5kbGVyLlxuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICovXG4gIF9hZGRIYW5kbGVyKGhhbmRsZXIpIHtcbiAgICBpZiAoIXRoaXMuaGFuZGxlcnMuaGFzKGhhbmRsZXIpKSB7XG4gICAgICBoYW5kbGVyLmhhbmRsZUV4Y2VwdGlvbnMgPSB0cnVlO1xuICAgICAgY29uc3Qgd3JhcHBlciA9IG5ldyBFeGNlcHRpb25TdHJlYW0oaGFuZGxlcik7XG4gICAgICB0aGlzLmhhbmRsZXJzLnNldChoYW5kbGVyLCB3cmFwcGVyKTtcbiAgICAgIHRoaXMubG9nZ2VyLnBpcGUod3JhcHBlcik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIExvZ3MgYWxsIHJlbGV2YW50IGluZm9ybWF0aW9uIGFyb3VuZCB0aGUgYGVycmAgYW5kIGV4aXRzIHRoZSBjdXJyZW50XG4gICAqIHByb2Nlc3MuXG4gICAqIEBwYXJhbSB7RXJyb3J9IGVyciAtIEVycm9yIHRvIGhhbmRsZVxuICAgKiBAcmV0dXJucyB7bWl4ZWR9IC0gVE9ETzogYWRkIHJldHVybiBkZXNjcmlwdGlvbi5cbiAgICogQHByaXZhdGVcbiAgICovXG4gIF91bmNhdWdodEV4Y2VwdGlvbihlcnIpIHtcbiAgICBjb25zdCBpbmZvID0gdGhpcy5nZXRBbGxJbmZvKGVycik7XG4gICAgY29uc3QgaGFuZGxlcnMgPSB0aGlzLl9nZXRFeGNlcHRpb25IYW5kbGVycygpO1xuICAgIC8vIENhbGN1bGF0ZSBpZiB3ZSBzaG91bGQgZXhpdCBvbiB0aGlzIGVycm9yXG4gICAgbGV0IGRvRXhpdCA9IHR5cGVvZiB0aGlzLmxvZ2dlci5leGl0T25FcnJvciA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgPyB0aGlzLmxvZ2dlci5leGl0T25FcnJvcihlcnIpXG4gICAgICA6IHRoaXMubG9nZ2VyLmV4aXRPbkVycm9yO1xuICAgIGxldCB0aW1lb3V0O1xuXG4gICAgaWYgKCFoYW5kbGVycy5sZW5ndGggJiYgZG9FeGl0KSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgY29uc29sZS53YXJuKCd3aW5zdG9uOiBleGl0T25FcnJvciBjYW5ub3QgYmUgdHJ1ZSB3aXRoIG5vIGV4Y2VwdGlvbiBoYW5kbGVycy4nKTtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICBjb25zb2xlLndhcm4oJ3dpbnN0b246IG5vdCBleGl0aW5nIHByb2Nlc3MuJyk7XG4gICAgICBkb0V4aXQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBncmFjZWZ1bEV4aXQoKSB7XG4gICAgICBkZWJ1ZygnZG9FeGl0JywgZG9FeGl0KTtcbiAgICAgIGRlYnVnKCdwcm9jZXNzLl9leGl0aW5nJywgcHJvY2Vzcy5fZXhpdGluZyk7XG5cbiAgICAgIGlmIChkb0V4aXQgJiYgIXByb2Nlc3MuX2V4aXRpbmcpIHtcbiAgICAgICAgLy8gUmVtYXJrOiBDdXJyZW50bHkgaWdub3JpbmcgYW55IGV4Y2VwdGlvbnMgZnJvbSB0cmFuc3BvcnRzIHdoZW5cbiAgICAgICAgLy8gY2F0Y2hpbmcgdW5jYXVnaHQgZXhjZXB0aW9ucy5cbiAgICAgICAgaWYgKHRpbWVvdXQpIHtcbiAgICAgICAgICBjbGVhclRpbWVvdXQodGltZW91dCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXByb2Nlc3MtZXhpdFxuICAgICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCFoYW5kbGVycyB8fCBoYW5kbGVycy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBwcm9jZXNzLm5leHRUaWNrKGdyYWNlZnVsRXhpdCk7XG4gICAgfVxuXG4gICAgLy8gTG9nIHRvIGFsbCB0cmFuc3BvcnRzIGF0dGVtcHRpbmcgdG8gbGlzdGVuIGZvciB3aGVuIHRoZXkgYXJlIGNvbXBsZXRlZC5cbiAgICBhc3luY0ZvckVhY2goaGFuZGxlcnMsIChoYW5kbGVyLCBuZXh0KSA9PiB7XG4gICAgICBjb25zdCBkb25lID0gb25jZShuZXh0KTtcbiAgICAgIGNvbnN0IHRyYW5zcG9ydCA9IGhhbmRsZXIudHJhbnNwb3J0IHx8IGhhbmRsZXI7XG5cbiAgICAgIC8vIERlYnVnIHdyYXBwaW5nIHNvIHRoYXQgd2UgY2FuIGluc3BlY3Qgd2hhdCdzIGdvaW5nIG9uIHVuZGVyIHRoZSBjb3ZlcnMuXG4gICAgICBmdW5jdGlvbiBvbkRvbmUoZXZlbnQpIHtcbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICBkZWJ1ZyhldmVudCk7XG4gICAgICAgICAgZG9uZSgpO1xuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICB0cmFuc3BvcnQuX2VuZGluZyA9IHRydWU7XG4gICAgICB0cmFuc3BvcnQub25jZSgnZmluaXNoJywgb25Eb25lKCdmaW5pc2hlZCcpKTtcbiAgICAgIHRyYW5zcG9ydC5vbmNlKCdlcnJvcicsIG9uRG9uZSgnZXJyb3InKSk7XG4gICAgfSwgKCkgPT4gZG9FeGl0ICYmIGdyYWNlZnVsRXhpdCgpKTtcblxuICAgIHRoaXMubG9nZ2VyLmxvZyhpbmZvKTtcblxuICAgIC8vIElmIGV4aXRPbkVycm9yIGlzIHRydWUsIHRoZW4gb25seSBhbGxvdyB0aGUgbG9nZ2luZyBvZiBleGNlcHRpb25zIHRvXG4gICAgLy8gdGFrZSB1cCB0byBgMzAwMG1zYC5cbiAgICBpZiAoZG9FeGl0KSB7XG4gICAgICB0aW1lb3V0ID0gc2V0VGltZW91dChncmFjZWZ1bEV4aXQsIDMwMDApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBsaXN0IG9mIHRyYW5zcG9ydHMgYW5kIGV4Y2VwdGlvbkhhbmRsZXJzIGZvciB0aGlzIGluc3RhbmNlLlxuICAgKiBAcmV0dXJucyB7QXJyYXl9IC0gTGlzdCBvZiB0cmFuc3BvcnRzIGFuZCBleGNlcHRpb25IYW5kbGVycyBmb3IgdGhpc1xuICAgKiBpbnN0YW5jZS5cbiAgICogQHByaXZhdGVcbiAgICovXG4gIF9nZXRFeGNlcHRpb25IYW5kbGVycygpIHtcbiAgICAvLyBSZW1hcmsgKGluZGV4emVybyk6IHNpbmNlIGBsb2dnZXIudHJhbnNwb3J0c2AgcmV0dXJucyBhbGwgb2YgdGhlIHBpcGVzXG4gICAgLy8gZnJvbSB0aGUgX3JlYWRhYmxlU3RhdGUgb2YgdGhlIHN0cmVhbSB3ZSBhY3R1YWxseSBnZXQgdGhlIGpvaW4gb2YgdGhlXG4gICAgLy8gZXhwbGljaXQgaGFuZGxlcnMgYW5kIHRoZSBpbXBsaWNpdCB0cmFuc3BvcnRzIHdpdGhcbiAgICAvLyBgaGFuZGxlRXhjZXB0aW9uczogdHJ1ZWBcbiAgICByZXR1cm4gdGhpcy5sb2dnZXIudHJhbnNwb3J0cy5maWx0ZXIod3JhcCA9PiB7XG4gICAgICBjb25zdCB0cmFuc3BvcnQgPSB3cmFwLnRyYW5zcG9ydCB8fCB3cmFwO1xuICAgICAgcmV0dXJuIHRyYW5zcG9ydC5oYW5kbGVFeGNlcHRpb25zO1xuICAgIH0pO1xuICB9XG59O1xuIiwgIi8qKlxuICogcmVqZWN0aW9uLXN0cmVhbS5qczogVE9ETzogYWRkIGZpbGUgaGVhZGVyIGhhbmRsZXIuXG4gKlxuICogKEMpIDIwMTAgQ2hhcmxpZSBSb2JiaW5zXG4gKiBNSVQgTElDRU5DRVxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuY29uc3QgeyBXcml0YWJsZSB9ID0gcmVxdWlyZSgncmVhZGFibGUtc3RyZWFtJyk7XG5cbi8qKlxuICogVE9ETzogYWRkIGNsYXNzIGRlc2NyaXB0aW9uLlxuICogQHR5cGUge1JlamVjdGlvblN0cmVhbX1cbiAqIEBleHRlbmRzIHtXcml0YWJsZX1cbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBjbGFzcyBSZWplY3Rpb25TdHJlYW0gZXh0ZW5kcyBXcml0YWJsZSB7XG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RvciBmdW5jdGlvbiBmb3IgdGhlIFJlamVjdGlvblN0cmVhbSByZXNwb25zaWJsZSBmb3Igd3JhcHBpbmcgYVxuICAgKiBUcmFuc3BvcnRTdHJlYW07IG9ubHkgYWxsb3dpbmcgd3JpdGVzIG9mIGBpbmZvYCBvYmplY3RzIHdpdGhcbiAgICogYGluZm8ucmVqZWN0aW9uYCBzZXQgdG8gdHJ1ZS5cbiAgICogQHBhcmFtIHshVHJhbnNwb3J0U3RyZWFtfSB0cmFuc3BvcnQgLSBTdHJlYW0gdG8gZmlsdGVyIHRvIHJlamVjdGlvbnNcbiAgICovXG4gIGNvbnN0cnVjdG9yKHRyYW5zcG9ydCkge1xuICAgIHN1cGVyKHsgb2JqZWN0TW9kZTogdHJ1ZSB9KTtcblxuICAgIGlmICghdHJhbnNwb3J0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlamVjdGlvblN0cmVhbSByZXF1aXJlcyBhIFRyYW5zcG9ydFN0cmVhbSBpbnN0YW5jZS4nKTtcbiAgICB9XG5cbiAgICB0aGlzLmhhbmRsZVJlamVjdGlvbnMgPSB0cnVlO1xuICAgIHRoaXMudHJhbnNwb3J0ID0gdHJhbnNwb3J0O1xuICB9XG5cbiAgLyoqXG4gICAqIFdyaXRlcyB0aGUgaW5mbyBvYmplY3QgdG8gb3VyIHRyYW5zcG9ydCBpbnN0YW5jZSBpZiAoYW5kIG9ubHkgaWYpIHRoZVxuICAgKiBgcmVqZWN0aW9uYCBwcm9wZXJ0eSBpcyBzZXQgb24gdGhlIGluZm8uXG4gICAqIEBwYXJhbSB7bWl4ZWR9IGluZm8gLSBUT0RPOiBhZGQgcGFyYW0gZGVzY3JpcHRpb24uXG4gICAqIEBwYXJhbSB7bWl4ZWR9IGVuYyAtIFRPRE86IGFkZCBwYXJhbSBkZXNjcmlwdGlvbi5cbiAgICogQHBhcmFtIHttaXhlZH0gY2FsbGJhY2sgLSBUT0RPOiBhZGQgcGFyYW0gZGVzY3JpcHRpb24uXG4gICAqIEByZXR1cm5zIHttaXhlZH0gLSBUT0RPOiBhZGQgcmV0dXJuIGRlc2NyaXB0aW9uLlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgX3dyaXRlKGluZm8sIGVuYywgY2FsbGJhY2spIHtcbiAgICBpZiAoaW5mby5yZWplY3Rpb24pIHtcbiAgICAgIHJldHVybiB0aGlzLnRyYW5zcG9ydC5sb2coaW5mbywgY2FsbGJhY2spO1xuICAgIH1cblxuICAgIGNhbGxiYWNrKCk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn07XG4iLCAiLyoqXG4gKiBleGNlcHRpb24taGFuZGxlci5qczogT2JqZWN0IGZvciBoYW5kbGluZyB1bmNhdWdodEV4Y2VwdGlvbiBldmVudHMuXG4gKlxuICogKEMpIDIwMTAgQ2hhcmxpZSBSb2JiaW5zXG4gKiBNSVQgTElDRU5DRVxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuY29uc3Qgb3MgPSByZXF1aXJlKCdvcycpO1xuY29uc3QgYXN5bmNGb3JFYWNoID0gcmVxdWlyZSgnYXN5bmMvZm9yRWFjaCcpO1xuY29uc3QgZGVidWcgPSByZXF1aXJlKCdAZGFiaC9kaWFnbm9zdGljcycpKCd3aW5zdG9uOnJlamVjdGlvbicpO1xuY29uc3Qgb25jZSA9IHJlcXVpcmUoJ29uZS10aW1lJyk7XG5jb25zdCBzdGFja1RyYWNlID0gcmVxdWlyZSgnc3RhY2stdHJhY2UnKTtcbmNvbnN0IFJlamVjdGlvblN0cmVhbSA9IHJlcXVpcmUoJy4vcmVqZWN0aW9uLXN0cmVhbScpO1xuXG4vKipcbiAqIE9iamVjdCBmb3IgaGFuZGxpbmcgdW5oYW5kbGVkUmVqZWN0aW9uIGV2ZW50cy5cbiAqIEB0eXBlIHtSZWplY3Rpb25IYW5kbGVyfVxuICovXG5tb2R1bGUuZXhwb3J0cyA9IGNsYXNzIFJlamVjdGlvbkhhbmRsZXIge1xuICAvKipcbiAgICogVE9ETzogYWRkIGNvbnRydWN0b3IgZGVzY3JpcHRpb25cbiAgICogQHBhcmFtIHshTG9nZ2VyfSBsb2dnZXIgLSBUT0RPOiBhZGQgcGFyYW0gZGVzY3JpcHRpb25cbiAgICovXG4gIGNvbnN0cnVjdG9yKGxvZ2dlcikge1xuICAgIGlmICghbG9nZ2VyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0xvZ2dlciBpcyByZXF1aXJlZCB0byBoYW5kbGUgcmVqZWN0aW9ucycpO1xuICAgIH1cblxuICAgIHRoaXMubG9nZ2VyID0gbG9nZ2VyO1xuICAgIHRoaXMuaGFuZGxlcnMgPSBuZXcgTWFwKCk7XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlcyBgdW5oYW5kbGVkUmVqZWN0aW9uYCBldmVudHMgZm9yIHRoZSBjdXJyZW50IHByb2Nlc3MgYnkgYWRkaW5nIGFueVxuICAgKiBoYW5kbGVycyBwYXNzZWQgaW4uXG4gICAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gICAqL1xuICBoYW5kbGUoLi4uYXJncykge1xuICAgIGFyZ3MuZm9yRWFjaChhcmcgPT4ge1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoYXJnKSkge1xuICAgICAgICByZXR1cm4gYXJnLmZvckVhY2goaGFuZGxlciA9PiB0aGlzLl9hZGRIYW5kbGVyKGhhbmRsZXIpKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5fYWRkSGFuZGxlcihhcmcpO1xuICAgIH0pO1xuXG4gICAgaWYgKCF0aGlzLmNhdGNoZXIpIHtcbiAgICAgIHRoaXMuY2F0Y2hlciA9IHRoaXMuX3VuaGFuZGxlZFJlamVjdGlvbi5iaW5kKHRoaXMpO1xuICAgICAgcHJvY2Vzcy5vbigndW5oYW5kbGVkUmVqZWN0aW9uJywgdGhpcy5jYXRjaGVyKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcyBhbnkgaGFuZGxlcnMgdG8gYHVuaGFuZGxlZFJlamVjdGlvbmAgZXZlbnRzIGZvciB0aGUgY3VycmVudFxuICAgKiBwcm9jZXNzLiBUaGlzIGRvZXMgbm90IG1vZGlmeSB0aGUgc3RhdGUgb2YgdGhlIGB0aGlzLmhhbmRsZXJzYCBzZXQuXG4gICAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gICAqL1xuICB1bmhhbmRsZSgpIHtcbiAgICBpZiAodGhpcy5jYXRjaGVyKSB7XG4gICAgICBwcm9jZXNzLnJlbW92ZUxpc3RlbmVyKCd1bmhhbmRsZWRSZWplY3Rpb24nLCB0aGlzLmNhdGNoZXIpO1xuICAgICAgdGhpcy5jYXRjaGVyID0gZmFsc2U7XG5cbiAgICAgIEFycmF5LmZyb20odGhpcy5oYW5kbGVycy52YWx1ZXMoKSkuZm9yRWFjaCh3cmFwcGVyID0+XG4gICAgICAgIHRoaXMubG9nZ2VyLnVucGlwZSh3cmFwcGVyKVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVE9ETzogYWRkIG1ldGhvZCBkZXNjcmlwdGlvblxuICAgKiBAcGFyYW0ge0Vycm9yfSBlcnIgLSBFcnJvciB0byBnZXQgaW5mb3JtYXRpb24gYWJvdXQuXG4gICAqIEByZXR1cm5zIHttaXhlZH0gLSBUT0RPOiBhZGQgcmV0dXJuIGRlc2NyaXB0aW9uLlxuICAgKi9cbiAgZ2V0QWxsSW5mbyhlcnIpIHtcbiAgICBsZXQgbWVzc2FnZSA9IG51bGw7XG4gICAgaWYgKGVycikge1xuICAgICAgbWVzc2FnZSA9IHR5cGVvZiBlcnIgPT09ICdzdHJpbmcnID8gZXJyIDogZXJyLm1lc3NhZ2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGVycm9yOiBlcnIsXG4gICAgICAvLyBUT0RPIChpbmRleHplcm8pOiBob3cgZG8gd2UgY29uZmlndXJlIHRoaXM/XG4gICAgICBsZXZlbDogJ2Vycm9yJyxcbiAgICAgIG1lc3NhZ2U6IFtcbiAgICAgICAgYHVuaGFuZGxlZFJlamVjdGlvbjogJHttZXNzYWdlIHx8ICcobm8gZXJyb3IgbWVzc2FnZSknfWAsXG4gICAgICAgIGVyciAmJiBlcnIuc3RhY2sgfHwgJyAgTm8gc3RhY2sgdHJhY2UnXG4gICAgICBdLmpvaW4oJ1xcbicpLFxuICAgICAgc3RhY2s6IGVyciAmJiBlcnIuc3RhY2ssXG4gICAgICByZWplY3Rpb246IHRydWUsXG4gICAgICBkYXRlOiBuZXcgRGF0ZSgpLnRvU3RyaW5nKCksXG4gICAgICBwcm9jZXNzOiB0aGlzLmdldFByb2Nlc3NJbmZvKCksXG4gICAgICBvczogdGhpcy5nZXRPc0luZm8oKSxcbiAgICAgIHRyYWNlOiB0aGlzLmdldFRyYWNlKGVycilcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgYWxsIHJlbGV2YW50IHByb2Nlc3MgaW5mb3JtYXRpb24gZm9yIHRoZSBjdXJyZW50bHkgcnVubmluZyBwcm9jZXNzLlxuICAgKiBAcmV0dXJucyB7bWl4ZWR9IC0gVE9ETzogYWRkIHJldHVybiBkZXNjcmlwdGlvbi5cbiAgICovXG4gIGdldFByb2Nlc3NJbmZvKCkge1xuICAgIHJldHVybiB7XG4gICAgICBwaWQ6IHByb2Nlc3MucGlkLFxuICAgICAgdWlkOiBwcm9jZXNzLmdldHVpZCA/IHByb2Nlc3MuZ2V0dWlkKCkgOiBudWxsLFxuICAgICAgZ2lkOiBwcm9jZXNzLmdldGdpZCA/IHByb2Nlc3MuZ2V0Z2lkKCkgOiBudWxsLFxuICAgICAgY3dkOiBwcm9jZXNzLmN3ZCgpLFxuICAgICAgZXhlY1BhdGg6IHByb2Nlc3MuZXhlY1BhdGgsXG4gICAgICB2ZXJzaW9uOiBwcm9jZXNzLnZlcnNpb24sXG4gICAgICBhcmd2OiBwcm9jZXNzLmFyZ3YsXG4gICAgICBtZW1vcnlVc2FnZTogcHJvY2Vzcy5tZW1vcnlVc2FnZSgpXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGFsbCByZWxldmFudCBPUyBpbmZvcm1hdGlvbiBmb3IgdGhlIGN1cnJlbnRseSBydW5uaW5nIHByb2Nlc3MuXG4gICAqIEByZXR1cm5zIHttaXhlZH0gLSBUT0RPOiBhZGQgcmV0dXJuIGRlc2NyaXB0aW9uLlxuICAgKi9cbiAgZ2V0T3NJbmZvKCkge1xuICAgIHJldHVybiB7XG4gICAgICBsb2FkYXZnOiBvcy5sb2FkYXZnKCksXG4gICAgICB1cHRpbWU6IG9zLnVwdGltZSgpXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGEgc3RhY2sgdHJhY2UgZm9yIHRoZSBzcGVjaWZpZWQgZXJyb3IuXG4gICAqIEBwYXJhbSB7bWl4ZWR9IGVyciAtIFRPRE86IGFkZCBwYXJhbSBkZXNjcmlwdGlvbi5cbiAgICogQHJldHVybnMge21peGVkfSAtIFRPRE86IGFkZCByZXR1cm4gZGVzY3JpcHRpb24uXG4gICAqL1xuICBnZXRUcmFjZShlcnIpIHtcbiAgICBjb25zdCB0cmFjZSA9IGVyciA/IHN0YWNrVHJhY2UucGFyc2UoZXJyKSA6IHN0YWNrVHJhY2UuZ2V0KCk7XG4gICAgcmV0dXJuIHRyYWNlLm1hcChzaXRlID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNvbHVtbjogc2l0ZS5nZXRDb2x1bW5OdW1iZXIoKSxcbiAgICAgICAgZmlsZTogc2l0ZS5nZXRGaWxlTmFtZSgpLFxuICAgICAgICBmdW5jdGlvbjogc2l0ZS5nZXRGdW5jdGlvbk5hbWUoKSxcbiAgICAgICAgbGluZTogc2l0ZS5nZXRMaW5lTnVtYmVyKCksXG4gICAgICAgIG1ldGhvZDogc2l0ZS5nZXRNZXRob2ROYW1lKCksXG4gICAgICAgIG5hdGl2ZTogc2l0ZS5pc05hdGl2ZSgpXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEhlbHBlciBtZXRob2QgdG8gYWRkIGEgdHJhbnNwb3J0IGFzIGFuIGV4Y2VwdGlvbiBoYW5kbGVyLlxuICAgKiBAcGFyYW0ge1RyYW5zcG9ydH0gaGFuZGxlciAtIFRoZSB0cmFuc3BvcnQgdG8gYWRkIGFzIGFuIGV4Y2VwdGlvbiBoYW5kbGVyLlxuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICovXG4gIF9hZGRIYW5kbGVyKGhhbmRsZXIpIHtcbiAgICBpZiAoIXRoaXMuaGFuZGxlcnMuaGFzKGhhbmRsZXIpKSB7XG4gICAgICBoYW5kbGVyLmhhbmRsZVJlamVjdGlvbnMgPSB0cnVlO1xuICAgICAgY29uc3Qgd3JhcHBlciA9IG5ldyBSZWplY3Rpb25TdHJlYW0oaGFuZGxlcik7XG4gICAgICB0aGlzLmhhbmRsZXJzLnNldChoYW5kbGVyLCB3cmFwcGVyKTtcbiAgICAgIHRoaXMubG9nZ2VyLnBpcGUod3JhcHBlcik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIExvZ3MgYWxsIHJlbGV2YW50IGluZm9ybWF0aW9uIGFyb3VuZCB0aGUgYGVycmAgYW5kIGV4aXRzIHRoZSBjdXJyZW50XG4gICAqIHByb2Nlc3MuXG4gICAqIEBwYXJhbSB7RXJyb3J9IGVyciAtIEVycm9yIHRvIGhhbmRsZVxuICAgKiBAcmV0dXJucyB7bWl4ZWR9IC0gVE9ETzogYWRkIHJldHVybiBkZXNjcmlwdGlvbi5cbiAgICogQHByaXZhdGVcbiAgICovXG4gIF91bmhhbmRsZWRSZWplY3Rpb24oZXJyKSB7XG4gICAgY29uc3QgaW5mbyA9IHRoaXMuZ2V0QWxsSW5mbyhlcnIpO1xuICAgIGNvbnN0IGhhbmRsZXJzID0gdGhpcy5fZ2V0UmVqZWN0aW9uSGFuZGxlcnMoKTtcbiAgICAvLyBDYWxjdWxhdGUgaWYgd2Ugc2hvdWxkIGV4aXQgb24gdGhpcyBlcnJvclxuICAgIGxldCBkb0V4aXQgPVxuICAgICAgdHlwZW9mIHRoaXMubG9nZ2VyLmV4aXRPbkVycm9yID09PSAnZnVuY3Rpb24nXG4gICAgICAgID8gdGhpcy5sb2dnZXIuZXhpdE9uRXJyb3IoZXJyKVxuICAgICAgICA6IHRoaXMubG9nZ2VyLmV4aXRPbkVycm9yO1xuICAgIGxldCB0aW1lb3V0O1xuXG4gICAgaWYgKCFoYW5kbGVycy5sZW5ndGggJiYgZG9FeGl0KSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgY29uc29sZS53YXJuKCd3aW5zdG9uOiBleGl0T25FcnJvciBjYW5ub3QgYmUgdHJ1ZSB3aXRoIG5vIHJlamVjdGlvbiBoYW5kbGVycy4nKTtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICBjb25zb2xlLndhcm4oJ3dpbnN0b246IG5vdCBleGl0aW5nIHByb2Nlc3MuJyk7XG4gICAgICBkb0V4aXQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBncmFjZWZ1bEV4aXQoKSB7XG4gICAgICBkZWJ1ZygnZG9FeGl0JywgZG9FeGl0KTtcbiAgICAgIGRlYnVnKCdwcm9jZXNzLl9leGl0aW5nJywgcHJvY2Vzcy5fZXhpdGluZyk7XG5cbiAgICAgIGlmIChkb0V4aXQgJiYgIXByb2Nlc3MuX2V4aXRpbmcpIHtcbiAgICAgICAgLy8gUmVtYXJrOiBDdXJyZW50bHkgaWdub3JpbmcgYW55IHJlamVjdGlvbnMgZnJvbSB0cmFuc3BvcnRzIHdoZW5cbiAgICAgICAgLy8gY2F0Y2hpbmcgdW5oYW5kbGVkIHJlamVjdGlvbnMuXG4gICAgICAgIGlmICh0aW1lb3V0KSB7XG4gICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXQpO1xuICAgICAgICB9XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wcm9jZXNzLWV4aXRcbiAgICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghaGFuZGxlcnMgfHwgaGFuZGxlcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gcHJvY2Vzcy5uZXh0VGljayhncmFjZWZ1bEV4aXQpO1xuICAgIH1cblxuICAgIC8vIExvZyB0byBhbGwgdHJhbnNwb3J0cyBhdHRlbXB0aW5nIHRvIGxpc3RlbiBmb3Igd2hlbiB0aGV5IGFyZSBjb21wbGV0ZWQuXG4gICAgYXN5bmNGb3JFYWNoKFxuICAgICAgaGFuZGxlcnMsXG4gICAgICAoaGFuZGxlciwgbmV4dCkgPT4ge1xuICAgICAgICBjb25zdCBkb25lID0gb25jZShuZXh0KTtcbiAgICAgICAgY29uc3QgdHJhbnNwb3J0ID0gaGFuZGxlci50cmFuc3BvcnQgfHwgaGFuZGxlcjtcblxuICAgICAgICAvLyBEZWJ1ZyB3cmFwcGluZyBzbyB0aGF0IHdlIGNhbiBpbnNwZWN0IHdoYXQncyBnb2luZyBvbiB1bmRlciB0aGUgY292ZXJzLlxuICAgICAgICBmdW5jdGlvbiBvbkRvbmUoZXZlbnQpIHtcbiAgICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgZGVidWcoZXZlbnQpO1xuICAgICAgICAgICAgZG9uZSgpO1xuICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICB0cmFuc3BvcnQuX2VuZGluZyA9IHRydWU7XG4gICAgICAgIHRyYW5zcG9ydC5vbmNlKCdmaW5pc2gnLCBvbkRvbmUoJ2ZpbmlzaGVkJykpO1xuICAgICAgICB0cmFuc3BvcnQub25jZSgnZXJyb3InLCBvbkRvbmUoJ2Vycm9yJykpO1xuICAgICAgfSxcbiAgICAgICgpID0+IGRvRXhpdCAmJiBncmFjZWZ1bEV4aXQoKVxuICAgICk7XG5cbiAgICB0aGlzLmxvZ2dlci5sb2coaW5mbyk7XG5cbiAgICAvLyBJZiBleGl0T25FcnJvciBpcyB0cnVlLCB0aGVuIG9ubHkgYWxsb3cgdGhlIGxvZ2dpbmcgb2YgZXhjZXB0aW9ucyB0b1xuICAgIC8vIHRha2UgdXAgdG8gYDMwMDBtc2AuXG4gICAgaWYgKGRvRXhpdCkge1xuICAgICAgdGltZW91dCA9IHNldFRpbWVvdXQoZ3JhY2VmdWxFeGl0LCAzMDAwKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgbGlzdCBvZiB0cmFuc3BvcnRzIGFuZCBleGNlcHRpb25IYW5kbGVycyBmb3IgdGhpcyBpbnN0YW5jZS5cbiAgICogQHJldHVybnMge0FycmF5fSAtIExpc3Qgb2YgdHJhbnNwb3J0cyBhbmQgZXhjZXB0aW9uSGFuZGxlcnMgZm9yIHRoaXNcbiAgICogaW5zdGFuY2UuXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBfZ2V0UmVqZWN0aW9uSGFuZGxlcnMoKSB7XG4gICAgLy8gUmVtYXJrIChpbmRleHplcm8pOiBzaW5jZSBgbG9nZ2VyLnRyYW5zcG9ydHNgIHJldHVybnMgYWxsIG9mIHRoZSBwaXBlc1xuICAgIC8vIGZyb20gdGhlIF9yZWFkYWJsZVN0YXRlIG9mIHRoZSBzdHJlYW0gd2UgYWN0dWFsbHkgZ2V0IHRoZSBqb2luIG9mIHRoZVxuICAgIC8vIGV4cGxpY2l0IGhhbmRsZXJzIGFuZCB0aGUgaW1wbGljaXQgdHJhbnNwb3J0cyB3aXRoXG4gICAgLy8gYGhhbmRsZVJlamVjdGlvbnM6IHRydWVgXG4gICAgcmV0dXJuIHRoaXMubG9nZ2VyLnRyYW5zcG9ydHMuZmlsdGVyKHdyYXAgPT4ge1xuICAgICAgY29uc3QgdHJhbnNwb3J0ID0gd3JhcC50cmFuc3BvcnQgfHwgd3JhcDtcbiAgICAgIHJldHVybiB0cmFuc3BvcnQuaGFuZGxlUmVqZWN0aW9ucztcbiAgICB9KTtcbiAgfVxufTtcbiIsICIvKipcbiAqIHByb2ZpbGVyLmpzOiBUT0RPOiBhZGQgZmlsZSBoZWFkZXIgZGVzY3JpcHRpb24uXG4gKlxuICogKEMpIDIwMTAgQ2hhcmxpZSBSb2JiaW5zXG4gKiBNSVQgTElDRU5DRVxuICovXG5cbid1c2Ugc3RyaWN0Jztcbi8qKlxuICogVE9ETzogYWRkIGNsYXNzIGRlc2NyaXB0aW9uLlxuICogQHR5cGUge1Byb2ZpbGVyfVxuICogQHByaXZhdGVcbiAqL1xuY2xhc3MgUHJvZmlsZXIge1xuICAvKipcbiAgICogQ29uc3RydWN0b3IgZnVuY3Rpb24gZm9yIHRoZSBQcm9maWxlciBpbnN0YW5jZSB1c2VkIGJ5XG4gICAqIGBMb2dnZXIucHJvdG90eXBlLnN0YXJ0VGltZXJgLiBXaGVuIGRvbmUgaXMgY2FsbGVkIHRoZSB0aW1lciB3aWxsIGZpbmlzaFxuICAgKiBhbmQgbG9nIHRoZSBkdXJhdGlvbi5cbiAgICogQHBhcmFtIHshTG9nZ2VyfSBsb2dnZXIgLSBUT0RPOiBhZGQgcGFyYW0gZGVzY3JpcHRpb24uXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihsb2dnZXIpIHtcbiAgICBjb25zdCBMb2dnZXIgPSByZXF1aXJlKCcuL2xvZ2dlcicpO1xuICAgIGlmICh0eXBlb2YgbG9nZ2VyICE9PSAnb2JqZWN0JyB8fCBBcnJheS5pc0FycmF5KGxvZ2dlcikgfHwgIShsb2dnZXIgaW5zdGFuY2VvZiBMb2dnZXIpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0xvZ2dlciBpcyByZXF1aXJlZCBmb3IgcHJvZmlsaW5nJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9nZ2VyID0gbG9nZ2VyO1xuICAgICAgdGhpcy5zdGFydCA9IERhdGUubm93KCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEVuZHMgdGhlIGN1cnJlbnQgdGltZXIgKGkuZS4gUHJvZmlsZXIpIGluc3RhbmNlIGFuZCBsb2dzIHRoZSBgbXNnYCBhbG9uZ1xuICAgKiB3aXRoIHRoZSBkdXJhdGlvbiBzaW5jZSBjcmVhdGlvbi5cbiAgICogQHJldHVybnMge21peGVkfSAtIFRPRE86IGFkZCByZXR1cm4gZGVzY3JpcHRpb24uXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBkb25lKC4uLmFyZ3MpIHtcbiAgICBpZiAodHlwZW9mIGFyZ3NbYXJncy5sZW5ndGggLSAxXSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgIGNvbnNvbGUud2FybignQ2FsbGJhY2sgZnVuY3Rpb24gbm8gbG9uZ2VyIHN1cHBvcnRlZCBhcyBvZiB3aW5zdG9uQDMuMC4wJyk7XG4gICAgICBhcmdzLnBvcCgpO1xuICAgIH1cblxuICAgIGNvbnN0IGluZm8gPSB0eXBlb2YgYXJnc1thcmdzLmxlbmd0aCAtIDFdID09PSAnb2JqZWN0JyA/IGFyZ3MucG9wKCkgOiB7fTtcbiAgICBpbmZvLmxldmVsID0gaW5mby5sZXZlbCB8fCAnaW5mbyc7XG4gICAgaW5mby5kdXJhdGlvbk1zID0gKERhdGUubm93KCkpIC0gdGhpcy5zdGFydDtcblxuICAgIHJldHVybiB0aGlzLmxvZ2dlci53cml0ZShpbmZvKTtcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IFByb2ZpbGVyO1xuIiwgIi8qKlxuICogbG9nZ2VyLmpzOiBUT0RPOiBhZGQgZmlsZSBoZWFkZXIgZGVzY3JpcHRpb24uXG4gKlxuICogKEMpIDIwMTAgQ2hhcmxpZSBSb2JiaW5zXG4gKiBNSVQgTElDRU5DRVxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuY29uc3QgeyBTdHJlYW0sIFRyYW5zZm9ybSB9ID0gcmVxdWlyZSgncmVhZGFibGUtc3RyZWFtJyk7XG5jb25zdCBhc3luY0ZvckVhY2ggPSByZXF1aXJlKCdhc3luYy9mb3JFYWNoJyk7XG5jb25zdCB7IExFVkVMLCBTUExBVCB9ID0gcmVxdWlyZSgndHJpcGxlLWJlYW0nKTtcbmNvbnN0IGlzU3RyZWFtID0gcmVxdWlyZSgnaXMtc3RyZWFtJyk7XG5jb25zdCBFeGNlcHRpb25IYW5kbGVyID0gcmVxdWlyZSgnLi9leGNlcHRpb24taGFuZGxlcicpO1xuY29uc3QgUmVqZWN0aW9uSGFuZGxlciA9IHJlcXVpcmUoJy4vcmVqZWN0aW9uLWhhbmRsZXInKTtcbmNvbnN0IExlZ2FjeVRyYW5zcG9ydFN0cmVhbSA9IHJlcXVpcmUoJ3dpbnN0b24tdHJhbnNwb3J0L2xlZ2FjeScpO1xuY29uc3QgUHJvZmlsZXIgPSByZXF1aXJlKCcuL3Byb2ZpbGVyJyk7XG5jb25zdCB7IHdhcm4gfSA9IHJlcXVpcmUoJy4vY29tbW9uJyk7XG5jb25zdCBjb25maWcgPSByZXF1aXJlKCcuL2NvbmZpZycpO1xuXG4vKipcbiAqIENhcHR1cmVzIHRoZSBudW1iZXIgb2YgZm9ybWF0IChpLmUuICVzIHN0cmluZ3MpIGluIGEgZ2l2ZW4gc3RyaW5nLlxuICogQmFzZWQgb24gYHV0aWwuZm9ybWF0YCwgc2VlIE5vZGUuanMgc291cmNlOlxuICogaHR0cHM6Ly9naXRodWIuY29tL25vZGVqcy9ub2RlL2Jsb2IvYjFjOGYxNWM1ZjE2OWUwMjFmN2M0NmViN2IyMTlkZTk1ZmU5NzYwMy9saWIvdXRpbC5qcyNMMjAxLUwyMzBcbiAqIEB0eXBlIHtSZWdFeHB9XG4gKi9cbmNvbnN0IGZvcm1hdFJlZ0V4cCA9IC8lW3NjZGppZm9PJV0vZztcblxuLyoqXG4gKiBUT0RPOiBhZGQgY2xhc3MgZGVzY3JpcHRpb24uXG4gKiBAdHlwZSB7TG9nZ2VyfVxuICogQGV4dGVuZHMge1RyYW5zZm9ybX1cbiAqL1xuY2xhc3MgTG9nZ2VyIGV4dGVuZHMgVHJhbnNmb3JtIHtcbiAgLyoqXG4gICAqIENvbnN0cnVjdG9yIGZ1bmN0aW9uIGZvciB0aGUgTG9nZ2VyIG9iamVjdCByZXNwb25zaWJsZSBmb3IgcGVyc2lzdGluZyBsb2dcbiAgICogbWVzc2FnZXMgYW5kIG1ldGFkYXRhIHRvIG9uZSBvciBtb3JlIHRyYW5zcG9ydHMuXG4gICAqIEBwYXJhbSB7IU9iamVjdH0gb3B0aW9ucyAtIGZvb1xuICAgKi9cbiAgY29uc3RydWN0b3Iob3B0aW9ucykge1xuICAgIHN1cGVyKHsgb2JqZWN0TW9kZTogdHJ1ZSB9KTtcbiAgICB0aGlzLmNvbmZpZ3VyZShvcHRpb25zKTtcbiAgfVxuXG4gIGNoaWxkKGRlZmF1bHRSZXF1ZXN0TWV0YWRhdGEpIHtcbiAgICBjb25zdCBsb2dnZXIgPSB0aGlzO1xuICAgIHJldHVybiBPYmplY3QuY3JlYXRlKGxvZ2dlciwge1xuICAgICAgd3JpdGU6IHtcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIChpbmZvKSB7XG4gICAgICAgICAgY29uc3QgaW5mb0Nsb25lID0gT2JqZWN0LmFzc2lnbihcbiAgICAgICAgICAgIHt9LFxuICAgICAgICAgICAgZGVmYXVsdFJlcXVlc3RNZXRhZGF0YSxcbiAgICAgICAgICAgIGluZm9cbiAgICAgICAgICApO1xuXG4gICAgICAgICAgLy8gT2JqZWN0LmFzc2lnbiBkb2Vzbid0IGNvcHkgaW5oZXJpdGVkIEVycm9yXG4gICAgICAgICAgLy8gcHJvcGVydGllcyBzbyB3ZSBoYXZlIHRvIGRvIHRoYXQgZXhwbGljaXRseVxuICAgICAgICAgIC8vXG4gICAgICAgICAgLy8gUmVtYXJrIChpbmRleHplcm8pOiB3ZSBzaG91bGQgcmVtb3ZlIHRoaXNcbiAgICAgICAgICAvLyBzaW5jZSB0aGUgZXJyb3JzIGZvcm1hdCB3aWxsIGhhbmRsZSB0aGlzIGNhc2UuXG4gICAgICAgICAgLy9cbiAgICAgICAgICBpZiAoaW5mbyBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgICAgICBpbmZvQ2xvbmUuc3RhY2sgPSBpbmZvLnN0YWNrO1xuICAgICAgICAgICAgaW5mb0Nsb25lLm1lc3NhZ2UgPSBpbmZvLm1lc3NhZ2U7XG4gICAgICAgICAgICBpbmZvQ2xvbmUuY2F1c2UgPSBpbmZvLmNhdXNlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGxvZ2dlci53cml0ZShpbmZvQ2xvbmUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVGhpcyB3aWxsIHdob2xlc2FsZSByZWNvbmZpZ3VyZSB0aGlzIGluc3RhbmNlIGJ5OlxuICAgKiAxLiBSZXNldHRpbmcgYWxsIHRyYW5zcG9ydHMuIE9sZGVyIHRyYW5zcG9ydHMgd2lsbCBiZSByZW1vdmVkIGltcGxpY2l0bHkuXG4gICAqIDIuIFNldCBhbGwgb3RoZXIgb3B0aW9ucyBpbmNsdWRpbmcgbGV2ZWxzLCBjb2xvcnMsIHJld3JpdGVycywgZmlsdGVycyxcbiAgICogICAgZXhjZXB0aW9uSGFuZGxlcnMsIGV0Yy5cbiAgICogQHBhcmFtIHshT2JqZWN0fSBvcHRpb25zIC0gVE9ETzogYWRkIHBhcmFtIGRlc2NyaXB0aW9uLlxuICAgKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICAgKi9cbiAgY29uZmlndXJlKHtcbiAgICBzaWxlbnQsXG4gICAgZm9ybWF0LFxuICAgIGRlZmF1bHRNZXRhLFxuICAgIGxldmVscyxcbiAgICBsZXZlbCA9ICdpbmZvJyxcbiAgICBleGl0T25FcnJvciA9IHRydWUsXG4gICAgdHJhbnNwb3J0cyxcbiAgICBjb2xvcnMsXG4gICAgZW1pdEVycnMsXG4gICAgZm9ybWF0dGVycyxcbiAgICBwYWRMZXZlbHMsXG4gICAgcmV3cml0ZXJzLFxuICAgIHN0cmlwQ29sb3JzLFxuICAgIGV4Y2VwdGlvbkhhbmRsZXJzLFxuICAgIHJlamVjdGlvbkhhbmRsZXJzXG4gIH0gPSB7fSkge1xuICAgIC8vIFJlc2V0IHRyYW5zcG9ydHMgaWYgd2UgYWxyZWFkeSBoYXZlIHRoZW1cbiAgICBpZiAodGhpcy50cmFuc3BvcnRzLmxlbmd0aCkge1xuICAgICAgdGhpcy5jbGVhcigpO1xuICAgIH1cblxuICAgIHRoaXMuc2lsZW50ID0gc2lsZW50O1xuICAgIHRoaXMuZm9ybWF0ID0gZm9ybWF0IHx8IHRoaXMuZm9ybWF0IHx8IHJlcXVpcmUoJ2xvZ2Zvcm0vanNvbicpKCk7XG5cbiAgICB0aGlzLmRlZmF1bHRNZXRhID0gZGVmYXVsdE1ldGEgfHwgbnVsbDtcbiAgICAvLyBIb2lzdCBvdGhlciBvcHRpb25zIG9udG8gdGhpcyBpbnN0YW5jZS5cbiAgICB0aGlzLmxldmVscyA9IGxldmVscyB8fCB0aGlzLmxldmVscyB8fCBjb25maWcubnBtLmxldmVscztcbiAgICB0aGlzLmxldmVsID0gbGV2ZWw7XG4gICAgaWYgKHRoaXMuZXhjZXB0aW9ucykge1xuICAgICAgdGhpcy5leGNlcHRpb25zLnVuaGFuZGxlKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLnJlamVjdGlvbnMpIHtcbiAgICAgIHRoaXMucmVqZWN0aW9ucy51bmhhbmRsZSgpO1xuICAgIH1cbiAgICB0aGlzLmV4Y2VwdGlvbnMgPSBuZXcgRXhjZXB0aW9uSGFuZGxlcih0aGlzKTtcbiAgICB0aGlzLnJlamVjdGlvbnMgPSBuZXcgUmVqZWN0aW9uSGFuZGxlcih0aGlzKTtcbiAgICB0aGlzLnByb2ZpbGVycyA9IHt9O1xuICAgIHRoaXMuZXhpdE9uRXJyb3IgPSBleGl0T25FcnJvcjtcblxuICAgIC8vIEFkZCBhbGwgdHJhbnNwb3J0cyB3ZSBoYXZlIGJlZW4gcHJvdmlkZWQuXG4gICAgaWYgKHRyYW5zcG9ydHMpIHtcbiAgICAgIHRyYW5zcG9ydHMgPSBBcnJheS5pc0FycmF5KHRyYW5zcG9ydHMpID8gdHJhbnNwb3J0cyA6IFt0cmFuc3BvcnRzXTtcbiAgICAgIHRyYW5zcG9ydHMuZm9yRWFjaCh0cmFuc3BvcnQgPT4gdGhpcy5hZGQodHJhbnNwb3J0KSk7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgY29sb3JzIHx8XG4gICAgICBlbWl0RXJycyB8fFxuICAgICAgZm9ybWF0dGVycyB8fFxuICAgICAgcGFkTGV2ZWxzIHx8XG4gICAgICByZXdyaXRlcnMgfHxcbiAgICAgIHN0cmlwQ29sb3JzXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFtcbiAgICAgICAgICAneyBjb2xvcnMsIGVtaXRFcnJzLCBmb3JtYXR0ZXJzLCBwYWRMZXZlbHMsIHJld3JpdGVycywgc3RyaXBDb2xvcnMgfSB3ZXJlIHJlbW92ZWQgaW4gd2luc3RvbkAzLjAuMC4nLFxuICAgICAgICAgICdVc2UgYSBjdXN0b20gd2luc3Rvbi5mb3JtYXQoZnVuY3Rpb24pIGluc3RlYWQuJyxcbiAgICAgICAgICAnU2VlOiBodHRwczovL2dpdGh1Yi5jb20vd2luc3RvbmpzL3dpbnN0b24vdHJlZS9tYXN0ZXIvVVBHUkFERS0zLjAubWQnXG4gICAgICAgIF0uam9pbignXFxuJylcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKGV4Y2VwdGlvbkhhbmRsZXJzKSB7XG4gICAgICB0aGlzLmV4Y2VwdGlvbnMuaGFuZGxlKGV4Y2VwdGlvbkhhbmRsZXJzKTtcbiAgICB9XG4gICAgaWYgKHJlamVjdGlvbkhhbmRsZXJzKSB7XG4gICAgICB0aGlzLnJlamVjdGlvbnMuaGFuZGxlKHJlamVjdGlvbkhhbmRsZXJzKTtcbiAgICB9XG4gIH1cblxuICAvKiBlc2xpbnQtZGlzYWJsZSB2YWxpZC1qc2RvYyAqL1xuICAvKipcbiAgICogSGVscGVyIG1ldGhvZCB0byBnZXQgdGhlIGhpZ2hlc3QgbG9nZ2luZyBsZXZlbCBhc3NvY2lhdGVkIHdpdGggYSBsb2dnZXJcbiAgICpcbiAgICogQHJldHVybnMgeyBudW1iZXIgfCBudWxsIH0gLSBUaGUgaGlnaGVzdCBjb25maWd1cmVkIGxvZ2dpbmcgbGV2ZWwsIG51bGxcbiAgICogZm9yIGludmFsaWQgY29uZmlndXJhdGlvblxuICAgKi9cbiAgZ2V0SGlnaGVzdExvZ0xldmVsKCkge1xuICAgIC8vIFRoaXMgY2FuIGJlIG51bGwsIGlmIHRoaXMubGV2ZWwgaGFzIGFuIGludmFsaWQgdmFsdWVcbiAgICBjb25zdCBjb25maWd1cmVkTGV2ZWxWYWx1ZSA9IGdldExldmVsVmFsdWUodGhpcy5sZXZlbHMsIHRoaXMubGV2ZWwpO1xuXG4gICAgLy8gSWYgdGhlcmUgYXJlIG5vIHRyYW5zcG9ydHMsIHJldHVybiB0aGUgbGV2ZWwgY29uZmlndXJlZCBhdCB0aGUgbG9nZ2VyIGxldmVsXG4gICAgaWYgKCF0aGlzLnRyYW5zcG9ydHMgfHwgdGhpcy50cmFuc3BvcnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIGNvbmZpZ3VyZWRMZXZlbFZhbHVlO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnRyYW5zcG9ydHMucmVkdWNlKChtYXgsIHRyYW5zcG9ydCkgPT4ge1xuICAgICAgY29uc3QgbGV2ZWxWYWx1ZSA9IGdldExldmVsVmFsdWUodGhpcy5sZXZlbHMsIHRyYW5zcG9ydC5sZXZlbCk7XG4gICAgICByZXR1cm4gbGV2ZWxWYWx1ZSAhPT0gbnVsbCAmJiBsZXZlbFZhbHVlID4gbWF4ID8gbGV2ZWxWYWx1ZSA6IG1heDtcbiAgICB9LCBjb25maWd1cmVkTGV2ZWxWYWx1ZSk7XG4gIH1cblxuICBpc0xldmVsRW5hYmxlZChsZXZlbCkge1xuICAgIGNvbnN0IGdpdmVuTGV2ZWxWYWx1ZSA9IGdldExldmVsVmFsdWUodGhpcy5sZXZlbHMsIGxldmVsKTtcbiAgICBpZiAoZ2l2ZW5MZXZlbFZhbHVlID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgY29uZmlndXJlZExldmVsVmFsdWUgPSBnZXRMZXZlbFZhbHVlKHRoaXMubGV2ZWxzLCB0aGlzLmxldmVsKTtcbiAgICBpZiAoY29uZmlndXJlZExldmVsVmFsdWUgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMudHJhbnNwb3J0cyB8fCB0aGlzLnRyYW5zcG9ydHMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gY29uZmlndXJlZExldmVsVmFsdWUgPj0gZ2l2ZW5MZXZlbFZhbHVlO1xuICAgIH1cblxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy50cmFuc3BvcnRzLmZpbmRJbmRleCh0cmFuc3BvcnQgPT4ge1xuICAgICAgbGV0IHRyYW5zcG9ydExldmVsVmFsdWUgPSBnZXRMZXZlbFZhbHVlKHRoaXMubGV2ZWxzLCB0cmFuc3BvcnQubGV2ZWwpO1xuICAgICAgaWYgKHRyYW5zcG9ydExldmVsVmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgdHJhbnNwb3J0TGV2ZWxWYWx1ZSA9IGNvbmZpZ3VyZWRMZXZlbFZhbHVlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRyYW5zcG9ydExldmVsVmFsdWUgPj0gZ2l2ZW5MZXZlbFZhbHVlO1xuICAgIH0pO1xuICAgIHJldHVybiBpbmRleCAhPT0gLTE7XG4gIH1cblxuICAvKiBlc2xpbnQtZGlzYWJsZSB2YWxpZC1qc2RvYyAqL1xuICAvKipcbiAgICogRW5zdXJlIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHdpdGggYSBgbG9nYCBtZXRob2RcbiAgICogQHBhcmFtIHttaXhlZH0gbGV2ZWwgLSBMZXZlbCB0aGUgbG9nIG1lc3NhZ2UgaXMgd3JpdHRlbiBhdC5cbiAgICogQHBhcmFtIHttaXhlZH0gbXNnIC0gVE9ETzogYWRkIHBhcmFtIGRlc2NyaXB0aW9uLlxuICAgKiBAcGFyYW0ge21peGVkfSBtZXRhIC0gVE9ETzogYWRkIHBhcmFtIGRlc2NyaXB0aW9uLlxuICAgKiBAcmV0dXJucyB7TG9nZ2VyfSAtIFRPRE86IGFkZCByZXR1cm4gZGVzY3JpcHRpb24uXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqICAgIC8vIFN1cHBvcnRzIHRoZSBleGlzdGluZyBBUEk6XG4gICAqICAgIGxvZ2dlci5sb2coJ2luZm8nLCAnSGVsbG8gd29ybGQnLCB7IGN1c3RvbTogdHJ1ZSB9KTtcbiAgICogICAgbG9nZ2VyLmxvZygnaW5mbycsIG5ldyBFcnJvcignWW8sIGl0XFwncyBvbiBmaXJlJykpO1xuICAgKlxuICAgKiAgICAvLyBSZXF1aXJlcyB3aW5zdG9uLmZvcm1hdC5zcGxhdCgpXG4gICAqICAgIGxvZ2dlci5sb2coJ2luZm8nLCAnJXMgJWQlJScsICdBIHN0cmluZycsIDUwLCB7IHRoaXNJc01ldGE6IHRydWUgfSk7XG4gICAqXG4gICAqICAgIC8vIEFuZCB0aGUgbmV3IEFQSSB3aXRoIGEgc2luZ2xlIEpTT04gbGl0ZXJhbDpcbiAgICogICAgbG9nZ2VyLmxvZyh7IGxldmVsOiAnaW5mbycsIG1lc3NhZ2U6ICdIZWxsbyB3b3JsZCcsIGN1c3RvbTogdHJ1ZSB9KTtcbiAgICogICAgbG9nZ2VyLmxvZyh7IGxldmVsOiAnaW5mbycsIG1lc3NhZ2U6IG5ldyBFcnJvcignWW8sIGl0XFwncyBvbiBmaXJlJykgfSk7XG4gICAqXG4gICAqICAgIC8vIEFsc28gcmVxdWlyZXMgd2luc3Rvbi5mb3JtYXQuc3BsYXQoKVxuICAgKiAgICBsb2dnZXIubG9nKHtcbiAgICogICAgICBsZXZlbDogJ2luZm8nLFxuICAgKiAgICAgIG1lc3NhZ2U6ICclcyAlZCUlJyxcbiAgICogICAgICBbU1BMQVRdOiBbJ0Egc3RyaW5nJywgNTBdLFxuICAgKiAgICAgIG1ldGE6IHsgdGhpc0lzTWV0YTogdHJ1ZSB9XG4gICAqICAgIH0pO1xuICAgKlxuICAgKi9cbiAgLyogZXNsaW50LWVuYWJsZSB2YWxpZC1qc2RvYyAqL1xuICBsb2cobGV2ZWwsIG1zZywgLi4uc3BsYXQpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG1heC1wYXJhbXNcbiAgICAvLyBPcHRpbWl6ZSBmb3IgdGhlIGhvdHBhdGggb2YgbG9nZ2luZyBKU09OIGxpdGVyYWxzXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDEpIHtcbiAgICAgIC8vIFlvIGRhd2csIEkgaGVhcmQgeW91IGxpa2UgbGV2ZWxzIC4uLiBzZXJpb3VzbHkgLi4uXG4gICAgICAvLyBJbiB0aGlzIGNvbnRleHQgdGhlIExIUyBgbGV2ZWxgIGhlcmUgaXMgYWN0dWFsbHkgdGhlIGBpbmZvYCBzbyByZWFkXG4gICAgICAvLyB0aGlzIGFzOiBpbmZvW0xFVkVMXSA9IGluZm8ubGV2ZWw7XG4gICAgICBsZXZlbFtMRVZFTF0gPSBsZXZlbC5sZXZlbDtcbiAgICAgIHRoaXMuX2FkZERlZmF1bHRNZXRhKGxldmVsKTtcbiAgICAgIHRoaXMud3JpdGUobGV2ZWwpO1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLy8gU2xpZ2h0bHkgbGVzcyBob3RwYXRoLCBidXQgd29ydGggb3B0aW1pemluZyBmb3IuXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDIpIHtcbiAgICAgIGlmIChtc2cgJiYgdHlwZW9mIG1zZyA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgbXNnW0xFVkVMXSA9IG1zZy5sZXZlbCA9IGxldmVsO1xuICAgICAgICB0aGlzLl9hZGREZWZhdWx0TWV0YShtc2cpO1xuICAgICAgICB0aGlzLndyaXRlKG1zZyk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfVxuXG4gICAgICBtc2cgPSB7IFtMRVZFTF06IGxldmVsLCBsZXZlbCwgbWVzc2FnZTogbXNnIH07XG4gICAgICB0aGlzLl9hZGREZWZhdWx0TWV0YShtc2cpO1xuICAgICAgdGhpcy53cml0ZShtc2cpO1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgY29uc3QgW21ldGFdID0gc3BsYXQ7XG4gICAgaWYgKHR5cGVvZiBtZXRhID09PSAnb2JqZWN0JyAmJiBtZXRhICE9PSBudWxsKSB7XG4gICAgICAvLyBFeHRyYWN0IHRva2VucywgaWYgbm9uZSBhdmFpbGFibGUgZGVmYXVsdCB0byBlbXB0eSBhcnJheSB0b1xuICAgICAgLy8gZW5zdXJlIGNvbnNpc3RhbmN5IGluIGV4cGVjdGVkIHJlc3VsdHNcbiAgICAgIGNvbnN0IHRva2VucyA9IG1zZyAmJiBtc2cubWF0Y2ggJiYgbXNnLm1hdGNoKGZvcm1hdFJlZ0V4cCk7XG5cbiAgICAgIGlmICghdG9rZW5zKSB7XG4gICAgICAgIGNvbnN0IGluZm8gPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmRlZmF1bHRNZXRhLCBtZXRhLCB7XG4gICAgICAgICAgW0xFVkVMXTogbGV2ZWwsXG4gICAgICAgICAgW1NQTEFUXTogc3BsYXQsXG4gICAgICAgICAgbGV2ZWwsXG4gICAgICAgICAgbWVzc2FnZTogbXNnXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChtZXRhLm1lc3NhZ2UpIGluZm8ubWVzc2FnZSA9IGAke2luZm8ubWVzc2FnZX0gJHttZXRhLm1lc3NhZ2V9YDtcbiAgICAgICAgaWYgKG1ldGEuc3RhY2spIGluZm8uc3RhY2sgPSBtZXRhLnN0YWNrO1xuICAgICAgICBpZiAobWV0YS5jYXVzZSkgaW5mby5jYXVzZSA9IG1ldGEuY2F1c2U7XG5cbiAgICAgICAgdGhpcy53cml0ZShpbmZvKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy53cml0ZShPYmplY3QuYXNzaWduKHt9LCB0aGlzLmRlZmF1bHRNZXRhLCB7XG4gICAgICBbTEVWRUxdOiBsZXZlbCxcbiAgICAgIFtTUExBVF06IHNwbGF0LFxuICAgICAgbGV2ZWwsXG4gICAgICBtZXNzYWdlOiBtc2dcbiAgICB9KSk7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBQdXNoZXMgZGF0YSBzbyB0aGF0IGl0IGNhbiBiZSBwaWNrZWQgdXAgYnkgYWxsIG9mIG91ciBwaXBlIHRhcmdldHMuXG4gICAqIEBwYXJhbSB7bWl4ZWR9IGluZm8gLSBUT0RPOiBhZGQgcGFyYW0gZGVzY3JpcHRpb24uXG4gICAqIEBwYXJhbSB7bWl4ZWR9IGVuYyAtIFRPRE86IGFkZCBwYXJhbSBkZXNjcmlwdGlvbi5cbiAgICogQHBhcmFtIHttaXhlZH0gY2FsbGJhY2sgLSBDb250aW51ZXMgc3RyZWFtIHByb2Nlc3NpbmcuXG4gICAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBfdHJhbnNmb3JtKGluZm8sIGVuYywgY2FsbGJhY2spIHtcbiAgICBpZiAodGhpcy5zaWxlbnQpIHtcbiAgICAgIHJldHVybiBjYWxsYmFjaygpO1xuICAgIH1cblxuICAgIC8vIFtMRVZFTF0gaXMgb25seSBzb2Z0IGd1YXJhbnRlZWQgdG8gYmUgc2V0IGhlcmUgc2luY2Ugd2UgYXJlIGEgcHJvcGVyXG4gICAgLy8gc3RyZWFtLiBJdCBpcyBsaWtlbHkgdGhhdCBgaW5mb2AgY2FtZSBpbiB0aHJvdWdoIGAubG9nKGluZm8pYCBvclxuICAgIC8vIGAuaW5mbyhpbmZvKWAuIElmIGl0IGlzIG5vdCBkZWZpbmVkLCBob3dldmVyLCBkZWZpbmUgaXQuXG4gICAgLy8gVGhpcyBMRVZFTCBzeW1ib2wgaXMgcHJvdmlkZWQgYnkgYHRyaXBsZS1iZWFtYCBhbmQgYWxzbyB1c2VkIGluOlxuICAgIC8vIC0gbG9nZm9ybVxuICAgIC8vIC0gd2luc3Rvbi10cmFuc3BvcnRcbiAgICAvLyAtIGFic3RyYWN0LXdpbnN0b24tdHJhbnNwb3J0XG4gICAgaWYgKCFpbmZvW0xFVkVMXSkge1xuICAgICAgaW5mb1tMRVZFTF0gPSBpbmZvLmxldmVsO1xuICAgIH1cblxuICAgIC8vIFJlbWFyazogcmVhbGx5IG5vdCBzdXJlIHdoYXQgdG8gZG8gaGVyZSwgYnV0IHRoaXMgaGFzIGJlZW4gcmVwb3J0ZWQgYXNcbiAgICAvLyB2ZXJ5IGNvbmZ1c2luZyBieSBwcmUgd2luc3RvbkAyLjAuMCB1c2VycyBhcyBxdWl0ZSBjb25mdXNpbmcgd2hlbiB1c2luZ1xuICAgIC8vIGN1c3RvbSBsZXZlbHMuXG4gICAgaWYgKCF0aGlzLmxldmVsc1tpbmZvW0xFVkVMXV0gJiYgdGhpcy5sZXZlbHNbaW5mb1tMRVZFTF1dICE9PSAwKSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgY29uc29sZS5lcnJvcignW3dpbnN0b25dIFVua25vd24gbG9nZ2VyIGxldmVsOiAlcycsIGluZm9bTEVWRUxdKTtcbiAgICB9XG5cbiAgICAvLyBSZW1hcms6IG5vdCBzdXJlIGlmIHdlIHNob3VsZCBzaW1wbHkgZXJyb3IgaGVyZS5cbiAgICBpZiAoIXRoaXMuX3JlYWRhYmxlU3RhdGUucGlwZXMpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAnW3dpbnN0b25dIEF0dGVtcHQgdG8gd3JpdGUgbG9ncyB3aXRoIG5vIHRyYW5zcG9ydHMsIHdoaWNoIGNhbiBpbmNyZWFzZSBtZW1vcnkgdXNhZ2U6ICVqJyxcbiAgICAgICAgaW5mb1xuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBIZXJlIHdlIHdyaXRlIHRvIHRoZSBgZm9ybWF0YCBwaXBlLWNoYWluLCB3aGljaCBvbiBgcmVhZGFibGVgIGFib3ZlIHdpbGxcbiAgICAvLyBwdXNoIHRoZSBmb3JtYXR0ZWQgYGluZm9gIE9iamVjdCBvbnRvIHRoZSBidWZmZXIgZm9yIHRoaXMgaW5zdGFuY2UuIFdlIHRyYXBcbiAgICAvLyAoYW5kIHJlLXRocm93KSBhbnkgZXJyb3JzIGdlbmVyYXRlZCBieSB0aGUgdXNlci1wcm92aWRlZCBmb3JtYXQsIGJ1dCBhbHNvXG4gICAgLy8gZ3VhcmFudGVlIHRoYXQgdGhlIHN0cmVhbXMgY2FsbGJhY2sgaXMgaW52b2tlZCBzbyB0aGF0IHdlIGNhbiBjb250aW51ZSBmbG93aW5nLlxuICAgIHRyeSB7XG4gICAgICB0aGlzLnB1c2godGhpcy5mb3JtYXQudHJhbnNmb3JtKGluZm8sIHRoaXMuZm9ybWF0Lm9wdGlvbnMpKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5fd3JpdGFibGVTdGF0ZS5zeW5jID0gZmFsc2U7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY2FsbGJhY2stcmV0dXJuXG4gICAgICBjYWxsYmFjaygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEZWxheXMgdGhlICdmaW5pc2gnIGV2ZW50IHVudGlsIGFsbCB0cmFuc3BvcnQgcGlwZSB0YXJnZXRzIGhhdmVcbiAgICogYWxzbyBlbWl0dGVkICdmaW5pc2gnIG9yIGFyZSBhbHJlYWR5IGZpbmlzaGVkLlxuICAgKiBAcGFyYW0ge21peGVkfSBjYWxsYmFjayAtIENvbnRpbnVlcyBzdHJlYW0gcHJvY2Vzc2luZy5cbiAgICovXG4gIF9maW5hbChjYWxsYmFjaykge1xuICAgIGNvbnN0IHRyYW5zcG9ydHMgPSB0aGlzLnRyYW5zcG9ydHMuc2xpY2UoKTtcbiAgICBhc3luY0ZvckVhY2goXG4gICAgICB0cmFuc3BvcnRzLFxuICAgICAgKHRyYW5zcG9ydCwgbmV4dCkgPT4ge1xuICAgICAgICBpZiAoIXRyYW5zcG9ydCB8fCB0cmFuc3BvcnQuZmluaXNoZWQpIHJldHVybiBzZXRJbW1lZGlhdGUobmV4dCk7XG4gICAgICAgIHRyYW5zcG9ydC5vbmNlKCdmaW5pc2gnLCBuZXh0KTtcbiAgICAgICAgdHJhbnNwb3J0LmVuZCgpO1xuICAgICAgfSxcbiAgICAgIGNhbGxiYWNrXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIHRoZSB0cmFuc3BvcnQgdG8gdGhpcyBsb2dnZXIgaW5zdGFuY2UgYnkgcGlwaW5nIHRvIGl0LlxuICAgKiBAcGFyYW0ge21peGVkfSB0cmFuc3BvcnQgLSBUT0RPOiBhZGQgcGFyYW0gZGVzY3JpcHRpb24uXG4gICAqIEByZXR1cm5zIHtMb2dnZXJ9IC0gVE9ETzogYWRkIHJldHVybiBkZXNjcmlwdGlvbi5cbiAgICovXG4gIGFkZCh0cmFuc3BvcnQpIHtcbiAgICAvLyBTdXBwb3J0IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHdpdGggYWxsIGV4aXN0aW5nIGB3aW5zdG9uIDwgMy54LnhgXG4gICAgLy8gdHJhbnNwb3J0cyB3aGljaCBtZWV0IG9uZSBvZiB0d28gY3JpdGVyaWE6XG4gICAgLy8gMS4gVGhleSBpbmhlcml0IGZyb20gd2luc3Rvbi5UcmFuc3BvcnQgaW4gIDwgMy54Lnggd2hpY2ggaXMgTk9UIGEgc3RyZWFtLlxuICAgIC8vIDIuIFRoZXkgZXhwb3NlIGEgbG9nIG1ldGhvZCB3aGljaCBoYXMgYSBsZW5ndGggZ3JlYXRlciB0aGFuIDIgKGkuZS4gbW9yZSB0aGVuXG4gICAgLy8gICAganVzdCBgbG9nKGluZm8sIGNhbGxiYWNrKWAuXG4gICAgY29uc3QgdGFyZ2V0ID1cbiAgICAgICFpc1N0cmVhbSh0cmFuc3BvcnQpIHx8IHRyYW5zcG9ydC5sb2cubGVuZ3RoID4gMlxuICAgICAgICA/IG5ldyBMZWdhY3lUcmFuc3BvcnRTdHJlYW0oeyB0cmFuc3BvcnQgfSlcbiAgICAgICAgOiB0cmFuc3BvcnQ7XG5cbiAgICBpZiAoIXRhcmdldC5fd3JpdGFibGVTdGF0ZSB8fCAhdGFyZ2V0Ll93cml0YWJsZVN0YXRlLm9iamVjdE1vZGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ1RyYW5zcG9ydHMgbXVzdCBXcml0YWJsZVN0cmVhbXMgaW4gb2JqZWN0TW9kZS4gU2V0IHsgb2JqZWN0TW9kZTogdHJ1ZSB9LidcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gTGlzdGVuIGZvciB0aGUgYGVycm9yYCBldmVudCBhbmQgdGhlIGB3YXJuYCBldmVudCBvbiB0aGUgbmV3IFRyYW5zcG9ydC5cbiAgICB0aGlzLl9vbkV2ZW50KCdlcnJvcicsIHRhcmdldCk7XG4gICAgdGhpcy5fb25FdmVudCgnd2FybicsIHRhcmdldCk7XG4gICAgdGhpcy5waXBlKHRhcmdldCk7XG5cbiAgICBpZiAodHJhbnNwb3J0LmhhbmRsZUV4Y2VwdGlvbnMpIHtcbiAgICAgIHRoaXMuZXhjZXB0aW9ucy5oYW5kbGUoKTtcbiAgICB9XG5cbiAgICBpZiAodHJhbnNwb3J0LmhhbmRsZVJlamVjdGlvbnMpIHtcbiAgICAgIHRoaXMucmVqZWN0aW9ucy5oYW5kbGUoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIHRoZSB0cmFuc3BvcnQgZnJvbSB0aGlzIGxvZ2dlciBpbnN0YW5jZSBieSB1bnBpcGluZyBmcm9tIGl0LlxuICAgKiBAcGFyYW0ge21peGVkfSB0cmFuc3BvcnQgLSBUT0RPOiBhZGQgcGFyYW0gZGVzY3JpcHRpb24uXG4gICAqIEByZXR1cm5zIHtMb2dnZXJ9IC0gVE9ETzogYWRkIHJldHVybiBkZXNjcmlwdGlvbi5cbiAgICovXG4gIHJlbW92ZSh0cmFuc3BvcnQpIHtcbiAgICBpZiAoIXRyYW5zcG9ydCkgcmV0dXJuIHRoaXM7XG4gICAgbGV0IHRhcmdldCA9IHRyYW5zcG9ydDtcbiAgICBpZiAoIWlzU3RyZWFtKHRyYW5zcG9ydCkgfHwgdHJhbnNwb3J0LmxvZy5sZW5ndGggPiAyKSB7XG4gICAgICB0YXJnZXQgPSB0aGlzLnRyYW5zcG9ydHMuZmlsdGVyKFxuICAgICAgICBtYXRjaCA9PiBtYXRjaC50cmFuc3BvcnQgPT09IHRyYW5zcG9ydFxuICAgICAgKVswXTtcbiAgICB9XG5cbiAgICBpZiAodGFyZ2V0KSB7XG4gICAgICB0aGlzLnVucGlwZSh0YXJnZXQpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIGFsbCB0cmFuc3BvcnRzIGZyb20gdGhpcyBsb2dnZXIgaW5zdGFuY2UuXG4gICAqIEByZXR1cm5zIHtMb2dnZXJ9IC0gVE9ETzogYWRkIHJldHVybiBkZXNjcmlwdGlvbi5cbiAgICovXG4gIGNsZWFyKCkge1xuICAgIHRoaXMudW5waXBlKCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQ2xlYW5zIHVwIHJlc291cmNlcyAoc3RyZWFtcywgZXZlbnQgbGlzdGVuZXJzKSBmb3IgYWxsIHRyYW5zcG9ydHNcbiAgICogYXNzb2NpYXRlZCB3aXRoIHRoaXMgaW5zdGFuY2UgKGlmIG5lY2Vzc2FyeSkuXG4gICAqIEByZXR1cm5zIHtMb2dnZXJ9IC0gVE9ETzogYWRkIHJldHVybiBkZXNjcmlwdGlvbi5cbiAgICovXG4gIGNsb3NlKCkge1xuICAgIHRoaXMuZXhjZXB0aW9ucy51bmhhbmRsZSgpO1xuICAgIHRoaXMucmVqZWN0aW9ucy51bmhhbmRsZSgpO1xuICAgIHRoaXMuY2xlYXIoKTtcbiAgICB0aGlzLmVtaXQoJ2Nsb3NlJyk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgYHRhcmdldGAgbGV2ZWxzIHNwZWNpZmllZCBvbiB0aGlzIGluc3RhbmNlLlxuICAgKiBAcGFyYW0ge09iamVjdH0gVGFyZ2V0IGxldmVscyB0byB1c2Ugb24gdGhpcyBpbnN0YW5jZS5cbiAgICovXG4gIHNldExldmVscygpIHtcbiAgICB3YXJuLmRlcHJlY2F0ZWQoJ3NldExldmVscycpO1xuICB9XG5cbiAgLyoqXG4gICAqIFF1ZXJpZXMgdGhlIGFsbCB0cmFuc3BvcnRzIGZvciB0aGlzIGluc3RhbmNlIHdpdGggdGhlIHNwZWNpZmllZCBgb3B0aW9uc2AuXG4gICAqIFRoaXMgd2lsbCBhZ2dyZWdhdGUgZWFjaCB0cmFuc3BvcnQncyByZXN1bHRzIGludG8gb25lIG9iamVjdCBjb250YWluaW5nXG4gICAqIGEgcHJvcGVydHkgcGVyIHRyYW5zcG9ydC5cbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgLSBRdWVyeSBvcHRpb25zIGZvciB0aGlzIGluc3RhbmNlLlxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBjYWxsYmFjayAtIENvbnRpbnVhdGlvbiB0byByZXNwb25kIHRvIHdoZW4gY29tcGxldGUuXG4gICAqL1xuICBxdWVyeShvcHRpb25zLCBjYWxsYmFjaykge1xuICAgIGlmICh0eXBlb2Ygb3B0aW9ucyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgY2FsbGJhY2sgPSBvcHRpb25zO1xuICAgICAgb3B0aW9ucyA9IHt9O1xuICAgIH1cblxuICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICAgIGNvbnN0IHJlc3VsdHMgPSB7fTtcbiAgICBjb25zdCBxdWVyeU9iamVjdCA9IE9iamVjdC5hc3NpZ24oe30sIG9wdGlvbnMucXVlcnkgfHwge30pO1xuXG4gICAgLy8gSGVscGVyIGZ1bmN0aW9uIHRvIHF1ZXJ5IGEgc2luZ2xlIHRyYW5zcG9ydFxuICAgIGZ1bmN0aW9uIHF1ZXJ5VHJhbnNwb3J0KHRyYW5zcG9ydCwgbmV4dCkge1xuICAgICAgaWYgKG9wdGlvbnMucXVlcnkgJiYgdHlwZW9mIHRyYW5zcG9ydC5mb3JtYXRRdWVyeSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBvcHRpb25zLnF1ZXJ5ID0gdHJhbnNwb3J0LmZvcm1hdFF1ZXJ5KHF1ZXJ5T2JqZWN0KTtcbiAgICAgIH1cblxuICAgICAgdHJhbnNwb3J0LnF1ZXJ5KG9wdGlvbnMsIChlcnIsIHJlcykgPT4ge1xuICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgcmV0dXJuIG5leHQoZXJyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2YgdHJhbnNwb3J0LmZvcm1hdFJlc3VsdHMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICByZXMgPSB0cmFuc3BvcnQuZm9ybWF0UmVzdWx0cyhyZXMsIG9wdGlvbnMuZm9ybWF0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIG5leHQobnVsbCwgcmVzKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIEhlbHBlciBmdW5jdGlvbiB0byBhY2N1bXVsYXRlIHRoZSByZXN1bHRzIGZyb20gYHF1ZXJ5VHJhbnNwb3J0YCBpbnRvXG4gICAgLy8gdGhlIGByZXN1bHRzYC5cbiAgICBmdW5jdGlvbiBhZGRSZXN1bHRzKHRyYW5zcG9ydCwgbmV4dCkge1xuICAgICAgcXVlcnlUcmFuc3BvcnQodHJhbnNwb3J0LCAoZXJyLCByZXN1bHQpID0+IHtcbiAgICAgICAgLy8gcXVlcnlUcmFuc3BvcnQgY291bGQgcG90ZW50aWFsbHkgaW52b2tlIHRoZSBjYWxsYmFjayBtdWx0aXBsZSB0aW1lc1xuICAgICAgICAvLyBzaW5jZSBUcmFuc3BvcnQgY29kZSBjYW4gYmUgdW5wcmVkaWN0YWJsZS5cbiAgICAgICAgaWYgKG5leHQpIHtcbiAgICAgICAgICByZXN1bHQgPSBlcnIgfHwgcmVzdWx0O1xuICAgICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgIHJlc3VsdHNbdHJhbnNwb3J0Lm5hbWVdID0gcmVzdWx0O1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjYWxsYmFjay1yZXR1cm5cbiAgICAgICAgICBuZXh0KCk7XG4gICAgICAgIH1cblxuICAgICAgICBuZXh0ID0gbnVsbDtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIEl0ZXJhdGUgb3ZlciB0aGUgdHJhbnNwb3J0cyBpbiBwYXJhbGxlbCBzZXR0aW5nIHRoZSBhcHByb3ByaWF0ZSBrZXkgaW5cbiAgICAvLyB0aGUgYHJlc3VsdHNgLlxuICAgIGFzeW5jRm9yRWFjaChcbiAgICAgIHRoaXMudHJhbnNwb3J0cy5maWx0ZXIodHJhbnNwb3J0ID0+ICEhdHJhbnNwb3J0LnF1ZXJ5KSxcbiAgICAgIGFkZFJlc3VsdHMsXG4gICAgICAoKSA9PiBjYWxsYmFjayhudWxsLCByZXN1bHRzKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIGxvZyBzdHJlYW0gZm9yIGFsbCB0cmFuc3BvcnRzLiBPcHRpb25zIG9iamVjdCBpcyBvcHRpb25hbC5cbiAgICogQHBhcmFte09iamVjdH0gb3B0aW9ucz17fSAtIFN0cmVhbSBvcHRpb25zIGZvciB0aGlzIGluc3RhbmNlLlxuICAgKiBAcmV0dXJucyB7U3RyZWFtfSAtIFRPRE86IGFkZCByZXR1cm4gZGVzY3JpcHRpb24uXG4gICAqL1xuICBzdHJlYW0ob3B0aW9ucyA9IHt9KSB7XG4gICAgY29uc3Qgb3V0ID0gbmV3IFN0cmVhbSgpO1xuICAgIGNvbnN0IHN0cmVhbXMgPSBbXTtcblxuICAgIG91dC5fc3RyZWFtcyA9IHN0cmVhbXM7XG4gICAgb3V0LmRlc3Ryb3kgPSAoKSA9PiB7XG4gICAgICBsZXQgaSA9IHN0cmVhbXMubGVuZ3RoO1xuICAgICAgd2hpbGUgKGktLSkge1xuICAgICAgICBzdHJlYW1zW2ldLmRlc3Ryb3koKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgLy8gQ3JlYXRlIGEgbGlzdCBvZiBhbGwgdHJhbnNwb3J0cyBmb3IgdGhpcyBpbnN0YW5jZS5cbiAgICB0aGlzLnRyYW5zcG9ydHNcbiAgICAgIC5maWx0ZXIodHJhbnNwb3J0ID0+ICEhdHJhbnNwb3J0LnN0cmVhbSlcbiAgICAgIC5mb3JFYWNoKHRyYW5zcG9ydCA9PiB7XG4gICAgICAgIGNvbnN0IHN0ciA9IHRyYW5zcG9ydC5zdHJlYW0ob3B0aW9ucyk7XG4gICAgICAgIGlmICghc3RyKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgc3RyZWFtcy5wdXNoKHN0cik7XG5cbiAgICAgICAgc3RyLm9uKCdsb2cnLCBsb2cgPT4ge1xuICAgICAgICAgIGxvZy50cmFuc3BvcnQgPSBsb2cudHJhbnNwb3J0IHx8IFtdO1xuICAgICAgICAgIGxvZy50cmFuc3BvcnQucHVzaCh0cmFuc3BvcnQubmFtZSk7XG4gICAgICAgICAgb3V0LmVtaXQoJ2xvZycsIGxvZyk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHN0ci5vbignZXJyb3InLCBlcnIgPT4ge1xuICAgICAgICAgIGVyci50cmFuc3BvcnQgPSBlcnIudHJhbnNwb3J0IHx8IFtdO1xuICAgICAgICAgIGVyci50cmFuc3BvcnQucHVzaCh0cmFuc3BvcnQubmFtZSk7XG4gICAgICAgICAgb3V0LmVtaXQoJ2Vycm9yJywgZXJyKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcblxuICAgIHJldHVybiBvdXQ7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBvYmplY3QgY29ycmVzcG9uZGluZyB0byBhIHNwZWNpZmljIHRpbWluZy4gV2hlbiBkb25lIGlzIGNhbGxlZFxuICAgKiB0aGUgdGltZXIgd2lsbCBmaW5pc2ggYW5kIGxvZyB0aGUgZHVyYXRpb24uIGUuZy46XG4gICAqIEByZXR1cm5zIHtQcm9maWxlfSAtIFRPRE86IGFkZCByZXR1cm4gZGVzY3JpcHRpb24uXG4gICAqIEBleGFtcGxlXG4gICAqICAgIGNvbnN0IHRpbWVyID0gd2luc3Rvbi5zdGFydFRpbWVyKClcbiAgICogICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAqICAgICAgdGltZXIuZG9uZSh7XG4gICAqICAgICAgICBtZXNzYWdlOiAnTG9nZ2luZyBtZXNzYWdlJ1xuICAgKiAgICAgIH0pO1xuICAgKiAgICB9LCAxMDAwKTtcbiAgICovXG4gIHN0YXJ0VGltZXIoKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9maWxlcih0aGlzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmFja3MgdGhlIHRpbWUgaW5iZXR3ZWVuIHN1YnNlcXVlbnQgY2FsbHMgdG8gdGhpcyBtZXRob2Qgd2l0aCB0aGUgc2FtZVxuICAgKiBgaWRgIHBhcmFtZXRlci4gVGhlIHNlY29uZCBjYWxsIHRvIHRoaXMgbWV0aG9kIHdpbGwgbG9nIHRoZSBkaWZmZXJlbmNlIGluXG4gICAqIG1pbGxpc2Vjb25kcyBhbG9uZyB3aXRoIHRoZSBtZXNzYWdlLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gaWQgVW5pcXVlIGlkIG9mIHRoZSBwcm9maWxlclxuICAgKiBAcmV0dXJucyB7TG9nZ2VyfSAtIFRPRE86IGFkZCByZXR1cm4gZGVzY3JpcHRpb24uXG4gICAqL1xuICBwcm9maWxlKGlkLCAuLi5hcmdzKSB7XG4gICAgY29uc3QgdGltZSA9IERhdGUubm93KCk7XG4gICAgaWYgKHRoaXMucHJvZmlsZXJzW2lkXSkge1xuICAgICAgY29uc3QgdGltZUVuZCA9IHRoaXMucHJvZmlsZXJzW2lkXTtcbiAgICAgIGRlbGV0ZSB0aGlzLnByb2ZpbGVyc1tpZF07XG5cbiAgICAgIC8vIEF0dGVtcHQgdG8gYmUga2luZCB0byB1c2VycyBpZiB0aGV5IGFyZSBzdGlsbCB1c2luZyBvbGRlciBBUElzLlxuICAgICAgaWYgKHR5cGVvZiBhcmdzW2FyZ3MubGVuZ3RoIC0gMl0gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICdDYWxsYmFjayBmdW5jdGlvbiBubyBsb25nZXIgc3VwcG9ydGVkIGFzIG9mIHdpbnN0b25AMy4wLjAnXG4gICAgICAgICk7XG4gICAgICAgIGFyZ3MucG9wKCk7XG4gICAgICB9XG5cbiAgICAgIC8vIFNldCB0aGUgZHVyYXRpb24gcHJvcGVydHkgb2YgdGhlIG1ldGFkYXRhXG4gICAgICBjb25zdCBpbmZvID0gdHlwZW9mIGFyZ3NbYXJncy5sZW5ndGggLSAxXSA9PT0gJ29iamVjdCcgPyBhcmdzLnBvcCgpIDoge307XG4gICAgICBpbmZvLmxldmVsID0gaW5mby5sZXZlbCB8fCAnaW5mbyc7XG4gICAgICBpbmZvLmR1cmF0aW9uTXMgPSB0aW1lIC0gdGltZUVuZDtcbiAgICAgIGluZm8ubWVzc2FnZSA9IGluZm8ubWVzc2FnZSB8fCBpZDtcbiAgICAgIHJldHVybiB0aGlzLndyaXRlKGluZm8pO1xuICAgIH1cblxuICAgIHRoaXMucHJvZmlsZXJzW2lkXSA9IHRpbWU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQmFja3dhcmRzIGNvbXBhdGliaWxpdHkgdG8gYGV4Y2VwdGlvbnMuaGFuZGxlYCBpbiB3aW5zdG9uIDwgMy4wLjAuXG4gICAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gICAqIEBkZXByZWNhdGVkXG4gICAqL1xuICBoYW5kbGVFeGNlcHRpb25zKC4uLmFyZ3MpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgIGNvbnNvbGUud2FybihcbiAgICAgICdEZXByZWNhdGVkOiAuaGFuZGxlRXhjZXB0aW9ucygpIHdpbGwgYmUgcmVtb3ZlZCBpbiB3aW5zdG9uQDQuIFVzZSAuZXhjZXB0aW9ucy5oYW5kbGUoKSdcbiAgICApO1xuICAgIHRoaXMuZXhjZXB0aW9ucy5oYW5kbGUoLi4uYXJncyk7XG4gIH1cblxuICAvKipcbiAgICogQmFja3dhcmRzIGNvbXBhdGliaWxpdHkgdG8gYGV4Y2VwdGlvbnMuaGFuZGxlYCBpbiB3aW5zdG9uIDwgMy4wLjAuXG4gICAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gICAqIEBkZXByZWNhdGVkXG4gICAqL1xuICB1bmhhbmRsZUV4Y2VwdGlvbnMoLi4uYXJncykge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgY29uc29sZS53YXJuKFxuICAgICAgJ0RlcHJlY2F0ZWQ6IC51bmhhbmRsZUV4Y2VwdGlvbnMoKSB3aWxsIGJlIHJlbW92ZWQgaW4gd2luc3RvbkA0LiBVc2UgLmV4Y2VwdGlvbnMudW5oYW5kbGUoKSdcbiAgICApO1xuICAgIHRoaXMuZXhjZXB0aW9ucy51bmhhbmRsZSguLi5hcmdzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaHJvdyBhIG1vcmUgbWVhbmluZ2Z1bCBkZXByZWNhdGlvbiBub3RpY2VcbiAgICogQHRocm93cyB7RXJyb3J9IC0gVE9ETzogYWRkIHRocm93cyBkZXNjcmlwdGlvbi5cbiAgICovXG4gIGNsaSgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBbXG4gICAgICAgICdMb2dnZXIuY2xpKCkgd2FzIHJlbW92ZWQgaW4gd2luc3RvbkAzLjAuMCcsXG4gICAgICAgICdVc2UgYSBjdXN0b20gd2luc3Rvbi5mb3JtYXRzLmNsaSgpIGluc3RlYWQuJyxcbiAgICAgICAgJ1NlZTogaHR0cHM6Ly9naXRodWIuY29tL3dpbnN0b25qcy93aW5zdG9uL3RyZWUvbWFzdGVyL1VQR1JBREUtMy4wLm1kJ1xuICAgICAgXS5qb2luKCdcXG4nKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQnViYmxlcyB0aGUgYGV2ZW50YCB0aGF0IG9jY3VyZWQgb24gdGhlIHNwZWNpZmllZCBgdHJhbnNwb3J0YCB1cFxuICAgKiBmcm9tIHRoaXMgaW5zdGFuY2UuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBldmVudCAtIFRoZSBldmVudCB0aGF0IG9jY3VyZWRcbiAgICogQHBhcmFtIHtPYmplY3R9IHRyYW5zcG9ydCAtIFRyYW5zcG9ydCBvbiB3aGljaCB0aGUgZXZlbnQgb2NjdXJlZFxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgX29uRXZlbnQoZXZlbnQsIHRyYW5zcG9ydCkge1xuICAgIGZ1bmN0aW9uIHRyYW5zcG9ydEV2ZW50KGVycikge1xuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3dpbnN0b25qcy93aW5zdG9uL2lzc3Vlcy8xMzY0XG4gICAgICBpZiAoZXZlbnQgPT09ICdlcnJvcicgJiYgIXRoaXMudHJhbnNwb3J0cy5pbmNsdWRlcyh0cmFuc3BvcnQpKSB7XG4gICAgICAgIHRoaXMuYWRkKHRyYW5zcG9ydCk7XG4gICAgICB9XG4gICAgICB0aGlzLmVtaXQoZXZlbnQsIGVyciwgdHJhbnNwb3J0KTtcbiAgICB9XG5cbiAgICBpZiAoIXRyYW5zcG9ydFsnX193aW5zdG9uJyArIGV2ZW50XSkge1xuICAgICAgdHJhbnNwb3J0WydfX3dpbnN0b24nICsgZXZlbnRdID0gdHJhbnNwb3J0RXZlbnQuYmluZCh0aGlzKTtcbiAgICAgIHRyYW5zcG9ydC5vbihldmVudCwgdHJhbnNwb3J0WydfX3dpbnN0b24nICsgZXZlbnRdKTtcbiAgICB9XG4gIH1cblxuICBfYWRkRGVmYXVsdE1ldGEobXNnKSB7XG4gICAgaWYgKHRoaXMuZGVmYXVsdE1ldGEpIHtcbiAgICAgIE9iamVjdC5hc3NpZ24obXNnLCB0aGlzLmRlZmF1bHRNZXRhKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0TGV2ZWxWYWx1ZShsZXZlbHMsIGxldmVsKSB7XG4gIGNvbnN0IHZhbHVlID0gbGV2ZWxzW2xldmVsXTtcbiAgaWYgKCF2YWx1ZSAmJiB2YWx1ZSAhPT0gMCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIHJldHVybiB2YWx1ZTtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBjdXJyZW50IHJlYWRhYmxlU3RhdGUgcGlwZSB0YXJnZXRzIGZvciB0aGlzIExvZ2dlciBpbnN0YW5jZS5cbiAqIEB0eXBlIHtBcnJheXxPYmplY3R9XG4gKi9cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShMb2dnZXIucHJvdG90eXBlLCAndHJhbnNwb3J0cycsIHtcbiAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgZ2V0KCkge1xuICAgIGNvbnN0IHsgcGlwZXMgfSA9IHRoaXMuX3JlYWRhYmxlU3RhdGU7XG4gICAgcmV0dXJuICFBcnJheS5pc0FycmF5KHBpcGVzKSA/IFtwaXBlc10uZmlsdGVyKEJvb2xlYW4pIDogcGlwZXM7XG4gIH1cbn0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IExvZ2dlcjtcbiIsICIvKipcbiAqIGNyZWF0ZS1sb2dnZXIuanM6IExvZ2dlciBmYWN0b3J5IGZvciB3aW5zdG9uIGxvZ2dlciBpbnN0YW5jZXMuXG4gKlxuICogKEMpIDIwMTAgQ2hhcmxpZSBSb2JiaW5zXG4gKiBNSVQgTElDRU5DRVxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuY29uc3QgeyBMRVZFTCB9ID0gcmVxdWlyZSgndHJpcGxlLWJlYW0nKTtcbmNvbnN0IGNvbmZpZyA9IHJlcXVpcmUoJy4vY29uZmlnJyk7XG5jb25zdCBMb2dnZXIgPSByZXF1aXJlKCcuL2xvZ2dlcicpO1xuY29uc3QgZGVidWcgPSByZXF1aXJlKCdAZGFiaC9kaWFnbm9zdGljcycpKCd3aW5zdG9uOmNyZWF0ZS1sb2dnZXInKTtcblxuZnVuY3Rpb24gaXNMZXZlbEVuYWJsZWRGdW5jdGlvbk5hbWUobGV2ZWwpIHtcbiAgcmV0dXJuICdpcycgKyBsZXZlbC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIGxldmVsLnNsaWNlKDEpICsgJ0VuYWJsZWQnO1xufVxuXG4vKipcbiAqIENyZWF0ZSBhIG5ldyBpbnN0YW5jZSBvZiBhIHdpbnN0b24gTG9nZ2VyLiBDcmVhdGVzIGEgbmV3XG4gKiBwcm90b3R5cGUgZm9yIGVhY2ggaW5zdGFuY2UuXG4gKiBAcGFyYW0geyFPYmplY3R9IG9wdHMgLSBPcHRpb25zIGZvciB0aGUgY3JlYXRlZCBsb2dnZXIuXG4gKiBAcmV0dXJucyB7TG9nZ2VyfSAtIEEgbmV3bHkgY3JlYXRlZCBsb2dnZXIgaW5zdGFuY2UuXG4gKi9cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG9wdHMgPSB7fSkge1xuICAvL1xuICAvLyBEZWZhdWx0IGxldmVsczogbnBtXG4gIC8vXG4gIG9wdHMubGV2ZWxzID0gb3B0cy5sZXZlbHMgfHwgY29uZmlnLm5wbS5sZXZlbHM7XG5cbiAgLyoqXG4gICAqIERlcml2ZWRMb2dnZXIgdG8gYXR0YWNoIHRoZSBsb2dzIGxldmVsIG1ldGhvZHMuXG4gICAqIEB0eXBlIHtEZXJpdmVkTG9nZ2VyfVxuICAgKiBAZXh0ZW5kcyB7TG9nZ2VyfVxuICAgKi9cbiAgY2xhc3MgRGVyaXZlZExvZ2dlciBleHRlbmRzIExvZ2dlciB7XG4gICAgLyoqXG4gICAgICogQ3JlYXRlIGEgbmV3IGNsYXNzIGRlcml2ZWQgbG9nZ2VyIGZvciB3aGljaCB0aGUgbGV2ZWxzIGNhbiBiZSBhdHRhY2hlZCB0b1xuICAgICAqIHRoZSBwcm90b3R5cGUgb2YuIFRoaXMgaXMgYSBWOCBvcHRpbWl6YXRpb24gdGhhdCBpcyB3ZWxsIGtub3cgdG8gaW5jcmVhc2VcbiAgICAgKiBwZXJmb3JtYW5jZSBvZiBwcm90b3R5cGUgZnVuY3Rpb25zLlxuICAgICAqIEBwYXJhbSB7IU9iamVjdH0gb3B0aW9ucyAtIE9wdGlvbnMgZm9yIHRoZSBjcmVhdGVkIGxvZ2dlci5cbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgICBzdXBlcihvcHRpb25zKTtcbiAgICB9XG4gIH1cblxuICBjb25zdCBsb2dnZXIgPSBuZXcgRGVyaXZlZExvZ2dlcihvcHRzKTtcblxuICAvL1xuICAvLyBDcmVhdGUgdGhlIGxvZyBsZXZlbCBtZXRob2RzIGZvciB0aGUgZGVyaXZlZCBsb2dnZXIuXG4gIC8vXG4gIE9iamVjdC5rZXlzKG9wdHMubGV2ZWxzKS5mb3JFYWNoKGZ1bmN0aW9uIChsZXZlbCkge1xuICAgIGRlYnVnKCdEZWZpbmUgcHJvdG90eXBlIG1ldGhvZCBmb3IgXCIlc1wiJywgbGV2ZWwpO1xuICAgIGlmIChsZXZlbCA9PT0gJ2xvZycpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICBjb25zb2xlLndhcm4oJ0xldmVsIFwibG9nXCIgbm90IGRlZmluZWQ6IGNvbmZsaWN0cyB3aXRoIHRoZSBtZXRob2QgXCJsb2dcIi4gVXNlIGEgZGlmZmVyZW50IGxldmVsIG5hbWUuJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy9cbiAgICAvLyBEZWZpbmUgcHJvdG90eXBlIG1ldGhvZHMgZm9yIGVhY2ggbG9nIGxldmVsIGUuZy46XG4gICAgLy8gbG9nZ2VyLmxvZygnaW5mbycsIG1zZykgaW1wbGllcyB0aGVzZSBtZXRob2RzIGFyZSBkZWZpbmVkOlxuICAgIC8vIC0gbG9nZ2VyLmluZm8obXNnKVxuICAgIC8vIC0gbG9nZ2VyLmlzSW5mb0VuYWJsZWQoKVxuICAgIC8vXG4gICAgLy8gUmVtYXJrOiB0byBzdXBwb3J0IGxvZ2dlci5jaGlsZCB0aGlzICoqTVVTVCoqIGJlIGEgZnVuY3Rpb25cbiAgICAvLyBzbyBpdCdsbCBhbHdheXMgYmUgY2FsbGVkIG9uIHRoZSBpbnN0YW5jZSBpbnN0ZWFkIG9mIGEgZml4ZWRcbiAgICAvLyBwbGFjZSBpbiB0aGUgcHJvdG90eXBlIGNoYWluLlxuICAgIC8vXG4gICAgRGVyaXZlZExvZ2dlci5wcm90b3R5cGVbbGV2ZWxdID0gZnVuY3Rpb24gKC4uLmFyZ3MpIHtcbiAgICAgIC8vIFByZWZlciBhbnkgaW5zdGFuY2Ugc2NvcGUsIGJ1dCBkZWZhdWx0IHRvIFwicm9vdFwiIGxvZ2dlclxuICAgICAgY29uc3Qgc2VsZiA9IHRoaXMgfHwgbG9nZ2VyO1xuXG4gICAgICAvLyBPcHRpbWl6ZSB0aGUgaG90LXBhdGggd2hpY2ggaXMgdGhlIHNpbmdsZSBvYmplY3QuXG4gICAgICBpZiAoYXJncy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgY29uc3QgW21zZ10gPSBhcmdzO1xuICAgICAgICBjb25zdCBpbmZvID0gbXNnICYmIG1zZy5tZXNzYWdlICYmIG1zZyB8fCB7IG1lc3NhZ2U6IG1zZyB9O1xuICAgICAgICBpbmZvLmxldmVsID0gaW5mb1tMRVZFTF0gPSBsZXZlbDtcbiAgICAgICAgc2VsZi5fYWRkRGVmYXVsdE1ldGEoaW5mbyk7XG4gICAgICAgIHNlbGYud3JpdGUoaW5mbyk7XG4gICAgICAgIHJldHVybiAodGhpcyB8fCBsb2dnZXIpO1xuICAgICAgfVxuXG4gICAgICAvLyBXaGVuIHByb3ZpZGVkIG5vdGhpbmcgYXNzdW1lIHRoZSBlbXB0eSBzdHJpbmdcbiAgICAgIGlmIChhcmdzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBzZWxmLmxvZyhsZXZlbCwgJycpO1xuICAgICAgICByZXR1cm4gc2VsZjtcbiAgICAgIH1cblxuICAgICAgLy8gT3RoZXJ3aXNlIGJ1aWxkIGFyZ3VtZW50IGxpc3Qgd2hpY2ggY291bGQgcG90ZW50aWFsbHkgY29uZm9ybSB0b1xuICAgICAgLy8gZWl0aGVyOlxuICAgICAgLy8gLiB2MyBBUEk6IGxvZyhvYmopXG4gICAgICAvLyAyLiB2MS92MiBBUEk6IGxvZyhsZXZlbCwgbXNnLCAuLi4gW3N0cmluZyBpbnRlcnBvbGF0ZV0sIFt7bWV0YWRhdGF9XSwgW2NhbGxiYWNrXSlcbiAgICAgIHJldHVybiBzZWxmLmxvZyhsZXZlbCwgLi4uYXJncyk7XG4gICAgfTtcblxuICAgIERlcml2ZWRMb2dnZXIucHJvdG90eXBlW2lzTGV2ZWxFbmFibGVkRnVuY3Rpb25OYW1lKGxldmVsKV0gPSBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gKHRoaXMgfHwgbG9nZ2VyKS5pc0xldmVsRW5hYmxlZChsZXZlbCk7XG4gICAgfTtcbiAgfSk7XG5cbiAgcmV0dXJuIGxvZ2dlcjtcbn07XG4iLCAiLyoqXG4gKiBjb250YWluZXIuanM6IEludmVyc2lvbiBvZiBjb250cm9sIGNvbnRhaW5lciBmb3Igd2luc3RvbiBsb2dnZXIgaW5zdGFuY2VzLlxuICpcbiAqIChDKSAyMDEwIENoYXJsaWUgUm9iYmluc1xuICogTUlUIExJQ0VOQ0VcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmNvbnN0IGNyZWF0ZUxvZ2dlciA9IHJlcXVpcmUoJy4vY3JlYXRlLWxvZ2dlcicpO1xuXG4vKipcbiAqIEludmVyc2lvbiBvZiBjb250cm9sIGNvbnRhaW5lciBmb3Igd2luc3RvbiBsb2dnZXIgaW5zdGFuY2VzLlxuICogQHR5cGUge0NvbnRhaW5lcn1cbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBjbGFzcyBDb250YWluZXIge1xuICAvKipcbiAgICogQ29uc3RydWN0b3IgZnVuY3Rpb24gZm9yIHRoZSBDb250YWluZXIgb2JqZWN0IHJlc3BvbnNpYmxlIGZvciBtYW5hZ2luZyBhXG4gICAqIHNldCBvZiBgd2luc3Rvbi5Mb2dnZXJgIGluc3RhbmNlcyBiYXNlZCBvbiBzdHJpbmcgaWRzLlxuICAgKiBAcGFyYW0geyFPYmplY3R9IFtvcHRpb25zPXt9XSAtIERlZmF1bHQgcGFzcy10aHJ1IG9wdGlvbnMgZm9yIExvZ2dlcnMuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihvcHRpb25zID0ge30pIHtcbiAgICB0aGlzLmxvZ2dlcnMgPSBuZXcgTWFwKCk7XG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgYSBgd2luc3Rvbi5Mb2dnZXJgIGluc3RhbmNlIGZvciB0aGUgc3BlY2lmaWVkIGBpZGAuIElmIGFuXG4gICAqIGluc3RhbmNlIGRvZXMgbm90IGV4aXN0LCBvbmUgaXMgY3JlYXRlZC5cbiAgICogQHBhcmFtIHshc3RyaW5nfSBpZCAtIFRoZSBpZCBvZiB0aGUgTG9nZ2VyIHRvIGdldC5cbiAgICogQHBhcmFtIHs/T2JqZWN0fSBbb3B0aW9uc10gLSBPcHRpb25zIGZvciB0aGUgTG9nZ2VyIGluc3RhbmNlLlxuICAgKiBAcmV0dXJucyB7TG9nZ2VyfSAtIEEgY29uZmlndXJlZCBMb2dnZXIgaW5zdGFuY2Ugd2l0aCBhIHNwZWNpZmllZCBpZC5cbiAgICovXG4gIGFkZChpZCwgb3B0aW9ucykge1xuICAgIGlmICghdGhpcy5sb2dnZXJzLmhhcyhpZCkpIHtcbiAgICAgIC8vIFJlbWFyazogU2ltcGxlIHNoYWxsb3cgY2xvbmUgZm9yIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBpbiBjYXNlIHdlIHBhc3NcbiAgICAgIC8vIGluIGluc3RhbnRpYXRlZCBwcm90b3lwYWwgb2JqZWN0c1xuICAgICAgb3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIG9wdGlvbnMgfHwgdGhpcy5vcHRpb25zKTtcbiAgICAgIGNvbnN0IGV4aXN0aW5nID0gb3B0aW9ucy50cmFuc3BvcnRzIHx8IHRoaXMub3B0aW9ucy50cmFuc3BvcnRzO1xuXG4gICAgICAvLyBSZW1hcms6IE1ha2Ugc3VyZSBpZiB3ZSBoYXZlIGFuIGFycmF5IG9mIHRyYW5zcG9ydHMgd2Ugc2xpY2UgaXQgdG9cbiAgICAgIC8vIG1ha2UgY29waWVzIG9mIHRob3NlIHJlZmVyZW5jZXMuXG4gICAgICBpZiAoZXhpc3RpbmcpIHtcbiAgICAgICAgb3B0aW9ucy50cmFuc3BvcnRzID0gQXJyYXkuaXNBcnJheShleGlzdGluZykgPyBleGlzdGluZy5zbGljZSgpIDogW2V4aXN0aW5nXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG9wdGlvbnMudHJhbnNwb3J0cyA9IFtdO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBsb2dnZXIgPSBjcmVhdGVMb2dnZXIob3B0aW9ucyk7XG4gICAgICBsb2dnZXIub24oJ2Nsb3NlJywgKCkgPT4gdGhpcy5fZGVsZXRlKGlkKSk7XG4gICAgICB0aGlzLmxvZ2dlcnMuc2V0KGlkLCBsb2dnZXIpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmxvZ2dlcnMuZ2V0KGlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyZWl2ZXMgYSBgd2luc3Rvbi5Mb2dnZXJgIGluc3RhbmNlIGZvciB0aGUgc3BlY2lmaWVkIGBpZGAuIElmXG4gICAqIGFuIGluc3RhbmNlIGRvZXMgbm90IGV4aXN0LCBvbmUgaXMgY3JlYXRlZC5cbiAgICogQHBhcmFtIHshc3RyaW5nfSBpZCAtIFRoZSBpZCBvZiB0aGUgTG9nZ2VyIHRvIGdldC5cbiAgICogQHBhcmFtIHs/T2JqZWN0fSBbb3B0aW9uc10gLSBPcHRpb25zIGZvciB0aGUgTG9nZ2VyIGluc3RhbmNlLlxuICAgKiBAcmV0dXJucyB7TG9nZ2VyfSAtIEEgY29uZmlndXJlZCBMb2dnZXIgaW5zdGFuY2Ugd2l0aCBhIHNwZWNpZmllZCBpZC5cbiAgICovXG4gIGdldChpZCwgb3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLmFkZChpZCwgb3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgdGhlIGNvbnRhaW5lciBoYXMgYSBsb2dnZXIgd2l0aCB0aGUgaWQuXG4gICAqIEBwYXJhbSB7P3N0cmluZ30gaWQgLSBUaGUgaWQgb2YgdGhlIExvZ2dlciBpbnN0YW5jZSB0byBmaW5kLlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSBCb29sZWFuIHZhbHVlIGluZGljYXRpbmcgaWYgdGhpcyBpbnN0YW5jZSBoYXMgYVxuICAgKiBsb2dnZXIgd2l0aCB0aGUgc3BlY2lmaWVkIGBpZGAuXG4gICAqL1xuICBoYXMoaWQpIHtcbiAgICByZXR1cm4gISF0aGlzLmxvZ2dlcnMuaGFzKGlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZXMgYSBgTG9nZ2VyYCBpbnN0YW5jZSB3aXRoIHRoZSBzcGVjaWZpZWQgYGlkYCBpZiBpdCBleGlzdHMuXG4gICAqIElmIG5vIGBpZGAgaXMgc3VwcGxpZWQgdGhlbiBhbGwgTG9nZ2VycyBhcmUgY2xvc2VkLlxuICAgKiBAcGFyYW0gez9zdHJpbmd9IGlkIC0gVGhlIGlkIG9mIHRoZSBMb2dnZXIgaW5zdGFuY2UgdG8gY2xvc2UuXG4gICAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gICAqL1xuICBjbG9zZShpZCkge1xuICAgIGlmIChpZCkge1xuICAgICAgcmV0dXJuIHRoaXMuX3JlbW92ZUxvZ2dlcihpZCk7XG4gICAgfVxuXG4gICAgdGhpcy5sb2dnZXJzLmZvckVhY2goKHZhbCwga2V5KSA9PiB0aGlzLl9yZW1vdmVMb2dnZXIoa2V5KSk7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGEgbG9nZ2VyIGJhc2VkIG9uIHRoZSBpZC5cbiAgICogQHBhcmFtIHshc3RyaW5nfSBpZCAtIFRoZSBpZCBvZiB0aGUgbG9nZ2VyIHRvIHJlbW92ZS5cbiAgICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAgICogQHByaXZhdGVcbiAgICovXG4gIF9yZW1vdmVMb2dnZXIoaWQpIHtcbiAgICBpZiAoIXRoaXMubG9nZ2Vycy5oYXMoaWQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbG9nZ2VyID0gdGhpcy5sb2dnZXJzLmdldChpZCk7XG4gICAgbG9nZ2VyLmNsb3NlKCk7XG4gICAgdGhpcy5fZGVsZXRlKGlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWxldGVzIGEgYExvZ2dlcmAgaW5zdGFuY2Ugd2l0aCB0aGUgc3BlY2lmaWVkIGBpZGAuXG4gICAqIEBwYXJhbSB7IXN0cmluZ30gaWQgLSBUaGUgaWQgb2YgdGhlIExvZ2dlciBpbnN0YW5jZSB0byBkZWxldGUgZnJvbVxuICAgKiBjb250YWluZXIuXG4gICAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBfZGVsZXRlKGlkKSB7XG4gICAgdGhpcy5sb2dnZXJzLmRlbGV0ZShpZCk7XG4gIH1cbn07XG4iLCAiLyoqXG4gKiB3aW5zdG9uLmpzOiBUb3AtbGV2ZWwgaW5jbHVkZSBkZWZpbmluZyBXaW5zdG9uLlxuICpcbiAqIChDKSAyMDEwIENoYXJsaWUgUm9iYmluc1xuICogTUlUIExJQ0VOQ0VcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmNvbnN0IGxvZ2Zvcm0gPSByZXF1aXJlKCdsb2dmb3JtJyk7XG5jb25zdCB7IHdhcm4gfSA9IHJlcXVpcmUoJy4vd2luc3Rvbi9jb21tb24nKTtcblxuLyoqXG4gKiBFeHBvc2UgdmVyc2lvbi4gVXNlIGByZXF1aXJlYCBtZXRob2QgZm9yIGB3ZWJwYWNrYCBzdXBwb3J0LlxuICogQHR5cGUge3N0cmluZ31cbiAqL1xuZXhwb3J0cy52ZXJzaW9uID0gcmVxdWlyZSgnLi4vcGFja2FnZS5qc29uJykudmVyc2lvbjtcbi8qKlxuICogSW5jbHVkZSB0cmFuc3BvcnRzIGRlZmluZWQgYnkgZGVmYXVsdCBieSB3aW5zdG9uXG4gKiBAdHlwZSB7QXJyYXl9XG4gKi9cbmV4cG9ydHMudHJhbnNwb3J0cyA9IHJlcXVpcmUoJy4vd2luc3Rvbi90cmFuc3BvcnRzJyk7XG4vKipcbiAqIEV4cG9zZSB1dGlsaXR5IG1ldGhvZHNcbiAqIEB0eXBlIHtPYmplY3R9XG4gKi9cbmV4cG9ydHMuY29uZmlnID0gcmVxdWlyZSgnLi93aW5zdG9uL2NvbmZpZycpO1xuLyoqXG4gKiBIb2lzdCBmb3JtYXQtcmVsYXRlZCBmdW5jdGlvbmFsaXR5IGZyb20gbG9nZm9ybS5cbiAqIEB0eXBlIHtPYmplY3R9XG4gKi9cbmV4cG9ydHMuYWRkQ29sb3JzID0gbG9nZm9ybS5sZXZlbHM7XG4vKipcbiAqIEhvaXN0IGZvcm1hdC1yZWxhdGVkIGZ1bmN0aW9uYWxpdHkgZnJvbSBsb2dmb3JtLlxuICogQHR5cGUge09iamVjdH1cbiAqL1xuZXhwb3J0cy5mb3JtYXQgPSBsb2dmb3JtLmZvcm1hdDtcbi8qKlxuICogRXhwb3NlIGNvcmUgTG9nZ2luZy1yZWxhdGVkIHByb3RvdHlwZXMuXG4gKiBAdHlwZSB7ZnVuY3Rpb259XG4gKi9cbmV4cG9ydHMuY3JlYXRlTG9nZ2VyID0gcmVxdWlyZSgnLi93aW5zdG9uL2NyZWF0ZS1sb2dnZXInKTtcbi8qKlxuICogRXhwb3NlIGNvcmUgTG9nZ2luZy1yZWxhdGVkIHByb3RvdHlwZXMuXG4gKiBAdHlwZSB7ZnVuY3Rpb259XG4gKi9cbmV4cG9ydHMuTG9nZ2VyID0gcmVxdWlyZSgnLi93aW5zdG9uL2xvZ2dlcicpO1xuLyoqXG4gKiBFeHBvc2UgY29yZSBMb2dnaW5nLXJlbGF0ZWQgcHJvdG90eXBlcy5cbiAqIEB0eXBlIHtPYmplY3R9XG4gKi9cbmV4cG9ydHMuRXhjZXB0aW9uSGFuZGxlciA9IHJlcXVpcmUoJy4vd2luc3Rvbi9leGNlcHRpb24taGFuZGxlcicpO1xuLyoqXG4gKiBFeHBvc2UgY29yZSBMb2dnaW5nLXJlbGF0ZWQgcHJvdG90eXBlcy5cbiAqIEB0eXBlIHtPYmplY3R9XG4gKi9cbmV4cG9ydHMuUmVqZWN0aW9uSGFuZGxlciA9IHJlcXVpcmUoJy4vd2luc3Rvbi9yZWplY3Rpb24taGFuZGxlcicpO1xuLyoqXG4gKiBFeHBvc2UgY29yZSBMb2dnaW5nLXJlbGF0ZWQgcHJvdG90eXBlcy5cbiAqIEB0eXBlIHtDb250YWluZXJ9XG4gKi9cbmV4cG9ydHMuQ29udGFpbmVyID0gcmVxdWlyZSgnLi93aW5zdG9uL2NvbnRhaW5lcicpO1xuLyoqXG4gKiBFeHBvc2UgY29yZSBMb2dnaW5nLXJlbGF0ZWQgcHJvdG90eXBlcy5cbiAqIEB0eXBlIHtPYmplY3R9XG4gKi9cbmV4cG9ydHMuVHJhbnNwb3J0ID0gcmVxdWlyZSgnd2luc3Rvbi10cmFuc3BvcnQnKTtcbi8qKlxuICogV2UgY3JlYXRlIGFuZCBleHBvc2UgYSBkZWZhdWx0IGBDb250YWluZXJgIHRvIGB3aW5zdG9uLmxvZ2dlcnNgIHNvIHRoYXQgdGhlXG4gKiBwcm9ncmFtbWVyIG1heSBtYW5hZ2UgbXVsdGlwbGUgYHdpbnN0b24uTG9nZ2VyYCBpbnN0YW5jZXMgd2l0aG91dCBhbnlcbiAqIGFkZGl0aW9uYWwgb3ZlcmhlYWQuXG4gKiBAZXhhbXBsZVxuICogICAvLyBzb21lLWZpbGUxLmpzXG4gKiAgIGNvbnN0IGxvZ2dlciA9IHJlcXVpcmUoJ3dpbnN0b24nKS5sb2dnZXJzLmdldCgnc29tZXRoaW5nJyk7XG4gKlxuICogICAvLyBzb21lLWZpbGUyLmpzXG4gKiAgIGNvbnN0IGxvZ2dlciA9IHJlcXVpcmUoJ3dpbnN0b24nKS5sb2dnZXJzLmdldCgnc29tZXRoaW5nJyk7XG4gKi9cbmV4cG9ydHMubG9nZ2VycyA9IG5ldyBleHBvcnRzLkNvbnRhaW5lcigpO1xuXG4vKipcbiAqIFdlIGNyZWF0ZSBhbmQgZXhwb3NlIGEgJ2RlZmF1bHRMb2dnZXInIHNvIHRoYXQgdGhlIHByb2dyYW1tZXIgbWF5IGRvIHRoZVxuICogZm9sbG93aW5nIHdpdGhvdXQgdGhlIG5lZWQgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIHdpbnN0b24uTG9nZ2VyIGRpcmVjdGx5OlxuICogQGV4YW1wbGVcbiAqICAgY29uc3Qgd2luc3RvbiA9IHJlcXVpcmUoJ3dpbnN0b24nKTtcbiAqICAgd2luc3Rvbi5sb2coJ2luZm8nLCAnc29tZSBtZXNzYWdlJyk7XG4gKiAgIHdpbnN0b24uZXJyb3IoJ3NvbWUgZXJyb3InKTtcbiAqL1xuY29uc3QgZGVmYXVsdExvZ2dlciA9IGV4cG9ydHMuY3JlYXRlTG9nZ2VyKCk7XG5cbi8vIFBhc3MgdGhyb3VnaCB0aGUgdGFyZ2V0IG1ldGhvZHMgb250byBgd2luc3Rvbi5cbk9iamVjdC5rZXlzKGV4cG9ydHMuY29uZmlnLm5wbS5sZXZlbHMpXG4gIC5jb25jYXQoW1xuICAgICdsb2cnLFxuICAgICdxdWVyeScsXG4gICAgJ3N0cmVhbScsXG4gICAgJ2FkZCcsXG4gICAgJ3JlbW92ZScsXG4gICAgJ2NsZWFyJyxcbiAgICAncHJvZmlsZScsXG4gICAgJ3N0YXJ0VGltZXInLFxuICAgICdoYW5kbGVFeGNlcHRpb25zJyxcbiAgICAndW5oYW5kbGVFeGNlcHRpb25zJyxcbiAgICAnaGFuZGxlUmVqZWN0aW9ucycsXG4gICAgJ3VuaGFuZGxlUmVqZWN0aW9ucycsXG4gICAgJ2NvbmZpZ3VyZScsXG4gICAgJ2NoaWxkJ1xuICBdKVxuICAuZm9yRWFjaChcbiAgICBtZXRob2QgPT4gKGV4cG9ydHNbbWV0aG9kXSA9ICguLi5hcmdzKSA9PiBkZWZhdWx0TG9nZ2VyW21ldGhvZF0oLi4uYXJncykpXG4gICk7XG5cbi8qKlxuICogRGVmaW5lIGdldHRlciAvIHNldHRlciBmb3IgdGhlIGRlZmF1bHQgbG9nZ2VyIGxldmVsIHdoaWNoIG5lZWQgdG8gYmUgZXhwb3NlZFxuICogYnkgd2luc3Rvbi5cbiAqIEB0eXBlIHtzdHJpbmd9XG4gKi9cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnbGV2ZWwnLCB7XG4gIGdldCgpIHtcbiAgICByZXR1cm4gZGVmYXVsdExvZ2dlci5sZXZlbDtcbiAgfSxcbiAgc2V0KHZhbCkge1xuICAgIGRlZmF1bHRMb2dnZXIubGV2ZWwgPSB2YWw7XG4gIH1cbn0pO1xuXG4vKipcbiAqIERlZmluZSBnZXR0ZXIgZm9yIGBleGNlcHRpb25zYCB3aGljaCByZXBsYWNlcyBgaGFuZGxlRXhjZXB0aW9uc2AgYW5kXG4gKiBgdW5oYW5kbGVFeGNlcHRpb25zYC5cbiAqIEB0eXBlIHtPYmplY3R9XG4gKi9cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnZXhjZXB0aW9ucycsIHtcbiAgZ2V0KCkge1xuICAgIHJldHVybiBkZWZhdWx0TG9nZ2VyLmV4Y2VwdGlvbnM7XG4gIH1cbn0pO1xuXG4vKipcbiAqIERlZmluZSBnZXR0ZXIgZm9yIGByZWplY3Rpb25zYCB3aGljaCByZXBsYWNlcyBgaGFuZGxlUmVqZWN0aW9uc2AgYW5kXG4gKiBgdW5oYW5kbGVSZWplY3Rpb25zYC5cbiAqIEB0eXBlIHtPYmplY3R9XG4gKi9cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAncmVqZWN0aW9ucycsIHtcbiAgZ2V0KCkge1xuICAgIHJldHVybiBkZWZhdWx0TG9nZ2VyLnJlamVjdGlvbnM7XG4gIH1cbn0pO1xuXG4vKipcbiAqIERlZmluZSBnZXR0ZXJzIC8gc2V0dGVycyBmb3IgYXBwcm9wcmlhdGUgcHJvcGVydGllcyBvZiB0aGUgZGVmYXVsdCBsb2dnZXJcbiAqIHdoaWNoIG5lZWQgdG8gYmUgZXhwb3NlZCBieSB3aW5zdG9uLlxuICogQHR5cGUge0xvZ2dlcn1cbiAqL1xuWydleGl0T25FcnJvciddLmZvckVhY2gocHJvcCA9PiB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBwcm9wLCB7XG4gICAgZ2V0KCkge1xuICAgICAgcmV0dXJuIGRlZmF1bHRMb2dnZXJbcHJvcF07XG4gICAgfSxcbiAgICBzZXQodmFsKSB7XG4gICAgICBkZWZhdWx0TG9nZ2VyW3Byb3BdID0gdmFsO1xuICAgIH1cbiAgfSk7XG59KTtcblxuLyoqXG4gKiBUaGUgZGVmYXVsdCB0cmFuc3BvcnRzIGFuZCBleGNlcHRpb25IYW5kbGVycyBmb3IgdGhlIGRlZmF1bHQgd2luc3RvbiBsb2dnZXIuXG4gKiBAdHlwZSB7T2JqZWN0fVxuICovXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ2RlZmF1bHQnLCB7XG4gIGdldCgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgZXhjZXB0aW9uSGFuZGxlcnM6IGRlZmF1bHRMb2dnZXIuZXhjZXB0aW9uSGFuZGxlcnMsXG4gICAgICByZWplY3Rpb25IYW5kbGVyczogZGVmYXVsdExvZ2dlci5yZWplY3Rpb25IYW5kbGVycyxcbiAgICAgIHRyYW5zcG9ydHM6IGRlZmF1bHRMb2dnZXIudHJhbnNwb3J0c1xuICAgIH07XG4gIH1cbn0pO1xuXG4vLyBIYXZlIGZyaWVuZGxpZXIgYnJlYWthZ2Ugbm90aWNlcyBmb3IgcHJvcGVydGllcyB0aGF0IHdlcmUgZXhwb3NlZCBieSBkZWZhdWx0XG4vLyBvbiB3aW5zdG9uIDwgMy4wLlxud2Fybi5kZXByZWNhdGVkKGV4cG9ydHMsICdzZXRMZXZlbHMnKTtcbndhcm4uZm9yRnVuY3Rpb25zKGV4cG9ydHMsICd1c2VGb3JtYXQnLCBbJ2NsaSddKTtcbndhcm4uZm9yUHJvcGVydGllcyhleHBvcnRzLCAndXNlRm9ybWF0JywgWydwYWRMZXZlbHMnLCAnc3RyaXBDb2xvcnMnXSk7XG53YXJuLmZvckZ1bmN0aW9ucyhleHBvcnRzLCAnZGVwcmVjYXRlZCcsIFtcbiAgJ2FkZFJld3JpdGVyJyxcbiAgJ2FkZEZpbHRlcicsXG4gICdjbG9uZScsXG4gICdleHRlbmQnXG5dKTtcbndhcm4uZm9yUHJvcGVydGllcyhleHBvcnRzLCAnZGVwcmVjYXRlZCcsIFsnZW1pdEVycnMnLCAnbGV2ZWxMZW5ndGgnXSk7XG5cbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBwcm90b2NvbEh0dHAgPSByZXF1aXJlKCdAc21pdGh5L3Byb3RvY29sLWh0dHAnKTtcblxuZnVuY3Rpb24gcmVzb2x2ZUhvc3RIZWFkZXJDb25maWcoaW5wdXQpIHtcbiAgICByZXR1cm4gaW5wdXQ7XG59XG5jb25zdCBob3N0SGVhZGVyTWlkZGxld2FyZSA9IChvcHRpb25zKSA9PiAobmV4dCkgPT4gYXN5bmMgKGFyZ3MpID0+IHtcbiAgICBpZiAoIXByb3RvY29sSHR0cC5IdHRwUmVxdWVzdC5pc0luc3RhbmNlKGFyZ3MucmVxdWVzdCkpXG4gICAgICAgIHJldHVybiBuZXh0KGFyZ3MpO1xuICAgIGNvbnN0IHsgcmVxdWVzdCB9ID0gYXJncztcbiAgICBjb25zdCB7IGhhbmRsZXJQcm90b2NvbCA9IFwiXCIgfSA9IG9wdGlvbnMucmVxdWVzdEhhbmRsZXIubWV0YWRhdGEgfHwge307XG4gICAgaWYgKGhhbmRsZXJQcm90b2NvbC5pbmRleE9mKFwiaDJcIikgPj0gMCAmJiAhcmVxdWVzdC5oZWFkZXJzW1wiOmF1dGhvcml0eVwiXSkge1xuICAgICAgICBkZWxldGUgcmVxdWVzdC5oZWFkZXJzW1wiaG9zdFwiXTtcbiAgICAgICAgcmVxdWVzdC5oZWFkZXJzW1wiOmF1dGhvcml0eVwiXSA9IHJlcXVlc3QuaG9zdG5hbWUgKyAocmVxdWVzdC5wb3J0ID8gXCI6XCIgKyByZXF1ZXN0LnBvcnQgOiBcIlwiKTtcbiAgICB9XG4gICAgZWxzZSBpZiAoIXJlcXVlc3QuaGVhZGVyc1tcImhvc3RcIl0pIHtcbiAgICAgICAgbGV0IGhvc3QgPSByZXF1ZXN0Lmhvc3RuYW1lO1xuICAgICAgICBpZiAocmVxdWVzdC5wb3J0ICE9IG51bGwpXG4gICAgICAgICAgICBob3N0ICs9IGA6JHtyZXF1ZXN0LnBvcnR9YDtcbiAgICAgICAgcmVxdWVzdC5oZWFkZXJzW1wiaG9zdFwiXSA9IGhvc3Q7XG4gICAgfVxuICAgIHJldHVybiBuZXh0KGFyZ3MpO1xufTtcbmNvbnN0IGhvc3RIZWFkZXJNaWRkbGV3YXJlT3B0aW9ucyA9IHtcbiAgICBuYW1lOiBcImhvc3RIZWFkZXJNaWRkbGV3YXJlXCIsXG4gICAgc3RlcDogXCJidWlsZFwiLFxuICAgIHByaW9yaXR5OiBcImxvd1wiLFxuICAgIHRhZ3M6IFtcIkhPU1RcIl0sXG4gICAgb3ZlcnJpZGU6IHRydWUsXG59O1xuY29uc3QgZ2V0SG9zdEhlYWRlclBsdWdpbiA9IChvcHRpb25zKSA9PiAoe1xuICAgIGFwcGx5VG9TdGFjazogKGNsaWVudFN0YWNrKSA9PiB7XG4gICAgICAgIGNsaWVudFN0YWNrLmFkZChob3N0SGVhZGVyTWlkZGxld2FyZShvcHRpb25zKSwgaG9zdEhlYWRlck1pZGRsZXdhcmVPcHRpb25zKTtcbiAgICB9LFxufSk7XG5cbmV4cG9ydHMuZ2V0SG9zdEhlYWRlclBsdWdpbiA9IGdldEhvc3RIZWFkZXJQbHVnaW47XG5leHBvcnRzLmhvc3RIZWFkZXJNaWRkbGV3YXJlID0gaG9zdEhlYWRlck1pZGRsZXdhcmU7XG5leHBvcnRzLmhvc3RIZWFkZXJNaWRkbGV3YXJlT3B0aW9ucyA9IGhvc3RIZWFkZXJNaWRkbGV3YXJlT3B0aW9ucztcbmV4cG9ydHMucmVzb2x2ZUhvc3RIZWFkZXJDb25maWcgPSByZXNvbHZlSG9zdEhlYWRlckNvbmZpZztcbiIsICIndXNlIHN0cmljdCc7XG5cbmNvbnN0IGxvZ2dlck1pZGRsZXdhcmUgPSAoKSA9PiAobmV4dCwgY29udGV4dCkgPT4gYXN5bmMgKGFyZ3MpID0+IHtcbiAgICB0cnkge1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IG5leHQoYXJncyk7XG4gICAgICAgIGNvbnN0IHsgY2xpZW50TmFtZSwgY29tbWFuZE5hbWUsIGxvZ2dlciwgZHluYW1vRGJEb2N1bWVudENsaWVudE9wdGlvbnMgPSB7fSB9ID0gY29udGV4dDtcbiAgICAgICAgY29uc3QgeyBvdmVycmlkZUlucHV0RmlsdGVyU2Vuc2l0aXZlTG9nLCBvdmVycmlkZU91dHB1dEZpbHRlclNlbnNpdGl2ZUxvZyB9ID0gZHluYW1vRGJEb2N1bWVudENsaWVudE9wdGlvbnM7XG4gICAgICAgIGNvbnN0IGlucHV0RmlsdGVyU2Vuc2l0aXZlTG9nID0gb3ZlcnJpZGVJbnB1dEZpbHRlclNlbnNpdGl2ZUxvZyA/PyBjb250ZXh0LmlucHV0RmlsdGVyU2Vuc2l0aXZlTG9nO1xuICAgICAgICBjb25zdCBvdXRwdXRGaWx0ZXJTZW5zaXRpdmVMb2cgPSBvdmVycmlkZU91dHB1dEZpbHRlclNlbnNpdGl2ZUxvZyA/PyBjb250ZXh0Lm91dHB1dEZpbHRlclNlbnNpdGl2ZUxvZztcbiAgICAgICAgY29uc3QgeyAkbWV0YWRhdGEsIC4uLm91dHB1dFdpdGhvdXRNZXRhZGF0YSB9ID0gcmVzcG9uc2Uub3V0cHV0O1xuICAgICAgICBsb2dnZXI/LmluZm8/Lih7XG4gICAgICAgICAgICBjbGllbnROYW1lLFxuICAgICAgICAgICAgY29tbWFuZE5hbWUsXG4gICAgICAgICAgICBpbnB1dDogaW5wdXRGaWx0ZXJTZW5zaXRpdmVMb2coYXJncy5pbnB1dCksXG4gICAgICAgICAgICBvdXRwdXQ6IG91dHB1dEZpbHRlclNlbnNpdGl2ZUxvZyhvdXRwdXRXaXRob3V0TWV0YWRhdGEpLFxuICAgICAgICAgICAgbWV0YWRhdGE6ICRtZXRhZGF0YSxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICB9XG4gICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnN0IHsgY2xpZW50TmFtZSwgY29tbWFuZE5hbWUsIGxvZ2dlciwgZHluYW1vRGJEb2N1bWVudENsaWVudE9wdGlvbnMgPSB7fSB9ID0gY29udGV4dDtcbiAgICAgICAgY29uc3QgeyBvdmVycmlkZUlucHV0RmlsdGVyU2Vuc2l0aXZlTG9nIH0gPSBkeW5hbW9EYkRvY3VtZW50Q2xpZW50T3B0aW9ucztcbiAgICAgICAgY29uc3QgaW5wdXRGaWx0ZXJTZW5zaXRpdmVMb2cgPSBvdmVycmlkZUlucHV0RmlsdGVyU2Vuc2l0aXZlTG9nID8/IGNvbnRleHQuaW5wdXRGaWx0ZXJTZW5zaXRpdmVMb2c7XG4gICAgICAgIGxvZ2dlcj8uZXJyb3I/Lih7XG4gICAgICAgICAgICBjbGllbnROYW1lLFxuICAgICAgICAgICAgY29tbWFuZE5hbWUsXG4gICAgICAgICAgICBpbnB1dDogaW5wdXRGaWx0ZXJTZW5zaXRpdmVMb2coYXJncy5pbnB1dCksXG4gICAgICAgICAgICBlcnJvcixcbiAgICAgICAgICAgIG1ldGFkYXRhOiBlcnJvci4kbWV0YWRhdGEsXG4gICAgICAgIH0pO1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG59O1xuY29uc3QgbG9nZ2VyTWlkZGxld2FyZU9wdGlvbnMgPSB7XG4gICAgbmFtZTogXCJsb2dnZXJNaWRkbGV3YXJlXCIsXG4gICAgdGFnczogW1wiTE9HR0VSXCJdLFxuICAgIHN0ZXA6IFwiaW5pdGlhbGl6ZVwiLFxuICAgIG92ZXJyaWRlOiB0cnVlLFxufTtcbmNvbnN0IGdldExvZ2dlclBsdWdpbiA9IChvcHRpb25zKSA9PiAoe1xuICAgIGFwcGx5VG9TdGFjazogKGNsaWVudFN0YWNrKSA9PiB7XG4gICAgICAgIGNsaWVudFN0YWNrLmFkZChsb2dnZXJNaWRkbGV3YXJlKCksIGxvZ2dlck1pZGRsZXdhcmVPcHRpb25zKTtcbiAgICB9LFxufSk7XG5cbmV4cG9ydHMuZ2V0TG9nZ2VyUGx1Z2luID0gZ2V0TG9nZ2VyUGx1Z2luO1xuZXhwb3J0cy5sb2dnZXJNaWRkbGV3YXJlID0gbG9nZ2VyTWlkZGxld2FyZTtcbmV4cG9ydHMubG9nZ2VyTWlkZGxld2FyZU9wdGlvbnMgPSBsb2dnZXJNaWRkbGV3YXJlT3B0aW9ucztcbiIsICJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMucmVjdXJzaW9uRGV0ZWN0aW9uTWlkZGxld2FyZSA9IHZvaWQgMDtcbmNvbnN0IGxhbWJkYV9pbnZva2Vfc3RvcmVfMSA9IHJlcXVpcmUoXCJAYXdzL2xhbWJkYS1pbnZva2Utc3RvcmVcIik7XG5jb25zdCBwcm90b2NvbF9odHRwXzEgPSByZXF1aXJlKFwiQHNtaXRoeS9wcm90b2NvbC1odHRwXCIpO1xuY29uc3QgVFJBQ0VfSURfSEVBREVSX05BTUUgPSBcIlgtQW16bi1UcmFjZS1JZFwiO1xuY29uc3QgRU5WX0xBTUJEQV9GVU5DVElPTl9OQU1FID0gXCJBV1NfTEFNQkRBX0ZVTkNUSU9OX05BTUVcIjtcbmNvbnN0IEVOVl9UUkFDRV9JRCA9IFwiX1hfQU1aTl9UUkFDRV9JRFwiO1xuY29uc3QgcmVjdXJzaW9uRGV0ZWN0aW9uTWlkZGxld2FyZSA9ICgpID0+IChuZXh0KSA9PiBhc3luYyAoYXJncykgPT4ge1xuICAgIGNvbnN0IHsgcmVxdWVzdCB9ID0gYXJncztcbiAgICBpZiAoIXByb3RvY29sX2h0dHBfMS5IdHRwUmVxdWVzdC5pc0luc3RhbmNlKHJlcXVlc3QpKSB7XG4gICAgICAgIHJldHVybiBuZXh0KGFyZ3MpO1xuICAgIH1cbiAgICBjb25zdCB0cmFjZUlkSGVhZGVyID0gT2JqZWN0LmtleXMocmVxdWVzdC5oZWFkZXJzID8/IHt9KS5maW5kKChoKSA9PiBoLnRvTG93ZXJDYXNlKCkgPT09IFRSQUNFX0lEX0hFQURFUl9OQU1FLnRvTG93ZXJDYXNlKCkpID8/XG4gICAgICAgIFRSQUNFX0lEX0hFQURFUl9OQU1FO1xuICAgIGlmIChyZXF1ZXN0LmhlYWRlcnMuaGFzT3duUHJvcGVydHkodHJhY2VJZEhlYWRlcikpIHtcbiAgICAgICAgcmV0dXJuIG5leHQoYXJncyk7XG4gICAgfVxuICAgIGNvbnN0IGZ1bmN0aW9uTmFtZSA9IHByb2Nlc3MuZW52W0VOVl9MQU1CREFfRlVOQ1RJT05fTkFNRV07XG4gICAgY29uc3QgdHJhY2VJZEZyb21FbnYgPSBwcm9jZXNzLmVudltFTlZfVFJBQ0VfSURdO1xuICAgIGNvbnN0IGludm9rZVN0b3JlID0gYXdhaXQgbGFtYmRhX2ludm9rZV9zdG9yZV8xLkludm9rZVN0b3JlLmdldEluc3RhbmNlQXN5bmMoKTtcbiAgICBjb25zdCB0cmFjZUlkRnJvbUludm9rZVN0b3JlID0gaW52b2tlU3RvcmU/LmdldFhSYXlUcmFjZUlkKCk7XG4gICAgY29uc3QgdHJhY2VJZCA9IHRyYWNlSWRGcm9tSW52b2tlU3RvcmUgPz8gdHJhY2VJZEZyb21FbnY7XG4gICAgY29uc3Qgbm9uRW1wdHlTdHJpbmcgPSAoc3RyKSA9PiB0eXBlb2Ygc3RyID09PSBcInN0cmluZ1wiICYmIHN0ci5sZW5ndGggPiAwO1xuICAgIGlmIChub25FbXB0eVN0cmluZyhmdW5jdGlvbk5hbWUpICYmIG5vbkVtcHR5U3RyaW5nKHRyYWNlSWQpKSB7XG4gICAgICAgIHJlcXVlc3QuaGVhZGVyc1tUUkFDRV9JRF9IRUFERVJfTkFNRV0gPSB0cmFjZUlkO1xuICAgIH1cbiAgICByZXR1cm4gbmV4dCh7XG4gICAgICAgIC4uLmFyZ3MsXG4gICAgICAgIHJlcXVlc3QsXG4gICAgfSk7XG59O1xuZXhwb3J0cy5yZWN1cnNpb25EZXRlY3Rpb25NaWRkbGV3YXJlID0gcmVjdXJzaW9uRGV0ZWN0aW9uTWlkZGxld2FyZTtcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciByZWN1cnNpb25EZXRlY3Rpb25NaWRkbGV3YXJlID0gcmVxdWlyZSgnLi9yZWN1cnNpb25EZXRlY3Rpb25NaWRkbGV3YXJlJyk7XG5cbmNvbnN0IHJlY3Vyc2lvbkRldGVjdGlvbk1pZGRsZXdhcmVPcHRpb25zID0ge1xuICAgIHN0ZXA6IFwiYnVpbGRcIixcbiAgICB0YWdzOiBbXCJSRUNVUlNJT05fREVURUNUSU9OXCJdLFxuICAgIG5hbWU6IFwicmVjdXJzaW9uRGV0ZWN0aW9uTWlkZGxld2FyZVwiLFxuICAgIG92ZXJyaWRlOiB0cnVlLFxuICAgIHByaW9yaXR5OiBcImxvd1wiLFxufTtcblxuY29uc3QgZ2V0UmVjdXJzaW9uRGV0ZWN0aW9uUGx1Z2luID0gKG9wdGlvbnMpID0+ICh7XG4gICAgYXBwbHlUb1N0YWNrOiAoY2xpZW50U3RhY2spID0+IHtcbiAgICAgICAgY2xpZW50U3RhY2suYWRkKHJlY3Vyc2lvbkRldGVjdGlvbk1pZGRsZXdhcmUucmVjdXJzaW9uRGV0ZWN0aW9uTWlkZGxld2FyZSgpLCByZWN1cnNpb25EZXRlY3Rpb25NaWRkbGV3YXJlT3B0aW9ucyk7XG4gICAgfSxcbn0pO1xuXG5leHBvcnRzLmdldFJlY3Vyc2lvbkRldGVjdGlvblBsdWdpbiA9IGdldFJlY3Vyc2lvbkRldGVjdGlvblBsdWdpbjtcbk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyZWN1cnNpb25EZXRlY3Rpb25NaWRkbGV3YXJlLCAnX19wcm90b19fJykgJiZcbiAgICAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGV4cG9ydHMsICdfX3Byb3RvX18nKSAmJlxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19wcm90b19fJywge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICB2YWx1ZTogcmVjdXJzaW9uRGV0ZWN0aW9uTWlkZGxld2FyZVsnX19wcm90b19fJ11cbiAgICB9KTtcblxuT2JqZWN0LmtleXMocmVjdXJzaW9uRGV0ZWN0aW9uTWlkZGxld2FyZSkuZm9yRWFjaChmdW5jdGlvbiAoaykge1xuICAgIGlmIChrICE9PSAnZGVmYXVsdCcgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChleHBvcnRzLCBrKSkgZXhwb3J0c1trXSA9IHJlY3Vyc2lvbkRldGVjdGlvbk1pZGRsZXdhcmVba107XG59KTtcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciB1dGlsRW5kcG9pbnRzID0gcmVxdWlyZSgnQHNtaXRoeS91dGlsLWVuZHBvaW50cycpO1xudmFyIHVybFBhcnNlciA9IHJlcXVpcmUoJ0BzbWl0aHkvdXJsLXBhcnNlcicpO1xuXG5jb25zdCBpc1ZpcnR1YWxIb3N0YWJsZVMzQnVja2V0ID0gKHZhbHVlLCBhbGxvd1N1YkRvbWFpbnMgPSBmYWxzZSkgPT4ge1xuICAgIGlmIChhbGxvd1N1YkRvbWFpbnMpIHtcbiAgICAgICAgZm9yIChjb25zdCBsYWJlbCBvZiB2YWx1ZS5zcGxpdChcIi5cIikpIHtcbiAgICAgICAgICAgIGlmICghaXNWaXJ0dWFsSG9zdGFibGVTM0J1Y2tldChsYWJlbCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmICghdXRpbEVuZHBvaW50cy5pc1ZhbGlkSG9zdExhYmVsKHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmICh2YWx1ZS5sZW5ndGggPCAzIHx8IHZhbHVlLmxlbmd0aCA+IDYzKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKHZhbHVlICE9PSB2YWx1ZS50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKHV0aWxFbmRwb2ludHMuaXNJcEFkZHJlc3ModmFsdWUpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG59O1xuXG5jb25zdCBBUk5fREVMSU1JVEVSID0gXCI6XCI7XG5jb25zdCBSRVNPVVJDRV9ERUxJTUlURVIgPSBcIi9cIjtcbmNvbnN0IHBhcnNlQXJuID0gKHZhbHVlKSA9PiB7XG4gICAgY29uc3Qgc2VnbWVudHMgPSB2YWx1ZS5zcGxpdChBUk5fREVMSU1JVEVSKTtcbiAgICBpZiAoc2VnbWVudHMubGVuZ3RoIDwgNilcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgW2FybiwgcGFydGl0aW9uLCBzZXJ2aWNlLCByZWdpb24sIGFjY291bnRJZCwgLi4ucmVzb3VyY2VQYXRoXSA9IHNlZ21lbnRzO1xuICAgIGlmIChhcm4gIT09IFwiYXJuXCIgfHwgcGFydGl0aW9uID09PSBcIlwiIHx8IHNlcnZpY2UgPT09IFwiXCIgfHwgcmVzb3VyY2VQYXRoLmpvaW4oQVJOX0RFTElNSVRFUikgPT09IFwiXCIpXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIGNvbnN0IHJlc291cmNlSWQgPSByZXNvdXJjZVBhdGgubWFwKChyZXNvdXJjZSkgPT4gcmVzb3VyY2Uuc3BsaXQoUkVTT1VSQ0VfREVMSU1JVEVSKSkuZmxhdCgpO1xuICAgIHJldHVybiB7XG4gICAgICAgIHBhcnRpdGlvbixcbiAgICAgICAgc2VydmljZSxcbiAgICAgICAgcmVnaW9uLFxuICAgICAgICBhY2NvdW50SWQsXG4gICAgICAgIHJlc291cmNlSWQsXG4gICAgfTtcbn07XG5cbnZhciBwYXJ0aXRpb25zID0gW1xuXHR7XG5cdFx0aWQ6IFwiYXdzXCIsXG5cdFx0b3V0cHV0czoge1xuXHRcdFx0ZG5zU3VmZml4OiBcImFtYXpvbmF3cy5jb21cIixcblx0XHRcdGR1YWxTdGFja0Ruc1N1ZmZpeDogXCJhcGkuYXdzXCIsXG5cdFx0XHRpbXBsaWNpdEdsb2JhbFJlZ2lvbjogXCJ1cy1lYXN0LTFcIixcblx0XHRcdG5hbWU6IFwiYXdzXCIsXG5cdFx0XHRzdXBwb3J0c0R1YWxTdGFjazogdHJ1ZSxcblx0XHRcdHN1cHBvcnRzRklQUzogdHJ1ZVxuXHRcdH0sXG5cdFx0cmVnaW9uUmVnZXg6IFwiXih1c3xldXxhcHxzYXxjYXxtZXxhZnxpbHxteClcXFxcLVxcXFx3K1xcXFwtXFxcXGQrJFwiLFxuXHRcdHJlZ2lvbnM6IHtcblx0XHRcdFwiYWYtc291dGgtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFmcmljYSAoQ2FwZSBUb3duKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJhcC1lYXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBc2lhIFBhY2lmaWMgKEhvbmcgS29uZylcIlxuXHRcdFx0fSxcblx0XHRcdFwiYXAtZWFzdC0yXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChUYWlwZWkpXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLW5vcnRoZWFzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChUb2t5bylcIlxuXHRcdFx0fSxcblx0XHRcdFwiYXAtbm9ydGhlYXN0LTJcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBc2lhIFBhY2lmaWMgKFNlb3VsKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJhcC1ub3J0aGVhc3QtM1wiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFzaWEgUGFjaWZpYyAoT3Nha2EpXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLXNvdXRoLTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBc2lhIFBhY2lmaWMgKE11bWJhaSlcIlxuXHRcdFx0fSxcblx0XHRcdFwiYXAtc291dGgtMlwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFzaWEgUGFjaWZpYyAoSHlkZXJhYmFkKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJhcC1zb3V0aGVhc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFzaWEgUGFjaWZpYyAoU2luZ2Fwb3JlKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJhcC1zb3V0aGVhc3QtMlwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFzaWEgUGFjaWZpYyAoU3lkbmV5KVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJhcC1zb3V0aGVhc3QtM1wiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFzaWEgUGFjaWZpYyAoSmFrYXJ0YSlcIlxuXHRcdFx0fSxcblx0XHRcdFwiYXAtc291dGhlYXN0LTRcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBc2lhIFBhY2lmaWMgKE1lbGJvdXJuZSlcIlxuXHRcdFx0fSxcblx0XHRcdFwiYXAtc291dGhlYXN0LTVcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBc2lhIFBhY2lmaWMgKE1hbGF5c2lhKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJhcC1zb3V0aGVhc3QtNlwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFzaWEgUGFjaWZpYyAoTmV3IFplYWxhbmQpXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLXNvdXRoZWFzdC03XCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChUaGFpbGFuZClcIlxuXHRcdFx0fSxcblx0XHRcdFwiYXdzLWdsb2JhbFwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcImF3cyBnbG9iYWwgcmVnaW9uXCJcblx0XHRcdH0sXG5cdFx0XHRcImNhLWNlbnRyYWwtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkNhbmFkYSAoQ2VudHJhbClcIlxuXHRcdFx0fSxcblx0XHRcdFwiY2Etd2VzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQ2FuYWRhIFdlc3QgKENhbGdhcnkpXCJcblx0XHRcdH0sXG5cdFx0XHRcImV1LWNlbnRyYWwtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkV1cm9wZSAoRnJhbmtmdXJ0KVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJldS1jZW50cmFsLTJcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJFdXJvcGUgKFp1cmljaClcIlxuXHRcdFx0fSxcblx0XHRcdFwiZXUtbm9ydGgtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkV1cm9wZSAoU3RvY2tob2xtKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJldS1zb3V0aC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiRXVyb3BlIChNaWxhbilcIlxuXHRcdFx0fSxcblx0XHRcdFwiZXUtc291dGgtMlwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkV1cm9wZSAoU3BhaW4pXCJcblx0XHRcdH0sXG5cdFx0XHRcImV1LXdlc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkV1cm9wZSAoSXJlbGFuZClcIlxuXHRcdFx0fSxcblx0XHRcdFwiZXUtd2VzdC0yXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiRXVyb3BlIChMb25kb24pXCJcblx0XHRcdH0sXG5cdFx0XHRcImV1LXdlc3QtM1wiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkV1cm9wZSAoUGFyaXMpXCJcblx0XHRcdH0sXG5cdFx0XHRcImlsLWNlbnRyYWwtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIklzcmFlbCAoVGVsIEF2aXYpXCJcblx0XHRcdH0sXG5cdFx0XHRcIm1lLWNlbnRyYWwtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIk1pZGRsZSBFYXN0IChVQUUpXCJcblx0XHRcdH0sXG5cdFx0XHRcIm1lLXNvdXRoLTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJNaWRkbGUgRWFzdCAoQmFocmFpbilcIlxuXHRcdFx0fSxcblx0XHRcdFwibXgtY2VudHJhbC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiTWV4aWNvIChDZW50cmFsKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJzYS1lYXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJTb3V0aCBBbWVyaWNhIChTYW8gUGF1bG8pXCJcblx0XHRcdH0sXG5cdFx0XHRcInVzLWVhc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIlVTIEVhc3QgKE4uIFZpcmdpbmlhKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJ1cy1lYXN0LTJcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJVUyBFYXN0IChPaGlvKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJ1cy13ZXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJVUyBXZXN0IChOLiBDYWxpZm9ybmlhKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJ1cy13ZXN0LTJcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJVUyBXZXN0IChPcmVnb24pXCJcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdHtcblx0XHRpZDogXCJhd3MtY25cIixcblx0XHRvdXRwdXRzOiB7XG5cdFx0XHRkbnNTdWZmaXg6IFwiYW1hem9uYXdzLmNvbS5jblwiLFxuXHRcdFx0ZHVhbFN0YWNrRG5zU3VmZml4OiBcImFwaS5hbWF6b253ZWJzZXJ2aWNlcy5jb20uY25cIixcblx0XHRcdGltcGxpY2l0R2xvYmFsUmVnaW9uOiBcImNuLW5vcnRod2VzdC0xXCIsXG5cdFx0XHRuYW1lOiBcImF3cy1jblwiLFxuXHRcdFx0c3VwcG9ydHNEdWFsU3RhY2s6IHRydWUsXG5cdFx0XHRzdXBwb3J0c0ZJUFM6IHRydWVcblx0XHR9LFxuXHRcdHJlZ2lvblJlZ2V4OiBcIl5jblxcXFwtXFxcXHcrXFxcXC1cXFxcZCskXCIsXG5cdFx0cmVnaW9uczoge1xuXHRcdFx0XCJhd3MtY24tZ2xvYmFsXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiYXdzLWNuIGdsb2JhbCByZWdpb25cIlxuXHRcdFx0fSxcblx0XHRcdFwiY24tbm9ydGgtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkNoaW5hIChCZWlqaW5nKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJjbi1ub3J0aHdlc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkNoaW5hIChOaW5neGlhKVwiXG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXHR7XG5cdFx0aWQ6IFwiYXdzLWV1c2NcIixcblx0XHRvdXRwdXRzOiB7XG5cdFx0XHRkbnNTdWZmaXg6IFwiYW1hem9uYXdzLmV1XCIsXG5cdFx0XHRkdWFsU3RhY2tEbnNTdWZmaXg6IFwiYXBpLmFtYXpvbndlYnNlcnZpY2VzLmV1XCIsXG5cdFx0XHRpbXBsaWNpdEdsb2JhbFJlZ2lvbjogXCJldXNjLWRlLWVhc3QtMVwiLFxuXHRcdFx0bmFtZTogXCJhd3MtZXVzY1wiLFxuXHRcdFx0c3VwcG9ydHNEdWFsU3RhY2s6IHRydWUsXG5cdFx0XHRzdXBwb3J0c0ZJUFM6IHRydWVcblx0XHR9LFxuXHRcdHJlZ2lvblJlZ2V4OiBcIl5ldXNjXFxcXC0oZGUpXFxcXC1cXFxcdytcXFxcLVxcXFxkKyRcIixcblx0XHRyZWdpb25zOiB7XG5cdFx0XHRcImV1c2MtZGUtZWFzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQVdTIEV1cm9wZWFuIFNvdmVyZWlnbiBDbG91ZCAoR2VybWFueSlcIlxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0e1xuXHRcdGlkOiBcImF3cy1pc29cIixcblx0XHRvdXRwdXRzOiB7XG5cdFx0XHRkbnNTdWZmaXg6IFwiYzJzLmljLmdvdlwiLFxuXHRcdFx0ZHVhbFN0YWNrRG5zU3VmZml4OiBcImFwaS5hd3MuaWMuZ292XCIsXG5cdFx0XHRpbXBsaWNpdEdsb2JhbFJlZ2lvbjogXCJ1cy1pc28tZWFzdC0xXCIsXG5cdFx0XHRuYW1lOiBcImF3cy1pc29cIixcblx0XHRcdHN1cHBvcnRzRHVhbFN0YWNrOiB0cnVlLFxuXHRcdFx0c3VwcG9ydHNGSVBTOiB0cnVlXG5cdFx0fSxcblx0XHRyZWdpb25SZWdleDogXCJedXNcXFxcLWlzb1xcXFwtXFxcXHcrXFxcXC1cXFxcZCskXCIsXG5cdFx0cmVnaW9uczoge1xuXHRcdFx0XCJhd3MtaXNvLWdsb2JhbFwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcImF3cy1pc28gZ2xvYmFsIHJlZ2lvblwiXG5cdFx0XHR9LFxuXHRcdFx0XCJ1cy1pc28tZWFzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiVVMgSVNPIEVhc3RcIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtaXNvLXdlc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIlVTIElTTyBXRVNUXCJcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdHtcblx0XHRpZDogXCJhd3MtaXNvLWJcIixcblx0XHRvdXRwdXRzOiB7XG5cdFx0XHRkbnNTdWZmaXg6IFwic2Mycy5zZ292LmdvdlwiLFxuXHRcdFx0ZHVhbFN0YWNrRG5zU3VmZml4OiBcImFwaS5hd3Muc2Nsb3VkXCIsXG5cdFx0XHRpbXBsaWNpdEdsb2JhbFJlZ2lvbjogXCJ1cy1pc29iLWVhc3QtMVwiLFxuXHRcdFx0bmFtZTogXCJhd3MtaXNvLWJcIixcblx0XHRcdHN1cHBvcnRzRHVhbFN0YWNrOiB0cnVlLFxuXHRcdFx0c3VwcG9ydHNGSVBTOiB0cnVlXG5cdFx0fSxcblx0XHRyZWdpb25SZWdleDogXCJedXNcXFxcLWlzb2JcXFxcLVxcXFx3K1xcXFwtXFxcXGQrJFwiLFxuXHRcdHJlZ2lvbnM6IHtcblx0XHRcdFwiYXdzLWlzby1iLWdsb2JhbFwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcImF3cy1pc28tYiBnbG9iYWwgcmVnaW9uXCJcblx0XHRcdH0sXG5cdFx0XHRcInVzLWlzb2ItZWFzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiVVMgSVNPQiBFYXN0IChPaGlvKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJ1cy1pc29iLXdlc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIlVTIElTT0IgV2VzdFwiXG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXHR7XG5cdFx0aWQ6IFwiYXdzLWlzby1lXCIsXG5cdFx0b3V0cHV0czoge1xuXHRcdFx0ZG5zU3VmZml4OiBcImNsb3VkLmFkYy1lLnVrXCIsXG5cdFx0XHRkdWFsU3RhY2tEbnNTdWZmaXg6IFwiYXBpLmNsb3VkLWF3cy5hZGMtZS51a1wiLFxuXHRcdFx0aW1wbGljaXRHbG9iYWxSZWdpb246IFwiZXUtaXNvZS13ZXN0LTFcIixcblx0XHRcdG5hbWU6IFwiYXdzLWlzby1lXCIsXG5cdFx0XHRzdXBwb3J0c0R1YWxTdGFjazogdHJ1ZSxcblx0XHRcdHN1cHBvcnRzRklQUzogdHJ1ZVxuXHRcdH0sXG5cdFx0cmVnaW9uUmVnZXg6IFwiXmV1XFxcXC1pc29lXFxcXC1cXFxcdytcXFxcLVxcXFxkKyRcIixcblx0XHRyZWdpb25zOiB7XG5cdFx0XHRcImF3cy1pc28tZS1nbG9iYWxcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJhd3MtaXNvLWUgZ2xvYmFsIHJlZ2lvblwiXG5cdFx0XHR9LFxuXHRcdFx0XCJldS1pc29lLXdlc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkVVIElTT0UgV2VzdFwiXG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXHR7XG5cdFx0aWQ6IFwiYXdzLWlzby1mXCIsXG5cdFx0b3V0cHV0czoge1xuXHRcdFx0ZG5zU3VmZml4OiBcImNzcC5oY2kuaWMuZ292XCIsXG5cdFx0XHRkdWFsU3RhY2tEbnNTdWZmaXg6IFwiYXBpLmF3cy5oY2kuaWMuZ292XCIsXG5cdFx0XHRpbXBsaWNpdEdsb2JhbFJlZ2lvbjogXCJ1cy1pc29mLXNvdXRoLTFcIixcblx0XHRcdG5hbWU6IFwiYXdzLWlzby1mXCIsXG5cdFx0XHRzdXBwb3J0c0R1YWxTdGFjazogdHJ1ZSxcblx0XHRcdHN1cHBvcnRzRklQUzogdHJ1ZVxuXHRcdH0sXG5cdFx0cmVnaW9uUmVnZXg6IFwiXnVzXFxcXC1pc29mXFxcXC1cXFxcdytcXFxcLVxcXFxkKyRcIixcblx0XHRyZWdpb25zOiB7XG5cdFx0XHRcImF3cy1pc28tZi1nbG9iYWxcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJhd3MtaXNvLWYgZ2xvYmFsIHJlZ2lvblwiXG5cdFx0XHR9LFxuXHRcdFx0XCJ1cy1pc29mLWVhc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIlVTIElTT0YgRUFTVFwiXG5cdFx0XHR9LFxuXHRcdFx0XCJ1cy1pc29mLXNvdXRoLTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJVUyBJU09GIFNPVVRIXCJcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdHtcblx0XHRpZDogXCJhd3MtdXMtZ292XCIsXG5cdFx0b3V0cHV0czoge1xuXHRcdFx0ZG5zU3VmZml4OiBcImFtYXpvbmF3cy5jb21cIixcblx0XHRcdGR1YWxTdGFja0Ruc1N1ZmZpeDogXCJhcGkuYXdzXCIsXG5cdFx0XHRpbXBsaWNpdEdsb2JhbFJlZ2lvbjogXCJ1cy1nb3Ytd2VzdC0xXCIsXG5cdFx0XHRuYW1lOiBcImF3cy11cy1nb3ZcIixcblx0XHRcdHN1cHBvcnRzRHVhbFN0YWNrOiB0cnVlLFxuXHRcdFx0c3VwcG9ydHNGSVBTOiB0cnVlXG5cdFx0fSxcblx0XHRyZWdpb25SZWdleDogXCJedXNcXFxcLWdvdlxcXFwtXFxcXHcrXFxcXC1cXFxcZCskXCIsXG5cdFx0cmVnaW9uczoge1xuXHRcdFx0XCJhd3MtdXMtZ292LWdsb2JhbFwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcImF3cy11cy1nb3YgZ2xvYmFsIHJlZ2lvblwiXG5cdFx0XHR9LFxuXHRcdFx0XCJ1cy1nb3YtZWFzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQVdTIEdvdkNsb3VkIChVUy1FYXN0KVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJ1cy1nb3Ytd2VzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQVdTIEdvdkNsb3VkIChVUy1XZXN0KVwiXG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5dO1xudmFyIHZlcnNpb24gPSBcIjEuMVwiO1xudmFyIHBhcnRpdGlvbnNJbmZvID0ge1xuXHRwYXJ0aXRpb25zOiBwYXJ0aXRpb25zLFxuXHR2ZXJzaW9uOiB2ZXJzaW9uXG59O1xuXG5sZXQgc2VsZWN0ZWRQYXJ0aXRpb25zSW5mbyA9IHBhcnRpdGlvbnNJbmZvO1xubGV0IHNlbGVjdGVkVXNlckFnZW50UHJlZml4ID0gXCJcIjtcbmNvbnN0IHBhcnRpdGlvbiA9ICh2YWx1ZSkgPT4ge1xuICAgIGNvbnN0IHsgcGFydGl0aW9ucyB9ID0gc2VsZWN0ZWRQYXJ0aXRpb25zSW5mbztcbiAgICBmb3IgKGNvbnN0IHBhcnRpdGlvbiBvZiBwYXJ0aXRpb25zKSB7XG4gICAgICAgIGNvbnN0IHsgcmVnaW9ucywgb3V0cHV0cyB9ID0gcGFydGl0aW9uO1xuICAgICAgICBmb3IgKGNvbnN0IFtyZWdpb24sIHJlZ2lvbkRhdGFdIG9mIE9iamVjdC5lbnRyaWVzKHJlZ2lvbnMpKSB7XG4gICAgICAgICAgICBpZiAocmVnaW9uID09PSB2YWx1ZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIC4uLm91dHB1dHMsXG4gICAgICAgICAgICAgICAgICAgIC4uLnJlZ2lvbkRhdGEsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBmb3IgKGNvbnN0IHBhcnRpdGlvbiBvZiBwYXJ0aXRpb25zKSB7XG4gICAgICAgIGNvbnN0IHsgcmVnaW9uUmVnZXgsIG91dHB1dHMgfSA9IHBhcnRpdGlvbjtcbiAgICAgICAgaWYgKG5ldyBSZWdFeHAocmVnaW9uUmVnZXgpLnRlc3QodmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIC4uLm91dHB1dHMsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfVxuICAgIGNvbnN0IERFRkFVTFRfUEFSVElUSU9OID0gcGFydGl0aW9ucy5maW5kKChwYXJ0aXRpb24pID0+IHBhcnRpdGlvbi5pZCA9PT0gXCJhd3NcIik7XG4gICAgaWYgKCFERUZBVUxUX1BBUlRJVElPTikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJQcm92aWRlZCByZWdpb24gd2FzIG5vdCBmb3VuZCBpbiB0aGUgcGFydGl0aW9uIGFycmF5IG9yIHJlZ2V4LFwiICtcbiAgICAgICAgICAgIFwiIGFuZCBkZWZhdWx0IHBhcnRpdGlvbiB3aXRoIGlkICdhd3MnIGRvZXNuJ3QgZXhpc3QuXCIpO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICAuLi5ERUZBVUxUX1BBUlRJVElPTi5vdXRwdXRzLFxuICAgIH07XG59O1xuY29uc3Qgc2V0UGFydGl0aW9uSW5mbyA9IChwYXJ0aXRpb25zSW5mbywgdXNlckFnZW50UHJlZml4ID0gXCJcIikgPT4ge1xuICAgIHNlbGVjdGVkUGFydGl0aW9uc0luZm8gPSBwYXJ0aXRpb25zSW5mbztcbiAgICBzZWxlY3RlZFVzZXJBZ2VudFByZWZpeCA9IHVzZXJBZ2VudFByZWZpeDtcbn07XG5jb25zdCB1c2VEZWZhdWx0UGFydGl0aW9uSW5mbyA9ICgpID0+IHtcbiAgICBzZXRQYXJ0aXRpb25JbmZvKHBhcnRpdGlvbnNJbmZvLCBcIlwiKTtcbn07XG5jb25zdCBnZXRVc2VyQWdlbnRQcmVmaXggPSAoKSA9PiBzZWxlY3RlZFVzZXJBZ2VudFByZWZpeDtcblxuY29uc3QgYXdzRW5kcG9pbnRGdW5jdGlvbnMgPSB7XG4gICAgaXNWaXJ0dWFsSG9zdGFibGVTM0J1Y2tldDogaXNWaXJ0dWFsSG9zdGFibGVTM0J1Y2tldCxcbiAgICBwYXJzZUFybjogcGFyc2VBcm4sXG4gICAgcGFydGl0aW9uOiBwYXJ0aXRpb24sXG59O1xudXRpbEVuZHBvaW50cy5jdXN0b21FbmRwb2ludEZ1bmN0aW9ucy5hd3MgPSBhd3NFbmRwb2ludEZ1bmN0aW9ucztcblxuY29uc3QgcmVzb2x2ZURlZmF1bHRBd3NSZWdpb25hbEVuZHBvaW50c0NvbmZpZyA9IChpbnB1dCkgPT4ge1xuICAgIGlmICh0eXBlb2YgaW5wdXQuZW5kcG9pbnRQcm92aWRlciAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkBhd3Mtc2RrL3V0aWwtZW5kcG9pbnQgLSBlbmRwb2ludFByb3ZpZGVyIGFuZCBlbmRwb2ludCBtaXNzaW5nIGluIGNvbmZpZyBmb3IgdGhpcyBjbGllbnQuXCIpO1xuICAgIH1cbiAgICBjb25zdCB7IGVuZHBvaW50IH0gPSBpbnB1dDtcbiAgICBpZiAoZW5kcG9pbnQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBpbnB1dC5lbmRwb2ludCA9IGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB0b0VuZHBvaW50VjEoaW5wdXQuZW5kcG9pbnRQcm92aWRlcih7XG4gICAgICAgICAgICAgICAgUmVnaW9uOiB0eXBlb2YgaW5wdXQucmVnaW9uID09PSBcImZ1bmN0aW9uXCIgPyBhd2FpdCBpbnB1dC5yZWdpb24oKSA6IGlucHV0LnJlZ2lvbixcbiAgICAgICAgICAgICAgICBVc2VEdWFsU3RhY2s6IHR5cGVvZiBpbnB1dC51c2VEdWFsc3RhY2tFbmRwb2ludCA9PT0gXCJmdW5jdGlvblwiXG4gICAgICAgICAgICAgICAgICAgID8gYXdhaXQgaW5wdXQudXNlRHVhbHN0YWNrRW5kcG9pbnQoKVxuICAgICAgICAgICAgICAgICAgICA6IGlucHV0LnVzZUR1YWxzdGFja0VuZHBvaW50LFxuICAgICAgICAgICAgICAgIFVzZUZJUFM6IHR5cGVvZiBpbnB1dC51c2VGaXBzRW5kcG9pbnQgPT09IFwiZnVuY3Rpb25cIiA/IGF3YWl0IGlucHV0LnVzZUZpcHNFbmRwb2ludCgpIDogaW5wdXQudXNlRmlwc0VuZHBvaW50LFxuICAgICAgICAgICAgICAgIEVuZHBvaW50OiB1bmRlZmluZWQsXG4gICAgICAgICAgICB9LCB7IGxvZ2dlcjogaW5wdXQubG9nZ2VyIH0pKTtcbiAgICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIGlucHV0O1xufTtcbmNvbnN0IHRvRW5kcG9pbnRWMSA9IChlbmRwb2ludCkgPT4gdXJsUGFyc2VyLnBhcnNlVXJsKGVuZHBvaW50LnVybCk7XG5cbmV4cG9ydHMuRW5kcG9pbnRFcnJvciA9IHV0aWxFbmRwb2ludHMuRW5kcG9pbnRFcnJvcjtcbmV4cG9ydHMuaXNJcEFkZHJlc3MgPSB1dGlsRW5kcG9pbnRzLmlzSXBBZGRyZXNzO1xuZXhwb3J0cy5yZXNvbHZlRW5kcG9pbnQgPSB1dGlsRW5kcG9pbnRzLnJlc29sdmVFbmRwb2ludDtcbmV4cG9ydHMuYXdzRW5kcG9pbnRGdW5jdGlvbnMgPSBhd3NFbmRwb2ludEZ1bmN0aW9ucztcbmV4cG9ydHMuZ2V0VXNlckFnZW50UHJlZml4ID0gZ2V0VXNlckFnZW50UHJlZml4O1xuZXhwb3J0cy5wYXJ0aXRpb24gPSBwYXJ0aXRpb247XG5leHBvcnRzLnJlc29sdmVEZWZhdWx0QXdzUmVnaW9uYWxFbmRwb2ludHNDb25maWcgPSByZXNvbHZlRGVmYXVsdEF3c1JlZ2lvbmFsRW5kcG9pbnRzQ29uZmlnO1xuZXhwb3J0cy5zZXRQYXJ0aXRpb25JbmZvID0gc2V0UGFydGl0aW9uSW5mbztcbmV4cG9ydHMudG9FbmRwb2ludFYxID0gdG9FbmRwb2ludFYxO1xuZXhwb3J0cy51c2VEZWZhdWx0UGFydGl0aW9uSW5mbyA9IHVzZURlZmF1bHRQYXJ0aXRpb25JbmZvO1xuIiwgImV4cG9ydCBjb25zdCBzdGF0ZSA9IHtcbiAgICB3YXJuaW5nRW1pdHRlZDogZmFsc2UsXG59O1xuZXhwb3J0IGNvbnN0IGVtaXRXYXJuaW5nSWZVbnN1cHBvcnRlZFZlcnNpb24gPSAodmVyc2lvbikgPT4ge1xuICAgIGlmICh2ZXJzaW9uICYmICFzdGF0ZS53YXJuaW5nRW1pdHRlZCkge1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuQVdTX1NES19KU19OT0RFX1ZFUlNJT05fU1VQUE9SVF9XQVJOSU5HX0RJU0FCTEVEID09PSBcInRydWVcIikge1xuICAgICAgICAgICAgc3RhdGUud2FybmluZ0VtaXR0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHVzZXJNYWpvclZlcnNpb24gPSBwYXJzZUludCh2ZXJzaW9uLnN1YnN0cmluZygxLCB2ZXJzaW9uLmluZGV4T2YoXCIuXCIpKSk7XG4gICAgICAgIGNvbnN0IHZ2ID0gMjI7XG4gICAgICAgIGlmICh1c2VyTWFqb3JWZXJzaW9uIDwgdnYpIHtcbiAgICAgICAgICAgIHN0YXRlLndhcm5pbmdFbWl0dGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHByb2Nlc3MuZW1pdFdhcm5pbmcoYE5vZGVWZXJzaW9uU3VwcG9ydFdhcm5pbmc6IFRoZSBBV1MgU0RLIGZvciBKYXZhU2NyaXB0ICh2MylcbnZlcnNpb25zIHB1Ymxpc2hlZCBhZnRlciB0aGUgZmlyc3Qgd2VlayBvZiBKYW51YXJ5IDIwMjdcbndpbGwgcmVxdWlyZSBub2RlID49JHt2dn0uIFlvdSBhcmUgcnVubmluZyBub2RlICR7dmVyc2lvbn0uXG5cblRvIGNvbnRpbnVlIHJlY2VpdmluZyB1cGRhdGVzIHRvIEFXUyBzZXJ2aWNlcywgYnVnIGZpeGVzLFxuYW5kIHNlY3VyaXR5IHVwZGF0ZXMgcGxlYXNlIHVwZ3JhZGUgdG8gbm9kZSA+PSR7dnZ9LlxuXG5Nb3JlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBhdDogaHR0cHM6Ly9hLmNvL2M4OTVKRnBgKTtcbiAgICAgICAgfVxuICAgIH1cbn07XG4iLCAiZXhwb3J0IGNvbnN0IGxvbmdQb2xsTWlkZGxld2FyZSA9ICgpID0+IChuZXh0LCBjb250ZXh0KSA9PiBhc3luYyAoYXJncykgPT4ge1xuICAgIGNvbnRleHQuX19yZXRyeUxvbmdQb2xsID0gdHJ1ZTtcbiAgICByZXR1cm4gbmV4dChhcmdzKTtcbn07XG5leHBvcnQgY29uc3QgbG9uZ1BvbGxNaWRkbGV3YXJlT3B0aW9ucyA9IHtcbiAgICBuYW1lOiBcImxvbmdQb2xsTWlkZGxld2FyZVwiLFxuICAgIHRhZ3M6IFtcIlJFVFJZXCJdLFxuICAgIHN0ZXA6IFwiaW5pdGlhbGl6ZVwiLFxuICAgIG92ZXJyaWRlOiB0cnVlLFxufTtcbmV4cG9ydCBjb25zdCBnZXRMb25nUG9sbFBsdWdpbiA9IChvcHRpb25zKSA9PiAoe1xuICAgIGFwcGx5VG9TdGFjazogKGNsaWVudFN0YWNrKSA9PiB7XG4gICAgICAgIGNsaWVudFN0YWNrLmFkZChsb25nUG9sbE1pZGRsZXdhcmUoKSwgbG9uZ1BvbGxNaWRkbGV3YXJlT3B0aW9ucyk7XG4gICAgfSxcbn0pO1xuIiwgImV4cG9ydCBmdW5jdGlvbiBzZXRDcmVkZW50aWFsRmVhdHVyZShjcmVkZW50aWFscywgZmVhdHVyZSwgdmFsdWUpIHtcbiAgICBpZiAoIWNyZWRlbnRpYWxzLiRzb3VyY2UpIHtcbiAgICAgICAgY3JlZGVudGlhbHMuJHNvdXJjZSA9IHt9O1xuICAgIH1cbiAgICBjcmVkZW50aWFscy4kc291cmNlW2ZlYXR1cmVdID0gdmFsdWU7XG4gICAgcmV0dXJuIGNyZWRlbnRpYWxzO1xufVxuIiwgImltcG9ydCB7IFJldHJ5IH0gZnJvbSBcIkBzbWl0aHkvdXRpbC1yZXRyeVwiO1xuUmV0cnkudjIwMjYgfHw9IHR5cGVvZiBwcm9jZXNzID09PSBcIm9iamVjdFwiICYmIHByb2Nlc3MuZW52Py5BV1NfTkVXX1JFVFJJRVNfMjAyNiA9PT0gXCJ0cnVlXCI7XG5leHBvcnQgZnVuY3Rpb24gc2V0RmVhdHVyZShjb250ZXh0LCBmZWF0dXJlLCB2YWx1ZSkge1xuICAgIGlmICghY29udGV4dC5fX2F3c19zZGtfY29udGV4dCkge1xuICAgICAgICBjb250ZXh0Ll9fYXdzX3Nka19jb250ZXh0ID0ge1xuICAgICAgICAgICAgZmVhdHVyZXM6IHt9LFxuICAgICAgICB9O1xuICAgIH1cbiAgICBlbHNlIGlmICghY29udGV4dC5fX2F3c19zZGtfY29udGV4dC5mZWF0dXJlcykge1xuICAgICAgICBjb250ZXh0Ll9fYXdzX3Nka19jb250ZXh0LmZlYXR1cmVzID0ge307XG4gICAgfVxuICAgIGNvbnRleHQuX19hd3Nfc2RrX2NvbnRleHQuZmVhdHVyZXNbZmVhdHVyZV0gPSB2YWx1ZTtcbn1cbiIsICJleHBvcnQgZnVuY3Rpb24gc2V0VG9rZW5GZWF0dXJlKHRva2VuLCBmZWF0dXJlLCB2YWx1ZSkge1xuICAgIGlmICghdG9rZW4uJHNvdXJjZSkge1xuICAgICAgICB0b2tlbi4kc291cmNlID0ge307XG4gICAgfVxuICAgIHRva2VuLiRzb3VyY2VbZmVhdHVyZV0gPSB2YWx1ZTtcbiAgICByZXR1cm4gdG9rZW47XG59XG4iLCAiZXhwb3J0ICogZnJvbSBcIi4vZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvblwiO1xuZXhwb3J0IHsgZ2V0TG9uZ1BvbGxQbHVnaW4gfSBmcm9tIFwiLi9sb25nUG9sbE1pZGRsZXdhcmVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NldENyZWRlbnRpYWxGZWF0dXJlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zZXRGZWF0dXJlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zZXRUb2tlbkZlYXR1cmVcIjtcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBjb3JlID0gcmVxdWlyZSgnQHNtaXRoeS9jb3JlJyk7XG52YXIgdXRpbEVuZHBvaW50cyA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL3V0aWwtZW5kcG9pbnRzJyk7XG52YXIgcHJvdG9jb2xIdHRwID0gcmVxdWlyZSgnQHNtaXRoeS9wcm90b2NvbC1odHRwJyk7XG52YXIgY2xpZW50ID0gcmVxdWlyZSgnQGF3cy1zZGsvY29yZS9jbGllbnQnKTtcbnZhciB1dGlsUmV0cnkgPSByZXF1aXJlKCdAc21pdGh5L3V0aWwtcmV0cnknKTtcblxuY29uc3QgREVGQVVMVF9VQV9BUFBfSUQgPSB1bmRlZmluZWQ7XG5mdW5jdGlvbiBpc1ZhbGlkVXNlckFnZW50QXBwSWQoYXBwSWQpIHtcbiAgICBpZiAoYXBwSWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIHR5cGVvZiBhcHBJZCA9PT0gXCJzdHJpbmdcIiAmJiBhcHBJZC5sZW5ndGggPD0gNTA7XG59XG5mdW5jdGlvbiByZXNvbHZlVXNlckFnZW50Q29uZmlnKGlucHV0KSB7XG4gICAgY29uc3Qgbm9ybWFsaXplZEFwcElkUHJvdmlkZXIgPSBjb3JlLm5vcm1hbGl6ZVByb3ZpZGVyKGlucHV0LnVzZXJBZ2VudEFwcElkID8/IERFRkFVTFRfVUFfQVBQX0lEKTtcbiAgICBjb25zdCB7IGN1c3RvbVVzZXJBZ2VudCB9ID0gaW5wdXQ7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oaW5wdXQsIHtcbiAgICAgICAgY3VzdG9tVXNlckFnZW50OiB0eXBlb2YgY3VzdG9tVXNlckFnZW50ID09PSBcInN0cmluZ1wiID8gW1tjdXN0b21Vc2VyQWdlbnRdXSA6IGN1c3RvbVVzZXJBZ2VudCxcbiAgICAgICAgdXNlckFnZW50QXBwSWQ6IGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGFwcElkID0gYXdhaXQgbm9ybWFsaXplZEFwcElkUHJvdmlkZXIoKTtcbiAgICAgICAgICAgIGlmICghaXNWYWxpZFVzZXJBZ2VudEFwcElkKGFwcElkKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxvZ2dlciA9IGlucHV0LmxvZ2dlcj8uY29uc3RydWN0b3I/Lm5hbWUgPT09IFwiTm9PcExvZ2dlclwiIHx8ICFpbnB1dC5sb2dnZXIgPyBjb25zb2xlIDogaW5wdXQubG9nZ2VyO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgYXBwSWQgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgbG9nZ2VyPy53YXJuKFwidXNlckFnZW50QXBwSWQgbXVzdCBiZSBhIHN0cmluZyBvciB1bmRlZmluZWQuXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChhcHBJZC5sZW5ndGggPiA1MCkge1xuICAgICAgICAgICAgICAgICAgICBsb2dnZXI/Lndhcm4oXCJUaGUgcHJvdmlkZWQgdXNlckFnZW50QXBwSWQgZXhjZWVkcyB0aGUgbWF4aW11bSBsZW5ndGggb2YgNTAgY2hhcmFjdGVycy5cIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGFwcElkO1xuICAgICAgICB9LFxuICAgIH0pO1xufVxuXG5jb25zdCBBQ0NPVU5UX0lEX0VORFBPSU5UX1JFR0VYID0gL1xcZHsxMn1cXC5kZGIvO1xuYXN5bmMgZnVuY3Rpb24gY2hlY2tGZWF0dXJlcyhjb250ZXh0LCBjb25maWcsIGFyZ3MpIHtcbiAgICBjb25zdCByZXF1ZXN0ID0gYXJncy5yZXF1ZXN0O1xuICAgIGlmIChyZXF1ZXN0Py5oZWFkZXJzPy5bXCJzbWl0aHktcHJvdG9jb2xcIl0gPT09IFwicnBjLXYyLWNib3JcIikge1xuICAgICAgICBjbGllbnQuc2V0RmVhdHVyZShjb250ZXh0LCBcIlBST1RPQ09MX1JQQ19WMl9DQk9SXCIsIFwiTVwiKTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBjb25maWcucmV0cnlTdHJhdGVneSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIGNvbnN0IHJldHJ5U3RyYXRlZ3kgPSBhd2FpdCBjb25maWcucmV0cnlTdHJhdGVneSgpO1xuICAgICAgICBpZiAodHlwZW9mIHJldHJ5U3RyYXRlZ3kubW9kZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgc3dpdGNoIChyZXRyeVN0cmF0ZWd5Lm1vZGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIHV0aWxSZXRyeS5SRVRSWV9NT0RFUy5BREFQVElWRTpcbiAgICAgICAgICAgICAgICAgICAgY2xpZW50LnNldEZlYXR1cmUoY29udGV4dCwgXCJSRVRSWV9NT0RFX0FEQVBUSVZFXCIsIFwiRlwiKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSB1dGlsUmV0cnkuUkVUUllfTU9ERVMuU1RBTkRBUkQ6XG4gICAgICAgICAgICAgICAgICAgIGNsaWVudC5zZXRGZWF0dXJlKGNvbnRleHQsIFwiUkVUUllfTU9ERV9TVEFOREFSRFwiLCBcIkVcIik7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGlmICh0eXBlb2YgY29uZmlnLmFjY291bnRJZEVuZHBvaW50TW9kZSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50VjIgPSBjb250ZXh0LmVuZHBvaW50VjI7XG4gICAgICAgIGlmIChTdHJpbmcoZW5kcG9pbnRWMj8udXJsPy5ob3N0bmFtZSkubWF0Y2goQUNDT1VOVF9JRF9FTkRQT0lOVF9SRUdFWCkpIHtcbiAgICAgICAgICAgIGNsaWVudC5zZXRGZWF0dXJlKGNvbnRleHQsIFwiQUNDT1VOVF9JRF9FTkRQT0lOVFwiLCBcIk9cIik7XG4gICAgICAgIH1cbiAgICAgICAgc3dpdGNoIChhd2FpdCBjb25maWcuYWNjb3VudElkRW5kcG9pbnRNb2RlPy4oKSkge1xuICAgICAgICAgICAgY2FzZSBcImRpc2FibGVkXCI6XG4gICAgICAgICAgICAgICAgY2xpZW50LnNldEZlYXR1cmUoY29udGV4dCwgXCJBQ0NPVU5UX0lEX01PREVfRElTQUJMRURcIiwgXCJRXCIpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBcInByZWZlcnJlZFwiOlxuICAgICAgICAgICAgICAgIGNsaWVudC5zZXRGZWF0dXJlKGNvbnRleHQsIFwiQUNDT1VOVF9JRF9NT0RFX1BSRUZFUlJFRFwiLCBcIlBcIik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFwicmVxdWlyZWRcIjpcbiAgICAgICAgICAgICAgICBjbGllbnQuc2V0RmVhdHVyZShjb250ZXh0LCBcIkFDQ09VTlRfSURfTU9ERV9SRVFVSVJFRFwiLCBcIlJcIik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgaWRlbnRpdHkgPSBjb250ZXh0Ll9fc21pdGh5X2NvbnRleHQ/LnNlbGVjdGVkSHR0cEF1dGhTY2hlbWU/LmlkZW50aXR5O1xuICAgIGlmIChpZGVudGl0eT8uJHNvdXJjZSkge1xuICAgICAgICBjb25zdCBjcmVkZW50aWFscyA9IGlkZW50aXR5O1xuICAgICAgICBpZiAoY3JlZGVudGlhbHMuYWNjb3VudElkKSB7XG4gICAgICAgICAgICBjbGllbnQuc2V0RmVhdHVyZShjb250ZXh0LCBcIlJFU09MVkVEX0FDQ09VTlRfSURcIiwgXCJUXCIpO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKGNyZWRlbnRpYWxzLiRzb3VyY2UgPz8ge30pKSB7XG4gICAgICAgICAgICBjbGllbnQuc2V0RmVhdHVyZShjb250ZXh0LCBrZXksIHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuY29uc3QgVVNFUl9BR0VOVCA9IFwidXNlci1hZ2VudFwiO1xuY29uc3QgWF9BTVpfVVNFUl9BR0VOVCA9IFwieC1hbXotdXNlci1hZ2VudFwiO1xuY29uc3QgU1BBQ0UgPSBcIiBcIjtcbmNvbnN0IFVBX05BTUVfU0VQQVJBVE9SID0gXCIvXCI7XG5jb25zdCBVQV9OQU1FX0VTQ0FQRV9SRUdFWCA9IC9bXiEkJSYnKitcXC0uXl9gfH5cXHddL2c7XG5jb25zdCBVQV9WQUxVRV9FU0NBUEVfUkVHRVggPSAvW14hJCUmJyorXFwtLl5fYHx+XFx3I10vZztcbmNvbnN0IFVBX0VTQ0FQRV9DSEFSID0gXCItXCI7XG5cbmNvbnN0IEJZVEVfTElNSVQgPSAxMDI0O1xuZnVuY3Rpb24gZW5jb2RlRmVhdHVyZXMoZmVhdHVyZXMpIHtcbiAgICBsZXQgYnVmZmVyID0gXCJcIjtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBmZWF0dXJlcykge1xuICAgICAgICBjb25zdCB2YWwgPSBmZWF0dXJlc1trZXldO1xuICAgICAgICBpZiAoYnVmZmVyLmxlbmd0aCArIHZhbC5sZW5ndGggKyAxIDw9IEJZVEVfTElNSVQpIHtcbiAgICAgICAgICAgIGlmIChidWZmZXIubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgYnVmZmVyICs9IFwiLFwiICsgdmFsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgYnVmZmVyICs9IHZhbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICByZXR1cm4gYnVmZmVyO1xufVxuXG5jb25zdCB1c2VyQWdlbnRNaWRkbGV3YXJlID0gKG9wdGlvbnMpID0+IChuZXh0LCBjb250ZXh0KSA9PiBhc3luYyAoYXJncykgPT4ge1xuICAgIGNvbnN0IHsgcmVxdWVzdCB9ID0gYXJncztcbiAgICBpZiAoIXByb3RvY29sSHR0cC5IdHRwUmVxdWVzdC5pc0luc3RhbmNlKHJlcXVlc3QpKSB7XG4gICAgICAgIHJldHVybiBuZXh0KGFyZ3MpO1xuICAgIH1cbiAgICBjb25zdCB7IGhlYWRlcnMgfSA9IHJlcXVlc3Q7XG4gICAgY29uc3QgdXNlckFnZW50ID0gY29udGV4dD8udXNlckFnZW50Py5tYXAoZXNjYXBlVXNlckFnZW50KSB8fCBbXTtcbiAgICBjb25zdCBkZWZhdWx0VXNlckFnZW50ID0gKGF3YWl0IG9wdGlvbnMuZGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyKCkpLm1hcChlc2NhcGVVc2VyQWdlbnQpO1xuICAgIGF3YWl0IGNoZWNrRmVhdHVyZXMoY29udGV4dCwgb3B0aW9ucywgYXJncyk7XG4gICAgY29uc3QgYXdzQ29udGV4dCA9IGNvbnRleHQ7XG4gICAgZGVmYXVsdFVzZXJBZ2VudC5wdXNoKGBtLyR7ZW5jb2RlRmVhdHVyZXMoT2JqZWN0LmFzc2lnbih7fSwgY29udGV4dC5fX3NtaXRoeV9jb250ZXh0Py5mZWF0dXJlcywgYXdzQ29udGV4dC5fX2F3c19zZGtfY29udGV4dD8uZmVhdHVyZXMpKX1gKTtcbiAgICBjb25zdCBjdXN0b21Vc2VyQWdlbnQgPSBvcHRpb25zPy5jdXN0b21Vc2VyQWdlbnQ/Lm1hcChlc2NhcGVVc2VyQWdlbnQpIHx8IFtdO1xuICAgIGNvbnN0IGFwcElkID0gYXdhaXQgb3B0aW9ucy51c2VyQWdlbnRBcHBJZCgpO1xuICAgIGlmIChhcHBJZCkge1xuICAgICAgICBkZWZhdWx0VXNlckFnZW50LnB1c2goZXNjYXBlVXNlckFnZW50KFtgYXBwYCwgYCR7YXBwSWR9YF0pKTtcbiAgICB9XG4gICAgY29uc3QgcHJlZml4ID0gdXRpbEVuZHBvaW50cy5nZXRVc2VyQWdlbnRQcmVmaXgoKTtcbiAgICBjb25zdCBzZGtVc2VyQWdlbnRWYWx1ZSA9IChwcmVmaXggPyBbcHJlZml4XSA6IFtdKVxuICAgICAgICAuY29uY2F0KFsuLi5kZWZhdWx0VXNlckFnZW50LCAuLi51c2VyQWdlbnQsIC4uLmN1c3RvbVVzZXJBZ2VudF0pXG4gICAgICAgIC5qb2luKFNQQUNFKTtcbiAgICBjb25zdCBub3JtYWxVQVZhbHVlID0gW1xuICAgICAgICAuLi5kZWZhdWx0VXNlckFnZW50LmZpbHRlcigoc2VjdGlvbikgPT4gc2VjdGlvbi5zdGFydHNXaXRoKFwiYXdzLXNkay1cIikpLFxuICAgICAgICAuLi5jdXN0b21Vc2VyQWdlbnQsXG4gICAgXS5qb2luKFNQQUNFKTtcbiAgICBpZiAob3B0aW9ucy5ydW50aW1lICE9PSBcImJyb3dzZXJcIikge1xuICAgICAgICBpZiAobm9ybWFsVUFWYWx1ZSkge1xuICAgICAgICAgICAgaGVhZGVyc1tYX0FNWl9VU0VSX0FHRU5UXSA9IGhlYWRlcnNbWF9BTVpfVVNFUl9BR0VOVF1cbiAgICAgICAgICAgICAgICA/IGAke2hlYWRlcnNbVVNFUl9BR0VOVF19ICR7bm9ybWFsVUFWYWx1ZX1gXG4gICAgICAgICAgICAgICAgOiBub3JtYWxVQVZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGhlYWRlcnNbVVNFUl9BR0VOVF0gPSBzZGtVc2VyQWdlbnRWYWx1ZTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGhlYWRlcnNbWF9BTVpfVVNFUl9BR0VOVF0gPSBzZGtVc2VyQWdlbnRWYWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIG5leHQoe1xuICAgICAgICAuLi5hcmdzLFxuICAgICAgICByZXF1ZXN0LFxuICAgIH0pO1xufTtcbmNvbnN0IGVzY2FwZVVzZXJBZ2VudCA9ICh1c2VyQWdlbnRQYWlyKSA9PiB7XG4gICAgY29uc3QgbmFtZSA9IHVzZXJBZ2VudFBhaXJbMF1cbiAgICAgICAgLnNwbGl0KFVBX05BTUVfU0VQQVJBVE9SKVxuICAgICAgICAubWFwKChwYXJ0KSA9PiBwYXJ0LnJlcGxhY2UoVUFfTkFNRV9FU0NBUEVfUkVHRVgsIFVBX0VTQ0FQRV9DSEFSKSlcbiAgICAgICAgLmpvaW4oVUFfTkFNRV9TRVBBUkFUT1IpO1xuICAgIGNvbnN0IHZlcnNpb24gPSB1c2VyQWdlbnRQYWlyWzFdPy5yZXBsYWNlKFVBX1ZBTFVFX0VTQ0FQRV9SRUdFWCwgVUFfRVNDQVBFX0NIQVIpO1xuICAgIGNvbnN0IHByZWZpeFNlcGFyYXRvckluZGV4ID0gbmFtZS5pbmRleE9mKFVBX05BTUVfU0VQQVJBVE9SKTtcbiAgICBjb25zdCBwcmVmaXggPSBuYW1lLnN1YnN0cmluZygwLCBwcmVmaXhTZXBhcmF0b3JJbmRleCk7XG4gICAgbGV0IHVhTmFtZSA9IG5hbWUuc3Vic3RyaW5nKHByZWZpeFNlcGFyYXRvckluZGV4ICsgMSk7XG4gICAgaWYgKHByZWZpeCA9PT0gXCJhcGlcIikge1xuICAgICAgICB1YU5hbWUgPSB1YU5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICB9XG4gICAgcmV0dXJuIFtwcmVmaXgsIHVhTmFtZSwgdmVyc2lvbl1cbiAgICAgICAgLmZpbHRlcigoaXRlbSkgPT4gaXRlbSAmJiBpdGVtLmxlbmd0aCA+IDApXG4gICAgICAgIC5yZWR1Y2UoKGFjYywgaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgc3dpdGNoIChpbmRleCkge1xuICAgICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgICAgIHJldHVybiBpdGVtO1xuICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgIHJldHVybiBgJHthY2N9LyR7aXRlbX1gO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gYCR7YWNjfSMke2l0ZW19YDtcbiAgICAgICAgfVxuICAgIH0sIFwiXCIpO1xufTtcbmNvbnN0IGdldFVzZXJBZ2VudE1pZGRsZXdhcmVPcHRpb25zID0ge1xuICAgIG5hbWU6IFwiZ2V0VXNlckFnZW50TWlkZGxld2FyZVwiLFxuICAgIHN0ZXA6IFwiYnVpbGRcIixcbiAgICBwcmlvcml0eTogXCJsb3dcIixcbiAgICB0YWdzOiBbXCJTRVRfVVNFUl9BR0VOVFwiLCBcIlVTRVJfQUdFTlRcIl0sXG4gICAgb3ZlcnJpZGU6IHRydWUsXG59O1xuY29uc3QgZ2V0VXNlckFnZW50UGx1Z2luID0gKGNvbmZpZykgPT4gKHtcbiAgICBhcHBseVRvU3RhY2s6IChjbGllbnRTdGFjaykgPT4ge1xuICAgICAgICBjbGllbnRTdGFjay5hZGQodXNlckFnZW50TWlkZGxld2FyZShjb25maWcpLCBnZXRVc2VyQWdlbnRNaWRkbGV3YXJlT3B0aW9ucyk7XG4gICAgfSxcbn0pO1xuXG5leHBvcnRzLkRFRkFVTFRfVUFfQVBQX0lEID0gREVGQVVMVF9VQV9BUFBfSUQ7XG5leHBvcnRzLmdldFVzZXJBZ2VudE1pZGRsZXdhcmVPcHRpb25zID0gZ2V0VXNlckFnZW50TWlkZGxld2FyZU9wdGlvbnM7XG5leHBvcnRzLmdldFVzZXJBZ2VudFBsdWdpbiA9IGdldFVzZXJBZ2VudFBsdWdpbjtcbmV4cG9ydHMucmVzb2x2ZVVzZXJBZ2VudENvbmZpZyA9IHJlc29sdmVVc2VyQWdlbnRDb25maWc7XG5leHBvcnRzLnVzZXJBZ2VudE1pZGRsZXdhcmUgPSB1c2VyQWdlbnRNaWRkbGV3YXJlO1xuIiwgImltcG9ydCB7IEh0dHBSZXNwb25zZSB9IGZyb20gXCJAc21pdGh5L3Byb3RvY29sLWh0dHBcIjtcbmV4cG9ydCBjb25zdCBnZXREYXRlSGVhZGVyID0gKHJlc3BvbnNlKSA9PiBIdHRwUmVzcG9uc2UuaXNJbnN0YW5jZShyZXNwb25zZSkgPyByZXNwb25zZS5oZWFkZXJzPy5kYXRlID8/IHJlc3BvbnNlLmhlYWRlcnM/LkRhdGUgOiB1bmRlZmluZWQ7XG4iLCAiZXhwb3J0IGNvbnN0IGdldFNrZXdDb3JyZWN0ZWREYXRlID0gKHN5c3RlbUNsb2NrT2Zmc2V0KSA9PiBuZXcgRGF0ZShEYXRlLm5vdygpICsgc3lzdGVtQ2xvY2tPZmZzZXQpO1xuIiwgImltcG9ydCB7IGdldFNrZXdDb3JyZWN0ZWREYXRlIH0gZnJvbSBcIi4vZ2V0U2tld0NvcnJlY3RlZERhdGVcIjtcbmV4cG9ydCBjb25zdCBpc0Nsb2NrU2tld2VkID0gKGNsb2NrVGltZSwgc3lzdGVtQ2xvY2tPZmZzZXQpID0+IE1hdGguYWJzKGdldFNrZXdDb3JyZWN0ZWREYXRlKHN5c3RlbUNsb2NrT2Zmc2V0KS5nZXRUaW1lKCkgLSBjbG9ja1RpbWUpID49IDMwMDAwMDtcbiIsICJpbXBvcnQgeyBpc0Nsb2NrU2tld2VkIH0gZnJvbSBcIi4vaXNDbG9ja1NrZXdlZFwiO1xuZXhwb3J0IGNvbnN0IGdldFVwZGF0ZWRTeXN0ZW1DbG9ja09mZnNldCA9IChjbG9ja1RpbWUsIGN1cnJlbnRTeXN0ZW1DbG9ja09mZnNldCkgPT4ge1xuICAgIGNvbnN0IGNsb2NrVGltZUluTXMgPSBEYXRlLnBhcnNlKGNsb2NrVGltZSk7XG4gICAgaWYgKGlzQ2xvY2tTa2V3ZWQoY2xvY2tUaW1lSW5NcywgY3VycmVudFN5c3RlbUNsb2NrT2Zmc2V0KSkge1xuICAgICAgICByZXR1cm4gY2xvY2tUaW1lSW5NcyAtIERhdGUubm93KCk7XG4gICAgfVxuICAgIHJldHVybiBjdXJyZW50U3lzdGVtQ2xvY2tPZmZzZXQ7XG59O1xuIiwgImV4cG9ydCAqIGZyb20gXCIuL2dldERhdGVIZWFkZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2dldFNrZXdDb3JyZWN0ZWREYXRlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9nZXRVcGRhdGVkU3lzdGVtQ2xvY2tPZmZzZXRcIjtcbiIsICJpbXBvcnQgeyBIdHRwUmVxdWVzdCB9IGZyb20gXCJAc21pdGh5L3Byb3RvY29sLWh0dHBcIjtcbmltcG9ydCB7IGdldERhdGVIZWFkZXIsIGdldFNrZXdDb3JyZWN0ZWREYXRlLCBnZXRVcGRhdGVkU3lzdGVtQ2xvY2tPZmZzZXQgfSBmcm9tIFwiLi4vdXRpbHNcIjtcbmNvbnN0IHRocm93U2lnbmluZ1Byb3BlcnR5RXJyb3IgPSAobmFtZSwgcHJvcGVydHkpID0+IHtcbiAgICBpZiAoIXByb3BlcnR5KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgUHJvcGVydHkgXFxgJHtuYW1lfVxcYCBpcyBub3QgcmVzb2x2ZWQgZm9yIEFXUyBTREsgU2lnVjRBdXRoYCk7XG4gICAgfVxuICAgIHJldHVybiBwcm9wZXJ0eTtcbn07XG5leHBvcnQgY29uc3QgdmFsaWRhdGVTaWduaW5nUHJvcGVydGllcyA9IGFzeW5jIChzaWduaW5nUHJvcGVydGllcykgPT4ge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aHJvd1NpZ25pbmdQcm9wZXJ0eUVycm9yKFwiY29udGV4dFwiLCBzaWduaW5nUHJvcGVydGllcy5jb250ZXh0KTtcbiAgICBjb25zdCBjb25maWcgPSB0aHJvd1NpZ25pbmdQcm9wZXJ0eUVycm9yKFwiY29uZmlnXCIsIHNpZ25pbmdQcm9wZXJ0aWVzLmNvbmZpZyk7XG4gICAgY29uc3QgYXV0aFNjaGVtZSA9IGNvbnRleHQuZW5kcG9pbnRWMj8ucHJvcGVydGllcz8uYXV0aFNjaGVtZXM/LlswXTtcbiAgICBjb25zdCBzaWduZXJGdW5jdGlvbiA9IHRocm93U2lnbmluZ1Byb3BlcnR5RXJyb3IoXCJzaWduZXJcIiwgY29uZmlnLnNpZ25lcik7XG4gICAgY29uc3Qgc2lnbmVyID0gYXdhaXQgc2lnbmVyRnVuY3Rpb24oYXV0aFNjaGVtZSk7XG4gICAgY29uc3Qgc2lnbmluZ1JlZ2lvbiA9IHNpZ25pbmdQcm9wZXJ0aWVzPy5zaWduaW5nUmVnaW9uO1xuICAgIGNvbnN0IHNpZ25pbmdSZWdpb25TZXQgPSBzaWduaW5nUHJvcGVydGllcz8uc2lnbmluZ1JlZ2lvblNldDtcbiAgICBjb25zdCBzaWduaW5nTmFtZSA9IHNpZ25pbmdQcm9wZXJ0aWVzPy5zaWduaW5nTmFtZTtcbiAgICByZXR1cm4ge1xuICAgICAgICBjb25maWcsXG4gICAgICAgIHNpZ25lcixcbiAgICAgICAgc2lnbmluZ1JlZ2lvbixcbiAgICAgICAgc2lnbmluZ1JlZ2lvblNldCxcbiAgICAgICAgc2lnbmluZ05hbWUsXG4gICAgfTtcbn07XG5leHBvcnQgY2xhc3MgQXdzU2RrU2lnVjRTaWduZXIge1xuICAgIGFzeW5jIHNpZ24oaHR0cFJlcXVlc3QsIGlkZW50aXR5LCBzaWduaW5nUHJvcGVydGllcykge1xuICAgICAgICBpZiAoIUh0dHBSZXF1ZXN0LmlzSW5zdGFuY2UoaHR0cFJlcXVlc3QpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJUaGUgcmVxdWVzdCBpcyBub3QgYW4gaW5zdGFuY2Ugb2YgYEh0dHBSZXF1ZXN0YCBhbmQgY2Fubm90IGJlIHNpZ25lZFwiKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB2YWxpZGF0ZWRQcm9wcyA9IGF3YWl0IHZhbGlkYXRlU2lnbmluZ1Byb3BlcnRpZXMoc2lnbmluZ1Byb3BlcnRpZXMpO1xuICAgICAgICBjb25zdCB7IGNvbmZpZywgc2lnbmVyIH0gPSB2YWxpZGF0ZWRQcm9wcztcbiAgICAgICAgbGV0IHsgc2lnbmluZ1JlZ2lvbiwgc2lnbmluZ05hbWUgfSA9IHZhbGlkYXRlZFByb3BzO1xuICAgICAgICBjb25zdCBoYW5kbGVyRXhlY3V0aW9uQ29udGV4dCA9IHNpZ25pbmdQcm9wZXJ0aWVzLmNvbnRleHQ7XG4gICAgICAgIGlmIChoYW5kbGVyRXhlY3V0aW9uQ29udGV4dD8uYXV0aFNjaGVtZXM/Lmxlbmd0aCA/PyAwID4gMSkge1xuICAgICAgICAgICAgY29uc3QgW2ZpcnN0LCBzZWNvbmRdID0gaGFuZGxlckV4ZWN1dGlvbkNvbnRleHQuYXV0aFNjaGVtZXM7XG4gICAgICAgICAgICBpZiAoZmlyc3Q/Lm5hbWUgPT09IFwic2lndjRhXCIgJiYgc2Vjb25kPy5uYW1lID09PSBcInNpZ3Y0XCIpIHtcbiAgICAgICAgICAgICAgICBzaWduaW5nUmVnaW9uID0gc2Vjb25kPy5zaWduaW5nUmVnaW9uID8/IHNpZ25pbmdSZWdpb247XG4gICAgICAgICAgICAgICAgc2lnbmluZ05hbWUgPSBzZWNvbmQ/LnNpZ25pbmdOYW1lID8/IHNpZ25pbmdOYW1lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNpZ25lZFJlcXVlc3QgPSBhd2FpdCBzaWduZXIuc2lnbihodHRwUmVxdWVzdCwge1xuICAgICAgICAgICAgc2lnbmluZ0RhdGU6IGdldFNrZXdDb3JyZWN0ZWREYXRlKGNvbmZpZy5zeXN0ZW1DbG9ja09mZnNldCksXG4gICAgICAgICAgICBzaWduaW5nUmVnaW9uOiBzaWduaW5nUmVnaW9uLFxuICAgICAgICAgICAgc2lnbmluZ1NlcnZpY2U6IHNpZ25pbmdOYW1lLFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHNpZ25lZFJlcXVlc3Q7XG4gICAgfVxuICAgIGVycm9ySGFuZGxlcihzaWduaW5nUHJvcGVydGllcykge1xuICAgICAgICByZXR1cm4gKGVycm9yKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzZXJ2ZXJUaW1lID0gZXJyb3IuU2VydmVyVGltZSA/PyBnZXREYXRlSGVhZGVyKGVycm9yLiRyZXNwb25zZSk7XG4gICAgICAgICAgICBpZiAoc2VydmVyVGltZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHRocm93U2lnbmluZ1Byb3BlcnR5RXJyb3IoXCJjb25maWdcIiwgc2lnbmluZ1Byb3BlcnRpZXMuY29uZmlnKTtcbiAgICAgICAgICAgICAgICBjb25zdCBpbml0aWFsU3lzdGVtQ2xvY2tPZmZzZXQgPSBjb25maWcuc3lzdGVtQ2xvY2tPZmZzZXQ7XG4gICAgICAgICAgICAgICAgY29uZmlnLnN5c3RlbUNsb2NrT2Zmc2V0ID0gZ2V0VXBkYXRlZFN5c3RlbUNsb2NrT2Zmc2V0KHNlcnZlclRpbWUsIGNvbmZpZy5zeXN0ZW1DbG9ja09mZnNldCk7XG4gICAgICAgICAgICAgICAgY29uc3QgY2xvY2tTa2V3Q29ycmVjdGVkID0gY29uZmlnLnN5c3RlbUNsb2NrT2Zmc2V0ICE9PSBpbml0aWFsU3lzdGVtQ2xvY2tPZmZzZXQ7XG4gICAgICAgICAgICAgICAgaWYgKGNsb2NrU2tld0NvcnJlY3RlZCAmJiBlcnJvci4kbWV0YWRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgZXJyb3IuJG1ldGFkYXRhLmNsb2NrU2tld0NvcnJlY3RlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH07XG4gICAgfVxuICAgIHN1Y2Nlc3NIYW5kbGVyKGh0dHBSZXNwb25zZSwgc2lnbmluZ1Byb3BlcnRpZXMpIHtcbiAgICAgICAgY29uc3QgZGF0ZUhlYWRlciA9IGdldERhdGVIZWFkZXIoaHR0cFJlc3BvbnNlKTtcbiAgICAgICAgaWYgKGRhdGVIZWFkZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHRocm93U2lnbmluZ1Byb3BlcnR5RXJyb3IoXCJjb25maWdcIiwgc2lnbmluZ1Byb3BlcnRpZXMuY29uZmlnKTtcbiAgICAgICAgICAgIGNvbmZpZy5zeXN0ZW1DbG9ja09mZnNldCA9IGdldFVwZGF0ZWRTeXN0ZW1DbG9ja09mZnNldChkYXRlSGVhZGVyLCBjb25maWcuc3lzdGVtQ2xvY2tPZmZzZXQpO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0IGNvbnN0IEFXU1NES1NpZ1Y0U2lnbmVyID0gQXdzU2RrU2lnVjRTaWduZXI7XG4iLCAiaW1wb3J0IHsgSHR0cFJlcXVlc3QgfSBmcm9tIFwiQHNtaXRoeS9wcm90b2NvbC1odHRwXCI7XG5pbXBvcnQgeyBnZXRTa2V3Q29ycmVjdGVkRGF0ZSB9IGZyb20gXCIuLi91dGlsc1wiO1xuaW1wb3J0IHsgQXdzU2RrU2lnVjRTaWduZXIsIHZhbGlkYXRlU2lnbmluZ1Byb3BlcnRpZXMgfSBmcm9tIFwiLi9Bd3NTZGtTaWdWNFNpZ25lclwiO1xuZXhwb3J0IGNsYXNzIEF3c1Nka1NpZ1Y0QVNpZ25lciBleHRlbmRzIEF3c1Nka1NpZ1Y0U2lnbmVyIHtcbiAgICBhc3luYyBzaWduKGh0dHBSZXF1ZXN0LCBpZGVudGl0eSwgc2lnbmluZ1Byb3BlcnRpZXMpIHtcbiAgICAgICAgaWYgKCFIdHRwUmVxdWVzdC5pc0luc3RhbmNlKGh0dHBSZXF1ZXN0KSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVGhlIHJlcXVlc3QgaXMgbm90IGFuIGluc3RhbmNlIG9mIGBIdHRwUmVxdWVzdGAgYW5kIGNhbm5vdCBiZSBzaWduZWRcIik7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgeyBjb25maWcsIHNpZ25lciwgc2lnbmluZ1JlZ2lvbiwgc2lnbmluZ1JlZ2lvblNldCwgc2lnbmluZ05hbWUgfSA9IGF3YWl0IHZhbGlkYXRlU2lnbmluZ1Byb3BlcnRpZXMoc2lnbmluZ1Byb3BlcnRpZXMpO1xuICAgICAgICBjb25zdCBjb25maWdSZXNvbHZlZFNpZ25pbmdSZWdpb25TZXQgPSBhd2FpdCBjb25maWcuc2lndjRhU2lnbmluZ1JlZ2lvblNldD8uKCk7XG4gICAgICAgIGNvbnN0IG11bHRpUmVnaW9uT3ZlcnJpZGUgPSAoY29uZmlnUmVzb2x2ZWRTaWduaW5nUmVnaW9uU2V0ID8/XG4gICAgICAgICAgICBzaWduaW5nUmVnaW9uU2V0ID8/IFtzaWduaW5nUmVnaW9uXSkuam9pbihcIixcIik7XG4gICAgICAgIGNvbnN0IHNpZ25lZFJlcXVlc3QgPSBhd2FpdCBzaWduZXIuc2lnbihodHRwUmVxdWVzdCwge1xuICAgICAgICAgICAgc2lnbmluZ0RhdGU6IGdldFNrZXdDb3JyZWN0ZWREYXRlKGNvbmZpZy5zeXN0ZW1DbG9ja09mZnNldCksXG4gICAgICAgICAgICBzaWduaW5nUmVnaW9uOiBtdWx0aVJlZ2lvbk92ZXJyaWRlLFxuICAgICAgICAgICAgc2lnbmluZ1NlcnZpY2U6IHNpZ25pbmdOYW1lLFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHNpZ25lZFJlcXVlc3Q7XG4gICAgfVxufVxuIiwgImV4cG9ydCBjb25zdCBnZXRBcnJheUZvckNvbW1hU2VwYXJhdGVkU3RyaW5nID0gKHN0cikgPT4gdHlwZW9mIHN0ciA9PT0gXCJzdHJpbmdcIiAmJiBzdHIubGVuZ3RoID4gMCA/IHN0ci5zcGxpdChcIixcIikubWFwKChpdGVtKSA9PiBpdGVtLnRyaW0oKSkgOiBbXTtcbiIsICJleHBvcnQgY29uc3QgZ2V0QmVhcmVyVG9rZW5FbnZLZXkgPSAoc2lnbmluZ05hbWUpID0+IGBBV1NfQkVBUkVSX1RPS0VOXyR7c2lnbmluZ05hbWUucmVwbGFjZSgvW1xccy1dL2csIFwiX1wiKS50b1VwcGVyQ2FzZSgpfWA7XG4iLCAiaW1wb3J0IHsgZ2V0QXJyYXlGb3JDb21tYVNlcGFyYXRlZFN0cmluZyB9IGZyb20gXCIuLi91dGlscy9nZXRBcnJheUZvckNvbW1hU2VwYXJhdGVkU3RyaW5nXCI7XG5pbXBvcnQgeyBnZXRCZWFyZXJUb2tlbkVudktleSB9IGZyb20gXCIuLi91dGlscy9nZXRCZWFyZXJUb2tlbkVudktleVwiO1xuY29uc3QgTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX0VOVl9LRVkgPSBcIkFXU19BVVRIX1NDSEVNRV9QUkVGRVJFTkNFXCI7XG5jb25zdCBOT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfQ09ORklHX0tFWSA9IFwiYXV0aF9zY2hlbWVfcHJlZmVyZW5jZVwiO1xuZXhwb3J0IGNvbnN0IE5PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9PUFRJT05TID0ge1xuICAgIGVudmlyb25tZW50VmFyaWFibGVTZWxlY3RvcjogKGVudiwgb3B0aW9ucykgPT4ge1xuICAgICAgICBpZiAob3B0aW9ucz8uc2lnbmluZ05hbWUpIHtcbiAgICAgICAgICAgIGNvbnN0IGJlYXJlclRva2VuS2V5ID0gZ2V0QmVhcmVyVG9rZW5FbnZLZXkob3B0aW9ucy5zaWduaW5nTmFtZSk7XG4gICAgICAgICAgICBpZiAoYmVhcmVyVG9rZW5LZXkgaW4gZW52KVxuICAgICAgICAgICAgICAgIHJldHVybiBbXCJodHRwQmVhcmVyQXV0aFwiXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIShOT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfRU5WX0tFWSBpbiBlbnYpKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgcmV0dXJuIGdldEFycmF5Rm9yQ29tbWFTZXBhcmF0ZWRTdHJpbmcoZW52W05PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9FTlZfS0VZXSk7XG4gICAgfSxcbiAgICBjb25maWdGaWxlU2VsZWN0b3I6IChwcm9maWxlKSA9PiB7XG4gICAgICAgIGlmICghKE5PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9DT05GSUdfS0VZIGluIHByb2ZpbGUpKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgcmV0dXJuIGdldEFycmF5Rm9yQ29tbWFTZXBhcmF0ZWRTdHJpbmcocHJvZmlsZVtOT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfQ09ORklHX0tFWV0pO1xuICAgIH0sXG4gICAgZGVmYXVsdDogW10sXG59O1xuIiwgImltcG9ydCB7IG5vcm1hbGl6ZVByb3ZpZGVyIH0gZnJvbSBcIkBzbWl0aHkvY29yZVwiO1xuaW1wb3J0IHsgUHJvdmlkZXJFcnJvciB9IGZyb20gXCJAc21pdGh5L3Byb3BlcnR5LXByb3ZpZGVyXCI7XG5leHBvcnQgY29uc3QgcmVzb2x2ZUF3c1Nka1NpZ1Y0QUNvbmZpZyA9IChjb25maWcpID0+IHtcbiAgICBjb25maWcuc2lndjRhU2lnbmluZ1JlZ2lvblNldCA9IG5vcm1hbGl6ZVByb3ZpZGVyKGNvbmZpZy5zaWd2NGFTaWduaW5nUmVnaW9uU2V0KTtcbiAgICByZXR1cm4gY29uZmlnO1xufTtcbmV4cG9ydCBjb25zdCBOT0RFX1NJR1Y0QV9DT05GSUdfT1BUSU9OUyA9IHtcbiAgICBlbnZpcm9ubWVudFZhcmlhYmxlU2VsZWN0b3IoZW52KSB7XG4gICAgICAgIGlmIChlbnYuQVdTX1NJR1Y0QV9TSUdOSU5HX1JFR0lPTl9TRVQpIHtcbiAgICAgICAgICAgIHJldHVybiBlbnYuQVdTX1NJR1Y0QV9TSUdOSU5HX1JFR0lPTl9TRVQuc3BsaXQoXCIsXCIpLm1hcCgoXykgPT4gXy50cmltKCkpO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IG5ldyBQcm92aWRlckVycm9yKFwiQVdTX1NJR1Y0QV9TSUdOSU5HX1JFR0lPTl9TRVQgbm90IHNldCBpbiBlbnYuXCIsIHtcbiAgICAgICAgICAgIHRyeU5leHRMaW5rOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICB9LFxuICAgIGNvbmZpZ0ZpbGVTZWxlY3Rvcihwcm9maWxlKSB7XG4gICAgICAgIGlmIChwcm9maWxlLnNpZ3Y0YV9zaWduaW5nX3JlZ2lvbl9zZXQpIHtcbiAgICAgICAgICAgIHJldHVybiAocHJvZmlsZS5zaWd2NGFfc2lnbmluZ19yZWdpb25fc2V0ID8/IFwiXCIpLnNwbGl0KFwiLFwiKS5tYXAoKF8pID0+IF8udHJpbSgpKTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBuZXcgUHJvdmlkZXJFcnJvcihcInNpZ3Y0YV9zaWduaW5nX3JlZ2lvbl9zZXQgbm90IHNldCBpbiBwcm9maWxlLlwiLCB7XG4gICAgICAgICAgICB0cnlOZXh0TGluazogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgfSxcbiAgICBkZWZhdWx0OiB1bmRlZmluZWQsXG59O1xuIiwgImltcG9ydCB7IHNldENyZWRlbnRpYWxGZWF0dXJlIH0gZnJvbSBcIkBhd3Mtc2RrL2NvcmUvY2xpZW50XCI7XG5pbXBvcnQgeyBkb2VzSWRlbnRpdHlSZXF1aXJlUmVmcmVzaCwgaXNJZGVudGl0eUV4cGlyZWQsIG1lbW9pemVJZGVudGl0eVByb3ZpZGVyLCBub3JtYWxpemVQcm92aWRlciwgfSBmcm9tIFwiQHNtaXRoeS9jb3JlXCI7XG5pbXBvcnQgeyBTaWduYXR1cmVWNCB9IGZyb20gXCJAc21pdGh5L3NpZ25hdHVyZS12NFwiO1xuZXhwb3J0IGNvbnN0IHJlc29sdmVBd3NTZGtTaWdWNENvbmZpZyA9IChjb25maWcpID0+IHtcbiAgICBsZXQgaW5wdXRDcmVkZW50aWFscyA9IGNvbmZpZy5jcmVkZW50aWFscztcbiAgICBsZXQgaXNVc2VyU3VwcGxpZWQgPSAhIWNvbmZpZy5jcmVkZW50aWFscztcbiAgICBsZXQgcmVzb2x2ZWRDcmVkZW50aWFscyA9IHVuZGVmaW5lZDtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoY29uZmlnLCBcImNyZWRlbnRpYWxzXCIsIHtcbiAgICAgICAgc2V0KGNyZWRlbnRpYWxzKSB7XG4gICAgICAgICAgICBpZiAoY3JlZGVudGlhbHMgJiYgY3JlZGVudGlhbHMgIT09IGlucHV0Q3JlZGVudGlhbHMgJiYgY3JlZGVudGlhbHMgIT09IHJlc29sdmVkQ3JlZGVudGlhbHMpIHtcbiAgICAgICAgICAgICAgICBpc1VzZXJTdXBwbGllZCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpbnB1dENyZWRlbnRpYWxzID0gY3JlZGVudGlhbHM7XG4gICAgICAgICAgICBjb25zdCBtZW1vaXplZFByb3ZpZGVyID0gbm9ybWFsaXplQ3JlZGVudGlhbFByb3ZpZGVyKGNvbmZpZywge1xuICAgICAgICAgICAgICAgIGNyZWRlbnRpYWxzOiBpbnB1dENyZWRlbnRpYWxzLFxuICAgICAgICAgICAgICAgIGNyZWRlbnRpYWxEZWZhdWx0UHJvdmlkZXI6IGNvbmZpZy5jcmVkZW50aWFsRGVmYXVsdFByb3ZpZGVyLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCBib3VuZFByb3ZpZGVyID0gYmluZENhbGxlckNvbmZpZyhjb25maWcsIG1lbW9pemVkUHJvdmlkZXIpO1xuICAgICAgICAgICAgaWYgKGlzVXNlclN1cHBsaWVkICYmICFib3VuZFByb3ZpZGVyLmF0dHJpYnV0ZWQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpc0NyZWRlbnRpYWxPYmplY3QgPSB0eXBlb2YgaW5wdXRDcmVkZW50aWFscyA9PT0gXCJvYmplY3RcIiAmJiBpbnB1dENyZWRlbnRpYWxzICE9PSBudWxsO1xuICAgICAgICAgICAgICAgIHJlc29sdmVkQ3JlZGVudGlhbHMgPSBhc3luYyAob3B0aW9ucykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjcmVkcyA9IGF3YWl0IGJvdW5kUHJvdmlkZXIob3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGF0dHJpYnV0ZWRDcmVkcyA9IGNyZWRzO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNDcmVkZW50aWFsT2JqZWN0ICYmICghYXR0cmlidXRlZENyZWRzLiRzb3VyY2UgfHwgT2JqZWN0LmtleXMoYXR0cmlidXRlZENyZWRzLiRzb3VyY2UpLmxlbmd0aCA9PT0gMCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzZXRDcmVkZW50aWFsRmVhdHVyZShhdHRyaWJ1dGVkQ3JlZHMsIFwiQ1JFREVOVElBTFNfQ09ERVwiLCBcImVcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGF0dHJpYnV0ZWRDcmVkcztcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIHJlc29sdmVkQ3JlZGVudGlhbHMubWVtb2l6ZWQgPSBib3VuZFByb3ZpZGVyLm1lbW9pemVkO1xuICAgICAgICAgICAgICAgIHJlc29sdmVkQ3JlZGVudGlhbHMuY29uZmlnQm91bmQgPSBib3VuZFByb3ZpZGVyLmNvbmZpZ0JvdW5kO1xuICAgICAgICAgICAgICAgIHJlc29sdmVkQ3JlZGVudGlhbHMuYXR0cmlidXRlZCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXNvbHZlZENyZWRlbnRpYWxzID0gYm91bmRQcm92aWRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZ2V0KCkge1xuICAgICAgICAgICAgcmV0dXJuIHJlc29sdmVkQ3JlZGVudGlhbHM7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICB9KTtcbiAgICBjb25maWcuY3JlZGVudGlhbHMgPSBpbnB1dENyZWRlbnRpYWxzO1xuICAgIGNvbnN0IHsgc2lnbmluZ0VzY2FwZVBhdGggPSB0cnVlLCBzeXN0ZW1DbG9ja09mZnNldCA9IGNvbmZpZy5zeXN0ZW1DbG9ja09mZnNldCB8fCAwLCBzaGEyNTYsIH0gPSBjb25maWc7XG4gICAgbGV0IHNpZ25lcjtcbiAgICBpZiAoY29uZmlnLnNpZ25lcikge1xuICAgICAgICBzaWduZXIgPSBub3JtYWxpemVQcm92aWRlcihjb25maWcuc2lnbmVyKTtcbiAgICB9XG4gICAgZWxzZSBpZiAoY29uZmlnLnJlZ2lvbkluZm9Qcm92aWRlcikge1xuICAgICAgICBzaWduZXIgPSAoKSA9PiBub3JtYWxpemVQcm92aWRlcihjb25maWcucmVnaW9uKSgpXG4gICAgICAgICAgICAudGhlbihhc3luYyAocmVnaW9uKSA9PiBbXG4gICAgICAgICAgICAoYXdhaXQgY29uZmlnLnJlZ2lvbkluZm9Qcm92aWRlcihyZWdpb24sIHtcbiAgICAgICAgICAgICAgICB1c2VGaXBzRW5kcG9pbnQ6IGF3YWl0IGNvbmZpZy51c2VGaXBzRW5kcG9pbnQoKSxcbiAgICAgICAgICAgICAgICB1c2VEdWFsc3RhY2tFbmRwb2ludDogYXdhaXQgY29uZmlnLnVzZUR1YWxzdGFja0VuZHBvaW50KCksXG4gICAgICAgICAgICB9KSkgfHwge30sXG4gICAgICAgICAgICByZWdpb24sXG4gICAgICAgIF0pXG4gICAgICAgICAgICAudGhlbigoW3JlZ2lvbkluZm8sIHJlZ2lvbl0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgc2lnbmluZ1JlZ2lvbiwgc2lnbmluZ1NlcnZpY2UgfSA9IHJlZ2lvbkluZm87XG4gICAgICAgICAgICBjb25maWcuc2lnbmluZ1JlZ2lvbiA9IGNvbmZpZy5zaWduaW5nUmVnaW9uIHx8IHNpZ25pbmdSZWdpb24gfHwgcmVnaW9uO1xuICAgICAgICAgICAgY29uZmlnLnNpZ25pbmdOYW1lID0gY29uZmlnLnNpZ25pbmdOYW1lIHx8IHNpZ25pbmdTZXJ2aWNlIHx8IGNvbmZpZy5zZXJ2aWNlSWQ7XG4gICAgICAgICAgICBjb25zdCBwYXJhbXMgPSB7XG4gICAgICAgICAgICAgICAgLi4uY29uZmlnLFxuICAgICAgICAgICAgICAgIGNyZWRlbnRpYWxzOiBjb25maWcuY3JlZGVudGlhbHMsXG4gICAgICAgICAgICAgICAgcmVnaW9uOiBjb25maWcuc2lnbmluZ1JlZ2lvbixcbiAgICAgICAgICAgICAgICBzZXJ2aWNlOiBjb25maWcuc2lnbmluZ05hbWUsXG4gICAgICAgICAgICAgICAgc2hhMjU2LFxuICAgICAgICAgICAgICAgIHVyaUVzY2FwZVBhdGg6IHNpZ25pbmdFc2NhcGVQYXRoLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGNvbnN0IFNpZ25lckN0b3IgPSBjb25maWcuc2lnbmVyQ29uc3RydWN0b3IgfHwgU2lnbmF0dXJlVjQ7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFNpZ25lckN0b3IocGFyYW1zKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBzaWduZXIgPSBhc3luYyAoYXV0aFNjaGVtZSkgPT4ge1xuICAgICAgICAgICAgYXV0aFNjaGVtZSA9IE9iamVjdC5hc3NpZ24oe30sIHtcbiAgICAgICAgICAgICAgICBuYW1lOiBcInNpZ3Y0XCIsXG4gICAgICAgICAgICAgICAgc2lnbmluZ05hbWU6IGNvbmZpZy5zaWduaW5nTmFtZSB8fCBjb25maWcuZGVmYXVsdFNpZ25pbmdOYW1lLFxuICAgICAgICAgICAgICAgIHNpZ25pbmdSZWdpb246IGF3YWl0IG5vcm1hbGl6ZVByb3ZpZGVyKGNvbmZpZy5yZWdpb24pKCksXG4gICAgICAgICAgICAgICAgcHJvcGVydGllczoge30sXG4gICAgICAgICAgICB9LCBhdXRoU2NoZW1lKTtcbiAgICAgICAgICAgIGNvbnN0IHNpZ25pbmdSZWdpb24gPSBhdXRoU2NoZW1lLnNpZ25pbmdSZWdpb247XG4gICAgICAgICAgICBjb25zdCBzaWduaW5nU2VydmljZSA9IGF1dGhTY2hlbWUuc2lnbmluZ05hbWU7XG4gICAgICAgICAgICBjb25maWcuc2lnbmluZ1JlZ2lvbiA9IGNvbmZpZy5zaWduaW5nUmVnaW9uIHx8IHNpZ25pbmdSZWdpb247XG4gICAgICAgICAgICBjb25maWcuc2lnbmluZ05hbWUgPSBjb25maWcuc2lnbmluZ05hbWUgfHwgc2lnbmluZ1NlcnZpY2UgfHwgY29uZmlnLnNlcnZpY2VJZDtcbiAgICAgICAgICAgIGNvbnN0IHBhcmFtcyA9IHtcbiAgICAgICAgICAgICAgICAuLi5jb25maWcsXG4gICAgICAgICAgICAgICAgY3JlZGVudGlhbHM6IGNvbmZpZy5jcmVkZW50aWFscyxcbiAgICAgICAgICAgICAgICByZWdpb246IGNvbmZpZy5zaWduaW5nUmVnaW9uLFxuICAgICAgICAgICAgICAgIHNlcnZpY2U6IGNvbmZpZy5zaWduaW5nTmFtZSxcbiAgICAgICAgICAgICAgICBzaGEyNTYsXG4gICAgICAgICAgICAgICAgdXJpRXNjYXBlUGF0aDogc2lnbmluZ0VzY2FwZVBhdGgsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY29uc3QgU2lnbmVyQ3RvciA9IGNvbmZpZy5zaWduZXJDb25zdHJ1Y3RvciB8fCBTaWduYXR1cmVWNDtcbiAgICAgICAgICAgIHJldHVybiBuZXcgU2lnbmVyQ3RvcihwYXJhbXMpO1xuICAgICAgICB9O1xuICAgIH1cbiAgICBjb25zdCByZXNvbHZlZENvbmZpZyA9IE9iamVjdC5hc3NpZ24oY29uZmlnLCB7XG4gICAgICAgIHN5c3RlbUNsb2NrT2Zmc2V0LFxuICAgICAgICBzaWduaW5nRXNjYXBlUGF0aCxcbiAgICAgICAgc2lnbmVyLFxuICAgIH0pO1xuICAgIHJldHVybiByZXNvbHZlZENvbmZpZztcbn07XG5leHBvcnQgY29uc3QgcmVzb2x2ZUFXU1NES1NpZ1Y0Q29uZmlnID0gcmVzb2x2ZUF3c1Nka1NpZ1Y0Q29uZmlnO1xuZnVuY3Rpb24gbm9ybWFsaXplQ3JlZGVudGlhbFByb3ZpZGVyKGNvbmZpZywgeyBjcmVkZW50aWFscywgY3JlZGVudGlhbERlZmF1bHRQcm92aWRlciwgfSkge1xuICAgIGxldCBjcmVkZW50aWFsc1Byb3ZpZGVyO1xuICAgIGlmIChjcmVkZW50aWFscykge1xuICAgICAgICBpZiAoIWNyZWRlbnRpYWxzPy5tZW1vaXplZCkge1xuICAgICAgICAgICAgY3JlZGVudGlhbHNQcm92aWRlciA9IG1lbW9pemVJZGVudGl0eVByb3ZpZGVyKGNyZWRlbnRpYWxzLCBpc0lkZW50aXR5RXhwaXJlZCwgZG9lc0lkZW50aXR5UmVxdWlyZVJlZnJlc2gpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY3JlZGVudGlhbHNQcm92aWRlciA9IGNyZWRlbnRpYWxzO1xuICAgICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBpZiAoY3JlZGVudGlhbERlZmF1bHRQcm92aWRlcikge1xuICAgICAgICAgICAgY3JlZGVudGlhbHNQcm92aWRlciA9IG5vcm1hbGl6ZVByb3ZpZGVyKGNyZWRlbnRpYWxEZWZhdWx0UHJvdmlkZXIoT2JqZWN0LmFzc2lnbih7fSwgY29uZmlnLCB7XG4gICAgICAgICAgICAgICAgcGFyZW50Q2xpZW50Q29uZmlnOiBjb25maWcsXG4gICAgICAgICAgICB9KSkpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY3JlZGVudGlhbHNQcm92aWRlciA9IGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJAYXdzLXNkay9jb3JlOjpyZXNvbHZlQXdzU2RrU2lnVjRDb25maWcgLSBgY3JlZGVudGlhbHNgIG5vdCBwcm92aWRlZCBhbmQgbm8gY3JlZGVudGlhbERlZmF1bHRQcm92aWRlciB3YXMgY29uZmlndXJlZC5cIik7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfVxuICAgIGNyZWRlbnRpYWxzUHJvdmlkZXIubWVtb2l6ZWQgPSB0cnVlO1xuICAgIHJldHVybiBjcmVkZW50aWFsc1Byb3ZpZGVyO1xufVxuZnVuY3Rpb24gYmluZENhbGxlckNvbmZpZyhjb25maWcsIGNyZWRlbnRpYWxzUHJvdmlkZXIpIHtcbiAgICBpZiAoY3JlZGVudGlhbHNQcm92aWRlci5jb25maWdCb3VuZCkge1xuICAgICAgICByZXR1cm4gY3JlZGVudGlhbHNQcm92aWRlcjtcbiAgICB9XG4gICAgY29uc3QgZm4gPSBhc3luYyAob3B0aW9ucykgPT4gY3JlZGVudGlhbHNQcm92aWRlcih7IC4uLm9wdGlvbnMsIGNhbGxlckNsaWVudENvbmZpZzogY29uZmlnIH0pO1xuICAgIGZuLm1lbW9pemVkID0gY3JlZGVudGlhbHNQcm92aWRlci5tZW1vaXplZDtcbiAgICBmbi5jb25maWdCb3VuZCA9IHRydWU7XG4gICAgcmV0dXJuIGZuO1xufVxuIiwgImV4cG9ydCB7IEF3c1Nka1NpZ1Y0U2lnbmVyLCBBV1NTREtTaWdWNFNpZ25lciwgdmFsaWRhdGVTaWduaW5nUHJvcGVydGllcyB9IGZyb20gXCIuL0F3c1Nka1NpZ1Y0U2lnbmVyXCI7XG5leHBvcnQgeyBBd3NTZGtTaWdWNEFTaWduZXIgfSBmcm9tIFwiLi9Bd3NTZGtTaWdWNEFTaWduZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL05PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9PUFRJT05TXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9yZXNvbHZlQXdzU2RrU2lnVjRBQ29uZmlnXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9yZXNvbHZlQXdzU2RrU2lnVjRDb25maWdcIjtcbiIsICJleHBvcnQgKiBmcm9tIFwiLi9hd3Nfc2RrXCI7XG5leHBvcnQgKiBmcm9tIFwiLi91dGlscy9nZXRCZWFyZXJUb2tlbkVudktleVwiO1xuIiwgImltcG9ydCB7IE5vcm1hbGl6ZWRTY2hlbWEsIFR5cGVSZWdpc3RyeSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2NoZW1hXCI7XG5pbXBvcnQgeyBkZWNvcmF0ZVNlcnZpY2VFeGNlcHRpb24gfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5leHBvcnQgY2xhc3MgUHJvdG9jb2xMaWIge1xuICAgIHF1ZXJ5Q29tcGF0O1xuICAgIGVycm9yUmVnaXN0cnk7XG4gICAgY29uc3RydWN0b3IocXVlcnlDb21wYXQgPSBmYWxzZSkge1xuICAgICAgICB0aGlzLnF1ZXJ5Q29tcGF0ID0gcXVlcnlDb21wYXQ7XG4gICAgfVxuICAgIHJlc29sdmVSZXN0Q29udGVudFR5cGUoZGVmYXVsdENvbnRlbnRUeXBlLCBpbnB1dFNjaGVtYSkge1xuICAgICAgICBjb25zdCBtZW1iZXJzID0gaW5wdXRTY2hlbWEuZ2V0TWVtYmVyU2NoZW1hcygpO1xuICAgICAgICBjb25zdCBodHRwUGF5bG9hZE1lbWJlciA9IE9iamVjdC52YWx1ZXMobWVtYmVycykuZmluZCgobSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuICEhbS5nZXRNZXJnZWRUcmFpdHMoKS5odHRwUGF5bG9hZDtcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChodHRwUGF5bG9hZE1lbWJlcikge1xuICAgICAgICAgICAgY29uc3QgbWVkaWFUeXBlID0gaHR0cFBheWxvYWRNZW1iZXIuZ2V0TWVyZ2VkVHJhaXRzKCkubWVkaWFUeXBlO1xuICAgICAgICAgICAgaWYgKG1lZGlhVHlwZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBtZWRpYVR5cGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChodHRwUGF5bG9hZE1lbWJlci5pc1N0cmluZ1NjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwidGV4dC9wbGFpblwiO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoaHR0cFBheWxvYWRNZW1iZXIuaXNCbG9iU2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW1cIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBkZWZhdWx0Q29udGVudFR5cGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoIWlucHV0U2NoZW1hLmlzVW5pdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICBjb25zdCBoYXNCb2R5ID0gT2JqZWN0LnZhbHVlcyhtZW1iZXJzKS5maW5kKChtKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBodHRwUXVlcnksIGh0dHBRdWVyeVBhcmFtcywgaHR0cEhlYWRlciwgaHR0cExhYmVsLCBodHRwUHJlZml4SGVhZGVycyB9ID0gbS5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBub1ByZWZpeEhlYWRlcnMgPSBodHRwUHJlZml4SGVhZGVycyA9PT0gdm9pZCAwO1xuICAgICAgICAgICAgICAgIHJldHVybiAhaHR0cFF1ZXJ5ICYmICFodHRwUXVlcnlQYXJhbXMgJiYgIWh0dHBIZWFkZXIgJiYgIWh0dHBMYWJlbCAmJiBub1ByZWZpeEhlYWRlcnM7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmIChoYXNCb2R5KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRDb250ZW50VHlwZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBhc3luYyBnZXRFcnJvclNjaGVtYU9yVGhyb3dCYXNlRXhjZXB0aW9uKGVycm9ySWRlbnRpZmllciwgZGVmYXVsdE5hbWVzcGFjZSwgcmVzcG9uc2UsIGRhdGFPYmplY3QsIG1ldGFkYXRhLCBnZXRFcnJvclNjaGVtYSkge1xuICAgICAgICBsZXQgZXJyb3JOYW1lID0gZXJyb3JJZGVudGlmaWVyO1xuICAgICAgICBpZiAoZXJyb3JJZGVudGlmaWVyLmluY2x1ZGVzKFwiI1wiKSkge1xuICAgICAgICAgICAgWywgZXJyb3JOYW1lXSA9IGVycm9ySWRlbnRpZmllci5zcGxpdChcIiNcIik7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZXJyb3JNZXRhZGF0YSA9IHtcbiAgICAgICAgICAgICRtZXRhZGF0YTogbWV0YWRhdGEsXG4gICAgICAgICAgICAkZmF1bHQ6IHJlc3BvbnNlLnN0YXR1c0NvZGUgPCA1MDAgPyBcImNsaWVudFwiIDogXCJzZXJ2ZXJcIixcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKCF0aGlzLmVycm9yUmVnaXN0cnkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkBhd3Mtc2RrL2NvcmUvcHJvdG9jb2xzIC0gZXJyb3IgaGFuZGxlciBub3QgaW5pdGlhbGl6ZWQuXCIpO1xuICAgICAgICB9XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBlcnJvclNjaGVtYSA9IGdldEVycm9yU2NoZW1hPy4odGhpcy5lcnJvclJlZ2lzdHJ5LCBlcnJvck5hbWUpID8/XG4gICAgICAgICAgICAgICAgdGhpcy5lcnJvclJlZ2lzdHJ5LmdldFNjaGVtYShlcnJvcklkZW50aWZpZXIpO1xuICAgICAgICAgICAgcmV0dXJuIHsgZXJyb3JTY2hlbWEsIGVycm9yTWV0YWRhdGEgfTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgZGF0YU9iamVjdC5tZXNzYWdlID0gZGF0YU9iamVjdC5tZXNzYWdlID8/IGRhdGFPYmplY3QuTWVzc2FnZSA/PyBcIlVua25vd25FcnJvclwiO1xuICAgICAgICAgICAgY29uc3Qgc3ludGhldGljID0gdGhpcy5lcnJvclJlZ2lzdHJ5O1xuICAgICAgICAgICAgY29uc3QgYmFzZUV4Y2VwdGlvblNjaGVtYSA9IHN5bnRoZXRpYy5nZXRCYXNlRXhjZXB0aW9uKCk7XG4gICAgICAgICAgICBpZiAoYmFzZUV4Y2VwdGlvblNjaGVtYSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IEVycm9yQ3RvciA9IHN5bnRoZXRpYy5nZXRFcnJvckN0b3IoYmFzZUV4Y2VwdGlvblNjaGVtYSkgPz8gRXJyb3I7XG4gICAgICAgICAgICAgICAgdGhyb3cgdGhpcy5kZWNvcmF0ZVNlcnZpY2VFeGNlcHRpb24oT2JqZWN0LmFzc2lnbihuZXcgRXJyb3JDdG9yKHsgbmFtZTogZXJyb3JOYW1lIH0pLCBlcnJvck1ldGFkYXRhKSwgZGF0YU9iamVjdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBkID0gZGF0YU9iamVjdDtcbiAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBkPy5tZXNzYWdlID8/IGQ/Lk1lc3NhZ2UgPz8gZD8uRXJyb3I/Lk1lc3NhZ2UgPz8gZD8uRXJyb3I/Lm1lc3NhZ2U7XG4gICAgICAgICAgICB0aHJvdyB0aGlzLmRlY29yYXRlU2VydmljZUV4Y2VwdGlvbihPYmplY3QuYXNzaWduKG5ldyBFcnJvcihtZXNzYWdlKSwge1xuICAgICAgICAgICAgICAgIG5hbWU6IGVycm9yTmFtZSxcbiAgICAgICAgICAgIH0sIGVycm9yTWV0YWRhdGEpLCBkYXRhT2JqZWN0KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjb21wb3NlKGNvbXBvc2l0ZSwgZXJyb3JJZGVudGlmaWVyLCBkZWZhdWx0TmFtZXNwYWNlKSB7XG4gICAgICAgIGxldCBuYW1lc3BhY2UgPSBkZWZhdWx0TmFtZXNwYWNlO1xuICAgICAgICBpZiAoZXJyb3JJZGVudGlmaWVyLmluY2x1ZGVzKFwiI1wiKSkge1xuICAgICAgICAgICAgW25hbWVzcGFjZV0gPSBlcnJvcklkZW50aWZpZXIuc3BsaXQoXCIjXCIpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHN0YXRpY1JlZ2lzdHJ5ID0gVHlwZVJlZ2lzdHJ5LmZvcihuYW1lc3BhY2UpO1xuICAgICAgICBjb25zdCBkZWZhdWx0U3ludGhldGljUmVnaXN0cnkgPSBUeXBlUmVnaXN0cnkuZm9yKFwic21pdGh5LnRzLnNkay5zeW50aGV0aWMuXCIgKyBkZWZhdWx0TmFtZXNwYWNlKTtcbiAgICAgICAgY29tcG9zaXRlLmNvcHlGcm9tKHN0YXRpY1JlZ2lzdHJ5KTtcbiAgICAgICAgY29tcG9zaXRlLmNvcHlGcm9tKGRlZmF1bHRTeW50aGV0aWNSZWdpc3RyeSk7XG4gICAgICAgIHRoaXMuZXJyb3JSZWdpc3RyeSA9IGNvbXBvc2l0ZTtcbiAgICB9XG4gICAgZGVjb3JhdGVTZXJ2aWNlRXhjZXB0aW9uKGV4Y2VwdGlvbiwgYWRkaXRpb25zID0ge30pIHtcbiAgICAgICAgaWYgKHRoaXMucXVlcnlDb21wYXQpIHtcbiAgICAgICAgICAgIGNvbnN0IG1zZyA9IGV4Y2VwdGlvbi5NZXNzYWdlID8/IGFkZGl0aW9ucy5NZXNzYWdlO1xuICAgICAgICAgICAgY29uc3QgZXJyb3IgPSBkZWNvcmF0ZVNlcnZpY2VFeGNlcHRpb24oZXhjZXB0aW9uLCBhZGRpdGlvbnMpO1xuICAgICAgICAgICAgaWYgKG1zZykge1xuICAgICAgICAgICAgICAgIGVycm9yLm1lc3NhZ2UgPSBtc2c7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBlcnJvck9iaiA9IGVycm9yLkVycm9yID8/IHt9O1xuICAgICAgICAgICAgZXJyb3JPYmouVHlwZSA9IGVycm9yLkVycm9yPy5UeXBlO1xuICAgICAgICAgICAgZXJyb3JPYmouQ29kZSA9IGVycm9yLkVycm9yPy5Db2RlO1xuICAgICAgICAgICAgZXJyb3JPYmouTWVzc2FnZSA9IGVycm9yLkVycm9yPy5tZXNzYWdlID8/IGVycm9yLkVycm9yPy5NZXNzYWdlID8/IG1zZztcbiAgICAgICAgICAgIGVycm9yLkVycm9yID0gZXJyb3JPYmo7XG4gICAgICAgICAgICBjb25zdCByZXFJZCA9IGVycm9yLiRtZXRhZGF0YS5yZXF1ZXN0SWQ7XG4gICAgICAgICAgICBpZiAocmVxSWQpIHtcbiAgICAgICAgICAgICAgICBlcnJvci5SZXF1ZXN0SWQgPSByZXFJZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBlcnJvcjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGVjb3JhdGVTZXJ2aWNlRXhjZXB0aW9uKGV4Y2VwdGlvbiwgYWRkaXRpb25zKTtcbiAgICB9XG4gICAgc2V0UXVlcnlDb21wYXRFcnJvcihvdXRwdXQsIHJlc3BvbnNlKSB7XG4gICAgICAgIGNvbnN0IHF1ZXJ5RXJyb3JIZWFkZXIgPSByZXNwb25zZS5oZWFkZXJzPy5bXCJ4LWFtem4tcXVlcnktZXJyb3JcIl07XG4gICAgICAgIGlmIChvdXRwdXQgIT09IHVuZGVmaW5lZCAmJiBxdWVyeUVycm9ySGVhZGVyICE9IG51bGwpIHtcbiAgICAgICAgICAgIGNvbnN0IFtDb2RlLCBUeXBlXSA9IHF1ZXJ5RXJyb3JIZWFkZXIuc3BsaXQoXCI7XCIpO1xuICAgICAgICAgICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKG91dHB1dCk7XG4gICAgICAgICAgICBjb25zdCBFcnJvciA9IHtcbiAgICAgICAgICAgICAgICBDb2RlLFxuICAgICAgICAgICAgICAgIFR5cGUsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgb3V0cHV0LkNvZGUgPSBDb2RlO1xuICAgICAgICAgICAgb3V0cHV0LlR5cGUgPSBUeXBlO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgayA9IGtleXNbaV07XG4gICAgICAgICAgICAgICAgRXJyb3JbayA9PT0gXCJtZXNzYWdlXCIgPyBcIk1lc3NhZ2VcIiA6IGtdID0gb3V0cHV0W2tdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVsZXRlIEVycm9yLl9fdHlwZTtcbiAgICAgICAgICAgIG91dHB1dC5FcnJvciA9IEVycm9yO1xuICAgICAgICB9XG4gICAgfVxuICAgIHF1ZXJ5Q29tcGF0T3V0cHV0KHF1ZXJ5Q29tcGF0RXJyb3JEYXRhLCBlcnJvckRhdGEpIHtcbiAgICAgICAgaWYgKHF1ZXJ5Q29tcGF0RXJyb3JEYXRhLkVycm9yKSB7XG4gICAgICAgICAgICBlcnJvckRhdGEuRXJyb3IgPSBxdWVyeUNvbXBhdEVycm9yRGF0YS5FcnJvcjtcbiAgICAgICAgfVxuICAgICAgICBpZiAocXVlcnlDb21wYXRFcnJvckRhdGEuVHlwZSkge1xuICAgICAgICAgICAgZXJyb3JEYXRhLlR5cGUgPSBxdWVyeUNvbXBhdEVycm9yRGF0YS5UeXBlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChxdWVyeUNvbXBhdEVycm9yRGF0YS5Db2RlKSB7XG4gICAgICAgICAgICBlcnJvckRhdGEuQ29kZSA9IHF1ZXJ5Q29tcGF0RXJyb3JEYXRhLkNvZGU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZmluZFF1ZXJ5Q29tcGF0aWJsZUVycm9yKHJlZ2lzdHJ5LCBlcnJvck5hbWUpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiByZWdpc3RyeS5nZXRTY2hlbWEoZXJyb3JOYW1lKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgcmV0dXJuIHJlZ2lzdHJ5LmZpbmQoKHNjaGVtYSkgPT4gTm9ybWFsaXplZFNjaGVtYS5vZihzY2hlbWEpLmdldE1lcmdlZFRyYWl0cygpLmF3c1F1ZXJ5RXJyb3I/LlswXSA9PT0gZXJyb3JOYW1lKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBsb2FkU21pdGh5UnBjVjJDYm9yRXJyb3JDb2RlLCBTbWl0aHlScGNWMkNib3JQcm90b2NvbCB9IGZyb20gXCJAc21pdGh5L2NvcmUvY2JvclwiO1xuaW1wb3J0IHsgTm9ybWFsaXplZFNjaGVtYSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2NoZW1hXCI7XG5pbXBvcnQgeyBQcm90b2NvbExpYiB9IGZyb20gXCIuLi9Qcm90b2NvbExpYlwiO1xuZXhwb3J0IGNsYXNzIEF3c1NtaXRoeVJwY1YyQ2JvclByb3RvY29sIGV4dGVuZHMgU21pdGh5UnBjVjJDYm9yUHJvdG9jb2wge1xuICAgIGF3c1F1ZXJ5Q29tcGF0aWJsZTtcbiAgICBtaXhpbjtcbiAgICBjb25zdHJ1Y3Rvcih7IGRlZmF1bHROYW1lc3BhY2UsIGVycm9yVHlwZVJlZ2lzdHJpZXMsIGF3c1F1ZXJ5Q29tcGF0aWJsZSwgfSkge1xuICAgICAgICBzdXBlcih7IGRlZmF1bHROYW1lc3BhY2UsIGVycm9yVHlwZVJlZ2lzdHJpZXMgfSk7XG4gICAgICAgIHRoaXMuYXdzUXVlcnlDb21wYXRpYmxlID0gISFhd3NRdWVyeUNvbXBhdGlibGU7XG4gICAgICAgIHRoaXMubWl4aW4gPSBuZXcgUHJvdG9jb2xMaWIodGhpcy5hd3NRdWVyeUNvbXBhdGlibGUpO1xuICAgIH1cbiAgICBhc3luYyBzZXJpYWxpemVSZXF1ZXN0KG9wZXJhdGlvblNjaGVtYSwgaW5wdXQsIGNvbnRleHQpIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IGF3YWl0IHN1cGVyLnNlcmlhbGl6ZVJlcXVlc3Qob3BlcmF0aW9uU2NoZW1hLCBpbnB1dCwgY29udGV4dCk7XG4gICAgICAgIGlmICh0aGlzLmF3c1F1ZXJ5Q29tcGF0aWJsZSkge1xuICAgICAgICAgICAgcmVxdWVzdC5oZWFkZXJzW1wieC1hbXpuLXF1ZXJ5LW1vZGVcIl0gPSBcInRydWVcIjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVxdWVzdDtcbiAgICB9XG4gICAgYXN5bmMgaGFuZGxlRXJyb3Iob3BlcmF0aW9uU2NoZW1hLCBjb250ZXh0LCByZXNwb25zZSwgZGF0YU9iamVjdCwgbWV0YWRhdGEpIHtcbiAgICAgICAgaWYgKHRoaXMuYXdzUXVlcnlDb21wYXRpYmxlKSB7XG4gICAgICAgICAgICB0aGlzLm1peGluLnNldFF1ZXJ5Q29tcGF0RXJyb3IoZGF0YU9iamVjdCwgcmVzcG9uc2UpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGVycm9yTmFtZSA9ICgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjb21wYXRIZWFkZXIgPSByZXNwb25zZS5oZWFkZXJzW1wieC1hbXpuLXF1ZXJ5LWVycm9yXCJdO1xuICAgICAgICAgICAgaWYgKGNvbXBhdEhlYWRlciAmJiB0aGlzLmF3c1F1ZXJ5Q29tcGF0aWJsZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBjb21wYXRIZWFkZXIuc3BsaXQoXCI7XCIpWzBdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGxvYWRTbWl0aHlScGNWMkNib3JFcnJvckNvZGUocmVzcG9uc2UsIGRhdGFPYmplY3QpID8/IFwiVW5rbm93blwiO1xuICAgICAgICB9KSgpO1xuICAgICAgICB0aGlzLm1peGluLmNvbXBvc2UodGhpcy5jb21wb3NpdGVFcnJvclJlZ2lzdHJ5LCBlcnJvck5hbWUsIHRoaXMub3B0aW9ucy5kZWZhdWx0TmFtZXNwYWNlKTtcbiAgICAgICAgY29uc3QgeyBlcnJvclNjaGVtYSwgZXJyb3JNZXRhZGF0YSB9ID0gYXdhaXQgdGhpcy5taXhpbi5nZXRFcnJvclNjaGVtYU9yVGhyb3dCYXNlRXhjZXB0aW9uKGVycm9yTmFtZSwgdGhpcy5vcHRpb25zLmRlZmF1bHROYW1lc3BhY2UsIHJlc3BvbnNlLCBkYXRhT2JqZWN0LCBtZXRhZGF0YSwgdGhpcy5hd3NRdWVyeUNvbXBhdGlibGUgPyB0aGlzLm1peGluLmZpbmRRdWVyeUNvbXBhdGlibGVFcnJvciA6IHVuZGVmaW5lZCk7XG4gICAgICAgIGNvbnN0IG5zID0gTm9ybWFsaXplZFNjaGVtYS5vZihlcnJvclNjaGVtYSk7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBkYXRhT2JqZWN0Lm1lc3NhZ2UgPz8gZGF0YU9iamVjdC5NZXNzYWdlID8/IFwiVW5rbm93bkVycm9yXCI7XG4gICAgICAgIGNvbnN0IEVycm9yQ3RvciA9IHRoaXMuY29tcG9zaXRlRXJyb3JSZWdpc3RyeS5nZXRFcnJvckN0b3IoZXJyb3JTY2hlbWEpID8/IEVycm9yO1xuICAgICAgICBjb25zdCBleGNlcHRpb24gPSBuZXcgRXJyb3JDdG9yKG1lc3NhZ2UpO1xuICAgICAgICBjb25zdCBvdXRwdXQgPSB7fTtcbiAgICAgICAgZm9yIChjb25zdCBbbmFtZSwgbWVtYmVyXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICBpZiAoZGF0YU9iamVjdFtuYW1lXSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgb3V0cHV0W25hbWVdID0gdGhpcy5kZXNlcmlhbGl6ZXIucmVhZFZhbHVlKG1lbWJlciwgZGF0YU9iamVjdFtuYW1lXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuYXdzUXVlcnlDb21wYXRpYmxlKSB7XG4gICAgICAgICAgICB0aGlzLm1peGluLnF1ZXJ5Q29tcGF0T3V0cHV0KGRhdGFPYmplY3QsIG91dHB1dCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgdGhpcy5taXhpbi5kZWNvcmF0ZVNlcnZpY2VFeGNlcHRpb24oT2JqZWN0LmFzc2lnbihleGNlcHRpb24sIGVycm9yTWV0YWRhdGEsIHtcbiAgICAgICAgICAgICRmYXVsdDogbnMuZ2V0TWVyZ2VkVHJhaXRzKCkuZXJyb3IsXG4gICAgICAgICAgICBtZXNzYWdlLFxuICAgICAgICB9LCBvdXRwdXQpLCBkYXRhT2JqZWN0KTtcbiAgICB9XG59XG4iLCAiZXhwb3J0IGNvbnN0IF90b1N0ciA9ICh2YWwpID0+IHtcbiAgICBpZiAodmFsID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHZhbDtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB2YWwgPT09IFwibnVtYmVyXCIgfHwgdHlwZW9mIHZhbCA9PT0gXCJiaWdpbnRcIikge1xuICAgICAgICBjb25zdCB3YXJuaW5nID0gbmV3IEVycm9yKGBSZWNlaXZlZCBudW1iZXIgJHt2YWx9IHdoZXJlIGEgc3RyaW5nIHdhcyBleHBlY3RlZC5gKTtcbiAgICAgICAgd2FybmluZy5uYW1lID0gXCJXYXJuaW5nXCI7XG4gICAgICAgIGNvbnNvbGUud2Fybih3YXJuaW5nKTtcbiAgICAgICAgcmV0dXJuIFN0cmluZyh2YWwpO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHZhbCA9PT0gXCJib29sZWFuXCIpIHtcbiAgICAgICAgY29uc3Qgd2FybmluZyA9IG5ldyBFcnJvcihgUmVjZWl2ZWQgYm9vbGVhbiAke3ZhbH0gd2hlcmUgYSBzdHJpbmcgd2FzIGV4cGVjdGVkLmApO1xuICAgICAgICB3YXJuaW5nLm5hbWUgPSBcIldhcm5pbmdcIjtcbiAgICAgICAgY29uc29sZS53YXJuKHdhcm5pbmcpO1xuICAgICAgICByZXR1cm4gU3RyaW5nKHZhbCk7XG4gICAgfVxuICAgIHJldHVybiB2YWw7XG59O1xuZXhwb3J0IGNvbnN0IF90b0Jvb2wgPSAodmFsKSA9PiB7XG4gICAgaWYgKHZhbCA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiB2YWw7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgdmFsID09PSBcIm51bWJlclwiKSB7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgdmFsID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIGNvbnN0IGxvd2VyY2FzZSA9IHZhbC50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBpZiAodmFsICE9PSBcIlwiICYmIGxvd2VyY2FzZSAhPT0gXCJmYWxzZVwiICYmIGxvd2VyY2FzZSAhPT0gXCJ0cnVlXCIpIHtcbiAgICAgICAgICAgIGNvbnN0IHdhcm5pbmcgPSBuZXcgRXJyb3IoYFJlY2VpdmVkIHN0cmluZyBcIiR7dmFsfVwiIHdoZXJlIGEgYm9vbGVhbiB3YXMgZXhwZWN0ZWQuYCk7XG4gICAgICAgICAgICB3YXJuaW5nLm5hbWUgPSBcIldhcm5pbmdcIjtcbiAgICAgICAgICAgIGNvbnNvbGUud2Fybih3YXJuaW5nKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsICE9PSBcIlwiICYmIGxvd2VyY2FzZSAhPT0gXCJmYWxzZVwiO1xuICAgIH1cbiAgICByZXR1cm4gdmFsO1xufTtcbmV4cG9ydCBjb25zdCBfdG9OdW0gPSAodmFsKSA9PiB7XG4gICAgaWYgKHZhbCA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiB2YWw7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgdmFsID09PSBcImJvb2xlYW5cIikge1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHZhbCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICBjb25zdCBudW0gPSBOdW1iZXIodmFsKTtcbiAgICAgICAgaWYgKG51bS50b1N0cmluZygpICE9PSB2YWwpIHtcbiAgICAgICAgICAgIGNvbnN0IHdhcm5pbmcgPSBuZXcgRXJyb3IoYFJlY2VpdmVkIHN0cmluZyBcIiR7dmFsfVwiIHdoZXJlIGEgbnVtYmVyIHdhcyBleHBlY3RlZC5gKTtcbiAgICAgICAgICAgIHdhcm5pbmcubmFtZSA9IFwiV2FybmluZ1wiO1xuICAgICAgICAgICAgY29uc29sZS53YXJuKHdhcm5pbmcpO1xuICAgICAgICAgICAgcmV0dXJuIHZhbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVtO1xuICAgIH1cbiAgICByZXR1cm4gdmFsO1xufTtcbiIsICJleHBvcnQgY2xhc3MgU2VyZGVDb250ZXh0Q29uZmlnIHtcbiAgICBzZXJkZUNvbnRleHQ7XG4gICAgc2V0U2VyZGVDb250ZXh0KHNlcmRlQ29udGV4dCkge1xuICAgICAgICB0aGlzLnNlcmRlQ29udGV4dCA9IHNlcmRlQ29udGV4dDtcbiAgICB9XG59XG4iLCAiZXhwb3J0IGNsYXNzIFVuaW9uU2VyZGUge1xuICAgIGZyb207XG4gICAgdG87XG4gICAga2V5cztcbiAgICBjb25zdHJ1Y3Rvcihmcm9tLCB0bykge1xuICAgICAgICB0aGlzLmZyb20gPSBmcm9tO1xuICAgICAgICB0aGlzLnRvID0gdG87XG4gICAgICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyh0aGlzLmZyb20pO1xuICAgICAgICBjb25zdCBzZXQgPSBuZXcgU2V0KGtleXMpO1xuICAgICAgICBzZXQuZGVsZXRlKFwiX190eXBlXCIpO1xuICAgICAgICB0aGlzLmtleXMgPSBzZXQ7XG4gICAgfVxuICAgIG1hcmsoa2V5KSB7XG4gICAgICAgIHRoaXMua2V5cy5kZWxldGUoa2V5KTtcbiAgICB9XG4gICAgaGFzVW5rbm93bigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMua2V5cy5zaXplID09PSAxICYmIE9iamVjdC5rZXlzKHRoaXMudG8pLmxlbmd0aCA9PT0gMDtcbiAgICB9XG4gICAgd3JpdGVVbmtub3duKCkge1xuICAgICAgICBpZiAodGhpcy5oYXNVbmtub3duKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IGsgPSB0aGlzLmtleXMudmFsdWVzKCkubmV4dCgpLnZhbHVlO1xuICAgICAgICAgICAgY29uc3QgdiA9IHRoaXMuZnJvbVtrXTtcbiAgICAgICAgICAgIHRoaXMudG8uJHVua25vd24gPSBbaywgdl07XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgTnVtZXJpY1ZhbHVlIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zZXJkZVwiO1xuZXhwb3J0IGZ1bmN0aW9uIGpzb25SZXZpdmVyKGtleSwgdmFsdWUsIGNvbnRleHQpIHtcbiAgICBpZiAoY29udGV4dD8uc291cmNlKSB7XG4gICAgICAgIGNvbnN0IG51bWVyaWNTdHJpbmcgPSBjb250ZXh0LnNvdXJjZTtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgaWYgKHZhbHVlID4gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIgfHwgdmFsdWUgPCBOdW1iZXIuTUlOX1NBRkVfSU5URUdFUiB8fCBudW1lcmljU3RyaW5nICE9PSBTdHJpbmcodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNGcmFjdGlvbmFsID0gbnVtZXJpY1N0cmluZy5pbmNsdWRlcyhcIi5cIik7XG4gICAgICAgICAgICAgICAgaWYgKGlzRnJhY3Rpb25hbCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IE51bWVyaWNWYWx1ZShudW1lcmljU3RyaW5nLCBcImJpZ0RlY2ltYWxcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gQmlnSW50KG51bWVyaWNTdHJpbmcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG59XG4iLCAiaW1wb3J0IHsgY29sbGVjdEJvZHkgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyB0b1V0ZjggfSBmcm9tIFwiQHNtaXRoeS91dGlsLXV0ZjhcIjtcbmV4cG9ydCBjb25zdCBjb2xsZWN0Qm9keVN0cmluZyA9IChzdHJlYW1Cb2R5LCBjb250ZXh0KSA9PiBjb2xsZWN0Qm9keShzdHJlYW1Cb2R5LCBjb250ZXh0KS50aGVuKChib2R5KSA9PiAoY29udGV4dD8udXRmOEVuY29kZXIgPz8gdG9VdGY4KShib2R5KSk7XG4iLCAiaW1wb3J0IHsgY29sbGVjdEJvZHlTdHJpbmcgfSBmcm9tIFwiLi4vY29tbW9uXCI7XG5leHBvcnQgY29uc3QgcGFyc2VKc29uQm9keSA9IChzdHJlYW1Cb2R5LCBjb250ZXh0KSA9PiBjb2xsZWN0Qm9keVN0cmluZyhzdHJlYW1Cb2R5LCBjb250ZXh0KS50aGVuKChlbmNvZGVkKSA9PiB7XG4gICAgaWYgKGVuY29kZWQubGVuZ3RoKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShlbmNvZGVkKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgaWYgKGU/Lm5hbWUgPT09IFwiU3ludGF4RXJyb3JcIikge1xuICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCBcIiRyZXNwb25zZUJvZHlUZXh0XCIsIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGVuY29kZWQsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7fTtcbn0pO1xuZXhwb3J0IGNvbnN0IHBhcnNlSnNvbkVycm9yQm9keSA9IGFzeW5jIChlcnJvckJvZHksIGNvbnRleHQpID0+IHtcbiAgICBjb25zdCB2YWx1ZSA9IGF3YWl0IHBhcnNlSnNvbkJvZHkoZXJyb3JCb2R5LCBjb250ZXh0KTtcbiAgICB2YWx1ZS5tZXNzYWdlID0gdmFsdWUubWVzc2FnZSA/PyB2YWx1ZS5NZXNzYWdlO1xuICAgIHJldHVybiB2YWx1ZTtcbn07XG5jb25zdCBmaW5kS2V5ID0gKG9iamVjdCwga2V5KSA9PiBPYmplY3Qua2V5cyhvYmplY3QpLmZpbmQoKGspID0+IGsudG9Mb3dlckNhc2UoKSA9PT0ga2V5LnRvTG93ZXJDYXNlKCkpO1xuY29uc3Qgc2FuaXRpemVFcnJvckNvZGUgPSAocmF3VmFsdWUpID0+IHtcbiAgICBsZXQgY2xlYW5WYWx1ZSA9IHJhd1ZhbHVlO1xuICAgIGlmICh0eXBlb2YgY2xlYW5WYWx1ZSA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICBjbGVhblZhbHVlID0gY2xlYW5WYWx1ZS50b1N0cmluZygpO1xuICAgIH1cbiAgICBpZiAoY2xlYW5WYWx1ZS5pbmRleE9mKFwiLFwiKSA+PSAwKSB7XG4gICAgICAgIGNsZWFuVmFsdWUgPSBjbGVhblZhbHVlLnNwbGl0KFwiLFwiKVswXTtcbiAgICB9XG4gICAgaWYgKGNsZWFuVmFsdWUuaW5kZXhPZihcIjpcIikgPj0gMCkge1xuICAgICAgICBjbGVhblZhbHVlID0gY2xlYW5WYWx1ZS5zcGxpdChcIjpcIilbMF07XG4gICAgfVxuICAgIGlmIChjbGVhblZhbHVlLmluZGV4T2YoXCIjXCIpID49IDApIHtcbiAgICAgICAgY2xlYW5WYWx1ZSA9IGNsZWFuVmFsdWUuc3BsaXQoXCIjXCIpWzFdO1xuICAgIH1cbiAgICByZXR1cm4gY2xlYW5WYWx1ZTtcbn07XG5leHBvcnQgY29uc3QgbG9hZFJlc3RKc29uRXJyb3JDb2RlID0gKG91dHB1dCwgZGF0YSkgPT4ge1xuICAgIGNvbnN0IGhlYWRlcktleSA9IGZpbmRLZXkob3V0cHV0LmhlYWRlcnMsIFwieC1hbXpuLWVycm9ydHlwZVwiKTtcbiAgICBpZiAoaGVhZGVyS2V5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIHNhbml0aXplRXJyb3JDb2RlKG91dHB1dC5oZWFkZXJzW2hlYWRlcktleV0pO1xuICAgIH1cbiAgICBpZiAoZGF0YSAmJiB0eXBlb2YgZGF0YSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICBjb25zdCBjb2RlS2V5ID0gZmluZEtleShkYXRhLCBcImNvZGVcIik7XG4gICAgICAgIGlmIChjb2RlS2V5ICYmIGRhdGFbY29kZUtleV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHNhbml0aXplRXJyb3JDb2RlKGRhdGFbY29kZUtleV0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhW1wiX190eXBlXCJdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBzYW5pdGl6ZUVycm9yQ29kZShkYXRhW1wiX190eXBlXCJdKTtcbiAgICAgICAgfVxuICAgIH1cbn07XG4iLCAiaW1wb3J0IHsgZGV0ZXJtaW5lVGltZXN0YW1wRm9ybWF0IH0gZnJvbSBcIkBzbWl0aHkvY29yZS9wcm90b2NvbHNcIjtcbmltcG9ydCB7IE5vcm1hbGl6ZWRTY2hlbWEgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3NjaGVtYVwiO1xuaW1wb3J0IHsgTGF6eUpzb25TdHJpbmcsIE51bWVyaWNWYWx1ZSwgcGFyc2VFcG9jaFRpbWVzdGFtcCwgcGFyc2VSZmMzMzM5RGF0ZVRpbWVXaXRoT2Zmc2V0LCBwYXJzZVJmYzcyMzFEYXRlVGltZSwgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3NlcmRlXCI7XG5pbXBvcnQgeyBmcm9tQmFzZTY0IH0gZnJvbSBcIkBzbWl0aHkvdXRpbC1iYXNlNjRcIjtcbmltcG9ydCB7IFNlcmRlQ29udGV4dENvbmZpZyB9IGZyb20gXCIuLi9Db25maWd1cmFibGVTZXJkZUNvbnRleHRcIjtcbmltcG9ydCB7IFVuaW9uU2VyZGUgfSBmcm9tIFwiLi4vVW5pb25TZXJkZVwiO1xuaW1wb3J0IHsganNvblJldml2ZXIgfSBmcm9tIFwiLi9qc29uUmV2aXZlclwiO1xuaW1wb3J0IHsgcGFyc2VKc29uQm9keSB9IGZyb20gXCIuL3BhcnNlSnNvbkJvZHlcIjtcbmV4cG9ydCBjbGFzcyBKc29uU2hhcGVEZXNlcmlhbGl6ZXIgZXh0ZW5kcyBTZXJkZUNvbnRleHRDb25maWcge1xuICAgIHNldHRpbmdzO1xuICAgIGNvbnN0cnVjdG9yKHNldHRpbmdzKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuc2V0dGluZ3MgPSBzZXR0aW5ncztcbiAgICB9XG4gICAgYXN5bmMgcmVhZChzY2hlbWEsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlYWQoc2NoZW1hLCB0eXBlb2YgZGF0YSA9PT0gXCJzdHJpbmdcIiA/IEpTT04ucGFyc2UoZGF0YSwganNvblJldml2ZXIpIDogYXdhaXQgcGFyc2VKc29uQm9keShkYXRhLCB0aGlzLnNlcmRlQ29udGV4dCkpO1xuICAgIH1cbiAgICByZWFkT2JqZWN0KHNjaGVtYSwgZGF0YSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVhZChzY2hlbWEsIGRhdGEpO1xuICAgIH1cbiAgICBfcmVhZChzY2hlbWEsIHZhbHVlKSB7XG4gICAgICAgIGNvbnN0IGlzT2JqZWN0ID0gdmFsdWUgIT09IG51bGwgJiYgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiO1xuICAgICAgICBjb25zdCBucyA9IE5vcm1hbGl6ZWRTY2hlbWEub2Yoc2NoZW1hKTtcbiAgICAgICAgaWYgKGlzT2JqZWN0KSB7XG4gICAgICAgICAgICBpZiAobnMuaXNTdHJ1Y3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlY29yZCA9IHZhbHVlO1xuICAgICAgICAgICAgICAgIGNvbnN0IHVuaW9uID0gbnMuaXNVbmlvblNjaGVtYSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IG91dCA9IHt9O1xuICAgICAgICAgICAgICAgIGxldCBuYW1lTWFwID0gdm9pZCAwO1xuICAgICAgICAgICAgICAgIGNvbnN0IHsganNvbk5hbWUgfSA9IHRoaXMuc2V0dGluZ3M7XG4gICAgICAgICAgICAgICAgaWYgKGpzb25OYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWVNYXAgPSB7fTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbGV0IHVuaW9uU2VyZGU7XG4gICAgICAgICAgICAgICAgaWYgKHVuaW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIHVuaW9uU2VyZGUgPSBuZXcgVW5pb25TZXJkZShyZWNvcmQsIG91dCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgW21lbWJlck5hbWUsIG1lbWJlclNjaGVtYV0gb2YgbnMuc3RydWN0SXRlcmF0b3IoKSkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgZnJvbUtleSA9IG1lbWJlck5hbWU7XG4gICAgICAgICAgICAgICAgICAgIGlmIChqc29uTmFtZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZnJvbUtleSA9IG1lbWJlclNjaGVtYS5nZXRNZXJnZWRUcmFpdHMoKS5qc29uTmFtZSA/PyBmcm9tS2V5O1xuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZU1hcFtmcm9tS2V5XSA9IG1lbWJlck5hbWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHVuaW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB1bmlvblNlcmRlLm1hcmsoZnJvbUtleSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlY29yZFtmcm9tS2V5XSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvdXRbbWVtYmVyTmFtZV0gPSB0aGlzLl9yZWFkKG1lbWJlclNjaGVtYSwgcmVjb3JkW2Zyb21LZXldKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodW5pb24pIHtcbiAgICAgICAgICAgICAgICAgICAgdW5pb25TZXJkZS53cml0ZVVua25vd24oKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAodHlwZW9mIHJlY29yZC5fX3R5cGUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBrIGluIHJlY29yZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdiA9IHJlY29yZFtrXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHQgPSBqc29uTmFtZSA/IG5hbWVNYXBba10gPz8gayA6IGs7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoISh0IGluIG91dCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRbdF0gPSB2O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBvdXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgbnMuaXNMaXN0U2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBsaXN0TWVtYmVyID0gbnMuZ2V0VmFsdWVTY2hlbWEoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBvdXQgPSBbXTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgb3V0LnB1c2godGhpcy5fcmVhZChsaXN0TWVtYmVyLCBpdGVtKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBvdXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobnMuaXNNYXBTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG1hcE1lbWJlciA9IG5zLmdldFZhbHVlU2NoZW1hKCk7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3V0ID0ge307XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBfayBpbiB2YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBvdXRbX2tdID0gdGhpcy5fcmVhZChtYXBNZW1iZXIsIHZhbHVlW19rXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBvdXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzQmxvYlNjaGVtYSgpICYmIHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgcmV0dXJuIGZyb21CYXNlNjQodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG1lZGlhVHlwZSA9IG5zLmdldE1lcmdlZFRyYWl0cygpLm1lZGlhVHlwZTtcbiAgICAgICAgaWYgKG5zLmlzU3RyaW5nU2NoZW1hKCkgJiYgdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiICYmIG1lZGlhVHlwZSkge1xuICAgICAgICAgICAgY29uc3QgaXNKc29uID0gbWVkaWFUeXBlID09PSBcImFwcGxpY2F0aW9uL2pzb25cIiB8fCBtZWRpYVR5cGUuZW5kc1dpdGgoXCIranNvblwiKTtcbiAgICAgICAgICAgIGlmIChpc0pzb24pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gTGF6eUpzb25TdHJpbmcuZnJvbSh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzVGltZXN0YW1wU2NoZW1hKCkgJiYgdmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc3QgZm9ybWF0ID0gZGV0ZXJtaW5lVGltZXN0YW1wRm9ybWF0KG5zLCB0aGlzLnNldHRpbmdzKTtcbiAgICAgICAgICAgIHN3aXRjaCAoZm9ybWF0KSB7XG4gICAgICAgICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcGFyc2VSZmMzMzM5RGF0ZVRpbWVXaXRoT2Zmc2V0KHZhbHVlKTtcbiAgICAgICAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZVJmYzcyMzFEYXRlVGltZSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgY2FzZSA3OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcGFyc2VFcG9jaFRpbWVzdGFtcCh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKFwiTWlzc2luZyB0aW1lc3RhbXAgZm9ybWF0LCBwYXJzaW5nIHZhbHVlIHdpdGggRGF0ZSBjb25zdHJ1Y3RvcjpcIiwgdmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IERhdGUodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChucy5pc0JpZ0ludGVnZXJTY2hlbWEoKSAmJiAodHlwZW9mIHZhbHVlID09PSBcIm51bWJlclwiIHx8IHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikpIHtcbiAgICAgICAgICAgIHJldHVybiBCaWdJbnQodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChucy5pc0JpZ0RlY2ltYWxTY2hlbWEoKSAmJiB2YWx1ZSAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIE51bWVyaWNWYWx1ZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHVudHlwZWQgPSB2YWx1ZTtcbiAgICAgICAgICAgIGlmICh1bnR5cGVkLnR5cGUgPT09IFwiYmlnRGVjaW1hbFwiICYmIFwic3RyaW5nXCIgaW4gdW50eXBlZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgTnVtZXJpY1ZhbHVlKHVudHlwZWQuc3RyaW5nLCB1bnR5cGVkLnR5cGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG5ldyBOdW1lcmljVmFsdWUoU3RyaW5nKHZhbHVlKSwgXCJiaWdEZWNpbWFsXCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChucy5pc051bWVyaWNTY2hlbWEoKSAmJiB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIHN3aXRjaCAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIFwiSW5maW5pdHlcIjpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEluZmluaXR5O1xuICAgICAgICAgICAgICAgIGNhc2UgXCItSW5maW5pdHlcIjpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1JbmZpbml0eTtcbiAgICAgICAgICAgICAgICBjYXNlIFwiTmFOXCI6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBOYU47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzRG9jdW1lbnRTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKGlzT2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3V0ID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyBbXSA6IHt9O1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgayBpbiB2YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB2ID0gdmFsdWVba107XG4gICAgICAgICAgICAgICAgICAgIGlmICh2IGluc3RhbmNlb2YgTnVtZXJpY1ZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvdXRba10gPSB2O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3V0W2tdID0gdGhpcy5fcmVhZChucywgdik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIG91dDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBzdHJ1Y3R1cmVkQ2xvbmUodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgTnVtZXJpY1ZhbHVlIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zZXJkZVwiO1xuY29uc3QgTlVNRVJJQ19DT05UUk9MX0NIQVIgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKDkyNSk7XG5leHBvcnQgY2xhc3MgSnNvblJlcGxhY2VyIHtcbiAgICB2YWx1ZXMgPSBuZXcgTWFwKCk7XG4gICAgY291bnRlciA9IDA7XG4gICAgc3RhZ2UgPSAwO1xuICAgIGNyZWF0ZVJlcGxhY2VyKCkge1xuICAgICAgICBpZiAodGhpcy5zdGFnZSA9PT0gMSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSBKc29uUmVwbGFjZXIgYWxyZWFkeSBjcmVhdGVkLlwiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5zdGFnZSA9PT0gMikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSBKc29uUmVwbGFjZXIgZXhoYXVzdGVkLlwiKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnN0YWdlID0gMTtcbiAgICAgICAgcmV0dXJuIChrZXksIHZhbHVlKSA9PiB7XG4gICAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBOdW1lcmljVmFsdWUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB2ID0gYCR7TlVNRVJJQ19DT05UUk9MX0NIQVIgKyBcIm52XCIgKyB0aGlzLmNvdW50ZXIrK31fYCArIHZhbHVlLnN0cmluZztcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlcy5zZXQoYFwiJHt2fVwiYCwgdmFsdWUuc3RyaW5nKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwiYmlnaW50XCIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzID0gdmFsdWUudG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICBjb25zdCB2ID0gYCR7TlVNRVJJQ19DT05UUk9MX0NIQVIgKyBcImJcIiArIHRoaXMuY291bnRlcisrfV9gICsgcztcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlcy5zZXQoYFwiJHt2fVwiYCwgcyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHY7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH07XG4gICAgfVxuICAgIHJlcGxhY2VJbkpzb24oanNvbikge1xuICAgICAgICBpZiAodGhpcy5zdGFnZSA9PT0gMCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSBKc29uUmVwbGFjZXIgbm90IGNyZWF0ZWQgeWV0LlwiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5zdGFnZSA9PT0gMikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSBKc29uUmVwbGFjZXIgZXhoYXVzdGVkLlwiKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnN0YWdlID0gMjtcbiAgICAgICAgaWYgKHRoaXMuY291bnRlciA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIGpzb247XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgdGhpcy52YWx1ZXMpIHtcbiAgICAgICAgICAgIGpzb24gPSBqc29uLnJlcGxhY2Uoa2V5LCB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGpzb247XG4gICAgfVxufVxuIiwgImltcG9ydCB7IGRldGVybWluZVRpbWVzdGFtcEZvcm1hdCB9IGZyb20gXCJAc21pdGh5L2NvcmUvcHJvdG9jb2xzXCI7XG5pbXBvcnQgeyBOb3JtYWxpemVkU2NoZW1hIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IGRhdGVUb1V0Y1N0cmluZywgZ2VuZXJhdGVJZGVtcG90ZW5jeVRva2VuLCBMYXp5SnNvblN0cmluZywgTnVtZXJpY1ZhbHVlIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zZXJkZVwiO1xuaW1wb3J0IHsgdG9CYXNlNjQgfSBmcm9tIFwiQHNtaXRoeS91dGlsLWJhc2U2NFwiO1xuaW1wb3J0IHsgU2VyZGVDb250ZXh0Q29uZmlnIH0gZnJvbSBcIi4uL0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dFwiO1xuaW1wb3J0IHsgSnNvblJlcGxhY2VyIH0gZnJvbSBcIi4vanNvblJlcGxhY2VyXCI7XG5leHBvcnQgY2xhc3MgSnNvblNoYXBlU2VyaWFsaXplciBleHRlbmRzIFNlcmRlQ29udGV4dENvbmZpZyB7XG4gICAgc2V0dGluZ3M7XG4gICAgYnVmZmVyO1xuICAgIHVzZVJlcGxhY2VyID0gZmFsc2U7XG4gICAgcm9vdFNjaGVtYTtcbiAgICBjb25zdHJ1Y3RvcihzZXR0aW5ncykge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnNldHRpbmdzID0gc2V0dGluZ3M7XG4gICAgfVxuICAgIHdyaXRlKHNjaGVtYSwgdmFsdWUpIHtcbiAgICAgICAgdGhpcy5yb290U2NoZW1hID0gTm9ybWFsaXplZFNjaGVtYS5vZihzY2hlbWEpO1xuICAgICAgICB0aGlzLmJ1ZmZlciA9IHRoaXMuX3dyaXRlKHRoaXMucm9vdFNjaGVtYSwgdmFsdWUpO1xuICAgIH1cbiAgICBmbHVzaCgpIHtcbiAgICAgICAgY29uc3QgeyByb290U2NoZW1hLCB1c2VSZXBsYWNlciB9ID0gdGhpcztcbiAgICAgICAgdGhpcy5yb290U2NoZW1hID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLnVzZVJlcGxhY2VyID0gZmFsc2U7XG4gICAgICAgIGlmIChyb290U2NoZW1hPy5pc1N0cnVjdFNjaGVtYSgpIHx8IHJvb3RTY2hlbWE/LmlzRG9jdW1lbnRTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKCF1c2VSZXBsYWNlcikge1xuICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh0aGlzLmJ1ZmZlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCByZXBsYWNlciA9IG5ldyBKc29uUmVwbGFjZXIoKTtcbiAgICAgICAgICAgIHJldHVybiByZXBsYWNlci5yZXBsYWNlSW5Kc29uKEpTT04uc3RyaW5naWZ5KHRoaXMuYnVmZmVyLCByZXBsYWNlci5jcmVhdGVSZXBsYWNlcigpLCAwKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuYnVmZmVyO1xuICAgIH1cbiAgICB3cml0ZURpc2NyaW1pbmF0ZWREb2N1bWVudChzY2hlbWEsIHZhbHVlKSB7XG4gICAgICAgIHRoaXMud3JpdGUoc2NoZW1hLCB2YWx1ZSk7XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5idWZmZXIgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgIHRoaXMuYnVmZmVyLl9fdHlwZSA9IE5vcm1hbGl6ZWRTY2hlbWEub2Yoc2NoZW1hKS5nZXROYW1lKHRydWUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIF93cml0ZShzY2hlbWEsIHZhbHVlLCBjb250YWluZXIpIHtcbiAgICAgICAgY29uc3QgaXNPYmplY3QgPSB2YWx1ZSAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCI7XG4gICAgICAgIGNvbnN0IG5zID0gTm9ybWFsaXplZFNjaGVtYS5vZihzY2hlbWEpO1xuICAgICAgICBpZiAoaXNPYmplY3QpIHtcbiAgICAgICAgICAgIGlmIChucy5pc1N0cnVjdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVjb3JkID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3V0ID0ge307XG4gICAgICAgICAgICAgICAgY29uc3QgeyBqc29uTmFtZSB9ID0gdGhpcy5zZXR0aW5ncztcbiAgICAgICAgICAgICAgICBsZXQgbmFtZU1hcCA9IHZvaWQgMDtcbiAgICAgICAgICAgICAgICBpZiAoanNvbk5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZU1hcCA9IHt9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBsZXQgb3V0Q291bnQgPSAwO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgW21lbWJlck5hbWUsIG1lbWJlclNjaGVtYV0gb2YgbnMuc3RydWN0SXRlcmF0b3IoKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzZXJpYWxpemFibGVWYWx1ZSA9IHRoaXMuX3dyaXRlKG1lbWJlclNjaGVtYSwgcmVjb3JkW21lbWJlck5hbWVdLCBucyk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzZXJpYWxpemFibGVWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGFyZ2V0S2V5ID0gbWVtYmVyTmFtZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChqc29uTmFtZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldEtleSA9IG1lbWJlclNjaGVtYS5nZXRNZXJnZWRUcmFpdHMoKS5qc29uTmFtZSA/PyBtZW1iZXJOYW1lO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVNYXBbbWVtYmVyTmFtZV0gPSB0YXJnZXRLZXk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBvdXRbdGFyZ2V0S2V5XSA9IHNlcmlhbGl6YWJsZVZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgb3V0Q291bnQrKztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAobnMuaXNVbmlvblNjaGVtYSgpICYmIG91dENvdW50ID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgJHVua25vd24gfSA9IHJlY29yZDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoJHVua25vd24pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBbaywgdl0gPSAkdW5rbm93bjtcbiAgICAgICAgICAgICAgICAgICAgICAgIG91dFtrXSA9IHRoaXMuX3dyaXRlKDE1LCB2KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmICh0eXBlb2YgcmVjb3JkLl9fdHlwZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGsgaW4gcmVjb3JkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2ID0gcmVjb3JkW2tdO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0S2V5ID0ganNvbk5hbWUgPyBuYW1lTWFwW2tdID8/IGsgOiBrO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEodGFyZ2V0S2V5IGluIG91dCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRbdGFyZ2V0S2V5XSA9IHRoaXMuX3dyaXRlKDE1LCB2KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gb3V0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpICYmIG5zLmlzTGlzdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbGlzdE1lbWJlciA9IG5zLmdldFZhbHVlU2NoZW1hKCk7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3V0ID0gW107XG4gICAgICAgICAgICAgICAgY29uc3Qgc3BhcnNlID0gISFucy5nZXRNZXJnZWRUcmFpdHMoKS5zcGFyc2U7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzcGFyc2UgfHwgaXRlbSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvdXQucHVzaCh0aGlzLl93cml0ZShsaXN0TWVtYmVyLCBpdGVtKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIG91dDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChucy5pc01hcFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbWFwTWVtYmVyID0gbnMuZ2V0VmFsdWVTY2hlbWEoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBvdXQgPSB7fTtcbiAgICAgICAgICAgICAgICBjb25zdCBzcGFyc2UgPSAhIW5zLmdldE1lcmdlZFRyYWl0cygpLnNwYXJzZTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IF9rIGluIHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IF92ID0gdmFsdWVbX2tdO1xuICAgICAgICAgICAgICAgICAgICBpZiAoc3BhcnNlIHx8IF92ICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG91dFtfa10gPSB0aGlzLl93cml0ZShtYXBNZW1iZXIsIF92KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gb3V0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgVWludDhBcnJheSAmJiAobnMuaXNCbG9iU2NoZW1hKCkgfHwgbnMuaXNEb2N1bWVudFNjaGVtYSgpKSkge1xuICAgICAgICAgICAgICAgIGlmIChucyA9PT0gdGhpcy5yb290U2NoZW1hKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuICh0aGlzLnNlcmRlQ29udGV4dD8uYmFzZTY0RW5jb2RlciA/PyB0b0Jhc2U2NCkodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSAmJiAobnMuaXNUaW1lc3RhbXBTY2hlbWEoKSB8fCBucy5pc0RvY3VtZW50U2NoZW1hKCkpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZm9ybWF0ID0gZGV0ZXJtaW5lVGltZXN0YW1wRm9ybWF0KG5zLCB0aGlzLnNldHRpbmdzKTtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGZvcm1hdCkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUudG9JU09TdHJpbmcoKS5yZXBsYWNlKFwiLjAwMFpcIiwgXCJaXCIpO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZGF0ZVRvVXRjU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA3OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlLmdldFRpbWUoKSAvIDEwMDA7XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oXCJNaXNzaW5nIHRpbWVzdGFtcCBmb3JtYXQsIHVzaW5nIGVwb2NoIHNlY29uZHNcIiwgdmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlLmdldFRpbWUoKSAvIDEwMDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgTnVtZXJpY1ZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy51c2VSZXBsYWNlciA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbHVlID09PSBudWxsICYmIGNvbnRhaW5lcj8uaXNTdHJ1Y3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgcmV0dXJuIHZvaWQgMDtcbiAgICAgICAgfVxuICAgICAgICBpZiAobnMuaXNTdHJpbmdTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJ1bmRlZmluZWRcIiAmJiBucy5pc0lkZW1wb3RlbmN5VG9rZW4oKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBnZW5lcmF0ZUlkZW1wb3RlbmN5VG9rZW4oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IG1lZGlhVHlwZSA9IG5zLmdldE1lcmdlZFRyYWl0cygpLm1lZGlhVHlwZTtcbiAgICAgICAgICAgIGlmICh2YWx1ZSAhPSBudWxsICYmIG1lZGlhVHlwZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzSnNvbiA9IG1lZGlhVHlwZSA9PT0gXCJhcHBsaWNhdGlvbi9qc29uXCIgfHwgbWVkaWFUeXBlLmVuZHNXaXRoKFwiK2pzb25cIik7XG4gICAgICAgICAgICAgICAgaWYgKGlzSnNvbikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gTGF6eUpzb25TdHJpbmcuZnJvbSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCIgJiYgbnMuaXNOdW1lcmljU2NoZW1hKCkpIHtcbiAgICAgICAgICAgIGlmIChNYXRoLmFicyh2YWx1ZSkgPT09IEluZmluaXR5IHx8IGlzTmFOKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgJiYgbnMuaXNCbG9iU2NoZW1hKCkpIHtcbiAgICAgICAgICAgIGlmIChucyA9PT0gdGhpcy5yb290U2NoZW1hKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuICh0aGlzLnNlcmRlQ29udGV4dD8uYmFzZTY0RW5jb2RlciA/PyB0b0Jhc2U2NCkodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwiYmlnaW50XCIpIHtcbiAgICAgICAgICAgIHRoaXMudXNlUmVwbGFjZXIgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChucy5pc0RvY3VtZW50U2NoZW1hKCkpIHtcbiAgICAgICAgICAgIGlmIChpc09iamVjdCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG91dCA9IEFycmF5LmlzQXJyYXkodmFsdWUpID8gW10gOiB7fTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGsgaW4gdmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdiA9IHZhbHVlW2tdO1xuICAgICAgICAgICAgICAgICAgICBpZiAodiBpbnN0YW5jZW9mIE51bWVyaWNWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51c2VSZXBsYWNlciA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBvdXRba10gPSB2O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3V0W2tdID0gdGhpcy5fd3JpdGUobnMsIHYpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBvdXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3RydWN0dXJlZENsb25lKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IFNlcmRlQ29udGV4dENvbmZpZyB9IGZyb20gXCIuLi9Db25maWd1cmFibGVTZXJkZUNvbnRleHRcIjtcbmltcG9ydCB7IEpzb25TaGFwZURlc2VyaWFsaXplciB9IGZyb20gXCIuL0pzb25TaGFwZURlc2VyaWFsaXplclwiO1xuaW1wb3J0IHsgSnNvblNoYXBlU2VyaWFsaXplciB9IGZyb20gXCIuL0pzb25TaGFwZVNlcmlhbGl6ZXJcIjtcbmV4cG9ydCBjbGFzcyBKc29uQ29kZWMgZXh0ZW5kcyBTZXJkZUNvbnRleHRDb25maWcge1xuICAgIHNldHRpbmdzO1xuICAgIGNvbnN0cnVjdG9yKHNldHRpbmdzKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuc2V0dGluZ3MgPSBzZXR0aW5ncztcbiAgICB9XG4gICAgY3JlYXRlU2VyaWFsaXplcigpIHtcbiAgICAgICAgY29uc3Qgc2VyaWFsaXplciA9IG5ldyBKc29uU2hhcGVTZXJpYWxpemVyKHRoaXMuc2V0dGluZ3MpO1xuICAgICAgICBzZXJpYWxpemVyLnNldFNlcmRlQ29udGV4dCh0aGlzLnNlcmRlQ29udGV4dCk7XG4gICAgICAgIHJldHVybiBzZXJpYWxpemVyO1xuICAgIH1cbiAgICBjcmVhdGVEZXNlcmlhbGl6ZXIoKSB7XG4gICAgICAgIGNvbnN0IGRlc2VyaWFsaXplciA9IG5ldyBKc29uU2hhcGVEZXNlcmlhbGl6ZXIodGhpcy5zZXR0aW5ncyk7XG4gICAgICAgIGRlc2VyaWFsaXplci5zZXRTZXJkZUNvbnRleHQodGhpcy5zZXJkZUNvbnRleHQpO1xuICAgICAgICByZXR1cm4gZGVzZXJpYWxpemVyO1xuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBScGNQcm90b2NvbCB9IGZyb20gXCJAc21pdGh5L2NvcmUvcHJvdG9jb2xzXCI7XG5pbXBvcnQgeyBkZXJlZiwgTm9ybWFsaXplZFNjaGVtYSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2NoZW1hXCI7XG5pbXBvcnQgeyBQcm90b2NvbExpYiB9IGZyb20gXCIuLi9Qcm90b2NvbExpYlwiO1xuaW1wb3J0IHsgSnNvbkNvZGVjIH0gZnJvbSBcIi4vSnNvbkNvZGVjXCI7XG5pbXBvcnQgeyBsb2FkUmVzdEpzb25FcnJvckNvZGUgfSBmcm9tIFwiLi9wYXJzZUpzb25Cb2R5XCI7XG5leHBvcnQgY2xhc3MgQXdzSnNvblJwY1Byb3RvY29sIGV4dGVuZHMgUnBjUHJvdG9jb2wge1xuICAgIHNlcmlhbGl6ZXI7XG4gICAgZGVzZXJpYWxpemVyO1xuICAgIHNlcnZpY2VUYXJnZXQ7XG4gICAgY29kZWM7XG4gICAgbWl4aW47XG4gICAgYXdzUXVlcnlDb21wYXRpYmxlO1xuICAgIGNvbnN0cnVjdG9yKHsgZGVmYXVsdE5hbWVzcGFjZSwgZXJyb3JUeXBlUmVnaXN0cmllcywgc2VydmljZVRhcmdldCwgYXdzUXVlcnlDb21wYXRpYmxlLCBqc29uQ29kZWMsIH0pIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgZGVmYXVsdE5hbWVzcGFjZSxcbiAgICAgICAgICAgIGVycm9yVHlwZVJlZ2lzdHJpZXMsXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnNlcnZpY2VUYXJnZXQgPSBzZXJ2aWNlVGFyZ2V0O1xuICAgICAgICB0aGlzLmNvZGVjID1cbiAgICAgICAgICAgIGpzb25Db2RlYyA/P1xuICAgICAgICAgICAgICAgIG5ldyBKc29uQ29kZWMoe1xuICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXBGb3JtYXQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHVzZVRyYWl0OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogNyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAganNvbk5hbWU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB0aGlzLnNlcmlhbGl6ZXIgPSB0aGlzLmNvZGVjLmNyZWF0ZVNlcmlhbGl6ZXIoKTtcbiAgICAgICAgdGhpcy5kZXNlcmlhbGl6ZXIgPSB0aGlzLmNvZGVjLmNyZWF0ZURlc2VyaWFsaXplcigpO1xuICAgICAgICB0aGlzLmF3c1F1ZXJ5Q29tcGF0aWJsZSA9ICEhYXdzUXVlcnlDb21wYXRpYmxlO1xuICAgICAgICB0aGlzLm1peGluID0gbmV3IFByb3RvY29sTGliKHRoaXMuYXdzUXVlcnlDb21wYXRpYmxlKTtcbiAgICB9XG4gICAgYXN5bmMgc2VyaWFsaXplUmVxdWVzdChvcGVyYXRpb25TY2hlbWEsIGlucHV0LCBjb250ZXh0KSB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSBhd2FpdCBzdXBlci5zZXJpYWxpemVSZXF1ZXN0KG9wZXJhdGlvblNjaGVtYSwgaW5wdXQsIGNvbnRleHQpO1xuICAgICAgICBpZiAoIXJlcXVlc3QucGF0aC5lbmRzV2l0aChcIi9cIikpIHtcbiAgICAgICAgICAgIHJlcXVlc3QucGF0aCArPSBcIi9cIjtcbiAgICAgICAgfVxuICAgICAgICByZXF1ZXN0LmhlYWRlcnNbXCJjb250ZW50LXR5cGVcIl0gPSBgYXBwbGljYXRpb24veC1hbXotanNvbi0ke3RoaXMuZ2V0SnNvblJwY1ZlcnNpb24oKX1gO1xuICAgICAgICByZXF1ZXN0LmhlYWRlcnNbXCJ4LWFtei10YXJnZXRcIl0gPSBgJHt0aGlzLnNlcnZpY2VUYXJnZXR9LiR7b3BlcmF0aW9uU2NoZW1hLm5hbWV9YDtcbiAgICAgICAgaWYgKHRoaXMuYXdzUXVlcnlDb21wYXRpYmxlKSB7XG4gICAgICAgICAgICByZXF1ZXN0LmhlYWRlcnNbXCJ4LWFtem4tcXVlcnktbW9kZVwiXSA9IFwidHJ1ZVwiO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkZXJlZihvcGVyYXRpb25TY2hlbWEuaW5wdXQpID09PSBcInVuaXRcIiB8fCAhcmVxdWVzdC5ib2R5KSB7XG4gICAgICAgICAgICByZXF1ZXN0LmJvZHkgPSBcInt9XCI7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlcXVlc3Q7XG4gICAgfVxuICAgIGdldFBheWxvYWRDb2RlYygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29kZWM7XG4gICAgfVxuICAgIGFzeW5jIGhhbmRsZUVycm9yKG9wZXJhdGlvblNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UsIGRhdGFPYmplY3QsIG1ldGFkYXRhKSB7XG4gICAgICAgIGlmICh0aGlzLmF3c1F1ZXJ5Q29tcGF0aWJsZSkge1xuICAgICAgICAgICAgdGhpcy5taXhpbi5zZXRRdWVyeUNvbXBhdEVycm9yKGRhdGFPYmplY3QsIHJlc3BvbnNlKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBlcnJvcklkZW50aWZpZXIgPSBsb2FkUmVzdEpzb25FcnJvckNvZGUocmVzcG9uc2UsIGRhdGFPYmplY3QpID8/IFwiVW5rbm93blwiO1xuICAgICAgICB0aGlzLm1peGluLmNvbXBvc2UodGhpcy5jb21wb3NpdGVFcnJvclJlZ2lzdHJ5LCBlcnJvcklkZW50aWZpZXIsIHRoaXMub3B0aW9ucy5kZWZhdWx0TmFtZXNwYWNlKTtcbiAgICAgICAgY29uc3QgeyBlcnJvclNjaGVtYSwgZXJyb3JNZXRhZGF0YSB9ID0gYXdhaXQgdGhpcy5taXhpbi5nZXRFcnJvclNjaGVtYU9yVGhyb3dCYXNlRXhjZXB0aW9uKGVycm9ySWRlbnRpZmllciwgdGhpcy5vcHRpb25zLmRlZmF1bHROYW1lc3BhY2UsIHJlc3BvbnNlLCBkYXRhT2JqZWN0LCBtZXRhZGF0YSwgdGhpcy5hd3NRdWVyeUNvbXBhdGlibGUgPyB0aGlzLm1peGluLmZpbmRRdWVyeUNvbXBhdGlibGVFcnJvciA6IHVuZGVmaW5lZCk7XG4gICAgICAgIGNvbnN0IG5zID0gTm9ybWFsaXplZFNjaGVtYS5vZihlcnJvclNjaGVtYSk7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBkYXRhT2JqZWN0Lm1lc3NhZ2UgPz8gZGF0YU9iamVjdC5NZXNzYWdlID8/IFwiVW5rbm93bkVycm9yXCI7XG4gICAgICAgIGNvbnN0IEVycm9yQ3RvciA9IHRoaXMuY29tcG9zaXRlRXJyb3JSZWdpc3RyeS5nZXRFcnJvckN0b3IoZXJyb3JTY2hlbWEpID8/IEVycm9yO1xuICAgICAgICBjb25zdCBleGNlcHRpb24gPSBuZXcgRXJyb3JDdG9yKG1lc3NhZ2UpO1xuICAgICAgICBjb25zdCBvdXRwdXQgPSB7fTtcbiAgICAgICAgY29uc3QgZXJyb3JEZXNlcmlhbGl6ZXIgPSB0aGlzLmNvZGVjLmNyZWF0ZURlc2VyaWFsaXplcigpO1xuICAgICAgICBmb3IgKGNvbnN0IFtuYW1lLCBtZW1iZXJdIG9mIG5zLnN0cnVjdEl0ZXJhdG9yKCkpIHtcbiAgICAgICAgICAgIGlmIChkYXRhT2JqZWN0W25hbWVdICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICBvdXRwdXRbbmFtZV0gPSBlcnJvckRlc2VyaWFsaXplci5yZWFkT2JqZWN0KG1lbWJlciwgZGF0YU9iamVjdFtuYW1lXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuYXdzUXVlcnlDb21wYXRpYmxlKSB7XG4gICAgICAgICAgICB0aGlzLm1peGluLnF1ZXJ5Q29tcGF0T3V0cHV0KGRhdGFPYmplY3QsIG91dHB1dCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgdGhpcy5taXhpbi5kZWNvcmF0ZVNlcnZpY2VFeGNlcHRpb24oT2JqZWN0LmFzc2lnbihleGNlcHRpb24sIGVycm9yTWV0YWRhdGEsIHtcbiAgICAgICAgICAgICRmYXVsdDogbnMuZ2V0TWVyZ2VkVHJhaXRzKCkuZXJyb3IsXG4gICAgICAgICAgICBtZXNzYWdlLFxuICAgICAgICB9LCBvdXRwdXQpLCBkYXRhT2JqZWN0KTtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgQXdzSnNvblJwY1Byb3RvY29sIH0gZnJvbSBcIi4vQXdzSnNvblJwY1Byb3RvY29sXCI7XG5leHBvcnQgY2xhc3MgQXdzSnNvbjFfMFByb3RvY29sIGV4dGVuZHMgQXdzSnNvblJwY1Byb3RvY29sIHtcbiAgICBjb25zdHJ1Y3Rvcih7IGRlZmF1bHROYW1lc3BhY2UsIGVycm9yVHlwZVJlZ2lzdHJpZXMsIHNlcnZpY2VUYXJnZXQsIGF3c1F1ZXJ5Q29tcGF0aWJsZSwganNvbkNvZGVjLCB9KSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIGRlZmF1bHROYW1lc3BhY2UsXG4gICAgICAgICAgICBlcnJvclR5cGVSZWdpc3RyaWVzLFxuICAgICAgICAgICAgc2VydmljZVRhcmdldCxcbiAgICAgICAgICAgIGF3c1F1ZXJ5Q29tcGF0aWJsZSxcbiAgICAgICAgICAgIGpzb25Db2RlYyxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGdldFNoYXBlSWQoKSB7XG4gICAgICAgIHJldHVybiBcImF3cy5wcm90b2NvbHMjYXdzSnNvbjFfMFwiO1xuICAgIH1cbiAgICBnZXRKc29uUnBjVmVyc2lvbigpIHtcbiAgICAgICAgcmV0dXJuIFwiMS4wXCI7XG4gICAgfVxuICAgIGdldERlZmF1bHRDb250ZW50VHlwZSgpIHtcbiAgICAgICAgcmV0dXJuIFwiYXBwbGljYXRpb24veC1hbXotanNvbi0xLjBcIjtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgQXdzSnNvblJwY1Byb3RvY29sIH0gZnJvbSBcIi4vQXdzSnNvblJwY1Byb3RvY29sXCI7XG5leHBvcnQgY2xhc3MgQXdzSnNvbjFfMVByb3RvY29sIGV4dGVuZHMgQXdzSnNvblJwY1Byb3RvY29sIHtcbiAgICBjb25zdHJ1Y3Rvcih7IGRlZmF1bHROYW1lc3BhY2UsIGVycm9yVHlwZVJlZ2lzdHJpZXMsIHNlcnZpY2VUYXJnZXQsIGF3c1F1ZXJ5Q29tcGF0aWJsZSwganNvbkNvZGVjLCB9KSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIGRlZmF1bHROYW1lc3BhY2UsXG4gICAgICAgICAgICBlcnJvclR5cGVSZWdpc3RyaWVzLFxuICAgICAgICAgICAgc2VydmljZVRhcmdldCxcbiAgICAgICAgICAgIGF3c1F1ZXJ5Q29tcGF0aWJsZSxcbiAgICAgICAgICAgIGpzb25Db2RlYyxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGdldFNoYXBlSWQoKSB7XG4gICAgICAgIHJldHVybiBcImF3cy5wcm90b2NvbHMjYXdzSnNvbjFfMVwiO1xuICAgIH1cbiAgICBnZXRKc29uUnBjVmVyc2lvbigpIHtcbiAgICAgICAgcmV0dXJuIFwiMS4xXCI7XG4gICAgfVxuICAgIGdldERlZmF1bHRDb250ZW50VHlwZSgpIHtcbiAgICAgICAgcmV0dXJuIFwiYXBwbGljYXRpb24veC1hbXotanNvbi0xLjFcIjtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgSHR0cEJpbmRpbmdQcm90b2NvbCwgSHR0cEludGVyY2VwdGluZ1NoYXBlRGVzZXJpYWxpemVyLCBIdHRwSW50ZXJjZXB0aW5nU2hhcGVTZXJpYWxpemVyLCB9IGZyb20gXCJAc21pdGh5L2NvcmUvcHJvdG9jb2xzXCI7XG5pbXBvcnQgeyBOb3JtYWxpemVkU2NoZW1hIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IFByb3RvY29sTGliIH0gZnJvbSBcIi4uL1Byb3RvY29sTGliXCI7XG5pbXBvcnQgeyBKc29uQ29kZWMgfSBmcm9tIFwiLi9Kc29uQ29kZWNcIjtcbmltcG9ydCB7IGxvYWRSZXN0SnNvbkVycm9yQ29kZSB9IGZyb20gXCIuL3BhcnNlSnNvbkJvZHlcIjtcbmV4cG9ydCBjbGFzcyBBd3NSZXN0SnNvblByb3RvY29sIGV4dGVuZHMgSHR0cEJpbmRpbmdQcm90b2NvbCB7XG4gICAgc2VyaWFsaXplcjtcbiAgICBkZXNlcmlhbGl6ZXI7XG4gICAgY29kZWM7XG4gICAgbWl4aW4gPSBuZXcgUHJvdG9jb2xMaWIoKTtcbiAgICBjb25zdHJ1Y3Rvcih7IGRlZmF1bHROYW1lc3BhY2UsIGVycm9yVHlwZVJlZ2lzdHJpZXMsIH0pIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgZGVmYXVsdE5hbWVzcGFjZSxcbiAgICAgICAgICAgIGVycm9yVHlwZVJlZ2lzdHJpZXMsXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBzZXR0aW5ncyA9IHtcbiAgICAgICAgICAgIHRpbWVzdGFtcEZvcm1hdDoge1xuICAgICAgICAgICAgICAgIHVzZVRyYWl0OiB0cnVlLFxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IDcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaHR0cEJpbmRpbmdzOiB0cnVlLFxuICAgICAgICAgICAganNvbk5hbWU6IHRydWUsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuY29kZWMgPSBuZXcgSnNvbkNvZGVjKHNldHRpbmdzKTtcbiAgICAgICAgdGhpcy5zZXJpYWxpemVyID0gbmV3IEh0dHBJbnRlcmNlcHRpbmdTaGFwZVNlcmlhbGl6ZXIodGhpcy5jb2RlYy5jcmVhdGVTZXJpYWxpemVyKCksIHNldHRpbmdzKTtcbiAgICAgICAgdGhpcy5kZXNlcmlhbGl6ZXIgPSBuZXcgSHR0cEludGVyY2VwdGluZ1NoYXBlRGVzZXJpYWxpemVyKHRoaXMuY29kZWMuY3JlYXRlRGVzZXJpYWxpemVyKCksIHNldHRpbmdzKTtcbiAgICB9XG4gICAgZ2V0U2hhcGVJZCgpIHtcbiAgICAgICAgcmV0dXJuIFwiYXdzLnByb3RvY29scyNyZXN0SnNvbjFcIjtcbiAgICB9XG4gICAgZ2V0UGF5bG9hZENvZGVjKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb2RlYztcbiAgICB9XG4gICAgc2V0U2VyZGVDb250ZXh0KHNlcmRlQ29udGV4dCkge1xuICAgICAgICB0aGlzLmNvZGVjLnNldFNlcmRlQ29udGV4dChzZXJkZUNvbnRleHQpO1xuICAgICAgICBzdXBlci5zZXRTZXJkZUNvbnRleHQoc2VyZGVDb250ZXh0KTtcbiAgICB9XG4gICAgYXN5bmMgc2VyaWFsaXplUmVxdWVzdChvcGVyYXRpb25TY2hlbWEsIGlucHV0LCBjb250ZXh0KSB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSBhd2FpdCBzdXBlci5zZXJpYWxpemVSZXF1ZXN0KG9wZXJhdGlvblNjaGVtYSwgaW5wdXQsIGNvbnRleHQpO1xuICAgICAgICBjb25zdCBpbnB1dFNjaGVtYSA9IE5vcm1hbGl6ZWRTY2hlbWEub2Yob3BlcmF0aW9uU2NoZW1hLmlucHV0KTtcbiAgICAgICAgaWYgKCFyZXF1ZXN0LmhlYWRlcnNbXCJjb250ZW50LXR5cGVcIl0pIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRlbnRUeXBlID0gdGhpcy5taXhpbi5yZXNvbHZlUmVzdENvbnRlbnRUeXBlKHRoaXMuZ2V0RGVmYXVsdENvbnRlbnRUeXBlKCksIGlucHV0U2NoZW1hKTtcbiAgICAgICAgICAgIGlmIChjb250ZW50VHlwZSkge1xuICAgICAgICAgICAgICAgIHJlcXVlc3QuaGVhZGVyc1tcImNvbnRlbnQtdHlwZVwiXSA9IGNvbnRlbnRUeXBlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChyZXF1ZXN0LmJvZHkgPT0gbnVsbCAmJiByZXF1ZXN0LmhlYWRlcnNbXCJjb250ZW50LXR5cGVcIl0gPT09IHRoaXMuZ2V0RGVmYXVsdENvbnRlbnRUeXBlKCkpIHtcbiAgICAgICAgICAgIHJlcXVlc3QuYm9keSA9IFwie31cIjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVxdWVzdDtcbiAgICB9XG4gICAgYXN5bmMgZGVzZXJpYWxpemVSZXNwb25zZShvcGVyYXRpb25TY2hlbWEsIGNvbnRleHQsIHJlc3BvbnNlKSB7XG4gICAgICAgIGNvbnN0IG91dHB1dCA9IGF3YWl0IHN1cGVyLmRlc2VyaWFsaXplUmVzcG9uc2Uob3BlcmF0aW9uU2NoZW1hLCBjb250ZXh0LCByZXNwb25zZSk7XG4gICAgICAgIGNvbnN0IG91dHB1dFNjaGVtYSA9IE5vcm1hbGl6ZWRTY2hlbWEub2Yob3BlcmF0aW9uU2NoZW1hLm91dHB1dCk7XG4gICAgICAgIGZvciAoY29uc3QgW25hbWUsIG1lbWJlcl0gb2Ygb3V0cHV0U2NoZW1hLnN0cnVjdEl0ZXJhdG9yKCkpIHtcbiAgICAgICAgICAgIGlmIChtZW1iZXIuZ2V0TWVtYmVyVHJhaXRzKCkuaHR0cFBheWxvYWQgJiYgIShuYW1lIGluIG91dHB1dCkpIHtcbiAgICAgICAgICAgICAgICBvdXRwdXRbbmFtZV0gPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvdXRwdXQ7XG4gICAgfVxuICAgIGFzeW5jIGhhbmRsZUVycm9yKG9wZXJhdGlvblNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UsIGRhdGFPYmplY3QsIG1ldGFkYXRhKSB7XG4gICAgICAgIGNvbnN0IGVycm9ySWRlbnRpZmllciA9IGxvYWRSZXN0SnNvbkVycm9yQ29kZShyZXNwb25zZSwgZGF0YU9iamVjdCkgPz8gXCJVbmtub3duXCI7XG4gICAgICAgIHRoaXMubWl4aW4uY29tcG9zZSh0aGlzLmNvbXBvc2l0ZUVycm9yUmVnaXN0cnksIGVycm9ySWRlbnRpZmllciwgdGhpcy5vcHRpb25zLmRlZmF1bHROYW1lc3BhY2UpO1xuICAgICAgICBjb25zdCB7IGVycm9yU2NoZW1hLCBlcnJvck1ldGFkYXRhIH0gPSBhd2FpdCB0aGlzLm1peGluLmdldEVycm9yU2NoZW1hT3JUaHJvd0Jhc2VFeGNlcHRpb24oZXJyb3JJZGVudGlmaWVyLCB0aGlzLm9wdGlvbnMuZGVmYXVsdE5hbWVzcGFjZSwgcmVzcG9uc2UsIGRhdGFPYmplY3QsIG1ldGFkYXRhKTtcbiAgICAgICAgY29uc3QgbnMgPSBOb3JtYWxpemVkU2NoZW1hLm9mKGVycm9yU2NoZW1hKTtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGRhdGFPYmplY3QubWVzc2FnZSA/PyBkYXRhT2JqZWN0Lk1lc3NhZ2UgPz8gXCJVbmtub3duRXJyb3JcIjtcbiAgICAgICAgY29uc3QgRXJyb3JDdG9yID0gdGhpcy5jb21wb3NpdGVFcnJvclJlZ2lzdHJ5LmdldEVycm9yQ3RvcihlcnJvclNjaGVtYSkgPz8gRXJyb3I7XG4gICAgICAgIGNvbnN0IGV4Y2VwdGlvbiA9IG5ldyBFcnJvckN0b3IobWVzc2FnZSk7XG4gICAgICAgIGF3YWl0IHRoaXMuZGVzZXJpYWxpemVIdHRwTWVzc2FnZShlcnJvclNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UsIGRhdGFPYmplY3QpO1xuICAgICAgICBjb25zdCBvdXRwdXQgPSB7fTtcbiAgICAgICAgY29uc3QgZXJyb3JEZXNlcmlhbGl6ZXIgPSB0aGlzLmNvZGVjLmNyZWF0ZURlc2VyaWFsaXplcigpO1xuICAgICAgICBmb3IgKGNvbnN0IFtuYW1lLCBtZW1iZXJdIG9mIG5zLnN0cnVjdEl0ZXJhdG9yKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IG1lbWJlci5nZXRNZXJnZWRUcmFpdHMoKS5qc29uTmFtZSA/PyBuYW1lO1xuICAgICAgICAgICAgb3V0cHV0W25hbWVdID0gZXJyb3JEZXNlcmlhbGl6ZXIucmVhZE9iamVjdChtZW1iZXIsIGRhdGFPYmplY3RbdGFyZ2V0XSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgdGhpcy5taXhpbi5kZWNvcmF0ZVNlcnZpY2VFeGNlcHRpb24oT2JqZWN0LmFzc2lnbihleGNlcHRpb24sIGVycm9yTWV0YWRhdGEsIHtcbiAgICAgICAgICAgICRmYXVsdDogbnMuZ2V0TWVyZ2VkVHJhaXRzKCkuZXJyb3IsXG4gICAgICAgICAgICBtZXNzYWdlLFxuICAgICAgICB9LCBvdXRwdXQpLCBkYXRhT2JqZWN0KTtcbiAgICB9XG4gICAgZ2V0RGVmYXVsdENvbnRlbnRUeXBlKCkge1xuICAgICAgICByZXR1cm4gXCJhcHBsaWNhdGlvbi9qc29uXCI7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IGV4cGVjdFVuaW9uIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuZXhwb3J0IGNvbnN0IGF3c0V4cGVjdFVuaW9uID0gKHZhbHVlKSA9PiB7XG4gICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIiAmJiBcIl9fdHlwZVwiIGluIHZhbHVlKSB7XG4gICAgICAgIGRlbGV0ZSB2YWx1ZS5fX3R5cGU7XG4gICAgfVxuICAgIHJldHVybiBleHBlY3RVbmlvbih2YWx1ZSk7XG59O1xuIiwgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5FbnRpdHlEZWNvZGVySW1wbCA9IGV4cG9ydHMuQ1VSUkVOQ1kgPSBleHBvcnRzLkNPTU1PTl9IVE1MID0gZXhwb3J0cy5YTUwgPSB2b2lkIDA7XG5leHBvcnRzLlhNTCA9IHtcbiAgICBhbXA6IFwiJlwiLFxuICAgIGFwb3M6IFwiJ1wiLFxuICAgIGd0OiBcIj5cIixcbiAgICBsdDogXCI8XCIsXG4gICAgcXVvdDogJ1wiJyxcbn07XG5leHBvcnRzLkNPTU1PTl9IVE1MID0ge1xuICAgIG5ic3A6IFwiXFx1MDBhMFwiLFxuICAgIGNvcHk6IFwiXFx1MDBhOVwiLFxuICAgIHJlZzogXCJcXHUwMGFlXCIsXG4gICAgdHJhZGU6IFwiXFx1MjEyMlwiLFxuICAgIG1kYXNoOiBcIlxcdTIwMTRcIixcbiAgICBuZGFzaDogXCJcXHUyMDEzXCIsXG4gICAgaGVsbGlwOiBcIlxcdTIwMjZcIixcbiAgICBsYXF1bzogXCJcXHUwMGFiXCIsXG4gICAgcmFxdW86IFwiXFx1MDBiYlwiLFxuICAgIGxzcXVvOiBcIlxcdTIwMThcIixcbiAgICByc3F1bzogXCJcXHUyMDE5XCIsXG4gICAgbGRxdW86IFwiXFx1MjAxY1wiLFxuICAgIHJkcXVvOiBcIlxcdTIwMWRcIixcbiAgICBidWxsOiBcIlxcdTIwMjJcIixcbiAgICBwYXJhOiBcIlxcdTAwYjZcIixcbiAgICBzZWN0OiBcIlxcdTAwYTdcIixcbiAgICBkZWc6IFwiXFx1MDBiMFwiLFxuICAgIGZyYWMxMjogXCJcXHUwMGJkXCIsXG4gICAgZnJhYzE0OiBcIlxcdTAwYmNcIixcbiAgICBmcmFjMzQ6IFwiXFx1MDBiZVwiLFxufTtcbmV4cG9ydHMuQ1VSUkVOQ1kgPSB7XG4gICAgY2VudDogXCJcXHUwMGEyXCIsXG4gICAgcG91bmQ6IFwiXFx1MDBhM1wiLFxuICAgIGN1cnJlbjogXCJcXHUwMGE0XCIsXG4gICAgeWVuOiBcIlxcdTAwYTVcIixcbiAgICBldXJvOiBcIlxcdTIwYWNcIixcbiAgICBkb2xsYXI6IFwiJFwiLFxuICAgIGZub2Y6IFwiXFx1MDE5MlwiLFxuICAgIGlucjogXCJcXHUyMGI5XCIsXG4gICAgYWY6IFwiXFx1MDYwYlwiLFxuICAgIGJpcnI6IFwiXFx1MTI2NVxcdTEyMmRcIixcbiAgICBwZXNvOiBcIlxcdTIwYjFcIixcbiAgICBydWI6IFwiXFx1MjBiZFwiLFxuICAgIHdvbjogXCJcXHUyMGE5XCIsXG4gICAgeXVhbjogXCJcXHUwMGE1XCIsXG4gICAgY2VkaWw6IFwiXFx1MDBiOFwiLFxufTtcbmNvbnN0IFNQRUNJQUxfQ0hBUlMgPSBuZXcgU2V0KFwiIT9cXFxcL1tdJCV7fV4mKigpPD58K1wiKTtcbmZ1bmN0aW9uIHZhbGlkYXRlRW50aXR5TmFtZShuYW1lKSB7XG4gICAgaWYgKG5hbWVbMF0gPT09IFwiI1wiKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgW0VudGl0eVJlcGxhY2VyXSBJbnZhbGlkIGNoYXJhY3RlciAnIycgaW4gZW50aXR5IG5hbWU6IFwiJHtuYW1lfVwiYCk7XG4gICAgfVxuICAgIGZvciAoY29uc3QgY2ggb2YgbmFtZSkge1xuICAgICAgICBpZiAoU1BFQ0lBTF9DSEFSUy5oYXMoY2gpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFtFbnRpdHlSZXBsYWNlcl0gSW52YWxpZCBjaGFyYWN0ZXIgJyR7Y2h9JyBpbiBlbnRpdHkgbmFtZTogXCIke25hbWV9XCJgKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbmFtZTtcbn1cbmZ1bmN0aW9uIG1lcmdlRW50aXR5TWFwcyguLi5tYXBzKSB7XG4gICAgY29uc3Qgb3V0ID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICBmb3IgKGNvbnN0IG1hcCBvZiBtYXBzKSB7XG4gICAgICAgIGlmICghbWFwKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhtYXApKSB7XG4gICAgICAgICAgICBjb25zdCByYXcgPSBtYXBba2V5XTtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgcmF3ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAgICAgb3V0W2tleV0gPSByYXc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChyYXcgJiYgdHlwZW9mIHJhdyA9PT0gXCJvYmplY3RcIiAmJiByYXcudmFsICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWwgPSByYXcudmFsO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAgICAgICAgIG91dFtrZXldID0gdmFsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gb3V0O1xufVxuY29uc3QgTElNSVRfVElFUl9FWFRFUk5BTCA9IFwiZXh0ZXJuYWxcIjtcbmNvbnN0IExJTUlUX1RJRVJfQkFTRSA9IFwiYmFzZVwiO1xuY29uc3QgTElNSVRfVElFUl9BTEwgPSBcImFsbFwiO1xuZnVuY3Rpb24gcGFyc2VMaW1pdFRpZXJzKHJhdykge1xuICAgIGlmICghcmF3IHx8IHJhdyA9PT0gTElNSVRfVElFUl9FWFRFUk5BTCkge1xuICAgICAgICByZXR1cm4gbmV3IFNldChbTElNSVRfVElFUl9FWFRFUk5BTF0pO1xuICAgIH1cbiAgICBpZiAocmF3ID09PSBMSU1JVF9USUVSX0FMTCkge1xuICAgICAgICByZXR1cm4gbmV3IFNldChbTElNSVRfVElFUl9BTExdKTtcbiAgICB9XG4gICAgaWYgKHJhdyA9PT0gTElNSVRfVElFUl9CQVNFKSB7XG4gICAgICAgIHJldHVybiBuZXcgU2V0KFtMSU1JVF9USUVSX0JBU0VdKTtcbiAgICB9XG4gICAgaWYgKEFycmF5LmlzQXJyYXkocmF3KSkge1xuICAgICAgICByZXR1cm4gbmV3IFNldChyYXcpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IFNldChbTElNSVRfVElFUl9FWFRFUk5BTF0pO1xufVxuY29uc3QgTkNSX0xFVkVMID0gT2JqZWN0LmZyZWV6ZSh7IGFsbG93OiAwLCBsZWF2ZTogMSwgcmVtb3ZlOiAyLCB0aHJvdzogMyB9KTtcbmNvbnN0IFhNTDEwX0FMTE9XRURfQzAgPSBuZXcgU2V0KFsweDA5LCAweDBhLCAweDBkXSk7XG5mdW5jdGlvbiBwYXJzZU5DUkNvbmZpZyhuY3IpIHtcbiAgICBpZiAoIW5jcikge1xuICAgICAgICByZXR1cm4geyB4bWxWZXJzaW9uOiAxLjAsIG9uTGV2ZWw6IE5DUl9MRVZFTC5hbGxvdywgbnVsbExldmVsOiBOQ1JfTEVWRUwucmVtb3ZlIH07XG4gICAgfVxuICAgIGNvbnN0IHhtbFZlcnNpb24gPSBuY3IueG1sVmVyc2lvbiA9PT0gMS4xID8gMS4xIDogMS4wO1xuICAgIGNvbnN0IG9uTGV2ZWwgPSBOQ1JfTEVWRUxbbmNyLm9uTkNSID8/IFwiYWxsb3dcIl0gPz8gTkNSX0xFVkVMLmFsbG93O1xuICAgIGNvbnN0IG51bGxMZXZlbCA9IE5DUl9MRVZFTFtuY3IubnVsbE5DUiA/PyBcInJlbW92ZVwiXSA/PyBOQ1JfTEVWRUwucmVtb3ZlO1xuICAgIGNvbnN0IGNsYW1wZWROdWxsID0gTWF0aC5tYXgobnVsbExldmVsLCBOQ1JfTEVWRUwucmVtb3ZlKTtcbiAgICByZXR1cm4geyB4bWxWZXJzaW9uLCBvbkxldmVsLCBudWxsTGV2ZWw6IGNsYW1wZWROdWxsIH07XG59XG5jb25zdCBFbnRpdHlEZWNvZGVySW1wbCA9IGNsYXNzIEVudGl0eURlY29kZXJJbXBsIHtcbiAgICBfbGltaXQ7XG4gICAgX21heFRvdGFsRXhwYW5zaW9ucztcbiAgICBfbWF4RXhwYW5kZWRMZW5ndGg7XG4gICAgX3Bvc3RDaGVjaztcbiAgICBfbGltaXRUaWVycztcbiAgICBfbnVtZXJpY0FsbG93ZWQ7XG4gICAgX2Jhc2VNYXA7XG4gICAgX2V4dGVybmFsTWFwO1xuICAgIF9pbnB1dE1hcDtcbiAgICBfdG90YWxFeHBhbnNpb25zO1xuICAgIF9leHBhbmRlZExlbmd0aDtcbiAgICBfcmVtb3ZlU2V0O1xuICAgIF9sZWF2ZVNldDtcbiAgICBfbmNyWG1sVmVyc2lvbjtcbiAgICBfbmNyT25MZXZlbDtcbiAgICBfbmNyTnVsbExldmVsO1xuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnMgPSB7fSkge1xuICAgICAgICB0aGlzLl9saW1pdCA9IG9wdGlvbnMubGltaXQgfHwge307XG4gICAgICAgIHRoaXMuX21heFRvdGFsRXhwYW5zaW9ucyA9IHRoaXMuX2xpbWl0Lm1heFRvdGFsRXhwYW5zaW9ucyB8fCAwO1xuICAgICAgICB0aGlzLl9tYXhFeHBhbmRlZExlbmd0aCA9IHRoaXMuX2xpbWl0Lm1heEV4cGFuZGVkTGVuZ3RoIHx8IDA7XG4gICAgICAgIHRoaXMuX3Bvc3RDaGVjayA9IHR5cGVvZiBvcHRpb25zLnBvc3RDaGVjayA9PT0gXCJmdW5jdGlvblwiID8gb3B0aW9ucy5wb3N0Q2hlY2sgOiAocikgPT4gcjtcbiAgICAgICAgdGhpcy5fbGltaXRUaWVycyA9IHBhcnNlTGltaXRUaWVycyh0aGlzLl9saW1pdC5hcHBseUxpbWl0c1RvID8/IExJTUlUX1RJRVJfRVhURVJOQUwpO1xuICAgICAgICB0aGlzLl9udW1lcmljQWxsb3dlZCA9IG9wdGlvbnMubnVtZXJpY0FsbG93ZWQgPz8gdHJ1ZTtcbiAgICAgICAgdGhpcy5fYmFzZU1hcCA9IG1lcmdlRW50aXR5TWFwcyhleHBvcnRzLlhNTCwgb3B0aW9ucy5uYW1lZEVudGl0aWVzIHx8IG51bGwpO1xuICAgICAgICB0aGlzLl9leHRlcm5hbE1hcCA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgICAgIHRoaXMuX2lucHV0TWFwID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgICAgdGhpcy5fdG90YWxFeHBhbnNpb25zID0gMDtcbiAgICAgICAgdGhpcy5fZXhwYW5kZWRMZW5ndGggPSAwO1xuICAgICAgICB0aGlzLl9yZW1vdmVTZXQgPSBuZXcgU2V0KG9wdGlvbnMucmVtb3ZlICYmIEFycmF5LmlzQXJyYXkob3B0aW9ucy5yZW1vdmUpID8gb3B0aW9ucy5yZW1vdmUgOiBbXSk7XG4gICAgICAgIHRoaXMuX2xlYXZlU2V0ID0gbmV3IFNldChvcHRpb25zLmxlYXZlICYmIEFycmF5LmlzQXJyYXkob3B0aW9ucy5sZWF2ZSkgPyBvcHRpb25zLmxlYXZlIDogW10pO1xuICAgICAgICBjb25zdCBuY3JDZmcgPSBwYXJzZU5DUkNvbmZpZyhvcHRpb25zLm5jcik7XG4gICAgICAgIHRoaXMuX25jclhtbFZlcnNpb24gPSBuY3JDZmcueG1sVmVyc2lvbjtcbiAgICAgICAgdGhpcy5fbmNyT25MZXZlbCA9IG5jckNmZy5vbkxldmVsO1xuICAgICAgICB0aGlzLl9uY3JOdWxsTGV2ZWwgPSBuY3JDZmcubnVsbExldmVsO1xuICAgIH1cbiAgICBzZXRFeHRlcm5hbEVudGl0aWVzKG1hcCkge1xuICAgICAgICBpZiAobWFwKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhtYXApKSB7XG4gICAgICAgICAgICAgICAgdmFsaWRhdGVFbnRpdHlOYW1lKGtleSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fZXh0ZXJuYWxNYXAgPSBtZXJnZUVudGl0eU1hcHMobWFwKTtcbiAgICB9XG4gICAgYWRkRXh0ZXJuYWxFbnRpdHkoa2V5LCB2YWx1ZSkge1xuICAgICAgICB2YWxpZGF0ZUVudGl0eU5hbWUoa2V5KTtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiAmJiB2YWx1ZS5pbmRleE9mKFwiJlwiKSA9PT0gLTEpIHtcbiAgICAgICAgICAgIHRoaXMuX2V4dGVybmFsTWFwW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBhZGRJbnB1dEVudGl0aWVzKG1hcCkge1xuICAgICAgICB0aGlzLl90b3RhbEV4cGFuc2lvbnMgPSAwO1xuICAgICAgICB0aGlzLl9leHBhbmRlZExlbmd0aCA9IDA7XG4gICAgICAgIHRoaXMuX2lucHV0TWFwID0gbWVyZ2VFbnRpdHlNYXBzKG1hcCk7XG4gICAgfVxuICAgIHJlc2V0KCkge1xuICAgICAgICB0aGlzLl9pbnB1dE1hcCA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgICAgIHRoaXMuX3RvdGFsRXhwYW5zaW9ucyA9IDA7XG4gICAgICAgIHRoaXMuX2V4cGFuZGVkTGVuZ3RoID0gMDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIHNldFhtbFZlcnNpb24odmVyc2lvbikge1xuICAgICAgICB0aGlzLl9uY3JYbWxWZXJzaW9uID0gdmVyc2lvbiA9PT0gXCIxLjFcIiB8fCB2ZXJzaW9uID09PSAxLjEgPyAxLjEgOiAxLjA7XG4gICAgfVxuICAgIGRlY29kZShzdHIpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBzdHIgIT09IFwic3RyaW5nXCIgfHwgc3RyLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIHN0cjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBvcmlnaW5hbCA9IHN0cjtcbiAgICAgICAgY29uc3QgY2h1bmtzID0gW107XG4gICAgICAgIGNvbnN0IGxlbiA9IHN0ci5sZW5ndGg7XG4gICAgICAgIGxldCBsYXN0ID0gMDtcbiAgICAgICAgbGV0IGkgPSAwO1xuICAgICAgICBjb25zdCBsaW1pdEV4cGFuc2lvbnMgPSB0aGlzLl9tYXhUb3RhbEV4cGFuc2lvbnMgPiAwO1xuICAgICAgICBjb25zdCBsaW1pdExlbmd0aCA9IHRoaXMuX21heEV4cGFuZGVkTGVuZ3RoID4gMDtcbiAgICAgICAgY29uc3QgY2hlY2tMaW1pdHMgPSBsaW1pdEV4cGFuc2lvbnMgfHwgbGltaXRMZW5ndGg7XG4gICAgICAgIHdoaWxlIChpIDwgbGVuKSB7XG4gICAgICAgICAgICBpZiAoc3RyLmNoYXJDb2RlQXQoaSkgIT09IDM4KSB7XG4gICAgICAgICAgICAgICAgaSsrO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IGogPSBpICsgMTtcbiAgICAgICAgICAgIHdoaWxlIChqIDwgbGVuICYmIHN0ci5jaGFyQ29kZUF0KGopICE9PSA1OSAmJiBqIC0gaSA8PSAzMikge1xuICAgICAgICAgICAgICAgIGorKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChqID49IGxlbiB8fCBzdHIuY2hhckNvZGVBdChqKSAhPT0gNTkpIHtcbiAgICAgICAgICAgICAgICBpKys7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCB0b2tlbiA9IHN0ci5zbGljZShpICsgMSwgaik7XG4gICAgICAgICAgICBpZiAodG9rZW4ubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgaSsrO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IHJlcGxhY2VtZW50O1xuICAgICAgICAgICAgbGV0IHRpZXI7XG4gICAgICAgICAgICBpZiAodGhpcy5fcmVtb3ZlU2V0Lmhhcyh0b2tlbikpIHtcbiAgICAgICAgICAgICAgICByZXBsYWNlbWVudCA9IFwiXCI7XG4gICAgICAgICAgICAgICAgaWYgKHRpZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICB0aWVyID0gTElNSVRfVElFUl9FWFRFUk5BTDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmICh0aGlzLl9sZWF2ZVNldC5oYXModG9rZW4pKSB7XG4gICAgICAgICAgICAgICAgaSsrO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAodG9rZW4uY2hhckNvZGVBdCgwKSA9PT0gMzUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBuY3JSZXN1bHQgPSB0aGlzLl9yZXNvbHZlTkNSKHRva2VuKTtcbiAgICAgICAgICAgICAgICBpZiAobmNyUmVzdWx0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgaSsrO1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmVwbGFjZW1lbnQgPSBuY3JSZXN1bHQ7XG4gICAgICAgICAgICAgICAgdGllciA9IExJTUlUX1RJRVJfQkFTRTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc29sdmVkID0gdGhpcy5fcmVzb2x2ZU5hbWUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHJlcGxhY2VtZW50ID0gcmVzb2x2ZWQ/LnZhbHVlO1xuICAgICAgICAgICAgICAgIHRpZXIgPSByZXNvbHZlZD8udGllcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgaSsrO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGkgPiBsYXN0KSB7XG4gICAgICAgICAgICAgICAgY2h1bmtzLnB1c2goc3RyLnNsaWNlKGxhc3QsIGkpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNodW5rcy5wdXNoKHJlcGxhY2VtZW50KTtcbiAgICAgICAgICAgIGxhc3QgPSBqICsgMTtcbiAgICAgICAgICAgIGkgPSBsYXN0O1xuICAgICAgICAgICAgaWYgKGNoZWNrTGltaXRzICYmIHRoaXMuX3RpZXJDb3VudHModGllcikpIHtcbiAgICAgICAgICAgICAgICBpZiAobGltaXRFeHBhbnNpb25zKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3RvdGFsRXhwYW5zaW9ucysrO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fdG90YWxFeHBhbnNpb25zID4gdGhpcy5fbWF4VG90YWxFeHBhbnNpb25zKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFtFbnRpdHlSZXBsYWNlcl0gRW50aXR5IGV4cGFuc2lvbiBjb3VudCBsaW1pdCBleGNlZWRlZDogYCArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYCR7dGhpcy5fdG90YWxFeHBhbnNpb25zfSA+ICR7dGhpcy5fbWF4VG90YWxFeHBhbnNpb25zfWApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChsaW1pdExlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkZWx0YSA9IHJlcGxhY2VtZW50Lmxlbmd0aCAtICh0b2tlbi5sZW5ndGggKyAyKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRlbHRhID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fZXhwYW5kZWRMZW5ndGggKz0gZGVsdGE7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fZXhwYW5kZWRMZW5ndGggPiB0aGlzLl9tYXhFeHBhbmRlZExlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgW0VudGl0eVJlcGxhY2VyXSBFeHBhbmRlZCBjb250ZW50IGxlbmd0aCBsaW1pdCBleGNlZWRlZDogYCArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGAke3RoaXMuX2V4cGFuZGVkTGVuZ3RofSA+ICR7dGhpcy5fbWF4RXhwYW5kZWRMZW5ndGh9YCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxhc3QgPCBsZW4pIHtcbiAgICAgICAgICAgIGNodW5rcy5wdXNoKHN0ci5zbGljZShsYXN0KSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gY2h1bmtzLmxlbmd0aCA9PT0gMCA/IHN0ciA6IGNodW5rcy5qb2luKFwiXCIpO1xuICAgICAgICByZXR1cm4gdGhpcy5fcG9zdENoZWNrKHJlc3VsdCwgb3JpZ2luYWwpO1xuICAgIH1cbiAgICBfdGllckNvdW50cyh0aWVyKSB7XG4gICAgICAgIGlmICh0aGlzLl9saW1pdFRpZXJzLmhhcyhMSU1JVF9USUVSX0FMTCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9saW1pdFRpZXJzLmhhcyh0aWVyKTtcbiAgICB9XG4gICAgX3Jlc29sdmVOYW1lKG5hbWUpIHtcbiAgICAgICAgaWYgKG5hbWUgaW4gdGhpcy5faW5wdXRNYXApIHtcbiAgICAgICAgICAgIHJldHVybiB7IHZhbHVlOiB0aGlzLl9pbnB1dE1hcFtuYW1lXSwgdGllcjogTElNSVRfVElFUl9FWFRFUk5BTCB9O1xuICAgICAgICB9XG4gICAgICAgIGlmIChuYW1lIGluIHRoaXMuX2V4dGVybmFsTWFwKSB7XG4gICAgICAgICAgICByZXR1cm4geyB2YWx1ZTogdGhpcy5fZXh0ZXJuYWxNYXBbbmFtZV0sIHRpZXI6IExJTUlUX1RJRVJfRVhURVJOQUwgfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobmFtZSBpbiB0aGlzLl9iYXNlTWFwKSB7XG4gICAgICAgICAgICByZXR1cm4geyB2YWx1ZTogdGhpcy5fYmFzZU1hcFtuYW1lXSwgdGllcjogTElNSVRfVElFUl9CQVNFIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgX2NsYXNzaWZ5TkNSKGNwKSB7XG4gICAgICAgIGlmIChjcCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX25jck51bGxMZXZlbDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY3AgPj0gMHhkODAwICYmIGNwIDw9IDB4ZGZmZikge1xuICAgICAgICAgICAgcmV0dXJuIE5DUl9MRVZFTC5yZW1vdmU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuX25jclhtbFZlcnNpb24gPT09IDEuMCkge1xuICAgICAgICAgICAgaWYgKGNwID49IDB4MDEgJiYgY3AgPD0gMHgxZiAmJiAhWE1MMTBfQUxMT1dFRF9DMC5oYXMoY3ApKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIE5DUl9MRVZFTC5yZW1vdmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIC0xO1xuICAgIH1cbiAgICBfYXBwbHlOQ1JBY3Rpb24oYWN0aW9uLCB0b2tlbiwgY3ApIHtcbiAgICAgICAgc3dpdGNoIChhY3Rpb24pIHtcbiAgICAgICAgICAgIGNhc2UgTkNSX0xFVkVMLmFsbG93OlxuICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmcuZnJvbUNvZGVQb2ludChjcCk7XG4gICAgICAgICAgICBjYXNlIE5DUl9MRVZFTC5yZW1vdmU6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiXCI7XG4gICAgICAgICAgICBjYXNlIE5DUl9MRVZFTC5sZWF2ZTpcbiAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgY2FzZSBOQ1JfTEVWRUwudGhyb3c6XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBbRW50aXR5RGVjb2Rlcl0gUHJvaGliaXRlZCBudW1lcmljIGNoYXJhY3RlciByZWZlcmVuY2UgYCArXG4gICAgICAgICAgICAgICAgICAgIGAmJHt0b2tlbn07IChVKyR7Y3AudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCkucGFkU3RhcnQoNCwgXCIwXCIpfSlgKTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZy5mcm9tQ29kZVBvaW50KGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBfcmVzb2x2ZU5DUih0b2tlbikge1xuICAgICAgICBjb25zdCBzZWNvbmQgPSB0b2tlbi5jaGFyQ29kZUF0KDEpO1xuICAgICAgICBsZXQgY3A7XG4gICAgICAgIGlmIChzZWNvbmQgPT09IDEyMCB8fCBzZWNvbmQgPT09IDg4KSB7XG4gICAgICAgICAgICBjcCA9IHBhcnNlSW50KHRva2VuLnNsaWNlKDIpLCAxNik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjcCA9IHBhcnNlSW50KHRva2VuLnNsaWNlKDEpLCAxMCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKE51bWJlci5pc05hTihjcCkgfHwgY3AgPCAwIHx8IGNwID4gMHgxMGZmZmYpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbWluaW11bSA9IHRoaXMuX2NsYXNzaWZ5TkNSKGNwKTtcbiAgICAgICAgaWYgKCF0aGlzLl9udW1lcmljQWxsb3dlZCAmJiBtaW5pbXVtIDwgTkNSX0xFVkVMLnJlbW92ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBlZmZlY3RpdmUgPSBtaW5pbXVtID09PSAtMSA/IHRoaXMuX25jck9uTGV2ZWwgOiBNYXRoLm1heCh0aGlzLl9uY3JPbkxldmVsLCBtaW5pbXVtKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FwcGx5TkNSQWN0aW9uKGVmZmVjdGl2ZSwgdG9rZW4sIGNwKTtcbiAgICB9XG59O1xuZXhwb3J0cy5FbnRpdHlEZWNvZGVySW1wbCA9IEVudGl0eURlY29kZXJJbXBsO1xuIiwgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5wYXJzZVhNTCA9IHBhcnNlWE1MO1xuY29uc3QgZmFzdF94bWxfcGFyc2VyXzEgPSByZXF1aXJlKFwiZmFzdC14bWwtcGFyc2VyXCIpO1xuY29uc3Qgbm9kYWJsZV9lbnRpdGllc18xID0gcmVxdWlyZShcIi4veG1sLWV4dGVybmFsL25vZGFibGVfZW50aXRpZXNcIik7XG5jb25zdCBlbnRpdHlEZWNvZGVyID0gbmV3IG5vZGFibGVfZW50aXRpZXNfMS5FbnRpdHlEZWNvZGVySW1wbCh7XG4gICAgbmFtZWRFbnRpdGllczogeyAuLi5ub2RhYmxlX2VudGl0aWVzXzEuWE1MLCAuLi5ub2RhYmxlX2VudGl0aWVzXzEuQ09NTU9OX0hUTUwsIC4uLm5vZGFibGVfZW50aXRpZXNfMS5DVVJSRU5DWSB9LFxuICAgIG51bWVyaWNBbGxvd2VkOiB0cnVlLFxuICAgIGxpbWl0OiB7XG4gICAgICAgIG1heFRvdGFsRXhwYW5zaW9uczogSW5maW5pdHksXG4gICAgfSxcbiAgICBuY3I6IHtcbiAgICAgICAgeG1sVmVyc2lvbjogMS4xLFxuICAgIH0sXG59KTtcbmNvbnN0IHBhcnNlciA9IG5ldyBmYXN0X3htbF9wYXJzZXJfMS5YTUxQYXJzZXIoe1xuICAgIGF0dHJpYnV0ZU5hbWVQcmVmaXg6IFwiXCIsXG4gICAgcHJvY2Vzc0VudGl0aWVzOiB7XG4gICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgIG1heFRvdGFsRXhwYW5zaW9uczogSW5maW5pdHksXG4gICAgfSxcbiAgICBodG1sRW50aXRpZXM6IHRydWUsXG4gICAgZW50aXR5RGVjb2Rlcjoge1xuICAgICAgICBzZXRFeHRlcm5hbEVudGl0aWVzOiAoZW50aXRpZXMpID0+IHtcbiAgICAgICAgICAgIGVudGl0eURlY29kZXIuc2V0RXh0ZXJuYWxFbnRpdGllcyhlbnRpdGllcyk7XG4gICAgICAgIH0sXG4gICAgICAgIGFkZElucHV0RW50aXRpZXM6IChlbnRpdGllcykgPT4ge1xuICAgICAgICAgICAgZW50aXR5RGVjb2Rlci5hZGRJbnB1dEVudGl0aWVzKGVudGl0aWVzKTtcbiAgICAgICAgfSxcbiAgICAgICAgcmVzZXQ6ICgpID0+IHtcbiAgICAgICAgICAgIGVudGl0eURlY29kZXIucmVzZXQoKTtcbiAgICAgICAgfSxcbiAgICAgICAgZGVjb2RlOiAodGV4dCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGVudGl0eURlY29kZXIuZGVjb2RlKHRleHQpO1xuICAgICAgICB9LFxuICAgICAgICBzZXRYbWxWZXJzaW9uOiAodmVyc2lvbikgPT4gdm9pZCB7fSxcbiAgICB9LFxuICAgIGlnbm9yZUF0dHJpYnV0ZXM6IGZhbHNlLFxuICAgIGlnbm9yZURlY2xhcmF0aW9uOiB0cnVlLFxuICAgIHBhcnNlVGFnVmFsdWU6IGZhbHNlLFxuICAgIHRyaW1WYWx1ZXM6IGZhbHNlLFxuICAgIHRhZ1ZhbHVlUHJvY2Vzc29yOiAoXywgdmFsKSA9PiAodmFsLnRyaW0oKSA9PT0gXCJcIiAmJiB2YWwuaW5jbHVkZXMoXCJcXG5cIikgPyBcIlwiIDogdW5kZWZpbmVkKSxcbiAgICBtYXhOZXN0ZWRUYWdzOiBJbmZpbml0eSxcbn0pO1xuZnVuY3Rpb24gcGFyc2VYTUwoeG1sU3RyaW5nKSB7XG4gICAgcmV0dXJuIHBhcnNlci5wYXJzZSh4bWxTdHJpbmcsIHRydWUpO1xufVxuIiwgIid1c2Ugc3RyaWN0JztcblxudmFyIHhtbFBhcnNlciA9IHJlcXVpcmUoJy4veG1sLXBhcnNlcicpO1xuXG5jb25zdCBBVFRSX0VTQ0FQRV9SRSA9IC9bJjw+XCJdL2c7XG5jb25zdCBBVFRSX0VTQ0FQRV9NQVAgPSB7XG4gICAgXCImXCI6IFwiJmFtcDtcIixcbiAgICBcIjxcIjogXCImbHQ7XCIsXG4gICAgXCI+XCI6IFwiJmd0O1wiLFxuICAgICdcIic6IFwiJnF1b3Q7XCIsXG59O1xuZnVuY3Rpb24gZXNjYXBlQXR0cmlidXRlKHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlLnJlcGxhY2UoQVRUUl9FU0NBUEVfUkUsIChjaCkgPT4gQVRUUl9FU0NBUEVfTUFQW2NoXSk7XG59XG5cbmNvbnN0IEVMRU1FTlRfRVNDQVBFX1JFID0gL1smXCInPD5cXHJcXG5cXHUwMDg1XFx1MjAyOF0vZztcbmNvbnN0IEVMRU1FTlRfRVNDQVBFX01BUCA9IHtcbiAgICBcIiZcIjogXCImYW1wO1wiLFxuICAgICdcIic6IFwiJnF1b3Q7XCIsXG4gICAgXCInXCI6IFwiJmFwb3M7XCIsXG4gICAgXCI8XCI6IFwiJmx0O1wiLFxuICAgIFwiPlwiOiBcIiZndDtcIixcbiAgICBcIlxcclwiOiBcIiYjeDBEO1wiLFxuICAgIFwiXFxuXCI6IFwiJiN4MEE7XCIsXG4gICAgXCJcXHUwMDg1XCI6IFwiJiN4ODU7XCIsXG4gICAgXCJcXHUyMDI4XCI6IFwiJiN4MjAyODtcIixcbn07XG5mdW5jdGlvbiBlc2NhcGVFbGVtZW50KHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlLnJlcGxhY2UoRUxFTUVOVF9FU0NBUEVfUkUsIChjaCkgPT4gRUxFTUVOVF9FU0NBUEVfTUFQW2NoXSk7XG59XG5cbmNsYXNzIFhtbFRleHQge1xuICAgIHZhbHVlO1xuICAgIGNvbnN0cnVjdG9yKHZhbHVlKSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB9XG4gICAgdG9TdHJpbmcoKSB7XG4gICAgICAgIHJldHVybiBlc2NhcGVFbGVtZW50KFwiXCIgKyB0aGlzLnZhbHVlKTtcbiAgICB9XG59XG5cbmNsYXNzIFhtbE5vZGUge1xuICAgIG5hbWU7XG4gICAgY2hpbGRyZW47XG4gICAgYXR0cmlidXRlcyA9IHt9O1xuICAgIHN0YXRpYyBvZihuYW1lLCBjaGlsZFRleHQsIHdpdGhOYW1lKSB7XG4gICAgICAgIGNvbnN0IG5vZGUgPSBuZXcgWG1sTm9kZShuYW1lKTtcbiAgICAgICAgaWYgKGNoaWxkVGV4dCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBub2RlLmFkZENoaWxkTm9kZShuZXcgWG1sVGV4dChjaGlsZFRleHQpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAod2l0aE5hbWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgbm9kZS53aXRoTmFtZSh3aXRoTmFtZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5vZGU7XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKG5hbWUsIGNoaWxkcmVuID0gW10pIHtcbiAgICAgICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICAgICAgdGhpcy5jaGlsZHJlbiA9IGNoaWxkcmVuO1xuICAgIH1cbiAgICB3aXRoTmFtZShuYW1lKSB7XG4gICAgICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBhZGRBdHRyaWJ1dGUobmFtZSwgdmFsdWUpIHtcbiAgICAgICAgdGhpcy5hdHRyaWJ1dGVzW25hbWVdID0gdmFsdWU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBhZGRDaGlsZE5vZGUoY2hpbGQpIHtcbiAgICAgICAgdGhpcy5jaGlsZHJlbi5wdXNoKGNoaWxkKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIHJlbW92ZUF0dHJpYnV0ZShuYW1lKSB7XG4gICAgICAgIGRlbGV0ZSB0aGlzLmF0dHJpYnV0ZXNbbmFtZV07XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBuKG5hbWUpIHtcbiAgICAgICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIGMoY2hpbGQpIHtcbiAgICAgICAgdGhpcy5jaGlsZHJlbi5wdXNoKGNoaWxkKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIGEobmFtZSwgdmFsdWUpIHtcbiAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuYXR0cmlidXRlc1tuYW1lXSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBjYyhpbnB1dCwgZmllbGQsIHdpdGhOYW1lID0gZmllbGQpIHtcbiAgICAgICAgaWYgKGlucHV0W2ZpZWxkXSAhPSBudWxsKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlID0gWG1sTm9kZS5vZihmaWVsZCwgaW5wdXRbZmllbGRdKS53aXRoTmFtZSh3aXRoTmFtZSk7XG4gICAgICAgICAgICB0aGlzLmMobm9kZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbChpbnB1dCwgbGlzdE5hbWUsIG1lbWJlck5hbWUsIHZhbHVlUHJvdmlkZXIpIHtcbiAgICAgICAgaWYgKGlucHV0W2xpc3ROYW1lXSAhPSBudWxsKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlcyA9IHZhbHVlUHJvdmlkZXIoKTtcbiAgICAgICAgICAgIG5vZGVzLm1hcCgobm9kZSkgPT4ge1xuICAgICAgICAgICAgICAgIG5vZGUud2l0aE5hbWUobWVtYmVyTmFtZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5jKG5vZGUpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbGMoaW5wdXQsIGxpc3ROYW1lLCBtZW1iZXJOYW1lLCB2YWx1ZVByb3ZpZGVyKSB7XG4gICAgICAgIGlmIChpbnB1dFtsaXN0TmFtZV0gIT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZXMgPSB2YWx1ZVByb3ZpZGVyKCk7XG4gICAgICAgICAgICBjb25zdCBjb250YWluZXJOb2RlID0gbmV3IFhtbE5vZGUobWVtYmVyTmFtZSk7XG4gICAgICAgICAgICBub2Rlcy5tYXAoKG5vZGUpID0+IHtcbiAgICAgICAgICAgICAgICBjb250YWluZXJOb2RlLmMobm9kZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuYyhjb250YWluZXJOb2RlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICB0b1N0cmluZygpIHtcbiAgICAgICAgY29uc3QgaGFzQ2hpbGRyZW4gPSBCb29sZWFuKHRoaXMuY2hpbGRyZW4ubGVuZ3RoKTtcbiAgICAgICAgbGV0IHhtbFRleHQgPSBgPCR7dGhpcy5uYW1lfWA7XG4gICAgICAgIGNvbnN0IGF0dHJpYnV0ZXMgPSB0aGlzLmF0dHJpYnV0ZXM7XG4gICAgICAgIGZvciAoY29uc3QgYXR0cmlidXRlTmFtZSBvZiBPYmplY3Qua2V5cyhhdHRyaWJ1dGVzKSkge1xuICAgICAgICAgICAgY29uc3QgYXR0cmlidXRlID0gYXR0cmlidXRlc1thdHRyaWJ1dGVOYW1lXTtcbiAgICAgICAgICAgIGlmIChhdHRyaWJ1dGUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHhtbFRleHQgKz0gYCAke2F0dHJpYnV0ZU5hbWV9PVwiJHtlc2NhcGVBdHRyaWJ1dGUoXCJcIiArIGF0dHJpYnV0ZSl9XCJgO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiAoeG1sVGV4dCArPSAhaGFzQ2hpbGRyZW4gPyBcIi8+XCIgOiBgPiR7dGhpcy5jaGlsZHJlbi5tYXAoKGMpID0+IGMudG9TdHJpbmcoKSkuam9pbihcIlwiKX08LyR7dGhpcy5uYW1lfT5gKTtcbiAgICB9XG59XG5cbmV4cG9ydHMucGFyc2VYTUwgPSB4bWxQYXJzZXIucGFyc2VYTUw7XG5leHBvcnRzLlhtbE5vZGUgPSBYbWxOb2RlO1xuZXhwb3J0cy5YbWxUZXh0ID0gWG1sVGV4dDtcbiIsICJpbXBvcnQgeyBwYXJzZVhNTCB9IGZyb20gXCJAYXdzLXNkay94bWwtYnVpbGRlclwiO1xuaW1wb3J0IHsgRnJvbVN0cmluZ1NoYXBlRGVzZXJpYWxpemVyIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9wcm90b2NvbHNcIjtcbmltcG9ydCB7IE5vcm1hbGl6ZWRTY2hlbWEgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3NjaGVtYVwiO1xuaW1wb3J0IHsgZ2V0VmFsdWVGcm9tVGV4dE5vZGUgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyB0b1V0ZjggfSBmcm9tIFwiQHNtaXRoeS91dGlsLXV0ZjhcIjtcbmltcG9ydCB7IFNlcmRlQ29udGV4dENvbmZpZyB9IGZyb20gXCIuLi9Db25maWd1cmFibGVTZXJkZUNvbnRleHRcIjtcbmltcG9ydCB7IFVuaW9uU2VyZGUgfSBmcm9tIFwiLi4vVW5pb25TZXJkZVwiO1xuZXhwb3J0IGNsYXNzIFhtbFNoYXBlRGVzZXJpYWxpemVyIGV4dGVuZHMgU2VyZGVDb250ZXh0Q29uZmlnIHtcbiAgICBzZXR0aW5ncztcbiAgICBzdHJpbmdEZXNlcmlhbGl6ZXI7XG4gICAgY29uc3RydWN0b3Ioc2V0dGluZ3MpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5zZXR0aW5ncyA9IHNldHRpbmdzO1xuICAgICAgICB0aGlzLnN0cmluZ0Rlc2VyaWFsaXplciA9IG5ldyBGcm9tU3RyaW5nU2hhcGVEZXNlcmlhbGl6ZXIoc2V0dGluZ3MpO1xuICAgIH1cbiAgICBzZXRTZXJkZUNvbnRleHQoc2VyZGVDb250ZXh0KSB7XG4gICAgICAgIHRoaXMuc2VyZGVDb250ZXh0ID0gc2VyZGVDb250ZXh0O1xuICAgICAgICB0aGlzLnN0cmluZ0Rlc2VyaWFsaXplci5zZXRTZXJkZUNvbnRleHQoc2VyZGVDb250ZXh0KTtcbiAgICB9XG4gICAgcmVhZChzY2hlbWEsIGJ5dGVzLCBrZXkpIHtcbiAgICAgICAgY29uc3QgbnMgPSBOb3JtYWxpemVkU2NoZW1hLm9mKHNjaGVtYSk7XG4gICAgICAgIGNvbnN0IG1lbWJlclNjaGVtYXMgPSBucy5nZXRNZW1iZXJTY2hlbWFzKCk7XG4gICAgICAgIGNvbnN0IGlzRXZlbnRQYXlsb2FkID0gbnMuaXNTdHJ1Y3RTY2hlbWEoKSAmJlxuICAgICAgICAgICAgbnMuaXNNZW1iZXJTY2hlbWEoKSAmJlxuICAgICAgICAgICAgISFPYmplY3QudmFsdWVzKG1lbWJlclNjaGVtYXMpLmZpbmQoKG1lbWJlck5zKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICEhbWVtYmVyTnMuZ2V0TWVtYmVyVHJhaXRzKCkuZXZlbnRQYXlsb2FkO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIGlmIChpc0V2ZW50UGF5bG9hZCkge1xuICAgICAgICAgICAgY29uc3Qgb3V0cHV0ID0ge307XG4gICAgICAgICAgICBjb25zdCBtZW1iZXJOYW1lID0gT2JqZWN0LmtleXMobWVtYmVyU2NoZW1hcylbMF07XG4gICAgICAgICAgICBjb25zdCBldmVudE1lbWJlclNjaGVtYSA9IG1lbWJlclNjaGVtYXNbbWVtYmVyTmFtZV07XG4gICAgICAgICAgICBpZiAoZXZlbnRNZW1iZXJTY2hlbWEuaXNCbG9iU2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICBvdXRwdXRbbWVtYmVyTmFtZV0gPSBieXRlcztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIG91dHB1dFttZW1iZXJOYW1lXSA9IHRoaXMucmVhZChtZW1iZXJTY2hlbWFzW21lbWJlck5hbWVdLCBieXRlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gb3V0cHV0O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHhtbFN0cmluZyA9ICh0aGlzLnNlcmRlQ29udGV4dD8udXRmOEVuY29kZXIgPz8gdG9VdGY4KShieXRlcyk7XG4gICAgICAgIGNvbnN0IHBhcnNlZE9iamVjdCA9IHRoaXMucGFyc2VYbWwoeG1sU3RyaW5nKTtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVhZFNjaGVtYShzY2hlbWEsIGtleSA/IHBhcnNlZE9iamVjdFtrZXldIDogcGFyc2VkT2JqZWN0KTtcbiAgICB9XG4gICAgcmVhZFNjaGVtYShfc2NoZW1hLCB2YWx1ZSkge1xuICAgICAgICBjb25zdCBucyA9IE5vcm1hbGl6ZWRTY2hlbWEub2YoX3NjaGVtYSk7XG4gICAgICAgIGlmIChucy5pc1VuaXRTY2hlbWEoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHRyYWl0cyA9IG5zLmdldE1lcmdlZFRyYWl0cygpO1xuICAgICAgICBpZiAobnMuaXNMaXN0U2NoZW1hKCkgJiYgIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yZWFkU2NoZW1hKG5zLCBbdmFsdWVdKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgIGNvbnN0IGZsYXQgPSAhIXRyYWl0cy54bWxGbGF0dGVuZWQ7XG4gICAgICAgICAgICBpZiAobnMuaXNMaXN0U2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBsaXN0VmFsdWUgPSBucy5nZXRWYWx1ZVNjaGVtYSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGJ1ZmZlciA9IFtdO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNvdXJjZUtleSA9IGxpc3RWYWx1ZS5nZXRNZXJnZWRUcmFpdHMoKS54bWxOYW1lID8/IFwibWVtYmVyXCI7XG4gICAgICAgICAgICAgICAgY29uc3Qgc291cmNlID0gZmxhdCA/IHZhbHVlIDogKHZhbHVlWzBdID8/IHZhbHVlKVtzb3VyY2VLZXldO1xuICAgICAgICAgICAgICAgIGlmIChzb3VyY2UgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYnVmZmVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBzb3VyY2VBcnJheSA9IEFycmF5LmlzQXJyYXkoc291cmNlKSA/IHNvdXJjZSA6IFtzb3VyY2VdO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgdiBvZiBzb3VyY2VBcnJheSkge1xuICAgICAgICAgICAgICAgICAgICBidWZmZXIucHVzaCh0aGlzLnJlYWRTY2hlbWEobGlzdFZhbHVlLCB2KSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBidWZmZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBidWZmZXIgPSB7fTtcbiAgICAgICAgICAgIGlmIChucy5pc01hcFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qga2V5TnMgPSBucy5nZXRLZXlTY2hlbWEoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBtZW1iZXJOcyA9IG5zLmdldFZhbHVlU2NoZW1hKCk7XG4gICAgICAgICAgICAgICAgbGV0IGVudHJpZXM7XG4gICAgICAgICAgICAgICAgaWYgKGZsYXQpIHtcbiAgICAgICAgICAgICAgICAgICAgZW50cmllcyA9IEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbdmFsdWVdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgZW50cmllcyA9IEFycmF5LmlzQXJyYXkodmFsdWUuZW50cnkpID8gdmFsdWUuZW50cnkgOiBbdmFsdWUuZW50cnldO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBrZXlQcm9wZXJ0eSA9IGtleU5zLmdldE1lcmdlZFRyYWl0cygpLnhtbE5hbWUgPz8gXCJrZXlcIjtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZVByb3BlcnR5ID0gbWVtYmVyTnMuZ2V0TWVyZ2VkVHJhaXRzKCkueG1sTmFtZSA/PyBcInZhbHVlXCI7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBlbnRyeSBvZiBlbnRyaWVzKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IGVudHJ5W2tleVByb3BlcnR5XTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBlbnRyeVt2YWx1ZVByb3BlcnR5XTtcbiAgICAgICAgICAgICAgICAgICAgYnVmZmVyW2tleV0gPSB0aGlzLnJlYWRTY2hlbWEobWVtYmVyTnMsIHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGJ1ZmZlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChucy5pc1N0cnVjdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdW5pb24gPSBucy5pc1VuaW9uU2NoZW1hKCk7XG4gICAgICAgICAgICAgICAgbGV0IHVuaW9uU2VyZGU7XG4gICAgICAgICAgICAgICAgaWYgKHVuaW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIHVuaW9uU2VyZGUgPSBuZXcgVW5pb25TZXJkZSh2YWx1ZSwgYnVmZmVyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBbbWVtYmVyTmFtZSwgbWVtYmVyU2NoZW1hXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1lbWJlclRyYWl0cyA9IG1lbWJlclNjaGVtYS5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sT2JqZWN0S2V5ID0gIW1lbWJlclRyYWl0cy5odHRwUGF5bG9hZFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBtZW1iZXJTY2hlbWEuZ2V0TWVtYmVyVHJhaXRzKCkueG1sTmFtZSA/PyBtZW1iZXJOYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICA6IG1lbWJlclRyYWl0cy54bWxOYW1lID8/IG1lbWJlclNjaGVtYS5nZXROYW1lKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh1bmlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdW5pb25TZXJkZS5tYXJrKHhtbE9iamVjdEtleSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlW3htbE9iamVjdEtleV0gIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyW21lbWJlck5hbWVdID0gdGhpcy5yZWFkU2NoZW1hKG1lbWJlclNjaGVtYSwgdmFsdWVbeG1sT2JqZWN0S2V5XSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHVuaW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIHVuaW9uU2VyZGUud3JpdGVVbmtub3duKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBidWZmZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobnMuaXNEb2N1bWVudFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBAYXdzLXNkay9jb3JlL3Byb3RvY29scyAtIHhtbCBkZXNlcmlhbGl6ZXIgdW5oYW5kbGVkIHNjaGVtYSB0eXBlIGZvciAke25zLmdldE5hbWUodHJ1ZSl9YCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzTGlzdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzTWFwU2NoZW1hKCkgfHwgbnMuaXNTdHJ1Y3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnN0cmluZ0Rlc2VyaWFsaXplci5yZWFkKG5zLCB2YWx1ZSk7XG4gICAgfVxuICAgIHBhcnNlWG1sKHhtbCkge1xuICAgICAgICBpZiAoeG1sLmxlbmd0aCkge1xuICAgICAgICAgICAgbGV0IHBhcnNlZE9iajtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgcGFyc2VkT2JqID0gcGFyc2VYTUwoeG1sKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgaWYgKGUgJiYgdHlwZW9mIGUgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIFwiJHJlc3BvbnNlQm9keVRleHRcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHhtbCxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCB0ZXh0Tm9kZU5hbWUgPSBcIiN0ZXh0XCI7XG4gICAgICAgICAgICBjb25zdCBrZXkgPSBPYmplY3Qua2V5cyhwYXJzZWRPYmopWzBdO1xuICAgICAgICAgICAgY29uc3QgcGFyc2VkT2JqVG9SZXR1cm4gPSBwYXJzZWRPYmpba2V5XTtcbiAgICAgICAgICAgIGlmIChwYXJzZWRPYmpUb1JldHVyblt0ZXh0Tm9kZU5hbWVdKSB7XG4gICAgICAgICAgICAgICAgcGFyc2VkT2JqVG9SZXR1cm5ba2V5XSA9IHBhcnNlZE9ialRvUmV0dXJuW3RleHROb2RlTmFtZV07XG4gICAgICAgICAgICAgICAgZGVsZXRlIHBhcnNlZE9ialRvUmV0dXJuW3RleHROb2RlTmFtZV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZ2V0VmFsdWVGcm9tVGV4dE5vZGUocGFyc2VkT2JqVG9SZXR1cm4pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7fTtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgZGV0ZXJtaW5lVGltZXN0YW1wRm9ybWF0LCBleHRlbmRlZEVuY29kZVVSSUNvbXBvbmVudCB9IGZyb20gXCJAc21pdGh5L2NvcmUvcHJvdG9jb2xzXCI7XG5pbXBvcnQgeyBOb3JtYWxpemVkU2NoZW1hIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IGdlbmVyYXRlSWRlbXBvdGVuY3lUb2tlbiwgTnVtZXJpY1ZhbHVlIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zZXJkZVwiO1xuaW1wb3J0IHsgZGF0ZVRvVXRjU3RyaW5nIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgdG9CYXNlNjQgfSBmcm9tIFwiQHNtaXRoeS91dGlsLWJhc2U2NFwiO1xuaW1wb3J0IHsgU2VyZGVDb250ZXh0Q29uZmlnIH0gZnJvbSBcIi4uL0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dFwiO1xuZXhwb3J0IGNsYXNzIFF1ZXJ5U2hhcGVTZXJpYWxpemVyIGV4dGVuZHMgU2VyZGVDb250ZXh0Q29uZmlnIHtcbiAgICBzZXR0aW5ncztcbiAgICBidWZmZXI7XG4gICAgY29uc3RydWN0b3Ioc2V0dGluZ3MpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5zZXR0aW5ncyA9IHNldHRpbmdzO1xuICAgIH1cbiAgICB3cml0ZShzY2hlbWEsIHZhbHVlLCBwcmVmaXggPSBcIlwiKSB7XG4gICAgICAgIGlmICh0aGlzLmJ1ZmZlciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmJ1ZmZlciA9IFwiXCI7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbnMgPSBOb3JtYWxpemVkU2NoZW1hLm9mKHNjaGVtYSk7XG4gICAgICAgIGlmIChwcmVmaXggJiYgIXByZWZpeC5lbmRzV2l0aChcIi5cIikpIHtcbiAgICAgICAgICAgIHByZWZpeCArPSBcIi5cIjtcbiAgICAgICAgfVxuICAgICAgICBpZiAobnMuaXNCbG9iU2NoZW1hKCkpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgfHwgdmFsdWUgaW5zdGFuY2VvZiBVaW50OEFycmF5KSB7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZUtleShwcmVmaXgpO1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVWYWx1ZSgodGhpcy5zZXJkZUNvbnRleHQ/LmJhc2U2NEVuY29kZXIgPz8gdG9CYXNlNjQpKHZhbHVlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAobnMuaXNCb29sZWFuU2NoZW1hKCkgfHwgbnMuaXNOdW1lcmljU2NoZW1hKCkgfHwgbnMuaXNTdHJpbmdTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlS2V5KHByZWZpeCk7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKFN0cmluZyh2YWx1ZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAobnMuaXNJZGVtcG90ZW5jeVRva2VuKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlS2V5KHByZWZpeCk7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKGdlbmVyYXRlSWRlbXBvdGVuY3lUb2tlbigpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChucy5pc0JpZ0ludGVnZXJTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlS2V5KHByZWZpeCk7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKFN0cmluZyh2YWx1ZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKG5zLmlzQmlnRGVjaW1hbFNjaGVtYSgpKSB7XG4gICAgICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVLZXkocHJlZml4KTtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlVmFsdWUodmFsdWUgaW5zdGFuY2VvZiBOdW1lcmljVmFsdWUgPyB2YWx1ZS5zdHJpbmcgOiBTdHJpbmcodmFsdWUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChucy5pc1RpbWVzdGFtcFNjaGVtYSgpKSB7XG4gICAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZUtleShwcmVmaXgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZvcm1hdCA9IGRldGVybWluZVRpbWVzdGFtcEZvcm1hdChucywgdGhpcy5zZXR0aW5ncyk7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChmb3JtYXQpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKHZhbHVlLnRvSVNPU3RyaW5nKCkucmVwbGFjZShcIi4wMDBaXCIsIFwiWlwiKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKGRhdGVUb1V0Y1N0cmluZyh2YWx1ZSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMud3JpdGVWYWx1ZShTdHJpbmcodmFsdWUuZ2V0VGltZSgpIC8gMTAwMCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKG5zLmlzRG9jdW1lbnRTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZSg2NCB8IDE1LCB2YWx1ZSwgcHJlZml4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGUoNCwgdmFsdWUsIHByZWZpeCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmICh2YWx1ZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlKDIxLCB2YWx1ZSwgcHJlZml4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGUoMTI4IHwgMTUsIHZhbHVlLCBwcmVmaXgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZUtleShwcmVmaXgpO1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVWYWx1ZShTdHJpbmcodmFsdWUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChucy5pc0xpc3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5zZXR0aW5ncy5zZXJpYWxpemVFbXB0eUxpc3RzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLndyaXRlS2V5KHByZWZpeCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLndyaXRlVmFsdWUoXCJcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1lbWJlciA9IG5zLmdldFZhbHVlU2NoZW1hKCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZsYXQgPSB0aGlzLnNldHRpbmdzLmZsYXR0ZW5MaXN0cyB8fCBucy5nZXRNZXJnZWRUcmFpdHMoKS54bWxGbGF0dGVuZWQ7XG4gICAgICAgICAgICAgICAgICAgIGxldCBpID0gMTtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbSA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0cmFpdHMgPSBtZW1iZXIuZ2V0TWVyZ2VkVHJhaXRzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdWZmaXggPSB0aGlzLmdldEtleShcIm1lbWJlclwiLCB0cmFpdHMueG1sTmFtZSwgdHJhaXRzLmVjMlF1ZXJ5TmFtZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSBmbGF0ID8gYCR7cHJlZml4fSR7aX1gIDogYCR7cHJlZml4fSR7c3VmZml4fS4ke2l9YDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMud3JpdGUobWVtYmVyLCBpdGVtLCBrZXkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgKytpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKG5zLmlzTWFwU2NoZW1hKCkpIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBrZXlTY2hlbWEgPSBucy5nZXRLZXlTY2hlbWEoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBtZW1iZXJTY2hlbWEgPSBucy5nZXRWYWx1ZVNjaGVtYSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZsYXQgPSBucy5nZXRNZXJnZWRUcmFpdHMoKS54bWxGbGF0dGVuZWQ7XG4gICAgICAgICAgICAgICAgbGV0IGkgPSAxO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgayBpbiB2YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB2ID0gdmFsdWVba107XG4gICAgICAgICAgICAgICAgICAgIGlmICh2ID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGtleVRyYWl0cyA9IGtleVNjaGVtYS5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qga2V5U3VmZml4ID0gdGhpcy5nZXRLZXkoXCJrZXlcIiwga2V5VHJhaXRzLnhtbE5hbWUsIGtleVRyYWl0cy5lYzJRdWVyeU5hbWUpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSBmbGF0ID8gYCR7cHJlZml4fSR7aX0uJHtrZXlTdWZmaXh9YCA6IGAke3ByZWZpeH1lbnRyeS4ke2l9LiR7a2V5U3VmZml4fWA7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbFRyYWl0cyA9IG1lbWJlclNjaGVtYS5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWVTdWZmaXggPSB0aGlzLmdldEtleShcInZhbHVlXCIsIHZhbFRyYWl0cy54bWxOYW1lLCB2YWxUcmFpdHMuZWMyUXVlcnlOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWVLZXkgPSBmbGF0ID8gYCR7cHJlZml4fSR7aX0uJHt2YWx1ZVN1ZmZpeH1gIDogYCR7cHJlZml4fWVudHJ5LiR7aX0uJHt2YWx1ZVN1ZmZpeH1gO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLndyaXRlKGtleVNjaGVtYSwgaywga2V5KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy53cml0ZShtZW1iZXJTY2hlbWEsIHYsIHZhbHVlS2V5KTtcbiAgICAgICAgICAgICAgICAgICAgKytpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChucy5pc1N0cnVjdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICBpZiAodmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICAgICAgbGV0IGRpZFdyaXRlTWVtYmVyID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBbbWVtYmVyTmFtZSwgbWVtYmVyXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZVttZW1iZXJOYW1lXSA9PSBudWxsICYmICFtZW1iZXIuaXNJZGVtcG90ZW5jeVRva2VuKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRyYWl0cyA9IG1lbWJlci5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3VmZml4ID0gdGhpcy5nZXRLZXkobWVtYmVyTmFtZSwgdHJhaXRzLnhtbE5hbWUsIHRyYWl0cy5lYzJRdWVyeU5hbWUsIFwic3RydWN0XCIpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSBgJHtwcmVmaXh9JHtzdWZmaXh9YDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy53cml0ZShtZW1iZXIsIHZhbHVlW21lbWJlck5hbWVdLCBrZXkpO1xuICAgICAgICAgICAgICAgICAgICBkaWRXcml0ZU1lbWJlciA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICghZGlkV3JpdGVNZW1iZXIgJiYgbnMuaXNVbmlvblNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgJHVua25vd24gfSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSgkdW5rbm93bikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFtrLCB2XSA9ICR1bmtub3duO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qga2V5ID0gYCR7cHJlZml4fSR7a31gO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53cml0ZSgxNSwgdiwga2V5KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChucy5pc1VuaXRTY2hlbWEoKSkge1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBAYXdzLXNkay9jb3JlL3Byb3RvY29scyAtIFF1ZXJ5U2VyaWFsaXplciB1bnJlY29nbml6ZWQgc2NoZW1hIHR5cGUgJHtucy5nZXROYW1lKHRydWUpfWApO1xuICAgICAgICB9XG4gICAgfVxuICAgIGZsdXNoKCkge1xuICAgICAgICBpZiAodGhpcy5idWZmZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSBRdWVyeVNlcmlhbGl6ZXIgY2Fubm90IGZsdXNoIHdpdGggbm90aGluZyB3cml0dGVuIHRvIGJ1ZmZlci5cIik7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc3RyID0gdGhpcy5idWZmZXI7XG4gICAgICAgIGRlbGV0ZSB0aGlzLmJ1ZmZlcjtcbiAgICAgICAgcmV0dXJuIHN0cjtcbiAgICB9XG4gICAgZ2V0S2V5KG1lbWJlck5hbWUsIHhtbE5hbWUsIGVjMlF1ZXJ5TmFtZSwga2V5U291cmNlKSB7XG4gICAgICAgIGNvbnN0IHsgZWMyLCBjYXBpdGFsaXplS2V5cyB9ID0gdGhpcy5zZXR0aW5ncztcbiAgICAgICAgaWYgKGVjMiAmJiBlYzJRdWVyeU5hbWUpIHtcbiAgICAgICAgICAgIHJldHVybiBlYzJRdWVyeU5hbWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qga2V5ID0geG1sTmFtZSA/PyBtZW1iZXJOYW1lO1xuICAgICAgICBpZiAoY2FwaXRhbGl6ZUtleXMgJiYga2V5U291cmNlID09PSBcInN0cnVjdFwiKSB7XG4gICAgICAgICAgICByZXR1cm4ga2V5WzBdLnRvVXBwZXJDYXNlKCkgKyBrZXkuc2xpY2UoMSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGtleTtcbiAgICB9XG4gICAgd3JpdGVLZXkoa2V5KSB7XG4gICAgICAgIGlmIChrZXkuZW5kc1dpdGgoXCIuXCIpKSB7XG4gICAgICAgICAgICBrZXkgPSBrZXkuc2xpY2UoMCwga2V5Lmxlbmd0aCAtIDEpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYnVmZmVyICs9IGAmJHtleHRlbmRlZEVuY29kZVVSSUNvbXBvbmVudChrZXkpfT1gO1xuICAgIH1cbiAgICB3cml0ZVZhbHVlKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuYnVmZmVyICs9IGV4dGVuZGVkRW5jb2RlVVJJQ29tcG9uZW50KHZhbHVlKTtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgY29sbGVjdEJvZHksIFJwY1Byb3RvY29sIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9wcm90b2NvbHNcIjtcbmltcG9ydCB7IGRlcmVmLCBOb3JtYWxpemVkU2NoZW1hIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IFByb3RvY29sTGliIH0gZnJvbSBcIi4uL1Byb3RvY29sTGliXCI7XG5pbXBvcnQgeyBYbWxTaGFwZURlc2VyaWFsaXplciB9IGZyb20gXCIuLi94bWwvWG1sU2hhcGVEZXNlcmlhbGl6ZXJcIjtcbmltcG9ydCB7IFF1ZXJ5U2hhcGVTZXJpYWxpemVyIH0gZnJvbSBcIi4vUXVlcnlTaGFwZVNlcmlhbGl6ZXJcIjtcbmV4cG9ydCBjbGFzcyBBd3NRdWVyeVByb3RvY29sIGV4dGVuZHMgUnBjUHJvdG9jb2wge1xuICAgIG9wdGlvbnM7XG4gICAgc2VyaWFsaXplcjtcbiAgICBkZXNlcmlhbGl6ZXI7XG4gICAgbWl4aW4gPSBuZXcgUHJvdG9jb2xMaWIoKTtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIGRlZmF1bHROYW1lc3BhY2U6IG9wdGlvbnMuZGVmYXVsdE5hbWVzcGFjZSxcbiAgICAgICAgICAgIGVycm9yVHlwZVJlZ2lzdHJpZXM6IG9wdGlvbnMuZXJyb3JUeXBlUmVnaXN0cmllcyxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgICAgIGNvbnN0IHNldHRpbmdzID0ge1xuICAgICAgICAgICAgdGltZXN0YW1wRm9ybWF0OiB7XG4gICAgICAgICAgICAgICAgdXNlVHJhaXQ6IHRydWUsXG4gICAgICAgICAgICAgICAgZGVmYXVsdDogNSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBodHRwQmluZGluZ3M6IGZhbHNlLFxuICAgICAgICAgICAgeG1sTmFtZXNwYWNlOiBvcHRpb25zLnhtbE5hbWVzcGFjZSxcbiAgICAgICAgICAgIHNlcnZpY2VOYW1lc3BhY2U6IG9wdGlvbnMuZGVmYXVsdE5hbWVzcGFjZSxcbiAgICAgICAgICAgIHNlcmlhbGl6ZUVtcHR5TGlzdHM6IHRydWUsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuc2VyaWFsaXplciA9IG5ldyBRdWVyeVNoYXBlU2VyaWFsaXplcihzZXR0aW5ncyk7XG4gICAgICAgIHRoaXMuZGVzZXJpYWxpemVyID0gbmV3IFhtbFNoYXBlRGVzZXJpYWxpemVyKHNldHRpbmdzKTtcbiAgICB9XG4gICAgZ2V0U2hhcGVJZCgpIHtcbiAgICAgICAgcmV0dXJuIFwiYXdzLnByb3RvY29scyNhd3NRdWVyeVwiO1xuICAgIH1cbiAgICBzZXRTZXJkZUNvbnRleHQoc2VyZGVDb250ZXh0KSB7XG4gICAgICAgIHRoaXMuc2VyaWFsaXplci5zZXRTZXJkZUNvbnRleHQoc2VyZGVDb250ZXh0KTtcbiAgICAgICAgdGhpcy5kZXNlcmlhbGl6ZXIuc2V0U2VyZGVDb250ZXh0KHNlcmRlQ29udGV4dCk7XG4gICAgfVxuICAgIGdldFBheWxvYWRDb2RlYygpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQVdTUXVlcnkgcHJvdG9jb2wgaGFzIG5vIHBheWxvYWQgY29kZWMuXCIpO1xuICAgIH1cbiAgICBhc3luYyBzZXJpYWxpemVSZXF1ZXN0KG9wZXJhdGlvblNjaGVtYSwgaW5wdXQsIGNvbnRleHQpIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IGF3YWl0IHN1cGVyLnNlcmlhbGl6ZVJlcXVlc3Qob3BlcmF0aW9uU2NoZW1hLCBpbnB1dCwgY29udGV4dCk7XG4gICAgICAgIGlmICghcmVxdWVzdC5wYXRoLmVuZHNXaXRoKFwiL1wiKSkge1xuICAgICAgICAgICAgcmVxdWVzdC5wYXRoICs9IFwiL1wiO1xuICAgICAgICB9XG4gICAgICAgIHJlcXVlc3QuaGVhZGVyc1tcImNvbnRlbnQtdHlwZVwiXSA9IFwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkXCI7XG4gICAgICAgIGlmIChkZXJlZihvcGVyYXRpb25TY2hlbWEuaW5wdXQpID09PSBcInVuaXRcIiB8fCAhcmVxdWVzdC5ib2R5KSB7XG4gICAgICAgICAgICByZXF1ZXN0LmJvZHkgPSBcIlwiO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGFjdGlvbiA9IG9wZXJhdGlvblNjaGVtYS5uYW1lLnNwbGl0KFwiI1wiKVsxXSA/PyBvcGVyYXRpb25TY2hlbWEubmFtZTtcbiAgICAgICAgcmVxdWVzdC5ib2R5ID0gYEFjdGlvbj0ke2FjdGlvbn0mVmVyc2lvbj0ke3RoaXMub3B0aW9ucy52ZXJzaW9ufWAgKyByZXF1ZXN0LmJvZHk7XG4gICAgICAgIGlmIChyZXF1ZXN0LmJvZHkuZW5kc1dpdGgoXCImXCIpKSB7XG4gICAgICAgICAgICByZXF1ZXN0LmJvZHkgPSByZXF1ZXN0LmJvZHkuc2xpY2UoLTEpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXF1ZXN0O1xuICAgIH1cbiAgICBhc3luYyBkZXNlcmlhbGl6ZVJlc3BvbnNlKG9wZXJhdGlvblNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UpIHtcbiAgICAgICAgY29uc3QgZGVzZXJpYWxpemVyID0gdGhpcy5kZXNlcmlhbGl6ZXI7XG4gICAgICAgIGNvbnN0IG5zID0gTm9ybWFsaXplZFNjaGVtYS5vZihvcGVyYXRpb25TY2hlbWEub3V0cHV0KTtcbiAgICAgICAgY29uc3QgZGF0YU9iamVjdCA9IHt9O1xuICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzQ29kZSA+PSAzMDApIHtcbiAgICAgICAgICAgIGNvbnN0IGJ5dGVzID0gYXdhaXQgY29sbGVjdEJvZHkocmVzcG9uc2UuYm9keSwgY29udGV4dCk7XG4gICAgICAgICAgICBpZiAoYnl0ZXMuYnl0ZUxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKGRhdGFPYmplY3QsIGF3YWl0IGRlc2VyaWFsaXplci5yZWFkKDE1LCBieXRlcykpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYXdhaXQgdGhpcy5oYW5kbGVFcnJvcihvcGVyYXRpb25TY2hlbWEsIGNvbnRleHQsIHJlc3BvbnNlLCBkYXRhT2JqZWN0LCB0aGlzLmRlc2VyaWFsaXplTWV0YWRhdGEocmVzcG9uc2UpKTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IGhlYWRlciBpbiByZXNwb25zZS5oZWFkZXJzKSB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHJlc3BvbnNlLmhlYWRlcnNbaGVhZGVyXTtcbiAgICAgICAgICAgIGRlbGV0ZSByZXNwb25zZS5oZWFkZXJzW2hlYWRlcl07XG4gICAgICAgICAgICByZXNwb25zZS5oZWFkZXJzW2hlYWRlci50b0xvd2VyQ2FzZSgpXSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNob3J0TmFtZSA9IG9wZXJhdGlvblNjaGVtYS5uYW1lLnNwbGl0KFwiI1wiKVsxXSA/PyBvcGVyYXRpb25TY2hlbWEubmFtZTtcbiAgICAgICAgY29uc3QgYXdzUXVlcnlSZXN1bHRLZXkgPSBucy5pc1N0cnVjdFNjaGVtYSgpICYmIHRoaXMudXNlTmVzdGVkUmVzdWx0KCkgPyBzaG9ydE5hbWUgKyBcIlJlc3VsdFwiIDogdW5kZWZpbmVkO1xuICAgICAgICBjb25zdCBieXRlcyA9IGF3YWl0IGNvbGxlY3RCb2R5KHJlc3BvbnNlLmJvZHksIGNvbnRleHQpO1xuICAgICAgICBpZiAoYnl0ZXMuYnl0ZUxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oZGF0YU9iamVjdCwgYXdhaXQgZGVzZXJpYWxpemVyLnJlYWQobnMsIGJ5dGVzLCBhd3NRdWVyeVJlc3VsdEtleSkpO1xuICAgICAgICB9XG4gICAgICAgIGRhdGFPYmplY3QuJG1ldGFkYXRhID0gdGhpcy5kZXNlcmlhbGl6ZU1ldGFkYXRhKHJlc3BvbnNlKTtcbiAgICAgICAgcmV0dXJuIGRhdGFPYmplY3Q7XG4gICAgfVxuICAgIHVzZU5lc3RlZFJlc3VsdCgpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGFzeW5jIGhhbmRsZUVycm9yKG9wZXJhdGlvblNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UsIGRhdGFPYmplY3QsIG1ldGFkYXRhKSB7XG4gICAgICAgIGNvbnN0IGVycm9ySWRlbnRpZmllciA9IHRoaXMubG9hZFF1ZXJ5RXJyb3JDb2RlKHJlc3BvbnNlLCBkYXRhT2JqZWN0KSA/PyBcIlVua25vd25cIjtcbiAgICAgICAgdGhpcy5taXhpbi5jb21wb3NlKHRoaXMuY29tcG9zaXRlRXJyb3JSZWdpc3RyeSwgZXJyb3JJZGVudGlmaWVyLCB0aGlzLm9wdGlvbnMuZGVmYXVsdE5hbWVzcGFjZSk7XG4gICAgICAgIGNvbnN0IGVycm9yRGF0YSA9IHRoaXMubG9hZFF1ZXJ5RXJyb3IoZGF0YU9iamVjdCkgPz8ge307XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSB0aGlzLmxvYWRRdWVyeUVycm9yTWVzc2FnZShkYXRhT2JqZWN0KTtcbiAgICAgICAgZXJyb3JEYXRhLm1lc3NhZ2UgPSBtZXNzYWdlO1xuICAgICAgICBlcnJvckRhdGEuRXJyb3IgPSB7XG4gICAgICAgICAgICBUeXBlOiBlcnJvckRhdGEuVHlwZSxcbiAgICAgICAgICAgIENvZGU6IGVycm9yRGF0YS5Db2RlLFxuICAgICAgICAgICAgTWVzc2FnZTogbWVzc2FnZSxcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgeyBlcnJvclNjaGVtYSwgZXJyb3JNZXRhZGF0YSB9ID0gYXdhaXQgdGhpcy5taXhpbi5nZXRFcnJvclNjaGVtYU9yVGhyb3dCYXNlRXhjZXB0aW9uKGVycm9ySWRlbnRpZmllciwgdGhpcy5vcHRpb25zLmRlZmF1bHROYW1lc3BhY2UsIHJlc3BvbnNlLCBlcnJvckRhdGEsIG1ldGFkYXRhLCB0aGlzLm1peGluLmZpbmRRdWVyeUNvbXBhdGlibGVFcnJvcik7XG4gICAgICAgIGNvbnN0IG5zID0gTm9ybWFsaXplZFNjaGVtYS5vZihlcnJvclNjaGVtYSk7XG4gICAgICAgIGNvbnN0IEVycm9yQ3RvciA9IHRoaXMuY29tcG9zaXRlRXJyb3JSZWdpc3RyeS5nZXRFcnJvckN0b3IoZXJyb3JTY2hlbWEpID8/IEVycm9yO1xuICAgICAgICBjb25zdCBleGNlcHRpb24gPSBuZXcgRXJyb3JDdG9yKG1lc3NhZ2UpO1xuICAgICAgICBjb25zdCBvdXRwdXQgPSB7XG4gICAgICAgICAgICBUeXBlOiBlcnJvckRhdGEuRXJyb3IuVHlwZSxcbiAgICAgICAgICAgIENvZGU6IGVycm9yRGF0YS5FcnJvci5Db2RlLFxuICAgICAgICAgICAgRXJyb3I6IGVycm9yRGF0YS5FcnJvcixcbiAgICAgICAgfTtcbiAgICAgICAgZm9yIChjb25zdCBbbmFtZSwgbWVtYmVyXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBtZW1iZXIuZ2V0TWVyZ2VkVHJhaXRzKCkueG1sTmFtZSA/PyBuYW1lO1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBlcnJvckRhdGFbdGFyZ2V0XSA/PyBkYXRhT2JqZWN0W3RhcmdldF07XG4gICAgICAgICAgICBvdXRwdXRbbmFtZV0gPSB0aGlzLmRlc2VyaWFsaXplci5yZWFkU2NoZW1hKG1lbWJlciwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IHRoaXMubWl4aW4uZGVjb3JhdGVTZXJ2aWNlRXhjZXB0aW9uKE9iamVjdC5hc3NpZ24oZXhjZXB0aW9uLCBlcnJvck1ldGFkYXRhLCB7XG4gICAgICAgICAgICAkZmF1bHQ6IG5zLmdldE1lcmdlZFRyYWl0cygpLmVycm9yLFxuICAgICAgICAgICAgbWVzc2FnZSxcbiAgICAgICAgfSwgb3V0cHV0KSwgZGF0YU9iamVjdCk7XG4gICAgfVxuICAgIGxvYWRRdWVyeUVycm9yQ29kZShvdXRwdXQsIGRhdGEpIHtcbiAgICAgICAgY29uc3QgY29kZSA9IChkYXRhLkVycm9ycz8uWzBdPy5FcnJvciA/PyBkYXRhLkVycm9ycz8uRXJyb3IgPz8gZGF0YS5FcnJvcik/LkNvZGU7XG4gICAgICAgIGlmIChjb2RlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBjb2RlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvdXRwdXQuc3RhdHVzQ29kZSA9PSA0MDQpIHtcbiAgICAgICAgICAgIHJldHVybiBcIk5vdEZvdW5kXCI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbG9hZFF1ZXJ5RXJyb3IoZGF0YSkge1xuICAgICAgICByZXR1cm4gZGF0YS5FcnJvcnM/LlswXT8uRXJyb3IgPz8gZGF0YS5FcnJvcnM/LkVycm9yID8/IGRhdGEuRXJyb3I7XG4gICAgfVxuICAgIGxvYWRRdWVyeUVycm9yTWVzc2FnZShkYXRhKSB7XG4gICAgICAgIGNvbnN0IGVycm9yRGF0YSA9IHRoaXMubG9hZFF1ZXJ5RXJyb3IoZGF0YSk7XG4gICAgICAgIHJldHVybiBlcnJvckRhdGE/Lm1lc3NhZ2UgPz8gZXJyb3JEYXRhPy5NZXNzYWdlID8/IGRhdGEubWVzc2FnZSA/PyBkYXRhLk1lc3NhZ2UgPz8gXCJVbmtub3duXCI7XG4gICAgfVxuICAgIGdldERlZmF1bHRDb250ZW50VHlwZSgpIHtcbiAgICAgICAgcmV0dXJuIFwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkXCI7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IEF3c1F1ZXJ5UHJvdG9jb2wgfSBmcm9tIFwiLi9Bd3NRdWVyeVByb3RvY29sXCI7XG5leHBvcnQgY2xhc3MgQXdzRWMyUXVlcnlQcm90b2NvbCBleHRlbmRzIEF3c1F1ZXJ5UHJvdG9jb2wge1xuICAgIG9wdGlvbnM7XG4gICAgY29uc3RydWN0b3Iob3B0aW9ucykge1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgICAgICAgY29uc3QgZWMyU2V0dGluZ3MgPSB7XG4gICAgICAgICAgICBjYXBpdGFsaXplS2V5czogdHJ1ZSxcbiAgICAgICAgICAgIGZsYXR0ZW5MaXN0czogdHJ1ZSxcbiAgICAgICAgICAgIHNlcmlhbGl6ZUVtcHR5TGlzdHM6IGZhbHNlLFxuICAgICAgICAgICAgZWMyOiB0cnVlLFxuICAgICAgICB9O1xuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMuc2VyaWFsaXplci5zZXR0aW5ncywgZWMyU2V0dGluZ3MpO1xuICAgIH1cbiAgICBnZXRTaGFwZUlkKCkge1xuICAgICAgICByZXR1cm4gXCJhd3MucHJvdG9jb2xzI2VjMlF1ZXJ5XCI7XG4gICAgfVxuICAgIHVzZU5lc3RlZFJlc3VsdCgpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cbiIsICJleHBvcnQge307XG4iLCAiaW1wb3J0IHsgcGFyc2VYTUwgfSBmcm9tIFwiQGF3cy1zZGsveG1sLWJ1aWxkZXJcIjtcbmltcG9ydCB7IGdldFZhbHVlRnJvbVRleHROb2RlIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgY29sbGVjdEJvZHlTdHJpbmcgfSBmcm9tIFwiLi4vY29tbW9uXCI7XG5leHBvcnQgY29uc3QgcGFyc2VYbWxCb2R5ID0gKHN0cmVhbUJvZHksIGNvbnRleHQpID0+IGNvbGxlY3RCb2R5U3RyaW5nKHN0cmVhbUJvZHksIGNvbnRleHQpLnRoZW4oKGVuY29kZWQpID0+IHtcbiAgICBpZiAoZW5jb2RlZC5sZW5ndGgpIHtcbiAgICAgICAgbGV0IHBhcnNlZE9iajtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHBhcnNlZE9iaiA9IHBhcnNlWE1MKGVuY29kZWQpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICBpZiAoZSAmJiB0eXBlb2YgZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCBcIiRyZXNwb25zZUJvZHlUZXh0XCIsIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGVuY29kZWQsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHRleHROb2RlTmFtZSA9IFwiI3RleHRcIjtcbiAgICAgICAgY29uc3Qga2V5ID0gT2JqZWN0LmtleXMocGFyc2VkT2JqKVswXTtcbiAgICAgICAgY29uc3QgcGFyc2VkT2JqVG9SZXR1cm4gPSBwYXJzZWRPYmpba2V5XTtcbiAgICAgICAgaWYgKHBhcnNlZE9ialRvUmV0dXJuW3RleHROb2RlTmFtZV0pIHtcbiAgICAgICAgICAgIHBhcnNlZE9ialRvUmV0dXJuW2tleV0gPSBwYXJzZWRPYmpUb1JldHVyblt0ZXh0Tm9kZU5hbWVdO1xuICAgICAgICAgICAgZGVsZXRlIHBhcnNlZE9ialRvUmV0dXJuW3RleHROb2RlTmFtZV07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGdldFZhbHVlRnJvbVRleHROb2RlKHBhcnNlZE9ialRvUmV0dXJuKTtcbiAgICB9XG4gICAgcmV0dXJuIHt9O1xufSk7XG5leHBvcnQgY29uc3QgcGFyc2VYbWxFcnJvckJvZHkgPSBhc3luYyAoZXJyb3JCb2R5LCBjb250ZXh0KSA9PiB7XG4gICAgY29uc3QgdmFsdWUgPSBhd2FpdCBwYXJzZVhtbEJvZHkoZXJyb3JCb2R5LCBjb250ZXh0KTtcbiAgICBpZiAodmFsdWUuRXJyb3IpIHtcbiAgICAgICAgdmFsdWUuRXJyb3IubWVzc2FnZSA9IHZhbHVlLkVycm9yLm1lc3NhZ2UgPz8gdmFsdWUuRXJyb3IuTWVzc2FnZTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlO1xufTtcbmV4cG9ydCBjb25zdCBsb2FkUmVzdFhtbEVycm9yQ29kZSA9IChvdXRwdXQsIGRhdGEpID0+IHtcbiAgICBpZiAoZGF0YT8uRXJyb3I/LkNvZGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gZGF0YS5FcnJvci5Db2RlO1xuICAgIH1cbiAgICBpZiAoZGF0YT8uQ29kZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiBkYXRhLkNvZGU7XG4gICAgfVxuICAgIGlmIChvdXRwdXQuc3RhdHVzQ29kZSA9PSA0MDQpIHtcbiAgICAgICAgcmV0dXJuIFwiTm90Rm91bmRcIjtcbiAgICB9XG59O1xuIiwgImltcG9ydCB7IFhtbE5vZGUsIFhtbFRleHQgfSBmcm9tIFwiQGF3cy1zZGsveG1sLWJ1aWxkZXJcIjtcbmltcG9ydCB7IGRldGVybWluZVRpbWVzdGFtcEZvcm1hdCB9IGZyb20gXCJAc21pdGh5L2NvcmUvcHJvdG9jb2xzXCI7XG5pbXBvcnQgeyBOb3JtYWxpemVkU2NoZW1hIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IGdlbmVyYXRlSWRlbXBvdGVuY3lUb2tlbiwgTnVtZXJpY1ZhbHVlIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zZXJkZVwiO1xuaW1wb3J0IHsgZGF0ZVRvVXRjU3RyaW5nIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgZnJvbUJhc2U2NCwgdG9CYXNlNjQgfSBmcm9tIFwiQHNtaXRoeS91dGlsLWJhc2U2NFwiO1xuaW1wb3J0IHsgU2VyZGVDb250ZXh0Q29uZmlnIH0gZnJvbSBcIi4uL0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dFwiO1xuZXhwb3J0IGNsYXNzIFhtbFNoYXBlU2VyaWFsaXplciBleHRlbmRzIFNlcmRlQ29udGV4dENvbmZpZyB7XG4gICAgc2V0dGluZ3M7XG4gICAgc3RyaW5nQnVmZmVyO1xuICAgIGJ5dGVCdWZmZXI7XG4gICAgYnVmZmVyO1xuICAgIGNvbnN0cnVjdG9yKHNldHRpbmdzKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuc2V0dGluZ3MgPSBzZXR0aW5ncztcbiAgICB9XG4gICAgd3JpdGUoc2NoZW1hLCB2YWx1ZSkge1xuICAgICAgICBjb25zdCBucyA9IE5vcm1hbGl6ZWRTY2hlbWEub2Yoc2NoZW1hKTtcbiAgICAgICAgaWYgKG5zLmlzU3RyaW5nU2NoZW1hKCkgJiYgdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICB0aGlzLnN0cmluZ0J1ZmZlciA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKG5zLmlzQmxvYlNjaGVtYSgpKSB7XG4gICAgICAgICAgICB0aGlzLmJ5dGVCdWZmZXIgPVxuICAgICAgICAgICAgICAgIFwiYnl0ZUxlbmd0aFwiIGluIHZhbHVlXG4gICAgICAgICAgICAgICAgICAgID8gdmFsdWVcbiAgICAgICAgICAgICAgICAgICAgOiAodGhpcy5zZXJkZUNvbnRleHQ/LmJhc2U2NERlY29kZXIgPz8gZnJvbUJhc2U2NCkodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5idWZmZXIgPSB0aGlzLndyaXRlU3RydWN0KG5zLCB2YWx1ZSwgdW5kZWZpbmVkKTtcbiAgICAgICAgICAgIGNvbnN0IHRyYWl0cyA9IG5zLmdldE1lcmdlZFRyYWl0cygpO1xuICAgICAgICAgICAgaWYgKHRyYWl0cy5odHRwUGF5bG9hZCAmJiAhdHJhaXRzLnhtbE5hbWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmJ1ZmZlci53aXRoTmFtZShucy5nZXROYW1lKCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGZsdXNoKCkge1xuICAgICAgICBpZiAodGhpcy5ieXRlQnVmZmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IGJ5dGVzID0gdGhpcy5ieXRlQnVmZmVyO1xuICAgICAgICAgICAgZGVsZXRlIHRoaXMuYnl0ZUJ1ZmZlcjtcbiAgICAgICAgICAgIHJldHVybiBieXRlcztcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5zdHJpbmdCdWZmZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgY29uc3Qgc3RyID0gdGhpcy5zdHJpbmdCdWZmZXI7XG4gICAgICAgICAgICBkZWxldGUgdGhpcy5zdHJpbmdCdWZmZXI7XG4gICAgICAgICAgICByZXR1cm4gc3RyO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGJ1ZmZlciA9IHRoaXMuYnVmZmVyO1xuICAgICAgICBpZiAodGhpcy5zZXR0aW5ncy54bWxOYW1lc3BhY2UpIHtcbiAgICAgICAgICAgIGlmICghYnVmZmVyPy5hdHRyaWJ1dGVzPy5bXCJ4bWxuc1wiXSkge1xuICAgICAgICAgICAgICAgIGJ1ZmZlci5hZGRBdHRyaWJ1dGUoXCJ4bWxuc1wiLCB0aGlzLnNldHRpbmdzLnhtbE5hbWVzcGFjZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZGVsZXRlIHRoaXMuYnVmZmVyO1xuICAgICAgICByZXR1cm4gYnVmZmVyLnRvU3RyaW5nKCk7XG4gICAgfVxuICAgIHdyaXRlU3RydWN0KG5zLCB2YWx1ZSwgcGFyZW50WG1sbnMpIHtcbiAgICAgICAgY29uc3QgdHJhaXRzID0gbnMuZ2V0TWVyZ2VkVHJhaXRzKCk7XG4gICAgICAgIGNvbnN0IG5hbWUgPSBucy5pc01lbWJlclNjaGVtYSgpICYmICF0cmFpdHMuaHR0cFBheWxvYWRcbiAgICAgICAgICAgID8gbnMuZ2V0TWVtYmVyVHJhaXRzKCkueG1sTmFtZSA/PyBucy5nZXRNZW1iZXJOYW1lKClcbiAgICAgICAgICAgIDogdHJhaXRzLnhtbE5hbWUgPz8gbnMuZ2V0TmFtZSgpO1xuICAgICAgICBpZiAoIW5hbWUgfHwgIW5zLmlzU3RydWN0U2NoZW1hKCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSB4bWwgc2VyaWFsaXplciwgY2Fubm90IHdyaXRlIHN0cnVjdCB3aXRoIGVtcHR5IG5hbWUgb3Igbm9uLXN0cnVjdCwgc2NoZW1hPSR7bnMuZ2V0TmFtZSh0cnVlKX0uYCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc3RydWN0WG1sTm9kZSA9IFhtbE5vZGUub2YobmFtZSk7XG4gICAgICAgIGNvbnN0IFt4bWxuc0F0dHIsIHhtbG5zXSA9IHRoaXMuZ2V0WG1sbnNBdHRyaWJ1dGUobnMsIHBhcmVudFhtbG5zKTtcbiAgICAgICAgZm9yIChjb25zdCBbbWVtYmVyTmFtZSwgbWVtYmVyU2NoZW1hXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICBjb25zdCB2YWwgPSB2YWx1ZVttZW1iZXJOYW1lXTtcbiAgICAgICAgICAgIGlmICh2YWwgIT0gbnVsbCB8fCBtZW1iZXJTY2hlbWEuaXNJZGVtcG90ZW5jeVRva2VuKCkpIHtcbiAgICAgICAgICAgICAgICBpZiAobWVtYmVyU2NoZW1hLmdldE1lcmdlZFRyYWl0cygpLnhtbEF0dHJpYnV0ZSkge1xuICAgICAgICAgICAgICAgICAgICBzdHJ1Y3RYbWxOb2RlLmFkZEF0dHJpYnV0ZShtZW1iZXJTY2hlbWEuZ2V0TWVyZ2VkVHJhaXRzKCkueG1sTmFtZSA/PyBtZW1iZXJOYW1lLCB0aGlzLndyaXRlU2ltcGxlKG1lbWJlclNjaGVtYSwgdmFsKSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAobWVtYmVyU2NoZW1hLmlzTGlzdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMud3JpdGVMaXN0KG1lbWJlclNjaGVtYSwgdmFsLCBzdHJ1Y3RYbWxOb2RlLCB4bWxucyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKG1lbWJlclNjaGVtYS5pc01hcFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMud3JpdGVNYXAobWVtYmVyU2NoZW1hLCB2YWwsIHN0cnVjdFhtbE5vZGUsIHhtbG5zKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAobWVtYmVyU2NoZW1hLmlzU3RydWN0U2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgc3RydWN0WG1sTm9kZS5hZGRDaGlsZE5vZGUodGhpcy53cml0ZVN0cnVjdChtZW1iZXJTY2hlbWEsIHZhbCwgeG1sbnMpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1lbWJlck5vZGUgPSBYbWxOb2RlLm9mKG1lbWJlclNjaGVtYS5nZXRNZXJnZWRUcmFpdHMoKS54bWxOYW1lID8/IG1lbWJlclNjaGVtYS5nZXRNZW1iZXJOYW1lKCkpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLndyaXRlU2ltcGxlSW50byhtZW1iZXJTY2hlbWEsIHZhbCwgbWVtYmVyTm9kZSwgeG1sbnMpO1xuICAgICAgICAgICAgICAgICAgICBzdHJ1Y3RYbWxOb2RlLmFkZENoaWxkTm9kZShtZW1iZXJOb2RlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgeyAkdW5rbm93biB9ID0gdmFsdWU7XG4gICAgICAgIGlmICgkdW5rbm93biAmJiBucy5pc1VuaW9uU2NoZW1hKCkgJiYgQXJyYXkuaXNBcnJheSgkdW5rbm93bikgJiYgT2JqZWN0LmtleXModmFsdWUpLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgY29uc3QgW2ssIHZdID0gJHVua25vd247XG4gICAgICAgICAgICBjb25zdCBub2RlID0gWG1sTm9kZS5vZihrKTtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdiAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIFhtbE5vZGUgfHwgdmFsdWUgaW5zdGFuY2VvZiBYbWxUZXh0KSB7XG4gICAgICAgICAgICAgICAgICAgIHN0cnVjdFhtbE5vZGUuYWRkQ2hpbGROb2RlKHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQGF3cy1zZGsgLSAkdW5rbm93biB1bmlvbiBtZW1iZXIgaW4gWE1MIHJlcXVpcmVzIGAgK1xuICAgICAgICAgICAgICAgICAgICAgICAgYHZhbHVlIG9mIHR5cGUgc3RyaW5nLCBAYXdzLXNkay94bWwtYnVpbGRlcjo6WG1sTm9kZSBvciBYbWxUZXh0LmApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMud3JpdGVTaW1wbGVJbnRvKDAsIHYsIG5vZGUsIHhtbG5zKTtcbiAgICAgICAgICAgIHN0cnVjdFhtbE5vZGUuYWRkQ2hpbGROb2RlKG5vZGUpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh4bWxucykge1xuICAgICAgICAgICAgc3RydWN0WG1sTm9kZS5hZGRBdHRyaWJ1dGUoeG1sbnNBdHRyLCB4bWxucyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN0cnVjdFhtbE5vZGU7XG4gICAgfVxuICAgIHdyaXRlTGlzdChsaXN0TWVtYmVyLCBhcnJheSwgY29udGFpbmVyLCBwYXJlbnRYbWxucykge1xuICAgICAgICBpZiAoIWxpc3RNZW1iZXIuaXNNZW1iZXJTY2hlbWEoKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBAYXdzLXNkay9jb3JlL3Byb3RvY29scyAtIHhtbCBzZXJpYWxpemVyLCBjYW5ub3Qgd3JpdGUgbm9uLW1lbWJlciBsaXN0OiAke2xpc3RNZW1iZXIuZ2V0TmFtZSh0cnVlKX1gKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBsaXN0VHJhaXRzID0gbGlzdE1lbWJlci5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgY29uc3QgbGlzdFZhbHVlU2NoZW1hID0gbGlzdE1lbWJlci5nZXRWYWx1ZVNjaGVtYSgpO1xuICAgICAgICBjb25zdCBsaXN0VmFsdWVUcmFpdHMgPSBsaXN0VmFsdWVTY2hlbWEuZ2V0TWVyZ2VkVHJhaXRzKCk7XG4gICAgICAgIGNvbnN0IHNwYXJzZSA9ICEhbGlzdFZhbHVlVHJhaXRzLnNwYXJzZTtcbiAgICAgICAgY29uc3QgZmxhdCA9ICEhbGlzdFRyYWl0cy54bWxGbGF0dGVuZWQ7XG4gICAgICAgIGNvbnN0IFt4bWxuc0F0dHIsIHhtbG5zXSA9IHRoaXMuZ2V0WG1sbnNBdHRyaWJ1dGUobGlzdE1lbWJlciwgcGFyZW50WG1sbnMpO1xuICAgICAgICBjb25zdCB3cml0ZUl0ZW0gPSAoY29udGFpbmVyLCB2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgaWYgKGxpc3RWYWx1ZVNjaGVtYS5pc0xpc3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVMaXN0KGxpc3RWYWx1ZVNjaGVtYSwgQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV0sIGNvbnRhaW5lciwgeG1sbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAobGlzdFZhbHVlU2NoZW1hLmlzTWFwU2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlTWFwKGxpc3RWYWx1ZVNjaGVtYSwgdmFsdWUsIGNvbnRhaW5lciwgeG1sbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAobGlzdFZhbHVlU2NoZW1hLmlzU3RydWN0U2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgPSB0aGlzLndyaXRlU3RydWN0KGxpc3RWYWx1ZVNjaGVtYSwgdmFsdWUsIHhtbG5zKTtcbiAgICAgICAgICAgICAgICBjb250YWluZXIuYWRkQ2hpbGROb2RlKHN0cnVjdC53aXRoTmFtZShmbGF0ID8gbGlzdFRyYWl0cy54bWxOYW1lID8/IGxpc3RNZW1iZXIuZ2V0TWVtYmVyTmFtZSgpIDogbGlzdFZhbHVlVHJhaXRzLnhtbE5hbWUgPz8gXCJtZW1iZXJcIikpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbGlzdEl0ZW1Ob2RlID0gWG1sTm9kZS5vZihmbGF0ID8gbGlzdFRyYWl0cy54bWxOYW1lID8/IGxpc3RNZW1iZXIuZ2V0TWVtYmVyTmFtZSgpIDogbGlzdFZhbHVlVHJhaXRzLnhtbE5hbWUgPz8gXCJtZW1iZXJcIik7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZVNpbXBsZUludG8obGlzdFZhbHVlU2NoZW1hLCB2YWx1ZSwgbGlzdEl0ZW1Ob2RlLCB4bWxucyk7XG4gICAgICAgICAgICAgICAgY29udGFpbmVyLmFkZENoaWxkTm9kZShsaXN0SXRlbU5vZGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBpZiAoZmxhdCkge1xuICAgICAgICAgICAgZm9yIChjb25zdCB2YWx1ZSBvZiBhcnJheSkge1xuICAgICAgICAgICAgICAgIGlmIChzcGFyc2UgfHwgdmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICB3cml0ZUl0ZW0oY29udGFpbmVyLCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgbGlzdE5vZGUgPSBYbWxOb2RlLm9mKGxpc3RUcmFpdHMueG1sTmFtZSA/PyBsaXN0TWVtYmVyLmdldE1lbWJlck5hbWUoKSk7XG4gICAgICAgICAgICBpZiAoeG1sbnMpIHtcbiAgICAgICAgICAgICAgICBsaXN0Tm9kZS5hZGRBdHRyaWJ1dGUoeG1sbnNBdHRyLCB4bWxucyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHZhbHVlIG9mIGFycmF5KSB7XG4gICAgICAgICAgICAgICAgaWYgKHNwYXJzZSB8fCB2YWx1ZSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHdyaXRlSXRlbShsaXN0Tm9kZSwgdmFsdWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnRhaW5lci5hZGRDaGlsZE5vZGUobGlzdE5vZGUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHdyaXRlTWFwKG1hcE1lbWJlciwgbWFwLCBjb250YWluZXIsIHBhcmVudFhtbG5zLCBjb250YWluZXJJc01hcCA9IGZhbHNlKSB7XG4gICAgICAgIGlmICghbWFwTWVtYmVyLmlzTWVtYmVyU2NoZW1hKCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSB4bWwgc2VyaWFsaXplciwgY2Fubm90IHdyaXRlIG5vbi1tZW1iZXIgbWFwOiAke21hcE1lbWJlci5nZXROYW1lKHRydWUpfWApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG1hcFRyYWl0cyA9IG1hcE1lbWJlci5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgY29uc3QgbWFwS2V5U2NoZW1hID0gbWFwTWVtYmVyLmdldEtleVNjaGVtYSgpO1xuICAgICAgICBjb25zdCBtYXBLZXlUcmFpdHMgPSBtYXBLZXlTY2hlbWEuZ2V0TWVyZ2VkVHJhaXRzKCk7XG4gICAgICAgIGNvbnN0IGtleVRhZyA9IG1hcEtleVRyYWl0cy54bWxOYW1lID8/IFwia2V5XCI7XG4gICAgICAgIGNvbnN0IG1hcFZhbHVlU2NoZW1hID0gbWFwTWVtYmVyLmdldFZhbHVlU2NoZW1hKCk7XG4gICAgICAgIGNvbnN0IG1hcFZhbHVlVHJhaXRzID0gbWFwVmFsdWVTY2hlbWEuZ2V0TWVyZ2VkVHJhaXRzKCk7XG4gICAgICAgIGNvbnN0IHZhbHVlVGFnID0gbWFwVmFsdWVUcmFpdHMueG1sTmFtZSA/PyBcInZhbHVlXCI7XG4gICAgICAgIGNvbnN0IHNwYXJzZSA9ICEhbWFwVmFsdWVUcmFpdHMuc3BhcnNlO1xuICAgICAgICBjb25zdCBmbGF0ID0gISFtYXBUcmFpdHMueG1sRmxhdHRlbmVkO1xuICAgICAgICBjb25zdCBbeG1sbnNBdHRyLCB4bWxuc10gPSB0aGlzLmdldFhtbG5zQXR0cmlidXRlKG1hcE1lbWJlciwgcGFyZW50WG1sbnMpO1xuICAgICAgICBjb25zdCBhZGRLZXlWYWx1ZSA9IChlbnRyeSwga2V5LCB2YWwpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGtleU5vZGUgPSBYbWxOb2RlLm9mKGtleVRhZywga2V5KTtcbiAgICAgICAgICAgIGNvbnN0IFtrZXlYbWxuc0F0dHIsIGtleVhtbG5zXSA9IHRoaXMuZ2V0WG1sbnNBdHRyaWJ1dGUobWFwS2V5U2NoZW1hLCB4bWxucyk7XG4gICAgICAgICAgICBpZiAoa2V5WG1sbnMpIHtcbiAgICAgICAgICAgICAgICBrZXlOb2RlLmFkZEF0dHJpYnV0ZShrZXlYbWxuc0F0dHIsIGtleVhtbG5zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVudHJ5LmFkZENoaWxkTm9kZShrZXlOb2RlKTtcbiAgICAgICAgICAgIGxldCB2YWx1ZU5vZGUgPSBYbWxOb2RlLm9mKHZhbHVlVGFnKTtcbiAgICAgICAgICAgIGlmIChtYXBWYWx1ZVNjaGVtYS5pc0xpc3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVMaXN0KG1hcFZhbHVlU2NoZW1hLCB2YWwsIHZhbHVlTm9kZSwgeG1sbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAobWFwVmFsdWVTY2hlbWEuaXNNYXBTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVNYXAobWFwVmFsdWVTY2hlbWEsIHZhbCwgdmFsdWVOb2RlLCB4bWxucywgdHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChtYXBWYWx1ZVNjaGVtYS5pc1N0cnVjdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgdmFsdWVOb2RlID0gdGhpcy53cml0ZVN0cnVjdChtYXBWYWx1ZVNjaGVtYSwgdmFsLCB4bWxucyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlU2ltcGxlSW50byhtYXBWYWx1ZVNjaGVtYSwgdmFsLCB2YWx1ZU5vZGUsIHhtbG5zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVudHJ5LmFkZENoaWxkTm9kZSh2YWx1ZU5vZGUpO1xuICAgICAgICB9O1xuICAgICAgICBpZiAoZmxhdCkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gbWFwKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsID0gbWFwW2tleV07XG4gICAgICAgICAgICAgICAgaWYgKHNwYXJzZSB8fCB2YWwgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlbnRyeSA9IFhtbE5vZGUub2YobWFwVHJhaXRzLnhtbE5hbWUgPz8gbWFwTWVtYmVyLmdldE1lbWJlck5hbWUoKSk7XG4gICAgICAgICAgICAgICAgICAgIGFkZEtleVZhbHVlKGVudHJ5LCBrZXksIHZhbCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lci5hZGRDaGlsZE5vZGUoZW50cnkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGxldCBtYXBOb2RlO1xuICAgICAgICAgICAgaWYgKCFjb250YWluZXJJc01hcCkge1xuICAgICAgICAgICAgICAgIG1hcE5vZGUgPSBYbWxOb2RlLm9mKG1hcFRyYWl0cy54bWxOYW1lID8/IG1hcE1lbWJlci5nZXRNZW1iZXJOYW1lKCkpO1xuICAgICAgICAgICAgICAgIGlmICh4bWxucykge1xuICAgICAgICAgICAgICAgICAgICBtYXBOb2RlLmFkZEF0dHJpYnV0ZSh4bWxuc0F0dHIsIHhtbG5zKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29udGFpbmVyLmFkZENoaWxkTm9kZShtYXBOb2RlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIG1hcCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbCA9IG1hcFtrZXldO1xuICAgICAgICAgICAgICAgIGlmIChzcGFyc2UgfHwgdmFsICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZW50cnkgPSBYbWxOb2RlLm9mKFwiZW50cnlcIik7XG4gICAgICAgICAgICAgICAgICAgIGFkZEtleVZhbHVlKGVudHJ5LCBrZXksIHZhbCk7XG4gICAgICAgICAgICAgICAgICAgIChjb250YWluZXJJc01hcCA/IGNvbnRhaW5lciA6IG1hcE5vZGUpLmFkZENoaWxkTm9kZShlbnRyeSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHdyaXRlU2ltcGxlKF9zY2hlbWEsIHZhbHVlKSB7XG4gICAgICAgIGlmIChudWxsID09PSB2YWx1ZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSAoWE1MIHNlcmlhbGl6ZXIpIGNhbm5vdCB3cml0ZSBudWxsIHZhbHVlLlwiKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBucyA9IE5vcm1hbGl6ZWRTY2hlbWEub2YoX3NjaGVtYSk7XG4gICAgICAgIGxldCBub2RlQ29udGVudHMgPSBudWxsO1xuICAgICAgICBpZiAodmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICBpZiAobnMuaXNCbG9iU2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICBub2RlQ29udGVudHMgPSAodGhpcy5zZXJkZUNvbnRleHQ/LmJhc2U2NEVuY29kZXIgPz8gdG9CYXNlNjQpKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKG5zLmlzVGltZXN0YW1wU2NoZW1hKCkgJiYgdmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZm9ybWF0ID0gZGV0ZXJtaW5lVGltZXN0YW1wRm9ybWF0KG5zLCB0aGlzLnNldHRpbmdzKTtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGZvcm1hdCkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgICAgICAgICAgICAgICBub2RlQ29udGVudHMgPSB2YWx1ZS50b0lTT1N0cmluZygpLnJlcGxhY2UoXCIuMDAwWlwiLCBcIlpcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgICAgICAgICAgICAgbm9kZUNvbnRlbnRzID0gZGF0ZVRvVXRjU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDc6XG4gICAgICAgICAgICAgICAgICAgICAgICBub2RlQ29udGVudHMgPSBTdHJpbmcodmFsdWUuZ2V0VGltZSgpIC8gMTAwMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihcIk1pc3NpbmcgdGltZXN0YW1wIGZvcm1hdCwgdXNpbmcgaHR0cCBkYXRlXCIsIHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vZGVDb250ZW50cyA9IGRhdGVUb1V0Y1N0cmluZyh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChucy5pc0JpZ0RlY2ltYWxTY2hlbWEoKSAmJiB2YWx1ZSkge1xuICAgICAgICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIE51bWVyaWNWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUuc3RyaW5nO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKG5zLmlzTWFwU2NoZW1hKCkgfHwgbnMuaXNMaXN0U2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJAYXdzLXNkay9jb3JlL3Byb3RvY29scyAtIHhtbCBzZXJpYWxpemVyLCBjYW5ub3QgY2FsbCBfd3JpdGUoKSBvbiBMaXN0L01hcCBzY2hlbWEsIGNhbGwgd3JpdGVMaXN0IG9yIHdyaXRlTWFwKCkgaW5zdGVhZC5cIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEBhd3Mtc2RrL2NvcmUvcHJvdG9jb2xzIC0geG1sIHNlcmlhbGl6ZXIsIHVuaGFuZGxlZCBzY2hlbWEgdHlwZSBmb3Igb2JqZWN0IHZhbHVlIGFuZCBzY2hlbWE6ICR7bnMuZ2V0TmFtZSh0cnVlKX1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAobnMuaXNCb29sZWFuU2NoZW1hKCkgfHwgbnMuaXNOdW1lcmljU2NoZW1hKCkgfHwgbnMuaXNCaWdJbnRlZ2VyU2NoZW1hKCkgfHwgbnMuaXNCaWdEZWNpbWFsU2NoZW1hKCkpIHtcbiAgICAgICAgICAgIG5vZGVDb250ZW50cyA9IFN0cmluZyh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzU3RyaW5nU2NoZW1hKCkpIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkICYmIG5zLmlzSWRlbXBvdGVuY3lUb2tlbigpKSB7XG4gICAgICAgICAgICAgICAgbm9kZUNvbnRlbnRzID0gZ2VuZXJhdGVJZGVtcG90ZW5jeVRva2VuKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBub2RlQ29udGVudHMgPSBTdHJpbmcodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChub2RlQ29udGVudHMgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5oYW5kbGVkIHNjaGVtYS12YWx1ZSBwYWlyICR7bnMuZ2V0TmFtZSh0cnVlKX09JHt2YWx1ZX1gKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbm9kZUNvbnRlbnRzO1xuICAgIH1cbiAgICB3cml0ZVNpbXBsZUludG8oX3NjaGVtYSwgdmFsdWUsIGludG8sIHBhcmVudFhtbG5zKSB7XG4gICAgICAgIGNvbnN0IG5vZGVDb250ZW50cyA9IHRoaXMud3JpdGVTaW1wbGUoX3NjaGVtYSwgdmFsdWUpO1xuICAgICAgICBjb25zdCBucyA9IE5vcm1hbGl6ZWRTY2hlbWEub2YoX3NjaGVtYSk7XG4gICAgICAgIGNvbnN0IGNvbnRlbnQgPSBuZXcgWG1sVGV4dChub2RlQ29udGVudHMpO1xuICAgICAgICBjb25zdCBbeG1sbnNBdHRyLCB4bWxuc10gPSB0aGlzLmdldFhtbG5zQXR0cmlidXRlKG5zLCBwYXJlbnRYbWxucyk7XG4gICAgICAgIGlmICh4bWxucykge1xuICAgICAgICAgICAgaW50by5hZGRBdHRyaWJ1dGUoeG1sbnNBdHRyLCB4bWxucyk7XG4gICAgICAgIH1cbiAgICAgICAgaW50by5hZGRDaGlsZE5vZGUoY29udGVudCk7XG4gICAgfVxuICAgIGdldFhtbG5zQXR0cmlidXRlKG5zLCBwYXJlbnRYbWxucykge1xuICAgICAgICBjb25zdCB0cmFpdHMgPSBucy5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgY29uc3QgW3ByZWZpeCwgeG1sbnNdID0gdHJhaXRzLnhtbE5hbWVzcGFjZSA/PyBbXTtcbiAgICAgICAgaWYgKHhtbG5zICYmIHhtbG5zICE9PSBwYXJlbnRYbWxucykge1xuICAgICAgICAgICAgcmV0dXJuIFtwcmVmaXggPyBgeG1sbnM6JHtwcmVmaXh9YCA6IFwieG1sbnNcIiwgeG1sbnNdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBbdm9pZCAwLCB2b2lkIDBdO1xuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBTZXJkZUNvbnRleHRDb25maWcgfSBmcm9tIFwiLi4vQ29uZmlndXJhYmxlU2VyZGVDb250ZXh0XCI7XG5pbXBvcnQgeyBYbWxTaGFwZURlc2VyaWFsaXplciB9IGZyb20gXCIuL1htbFNoYXBlRGVzZXJpYWxpemVyXCI7XG5pbXBvcnQgeyBYbWxTaGFwZVNlcmlhbGl6ZXIgfSBmcm9tIFwiLi9YbWxTaGFwZVNlcmlhbGl6ZXJcIjtcbmV4cG9ydCBjbGFzcyBYbWxDb2RlYyBleHRlbmRzIFNlcmRlQ29udGV4dENvbmZpZyB7XG4gICAgc2V0dGluZ3M7XG4gICAgY29uc3RydWN0b3Ioc2V0dGluZ3MpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5zZXR0aW5ncyA9IHNldHRpbmdzO1xuICAgIH1cbiAgICBjcmVhdGVTZXJpYWxpemVyKCkge1xuICAgICAgICBjb25zdCBzZXJpYWxpemVyID0gbmV3IFhtbFNoYXBlU2VyaWFsaXplcih0aGlzLnNldHRpbmdzKTtcbiAgICAgICAgc2VyaWFsaXplci5zZXRTZXJkZUNvbnRleHQodGhpcy5zZXJkZUNvbnRleHQpO1xuICAgICAgICByZXR1cm4gc2VyaWFsaXplcjtcbiAgICB9XG4gICAgY3JlYXRlRGVzZXJpYWxpemVyKCkge1xuICAgICAgICBjb25zdCBkZXNlcmlhbGl6ZXIgPSBuZXcgWG1sU2hhcGVEZXNlcmlhbGl6ZXIodGhpcy5zZXR0aW5ncyk7XG4gICAgICAgIGRlc2VyaWFsaXplci5zZXRTZXJkZUNvbnRleHQodGhpcy5zZXJkZUNvbnRleHQpO1xuICAgICAgICByZXR1cm4gZGVzZXJpYWxpemVyO1xuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBIdHRwQmluZGluZ1Byb3RvY29sLCBIdHRwSW50ZXJjZXB0aW5nU2hhcGVEZXNlcmlhbGl6ZXIsIEh0dHBJbnRlcmNlcHRpbmdTaGFwZVNlcmlhbGl6ZXIsIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9wcm90b2NvbHNcIjtcbmltcG9ydCB7IE5vcm1hbGl6ZWRTY2hlbWEgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3NjaGVtYVwiO1xuaW1wb3J0IHsgUHJvdG9jb2xMaWIgfSBmcm9tIFwiLi4vUHJvdG9jb2xMaWJcIjtcbmltcG9ydCB7IGxvYWRSZXN0WG1sRXJyb3JDb2RlIH0gZnJvbSBcIi4vcGFyc2VYbWxCb2R5XCI7XG5pbXBvcnQgeyBYbWxDb2RlYyB9IGZyb20gXCIuL1htbENvZGVjXCI7XG5leHBvcnQgY2xhc3MgQXdzUmVzdFhtbFByb3RvY29sIGV4dGVuZHMgSHR0cEJpbmRpbmdQcm90b2NvbCB7XG4gICAgY29kZWM7XG4gICAgc2VyaWFsaXplcjtcbiAgICBkZXNlcmlhbGl6ZXI7XG4gICAgbWl4aW4gPSBuZXcgUHJvdG9jb2xMaWIoKTtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgICAgICBjb25zdCBzZXR0aW5ncyA9IHtcbiAgICAgICAgICAgIHRpbWVzdGFtcEZvcm1hdDoge1xuICAgICAgICAgICAgICAgIHVzZVRyYWl0OiB0cnVlLFxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IDUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaHR0cEJpbmRpbmdzOiB0cnVlLFxuICAgICAgICAgICAgeG1sTmFtZXNwYWNlOiBvcHRpb25zLnhtbE5hbWVzcGFjZSxcbiAgICAgICAgICAgIHNlcnZpY2VOYW1lc3BhY2U6IG9wdGlvbnMuZGVmYXVsdE5hbWVzcGFjZSxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5jb2RlYyA9IG5ldyBYbWxDb2RlYyhzZXR0aW5ncyk7XG4gICAgICAgIHRoaXMuc2VyaWFsaXplciA9IG5ldyBIdHRwSW50ZXJjZXB0aW5nU2hhcGVTZXJpYWxpemVyKHRoaXMuY29kZWMuY3JlYXRlU2VyaWFsaXplcigpLCBzZXR0aW5ncyk7XG4gICAgICAgIHRoaXMuZGVzZXJpYWxpemVyID0gbmV3IEh0dHBJbnRlcmNlcHRpbmdTaGFwZURlc2VyaWFsaXplcih0aGlzLmNvZGVjLmNyZWF0ZURlc2VyaWFsaXplcigpLCBzZXR0aW5ncyk7XG4gICAgfVxuICAgIGdldFBheWxvYWRDb2RlYygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29kZWM7XG4gICAgfVxuICAgIGdldFNoYXBlSWQoKSB7XG4gICAgICAgIHJldHVybiBcImF3cy5wcm90b2NvbHMjcmVzdFhtbFwiO1xuICAgIH1cbiAgICBhc3luYyBzZXJpYWxpemVSZXF1ZXN0KG9wZXJhdGlvblNjaGVtYSwgaW5wdXQsIGNvbnRleHQpIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IGF3YWl0IHN1cGVyLnNlcmlhbGl6ZVJlcXVlc3Qob3BlcmF0aW9uU2NoZW1hLCBpbnB1dCwgY29udGV4dCk7XG4gICAgICAgIGNvbnN0IGlucHV0U2NoZW1hID0gTm9ybWFsaXplZFNjaGVtYS5vZihvcGVyYXRpb25TY2hlbWEuaW5wdXQpO1xuICAgICAgICBpZiAoIXJlcXVlc3QuaGVhZGVyc1tcImNvbnRlbnQtdHlwZVwiXSkge1xuICAgICAgICAgICAgY29uc3QgY29udGVudFR5cGUgPSB0aGlzLm1peGluLnJlc29sdmVSZXN0Q29udGVudFR5cGUodGhpcy5nZXREZWZhdWx0Q29udGVudFR5cGUoKSwgaW5wdXRTY2hlbWEpO1xuICAgICAgICAgICAgaWYgKGNvbnRlbnRUeXBlKSB7XG4gICAgICAgICAgICAgICAgcmVxdWVzdC5oZWFkZXJzW1wiY29udGVudC10eXBlXCJdID0gY29udGVudFR5cGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiByZXF1ZXN0LmJvZHkgPT09IFwic3RyaW5nXCIgJiZcbiAgICAgICAgICAgIHJlcXVlc3QuaGVhZGVyc1tcImNvbnRlbnQtdHlwZVwiXSA9PT0gdGhpcy5nZXREZWZhdWx0Q29udGVudFR5cGUoKSAmJlxuICAgICAgICAgICAgIXJlcXVlc3QuYm9keS5zdGFydHNXaXRoKFwiPD94bWwgXCIpICYmXG4gICAgICAgICAgICAhdGhpcy5oYXNVbnN0cnVjdHVyZWRQYXlsb2FkQmluZGluZyhpbnB1dFNjaGVtYSkpIHtcbiAgICAgICAgICAgIHJlcXVlc3QuYm9keSA9ICc8P3htbCB2ZXJzaW9uPVwiMS4wXCIgZW5jb2Rpbmc9XCJVVEYtOFwiPz4nICsgcmVxdWVzdC5ib2R5O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXF1ZXN0O1xuICAgIH1cbiAgICBhc3luYyBkZXNlcmlhbGl6ZVJlc3BvbnNlKG9wZXJhdGlvblNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UpIHtcbiAgICAgICAgcmV0dXJuIHN1cGVyLmRlc2VyaWFsaXplUmVzcG9uc2Uob3BlcmF0aW9uU2NoZW1hLCBjb250ZXh0LCByZXNwb25zZSk7XG4gICAgfVxuICAgIGFzeW5jIGhhbmRsZUVycm9yKG9wZXJhdGlvblNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UsIGRhdGFPYmplY3QsIG1ldGFkYXRhKSB7XG4gICAgICAgIGNvbnN0IGVycm9ySWRlbnRpZmllciA9IGxvYWRSZXN0WG1sRXJyb3JDb2RlKHJlc3BvbnNlLCBkYXRhT2JqZWN0KSA/PyBcIlVua25vd25cIjtcbiAgICAgICAgdGhpcy5taXhpbi5jb21wb3NlKHRoaXMuY29tcG9zaXRlRXJyb3JSZWdpc3RyeSwgZXJyb3JJZGVudGlmaWVyLCB0aGlzLm9wdGlvbnMuZGVmYXVsdE5hbWVzcGFjZSk7XG4gICAgICAgIGlmIChkYXRhT2JqZWN0LkVycm9yICYmIHR5cGVvZiBkYXRhT2JqZWN0LkVycm9yID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhkYXRhT2JqZWN0LkVycm9yKSkge1xuICAgICAgICAgICAgICAgIGRhdGFPYmplY3Rba2V5XSA9IGRhdGFPYmplY3QuRXJyb3Jba2V5XTtcbiAgICAgICAgICAgICAgICBpZiAoa2V5LnRvTG93ZXJDYXNlKCkgPT09IFwibWVzc2FnZVwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGRhdGFPYmplY3QubWVzc2FnZSA9IGRhdGFPYmplY3QuRXJyb3Jba2V5XTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGFPYmplY3QuUmVxdWVzdElkICYmICFtZXRhZGF0YS5yZXF1ZXN0SWQpIHtcbiAgICAgICAgICAgIG1ldGFkYXRhLnJlcXVlc3RJZCA9IGRhdGFPYmplY3QuUmVxdWVzdElkO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHsgZXJyb3JTY2hlbWEsIGVycm9yTWV0YWRhdGEgfSA9IGF3YWl0IHRoaXMubWl4aW4uZ2V0RXJyb3JTY2hlbWFPclRocm93QmFzZUV4Y2VwdGlvbihlcnJvcklkZW50aWZpZXIsIHRoaXMub3B0aW9ucy5kZWZhdWx0TmFtZXNwYWNlLCByZXNwb25zZSwgZGF0YU9iamVjdCwgbWV0YWRhdGEpO1xuICAgICAgICBjb25zdCBucyA9IE5vcm1hbGl6ZWRTY2hlbWEub2YoZXJyb3JTY2hlbWEpO1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gZGF0YU9iamVjdC5FcnJvcj8ubWVzc2FnZSA/P1xuICAgICAgICAgICAgZGF0YU9iamVjdC5FcnJvcj8uTWVzc2FnZSA/P1xuICAgICAgICAgICAgZGF0YU9iamVjdC5tZXNzYWdlID8/XG4gICAgICAgICAgICBkYXRhT2JqZWN0Lk1lc3NhZ2UgPz9cbiAgICAgICAgICAgIFwiVW5rbm93bkVycm9yXCI7XG4gICAgICAgIGNvbnN0IEVycm9yQ3RvciA9IHRoaXMuY29tcG9zaXRlRXJyb3JSZWdpc3RyeS5nZXRFcnJvckN0b3IoZXJyb3JTY2hlbWEpID8/IEVycm9yO1xuICAgICAgICBjb25zdCBleGNlcHRpb24gPSBuZXcgRXJyb3JDdG9yKG1lc3NhZ2UpO1xuICAgICAgICBhd2FpdCB0aGlzLmRlc2VyaWFsaXplSHR0cE1lc3NhZ2UoZXJyb3JTY2hlbWEsIGNvbnRleHQsIHJlc3BvbnNlLCBkYXRhT2JqZWN0KTtcbiAgICAgICAgY29uc3Qgb3V0cHV0ID0ge307XG4gICAgICAgIGNvbnN0IGVycm9yRGVzZXJpYWxpemVyID0gdGhpcy5jb2RlYy5jcmVhdGVEZXNlcmlhbGl6ZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBbbmFtZSwgbWVtYmVyXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBtZW1iZXIuZ2V0TWVyZ2VkVHJhaXRzKCkueG1sTmFtZSA/PyBuYW1lO1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBkYXRhT2JqZWN0LkVycm9yPy5bdGFyZ2V0XSA/PyBkYXRhT2JqZWN0W3RhcmdldF07XG4gICAgICAgICAgICBvdXRwdXRbbmFtZV0gPSBlcnJvckRlc2VyaWFsaXplci5yZWFkU2NoZW1hKG1lbWJlciwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IHRoaXMubWl4aW4uZGVjb3JhdGVTZXJ2aWNlRXhjZXB0aW9uKE9iamVjdC5hc3NpZ24oZXhjZXB0aW9uLCBlcnJvck1ldGFkYXRhLCB7XG4gICAgICAgICAgICAkZmF1bHQ6IG5zLmdldE1lcmdlZFRyYWl0cygpLmVycm9yLFxuICAgICAgICAgICAgbWVzc2FnZSxcbiAgICAgICAgfSwgb3V0cHV0KSwgZGF0YU9iamVjdCk7XG4gICAgfVxuICAgIGdldERlZmF1bHRDb250ZW50VHlwZSgpIHtcbiAgICAgICAgcmV0dXJuIFwiYXBwbGljYXRpb24veG1sXCI7XG4gICAgfVxuICAgIGhhc1Vuc3RydWN0dXJlZFBheWxvYWRCaW5kaW5nKG5zKSB7XG4gICAgICAgIGZvciAoY29uc3QgWywgbWVtYmVyXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICBpZiAobWVtYmVyLmdldE1lcmdlZFRyYWl0cygpLmh0dHBQYXlsb2FkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICEobWVtYmVyLmlzU3RydWN0U2NoZW1hKCkgfHwgbWVtYmVyLmlzTWFwU2NoZW1hKCkgfHwgbWVtYmVyLmlzTGlzdFNjaGVtYSgpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuIiwgImV4cG9ydCAqIGZyb20gXCIuL2Nib3IvQXdzU21pdGh5UnBjVjJDYm9yUHJvdG9jb2xcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvZXJjaW5nLXNlcmlhbGl6ZXJzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9qc29uL0F3c0pzb24xXzBQcm90b2NvbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vanNvbi9Bd3NKc29uMV8xUHJvdG9jb2xcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2pzb24vQXdzSnNvblJwY1Byb3RvY29sXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9qc29uL0F3c1Jlc3RKc29uUHJvdG9jb2xcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2pzb24vSnNvbkNvZGVjXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9qc29uL0pzb25TaGFwZURlc2VyaWFsaXplclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vanNvbi9Kc29uU2hhcGVTZXJpYWxpemVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9qc29uL2F3c0V4cGVjdFVuaW9uXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9qc29uL3BhcnNlSnNvbkJvZHlcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3F1ZXJ5L0F3c0VjMlF1ZXJ5UHJvdG9jb2xcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3F1ZXJ5L0F3c1F1ZXJ5UHJvdG9jb2xcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3F1ZXJ5L1F1ZXJ5U2VyaWFsaXplclNldHRpbmdzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9xdWVyeS9RdWVyeVNoYXBlU2VyaWFsaXplclwiO1xuZXhwb3J0ICogZnJvbSBcIi4veG1sL0F3c1Jlc3RYbWxQcm90b2NvbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4veG1sL1htbENvZGVjXCI7XG5leHBvcnQgKiBmcm9tIFwiLi94bWwvWG1sU2hhcGVEZXNlcmlhbGl6ZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3htbC9YbWxTaGFwZVNlcmlhbGl6ZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3htbC9wYXJzZVhtbEJvZHlcIjtcbiIsICJleHBvcnQgKiBmcm9tIFwiLi9zdWJtb2R1bGVzL2NsaWVudC9pbmRleFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3VibW9kdWxlcy9odHRwQXV0aFNjaGVtZXMvaW5kZXhcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3N1Ym1vZHVsZXMvcHJvdG9jb2xzL2luZGV4XCI7XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLnJlc29sdmVIdHRwQXV0aFNjaGVtZUNvbmZpZyA9IGV4cG9ydHMuZGVmYXVsdFNlY3JldHNNYW5hZ2VySHR0cEF1dGhTY2hlbWVQcm92aWRlciA9IGV4cG9ydHMuZGVmYXVsdFNlY3JldHNNYW5hZ2VySHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIgPSB2b2lkIDA7XG5jb25zdCBjb3JlXzEgPSByZXF1aXJlKFwiQGF3cy1zZGsvY29yZVwiKTtcbmNvbnN0IHV0aWxfbWlkZGxld2FyZV8xID0gcmVxdWlyZShcIkBzbWl0aHkvdXRpbC1taWRkbGV3YXJlXCIpO1xuY29uc3QgZGVmYXVsdFNlY3JldHNNYW5hZ2VySHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIgPSBhc3luYyAoY29uZmlnLCBjb250ZXh0LCBpbnB1dCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIG9wZXJhdGlvbjogKDAsIHV0aWxfbWlkZGxld2FyZV8xLmdldFNtaXRoeUNvbnRleHQpKGNvbnRleHQpLm9wZXJhdGlvbixcbiAgICAgICAgcmVnaW9uOiBhd2FpdCAoMCwgdXRpbF9taWRkbGV3YXJlXzEubm9ybWFsaXplUHJvdmlkZXIpKGNvbmZpZy5yZWdpb24pKCkgfHwgKCgpID0+IHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcImV4cGVjdGVkIGByZWdpb25gIHRvIGJlIGNvbmZpZ3VyZWQgZm9yIGBhd3MuYXV0aCNzaWd2NGBcIik7XG4gICAgICAgIH0pKCksXG4gICAgfTtcbn07XG5leHBvcnRzLmRlZmF1bHRTZWNyZXRzTWFuYWdlckh0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyID0gZGVmYXVsdFNlY3JldHNNYW5hZ2VySHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXI7XG5mdW5jdGlvbiBjcmVhdGVBd3NBdXRoU2lndjRIdHRwQXV0aE9wdGlvbihhdXRoUGFyYW1ldGVycykge1xuICAgIHJldHVybiB7XG4gICAgICAgIHNjaGVtZUlkOiBcImF3cy5hdXRoI3NpZ3Y0XCIsXG4gICAgICAgIHNpZ25pbmdQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICBuYW1lOiBcInNlY3JldHNtYW5hZ2VyXCIsXG4gICAgICAgICAgICByZWdpb246IGF1dGhQYXJhbWV0ZXJzLnJlZ2lvbixcbiAgICAgICAgfSxcbiAgICAgICAgcHJvcGVydGllc0V4dHJhY3RvcjogKGNvbmZpZywgY29udGV4dCkgPT4gKHtcbiAgICAgICAgICAgIHNpZ25pbmdQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgICAgY29uZmlnLFxuICAgICAgICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9KSxcbiAgICB9O1xufVxuY29uc3QgZGVmYXVsdFNlY3JldHNNYW5hZ2VySHR0cEF1dGhTY2hlbWVQcm92aWRlciA9IChhdXRoUGFyYW1ldGVycykgPT4ge1xuICAgIGNvbnN0IG9wdGlvbnMgPSBbXTtcbiAgICBzd2l0Y2ggKGF1dGhQYXJhbWV0ZXJzLm9wZXJhdGlvbikge1xuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICBvcHRpb25zLnB1c2goY3JlYXRlQXdzQXV0aFNpZ3Y0SHR0cEF1dGhPcHRpb24oYXV0aFBhcmFtZXRlcnMpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gb3B0aW9ucztcbn07XG5leHBvcnRzLmRlZmF1bHRTZWNyZXRzTWFuYWdlckh0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSBkZWZhdWx0U2VjcmV0c01hbmFnZXJIdHRwQXV0aFNjaGVtZVByb3ZpZGVyO1xuY29uc3QgcmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIGNvbnN0IGNvbmZpZ18wID0gKDAsIGNvcmVfMS5yZXNvbHZlQXdzU2RrU2lnVjRDb25maWcpKGNvbmZpZyk7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oY29uZmlnXzAsIHtcbiAgICAgICAgYXV0aFNjaGVtZVByZWZlcmVuY2U6ICgwLCB1dGlsX21pZGRsZXdhcmVfMS5ub3JtYWxpemVQcm92aWRlcikoY29uZmlnLmF1dGhTY2hlbWVQcmVmZXJlbmNlID8/IFtdKSxcbiAgICB9KTtcbn07XG5leHBvcnRzLnJlc29sdmVIdHRwQXV0aFNjaGVtZUNvbmZpZyA9IHJlc29sdmVIdHRwQXV0aFNjaGVtZUNvbmZpZztcbiIsICJ7XG4gIFwibmFtZVwiOiBcIkBhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXJcIixcbiAgXCJkZXNjcmlwdGlvblwiOiBcIkFXUyBTREsgZm9yIEphdmFTY3JpcHQgU2VjcmV0cyBNYW5hZ2VyIENsaWVudCBmb3IgTm9kZS5qcywgQnJvd3NlciBhbmQgUmVhY3QgTmF0aXZlXCIsXG4gIFwidmVyc2lvblwiOiBcIjMuMTAwNC4wXCIsXG4gIFwic2NyaXB0c1wiOiB7XG4gICAgXCJidWlsZFwiOiBcImNvbmN1cnJlbnRseSAneWFybjpidWlsZDp0eXBlcycgJ3lhcm46YnVpbGQ6ZXMnICYmIHlhcm4gYnVpbGQ6Y2pzXCIsXG4gICAgXCJidWlsZDpjanNcIjogXCJub2RlIC4uLy4uL3NjcmlwdHMvY29tcGlsYXRpb24vaW5saW5lIGNsaWVudC1zZWNyZXRzLW1hbmFnZXJcIixcbiAgICBcImJ1aWxkOmVzXCI6IFwidHNjIC1wIHRzY29uZmlnLmVzLmpzb25cIixcbiAgICBcImJ1aWxkOmluY2x1ZGU6ZGVwc1wiOiBcInlhcm4gZzp0dXJibyBydW4gYnVpbGQgLUY9XFxcIiRucG1fcGFja2FnZV9uYW1lXFxcIlwiLFxuICAgIFwiYnVpbGQ6dHlwZXNcIjogXCJ0c2MgLXAgdHNjb25maWcudHlwZXMuanNvblwiLFxuICAgIFwiYnVpbGQ6dHlwZXM6ZG93bmxldmVsXCI6IFwiZG93bmxldmVsLWR0cyBkaXN0LXR5cGVzIGRpc3QtdHlwZXMvdHMzLjRcIixcbiAgICBcImNsZWFuXCI6IFwicHJlbW92ZSBkaXN0LWNqcyBkaXN0LWVzIGRpc3QtdHlwZXMgdHNjb25maWcuY2pzLnRzYnVpbGRpbmZvIHRzY29uZmlnLmVzLnRzYnVpbGRpbmZvIHRzY29uZmlnLnR5cGVzLnRzYnVpbGRpbmZvXCIsXG4gICAgXCJleHRyYWN0OmRvY3NcIjogXCJhcGktZXh0cmFjdG9yIHJ1biAtLWxvY2FsXCIsXG4gICAgXCJnZW5lcmF0ZTpjbGllbnRcIjogXCJub2RlIC4uLy4uL3NjcmlwdHMvZ2VuZXJhdGUtY2xpZW50cy9zaW5nbGUtc2VydmljZSAtLXNvbG8gc2VjcmV0cy1tYW5hZ2VyXCIsXG4gICAgXCJ0ZXN0XCI6IFwieWFybiBnOnZpdGVzdCBydW4gLS1wYXNzV2l0aE5vVGVzdHNcIixcbiAgICBcInRlc3Q6aW5kZXhcIjogXCJ0c2MgLS1ub0VtaXQgLi90ZXN0L2luZGV4LXR5cGVzLnRzICYmIG5vZGUgLi90ZXN0L2luZGV4LW9iamVjdHMuc3BlYy5tanNcIixcbiAgICBcInRlc3Q6aW50ZWdyYXRpb25cIjogXCJ5YXJuIGc6dml0ZXN0IHJ1biAtLXBhc3NXaXRoTm9UZXN0cyAtYyB2aXRlc3QuY29uZmlnLmludGVnLm10c1wiLFxuICAgIFwidGVzdDppbnRlZ3JhdGlvbjp3YXRjaFwiOiBcInlhcm4gZzp2aXRlc3QgcnVuIC0tcGFzc1dpdGhOb1Rlc3RzIC1jIHZpdGVzdC5jb25maWcuaW50ZWcubXRzXCIsXG4gICAgXCJ0ZXN0OndhdGNoXCI6IFwieWFybiBnOnZpdGVzdCB3YXRjaCAtLXBhc3NXaXRoTm9UZXN0c1wiXG4gIH0sXG4gIFwibWFpblwiOiBcIi4vZGlzdC1janMvaW5kZXguanNcIixcbiAgXCJ0eXBlc1wiOiBcIi4vZGlzdC10eXBlcy9pbmRleC5kLnRzXCIsXG4gIFwibW9kdWxlXCI6IFwiLi9kaXN0LWVzL2luZGV4LmpzXCIsXG4gIFwic2lkZUVmZmVjdHNcIjogZmFsc2UsXG4gIFwiZGVwZW5kZW5jaWVzXCI6IHtcbiAgICBcIkBhd3MtY3J5cHRvL3NoYTI1Ni1icm93c2VyXCI6IFwiNS4yLjBcIixcbiAgICBcIkBhd3MtY3J5cHRvL3NoYTI1Ni1qc1wiOiBcIjUuMi4wXCIsXG4gICAgXCJAYXdzLXNkay9jb3JlXCI6IFwiXjMuOTczLjE4XCIsXG4gICAgXCJAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLW5vZGVcIjogXCJeMy45NzIuMThcIixcbiAgICBcIkBhd3Mtc2RrL21pZGRsZXdhcmUtaG9zdC1oZWFkZXJcIjogXCJeMy45NzIuN1wiLFxuICAgIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1sb2dnZXJcIjogXCJeMy45NzIuN1wiLFxuICAgIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1yZWN1cnNpb24tZGV0ZWN0aW9uXCI6IFwiXjMuOTcyLjdcIixcbiAgICBcIkBhd3Mtc2RrL21pZGRsZXdhcmUtdXNlci1hZ2VudFwiOiBcIl4zLjk3Mi4xOVwiLFxuICAgIFwiQGF3cy1zZGsvcmVnaW9uLWNvbmZpZy1yZXNvbHZlclwiOiBcIl4zLjk3Mi43XCIsXG4gICAgXCJAYXdzLXNkay90eXBlc1wiOiBcIl4zLjk3My41XCIsXG4gICAgXCJAYXdzLXNkay91dGlsLWVuZHBvaW50c1wiOiBcIl4zLjk5Ni40XCIsXG4gICAgXCJAYXdzLXNkay91dGlsLXVzZXItYWdlbnQtYnJvd3NlclwiOiBcIl4zLjk3Mi43XCIsXG4gICAgXCJAYXdzLXNkay91dGlsLXVzZXItYWdlbnQtbm9kZVwiOiBcIl4zLjk3My40XCIsXG4gICAgXCJAc21pdGh5L2NvbmZpZy1yZXNvbHZlclwiOiBcIl40LjQuMTBcIixcbiAgICBcIkBzbWl0aHkvY29yZVwiOiBcIl4zLjIzLjhcIixcbiAgICBcIkBzbWl0aHkvZmV0Y2gtaHR0cC1oYW5kbGVyXCI6IFwiXjUuMy4xM1wiLFxuICAgIFwiQHNtaXRoeS9oYXNoLW5vZGVcIjogXCJeNC4yLjExXCIsXG4gICAgXCJAc21pdGh5L2ludmFsaWQtZGVwZW5kZW5jeVwiOiBcIl40LjIuMTFcIixcbiAgICBcIkBzbWl0aHkvbWlkZGxld2FyZS1jb250ZW50LWxlbmd0aFwiOiBcIl40LjIuMTFcIixcbiAgICBcIkBzbWl0aHkvbWlkZGxld2FyZS1lbmRwb2ludFwiOiBcIl40LjQuMjJcIixcbiAgICBcIkBzbWl0aHkvbWlkZGxld2FyZS1yZXRyeVwiOiBcIl40LjQuMzlcIixcbiAgICBcIkBzbWl0aHkvbWlkZGxld2FyZS1zZXJkZVwiOiBcIl40LjIuMTJcIixcbiAgICBcIkBzbWl0aHkvbWlkZGxld2FyZS1zdGFja1wiOiBcIl40LjIuMTFcIixcbiAgICBcIkBzbWl0aHkvbm9kZS1jb25maWctcHJvdmlkZXJcIjogXCJeNC4zLjExXCIsXG4gICAgXCJAc21pdGh5L25vZGUtaHR0cC1oYW5kbGVyXCI6IFwiXjQuNC4xNFwiLFxuICAgIFwiQHNtaXRoeS9wcm90b2NvbC1odHRwXCI6IFwiXjUuMy4xMVwiLFxuICAgIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI6IFwiXjQuMTIuMlwiLFxuICAgIFwiQHNtaXRoeS90eXBlc1wiOiBcIl40LjEzLjBcIixcbiAgICBcIkBzbWl0aHkvdXJsLXBhcnNlclwiOiBcIl40LjIuMTFcIixcbiAgICBcIkBzbWl0aHkvdXRpbC1iYXNlNjRcIjogXCJeNC4zLjJcIixcbiAgICBcIkBzbWl0aHkvdXRpbC1ib2R5LWxlbmd0aC1icm93c2VyXCI6IFwiXjQuMi4yXCIsXG4gICAgXCJAc21pdGh5L3V0aWwtYm9keS1sZW5ndGgtbm9kZVwiOiBcIl40LjIuM1wiLFxuICAgIFwiQHNtaXRoeS91dGlsLWRlZmF1bHRzLW1vZGUtYnJvd3NlclwiOiBcIl40LjMuMzhcIixcbiAgICBcIkBzbWl0aHkvdXRpbC1kZWZhdWx0cy1tb2RlLW5vZGVcIjogXCJeNC4yLjQxXCIsXG4gICAgXCJAc21pdGh5L3V0aWwtZW5kcG9pbnRzXCI6IFwiXjMuMy4yXCIsXG4gICAgXCJAc21pdGh5L3V0aWwtbWlkZGxld2FyZVwiOiBcIl40LjIuMTFcIixcbiAgICBcIkBzbWl0aHkvdXRpbC1yZXRyeVwiOiBcIl40LjIuMTFcIixcbiAgICBcIkBzbWl0aHkvdXRpbC11dGY4XCI6IFwiXjQuMi4yXCIsXG4gICAgXCJ0c2xpYlwiOiBcIl4yLjYuMlwiXG4gIH0sXG4gIFwiZGV2RGVwZW5kZW5jaWVzXCI6IHtcbiAgICBcIkBzbWl0aHkvc25hcHNob3QtdGVzdGluZ1wiOiBcIl4xLjAuOVwiLFxuICAgIFwiQHRzY29uZmlnL25vZGUyMFwiOiBcIjIwLjEuOFwiLFxuICAgIFwiQHR5cGVzL25vZGVcIjogXCJeMjAuMTQuOFwiLFxuICAgIFwiY29uY3VycmVudGx5XCI6IFwiNy4wLjBcIixcbiAgICBcImRvd25sZXZlbC1kdHNcIjogXCIwLjEwLjFcIixcbiAgICBcInByZW1vdmVcIjogXCI0LjAuMFwiLFxuICAgIFwidHlwZXNjcmlwdFwiOiBcIn41LjguM1wiLFxuICAgIFwidml0ZXN0XCI6IFwiXjQuMC4xN1wiXG4gIH0sXG4gIFwiZW5naW5lc1wiOiB7XG4gICAgXCJub2RlXCI6IFwiPj0yMC4wLjBcIlxuICB9LFxuICBcInR5cGVzVmVyc2lvbnNcIjoge1xuICAgIFwiPDQuNVwiOiB7XG4gICAgICBcImRpc3QtdHlwZXMvKlwiOiBbXG4gICAgICAgIFwiZGlzdC10eXBlcy90czMuNC8qXCJcbiAgICAgIF1cbiAgICB9XG4gIH0sXG4gIFwiZmlsZXNcIjogW1xuICAgIFwiZGlzdC0qLyoqXCJcbiAgXSxcbiAgXCJhdXRob3JcIjoge1xuICAgIFwibmFtZVwiOiBcIkFXUyBTREsgZm9yIEphdmFTY3JpcHQgVGVhbVwiLFxuICAgIFwidXJsXCI6IFwiaHR0cHM6Ly9hd3MuYW1hem9uLmNvbS9qYXZhc2NyaXB0L1wiXG4gIH0sXG4gIFwibGljZW5zZVwiOiBcIkFwYWNoZS0yLjBcIixcbiAgXCJicm93c2VyXCI6IHtcbiAgICBcIi4vZGlzdC1lcy9ydW50aW1lQ29uZmlnXCI6IFwiLi9kaXN0LWVzL3J1bnRpbWVDb25maWcuYnJvd3NlclwiXG4gIH0sXG4gIFwicmVhY3QtbmF0aXZlXCI6IHtcbiAgICBcIi4vZGlzdC1lcy9ydW50aW1lQ29uZmlnXCI6IFwiLi9kaXN0LWVzL3J1bnRpbWVDb25maWcubmF0aXZlXCJcbiAgfSxcbiAgXCJob21lcGFnZVwiOiBcImh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLXNkay1qcy12My90cmVlL21haW4vY2xpZW50cy9jbGllbnQtc2VjcmV0cy1tYW5hZ2VyXCIsXG4gIFwicmVwb3NpdG9yeVwiOiB7XG4gICAgXCJ0eXBlXCI6IFwiZ2l0XCIsXG4gICAgXCJ1cmxcIjogXCJodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1zZGstanMtdjMuZ2l0XCIsXG4gICAgXCJkaXJlY3RvcnlcIjogXCJjbGllbnRzL2NsaWVudC1zZWNyZXRzLW1hbmFnZXJcIlxuICB9XG59XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgY2xpZW50ID0gcmVxdWlyZSgnQGF3cy1zZGsvY29yZS9jbGllbnQnKTtcbnZhciBwcm9wZXJ0eVByb3ZpZGVyID0gcmVxdWlyZSgnQHNtaXRoeS9wcm9wZXJ0eS1wcm92aWRlcicpO1xuXG5jb25zdCBFTlZfS0VZID0gXCJBV1NfQUNDRVNTX0tFWV9JRFwiO1xuY29uc3QgRU5WX1NFQ1JFVCA9IFwiQVdTX1NFQ1JFVF9BQ0NFU1NfS0VZXCI7XG5jb25zdCBFTlZfU0VTU0lPTiA9IFwiQVdTX1NFU1NJT05fVE9LRU5cIjtcbmNvbnN0IEVOVl9FWFBJUkFUSU9OID0gXCJBV1NfQ1JFREVOVElBTF9FWFBJUkFUSU9OXCI7XG5jb25zdCBFTlZfQ1JFREVOVElBTF9TQ09QRSA9IFwiQVdTX0NSRURFTlRJQUxfU0NPUEVcIjtcbmNvbnN0IEVOVl9BQ0NPVU5UX0lEID0gXCJBV1NfQUNDT1VOVF9JRFwiO1xuY29uc3QgZnJvbUVudiA9IChpbml0KSA9PiBhc3luYyAoKSA9PiB7XG4gICAgaW5pdD8ubG9nZ2VyPy5kZWJ1ZyhcIkBhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItZW52IC0gZnJvbUVudlwiKTtcbiAgICBjb25zdCBhY2Nlc3NLZXlJZCA9IHByb2Nlc3MuZW52W0VOVl9LRVldO1xuICAgIGNvbnN0IHNlY3JldEFjY2Vzc0tleSA9IHByb2Nlc3MuZW52W0VOVl9TRUNSRVRdO1xuICAgIGNvbnN0IHNlc3Npb25Ub2tlbiA9IHByb2Nlc3MuZW52W0VOVl9TRVNTSU9OXTtcbiAgICBjb25zdCBleHBpcnkgPSBwcm9jZXNzLmVudltFTlZfRVhQSVJBVElPTl07XG4gICAgY29uc3QgY3JlZGVudGlhbFNjb3BlID0gcHJvY2Vzcy5lbnZbRU5WX0NSRURFTlRJQUxfU0NPUEVdO1xuICAgIGNvbnN0IGFjY291bnRJZCA9IHByb2Nlc3MuZW52W0VOVl9BQ0NPVU5UX0lEXTtcbiAgICBpZiAoYWNjZXNzS2V5SWQgJiYgc2VjcmV0QWNjZXNzS2V5KSB7XG4gICAgICAgIGNvbnN0IGNyZWRlbnRpYWxzID0ge1xuICAgICAgICAgICAgYWNjZXNzS2V5SWQsXG4gICAgICAgICAgICBzZWNyZXRBY2Nlc3NLZXksXG4gICAgICAgICAgICAuLi4oc2Vzc2lvblRva2VuICYmIHsgc2Vzc2lvblRva2VuIH0pLFxuICAgICAgICAgICAgLi4uKGV4cGlyeSAmJiB7IGV4cGlyYXRpb246IG5ldyBEYXRlKGV4cGlyeSkgfSksXG4gICAgICAgICAgICAuLi4oY3JlZGVudGlhbFNjb3BlICYmIHsgY3JlZGVudGlhbFNjb3BlIH0pLFxuICAgICAgICAgICAgLi4uKGFjY291bnRJZCAmJiB7IGFjY291bnRJZCB9KSxcbiAgICAgICAgfTtcbiAgICAgICAgY2xpZW50LnNldENyZWRlbnRpYWxGZWF0dXJlKGNyZWRlbnRpYWxzLCBcIkNSRURFTlRJQUxTX0VOVl9WQVJTXCIsIFwiZ1wiKTtcbiAgICAgICAgcmV0dXJuIGNyZWRlbnRpYWxzO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoXCJVbmFibGUgdG8gZmluZCBlbnZpcm9ubWVudCB2YXJpYWJsZSBjcmVkZW50aWFscy5cIiwgeyBsb2dnZXI6IGluaXQ/LmxvZ2dlciB9KTtcbn07XG5cbmV4cG9ydHMuRU5WX0FDQ09VTlRfSUQgPSBFTlZfQUNDT1VOVF9JRDtcbmV4cG9ydHMuRU5WX0NSRURFTlRJQUxfU0NPUEUgPSBFTlZfQ1JFREVOVElBTF9TQ09QRTtcbmV4cG9ydHMuRU5WX0VYUElSQVRJT04gPSBFTlZfRVhQSVJBVElPTjtcbmV4cG9ydHMuRU5WX0tFWSA9IEVOVl9LRVk7XG5leHBvcnRzLkVOVl9TRUNSRVQgPSBFTlZfU0VDUkVUO1xuZXhwb3J0cy5FTlZfU0VTU0lPTiA9IEVOVl9TRVNTSU9OO1xuZXhwb3J0cy5mcm9tRW52ID0gZnJvbUVudjtcbiIsICJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuY2hlY2tVcmwgPSB2b2lkIDA7XG5jb25zdCBwcm9wZXJ0eV9wcm92aWRlcl8xID0gcmVxdWlyZShcIkBzbWl0aHkvcHJvcGVydHktcHJvdmlkZXJcIik7XG5jb25zdCBMT09QQkFDS19DSURSX0lQdjQgPSBcIjEyNy4wLjAuMC84XCI7XG5jb25zdCBMT09QQkFDS19DSURSX0lQdjYgPSBcIjo6MS8xMjhcIjtcbmNvbnN0IEVDU19DT05UQUlORVJfSE9TVCA9IFwiMTY5LjI1NC4xNzAuMlwiO1xuY29uc3QgRUtTX0NPTlRBSU5FUl9IT1NUX0lQdjQgPSBcIjE2OS4yNTQuMTcwLjIzXCI7XG5jb25zdCBFS1NfQ09OVEFJTkVSX0hPU1RfSVB2NiA9IFwiW2ZkMDA6ZWMyOjoyM11cIjtcbmNvbnN0IGNoZWNrVXJsID0gKHVybCwgbG9nZ2VyKSA9PiB7XG4gICAgaWYgKHVybC5wcm90b2NvbCA9PT0gXCJodHRwczpcIikge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh1cmwuaG9zdG5hbWUgPT09IEVDU19DT05UQUlORVJfSE9TVCB8fFxuICAgICAgICB1cmwuaG9zdG5hbWUgPT09IEVLU19DT05UQUlORVJfSE9TVF9JUHY0IHx8XG4gICAgICAgIHVybC5ob3N0bmFtZSA9PT0gRUtTX0NPTlRBSU5FUl9IT1NUX0lQdjYpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodXJsLmhvc3RuYW1lLmluY2x1ZGVzKFwiW1wiKSkge1xuICAgICAgICBpZiAodXJsLmhvc3RuYW1lID09PSBcIls6OjFdXCIgfHwgdXJsLmhvc3RuYW1lID09PSBcIlswMDAwOjAwMDA6MDAwMDowMDAwOjAwMDA6MDAwMDowMDAwOjAwMDFdXCIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgaWYgKHVybC5ob3N0bmFtZSA9PT0gXCJsb2NhbGhvc3RcIikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGlwQ29tcG9uZW50cyA9IHVybC5ob3N0bmFtZS5zcGxpdChcIi5cIik7XG4gICAgICAgIGNvbnN0IGluUmFuZ2UgPSAoY29tcG9uZW50KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBudW0gPSBwYXJzZUludChjb21wb25lbnQsIDEwKTtcbiAgICAgICAgICAgIHJldHVybiAwIDw9IG51bSAmJiBudW0gPD0gMjU1O1xuICAgICAgICB9O1xuICAgICAgICBpZiAoaXBDb21wb25lbnRzWzBdID09PSBcIjEyN1wiICYmXG4gICAgICAgICAgICBpblJhbmdlKGlwQ29tcG9uZW50c1sxXSkgJiZcbiAgICAgICAgICAgIGluUmFuZ2UoaXBDb21wb25lbnRzWzJdKSAmJlxuICAgICAgICAgICAgaW5SYW5nZShpcENvbXBvbmVudHNbM10pICYmXG4gICAgICAgICAgICBpcENvbXBvbmVudHMubGVuZ3RoID09PSA0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICB9XG4gICAgdGhyb3cgbmV3IHByb3BlcnR5X3Byb3ZpZGVyXzEuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKGBVUkwgbm90IGFjY2VwdGVkLiBJdCBtdXN0IGVpdGhlciBiZSBIVFRQUyBvciBtYXRjaCBvbmUgb2YgdGhlIGZvbGxvd2luZzpcbiAgLSBsb29wYmFjayBDSURSIDEyNy4wLjAuMC84IG9yIFs6OjEvMTI4XVxuICAtIEVDUyBjb250YWluZXIgaG9zdCAxNjkuMjU0LjE3MC4yXG4gIC0gRUtTIGNvbnRhaW5lciBob3N0IDE2OS4yNTQuMTcwLjIzIG9yIFtmZDAwOmVjMjo6MjNdYCwgeyBsb2dnZXIgfSk7XG59O1xuZXhwb3J0cy5jaGVja1VybCA9IGNoZWNrVXJsO1xuIiwgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5jcmVhdGVHZXRSZXF1ZXN0ID0gY3JlYXRlR2V0UmVxdWVzdDtcbmV4cG9ydHMuZ2V0Q3JlZGVudGlhbHMgPSBnZXRDcmVkZW50aWFscztcbmNvbnN0IHByb3BlcnR5X3Byb3ZpZGVyXzEgPSByZXF1aXJlKFwiQHNtaXRoeS9wcm9wZXJ0eS1wcm92aWRlclwiKTtcbmNvbnN0IHByb3RvY29sX2h0dHBfMSA9IHJlcXVpcmUoXCJAc21pdGh5L3Byb3RvY29sLWh0dHBcIik7XG5jb25zdCBzbWl0aHlfY2xpZW50XzEgPSByZXF1aXJlKFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCIpO1xuY29uc3QgdXRpbF9zdHJlYW1fMSA9IHJlcXVpcmUoXCJAc21pdGh5L3V0aWwtc3RyZWFtXCIpO1xuZnVuY3Rpb24gY3JlYXRlR2V0UmVxdWVzdCh1cmwpIHtcbiAgICByZXR1cm4gbmV3IHByb3RvY29sX2h0dHBfMS5IdHRwUmVxdWVzdCh7XG4gICAgICAgIHByb3RvY29sOiB1cmwucHJvdG9jb2wsXG4gICAgICAgIGhvc3RuYW1lOiB1cmwuaG9zdG5hbWUsXG4gICAgICAgIHBvcnQ6IE51bWJlcih1cmwucG9ydCksXG4gICAgICAgIHBhdGg6IHVybC5wYXRobmFtZSxcbiAgICAgICAgcXVlcnk6IEFycmF5LmZyb20odXJsLnNlYXJjaFBhcmFtcy5lbnRyaWVzKCkpLnJlZHVjZSgoYWNjLCBbaywgdl0pID0+IHtcbiAgICAgICAgICAgIGFjY1trXSA9IHY7XG4gICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICB9LCB7fSksXG4gICAgICAgIGZyYWdtZW50OiB1cmwuaGFzaCxcbiAgICB9KTtcbn1cbmFzeW5jIGZ1bmN0aW9uIGdldENyZWRlbnRpYWxzKHJlc3BvbnNlLCBsb2dnZXIpIHtcbiAgICBjb25zdCBzdHJlYW0gPSAoMCwgdXRpbF9zdHJlYW1fMS5zZGtTdHJlYW1NaXhpbikocmVzcG9uc2UuYm9keSk7XG4gICAgY29uc3Qgc3RyID0gYXdhaXQgc3RyZWFtLnRyYW5zZm9ybVRvU3RyaW5nKCk7XG4gICAgaWYgKHJlc3BvbnNlLnN0YXR1c0NvZGUgPT09IDIwMCkge1xuICAgICAgICBjb25zdCBwYXJzZWQgPSBKU09OLnBhcnNlKHN0cik7XG4gICAgICAgIGlmICh0eXBlb2YgcGFyc2VkLkFjY2Vzc0tleUlkICE9PSBcInN0cmluZ1wiIHx8XG4gICAgICAgICAgICB0eXBlb2YgcGFyc2VkLlNlY3JldEFjY2Vzc0tleSAhPT0gXCJzdHJpbmdcIiB8fFxuICAgICAgICAgICAgdHlwZW9mIHBhcnNlZC5Ub2tlbiAhPT0gXCJzdHJpbmdcIiB8fFxuICAgICAgICAgICAgdHlwZW9mIHBhcnNlZC5FeHBpcmF0aW9uICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlfcHJvdmlkZXJfMS5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoXCJIVFRQIGNyZWRlbnRpYWwgcHJvdmlkZXIgcmVzcG9uc2Ugbm90IG9mIHRoZSByZXF1aXJlZCBmb3JtYXQsIGFuIG9iamVjdCBtYXRjaGluZzogXCIgK1xuICAgICAgICAgICAgICAgIFwieyBBY2Nlc3NLZXlJZDogc3RyaW5nLCBTZWNyZXRBY2Nlc3NLZXk6IHN0cmluZywgVG9rZW46IHN0cmluZywgRXhwaXJhdGlvbjogc3RyaW5nKHJmYzMzMzkpIH1cIiwgeyBsb2dnZXIgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGFjY2Vzc0tleUlkOiBwYXJzZWQuQWNjZXNzS2V5SWQsXG4gICAgICAgICAgICBzZWNyZXRBY2Nlc3NLZXk6IHBhcnNlZC5TZWNyZXRBY2Nlc3NLZXksXG4gICAgICAgICAgICBzZXNzaW9uVG9rZW46IHBhcnNlZC5Ub2tlbixcbiAgICAgICAgICAgIGV4cGlyYXRpb246ICgwLCBzbWl0aHlfY2xpZW50XzEucGFyc2VSZmMzMzM5RGF0ZVRpbWUpKHBhcnNlZC5FeHBpcmF0aW9uKSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgaWYgKHJlc3BvbnNlLnN0YXR1c0NvZGUgPj0gNDAwICYmIHJlc3BvbnNlLnN0YXR1c0NvZGUgPCA1MDApIHtcbiAgICAgICAgbGV0IHBhcnNlZEJvZHkgPSB7fTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHBhcnNlZEJvZHkgPSBKU09OLnBhcnNlKHN0cik7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHsgfVxuICAgICAgICB0aHJvdyBPYmplY3QuYXNzaWduKG5ldyBwcm9wZXJ0eV9wcm92aWRlcl8xLkNyZWRlbnRpYWxzUHJvdmlkZXJFcnJvcihgU2VydmVyIHJlc3BvbmRlZCB3aXRoIHN0YXR1czogJHtyZXNwb25zZS5zdGF0dXNDb2RlfWAsIHsgbG9nZ2VyIH0pLCB7XG4gICAgICAgICAgICBDb2RlOiBwYXJzZWRCb2R5LkNvZGUsXG4gICAgICAgICAgICBNZXNzYWdlOiBwYXJzZWRCb2R5Lk1lc3NhZ2UsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgcHJvcGVydHlfcHJvdmlkZXJfMS5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoYFNlcnZlciByZXNwb25kZWQgd2l0aCBzdGF0dXM6ICR7cmVzcG9uc2Uuc3RhdHVzQ29kZX1gLCB7IGxvZ2dlciB9KTtcbn1cbiIsICJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMucmV0cnlXcmFwcGVyID0gdm9pZCAwO1xuY29uc3QgcmV0cnlXcmFwcGVyID0gKHRvUmV0cnksIG1heFJldHJpZXMsIGRlbGF5TXMpID0+IHtcbiAgICByZXR1cm4gYXN5bmMgKCkgPT4ge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1heFJldHJpZXM7ICsraSkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYXdhaXQgdG9SZXRyeSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gc2V0VGltZW91dChyZXNvbHZlLCBkZWxheU1zKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGF3YWl0IHRvUmV0cnkoKTtcbiAgICB9O1xufTtcbmV4cG9ydHMucmV0cnlXcmFwcGVyID0gcmV0cnlXcmFwcGVyO1xuIiwgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5mcm9tSHR0cCA9IHZvaWQgMDtcbmNvbnN0IHRzbGliXzEgPSByZXF1aXJlKFwidHNsaWJcIik7XG5jb25zdCBjbGllbnRfMSA9IHJlcXVpcmUoXCJAYXdzLXNkay9jb3JlL2NsaWVudFwiKTtcbmNvbnN0IG5vZGVfaHR0cF9oYW5kbGVyXzEgPSByZXF1aXJlKFwiQHNtaXRoeS9ub2RlLWh0dHAtaGFuZGxlclwiKTtcbmNvbnN0IHByb3BlcnR5X3Byb3ZpZGVyXzEgPSByZXF1aXJlKFwiQHNtaXRoeS9wcm9wZXJ0eS1wcm92aWRlclwiKTtcbmNvbnN0IHByb21pc2VzXzEgPSB0c2xpYl8xLl9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwibm9kZTpmcy9wcm9taXNlc1wiKSk7XG5jb25zdCBjaGVja1VybF8xID0gcmVxdWlyZShcIi4vY2hlY2tVcmxcIik7XG5jb25zdCByZXF1ZXN0SGVscGVyc18xID0gcmVxdWlyZShcIi4vcmVxdWVzdEhlbHBlcnNcIik7XG5jb25zdCByZXRyeV93cmFwcGVyXzEgPSByZXF1aXJlKFwiLi9yZXRyeS13cmFwcGVyXCIpO1xuY29uc3QgQVdTX0NPTlRBSU5FUl9DUkVERU5USUFMU19SRUxBVElWRV9VUkkgPSBcIkFXU19DT05UQUlORVJfQ1JFREVOVElBTFNfUkVMQVRJVkVfVVJJXCI7XG5jb25zdCBERUZBVUxUX0xJTktfTE9DQUxfSE9TVCA9IFwiaHR0cDovLzE2OS4yNTQuMTcwLjJcIjtcbmNvbnN0IEFXU19DT05UQUlORVJfQ1JFREVOVElBTFNfRlVMTF9VUkkgPSBcIkFXU19DT05UQUlORVJfQ1JFREVOVElBTFNfRlVMTF9VUklcIjtcbmNvbnN0IEFXU19DT05UQUlORVJfQVVUSE9SSVpBVElPTl9UT0tFTl9GSUxFID0gXCJBV1NfQ09OVEFJTkVSX0FVVEhPUklaQVRJT05fVE9LRU5fRklMRVwiO1xuY29uc3QgQVdTX0NPTlRBSU5FUl9BVVRIT1JJWkFUSU9OX1RPS0VOID0gXCJBV1NfQ09OVEFJTkVSX0FVVEhPUklaQVRJT05fVE9LRU5cIjtcbmNvbnN0IGZyb21IdHRwID0gKG9wdGlvbnMgPSB7fSkgPT4ge1xuICAgIG9wdGlvbnMubG9nZ2VyPy5kZWJ1ZyhcIkBhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItaHR0cCAtIGZyb21IdHRwXCIpO1xuICAgIGxldCBob3N0O1xuICAgIGNvbnN0IHJlbGF0aXZlID0gb3B0aW9ucy5hd3NDb250YWluZXJDcmVkZW50aWFsc1JlbGF0aXZlVXJpID8/IHByb2Nlc3MuZW52W0FXU19DT05UQUlORVJfQ1JFREVOVElBTFNfUkVMQVRJVkVfVVJJXTtcbiAgICBjb25zdCBmdWxsID0gb3B0aW9ucy5hd3NDb250YWluZXJDcmVkZW50aWFsc0Z1bGxVcmkgPz8gcHJvY2Vzcy5lbnZbQVdTX0NPTlRBSU5FUl9DUkVERU5USUFMU19GVUxMX1VSSV07XG4gICAgY29uc3QgdG9rZW4gPSBvcHRpb25zLmF3c0NvbnRhaW5lckF1dGhvcml6YXRpb25Ub2tlbiA/PyBwcm9jZXNzLmVudltBV1NfQ09OVEFJTkVSX0FVVEhPUklaQVRJT05fVE9LRU5dO1xuICAgIGNvbnN0IHRva2VuRmlsZSA9IG9wdGlvbnMuYXdzQ29udGFpbmVyQXV0aG9yaXphdGlvblRva2VuRmlsZSA/PyBwcm9jZXNzLmVudltBV1NfQ09OVEFJTkVSX0FVVEhPUklaQVRJT05fVE9LRU5fRklMRV07XG4gICAgY29uc3Qgd2FybiA9IG9wdGlvbnMubG9nZ2VyPy5jb25zdHJ1Y3Rvcj8ubmFtZSA9PT0gXCJOb09wTG9nZ2VyXCIgfHwgIW9wdGlvbnMubG9nZ2VyPy53YXJuXG4gICAgICAgID8gY29uc29sZS53YXJuXG4gICAgICAgIDogb3B0aW9ucy5sb2dnZXIud2Fybi5iaW5kKG9wdGlvbnMubG9nZ2VyKTtcbiAgICBpZiAocmVsYXRpdmUgJiYgZnVsbCkge1xuICAgICAgICB3YXJuKFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1odHRwOiBcIiArXG4gICAgICAgICAgICBcInlvdSBoYXZlIHNldCBib3RoIGF3c0NvbnRhaW5lckNyZWRlbnRpYWxzUmVsYXRpdmVVcmkgYW5kIGF3c0NvbnRhaW5lckNyZWRlbnRpYWxzRnVsbFVyaS5cIik7XG4gICAgICAgIHdhcm4oXCJhd3NDb250YWluZXJDcmVkZW50aWFsc0Z1bGxVcmkgd2lsbCB0YWtlIHByZWNlZGVuY2UuXCIpO1xuICAgIH1cbiAgICBpZiAodG9rZW4gJiYgdG9rZW5GaWxlKSB7XG4gICAgICAgIHdhcm4oXCJAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLWh0dHA6IFwiICtcbiAgICAgICAgICAgIFwieW91IGhhdmUgc2V0IGJvdGggYXdzQ29udGFpbmVyQXV0aG9yaXphdGlvblRva2VuIGFuZCBhd3NDb250YWluZXJBdXRob3JpemF0aW9uVG9rZW5GaWxlLlwiKTtcbiAgICAgICAgd2FybihcImF3c0NvbnRhaW5lckF1dGhvcml6YXRpb25Ub2tlbiB3aWxsIHRha2UgcHJlY2VkZW5jZS5cIik7XG4gICAgfVxuICAgIGlmIChmdWxsKSB7XG4gICAgICAgIGhvc3QgPSBmdWxsO1xuICAgIH1cbiAgICBlbHNlIGlmIChyZWxhdGl2ZSkge1xuICAgICAgICBob3N0ID0gYCR7REVGQVVMVF9MSU5LX0xPQ0FMX0hPU1R9JHtyZWxhdGl2ZX1gO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5X3Byb3ZpZGVyXzEuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKGBObyBIVFRQIGNyZWRlbnRpYWwgcHJvdmlkZXIgaG9zdCBwcm92aWRlZC5cblNldCBBV1NfQ09OVEFJTkVSX0NSRURFTlRJQUxTX0ZVTExfVVJJIG9yIEFXU19DT05UQUlORVJfQ1JFREVOVElBTFNfUkVMQVRJVkVfVVJJLmAsIHsgbG9nZ2VyOiBvcHRpb25zLmxvZ2dlciB9KTtcbiAgICB9XG4gICAgY29uc3QgdXJsID0gbmV3IFVSTChob3N0KTtcbiAgICAoMCwgY2hlY2tVcmxfMS5jaGVja1VybCkodXJsLCBvcHRpb25zLmxvZ2dlcik7XG4gICAgY29uc3QgcmVxdWVzdEhhbmRsZXIgPSBub2RlX2h0dHBfaGFuZGxlcl8xLk5vZGVIdHRwSGFuZGxlci5jcmVhdGUoe1xuICAgICAgICByZXF1ZXN0VGltZW91dDogb3B0aW9ucy50aW1lb3V0ID8/IDEwMDAsXG4gICAgICAgIGNvbm5lY3Rpb25UaW1lb3V0OiBvcHRpb25zLnRpbWVvdXQgPz8gMTAwMCxcbiAgICB9KTtcbiAgICByZXR1cm4gKDAsIHJldHJ5X3dyYXBwZXJfMS5yZXRyeVdyYXBwZXIpKGFzeW5jICgpID0+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgwLCByZXF1ZXN0SGVscGVyc18xLmNyZWF0ZUdldFJlcXVlc3QpKHVybCk7XG4gICAgICAgIGlmICh0b2tlbikge1xuICAgICAgICAgICAgcmVxdWVzdC5oZWFkZXJzLkF1dGhvcml6YXRpb24gPSB0b2tlbjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0b2tlbkZpbGUpIHtcbiAgICAgICAgICAgIHJlcXVlc3QuaGVhZGVycy5BdXRob3JpemF0aW9uID0gKGF3YWl0IHByb21pc2VzXzEuZGVmYXVsdC5yZWFkRmlsZSh0b2tlbkZpbGUpKS50b1N0cmluZygpO1xuICAgICAgICB9XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZXF1ZXN0SGFuZGxlci5oYW5kbGUocmVxdWVzdCk7XG4gICAgICAgICAgICByZXR1cm4gKDAsIHJlcXVlc3RIZWxwZXJzXzEuZ2V0Q3JlZGVudGlhbHMpKHJlc3VsdC5yZXNwb25zZSkudGhlbigoY3JlZHMpID0+ICgwLCBjbGllbnRfMS5zZXRDcmVkZW50aWFsRmVhdHVyZSkoY3JlZHMsIFwiQ1JFREVOVElBTFNfSFRUUFwiLCBcInpcIikpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlfcHJvdmlkZXJfMS5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoU3RyaW5nKGUpLCB7IGxvZ2dlcjogb3B0aW9ucy5sb2dnZXIgfSk7XG4gICAgICAgIH1cbiAgICB9LCBvcHRpb25zLm1heFJldHJpZXMgPz8gMywgb3B0aW9ucy50aW1lb3V0ID8/IDEwMDApO1xufTtcbmV4cG9ydHMuZnJvbUh0dHAgPSBmcm9tSHR0cDtcbiIsICJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuZnJvbUh0dHAgPSB2b2lkIDA7XG52YXIgZnJvbUh0dHBfMSA9IHJlcXVpcmUoXCIuL2Zyb21IdHRwL2Zyb21IdHRwXCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiZnJvbUh0dHBcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGZyb21IdHRwXzEuZnJvbUh0dHA7IH0gfSk7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgcHJvdG9jb2xIdHRwID0gcmVxdWlyZSgnQHNtaXRoeS9wcm90b2NvbC1odHRwJyk7XG5cbmZ1bmN0aW9uIHJlc29sdmVIb3N0SGVhZGVyQ29uZmlnKGlucHV0KSB7XG4gICAgcmV0dXJuIGlucHV0O1xufVxuY29uc3QgaG9zdEhlYWRlck1pZGRsZXdhcmUgPSAob3B0aW9ucykgPT4gKG5leHQpID0+IGFzeW5jIChhcmdzKSA9PiB7XG4gICAgaWYgKCFwcm90b2NvbEh0dHAuSHR0cFJlcXVlc3QuaXNJbnN0YW5jZShhcmdzLnJlcXVlc3QpKVxuICAgICAgICByZXR1cm4gbmV4dChhcmdzKTtcbiAgICBjb25zdCB7IHJlcXVlc3QgfSA9IGFyZ3M7XG4gICAgY29uc3QgeyBoYW5kbGVyUHJvdG9jb2wgPSBcIlwiIH0gPSBvcHRpb25zLnJlcXVlc3RIYW5kbGVyLm1ldGFkYXRhIHx8IHt9O1xuICAgIGlmIChoYW5kbGVyUHJvdG9jb2wuaW5kZXhPZihcImgyXCIpID49IDAgJiYgIXJlcXVlc3QuaGVhZGVyc1tcIjphdXRob3JpdHlcIl0pIHtcbiAgICAgICAgZGVsZXRlIHJlcXVlc3QuaGVhZGVyc1tcImhvc3RcIl07XG4gICAgICAgIHJlcXVlc3QuaGVhZGVyc1tcIjphdXRob3JpdHlcIl0gPSByZXF1ZXN0Lmhvc3RuYW1lICsgKHJlcXVlc3QucG9ydCA/IFwiOlwiICsgcmVxdWVzdC5wb3J0IDogXCJcIik7XG4gICAgfVxuICAgIGVsc2UgaWYgKCFyZXF1ZXN0LmhlYWRlcnNbXCJob3N0XCJdKSB7XG4gICAgICAgIGxldCBob3N0ID0gcmVxdWVzdC5ob3N0bmFtZTtcbiAgICAgICAgaWYgKHJlcXVlc3QucG9ydCAhPSBudWxsKVxuICAgICAgICAgICAgaG9zdCArPSBgOiR7cmVxdWVzdC5wb3J0fWA7XG4gICAgICAgIHJlcXVlc3QuaGVhZGVyc1tcImhvc3RcIl0gPSBob3N0O1xuICAgIH1cbiAgICByZXR1cm4gbmV4dChhcmdzKTtcbn07XG5jb25zdCBob3N0SGVhZGVyTWlkZGxld2FyZU9wdGlvbnMgPSB7XG4gICAgbmFtZTogXCJob3N0SGVhZGVyTWlkZGxld2FyZVwiLFxuICAgIHN0ZXA6IFwiYnVpbGRcIixcbiAgICBwcmlvcml0eTogXCJsb3dcIixcbiAgICB0YWdzOiBbXCJIT1NUXCJdLFxuICAgIG92ZXJyaWRlOiB0cnVlLFxufTtcbmNvbnN0IGdldEhvc3RIZWFkZXJQbHVnaW4gPSAob3B0aW9ucykgPT4gKHtcbiAgICBhcHBseVRvU3RhY2s6IChjbGllbnRTdGFjaykgPT4ge1xuICAgICAgICBjbGllbnRTdGFjay5hZGQoaG9zdEhlYWRlck1pZGRsZXdhcmUob3B0aW9ucyksIGhvc3RIZWFkZXJNaWRkbGV3YXJlT3B0aW9ucyk7XG4gICAgfSxcbn0pO1xuXG5leHBvcnRzLmdldEhvc3RIZWFkZXJQbHVnaW4gPSBnZXRIb3N0SGVhZGVyUGx1Z2luO1xuZXhwb3J0cy5ob3N0SGVhZGVyTWlkZGxld2FyZSA9IGhvc3RIZWFkZXJNaWRkbGV3YXJlO1xuZXhwb3J0cy5ob3N0SGVhZGVyTWlkZGxld2FyZU9wdGlvbnMgPSBob3N0SGVhZGVyTWlkZGxld2FyZU9wdGlvbnM7XG5leHBvcnRzLnJlc29sdmVIb3N0SGVhZGVyQ29uZmlnID0gcmVzb2x2ZUhvc3RIZWFkZXJDb25maWc7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG5jb25zdCBsb2dnZXJNaWRkbGV3YXJlID0gKCkgPT4gKG5leHQsIGNvbnRleHQpID0+IGFzeW5jIChhcmdzKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBuZXh0KGFyZ3MpO1xuICAgICAgICBjb25zdCB7IGNsaWVudE5hbWUsIGNvbW1hbmROYW1lLCBsb2dnZXIsIGR5bmFtb0RiRG9jdW1lbnRDbGllbnRPcHRpb25zID0ge30gfSA9IGNvbnRleHQ7XG4gICAgICAgIGNvbnN0IHsgb3ZlcnJpZGVJbnB1dEZpbHRlclNlbnNpdGl2ZUxvZywgb3ZlcnJpZGVPdXRwdXRGaWx0ZXJTZW5zaXRpdmVMb2cgfSA9IGR5bmFtb0RiRG9jdW1lbnRDbGllbnRPcHRpb25zO1xuICAgICAgICBjb25zdCBpbnB1dEZpbHRlclNlbnNpdGl2ZUxvZyA9IG92ZXJyaWRlSW5wdXRGaWx0ZXJTZW5zaXRpdmVMb2cgPz8gY29udGV4dC5pbnB1dEZpbHRlclNlbnNpdGl2ZUxvZztcbiAgICAgICAgY29uc3Qgb3V0cHV0RmlsdGVyU2Vuc2l0aXZlTG9nID0gb3ZlcnJpZGVPdXRwdXRGaWx0ZXJTZW5zaXRpdmVMb2cgPz8gY29udGV4dC5vdXRwdXRGaWx0ZXJTZW5zaXRpdmVMb2c7XG4gICAgICAgIGNvbnN0IHsgJG1ldGFkYXRhLCAuLi5vdXRwdXRXaXRob3V0TWV0YWRhdGEgfSA9IHJlc3BvbnNlLm91dHB1dDtcbiAgICAgICAgbG9nZ2VyPy5pbmZvPy4oe1xuICAgICAgICAgICAgY2xpZW50TmFtZSxcbiAgICAgICAgICAgIGNvbW1hbmROYW1lLFxuICAgICAgICAgICAgaW5wdXQ6IGlucHV0RmlsdGVyU2Vuc2l0aXZlTG9nKGFyZ3MuaW5wdXQpLFxuICAgICAgICAgICAgb3V0cHV0OiBvdXRwdXRGaWx0ZXJTZW5zaXRpdmVMb2cob3V0cHV0V2l0aG91dE1ldGFkYXRhKSxcbiAgICAgICAgICAgIG1ldGFkYXRhOiAkbWV0YWRhdGEsXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgfVxuICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zdCB7IGNsaWVudE5hbWUsIGNvbW1hbmROYW1lLCBsb2dnZXIsIGR5bmFtb0RiRG9jdW1lbnRDbGllbnRPcHRpb25zID0ge30gfSA9IGNvbnRleHQ7XG4gICAgICAgIGNvbnN0IHsgb3ZlcnJpZGVJbnB1dEZpbHRlclNlbnNpdGl2ZUxvZyB9ID0gZHluYW1vRGJEb2N1bWVudENsaWVudE9wdGlvbnM7XG4gICAgICAgIGNvbnN0IGlucHV0RmlsdGVyU2Vuc2l0aXZlTG9nID0gb3ZlcnJpZGVJbnB1dEZpbHRlclNlbnNpdGl2ZUxvZyA/PyBjb250ZXh0LmlucHV0RmlsdGVyU2Vuc2l0aXZlTG9nO1xuICAgICAgICBsb2dnZXI/LmVycm9yPy4oe1xuICAgICAgICAgICAgY2xpZW50TmFtZSxcbiAgICAgICAgICAgIGNvbW1hbmROYW1lLFxuICAgICAgICAgICAgaW5wdXQ6IGlucHV0RmlsdGVyU2Vuc2l0aXZlTG9nKGFyZ3MuaW5wdXQpLFxuICAgICAgICAgICAgZXJyb3IsXG4gICAgICAgICAgICBtZXRhZGF0YTogZXJyb3IuJG1ldGFkYXRhLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxufTtcbmNvbnN0IGxvZ2dlck1pZGRsZXdhcmVPcHRpb25zID0ge1xuICAgIG5hbWU6IFwibG9nZ2VyTWlkZGxld2FyZVwiLFxuICAgIHRhZ3M6IFtcIkxPR0dFUlwiXSxcbiAgICBzdGVwOiBcImluaXRpYWxpemVcIixcbiAgICBvdmVycmlkZTogdHJ1ZSxcbn07XG5jb25zdCBnZXRMb2dnZXJQbHVnaW4gPSAob3B0aW9ucykgPT4gKHtcbiAgICBhcHBseVRvU3RhY2s6IChjbGllbnRTdGFjaykgPT4ge1xuICAgICAgICBjbGllbnRTdGFjay5hZGQobG9nZ2VyTWlkZGxld2FyZSgpLCBsb2dnZXJNaWRkbGV3YXJlT3B0aW9ucyk7XG4gICAgfSxcbn0pO1xuXG5leHBvcnRzLmdldExvZ2dlclBsdWdpbiA9IGdldExvZ2dlclBsdWdpbjtcbmV4cG9ydHMubG9nZ2VyTWlkZGxld2FyZSA9IGxvZ2dlck1pZGRsZXdhcmU7XG5leHBvcnRzLmxvZ2dlck1pZGRsZXdhcmVPcHRpb25zID0gbG9nZ2VyTWlkZGxld2FyZU9wdGlvbnM7XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLnJlY3Vyc2lvbkRldGVjdGlvbk1pZGRsZXdhcmUgPSB2b2lkIDA7XG5jb25zdCBsYW1iZGFfaW52b2tlX3N0b3JlXzEgPSByZXF1aXJlKFwiQGF3cy9sYW1iZGEtaW52b2tlLXN0b3JlXCIpO1xuY29uc3QgcHJvdG9jb2xfaHR0cF8xID0gcmVxdWlyZShcIkBzbWl0aHkvcHJvdG9jb2wtaHR0cFwiKTtcbmNvbnN0IFRSQUNFX0lEX0hFQURFUl9OQU1FID0gXCJYLUFtem4tVHJhY2UtSWRcIjtcbmNvbnN0IEVOVl9MQU1CREFfRlVOQ1RJT05fTkFNRSA9IFwiQVdTX0xBTUJEQV9GVU5DVElPTl9OQU1FXCI7XG5jb25zdCBFTlZfVFJBQ0VfSUQgPSBcIl9YX0FNWk5fVFJBQ0VfSURcIjtcbmNvbnN0IHJlY3Vyc2lvbkRldGVjdGlvbk1pZGRsZXdhcmUgPSAoKSA9PiAobmV4dCkgPT4gYXN5bmMgKGFyZ3MpID0+IHtcbiAgICBjb25zdCB7IHJlcXVlc3QgfSA9IGFyZ3M7XG4gICAgaWYgKCFwcm90b2NvbF9odHRwXzEuSHR0cFJlcXVlc3QuaXNJbnN0YW5jZShyZXF1ZXN0KSkge1xuICAgICAgICByZXR1cm4gbmV4dChhcmdzKTtcbiAgICB9XG4gICAgY29uc3QgdHJhY2VJZEhlYWRlciA9IE9iamVjdC5rZXlzKHJlcXVlc3QuaGVhZGVycyA/PyB7fSkuZmluZCgoaCkgPT4gaC50b0xvd2VyQ2FzZSgpID09PSBUUkFDRV9JRF9IRUFERVJfTkFNRS50b0xvd2VyQ2FzZSgpKSA/P1xuICAgICAgICBUUkFDRV9JRF9IRUFERVJfTkFNRTtcbiAgICBpZiAocmVxdWVzdC5oZWFkZXJzLmhhc093blByb3BlcnR5KHRyYWNlSWRIZWFkZXIpKSB7XG4gICAgICAgIHJldHVybiBuZXh0KGFyZ3MpO1xuICAgIH1cbiAgICBjb25zdCBmdW5jdGlvbk5hbWUgPSBwcm9jZXNzLmVudltFTlZfTEFNQkRBX0ZVTkNUSU9OX05BTUVdO1xuICAgIGNvbnN0IHRyYWNlSWRGcm9tRW52ID0gcHJvY2Vzcy5lbnZbRU5WX1RSQUNFX0lEXTtcbiAgICBjb25zdCBpbnZva2VTdG9yZSA9IGF3YWl0IGxhbWJkYV9pbnZva2Vfc3RvcmVfMS5JbnZva2VTdG9yZS5nZXRJbnN0YW5jZUFzeW5jKCk7XG4gICAgY29uc3QgdHJhY2VJZEZyb21JbnZva2VTdG9yZSA9IGludm9rZVN0b3JlPy5nZXRYUmF5VHJhY2VJZCgpO1xuICAgIGNvbnN0IHRyYWNlSWQgPSB0cmFjZUlkRnJvbUludm9rZVN0b3JlID8/IHRyYWNlSWRGcm9tRW52O1xuICAgIGNvbnN0IG5vbkVtcHR5U3RyaW5nID0gKHN0cikgPT4gdHlwZW9mIHN0ciA9PT0gXCJzdHJpbmdcIiAmJiBzdHIubGVuZ3RoID4gMDtcbiAgICBpZiAobm9uRW1wdHlTdHJpbmcoZnVuY3Rpb25OYW1lKSAmJiBub25FbXB0eVN0cmluZyh0cmFjZUlkKSkge1xuICAgICAgICByZXF1ZXN0LmhlYWRlcnNbVFJBQ0VfSURfSEVBREVSX05BTUVdID0gdHJhY2VJZDtcbiAgICB9XG4gICAgcmV0dXJuIG5leHQoe1xuICAgICAgICAuLi5hcmdzLFxuICAgICAgICByZXF1ZXN0LFxuICAgIH0pO1xufTtcbmV4cG9ydHMucmVjdXJzaW9uRGV0ZWN0aW9uTWlkZGxld2FyZSA9IHJlY3Vyc2lvbkRldGVjdGlvbk1pZGRsZXdhcmU7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgcmVjdXJzaW9uRGV0ZWN0aW9uTWlkZGxld2FyZSA9IHJlcXVpcmUoJy4vcmVjdXJzaW9uRGV0ZWN0aW9uTWlkZGxld2FyZScpO1xuXG5jb25zdCByZWN1cnNpb25EZXRlY3Rpb25NaWRkbGV3YXJlT3B0aW9ucyA9IHtcbiAgICBzdGVwOiBcImJ1aWxkXCIsXG4gICAgdGFnczogW1wiUkVDVVJTSU9OX0RFVEVDVElPTlwiXSxcbiAgICBuYW1lOiBcInJlY3Vyc2lvbkRldGVjdGlvbk1pZGRsZXdhcmVcIixcbiAgICBvdmVycmlkZTogdHJ1ZSxcbiAgICBwcmlvcml0eTogXCJsb3dcIixcbn07XG5cbmNvbnN0IGdldFJlY3Vyc2lvbkRldGVjdGlvblBsdWdpbiA9IChvcHRpb25zKSA9PiAoe1xuICAgIGFwcGx5VG9TdGFjazogKGNsaWVudFN0YWNrKSA9PiB7XG4gICAgICAgIGNsaWVudFN0YWNrLmFkZChyZWN1cnNpb25EZXRlY3Rpb25NaWRkbGV3YXJlLnJlY3Vyc2lvbkRldGVjdGlvbk1pZGRsZXdhcmUoKSwgcmVjdXJzaW9uRGV0ZWN0aW9uTWlkZGxld2FyZU9wdGlvbnMpO1xuICAgIH0sXG59KTtcblxuZXhwb3J0cy5nZXRSZWN1cnNpb25EZXRlY3Rpb25QbHVnaW4gPSBnZXRSZWN1cnNpb25EZXRlY3Rpb25QbHVnaW47XG5PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocmVjdXJzaW9uRGV0ZWN0aW9uTWlkZGxld2FyZSwgJ19fcHJvdG9fXycpICYmXG4gICAgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChleHBvcnRzLCAnX19wcm90b19fJykgJiZcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fcHJvdG9fXycsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgdmFsdWU6IHJlY3Vyc2lvbkRldGVjdGlvbk1pZGRsZXdhcmVbJ19fcHJvdG9fXyddXG4gICAgfSk7XG5cbk9iamVjdC5rZXlzKHJlY3Vyc2lvbkRldGVjdGlvbk1pZGRsZXdhcmUpLmZvckVhY2goZnVuY3Rpb24gKGspIHtcbiAgICBpZiAoayAhPT0gJ2RlZmF1bHQnICYmICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXhwb3J0cywgaykpIGV4cG9ydHNba10gPSByZWN1cnNpb25EZXRlY3Rpb25NaWRkbGV3YXJlW2tdO1xufSk7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgdXRpbEVuZHBvaW50cyA9IHJlcXVpcmUoJ0BzbWl0aHkvdXRpbC1lbmRwb2ludHMnKTtcbnZhciB1cmxQYXJzZXIgPSByZXF1aXJlKCdAc21pdGh5L3VybC1wYXJzZXInKTtcblxuY29uc3QgaXNWaXJ0dWFsSG9zdGFibGVTM0J1Y2tldCA9ICh2YWx1ZSwgYWxsb3dTdWJEb21haW5zID0gZmFsc2UpID0+IHtcbiAgICBpZiAoYWxsb3dTdWJEb21haW5zKSB7XG4gICAgICAgIGZvciAoY29uc3QgbGFiZWwgb2YgdmFsdWUuc3BsaXQoXCIuXCIpKSB7XG4gICAgICAgICAgICBpZiAoIWlzVmlydHVhbEhvc3RhYmxlUzNCdWNrZXQobGFiZWwpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAoIXV0aWxFbmRwb2ludHMuaXNWYWxpZEhvc3RMYWJlbCh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAodmFsdWUubGVuZ3RoIDwgMyB8fCB2YWx1ZS5sZW5ndGggPiA2Mykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmICh2YWx1ZSAhPT0gdmFsdWUudG9Mb3dlckNhc2UoKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmICh1dGlsRW5kcG9pbnRzLmlzSXBBZGRyZXNzKHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xufTtcblxuY29uc3QgQVJOX0RFTElNSVRFUiA9IFwiOlwiO1xuY29uc3QgUkVTT1VSQ0VfREVMSU1JVEVSID0gXCIvXCI7XG5jb25zdCBwYXJzZUFybiA9ICh2YWx1ZSkgPT4ge1xuICAgIGNvbnN0IHNlZ21lbnRzID0gdmFsdWUuc3BsaXQoQVJOX0RFTElNSVRFUik7XG4gICAgaWYgKHNlZ21lbnRzLmxlbmd0aCA8IDYpXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIGNvbnN0IFthcm4sIHBhcnRpdGlvbiwgc2VydmljZSwgcmVnaW9uLCBhY2NvdW50SWQsIC4uLnJlc291cmNlUGF0aF0gPSBzZWdtZW50cztcbiAgICBpZiAoYXJuICE9PSBcImFyblwiIHx8IHBhcnRpdGlvbiA9PT0gXCJcIiB8fCBzZXJ2aWNlID09PSBcIlwiIHx8IHJlc291cmNlUGF0aC5qb2luKEFSTl9ERUxJTUlURVIpID09PSBcIlwiKVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICBjb25zdCByZXNvdXJjZUlkID0gcmVzb3VyY2VQYXRoLm1hcCgocmVzb3VyY2UpID0+IHJlc291cmNlLnNwbGl0KFJFU09VUkNFX0RFTElNSVRFUikpLmZsYXQoKTtcbiAgICByZXR1cm4ge1xuICAgICAgICBwYXJ0aXRpb24sXG4gICAgICAgIHNlcnZpY2UsXG4gICAgICAgIHJlZ2lvbixcbiAgICAgICAgYWNjb3VudElkLFxuICAgICAgICByZXNvdXJjZUlkLFxuICAgIH07XG59O1xuXG52YXIgcGFydGl0aW9ucyA9IFtcblx0e1xuXHRcdGlkOiBcImF3c1wiLFxuXHRcdG91dHB1dHM6IHtcblx0XHRcdGRuc1N1ZmZpeDogXCJhbWF6b25hd3MuY29tXCIsXG5cdFx0XHRkdWFsU3RhY2tEbnNTdWZmaXg6IFwiYXBpLmF3c1wiLFxuXHRcdFx0aW1wbGljaXRHbG9iYWxSZWdpb246IFwidXMtZWFzdC0xXCIsXG5cdFx0XHRuYW1lOiBcImF3c1wiLFxuXHRcdFx0c3VwcG9ydHNEdWFsU3RhY2s6IHRydWUsXG5cdFx0XHRzdXBwb3J0c0ZJUFM6IHRydWVcblx0XHR9LFxuXHRcdHJlZ2lvblJlZ2V4OiBcIl4odXN8ZXV8YXB8c2F8Y2F8bWV8YWZ8aWx8bXgpXFxcXC1cXFxcdytcXFxcLVxcXFxkKyRcIixcblx0XHRyZWdpb25zOiB7XG5cdFx0XHRcImFmLXNvdXRoLTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBZnJpY2EgKENhcGUgVG93bilcIlxuXHRcdFx0fSxcblx0XHRcdFwiYXAtZWFzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChIb25nIEtvbmcpXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLWVhc3QtMlwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFzaWEgUGFjaWZpYyAoVGFpcGVpKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJhcC1ub3J0aGVhc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFzaWEgUGFjaWZpYyAoVG9reW8pXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLW5vcnRoZWFzdC0yXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChTZW91bClcIlxuXHRcdFx0fSxcblx0XHRcdFwiYXAtbm9ydGhlYXN0LTNcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBc2lhIFBhY2lmaWMgKE9zYWthKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJhcC1zb3V0aC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChNdW1iYWkpXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLXNvdXRoLTJcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBc2lhIFBhY2lmaWMgKEh5ZGVyYWJhZClcIlxuXHRcdFx0fSxcblx0XHRcdFwiYXAtc291dGhlYXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBc2lhIFBhY2lmaWMgKFNpbmdhcG9yZSlcIlxuXHRcdFx0fSxcblx0XHRcdFwiYXAtc291dGhlYXN0LTJcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBc2lhIFBhY2lmaWMgKFN5ZG5leSlcIlxuXHRcdFx0fSxcblx0XHRcdFwiYXAtc291dGhlYXN0LTNcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBc2lhIFBhY2lmaWMgKEpha2FydGEpXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLXNvdXRoZWFzdC00XCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChNZWxib3VybmUpXCJcblx0XHRcdH0sXG5cdFx0XHRcImFwLXNvdXRoZWFzdC01XCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiQXNpYSBQYWNpZmljIChNYWxheXNpYSlcIlxuXHRcdFx0fSxcblx0XHRcdFwiYXAtc291dGhlYXN0LTZcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJBc2lhIFBhY2lmaWMgKE5ldyBaZWFsYW5kKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJhcC1zb3V0aGVhc3QtN1wiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFzaWEgUGFjaWZpYyAoVGhhaWxhbmQpXCJcblx0XHRcdH0sXG5cdFx0XHRcImF3cy1nbG9iYWxcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJhd3MgZ2xvYmFsIHJlZ2lvblwiXG5cdFx0XHR9LFxuXHRcdFx0XCJjYS1jZW50cmFsLTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJDYW5hZGEgKENlbnRyYWwpXCJcblx0XHRcdH0sXG5cdFx0XHRcImNhLXdlc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkNhbmFkYSBXZXN0IChDYWxnYXJ5KVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJldS1jZW50cmFsLTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJFdXJvcGUgKEZyYW5rZnVydClcIlxuXHRcdFx0fSxcblx0XHRcdFwiZXUtY2VudHJhbC0yXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiRXVyb3BlIChadXJpY2gpXCJcblx0XHRcdH0sXG5cdFx0XHRcImV1LW5vcnRoLTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJFdXJvcGUgKFN0b2NraG9sbSlcIlxuXHRcdFx0fSxcblx0XHRcdFwiZXUtc291dGgtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkV1cm9wZSAoTWlsYW4pXCJcblx0XHRcdH0sXG5cdFx0XHRcImV1LXNvdXRoLTJcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJFdXJvcGUgKFNwYWluKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJldS13ZXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJFdXJvcGUgKElyZWxhbmQpXCJcblx0XHRcdH0sXG5cdFx0XHRcImV1LXdlc3QtMlwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkV1cm9wZSAoTG9uZG9uKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJldS13ZXN0LTNcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJFdXJvcGUgKFBhcmlzKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJpbC1jZW50cmFsLTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJJc3JhZWwgKFRlbCBBdml2KVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJtZS1jZW50cmFsLTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJNaWRkbGUgRWFzdCAoVUFFKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJtZS1zb3V0aC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiTWlkZGxlIEVhc3QgKEJhaHJhaW4pXCJcblx0XHRcdH0sXG5cdFx0XHRcIm14LWNlbnRyYWwtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIk1leGljbyAoQ2VudHJhbClcIlxuXHRcdFx0fSxcblx0XHRcdFwic2EtZWFzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiU291dGggQW1lcmljYSAoU2FvIFBhdWxvKVwiXG5cdFx0XHR9LFxuXHRcdFx0XCJ1cy1lYXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJVUyBFYXN0IChOLiBWaXJnaW5pYSlcIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtZWFzdC0yXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiVVMgRWFzdCAoT2hpbylcIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtd2VzdC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiVVMgV2VzdCAoTi4gQ2FsaWZvcm5pYSlcIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtd2VzdC0yXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiVVMgV2VzdCAoT3JlZ29uKVwiXG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXHR7XG5cdFx0aWQ6IFwiYXdzLWNuXCIsXG5cdFx0b3V0cHV0czoge1xuXHRcdFx0ZG5zU3VmZml4OiBcImFtYXpvbmF3cy5jb20uY25cIixcblx0XHRcdGR1YWxTdGFja0Ruc1N1ZmZpeDogXCJhcGkuYW1hem9ud2Vic2VydmljZXMuY29tLmNuXCIsXG5cdFx0XHRpbXBsaWNpdEdsb2JhbFJlZ2lvbjogXCJjbi1ub3J0aHdlc3QtMVwiLFxuXHRcdFx0bmFtZTogXCJhd3MtY25cIixcblx0XHRcdHN1cHBvcnRzRHVhbFN0YWNrOiB0cnVlLFxuXHRcdFx0c3VwcG9ydHNGSVBTOiB0cnVlXG5cdFx0fSxcblx0XHRyZWdpb25SZWdleDogXCJeY25cXFxcLVxcXFx3K1xcXFwtXFxcXGQrJFwiLFxuXHRcdHJlZ2lvbnM6IHtcblx0XHRcdFwiYXdzLWNuLWdsb2JhbFwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcImF3cy1jbiBnbG9iYWwgcmVnaW9uXCJcblx0XHRcdH0sXG5cdFx0XHRcImNuLW5vcnRoLTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJDaGluYSAoQmVpamluZylcIlxuXHRcdFx0fSxcblx0XHRcdFwiY24tbm9ydGh3ZXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJDaGluYSAoTmluZ3hpYSlcIlxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0e1xuXHRcdGlkOiBcImF3cy1ldXNjXCIsXG5cdFx0b3V0cHV0czoge1xuXHRcdFx0ZG5zU3VmZml4OiBcImFtYXpvbmF3cy5ldVwiLFxuXHRcdFx0ZHVhbFN0YWNrRG5zU3VmZml4OiBcImFwaS5hbWF6b253ZWJzZXJ2aWNlcy5ldVwiLFxuXHRcdFx0aW1wbGljaXRHbG9iYWxSZWdpb246IFwiZXVzYy1kZS1lYXN0LTFcIixcblx0XHRcdG5hbWU6IFwiYXdzLWV1c2NcIixcblx0XHRcdHN1cHBvcnRzRHVhbFN0YWNrOiB0cnVlLFxuXHRcdFx0c3VwcG9ydHNGSVBTOiB0cnVlXG5cdFx0fSxcblx0XHRyZWdpb25SZWdleDogXCJeZXVzY1xcXFwtKGRlKVxcXFwtXFxcXHcrXFxcXC1cXFxcZCskXCIsXG5cdFx0cmVnaW9uczoge1xuXHRcdFx0XCJldXNjLWRlLWVhc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFXUyBFdXJvcGVhbiBTb3ZlcmVpZ24gQ2xvdWQgKEdlcm1hbnkpXCJcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdHtcblx0XHRpZDogXCJhd3MtaXNvXCIsXG5cdFx0b3V0cHV0czoge1xuXHRcdFx0ZG5zU3VmZml4OiBcImMycy5pYy5nb3ZcIixcblx0XHRcdGR1YWxTdGFja0Ruc1N1ZmZpeDogXCJhcGkuYXdzLmljLmdvdlwiLFxuXHRcdFx0aW1wbGljaXRHbG9iYWxSZWdpb246IFwidXMtaXNvLWVhc3QtMVwiLFxuXHRcdFx0bmFtZTogXCJhd3MtaXNvXCIsXG5cdFx0XHRzdXBwb3J0c0R1YWxTdGFjazogdHJ1ZSxcblx0XHRcdHN1cHBvcnRzRklQUzogdHJ1ZVxuXHRcdH0sXG5cdFx0cmVnaW9uUmVnZXg6IFwiXnVzXFxcXC1pc29cXFxcLVxcXFx3K1xcXFwtXFxcXGQrJFwiLFxuXHRcdHJlZ2lvbnM6IHtcblx0XHRcdFwiYXdzLWlzby1nbG9iYWxcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJhd3MtaXNvIGdsb2JhbCByZWdpb25cIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtaXNvLWVhc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIlVTIElTTyBFYXN0XCJcblx0XHRcdH0sXG5cdFx0XHRcInVzLWlzby13ZXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJVUyBJU08gV0VTVFwiXG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXHR7XG5cdFx0aWQ6IFwiYXdzLWlzby1iXCIsXG5cdFx0b3V0cHV0czoge1xuXHRcdFx0ZG5zU3VmZml4OiBcInNjMnMuc2dvdi5nb3ZcIixcblx0XHRcdGR1YWxTdGFja0Ruc1N1ZmZpeDogXCJhcGkuYXdzLnNjbG91ZFwiLFxuXHRcdFx0aW1wbGljaXRHbG9iYWxSZWdpb246IFwidXMtaXNvYi1lYXN0LTFcIixcblx0XHRcdG5hbWU6IFwiYXdzLWlzby1iXCIsXG5cdFx0XHRzdXBwb3J0c0R1YWxTdGFjazogdHJ1ZSxcblx0XHRcdHN1cHBvcnRzRklQUzogdHJ1ZVxuXHRcdH0sXG5cdFx0cmVnaW9uUmVnZXg6IFwiXnVzXFxcXC1pc29iXFxcXC1cXFxcdytcXFxcLVxcXFxkKyRcIixcblx0XHRyZWdpb25zOiB7XG5cdFx0XHRcImF3cy1pc28tYi1nbG9iYWxcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJhd3MtaXNvLWIgZ2xvYmFsIHJlZ2lvblwiXG5cdFx0XHR9LFxuXHRcdFx0XCJ1cy1pc29iLWVhc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIlVTIElTT0IgRWFzdCAoT2hpbylcIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtaXNvYi13ZXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJVUyBJU09CIFdlc3RcIlxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0e1xuXHRcdGlkOiBcImF3cy1pc28tZVwiLFxuXHRcdG91dHB1dHM6IHtcblx0XHRcdGRuc1N1ZmZpeDogXCJjbG91ZC5hZGMtZS51a1wiLFxuXHRcdFx0ZHVhbFN0YWNrRG5zU3VmZml4OiBcImFwaS5jbG91ZC1hd3MuYWRjLWUudWtcIixcblx0XHRcdGltcGxpY2l0R2xvYmFsUmVnaW9uOiBcImV1LWlzb2Utd2VzdC0xXCIsXG5cdFx0XHRuYW1lOiBcImF3cy1pc28tZVwiLFxuXHRcdFx0c3VwcG9ydHNEdWFsU3RhY2s6IHRydWUsXG5cdFx0XHRzdXBwb3J0c0ZJUFM6IHRydWVcblx0XHR9LFxuXHRcdHJlZ2lvblJlZ2V4OiBcIl5ldVxcXFwtaXNvZVxcXFwtXFxcXHcrXFxcXC1cXFxcZCskXCIsXG5cdFx0cmVnaW9uczoge1xuXHRcdFx0XCJhd3MtaXNvLWUtZ2xvYmFsXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiYXdzLWlzby1lIGdsb2JhbCByZWdpb25cIlxuXHRcdFx0fSxcblx0XHRcdFwiZXUtaXNvZS13ZXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJFVSBJU09FIFdlc3RcIlxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0e1xuXHRcdGlkOiBcImF3cy1pc28tZlwiLFxuXHRcdG91dHB1dHM6IHtcblx0XHRcdGRuc1N1ZmZpeDogXCJjc3AuaGNpLmljLmdvdlwiLFxuXHRcdFx0ZHVhbFN0YWNrRG5zU3VmZml4OiBcImFwaS5hd3MuaGNpLmljLmdvdlwiLFxuXHRcdFx0aW1wbGljaXRHbG9iYWxSZWdpb246IFwidXMtaXNvZi1zb3V0aC0xXCIsXG5cdFx0XHRuYW1lOiBcImF3cy1pc28tZlwiLFxuXHRcdFx0c3VwcG9ydHNEdWFsU3RhY2s6IHRydWUsXG5cdFx0XHRzdXBwb3J0c0ZJUFM6IHRydWVcblx0XHR9LFxuXHRcdHJlZ2lvblJlZ2V4OiBcIl51c1xcXFwtaXNvZlxcXFwtXFxcXHcrXFxcXC1cXFxcZCskXCIsXG5cdFx0cmVnaW9uczoge1xuXHRcdFx0XCJhd3MtaXNvLWYtZ2xvYmFsXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiYXdzLWlzby1mIGdsb2JhbCByZWdpb25cIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtaXNvZi1lYXN0LTFcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJVUyBJU09GIEVBU1RcIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtaXNvZi1zb3V0aC0xXCI6IHtcblx0XHRcdFx0ZGVzY3JpcHRpb246IFwiVVMgSVNPRiBTT1VUSFwiXG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXHR7XG5cdFx0aWQ6IFwiYXdzLXVzLWdvdlwiLFxuXHRcdG91dHB1dHM6IHtcblx0XHRcdGRuc1N1ZmZpeDogXCJhbWF6b25hd3MuY29tXCIsXG5cdFx0XHRkdWFsU3RhY2tEbnNTdWZmaXg6IFwiYXBpLmF3c1wiLFxuXHRcdFx0aW1wbGljaXRHbG9iYWxSZWdpb246IFwidXMtZ292LXdlc3QtMVwiLFxuXHRcdFx0bmFtZTogXCJhd3MtdXMtZ292XCIsXG5cdFx0XHRzdXBwb3J0c0R1YWxTdGFjazogdHJ1ZSxcblx0XHRcdHN1cHBvcnRzRklQUzogdHJ1ZVxuXHRcdH0sXG5cdFx0cmVnaW9uUmVnZXg6IFwiXnVzXFxcXC1nb3ZcXFxcLVxcXFx3K1xcXFwtXFxcXGQrJFwiLFxuXHRcdHJlZ2lvbnM6IHtcblx0XHRcdFwiYXdzLXVzLWdvdi1nbG9iYWxcIjoge1xuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJhd3MtdXMtZ292IGdsb2JhbCByZWdpb25cIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtZ292LWVhc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFXUyBHb3ZDbG91ZCAoVVMtRWFzdClcIlxuXHRcdFx0fSxcblx0XHRcdFwidXMtZ292LXdlc3QtMVwiOiB7XG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIkFXUyBHb3ZDbG91ZCAoVVMtV2VzdClcIlxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXTtcbnZhciB2ZXJzaW9uID0gXCIxLjFcIjtcbnZhciBwYXJ0aXRpb25zSW5mbyA9IHtcblx0cGFydGl0aW9uczogcGFydGl0aW9ucyxcblx0dmVyc2lvbjogdmVyc2lvblxufTtcblxubGV0IHNlbGVjdGVkUGFydGl0aW9uc0luZm8gPSBwYXJ0aXRpb25zSW5mbztcbmxldCBzZWxlY3RlZFVzZXJBZ2VudFByZWZpeCA9IFwiXCI7XG5jb25zdCBwYXJ0aXRpb24gPSAodmFsdWUpID0+IHtcbiAgICBjb25zdCB7IHBhcnRpdGlvbnMgfSA9IHNlbGVjdGVkUGFydGl0aW9uc0luZm87XG4gICAgZm9yIChjb25zdCBwYXJ0aXRpb24gb2YgcGFydGl0aW9ucykge1xuICAgICAgICBjb25zdCB7IHJlZ2lvbnMsIG91dHB1dHMgfSA9IHBhcnRpdGlvbjtcbiAgICAgICAgZm9yIChjb25zdCBbcmVnaW9uLCByZWdpb25EYXRhXSBvZiBPYmplY3QuZW50cmllcyhyZWdpb25zKSkge1xuICAgICAgICAgICAgaWYgKHJlZ2lvbiA9PT0gdmFsdWUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAuLi5vdXRwdXRzLFxuICAgICAgICAgICAgICAgICAgICAuLi5yZWdpb25EYXRhLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgZm9yIChjb25zdCBwYXJ0aXRpb24gb2YgcGFydGl0aW9ucykge1xuICAgICAgICBjb25zdCB7IHJlZ2lvblJlZ2V4LCBvdXRwdXRzIH0gPSBwYXJ0aXRpb247XG4gICAgICAgIGlmIChuZXcgUmVnRXhwKHJlZ2lvblJlZ2V4KS50ZXN0KHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5vdXRwdXRzLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBERUZBVUxUX1BBUlRJVElPTiA9IHBhcnRpdGlvbnMuZmluZCgocGFydGl0aW9uKSA9PiBwYXJ0aXRpb24uaWQgPT09IFwiYXdzXCIpO1xuICAgIGlmICghREVGQVVMVF9QQVJUSVRJT04pIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiUHJvdmlkZWQgcmVnaW9uIHdhcyBub3QgZm91bmQgaW4gdGhlIHBhcnRpdGlvbiBhcnJheSBvciByZWdleCxcIiArXG4gICAgICAgICAgICBcIiBhbmQgZGVmYXVsdCBwYXJ0aXRpb24gd2l0aCBpZCAnYXdzJyBkb2Vzbid0IGV4aXN0LlwiKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgLi4uREVGQVVMVF9QQVJUSVRJT04ub3V0cHV0cyxcbiAgICB9O1xufTtcbmNvbnN0IHNldFBhcnRpdGlvbkluZm8gPSAocGFydGl0aW9uc0luZm8sIHVzZXJBZ2VudFByZWZpeCA9IFwiXCIpID0+IHtcbiAgICBzZWxlY3RlZFBhcnRpdGlvbnNJbmZvID0gcGFydGl0aW9uc0luZm87XG4gICAgc2VsZWN0ZWRVc2VyQWdlbnRQcmVmaXggPSB1c2VyQWdlbnRQcmVmaXg7XG59O1xuY29uc3QgdXNlRGVmYXVsdFBhcnRpdGlvbkluZm8gPSAoKSA9PiB7XG4gICAgc2V0UGFydGl0aW9uSW5mbyhwYXJ0aXRpb25zSW5mbywgXCJcIik7XG59O1xuY29uc3QgZ2V0VXNlckFnZW50UHJlZml4ID0gKCkgPT4gc2VsZWN0ZWRVc2VyQWdlbnRQcmVmaXg7XG5cbmNvbnN0IGF3c0VuZHBvaW50RnVuY3Rpb25zID0ge1xuICAgIGlzVmlydHVhbEhvc3RhYmxlUzNCdWNrZXQ6IGlzVmlydHVhbEhvc3RhYmxlUzNCdWNrZXQsXG4gICAgcGFyc2VBcm46IHBhcnNlQXJuLFxuICAgIHBhcnRpdGlvbjogcGFydGl0aW9uLFxufTtcbnV0aWxFbmRwb2ludHMuY3VzdG9tRW5kcG9pbnRGdW5jdGlvbnMuYXdzID0gYXdzRW5kcG9pbnRGdW5jdGlvbnM7XG5cbmNvbnN0IHJlc29sdmVEZWZhdWx0QXdzUmVnaW9uYWxFbmRwb2ludHNDb25maWcgPSAoaW5wdXQpID0+IHtcbiAgICBpZiAodHlwZW9mIGlucHV0LmVuZHBvaW50UHJvdmlkZXIgIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJAYXdzLXNkay91dGlsLWVuZHBvaW50IC0gZW5kcG9pbnRQcm92aWRlciBhbmQgZW5kcG9pbnQgbWlzc2luZyBpbiBjb25maWcgZm9yIHRoaXMgY2xpZW50LlwiKTtcbiAgICB9XG4gICAgY29uc3QgeyBlbmRwb2ludCB9ID0gaW5wdXQ7XG4gICAgaWYgKGVuZHBvaW50ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaW5wdXQuZW5kcG9pbnQgPSBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gdG9FbmRwb2ludFYxKGlucHV0LmVuZHBvaW50UHJvdmlkZXIoe1xuICAgICAgICAgICAgICAgIFJlZ2lvbjogdHlwZW9mIGlucHV0LnJlZ2lvbiA9PT0gXCJmdW5jdGlvblwiID8gYXdhaXQgaW5wdXQucmVnaW9uKCkgOiBpbnB1dC5yZWdpb24sXG4gICAgICAgICAgICAgICAgVXNlRHVhbFN0YWNrOiB0eXBlb2YgaW5wdXQudXNlRHVhbHN0YWNrRW5kcG9pbnQgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICA/IGF3YWl0IGlucHV0LnVzZUR1YWxzdGFja0VuZHBvaW50KClcbiAgICAgICAgICAgICAgICAgICAgOiBpbnB1dC51c2VEdWFsc3RhY2tFbmRwb2ludCxcbiAgICAgICAgICAgICAgICBVc2VGSVBTOiB0eXBlb2YgaW5wdXQudXNlRmlwc0VuZHBvaW50ID09PSBcImZ1bmN0aW9uXCIgPyBhd2FpdCBpbnB1dC51c2VGaXBzRW5kcG9pbnQoKSA6IGlucHV0LnVzZUZpcHNFbmRwb2ludCxcbiAgICAgICAgICAgICAgICBFbmRwb2ludDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfSwgeyBsb2dnZXI6IGlucHV0LmxvZ2dlciB9KSk7XG4gICAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiBpbnB1dDtcbn07XG5jb25zdCB0b0VuZHBvaW50VjEgPSAoZW5kcG9pbnQpID0+IHVybFBhcnNlci5wYXJzZVVybChlbmRwb2ludC51cmwpO1xuXG5leHBvcnRzLkVuZHBvaW50RXJyb3IgPSB1dGlsRW5kcG9pbnRzLkVuZHBvaW50RXJyb3I7XG5leHBvcnRzLmlzSXBBZGRyZXNzID0gdXRpbEVuZHBvaW50cy5pc0lwQWRkcmVzcztcbmV4cG9ydHMucmVzb2x2ZUVuZHBvaW50ID0gdXRpbEVuZHBvaW50cy5yZXNvbHZlRW5kcG9pbnQ7XG5leHBvcnRzLmF3c0VuZHBvaW50RnVuY3Rpb25zID0gYXdzRW5kcG9pbnRGdW5jdGlvbnM7XG5leHBvcnRzLmdldFVzZXJBZ2VudFByZWZpeCA9IGdldFVzZXJBZ2VudFByZWZpeDtcbmV4cG9ydHMucGFydGl0aW9uID0gcGFydGl0aW9uO1xuZXhwb3J0cy5yZXNvbHZlRGVmYXVsdEF3c1JlZ2lvbmFsRW5kcG9pbnRzQ29uZmlnID0gcmVzb2x2ZURlZmF1bHRBd3NSZWdpb25hbEVuZHBvaW50c0NvbmZpZztcbmV4cG9ydHMuc2V0UGFydGl0aW9uSW5mbyA9IHNldFBhcnRpdGlvbkluZm87XG5leHBvcnRzLnRvRW5kcG9pbnRWMSA9IHRvRW5kcG9pbnRWMTtcbmV4cG9ydHMudXNlRGVmYXVsdFBhcnRpdGlvbkluZm8gPSB1c2VEZWZhdWx0UGFydGl0aW9uSW5mbztcbiIsICJleHBvcnQgY29uc3Qgc3RhdGUgPSB7XG4gICAgd2FybmluZ0VtaXR0ZWQ6IGZhbHNlLFxufTtcbmV4cG9ydCBjb25zdCBlbWl0V2FybmluZ0lmVW5zdXBwb3J0ZWRWZXJzaW9uID0gKHZlcnNpb24pID0+IHtcbiAgICBpZiAodmVyc2lvbiAmJiAhc3RhdGUud2FybmluZ0VtaXR0ZWQpIHtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52LkFXU19TREtfSlNfTk9ERV9WRVJTSU9OX1NVUFBPUlRfV0FSTklOR19ESVNBQkxFRCA9PT0gXCJ0cnVlXCIpIHtcbiAgICAgICAgICAgIHN0YXRlLndhcm5pbmdFbWl0dGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB1c2VyTWFqb3JWZXJzaW9uID0gcGFyc2VJbnQodmVyc2lvbi5zdWJzdHJpbmcoMSwgdmVyc2lvbi5pbmRleE9mKFwiLlwiKSkpO1xuICAgICAgICBjb25zdCB2diA9IDIyO1xuICAgICAgICBpZiAodXNlck1ham9yVmVyc2lvbiA8IHZ2KSB7XG4gICAgICAgICAgICBzdGF0ZS53YXJuaW5nRW1pdHRlZCA9IHRydWU7XG4gICAgICAgICAgICBwcm9jZXNzLmVtaXRXYXJuaW5nKGBOb2RlVmVyc2lvblN1cHBvcnRXYXJuaW5nOiBUaGUgQVdTIFNESyBmb3IgSmF2YVNjcmlwdCAodjMpXG52ZXJzaW9ucyBwdWJsaXNoZWQgYWZ0ZXIgdGhlIGZpcnN0IHdlZWsgb2YgSmFudWFyeSAyMDI3XG53aWxsIHJlcXVpcmUgbm9kZSA+PSR7dnZ9LiBZb3UgYXJlIHJ1bm5pbmcgbm9kZSAke3ZlcnNpb259LlxuXG5UbyBjb250aW51ZSByZWNlaXZpbmcgdXBkYXRlcyB0byBBV1Mgc2VydmljZXMsIGJ1ZyBmaXhlcyxcbmFuZCBzZWN1cml0eSB1cGRhdGVzIHBsZWFzZSB1cGdyYWRlIHRvIG5vZGUgPj0ke3Z2fS5cblxuTW9yZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgYXQ6IGh0dHBzOi8vYS5jby9jODk1SkZwYCk7XG4gICAgICAgIH1cbiAgICB9XG59O1xuIiwgImV4cG9ydCBjb25zdCBsb25nUG9sbE1pZGRsZXdhcmUgPSAoKSA9PiAobmV4dCwgY29udGV4dCkgPT4gYXN5bmMgKGFyZ3MpID0+IHtcbiAgICBjb250ZXh0Ll9fcmV0cnlMb25nUG9sbCA9IHRydWU7XG4gICAgcmV0dXJuIG5leHQoYXJncyk7XG59O1xuZXhwb3J0IGNvbnN0IGxvbmdQb2xsTWlkZGxld2FyZU9wdGlvbnMgPSB7XG4gICAgbmFtZTogXCJsb25nUG9sbE1pZGRsZXdhcmVcIixcbiAgICB0YWdzOiBbXCJSRVRSWVwiXSxcbiAgICBzdGVwOiBcImluaXRpYWxpemVcIixcbiAgICBvdmVycmlkZTogdHJ1ZSxcbn07XG5leHBvcnQgY29uc3QgZ2V0TG9uZ1BvbGxQbHVnaW4gPSAob3B0aW9ucykgPT4gKHtcbiAgICBhcHBseVRvU3RhY2s6IChjbGllbnRTdGFjaykgPT4ge1xuICAgICAgICBjbGllbnRTdGFjay5hZGQobG9uZ1BvbGxNaWRkbGV3YXJlKCksIGxvbmdQb2xsTWlkZGxld2FyZU9wdGlvbnMpO1xuICAgIH0sXG59KTtcbiIsICJleHBvcnQgZnVuY3Rpb24gc2V0Q3JlZGVudGlhbEZlYXR1cmUoY3JlZGVudGlhbHMsIGZlYXR1cmUsIHZhbHVlKSB7XG4gICAgaWYgKCFjcmVkZW50aWFscy4kc291cmNlKSB7XG4gICAgICAgIGNyZWRlbnRpYWxzLiRzb3VyY2UgPSB7fTtcbiAgICB9XG4gICAgY3JlZGVudGlhbHMuJHNvdXJjZVtmZWF0dXJlXSA9IHZhbHVlO1xuICAgIHJldHVybiBjcmVkZW50aWFscztcbn1cbiIsICJpbXBvcnQgeyBSZXRyeSB9IGZyb20gXCJAc21pdGh5L3V0aWwtcmV0cnlcIjtcblJldHJ5LnYyMDI2IHx8PSB0eXBlb2YgcHJvY2VzcyA9PT0gXCJvYmplY3RcIiAmJiBwcm9jZXNzLmVudj8uQVdTX05FV19SRVRSSUVTXzIwMjYgPT09IFwidHJ1ZVwiO1xuZXhwb3J0IGZ1bmN0aW9uIHNldEZlYXR1cmUoY29udGV4dCwgZmVhdHVyZSwgdmFsdWUpIHtcbiAgICBpZiAoIWNvbnRleHQuX19hd3Nfc2RrX2NvbnRleHQpIHtcbiAgICAgICAgY29udGV4dC5fX2F3c19zZGtfY29udGV4dCA9IHtcbiAgICAgICAgICAgIGZlYXR1cmVzOiB7fSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgZWxzZSBpZiAoIWNvbnRleHQuX19hd3Nfc2RrX2NvbnRleHQuZmVhdHVyZXMpIHtcbiAgICAgICAgY29udGV4dC5fX2F3c19zZGtfY29udGV4dC5mZWF0dXJlcyA9IHt9O1xuICAgIH1cbiAgICBjb250ZXh0Ll9fYXdzX3Nka19jb250ZXh0LmZlYXR1cmVzW2ZlYXR1cmVdID0gdmFsdWU7XG59XG4iLCAiZXhwb3J0IGZ1bmN0aW9uIHNldFRva2VuRmVhdHVyZSh0b2tlbiwgZmVhdHVyZSwgdmFsdWUpIHtcbiAgICBpZiAoIXRva2VuLiRzb3VyY2UpIHtcbiAgICAgICAgdG9rZW4uJHNvdXJjZSA9IHt9O1xuICAgIH1cbiAgICB0b2tlbi4kc291cmNlW2ZlYXR1cmVdID0gdmFsdWU7XG4gICAgcmV0dXJuIHRva2VuO1xufVxuIiwgImV4cG9ydCAqIGZyb20gXCIuL2VtaXRXYXJuaW5nSWZVbnN1cHBvcnRlZFZlcnNpb25cIjtcbmV4cG9ydCB7IGdldExvbmdQb2xsUGx1Z2luIH0gZnJvbSBcIi4vbG9uZ1BvbGxNaWRkbGV3YXJlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zZXRDcmVkZW50aWFsRmVhdHVyZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc2V0RmVhdHVyZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc2V0VG9rZW5GZWF0dXJlXCI7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgY29yZSA9IHJlcXVpcmUoJ0BzbWl0aHkvY29yZScpO1xudmFyIHV0aWxFbmRwb2ludHMgPSByZXF1aXJlKCdAYXdzLXNkay91dGlsLWVuZHBvaW50cycpO1xudmFyIHByb3RvY29sSHR0cCA9IHJlcXVpcmUoJ0BzbWl0aHkvcHJvdG9jb2wtaHR0cCcpO1xudmFyIGNsaWVudCA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL2NvcmUvY2xpZW50Jyk7XG52YXIgdXRpbFJldHJ5ID0gcmVxdWlyZSgnQHNtaXRoeS91dGlsLXJldHJ5Jyk7XG5cbmNvbnN0IERFRkFVTFRfVUFfQVBQX0lEID0gdW5kZWZpbmVkO1xuZnVuY3Rpb24gaXNWYWxpZFVzZXJBZ2VudEFwcElkKGFwcElkKSB7XG4gICAgaWYgKGFwcElkID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiB0eXBlb2YgYXBwSWQgPT09IFwic3RyaW5nXCIgJiYgYXBwSWQubGVuZ3RoIDw9IDUwO1xufVxuZnVuY3Rpb24gcmVzb2x2ZVVzZXJBZ2VudENvbmZpZyhpbnB1dCkge1xuICAgIGNvbnN0IG5vcm1hbGl6ZWRBcHBJZFByb3ZpZGVyID0gY29yZS5ub3JtYWxpemVQcm92aWRlcihpbnB1dC51c2VyQWdlbnRBcHBJZCA/PyBERUZBVUxUX1VBX0FQUF9JRCk7XG4gICAgY29uc3QgeyBjdXN0b21Vc2VyQWdlbnQgfSA9IGlucHV0O1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKGlucHV0LCB7XG4gICAgICAgIGN1c3RvbVVzZXJBZ2VudDogdHlwZW9mIGN1c3RvbVVzZXJBZ2VudCA9PT0gXCJzdHJpbmdcIiA/IFtbY3VzdG9tVXNlckFnZW50XV0gOiBjdXN0b21Vc2VyQWdlbnQsXG4gICAgICAgIHVzZXJBZ2VudEFwcElkOiBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBhcHBJZCA9IGF3YWl0IG5vcm1hbGl6ZWRBcHBJZFByb3ZpZGVyKCk7XG4gICAgICAgICAgICBpZiAoIWlzVmFsaWRVc2VyQWdlbnRBcHBJZChhcHBJZCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBsb2dnZXIgPSBpbnB1dC5sb2dnZXI/LmNvbnN0cnVjdG9yPy5uYW1lID09PSBcIk5vT3BMb2dnZXJcIiB8fCAhaW5wdXQubG9nZ2VyID8gY29uc29sZSA6IGlucHV0LmxvZ2dlcjtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGFwcElkICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAgICAgICAgIGxvZ2dlcj8ud2FybihcInVzZXJBZ2VudEFwcElkIG11c3QgYmUgYSBzdHJpbmcgb3IgdW5kZWZpbmVkLlwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoYXBwSWQubGVuZ3RoID4gNTApIHtcbiAgICAgICAgICAgICAgICAgICAgbG9nZ2VyPy53YXJuKFwiVGhlIHByb3ZpZGVkIHVzZXJBZ2VudEFwcElkIGV4Y2VlZHMgdGhlIG1heGltdW0gbGVuZ3RoIG9mIDUwIGNoYXJhY3RlcnMuXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBhcHBJZDtcbiAgICAgICAgfSxcbiAgICB9KTtcbn1cblxuY29uc3QgQUNDT1VOVF9JRF9FTkRQT0lOVF9SRUdFWCA9IC9cXGR7MTJ9XFwuZGRiLztcbmFzeW5jIGZ1bmN0aW9uIGNoZWNrRmVhdHVyZXMoY29udGV4dCwgY29uZmlnLCBhcmdzKSB7XG4gICAgY29uc3QgcmVxdWVzdCA9IGFyZ3MucmVxdWVzdDtcbiAgICBpZiAocmVxdWVzdD8uaGVhZGVycz8uW1wic21pdGh5LXByb3RvY29sXCJdID09PSBcInJwYy12Mi1jYm9yXCIpIHtcbiAgICAgICAgY2xpZW50LnNldEZlYXR1cmUoY29udGV4dCwgXCJQUk9UT0NPTF9SUENfVjJfQ0JPUlwiLCBcIk1cIik7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgY29uZmlnLnJldHJ5U3RyYXRlZ3kgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICBjb25zdCByZXRyeVN0cmF0ZWd5ID0gYXdhaXQgY29uZmlnLnJldHJ5U3RyYXRlZ3koKTtcbiAgICAgICAgaWYgKHR5cGVvZiByZXRyeVN0cmF0ZWd5Lm1vZGUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIHN3aXRjaCAocmV0cnlTdHJhdGVneS5tb2RlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSB1dGlsUmV0cnkuUkVUUllfTU9ERVMuQURBUFRJVkU6XG4gICAgICAgICAgICAgICAgICAgIGNsaWVudC5zZXRGZWF0dXJlKGNvbnRleHQsIFwiUkVUUllfTU9ERV9BREFQVElWRVwiLCBcIkZcIik7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgdXRpbFJldHJ5LlJFVFJZX01PREVTLlNUQU5EQVJEOlxuICAgICAgICAgICAgICAgICAgICBjbGllbnQuc2V0RmVhdHVyZShjb250ZXh0LCBcIlJFVFJZX01PREVfU1RBTkRBUkRcIiwgXCJFXCIpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAodHlwZW9mIGNvbmZpZy5hY2NvdW50SWRFbmRwb2ludE1vZGUgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICBjb25zdCBlbmRwb2ludFYyID0gY29udGV4dC5lbmRwb2ludFYyO1xuICAgICAgICBpZiAoU3RyaW5nKGVuZHBvaW50VjI/LnVybD8uaG9zdG5hbWUpLm1hdGNoKEFDQ09VTlRfSURfRU5EUE9JTlRfUkVHRVgpKSB7XG4gICAgICAgICAgICBjbGllbnQuc2V0RmVhdHVyZShjb250ZXh0LCBcIkFDQ09VTlRfSURfRU5EUE9JTlRcIiwgXCJPXCIpO1xuICAgICAgICB9XG4gICAgICAgIHN3aXRjaCAoYXdhaXQgY29uZmlnLmFjY291bnRJZEVuZHBvaW50TW9kZT8uKCkpIHtcbiAgICAgICAgICAgIGNhc2UgXCJkaXNhYmxlZFwiOlxuICAgICAgICAgICAgICAgIGNsaWVudC5zZXRGZWF0dXJlKGNvbnRleHQsIFwiQUNDT1VOVF9JRF9NT0RFX0RJU0FCTEVEXCIsIFwiUVwiKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgXCJwcmVmZXJyZWRcIjpcbiAgICAgICAgICAgICAgICBjbGllbnQuc2V0RmVhdHVyZShjb250ZXh0LCBcIkFDQ09VTlRfSURfTU9ERV9QUkVGRVJSRURcIiwgXCJQXCIpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBcInJlcXVpcmVkXCI6XG4gICAgICAgICAgICAgICAgY2xpZW50LnNldEZlYXR1cmUoY29udGV4dCwgXCJBQ0NPVU5UX0lEX01PREVfUkVRVUlSRURcIiwgXCJSXCIpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNvbnN0IGlkZW50aXR5ID0gY29udGV4dC5fX3NtaXRoeV9jb250ZXh0Py5zZWxlY3RlZEh0dHBBdXRoU2NoZW1lPy5pZGVudGl0eTtcbiAgICBpZiAoaWRlbnRpdHk/LiRzb3VyY2UpIHtcbiAgICAgICAgY29uc3QgY3JlZGVudGlhbHMgPSBpZGVudGl0eTtcbiAgICAgICAgaWYgKGNyZWRlbnRpYWxzLmFjY291bnRJZCkge1xuICAgICAgICAgICAgY2xpZW50LnNldEZlYXR1cmUoY29udGV4dCwgXCJSRVNPTFZFRF9BQ0NPVU5UX0lEXCIsIFwiVFwiKTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhjcmVkZW50aWFscy4kc291cmNlID8/IHt9KSkge1xuICAgICAgICAgICAgY2xpZW50LnNldEZlYXR1cmUoY29udGV4dCwga2V5LCB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmNvbnN0IFVTRVJfQUdFTlQgPSBcInVzZXItYWdlbnRcIjtcbmNvbnN0IFhfQU1aX1VTRVJfQUdFTlQgPSBcIngtYW16LXVzZXItYWdlbnRcIjtcbmNvbnN0IFNQQUNFID0gXCIgXCI7XG5jb25zdCBVQV9OQU1FX1NFUEFSQVRPUiA9IFwiL1wiO1xuY29uc3QgVUFfTkFNRV9FU0NBUEVfUkVHRVggPSAvW14hJCUmJyorXFwtLl5fYHx+XFx3XS9nO1xuY29uc3QgVUFfVkFMVUVfRVNDQVBFX1JFR0VYID0gL1teISQlJicqK1xcLS5eX2B8flxcdyNdL2c7XG5jb25zdCBVQV9FU0NBUEVfQ0hBUiA9IFwiLVwiO1xuXG5jb25zdCBCWVRFX0xJTUlUID0gMTAyNDtcbmZ1bmN0aW9uIGVuY29kZUZlYXR1cmVzKGZlYXR1cmVzKSB7XG4gICAgbGV0IGJ1ZmZlciA9IFwiXCI7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gZmVhdHVyZXMpIHtcbiAgICAgICAgY29uc3QgdmFsID0gZmVhdHVyZXNba2V5XTtcbiAgICAgICAgaWYgKGJ1ZmZlci5sZW5ndGggKyB2YWwubGVuZ3RoICsgMSA8PSBCWVRFX0xJTUlUKSB7XG4gICAgICAgICAgICBpZiAoYnVmZmVyLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGJ1ZmZlciArPSBcIixcIiArIHZhbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGJ1ZmZlciArPSB2YWw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICB9XG4gICAgcmV0dXJuIGJ1ZmZlcjtcbn1cblxuY29uc3QgdXNlckFnZW50TWlkZGxld2FyZSA9IChvcHRpb25zKSA9PiAobmV4dCwgY29udGV4dCkgPT4gYXN5bmMgKGFyZ3MpID0+IHtcbiAgICBjb25zdCB7IHJlcXVlc3QgfSA9IGFyZ3M7XG4gICAgaWYgKCFwcm90b2NvbEh0dHAuSHR0cFJlcXVlc3QuaXNJbnN0YW5jZShyZXF1ZXN0KSkge1xuICAgICAgICByZXR1cm4gbmV4dChhcmdzKTtcbiAgICB9XG4gICAgY29uc3QgeyBoZWFkZXJzIH0gPSByZXF1ZXN0O1xuICAgIGNvbnN0IHVzZXJBZ2VudCA9IGNvbnRleHQ/LnVzZXJBZ2VudD8ubWFwKGVzY2FwZVVzZXJBZ2VudCkgfHwgW107XG4gICAgY29uc3QgZGVmYXVsdFVzZXJBZ2VudCA9IChhd2FpdCBvcHRpb25zLmRlZmF1bHRVc2VyQWdlbnRQcm92aWRlcigpKS5tYXAoZXNjYXBlVXNlckFnZW50KTtcbiAgICBhd2FpdCBjaGVja0ZlYXR1cmVzKGNvbnRleHQsIG9wdGlvbnMsIGFyZ3MpO1xuICAgIGNvbnN0IGF3c0NvbnRleHQgPSBjb250ZXh0O1xuICAgIGRlZmF1bHRVc2VyQWdlbnQucHVzaChgbS8ke2VuY29kZUZlYXR1cmVzKE9iamVjdC5hc3NpZ24oe30sIGNvbnRleHQuX19zbWl0aHlfY29udGV4dD8uZmVhdHVyZXMsIGF3c0NvbnRleHQuX19hd3Nfc2RrX2NvbnRleHQ/LmZlYXR1cmVzKSl9YCk7XG4gICAgY29uc3QgY3VzdG9tVXNlckFnZW50ID0gb3B0aW9ucz8uY3VzdG9tVXNlckFnZW50Py5tYXAoZXNjYXBlVXNlckFnZW50KSB8fCBbXTtcbiAgICBjb25zdCBhcHBJZCA9IGF3YWl0IG9wdGlvbnMudXNlckFnZW50QXBwSWQoKTtcbiAgICBpZiAoYXBwSWQpIHtcbiAgICAgICAgZGVmYXVsdFVzZXJBZ2VudC5wdXNoKGVzY2FwZVVzZXJBZ2VudChbYGFwcGAsIGAke2FwcElkfWBdKSk7XG4gICAgfVxuICAgIGNvbnN0IHByZWZpeCA9IHV0aWxFbmRwb2ludHMuZ2V0VXNlckFnZW50UHJlZml4KCk7XG4gICAgY29uc3Qgc2RrVXNlckFnZW50VmFsdWUgPSAocHJlZml4ID8gW3ByZWZpeF0gOiBbXSlcbiAgICAgICAgLmNvbmNhdChbLi4uZGVmYXVsdFVzZXJBZ2VudCwgLi4udXNlckFnZW50LCAuLi5jdXN0b21Vc2VyQWdlbnRdKVxuICAgICAgICAuam9pbihTUEFDRSk7XG4gICAgY29uc3Qgbm9ybWFsVUFWYWx1ZSA9IFtcbiAgICAgICAgLi4uZGVmYXVsdFVzZXJBZ2VudC5maWx0ZXIoKHNlY3Rpb24pID0+IHNlY3Rpb24uc3RhcnRzV2l0aChcImF3cy1zZGstXCIpKSxcbiAgICAgICAgLi4uY3VzdG9tVXNlckFnZW50LFxuICAgIF0uam9pbihTUEFDRSk7XG4gICAgaWYgKG9wdGlvbnMucnVudGltZSAhPT0gXCJicm93c2VyXCIpIHtcbiAgICAgICAgaWYgKG5vcm1hbFVBVmFsdWUpIHtcbiAgICAgICAgICAgIGhlYWRlcnNbWF9BTVpfVVNFUl9BR0VOVF0gPSBoZWFkZXJzW1hfQU1aX1VTRVJfQUdFTlRdXG4gICAgICAgICAgICAgICAgPyBgJHtoZWFkZXJzW1VTRVJfQUdFTlRdfSAke25vcm1hbFVBVmFsdWV9YFxuICAgICAgICAgICAgICAgIDogbm9ybWFsVUFWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBoZWFkZXJzW1VTRVJfQUdFTlRdID0gc2RrVXNlckFnZW50VmFsdWU7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBoZWFkZXJzW1hfQU1aX1VTRVJfQUdFTlRdID0gc2RrVXNlckFnZW50VmFsdWU7XG4gICAgfVxuICAgIHJldHVybiBuZXh0KHtcbiAgICAgICAgLi4uYXJncyxcbiAgICAgICAgcmVxdWVzdCxcbiAgICB9KTtcbn07XG5jb25zdCBlc2NhcGVVc2VyQWdlbnQgPSAodXNlckFnZW50UGFpcikgPT4ge1xuICAgIGNvbnN0IG5hbWUgPSB1c2VyQWdlbnRQYWlyWzBdXG4gICAgICAgIC5zcGxpdChVQV9OQU1FX1NFUEFSQVRPUilcbiAgICAgICAgLm1hcCgocGFydCkgPT4gcGFydC5yZXBsYWNlKFVBX05BTUVfRVNDQVBFX1JFR0VYLCBVQV9FU0NBUEVfQ0hBUikpXG4gICAgICAgIC5qb2luKFVBX05BTUVfU0VQQVJBVE9SKTtcbiAgICBjb25zdCB2ZXJzaW9uID0gdXNlckFnZW50UGFpclsxXT8ucmVwbGFjZShVQV9WQUxVRV9FU0NBUEVfUkVHRVgsIFVBX0VTQ0FQRV9DSEFSKTtcbiAgICBjb25zdCBwcmVmaXhTZXBhcmF0b3JJbmRleCA9IG5hbWUuaW5kZXhPZihVQV9OQU1FX1NFUEFSQVRPUik7XG4gICAgY29uc3QgcHJlZml4ID0gbmFtZS5zdWJzdHJpbmcoMCwgcHJlZml4U2VwYXJhdG9ySW5kZXgpO1xuICAgIGxldCB1YU5hbWUgPSBuYW1lLnN1YnN0cmluZyhwcmVmaXhTZXBhcmF0b3JJbmRleCArIDEpO1xuICAgIGlmIChwcmVmaXggPT09IFwiYXBpXCIpIHtcbiAgICAgICAgdWFOYW1lID0gdWFOYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgfVxuICAgIHJldHVybiBbcHJlZml4LCB1YU5hbWUsIHZlcnNpb25dXG4gICAgICAgIC5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0gJiYgaXRlbS5sZW5ndGggPiAwKVxuICAgICAgICAucmVkdWNlKChhY2MsIGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgIHN3aXRjaCAoaW5kZXgpIHtcbiAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICByZXR1cm4gYCR7YWNjfS8ke2l0ZW19YDtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGAke2FjY30jJHtpdGVtfWA7XG4gICAgICAgIH1cbiAgICB9LCBcIlwiKTtcbn07XG5jb25zdCBnZXRVc2VyQWdlbnRNaWRkbGV3YXJlT3B0aW9ucyA9IHtcbiAgICBuYW1lOiBcImdldFVzZXJBZ2VudE1pZGRsZXdhcmVcIixcbiAgICBzdGVwOiBcImJ1aWxkXCIsXG4gICAgcHJpb3JpdHk6IFwibG93XCIsXG4gICAgdGFnczogW1wiU0VUX1VTRVJfQUdFTlRcIiwgXCJVU0VSX0FHRU5UXCJdLFxuICAgIG92ZXJyaWRlOiB0cnVlLFxufTtcbmNvbnN0IGdldFVzZXJBZ2VudFBsdWdpbiA9IChjb25maWcpID0+ICh7XG4gICAgYXBwbHlUb1N0YWNrOiAoY2xpZW50U3RhY2spID0+IHtcbiAgICAgICAgY2xpZW50U3RhY2suYWRkKHVzZXJBZ2VudE1pZGRsZXdhcmUoY29uZmlnKSwgZ2V0VXNlckFnZW50TWlkZGxld2FyZU9wdGlvbnMpO1xuICAgIH0sXG59KTtcblxuZXhwb3J0cy5ERUZBVUxUX1VBX0FQUF9JRCA9IERFRkFVTFRfVUFfQVBQX0lEO1xuZXhwb3J0cy5nZXRVc2VyQWdlbnRNaWRkbGV3YXJlT3B0aW9ucyA9IGdldFVzZXJBZ2VudE1pZGRsZXdhcmVPcHRpb25zO1xuZXhwb3J0cy5nZXRVc2VyQWdlbnRQbHVnaW4gPSBnZXRVc2VyQWdlbnRQbHVnaW47XG5leHBvcnRzLnJlc29sdmVVc2VyQWdlbnRDb25maWcgPSByZXNvbHZlVXNlckFnZW50Q29uZmlnO1xuZXhwb3J0cy51c2VyQWdlbnRNaWRkbGV3YXJlID0gdXNlckFnZW50TWlkZGxld2FyZTtcbiIsICJpbXBvcnQgeyBIdHRwUmVzcG9uc2UgfSBmcm9tIFwiQHNtaXRoeS9wcm90b2NvbC1odHRwXCI7XG5leHBvcnQgY29uc3QgZ2V0RGF0ZUhlYWRlciA9IChyZXNwb25zZSkgPT4gSHR0cFJlc3BvbnNlLmlzSW5zdGFuY2UocmVzcG9uc2UpID8gcmVzcG9uc2UuaGVhZGVycz8uZGF0ZSA/PyByZXNwb25zZS5oZWFkZXJzPy5EYXRlIDogdW5kZWZpbmVkO1xuIiwgImV4cG9ydCBjb25zdCBnZXRTa2V3Q29ycmVjdGVkRGF0ZSA9IChzeXN0ZW1DbG9ja09mZnNldCkgPT4gbmV3IERhdGUoRGF0ZS5ub3coKSArIHN5c3RlbUNsb2NrT2Zmc2V0KTtcbiIsICJpbXBvcnQgeyBnZXRTa2V3Q29ycmVjdGVkRGF0ZSB9IGZyb20gXCIuL2dldFNrZXdDb3JyZWN0ZWREYXRlXCI7XG5leHBvcnQgY29uc3QgaXNDbG9ja1NrZXdlZCA9IChjbG9ja1RpbWUsIHN5c3RlbUNsb2NrT2Zmc2V0KSA9PiBNYXRoLmFicyhnZXRTa2V3Q29ycmVjdGVkRGF0ZShzeXN0ZW1DbG9ja09mZnNldCkuZ2V0VGltZSgpIC0gY2xvY2tUaW1lKSA+PSAzMDAwMDA7XG4iLCAiaW1wb3J0IHsgaXNDbG9ja1NrZXdlZCB9IGZyb20gXCIuL2lzQ2xvY2tTa2V3ZWRcIjtcbmV4cG9ydCBjb25zdCBnZXRVcGRhdGVkU3lzdGVtQ2xvY2tPZmZzZXQgPSAoY2xvY2tUaW1lLCBjdXJyZW50U3lzdGVtQ2xvY2tPZmZzZXQpID0+IHtcbiAgICBjb25zdCBjbG9ja1RpbWVJbk1zID0gRGF0ZS5wYXJzZShjbG9ja1RpbWUpO1xuICAgIGlmIChpc0Nsb2NrU2tld2VkKGNsb2NrVGltZUluTXMsIGN1cnJlbnRTeXN0ZW1DbG9ja09mZnNldCkpIHtcbiAgICAgICAgcmV0dXJuIGNsb2NrVGltZUluTXMgLSBEYXRlLm5vdygpO1xuICAgIH1cbiAgICByZXR1cm4gY3VycmVudFN5c3RlbUNsb2NrT2Zmc2V0O1xufTtcbiIsICJleHBvcnQgKiBmcm9tIFwiLi9nZXREYXRlSGVhZGVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9nZXRTa2V3Q29ycmVjdGVkRGF0ZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZ2V0VXBkYXRlZFN5c3RlbUNsb2NrT2Zmc2V0XCI7XG4iLCAiaW1wb3J0IHsgSHR0cFJlcXVlc3QgfSBmcm9tIFwiQHNtaXRoeS9wcm90b2NvbC1odHRwXCI7XG5pbXBvcnQgeyBnZXREYXRlSGVhZGVyLCBnZXRTa2V3Q29ycmVjdGVkRGF0ZSwgZ2V0VXBkYXRlZFN5c3RlbUNsb2NrT2Zmc2V0IH0gZnJvbSBcIi4uL3V0aWxzXCI7XG5jb25zdCB0aHJvd1NpZ25pbmdQcm9wZXJ0eUVycm9yID0gKG5hbWUsIHByb3BlcnR5KSA9PiB7XG4gICAgaWYgKCFwcm9wZXJ0eSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFByb3BlcnR5IFxcYCR7bmFtZX1cXGAgaXMgbm90IHJlc29sdmVkIGZvciBBV1MgU0RLIFNpZ1Y0QXV0aGApO1xuICAgIH1cbiAgICByZXR1cm4gcHJvcGVydHk7XG59O1xuZXhwb3J0IGNvbnN0IHZhbGlkYXRlU2lnbmluZ1Byb3BlcnRpZXMgPSBhc3luYyAoc2lnbmluZ1Byb3BlcnRpZXMpID0+IHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhyb3dTaWduaW5nUHJvcGVydHlFcnJvcihcImNvbnRleHRcIiwgc2lnbmluZ1Byb3BlcnRpZXMuY29udGV4dCk7XG4gICAgY29uc3QgY29uZmlnID0gdGhyb3dTaWduaW5nUHJvcGVydHlFcnJvcihcImNvbmZpZ1wiLCBzaWduaW5nUHJvcGVydGllcy5jb25maWcpO1xuICAgIGNvbnN0IGF1dGhTY2hlbWUgPSBjb250ZXh0LmVuZHBvaW50VjI/LnByb3BlcnRpZXM/LmF1dGhTY2hlbWVzPy5bMF07XG4gICAgY29uc3Qgc2lnbmVyRnVuY3Rpb24gPSB0aHJvd1NpZ25pbmdQcm9wZXJ0eUVycm9yKFwic2lnbmVyXCIsIGNvbmZpZy5zaWduZXIpO1xuICAgIGNvbnN0IHNpZ25lciA9IGF3YWl0IHNpZ25lckZ1bmN0aW9uKGF1dGhTY2hlbWUpO1xuICAgIGNvbnN0IHNpZ25pbmdSZWdpb24gPSBzaWduaW5nUHJvcGVydGllcz8uc2lnbmluZ1JlZ2lvbjtcbiAgICBjb25zdCBzaWduaW5nUmVnaW9uU2V0ID0gc2lnbmluZ1Byb3BlcnRpZXM/LnNpZ25pbmdSZWdpb25TZXQ7XG4gICAgY29uc3Qgc2lnbmluZ05hbWUgPSBzaWduaW5nUHJvcGVydGllcz8uc2lnbmluZ05hbWU7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgY29uZmlnLFxuICAgICAgICBzaWduZXIsXG4gICAgICAgIHNpZ25pbmdSZWdpb24sXG4gICAgICAgIHNpZ25pbmdSZWdpb25TZXQsXG4gICAgICAgIHNpZ25pbmdOYW1lLFxuICAgIH07XG59O1xuZXhwb3J0IGNsYXNzIEF3c1Nka1NpZ1Y0U2lnbmVyIHtcbiAgICBhc3luYyBzaWduKGh0dHBSZXF1ZXN0LCBpZGVudGl0eSwgc2lnbmluZ1Byb3BlcnRpZXMpIHtcbiAgICAgICAgaWYgKCFIdHRwUmVxdWVzdC5pc0luc3RhbmNlKGh0dHBSZXF1ZXN0KSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVGhlIHJlcXVlc3QgaXMgbm90IGFuIGluc3RhbmNlIG9mIGBIdHRwUmVxdWVzdGAgYW5kIGNhbm5vdCBiZSBzaWduZWRcIik7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdmFsaWRhdGVkUHJvcHMgPSBhd2FpdCB2YWxpZGF0ZVNpZ25pbmdQcm9wZXJ0aWVzKHNpZ25pbmdQcm9wZXJ0aWVzKTtcbiAgICAgICAgY29uc3QgeyBjb25maWcsIHNpZ25lciB9ID0gdmFsaWRhdGVkUHJvcHM7XG4gICAgICAgIGxldCB7IHNpZ25pbmdSZWdpb24sIHNpZ25pbmdOYW1lIH0gPSB2YWxpZGF0ZWRQcm9wcztcbiAgICAgICAgY29uc3QgaGFuZGxlckV4ZWN1dGlvbkNvbnRleHQgPSBzaWduaW5nUHJvcGVydGllcy5jb250ZXh0O1xuICAgICAgICBpZiAoaGFuZGxlckV4ZWN1dGlvbkNvbnRleHQ/LmF1dGhTY2hlbWVzPy5sZW5ndGggPz8gMCA+IDEpIHtcbiAgICAgICAgICAgIGNvbnN0IFtmaXJzdCwgc2Vjb25kXSA9IGhhbmRsZXJFeGVjdXRpb25Db250ZXh0LmF1dGhTY2hlbWVzO1xuICAgICAgICAgICAgaWYgKGZpcnN0Py5uYW1lID09PSBcInNpZ3Y0YVwiICYmIHNlY29uZD8ubmFtZSA9PT0gXCJzaWd2NFwiKSB7XG4gICAgICAgICAgICAgICAgc2lnbmluZ1JlZ2lvbiA9IHNlY29uZD8uc2lnbmluZ1JlZ2lvbiA/PyBzaWduaW5nUmVnaW9uO1xuICAgICAgICAgICAgICAgIHNpZ25pbmdOYW1lID0gc2Vjb25kPy5zaWduaW5nTmFtZSA/PyBzaWduaW5nTmFtZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzaWduZWRSZXF1ZXN0ID0gYXdhaXQgc2lnbmVyLnNpZ24oaHR0cFJlcXVlc3QsIHtcbiAgICAgICAgICAgIHNpZ25pbmdEYXRlOiBnZXRTa2V3Q29ycmVjdGVkRGF0ZShjb25maWcuc3lzdGVtQ2xvY2tPZmZzZXQpLFxuICAgICAgICAgICAgc2lnbmluZ1JlZ2lvbjogc2lnbmluZ1JlZ2lvbixcbiAgICAgICAgICAgIHNpZ25pbmdTZXJ2aWNlOiBzaWduaW5nTmFtZSxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBzaWduZWRSZXF1ZXN0O1xuICAgIH1cbiAgICBlcnJvckhhbmRsZXIoc2lnbmluZ1Byb3BlcnRpZXMpIHtcbiAgICAgICAgcmV0dXJuIChlcnJvcikgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc2VydmVyVGltZSA9IGVycm9yLlNlcnZlclRpbWUgPz8gZ2V0RGF0ZUhlYWRlcihlcnJvci4kcmVzcG9uc2UpO1xuICAgICAgICAgICAgaWYgKHNlcnZlclRpbWUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSB0aHJvd1NpZ25pbmdQcm9wZXJ0eUVycm9yKFwiY29uZmlnXCIsIHNpZ25pbmdQcm9wZXJ0aWVzLmNvbmZpZyk7XG4gICAgICAgICAgICAgICAgY29uc3QgaW5pdGlhbFN5c3RlbUNsb2NrT2Zmc2V0ID0gY29uZmlnLnN5c3RlbUNsb2NrT2Zmc2V0O1xuICAgICAgICAgICAgICAgIGNvbmZpZy5zeXN0ZW1DbG9ja09mZnNldCA9IGdldFVwZGF0ZWRTeXN0ZW1DbG9ja09mZnNldChzZXJ2ZXJUaW1lLCBjb25maWcuc3lzdGVtQ2xvY2tPZmZzZXQpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNsb2NrU2tld0NvcnJlY3RlZCA9IGNvbmZpZy5zeXN0ZW1DbG9ja09mZnNldCAhPT0gaW5pdGlhbFN5c3RlbUNsb2NrT2Zmc2V0O1xuICAgICAgICAgICAgICAgIGlmIChjbG9ja1NrZXdDb3JyZWN0ZWQgJiYgZXJyb3IuJG1ldGFkYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgIGVycm9yLiRtZXRhZGF0YS5jbG9ja1NrZXdDb3JyZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9O1xuICAgIH1cbiAgICBzdWNjZXNzSGFuZGxlcihodHRwUmVzcG9uc2UsIHNpZ25pbmdQcm9wZXJ0aWVzKSB7XG4gICAgICAgIGNvbnN0IGRhdGVIZWFkZXIgPSBnZXREYXRlSGVhZGVyKGh0dHBSZXNwb25zZSk7XG4gICAgICAgIGlmIChkYXRlSGVhZGVyKSB7XG4gICAgICAgICAgICBjb25zdCBjb25maWcgPSB0aHJvd1NpZ25pbmdQcm9wZXJ0eUVycm9yKFwiY29uZmlnXCIsIHNpZ25pbmdQcm9wZXJ0aWVzLmNvbmZpZyk7XG4gICAgICAgICAgICBjb25maWcuc3lzdGVtQ2xvY2tPZmZzZXQgPSBnZXRVcGRhdGVkU3lzdGVtQ2xvY2tPZmZzZXQoZGF0ZUhlYWRlciwgY29uZmlnLnN5c3RlbUNsb2NrT2Zmc2V0KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydCBjb25zdCBBV1NTREtTaWdWNFNpZ25lciA9IEF3c1Nka1NpZ1Y0U2lnbmVyO1xuIiwgImltcG9ydCB7IEh0dHBSZXF1ZXN0IH0gZnJvbSBcIkBzbWl0aHkvcHJvdG9jb2wtaHR0cFwiO1xuaW1wb3J0IHsgZ2V0U2tld0NvcnJlY3RlZERhdGUgfSBmcm9tIFwiLi4vdXRpbHNcIjtcbmltcG9ydCB7IEF3c1Nka1NpZ1Y0U2lnbmVyLCB2YWxpZGF0ZVNpZ25pbmdQcm9wZXJ0aWVzIH0gZnJvbSBcIi4vQXdzU2RrU2lnVjRTaWduZXJcIjtcbmV4cG9ydCBjbGFzcyBBd3NTZGtTaWdWNEFTaWduZXIgZXh0ZW5kcyBBd3NTZGtTaWdWNFNpZ25lciB7XG4gICAgYXN5bmMgc2lnbihodHRwUmVxdWVzdCwgaWRlbnRpdHksIHNpZ25pbmdQcm9wZXJ0aWVzKSB7XG4gICAgICAgIGlmICghSHR0cFJlcXVlc3QuaXNJbnN0YW5jZShodHRwUmVxdWVzdCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlRoZSByZXF1ZXN0IGlzIG5vdCBhbiBpbnN0YW5jZSBvZiBgSHR0cFJlcXVlc3RgIGFuZCBjYW5ub3QgYmUgc2lnbmVkXCIpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHsgY29uZmlnLCBzaWduZXIsIHNpZ25pbmdSZWdpb24sIHNpZ25pbmdSZWdpb25TZXQsIHNpZ25pbmdOYW1lIH0gPSBhd2FpdCB2YWxpZGF0ZVNpZ25pbmdQcm9wZXJ0aWVzKHNpZ25pbmdQcm9wZXJ0aWVzKTtcbiAgICAgICAgY29uc3QgY29uZmlnUmVzb2x2ZWRTaWduaW5nUmVnaW9uU2V0ID0gYXdhaXQgY29uZmlnLnNpZ3Y0YVNpZ25pbmdSZWdpb25TZXQ/LigpO1xuICAgICAgICBjb25zdCBtdWx0aVJlZ2lvbk92ZXJyaWRlID0gKGNvbmZpZ1Jlc29sdmVkU2lnbmluZ1JlZ2lvblNldCA/P1xuICAgICAgICAgICAgc2lnbmluZ1JlZ2lvblNldCA/PyBbc2lnbmluZ1JlZ2lvbl0pLmpvaW4oXCIsXCIpO1xuICAgICAgICBjb25zdCBzaWduZWRSZXF1ZXN0ID0gYXdhaXQgc2lnbmVyLnNpZ24oaHR0cFJlcXVlc3QsIHtcbiAgICAgICAgICAgIHNpZ25pbmdEYXRlOiBnZXRTa2V3Q29ycmVjdGVkRGF0ZShjb25maWcuc3lzdGVtQ2xvY2tPZmZzZXQpLFxuICAgICAgICAgICAgc2lnbmluZ1JlZ2lvbjogbXVsdGlSZWdpb25PdmVycmlkZSxcbiAgICAgICAgICAgIHNpZ25pbmdTZXJ2aWNlOiBzaWduaW5nTmFtZSxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBzaWduZWRSZXF1ZXN0O1xuICAgIH1cbn1cbiIsICJleHBvcnQgY29uc3QgZ2V0QXJyYXlGb3JDb21tYVNlcGFyYXRlZFN0cmluZyA9IChzdHIpID0+IHR5cGVvZiBzdHIgPT09IFwic3RyaW5nXCIgJiYgc3RyLmxlbmd0aCA+IDAgPyBzdHIuc3BsaXQoXCIsXCIpLm1hcCgoaXRlbSkgPT4gaXRlbS50cmltKCkpIDogW107XG4iLCAiZXhwb3J0IGNvbnN0IGdldEJlYXJlclRva2VuRW52S2V5ID0gKHNpZ25pbmdOYW1lKSA9PiBgQVdTX0JFQVJFUl9UT0tFTl8ke3NpZ25pbmdOYW1lLnJlcGxhY2UoL1tcXHMtXS9nLCBcIl9cIikudG9VcHBlckNhc2UoKX1gO1xuIiwgImltcG9ydCB7IGdldEFycmF5Rm9yQ29tbWFTZXBhcmF0ZWRTdHJpbmcgfSBmcm9tIFwiLi4vdXRpbHMvZ2V0QXJyYXlGb3JDb21tYVNlcGFyYXRlZFN0cmluZ1wiO1xuaW1wb3J0IHsgZ2V0QmVhcmVyVG9rZW5FbnZLZXkgfSBmcm9tIFwiLi4vdXRpbHMvZ2V0QmVhcmVyVG9rZW5FbnZLZXlcIjtcbmNvbnN0IE5PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9FTlZfS0VZID0gXCJBV1NfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRVwiO1xuY29uc3QgTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX0NPTkZJR19LRVkgPSBcImF1dGhfc2NoZW1lX3ByZWZlcmVuY2VcIjtcbmV4cG9ydCBjb25zdCBOT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfT1BUSU9OUyA9IHtcbiAgICBlbnZpcm9ubWVudFZhcmlhYmxlU2VsZWN0b3I6IChlbnYsIG9wdGlvbnMpID0+IHtcbiAgICAgICAgaWYgKG9wdGlvbnM/LnNpZ25pbmdOYW1lKSB7XG4gICAgICAgICAgICBjb25zdCBiZWFyZXJUb2tlbktleSA9IGdldEJlYXJlclRva2VuRW52S2V5KG9wdGlvbnMuc2lnbmluZ05hbWUpO1xuICAgICAgICAgICAgaWYgKGJlYXJlclRva2VuS2V5IGluIGVudilcbiAgICAgICAgICAgICAgICByZXR1cm4gW1wiaHR0cEJlYXJlckF1dGhcIl07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCEoTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX0VOVl9LRVkgaW4gZW52KSlcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIHJldHVybiBnZXRBcnJheUZvckNvbW1hU2VwYXJhdGVkU3RyaW5nKGVudltOT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfRU5WX0tFWV0pO1xuICAgIH0sXG4gICAgY29uZmlnRmlsZVNlbGVjdG9yOiAocHJvZmlsZSkgPT4ge1xuICAgICAgICBpZiAoIShOT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfQ09ORklHX0tFWSBpbiBwcm9maWxlKSlcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIHJldHVybiBnZXRBcnJheUZvckNvbW1hU2VwYXJhdGVkU3RyaW5nKHByb2ZpbGVbTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX0NPTkZJR19LRVldKTtcbiAgICB9LFxuICAgIGRlZmF1bHQ6IFtdLFxufTtcbiIsICJpbXBvcnQgeyBub3JtYWxpemVQcm92aWRlciB9IGZyb20gXCJAc21pdGh5L2NvcmVcIjtcbmltcG9ydCB7IFByb3ZpZGVyRXJyb3IgfSBmcm9tIFwiQHNtaXRoeS9wcm9wZXJ0eS1wcm92aWRlclwiO1xuZXhwb3J0IGNvbnN0IHJlc29sdmVBd3NTZGtTaWdWNEFDb25maWcgPSAoY29uZmlnKSA9PiB7XG4gICAgY29uZmlnLnNpZ3Y0YVNpZ25pbmdSZWdpb25TZXQgPSBub3JtYWxpemVQcm92aWRlcihjb25maWcuc2lndjRhU2lnbmluZ1JlZ2lvblNldCk7XG4gICAgcmV0dXJuIGNvbmZpZztcbn07XG5leHBvcnQgY29uc3QgTk9ERV9TSUdWNEFfQ09ORklHX09QVElPTlMgPSB7XG4gICAgZW52aXJvbm1lbnRWYXJpYWJsZVNlbGVjdG9yKGVudikge1xuICAgICAgICBpZiAoZW52LkFXU19TSUdWNEFfU0lHTklOR19SRUdJT05fU0VUKSB7XG4gICAgICAgICAgICByZXR1cm4gZW52LkFXU19TSUdWNEFfU0lHTklOR19SRUdJT05fU0VULnNwbGl0KFwiLFwiKS5tYXAoKF8pID0+IF8udHJpbSgpKTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBuZXcgUHJvdmlkZXJFcnJvcihcIkFXU19TSUdWNEFfU0lHTklOR19SRUdJT05fU0VUIG5vdCBzZXQgaW4gZW52LlwiLCB7XG4gICAgICAgICAgICB0cnlOZXh0TGluazogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgfSxcbiAgICBjb25maWdGaWxlU2VsZWN0b3IocHJvZmlsZSkge1xuICAgICAgICBpZiAocHJvZmlsZS5zaWd2NGFfc2lnbmluZ19yZWdpb25fc2V0KSB7XG4gICAgICAgICAgICByZXR1cm4gKHByb2ZpbGUuc2lndjRhX3NpZ25pbmdfcmVnaW9uX3NldCA/PyBcIlwiKS5zcGxpdChcIixcIikubWFwKChfKSA9PiBfLnRyaW0oKSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgbmV3IFByb3ZpZGVyRXJyb3IoXCJzaWd2NGFfc2lnbmluZ19yZWdpb25fc2V0IG5vdCBzZXQgaW4gcHJvZmlsZS5cIiwge1xuICAgICAgICAgICAgdHJ5TmV4dExpbms6IHRydWUsXG4gICAgICAgIH0pO1xuICAgIH0sXG4gICAgZGVmYXVsdDogdW5kZWZpbmVkLFxufTtcbiIsICJpbXBvcnQgeyBzZXRDcmVkZW50aWFsRmVhdHVyZSB9IGZyb20gXCJAYXdzLXNkay9jb3JlL2NsaWVudFwiO1xuaW1wb3J0IHsgZG9lc0lkZW50aXR5UmVxdWlyZVJlZnJlc2gsIGlzSWRlbnRpdHlFeHBpcmVkLCBtZW1vaXplSWRlbnRpdHlQcm92aWRlciwgbm9ybWFsaXplUHJvdmlkZXIsIH0gZnJvbSBcIkBzbWl0aHkvY29yZVwiO1xuaW1wb3J0IHsgU2lnbmF0dXJlVjQgfSBmcm9tIFwiQHNtaXRoeS9zaWduYXR1cmUtdjRcIjtcbmV4cG9ydCBjb25zdCByZXNvbHZlQXdzU2RrU2lnVjRDb25maWcgPSAoY29uZmlnKSA9PiB7XG4gICAgbGV0IGlucHV0Q3JlZGVudGlhbHMgPSBjb25maWcuY3JlZGVudGlhbHM7XG4gICAgbGV0IGlzVXNlclN1cHBsaWVkID0gISFjb25maWcuY3JlZGVudGlhbHM7XG4gICAgbGV0IHJlc29sdmVkQ3JlZGVudGlhbHMgPSB1bmRlZmluZWQ7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNvbmZpZywgXCJjcmVkZW50aWFsc1wiLCB7XG4gICAgICAgIHNldChjcmVkZW50aWFscykge1xuICAgICAgICAgICAgaWYgKGNyZWRlbnRpYWxzICYmIGNyZWRlbnRpYWxzICE9PSBpbnB1dENyZWRlbnRpYWxzICYmIGNyZWRlbnRpYWxzICE9PSByZXNvbHZlZENyZWRlbnRpYWxzKSB7XG4gICAgICAgICAgICAgICAgaXNVc2VyU3VwcGxpZWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaW5wdXRDcmVkZW50aWFscyA9IGNyZWRlbnRpYWxzO1xuICAgICAgICAgICAgY29uc3QgbWVtb2l6ZWRQcm92aWRlciA9IG5vcm1hbGl6ZUNyZWRlbnRpYWxQcm92aWRlcihjb25maWcsIHtcbiAgICAgICAgICAgICAgICBjcmVkZW50aWFsczogaW5wdXRDcmVkZW50aWFscyxcbiAgICAgICAgICAgICAgICBjcmVkZW50aWFsRGVmYXVsdFByb3ZpZGVyOiBjb25maWcuY3JlZGVudGlhbERlZmF1bHRQcm92aWRlcixcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29uc3QgYm91bmRQcm92aWRlciA9IGJpbmRDYWxsZXJDb25maWcoY29uZmlnLCBtZW1vaXplZFByb3ZpZGVyKTtcbiAgICAgICAgICAgIGlmIChpc1VzZXJTdXBwbGllZCAmJiAhYm91bmRQcm92aWRlci5hdHRyaWJ1dGVkKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNDcmVkZW50aWFsT2JqZWN0ID0gdHlwZW9mIGlucHV0Q3JlZGVudGlhbHMgPT09IFwib2JqZWN0XCIgJiYgaW5wdXRDcmVkZW50aWFscyAhPT0gbnVsbDtcbiAgICAgICAgICAgICAgICByZXNvbHZlZENyZWRlbnRpYWxzID0gYXN5bmMgKG9wdGlvbnMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY3JlZHMgPSBhd2FpdCBib3VuZFByb3ZpZGVyKG9wdGlvbnMpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhdHRyaWJ1dGVkQ3JlZHMgPSBjcmVkcztcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzQ3JlZGVudGlhbE9iamVjdCAmJiAoIWF0dHJpYnV0ZWRDcmVkcy4kc291cmNlIHx8IE9iamVjdC5rZXlzKGF0dHJpYnV0ZWRDcmVkcy4kc291cmNlKS5sZW5ndGggPT09IDApKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2V0Q3JlZGVudGlhbEZlYXR1cmUoYXR0cmlidXRlZENyZWRzLCBcIkNSRURFTlRJQUxTX0NPREVcIiwgXCJlXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhdHRyaWJ1dGVkQ3JlZHM7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICByZXNvbHZlZENyZWRlbnRpYWxzLm1lbW9pemVkID0gYm91bmRQcm92aWRlci5tZW1vaXplZDtcbiAgICAgICAgICAgICAgICByZXNvbHZlZENyZWRlbnRpYWxzLmNvbmZpZ0JvdW5kID0gYm91bmRQcm92aWRlci5jb25maWdCb3VuZDtcbiAgICAgICAgICAgICAgICByZXNvbHZlZENyZWRlbnRpYWxzLmF0dHJpYnV0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZWRDcmVkZW50aWFscyA9IGJvdW5kUHJvdmlkZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGdldCgpIHtcbiAgICAgICAgICAgIHJldHVybiByZXNvbHZlZENyZWRlbnRpYWxzO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgfSk7XG4gICAgY29uZmlnLmNyZWRlbnRpYWxzID0gaW5wdXRDcmVkZW50aWFscztcbiAgICBjb25zdCB7IHNpZ25pbmdFc2NhcGVQYXRoID0gdHJ1ZSwgc3lzdGVtQ2xvY2tPZmZzZXQgPSBjb25maWcuc3lzdGVtQ2xvY2tPZmZzZXQgfHwgMCwgc2hhMjU2LCB9ID0gY29uZmlnO1xuICAgIGxldCBzaWduZXI7XG4gICAgaWYgKGNvbmZpZy5zaWduZXIpIHtcbiAgICAgICAgc2lnbmVyID0gbm9ybWFsaXplUHJvdmlkZXIoY29uZmlnLnNpZ25lcik7XG4gICAgfVxuICAgIGVsc2UgaWYgKGNvbmZpZy5yZWdpb25JbmZvUHJvdmlkZXIpIHtcbiAgICAgICAgc2lnbmVyID0gKCkgPT4gbm9ybWFsaXplUHJvdmlkZXIoY29uZmlnLnJlZ2lvbikoKVxuICAgICAgICAgICAgLnRoZW4oYXN5bmMgKHJlZ2lvbikgPT4gW1xuICAgICAgICAgICAgKGF3YWl0IGNvbmZpZy5yZWdpb25JbmZvUHJvdmlkZXIocmVnaW9uLCB7XG4gICAgICAgICAgICAgICAgdXNlRmlwc0VuZHBvaW50OiBhd2FpdCBjb25maWcudXNlRmlwc0VuZHBvaW50KCksXG4gICAgICAgICAgICAgICAgdXNlRHVhbHN0YWNrRW5kcG9pbnQ6IGF3YWl0IGNvbmZpZy51c2VEdWFsc3RhY2tFbmRwb2ludCgpLFxuICAgICAgICAgICAgfSkpIHx8IHt9LFxuICAgICAgICAgICAgcmVnaW9uLFxuICAgICAgICBdKVxuICAgICAgICAgICAgLnRoZW4oKFtyZWdpb25JbmZvLCByZWdpb25dKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IHNpZ25pbmdSZWdpb24sIHNpZ25pbmdTZXJ2aWNlIH0gPSByZWdpb25JbmZvO1xuICAgICAgICAgICAgY29uZmlnLnNpZ25pbmdSZWdpb24gPSBjb25maWcuc2lnbmluZ1JlZ2lvbiB8fCBzaWduaW5nUmVnaW9uIHx8IHJlZ2lvbjtcbiAgICAgICAgICAgIGNvbmZpZy5zaWduaW5nTmFtZSA9IGNvbmZpZy5zaWduaW5nTmFtZSB8fCBzaWduaW5nU2VydmljZSB8fCBjb25maWcuc2VydmljZUlkO1xuICAgICAgICAgICAgY29uc3QgcGFyYW1zID0ge1xuICAgICAgICAgICAgICAgIC4uLmNvbmZpZyxcbiAgICAgICAgICAgICAgICBjcmVkZW50aWFsczogY29uZmlnLmNyZWRlbnRpYWxzLFxuICAgICAgICAgICAgICAgIHJlZ2lvbjogY29uZmlnLnNpZ25pbmdSZWdpb24sXG4gICAgICAgICAgICAgICAgc2VydmljZTogY29uZmlnLnNpZ25pbmdOYW1lLFxuICAgICAgICAgICAgICAgIHNoYTI1NixcbiAgICAgICAgICAgICAgICB1cmlFc2NhcGVQYXRoOiBzaWduaW5nRXNjYXBlUGF0aCxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBjb25zdCBTaWduZXJDdG9yID0gY29uZmlnLnNpZ25lckNvbnN0cnVjdG9yIHx8IFNpZ25hdHVyZVY0O1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBTaWduZXJDdG9yKHBhcmFtcyk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgc2lnbmVyID0gYXN5bmMgKGF1dGhTY2hlbWUpID0+IHtcbiAgICAgICAgICAgIGF1dGhTY2hlbWUgPSBPYmplY3QuYXNzaWduKHt9LCB7XG4gICAgICAgICAgICAgICAgbmFtZTogXCJzaWd2NFwiLFxuICAgICAgICAgICAgICAgIHNpZ25pbmdOYW1lOiBjb25maWcuc2lnbmluZ05hbWUgfHwgY29uZmlnLmRlZmF1bHRTaWduaW5nTmFtZSxcbiAgICAgICAgICAgICAgICBzaWduaW5nUmVnaW9uOiBhd2FpdCBub3JtYWxpemVQcm92aWRlcihjb25maWcucmVnaW9uKSgpLFxuICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IHt9LFxuICAgICAgICAgICAgfSwgYXV0aFNjaGVtZSk7XG4gICAgICAgICAgICBjb25zdCBzaWduaW5nUmVnaW9uID0gYXV0aFNjaGVtZS5zaWduaW5nUmVnaW9uO1xuICAgICAgICAgICAgY29uc3Qgc2lnbmluZ1NlcnZpY2UgPSBhdXRoU2NoZW1lLnNpZ25pbmdOYW1lO1xuICAgICAgICAgICAgY29uZmlnLnNpZ25pbmdSZWdpb24gPSBjb25maWcuc2lnbmluZ1JlZ2lvbiB8fCBzaWduaW5nUmVnaW9uO1xuICAgICAgICAgICAgY29uZmlnLnNpZ25pbmdOYW1lID0gY29uZmlnLnNpZ25pbmdOYW1lIHx8IHNpZ25pbmdTZXJ2aWNlIHx8IGNvbmZpZy5zZXJ2aWNlSWQ7XG4gICAgICAgICAgICBjb25zdCBwYXJhbXMgPSB7XG4gICAgICAgICAgICAgICAgLi4uY29uZmlnLFxuICAgICAgICAgICAgICAgIGNyZWRlbnRpYWxzOiBjb25maWcuY3JlZGVudGlhbHMsXG4gICAgICAgICAgICAgICAgcmVnaW9uOiBjb25maWcuc2lnbmluZ1JlZ2lvbixcbiAgICAgICAgICAgICAgICBzZXJ2aWNlOiBjb25maWcuc2lnbmluZ05hbWUsXG4gICAgICAgICAgICAgICAgc2hhMjU2LFxuICAgICAgICAgICAgICAgIHVyaUVzY2FwZVBhdGg6IHNpZ25pbmdFc2NhcGVQYXRoLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGNvbnN0IFNpZ25lckN0b3IgPSBjb25maWcuc2lnbmVyQ29uc3RydWN0b3IgfHwgU2lnbmF0dXJlVjQ7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFNpZ25lckN0b3IocGFyYW1zKTtcbiAgICAgICAgfTtcbiAgICB9XG4gICAgY29uc3QgcmVzb2x2ZWRDb25maWcgPSBPYmplY3QuYXNzaWduKGNvbmZpZywge1xuICAgICAgICBzeXN0ZW1DbG9ja09mZnNldCxcbiAgICAgICAgc2lnbmluZ0VzY2FwZVBhdGgsXG4gICAgICAgIHNpZ25lcixcbiAgICB9KTtcbiAgICByZXR1cm4gcmVzb2x2ZWRDb25maWc7XG59O1xuZXhwb3J0IGNvbnN0IHJlc29sdmVBV1NTREtTaWdWNENvbmZpZyA9IHJlc29sdmVBd3NTZGtTaWdWNENvbmZpZztcbmZ1bmN0aW9uIG5vcm1hbGl6ZUNyZWRlbnRpYWxQcm92aWRlcihjb25maWcsIHsgY3JlZGVudGlhbHMsIGNyZWRlbnRpYWxEZWZhdWx0UHJvdmlkZXIsIH0pIHtcbiAgICBsZXQgY3JlZGVudGlhbHNQcm92aWRlcjtcbiAgICBpZiAoY3JlZGVudGlhbHMpIHtcbiAgICAgICAgaWYgKCFjcmVkZW50aWFscz8ubWVtb2l6ZWQpIHtcbiAgICAgICAgICAgIGNyZWRlbnRpYWxzUHJvdmlkZXIgPSBtZW1vaXplSWRlbnRpdHlQcm92aWRlcihjcmVkZW50aWFscywgaXNJZGVudGl0eUV4cGlyZWQsIGRvZXNJZGVudGl0eVJlcXVpcmVSZWZyZXNoKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNyZWRlbnRpYWxzUHJvdmlkZXIgPSBjcmVkZW50aWFscztcbiAgICAgICAgfVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgaWYgKGNyZWRlbnRpYWxEZWZhdWx0UHJvdmlkZXIpIHtcbiAgICAgICAgICAgIGNyZWRlbnRpYWxzUHJvdmlkZXIgPSBub3JtYWxpemVQcm92aWRlcihjcmVkZW50aWFsRGVmYXVsdFByb3ZpZGVyKE9iamVjdC5hc3NpZ24oe30sIGNvbmZpZywge1xuICAgICAgICAgICAgICAgIHBhcmVudENsaWVudENvbmZpZzogY29uZmlnLFxuICAgICAgICAgICAgfSkpKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNyZWRlbnRpYWxzUHJvdmlkZXIgPSBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQGF3cy1zZGsvY29yZTo6cmVzb2x2ZUF3c1Nka1NpZ1Y0Q29uZmlnIC0gYGNyZWRlbnRpYWxzYCBub3QgcHJvdmlkZWQgYW5kIG5vIGNyZWRlbnRpYWxEZWZhdWx0UHJvdmlkZXIgd2FzIGNvbmZpZ3VyZWQuXCIpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjcmVkZW50aWFsc1Byb3ZpZGVyLm1lbW9pemVkID0gdHJ1ZTtcbiAgICByZXR1cm4gY3JlZGVudGlhbHNQcm92aWRlcjtcbn1cbmZ1bmN0aW9uIGJpbmRDYWxsZXJDb25maWcoY29uZmlnLCBjcmVkZW50aWFsc1Byb3ZpZGVyKSB7XG4gICAgaWYgKGNyZWRlbnRpYWxzUHJvdmlkZXIuY29uZmlnQm91bmQpIHtcbiAgICAgICAgcmV0dXJuIGNyZWRlbnRpYWxzUHJvdmlkZXI7XG4gICAgfVxuICAgIGNvbnN0IGZuID0gYXN5bmMgKG9wdGlvbnMpID0+IGNyZWRlbnRpYWxzUHJvdmlkZXIoeyAuLi5vcHRpb25zLCBjYWxsZXJDbGllbnRDb25maWc6IGNvbmZpZyB9KTtcbiAgICBmbi5tZW1vaXplZCA9IGNyZWRlbnRpYWxzUHJvdmlkZXIubWVtb2l6ZWQ7XG4gICAgZm4uY29uZmlnQm91bmQgPSB0cnVlO1xuICAgIHJldHVybiBmbjtcbn1cbiIsICJleHBvcnQgeyBBd3NTZGtTaWdWNFNpZ25lciwgQVdTU0RLU2lnVjRTaWduZXIsIHZhbGlkYXRlU2lnbmluZ1Byb3BlcnRpZXMgfSBmcm9tIFwiLi9Bd3NTZGtTaWdWNFNpZ25lclwiO1xuZXhwb3J0IHsgQXdzU2RrU2lnVjRBU2lnbmVyIH0gZnJvbSBcIi4vQXdzU2RrU2lnVjRBU2lnbmVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9OT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfT1BUSU9OU1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcmVzb2x2ZUF3c1Nka1NpZ1Y0QUNvbmZpZ1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcmVzb2x2ZUF3c1Nka1NpZ1Y0Q29uZmlnXCI7XG4iLCAiZXhwb3J0ICogZnJvbSBcIi4vYXdzX3Nka1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vdXRpbHMvZ2V0QmVhcmVyVG9rZW5FbnZLZXlcIjtcbiIsICJpbXBvcnQgeyByZXNvbHZlQXdzU2RrU2lnVjRDb25maWcgfSBmcm9tIFwiQGF3cy1zZGsvY29yZS9odHRwQXV0aFNjaGVtZXNcIjtcbmltcG9ydCB7IGdldFNtaXRoeUNvbnRleHQsIG5vcm1hbGl6ZVByb3ZpZGVyIH0gZnJvbSBcIkBzbWl0aHkvdXRpbC1taWRkbGV3YXJlXCI7XG5leHBvcnQgY29uc3QgZGVmYXVsdFNTT09JRENIdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlciA9IGFzeW5jIChjb25maWcsIGNvbnRleHQsIGlucHV0KSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgb3BlcmF0aW9uOiBnZXRTbWl0aHlDb250ZXh0KGNvbnRleHQpLm9wZXJhdGlvbixcbiAgICAgICAgcmVnaW9uOiAoYXdhaXQgbm9ybWFsaXplUHJvdmlkZXIoY29uZmlnLnJlZ2lvbikoKSkgfHxcbiAgICAgICAgICAgICgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiZXhwZWN0ZWQgYHJlZ2lvbmAgdG8gYmUgY29uZmlndXJlZCBmb3IgYGF3cy5hdXRoI3NpZ3Y0YFwiKTtcbiAgICAgICAgICAgIH0pKCksXG4gICAgfTtcbn07XG5mdW5jdGlvbiBjcmVhdGVBd3NBdXRoU2lndjRIdHRwQXV0aE9wdGlvbihhdXRoUGFyYW1ldGVycykge1xuICAgIHJldHVybiB7XG4gICAgICAgIHNjaGVtZUlkOiBcImF3cy5hdXRoI3NpZ3Y0XCIsXG4gICAgICAgIHNpZ25pbmdQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICBuYW1lOiBcInNzby1vYXV0aFwiLFxuICAgICAgICAgICAgcmVnaW9uOiBhdXRoUGFyYW1ldGVycy5yZWdpb24sXG4gICAgICAgIH0sXG4gICAgICAgIHByb3BlcnRpZXNFeHRyYWN0b3I6IChjb25maWcsIGNvbnRleHQpID0+ICh7XG4gICAgICAgICAgICBzaWduaW5nUHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgIGNvbmZpZyxcbiAgICAgICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgfTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVNtaXRoeUFwaU5vQXV0aEh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc2NoZW1lSWQ6IFwic21pdGh5LmFwaSNub0F1dGhcIixcbiAgICB9O1xufVxuZXhwb3J0IGNvbnN0IGRlZmF1bHRTU09PSURDSHR0cEF1dGhTY2hlbWVQcm92aWRlciA9IChhdXRoUGFyYW1ldGVycykgPT4ge1xuICAgIGNvbnN0IG9wdGlvbnMgPSBbXTtcbiAgICBzd2l0Y2ggKGF1dGhQYXJhbWV0ZXJzLm9wZXJhdGlvbikge1xuICAgICAgICBjYXNlIFwiQ3JlYXRlVG9rZW5cIjoge1xuICAgICAgICAgICAgb3B0aW9ucy5wdXNoKGNyZWF0ZVNtaXRoeUFwaU5vQXV0aEh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICBvcHRpb25zLnB1c2goY3JlYXRlQXdzQXV0aFNpZ3Y0SHR0cEF1dGhPcHRpb24oYXV0aFBhcmFtZXRlcnMpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gb3B0aW9ucztcbn07XG5leHBvcnQgY29uc3QgcmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIGNvbnN0IGNvbmZpZ18wID0gcmVzb2x2ZUF3c1Nka1NpZ1Y0Q29uZmlnKGNvbmZpZyk7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oY29uZmlnXzAsIHtcbiAgICAgICAgYXV0aFNjaGVtZVByZWZlcmVuY2U6IG5vcm1hbGl6ZVByb3ZpZGVyKGNvbmZpZy5hdXRoU2NoZW1lUHJlZmVyZW5jZSA/PyBbXSksXG4gICAgfSk7XG59O1xuIiwgImV4cG9ydCBjb25zdCByZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzID0gKG9wdGlvbnMpID0+IHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihvcHRpb25zLCB7XG4gICAgICAgIHVzZUR1YWxzdGFja0VuZHBvaW50OiBvcHRpb25zLnVzZUR1YWxzdGFja0VuZHBvaW50ID8/IGZhbHNlLFxuICAgICAgICB1c2VGaXBzRW5kcG9pbnQ6IG9wdGlvbnMudXNlRmlwc0VuZHBvaW50ID8/IGZhbHNlLFxuICAgICAgICBkZWZhdWx0U2lnbmluZ05hbWU6IFwic3NvLW9hdXRoXCIsXG4gICAgfSk7XG59O1xuZXhwb3J0IGNvbnN0IGNvbW1vblBhcmFtcyA9IHtcbiAgICBVc2VGSVBTOiB7IHR5cGU6IFwiYnVpbHRJblBhcmFtc1wiLCBuYW1lOiBcInVzZUZpcHNFbmRwb2ludFwiIH0sXG4gICAgRW5kcG9pbnQ6IHsgdHlwZTogXCJidWlsdEluUGFyYW1zXCIsIG5hbWU6IFwiZW5kcG9pbnRcIiB9LFxuICAgIFJlZ2lvbjogeyB0eXBlOiBcImJ1aWx0SW5QYXJhbXNcIiwgbmFtZTogXCJyZWdpb25cIiB9LFxuICAgIFVzZUR1YWxTdGFjazogeyB0eXBlOiBcImJ1aWx0SW5QYXJhbXNcIiwgbmFtZTogXCJ1c2VEdWFsc3RhY2tFbmRwb2ludFwiIH0sXG59O1xuIiwgIntcbiAgXCJuYW1lXCI6IFwiQGF3cy1zZGsvbmVzdGVkLWNsaWVudHNcIixcbiAgXCJ2ZXJzaW9uXCI6IFwiMy45OTcuNlwiLFxuICBcImRlc2NyaXB0aW9uXCI6IFwiTmVzdGVkIGNsaWVudHMgZm9yIEFXUyBTREsgcGFja2FnZXMuXCIsXG4gIFwibWFpblwiOiBcIi4vZGlzdC1janMvaW5kZXguanNcIixcbiAgXCJtb2R1bGVcIjogXCIuL2Rpc3QtZXMvaW5kZXguanNcIixcbiAgXCJ0eXBlc1wiOiBcIi4vZGlzdC10eXBlcy9pbmRleC5kLnRzXCIsXG4gIFwic2NyaXB0c1wiOiB7XG4gICAgXCJidWlsZFwiOiBcInlhcm4gbGludCAmJiBjb25jdXJyZW50bHkgJ3lhcm46YnVpbGQ6dHlwZXMnICd5YXJuOmJ1aWxkOmVzJyAmJiB5YXJuIGJ1aWxkOmNqc1wiLFxuICAgIFwiYnVpbGQ6Y2pzXCI6IFwibm9kZSAuLi8uLi9zY3JpcHRzL2NvbXBpbGF0aW9uL2lubGluZSBuZXN0ZWQtY2xpZW50c1wiLFxuICAgIFwiYnVpbGQ6ZXNcIjogXCJ0c2MgLXAgdHNjb25maWcuZXMuanNvblwiLFxuICAgIFwiYnVpbGQ6aW5jbHVkZTpkZXBzXCI6IFwieWFybiBnOnR1cmJvIHJ1biBidWlsZCAtRj1cXFwiJG5wbV9wYWNrYWdlX25hbWVcXFwiXCIsXG4gICAgXCJidWlsZDp0eXBlc1wiOiBcInRzYyAtcCB0c2NvbmZpZy50eXBlcy5qc29uXCIsXG4gICAgXCJidWlsZDp0eXBlczpkb3dubGV2ZWxcIjogXCJkb3dubGV2ZWwtZHRzIGRpc3QtdHlwZXMgZGlzdC10eXBlcy90czMuNFwiLFxuICAgIFwiY2xlYW5cIjogXCJwcmVtb3ZlIGRpc3QtY2pzIGRpc3QtZXMgZGlzdC10eXBlcyB0c2NvbmZpZy5janMudHNidWlsZGluZm8gdHNjb25maWcuZXMudHNidWlsZGluZm8gdHNjb25maWcudHlwZXMudHNidWlsZGluZm9cIixcbiAgICBcImxpbnRcIjogXCJub2RlIC4uLy4uL3NjcmlwdHMvdmFsaWRhdGlvbi9zdWJtb2R1bGVzLWxpbnRlci5qcyAtLXBrZyBuZXN0ZWQtY2xpZW50c1wiLFxuICAgIFwidGVzdFwiOiBcInlhcm4gZzp2aXRlc3QgcnVuXCIsXG4gICAgXCJ0ZXN0OndhdGNoXCI6IFwieWFybiBnOnZpdGVzdCB3YXRjaFwiXG4gIH0sXG4gIFwiZW5naW5lc1wiOiB7XG4gICAgXCJub2RlXCI6IFwiPj0yMC4wLjBcIlxuICB9LFxuICBcInNpZGVFZmZlY3RzXCI6IGZhbHNlLFxuICBcImF1dGhvclwiOiB7XG4gICAgXCJuYW1lXCI6IFwiQVdTIFNESyBmb3IgSmF2YVNjcmlwdCBUZWFtXCIsXG4gICAgXCJ1cmxcIjogXCJodHRwczovL2F3cy5hbWF6b24uY29tL2phdmFzY3JpcHQvXCJcbiAgfSxcbiAgXCJsaWNlbnNlXCI6IFwiQXBhY2hlLTIuMFwiLFxuICBcImRlcGVuZGVuY2llc1wiOiB7XG4gICAgXCJAYXdzLWNyeXB0by9zaGEyNTYtYnJvd3NlclwiOiBcIjUuMi4wXCIsXG4gICAgXCJAYXdzLWNyeXB0by9zaGEyNTYtanNcIjogXCI1LjIuMFwiLFxuICAgIFwiQGF3cy1zZGsvY29yZVwiOiBcIl4zLjk3NC44XCIsXG4gICAgXCJAYXdzLXNkay9taWRkbGV3YXJlLWhvc3QtaGVhZGVyXCI6IFwiXjMuOTcyLjEwXCIsXG4gICAgXCJAYXdzLXNkay9taWRkbGV3YXJlLWxvZ2dlclwiOiBcIl4zLjk3Mi4xMFwiLFxuICAgIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1yZWN1cnNpb24tZGV0ZWN0aW9uXCI6IFwiXjMuOTcyLjExXCIsXG4gICAgXCJAYXdzLXNkay9taWRkbGV3YXJlLXVzZXItYWdlbnRcIjogXCJeMy45NzIuMzhcIixcbiAgICBcIkBhd3Mtc2RrL3JlZ2lvbi1jb25maWctcmVzb2x2ZXJcIjogXCJeMy45NzIuMTNcIixcbiAgICBcIkBhd3Mtc2RrL3NpZ25hdHVyZS12NC1tdWx0aS1yZWdpb25cIjogXCJeMy45OTYuMjVcIixcbiAgICBcIkBhd3Mtc2RrL3R5cGVzXCI6IFwiXjMuOTczLjhcIixcbiAgICBcIkBhd3Mtc2RrL3V0aWwtZW5kcG9pbnRzXCI6IFwiXjMuOTk2LjhcIixcbiAgICBcIkBhd3Mtc2RrL3V0aWwtdXNlci1hZ2VudC1icm93c2VyXCI6IFwiXjMuOTcyLjEwXCIsXG4gICAgXCJAYXdzLXNkay91dGlsLXVzZXItYWdlbnQtbm9kZVwiOiBcIl4zLjk3My4yNFwiLFxuICAgIFwiQHNtaXRoeS9jb25maWctcmVzb2x2ZXJcIjogXCJeNC40LjE3XCIsXG4gICAgXCJAc21pdGh5L2NvcmVcIjogXCJeMy4yMy4xN1wiLFxuICAgIFwiQHNtaXRoeS9mZXRjaC1odHRwLWhhbmRsZXJcIjogXCJeNS4zLjE3XCIsXG4gICAgXCJAc21pdGh5L2hhc2gtbm9kZVwiOiBcIl40LjIuMTRcIixcbiAgICBcIkBzbWl0aHkvaW52YWxpZC1kZXBlbmRlbmN5XCI6IFwiXjQuMi4xNFwiLFxuICAgIFwiQHNtaXRoeS9taWRkbGV3YXJlLWNvbnRlbnQtbGVuZ3RoXCI6IFwiXjQuMi4xNFwiLFxuICAgIFwiQHNtaXRoeS9taWRkbGV3YXJlLWVuZHBvaW50XCI6IFwiXjQuNC4zMlwiLFxuICAgIFwiQHNtaXRoeS9taWRkbGV3YXJlLXJldHJ5XCI6IFwiXjQuNS43XCIsXG4gICAgXCJAc21pdGh5L21pZGRsZXdhcmUtc2VyZGVcIjogXCJeNC4yLjIwXCIsXG4gICAgXCJAc21pdGh5L21pZGRsZXdhcmUtc3RhY2tcIjogXCJeNC4yLjE0XCIsXG4gICAgXCJAc21pdGh5L25vZGUtY29uZmlnLXByb3ZpZGVyXCI6IFwiXjQuMy4xNFwiLFxuICAgIFwiQHNtaXRoeS9ub2RlLWh0dHAtaGFuZGxlclwiOiBcIl40LjYuMVwiLFxuICAgIFwiQHNtaXRoeS9wcm90b2NvbC1odHRwXCI6IFwiXjUuMy4xNFwiLFxuICAgIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI6IFwiXjQuMTIuMTNcIixcbiAgICBcIkBzbWl0aHkvdHlwZXNcIjogXCJeNC4xNC4xXCIsXG4gICAgXCJAc21pdGh5L3VybC1wYXJzZXJcIjogXCJeNC4yLjE0XCIsXG4gICAgXCJAc21pdGh5L3V0aWwtYmFzZTY0XCI6IFwiXjQuMy4yXCIsXG4gICAgXCJAc21pdGh5L3V0aWwtYm9keS1sZW5ndGgtYnJvd3NlclwiOiBcIl40LjIuMlwiLFxuICAgIFwiQHNtaXRoeS91dGlsLWJvZHktbGVuZ3RoLW5vZGVcIjogXCJeNC4yLjNcIixcbiAgICBcIkBzbWl0aHkvdXRpbC1kZWZhdWx0cy1tb2RlLWJyb3dzZXJcIjogXCJeNC4zLjQ5XCIsXG4gICAgXCJAc21pdGh5L3V0aWwtZGVmYXVsdHMtbW9kZS1ub2RlXCI6IFwiXjQuMi41NFwiLFxuICAgIFwiQHNtaXRoeS91dGlsLWVuZHBvaW50c1wiOiBcIl4zLjQuMlwiLFxuICAgIFwiQHNtaXRoeS91dGlsLW1pZGRsZXdhcmVcIjogXCJeNC4yLjE0XCIsXG4gICAgXCJAc21pdGh5L3V0aWwtcmV0cnlcIjogXCJeNC4zLjZcIixcbiAgICBcIkBzbWl0aHkvdXRpbC11dGY4XCI6IFwiXjQuMi4yXCIsXG4gICAgXCJ0c2xpYlwiOiBcIl4yLjYuMlwiXG4gIH0sXG4gIFwiZGV2RGVwZW5kZW5jaWVzXCI6IHtcbiAgICBcImNvbmN1cnJlbnRseVwiOiBcIjcuMC4wXCIsXG4gICAgXCJkb3dubGV2ZWwtZHRzXCI6IFwiMC4xMC4xXCIsXG4gICAgXCJwcmVtb3ZlXCI6IFwiNC4wLjBcIixcbiAgICBcInR5cGVzY3JpcHRcIjogXCJ+NS44LjNcIlxuICB9LFxuICBcInR5cGVzVmVyc2lvbnNcIjoge1xuICAgIFwiPDQuNVwiOiB7XG4gICAgICBcImRpc3QtdHlwZXMvKlwiOiBbXG4gICAgICAgIFwiZGlzdC10eXBlcy90czMuNC8qXCJcbiAgICAgIF1cbiAgICB9XG4gIH0sXG4gIFwiZmlsZXNcIjogW1xuICAgIFwiLi9jb2duaXRvLWlkZW50aXR5LmQudHNcIixcbiAgICBcIi4vY29nbml0by1pZGVudGl0eS5qc1wiLFxuICAgIFwiLi9zaWduaW4uZC50c1wiLFxuICAgIFwiLi9zaWduaW4uanNcIixcbiAgICBcIi4vc3NvLW9pZGMuZC50c1wiLFxuICAgIFwiLi9zc28tb2lkYy5qc1wiLFxuICAgIFwiLi9zc28uZC50c1wiLFxuICAgIFwiLi9zc28uanNcIixcbiAgICBcIi4vc3RzLmQudHNcIixcbiAgICBcIi4vc3RzLmpzXCIsXG4gICAgXCJkaXN0LSovKipcIlxuICBdLFxuICBcImJyb3dzZXJcIjoge1xuICAgIFwiLi9kaXN0LWVzL3N1Ym1vZHVsZXMvY29nbml0by1pZGVudGl0eS9ydW50aW1lQ29uZmlnXCI6IFwiLi9kaXN0LWVzL3N1Ym1vZHVsZXMvY29nbml0by1pZGVudGl0eS9ydW50aW1lQ29uZmlnLmJyb3dzZXJcIixcbiAgICBcIi4vZGlzdC1lcy9zdWJtb2R1bGVzL3NpZ25pbi9ydW50aW1lQ29uZmlnXCI6IFwiLi9kaXN0LWVzL3N1Ym1vZHVsZXMvc2lnbmluL3J1bnRpbWVDb25maWcuYnJvd3NlclwiLFxuICAgIFwiLi9kaXN0LWVzL3N1Ym1vZHVsZXMvc3NvLW9pZGMvcnVudGltZUNvbmZpZ1wiOiBcIi4vZGlzdC1lcy9zdWJtb2R1bGVzL3Nzby1vaWRjL3J1bnRpbWVDb25maWcuYnJvd3NlclwiLFxuICAgIFwiLi9kaXN0LWVzL3N1Ym1vZHVsZXMvc3NvL3J1bnRpbWVDb25maWdcIjogXCIuL2Rpc3QtZXMvc3VibW9kdWxlcy9zc28vcnVudGltZUNvbmZpZy5icm93c2VyXCIsXG4gICAgXCIuL2Rpc3QtZXMvc3VibW9kdWxlcy9zdHMvcnVudGltZUNvbmZpZ1wiOiBcIi4vZGlzdC1lcy9zdWJtb2R1bGVzL3N0cy9ydW50aW1lQ29uZmlnLmJyb3dzZXJcIlxuICB9LFxuICBcInJlYWN0LW5hdGl2ZVwiOiB7fSxcbiAgXCJob21lcGFnZVwiOiBcImh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLXNkay1qcy12My90cmVlL21haW4vcGFja2FnZXMvbmVzdGVkLWNsaWVudHNcIixcbiAgXCJyZXBvc2l0b3J5XCI6IHtcbiAgICBcInR5cGVcIjogXCJnaXRcIixcbiAgICBcInVybFwiOiBcImh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLXNkay1qcy12My5naXRcIixcbiAgICBcImRpcmVjdG9yeVwiOiBcInBhY2thZ2VzL25lc3RlZC1jbGllbnRzXCJcbiAgfSxcbiAgXCJleHBvcnRzXCI6IHtcbiAgICBcIi4vcGFja2FnZS5qc29uXCI6IFwiLi9wYWNrYWdlLmpzb25cIixcbiAgICBcIi4vc3NvLW9pZGNcIjoge1xuICAgICAgXCJ0eXBlc1wiOiBcIi4vZGlzdC10eXBlcy9zdWJtb2R1bGVzL3Nzby1vaWRjL2luZGV4LmQudHNcIixcbiAgICAgIFwibW9kdWxlXCI6IFwiLi9kaXN0LWVzL3N1Ym1vZHVsZXMvc3NvLW9pZGMvaW5kZXguanNcIixcbiAgICAgIFwibm9kZVwiOiBcIi4vZGlzdC1janMvc3VibW9kdWxlcy9zc28tb2lkYy9pbmRleC5qc1wiLFxuICAgICAgXCJpbXBvcnRcIjogXCIuL2Rpc3QtZXMvc3VibW9kdWxlcy9zc28tb2lkYy9pbmRleC5qc1wiLFxuICAgICAgXCJyZXF1aXJlXCI6IFwiLi9kaXN0LWNqcy9zdWJtb2R1bGVzL3Nzby1vaWRjL2luZGV4LmpzXCJcbiAgICB9LFxuICAgIFwiLi9zdHNcIjoge1xuICAgICAgXCJ0eXBlc1wiOiBcIi4vZGlzdC10eXBlcy9zdWJtb2R1bGVzL3N0cy9pbmRleC5kLnRzXCIsXG4gICAgICBcIm1vZHVsZVwiOiBcIi4vZGlzdC1lcy9zdWJtb2R1bGVzL3N0cy9pbmRleC5qc1wiLFxuICAgICAgXCJub2RlXCI6IFwiLi9kaXN0LWNqcy9zdWJtb2R1bGVzL3N0cy9pbmRleC5qc1wiLFxuICAgICAgXCJpbXBvcnRcIjogXCIuL2Rpc3QtZXMvc3VibW9kdWxlcy9zdHMvaW5kZXguanNcIixcbiAgICAgIFwicmVxdWlyZVwiOiBcIi4vZGlzdC1janMvc3VibW9kdWxlcy9zdHMvaW5kZXguanNcIlxuICAgIH0sXG4gICAgXCIuL3NpZ25pblwiOiB7XG4gICAgICBcInR5cGVzXCI6IFwiLi9kaXN0LXR5cGVzL3N1Ym1vZHVsZXMvc2lnbmluL2luZGV4LmQudHNcIixcbiAgICAgIFwibW9kdWxlXCI6IFwiLi9kaXN0LWVzL3N1Ym1vZHVsZXMvc2lnbmluL2luZGV4LmpzXCIsXG4gICAgICBcIm5vZGVcIjogXCIuL2Rpc3QtY2pzL3N1Ym1vZHVsZXMvc2lnbmluL2luZGV4LmpzXCIsXG4gICAgICBcImltcG9ydFwiOiBcIi4vZGlzdC1lcy9zdWJtb2R1bGVzL3NpZ25pbi9pbmRleC5qc1wiLFxuICAgICAgXCJyZXF1aXJlXCI6IFwiLi9kaXN0LWNqcy9zdWJtb2R1bGVzL3NpZ25pbi9pbmRleC5qc1wiXG4gICAgfSxcbiAgICBcIi4vY29nbml0by1pZGVudGl0eVwiOiB7XG4gICAgICBcInR5cGVzXCI6IFwiLi9kaXN0LXR5cGVzL3N1Ym1vZHVsZXMvY29nbml0by1pZGVudGl0eS9pbmRleC5kLnRzXCIsXG4gICAgICBcIm1vZHVsZVwiOiBcIi4vZGlzdC1lcy9zdWJtb2R1bGVzL2NvZ25pdG8taWRlbnRpdHkvaW5kZXguanNcIixcbiAgICAgIFwibm9kZVwiOiBcIi4vZGlzdC1janMvc3VibW9kdWxlcy9jb2duaXRvLWlkZW50aXR5L2luZGV4LmpzXCIsXG4gICAgICBcImltcG9ydFwiOiBcIi4vZGlzdC1lcy9zdWJtb2R1bGVzL2NvZ25pdG8taWRlbnRpdHkvaW5kZXguanNcIixcbiAgICAgIFwicmVxdWlyZVwiOiBcIi4vZGlzdC1janMvc3VibW9kdWxlcy9jb2duaXRvLWlkZW50aXR5L2luZGV4LmpzXCJcbiAgICB9LFxuICAgIFwiLi9zc29cIjoge1xuICAgICAgXCJ0eXBlc1wiOiBcIi4vZGlzdC10eXBlcy9zdWJtb2R1bGVzL3Nzby9pbmRleC5kLnRzXCIsXG4gICAgICBcIm1vZHVsZVwiOiBcIi4vZGlzdC1lcy9zdWJtb2R1bGVzL3Nzby9pbmRleC5qc1wiLFxuICAgICAgXCJub2RlXCI6IFwiLi9kaXN0LWNqcy9zdWJtb2R1bGVzL3Nzby9pbmRleC5qc1wiLFxuICAgICAgXCJpbXBvcnRcIjogXCIuL2Rpc3QtZXMvc3VibW9kdWxlcy9zc28vaW5kZXguanNcIixcbiAgICAgIFwicmVxdWlyZVwiOiBcIi4vZGlzdC1janMvc3VibW9kdWxlcy9zc28vaW5kZXguanNcIlxuICAgIH1cbiAgfVxufVxuIiwgIid1c2Ugc3RyaWN0JztcblxudmFyIG5vZGVfb3MgPSByZXF1aXJlKCdub2RlOm9zJyk7XG52YXIgbm9kZV9wcm9jZXNzID0gcmVxdWlyZSgnbm9kZTpwcm9jZXNzJyk7XG52YXIgdXRpbENvbmZpZ1Byb3ZpZGVyID0gcmVxdWlyZSgnQHNtaXRoeS91dGlsLWNvbmZpZy1wcm92aWRlcicpO1xudmFyIHByb21pc2VzID0gcmVxdWlyZSgnbm9kZTpmcy9wcm9taXNlcycpO1xudmFyIG5vZGVfcGF0aCA9IHJlcXVpcmUoJ25vZGU6cGF0aCcpO1xudmFyIG1pZGRsZXdhcmVVc2VyQWdlbnQgPSByZXF1aXJlKCdAYXdzLXNkay9taWRkbGV3YXJlLXVzZXItYWdlbnQnKTtcblxuY29uc3QgZ2V0UnVudGltZVVzZXJBZ2VudFBhaXIgPSAoKSA9PiB7XG4gICAgY29uc3QgcnVudGltZXNUb0NoZWNrID0gW1wiZGVub1wiLCBcImJ1blwiLCBcImxscnRcIl07XG4gICAgZm9yIChjb25zdCBydW50aW1lIG9mIHJ1bnRpbWVzVG9DaGVjaykge1xuICAgICAgICBpZiAobm9kZV9wcm9jZXNzLnZlcnNpb25zW3J1bnRpbWVdKSB7XG4gICAgICAgICAgICByZXR1cm4gW2BtZC8ke3J1bnRpbWV9YCwgbm9kZV9wcm9jZXNzLnZlcnNpb25zW3J1bnRpbWVdXTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gW1wibWQvbm9kZWpzXCIsIG5vZGVfcHJvY2Vzcy52ZXJzaW9ucy5ub2RlXTtcbn07XG5cbmNvbnN0IGdldE5vZGVNb2R1bGVzUGFyZW50RGlycyA9IChkaXJuYW1lKSA9PiB7XG4gICAgY29uc3QgY3dkID0gcHJvY2Vzcy5jd2QoKTtcbiAgICBpZiAoIWRpcm5hbWUpIHtcbiAgICAgICAgcmV0dXJuIFtjd2RdO1xuICAgIH1cbiAgICBjb25zdCBub3JtYWxpemVkUGF0aCA9IG5vZGVfcGF0aC5ub3JtYWxpemUoZGlybmFtZSk7XG4gICAgY29uc3QgcGFydHMgPSBub3JtYWxpemVkUGF0aC5zcGxpdChub2RlX3BhdGguc2VwKTtcbiAgICBjb25zdCBub2RlTW9kdWxlc0luZGV4ID0gcGFydHMuaW5kZXhPZihcIm5vZGVfbW9kdWxlc1wiKTtcbiAgICBjb25zdCBwYXJlbnREaXIgPSBub2RlTW9kdWxlc0luZGV4ICE9PSAtMSA/IHBhcnRzLnNsaWNlKDAsIG5vZGVNb2R1bGVzSW5kZXgpLmpvaW4obm9kZV9wYXRoLnNlcCkgOiBub3JtYWxpemVkUGF0aDtcbiAgICBpZiAoY3dkID09PSBwYXJlbnREaXIpIHtcbiAgICAgICAgcmV0dXJuIFtjd2RdO1xuICAgIH1cbiAgICByZXR1cm4gW3BhcmVudERpciwgY3dkXTtcbn07XG5cbmNvbnN0IFNFTVZFUl9SRUdFWCA9IC9eKDB8WzEtOV1cXGQqKVxcLigwfFsxLTldXFxkKilcXC4oMHxbMS05XVxcZCopKD86LSgoPzowfFsxLTldXFxkKnxcXGQqW2EtekEtWi1dWzAtOWEtekEtWi1dKikoPzpcXC4oPzowfFsxLTldXFxkKnxcXGQqW2EtekEtWi1dWzAtOWEtekEtWi1dKikpKikpPyg/OlxcK1swLTlhLXpBLVotXSsoPzpcXC5bMC05YS16QS1aLV0rKSopPyQvO1xuY29uc3QgZ2V0U2FuaXRpemVkVHlwZVNjcmlwdFZlcnNpb24gPSAodmVyc2lvbiA9IFwiXCIpID0+IHtcbiAgICBjb25zdCBtYXRjaCA9IHZlcnNpb24ubWF0Y2goU0VNVkVSX1JFR0VYKTtcbiAgICBpZiAoIW1hdGNoKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGNvbnN0IFttYWpvciwgbWlub3IsIHBhdGNoLCBwcmVyZWxlYXNlXSA9IFttYXRjaFsxXSwgbWF0Y2hbMl0sIG1hdGNoWzNdLCBtYXRjaFs0XV07XG4gICAgcmV0dXJuIHByZXJlbGVhc2UgPyBgJHttYWpvcn0uJHttaW5vcn0uJHtwYXRjaH0tJHtwcmVyZWxlYXNlfWAgOiBgJHttYWpvcn0uJHttaW5vcn0uJHtwYXRjaH1gO1xufTtcblxuY29uc3QgQUxMT1dFRF9QUkVGSVhFUyA9IFtcIl5cIiwgXCJ+XCIsIFwiPj1cIiwgXCI8PVwiLCBcIj5cIiwgXCI8XCJdO1xuY29uc3QgQUxMT1dFRF9ESVNUX1RBR1MgPSBbXCJsYXRlc3RcIiwgXCJiZXRhXCIsIFwiZGV2XCIsIFwicmNcIiwgXCJpbnNpZGVyc1wiLCBcIm5leHRcIl07XG5jb25zdCBnZXRTYW5pdGl6ZWREZXZUeXBlU2NyaXB0VmVyc2lvbiA9ICh2ZXJzaW9uID0gXCJcIikgPT4ge1xuICAgIGlmIChBTExPV0VEX0RJU1RfVEFHUy5pbmNsdWRlcyh2ZXJzaW9uKSkge1xuICAgICAgICByZXR1cm4gdmVyc2lvbjtcbiAgICB9XG4gICAgY29uc3QgcHJlZml4ID0gQUxMT1dFRF9QUkVGSVhFUy5maW5kKChwKSA9PiB2ZXJzaW9uLnN0YXJ0c1dpdGgocCkpID8/IFwiXCI7XG4gICAgY29uc3Qgc2FuaXRpemVkVHlwZVNjcmlwdFZlcnNpb24gPSBnZXRTYW5pdGl6ZWRUeXBlU2NyaXB0VmVyc2lvbih2ZXJzaW9uLnNsaWNlKHByZWZpeC5sZW5ndGgpKTtcbiAgICBpZiAoIXNhbml0aXplZFR5cGVTY3JpcHRWZXJzaW9uKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHJldHVybiBgJHtwcmVmaXh9JHtzYW5pdGl6ZWRUeXBlU2NyaXB0VmVyc2lvbn1gO1xufTtcblxubGV0IHRzY1ZlcnNpb247XG5jb25zdCBUU19QQUNLQUdFX0pTT04gPSBub2RlX3BhdGguam9pbihcIm5vZGVfbW9kdWxlc1wiLCBcInR5cGVzY3JpcHRcIiwgXCJwYWNrYWdlLmpzb25cIik7XG5jb25zdCBnZXRUeXBlU2NyaXB0VXNlckFnZW50UGFpciA9IGFzeW5jICgpID0+IHtcbiAgICBpZiAodHNjVmVyc2lvbiA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBlbHNlIGlmICh0eXBlb2YgdHNjVmVyc2lvbiA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICByZXR1cm4gW1wibWQvdHNjXCIsIHRzY1ZlcnNpb25dO1xuICAgIH1cbiAgICBsZXQgaXNUeXBlU2NyaXB0RGV0ZWN0aW9uRGlzYWJsZWQgPSBmYWxzZTtcbiAgICB0cnkge1xuICAgICAgICBpc1R5cGVTY3JpcHREZXRlY3Rpb25EaXNhYmxlZCA9XG4gICAgICAgICAgICB1dGlsQ29uZmlnUHJvdmlkZXIuYm9vbGVhblNlbGVjdG9yKHByb2Nlc3MuZW52LCBcIkFXU19TREtfSlNfVFlQRVNDUklQVF9ERVRFQ1RJT05fRElTQUJMRURcIiwgdXRpbENvbmZpZ1Byb3ZpZGVyLlNlbGVjdG9yVHlwZS5FTlYpIHx8IGZhbHNlO1xuICAgIH1cbiAgICBjYXRjaCB7IH1cbiAgICBpZiAoaXNUeXBlU2NyaXB0RGV0ZWN0aW9uRGlzYWJsZWQpIHtcbiAgICAgICAgdHNjVmVyc2lvbiA9IG51bGw7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGNvbnN0IGRpcm5hbWUgPSB0eXBlb2YgX19kaXJuYW1lICE9PSBcInVuZGVmaW5lZFwiID8gX19kaXJuYW1lIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IG5vZGVNb2R1bGVzUGFyZW50RGlycyA9IGdldE5vZGVNb2R1bGVzUGFyZW50RGlycyhkaXJuYW1lKTtcbiAgICBsZXQgdmVyc2lvbkZyb21BcHA7XG4gICAgZm9yIChjb25zdCBub2RlTW9kdWxlc1BhcmVudERpciBvZiBub2RlTW9kdWxlc1BhcmVudERpcnMpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGFwcFBhY2thZ2VKc29uUGF0aCA9IG5vZGVfcGF0aC5qb2luKG5vZGVNb2R1bGVzUGFyZW50RGlyLCBcInBhY2thZ2UuanNvblwiKTtcbiAgICAgICAgICAgIGNvbnN0IHBhY2thZ2VKc29uID0gYXdhaXQgcHJvbWlzZXMucmVhZEZpbGUoYXBwUGFja2FnZUpzb25QYXRoLCBcInV0Zi04XCIpO1xuICAgICAgICAgICAgY29uc3QgeyBkZXBlbmRlbmNpZXMsIGRldkRlcGVuZGVuY2llcyB9ID0gSlNPTi5wYXJzZShwYWNrYWdlSnNvbik7XG4gICAgICAgICAgICBjb25zdCB2ZXJzaW9uID0gZGV2RGVwZW5kZW5jaWVzPy50eXBlc2NyaXB0ID8/IGRlcGVuZGVuY2llcz8udHlwZXNjcmlwdDtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdmVyc2lvbiAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmVyc2lvbkZyb21BcHAgPSB2ZXJzaW9uO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2gge1xuICAgICAgICB9XG4gICAgfVxuICAgIGlmICghdmVyc2lvbkZyb21BcHApIHtcbiAgICAgICAgdHNjVmVyc2lvbiA9IG51bGw7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGxldCB2ZXJzaW9uRnJvbU5vZGVNb2R1bGVzO1xuICAgIGZvciAoY29uc3Qgbm9kZU1vZHVsZXNQYXJlbnREaXIgb2Ygbm9kZU1vZHVsZXNQYXJlbnREaXJzKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCB0c1BhY2thZ2VKc29uUGF0aCA9IG5vZGVfcGF0aC5qb2luKG5vZGVNb2R1bGVzUGFyZW50RGlyLCBUU19QQUNLQUdFX0pTT04pO1xuICAgICAgICAgICAgY29uc3QgcGFja2FnZUpzb24gPSBhd2FpdCBwcm9taXNlcy5yZWFkRmlsZSh0c1BhY2thZ2VKc29uUGF0aCwgXCJ1dGYtOFwiKTtcbiAgICAgICAgICAgIGNvbnN0IHsgdmVyc2lvbiB9ID0gSlNPTi5wYXJzZShwYWNrYWdlSnNvbik7XG4gICAgICAgICAgICBjb25zdCBzYW5pdGl6ZWRWZXJzaW9uID0gZ2V0U2FuaXRpemVkVHlwZVNjcmlwdFZlcnNpb24odmVyc2lvbik7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHNhbml0aXplZFZlcnNpb24gIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZlcnNpb25Gcm9tTm9kZU1vZHVsZXMgPSBzYW5pdGl6ZWRWZXJzaW9uO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2gge1xuICAgICAgICB9XG4gICAgfVxuICAgIGlmICh2ZXJzaW9uRnJvbU5vZGVNb2R1bGVzKSB7XG4gICAgICAgIHRzY1ZlcnNpb24gPSB2ZXJzaW9uRnJvbU5vZGVNb2R1bGVzO1xuICAgICAgICByZXR1cm4gW1wibWQvdHNjXCIsIHRzY1ZlcnNpb25dO1xuICAgIH1cbiAgICBjb25zdCBzYW5pdGl6ZWRWZXJzaW9uID0gZ2V0U2FuaXRpemVkRGV2VHlwZVNjcmlwdFZlcnNpb24odmVyc2lvbkZyb21BcHApO1xuICAgIGlmICh0eXBlb2Ygc2FuaXRpemVkVmVyc2lvbiAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICB0c2NWZXJzaW9uID0gbnVsbDtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgdHNjVmVyc2lvbiA9IGBkZXZfJHtzYW5pdGl6ZWRWZXJzaW9ufWA7XG4gICAgcmV0dXJuIFtcIm1kL3RzY1wiLCB0c2NWZXJzaW9uXTtcbn07XG5cbmNvbnN0IGNydEF2YWlsYWJpbGl0eSA9IHtcbiAgICBpc0NydEF2YWlsYWJsZTogZmFsc2UsXG59O1xuXG5jb25zdCBpc0NydEF2YWlsYWJsZSA9ICgpID0+IHtcbiAgICBpZiAoY3J0QXZhaWxhYmlsaXR5LmlzQ3J0QXZhaWxhYmxlKSB7XG4gICAgICAgIHJldHVybiBbXCJtZC9jcnQtYXZhaWxcIl07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xufTtcblxuY29uc3QgY3JlYXRlRGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyID0gKHsgc2VydmljZUlkLCBjbGllbnRWZXJzaW9uIH0pID0+IHtcbiAgICBjb25zdCBydW50aW1lVXNlckFnZW50UGFpciA9IGdldFJ1bnRpbWVVc2VyQWdlbnRQYWlyKCk7XG4gICAgcmV0dXJuIGFzeW5jIChjb25maWcpID0+IHtcbiAgICAgICAgY29uc3Qgc2VjdGlvbnMgPSBbXG4gICAgICAgICAgICBbXCJhd3Mtc2RrLWpzXCIsIGNsaWVudFZlcnNpb25dLFxuICAgICAgICAgICAgW1widWFcIiwgXCIyLjFcIl0sXG4gICAgICAgICAgICBbYG9zLyR7bm9kZV9vcy5wbGF0Zm9ybSgpfWAsIG5vZGVfb3MucmVsZWFzZSgpXSxcbiAgICAgICAgICAgIFtcImxhbmcvanNcIl0sXG4gICAgICAgICAgICBydW50aW1lVXNlckFnZW50UGFpcixcbiAgICAgICAgXTtcbiAgICAgICAgY29uc3QgdHlwZXNjcmlwdFVzZXJBZ2VudFBhaXIgPSBhd2FpdCBnZXRUeXBlU2NyaXB0VXNlckFnZW50UGFpcigpO1xuICAgICAgICBpZiAodHlwZXNjcmlwdFVzZXJBZ2VudFBhaXIpIHtcbiAgICAgICAgICAgIHNlY3Rpb25zLnB1c2godHlwZXNjcmlwdFVzZXJBZ2VudFBhaXIpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNydEF2YWlsYWJsZSA9IGlzQ3J0QXZhaWxhYmxlKCk7XG4gICAgICAgIGlmIChjcnRBdmFpbGFibGUpIHtcbiAgICAgICAgICAgIHNlY3Rpb25zLnB1c2goY3J0QXZhaWxhYmxlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc2VydmljZUlkKSB7XG4gICAgICAgICAgICBzZWN0aW9ucy5wdXNoKFtgYXBpLyR7c2VydmljZUlkfWAsIGNsaWVudFZlcnNpb25dKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobm9kZV9wcm9jZXNzLmVudi5BV1NfRVhFQ1VUSU9OX0VOVikge1xuICAgICAgICAgICAgc2VjdGlvbnMucHVzaChbYGV4ZWMtZW52LyR7bm9kZV9wcm9jZXNzLmVudi5BV1NfRVhFQ1VUSU9OX0VOVn1gXSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYXBwSWQgPSBhd2FpdCBjb25maWc/LnVzZXJBZ2VudEFwcElkPy4oKTtcbiAgICAgICAgY29uc3QgcmVzb2x2ZWRVc2VyQWdlbnQgPSBhcHBJZCA/IFsuLi5zZWN0aW9ucywgW2BhcHAvJHthcHBJZH1gXV0gOiBbLi4uc2VjdGlvbnNdO1xuICAgICAgICByZXR1cm4gcmVzb2x2ZWRVc2VyQWdlbnQ7XG4gICAgfTtcbn07XG5jb25zdCBkZWZhdWx0VXNlckFnZW50ID0gY3JlYXRlRGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyO1xuXG5jb25zdCBVQV9BUFBfSURfRU5WX05BTUUgPSBcIkFXU19TREtfVUFfQVBQX0lEXCI7XG5jb25zdCBVQV9BUFBfSURfSU5JX05BTUUgPSBcInNka191YV9hcHBfaWRcIjtcbmNvbnN0IFVBX0FQUF9JRF9JTklfTkFNRV9ERVBSRUNBVEVEID0gXCJzZGstdWEtYXBwLWlkXCI7XG5jb25zdCBOT0RFX0FQUF9JRF9DT05GSUdfT1BUSU9OUyA9IHtcbiAgICBlbnZpcm9ubWVudFZhcmlhYmxlU2VsZWN0b3I6IChlbnYpID0+IGVudltVQV9BUFBfSURfRU5WX05BTUVdLFxuICAgIGNvbmZpZ0ZpbGVTZWxlY3RvcjogKHByb2ZpbGUpID0+IHByb2ZpbGVbVUFfQVBQX0lEX0lOSV9OQU1FXSA/PyBwcm9maWxlW1VBX0FQUF9JRF9JTklfTkFNRV9ERVBSRUNBVEVEXSxcbiAgICBkZWZhdWx0OiBtaWRkbGV3YXJlVXNlckFnZW50LkRFRkFVTFRfVUFfQVBQX0lELFxufTtcblxuZXhwb3J0cy5OT0RFX0FQUF9JRF9DT05GSUdfT1BUSU9OUyA9IE5PREVfQVBQX0lEX0NPTkZJR19PUFRJT05TO1xuZXhwb3J0cy5VQV9BUFBfSURfRU5WX05BTUUgPSBVQV9BUFBfSURfRU5WX05BTUU7XG5leHBvcnRzLlVBX0FQUF9JRF9JTklfTkFNRSA9IFVBX0FQUF9JRF9JTklfTkFNRTtcbmV4cG9ydHMuY3JlYXRlRGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyID0gY3JlYXRlRGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyO1xuZXhwb3J0cy5jcnRBdmFpbGFiaWxpdHkgPSBjcnRBdmFpbGFiaWxpdHk7XG5leHBvcnRzLmRlZmF1bHRVc2VyQWdlbnQgPSBkZWZhdWx0VXNlckFnZW50O1xuIiwgImltcG9ydCB7IE5vcm1hbGl6ZWRTY2hlbWEsIFR5cGVSZWdpc3RyeSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2NoZW1hXCI7XG5pbXBvcnQgeyBkZWNvcmF0ZVNlcnZpY2VFeGNlcHRpb24gfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5leHBvcnQgY2xhc3MgUHJvdG9jb2xMaWIge1xuICAgIHF1ZXJ5Q29tcGF0O1xuICAgIGVycm9yUmVnaXN0cnk7XG4gICAgY29uc3RydWN0b3IocXVlcnlDb21wYXQgPSBmYWxzZSkge1xuICAgICAgICB0aGlzLnF1ZXJ5Q29tcGF0ID0gcXVlcnlDb21wYXQ7XG4gICAgfVxuICAgIHJlc29sdmVSZXN0Q29udGVudFR5cGUoZGVmYXVsdENvbnRlbnRUeXBlLCBpbnB1dFNjaGVtYSkge1xuICAgICAgICBjb25zdCBtZW1iZXJzID0gaW5wdXRTY2hlbWEuZ2V0TWVtYmVyU2NoZW1hcygpO1xuICAgICAgICBjb25zdCBodHRwUGF5bG9hZE1lbWJlciA9IE9iamVjdC52YWx1ZXMobWVtYmVycykuZmluZCgobSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuICEhbS5nZXRNZXJnZWRUcmFpdHMoKS5odHRwUGF5bG9hZDtcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChodHRwUGF5bG9hZE1lbWJlcikge1xuICAgICAgICAgICAgY29uc3QgbWVkaWFUeXBlID0gaHR0cFBheWxvYWRNZW1iZXIuZ2V0TWVyZ2VkVHJhaXRzKCkubWVkaWFUeXBlO1xuICAgICAgICAgICAgaWYgKG1lZGlhVHlwZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBtZWRpYVR5cGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChodHRwUGF5bG9hZE1lbWJlci5pc1N0cmluZ1NjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwidGV4dC9wbGFpblwiO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoaHR0cFBheWxvYWRNZW1iZXIuaXNCbG9iU2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW1cIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBkZWZhdWx0Q29udGVudFR5cGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoIWlucHV0U2NoZW1hLmlzVW5pdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICBjb25zdCBoYXNCb2R5ID0gT2JqZWN0LnZhbHVlcyhtZW1iZXJzKS5maW5kKChtKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBodHRwUXVlcnksIGh0dHBRdWVyeVBhcmFtcywgaHR0cEhlYWRlciwgaHR0cExhYmVsLCBodHRwUHJlZml4SGVhZGVycyB9ID0gbS5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBub1ByZWZpeEhlYWRlcnMgPSBodHRwUHJlZml4SGVhZGVycyA9PT0gdm9pZCAwO1xuICAgICAgICAgICAgICAgIHJldHVybiAhaHR0cFF1ZXJ5ICYmICFodHRwUXVlcnlQYXJhbXMgJiYgIWh0dHBIZWFkZXIgJiYgIWh0dHBMYWJlbCAmJiBub1ByZWZpeEhlYWRlcnM7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmIChoYXNCb2R5KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRDb250ZW50VHlwZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBhc3luYyBnZXRFcnJvclNjaGVtYU9yVGhyb3dCYXNlRXhjZXB0aW9uKGVycm9ySWRlbnRpZmllciwgZGVmYXVsdE5hbWVzcGFjZSwgcmVzcG9uc2UsIGRhdGFPYmplY3QsIG1ldGFkYXRhLCBnZXRFcnJvclNjaGVtYSkge1xuICAgICAgICBsZXQgZXJyb3JOYW1lID0gZXJyb3JJZGVudGlmaWVyO1xuICAgICAgICBpZiAoZXJyb3JJZGVudGlmaWVyLmluY2x1ZGVzKFwiI1wiKSkge1xuICAgICAgICAgICAgWywgZXJyb3JOYW1lXSA9IGVycm9ySWRlbnRpZmllci5zcGxpdChcIiNcIik7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZXJyb3JNZXRhZGF0YSA9IHtcbiAgICAgICAgICAgICRtZXRhZGF0YTogbWV0YWRhdGEsXG4gICAgICAgICAgICAkZmF1bHQ6IHJlc3BvbnNlLnN0YXR1c0NvZGUgPCA1MDAgPyBcImNsaWVudFwiIDogXCJzZXJ2ZXJcIixcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKCF0aGlzLmVycm9yUmVnaXN0cnkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkBhd3Mtc2RrL2NvcmUvcHJvdG9jb2xzIC0gZXJyb3IgaGFuZGxlciBub3QgaW5pdGlhbGl6ZWQuXCIpO1xuICAgICAgICB9XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBlcnJvclNjaGVtYSA9IGdldEVycm9yU2NoZW1hPy4odGhpcy5lcnJvclJlZ2lzdHJ5LCBlcnJvck5hbWUpID8/XG4gICAgICAgICAgICAgICAgdGhpcy5lcnJvclJlZ2lzdHJ5LmdldFNjaGVtYShlcnJvcklkZW50aWZpZXIpO1xuICAgICAgICAgICAgcmV0dXJuIHsgZXJyb3JTY2hlbWEsIGVycm9yTWV0YWRhdGEgfTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgZGF0YU9iamVjdC5tZXNzYWdlID0gZGF0YU9iamVjdC5tZXNzYWdlID8/IGRhdGFPYmplY3QuTWVzc2FnZSA/PyBcIlVua25vd25FcnJvclwiO1xuICAgICAgICAgICAgY29uc3Qgc3ludGhldGljID0gdGhpcy5lcnJvclJlZ2lzdHJ5O1xuICAgICAgICAgICAgY29uc3QgYmFzZUV4Y2VwdGlvblNjaGVtYSA9IHN5bnRoZXRpYy5nZXRCYXNlRXhjZXB0aW9uKCk7XG4gICAgICAgICAgICBpZiAoYmFzZUV4Y2VwdGlvblNjaGVtYSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IEVycm9yQ3RvciA9IHN5bnRoZXRpYy5nZXRFcnJvckN0b3IoYmFzZUV4Y2VwdGlvblNjaGVtYSkgPz8gRXJyb3I7XG4gICAgICAgICAgICAgICAgdGhyb3cgdGhpcy5kZWNvcmF0ZVNlcnZpY2VFeGNlcHRpb24oT2JqZWN0LmFzc2lnbihuZXcgRXJyb3JDdG9yKHsgbmFtZTogZXJyb3JOYW1lIH0pLCBlcnJvck1ldGFkYXRhKSwgZGF0YU9iamVjdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBkID0gZGF0YU9iamVjdDtcbiAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBkPy5tZXNzYWdlID8/IGQ/Lk1lc3NhZ2UgPz8gZD8uRXJyb3I/Lk1lc3NhZ2UgPz8gZD8uRXJyb3I/Lm1lc3NhZ2U7XG4gICAgICAgICAgICB0aHJvdyB0aGlzLmRlY29yYXRlU2VydmljZUV4Y2VwdGlvbihPYmplY3QuYXNzaWduKG5ldyBFcnJvcihtZXNzYWdlKSwge1xuICAgICAgICAgICAgICAgIG5hbWU6IGVycm9yTmFtZSxcbiAgICAgICAgICAgIH0sIGVycm9yTWV0YWRhdGEpLCBkYXRhT2JqZWN0KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjb21wb3NlKGNvbXBvc2l0ZSwgZXJyb3JJZGVudGlmaWVyLCBkZWZhdWx0TmFtZXNwYWNlKSB7XG4gICAgICAgIGxldCBuYW1lc3BhY2UgPSBkZWZhdWx0TmFtZXNwYWNlO1xuICAgICAgICBpZiAoZXJyb3JJZGVudGlmaWVyLmluY2x1ZGVzKFwiI1wiKSkge1xuICAgICAgICAgICAgW25hbWVzcGFjZV0gPSBlcnJvcklkZW50aWZpZXIuc3BsaXQoXCIjXCIpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHN0YXRpY1JlZ2lzdHJ5ID0gVHlwZVJlZ2lzdHJ5LmZvcihuYW1lc3BhY2UpO1xuICAgICAgICBjb25zdCBkZWZhdWx0U3ludGhldGljUmVnaXN0cnkgPSBUeXBlUmVnaXN0cnkuZm9yKFwic21pdGh5LnRzLnNkay5zeW50aGV0aWMuXCIgKyBkZWZhdWx0TmFtZXNwYWNlKTtcbiAgICAgICAgY29tcG9zaXRlLmNvcHlGcm9tKHN0YXRpY1JlZ2lzdHJ5KTtcbiAgICAgICAgY29tcG9zaXRlLmNvcHlGcm9tKGRlZmF1bHRTeW50aGV0aWNSZWdpc3RyeSk7XG4gICAgICAgIHRoaXMuZXJyb3JSZWdpc3RyeSA9IGNvbXBvc2l0ZTtcbiAgICB9XG4gICAgZGVjb3JhdGVTZXJ2aWNlRXhjZXB0aW9uKGV4Y2VwdGlvbiwgYWRkaXRpb25zID0ge30pIHtcbiAgICAgICAgaWYgKHRoaXMucXVlcnlDb21wYXQpIHtcbiAgICAgICAgICAgIGNvbnN0IG1zZyA9IGV4Y2VwdGlvbi5NZXNzYWdlID8/IGFkZGl0aW9ucy5NZXNzYWdlO1xuICAgICAgICAgICAgY29uc3QgZXJyb3IgPSBkZWNvcmF0ZVNlcnZpY2VFeGNlcHRpb24oZXhjZXB0aW9uLCBhZGRpdGlvbnMpO1xuICAgICAgICAgICAgaWYgKG1zZykge1xuICAgICAgICAgICAgICAgIGVycm9yLm1lc3NhZ2UgPSBtc2c7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBlcnJvck9iaiA9IGVycm9yLkVycm9yID8/IHt9O1xuICAgICAgICAgICAgZXJyb3JPYmouVHlwZSA9IGVycm9yLkVycm9yPy5UeXBlO1xuICAgICAgICAgICAgZXJyb3JPYmouQ29kZSA9IGVycm9yLkVycm9yPy5Db2RlO1xuICAgICAgICAgICAgZXJyb3JPYmouTWVzc2FnZSA9IGVycm9yLkVycm9yPy5tZXNzYWdlID8/IGVycm9yLkVycm9yPy5NZXNzYWdlID8/IG1zZztcbiAgICAgICAgICAgIGVycm9yLkVycm9yID0gZXJyb3JPYmo7XG4gICAgICAgICAgICBjb25zdCByZXFJZCA9IGVycm9yLiRtZXRhZGF0YS5yZXF1ZXN0SWQ7XG4gICAgICAgICAgICBpZiAocmVxSWQpIHtcbiAgICAgICAgICAgICAgICBlcnJvci5SZXF1ZXN0SWQgPSByZXFJZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBlcnJvcjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGVjb3JhdGVTZXJ2aWNlRXhjZXB0aW9uKGV4Y2VwdGlvbiwgYWRkaXRpb25zKTtcbiAgICB9XG4gICAgc2V0UXVlcnlDb21wYXRFcnJvcihvdXRwdXQsIHJlc3BvbnNlKSB7XG4gICAgICAgIGNvbnN0IHF1ZXJ5RXJyb3JIZWFkZXIgPSByZXNwb25zZS5oZWFkZXJzPy5bXCJ4LWFtem4tcXVlcnktZXJyb3JcIl07XG4gICAgICAgIGlmIChvdXRwdXQgIT09IHVuZGVmaW5lZCAmJiBxdWVyeUVycm9ySGVhZGVyICE9IG51bGwpIHtcbiAgICAgICAgICAgIGNvbnN0IFtDb2RlLCBUeXBlXSA9IHF1ZXJ5RXJyb3JIZWFkZXIuc3BsaXQoXCI7XCIpO1xuICAgICAgICAgICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKG91dHB1dCk7XG4gICAgICAgICAgICBjb25zdCBFcnJvciA9IHtcbiAgICAgICAgICAgICAgICBDb2RlLFxuICAgICAgICAgICAgICAgIFR5cGUsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgb3V0cHV0LkNvZGUgPSBDb2RlO1xuICAgICAgICAgICAgb3V0cHV0LlR5cGUgPSBUeXBlO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgayA9IGtleXNbaV07XG4gICAgICAgICAgICAgICAgRXJyb3JbayA9PT0gXCJtZXNzYWdlXCIgPyBcIk1lc3NhZ2VcIiA6IGtdID0gb3V0cHV0W2tdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVsZXRlIEVycm9yLl9fdHlwZTtcbiAgICAgICAgICAgIG91dHB1dC5FcnJvciA9IEVycm9yO1xuICAgICAgICB9XG4gICAgfVxuICAgIHF1ZXJ5Q29tcGF0T3V0cHV0KHF1ZXJ5Q29tcGF0RXJyb3JEYXRhLCBlcnJvckRhdGEpIHtcbiAgICAgICAgaWYgKHF1ZXJ5Q29tcGF0RXJyb3JEYXRhLkVycm9yKSB7XG4gICAgICAgICAgICBlcnJvckRhdGEuRXJyb3IgPSBxdWVyeUNvbXBhdEVycm9yRGF0YS5FcnJvcjtcbiAgICAgICAgfVxuICAgICAgICBpZiAocXVlcnlDb21wYXRFcnJvckRhdGEuVHlwZSkge1xuICAgICAgICAgICAgZXJyb3JEYXRhLlR5cGUgPSBxdWVyeUNvbXBhdEVycm9yRGF0YS5UeXBlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChxdWVyeUNvbXBhdEVycm9yRGF0YS5Db2RlKSB7XG4gICAgICAgICAgICBlcnJvckRhdGEuQ29kZSA9IHF1ZXJ5Q29tcGF0RXJyb3JEYXRhLkNvZGU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZmluZFF1ZXJ5Q29tcGF0aWJsZUVycm9yKHJlZ2lzdHJ5LCBlcnJvck5hbWUpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiByZWdpc3RyeS5nZXRTY2hlbWEoZXJyb3JOYW1lKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgcmV0dXJuIHJlZ2lzdHJ5LmZpbmQoKHNjaGVtYSkgPT4gTm9ybWFsaXplZFNjaGVtYS5vZihzY2hlbWEpLmdldE1lcmdlZFRyYWl0cygpLmF3c1F1ZXJ5RXJyb3I/LlswXSA9PT0gZXJyb3JOYW1lKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBsb2FkU21pdGh5UnBjVjJDYm9yRXJyb3JDb2RlLCBTbWl0aHlScGNWMkNib3JQcm90b2NvbCB9IGZyb20gXCJAc21pdGh5L2NvcmUvY2JvclwiO1xuaW1wb3J0IHsgTm9ybWFsaXplZFNjaGVtYSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2NoZW1hXCI7XG5pbXBvcnQgeyBQcm90b2NvbExpYiB9IGZyb20gXCIuLi9Qcm90b2NvbExpYlwiO1xuZXhwb3J0IGNsYXNzIEF3c1NtaXRoeVJwY1YyQ2JvclByb3RvY29sIGV4dGVuZHMgU21pdGh5UnBjVjJDYm9yUHJvdG9jb2wge1xuICAgIGF3c1F1ZXJ5Q29tcGF0aWJsZTtcbiAgICBtaXhpbjtcbiAgICBjb25zdHJ1Y3Rvcih7IGRlZmF1bHROYW1lc3BhY2UsIGVycm9yVHlwZVJlZ2lzdHJpZXMsIGF3c1F1ZXJ5Q29tcGF0aWJsZSwgfSkge1xuICAgICAgICBzdXBlcih7IGRlZmF1bHROYW1lc3BhY2UsIGVycm9yVHlwZVJlZ2lzdHJpZXMgfSk7XG4gICAgICAgIHRoaXMuYXdzUXVlcnlDb21wYXRpYmxlID0gISFhd3NRdWVyeUNvbXBhdGlibGU7XG4gICAgICAgIHRoaXMubWl4aW4gPSBuZXcgUHJvdG9jb2xMaWIodGhpcy5hd3NRdWVyeUNvbXBhdGlibGUpO1xuICAgIH1cbiAgICBhc3luYyBzZXJpYWxpemVSZXF1ZXN0KG9wZXJhdGlvblNjaGVtYSwgaW5wdXQsIGNvbnRleHQpIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IGF3YWl0IHN1cGVyLnNlcmlhbGl6ZVJlcXVlc3Qob3BlcmF0aW9uU2NoZW1hLCBpbnB1dCwgY29udGV4dCk7XG4gICAgICAgIGlmICh0aGlzLmF3c1F1ZXJ5Q29tcGF0aWJsZSkge1xuICAgICAgICAgICAgcmVxdWVzdC5oZWFkZXJzW1wieC1hbXpuLXF1ZXJ5LW1vZGVcIl0gPSBcInRydWVcIjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVxdWVzdDtcbiAgICB9XG4gICAgYXN5bmMgaGFuZGxlRXJyb3Iob3BlcmF0aW9uU2NoZW1hLCBjb250ZXh0LCByZXNwb25zZSwgZGF0YU9iamVjdCwgbWV0YWRhdGEpIHtcbiAgICAgICAgaWYgKHRoaXMuYXdzUXVlcnlDb21wYXRpYmxlKSB7XG4gICAgICAgICAgICB0aGlzLm1peGluLnNldFF1ZXJ5Q29tcGF0RXJyb3IoZGF0YU9iamVjdCwgcmVzcG9uc2UpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGVycm9yTmFtZSA9ICgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjb21wYXRIZWFkZXIgPSByZXNwb25zZS5oZWFkZXJzW1wieC1hbXpuLXF1ZXJ5LWVycm9yXCJdO1xuICAgICAgICAgICAgaWYgKGNvbXBhdEhlYWRlciAmJiB0aGlzLmF3c1F1ZXJ5Q29tcGF0aWJsZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBjb21wYXRIZWFkZXIuc3BsaXQoXCI7XCIpWzBdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGxvYWRTbWl0aHlScGNWMkNib3JFcnJvckNvZGUocmVzcG9uc2UsIGRhdGFPYmplY3QpID8/IFwiVW5rbm93blwiO1xuICAgICAgICB9KSgpO1xuICAgICAgICB0aGlzLm1peGluLmNvbXBvc2UodGhpcy5jb21wb3NpdGVFcnJvclJlZ2lzdHJ5LCBlcnJvck5hbWUsIHRoaXMub3B0aW9ucy5kZWZhdWx0TmFtZXNwYWNlKTtcbiAgICAgICAgY29uc3QgeyBlcnJvclNjaGVtYSwgZXJyb3JNZXRhZGF0YSB9ID0gYXdhaXQgdGhpcy5taXhpbi5nZXRFcnJvclNjaGVtYU9yVGhyb3dCYXNlRXhjZXB0aW9uKGVycm9yTmFtZSwgdGhpcy5vcHRpb25zLmRlZmF1bHROYW1lc3BhY2UsIHJlc3BvbnNlLCBkYXRhT2JqZWN0LCBtZXRhZGF0YSwgdGhpcy5hd3NRdWVyeUNvbXBhdGlibGUgPyB0aGlzLm1peGluLmZpbmRRdWVyeUNvbXBhdGlibGVFcnJvciA6IHVuZGVmaW5lZCk7XG4gICAgICAgIGNvbnN0IG5zID0gTm9ybWFsaXplZFNjaGVtYS5vZihlcnJvclNjaGVtYSk7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBkYXRhT2JqZWN0Lm1lc3NhZ2UgPz8gZGF0YU9iamVjdC5NZXNzYWdlID8/IFwiVW5rbm93bkVycm9yXCI7XG4gICAgICAgIGNvbnN0IEVycm9yQ3RvciA9IHRoaXMuY29tcG9zaXRlRXJyb3JSZWdpc3RyeS5nZXRFcnJvckN0b3IoZXJyb3JTY2hlbWEpID8/IEVycm9yO1xuICAgICAgICBjb25zdCBleGNlcHRpb24gPSBuZXcgRXJyb3JDdG9yKG1lc3NhZ2UpO1xuICAgICAgICBjb25zdCBvdXRwdXQgPSB7fTtcbiAgICAgICAgZm9yIChjb25zdCBbbmFtZSwgbWVtYmVyXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICBpZiAoZGF0YU9iamVjdFtuYW1lXSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgb3V0cHV0W25hbWVdID0gdGhpcy5kZXNlcmlhbGl6ZXIucmVhZFZhbHVlKG1lbWJlciwgZGF0YU9iamVjdFtuYW1lXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuYXdzUXVlcnlDb21wYXRpYmxlKSB7XG4gICAgICAgICAgICB0aGlzLm1peGluLnF1ZXJ5Q29tcGF0T3V0cHV0KGRhdGFPYmplY3QsIG91dHB1dCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgdGhpcy5taXhpbi5kZWNvcmF0ZVNlcnZpY2VFeGNlcHRpb24oT2JqZWN0LmFzc2lnbihleGNlcHRpb24sIGVycm9yTWV0YWRhdGEsIHtcbiAgICAgICAgICAgICRmYXVsdDogbnMuZ2V0TWVyZ2VkVHJhaXRzKCkuZXJyb3IsXG4gICAgICAgICAgICBtZXNzYWdlLFxuICAgICAgICB9LCBvdXRwdXQpLCBkYXRhT2JqZWN0KTtcbiAgICB9XG59XG4iLCAiZXhwb3J0IGNvbnN0IF90b1N0ciA9ICh2YWwpID0+IHtcbiAgICBpZiAodmFsID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHZhbDtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB2YWwgPT09IFwibnVtYmVyXCIgfHwgdHlwZW9mIHZhbCA9PT0gXCJiaWdpbnRcIikge1xuICAgICAgICBjb25zdCB3YXJuaW5nID0gbmV3IEVycm9yKGBSZWNlaXZlZCBudW1iZXIgJHt2YWx9IHdoZXJlIGEgc3RyaW5nIHdhcyBleHBlY3RlZC5gKTtcbiAgICAgICAgd2FybmluZy5uYW1lID0gXCJXYXJuaW5nXCI7XG4gICAgICAgIGNvbnNvbGUud2Fybih3YXJuaW5nKTtcbiAgICAgICAgcmV0dXJuIFN0cmluZyh2YWwpO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHZhbCA9PT0gXCJib29sZWFuXCIpIHtcbiAgICAgICAgY29uc3Qgd2FybmluZyA9IG5ldyBFcnJvcihgUmVjZWl2ZWQgYm9vbGVhbiAke3ZhbH0gd2hlcmUgYSBzdHJpbmcgd2FzIGV4cGVjdGVkLmApO1xuICAgICAgICB3YXJuaW5nLm5hbWUgPSBcIldhcm5pbmdcIjtcbiAgICAgICAgY29uc29sZS53YXJuKHdhcm5pbmcpO1xuICAgICAgICByZXR1cm4gU3RyaW5nKHZhbCk7XG4gICAgfVxuICAgIHJldHVybiB2YWw7XG59O1xuZXhwb3J0IGNvbnN0IF90b0Jvb2wgPSAodmFsKSA9PiB7XG4gICAgaWYgKHZhbCA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiB2YWw7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgdmFsID09PSBcIm51bWJlclwiKSB7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgdmFsID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIGNvbnN0IGxvd2VyY2FzZSA9IHZhbC50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBpZiAodmFsICE9PSBcIlwiICYmIGxvd2VyY2FzZSAhPT0gXCJmYWxzZVwiICYmIGxvd2VyY2FzZSAhPT0gXCJ0cnVlXCIpIHtcbiAgICAgICAgICAgIGNvbnN0IHdhcm5pbmcgPSBuZXcgRXJyb3IoYFJlY2VpdmVkIHN0cmluZyBcIiR7dmFsfVwiIHdoZXJlIGEgYm9vbGVhbiB3YXMgZXhwZWN0ZWQuYCk7XG4gICAgICAgICAgICB3YXJuaW5nLm5hbWUgPSBcIldhcm5pbmdcIjtcbiAgICAgICAgICAgIGNvbnNvbGUud2Fybih3YXJuaW5nKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsICE9PSBcIlwiICYmIGxvd2VyY2FzZSAhPT0gXCJmYWxzZVwiO1xuICAgIH1cbiAgICByZXR1cm4gdmFsO1xufTtcbmV4cG9ydCBjb25zdCBfdG9OdW0gPSAodmFsKSA9PiB7XG4gICAgaWYgKHZhbCA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiB2YWw7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgdmFsID09PSBcImJvb2xlYW5cIikge1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHZhbCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICBjb25zdCBudW0gPSBOdW1iZXIodmFsKTtcbiAgICAgICAgaWYgKG51bS50b1N0cmluZygpICE9PSB2YWwpIHtcbiAgICAgICAgICAgIGNvbnN0IHdhcm5pbmcgPSBuZXcgRXJyb3IoYFJlY2VpdmVkIHN0cmluZyBcIiR7dmFsfVwiIHdoZXJlIGEgbnVtYmVyIHdhcyBleHBlY3RlZC5gKTtcbiAgICAgICAgICAgIHdhcm5pbmcubmFtZSA9IFwiV2FybmluZ1wiO1xuICAgICAgICAgICAgY29uc29sZS53YXJuKHdhcm5pbmcpO1xuICAgICAgICAgICAgcmV0dXJuIHZhbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVtO1xuICAgIH1cbiAgICByZXR1cm4gdmFsO1xufTtcbiIsICJleHBvcnQgY2xhc3MgU2VyZGVDb250ZXh0Q29uZmlnIHtcbiAgICBzZXJkZUNvbnRleHQ7XG4gICAgc2V0U2VyZGVDb250ZXh0KHNlcmRlQ29udGV4dCkge1xuICAgICAgICB0aGlzLnNlcmRlQ29udGV4dCA9IHNlcmRlQ29udGV4dDtcbiAgICB9XG59XG4iLCAiZXhwb3J0IGNsYXNzIFVuaW9uU2VyZGUge1xuICAgIGZyb207XG4gICAgdG87XG4gICAga2V5cztcbiAgICBjb25zdHJ1Y3Rvcihmcm9tLCB0bykge1xuICAgICAgICB0aGlzLmZyb20gPSBmcm9tO1xuICAgICAgICB0aGlzLnRvID0gdG87XG4gICAgICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyh0aGlzLmZyb20pO1xuICAgICAgICBjb25zdCBzZXQgPSBuZXcgU2V0KGtleXMpO1xuICAgICAgICBzZXQuZGVsZXRlKFwiX190eXBlXCIpO1xuICAgICAgICB0aGlzLmtleXMgPSBzZXQ7XG4gICAgfVxuICAgIG1hcmsoa2V5KSB7XG4gICAgICAgIHRoaXMua2V5cy5kZWxldGUoa2V5KTtcbiAgICB9XG4gICAgaGFzVW5rbm93bigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMua2V5cy5zaXplID09PSAxICYmIE9iamVjdC5rZXlzKHRoaXMudG8pLmxlbmd0aCA9PT0gMDtcbiAgICB9XG4gICAgd3JpdGVVbmtub3duKCkge1xuICAgICAgICBpZiAodGhpcy5oYXNVbmtub3duKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IGsgPSB0aGlzLmtleXMudmFsdWVzKCkubmV4dCgpLnZhbHVlO1xuICAgICAgICAgICAgY29uc3QgdiA9IHRoaXMuZnJvbVtrXTtcbiAgICAgICAgICAgIHRoaXMudG8uJHVua25vd24gPSBbaywgdl07XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgTnVtZXJpY1ZhbHVlIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zZXJkZVwiO1xuZXhwb3J0IGZ1bmN0aW9uIGpzb25SZXZpdmVyKGtleSwgdmFsdWUsIGNvbnRleHQpIHtcbiAgICBpZiAoY29udGV4dD8uc291cmNlKSB7XG4gICAgICAgIGNvbnN0IG51bWVyaWNTdHJpbmcgPSBjb250ZXh0LnNvdXJjZTtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgaWYgKHZhbHVlID4gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIgfHwgdmFsdWUgPCBOdW1iZXIuTUlOX1NBRkVfSU5URUdFUiB8fCBudW1lcmljU3RyaW5nICE9PSBTdHJpbmcodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNGcmFjdGlvbmFsID0gbnVtZXJpY1N0cmluZy5pbmNsdWRlcyhcIi5cIik7XG4gICAgICAgICAgICAgICAgaWYgKGlzRnJhY3Rpb25hbCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IE51bWVyaWNWYWx1ZShudW1lcmljU3RyaW5nLCBcImJpZ0RlY2ltYWxcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gQmlnSW50KG51bWVyaWNTdHJpbmcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG59XG4iLCAiaW1wb3J0IHsgY29sbGVjdEJvZHkgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyB0b1V0ZjggfSBmcm9tIFwiQHNtaXRoeS91dGlsLXV0ZjhcIjtcbmV4cG9ydCBjb25zdCBjb2xsZWN0Qm9keVN0cmluZyA9IChzdHJlYW1Cb2R5LCBjb250ZXh0KSA9PiBjb2xsZWN0Qm9keShzdHJlYW1Cb2R5LCBjb250ZXh0KS50aGVuKChib2R5KSA9PiAoY29udGV4dD8udXRmOEVuY29kZXIgPz8gdG9VdGY4KShib2R5KSk7XG4iLCAiaW1wb3J0IHsgY29sbGVjdEJvZHlTdHJpbmcgfSBmcm9tIFwiLi4vY29tbW9uXCI7XG5leHBvcnQgY29uc3QgcGFyc2VKc29uQm9keSA9IChzdHJlYW1Cb2R5LCBjb250ZXh0KSA9PiBjb2xsZWN0Qm9keVN0cmluZyhzdHJlYW1Cb2R5LCBjb250ZXh0KS50aGVuKChlbmNvZGVkKSA9PiB7XG4gICAgaWYgKGVuY29kZWQubGVuZ3RoKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShlbmNvZGVkKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgaWYgKGU/Lm5hbWUgPT09IFwiU3ludGF4RXJyb3JcIikge1xuICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCBcIiRyZXNwb25zZUJvZHlUZXh0XCIsIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGVuY29kZWQsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7fTtcbn0pO1xuZXhwb3J0IGNvbnN0IHBhcnNlSnNvbkVycm9yQm9keSA9IGFzeW5jIChlcnJvckJvZHksIGNvbnRleHQpID0+IHtcbiAgICBjb25zdCB2YWx1ZSA9IGF3YWl0IHBhcnNlSnNvbkJvZHkoZXJyb3JCb2R5LCBjb250ZXh0KTtcbiAgICB2YWx1ZS5tZXNzYWdlID0gdmFsdWUubWVzc2FnZSA/PyB2YWx1ZS5NZXNzYWdlO1xuICAgIHJldHVybiB2YWx1ZTtcbn07XG5jb25zdCBmaW5kS2V5ID0gKG9iamVjdCwga2V5KSA9PiBPYmplY3Qua2V5cyhvYmplY3QpLmZpbmQoKGspID0+IGsudG9Mb3dlckNhc2UoKSA9PT0ga2V5LnRvTG93ZXJDYXNlKCkpO1xuY29uc3Qgc2FuaXRpemVFcnJvckNvZGUgPSAocmF3VmFsdWUpID0+IHtcbiAgICBsZXQgY2xlYW5WYWx1ZSA9IHJhd1ZhbHVlO1xuICAgIGlmICh0eXBlb2YgY2xlYW5WYWx1ZSA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICBjbGVhblZhbHVlID0gY2xlYW5WYWx1ZS50b1N0cmluZygpO1xuICAgIH1cbiAgICBpZiAoY2xlYW5WYWx1ZS5pbmRleE9mKFwiLFwiKSA+PSAwKSB7XG4gICAgICAgIGNsZWFuVmFsdWUgPSBjbGVhblZhbHVlLnNwbGl0KFwiLFwiKVswXTtcbiAgICB9XG4gICAgaWYgKGNsZWFuVmFsdWUuaW5kZXhPZihcIjpcIikgPj0gMCkge1xuICAgICAgICBjbGVhblZhbHVlID0gY2xlYW5WYWx1ZS5zcGxpdChcIjpcIilbMF07XG4gICAgfVxuICAgIGlmIChjbGVhblZhbHVlLmluZGV4T2YoXCIjXCIpID49IDApIHtcbiAgICAgICAgY2xlYW5WYWx1ZSA9IGNsZWFuVmFsdWUuc3BsaXQoXCIjXCIpWzFdO1xuICAgIH1cbiAgICByZXR1cm4gY2xlYW5WYWx1ZTtcbn07XG5leHBvcnQgY29uc3QgbG9hZFJlc3RKc29uRXJyb3JDb2RlID0gKG91dHB1dCwgZGF0YSkgPT4ge1xuICAgIGNvbnN0IGhlYWRlcktleSA9IGZpbmRLZXkob3V0cHV0LmhlYWRlcnMsIFwieC1hbXpuLWVycm9ydHlwZVwiKTtcbiAgICBpZiAoaGVhZGVyS2V5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIHNhbml0aXplRXJyb3JDb2RlKG91dHB1dC5oZWFkZXJzW2hlYWRlcktleV0pO1xuICAgIH1cbiAgICBpZiAoZGF0YSAmJiB0eXBlb2YgZGF0YSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICBjb25zdCBjb2RlS2V5ID0gZmluZEtleShkYXRhLCBcImNvZGVcIik7XG4gICAgICAgIGlmIChjb2RlS2V5ICYmIGRhdGFbY29kZUtleV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHNhbml0aXplRXJyb3JDb2RlKGRhdGFbY29kZUtleV0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhW1wiX190eXBlXCJdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBzYW5pdGl6ZUVycm9yQ29kZShkYXRhW1wiX190eXBlXCJdKTtcbiAgICAgICAgfVxuICAgIH1cbn07XG4iLCAiaW1wb3J0IHsgZGV0ZXJtaW5lVGltZXN0YW1wRm9ybWF0IH0gZnJvbSBcIkBzbWl0aHkvY29yZS9wcm90b2NvbHNcIjtcbmltcG9ydCB7IE5vcm1hbGl6ZWRTY2hlbWEgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3NjaGVtYVwiO1xuaW1wb3J0IHsgTGF6eUpzb25TdHJpbmcsIE51bWVyaWNWYWx1ZSwgcGFyc2VFcG9jaFRpbWVzdGFtcCwgcGFyc2VSZmMzMzM5RGF0ZVRpbWVXaXRoT2Zmc2V0LCBwYXJzZVJmYzcyMzFEYXRlVGltZSwgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3NlcmRlXCI7XG5pbXBvcnQgeyBmcm9tQmFzZTY0IH0gZnJvbSBcIkBzbWl0aHkvdXRpbC1iYXNlNjRcIjtcbmltcG9ydCB7IFNlcmRlQ29udGV4dENvbmZpZyB9IGZyb20gXCIuLi9Db25maWd1cmFibGVTZXJkZUNvbnRleHRcIjtcbmltcG9ydCB7IFVuaW9uU2VyZGUgfSBmcm9tIFwiLi4vVW5pb25TZXJkZVwiO1xuaW1wb3J0IHsganNvblJldml2ZXIgfSBmcm9tIFwiLi9qc29uUmV2aXZlclwiO1xuaW1wb3J0IHsgcGFyc2VKc29uQm9keSB9IGZyb20gXCIuL3BhcnNlSnNvbkJvZHlcIjtcbmV4cG9ydCBjbGFzcyBKc29uU2hhcGVEZXNlcmlhbGl6ZXIgZXh0ZW5kcyBTZXJkZUNvbnRleHRDb25maWcge1xuICAgIHNldHRpbmdzO1xuICAgIGNvbnN0cnVjdG9yKHNldHRpbmdzKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuc2V0dGluZ3MgPSBzZXR0aW5ncztcbiAgICB9XG4gICAgYXN5bmMgcmVhZChzY2hlbWEsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlYWQoc2NoZW1hLCB0eXBlb2YgZGF0YSA9PT0gXCJzdHJpbmdcIiA/IEpTT04ucGFyc2UoZGF0YSwganNvblJldml2ZXIpIDogYXdhaXQgcGFyc2VKc29uQm9keShkYXRhLCB0aGlzLnNlcmRlQ29udGV4dCkpO1xuICAgIH1cbiAgICByZWFkT2JqZWN0KHNjaGVtYSwgZGF0YSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVhZChzY2hlbWEsIGRhdGEpO1xuICAgIH1cbiAgICBfcmVhZChzY2hlbWEsIHZhbHVlKSB7XG4gICAgICAgIGNvbnN0IGlzT2JqZWN0ID0gdmFsdWUgIT09IG51bGwgJiYgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiO1xuICAgICAgICBjb25zdCBucyA9IE5vcm1hbGl6ZWRTY2hlbWEub2Yoc2NoZW1hKTtcbiAgICAgICAgaWYgKGlzT2JqZWN0KSB7XG4gICAgICAgICAgICBpZiAobnMuaXNTdHJ1Y3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlY29yZCA9IHZhbHVlO1xuICAgICAgICAgICAgICAgIGNvbnN0IHVuaW9uID0gbnMuaXNVbmlvblNjaGVtYSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IG91dCA9IHt9O1xuICAgICAgICAgICAgICAgIGxldCBuYW1lTWFwID0gdm9pZCAwO1xuICAgICAgICAgICAgICAgIGNvbnN0IHsganNvbk5hbWUgfSA9IHRoaXMuc2V0dGluZ3M7XG4gICAgICAgICAgICAgICAgaWYgKGpzb25OYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWVNYXAgPSB7fTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbGV0IHVuaW9uU2VyZGU7XG4gICAgICAgICAgICAgICAgaWYgKHVuaW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIHVuaW9uU2VyZGUgPSBuZXcgVW5pb25TZXJkZShyZWNvcmQsIG91dCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgW21lbWJlck5hbWUsIG1lbWJlclNjaGVtYV0gb2YgbnMuc3RydWN0SXRlcmF0b3IoKSkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgZnJvbUtleSA9IG1lbWJlck5hbWU7XG4gICAgICAgICAgICAgICAgICAgIGlmIChqc29uTmFtZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZnJvbUtleSA9IG1lbWJlclNjaGVtYS5nZXRNZXJnZWRUcmFpdHMoKS5qc29uTmFtZSA/PyBmcm9tS2V5O1xuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZU1hcFtmcm9tS2V5XSA9IG1lbWJlck5hbWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHVuaW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB1bmlvblNlcmRlLm1hcmsoZnJvbUtleSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlY29yZFtmcm9tS2V5XSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvdXRbbWVtYmVyTmFtZV0gPSB0aGlzLl9yZWFkKG1lbWJlclNjaGVtYSwgcmVjb3JkW2Zyb21LZXldKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodW5pb24pIHtcbiAgICAgICAgICAgICAgICAgICAgdW5pb25TZXJkZS53cml0ZVVua25vd24oKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAodHlwZW9mIHJlY29yZC5fX3R5cGUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBrIGluIHJlY29yZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdiA9IHJlY29yZFtrXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHQgPSBqc29uTmFtZSA/IG5hbWVNYXBba10gPz8gayA6IGs7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoISh0IGluIG91dCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRbdF0gPSB2O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBvdXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgbnMuaXNMaXN0U2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBsaXN0TWVtYmVyID0gbnMuZ2V0VmFsdWVTY2hlbWEoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBvdXQgPSBbXTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgb3V0LnB1c2godGhpcy5fcmVhZChsaXN0TWVtYmVyLCBpdGVtKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBvdXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobnMuaXNNYXBTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG1hcE1lbWJlciA9IG5zLmdldFZhbHVlU2NoZW1hKCk7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3V0ID0ge307XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBfayBpbiB2YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBvdXRbX2tdID0gdGhpcy5fcmVhZChtYXBNZW1iZXIsIHZhbHVlW19rXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBvdXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzQmxvYlNjaGVtYSgpICYmIHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgcmV0dXJuIGZyb21CYXNlNjQodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG1lZGlhVHlwZSA9IG5zLmdldE1lcmdlZFRyYWl0cygpLm1lZGlhVHlwZTtcbiAgICAgICAgaWYgKG5zLmlzU3RyaW5nU2NoZW1hKCkgJiYgdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiICYmIG1lZGlhVHlwZSkge1xuICAgICAgICAgICAgY29uc3QgaXNKc29uID0gbWVkaWFUeXBlID09PSBcImFwcGxpY2F0aW9uL2pzb25cIiB8fCBtZWRpYVR5cGUuZW5kc1dpdGgoXCIranNvblwiKTtcbiAgICAgICAgICAgIGlmIChpc0pzb24pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gTGF6eUpzb25TdHJpbmcuZnJvbSh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzVGltZXN0YW1wU2NoZW1hKCkgJiYgdmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc3QgZm9ybWF0ID0gZGV0ZXJtaW5lVGltZXN0YW1wRm9ybWF0KG5zLCB0aGlzLnNldHRpbmdzKTtcbiAgICAgICAgICAgIHN3aXRjaCAoZm9ybWF0KSB7XG4gICAgICAgICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcGFyc2VSZmMzMzM5RGF0ZVRpbWVXaXRoT2Zmc2V0KHZhbHVlKTtcbiAgICAgICAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZVJmYzcyMzFEYXRlVGltZSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgY2FzZSA3OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcGFyc2VFcG9jaFRpbWVzdGFtcCh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKFwiTWlzc2luZyB0aW1lc3RhbXAgZm9ybWF0LCBwYXJzaW5nIHZhbHVlIHdpdGggRGF0ZSBjb25zdHJ1Y3RvcjpcIiwgdmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IERhdGUodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChucy5pc0JpZ0ludGVnZXJTY2hlbWEoKSAmJiAodHlwZW9mIHZhbHVlID09PSBcIm51bWJlclwiIHx8IHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikpIHtcbiAgICAgICAgICAgIHJldHVybiBCaWdJbnQodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChucy5pc0JpZ0RlY2ltYWxTY2hlbWEoKSAmJiB2YWx1ZSAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIE51bWVyaWNWYWx1ZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHVudHlwZWQgPSB2YWx1ZTtcbiAgICAgICAgICAgIGlmICh1bnR5cGVkLnR5cGUgPT09IFwiYmlnRGVjaW1hbFwiICYmIFwic3RyaW5nXCIgaW4gdW50eXBlZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgTnVtZXJpY1ZhbHVlKHVudHlwZWQuc3RyaW5nLCB1bnR5cGVkLnR5cGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG5ldyBOdW1lcmljVmFsdWUoU3RyaW5nKHZhbHVlKSwgXCJiaWdEZWNpbWFsXCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChucy5pc051bWVyaWNTY2hlbWEoKSAmJiB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIHN3aXRjaCAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIFwiSW5maW5pdHlcIjpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEluZmluaXR5O1xuICAgICAgICAgICAgICAgIGNhc2UgXCItSW5maW5pdHlcIjpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1JbmZpbml0eTtcbiAgICAgICAgICAgICAgICBjYXNlIFwiTmFOXCI6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBOYU47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzRG9jdW1lbnRTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKGlzT2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3V0ID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyBbXSA6IHt9O1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgayBpbiB2YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB2ID0gdmFsdWVba107XG4gICAgICAgICAgICAgICAgICAgIGlmICh2IGluc3RhbmNlb2YgTnVtZXJpY1ZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvdXRba10gPSB2O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3V0W2tdID0gdGhpcy5fcmVhZChucywgdik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIG91dDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBzdHJ1Y3R1cmVkQ2xvbmUodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgTnVtZXJpY1ZhbHVlIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zZXJkZVwiO1xuY29uc3QgTlVNRVJJQ19DT05UUk9MX0NIQVIgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKDkyNSk7XG5leHBvcnQgY2xhc3MgSnNvblJlcGxhY2VyIHtcbiAgICB2YWx1ZXMgPSBuZXcgTWFwKCk7XG4gICAgY291bnRlciA9IDA7XG4gICAgc3RhZ2UgPSAwO1xuICAgIGNyZWF0ZVJlcGxhY2VyKCkge1xuICAgICAgICBpZiAodGhpcy5zdGFnZSA9PT0gMSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSBKc29uUmVwbGFjZXIgYWxyZWFkeSBjcmVhdGVkLlwiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5zdGFnZSA9PT0gMikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSBKc29uUmVwbGFjZXIgZXhoYXVzdGVkLlwiKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnN0YWdlID0gMTtcbiAgICAgICAgcmV0dXJuIChrZXksIHZhbHVlKSA9PiB7XG4gICAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBOdW1lcmljVmFsdWUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB2ID0gYCR7TlVNRVJJQ19DT05UUk9MX0NIQVIgKyBcIm52XCIgKyB0aGlzLmNvdW50ZXIrK31fYCArIHZhbHVlLnN0cmluZztcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlcy5zZXQoYFwiJHt2fVwiYCwgdmFsdWUuc3RyaW5nKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwiYmlnaW50XCIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzID0gdmFsdWUudG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICBjb25zdCB2ID0gYCR7TlVNRVJJQ19DT05UUk9MX0NIQVIgKyBcImJcIiArIHRoaXMuY291bnRlcisrfV9gICsgcztcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlcy5zZXQoYFwiJHt2fVwiYCwgcyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHY7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH07XG4gICAgfVxuICAgIHJlcGxhY2VJbkpzb24oanNvbikge1xuICAgICAgICBpZiAodGhpcy5zdGFnZSA9PT0gMCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSBKc29uUmVwbGFjZXIgbm90IGNyZWF0ZWQgeWV0LlwiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5zdGFnZSA9PT0gMikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSBKc29uUmVwbGFjZXIgZXhoYXVzdGVkLlwiKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnN0YWdlID0gMjtcbiAgICAgICAgaWYgKHRoaXMuY291bnRlciA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIGpzb247XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgdGhpcy52YWx1ZXMpIHtcbiAgICAgICAgICAgIGpzb24gPSBqc29uLnJlcGxhY2Uoa2V5LCB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGpzb247XG4gICAgfVxufVxuIiwgImltcG9ydCB7IGRldGVybWluZVRpbWVzdGFtcEZvcm1hdCB9IGZyb20gXCJAc21pdGh5L2NvcmUvcHJvdG9jb2xzXCI7XG5pbXBvcnQgeyBOb3JtYWxpemVkU2NoZW1hIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IGRhdGVUb1V0Y1N0cmluZywgZ2VuZXJhdGVJZGVtcG90ZW5jeVRva2VuLCBMYXp5SnNvblN0cmluZywgTnVtZXJpY1ZhbHVlIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zZXJkZVwiO1xuaW1wb3J0IHsgdG9CYXNlNjQgfSBmcm9tIFwiQHNtaXRoeS91dGlsLWJhc2U2NFwiO1xuaW1wb3J0IHsgU2VyZGVDb250ZXh0Q29uZmlnIH0gZnJvbSBcIi4uL0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dFwiO1xuaW1wb3J0IHsgSnNvblJlcGxhY2VyIH0gZnJvbSBcIi4vanNvblJlcGxhY2VyXCI7XG5leHBvcnQgY2xhc3MgSnNvblNoYXBlU2VyaWFsaXplciBleHRlbmRzIFNlcmRlQ29udGV4dENvbmZpZyB7XG4gICAgc2V0dGluZ3M7XG4gICAgYnVmZmVyO1xuICAgIHVzZVJlcGxhY2VyID0gZmFsc2U7XG4gICAgcm9vdFNjaGVtYTtcbiAgICBjb25zdHJ1Y3RvcihzZXR0aW5ncykge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnNldHRpbmdzID0gc2V0dGluZ3M7XG4gICAgfVxuICAgIHdyaXRlKHNjaGVtYSwgdmFsdWUpIHtcbiAgICAgICAgdGhpcy5yb290U2NoZW1hID0gTm9ybWFsaXplZFNjaGVtYS5vZihzY2hlbWEpO1xuICAgICAgICB0aGlzLmJ1ZmZlciA9IHRoaXMuX3dyaXRlKHRoaXMucm9vdFNjaGVtYSwgdmFsdWUpO1xuICAgIH1cbiAgICBmbHVzaCgpIHtcbiAgICAgICAgY29uc3QgeyByb290U2NoZW1hLCB1c2VSZXBsYWNlciB9ID0gdGhpcztcbiAgICAgICAgdGhpcy5yb290U2NoZW1hID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLnVzZVJlcGxhY2VyID0gZmFsc2U7XG4gICAgICAgIGlmIChyb290U2NoZW1hPy5pc1N0cnVjdFNjaGVtYSgpIHx8IHJvb3RTY2hlbWE/LmlzRG9jdW1lbnRTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKCF1c2VSZXBsYWNlcikge1xuICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh0aGlzLmJ1ZmZlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCByZXBsYWNlciA9IG5ldyBKc29uUmVwbGFjZXIoKTtcbiAgICAgICAgICAgIHJldHVybiByZXBsYWNlci5yZXBsYWNlSW5Kc29uKEpTT04uc3RyaW5naWZ5KHRoaXMuYnVmZmVyLCByZXBsYWNlci5jcmVhdGVSZXBsYWNlcigpLCAwKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuYnVmZmVyO1xuICAgIH1cbiAgICB3cml0ZURpc2NyaW1pbmF0ZWREb2N1bWVudChzY2hlbWEsIHZhbHVlKSB7XG4gICAgICAgIHRoaXMud3JpdGUoc2NoZW1hLCB2YWx1ZSk7XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5idWZmZXIgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgIHRoaXMuYnVmZmVyLl9fdHlwZSA9IE5vcm1hbGl6ZWRTY2hlbWEub2Yoc2NoZW1hKS5nZXROYW1lKHRydWUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIF93cml0ZShzY2hlbWEsIHZhbHVlLCBjb250YWluZXIpIHtcbiAgICAgICAgY29uc3QgaXNPYmplY3QgPSB2YWx1ZSAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCI7XG4gICAgICAgIGNvbnN0IG5zID0gTm9ybWFsaXplZFNjaGVtYS5vZihzY2hlbWEpO1xuICAgICAgICBpZiAoaXNPYmplY3QpIHtcbiAgICAgICAgICAgIGlmIChucy5pc1N0cnVjdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVjb3JkID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3V0ID0ge307XG4gICAgICAgICAgICAgICAgY29uc3QgeyBqc29uTmFtZSB9ID0gdGhpcy5zZXR0aW5ncztcbiAgICAgICAgICAgICAgICBsZXQgbmFtZU1hcCA9IHZvaWQgMDtcbiAgICAgICAgICAgICAgICBpZiAoanNvbk5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZU1hcCA9IHt9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBsZXQgb3V0Q291bnQgPSAwO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgW21lbWJlck5hbWUsIG1lbWJlclNjaGVtYV0gb2YgbnMuc3RydWN0SXRlcmF0b3IoKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzZXJpYWxpemFibGVWYWx1ZSA9IHRoaXMuX3dyaXRlKG1lbWJlclNjaGVtYSwgcmVjb3JkW21lbWJlck5hbWVdLCBucyk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzZXJpYWxpemFibGVWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGFyZ2V0S2V5ID0gbWVtYmVyTmFtZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChqc29uTmFtZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldEtleSA9IG1lbWJlclNjaGVtYS5nZXRNZXJnZWRUcmFpdHMoKS5qc29uTmFtZSA/PyBtZW1iZXJOYW1lO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVNYXBbbWVtYmVyTmFtZV0gPSB0YXJnZXRLZXk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBvdXRbdGFyZ2V0S2V5XSA9IHNlcmlhbGl6YWJsZVZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgb3V0Q291bnQrKztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAobnMuaXNVbmlvblNjaGVtYSgpICYmIG91dENvdW50ID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgJHVua25vd24gfSA9IHJlY29yZDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoJHVua25vd24pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBbaywgdl0gPSAkdW5rbm93bjtcbiAgICAgICAgICAgICAgICAgICAgICAgIG91dFtrXSA9IHRoaXMuX3dyaXRlKDE1LCB2KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmICh0eXBlb2YgcmVjb3JkLl9fdHlwZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGsgaW4gcmVjb3JkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2ID0gcmVjb3JkW2tdO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0S2V5ID0ganNvbk5hbWUgPyBuYW1lTWFwW2tdID8/IGsgOiBrO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEodGFyZ2V0S2V5IGluIG91dCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRbdGFyZ2V0S2V5XSA9IHRoaXMuX3dyaXRlKDE1LCB2KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gb3V0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpICYmIG5zLmlzTGlzdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbGlzdE1lbWJlciA9IG5zLmdldFZhbHVlU2NoZW1hKCk7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3V0ID0gW107XG4gICAgICAgICAgICAgICAgY29uc3Qgc3BhcnNlID0gISFucy5nZXRNZXJnZWRUcmFpdHMoKS5zcGFyc2U7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzcGFyc2UgfHwgaXRlbSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvdXQucHVzaCh0aGlzLl93cml0ZShsaXN0TWVtYmVyLCBpdGVtKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIG91dDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChucy5pc01hcFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbWFwTWVtYmVyID0gbnMuZ2V0VmFsdWVTY2hlbWEoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBvdXQgPSB7fTtcbiAgICAgICAgICAgICAgICBjb25zdCBzcGFyc2UgPSAhIW5zLmdldE1lcmdlZFRyYWl0cygpLnNwYXJzZTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IF9rIGluIHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IF92ID0gdmFsdWVbX2tdO1xuICAgICAgICAgICAgICAgICAgICBpZiAoc3BhcnNlIHx8IF92ICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG91dFtfa10gPSB0aGlzLl93cml0ZShtYXBNZW1iZXIsIF92KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gb3V0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgVWludDhBcnJheSAmJiAobnMuaXNCbG9iU2NoZW1hKCkgfHwgbnMuaXNEb2N1bWVudFNjaGVtYSgpKSkge1xuICAgICAgICAgICAgICAgIGlmIChucyA9PT0gdGhpcy5yb290U2NoZW1hKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuICh0aGlzLnNlcmRlQ29udGV4dD8uYmFzZTY0RW5jb2RlciA/PyB0b0Jhc2U2NCkodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSAmJiAobnMuaXNUaW1lc3RhbXBTY2hlbWEoKSB8fCBucy5pc0RvY3VtZW50U2NoZW1hKCkpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZm9ybWF0ID0gZGV0ZXJtaW5lVGltZXN0YW1wRm9ybWF0KG5zLCB0aGlzLnNldHRpbmdzKTtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGZvcm1hdCkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUudG9JU09TdHJpbmcoKS5yZXBsYWNlKFwiLjAwMFpcIiwgXCJaXCIpO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZGF0ZVRvVXRjU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA3OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlLmdldFRpbWUoKSAvIDEwMDA7XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oXCJNaXNzaW5nIHRpbWVzdGFtcCBmb3JtYXQsIHVzaW5nIGVwb2NoIHNlY29uZHNcIiwgdmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlLmdldFRpbWUoKSAvIDEwMDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgTnVtZXJpY1ZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy51c2VSZXBsYWNlciA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbHVlID09PSBudWxsICYmIGNvbnRhaW5lcj8uaXNTdHJ1Y3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgcmV0dXJuIHZvaWQgMDtcbiAgICAgICAgfVxuICAgICAgICBpZiAobnMuaXNTdHJpbmdTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJ1bmRlZmluZWRcIiAmJiBucy5pc0lkZW1wb3RlbmN5VG9rZW4oKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBnZW5lcmF0ZUlkZW1wb3RlbmN5VG9rZW4oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IG1lZGlhVHlwZSA9IG5zLmdldE1lcmdlZFRyYWl0cygpLm1lZGlhVHlwZTtcbiAgICAgICAgICAgIGlmICh2YWx1ZSAhPSBudWxsICYmIG1lZGlhVHlwZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzSnNvbiA9IG1lZGlhVHlwZSA9PT0gXCJhcHBsaWNhdGlvbi9qc29uXCIgfHwgbWVkaWFUeXBlLmVuZHNXaXRoKFwiK2pzb25cIik7XG4gICAgICAgICAgICAgICAgaWYgKGlzSnNvbikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gTGF6eUpzb25TdHJpbmcuZnJvbSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCIgJiYgbnMuaXNOdW1lcmljU2NoZW1hKCkpIHtcbiAgICAgICAgICAgIGlmIChNYXRoLmFicyh2YWx1ZSkgPT09IEluZmluaXR5IHx8IGlzTmFOKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgJiYgbnMuaXNCbG9iU2NoZW1hKCkpIHtcbiAgICAgICAgICAgIGlmIChucyA9PT0gdGhpcy5yb290U2NoZW1hKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuICh0aGlzLnNlcmRlQ29udGV4dD8uYmFzZTY0RW5jb2RlciA/PyB0b0Jhc2U2NCkodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwiYmlnaW50XCIpIHtcbiAgICAgICAgICAgIHRoaXMudXNlUmVwbGFjZXIgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChucy5pc0RvY3VtZW50U2NoZW1hKCkpIHtcbiAgICAgICAgICAgIGlmIChpc09iamVjdCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG91dCA9IEFycmF5LmlzQXJyYXkodmFsdWUpID8gW10gOiB7fTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGsgaW4gdmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdiA9IHZhbHVlW2tdO1xuICAgICAgICAgICAgICAgICAgICBpZiAodiBpbnN0YW5jZW9mIE51bWVyaWNWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51c2VSZXBsYWNlciA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBvdXRba10gPSB2O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3V0W2tdID0gdGhpcy5fd3JpdGUobnMsIHYpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBvdXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3RydWN0dXJlZENsb25lKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IFNlcmRlQ29udGV4dENvbmZpZyB9IGZyb20gXCIuLi9Db25maWd1cmFibGVTZXJkZUNvbnRleHRcIjtcbmltcG9ydCB7IEpzb25TaGFwZURlc2VyaWFsaXplciB9IGZyb20gXCIuL0pzb25TaGFwZURlc2VyaWFsaXplclwiO1xuaW1wb3J0IHsgSnNvblNoYXBlU2VyaWFsaXplciB9IGZyb20gXCIuL0pzb25TaGFwZVNlcmlhbGl6ZXJcIjtcbmV4cG9ydCBjbGFzcyBKc29uQ29kZWMgZXh0ZW5kcyBTZXJkZUNvbnRleHRDb25maWcge1xuICAgIHNldHRpbmdzO1xuICAgIGNvbnN0cnVjdG9yKHNldHRpbmdzKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuc2V0dGluZ3MgPSBzZXR0aW5ncztcbiAgICB9XG4gICAgY3JlYXRlU2VyaWFsaXplcigpIHtcbiAgICAgICAgY29uc3Qgc2VyaWFsaXplciA9IG5ldyBKc29uU2hhcGVTZXJpYWxpemVyKHRoaXMuc2V0dGluZ3MpO1xuICAgICAgICBzZXJpYWxpemVyLnNldFNlcmRlQ29udGV4dCh0aGlzLnNlcmRlQ29udGV4dCk7XG4gICAgICAgIHJldHVybiBzZXJpYWxpemVyO1xuICAgIH1cbiAgICBjcmVhdGVEZXNlcmlhbGl6ZXIoKSB7XG4gICAgICAgIGNvbnN0IGRlc2VyaWFsaXplciA9IG5ldyBKc29uU2hhcGVEZXNlcmlhbGl6ZXIodGhpcy5zZXR0aW5ncyk7XG4gICAgICAgIGRlc2VyaWFsaXplci5zZXRTZXJkZUNvbnRleHQodGhpcy5zZXJkZUNvbnRleHQpO1xuICAgICAgICByZXR1cm4gZGVzZXJpYWxpemVyO1xuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBScGNQcm90b2NvbCB9IGZyb20gXCJAc21pdGh5L2NvcmUvcHJvdG9jb2xzXCI7XG5pbXBvcnQgeyBkZXJlZiwgTm9ybWFsaXplZFNjaGVtYSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2NoZW1hXCI7XG5pbXBvcnQgeyBQcm90b2NvbExpYiB9IGZyb20gXCIuLi9Qcm90b2NvbExpYlwiO1xuaW1wb3J0IHsgSnNvbkNvZGVjIH0gZnJvbSBcIi4vSnNvbkNvZGVjXCI7XG5pbXBvcnQgeyBsb2FkUmVzdEpzb25FcnJvckNvZGUgfSBmcm9tIFwiLi9wYXJzZUpzb25Cb2R5XCI7XG5leHBvcnQgY2xhc3MgQXdzSnNvblJwY1Byb3RvY29sIGV4dGVuZHMgUnBjUHJvdG9jb2wge1xuICAgIHNlcmlhbGl6ZXI7XG4gICAgZGVzZXJpYWxpemVyO1xuICAgIHNlcnZpY2VUYXJnZXQ7XG4gICAgY29kZWM7XG4gICAgbWl4aW47XG4gICAgYXdzUXVlcnlDb21wYXRpYmxlO1xuICAgIGNvbnN0cnVjdG9yKHsgZGVmYXVsdE5hbWVzcGFjZSwgZXJyb3JUeXBlUmVnaXN0cmllcywgc2VydmljZVRhcmdldCwgYXdzUXVlcnlDb21wYXRpYmxlLCBqc29uQ29kZWMsIH0pIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgZGVmYXVsdE5hbWVzcGFjZSxcbiAgICAgICAgICAgIGVycm9yVHlwZVJlZ2lzdHJpZXMsXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnNlcnZpY2VUYXJnZXQgPSBzZXJ2aWNlVGFyZ2V0O1xuICAgICAgICB0aGlzLmNvZGVjID1cbiAgICAgICAgICAgIGpzb25Db2RlYyA/P1xuICAgICAgICAgICAgICAgIG5ldyBKc29uQ29kZWMoe1xuICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXBGb3JtYXQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHVzZVRyYWl0OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogNyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAganNvbk5hbWU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB0aGlzLnNlcmlhbGl6ZXIgPSB0aGlzLmNvZGVjLmNyZWF0ZVNlcmlhbGl6ZXIoKTtcbiAgICAgICAgdGhpcy5kZXNlcmlhbGl6ZXIgPSB0aGlzLmNvZGVjLmNyZWF0ZURlc2VyaWFsaXplcigpO1xuICAgICAgICB0aGlzLmF3c1F1ZXJ5Q29tcGF0aWJsZSA9ICEhYXdzUXVlcnlDb21wYXRpYmxlO1xuICAgICAgICB0aGlzLm1peGluID0gbmV3IFByb3RvY29sTGliKHRoaXMuYXdzUXVlcnlDb21wYXRpYmxlKTtcbiAgICB9XG4gICAgYXN5bmMgc2VyaWFsaXplUmVxdWVzdChvcGVyYXRpb25TY2hlbWEsIGlucHV0LCBjb250ZXh0KSB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSBhd2FpdCBzdXBlci5zZXJpYWxpemVSZXF1ZXN0KG9wZXJhdGlvblNjaGVtYSwgaW5wdXQsIGNvbnRleHQpO1xuICAgICAgICBpZiAoIXJlcXVlc3QucGF0aC5lbmRzV2l0aChcIi9cIikpIHtcbiAgICAgICAgICAgIHJlcXVlc3QucGF0aCArPSBcIi9cIjtcbiAgICAgICAgfVxuICAgICAgICByZXF1ZXN0LmhlYWRlcnNbXCJjb250ZW50LXR5cGVcIl0gPSBgYXBwbGljYXRpb24veC1hbXotanNvbi0ke3RoaXMuZ2V0SnNvblJwY1ZlcnNpb24oKX1gO1xuICAgICAgICByZXF1ZXN0LmhlYWRlcnNbXCJ4LWFtei10YXJnZXRcIl0gPSBgJHt0aGlzLnNlcnZpY2VUYXJnZXR9LiR7b3BlcmF0aW9uU2NoZW1hLm5hbWV9YDtcbiAgICAgICAgaWYgKHRoaXMuYXdzUXVlcnlDb21wYXRpYmxlKSB7XG4gICAgICAgICAgICByZXF1ZXN0LmhlYWRlcnNbXCJ4LWFtem4tcXVlcnktbW9kZVwiXSA9IFwidHJ1ZVwiO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkZXJlZihvcGVyYXRpb25TY2hlbWEuaW5wdXQpID09PSBcInVuaXRcIiB8fCAhcmVxdWVzdC5ib2R5KSB7XG4gICAgICAgICAgICByZXF1ZXN0LmJvZHkgPSBcInt9XCI7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlcXVlc3Q7XG4gICAgfVxuICAgIGdldFBheWxvYWRDb2RlYygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29kZWM7XG4gICAgfVxuICAgIGFzeW5jIGhhbmRsZUVycm9yKG9wZXJhdGlvblNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UsIGRhdGFPYmplY3QsIG1ldGFkYXRhKSB7XG4gICAgICAgIGlmICh0aGlzLmF3c1F1ZXJ5Q29tcGF0aWJsZSkge1xuICAgICAgICAgICAgdGhpcy5taXhpbi5zZXRRdWVyeUNvbXBhdEVycm9yKGRhdGFPYmplY3QsIHJlc3BvbnNlKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBlcnJvcklkZW50aWZpZXIgPSBsb2FkUmVzdEpzb25FcnJvckNvZGUocmVzcG9uc2UsIGRhdGFPYmplY3QpID8/IFwiVW5rbm93blwiO1xuICAgICAgICB0aGlzLm1peGluLmNvbXBvc2UodGhpcy5jb21wb3NpdGVFcnJvclJlZ2lzdHJ5LCBlcnJvcklkZW50aWZpZXIsIHRoaXMub3B0aW9ucy5kZWZhdWx0TmFtZXNwYWNlKTtcbiAgICAgICAgY29uc3QgeyBlcnJvclNjaGVtYSwgZXJyb3JNZXRhZGF0YSB9ID0gYXdhaXQgdGhpcy5taXhpbi5nZXRFcnJvclNjaGVtYU9yVGhyb3dCYXNlRXhjZXB0aW9uKGVycm9ySWRlbnRpZmllciwgdGhpcy5vcHRpb25zLmRlZmF1bHROYW1lc3BhY2UsIHJlc3BvbnNlLCBkYXRhT2JqZWN0LCBtZXRhZGF0YSwgdGhpcy5hd3NRdWVyeUNvbXBhdGlibGUgPyB0aGlzLm1peGluLmZpbmRRdWVyeUNvbXBhdGlibGVFcnJvciA6IHVuZGVmaW5lZCk7XG4gICAgICAgIGNvbnN0IG5zID0gTm9ybWFsaXplZFNjaGVtYS5vZihlcnJvclNjaGVtYSk7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBkYXRhT2JqZWN0Lm1lc3NhZ2UgPz8gZGF0YU9iamVjdC5NZXNzYWdlID8/IFwiVW5rbm93bkVycm9yXCI7XG4gICAgICAgIGNvbnN0IEVycm9yQ3RvciA9IHRoaXMuY29tcG9zaXRlRXJyb3JSZWdpc3RyeS5nZXRFcnJvckN0b3IoZXJyb3JTY2hlbWEpID8/IEVycm9yO1xuICAgICAgICBjb25zdCBleGNlcHRpb24gPSBuZXcgRXJyb3JDdG9yKG1lc3NhZ2UpO1xuICAgICAgICBjb25zdCBvdXRwdXQgPSB7fTtcbiAgICAgICAgY29uc3QgZXJyb3JEZXNlcmlhbGl6ZXIgPSB0aGlzLmNvZGVjLmNyZWF0ZURlc2VyaWFsaXplcigpO1xuICAgICAgICBmb3IgKGNvbnN0IFtuYW1lLCBtZW1iZXJdIG9mIG5zLnN0cnVjdEl0ZXJhdG9yKCkpIHtcbiAgICAgICAgICAgIGlmIChkYXRhT2JqZWN0W25hbWVdICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICBvdXRwdXRbbmFtZV0gPSBlcnJvckRlc2VyaWFsaXplci5yZWFkT2JqZWN0KG1lbWJlciwgZGF0YU9iamVjdFtuYW1lXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuYXdzUXVlcnlDb21wYXRpYmxlKSB7XG4gICAgICAgICAgICB0aGlzLm1peGluLnF1ZXJ5Q29tcGF0T3V0cHV0KGRhdGFPYmplY3QsIG91dHB1dCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgdGhpcy5taXhpbi5kZWNvcmF0ZVNlcnZpY2VFeGNlcHRpb24oT2JqZWN0LmFzc2lnbihleGNlcHRpb24sIGVycm9yTWV0YWRhdGEsIHtcbiAgICAgICAgICAgICRmYXVsdDogbnMuZ2V0TWVyZ2VkVHJhaXRzKCkuZXJyb3IsXG4gICAgICAgICAgICBtZXNzYWdlLFxuICAgICAgICB9LCBvdXRwdXQpLCBkYXRhT2JqZWN0KTtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgQXdzSnNvblJwY1Byb3RvY29sIH0gZnJvbSBcIi4vQXdzSnNvblJwY1Byb3RvY29sXCI7XG5leHBvcnQgY2xhc3MgQXdzSnNvbjFfMFByb3RvY29sIGV4dGVuZHMgQXdzSnNvblJwY1Byb3RvY29sIHtcbiAgICBjb25zdHJ1Y3Rvcih7IGRlZmF1bHROYW1lc3BhY2UsIGVycm9yVHlwZVJlZ2lzdHJpZXMsIHNlcnZpY2VUYXJnZXQsIGF3c1F1ZXJ5Q29tcGF0aWJsZSwganNvbkNvZGVjLCB9KSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIGRlZmF1bHROYW1lc3BhY2UsXG4gICAgICAgICAgICBlcnJvclR5cGVSZWdpc3RyaWVzLFxuICAgICAgICAgICAgc2VydmljZVRhcmdldCxcbiAgICAgICAgICAgIGF3c1F1ZXJ5Q29tcGF0aWJsZSxcbiAgICAgICAgICAgIGpzb25Db2RlYyxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGdldFNoYXBlSWQoKSB7XG4gICAgICAgIHJldHVybiBcImF3cy5wcm90b2NvbHMjYXdzSnNvbjFfMFwiO1xuICAgIH1cbiAgICBnZXRKc29uUnBjVmVyc2lvbigpIHtcbiAgICAgICAgcmV0dXJuIFwiMS4wXCI7XG4gICAgfVxuICAgIGdldERlZmF1bHRDb250ZW50VHlwZSgpIHtcbiAgICAgICAgcmV0dXJuIFwiYXBwbGljYXRpb24veC1hbXotanNvbi0xLjBcIjtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgQXdzSnNvblJwY1Byb3RvY29sIH0gZnJvbSBcIi4vQXdzSnNvblJwY1Byb3RvY29sXCI7XG5leHBvcnQgY2xhc3MgQXdzSnNvbjFfMVByb3RvY29sIGV4dGVuZHMgQXdzSnNvblJwY1Byb3RvY29sIHtcbiAgICBjb25zdHJ1Y3Rvcih7IGRlZmF1bHROYW1lc3BhY2UsIGVycm9yVHlwZVJlZ2lzdHJpZXMsIHNlcnZpY2VUYXJnZXQsIGF3c1F1ZXJ5Q29tcGF0aWJsZSwganNvbkNvZGVjLCB9KSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIGRlZmF1bHROYW1lc3BhY2UsXG4gICAgICAgICAgICBlcnJvclR5cGVSZWdpc3RyaWVzLFxuICAgICAgICAgICAgc2VydmljZVRhcmdldCxcbiAgICAgICAgICAgIGF3c1F1ZXJ5Q29tcGF0aWJsZSxcbiAgICAgICAgICAgIGpzb25Db2RlYyxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGdldFNoYXBlSWQoKSB7XG4gICAgICAgIHJldHVybiBcImF3cy5wcm90b2NvbHMjYXdzSnNvbjFfMVwiO1xuICAgIH1cbiAgICBnZXRKc29uUnBjVmVyc2lvbigpIHtcbiAgICAgICAgcmV0dXJuIFwiMS4xXCI7XG4gICAgfVxuICAgIGdldERlZmF1bHRDb250ZW50VHlwZSgpIHtcbiAgICAgICAgcmV0dXJuIFwiYXBwbGljYXRpb24veC1hbXotanNvbi0xLjFcIjtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgSHR0cEJpbmRpbmdQcm90b2NvbCwgSHR0cEludGVyY2VwdGluZ1NoYXBlRGVzZXJpYWxpemVyLCBIdHRwSW50ZXJjZXB0aW5nU2hhcGVTZXJpYWxpemVyLCB9IGZyb20gXCJAc21pdGh5L2NvcmUvcHJvdG9jb2xzXCI7XG5pbXBvcnQgeyBOb3JtYWxpemVkU2NoZW1hIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IFByb3RvY29sTGliIH0gZnJvbSBcIi4uL1Byb3RvY29sTGliXCI7XG5pbXBvcnQgeyBKc29uQ29kZWMgfSBmcm9tIFwiLi9Kc29uQ29kZWNcIjtcbmltcG9ydCB7IGxvYWRSZXN0SnNvbkVycm9yQ29kZSB9IGZyb20gXCIuL3BhcnNlSnNvbkJvZHlcIjtcbmV4cG9ydCBjbGFzcyBBd3NSZXN0SnNvblByb3RvY29sIGV4dGVuZHMgSHR0cEJpbmRpbmdQcm90b2NvbCB7XG4gICAgc2VyaWFsaXplcjtcbiAgICBkZXNlcmlhbGl6ZXI7XG4gICAgY29kZWM7XG4gICAgbWl4aW4gPSBuZXcgUHJvdG9jb2xMaWIoKTtcbiAgICBjb25zdHJ1Y3Rvcih7IGRlZmF1bHROYW1lc3BhY2UsIGVycm9yVHlwZVJlZ2lzdHJpZXMsIH0pIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgZGVmYXVsdE5hbWVzcGFjZSxcbiAgICAgICAgICAgIGVycm9yVHlwZVJlZ2lzdHJpZXMsXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBzZXR0aW5ncyA9IHtcbiAgICAgICAgICAgIHRpbWVzdGFtcEZvcm1hdDoge1xuICAgICAgICAgICAgICAgIHVzZVRyYWl0OiB0cnVlLFxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IDcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaHR0cEJpbmRpbmdzOiB0cnVlLFxuICAgICAgICAgICAganNvbk5hbWU6IHRydWUsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuY29kZWMgPSBuZXcgSnNvbkNvZGVjKHNldHRpbmdzKTtcbiAgICAgICAgdGhpcy5zZXJpYWxpemVyID0gbmV3IEh0dHBJbnRlcmNlcHRpbmdTaGFwZVNlcmlhbGl6ZXIodGhpcy5jb2RlYy5jcmVhdGVTZXJpYWxpemVyKCksIHNldHRpbmdzKTtcbiAgICAgICAgdGhpcy5kZXNlcmlhbGl6ZXIgPSBuZXcgSHR0cEludGVyY2VwdGluZ1NoYXBlRGVzZXJpYWxpemVyKHRoaXMuY29kZWMuY3JlYXRlRGVzZXJpYWxpemVyKCksIHNldHRpbmdzKTtcbiAgICB9XG4gICAgZ2V0U2hhcGVJZCgpIHtcbiAgICAgICAgcmV0dXJuIFwiYXdzLnByb3RvY29scyNyZXN0SnNvbjFcIjtcbiAgICB9XG4gICAgZ2V0UGF5bG9hZENvZGVjKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb2RlYztcbiAgICB9XG4gICAgc2V0U2VyZGVDb250ZXh0KHNlcmRlQ29udGV4dCkge1xuICAgICAgICB0aGlzLmNvZGVjLnNldFNlcmRlQ29udGV4dChzZXJkZUNvbnRleHQpO1xuICAgICAgICBzdXBlci5zZXRTZXJkZUNvbnRleHQoc2VyZGVDb250ZXh0KTtcbiAgICB9XG4gICAgYXN5bmMgc2VyaWFsaXplUmVxdWVzdChvcGVyYXRpb25TY2hlbWEsIGlucHV0LCBjb250ZXh0KSB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSBhd2FpdCBzdXBlci5zZXJpYWxpemVSZXF1ZXN0KG9wZXJhdGlvblNjaGVtYSwgaW5wdXQsIGNvbnRleHQpO1xuICAgICAgICBjb25zdCBpbnB1dFNjaGVtYSA9IE5vcm1hbGl6ZWRTY2hlbWEub2Yob3BlcmF0aW9uU2NoZW1hLmlucHV0KTtcbiAgICAgICAgaWYgKCFyZXF1ZXN0LmhlYWRlcnNbXCJjb250ZW50LXR5cGVcIl0pIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRlbnRUeXBlID0gdGhpcy5taXhpbi5yZXNvbHZlUmVzdENvbnRlbnRUeXBlKHRoaXMuZ2V0RGVmYXVsdENvbnRlbnRUeXBlKCksIGlucHV0U2NoZW1hKTtcbiAgICAgICAgICAgIGlmIChjb250ZW50VHlwZSkge1xuICAgICAgICAgICAgICAgIHJlcXVlc3QuaGVhZGVyc1tcImNvbnRlbnQtdHlwZVwiXSA9IGNvbnRlbnRUeXBlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChyZXF1ZXN0LmJvZHkgPT0gbnVsbCAmJiByZXF1ZXN0LmhlYWRlcnNbXCJjb250ZW50LXR5cGVcIl0gPT09IHRoaXMuZ2V0RGVmYXVsdENvbnRlbnRUeXBlKCkpIHtcbiAgICAgICAgICAgIHJlcXVlc3QuYm9keSA9IFwie31cIjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVxdWVzdDtcbiAgICB9XG4gICAgYXN5bmMgZGVzZXJpYWxpemVSZXNwb25zZShvcGVyYXRpb25TY2hlbWEsIGNvbnRleHQsIHJlc3BvbnNlKSB7XG4gICAgICAgIGNvbnN0IG91dHB1dCA9IGF3YWl0IHN1cGVyLmRlc2VyaWFsaXplUmVzcG9uc2Uob3BlcmF0aW9uU2NoZW1hLCBjb250ZXh0LCByZXNwb25zZSk7XG4gICAgICAgIGNvbnN0IG91dHB1dFNjaGVtYSA9IE5vcm1hbGl6ZWRTY2hlbWEub2Yob3BlcmF0aW9uU2NoZW1hLm91dHB1dCk7XG4gICAgICAgIGZvciAoY29uc3QgW25hbWUsIG1lbWJlcl0gb2Ygb3V0cHV0U2NoZW1hLnN0cnVjdEl0ZXJhdG9yKCkpIHtcbiAgICAgICAgICAgIGlmIChtZW1iZXIuZ2V0TWVtYmVyVHJhaXRzKCkuaHR0cFBheWxvYWQgJiYgIShuYW1lIGluIG91dHB1dCkpIHtcbiAgICAgICAgICAgICAgICBvdXRwdXRbbmFtZV0gPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvdXRwdXQ7XG4gICAgfVxuICAgIGFzeW5jIGhhbmRsZUVycm9yKG9wZXJhdGlvblNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UsIGRhdGFPYmplY3QsIG1ldGFkYXRhKSB7XG4gICAgICAgIGNvbnN0IGVycm9ySWRlbnRpZmllciA9IGxvYWRSZXN0SnNvbkVycm9yQ29kZShyZXNwb25zZSwgZGF0YU9iamVjdCkgPz8gXCJVbmtub3duXCI7XG4gICAgICAgIHRoaXMubWl4aW4uY29tcG9zZSh0aGlzLmNvbXBvc2l0ZUVycm9yUmVnaXN0cnksIGVycm9ySWRlbnRpZmllciwgdGhpcy5vcHRpb25zLmRlZmF1bHROYW1lc3BhY2UpO1xuICAgICAgICBjb25zdCB7IGVycm9yU2NoZW1hLCBlcnJvck1ldGFkYXRhIH0gPSBhd2FpdCB0aGlzLm1peGluLmdldEVycm9yU2NoZW1hT3JUaHJvd0Jhc2VFeGNlcHRpb24oZXJyb3JJZGVudGlmaWVyLCB0aGlzLm9wdGlvbnMuZGVmYXVsdE5hbWVzcGFjZSwgcmVzcG9uc2UsIGRhdGFPYmplY3QsIG1ldGFkYXRhKTtcbiAgICAgICAgY29uc3QgbnMgPSBOb3JtYWxpemVkU2NoZW1hLm9mKGVycm9yU2NoZW1hKTtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGRhdGFPYmplY3QubWVzc2FnZSA/PyBkYXRhT2JqZWN0Lk1lc3NhZ2UgPz8gXCJVbmtub3duRXJyb3JcIjtcbiAgICAgICAgY29uc3QgRXJyb3JDdG9yID0gdGhpcy5jb21wb3NpdGVFcnJvclJlZ2lzdHJ5LmdldEVycm9yQ3RvcihlcnJvclNjaGVtYSkgPz8gRXJyb3I7XG4gICAgICAgIGNvbnN0IGV4Y2VwdGlvbiA9IG5ldyBFcnJvckN0b3IobWVzc2FnZSk7XG4gICAgICAgIGF3YWl0IHRoaXMuZGVzZXJpYWxpemVIdHRwTWVzc2FnZShlcnJvclNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UsIGRhdGFPYmplY3QpO1xuICAgICAgICBjb25zdCBvdXRwdXQgPSB7fTtcbiAgICAgICAgY29uc3QgZXJyb3JEZXNlcmlhbGl6ZXIgPSB0aGlzLmNvZGVjLmNyZWF0ZURlc2VyaWFsaXplcigpO1xuICAgICAgICBmb3IgKGNvbnN0IFtuYW1lLCBtZW1iZXJdIG9mIG5zLnN0cnVjdEl0ZXJhdG9yKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IG1lbWJlci5nZXRNZXJnZWRUcmFpdHMoKS5qc29uTmFtZSA/PyBuYW1lO1xuICAgICAgICAgICAgb3V0cHV0W25hbWVdID0gZXJyb3JEZXNlcmlhbGl6ZXIucmVhZE9iamVjdChtZW1iZXIsIGRhdGFPYmplY3RbdGFyZ2V0XSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgdGhpcy5taXhpbi5kZWNvcmF0ZVNlcnZpY2VFeGNlcHRpb24oT2JqZWN0LmFzc2lnbihleGNlcHRpb24sIGVycm9yTWV0YWRhdGEsIHtcbiAgICAgICAgICAgICRmYXVsdDogbnMuZ2V0TWVyZ2VkVHJhaXRzKCkuZXJyb3IsXG4gICAgICAgICAgICBtZXNzYWdlLFxuICAgICAgICB9LCBvdXRwdXQpLCBkYXRhT2JqZWN0KTtcbiAgICB9XG4gICAgZ2V0RGVmYXVsdENvbnRlbnRUeXBlKCkge1xuICAgICAgICByZXR1cm4gXCJhcHBsaWNhdGlvbi9qc29uXCI7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IGV4cGVjdFVuaW9uIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuZXhwb3J0IGNvbnN0IGF3c0V4cGVjdFVuaW9uID0gKHZhbHVlKSA9PiB7XG4gICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIiAmJiBcIl9fdHlwZVwiIGluIHZhbHVlKSB7XG4gICAgICAgIGRlbGV0ZSB2YWx1ZS5fX3R5cGU7XG4gICAgfVxuICAgIHJldHVybiBleHBlY3RVbmlvbih2YWx1ZSk7XG59O1xuIiwgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5FbnRpdHlEZWNvZGVySW1wbCA9IGV4cG9ydHMuQ1VSUkVOQ1kgPSBleHBvcnRzLkNPTU1PTl9IVE1MID0gZXhwb3J0cy5YTUwgPSB2b2lkIDA7XG5leHBvcnRzLlhNTCA9IHtcbiAgICBhbXA6IFwiJlwiLFxuICAgIGFwb3M6IFwiJ1wiLFxuICAgIGd0OiBcIj5cIixcbiAgICBsdDogXCI8XCIsXG4gICAgcXVvdDogJ1wiJyxcbn07XG5leHBvcnRzLkNPTU1PTl9IVE1MID0ge1xuICAgIG5ic3A6IFwiXFx1MDBhMFwiLFxuICAgIGNvcHk6IFwiXFx1MDBhOVwiLFxuICAgIHJlZzogXCJcXHUwMGFlXCIsXG4gICAgdHJhZGU6IFwiXFx1MjEyMlwiLFxuICAgIG1kYXNoOiBcIlxcdTIwMTRcIixcbiAgICBuZGFzaDogXCJcXHUyMDEzXCIsXG4gICAgaGVsbGlwOiBcIlxcdTIwMjZcIixcbiAgICBsYXF1bzogXCJcXHUwMGFiXCIsXG4gICAgcmFxdW86IFwiXFx1MDBiYlwiLFxuICAgIGxzcXVvOiBcIlxcdTIwMThcIixcbiAgICByc3F1bzogXCJcXHUyMDE5XCIsXG4gICAgbGRxdW86IFwiXFx1MjAxY1wiLFxuICAgIHJkcXVvOiBcIlxcdTIwMWRcIixcbiAgICBidWxsOiBcIlxcdTIwMjJcIixcbiAgICBwYXJhOiBcIlxcdTAwYjZcIixcbiAgICBzZWN0OiBcIlxcdTAwYTdcIixcbiAgICBkZWc6IFwiXFx1MDBiMFwiLFxuICAgIGZyYWMxMjogXCJcXHUwMGJkXCIsXG4gICAgZnJhYzE0OiBcIlxcdTAwYmNcIixcbiAgICBmcmFjMzQ6IFwiXFx1MDBiZVwiLFxufTtcbmV4cG9ydHMuQ1VSUkVOQ1kgPSB7XG4gICAgY2VudDogXCJcXHUwMGEyXCIsXG4gICAgcG91bmQ6IFwiXFx1MDBhM1wiLFxuICAgIGN1cnJlbjogXCJcXHUwMGE0XCIsXG4gICAgeWVuOiBcIlxcdTAwYTVcIixcbiAgICBldXJvOiBcIlxcdTIwYWNcIixcbiAgICBkb2xsYXI6IFwiJFwiLFxuICAgIGZub2Y6IFwiXFx1MDE5MlwiLFxuICAgIGlucjogXCJcXHUyMGI5XCIsXG4gICAgYWY6IFwiXFx1MDYwYlwiLFxuICAgIGJpcnI6IFwiXFx1MTI2NVxcdTEyMmRcIixcbiAgICBwZXNvOiBcIlxcdTIwYjFcIixcbiAgICBydWI6IFwiXFx1MjBiZFwiLFxuICAgIHdvbjogXCJcXHUyMGE5XCIsXG4gICAgeXVhbjogXCJcXHUwMGE1XCIsXG4gICAgY2VkaWw6IFwiXFx1MDBiOFwiLFxufTtcbmNvbnN0IFNQRUNJQUxfQ0hBUlMgPSBuZXcgU2V0KFwiIT9cXFxcL1tdJCV7fV4mKigpPD58K1wiKTtcbmZ1bmN0aW9uIHZhbGlkYXRlRW50aXR5TmFtZShuYW1lKSB7XG4gICAgaWYgKG5hbWVbMF0gPT09IFwiI1wiKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgW0VudGl0eVJlcGxhY2VyXSBJbnZhbGlkIGNoYXJhY3RlciAnIycgaW4gZW50aXR5IG5hbWU6IFwiJHtuYW1lfVwiYCk7XG4gICAgfVxuICAgIGZvciAoY29uc3QgY2ggb2YgbmFtZSkge1xuICAgICAgICBpZiAoU1BFQ0lBTF9DSEFSUy5oYXMoY2gpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFtFbnRpdHlSZXBsYWNlcl0gSW52YWxpZCBjaGFyYWN0ZXIgJyR7Y2h9JyBpbiBlbnRpdHkgbmFtZTogXCIke25hbWV9XCJgKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbmFtZTtcbn1cbmZ1bmN0aW9uIG1lcmdlRW50aXR5TWFwcyguLi5tYXBzKSB7XG4gICAgY29uc3Qgb3V0ID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICBmb3IgKGNvbnN0IG1hcCBvZiBtYXBzKSB7XG4gICAgICAgIGlmICghbWFwKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhtYXApKSB7XG4gICAgICAgICAgICBjb25zdCByYXcgPSBtYXBba2V5XTtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgcmF3ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAgICAgb3V0W2tleV0gPSByYXc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChyYXcgJiYgdHlwZW9mIHJhdyA9PT0gXCJvYmplY3RcIiAmJiByYXcudmFsICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWwgPSByYXcudmFsO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAgICAgICAgIG91dFtrZXldID0gdmFsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gb3V0O1xufVxuY29uc3QgTElNSVRfVElFUl9FWFRFUk5BTCA9IFwiZXh0ZXJuYWxcIjtcbmNvbnN0IExJTUlUX1RJRVJfQkFTRSA9IFwiYmFzZVwiO1xuY29uc3QgTElNSVRfVElFUl9BTEwgPSBcImFsbFwiO1xuZnVuY3Rpb24gcGFyc2VMaW1pdFRpZXJzKHJhdykge1xuICAgIGlmICghcmF3IHx8IHJhdyA9PT0gTElNSVRfVElFUl9FWFRFUk5BTCkge1xuICAgICAgICByZXR1cm4gbmV3IFNldChbTElNSVRfVElFUl9FWFRFUk5BTF0pO1xuICAgIH1cbiAgICBpZiAocmF3ID09PSBMSU1JVF9USUVSX0FMTCkge1xuICAgICAgICByZXR1cm4gbmV3IFNldChbTElNSVRfVElFUl9BTExdKTtcbiAgICB9XG4gICAgaWYgKHJhdyA9PT0gTElNSVRfVElFUl9CQVNFKSB7XG4gICAgICAgIHJldHVybiBuZXcgU2V0KFtMSU1JVF9USUVSX0JBU0VdKTtcbiAgICB9XG4gICAgaWYgKEFycmF5LmlzQXJyYXkocmF3KSkge1xuICAgICAgICByZXR1cm4gbmV3IFNldChyYXcpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IFNldChbTElNSVRfVElFUl9FWFRFUk5BTF0pO1xufVxuY29uc3QgTkNSX0xFVkVMID0gT2JqZWN0LmZyZWV6ZSh7IGFsbG93OiAwLCBsZWF2ZTogMSwgcmVtb3ZlOiAyLCB0aHJvdzogMyB9KTtcbmNvbnN0IFhNTDEwX0FMTE9XRURfQzAgPSBuZXcgU2V0KFsweDA5LCAweDBhLCAweDBkXSk7XG5mdW5jdGlvbiBwYXJzZU5DUkNvbmZpZyhuY3IpIHtcbiAgICBpZiAoIW5jcikge1xuICAgICAgICByZXR1cm4geyB4bWxWZXJzaW9uOiAxLjAsIG9uTGV2ZWw6IE5DUl9MRVZFTC5hbGxvdywgbnVsbExldmVsOiBOQ1JfTEVWRUwucmVtb3ZlIH07XG4gICAgfVxuICAgIGNvbnN0IHhtbFZlcnNpb24gPSBuY3IueG1sVmVyc2lvbiA9PT0gMS4xID8gMS4xIDogMS4wO1xuICAgIGNvbnN0IG9uTGV2ZWwgPSBOQ1JfTEVWRUxbbmNyLm9uTkNSID8/IFwiYWxsb3dcIl0gPz8gTkNSX0xFVkVMLmFsbG93O1xuICAgIGNvbnN0IG51bGxMZXZlbCA9IE5DUl9MRVZFTFtuY3IubnVsbE5DUiA/PyBcInJlbW92ZVwiXSA/PyBOQ1JfTEVWRUwucmVtb3ZlO1xuICAgIGNvbnN0IGNsYW1wZWROdWxsID0gTWF0aC5tYXgobnVsbExldmVsLCBOQ1JfTEVWRUwucmVtb3ZlKTtcbiAgICByZXR1cm4geyB4bWxWZXJzaW9uLCBvbkxldmVsLCBudWxsTGV2ZWw6IGNsYW1wZWROdWxsIH07XG59XG5jb25zdCBFbnRpdHlEZWNvZGVySW1wbCA9IGNsYXNzIEVudGl0eURlY29kZXJJbXBsIHtcbiAgICBfbGltaXQ7XG4gICAgX21heFRvdGFsRXhwYW5zaW9ucztcbiAgICBfbWF4RXhwYW5kZWRMZW5ndGg7XG4gICAgX3Bvc3RDaGVjaztcbiAgICBfbGltaXRUaWVycztcbiAgICBfbnVtZXJpY0FsbG93ZWQ7XG4gICAgX2Jhc2VNYXA7XG4gICAgX2V4dGVybmFsTWFwO1xuICAgIF9pbnB1dE1hcDtcbiAgICBfdG90YWxFeHBhbnNpb25zO1xuICAgIF9leHBhbmRlZExlbmd0aDtcbiAgICBfcmVtb3ZlU2V0O1xuICAgIF9sZWF2ZVNldDtcbiAgICBfbmNyWG1sVmVyc2lvbjtcbiAgICBfbmNyT25MZXZlbDtcbiAgICBfbmNyTnVsbExldmVsO1xuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnMgPSB7fSkge1xuICAgICAgICB0aGlzLl9saW1pdCA9IG9wdGlvbnMubGltaXQgfHwge307XG4gICAgICAgIHRoaXMuX21heFRvdGFsRXhwYW5zaW9ucyA9IHRoaXMuX2xpbWl0Lm1heFRvdGFsRXhwYW5zaW9ucyB8fCAwO1xuICAgICAgICB0aGlzLl9tYXhFeHBhbmRlZExlbmd0aCA9IHRoaXMuX2xpbWl0Lm1heEV4cGFuZGVkTGVuZ3RoIHx8IDA7XG4gICAgICAgIHRoaXMuX3Bvc3RDaGVjayA9IHR5cGVvZiBvcHRpb25zLnBvc3RDaGVjayA9PT0gXCJmdW5jdGlvblwiID8gb3B0aW9ucy5wb3N0Q2hlY2sgOiAocikgPT4gcjtcbiAgICAgICAgdGhpcy5fbGltaXRUaWVycyA9IHBhcnNlTGltaXRUaWVycyh0aGlzLl9saW1pdC5hcHBseUxpbWl0c1RvID8/IExJTUlUX1RJRVJfRVhURVJOQUwpO1xuICAgICAgICB0aGlzLl9udW1lcmljQWxsb3dlZCA9IG9wdGlvbnMubnVtZXJpY0FsbG93ZWQgPz8gdHJ1ZTtcbiAgICAgICAgdGhpcy5fYmFzZU1hcCA9IG1lcmdlRW50aXR5TWFwcyhleHBvcnRzLlhNTCwgb3B0aW9ucy5uYW1lZEVudGl0aWVzIHx8IG51bGwpO1xuICAgICAgICB0aGlzLl9leHRlcm5hbE1hcCA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgICAgIHRoaXMuX2lucHV0TWFwID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgICAgdGhpcy5fdG90YWxFeHBhbnNpb25zID0gMDtcbiAgICAgICAgdGhpcy5fZXhwYW5kZWRMZW5ndGggPSAwO1xuICAgICAgICB0aGlzLl9yZW1vdmVTZXQgPSBuZXcgU2V0KG9wdGlvbnMucmVtb3ZlICYmIEFycmF5LmlzQXJyYXkob3B0aW9ucy5yZW1vdmUpID8gb3B0aW9ucy5yZW1vdmUgOiBbXSk7XG4gICAgICAgIHRoaXMuX2xlYXZlU2V0ID0gbmV3IFNldChvcHRpb25zLmxlYXZlICYmIEFycmF5LmlzQXJyYXkob3B0aW9ucy5sZWF2ZSkgPyBvcHRpb25zLmxlYXZlIDogW10pO1xuICAgICAgICBjb25zdCBuY3JDZmcgPSBwYXJzZU5DUkNvbmZpZyhvcHRpb25zLm5jcik7XG4gICAgICAgIHRoaXMuX25jclhtbFZlcnNpb24gPSBuY3JDZmcueG1sVmVyc2lvbjtcbiAgICAgICAgdGhpcy5fbmNyT25MZXZlbCA9IG5jckNmZy5vbkxldmVsO1xuICAgICAgICB0aGlzLl9uY3JOdWxsTGV2ZWwgPSBuY3JDZmcubnVsbExldmVsO1xuICAgIH1cbiAgICBzZXRFeHRlcm5hbEVudGl0aWVzKG1hcCkge1xuICAgICAgICBpZiAobWFwKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhtYXApKSB7XG4gICAgICAgICAgICAgICAgdmFsaWRhdGVFbnRpdHlOYW1lKGtleSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fZXh0ZXJuYWxNYXAgPSBtZXJnZUVudGl0eU1hcHMobWFwKTtcbiAgICB9XG4gICAgYWRkRXh0ZXJuYWxFbnRpdHkoa2V5LCB2YWx1ZSkge1xuICAgICAgICB2YWxpZGF0ZUVudGl0eU5hbWUoa2V5KTtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiAmJiB2YWx1ZS5pbmRleE9mKFwiJlwiKSA9PT0gLTEpIHtcbiAgICAgICAgICAgIHRoaXMuX2V4dGVybmFsTWFwW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBhZGRJbnB1dEVudGl0aWVzKG1hcCkge1xuICAgICAgICB0aGlzLl90b3RhbEV4cGFuc2lvbnMgPSAwO1xuICAgICAgICB0aGlzLl9leHBhbmRlZExlbmd0aCA9IDA7XG4gICAgICAgIHRoaXMuX2lucHV0TWFwID0gbWVyZ2VFbnRpdHlNYXBzKG1hcCk7XG4gICAgfVxuICAgIHJlc2V0KCkge1xuICAgICAgICB0aGlzLl9pbnB1dE1hcCA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgICAgIHRoaXMuX3RvdGFsRXhwYW5zaW9ucyA9IDA7XG4gICAgICAgIHRoaXMuX2V4cGFuZGVkTGVuZ3RoID0gMDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIHNldFhtbFZlcnNpb24odmVyc2lvbikge1xuICAgICAgICB0aGlzLl9uY3JYbWxWZXJzaW9uID0gdmVyc2lvbiA9PT0gXCIxLjFcIiB8fCB2ZXJzaW9uID09PSAxLjEgPyAxLjEgOiAxLjA7XG4gICAgfVxuICAgIGRlY29kZShzdHIpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBzdHIgIT09IFwic3RyaW5nXCIgfHwgc3RyLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIHN0cjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBvcmlnaW5hbCA9IHN0cjtcbiAgICAgICAgY29uc3QgY2h1bmtzID0gW107XG4gICAgICAgIGNvbnN0IGxlbiA9IHN0ci5sZW5ndGg7XG4gICAgICAgIGxldCBsYXN0ID0gMDtcbiAgICAgICAgbGV0IGkgPSAwO1xuICAgICAgICBjb25zdCBsaW1pdEV4cGFuc2lvbnMgPSB0aGlzLl9tYXhUb3RhbEV4cGFuc2lvbnMgPiAwO1xuICAgICAgICBjb25zdCBsaW1pdExlbmd0aCA9IHRoaXMuX21heEV4cGFuZGVkTGVuZ3RoID4gMDtcbiAgICAgICAgY29uc3QgY2hlY2tMaW1pdHMgPSBsaW1pdEV4cGFuc2lvbnMgfHwgbGltaXRMZW5ndGg7XG4gICAgICAgIHdoaWxlIChpIDwgbGVuKSB7XG4gICAgICAgICAgICBpZiAoc3RyLmNoYXJDb2RlQXQoaSkgIT09IDM4KSB7XG4gICAgICAgICAgICAgICAgaSsrO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IGogPSBpICsgMTtcbiAgICAgICAgICAgIHdoaWxlIChqIDwgbGVuICYmIHN0ci5jaGFyQ29kZUF0KGopICE9PSA1OSAmJiBqIC0gaSA8PSAzMikge1xuICAgICAgICAgICAgICAgIGorKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChqID49IGxlbiB8fCBzdHIuY2hhckNvZGVBdChqKSAhPT0gNTkpIHtcbiAgICAgICAgICAgICAgICBpKys7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCB0b2tlbiA9IHN0ci5zbGljZShpICsgMSwgaik7XG4gICAgICAgICAgICBpZiAodG9rZW4ubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgaSsrO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IHJlcGxhY2VtZW50O1xuICAgICAgICAgICAgbGV0IHRpZXI7XG4gICAgICAgICAgICBpZiAodGhpcy5fcmVtb3ZlU2V0Lmhhcyh0b2tlbikpIHtcbiAgICAgICAgICAgICAgICByZXBsYWNlbWVudCA9IFwiXCI7XG4gICAgICAgICAgICAgICAgaWYgKHRpZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICB0aWVyID0gTElNSVRfVElFUl9FWFRFUk5BTDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmICh0aGlzLl9sZWF2ZVNldC5oYXModG9rZW4pKSB7XG4gICAgICAgICAgICAgICAgaSsrO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAodG9rZW4uY2hhckNvZGVBdCgwKSA9PT0gMzUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBuY3JSZXN1bHQgPSB0aGlzLl9yZXNvbHZlTkNSKHRva2VuKTtcbiAgICAgICAgICAgICAgICBpZiAobmNyUmVzdWx0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgaSsrO1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmVwbGFjZW1lbnQgPSBuY3JSZXN1bHQ7XG4gICAgICAgICAgICAgICAgdGllciA9IExJTUlUX1RJRVJfQkFTRTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc29sdmVkID0gdGhpcy5fcmVzb2x2ZU5hbWUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHJlcGxhY2VtZW50ID0gcmVzb2x2ZWQ/LnZhbHVlO1xuICAgICAgICAgICAgICAgIHRpZXIgPSByZXNvbHZlZD8udGllcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgaSsrO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGkgPiBsYXN0KSB7XG4gICAgICAgICAgICAgICAgY2h1bmtzLnB1c2goc3RyLnNsaWNlKGxhc3QsIGkpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNodW5rcy5wdXNoKHJlcGxhY2VtZW50KTtcbiAgICAgICAgICAgIGxhc3QgPSBqICsgMTtcbiAgICAgICAgICAgIGkgPSBsYXN0O1xuICAgICAgICAgICAgaWYgKGNoZWNrTGltaXRzICYmIHRoaXMuX3RpZXJDb3VudHModGllcikpIHtcbiAgICAgICAgICAgICAgICBpZiAobGltaXRFeHBhbnNpb25zKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3RvdGFsRXhwYW5zaW9ucysrO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fdG90YWxFeHBhbnNpb25zID4gdGhpcy5fbWF4VG90YWxFeHBhbnNpb25zKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFtFbnRpdHlSZXBsYWNlcl0gRW50aXR5IGV4cGFuc2lvbiBjb3VudCBsaW1pdCBleGNlZWRlZDogYCArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYCR7dGhpcy5fdG90YWxFeHBhbnNpb25zfSA+ICR7dGhpcy5fbWF4VG90YWxFeHBhbnNpb25zfWApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChsaW1pdExlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkZWx0YSA9IHJlcGxhY2VtZW50Lmxlbmd0aCAtICh0b2tlbi5sZW5ndGggKyAyKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRlbHRhID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fZXhwYW5kZWRMZW5ndGggKz0gZGVsdGE7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fZXhwYW5kZWRMZW5ndGggPiB0aGlzLl9tYXhFeHBhbmRlZExlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgW0VudGl0eVJlcGxhY2VyXSBFeHBhbmRlZCBjb250ZW50IGxlbmd0aCBsaW1pdCBleGNlZWRlZDogYCArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGAke3RoaXMuX2V4cGFuZGVkTGVuZ3RofSA+ICR7dGhpcy5fbWF4RXhwYW5kZWRMZW5ndGh9YCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxhc3QgPCBsZW4pIHtcbiAgICAgICAgICAgIGNodW5rcy5wdXNoKHN0ci5zbGljZShsYXN0KSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gY2h1bmtzLmxlbmd0aCA9PT0gMCA/IHN0ciA6IGNodW5rcy5qb2luKFwiXCIpO1xuICAgICAgICByZXR1cm4gdGhpcy5fcG9zdENoZWNrKHJlc3VsdCwgb3JpZ2luYWwpO1xuICAgIH1cbiAgICBfdGllckNvdW50cyh0aWVyKSB7XG4gICAgICAgIGlmICh0aGlzLl9saW1pdFRpZXJzLmhhcyhMSU1JVF9USUVSX0FMTCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9saW1pdFRpZXJzLmhhcyh0aWVyKTtcbiAgICB9XG4gICAgX3Jlc29sdmVOYW1lKG5hbWUpIHtcbiAgICAgICAgaWYgKG5hbWUgaW4gdGhpcy5faW5wdXRNYXApIHtcbiAgICAgICAgICAgIHJldHVybiB7IHZhbHVlOiB0aGlzLl9pbnB1dE1hcFtuYW1lXSwgdGllcjogTElNSVRfVElFUl9FWFRFUk5BTCB9O1xuICAgICAgICB9XG4gICAgICAgIGlmIChuYW1lIGluIHRoaXMuX2V4dGVybmFsTWFwKSB7XG4gICAgICAgICAgICByZXR1cm4geyB2YWx1ZTogdGhpcy5fZXh0ZXJuYWxNYXBbbmFtZV0sIHRpZXI6IExJTUlUX1RJRVJfRVhURVJOQUwgfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobmFtZSBpbiB0aGlzLl9iYXNlTWFwKSB7XG4gICAgICAgICAgICByZXR1cm4geyB2YWx1ZTogdGhpcy5fYmFzZU1hcFtuYW1lXSwgdGllcjogTElNSVRfVElFUl9CQVNFIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgX2NsYXNzaWZ5TkNSKGNwKSB7XG4gICAgICAgIGlmIChjcCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX25jck51bGxMZXZlbDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY3AgPj0gMHhkODAwICYmIGNwIDw9IDB4ZGZmZikge1xuICAgICAgICAgICAgcmV0dXJuIE5DUl9MRVZFTC5yZW1vdmU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuX25jclhtbFZlcnNpb24gPT09IDEuMCkge1xuICAgICAgICAgICAgaWYgKGNwID49IDB4MDEgJiYgY3AgPD0gMHgxZiAmJiAhWE1MMTBfQUxMT1dFRF9DMC5oYXMoY3ApKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIE5DUl9MRVZFTC5yZW1vdmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIC0xO1xuICAgIH1cbiAgICBfYXBwbHlOQ1JBY3Rpb24oYWN0aW9uLCB0b2tlbiwgY3ApIHtcbiAgICAgICAgc3dpdGNoIChhY3Rpb24pIHtcbiAgICAgICAgICAgIGNhc2UgTkNSX0xFVkVMLmFsbG93OlxuICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmcuZnJvbUNvZGVQb2ludChjcCk7XG4gICAgICAgICAgICBjYXNlIE5DUl9MRVZFTC5yZW1vdmU6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiXCI7XG4gICAgICAgICAgICBjYXNlIE5DUl9MRVZFTC5sZWF2ZTpcbiAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgY2FzZSBOQ1JfTEVWRUwudGhyb3c6XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBbRW50aXR5RGVjb2Rlcl0gUHJvaGliaXRlZCBudW1lcmljIGNoYXJhY3RlciByZWZlcmVuY2UgYCArXG4gICAgICAgICAgICAgICAgICAgIGAmJHt0b2tlbn07IChVKyR7Y3AudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCkucGFkU3RhcnQoNCwgXCIwXCIpfSlgKTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZy5mcm9tQ29kZVBvaW50KGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBfcmVzb2x2ZU5DUih0b2tlbikge1xuICAgICAgICBjb25zdCBzZWNvbmQgPSB0b2tlbi5jaGFyQ29kZUF0KDEpO1xuICAgICAgICBsZXQgY3A7XG4gICAgICAgIGlmIChzZWNvbmQgPT09IDEyMCB8fCBzZWNvbmQgPT09IDg4KSB7XG4gICAgICAgICAgICBjcCA9IHBhcnNlSW50KHRva2VuLnNsaWNlKDIpLCAxNik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjcCA9IHBhcnNlSW50KHRva2VuLnNsaWNlKDEpLCAxMCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKE51bWJlci5pc05hTihjcCkgfHwgY3AgPCAwIHx8IGNwID4gMHgxMGZmZmYpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbWluaW11bSA9IHRoaXMuX2NsYXNzaWZ5TkNSKGNwKTtcbiAgICAgICAgaWYgKCF0aGlzLl9udW1lcmljQWxsb3dlZCAmJiBtaW5pbXVtIDwgTkNSX0xFVkVMLnJlbW92ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBlZmZlY3RpdmUgPSBtaW5pbXVtID09PSAtMSA/IHRoaXMuX25jck9uTGV2ZWwgOiBNYXRoLm1heCh0aGlzLl9uY3JPbkxldmVsLCBtaW5pbXVtKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FwcGx5TkNSQWN0aW9uKGVmZmVjdGl2ZSwgdG9rZW4sIGNwKTtcbiAgICB9XG59O1xuZXhwb3J0cy5FbnRpdHlEZWNvZGVySW1wbCA9IEVudGl0eURlY29kZXJJbXBsO1xuIiwgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5wYXJzZVhNTCA9IHBhcnNlWE1MO1xuY29uc3QgZmFzdF94bWxfcGFyc2VyXzEgPSByZXF1aXJlKFwiZmFzdC14bWwtcGFyc2VyXCIpO1xuY29uc3Qgbm9kYWJsZV9lbnRpdGllc18xID0gcmVxdWlyZShcIi4veG1sLWV4dGVybmFsL25vZGFibGVfZW50aXRpZXNcIik7XG5jb25zdCBlbnRpdHlEZWNvZGVyID0gbmV3IG5vZGFibGVfZW50aXRpZXNfMS5FbnRpdHlEZWNvZGVySW1wbCh7XG4gICAgbmFtZWRFbnRpdGllczogeyAuLi5ub2RhYmxlX2VudGl0aWVzXzEuWE1MLCAuLi5ub2RhYmxlX2VudGl0aWVzXzEuQ09NTU9OX0hUTUwsIC4uLm5vZGFibGVfZW50aXRpZXNfMS5DVVJSRU5DWSB9LFxuICAgIG51bWVyaWNBbGxvd2VkOiB0cnVlLFxuICAgIGxpbWl0OiB7XG4gICAgICAgIG1heFRvdGFsRXhwYW5zaW9uczogSW5maW5pdHksXG4gICAgfSxcbiAgICBuY3I6IHtcbiAgICAgICAgeG1sVmVyc2lvbjogMS4xLFxuICAgIH0sXG59KTtcbmNvbnN0IHBhcnNlciA9IG5ldyBmYXN0X3htbF9wYXJzZXJfMS5YTUxQYXJzZXIoe1xuICAgIGF0dHJpYnV0ZU5hbWVQcmVmaXg6IFwiXCIsXG4gICAgcHJvY2Vzc0VudGl0aWVzOiB7XG4gICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgIG1heFRvdGFsRXhwYW5zaW9uczogSW5maW5pdHksXG4gICAgfSxcbiAgICBodG1sRW50aXRpZXM6IHRydWUsXG4gICAgZW50aXR5RGVjb2Rlcjoge1xuICAgICAgICBzZXRFeHRlcm5hbEVudGl0aWVzOiAoZW50aXRpZXMpID0+IHtcbiAgICAgICAgICAgIGVudGl0eURlY29kZXIuc2V0RXh0ZXJuYWxFbnRpdGllcyhlbnRpdGllcyk7XG4gICAgICAgIH0sXG4gICAgICAgIGFkZElucHV0RW50aXRpZXM6IChlbnRpdGllcykgPT4ge1xuICAgICAgICAgICAgZW50aXR5RGVjb2Rlci5hZGRJbnB1dEVudGl0aWVzKGVudGl0aWVzKTtcbiAgICAgICAgfSxcbiAgICAgICAgcmVzZXQ6ICgpID0+IHtcbiAgICAgICAgICAgIGVudGl0eURlY29kZXIucmVzZXQoKTtcbiAgICAgICAgfSxcbiAgICAgICAgZGVjb2RlOiAodGV4dCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGVudGl0eURlY29kZXIuZGVjb2RlKHRleHQpO1xuICAgICAgICB9LFxuICAgICAgICBzZXRYbWxWZXJzaW9uOiAodmVyc2lvbikgPT4gdm9pZCB7fSxcbiAgICB9LFxuICAgIGlnbm9yZUF0dHJpYnV0ZXM6IGZhbHNlLFxuICAgIGlnbm9yZURlY2xhcmF0aW9uOiB0cnVlLFxuICAgIHBhcnNlVGFnVmFsdWU6IGZhbHNlLFxuICAgIHRyaW1WYWx1ZXM6IGZhbHNlLFxuICAgIHRhZ1ZhbHVlUHJvY2Vzc29yOiAoXywgdmFsKSA9PiAodmFsLnRyaW0oKSA9PT0gXCJcIiAmJiB2YWwuaW5jbHVkZXMoXCJcXG5cIikgPyBcIlwiIDogdW5kZWZpbmVkKSxcbiAgICBtYXhOZXN0ZWRUYWdzOiBJbmZpbml0eSxcbn0pO1xuZnVuY3Rpb24gcGFyc2VYTUwoeG1sU3RyaW5nKSB7XG4gICAgcmV0dXJuIHBhcnNlci5wYXJzZSh4bWxTdHJpbmcsIHRydWUpO1xufVxuIiwgIid1c2Ugc3RyaWN0JztcblxudmFyIHhtbFBhcnNlciA9IHJlcXVpcmUoJy4veG1sLXBhcnNlcicpO1xuXG5jb25zdCBBVFRSX0VTQ0FQRV9SRSA9IC9bJjw+XCJdL2c7XG5jb25zdCBBVFRSX0VTQ0FQRV9NQVAgPSB7XG4gICAgXCImXCI6IFwiJmFtcDtcIixcbiAgICBcIjxcIjogXCImbHQ7XCIsXG4gICAgXCI+XCI6IFwiJmd0O1wiLFxuICAgICdcIic6IFwiJnF1b3Q7XCIsXG59O1xuZnVuY3Rpb24gZXNjYXBlQXR0cmlidXRlKHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlLnJlcGxhY2UoQVRUUl9FU0NBUEVfUkUsIChjaCkgPT4gQVRUUl9FU0NBUEVfTUFQW2NoXSk7XG59XG5cbmNvbnN0IEVMRU1FTlRfRVNDQVBFX1JFID0gL1smXCInPD5cXHJcXG5cXHUwMDg1XFx1MjAyOF0vZztcbmNvbnN0IEVMRU1FTlRfRVNDQVBFX01BUCA9IHtcbiAgICBcIiZcIjogXCImYW1wO1wiLFxuICAgICdcIic6IFwiJnF1b3Q7XCIsXG4gICAgXCInXCI6IFwiJmFwb3M7XCIsXG4gICAgXCI8XCI6IFwiJmx0O1wiLFxuICAgIFwiPlwiOiBcIiZndDtcIixcbiAgICBcIlxcclwiOiBcIiYjeDBEO1wiLFxuICAgIFwiXFxuXCI6IFwiJiN4MEE7XCIsXG4gICAgXCJcXHUwMDg1XCI6IFwiJiN4ODU7XCIsXG4gICAgXCJcXHUyMDI4XCI6IFwiJiN4MjAyODtcIixcbn07XG5mdW5jdGlvbiBlc2NhcGVFbGVtZW50KHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlLnJlcGxhY2UoRUxFTUVOVF9FU0NBUEVfUkUsIChjaCkgPT4gRUxFTUVOVF9FU0NBUEVfTUFQW2NoXSk7XG59XG5cbmNsYXNzIFhtbFRleHQge1xuICAgIHZhbHVlO1xuICAgIGNvbnN0cnVjdG9yKHZhbHVlKSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB9XG4gICAgdG9TdHJpbmcoKSB7XG4gICAgICAgIHJldHVybiBlc2NhcGVFbGVtZW50KFwiXCIgKyB0aGlzLnZhbHVlKTtcbiAgICB9XG59XG5cbmNsYXNzIFhtbE5vZGUge1xuICAgIG5hbWU7XG4gICAgY2hpbGRyZW47XG4gICAgYXR0cmlidXRlcyA9IHt9O1xuICAgIHN0YXRpYyBvZihuYW1lLCBjaGlsZFRleHQsIHdpdGhOYW1lKSB7XG4gICAgICAgIGNvbnN0IG5vZGUgPSBuZXcgWG1sTm9kZShuYW1lKTtcbiAgICAgICAgaWYgKGNoaWxkVGV4dCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBub2RlLmFkZENoaWxkTm9kZShuZXcgWG1sVGV4dChjaGlsZFRleHQpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAod2l0aE5hbWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgbm9kZS53aXRoTmFtZSh3aXRoTmFtZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5vZGU7XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKG5hbWUsIGNoaWxkcmVuID0gW10pIHtcbiAgICAgICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICAgICAgdGhpcy5jaGlsZHJlbiA9IGNoaWxkcmVuO1xuICAgIH1cbiAgICB3aXRoTmFtZShuYW1lKSB7XG4gICAgICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBhZGRBdHRyaWJ1dGUobmFtZSwgdmFsdWUpIHtcbiAgICAgICAgdGhpcy5hdHRyaWJ1dGVzW25hbWVdID0gdmFsdWU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBhZGRDaGlsZE5vZGUoY2hpbGQpIHtcbiAgICAgICAgdGhpcy5jaGlsZHJlbi5wdXNoKGNoaWxkKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIHJlbW92ZUF0dHJpYnV0ZShuYW1lKSB7XG4gICAgICAgIGRlbGV0ZSB0aGlzLmF0dHJpYnV0ZXNbbmFtZV07XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBuKG5hbWUpIHtcbiAgICAgICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIGMoY2hpbGQpIHtcbiAgICAgICAgdGhpcy5jaGlsZHJlbi5wdXNoKGNoaWxkKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIGEobmFtZSwgdmFsdWUpIHtcbiAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuYXR0cmlidXRlc1tuYW1lXSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBjYyhpbnB1dCwgZmllbGQsIHdpdGhOYW1lID0gZmllbGQpIHtcbiAgICAgICAgaWYgKGlucHV0W2ZpZWxkXSAhPSBudWxsKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlID0gWG1sTm9kZS5vZihmaWVsZCwgaW5wdXRbZmllbGRdKS53aXRoTmFtZSh3aXRoTmFtZSk7XG4gICAgICAgICAgICB0aGlzLmMobm9kZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbChpbnB1dCwgbGlzdE5hbWUsIG1lbWJlck5hbWUsIHZhbHVlUHJvdmlkZXIpIHtcbiAgICAgICAgaWYgKGlucHV0W2xpc3ROYW1lXSAhPSBudWxsKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlcyA9IHZhbHVlUHJvdmlkZXIoKTtcbiAgICAgICAgICAgIG5vZGVzLm1hcCgobm9kZSkgPT4ge1xuICAgICAgICAgICAgICAgIG5vZGUud2l0aE5hbWUobWVtYmVyTmFtZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5jKG5vZGUpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbGMoaW5wdXQsIGxpc3ROYW1lLCBtZW1iZXJOYW1lLCB2YWx1ZVByb3ZpZGVyKSB7XG4gICAgICAgIGlmIChpbnB1dFtsaXN0TmFtZV0gIT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZXMgPSB2YWx1ZVByb3ZpZGVyKCk7XG4gICAgICAgICAgICBjb25zdCBjb250YWluZXJOb2RlID0gbmV3IFhtbE5vZGUobWVtYmVyTmFtZSk7XG4gICAgICAgICAgICBub2Rlcy5tYXAoKG5vZGUpID0+IHtcbiAgICAgICAgICAgICAgICBjb250YWluZXJOb2RlLmMobm9kZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuYyhjb250YWluZXJOb2RlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICB0b1N0cmluZygpIHtcbiAgICAgICAgY29uc3QgaGFzQ2hpbGRyZW4gPSBCb29sZWFuKHRoaXMuY2hpbGRyZW4ubGVuZ3RoKTtcbiAgICAgICAgbGV0IHhtbFRleHQgPSBgPCR7dGhpcy5uYW1lfWA7XG4gICAgICAgIGNvbnN0IGF0dHJpYnV0ZXMgPSB0aGlzLmF0dHJpYnV0ZXM7XG4gICAgICAgIGZvciAoY29uc3QgYXR0cmlidXRlTmFtZSBvZiBPYmplY3Qua2V5cyhhdHRyaWJ1dGVzKSkge1xuICAgICAgICAgICAgY29uc3QgYXR0cmlidXRlID0gYXR0cmlidXRlc1thdHRyaWJ1dGVOYW1lXTtcbiAgICAgICAgICAgIGlmIChhdHRyaWJ1dGUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHhtbFRleHQgKz0gYCAke2F0dHJpYnV0ZU5hbWV9PVwiJHtlc2NhcGVBdHRyaWJ1dGUoXCJcIiArIGF0dHJpYnV0ZSl9XCJgO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiAoeG1sVGV4dCArPSAhaGFzQ2hpbGRyZW4gPyBcIi8+XCIgOiBgPiR7dGhpcy5jaGlsZHJlbi5tYXAoKGMpID0+IGMudG9TdHJpbmcoKSkuam9pbihcIlwiKX08LyR7dGhpcy5uYW1lfT5gKTtcbiAgICB9XG59XG5cbmV4cG9ydHMucGFyc2VYTUwgPSB4bWxQYXJzZXIucGFyc2VYTUw7XG5leHBvcnRzLlhtbE5vZGUgPSBYbWxOb2RlO1xuZXhwb3J0cy5YbWxUZXh0ID0gWG1sVGV4dDtcbiIsICJpbXBvcnQgeyBwYXJzZVhNTCB9IGZyb20gXCJAYXdzLXNkay94bWwtYnVpbGRlclwiO1xuaW1wb3J0IHsgRnJvbVN0cmluZ1NoYXBlRGVzZXJpYWxpemVyIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9wcm90b2NvbHNcIjtcbmltcG9ydCB7IE5vcm1hbGl6ZWRTY2hlbWEgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3NjaGVtYVwiO1xuaW1wb3J0IHsgZ2V0VmFsdWVGcm9tVGV4dE5vZGUgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyB0b1V0ZjggfSBmcm9tIFwiQHNtaXRoeS91dGlsLXV0ZjhcIjtcbmltcG9ydCB7IFNlcmRlQ29udGV4dENvbmZpZyB9IGZyb20gXCIuLi9Db25maWd1cmFibGVTZXJkZUNvbnRleHRcIjtcbmltcG9ydCB7IFVuaW9uU2VyZGUgfSBmcm9tIFwiLi4vVW5pb25TZXJkZVwiO1xuZXhwb3J0IGNsYXNzIFhtbFNoYXBlRGVzZXJpYWxpemVyIGV4dGVuZHMgU2VyZGVDb250ZXh0Q29uZmlnIHtcbiAgICBzZXR0aW5ncztcbiAgICBzdHJpbmdEZXNlcmlhbGl6ZXI7XG4gICAgY29uc3RydWN0b3Ioc2V0dGluZ3MpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5zZXR0aW5ncyA9IHNldHRpbmdzO1xuICAgICAgICB0aGlzLnN0cmluZ0Rlc2VyaWFsaXplciA9IG5ldyBGcm9tU3RyaW5nU2hhcGVEZXNlcmlhbGl6ZXIoc2V0dGluZ3MpO1xuICAgIH1cbiAgICBzZXRTZXJkZUNvbnRleHQoc2VyZGVDb250ZXh0KSB7XG4gICAgICAgIHRoaXMuc2VyZGVDb250ZXh0ID0gc2VyZGVDb250ZXh0O1xuICAgICAgICB0aGlzLnN0cmluZ0Rlc2VyaWFsaXplci5zZXRTZXJkZUNvbnRleHQoc2VyZGVDb250ZXh0KTtcbiAgICB9XG4gICAgcmVhZChzY2hlbWEsIGJ5dGVzLCBrZXkpIHtcbiAgICAgICAgY29uc3QgbnMgPSBOb3JtYWxpemVkU2NoZW1hLm9mKHNjaGVtYSk7XG4gICAgICAgIGNvbnN0IG1lbWJlclNjaGVtYXMgPSBucy5nZXRNZW1iZXJTY2hlbWFzKCk7XG4gICAgICAgIGNvbnN0IGlzRXZlbnRQYXlsb2FkID0gbnMuaXNTdHJ1Y3RTY2hlbWEoKSAmJlxuICAgICAgICAgICAgbnMuaXNNZW1iZXJTY2hlbWEoKSAmJlxuICAgICAgICAgICAgISFPYmplY3QudmFsdWVzKG1lbWJlclNjaGVtYXMpLmZpbmQoKG1lbWJlck5zKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICEhbWVtYmVyTnMuZ2V0TWVtYmVyVHJhaXRzKCkuZXZlbnRQYXlsb2FkO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIGlmIChpc0V2ZW50UGF5bG9hZCkge1xuICAgICAgICAgICAgY29uc3Qgb3V0cHV0ID0ge307XG4gICAgICAgICAgICBjb25zdCBtZW1iZXJOYW1lID0gT2JqZWN0LmtleXMobWVtYmVyU2NoZW1hcylbMF07XG4gICAgICAgICAgICBjb25zdCBldmVudE1lbWJlclNjaGVtYSA9IG1lbWJlclNjaGVtYXNbbWVtYmVyTmFtZV07XG4gICAgICAgICAgICBpZiAoZXZlbnRNZW1iZXJTY2hlbWEuaXNCbG9iU2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICBvdXRwdXRbbWVtYmVyTmFtZV0gPSBieXRlcztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIG91dHB1dFttZW1iZXJOYW1lXSA9IHRoaXMucmVhZChtZW1iZXJTY2hlbWFzW21lbWJlck5hbWVdLCBieXRlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gb3V0cHV0O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHhtbFN0cmluZyA9ICh0aGlzLnNlcmRlQ29udGV4dD8udXRmOEVuY29kZXIgPz8gdG9VdGY4KShieXRlcyk7XG4gICAgICAgIGNvbnN0IHBhcnNlZE9iamVjdCA9IHRoaXMucGFyc2VYbWwoeG1sU3RyaW5nKTtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVhZFNjaGVtYShzY2hlbWEsIGtleSA/IHBhcnNlZE9iamVjdFtrZXldIDogcGFyc2VkT2JqZWN0KTtcbiAgICB9XG4gICAgcmVhZFNjaGVtYShfc2NoZW1hLCB2YWx1ZSkge1xuICAgICAgICBjb25zdCBucyA9IE5vcm1hbGl6ZWRTY2hlbWEub2YoX3NjaGVtYSk7XG4gICAgICAgIGlmIChucy5pc1VuaXRTY2hlbWEoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHRyYWl0cyA9IG5zLmdldE1lcmdlZFRyYWl0cygpO1xuICAgICAgICBpZiAobnMuaXNMaXN0U2NoZW1hKCkgJiYgIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yZWFkU2NoZW1hKG5zLCBbdmFsdWVdKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgIGNvbnN0IGZsYXQgPSAhIXRyYWl0cy54bWxGbGF0dGVuZWQ7XG4gICAgICAgICAgICBpZiAobnMuaXNMaXN0U2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBsaXN0VmFsdWUgPSBucy5nZXRWYWx1ZVNjaGVtYSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGJ1ZmZlciA9IFtdO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNvdXJjZUtleSA9IGxpc3RWYWx1ZS5nZXRNZXJnZWRUcmFpdHMoKS54bWxOYW1lID8/IFwibWVtYmVyXCI7XG4gICAgICAgICAgICAgICAgY29uc3Qgc291cmNlID0gZmxhdCA/IHZhbHVlIDogKHZhbHVlWzBdID8/IHZhbHVlKVtzb3VyY2VLZXldO1xuICAgICAgICAgICAgICAgIGlmIChzb3VyY2UgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYnVmZmVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBzb3VyY2VBcnJheSA9IEFycmF5LmlzQXJyYXkoc291cmNlKSA/IHNvdXJjZSA6IFtzb3VyY2VdO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgdiBvZiBzb3VyY2VBcnJheSkge1xuICAgICAgICAgICAgICAgICAgICBidWZmZXIucHVzaCh0aGlzLnJlYWRTY2hlbWEobGlzdFZhbHVlLCB2KSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBidWZmZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBidWZmZXIgPSB7fTtcbiAgICAgICAgICAgIGlmIChucy5pc01hcFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qga2V5TnMgPSBucy5nZXRLZXlTY2hlbWEoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBtZW1iZXJOcyA9IG5zLmdldFZhbHVlU2NoZW1hKCk7XG4gICAgICAgICAgICAgICAgbGV0IGVudHJpZXM7XG4gICAgICAgICAgICAgICAgaWYgKGZsYXQpIHtcbiAgICAgICAgICAgICAgICAgICAgZW50cmllcyA9IEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbdmFsdWVdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgZW50cmllcyA9IEFycmF5LmlzQXJyYXkodmFsdWUuZW50cnkpID8gdmFsdWUuZW50cnkgOiBbdmFsdWUuZW50cnldO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBrZXlQcm9wZXJ0eSA9IGtleU5zLmdldE1lcmdlZFRyYWl0cygpLnhtbE5hbWUgPz8gXCJrZXlcIjtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZVByb3BlcnR5ID0gbWVtYmVyTnMuZ2V0TWVyZ2VkVHJhaXRzKCkueG1sTmFtZSA/PyBcInZhbHVlXCI7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBlbnRyeSBvZiBlbnRyaWVzKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IGVudHJ5W2tleVByb3BlcnR5XTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBlbnRyeVt2YWx1ZVByb3BlcnR5XTtcbiAgICAgICAgICAgICAgICAgICAgYnVmZmVyW2tleV0gPSB0aGlzLnJlYWRTY2hlbWEobWVtYmVyTnMsIHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGJ1ZmZlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChucy5pc1N0cnVjdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdW5pb24gPSBucy5pc1VuaW9uU2NoZW1hKCk7XG4gICAgICAgICAgICAgICAgbGV0IHVuaW9uU2VyZGU7XG4gICAgICAgICAgICAgICAgaWYgKHVuaW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIHVuaW9uU2VyZGUgPSBuZXcgVW5pb25TZXJkZSh2YWx1ZSwgYnVmZmVyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBbbWVtYmVyTmFtZSwgbWVtYmVyU2NoZW1hXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1lbWJlclRyYWl0cyA9IG1lbWJlclNjaGVtYS5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sT2JqZWN0S2V5ID0gIW1lbWJlclRyYWl0cy5odHRwUGF5bG9hZFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBtZW1iZXJTY2hlbWEuZ2V0TWVtYmVyVHJhaXRzKCkueG1sTmFtZSA/PyBtZW1iZXJOYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICA6IG1lbWJlclRyYWl0cy54bWxOYW1lID8/IG1lbWJlclNjaGVtYS5nZXROYW1lKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh1bmlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdW5pb25TZXJkZS5tYXJrKHhtbE9iamVjdEtleSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlW3htbE9iamVjdEtleV0gIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyW21lbWJlck5hbWVdID0gdGhpcy5yZWFkU2NoZW1hKG1lbWJlclNjaGVtYSwgdmFsdWVbeG1sT2JqZWN0S2V5XSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHVuaW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIHVuaW9uU2VyZGUud3JpdGVVbmtub3duKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBidWZmZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobnMuaXNEb2N1bWVudFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBAYXdzLXNkay9jb3JlL3Byb3RvY29scyAtIHhtbCBkZXNlcmlhbGl6ZXIgdW5oYW5kbGVkIHNjaGVtYSB0eXBlIGZvciAke25zLmdldE5hbWUodHJ1ZSl9YCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzTGlzdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzTWFwU2NoZW1hKCkgfHwgbnMuaXNTdHJ1Y3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnN0cmluZ0Rlc2VyaWFsaXplci5yZWFkKG5zLCB2YWx1ZSk7XG4gICAgfVxuICAgIHBhcnNlWG1sKHhtbCkge1xuICAgICAgICBpZiAoeG1sLmxlbmd0aCkge1xuICAgICAgICAgICAgbGV0IHBhcnNlZE9iajtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgcGFyc2VkT2JqID0gcGFyc2VYTUwoeG1sKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgaWYgKGUgJiYgdHlwZW9mIGUgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIFwiJHJlc3BvbnNlQm9keVRleHRcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHhtbCxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCB0ZXh0Tm9kZU5hbWUgPSBcIiN0ZXh0XCI7XG4gICAgICAgICAgICBjb25zdCBrZXkgPSBPYmplY3Qua2V5cyhwYXJzZWRPYmopWzBdO1xuICAgICAgICAgICAgY29uc3QgcGFyc2VkT2JqVG9SZXR1cm4gPSBwYXJzZWRPYmpba2V5XTtcbiAgICAgICAgICAgIGlmIChwYXJzZWRPYmpUb1JldHVyblt0ZXh0Tm9kZU5hbWVdKSB7XG4gICAgICAgICAgICAgICAgcGFyc2VkT2JqVG9SZXR1cm5ba2V5XSA9IHBhcnNlZE9ialRvUmV0dXJuW3RleHROb2RlTmFtZV07XG4gICAgICAgICAgICAgICAgZGVsZXRlIHBhcnNlZE9ialRvUmV0dXJuW3RleHROb2RlTmFtZV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZ2V0VmFsdWVGcm9tVGV4dE5vZGUocGFyc2VkT2JqVG9SZXR1cm4pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7fTtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgZGV0ZXJtaW5lVGltZXN0YW1wRm9ybWF0LCBleHRlbmRlZEVuY29kZVVSSUNvbXBvbmVudCB9IGZyb20gXCJAc21pdGh5L2NvcmUvcHJvdG9jb2xzXCI7XG5pbXBvcnQgeyBOb3JtYWxpemVkU2NoZW1hIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IGdlbmVyYXRlSWRlbXBvdGVuY3lUb2tlbiwgTnVtZXJpY1ZhbHVlIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zZXJkZVwiO1xuaW1wb3J0IHsgZGF0ZVRvVXRjU3RyaW5nIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgdG9CYXNlNjQgfSBmcm9tIFwiQHNtaXRoeS91dGlsLWJhc2U2NFwiO1xuaW1wb3J0IHsgU2VyZGVDb250ZXh0Q29uZmlnIH0gZnJvbSBcIi4uL0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dFwiO1xuZXhwb3J0IGNsYXNzIFF1ZXJ5U2hhcGVTZXJpYWxpemVyIGV4dGVuZHMgU2VyZGVDb250ZXh0Q29uZmlnIHtcbiAgICBzZXR0aW5ncztcbiAgICBidWZmZXI7XG4gICAgY29uc3RydWN0b3Ioc2V0dGluZ3MpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5zZXR0aW5ncyA9IHNldHRpbmdzO1xuICAgIH1cbiAgICB3cml0ZShzY2hlbWEsIHZhbHVlLCBwcmVmaXggPSBcIlwiKSB7XG4gICAgICAgIGlmICh0aGlzLmJ1ZmZlciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmJ1ZmZlciA9IFwiXCI7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbnMgPSBOb3JtYWxpemVkU2NoZW1hLm9mKHNjaGVtYSk7XG4gICAgICAgIGlmIChwcmVmaXggJiYgIXByZWZpeC5lbmRzV2l0aChcIi5cIikpIHtcbiAgICAgICAgICAgIHByZWZpeCArPSBcIi5cIjtcbiAgICAgICAgfVxuICAgICAgICBpZiAobnMuaXNCbG9iU2NoZW1hKCkpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgfHwgdmFsdWUgaW5zdGFuY2VvZiBVaW50OEFycmF5KSB7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZUtleShwcmVmaXgpO1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVWYWx1ZSgodGhpcy5zZXJkZUNvbnRleHQ/LmJhc2U2NEVuY29kZXIgPz8gdG9CYXNlNjQpKHZhbHVlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAobnMuaXNCb29sZWFuU2NoZW1hKCkgfHwgbnMuaXNOdW1lcmljU2NoZW1hKCkgfHwgbnMuaXNTdHJpbmdTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlS2V5KHByZWZpeCk7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKFN0cmluZyh2YWx1ZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAobnMuaXNJZGVtcG90ZW5jeVRva2VuKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlS2V5KHByZWZpeCk7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKGdlbmVyYXRlSWRlbXBvdGVuY3lUb2tlbigpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChucy5pc0JpZ0ludGVnZXJTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlS2V5KHByZWZpeCk7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKFN0cmluZyh2YWx1ZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKG5zLmlzQmlnRGVjaW1hbFNjaGVtYSgpKSB7XG4gICAgICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVLZXkocHJlZml4KTtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlVmFsdWUodmFsdWUgaW5zdGFuY2VvZiBOdW1lcmljVmFsdWUgPyB2YWx1ZS5zdHJpbmcgOiBTdHJpbmcodmFsdWUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChucy5pc1RpbWVzdGFtcFNjaGVtYSgpKSB7XG4gICAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZUtleShwcmVmaXgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZvcm1hdCA9IGRldGVybWluZVRpbWVzdGFtcEZvcm1hdChucywgdGhpcy5zZXR0aW5ncyk7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChmb3JtYXQpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKHZhbHVlLnRvSVNPU3RyaW5nKCkucmVwbGFjZShcIi4wMDBaXCIsIFwiWlwiKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKGRhdGVUb1V0Y1N0cmluZyh2YWx1ZSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMud3JpdGVWYWx1ZShTdHJpbmcodmFsdWUuZ2V0VGltZSgpIC8gMTAwMCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKG5zLmlzRG9jdW1lbnRTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZSg2NCB8IDE1LCB2YWx1ZSwgcHJlZml4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGUoNCwgdmFsdWUsIHByZWZpeCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmICh2YWx1ZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlKDIxLCB2YWx1ZSwgcHJlZml4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGUoMTI4IHwgMTUsIHZhbHVlLCBwcmVmaXgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZUtleShwcmVmaXgpO1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVWYWx1ZShTdHJpbmcodmFsdWUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChucy5pc0xpc3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5zZXR0aW5ncy5zZXJpYWxpemVFbXB0eUxpc3RzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLndyaXRlS2V5KHByZWZpeCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLndyaXRlVmFsdWUoXCJcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1lbWJlciA9IG5zLmdldFZhbHVlU2NoZW1hKCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZsYXQgPSB0aGlzLnNldHRpbmdzLmZsYXR0ZW5MaXN0cyB8fCBucy5nZXRNZXJnZWRUcmFpdHMoKS54bWxGbGF0dGVuZWQ7XG4gICAgICAgICAgICAgICAgICAgIGxldCBpID0gMTtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbSA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0cmFpdHMgPSBtZW1iZXIuZ2V0TWVyZ2VkVHJhaXRzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdWZmaXggPSB0aGlzLmdldEtleShcIm1lbWJlclwiLCB0cmFpdHMueG1sTmFtZSwgdHJhaXRzLmVjMlF1ZXJ5TmFtZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSBmbGF0ID8gYCR7cHJlZml4fSR7aX1gIDogYCR7cHJlZml4fSR7c3VmZml4fS4ke2l9YDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMud3JpdGUobWVtYmVyLCBpdGVtLCBrZXkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgKytpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKG5zLmlzTWFwU2NoZW1hKCkpIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBrZXlTY2hlbWEgPSBucy5nZXRLZXlTY2hlbWEoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBtZW1iZXJTY2hlbWEgPSBucy5nZXRWYWx1ZVNjaGVtYSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZsYXQgPSBucy5nZXRNZXJnZWRUcmFpdHMoKS54bWxGbGF0dGVuZWQ7XG4gICAgICAgICAgICAgICAgbGV0IGkgPSAxO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgayBpbiB2YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB2ID0gdmFsdWVba107XG4gICAgICAgICAgICAgICAgICAgIGlmICh2ID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGtleVRyYWl0cyA9IGtleVNjaGVtYS5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qga2V5U3VmZml4ID0gdGhpcy5nZXRLZXkoXCJrZXlcIiwga2V5VHJhaXRzLnhtbE5hbWUsIGtleVRyYWl0cy5lYzJRdWVyeU5hbWUpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSBmbGF0ID8gYCR7cHJlZml4fSR7aX0uJHtrZXlTdWZmaXh9YCA6IGAke3ByZWZpeH1lbnRyeS4ke2l9LiR7a2V5U3VmZml4fWA7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbFRyYWl0cyA9IG1lbWJlclNjaGVtYS5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWVTdWZmaXggPSB0aGlzLmdldEtleShcInZhbHVlXCIsIHZhbFRyYWl0cy54bWxOYW1lLCB2YWxUcmFpdHMuZWMyUXVlcnlOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWVLZXkgPSBmbGF0ID8gYCR7cHJlZml4fSR7aX0uJHt2YWx1ZVN1ZmZpeH1gIDogYCR7cHJlZml4fWVudHJ5LiR7aX0uJHt2YWx1ZVN1ZmZpeH1gO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLndyaXRlKGtleVNjaGVtYSwgaywga2V5KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy53cml0ZShtZW1iZXJTY2hlbWEsIHYsIHZhbHVlS2V5KTtcbiAgICAgICAgICAgICAgICAgICAgKytpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChucy5pc1N0cnVjdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICBpZiAodmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICAgICAgbGV0IGRpZFdyaXRlTWVtYmVyID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBbbWVtYmVyTmFtZSwgbWVtYmVyXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZVttZW1iZXJOYW1lXSA9PSBudWxsICYmICFtZW1iZXIuaXNJZGVtcG90ZW5jeVRva2VuKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRyYWl0cyA9IG1lbWJlci5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3VmZml4ID0gdGhpcy5nZXRLZXkobWVtYmVyTmFtZSwgdHJhaXRzLnhtbE5hbWUsIHRyYWl0cy5lYzJRdWVyeU5hbWUsIFwic3RydWN0XCIpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSBgJHtwcmVmaXh9JHtzdWZmaXh9YDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy53cml0ZShtZW1iZXIsIHZhbHVlW21lbWJlck5hbWVdLCBrZXkpO1xuICAgICAgICAgICAgICAgICAgICBkaWRXcml0ZU1lbWJlciA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICghZGlkV3JpdGVNZW1iZXIgJiYgbnMuaXNVbmlvblNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgJHVua25vd24gfSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSgkdW5rbm93bikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFtrLCB2XSA9ICR1bmtub3duO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qga2V5ID0gYCR7cHJlZml4fSR7a31gO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53cml0ZSgxNSwgdiwga2V5KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChucy5pc1VuaXRTY2hlbWEoKSkge1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBAYXdzLXNkay9jb3JlL3Byb3RvY29scyAtIFF1ZXJ5U2VyaWFsaXplciB1bnJlY29nbml6ZWQgc2NoZW1hIHR5cGUgJHtucy5nZXROYW1lKHRydWUpfWApO1xuICAgICAgICB9XG4gICAgfVxuICAgIGZsdXNoKCkge1xuICAgICAgICBpZiAodGhpcy5idWZmZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSBRdWVyeVNlcmlhbGl6ZXIgY2Fubm90IGZsdXNoIHdpdGggbm90aGluZyB3cml0dGVuIHRvIGJ1ZmZlci5cIik7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc3RyID0gdGhpcy5idWZmZXI7XG4gICAgICAgIGRlbGV0ZSB0aGlzLmJ1ZmZlcjtcbiAgICAgICAgcmV0dXJuIHN0cjtcbiAgICB9XG4gICAgZ2V0S2V5KG1lbWJlck5hbWUsIHhtbE5hbWUsIGVjMlF1ZXJ5TmFtZSwga2V5U291cmNlKSB7XG4gICAgICAgIGNvbnN0IHsgZWMyLCBjYXBpdGFsaXplS2V5cyB9ID0gdGhpcy5zZXR0aW5ncztcbiAgICAgICAgaWYgKGVjMiAmJiBlYzJRdWVyeU5hbWUpIHtcbiAgICAgICAgICAgIHJldHVybiBlYzJRdWVyeU5hbWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qga2V5ID0geG1sTmFtZSA/PyBtZW1iZXJOYW1lO1xuICAgICAgICBpZiAoY2FwaXRhbGl6ZUtleXMgJiYga2V5U291cmNlID09PSBcInN0cnVjdFwiKSB7XG4gICAgICAgICAgICByZXR1cm4ga2V5WzBdLnRvVXBwZXJDYXNlKCkgKyBrZXkuc2xpY2UoMSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGtleTtcbiAgICB9XG4gICAgd3JpdGVLZXkoa2V5KSB7XG4gICAgICAgIGlmIChrZXkuZW5kc1dpdGgoXCIuXCIpKSB7XG4gICAgICAgICAgICBrZXkgPSBrZXkuc2xpY2UoMCwga2V5Lmxlbmd0aCAtIDEpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYnVmZmVyICs9IGAmJHtleHRlbmRlZEVuY29kZVVSSUNvbXBvbmVudChrZXkpfT1gO1xuICAgIH1cbiAgICB3cml0ZVZhbHVlKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuYnVmZmVyICs9IGV4dGVuZGVkRW5jb2RlVVJJQ29tcG9uZW50KHZhbHVlKTtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgY29sbGVjdEJvZHksIFJwY1Byb3RvY29sIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9wcm90b2NvbHNcIjtcbmltcG9ydCB7IGRlcmVmLCBOb3JtYWxpemVkU2NoZW1hIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IFByb3RvY29sTGliIH0gZnJvbSBcIi4uL1Byb3RvY29sTGliXCI7XG5pbXBvcnQgeyBYbWxTaGFwZURlc2VyaWFsaXplciB9IGZyb20gXCIuLi94bWwvWG1sU2hhcGVEZXNlcmlhbGl6ZXJcIjtcbmltcG9ydCB7IFF1ZXJ5U2hhcGVTZXJpYWxpemVyIH0gZnJvbSBcIi4vUXVlcnlTaGFwZVNlcmlhbGl6ZXJcIjtcbmV4cG9ydCBjbGFzcyBBd3NRdWVyeVByb3RvY29sIGV4dGVuZHMgUnBjUHJvdG9jb2wge1xuICAgIG9wdGlvbnM7XG4gICAgc2VyaWFsaXplcjtcbiAgICBkZXNlcmlhbGl6ZXI7XG4gICAgbWl4aW4gPSBuZXcgUHJvdG9jb2xMaWIoKTtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIGRlZmF1bHROYW1lc3BhY2U6IG9wdGlvbnMuZGVmYXVsdE5hbWVzcGFjZSxcbiAgICAgICAgICAgIGVycm9yVHlwZVJlZ2lzdHJpZXM6IG9wdGlvbnMuZXJyb3JUeXBlUmVnaXN0cmllcyxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgICAgIGNvbnN0IHNldHRpbmdzID0ge1xuICAgICAgICAgICAgdGltZXN0YW1wRm9ybWF0OiB7XG4gICAgICAgICAgICAgICAgdXNlVHJhaXQ6IHRydWUsXG4gICAgICAgICAgICAgICAgZGVmYXVsdDogNSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBodHRwQmluZGluZ3M6IGZhbHNlLFxuICAgICAgICAgICAgeG1sTmFtZXNwYWNlOiBvcHRpb25zLnhtbE5hbWVzcGFjZSxcbiAgICAgICAgICAgIHNlcnZpY2VOYW1lc3BhY2U6IG9wdGlvbnMuZGVmYXVsdE5hbWVzcGFjZSxcbiAgICAgICAgICAgIHNlcmlhbGl6ZUVtcHR5TGlzdHM6IHRydWUsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuc2VyaWFsaXplciA9IG5ldyBRdWVyeVNoYXBlU2VyaWFsaXplcihzZXR0aW5ncyk7XG4gICAgICAgIHRoaXMuZGVzZXJpYWxpemVyID0gbmV3IFhtbFNoYXBlRGVzZXJpYWxpemVyKHNldHRpbmdzKTtcbiAgICB9XG4gICAgZ2V0U2hhcGVJZCgpIHtcbiAgICAgICAgcmV0dXJuIFwiYXdzLnByb3RvY29scyNhd3NRdWVyeVwiO1xuICAgIH1cbiAgICBzZXRTZXJkZUNvbnRleHQoc2VyZGVDb250ZXh0KSB7XG4gICAgICAgIHRoaXMuc2VyaWFsaXplci5zZXRTZXJkZUNvbnRleHQoc2VyZGVDb250ZXh0KTtcbiAgICAgICAgdGhpcy5kZXNlcmlhbGl6ZXIuc2V0U2VyZGVDb250ZXh0KHNlcmRlQ29udGV4dCk7XG4gICAgfVxuICAgIGdldFBheWxvYWRDb2RlYygpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQVdTUXVlcnkgcHJvdG9jb2wgaGFzIG5vIHBheWxvYWQgY29kZWMuXCIpO1xuICAgIH1cbiAgICBhc3luYyBzZXJpYWxpemVSZXF1ZXN0KG9wZXJhdGlvblNjaGVtYSwgaW5wdXQsIGNvbnRleHQpIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IGF3YWl0IHN1cGVyLnNlcmlhbGl6ZVJlcXVlc3Qob3BlcmF0aW9uU2NoZW1hLCBpbnB1dCwgY29udGV4dCk7XG4gICAgICAgIGlmICghcmVxdWVzdC5wYXRoLmVuZHNXaXRoKFwiL1wiKSkge1xuICAgICAgICAgICAgcmVxdWVzdC5wYXRoICs9IFwiL1wiO1xuICAgICAgICB9XG4gICAgICAgIHJlcXVlc3QuaGVhZGVyc1tcImNvbnRlbnQtdHlwZVwiXSA9IFwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkXCI7XG4gICAgICAgIGlmIChkZXJlZihvcGVyYXRpb25TY2hlbWEuaW5wdXQpID09PSBcInVuaXRcIiB8fCAhcmVxdWVzdC5ib2R5KSB7XG4gICAgICAgICAgICByZXF1ZXN0LmJvZHkgPSBcIlwiO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGFjdGlvbiA9IG9wZXJhdGlvblNjaGVtYS5uYW1lLnNwbGl0KFwiI1wiKVsxXSA/PyBvcGVyYXRpb25TY2hlbWEubmFtZTtcbiAgICAgICAgcmVxdWVzdC5ib2R5ID0gYEFjdGlvbj0ke2FjdGlvbn0mVmVyc2lvbj0ke3RoaXMub3B0aW9ucy52ZXJzaW9ufWAgKyByZXF1ZXN0LmJvZHk7XG4gICAgICAgIGlmIChyZXF1ZXN0LmJvZHkuZW5kc1dpdGgoXCImXCIpKSB7XG4gICAgICAgICAgICByZXF1ZXN0LmJvZHkgPSByZXF1ZXN0LmJvZHkuc2xpY2UoLTEpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXF1ZXN0O1xuICAgIH1cbiAgICBhc3luYyBkZXNlcmlhbGl6ZVJlc3BvbnNlKG9wZXJhdGlvblNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UpIHtcbiAgICAgICAgY29uc3QgZGVzZXJpYWxpemVyID0gdGhpcy5kZXNlcmlhbGl6ZXI7XG4gICAgICAgIGNvbnN0IG5zID0gTm9ybWFsaXplZFNjaGVtYS5vZihvcGVyYXRpb25TY2hlbWEub3V0cHV0KTtcbiAgICAgICAgY29uc3QgZGF0YU9iamVjdCA9IHt9O1xuICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzQ29kZSA+PSAzMDApIHtcbiAgICAgICAgICAgIGNvbnN0IGJ5dGVzID0gYXdhaXQgY29sbGVjdEJvZHkocmVzcG9uc2UuYm9keSwgY29udGV4dCk7XG4gICAgICAgICAgICBpZiAoYnl0ZXMuYnl0ZUxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKGRhdGFPYmplY3QsIGF3YWl0IGRlc2VyaWFsaXplci5yZWFkKDE1LCBieXRlcykpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYXdhaXQgdGhpcy5oYW5kbGVFcnJvcihvcGVyYXRpb25TY2hlbWEsIGNvbnRleHQsIHJlc3BvbnNlLCBkYXRhT2JqZWN0LCB0aGlzLmRlc2VyaWFsaXplTWV0YWRhdGEocmVzcG9uc2UpKTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IGhlYWRlciBpbiByZXNwb25zZS5oZWFkZXJzKSB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHJlc3BvbnNlLmhlYWRlcnNbaGVhZGVyXTtcbiAgICAgICAgICAgIGRlbGV0ZSByZXNwb25zZS5oZWFkZXJzW2hlYWRlcl07XG4gICAgICAgICAgICByZXNwb25zZS5oZWFkZXJzW2hlYWRlci50b0xvd2VyQ2FzZSgpXSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNob3J0TmFtZSA9IG9wZXJhdGlvblNjaGVtYS5uYW1lLnNwbGl0KFwiI1wiKVsxXSA/PyBvcGVyYXRpb25TY2hlbWEubmFtZTtcbiAgICAgICAgY29uc3QgYXdzUXVlcnlSZXN1bHRLZXkgPSBucy5pc1N0cnVjdFNjaGVtYSgpICYmIHRoaXMudXNlTmVzdGVkUmVzdWx0KCkgPyBzaG9ydE5hbWUgKyBcIlJlc3VsdFwiIDogdW5kZWZpbmVkO1xuICAgICAgICBjb25zdCBieXRlcyA9IGF3YWl0IGNvbGxlY3RCb2R5KHJlc3BvbnNlLmJvZHksIGNvbnRleHQpO1xuICAgICAgICBpZiAoYnl0ZXMuYnl0ZUxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oZGF0YU9iamVjdCwgYXdhaXQgZGVzZXJpYWxpemVyLnJlYWQobnMsIGJ5dGVzLCBhd3NRdWVyeVJlc3VsdEtleSkpO1xuICAgICAgICB9XG4gICAgICAgIGRhdGFPYmplY3QuJG1ldGFkYXRhID0gdGhpcy5kZXNlcmlhbGl6ZU1ldGFkYXRhKHJlc3BvbnNlKTtcbiAgICAgICAgcmV0dXJuIGRhdGFPYmplY3Q7XG4gICAgfVxuICAgIHVzZU5lc3RlZFJlc3VsdCgpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGFzeW5jIGhhbmRsZUVycm9yKG9wZXJhdGlvblNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UsIGRhdGFPYmplY3QsIG1ldGFkYXRhKSB7XG4gICAgICAgIGNvbnN0IGVycm9ySWRlbnRpZmllciA9IHRoaXMubG9hZFF1ZXJ5RXJyb3JDb2RlKHJlc3BvbnNlLCBkYXRhT2JqZWN0KSA/PyBcIlVua25vd25cIjtcbiAgICAgICAgdGhpcy5taXhpbi5jb21wb3NlKHRoaXMuY29tcG9zaXRlRXJyb3JSZWdpc3RyeSwgZXJyb3JJZGVudGlmaWVyLCB0aGlzLm9wdGlvbnMuZGVmYXVsdE5hbWVzcGFjZSk7XG4gICAgICAgIGNvbnN0IGVycm9yRGF0YSA9IHRoaXMubG9hZFF1ZXJ5RXJyb3IoZGF0YU9iamVjdCkgPz8ge307XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSB0aGlzLmxvYWRRdWVyeUVycm9yTWVzc2FnZShkYXRhT2JqZWN0KTtcbiAgICAgICAgZXJyb3JEYXRhLm1lc3NhZ2UgPSBtZXNzYWdlO1xuICAgICAgICBlcnJvckRhdGEuRXJyb3IgPSB7XG4gICAgICAgICAgICBUeXBlOiBlcnJvckRhdGEuVHlwZSxcbiAgICAgICAgICAgIENvZGU6IGVycm9yRGF0YS5Db2RlLFxuICAgICAgICAgICAgTWVzc2FnZTogbWVzc2FnZSxcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgeyBlcnJvclNjaGVtYSwgZXJyb3JNZXRhZGF0YSB9ID0gYXdhaXQgdGhpcy5taXhpbi5nZXRFcnJvclNjaGVtYU9yVGhyb3dCYXNlRXhjZXB0aW9uKGVycm9ySWRlbnRpZmllciwgdGhpcy5vcHRpb25zLmRlZmF1bHROYW1lc3BhY2UsIHJlc3BvbnNlLCBlcnJvckRhdGEsIG1ldGFkYXRhLCB0aGlzLm1peGluLmZpbmRRdWVyeUNvbXBhdGlibGVFcnJvcik7XG4gICAgICAgIGNvbnN0IG5zID0gTm9ybWFsaXplZFNjaGVtYS5vZihlcnJvclNjaGVtYSk7XG4gICAgICAgIGNvbnN0IEVycm9yQ3RvciA9IHRoaXMuY29tcG9zaXRlRXJyb3JSZWdpc3RyeS5nZXRFcnJvckN0b3IoZXJyb3JTY2hlbWEpID8/IEVycm9yO1xuICAgICAgICBjb25zdCBleGNlcHRpb24gPSBuZXcgRXJyb3JDdG9yKG1lc3NhZ2UpO1xuICAgICAgICBjb25zdCBvdXRwdXQgPSB7XG4gICAgICAgICAgICBUeXBlOiBlcnJvckRhdGEuRXJyb3IuVHlwZSxcbiAgICAgICAgICAgIENvZGU6IGVycm9yRGF0YS5FcnJvci5Db2RlLFxuICAgICAgICAgICAgRXJyb3I6IGVycm9yRGF0YS5FcnJvcixcbiAgICAgICAgfTtcbiAgICAgICAgZm9yIChjb25zdCBbbmFtZSwgbWVtYmVyXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBtZW1iZXIuZ2V0TWVyZ2VkVHJhaXRzKCkueG1sTmFtZSA/PyBuYW1lO1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBlcnJvckRhdGFbdGFyZ2V0XSA/PyBkYXRhT2JqZWN0W3RhcmdldF07XG4gICAgICAgICAgICBvdXRwdXRbbmFtZV0gPSB0aGlzLmRlc2VyaWFsaXplci5yZWFkU2NoZW1hKG1lbWJlciwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IHRoaXMubWl4aW4uZGVjb3JhdGVTZXJ2aWNlRXhjZXB0aW9uKE9iamVjdC5hc3NpZ24oZXhjZXB0aW9uLCBlcnJvck1ldGFkYXRhLCB7XG4gICAgICAgICAgICAkZmF1bHQ6IG5zLmdldE1lcmdlZFRyYWl0cygpLmVycm9yLFxuICAgICAgICAgICAgbWVzc2FnZSxcbiAgICAgICAgfSwgb3V0cHV0KSwgZGF0YU9iamVjdCk7XG4gICAgfVxuICAgIGxvYWRRdWVyeUVycm9yQ29kZShvdXRwdXQsIGRhdGEpIHtcbiAgICAgICAgY29uc3QgY29kZSA9IChkYXRhLkVycm9ycz8uWzBdPy5FcnJvciA/PyBkYXRhLkVycm9ycz8uRXJyb3IgPz8gZGF0YS5FcnJvcik/LkNvZGU7XG4gICAgICAgIGlmIChjb2RlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBjb2RlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvdXRwdXQuc3RhdHVzQ29kZSA9PSA0MDQpIHtcbiAgICAgICAgICAgIHJldHVybiBcIk5vdEZvdW5kXCI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbG9hZFF1ZXJ5RXJyb3IoZGF0YSkge1xuICAgICAgICByZXR1cm4gZGF0YS5FcnJvcnM/LlswXT8uRXJyb3IgPz8gZGF0YS5FcnJvcnM/LkVycm9yID8/IGRhdGEuRXJyb3I7XG4gICAgfVxuICAgIGxvYWRRdWVyeUVycm9yTWVzc2FnZShkYXRhKSB7XG4gICAgICAgIGNvbnN0IGVycm9yRGF0YSA9IHRoaXMubG9hZFF1ZXJ5RXJyb3IoZGF0YSk7XG4gICAgICAgIHJldHVybiBlcnJvckRhdGE/Lm1lc3NhZ2UgPz8gZXJyb3JEYXRhPy5NZXNzYWdlID8/IGRhdGEubWVzc2FnZSA/PyBkYXRhLk1lc3NhZ2UgPz8gXCJVbmtub3duXCI7XG4gICAgfVxuICAgIGdldERlZmF1bHRDb250ZW50VHlwZSgpIHtcbiAgICAgICAgcmV0dXJuIFwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkXCI7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IEF3c1F1ZXJ5UHJvdG9jb2wgfSBmcm9tIFwiLi9Bd3NRdWVyeVByb3RvY29sXCI7XG5leHBvcnQgY2xhc3MgQXdzRWMyUXVlcnlQcm90b2NvbCBleHRlbmRzIEF3c1F1ZXJ5UHJvdG9jb2wge1xuICAgIG9wdGlvbnM7XG4gICAgY29uc3RydWN0b3Iob3B0aW9ucykge1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgICAgICAgY29uc3QgZWMyU2V0dGluZ3MgPSB7XG4gICAgICAgICAgICBjYXBpdGFsaXplS2V5czogdHJ1ZSxcbiAgICAgICAgICAgIGZsYXR0ZW5MaXN0czogdHJ1ZSxcbiAgICAgICAgICAgIHNlcmlhbGl6ZUVtcHR5TGlzdHM6IGZhbHNlLFxuICAgICAgICAgICAgZWMyOiB0cnVlLFxuICAgICAgICB9O1xuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMuc2VyaWFsaXplci5zZXR0aW5ncywgZWMyU2V0dGluZ3MpO1xuICAgIH1cbiAgICBnZXRTaGFwZUlkKCkge1xuICAgICAgICByZXR1cm4gXCJhd3MucHJvdG9jb2xzI2VjMlF1ZXJ5XCI7XG4gICAgfVxuICAgIHVzZU5lc3RlZFJlc3VsdCgpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cbiIsICJleHBvcnQge307XG4iLCAiaW1wb3J0IHsgcGFyc2VYTUwgfSBmcm9tIFwiQGF3cy1zZGsveG1sLWJ1aWxkZXJcIjtcbmltcG9ydCB7IGdldFZhbHVlRnJvbVRleHROb2RlIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgY29sbGVjdEJvZHlTdHJpbmcgfSBmcm9tIFwiLi4vY29tbW9uXCI7XG5leHBvcnQgY29uc3QgcGFyc2VYbWxCb2R5ID0gKHN0cmVhbUJvZHksIGNvbnRleHQpID0+IGNvbGxlY3RCb2R5U3RyaW5nKHN0cmVhbUJvZHksIGNvbnRleHQpLnRoZW4oKGVuY29kZWQpID0+IHtcbiAgICBpZiAoZW5jb2RlZC5sZW5ndGgpIHtcbiAgICAgICAgbGV0IHBhcnNlZE9iajtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHBhcnNlZE9iaiA9IHBhcnNlWE1MKGVuY29kZWQpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICBpZiAoZSAmJiB0eXBlb2YgZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCBcIiRyZXNwb25zZUJvZHlUZXh0XCIsIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGVuY29kZWQsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHRleHROb2RlTmFtZSA9IFwiI3RleHRcIjtcbiAgICAgICAgY29uc3Qga2V5ID0gT2JqZWN0LmtleXMocGFyc2VkT2JqKVswXTtcbiAgICAgICAgY29uc3QgcGFyc2VkT2JqVG9SZXR1cm4gPSBwYXJzZWRPYmpba2V5XTtcbiAgICAgICAgaWYgKHBhcnNlZE9ialRvUmV0dXJuW3RleHROb2RlTmFtZV0pIHtcbiAgICAgICAgICAgIHBhcnNlZE9ialRvUmV0dXJuW2tleV0gPSBwYXJzZWRPYmpUb1JldHVyblt0ZXh0Tm9kZU5hbWVdO1xuICAgICAgICAgICAgZGVsZXRlIHBhcnNlZE9ialRvUmV0dXJuW3RleHROb2RlTmFtZV07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGdldFZhbHVlRnJvbVRleHROb2RlKHBhcnNlZE9ialRvUmV0dXJuKTtcbiAgICB9XG4gICAgcmV0dXJuIHt9O1xufSk7XG5leHBvcnQgY29uc3QgcGFyc2VYbWxFcnJvckJvZHkgPSBhc3luYyAoZXJyb3JCb2R5LCBjb250ZXh0KSA9PiB7XG4gICAgY29uc3QgdmFsdWUgPSBhd2FpdCBwYXJzZVhtbEJvZHkoZXJyb3JCb2R5LCBjb250ZXh0KTtcbiAgICBpZiAodmFsdWUuRXJyb3IpIHtcbiAgICAgICAgdmFsdWUuRXJyb3IubWVzc2FnZSA9IHZhbHVlLkVycm9yLm1lc3NhZ2UgPz8gdmFsdWUuRXJyb3IuTWVzc2FnZTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlO1xufTtcbmV4cG9ydCBjb25zdCBsb2FkUmVzdFhtbEVycm9yQ29kZSA9IChvdXRwdXQsIGRhdGEpID0+IHtcbiAgICBpZiAoZGF0YT8uRXJyb3I/LkNvZGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gZGF0YS5FcnJvci5Db2RlO1xuICAgIH1cbiAgICBpZiAoZGF0YT8uQ29kZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiBkYXRhLkNvZGU7XG4gICAgfVxuICAgIGlmIChvdXRwdXQuc3RhdHVzQ29kZSA9PSA0MDQpIHtcbiAgICAgICAgcmV0dXJuIFwiTm90Rm91bmRcIjtcbiAgICB9XG59O1xuIiwgImltcG9ydCB7IFhtbE5vZGUsIFhtbFRleHQgfSBmcm9tIFwiQGF3cy1zZGsveG1sLWJ1aWxkZXJcIjtcbmltcG9ydCB7IGRldGVybWluZVRpbWVzdGFtcEZvcm1hdCB9IGZyb20gXCJAc21pdGh5L2NvcmUvcHJvdG9jb2xzXCI7XG5pbXBvcnQgeyBOb3JtYWxpemVkU2NoZW1hIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IGdlbmVyYXRlSWRlbXBvdGVuY3lUb2tlbiwgTnVtZXJpY1ZhbHVlIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zZXJkZVwiO1xuaW1wb3J0IHsgZGF0ZVRvVXRjU3RyaW5nIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgZnJvbUJhc2U2NCwgdG9CYXNlNjQgfSBmcm9tIFwiQHNtaXRoeS91dGlsLWJhc2U2NFwiO1xuaW1wb3J0IHsgU2VyZGVDb250ZXh0Q29uZmlnIH0gZnJvbSBcIi4uL0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dFwiO1xuZXhwb3J0IGNsYXNzIFhtbFNoYXBlU2VyaWFsaXplciBleHRlbmRzIFNlcmRlQ29udGV4dENvbmZpZyB7XG4gICAgc2V0dGluZ3M7XG4gICAgc3RyaW5nQnVmZmVyO1xuICAgIGJ5dGVCdWZmZXI7XG4gICAgYnVmZmVyO1xuICAgIGNvbnN0cnVjdG9yKHNldHRpbmdzKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuc2V0dGluZ3MgPSBzZXR0aW5ncztcbiAgICB9XG4gICAgd3JpdGUoc2NoZW1hLCB2YWx1ZSkge1xuICAgICAgICBjb25zdCBucyA9IE5vcm1hbGl6ZWRTY2hlbWEub2Yoc2NoZW1hKTtcbiAgICAgICAgaWYgKG5zLmlzU3RyaW5nU2NoZW1hKCkgJiYgdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICB0aGlzLnN0cmluZ0J1ZmZlciA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKG5zLmlzQmxvYlNjaGVtYSgpKSB7XG4gICAgICAgICAgICB0aGlzLmJ5dGVCdWZmZXIgPVxuICAgICAgICAgICAgICAgIFwiYnl0ZUxlbmd0aFwiIGluIHZhbHVlXG4gICAgICAgICAgICAgICAgICAgID8gdmFsdWVcbiAgICAgICAgICAgICAgICAgICAgOiAodGhpcy5zZXJkZUNvbnRleHQ/LmJhc2U2NERlY29kZXIgPz8gZnJvbUJhc2U2NCkodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5idWZmZXIgPSB0aGlzLndyaXRlU3RydWN0KG5zLCB2YWx1ZSwgdW5kZWZpbmVkKTtcbiAgICAgICAgICAgIGNvbnN0IHRyYWl0cyA9IG5zLmdldE1lcmdlZFRyYWl0cygpO1xuICAgICAgICAgICAgaWYgKHRyYWl0cy5odHRwUGF5bG9hZCAmJiAhdHJhaXRzLnhtbE5hbWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmJ1ZmZlci53aXRoTmFtZShucy5nZXROYW1lKCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGZsdXNoKCkge1xuICAgICAgICBpZiAodGhpcy5ieXRlQnVmZmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IGJ5dGVzID0gdGhpcy5ieXRlQnVmZmVyO1xuICAgICAgICAgICAgZGVsZXRlIHRoaXMuYnl0ZUJ1ZmZlcjtcbiAgICAgICAgICAgIHJldHVybiBieXRlcztcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5zdHJpbmdCdWZmZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgY29uc3Qgc3RyID0gdGhpcy5zdHJpbmdCdWZmZXI7XG4gICAgICAgICAgICBkZWxldGUgdGhpcy5zdHJpbmdCdWZmZXI7XG4gICAgICAgICAgICByZXR1cm4gc3RyO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGJ1ZmZlciA9IHRoaXMuYnVmZmVyO1xuICAgICAgICBpZiAodGhpcy5zZXR0aW5ncy54bWxOYW1lc3BhY2UpIHtcbiAgICAgICAgICAgIGlmICghYnVmZmVyPy5hdHRyaWJ1dGVzPy5bXCJ4bWxuc1wiXSkge1xuICAgICAgICAgICAgICAgIGJ1ZmZlci5hZGRBdHRyaWJ1dGUoXCJ4bWxuc1wiLCB0aGlzLnNldHRpbmdzLnhtbE5hbWVzcGFjZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZGVsZXRlIHRoaXMuYnVmZmVyO1xuICAgICAgICByZXR1cm4gYnVmZmVyLnRvU3RyaW5nKCk7XG4gICAgfVxuICAgIHdyaXRlU3RydWN0KG5zLCB2YWx1ZSwgcGFyZW50WG1sbnMpIHtcbiAgICAgICAgY29uc3QgdHJhaXRzID0gbnMuZ2V0TWVyZ2VkVHJhaXRzKCk7XG4gICAgICAgIGNvbnN0IG5hbWUgPSBucy5pc01lbWJlclNjaGVtYSgpICYmICF0cmFpdHMuaHR0cFBheWxvYWRcbiAgICAgICAgICAgID8gbnMuZ2V0TWVtYmVyVHJhaXRzKCkueG1sTmFtZSA/PyBucy5nZXRNZW1iZXJOYW1lKClcbiAgICAgICAgICAgIDogdHJhaXRzLnhtbE5hbWUgPz8gbnMuZ2V0TmFtZSgpO1xuICAgICAgICBpZiAoIW5hbWUgfHwgIW5zLmlzU3RydWN0U2NoZW1hKCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSB4bWwgc2VyaWFsaXplciwgY2Fubm90IHdyaXRlIHN0cnVjdCB3aXRoIGVtcHR5IG5hbWUgb3Igbm9uLXN0cnVjdCwgc2NoZW1hPSR7bnMuZ2V0TmFtZSh0cnVlKX0uYCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc3RydWN0WG1sTm9kZSA9IFhtbE5vZGUub2YobmFtZSk7XG4gICAgICAgIGNvbnN0IFt4bWxuc0F0dHIsIHhtbG5zXSA9IHRoaXMuZ2V0WG1sbnNBdHRyaWJ1dGUobnMsIHBhcmVudFhtbG5zKTtcbiAgICAgICAgZm9yIChjb25zdCBbbWVtYmVyTmFtZSwgbWVtYmVyU2NoZW1hXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICBjb25zdCB2YWwgPSB2YWx1ZVttZW1iZXJOYW1lXTtcbiAgICAgICAgICAgIGlmICh2YWwgIT0gbnVsbCB8fCBtZW1iZXJTY2hlbWEuaXNJZGVtcG90ZW5jeVRva2VuKCkpIHtcbiAgICAgICAgICAgICAgICBpZiAobWVtYmVyU2NoZW1hLmdldE1lcmdlZFRyYWl0cygpLnhtbEF0dHJpYnV0ZSkge1xuICAgICAgICAgICAgICAgICAgICBzdHJ1Y3RYbWxOb2RlLmFkZEF0dHJpYnV0ZShtZW1iZXJTY2hlbWEuZ2V0TWVyZ2VkVHJhaXRzKCkueG1sTmFtZSA/PyBtZW1iZXJOYW1lLCB0aGlzLndyaXRlU2ltcGxlKG1lbWJlclNjaGVtYSwgdmFsKSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAobWVtYmVyU2NoZW1hLmlzTGlzdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMud3JpdGVMaXN0KG1lbWJlclNjaGVtYSwgdmFsLCBzdHJ1Y3RYbWxOb2RlLCB4bWxucyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKG1lbWJlclNjaGVtYS5pc01hcFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMud3JpdGVNYXAobWVtYmVyU2NoZW1hLCB2YWwsIHN0cnVjdFhtbE5vZGUsIHhtbG5zKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAobWVtYmVyU2NoZW1hLmlzU3RydWN0U2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgc3RydWN0WG1sTm9kZS5hZGRDaGlsZE5vZGUodGhpcy53cml0ZVN0cnVjdChtZW1iZXJTY2hlbWEsIHZhbCwgeG1sbnMpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1lbWJlck5vZGUgPSBYbWxOb2RlLm9mKG1lbWJlclNjaGVtYS5nZXRNZXJnZWRUcmFpdHMoKS54bWxOYW1lID8/IG1lbWJlclNjaGVtYS5nZXRNZW1iZXJOYW1lKCkpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLndyaXRlU2ltcGxlSW50byhtZW1iZXJTY2hlbWEsIHZhbCwgbWVtYmVyTm9kZSwgeG1sbnMpO1xuICAgICAgICAgICAgICAgICAgICBzdHJ1Y3RYbWxOb2RlLmFkZENoaWxkTm9kZShtZW1iZXJOb2RlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgeyAkdW5rbm93biB9ID0gdmFsdWU7XG4gICAgICAgIGlmICgkdW5rbm93biAmJiBucy5pc1VuaW9uU2NoZW1hKCkgJiYgQXJyYXkuaXNBcnJheSgkdW5rbm93bikgJiYgT2JqZWN0LmtleXModmFsdWUpLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgY29uc3QgW2ssIHZdID0gJHVua25vd247XG4gICAgICAgICAgICBjb25zdCBub2RlID0gWG1sTm9kZS5vZihrKTtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdiAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIFhtbE5vZGUgfHwgdmFsdWUgaW5zdGFuY2VvZiBYbWxUZXh0KSB7XG4gICAgICAgICAgICAgICAgICAgIHN0cnVjdFhtbE5vZGUuYWRkQ2hpbGROb2RlKHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQGF3cy1zZGsgLSAkdW5rbm93biB1bmlvbiBtZW1iZXIgaW4gWE1MIHJlcXVpcmVzIGAgK1xuICAgICAgICAgICAgICAgICAgICAgICAgYHZhbHVlIG9mIHR5cGUgc3RyaW5nLCBAYXdzLXNkay94bWwtYnVpbGRlcjo6WG1sTm9kZSBvciBYbWxUZXh0LmApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMud3JpdGVTaW1wbGVJbnRvKDAsIHYsIG5vZGUsIHhtbG5zKTtcbiAgICAgICAgICAgIHN0cnVjdFhtbE5vZGUuYWRkQ2hpbGROb2RlKG5vZGUpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh4bWxucykge1xuICAgICAgICAgICAgc3RydWN0WG1sTm9kZS5hZGRBdHRyaWJ1dGUoeG1sbnNBdHRyLCB4bWxucyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN0cnVjdFhtbE5vZGU7XG4gICAgfVxuICAgIHdyaXRlTGlzdChsaXN0TWVtYmVyLCBhcnJheSwgY29udGFpbmVyLCBwYXJlbnRYbWxucykge1xuICAgICAgICBpZiAoIWxpc3RNZW1iZXIuaXNNZW1iZXJTY2hlbWEoKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBAYXdzLXNkay9jb3JlL3Byb3RvY29scyAtIHhtbCBzZXJpYWxpemVyLCBjYW5ub3Qgd3JpdGUgbm9uLW1lbWJlciBsaXN0OiAke2xpc3RNZW1iZXIuZ2V0TmFtZSh0cnVlKX1gKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBsaXN0VHJhaXRzID0gbGlzdE1lbWJlci5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgY29uc3QgbGlzdFZhbHVlU2NoZW1hID0gbGlzdE1lbWJlci5nZXRWYWx1ZVNjaGVtYSgpO1xuICAgICAgICBjb25zdCBsaXN0VmFsdWVUcmFpdHMgPSBsaXN0VmFsdWVTY2hlbWEuZ2V0TWVyZ2VkVHJhaXRzKCk7XG4gICAgICAgIGNvbnN0IHNwYXJzZSA9ICEhbGlzdFZhbHVlVHJhaXRzLnNwYXJzZTtcbiAgICAgICAgY29uc3QgZmxhdCA9ICEhbGlzdFRyYWl0cy54bWxGbGF0dGVuZWQ7XG4gICAgICAgIGNvbnN0IFt4bWxuc0F0dHIsIHhtbG5zXSA9IHRoaXMuZ2V0WG1sbnNBdHRyaWJ1dGUobGlzdE1lbWJlciwgcGFyZW50WG1sbnMpO1xuICAgICAgICBjb25zdCB3cml0ZUl0ZW0gPSAoY29udGFpbmVyLCB2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgaWYgKGxpc3RWYWx1ZVNjaGVtYS5pc0xpc3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVMaXN0KGxpc3RWYWx1ZVNjaGVtYSwgQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV0sIGNvbnRhaW5lciwgeG1sbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAobGlzdFZhbHVlU2NoZW1hLmlzTWFwU2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlTWFwKGxpc3RWYWx1ZVNjaGVtYSwgdmFsdWUsIGNvbnRhaW5lciwgeG1sbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAobGlzdFZhbHVlU2NoZW1hLmlzU3RydWN0U2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgPSB0aGlzLndyaXRlU3RydWN0KGxpc3RWYWx1ZVNjaGVtYSwgdmFsdWUsIHhtbG5zKTtcbiAgICAgICAgICAgICAgICBjb250YWluZXIuYWRkQ2hpbGROb2RlKHN0cnVjdC53aXRoTmFtZShmbGF0ID8gbGlzdFRyYWl0cy54bWxOYW1lID8/IGxpc3RNZW1iZXIuZ2V0TWVtYmVyTmFtZSgpIDogbGlzdFZhbHVlVHJhaXRzLnhtbE5hbWUgPz8gXCJtZW1iZXJcIikpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbGlzdEl0ZW1Ob2RlID0gWG1sTm9kZS5vZihmbGF0ID8gbGlzdFRyYWl0cy54bWxOYW1lID8/IGxpc3RNZW1iZXIuZ2V0TWVtYmVyTmFtZSgpIDogbGlzdFZhbHVlVHJhaXRzLnhtbE5hbWUgPz8gXCJtZW1iZXJcIik7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZVNpbXBsZUludG8obGlzdFZhbHVlU2NoZW1hLCB2YWx1ZSwgbGlzdEl0ZW1Ob2RlLCB4bWxucyk7XG4gICAgICAgICAgICAgICAgY29udGFpbmVyLmFkZENoaWxkTm9kZShsaXN0SXRlbU5vZGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBpZiAoZmxhdCkge1xuICAgICAgICAgICAgZm9yIChjb25zdCB2YWx1ZSBvZiBhcnJheSkge1xuICAgICAgICAgICAgICAgIGlmIChzcGFyc2UgfHwgdmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICB3cml0ZUl0ZW0oY29udGFpbmVyLCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgbGlzdE5vZGUgPSBYbWxOb2RlLm9mKGxpc3RUcmFpdHMueG1sTmFtZSA/PyBsaXN0TWVtYmVyLmdldE1lbWJlck5hbWUoKSk7XG4gICAgICAgICAgICBpZiAoeG1sbnMpIHtcbiAgICAgICAgICAgICAgICBsaXN0Tm9kZS5hZGRBdHRyaWJ1dGUoeG1sbnNBdHRyLCB4bWxucyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHZhbHVlIG9mIGFycmF5KSB7XG4gICAgICAgICAgICAgICAgaWYgKHNwYXJzZSB8fCB2YWx1ZSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHdyaXRlSXRlbShsaXN0Tm9kZSwgdmFsdWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnRhaW5lci5hZGRDaGlsZE5vZGUobGlzdE5vZGUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHdyaXRlTWFwKG1hcE1lbWJlciwgbWFwLCBjb250YWluZXIsIHBhcmVudFhtbG5zLCBjb250YWluZXJJc01hcCA9IGZhbHNlKSB7XG4gICAgICAgIGlmICghbWFwTWVtYmVyLmlzTWVtYmVyU2NoZW1hKCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSB4bWwgc2VyaWFsaXplciwgY2Fubm90IHdyaXRlIG5vbi1tZW1iZXIgbWFwOiAke21hcE1lbWJlci5nZXROYW1lKHRydWUpfWApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG1hcFRyYWl0cyA9IG1hcE1lbWJlci5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgY29uc3QgbWFwS2V5U2NoZW1hID0gbWFwTWVtYmVyLmdldEtleVNjaGVtYSgpO1xuICAgICAgICBjb25zdCBtYXBLZXlUcmFpdHMgPSBtYXBLZXlTY2hlbWEuZ2V0TWVyZ2VkVHJhaXRzKCk7XG4gICAgICAgIGNvbnN0IGtleVRhZyA9IG1hcEtleVRyYWl0cy54bWxOYW1lID8/IFwia2V5XCI7XG4gICAgICAgIGNvbnN0IG1hcFZhbHVlU2NoZW1hID0gbWFwTWVtYmVyLmdldFZhbHVlU2NoZW1hKCk7XG4gICAgICAgIGNvbnN0IG1hcFZhbHVlVHJhaXRzID0gbWFwVmFsdWVTY2hlbWEuZ2V0TWVyZ2VkVHJhaXRzKCk7XG4gICAgICAgIGNvbnN0IHZhbHVlVGFnID0gbWFwVmFsdWVUcmFpdHMueG1sTmFtZSA/PyBcInZhbHVlXCI7XG4gICAgICAgIGNvbnN0IHNwYXJzZSA9ICEhbWFwVmFsdWVUcmFpdHMuc3BhcnNlO1xuICAgICAgICBjb25zdCBmbGF0ID0gISFtYXBUcmFpdHMueG1sRmxhdHRlbmVkO1xuICAgICAgICBjb25zdCBbeG1sbnNBdHRyLCB4bWxuc10gPSB0aGlzLmdldFhtbG5zQXR0cmlidXRlKG1hcE1lbWJlciwgcGFyZW50WG1sbnMpO1xuICAgICAgICBjb25zdCBhZGRLZXlWYWx1ZSA9IChlbnRyeSwga2V5LCB2YWwpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGtleU5vZGUgPSBYbWxOb2RlLm9mKGtleVRhZywga2V5KTtcbiAgICAgICAgICAgIGNvbnN0IFtrZXlYbWxuc0F0dHIsIGtleVhtbG5zXSA9IHRoaXMuZ2V0WG1sbnNBdHRyaWJ1dGUobWFwS2V5U2NoZW1hLCB4bWxucyk7XG4gICAgICAgICAgICBpZiAoa2V5WG1sbnMpIHtcbiAgICAgICAgICAgICAgICBrZXlOb2RlLmFkZEF0dHJpYnV0ZShrZXlYbWxuc0F0dHIsIGtleVhtbG5zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVudHJ5LmFkZENoaWxkTm9kZShrZXlOb2RlKTtcbiAgICAgICAgICAgIGxldCB2YWx1ZU5vZGUgPSBYbWxOb2RlLm9mKHZhbHVlVGFnKTtcbiAgICAgICAgICAgIGlmIChtYXBWYWx1ZVNjaGVtYS5pc0xpc3RTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVMaXN0KG1hcFZhbHVlU2NoZW1hLCB2YWwsIHZhbHVlTm9kZSwgeG1sbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAobWFwVmFsdWVTY2hlbWEuaXNNYXBTY2hlbWEoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVNYXAobWFwVmFsdWVTY2hlbWEsIHZhbCwgdmFsdWVOb2RlLCB4bWxucywgdHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChtYXBWYWx1ZVNjaGVtYS5pc1N0cnVjdFNjaGVtYSgpKSB7XG4gICAgICAgICAgICAgICAgdmFsdWVOb2RlID0gdGhpcy53cml0ZVN0cnVjdChtYXBWYWx1ZVNjaGVtYSwgdmFsLCB4bWxucyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlU2ltcGxlSW50byhtYXBWYWx1ZVNjaGVtYSwgdmFsLCB2YWx1ZU5vZGUsIHhtbG5zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVudHJ5LmFkZENoaWxkTm9kZSh2YWx1ZU5vZGUpO1xuICAgICAgICB9O1xuICAgICAgICBpZiAoZmxhdCkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gbWFwKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsID0gbWFwW2tleV07XG4gICAgICAgICAgICAgICAgaWYgKHNwYXJzZSB8fCB2YWwgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlbnRyeSA9IFhtbE5vZGUub2YobWFwVHJhaXRzLnhtbE5hbWUgPz8gbWFwTWVtYmVyLmdldE1lbWJlck5hbWUoKSk7XG4gICAgICAgICAgICAgICAgICAgIGFkZEtleVZhbHVlKGVudHJ5LCBrZXksIHZhbCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lci5hZGRDaGlsZE5vZGUoZW50cnkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGxldCBtYXBOb2RlO1xuICAgICAgICAgICAgaWYgKCFjb250YWluZXJJc01hcCkge1xuICAgICAgICAgICAgICAgIG1hcE5vZGUgPSBYbWxOb2RlLm9mKG1hcFRyYWl0cy54bWxOYW1lID8/IG1hcE1lbWJlci5nZXRNZW1iZXJOYW1lKCkpO1xuICAgICAgICAgICAgICAgIGlmICh4bWxucykge1xuICAgICAgICAgICAgICAgICAgICBtYXBOb2RlLmFkZEF0dHJpYnV0ZSh4bWxuc0F0dHIsIHhtbG5zKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29udGFpbmVyLmFkZENoaWxkTm9kZShtYXBOb2RlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIG1hcCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbCA9IG1hcFtrZXldO1xuICAgICAgICAgICAgICAgIGlmIChzcGFyc2UgfHwgdmFsICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZW50cnkgPSBYbWxOb2RlLm9mKFwiZW50cnlcIik7XG4gICAgICAgICAgICAgICAgICAgIGFkZEtleVZhbHVlKGVudHJ5LCBrZXksIHZhbCk7XG4gICAgICAgICAgICAgICAgICAgIChjb250YWluZXJJc01hcCA/IGNvbnRhaW5lciA6IG1hcE5vZGUpLmFkZENoaWxkTm9kZShlbnRyeSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHdyaXRlU2ltcGxlKF9zY2hlbWEsIHZhbHVlKSB7XG4gICAgICAgIGlmIChudWxsID09PSB2YWx1ZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQGF3cy1zZGsvY29yZS9wcm90b2NvbHMgLSAoWE1MIHNlcmlhbGl6ZXIpIGNhbm5vdCB3cml0ZSBudWxsIHZhbHVlLlwiKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBucyA9IE5vcm1hbGl6ZWRTY2hlbWEub2YoX3NjaGVtYSk7XG4gICAgICAgIGxldCBub2RlQ29udGVudHMgPSBudWxsO1xuICAgICAgICBpZiAodmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICBpZiAobnMuaXNCbG9iU2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICBub2RlQ29udGVudHMgPSAodGhpcy5zZXJkZUNvbnRleHQ/LmJhc2U2NEVuY29kZXIgPz8gdG9CYXNlNjQpKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKG5zLmlzVGltZXN0YW1wU2NoZW1hKCkgJiYgdmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZm9ybWF0ID0gZGV0ZXJtaW5lVGltZXN0YW1wRm9ybWF0KG5zLCB0aGlzLnNldHRpbmdzKTtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGZvcm1hdCkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgICAgICAgICAgICAgICBub2RlQ29udGVudHMgPSB2YWx1ZS50b0lTT1N0cmluZygpLnJlcGxhY2UoXCIuMDAwWlwiLCBcIlpcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgICAgICAgICAgICAgbm9kZUNvbnRlbnRzID0gZGF0ZVRvVXRjU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDc6XG4gICAgICAgICAgICAgICAgICAgICAgICBub2RlQ29udGVudHMgPSBTdHJpbmcodmFsdWUuZ2V0VGltZSgpIC8gMTAwMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihcIk1pc3NpbmcgdGltZXN0YW1wIGZvcm1hdCwgdXNpbmcgaHR0cCBkYXRlXCIsIHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vZGVDb250ZW50cyA9IGRhdGVUb1V0Y1N0cmluZyh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChucy5pc0JpZ0RlY2ltYWxTY2hlbWEoKSAmJiB2YWx1ZSkge1xuICAgICAgICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIE51bWVyaWNWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUuc3RyaW5nO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKG5zLmlzTWFwU2NoZW1hKCkgfHwgbnMuaXNMaXN0U2NoZW1hKCkpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJAYXdzLXNkay9jb3JlL3Byb3RvY29scyAtIHhtbCBzZXJpYWxpemVyLCBjYW5ub3QgY2FsbCBfd3JpdGUoKSBvbiBMaXN0L01hcCBzY2hlbWEsIGNhbGwgd3JpdGVMaXN0IG9yIHdyaXRlTWFwKCkgaW5zdGVhZC5cIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEBhd3Mtc2RrL2NvcmUvcHJvdG9jb2xzIC0geG1sIHNlcmlhbGl6ZXIsIHVuaGFuZGxlZCBzY2hlbWEgdHlwZSBmb3Igb2JqZWN0IHZhbHVlIGFuZCBzY2hlbWE6ICR7bnMuZ2V0TmFtZSh0cnVlKX1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAobnMuaXNCb29sZWFuU2NoZW1hKCkgfHwgbnMuaXNOdW1lcmljU2NoZW1hKCkgfHwgbnMuaXNCaWdJbnRlZ2VyU2NoZW1hKCkgfHwgbnMuaXNCaWdEZWNpbWFsU2NoZW1hKCkpIHtcbiAgICAgICAgICAgIG5vZGVDb250ZW50cyA9IFN0cmluZyh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5zLmlzU3RyaW5nU2NoZW1hKCkpIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkICYmIG5zLmlzSWRlbXBvdGVuY3lUb2tlbigpKSB7XG4gICAgICAgICAgICAgICAgbm9kZUNvbnRlbnRzID0gZ2VuZXJhdGVJZGVtcG90ZW5jeVRva2VuKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBub2RlQ29udGVudHMgPSBTdHJpbmcodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChub2RlQ29udGVudHMgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5oYW5kbGVkIHNjaGVtYS12YWx1ZSBwYWlyICR7bnMuZ2V0TmFtZSh0cnVlKX09JHt2YWx1ZX1gKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbm9kZUNvbnRlbnRzO1xuICAgIH1cbiAgICB3cml0ZVNpbXBsZUludG8oX3NjaGVtYSwgdmFsdWUsIGludG8sIHBhcmVudFhtbG5zKSB7XG4gICAgICAgIGNvbnN0IG5vZGVDb250ZW50cyA9IHRoaXMud3JpdGVTaW1wbGUoX3NjaGVtYSwgdmFsdWUpO1xuICAgICAgICBjb25zdCBucyA9IE5vcm1hbGl6ZWRTY2hlbWEub2YoX3NjaGVtYSk7XG4gICAgICAgIGNvbnN0IGNvbnRlbnQgPSBuZXcgWG1sVGV4dChub2RlQ29udGVudHMpO1xuICAgICAgICBjb25zdCBbeG1sbnNBdHRyLCB4bWxuc10gPSB0aGlzLmdldFhtbG5zQXR0cmlidXRlKG5zLCBwYXJlbnRYbWxucyk7XG4gICAgICAgIGlmICh4bWxucykge1xuICAgICAgICAgICAgaW50by5hZGRBdHRyaWJ1dGUoeG1sbnNBdHRyLCB4bWxucyk7XG4gICAgICAgIH1cbiAgICAgICAgaW50by5hZGRDaGlsZE5vZGUoY29udGVudCk7XG4gICAgfVxuICAgIGdldFhtbG5zQXR0cmlidXRlKG5zLCBwYXJlbnRYbWxucykge1xuICAgICAgICBjb25zdCB0cmFpdHMgPSBucy5nZXRNZXJnZWRUcmFpdHMoKTtcbiAgICAgICAgY29uc3QgW3ByZWZpeCwgeG1sbnNdID0gdHJhaXRzLnhtbE5hbWVzcGFjZSA/PyBbXTtcbiAgICAgICAgaWYgKHhtbG5zICYmIHhtbG5zICE9PSBwYXJlbnRYbWxucykge1xuICAgICAgICAgICAgcmV0dXJuIFtwcmVmaXggPyBgeG1sbnM6JHtwcmVmaXh9YCA6IFwieG1sbnNcIiwgeG1sbnNdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBbdm9pZCAwLCB2b2lkIDBdO1xuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBTZXJkZUNvbnRleHRDb25maWcgfSBmcm9tIFwiLi4vQ29uZmlndXJhYmxlU2VyZGVDb250ZXh0XCI7XG5pbXBvcnQgeyBYbWxTaGFwZURlc2VyaWFsaXplciB9IGZyb20gXCIuL1htbFNoYXBlRGVzZXJpYWxpemVyXCI7XG5pbXBvcnQgeyBYbWxTaGFwZVNlcmlhbGl6ZXIgfSBmcm9tIFwiLi9YbWxTaGFwZVNlcmlhbGl6ZXJcIjtcbmV4cG9ydCBjbGFzcyBYbWxDb2RlYyBleHRlbmRzIFNlcmRlQ29udGV4dENvbmZpZyB7XG4gICAgc2V0dGluZ3M7XG4gICAgY29uc3RydWN0b3Ioc2V0dGluZ3MpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5zZXR0aW5ncyA9IHNldHRpbmdzO1xuICAgIH1cbiAgICBjcmVhdGVTZXJpYWxpemVyKCkge1xuICAgICAgICBjb25zdCBzZXJpYWxpemVyID0gbmV3IFhtbFNoYXBlU2VyaWFsaXplcih0aGlzLnNldHRpbmdzKTtcbiAgICAgICAgc2VyaWFsaXplci5zZXRTZXJkZUNvbnRleHQodGhpcy5zZXJkZUNvbnRleHQpO1xuICAgICAgICByZXR1cm4gc2VyaWFsaXplcjtcbiAgICB9XG4gICAgY3JlYXRlRGVzZXJpYWxpemVyKCkge1xuICAgICAgICBjb25zdCBkZXNlcmlhbGl6ZXIgPSBuZXcgWG1sU2hhcGVEZXNlcmlhbGl6ZXIodGhpcy5zZXR0aW5ncyk7XG4gICAgICAgIGRlc2VyaWFsaXplci5zZXRTZXJkZUNvbnRleHQodGhpcy5zZXJkZUNvbnRleHQpO1xuICAgICAgICByZXR1cm4gZGVzZXJpYWxpemVyO1xuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBIdHRwQmluZGluZ1Byb3RvY29sLCBIdHRwSW50ZXJjZXB0aW5nU2hhcGVEZXNlcmlhbGl6ZXIsIEh0dHBJbnRlcmNlcHRpbmdTaGFwZVNlcmlhbGl6ZXIsIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9wcm90b2NvbHNcIjtcbmltcG9ydCB7IE5vcm1hbGl6ZWRTY2hlbWEgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3NjaGVtYVwiO1xuaW1wb3J0IHsgUHJvdG9jb2xMaWIgfSBmcm9tIFwiLi4vUHJvdG9jb2xMaWJcIjtcbmltcG9ydCB7IGxvYWRSZXN0WG1sRXJyb3JDb2RlIH0gZnJvbSBcIi4vcGFyc2VYbWxCb2R5XCI7XG5pbXBvcnQgeyBYbWxDb2RlYyB9IGZyb20gXCIuL1htbENvZGVjXCI7XG5leHBvcnQgY2xhc3MgQXdzUmVzdFhtbFByb3RvY29sIGV4dGVuZHMgSHR0cEJpbmRpbmdQcm90b2NvbCB7XG4gICAgY29kZWM7XG4gICAgc2VyaWFsaXplcjtcbiAgICBkZXNlcmlhbGl6ZXI7XG4gICAgbWl4aW4gPSBuZXcgUHJvdG9jb2xMaWIoKTtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgICAgICBjb25zdCBzZXR0aW5ncyA9IHtcbiAgICAgICAgICAgIHRpbWVzdGFtcEZvcm1hdDoge1xuICAgICAgICAgICAgICAgIHVzZVRyYWl0OiB0cnVlLFxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IDUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaHR0cEJpbmRpbmdzOiB0cnVlLFxuICAgICAgICAgICAgeG1sTmFtZXNwYWNlOiBvcHRpb25zLnhtbE5hbWVzcGFjZSxcbiAgICAgICAgICAgIHNlcnZpY2VOYW1lc3BhY2U6IG9wdGlvbnMuZGVmYXVsdE5hbWVzcGFjZSxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5jb2RlYyA9IG5ldyBYbWxDb2RlYyhzZXR0aW5ncyk7XG4gICAgICAgIHRoaXMuc2VyaWFsaXplciA9IG5ldyBIdHRwSW50ZXJjZXB0aW5nU2hhcGVTZXJpYWxpemVyKHRoaXMuY29kZWMuY3JlYXRlU2VyaWFsaXplcigpLCBzZXR0aW5ncyk7XG4gICAgICAgIHRoaXMuZGVzZXJpYWxpemVyID0gbmV3IEh0dHBJbnRlcmNlcHRpbmdTaGFwZURlc2VyaWFsaXplcih0aGlzLmNvZGVjLmNyZWF0ZURlc2VyaWFsaXplcigpLCBzZXR0aW5ncyk7XG4gICAgfVxuICAgIGdldFBheWxvYWRDb2RlYygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29kZWM7XG4gICAgfVxuICAgIGdldFNoYXBlSWQoKSB7XG4gICAgICAgIHJldHVybiBcImF3cy5wcm90b2NvbHMjcmVzdFhtbFwiO1xuICAgIH1cbiAgICBhc3luYyBzZXJpYWxpemVSZXF1ZXN0KG9wZXJhdGlvblNjaGVtYSwgaW5wdXQsIGNvbnRleHQpIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IGF3YWl0IHN1cGVyLnNlcmlhbGl6ZVJlcXVlc3Qob3BlcmF0aW9uU2NoZW1hLCBpbnB1dCwgY29udGV4dCk7XG4gICAgICAgIGNvbnN0IGlucHV0U2NoZW1hID0gTm9ybWFsaXplZFNjaGVtYS5vZihvcGVyYXRpb25TY2hlbWEuaW5wdXQpO1xuICAgICAgICBpZiAoIXJlcXVlc3QuaGVhZGVyc1tcImNvbnRlbnQtdHlwZVwiXSkge1xuICAgICAgICAgICAgY29uc3QgY29udGVudFR5cGUgPSB0aGlzLm1peGluLnJlc29sdmVSZXN0Q29udGVudFR5cGUodGhpcy5nZXREZWZhdWx0Q29udGVudFR5cGUoKSwgaW5wdXRTY2hlbWEpO1xuICAgICAgICAgICAgaWYgKGNvbnRlbnRUeXBlKSB7XG4gICAgICAgICAgICAgICAgcmVxdWVzdC5oZWFkZXJzW1wiY29udGVudC10eXBlXCJdID0gY29udGVudFR5cGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiByZXF1ZXN0LmJvZHkgPT09IFwic3RyaW5nXCIgJiZcbiAgICAgICAgICAgIHJlcXVlc3QuaGVhZGVyc1tcImNvbnRlbnQtdHlwZVwiXSA9PT0gdGhpcy5nZXREZWZhdWx0Q29udGVudFR5cGUoKSAmJlxuICAgICAgICAgICAgIXJlcXVlc3QuYm9keS5zdGFydHNXaXRoKFwiPD94bWwgXCIpICYmXG4gICAgICAgICAgICAhdGhpcy5oYXNVbnN0cnVjdHVyZWRQYXlsb2FkQmluZGluZyhpbnB1dFNjaGVtYSkpIHtcbiAgICAgICAgICAgIHJlcXVlc3QuYm9keSA9ICc8P3htbCB2ZXJzaW9uPVwiMS4wXCIgZW5jb2Rpbmc9XCJVVEYtOFwiPz4nICsgcmVxdWVzdC5ib2R5O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXF1ZXN0O1xuICAgIH1cbiAgICBhc3luYyBkZXNlcmlhbGl6ZVJlc3BvbnNlKG9wZXJhdGlvblNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UpIHtcbiAgICAgICAgcmV0dXJuIHN1cGVyLmRlc2VyaWFsaXplUmVzcG9uc2Uob3BlcmF0aW9uU2NoZW1hLCBjb250ZXh0LCByZXNwb25zZSk7XG4gICAgfVxuICAgIGFzeW5jIGhhbmRsZUVycm9yKG9wZXJhdGlvblNjaGVtYSwgY29udGV4dCwgcmVzcG9uc2UsIGRhdGFPYmplY3QsIG1ldGFkYXRhKSB7XG4gICAgICAgIGNvbnN0IGVycm9ySWRlbnRpZmllciA9IGxvYWRSZXN0WG1sRXJyb3JDb2RlKHJlc3BvbnNlLCBkYXRhT2JqZWN0KSA/PyBcIlVua25vd25cIjtcbiAgICAgICAgdGhpcy5taXhpbi5jb21wb3NlKHRoaXMuY29tcG9zaXRlRXJyb3JSZWdpc3RyeSwgZXJyb3JJZGVudGlmaWVyLCB0aGlzLm9wdGlvbnMuZGVmYXVsdE5hbWVzcGFjZSk7XG4gICAgICAgIGlmIChkYXRhT2JqZWN0LkVycm9yICYmIHR5cGVvZiBkYXRhT2JqZWN0LkVycm9yID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhkYXRhT2JqZWN0LkVycm9yKSkge1xuICAgICAgICAgICAgICAgIGRhdGFPYmplY3Rba2V5XSA9IGRhdGFPYmplY3QuRXJyb3Jba2V5XTtcbiAgICAgICAgICAgICAgICBpZiAoa2V5LnRvTG93ZXJDYXNlKCkgPT09IFwibWVzc2FnZVwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGRhdGFPYmplY3QubWVzc2FnZSA9IGRhdGFPYmplY3QuRXJyb3Jba2V5XTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGFPYmplY3QuUmVxdWVzdElkICYmICFtZXRhZGF0YS5yZXF1ZXN0SWQpIHtcbiAgICAgICAgICAgIG1ldGFkYXRhLnJlcXVlc3RJZCA9IGRhdGFPYmplY3QuUmVxdWVzdElkO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHsgZXJyb3JTY2hlbWEsIGVycm9yTWV0YWRhdGEgfSA9IGF3YWl0IHRoaXMubWl4aW4uZ2V0RXJyb3JTY2hlbWFPclRocm93QmFzZUV4Y2VwdGlvbihlcnJvcklkZW50aWZpZXIsIHRoaXMub3B0aW9ucy5kZWZhdWx0TmFtZXNwYWNlLCByZXNwb25zZSwgZGF0YU9iamVjdCwgbWV0YWRhdGEpO1xuICAgICAgICBjb25zdCBucyA9IE5vcm1hbGl6ZWRTY2hlbWEub2YoZXJyb3JTY2hlbWEpO1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gZGF0YU9iamVjdC5FcnJvcj8ubWVzc2FnZSA/P1xuICAgICAgICAgICAgZGF0YU9iamVjdC5FcnJvcj8uTWVzc2FnZSA/P1xuICAgICAgICAgICAgZGF0YU9iamVjdC5tZXNzYWdlID8/XG4gICAgICAgICAgICBkYXRhT2JqZWN0Lk1lc3NhZ2UgPz9cbiAgICAgICAgICAgIFwiVW5rbm93bkVycm9yXCI7XG4gICAgICAgIGNvbnN0IEVycm9yQ3RvciA9IHRoaXMuY29tcG9zaXRlRXJyb3JSZWdpc3RyeS5nZXRFcnJvckN0b3IoZXJyb3JTY2hlbWEpID8/IEVycm9yO1xuICAgICAgICBjb25zdCBleGNlcHRpb24gPSBuZXcgRXJyb3JDdG9yKG1lc3NhZ2UpO1xuICAgICAgICBhd2FpdCB0aGlzLmRlc2VyaWFsaXplSHR0cE1lc3NhZ2UoZXJyb3JTY2hlbWEsIGNvbnRleHQsIHJlc3BvbnNlLCBkYXRhT2JqZWN0KTtcbiAgICAgICAgY29uc3Qgb3V0cHV0ID0ge307XG4gICAgICAgIGNvbnN0IGVycm9yRGVzZXJpYWxpemVyID0gdGhpcy5jb2RlYy5jcmVhdGVEZXNlcmlhbGl6ZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBbbmFtZSwgbWVtYmVyXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBtZW1iZXIuZ2V0TWVyZ2VkVHJhaXRzKCkueG1sTmFtZSA/PyBuYW1lO1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBkYXRhT2JqZWN0LkVycm9yPy5bdGFyZ2V0XSA/PyBkYXRhT2JqZWN0W3RhcmdldF07XG4gICAgICAgICAgICBvdXRwdXRbbmFtZV0gPSBlcnJvckRlc2VyaWFsaXplci5yZWFkU2NoZW1hKG1lbWJlciwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IHRoaXMubWl4aW4uZGVjb3JhdGVTZXJ2aWNlRXhjZXB0aW9uKE9iamVjdC5hc3NpZ24oZXhjZXB0aW9uLCBlcnJvck1ldGFkYXRhLCB7XG4gICAgICAgICAgICAkZmF1bHQ6IG5zLmdldE1lcmdlZFRyYWl0cygpLmVycm9yLFxuICAgICAgICAgICAgbWVzc2FnZSxcbiAgICAgICAgfSwgb3V0cHV0KSwgZGF0YU9iamVjdCk7XG4gICAgfVxuICAgIGdldERlZmF1bHRDb250ZW50VHlwZSgpIHtcbiAgICAgICAgcmV0dXJuIFwiYXBwbGljYXRpb24veG1sXCI7XG4gICAgfVxuICAgIGhhc1Vuc3RydWN0dXJlZFBheWxvYWRCaW5kaW5nKG5zKSB7XG4gICAgICAgIGZvciAoY29uc3QgWywgbWVtYmVyXSBvZiBucy5zdHJ1Y3RJdGVyYXRvcigpKSB7XG4gICAgICAgICAgICBpZiAobWVtYmVyLmdldE1lcmdlZFRyYWl0cygpLmh0dHBQYXlsb2FkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICEobWVtYmVyLmlzU3RydWN0U2NoZW1hKCkgfHwgbWVtYmVyLmlzTWFwU2NoZW1hKCkgfHwgbWVtYmVyLmlzTGlzdFNjaGVtYSgpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuIiwgImV4cG9ydCAqIGZyb20gXCIuL2Nib3IvQXdzU21pdGh5UnBjVjJDYm9yUHJvdG9jb2xcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvZXJjaW5nLXNlcmlhbGl6ZXJzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9qc29uL0F3c0pzb24xXzBQcm90b2NvbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vanNvbi9Bd3NKc29uMV8xUHJvdG9jb2xcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2pzb24vQXdzSnNvblJwY1Byb3RvY29sXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9qc29uL0F3c1Jlc3RKc29uUHJvdG9jb2xcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2pzb24vSnNvbkNvZGVjXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9qc29uL0pzb25TaGFwZURlc2VyaWFsaXplclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vanNvbi9Kc29uU2hhcGVTZXJpYWxpemVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9qc29uL2F3c0V4cGVjdFVuaW9uXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9qc29uL3BhcnNlSnNvbkJvZHlcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3F1ZXJ5L0F3c0VjMlF1ZXJ5UHJvdG9jb2xcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3F1ZXJ5L0F3c1F1ZXJ5UHJvdG9jb2xcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3F1ZXJ5L1F1ZXJ5U2VyaWFsaXplclNldHRpbmdzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9xdWVyeS9RdWVyeVNoYXBlU2VyaWFsaXplclwiO1xuZXhwb3J0ICogZnJvbSBcIi4veG1sL0F3c1Jlc3RYbWxQcm90b2NvbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4veG1sL1htbENvZGVjXCI7XG5leHBvcnQgKiBmcm9tIFwiLi94bWwvWG1sU2hhcGVEZXNlcmlhbGl6ZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3htbC9YbWxTaGFwZVNlcmlhbGl6ZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3htbC9wYXJzZVhtbEJvZHlcIjtcbiIsICJpbXBvcnQgeyBCaW5hcnlEZWNpc2lvbkRpYWdyYW0gfSBmcm9tIFwiQHNtaXRoeS91dGlsLWVuZHBvaW50c1wiO1xuY29uc3QgayA9IFwicmVmXCI7XG5jb25zdCBhID0gLTEsIGIgPSB0cnVlLCBjID0gXCJpc1NldFwiLCBkID0gXCJQYXJ0aXRpb25SZXN1bHRcIiwgZSA9IFwiYm9vbGVhbkVxdWFsc1wiLCBmID0gXCJnZXRBdHRyXCIsIGcgPSB7IFtrXTogXCJFbmRwb2ludFwiIH0sIGggPSB7IFtrXTogZCB9LCBpID0ge30sIGogPSBbeyBba106IFwiUmVnaW9uXCIgfV07XG5jb25zdCBfZGF0YSA9IHtcbiAgICBjb25kaXRpb25zOiBbXG4gICAgICAgIFtjLCBbZ11dLFxuICAgICAgICBbYywgal0sXG4gICAgICAgIFtcImF3cy5wYXJ0aXRpb25cIiwgaiwgZF0sXG4gICAgICAgIFtlLCBbeyBba106IFwiVXNlRklQU1wiIH0sIGJdXSxcbiAgICAgICAgW2UsIFt7IFtrXTogXCJVc2VEdWFsU3RhY2tcIiB9LCBiXV0sXG4gICAgICAgIFtlLCBbeyBmbjogZiwgYXJndjogW2gsIFwic3VwcG9ydHNEdWFsU3RhY2tcIl0gfSwgYl1dLFxuICAgICAgICBbZSwgW3sgZm46IGYsIGFyZ3Y6IFtoLCBcInN1cHBvcnRzRklQU1wiXSB9LCBiXV0sXG4gICAgICAgIFtcInN0cmluZ0VxdWFsc1wiLCBbeyBmbjogZiwgYXJndjogW2gsIFwibmFtZVwiXSB9LCBcImF3cy11cy1nb3ZcIl1dLFxuICAgIF0sXG4gICAgcmVzdWx0czogW1xuICAgICAgICBbYV0sXG4gICAgICAgIFthLCBcIkludmFsaWQgQ29uZmlndXJhdGlvbjogRklQUyBhbmQgY3VzdG9tIGVuZHBvaW50IGFyZSBub3Qgc3VwcG9ydGVkXCJdLFxuICAgICAgICBbYSwgXCJJbnZhbGlkIENvbmZpZ3VyYXRpb246IER1YWxzdGFjayBhbmQgY3VzdG9tIGVuZHBvaW50IGFyZSBub3Qgc3VwcG9ydGVkXCJdLFxuICAgICAgICBbZywgaV0sXG4gICAgICAgIFtcImh0dHBzOi8vb2lkYy1maXBzLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZHVhbFN0YWNrRG5zU3VmZml4fVwiLCBpXSxcbiAgICAgICAgW2EsIFwiRklQUyBhbmQgRHVhbFN0YWNrIGFyZSBlbmFibGVkLCBidXQgdGhpcyBwYXJ0aXRpb24gZG9lcyBub3Qgc3VwcG9ydCBvbmUgb3IgYm90aFwiXSxcbiAgICAgICAgW1wiaHR0cHM6Ly9vaWRjLntSZWdpb259LmFtYXpvbmF3cy5jb21cIiwgaV0sXG4gICAgICAgIFtcImh0dHBzOi8vb2lkYy1maXBzLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZG5zU3VmZml4fVwiLCBpXSxcbiAgICAgICAgW2EsIFwiRklQUyBpcyBlbmFibGVkIGJ1dCB0aGlzIHBhcnRpdGlvbiBkb2VzIG5vdCBzdXBwb3J0IEZJUFNcIl0sXG4gICAgICAgIFtcImh0dHBzOi8vb2lkYy57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2R1YWxTdGFja0Ruc1N1ZmZpeH1cIiwgaV0sXG4gICAgICAgIFthLCBcIkR1YWxTdGFjayBpcyBlbmFibGVkIGJ1dCB0aGlzIHBhcnRpdGlvbiBkb2VzIG5vdCBzdXBwb3J0IER1YWxTdGFja1wiXSxcbiAgICAgICAgW1wiaHR0cHM6Ly9vaWRjLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZG5zU3VmZml4fVwiLCBpXSxcbiAgICAgICAgW2EsIFwiSW52YWxpZCBDb25maWd1cmF0aW9uOiBNaXNzaW5nIFJlZ2lvblwiXSxcbiAgICBdLFxufTtcbmNvbnN0IHJvb3QgPSAyO1xuY29uc3QgciA9IDEwMF8wMDBfMDAwO1xuY29uc3Qgbm9kZXMgPSBuZXcgSW50MzJBcnJheShbXG4gICAgLTEsXG4gICAgMSxcbiAgICAtMSxcbiAgICAwLFxuICAgIDEzLFxuICAgIDMsXG4gICAgMSxcbiAgICA0LFxuICAgIHIgKyAxMixcbiAgICAyLFxuICAgIDUsXG4gICAgciArIDEyLFxuICAgIDMsXG4gICAgOCxcbiAgICA2LFxuICAgIDQsXG4gICAgNyxcbiAgICByICsgMTEsXG4gICAgNSxcbiAgICByICsgOSxcbiAgICByICsgMTAsXG4gICAgNCxcbiAgICAxMSxcbiAgICA5LFxuICAgIDYsXG4gICAgMTAsXG4gICAgciArIDgsXG4gICAgNyxcbiAgICByICsgNixcbiAgICByICsgNyxcbiAgICA1LFxuICAgIDEyLFxuICAgIHIgKyA1LFxuICAgIDYsXG4gICAgciArIDQsXG4gICAgciArIDUsXG4gICAgMyxcbiAgICByICsgMSxcbiAgICAxNCxcbiAgICA0LFxuICAgIHIgKyAyLFxuICAgIHIgKyAzLFxuXSk7XG5leHBvcnQgY29uc3QgYmRkID0gQmluYXJ5RGVjaXNpb25EaWFncmFtLmZyb20obm9kZXMsIHJvb3QsIF9kYXRhLmNvbmRpdGlvbnMsIF9kYXRhLnJlc3VsdHMpO1xuIiwgImltcG9ydCB7IGF3c0VuZHBvaW50RnVuY3Rpb25zIH0gZnJvbSBcIkBhd3Mtc2RrL3V0aWwtZW5kcG9pbnRzXCI7XG5pbXBvcnQgeyBjdXN0b21FbmRwb2ludEZ1bmN0aW9ucywgZGVjaWRlRW5kcG9pbnQsIEVuZHBvaW50Q2FjaGUgfSBmcm9tIFwiQHNtaXRoeS91dGlsLWVuZHBvaW50c1wiO1xuaW1wb3J0IHsgYmRkIH0gZnJvbSBcIi4vYmRkXCI7XG5jb25zdCBjYWNoZSA9IG5ldyBFbmRwb2ludENhY2hlKHtcbiAgICBzaXplOiA1MCxcbiAgICBwYXJhbXM6IFtcIkVuZHBvaW50XCIsIFwiUmVnaW9uXCIsIFwiVXNlRHVhbFN0YWNrXCIsIFwiVXNlRklQU1wiXSxcbn0pO1xuZXhwb3J0IGNvbnN0IGRlZmF1bHRFbmRwb2ludFJlc29sdmVyID0gKGVuZHBvaW50UGFyYW1zLCBjb250ZXh0ID0ge30pID0+IHtcbiAgICByZXR1cm4gY2FjaGUuZ2V0KGVuZHBvaW50UGFyYW1zLCAoKSA9PiBkZWNpZGVFbmRwb2ludChiZGQsIHtcbiAgICAgICAgZW5kcG9pbnRQYXJhbXM6IGVuZHBvaW50UGFyYW1zLFxuICAgICAgICBsb2dnZXI6IGNvbnRleHQubG9nZ2VyLFxuICAgIH0pKTtcbn07XG5jdXN0b21FbmRwb2ludEZ1bmN0aW9ucy5hd3MgPSBhd3NFbmRwb2ludEZ1bmN0aW9ucztcbiIsICJpbXBvcnQgeyBTZXJ2aWNlRXhjZXB0aW9uIGFzIF9fU2VydmljZUV4Y2VwdGlvbiwgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5leHBvcnQgeyBfX1NlcnZpY2VFeGNlcHRpb24gfTtcbmV4cG9ydCBjbGFzcyBTU09PSURDU2VydmljZUV4Y2VwdGlvbiBleHRlbmRzIF9fU2VydmljZUV4Y2VwdGlvbiB7XG4gICAgY29uc3RydWN0b3Iob3B0aW9ucykge1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFNTT09JRENTZXJ2aWNlRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IFNTT09JRENTZXJ2aWNlRXhjZXB0aW9uIGFzIF9fQmFzZUV4Y2VwdGlvbiB9IGZyb20gXCIuL1NTT09JRENTZXJ2aWNlRXhjZXB0aW9uXCI7XG5leHBvcnQgY2xhc3MgQWNjZXNzRGVuaWVkRXhjZXB0aW9uIGV4dGVuZHMgX19CYXNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJBY2Nlc3NEZW5pZWRFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGVycm9yO1xuICAgIHJlYXNvbjtcbiAgICBlcnJvcl9kZXNjcmlwdGlvbjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiQWNjZXNzRGVuaWVkRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEFjY2Vzc0RlbmllZEV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLmVycm9yID0gb3B0cy5lcnJvcjtcbiAgICAgICAgdGhpcy5yZWFzb24gPSBvcHRzLnJlYXNvbjtcbiAgICAgICAgdGhpcy5lcnJvcl9kZXNjcmlwdGlvbiA9IG9wdHMuZXJyb3JfZGVzY3JpcHRpb247XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIEF1dGhvcml6YXRpb25QZW5kaW5nRXhjZXB0aW9uIGV4dGVuZHMgX19CYXNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJBdXRob3JpemF0aW9uUGVuZGluZ0V4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgZXJyb3I7XG4gICAgZXJyb3JfZGVzY3JpcHRpb247XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkF1dGhvcml6YXRpb25QZW5kaW5nRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEF1dGhvcml6YXRpb25QZW5kaW5nRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuZXJyb3IgPSBvcHRzLmVycm9yO1xuICAgICAgICB0aGlzLmVycm9yX2Rlc2NyaXB0aW9uID0gb3B0cy5lcnJvcl9kZXNjcmlwdGlvbjtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgRXhwaXJlZFRva2VuRXhjZXB0aW9uIGV4dGVuZHMgX19CYXNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJFeHBpcmVkVG9rZW5FeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGVycm9yO1xuICAgIGVycm9yX2Rlc2NyaXB0aW9uO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJFeHBpcmVkVG9rZW5FeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgRXhwaXJlZFRva2VuRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuZXJyb3IgPSBvcHRzLmVycm9yO1xuICAgICAgICB0aGlzLmVycm9yX2Rlc2NyaXB0aW9uID0gb3B0cy5lcnJvcl9kZXNjcmlwdGlvbjtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb24gZXh0ZW5kcyBfX0Jhc2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIkludGVybmFsU2VydmVyRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJzZXJ2ZXJcIjtcbiAgICBlcnJvcjtcbiAgICBlcnJvcl9kZXNjcmlwdGlvbjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJzZXJ2ZXJcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5lcnJvciA9IG9wdHMuZXJyb3I7XG4gICAgICAgIHRoaXMuZXJyb3JfZGVzY3JpcHRpb24gPSBvcHRzLmVycm9yX2Rlc2NyaXB0aW9uO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBJbnZhbGlkQ2xpZW50RXhjZXB0aW9uIGV4dGVuZHMgX19CYXNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJJbnZhbGlkQ2xpZW50RXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBlcnJvcjtcbiAgICBlcnJvcl9kZXNjcmlwdGlvbjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiSW52YWxpZENsaWVudEV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBJbnZhbGlkQ2xpZW50RXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuZXJyb3IgPSBvcHRzLmVycm9yO1xuICAgICAgICB0aGlzLmVycm9yX2Rlc2NyaXB0aW9uID0gb3B0cy5lcnJvcl9kZXNjcmlwdGlvbjtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgSW52YWxpZEdyYW50RXhjZXB0aW9uIGV4dGVuZHMgX19CYXNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJJbnZhbGlkR3JhbnRFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGVycm9yO1xuICAgIGVycm9yX2Rlc2NyaXB0aW9uO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJJbnZhbGlkR3JhbnRFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgSW52YWxpZEdyYW50RXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuZXJyb3IgPSBvcHRzLmVycm9yO1xuICAgICAgICB0aGlzLmVycm9yX2Rlc2NyaXB0aW9uID0gb3B0cy5lcnJvcl9kZXNjcmlwdGlvbjtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgSW52YWxpZFJlcXVlc3RFeGNlcHRpb24gZXh0ZW5kcyBfX0Jhc2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIkludmFsaWRSZXF1ZXN0RXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBlcnJvcjtcbiAgICByZWFzb247XG4gICAgZXJyb3JfZGVzY3JpcHRpb247XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkludmFsaWRSZXF1ZXN0RXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEludmFsaWRSZXF1ZXN0RXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuZXJyb3IgPSBvcHRzLmVycm9yO1xuICAgICAgICB0aGlzLnJlYXNvbiA9IG9wdHMucmVhc29uO1xuICAgICAgICB0aGlzLmVycm9yX2Rlc2NyaXB0aW9uID0gb3B0cy5lcnJvcl9kZXNjcmlwdGlvbjtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgSW52YWxpZFNjb3BlRXhjZXB0aW9uIGV4dGVuZHMgX19CYXNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJJbnZhbGlkU2NvcGVFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGVycm9yO1xuICAgIGVycm9yX2Rlc2NyaXB0aW9uO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJJbnZhbGlkU2NvcGVFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgSW52YWxpZFNjb3BlRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuZXJyb3IgPSBvcHRzLmVycm9yO1xuICAgICAgICB0aGlzLmVycm9yX2Rlc2NyaXB0aW9uID0gb3B0cy5lcnJvcl9kZXNjcmlwdGlvbjtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgU2xvd0Rvd25FeGNlcHRpb24gZXh0ZW5kcyBfX0Jhc2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIlNsb3dEb3duRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBlcnJvcjtcbiAgICBlcnJvcl9kZXNjcmlwdGlvbjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiU2xvd0Rvd25FeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgU2xvd0Rvd25FeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5lcnJvciA9IG9wdHMuZXJyb3I7XG4gICAgICAgIHRoaXMuZXJyb3JfZGVzY3JpcHRpb24gPSBvcHRzLmVycm9yX2Rlc2NyaXB0aW9uO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBVbmF1dGhvcml6ZWRDbGllbnRFeGNlcHRpb24gZXh0ZW5kcyBfX0Jhc2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIlVuYXV0aG9yaXplZENsaWVudEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgZXJyb3I7XG4gICAgZXJyb3JfZGVzY3JpcHRpb247XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIlVuYXV0aG9yaXplZENsaWVudEV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBVbmF1dGhvcml6ZWRDbGllbnRFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5lcnJvciA9IG9wdHMuZXJyb3I7XG4gICAgICAgIHRoaXMuZXJyb3JfZGVzY3JpcHRpb24gPSBvcHRzLmVycm9yX2Rlc2NyaXB0aW9uO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBVbnN1cHBvcnRlZEdyYW50VHlwZUV4Y2VwdGlvbiBleHRlbmRzIF9fQmFzZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiVW5zdXBwb3J0ZWRHcmFudFR5cGVFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGVycm9yO1xuICAgIGVycm9yX2Rlc2NyaXB0aW9uO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJVbnN1cHBvcnRlZEdyYW50VHlwZUV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBVbnN1cHBvcnRlZEdyYW50VHlwZUV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLmVycm9yID0gb3B0cy5lcnJvcjtcbiAgICAgICAgdGhpcy5lcnJvcl9kZXNjcmlwdGlvbiA9IG9wdHMuZXJyb3JfZGVzY3JpcHRpb247XG4gICAgfVxufVxuIiwgImNvbnN0IF9BREUgPSBcIkFjY2Vzc0RlbmllZEV4Y2VwdGlvblwiO1xuY29uc3QgX0FQRSA9IFwiQXV0aG9yaXphdGlvblBlbmRpbmdFeGNlcHRpb25cIjtcbmNvbnN0IF9BVCA9IFwiQWNjZXNzVG9rZW5cIjtcbmNvbnN0IF9DUyA9IFwiQ2xpZW50U2VjcmV0XCI7XG5jb25zdCBfQ1QgPSBcIkNyZWF0ZVRva2VuXCI7XG5jb25zdCBfQ1RSID0gXCJDcmVhdGVUb2tlblJlcXVlc3RcIjtcbmNvbnN0IF9DVFJyID0gXCJDcmVhdGVUb2tlblJlc3BvbnNlXCI7XG5jb25zdCBfQ1YgPSBcIkNvZGVWZXJpZmllclwiO1xuY29uc3QgX0VURSA9IFwiRXhwaXJlZFRva2VuRXhjZXB0aW9uXCI7XG5jb25zdCBfSUNFID0gXCJJbnZhbGlkQ2xpZW50RXhjZXB0aW9uXCI7XG5jb25zdCBfSUdFID0gXCJJbnZhbGlkR3JhbnRFeGNlcHRpb25cIjtcbmNvbnN0IF9JUkUgPSBcIkludmFsaWRSZXF1ZXN0RXhjZXB0aW9uXCI7XG5jb25zdCBfSVNFID0gXCJJbnRlcm5hbFNlcnZlckV4Y2VwdGlvblwiO1xuY29uc3QgX0lTRW4gPSBcIkludmFsaWRTY29wZUV4Y2VwdGlvblwiO1xuY29uc3QgX0lUID0gXCJJZFRva2VuXCI7XG5jb25zdCBfUlQgPSBcIlJlZnJlc2hUb2tlblwiO1xuY29uc3QgX1NERSA9IFwiU2xvd0Rvd25FeGNlcHRpb25cIjtcbmNvbnN0IF9VQ0UgPSBcIlVuYXV0aG9yaXplZENsaWVudEV4Y2VwdGlvblwiO1xuY29uc3QgX1VHVEUgPSBcIlVuc3VwcG9ydGVkR3JhbnRUeXBlRXhjZXB0aW9uXCI7XG5jb25zdCBfYVQgPSBcImFjY2Vzc1Rva2VuXCI7XG5jb25zdCBfYyA9IFwiY2xpZW50XCI7XG5jb25zdCBfY0kgPSBcImNsaWVudElkXCI7XG5jb25zdCBfY1MgPSBcImNsaWVudFNlY3JldFwiO1xuY29uc3QgX2NWID0gXCJjb2RlVmVyaWZpZXJcIjtcbmNvbnN0IF9jbyA9IFwiY29kZVwiO1xuY29uc3QgX2RDID0gXCJkZXZpY2VDb2RlXCI7XG5jb25zdCBfZSA9IFwiZXJyb3JcIjtcbmNvbnN0IF9lSSA9IFwiZXhwaXJlc0luXCI7XG5jb25zdCBfZWQgPSBcImVycm9yX2Rlc2NyaXB0aW9uXCI7XG5jb25zdCBfZ1QgPSBcImdyYW50VHlwZVwiO1xuY29uc3QgX2ggPSBcImh0dHBcIjtcbmNvbnN0IF9oRSA9IFwiaHR0cEVycm9yXCI7XG5jb25zdCBfaVQgPSBcImlkVG9rZW5cIjtcbmNvbnN0IF9yID0gXCJyZWFzb25cIjtcbmNvbnN0IF9yVCA9IFwicmVmcmVzaFRva2VuXCI7XG5jb25zdCBfclUgPSBcInJlZGlyZWN0VXJpXCI7XG5jb25zdCBfcyA9IFwic21pdGh5LnRzLnNkay5zeW50aGV0aWMuY29tLmFtYXpvbmF3cy5zc29vaWRjXCI7XG5jb25zdCBfc2MgPSBcInNjb3BlXCI7XG5jb25zdCBfc2UgPSBcInNlcnZlclwiO1xuY29uc3QgX3RUID0gXCJ0b2tlblR5cGVcIjtcbmNvbnN0IG4wID0gXCJjb20uYW1hem9uYXdzLnNzb29pZGNcIjtcbmltcG9ydCB7IFR5cGVSZWdpc3RyeSB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2NoZW1hXCI7XG5pbXBvcnQgeyBBY2Nlc3NEZW5pZWRFeGNlcHRpb24sIEF1dGhvcml6YXRpb25QZW5kaW5nRXhjZXB0aW9uLCBFeHBpcmVkVG9rZW5FeGNlcHRpb24sIEludGVybmFsU2VydmVyRXhjZXB0aW9uLCBJbnZhbGlkQ2xpZW50RXhjZXB0aW9uLCBJbnZhbGlkR3JhbnRFeGNlcHRpb24sIEludmFsaWRSZXF1ZXN0RXhjZXB0aW9uLCBJbnZhbGlkU2NvcGVFeGNlcHRpb24sIFNsb3dEb3duRXhjZXB0aW9uLCBVbmF1dGhvcml6ZWRDbGllbnRFeGNlcHRpb24sIFVuc3VwcG9ydGVkR3JhbnRUeXBlRXhjZXB0aW9uLCB9IGZyb20gXCIuLi9tb2RlbHMvZXJyb3JzXCI7XG5pbXBvcnQgeyBTU09PSURDU2VydmljZUV4Y2VwdGlvbiB9IGZyb20gXCIuLi9tb2RlbHMvU1NPT0lEQ1NlcnZpY2VFeGNlcHRpb25cIjtcbmNvbnN0IF9zX3JlZ2lzdHJ5ID0gVHlwZVJlZ2lzdHJ5LmZvcihfcyk7XG5leHBvcnQgdmFyIFNTT09JRENTZXJ2aWNlRXhjZXB0aW9uJCA9IFstMywgX3MsIFwiU1NPT0lEQ1NlcnZpY2VFeGNlcHRpb25cIiwgMCwgW10sIFtdXTtcbl9zX3JlZ2lzdHJ5LnJlZ2lzdGVyRXJyb3IoU1NPT0lEQ1NlcnZpY2VFeGNlcHRpb24kLCBTU09PSURDU2VydmljZUV4Y2VwdGlvbik7XG5jb25zdCBuMF9yZWdpc3RyeSA9IFR5cGVSZWdpc3RyeS5mb3IobjApO1xuZXhwb3J0IHZhciBBY2Nlc3NEZW5pZWRFeGNlcHRpb24kID0gW1xuICAgIC0zLFxuICAgIG4wLFxuICAgIF9BREUsXG4gICAgeyBbX2VdOiBfYywgW19oRV06IDQwMCB9LFxuICAgIFtfZSwgX3IsIF9lZF0sXG4gICAgWzAsIDAsIDBdLFxuXTtcbm4wX3JlZ2lzdHJ5LnJlZ2lzdGVyRXJyb3IoQWNjZXNzRGVuaWVkRXhjZXB0aW9uJCwgQWNjZXNzRGVuaWVkRXhjZXB0aW9uKTtcbmV4cG9ydCB2YXIgQXV0aG9yaXphdGlvblBlbmRpbmdFeGNlcHRpb24kID0gW1xuICAgIC0zLFxuICAgIG4wLFxuICAgIF9BUEUsXG4gICAgeyBbX2VdOiBfYywgW19oRV06IDQwMCB9LFxuICAgIFtfZSwgX2VkXSxcbiAgICBbMCwgMF0sXG5dO1xubjBfcmVnaXN0cnkucmVnaXN0ZXJFcnJvcihBdXRob3JpemF0aW9uUGVuZGluZ0V4Y2VwdGlvbiQsIEF1dGhvcml6YXRpb25QZW5kaW5nRXhjZXB0aW9uKTtcbmV4cG9ydCB2YXIgRXhwaXJlZFRva2VuRXhjZXB0aW9uJCA9IFstMywgbjAsIF9FVEUsIHsgW19lXTogX2MsIFtfaEVdOiA0MDAgfSwgW19lLCBfZWRdLCBbMCwgMF1dO1xubjBfcmVnaXN0cnkucmVnaXN0ZXJFcnJvcihFeHBpcmVkVG9rZW5FeGNlcHRpb24kLCBFeHBpcmVkVG9rZW5FeGNlcHRpb24pO1xuZXhwb3J0IHZhciBJbnRlcm5hbFNlcnZlckV4Y2VwdGlvbiQgPSBbLTMsIG4wLCBfSVNFLCB7IFtfZV06IF9zZSwgW19oRV06IDUwMCB9LCBbX2UsIF9lZF0sIFswLCAwXV07XG5uMF9yZWdpc3RyeS5yZWdpc3RlckVycm9yKEludGVybmFsU2VydmVyRXhjZXB0aW9uJCwgSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb24pO1xuZXhwb3J0IHZhciBJbnZhbGlkQ2xpZW50RXhjZXB0aW9uJCA9IFstMywgbjAsIF9JQ0UsIHsgW19lXTogX2MsIFtfaEVdOiA0MDEgfSwgW19lLCBfZWRdLCBbMCwgMF1dO1xubjBfcmVnaXN0cnkucmVnaXN0ZXJFcnJvcihJbnZhbGlkQ2xpZW50RXhjZXB0aW9uJCwgSW52YWxpZENsaWVudEV4Y2VwdGlvbik7XG5leHBvcnQgdmFyIEludmFsaWRHcmFudEV4Y2VwdGlvbiQgPSBbLTMsIG4wLCBfSUdFLCB7IFtfZV06IF9jLCBbX2hFXTogNDAwIH0sIFtfZSwgX2VkXSwgWzAsIDBdXTtcbm4wX3JlZ2lzdHJ5LnJlZ2lzdGVyRXJyb3IoSW52YWxpZEdyYW50RXhjZXB0aW9uJCwgSW52YWxpZEdyYW50RXhjZXB0aW9uKTtcbmV4cG9ydCB2YXIgSW52YWxpZFJlcXVlc3RFeGNlcHRpb24kID0gW1xuICAgIC0zLFxuICAgIG4wLFxuICAgIF9JUkUsXG4gICAgeyBbX2VdOiBfYywgW19oRV06IDQwMCB9LFxuICAgIFtfZSwgX3IsIF9lZF0sXG4gICAgWzAsIDAsIDBdLFxuXTtcbm4wX3JlZ2lzdHJ5LnJlZ2lzdGVyRXJyb3IoSW52YWxpZFJlcXVlc3RFeGNlcHRpb24kLCBJbnZhbGlkUmVxdWVzdEV4Y2VwdGlvbik7XG5leHBvcnQgdmFyIEludmFsaWRTY29wZUV4Y2VwdGlvbiQgPSBbLTMsIG4wLCBfSVNFbiwgeyBbX2VdOiBfYywgW19oRV06IDQwMCB9LCBbX2UsIF9lZF0sIFswLCAwXV07XG5uMF9yZWdpc3RyeS5yZWdpc3RlckVycm9yKEludmFsaWRTY29wZUV4Y2VwdGlvbiQsIEludmFsaWRTY29wZUV4Y2VwdGlvbik7XG5leHBvcnQgdmFyIFNsb3dEb3duRXhjZXB0aW9uJCA9IFstMywgbjAsIF9TREUsIHsgW19lXTogX2MsIFtfaEVdOiA0MDAgfSwgW19lLCBfZWRdLCBbMCwgMF1dO1xubjBfcmVnaXN0cnkucmVnaXN0ZXJFcnJvcihTbG93RG93bkV4Y2VwdGlvbiQsIFNsb3dEb3duRXhjZXB0aW9uKTtcbmV4cG9ydCB2YXIgVW5hdXRob3JpemVkQ2xpZW50RXhjZXB0aW9uJCA9IFtcbiAgICAtMyxcbiAgICBuMCxcbiAgICBfVUNFLFxuICAgIHsgW19lXTogX2MsIFtfaEVdOiA0MDAgfSxcbiAgICBbX2UsIF9lZF0sXG4gICAgWzAsIDBdLFxuXTtcbm4wX3JlZ2lzdHJ5LnJlZ2lzdGVyRXJyb3IoVW5hdXRob3JpemVkQ2xpZW50RXhjZXB0aW9uJCwgVW5hdXRob3JpemVkQ2xpZW50RXhjZXB0aW9uKTtcbmV4cG9ydCB2YXIgVW5zdXBwb3J0ZWRHcmFudFR5cGVFeGNlcHRpb24kID0gW1xuICAgIC0zLFxuICAgIG4wLFxuICAgIF9VR1RFLFxuICAgIHsgW19lXTogX2MsIFtfaEVdOiA0MDAgfSxcbiAgICBbX2UsIF9lZF0sXG4gICAgWzAsIDBdLFxuXTtcbm4wX3JlZ2lzdHJ5LnJlZ2lzdGVyRXJyb3IoVW5zdXBwb3J0ZWRHcmFudFR5cGVFeGNlcHRpb24kLCBVbnN1cHBvcnRlZEdyYW50VHlwZUV4Y2VwdGlvbik7XG5leHBvcnQgY29uc3QgZXJyb3JUeXBlUmVnaXN0cmllcyA9IFtfc19yZWdpc3RyeSwgbjBfcmVnaXN0cnldO1xudmFyIEFjY2Vzc1Rva2VuID0gWzAsIG4wLCBfQVQsIDgsIDBdO1xudmFyIENsaWVudFNlY3JldCA9IFswLCBuMCwgX0NTLCA4LCAwXTtcbnZhciBDb2RlVmVyaWZpZXIgPSBbMCwgbjAsIF9DViwgOCwgMF07XG52YXIgSWRUb2tlbiA9IFswLCBuMCwgX0lULCA4LCAwXTtcbnZhciBSZWZyZXNoVG9rZW4gPSBbMCwgbjAsIF9SVCwgOCwgMF07XG5leHBvcnQgdmFyIENyZWF0ZVRva2VuUmVxdWVzdCQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfQ1RSLFxuICAgIDAsXG4gICAgW19jSSwgX2NTLCBfZ1QsIF9kQywgX2NvLCBfclQsIF9zYywgX3JVLCBfY1ZdLFxuICAgIFswLCBbKCkgPT4gQ2xpZW50U2VjcmV0LCAwXSwgMCwgMCwgMCwgWygpID0+IFJlZnJlc2hUb2tlbiwgMF0sIDY0IHwgMCwgMCwgWygpID0+IENvZGVWZXJpZmllciwgMF1dLFxuICAgIDMsXG5dO1xuZXhwb3J0IHZhciBDcmVhdGVUb2tlblJlc3BvbnNlJCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9DVFJyLFxuICAgIDAsXG4gICAgW19hVCwgX3RULCBfZUksIF9yVCwgX2lUXSxcbiAgICBbWygpID0+IEFjY2Vzc1Rva2VuLCAwXSwgMCwgMSwgWygpID0+IFJlZnJlc2hUb2tlbiwgMF0sIFsoKSA9PiBJZFRva2VuLCAwXV0sXG5dO1xudmFyIFNjb3BlcyA9IDY0IHwgMDtcbmV4cG9ydCB2YXIgQ3JlYXRlVG9rZW4kID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0NULFxuICAgIHsgW19oXTogW1wiUE9TVFwiLCBcIi90b2tlblwiLCAyMDBdIH0sXG4gICAgKCkgPT4gQ3JlYXRlVG9rZW5SZXF1ZXN0JCxcbiAgICAoKSA9PiBDcmVhdGVUb2tlblJlc3BvbnNlJCxcbl07XG4iLCAiaW1wb3J0IHsgQXdzU2RrU2lnVjRTaWduZXIgfSBmcm9tIFwiQGF3cy1zZGsvY29yZS9odHRwQXV0aFNjaGVtZXNcIjtcbmltcG9ydCB7IEF3c1Jlc3RKc29uUHJvdG9jb2wgfSBmcm9tIFwiQGF3cy1zZGsvY29yZS9wcm90b2NvbHNcIjtcbmltcG9ydCB7IE5vQXV0aFNpZ25lciB9IGZyb20gXCJAc21pdGh5L2NvcmVcIjtcbmltcG9ydCB7IE5vT3BMb2dnZXIgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyBwYXJzZVVybCB9IGZyb20gXCJAc21pdGh5L3VybC1wYXJzZXJcIjtcbmltcG9ydCB7IGZyb21CYXNlNjQsIHRvQmFzZTY0IH0gZnJvbSBcIkBzbWl0aHkvdXRpbC1iYXNlNjRcIjtcbmltcG9ydCB7IGZyb21VdGY4LCB0b1V0ZjggfSBmcm9tIFwiQHNtaXRoeS91dGlsLXV0ZjhcIjtcbmltcG9ydCB7IGRlZmF1bHRTU09PSURDSHR0cEF1dGhTY2hlbWVQcm92aWRlciB9IGZyb20gXCIuL2F1dGgvaHR0cEF1dGhTY2hlbWVQcm92aWRlclwiO1xuaW1wb3J0IHsgZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIgfSBmcm9tIFwiLi9lbmRwb2ludC9lbmRwb2ludFJlc29sdmVyXCI7XG5pbXBvcnQgeyBlcnJvclR5cGVSZWdpc3RyaWVzIH0gZnJvbSBcIi4vc2NoZW1hcy9zY2hlbWFzXzBcIjtcbmV4cG9ydCBjb25zdCBnZXRSdW50aW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIGFwaVZlcnNpb246IFwiMjAxOS0wNi0xMFwiLFxuICAgICAgICBiYXNlNjREZWNvZGVyOiBjb25maWc/LmJhc2U2NERlY29kZXIgPz8gZnJvbUJhc2U2NCxcbiAgICAgICAgYmFzZTY0RW5jb2RlcjogY29uZmlnPy5iYXNlNjRFbmNvZGVyID8/IHRvQmFzZTY0LFxuICAgICAgICBkaXNhYmxlSG9zdFByZWZpeDogY29uZmlnPy5kaXNhYmxlSG9zdFByZWZpeCA/PyBmYWxzZSxcbiAgICAgICAgZW5kcG9pbnRQcm92aWRlcjogY29uZmlnPy5lbmRwb2ludFByb3ZpZGVyID8/IGRlZmF1bHRFbmRwb2ludFJlc29sdmVyLFxuICAgICAgICBleHRlbnNpb25zOiBjb25maWc/LmV4dGVuc2lvbnMgPz8gW10sXG4gICAgICAgIGh0dHBBdXRoU2NoZW1lUHJvdmlkZXI6IGNvbmZpZz8uaHR0cEF1dGhTY2hlbWVQcm92aWRlciA/PyBkZWZhdWx0U1NPT0lEQ0h0dHBBdXRoU2NoZW1lUHJvdmlkZXIsXG4gICAgICAgIGh0dHBBdXRoU2NoZW1lczogY29uZmlnPy5odHRwQXV0aFNjaGVtZXMgPz8gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHNjaGVtZUlkOiBcImF3cy5hdXRoI3NpZ3Y0XCIsXG4gICAgICAgICAgICAgICAgaWRlbnRpdHlQcm92aWRlcjogKGlwYykgPT4gaXBjLmdldElkZW50aXR5UHJvdmlkZXIoXCJhd3MuYXV0aCNzaWd2NFwiKSxcbiAgICAgICAgICAgICAgICBzaWduZXI6IG5ldyBBd3NTZGtTaWdWNFNpZ25lcigpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzY2hlbWVJZDogXCJzbWl0aHkuYXBpI25vQXV0aFwiLFxuICAgICAgICAgICAgICAgIGlkZW50aXR5UHJvdmlkZXI6IChpcGMpID0+IGlwYy5nZXRJZGVudGl0eVByb3ZpZGVyKFwic21pdGh5LmFwaSNub0F1dGhcIikgfHwgKGFzeW5jICgpID0+ICh7fSkpLFxuICAgICAgICAgICAgICAgIHNpZ25lcjogbmV3IE5vQXV0aFNpZ25lcigpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgbG9nZ2VyOiBjb25maWc/LmxvZ2dlciA/PyBuZXcgTm9PcExvZ2dlcigpLFxuICAgICAgICBwcm90b2NvbDogY29uZmlnPy5wcm90b2NvbCA/PyBBd3NSZXN0SnNvblByb3RvY29sLFxuICAgICAgICBwcm90b2NvbFNldHRpbmdzOiBjb25maWc/LnByb3RvY29sU2V0dGluZ3MgPz8ge1xuICAgICAgICAgICAgZGVmYXVsdE5hbWVzcGFjZTogXCJjb20uYW1hem9uYXdzLnNzb29pZGNcIixcbiAgICAgICAgICAgIGVycm9yVHlwZVJlZ2lzdHJpZXMsXG4gICAgICAgICAgICB2ZXJzaW9uOiBcIjIwMTktMDYtMTBcIixcbiAgICAgICAgICAgIHNlcnZpY2VUYXJnZXQ6IFwiQVdTU1NPT0lEQ1NlcnZpY2VcIixcbiAgICAgICAgfSxcbiAgICAgICAgc2VydmljZUlkOiBjb25maWc/LnNlcnZpY2VJZCA/PyBcIlNTTyBPSURDXCIsXG4gICAgICAgIHVybFBhcnNlcjogY29uZmlnPy51cmxQYXJzZXIgPz8gcGFyc2VVcmwsXG4gICAgICAgIHV0ZjhEZWNvZGVyOiBjb25maWc/LnV0ZjhEZWNvZGVyID8/IGZyb21VdGY4LFxuICAgICAgICB1dGY4RW5jb2RlcjogY29uZmlnPy51dGY4RW5jb2RlciA/PyB0b1V0ZjgsXG4gICAgfTtcbn07XG4iLCAiaW1wb3J0IHBhY2thZ2VJbmZvIGZyb20gXCIuLi8uLi8uLi9wYWNrYWdlLmpzb25cIjtcbmltcG9ydCB7IGVtaXRXYXJuaW5nSWZVbnN1cHBvcnRlZFZlcnNpb24gYXMgYXdzQ2hlY2tWZXJzaW9uIH0gZnJvbSBcIkBhd3Mtc2RrL2NvcmUvY2xpZW50XCI7XG5pbXBvcnQgeyBOT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfT1BUSU9OUyB9IGZyb20gXCJAYXdzLXNkay9jb3JlL2h0dHBBdXRoU2NoZW1lc1wiO1xuaW1wb3J0IHsgY3JlYXRlRGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyLCBOT0RFX0FQUF9JRF9DT05GSUdfT1BUSU9OUyB9IGZyb20gXCJAYXdzLXNkay91dGlsLXVzZXItYWdlbnQtbm9kZVwiO1xuaW1wb3J0IHsgTk9ERV9SRUdJT05fQ09ORklHX0ZJTEVfT1BUSU9OUywgTk9ERV9SRUdJT05fQ09ORklHX09QVElPTlMsIE5PREVfVVNFX0RVQUxTVEFDS19FTkRQT0lOVF9DT05GSUdfT1BUSU9OUywgTk9ERV9VU0VfRklQU19FTkRQT0lOVF9DT05GSUdfT1BUSU9OUywgfSBmcm9tIFwiQHNtaXRoeS9jb25maWctcmVzb2x2ZXJcIjtcbmltcG9ydCB7IEhhc2ggfSBmcm9tIFwiQHNtaXRoeS9oYXNoLW5vZGVcIjtcbmltcG9ydCB7IE5PREVfTUFYX0FUVEVNUFRfQ09ORklHX09QVElPTlMsIE5PREVfUkVUUllfTU9ERV9DT05GSUdfT1BUSU9OUyB9IGZyb20gXCJAc21pdGh5L21pZGRsZXdhcmUtcmV0cnlcIjtcbmltcG9ydCB7IGxvYWRDb25maWcgYXMgbG9hZE5vZGVDb25maWcgfSBmcm9tIFwiQHNtaXRoeS9ub2RlLWNvbmZpZy1wcm92aWRlclwiO1xuaW1wb3J0IHsgTm9kZUh0dHBIYW5kbGVyIGFzIFJlcXVlc3RIYW5kbGVyLCBzdHJlYW1Db2xsZWN0b3IgfSBmcm9tIFwiQHNtaXRoeS9ub2RlLWh0dHAtaGFuZGxlclwiO1xuaW1wb3J0IHsgZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbiwgbG9hZENvbmZpZ3NGb3JEZWZhdWx0TW9kZSB9IGZyb20gXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjtcbmltcG9ydCB7IGNhbGN1bGF0ZUJvZHlMZW5ndGggfSBmcm9tIFwiQHNtaXRoeS91dGlsLWJvZHktbGVuZ3RoLW5vZGVcIjtcbmltcG9ydCB7IHJlc29sdmVEZWZhdWx0c01vZGVDb25maWcgfSBmcm9tIFwiQHNtaXRoeS91dGlsLWRlZmF1bHRzLW1vZGUtbm9kZVwiO1xuaW1wb3J0IHsgREVGQVVMVF9SRVRSWV9NT0RFIH0gZnJvbSBcIkBzbWl0aHkvdXRpbC1yZXRyeVwiO1xuaW1wb3J0IHsgZ2V0UnVudGltZUNvbmZpZyBhcyBnZXRTaGFyZWRSdW50aW1lQ29uZmlnIH0gZnJvbSBcIi4vcnVudGltZUNvbmZpZy5zaGFyZWRcIjtcbmV4cG9ydCBjb25zdCBnZXRSdW50aW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIGVtaXRXYXJuaW5nSWZVbnN1cHBvcnRlZFZlcnNpb24ocHJvY2Vzcy52ZXJzaW9uKTtcbiAgICBjb25zdCBkZWZhdWx0c01vZGUgPSByZXNvbHZlRGVmYXVsdHNNb2RlQ29uZmlnKGNvbmZpZyk7XG4gICAgY29uc3QgZGVmYXVsdENvbmZpZ1Byb3ZpZGVyID0gKCkgPT4gZGVmYXVsdHNNb2RlKCkudGhlbihsb2FkQ29uZmlnc0ZvckRlZmF1bHRNb2RlKTtcbiAgICBjb25zdCBjbGllbnRTaGFyZWRWYWx1ZXMgPSBnZXRTaGFyZWRSdW50aW1lQ29uZmlnKGNvbmZpZyk7XG4gICAgYXdzQ2hlY2tWZXJzaW9uKHByb2Nlc3MudmVyc2lvbik7XG4gICAgY29uc3QgbG9hZGVyQ29uZmlnID0ge1xuICAgICAgICBwcm9maWxlOiBjb25maWc/LnByb2ZpbGUsXG4gICAgICAgIGxvZ2dlcjogY2xpZW50U2hhcmVkVmFsdWVzLmxvZ2dlcixcbiAgICB9O1xuICAgIHJldHVybiB7XG4gICAgICAgIC4uLmNsaWVudFNoYXJlZFZhbHVlcyxcbiAgICAgICAgLi4uY29uZmlnLFxuICAgICAgICBydW50aW1lOiBcIm5vZGVcIixcbiAgICAgICAgZGVmYXVsdHNNb2RlLFxuICAgICAgICBhdXRoU2NoZW1lUHJlZmVyZW5jZTogY29uZmlnPy5hdXRoU2NoZW1lUHJlZmVyZW5jZSA/PyBsb2FkTm9kZUNvbmZpZyhOT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfT1BUSU9OUywgbG9hZGVyQ29uZmlnKSxcbiAgICAgICAgYm9keUxlbmd0aENoZWNrZXI6IGNvbmZpZz8uYm9keUxlbmd0aENoZWNrZXIgPz8gY2FsY3VsYXRlQm9keUxlbmd0aCxcbiAgICAgICAgZGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyOiBjb25maWc/LmRlZmF1bHRVc2VyQWdlbnRQcm92aWRlciA/P1xuICAgICAgICAgICAgY3JlYXRlRGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyKHsgc2VydmljZUlkOiBjbGllbnRTaGFyZWRWYWx1ZXMuc2VydmljZUlkLCBjbGllbnRWZXJzaW9uOiBwYWNrYWdlSW5mby52ZXJzaW9uIH0pLFxuICAgICAgICBtYXhBdHRlbXB0czogY29uZmlnPy5tYXhBdHRlbXB0cyA/PyBsb2FkTm9kZUNvbmZpZyhOT0RFX01BWF9BVFRFTVBUX0NPTkZJR19PUFRJT05TLCBjb25maWcpLFxuICAgICAgICByZWdpb246IGNvbmZpZz8ucmVnaW9uID8/XG4gICAgICAgICAgICBsb2FkTm9kZUNvbmZpZyhOT0RFX1JFR0lPTl9DT05GSUdfT1BUSU9OUywgeyAuLi5OT0RFX1JFR0lPTl9DT05GSUdfRklMRV9PUFRJT05TLCAuLi5sb2FkZXJDb25maWcgfSksXG4gICAgICAgIHJlcXVlc3RIYW5kbGVyOiBSZXF1ZXN0SGFuZGxlci5jcmVhdGUoY29uZmlnPy5yZXF1ZXN0SGFuZGxlciA/PyBkZWZhdWx0Q29uZmlnUHJvdmlkZXIpLFxuICAgICAgICByZXRyeU1vZGU6IGNvbmZpZz8ucmV0cnlNb2RlID8/XG4gICAgICAgICAgICBsb2FkTm9kZUNvbmZpZyh7XG4gICAgICAgICAgICAgICAgLi4uTk9ERV9SRVRSWV9NT0RFX0NPTkZJR19PUFRJT05TLFxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IGFzeW5jICgpID0+IChhd2FpdCBkZWZhdWx0Q29uZmlnUHJvdmlkZXIoKSkucmV0cnlNb2RlIHx8IERFRkFVTFRfUkVUUllfTU9ERSxcbiAgICAgICAgICAgIH0sIGNvbmZpZyksXG4gICAgICAgIHNoYTI1NjogY29uZmlnPy5zaGEyNTYgPz8gSGFzaC5iaW5kKG51bGwsIFwic2hhMjU2XCIpLFxuICAgICAgICBzdHJlYW1Db2xsZWN0b3I6IGNvbmZpZz8uc3RyZWFtQ29sbGVjdG9yID8/IHN0cmVhbUNvbGxlY3RvcixcbiAgICAgICAgdXNlRHVhbHN0YWNrRW5kcG9pbnQ6IGNvbmZpZz8udXNlRHVhbHN0YWNrRW5kcG9pbnQgPz8gbG9hZE5vZGVDb25maWcoTk9ERV9VU0VfRFVBTFNUQUNLX0VORFBPSU5UX0NPTkZJR19PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgICAgICB1c2VGaXBzRW5kcG9pbnQ6IGNvbmZpZz8udXNlRmlwc0VuZHBvaW50ID8/IGxvYWROb2RlQ29uZmlnKE5PREVfVVNFX0ZJUFNfRU5EUE9JTlRfQ09ORklHX09QVElPTlMsIGxvYWRlckNvbmZpZyksXG4gICAgICAgIHVzZXJBZ2VudEFwcElkOiBjb25maWc/LnVzZXJBZ2VudEFwcElkID8/IGxvYWROb2RlQ29uZmlnKE5PREVfQVBQX0lEX0NPTkZJR19PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgIH07XG59O1xuIiwgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy53YXJuaW5nID0gdm9pZCAwO1xuZXhwb3J0cy5zdHNSZWdpb25EZWZhdWx0UmVzb2x2ZXIgPSBzdHNSZWdpb25EZWZhdWx0UmVzb2x2ZXI7XG5jb25zdCBjb25maWdfcmVzb2x2ZXJfMSA9IHJlcXVpcmUoXCJAc21pdGh5L2NvbmZpZy1yZXNvbHZlclwiKTtcbmNvbnN0IG5vZGVfY29uZmlnX3Byb3ZpZGVyXzEgPSByZXF1aXJlKFwiQHNtaXRoeS9ub2RlLWNvbmZpZy1wcm92aWRlclwiKTtcbmZ1bmN0aW9uIHN0c1JlZ2lvbkRlZmF1bHRSZXNvbHZlcihsb2FkZXJDb25maWcgPSB7fSkge1xuICAgIHJldHVybiAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKSh7XG4gICAgICAgIC4uLmNvbmZpZ19yZXNvbHZlcl8xLk5PREVfUkVHSU9OX0NPTkZJR19PUFRJT05TLFxuICAgICAgICBhc3luYyBkZWZhdWx0KCkge1xuICAgICAgICAgICAgaWYgKCFleHBvcnRzLndhcm5pbmcuc2lsZW5jZSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihcIkBhd3Mtc2RrIC0gV0FSTiAtIGRlZmF1bHQgU1RTIHJlZ2lvbiBvZiB1cy1lYXN0LTEgdXNlZC4gU2VlIEBhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXJzIFJFQURNRSBhbmQgc2V0IGEgcmVnaW9uIGV4cGxpY2l0bHkuXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIFwidXMtZWFzdC0xXCI7XG4gICAgICAgIH0sXG4gICAgfSwgeyAuLi5jb25maWdfcmVzb2x2ZXJfMS5OT0RFX1JFR0lPTl9DT05GSUdfRklMRV9PUFRJT05TLCAuLi5sb2FkZXJDb25maWcgfSk7XG59XG5leHBvcnRzLndhcm5pbmcgPSB7XG4gICAgc2lsZW5jZTogZmFsc2UsXG59O1xuIiwgIid1c2Ugc3RyaWN0JztcblxudmFyIHN0c1JlZ2lvbkRlZmF1bHRSZXNvbHZlciA9IHJlcXVpcmUoJy4vcmVnaW9uQ29uZmlnL3N0c1JlZ2lvbkRlZmF1bHRSZXNvbHZlcicpO1xudmFyIGNvbmZpZ1Jlc29sdmVyID0gcmVxdWlyZSgnQHNtaXRoeS9jb25maWctcmVzb2x2ZXInKTtcblxuY29uc3QgZ2V0QXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiA9IChydW50aW1lQ29uZmlnKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc2V0UmVnaW9uKHJlZ2lvbikge1xuICAgICAgICAgICAgcnVudGltZUNvbmZpZy5yZWdpb24gPSByZWdpb247XG4gICAgICAgIH0sXG4gICAgICAgIHJlZ2lvbigpIHtcbiAgICAgICAgICAgIHJldHVybiBydW50aW1lQ29uZmlnLnJlZ2lvbjtcbiAgICAgICAgfSxcbiAgICB9O1xufTtcbmNvbnN0IHJlc29sdmVBd3NSZWdpb25FeHRlbnNpb25Db25maWd1cmF0aW9uID0gKGF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24pID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgICByZWdpb246IGF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24ucmVnaW9uKCksXG4gICAgfTtcbn07XG5cbmV4cG9ydHMuTk9ERV9SRUdJT05fQ09ORklHX0ZJTEVfT1BUSU9OUyA9IGNvbmZpZ1Jlc29sdmVyLk5PREVfUkVHSU9OX0NPTkZJR19GSUxFX09QVElPTlM7XG5leHBvcnRzLk5PREVfUkVHSU9OX0NPTkZJR19PUFRJT05TID0gY29uZmlnUmVzb2x2ZXIuTk9ERV9SRUdJT05fQ09ORklHX09QVElPTlM7XG5leHBvcnRzLlJFR0lPTl9FTlZfTkFNRSA9IGNvbmZpZ1Jlc29sdmVyLlJFR0lPTl9FTlZfTkFNRTtcbmV4cG9ydHMuUkVHSU9OX0lOSV9OQU1FID0gY29uZmlnUmVzb2x2ZXIuUkVHSU9OX0lOSV9OQU1FO1xuZXhwb3J0cy5yZXNvbHZlUmVnaW9uQ29uZmlnID0gY29uZmlnUmVzb2x2ZXIucmVzb2x2ZVJlZ2lvbkNvbmZpZztcbmV4cG9ydHMuZ2V0QXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiA9IGdldEF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb247XG5leHBvcnRzLnJlc29sdmVBd3NSZWdpb25FeHRlbnNpb25Db25maWd1cmF0aW9uID0gcmVzb2x2ZUF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb247XG5PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc3RzUmVnaW9uRGVmYXVsdFJlc29sdmVyLCAnX19wcm90b19fJykgJiZcbiAgICAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGV4cG9ydHMsICdfX3Byb3RvX18nKSAmJlxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19wcm90b19fJywge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICB2YWx1ZTogc3RzUmVnaW9uRGVmYXVsdFJlc29sdmVyWydfX3Byb3RvX18nXVxuICAgIH0pO1xuXG5PYmplY3Qua2V5cyhzdHNSZWdpb25EZWZhdWx0UmVzb2x2ZXIpLmZvckVhY2goZnVuY3Rpb24gKGspIHtcbiAgICBpZiAoayAhPT0gJ2RlZmF1bHQnICYmICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXhwb3J0cywgaykpIGV4cG9ydHNba10gPSBzdHNSZWdpb25EZWZhdWx0UmVzb2x2ZXJba107XG59KTtcbiIsICJleHBvcnQgY29uc3QgZ2V0SHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uID0gKHJ1bnRpbWVDb25maWcpID0+IHtcbiAgICBjb25zdCBfaHR0cEF1dGhTY2hlbWVzID0gcnVudGltZUNvbmZpZy5odHRwQXV0aFNjaGVtZXM7XG4gICAgbGV0IF9odHRwQXV0aFNjaGVtZVByb3ZpZGVyID0gcnVudGltZUNvbmZpZy5odHRwQXV0aFNjaGVtZVByb3ZpZGVyO1xuICAgIGxldCBfY3JlZGVudGlhbHMgPSBydW50aW1lQ29uZmlnLmNyZWRlbnRpYWxzO1xuICAgIHJldHVybiB7XG4gICAgICAgIHNldEh0dHBBdXRoU2NoZW1lKGh0dHBBdXRoU2NoZW1lKSB7XG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IF9odHRwQXV0aFNjaGVtZXMuZmluZEluZGV4KChzY2hlbWUpID0+IHNjaGVtZS5zY2hlbWVJZCA9PT0gaHR0cEF1dGhTY2hlbWUuc2NoZW1lSWQpO1xuICAgICAgICAgICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgICAgICAgICAgIF9odHRwQXV0aFNjaGVtZXMucHVzaChodHRwQXV0aFNjaGVtZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBfaHR0cEF1dGhTY2hlbWVzLnNwbGljZShpbmRleCwgMSwgaHR0cEF1dGhTY2hlbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBodHRwQXV0aFNjaGVtZXMoKSB7XG4gICAgICAgICAgICByZXR1cm4gX2h0dHBBdXRoU2NoZW1lcztcbiAgICAgICAgfSxcbiAgICAgICAgc2V0SHR0cEF1dGhTY2hlbWVQcm92aWRlcihodHRwQXV0aFNjaGVtZVByb3ZpZGVyKSB7XG4gICAgICAgICAgICBfaHR0cEF1dGhTY2hlbWVQcm92aWRlciA9IGh0dHBBdXRoU2NoZW1lUHJvdmlkZXI7XG4gICAgICAgIH0sXG4gICAgICAgIGh0dHBBdXRoU2NoZW1lUHJvdmlkZXIoKSB7XG4gICAgICAgICAgICByZXR1cm4gX2h0dHBBdXRoU2NoZW1lUHJvdmlkZXI7XG4gICAgICAgIH0sXG4gICAgICAgIHNldENyZWRlbnRpYWxzKGNyZWRlbnRpYWxzKSB7XG4gICAgICAgICAgICBfY3JlZGVudGlhbHMgPSBjcmVkZW50aWFscztcbiAgICAgICAgfSxcbiAgICAgICAgY3JlZGVudGlhbHMoKSB7XG4gICAgICAgICAgICByZXR1cm4gX2NyZWRlbnRpYWxzO1xuICAgICAgICB9LFxuICAgIH07XG59O1xuZXhwb3J0IGNvbnN0IHJlc29sdmVIdHRwQXV0aFJ1bnRpbWVDb25maWcgPSAoY29uZmlnKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVzOiBjb25maWcuaHR0cEF1dGhTY2hlbWVzKCksXG4gICAgICAgIGh0dHBBdXRoU2NoZW1lUHJvdmlkZXI6IGNvbmZpZy5odHRwQXV0aFNjaGVtZVByb3ZpZGVyKCksXG4gICAgICAgIGNyZWRlbnRpYWxzOiBjb25maWcuY3JlZGVudGlhbHMoKSxcbiAgICB9O1xufTtcbiIsICJpbXBvcnQgeyBnZXRBd3NSZWdpb25FeHRlbnNpb25Db25maWd1cmF0aW9uLCByZXNvbHZlQXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiwgfSBmcm9tIFwiQGF3cy1zZGsvcmVnaW9uLWNvbmZpZy1yZXNvbHZlclwiO1xuaW1wb3J0IHsgZ2V0SHR0cEhhbmRsZXJFeHRlbnNpb25Db25maWd1cmF0aW9uLCByZXNvbHZlSHR0cEhhbmRsZXJSdW50aW1lQ29uZmlnIH0gZnJvbSBcIkBzbWl0aHkvcHJvdG9jb2wtaHR0cFwiO1xuaW1wb3J0IHsgZ2V0RGVmYXVsdEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24sIHJlc29sdmVEZWZhdWx0UnVudGltZUNvbmZpZyB9IGZyb20gXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjtcbmltcG9ydCB7IGdldEh0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiwgcmVzb2x2ZUh0dHBBdXRoUnVudGltZUNvbmZpZyB9IGZyb20gXCIuL2F1dGgvaHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uXCI7XG5leHBvcnQgY29uc3QgcmVzb2x2ZVJ1bnRpbWVFeHRlbnNpb25zID0gKHJ1bnRpbWVDb25maWcsIGV4dGVuc2lvbnMpID0+IHtcbiAgICBjb25zdCBleHRlbnNpb25Db25maWd1cmF0aW9uID0gT2JqZWN0LmFzc2lnbihnZXRBd3NSZWdpb25FeHRlbnNpb25Db25maWd1cmF0aW9uKHJ1bnRpbWVDb25maWcpLCBnZXREZWZhdWx0RXh0ZW5zaW9uQ29uZmlndXJhdGlvbihydW50aW1lQ29uZmlnKSwgZ2V0SHR0cEhhbmRsZXJFeHRlbnNpb25Db25maWd1cmF0aW9uKHJ1bnRpbWVDb25maWcpLCBnZXRIdHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24ocnVudGltZUNvbmZpZykpO1xuICAgIGV4dGVuc2lvbnMuZm9yRWFjaCgoZXh0ZW5zaW9uKSA9PiBleHRlbnNpb24uY29uZmlndXJlKGV4dGVuc2lvbkNvbmZpZ3VyYXRpb24pKTtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihydW50aW1lQ29uZmlnLCByZXNvbHZlQXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbihleHRlbnNpb25Db25maWd1cmF0aW9uKSwgcmVzb2x2ZURlZmF1bHRSdW50aW1lQ29uZmlnKGV4dGVuc2lvbkNvbmZpZ3VyYXRpb24pLCByZXNvbHZlSHR0cEhhbmRsZXJSdW50aW1lQ29uZmlnKGV4dGVuc2lvbkNvbmZpZ3VyYXRpb24pLCByZXNvbHZlSHR0cEF1dGhSdW50aW1lQ29uZmlnKGV4dGVuc2lvbkNvbmZpZ3VyYXRpb24pKTtcbn07XG4iLCAiaW1wb3J0IHsgZ2V0SG9zdEhlYWRlclBsdWdpbiwgcmVzb2x2ZUhvc3RIZWFkZXJDb25maWcsIH0gZnJvbSBcIkBhd3Mtc2RrL21pZGRsZXdhcmUtaG9zdC1oZWFkZXJcIjtcbmltcG9ydCB7IGdldExvZ2dlclBsdWdpbiB9IGZyb20gXCJAYXdzLXNkay9taWRkbGV3YXJlLWxvZ2dlclwiO1xuaW1wb3J0IHsgZ2V0UmVjdXJzaW9uRGV0ZWN0aW9uUGx1Z2luIH0gZnJvbSBcIkBhd3Mtc2RrL21pZGRsZXdhcmUtcmVjdXJzaW9uLWRldGVjdGlvblwiO1xuaW1wb3J0IHsgZ2V0VXNlckFnZW50UGx1Z2luLCByZXNvbHZlVXNlckFnZW50Q29uZmlnLCB9IGZyb20gXCJAYXdzLXNkay9taWRkbGV3YXJlLXVzZXItYWdlbnRcIjtcbmltcG9ydCB7IHJlc29sdmVSZWdpb25Db25maWcgfSBmcm9tIFwiQHNtaXRoeS9jb25maWctcmVzb2x2ZXJcIjtcbmltcG9ydCB7IERlZmF1bHRJZGVudGl0eVByb3ZpZGVyQ29uZmlnLCBnZXRIdHRwQXV0aFNjaGVtZUVuZHBvaW50UnVsZVNldFBsdWdpbiwgZ2V0SHR0cFNpZ25pbmdQbHVnaW4sIH0gZnJvbSBcIkBzbWl0aHkvY29yZVwiO1xuaW1wb3J0IHsgZ2V0U2NoZW1hU2VyZGVQbHVnaW4gfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3NjaGVtYVwiO1xuaW1wb3J0IHsgZ2V0Q29udGVudExlbmd0aFBsdWdpbiB9IGZyb20gXCJAc21pdGh5L21pZGRsZXdhcmUtY29udGVudC1sZW5ndGhcIjtcbmltcG9ydCB7IHJlc29sdmVFbmRwb2ludENvbmZpZywgfSBmcm9tIFwiQHNtaXRoeS9taWRkbGV3YXJlLWVuZHBvaW50XCI7XG5pbXBvcnQgeyBnZXRSZXRyeVBsdWdpbiwgcmVzb2x2ZVJldHJ5Q29uZmlnLCB9IGZyb20gXCJAc21pdGh5L21pZGRsZXdhcmUtcmV0cnlcIjtcbmltcG9ydCB7IENsaWVudCBhcyBfX0NsaWVudCwgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyBkZWZhdWx0U1NPT0lEQ0h0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyLCByZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWcsIH0gZnJvbSBcIi4vYXV0aC9odHRwQXV0aFNjaGVtZVByb3ZpZGVyXCI7XG5pbXBvcnQgeyByZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzLCB9IGZyb20gXCIuL2VuZHBvaW50L0VuZHBvaW50UGFyYW1ldGVyc1wiO1xuaW1wb3J0IHsgZ2V0UnVudGltZUNvbmZpZyBhcyBfX2dldFJ1bnRpbWVDb25maWcgfSBmcm9tIFwiLi9ydW50aW1lQ29uZmlnXCI7XG5pbXBvcnQgeyByZXNvbHZlUnVudGltZUV4dGVuc2lvbnMgfSBmcm9tIFwiLi9ydW50aW1lRXh0ZW5zaW9uc1wiO1xuZXhwb3J0IHsgX19DbGllbnQgfTtcbmV4cG9ydCBjbGFzcyBTU09PSURDQ2xpZW50IGV4dGVuZHMgX19DbGllbnQge1xuICAgIGNvbmZpZztcbiAgICBjb25zdHJ1Y3RvciguLi5bY29uZmlndXJhdGlvbl0pIHtcbiAgICAgICAgY29uc3QgX2NvbmZpZ18wID0gX19nZXRSdW50aW1lQ29uZmlnKGNvbmZpZ3VyYXRpb24gfHwge30pO1xuICAgICAgICBzdXBlcihfY29uZmlnXzApO1xuICAgICAgICB0aGlzLmluaXRDb25maWcgPSBfY29uZmlnXzA7XG4gICAgICAgIGNvbnN0IF9jb25maWdfMSA9IHJlc29sdmVDbGllbnRFbmRwb2ludFBhcmFtZXRlcnMoX2NvbmZpZ18wKTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ18yID0gcmVzb2x2ZVVzZXJBZ2VudENvbmZpZyhfY29uZmlnXzEpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzMgPSByZXNvbHZlUmV0cnlDb25maWcoX2NvbmZpZ18yKTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ180ID0gcmVzb2x2ZVJlZ2lvbkNvbmZpZyhfY29uZmlnXzMpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzUgPSByZXNvbHZlSG9zdEhlYWRlckNvbmZpZyhfY29uZmlnXzQpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzYgPSByZXNvbHZlRW5kcG9pbnRDb25maWcoX2NvbmZpZ181KTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ183ID0gcmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnKF9jb25maWdfNik7XG4gICAgICAgIGNvbnN0IF9jb25maWdfOCA9IHJlc29sdmVSdW50aW1lRXh0ZW5zaW9ucyhfY29uZmlnXzcsIGNvbmZpZ3VyYXRpb24/LmV4dGVuc2lvbnMgfHwgW10pO1xuICAgICAgICB0aGlzLmNvbmZpZyA9IF9jb25maWdfODtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGdldFNjaGVtYVNlcmRlUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShnZXRVc2VyQWdlbnRQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGdldFJldHJ5UGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShnZXRDb250ZW50TGVuZ3RoUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShnZXRIb3N0SGVhZGVyUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShnZXRMb2dnZXJQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGdldFJlY3Vyc2lvbkRldGVjdGlvblBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoZ2V0SHR0cEF1dGhTY2hlbWVFbmRwb2ludFJ1bGVTZXRQbHVnaW4odGhpcy5jb25maWcsIHtcbiAgICAgICAgICAgIGh0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyOiBkZWZhdWx0U1NPT0lEQ0h0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyLFxuICAgICAgICAgICAgaWRlbnRpdHlQcm92aWRlckNvbmZpZ1Byb3ZpZGVyOiBhc3luYyAoY29uZmlnKSA9PiBuZXcgRGVmYXVsdElkZW50aXR5UHJvdmlkZXJDb25maWcoe1xuICAgICAgICAgICAgICAgIFwiYXdzLmF1dGgjc2lndjRcIjogY29uZmlnLmNyZWRlbnRpYWxzLFxuICAgICAgICAgICAgfSksXG4gICAgICAgIH0pKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGdldEh0dHBTaWduaW5nUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgfVxuICAgIGRlc3Ryb3koKSB7XG4gICAgICAgIHN1cGVyLmRlc3Ryb3koKTtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgZ2V0RW5kcG9pbnRQbHVnaW4gfSBmcm9tIFwiQHNtaXRoeS9taWRkbGV3YXJlLWVuZHBvaW50XCI7XG5pbXBvcnQgeyBDb21tYW5kIGFzICRDb21tYW5kIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgY29tbW9uUGFyYW1zIH0gZnJvbSBcIi4uL2VuZHBvaW50L0VuZHBvaW50UGFyYW1ldGVyc1wiO1xuaW1wb3J0IHsgQ3JlYXRlVG9rZW4kIH0gZnJvbSBcIi4uL3NjaGVtYXMvc2NoZW1hc18wXCI7XG5leHBvcnQgeyAkQ29tbWFuZCB9O1xuZXhwb3J0IGNsYXNzIENyZWF0ZVRva2VuQ29tbWFuZCBleHRlbmRzICRDb21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NTU09PSURDU2VydmljZVwiLCBcIkNyZWF0ZVRva2VuXCIsIHt9KVxuICAgIC5uKFwiU1NPT0lEQ0NsaWVudFwiLCBcIkNyZWF0ZVRva2VuQ29tbWFuZFwiKVxuICAgIC5zYyhDcmVhdGVUb2tlbiQpXG4gICAgLmJ1aWxkKCkge1xufVxuIiwgImltcG9ydCB7IGNyZWF0ZUFnZ3JlZ2F0ZWRDbGllbnQgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyBDcmVhdGVUb2tlbkNvbW1hbmQsIH0gZnJvbSBcIi4vY29tbWFuZHMvQ3JlYXRlVG9rZW5Db21tYW5kXCI7XG5pbXBvcnQgeyBTU09PSURDQ2xpZW50IH0gZnJvbSBcIi4vU1NPT0lEQ0NsaWVudFwiO1xuY29uc3QgY29tbWFuZHMgPSB7XG4gICAgQ3JlYXRlVG9rZW5Db21tYW5kLFxufTtcbmV4cG9ydCBjbGFzcyBTU09PSURDIGV4dGVuZHMgU1NPT0lEQ0NsaWVudCB7XG59XG5jcmVhdGVBZ2dyZWdhdGVkQ2xpZW50KGNvbW1hbmRzLCBTU09PSURDKTtcbiIsICJleHBvcnQgKiBmcm9tIFwiLi9DcmVhdGVUb2tlbkNvbW1hbmRcIjtcbiIsICJleHBvcnQgY29uc3QgQWNjZXNzRGVuaWVkRXhjZXB0aW9uUmVhc29uID0ge1xuICAgIEtNU19BQ0NFU1NfREVOSUVEOiBcIktNU19BY2Nlc3NEZW5pZWRFeGNlcHRpb25cIixcbn07XG5leHBvcnQgY29uc3QgSW52YWxpZFJlcXVlc3RFeGNlcHRpb25SZWFzb24gPSB7XG4gICAgS01TX0RJU0FCTEVEX0tFWTogXCJLTVNfRGlzYWJsZWRFeGNlcHRpb25cIixcbiAgICBLTVNfSU5WQUxJRF9LRVlfVVNBR0U6IFwiS01TX0ludmFsaWRLZXlVc2FnZUV4Y2VwdGlvblwiLFxuICAgIEtNU19JTlZBTElEX1NUQVRFOiBcIktNU19JbnZhbGlkU3RhdGVFeGNlcHRpb25cIixcbiAgICBLTVNfS0VZX05PVF9GT1VORDogXCJLTVNfTm90Rm91bmRFeGNlcHRpb25cIixcbn07XG4iLCAiZXhwb3J0IHt9O1xuIiwgImV4cG9ydCAqIGZyb20gXCIuL1NTT09JRENDbGllbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL1NTT09JRENcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbW1hbmRzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zY2hlbWFzL3NjaGVtYXNfMFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWxzL2VudW1zXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9tb2RlbHMvZXJyb3JzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9tb2RlbHMvbW9kZWxzXzBcIjtcbmV4cG9ydCB7IFNTT09JRENTZXJ2aWNlRXhjZXB0aW9uIH0gZnJvbSBcIi4vbW9kZWxzL1NTT09JRENTZXJ2aWNlRXhjZXB0aW9uXCI7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgY2xpZW50ID0gcmVxdWlyZSgnQGF3cy1zZGsvY29yZS9jbGllbnQnKTtcbnZhciBodHRwQXV0aFNjaGVtZXMgPSByZXF1aXJlKCdAYXdzLXNkay9jb3JlL2h0dHBBdXRoU2NoZW1lcycpO1xudmFyIHByb3BlcnR5UHJvdmlkZXIgPSByZXF1aXJlKCdAc21pdGh5L3Byb3BlcnR5LXByb3ZpZGVyJyk7XG52YXIgc2hhcmVkSW5pRmlsZUxvYWRlciA9IHJlcXVpcmUoJ0BzbWl0aHkvc2hhcmVkLWluaS1maWxlLWxvYWRlcicpO1xudmFyIG5vZGVfZnMgPSByZXF1aXJlKCdub2RlOmZzJyk7XG5cbmNvbnN0IGZyb21FbnZTaWduaW5nTmFtZSA9ICh7IGxvZ2dlciwgc2lnbmluZ05hbWUgfSA9IHt9KSA9PiBhc3luYyAoKSA9PiB7XG4gICAgbG9nZ2VyPy5kZWJ1Zz8uKFwiQGF3cy1zZGsvdG9rZW4tcHJvdmlkZXJzIC0gZnJvbUVudlNpZ25pbmdOYW1lXCIpO1xuICAgIGlmICghc2lnbmluZ05hbWUpIHtcbiAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuVG9rZW5Qcm92aWRlckVycm9yKFwiUGxlYXNlIHBhc3MgJ3NpZ25pbmdOYW1lJyB0byBjb21wdXRlIGVudmlyb25tZW50IHZhcmlhYmxlIGtleVwiLCB7IGxvZ2dlciB9KTtcbiAgICB9XG4gICAgY29uc3QgYmVhcmVyVG9rZW5LZXkgPSBodHRwQXV0aFNjaGVtZXMuZ2V0QmVhcmVyVG9rZW5FbnZLZXkoc2lnbmluZ05hbWUpO1xuICAgIGlmICghKGJlYXJlclRva2VuS2V5IGluIHByb2Nlc3MuZW52KSkge1xuICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5Ub2tlblByb3ZpZGVyRXJyb3IoYFRva2VuIG5vdCBwcmVzZW50IGluICcke2JlYXJlclRva2VuS2V5fScgZW52aXJvbm1lbnQgdmFyaWFibGVgLCB7IGxvZ2dlciB9KTtcbiAgICB9XG4gICAgY29uc3QgdG9rZW4gPSB7IHRva2VuOiBwcm9jZXNzLmVudltiZWFyZXJUb2tlbktleV0gfTtcbiAgICBjbGllbnQuc2V0VG9rZW5GZWF0dXJlKHRva2VuLCBcIkJFQVJFUl9TRVJWSUNFX0VOVl9WQVJTXCIsIFwiM1wiKTtcbiAgICByZXR1cm4gdG9rZW47XG59O1xuXG5jb25zdCBFWFBJUkVfV0lORE9XX01TID0gNSAqIDYwICogMTAwMDtcbmNvbnN0IFJFRlJFU0hfTUVTU0FHRSA9IGBUbyByZWZyZXNoIHRoaXMgU1NPIHNlc3Npb24gcnVuICdhd3Mgc3NvIGxvZ2luJyB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIHByb2ZpbGUuYDtcblxuY29uc3QgZ2V0U3NvT2lkY0NsaWVudCA9IGFzeW5jIChzc29SZWdpb24sIGluaXQgPSB7fSwgY2FsbGVyQ2xpZW50Q29uZmlnKSA9PiB7XG4gICAgY29uc3QgeyBTU09PSURDQ2xpZW50IH0gPSBhd2FpdCBpbXBvcnQoJ0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL3Nzby1vaWRjJyk7XG4gICAgY29uc3QgY29hbGVzY2UgPSAocHJvcCkgPT4gaW5pdC5jbGllbnRDb25maWc/Lltwcm9wXSA/PyBpbml0LnBhcmVudENsaWVudENvbmZpZz8uW3Byb3BdID8/IGNhbGxlckNsaWVudENvbmZpZz8uW3Byb3BdO1xuICAgIGNvbnN0IHNzb09pZGNDbGllbnQgPSBuZXcgU1NPT0lEQ0NsaWVudChPYmplY3QuYXNzaWduKHt9LCBpbml0LmNsaWVudENvbmZpZyA/PyB7fSwge1xuICAgICAgICByZWdpb246IHNzb1JlZ2lvbiA/PyBpbml0LmNsaWVudENvbmZpZz8ucmVnaW9uLFxuICAgICAgICBsb2dnZXI6IGNvYWxlc2NlKFwibG9nZ2VyXCIpLFxuICAgICAgICB1c2VyQWdlbnRBcHBJZDogY29hbGVzY2UoXCJ1c2VyQWdlbnRBcHBJZFwiKSxcbiAgICB9KSk7XG4gICAgcmV0dXJuIHNzb09pZGNDbGllbnQ7XG59O1xuXG5jb25zdCBnZXROZXdTc29PaWRjVG9rZW4gPSBhc3luYyAoc3NvVG9rZW4sIHNzb1JlZ2lvbiwgaW5pdCA9IHt9LCBjYWxsZXJDbGllbnRDb25maWcpID0+IHtcbiAgICBjb25zdCB7IENyZWF0ZVRva2VuQ29tbWFuZCB9ID0gYXdhaXQgaW1wb3J0KCdAYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9zc28tb2lkYycpO1xuICAgIGNvbnN0IHNzb09pZGNDbGllbnQgPSBhd2FpdCBnZXRTc29PaWRjQ2xpZW50KHNzb1JlZ2lvbiwgaW5pdCwgY2FsbGVyQ2xpZW50Q29uZmlnKTtcbiAgICByZXR1cm4gc3NvT2lkY0NsaWVudC5zZW5kKG5ldyBDcmVhdGVUb2tlbkNvbW1hbmQoe1xuICAgICAgICBjbGllbnRJZDogc3NvVG9rZW4uY2xpZW50SWQsXG4gICAgICAgIGNsaWVudFNlY3JldDogc3NvVG9rZW4uY2xpZW50U2VjcmV0LFxuICAgICAgICByZWZyZXNoVG9rZW46IHNzb1Rva2VuLnJlZnJlc2hUb2tlbixcbiAgICAgICAgZ3JhbnRUeXBlOiBcInJlZnJlc2hfdG9rZW5cIixcbiAgICB9KSk7XG59O1xuXG5jb25zdCB2YWxpZGF0ZVRva2VuRXhwaXJ5ID0gKHRva2VuKSA9PiB7XG4gICAgaWYgKHRva2VuLmV4cGlyYXRpb24gJiYgdG9rZW4uZXhwaXJhdGlvbi5nZXRUaW1lKCkgPCBEYXRlLm5vdygpKSB7XG4gICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLlRva2VuUHJvdmlkZXJFcnJvcihgVG9rZW4gaXMgZXhwaXJlZC4gJHtSRUZSRVNIX01FU1NBR0V9YCwgZmFsc2UpO1xuICAgIH1cbn07XG5cbmNvbnN0IHZhbGlkYXRlVG9rZW5LZXkgPSAoa2V5LCB2YWx1ZSwgZm9yUmVmcmVzaCA9IGZhbHNlKSA9PiB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5Ub2tlblByb3ZpZGVyRXJyb3IoYFZhbHVlIG5vdCBwcmVzZW50IGZvciAnJHtrZXl9JyBpbiBTU08gVG9rZW4ke2ZvclJlZnJlc2ggPyBcIi4gQ2Fubm90IHJlZnJlc2hcIiA6IFwiXCJ9LiAke1JFRlJFU0hfTUVTU0FHRX1gLCBmYWxzZSk7XG4gICAgfVxufTtcblxuY29uc3QgeyB3cml0ZUZpbGUgfSA9IG5vZGVfZnMucHJvbWlzZXM7XG5jb25zdCB3cml0ZVNTT1Rva2VuVG9GaWxlID0gKGlkLCBzc29Ub2tlbikgPT4ge1xuICAgIGNvbnN0IHRva2VuRmlsZXBhdGggPSBzaGFyZWRJbmlGaWxlTG9hZGVyLmdldFNTT1Rva2VuRmlsZXBhdGgoaWQpO1xuICAgIGNvbnN0IHRva2VuU3RyaW5nID0gSlNPTi5zdHJpbmdpZnkoc3NvVG9rZW4sIG51bGwsIDIpO1xuICAgIHJldHVybiB3cml0ZUZpbGUodG9rZW5GaWxlcGF0aCwgdG9rZW5TdHJpbmcpO1xufTtcblxuY29uc3QgbGFzdFJlZnJlc2hBdHRlbXB0VGltZSA9IG5ldyBEYXRlKDApO1xuY29uc3QgZnJvbVNzbyA9IChpbml0ID0ge30pID0+IGFzeW5jICh7IGNhbGxlckNsaWVudENvbmZpZyB9ID0ge30pID0+IHtcbiAgICBpbml0LmxvZ2dlcj8uZGVidWcoXCJAYXdzLXNkay90b2tlbi1wcm92aWRlcnMgLSBmcm9tU3NvXCIpO1xuICAgIGNvbnN0IHByb2ZpbGVzID0gYXdhaXQgc2hhcmVkSW5pRmlsZUxvYWRlci5wYXJzZUtub3duRmlsZXMoaW5pdCk7XG4gICAgY29uc3QgcHJvZmlsZU5hbWUgPSBzaGFyZWRJbmlGaWxlTG9hZGVyLmdldFByb2ZpbGVOYW1lKHtcbiAgICAgICAgcHJvZmlsZTogaW5pdC5wcm9maWxlID8/IGNhbGxlckNsaWVudENvbmZpZz8ucHJvZmlsZSxcbiAgICB9KTtcbiAgICBjb25zdCBwcm9maWxlID0gcHJvZmlsZXNbcHJvZmlsZU5hbWVdO1xuICAgIGlmICghcHJvZmlsZSkge1xuICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5Ub2tlblByb3ZpZGVyRXJyb3IoYFByb2ZpbGUgJyR7cHJvZmlsZU5hbWV9JyBjb3VsZCBub3QgYmUgZm91bmQgaW4gc2hhcmVkIGNyZWRlbnRpYWxzIGZpbGUuYCwgZmFsc2UpO1xuICAgIH1cbiAgICBlbHNlIGlmICghcHJvZmlsZVtcInNzb19zZXNzaW9uXCJdKSB7XG4gICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLlRva2VuUHJvdmlkZXJFcnJvcihgUHJvZmlsZSAnJHtwcm9maWxlTmFtZX0nIGlzIG1pc3NpbmcgcmVxdWlyZWQgcHJvcGVydHkgJ3Nzb19zZXNzaW9uJy5gKTtcbiAgICB9XG4gICAgY29uc3Qgc3NvU2Vzc2lvbk5hbWUgPSBwcm9maWxlW1wic3NvX3Nlc3Npb25cIl07XG4gICAgY29uc3Qgc3NvU2Vzc2lvbnMgPSBhd2FpdCBzaGFyZWRJbmlGaWxlTG9hZGVyLmxvYWRTc29TZXNzaW9uRGF0YShpbml0KTtcbiAgICBjb25zdCBzc29TZXNzaW9uID0gc3NvU2Vzc2lvbnNbc3NvU2Vzc2lvbk5hbWVdO1xuICAgIGlmICghc3NvU2Vzc2lvbikge1xuICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5Ub2tlblByb3ZpZGVyRXJyb3IoYFNzbyBzZXNzaW9uICcke3Nzb1Nlc3Npb25OYW1lfScgY291bGQgbm90IGJlIGZvdW5kIGluIHNoYXJlZCBjcmVkZW50aWFscyBmaWxlLmAsIGZhbHNlKTtcbiAgICB9XG4gICAgZm9yIChjb25zdCBzc29TZXNzaW9uUmVxdWlyZWRLZXkgb2YgW1wic3NvX3N0YXJ0X3VybFwiLCBcInNzb19yZWdpb25cIl0pIHtcbiAgICAgICAgaWYgKCFzc29TZXNzaW9uW3Nzb1Nlc3Npb25SZXF1aXJlZEtleV0pIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLlRva2VuUHJvdmlkZXJFcnJvcihgU3NvIHNlc3Npb24gJyR7c3NvU2Vzc2lvbk5hbWV9JyBpcyBtaXNzaW5nIHJlcXVpcmVkIHByb3BlcnR5ICcke3Nzb1Nlc3Npb25SZXF1aXJlZEtleX0nLmAsIGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBzc29TZXNzaW9uW1wic3NvX3N0YXJ0X3VybFwiXTtcbiAgICBjb25zdCBzc29SZWdpb24gPSBzc29TZXNzaW9uW1wic3NvX3JlZ2lvblwiXTtcbiAgICBsZXQgc3NvVG9rZW47XG4gICAgdHJ5IHtcbiAgICAgICAgc3NvVG9rZW4gPSBhd2FpdCBzaGFyZWRJbmlGaWxlTG9hZGVyLmdldFNTT1Rva2VuRnJvbUZpbGUoc3NvU2Vzc2lvbk5hbWUpO1xuICAgIH1cbiAgICBjYXRjaCAoZSkge1xuICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5Ub2tlblByb3ZpZGVyRXJyb3IoYFRoZSBTU08gc2Vzc2lvbiB0b2tlbiBhc3NvY2lhdGVkIHdpdGggcHJvZmlsZT0ke3Byb2ZpbGVOYW1lfSB3YXMgbm90IGZvdW5kIG9yIGlzIGludmFsaWQuICR7UkVGUkVTSF9NRVNTQUdFfWAsIGZhbHNlKTtcbiAgICB9XG4gICAgdmFsaWRhdGVUb2tlbktleShcImFjY2Vzc1Rva2VuXCIsIHNzb1Rva2VuLmFjY2Vzc1Rva2VuKTtcbiAgICB2YWxpZGF0ZVRva2VuS2V5KFwiZXhwaXJlc0F0XCIsIHNzb1Rva2VuLmV4cGlyZXNBdCk7XG4gICAgY29uc3QgeyBhY2Nlc3NUb2tlbiwgZXhwaXJlc0F0IH0gPSBzc29Ub2tlbjtcbiAgICBjb25zdCBleGlzdGluZ1Rva2VuID0geyB0b2tlbjogYWNjZXNzVG9rZW4sIGV4cGlyYXRpb246IG5ldyBEYXRlKGV4cGlyZXNBdCkgfTtcbiAgICBpZiAoZXhpc3RpbmdUb2tlbi5leHBpcmF0aW9uLmdldFRpbWUoKSAtIERhdGUubm93KCkgPiBFWFBJUkVfV0lORE9XX01TKSB7XG4gICAgICAgIHJldHVybiBleGlzdGluZ1Rva2VuO1xuICAgIH1cbiAgICBpZiAoRGF0ZS5ub3coKSAtIGxhc3RSZWZyZXNoQXR0ZW1wdFRpbWUuZ2V0VGltZSgpIDwgMzAgKiAxMDAwKSB7XG4gICAgICAgIHZhbGlkYXRlVG9rZW5FeHBpcnkoZXhpc3RpbmdUb2tlbik7XG4gICAgICAgIHJldHVybiBleGlzdGluZ1Rva2VuO1xuICAgIH1cbiAgICB2YWxpZGF0ZVRva2VuS2V5KFwiY2xpZW50SWRcIiwgc3NvVG9rZW4uY2xpZW50SWQsIHRydWUpO1xuICAgIHZhbGlkYXRlVG9rZW5LZXkoXCJjbGllbnRTZWNyZXRcIiwgc3NvVG9rZW4uY2xpZW50U2VjcmV0LCB0cnVlKTtcbiAgICB2YWxpZGF0ZVRva2VuS2V5KFwicmVmcmVzaFRva2VuXCIsIHNzb1Rva2VuLnJlZnJlc2hUb2tlbiwgdHJ1ZSk7XG4gICAgdHJ5IHtcbiAgICAgICAgbGFzdFJlZnJlc2hBdHRlbXB0VGltZS5zZXRUaW1lKERhdGUubm93KCkpO1xuICAgICAgICBjb25zdCBuZXdTc29PaWRjVG9rZW4gPSBhd2FpdCBnZXROZXdTc29PaWRjVG9rZW4oc3NvVG9rZW4sIHNzb1JlZ2lvbiwgaW5pdCwgY2FsbGVyQ2xpZW50Q29uZmlnKTtcbiAgICAgICAgdmFsaWRhdGVUb2tlbktleShcImFjY2Vzc1Rva2VuXCIsIG5ld1Nzb09pZGNUb2tlbi5hY2Nlc3NUb2tlbik7XG4gICAgICAgIHZhbGlkYXRlVG9rZW5LZXkoXCJleHBpcmVzSW5cIiwgbmV3U3NvT2lkY1Rva2VuLmV4cGlyZXNJbik7XG4gICAgICAgIGNvbnN0IG5ld1Rva2VuRXhwaXJhdGlvbiA9IG5ldyBEYXRlKERhdGUubm93KCkgKyBuZXdTc29PaWRjVG9rZW4uZXhwaXJlc0luICogMTAwMCk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhd2FpdCB3cml0ZVNTT1Rva2VuVG9GaWxlKHNzb1Nlc3Npb25OYW1lLCB7XG4gICAgICAgICAgICAgICAgLi4uc3NvVG9rZW4sXG4gICAgICAgICAgICAgICAgYWNjZXNzVG9rZW46IG5ld1Nzb09pZGNUb2tlbi5hY2Nlc3NUb2tlbixcbiAgICAgICAgICAgICAgICBleHBpcmVzQXQ6IG5ld1Rva2VuRXhwaXJhdGlvbi50b0lTT1N0cmluZygpLFxuICAgICAgICAgICAgICAgIHJlZnJlc2hUb2tlbjogbmV3U3NvT2lkY1Rva2VuLnJlZnJlc2hUb2tlbixcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0b2tlbjogbmV3U3NvT2lkY1Rva2VuLmFjY2Vzc1Rva2VuLFxuICAgICAgICAgICAgZXhwaXJhdGlvbjogbmV3VG9rZW5FeHBpcmF0aW9uLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgdmFsaWRhdGVUb2tlbkV4cGlyeShleGlzdGluZ1Rva2VuKTtcbiAgICAgICAgcmV0dXJuIGV4aXN0aW5nVG9rZW47XG4gICAgfVxufTtcblxuY29uc3QgZnJvbVN0YXRpYyA9ICh7IHRva2VuLCBsb2dnZXIgfSkgPT4gYXN5bmMgKCkgPT4ge1xuICAgIGxvZ2dlcj8uZGVidWcoXCJAYXdzLXNkay90b2tlbi1wcm92aWRlcnMgLSBmcm9tU3RhdGljXCIpO1xuICAgIGlmICghdG9rZW4gfHwgIXRva2VuLnRva2VuKSB7XG4gICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLlRva2VuUHJvdmlkZXJFcnJvcihgUGxlYXNlIHBhc3MgYSB2YWxpZCB0b2tlbiB0byBmcm9tU3RhdGljYCwgZmFsc2UpO1xuICAgIH1cbiAgICByZXR1cm4gdG9rZW47XG59O1xuXG5jb25zdCBub2RlUHJvdmlkZXIgPSAoaW5pdCA9IHt9KSA9PiBwcm9wZXJ0eVByb3ZpZGVyLm1lbW9pemUocHJvcGVydHlQcm92aWRlci5jaGFpbihmcm9tU3NvKGluaXQpLCBhc3luYyAoKSA9PiB7XG4gICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuVG9rZW5Qcm92aWRlckVycm9yKFwiQ291bGQgbm90IGxvYWQgdG9rZW4gZnJvbSBhbnkgcHJvdmlkZXJzXCIsIGZhbHNlKTtcbn0pLCAodG9rZW4pID0+IHRva2VuLmV4cGlyYXRpb24gIT09IHVuZGVmaW5lZCAmJiB0b2tlbi5leHBpcmF0aW9uLmdldFRpbWUoKSAtIERhdGUubm93KCkgPCAzMDAwMDAsICh0b2tlbikgPT4gdG9rZW4uZXhwaXJhdGlvbiAhPT0gdW5kZWZpbmVkKTtcblxuZXhwb3J0cy5mcm9tRW52U2lnbmluZ05hbWUgPSBmcm9tRW52U2lnbmluZ05hbWU7XG5leHBvcnRzLmZyb21Tc28gPSBmcm9tU3NvO1xuZXhwb3J0cy5mcm9tU3RhdGljID0gZnJvbVN0YXRpYztcbmV4cG9ydHMubm9kZVByb3ZpZGVyID0gbm9kZVByb3ZpZGVyO1xuIiwgImltcG9ydCB7IHJlc29sdmVBd3NTZGtTaWdWNENvbmZpZyB9IGZyb20gXCJAYXdzLXNkay9jb3JlL2h0dHBBdXRoU2NoZW1lc1wiO1xuaW1wb3J0IHsgZ2V0U21pdGh5Q29udGV4dCwgbm9ybWFsaXplUHJvdmlkZXIgfSBmcm9tIFwiQHNtaXRoeS91dGlsLW1pZGRsZXdhcmVcIjtcbmV4cG9ydCBjb25zdCBkZWZhdWx0U1NPSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIgPSBhc3luYyAoY29uZmlnLCBjb250ZXh0LCBpbnB1dCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIG9wZXJhdGlvbjogZ2V0U21pdGh5Q29udGV4dChjb250ZXh0KS5vcGVyYXRpb24sXG4gICAgICAgIHJlZ2lvbjogKGF3YWl0IG5vcm1hbGl6ZVByb3ZpZGVyKGNvbmZpZy5yZWdpb24pKCkpIHx8XG4gICAgICAgICAgICAoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcImV4cGVjdGVkIGByZWdpb25gIHRvIGJlIGNvbmZpZ3VyZWQgZm9yIGBhd3MuYXV0aCNzaWd2NGBcIik7XG4gICAgICAgICAgICB9KSgpLFxuICAgIH07XG59O1xuZnVuY3Rpb24gY3JlYXRlQXdzQXV0aFNpZ3Y0SHR0cEF1dGhPcHRpb24oYXV0aFBhcmFtZXRlcnMpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBzY2hlbWVJZDogXCJhd3MuYXV0aCNzaWd2NFwiLFxuICAgICAgICBzaWduaW5nUHJvcGVydGllczoge1xuICAgICAgICAgICAgbmFtZTogXCJhd3Nzc29wb3J0YWxcIixcbiAgICAgICAgICAgIHJlZ2lvbjogYXV0aFBhcmFtZXRlcnMucmVnaW9uLFxuICAgICAgICB9LFxuICAgICAgICBwcm9wZXJ0aWVzRXh0cmFjdG9yOiAoY29uZmlnLCBjb250ZXh0KSA9PiAoe1xuICAgICAgICAgICAgc2lnbmluZ1Byb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICBjb25maWcsXG4gICAgICAgICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pLFxuICAgIH07XG59XG5mdW5jdGlvbiBjcmVhdGVTbWl0aHlBcGlOb0F1dGhIdHRwQXV0aE9wdGlvbihhdXRoUGFyYW1ldGVycykge1xuICAgIHJldHVybiB7XG4gICAgICAgIHNjaGVtZUlkOiBcInNtaXRoeS5hcGkjbm9BdXRoXCIsXG4gICAgfTtcbn1cbmV4cG9ydCBjb25zdCBkZWZhdWx0U1NPSHR0cEF1dGhTY2hlbWVQcm92aWRlciA9IChhdXRoUGFyYW1ldGVycykgPT4ge1xuICAgIGNvbnN0IG9wdGlvbnMgPSBbXTtcbiAgICBzd2l0Y2ggKGF1dGhQYXJhbWV0ZXJzLm9wZXJhdGlvbikge1xuICAgICAgICBjYXNlIFwiR2V0Um9sZUNyZWRlbnRpYWxzXCI6IHtcbiAgICAgICAgICAgIG9wdGlvbnMucHVzaChjcmVhdGVTbWl0aHlBcGlOb0F1dGhIdHRwQXV0aE9wdGlvbihhdXRoUGFyYW1ldGVycykpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgb3B0aW9ucy5wdXNoKGNyZWF0ZUF3c0F1dGhTaWd2NEh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG9wdGlvbnM7XG59O1xuZXhwb3J0IGNvbnN0IHJlc29sdmVIdHRwQXV0aFNjaGVtZUNvbmZpZyA9IChjb25maWcpID0+IHtcbiAgICBjb25zdCBjb25maWdfMCA9IHJlc29sdmVBd3NTZGtTaWdWNENvbmZpZyhjb25maWcpO1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKGNvbmZpZ18wLCB7XG4gICAgICAgIGF1dGhTY2hlbWVQcmVmZXJlbmNlOiBub3JtYWxpemVQcm92aWRlcihjb25maWcuYXV0aFNjaGVtZVByZWZlcmVuY2UgPz8gW10pLFxuICAgIH0pO1xufTtcbiIsICJleHBvcnQgY29uc3QgcmVzb2x2ZUNsaWVudEVuZHBvaW50UGFyYW1ldGVycyA9IChvcHRpb25zKSA9PiB7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24ob3B0aW9ucywge1xuICAgICAgICB1c2VEdWFsc3RhY2tFbmRwb2ludDogb3B0aW9ucy51c2VEdWFsc3RhY2tFbmRwb2ludCA/PyBmYWxzZSxcbiAgICAgICAgdXNlRmlwc0VuZHBvaW50OiBvcHRpb25zLnVzZUZpcHNFbmRwb2ludCA/PyBmYWxzZSxcbiAgICAgICAgZGVmYXVsdFNpZ25pbmdOYW1lOiBcImF3c3Nzb3BvcnRhbFwiLFxuICAgIH0pO1xufTtcbmV4cG9ydCBjb25zdCBjb21tb25QYXJhbXMgPSB7XG4gICAgVXNlRklQUzogeyB0eXBlOiBcImJ1aWx0SW5QYXJhbXNcIiwgbmFtZTogXCJ1c2VGaXBzRW5kcG9pbnRcIiB9LFxuICAgIEVuZHBvaW50OiB7IHR5cGU6IFwiYnVpbHRJblBhcmFtc1wiLCBuYW1lOiBcImVuZHBvaW50XCIgfSxcbiAgICBSZWdpb246IHsgdHlwZTogXCJidWlsdEluUGFyYW1zXCIsIG5hbWU6IFwicmVnaW9uXCIgfSxcbiAgICBVc2VEdWFsU3RhY2s6IHsgdHlwZTogXCJidWlsdEluUGFyYW1zXCIsIG5hbWU6IFwidXNlRHVhbHN0YWNrRW5kcG9pbnRcIiB9LFxufTtcbiIsICJpbXBvcnQgeyBCaW5hcnlEZWNpc2lvbkRpYWdyYW0gfSBmcm9tIFwiQHNtaXRoeS91dGlsLWVuZHBvaW50c1wiO1xuY29uc3QgayA9IFwicmVmXCI7XG5jb25zdCBhID0gLTEsIGIgPSB0cnVlLCBjID0gXCJpc1NldFwiLCBkID0gXCJQYXJ0aXRpb25SZXN1bHRcIiwgZSA9IFwiYm9vbGVhbkVxdWFsc1wiLCBmID0gXCJnZXRBdHRyXCIsIGcgPSB7IFtrXTogXCJFbmRwb2ludFwiIH0sIGggPSB7IFtrXTogZCB9LCBpID0ge30sIGogPSBbeyBba106IFwiUmVnaW9uXCIgfV07XG5jb25zdCBfZGF0YSA9IHtcbiAgICBjb25kaXRpb25zOiBbXG4gICAgICAgIFtjLCBbZ11dLFxuICAgICAgICBbYywgal0sXG4gICAgICAgIFtcImF3cy5wYXJ0aXRpb25cIiwgaiwgZF0sXG4gICAgICAgIFtlLCBbeyBba106IFwiVXNlRklQU1wiIH0sIGJdXSxcbiAgICAgICAgW2UsIFt7IFtrXTogXCJVc2VEdWFsU3RhY2tcIiB9LCBiXV0sXG4gICAgICAgIFtlLCBbeyBmbjogZiwgYXJndjogW2gsIFwic3VwcG9ydHNEdWFsU3RhY2tcIl0gfSwgYl1dLFxuICAgICAgICBbZSwgW3sgZm46IGYsIGFyZ3Y6IFtoLCBcInN1cHBvcnRzRklQU1wiXSB9LCBiXV0sXG4gICAgICAgIFtcInN0cmluZ0VxdWFsc1wiLCBbeyBmbjogZiwgYXJndjogW2gsIFwibmFtZVwiXSB9LCBcImF3cy11cy1nb3ZcIl1dLFxuICAgIF0sXG4gICAgcmVzdWx0czogW1xuICAgICAgICBbYV0sXG4gICAgICAgIFthLCBcIkludmFsaWQgQ29uZmlndXJhdGlvbjogRklQUyBhbmQgY3VzdG9tIGVuZHBvaW50IGFyZSBub3Qgc3VwcG9ydGVkXCJdLFxuICAgICAgICBbYSwgXCJJbnZhbGlkIENvbmZpZ3VyYXRpb246IER1YWxzdGFjayBhbmQgY3VzdG9tIGVuZHBvaW50IGFyZSBub3Qgc3VwcG9ydGVkXCJdLFxuICAgICAgICBbZywgaV0sXG4gICAgICAgIFtcImh0dHBzOi8vcG9ydGFsLnNzby1maXBzLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZHVhbFN0YWNrRG5zU3VmZml4fVwiLCBpXSxcbiAgICAgICAgW2EsIFwiRklQUyBhbmQgRHVhbFN0YWNrIGFyZSBlbmFibGVkLCBidXQgdGhpcyBwYXJ0aXRpb24gZG9lcyBub3Qgc3VwcG9ydCBvbmUgb3IgYm90aFwiXSxcbiAgICAgICAgW1wiaHR0cHM6Ly9wb3J0YWwuc3NvLntSZWdpb259LmFtYXpvbmF3cy5jb21cIiwgaV0sXG4gICAgICAgIFtcImh0dHBzOi8vcG9ydGFsLnNzby1maXBzLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZG5zU3VmZml4fVwiLCBpXSxcbiAgICAgICAgW2EsIFwiRklQUyBpcyBlbmFibGVkIGJ1dCB0aGlzIHBhcnRpdGlvbiBkb2VzIG5vdCBzdXBwb3J0IEZJUFNcIl0sXG4gICAgICAgIFtcImh0dHBzOi8vcG9ydGFsLnNzby57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2R1YWxTdGFja0Ruc1N1ZmZpeH1cIiwgaV0sXG4gICAgICAgIFthLCBcIkR1YWxTdGFjayBpcyBlbmFibGVkIGJ1dCB0aGlzIHBhcnRpdGlvbiBkb2VzIG5vdCBzdXBwb3J0IER1YWxTdGFja1wiXSxcbiAgICAgICAgW1wiaHR0cHM6Ly9wb3J0YWwuc3NvLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZG5zU3VmZml4fVwiLCBpXSxcbiAgICAgICAgW2EsIFwiSW52YWxpZCBDb25maWd1cmF0aW9uOiBNaXNzaW5nIFJlZ2lvblwiXSxcbiAgICBdLFxufTtcbmNvbnN0IHJvb3QgPSAyO1xuY29uc3QgciA9IDEwMF8wMDBfMDAwO1xuY29uc3Qgbm9kZXMgPSBuZXcgSW50MzJBcnJheShbXG4gICAgLTEsXG4gICAgMSxcbiAgICAtMSxcbiAgICAwLFxuICAgIDEzLFxuICAgIDMsXG4gICAgMSxcbiAgICA0LFxuICAgIHIgKyAxMixcbiAgICAyLFxuICAgIDUsXG4gICAgciArIDEyLFxuICAgIDMsXG4gICAgOCxcbiAgICA2LFxuICAgIDQsXG4gICAgNyxcbiAgICByICsgMTEsXG4gICAgNSxcbiAgICByICsgOSxcbiAgICByICsgMTAsXG4gICAgNCxcbiAgICAxMSxcbiAgICA5LFxuICAgIDYsXG4gICAgMTAsXG4gICAgciArIDgsXG4gICAgNyxcbiAgICByICsgNixcbiAgICByICsgNyxcbiAgICA1LFxuICAgIDEyLFxuICAgIHIgKyA1LFxuICAgIDYsXG4gICAgciArIDQsXG4gICAgciArIDUsXG4gICAgMyxcbiAgICByICsgMSxcbiAgICAxNCxcbiAgICA0LFxuICAgIHIgKyAyLFxuICAgIHIgKyAzLFxuXSk7XG5leHBvcnQgY29uc3QgYmRkID0gQmluYXJ5RGVjaXNpb25EaWFncmFtLmZyb20obm9kZXMsIHJvb3QsIF9kYXRhLmNvbmRpdGlvbnMsIF9kYXRhLnJlc3VsdHMpO1xuIiwgImltcG9ydCB7IGF3c0VuZHBvaW50RnVuY3Rpb25zIH0gZnJvbSBcIkBhd3Mtc2RrL3V0aWwtZW5kcG9pbnRzXCI7XG5pbXBvcnQgeyBjdXN0b21FbmRwb2ludEZ1bmN0aW9ucywgZGVjaWRlRW5kcG9pbnQsIEVuZHBvaW50Q2FjaGUgfSBmcm9tIFwiQHNtaXRoeS91dGlsLWVuZHBvaW50c1wiO1xuaW1wb3J0IHsgYmRkIH0gZnJvbSBcIi4vYmRkXCI7XG5jb25zdCBjYWNoZSA9IG5ldyBFbmRwb2ludENhY2hlKHtcbiAgICBzaXplOiA1MCxcbiAgICBwYXJhbXM6IFtcIkVuZHBvaW50XCIsIFwiUmVnaW9uXCIsIFwiVXNlRHVhbFN0YWNrXCIsIFwiVXNlRklQU1wiXSxcbn0pO1xuZXhwb3J0IGNvbnN0IGRlZmF1bHRFbmRwb2ludFJlc29sdmVyID0gKGVuZHBvaW50UGFyYW1zLCBjb250ZXh0ID0ge30pID0+IHtcbiAgICByZXR1cm4gY2FjaGUuZ2V0KGVuZHBvaW50UGFyYW1zLCAoKSA9PiBkZWNpZGVFbmRwb2ludChiZGQsIHtcbiAgICAgICAgZW5kcG9pbnRQYXJhbXM6IGVuZHBvaW50UGFyYW1zLFxuICAgICAgICBsb2dnZXI6IGNvbnRleHQubG9nZ2VyLFxuICAgIH0pKTtcbn07XG5jdXN0b21FbmRwb2ludEZ1bmN0aW9ucy5hd3MgPSBhd3NFbmRwb2ludEZ1bmN0aW9ucztcbiIsICJpbXBvcnQgeyBTZXJ2aWNlRXhjZXB0aW9uIGFzIF9fU2VydmljZUV4Y2VwdGlvbiwgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5leHBvcnQgeyBfX1NlcnZpY2VFeGNlcHRpb24gfTtcbmV4cG9ydCBjbGFzcyBTU09TZXJ2aWNlRXhjZXB0aW9uIGV4dGVuZHMgX19TZXJ2aWNlRXhjZXB0aW9uIHtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgU1NPU2VydmljZUV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBTU09TZXJ2aWNlRXhjZXB0aW9uIGFzIF9fQmFzZUV4Y2VwdGlvbiB9IGZyb20gXCIuL1NTT1NlcnZpY2VFeGNlcHRpb25cIjtcbmV4cG9ydCBjbGFzcyBJbnZhbGlkUmVxdWVzdEV4Y2VwdGlvbiBleHRlbmRzIF9fQmFzZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiSW52YWxpZFJlcXVlc3RFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJJbnZhbGlkUmVxdWVzdEV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBJbnZhbGlkUmVxdWVzdEV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uIGV4dGVuZHMgX19CYXNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIFRvb01hbnlSZXF1ZXN0c0V4Y2VwdGlvbiBleHRlbmRzIF9fQmFzZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiVG9vTWFueVJlcXVlc3RzRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiVG9vTWFueVJlcXVlc3RzRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFRvb01hbnlSZXF1ZXN0c0V4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBVbmF1dGhvcml6ZWRFeGNlcHRpb24gZXh0ZW5kcyBfX0Jhc2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIlVuYXV0aG9yaXplZEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIlVuYXV0aG9yaXplZEV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBVbmF1dGhvcml6ZWRFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59XG4iLCAiY29uc3QgX0FUVCA9IFwiQWNjZXNzVG9rZW5UeXBlXCI7XG5jb25zdCBfR1JDID0gXCJHZXRSb2xlQ3JlZGVudGlhbHNcIjtcbmNvbnN0IF9HUkNSID0gXCJHZXRSb2xlQ3JlZGVudGlhbHNSZXF1ZXN0XCI7XG5jb25zdCBfR1JDUmUgPSBcIkdldFJvbGVDcmVkZW50aWFsc1Jlc3BvbnNlXCI7XG5jb25zdCBfSVJFID0gXCJJbnZhbGlkUmVxdWVzdEV4Y2VwdGlvblwiO1xuY29uc3QgX1JDID0gXCJSb2xlQ3JlZGVudGlhbHNcIjtcbmNvbnN0IF9STkZFID0gXCJSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uXCI7XG5jb25zdCBfU0FLVCA9IFwiU2VjcmV0QWNjZXNzS2V5VHlwZVwiO1xuY29uc3QgX1NUVCA9IFwiU2Vzc2lvblRva2VuVHlwZVwiO1xuY29uc3QgX1RNUkUgPSBcIlRvb01hbnlSZXF1ZXN0c0V4Y2VwdGlvblwiO1xuY29uc3QgX1VFID0gXCJVbmF1dGhvcml6ZWRFeGNlcHRpb25cIjtcbmNvbnN0IF9hSSA9IFwiYWNjb3VudElkXCI7XG5jb25zdCBfYUtJID0gXCJhY2Nlc3NLZXlJZFwiO1xuY29uc3QgX2FUID0gXCJhY2Nlc3NUb2tlblwiO1xuY29uc3QgX2FpID0gXCJhY2NvdW50X2lkXCI7XG5jb25zdCBfYyA9IFwiY2xpZW50XCI7XG5jb25zdCBfZSA9IFwiZXJyb3JcIjtcbmNvbnN0IF9leCA9IFwiZXhwaXJhdGlvblwiO1xuY29uc3QgX2ggPSBcImh0dHBcIjtcbmNvbnN0IF9oRSA9IFwiaHR0cEVycm9yXCI7XG5jb25zdCBfaEggPSBcImh0dHBIZWFkZXJcIjtcbmNvbnN0IF9oUSA9IFwiaHR0cFF1ZXJ5XCI7XG5jb25zdCBfbSA9IFwibWVzc2FnZVwiO1xuY29uc3QgX3JDID0gXCJyb2xlQ3JlZGVudGlhbHNcIjtcbmNvbnN0IF9yTiA9IFwicm9sZU5hbWVcIjtcbmNvbnN0IF9ybiA9IFwicm9sZV9uYW1lXCI7XG5jb25zdCBfcyA9IFwic21pdGh5LnRzLnNkay5zeW50aGV0aWMuY29tLmFtYXpvbmF3cy5zc29cIjtcbmNvbnN0IF9zQUsgPSBcInNlY3JldEFjY2Vzc0tleVwiO1xuY29uc3QgX3NUID0gXCJzZXNzaW9uVG9rZW5cIjtcbmNvbnN0IF94YXNidCA9IFwieC1hbXotc3NvX2JlYXJlcl90b2tlblwiO1xuY29uc3QgbjAgPSBcImNvbS5hbWF6b25hd3Muc3NvXCI7XG5pbXBvcnQgeyBUeXBlUmVnaXN0cnkgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3NjaGVtYVwiO1xuaW1wb3J0IHsgSW52YWxpZFJlcXVlc3RFeGNlcHRpb24sIFJlc291cmNlTm90Rm91bmRFeGNlcHRpb24sIFRvb01hbnlSZXF1ZXN0c0V4Y2VwdGlvbiwgVW5hdXRob3JpemVkRXhjZXB0aW9uLCB9IGZyb20gXCIuLi9tb2RlbHMvZXJyb3JzXCI7XG5pbXBvcnQgeyBTU09TZXJ2aWNlRXhjZXB0aW9uIH0gZnJvbSBcIi4uL21vZGVscy9TU09TZXJ2aWNlRXhjZXB0aW9uXCI7XG5jb25zdCBfc19yZWdpc3RyeSA9IFR5cGVSZWdpc3RyeS5mb3IoX3MpO1xuZXhwb3J0IHZhciBTU09TZXJ2aWNlRXhjZXB0aW9uJCA9IFstMywgX3MsIFwiU1NPU2VydmljZUV4Y2VwdGlvblwiLCAwLCBbXSwgW11dO1xuX3NfcmVnaXN0cnkucmVnaXN0ZXJFcnJvcihTU09TZXJ2aWNlRXhjZXB0aW9uJCwgU1NPU2VydmljZUV4Y2VwdGlvbik7XG5jb25zdCBuMF9yZWdpc3RyeSA9IFR5cGVSZWdpc3RyeS5mb3IobjApO1xuZXhwb3J0IHZhciBJbnZhbGlkUmVxdWVzdEV4Y2VwdGlvbiQgPSBbLTMsIG4wLCBfSVJFLCB7IFtfZV06IF9jLCBbX2hFXTogNDAwIH0sIFtfbV0sIFswXV07XG5uMF9yZWdpc3RyeS5yZWdpc3RlckVycm9yKEludmFsaWRSZXF1ZXN0RXhjZXB0aW9uJCwgSW52YWxpZFJlcXVlc3RFeGNlcHRpb24pO1xuZXhwb3J0IHZhciBSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uJCA9IFstMywgbjAsIF9STkZFLCB7IFtfZV06IF9jLCBbX2hFXTogNDA0IH0sIFtfbV0sIFswXV07XG5uMF9yZWdpc3RyeS5yZWdpc3RlckVycm9yKFJlc291cmNlTm90Rm91bmRFeGNlcHRpb24kLCBSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uKTtcbmV4cG9ydCB2YXIgVG9vTWFueVJlcXVlc3RzRXhjZXB0aW9uJCA9IFstMywgbjAsIF9UTVJFLCB7IFtfZV06IF9jLCBbX2hFXTogNDI5IH0sIFtfbV0sIFswXV07XG5uMF9yZWdpc3RyeS5yZWdpc3RlckVycm9yKFRvb01hbnlSZXF1ZXN0c0V4Y2VwdGlvbiQsIFRvb01hbnlSZXF1ZXN0c0V4Y2VwdGlvbik7XG5leHBvcnQgdmFyIFVuYXV0aG9yaXplZEV4Y2VwdGlvbiQgPSBbLTMsIG4wLCBfVUUsIHsgW19lXTogX2MsIFtfaEVdOiA0MDEgfSwgW19tXSwgWzBdXTtcbm4wX3JlZ2lzdHJ5LnJlZ2lzdGVyRXJyb3IoVW5hdXRob3JpemVkRXhjZXB0aW9uJCwgVW5hdXRob3JpemVkRXhjZXB0aW9uKTtcbmV4cG9ydCBjb25zdCBlcnJvclR5cGVSZWdpc3RyaWVzID0gW19zX3JlZ2lzdHJ5LCBuMF9yZWdpc3RyeV07XG52YXIgQWNjZXNzVG9rZW5UeXBlID0gWzAsIG4wLCBfQVRULCA4LCAwXTtcbnZhciBTZWNyZXRBY2Nlc3NLZXlUeXBlID0gWzAsIG4wLCBfU0FLVCwgOCwgMF07XG52YXIgU2Vzc2lvblRva2VuVHlwZSA9IFswLCBuMCwgX1NUVCwgOCwgMF07XG5leHBvcnQgdmFyIEdldFJvbGVDcmVkZW50aWFsc1JlcXVlc3QkID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dSQ1IsXG4gICAgMCxcbiAgICBbX3JOLCBfYUksIF9hVF0sXG4gICAgW1xuICAgICAgICBbMCwgeyBbX2hRXTogX3JuIH1dLFxuICAgICAgICBbMCwgeyBbX2hRXTogX2FpIH1dLFxuICAgICAgICBbKCkgPT4gQWNjZXNzVG9rZW5UeXBlLCB7IFtfaEhdOiBfeGFzYnQgfV0sXG4gICAgXSxcbiAgICAzLFxuXTtcbmV4cG9ydCB2YXIgR2V0Um9sZUNyZWRlbnRpYWxzUmVzcG9uc2UkID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dSQ1JlLFxuICAgIDAsXG4gICAgW19yQ10sXG4gICAgW1soKSA9PiBSb2xlQ3JlZGVudGlhbHMkLCAwXV0sXG5dO1xuZXhwb3J0IHZhciBSb2xlQ3JlZGVudGlhbHMkID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1JDLFxuICAgIDAsXG4gICAgW19hS0ksIF9zQUssIF9zVCwgX2V4XSxcbiAgICBbMCwgWygpID0+IFNlY3JldEFjY2Vzc0tleVR5cGUsIDBdLCBbKCkgPT4gU2Vzc2lvblRva2VuVHlwZSwgMF0sIDFdLFxuXTtcbmV4cG9ydCB2YXIgR2V0Um9sZUNyZWRlbnRpYWxzJCA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9HUkMsXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIvZmVkZXJhdGlvbi9jcmVkZW50aWFsc1wiLCAyMDBdIH0sXG4gICAgKCkgPT4gR2V0Um9sZUNyZWRlbnRpYWxzUmVxdWVzdCQsXG4gICAgKCkgPT4gR2V0Um9sZUNyZWRlbnRpYWxzUmVzcG9uc2UkLFxuXTtcbiIsICJpbXBvcnQgeyBBd3NTZGtTaWdWNFNpZ25lciB9IGZyb20gXCJAYXdzLXNkay9jb3JlL2h0dHBBdXRoU2NoZW1lc1wiO1xuaW1wb3J0IHsgQXdzUmVzdEpzb25Qcm90b2NvbCB9IGZyb20gXCJAYXdzLXNkay9jb3JlL3Byb3RvY29sc1wiO1xuaW1wb3J0IHsgTm9BdXRoU2lnbmVyIH0gZnJvbSBcIkBzbWl0aHkvY29yZVwiO1xuaW1wb3J0IHsgTm9PcExvZ2dlciB9IGZyb20gXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjtcbmltcG9ydCB7IHBhcnNlVXJsIH0gZnJvbSBcIkBzbWl0aHkvdXJsLXBhcnNlclwiO1xuaW1wb3J0IHsgZnJvbUJhc2U2NCwgdG9CYXNlNjQgfSBmcm9tIFwiQHNtaXRoeS91dGlsLWJhc2U2NFwiO1xuaW1wb3J0IHsgZnJvbVV0ZjgsIHRvVXRmOCB9IGZyb20gXCJAc21pdGh5L3V0aWwtdXRmOFwiO1xuaW1wb3J0IHsgZGVmYXVsdFNTT0h0dHBBdXRoU2NoZW1lUHJvdmlkZXIgfSBmcm9tIFwiLi9hdXRoL2h0dHBBdXRoU2NoZW1lUHJvdmlkZXJcIjtcbmltcG9ydCB7IGRlZmF1bHRFbmRwb2ludFJlc29sdmVyIH0gZnJvbSBcIi4vZW5kcG9pbnQvZW5kcG9pbnRSZXNvbHZlclwiO1xuaW1wb3J0IHsgZXJyb3JUeXBlUmVnaXN0cmllcyB9IGZyb20gXCIuL3NjaGVtYXMvc2NoZW1hc18wXCI7XG5leHBvcnQgY29uc3QgZ2V0UnVudGltZUNvbmZpZyA9IChjb25maWcpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgICBhcGlWZXJzaW9uOiBcIjIwMTktMDYtMTBcIixcbiAgICAgICAgYmFzZTY0RGVjb2RlcjogY29uZmlnPy5iYXNlNjREZWNvZGVyID8/IGZyb21CYXNlNjQsXG4gICAgICAgIGJhc2U2NEVuY29kZXI6IGNvbmZpZz8uYmFzZTY0RW5jb2RlciA/PyB0b0Jhc2U2NCxcbiAgICAgICAgZGlzYWJsZUhvc3RQcmVmaXg6IGNvbmZpZz8uZGlzYWJsZUhvc3RQcmVmaXggPz8gZmFsc2UsXG4gICAgICAgIGVuZHBvaW50UHJvdmlkZXI6IGNvbmZpZz8uZW5kcG9pbnRQcm92aWRlciA/PyBkZWZhdWx0RW5kcG9pbnRSZXNvbHZlcixcbiAgICAgICAgZXh0ZW5zaW9uczogY29uZmlnPy5leHRlbnNpb25zID8/IFtdLFxuICAgICAgICBodHRwQXV0aFNjaGVtZVByb3ZpZGVyOiBjb25maWc/Lmh0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPz8gZGVmYXVsdFNTT0h0dHBBdXRoU2NoZW1lUHJvdmlkZXIsXG4gICAgICAgIGh0dHBBdXRoU2NoZW1lczogY29uZmlnPy5odHRwQXV0aFNjaGVtZXMgPz8gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHNjaGVtZUlkOiBcImF3cy5hdXRoI3NpZ3Y0XCIsXG4gICAgICAgICAgICAgICAgaWRlbnRpdHlQcm92aWRlcjogKGlwYykgPT4gaXBjLmdldElkZW50aXR5UHJvdmlkZXIoXCJhd3MuYXV0aCNzaWd2NFwiKSxcbiAgICAgICAgICAgICAgICBzaWduZXI6IG5ldyBBd3NTZGtTaWdWNFNpZ25lcigpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzY2hlbWVJZDogXCJzbWl0aHkuYXBpI25vQXV0aFwiLFxuICAgICAgICAgICAgICAgIGlkZW50aXR5UHJvdmlkZXI6IChpcGMpID0+IGlwYy5nZXRJZGVudGl0eVByb3ZpZGVyKFwic21pdGh5LmFwaSNub0F1dGhcIikgfHwgKGFzeW5jICgpID0+ICh7fSkpLFxuICAgICAgICAgICAgICAgIHNpZ25lcjogbmV3IE5vQXV0aFNpZ25lcigpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgbG9nZ2VyOiBjb25maWc/LmxvZ2dlciA/PyBuZXcgTm9PcExvZ2dlcigpLFxuICAgICAgICBwcm90b2NvbDogY29uZmlnPy5wcm90b2NvbCA/PyBBd3NSZXN0SnNvblByb3RvY29sLFxuICAgICAgICBwcm90b2NvbFNldHRpbmdzOiBjb25maWc/LnByb3RvY29sU2V0dGluZ3MgPz8ge1xuICAgICAgICAgICAgZGVmYXVsdE5hbWVzcGFjZTogXCJjb20uYW1hem9uYXdzLnNzb1wiLFxuICAgICAgICAgICAgZXJyb3JUeXBlUmVnaXN0cmllcyxcbiAgICAgICAgICAgIHZlcnNpb246IFwiMjAxOS0wNi0xMFwiLFxuICAgICAgICAgICAgc2VydmljZVRhcmdldDogXCJTV0JQb3J0YWxTZXJ2aWNlXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHNlcnZpY2VJZDogY29uZmlnPy5zZXJ2aWNlSWQgPz8gXCJTU09cIixcbiAgICAgICAgdXJsUGFyc2VyOiBjb25maWc/LnVybFBhcnNlciA/PyBwYXJzZVVybCxcbiAgICAgICAgdXRmOERlY29kZXI6IGNvbmZpZz8udXRmOERlY29kZXIgPz8gZnJvbVV0ZjgsXG4gICAgICAgIHV0ZjhFbmNvZGVyOiBjb25maWc/LnV0ZjhFbmNvZGVyID8/IHRvVXRmOCxcbiAgICB9O1xufTtcbiIsICJpbXBvcnQgcGFja2FnZUluZm8gZnJvbSBcIi4uLy4uLy4uL3BhY2thZ2UuanNvblwiO1xuaW1wb3J0IHsgZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbiBhcyBhd3NDaGVja1ZlcnNpb24gfSBmcm9tIFwiQGF3cy1zZGsvY29yZS9jbGllbnRcIjtcbmltcG9ydCB7IE5PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9PUFRJT05TIH0gZnJvbSBcIkBhd3Mtc2RrL2NvcmUvaHR0cEF1dGhTY2hlbWVzXCI7XG5pbXBvcnQgeyBjcmVhdGVEZWZhdWx0VXNlckFnZW50UHJvdmlkZXIsIE5PREVfQVBQX0lEX0NPTkZJR19PUFRJT05TIH0gZnJvbSBcIkBhd3Mtc2RrL3V0aWwtdXNlci1hZ2VudC1ub2RlXCI7XG5pbXBvcnQgeyBOT0RFX1JFR0lPTl9DT05GSUdfRklMRV9PUFRJT05TLCBOT0RFX1JFR0lPTl9DT05GSUdfT1BUSU9OUywgTk9ERV9VU0VfRFVBTFNUQUNLX0VORFBPSU5UX0NPTkZJR19PUFRJT05TLCBOT0RFX1VTRV9GSVBTX0VORFBPSU5UX0NPTkZJR19PUFRJT05TLCB9IGZyb20gXCJAc21pdGh5L2NvbmZpZy1yZXNvbHZlclwiO1xuaW1wb3J0IHsgSGFzaCB9IGZyb20gXCJAc21pdGh5L2hhc2gtbm9kZVwiO1xuaW1wb3J0IHsgTk9ERV9NQVhfQVRURU1QVF9DT05GSUdfT1BUSU9OUywgTk9ERV9SRVRSWV9NT0RFX0NPTkZJR19PUFRJT05TIH0gZnJvbSBcIkBzbWl0aHkvbWlkZGxld2FyZS1yZXRyeVwiO1xuaW1wb3J0IHsgbG9hZENvbmZpZyBhcyBsb2FkTm9kZUNvbmZpZyB9IGZyb20gXCJAc21pdGh5L25vZGUtY29uZmlnLXByb3ZpZGVyXCI7XG5pbXBvcnQgeyBOb2RlSHR0cEhhbmRsZXIgYXMgUmVxdWVzdEhhbmRsZXIsIHN0cmVhbUNvbGxlY3RvciB9IGZyb20gXCJAc21pdGh5L25vZGUtaHR0cC1oYW5kbGVyXCI7XG5pbXBvcnQgeyBlbWl0V2FybmluZ0lmVW5zdXBwb3J0ZWRWZXJzaW9uLCBsb2FkQ29uZmlnc0ZvckRlZmF1bHRNb2RlIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgY2FsY3VsYXRlQm9keUxlbmd0aCB9IGZyb20gXCJAc21pdGh5L3V0aWwtYm9keS1sZW5ndGgtbm9kZVwiO1xuaW1wb3J0IHsgcmVzb2x2ZURlZmF1bHRzTW9kZUNvbmZpZyB9IGZyb20gXCJAc21pdGh5L3V0aWwtZGVmYXVsdHMtbW9kZS1ub2RlXCI7XG5pbXBvcnQgeyBERUZBVUxUX1JFVFJZX01PREUgfSBmcm9tIFwiQHNtaXRoeS91dGlsLXJldHJ5XCI7XG5pbXBvcnQgeyBnZXRSdW50aW1lQ29uZmlnIGFzIGdldFNoYXJlZFJ1bnRpbWVDb25maWcgfSBmcm9tIFwiLi9ydW50aW1lQ29uZmlnLnNoYXJlZFwiO1xuZXhwb3J0IGNvbnN0IGdldFJ1bnRpbWVDb25maWcgPSAoY29uZmlnKSA9PiB7XG4gICAgZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbihwcm9jZXNzLnZlcnNpb24pO1xuICAgIGNvbnN0IGRlZmF1bHRzTW9kZSA9IHJlc29sdmVEZWZhdWx0c01vZGVDb25maWcoY29uZmlnKTtcbiAgICBjb25zdCBkZWZhdWx0Q29uZmlnUHJvdmlkZXIgPSAoKSA9PiBkZWZhdWx0c01vZGUoKS50aGVuKGxvYWRDb25maWdzRm9yRGVmYXVsdE1vZGUpO1xuICAgIGNvbnN0IGNsaWVudFNoYXJlZFZhbHVlcyA9IGdldFNoYXJlZFJ1bnRpbWVDb25maWcoY29uZmlnKTtcbiAgICBhd3NDaGVja1ZlcnNpb24ocHJvY2Vzcy52ZXJzaW9uKTtcbiAgICBjb25zdCBsb2FkZXJDb25maWcgPSB7XG4gICAgICAgIHByb2ZpbGU6IGNvbmZpZz8ucHJvZmlsZSxcbiAgICAgICAgbG9nZ2VyOiBjbGllbnRTaGFyZWRWYWx1ZXMubG9nZ2VyLFxuICAgIH07XG4gICAgcmV0dXJuIHtcbiAgICAgICAgLi4uY2xpZW50U2hhcmVkVmFsdWVzLFxuICAgICAgICAuLi5jb25maWcsXG4gICAgICAgIHJ1bnRpbWU6IFwibm9kZVwiLFxuICAgICAgICBkZWZhdWx0c01vZGUsXG4gICAgICAgIGF1dGhTY2hlbWVQcmVmZXJlbmNlOiBjb25maWc/LmF1dGhTY2hlbWVQcmVmZXJlbmNlID8/IGxvYWROb2RlQ29uZmlnKE5PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgICAgICBib2R5TGVuZ3RoQ2hlY2tlcjogY29uZmlnPy5ib2R5TGVuZ3RoQ2hlY2tlciA/PyBjYWxjdWxhdGVCb2R5TGVuZ3RoLFxuICAgICAgICBkZWZhdWx0VXNlckFnZW50UHJvdmlkZXI6IGNvbmZpZz8uZGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyID8/XG4gICAgICAgICAgICBjcmVhdGVEZWZhdWx0VXNlckFnZW50UHJvdmlkZXIoeyBzZXJ2aWNlSWQ6IGNsaWVudFNoYXJlZFZhbHVlcy5zZXJ2aWNlSWQsIGNsaWVudFZlcnNpb246IHBhY2thZ2VJbmZvLnZlcnNpb24gfSksXG4gICAgICAgIG1heEF0dGVtcHRzOiBjb25maWc/Lm1heEF0dGVtcHRzID8/IGxvYWROb2RlQ29uZmlnKE5PREVfTUFYX0FUVEVNUFRfQ09ORklHX09QVElPTlMsIGNvbmZpZyksXG4gICAgICAgIHJlZ2lvbjogY29uZmlnPy5yZWdpb24gPz9cbiAgICAgICAgICAgIGxvYWROb2RlQ29uZmlnKE5PREVfUkVHSU9OX0NPTkZJR19PUFRJT05TLCB7IC4uLk5PREVfUkVHSU9OX0NPTkZJR19GSUxFX09QVElPTlMsIC4uLmxvYWRlckNvbmZpZyB9KSxcbiAgICAgICAgcmVxdWVzdEhhbmRsZXI6IFJlcXVlc3RIYW5kbGVyLmNyZWF0ZShjb25maWc/LnJlcXVlc3RIYW5kbGVyID8/IGRlZmF1bHRDb25maWdQcm92aWRlciksXG4gICAgICAgIHJldHJ5TW9kZTogY29uZmlnPy5yZXRyeU1vZGUgPz9cbiAgICAgICAgICAgIGxvYWROb2RlQ29uZmlnKHtcbiAgICAgICAgICAgICAgICAuLi5OT0RFX1JFVFJZX01PREVfQ09ORklHX09QVElPTlMsXG4gICAgICAgICAgICAgICAgZGVmYXVsdDogYXN5bmMgKCkgPT4gKGF3YWl0IGRlZmF1bHRDb25maWdQcm92aWRlcigpKS5yZXRyeU1vZGUgfHwgREVGQVVMVF9SRVRSWV9NT0RFLFxuICAgICAgICAgICAgfSwgY29uZmlnKSxcbiAgICAgICAgc2hhMjU2OiBjb25maWc/LnNoYTI1NiA/PyBIYXNoLmJpbmQobnVsbCwgXCJzaGEyNTZcIiksXG4gICAgICAgIHN0cmVhbUNvbGxlY3RvcjogY29uZmlnPy5zdHJlYW1Db2xsZWN0b3IgPz8gc3RyZWFtQ29sbGVjdG9yLFxuICAgICAgICB1c2VEdWFsc3RhY2tFbmRwb2ludDogY29uZmlnPy51c2VEdWFsc3RhY2tFbmRwb2ludCA/PyBsb2FkTm9kZUNvbmZpZyhOT0RFX1VTRV9EVUFMU1RBQ0tfRU5EUE9JTlRfQ09ORklHX09QVElPTlMsIGxvYWRlckNvbmZpZyksXG4gICAgICAgIHVzZUZpcHNFbmRwb2ludDogY29uZmlnPy51c2VGaXBzRW5kcG9pbnQgPz8gbG9hZE5vZGVDb25maWcoTk9ERV9VU0VfRklQU19FTkRQT0lOVF9DT05GSUdfT1BUSU9OUywgbG9hZGVyQ29uZmlnKSxcbiAgICAgICAgdXNlckFnZW50QXBwSWQ6IGNvbmZpZz8udXNlckFnZW50QXBwSWQgPz8gbG9hZE5vZGVDb25maWcoTk9ERV9BUFBfSURfQ09ORklHX09QVElPTlMsIGxvYWRlckNvbmZpZyksXG4gICAgfTtcbn07XG4iLCAiZXhwb3J0IGNvbnN0IGdldEh0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiA9IChydW50aW1lQ29uZmlnKSA9PiB7XG4gICAgY29uc3QgX2h0dHBBdXRoU2NoZW1lcyA9IHJ1bnRpbWVDb25maWcuaHR0cEF1dGhTY2hlbWVzO1xuICAgIGxldCBfaHR0cEF1dGhTY2hlbWVQcm92aWRlciA9IHJ1bnRpbWVDb25maWcuaHR0cEF1dGhTY2hlbWVQcm92aWRlcjtcbiAgICBsZXQgX2NyZWRlbnRpYWxzID0gcnVudGltZUNvbmZpZy5jcmVkZW50aWFscztcbiAgICByZXR1cm4ge1xuICAgICAgICBzZXRIdHRwQXV0aFNjaGVtZShodHRwQXV0aFNjaGVtZSkge1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSBfaHR0cEF1dGhTY2hlbWVzLmZpbmRJbmRleCgoc2NoZW1lKSA9PiBzY2hlbWUuc2NoZW1lSWQgPT09IGh0dHBBdXRoU2NoZW1lLnNjaGVtZUlkKTtcbiAgICAgICAgICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICBfaHR0cEF1dGhTY2hlbWVzLnB1c2goaHR0cEF1dGhTY2hlbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgX2h0dHBBdXRoU2NoZW1lcy5zcGxpY2UoaW5kZXgsIDEsIGh0dHBBdXRoU2NoZW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVzKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9odHRwQXV0aFNjaGVtZXM7XG4gICAgICAgIH0sXG4gICAgICAgIHNldEh0dHBBdXRoU2NoZW1lUHJvdmlkZXIoaHR0cEF1dGhTY2hlbWVQcm92aWRlcikge1xuICAgICAgICAgICAgX2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSBodHRwQXV0aFNjaGVtZVByb3ZpZGVyO1xuICAgICAgICB9LFxuICAgICAgICBodHRwQXV0aFNjaGVtZVByb3ZpZGVyKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9odHRwQXV0aFNjaGVtZVByb3ZpZGVyO1xuICAgICAgICB9LFxuICAgICAgICBzZXRDcmVkZW50aWFscyhjcmVkZW50aWFscykge1xuICAgICAgICAgICAgX2NyZWRlbnRpYWxzID0gY3JlZGVudGlhbHM7XG4gICAgICAgIH0sXG4gICAgICAgIGNyZWRlbnRpYWxzKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9jcmVkZW50aWFscztcbiAgICAgICAgfSxcbiAgICB9O1xufTtcbmV4cG9ydCBjb25zdCByZXNvbHZlSHR0cEF1dGhSdW50aW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIGh0dHBBdXRoU2NoZW1lczogY29uZmlnLmh0dHBBdXRoU2NoZW1lcygpLFxuICAgICAgICBodHRwQXV0aFNjaGVtZVByb3ZpZGVyOiBjb25maWcuaHR0cEF1dGhTY2hlbWVQcm92aWRlcigpLFxuICAgICAgICBjcmVkZW50aWFsczogY29uZmlnLmNyZWRlbnRpYWxzKCksXG4gICAgfTtcbn07XG4iLCAiaW1wb3J0IHsgZ2V0QXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiwgcmVzb2x2ZUF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24sIH0gZnJvbSBcIkBhd3Mtc2RrL3JlZ2lvbi1jb25maWctcmVzb2x2ZXJcIjtcbmltcG9ydCB7IGdldEh0dHBIYW5kbGVyRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiwgcmVzb2x2ZUh0dHBIYW5kbGVyUnVudGltZUNvbmZpZyB9IGZyb20gXCJAc21pdGh5L3Byb3RvY29sLWh0dHBcIjtcbmltcG9ydCB7IGdldERlZmF1bHRFeHRlbnNpb25Db25maWd1cmF0aW9uLCByZXNvbHZlRGVmYXVsdFJ1bnRpbWVDb25maWcgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyBnZXRIdHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24sIHJlc29sdmVIdHRwQXV0aFJ1bnRpbWVDb25maWcgfSBmcm9tIFwiLi9hdXRoL2h0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvblwiO1xuZXhwb3J0IGNvbnN0IHJlc29sdmVSdW50aW1lRXh0ZW5zaW9ucyA9IChydW50aW1lQ29uZmlnLCBleHRlbnNpb25zKSA9PiB7XG4gICAgY29uc3QgZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiA9IE9iamVjdC5hc3NpZ24oZ2V0QXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbihydW50aW1lQ29uZmlnKSwgZ2V0RGVmYXVsdEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24ocnVudGltZUNvbmZpZyksIGdldEh0dHBIYW5kbGVyRXh0ZW5zaW9uQ29uZmlndXJhdGlvbihydW50aW1lQ29uZmlnKSwgZ2V0SHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uKHJ1bnRpbWVDb25maWcpKTtcbiAgICBleHRlbnNpb25zLmZvckVhY2goKGV4dGVuc2lvbikgPT4gZXh0ZW5zaW9uLmNvbmZpZ3VyZShleHRlbnNpb25Db25maWd1cmF0aW9uKSk7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24ocnVudGltZUNvbmZpZywgcmVzb2x2ZUF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24oZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiksIHJlc29sdmVEZWZhdWx0UnVudGltZUNvbmZpZyhleHRlbnNpb25Db25maWd1cmF0aW9uKSwgcmVzb2x2ZUh0dHBIYW5kbGVyUnVudGltZUNvbmZpZyhleHRlbnNpb25Db25maWd1cmF0aW9uKSwgcmVzb2x2ZUh0dHBBdXRoUnVudGltZUNvbmZpZyhleHRlbnNpb25Db25maWd1cmF0aW9uKSk7XG59O1xuIiwgImltcG9ydCB7IGdldEhvc3RIZWFkZXJQbHVnaW4sIHJlc29sdmVIb3N0SGVhZGVyQ29uZmlnLCB9IGZyb20gXCJAYXdzLXNkay9taWRkbGV3YXJlLWhvc3QtaGVhZGVyXCI7XG5pbXBvcnQgeyBnZXRMb2dnZXJQbHVnaW4gfSBmcm9tIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1sb2dnZXJcIjtcbmltcG9ydCB7IGdldFJlY3Vyc2lvbkRldGVjdGlvblBsdWdpbiB9IGZyb20gXCJAYXdzLXNkay9taWRkbGV3YXJlLXJlY3Vyc2lvbi1kZXRlY3Rpb25cIjtcbmltcG9ydCB7IGdldFVzZXJBZ2VudFBsdWdpbiwgcmVzb2x2ZVVzZXJBZ2VudENvbmZpZywgfSBmcm9tIFwiQGF3cy1zZGsvbWlkZGxld2FyZS11c2VyLWFnZW50XCI7XG5pbXBvcnQgeyByZXNvbHZlUmVnaW9uQ29uZmlnIH0gZnJvbSBcIkBzbWl0aHkvY29uZmlnLXJlc29sdmVyXCI7XG5pbXBvcnQgeyBEZWZhdWx0SWRlbnRpdHlQcm92aWRlckNvbmZpZywgZ2V0SHR0cEF1dGhTY2hlbWVFbmRwb2ludFJ1bGVTZXRQbHVnaW4sIGdldEh0dHBTaWduaW5nUGx1Z2luLCB9IGZyb20gXCJAc21pdGh5L2NvcmVcIjtcbmltcG9ydCB7IGdldFNjaGVtYVNlcmRlUGx1Z2luIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IGdldENvbnRlbnRMZW5ndGhQbHVnaW4gfSBmcm9tIFwiQHNtaXRoeS9taWRkbGV3YXJlLWNvbnRlbnQtbGVuZ3RoXCI7XG5pbXBvcnQgeyByZXNvbHZlRW5kcG9pbnRDb25maWcsIH0gZnJvbSBcIkBzbWl0aHkvbWlkZGxld2FyZS1lbmRwb2ludFwiO1xuaW1wb3J0IHsgZ2V0UmV0cnlQbHVnaW4sIHJlc29sdmVSZXRyeUNvbmZpZywgfSBmcm9tIFwiQHNtaXRoeS9taWRkbGV3YXJlLXJldHJ5XCI7XG5pbXBvcnQgeyBDbGllbnQgYXMgX19DbGllbnQsIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgZGVmYXVsdFNTT0h0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyLCByZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWcsIH0gZnJvbSBcIi4vYXV0aC9odHRwQXV0aFNjaGVtZVByb3ZpZGVyXCI7XG5pbXBvcnQgeyByZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzLCB9IGZyb20gXCIuL2VuZHBvaW50L0VuZHBvaW50UGFyYW1ldGVyc1wiO1xuaW1wb3J0IHsgZ2V0UnVudGltZUNvbmZpZyBhcyBfX2dldFJ1bnRpbWVDb25maWcgfSBmcm9tIFwiLi9ydW50aW1lQ29uZmlnXCI7XG5pbXBvcnQgeyByZXNvbHZlUnVudGltZUV4dGVuc2lvbnMgfSBmcm9tIFwiLi9ydW50aW1lRXh0ZW5zaW9uc1wiO1xuZXhwb3J0IHsgX19DbGllbnQgfTtcbmV4cG9ydCBjbGFzcyBTU09DbGllbnQgZXh0ZW5kcyBfX0NsaWVudCB7XG4gICAgY29uZmlnO1xuICAgIGNvbnN0cnVjdG9yKC4uLltjb25maWd1cmF0aW9uXSkge1xuICAgICAgICBjb25zdCBfY29uZmlnXzAgPSBfX2dldFJ1bnRpbWVDb25maWcoY29uZmlndXJhdGlvbiB8fCB7fSk7XG4gICAgICAgIHN1cGVyKF9jb25maWdfMCk7XG4gICAgICAgIHRoaXMuaW5pdENvbmZpZyA9IF9jb25maWdfMDtcbiAgICAgICAgY29uc3QgX2NvbmZpZ18xID0gcmVzb2x2ZUNsaWVudEVuZHBvaW50UGFyYW1ldGVycyhfY29uZmlnXzApO1xuICAgICAgICBjb25zdCBfY29uZmlnXzIgPSByZXNvbHZlVXNlckFnZW50Q29uZmlnKF9jb25maWdfMSk7XG4gICAgICAgIGNvbnN0IF9jb25maWdfMyA9IHJlc29sdmVSZXRyeUNvbmZpZyhfY29uZmlnXzIpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzQgPSByZXNvbHZlUmVnaW9uQ29uZmlnKF9jb25maWdfMyk7XG4gICAgICAgIGNvbnN0IF9jb25maWdfNSA9IHJlc29sdmVIb3N0SGVhZGVyQ29uZmlnKF9jb25maWdfNCk7XG4gICAgICAgIGNvbnN0IF9jb25maWdfNiA9IHJlc29sdmVFbmRwb2ludENvbmZpZyhfY29uZmlnXzUpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzcgPSByZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWcoX2NvbmZpZ182KTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ184ID0gcmVzb2x2ZVJ1bnRpbWVFeHRlbnNpb25zKF9jb25maWdfNywgY29uZmlndXJhdGlvbj8uZXh0ZW5zaW9ucyB8fCBbXSk7XG4gICAgICAgIHRoaXMuY29uZmlnID0gX2NvbmZpZ184O1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoZ2V0U2NoZW1hU2VyZGVQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGdldFVzZXJBZ2VudFBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoZ2V0UmV0cnlQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGdldENvbnRlbnRMZW5ndGhQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGdldEhvc3RIZWFkZXJQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGdldExvZ2dlclBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoZ2V0UmVjdXJzaW9uRGV0ZWN0aW9uUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShnZXRIdHRwQXV0aFNjaGVtZUVuZHBvaW50UnVsZVNldFBsdWdpbih0aGlzLmNvbmZpZywge1xuICAgICAgICAgICAgaHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXI6IGRlZmF1bHRTU09IdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlcixcbiAgICAgICAgICAgIGlkZW50aXR5UHJvdmlkZXJDb25maWdQcm92aWRlcjogYXN5bmMgKGNvbmZpZykgPT4gbmV3IERlZmF1bHRJZGVudGl0eVByb3ZpZGVyQ29uZmlnKHtcbiAgICAgICAgICAgICAgICBcImF3cy5hdXRoI3NpZ3Y0XCI6IGNvbmZpZy5jcmVkZW50aWFscyxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICB9KSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShnZXRIdHRwU2lnbmluZ1BsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgIH1cbiAgICBkZXN0cm95KCkge1xuICAgICAgICBzdXBlci5kZXN0cm95KCk7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IGdldEVuZHBvaW50UGx1Z2luIH0gZnJvbSBcIkBzbWl0aHkvbWlkZGxld2FyZS1lbmRwb2ludFwiO1xuaW1wb3J0IHsgQ29tbWFuZCBhcyAkQ29tbWFuZCB9IGZyb20gXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjtcbmltcG9ydCB7IGNvbW1vblBhcmFtcyB9IGZyb20gXCIuLi9lbmRwb2ludC9FbmRwb2ludFBhcmFtZXRlcnNcIjtcbmltcG9ydCB7IEdldFJvbGVDcmVkZW50aWFscyQgfSBmcm9tIFwiLi4vc2NoZW1hcy9zY2hlbWFzXzBcIjtcbmV4cG9ydCB7ICRDb21tYW5kIH07XG5leHBvcnQgY2xhc3MgR2V0Um9sZUNyZWRlbnRpYWxzQ29tbWFuZCBleHRlbmRzICRDb21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJTV0JQb3J0YWxTZXJ2aWNlXCIsIFwiR2V0Um9sZUNyZWRlbnRpYWxzXCIsIHt9KVxuICAgIC5uKFwiU1NPQ2xpZW50XCIsIFwiR2V0Um9sZUNyZWRlbnRpYWxzQ29tbWFuZFwiKVxuICAgIC5zYyhHZXRSb2xlQ3JlZGVudGlhbHMkKVxuICAgIC5idWlsZCgpIHtcbn1cbiIsICJpbXBvcnQgeyBjcmVhdGVBZ2dyZWdhdGVkQ2xpZW50IH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgR2V0Um9sZUNyZWRlbnRpYWxzQ29tbWFuZCwgfSBmcm9tIFwiLi9jb21tYW5kcy9HZXRSb2xlQ3JlZGVudGlhbHNDb21tYW5kXCI7XG5pbXBvcnQgeyBTU09DbGllbnQgfSBmcm9tIFwiLi9TU09DbGllbnRcIjtcbmNvbnN0IGNvbW1hbmRzID0ge1xuICAgIEdldFJvbGVDcmVkZW50aWFsc0NvbW1hbmQsXG59O1xuZXhwb3J0IGNsYXNzIFNTTyBleHRlbmRzIFNTT0NsaWVudCB7XG59XG5jcmVhdGVBZ2dyZWdhdGVkQ2xpZW50KGNvbW1hbmRzLCBTU08pO1xuIiwgImV4cG9ydCAqIGZyb20gXCIuL0dldFJvbGVDcmVkZW50aWFsc0NvbW1hbmRcIjtcbiIsICJleHBvcnQge307XG4iLCAiZXhwb3J0ICogZnJvbSBcIi4vU1NPQ2xpZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9TU09cIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbW1hbmRzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zY2hlbWFzL3NjaGVtYXNfMFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWxzL2Vycm9yc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWxzL21vZGVsc18wXCI7XG5leHBvcnQgeyBTU09TZXJ2aWNlRXhjZXB0aW9uIH0gZnJvbSBcIi4vbW9kZWxzL1NTT1NlcnZpY2VFeGNlcHRpb25cIjtcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBzc28gPSByZXF1aXJlKCdAYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9zc28nKTtcblxuXG5cbmV4cG9ydHMuR2V0Um9sZUNyZWRlbnRpYWxzQ29tbWFuZCA9IHNzby5HZXRSb2xlQ3JlZGVudGlhbHNDb21tYW5kO1xuZXhwb3J0cy5TU09DbGllbnQgPSBzc28uU1NPQ2xpZW50O1xuIiwgIid1c2Ugc3RyaWN0JztcblxudmFyIHByb3BlcnR5UHJvdmlkZXIgPSByZXF1aXJlKCdAc21pdGh5L3Byb3BlcnR5LXByb3ZpZGVyJyk7XG52YXIgc2hhcmVkSW5pRmlsZUxvYWRlciA9IHJlcXVpcmUoJ0BzbWl0aHkvc2hhcmVkLWluaS1maWxlLWxvYWRlcicpO1xudmFyIGNsaWVudCA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL2NvcmUvY2xpZW50Jyk7XG52YXIgdG9rZW5Qcm92aWRlcnMgPSByZXF1aXJlKCdAYXdzLXNkay90b2tlbi1wcm92aWRlcnMnKTtcblxuY29uc3QgaXNTc29Qcm9maWxlID0gKGFyZykgPT4gYXJnICYmXG4gICAgKHR5cGVvZiBhcmcuc3NvX3N0YXJ0X3VybCA9PT0gXCJzdHJpbmdcIiB8fFxuICAgICAgICB0eXBlb2YgYXJnLnNzb19hY2NvdW50X2lkID09PSBcInN0cmluZ1wiIHx8XG4gICAgICAgIHR5cGVvZiBhcmcuc3NvX3Nlc3Npb24gPT09IFwic3RyaW5nXCIgfHxcbiAgICAgICAgdHlwZW9mIGFyZy5zc29fcmVnaW9uID09PSBcInN0cmluZ1wiIHx8XG4gICAgICAgIHR5cGVvZiBhcmcuc3NvX3JvbGVfbmFtZSA9PT0gXCJzdHJpbmdcIik7XG5cbmNvbnN0IFNIT1VMRF9GQUlMX0NSRURFTlRJQUxfQ0hBSU4gPSBmYWxzZTtcbmNvbnN0IHJlc29sdmVTU09DcmVkZW50aWFscyA9IGFzeW5jICh7IHNzb1N0YXJ0VXJsLCBzc29TZXNzaW9uLCBzc29BY2NvdW50SWQsIHNzb1JlZ2lvbiwgc3NvUm9sZU5hbWUsIHNzb0NsaWVudCwgY2xpZW50Q29uZmlnLCBwYXJlbnRDbGllbnRDb25maWcsIGNhbGxlckNsaWVudENvbmZpZywgcHJvZmlsZSwgZmlsZXBhdGgsIGNvbmZpZ0ZpbGVwYXRoLCBpZ25vcmVDYWNoZSwgbG9nZ2VyLCB9KSA9PiB7XG4gICAgbGV0IHRva2VuO1xuICAgIGNvbnN0IHJlZnJlc2hNZXNzYWdlID0gYFRvIHJlZnJlc2ggdGhpcyBTU08gc2Vzc2lvbiBydW4gYXdzIHNzbyBsb2dpbiB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIHByb2ZpbGUuYDtcbiAgICBpZiAoc3NvU2Vzc2lvbikge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgX3Rva2VuID0gYXdhaXQgdG9rZW5Qcm92aWRlcnMuZnJvbVNzbyh7XG4gICAgICAgICAgICAgICAgcHJvZmlsZSxcbiAgICAgICAgICAgICAgICBmaWxlcGF0aCxcbiAgICAgICAgICAgICAgICBjb25maWdGaWxlcGF0aCxcbiAgICAgICAgICAgICAgICBpZ25vcmVDYWNoZSxcbiAgICAgICAgICAgIH0pKCk7XG4gICAgICAgICAgICB0b2tlbiA9IHtcbiAgICAgICAgICAgICAgICBhY2Nlc3NUb2tlbjogX3Rva2VuLnRva2VuLFxuICAgICAgICAgICAgICAgIGV4cGlyZXNBdDogbmV3IERhdGUoX3Rva2VuLmV4cGlyYXRpb24pLnRvSVNPU3RyaW5nKCksXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoZS5tZXNzYWdlLCB7XG4gICAgICAgICAgICAgICAgdHJ5TmV4dExpbms6IFNIT1VMRF9GQUlMX0NSRURFTlRJQUxfQ0hBSU4sXG4gICAgICAgICAgICAgICAgbG9nZ2VyLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB0b2tlbiA9IGF3YWl0IHNoYXJlZEluaUZpbGVMb2FkZXIuZ2V0U1NPVG9rZW5Gcm9tRmlsZShzc29TdGFydFVybCk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLkNyZWRlbnRpYWxzUHJvdmlkZXJFcnJvcihgVGhlIFNTTyBzZXNzaW9uIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHByb2ZpbGUgaXMgaW52YWxpZC4gJHtyZWZyZXNoTWVzc2FnZX1gLCB7XG4gICAgICAgICAgICAgICAgdHJ5TmV4dExpbms6IFNIT1VMRF9GQUlMX0NSRURFTlRJQUxfQ0hBSU4sXG4gICAgICAgICAgICAgICAgbG9nZ2VyLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKG5ldyBEYXRlKHRva2VuLmV4cGlyZXNBdCkuZ2V0VGltZSgpIC0gRGF0ZS5ub3coKSA8PSAwKSB7XG4gICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLkNyZWRlbnRpYWxzUHJvdmlkZXJFcnJvcihgVGhlIFNTTyBzZXNzaW9uIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHByb2ZpbGUgaGFzIGV4cGlyZWQuICR7cmVmcmVzaE1lc3NhZ2V9YCwge1xuICAgICAgICAgICAgdHJ5TmV4dExpbms6IFNIT1VMRF9GQUlMX0NSRURFTlRJQUxfQ0hBSU4sXG4gICAgICAgICAgICBsb2dnZXIsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCB7IGFjY2Vzc1Rva2VuIH0gPSB0b2tlbjtcbiAgICBjb25zdCB7IFNTT0NsaWVudCwgR2V0Um9sZUNyZWRlbnRpYWxzQ29tbWFuZCB9ID0gYXdhaXQgUHJvbWlzZS5yZXNvbHZlKCkudGhlbihmdW5jdGlvbiAoKSB7IHJldHVybiByZXF1aXJlKCcuL2xvYWRTc28tQktETnJzYWwuanMnKTsgfSk7XG4gICAgY29uc3Qgc3NvID0gc3NvQ2xpZW50IHx8XG4gICAgICAgIG5ldyBTU09DbGllbnQoT2JqZWN0LmFzc2lnbih7fSwgY2xpZW50Q29uZmlnID8/IHt9LCB7XG4gICAgICAgICAgICBsb2dnZXI6IGNsaWVudENvbmZpZz8ubG9nZ2VyID8/IGNhbGxlckNsaWVudENvbmZpZz8ubG9nZ2VyID8/IHBhcmVudENsaWVudENvbmZpZz8ubG9nZ2VyLFxuICAgICAgICAgICAgcmVnaW9uOiBjbGllbnRDb25maWc/LnJlZ2lvbiA/PyBzc29SZWdpb24sXG4gICAgICAgICAgICB1c2VyQWdlbnRBcHBJZDogY2xpZW50Q29uZmlnPy51c2VyQWdlbnRBcHBJZCA/PyBjYWxsZXJDbGllbnRDb25maWc/LnVzZXJBZ2VudEFwcElkID8/IHBhcmVudENsaWVudENvbmZpZz8udXNlckFnZW50QXBwSWQsXG4gICAgICAgIH0pKTtcbiAgICBsZXQgc3NvUmVzcDtcbiAgICB0cnkge1xuICAgICAgICBzc29SZXNwID0gYXdhaXQgc3NvLnNlbmQobmV3IEdldFJvbGVDcmVkZW50aWFsc0NvbW1hbmQoe1xuICAgICAgICAgICAgYWNjb3VudElkOiBzc29BY2NvdW50SWQsXG4gICAgICAgICAgICByb2xlTmFtZTogc3NvUm9sZU5hbWUsXG4gICAgICAgICAgICBhY2Nlc3NUb2tlbixcbiAgICAgICAgfSkpO1xuICAgIH1cbiAgICBjYXRjaCAoZSkge1xuICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoZSwge1xuICAgICAgICAgICAgdHJ5TmV4dExpbms6IFNIT1VMRF9GQUlMX0NSRURFTlRJQUxfQ0hBSU4sXG4gICAgICAgICAgICBsb2dnZXIsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCB7IHJvbGVDcmVkZW50aWFsczogeyBhY2Nlc3NLZXlJZCwgc2VjcmV0QWNjZXNzS2V5LCBzZXNzaW9uVG9rZW4sIGV4cGlyYXRpb24sIGNyZWRlbnRpYWxTY29wZSwgYWNjb3VudElkIH0gPSB7fSwgfSA9IHNzb1Jlc3A7XG4gICAgaWYgKCFhY2Nlc3NLZXlJZCB8fCAhc2VjcmV0QWNjZXNzS2V5IHx8ICFzZXNzaW9uVG9rZW4gfHwgIWV4cGlyYXRpb24pIHtcbiAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKFwiU1NPIHJldHVybnMgYW4gaW52YWxpZCB0ZW1wb3JhcnkgY3JlZGVudGlhbC5cIiwge1xuICAgICAgICAgICAgdHJ5TmV4dExpbms6IFNIT1VMRF9GQUlMX0NSRURFTlRJQUxfQ0hBSU4sXG4gICAgICAgICAgICBsb2dnZXIsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCBjcmVkZW50aWFscyA9IHtcbiAgICAgICAgYWNjZXNzS2V5SWQsXG4gICAgICAgIHNlY3JldEFjY2Vzc0tleSxcbiAgICAgICAgc2Vzc2lvblRva2VuLFxuICAgICAgICBleHBpcmF0aW9uOiBuZXcgRGF0ZShleHBpcmF0aW9uKSxcbiAgICAgICAgLi4uKGNyZWRlbnRpYWxTY29wZSAmJiB7IGNyZWRlbnRpYWxTY29wZSB9KSxcbiAgICAgICAgLi4uKGFjY291bnRJZCAmJiB7IGFjY291bnRJZCB9KSxcbiAgICB9O1xuICAgIGlmIChzc29TZXNzaW9uKSB7XG4gICAgICAgIGNsaWVudC5zZXRDcmVkZW50aWFsRmVhdHVyZShjcmVkZW50aWFscywgXCJDUkVERU5USUFMU19TU09cIiwgXCJzXCIpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgY2xpZW50LnNldENyZWRlbnRpYWxGZWF0dXJlKGNyZWRlbnRpYWxzLCBcIkNSRURFTlRJQUxTX1NTT19MRUdBQ1lcIiwgXCJ1XCIpO1xuICAgIH1cbiAgICByZXR1cm4gY3JlZGVudGlhbHM7XG59O1xuXG5jb25zdCB2YWxpZGF0ZVNzb1Byb2ZpbGUgPSAocHJvZmlsZSwgbG9nZ2VyKSA9PiB7XG4gICAgY29uc3QgeyBzc29fc3RhcnRfdXJsLCBzc29fYWNjb3VudF9pZCwgc3NvX3JlZ2lvbiwgc3NvX3JvbGVfbmFtZSB9ID0gcHJvZmlsZTtcbiAgICBpZiAoIXNzb19zdGFydF91cmwgfHwgIXNzb19hY2NvdW50X2lkIHx8ICFzc29fcmVnaW9uIHx8ICFzc29fcm9sZV9uYW1lKSB7XG4gICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLkNyZWRlbnRpYWxzUHJvdmlkZXJFcnJvcihgUHJvZmlsZSBpcyBjb25maWd1cmVkIHdpdGggaW52YWxpZCBTU08gY3JlZGVudGlhbHMuIFJlcXVpcmVkIHBhcmFtZXRlcnMgXCJzc29fYWNjb3VudF9pZFwiLCBgICtcbiAgICAgICAgICAgIGBcInNzb19yZWdpb25cIiwgXCJzc29fcm9sZV9uYW1lXCIsIFwic3NvX3N0YXJ0X3VybFwiLiBHb3QgJHtPYmplY3Qua2V5cyhwcm9maWxlKS5qb2luKFwiLCBcIil9XFxuUmVmZXJlbmNlOiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2xpL2xhdGVzdC91c2VyZ3VpZGUvY2xpLWNvbmZpZ3VyZS1zc28uaHRtbGAsIHsgdHJ5TmV4dExpbms6IGZhbHNlLCBsb2dnZXIgfSk7XG4gICAgfVxuICAgIHJldHVybiBwcm9maWxlO1xufTtcblxuY29uc3QgZnJvbVNTTyA9IChpbml0ID0ge30pID0+IGFzeW5jICh7IGNhbGxlckNsaWVudENvbmZpZyB9ID0ge30pID0+IHtcbiAgICBpbml0LmxvZ2dlcj8uZGVidWcoXCJAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLXNzbyAtIGZyb21TU09cIik7XG4gICAgY29uc3QgeyBzc29TdGFydFVybCwgc3NvQWNjb3VudElkLCBzc29SZWdpb24sIHNzb1JvbGVOYW1lLCBzc29TZXNzaW9uIH0gPSBpbml0O1xuICAgIGNvbnN0IHsgc3NvQ2xpZW50IH0gPSBpbml0O1xuICAgIGNvbnN0IHByb2ZpbGVOYW1lID0gc2hhcmVkSW5pRmlsZUxvYWRlci5nZXRQcm9maWxlTmFtZSh7XG4gICAgICAgIHByb2ZpbGU6IGluaXQucHJvZmlsZSA/PyBjYWxsZXJDbGllbnRDb25maWc/LnByb2ZpbGUsXG4gICAgfSk7XG4gICAgaWYgKCFzc29TdGFydFVybCAmJiAhc3NvQWNjb3VudElkICYmICFzc29SZWdpb24gJiYgIXNzb1JvbGVOYW1lICYmICFzc29TZXNzaW9uKSB7XG4gICAgICAgIGNvbnN0IHByb2ZpbGVzID0gYXdhaXQgc2hhcmVkSW5pRmlsZUxvYWRlci5wYXJzZUtub3duRmlsZXMoaW5pdCk7XG4gICAgICAgIGNvbnN0IHByb2ZpbGUgPSBwcm9maWxlc1twcm9maWxlTmFtZV07XG4gICAgICAgIGlmICghcHJvZmlsZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKGBQcm9maWxlICR7cHJvZmlsZU5hbWV9IHdhcyBub3QgZm91bmQuYCwgeyBsb2dnZXI6IGluaXQubG9nZ2VyIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmICghaXNTc29Qcm9maWxlKHByb2ZpbGUpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoYFByb2ZpbGUgJHtwcm9maWxlTmFtZX0gaXMgbm90IGNvbmZpZ3VyZWQgd2l0aCBTU08gY3JlZGVudGlhbHMuYCwge1xuICAgICAgICAgICAgICAgIGxvZ2dlcjogaW5pdC5sb2dnZXIsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocHJvZmlsZT8uc3NvX3Nlc3Npb24pIHtcbiAgICAgICAgICAgIGNvbnN0IHNzb1Nlc3Npb25zID0gYXdhaXQgc2hhcmVkSW5pRmlsZUxvYWRlci5sb2FkU3NvU2Vzc2lvbkRhdGEoaW5pdCk7XG4gICAgICAgICAgICBjb25zdCBzZXNzaW9uID0gc3NvU2Vzc2lvbnNbcHJvZmlsZS5zc29fc2Vzc2lvbl07XG4gICAgICAgICAgICBjb25zdCBjb25mbGljdE1zZyA9IGAgY29uZmlndXJhdGlvbnMgaW4gcHJvZmlsZSAke3Byb2ZpbGVOYW1lfSBhbmQgc3NvLXNlc3Npb24gJHtwcm9maWxlLnNzb19zZXNzaW9ufWA7XG4gICAgICAgICAgICBpZiAoc3NvUmVnaW9uICYmIHNzb1JlZ2lvbiAhPT0gc2Vzc2lvbi5zc29fcmVnaW9uKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKGBDb25mbGljdGluZyBTU08gcmVnaW9uYCArIGNvbmZsaWN0TXNnLCB7XG4gICAgICAgICAgICAgICAgICAgIHRyeU5leHRMaW5rOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgbG9nZ2VyOiBpbml0LmxvZ2dlcixcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzc29TdGFydFVybCAmJiBzc29TdGFydFVybCAhPT0gc2Vzc2lvbi5zc29fc3RhcnRfdXJsKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKGBDb25mbGljdGluZyBTU08gc3RhcnRfdXJsYCArIGNvbmZsaWN0TXNnLCB7XG4gICAgICAgICAgICAgICAgICAgIHRyeU5leHRMaW5rOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgbG9nZ2VyOiBpbml0LmxvZ2dlcixcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHByb2ZpbGUuc3NvX3JlZ2lvbiA9IHNlc3Npb24uc3NvX3JlZ2lvbjtcbiAgICAgICAgICAgIHByb2ZpbGUuc3NvX3N0YXJ0X3VybCA9IHNlc3Npb24uc3NvX3N0YXJ0X3VybDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB7IHNzb19zdGFydF91cmwsIHNzb19hY2NvdW50X2lkLCBzc29fcmVnaW9uLCBzc29fcm9sZV9uYW1lLCBzc29fc2Vzc2lvbiB9ID0gdmFsaWRhdGVTc29Qcm9maWxlKHByb2ZpbGUsIGluaXQubG9nZ2VyKTtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVTU09DcmVkZW50aWFscyh7XG4gICAgICAgICAgICBzc29TdGFydFVybDogc3NvX3N0YXJ0X3VybCxcbiAgICAgICAgICAgIHNzb1Nlc3Npb246IHNzb19zZXNzaW9uLFxuICAgICAgICAgICAgc3NvQWNjb3VudElkOiBzc29fYWNjb3VudF9pZCxcbiAgICAgICAgICAgIHNzb1JlZ2lvbjogc3NvX3JlZ2lvbixcbiAgICAgICAgICAgIHNzb1JvbGVOYW1lOiBzc29fcm9sZV9uYW1lLFxuICAgICAgICAgICAgc3NvQ2xpZW50OiBzc29DbGllbnQsXG4gICAgICAgICAgICBjbGllbnRDb25maWc6IGluaXQuY2xpZW50Q29uZmlnLFxuICAgICAgICAgICAgcGFyZW50Q2xpZW50Q29uZmlnOiBpbml0LnBhcmVudENsaWVudENvbmZpZyxcbiAgICAgICAgICAgIGNhbGxlckNsaWVudENvbmZpZzogaW5pdC5jYWxsZXJDbGllbnRDb25maWcsXG4gICAgICAgICAgICBwcm9maWxlOiBwcm9maWxlTmFtZSxcbiAgICAgICAgICAgIGZpbGVwYXRoOiBpbml0LmZpbGVwYXRoLFxuICAgICAgICAgICAgY29uZmlnRmlsZXBhdGg6IGluaXQuY29uZmlnRmlsZXBhdGgsXG4gICAgICAgICAgICBpZ25vcmVDYWNoZTogaW5pdC5pZ25vcmVDYWNoZSxcbiAgICAgICAgICAgIGxvZ2dlcjogaW5pdC5sb2dnZXIsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBlbHNlIGlmICghc3NvU3RhcnRVcmwgfHwgIXNzb0FjY291bnRJZCB8fCAhc3NvUmVnaW9uIHx8ICFzc29Sb2xlTmFtZSkge1xuICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoXCJJbmNvbXBsZXRlIGNvbmZpZ3VyYXRpb24uIFRoZSBmcm9tU1NPKCkgYXJndW1lbnQgaGFzaCBtdXN0IGluY2x1ZGUgXCIgK1xuICAgICAgICAgICAgJ1wic3NvU3RhcnRVcmxcIiwgXCJzc29BY2NvdW50SWRcIiwgXCJzc29SZWdpb25cIiwgXCJzc29Sb2xlTmFtZVwiJywgeyB0cnlOZXh0TGluazogZmFsc2UsIGxvZ2dlcjogaW5pdC5sb2dnZXIgfSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZVNTT0NyZWRlbnRpYWxzKHtcbiAgICAgICAgICAgIHNzb1N0YXJ0VXJsLFxuICAgICAgICAgICAgc3NvU2Vzc2lvbixcbiAgICAgICAgICAgIHNzb0FjY291bnRJZCxcbiAgICAgICAgICAgIHNzb1JlZ2lvbixcbiAgICAgICAgICAgIHNzb1JvbGVOYW1lLFxuICAgICAgICAgICAgc3NvQ2xpZW50LFxuICAgICAgICAgICAgY2xpZW50Q29uZmlnOiBpbml0LmNsaWVudENvbmZpZyxcbiAgICAgICAgICAgIHBhcmVudENsaWVudENvbmZpZzogaW5pdC5wYXJlbnRDbGllbnRDb25maWcsXG4gICAgICAgICAgICBjYWxsZXJDbGllbnRDb25maWc6IGluaXQuY2FsbGVyQ2xpZW50Q29uZmlnLFxuICAgICAgICAgICAgcHJvZmlsZTogcHJvZmlsZU5hbWUsXG4gICAgICAgICAgICBmaWxlcGF0aDogaW5pdC5maWxlcGF0aCxcbiAgICAgICAgICAgIGNvbmZpZ0ZpbGVwYXRoOiBpbml0LmNvbmZpZ0ZpbGVwYXRoLFxuICAgICAgICAgICAgaWdub3JlQ2FjaGU6IGluaXQuaWdub3JlQ2FjaGUsXG4gICAgICAgICAgICBsb2dnZXI6IGluaXQubG9nZ2VyLFxuICAgICAgICB9KTtcbiAgICB9XG59O1xuXG5leHBvcnRzLmZyb21TU08gPSBmcm9tU1NPO1xuZXhwb3J0cy5pc1Nzb1Byb2ZpbGUgPSBpc1Nzb1Byb2ZpbGU7XG5leHBvcnRzLnZhbGlkYXRlU3NvUHJvZmlsZSA9IHZhbGlkYXRlU3NvUHJvZmlsZTtcbiIsICJpbXBvcnQgeyByZXNvbHZlQXdzU2RrU2lnVjRDb25maWcgfSBmcm9tIFwiQGF3cy1zZGsvY29yZS9odHRwQXV0aFNjaGVtZXNcIjtcbmltcG9ydCB7IGdldFNtaXRoeUNvbnRleHQsIG5vcm1hbGl6ZVByb3ZpZGVyIH0gZnJvbSBcIkBzbWl0aHkvdXRpbC1taWRkbGV3YXJlXCI7XG5leHBvcnQgY29uc3QgZGVmYXVsdFNpZ25pbkh0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyID0gYXN5bmMgKGNvbmZpZywgY29udGV4dCwgaW5wdXQpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgICBvcGVyYXRpb246IGdldFNtaXRoeUNvbnRleHQoY29udGV4dCkub3BlcmF0aW9uLFxuICAgICAgICByZWdpb246IChhd2FpdCBub3JtYWxpemVQcm92aWRlcihjb25maWcucmVnaW9uKSgpKSB8fFxuICAgICAgICAgICAgKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJleHBlY3RlZCBgcmVnaW9uYCB0byBiZSBjb25maWd1cmVkIGZvciBgYXdzLmF1dGgjc2lndjRgXCIpO1xuICAgICAgICAgICAgfSkoKSxcbiAgICB9O1xufTtcbmZ1bmN0aW9uIGNyZWF0ZUF3c0F1dGhTaWd2NEh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc2NoZW1lSWQ6IFwiYXdzLmF1dGgjc2lndjRcIixcbiAgICAgICAgc2lnbmluZ1Byb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIG5hbWU6IFwic2lnbmluXCIsXG4gICAgICAgICAgICByZWdpb246IGF1dGhQYXJhbWV0ZXJzLnJlZ2lvbixcbiAgICAgICAgfSxcbiAgICAgICAgcHJvcGVydGllc0V4dHJhY3RvcjogKGNvbmZpZywgY29udGV4dCkgPT4gKHtcbiAgICAgICAgICAgIHNpZ25pbmdQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgICAgY29uZmlnLFxuICAgICAgICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9KSxcbiAgICB9O1xufVxuZnVuY3Rpb24gY3JlYXRlU21pdGh5QXBpTm9BdXRoSHR0cEF1dGhPcHRpb24oYXV0aFBhcmFtZXRlcnMpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBzY2hlbWVJZDogXCJzbWl0aHkuYXBpI25vQXV0aFwiLFxuICAgIH07XG59XG5leHBvcnQgY29uc3QgZGVmYXVsdFNpZ25pbkh0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSAoYXV0aFBhcmFtZXRlcnMpID0+IHtcbiAgICBjb25zdCBvcHRpb25zID0gW107XG4gICAgc3dpdGNoIChhdXRoUGFyYW1ldGVycy5vcGVyYXRpb24pIHtcbiAgICAgICAgY2FzZSBcIkNyZWF0ZU9BdXRoMlRva2VuXCI6IHtcbiAgICAgICAgICAgIG9wdGlvbnMucHVzaChjcmVhdGVTbWl0aHlBcGlOb0F1dGhIdHRwQXV0aE9wdGlvbihhdXRoUGFyYW1ldGVycykpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgb3B0aW9ucy5wdXNoKGNyZWF0ZUF3c0F1dGhTaWd2NEh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG9wdGlvbnM7XG59O1xuZXhwb3J0IGNvbnN0IHJlc29sdmVIdHRwQXV0aFNjaGVtZUNvbmZpZyA9IChjb25maWcpID0+IHtcbiAgICBjb25zdCBjb25maWdfMCA9IHJlc29sdmVBd3NTZGtTaWdWNENvbmZpZyhjb25maWcpO1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKGNvbmZpZ18wLCB7XG4gICAgICAgIGF1dGhTY2hlbWVQcmVmZXJlbmNlOiBub3JtYWxpemVQcm92aWRlcihjb25maWcuYXV0aFNjaGVtZVByZWZlcmVuY2UgPz8gW10pLFxuICAgIH0pO1xufTtcbiIsICJleHBvcnQgY29uc3QgcmVzb2x2ZUNsaWVudEVuZHBvaW50UGFyYW1ldGVycyA9IChvcHRpb25zKSA9PiB7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24ob3B0aW9ucywge1xuICAgICAgICB1c2VEdWFsc3RhY2tFbmRwb2ludDogb3B0aW9ucy51c2VEdWFsc3RhY2tFbmRwb2ludCA/PyBmYWxzZSxcbiAgICAgICAgdXNlRmlwc0VuZHBvaW50OiBvcHRpb25zLnVzZUZpcHNFbmRwb2ludCA/PyBmYWxzZSxcbiAgICAgICAgZGVmYXVsdFNpZ25pbmdOYW1lOiBcInNpZ25pblwiLFxuICAgIH0pO1xufTtcbmV4cG9ydCBjb25zdCBjb21tb25QYXJhbXMgPSB7XG4gICAgVXNlRklQUzogeyB0eXBlOiBcImJ1aWx0SW5QYXJhbXNcIiwgbmFtZTogXCJ1c2VGaXBzRW5kcG9pbnRcIiB9LFxuICAgIEVuZHBvaW50OiB7IHR5cGU6IFwiYnVpbHRJblBhcmFtc1wiLCBuYW1lOiBcImVuZHBvaW50XCIgfSxcbiAgICBSZWdpb246IHsgdHlwZTogXCJidWlsdEluUGFyYW1zXCIsIG5hbWU6IFwicmVnaW9uXCIgfSxcbiAgICBVc2VEdWFsU3RhY2s6IHsgdHlwZTogXCJidWlsdEluUGFyYW1zXCIsIG5hbWU6IFwidXNlRHVhbHN0YWNrRW5kcG9pbnRcIiB9LFxufTtcbiIsICJpbXBvcnQgeyBCaW5hcnlEZWNpc2lvbkRpYWdyYW0gfSBmcm9tIFwiQHNtaXRoeS91dGlsLWVuZHBvaW50c1wiO1xuY29uc3QgbSA9IFwicmVmXCI7XG5jb25zdCBhID0gLTEsIGIgPSB0cnVlLCBjID0gXCJpc1NldFwiLCBkID0gXCJQYXJ0aXRpb25SZXN1bHRcIiwgZSA9IFwiYm9vbGVhbkVxdWFsc1wiLCBmID0gXCJnZXRBdHRyXCIsIGcgPSBcInN0cmluZ0VxdWFsc1wiLCBoID0geyBbbV06IFwiRW5kcG9pbnRcIiB9LCBpID0geyBbbV06IGQgfSwgaiA9IHsgZm46IGYsIGFyZ3Y6IFtpLCBcIm5hbWVcIl0gfSwgayA9IHt9LCBsID0gW3sgW21dOiBcIlJlZ2lvblwiIH1dO1xuY29uc3QgX2RhdGEgPSB7XG4gICAgY29uZGl0aW9uczogW1xuICAgICAgICBbYywgW2hdXSxcbiAgICAgICAgW2MsIGxdLFxuICAgICAgICBbXCJhd3MucGFydGl0aW9uXCIsIGwsIGRdLFxuICAgICAgICBbZSwgW3sgW21dOiBcIlVzZUZJUFNcIiB9LCBiXV0sXG4gICAgICAgIFtlLCBbeyBbbV06IFwiVXNlRHVhbFN0YWNrXCIgfSwgYl1dLFxuICAgICAgICBbZSwgW3sgZm46IGYsIGFyZ3Y6IFtpLCBcInN1cHBvcnRzRHVhbFN0YWNrXCJdIH0sIGJdXSxcbiAgICAgICAgW2UsIFt7IGZuOiBmLCBhcmd2OiBbaSwgXCJzdXBwb3J0c0ZJUFNcIl0gfSwgYl1dLFxuICAgICAgICBbZywgW2osIFwiYXdzXCJdXSxcbiAgICAgICAgW2csIFtqLCBcImF3cy1jblwiXV0sXG4gICAgICAgIFtnLCBbaiwgXCJhd3MtdXMtZ292XCJdXSxcbiAgICBdLFxuICAgIHJlc3VsdHM6IFtcbiAgICAgICAgW2FdLFxuICAgICAgICBbYSwgXCJJbnZhbGlkIENvbmZpZ3VyYXRpb246IEZJUFMgYW5kIGN1c3RvbSBlbmRwb2ludCBhcmUgbm90IHN1cHBvcnRlZFwiXSxcbiAgICAgICAgW2EsIFwiSW52YWxpZCBDb25maWd1cmF0aW9uOiBEdWFsc3RhY2sgYW5kIGN1c3RvbSBlbmRwb2ludCBhcmUgbm90IHN1cHBvcnRlZFwiXSxcbiAgICAgICAgW2gsIGtdLFxuICAgICAgICBbXCJodHRwczovL3tSZWdpb259LnNpZ25pbi5hd3MuYW1hem9uLmNvbVwiLCBrXSxcbiAgICAgICAgW1wiaHR0cHM6Ly97UmVnaW9ufS5zaWduaW4uYW1hem9uYXdzLmNuXCIsIGtdLFxuICAgICAgICBbXCJodHRwczovL3tSZWdpb259LnNpZ25pbi5hbWF6b25hd3MtdXMtZ292LmNvbVwiLCBrXSxcbiAgICAgICAgW1wiaHR0cHM6Ly9zaWduaW4tZmlwcy57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2R1YWxTdGFja0Ruc1N1ZmZpeH1cIiwga10sXG4gICAgICAgIFthLCBcIkZJUFMgYW5kIER1YWxTdGFjayBhcmUgZW5hYmxlZCwgYnV0IHRoaXMgcGFydGl0aW9uIGRvZXMgbm90IHN1cHBvcnQgb25lIG9yIGJvdGhcIl0sXG4gICAgICAgIFtcImh0dHBzOi8vc2lnbmluLWZpcHMue1JlZ2lvbn0ue1BhcnRpdGlvblJlc3VsdCNkbnNTdWZmaXh9XCIsIGtdLFxuICAgICAgICBbYSwgXCJGSVBTIGlzIGVuYWJsZWQgYnV0IHRoaXMgcGFydGl0aW9uIGRvZXMgbm90IHN1cHBvcnQgRklQU1wiXSxcbiAgICAgICAgW1wiaHR0cHM6Ly9zaWduaW4ue1JlZ2lvbn0ue1BhcnRpdGlvblJlc3VsdCNkdWFsU3RhY2tEbnNTdWZmaXh9XCIsIGtdLFxuICAgICAgICBbYSwgXCJEdWFsU3RhY2sgaXMgZW5hYmxlZCBidXQgdGhpcyBwYXJ0aXRpb24gZG9lcyBub3Qgc3VwcG9ydCBEdWFsU3RhY2tcIl0sXG4gICAgICAgIFtcImh0dHBzOi8vc2lnbmluLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZG5zU3VmZml4fVwiLCBrXSxcbiAgICAgICAgW2EsIFwiSW52YWxpZCBDb25maWd1cmF0aW9uOiBNaXNzaW5nIFJlZ2lvblwiXSxcbiAgICBdLFxufTtcbmNvbnN0IHJvb3QgPSAyO1xuY29uc3QgciA9IDEwMF8wMDBfMDAwO1xuY29uc3Qgbm9kZXMgPSBuZXcgSW50MzJBcnJheShbXG4gICAgLTEsXG4gICAgMSxcbiAgICAtMSxcbiAgICAwLFxuICAgIDE1LFxuICAgIDMsXG4gICAgMSxcbiAgICA0LFxuICAgIHIgKyAxNCxcbiAgICAyLFxuICAgIDUsXG4gICAgciArIDE0LFxuICAgIDMsXG4gICAgMTEsXG4gICAgNixcbiAgICA0LFxuICAgIDEwLFxuICAgIDcsXG4gICAgNyxcbiAgICByICsgNCxcbiAgICA4LFxuICAgIDgsXG4gICAgciArIDUsXG4gICAgOSxcbiAgICA5LFxuICAgIHIgKyA2LFxuICAgIHIgKyAxMyxcbiAgICA1LFxuICAgIHIgKyAxMSxcbiAgICByICsgMTIsXG4gICAgNCxcbiAgICAxMyxcbiAgICAxMixcbiAgICA2LFxuICAgIHIgKyA5LFxuICAgIHIgKyAxMCxcbiAgICA1LFxuICAgIDE0LFxuICAgIHIgKyA4LFxuICAgIDYsXG4gICAgciArIDcsXG4gICAgciArIDgsXG4gICAgMyxcbiAgICByICsgMSxcbiAgICAxNixcbiAgICA0LFxuICAgIHIgKyAyLFxuICAgIHIgKyAzLFxuXSk7XG5leHBvcnQgY29uc3QgYmRkID0gQmluYXJ5RGVjaXNpb25EaWFncmFtLmZyb20obm9kZXMsIHJvb3QsIF9kYXRhLmNvbmRpdGlvbnMsIF9kYXRhLnJlc3VsdHMpO1xuIiwgImltcG9ydCB7IGF3c0VuZHBvaW50RnVuY3Rpb25zIH0gZnJvbSBcIkBhd3Mtc2RrL3V0aWwtZW5kcG9pbnRzXCI7XG5pbXBvcnQgeyBjdXN0b21FbmRwb2ludEZ1bmN0aW9ucywgZGVjaWRlRW5kcG9pbnQsIEVuZHBvaW50Q2FjaGUgfSBmcm9tIFwiQHNtaXRoeS91dGlsLWVuZHBvaW50c1wiO1xuaW1wb3J0IHsgYmRkIH0gZnJvbSBcIi4vYmRkXCI7XG5jb25zdCBjYWNoZSA9IG5ldyBFbmRwb2ludENhY2hlKHtcbiAgICBzaXplOiA1MCxcbiAgICBwYXJhbXM6IFtcIkVuZHBvaW50XCIsIFwiUmVnaW9uXCIsIFwiVXNlRHVhbFN0YWNrXCIsIFwiVXNlRklQU1wiXSxcbn0pO1xuZXhwb3J0IGNvbnN0IGRlZmF1bHRFbmRwb2ludFJlc29sdmVyID0gKGVuZHBvaW50UGFyYW1zLCBjb250ZXh0ID0ge30pID0+IHtcbiAgICByZXR1cm4gY2FjaGUuZ2V0KGVuZHBvaW50UGFyYW1zLCAoKSA9PiBkZWNpZGVFbmRwb2ludChiZGQsIHtcbiAgICAgICAgZW5kcG9pbnRQYXJhbXM6IGVuZHBvaW50UGFyYW1zLFxuICAgICAgICBsb2dnZXI6IGNvbnRleHQubG9nZ2VyLFxuICAgIH0pKTtcbn07XG5jdXN0b21FbmRwb2ludEZ1bmN0aW9ucy5hd3MgPSBhd3NFbmRwb2ludEZ1bmN0aW9ucztcbiIsICJpbXBvcnQgeyBTZXJ2aWNlRXhjZXB0aW9uIGFzIF9fU2VydmljZUV4Y2VwdGlvbiwgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5leHBvcnQgeyBfX1NlcnZpY2VFeGNlcHRpb24gfTtcbmV4cG9ydCBjbGFzcyBTaWduaW5TZXJ2aWNlRXhjZXB0aW9uIGV4dGVuZHMgX19TZXJ2aWNlRXhjZXB0aW9uIHtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgU2lnbmluU2VydmljZUV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBTaWduaW5TZXJ2aWNlRXhjZXB0aW9uIGFzIF9fQmFzZUV4Y2VwdGlvbiB9IGZyb20gXCIuL1NpZ25pblNlcnZpY2VFeGNlcHRpb25cIjtcbmV4cG9ydCBjbGFzcyBBY2Nlc3NEZW5pZWRFeGNlcHRpb24gZXh0ZW5kcyBfX0Jhc2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIkFjY2Vzc0RlbmllZEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgZXJyb3I7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkFjY2Vzc0RlbmllZEV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBBY2Nlc3NEZW5pZWRFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5lcnJvciA9IG9wdHMuZXJyb3I7XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIEludGVybmFsU2VydmVyRXhjZXB0aW9uIGV4dGVuZHMgX19CYXNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJJbnRlcm5hbFNlcnZlckV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwic2VydmVyXCI7XG4gICAgZXJyb3I7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkludGVybmFsU2VydmVyRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwic2VydmVyXCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEludGVybmFsU2VydmVyRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuZXJyb3IgPSBvcHRzLmVycm9yO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBUb29NYW55UmVxdWVzdHNFcnJvciBleHRlbmRzIF9fQmFzZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiVG9vTWFueVJlcXVlc3RzRXJyb3JcIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGVycm9yO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJUb29NYW55UmVxdWVzdHNFcnJvclwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBUb29NYW55UmVxdWVzdHNFcnJvci5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLmVycm9yID0gb3B0cy5lcnJvcjtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgVmFsaWRhdGlvbkV4Y2VwdGlvbiBleHRlbmRzIF9fQmFzZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiVmFsaWRhdGlvbkV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgZXJyb3I7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIlZhbGlkYXRpb25FeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgVmFsaWRhdGlvbkV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLmVycm9yID0gb3B0cy5lcnJvcjtcbiAgICB9XG59XG4iLCAiY29uc3QgX0FERSA9IFwiQWNjZXNzRGVuaWVkRXhjZXB0aW9uXCI7XG5jb25zdCBfQVQgPSBcIkFjY2Vzc1Rva2VuXCI7XG5jb25zdCBfQ09BVCA9IFwiQ3JlYXRlT0F1dGgyVG9rZW5cIjtcbmNvbnN0IF9DT0FUUiA9IFwiQ3JlYXRlT0F1dGgyVG9rZW5SZXF1ZXN0XCI7XG5jb25zdCBfQ09BVFJCID0gXCJDcmVhdGVPQXV0aDJUb2tlblJlcXVlc3RCb2R5XCI7XG5jb25zdCBfQ09BVFJCciA9IFwiQ3JlYXRlT0F1dGgyVG9rZW5SZXNwb25zZUJvZHlcIjtcbmNvbnN0IF9DT0FUUnIgPSBcIkNyZWF0ZU9BdXRoMlRva2VuUmVzcG9uc2VcIjtcbmNvbnN0IF9JU0UgPSBcIkludGVybmFsU2VydmVyRXhjZXB0aW9uXCI7XG5jb25zdCBfUlQgPSBcIlJlZnJlc2hUb2tlblwiO1xuY29uc3QgX1RNUkUgPSBcIlRvb01hbnlSZXF1ZXN0c0Vycm9yXCI7XG5jb25zdCBfVkUgPSBcIlZhbGlkYXRpb25FeGNlcHRpb25cIjtcbmNvbnN0IF9hS0kgPSBcImFjY2Vzc0tleUlkXCI7XG5jb25zdCBfYVQgPSBcImFjY2Vzc1Rva2VuXCI7XG5jb25zdCBfYyA9IFwiY2xpZW50XCI7XG5jb25zdCBfY0kgPSBcImNsaWVudElkXCI7XG5jb25zdCBfY1YgPSBcImNvZGVWZXJpZmllclwiO1xuY29uc3QgX2NvID0gXCJjb2RlXCI7XG5jb25zdCBfZSA9IFwiZXJyb3JcIjtcbmNvbnN0IF9lSSA9IFwiZXhwaXJlc0luXCI7XG5jb25zdCBfZ1QgPSBcImdyYW50VHlwZVwiO1xuY29uc3QgX2ggPSBcImh0dHBcIjtcbmNvbnN0IF9oRSA9IFwiaHR0cEVycm9yXCI7XG5jb25zdCBfaVQgPSBcImlkVG9rZW5cIjtcbmNvbnN0IF9qTiA9IFwianNvbk5hbWVcIjtcbmNvbnN0IF9tID0gXCJtZXNzYWdlXCI7XG5jb25zdCBfclQgPSBcInJlZnJlc2hUb2tlblwiO1xuY29uc3QgX3JVID0gXCJyZWRpcmVjdFVyaVwiO1xuY29uc3QgX3MgPSBcInNtaXRoeS50cy5zZGsuc3ludGhldGljLmNvbS5hbWF6b25hd3Muc2lnbmluXCI7XG5jb25zdCBfc0FLID0gXCJzZWNyZXRBY2Nlc3NLZXlcIjtcbmNvbnN0IF9zVCA9IFwic2Vzc2lvblRva2VuXCI7XG5jb25zdCBfc2UgPSBcInNlcnZlclwiO1xuY29uc3QgX3RJID0gXCJ0b2tlbklucHV0XCI7XG5jb25zdCBfdE8gPSBcInRva2VuT3V0cHV0XCI7XG5jb25zdCBfdFQgPSBcInRva2VuVHlwZVwiO1xuY29uc3QgbjAgPSBcImNvbS5hbWF6b25hd3Muc2lnbmluXCI7XG5pbXBvcnQgeyBUeXBlUmVnaXN0cnkgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3NjaGVtYVwiO1xuaW1wb3J0IHsgQWNjZXNzRGVuaWVkRXhjZXB0aW9uLCBJbnRlcm5hbFNlcnZlckV4Y2VwdGlvbiwgVG9vTWFueVJlcXVlc3RzRXJyb3IsIFZhbGlkYXRpb25FeGNlcHRpb24sIH0gZnJvbSBcIi4uL21vZGVscy9lcnJvcnNcIjtcbmltcG9ydCB7IFNpZ25pblNlcnZpY2VFeGNlcHRpb24gfSBmcm9tIFwiLi4vbW9kZWxzL1NpZ25pblNlcnZpY2VFeGNlcHRpb25cIjtcbmNvbnN0IF9zX3JlZ2lzdHJ5ID0gVHlwZVJlZ2lzdHJ5LmZvcihfcyk7XG5leHBvcnQgdmFyIFNpZ25pblNlcnZpY2VFeGNlcHRpb24kID0gWy0zLCBfcywgXCJTaWduaW5TZXJ2aWNlRXhjZXB0aW9uXCIsIDAsIFtdLCBbXV07XG5fc19yZWdpc3RyeS5yZWdpc3RlckVycm9yKFNpZ25pblNlcnZpY2VFeGNlcHRpb24kLCBTaWduaW5TZXJ2aWNlRXhjZXB0aW9uKTtcbmNvbnN0IG4wX3JlZ2lzdHJ5ID0gVHlwZVJlZ2lzdHJ5LmZvcihuMCk7XG5leHBvcnQgdmFyIEFjY2Vzc0RlbmllZEV4Y2VwdGlvbiQgPSBbLTMsIG4wLCBfQURFLCB7IFtfZV06IF9jIH0sIFtfZSwgX21dLCBbMCwgMF0sIDJdO1xubjBfcmVnaXN0cnkucmVnaXN0ZXJFcnJvcihBY2Nlc3NEZW5pZWRFeGNlcHRpb24kLCBBY2Nlc3NEZW5pZWRFeGNlcHRpb24pO1xuZXhwb3J0IHZhciBJbnRlcm5hbFNlcnZlckV4Y2VwdGlvbiQgPSBbLTMsIG4wLCBfSVNFLCB7IFtfZV06IF9zZSwgW19oRV06IDUwMCB9LCBbX2UsIF9tXSwgWzAsIDBdLCAyXTtcbm4wX3JlZ2lzdHJ5LnJlZ2lzdGVyRXJyb3IoSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb24kLCBJbnRlcm5hbFNlcnZlckV4Y2VwdGlvbik7XG5leHBvcnQgdmFyIFRvb01hbnlSZXF1ZXN0c0Vycm9yJCA9IFstMywgbjAsIF9UTVJFLCB7IFtfZV06IF9jLCBbX2hFXTogNDI5IH0sIFtfZSwgX21dLCBbMCwgMF0sIDJdO1xubjBfcmVnaXN0cnkucmVnaXN0ZXJFcnJvcihUb29NYW55UmVxdWVzdHNFcnJvciQsIFRvb01hbnlSZXF1ZXN0c0Vycm9yKTtcbmV4cG9ydCB2YXIgVmFsaWRhdGlvbkV4Y2VwdGlvbiQgPSBbLTMsIG4wLCBfVkUsIHsgW19lXTogX2MsIFtfaEVdOiA0MDAgfSwgW19lLCBfbV0sIFswLCAwXSwgMl07XG5uMF9yZWdpc3RyeS5yZWdpc3RlckVycm9yKFZhbGlkYXRpb25FeGNlcHRpb24kLCBWYWxpZGF0aW9uRXhjZXB0aW9uKTtcbmV4cG9ydCBjb25zdCBlcnJvclR5cGVSZWdpc3RyaWVzID0gW19zX3JlZ2lzdHJ5LCBuMF9yZWdpc3RyeV07XG52YXIgUmVmcmVzaFRva2VuID0gWzAsIG4wLCBfUlQsIDgsIDBdO1xuZXhwb3J0IHZhciBBY2Nlc3NUb2tlbiQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfQVQsXG4gICAgOCxcbiAgICBbX2FLSSwgX3NBSywgX3NUXSxcbiAgICBbXG4gICAgICAgIFswLCB7IFtfak5dOiBfYUtJIH1dLFxuICAgICAgICBbMCwgeyBbX2pOXTogX3NBSyB9XSxcbiAgICAgICAgWzAsIHsgW19qTl06IF9zVCB9XSxcbiAgICBdLFxuICAgIDMsXG5dO1xuZXhwb3J0IHZhciBDcmVhdGVPQXV0aDJUb2tlblJlcXVlc3QkID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0NPQVRSLFxuICAgIDAsXG4gICAgW190SV0sXG4gICAgW1soKSA9PiBDcmVhdGVPQXV0aDJUb2tlblJlcXVlc3RCb2R5JCwgMTZdXSxcbiAgICAxLFxuXTtcbmV4cG9ydCB2YXIgQ3JlYXRlT0F1dGgyVG9rZW5SZXF1ZXN0Qm9keSQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfQ09BVFJCLFxuICAgIDAsXG4gICAgW19jSSwgX2dULCBfY28sIF9yVSwgX2NWLCBfclRdLFxuICAgIFtcbiAgICAgICAgWzAsIHsgW19qTl06IF9jSSB9XSxcbiAgICAgICAgWzAsIHsgW19qTl06IF9nVCB9XSxcbiAgICAgICAgMCxcbiAgICAgICAgWzAsIHsgW19qTl06IF9yVSB9XSxcbiAgICAgICAgWzAsIHsgW19qTl06IF9jViB9XSxcbiAgICAgICAgWygpID0+IFJlZnJlc2hUb2tlbiwgeyBbX2pOXTogX3JUIH1dLFxuICAgIF0sXG4gICAgMixcbl07XG5leHBvcnQgdmFyIENyZWF0ZU9BdXRoMlRva2VuUmVzcG9uc2UkID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0NPQVRScixcbiAgICAwLFxuICAgIFtfdE9dLFxuICAgIFtbKCkgPT4gQ3JlYXRlT0F1dGgyVG9rZW5SZXNwb25zZUJvZHkkLCAxNl1dLFxuICAgIDEsXG5dO1xuZXhwb3J0IHZhciBDcmVhdGVPQXV0aDJUb2tlblJlc3BvbnNlQm9keSQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfQ09BVFJCcixcbiAgICAwLFxuICAgIFtfYVQsIF90VCwgX2VJLCBfclQsIF9pVF0sXG4gICAgW1xuICAgICAgICBbKCkgPT4gQWNjZXNzVG9rZW4kLCB7IFtfak5dOiBfYVQgfV0sXG4gICAgICAgIFswLCB7IFtfak5dOiBfdFQgfV0sXG4gICAgICAgIFsxLCB7IFtfak5dOiBfZUkgfV0sXG4gICAgICAgIFsoKSA9PiBSZWZyZXNoVG9rZW4sIHsgW19qTl06IF9yVCB9XSxcbiAgICAgICAgWzAsIHsgW19qTl06IF9pVCB9XSxcbiAgICBdLFxuICAgIDQsXG5dO1xuZXhwb3J0IHZhciBDcmVhdGVPQXV0aDJUb2tlbiQgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfQ09BVCxcbiAgICB7IFtfaF06IFtcIlBPU1RcIiwgXCIvdjEvdG9rZW5cIiwgMjAwXSB9LFxuICAgICgpID0+IENyZWF0ZU9BdXRoMlRva2VuUmVxdWVzdCQsXG4gICAgKCkgPT4gQ3JlYXRlT0F1dGgyVG9rZW5SZXNwb25zZSQsXG5dO1xuIiwgImltcG9ydCB7IEF3c1Nka1NpZ1Y0U2lnbmVyIH0gZnJvbSBcIkBhd3Mtc2RrL2NvcmUvaHR0cEF1dGhTY2hlbWVzXCI7XG5pbXBvcnQgeyBBd3NSZXN0SnNvblByb3RvY29sIH0gZnJvbSBcIkBhd3Mtc2RrL2NvcmUvcHJvdG9jb2xzXCI7XG5pbXBvcnQgeyBOb0F1dGhTaWduZXIgfSBmcm9tIFwiQHNtaXRoeS9jb3JlXCI7XG5pbXBvcnQgeyBOb09wTG9nZ2VyIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgcGFyc2VVcmwgfSBmcm9tIFwiQHNtaXRoeS91cmwtcGFyc2VyXCI7XG5pbXBvcnQgeyBmcm9tQmFzZTY0LCB0b0Jhc2U2NCB9IGZyb20gXCJAc21pdGh5L3V0aWwtYmFzZTY0XCI7XG5pbXBvcnQgeyBmcm9tVXRmOCwgdG9VdGY4IH0gZnJvbSBcIkBzbWl0aHkvdXRpbC11dGY4XCI7XG5pbXBvcnQgeyBkZWZhdWx0U2lnbmluSHR0cEF1dGhTY2hlbWVQcm92aWRlciB9IGZyb20gXCIuL2F1dGgvaHR0cEF1dGhTY2hlbWVQcm92aWRlclwiO1xuaW1wb3J0IHsgZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIgfSBmcm9tIFwiLi9lbmRwb2ludC9lbmRwb2ludFJlc29sdmVyXCI7XG5pbXBvcnQgeyBlcnJvclR5cGVSZWdpc3RyaWVzIH0gZnJvbSBcIi4vc2NoZW1hcy9zY2hlbWFzXzBcIjtcbmV4cG9ydCBjb25zdCBnZXRSdW50aW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIGFwaVZlcnNpb246IFwiMjAyMy0wMS0wMVwiLFxuICAgICAgICBiYXNlNjREZWNvZGVyOiBjb25maWc/LmJhc2U2NERlY29kZXIgPz8gZnJvbUJhc2U2NCxcbiAgICAgICAgYmFzZTY0RW5jb2RlcjogY29uZmlnPy5iYXNlNjRFbmNvZGVyID8/IHRvQmFzZTY0LFxuICAgICAgICBkaXNhYmxlSG9zdFByZWZpeDogY29uZmlnPy5kaXNhYmxlSG9zdFByZWZpeCA/PyBmYWxzZSxcbiAgICAgICAgZW5kcG9pbnRQcm92aWRlcjogY29uZmlnPy5lbmRwb2ludFByb3ZpZGVyID8/IGRlZmF1bHRFbmRwb2ludFJlc29sdmVyLFxuICAgICAgICBleHRlbnNpb25zOiBjb25maWc/LmV4dGVuc2lvbnMgPz8gW10sXG4gICAgICAgIGh0dHBBdXRoU2NoZW1lUHJvdmlkZXI6IGNvbmZpZz8uaHR0cEF1dGhTY2hlbWVQcm92aWRlciA/PyBkZWZhdWx0U2lnbmluSHR0cEF1dGhTY2hlbWVQcm92aWRlcixcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVzOiBjb25maWc/Lmh0dHBBdXRoU2NoZW1lcyA/PyBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgc2NoZW1lSWQ6IFwiYXdzLmF1dGgjc2lndjRcIixcbiAgICAgICAgICAgICAgICBpZGVudGl0eVByb3ZpZGVyOiAoaXBjKSA9PiBpcGMuZ2V0SWRlbnRpdHlQcm92aWRlcihcImF3cy5hdXRoI3NpZ3Y0XCIpLFxuICAgICAgICAgICAgICAgIHNpZ25lcjogbmV3IEF3c1Nka1NpZ1Y0U2lnbmVyKCksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHNjaGVtZUlkOiBcInNtaXRoeS5hcGkjbm9BdXRoXCIsXG4gICAgICAgICAgICAgICAgaWRlbnRpdHlQcm92aWRlcjogKGlwYykgPT4gaXBjLmdldElkZW50aXR5UHJvdmlkZXIoXCJzbWl0aHkuYXBpI25vQXV0aFwiKSB8fCAoYXN5bmMgKCkgPT4gKHt9KSksXG4gICAgICAgICAgICAgICAgc2lnbmVyOiBuZXcgTm9BdXRoU2lnbmVyKCksXG4gICAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBsb2dnZXI6IGNvbmZpZz8ubG9nZ2VyID8/IG5ldyBOb09wTG9nZ2VyKCksXG4gICAgICAgIHByb3RvY29sOiBjb25maWc/LnByb3RvY29sID8/IEF3c1Jlc3RKc29uUHJvdG9jb2wsXG4gICAgICAgIHByb3RvY29sU2V0dGluZ3M6IGNvbmZpZz8ucHJvdG9jb2xTZXR0aW5ncyA/PyB7XG4gICAgICAgICAgICBkZWZhdWx0TmFtZXNwYWNlOiBcImNvbS5hbWF6b25hd3Muc2lnbmluXCIsXG4gICAgICAgICAgICBlcnJvclR5cGVSZWdpc3RyaWVzLFxuICAgICAgICAgICAgdmVyc2lvbjogXCIyMDIzLTAxLTAxXCIsXG4gICAgICAgICAgICBzZXJ2aWNlVGFyZ2V0OiBcIlNpZ25pblwiLFxuICAgICAgICB9LFxuICAgICAgICBzZXJ2aWNlSWQ6IGNvbmZpZz8uc2VydmljZUlkID8/IFwiU2lnbmluXCIsXG4gICAgICAgIHVybFBhcnNlcjogY29uZmlnPy51cmxQYXJzZXIgPz8gcGFyc2VVcmwsXG4gICAgICAgIHV0ZjhEZWNvZGVyOiBjb25maWc/LnV0ZjhEZWNvZGVyID8/IGZyb21VdGY4LFxuICAgICAgICB1dGY4RW5jb2RlcjogY29uZmlnPy51dGY4RW5jb2RlciA/PyB0b1V0ZjgsXG4gICAgfTtcbn07XG4iLCAiaW1wb3J0IHBhY2thZ2VJbmZvIGZyb20gXCIuLi8uLi8uLi9wYWNrYWdlLmpzb25cIjtcbmltcG9ydCB7IGVtaXRXYXJuaW5nSWZVbnN1cHBvcnRlZFZlcnNpb24gYXMgYXdzQ2hlY2tWZXJzaW9uIH0gZnJvbSBcIkBhd3Mtc2RrL2NvcmUvY2xpZW50XCI7XG5pbXBvcnQgeyBOT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfT1BUSU9OUyB9IGZyb20gXCJAYXdzLXNkay9jb3JlL2h0dHBBdXRoU2NoZW1lc1wiO1xuaW1wb3J0IHsgY3JlYXRlRGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyLCBOT0RFX0FQUF9JRF9DT05GSUdfT1BUSU9OUyB9IGZyb20gXCJAYXdzLXNkay91dGlsLXVzZXItYWdlbnQtbm9kZVwiO1xuaW1wb3J0IHsgTk9ERV9SRUdJT05fQ09ORklHX0ZJTEVfT1BUSU9OUywgTk9ERV9SRUdJT05fQ09ORklHX09QVElPTlMsIE5PREVfVVNFX0RVQUxTVEFDS19FTkRQT0lOVF9DT05GSUdfT1BUSU9OUywgTk9ERV9VU0VfRklQU19FTkRQT0lOVF9DT05GSUdfT1BUSU9OUywgfSBmcm9tIFwiQHNtaXRoeS9jb25maWctcmVzb2x2ZXJcIjtcbmltcG9ydCB7IEhhc2ggfSBmcm9tIFwiQHNtaXRoeS9oYXNoLW5vZGVcIjtcbmltcG9ydCB7IE5PREVfTUFYX0FUVEVNUFRfQ09ORklHX09QVElPTlMsIE5PREVfUkVUUllfTU9ERV9DT05GSUdfT1BUSU9OUyB9IGZyb20gXCJAc21pdGh5L21pZGRsZXdhcmUtcmV0cnlcIjtcbmltcG9ydCB7IGxvYWRDb25maWcgYXMgbG9hZE5vZGVDb25maWcgfSBmcm9tIFwiQHNtaXRoeS9ub2RlLWNvbmZpZy1wcm92aWRlclwiO1xuaW1wb3J0IHsgTm9kZUh0dHBIYW5kbGVyIGFzIFJlcXVlc3RIYW5kbGVyLCBzdHJlYW1Db2xsZWN0b3IgfSBmcm9tIFwiQHNtaXRoeS9ub2RlLWh0dHAtaGFuZGxlclwiO1xuaW1wb3J0IHsgZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbiwgbG9hZENvbmZpZ3NGb3JEZWZhdWx0TW9kZSB9IGZyb20gXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjtcbmltcG9ydCB7IGNhbGN1bGF0ZUJvZHlMZW5ndGggfSBmcm9tIFwiQHNtaXRoeS91dGlsLWJvZHktbGVuZ3RoLW5vZGVcIjtcbmltcG9ydCB7IHJlc29sdmVEZWZhdWx0c01vZGVDb25maWcgfSBmcm9tIFwiQHNtaXRoeS91dGlsLWRlZmF1bHRzLW1vZGUtbm9kZVwiO1xuaW1wb3J0IHsgREVGQVVMVF9SRVRSWV9NT0RFIH0gZnJvbSBcIkBzbWl0aHkvdXRpbC1yZXRyeVwiO1xuaW1wb3J0IHsgZ2V0UnVudGltZUNvbmZpZyBhcyBnZXRTaGFyZWRSdW50aW1lQ29uZmlnIH0gZnJvbSBcIi4vcnVudGltZUNvbmZpZy5zaGFyZWRcIjtcbmV4cG9ydCBjb25zdCBnZXRSdW50aW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIGVtaXRXYXJuaW5nSWZVbnN1cHBvcnRlZFZlcnNpb24ocHJvY2Vzcy52ZXJzaW9uKTtcbiAgICBjb25zdCBkZWZhdWx0c01vZGUgPSByZXNvbHZlRGVmYXVsdHNNb2RlQ29uZmlnKGNvbmZpZyk7XG4gICAgY29uc3QgZGVmYXVsdENvbmZpZ1Byb3ZpZGVyID0gKCkgPT4gZGVmYXVsdHNNb2RlKCkudGhlbihsb2FkQ29uZmlnc0ZvckRlZmF1bHRNb2RlKTtcbiAgICBjb25zdCBjbGllbnRTaGFyZWRWYWx1ZXMgPSBnZXRTaGFyZWRSdW50aW1lQ29uZmlnKGNvbmZpZyk7XG4gICAgYXdzQ2hlY2tWZXJzaW9uKHByb2Nlc3MudmVyc2lvbik7XG4gICAgY29uc3QgbG9hZGVyQ29uZmlnID0ge1xuICAgICAgICBwcm9maWxlOiBjb25maWc/LnByb2ZpbGUsXG4gICAgICAgIGxvZ2dlcjogY2xpZW50U2hhcmVkVmFsdWVzLmxvZ2dlcixcbiAgICB9O1xuICAgIHJldHVybiB7XG4gICAgICAgIC4uLmNsaWVudFNoYXJlZFZhbHVlcyxcbiAgICAgICAgLi4uY29uZmlnLFxuICAgICAgICBydW50aW1lOiBcIm5vZGVcIixcbiAgICAgICAgZGVmYXVsdHNNb2RlLFxuICAgICAgICBhdXRoU2NoZW1lUHJlZmVyZW5jZTogY29uZmlnPy5hdXRoU2NoZW1lUHJlZmVyZW5jZSA/PyBsb2FkTm9kZUNvbmZpZyhOT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfT1BUSU9OUywgbG9hZGVyQ29uZmlnKSxcbiAgICAgICAgYm9keUxlbmd0aENoZWNrZXI6IGNvbmZpZz8uYm9keUxlbmd0aENoZWNrZXIgPz8gY2FsY3VsYXRlQm9keUxlbmd0aCxcbiAgICAgICAgZGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyOiBjb25maWc/LmRlZmF1bHRVc2VyQWdlbnRQcm92aWRlciA/P1xuICAgICAgICAgICAgY3JlYXRlRGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyKHsgc2VydmljZUlkOiBjbGllbnRTaGFyZWRWYWx1ZXMuc2VydmljZUlkLCBjbGllbnRWZXJzaW9uOiBwYWNrYWdlSW5mby52ZXJzaW9uIH0pLFxuICAgICAgICBtYXhBdHRlbXB0czogY29uZmlnPy5tYXhBdHRlbXB0cyA/PyBsb2FkTm9kZUNvbmZpZyhOT0RFX01BWF9BVFRFTVBUX0NPTkZJR19PUFRJT05TLCBjb25maWcpLFxuICAgICAgICByZWdpb246IGNvbmZpZz8ucmVnaW9uID8/XG4gICAgICAgICAgICBsb2FkTm9kZUNvbmZpZyhOT0RFX1JFR0lPTl9DT05GSUdfT1BUSU9OUywgeyAuLi5OT0RFX1JFR0lPTl9DT05GSUdfRklMRV9PUFRJT05TLCAuLi5sb2FkZXJDb25maWcgfSksXG4gICAgICAgIHJlcXVlc3RIYW5kbGVyOiBSZXF1ZXN0SGFuZGxlci5jcmVhdGUoY29uZmlnPy5yZXF1ZXN0SGFuZGxlciA/PyBkZWZhdWx0Q29uZmlnUHJvdmlkZXIpLFxuICAgICAgICByZXRyeU1vZGU6IGNvbmZpZz8ucmV0cnlNb2RlID8/XG4gICAgICAgICAgICBsb2FkTm9kZUNvbmZpZyh7XG4gICAgICAgICAgICAgICAgLi4uTk9ERV9SRVRSWV9NT0RFX0NPTkZJR19PUFRJT05TLFxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IGFzeW5jICgpID0+IChhd2FpdCBkZWZhdWx0Q29uZmlnUHJvdmlkZXIoKSkucmV0cnlNb2RlIHx8IERFRkFVTFRfUkVUUllfTU9ERSxcbiAgICAgICAgICAgIH0sIGNvbmZpZyksXG4gICAgICAgIHNoYTI1NjogY29uZmlnPy5zaGEyNTYgPz8gSGFzaC5iaW5kKG51bGwsIFwic2hhMjU2XCIpLFxuICAgICAgICBzdHJlYW1Db2xsZWN0b3I6IGNvbmZpZz8uc3RyZWFtQ29sbGVjdG9yID8/IHN0cmVhbUNvbGxlY3RvcixcbiAgICAgICAgdXNlRHVhbHN0YWNrRW5kcG9pbnQ6IGNvbmZpZz8udXNlRHVhbHN0YWNrRW5kcG9pbnQgPz8gbG9hZE5vZGVDb25maWcoTk9ERV9VU0VfRFVBTFNUQUNLX0VORFBPSU5UX0NPTkZJR19PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgICAgICB1c2VGaXBzRW5kcG9pbnQ6IGNvbmZpZz8udXNlRmlwc0VuZHBvaW50ID8/IGxvYWROb2RlQ29uZmlnKE5PREVfVVNFX0ZJUFNfRU5EUE9JTlRfQ09ORklHX09QVElPTlMsIGxvYWRlckNvbmZpZyksXG4gICAgICAgIHVzZXJBZ2VudEFwcElkOiBjb25maWc/LnVzZXJBZ2VudEFwcElkID8/IGxvYWROb2RlQ29uZmlnKE5PREVfQVBQX0lEX0NPTkZJR19PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgIH07XG59O1xuIiwgImV4cG9ydCBjb25zdCBnZXRIdHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24gPSAocnVudGltZUNvbmZpZykgPT4ge1xuICAgIGNvbnN0IF9odHRwQXV0aFNjaGVtZXMgPSBydW50aW1lQ29uZmlnLmh0dHBBdXRoU2NoZW1lcztcbiAgICBsZXQgX2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSBydW50aW1lQ29uZmlnLmh0dHBBdXRoU2NoZW1lUHJvdmlkZXI7XG4gICAgbGV0IF9jcmVkZW50aWFscyA9IHJ1bnRpbWVDb25maWcuY3JlZGVudGlhbHM7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc2V0SHR0cEF1dGhTY2hlbWUoaHR0cEF1dGhTY2hlbWUpIHtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gX2h0dHBBdXRoU2NoZW1lcy5maW5kSW5kZXgoKHNjaGVtZSkgPT4gc2NoZW1lLnNjaGVtZUlkID09PSBodHRwQXV0aFNjaGVtZS5zY2hlbWVJZCk7XG4gICAgICAgICAgICBpZiAoaW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgX2h0dHBBdXRoU2NoZW1lcy5wdXNoKGh0dHBBdXRoU2NoZW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIF9odHRwQXV0aFNjaGVtZXMuc3BsaWNlKGluZGV4LCAxLCBodHRwQXV0aFNjaGVtZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGh0dHBBdXRoU2NoZW1lcygpIHtcbiAgICAgICAgICAgIHJldHVybiBfaHR0cEF1dGhTY2hlbWVzO1xuICAgICAgICB9LFxuICAgICAgICBzZXRIdHRwQXV0aFNjaGVtZVByb3ZpZGVyKGh0dHBBdXRoU2NoZW1lUHJvdmlkZXIpIHtcbiAgICAgICAgICAgIF9odHRwQXV0aFNjaGVtZVByb3ZpZGVyID0gaHR0cEF1dGhTY2hlbWVQcm92aWRlcjtcbiAgICAgICAgfSxcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVQcm92aWRlcigpIHtcbiAgICAgICAgICAgIHJldHVybiBfaHR0cEF1dGhTY2hlbWVQcm92aWRlcjtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0Q3JlZGVudGlhbHMoY3JlZGVudGlhbHMpIHtcbiAgICAgICAgICAgIF9jcmVkZW50aWFscyA9IGNyZWRlbnRpYWxzO1xuICAgICAgICB9LFxuICAgICAgICBjcmVkZW50aWFscygpIHtcbiAgICAgICAgICAgIHJldHVybiBfY3JlZGVudGlhbHM7XG4gICAgICAgIH0sXG4gICAgfTtcbn07XG5leHBvcnQgY29uc3QgcmVzb2x2ZUh0dHBBdXRoUnVudGltZUNvbmZpZyA9IChjb25maWcpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgICBodHRwQXV0aFNjaGVtZXM6IGNvbmZpZy5odHRwQXV0aFNjaGVtZXMoKSxcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVQcm92aWRlcjogY29uZmlnLmh0dHBBdXRoU2NoZW1lUHJvdmlkZXIoKSxcbiAgICAgICAgY3JlZGVudGlhbHM6IGNvbmZpZy5jcmVkZW50aWFscygpLFxuICAgIH07XG59O1xuIiwgImltcG9ydCB7IGdldEF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24sIHJlc29sdmVBd3NSZWdpb25FeHRlbnNpb25Db25maWd1cmF0aW9uLCB9IGZyb20gXCJAYXdzLXNkay9yZWdpb24tY29uZmlnLXJlc29sdmVyXCI7XG5pbXBvcnQgeyBnZXRIdHRwSGFuZGxlckV4dGVuc2lvbkNvbmZpZ3VyYXRpb24sIHJlc29sdmVIdHRwSGFuZGxlclJ1bnRpbWVDb25maWcgfSBmcm9tIFwiQHNtaXRoeS9wcm90b2NvbC1odHRwXCI7XG5pbXBvcnQgeyBnZXREZWZhdWx0RXh0ZW5zaW9uQ29uZmlndXJhdGlvbiwgcmVzb2x2ZURlZmF1bHRSdW50aW1lQ29uZmlnIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgZ2V0SHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uLCByZXNvbHZlSHR0cEF1dGhSdW50aW1lQ29uZmlnIH0gZnJvbSBcIi4vYXV0aC9odHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb25cIjtcbmV4cG9ydCBjb25zdCByZXNvbHZlUnVudGltZUV4dGVuc2lvbnMgPSAocnVudGltZUNvbmZpZywgZXh0ZW5zaW9ucykgPT4ge1xuICAgIGNvbnN0IGV4dGVuc2lvbkNvbmZpZ3VyYXRpb24gPSBPYmplY3QuYXNzaWduKGdldEF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24ocnVudGltZUNvbmZpZyksIGdldERlZmF1bHRFeHRlbnNpb25Db25maWd1cmF0aW9uKHJ1bnRpbWVDb25maWcpLCBnZXRIdHRwSGFuZGxlckV4dGVuc2lvbkNvbmZpZ3VyYXRpb24ocnVudGltZUNvbmZpZyksIGdldEh0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbihydW50aW1lQ29uZmlnKSk7XG4gICAgZXh0ZW5zaW9ucy5mb3JFYWNoKChleHRlbnNpb24pID0+IGV4dGVuc2lvbi5jb25maWd1cmUoZXh0ZW5zaW9uQ29uZmlndXJhdGlvbikpO1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHJ1bnRpbWVDb25maWcsIHJlc29sdmVBd3NSZWdpb25FeHRlbnNpb25Db25maWd1cmF0aW9uKGV4dGVuc2lvbkNvbmZpZ3VyYXRpb24pLCByZXNvbHZlRGVmYXVsdFJ1bnRpbWVDb25maWcoZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiksIHJlc29sdmVIdHRwSGFuZGxlclJ1bnRpbWVDb25maWcoZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiksIHJlc29sdmVIdHRwQXV0aFJ1bnRpbWVDb25maWcoZXh0ZW5zaW9uQ29uZmlndXJhdGlvbikpO1xufTtcbiIsICJpbXBvcnQgeyBnZXRIb3N0SGVhZGVyUGx1Z2luLCByZXNvbHZlSG9zdEhlYWRlckNvbmZpZywgfSBmcm9tIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1ob3N0LWhlYWRlclwiO1xuaW1wb3J0IHsgZ2V0TG9nZ2VyUGx1Z2luIH0gZnJvbSBcIkBhd3Mtc2RrL21pZGRsZXdhcmUtbG9nZ2VyXCI7XG5pbXBvcnQgeyBnZXRSZWN1cnNpb25EZXRlY3Rpb25QbHVnaW4gfSBmcm9tIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1yZWN1cnNpb24tZGV0ZWN0aW9uXCI7XG5pbXBvcnQgeyBnZXRVc2VyQWdlbnRQbHVnaW4sIHJlc29sdmVVc2VyQWdlbnRDb25maWcsIH0gZnJvbSBcIkBhd3Mtc2RrL21pZGRsZXdhcmUtdXNlci1hZ2VudFwiO1xuaW1wb3J0IHsgcmVzb2x2ZVJlZ2lvbkNvbmZpZyB9IGZyb20gXCJAc21pdGh5L2NvbmZpZy1yZXNvbHZlclwiO1xuaW1wb3J0IHsgRGVmYXVsdElkZW50aXR5UHJvdmlkZXJDb25maWcsIGdldEh0dHBBdXRoU2NoZW1lRW5kcG9pbnRSdWxlU2V0UGx1Z2luLCBnZXRIdHRwU2lnbmluZ1BsdWdpbiwgfSBmcm9tIFwiQHNtaXRoeS9jb3JlXCI7XG5pbXBvcnQgeyBnZXRTY2hlbWFTZXJkZVBsdWdpbiB9IGZyb20gXCJAc21pdGh5L2NvcmUvc2NoZW1hXCI7XG5pbXBvcnQgeyBnZXRDb250ZW50TGVuZ3RoUGx1Z2luIH0gZnJvbSBcIkBzbWl0aHkvbWlkZGxld2FyZS1jb250ZW50LWxlbmd0aFwiO1xuaW1wb3J0IHsgcmVzb2x2ZUVuZHBvaW50Q29uZmlnLCB9IGZyb20gXCJAc21pdGh5L21pZGRsZXdhcmUtZW5kcG9pbnRcIjtcbmltcG9ydCB7IGdldFJldHJ5UGx1Z2luLCByZXNvbHZlUmV0cnlDb25maWcsIH0gZnJvbSBcIkBzbWl0aHkvbWlkZGxld2FyZS1yZXRyeVwiO1xuaW1wb3J0IHsgQ2xpZW50IGFzIF9fQ2xpZW50LCB9IGZyb20gXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjtcbmltcG9ydCB7IGRlZmF1bHRTaWduaW5IdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlciwgcmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnLCB9IGZyb20gXCIuL2F1dGgvaHR0cEF1dGhTY2hlbWVQcm92aWRlclwiO1xuaW1wb3J0IHsgcmVzb2x2ZUNsaWVudEVuZHBvaW50UGFyYW1ldGVycywgfSBmcm9tIFwiLi9lbmRwb2ludC9FbmRwb2ludFBhcmFtZXRlcnNcIjtcbmltcG9ydCB7IGdldFJ1bnRpbWVDb25maWcgYXMgX19nZXRSdW50aW1lQ29uZmlnIH0gZnJvbSBcIi4vcnVudGltZUNvbmZpZ1wiO1xuaW1wb3J0IHsgcmVzb2x2ZVJ1bnRpbWVFeHRlbnNpb25zIH0gZnJvbSBcIi4vcnVudGltZUV4dGVuc2lvbnNcIjtcbmV4cG9ydCB7IF9fQ2xpZW50IH07XG5leHBvcnQgY2xhc3MgU2lnbmluQ2xpZW50IGV4dGVuZHMgX19DbGllbnQge1xuICAgIGNvbmZpZztcbiAgICBjb25zdHJ1Y3RvciguLi5bY29uZmlndXJhdGlvbl0pIHtcbiAgICAgICAgY29uc3QgX2NvbmZpZ18wID0gX19nZXRSdW50aW1lQ29uZmlnKGNvbmZpZ3VyYXRpb24gfHwge30pO1xuICAgICAgICBzdXBlcihfY29uZmlnXzApO1xuICAgICAgICB0aGlzLmluaXRDb25maWcgPSBfY29uZmlnXzA7XG4gICAgICAgIGNvbnN0IF9jb25maWdfMSA9IHJlc29sdmVDbGllbnRFbmRwb2ludFBhcmFtZXRlcnMoX2NvbmZpZ18wKTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ18yID0gcmVzb2x2ZVVzZXJBZ2VudENvbmZpZyhfY29uZmlnXzEpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzMgPSByZXNvbHZlUmV0cnlDb25maWcoX2NvbmZpZ18yKTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ180ID0gcmVzb2x2ZVJlZ2lvbkNvbmZpZyhfY29uZmlnXzMpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzUgPSByZXNvbHZlSG9zdEhlYWRlckNvbmZpZyhfY29uZmlnXzQpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzYgPSByZXNvbHZlRW5kcG9pbnRDb25maWcoX2NvbmZpZ181KTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ183ID0gcmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnKF9jb25maWdfNik7XG4gICAgICAgIGNvbnN0IF9jb25maWdfOCA9IHJlc29sdmVSdW50aW1lRXh0ZW5zaW9ucyhfY29uZmlnXzcsIGNvbmZpZ3VyYXRpb24/LmV4dGVuc2lvbnMgfHwgW10pO1xuICAgICAgICB0aGlzLmNvbmZpZyA9IF9jb25maWdfODtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGdldFNjaGVtYVNlcmRlUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShnZXRVc2VyQWdlbnRQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGdldFJldHJ5UGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShnZXRDb250ZW50TGVuZ3RoUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShnZXRIb3N0SGVhZGVyUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShnZXRMb2dnZXJQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGdldFJlY3Vyc2lvbkRldGVjdGlvblBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoZ2V0SHR0cEF1dGhTY2hlbWVFbmRwb2ludFJ1bGVTZXRQbHVnaW4odGhpcy5jb25maWcsIHtcbiAgICAgICAgICAgIGh0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyOiBkZWZhdWx0U2lnbmluSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIsXG4gICAgICAgICAgICBpZGVudGl0eVByb3ZpZGVyQ29uZmlnUHJvdmlkZXI6IGFzeW5jIChjb25maWcpID0+IG5ldyBEZWZhdWx0SWRlbnRpdHlQcm92aWRlckNvbmZpZyh7XG4gICAgICAgICAgICAgICAgXCJhd3MuYXV0aCNzaWd2NFwiOiBjb25maWcuY3JlZGVudGlhbHMsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgfSkpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoZ2V0SHR0cFNpZ25pbmdQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICB9XG4gICAgZGVzdHJveSgpIHtcbiAgICAgICAgc3VwZXIuZGVzdHJveSgpO1xuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBnZXRFbmRwb2ludFBsdWdpbiB9IGZyb20gXCJAc21pdGh5L21pZGRsZXdhcmUtZW5kcG9pbnRcIjtcbmltcG9ydCB7IENvbW1hbmQgYXMgJENvbW1hbmQgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyBjb21tb25QYXJhbXMgfSBmcm9tIFwiLi4vZW5kcG9pbnQvRW5kcG9pbnRQYXJhbWV0ZXJzXCI7XG5pbXBvcnQgeyBDcmVhdGVPQXV0aDJUb2tlbiQgfSBmcm9tIFwiLi4vc2NoZW1hcy9zY2hlbWFzXzBcIjtcbmV4cG9ydCB7ICRDb21tYW5kIH07XG5leHBvcnQgY2xhc3MgQ3JlYXRlT0F1dGgyVG9rZW5Db21tYW5kIGV4dGVuZHMgJENvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFtnZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIlNpZ25pblwiLCBcIkNyZWF0ZU9BdXRoMlRva2VuXCIsIHt9KVxuICAgIC5uKFwiU2lnbmluQ2xpZW50XCIsIFwiQ3JlYXRlT0F1dGgyVG9rZW5Db21tYW5kXCIpXG4gICAgLnNjKENyZWF0ZU9BdXRoMlRva2VuJClcbiAgICAuYnVpbGQoKSB7XG59XG4iLCAiaW1wb3J0IHsgY3JlYXRlQWdncmVnYXRlZENsaWVudCB9IGZyb20gXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjtcbmltcG9ydCB7IENyZWF0ZU9BdXRoMlRva2VuQ29tbWFuZCwgfSBmcm9tIFwiLi9jb21tYW5kcy9DcmVhdGVPQXV0aDJUb2tlbkNvbW1hbmRcIjtcbmltcG9ydCB7IFNpZ25pbkNsaWVudCB9IGZyb20gXCIuL1NpZ25pbkNsaWVudFwiO1xuY29uc3QgY29tbWFuZHMgPSB7XG4gICAgQ3JlYXRlT0F1dGgyVG9rZW5Db21tYW5kLFxufTtcbmV4cG9ydCBjbGFzcyBTaWduaW4gZXh0ZW5kcyBTaWduaW5DbGllbnQge1xufVxuY3JlYXRlQWdncmVnYXRlZENsaWVudChjb21tYW5kcywgU2lnbmluKTtcbiIsICJleHBvcnQgKiBmcm9tIFwiLi9DcmVhdGVPQXV0aDJUb2tlbkNvbW1hbmRcIjtcbiIsICJleHBvcnQgY29uc3QgT0F1dGgyRXJyb3JDb2RlID0ge1xuICAgIEFVVEhDT0RFX0VYUElSRUQ6IFwiQVVUSENPREVfRVhQSVJFRFwiLFxuICAgIElOU1VGRklDSUVOVF9QRVJNSVNTSU9OUzogXCJJTlNVRkZJQ0lFTlRfUEVSTUlTU0lPTlNcIixcbiAgICBJTlZBTElEX1JFUVVFU1Q6IFwiSU5WQUxJRF9SRVFVRVNUXCIsXG4gICAgU0VSVkVSX0VSUk9SOiBcInNlcnZlcl9lcnJvclwiLFxuICAgIFRPS0VOX0VYUElSRUQ6IFwiVE9LRU5fRVhQSVJFRFwiLFxuICAgIFVTRVJfQ1JFREVOVElBTFNfQ0hBTkdFRDogXCJVU0VSX0NSRURFTlRJQUxTX0NIQU5HRURcIixcbn07XG4iLCAiZXhwb3J0IHt9O1xuIiwgImV4cG9ydCAqIGZyb20gXCIuL1NpZ25pbkNsaWVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vU2lnbmluXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21tYW5kc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vc2NoZW1hcy9zY2hlbWFzXzBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21vZGVscy9lbnVtc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWxzL2Vycm9yc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWxzL21vZGVsc18wXCI7XG5leHBvcnQgeyBTaWduaW5TZXJ2aWNlRXhjZXB0aW9uIH0gZnJvbSBcIi4vbW9kZWxzL1NpZ25pblNlcnZpY2VFeGNlcHRpb25cIjtcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBjbGllbnQgPSByZXF1aXJlKCdAYXdzLXNkay9jb3JlL2NsaWVudCcpO1xudmFyIHByb3BlcnR5UHJvdmlkZXIgPSByZXF1aXJlKCdAc21pdGh5L3Byb3BlcnR5LXByb3ZpZGVyJyk7XG52YXIgc2hhcmVkSW5pRmlsZUxvYWRlciA9IHJlcXVpcmUoJ0BzbWl0aHkvc2hhcmVkLWluaS1maWxlLWxvYWRlcicpO1xudmFyIHByb3RvY29sSHR0cCA9IHJlcXVpcmUoJ0BzbWl0aHkvcHJvdG9jb2wtaHR0cCcpO1xudmFyIG5vZGVfY3J5cHRvID0gcmVxdWlyZSgnbm9kZTpjcnlwdG8nKTtcbnZhciBub2RlX2ZzID0gcmVxdWlyZSgnbm9kZTpmcycpO1xudmFyIG5vZGVfb3MgPSByZXF1aXJlKCdub2RlOm9zJyk7XG52YXIgbm9kZV9wYXRoID0gcmVxdWlyZSgnbm9kZTpwYXRoJyk7XG5cbmNsYXNzIExvZ2luQ3JlZGVudGlhbHNGZXRjaGVyIHtcbiAgICBwcm9maWxlRGF0YTtcbiAgICBpbml0O1xuICAgIGNhbGxlckNsaWVudENvbmZpZztcbiAgICBzdGF0aWMgUkVGUkVTSF9USFJFU0hPTEQgPSA1ICogNjAgKiAxMDAwO1xuICAgIGNvbnN0cnVjdG9yKHByb2ZpbGVEYXRhLCBpbml0LCBjYWxsZXJDbGllbnRDb25maWcpIHtcbiAgICAgICAgdGhpcy5wcm9maWxlRGF0YSA9IHByb2ZpbGVEYXRhO1xuICAgICAgICB0aGlzLmluaXQgPSBpbml0O1xuICAgICAgICB0aGlzLmNhbGxlckNsaWVudENvbmZpZyA9IGNhbGxlckNsaWVudENvbmZpZztcbiAgICB9XG4gICAgYXN5bmMgbG9hZENyZWRlbnRpYWxzKCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IGF3YWl0IHRoaXMubG9hZFRva2VuKCk7XG4gICAgICAgIGlmICghdG9rZW4pIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLkNyZWRlbnRpYWxzUHJvdmlkZXJFcnJvcihgRmFpbGVkIHRvIGxvYWQgYSB0b2tlbiBmb3Igc2Vzc2lvbiAke3RoaXMubG9naW5TZXNzaW9ufSwgcGxlYXNlIHJlLWF1dGhlbnRpY2F0ZSB1c2luZyBhd3MgbG9naW5gLCB7IHRyeU5leHRMaW5rOiBmYWxzZSwgbG9nZ2VyOiB0aGlzLmxvZ2dlciB9KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhY2Nlc3NUb2tlbiA9IHRva2VuLmFjY2Vzc1Rva2VuO1xuICAgICAgICBjb25zdCBub3cgPSBEYXRlLm5vdygpO1xuICAgICAgICBjb25zdCBleHBpcnlUaW1lID0gbmV3IERhdGUoYWNjZXNzVG9rZW4uZXhwaXJlc0F0KS5nZXRUaW1lKCk7XG4gICAgICAgIGNvbnN0IHRpbWVVbnRpbEV4cGlyeSA9IGV4cGlyeVRpbWUgLSBub3c7XG4gICAgICAgIGlmICh0aW1lVW50aWxFeHBpcnkgPD0gTG9naW5DcmVkZW50aWFsc0ZldGNoZXIuUkVGUkVTSF9USFJFU0hPTEQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnJlZnJlc2godG9rZW4pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBhY2Nlc3NLZXlJZDogYWNjZXNzVG9rZW4uYWNjZXNzS2V5SWQsXG4gICAgICAgICAgICBzZWNyZXRBY2Nlc3NLZXk6IGFjY2Vzc1Rva2VuLnNlY3JldEFjY2Vzc0tleSxcbiAgICAgICAgICAgIHNlc3Npb25Ub2tlbjogYWNjZXNzVG9rZW4uc2Vzc2lvblRva2VuLFxuICAgICAgICAgICAgYWNjb3VudElkOiBhY2Nlc3NUb2tlbi5hY2NvdW50SWQsXG4gICAgICAgICAgICBleHBpcmF0aW9uOiBuZXcgRGF0ZShhY2Nlc3NUb2tlbi5leHBpcmVzQXQpLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBnZXQgbG9nZ2VyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pbml0Py5sb2dnZXI7XG4gICAgfVxuICAgIGdldCBsb2dpblNlc3Npb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnByb2ZpbGVEYXRhLmxvZ2luX3Nlc3Npb247XG4gICAgfVxuICAgIGFzeW5jIHJlZnJlc2godG9rZW4pIHtcbiAgICAgICAgY29uc3QgeyBTaWduaW5DbGllbnQsIENyZWF0ZU9BdXRoMlRva2VuQ29tbWFuZCB9ID0gYXdhaXQgaW1wb3J0KCdAYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9zaWduaW4nKTtcbiAgICAgICAgY29uc3QgeyBsb2dnZXIsIHVzZXJBZ2VudEFwcElkIH0gPSB0aGlzLmNhbGxlckNsaWVudENvbmZpZyA/PyB7fTtcbiAgICAgICAgY29uc3QgaXNIMiA9IChyZXF1ZXN0SGFuZGxlcikgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3RIYW5kbGVyPy5tZXRhZGF0YT8uaGFuZGxlclByb3RvY29sID09PSBcImgyXCI7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHJlcXVlc3RIYW5kbGVyID0gaXNIMih0aGlzLmNhbGxlckNsaWVudENvbmZpZz8ucmVxdWVzdEhhbmRsZXIpXG4gICAgICAgICAgICA/IHVuZGVmaW5lZFxuICAgICAgICAgICAgOiB0aGlzLmNhbGxlckNsaWVudENvbmZpZz8ucmVxdWVzdEhhbmRsZXI7XG4gICAgICAgIGNvbnN0IHJlZ2lvbiA9IHRoaXMucHJvZmlsZURhdGEucmVnaW9uID8/IChhd2FpdCB0aGlzLmNhbGxlckNsaWVudENvbmZpZz8ucmVnaW9uPy4oKSkgPz8gcHJvY2Vzcy5lbnYuQVdTX1JFR0lPTjtcbiAgICAgICAgY29uc3QgY2xpZW50ID0gbmV3IFNpZ25pbkNsaWVudCh7XG4gICAgICAgICAgICBjcmVkZW50aWFsczoge1xuICAgICAgICAgICAgICAgIGFjY2Vzc0tleUlkOiBcIlwiLFxuICAgICAgICAgICAgICAgIHNlY3JldEFjY2Vzc0tleTogXCJcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZWdpb24sXG4gICAgICAgICAgICByZXF1ZXN0SGFuZGxlcixcbiAgICAgICAgICAgIGxvZ2dlcixcbiAgICAgICAgICAgIHVzZXJBZ2VudEFwcElkLFxuICAgICAgICAgICAgLi4udGhpcy5pbml0Py5jbGllbnRDb25maWcsXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmNyZWF0ZURQb1BJbnRlcmNlcHRvcihjbGllbnQubWlkZGxld2FyZVN0YWNrKTtcbiAgICAgICAgY29uc3QgY29tbWFuZElucHV0ID0ge1xuICAgICAgICAgICAgdG9rZW5JbnB1dDoge1xuICAgICAgICAgICAgICAgIGNsaWVudElkOiB0b2tlbi5jbGllbnRJZCxcbiAgICAgICAgICAgICAgICByZWZyZXNoVG9rZW46IHRva2VuLnJlZnJlc2hUb2tlbixcbiAgICAgICAgICAgICAgICBncmFudFR5cGU6IFwicmVmcmVzaF90b2tlblwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LnNlbmQobmV3IENyZWF0ZU9BdXRoMlRva2VuQ29tbWFuZChjb21tYW5kSW5wdXQpKTtcbiAgICAgICAgICAgIGNvbnN0IHsgYWNjZXNzS2V5SWQsIHNlY3JldEFjY2Vzc0tleSwgc2Vzc2lvblRva2VuIH0gPSByZXNwb25zZS50b2tlbk91dHB1dD8uYWNjZXNzVG9rZW4gPz8ge307XG4gICAgICAgICAgICBjb25zdCB7IHJlZnJlc2hUb2tlbiwgZXhwaXJlc0luIH0gPSByZXNwb25zZS50b2tlbk91dHB1dCA/PyB7fTtcbiAgICAgICAgICAgIGlmICghYWNjZXNzS2V5SWQgfHwgIXNlY3JldEFjY2Vzc0tleSB8fCAhc2Vzc2lvblRva2VuIHx8ICFyZWZyZXNoVG9rZW4pIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoXCJUb2tlbiByZWZyZXNoIHJlc3BvbnNlIG1pc3NpbmcgcmVxdWlyZWQgZmllbGRzXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgbG9nZ2VyOiB0aGlzLmxvZ2dlcixcbiAgICAgICAgICAgICAgICAgICAgdHJ5TmV4dExpbms6IGZhbHNlLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgZXhwaXJlc0luTXMgPSAoZXhwaXJlc0luID8/IDkwMCkgKiAxMDAwO1xuICAgICAgICAgICAgY29uc3QgZXhwaXJhdGlvbiA9IG5ldyBEYXRlKERhdGUubm93KCkgKyBleHBpcmVzSW5Ncyk7XG4gICAgICAgICAgICBjb25zdCB1cGRhdGVkVG9rZW4gPSB7XG4gICAgICAgICAgICAgICAgLi4udG9rZW4sXG4gICAgICAgICAgICAgICAgYWNjZXNzVG9rZW46IHtcbiAgICAgICAgICAgICAgICAgICAgLi4udG9rZW4uYWNjZXNzVG9rZW4sXG4gICAgICAgICAgICAgICAgICAgIGFjY2Vzc0tleUlkOiBhY2Nlc3NLZXlJZCxcbiAgICAgICAgICAgICAgICAgICAgc2VjcmV0QWNjZXNzS2V5OiBzZWNyZXRBY2Nlc3NLZXksXG4gICAgICAgICAgICAgICAgICAgIHNlc3Npb25Ub2tlbjogc2Vzc2lvblRva2VuLFxuICAgICAgICAgICAgICAgICAgICBleHBpcmVzQXQ6IGV4cGlyYXRpb24udG9JU09TdHJpbmcoKSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHJlZnJlc2hUb2tlbjogcmVmcmVzaFRva2VuLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuc2F2ZVRva2VuKHVwZGF0ZWRUb2tlbik7XG4gICAgICAgICAgICBjb25zdCBuZXdBY2Nlc3NUb2tlbiA9IHVwZGF0ZWRUb2tlbi5hY2Nlc3NUb2tlbjtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgYWNjZXNzS2V5SWQ6IG5ld0FjY2Vzc1Rva2VuLmFjY2Vzc0tleUlkLFxuICAgICAgICAgICAgICAgIHNlY3JldEFjY2Vzc0tleTogbmV3QWNjZXNzVG9rZW4uc2VjcmV0QWNjZXNzS2V5LFxuICAgICAgICAgICAgICAgIHNlc3Npb25Ub2tlbjogbmV3QWNjZXNzVG9rZW4uc2Vzc2lvblRva2VuLFxuICAgICAgICAgICAgICAgIGFjY291bnRJZDogbmV3QWNjZXNzVG9rZW4uYWNjb3VudElkLFxuICAgICAgICAgICAgICAgIGV4cGlyYXRpb24sXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgaWYgKGVycm9yLm5hbWUgPT09IFwiQWNjZXNzRGVuaWVkRXhjZXB0aW9uXCIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBlcnJvclR5cGUgPSBlcnJvci5lcnJvcjtcbiAgICAgICAgICAgICAgICBsZXQgbWVzc2FnZTtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGVycm9yVHlwZSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIFwiVE9LRU5fRVhQSVJFRFwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9IFwiWW91ciBzZXNzaW9uIGhhcyBleHBpcmVkLiBQbGVhc2UgcmVhdXRoZW50aWNhdGUuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBcIlVTRVJfQ1JFREVOVElBTFNfQ0hBTkdFRFwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJVbmFibGUgdG8gcmVmcmVzaCBjcmVkZW50aWFscyBiZWNhdXNlIG9mIGEgY2hhbmdlIGluIHlvdXIgcGFzc3dvcmQuIFBsZWFzZSByZWF1dGhlbnRpY2F0ZSB3aXRoIHlvdXIgbmV3IHBhc3N3b3JkLlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgXCJJTlNVRkZJQ0lFTlRfUEVSTUlTU0lPTlNcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVW5hYmxlIHRvIHJlZnJlc2ggY3JlZGVudGlhbHMgZHVlIHRvIGluc3VmZmljaWVudCBwZXJtaXNzaW9ucy4gWW91IG1heSBiZSBtaXNzaW5nIHBlcm1pc3Npb24gZm9yIHRoZSAnQ3JlYXRlT0F1dGgyVG9rZW4nIGFjdGlvbi5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9IGBGYWlsZWQgdG8gcmVmcmVzaCB0b2tlbjogJHtTdHJpbmcoZXJyb3IpfS4gUGxlYXNlIHJlLWF1dGhlbnRpY2F0ZSB1c2luZyBcXGBhd3MgbG9naW5cXGBgO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IobWVzc2FnZSwgeyBsb2dnZXI6IHRoaXMubG9nZ2VyLCB0cnlOZXh0TGluazogZmFsc2UgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoYEZhaWxlZCB0byByZWZyZXNoIHRva2VuOiAke1N0cmluZyhlcnJvcil9LiBQbGVhc2UgcmUtYXV0aGVudGljYXRlIHVzaW5nIGF3cyBsb2dpbmAsIHsgbG9nZ2VyOiB0aGlzLmxvZ2dlciB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBhc3luYyBsb2FkVG9rZW4oKSB7XG4gICAgICAgIGNvbnN0IHRva2VuRmlsZVBhdGggPSB0aGlzLmdldFRva2VuRmlsZVBhdGgoKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGxldCB0b2tlbkRhdGE7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHRva2VuRGF0YSA9IGF3YWl0IHNoYXJlZEluaUZpbGVMb2FkZXIucmVhZEZpbGUodG9rZW5GaWxlUGF0aCwgeyBpZ25vcmVDYWNoZTogdGhpcy5pbml0Py5pZ25vcmVDYWNoZSB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIHtcbiAgICAgICAgICAgICAgICB0b2tlbkRhdGEgPSBhd2FpdCBub2RlX2ZzLnByb21pc2VzLnJlYWRGaWxlKHRva2VuRmlsZVBhdGgsIFwidXRmOFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHRva2VuID0gSlNPTi5wYXJzZSh0b2tlbkRhdGEpO1xuICAgICAgICAgICAgY29uc3QgbWlzc2luZ0ZpZWxkcyA9IFtcImFjY2Vzc1Rva2VuXCIsIFwiY2xpZW50SWRcIiwgXCJyZWZyZXNoVG9rZW5cIiwgXCJkcG9wS2V5XCJdLmZpbHRlcigoaykgPT4gIXRva2VuW2tdKTtcbiAgICAgICAgICAgIGlmICghdG9rZW4uYWNjZXNzVG9rZW4/LmFjY291bnRJZCkge1xuICAgICAgICAgICAgICAgIG1pc3NpbmdGaWVsZHMucHVzaChcImFjY291bnRJZFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChtaXNzaW5nRmllbGRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoYFRva2VuIHZhbGlkYXRpb24gZmFpbGVkLCBtaXNzaW5nIGZpZWxkczogJHttaXNzaW5nRmllbGRzLmpvaW4oXCIsIFwiKX1gLCB7XG4gICAgICAgICAgICAgICAgICAgIGxvZ2dlcjogdGhpcy5sb2dnZXIsXG4gICAgICAgICAgICAgICAgICAgIHRyeU5leHRMaW5rOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0b2tlbjtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLkNyZWRlbnRpYWxzUHJvdmlkZXJFcnJvcihgRmFpbGVkIHRvIGxvYWQgdG9rZW4gZnJvbSAke3Rva2VuRmlsZVBhdGh9OiAke1N0cmluZyhlcnJvcil9YCwge1xuICAgICAgICAgICAgICAgIGxvZ2dlcjogdGhpcy5sb2dnZXIsXG4gICAgICAgICAgICAgICAgdHJ5TmV4dExpbms6IGZhbHNlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgYXN5bmMgc2F2ZVRva2VuKHRva2VuKSB7XG4gICAgICAgIGNvbnN0IHRva2VuRmlsZVBhdGggPSB0aGlzLmdldFRva2VuRmlsZVBhdGgoKTtcbiAgICAgICAgY29uc3QgZGlyZWN0b3J5ID0gbm9kZV9wYXRoLmRpcm5hbWUodG9rZW5GaWxlUGF0aCk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhd2FpdCBub2RlX2ZzLnByb21pc2VzLm1rZGlyKGRpcmVjdG9yeSwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIH1cbiAgICAgICAgYXdhaXQgbm9kZV9mcy5wcm9taXNlcy53cml0ZUZpbGUodG9rZW5GaWxlUGF0aCwgSlNPTi5zdHJpbmdpZnkodG9rZW4sIG51bGwsIDIpLCBcInV0ZjhcIik7XG4gICAgfVxuICAgIGdldFRva2VuRmlsZVBhdGgoKSB7XG4gICAgICAgIGNvbnN0IGRpcmVjdG9yeSA9IHByb2Nlc3MuZW52LkFXU19MT0dJTl9DQUNIRV9ESVJFQ1RPUlkgPz8gbm9kZV9wYXRoLmpvaW4obm9kZV9vcy5ob21lZGlyKCksIFwiLmF3c1wiLCBcImxvZ2luXCIsIFwiY2FjaGVcIik7XG4gICAgICAgIGNvbnN0IGxvZ2luU2Vzc2lvbkJ5dGVzID0gQnVmZmVyLmZyb20odGhpcy5sb2dpblNlc3Npb24sIFwidXRmOFwiKTtcbiAgICAgICAgY29uc3QgbG9naW5TZXNzaW9uU2hhMjU2ID0gbm9kZV9jcnlwdG8uY3JlYXRlSGFzaChcInNoYTI1NlwiKS51cGRhdGUobG9naW5TZXNzaW9uQnl0ZXMpLmRpZ2VzdChcImhleFwiKTtcbiAgICAgICAgcmV0dXJuIG5vZGVfcGF0aC5qb2luKGRpcmVjdG9yeSwgYCR7bG9naW5TZXNzaW9uU2hhMjU2fS5qc29uYCk7XG4gICAgfVxuICAgIGRlclRvUmF3U2lnbmF0dXJlKGRlclNpZ25hdHVyZSkge1xuICAgICAgICBsZXQgb2Zmc2V0ID0gMjtcbiAgICAgICAgaWYgKGRlclNpZ25hdHVyZVtvZmZzZXRdICE9PSAweDAyKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIERFUiBzaWduYXR1cmVcIik7XG4gICAgICAgIH1cbiAgICAgICAgb2Zmc2V0Kys7XG4gICAgICAgIGNvbnN0IHJMZW5ndGggPSBkZXJTaWduYXR1cmVbb2Zmc2V0KytdO1xuICAgICAgICBsZXQgciA9IGRlclNpZ25hdHVyZS5zdWJhcnJheShvZmZzZXQsIG9mZnNldCArIHJMZW5ndGgpO1xuICAgICAgICBvZmZzZXQgKz0gckxlbmd0aDtcbiAgICAgICAgaWYgKGRlclNpZ25hdHVyZVtvZmZzZXRdICE9PSAweDAyKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIERFUiBzaWduYXR1cmVcIik7XG4gICAgICAgIH1cbiAgICAgICAgb2Zmc2V0Kys7XG4gICAgICAgIGNvbnN0IHNMZW5ndGggPSBkZXJTaWduYXR1cmVbb2Zmc2V0KytdO1xuICAgICAgICBsZXQgcyA9IGRlclNpZ25hdHVyZS5zdWJhcnJheShvZmZzZXQsIG9mZnNldCArIHNMZW5ndGgpO1xuICAgICAgICByID0gclswXSA9PT0gMHgwMCA/IHIuc3ViYXJyYXkoMSkgOiByO1xuICAgICAgICBzID0gc1swXSA9PT0gMHgwMCA/IHMuc3ViYXJyYXkoMSkgOiBzO1xuICAgICAgICBjb25zdCByUGFkZGVkID0gQnVmZmVyLmNvbmNhdChbQnVmZmVyLmFsbG9jKDMyIC0gci5sZW5ndGgpLCByXSk7XG4gICAgICAgIGNvbnN0IHNQYWRkZWQgPSBCdWZmZXIuY29uY2F0KFtCdWZmZXIuYWxsb2MoMzIgLSBzLmxlbmd0aCksIHNdKTtcbiAgICAgICAgcmV0dXJuIEJ1ZmZlci5jb25jYXQoW3JQYWRkZWQsIHNQYWRkZWRdKTtcbiAgICB9XG4gICAgY3JlYXRlRFBvUEludGVyY2VwdG9yKG1pZGRsZXdhcmVTdGFjaykge1xuICAgICAgICBtaWRkbGV3YXJlU3RhY2suYWRkKChuZXh0KSA9PiBhc3luYyAoYXJncykgPT4ge1xuICAgICAgICAgICAgaWYgKHByb3RvY29sSHR0cC5IdHRwUmVxdWVzdC5pc0luc3RhbmNlKGFyZ3MucmVxdWVzdCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZXF1ZXN0ID0gYXJncy5yZXF1ZXN0O1xuICAgICAgICAgICAgICAgIGNvbnN0IGFjdHVhbEVuZHBvaW50ID0gYCR7cmVxdWVzdC5wcm90b2NvbH0vLyR7cmVxdWVzdC5ob3N0bmFtZX0ke3JlcXVlc3QucG9ydCA/IGA6JHtyZXF1ZXN0LnBvcnR9YCA6IFwiXCJ9JHtyZXF1ZXN0LnBhdGh9YDtcbiAgICAgICAgICAgICAgICBjb25zdCBkcG9wID0gYXdhaXQgdGhpcy5nZW5lcmF0ZURwb3AocmVxdWVzdC5tZXRob2QsIGFjdHVhbEVuZHBvaW50KTtcbiAgICAgICAgICAgICAgICByZXF1ZXN0LmhlYWRlcnMgPSB7XG4gICAgICAgICAgICAgICAgICAgIC4uLnJlcXVlc3QuaGVhZGVycyxcbiAgICAgICAgICAgICAgICAgICAgRFBvUDogZHBvcCxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG5leHQoYXJncyk7XG4gICAgICAgIH0sIHtcbiAgICAgICAgICAgIHN0ZXA6IFwiZmluYWxpemVSZXF1ZXN0XCIsXG4gICAgICAgICAgICBuYW1lOiBcImRwb3BJbnRlcmNlcHRvclwiLFxuICAgICAgICAgICAgb3ZlcnJpZGU6IHRydWUsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBhc3luYyBnZW5lcmF0ZURwb3AobWV0aG9kID0gXCJQT1NUXCIsIGVuZHBvaW50KSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gYXdhaXQgdGhpcy5sb2FkVG9rZW4oKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHByaXZhdGVLZXkgPSBub2RlX2NyeXB0by5jcmVhdGVQcml2YXRlS2V5KHtcbiAgICAgICAgICAgICAgICBrZXk6IHRva2VuLmRwb3BLZXksXG4gICAgICAgICAgICAgICAgZm9ybWF0OiBcInBlbVwiLFxuICAgICAgICAgICAgICAgIHR5cGU6IFwic2VjMVwiLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCBwdWJsaWNLZXkgPSBub2RlX2NyeXB0by5jcmVhdGVQdWJsaWNLZXkocHJpdmF0ZUtleSk7XG4gICAgICAgICAgICBjb25zdCBwdWJsaWNEZXIgPSBwdWJsaWNLZXkuZXhwb3J0KHsgZm9ybWF0OiBcImRlclwiLCB0eXBlOiBcInNwa2lcIiB9KTtcbiAgICAgICAgICAgIGxldCBwb2ludFN0YXJ0ID0gLTE7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHB1YmxpY0Rlci5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGlmIChwdWJsaWNEZXJbaV0gPT09IDB4MDQpIHtcbiAgICAgICAgICAgICAgICAgICAgcG9pbnRTdGFydCA9IGk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHggPSBwdWJsaWNEZXIuc2xpY2UocG9pbnRTdGFydCArIDEsIHBvaW50U3RhcnQgKyAzMyk7XG4gICAgICAgICAgICBjb25zdCB5ID0gcHVibGljRGVyLnNsaWNlKHBvaW50U3RhcnQgKyAzMywgcG9pbnRTdGFydCArIDY1KTtcbiAgICAgICAgICAgIGNvbnN0IGhlYWRlciA9IHtcbiAgICAgICAgICAgICAgICBhbGc6IFwiRVMyNTZcIixcbiAgICAgICAgICAgICAgICB0eXA6IFwiZHBvcCtqd3RcIixcbiAgICAgICAgICAgICAgICBqd2s6IHtcbiAgICAgICAgICAgICAgICAgICAga3R5OiBcIkVDXCIsXG4gICAgICAgICAgICAgICAgICAgIGNydjogXCJQLTI1NlwiLFxuICAgICAgICAgICAgICAgICAgICB4OiB4LnRvU3RyaW5nKFwiYmFzZTY0dXJsXCIpLFxuICAgICAgICAgICAgICAgICAgICB5OiB5LnRvU3RyaW5nKFwiYmFzZTY0dXJsXCIpLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY29uc3QgcGF5bG9hZCA9IHtcbiAgICAgICAgICAgICAgICBqdGk6IGNyeXB0by5yYW5kb21VVUlEKCksXG4gICAgICAgICAgICAgICAgaHRtOiBtZXRob2QsXG4gICAgICAgICAgICAgICAgaHR1OiBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBpYXQ6IE1hdGguZmxvb3IoRGF0ZS5ub3coKSAvIDEwMDApLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGNvbnN0IGhlYWRlckI2NCA9IEJ1ZmZlci5mcm9tKEpTT04uc3RyaW5naWZ5KGhlYWRlcikpLnRvU3RyaW5nKFwiYmFzZTY0dXJsXCIpO1xuICAgICAgICAgICAgY29uc3QgcGF5bG9hZEI2NCA9IEJ1ZmZlci5mcm9tKEpTT04uc3RyaW5naWZ5KHBheWxvYWQpKS50b1N0cmluZyhcImJhc2U2NHVybFwiKTtcbiAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgJHtoZWFkZXJCNjR9LiR7cGF5bG9hZEI2NH1gO1xuICAgICAgICAgICAgY29uc3QgYXNuMVNpZ25hdHVyZSA9IG5vZGVfY3J5cHRvLnNpZ24oXCJzaGEyNTZcIiwgQnVmZmVyLmZyb20obWVzc2FnZSksIHByaXZhdGVLZXkpO1xuICAgICAgICAgICAgY29uc3QgcmF3U2lnbmF0dXJlID0gdGhpcy5kZXJUb1Jhd1NpZ25hdHVyZShhc24xU2lnbmF0dXJlKTtcbiAgICAgICAgICAgIGNvbnN0IHNpZ25hdHVyZUI2NCA9IHJhd1NpZ25hdHVyZS50b1N0cmluZyhcImJhc2U2NHVybFwiKTtcbiAgICAgICAgICAgIHJldHVybiBgJHttZXNzYWdlfS4ke3NpZ25hdHVyZUI2NH1gO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKGBGYWlsZWQgdG8gZ2VuZXJhdGUgRHBvcCBwcm9vZjogJHtlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6IFN0cmluZyhlcnJvcil9YCwgeyBsb2dnZXI6IHRoaXMubG9nZ2VyLCB0cnlOZXh0TGluazogZmFsc2UgfSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmNvbnN0IGZyb21Mb2dpbkNyZWRlbnRpYWxzID0gKGluaXQpID0+IGFzeW5jICh7IGNhbGxlckNsaWVudENvbmZpZyB9ID0ge30pID0+IHtcbiAgICBpbml0Py5sb2dnZXI/LmRlYnVnPy4oXCJAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVycyAtIGZyb21Mb2dpbkNyZWRlbnRpYWxzXCIpO1xuICAgIGNvbnN0IHByb2ZpbGVzID0gYXdhaXQgc2hhcmVkSW5pRmlsZUxvYWRlci5wYXJzZUtub3duRmlsZXMoaW5pdCB8fCB7fSk7XG4gICAgY29uc3QgcHJvZmlsZU5hbWUgPSBzaGFyZWRJbmlGaWxlTG9hZGVyLmdldFByb2ZpbGVOYW1lKHtcbiAgICAgICAgcHJvZmlsZTogaW5pdD8ucHJvZmlsZSA/PyBjYWxsZXJDbGllbnRDb25maWc/LnByb2ZpbGUsXG4gICAgfSk7XG4gICAgY29uc3QgcHJvZmlsZSA9IHByb2ZpbGVzW3Byb2ZpbGVOYW1lXTtcbiAgICBpZiAoIXByb2ZpbGU/LmxvZ2luX3Nlc3Npb24pIHtcbiAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKGBQcm9maWxlICR7cHJvZmlsZU5hbWV9IGRvZXMgbm90IGNvbnRhaW4gbG9naW5fc2Vzc2lvbi5gLCB7XG4gICAgICAgICAgICB0cnlOZXh0TGluazogdHJ1ZSxcbiAgICAgICAgICAgIGxvZ2dlcjogaW5pdD8ubG9nZ2VyLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgZmV0Y2hlciA9IG5ldyBMb2dpbkNyZWRlbnRpYWxzRmV0Y2hlcihwcm9maWxlLCBpbml0LCBjYWxsZXJDbGllbnRDb25maWcpO1xuICAgIGNvbnN0IGNyZWRlbnRpYWxzID0gYXdhaXQgZmV0Y2hlci5sb2FkQ3JlZGVudGlhbHMoKTtcbiAgICByZXR1cm4gY2xpZW50LnNldENyZWRlbnRpYWxGZWF0dXJlKGNyZWRlbnRpYWxzLCBcIkNSRURFTlRJQUxTX0xPR0lOXCIsIFwiQURcIik7XG59O1xuXG5leHBvcnRzLmZyb21Mb2dpbkNyZWRlbnRpYWxzID0gZnJvbUxvZ2luQ3JlZGVudGlhbHM7XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLnRvU3RyZWFtID0gdG9TdHJlYW07XG5jb25zdCBub2RlX3N0cmVhbV8xID0gcmVxdWlyZShcIm5vZGU6c3RyZWFtXCIpO1xuZnVuY3Rpb24gdG9TdHJlYW0oYnl0ZXMpIHtcbiAgICByZXR1cm4gbm9kZV9zdHJlYW1fMS5SZWFkYWJsZS5mcm9tKEJ1ZmZlci5mcm9tKGJ5dGVzKSk7XG59XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG5jb25zdCB2YWxpZGF0ZSA9IChzdHIpID0+IHR5cGVvZiBzdHIgPT09IFwic3RyaW5nXCIgJiYgc3RyLmluZGV4T2YoXCJhcm46XCIpID09PSAwICYmIHN0ci5zcGxpdChcIjpcIikubGVuZ3RoID49IDY7XG5jb25zdCBwYXJzZSA9IChhcm4pID0+IHtcbiAgICBjb25zdCBzZWdtZW50cyA9IGFybi5zcGxpdChcIjpcIik7XG4gICAgaWYgKHNlZ21lbnRzLmxlbmd0aCA8IDYgfHwgc2VnbWVudHNbMF0gIT09IFwiYXJuXCIpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIk1hbGZvcm1lZCBBUk5cIik7XG4gICAgY29uc3QgWywgcGFydGl0aW9uLCBzZXJ2aWNlLCByZWdpb24sIGFjY291bnRJZCwgLi4ucmVzb3VyY2VdID0gc2VnbWVudHM7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcGFydGl0aW9uLFxuICAgICAgICBzZXJ2aWNlLFxuICAgICAgICByZWdpb24sXG4gICAgICAgIGFjY291bnRJZCxcbiAgICAgICAgcmVzb3VyY2U6IHJlc291cmNlLmpvaW4oXCI6XCIpLFxuICAgIH07XG59O1xuY29uc3QgYnVpbGQgPSAoYXJuT2JqZWN0KSA9PiB7XG4gICAgY29uc3QgeyBwYXJ0aXRpb24gPSBcImF3c1wiLCBzZXJ2aWNlLCByZWdpb24sIGFjY291bnRJZCwgcmVzb3VyY2UgfSA9IGFybk9iamVjdDtcbiAgICBpZiAoW3NlcnZpY2UsIHJlZ2lvbiwgYWNjb3VudElkLCByZXNvdXJjZV0uc29tZSgoc2VnbWVudCkgPT4gdHlwZW9mIHNlZ21lbnQgIT09IFwic3RyaW5nXCIpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIklucHV0IEFSTiBvYmplY3QgaXMgaW52YWxpZFwiKTtcbiAgICB9XG4gICAgcmV0dXJuIGBhcm46JHtwYXJ0aXRpb259OiR7c2VydmljZX06JHtyZWdpb259OiR7YWNjb3VudElkfToke3Jlc291cmNlfWA7XG59O1xuXG5leHBvcnRzLmJ1aWxkID0gYnVpbGQ7XG5leHBvcnRzLnBhcnNlID0gcGFyc2U7XG5leHBvcnRzLnZhbGlkYXRlID0gdmFsaWRhdGU7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgcHJvdG9jb2xIdHRwID0gcmVxdWlyZSgnQHNtaXRoeS9wcm90b2NvbC1odHRwJyk7XG52YXIgc21pdGh5Q2xpZW50ID0gcmVxdWlyZSgnQHNtaXRoeS9zbWl0aHktY2xpZW50Jyk7XG52YXIgdG9TdHJlYW0gPSByZXF1aXJlKCcuL3RvU3RyZWFtJyk7XG52YXIgdXRpbEFyblBhcnNlciA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL3V0aWwtYXJuLXBhcnNlcicpO1xudmFyIHByb3RvY29scyA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL2NvcmUvcHJvdG9jb2xzJyk7XG52YXIgc2NoZW1hID0gcmVxdWlyZSgnQHNtaXRoeS9jb3JlL3NjaGVtYScpO1xudmFyIHNpZ25hdHVyZVY0ID0gcmVxdWlyZSgnQHNtaXRoeS9zaWduYXR1cmUtdjQnKTtcbnZhciB1dGlsQ29uZmlnUHJvdmlkZXIgPSByZXF1aXJlKCdAc21pdGh5L3V0aWwtY29uZmlnLXByb3ZpZGVyJyk7XG52YXIgY2xpZW50ID0gcmVxdWlyZSgnQGF3cy1zZGsvY29yZS9jbGllbnQnKTtcbnZhciBjb3JlID0gcmVxdWlyZSgnQHNtaXRoeS9jb3JlJyk7XG52YXIgdXRpbE1pZGRsZXdhcmUgPSByZXF1aXJlKCdAc21pdGh5L3V0aWwtbWlkZGxld2FyZScpO1xuXG5jb25zdCBDT05URU5UX0xFTkdUSF9IRUFERVIgPSBcImNvbnRlbnQtbGVuZ3RoXCI7XG5jb25zdCBERUNPREVEX0NPTlRFTlRfTEVOR1RIX0hFQURFUiA9IFwieC1hbXotZGVjb2RlZC1jb250ZW50LWxlbmd0aFwiO1xuZnVuY3Rpb24gY2hlY2tDb250ZW50TGVuZ3RoSGVhZGVyKCkge1xuICAgIHJldHVybiAobmV4dCwgY29udGV4dCkgPT4gYXN5bmMgKGFyZ3MpID0+IHtcbiAgICAgICAgY29uc3QgeyByZXF1ZXN0IH0gPSBhcmdzO1xuICAgICAgICBpZiAocHJvdG9jb2xIdHRwLkh0dHBSZXF1ZXN0LmlzSW5zdGFuY2UocmVxdWVzdCkpIHtcbiAgICAgICAgICAgIGlmICghKENPTlRFTlRfTEVOR1RIX0hFQURFUiBpbiByZXF1ZXN0LmhlYWRlcnMpICYmICEoREVDT0RFRF9DT05URU5UX0xFTkdUSF9IRUFERVIgaW4gcmVxdWVzdC5oZWFkZXJzKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgQXJlIHlvdSB1c2luZyBhIFN0cmVhbSBvZiB1bmtub3duIGxlbmd0aCBhcyB0aGUgQm9keSBvZiBhIFB1dE9iamVjdCByZXF1ZXN0PyBDb25zaWRlciB1c2luZyBVcGxvYWQgaW5zdGVhZCBmcm9tIEBhd3Mtc2RrL2xpYi1zdG9yYWdlLmA7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjb250ZXh0Py5sb2dnZXI/Lndhcm4gPT09IFwiZnVuY3Rpb25cIiAmJiAhKGNvbnRleHQubG9nZ2VyIGluc3RhbmNlb2Ygc21pdGh5Q2xpZW50Lk5vT3BMb2dnZXIpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQubG9nZ2VyLndhcm4obWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4obWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXh0KHsgLi4uYXJncyB9KTtcbiAgICB9O1xufVxuY29uc3QgY2hlY2tDb250ZW50TGVuZ3RoSGVhZGVyTWlkZGxld2FyZU9wdGlvbnMgPSB7XG4gICAgc3RlcDogXCJmaW5hbGl6ZVJlcXVlc3RcIixcbiAgICB0YWdzOiBbXCJDSEVDS19DT05URU5UX0xFTkdUSF9IRUFERVJcIl0sXG4gICAgbmFtZTogXCJnZXRDaGVja0NvbnRlbnRMZW5ndGhIZWFkZXJQbHVnaW5cIixcbiAgICBvdmVycmlkZTogdHJ1ZSxcbn07XG5jb25zdCBnZXRDaGVja0NvbnRlbnRMZW5ndGhIZWFkZXJQbHVnaW4gPSAodW51c2VkKSA9PiAoe1xuICAgIGFwcGx5VG9TdGFjazogKGNsaWVudFN0YWNrKSA9PiB7XG4gICAgICAgIGNsaWVudFN0YWNrLmFkZChjaGVja0NvbnRlbnRMZW5ndGhIZWFkZXIoKSwgY2hlY2tDb250ZW50TGVuZ3RoSGVhZGVyTWlkZGxld2FyZU9wdGlvbnMpO1xuICAgIH0sXG59KTtcblxuY29uc3QgcmVnaW9uUmVkaXJlY3RFbmRwb2ludE1pZGRsZXdhcmUgPSAoY29uZmlnKSA9PiB7XG4gICAgcmV0dXJuIChuZXh0LCBjb250ZXh0KSA9PiBhc3luYyAoYXJncykgPT4ge1xuICAgICAgICBjb25zdCBvcmlnaW5hbFJlZ2lvbiA9IGF3YWl0IGNvbmZpZy5yZWdpb24oKTtcbiAgICAgICAgY29uc3QgcmVnaW9uUHJvdmlkZXJSZWYgPSBjb25maWcucmVnaW9uO1xuICAgICAgICBsZXQgdW5sb2NrID0gKCkgPT4geyB9O1xuICAgICAgICBpZiAoY29udGV4dC5fX3MzUmVnaW9uUmVkaXJlY3QpIHtcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjb25maWcsIFwicmVnaW9uXCIsIHtcbiAgICAgICAgICAgICAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbnRleHQuX19zM1JlZ2lvblJlZGlyZWN0O1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHVubG9jayA9ICgpID0+IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjb25maWcsIFwicmVnaW9uXCIsIHtcbiAgICAgICAgICAgICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogcmVnaW9uUHJvdmlkZXJSZWYsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgbmV4dChhcmdzKTtcbiAgICAgICAgICAgIGlmIChjb250ZXh0Ll9fczNSZWdpb25SZWRpcmVjdCkge1xuICAgICAgICAgICAgICAgIHVubG9jaygpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlZ2lvbiA9IGF3YWl0IGNvbmZpZy5yZWdpb24oKTtcbiAgICAgICAgICAgICAgICBpZiAob3JpZ2luYWxSZWdpb24gIT09IHJlZ2lvbikge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJSZWdpb24gd2FzIG5vdCByZXN0b3JlZCBmb2xsb3dpbmcgUzMgcmVnaW9uIHJlZGlyZWN0LlwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICB1bmxvY2soKTtcbiAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgIH1cbiAgICB9O1xufTtcbmNvbnN0IHJlZ2lvblJlZGlyZWN0RW5kcG9pbnRNaWRkbGV3YXJlT3B0aW9ucyA9IHtcbiAgICB0YWdzOiBbXCJSRUdJT05fUkVESVJFQ1RcIiwgXCJTM1wiXSxcbiAgICBuYW1lOiBcInJlZ2lvblJlZGlyZWN0RW5kcG9pbnRNaWRkbGV3YXJlXCIsXG4gICAgb3ZlcnJpZGU6IHRydWUsXG4gICAgcmVsYXRpb246IFwiYmVmb3JlXCIsXG4gICAgdG9NaWRkbGV3YXJlOiBcImVuZHBvaW50VjJNaWRkbGV3YXJlXCIsXG59O1xuXG5mdW5jdGlvbiByZWdpb25SZWRpcmVjdE1pZGRsZXdhcmUoY2xpZW50Q29uZmlnKSB7XG4gICAgcmV0dXJuIChuZXh0LCBjb250ZXh0KSA9PiBhc3luYyAoYXJncykgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IG5leHQoYXJncyk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgaWYgKGNsaWVudENvbmZpZy5mb2xsb3dSZWdpb25SZWRpcmVjdHMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzdGF0dXNDb2RlID0gZXJyPy4kbWV0YWRhdGE/Lmh0dHBTdGF0dXNDb2RlO1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzSGVhZEJ1Y2tldCA9IGNvbnRleHQuY29tbWFuZE5hbWUgPT09IFwiSGVhZEJ1Y2tldENvbW1hbmRcIjtcbiAgICAgICAgICAgICAgICBjb25zdCBidWNrZXRSZWdpb25IZWFkZXIgPSBlcnI/LiRyZXNwb25zZT8uaGVhZGVycz8uW1wieC1hbXotYnVja2V0LXJlZ2lvblwiXTtcbiAgICAgICAgICAgICAgICBpZiAoYnVja2V0UmVnaW9uSGVhZGVyKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzdGF0dXNDb2RlID09PSAzMDEgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIChzdGF0dXNDb2RlID09PSA0MDAgJiYgKGVycj8ubmFtZSA9PT0gXCJJbGxlZ2FsTG9jYXRpb25Db25zdHJhaW50RXhjZXB0aW9uXCIgfHwgaXNIZWFkQnVja2V0KSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYWN0dWFsUmVnaW9uID0gYnVja2V0UmVnaW9uSGVhZGVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQubG9nZ2VyPy5kZWJ1ZyhgUmVkaXJlY3RpbmcgZnJvbSAke2F3YWl0IGNsaWVudENvbmZpZy5yZWdpb24oKX0gdG8gJHthY3R1YWxSZWdpb259YCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC5fX3MzUmVnaW9uUmVkaXJlY3QgPSBhY3R1YWxSZWdpb247XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlJlZ2lvbiByZWRpcmVjdCBmYWlsZWQ6IFwiICsgZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV4dChhcmdzKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgfVxuICAgIH07XG59XG5jb25zdCByZWdpb25SZWRpcmVjdE1pZGRsZXdhcmVPcHRpb25zID0ge1xuICAgIHN0ZXA6IFwiaW5pdGlhbGl6ZVwiLFxuICAgIHRhZ3M6IFtcIlJFR0lPTl9SRURJUkVDVFwiLCBcIlMzXCJdLFxuICAgIG5hbWU6IFwicmVnaW9uUmVkaXJlY3RNaWRkbGV3YXJlXCIsXG4gICAgb3ZlcnJpZGU6IHRydWUsXG59O1xuY29uc3QgZ2V0UmVnaW9uUmVkaXJlY3RNaWRkbGV3YXJlUGx1Z2luID0gKGNsaWVudENvbmZpZykgPT4gKHtcbiAgICBhcHBseVRvU3RhY2s6IChjbGllbnRTdGFjaykgPT4ge1xuICAgICAgICBjbGllbnRTdGFjay5hZGQocmVnaW9uUmVkaXJlY3RNaWRkbGV3YXJlKGNsaWVudENvbmZpZyksIHJlZ2lvblJlZGlyZWN0TWlkZGxld2FyZU9wdGlvbnMpO1xuICAgICAgICBjbGllbnRTdGFjay5hZGRSZWxhdGl2ZVRvKHJlZ2lvblJlZGlyZWN0RW5kcG9pbnRNaWRkbGV3YXJlKGNsaWVudENvbmZpZyksIHJlZ2lvblJlZGlyZWN0RW5kcG9pbnRNaWRkbGV3YXJlT3B0aW9ucyk7XG4gICAgfSxcbn0pO1xuXG5jb25zdCBzM0V4cGlyZXNNaWRkbGV3YXJlID0gKGNvbmZpZykgPT4ge1xuICAgIHJldHVybiAobmV4dCwgY29udGV4dCkgPT4gYXN5bmMgKGFyZ3MpID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgbmV4dChhcmdzKTtcbiAgICAgICAgY29uc3QgeyByZXNwb25zZSB9ID0gcmVzdWx0O1xuICAgICAgICBpZiAocHJvdG9jb2xIdHRwLkh0dHBSZXNwb25zZS5pc0luc3RhbmNlKHJlc3BvbnNlKSkge1xuICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhlYWRlcnMuZXhwaXJlcykge1xuICAgICAgICAgICAgICAgIHJlc3BvbnNlLmhlYWRlcnMuZXhwaXJlc3N0cmluZyA9IHJlc3BvbnNlLmhlYWRlcnMuZXhwaXJlcztcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBzbWl0aHlDbGllbnQucGFyc2VSZmM3MjMxRGF0ZVRpbWUocmVzcG9uc2UuaGVhZGVycy5leHBpcmVzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dC5sb2dnZXI/Lndhcm4oYEFXUyBTREsgV2FybmluZyBmb3IgJHtjb250ZXh0LmNsaWVudE5hbWV9Ojoke2NvbnRleHQuY29tbWFuZE5hbWV9IHJlc3BvbnNlIHBhcnNpbmcgKCR7cmVzcG9uc2UuaGVhZGVycy5leHBpcmVzfSk6ICR7ZX1gKTtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHJlc3BvbnNlLmhlYWRlcnMuZXhwaXJlcztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9O1xufTtcbmNvbnN0IHMzRXhwaXJlc01pZGRsZXdhcmVPcHRpb25zID0ge1xuICAgIHRhZ3M6IFtcIlMzXCJdLFxuICAgIG5hbWU6IFwiczNFeHBpcmVzTWlkZGxld2FyZVwiLFxuICAgIG92ZXJyaWRlOiB0cnVlLFxuICAgIHJlbGF0aW9uOiBcImFmdGVyXCIsXG4gICAgdG9NaWRkbGV3YXJlOiBcImRlc2VyaWFsaXplck1pZGRsZXdhcmVcIixcbn07XG5jb25zdCBnZXRTM0V4cGlyZXNNaWRkbGV3YXJlUGx1Z2luID0gKGNsaWVudENvbmZpZykgPT4gKHtcbiAgICBhcHBseVRvU3RhY2s6IChjbGllbnRTdGFjaykgPT4ge1xuICAgICAgICBjbGllbnRTdGFjay5hZGRSZWxhdGl2ZVRvKHMzRXhwaXJlc01pZGRsZXdhcmUoKSwgczNFeHBpcmVzTWlkZGxld2FyZU9wdGlvbnMpO1xuICAgIH0sXG59KTtcblxuY2xhc3MgUzNFeHByZXNzSWRlbnRpdHlDYWNoZSB7XG4gICAgZGF0YTtcbiAgICBsYXN0UHVyZ2VUaW1lID0gRGF0ZS5ub3coKTtcbiAgICBzdGF0aWMgRVhQSVJFRF9DUkVERU5USUFMX1BVUkdFX0lOVEVSVkFMX01TID0gMzBfMDAwO1xuICAgIGNvbnN0cnVjdG9yKGRhdGEgPSB7fSkge1xuICAgICAgICB0aGlzLmRhdGEgPSBkYXRhO1xuICAgIH1cbiAgICBnZXQoa2V5KSB7XG4gICAgICAgIGNvbnN0IGVudHJ5ID0gdGhpcy5kYXRhW2tleV07XG4gICAgICAgIGlmICghZW50cnkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZW50cnk7XG4gICAgfVxuICAgIHNldChrZXksIGVudHJ5KSB7XG4gICAgICAgIHRoaXMuZGF0YVtrZXldID0gZW50cnk7XG4gICAgICAgIHJldHVybiBlbnRyeTtcbiAgICB9XG4gICAgZGVsZXRlKGtleSkge1xuICAgICAgICBkZWxldGUgdGhpcy5kYXRhW2tleV07XG4gICAgfVxuICAgIGFzeW5jIHB1cmdlRXhwaXJlZCgpIHtcbiAgICAgICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgICAgICAgaWYgKHRoaXMubGFzdFB1cmdlVGltZSArIFMzRXhwcmVzc0lkZW50aXR5Q2FjaGUuRVhQSVJFRF9DUkVERU5USUFMX1BVUkdFX0lOVEVSVkFMX01TID4gbm93KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gdGhpcy5kYXRhKSB7XG4gICAgICAgICAgICBjb25zdCBlbnRyeSA9IHRoaXMuZGF0YVtrZXldO1xuICAgICAgICAgICAgaWYgKCFlbnRyeS5pc1JlZnJlc2hpbmcpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjcmVkZW50aWFsID0gYXdhaXQgZW50cnkuaWRlbnRpdHk7XG4gICAgICAgICAgICAgICAgaWYgKGNyZWRlbnRpYWwuZXhwaXJhdGlvbikge1xuICAgICAgICAgICAgICAgICAgICBpZiAoY3JlZGVudGlhbC5leHBpcmF0aW9uLmdldFRpbWUoKSA8IG5vdykge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMuZGF0YVtrZXldO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5jbGFzcyBTM0V4cHJlc3NJZGVudGl0eUNhY2hlRW50cnkge1xuICAgIF9pZGVudGl0eTtcbiAgICBpc1JlZnJlc2hpbmc7XG4gICAgYWNjZXNzZWQ7XG4gICAgY29uc3RydWN0b3IoX2lkZW50aXR5LCBpc1JlZnJlc2hpbmcgPSBmYWxzZSwgYWNjZXNzZWQgPSBEYXRlLm5vdygpKSB7XG4gICAgICAgIHRoaXMuX2lkZW50aXR5ID0gX2lkZW50aXR5O1xuICAgICAgICB0aGlzLmlzUmVmcmVzaGluZyA9IGlzUmVmcmVzaGluZztcbiAgICAgICAgdGhpcy5hY2Nlc3NlZCA9IGFjY2Vzc2VkO1xuICAgIH1cbiAgICBnZXQgaWRlbnRpdHkoKSB7XG4gICAgICAgIHRoaXMuYWNjZXNzZWQgPSBEYXRlLm5vdygpO1xuICAgICAgICByZXR1cm4gdGhpcy5faWRlbnRpdHk7XG4gICAgfVxufVxuXG5jbGFzcyBTM0V4cHJlc3NJZGVudGl0eVByb3ZpZGVySW1wbCB7XG4gICAgY3JlYXRlU2Vzc2lvbkZuO1xuICAgIGNhY2hlO1xuICAgIHN0YXRpYyBSRUZSRVNIX1dJTkRPV19NUyA9IDYwXzAwMDtcbiAgICBjb25zdHJ1Y3RvcihjcmVhdGVTZXNzaW9uRm4sIGNhY2hlID0gbmV3IFMzRXhwcmVzc0lkZW50aXR5Q2FjaGUoKSkge1xuICAgICAgICB0aGlzLmNyZWF0ZVNlc3Npb25GbiA9IGNyZWF0ZVNlc3Npb25GbjtcbiAgICAgICAgdGhpcy5jYWNoZSA9IGNhY2hlO1xuICAgIH1cbiAgICBhc3luYyBnZXRTM0V4cHJlc3NJZGVudGl0eShhd3NJZGVudGl0eSwgaWRlbnRpdHlQcm9wZXJ0aWVzKSB7XG4gICAgICAgIGNvbnN0IGtleSA9IGlkZW50aXR5UHJvcGVydGllcy5CdWNrZXQ7XG4gICAgICAgIGNvbnN0IHsgY2FjaGUgfSA9IHRoaXM7XG4gICAgICAgIGNvbnN0IGVudHJ5ID0gY2FjaGUuZ2V0KGtleSk7XG4gICAgICAgIGlmIChlbnRyeSkge1xuICAgICAgICAgICAgcmV0dXJuIGVudHJ5LmlkZW50aXR5LnRoZW4oKGlkZW50aXR5KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNFeHBpcmVkID0gKGlkZW50aXR5LmV4cGlyYXRpb24/LmdldFRpbWUoKSA/PyAwKSA8IERhdGUubm93KCk7XG4gICAgICAgICAgICAgICAgaWYgKGlzRXhwaXJlZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2FjaGUuc2V0KGtleSwgbmV3IFMzRXhwcmVzc0lkZW50aXR5Q2FjaGVFbnRyeSh0aGlzLmdldElkZW50aXR5KGtleSkpKS5pZGVudGl0eTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgaXNFeHBpcmluZ1Nvb24gPSAoaWRlbnRpdHkuZXhwaXJhdGlvbj8uZ2V0VGltZSgpID8/IDApIDwgRGF0ZS5ub3coKSArIFMzRXhwcmVzc0lkZW50aXR5UHJvdmlkZXJJbXBsLlJFRlJFU0hfV0lORE9XX01TO1xuICAgICAgICAgICAgICAgIGlmIChpc0V4cGlyaW5nU29vbiAmJiAhZW50cnkuaXNSZWZyZXNoaW5nKSB7XG4gICAgICAgICAgICAgICAgICAgIGVudHJ5LmlzUmVmcmVzaGluZyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0SWRlbnRpdHkoa2V5KS50aGVuKChpZCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGUuc2V0KGtleSwgbmV3IFMzRXhwcmVzc0lkZW50aXR5Q2FjaGVFbnRyeShQcm9taXNlLnJlc29sdmUoaWQpKSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gaWRlbnRpdHk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY2FjaGUuc2V0KGtleSwgbmV3IFMzRXhwcmVzc0lkZW50aXR5Q2FjaGVFbnRyeSh0aGlzLmdldElkZW50aXR5KGtleSkpKS5pZGVudGl0eTtcbiAgICB9XG4gICAgYXN5bmMgZ2V0SWRlbnRpdHkoa2V5KSB7XG4gICAgICAgIGF3YWl0IHRoaXMuY2FjaGUucHVyZ2VFeHBpcmVkKCkuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oXCJFcnJvciB3aGlsZSBjbGVhcmluZyBleHBpcmVkIGVudHJpZXMgaW4gUzNFeHByZXNzSWRlbnRpdHlDYWNoZTogXFxuXCIgKyBlcnJvcik7XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBzZXNzaW9uID0gYXdhaXQgdGhpcy5jcmVhdGVTZXNzaW9uRm4oa2V5KTtcbiAgICAgICAgaWYgKCFzZXNzaW9uLkNyZWRlbnRpYWxzPy5BY2Nlc3NLZXlJZCB8fCAhc2Vzc2lvbi5DcmVkZW50aWFscz8uU2VjcmV0QWNjZXNzS2V5KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJzMyNjcmVhdGVTZXNzaW9uIHJlc3BvbnNlIGNyZWRlbnRpYWwgbWlzc2luZyBBY2Nlc3NLZXlJZCBvciBTZWNyZXRBY2Nlc3NLZXkuXCIpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGlkZW50aXR5ID0ge1xuICAgICAgICAgICAgYWNjZXNzS2V5SWQ6IHNlc3Npb24uQ3JlZGVudGlhbHMuQWNjZXNzS2V5SWQsXG4gICAgICAgICAgICBzZWNyZXRBY2Nlc3NLZXk6IHNlc3Npb24uQ3JlZGVudGlhbHMuU2VjcmV0QWNjZXNzS2V5LFxuICAgICAgICAgICAgc2Vzc2lvblRva2VuOiBzZXNzaW9uLkNyZWRlbnRpYWxzLlNlc3Npb25Ub2tlbixcbiAgICAgICAgICAgIGV4cGlyYXRpb246IHNlc3Npb24uQ3JlZGVudGlhbHMuRXhwaXJhdGlvbiA/IG5ldyBEYXRlKHNlc3Npb24uQ3JlZGVudGlhbHMuRXhwaXJhdGlvbikgOiB1bmRlZmluZWQsXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBpZGVudGl0eTtcbiAgICB9XG59XG5cbmNvbnN0IFMzX0VYUFJFU1NfQlVDS0VUX1RZUEUgPSBcIkRpcmVjdG9yeVwiO1xuY29uc3QgUzNfRVhQUkVTU19CQUNLRU5EID0gXCJTM0V4cHJlc3NcIjtcbmNvbnN0IFMzX0VYUFJFU1NfQVVUSF9TQ0hFTUUgPSBcInNpZ3Y0LXMzZXhwcmVzc1wiO1xuY29uc3QgU0VTU0lPTl9UT0tFTl9RVUVSWV9QQVJBTSA9IFwiWC1BbXotUzNzZXNzaW9uLVRva2VuXCI7XG5jb25zdCBTRVNTSU9OX1RPS0VOX0hFQURFUiA9IFNFU1NJT05fVE9LRU5fUVVFUllfUEFSQU0udG9Mb3dlckNhc2UoKTtcbmNvbnN0IE5PREVfRElTQUJMRV9TM19FWFBSRVNTX1NFU1NJT05fQVVUSF9FTlZfTkFNRSA9IFwiQVdTX1MzX0RJU0FCTEVfRVhQUkVTU19TRVNTSU9OX0FVVEhcIjtcbmNvbnN0IE5PREVfRElTQUJMRV9TM19FWFBSRVNTX1NFU1NJT05fQVVUSF9JTklfTkFNRSA9IFwiczNfZGlzYWJsZV9leHByZXNzX3Nlc3Npb25fYXV0aFwiO1xuY29uc3QgTk9ERV9ESVNBQkxFX1MzX0VYUFJFU1NfU0VTU0lPTl9BVVRIX09QVElPTlMgPSB7XG4gICAgZW52aXJvbm1lbnRWYXJpYWJsZVNlbGVjdG9yOiAoZW52KSA9PiB1dGlsQ29uZmlnUHJvdmlkZXIuYm9vbGVhblNlbGVjdG9yKGVudiwgTk9ERV9ESVNBQkxFX1MzX0VYUFJFU1NfU0VTU0lPTl9BVVRIX0VOVl9OQU1FLCB1dGlsQ29uZmlnUHJvdmlkZXIuU2VsZWN0b3JUeXBlLkVOViksXG4gICAgY29uZmlnRmlsZVNlbGVjdG9yOiAocHJvZmlsZSkgPT4gdXRpbENvbmZpZ1Byb3ZpZGVyLmJvb2xlYW5TZWxlY3Rvcihwcm9maWxlLCBOT0RFX0RJU0FCTEVfUzNfRVhQUkVTU19TRVNTSU9OX0FVVEhfSU5JX05BTUUsIHV0aWxDb25maWdQcm92aWRlci5TZWxlY3RvclR5cGUuQ09ORklHKSxcbiAgICBkZWZhdWx0OiBmYWxzZSxcbn07XG5cbmNsYXNzIFNpZ25hdHVyZVY0UzNFeHByZXNzIGV4dGVuZHMgc2lnbmF0dXJlVjQuU2lnbmF0dXJlVjQge1xuICAgIGFzeW5jIHNpZ25XaXRoQ3JlZGVudGlhbHMocmVxdWVzdFRvU2lnbiwgY3JlZGVudGlhbHMsIG9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgY3JlZGVudGlhbHNXaXRob3V0U2Vzc2lvblRva2VuID0gZ2V0Q3JlZGVudGlhbHNXaXRob3V0U2Vzc2lvblRva2VuKGNyZWRlbnRpYWxzKTtcbiAgICAgICAgcmVxdWVzdFRvU2lnbi5oZWFkZXJzW1NFU1NJT05fVE9LRU5fSEVBREVSXSA9IGNyZWRlbnRpYWxzLnNlc3Npb25Ub2tlbjtcbiAgICAgICAgY29uc3QgcHJpdmF0ZUFjY2VzcyA9IHRoaXM7XG4gICAgICAgIHNldFNpbmdsZU92ZXJyaWRlKHByaXZhdGVBY2Nlc3MsIGNyZWRlbnRpYWxzV2l0aG91dFNlc3Npb25Ub2tlbik7XG4gICAgICAgIHJldHVybiBwcml2YXRlQWNjZXNzLnNpZ25SZXF1ZXN0KHJlcXVlc3RUb1NpZ24sIG9wdGlvbnMgPz8ge30pO1xuICAgIH1cbiAgICBhc3luYyBwcmVzaWduV2l0aENyZWRlbnRpYWxzKHJlcXVlc3RUb1NpZ24sIGNyZWRlbnRpYWxzLCBvcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IGNyZWRlbnRpYWxzV2l0aG91dFNlc3Npb25Ub2tlbiA9IGdldENyZWRlbnRpYWxzV2l0aG91dFNlc3Npb25Ub2tlbihjcmVkZW50aWFscyk7XG4gICAgICAgIGRlbGV0ZSByZXF1ZXN0VG9TaWduLmhlYWRlcnNbU0VTU0lPTl9UT0tFTl9IRUFERVJdO1xuICAgICAgICByZXF1ZXN0VG9TaWduLmhlYWRlcnNbU0VTU0lPTl9UT0tFTl9RVUVSWV9QQVJBTV0gPSBjcmVkZW50aWFscy5zZXNzaW9uVG9rZW47XG4gICAgICAgIHJlcXVlc3RUb1NpZ24ucXVlcnkgPSByZXF1ZXN0VG9TaWduLnF1ZXJ5ID8/IHt9O1xuICAgICAgICByZXF1ZXN0VG9TaWduLnF1ZXJ5W1NFU1NJT05fVE9LRU5fUVVFUllfUEFSQU1dID0gY3JlZGVudGlhbHMuc2Vzc2lvblRva2VuO1xuICAgICAgICBjb25zdCBwcml2YXRlQWNjZXNzID0gdGhpcztcbiAgICAgICAgc2V0U2luZ2xlT3ZlcnJpZGUocHJpdmF0ZUFjY2VzcywgY3JlZGVudGlhbHNXaXRob3V0U2Vzc2lvblRva2VuKTtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJlc2lnbihyZXF1ZXN0VG9TaWduLCBvcHRpb25zKTtcbiAgICB9XG59XG5mdW5jdGlvbiBnZXRDcmVkZW50aWFsc1dpdGhvdXRTZXNzaW9uVG9rZW4oY3JlZGVudGlhbHMpIHtcbiAgICBjb25zdCBjcmVkZW50aWFsc1dpdGhvdXRTZXNzaW9uVG9rZW4gPSB7XG4gICAgICAgIGFjY2Vzc0tleUlkOiBjcmVkZW50aWFscy5hY2Nlc3NLZXlJZCxcbiAgICAgICAgc2VjcmV0QWNjZXNzS2V5OiBjcmVkZW50aWFscy5zZWNyZXRBY2Nlc3NLZXksXG4gICAgICAgIGV4cGlyYXRpb246IGNyZWRlbnRpYWxzLmV4cGlyYXRpb24sXG4gICAgfTtcbiAgICByZXR1cm4gY3JlZGVudGlhbHNXaXRob3V0U2Vzc2lvblRva2VuO1xufVxuZnVuY3Rpb24gc2V0U2luZ2xlT3ZlcnJpZGUocHJpdmF0ZUFjY2VzcywgY3JlZGVudGlhbHNXaXRob3V0U2Vzc2lvblRva2VuKSB7XG4gICAgY29uc3QgaWQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiU2lnbmF0dXJlVjRTM0V4cHJlc3MgY3JlZGVudGlhbCBvdmVycmlkZSB3YXMgY3JlYXRlZCBidXQgbm90IGNhbGxlZC5cIik7XG4gICAgfSwgMTApO1xuICAgIGNvbnN0IGN1cnJlbnRDcmVkZW50aWFsUHJvdmlkZXIgPSBwcml2YXRlQWNjZXNzLmNyZWRlbnRpYWxQcm92aWRlcjtcbiAgICBjb25zdCBvdmVycmlkZUNyZWRlbnRpYWxzUHJvdmlkZXJPbmNlID0gKCkgPT4ge1xuICAgICAgICBjbGVhclRpbWVvdXQoaWQpO1xuICAgICAgICBwcml2YXRlQWNjZXNzLmNyZWRlbnRpYWxQcm92aWRlciA9IGN1cnJlbnRDcmVkZW50aWFsUHJvdmlkZXI7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoY3JlZGVudGlhbHNXaXRob3V0U2Vzc2lvblRva2VuKTtcbiAgICB9O1xuICAgIHByaXZhdGVBY2Nlc3MuY3JlZGVudGlhbFByb3ZpZGVyID0gb3ZlcnJpZGVDcmVkZW50aWFsc1Byb3ZpZGVyT25jZTtcbn1cblxuY29uc3QgczNFeHByZXNzTWlkZGxld2FyZSA9IChvcHRpb25zKSA9PiB7XG4gICAgcmV0dXJuIChuZXh0LCBjb250ZXh0KSA9PiBhc3luYyAoYXJncykgPT4ge1xuICAgICAgICBpZiAoY29udGV4dC5lbmRwb2ludFYyKSB7XG4gICAgICAgICAgICBjb25zdCBlbmRwb2ludCA9IGNvbnRleHQuZW5kcG9pbnRWMjtcbiAgICAgICAgICAgIGNvbnN0IGlzUzNFeHByZXNzQXV0aCA9IGVuZHBvaW50LnByb3BlcnRpZXM/LmF1dGhTY2hlbWVzPy5bMF0/Lm5hbWUgPT09IFMzX0VYUFJFU1NfQVVUSF9TQ0hFTUU7XG4gICAgICAgICAgICBjb25zdCBpc1MzRXhwcmVzc0J1Y2tldCA9IGVuZHBvaW50LnByb3BlcnRpZXM/LmJhY2tlbmQgPT09IFMzX0VYUFJFU1NfQkFDS0VORCB8fFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LnByb3BlcnRpZXM/LmJ1Y2tldFR5cGUgPT09IFMzX0VYUFJFU1NfQlVDS0VUX1RZUEU7XG4gICAgICAgICAgICBpZiAoaXNTM0V4cHJlc3NCdWNrZXQpIHtcbiAgICAgICAgICAgICAgICBjbGllbnQuc2V0RmVhdHVyZShjb250ZXh0LCBcIlMzX0VYUFJFU1NfQlVDS0VUXCIsIFwiSlwiKTtcbiAgICAgICAgICAgICAgICBjb250ZXh0LmlzUzNFeHByZXNzQnVja2V0ID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc1MzRXhwcmVzc0F1dGgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZXF1ZXN0QnVja2V0ID0gYXJncy5pbnB1dC5CdWNrZXQ7XG4gICAgICAgICAgICAgICAgaWYgKHJlcXVlc3RCdWNrZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgczNFeHByZXNzSWRlbnRpdHkgPSBhd2FpdCBvcHRpb25zLnMzRXhwcmVzc0lkZW50aXR5UHJvdmlkZXIuZ2V0UzNFeHByZXNzSWRlbnRpdHkoYXdhaXQgb3B0aW9ucy5jcmVkZW50aWFscygpLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBCdWNrZXQ6IHJlcXVlc3RCdWNrZXQsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBjb250ZXh0LnMzRXhwcmVzc0lkZW50aXR5ID0gczNFeHByZXNzSWRlbnRpdHk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChwcm90b2NvbEh0dHAuSHR0cFJlcXVlc3QuaXNJbnN0YW5jZShhcmdzLnJlcXVlc3QpICYmIHMzRXhwcmVzc0lkZW50aXR5LnNlc3Npb25Ub2tlbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgYXJncy5yZXF1ZXN0LmhlYWRlcnNbU0VTU0lPTl9UT0tFTl9IRUFERVJdID0gczNFeHByZXNzSWRlbnRpdHkuc2Vzc2lvblRva2VuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXh0KGFyZ3MpO1xuICAgIH07XG59O1xuY29uc3QgczNFeHByZXNzTWlkZGxld2FyZU9wdGlvbnMgPSB7XG4gICAgbmFtZTogXCJzM0V4cHJlc3NNaWRkbGV3YXJlXCIsXG4gICAgc3RlcDogXCJidWlsZFwiLFxuICAgIHRhZ3M6IFtcIlMzXCIsIFwiUzNfRVhQUkVTU1wiXSxcbiAgICBvdmVycmlkZTogdHJ1ZSxcbn07XG5jb25zdCBnZXRTM0V4cHJlc3NQbHVnaW4gPSAob3B0aW9ucykgPT4gKHtcbiAgICBhcHBseVRvU3RhY2s6IChjbGllbnRTdGFjaykgPT4ge1xuICAgICAgICBjbGllbnRTdGFjay5hZGQoczNFeHByZXNzTWlkZGxld2FyZShvcHRpb25zKSwgczNFeHByZXNzTWlkZGxld2FyZU9wdGlvbnMpO1xuICAgIH0sXG59KTtcblxuY29uc3Qgc2lnblMzRXhwcmVzcyA9IGFzeW5jIChzM0V4cHJlc3NJZGVudGl0eSwgc2lnbmluZ09wdGlvbnMsIHJlcXVlc3QsIHNpZ1Y0TXVsdGlSZWdpb25TaWduZXIpID0+IHtcbiAgICBjb25zdCBzaWduZWRSZXF1ZXN0ID0gYXdhaXQgc2lnVjRNdWx0aVJlZ2lvblNpZ25lci5zaWduV2l0aENyZWRlbnRpYWxzKHJlcXVlc3QsIHMzRXhwcmVzc0lkZW50aXR5LCB7fSk7XG4gICAgaWYgKHNpZ25lZFJlcXVlc3QuaGVhZGVyc1tcIlgtQW16LVNlY3VyaXR5LVRva2VuXCJdIHx8IHNpZ25lZFJlcXVlc3QuaGVhZGVyc1tcIngtYW16LXNlY3VyaXR5LXRva2VuXCJdKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIlgtQW16LVNlY3VyaXR5LVRva2VuIG11c3Qgbm90IGJlIHNldCBmb3IgczMtZXhwcmVzcyByZXF1ZXN0cy5cIik7XG4gICAgfVxuICAgIHJldHVybiBzaWduZWRSZXF1ZXN0O1xufTtcblxuY29uc3QgZGVmYXVsdEVycm9ySGFuZGxlciA9IChzaWduaW5nUHJvcGVydGllcykgPT4gKGVycm9yKSA9PiB7XG4gICAgdGhyb3cgZXJyb3I7XG59O1xuY29uc3QgZGVmYXVsdFN1Y2Nlc3NIYW5kbGVyID0gKGh0dHBSZXNwb25zZSwgc2lnbmluZ1Byb3BlcnRpZXMpID0+IHsgfTtcbmNvbnN0IHMzRXhwcmVzc0h0dHBTaWduaW5nTWlkZGxld2FyZU9wdGlvbnMgPSBjb3JlLmh0dHBTaWduaW5nTWlkZGxld2FyZU9wdGlvbnM7XG5jb25zdCBzM0V4cHJlc3NIdHRwU2lnbmluZ01pZGRsZXdhcmUgPSAoY29uZmlnKSA9PiAobmV4dCwgY29udGV4dCkgPT4gYXN5bmMgKGFyZ3MpID0+IHtcbiAgICBpZiAoIXByb3RvY29sSHR0cC5IdHRwUmVxdWVzdC5pc0luc3RhbmNlKGFyZ3MucmVxdWVzdCkpIHtcbiAgICAgICAgcmV0dXJuIG5leHQoYXJncyk7XG4gICAgfVxuICAgIGNvbnN0IHNtaXRoeUNvbnRleHQgPSB1dGlsTWlkZGxld2FyZS5nZXRTbWl0aHlDb250ZXh0KGNvbnRleHQpO1xuICAgIGNvbnN0IHNjaGVtZSA9IHNtaXRoeUNvbnRleHQuc2VsZWN0ZWRIdHRwQXV0aFNjaGVtZTtcbiAgICBpZiAoIXNjaGVtZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIEh0dHBBdXRoU2NoZW1lIHdhcyBzZWxlY3RlZDogdW5hYmxlIHRvIHNpZ24gcmVxdWVzdGApO1xuICAgIH1cbiAgICBjb25zdCB7IGh0dHBBdXRoT3B0aW9uOiB7IHNpZ25pbmdQcm9wZXJ0aWVzID0ge30gfSwgaWRlbnRpdHksIHNpZ25lciwgfSA9IHNjaGVtZTtcbiAgICBsZXQgcmVxdWVzdDtcbiAgICBpZiAoY29udGV4dC5zM0V4cHJlc3NJZGVudGl0eSkge1xuICAgICAgICByZXF1ZXN0ID0gYXdhaXQgc2lnblMzRXhwcmVzcyhjb250ZXh0LnMzRXhwcmVzc0lkZW50aXR5LCBzaWduaW5nUHJvcGVydGllcywgYXJncy5yZXF1ZXN0LCBhd2FpdCBjb25maWcuc2lnbmVyKCkpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgcmVxdWVzdCA9IGF3YWl0IHNpZ25lci5zaWduKGFyZ3MucmVxdWVzdCwgaWRlbnRpdHksIHNpZ25pbmdQcm9wZXJ0aWVzKTtcbiAgICB9XG4gICAgY29uc3Qgb3V0cHV0ID0gYXdhaXQgbmV4dCh7XG4gICAgICAgIC4uLmFyZ3MsXG4gICAgICAgIHJlcXVlc3QsXG4gICAgfSkuY2F0Y2goKHNpZ25lci5lcnJvckhhbmRsZXIgfHwgZGVmYXVsdEVycm9ySGFuZGxlcikoc2lnbmluZ1Byb3BlcnRpZXMpKTtcbiAgICAoc2lnbmVyLnN1Y2Nlc3NIYW5kbGVyIHx8IGRlZmF1bHRTdWNjZXNzSGFuZGxlcikob3V0cHV0LnJlc3BvbnNlLCBzaWduaW5nUHJvcGVydGllcyk7XG4gICAgcmV0dXJuIG91dHB1dDtcbn07XG5jb25zdCBnZXRTM0V4cHJlc3NIdHRwU2lnbmluZ1BsdWdpbiA9IChjb25maWcpID0+ICh7XG4gICAgYXBwbHlUb1N0YWNrOiAoY2xpZW50U3RhY2spID0+IHtcbiAgICAgICAgY2xpZW50U3RhY2suYWRkUmVsYXRpdmVUbyhzM0V4cHJlc3NIdHRwU2lnbmluZ01pZGRsZXdhcmUoY29uZmlnKSwgY29yZS5odHRwU2lnbmluZ01pZGRsZXdhcmVPcHRpb25zKTtcbiAgICB9LFxufSk7XG5cbmNvbnN0IHJlc29sdmVTM0NvbmZpZyA9IChpbnB1dCwgeyBzZXNzaW9uLCB9KSA9PiB7XG4gICAgY29uc3QgW3MzQ2xpZW50UHJvdmlkZXIsIENyZWF0ZVNlc3Npb25Db21tYW5kQ3Rvcl0gPSBzZXNzaW9uO1xuICAgIGNvbnN0IHsgZm9yY2VQYXRoU3R5bGUsIHVzZUFjY2VsZXJhdGVFbmRwb2ludCwgZGlzYWJsZU11bHRpcmVnaW9uQWNjZXNzUG9pbnRzLCBmb2xsb3dSZWdpb25SZWRpcmVjdHMsIHMzRXhwcmVzc0lkZW50aXR5UHJvdmlkZXIsIGJ1Y2tldEVuZHBvaW50LCBleHBlY3RDb250aW51ZUhlYWRlciwgfSA9IGlucHV0O1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKGlucHV0LCB7XG4gICAgICAgIGZvcmNlUGF0aFN0eWxlOiBmb3JjZVBhdGhTdHlsZSA/PyBmYWxzZSxcbiAgICAgICAgdXNlQWNjZWxlcmF0ZUVuZHBvaW50OiB1c2VBY2NlbGVyYXRlRW5kcG9pbnQgPz8gZmFsc2UsXG4gICAgICAgIGRpc2FibGVNdWx0aXJlZ2lvbkFjY2Vzc1BvaW50czogZGlzYWJsZU11bHRpcmVnaW9uQWNjZXNzUG9pbnRzID8/IGZhbHNlLFxuICAgICAgICBmb2xsb3dSZWdpb25SZWRpcmVjdHM6IGZvbGxvd1JlZ2lvblJlZGlyZWN0cyA/PyBmYWxzZSxcbiAgICAgICAgczNFeHByZXNzSWRlbnRpdHlQcm92aWRlcjogczNFeHByZXNzSWRlbnRpdHlQcm92aWRlciA/P1xuICAgICAgICAgICAgbmV3IFMzRXhwcmVzc0lkZW50aXR5UHJvdmlkZXJJbXBsKGFzeW5jIChrZXkpID0+IHMzQ2xpZW50UHJvdmlkZXIoKS5zZW5kKG5ldyBDcmVhdGVTZXNzaW9uQ29tbWFuZEN0b3Ioe1xuICAgICAgICAgICAgICAgIEJ1Y2tldDoga2V5LFxuICAgICAgICAgICAgfSkpKSxcbiAgICAgICAgYnVja2V0RW5kcG9pbnQ6IGJ1Y2tldEVuZHBvaW50ID8/IGZhbHNlLFxuICAgICAgICBleHBlY3RDb250aW51ZUhlYWRlcjogZXhwZWN0Q29udGludWVIZWFkZXIgPz8gMl8wOTdfMTUyLFxuICAgIH0pO1xufTtcblxuY29uc3QgVEhST1dfSUZfRU1QVFlfQk9EWSA9IHtcbiAgICBDb3B5T2JqZWN0Q29tbWFuZDogdHJ1ZSxcbiAgICBVcGxvYWRQYXJ0Q29weUNvbW1hbmQ6IHRydWUsXG4gICAgQ29tcGxldGVNdWx0aXBhcnRVcGxvYWRDb21tYW5kOiB0cnVlLFxufTtcbmNvbnN0IHRocm93MjAwRXhjZXB0aW9uc01pZGRsZXdhcmUgPSAoY29uZmlnKSA9PiAobmV4dCwgY29udGV4dCkgPT4gYXN5bmMgKGFyZ3MpID0+IHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBuZXh0KGFyZ3MpO1xuICAgIGNvbnN0IHsgcmVzcG9uc2UgfSA9IHJlc3VsdDtcbiAgICBpZiAoIXByb3RvY29sSHR0cC5IdHRwUmVzcG9uc2UuaXNJbnN0YW5jZShyZXNwb25zZSkpIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgY29uc3QgeyBzdGF0dXNDb2RlLCBib2R5IH0gPSByZXNwb25zZTtcbiAgICBpZiAoc3RhdHVzQ29kZSA8IDIwMCB8fCBzdGF0dXNDb2RlID49IDMwMCkge1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICBjb25zdCBib2R5Qnl0ZXMgPSBhd2FpdCBjb2xsZWN0Qm9keShib2R5LCBjb25maWcpO1xuICAgIHJlc3BvbnNlLmJvZHkgPSB0b1N0cmVhbS50b1N0cmVhbShib2R5Qnl0ZXMpO1xuICAgIGlmIChib2R5Qnl0ZXMubGVuZ3RoID09PSAwICYmIFRIUk9XX0lGX0VNUFRZX0JPRFlbY29udGV4dC5jb21tYW5kTmFtZV0pIHtcbiAgICAgICAgY29uc3QgZXJyID0gbmV3IEVycm9yKFwiUzMgYWJvcnRlZCByZXF1ZXN0XCIpO1xuICAgICAgICBlcnIuJG1ldGFkYXRhID0ge1xuICAgICAgICAgICAgaHR0cFN0YXR1c0NvZGU6IDUwMyxcbiAgICAgICAgfTtcbiAgICAgICAgZXJyLm5hbWUgPSBcIkludGVybmFsRXJyb3JcIjtcbiAgICAgICAgdGhyb3cgZXJyO1xuICAgIH1cbiAgICBjb25zdCBib2R5U3RyaW5nVGFpbCA9IGNvbmZpZy51dGY4RW5jb2Rlcihib2R5Qnl0ZXMuc3ViYXJyYXkoYm9keUJ5dGVzLmxlbmd0aCAtIDE2KSk7XG4gICAgaWYgKGJvZHlTdHJpbmdUYWlsICYmIGJvZHlTdHJpbmdUYWlsLmVuZHNXaXRoKFwiPC9FcnJvcj5cIikpIHtcbiAgICAgICAgcmVzcG9uc2Uuc3RhdHVzQ29kZSA9IDUwMztcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbn07XG5jb25zdCBjb2xsZWN0Qm9keSA9IChzdHJlYW1Cb2R5ID0gbmV3IFVpbnQ4QXJyYXkoKSwgY29udGV4dCkgPT4ge1xuICAgIGlmIChzdHJlYW1Cb2R5IGluc3RhbmNlb2YgVWludDhBcnJheSkge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHN0cmVhbUJvZHkpO1xuICAgIH1cbiAgICByZXR1cm4gY29udGV4dC5zdHJlYW1Db2xsZWN0b3Ioc3RyZWFtQm9keSkgfHwgUHJvbWlzZS5yZXNvbHZlKG5ldyBVaW50OEFycmF5KCkpO1xufTtcbmNvbnN0IHRocm93MjAwRXhjZXB0aW9uc01pZGRsZXdhcmVPcHRpb25zID0ge1xuICAgIHJlbGF0aW9uOiBcImFmdGVyXCIsXG4gICAgdG9NaWRkbGV3YXJlOiBcImRlc2VyaWFsaXplck1pZGRsZXdhcmVcIixcbiAgICB0YWdzOiBbXCJUSFJPV18yMDBfRVhDRVBUSU9OU1wiLCBcIlMzXCJdLFxuICAgIG5hbWU6IFwidGhyb3cyMDBFeGNlcHRpb25zTWlkZGxld2FyZVwiLFxuICAgIG92ZXJyaWRlOiB0cnVlLFxufTtcbmNvbnN0IGdldFRocm93MjAwRXhjZXB0aW9uc1BsdWdpbiA9IChjb25maWcpID0+ICh7XG4gICAgYXBwbHlUb1N0YWNrOiAoY2xpZW50U3RhY2spID0+IHtcbiAgICAgICAgY2xpZW50U3RhY2suYWRkUmVsYXRpdmVUbyh0aHJvdzIwMEV4Y2VwdGlvbnNNaWRkbGV3YXJlKGNvbmZpZyksIHRocm93MjAwRXhjZXB0aW9uc01pZGRsZXdhcmVPcHRpb25zKTtcbiAgICB9LFxufSk7XG5cbmZ1bmN0aW9uIGJ1Y2tldEVuZHBvaW50TWlkZGxld2FyZShvcHRpb25zKSB7XG4gICAgcmV0dXJuIChuZXh0LCBjb250ZXh0KSA9PiBhc3luYyAoYXJncykgPT4ge1xuICAgICAgICBpZiAob3B0aW9ucy5idWNrZXRFbmRwb2ludCkge1xuICAgICAgICAgICAgY29uc3QgZW5kcG9pbnQgPSBjb250ZXh0LmVuZHBvaW50VjI7XG4gICAgICAgICAgICBpZiAoZW5kcG9pbnQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBidWNrZXQgPSBhcmdzLmlucHV0LkJ1Y2tldDtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGJ1Y2tldCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYnVja2V0RW5kcG9pbnRVcmwgPSBuZXcgVVJMKGJ1Y2tldCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LmVuZHBvaW50VjIgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBidWNrZXRFbmRwb2ludFVybCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHdhcm5pbmcgPSBgQGF3cy1zZGsvbWlkZGxld2FyZS1zZGstczM6IGJ1Y2tldEVuZHBvaW50PXRydWUgd2FzIHNldCBidXQgQnVja2V0PSR7YnVja2V0fSBjb3VsZCBub3QgYmUgcGFyc2VkIGFzIFVSTC5gO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnRleHQubG9nZ2VyPy5jb25zdHJ1Y3Rvcj8ubmFtZSA9PT0gXCJOb09wTG9nZ2VyXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4od2FybmluZyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LmxvZ2dlcj8ud2Fybj8uKHdhcm5pbmcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV4dChhcmdzKTtcbiAgICB9O1xufVxuY29uc3QgYnVja2V0RW5kcG9pbnRNaWRkbGV3YXJlT3B0aW9ucyA9IHtcbiAgICBuYW1lOiBcImJ1Y2tldEVuZHBvaW50TWlkZGxld2FyZVwiLFxuICAgIG92ZXJyaWRlOiB0cnVlLFxuICAgIHJlbGF0aW9uOiBcImFmdGVyXCIsXG4gICAgdG9NaWRkbGV3YXJlOiBcImVuZHBvaW50VjJNaWRkbGV3YXJlXCIsXG59O1xuXG5mdW5jdGlvbiB2YWxpZGF0ZUJ1Y2tldE5hbWVNaWRkbGV3YXJlKHsgYnVja2V0RW5kcG9pbnQgfSkge1xuICAgIHJldHVybiAobmV4dCkgPT4gYXN5bmMgKGFyZ3MpID0+IHtcbiAgICAgICAgY29uc3QgeyBpbnB1dDogeyBCdWNrZXQgfSwgfSA9IGFyZ3M7XG4gICAgICAgIGlmICghYnVja2V0RW5kcG9pbnQgJiYgdHlwZW9mIEJ1Y2tldCA9PT0gXCJzdHJpbmdcIiAmJiAhdXRpbEFyblBhcnNlci52YWxpZGF0ZShCdWNrZXQpICYmIEJ1Y2tldC5pbmRleE9mKFwiL1wiKSA+PSAwKSB7XG4gICAgICAgICAgICBjb25zdCBlcnIgPSBuZXcgRXJyb3IoYEJ1Y2tldCBuYW1lIHNob3VsZG4ndCBjb250YWluICcvJywgcmVjZWl2ZWQgJyR7QnVja2V0fSdgKTtcbiAgICAgICAgICAgIGVyci5uYW1lID0gXCJJbnZhbGlkQnVja2V0TmFtZVwiO1xuICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXh0KHsgLi4uYXJncyB9KTtcbiAgICB9O1xufVxuY29uc3QgdmFsaWRhdGVCdWNrZXROYW1lTWlkZGxld2FyZU9wdGlvbnMgPSB7XG4gICAgc3RlcDogXCJpbml0aWFsaXplXCIsXG4gICAgdGFnczogW1wiVkFMSURBVEVfQlVDS0VUX05BTUVcIl0sXG4gICAgbmFtZTogXCJ2YWxpZGF0ZUJ1Y2tldE5hbWVNaWRkbGV3YXJlXCIsXG4gICAgb3ZlcnJpZGU6IHRydWUsXG59O1xuY29uc3QgZ2V0VmFsaWRhdGVCdWNrZXROYW1lUGx1Z2luID0gKG9wdGlvbnMpID0+ICh7XG4gICAgYXBwbHlUb1N0YWNrOiAoY2xpZW50U3RhY2spID0+IHtcbiAgICAgICAgY2xpZW50U3RhY2suYWRkKHZhbGlkYXRlQnVja2V0TmFtZU1pZGRsZXdhcmUob3B0aW9ucyksIHZhbGlkYXRlQnVja2V0TmFtZU1pZGRsZXdhcmVPcHRpb25zKTtcbiAgICAgICAgY2xpZW50U3RhY2suYWRkUmVsYXRpdmVUbyhidWNrZXRFbmRwb2ludE1pZGRsZXdhcmUob3B0aW9ucyksIGJ1Y2tldEVuZHBvaW50TWlkZGxld2FyZU9wdGlvbnMpO1xuICAgIH0sXG59KTtcblxuY2xhc3MgUzNSZXN0WG1sUHJvdG9jb2wgZXh0ZW5kcyBwcm90b2NvbHMuQXdzUmVzdFhtbFByb3RvY29sIHtcbiAgICBhc3luYyBzZXJpYWxpemVSZXF1ZXN0KG9wZXJhdGlvblNjaGVtYSwgaW5wdXQsIGNvbnRleHQpIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IGF3YWl0IHN1cGVyLnNlcmlhbGl6ZVJlcXVlc3Qob3BlcmF0aW9uU2NoZW1hLCBpbnB1dCwgY29udGV4dCk7XG4gICAgICAgIGNvbnN0IG5zID0gc2NoZW1hLk5vcm1hbGl6ZWRTY2hlbWEub2Yob3BlcmF0aW9uU2NoZW1hLmlucHV0KTtcbiAgICAgICAgY29uc3Qgc3RhdGljU3RydWN0dXJlU2NoZW1hID0gbnMuZ2V0U2NoZW1hKCk7XG4gICAgICAgIGxldCBidWNrZXRNZW1iZXJJbmRleCA9IDA7XG4gICAgICAgIGNvbnN0IHJlcXVpcmVkTWVtYmVyQ291bnQgPSBzdGF0aWNTdHJ1Y3R1cmVTY2hlbWFbNl0gPz8gMDtcbiAgICAgICAgaWYgKGlucHV0ICYmIHR5cGVvZiBpbnB1dCA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgZm9yIChjb25zdCBbbWVtYmVyTmFtZSwgbWVtYmVyTnNdIG9mIG5zLnN0cnVjdEl0ZXJhdG9yKCkpIHtcbiAgICAgICAgICAgICAgICBpZiAoKytidWNrZXRNZW1iZXJJbmRleCA+IHJlcXVpcmVkTWVtYmVyQ291bnQpIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChtZW1iZXJOYW1lID09PSBcIkJ1Y2tldFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghaW5wdXQuQnVja2V0ICYmIG1lbWJlck5zLmdldE1lcmdlZFRyYWl0cygpLmh0dHBMYWJlbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyB2YWx1ZSBwcm92aWRlZCBmb3IgaW5wdXQgSFRUUCBsYWJlbDogQnVja2V0LmApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVxdWVzdDtcbiAgICB9XG59XG5cbmV4cG9ydHMuTk9ERV9ESVNBQkxFX1MzX0VYUFJFU1NfU0VTU0lPTl9BVVRIX09QVElPTlMgPSBOT0RFX0RJU0FCTEVfUzNfRVhQUkVTU19TRVNTSU9OX0FVVEhfT1BUSU9OUztcbmV4cG9ydHMuUzNFeHByZXNzSWRlbnRpdHlDYWNoZSA9IFMzRXhwcmVzc0lkZW50aXR5Q2FjaGU7XG5leHBvcnRzLlMzRXhwcmVzc0lkZW50aXR5Q2FjaGVFbnRyeSA9IFMzRXhwcmVzc0lkZW50aXR5Q2FjaGVFbnRyeTtcbmV4cG9ydHMuUzNFeHByZXNzSWRlbnRpdHlQcm92aWRlckltcGwgPSBTM0V4cHJlc3NJZGVudGl0eVByb3ZpZGVySW1wbDtcbmV4cG9ydHMuUzNSZXN0WG1sUHJvdG9jb2wgPSBTM1Jlc3RYbWxQcm90b2NvbDtcbmV4cG9ydHMuU2lnbmF0dXJlVjRTM0V4cHJlc3MgPSBTaWduYXR1cmVWNFMzRXhwcmVzcztcbmV4cG9ydHMuY2hlY2tDb250ZW50TGVuZ3RoSGVhZGVyID0gY2hlY2tDb250ZW50TGVuZ3RoSGVhZGVyO1xuZXhwb3J0cy5jaGVja0NvbnRlbnRMZW5ndGhIZWFkZXJNaWRkbGV3YXJlT3B0aW9ucyA9IGNoZWNrQ29udGVudExlbmd0aEhlYWRlck1pZGRsZXdhcmVPcHRpb25zO1xuZXhwb3J0cy5nZXRDaGVja0NvbnRlbnRMZW5ndGhIZWFkZXJQbHVnaW4gPSBnZXRDaGVja0NvbnRlbnRMZW5ndGhIZWFkZXJQbHVnaW47XG5leHBvcnRzLmdldFJlZ2lvblJlZGlyZWN0TWlkZGxld2FyZVBsdWdpbiA9IGdldFJlZ2lvblJlZGlyZWN0TWlkZGxld2FyZVBsdWdpbjtcbmV4cG9ydHMuZ2V0UzNFeHBpcmVzTWlkZGxld2FyZVBsdWdpbiA9IGdldFMzRXhwaXJlc01pZGRsZXdhcmVQbHVnaW47XG5leHBvcnRzLmdldFMzRXhwcmVzc0h0dHBTaWduaW5nUGx1Z2luID0gZ2V0UzNFeHByZXNzSHR0cFNpZ25pbmdQbHVnaW47XG5leHBvcnRzLmdldFMzRXhwcmVzc1BsdWdpbiA9IGdldFMzRXhwcmVzc1BsdWdpbjtcbmV4cG9ydHMuZ2V0VGhyb3cyMDBFeGNlcHRpb25zUGx1Z2luID0gZ2V0VGhyb3cyMDBFeGNlcHRpb25zUGx1Z2luO1xuZXhwb3J0cy5nZXRWYWxpZGF0ZUJ1Y2tldE5hbWVQbHVnaW4gPSBnZXRWYWxpZGF0ZUJ1Y2tldE5hbWVQbHVnaW47XG5leHBvcnRzLnJlZ2lvblJlZGlyZWN0RW5kcG9pbnRNaWRkbGV3YXJlID0gcmVnaW9uUmVkaXJlY3RFbmRwb2ludE1pZGRsZXdhcmU7XG5leHBvcnRzLnJlZ2lvblJlZGlyZWN0RW5kcG9pbnRNaWRkbGV3YXJlT3B0aW9ucyA9IHJlZ2lvblJlZGlyZWN0RW5kcG9pbnRNaWRkbGV3YXJlT3B0aW9ucztcbmV4cG9ydHMucmVnaW9uUmVkaXJlY3RNaWRkbGV3YXJlID0gcmVnaW9uUmVkaXJlY3RNaWRkbGV3YXJlO1xuZXhwb3J0cy5yZWdpb25SZWRpcmVjdE1pZGRsZXdhcmVPcHRpb25zID0gcmVnaW9uUmVkaXJlY3RNaWRkbGV3YXJlT3B0aW9ucztcbmV4cG9ydHMucmVzb2x2ZVMzQ29uZmlnID0gcmVzb2x2ZVMzQ29uZmlnO1xuZXhwb3J0cy5zM0V4cGlyZXNNaWRkbGV3YXJlID0gczNFeHBpcmVzTWlkZGxld2FyZTtcbmV4cG9ydHMuczNFeHBpcmVzTWlkZGxld2FyZU9wdGlvbnMgPSBzM0V4cGlyZXNNaWRkbGV3YXJlT3B0aW9ucztcbmV4cG9ydHMuczNFeHByZXNzSHR0cFNpZ25pbmdNaWRkbGV3YXJlID0gczNFeHByZXNzSHR0cFNpZ25pbmdNaWRkbGV3YXJlO1xuZXhwb3J0cy5zM0V4cHJlc3NIdHRwU2lnbmluZ01pZGRsZXdhcmVPcHRpb25zID0gczNFeHByZXNzSHR0cFNpZ25pbmdNaWRkbGV3YXJlT3B0aW9ucztcbmV4cG9ydHMuczNFeHByZXNzTWlkZGxld2FyZSA9IHMzRXhwcmVzc01pZGRsZXdhcmU7XG5leHBvcnRzLnMzRXhwcmVzc01pZGRsZXdhcmVPcHRpb25zID0gczNFeHByZXNzTWlkZGxld2FyZU9wdGlvbnM7XG5leHBvcnRzLnRocm93MjAwRXhjZXB0aW9uc01pZGRsZXdhcmUgPSB0aHJvdzIwMEV4Y2VwdGlvbnNNaWRkbGV3YXJlO1xuZXhwb3J0cy50aHJvdzIwMEV4Y2VwdGlvbnNNaWRkbGV3YXJlT3B0aW9ucyA9IHRocm93MjAwRXhjZXB0aW9uc01pZGRsZXdhcmVPcHRpb25zO1xuZXhwb3J0cy52YWxpZGF0ZUJ1Y2tldE5hbWVNaWRkbGV3YXJlID0gdmFsaWRhdGVCdWNrZXROYW1lTWlkZGxld2FyZTtcbmV4cG9ydHMudmFsaWRhdGVCdWNrZXROYW1lTWlkZGxld2FyZU9wdGlvbnMgPSB2YWxpZGF0ZUJ1Y2tldE5hbWVNaWRkbGV3YXJlT3B0aW9ucztcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBtaWRkbGV3YXJlU2RrUzMgPSByZXF1aXJlKCdAYXdzLXNkay9taWRkbGV3YXJlLXNkay1zMycpO1xudmFyIHNpZ25hdHVyZVY0ID0gcmVxdWlyZSgnQHNtaXRoeS9zaWduYXR1cmUtdjQnKTtcblxuY29uc3Qgc2lnbmF0dXJlVjRDcnRDb250YWluZXIgPSB7XG4gICAgQ3J0U2lnbmVyVjQ6IG51bGwsXG59O1xuXG5jbGFzcyBTaWduYXR1cmVWNE11bHRpUmVnaW9uIHtcbiAgICBzaWd2NGFTaWduZXI7XG4gICAgc2lndjRTaWduZXI7XG4gICAgc2lnbmVyT3B0aW9ucztcbiAgICBzdGF0aWMgc2lndjRhRGVwZW5kZW5jeSgpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBzaWduYXR1cmVWNENydENvbnRhaW5lci5DcnRTaWduZXJWNCA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICByZXR1cm4gXCJjcnRcIjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0eXBlb2Ygc2lnbmF0dXJlVjQuc2lnbmF0dXJlVjRhQ29udGFpbmVyLlNpZ25hdHVyZVY0YSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICByZXR1cm4gXCJqc1wiO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBcIm5vbmVcIjtcbiAgICB9XG4gICAgY29uc3RydWN0b3Iob3B0aW9ucykge1xuICAgICAgICB0aGlzLnNpZ3Y0U2lnbmVyID0gbmV3IG1pZGRsZXdhcmVTZGtTMy5TaWduYXR1cmVWNFMzRXhwcmVzcyhvcHRpb25zKTtcbiAgICAgICAgdGhpcy5zaWduZXJPcHRpb25zID0gb3B0aW9ucztcbiAgICB9XG4gICAgYXN5bmMgc2lnbihyZXF1ZXN0VG9TaWduLCBvcHRpb25zID0ge30pIHtcbiAgICAgICAgaWYgKG9wdGlvbnMuc2lnbmluZ1JlZ2lvbiA9PT0gXCIqXCIpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldFNpZ3Y0YVNpZ25lcigpLnNpZ24ocmVxdWVzdFRvU2lnbiwgb3B0aW9ucyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuc2lndjRTaWduZXIuc2lnbihyZXF1ZXN0VG9TaWduLCBvcHRpb25zKTtcbiAgICB9XG4gICAgYXN5bmMgc2lnbldpdGhDcmVkZW50aWFscyhyZXF1ZXN0VG9TaWduLCBjcmVkZW50aWFscywgb3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIGlmIChvcHRpb25zLnNpZ25pbmdSZWdpb24gPT09IFwiKlwiKSB7XG4gICAgICAgICAgICBjb25zdCBzaWduZXIgPSB0aGlzLmdldFNpZ3Y0YVNpZ25lcigpO1xuICAgICAgICAgICAgY29uc3QgQ3J0U2lnbmVyVjQgPSBzaWduYXR1cmVWNENydENvbnRhaW5lci5DcnRTaWduZXJWNDtcbiAgICAgICAgICAgIGlmIChDcnRTaWduZXJWNCAmJiBzaWduZXIgaW5zdGFuY2VvZiBDcnRTaWduZXJWNCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBzaWduZXIuc2lnbldpdGhDcmVkZW50aWFscyhyZXF1ZXN0VG9TaWduLCBjcmVkZW50aWFscywgb3B0aW9ucyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYHNpZ25XaXRoQ3JlZGVudGlhbHMgd2l0aCBzaWduaW5nUmVnaW9uICcqJyBpcyBvbmx5IHN1cHBvcnRlZCB3aGVuIHVzaW5nIHRoZSBDUlQgZGVwZW5kZW5jeSBAYXdzLXNkay9zaWduYXR1cmUtdjQtY3J0LiBgICtcbiAgICAgICAgICAgICAgICAgICAgYFBsZWFzZSBjaGVjayB3aGV0aGVyIHlvdSBoYXZlIGluc3RhbGxlZCB0aGUgXCJAYXdzLXNkay9zaWduYXR1cmUtdjQtY3J0XCIgcGFja2FnZSBleHBsaWNpdGx5LiBgICtcbiAgICAgICAgICAgICAgICAgICAgYFlvdSBtdXN0IGFsc28gcmVnaXN0ZXIgdGhlIHBhY2thZ2UgYnkgY2FsbGluZyBbcmVxdWlyZShcIkBhd3Mtc2RrL3NpZ25hdHVyZS12NC1jcnRcIik7XSBgICtcbiAgICAgICAgICAgICAgICAgICAgYG9yIGFuIEVTTSBlcXVpdmFsZW50IHN1Y2ggYXMgW2ltcG9ydCBcIkBhd3Mtc2RrL3NpZ25hdHVyZS12NC1jcnRcIjtdLiBgICtcbiAgICAgICAgICAgICAgICAgICAgYEZvciBtb3JlIGluZm9ybWF0aW9uIHBsZWFzZSBnbyB0byBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1zZGstanMtdjMjZnVuY3Rpb25hbGl0eS1yZXF1aXJpbmctYXdzLWNvbW1vbi1ydW50aW1lLWNydGApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnNpZ3Y0U2lnbmVyLnNpZ25XaXRoQ3JlZGVudGlhbHMocmVxdWVzdFRvU2lnbiwgY3JlZGVudGlhbHMsIG9wdGlvbnMpO1xuICAgIH1cbiAgICBhc3luYyBwcmVzaWduKG9yaWdpbmFsUmVxdWVzdCwgb3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIGlmIChvcHRpb25zLnNpZ25pbmdSZWdpb24gPT09IFwiKlwiKSB7XG4gICAgICAgICAgICBjb25zdCBzaWduZXIgPSB0aGlzLmdldFNpZ3Y0YVNpZ25lcigpO1xuICAgICAgICAgICAgY29uc3QgQ3J0U2lnbmVyVjQgPSBzaWduYXR1cmVWNENydENvbnRhaW5lci5DcnRTaWduZXJWNDtcbiAgICAgICAgICAgIGlmIChDcnRTaWduZXJWNCAmJiBzaWduZXIgaW5zdGFuY2VvZiBDcnRTaWduZXJWNCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBzaWduZXIucHJlc2lnbihvcmlnaW5hbFJlcXVlc3QsIG9wdGlvbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBwcmVzaWduIHdpdGggc2lnbmluZ1JlZ2lvbiAnKicgaXMgb25seSBzdXBwb3J0ZWQgd2hlbiB1c2luZyB0aGUgQ1JUIGRlcGVuZGVuY3kgQGF3cy1zZGsvc2lnbmF0dXJlLXY0LWNydC4gYCArXG4gICAgICAgICAgICAgICAgICAgIGBQbGVhc2UgY2hlY2sgd2hldGhlciB5b3UgaGF2ZSBpbnN0YWxsZWQgdGhlIFwiQGF3cy1zZGsvc2lnbmF0dXJlLXY0LWNydFwiIHBhY2thZ2UgZXhwbGljaXRseS4gYCArXG4gICAgICAgICAgICAgICAgICAgIGBZb3UgbXVzdCBhbHNvIHJlZ2lzdGVyIHRoZSBwYWNrYWdlIGJ5IGNhbGxpbmcgW3JlcXVpcmUoXCJAYXdzLXNkay9zaWduYXR1cmUtdjQtY3J0XCIpO10gYCArXG4gICAgICAgICAgICAgICAgICAgIGBvciBhbiBFU00gZXF1aXZhbGVudCBzdWNoIGFzIFtpbXBvcnQgXCJAYXdzLXNkay9zaWduYXR1cmUtdjQtY3J0XCI7XS4gYCArXG4gICAgICAgICAgICAgICAgICAgIGBGb3IgbW9yZSBpbmZvcm1hdGlvbiBwbGVhc2UgZ28gdG8gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3Mtc2RrLWpzLXYzI2Z1bmN0aW9uYWxpdHktcmVxdWlyaW5nLWF3cy1jb21tb24tcnVudGltZS1jcnRgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5zaWd2NFNpZ25lci5wcmVzaWduKG9yaWdpbmFsUmVxdWVzdCwgb3B0aW9ucyk7XG4gICAgfVxuICAgIGFzeW5jIHByZXNpZ25XaXRoQ3JlZGVudGlhbHMob3JpZ2luYWxSZXF1ZXN0LCBjcmVkZW50aWFscywgb3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIGlmIChvcHRpb25zLnNpZ25pbmdSZWdpb24gPT09IFwiKlwiKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNZXRob2QgcHJlc2lnbldpdGhDcmVkZW50aWFscyBpcyBub3Qgc3VwcG9ydGVkIGZvciBbc2lnbmluZ1JlZ2lvbj0qXS5cIik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuc2lndjRTaWduZXIucHJlc2lnbldpdGhDcmVkZW50aWFscyhvcmlnaW5hbFJlcXVlc3QsIGNyZWRlbnRpYWxzLCBvcHRpb25zKTtcbiAgICB9XG4gICAgZ2V0U2lndjRhU2lnbmVyKCkge1xuICAgICAgICBpZiAoIXRoaXMuc2lndjRhU2lnbmVyKSB7XG4gICAgICAgICAgICBjb25zdCBDcnRTaWduZXJWNCA9IHNpZ25hdHVyZVY0Q3J0Q29udGFpbmVyLkNydFNpZ25lclY0O1xuICAgICAgICAgICAgY29uc3QgSnNTaWdWNGFTaWduZXIgPSBzaWduYXR1cmVWNC5zaWduYXR1cmVWNGFDb250YWluZXIuU2lnbmF0dXJlVjRhO1xuICAgICAgICAgICAgaWYgKHRoaXMuc2lnbmVyT3B0aW9ucy5ydW50aW1lID09PSBcIm5vZGVcIikge1xuICAgICAgICAgICAgICAgIGlmICghQ3J0U2lnbmVyVjQgJiYgIUpzU2lnVjRhU2lnbmVyKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIk5laXRoZXIgQ1JUIG5vciBKUyBTaWdWNGEgaW1wbGVtZW50YXRpb24gaXMgYXZhaWxhYmxlLiBcIiArXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlBsZWFzZSBsb2FkIGVpdGhlciBAYXdzLXNkay9zaWduYXR1cmUtdjQtY3J0IG9yIEBhd3Mtc2RrL3NpZ25hdHVyZS12NGEuIFwiICtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiRm9yIG1vcmUgaW5mb3JtYXRpb24gcGxlYXNlIGdvIHRvIFwiICtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3Mtc2RrLWpzLXYzI2Z1bmN0aW9uYWxpdHktcmVxdWlyaW5nLWF3cy1jb21tb24tcnVudGltZS1jcnRcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChDcnRTaWduZXJWNCAmJiB0eXBlb2YgQ3J0U2lnbmVyVjQgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNpZ3Y0YVNpZ25lciA9IG5ldyBDcnRTaWduZXJWNCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAuLi50aGlzLnNpZ25lck9wdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICBzaWduaW5nQWxnb3JpdGhtOiAxLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoSnNTaWdWNGFTaWduZXIgJiYgdHlwZW9mIEpzU2lnVjRhU2lnbmVyID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zaWd2NGFTaWduZXIgPSBuZXcgSnNTaWdWNGFTaWduZXIoe1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5zaWduZXJPcHRpb25zLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkF2YWlsYWJsZSBTaWdWNGEgaW1wbGVtZW50YXRpb24gaXMgbm90IGEgdmFsaWQgY29uc3RydWN0b3IuIFwiICtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiUGxlYXNlIGVuc3VyZSB5b3UndmUgcHJvcGVybHkgaW1wb3J0ZWQgQGF3cy1zZGsvc2lnbmF0dXJlLXY0LWNydCBvciBAYXdzLXNkay9zaWduYXR1cmUtdjRhLlwiICtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiRm9yIG1vcmUgaW5mb3JtYXRpb24gcGxlYXNlIGdvIHRvIFwiICtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3Mtc2RrLWpzLXYzI2Z1bmN0aW9uYWxpdHktcmVxdWlyaW5nLWF3cy1jb21tb24tcnVudGltZS1jcnRcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKCFKc1NpZ1Y0YVNpZ25lciB8fCB0eXBlb2YgSnNTaWdWNGFTaWduZXIgIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJKUyBTaWdWNGEgaW1wbGVtZW50YXRpb24gaXMgbm90IGF2YWlsYWJsZSBvciBub3QgYSB2YWxpZCBjb25zdHJ1Y3Rvci4gXCIgK1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJQbGVhc2UgY2hlY2sgd2hldGhlciB5b3UgaGF2ZSBpbnN0YWxsZWQgdGhlIEBhd3Mtc2RrL3NpZ25hdHVyZS12NGEgcGFja2FnZSBleHBsaWNpdGx5LiBUaGUgQ1JUIGltcGxlbWVudGF0aW9uIGlzIG5vdCBhdmFpbGFibGUgZm9yIGJyb3dzZXJzLiBcIiArXG4gICAgICAgICAgICAgICAgICAgICAgICBcIllvdSBtdXN0IGFsc28gcmVnaXN0ZXIgdGhlIHBhY2thZ2UgYnkgY2FsbGluZyBbcmVxdWlyZSgnQGF3cy1zZGsvc2lnbmF0dXJlLXY0YScpO10gXCIgK1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJvciBhbiBFU00gZXF1aXZhbGVudCBzdWNoIGFzIFtpbXBvcnQgJ0Bhd3Mtc2RrL3NpZ25hdHVyZS12NGEnO10uIFwiICtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiRm9yIG1vcmUgaW5mb3JtYXRpb24gcGxlYXNlIGdvIHRvIFwiICtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3Mtc2RrLWpzLXYzI3VzaW5nLWphdmFzY3JpcHQtbm9uLWNydC1pbXBsZW1lbnRhdGlvbi1vZi1zaWd2NGFcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuc2lndjRhU2lnbmVyID0gbmV3IEpzU2lnVjRhU2lnbmVyKHtcbiAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5zaWduZXJPcHRpb25zLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnNpZ3Y0YVNpZ25lcjtcbiAgICB9XG59XG5cbmV4cG9ydHMuU2lnbmF0dXJlVjRNdWx0aVJlZ2lvbiA9IFNpZ25hdHVyZVY0TXVsdGlSZWdpb247XG5leHBvcnRzLnNpZ25hdHVyZVY0Q3J0Q29udGFpbmVyID0gc2lnbmF0dXJlVjRDcnRDb250YWluZXI7XG4iLCAiaW1wb3J0IHsgQmluYXJ5RGVjaXNpb25EaWFncmFtIH0gZnJvbSBcIkBzbWl0aHkvdXRpbC1lbmRwb2ludHNcIjtcbmNvbnN0IHEgPSBcInJlZlwiO1xuY29uc3QgYSA9IC0xLCBiID0gdHJ1ZSwgYyA9IFwiaXNTZXRcIiwgZCA9IFwiUGFydGl0aW9uUmVzdWx0XCIsIGUgPSBcImJvb2xlYW5FcXVhbHNcIiwgZiA9IFwic3RyaW5nRXF1YWxzXCIsIGcgPSBcImdldEF0dHJcIiwgaCA9IFwidXMtZWFzdC0xXCIsIGkgPSBcInNpZ3Y0XCIsIGogPSBcInN0c1wiLCBrID0gXCJodHRwczovL3N0cy57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH1cIiwgbCA9IHsgW3FdOiBcIkVuZHBvaW50XCIgfSwgbSA9IHsgW3FdOiBcIlJlZ2lvblwiIH0sIG4gPSB7IFtxXTogZCB9LCBvID0ge30sIHAgPSBbbV07XG5jb25zdCBfZGF0YSA9IHtcbiAgICBjb25kaXRpb25zOiBbXG4gICAgICAgIFtjLCBbbF1dLFxuICAgICAgICBbYywgcF0sXG4gICAgICAgIFtcImF3cy5wYXJ0aXRpb25cIiwgcCwgZF0sXG4gICAgICAgIFtlLCBbeyBbcV06IFwiVXNlRklQU1wiIH0sIGJdXSxcbiAgICAgICAgW2UsIFt7IFtxXTogXCJVc2VEdWFsU3RhY2tcIiB9LCBiXV0sXG4gICAgICAgIFtmLCBbbSwgXCJhd3MtZ2xvYmFsXCJdXSxcbiAgICAgICAgW2UsIFt7IFtxXTogXCJVc2VHbG9iYWxFbmRwb2ludFwiIH0sIGJdXSxcbiAgICAgICAgW2YsIFttLCBcImV1LWNlbnRyYWwtMVwiXV0sXG4gICAgICAgIFtlLCBbeyBmbjogZywgYXJndjogW24sIFwic3VwcG9ydHNEdWFsU3RhY2tcIl0gfSwgYl1dLFxuICAgICAgICBbZSwgW3sgZm46IGcsIGFyZ3Y6IFtuLCBcInN1cHBvcnRzRklQU1wiXSB9LCBiXV0sXG4gICAgICAgIFtmLCBbbSwgXCJhcC1zb3V0aC0xXCJdXSxcbiAgICAgICAgW2YsIFttLCBcImV1LW5vcnRoLTFcIl1dLFxuICAgICAgICBbZiwgW20sIFwiZXUtd2VzdC0xXCJdXSxcbiAgICAgICAgW2YsIFttLCBcImV1LXdlc3QtMlwiXV0sXG4gICAgICAgIFtmLCBbbSwgXCJldS13ZXN0LTNcIl1dLFxuICAgICAgICBbZiwgW20sIFwic2EtZWFzdC0xXCJdXSxcbiAgICAgICAgW2YsIFttLCBoXV0sXG4gICAgICAgIFtmLCBbbSwgXCJ1cy1lYXN0LTJcIl1dLFxuICAgICAgICBbZiwgW20sIFwidXMtd2VzdC0yXCJdXSxcbiAgICAgICAgW2YsIFttLCBcInVzLXdlc3QtMVwiXV0sXG4gICAgICAgIFtmLCBbbSwgXCJjYS1jZW50cmFsLTFcIl1dLFxuICAgICAgICBbZiwgW20sIFwiYXAtc291dGhlYXN0LTFcIl1dLFxuICAgICAgICBbZiwgW20sIFwiYXAtbm9ydGhlYXN0LTFcIl1dLFxuICAgICAgICBbZiwgW20sIFwiYXAtc291dGhlYXN0LTJcIl1dLFxuICAgICAgICBbZiwgW3sgZm46IGcsIGFyZ3Y6IFtuLCBcIm5hbWVcIl0gfSwgXCJhd3MtdXMtZ292XCJdXSxcbiAgICBdLFxuICAgIHJlc3VsdHM6IFtcbiAgICAgICAgW2FdLFxuICAgICAgICBbXCJodHRwczovL3N0cy5hbWF6b25hd3MuY29tXCIsIHsgYXV0aFNjaGVtZXM6IFt7IG5hbWU6IGksIHNpZ25pbmdOYW1lOiBqLCBzaWduaW5nUmVnaW9uOiBoIH1dIH1dLFxuICAgICAgICBbaywgeyBhdXRoU2NoZW1lczogW3sgbmFtZTogaSwgc2lnbmluZ05hbWU6IGosIHNpZ25pbmdSZWdpb246IFwie1JlZ2lvbn1cIiB9XSB9XSxcbiAgICAgICAgW2EsIFwiSW52YWxpZCBDb25maWd1cmF0aW9uOiBGSVBTIGFuZCBjdXN0b20gZW5kcG9pbnQgYXJlIG5vdCBzdXBwb3J0ZWRcIl0sXG4gICAgICAgIFthLCBcIkludmFsaWQgQ29uZmlndXJhdGlvbjogRHVhbHN0YWNrIGFuZCBjdXN0b20gZW5kcG9pbnQgYXJlIG5vdCBzdXBwb3J0ZWRcIl0sXG4gICAgICAgIFtsLCBvXSxcbiAgICAgICAgW1wiaHR0cHM6Ly9zdHMtZmlwcy57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2R1YWxTdGFja0Ruc1N1ZmZpeH1cIiwgb10sXG4gICAgICAgIFthLCBcIkZJUFMgYW5kIER1YWxTdGFjayBhcmUgZW5hYmxlZCwgYnV0IHRoaXMgcGFydGl0aW9uIGRvZXMgbm90IHN1cHBvcnQgb25lIG9yIGJvdGhcIl0sXG4gICAgICAgIFtcImh0dHBzOi8vc3RzLntSZWdpb259LmFtYXpvbmF3cy5jb21cIiwgb10sXG4gICAgICAgIFtcImh0dHBzOi8vc3RzLWZpcHMue1JlZ2lvbn0ue1BhcnRpdGlvblJlc3VsdCNkbnNTdWZmaXh9XCIsIG9dLFxuICAgICAgICBbYSwgXCJGSVBTIGlzIGVuYWJsZWQgYnV0IHRoaXMgcGFydGl0aW9uIGRvZXMgbm90IHN1cHBvcnQgRklQU1wiXSxcbiAgICAgICAgW1wiaHR0cHM6Ly9zdHMue1JlZ2lvbn0ue1BhcnRpdGlvblJlc3VsdCNkdWFsU3RhY2tEbnNTdWZmaXh9XCIsIG9dLFxuICAgICAgICBbYSwgXCJEdWFsU3RhY2sgaXMgZW5hYmxlZCBidXQgdGhpcyBwYXJ0aXRpb24gZG9lcyBub3Qgc3VwcG9ydCBEdWFsU3RhY2tcIl0sXG4gICAgICAgIFtrLCBvXSxcbiAgICAgICAgW2EsIFwiSW52YWxpZCBDb25maWd1cmF0aW9uOiBNaXNzaW5nIFJlZ2lvblwiXSxcbiAgICBdLFxufTtcbmNvbnN0IHJvb3QgPSAyO1xuY29uc3QgciA9IDEwMF8wMDBfMDAwO1xuY29uc3Qgbm9kZXMgPSBuZXcgSW50MzJBcnJheShbXG4gICAgLTEsXG4gICAgMSxcbiAgICAtMSxcbiAgICAwLFxuICAgIDMwLFxuICAgIDMsXG4gICAgMSxcbiAgICA0LFxuICAgIHIgKyAxNCxcbiAgICAyLFxuICAgIDUsXG4gICAgciArIDE0LFxuICAgIDMsXG4gICAgMjUsXG4gICAgNixcbiAgICA0LFxuICAgIDI0LFxuICAgIDcsXG4gICAgNSxcbiAgICByICsgMSxcbiAgICA4LFxuICAgIDYsXG4gICAgOSxcbiAgICByICsgMTMsXG4gICAgNyxcbiAgICByICsgMSxcbiAgICAxMCxcbiAgICAxMCxcbiAgICByICsgMSxcbiAgICAxMSxcbiAgICAxMSxcbiAgICByICsgMSxcbiAgICAxMixcbiAgICAxMixcbiAgICByICsgMSxcbiAgICAxMyxcbiAgICAxMyxcbiAgICByICsgMSxcbiAgICAxNCxcbiAgICAxNCxcbiAgICByICsgMSxcbiAgICAxNSxcbiAgICAxNSxcbiAgICByICsgMSxcbiAgICAxNixcbiAgICAxNixcbiAgICByICsgMSxcbiAgICAxNyxcbiAgICAxNyxcbiAgICByICsgMSxcbiAgICAxOCxcbiAgICAxOCxcbiAgICByICsgMSxcbiAgICAxOSxcbiAgICAxOSxcbiAgICByICsgMSxcbiAgICAyMCxcbiAgICAyMCxcbiAgICByICsgMSxcbiAgICAyMSxcbiAgICAyMSxcbiAgICByICsgMSxcbiAgICAyMixcbiAgICAyMixcbiAgICByICsgMSxcbiAgICAyMyxcbiAgICAyMyxcbiAgICByICsgMSxcbiAgICByICsgMixcbiAgICA4LFxuICAgIHIgKyAxMSxcbiAgICByICsgMTIsXG4gICAgNCxcbiAgICAyOCxcbiAgICAyNixcbiAgICA5LFxuICAgIDI3LFxuICAgIHIgKyAxMCxcbiAgICAyNCxcbiAgICByICsgOCxcbiAgICByICsgOSxcbiAgICA4LFxuICAgIDI5LFxuICAgIHIgKyA3LFxuICAgIDksXG4gICAgciArIDYsXG4gICAgciArIDcsXG4gICAgMyxcbiAgICByICsgMyxcbiAgICAzMSxcbiAgICA0LFxuICAgIHIgKyA0LFxuICAgIHIgKyA1LFxuXSk7XG5leHBvcnQgY29uc3QgYmRkID0gQmluYXJ5RGVjaXNpb25EaWFncmFtLmZyb20obm9kZXMsIHJvb3QsIF9kYXRhLmNvbmRpdGlvbnMsIF9kYXRhLnJlc3VsdHMpO1xuIiwgImltcG9ydCB7IGF3c0VuZHBvaW50RnVuY3Rpb25zIH0gZnJvbSBcIkBhd3Mtc2RrL3V0aWwtZW5kcG9pbnRzXCI7XG5pbXBvcnQgeyBjdXN0b21FbmRwb2ludEZ1bmN0aW9ucywgZGVjaWRlRW5kcG9pbnQsIEVuZHBvaW50Q2FjaGUgfSBmcm9tIFwiQHNtaXRoeS91dGlsLWVuZHBvaW50c1wiO1xuaW1wb3J0IHsgYmRkIH0gZnJvbSBcIi4vYmRkXCI7XG5jb25zdCBjYWNoZSA9IG5ldyBFbmRwb2ludENhY2hlKHtcbiAgICBzaXplOiA1MCxcbiAgICBwYXJhbXM6IFtcIkVuZHBvaW50XCIsIFwiUmVnaW9uXCIsIFwiVXNlRHVhbFN0YWNrXCIsIFwiVXNlRklQU1wiLCBcIlVzZUdsb2JhbEVuZHBvaW50XCJdLFxufSk7XG5leHBvcnQgY29uc3QgZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIgPSAoZW5kcG9pbnRQYXJhbXMsIGNvbnRleHQgPSB7fSkgPT4ge1xuICAgIHJldHVybiBjYWNoZS5nZXQoZW5kcG9pbnRQYXJhbXMsICgpID0+IGRlY2lkZUVuZHBvaW50KGJkZCwge1xuICAgICAgICBlbmRwb2ludFBhcmFtczogZW5kcG9pbnRQYXJhbXMsXG4gICAgICAgIGxvZ2dlcjogY29udGV4dC5sb2dnZXIsXG4gICAgfSkpO1xufTtcbmN1c3RvbUVuZHBvaW50RnVuY3Rpb25zLmF3cyA9IGF3c0VuZHBvaW50RnVuY3Rpb25zO1xuIiwgImltcG9ydCB7IHJlc29sdmVBd3NTZGtTaWdWNEFDb25maWcsIHJlc29sdmVBd3NTZGtTaWdWNENvbmZpZyB9IGZyb20gXCJAYXdzLXNkay9jb3JlL2h0dHBBdXRoU2NoZW1lc1wiO1xuaW1wb3J0IHsgU2lnbmF0dXJlVjRNdWx0aVJlZ2lvbiB9IGZyb20gXCJAYXdzLXNkay9zaWduYXR1cmUtdjQtbXVsdGktcmVnaW9uXCI7XG5pbXBvcnQgeyByZXNvbHZlUGFyYW1zIH0gZnJvbSBcIkBzbWl0aHkvbWlkZGxld2FyZS1lbmRwb2ludFwiO1xuaW1wb3J0IHsgZ2V0U21pdGh5Q29udGV4dCwgbm9ybWFsaXplUHJvdmlkZXIgfSBmcm9tIFwiQHNtaXRoeS91dGlsLW1pZGRsZXdhcmVcIjtcbmltcG9ydCB7IGRlZmF1bHRFbmRwb2ludFJlc29sdmVyIH0gZnJvbSBcIi4uL2VuZHBvaW50L2VuZHBvaW50UmVzb2x2ZXJcIjtcbmltcG9ydCB7IFNUU0NsaWVudCB9IGZyb20gXCIuLi9TVFNDbGllbnRcIjtcbmNvbnN0IGNyZWF0ZUVuZHBvaW50UnVsZVNldEh0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyID0gKGRlZmF1bHRIdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlcikgPT4gYXN5bmMgKGNvbmZpZywgY29udGV4dCwgaW5wdXQpID0+IHtcbiAgICBpZiAoIWlucHV0KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkNvdWxkIG5vdCBmaW5kIGBpbnB1dGAgZm9yIGBkZWZhdWx0RW5kcG9pbnRSdWxlU2V0SHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXJgXCIpO1xuICAgIH1cbiAgICBjb25zdCBkZWZhdWx0UGFyYW1ldGVycyA9IGF3YWl0IGRlZmF1bHRIdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlcihjb25maWcsIGNvbnRleHQsIGlucHV0KTtcbiAgICBjb25zdCBpbnN0cnVjdGlvbnNGbiA9IGdldFNtaXRoeUNvbnRleHQoY29udGV4dCk/LmNvbW1hbmRJbnN0YW5jZT8uY29uc3RydWN0b3JcbiAgICAgICAgPy5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucztcbiAgICBpZiAoIWluc3RydWN0aW9uc0ZuKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSBpcyBub3QgZGVmaW5lZCBvbiAnJHtjb250ZXh0LmNvbW1hbmROYW1lfSdgKTtcbiAgICB9XG4gICAgY29uc3QgZW5kcG9pbnRQYXJhbWV0ZXJzID0gYXdhaXQgcmVzb2x2ZVBhcmFtcyhpbnB1dCwgeyBnZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9uczogaW5zdHJ1Y3Rpb25zRm4gfSwgY29uZmlnKTtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihkZWZhdWx0UGFyYW1ldGVycywgZW5kcG9pbnRQYXJhbWV0ZXJzKTtcbn07XG5jb25zdCBfZGVmYXVsdFNUU0h0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyID0gYXN5bmMgKGNvbmZpZywgY29udGV4dCwgaW5wdXQpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgICBvcGVyYXRpb246IGdldFNtaXRoeUNvbnRleHQoY29udGV4dCkub3BlcmF0aW9uLFxuICAgICAgICByZWdpb246IChhd2FpdCBub3JtYWxpemVQcm92aWRlcihjb25maWcucmVnaW9uKSgpKSB8fFxuICAgICAgICAgICAgKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJleHBlY3RlZCBgcmVnaW9uYCB0byBiZSBjb25maWd1cmVkIGZvciBgYXdzLmF1dGgjc2lndjRgXCIpO1xuICAgICAgICAgICAgfSkoKSxcbiAgICB9O1xufTtcbmV4cG9ydCBjb25zdCBkZWZhdWx0U1RTSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIgPSBjcmVhdGVFbmRwb2ludFJ1bGVTZXRIdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlcihfZGVmYXVsdFNUU0h0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyKTtcbmZ1bmN0aW9uIGNyZWF0ZUF3c0F1dGhTaWd2NEh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc2NoZW1lSWQ6IFwiYXdzLmF1dGgjc2lndjRcIixcbiAgICAgICAgc2lnbmluZ1Byb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIG5hbWU6IFwic3RzXCIsXG4gICAgICAgICAgICByZWdpb246IGF1dGhQYXJhbWV0ZXJzLnJlZ2lvbixcbiAgICAgICAgfSxcbiAgICAgICAgcHJvcGVydGllc0V4dHJhY3RvcjogKGNvbmZpZywgY29udGV4dCkgPT4gKHtcbiAgICAgICAgICAgIHNpZ25pbmdQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgICAgY29uZmlnLFxuICAgICAgICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9KSxcbiAgICB9O1xufVxuZnVuY3Rpb24gY3JlYXRlQXdzQXV0aFNpZ3Y0YUh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc2NoZW1lSWQ6IFwiYXdzLmF1dGgjc2lndjRhXCIsXG4gICAgICAgIHNpZ25pbmdQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICBuYW1lOiBcInN0c1wiLFxuICAgICAgICAgICAgcmVnaW9uOiBhdXRoUGFyYW1ldGVycy5yZWdpb24sXG4gICAgICAgIH0sXG4gICAgICAgIHByb3BlcnRpZXNFeHRyYWN0b3I6IChjb25maWcsIGNvbnRleHQpID0+ICh7XG4gICAgICAgICAgICBzaWduaW5nUHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgIGNvbmZpZyxcbiAgICAgICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgfTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVNtaXRoeUFwaU5vQXV0aEh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc2NoZW1lSWQ6IFwic21pdGh5LmFwaSNub0F1dGhcIixcbiAgICB9O1xufVxuY29uc3QgY3JlYXRlRW5kcG9pbnRSdWxlU2V0SHR0cEF1dGhTY2hlbWVQcm92aWRlciA9IChkZWZhdWx0RW5kcG9pbnRSZXNvbHZlciwgZGVmYXVsdEh0dHBBdXRoU2NoZW1lUmVzb2x2ZXIsIGNyZWF0ZUh0dHBBdXRoT3B0aW9uRnVuY3Rpb25zKSA9PiB7XG4gICAgY29uc3QgZW5kcG9pbnRSdWxlU2V0SHR0cEF1dGhTY2hlbWVQcm92aWRlciA9IChhdXRoUGFyYW1ldGVycykgPT4ge1xuICAgICAgICBjb25zdCBlbmRwb2ludCA9IGRlZmF1bHRFbmRwb2ludFJlc29sdmVyKGF1dGhQYXJhbWV0ZXJzKTtcbiAgICAgICAgY29uc3QgYXV0aFNjaGVtZXMgPSBlbmRwb2ludC5wcm9wZXJ0aWVzPy5hdXRoU2NoZW1lcztcbiAgICAgICAgaWYgKCFhdXRoU2NoZW1lcykge1xuICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRIdHRwQXV0aFNjaGVtZVJlc29sdmVyKGF1dGhQYXJhbWV0ZXJzKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBvcHRpb25zID0gW107XG4gICAgICAgIGZvciAoY29uc3Qgc2NoZW1lIG9mIGF1dGhTY2hlbWVzKSB7XG4gICAgICAgICAgICBjb25zdCB7IG5hbWU6IHJlc29sdmVkTmFtZSwgcHJvcGVydGllcyA9IHt9LCAuLi5yZXN0IH0gPSBzY2hlbWU7XG4gICAgICAgICAgICBjb25zdCBuYW1lID0gcmVzb2x2ZWROYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICBpZiAocmVzb2x2ZWROYW1lICE9PSBuYW1lKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKGBIdHRwQXV0aFNjaGVtZSBoYXMgYmVlbiBub3JtYWxpemVkIHdpdGggbG93ZXJjYXNpbmc6ICcke3Jlc29sdmVkTmFtZX0nIHRvICcke25hbWV9J2ApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IHNjaGVtZUlkO1xuICAgICAgICAgICAgaWYgKG5hbWUgPT09IFwic2lndjRhXCIpIHtcbiAgICAgICAgICAgICAgICBzY2hlbWVJZCA9IFwiYXdzLmF1dGgjc2lndjRhXCI7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2lndjRQcmVzZW50ID0gYXV0aFNjaGVtZXMuZmluZCgocykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBuYW1lID0gcy5uYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuYW1lICE9PSBcInNpZ3Y0YVwiICYmIG5hbWUuc3RhcnRzV2l0aChcInNpZ3Y0XCIpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmIChTaWduYXR1cmVWNE11bHRpUmVnaW9uLnNpZ3Y0YURlcGVuZGVuY3koKSA9PT0gXCJub25lXCIgJiYgc2lndjRQcmVzZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKG5hbWUuc3RhcnRzV2l0aChcInNpZ3Y0XCIpKSB7XG4gICAgICAgICAgICAgICAgc2NoZW1lSWQgPSBcImF3cy5hdXRoI3NpZ3Y0XCI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gSHR0cEF1dGhTY2hlbWUgZm91bmQgaW4gJ0BzbWl0aHkucnVsZXMjZW5kcG9pbnRSdWxlU2V0JzogJyR7bmFtZX0nYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBjcmVhdGVPcHRpb24gPSBjcmVhdGVIdHRwQXV0aE9wdGlvbkZ1bmN0aW9uc1tzY2hlbWVJZF07XG4gICAgICAgICAgICBpZiAoIWNyZWF0ZU9wdGlvbikge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQ291bGQgbm90IGZpbmQgSHR0cEF1dGhPcHRpb24gY3JlYXRlIGZ1bmN0aW9uIGZvciAnJHtzY2hlbWVJZH0nYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBvcHRpb24gPSBjcmVhdGVPcHRpb24oYXV0aFBhcmFtZXRlcnMpO1xuICAgICAgICAgICAgb3B0aW9uLnNjaGVtZUlkID0gc2NoZW1lSWQ7XG4gICAgICAgICAgICBvcHRpb24uc2lnbmluZ1Byb3BlcnRpZXMgPSB7IC4uLihvcHRpb24uc2lnbmluZ1Byb3BlcnRpZXMgfHwge30pLCAuLi5yZXN0LCAuLi5wcm9wZXJ0aWVzIH07XG4gICAgICAgICAgICBvcHRpb25zLnB1c2gob3B0aW9uKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb3B0aW9ucztcbiAgICB9O1xuICAgIHJldHVybiBlbmRwb2ludFJ1bGVTZXRIdHRwQXV0aFNjaGVtZVByb3ZpZGVyO1xufTtcbmNvbnN0IF9kZWZhdWx0U1RTSHR0cEF1dGhTY2hlbWVQcm92aWRlciA9IChhdXRoUGFyYW1ldGVycykgPT4ge1xuICAgIGNvbnN0IG9wdGlvbnMgPSBbXTtcbiAgICBzd2l0Y2ggKGF1dGhQYXJhbWV0ZXJzLm9wZXJhdGlvbikge1xuICAgICAgICBjYXNlIFwiQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eVwiOiB7XG4gICAgICAgICAgICBvcHRpb25zLnB1c2goY3JlYXRlU21pdGh5QXBpTm9BdXRoSHR0cEF1dGhPcHRpb24oYXV0aFBhcmFtZXRlcnMpKTtcbiAgICAgICAgICAgIG9wdGlvbnMucHVzaChjcmVhdGVBd3NBdXRoU2lndjRhSHR0cEF1dGhPcHRpb24oYXV0aFBhcmFtZXRlcnMpKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIG9wdGlvbnMucHVzaChjcmVhdGVBd3NBdXRoU2lndjRIdHRwQXV0aE9wdGlvbihhdXRoUGFyYW1ldGVycykpO1xuICAgICAgICAgICAgb3B0aW9ucy5wdXNoKGNyZWF0ZUF3c0F1dGhTaWd2NGFIdHRwQXV0aE9wdGlvbihhdXRoUGFyYW1ldGVycykpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBvcHRpb25zO1xufTtcbmV4cG9ydCBjb25zdCBkZWZhdWx0U1RTSHR0cEF1dGhTY2hlbWVQcm92aWRlciA9IGNyZWF0ZUVuZHBvaW50UnVsZVNldEh0dHBBdXRoU2NoZW1lUHJvdmlkZXIoZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIsIF9kZWZhdWx0U1RTSHR0cEF1dGhTY2hlbWVQcm92aWRlciwge1xuICAgIFwiYXdzLmF1dGgjc2lndjRcIjogY3JlYXRlQXdzQXV0aFNpZ3Y0SHR0cEF1dGhPcHRpb24sXG4gICAgXCJhd3MuYXV0aCNzaWd2NGFcIjogY3JlYXRlQXdzQXV0aFNpZ3Y0YUh0dHBBdXRoT3B0aW9uLFxuICAgIFwic21pdGh5LmFwaSNub0F1dGhcIjogY3JlYXRlU21pdGh5QXBpTm9BdXRoSHR0cEF1dGhPcHRpb24sXG59KTtcbmV4cG9ydCBjb25zdCByZXNvbHZlU3RzQXV0aENvbmZpZyA9IChpbnB1dCkgPT4gT2JqZWN0LmFzc2lnbihpbnB1dCwge1xuICAgIHN0c0NsaWVudEN0b3I6IFNUU0NsaWVudCxcbn0pO1xuZXhwb3J0IGNvbnN0IHJlc29sdmVIdHRwQXV0aFNjaGVtZUNvbmZpZyA9IChjb25maWcpID0+IHtcbiAgICBjb25zdCBjb25maWdfMCA9IHJlc29sdmVTdHNBdXRoQ29uZmlnKGNvbmZpZyk7XG4gICAgY29uc3QgY29uZmlnXzEgPSByZXNvbHZlQXdzU2RrU2lnVjRDb25maWcoY29uZmlnXzApO1xuICAgIGNvbnN0IGNvbmZpZ18yID0gcmVzb2x2ZUF3c1Nka1NpZ1Y0QUNvbmZpZyhjb25maWdfMSk7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oY29uZmlnXzIsIHtcbiAgICAgICAgYXV0aFNjaGVtZVByZWZlcmVuY2U6IG5vcm1hbGl6ZVByb3ZpZGVyKGNvbmZpZy5hdXRoU2NoZW1lUHJlZmVyZW5jZSA/PyBbXSksXG4gICAgfSk7XG59O1xuIiwgImV4cG9ydCBjb25zdCByZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzID0gKG9wdGlvbnMpID0+IHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihvcHRpb25zLCB7XG4gICAgICAgIHVzZUR1YWxzdGFja0VuZHBvaW50OiBvcHRpb25zLnVzZUR1YWxzdGFja0VuZHBvaW50ID8/IGZhbHNlLFxuICAgICAgICB1c2VGaXBzRW5kcG9pbnQ6IG9wdGlvbnMudXNlRmlwc0VuZHBvaW50ID8/IGZhbHNlLFxuICAgICAgICB1c2VHbG9iYWxFbmRwb2ludDogb3B0aW9ucy51c2VHbG9iYWxFbmRwb2ludCA/PyBmYWxzZSxcbiAgICAgICAgZGVmYXVsdFNpZ25pbmdOYW1lOiBcInN0c1wiLFxuICAgIH0pO1xufTtcbmV4cG9ydCBjb25zdCBjb21tb25QYXJhbXMgPSB7XG4gICAgVXNlR2xvYmFsRW5kcG9pbnQ6IHsgdHlwZTogXCJidWlsdEluUGFyYW1zXCIsIG5hbWU6IFwidXNlR2xvYmFsRW5kcG9pbnRcIiB9LFxuICAgIFVzZUZJUFM6IHsgdHlwZTogXCJidWlsdEluUGFyYW1zXCIsIG5hbWU6IFwidXNlRmlwc0VuZHBvaW50XCIgfSxcbiAgICBFbmRwb2ludDogeyB0eXBlOiBcImJ1aWx0SW5QYXJhbXNcIiwgbmFtZTogXCJlbmRwb2ludFwiIH0sXG4gICAgUmVnaW9uOiB7IHR5cGU6IFwiYnVpbHRJblBhcmFtc1wiLCBuYW1lOiBcInJlZ2lvblwiIH0sXG4gICAgVXNlRHVhbFN0YWNrOiB7IHR5cGU6IFwiYnVpbHRJblBhcmFtc1wiLCBuYW1lOiBcInVzZUR1YWxzdGFja0VuZHBvaW50XCIgfSxcbn07XG4iLCAiaW1wb3J0IHsgU2VydmljZUV4Y2VwdGlvbiBhcyBfX1NlcnZpY2VFeGNlcHRpb24sIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuZXhwb3J0IHsgX19TZXJ2aWNlRXhjZXB0aW9uIH07XG5leHBvcnQgY2xhc3MgU1RTU2VydmljZUV4Y2VwdGlvbiBleHRlbmRzIF9fU2VydmljZUV4Y2VwdGlvbiB7XG4gICAgY29uc3RydWN0b3Iob3B0aW9ucykge1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFNUU1NlcnZpY2VFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgU1RTU2VydmljZUV4Y2VwdGlvbiBhcyBfX0Jhc2VFeGNlcHRpb24gfSBmcm9tIFwiLi9TVFNTZXJ2aWNlRXhjZXB0aW9uXCI7XG5leHBvcnQgY2xhc3MgRXhwaXJlZFRva2VuRXhjZXB0aW9uIGV4dGVuZHMgX19CYXNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJFeHBpcmVkVG9rZW5FeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJFeHBpcmVkVG9rZW5FeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgRXhwaXJlZFRva2VuRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIE1hbGZvcm1lZFBvbGljeURvY3VtZW50RXhjZXB0aW9uIGV4dGVuZHMgX19CYXNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJNYWxmb3JtZWRQb2xpY3lEb2N1bWVudEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIk1hbGZvcm1lZFBvbGljeURvY3VtZW50RXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIE1hbGZvcm1lZFBvbGljeURvY3VtZW50RXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIFBhY2tlZFBvbGljeVRvb0xhcmdlRXhjZXB0aW9uIGV4dGVuZHMgX19CYXNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJQYWNrZWRQb2xpY3lUb29MYXJnZUV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIlBhY2tlZFBvbGljeVRvb0xhcmdlRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFBhY2tlZFBvbGljeVRvb0xhcmdlRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIFJlZ2lvbkRpc2FibGVkRXhjZXB0aW9uIGV4dGVuZHMgX19CYXNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJSZWdpb25EaXNhYmxlZEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIlJlZ2lvbkRpc2FibGVkRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFJlZ2lvbkRpc2FibGVkRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIElEUFJlamVjdGVkQ2xhaW1FeGNlcHRpb24gZXh0ZW5kcyBfX0Jhc2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIklEUFJlamVjdGVkQ2xhaW1FeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJJRFBSZWplY3RlZENsYWltRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIElEUFJlamVjdGVkQ2xhaW1FeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgSW52YWxpZElkZW50aXR5VG9rZW5FeGNlcHRpb24gZXh0ZW5kcyBfX0Jhc2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIkludmFsaWRJZGVudGl0eVRva2VuRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiSW52YWxpZElkZW50aXR5VG9rZW5FeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgSW52YWxpZElkZW50aXR5VG9rZW5FeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgSURQQ29tbXVuaWNhdGlvbkVycm9yRXhjZXB0aW9uIGV4dGVuZHMgX19CYXNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJJRFBDb21tdW5pY2F0aW9uRXJyb3JFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgICRyZXRyeWFibGUgPSB7fTtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiSURQQ29tbXVuaWNhdGlvbkVycm9yRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIElEUENvbW11bmljYXRpb25FcnJvckV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn1cbiIsICJjb25zdCBfQSA9IFwiQXJuXCI7XG5jb25zdCBfQUtJID0gXCJBY2Nlc3NLZXlJZFwiO1xuY29uc3QgX0FSID0gXCJBc3N1bWVSb2xlXCI7XG5jb25zdCBfQVJJID0gXCJBc3N1bWVkUm9sZUlkXCI7XG5jb25zdCBfQVJSID0gXCJBc3N1bWVSb2xlUmVxdWVzdFwiO1xuY29uc3QgX0FSUnMgPSBcIkFzc3VtZVJvbGVSZXNwb25zZVwiO1xuY29uc3QgX0FSVSA9IFwiQXNzdW1lZFJvbGVVc2VyXCI7XG5jb25zdCBfQVJXV0kgPSBcIkFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlcIjtcbmNvbnN0IF9BUldXSVIgPSBcIkFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlSZXF1ZXN0XCI7XG5jb25zdCBfQVJXV0lScyA9IFwiQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eVJlc3BvbnNlXCI7XG5jb25zdCBfQXUgPSBcIkF1ZGllbmNlXCI7XG5jb25zdCBfQyA9IFwiQ3JlZGVudGlhbHNcIjtcbmNvbnN0IF9DQSA9IFwiQ29udGV4dEFzc2VydGlvblwiO1xuY29uc3QgX0RTID0gXCJEdXJhdGlvblNlY29uZHNcIjtcbmNvbnN0IF9FID0gXCJFeHBpcmF0aW9uXCI7XG5jb25zdCBfRUkgPSBcIkV4dGVybmFsSWRcIjtcbmNvbnN0IF9FVEUgPSBcIkV4cGlyZWRUb2tlbkV4Y2VwdGlvblwiO1xuY29uc3QgX0lEUENFRSA9IFwiSURQQ29tbXVuaWNhdGlvbkVycm9yRXhjZXB0aW9uXCI7XG5jb25zdCBfSURQUkNFID0gXCJJRFBSZWplY3RlZENsYWltRXhjZXB0aW9uXCI7XG5jb25zdCBfSUlURSA9IFwiSW52YWxpZElkZW50aXR5VG9rZW5FeGNlcHRpb25cIjtcbmNvbnN0IF9LID0gXCJLZXlcIjtcbmNvbnN0IF9NUERFID0gXCJNYWxmb3JtZWRQb2xpY3lEb2N1bWVudEV4Y2VwdGlvblwiO1xuY29uc3QgX1AgPSBcIlBvbGljeVwiO1xuY29uc3QgX1BBID0gXCJQb2xpY3lBcm5zXCI7XG5jb25zdCBfUEFyID0gXCJQcm92aWRlckFyblwiO1xuY29uc3QgX1BDID0gXCJQcm92aWRlZENvbnRleHRzXCI7XG5jb25zdCBfUENMVCA9IFwiUHJvdmlkZWRDb250ZXh0c0xpc3RUeXBlXCI7XG5jb25zdCBfUENyID0gXCJQcm92aWRlZENvbnRleHRcIjtcbmNvbnN0IF9QRFQgPSBcIlBvbGljeURlc2NyaXB0b3JUeXBlXCI7XG5jb25zdCBfUEkgPSBcIlByb3ZpZGVySWRcIjtcbmNvbnN0IF9QUFMgPSBcIlBhY2tlZFBvbGljeVNpemVcIjtcbmNvbnN0IF9QUFRMRSA9IFwiUGFja2VkUG9saWN5VG9vTGFyZ2VFeGNlcHRpb25cIjtcbmNvbnN0IF9QciA9IFwiUHJvdmlkZXJcIjtcbmNvbnN0IF9SQSA9IFwiUm9sZUFyblwiO1xuY29uc3QgX1JERSA9IFwiUmVnaW9uRGlzYWJsZWRFeGNlcHRpb25cIjtcbmNvbnN0IF9SU04gPSBcIlJvbGVTZXNzaW9uTmFtZVwiO1xuY29uc3QgX1NBSyA9IFwiU2VjcmV0QWNjZXNzS2V5XCI7XG5jb25zdCBfU0ZXSVQgPSBcIlN1YmplY3RGcm9tV2ViSWRlbnRpdHlUb2tlblwiO1xuY29uc3QgX1NJID0gXCJTb3VyY2VJZGVudGl0eVwiO1xuY29uc3QgX1NOID0gXCJTZXJpYWxOdW1iZXJcIjtcbmNvbnN0IF9TVCA9IFwiU2Vzc2lvblRva2VuXCI7XG5jb25zdCBfVCA9IFwiVGFnc1wiO1xuY29uc3QgX1RDID0gXCJUb2tlbkNvZGVcIjtcbmNvbnN0IF9UVEsgPSBcIlRyYW5zaXRpdmVUYWdLZXlzXCI7XG5jb25zdCBfVGEgPSBcIlRhZ1wiO1xuY29uc3QgX1YgPSBcIlZhbHVlXCI7XG5jb25zdCBfV0lUID0gXCJXZWJJZGVudGl0eVRva2VuXCI7XG5jb25zdCBfYSA9IFwiYXJuXCI7XG5jb25zdCBfYUtTVCA9IFwiYWNjZXNzS2V5U2VjcmV0VHlwZVwiO1xuY29uc3QgX2FRRSA9IFwiYXdzUXVlcnlFcnJvclwiO1xuY29uc3QgX2MgPSBcImNsaWVudFwiO1xuY29uc3QgX2NUVCA9IFwiY2xpZW50VG9rZW5UeXBlXCI7XG5jb25zdCBfZSA9IFwiZXJyb3JcIjtcbmNvbnN0IF9oRSA9IFwiaHR0cEVycm9yXCI7XG5jb25zdCBfbSA9IFwibWVzc2FnZVwiO1xuY29uc3QgX3BETFQgPSBcInBvbGljeURlc2NyaXB0b3JMaXN0VHlwZVwiO1xuY29uc3QgX3MgPSBcInNtaXRoeS50cy5zZGsuc3ludGhldGljLmNvbS5hbWF6b25hd3Muc3RzXCI7XG5jb25zdCBfdExUID0gXCJ0YWdMaXN0VHlwZVwiO1xuY29uc3QgbjAgPSBcImNvbS5hbWF6b25hd3Muc3RzXCI7XG5pbXBvcnQgeyBUeXBlUmVnaXN0cnkgfSBmcm9tIFwiQHNtaXRoeS9jb3JlL3NjaGVtYVwiO1xuaW1wb3J0IHsgRXhwaXJlZFRva2VuRXhjZXB0aW9uLCBJRFBDb21tdW5pY2F0aW9uRXJyb3JFeGNlcHRpb24sIElEUFJlamVjdGVkQ2xhaW1FeGNlcHRpb24sIEludmFsaWRJZGVudGl0eVRva2VuRXhjZXB0aW9uLCBNYWxmb3JtZWRQb2xpY3lEb2N1bWVudEV4Y2VwdGlvbiwgUGFja2VkUG9saWN5VG9vTGFyZ2VFeGNlcHRpb24sIFJlZ2lvbkRpc2FibGVkRXhjZXB0aW9uLCB9IGZyb20gXCIuLi9tb2RlbHMvZXJyb3JzXCI7XG5pbXBvcnQgeyBTVFNTZXJ2aWNlRXhjZXB0aW9uIH0gZnJvbSBcIi4uL21vZGVscy9TVFNTZXJ2aWNlRXhjZXB0aW9uXCI7XG5jb25zdCBfc19yZWdpc3RyeSA9IFR5cGVSZWdpc3RyeS5mb3IoX3MpO1xuZXhwb3J0IHZhciBTVFNTZXJ2aWNlRXhjZXB0aW9uJCA9IFstMywgX3MsIFwiU1RTU2VydmljZUV4Y2VwdGlvblwiLCAwLCBbXSwgW11dO1xuX3NfcmVnaXN0cnkucmVnaXN0ZXJFcnJvcihTVFNTZXJ2aWNlRXhjZXB0aW9uJCwgU1RTU2VydmljZUV4Y2VwdGlvbik7XG5jb25zdCBuMF9yZWdpc3RyeSA9IFR5cGVSZWdpc3RyeS5mb3IobjApO1xuZXhwb3J0IHZhciBFeHBpcmVkVG9rZW5FeGNlcHRpb24kID0gW1xuICAgIC0zLFxuICAgIG4wLFxuICAgIF9FVEUsXG4gICAgeyBbX2FRRV06IFtgRXhwaXJlZFRva2VuRXhjZXB0aW9uYCwgNDAwXSwgW19lXTogX2MsIFtfaEVdOiA0MDAgfSxcbiAgICBbX21dLFxuICAgIFswXSxcbl07XG5uMF9yZWdpc3RyeS5yZWdpc3RlckVycm9yKEV4cGlyZWRUb2tlbkV4Y2VwdGlvbiQsIEV4cGlyZWRUb2tlbkV4Y2VwdGlvbik7XG5leHBvcnQgdmFyIElEUENvbW11bmljYXRpb25FcnJvckV4Y2VwdGlvbiQgPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX0lEUENFRSxcbiAgICB7IFtfYVFFXTogW2BJRFBDb21tdW5pY2F0aW9uRXJyb3JgLCA0MDBdLCBbX2VdOiBfYywgW19oRV06IDQwMCB9LFxuICAgIFtfbV0sXG4gICAgWzBdLFxuXTtcbm4wX3JlZ2lzdHJ5LnJlZ2lzdGVyRXJyb3IoSURQQ29tbXVuaWNhdGlvbkVycm9yRXhjZXB0aW9uJCwgSURQQ29tbXVuaWNhdGlvbkVycm9yRXhjZXB0aW9uKTtcbmV4cG9ydCB2YXIgSURQUmVqZWN0ZWRDbGFpbUV4Y2VwdGlvbiQgPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX0lEUFJDRSxcbiAgICB7IFtfYVFFXTogW2BJRFBSZWplY3RlZENsYWltYCwgNDAzXSwgW19lXTogX2MsIFtfaEVdOiA0MDMgfSxcbiAgICBbX21dLFxuICAgIFswXSxcbl07XG5uMF9yZWdpc3RyeS5yZWdpc3RlckVycm9yKElEUFJlamVjdGVkQ2xhaW1FeGNlcHRpb24kLCBJRFBSZWplY3RlZENsYWltRXhjZXB0aW9uKTtcbmV4cG9ydCB2YXIgSW52YWxpZElkZW50aXR5VG9rZW5FeGNlcHRpb24kID0gW1xuICAgIC0zLFxuICAgIG4wLFxuICAgIF9JSVRFLFxuICAgIHsgW19hUUVdOiBbYEludmFsaWRJZGVudGl0eVRva2VuYCwgNDAwXSwgW19lXTogX2MsIFtfaEVdOiA0MDAgfSxcbiAgICBbX21dLFxuICAgIFswXSxcbl07XG5uMF9yZWdpc3RyeS5yZWdpc3RlckVycm9yKEludmFsaWRJZGVudGl0eVRva2VuRXhjZXB0aW9uJCwgSW52YWxpZElkZW50aXR5VG9rZW5FeGNlcHRpb24pO1xuZXhwb3J0IHZhciBNYWxmb3JtZWRQb2xpY3lEb2N1bWVudEV4Y2VwdGlvbiQgPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX01QREUsXG4gICAgeyBbX2FRRV06IFtgTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRgLCA0MDBdLCBbX2VdOiBfYywgW19oRV06IDQwMCB9LFxuICAgIFtfbV0sXG4gICAgWzBdLFxuXTtcbm4wX3JlZ2lzdHJ5LnJlZ2lzdGVyRXJyb3IoTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFeGNlcHRpb24kLCBNYWxmb3JtZWRQb2xpY3lEb2N1bWVudEV4Y2VwdGlvbik7XG5leHBvcnQgdmFyIFBhY2tlZFBvbGljeVRvb0xhcmdlRXhjZXB0aW9uJCA9IFtcbiAgICAtMyxcbiAgICBuMCxcbiAgICBfUFBUTEUsXG4gICAgeyBbX2FRRV06IFtgUGFja2VkUG9saWN5VG9vTGFyZ2VgLCA0MDBdLCBbX2VdOiBfYywgW19oRV06IDQwMCB9LFxuICAgIFtfbV0sXG4gICAgWzBdLFxuXTtcbm4wX3JlZ2lzdHJ5LnJlZ2lzdGVyRXJyb3IoUGFja2VkUG9saWN5VG9vTGFyZ2VFeGNlcHRpb24kLCBQYWNrZWRQb2xpY3lUb29MYXJnZUV4Y2VwdGlvbik7XG5leHBvcnQgdmFyIFJlZ2lvbkRpc2FibGVkRXhjZXB0aW9uJCA9IFtcbiAgICAtMyxcbiAgICBuMCxcbiAgICBfUkRFLFxuICAgIHsgW19hUUVdOiBbYFJlZ2lvbkRpc2FibGVkRXhjZXB0aW9uYCwgNDAzXSwgW19lXTogX2MsIFtfaEVdOiA0MDMgfSxcbiAgICBbX21dLFxuICAgIFswXSxcbl07XG5uMF9yZWdpc3RyeS5yZWdpc3RlckVycm9yKFJlZ2lvbkRpc2FibGVkRXhjZXB0aW9uJCwgUmVnaW9uRGlzYWJsZWRFeGNlcHRpb24pO1xuZXhwb3J0IGNvbnN0IGVycm9yVHlwZVJlZ2lzdHJpZXMgPSBbX3NfcmVnaXN0cnksIG4wX3JlZ2lzdHJ5XTtcbnZhciBhY2Nlc3NLZXlTZWNyZXRUeXBlID0gWzAsIG4wLCBfYUtTVCwgOCwgMF07XG52YXIgY2xpZW50VG9rZW5UeXBlID0gWzAsIG4wLCBfY1RULCA4LCAwXTtcbmV4cG9ydCB2YXIgQXNzdW1lZFJvbGVVc2VyJCA9IFszLCBuMCwgX0FSVSwgMCwgW19BUkksIF9BXSwgWzAsIDBdLCAyXTtcbmV4cG9ydCB2YXIgQXNzdW1lUm9sZVJlcXVlc3QkID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0FSUixcbiAgICAwLFxuICAgIFtfUkEsIF9SU04sIF9QQSwgX1AsIF9EUywgX1QsIF9UVEssIF9FSSwgX1NOLCBfVEMsIF9TSSwgX1BDXSxcbiAgICBbMCwgMCwgKCkgPT4gcG9saWN5RGVzY3JpcHRvckxpc3RUeXBlLCAwLCAxLCAoKSA9PiB0YWdMaXN0VHlwZSwgNjQgfCAwLCAwLCAwLCAwLCAwLCAoKSA9PiBQcm92aWRlZENvbnRleHRzTGlzdFR5cGVdLFxuICAgIDIsXG5dO1xuZXhwb3J0IHZhciBBc3N1bWVSb2xlUmVzcG9uc2UkID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0FSUnMsXG4gICAgMCxcbiAgICBbX0MsIF9BUlUsIF9QUFMsIF9TSV0sXG4gICAgW1soKSA9PiBDcmVkZW50aWFscyQsIDBdLCAoKSA9PiBBc3N1bWVkUm9sZVVzZXIkLCAxLCAwXSxcbl07XG5leHBvcnQgdmFyIEFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlSZXF1ZXN0JCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9BUldXSVIsXG4gICAgMCxcbiAgICBbX1JBLCBfUlNOLCBfV0lULCBfUEksIF9QQSwgX1AsIF9EU10sXG4gICAgWzAsIDAsIFsoKSA9PiBjbGllbnRUb2tlblR5cGUsIDBdLCAwLCAoKSA9PiBwb2xpY3lEZXNjcmlwdG9yTGlzdFR5cGUsIDAsIDFdLFxuICAgIDMsXG5dO1xuZXhwb3J0IHZhciBBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5UmVzcG9uc2UkID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0FSV1dJUnMsXG4gICAgMCxcbiAgICBbX0MsIF9TRldJVCwgX0FSVSwgX1BQUywgX1ByLCBfQXUsIF9TSV0sXG4gICAgW1soKSA9PiBDcmVkZW50aWFscyQsIDBdLCAwLCAoKSA9PiBBc3N1bWVkUm9sZVVzZXIkLCAxLCAwLCAwLCAwXSxcbl07XG5leHBvcnQgdmFyIENyZWRlbnRpYWxzJCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9DLFxuICAgIDAsXG4gICAgW19BS0ksIF9TQUssIF9TVCwgX0VdLFxuICAgIFswLCBbKCkgPT4gYWNjZXNzS2V5U2VjcmV0VHlwZSwgMF0sIDAsIDRdLFxuICAgIDQsXG5dO1xuZXhwb3J0IHZhciBQb2xpY3lEZXNjcmlwdG9yVHlwZSQgPSBbMywgbjAsIF9QRFQsIDAsIFtfYV0sIFswXV07XG5leHBvcnQgdmFyIFByb3ZpZGVkQ29udGV4dCQgPSBbMywgbjAsIF9QQ3IsIDAsIFtfUEFyLCBfQ0FdLCBbMCwgMF1dO1xuZXhwb3J0IHZhciBUYWckID0gWzMsIG4wLCBfVGEsIDAsIFtfSywgX1ZdLCBbMCwgMF0sIDJdO1xudmFyIHBvbGljeURlc2NyaXB0b3JMaXN0VHlwZSA9IFsxLCBuMCwgX3BETFQsIDAsICgpID0+IFBvbGljeURlc2NyaXB0b3JUeXBlJF07XG52YXIgUHJvdmlkZWRDb250ZXh0c0xpc3RUeXBlID0gWzEsIG4wLCBfUENMVCwgMCwgKCkgPT4gUHJvdmlkZWRDb250ZXh0JF07XG52YXIgdGFnS2V5TGlzdFR5cGUgPSA2NCB8IDA7XG52YXIgdGFnTGlzdFR5cGUgPSBbMSwgbjAsIF90TFQsIDAsICgpID0+IFRhZyRdO1xuZXhwb3J0IHZhciBBc3N1bWVSb2xlJCA9IFs5LCBuMCwgX0FSLCAwLCAoKSA9PiBBc3N1bWVSb2xlUmVxdWVzdCQsICgpID0+IEFzc3VtZVJvbGVSZXNwb25zZSRdO1xuZXhwb3J0IHZhciBBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5JCA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9BUldXSSxcbiAgICAwLFxuICAgICgpID0+IEFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlSZXF1ZXN0JCxcbiAgICAoKSA9PiBBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5UmVzcG9uc2UkLFxuXTtcbiIsICJpbXBvcnQgeyBBd3NTZGtTaWdWNEFTaWduZXIsIEF3c1Nka1NpZ1Y0U2lnbmVyIH0gZnJvbSBcIkBhd3Mtc2RrL2NvcmUvaHR0cEF1dGhTY2hlbWVzXCI7XG5pbXBvcnQgeyBBd3NRdWVyeVByb3RvY29sIH0gZnJvbSBcIkBhd3Mtc2RrL2NvcmUvcHJvdG9jb2xzXCI7XG5pbXBvcnQgeyBTaWduYXR1cmVWNE11bHRpUmVnaW9uIH0gZnJvbSBcIkBhd3Mtc2RrL3NpZ25hdHVyZS12NC1tdWx0aS1yZWdpb25cIjtcbmltcG9ydCB7IE5vQXV0aFNpZ25lciB9IGZyb20gXCJAc21pdGh5L2NvcmVcIjtcbmltcG9ydCB7IE5vT3BMb2dnZXIgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyBwYXJzZVVybCB9IGZyb20gXCJAc21pdGh5L3VybC1wYXJzZXJcIjtcbmltcG9ydCB7IGZyb21CYXNlNjQsIHRvQmFzZTY0IH0gZnJvbSBcIkBzbWl0aHkvdXRpbC1iYXNlNjRcIjtcbmltcG9ydCB7IGZyb21VdGY4LCB0b1V0ZjggfSBmcm9tIFwiQHNtaXRoeS91dGlsLXV0ZjhcIjtcbmltcG9ydCB7IGRlZmF1bHRTVFNIdHRwQXV0aFNjaGVtZVByb3ZpZGVyIH0gZnJvbSBcIi4vYXV0aC9odHRwQXV0aFNjaGVtZVByb3ZpZGVyXCI7XG5pbXBvcnQgeyBkZWZhdWx0RW5kcG9pbnRSZXNvbHZlciB9IGZyb20gXCIuL2VuZHBvaW50L2VuZHBvaW50UmVzb2x2ZXJcIjtcbmltcG9ydCB7IGVycm9yVHlwZVJlZ2lzdHJpZXMgfSBmcm9tIFwiLi9zY2hlbWFzL3NjaGVtYXNfMFwiO1xuZXhwb3J0IGNvbnN0IGdldFJ1bnRpbWVDb25maWcgPSAoY29uZmlnKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgYXBpVmVyc2lvbjogXCIyMDExLTA2LTE1XCIsXG4gICAgICAgIGJhc2U2NERlY29kZXI6IGNvbmZpZz8uYmFzZTY0RGVjb2RlciA/PyBmcm9tQmFzZTY0LFxuICAgICAgICBiYXNlNjRFbmNvZGVyOiBjb25maWc/LmJhc2U2NEVuY29kZXIgPz8gdG9CYXNlNjQsXG4gICAgICAgIGRpc2FibGVIb3N0UHJlZml4OiBjb25maWc/LmRpc2FibGVIb3N0UHJlZml4ID8/IGZhbHNlLFxuICAgICAgICBlbmRwb2ludFByb3ZpZGVyOiBjb25maWc/LmVuZHBvaW50UHJvdmlkZXIgPz8gZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIsXG4gICAgICAgIGV4dGVuc2lvbnM6IGNvbmZpZz8uZXh0ZW5zaW9ucyA/PyBbXSxcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVQcm92aWRlcjogY29uZmlnPy5odHRwQXV0aFNjaGVtZVByb3ZpZGVyID8/IGRlZmF1bHRTVFNIdHRwQXV0aFNjaGVtZVByb3ZpZGVyLFxuICAgICAgICBodHRwQXV0aFNjaGVtZXM6IGNvbmZpZz8uaHR0cEF1dGhTY2hlbWVzID8/IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzY2hlbWVJZDogXCJhd3MuYXV0aCNzaWd2NFwiLFxuICAgICAgICAgICAgICAgIGlkZW50aXR5UHJvdmlkZXI6IChpcGMpID0+IGlwYy5nZXRJZGVudGl0eVByb3ZpZGVyKFwiYXdzLmF1dGgjc2lndjRcIiksXG4gICAgICAgICAgICAgICAgc2lnbmVyOiBuZXcgQXdzU2RrU2lnVjRTaWduZXIoKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgc2NoZW1lSWQ6IFwiYXdzLmF1dGgjc2lndjRhXCIsXG4gICAgICAgICAgICAgICAgaWRlbnRpdHlQcm92aWRlcjogKGlwYykgPT4gaXBjLmdldElkZW50aXR5UHJvdmlkZXIoXCJhd3MuYXV0aCNzaWd2NGFcIiksXG4gICAgICAgICAgICAgICAgc2lnbmVyOiBuZXcgQXdzU2RrU2lnVjRBU2lnbmVyKCksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHNjaGVtZUlkOiBcInNtaXRoeS5hcGkjbm9BdXRoXCIsXG4gICAgICAgICAgICAgICAgaWRlbnRpdHlQcm92aWRlcjogKGlwYykgPT4gaXBjLmdldElkZW50aXR5UHJvdmlkZXIoXCJzbWl0aHkuYXBpI25vQXV0aFwiKSB8fCAoYXN5bmMgKCkgPT4gKHt9KSksXG4gICAgICAgICAgICAgICAgc2lnbmVyOiBuZXcgTm9BdXRoU2lnbmVyKCksXG4gICAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBsb2dnZXI6IGNvbmZpZz8ubG9nZ2VyID8/IG5ldyBOb09wTG9nZ2VyKCksXG4gICAgICAgIHByb3RvY29sOiBjb25maWc/LnByb3RvY29sID8/IEF3c1F1ZXJ5UHJvdG9jb2wsXG4gICAgICAgIHByb3RvY29sU2V0dGluZ3M6IGNvbmZpZz8ucHJvdG9jb2xTZXR0aW5ncyA/PyB7XG4gICAgICAgICAgICBkZWZhdWx0TmFtZXNwYWNlOiBcImNvbS5hbWF6b25hd3Muc3RzXCIsXG4gICAgICAgICAgICBlcnJvclR5cGVSZWdpc3RyaWVzLFxuICAgICAgICAgICAgeG1sTmFtZXNwYWNlOiBcImh0dHBzOi8vc3RzLmFtYXpvbmF3cy5jb20vZG9jLzIwMTEtMDYtMTUvXCIsXG4gICAgICAgICAgICB2ZXJzaW9uOiBcIjIwMTEtMDYtMTVcIixcbiAgICAgICAgICAgIHNlcnZpY2VUYXJnZXQ6IFwiQVdTU2VjdXJpdHlUb2tlblNlcnZpY2VWMjAxMTA2MTVcIixcbiAgICAgICAgfSxcbiAgICAgICAgc2VydmljZUlkOiBjb25maWc/LnNlcnZpY2VJZCA/PyBcIlNUU1wiLFxuICAgICAgICBzaWduZXJDb25zdHJ1Y3RvcjogY29uZmlnPy5zaWduZXJDb25zdHJ1Y3RvciA/PyBTaWduYXR1cmVWNE11bHRpUmVnaW9uLFxuICAgICAgICB1cmxQYXJzZXI6IGNvbmZpZz8udXJsUGFyc2VyID8/IHBhcnNlVXJsLFxuICAgICAgICB1dGY4RGVjb2RlcjogY29uZmlnPy51dGY4RGVjb2RlciA/PyBmcm9tVXRmOCxcbiAgICAgICAgdXRmOEVuY29kZXI6IGNvbmZpZz8udXRmOEVuY29kZXIgPz8gdG9VdGY4LFxuICAgIH07XG59O1xuIiwgImltcG9ydCBwYWNrYWdlSW5mbyBmcm9tIFwiLi4vLi4vLi4vcGFja2FnZS5qc29uXCI7XG5pbXBvcnQgeyBlbWl0V2FybmluZ0lmVW5zdXBwb3J0ZWRWZXJzaW9uIGFzIGF3c0NoZWNrVmVyc2lvbiB9IGZyb20gXCJAYXdzLXNkay9jb3JlL2NsaWVudFwiO1xuaW1wb3J0IHsgQXdzU2RrU2lnVjRBU2lnbmVyLCBBd3NTZGtTaWdWNFNpZ25lciwgTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX09QVElPTlMsIE5PREVfU0lHVjRBX0NPTkZJR19PUFRJT05TLCB9IGZyb20gXCJAYXdzLXNkay9jb3JlL2h0dHBBdXRoU2NoZW1lc1wiO1xuaW1wb3J0IHsgY3JlYXRlRGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyLCBOT0RFX0FQUF9JRF9DT05GSUdfT1BUSU9OUyB9IGZyb20gXCJAYXdzLXNkay91dGlsLXVzZXItYWdlbnQtbm9kZVwiO1xuaW1wb3J0IHsgTk9ERV9SRUdJT05fQ09ORklHX0ZJTEVfT1BUSU9OUywgTk9ERV9SRUdJT05fQ09ORklHX09QVElPTlMsIE5PREVfVVNFX0RVQUxTVEFDS19FTkRQT0lOVF9DT05GSUdfT1BUSU9OUywgTk9ERV9VU0VfRklQU19FTkRQT0lOVF9DT05GSUdfT1BUSU9OUywgfSBmcm9tIFwiQHNtaXRoeS9jb25maWctcmVzb2x2ZXJcIjtcbmltcG9ydCB7IE5vQXV0aFNpZ25lciB9IGZyb20gXCJAc21pdGh5L2NvcmVcIjtcbmltcG9ydCB7IEhhc2ggfSBmcm9tIFwiQHNtaXRoeS9oYXNoLW5vZGVcIjtcbmltcG9ydCB7IE5PREVfTUFYX0FUVEVNUFRfQ09ORklHX09QVElPTlMsIE5PREVfUkVUUllfTU9ERV9DT05GSUdfT1BUSU9OUyB9IGZyb20gXCJAc21pdGh5L21pZGRsZXdhcmUtcmV0cnlcIjtcbmltcG9ydCB7IGxvYWRDb25maWcgYXMgbG9hZE5vZGVDb25maWcgfSBmcm9tIFwiQHNtaXRoeS9ub2RlLWNvbmZpZy1wcm92aWRlclwiO1xuaW1wb3J0IHsgTm9kZUh0dHBIYW5kbGVyIGFzIFJlcXVlc3RIYW5kbGVyLCBzdHJlYW1Db2xsZWN0b3IgfSBmcm9tIFwiQHNtaXRoeS9ub2RlLWh0dHAtaGFuZGxlclwiO1xuaW1wb3J0IHsgZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbiwgbG9hZENvbmZpZ3NGb3JEZWZhdWx0TW9kZSB9IGZyb20gXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjtcbmltcG9ydCB7IGNhbGN1bGF0ZUJvZHlMZW5ndGggfSBmcm9tIFwiQHNtaXRoeS91dGlsLWJvZHktbGVuZ3RoLW5vZGVcIjtcbmltcG9ydCB7IHJlc29sdmVEZWZhdWx0c01vZGVDb25maWcgfSBmcm9tIFwiQHNtaXRoeS91dGlsLWRlZmF1bHRzLW1vZGUtbm9kZVwiO1xuaW1wb3J0IHsgREVGQVVMVF9SRVRSWV9NT0RFIH0gZnJvbSBcIkBzbWl0aHkvdXRpbC1yZXRyeVwiO1xuaW1wb3J0IHsgZ2V0UnVudGltZUNvbmZpZyBhcyBnZXRTaGFyZWRSdW50aW1lQ29uZmlnIH0gZnJvbSBcIi4vcnVudGltZUNvbmZpZy5zaGFyZWRcIjtcbmV4cG9ydCBjb25zdCBnZXRSdW50aW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIGVtaXRXYXJuaW5nSWZVbnN1cHBvcnRlZFZlcnNpb24ocHJvY2Vzcy52ZXJzaW9uKTtcbiAgICBjb25zdCBkZWZhdWx0c01vZGUgPSByZXNvbHZlRGVmYXVsdHNNb2RlQ29uZmlnKGNvbmZpZyk7XG4gICAgY29uc3QgZGVmYXVsdENvbmZpZ1Byb3ZpZGVyID0gKCkgPT4gZGVmYXVsdHNNb2RlKCkudGhlbihsb2FkQ29uZmlnc0ZvckRlZmF1bHRNb2RlKTtcbiAgICBjb25zdCBjbGllbnRTaGFyZWRWYWx1ZXMgPSBnZXRTaGFyZWRSdW50aW1lQ29uZmlnKGNvbmZpZyk7XG4gICAgYXdzQ2hlY2tWZXJzaW9uKHByb2Nlc3MudmVyc2lvbik7XG4gICAgY29uc3QgbG9hZGVyQ29uZmlnID0ge1xuICAgICAgICBwcm9maWxlOiBjb25maWc/LnByb2ZpbGUsXG4gICAgICAgIGxvZ2dlcjogY2xpZW50U2hhcmVkVmFsdWVzLmxvZ2dlcixcbiAgICB9O1xuICAgIHJldHVybiB7XG4gICAgICAgIC4uLmNsaWVudFNoYXJlZFZhbHVlcyxcbiAgICAgICAgLi4uY29uZmlnLFxuICAgICAgICBydW50aW1lOiBcIm5vZGVcIixcbiAgICAgICAgZGVmYXVsdHNNb2RlLFxuICAgICAgICBhdXRoU2NoZW1lUHJlZmVyZW5jZTogY29uZmlnPy5hdXRoU2NoZW1lUHJlZmVyZW5jZSA/PyBsb2FkTm9kZUNvbmZpZyhOT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfT1BUSU9OUywgbG9hZGVyQ29uZmlnKSxcbiAgICAgICAgYm9keUxlbmd0aENoZWNrZXI6IGNvbmZpZz8uYm9keUxlbmd0aENoZWNrZXIgPz8gY2FsY3VsYXRlQm9keUxlbmd0aCxcbiAgICAgICAgZGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyOiBjb25maWc/LmRlZmF1bHRVc2VyQWdlbnRQcm92aWRlciA/P1xuICAgICAgICAgICAgY3JlYXRlRGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyKHsgc2VydmljZUlkOiBjbGllbnRTaGFyZWRWYWx1ZXMuc2VydmljZUlkLCBjbGllbnRWZXJzaW9uOiBwYWNrYWdlSW5mby52ZXJzaW9uIH0pLFxuICAgICAgICBodHRwQXV0aFNjaGVtZXM6IGNvbmZpZz8uaHR0cEF1dGhTY2hlbWVzID8/IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzY2hlbWVJZDogXCJhd3MuYXV0aCNzaWd2NFwiLFxuICAgICAgICAgICAgICAgIGlkZW50aXR5UHJvdmlkZXI6IChpcGMpID0+IGlwYy5nZXRJZGVudGl0eVByb3ZpZGVyKFwiYXdzLmF1dGgjc2lndjRcIikgfHxcbiAgICAgICAgICAgICAgICAgICAgKGFzeW5jIChpZFByb3BzKSA9PiBhd2FpdCBjb25maWcuY3JlZGVudGlhbERlZmF1bHRQcm92aWRlcihpZFByb3BzPy5fX2NvbmZpZyB8fCB7fSkoKSksXG4gICAgICAgICAgICAgICAgc2lnbmVyOiBuZXcgQXdzU2RrU2lnVjRTaWduZXIoKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgc2NoZW1lSWQ6IFwiYXdzLmF1dGgjc2lndjRhXCIsXG4gICAgICAgICAgICAgICAgaWRlbnRpdHlQcm92aWRlcjogKGlwYykgPT4gaXBjLmdldElkZW50aXR5UHJvdmlkZXIoXCJhd3MuYXV0aCNzaWd2NGFcIiksXG4gICAgICAgICAgICAgICAgc2lnbmVyOiBuZXcgQXdzU2RrU2lnVjRBU2lnbmVyKCksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHNjaGVtZUlkOiBcInNtaXRoeS5hcGkjbm9BdXRoXCIsXG4gICAgICAgICAgICAgICAgaWRlbnRpdHlQcm92aWRlcjogKGlwYykgPT4gaXBjLmdldElkZW50aXR5UHJvdmlkZXIoXCJzbWl0aHkuYXBpI25vQXV0aFwiKSB8fCAoYXN5bmMgKCkgPT4gKHt9KSksXG4gICAgICAgICAgICAgICAgc2lnbmVyOiBuZXcgTm9BdXRoU2lnbmVyKCksXG4gICAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBtYXhBdHRlbXB0czogY29uZmlnPy5tYXhBdHRlbXB0cyA/PyBsb2FkTm9kZUNvbmZpZyhOT0RFX01BWF9BVFRFTVBUX0NPTkZJR19PUFRJT05TLCBjb25maWcpLFxuICAgICAgICByZWdpb246IGNvbmZpZz8ucmVnaW9uID8/XG4gICAgICAgICAgICBsb2FkTm9kZUNvbmZpZyhOT0RFX1JFR0lPTl9DT05GSUdfT1BUSU9OUywgeyAuLi5OT0RFX1JFR0lPTl9DT05GSUdfRklMRV9PUFRJT05TLCAuLi5sb2FkZXJDb25maWcgfSksXG4gICAgICAgIHJlcXVlc3RIYW5kbGVyOiBSZXF1ZXN0SGFuZGxlci5jcmVhdGUoY29uZmlnPy5yZXF1ZXN0SGFuZGxlciA/PyBkZWZhdWx0Q29uZmlnUHJvdmlkZXIpLFxuICAgICAgICByZXRyeU1vZGU6IGNvbmZpZz8ucmV0cnlNb2RlID8/XG4gICAgICAgICAgICBsb2FkTm9kZUNvbmZpZyh7XG4gICAgICAgICAgICAgICAgLi4uTk9ERV9SRVRSWV9NT0RFX0NPTkZJR19PUFRJT05TLFxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IGFzeW5jICgpID0+IChhd2FpdCBkZWZhdWx0Q29uZmlnUHJvdmlkZXIoKSkucmV0cnlNb2RlIHx8IERFRkFVTFRfUkVUUllfTU9ERSxcbiAgICAgICAgICAgIH0sIGNvbmZpZyksXG4gICAgICAgIHNoYTI1NjogY29uZmlnPy5zaGEyNTYgPz8gSGFzaC5iaW5kKG51bGwsIFwic2hhMjU2XCIpLFxuICAgICAgICBzaWd2NGFTaWduaW5nUmVnaW9uU2V0OiBjb25maWc/LnNpZ3Y0YVNpZ25pbmdSZWdpb25TZXQgPz8gbG9hZE5vZGVDb25maWcoTk9ERV9TSUdWNEFfQ09ORklHX09QVElPTlMsIGxvYWRlckNvbmZpZyksXG4gICAgICAgIHN0cmVhbUNvbGxlY3RvcjogY29uZmlnPy5zdHJlYW1Db2xsZWN0b3IgPz8gc3RyZWFtQ29sbGVjdG9yLFxuICAgICAgICB1c2VEdWFsc3RhY2tFbmRwb2ludDogY29uZmlnPy51c2VEdWFsc3RhY2tFbmRwb2ludCA/PyBsb2FkTm9kZUNvbmZpZyhOT0RFX1VTRV9EVUFMU1RBQ0tfRU5EUE9JTlRfQ09ORklHX09QVElPTlMsIGxvYWRlckNvbmZpZyksXG4gICAgICAgIHVzZUZpcHNFbmRwb2ludDogY29uZmlnPy51c2VGaXBzRW5kcG9pbnQgPz8gbG9hZE5vZGVDb25maWcoTk9ERV9VU0VfRklQU19FTkRQT0lOVF9DT05GSUdfT1BUSU9OUywgbG9hZGVyQ29uZmlnKSxcbiAgICAgICAgdXNlckFnZW50QXBwSWQ6IGNvbmZpZz8udXNlckFnZW50QXBwSWQgPz8gbG9hZE5vZGVDb25maWcoTk9ERV9BUFBfSURfQ09ORklHX09QVElPTlMsIGxvYWRlckNvbmZpZyksXG4gICAgfTtcbn07XG4iLCAiZXhwb3J0IGNvbnN0IGdldEh0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiA9IChydW50aW1lQ29uZmlnKSA9PiB7XG4gICAgY29uc3QgX2h0dHBBdXRoU2NoZW1lcyA9IHJ1bnRpbWVDb25maWcuaHR0cEF1dGhTY2hlbWVzO1xuICAgIGxldCBfaHR0cEF1dGhTY2hlbWVQcm92aWRlciA9IHJ1bnRpbWVDb25maWcuaHR0cEF1dGhTY2hlbWVQcm92aWRlcjtcbiAgICBsZXQgX2NyZWRlbnRpYWxzID0gcnVudGltZUNvbmZpZy5jcmVkZW50aWFscztcbiAgICByZXR1cm4ge1xuICAgICAgICBzZXRIdHRwQXV0aFNjaGVtZShodHRwQXV0aFNjaGVtZSkge1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSBfaHR0cEF1dGhTY2hlbWVzLmZpbmRJbmRleCgoc2NoZW1lKSA9PiBzY2hlbWUuc2NoZW1lSWQgPT09IGh0dHBBdXRoU2NoZW1lLnNjaGVtZUlkKTtcbiAgICAgICAgICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICBfaHR0cEF1dGhTY2hlbWVzLnB1c2goaHR0cEF1dGhTY2hlbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgX2h0dHBBdXRoU2NoZW1lcy5zcGxpY2UoaW5kZXgsIDEsIGh0dHBBdXRoU2NoZW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVzKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9odHRwQXV0aFNjaGVtZXM7XG4gICAgICAgIH0sXG4gICAgICAgIHNldEh0dHBBdXRoU2NoZW1lUHJvdmlkZXIoaHR0cEF1dGhTY2hlbWVQcm92aWRlcikge1xuICAgICAgICAgICAgX2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSBodHRwQXV0aFNjaGVtZVByb3ZpZGVyO1xuICAgICAgICB9LFxuICAgICAgICBodHRwQXV0aFNjaGVtZVByb3ZpZGVyKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9odHRwQXV0aFNjaGVtZVByb3ZpZGVyO1xuICAgICAgICB9LFxuICAgICAgICBzZXRDcmVkZW50aWFscyhjcmVkZW50aWFscykge1xuICAgICAgICAgICAgX2NyZWRlbnRpYWxzID0gY3JlZGVudGlhbHM7XG4gICAgICAgIH0sXG4gICAgICAgIGNyZWRlbnRpYWxzKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9jcmVkZW50aWFscztcbiAgICAgICAgfSxcbiAgICB9O1xufTtcbmV4cG9ydCBjb25zdCByZXNvbHZlSHR0cEF1dGhSdW50aW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIGh0dHBBdXRoU2NoZW1lczogY29uZmlnLmh0dHBBdXRoU2NoZW1lcygpLFxuICAgICAgICBodHRwQXV0aFNjaGVtZVByb3ZpZGVyOiBjb25maWcuaHR0cEF1dGhTY2hlbWVQcm92aWRlcigpLFxuICAgICAgICBjcmVkZW50aWFsczogY29uZmlnLmNyZWRlbnRpYWxzKCksXG4gICAgfTtcbn07XG4iLCAiaW1wb3J0IHsgZ2V0QXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiwgcmVzb2x2ZUF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24sIH0gZnJvbSBcIkBhd3Mtc2RrL3JlZ2lvbi1jb25maWctcmVzb2x2ZXJcIjtcbmltcG9ydCB7IGdldEh0dHBIYW5kbGVyRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiwgcmVzb2x2ZUh0dHBIYW5kbGVyUnVudGltZUNvbmZpZyB9IGZyb20gXCJAc21pdGh5L3Byb3RvY29sLWh0dHBcIjtcbmltcG9ydCB7IGdldERlZmF1bHRFeHRlbnNpb25Db25maWd1cmF0aW9uLCByZXNvbHZlRGVmYXVsdFJ1bnRpbWVDb25maWcgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyBnZXRIdHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24sIHJlc29sdmVIdHRwQXV0aFJ1bnRpbWVDb25maWcgfSBmcm9tIFwiLi9hdXRoL2h0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvblwiO1xuZXhwb3J0IGNvbnN0IHJlc29sdmVSdW50aW1lRXh0ZW5zaW9ucyA9IChydW50aW1lQ29uZmlnLCBleHRlbnNpb25zKSA9PiB7XG4gICAgY29uc3QgZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiA9IE9iamVjdC5hc3NpZ24oZ2V0QXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbihydW50aW1lQ29uZmlnKSwgZ2V0RGVmYXVsdEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24ocnVudGltZUNvbmZpZyksIGdldEh0dHBIYW5kbGVyRXh0ZW5zaW9uQ29uZmlndXJhdGlvbihydW50aW1lQ29uZmlnKSwgZ2V0SHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uKHJ1bnRpbWVDb25maWcpKTtcbiAgICBleHRlbnNpb25zLmZvckVhY2goKGV4dGVuc2lvbikgPT4gZXh0ZW5zaW9uLmNvbmZpZ3VyZShleHRlbnNpb25Db25maWd1cmF0aW9uKSk7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24ocnVudGltZUNvbmZpZywgcmVzb2x2ZUF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24oZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiksIHJlc29sdmVEZWZhdWx0UnVudGltZUNvbmZpZyhleHRlbnNpb25Db25maWd1cmF0aW9uKSwgcmVzb2x2ZUh0dHBIYW5kbGVyUnVudGltZUNvbmZpZyhleHRlbnNpb25Db25maWd1cmF0aW9uKSwgcmVzb2x2ZUh0dHBBdXRoUnVudGltZUNvbmZpZyhleHRlbnNpb25Db25maWd1cmF0aW9uKSk7XG59O1xuIiwgImltcG9ydCB7IGdldEhvc3RIZWFkZXJQbHVnaW4sIHJlc29sdmVIb3N0SGVhZGVyQ29uZmlnLCB9IGZyb20gXCJAYXdzLXNkay9taWRkbGV3YXJlLWhvc3QtaGVhZGVyXCI7XG5pbXBvcnQgeyBnZXRMb2dnZXJQbHVnaW4gfSBmcm9tIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1sb2dnZXJcIjtcbmltcG9ydCB7IGdldFJlY3Vyc2lvbkRldGVjdGlvblBsdWdpbiB9IGZyb20gXCJAYXdzLXNkay9taWRkbGV3YXJlLXJlY3Vyc2lvbi1kZXRlY3Rpb25cIjtcbmltcG9ydCB7IGdldFVzZXJBZ2VudFBsdWdpbiwgcmVzb2x2ZVVzZXJBZ2VudENvbmZpZywgfSBmcm9tIFwiQGF3cy1zZGsvbWlkZGxld2FyZS11c2VyLWFnZW50XCI7XG5pbXBvcnQgeyByZXNvbHZlUmVnaW9uQ29uZmlnIH0gZnJvbSBcIkBzbWl0aHkvY29uZmlnLXJlc29sdmVyXCI7XG5pbXBvcnQgeyBEZWZhdWx0SWRlbnRpdHlQcm92aWRlckNvbmZpZywgZ2V0SHR0cEF1dGhTY2hlbWVFbmRwb2ludFJ1bGVTZXRQbHVnaW4sIGdldEh0dHBTaWduaW5nUGx1Z2luLCB9IGZyb20gXCJAc21pdGh5L2NvcmVcIjtcbmltcG9ydCB7IGdldFNjaGVtYVNlcmRlUGx1Z2luIH0gZnJvbSBcIkBzbWl0aHkvY29yZS9zY2hlbWFcIjtcbmltcG9ydCB7IGdldENvbnRlbnRMZW5ndGhQbHVnaW4gfSBmcm9tIFwiQHNtaXRoeS9taWRkbGV3YXJlLWNvbnRlbnQtbGVuZ3RoXCI7XG5pbXBvcnQgeyByZXNvbHZlRW5kcG9pbnRDb25maWcsIH0gZnJvbSBcIkBzbWl0aHkvbWlkZGxld2FyZS1lbmRwb2ludFwiO1xuaW1wb3J0IHsgZ2V0UmV0cnlQbHVnaW4sIHJlc29sdmVSZXRyeUNvbmZpZywgfSBmcm9tIFwiQHNtaXRoeS9taWRkbGV3YXJlLXJldHJ5XCI7XG5pbXBvcnQgeyBDbGllbnQgYXMgX19DbGllbnQsIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgZGVmYXVsdFNUU0h0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyLCByZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWcsIH0gZnJvbSBcIi4vYXV0aC9odHRwQXV0aFNjaGVtZVByb3ZpZGVyXCI7XG5pbXBvcnQgeyByZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzLCB9IGZyb20gXCIuL2VuZHBvaW50L0VuZHBvaW50UGFyYW1ldGVyc1wiO1xuaW1wb3J0IHsgZ2V0UnVudGltZUNvbmZpZyBhcyBfX2dldFJ1bnRpbWVDb25maWcgfSBmcm9tIFwiLi9ydW50aW1lQ29uZmlnXCI7XG5pbXBvcnQgeyByZXNvbHZlUnVudGltZUV4dGVuc2lvbnMgfSBmcm9tIFwiLi9ydW50aW1lRXh0ZW5zaW9uc1wiO1xuZXhwb3J0IHsgX19DbGllbnQgfTtcbmV4cG9ydCBjbGFzcyBTVFNDbGllbnQgZXh0ZW5kcyBfX0NsaWVudCB7XG4gICAgY29uZmlnO1xuICAgIGNvbnN0cnVjdG9yKC4uLltjb25maWd1cmF0aW9uXSkge1xuICAgICAgICBjb25zdCBfY29uZmlnXzAgPSBfX2dldFJ1bnRpbWVDb25maWcoY29uZmlndXJhdGlvbiB8fCB7fSk7XG4gICAgICAgIHN1cGVyKF9jb25maWdfMCk7XG4gICAgICAgIHRoaXMuaW5pdENvbmZpZyA9IF9jb25maWdfMDtcbiAgICAgICAgY29uc3QgX2NvbmZpZ18xID0gcmVzb2x2ZUNsaWVudEVuZHBvaW50UGFyYW1ldGVycyhfY29uZmlnXzApO1xuICAgICAgICBjb25zdCBfY29uZmlnXzIgPSByZXNvbHZlVXNlckFnZW50Q29uZmlnKF9jb25maWdfMSk7XG4gICAgICAgIGNvbnN0IF9jb25maWdfMyA9IHJlc29sdmVSZXRyeUNvbmZpZyhfY29uZmlnXzIpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzQgPSByZXNvbHZlUmVnaW9uQ29uZmlnKF9jb25maWdfMyk7XG4gICAgICAgIGNvbnN0IF9jb25maWdfNSA9IHJlc29sdmVIb3N0SGVhZGVyQ29uZmlnKF9jb25maWdfNCk7XG4gICAgICAgIGNvbnN0IF9jb25maWdfNiA9IHJlc29sdmVFbmRwb2ludENvbmZpZyhfY29uZmlnXzUpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzcgPSByZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWcoX2NvbmZpZ182KTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ184ID0gcmVzb2x2ZVJ1bnRpbWVFeHRlbnNpb25zKF9jb25maWdfNywgY29uZmlndXJhdGlvbj8uZXh0ZW5zaW9ucyB8fCBbXSk7XG4gICAgICAgIHRoaXMuY29uZmlnID0gX2NvbmZpZ184O1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoZ2V0U2NoZW1hU2VyZGVQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGdldFVzZXJBZ2VudFBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoZ2V0UmV0cnlQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGdldENvbnRlbnRMZW5ndGhQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGdldEhvc3RIZWFkZXJQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGdldExvZ2dlclBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoZ2V0UmVjdXJzaW9uRGV0ZWN0aW9uUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShnZXRIdHRwQXV0aFNjaGVtZUVuZHBvaW50UnVsZVNldFBsdWdpbih0aGlzLmNvbmZpZywge1xuICAgICAgICAgICAgaHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXI6IGRlZmF1bHRTVFNIdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlcixcbiAgICAgICAgICAgIGlkZW50aXR5UHJvdmlkZXJDb25maWdQcm92aWRlcjogYXN5bmMgKGNvbmZpZykgPT4gbmV3IERlZmF1bHRJZGVudGl0eVByb3ZpZGVyQ29uZmlnKHtcbiAgICAgICAgICAgICAgICBcImF3cy5hdXRoI3NpZ3Y0XCI6IGNvbmZpZy5jcmVkZW50aWFscyxcbiAgICAgICAgICAgICAgICBcImF3cy5hdXRoI3NpZ3Y0YVwiOiBjb25maWcuY3JlZGVudGlhbHMsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgfSkpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoZ2V0SHR0cFNpZ25pbmdQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICB9XG4gICAgZGVzdHJveSgpIHtcbiAgICAgICAgc3VwZXIuZGVzdHJveSgpO1xuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBnZXRFbmRwb2ludFBsdWdpbiB9IGZyb20gXCJAc21pdGh5L21pZGRsZXdhcmUtZW5kcG9pbnRcIjtcbmltcG9ydCB7IENvbW1hbmQgYXMgJENvbW1hbmQgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyBjb21tb25QYXJhbXMgfSBmcm9tIFwiLi4vZW5kcG9pbnQvRW5kcG9pbnRQYXJhbWV0ZXJzXCI7XG5pbXBvcnQgeyBBc3N1bWVSb2xlJCB9IGZyb20gXCIuLi9zY2hlbWFzL3NjaGVtYXNfMFwiO1xuZXhwb3J0IHsgJENvbW1hbmQgfTtcbmV4cG9ydCBjbGFzcyBBc3N1bWVSb2xlQ29tbWFuZCBleHRlbmRzICRDb21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NTZWN1cml0eVRva2VuU2VydmljZVYyMDExMDYxNVwiLCBcIkFzc3VtZVJvbGVcIiwge30pXG4gICAgLm4oXCJTVFNDbGllbnRcIiwgXCJBc3N1bWVSb2xlQ29tbWFuZFwiKVxuICAgIC5zYyhBc3N1bWVSb2xlJClcbiAgICAuYnVpbGQoKSB7XG59XG4iLCAiaW1wb3J0IHsgZ2V0RW5kcG9pbnRQbHVnaW4gfSBmcm9tIFwiQHNtaXRoeS9taWRkbGV3YXJlLWVuZHBvaW50XCI7XG5pbXBvcnQgeyBDb21tYW5kIGFzICRDb21tYW5kIH0gZnJvbSBcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgY29tbW9uUGFyYW1zIH0gZnJvbSBcIi4uL2VuZHBvaW50L0VuZHBvaW50UGFyYW1ldGVyc1wiO1xuaW1wb3J0IHsgQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eSQgfSBmcm9tIFwiLi4vc2NoZW1hcy9zY2hlbWFzXzBcIjtcbmV4cG9ydCB7ICRDb21tYW5kIH07XG5leHBvcnQgY2xhc3MgQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eUNvbW1hbmQgZXh0ZW5kcyAkQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW2dldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTU2VjdXJpdHlUb2tlblNlcnZpY2VWMjAxMTA2MTVcIiwgXCJBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5XCIsIHt9KVxuICAgIC5uKFwiU1RTQ2xpZW50XCIsIFwiQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eUNvbW1hbmRcIilcbiAgICAuc2MoQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eSQpXG4gICAgLmJ1aWxkKCkge1xufVxuIiwgImltcG9ydCB7IGNyZWF0ZUFnZ3JlZ2F0ZWRDbGllbnQgfSBmcm9tIFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyBBc3N1bWVSb2xlQ29tbWFuZCwgfSBmcm9tIFwiLi9jb21tYW5kcy9Bc3N1bWVSb2xlQ29tbWFuZFwiO1xuaW1wb3J0IHsgQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eUNvbW1hbmQsIH0gZnJvbSBcIi4vY29tbWFuZHMvQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eUNvbW1hbmRcIjtcbmltcG9ydCB7IFNUU0NsaWVudCB9IGZyb20gXCIuL1NUU0NsaWVudFwiO1xuY29uc3QgY29tbWFuZHMgPSB7XG4gICAgQXNzdW1lUm9sZUNvbW1hbmQsXG4gICAgQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eUNvbW1hbmQsXG59O1xuZXhwb3J0IGNsYXNzIFNUUyBleHRlbmRzIFNUU0NsaWVudCB7XG59XG5jcmVhdGVBZ2dyZWdhdGVkQ2xpZW50KGNvbW1hbmRzLCBTVFMpO1xuIiwgImV4cG9ydCAqIGZyb20gXCIuL0Fzc3VtZVJvbGVDb21tYW5kXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9Bc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5Q29tbWFuZFwiO1xuIiwgImV4cG9ydCB7fTtcbiIsICJpbXBvcnQgeyBzZXRDcmVkZW50aWFsRmVhdHVyZSB9IGZyb20gXCJAYXdzLXNkay9jb3JlL2NsaWVudFwiO1xuaW1wb3J0IHsgc3RzUmVnaW9uRGVmYXVsdFJlc29sdmVyIH0gZnJvbSBcIkBhd3Mtc2RrL3JlZ2lvbi1jb25maWctcmVzb2x2ZXJcIjtcbmltcG9ydCB7IEFzc3VtZVJvbGVDb21tYW5kIH0gZnJvbSBcIi4vY29tbWFuZHMvQXNzdW1lUm9sZUNvbW1hbmRcIjtcbmltcG9ydCB7IEFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlDb21tYW5kIH0gZnJvbSBcIi4vY29tbWFuZHMvQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eUNvbW1hbmRcIjtcbmNvbnN0IGdldEFjY291bnRJZEZyb21Bc3N1bWVkUm9sZVVzZXIgPSAoYXNzdW1lZFJvbGVVc2VyKSA9PiB7XG4gICAgaWYgKHR5cGVvZiBhc3N1bWVkUm9sZVVzZXI/LkFybiA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICBjb25zdCBhcm5Db21wb25lbnRzID0gYXNzdW1lZFJvbGVVc2VyLkFybi5zcGxpdChcIjpcIik7XG4gICAgICAgIGlmIChhcm5Db21wb25lbnRzLmxlbmd0aCA+IDQgJiYgYXJuQ29tcG9uZW50c1s0XSAhPT0gXCJcIikge1xuICAgICAgICAgICAgcmV0dXJuIGFybkNvbXBvbmVudHNbNF07XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbn07XG5jb25zdCByZXNvbHZlUmVnaW9uID0gYXN5bmMgKF9yZWdpb24sIF9wYXJlbnRSZWdpb24sIGNyZWRlbnRpYWxQcm92aWRlckxvZ2dlciwgbG9hZGVyQ29uZmlnID0ge30pID0+IHtcbiAgICBjb25zdCByZWdpb24gPSB0eXBlb2YgX3JlZ2lvbiA9PT0gXCJmdW5jdGlvblwiID8gYXdhaXQgX3JlZ2lvbigpIDogX3JlZ2lvbjtcbiAgICBjb25zdCBwYXJlbnRSZWdpb24gPSB0eXBlb2YgX3BhcmVudFJlZ2lvbiA9PT0gXCJmdW5jdGlvblwiID8gYXdhaXQgX3BhcmVudFJlZ2lvbigpIDogX3BhcmVudFJlZ2lvbjtcbiAgICBsZXQgc3RzRGVmYXVsdFJlZ2lvbiA9IFwiXCI7XG4gICAgY29uc3QgcmVzb2x2ZWRSZWdpb24gPSByZWdpb24gPz8gcGFyZW50UmVnaW9uID8/IChzdHNEZWZhdWx0UmVnaW9uID0gYXdhaXQgc3RzUmVnaW9uRGVmYXVsdFJlc29sdmVyKGxvYWRlckNvbmZpZykoKSk7XG4gICAgY3JlZGVudGlhbFByb3ZpZGVyTG9nZ2VyPy5kZWJ1Zz8uKFwiQGF3cy1zZGsvY2xpZW50LXN0czo6cmVzb2x2ZVJlZ2lvblwiLCBcImFjY2VwdGluZyBmaXJzdCBvZjpcIiwgYCR7cmVnaW9ufSAoY3JlZGVudGlhbCBwcm92aWRlciBjbGllbnRDb25maWcpYCwgYCR7cGFyZW50UmVnaW9ufSAoY29udGV4dHVhbCBjbGllbnQpYCwgYCR7c3RzRGVmYXVsdFJlZ2lvbn0gKFNUUyBkZWZhdWx0OiBBV1NfUkVHSU9OLCBwcm9maWxlIHJlZ2lvbiwgb3IgdXMtZWFzdC0xKWApO1xuICAgIHJldHVybiByZXNvbHZlZFJlZ2lvbjtcbn07XG5leHBvcnQgY29uc3QgZ2V0RGVmYXVsdFJvbGVBc3N1bWVyID0gKHN0c09wdGlvbnMsIFNUU0NsaWVudCkgPT4ge1xuICAgIGxldCBzdHNDbGllbnQ7XG4gICAgbGV0IGNsb3N1cmVTb3VyY2VDcmVkcztcbiAgICByZXR1cm4gYXN5bmMgKHNvdXJjZUNyZWRzLCBwYXJhbXMpID0+IHtcbiAgICAgICAgY2xvc3VyZVNvdXJjZUNyZWRzID0gc291cmNlQ3JlZHM7XG4gICAgICAgIGlmICghc3RzQ2xpZW50KSB7XG4gICAgICAgICAgICBjb25zdCB7IGxvZ2dlciA9IHN0c09wdGlvbnM/LnBhcmVudENsaWVudENvbmZpZz8ubG9nZ2VyLCBwcm9maWxlID0gc3RzT3B0aW9ucz8ucGFyZW50Q2xpZW50Q29uZmlnPy5wcm9maWxlLCByZWdpb24sIHJlcXVlc3RIYW5kbGVyID0gc3RzT3B0aW9ucz8ucGFyZW50Q2xpZW50Q29uZmlnPy5yZXF1ZXN0SGFuZGxlciwgY3JlZGVudGlhbFByb3ZpZGVyTG9nZ2VyLCB1c2VyQWdlbnRBcHBJZCA9IHN0c09wdGlvbnM/LnBhcmVudENsaWVudENvbmZpZz8udXNlckFnZW50QXBwSWQsIH0gPSBzdHNPcHRpb25zO1xuICAgICAgICAgICAgY29uc3QgcmVzb2x2ZWRSZWdpb24gPSBhd2FpdCByZXNvbHZlUmVnaW9uKHJlZ2lvbiwgc3RzT3B0aW9ucz8ucGFyZW50Q2xpZW50Q29uZmlnPy5yZWdpb24sIGNyZWRlbnRpYWxQcm92aWRlckxvZ2dlciwge1xuICAgICAgICAgICAgICAgIGxvZ2dlcixcbiAgICAgICAgICAgICAgICBwcm9maWxlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCBpc0NvbXBhdGlibGVSZXF1ZXN0SGFuZGxlciA9ICFpc0gyKHJlcXVlc3RIYW5kbGVyKTtcbiAgICAgICAgICAgIHN0c0NsaWVudCA9IG5ldyBTVFNDbGllbnQoe1xuICAgICAgICAgICAgICAgIC4uLnN0c09wdGlvbnMsXG4gICAgICAgICAgICAgICAgdXNlckFnZW50QXBwSWQsXG4gICAgICAgICAgICAgICAgcHJvZmlsZSxcbiAgICAgICAgICAgICAgICBjcmVkZW50aWFsRGVmYXVsdFByb3ZpZGVyOiAoKSA9PiBhc3luYyAoKSA9PiBjbG9zdXJlU291cmNlQ3JlZHMsXG4gICAgICAgICAgICAgICAgcmVnaW9uOiByZXNvbHZlZFJlZ2lvbixcbiAgICAgICAgICAgICAgICByZXF1ZXN0SGFuZGxlcjogaXNDb21wYXRpYmxlUmVxdWVzdEhhbmRsZXIgPyByZXF1ZXN0SGFuZGxlciA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBsb2dnZXI6IGxvZ2dlcixcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHsgQ3JlZGVudGlhbHMsIEFzc3VtZWRSb2xlVXNlciB9ID0gYXdhaXQgc3RzQ2xpZW50LnNlbmQobmV3IEFzc3VtZVJvbGVDb21tYW5kKHBhcmFtcykpO1xuICAgICAgICBpZiAoIUNyZWRlbnRpYWxzIHx8ICFDcmVkZW50aWFscy5BY2Nlc3NLZXlJZCB8fCAhQ3JlZGVudGlhbHMuU2VjcmV0QWNjZXNzS2V5KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgcmVzcG9uc2UgZnJvbSBTVFMuYXNzdW1lUm9sZSBjYWxsIHdpdGggcm9sZSAke3BhcmFtcy5Sb2xlQXJufWApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGFjY291bnRJZCA9IGdldEFjY291bnRJZEZyb21Bc3N1bWVkUm9sZVVzZXIoQXNzdW1lZFJvbGVVc2VyKTtcbiAgICAgICAgY29uc3QgY3JlZGVudGlhbHMgPSB7XG4gICAgICAgICAgICBhY2Nlc3NLZXlJZDogQ3JlZGVudGlhbHMuQWNjZXNzS2V5SWQsXG4gICAgICAgICAgICBzZWNyZXRBY2Nlc3NLZXk6IENyZWRlbnRpYWxzLlNlY3JldEFjY2Vzc0tleSxcbiAgICAgICAgICAgIHNlc3Npb25Ub2tlbjogQ3JlZGVudGlhbHMuU2Vzc2lvblRva2VuLFxuICAgICAgICAgICAgZXhwaXJhdGlvbjogQ3JlZGVudGlhbHMuRXhwaXJhdGlvbixcbiAgICAgICAgICAgIC4uLihDcmVkZW50aWFscy5DcmVkZW50aWFsU2NvcGUgJiYgeyBjcmVkZW50aWFsU2NvcGU6IENyZWRlbnRpYWxzLkNyZWRlbnRpYWxTY29wZSB9KSxcbiAgICAgICAgICAgIC4uLihhY2NvdW50SWQgJiYgeyBhY2NvdW50SWQgfSksXG4gICAgICAgIH07XG4gICAgICAgIHNldENyZWRlbnRpYWxGZWF0dXJlKGNyZWRlbnRpYWxzLCBcIkNSRURFTlRJQUxTX1NUU19BU1NVTUVfUk9MRVwiLCBcImlcIik7XG4gICAgICAgIHJldHVybiBjcmVkZW50aWFscztcbiAgICB9O1xufTtcbmV4cG9ydCBjb25zdCBnZXREZWZhdWx0Um9sZUFzc3VtZXJXaXRoV2ViSWRlbnRpdHkgPSAoc3RzT3B0aW9ucywgU1RTQ2xpZW50KSA9PiB7XG4gICAgbGV0IHN0c0NsaWVudDtcbiAgICByZXR1cm4gYXN5bmMgKHBhcmFtcykgPT4ge1xuICAgICAgICBpZiAoIXN0c0NsaWVudCkge1xuICAgICAgICAgICAgY29uc3QgeyBsb2dnZXIgPSBzdHNPcHRpb25zPy5wYXJlbnRDbGllbnRDb25maWc/LmxvZ2dlciwgcHJvZmlsZSA9IHN0c09wdGlvbnM/LnBhcmVudENsaWVudENvbmZpZz8ucHJvZmlsZSwgcmVnaW9uLCByZXF1ZXN0SGFuZGxlciA9IHN0c09wdGlvbnM/LnBhcmVudENsaWVudENvbmZpZz8ucmVxdWVzdEhhbmRsZXIsIGNyZWRlbnRpYWxQcm92aWRlckxvZ2dlciwgdXNlckFnZW50QXBwSWQgPSBzdHNPcHRpb25zPy5wYXJlbnRDbGllbnRDb25maWc/LnVzZXJBZ2VudEFwcElkLCB9ID0gc3RzT3B0aW9ucztcbiAgICAgICAgICAgIGNvbnN0IHJlc29sdmVkUmVnaW9uID0gYXdhaXQgcmVzb2x2ZVJlZ2lvbihyZWdpb24sIHN0c09wdGlvbnM/LnBhcmVudENsaWVudENvbmZpZz8ucmVnaW9uLCBjcmVkZW50aWFsUHJvdmlkZXJMb2dnZXIsIHtcbiAgICAgICAgICAgICAgICBsb2dnZXIsXG4gICAgICAgICAgICAgICAgcHJvZmlsZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29uc3QgaXNDb21wYXRpYmxlUmVxdWVzdEhhbmRsZXIgPSAhaXNIMihyZXF1ZXN0SGFuZGxlcik7XG4gICAgICAgICAgICBzdHNDbGllbnQgPSBuZXcgU1RTQ2xpZW50KHtcbiAgICAgICAgICAgICAgICAuLi5zdHNPcHRpb25zLFxuICAgICAgICAgICAgICAgIHVzZXJBZ2VudEFwcElkLFxuICAgICAgICAgICAgICAgIHByb2ZpbGUsXG4gICAgICAgICAgICAgICAgcmVnaW9uOiByZXNvbHZlZFJlZ2lvbixcbiAgICAgICAgICAgICAgICByZXF1ZXN0SGFuZGxlcjogaXNDb21wYXRpYmxlUmVxdWVzdEhhbmRsZXIgPyByZXF1ZXN0SGFuZGxlciA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBsb2dnZXI6IGxvZ2dlcixcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHsgQ3JlZGVudGlhbHMsIEFzc3VtZWRSb2xlVXNlciB9ID0gYXdhaXQgc3RzQ2xpZW50LnNlbmQobmV3IEFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlDb21tYW5kKHBhcmFtcykpO1xuICAgICAgICBpZiAoIUNyZWRlbnRpYWxzIHx8ICFDcmVkZW50aWFscy5BY2Nlc3NLZXlJZCB8fCAhQ3JlZGVudGlhbHMuU2VjcmV0QWNjZXNzS2V5KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgcmVzcG9uc2UgZnJvbSBTVFMuYXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eSBjYWxsIHdpdGggcm9sZSAke3BhcmFtcy5Sb2xlQXJufWApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGFjY291bnRJZCA9IGdldEFjY291bnRJZEZyb21Bc3N1bWVkUm9sZVVzZXIoQXNzdW1lZFJvbGVVc2VyKTtcbiAgICAgICAgY29uc3QgY3JlZGVudGlhbHMgPSB7XG4gICAgICAgICAgICBhY2Nlc3NLZXlJZDogQ3JlZGVudGlhbHMuQWNjZXNzS2V5SWQsXG4gICAgICAgICAgICBzZWNyZXRBY2Nlc3NLZXk6IENyZWRlbnRpYWxzLlNlY3JldEFjY2Vzc0tleSxcbiAgICAgICAgICAgIHNlc3Npb25Ub2tlbjogQ3JlZGVudGlhbHMuU2Vzc2lvblRva2VuLFxuICAgICAgICAgICAgZXhwaXJhdGlvbjogQ3JlZGVudGlhbHMuRXhwaXJhdGlvbixcbiAgICAgICAgICAgIC4uLihDcmVkZW50aWFscy5DcmVkZW50aWFsU2NvcGUgJiYgeyBjcmVkZW50aWFsU2NvcGU6IENyZWRlbnRpYWxzLkNyZWRlbnRpYWxTY29wZSB9KSxcbiAgICAgICAgICAgIC4uLihhY2NvdW50SWQgJiYgeyBhY2NvdW50SWQgfSksXG4gICAgICAgIH07XG4gICAgICAgIGlmIChhY2NvdW50SWQpIHtcbiAgICAgICAgICAgIHNldENyZWRlbnRpYWxGZWF0dXJlKGNyZWRlbnRpYWxzLCBcIlJFU09MVkVEX0FDQ09VTlRfSURcIiwgXCJUXCIpO1xuICAgICAgICB9XG4gICAgICAgIHNldENyZWRlbnRpYWxGZWF0dXJlKGNyZWRlbnRpYWxzLCBcIkNSRURFTlRJQUxTX1NUU19BU1NVTUVfUk9MRV9XRUJfSURcIiwgXCJrXCIpO1xuICAgICAgICByZXR1cm4gY3JlZGVudGlhbHM7XG4gICAgfTtcbn07XG5leHBvcnQgY29uc3QgZGVjb3JhdGVEZWZhdWx0Q3JlZGVudGlhbFByb3ZpZGVyID0gKHByb3ZpZGVyKSA9PiAoaW5wdXQpID0+IHByb3ZpZGVyKHtcbiAgICByb2xlQXNzdW1lcjogZ2V0RGVmYXVsdFJvbGVBc3N1bWVyKGlucHV0LCBpbnB1dC5zdHNDbGllbnRDdG9yKSxcbiAgICByb2xlQXNzdW1lcldpdGhXZWJJZGVudGl0eTogZ2V0RGVmYXVsdFJvbGVBc3N1bWVyV2l0aFdlYklkZW50aXR5KGlucHV0LCBpbnB1dC5zdHNDbGllbnRDdG9yKSxcbiAgICAuLi5pbnB1dCxcbn0pO1xuY29uc3QgaXNIMiA9IChyZXF1ZXN0SGFuZGxlcikgPT4ge1xuICAgIHJldHVybiByZXF1ZXN0SGFuZGxlcj8ubWV0YWRhdGE/LmhhbmRsZXJQcm90b2NvbCA9PT0gXCJoMlwiO1xufTtcbiIsICJpbXBvcnQgeyBnZXREZWZhdWx0Um9sZUFzc3VtZXIgYXMgU3RzR2V0RGVmYXVsdFJvbGVBc3N1bWVyLCBnZXREZWZhdWx0Um9sZUFzc3VtZXJXaXRoV2ViSWRlbnRpdHkgYXMgU3RzR2V0RGVmYXVsdFJvbGVBc3N1bWVyV2l0aFdlYklkZW50aXR5LCB9IGZyb20gXCIuL2RlZmF1bHRTdHNSb2xlQXNzdW1lcnNcIjtcbmltcG9ydCB7IFNUU0NsaWVudCB9IGZyb20gXCIuL1NUU0NsaWVudFwiO1xuY29uc3QgZ2V0Q3VzdG9taXphYmxlU3RzQ2xpZW50Q3RvciA9IChiYXNlQ3RvciwgY3VzdG9taXphdGlvbnMpID0+IHtcbiAgICBpZiAoIWN1c3RvbWl6YXRpb25zKVxuICAgICAgICByZXR1cm4gYmFzZUN0b3I7XG4gICAgZWxzZVxuICAgICAgICByZXR1cm4gY2xhc3MgQ3VzdG9taXphYmxlU1RTQ2xpZW50IGV4dGVuZHMgYmFzZUN0b3Ige1xuICAgICAgICAgICAgY29uc3RydWN0b3IoY29uZmlnKSB7XG4gICAgICAgICAgICAgICAgc3VwZXIoY29uZmlnKTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGN1c3RvbWl6YXRpb24gb2YgY3VzdG9taXphdGlvbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGN1c3RvbWl6YXRpb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbn07XG5leHBvcnQgY29uc3QgZ2V0RGVmYXVsdFJvbGVBc3N1bWVyID0gKHN0c09wdGlvbnMgPSB7fSwgc3RzUGx1Z2lucykgPT4gU3RzR2V0RGVmYXVsdFJvbGVBc3N1bWVyKHN0c09wdGlvbnMsIGdldEN1c3RvbWl6YWJsZVN0c0NsaWVudEN0b3IoU1RTQ2xpZW50LCBzdHNQbHVnaW5zKSk7XG5leHBvcnQgY29uc3QgZ2V0RGVmYXVsdFJvbGVBc3N1bWVyV2l0aFdlYklkZW50aXR5ID0gKHN0c09wdGlvbnMgPSB7fSwgc3RzUGx1Z2lucykgPT4gU3RzR2V0RGVmYXVsdFJvbGVBc3N1bWVyV2l0aFdlYklkZW50aXR5KHN0c09wdGlvbnMsIGdldEN1c3RvbWl6YWJsZVN0c0NsaWVudEN0b3IoU1RTQ2xpZW50LCBzdHNQbHVnaW5zKSk7XG5leHBvcnQgY29uc3QgZGVjb3JhdGVEZWZhdWx0Q3JlZGVudGlhbFByb3ZpZGVyID0gKHByb3ZpZGVyKSA9PiAoaW5wdXQpID0+IHByb3ZpZGVyKHtcbiAgICByb2xlQXNzdW1lcjogZ2V0RGVmYXVsdFJvbGVBc3N1bWVyKGlucHV0KSxcbiAgICByb2xlQXNzdW1lcldpdGhXZWJJZGVudGl0eTogZ2V0RGVmYXVsdFJvbGVBc3N1bWVyV2l0aFdlYklkZW50aXR5KGlucHV0KSxcbiAgICAuLi5pbnB1dCxcbn0pO1xuIiwgImV4cG9ydCAqIGZyb20gXCIuL1NUU0NsaWVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vU1RTXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21tYW5kc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vc2NoZW1hcy9zY2hlbWFzXzBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21vZGVscy9lcnJvcnNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21vZGVscy9tb2RlbHNfMFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZGVmYXVsdFJvbGVBc3N1bWVyc1wiO1xuZXhwb3J0IHsgU1RTU2VydmljZUV4Y2VwdGlvbiB9IGZyb20gXCIuL21vZGVscy9TVFNTZXJ2aWNlRXhjZXB0aW9uXCI7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgc2hhcmVkSW5pRmlsZUxvYWRlciA9IHJlcXVpcmUoJ0BzbWl0aHkvc2hhcmVkLWluaS1maWxlLWxvYWRlcicpO1xudmFyIHByb3BlcnR5UHJvdmlkZXIgPSByZXF1aXJlKCdAc21pdGh5L3Byb3BlcnR5LXByb3ZpZGVyJyk7XG52YXIgbm9kZV9jaGlsZF9wcm9jZXNzID0gcmVxdWlyZSgnbm9kZTpjaGlsZF9wcm9jZXNzJyk7XG52YXIgbm9kZV91dGlsID0gcmVxdWlyZSgnbm9kZTp1dGlsJyk7XG52YXIgY2xpZW50ID0gcmVxdWlyZSgnQGF3cy1zZGsvY29yZS9jbGllbnQnKTtcblxuY29uc3QgZ2V0VmFsaWRhdGVkUHJvY2Vzc0NyZWRlbnRpYWxzID0gKHByb2ZpbGVOYW1lLCBkYXRhLCBwcm9maWxlcykgPT4ge1xuICAgIGlmIChkYXRhLlZlcnNpb24gIT09IDEpIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoYFByb2ZpbGUgJHtwcm9maWxlTmFtZX0gY3JlZGVudGlhbF9wcm9jZXNzIGRpZCBub3QgcmV0dXJuIFZlcnNpb24gMS5gKTtcbiAgICB9XG4gICAgaWYgKGRhdGEuQWNjZXNzS2V5SWQgPT09IHVuZGVmaW5lZCB8fCBkYXRhLlNlY3JldEFjY2Vzc0tleSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IEVycm9yKGBQcm9maWxlICR7cHJvZmlsZU5hbWV9IGNyZWRlbnRpYWxfcHJvY2VzcyByZXR1cm5lZCBpbnZhbGlkIGNyZWRlbnRpYWxzLmApO1xuICAgIH1cbiAgICBpZiAoZGF0YS5FeHBpcmF0aW9uKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRUaW1lID0gbmV3IERhdGUoKTtcbiAgICAgICAgY29uc3QgZXhwaXJlVGltZSA9IG5ldyBEYXRlKGRhdGEuRXhwaXJhdGlvbik7XG4gICAgICAgIGlmIChleHBpcmVUaW1lIDwgY3VycmVudFRpbWUpIHtcbiAgICAgICAgICAgIHRocm93IEVycm9yKGBQcm9maWxlICR7cHJvZmlsZU5hbWV9IGNyZWRlbnRpYWxfcHJvY2VzcyByZXR1cm5lZCBleHBpcmVkIGNyZWRlbnRpYWxzLmApO1xuICAgICAgICB9XG4gICAgfVxuICAgIGxldCBhY2NvdW50SWQgPSBkYXRhLkFjY291bnRJZDtcbiAgICBpZiAoIWFjY291bnRJZCAmJiBwcm9maWxlcz8uW3Byb2ZpbGVOYW1lXT8uYXdzX2FjY291bnRfaWQpIHtcbiAgICAgICAgYWNjb3VudElkID0gcHJvZmlsZXNbcHJvZmlsZU5hbWVdLmF3c19hY2NvdW50X2lkO1xuICAgIH1cbiAgICBjb25zdCBjcmVkZW50aWFscyA9IHtcbiAgICAgICAgYWNjZXNzS2V5SWQ6IGRhdGEuQWNjZXNzS2V5SWQsXG4gICAgICAgIHNlY3JldEFjY2Vzc0tleTogZGF0YS5TZWNyZXRBY2Nlc3NLZXksXG4gICAgICAgIC4uLihkYXRhLlNlc3Npb25Ub2tlbiAmJiB7IHNlc3Npb25Ub2tlbjogZGF0YS5TZXNzaW9uVG9rZW4gfSksXG4gICAgICAgIC4uLihkYXRhLkV4cGlyYXRpb24gJiYgeyBleHBpcmF0aW9uOiBuZXcgRGF0ZShkYXRhLkV4cGlyYXRpb24pIH0pLFxuICAgICAgICAuLi4oZGF0YS5DcmVkZW50aWFsU2NvcGUgJiYgeyBjcmVkZW50aWFsU2NvcGU6IGRhdGEuQ3JlZGVudGlhbFNjb3BlIH0pLFxuICAgICAgICAuLi4oYWNjb3VudElkICYmIHsgYWNjb3VudElkIH0pLFxuICAgIH07XG4gICAgY2xpZW50LnNldENyZWRlbnRpYWxGZWF0dXJlKGNyZWRlbnRpYWxzLCBcIkNSRURFTlRJQUxTX1BST0NFU1NcIiwgXCJ3XCIpO1xuICAgIHJldHVybiBjcmVkZW50aWFscztcbn07XG5cbmNvbnN0IHJlc29sdmVQcm9jZXNzQ3JlZGVudGlhbHMgPSBhc3luYyAocHJvZmlsZU5hbWUsIHByb2ZpbGVzLCBsb2dnZXIpID0+IHtcbiAgICBjb25zdCBwcm9maWxlID0gcHJvZmlsZXNbcHJvZmlsZU5hbWVdO1xuICAgIGlmIChwcm9maWxlc1twcm9maWxlTmFtZV0pIHtcbiAgICAgICAgY29uc3QgY3JlZGVudGlhbFByb2Nlc3MgPSBwcm9maWxlW1wiY3JlZGVudGlhbF9wcm9jZXNzXCJdO1xuICAgICAgICBpZiAoY3JlZGVudGlhbFByb2Nlc3MgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgY29uc3QgZXhlY1Byb21pc2UgPSBub2RlX3V0aWwucHJvbWlzaWZ5KHNoYXJlZEluaUZpbGVMb2FkZXIuZXh0ZXJuYWxEYXRhSW50ZXJjZXB0b3I/LmdldFRva2VuUmVjb3JkPy4oKS5leGVjID8/IG5vZGVfY2hpbGRfcHJvY2Vzcy5leGVjKTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBzdGRvdXQgfSA9IGF3YWl0IGV4ZWNQcm9taXNlKGNyZWRlbnRpYWxQcm9jZXNzKTtcbiAgICAgICAgICAgICAgICBsZXQgZGF0YTtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBkYXRhID0gSlNPTi5wYXJzZShzdGRvdXQudHJpbSgpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2F0Y2gge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBFcnJvcihgUHJvZmlsZSAke3Byb2ZpbGVOYW1lfSBjcmVkZW50aWFsX3Byb2Nlc3MgcmV0dXJuZWQgaW52YWxpZCBKU09OLmApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gZ2V0VmFsaWRhdGVkUHJvY2Vzc0NyZWRlbnRpYWxzKHByb2ZpbGVOYW1lLCBkYXRhLCBwcm9maWxlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoZXJyb3IubWVzc2FnZSwgeyBsb2dnZXIgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoYFByb2ZpbGUgJHtwcm9maWxlTmFtZX0gZGlkIG5vdCBjb250YWluIGNyZWRlbnRpYWxfcHJvY2Vzcy5gLCB7IGxvZ2dlciB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKGBQcm9maWxlICR7cHJvZmlsZU5hbWV9IGNvdWxkIG5vdCBiZSBmb3VuZCBpbiBzaGFyZWQgY3JlZGVudGlhbHMgZmlsZS5gLCB7XG4gICAgICAgICAgICBsb2dnZXIsXG4gICAgICAgIH0pO1xuICAgIH1cbn07XG5cbmNvbnN0IGZyb21Qcm9jZXNzID0gKGluaXQgPSB7fSkgPT4gYXN5bmMgKHsgY2FsbGVyQ2xpZW50Q29uZmlnIH0gPSB7fSkgPT4ge1xuICAgIGluaXQubG9nZ2VyPy5kZWJ1ZyhcIkBhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItcHJvY2VzcyAtIGZyb21Qcm9jZXNzXCIpO1xuICAgIGNvbnN0IHByb2ZpbGVzID0gYXdhaXQgc2hhcmVkSW5pRmlsZUxvYWRlci5wYXJzZUtub3duRmlsZXMoaW5pdCk7XG4gICAgcmV0dXJuIHJlc29sdmVQcm9jZXNzQ3JlZGVudGlhbHMoc2hhcmVkSW5pRmlsZUxvYWRlci5nZXRQcm9maWxlTmFtZSh7XG4gICAgICAgIHByb2ZpbGU6IGluaXQucHJvZmlsZSA/PyBjYWxsZXJDbGllbnRDb25maWc/LnByb2ZpbGUsXG4gICAgfSksIHByb2ZpbGVzLCBpbml0LmxvZ2dlcik7XG59O1xuXG5leHBvcnRzLmZyb21Qcm9jZXNzID0gZnJvbVByb2Nlc3M7XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19jcmVhdGVCaW5kaW5nID0gKHRoaXMgJiYgdGhpcy5fX2NyZWF0ZUJpbmRpbmcpIHx8IChPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwgayk7XG4gICAgaWYgKCFkZXNjIHx8IChcImdldFwiIGluIGRlc2MgPyAhbS5fX2VzTW9kdWxlIDogZGVzYy53cml0YWJsZSB8fCBkZXNjLmNvbmZpZ3VyYWJsZSkpIHtcbiAgICAgIGRlc2MgPSB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiBtW2tdOyB9IH07XG4gICAgfVxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBrMiwgZGVzYyk7XG59KSA6IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgb1trMl0gPSBtW2tdO1xufSkpO1xudmFyIF9fc2V0TW9kdWxlRGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19zZXRNb2R1bGVEZWZhdWx0KSB8fCAoT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCB2KSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIFwiZGVmYXVsdFwiLCB7IGVudW1lcmFibGU6IHRydWUsIHZhbHVlOiB2IH0pO1xufSkgOiBmdW5jdGlvbihvLCB2KSB7XG4gICAgb1tcImRlZmF1bHRcIl0gPSB2O1xufSk7XG52YXIgX19pbXBvcnRTdGFyID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydFN0YXIpIHx8IChmdW5jdGlvbiAoKSB7XG4gICAgdmFyIG93bktleXMgPSBmdW5jdGlvbihvKSB7XG4gICAgICAgIG93bktleXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyB8fCBmdW5jdGlvbiAobykge1xuICAgICAgICAgICAgdmFyIGFyID0gW107XG4gICAgICAgICAgICBmb3IgKHZhciBrIGluIG8pIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobywgaykpIGFyW2FyLmxlbmd0aF0gPSBrO1xuICAgICAgICAgICAgcmV0dXJuIGFyO1xuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gb3duS2V5cyhvKTtcbiAgICB9O1xuICAgIHJldHVybiBmdW5jdGlvbiAobW9kKSB7XG4gICAgICAgIGlmIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpIHJldHVybiBtb2Q7XG4gICAgICAgIHZhciByZXN1bHQgPSB7fTtcbiAgICAgICAgaWYgKG1vZCAhPSBudWxsKSBmb3IgKHZhciBrID0gb3duS2V5cyhtb2QpLCBpID0gMDsgaSA8IGsubGVuZ3RoOyBpKyspIGlmIChrW2ldICE9PSBcImRlZmF1bHRcIikgX19jcmVhdGVCaW5kaW5nKHJlc3VsdCwgbW9kLCBrW2ldKTtcbiAgICAgICAgX19zZXRNb2R1bGVEZWZhdWx0KHJlc3VsdCwgbW9kKTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9O1xufSkoKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuZnJvbVdlYlRva2VuID0gdm9pZCAwO1xuY29uc3QgZnJvbVdlYlRva2VuID0gKGluaXQpID0+IGFzeW5jIChhd3NJZGVudGl0eVByb3BlcnRpZXMpID0+IHtcbiAgICBpbml0LmxvZ2dlcj8uZGVidWcoXCJAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLXdlYi1pZGVudGl0eSAtIGZyb21XZWJUb2tlblwiKTtcbiAgICBjb25zdCB7IHJvbGVBcm4sIHJvbGVTZXNzaW9uTmFtZSwgd2ViSWRlbnRpdHlUb2tlbiwgcHJvdmlkZXJJZCwgcG9saWN5QXJucywgcG9saWN5LCBkdXJhdGlvblNlY29uZHMgfSA9IGluaXQ7XG4gICAgbGV0IHsgcm9sZUFzc3VtZXJXaXRoV2ViSWRlbnRpdHkgfSA9IGluaXQ7XG4gICAgaWYgKCFyb2xlQXNzdW1lcldpdGhXZWJJZGVudGl0eSkge1xuICAgICAgICBjb25zdCB7IGdldERlZmF1bHRSb2xlQXNzdW1lcldpdGhXZWJJZGVudGl0eSB9ID0gYXdhaXQgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiBfX2ltcG9ydFN0YXIocmVxdWlyZShcIkBhd3Mtc2RrL25lc3RlZC1jbGllbnRzL3N0c1wiKSkpO1xuICAgICAgICByb2xlQXNzdW1lcldpdGhXZWJJZGVudGl0eSA9IGdldERlZmF1bHRSb2xlQXNzdW1lcldpdGhXZWJJZGVudGl0eSh7XG4gICAgICAgICAgICAuLi5pbml0LmNsaWVudENvbmZpZyxcbiAgICAgICAgICAgIGNyZWRlbnRpYWxQcm92aWRlckxvZ2dlcjogaW5pdC5sb2dnZXIsXG4gICAgICAgICAgICBwYXJlbnRDbGllbnRDb25maWc6IHtcbiAgICAgICAgICAgICAgICAuLi5hd3NJZGVudGl0eVByb3BlcnRpZXM/LmNhbGxlckNsaWVudENvbmZpZyxcbiAgICAgICAgICAgICAgICAuLi5pbml0LnBhcmVudENsaWVudENvbmZpZyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sIGluaXQuY2xpZW50UGx1Z2lucyk7XG4gICAgfVxuICAgIHJldHVybiByb2xlQXNzdW1lcldpdGhXZWJJZGVudGl0eSh7XG4gICAgICAgIFJvbGVBcm46IHJvbGVBcm4sXG4gICAgICAgIFJvbGVTZXNzaW9uTmFtZTogcm9sZVNlc3Npb25OYW1lID8/IGBhd3Mtc2RrLWpzLXNlc3Npb24tJHtEYXRlLm5vdygpfWAsXG4gICAgICAgIFdlYklkZW50aXR5VG9rZW46IHdlYklkZW50aXR5VG9rZW4sXG4gICAgICAgIFByb3ZpZGVySWQ6IHByb3ZpZGVySWQsXG4gICAgICAgIFBvbGljeUFybnM6IHBvbGljeUFybnMsXG4gICAgICAgIFBvbGljeTogcG9saWN5LFxuICAgICAgICBEdXJhdGlvblNlY29uZHM6IGR1cmF0aW9uU2Vjb25kcyxcbiAgICB9KTtcbn07XG5leHBvcnRzLmZyb21XZWJUb2tlbiA9IGZyb21XZWJUb2tlbjtcbiIsICJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuZnJvbVRva2VuRmlsZSA9IHZvaWQgMDtcbmNvbnN0IGNsaWVudF8xID0gcmVxdWlyZShcIkBhd3Mtc2RrL2NvcmUvY2xpZW50XCIpO1xuY29uc3QgcHJvcGVydHlfcHJvdmlkZXJfMSA9IHJlcXVpcmUoXCJAc21pdGh5L3Byb3BlcnR5LXByb3ZpZGVyXCIpO1xuY29uc3Qgc2hhcmVkX2luaV9maWxlX2xvYWRlcl8xID0gcmVxdWlyZShcIkBzbWl0aHkvc2hhcmVkLWluaS1maWxlLWxvYWRlclwiKTtcbmNvbnN0IG5vZGVfZnNfMSA9IHJlcXVpcmUoXCJub2RlOmZzXCIpO1xuY29uc3QgZnJvbVdlYlRva2VuXzEgPSByZXF1aXJlKFwiLi9mcm9tV2ViVG9rZW5cIik7XG5jb25zdCBFTlZfVE9LRU5fRklMRSA9IFwiQVdTX1dFQl9JREVOVElUWV9UT0tFTl9GSUxFXCI7XG5jb25zdCBFTlZfUk9MRV9BUk4gPSBcIkFXU19ST0xFX0FSTlwiO1xuY29uc3QgRU5WX1JPTEVfU0VTU0lPTl9OQU1FID0gXCJBV1NfUk9MRV9TRVNTSU9OX05BTUVcIjtcbmNvbnN0IGZyb21Ub2tlbkZpbGUgPSAoaW5pdCA9IHt9KSA9PiBhc3luYyAoYXdzSWRlbnRpdHlQcm9wZXJ0aWVzKSA9PiB7XG4gICAgaW5pdC5sb2dnZXI/LmRlYnVnKFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci13ZWItaWRlbnRpdHkgLSBmcm9tVG9rZW5GaWxlXCIpO1xuICAgIGNvbnN0IHdlYklkZW50aXR5VG9rZW5GaWxlID0gaW5pdD8ud2ViSWRlbnRpdHlUb2tlbkZpbGUgPz8gcHJvY2Vzcy5lbnZbRU5WX1RPS0VOX0ZJTEVdO1xuICAgIGNvbnN0IHJvbGVBcm4gPSBpbml0Py5yb2xlQXJuID8/IHByb2Nlc3MuZW52W0VOVl9ST0xFX0FSTl07XG4gICAgY29uc3Qgcm9sZVNlc3Npb25OYW1lID0gaW5pdD8ucm9sZVNlc3Npb25OYW1lID8/IHByb2Nlc3MuZW52W0VOVl9ST0xFX1NFU1NJT05fTkFNRV07XG4gICAgaWYgKCF3ZWJJZGVudGl0eVRva2VuRmlsZSB8fCAhcm9sZUFybikge1xuICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlfcHJvdmlkZXJfMS5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoXCJXZWIgaWRlbnRpdHkgY29uZmlndXJhdGlvbiBub3Qgc3BlY2lmaWVkXCIsIHtcbiAgICAgICAgICAgIGxvZ2dlcjogaW5pdC5sb2dnZXIsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCBjcmVkZW50aWFscyA9IGF3YWl0ICgwLCBmcm9tV2ViVG9rZW5fMS5mcm9tV2ViVG9rZW4pKHtcbiAgICAgICAgLi4uaW5pdCxcbiAgICAgICAgd2ViSWRlbnRpdHlUb2tlbjogc2hhcmVkX2luaV9maWxlX2xvYWRlcl8xLmV4dGVybmFsRGF0YUludGVyY2VwdG9yPy5nZXRUb2tlblJlY29yZD8uKClbd2ViSWRlbnRpdHlUb2tlbkZpbGVdID8/XG4gICAgICAgICAgICAoMCwgbm9kZV9mc18xLnJlYWRGaWxlU3luYykod2ViSWRlbnRpdHlUb2tlbkZpbGUsIHsgZW5jb2Rpbmc6IFwiYXNjaWlcIiB9KSxcbiAgICAgICAgcm9sZUFybixcbiAgICAgICAgcm9sZVNlc3Npb25OYW1lLFxuICAgIH0pKGF3c0lkZW50aXR5UHJvcGVydGllcyk7XG4gICAgaWYgKHdlYklkZW50aXR5VG9rZW5GaWxlID09PSBwcm9jZXNzLmVudltFTlZfVE9LRU5fRklMRV0pIHtcbiAgICAgICAgKDAsIGNsaWVudF8xLnNldENyZWRlbnRpYWxGZWF0dXJlKShjcmVkZW50aWFscywgXCJDUkVERU5USUFMU19FTlZfVkFSU19TVFNfV0VCX0lEX1RPS0VOXCIsIFwiaFwiKTtcbiAgICB9XG4gICAgcmV0dXJuIGNyZWRlbnRpYWxzO1xufTtcbmV4cG9ydHMuZnJvbVRva2VuRmlsZSA9IGZyb21Ub2tlbkZpbGU7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgZnJvbVRva2VuRmlsZSA9IHJlcXVpcmUoJy4vZnJvbVRva2VuRmlsZScpO1xudmFyIGZyb21XZWJUb2tlbiA9IHJlcXVpcmUoJy4vZnJvbVdlYlRva2VuJyk7XG5cblxuXG5PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZnJvbVRva2VuRmlsZSwgJ19fcHJvdG9fXycpICYmXG5cdCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXhwb3J0cywgJ19fcHJvdG9fXycpICYmXG5cdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19wcm90b19fJywge1xuXHRcdGVudW1lcmFibGU6IHRydWUsXG5cdFx0dmFsdWU6IGZyb21Ub2tlbkZpbGVbJ19fcHJvdG9fXyddXG5cdH0pO1xuXG5PYmplY3Qua2V5cyhmcm9tVG9rZW5GaWxlKS5mb3JFYWNoKGZ1bmN0aW9uIChrKSB7XG5cdGlmIChrICE9PSAnZGVmYXVsdCcgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChleHBvcnRzLCBrKSkgZXhwb3J0c1trXSA9IGZyb21Ub2tlbkZpbGVba107XG59KTtcbk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChmcm9tV2ViVG9rZW4sICdfX3Byb3RvX18nKSAmJlxuXHQhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGV4cG9ydHMsICdfX3Byb3RvX18nKSAmJlxuXHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fcHJvdG9fXycsIHtcblx0XHRlbnVtZXJhYmxlOiB0cnVlLFxuXHRcdHZhbHVlOiBmcm9tV2ViVG9rZW5bJ19fcHJvdG9fXyddXG5cdH0pO1xuXG5PYmplY3Qua2V5cyhmcm9tV2ViVG9rZW4pLmZvckVhY2goZnVuY3Rpb24gKGspIHtcblx0aWYgKGsgIT09ICdkZWZhdWx0JyAmJiAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGV4cG9ydHMsIGspKSBleHBvcnRzW2tdID0gZnJvbVdlYlRva2VuW2tdO1xufSk7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgc2hhcmVkSW5pRmlsZUxvYWRlciA9IHJlcXVpcmUoJ0BzbWl0aHkvc2hhcmVkLWluaS1maWxlLWxvYWRlcicpO1xudmFyIHByb3BlcnR5UHJvdmlkZXIgPSByZXF1aXJlKCdAc21pdGh5L3Byb3BlcnR5LXByb3ZpZGVyJyk7XG52YXIgY2xpZW50ID0gcmVxdWlyZSgnQGF3cy1zZGsvY29yZS9jbGllbnQnKTtcbnZhciBjcmVkZW50aWFsUHJvdmlkZXJMb2dpbiA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbG9naW4nKTtcblxuY29uc3QgcmVzb2x2ZUNyZWRlbnRpYWxTb3VyY2UgPSAoY3JlZGVudGlhbFNvdXJjZSwgcHJvZmlsZU5hbWUsIGxvZ2dlcikgPT4ge1xuICAgIGNvbnN0IHNvdXJjZVByb3ZpZGVyc01hcCA9IHtcbiAgICAgICAgRWNzQ29udGFpbmVyOiBhc3luYyAob3B0aW9ucykgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBmcm9tSHR0cCB9ID0gYXdhaXQgaW1wb3J0KCdAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLWh0dHAnKTtcbiAgICAgICAgICAgIGNvbnN0IHsgZnJvbUNvbnRhaW5lck1ldGFkYXRhIH0gPSBhd2FpdCBpbXBvcnQoJ0BzbWl0aHkvY3JlZGVudGlhbC1wcm92aWRlci1pbWRzJyk7XG4gICAgICAgICAgICBsb2dnZXI/LmRlYnVnKFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1pbmkgLSBjcmVkZW50aWFsX3NvdXJjZSBpcyBFY3NDb250YWluZXJcIik7XG4gICAgICAgICAgICByZXR1cm4gYXN5bmMgKCkgPT4gcHJvcGVydHlQcm92aWRlci5jaGFpbihmcm9tSHR0cChvcHRpb25zID8/IHt9KSwgZnJvbUNvbnRhaW5lck1ldGFkYXRhKG9wdGlvbnMpKSgpLnRoZW4oc2V0TmFtZWRQcm92aWRlcik7XG4gICAgICAgIH0sXG4gICAgICAgIEVjMkluc3RhbmNlTWV0YWRhdGE6IGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgICAgICAgICBsb2dnZXI/LmRlYnVnKFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1pbmkgLSBjcmVkZW50aWFsX3NvdXJjZSBpcyBFYzJJbnN0YW5jZU1ldGFkYXRhXCIpO1xuICAgICAgICAgICAgY29uc3QgeyBmcm9tSW5zdGFuY2VNZXRhZGF0YSB9ID0gYXdhaXQgaW1wb3J0KCdAc21pdGh5L2NyZWRlbnRpYWwtcHJvdmlkZXItaW1kcycpO1xuICAgICAgICAgICAgcmV0dXJuIGFzeW5jICgpID0+IGZyb21JbnN0YW5jZU1ldGFkYXRhKG9wdGlvbnMpKCkudGhlbihzZXROYW1lZFByb3ZpZGVyKTtcbiAgICAgICAgfSxcbiAgICAgICAgRW52aXJvbm1lbnQ6IGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgICAgICAgICBsb2dnZXI/LmRlYnVnKFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1pbmkgLSBjcmVkZW50aWFsX3NvdXJjZSBpcyBFbnZpcm9ubWVudFwiKTtcbiAgICAgICAgICAgIGNvbnN0IHsgZnJvbUVudiB9ID0gYXdhaXQgaW1wb3J0KCdAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLWVudicpO1xuICAgICAgICAgICAgcmV0dXJuIGFzeW5jICgpID0+IGZyb21FbnYob3B0aW9ucykoKS50aGVuKHNldE5hbWVkUHJvdmlkZXIpO1xuICAgICAgICB9LFxuICAgIH07XG4gICAgaWYgKGNyZWRlbnRpYWxTb3VyY2UgaW4gc291cmNlUHJvdmlkZXJzTWFwKSB7XG4gICAgICAgIHJldHVybiBzb3VyY2VQcm92aWRlcnNNYXBbY3JlZGVudGlhbFNvdXJjZV07XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoYFVuc3VwcG9ydGVkIGNyZWRlbnRpYWwgc291cmNlIGluIHByb2ZpbGUgJHtwcm9maWxlTmFtZX0uIEdvdCAke2NyZWRlbnRpYWxTb3VyY2V9LCBgICtcbiAgICAgICAgICAgIGBleHBlY3RlZCBFY3NDb250YWluZXIgb3IgRWMySW5zdGFuY2VNZXRhZGF0YSBvciBFbnZpcm9ubWVudC5gLCB7IGxvZ2dlciB9KTtcbiAgICB9XG59O1xuY29uc3Qgc2V0TmFtZWRQcm92aWRlciA9IChjcmVkcykgPT4gY2xpZW50LnNldENyZWRlbnRpYWxGZWF0dXJlKGNyZWRzLCBcIkNSRURFTlRJQUxTX1BST0ZJTEVfTkFNRURfUFJPVklERVJcIiwgXCJwXCIpO1xuXG5jb25zdCBpc0Fzc3VtZVJvbGVQcm9maWxlID0gKGFyZywgeyBwcm9maWxlID0gXCJkZWZhdWx0XCIsIGxvZ2dlciB9ID0ge30pID0+IHtcbiAgICByZXR1cm4gKEJvb2xlYW4oYXJnKSAmJlxuICAgICAgICB0eXBlb2YgYXJnID09PSBcIm9iamVjdFwiICYmXG4gICAgICAgIHR5cGVvZiBhcmcucm9sZV9hcm4gPT09IFwic3RyaW5nXCIgJiZcbiAgICAgICAgW1widW5kZWZpbmVkXCIsIFwic3RyaW5nXCJdLmluZGV4T2YodHlwZW9mIGFyZy5yb2xlX3Nlc3Npb25fbmFtZSkgPiAtMSAmJlxuICAgICAgICBbXCJ1bmRlZmluZWRcIiwgXCJzdHJpbmdcIl0uaW5kZXhPZih0eXBlb2YgYXJnLmV4dGVybmFsX2lkKSA+IC0xICYmXG4gICAgICAgIFtcInVuZGVmaW5lZFwiLCBcInN0cmluZ1wiXS5pbmRleE9mKHR5cGVvZiBhcmcubWZhX3NlcmlhbCkgPiAtMSAmJlxuICAgICAgICAoaXNBc3N1bWVSb2xlV2l0aFNvdXJjZVByb2ZpbGUoYXJnLCB7IHByb2ZpbGUsIGxvZ2dlciB9KSB8fCBpc0NyZWRlbnRpYWxTb3VyY2VQcm9maWxlKGFyZywgeyBwcm9maWxlLCBsb2dnZXIgfSkpKTtcbn07XG5jb25zdCBpc0Fzc3VtZVJvbGVXaXRoU291cmNlUHJvZmlsZSA9IChhcmcsIHsgcHJvZmlsZSwgbG9nZ2VyIH0pID0+IHtcbiAgICBjb25zdCB3aXRoU291cmNlUHJvZmlsZSA9IHR5cGVvZiBhcmcuc291cmNlX3Byb2ZpbGUgPT09IFwic3RyaW5nXCIgJiYgdHlwZW9mIGFyZy5jcmVkZW50aWFsX3NvdXJjZSA9PT0gXCJ1bmRlZmluZWRcIjtcbiAgICBpZiAod2l0aFNvdXJjZVByb2ZpbGUpIHtcbiAgICAgICAgbG9nZ2VyPy5kZWJ1Zz8uKGAgICAgJHtwcm9maWxlfSBpc0Fzc3VtZVJvbGVXaXRoU291cmNlUHJvZmlsZSBzb3VyY2VfcHJvZmlsZT0ke2FyZy5zb3VyY2VfcHJvZmlsZX1gKTtcbiAgICB9XG4gICAgcmV0dXJuIHdpdGhTb3VyY2VQcm9maWxlO1xufTtcbmNvbnN0IGlzQ3JlZGVudGlhbFNvdXJjZVByb2ZpbGUgPSAoYXJnLCB7IHByb2ZpbGUsIGxvZ2dlciB9KSA9PiB7XG4gICAgY29uc3Qgd2l0aFByb3ZpZGVyUHJvZmlsZSA9IHR5cGVvZiBhcmcuY3JlZGVudGlhbF9zb3VyY2UgPT09IFwic3RyaW5nXCIgJiYgdHlwZW9mIGFyZy5zb3VyY2VfcHJvZmlsZSA9PT0gXCJ1bmRlZmluZWRcIjtcbiAgICBpZiAod2l0aFByb3ZpZGVyUHJvZmlsZSkge1xuICAgICAgICBsb2dnZXI/LmRlYnVnPy4oYCAgICAke3Byb2ZpbGV9IGlzQ3JlZGVudGlhbFNvdXJjZVByb2ZpbGUgY3JlZGVudGlhbF9zb3VyY2U9JHthcmcuY3JlZGVudGlhbF9zb3VyY2V9YCk7XG4gICAgfVxuICAgIHJldHVybiB3aXRoUHJvdmlkZXJQcm9maWxlO1xufTtcbmNvbnN0IHJlc29sdmVBc3N1bWVSb2xlQ3JlZGVudGlhbHMgPSBhc3luYyAocHJvZmlsZU5hbWUsIHByb2ZpbGVzLCBvcHRpb25zLCBjYWxsZXJDbGllbnRDb25maWcsIHZpc2l0ZWRQcm9maWxlcyA9IHt9LCByZXNvbHZlUHJvZmlsZURhdGEpID0+IHtcbiAgICBvcHRpb25zLmxvZ2dlcj8uZGVidWcoXCJAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLWluaSAtIHJlc29sdmVBc3N1bWVSb2xlQ3JlZGVudGlhbHMgKFNUUylcIik7XG4gICAgY29uc3QgcHJvZmlsZURhdGEgPSBwcm9maWxlc1twcm9maWxlTmFtZV07XG4gICAgY29uc3QgeyBzb3VyY2VfcHJvZmlsZSwgcmVnaW9uIH0gPSBwcm9maWxlRGF0YTtcbiAgICBpZiAoIW9wdGlvbnMucm9sZUFzc3VtZXIpIHtcbiAgICAgICAgY29uc3QgeyBnZXREZWZhdWx0Um9sZUFzc3VtZXIgfSA9IGF3YWl0IGltcG9ydCgnQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvc3RzJyk7XG4gICAgICAgIG9wdGlvbnMucm9sZUFzc3VtZXIgPSBnZXREZWZhdWx0Um9sZUFzc3VtZXIoe1xuICAgICAgICAgICAgLi4ub3B0aW9ucy5jbGllbnRDb25maWcsXG4gICAgICAgICAgICBjcmVkZW50aWFsUHJvdmlkZXJMb2dnZXI6IG9wdGlvbnMubG9nZ2VyLFxuICAgICAgICAgICAgcGFyZW50Q2xpZW50Q29uZmlnOiB7XG4gICAgICAgICAgICAgICAgLi4uY2FsbGVyQ2xpZW50Q29uZmlnLFxuICAgICAgICAgICAgICAgIC4uLm9wdGlvbnM/LnBhcmVudENsaWVudENvbmZpZyxcbiAgICAgICAgICAgICAgICByZWdpb246IHJlZ2lvbiA/PyBvcHRpb25zPy5wYXJlbnRDbGllbnRDb25maWc/LnJlZ2lvbiA/PyBjYWxsZXJDbGllbnRDb25maWc/LnJlZ2lvbixcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sIG9wdGlvbnMuY2xpZW50UGx1Z2lucyk7XG4gICAgfVxuICAgIGlmIChzb3VyY2VfcHJvZmlsZSAmJiBzb3VyY2VfcHJvZmlsZSBpbiB2aXNpdGVkUHJvZmlsZXMpIHtcbiAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKGBEZXRlY3RlZCBhIGN5Y2xlIGF0dGVtcHRpbmcgdG8gcmVzb2x2ZSBjcmVkZW50aWFscyBmb3IgcHJvZmlsZWAgK1xuICAgICAgICAgICAgYCAke3NoYXJlZEluaUZpbGVMb2FkZXIuZ2V0UHJvZmlsZU5hbWUob3B0aW9ucyl9LiBQcm9maWxlcyB2aXNpdGVkOiBgICtcbiAgICAgICAgICAgIE9iamVjdC5rZXlzKHZpc2l0ZWRQcm9maWxlcykuam9pbihcIiwgXCIpLCB7IGxvZ2dlcjogb3B0aW9ucy5sb2dnZXIgfSk7XG4gICAgfVxuICAgIG9wdGlvbnMubG9nZ2VyPy5kZWJ1ZyhgQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1pbmkgLSBmaW5kaW5nIGNyZWRlbnRpYWwgcmVzb2x2ZXIgdXNpbmcgJHtzb3VyY2VfcHJvZmlsZSA/IGBzb3VyY2VfcHJvZmlsZT1bJHtzb3VyY2VfcHJvZmlsZX1dYCA6IGBwcm9maWxlPVske3Byb2ZpbGVOYW1lfV1gfWApO1xuICAgIGNvbnN0IHNvdXJjZUNyZWRzUHJvdmlkZXIgPSBzb3VyY2VfcHJvZmlsZVxuICAgICAgICA/IHJlc29sdmVQcm9maWxlRGF0YShzb3VyY2VfcHJvZmlsZSwgcHJvZmlsZXMsIG9wdGlvbnMsIGNhbGxlckNsaWVudENvbmZpZywge1xuICAgICAgICAgICAgLi4udmlzaXRlZFByb2ZpbGVzLFxuICAgICAgICAgICAgW3NvdXJjZV9wcm9maWxlXTogdHJ1ZSxcbiAgICAgICAgfSwgaXNDcmVkZW50aWFsU291cmNlV2l0aG91dFJvbGVBcm4ocHJvZmlsZXNbc291cmNlX3Byb2ZpbGVdID8/IHt9KSlcbiAgICAgICAgOiAoYXdhaXQgcmVzb2x2ZUNyZWRlbnRpYWxTb3VyY2UocHJvZmlsZURhdGEuY3JlZGVudGlhbF9zb3VyY2UsIHByb2ZpbGVOYW1lLCBvcHRpb25zLmxvZ2dlcikob3B0aW9ucykpKCk7XG4gICAgaWYgKGlzQ3JlZGVudGlhbFNvdXJjZVdpdGhvdXRSb2xlQXJuKHByb2ZpbGVEYXRhKSkge1xuICAgICAgICByZXR1cm4gc291cmNlQ3JlZHNQcm92aWRlci50aGVuKChjcmVkcykgPT4gY2xpZW50LnNldENyZWRlbnRpYWxGZWF0dXJlKGNyZWRzLCBcIkNSRURFTlRJQUxTX1BST0ZJTEVfU09VUkNFX1BST0ZJTEVcIiwgXCJvXCIpKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IHtcbiAgICAgICAgICAgIFJvbGVBcm46IHByb2ZpbGVEYXRhLnJvbGVfYXJuLFxuICAgICAgICAgICAgUm9sZVNlc3Npb25OYW1lOiBwcm9maWxlRGF0YS5yb2xlX3Nlc3Npb25fbmFtZSB8fCBgYXdzLXNkay1qcy0ke0RhdGUubm93KCl9YCxcbiAgICAgICAgICAgIEV4dGVybmFsSWQ6IHByb2ZpbGVEYXRhLmV4dGVybmFsX2lkLFxuICAgICAgICAgICAgRHVyYXRpb25TZWNvbmRzOiBwYXJzZUludChwcm9maWxlRGF0YS5kdXJhdGlvbl9zZWNvbmRzIHx8IFwiMzYwMFwiLCAxMCksXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHsgbWZhX3NlcmlhbCB9ID0gcHJvZmlsZURhdGE7XG4gICAgICAgIGlmIChtZmFfc2VyaWFsKSB7XG4gICAgICAgICAgICBpZiAoIW9wdGlvbnMubWZhQ29kZVByb3ZpZGVyKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKGBQcm9maWxlICR7cHJvZmlsZU5hbWV9IHJlcXVpcmVzIG11bHRpLWZhY3RvciBhdXRoZW50aWNhdGlvbiwgYnV0IG5vIE1GQSBjb2RlIGNhbGxiYWNrIHdhcyBwcm92aWRlZC5gLCB7IGxvZ2dlcjogb3B0aW9ucy5sb2dnZXIsIHRyeU5leHRMaW5rOiBmYWxzZSB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBhcmFtcy5TZXJpYWxOdW1iZXIgPSBtZmFfc2VyaWFsO1xuICAgICAgICAgICAgcGFyYW1zLlRva2VuQ29kZSA9IGF3YWl0IG9wdGlvbnMubWZhQ29kZVByb3ZpZGVyKG1mYV9zZXJpYWwpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNvdXJjZUNyZWRzID0gYXdhaXQgc291cmNlQ3JlZHNQcm92aWRlcjtcbiAgICAgICAgcmV0dXJuIG9wdGlvbnMucm9sZUFzc3VtZXIoc291cmNlQ3JlZHMsIHBhcmFtcykudGhlbigoY3JlZHMpID0+IGNsaWVudC5zZXRDcmVkZW50aWFsRmVhdHVyZShjcmVkcywgXCJDUkVERU5USUFMU19QUk9GSUxFX1NPVVJDRV9QUk9GSUxFXCIsIFwib1wiKSk7XG4gICAgfVxufTtcbmNvbnN0IGlzQ3JlZGVudGlhbFNvdXJjZVdpdGhvdXRSb2xlQXJuID0gKHNlY3Rpb24pID0+IHtcbiAgICByZXR1cm4gIXNlY3Rpb24ucm9sZV9hcm4gJiYgISFzZWN0aW9uLmNyZWRlbnRpYWxfc291cmNlO1xufTtcblxuY29uc3QgaXNMb2dpblByb2ZpbGUgPSAoZGF0YSkgPT4ge1xuICAgIHJldHVybiBCb29sZWFuKGRhdGEgJiYgZGF0YS5sb2dpbl9zZXNzaW9uKTtcbn07XG5jb25zdCByZXNvbHZlTG9naW5DcmVkZW50aWFscyA9IGFzeW5jIChwcm9maWxlTmFtZSwgb3B0aW9ucywgY2FsbGVyQ2xpZW50Q29uZmlnKSA9PiB7XG4gICAgY29uc3QgY3JlZGVudGlhbHMgPSBhd2FpdCBjcmVkZW50aWFsUHJvdmlkZXJMb2dpbi5mcm9tTG9naW5DcmVkZW50aWFscyh7XG4gICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgIHByb2ZpbGU6IHByb2ZpbGVOYW1lLFxuICAgIH0pKHsgY2FsbGVyQ2xpZW50Q29uZmlnIH0pO1xuICAgIHJldHVybiBjbGllbnQuc2V0Q3JlZGVudGlhbEZlYXR1cmUoY3JlZGVudGlhbHMsIFwiQ1JFREVOVElBTFNfUFJPRklMRV9MT0dJTlwiLCBcIkFDXCIpO1xufTtcblxuY29uc3QgaXNQcm9jZXNzUHJvZmlsZSA9IChhcmcpID0+IEJvb2xlYW4oYXJnKSAmJiB0eXBlb2YgYXJnID09PSBcIm9iamVjdFwiICYmIHR5cGVvZiBhcmcuY3JlZGVudGlhbF9wcm9jZXNzID09PSBcInN0cmluZ1wiO1xuY29uc3QgcmVzb2x2ZVByb2Nlc3NDcmVkZW50aWFscyA9IGFzeW5jIChvcHRpb25zLCBwcm9maWxlKSA9PiBpbXBvcnQoJ0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItcHJvY2VzcycpLnRoZW4oKHsgZnJvbVByb2Nlc3MgfSkgPT4gZnJvbVByb2Nlc3Moe1xuICAgIC4uLm9wdGlvbnMsXG4gICAgcHJvZmlsZSxcbn0pKCkudGhlbigoY3JlZHMpID0+IGNsaWVudC5zZXRDcmVkZW50aWFsRmVhdHVyZShjcmVkcywgXCJDUkVERU5USUFMU19QUk9GSUxFX1BST0NFU1NcIiwgXCJ2XCIpKSk7XG5cbmNvbnN0IHJlc29sdmVTc29DcmVkZW50aWFscyA9IGFzeW5jIChwcm9maWxlLCBwcm9maWxlRGF0YSwgb3B0aW9ucyA9IHt9LCBjYWxsZXJDbGllbnRDb25maWcpID0+IHtcbiAgICBjb25zdCB7IGZyb21TU08gfSA9IGF3YWl0IGltcG9ydCgnQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1zc28nKTtcbiAgICByZXR1cm4gZnJvbVNTTyh7XG4gICAgICAgIHByb2ZpbGUsXG4gICAgICAgIGxvZ2dlcjogb3B0aW9ucy5sb2dnZXIsXG4gICAgICAgIHBhcmVudENsaWVudENvbmZpZzogb3B0aW9ucy5wYXJlbnRDbGllbnRDb25maWcsXG4gICAgICAgIGNsaWVudENvbmZpZzogb3B0aW9ucy5jbGllbnRDb25maWcsXG4gICAgfSkoe1xuICAgICAgICBjYWxsZXJDbGllbnRDb25maWcsXG4gICAgfSkudGhlbigoY3JlZHMpID0+IHtcbiAgICAgICAgaWYgKHByb2ZpbGVEYXRhLnNzb19zZXNzaW9uKSB7XG4gICAgICAgICAgICByZXR1cm4gY2xpZW50LnNldENyZWRlbnRpYWxGZWF0dXJlKGNyZWRzLCBcIkNSRURFTlRJQUxTX1BST0ZJTEVfU1NPXCIsIFwiclwiKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBjbGllbnQuc2V0Q3JlZGVudGlhbEZlYXR1cmUoY3JlZHMsIFwiQ1JFREVOVElBTFNfUFJPRklMRV9TU09fTEVHQUNZXCIsIFwidFwiKTtcbiAgICAgICAgfVxuICAgIH0pO1xufTtcbmNvbnN0IGlzU3NvUHJvZmlsZSA9IChhcmcpID0+IGFyZyAmJlxuICAgICh0eXBlb2YgYXJnLnNzb19zdGFydF91cmwgPT09IFwic3RyaW5nXCIgfHxcbiAgICAgICAgdHlwZW9mIGFyZy5zc29fYWNjb3VudF9pZCA9PT0gXCJzdHJpbmdcIiB8fFxuICAgICAgICB0eXBlb2YgYXJnLnNzb19zZXNzaW9uID09PSBcInN0cmluZ1wiIHx8XG4gICAgICAgIHR5cGVvZiBhcmcuc3NvX3JlZ2lvbiA9PT0gXCJzdHJpbmdcIiB8fFxuICAgICAgICB0eXBlb2YgYXJnLnNzb19yb2xlX25hbWUgPT09IFwic3RyaW5nXCIpO1xuXG5jb25zdCBpc1N0YXRpY0NyZWRzUHJvZmlsZSA9IChhcmcpID0+IEJvb2xlYW4oYXJnKSAmJlxuICAgIHR5cGVvZiBhcmcgPT09IFwib2JqZWN0XCIgJiZcbiAgICB0eXBlb2YgYXJnLmF3c19hY2Nlc3Nfa2V5X2lkID09PSBcInN0cmluZ1wiICYmXG4gICAgdHlwZW9mIGFyZy5hd3Nfc2VjcmV0X2FjY2Vzc19rZXkgPT09IFwic3RyaW5nXCIgJiZcbiAgICBbXCJ1bmRlZmluZWRcIiwgXCJzdHJpbmdcIl0uaW5kZXhPZih0eXBlb2YgYXJnLmF3c19zZXNzaW9uX3Rva2VuKSA+IC0xICYmXG4gICAgW1widW5kZWZpbmVkXCIsIFwic3RyaW5nXCJdLmluZGV4T2YodHlwZW9mIGFyZy5hd3NfYWNjb3VudF9pZCkgPiAtMTtcbmNvbnN0IHJlc29sdmVTdGF0aWNDcmVkZW50aWFscyA9IGFzeW5jIChwcm9maWxlLCBvcHRpb25zKSA9PiB7XG4gICAgb3B0aW9ucz8ubG9nZ2VyPy5kZWJ1ZyhcIkBhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItaW5pIC0gcmVzb2x2ZVN0YXRpY0NyZWRlbnRpYWxzXCIpO1xuICAgIGNvbnN0IGNyZWRlbnRpYWxzID0ge1xuICAgICAgICBhY2Nlc3NLZXlJZDogcHJvZmlsZS5hd3NfYWNjZXNzX2tleV9pZCxcbiAgICAgICAgc2VjcmV0QWNjZXNzS2V5OiBwcm9maWxlLmF3c19zZWNyZXRfYWNjZXNzX2tleSxcbiAgICAgICAgc2Vzc2lvblRva2VuOiBwcm9maWxlLmF3c19zZXNzaW9uX3Rva2VuLFxuICAgICAgICAuLi4ocHJvZmlsZS5hd3NfY3JlZGVudGlhbF9zY29wZSAmJiB7IGNyZWRlbnRpYWxTY29wZTogcHJvZmlsZS5hd3NfY3JlZGVudGlhbF9zY29wZSB9KSxcbiAgICAgICAgLi4uKHByb2ZpbGUuYXdzX2FjY291bnRfaWQgJiYgeyBhY2NvdW50SWQ6IHByb2ZpbGUuYXdzX2FjY291bnRfaWQgfSksXG4gICAgfTtcbiAgICByZXR1cm4gY2xpZW50LnNldENyZWRlbnRpYWxGZWF0dXJlKGNyZWRlbnRpYWxzLCBcIkNSRURFTlRJQUxTX1BST0ZJTEVcIiwgXCJuXCIpO1xufTtcblxuY29uc3QgaXNXZWJJZGVudGl0eVByb2ZpbGUgPSAoYXJnKSA9PiBCb29sZWFuKGFyZykgJiZcbiAgICB0eXBlb2YgYXJnID09PSBcIm9iamVjdFwiICYmXG4gICAgdHlwZW9mIGFyZy53ZWJfaWRlbnRpdHlfdG9rZW5fZmlsZSA9PT0gXCJzdHJpbmdcIiAmJlxuICAgIHR5cGVvZiBhcmcucm9sZV9hcm4gPT09IFwic3RyaW5nXCIgJiZcbiAgICBbXCJ1bmRlZmluZWRcIiwgXCJzdHJpbmdcIl0uaW5kZXhPZih0eXBlb2YgYXJnLnJvbGVfc2Vzc2lvbl9uYW1lKSA+IC0xO1xuY29uc3QgcmVzb2x2ZVdlYklkZW50aXR5Q3JlZGVudGlhbHMgPSBhc3luYyAocHJvZmlsZSwgb3B0aW9ucywgY2FsbGVyQ2xpZW50Q29uZmlnKSA9PiBpbXBvcnQoJ0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItd2ViLWlkZW50aXR5JykudGhlbigoeyBmcm9tVG9rZW5GaWxlIH0pID0+IGZyb21Ub2tlbkZpbGUoe1xuICAgIHdlYklkZW50aXR5VG9rZW5GaWxlOiBwcm9maWxlLndlYl9pZGVudGl0eV90b2tlbl9maWxlLFxuICAgIHJvbGVBcm46IHByb2ZpbGUucm9sZV9hcm4sXG4gICAgcm9sZVNlc3Npb25OYW1lOiBwcm9maWxlLnJvbGVfc2Vzc2lvbl9uYW1lLFxuICAgIHJvbGVBc3N1bWVyV2l0aFdlYklkZW50aXR5OiBvcHRpb25zLnJvbGVBc3N1bWVyV2l0aFdlYklkZW50aXR5LFxuICAgIGxvZ2dlcjogb3B0aW9ucy5sb2dnZXIsXG4gICAgcGFyZW50Q2xpZW50Q29uZmlnOiBvcHRpb25zLnBhcmVudENsaWVudENvbmZpZyxcbn0pKHtcbiAgICBjYWxsZXJDbGllbnRDb25maWcsXG59KS50aGVuKChjcmVkcykgPT4gY2xpZW50LnNldENyZWRlbnRpYWxGZWF0dXJlKGNyZWRzLCBcIkNSRURFTlRJQUxTX1BST0ZJTEVfU1RTX1dFQl9JRF9UT0tFTlwiLCBcInFcIikpKTtcblxuY29uc3QgcmVzb2x2ZVByb2ZpbGVEYXRhID0gYXN5bmMgKHByb2ZpbGVOYW1lLCBwcm9maWxlcywgb3B0aW9ucywgY2FsbGVyQ2xpZW50Q29uZmlnLCB2aXNpdGVkUHJvZmlsZXMgPSB7fSwgaXNBc3N1bWVSb2xlUmVjdXJzaXZlQ2FsbCA9IGZhbHNlKSA9PiB7XG4gICAgY29uc3QgZGF0YSA9IHByb2ZpbGVzW3Byb2ZpbGVOYW1lXTtcbiAgICBpZiAoT2JqZWN0LmtleXModmlzaXRlZFByb2ZpbGVzKS5sZW5ndGggPiAwICYmIGlzU3RhdGljQ3JlZHNQcm9maWxlKGRhdGEpKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlU3RhdGljQ3JlZGVudGlhbHMoZGF0YSwgb3B0aW9ucyk7XG4gICAgfVxuICAgIGlmIChpc0Fzc3VtZVJvbGVSZWN1cnNpdmVDYWxsIHx8IGlzQXNzdW1lUm9sZVByb2ZpbGUoZGF0YSwgeyBwcm9maWxlOiBwcm9maWxlTmFtZSwgbG9nZ2VyOiBvcHRpb25zLmxvZ2dlciB9KSkge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZUFzc3VtZVJvbGVDcmVkZW50aWFscyhwcm9maWxlTmFtZSwgcHJvZmlsZXMsIG9wdGlvbnMsIGNhbGxlckNsaWVudENvbmZpZywgdmlzaXRlZFByb2ZpbGVzLCByZXNvbHZlUHJvZmlsZURhdGEpO1xuICAgIH1cbiAgICBpZiAoaXNTdGF0aWNDcmVkc1Byb2ZpbGUoZGF0YSkpIHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVTdGF0aWNDcmVkZW50aWFscyhkYXRhLCBvcHRpb25zKTtcbiAgICB9XG4gICAgaWYgKGlzV2ViSWRlbnRpdHlQcm9maWxlKGRhdGEpKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlV2ViSWRlbnRpdHlDcmVkZW50aWFscyhkYXRhLCBvcHRpb25zLCBjYWxsZXJDbGllbnRDb25maWcpO1xuICAgIH1cbiAgICBpZiAoaXNQcm9jZXNzUHJvZmlsZShkYXRhKSkge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZVByb2Nlc3NDcmVkZW50aWFscyhvcHRpb25zLCBwcm9maWxlTmFtZSk7XG4gICAgfVxuICAgIGlmIChpc1Nzb1Byb2ZpbGUoZGF0YSkpIHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHJlc29sdmVTc29DcmVkZW50aWFscyhwcm9maWxlTmFtZSwgZGF0YSwgb3B0aW9ucywgY2FsbGVyQ2xpZW50Q29uZmlnKTtcbiAgICB9XG4gICAgaWYgKGlzTG9naW5Qcm9maWxlKGRhdGEpKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlTG9naW5DcmVkZW50aWFscyhwcm9maWxlTmFtZSwgb3B0aW9ucywgY2FsbGVyQ2xpZW50Q29uZmlnKTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKGBDb3VsZCBub3QgcmVzb2x2ZSBjcmVkZW50aWFscyB1c2luZyBwcm9maWxlOiBbJHtwcm9maWxlTmFtZX1dIGluIGNvbmZpZ3VyYXRpb24vY3JlZGVudGlhbHMgZmlsZShzKS5gLCB7IGxvZ2dlcjogb3B0aW9ucy5sb2dnZXIgfSk7XG59O1xuXG5jb25zdCBmcm9tSW5pID0gKGluaXQgPSB7fSkgPT4gYXN5bmMgKHsgY2FsbGVyQ2xpZW50Q29uZmlnIH0gPSB7fSkgPT4ge1xuICAgIGluaXQubG9nZ2VyPy5kZWJ1ZyhcIkBhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItaW5pIC0gZnJvbUluaVwiKTtcbiAgICBjb25zdCBwcm9maWxlcyA9IGF3YWl0IHNoYXJlZEluaUZpbGVMb2FkZXIucGFyc2VLbm93bkZpbGVzKGluaXQpO1xuICAgIHJldHVybiByZXNvbHZlUHJvZmlsZURhdGEoc2hhcmVkSW5pRmlsZUxvYWRlci5nZXRQcm9maWxlTmFtZSh7XG4gICAgICAgIHByb2ZpbGU6IGluaXQucHJvZmlsZSA/PyBjYWxsZXJDbGllbnRDb25maWc/LnByb2ZpbGUsXG4gICAgfSksIHByb2ZpbGVzLCBpbml0LCBjYWxsZXJDbGllbnRDb25maWcpO1xufTtcblxuZXhwb3J0cy5mcm9tSW5pID0gZnJvbUluaTtcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBjcmVkZW50aWFsUHJvdmlkZXJFbnYgPSByZXF1aXJlKCdAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLWVudicpO1xudmFyIHByb3BlcnR5UHJvdmlkZXIgPSByZXF1aXJlKCdAc21pdGh5L3Byb3BlcnR5LXByb3ZpZGVyJyk7XG52YXIgc2hhcmVkSW5pRmlsZUxvYWRlciA9IHJlcXVpcmUoJ0BzbWl0aHkvc2hhcmVkLWluaS1maWxlLWxvYWRlcicpO1xuXG5jb25zdCBFTlZfSU1EU19ESVNBQkxFRCA9IFwiQVdTX0VDMl9NRVRBREFUQV9ESVNBQkxFRFwiO1xuY29uc3QgcmVtb3RlUHJvdmlkZXIgPSBhc3luYyAoaW5pdCkgPT4ge1xuICAgIGNvbnN0IHsgRU5WX0NNRFNfRlVMTF9VUkksIEVOVl9DTURTX1JFTEFUSVZFX1VSSSwgZnJvbUNvbnRhaW5lck1ldGFkYXRhLCBmcm9tSW5zdGFuY2VNZXRhZGF0YSB9ID0gYXdhaXQgaW1wb3J0KCdAc21pdGh5L2NyZWRlbnRpYWwtcHJvdmlkZXItaW1kcycpO1xuICAgIGlmIChwcm9jZXNzLmVudltFTlZfQ01EU19SRUxBVElWRV9VUkldIHx8IHByb2Nlc3MuZW52W0VOVl9DTURTX0ZVTExfVVJJXSkge1xuICAgICAgICBpbml0LmxvZ2dlcj8uZGVidWcoXCJAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLW5vZGUgLSByZW1vdGVQcm92aWRlcjo6ZnJvbUh0dHAvZnJvbUNvbnRhaW5lck1ldGFkYXRhXCIpO1xuICAgICAgICBjb25zdCB7IGZyb21IdHRwIH0gPSBhd2FpdCBpbXBvcnQoJ0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItaHR0cCcpO1xuICAgICAgICByZXR1cm4gcHJvcGVydHlQcm92aWRlci5jaGFpbihmcm9tSHR0cChpbml0KSwgZnJvbUNvbnRhaW5lck1ldGFkYXRhKGluaXQpKTtcbiAgICB9XG4gICAgaWYgKHByb2Nlc3MuZW52W0VOVl9JTURTX0RJU0FCTEVEXSAmJiBwcm9jZXNzLmVudltFTlZfSU1EU19ESVNBQkxFRF0gIT09IFwiZmFsc2VcIikge1xuICAgICAgICByZXR1cm4gYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKFwiRUMyIEluc3RhbmNlIE1ldGFkYXRhIFNlcnZpY2UgYWNjZXNzIGRpc2FibGVkXCIsIHsgbG9nZ2VyOiBpbml0LmxvZ2dlciB9KTtcbiAgICAgICAgfTtcbiAgICB9XG4gICAgaW5pdC5sb2dnZXI/LmRlYnVnKFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlIC0gcmVtb3RlUHJvdmlkZXI6OmZyb21JbnN0YW5jZU1ldGFkYXRhXCIpO1xuICAgIHJldHVybiBmcm9tSW5zdGFuY2VNZXRhZGF0YShpbml0KTtcbn07XG5cbmZ1bmN0aW9uIG1lbW9pemVDaGFpbihwcm92aWRlcnMsIHRyZWF0QXNFeHBpcmVkKSB7XG4gICAgY29uc3QgY2hhaW4gPSBpbnRlcm5hbENyZWF0ZUNoYWluKHByb3ZpZGVycyk7XG4gICAgbGV0IGFjdGl2ZUxvY2s7XG4gICAgbGV0IHBhc3NpdmVMb2NrO1xuICAgIGxldCBjcmVkZW50aWFscztcbiAgICBjb25zdCBwcm92aWRlciA9IGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgICAgIGlmIChvcHRpb25zPy5mb3JjZVJlZnJlc2gpIHtcbiAgICAgICAgICAgIHJldHVybiBhd2FpdCBjaGFpbihvcHRpb25zKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY3JlZGVudGlhbHM/LmV4cGlyYXRpb24pIHtcbiAgICAgICAgICAgIGlmIChjcmVkZW50aWFscz8uZXhwaXJhdGlvbj8uZ2V0VGltZSgpIDwgRGF0ZS5ub3coKSkge1xuICAgICAgICAgICAgICAgIGNyZWRlbnRpYWxzID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChhY3RpdmVMb2NrKSB7XG4gICAgICAgICAgICBhd2FpdCBhY3RpdmVMb2NrO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKCFjcmVkZW50aWFscyB8fCB0cmVhdEFzRXhwaXJlZD8uKGNyZWRlbnRpYWxzKSkge1xuICAgICAgICAgICAgaWYgKGNyZWRlbnRpYWxzKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFwYXNzaXZlTG9jaykge1xuICAgICAgICAgICAgICAgICAgICBwYXNzaXZlTG9jayA9IGNoYWluKG9wdGlvbnMpXG4gICAgICAgICAgICAgICAgICAgICAgICAudGhlbigoYykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY3JlZGVudGlhbHMgPSBjO1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFzc2l2ZUxvY2sgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGFjdGl2ZUxvY2sgPSBjaGFpbihvcHRpb25zKVxuICAgICAgICAgICAgICAgICAgICAudGhlbigoYykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjcmVkZW50aWFscyA9IGM7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBhY3RpdmVMb2NrID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiBwcm92aWRlcihvcHRpb25zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY3JlZGVudGlhbHM7XG4gICAgfTtcbiAgICByZXR1cm4gcHJvdmlkZXI7XG59XG5jb25zdCBpbnRlcm5hbENyZWF0ZUNoYWluID0gKHByb3ZpZGVycykgPT4gYXN5bmMgKGF3c0lkZW50aXR5UHJvcGVydGllcykgPT4ge1xuICAgIGxldCBsYXN0UHJvdmlkZXJFcnJvcjtcbiAgICBmb3IgKGNvbnN0IHByb3ZpZGVyIG9mIHByb3ZpZGVycykge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHByb3ZpZGVyKGF3c0lkZW50aXR5UHJvcGVydGllcyk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgbGFzdFByb3ZpZGVyRXJyb3IgPSBlcnI7XG4gICAgICAgICAgICBpZiAoZXJyPy50cnlOZXh0TGluaykge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICB9XG4gICAgfVxuICAgIHRocm93IGxhc3RQcm92aWRlckVycm9yO1xufTtcblxubGV0IG11bHRpcGxlQ3JlZGVudGlhbFNvdXJjZVdhcm5pbmdFbWl0dGVkID0gZmFsc2U7XG5jb25zdCBkZWZhdWx0UHJvdmlkZXIgPSAoaW5pdCA9IHt9KSA9PiBtZW1vaXplQ2hhaW4oW1xuICAgIGFzeW5jICgpID0+IHtcbiAgICAgICAgY29uc3QgcHJvZmlsZSA9IGluaXQucHJvZmlsZSA/PyBwcm9jZXNzLmVudltzaGFyZWRJbmlGaWxlTG9hZGVyLkVOVl9QUk9GSUxFXTtcbiAgICAgICAgaWYgKHByb2ZpbGUpIHtcbiAgICAgICAgICAgIGNvbnN0IGVudlN0YXRpY0NyZWRlbnRpYWxzQXJlU2V0ID0gcHJvY2Vzcy5lbnZbY3JlZGVudGlhbFByb3ZpZGVyRW52LkVOVl9LRVldICYmIHByb2Nlc3MuZW52W2NyZWRlbnRpYWxQcm92aWRlckVudi5FTlZfU0VDUkVUXTtcbiAgICAgICAgICAgIGlmIChlbnZTdGF0aWNDcmVkZW50aWFsc0FyZVNldCkge1xuICAgICAgICAgICAgICAgIGlmICghbXVsdGlwbGVDcmVkZW50aWFsU291cmNlV2FybmluZ0VtaXR0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgd2FybkZuID0gaW5pdC5sb2dnZXI/Lndhcm4gJiYgaW5pdC5sb2dnZXI/LmNvbnN0cnVjdG9yPy5uYW1lICE9PSBcIk5vT3BMb2dnZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPyBpbml0LmxvZ2dlci53YXJuLmJpbmQoaW5pdC5sb2dnZXIpXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnNvbGUud2FybjtcbiAgICAgICAgICAgICAgICAgICAgd2FybkZuKGBAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLW5vZGUgLSBkZWZhdWx0UHJvdmlkZXI6OmZyb21FbnYgV0FSTklORzpcbiAgICBNdWx0aXBsZSBjcmVkZW50aWFsIHNvdXJjZXMgZGV0ZWN0ZWQ6IFxuICAgIEJvdGggQVdTX1BST0ZJTEUgYW5kIHRoZSBwYWlyIEFXU19BQ0NFU1NfS0VZX0lEL0FXU19TRUNSRVRfQUNDRVNTX0tFWSBzdGF0aWMgY3JlZGVudGlhbHMgYXJlIHNldC5cbiAgICBUaGlzIFNESyB3aWxsIHByb2NlZWQgd2l0aCB0aGUgQVdTX1BST0ZJTEUgdmFsdWUuXG4gICAgXG4gICAgSG93ZXZlciwgYSBmdXR1cmUgdmVyc2lvbiBtYXkgY2hhbmdlIHRoaXMgYmVoYXZpb3IgdG8gcHJlZmVyIHRoZSBFTlYgc3RhdGljIGNyZWRlbnRpYWxzLlxuICAgIFBsZWFzZSBlbnN1cmUgdGhhdCB5b3VyIGVudmlyb25tZW50IG9ubHkgc2V0cyBlaXRoZXIgdGhlIEFXU19QUk9GSUxFIG9yIHRoZVxuICAgIEFXU19BQ0NFU1NfS0VZX0lEL0FXU19TRUNSRVRfQUNDRVNTX0tFWSBwYWlyLlxuYCk7XG4gICAgICAgICAgICAgICAgICAgIG11bHRpcGxlQ3JlZGVudGlhbFNvdXJjZVdhcm5pbmdFbWl0dGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoXCJBV1NfUFJPRklMRSBpcyBzZXQsIHNraXBwaW5nIGZyb21FbnYgcHJvdmlkZXIuXCIsIHtcbiAgICAgICAgICAgICAgICBsb2dnZXI6IGluaXQubG9nZ2VyLFxuICAgICAgICAgICAgICAgIHRyeU5leHRMaW5rOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaW5pdC5sb2dnZXI/LmRlYnVnKFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlIC0gZGVmYXVsdFByb3ZpZGVyOjpmcm9tRW52XCIpO1xuICAgICAgICByZXR1cm4gY3JlZGVudGlhbFByb3ZpZGVyRW52LmZyb21FbnYoaW5pdCkoKTtcbiAgICB9LFxuICAgIGFzeW5jIChhd3NJZGVudGl0eVByb3BlcnRpZXMpID0+IHtcbiAgICAgICAgaW5pdC5sb2dnZXI/LmRlYnVnKFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlIC0gZGVmYXVsdFByb3ZpZGVyOjpmcm9tU1NPXCIpO1xuICAgICAgICBjb25zdCB7IHNzb1N0YXJ0VXJsLCBzc29BY2NvdW50SWQsIHNzb1JlZ2lvbiwgc3NvUm9sZU5hbWUsIHNzb1Nlc3Npb24gfSA9IGluaXQ7XG4gICAgICAgIGlmICghc3NvU3RhcnRVcmwgJiYgIXNzb0FjY291bnRJZCAmJiAhc3NvUmVnaW9uICYmICFzc29Sb2xlTmFtZSAmJiAhc3NvU2Vzc2lvbikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKFwiU2tpcHBpbmcgU1NPIHByb3ZpZGVyIGluIGRlZmF1bHQgY2hhaW4gKGlucHV0cyBkbyBub3QgaW5jbHVkZSBTU08gZmllbGRzKS5cIiwgeyBsb2dnZXI6IGluaXQubG9nZ2VyIH0pO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHsgZnJvbVNTTyB9ID0gYXdhaXQgaW1wb3J0KCdAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLXNzbycpO1xuICAgICAgICByZXR1cm4gZnJvbVNTTyhpbml0KShhd3NJZGVudGl0eVByb3BlcnRpZXMpO1xuICAgIH0sXG4gICAgYXN5bmMgKGF3c0lkZW50aXR5UHJvcGVydGllcykgPT4ge1xuICAgICAgICBpbml0LmxvZ2dlcj8uZGVidWcoXCJAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLW5vZGUgLSBkZWZhdWx0UHJvdmlkZXI6OmZyb21JbmlcIik7XG4gICAgICAgIGNvbnN0IHsgZnJvbUluaSB9ID0gYXdhaXQgaW1wb3J0KCdAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLWluaScpO1xuICAgICAgICByZXR1cm4gZnJvbUluaShpbml0KShhd3NJZGVudGl0eVByb3BlcnRpZXMpO1xuICAgIH0sXG4gICAgYXN5bmMgKGF3c0lkZW50aXR5UHJvcGVydGllcykgPT4ge1xuICAgICAgICBpbml0LmxvZ2dlcj8uZGVidWcoXCJAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLW5vZGUgLSBkZWZhdWx0UHJvdmlkZXI6OmZyb21Qcm9jZXNzXCIpO1xuICAgICAgICBjb25zdCB7IGZyb21Qcm9jZXNzIH0gPSBhd2FpdCBpbXBvcnQoJ0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItcHJvY2VzcycpO1xuICAgICAgICByZXR1cm4gZnJvbVByb2Nlc3MoaW5pdCkoYXdzSWRlbnRpdHlQcm9wZXJ0aWVzKTtcbiAgICB9LFxuICAgIGFzeW5jIChhd3NJZGVudGl0eVByb3BlcnRpZXMpID0+IHtcbiAgICAgICAgaW5pdC5sb2dnZXI/LmRlYnVnKFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlIC0gZGVmYXVsdFByb3ZpZGVyOjpmcm9tVG9rZW5GaWxlXCIpO1xuICAgICAgICBjb25zdCB7IGZyb21Ub2tlbkZpbGUgfSA9IGF3YWl0IGltcG9ydCgnQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci13ZWItaWRlbnRpdHknKTtcbiAgICAgICAgcmV0dXJuIGZyb21Ub2tlbkZpbGUoaW5pdCkoYXdzSWRlbnRpdHlQcm9wZXJ0aWVzKTtcbiAgICB9LFxuICAgIGFzeW5jICgpID0+IHtcbiAgICAgICAgaW5pdC5sb2dnZXI/LmRlYnVnKFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlIC0gZGVmYXVsdFByb3ZpZGVyOjpyZW1vdGVQcm92aWRlclwiKTtcbiAgICAgICAgcmV0dXJuIChhd2FpdCByZW1vdGVQcm92aWRlcihpbml0KSkoKTtcbiAgICB9LFxuICAgIGFzeW5jICgpID0+IHtcbiAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKFwiQ291bGQgbm90IGxvYWQgY3JlZGVudGlhbHMgZnJvbSBhbnkgcHJvdmlkZXJzXCIsIHtcbiAgICAgICAgICAgIHRyeU5leHRMaW5rOiBmYWxzZSxcbiAgICAgICAgICAgIGxvZ2dlcjogaW5pdC5sb2dnZXIsXG4gICAgICAgIH0pO1xuICAgIH0sXG5dLCBjcmVkZW50aWFsc1RyZWF0ZWRBc0V4cGlyZWQpO1xuY29uc3QgY3JlZGVudGlhbHNXaWxsTmVlZFJlZnJlc2ggPSAoY3JlZGVudGlhbHMpID0+IGNyZWRlbnRpYWxzPy5leHBpcmF0aW9uICE9PSB1bmRlZmluZWQ7XG5jb25zdCBjcmVkZW50aWFsc1RyZWF0ZWRBc0V4cGlyZWQgPSAoY3JlZGVudGlhbHMpID0+IGNyZWRlbnRpYWxzPy5leHBpcmF0aW9uICE9PSB1bmRlZmluZWQgJiYgY3JlZGVudGlhbHMuZXhwaXJhdGlvbi5nZXRUaW1lKCkgLSBEYXRlLm5vdygpIDwgMzAwMDAwO1xuXG5leHBvcnRzLmNyZWRlbnRpYWxzVHJlYXRlZEFzRXhwaXJlZCA9IGNyZWRlbnRpYWxzVHJlYXRlZEFzRXhwaXJlZDtcbmV4cG9ydHMuY3JlZGVudGlhbHNXaWxsTmVlZFJlZnJlc2ggPSBjcmVkZW50aWFsc1dpbGxOZWVkUmVmcmVzaDtcbmV4cG9ydHMuZGVmYXVsdFByb3ZpZGVyID0gZGVmYXVsdFByb3ZpZGVyO1xuIiwgIid1c2Ugc3RyaWN0JztcblxudmFyIG5vZGVfb3MgPSByZXF1aXJlKCdub2RlOm9zJyk7XG52YXIgbm9kZV9wcm9jZXNzID0gcmVxdWlyZSgnbm9kZTpwcm9jZXNzJyk7XG52YXIgdXRpbENvbmZpZ1Byb3ZpZGVyID0gcmVxdWlyZSgnQHNtaXRoeS91dGlsLWNvbmZpZy1wcm92aWRlcicpO1xudmFyIHByb21pc2VzID0gcmVxdWlyZSgnbm9kZTpmcy9wcm9taXNlcycpO1xudmFyIG5vZGVfcGF0aCA9IHJlcXVpcmUoJ25vZGU6cGF0aCcpO1xudmFyIG1pZGRsZXdhcmVVc2VyQWdlbnQgPSByZXF1aXJlKCdAYXdzLXNkay9taWRkbGV3YXJlLXVzZXItYWdlbnQnKTtcblxuY29uc3QgZ2V0UnVudGltZVVzZXJBZ2VudFBhaXIgPSAoKSA9PiB7XG4gICAgY29uc3QgcnVudGltZXNUb0NoZWNrID0gW1wiZGVub1wiLCBcImJ1blwiLCBcImxscnRcIl07XG4gICAgZm9yIChjb25zdCBydW50aW1lIG9mIHJ1bnRpbWVzVG9DaGVjaykge1xuICAgICAgICBpZiAobm9kZV9wcm9jZXNzLnZlcnNpb25zW3J1bnRpbWVdKSB7XG4gICAgICAgICAgICByZXR1cm4gW2BtZC8ke3J1bnRpbWV9YCwgbm9kZV9wcm9jZXNzLnZlcnNpb25zW3J1bnRpbWVdXTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gW1wibWQvbm9kZWpzXCIsIG5vZGVfcHJvY2Vzcy52ZXJzaW9ucy5ub2RlXTtcbn07XG5cbmNvbnN0IGdldE5vZGVNb2R1bGVzUGFyZW50RGlycyA9IChkaXJuYW1lKSA9PiB7XG4gICAgY29uc3QgY3dkID0gcHJvY2Vzcy5jd2QoKTtcbiAgICBpZiAoIWRpcm5hbWUpIHtcbiAgICAgICAgcmV0dXJuIFtjd2RdO1xuICAgIH1cbiAgICBjb25zdCBub3JtYWxpemVkUGF0aCA9IG5vZGVfcGF0aC5ub3JtYWxpemUoZGlybmFtZSk7XG4gICAgY29uc3QgcGFydHMgPSBub3JtYWxpemVkUGF0aC5zcGxpdChub2RlX3BhdGguc2VwKTtcbiAgICBjb25zdCBub2RlTW9kdWxlc0luZGV4ID0gcGFydHMuaW5kZXhPZihcIm5vZGVfbW9kdWxlc1wiKTtcbiAgICBjb25zdCBwYXJlbnREaXIgPSBub2RlTW9kdWxlc0luZGV4ICE9PSAtMSA/IHBhcnRzLnNsaWNlKDAsIG5vZGVNb2R1bGVzSW5kZXgpLmpvaW4obm9kZV9wYXRoLnNlcCkgOiBub3JtYWxpemVkUGF0aDtcbiAgICBpZiAoY3dkID09PSBwYXJlbnREaXIpIHtcbiAgICAgICAgcmV0dXJuIFtjd2RdO1xuICAgIH1cbiAgICByZXR1cm4gW3BhcmVudERpciwgY3dkXTtcbn07XG5cbmNvbnN0IFNFTVZFUl9SRUdFWCA9IC9eKDB8WzEtOV1cXGQqKVxcLigwfFsxLTldXFxkKilcXC4oMHxbMS05XVxcZCopKD86LSgoPzowfFsxLTldXFxkKnxcXGQqW2EtekEtWi1dWzAtOWEtekEtWi1dKikoPzpcXC4oPzowfFsxLTldXFxkKnxcXGQqW2EtekEtWi1dWzAtOWEtekEtWi1dKikpKikpPyg/OlxcK1swLTlhLXpBLVotXSsoPzpcXC5bMC05YS16QS1aLV0rKSopPyQvO1xuY29uc3QgZ2V0U2FuaXRpemVkVHlwZVNjcmlwdFZlcnNpb24gPSAodmVyc2lvbiA9IFwiXCIpID0+IHtcbiAgICBjb25zdCBtYXRjaCA9IHZlcnNpb24ubWF0Y2goU0VNVkVSX1JFR0VYKTtcbiAgICBpZiAoIW1hdGNoKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGNvbnN0IFttYWpvciwgbWlub3IsIHBhdGNoLCBwcmVyZWxlYXNlXSA9IFttYXRjaFsxXSwgbWF0Y2hbMl0sIG1hdGNoWzNdLCBtYXRjaFs0XV07XG4gICAgcmV0dXJuIHByZXJlbGVhc2UgPyBgJHttYWpvcn0uJHttaW5vcn0uJHtwYXRjaH0tJHtwcmVyZWxlYXNlfWAgOiBgJHttYWpvcn0uJHttaW5vcn0uJHtwYXRjaH1gO1xufTtcblxuY29uc3QgQUxMT1dFRF9QUkVGSVhFUyA9IFtcIl5cIiwgXCJ+XCIsIFwiPj1cIiwgXCI8PVwiLCBcIj5cIiwgXCI8XCJdO1xuY29uc3QgQUxMT1dFRF9ESVNUX1RBR1MgPSBbXCJsYXRlc3RcIiwgXCJiZXRhXCIsIFwiZGV2XCIsIFwicmNcIiwgXCJpbnNpZGVyc1wiLCBcIm5leHRcIl07XG5jb25zdCBnZXRTYW5pdGl6ZWREZXZUeXBlU2NyaXB0VmVyc2lvbiA9ICh2ZXJzaW9uID0gXCJcIikgPT4ge1xuICAgIGlmIChBTExPV0VEX0RJU1RfVEFHUy5pbmNsdWRlcyh2ZXJzaW9uKSkge1xuICAgICAgICByZXR1cm4gdmVyc2lvbjtcbiAgICB9XG4gICAgY29uc3QgcHJlZml4ID0gQUxMT1dFRF9QUkVGSVhFUy5maW5kKChwKSA9PiB2ZXJzaW9uLnN0YXJ0c1dpdGgocCkpID8/IFwiXCI7XG4gICAgY29uc3Qgc2FuaXRpemVkVHlwZVNjcmlwdFZlcnNpb24gPSBnZXRTYW5pdGl6ZWRUeXBlU2NyaXB0VmVyc2lvbih2ZXJzaW9uLnNsaWNlKHByZWZpeC5sZW5ndGgpKTtcbiAgICBpZiAoIXNhbml0aXplZFR5cGVTY3JpcHRWZXJzaW9uKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHJldHVybiBgJHtwcmVmaXh9JHtzYW5pdGl6ZWRUeXBlU2NyaXB0VmVyc2lvbn1gO1xufTtcblxubGV0IHRzY1ZlcnNpb247XG5jb25zdCBUU19QQUNLQUdFX0pTT04gPSBub2RlX3BhdGguam9pbihcIm5vZGVfbW9kdWxlc1wiLCBcInR5cGVzY3JpcHRcIiwgXCJwYWNrYWdlLmpzb25cIik7XG5jb25zdCBnZXRUeXBlU2NyaXB0VXNlckFnZW50UGFpciA9IGFzeW5jICgpID0+IHtcbiAgICBpZiAodHNjVmVyc2lvbiA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBlbHNlIGlmICh0eXBlb2YgdHNjVmVyc2lvbiA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICByZXR1cm4gW1wibWQvdHNjXCIsIHRzY1ZlcnNpb25dO1xuICAgIH1cbiAgICBsZXQgaXNUeXBlU2NyaXB0RGV0ZWN0aW9uRGlzYWJsZWQgPSBmYWxzZTtcbiAgICB0cnkge1xuICAgICAgICBpc1R5cGVTY3JpcHREZXRlY3Rpb25EaXNhYmxlZCA9XG4gICAgICAgICAgICB1dGlsQ29uZmlnUHJvdmlkZXIuYm9vbGVhblNlbGVjdG9yKHByb2Nlc3MuZW52LCBcIkFXU19TREtfSlNfVFlQRVNDUklQVF9ERVRFQ1RJT05fRElTQUJMRURcIiwgdXRpbENvbmZpZ1Byb3ZpZGVyLlNlbGVjdG9yVHlwZS5FTlYpIHx8IGZhbHNlO1xuICAgIH1cbiAgICBjYXRjaCB7IH1cbiAgICBpZiAoaXNUeXBlU2NyaXB0RGV0ZWN0aW9uRGlzYWJsZWQpIHtcbiAgICAgICAgdHNjVmVyc2lvbiA9IG51bGw7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGNvbnN0IGRpcm5hbWUgPSB0eXBlb2YgX19kaXJuYW1lICE9PSBcInVuZGVmaW5lZFwiID8gX19kaXJuYW1lIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IG5vZGVNb2R1bGVzUGFyZW50RGlycyA9IGdldE5vZGVNb2R1bGVzUGFyZW50RGlycyhkaXJuYW1lKTtcbiAgICBsZXQgdmVyc2lvbkZyb21BcHA7XG4gICAgZm9yIChjb25zdCBub2RlTW9kdWxlc1BhcmVudERpciBvZiBub2RlTW9kdWxlc1BhcmVudERpcnMpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGFwcFBhY2thZ2VKc29uUGF0aCA9IG5vZGVfcGF0aC5qb2luKG5vZGVNb2R1bGVzUGFyZW50RGlyLCBcInBhY2thZ2UuanNvblwiKTtcbiAgICAgICAgICAgIGNvbnN0IHBhY2thZ2VKc29uID0gYXdhaXQgcHJvbWlzZXMucmVhZEZpbGUoYXBwUGFja2FnZUpzb25QYXRoLCBcInV0Zi04XCIpO1xuICAgICAgICAgICAgY29uc3QgeyBkZXBlbmRlbmNpZXMsIGRldkRlcGVuZGVuY2llcyB9ID0gSlNPTi5wYXJzZShwYWNrYWdlSnNvbik7XG4gICAgICAgICAgICBjb25zdCB2ZXJzaW9uID0gZGV2RGVwZW5kZW5jaWVzPy50eXBlc2NyaXB0ID8/IGRlcGVuZGVuY2llcz8udHlwZXNjcmlwdDtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdmVyc2lvbiAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmVyc2lvbkZyb21BcHAgPSB2ZXJzaW9uO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2gge1xuICAgICAgICB9XG4gICAgfVxuICAgIGlmICghdmVyc2lvbkZyb21BcHApIHtcbiAgICAgICAgdHNjVmVyc2lvbiA9IG51bGw7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGxldCB2ZXJzaW9uRnJvbU5vZGVNb2R1bGVzO1xuICAgIGZvciAoY29uc3Qgbm9kZU1vZHVsZXNQYXJlbnREaXIgb2Ygbm9kZU1vZHVsZXNQYXJlbnREaXJzKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCB0c1BhY2thZ2VKc29uUGF0aCA9IG5vZGVfcGF0aC5qb2luKG5vZGVNb2R1bGVzUGFyZW50RGlyLCBUU19QQUNLQUdFX0pTT04pO1xuICAgICAgICAgICAgY29uc3QgcGFja2FnZUpzb24gPSBhd2FpdCBwcm9taXNlcy5yZWFkRmlsZSh0c1BhY2thZ2VKc29uUGF0aCwgXCJ1dGYtOFwiKTtcbiAgICAgICAgICAgIGNvbnN0IHsgdmVyc2lvbiB9ID0gSlNPTi5wYXJzZShwYWNrYWdlSnNvbik7XG4gICAgICAgICAgICBjb25zdCBzYW5pdGl6ZWRWZXJzaW9uID0gZ2V0U2FuaXRpemVkVHlwZVNjcmlwdFZlcnNpb24odmVyc2lvbik7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHNhbml0aXplZFZlcnNpb24gIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZlcnNpb25Gcm9tTm9kZU1vZHVsZXMgPSBzYW5pdGl6ZWRWZXJzaW9uO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2gge1xuICAgICAgICB9XG4gICAgfVxuICAgIGlmICh2ZXJzaW9uRnJvbU5vZGVNb2R1bGVzKSB7XG4gICAgICAgIHRzY1ZlcnNpb24gPSB2ZXJzaW9uRnJvbU5vZGVNb2R1bGVzO1xuICAgICAgICByZXR1cm4gW1wibWQvdHNjXCIsIHRzY1ZlcnNpb25dO1xuICAgIH1cbiAgICBjb25zdCBzYW5pdGl6ZWRWZXJzaW9uID0gZ2V0U2FuaXRpemVkRGV2VHlwZVNjcmlwdFZlcnNpb24odmVyc2lvbkZyb21BcHApO1xuICAgIGlmICh0eXBlb2Ygc2FuaXRpemVkVmVyc2lvbiAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICB0c2NWZXJzaW9uID0gbnVsbDtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgdHNjVmVyc2lvbiA9IGBkZXZfJHtzYW5pdGl6ZWRWZXJzaW9ufWA7XG4gICAgcmV0dXJuIFtcIm1kL3RzY1wiLCB0c2NWZXJzaW9uXTtcbn07XG5cbmNvbnN0IGNydEF2YWlsYWJpbGl0eSA9IHtcbiAgICBpc0NydEF2YWlsYWJsZTogZmFsc2UsXG59O1xuXG5jb25zdCBpc0NydEF2YWlsYWJsZSA9ICgpID0+IHtcbiAgICBpZiAoY3J0QXZhaWxhYmlsaXR5LmlzQ3J0QXZhaWxhYmxlKSB7XG4gICAgICAgIHJldHVybiBbXCJtZC9jcnQtYXZhaWxcIl07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xufTtcblxuY29uc3QgY3JlYXRlRGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyID0gKHsgc2VydmljZUlkLCBjbGllbnRWZXJzaW9uIH0pID0+IHtcbiAgICBjb25zdCBydW50aW1lVXNlckFnZW50UGFpciA9IGdldFJ1bnRpbWVVc2VyQWdlbnRQYWlyKCk7XG4gICAgcmV0dXJuIGFzeW5jIChjb25maWcpID0+IHtcbiAgICAgICAgY29uc3Qgc2VjdGlvbnMgPSBbXG4gICAgICAgICAgICBbXCJhd3Mtc2RrLWpzXCIsIGNsaWVudFZlcnNpb25dLFxuICAgICAgICAgICAgW1widWFcIiwgXCIyLjFcIl0sXG4gICAgICAgICAgICBbYG9zLyR7bm9kZV9vcy5wbGF0Zm9ybSgpfWAsIG5vZGVfb3MucmVsZWFzZSgpXSxcbiAgICAgICAgICAgIFtcImxhbmcvanNcIl0sXG4gICAgICAgICAgICBydW50aW1lVXNlckFnZW50UGFpcixcbiAgICAgICAgXTtcbiAgICAgICAgY29uc3QgdHlwZXNjcmlwdFVzZXJBZ2VudFBhaXIgPSBhd2FpdCBnZXRUeXBlU2NyaXB0VXNlckFnZW50UGFpcigpO1xuICAgICAgICBpZiAodHlwZXNjcmlwdFVzZXJBZ2VudFBhaXIpIHtcbiAgICAgICAgICAgIHNlY3Rpb25zLnB1c2godHlwZXNjcmlwdFVzZXJBZ2VudFBhaXIpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNydEF2YWlsYWJsZSA9IGlzQ3J0QXZhaWxhYmxlKCk7XG4gICAgICAgIGlmIChjcnRBdmFpbGFibGUpIHtcbiAgICAgICAgICAgIHNlY3Rpb25zLnB1c2goY3J0QXZhaWxhYmxlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc2VydmljZUlkKSB7XG4gICAgICAgICAgICBzZWN0aW9ucy5wdXNoKFtgYXBpLyR7c2VydmljZUlkfWAsIGNsaWVudFZlcnNpb25dKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobm9kZV9wcm9jZXNzLmVudi5BV1NfRVhFQ1VUSU9OX0VOVikge1xuICAgICAgICAgICAgc2VjdGlvbnMucHVzaChbYGV4ZWMtZW52LyR7bm9kZV9wcm9jZXNzLmVudi5BV1NfRVhFQ1VUSU9OX0VOVn1gXSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYXBwSWQgPSBhd2FpdCBjb25maWc/LnVzZXJBZ2VudEFwcElkPy4oKTtcbiAgICAgICAgY29uc3QgcmVzb2x2ZWRVc2VyQWdlbnQgPSBhcHBJZCA/IFsuLi5zZWN0aW9ucywgW2BhcHAvJHthcHBJZH1gXV0gOiBbLi4uc2VjdGlvbnNdO1xuICAgICAgICByZXR1cm4gcmVzb2x2ZWRVc2VyQWdlbnQ7XG4gICAgfTtcbn07XG5jb25zdCBkZWZhdWx0VXNlckFnZW50ID0gY3JlYXRlRGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyO1xuXG5jb25zdCBVQV9BUFBfSURfRU5WX05BTUUgPSBcIkFXU19TREtfVUFfQVBQX0lEXCI7XG5jb25zdCBVQV9BUFBfSURfSU5JX05BTUUgPSBcInNka191YV9hcHBfaWRcIjtcbmNvbnN0IFVBX0FQUF9JRF9JTklfTkFNRV9ERVBSRUNBVEVEID0gXCJzZGstdWEtYXBwLWlkXCI7XG5jb25zdCBOT0RFX0FQUF9JRF9DT05GSUdfT1BUSU9OUyA9IHtcbiAgICBlbnZpcm9ubWVudFZhcmlhYmxlU2VsZWN0b3I6IChlbnYpID0+IGVudltVQV9BUFBfSURfRU5WX05BTUVdLFxuICAgIGNvbmZpZ0ZpbGVTZWxlY3RvcjogKHByb2ZpbGUpID0+IHByb2ZpbGVbVUFfQVBQX0lEX0lOSV9OQU1FXSA/PyBwcm9maWxlW1VBX0FQUF9JRF9JTklfTkFNRV9ERVBSRUNBVEVEXSxcbiAgICBkZWZhdWx0OiBtaWRkbGV3YXJlVXNlckFnZW50LkRFRkFVTFRfVUFfQVBQX0lELFxufTtcblxuZXhwb3J0cy5OT0RFX0FQUF9JRF9DT05GSUdfT1BUSU9OUyA9IE5PREVfQVBQX0lEX0NPTkZJR19PUFRJT05TO1xuZXhwb3J0cy5VQV9BUFBfSURfRU5WX05BTUUgPSBVQV9BUFBfSURfRU5WX05BTUU7XG5leHBvcnRzLlVBX0FQUF9JRF9JTklfTkFNRSA9IFVBX0FQUF9JRF9JTklfTkFNRTtcbmV4cG9ydHMuY3JlYXRlRGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyID0gY3JlYXRlRGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyO1xuZXhwb3J0cy5jcnRBdmFpbGFiaWxpdHkgPSBjcnRBdmFpbGFiaWxpdHk7XG5leHBvcnRzLmRlZmF1bHRVc2VyQWdlbnQgPSBkZWZhdWx0VXNlckFnZW50O1xuIiwgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5ydWxlU2V0ID0gdm9pZCAwO1xuY29uc3QgeSA9IFwicmVxdWlyZWRcIiwgeiA9IFwiZm5cIiwgQSA9IFwiYXJndlwiLCBCID0gXCJyZWZcIiwgQyA9IFwicHJvcGVydGllc1wiLCBEID0gXCJoZWFkZXJzXCI7XG5jb25zdCBhID0gdHJ1ZSwgYiA9IFwiaXNTZXRcIiwgYyA9IFwiYm9vbGVhbkVxdWFsc1wiLCBkID0gXCJlcnJvclwiLCBlID0gXCJlbmRwb2ludFwiLCBmID0gXCJ0cmVlXCIsIGcgPSBcIlBhcnRpdGlvblJlc3VsdFwiLCBoID0gXCJzdHJpbmdFcXVhbHNcIiwgaSA9IHsgW3ldOiBmYWxzZSwgXCJ0eXBlXCI6IFwic3RyaW5nXCIgfSwgaiA9IHsgW3ldOiB0cnVlLCBcImRlZmF1bHRcIjogZmFsc2UsIFwidHlwZVwiOiBcImJvb2xlYW5cIiB9LCBrID0geyBbQl06IFwiRW5kcG9pbnRcIiB9LCBsID0geyBbel06IGMsIFtBXTogW3sgW0JdOiBcIlVzZUZJUFNcIiB9LCB0cnVlXSB9LCBtID0geyBbel06IGMsIFtBXTogW3sgW0JdOiBcIlVzZUR1YWxTdGFja1wiIH0sIHRydWVdIH0sIG4gPSB7fSwgbyA9IHsgW3pdOiBcImdldEF0dHJcIiwgW0FdOiBbeyBbQl06IGcgfSwgXCJzdXBwb3J0c0ZJUFNcIl0gfSwgcCA9IHsgW3pdOiBjLCBbQV06IFt0cnVlLCB7IFt6XTogXCJnZXRBdHRyXCIsIFtBXTogW3sgW0JdOiBnIH0sIFwic3VwcG9ydHNEdWFsU3RhY2tcIl0gfV0gfSwgcSA9IHsgW3pdOiBcImdldEF0dHJcIiwgW0FdOiBbeyBbQl06IGcgfSwgXCJuYW1lXCJdIH0sIHIgPSB7IFwidXJsXCI6IFwiaHR0cHM6Ly9zZWNyZXRzbWFuYWdlci1maXBzLntSZWdpb259LmFtYXpvbmF3cy5jb21cIiwgW0NdOiB7fSwgW0RdOiB7fSB9LCBzID0geyBcInVybFwiOiBcImh0dHBzOi8vc2VjcmV0c21hbmFnZXIue1JlZ2lvbn0uYW1hem9uYXdzLmNvbVwiLCBbQ106IHt9LCBbRF06IHt9IH0sIHQgPSBbbF0sIHUgPSBbbV0sIHYgPSBbeyBbQl06IFwiUmVnaW9uXCIgfV0sIHcgPSBbeyBbel06IGgsIFtBXTogW1wiYXdzXCIsIHFdIH1dLCB4ID0gW3sgW3pdOiBoLCBbQV06IFtcImF3cy11cy1nb3ZcIiwgcV0gfV07XG5jb25zdCBfZGF0YSA9IHsgdmVyc2lvbjogXCIxLjBcIiwgcGFyYW1ldGVyczogeyBSZWdpb246IGksIFVzZUR1YWxTdGFjazogaiwgVXNlRklQUzogaiwgRW5kcG9pbnQ6IGkgfSwgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IFt7IFt6XTogYiwgW0FdOiBba10gfV0sIHJ1bGVzOiBbeyBjb25kaXRpb25zOiB0LCBlcnJvcjogXCJJbnZhbGlkIENvbmZpZ3VyYXRpb246IEZJUFMgYW5kIGN1c3RvbSBlbmRwb2ludCBhcmUgbm90IHN1cHBvcnRlZFwiLCB0eXBlOiBkIH0sIHsgY29uZGl0aW9uczogdSwgZXJyb3I6IFwiSW52YWxpZCBDb25maWd1cmF0aW9uOiBEdWFsc3RhY2sgYW5kIGN1c3RvbSBlbmRwb2ludCBhcmUgbm90IHN1cHBvcnRlZFwiLCB0eXBlOiBkIH0sIHsgZW5kcG9pbnQ6IHsgdXJsOiBrLCBbQ106IG4sIFtEXTogbiB9LCB0eXBlOiBlIH1dLCB0eXBlOiBmIH0sIHsgY29uZGl0aW9uczogW3sgW3pdOiBiLCBbQV06IHYgfV0sIHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbeyBbel06IFwiYXdzLnBhcnRpdGlvblwiLCBbQV06IHYsIGFzc2lnbjogZyB9XSwgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IFtsLCBtXSwgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IFt7IFt6XTogYywgW0FdOiBbYSwgb10gfSwgcF0sIHJ1bGVzOiBbeyBjb25kaXRpb25zOiB3LCBlbmRwb2ludDogciwgdHlwZTogZSB9LCB7IGNvbmRpdGlvbnM6IHgsIGVuZHBvaW50OiByLCB0eXBlOiBlIH0sIHsgZW5kcG9pbnQ6IHsgdXJsOiBcImh0dHBzOi8vc2VjcmV0c21hbmFnZXItZmlwcy57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2R1YWxTdGFja0Ruc1N1ZmZpeH1cIiwgW0NdOiBuLCBbRF06IG4gfSwgdHlwZTogZSB9XSwgdHlwZTogZiB9LCB7IGVycm9yOiBcIkZJUFMgYW5kIER1YWxTdGFjayBhcmUgZW5hYmxlZCwgYnV0IHRoaXMgcGFydGl0aW9uIGRvZXMgbm90IHN1cHBvcnQgb25lIG9yIGJvdGhcIiwgdHlwZTogZCB9XSwgdHlwZTogZiB9LCB7IGNvbmRpdGlvbnM6IHQsIHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbeyBbel06IGMsIFtBXTogW28sIGFdIH1dLCBydWxlczogW3sgZW5kcG9pbnQ6IHsgdXJsOiBcImh0dHBzOi8vc2VjcmV0c21hbmFnZXItZmlwcy57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH1cIiwgW0NdOiBuLCBbRF06IG4gfSwgdHlwZTogZSB9XSwgdHlwZTogZiB9LCB7IGVycm9yOiBcIkZJUFMgaXMgZW5hYmxlZCBidXQgdGhpcyBwYXJ0aXRpb24gZG9lcyBub3Qgc3VwcG9ydCBGSVBTXCIsIHR5cGU6IGQgfV0sIHR5cGU6IGYgfSwgeyBjb25kaXRpb25zOiB1LCBydWxlczogW3sgY29uZGl0aW9uczogW3BdLCBydWxlczogW3sgY29uZGl0aW9uczogdywgZW5kcG9pbnQ6IHMsIHR5cGU6IGUgfSwgeyBjb25kaXRpb25zOiBbeyBbel06IGgsIFtBXTogW1wiYXdzLWNuXCIsIHFdIH1dLCBlbmRwb2ludDogeyB1cmw6IFwiaHR0cHM6Ly9zZWNyZXRzbWFuYWdlci57UmVnaW9ufS5hbWF6b25hd3MuY29tLmNuXCIsIFtDXTogbiwgW0RdOiBuIH0sIHR5cGU6IGUgfSwgeyBjb25kaXRpb25zOiB4LCBlbmRwb2ludDogcywgdHlwZTogZSB9LCB7IGVuZHBvaW50OiB7IHVybDogXCJodHRwczovL3NlY3JldHNtYW5hZ2VyLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZHVhbFN0YWNrRG5zU3VmZml4fVwiLCBbQ106IG4sIFtEXTogbiB9LCB0eXBlOiBlIH1dLCB0eXBlOiBmIH0sIHsgZXJyb3I6IFwiRHVhbFN0YWNrIGlzIGVuYWJsZWQgYnV0IHRoaXMgcGFydGl0aW9uIGRvZXMgbm90IHN1cHBvcnQgRHVhbFN0YWNrXCIsIHR5cGU6IGQgfV0sIHR5cGU6IGYgfSwgeyBlbmRwb2ludDogeyB1cmw6IFwiaHR0cHM6Ly9zZWNyZXRzbWFuYWdlci57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH1cIiwgW0NdOiBuLCBbRF06IG4gfSwgdHlwZTogZSB9XSwgdHlwZTogZiB9XSwgdHlwZTogZiB9LCB7IGVycm9yOiBcIkludmFsaWQgQ29uZmlndXJhdGlvbjogTWlzc2luZyBSZWdpb25cIiwgdHlwZTogZCB9XSB9O1xuZXhwb3J0cy5ydWxlU2V0ID0gX2RhdGE7XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmRlZmF1bHRFbmRwb2ludFJlc29sdmVyID0gdm9pZCAwO1xuY29uc3QgdXRpbF9lbmRwb2ludHNfMSA9IHJlcXVpcmUoXCJAYXdzLXNkay91dGlsLWVuZHBvaW50c1wiKTtcbmNvbnN0IHV0aWxfZW5kcG9pbnRzXzIgPSByZXF1aXJlKFwiQHNtaXRoeS91dGlsLWVuZHBvaW50c1wiKTtcbmNvbnN0IHJ1bGVzZXRfMSA9IHJlcXVpcmUoXCIuL3J1bGVzZXRcIik7XG5jb25zdCBjYWNoZSA9IG5ldyB1dGlsX2VuZHBvaW50c18yLkVuZHBvaW50Q2FjaGUoe1xuICAgIHNpemU6IDUwLFxuICAgIHBhcmFtczogW1wiRW5kcG9pbnRcIiwgXCJSZWdpb25cIiwgXCJVc2VEdWFsU3RhY2tcIiwgXCJVc2VGSVBTXCJdLFxufSk7XG5jb25zdCBkZWZhdWx0RW5kcG9pbnRSZXNvbHZlciA9IChlbmRwb2ludFBhcmFtcywgY29udGV4dCA9IHt9KSA9PiB7XG4gICAgcmV0dXJuIGNhY2hlLmdldChlbmRwb2ludFBhcmFtcywgKCkgPT4gKDAsIHV0aWxfZW5kcG9pbnRzXzIucmVzb2x2ZUVuZHBvaW50KShydWxlc2V0XzEucnVsZVNldCwge1xuICAgICAgICBlbmRwb2ludFBhcmFtczogZW5kcG9pbnRQYXJhbXMsXG4gICAgICAgIGxvZ2dlcjogY29udGV4dC5sb2dnZXIsXG4gICAgfSkpO1xufTtcbmV4cG9ydHMuZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIgPSBkZWZhdWx0RW5kcG9pbnRSZXNvbHZlcjtcbnV0aWxfZW5kcG9pbnRzXzIuY3VzdG9tRW5kcG9pbnRGdW5jdGlvbnMuYXdzID0gdXRpbF9lbmRwb2ludHNfMS5hd3NFbmRwb2ludEZ1bmN0aW9ucztcbiIsICJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuU2VjcmV0c01hbmFnZXJTZXJ2aWNlRXhjZXB0aW9uID0gZXhwb3J0cy5fX1NlcnZpY2VFeGNlcHRpb24gPSB2b2lkIDA7XG5jb25zdCBzbWl0aHlfY2xpZW50XzEgPSByZXF1aXJlKFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19TZXJ2aWNlRXhjZXB0aW9uXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBzbWl0aHlfY2xpZW50XzEuU2VydmljZUV4Y2VwdGlvbjsgfSB9KTtcbmNsYXNzIFNlY3JldHNNYW5hZ2VyU2VydmljZUV4Y2VwdGlvbiBleHRlbmRzIHNtaXRoeV9jbGllbnRfMS5TZXJ2aWNlRXhjZXB0aW9uIHtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgU2VjcmV0c01hbmFnZXJTZXJ2aWNlRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgfVxufVxuZXhwb3J0cy5TZWNyZXRzTWFuYWdlclNlcnZpY2VFeGNlcHRpb24gPSBTZWNyZXRzTWFuYWdlclNlcnZpY2VFeGNlcHRpb247XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlB1YmxpY1BvbGljeUV4Y2VwdGlvbiA9IGV4cG9ydHMuUmVzb3VyY2VFeGlzdHNFeGNlcHRpb24gPSBleHBvcnRzLlByZWNvbmRpdGlvbk5vdE1ldEV4Y2VwdGlvbiA9IGV4cG9ydHMuTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFeGNlcHRpb24gPSBleHBvcnRzLkxpbWl0RXhjZWVkZWRFeGNlcHRpb24gPSBleHBvcnRzLkVuY3J5cHRpb25GYWlsdXJlID0gZXhwb3J0cy5SZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uID0gZXhwb3J0cy5JbnZhbGlkUmVxdWVzdEV4Y2VwdGlvbiA9IGV4cG9ydHMuSW52YWxpZFBhcmFtZXRlckV4Y2VwdGlvbiA9IGV4cG9ydHMuSW52YWxpZE5leHRUb2tlbkV4Y2VwdGlvbiA9IGV4cG9ydHMuSW50ZXJuYWxTZXJ2aWNlRXJyb3IgPSBleHBvcnRzLkRlY3J5cHRpb25GYWlsdXJlID0gdm9pZCAwO1xuY29uc3QgU2VjcmV0c01hbmFnZXJTZXJ2aWNlRXhjZXB0aW9uXzEgPSByZXF1aXJlKFwiLi9TZWNyZXRzTWFuYWdlclNlcnZpY2VFeGNlcHRpb25cIik7XG5jbGFzcyBEZWNyeXB0aW9uRmFpbHVyZSBleHRlbmRzIFNlY3JldHNNYW5hZ2VyU2VydmljZUV4Y2VwdGlvbl8xLlNlY3JldHNNYW5hZ2VyU2VydmljZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiRGVjcnlwdGlvbkZhaWx1cmVcIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIE1lc3NhZ2U7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkRlY3J5cHRpb25GYWlsdXJlXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIERlY3J5cHRpb25GYWlsdXJlLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuTWVzc2FnZSA9IG9wdHMuTWVzc2FnZTtcbiAgICB9XG59XG5leHBvcnRzLkRlY3J5cHRpb25GYWlsdXJlID0gRGVjcnlwdGlvbkZhaWx1cmU7XG5jbGFzcyBJbnRlcm5hbFNlcnZpY2VFcnJvciBleHRlbmRzIFNlY3JldHNNYW5hZ2VyU2VydmljZUV4Y2VwdGlvbl8xLlNlY3JldHNNYW5hZ2VyU2VydmljZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiSW50ZXJuYWxTZXJ2aWNlRXJyb3JcIjtcbiAgICAkZmF1bHQgPSBcInNlcnZlclwiO1xuICAgIE1lc3NhZ2U7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkludGVybmFsU2VydmljZUVycm9yXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwic2VydmVyXCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEludGVybmFsU2VydmljZUVycm9yLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuTWVzc2FnZSA9IG9wdHMuTWVzc2FnZTtcbiAgICB9XG59XG5leHBvcnRzLkludGVybmFsU2VydmljZUVycm9yID0gSW50ZXJuYWxTZXJ2aWNlRXJyb3I7XG5jbGFzcyBJbnZhbGlkTmV4dFRva2VuRXhjZXB0aW9uIGV4dGVuZHMgU2VjcmV0c01hbmFnZXJTZXJ2aWNlRXhjZXB0aW9uXzEuU2VjcmV0c01hbmFnZXJTZXJ2aWNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJJbnZhbGlkTmV4dFRva2VuRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBNZXNzYWdlO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJJbnZhbGlkTmV4dFRva2VuRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEludmFsaWROZXh0VG9rZW5FeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5NZXNzYWdlID0gb3B0cy5NZXNzYWdlO1xuICAgIH1cbn1cbmV4cG9ydHMuSW52YWxpZE5leHRUb2tlbkV4Y2VwdGlvbiA9IEludmFsaWROZXh0VG9rZW5FeGNlcHRpb247XG5jbGFzcyBJbnZhbGlkUGFyYW1ldGVyRXhjZXB0aW9uIGV4dGVuZHMgU2VjcmV0c01hbmFnZXJTZXJ2aWNlRXhjZXB0aW9uXzEuU2VjcmV0c01hbmFnZXJTZXJ2aWNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJJbnZhbGlkUGFyYW1ldGVyRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBNZXNzYWdlO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJJbnZhbGlkUGFyYW1ldGVyRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEludmFsaWRQYXJhbWV0ZXJFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5NZXNzYWdlID0gb3B0cy5NZXNzYWdlO1xuICAgIH1cbn1cbmV4cG9ydHMuSW52YWxpZFBhcmFtZXRlckV4Y2VwdGlvbiA9IEludmFsaWRQYXJhbWV0ZXJFeGNlcHRpb247XG5jbGFzcyBJbnZhbGlkUmVxdWVzdEV4Y2VwdGlvbiBleHRlbmRzIFNlY3JldHNNYW5hZ2VyU2VydmljZUV4Y2VwdGlvbl8xLlNlY3JldHNNYW5hZ2VyU2VydmljZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiSW52YWxpZFJlcXVlc3RFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIE1lc3NhZ2U7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkludmFsaWRSZXF1ZXN0RXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEludmFsaWRSZXF1ZXN0RXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuTWVzc2FnZSA9IG9wdHMuTWVzc2FnZTtcbiAgICB9XG59XG5leHBvcnRzLkludmFsaWRSZXF1ZXN0RXhjZXB0aW9uID0gSW52YWxpZFJlcXVlc3RFeGNlcHRpb247XG5jbGFzcyBSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uIGV4dGVuZHMgU2VjcmV0c01hbmFnZXJTZXJ2aWNlRXhjZXB0aW9uXzEuU2VjcmV0c01hbmFnZXJTZXJ2aWNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBNZXNzYWdlO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFJlc291cmNlTm90Rm91bmRFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5NZXNzYWdlID0gb3B0cy5NZXNzYWdlO1xuICAgIH1cbn1cbmV4cG9ydHMuUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvbiA9IFJlc291cmNlTm90Rm91bmRFeGNlcHRpb247XG5jbGFzcyBFbmNyeXB0aW9uRmFpbHVyZSBleHRlbmRzIFNlY3JldHNNYW5hZ2VyU2VydmljZUV4Y2VwdGlvbl8xLlNlY3JldHNNYW5hZ2VyU2VydmljZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiRW5jcnlwdGlvbkZhaWx1cmVcIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIE1lc3NhZ2U7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkVuY3J5cHRpb25GYWlsdXJlXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEVuY3J5cHRpb25GYWlsdXJlLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuTWVzc2FnZSA9IG9wdHMuTWVzc2FnZTtcbiAgICB9XG59XG5leHBvcnRzLkVuY3J5cHRpb25GYWlsdXJlID0gRW5jcnlwdGlvbkZhaWx1cmU7XG5jbGFzcyBMaW1pdEV4Y2VlZGVkRXhjZXB0aW9uIGV4dGVuZHMgU2VjcmV0c01hbmFnZXJTZXJ2aWNlRXhjZXB0aW9uXzEuU2VjcmV0c01hbmFnZXJTZXJ2aWNlRXhjZXB0aW9uIHtcbiAgICBuYW1lID0gXCJMaW1pdEV4Y2VlZGVkRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBNZXNzYWdlO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJMaW1pdEV4Y2VlZGVkRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIExpbWl0RXhjZWVkZWRFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5NZXNzYWdlID0gb3B0cy5NZXNzYWdlO1xuICAgIH1cbn1cbmV4cG9ydHMuTGltaXRFeGNlZWRlZEV4Y2VwdGlvbiA9IExpbWl0RXhjZWVkZWRFeGNlcHRpb247XG5jbGFzcyBNYWxmb3JtZWRQb2xpY3lEb2N1bWVudEV4Y2VwdGlvbiBleHRlbmRzIFNlY3JldHNNYW5hZ2VyU2VydmljZUV4Y2VwdGlvbl8xLlNlY3JldHNNYW5hZ2VyU2VydmljZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIE1lc3NhZ2U7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIk1hbGZvcm1lZFBvbGljeURvY3VtZW50RXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIE1hbGZvcm1lZFBvbGljeURvY3VtZW50RXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuTWVzc2FnZSA9IG9wdHMuTWVzc2FnZTtcbiAgICB9XG59XG5leHBvcnRzLk1hbGZvcm1lZFBvbGljeURvY3VtZW50RXhjZXB0aW9uID0gTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFeGNlcHRpb247XG5jbGFzcyBQcmVjb25kaXRpb25Ob3RNZXRFeGNlcHRpb24gZXh0ZW5kcyBTZWNyZXRzTWFuYWdlclNlcnZpY2VFeGNlcHRpb25fMS5TZWNyZXRzTWFuYWdlclNlcnZpY2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIlByZWNvbmRpdGlvbk5vdE1ldEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgTWVzc2FnZTtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiUHJlY29uZGl0aW9uTm90TWV0RXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFByZWNvbmRpdGlvbk5vdE1ldEV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLk1lc3NhZ2UgPSBvcHRzLk1lc3NhZ2U7XG4gICAgfVxufVxuZXhwb3J0cy5QcmVjb25kaXRpb25Ob3RNZXRFeGNlcHRpb24gPSBQcmVjb25kaXRpb25Ob3RNZXRFeGNlcHRpb247XG5jbGFzcyBSZXNvdXJjZUV4aXN0c0V4Y2VwdGlvbiBleHRlbmRzIFNlY3JldHNNYW5hZ2VyU2VydmljZUV4Y2VwdGlvbl8xLlNlY3JldHNNYW5hZ2VyU2VydmljZUV4Y2VwdGlvbiB7XG4gICAgbmFtZSA9IFwiUmVzb3VyY2VFeGlzdHNFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIE1lc3NhZ2U7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIlJlc291cmNlRXhpc3RzRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFJlc291cmNlRXhpc3RzRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuTWVzc2FnZSA9IG9wdHMuTWVzc2FnZTtcbiAgICB9XG59XG5leHBvcnRzLlJlc291cmNlRXhpc3RzRXhjZXB0aW9uID0gUmVzb3VyY2VFeGlzdHNFeGNlcHRpb247XG5jbGFzcyBQdWJsaWNQb2xpY3lFeGNlcHRpb24gZXh0ZW5kcyBTZWNyZXRzTWFuYWdlclNlcnZpY2VFeGNlcHRpb25fMS5TZWNyZXRzTWFuYWdlclNlcnZpY2VFeGNlcHRpb24ge1xuICAgIG5hbWUgPSBcIlB1YmxpY1BvbGljeUV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgTWVzc2FnZTtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiUHVibGljUG9saWN5RXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFB1YmxpY1BvbGljeUV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLk1lc3NhZ2UgPSBvcHRzLk1lc3NhZ2U7XG4gICAgfVxufVxuZXhwb3J0cy5QdWJsaWNQb2xpY3lFeGNlcHRpb24gPSBQdWJsaWNQb2xpY3lFeGNlcHRpb247XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlJlc3RvcmVTZWNyZXRSZXF1ZXN0JCA9IGV4cG9ydHMuUmVwbGljYXRpb25TdGF0dXNUeXBlJCA9IGV4cG9ydHMuUmVwbGljYXRlU2VjcmV0VG9SZWdpb25zUmVzcG9uc2UkID0gZXhwb3J0cy5SZXBsaWNhdGVTZWNyZXRUb1JlZ2lvbnNSZXF1ZXN0JCA9IGV4cG9ydHMuUmVwbGljYVJlZ2lvblR5cGUkID0gZXhwb3J0cy5SZW1vdmVSZWdpb25zRnJvbVJlcGxpY2F0aW9uUmVzcG9uc2UkID0gZXhwb3J0cy5SZW1vdmVSZWdpb25zRnJvbVJlcGxpY2F0aW9uUmVxdWVzdCQgPSBleHBvcnRzLlB1dFNlY3JldFZhbHVlUmVzcG9uc2UkID0gZXhwb3J0cy5QdXRTZWNyZXRWYWx1ZVJlcXVlc3QkID0gZXhwb3J0cy5QdXRSZXNvdXJjZVBvbGljeVJlc3BvbnNlJCA9IGV4cG9ydHMuUHV0UmVzb3VyY2VQb2xpY3lSZXF1ZXN0JCA9IGV4cG9ydHMuTGlzdFNlY3JldFZlcnNpb25JZHNSZXNwb25zZSQgPSBleHBvcnRzLkxpc3RTZWNyZXRWZXJzaW9uSWRzUmVxdWVzdCQgPSBleHBvcnRzLkxpc3RTZWNyZXRzUmVzcG9uc2UkID0gZXhwb3J0cy5MaXN0U2VjcmV0c1JlcXVlc3QkID0gZXhwb3J0cy5HZXRTZWNyZXRWYWx1ZVJlc3BvbnNlJCA9IGV4cG9ydHMuR2V0U2VjcmV0VmFsdWVSZXF1ZXN0JCA9IGV4cG9ydHMuR2V0UmVzb3VyY2VQb2xpY3lSZXNwb25zZSQgPSBleHBvcnRzLkdldFJlc291cmNlUG9saWN5UmVxdWVzdCQgPSBleHBvcnRzLkdldFJhbmRvbVBhc3N3b3JkUmVzcG9uc2UkID0gZXhwb3J0cy5HZXRSYW5kb21QYXNzd29yZFJlcXVlc3QkID0gZXhwb3J0cy5GaWx0ZXIkID0gZXhwb3J0cy5FeHRlcm5hbFNlY3JldFJvdGF0aW9uTWV0YWRhdGFJdGVtJCA9IGV4cG9ydHMuRGVzY3JpYmVTZWNyZXRSZXNwb25zZSQgPSBleHBvcnRzLkRlc2NyaWJlU2VjcmV0UmVxdWVzdCQgPSBleHBvcnRzLkRlbGV0ZVNlY3JldFJlc3BvbnNlJCA9IGV4cG9ydHMuRGVsZXRlU2VjcmV0UmVxdWVzdCQgPSBleHBvcnRzLkRlbGV0ZVJlc291cmNlUG9saWN5UmVzcG9uc2UkID0gZXhwb3J0cy5EZWxldGVSZXNvdXJjZVBvbGljeVJlcXVlc3QkID0gZXhwb3J0cy5DcmVhdGVTZWNyZXRSZXNwb25zZSQgPSBleHBvcnRzLkNyZWF0ZVNlY3JldFJlcXVlc3QkID0gZXhwb3J0cy5DYW5jZWxSb3RhdGVTZWNyZXRSZXNwb25zZSQgPSBleHBvcnRzLkNhbmNlbFJvdGF0ZVNlY3JldFJlcXVlc3QkID0gZXhwb3J0cy5CYXRjaEdldFNlY3JldFZhbHVlUmVzcG9uc2UkID0gZXhwb3J0cy5CYXRjaEdldFNlY3JldFZhbHVlUmVxdWVzdCQgPSBleHBvcnRzLkFQSUVycm9yVHlwZSQgPSBleHBvcnRzLmVycm9yVHlwZVJlZ2lzdHJpZXMgPSBleHBvcnRzLlJlc291cmNlTm90Rm91bmRFeGNlcHRpb24kID0gZXhwb3J0cy5SZXNvdXJjZUV4aXN0c0V4Y2VwdGlvbiQgPSBleHBvcnRzLlB1YmxpY1BvbGljeUV4Y2VwdGlvbiQgPSBleHBvcnRzLlByZWNvbmRpdGlvbk5vdE1ldEV4Y2VwdGlvbiQgPSBleHBvcnRzLk1hbGZvcm1lZFBvbGljeURvY3VtZW50RXhjZXB0aW9uJCA9IGV4cG9ydHMuTGltaXRFeGNlZWRlZEV4Y2VwdGlvbiQgPSBleHBvcnRzLkludmFsaWRSZXF1ZXN0RXhjZXB0aW9uJCA9IGV4cG9ydHMuSW52YWxpZFBhcmFtZXRlckV4Y2VwdGlvbiQgPSBleHBvcnRzLkludmFsaWROZXh0VG9rZW5FeGNlcHRpb24kID0gZXhwb3J0cy5JbnRlcm5hbFNlcnZpY2VFcnJvciQgPSBleHBvcnRzLkVuY3J5cHRpb25GYWlsdXJlJCA9IGV4cG9ydHMuRGVjcnlwdGlvbkZhaWx1cmUkID0gZXhwb3J0cy5TZWNyZXRzTWFuYWdlclNlcnZpY2VFeGNlcHRpb24kID0gdm9pZCAwO1xuZXhwb3J0cy5WYWxpZGF0ZVJlc291cmNlUG9saWN5JCA9IGV4cG9ydHMuVXBkYXRlU2VjcmV0VmVyc2lvblN0YWdlJCA9IGV4cG9ydHMuVXBkYXRlU2VjcmV0JCA9IGV4cG9ydHMuVW50YWdSZXNvdXJjZSQgPSBleHBvcnRzLlRhZ1Jlc291cmNlJCA9IGV4cG9ydHMuU3RvcFJlcGxpY2F0aW9uVG9SZXBsaWNhJCA9IGV4cG9ydHMuUm90YXRlU2VjcmV0JCA9IGV4cG9ydHMuUmVzdG9yZVNlY3JldCQgPSBleHBvcnRzLlJlcGxpY2F0ZVNlY3JldFRvUmVnaW9ucyQgPSBleHBvcnRzLlJlbW92ZVJlZ2lvbnNGcm9tUmVwbGljYXRpb24kID0gZXhwb3J0cy5QdXRTZWNyZXRWYWx1ZSQgPSBleHBvcnRzLlB1dFJlc291cmNlUG9saWN5JCA9IGV4cG9ydHMuTGlzdFNlY3JldFZlcnNpb25JZHMkID0gZXhwb3J0cy5MaXN0U2VjcmV0cyQgPSBleHBvcnRzLkdldFNlY3JldFZhbHVlJCA9IGV4cG9ydHMuR2V0UmVzb3VyY2VQb2xpY3kkID0gZXhwb3J0cy5HZXRSYW5kb21QYXNzd29yZCQgPSBleHBvcnRzLkRlc2NyaWJlU2VjcmV0JCA9IGV4cG9ydHMuRGVsZXRlU2VjcmV0JCA9IGV4cG9ydHMuRGVsZXRlUmVzb3VyY2VQb2xpY3kkID0gZXhwb3J0cy5DcmVhdGVTZWNyZXQkID0gZXhwb3J0cy5DYW5jZWxSb3RhdGVTZWNyZXQkID0gZXhwb3J0cy5CYXRjaEdldFNlY3JldFZhbHVlJCA9IGV4cG9ydHMuVmFsaWRhdGlvbkVycm9yc0VudHJ5JCA9IGV4cG9ydHMuVmFsaWRhdGVSZXNvdXJjZVBvbGljeVJlc3BvbnNlJCA9IGV4cG9ydHMuVmFsaWRhdGVSZXNvdXJjZVBvbGljeVJlcXVlc3QkID0gZXhwb3J0cy5VcGRhdGVTZWNyZXRWZXJzaW9uU3RhZ2VSZXNwb25zZSQgPSBleHBvcnRzLlVwZGF0ZVNlY3JldFZlcnNpb25TdGFnZVJlcXVlc3QkID0gZXhwb3J0cy5VcGRhdGVTZWNyZXRSZXNwb25zZSQgPSBleHBvcnRzLlVwZGF0ZVNlY3JldFJlcXVlc3QkID0gZXhwb3J0cy5VbnRhZ1Jlc291cmNlUmVxdWVzdCQgPSBleHBvcnRzLlRhZ1Jlc291cmNlUmVxdWVzdCQgPSBleHBvcnRzLlRhZyQgPSBleHBvcnRzLlN0b3BSZXBsaWNhdGlvblRvUmVwbGljYVJlc3BvbnNlJCA9IGV4cG9ydHMuU3RvcFJlcGxpY2F0aW9uVG9SZXBsaWNhUmVxdWVzdCQgPSBleHBvcnRzLlNlY3JldFZlcnNpb25zTGlzdEVudHJ5JCA9IGV4cG9ydHMuU2VjcmV0VmFsdWVFbnRyeSQgPSBleHBvcnRzLlNlY3JldExpc3RFbnRyeSQgPSBleHBvcnRzLlJvdGF0aW9uUnVsZXNUeXBlJCA9IGV4cG9ydHMuUm90YXRlU2VjcmV0UmVzcG9uc2UkID0gZXhwb3J0cy5Sb3RhdGVTZWNyZXRSZXF1ZXN0JCA9IGV4cG9ydHMuUmVzdG9yZVNlY3JldFJlc3BvbnNlJCA9IHZvaWQgMDtcbmNvbnN0IF9BQUQgPSBcIkF1dG9tYXRpY2FsbHlBZnRlckRheXNcIjtcbmNvbnN0IF9BUElFTFQgPSBcIkFQSUVycm9yTGlzdFR5cGVcIjtcbmNvbnN0IF9BUElFVCA9IFwiQVBJRXJyb3JUeXBlXCI7XG5jb25zdCBfQVJOID0gXCJBUk5cIjtcbmNvbnN0IF9BUlIgPSBcIkFkZFJlcGxpY2FSZWdpb25zXCI7XG5jb25zdCBfQVJSTFQgPSBcIkFkZFJlcGxpY2FSZWdpb25MaXN0VHlwZVwiO1xuY29uc3QgX0JHU1YgPSBcIkJhdGNoR2V0U2VjcmV0VmFsdWVcIjtcbmNvbnN0IF9CR1NWUiA9IFwiQmF0Y2hHZXRTZWNyZXRWYWx1ZVJlcXVlc3RcIjtcbmNvbnN0IF9CR1NWUmEgPSBcIkJhdGNoR2V0U2VjcmV0VmFsdWVSZXNwb25zZVwiO1xuY29uc3QgX0JQUCA9IFwiQmxvY2tQdWJsaWNQb2xpY3lcIjtcbmNvbnN0IF9DRCA9IFwiQ3JlYXRlZERhdGVcIjtcbmNvbnN0IF9DTiA9IFwiQ2hlY2tOYW1lXCI7XG5jb25zdCBfQ1JTID0gXCJDYW5jZWxSb3RhdGVTZWNyZXRcIjtcbmNvbnN0IF9DUlNSID0gXCJDYW5jZWxSb3RhdGVTZWNyZXRSZXF1ZXN0XCI7XG5jb25zdCBfQ1JTUmEgPSBcIkNhbmNlbFJvdGF0ZVNlY3JldFJlc3BvbnNlXCI7XG5jb25zdCBfQ1JUID0gXCJDbGllbnRSZXF1ZXN0VG9rZW5cIjtcbmNvbnN0IF9DUyA9IFwiQ3JlYXRlU2VjcmV0XCI7XG5jb25zdCBfQ1NSID0gXCJDcmVhdGVTZWNyZXRSZXF1ZXN0XCI7XG5jb25zdCBfQ1NSciA9IFwiQ3JlYXRlU2VjcmV0UmVzcG9uc2VcIjtcbmNvbnN0IF9EID0gXCJEZXNjcmlwdGlvblwiO1xuY29uc3QgX0REID0gXCJEZWxldGlvbkRhdGVcIjtcbmNvbnN0IF9ERGUgPSBcIkRlbGV0ZWREYXRlXCI7XG5jb25zdCBfREYgPSBcIkRlY3J5cHRpb25GYWlsdXJlXCI7XG5jb25zdCBfRFJQID0gXCJEZWxldGVSZXNvdXJjZVBvbGljeVwiO1xuY29uc3QgX0RSUFIgPSBcIkRlbGV0ZVJlc291cmNlUG9saWN5UmVxdWVzdFwiO1xuY29uc3QgX0RSUFJlID0gXCJEZWxldGVSZXNvdXJjZVBvbGljeVJlc3BvbnNlXCI7XG5jb25zdCBfRFMgPSBcIkRlbGV0ZVNlY3JldFwiO1xuY29uc3QgX0RTUiA9IFwiRGVsZXRlU2VjcmV0UmVxdWVzdFwiO1xuY29uc3QgX0RTUmUgPSBcIkRlbGV0ZVNlY3JldFJlc3BvbnNlXCI7XG5jb25zdCBfRFNSZXMgPSBcIkRlc2NyaWJlU2VjcmV0UmVxdWVzdFwiO1xuY29uc3QgX0RTUmVzYyA9IFwiRGVzY3JpYmVTZWNyZXRSZXNwb25zZVwiO1xuY29uc3QgX0RTZSA9IFwiRGVzY3JpYmVTZWNyZXRcIjtcbmNvbnN0IF9EdSA9IFwiRHVyYXRpb25cIjtcbmNvbnN0IF9FID0gXCJFcnJvcnNcIjtcbmNvbnN0IF9FQyA9IFwiRXJyb3JDb2RlXCI7XG5jb25zdCBfRUN4ID0gXCJFeGNsdWRlQ2hhcmFjdGVyc1wiO1xuY29uc3QgX0VGID0gXCJFbmNyeXB0aW9uRmFpbHVyZVwiO1xuY29uc3QgX0VMID0gXCJFeGNsdWRlTG93ZXJjYXNlXCI7XG5jb25zdCBfRU0gPSBcIkVycm9yTWVzc2FnZVwiO1xuY29uc3QgX0VOID0gXCJFeGNsdWRlTnVtYmVyc1wiO1xuY29uc3QgX0VQID0gXCJFeGNsdWRlUHVuY3R1YXRpb25cIjtcbmNvbnN0IF9FU1JNID0gXCJFeHRlcm5hbFNlY3JldFJvdGF0aW9uTWV0YWRhdGFcIjtcbmNvbnN0IF9FU1JNSSA9IFwiRXh0ZXJuYWxTZWNyZXRSb3RhdGlvbk1ldGFkYXRhSXRlbVwiO1xuY29uc3QgX0VTUk1UID0gXCJFeHRlcm5hbFNlY3JldFJvdGF0aW9uTWV0YWRhdGFUeXBlXCI7XG5jb25zdCBfRVNSUkEgPSBcIkV4dGVybmFsU2VjcmV0Um90YXRpb25Sb2xlQXJuXCI7XG5jb25zdCBfRVUgPSBcIkV4Y2x1ZGVVcHBlcmNhc2VcIjtcbmNvbnN0IF9GID0gXCJGaWx0ZXJzXCI7XG5jb25zdCBfRkRXUiA9IFwiRm9yY2VEZWxldGVXaXRob3V0UmVjb3ZlcnlcIjtcbmNvbnN0IF9GTFQgPSBcIkZpbHRlcnNMaXN0VHlwZVwiO1xuY29uc3QgX0ZPUlMgPSBcIkZvcmNlT3ZlcndyaXRlUmVwbGljYVNlY3JldFwiO1xuY29uc3QgX0ZpID0gXCJGaWx0ZXJcIjtcbmNvbnN0IF9HUlAgPSBcIkdldFJhbmRvbVBhc3N3b3JkXCI7XG5jb25zdCBfR1JQUiA9IFwiR2V0UmFuZG9tUGFzc3dvcmRSZXF1ZXN0XCI7XG5jb25zdCBfR1JQUmUgPSBcIkdldFJhbmRvbVBhc3N3b3JkUmVzcG9uc2VcIjtcbmNvbnN0IF9HUlBSZXQgPSBcIkdldFJlc291cmNlUG9saWN5UmVxdWVzdFwiO1xuY29uc3QgX0dSUFJldGUgPSBcIkdldFJlc291cmNlUG9saWN5UmVzcG9uc2VcIjtcbmNvbnN0IF9HUlBlID0gXCJHZXRSZXNvdXJjZVBvbGljeVwiO1xuY29uc3QgX0dTViA9IFwiR2V0U2VjcmV0VmFsdWVcIjtcbmNvbnN0IF9HU1ZSID0gXCJHZXRTZWNyZXRWYWx1ZVJlcXVlc3RcIjtcbmNvbnN0IF9HU1ZSZSA9IFwiR2V0U2VjcmV0VmFsdWVSZXNwb25zZVwiO1xuY29uc3QgX0lEID0gXCJJbmNsdWRlRGVwcmVjYXRlZFwiO1xuY29uc3QgX0lOVEUgPSBcIkludmFsaWROZXh0VG9rZW5FeGNlcHRpb25cIjtcbmNvbnN0IF9JUEQgPSBcIkluY2x1ZGVQbGFubmVkRGVsZXRpb25cIjtcbmNvbnN0IF9JUEUgPSBcIkludmFsaWRQYXJhbWV0ZXJFeGNlcHRpb25cIjtcbmNvbnN0IF9JUkUgPSBcIkludmFsaWRSZXF1ZXN0RXhjZXB0aW9uXCI7XG5jb25zdCBfSVMgPSBcIkluY2x1ZGVTcGFjZVwiO1xuY29uc3QgX0lTRSA9IFwiSW50ZXJuYWxTZXJ2aWNlRXJyb3JcIjtcbmNvbnN0IF9LID0gXCJLZXlcIjtcbmNvbnN0IF9LS0kgPSBcIkttc0tleUlkXCI7XG5jb25zdCBfS0tJbSA9IFwiS21zS2V5SWRzXCI7XG5jb25zdCBfTEFEID0gXCJMYXN0QWNjZXNzZWREYXRlXCI7XG5jb25zdCBfTENEID0gXCJMYXN0Q2hhbmdlZERhdGVcIjtcbmNvbnN0IF9MRUUgPSBcIkxpbWl0RXhjZWVkZWRFeGNlcHRpb25cIjtcbmNvbnN0IF9MUkQgPSBcIkxhc3RSb3RhdGVkRGF0ZVwiO1xuY29uc3QgX0xTID0gXCJMaXN0U2VjcmV0c1wiO1xuY29uc3QgX0xTUiA9IFwiTGlzdFNlY3JldHNSZXF1ZXN0XCI7XG5jb25zdCBfTFNSaSA9IFwiTGlzdFNlY3JldHNSZXNwb25zZVwiO1xuY29uc3QgX0xTVkkgPSBcIkxpc3RTZWNyZXRWZXJzaW9uSWRzXCI7XG5jb25zdCBfTFNWSVIgPSBcIkxpc3RTZWNyZXRWZXJzaW9uSWRzUmVxdWVzdFwiO1xuY29uc3QgX0xTVklSaSA9IFwiTGlzdFNlY3JldFZlcnNpb25JZHNSZXNwb25zZVwiO1xuY29uc3QgX00gPSBcIk1lc3NhZ2VcIjtcbmNvbnN0IF9NUERFID0gXCJNYWxmb3JtZWRQb2xpY3lEb2N1bWVudEV4Y2VwdGlvblwiO1xuY29uc3QgX01SID0gXCJNYXhSZXN1bHRzXCI7XG5jb25zdCBfTVRWSSA9IFwiTW92ZVRvVmVyc2lvbklkXCI7XG5jb25zdCBfTiA9IFwiTmFtZVwiO1xuY29uc3QgX05SRCA9IFwiTmV4dFJvdGF0aW9uRGF0ZVwiO1xuY29uc3QgX05UID0gXCJOZXh0VG9rZW5cIjtcbmNvbnN0IF9PUyA9IFwiT3duaW5nU2VydmljZVwiO1xuY29uc3QgX1BMID0gXCJQYXNzd29yZExlbmd0aFwiO1xuY29uc3QgX1BOTUUgPSBcIlByZWNvbmRpdGlvbk5vdE1ldEV4Y2VwdGlvblwiO1xuY29uc3QgX1BQRSA9IFwiUHVibGljUG9saWN5RXhjZXB0aW9uXCI7XG5jb25zdCBfUFIgPSBcIlByaW1hcnlSZWdpb25cIjtcbmNvbnN0IF9QUlAgPSBcIlB1dFJlc291cmNlUG9saWN5XCI7XG5jb25zdCBfUFJQUiA9IFwiUHV0UmVzb3VyY2VQb2xpY3lSZXF1ZXN0XCI7XG5jb25zdCBfUFJQUnUgPSBcIlB1dFJlc291cmNlUG9saWN5UmVzcG9uc2VcIjtcbmNvbnN0IF9QU1YgPSBcIlB1dFNlY3JldFZhbHVlXCI7XG5jb25zdCBfUFNWUiA9IFwiUHV0U2VjcmV0VmFsdWVSZXF1ZXN0XCI7XG5jb25zdCBfUFNWUnUgPSBcIlB1dFNlY3JldFZhbHVlUmVzcG9uc2VcIjtcbmNvbnN0IF9QVlAgPSBcIlBvbGljeVZhbGlkYXRpb25QYXNzZWRcIjtcbmNvbnN0IF9SID0gXCJSZWdpb25cIjtcbmNvbnN0IF9SRSA9IFwiUm90YXRpb25FbmFibGVkXCI7XG5jb25zdCBfUkVFID0gXCJSZXNvdXJjZUV4aXN0c0V4Y2VwdGlvblwiO1xuY29uc3QgX1JFSVQgPSBcIlJlcXVpcmVFYWNoSW5jbHVkZWRUeXBlXCI7XG5jb25zdCBfUkZWSSA9IFwiUmVtb3ZlRnJvbVZlcnNpb25JZFwiO1xuY29uc3QgX1JJID0gXCJSb3RhdGVJbW1lZGlhdGVseVwiO1xuY29uc3QgX1JMQVJOID0gXCJSb3RhdGlvbkxhbWJkYUFSTlwiO1xuY29uc3QgX1JORkUgPSBcIlJlc291cmNlTm90Rm91bmRFeGNlcHRpb25cIjtcbmNvbnN0IF9SUCA9IFwiUmFuZG9tUGFzc3dvcmRcIjtcbmNvbnN0IF9SUFQgPSBcIlJhbmRvbVBhc3N3b3JkVHlwZVwiO1xuY29uc3QgX1JQZSA9IFwiUmVzb3VyY2VQb2xpY3lcIjtcbmNvbnN0IF9SUiA9IFwiUm90YXRpb25SdWxlc1wiO1xuY29uc3QgX1JSRlIgPSBcIlJlbW92ZVJlZ2lvbnNGcm9tUmVwbGljYXRpb25cIjtcbmNvbnN0IF9SUkZSUiA9IFwiUmVtb3ZlUmVnaW9uc0Zyb21SZXBsaWNhdGlvblJlcXVlc3RcIjtcbmNvbnN0IF9SUkZSUmUgPSBcIlJlbW92ZVJlZ2lvbnNGcm9tUmVwbGljYXRpb25SZXNwb25zZVwiO1xuY29uc3QgX1JSUiA9IFwiUmVtb3ZlUmVwbGljYVJlZ2lvbnNcIjtcbmNvbnN0IF9SUlQgPSBcIlJlcGxpY2FSZWdpb25UeXBlXCI7XG5jb25zdCBfUlJUbyA9IFwiUm90YXRpb25SdWxlc1R5cGVcIjtcbmNvbnN0IF9SUyA9IFwiUmVwbGljYXRpb25TdGF0dXNcIjtcbmNvbnN0IF9SU0xUID0gXCJSZXBsaWNhdGlvblN0YXR1c0xpc3RUeXBlXCI7XG5jb25zdCBfUlNSID0gXCJSZXN0b3JlU2VjcmV0UmVxdWVzdFwiO1xuY29uc3QgX1JTUmUgPSBcIlJlc3RvcmVTZWNyZXRSZXNwb25zZVwiO1xuY29uc3QgX1JTUm8gPSBcIlJvdGF0ZVNlY3JldFJlcXVlc3RcIjtcbmNvbnN0IF9SU1JvdCA9IFwiUm90YXRlU2VjcmV0UmVzcG9uc2VcIjtcbmNvbnN0IF9SU1QgPSBcIlJlcGxpY2F0aW9uU3RhdHVzVHlwZVwiO1xuY29uc3QgX1JTVFIgPSBcIlJlcGxpY2F0ZVNlY3JldFRvUmVnaW9uc1wiO1xuY29uc3QgX1JTVFJSID0gXCJSZXBsaWNhdGVTZWNyZXRUb1JlZ2lvbnNSZXF1ZXN0XCI7XG5jb25zdCBfUlNUUlJlID0gXCJSZXBsaWNhdGVTZWNyZXRUb1JlZ2lvbnNSZXNwb25zZVwiO1xuY29uc3QgX1JTZSA9IFwiUmVzdG9yZVNlY3JldFwiO1xuY29uc3QgX1JTbyA9IFwiUm90YXRlU2VjcmV0XCI7XG5jb25zdCBfUlQgPSBcIlJvdGF0aW9uVG9rZW5cIjtcbmNvbnN0IF9SVFQgPSBcIlJvdGF0aW9uVG9rZW5UeXBlXCI7XG5jb25zdCBfUldJRCA9IFwiUmVjb3ZlcnlXaW5kb3dJbkRheXNcIjtcbmNvbnN0IF9TID0gXCJTdGF0dXNcIjtcbmNvbnN0IF9TQiA9IFwiU2VjcmV0QmluYXJ5XCI7XG5jb25zdCBfU0JUID0gXCJTZWNyZXRCaW5hcnlUeXBlXCI7XG5jb25zdCBfU0JvID0gXCJTb3J0QnlcIjtcbmNvbnN0IF9TRSA9IFwiU2NoZWR1bGVFeHByZXNzaW9uXCI7XG5jb25zdCBfU0kgPSBcIlNlY3JldElkXCI7XG5jb25zdCBfU0lMID0gXCJTZWNyZXRJZExpc3RcIjtcbmNvbnN0IF9TTCA9IFwiU2VjcmV0TGlzdFwiO1xuY29uc3QgX1NMRSA9IFwiU2VjcmV0TGlzdEVudHJ5XCI7XG5jb25zdCBfU0xUID0gXCJTZWNyZXRMaXN0VHlwZVwiO1xuY29uc3QgX1NNID0gXCJTdGF0dXNNZXNzYWdlXCI7XG5jb25zdCBfU08gPSBcIlNvcnRPcmRlclwiO1xuY29uc3QgX1NSVFIgPSBcIlN0b3BSZXBsaWNhdGlvblRvUmVwbGljYVwiO1xuY29uc3QgX1NSVFJSID0gXCJTdG9wUmVwbGljYXRpb25Ub1JlcGxpY2FSZXF1ZXN0XCI7XG5jb25zdCBfU1JUUlJ0ID0gXCJTdG9wUmVwbGljYXRpb25Ub1JlcGxpY2FSZXNwb25zZVwiO1xuY29uc3QgX1NTID0gXCJTZWNyZXRTdHJpbmdcIjtcbmNvbnN0IF9TU1QgPSBcIlNlY3JldFN0cmluZ1R5cGVcIjtcbmNvbnN0IF9TViA9IFwiU2VjcmV0VmFsdWVzXCI7XG5jb25zdCBfU1ZFID0gXCJTZWNyZXRWYWx1ZUVudHJ5XCI7XG5jb25zdCBfU1ZMRSA9IFwiU2VjcmV0VmVyc2lvbnNMaXN0RW50cnlcIjtcbmNvbnN0IF9TVkxUID0gXCJTZWNyZXRWZXJzaW9uc0xpc3RUeXBlXCI7XG5jb25zdCBfU1ZUID0gXCJTZWNyZXRWYWx1ZXNUeXBlXCI7XG5jb25zdCBfU1ZUUyA9IFwiU2VjcmV0VmVyc2lvbnNUb1N0YWdlc1wiO1xuY29uc3QgX1NWVFNNVCA9IFwiU2VjcmV0VmVyc2lvbnNUb1N0YWdlc01hcFR5cGVcIjtcbmNvbnN0IF9UID0gXCJUYWdzXCI7XG5jb25zdCBfVEsgPSBcIlRhZ0tleXNcIjtcbmNvbnN0IF9UTFQgPSBcIlRhZ0xpc3RUeXBlXCI7XG5jb25zdCBfVFIgPSBcIlRhZ1Jlc291cmNlXCI7XG5jb25zdCBfVFJSID0gXCJUYWdSZXNvdXJjZVJlcXVlc3RcIjtcbmNvbnN0IF9UYSA9IFwiVGFnXCI7XG5jb25zdCBfVHkgPSBcIlR5cGVcIjtcbmNvbnN0IF9VUiA9IFwiVW50YWdSZXNvdXJjZVwiO1xuY29uc3QgX1VSUiA9IFwiVW50YWdSZXNvdXJjZVJlcXVlc3RcIjtcbmNvbnN0IF9VUyA9IFwiVXBkYXRlU2VjcmV0XCI7XG5jb25zdCBfVVNSID0gXCJVcGRhdGVTZWNyZXRSZXF1ZXN0XCI7XG5jb25zdCBfVVNScCA9IFwiVXBkYXRlU2VjcmV0UmVzcG9uc2VcIjtcbmNvbnN0IF9VU1ZTID0gXCJVcGRhdGVTZWNyZXRWZXJzaW9uU3RhZ2VcIjtcbmNvbnN0IF9VU1ZTUiA9IFwiVXBkYXRlU2VjcmV0VmVyc2lvblN0YWdlUmVxdWVzdFwiO1xuY29uc3QgX1VTVlNScCA9IFwiVXBkYXRlU2VjcmV0VmVyc2lvblN0YWdlUmVzcG9uc2VcIjtcbmNvbnN0IF9WID0gXCJWYWx1ZVwiO1xuY29uc3QgX1ZFID0gXCJWYWxpZGF0aW9uRXJyb3JzXCI7XG5jb25zdCBfVkVFID0gXCJWYWxpZGF0aW9uRXJyb3JzRW50cnlcIjtcbmNvbnN0IF9WRVQgPSBcIlZhbGlkYXRpb25FcnJvcnNUeXBlXCI7XG5jb25zdCBfVkkgPSBcIlZlcnNpb25JZFwiO1xuY29uc3QgX1ZJVFMgPSBcIlZlcnNpb25JZHNUb1N0YWdlc1wiO1xuY29uc3QgX1ZSUCA9IFwiVmFsaWRhdGVSZXNvdXJjZVBvbGljeVwiO1xuY29uc3QgX1ZSUFIgPSBcIlZhbGlkYXRlUmVzb3VyY2VQb2xpY3lSZXF1ZXN0XCI7XG5jb25zdCBfVlJQUmEgPSBcIlZhbGlkYXRlUmVzb3VyY2VQb2xpY3lSZXNwb25zZVwiO1xuY29uc3QgX1ZTID0gXCJWZXJzaW9uU3RhZ2VcIjtcbmNvbnN0IF9WU2UgPSBcIlZlcnNpb25TdGFnZXNcIjtcbmNvbnN0IF9WYSA9IFwiVmFsdWVzXCI7XG5jb25zdCBfVmUgPSBcIlZlcnNpb25zXCI7XG5jb25zdCBfYyA9IFwiY2xpZW50XCI7XG5jb25zdCBfZSA9IFwiZXJyb3JcIjtcbmNvbnN0IF9zID0gXCJzbWl0aHkudHMuc2RrLnN5bnRoZXRpYy5jb20uYW1hem9uYXdzLnNlY3JldHNtYW5hZ2VyXCI7XG5jb25zdCBfc2UgPSBcInNlcnZlclwiO1xuY29uc3QgbjAgPSBcImNvbS5hbWF6b25hd3Muc2VjcmV0c21hbmFnZXJcIjtcbmNvbnN0IHNjaGVtYV8xID0gcmVxdWlyZShcIkBzbWl0aHkvY29yZS9zY2hlbWFcIik7XG5jb25zdCBlcnJvcnNfMSA9IHJlcXVpcmUoXCIuLi9tb2RlbHMvZXJyb3JzXCIpO1xuY29uc3QgU2VjcmV0c01hbmFnZXJTZXJ2aWNlRXhjZXB0aW9uXzEgPSByZXF1aXJlKFwiLi4vbW9kZWxzL1NlY3JldHNNYW5hZ2VyU2VydmljZUV4Y2VwdGlvblwiKTtcbmNvbnN0IF9zX3JlZ2lzdHJ5ID0gc2NoZW1hXzEuVHlwZVJlZ2lzdHJ5LmZvcihfcyk7XG5leHBvcnRzLlNlY3JldHNNYW5hZ2VyU2VydmljZUV4Y2VwdGlvbiQgPSBbLTMsIF9zLCBcIlNlY3JldHNNYW5hZ2VyU2VydmljZUV4Y2VwdGlvblwiLCAwLCBbXSwgW11dO1xuX3NfcmVnaXN0cnkucmVnaXN0ZXJFcnJvcihleHBvcnRzLlNlY3JldHNNYW5hZ2VyU2VydmljZUV4Y2VwdGlvbiQsIFNlY3JldHNNYW5hZ2VyU2VydmljZUV4Y2VwdGlvbl8xLlNlY3JldHNNYW5hZ2VyU2VydmljZUV4Y2VwdGlvbik7XG5jb25zdCBuMF9yZWdpc3RyeSA9IHNjaGVtYV8xLlR5cGVSZWdpc3RyeS5mb3IobjApO1xuZXhwb3J0cy5EZWNyeXB0aW9uRmFpbHVyZSQgPSBbLTMsIG4wLCBfREYsXG4gICAgeyBbX2VdOiBfYyB9LFxuICAgIFtfTV0sXG4gICAgWzBdXG5dO1xubjBfcmVnaXN0cnkucmVnaXN0ZXJFcnJvcihleHBvcnRzLkRlY3J5cHRpb25GYWlsdXJlJCwgZXJyb3JzXzEuRGVjcnlwdGlvbkZhaWx1cmUpO1xuZXhwb3J0cy5FbmNyeXB0aW9uRmFpbHVyZSQgPSBbLTMsIG4wLCBfRUYsXG4gICAgeyBbX2VdOiBfYyB9LFxuICAgIFtfTV0sXG4gICAgWzBdXG5dO1xubjBfcmVnaXN0cnkucmVnaXN0ZXJFcnJvcihleHBvcnRzLkVuY3J5cHRpb25GYWlsdXJlJCwgZXJyb3JzXzEuRW5jcnlwdGlvbkZhaWx1cmUpO1xuZXhwb3J0cy5JbnRlcm5hbFNlcnZpY2VFcnJvciQgPSBbLTMsIG4wLCBfSVNFLFxuICAgIHsgW19lXTogX3NlIH0sXG4gICAgW19NXSxcbiAgICBbMF1cbl07XG5uMF9yZWdpc3RyeS5yZWdpc3RlckVycm9yKGV4cG9ydHMuSW50ZXJuYWxTZXJ2aWNlRXJyb3IkLCBlcnJvcnNfMS5JbnRlcm5hbFNlcnZpY2VFcnJvcik7XG5leHBvcnRzLkludmFsaWROZXh0VG9rZW5FeGNlcHRpb24kID0gWy0zLCBuMCwgX0lOVEUsXG4gICAgeyBbX2VdOiBfYyB9LFxuICAgIFtfTV0sXG4gICAgWzBdXG5dO1xubjBfcmVnaXN0cnkucmVnaXN0ZXJFcnJvcihleHBvcnRzLkludmFsaWROZXh0VG9rZW5FeGNlcHRpb24kLCBlcnJvcnNfMS5JbnZhbGlkTmV4dFRva2VuRXhjZXB0aW9uKTtcbmV4cG9ydHMuSW52YWxpZFBhcmFtZXRlckV4Y2VwdGlvbiQgPSBbLTMsIG4wLCBfSVBFLFxuICAgIHsgW19lXTogX2MgfSxcbiAgICBbX01dLFxuICAgIFswXVxuXTtcbm4wX3JlZ2lzdHJ5LnJlZ2lzdGVyRXJyb3IoZXhwb3J0cy5JbnZhbGlkUGFyYW1ldGVyRXhjZXB0aW9uJCwgZXJyb3JzXzEuSW52YWxpZFBhcmFtZXRlckV4Y2VwdGlvbik7XG5leHBvcnRzLkludmFsaWRSZXF1ZXN0RXhjZXB0aW9uJCA9IFstMywgbjAsIF9JUkUsXG4gICAgeyBbX2VdOiBfYyB9LFxuICAgIFtfTV0sXG4gICAgWzBdXG5dO1xubjBfcmVnaXN0cnkucmVnaXN0ZXJFcnJvcihleHBvcnRzLkludmFsaWRSZXF1ZXN0RXhjZXB0aW9uJCwgZXJyb3JzXzEuSW52YWxpZFJlcXVlc3RFeGNlcHRpb24pO1xuZXhwb3J0cy5MaW1pdEV4Y2VlZGVkRXhjZXB0aW9uJCA9IFstMywgbjAsIF9MRUUsXG4gICAgeyBbX2VdOiBfYyB9LFxuICAgIFtfTV0sXG4gICAgWzBdXG5dO1xubjBfcmVnaXN0cnkucmVnaXN0ZXJFcnJvcihleHBvcnRzLkxpbWl0RXhjZWVkZWRFeGNlcHRpb24kLCBlcnJvcnNfMS5MaW1pdEV4Y2VlZGVkRXhjZXB0aW9uKTtcbmV4cG9ydHMuTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFeGNlcHRpb24kID0gWy0zLCBuMCwgX01QREUsXG4gICAgeyBbX2VdOiBfYyB9LFxuICAgIFtfTV0sXG4gICAgWzBdXG5dO1xubjBfcmVnaXN0cnkucmVnaXN0ZXJFcnJvcihleHBvcnRzLk1hbGZvcm1lZFBvbGljeURvY3VtZW50RXhjZXB0aW9uJCwgZXJyb3JzXzEuTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFeGNlcHRpb24pO1xuZXhwb3J0cy5QcmVjb25kaXRpb25Ob3RNZXRFeGNlcHRpb24kID0gWy0zLCBuMCwgX1BOTUUsXG4gICAgeyBbX2VdOiBfYyB9LFxuICAgIFtfTV0sXG4gICAgWzBdXG5dO1xubjBfcmVnaXN0cnkucmVnaXN0ZXJFcnJvcihleHBvcnRzLlByZWNvbmRpdGlvbk5vdE1ldEV4Y2VwdGlvbiQsIGVycm9yc18xLlByZWNvbmRpdGlvbk5vdE1ldEV4Y2VwdGlvbik7XG5leHBvcnRzLlB1YmxpY1BvbGljeUV4Y2VwdGlvbiQgPSBbLTMsIG4wLCBfUFBFLFxuICAgIHsgW19lXTogX2MgfSxcbiAgICBbX01dLFxuICAgIFswXVxuXTtcbm4wX3JlZ2lzdHJ5LnJlZ2lzdGVyRXJyb3IoZXhwb3J0cy5QdWJsaWNQb2xpY3lFeGNlcHRpb24kLCBlcnJvcnNfMS5QdWJsaWNQb2xpY3lFeGNlcHRpb24pO1xuZXhwb3J0cy5SZXNvdXJjZUV4aXN0c0V4Y2VwdGlvbiQgPSBbLTMsIG4wLCBfUkVFLFxuICAgIHsgW19lXTogX2MgfSxcbiAgICBbX01dLFxuICAgIFswXVxuXTtcbm4wX3JlZ2lzdHJ5LnJlZ2lzdGVyRXJyb3IoZXhwb3J0cy5SZXNvdXJjZUV4aXN0c0V4Y2VwdGlvbiQsIGVycm9yc18xLlJlc291cmNlRXhpc3RzRXhjZXB0aW9uKTtcbmV4cG9ydHMuUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvbiQgPSBbLTMsIG4wLCBfUk5GRSxcbiAgICB7IFtfZV06IF9jIH0sXG4gICAgW19NXSxcbiAgICBbMF1cbl07XG5uMF9yZWdpc3RyeS5yZWdpc3RlckVycm9yKGV4cG9ydHMuUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvbiQsIGVycm9yc18xLlJlc291cmNlTm90Rm91bmRFeGNlcHRpb24pO1xuZXhwb3J0cy5lcnJvclR5cGVSZWdpc3RyaWVzID0gW1xuICAgIF9zX3JlZ2lzdHJ5LFxuICAgIG4wX3JlZ2lzdHJ5LFxuXTtcbnZhciBSYW5kb21QYXNzd29yZFR5cGUgPSBbMCwgbjAsIF9SUFQsIDgsIDBdO1xudmFyIFJvdGF0aW9uVG9rZW5UeXBlID0gWzAsIG4wLCBfUlRULCA4LCAwXTtcbnZhciBTZWNyZXRCaW5hcnlUeXBlID0gWzAsIG4wLCBfU0JULCA4LCAyMV07XG52YXIgU2VjcmV0U3RyaW5nVHlwZSA9IFswLCBuMCwgX1NTVCwgOCwgMF07XG5leHBvcnRzLkFQSUVycm9yVHlwZSQgPSBbMywgbjAsIF9BUElFVCxcbiAgICAwLFxuICAgIFtfU0ksIF9FQywgX01dLFxuICAgIFswLCAwLCAwXVxuXTtcbmV4cG9ydHMuQmF0Y2hHZXRTZWNyZXRWYWx1ZVJlcXVlc3QkID0gWzMsIG4wLCBfQkdTVlIsXG4gICAgMCxcbiAgICBbX1NJTCwgX0YsIF9NUiwgX05UXSxcbiAgICBbNjQgfCAwLCAoKSA9PiBGaWx0ZXJzTGlzdFR5cGUsIDEsIDBdXG5dO1xuZXhwb3J0cy5CYXRjaEdldFNlY3JldFZhbHVlUmVzcG9uc2UkID0gWzMsIG4wLCBfQkdTVlJhLFxuICAgIDAsXG4gICAgW19TViwgX05ULCBfRV0sXG4gICAgW1soKSA9PiBTZWNyZXRWYWx1ZXNUeXBlLCAwXSwgMCwgKCkgPT4gQVBJRXJyb3JMaXN0VHlwZV1cbl07XG5leHBvcnRzLkNhbmNlbFJvdGF0ZVNlY3JldFJlcXVlc3QkID0gWzMsIG4wLCBfQ1JTUixcbiAgICAwLFxuICAgIFtfU0ldLFxuICAgIFswXSwgMVxuXTtcbmV4cG9ydHMuQ2FuY2VsUm90YXRlU2VjcmV0UmVzcG9uc2UkID0gWzMsIG4wLCBfQ1JTUmEsXG4gICAgMCxcbiAgICBbX0FSTiwgX04sIF9WSV0sXG4gICAgWzAsIDAsIDBdXG5dO1xuZXhwb3J0cy5DcmVhdGVTZWNyZXRSZXF1ZXN0JCA9IFszLCBuMCwgX0NTUixcbiAgICAwLFxuICAgIFtfTiwgX0NSVCwgX0QsIF9LS0ksIF9TQiwgX1NTLCBfVCwgX0FSUiwgX0ZPUlMsIF9UeV0sXG4gICAgWzAsIFswLCA0XSwgMCwgMCwgWygpID0+IFNlY3JldEJpbmFyeVR5cGUsIDBdLCBbKCkgPT4gU2VjcmV0U3RyaW5nVHlwZSwgMF0sICgpID0+IFRhZ0xpc3RUeXBlLCAoKSA9PiBBZGRSZXBsaWNhUmVnaW9uTGlzdFR5cGUsIDIsIDBdLCAxXG5dO1xuZXhwb3J0cy5DcmVhdGVTZWNyZXRSZXNwb25zZSQgPSBbMywgbjAsIF9DU1JyLFxuICAgIDAsXG4gICAgW19BUk4sIF9OLCBfVkksIF9SU10sXG4gICAgWzAsIDAsIDAsICgpID0+IFJlcGxpY2F0aW9uU3RhdHVzTGlzdFR5cGVdXG5dO1xuZXhwb3J0cy5EZWxldGVSZXNvdXJjZVBvbGljeVJlcXVlc3QkID0gWzMsIG4wLCBfRFJQUixcbiAgICAwLFxuICAgIFtfU0ldLFxuICAgIFswXSwgMVxuXTtcbmV4cG9ydHMuRGVsZXRlUmVzb3VyY2VQb2xpY3lSZXNwb25zZSQgPSBbMywgbjAsIF9EUlBSZSxcbiAgICAwLFxuICAgIFtfQVJOLCBfTl0sXG4gICAgWzAsIDBdXG5dO1xuZXhwb3J0cy5EZWxldGVTZWNyZXRSZXF1ZXN0JCA9IFszLCBuMCwgX0RTUixcbiAgICAwLFxuICAgIFtfU0ksIF9SV0lELCBfRkRXUl0sXG4gICAgWzAsIDEsIDJdLCAxXG5dO1xuZXhwb3J0cy5EZWxldGVTZWNyZXRSZXNwb25zZSQgPSBbMywgbjAsIF9EU1JlLFxuICAgIDAsXG4gICAgW19BUk4sIF9OLCBfRERdLFxuICAgIFswLCAwLCA0XVxuXTtcbmV4cG9ydHMuRGVzY3JpYmVTZWNyZXRSZXF1ZXN0JCA9IFszLCBuMCwgX0RTUmVzLFxuICAgIDAsXG4gICAgW19TSV0sXG4gICAgWzBdLCAxXG5dO1xuZXhwb3J0cy5EZXNjcmliZVNlY3JldFJlc3BvbnNlJCA9IFszLCBuMCwgX0RTUmVzYyxcbiAgICAwLFxuICAgIFtfQVJOLCBfTiwgX1R5LCBfRCwgX0tLSSwgX1JFLCBfUkxBUk4sIF9SUiwgX0VTUk0sIF9FU1JSQSwgX0xSRCwgX0xDRCwgX0xBRCwgX0REZSwgX05SRCwgX1QsIF9WSVRTLCBfT1MsIF9DRCwgX1BSLCBfUlNdLFxuICAgIFswLCAwLCAwLCAwLCAwLCAyLCAwLCAoKSA9PiBleHBvcnRzLlJvdGF0aW9uUnVsZXNUeXBlJCwgKCkgPT4gRXh0ZXJuYWxTZWNyZXRSb3RhdGlvbk1ldGFkYXRhVHlwZSwgMCwgNCwgNCwgNCwgNCwgNCwgKCkgPT4gVGFnTGlzdFR5cGUsIFsyLCBuMCwgX1NWVFNNVCwgMCwgMCwgNjQgfCAwXSwgMCwgNCwgMCwgKCkgPT4gUmVwbGljYXRpb25TdGF0dXNMaXN0VHlwZV1cbl07XG5leHBvcnRzLkV4dGVybmFsU2VjcmV0Um90YXRpb25NZXRhZGF0YUl0ZW0kID0gWzMsIG4wLCBfRVNSTUksXG4gICAgMCxcbiAgICBbX0ssIF9WXSxcbiAgICBbMCwgMF1cbl07XG5leHBvcnRzLkZpbHRlciQgPSBbMywgbjAsIF9GaSxcbiAgICAwLFxuICAgIFtfSywgX1ZhXSxcbiAgICBbMCwgNjQgfCAwXVxuXTtcbmV4cG9ydHMuR2V0UmFuZG9tUGFzc3dvcmRSZXF1ZXN0JCA9IFszLCBuMCwgX0dSUFIsXG4gICAgMCxcbiAgICBbX1BMLCBfRUN4LCBfRU4sIF9FUCwgX0VVLCBfRUwsIF9JUywgX1JFSVRdLFxuICAgIFsxLCAwLCAyLCAyLCAyLCAyLCAyLCAyXVxuXTtcbmV4cG9ydHMuR2V0UmFuZG9tUGFzc3dvcmRSZXNwb25zZSQgPSBbMywgbjAsIF9HUlBSZSxcbiAgICAwLFxuICAgIFtfUlBdLFxuICAgIFtbKCkgPT4gUmFuZG9tUGFzc3dvcmRUeXBlLCAwXV1cbl07XG5leHBvcnRzLkdldFJlc291cmNlUG9saWN5UmVxdWVzdCQgPSBbMywgbjAsIF9HUlBSZXQsXG4gICAgMCxcbiAgICBbX1NJXSxcbiAgICBbMF0sIDFcbl07XG5leHBvcnRzLkdldFJlc291cmNlUG9saWN5UmVzcG9uc2UkID0gWzMsIG4wLCBfR1JQUmV0ZSxcbiAgICAwLFxuICAgIFtfQVJOLCBfTiwgX1JQZV0sXG4gICAgWzAsIDAsIDBdXG5dO1xuZXhwb3J0cy5HZXRTZWNyZXRWYWx1ZVJlcXVlc3QkID0gWzMsIG4wLCBfR1NWUixcbiAgICAwLFxuICAgIFtfU0ksIF9WSSwgX1ZTXSxcbiAgICBbMCwgMCwgMF0sIDFcbl07XG5leHBvcnRzLkdldFNlY3JldFZhbHVlUmVzcG9uc2UkID0gWzMsIG4wLCBfR1NWUmUsXG4gICAgMCxcbiAgICBbX0FSTiwgX04sIF9WSSwgX1NCLCBfU1MsIF9WU2UsIF9DRF0sXG4gICAgWzAsIDAsIDAsIFsoKSA9PiBTZWNyZXRCaW5hcnlUeXBlLCAwXSwgWygpID0+IFNlY3JldFN0cmluZ1R5cGUsIDBdLCA2NCB8IDAsIDRdXG5dO1xuZXhwb3J0cy5MaXN0U2VjcmV0c1JlcXVlc3QkID0gWzMsIG4wLCBfTFNSLFxuICAgIDAsXG4gICAgW19JUEQsIF9NUiwgX05ULCBfRiwgX1NPLCBfU0JvXSxcbiAgICBbMiwgMSwgMCwgKCkgPT4gRmlsdGVyc0xpc3RUeXBlLCAwLCAwXVxuXTtcbmV4cG9ydHMuTGlzdFNlY3JldHNSZXNwb25zZSQgPSBbMywgbjAsIF9MU1JpLFxuICAgIDAsXG4gICAgW19TTCwgX05UXSxcbiAgICBbKCkgPT4gU2VjcmV0TGlzdFR5cGUsIDBdXG5dO1xuZXhwb3J0cy5MaXN0U2VjcmV0VmVyc2lvbklkc1JlcXVlc3QkID0gWzMsIG4wLCBfTFNWSVIsXG4gICAgMCxcbiAgICBbX1NJLCBfTVIsIF9OVCwgX0lEXSxcbiAgICBbMCwgMSwgMCwgMl0sIDFcbl07XG5leHBvcnRzLkxpc3RTZWNyZXRWZXJzaW9uSWRzUmVzcG9uc2UkID0gWzMsIG4wLCBfTFNWSVJpLFxuICAgIDAsXG4gICAgW19WZSwgX05ULCBfQVJOLCBfTl0sXG4gICAgWygpID0+IFNlY3JldFZlcnNpb25zTGlzdFR5cGUsIDAsIDAsIDBdXG5dO1xuZXhwb3J0cy5QdXRSZXNvdXJjZVBvbGljeVJlcXVlc3QkID0gWzMsIG4wLCBfUFJQUixcbiAgICAwLFxuICAgIFtfU0ksIF9SUGUsIF9CUFBdLFxuICAgIFswLCAwLCAyXSwgMlxuXTtcbmV4cG9ydHMuUHV0UmVzb3VyY2VQb2xpY3lSZXNwb25zZSQgPSBbMywgbjAsIF9QUlBSdSxcbiAgICAwLFxuICAgIFtfQVJOLCBfTl0sXG4gICAgWzAsIDBdXG5dO1xuZXhwb3J0cy5QdXRTZWNyZXRWYWx1ZVJlcXVlc3QkID0gWzMsIG4wLCBfUFNWUixcbiAgICAwLFxuICAgIFtfU0ksIF9DUlQsIF9TQiwgX1NTLCBfVlNlLCBfUlRdLFxuICAgIFswLCBbMCwgNF0sIFsoKSA9PiBTZWNyZXRCaW5hcnlUeXBlLCAwXSwgWygpID0+IFNlY3JldFN0cmluZ1R5cGUsIDBdLCA2NCB8IDAsIFsoKSA9PiBSb3RhdGlvblRva2VuVHlwZSwgMF1dLCAxXG5dO1xuZXhwb3J0cy5QdXRTZWNyZXRWYWx1ZVJlc3BvbnNlJCA9IFszLCBuMCwgX1BTVlJ1LFxuICAgIDAsXG4gICAgW19BUk4sIF9OLCBfVkksIF9WU2VdLFxuICAgIFswLCAwLCAwLCA2NCB8IDBdXG5dO1xuZXhwb3J0cy5SZW1vdmVSZWdpb25zRnJvbVJlcGxpY2F0aW9uUmVxdWVzdCQgPSBbMywgbjAsIF9SUkZSUixcbiAgICAwLFxuICAgIFtfU0ksIF9SUlJdLFxuICAgIFswLCA2NCB8IDBdLCAyXG5dO1xuZXhwb3J0cy5SZW1vdmVSZWdpb25zRnJvbVJlcGxpY2F0aW9uUmVzcG9uc2UkID0gWzMsIG4wLCBfUlJGUlJlLFxuICAgIDAsXG4gICAgW19BUk4sIF9SU10sXG4gICAgWzAsICgpID0+IFJlcGxpY2F0aW9uU3RhdHVzTGlzdFR5cGVdXG5dO1xuZXhwb3J0cy5SZXBsaWNhUmVnaW9uVHlwZSQgPSBbMywgbjAsIF9SUlQsXG4gICAgMCxcbiAgICBbX1IsIF9LS0ldLFxuICAgIFswLCAwXVxuXTtcbmV4cG9ydHMuUmVwbGljYXRlU2VjcmV0VG9SZWdpb25zUmVxdWVzdCQgPSBbMywgbjAsIF9SU1RSUixcbiAgICAwLFxuICAgIFtfU0ksIF9BUlIsIF9GT1JTXSxcbiAgICBbMCwgKCkgPT4gQWRkUmVwbGljYVJlZ2lvbkxpc3RUeXBlLCAyXSwgMlxuXTtcbmV4cG9ydHMuUmVwbGljYXRlU2VjcmV0VG9SZWdpb25zUmVzcG9uc2UkID0gWzMsIG4wLCBfUlNUUlJlLFxuICAgIDAsXG4gICAgW19BUk4sIF9SU10sXG4gICAgWzAsICgpID0+IFJlcGxpY2F0aW9uU3RhdHVzTGlzdFR5cGVdXG5dO1xuZXhwb3J0cy5SZXBsaWNhdGlvblN0YXR1c1R5cGUkID0gWzMsIG4wLCBfUlNULFxuICAgIDAsXG4gICAgW19SLCBfS0tJLCBfUywgX1NNLCBfTEFEXSxcbiAgICBbMCwgMCwgMCwgMCwgNF1cbl07XG5leHBvcnRzLlJlc3RvcmVTZWNyZXRSZXF1ZXN0JCA9IFszLCBuMCwgX1JTUixcbiAgICAwLFxuICAgIFtfU0ldLFxuICAgIFswXSwgMVxuXTtcbmV4cG9ydHMuUmVzdG9yZVNlY3JldFJlc3BvbnNlJCA9IFszLCBuMCwgX1JTUmUsXG4gICAgMCxcbiAgICBbX0FSTiwgX05dLFxuICAgIFswLCAwXVxuXTtcbmV4cG9ydHMuUm90YXRlU2VjcmV0UmVxdWVzdCQgPSBbMywgbjAsIF9SU1JvLFxuICAgIDAsXG4gICAgW19TSSwgX0NSVCwgX1JMQVJOLCBfUlIsIF9FU1JNLCBfRVNSUkEsIF9SSV0sXG4gICAgWzAsIFswLCA0XSwgMCwgKCkgPT4gZXhwb3J0cy5Sb3RhdGlvblJ1bGVzVHlwZSQsICgpID0+IEV4dGVybmFsU2VjcmV0Um90YXRpb25NZXRhZGF0YVR5cGUsIDAsIDJdLCAxXG5dO1xuZXhwb3J0cy5Sb3RhdGVTZWNyZXRSZXNwb25zZSQgPSBbMywgbjAsIF9SU1JvdCxcbiAgICAwLFxuICAgIFtfQVJOLCBfTiwgX1ZJXSxcbiAgICBbMCwgMCwgMF1cbl07XG5leHBvcnRzLlJvdGF0aW9uUnVsZXNUeXBlJCA9IFszLCBuMCwgX1JSVG8sXG4gICAgMCxcbiAgICBbX0FBRCwgX0R1LCBfU0VdLFxuICAgIFsxLCAwLCAwXVxuXTtcbmV4cG9ydHMuU2VjcmV0TGlzdEVudHJ5JCA9IFszLCBuMCwgX1NMRSxcbiAgICAwLFxuICAgIFtfQVJOLCBfTiwgX1R5LCBfRCwgX0tLSSwgX1JFLCBfUkxBUk4sIF9SUiwgX0VTUk0sIF9FU1JSQSwgX0xSRCwgX0xDRCwgX0xBRCwgX0REZSwgX05SRCwgX1QsIF9TVlRTLCBfT1MsIF9DRCwgX1BSXSxcbiAgICBbMCwgMCwgMCwgMCwgMCwgMiwgMCwgKCkgPT4gZXhwb3J0cy5Sb3RhdGlvblJ1bGVzVHlwZSQsICgpID0+IEV4dGVybmFsU2VjcmV0Um90YXRpb25NZXRhZGF0YVR5cGUsIDAsIDQsIDQsIDQsIDQsIDQsICgpID0+IFRhZ0xpc3RUeXBlLCBbMiwgbjAsIF9TVlRTTVQsIDAsIDAsIDY0IHwgMF0sIDAsIDQsIDBdXG5dO1xuZXhwb3J0cy5TZWNyZXRWYWx1ZUVudHJ5JCA9IFszLCBuMCwgX1NWRSxcbiAgICAwLFxuICAgIFtfQVJOLCBfTiwgX1ZJLCBfU0IsIF9TUywgX1ZTZSwgX0NEXSxcbiAgICBbMCwgMCwgMCwgWygpID0+IFNlY3JldEJpbmFyeVR5cGUsIDBdLCBbKCkgPT4gU2VjcmV0U3RyaW5nVHlwZSwgMF0sIDY0IHwgMCwgNF1cbl07XG5leHBvcnRzLlNlY3JldFZlcnNpb25zTGlzdEVudHJ5JCA9IFszLCBuMCwgX1NWTEUsXG4gICAgMCxcbiAgICBbX1ZJLCBfVlNlLCBfTEFELCBfQ0QsIF9LS0ltXSxcbiAgICBbMCwgNjQgfCAwLCA0LCA0LCA2NCB8IDBdXG5dO1xuZXhwb3J0cy5TdG9wUmVwbGljYXRpb25Ub1JlcGxpY2FSZXF1ZXN0JCA9IFszLCBuMCwgX1NSVFJSLFxuICAgIDAsXG4gICAgW19TSV0sXG4gICAgWzBdLCAxXG5dO1xuZXhwb3J0cy5TdG9wUmVwbGljYXRpb25Ub1JlcGxpY2FSZXNwb25zZSQgPSBbMywgbjAsIF9TUlRSUnQsXG4gICAgMCxcbiAgICBbX0FSTl0sXG4gICAgWzBdXG5dO1xuZXhwb3J0cy5UYWckID0gWzMsIG4wLCBfVGEsXG4gICAgMCxcbiAgICBbX0ssIF9WXSxcbiAgICBbMCwgMF1cbl07XG5leHBvcnRzLlRhZ1Jlc291cmNlUmVxdWVzdCQgPSBbMywgbjAsIF9UUlIsXG4gICAgMCxcbiAgICBbX1NJLCBfVF0sXG4gICAgWzAsICgpID0+IFRhZ0xpc3RUeXBlXSwgMlxuXTtcbmV4cG9ydHMuVW50YWdSZXNvdXJjZVJlcXVlc3QkID0gWzMsIG4wLCBfVVJSLFxuICAgIDAsXG4gICAgW19TSSwgX1RLXSxcbiAgICBbMCwgNjQgfCAwXSwgMlxuXTtcbmV4cG9ydHMuVXBkYXRlU2VjcmV0UmVxdWVzdCQgPSBbMywgbjAsIF9VU1IsXG4gICAgMCxcbiAgICBbX1NJLCBfQ1JULCBfRCwgX0tLSSwgX1NCLCBfU1MsIF9UeV0sXG4gICAgWzAsIFswLCA0XSwgMCwgMCwgWygpID0+IFNlY3JldEJpbmFyeVR5cGUsIDBdLCBbKCkgPT4gU2VjcmV0U3RyaW5nVHlwZSwgMF0sIDBdLCAxXG5dO1xuZXhwb3J0cy5VcGRhdGVTZWNyZXRSZXNwb25zZSQgPSBbMywgbjAsIF9VU1JwLFxuICAgIDAsXG4gICAgW19BUk4sIF9OLCBfVkldLFxuICAgIFswLCAwLCAwXVxuXTtcbmV4cG9ydHMuVXBkYXRlU2VjcmV0VmVyc2lvblN0YWdlUmVxdWVzdCQgPSBbMywgbjAsIF9VU1ZTUixcbiAgICAwLFxuICAgIFtfU0ksIF9WUywgX1JGVkksIF9NVFZJXSxcbiAgICBbMCwgMCwgMCwgMF0sIDJcbl07XG5leHBvcnRzLlVwZGF0ZVNlY3JldFZlcnNpb25TdGFnZVJlc3BvbnNlJCA9IFszLCBuMCwgX1VTVlNScCxcbiAgICAwLFxuICAgIFtfQVJOLCBfTl0sXG4gICAgWzAsIDBdXG5dO1xuZXhwb3J0cy5WYWxpZGF0ZVJlc291cmNlUG9saWN5UmVxdWVzdCQgPSBbMywgbjAsIF9WUlBSLFxuICAgIDAsXG4gICAgW19SUGUsIF9TSV0sXG4gICAgWzAsIDBdLCAxXG5dO1xuZXhwb3J0cy5WYWxpZGF0ZVJlc291cmNlUG9saWN5UmVzcG9uc2UkID0gWzMsIG4wLCBfVlJQUmEsXG4gICAgMCxcbiAgICBbX1BWUCwgX1ZFXSxcbiAgICBbMiwgKCkgPT4gVmFsaWRhdGlvbkVycm9yc1R5cGVdXG5dO1xuZXhwb3J0cy5WYWxpZGF0aW9uRXJyb3JzRW50cnkkID0gWzMsIG4wLCBfVkVFLFxuICAgIDAsXG4gICAgW19DTiwgX0VNXSxcbiAgICBbMCwgMF1cbl07XG52YXIgX19Vbml0ID0gXCJ1bml0XCI7XG52YXIgQWRkUmVwbGljYVJlZ2lvbkxpc3RUeXBlID0gWzEsIG4wLCBfQVJSTFQsXG4gICAgMCwgKCkgPT4gZXhwb3J0cy5SZXBsaWNhUmVnaW9uVHlwZSRcbl07XG52YXIgQVBJRXJyb3JMaXN0VHlwZSA9IFsxLCBuMCwgX0FQSUVMVCxcbiAgICAwLCAoKSA9PiBleHBvcnRzLkFQSUVycm9yVHlwZSRcbl07XG52YXIgRXh0ZXJuYWxTZWNyZXRSb3RhdGlvbk1ldGFkYXRhVHlwZSA9IFsxLCBuMCwgX0VTUk1ULFxuICAgIDAsICgpID0+IGV4cG9ydHMuRXh0ZXJuYWxTZWNyZXRSb3RhdGlvbk1ldGFkYXRhSXRlbSRcbl07XG52YXIgRmlsdGVyc0xpc3RUeXBlID0gWzEsIG4wLCBfRkxULFxuICAgIDAsICgpID0+IGV4cG9ydHMuRmlsdGVyJFxuXTtcbnZhciBGaWx0ZXJWYWx1ZXNTdHJpbmdMaXN0ID0gNjQgfCAwO1xudmFyIEttc0tleUlkTGlzdFR5cGUgPSA2NCB8IDA7XG52YXIgUmVtb3ZlUmVwbGljYVJlZ2lvbkxpc3RUeXBlID0gNjQgfCAwO1xudmFyIFJlcGxpY2F0aW9uU3RhdHVzTGlzdFR5cGUgPSBbMSwgbjAsIF9SU0xULFxuICAgIDAsICgpID0+IGV4cG9ydHMuUmVwbGljYXRpb25TdGF0dXNUeXBlJFxuXTtcbnZhciBTZWNyZXRJZExpc3RUeXBlID0gNjQgfCAwO1xudmFyIFNlY3JldExpc3RUeXBlID0gWzEsIG4wLCBfU0xULFxuICAgIDAsICgpID0+IGV4cG9ydHMuU2VjcmV0TGlzdEVudHJ5JFxuXTtcbnZhciBTZWNyZXRWYWx1ZXNUeXBlID0gWzEsIG4wLCBfU1ZULFxuICAgIDAsIFsoKSA9PiBleHBvcnRzLlNlY3JldFZhbHVlRW50cnkkLFxuICAgICAgICAwXVxuXTtcbnZhciBTZWNyZXRWZXJzaW9uc0xpc3RUeXBlID0gWzEsIG4wLCBfU1ZMVCxcbiAgICAwLCAoKSA9PiBleHBvcnRzLlNlY3JldFZlcnNpb25zTGlzdEVudHJ5JFxuXTtcbnZhciBTZWNyZXRWZXJzaW9uU3RhZ2VzVHlwZSA9IDY0IHwgMDtcbnZhciBUYWdLZXlMaXN0VHlwZSA9IDY0IHwgMDtcbnZhciBUYWdMaXN0VHlwZSA9IFsxLCBuMCwgX1RMVCxcbiAgICAwLCAoKSA9PiBleHBvcnRzLlRhZyRcbl07XG52YXIgVmFsaWRhdGlvbkVycm9yc1R5cGUgPSBbMSwgbjAsIF9WRVQsXG4gICAgMCwgKCkgPT4gZXhwb3J0cy5WYWxpZGF0aW9uRXJyb3JzRW50cnkkXG5dO1xudmFyIFNlY3JldFZlcnNpb25zVG9TdGFnZXNNYXBUeXBlID0gWzIsIG4wLCBfU1ZUU01ULFxuICAgIDAsIDAsIDY0IHwgMFxuXTtcbmV4cG9ydHMuQmF0Y2hHZXRTZWNyZXRWYWx1ZSQgPSBbOSwgbjAsIF9CR1NWLFxuICAgIDAsICgpID0+IGV4cG9ydHMuQmF0Y2hHZXRTZWNyZXRWYWx1ZVJlcXVlc3QkLCAoKSA9PiBleHBvcnRzLkJhdGNoR2V0U2VjcmV0VmFsdWVSZXNwb25zZSRcbl07XG5leHBvcnRzLkNhbmNlbFJvdGF0ZVNlY3JldCQgPSBbOSwgbjAsIF9DUlMsXG4gICAgMCwgKCkgPT4gZXhwb3J0cy5DYW5jZWxSb3RhdGVTZWNyZXRSZXF1ZXN0JCwgKCkgPT4gZXhwb3J0cy5DYW5jZWxSb3RhdGVTZWNyZXRSZXNwb25zZSRcbl07XG5leHBvcnRzLkNyZWF0ZVNlY3JldCQgPSBbOSwgbjAsIF9DUyxcbiAgICAwLCAoKSA9PiBleHBvcnRzLkNyZWF0ZVNlY3JldFJlcXVlc3QkLCAoKSA9PiBleHBvcnRzLkNyZWF0ZVNlY3JldFJlc3BvbnNlJFxuXTtcbmV4cG9ydHMuRGVsZXRlUmVzb3VyY2VQb2xpY3kkID0gWzksIG4wLCBfRFJQLFxuICAgIDAsICgpID0+IGV4cG9ydHMuRGVsZXRlUmVzb3VyY2VQb2xpY3lSZXF1ZXN0JCwgKCkgPT4gZXhwb3J0cy5EZWxldGVSZXNvdXJjZVBvbGljeVJlc3BvbnNlJFxuXTtcbmV4cG9ydHMuRGVsZXRlU2VjcmV0JCA9IFs5LCBuMCwgX0RTLFxuICAgIDAsICgpID0+IGV4cG9ydHMuRGVsZXRlU2VjcmV0UmVxdWVzdCQsICgpID0+IGV4cG9ydHMuRGVsZXRlU2VjcmV0UmVzcG9uc2UkXG5dO1xuZXhwb3J0cy5EZXNjcmliZVNlY3JldCQgPSBbOSwgbjAsIF9EU2UsXG4gICAgMCwgKCkgPT4gZXhwb3J0cy5EZXNjcmliZVNlY3JldFJlcXVlc3QkLCAoKSA9PiBleHBvcnRzLkRlc2NyaWJlU2VjcmV0UmVzcG9uc2UkXG5dO1xuZXhwb3J0cy5HZXRSYW5kb21QYXNzd29yZCQgPSBbOSwgbjAsIF9HUlAsXG4gICAgMCwgKCkgPT4gZXhwb3J0cy5HZXRSYW5kb21QYXNzd29yZFJlcXVlc3QkLCAoKSA9PiBleHBvcnRzLkdldFJhbmRvbVBhc3N3b3JkUmVzcG9uc2UkXG5dO1xuZXhwb3J0cy5HZXRSZXNvdXJjZVBvbGljeSQgPSBbOSwgbjAsIF9HUlBlLFxuICAgIDAsICgpID0+IGV4cG9ydHMuR2V0UmVzb3VyY2VQb2xpY3lSZXF1ZXN0JCwgKCkgPT4gZXhwb3J0cy5HZXRSZXNvdXJjZVBvbGljeVJlc3BvbnNlJFxuXTtcbmV4cG9ydHMuR2V0U2VjcmV0VmFsdWUkID0gWzksIG4wLCBfR1NWLFxuICAgIDAsICgpID0+IGV4cG9ydHMuR2V0U2VjcmV0VmFsdWVSZXF1ZXN0JCwgKCkgPT4gZXhwb3J0cy5HZXRTZWNyZXRWYWx1ZVJlc3BvbnNlJFxuXTtcbmV4cG9ydHMuTGlzdFNlY3JldHMkID0gWzksIG4wLCBfTFMsXG4gICAgMCwgKCkgPT4gZXhwb3J0cy5MaXN0U2VjcmV0c1JlcXVlc3QkLCAoKSA9PiBleHBvcnRzLkxpc3RTZWNyZXRzUmVzcG9uc2UkXG5dO1xuZXhwb3J0cy5MaXN0U2VjcmV0VmVyc2lvbklkcyQgPSBbOSwgbjAsIF9MU1ZJLFxuICAgIDAsICgpID0+IGV4cG9ydHMuTGlzdFNlY3JldFZlcnNpb25JZHNSZXF1ZXN0JCwgKCkgPT4gZXhwb3J0cy5MaXN0U2VjcmV0VmVyc2lvbklkc1Jlc3BvbnNlJFxuXTtcbmV4cG9ydHMuUHV0UmVzb3VyY2VQb2xpY3kkID0gWzksIG4wLCBfUFJQLFxuICAgIDAsICgpID0+IGV4cG9ydHMuUHV0UmVzb3VyY2VQb2xpY3lSZXF1ZXN0JCwgKCkgPT4gZXhwb3J0cy5QdXRSZXNvdXJjZVBvbGljeVJlc3BvbnNlJFxuXTtcbmV4cG9ydHMuUHV0U2VjcmV0VmFsdWUkID0gWzksIG4wLCBfUFNWLFxuICAgIDAsICgpID0+IGV4cG9ydHMuUHV0U2VjcmV0VmFsdWVSZXF1ZXN0JCwgKCkgPT4gZXhwb3J0cy5QdXRTZWNyZXRWYWx1ZVJlc3BvbnNlJFxuXTtcbmV4cG9ydHMuUmVtb3ZlUmVnaW9uc0Zyb21SZXBsaWNhdGlvbiQgPSBbOSwgbjAsIF9SUkZSLFxuICAgIDAsICgpID0+IGV4cG9ydHMuUmVtb3ZlUmVnaW9uc0Zyb21SZXBsaWNhdGlvblJlcXVlc3QkLCAoKSA9PiBleHBvcnRzLlJlbW92ZVJlZ2lvbnNGcm9tUmVwbGljYXRpb25SZXNwb25zZSRcbl07XG5leHBvcnRzLlJlcGxpY2F0ZVNlY3JldFRvUmVnaW9ucyQgPSBbOSwgbjAsIF9SU1RSLFxuICAgIDAsICgpID0+IGV4cG9ydHMuUmVwbGljYXRlU2VjcmV0VG9SZWdpb25zUmVxdWVzdCQsICgpID0+IGV4cG9ydHMuUmVwbGljYXRlU2VjcmV0VG9SZWdpb25zUmVzcG9uc2UkXG5dO1xuZXhwb3J0cy5SZXN0b3JlU2VjcmV0JCA9IFs5LCBuMCwgX1JTZSxcbiAgICAwLCAoKSA9PiBleHBvcnRzLlJlc3RvcmVTZWNyZXRSZXF1ZXN0JCwgKCkgPT4gZXhwb3J0cy5SZXN0b3JlU2VjcmV0UmVzcG9uc2UkXG5dO1xuZXhwb3J0cy5Sb3RhdGVTZWNyZXQkID0gWzksIG4wLCBfUlNvLFxuICAgIDAsICgpID0+IGV4cG9ydHMuUm90YXRlU2VjcmV0UmVxdWVzdCQsICgpID0+IGV4cG9ydHMuUm90YXRlU2VjcmV0UmVzcG9uc2UkXG5dO1xuZXhwb3J0cy5TdG9wUmVwbGljYXRpb25Ub1JlcGxpY2EkID0gWzksIG4wLCBfU1JUUixcbiAgICAwLCAoKSA9PiBleHBvcnRzLlN0b3BSZXBsaWNhdGlvblRvUmVwbGljYVJlcXVlc3QkLCAoKSA9PiBleHBvcnRzLlN0b3BSZXBsaWNhdGlvblRvUmVwbGljYVJlc3BvbnNlJFxuXTtcbmV4cG9ydHMuVGFnUmVzb3VyY2UkID0gWzksIG4wLCBfVFIsXG4gICAgMCwgKCkgPT4gZXhwb3J0cy5UYWdSZXNvdXJjZVJlcXVlc3QkLCAoKSA9PiBfX1VuaXRcbl07XG5leHBvcnRzLlVudGFnUmVzb3VyY2UkID0gWzksIG4wLCBfVVIsXG4gICAgMCwgKCkgPT4gZXhwb3J0cy5VbnRhZ1Jlc291cmNlUmVxdWVzdCQsICgpID0+IF9fVW5pdFxuXTtcbmV4cG9ydHMuVXBkYXRlU2VjcmV0JCA9IFs5LCBuMCwgX1VTLFxuICAgIDAsICgpID0+IGV4cG9ydHMuVXBkYXRlU2VjcmV0UmVxdWVzdCQsICgpID0+IGV4cG9ydHMuVXBkYXRlU2VjcmV0UmVzcG9uc2UkXG5dO1xuZXhwb3J0cy5VcGRhdGVTZWNyZXRWZXJzaW9uU3RhZ2UkID0gWzksIG4wLCBfVVNWUyxcbiAgICAwLCAoKSA9PiBleHBvcnRzLlVwZGF0ZVNlY3JldFZlcnNpb25TdGFnZVJlcXVlc3QkLCAoKSA9PiBleHBvcnRzLlVwZGF0ZVNlY3JldFZlcnNpb25TdGFnZVJlc3BvbnNlJFxuXTtcbmV4cG9ydHMuVmFsaWRhdGVSZXNvdXJjZVBvbGljeSQgPSBbOSwgbjAsIF9WUlAsXG4gICAgMCwgKCkgPT4gZXhwb3J0cy5WYWxpZGF0ZVJlc291cmNlUG9saWN5UmVxdWVzdCQsICgpID0+IGV4cG9ydHMuVmFsaWRhdGVSZXNvdXJjZVBvbGljeVJlc3BvbnNlJFxuXTtcbiIsICJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuZ2V0UnVudGltZUNvbmZpZyA9IHZvaWQgMDtcbmNvbnN0IGNvcmVfMSA9IHJlcXVpcmUoXCJAYXdzLXNkay9jb3JlXCIpO1xuY29uc3QgcHJvdG9jb2xzXzEgPSByZXF1aXJlKFwiQGF3cy1zZGsvY29yZS9wcm90b2NvbHNcIik7XG5jb25zdCBzbWl0aHlfY2xpZW50XzEgPSByZXF1aXJlKFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCIpO1xuY29uc3QgdXJsX3BhcnNlcl8xID0gcmVxdWlyZShcIkBzbWl0aHkvdXJsLXBhcnNlclwiKTtcbmNvbnN0IHV0aWxfYmFzZTY0XzEgPSByZXF1aXJlKFwiQHNtaXRoeS91dGlsLWJhc2U2NFwiKTtcbmNvbnN0IHV0aWxfdXRmOF8xID0gcmVxdWlyZShcIkBzbWl0aHkvdXRpbC11dGY4XCIpO1xuY29uc3QgaHR0cEF1dGhTY2hlbWVQcm92aWRlcl8xID0gcmVxdWlyZShcIi4vYXV0aC9odHRwQXV0aFNjaGVtZVByb3ZpZGVyXCIpO1xuY29uc3QgZW5kcG9pbnRSZXNvbHZlcl8xID0gcmVxdWlyZShcIi4vZW5kcG9pbnQvZW5kcG9pbnRSZXNvbHZlclwiKTtcbmNvbnN0IHNjaGVtYXNfMF8xID0gcmVxdWlyZShcIi4vc2NoZW1hcy9zY2hlbWFzXzBcIik7XG5jb25zdCBnZXRSdW50aW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIGFwaVZlcnNpb246IFwiMjAxNy0xMC0xN1wiLFxuICAgICAgICBiYXNlNjREZWNvZGVyOiBjb25maWc/LmJhc2U2NERlY29kZXIgPz8gdXRpbF9iYXNlNjRfMS5mcm9tQmFzZTY0LFxuICAgICAgICBiYXNlNjRFbmNvZGVyOiBjb25maWc/LmJhc2U2NEVuY29kZXIgPz8gdXRpbF9iYXNlNjRfMS50b0Jhc2U2NCxcbiAgICAgICAgZGlzYWJsZUhvc3RQcmVmaXg6IGNvbmZpZz8uZGlzYWJsZUhvc3RQcmVmaXggPz8gZmFsc2UsXG4gICAgICAgIGVuZHBvaW50UHJvdmlkZXI6IGNvbmZpZz8uZW5kcG9pbnRQcm92aWRlciA/PyBlbmRwb2ludFJlc29sdmVyXzEuZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIsXG4gICAgICAgIGV4dGVuc2lvbnM6IGNvbmZpZz8uZXh0ZW5zaW9ucyA/PyBbXSxcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVQcm92aWRlcjogY29uZmlnPy5odHRwQXV0aFNjaGVtZVByb3ZpZGVyID8/IGh0dHBBdXRoU2NoZW1lUHJvdmlkZXJfMS5kZWZhdWx0U2VjcmV0c01hbmFnZXJIdHRwQXV0aFNjaGVtZVByb3ZpZGVyLFxuICAgICAgICBodHRwQXV0aFNjaGVtZXM6IGNvbmZpZz8uaHR0cEF1dGhTY2hlbWVzID8/IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzY2hlbWVJZDogXCJhd3MuYXV0aCNzaWd2NFwiLFxuICAgICAgICAgICAgICAgIGlkZW50aXR5UHJvdmlkZXI6IChpcGMpID0+IGlwYy5nZXRJZGVudGl0eVByb3ZpZGVyKFwiYXdzLmF1dGgjc2lndjRcIiksXG4gICAgICAgICAgICAgICAgc2lnbmVyOiBuZXcgY29yZV8xLkF3c1Nka1NpZ1Y0U2lnbmVyKCksXG4gICAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBsb2dnZXI6IGNvbmZpZz8ubG9nZ2VyID8/IG5ldyBzbWl0aHlfY2xpZW50XzEuTm9PcExvZ2dlcigpLFxuICAgICAgICBwcm90b2NvbDogY29uZmlnPy5wcm90b2NvbCA/PyBwcm90b2NvbHNfMS5Bd3NKc29uMV8xUHJvdG9jb2wsXG4gICAgICAgIHByb3RvY29sU2V0dGluZ3M6IGNvbmZpZz8ucHJvdG9jb2xTZXR0aW5ncyA/PyB7XG4gICAgICAgICAgICBkZWZhdWx0TmFtZXNwYWNlOiBcImNvbS5hbWF6b25hd3Muc2VjcmV0c21hbmFnZXJcIixcbiAgICAgICAgICAgIGVycm9yVHlwZVJlZ2lzdHJpZXM6IHNjaGVtYXNfMF8xLmVycm9yVHlwZVJlZ2lzdHJpZXMsXG4gICAgICAgICAgICB2ZXJzaW9uOiBcIjIwMTctMTAtMTdcIixcbiAgICAgICAgICAgIHNlcnZpY2VUYXJnZXQ6IFwic2VjcmV0c21hbmFnZXJcIixcbiAgICAgICAgfSxcbiAgICAgICAgc2VydmljZUlkOiBjb25maWc/LnNlcnZpY2VJZCA/PyBcIlNlY3JldHMgTWFuYWdlclwiLFxuICAgICAgICB1cmxQYXJzZXI6IGNvbmZpZz8udXJsUGFyc2VyID8/IHVybF9wYXJzZXJfMS5wYXJzZVVybCxcbiAgICAgICAgdXRmOERlY29kZXI6IGNvbmZpZz8udXRmOERlY29kZXIgPz8gdXRpbF91dGY4XzEuZnJvbVV0ZjgsXG4gICAgICAgIHV0ZjhFbmNvZGVyOiBjb25maWc/LnV0ZjhFbmNvZGVyID8/IHV0aWxfdXRmOF8xLnRvVXRmOCxcbiAgICB9O1xufTtcbmV4cG9ydHMuZ2V0UnVudGltZUNvbmZpZyA9IGdldFJ1bnRpbWVDb25maWc7XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmdldFJ1bnRpbWVDb25maWcgPSB2b2lkIDA7XG5jb25zdCB0c2xpYl8xID0gcmVxdWlyZShcInRzbGliXCIpO1xuY29uc3QgcGFja2FnZV9qc29uXzEgPSB0c2xpYl8xLl9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi4vcGFja2FnZS5qc29uXCIpKTtcbmNvbnN0IGNvcmVfMSA9IHJlcXVpcmUoXCJAYXdzLXNkay9jb3JlXCIpO1xuY29uc3QgY3JlZGVudGlhbF9wcm92aWRlcl9ub2RlXzEgPSByZXF1aXJlKFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlXCIpO1xuY29uc3QgdXRpbF91c2VyX2FnZW50X25vZGVfMSA9IHJlcXVpcmUoXCJAYXdzLXNkay91dGlsLXVzZXItYWdlbnQtbm9kZVwiKTtcbmNvbnN0IGNvbmZpZ19yZXNvbHZlcl8xID0gcmVxdWlyZShcIkBzbWl0aHkvY29uZmlnLXJlc29sdmVyXCIpO1xuY29uc3QgaGFzaF9ub2RlXzEgPSByZXF1aXJlKFwiQHNtaXRoeS9oYXNoLW5vZGVcIik7XG5jb25zdCBtaWRkbGV3YXJlX3JldHJ5XzEgPSByZXF1aXJlKFwiQHNtaXRoeS9taWRkbGV3YXJlLXJldHJ5XCIpO1xuY29uc3Qgbm9kZV9jb25maWdfcHJvdmlkZXJfMSA9IHJlcXVpcmUoXCJAc21pdGh5L25vZGUtY29uZmlnLXByb3ZpZGVyXCIpO1xuY29uc3Qgbm9kZV9odHRwX2hhbmRsZXJfMSA9IHJlcXVpcmUoXCJAc21pdGh5L25vZGUtaHR0cC1oYW5kbGVyXCIpO1xuY29uc3Qgc21pdGh5X2NsaWVudF8xID0gcmVxdWlyZShcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiKTtcbmNvbnN0IHV0aWxfYm9keV9sZW5ndGhfbm9kZV8xID0gcmVxdWlyZShcIkBzbWl0aHkvdXRpbC1ib2R5LWxlbmd0aC1ub2RlXCIpO1xuY29uc3QgdXRpbF9kZWZhdWx0c19tb2RlX25vZGVfMSA9IHJlcXVpcmUoXCJAc21pdGh5L3V0aWwtZGVmYXVsdHMtbW9kZS1ub2RlXCIpO1xuY29uc3QgdXRpbF9yZXRyeV8xID0gcmVxdWlyZShcIkBzbWl0aHkvdXRpbC1yZXRyeVwiKTtcbmNvbnN0IHJ1bnRpbWVDb25maWdfc2hhcmVkXzEgPSByZXF1aXJlKFwiLi9ydW50aW1lQ29uZmlnLnNoYXJlZFwiKTtcbmNvbnN0IGdldFJ1bnRpbWVDb25maWcgPSAoY29uZmlnKSA9PiB7XG4gICAgKDAsIHNtaXRoeV9jbGllbnRfMS5lbWl0V2FybmluZ0lmVW5zdXBwb3J0ZWRWZXJzaW9uKShwcm9jZXNzLnZlcnNpb24pO1xuICAgIGNvbnN0IGRlZmF1bHRzTW9kZSA9ICgwLCB1dGlsX2RlZmF1bHRzX21vZGVfbm9kZV8xLnJlc29sdmVEZWZhdWx0c01vZGVDb25maWcpKGNvbmZpZyk7XG4gICAgY29uc3QgZGVmYXVsdENvbmZpZ1Byb3ZpZGVyID0gKCkgPT4gZGVmYXVsdHNNb2RlKCkudGhlbihzbWl0aHlfY2xpZW50XzEubG9hZENvbmZpZ3NGb3JEZWZhdWx0TW9kZSk7XG4gICAgY29uc3QgY2xpZW50U2hhcmVkVmFsdWVzID0gKDAsIHJ1bnRpbWVDb25maWdfc2hhcmVkXzEuZ2V0UnVudGltZUNvbmZpZykoY29uZmlnKTtcbiAgICAoMCwgY29yZV8xLmVtaXRXYXJuaW5nSWZVbnN1cHBvcnRlZFZlcnNpb24pKHByb2Nlc3MudmVyc2lvbik7XG4gICAgY29uc3QgbG9hZGVyQ29uZmlnID0ge1xuICAgICAgICBwcm9maWxlOiBjb25maWc/LnByb2ZpbGUsXG4gICAgICAgIGxvZ2dlcjogY2xpZW50U2hhcmVkVmFsdWVzLmxvZ2dlcixcbiAgICB9O1xuICAgIHJldHVybiB7XG4gICAgICAgIC4uLmNsaWVudFNoYXJlZFZhbHVlcyxcbiAgICAgICAgLi4uY29uZmlnLFxuICAgICAgICBydW50aW1lOiBcIm5vZGVcIixcbiAgICAgICAgZGVmYXVsdHNNb2RlLFxuICAgICAgICBhdXRoU2NoZW1lUHJlZmVyZW5jZTogY29uZmlnPy5hdXRoU2NoZW1lUHJlZmVyZW5jZSA/PyAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKShjb3JlXzEuTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX09QVElPTlMsIGxvYWRlckNvbmZpZyksXG4gICAgICAgIGJvZHlMZW5ndGhDaGVja2VyOiBjb25maWc/LmJvZHlMZW5ndGhDaGVja2VyID8/IHV0aWxfYm9keV9sZW5ndGhfbm9kZV8xLmNhbGN1bGF0ZUJvZHlMZW5ndGgsXG4gICAgICAgIGNyZWRlbnRpYWxEZWZhdWx0UHJvdmlkZXI6IGNvbmZpZz8uY3JlZGVudGlhbERlZmF1bHRQcm92aWRlciA/PyBjcmVkZW50aWFsX3Byb3ZpZGVyX25vZGVfMS5kZWZhdWx0UHJvdmlkZXIsXG4gICAgICAgIGRlZmF1bHRVc2VyQWdlbnRQcm92aWRlcjogY29uZmlnPy5kZWZhdWx0VXNlckFnZW50UHJvdmlkZXIgPz8gKDAsIHV0aWxfdXNlcl9hZ2VudF9ub2RlXzEuY3JlYXRlRGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyKSh7IHNlcnZpY2VJZDogY2xpZW50U2hhcmVkVmFsdWVzLnNlcnZpY2VJZCwgY2xpZW50VmVyc2lvbjogcGFja2FnZV9qc29uXzEuZGVmYXVsdC52ZXJzaW9uIH0pLFxuICAgICAgICBtYXhBdHRlbXB0czogY29uZmlnPy5tYXhBdHRlbXB0cyA/PyAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKShtaWRkbGV3YXJlX3JldHJ5XzEuTk9ERV9NQVhfQVRURU1QVF9DT05GSUdfT1BUSU9OUywgY29uZmlnKSxcbiAgICAgICAgcmVnaW9uOiBjb25maWc/LnJlZ2lvbiA/PyAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKShjb25maWdfcmVzb2x2ZXJfMS5OT0RFX1JFR0lPTl9DT05GSUdfT1BUSU9OUywgeyAuLi5jb25maWdfcmVzb2x2ZXJfMS5OT0RFX1JFR0lPTl9DT05GSUdfRklMRV9PUFRJT05TLCAuLi5sb2FkZXJDb25maWcgfSksXG4gICAgICAgIHJlcXVlc3RIYW5kbGVyOiBub2RlX2h0dHBfaGFuZGxlcl8xLk5vZGVIdHRwSGFuZGxlci5jcmVhdGUoY29uZmlnPy5yZXF1ZXN0SGFuZGxlciA/PyBkZWZhdWx0Q29uZmlnUHJvdmlkZXIpLFxuICAgICAgICByZXRyeU1vZGU6IGNvbmZpZz8ucmV0cnlNb2RlID8/XG4gICAgICAgICAgICAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKSh7XG4gICAgICAgICAgICAgICAgLi4ubWlkZGxld2FyZV9yZXRyeV8xLk5PREVfUkVUUllfTU9ERV9DT05GSUdfT1BUSU9OUyxcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiBhc3luYyAoKSA9PiAoYXdhaXQgZGVmYXVsdENvbmZpZ1Byb3ZpZGVyKCkpLnJldHJ5TW9kZSB8fCB1dGlsX3JldHJ5XzEuREVGQVVMVF9SRVRSWV9NT0RFLFxuICAgICAgICAgICAgfSwgY29uZmlnKSxcbiAgICAgICAgc2hhMjU2OiBjb25maWc/LnNoYTI1NiA/PyBoYXNoX25vZGVfMS5IYXNoLmJpbmQobnVsbCwgXCJzaGEyNTZcIiksXG4gICAgICAgIHN0cmVhbUNvbGxlY3RvcjogY29uZmlnPy5zdHJlYW1Db2xsZWN0b3IgPz8gbm9kZV9odHRwX2hhbmRsZXJfMS5zdHJlYW1Db2xsZWN0b3IsXG4gICAgICAgIHVzZUR1YWxzdGFja0VuZHBvaW50OiBjb25maWc/LnVzZUR1YWxzdGFja0VuZHBvaW50ID8/ICgwLCBub2RlX2NvbmZpZ19wcm92aWRlcl8xLmxvYWRDb25maWcpKGNvbmZpZ19yZXNvbHZlcl8xLk5PREVfVVNFX0RVQUxTVEFDS19FTkRQT0lOVF9DT05GSUdfT1BUSU9OUywgbG9hZGVyQ29uZmlnKSxcbiAgICAgICAgdXNlRmlwc0VuZHBvaW50OiBjb25maWc/LnVzZUZpcHNFbmRwb2ludCA/PyAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKShjb25maWdfcmVzb2x2ZXJfMS5OT0RFX1VTRV9GSVBTX0VORFBPSU5UX0NPTkZJR19PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgICAgICB1c2VyQWdlbnRBcHBJZDogY29uZmlnPy51c2VyQWdlbnRBcHBJZCA/PyAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKSh1dGlsX3VzZXJfYWdlbnRfbm9kZV8xLk5PREVfQVBQX0lEX0NPTkZJR19PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgIH07XG59O1xuZXhwb3J0cy5nZXRSdW50aW1lQ29uZmlnID0gZ2V0UnVudGltZUNvbmZpZztcbiIsICJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMud2FybmluZyA9IHZvaWQgMDtcbmV4cG9ydHMuc3RzUmVnaW9uRGVmYXVsdFJlc29sdmVyID0gc3RzUmVnaW9uRGVmYXVsdFJlc29sdmVyO1xuY29uc3QgY29uZmlnX3Jlc29sdmVyXzEgPSByZXF1aXJlKFwiQHNtaXRoeS9jb25maWctcmVzb2x2ZXJcIik7XG5jb25zdCBub2RlX2NvbmZpZ19wcm92aWRlcl8xID0gcmVxdWlyZShcIkBzbWl0aHkvbm9kZS1jb25maWctcHJvdmlkZXJcIik7XG5mdW5jdGlvbiBzdHNSZWdpb25EZWZhdWx0UmVzb2x2ZXIobG9hZGVyQ29uZmlnID0ge30pIHtcbiAgICByZXR1cm4gKDAsIG5vZGVfY29uZmlnX3Byb3ZpZGVyXzEubG9hZENvbmZpZykoe1xuICAgICAgICAuLi5jb25maWdfcmVzb2x2ZXJfMS5OT0RFX1JFR0lPTl9DT05GSUdfT1BUSU9OUyxcbiAgICAgICAgYXN5bmMgZGVmYXVsdCgpIHtcbiAgICAgICAgICAgIGlmICghZXhwb3J0cy53YXJuaW5nLnNpbGVuY2UpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oXCJAYXdzLXNkayAtIFdBUk4gLSBkZWZhdWx0IFNUUyByZWdpb24gb2YgdXMtZWFzdC0xIHVzZWQuIFNlZSBAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVycyBSRUFETUUgYW5kIHNldCBhIHJlZ2lvbiBleHBsaWNpdGx5LlwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBcInVzLWVhc3QtMVwiO1xuICAgICAgICB9LFxuICAgIH0sIHsgLi4uY29uZmlnX3Jlc29sdmVyXzEuTk9ERV9SRUdJT05fQ09ORklHX0ZJTEVfT1BUSU9OUywgLi4ubG9hZGVyQ29uZmlnIH0pO1xufVxuZXhwb3J0cy53YXJuaW5nID0ge1xuICAgIHNpbGVuY2U6IGZhbHNlLFxufTtcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBzdHNSZWdpb25EZWZhdWx0UmVzb2x2ZXIgPSByZXF1aXJlKCcuL3JlZ2lvbkNvbmZpZy9zdHNSZWdpb25EZWZhdWx0UmVzb2x2ZXInKTtcbnZhciBjb25maWdSZXNvbHZlciA9IHJlcXVpcmUoJ0BzbWl0aHkvY29uZmlnLXJlc29sdmVyJyk7XG5cbmNvbnN0IGdldEF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24gPSAocnVudGltZUNvbmZpZykgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIHNldFJlZ2lvbihyZWdpb24pIHtcbiAgICAgICAgICAgIHJ1bnRpbWVDb25maWcucmVnaW9uID0gcmVnaW9uO1xuICAgICAgICB9LFxuICAgICAgICByZWdpb24oKSB7XG4gICAgICAgICAgICByZXR1cm4gcnVudGltZUNvbmZpZy5yZWdpb247XG4gICAgICAgIH0sXG4gICAgfTtcbn07XG5jb25zdCByZXNvbHZlQXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiA9IChhd3NSZWdpb25FeHRlbnNpb25Db25maWd1cmF0aW9uKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcmVnaW9uOiBhd3NSZWdpb25FeHRlbnNpb25Db25maWd1cmF0aW9uLnJlZ2lvbigpLFxuICAgIH07XG59O1xuXG5leHBvcnRzLk5PREVfUkVHSU9OX0NPTkZJR19GSUxFX09QVElPTlMgPSBjb25maWdSZXNvbHZlci5OT0RFX1JFR0lPTl9DT05GSUdfRklMRV9PUFRJT05TO1xuZXhwb3J0cy5OT0RFX1JFR0lPTl9DT05GSUdfT1BUSU9OUyA9IGNvbmZpZ1Jlc29sdmVyLk5PREVfUkVHSU9OX0NPTkZJR19PUFRJT05TO1xuZXhwb3J0cy5SRUdJT05fRU5WX05BTUUgPSBjb25maWdSZXNvbHZlci5SRUdJT05fRU5WX05BTUU7XG5leHBvcnRzLlJFR0lPTl9JTklfTkFNRSA9IGNvbmZpZ1Jlc29sdmVyLlJFR0lPTl9JTklfTkFNRTtcbmV4cG9ydHMucmVzb2x2ZVJlZ2lvbkNvbmZpZyA9IGNvbmZpZ1Jlc29sdmVyLnJlc29sdmVSZWdpb25Db25maWc7XG5leHBvcnRzLmdldEF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24gPSBnZXRBd3NSZWdpb25FeHRlbnNpb25Db25maWd1cmF0aW9uO1xuZXhwb3J0cy5yZXNvbHZlQXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiA9IHJlc29sdmVBd3NSZWdpb25FeHRlbnNpb25Db25maWd1cmF0aW9uO1xuT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHN0c1JlZ2lvbkRlZmF1bHRSZXNvbHZlciwgJ19fcHJvdG9fXycpICYmXG4gICAgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChleHBvcnRzLCAnX19wcm90b19fJykgJiZcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fcHJvdG9fXycsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgdmFsdWU6IHN0c1JlZ2lvbkRlZmF1bHRSZXNvbHZlclsnX19wcm90b19fJ11cbiAgICB9KTtcblxuT2JqZWN0LmtleXMoc3RzUmVnaW9uRGVmYXVsdFJlc29sdmVyKS5mb3JFYWNoKGZ1bmN0aW9uIChrKSB7XG4gICAgaWYgKGsgIT09ICdkZWZhdWx0JyAmJiAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGV4cG9ydHMsIGspKSBleHBvcnRzW2tdID0gc3RzUmVnaW9uRGVmYXVsdFJlc29sdmVyW2tdO1xufSk7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgbWlkZGxld2FyZUhvc3RIZWFkZXIgPSByZXF1aXJlKCdAYXdzLXNkay9taWRkbGV3YXJlLWhvc3QtaGVhZGVyJyk7XG52YXIgbWlkZGxld2FyZUxvZ2dlciA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL21pZGRsZXdhcmUtbG9nZ2VyJyk7XG52YXIgbWlkZGxld2FyZVJlY3Vyc2lvbkRldGVjdGlvbiA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL21pZGRsZXdhcmUtcmVjdXJzaW9uLWRldGVjdGlvbicpO1xudmFyIG1pZGRsZXdhcmVVc2VyQWdlbnQgPSByZXF1aXJlKCdAYXdzLXNkay9taWRkbGV3YXJlLXVzZXItYWdlbnQnKTtcbnZhciBjb25maWdSZXNvbHZlciA9IHJlcXVpcmUoJ0BzbWl0aHkvY29uZmlnLXJlc29sdmVyJyk7XG52YXIgY29yZSA9IHJlcXVpcmUoJ0BzbWl0aHkvY29yZScpO1xudmFyIHNjaGVtYSA9IHJlcXVpcmUoJ0BzbWl0aHkvY29yZS9zY2hlbWEnKTtcbnZhciBtaWRkbGV3YXJlQ29udGVudExlbmd0aCA9IHJlcXVpcmUoJ0BzbWl0aHkvbWlkZGxld2FyZS1jb250ZW50LWxlbmd0aCcpO1xudmFyIG1pZGRsZXdhcmVFbmRwb2ludCA9IHJlcXVpcmUoJ0BzbWl0aHkvbWlkZGxld2FyZS1lbmRwb2ludCcpO1xudmFyIG1pZGRsZXdhcmVSZXRyeSA9IHJlcXVpcmUoJ0BzbWl0aHkvbWlkZGxld2FyZS1yZXRyeScpO1xudmFyIHNtaXRoeUNsaWVudCA9IHJlcXVpcmUoJ0BzbWl0aHkvc21pdGh5LWNsaWVudCcpO1xudmFyIGh0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSByZXF1aXJlKCcuL2F1dGgvaHR0cEF1dGhTY2hlbWVQcm92aWRlcicpO1xudmFyIHJ1bnRpbWVDb25maWcgPSByZXF1aXJlKCcuL3J1bnRpbWVDb25maWcnKTtcbnZhciByZWdpb25Db25maWdSZXNvbHZlciA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL3JlZ2lvbi1jb25maWctcmVzb2x2ZXInKTtcbnZhciBwcm90b2NvbEh0dHAgPSByZXF1aXJlKCdAc21pdGh5L3Byb3RvY29sLWh0dHAnKTtcbnZhciBzY2hlbWFzXzAgPSByZXF1aXJlKCcuL3NjaGVtYXMvc2NoZW1hc18wJyk7XG52YXIgZXJyb3JzID0gcmVxdWlyZSgnLi9tb2RlbHMvZXJyb3JzJyk7XG52YXIgU2VjcmV0c01hbmFnZXJTZXJ2aWNlRXhjZXB0aW9uID0gcmVxdWlyZSgnLi9tb2RlbHMvU2VjcmV0c01hbmFnZXJTZXJ2aWNlRXhjZXB0aW9uJyk7XG5cbmNvbnN0IHJlc29sdmVDbGllbnRFbmRwb2ludFBhcmFtZXRlcnMgPSAob3B0aW9ucykgPT4ge1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKG9wdGlvbnMsIHtcbiAgICAgICAgdXNlRHVhbHN0YWNrRW5kcG9pbnQ6IG9wdGlvbnMudXNlRHVhbHN0YWNrRW5kcG9pbnQgPz8gZmFsc2UsXG4gICAgICAgIHVzZUZpcHNFbmRwb2ludDogb3B0aW9ucy51c2VGaXBzRW5kcG9pbnQgPz8gZmFsc2UsXG4gICAgICAgIGRlZmF1bHRTaWduaW5nTmFtZTogXCJzZWNyZXRzbWFuYWdlclwiLFxuICAgIH0pO1xufTtcbmNvbnN0IGNvbW1vblBhcmFtcyA9IHtcbiAgICBVc2VGSVBTOiB7IHR5cGU6IFwiYnVpbHRJblBhcmFtc1wiLCBuYW1lOiBcInVzZUZpcHNFbmRwb2ludFwiIH0sXG4gICAgRW5kcG9pbnQ6IHsgdHlwZTogXCJidWlsdEluUGFyYW1zXCIsIG5hbWU6IFwiZW5kcG9pbnRcIiB9LFxuICAgIFJlZ2lvbjogeyB0eXBlOiBcImJ1aWx0SW5QYXJhbXNcIiwgbmFtZTogXCJyZWdpb25cIiB9LFxuICAgIFVzZUR1YWxTdGFjazogeyB0eXBlOiBcImJ1aWx0SW5QYXJhbXNcIiwgbmFtZTogXCJ1c2VEdWFsc3RhY2tFbmRwb2ludFwiIH0sXG59O1xuXG5jb25zdCBnZXRIdHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24gPSAocnVudGltZUNvbmZpZykgPT4ge1xuICAgIGNvbnN0IF9odHRwQXV0aFNjaGVtZXMgPSBydW50aW1lQ29uZmlnLmh0dHBBdXRoU2NoZW1lcztcbiAgICBsZXQgX2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSBydW50aW1lQ29uZmlnLmh0dHBBdXRoU2NoZW1lUHJvdmlkZXI7XG4gICAgbGV0IF9jcmVkZW50aWFscyA9IHJ1bnRpbWVDb25maWcuY3JlZGVudGlhbHM7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc2V0SHR0cEF1dGhTY2hlbWUoaHR0cEF1dGhTY2hlbWUpIHtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gX2h0dHBBdXRoU2NoZW1lcy5maW5kSW5kZXgoKHNjaGVtZSkgPT4gc2NoZW1lLnNjaGVtZUlkID09PSBodHRwQXV0aFNjaGVtZS5zY2hlbWVJZCk7XG4gICAgICAgICAgICBpZiAoaW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgX2h0dHBBdXRoU2NoZW1lcy5wdXNoKGh0dHBBdXRoU2NoZW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIF9odHRwQXV0aFNjaGVtZXMuc3BsaWNlKGluZGV4LCAxLCBodHRwQXV0aFNjaGVtZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGh0dHBBdXRoU2NoZW1lcygpIHtcbiAgICAgICAgICAgIHJldHVybiBfaHR0cEF1dGhTY2hlbWVzO1xuICAgICAgICB9LFxuICAgICAgICBzZXRIdHRwQXV0aFNjaGVtZVByb3ZpZGVyKGh0dHBBdXRoU2NoZW1lUHJvdmlkZXIpIHtcbiAgICAgICAgICAgIF9odHRwQXV0aFNjaGVtZVByb3ZpZGVyID0gaHR0cEF1dGhTY2hlbWVQcm92aWRlcjtcbiAgICAgICAgfSxcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVQcm92aWRlcigpIHtcbiAgICAgICAgICAgIHJldHVybiBfaHR0cEF1dGhTY2hlbWVQcm92aWRlcjtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0Q3JlZGVudGlhbHMoY3JlZGVudGlhbHMpIHtcbiAgICAgICAgICAgIF9jcmVkZW50aWFscyA9IGNyZWRlbnRpYWxzO1xuICAgICAgICB9LFxuICAgICAgICBjcmVkZW50aWFscygpIHtcbiAgICAgICAgICAgIHJldHVybiBfY3JlZGVudGlhbHM7XG4gICAgICAgIH0sXG4gICAgfTtcbn07XG5jb25zdCByZXNvbHZlSHR0cEF1dGhSdW50aW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIGh0dHBBdXRoU2NoZW1lczogY29uZmlnLmh0dHBBdXRoU2NoZW1lcygpLFxuICAgICAgICBodHRwQXV0aFNjaGVtZVByb3ZpZGVyOiBjb25maWcuaHR0cEF1dGhTY2hlbWVQcm92aWRlcigpLFxuICAgICAgICBjcmVkZW50aWFsczogY29uZmlnLmNyZWRlbnRpYWxzKCksXG4gICAgfTtcbn07XG5cbmNvbnN0IHJlc29sdmVSdW50aW1lRXh0ZW5zaW9ucyA9IChydW50aW1lQ29uZmlnLCBleHRlbnNpb25zKSA9PiB7XG4gICAgY29uc3QgZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiA9IE9iamVjdC5hc3NpZ24ocmVnaW9uQ29uZmlnUmVzb2x2ZXIuZ2V0QXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbihydW50aW1lQ29uZmlnKSwgc21pdGh5Q2xpZW50LmdldERlZmF1bHRFeHRlbnNpb25Db25maWd1cmF0aW9uKHJ1bnRpbWVDb25maWcpLCBwcm90b2NvbEh0dHAuZ2V0SHR0cEhhbmRsZXJFeHRlbnNpb25Db25maWd1cmF0aW9uKHJ1bnRpbWVDb25maWcpLCBnZXRIdHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24ocnVudGltZUNvbmZpZykpO1xuICAgIGV4dGVuc2lvbnMuZm9yRWFjaCgoZXh0ZW5zaW9uKSA9PiBleHRlbnNpb24uY29uZmlndXJlKGV4dGVuc2lvbkNvbmZpZ3VyYXRpb24pKTtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihydW50aW1lQ29uZmlnLCByZWdpb25Db25maWdSZXNvbHZlci5yZXNvbHZlQXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbihleHRlbnNpb25Db25maWd1cmF0aW9uKSwgc21pdGh5Q2xpZW50LnJlc29sdmVEZWZhdWx0UnVudGltZUNvbmZpZyhleHRlbnNpb25Db25maWd1cmF0aW9uKSwgcHJvdG9jb2xIdHRwLnJlc29sdmVIdHRwSGFuZGxlclJ1bnRpbWVDb25maWcoZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiksIHJlc29sdmVIdHRwQXV0aFJ1bnRpbWVDb25maWcoZXh0ZW5zaW9uQ29uZmlndXJhdGlvbikpO1xufTtcblxuY2xhc3MgU2VjcmV0c01hbmFnZXJDbGllbnQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ2xpZW50IHtcbiAgICBjb25maWc7XG4gICAgY29uc3RydWN0b3IoLi4uW2NvbmZpZ3VyYXRpb25dKSB7XG4gICAgICAgIGNvbnN0IF9jb25maWdfMCA9IHJ1bnRpbWVDb25maWcuZ2V0UnVudGltZUNvbmZpZyhjb25maWd1cmF0aW9uIHx8IHt9KTtcbiAgICAgICAgc3VwZXIoX2NvbmZpZ18wKTtcbiAgICAgICAgdGhpcy5pbml0Q29uZmlnID0gX2NvbmZpZ18wO1xuICAgICAgICBjb25zdCBfY29uZmlnXzEgPSByZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzKF9jb25maWdfMCk7XG4gICAgICAgIGNvbnN0IF9jb25maWdfMiA9IG1pZGRsZXdhcmVVc2VyQWdlbnQucmVzb2x2ZVVzZXJBZ2VudENvbmZpZyhfY29uZmlnXzEpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzMgPSBtaWRkbGV3YXJlUmV0cnkucmVzb2x2ZVJldHJ5Q29uZmlnKF9jb25maWdfMik7XG4gICAgICAgIGNvbnN0IF9jb25maWdfNCA9IGNvbmZpZ1Jlc29sdmVyLnJlc29sdmVSZWdpb25Db25maWcoX2NvbmZpZ18zKTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ181ID0gbWlkZGxld2FyZUhvc3RIZWFkZXIucmVzb2x2ZUhvc3RIZWFkZXJDb25maWcoX2NvbmZpZ180KTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ182ID0gbWlkZGxld2FyZUVuZHBvaW50LnJlc29sdmVFbmRwb2ludENvbmZpZyhfY29uZmlnXzUpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzcgPSBodHRwQXV0aFNjaGVtZVByb3ZpZGVyLnJlc29sdmVIdHRwQXV0aFNjaGVtZUNvbmZpZyhfY29uZmlnXzYpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzggPSByZXNvbHZlUnVudGltZUV4dGVuc2lvbnMoX2NvbmZpZ183LCBjb25maWd1cmF0aW9uPy5leHRlbnNpb25zIHx8IFtdKTtcbiAgICAgICAgdGhpcy5jb25maWcgPSBfY29uZmlnXzg7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShzY2hlbWEuZ2V0U2NoZW1hU2VyZGVQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKG1pZGRsZXdhcmVVc2VyQWdlbnQuZ2V0VXNlckFnZW50UGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShtaWRkbGV3YXJlUmV0cnkuZ2V0UmV0cnlQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKG1pZGRsZXdhcmVDb250ZW50TGVuZ3RoLmdldENvbnRlbnRMZW5ndGhQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKG1pZGRsZXdhcmVIb3N0SGVhZGVyLmdldEhvc3RIZWFkZXJQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKG1pZGRsZXdhcmVMb2dnZXIuZ2V0TG9nZ2VyUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShtaWRkbGV3YXJlUmVjdXJzaW9uRGV0ZWN0aW9uLmdldFJlY3Vyc2lvbkRldGVjdGlvblBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoY29yZS5nZXRIdHRwQXV0aFNjaGVtZUVuZHBvaW50UnVsZVNldFBsdWdpbih0aGlzLmNvbmZpZywge1xuICAgICAgICAgICAgaHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXI6IGh0dHBBdXRoU2NoZW1lUHJvdmlkZXIuZGVmYXVsdFNlY3JldHNNYW5hZ2VySHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIsXG4gICAgICAgICAgICBpZGVudGl0eVByb3ZpZGVyQ29uZmlnUHJvdmlkZXI6IGFzeW5jIChjb25maWcpID0+IG5ldyBjb3JlLkRlZmF1bHRJZGVudGl0eVByb3ZpZGVyQ29uZmlnKHtcbiAgICAgICAgICAgICAgICBcImF3cy5hdXRoI3NpZ3Y0XCI6IGNvbmZpZy5jcmVkZW50aWFscyxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICB9KSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShjb3JlLmdldEh0dHBTaWduaW5nUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgfVxuICAgIGRlc3Ryb3koKSB7XG4gICAgICAgIHN1cGVyLmRlc3Ryb3koKTtcbiAgICB9XG59XG5cbmNsYXNzIEJhdGNoR2V0U2VjcmV0VmFsdWVDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJzZWNyZXRzbWFuYWdlclwiLCBcIkJhdGNoR2V0U2VjcmV0VmFsdWVcIiwge30pXG4gICAgLm4oXCJTZWNyZXRzTWFuYWdlckNsaWVudFwiLCBcIkJhdGNoR2V0U2VjcmV0VmFsdWVDb21tYW5kXCIpXG4gICAgLnNjKHNjaGVtYXNfMC5CYXRjaEdldFNlY3JldFZhbHVlJClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIENhbmNlbFJvdGF0ZVNlY3JldENvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcInNlY3JldHNtYW5hZ2VyXCIsIFwiQ2FuY2VsUm90YXRlU2VjcmV0XCIsIHt9KVxuICAgIC5uKFwiU2VjcmV0c01hbmFnZXJDbGllbnRcIiwgXCJDYW5jZWxSb3RhdGVTZWNyZXRDb21tYW5kXCIpXG4gICAgLnNjKHNjaGVtYXNfMC5DYW5jZWxSb3RhdGVTZWNyZXQkKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgQ3JlYXRlU2VjcmV0Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwic2VjcmV0c21hbmFnZXJcIiwgXCJDcmVhdGVTZWNyZXRcIiwge30pXG4gICAgLm4oXCJTZWNyZXRzTWFuYWdlckNsaWVudFwiLCBcIkNyZWF0ZVNlY3JldENvbW1hbmRcIilcbiAgICAuc2Moc2NoZW1hc18wLkNyZWF0ZVNlY3JldCQpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZWxldGVSZXNvdXJjZVBvbGljeUNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcInNlY3JldHNtYW5hZ2VyXCIsIFwiRGVsZXRlUmVzb3VyY2VQb2xpY3lcIiwge30pXG4gICAgLm4oXCJTZWNyZXRzTWFuYWdlckNsaWVudFwiLCBcIkRlbGV0ZVJlc291cmNlUG9saWN5Q29tbWFuZFwiKVxuICAgIC5zYyhzY2hlbWFzXzAuRGVsZXRlUmVzb3VyY2VQb2xpY3kkKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgRGVsZXRlU2VjcmV0Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwic2VjcmV0c21hbmFnZXJcIiwgXCJEZWxldGVTZWNyZXRcIiwge30pXG4gICAgLm4oXCJTZWNyZXRzTWFuYWdlckNsaWVudFwiLCBcIkRlbGV0ZVNlY3JldENvbW1hbmRcIilcbiAgICAuc2Moc2NoZW1hc18wLkRlbGV0ZVNlY3JldCQpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZXNjcmliZVNlY3JldENvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcInNlY3JldHNtYW5hZ2VyXCIsIFwiRGVzY3JpYmVTZWNyZXRcIiwge30pXG4gICAgLm4oXCJTZWNyZXRzTWFuYWdlckNsaWVudFwiLCBcIkRlc2NyaWJlU2VjcmV0Q29tbWFuZFwiKVxuICAgIC5zYyhzY2hlbWFzXzAuRGVzY3JpYmVTZWNyZXQkKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgR2V0UmFuZG9tUGFzc3dvcmRDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJzZWNyZXRzbWFuYWdlclwiLCBcIkdldFJhbmRvbVBhc3N3b3JkXCIsIHt9KVxuICAgIC5uKFwiU2VjcmV0c01hbmFnZXJDbGllbnRcIiwgXCJHZXRSYW5kb21QYXNzd29yZENvbW1hbmRcIilcbiAgICAuc2Moc2NoZW1hc18wLkdldFJhbmRvbVBhc3N3b3JkJClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIEdldFJlc291cmNlUG9saWN5Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwic2VjcmV0c21hbmFnZXJcIiwgXCJHZXRSZXNvdXJjZVBvbGljeVwiLCB7fSlcbiAgICAubihcIlNlY3JldHNNYW5hZ2VyQ2xpZW50XCIsIFwiR2V0UmVzb3VyY2VQb2xpY3lDb21tYW5kXCIpXG4gICAgLnNjKHNjaGVtYXNfMC5HZXRSZXNvdXJjZVBvbGljeSQpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBHZXRTZWNyZXRWYWx1ZUNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcInNlY3JldHNtYW5hZ2VyXCIsIFwiR2V0U2VjcmV0VmFsdWVcIiwge30pXG4gICAgLm4oXCJTZWNyZXRzTWFuYWdlckNsaWVudFwiLCBcIkdldFNlY3JldFZhbHVlQ29tbWFuZFwiKVxuICAgIC5zYyhzY2hlbWFzXzAuR2V0U2VjcmV0VmFsdWUkKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgTGlzdFNlY3JldHNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJzZWNyZXRzbWFuYWdlclwiLCBcIkxpc3RTZWNyZXRzXCIsIHt9KVxuICAgIC5uKFwiU2VjcmV0c01hbmFnZXJDbGllbnRcIiwgXCJMaXN0U2VjcmV0c0NvbW1hbmRcIilcbiAgICAuc2Moc2NoZW1hc18wLkxpc3RTZWNyZXRzJClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIExpc3RTZWNyZXRWZXJzaW9uSWRzQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwic2VjcmV0c21hbmFnZXJcIiwgXCJMaXN0U2VjcmV0VmVyc2lvbklkc1wiLCB7fSlcbiAgICAubihcIlNlY3JldHNNYW5hZ2VyQ2xpZW50XCIsIFwiTGlzdFNlY3JldFZlcnNpb25JZHNDb21tYW5kXCIpXG4gICAgLnNjKHNjaGVtYXNfMC5MaXN0U2VjcmV0VmVyc2lvbklkcyQpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBQdXRSZXNvdXJjZVBvbGljeUNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcInNlY3JldHNtYW5hZ2VyXCIsIFwiUHV0UmVzb3VyY2VQb2xpY3lcIiwge30pXG4gICAgLm4oXCJTZWNyZXRzTWFuYWdlckNsaWVudFwiLCBcIlB1dFJlc291cmNlUG9saWN5Q29tbWFuZFwiKVxuICAgIC5zYyhzY2hlbWFzXzAuUHV0UmVzb3VyY2VQb2xpY3kkKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgUHV0U2VjcmV0VmFsdWVDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJzZWNyZXRzbWFuYWdlclwiLCBcIlB1dFNlY3JldFZhbHVlXCIsIHt9KVxuICAgIC5uKFwiU2VjcmV0c01hbmFnZXJDbGllbnRcIiwgXCJQdXRTZWNyZXRWYWx1ZUNvbW1hbmRcIilcbiAgICAuc2Moc2NoZW1hc18wLlB1dFNlY3JldFZhbHVlJClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFJlbW92ZVJlZ2lvbnNGcm9tUmVwbGljYXRpb25Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJzZWNyZXRzbWFuYWdlclwiLCBcIlJlbW92ZVJlZ2lvbnNGcm9tUmVwbGljYXRpb25cIiwge30pXG4gICAgLm4oXCJTZWNyZXRzTWFuYWdlckNsaWVudFwiLCBcIlJlbW92ZVJlZ2lvbnNGcm9tUmVwbGljYXRpb25Db21tYW5kXCIpXG4gICAgLnNjKHNjaGVtYXNfMC5SZW1vdmVSZWdpb25zRnJvbVJlcGxpY2F0aW9uJClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFJlcGxpY2F0ZVNlY3JldFRvUmVnaW9uc0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcInNlY3JldHNtYW5hZ2VyXCIsIFwiUmVwbGljYXRlU2VjcmV0VG9SZWdpb25zXCIsIHt9KVxuICAgIC5uKFwiU2VjcmV0c01hbmFnZXJDbGllbnRcIiwgXCJSZXBsaWNhdGVTZWNyZXRUb1JlZ2lvbnNDb21tYW5kXCIpXG4gICAgLnNjKHNjaGVtYXNfMC5SZXBsaWNhdGVTZWNyZXRUb1JlZ2lvbnMkKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgUmVzdG9yZVNlY3JldENvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcInNlY3JldHNtYW5hZ2VyXCIsIFwiUmVzdG9yZVNlY3JldFwiLCB7fSlcbiAgICAubihcIlNlY3JldHNNYW5hZ2VyQ2xpZW50XCIsIFwiUmVzdG9yZVNlY3JldENvbW1hbmRcIilcbiAgICAuc2Moc2NoZW1hc18wLlJlc3RvcmVTZWNyZXQkKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgUm90YXRlU2VjcmV0Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwic2VjcmV0c21hbmFnZXJcIiwgXCJSb3RhdGVTZWNyZXRcIiwge30pXG4gICAgLm4oXCJTZWNyZXRzTWFuYWdlckNsaWVudFwiLCBcIlJvdGF0ZVNlY3JldENvbW1hbmRcIilcbiAgICAuc2Moc2NoZW1hc18wLlJvdGF0ZVNlY3JldCQpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBTdG9wUmVwbGljYXRpb25Ub1JlcGxpY2FDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJzZWNyZXRzbWFuYWdlclwiLCBcIlN0b3BSZXBsaWNhdGlvblRvUmVwbGljYVwiLCB7fSlcbiAgICAubihcIlNlY3JldHNNYW5hZ2VyQ2xpZW50XCIsIFwiU3RvcFJlcGxpY2F0aW9uVG9SZXBsaWNhQ29tbWFuZFwiKVxuICAgIC5zYyhzY2hlbWFzXzAuU3RvcFJlcGxpY2F0aW9uVG9SZXBsaWNhJClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFRhZ1Jlc291cmNlQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwic2VjcmV0c21hbmFnZXJcIiwgXCJUYWdSZXNvdXJjZVwiLCB7fSlcbiAgICAubihcIlNlY3JldHNNYW5hZ2VyQ2xpZW50XCIsIFwiVGFnUmVzb3VyY2VDb21tYW5kXCIpXG4gICAgLnNjKHNjaGVtYXNfMC5UYWdSZXNvdXJjZSQpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBVbnRhZ1Jlc291cmNlQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwic2VjcmV0c21hbmFnZXJcIiwgXCJVbnRhZ1Jlc291cmNlXCIsIHt9KVxuICAgIC5uKFwiU2VjcmV0c01hbmFnZXJDbGllbnRcIiwgXCJVbnRhZ1Jlc291cmNlQ29tbWFuZFwiKVxuICAgIC5zYyhzY2hlbWFzXzAuVW50YWdSZXNvdXJjZSQpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBVcGRhdGVTZWNyZXRDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJzZWNyZXRzbWFuYWdlclwiLCBcIlVwZGF0ZVNlY3JldFwiLCB7fSlcbiAgICAubihcIlNlY3JldHNNYW5hZ2VyQ2xpZW50XCIsIFwiVXBkYXRlU2VjcmV0Q29tbWFuZFwiKVxuICAgIC5zYyhzY2hlbWFzXzAuVXBkYXRlU2VjcmV0JClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFVwZGF0ZVNlY3JldFZlcnNpb25TdGFnZUNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcInNlY3JldHNtYW5hZ2VyXCIsIFwiVXBkYXRlU2VjcmV0VmVyc2lvblN0YWdlXCIsIHt9KVxuICAgIC5uKFwiU2VjcmV0c01hbmFnZXJDbGllbnRcIiwgXCJVcGRhdGVTZWNyZXRWZXJzaW9uU3RhZ2VDb21tYW5kXCIpXG4gICAgLnNjKHNjaGVtYXNfMC5VcGRhdGVTZWNyZXRWZXJzaW9uU3RhZ2UkKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgVmFsaWRhdGVSZXNvdXJjZVBvbGljeUNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcInNlY3JldHNtYW5hZ2VyXCIsIFwiVmFsaWRhdGVSZXNvdXJjZVBvbGljeVwiLCB7fSlcbiAgICAubihcIlNlY3JldHNNYW5hZ2VyQ2xpZW50XCIsIFwiVmFsaWRhdGVSZXNvdXJjZVBvbGljeUNvbW1hbmRcIilcbiAgICAuc2Moc2NoZW1hc18wLlZhbGlkYXRlUmVzb3VyY2VQb2xpY3kkKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY29uc3QgcGFnaW5hdGVCYXRjaEdldFNlY3JldFZhbHVlID0gY29yZS5jcmVhdGVQYWdpbmF0b3IoU2VjcmV0c01hbmFnZXJDbGllbnQsIEJhdGNoR2V0U2VjcmV0VmFsdWVDb21tYW5kLCBcIk5leHRUb2tlblwiLCBcIk5leHRUb2tlblwiLCBcIk1heFJlc3VsdHNcIik7XG5cbmNvbnN0IHBhZ2luYXRlTGlzdFNlY3JldHMgPSBjb3JlLmNyZWF0ZVBhZ2luYXRvcihTZWNyZXRzTWFuYWdlckNsaWVudCwgTGlzdFNlY3JldHNDb21tYW5kLCBcIk5leHRUb2tlblwiLCBcIk5leHRUb2tlblwiLCBcIk1heFJlc3VsdHNcIik7XG5cbmNvbnN0IHBhZ2luYXRlTGlzdFNlY3JldFZlcnNpb25JZHMgPSBjb3JlLmNyZWF0ZVBhZ2luYXRvcihTZWNyZXRzTWFuYWdlckNsaWVudCwgTGlzdFNlY3JldFZlcnNpb25JZHNDb21tYW5kLCBcIk5leHRUb2tlblwiLCBcIk5leHRUb2tlblwiLCBcIk1heFJlc3VsdHNcIik7XG5cbmNvbnN0IGNvbW1hbmRzID0ge1xuICAgIEJhdGNoR2V0U2VjcmV0VmFsdWVDb21tYW5kLFxuICAgIENhbmNlbFJvdGF0ZVNlY3JldENvbW1hbmQsXG4gICAgQ3JlYXRlU2VjcmV0Q29tbWFuZCxcbiAgICBEZWxldGVSZXNvdXJjZVBvbGljeUNvbW1hbmQsXG4gICAgRGVsZXRlU2VjcmV0Q29tbWFuZCxcbiAgICBEZXNjcmliZVNlY3JldENvbW1hbmQsXG4gICAgR2V0UmFuZG9tUGFzc3dvcmRDb21tYW5kLFxuICAgIEdldFJlc291cmNlUG9saWN5Q29tbWFuZCxcbiAgICBHZXRTZWNyZXRWYWx1ZUNvbW1hbmQsXG4gICAgTGlzdFNlY3JldHNDb21tYW5kLFxuICAgIExpc3RTZWNyZXRWZXJzaW9uSWRzQ29tbWFuZCxcbiAgICBQdXRSZXNvdXJjZVBvbGljeUNvbW1hbmQsXG4gICAgUHV0U2VjcmV0VmFsdWVDb21tYW5kLFxuICAgIFJlbW92ZVJlZ2lvbnNGcm9tUmVwbGljYXRpb25Db21tYW5kLFxuICAgIFJlcGxpY2F0ZVNlY3JldFRvUmVnaW9uc0NvbW1hbmQsXG4gICAgUmVzdG9yZVNlY3JldENvbW1hbmQsXG4gICAgUm90YXRlU2VjcmV0Q29tbWFuZCxcbiAgICBTdG9wUmVwbGljYXRpb25Ub1JlcGxpY2FDb21tYW5kLFxuICAgIFRhZ1Jlc291cmNlQ29tbWFuZCxcbiAgICBVbnRhZ1Jlc291cmNlQ29tbWFuZCxcbiAgICBVcGRhdGVTZWNyZXRDb21tYW5kLFxuICAgIFVwZGF0ZVNlY3JldFZlcnNpb25TdGFnZUNvbW1hbmQsXG4gICAgVmFsaWRhdGVSZXNvdXJjZVBvbGljeUNvbW1hbmQsXG59O1xuY29uc3QgcGFnaW5hdG9ycyA9IHtcbiAgICBwYWdpbmF0ZUJhdGNoR2V0U2VjcmV0VmFsdWUsXG4gICAgcGFnaW5hdGVMaXN0U2VjcmV0cyxcbiAgICBwYWdpbmF0ZUxpc3RTZWNyZXRWZXJzaW9uSWRzLFxufTtcbmNsYXNzIFNlY3JldHNNYW5hZ2VyIGV4dGVuZHMgU2VjcmV0c01hbmFnZXJDbGllbnQge1xufVxuc21pdGh5Q2xpZW50LmNyZWF0ZUFnZ3JlZ2F0ZWRDbGllbnQoY29tbWFuZHMsIFNlY3JldHNNYW5hZ2VyLCB7IHBhZ2luYXRvcnMgfSk7XG5cbmNvbnN0IEZpbHRlck5hbWVTdHJpbmdUeXBlID0ge1xuICAgIGFsbDogXCJhbGxcIixcbiAgICBkZXNjcmlwdGlvbjogXCJkZXNjcmlwdGlvblwiLFxuICAgIG5hbWU6IFwibmFtZVwiLFxuICAgIG93bmluZ19zZXJ2aWNlOiBcIm93bmluZy1zZXJ2aWNlXCIsXG4gICAgcHJpbWFyeV9yZWdpb246IFwicHJpbWFyeS1yZWdpb25cIixcbiAgICB0YWdfa2V5OiBcInRhZy1rZXlcIixcbiAgICB0YWdfdmFsdWU6IFwidGFnLXZhbHVlXCIsXG59O1xuY29uc3QgU3RhdHVzVHlwZSA9IHtcbiAgICBGYWlsZWQ6IFwiRmFpbGVkXCIsXG4gICAgSW5Qcm9ncmVzczogXCJJblByb2dyZXNzXCIsXG4gICAgSW5TeW5jOiBcIkluU3luY1wiLFxufTtcbmNvbnN0IFNvcnRCeVR5cGUgPSB7XG4gICAgY3JlYXRlZF9kYXRlOiBcImNyZWF0ZWQtZGF0ZVwiLFxuICAgIGxhc3RfYWNjZXNzZWRfZGF0ZTogXCJsYXN0LWFjY2Vzc2VkLWRhdGVcIixcbiAgICBsYXN0X2NoYW5nZWRfZGF0ZTogXCJsYXN0LWNoYW5nZWQtZGF0ZVwiLFxuICAgIG5hbWU6IFwibmFtZVwiLFxufTtcbmNvbnN0IFNvcnRPcmRlclR5cGUgPSB7XG4gICAgYXNjOiBcImFzY1wiLFxuICAgIGRlc2M6IFwiZGVzY1wiLFxufTtcblxuZXhwb3J0cy4kQ29tbWFuZCA9IHNtaXRoeUNsaWVudC5Db21tYW5kO1xuZXhwb3J0cy5fX0NsaWVudCA9IHNtaXRoeUNsaWVudC5DbGllbnQ7XG5leHBvcnRzLlNlY3JldHNNYW5hZ2VyU2VydmljZUV4Y2VwdGlvbiA9IFNlY3JldHNNYW5hZ2VyU2VydmljZUV4Y2VwdGlvbi5TZWNyZXRzTWFuYWdlclNlcnZpY2VFeGNlcHRpb247XG5leHBvcnRzLkJhdGNoR2V0U2VjcmV0VmFsdWVDb21tYW5kID0gQmF0Y2hHZXRTZWNyZXRWYWx1ZUNvbW1hbmQ7XG5leHBvcnRzLkNhbmNlbFJvdGF0ZVNlY3JldENvbW1hbmQgPSBDYW5jZWxSb3RhdGVTZWNyZXRDb21tYW5kO1xuZXhwb3J0cy5DcmVhdGVTZWNyZXRDb21tYW5kID0gQ3JlYXRlU2VjcmV0Q29tbWFuZDtcbmV4cG9ydHMuRGVsZXRlUmVzb3VyY2VQb2xpY3lDb21tYW5kID0gRGVsZXRlUmVzb3VyY2VQb2xpY3lDb21tYW5kO1xuZXhwb3J0cy5EZWxldGVTZWNyZXRDb21tYW5kID0gRGVsZXRlU2VjcmV0Q29tbWFuZDtcbmV4cG9ydHMuRGVzY3JpYmVTZWNyZXRDb21tYW5kID0gRGVzY3JpYmVTZWNyZXRDb21tYW5kO1xuZXhwb3J0cy5GaWx0ZXJOYW1lU3RyaW5nVHlwZSA9IEZpbHRlck5hbWVTdHJpbmdUeXBlO1xuZXhwb3J0cy5HZXRSYW5kb21QYXNzd29yZENvbW1hbmQgPSBHZXRSYW5kb21QYXNzd29yZENvbW1hbmQ7XG5leHBvcnRzLkdldFJlc291cmNlUG9saWN5Q29tbWFuZCA9IEdldFJlc291cmNlUG9saWN5Q29tbWFuZDtcbmV4cG9ydHMuR2V0U2VjcmV0VmFsdWVDb21tYW5kID0gR2V0U2VjcmV0VmFsdWVDb21tYW5kO1xuZXhwb3J0cy5MaXN0U2VjcmV0VmVyc2lvbklkc0NvbW1hbmQgPSBMaXN0U2VjcmV0VmVyc2lvbklkc0NvbW1hbmQ7XG5leHBvcnRzLkxpc3RTZWNyZXRzQ29tbWFuZCA9IExpc3RTZWNyZXRzQ29tbWFuZDtcbmV4cG9ydHMuUHV0UmVzb3VyY2VQb2xpY3lDb21tYW5kID0gUHV0UmVzb3VyY2VQb2xpY3lDb21tYW5kO1xuZXhwb3J0cy5QdXRTZWNyZXRWYWx1ZUNvbW1hbmQgPSBQdXRTZWNyZXRWYWx1ZUNvbW1hbmQ7XG5leHBvcnRzLlJlbW92ZVJlZ2lvbnNGcm9tUmVwbGljYXRpb25Db21tYW5kID0gUmVtb3ZlUmVnaW9uc0Zyb21SZXBsaWNhdGlvbkNvbW1hbmQ7XG5leHBvcnRzLlJlcGxpY2F0ZVNlY3JldFRvUmVnaW9uc0NvbW1hbmQgPSBSZXBsaWNhdGVTZWNyZXRUb1JlZ2lvbnNDb21tYW5kO1xuZXhwb3J0cy5SZXN0b3JlU2VjcmV0Q29tbWFuZCA9IFJlc3RvcmVTZWNyZXRDb21tYW5kO1xuZXhwb3J0cy5Sb3RhdGVTZWNyZXRDb21tYW5kID0gUm90YXRlU2VjcmV0Q29tbWFuZDtcbmV4cG9ydHMuU2VjcmV0c01hbmFnZXIgPSBTZWNyZXRzTWFuYWdlcjtcbmV4cG9ydHMuU2VjcmV0c01hbmFnZXJDbGllbnQgPSBTZWNyZXRzTWFuYWdlckNsaWVudDtcbmV4cG9ydHMuU29ydEJ5VHlwZSA9IFNvcnRCeVR5cGU7XG5leHBvcnRzLlNvcnRPcmRlclR5cGUgPSBTb3J0T3JkZXJUeXBlO1xuZXhwb3J0cy5TdGF0dXNUeXBlID0gU3RhdHVzVHlwZTtcbmV4cG9ydHMuU3RvcFJlcGxpY2F0aW9uVG9SZXBsaWNhQ29tbWFuZCA9IFN0b3BSZXBsaWNhdGlvblRvUmVwbGljYUNvbW1hbmQ7XG5leHBvcnRzLlRhZ1Jlc291cmNlQ29tbWFuZCA9IFRhZ1Jlc291cmNlQ29tbWFuZDtcbmV4cG9ydHMuVW50YWdSZXNvdXJjZUNvbW1hbmQgPSBVbnRhZ1Jlc291cmNlQ29tbWFuZDtcbmV4cG9ydHMuVXBkYXRlU2VjcmV0Q29tbWFuZCA9IFVwZGF0ZVNlY3JldENvbW1hbmQ7XG5leHBvcnRzLlVwZGF0ZVNlY3JldFZlcnNpb25TdGFnZUNvbW1hbmQgPSBVcGRhdGVTZWNyZXRWZXJzaW9uU3RhZ2VDb21tYW5kO1xuZXhwb3J0cy5WYWxpZGF0ZVJlc291cmNlUG9saWN5Q29tbWFuZCA9IFZhbGlkYXRlUmVzb3VyY2VQb2xpY3lDb21tYW5kO1xuZXhwb3J0cy5wYWdpbmF0ZUJhdGNoR2V0U2VjcmV0VmFsdWUgPSBwYWdpbmF0ZUJhdGNoR2V0U2VjcmV0VmFsdWU7XG5leHBvcnRzLnBhZ2luYXRlTGlzdFNlY3JldFZlcnNpb25JZHMgPSBwYWdpbmF0ZUxpc3RTZWNyZXRWZXJzaW9uSWRzO1xuZXhwb3J0cy5wYWdpbmF0ZUxpc3RTZWNyZXRzID0gcGFnaW5hdGVMaXN0U2VjcmV0cztcbk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzY2hlbWFzXzAsICdfX3Byb3RvX18nKSAmJlxuICAgICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXhwb3J0cywgJ19fcHJvdG9fXycpICYmXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX3Byb3RvX18nLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIHZhbHVlOiBzY2hlbWFzXzBbJ19fcHJvdG9fXyddXG4gICAgfSk7XG5cbk9iamVjdC5rZXlzKHNjaGVtYXNfMCkuZm9yRWFjaChmdW5jdGlvbiAoaykge1xuICAgIGlmIChrICE9PSAnZGVmYXVsdCcgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChleHBvcnRzLCBrKSkgZXhwb3J0c1trXSA9IHNjaGVtYXNfMFtrXTtcbn0pO1xuT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGVycm9ycywgJ19fcHJvdG9fXycpICYmXG4gICAgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChleHBvcnRzLCAnX19wcm90b19fJykgJiZcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fcHJvdG9fXycsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgdmFsdWU6IGVycm9yc1snX19wcm90b19fJ11cbiAgICB9KTtcblxuT2JqZWN0LmtleXMoZXJyb3JzKS5mb3JFYWNoKGZ1bmN0aW9uIChrKSB7XG4gICAgaWYgKGsgIT09ICdkZWZhdWx0JyAmJiAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGV4cG9ydHMsIGspKSBleHBvcnRzW2tdID0gZXJyb3JzW2tdO1xufSk7XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLnJlc29sdmVIdHRwQXV0aFNjaGVtZUNvbmZpZyA9IGV4cG9ydHMuZGVmYXVsdExhbWJkYUh0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSBleHBvcnRzLmRlZmF1bHRMYW1iZGFIdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlciA9IHZvaWQgMDtcbmNvbnN0IGNvcmVfMSA9IHJlcXVpcmUoXCJAYXdzLXNkay9jb3JlXCIpO1xuY29uc3QgdXRpbF9taWRkbGV3YXJlXzEgPSByZXF1aXJlKFwiQHNtaXRoeS91dGlsLW1pZGRsZXdhcmVcIik7XG5jb25zdCBkZWZhdWx0TGFtYmRhSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIgPSBhc3luYyAoY29uZmlnLCBjb250ZXh0LCBpbnB1dCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIG9wZXJhdGlvbjogKDAsIHV0aWxfbWlkZGxld2FyZV8xLmdldFNtaXRoeUNvbnRleHQpKGNvbnRleHQpLm9wZXJhdGlvbixcbiAgICAgICAgcmVnaW9uOiAoYXdhaXQgKDAsIHV0aWxfbWlkZGxld2FyZV8xLm5vcm1hbGl6ZVByb3ZpZGVyKShjb25maWcucmVnaW9uKSgpKSB8fFxuICAgICAgICAgICAgKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJleHBlY3RlZCBgcmVnaW9uYCB0byBiZSBjb25maWd1cmVkIGZvciBgYXdzLmF1dGgjc2lndjRgXCIpO1xuICAgICAgICAgICAgfSkoKSxcbiAgICB9O1xufTtcbmV4cG9ydHMuZGVmYXVsdExhbWJkYUh0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyID0gZGVmYXVsdExhbWJkYUh0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyO1xuZnVuY3Rpb24gY3JlYXRlQXdzQXV0aFNpZ3Y0SHR0cEF1dGhPcHRpb24oYXV0aFBhcmFtZXRlcnMpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBzY2hlbWVJZDogXCJhd3MuYXV0aCNzaWd2NFwiLFxuICAgICAgICBzaWduaW5nUHJvcGVydGllczoge1xuICAgICAgICAgICAgbmFtZTogXCJsYW1iZGFcIixcbiAgICAgICAgICAgIHJlZ2lvbjogYXV0aFBhcmFtZXRlcnMucmVnaW9uLFxuICAgICAgICB9LFxuICAgICAgICBwcm9wZXJ0aWVzRXh0cmFjdG9yOiAoY29uZmlnLCBjb250ZXh0KSA9PiAoe1xuICAgICAgICAgICAgc2lnbmluZ1Byb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICBjb25maWcsXG4gICAgICAgICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pLFxuICAgIH07XG59XG5jb25zdCBkZWZhdWx0TGFtYmRhSHR0cEF1dGhTY2hlbWVQcm92aWRlciA9IChhdXRoUGFyYW1ldGVycykgPT4ge1xuICAgIGNvbnN0IG9wdGlvbnMgPSBbXTtcbiAgICBzd2l0Y2ggKGF1dGhQYXJhbWV0ZXJzLm9wZXJhdGlvbikge1xuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICBvcHRpb25zLnB1c2goY3JlYXRlQXdzQXV0aFNpZ3Y0SHR0cEF1dGhPcHRpb24oYXV0aFBhcmFtZXRlcnMpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gb3B0aW9ucztcbn07XG5leHBvcnRzLmRlZmF1bHRMYW1iZGFIdHRwQXV0aFNjaGVtZVByb3ZpZGVyID0gZGVmYXVsdExhbWJkYUh0dHBBdXRoU2NoZW1lUHJvdmlkZXI7XG5jb25zdCByZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWcgPSAoY29uZmlnKSA9PiB7XG4gICAgY29uc3QgY29uZmlnXzAgPSAoMCwgY29yZV8xLnJlc29sdmVBd3NTZGtTaWdWNENvbmZpZykoY29uZmlnKTtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihjb25maWdfMCwge1xuICAgICAgICBhdXRoU2NoZW1lUHJlZmVyZW5jZTogKDAsIHV0aWxfbWlkZGxld2FyZV8xLm5vcm1hbGl6ZVByb3ZpZGVyKShjb25maWcuYXV0aFNjaGVtZVByZWZlcmVuY2UgPz8gW10pLFxuICAgIH0pO1xufTtcbmV4cG9ydHMucmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnID0gcmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnO1xuIiwgIntcbiAgXCJuYW1lXCI6IFwiQGF3cy1zZGsvY2xpZW50LWxhbWJkYVwiLFxuICBcImRlc2NyaXB0aW9uXCI6IFwiQVdTIFNESyBmb3IgSmF2YVNjcmlwdCBMYW1iZGEgQ2xpZW50IGZvciBOb2RlLmpzLCBCcm93c2VyIGFuZCBSZWFjdCBOYXRpdmVcIixcbiAgXCJ2ZXJzaW9uXCI6IFwiMy45NTIuMFwiLFxuICBcInNjcmlwdHNcIjoge1xuICAgIFwiYnVpbGRcIjogXCJjb25jdXJyZW50bHkgJ3lhcm46YnVpbGQ6Y2pzJyAneWFybjpidWlsZDplcycgJ3lhcm46YnVpbGQ6dHlwZXMnXCIsXG4gICAgXCJidWlsZDpjanNcIjogXCJub2RlIC4uLy4uL3NjcmlwdHMvY29tcGlsYXRpb24vaW5saW5lIGNsaWVudC1sYW1iZGFcIixcbiAgICBcImJ1aWxkOmVzXCI6IFwidHNjIC1wIHRzY29uZmlnLmVzLmpzb25cIixcbiAgICBcImJ1aWxkOmluY2x1ZGU6ZGVwc1wiOiBcImxlcm5hIHJ1biAtLXNjb3BlICRucG1fcGFja2FnZV9uYW1lIC0taW5jbHVkZS1kZXBlbmRlbmNpZXMgYnVpbGRcIixcbiAgICBcImJ1aWxkOnR5cGVzXCI6IFwidHNjIC1wIHRzY29uZmlnLnR5cGVzLmpzb25cIixcbiAgICBcImJ1aWxkOnR5cGVzOmRvd25sZXZlbFwiOiBcImRvd25sZXZlbC1kdHMgZGlzdC10eXBlcyBkaXN0LXR5cGVzL3RzMy40XCIsXG4gICAgXCJjbGVhblwiOiBcInJpbXJhZiAuL2Rpc3QtKiAmJiByaW1yYWYgKi50c2J1aWxkaW5mb1wiLFxuICAgIFwiZXh0cmFjdDpkb2NzXCI6IFwiYXBpLWV4dHJhY3RvciBydW4gLS1sb2NhbFwiLFxuICAgIFwiZ2VuZXJhdGU6Y2xpZW50XCI6IFwibm9kZSAuLi8uLi9zY3JpcHRzL2dlbmVyYXRlLWNsaWVudHMvc2luZ2xlLXNlcnZpY2UgLS1zb2xvIGxhbWJkYVwiLFxuICAgIFwidGVzdDppbmRleFwiOiBcInRzYyAtLW5vRW1pdCAuL3Rlc3QvaW5kZXgtdHlwZXMudHMgJiYgbm9kZSAuL3Rlc3QvaW5kZXgtb2JqZWN0cy5zcGVjLm1qc1wiXG4gIH0sXG4gIFwibWFpblwiOiBcIi4vZGlzdC1janMvaW5kZXguanNcIixcbiAgXCJ0eXBlc1wiOiBcIi4vZGlzdC10eXBlcy9pbmRleC5kLnRzXCIsXG4gIFwibW9kdWxlXCI6IFwiLi9kaXN0LWVzL2luZGV4LmpzXCIsXG4gIFwic2lkZUVmZmVjdHNcIjogZmFsc2UsXG4gIFwiZGVwZW5kZW5jaWVzXCI6IHtcbiAgICBcIkBhd3MtY3J5cHRvL3NoYTI1Ni1icm93c2VyXCI6IFwiNS4yLjBcIixcbiAgICBcIkBhd3MtY3J5cHRvL3NoYTI1Ni1qc1wiOiBcIjUuMi4wXCIsXG4gICAgXCJAYXdzLXNkay9jb3JlXCI6IFwiMy45NDcuMFwiLFxuICAgIFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlXCI6IFwiMy45NTIuMFwiLFxuICAgIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1ob3N0LWhlYWRlclwiOiBcIjMuOTM2LjBcIixcbiAgICBcIkBhd3Mtc2RrL21pZGRsZXdhcmUtbG9nZ2VyXCI6IFwiMy45MzYuMFwiLFxuICAgIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1yZWN1cnNpb24tZGV0ZWN0aW9uXCI6IFwiMy45NDguMFwiLFxuICAgIFwiQGF3cy1zZGsvbWlkZGxld2FyZS11c2VyLWFnZW50XCI6IFwiMy45NDcuMFwiLFxuICAgIFwiQGF3cy1zZGsvcmVnaW9uLWNvbmZpZy1yZXNvbHZlclwiOiBcIjMuOTM2LjBcIixcbiAgICBcIkBhd3Mtc2RrL3R5cGVzXCI6IFwiMy45MzYuMFwiLFxuICAgIFwiQGF3cy1zZGsvdXRpbC1lbmRwb2ludHNcIjogXCIzLjkzNi4wXCIsXG4gICAgXCJAYXdzLXNkay91dGlsLXVzZXItYWdlbnQtYnJvd3NlclwiOiBcIjMuOTM2LjBcIixcbiAgICBcIkBhd3Mtc2RrL3V0aWwtdXNlci1hZ2VudC1ub2RlXCI6IFwiMy45NDcuMFwiLFxuICAgIFwiQHNtaXRoeS9jb25maWctcmVzb2x2ZXJcIjogXCJeNC40LjNcIixcbiAgICBcIkBzbWl0aHkvY29yZVwiOiBcIl4zLjE4LjdcIixcbiAgICBcIkBzbWl0aHkvZXZlbnRzdHJlYW0tc2VyZGUtYnJvd3NlclwiOiBcIl40LjIuNVwiLFxuICAgIFwiQHNtaXRoeS9ldmVudHN0cmVhbS1zZXJkZS1jb25maWctcmVzb2x2ZXJcIjogXCJeNC4zLjVcIixcbiAgICBcIkBzbWl0aHkvZXZlbnRzdHJlYW0tc2VyZGUtbm9kZVwiOiBcIl40LjIuNVwiLFxuICAgIFwiQHNtaXRoeS9mZXRjaC1odHRwLWhhbmRsZXJcIjogXCJeNS4zLjZcIixcbiAgICBcIkBzbWl0aHkvaGFzaC1ub2RlXCI6IFwiXjQuMi41XCIsXG4gICAgXCJAc21pdGh5L2ludmFsaWQtZGVwZW5kZW5jeVwiOiBcIl40LjIuNVwiLFxuICAgIFwiQHNtaXRoeS9taWRkbGV3YXJlLWNvbnRlbnQtbGVuZ3RoXCI6IFwiXjQuMi41XCIsXG4gICAgXCJAc21pdGh5L21pZGRsZXdhcmUtZW5kcG9pbnRcIjogXCJeNC4zLjE0XCIsXG4gICAgXCJAc21pdGh5L21pZGRsZXdhcmUtcmV0cnlcIjogXCJeNC40LjE0XCIsXG4gICAgXCJAc21pdGh5L21pZGRsZXdhcmUtc2VyZGVcIjogXCJeNC4yLjZcIixcbiAgICBcIkBzbWl0aHkvbWlkZGxld2FyZS1zdGFja1wiOiBcIl40LjIuNVwiLFxuICAgIFwiQHNtaXRoeS9ub2RlLWNvbmZpZy1wcm92aWRlclwiOiBcIl40LjMuNVwiLFxuICAgIFwiQHNtaXRoeS9ub2RlLWh0dHAtaGFuZGxlclwiOiBcIl40LjQuNVwiLFxuICAgIFwiQHNtaXRoeS9wcm90b2NvbC1odHRwXCI6IFwiXjUuMy41XCIsXG4gICAgXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjogXCJeNC45LjEwXCIsXG4gICAgXCJAc21pdGh5L3R5cGVzXCI6IFwiXjQuOS4wXCIsXG4gICAgXCJAc21pdGh5L3VybC1wYXJzZXJcIjogXCJeNC4yLjVcIixcbiAgICBcIkBzbWl0aHkvdXRpbC1iYXNlNjRcIjogXCJeNC4zLjBcIixcbiAgICBcIkBzbWl0aHkvdXRpbC1ib2R5LWxlbmd0aC1icm93c2VyXCI6IFwiXjQuMi4wXCIsXG4gICAgXCJAc21pdGh5L3V0aWwtYm9keS1sZW5ndGgtbm9kZVwiOiBcIl40LjIuMVwiLFxuICAgIFwiQHNtaXRoeS91dGlsLWRlZmF1bHRzLW1vZGUtYnJvd3NlclwiOiBcIl40LjMuMTNcIixcbiAgICBcIkBzbWl0aHkvdXRpbC1kZWZhdWx0cy1tb2RlLW5vZGVcIjogXCJeNC4yLjE2XCIsXG4gICAgXCJAc21pdGh5L3V0aWwtZW5kcG9pbnRzXCI6IFwiXjMuMi41XCIsXG4gICAgXCJAc21pdGh5L3V0aWwtbWlkZGxld2FyZVwiOiBcIl40LjIuNVwiLFxuICAgIFwiQHNtaXRoeS91dGlsLXJldHJ5XCI6IFwiXjQuMi41XCIsXG4gICAgXCJAc21pdGh5L3V0aWwtc3RyZWFtXCI6IFwiXjQuNS42XCIsXG4gICAgXCJAc21pdGh5L3V0aWwtdXRmOFwiOiBcIl40LjIuMFwiLFxuICAgIFwiQHNtaXRoeS91dGlsLXdhaXRlclwiOiBcIl40LjIuNVwiLFxuICAgIFwidHNsaWJcIjogXCJeMi42LjJcIlxuICB9LFxuICBcImRldkRlcGVuZGVuY2llc1wiOiB7XG4gICAgXCJAdHNjb25maWcvbm9kZTE4XCI6IFwiMTguMi40XCIsXG4gICAgXCJAdHlwZXMvbm9kZVwiOiBcIl4xOC4xOS42OVwiLFxuICAgIFwiY29uY3VycmVudGx5XCI6IFwiNy4wLjBcIixcbiAgICBcImRvd25sZXZlbC1kdHNcIjogXCIwLjEwLjFcIixcbiAgICBcInJpbXJhZlwiOiBcIjMuMC4yXCIsXG4gICAgXCJ0eXBlc2NyaXB0XCI6IFwifjUuOC4zXCJcbiAgfSxcbiAgXCJlbmdpbmVzXCI6IHtcbiAgICBcIm5vZGVcIjogXCI+PTE4LjAuMFwiXG4gIH0sXG4gIFwidHlwZXNWZXJzaW9uc1wiOiB7XG4gICAgXCI8NC4wXCI6IHtcbiAgICAgIFwiZGlzdC10eXBlcy8qXCI6IFtcbiAgICAgICAgXCJkaXN0LXR5cGVzL3RzMy40LypcIlxuICAgICAgXVxuICAgIH1cbiAgfSxcbiAgXCJmaWxlc1wiOiBbXG4gICAgXCJkaXN0LSovKipcIlxuICBdLFxuICBcImF1dGhvclwiOiB7XG4gICAgXCJuYW1lXCI6IFwiQVdTIFNESyBmb3IgSmF2YVNjcmlwdCBUZWFtXCIsXG4gICAgXCJ1cmxcIjogXCJodHRwczovL2F3cy5hbWF6b24uY29tL2phdmFzY3JpcHQvXCJcbiAgfSxcbiAgXCJsaWNlbnNlXCI6IFwiQXBhY2hlLTIuMFwiLFxuICBcImJyb3dzZXJcIjoge1xuICAgIFwiLi9kaXN0LWVzL3J1bnRpbWVDb25maWdcIjogXCIuL2Rpc3QtZXMvcnVudGltZUNvbmZpZy5icm93c2VyXCJcbiAgfSxcbiAgXCJyZWFjdC1uYXRpdmVcIjoge1xuICAgIFwiLi9kaXN0LWVzL3J1bnRpbWVDb25maWdcIjogXCIuL2Rpc3QtZXMvcnVudGltZUNvbmZpZy5uYXRpdmVcIlxuICB9LFxuICBcImhvbWVwYWdlXCI6IFwiaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3Mtc2RrLWpzLXYzL3RyZWUvbWFpbi9jbGllbnRzL2NsaWVudC1sYW1iZGFcIixcbiAgXCJyZXBvc2l0b3J5XCI6IHtcbiAgICBcInR5cGVcIjogXCJnaXRcIixcbiAgICBcInVybFwiOiBcImh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLXNkay1qcy12My5naXRcIixcbiAgICBcImRpcmVjdG9yeVwiOiBcImNsaWVudHMvY2xpZW50LWxhbWJkYVwiXG4gIH1cbn1cbiIsICJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMucnVsZVNldCA9IHZvaWQgMDtcbmNvbnN0IHMgPSBcInJlcXVpcmVkXCIsIHQgPSBcImZuXCIsIHUgPSBcImFyZ3ZcIiwgdiA9IFwicmVmXCI7XG5jb25zdCBhID0gdHJ1ZSwgYiA9IFwiaXNTZXRcIiwgYyA9IFwiYm9vbGVhbkVxdWFsc1wiLCBkID0gXCJlcnJvclwiLCBlID0gXCJlbmRwb2ludFwiLCBmID0gXCJ0cmVlXCIsIGcgPSBcIlBhcnRpdGlvblJlc3VsdFwiLCBoID0geyBbc106IGZhbHNlLCBcInR5cGVcIjogXCJzdHJpbmdcIiB9LCBpID0geyBbc106IHRydWUsIFwiZGVmYXVsdFwiOiBmYWxzZSwgXCJ0eXBlXCI6IFwiYm9vbGVhblwiIH0sIGogPSB7IFt2XTogXCJFbmRwb2ludFwiIH0sIGsgPSB7IFt0XTogYywgW3VdOiBbeyBbdl06IFwiVXNlRklQU1wiIH0sIHRydWVdIH0sIGwgPSB7IFt0XTogYywgW3VdOiBbeyBbdl06IFwiVXNlRHVhbFN0YWNrXCIgfSwgdHJ1ZV0gfSwgbSA9IHt9LCBuID0geyBbdF06IFwiZ2V0QXR0clwiLCBbdV06IFt7IFt2XTogZyB9LCBcInN1cHBvcnRzRklQU1wiXSB9LCBvID0geyBbdF06IGMsIFt1XTogW3RydWUsIHsgW3RdOiBcImdldEF0dHJcIiwgW3VdOiBbeyBbdl06IGcgfSwgXCJzdXBwb3J0c0R1YWxTdGFja1wiXSB9XSB9LCBwID0gW2tdLCBxID0gW2xdLCByID0gW3sgW3ZdOiBcIlJlZ2lvblwiIH1dO1xuY29uc3QgX2RhdGEgPSB7IHZlcnNpb246IFwiMS4wXCIsIHBhcmFtZXRlcnM6IHsgUmVnaW9uOiBoLCBVc2VEdWFsU3RhY2s6IGksIFVzZUZJUFM6IGksIEVuZHBvaW50OiBoIH0sIHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbeyBbdF06IGIsIFt1XTogW2pdIH1dLCBydWxlczogW3sgY29uZGl0aW9uczogcCwgZXJyb3I6IFwiSW52YWxpZCBDb25maWd1cmF0aW9uOiBGSVBTIGFuZCBjdXN0b20gZW5kcG9pbnQgYXJlIG5vdCBzdXBwb3J0ZWRcIiwgdHlwZTogZCB9LCB7IGNvbmRpdGlvbnM6IHEsIGVycm9yOiBcIkludmFsaWQgQ29uZmlndXJhdGlvbjogRHVhbHN0YWNrIGFuZCBjdXN0b20gZW5kcG9pbnQgYXJlIG5vdCBzdXBwb3J0ZWRcIiwgdHlwZTogZCB9LCB7IGVuZHBvaW50OiB7IHVybDogaiwgcHJvcGVydGllczogbSwgaGVhZGVyczogbSB9LCB0eXBlOiBlIH1dLCB0eXBlOiBmIH0sIHsgY29uZGl0aW9uczogW3sgW3RdOiBiLCBbdV06IHIgfV0sIHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbeyBbdF06IFwiYXdzLnBhcnRpdGlvblwiLCBbdV06IHIsIGFzc2lnbjogZyB9XSwgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IFtrLCBsXSwgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IFt7IFt0XTogYywgW3VdOiBbYSwgbl0gfSwgb10sIHJ1bGVzOiBbeyBlbmRwb2ludDogeyB1cmw6IFwiaHR0cHM6Ly9sYW1iZGEtZmlwcy57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2R1YWxTdGFja0Ruc1N1ZmZpeH1cIiwgcHJvcGVydGllczogbSwgaGVhZGVyczogbSB9LCB0eXBlOiBlIH1dLCB0eXBlOiBmIH0sIHsgZXJyb3I6IFwiRklQUyBhbmQgRHVhbFN0YWNrIGFyZSBlbmFibGVkLCBidXQgdGhpcyBwYXJ0aXRpb24gZG9lcyBub3Qgc3VwcG9ydCBvbmUgb3IgYm90aFwiLCB0eXBlOiBkIH1dLCB0eXBlOiBmIH0sIHsgY29uZGl0aW9uczogcCwgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IFt7IFt0XTogYywgW3VdOiBbbiwgYV0gfV0sIHJ1bGVzOiBbeyBlbmRwb2ludDogeyB1cmw6IFwiaHR0cHM6Ly9sYW1iZGEtZmlwcy57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH1cIiwgcHJvcGVydGllczogbSwgaGVhZGVyczogbSB9LCB0eXBlOiBlIH1dLCB0eXBlOiBmIH0sIHsgZXJyb3I6IFwiRklQUyBpcyBlbmFibGVkIGJ1dCB0aGlzIHBhcnRpdGlvbiBkb2VzIG5vdCBzdXBwb3J0IEZJUFNcIiwgdHlwZTogZCB9XSwgdHlwZTogZiB9LCB7IGNvbmRpdGlvbnM6IHEsIHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbb10sIHJ1bGVzOiBbeyBlbmRwb2ludDogeyB1cmw6IFwiaHR0cHM6Ly9sYW1iZGEue1JlZ2lvbn0ue1BhcnRpdGlvblJlc3VsdCNkdWFsU3RhY2tEbnNTdWZmaXh9XCIsIHByb3BlcnRpZXM6IG0sIGhlYWRlcnM6IG0gfSwgdHlwZTogZSB9XSwgdHlwZTogZiB9LCB7IGVycm9yOiBcIkR1YWxTdGFjayBpcyBlbmFibGVkIGJ1dCB0aGlzIHBhcnRpdGlvbiBkb2VzIG5vdCBzdXBwb3J0IER1YWxTdGFja1wiLCB0eXBlOiBkIH1dLCB0eXBlOiBmIH0sIHsgZW5kcG9pbnQ6IHsgdXJsOiBcImh0dHBzOi8vbGFtYmRhLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZG5zU3VmZml4fVwiLCBwcm9wZXJ0aWVzOiBtLCBoZWFkZXJzOiBtIH0sIHR5cGU6IGUgfV0sIHR5cGU6IGYgfV0sIHR5cGU6IGYgfSwgeyBlcnJvcjogXCJJbnZhbGlkIENvbmZpZ3VyYXRpb246IE1pc3NpbmcgUmVnaW9uXCIsIHR5cGU6IGQgfV0gfTtcbmV4cG9ydHMucnVsZVNldCA9IF9kYXRhO1xuIiwgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5kZWZhdWx0RW5kcG9pbnRSZXNvbHZlciA9IHZvaWQgMDtcbmNvbnN0IHV0aWxfZW5kcG9pbnRzXzEgPSByZXF1aXJlKFwiQGF3cy1zZGsvdXRpbC1lbmRwb2ludHNcIik7XG5jb25zdCB1dGlsX2VuZHBvaW50c18yID0gcmVxdWlyZShcIkBzbWl0aHkvdXRpbC1lbmRwb2ludHNcIik7XG5jb25zdCBydWxlc2V0XzEgPSByZXF1aXJlKFwiLi9ydWxlc2V0XCIpO1xuY29uc3QgY2FjaGUgPSBuZXcgdXRpbF9lbmRwb2ludHNfMi5FbmRwb2ludENhY2hlKHtcbiAgICBzaXplOiA1MCxcbiAgICBwYXJhbXM6IFtcIkVuZHBvaW50XCIsIFwiUmVnaW9uXCIsIFwiVXNlRHVhbFN0YWNrXCIsIFwiVXNlRklQU1wiXSxcbn0pO1xuY29uc3QgZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIgPSAoZW5kcG9pbnRQYXJhbXMsIGNvbnRleHQgPSB7fSkgPT4ge1xuICAgIHJldHVybiBjYWNoZS5nZXQoZW5kcG9pbnRQYXJhbXMsICgpID0+ICgwLCB1dGlsX2VuZHBvaW50c18yLnJlc29sdmVFbmRwb2ludCkocnVsZXNldF8xLnJ1bGVTZXQsIHtcbiAgICAgICAgZW5kcG9pbnRQYXJhbXM6IGVuZHBvaW50UGFyYW1zLFxuICAgICAgICBsb2dnZXI6IGNvbnRleHQubG9nZ2VyLFxuICAgIH0pKTtcbn07XG5leHBvcnRzLmRlZmF1bHRFbmRwb2ludFJlc29sdmVyID0gZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXI7XG51dGlsX2VuZHBvaW50c18yLmN1c3RvbUVuZHBvaW50RnVuY3Rpb25zLmF3cyA9IHV0aWxfZW5kcG9pbnRzXzEuYXdzRW5kcG9pbnRGdW5jdGlvbnM7XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmdldFJ1bnRpbWVDb25maWcgPSB2b2lkIDA7XG5jb25zdCBjb3JlXzEgPSByZXF1aXJlKFwiQGF3cy1zZGsvY29yZVwiKTtcbmNvbnN0IHByb3RvY29sc18xID0gcmVxdWlyZShcIkBhd3Mtc2RrL2NvcmUvcHJvdG9jb2xzXCIpO1xuY29uc3Qgc21pdGh5X2NsaWVudF8xID0gcmVxdWlyZShcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiKTtcbmNvbnN0IHVybF9wYXJzZXJfMSA9IHJlcXVpcmUoXCJAc21pdGh5L3VybC1wYXJzZXJcIik7XG5jb25zdCB1dGlsX2Jhc2U2NF8xID0gcmVxdWlyZShcIkBzbWl0aHkvdXRpbC1iYXNlNjRcIik7XG5jb25zdCB1dGlsX3V0ZjhfMSA9IHJlcXVpcmUoXCJAc21pdGh5L3V0aWwtdXRmOFwiKTtcbmNvbnN0IGh0dHBBdXRoU2NoZW1lUHJvdmlkZXJfMSA9IHJlcXVpcmUoXCIuL2F1dGgvaHR0cEF1dGhTY2hlbWVQcm92aWRlclwiKTtcbmNvbnN0IGVuZHBvaW50UmVzb2x2ZXJfMSA9IHJlcXVpcmUoXCIuL2VuZHBvaW50L2VuZHBvaW50UmVzb2x2ZXJcIik7XG5jb25zdCBnZXRSdW50aW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIGFwaVZlcnNpb246IFwiMjAxNS0wMy0zMVwiLFxuICAgICAgICBiYXNlNjREZWNvZGVyOiBjb25maWc/LmJhc2U2NERlY29kZXIgPz8gdXRpbF9iYXNlNjRfMS5mcm9tQmFzZTY0LFxuICAgICAgICBiYXNlNjRFbmNvZGVyOiBjb25maWc/LmJhc2U2NEVuY29kZXIgPz8gdXRpbF9iYXNlNjRfMS50b0Jhc2U2NCxcbiAgICAgICAgZGlzYWJsZUhvc3RQcmVmaXg6IGNvbmZpZz8uZGlzYWJsZUhvc3RQcmVmaXggPz8gZmFsc2UsXG4gICAgICAgIGVuZHBvaW50UHJvdmlkZXI6IGNvbmZpZz8uZW5kcG9pbnRQcm92aWRlciA/PyBlbmRwb2ludFJlc29sdmVyXzEuZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIsXG4gICAgICAgIGV4dGVuc2lvbnM6IGNvbmZpZz8uZXh0ZW5zaW9ucyA/PyBbXSxcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVQcm92aWRlcjogY29uZmlnPy5odHRwQXV0aFNjaGVtZVByb3ZpZGVyID8/IGh0dHBBdXRoU2NoZW1lUHJvdmlkZXJfMS5kZWZhdWx0TGFtYmRhSHR0cEF1dGhTY2hlbWVQcm92aWRlcixcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVzOiBjb25maWc/Lmh0dHBBdXRoU2NoZW1lcyA/PyBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgc2NoZW1lSWQ6IFwiYXdzLmF1dGgjc2lndjRcIixcbiAgICAgICAgICAgICAgICBpZGVudGl0eVByb3ZpZGVyOiAoaXBjKSA9PiBpcGMuZ2V0SWRlbnRpdHlQcm92aWRlcihcImF3cy5hdXRoI3NpZ3Y0XCIpLFxuICAgICAgICAgICAgICAgIHNpZ25lcjogbmV3IGNvcmVfMS5Bd3NTZGtTaWdWNFNpZ25lcigpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgbG9nZ2VyOiBjb25maWc/LmxvZ2dlciA/PyBuZXcgc21pdGh5X2NsaWVudF8xLk5vT3BMb2dnZXIoKSxcbiAgICAgICAgcHJvdG9jb2w6IGNvbmZpZz8ucHJvdG9jb2wgPz8gbmV3IHByb3RvY29sc18xLkF3c1Jlc3RKc29uUHJvdG9jb2woeyBkZWZhdWx0TmFtZXNwYWNlOiBcImNvbS5hbWF6b25hd3MubGFtYmRhXCIgfSksXG4gICAgICAgIHNlcnZpY2VJZDogY29uZmlnPy5zZXJ2aWNlSWQgPz8gXCJMYW1iZGFcIixcbiAgICAgICAgdXJsUGFyc2VyOiBjb25maWc/LnVybFBhcnNlciA/PyB1cmxfcGFyc2VyXzEucGFyc2VVcmwsXG4gICAgICAgIHV0ZjhEZWNvZGVyOiBjb25maWc/LnV0ZjhEZWNvZGVyID8/IHV0aWxfdXRmOF8xLmZyb21VdGY4LFxuICAgICAgICB1dGY4RW5jb2RlcjogY29uZmlnPy51dGY4RW5jb2RlciA/PyB1dGlsX3V0ZjhfMS50b1V0ZjgsXG4gICAgfTtcbn07XG5leHBvcnRzLmdldFJ1bnRpbWVDb25maWcgPSBnZXRSdW50aW1lQ29uZmlnO1xuIiwgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5nZXRSdW50aW1lQ29uZmlnID0gdm9pZCAwO1xuY29uc3QgdHNsaWJfMSA9IHJlcXVpcmUoXCJ0c2xpYlwiKTtcbmNvbnN0IHBhY2thZ2VfanNvbl8xID0gdHNsaWJfMS5fX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4uL3BhY2thZ2UuanNvblwiKSk7XG5jb25zdCBjb3JlXzEgPSByZXF1aXJlKFwiQGF3cy1zZGsvY29yZVwiKTtcbmNvbnN0IGNyZWRlbnRpYWxfcHJvdmlkZXJfbm9kZV8xID0gcmVxdWlyZShcIkBhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbm9kZVwiKTtcbmNvbnN0IHV0aWxfdXNlcl9hZ2VudF9ub2RlXzEgPSByZXF1aXJlKFwiQGF3cy1zZGsvdXRpbC11c2VyLWFnZW50LW5vZGVcIik7XG5jb25zdCBjb25maWdfcmVzb2x2ZXJfMSA9IHJlcXVpcmUoXCJAc21pdGh5L2NvbmZpZy1yZXNvbHZlclwiKTtcbmNvbnN0IGV2ZW50c3RyZWFtX3NlcmRlX25vZGVfMSA9IHJlcXVpcmUoXCJAc21pdGh5L2V2ZW50c3RyZWFtLXNlcmRlLW5vZGVcIik7XG5jb25zdCBoYXNoX25vZGVfMSA9IHJlcXVpcmUoXCJAc21pdGh5L2hhc2gtbm9kZVwiKTtcbmNvbnN0IG1pZGRsZXdhcmVfcmV0cnlfMSA9IHJlcXVpcmUoXCJAc21pdGh5L21pZGRsZXdhcmUtcmV0cnlcIik7XG5jb25zdCBub2RlX2NvbmZpZ19wcm92aWRlcl8xID0gcmVxdWlyZShcIkBzbWl0aHkvbm9kZS1jb25maWctcHJvdmlkZXJcIik7XG5jb25zdCBub2RlX2h0dHBfaGFuZGxlcl8xID0gcmVxdWlyZShcIkBzbWl0aHkvbm9kZS1odHRwLWhhbmRsZXJcIik7XG5jb25zdCBzbWl0aHlfY2xpZW50XzEgPSByZXF1aXJlKFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCIpO1xuY29uc3QgdXRpbF9ib2R5X2xlbmd0aF9ub2RlXzEgPSByZXF1aXJlKFwiQHNtaXRoeS91dGlsLWJvZHktbGVuZ3RoLW5vZGVcIik7XG5jb25zdCB1dGlsX2RlZmF1bHRzX21vZGVfbm9kZV8xID0gcmVxdWlyZShcIkBzbWl0aHkvdXRpbC1kZWZhdWx0cy1tb2RlLW5vZGVcIik7XG5jb25zdCB1dGlsX3JldHJ5XzEgPSByZXF1aXJlKFwiQHNtaXRoeS91dGlsLXJldHJ5XCIpO1xuY29uc3QgcnVudGltZUNvbmZpZ19zaGFyZWRfMSA9IHJlcXVpcmUoXCIuL3J1bnRpbWVDb25maWcuc2hhcmVkXCIpO1xuY29uc3QgZ2V0UnVudGltZUNvbmZpZyA9IChjb25maWcpID0+IHtcbiAgICAoMCwgc21pdGh5X2NsaWVudF8xLmVtaXRXYXJuaW5nSWZVbnN1cHBvcnRlZFZlcnNpb24pKHByb2Nlc3MudmVyc2lvbik7XG4gICAgY29uc3QgZGVmYXVsdHNNb2RlID0gKDAsIHV0aWxfZGVmYXVsdHNfbW9kZV9ub2RlXzEucmVzb2x2ZURlZmF1bHRzTW9kZUNvbmZpZykoY29uZmlnKTtcbiAgICBjb25zdCBkZWZhdWx0Q29uZmlnUHJvdmlkZXIgPSAoKSA9PiBkZWZhdWx0c01vZGUoKS50aGVuKHNtaXRoeV9jbGllbnRfMS5sb2FkQ29uZmlnc0ZvckRlZmF1bHRNb2RlKTtcbiAgICBjb25zdCBjbGllbnRTaGFyZWRWYWx1ZXMgPSAoMCwgcnVudGltZUNvbmZpZ19zaGFyZWRfMS5nZXRSdW50aW1lQ29uZmlnKShjb25maWcpO1xuICAgICgwLCBjb3JlXzEuZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbikocHJvY2Vzcy52ZXJzaW9uKTtcbiAgICBjb25zdCBsb2FkZXJDb25maWcgPSB7XG4gICAgICAgIHByb2ZpbGU6IGNvbmZpZz8ucHJvZmlsZSxcbiAgICAgICAgbG9nZ2VyOiBjbGllbnRTaGFyZWRWYWx1ZXMubG9nZ2VyLFxuICAgIH07XG4gICAgcmV0dXJuIHtcbiAgICAgICAgLi4uY2xpZW50U2hhcmVkVmFsdWVzLFxuICAgICAgICAuLi5jb25maWcsXG4gICAgICAgIHJ1bnRpbWU6IFwibm9kZVwiLFxuICAgICAgICBkZWZhdWx0c01vZGUsXG4gICAgICAgIGF1dGhTY2hlbWVQcmVmZXJlbmNlOiBjb25maWc/LmF1dGhTY2hlbWVQcmVmZXJlbmNlID8/ICgwLCBub2RlX2NvbmZpZ19wcm92aWRlcl8xLmxvYWRDb25maWcpKGNvcmVfMS5OT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfT1BUSU9OUywgbG9hZGVyQ29uZmlnKSxcbiAgICAgICAgYm9keUxlbmd0aENoZWNrZXI6IGNvbmZpZz8uYm9keUxlbmd0aENoZWNrZXIgPz8gdXRpbF9ib2R5X2xlbmd0aF9ub2RlXzEuY2FsY3VsYXRlQm9keUxlbmd0aCxcbiAgICAgICAgY3JlZGVudGlhbERlZmF1bHRQcm92aWRlcjogY29uZmlnPy5jcmVkZW50aWFsRGVmYXVsdFByb3ZpZGVyID8/IGNyZWRlbnRpYWxfcHJvdmlkZXJfbm9kZV8xLmRlZmF1bHRQcm92aWRlcixcbiAgICAgICAgZGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyOiBjb25maWc/LmRlZmF1bHRVc2VyQWdlbnRQcm92aWRlciA/P1xuICAgICAgICAgICAgKDAsIHV0aWxfdXNlcl9hZ2VudF9ub2RlXzEuY3JlYXRlRGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyKSh7IHNlcnZpY2VJZDogY2xpZW50U2hhcmVkVmFsdWVzLnNlcnZpY2VJZCwgY2xpZW50VmVyc2lvbjogcGFja2FnZV9qc29uXzEuZGVmYXVsdC52ZXJzaW9uIH0pLFxuICAgICAgICBldmVudFN0cmVhbVNlcmRlUHJvdmlkZXI6IGNvbmZpZz8uZXZlbnRTdHJlYW1TZXJkZVByb3ZpZGVyID8/IGV2ZW50c3RyZWFtX3NlcmRlX25vZGVfMS5ldmVudFN0cmVhbVNlcmRlUHJvdmlkZXIsXG4gICAgICAgIG1heEF0dGVtcHRzOiBjb25maWc/Lm1heEF0dGVtcHRzID8/ICgwLCBub2RlX2NvbmZpZ19wcm92aWRlcl8xLmxvYWRDb25maWcpKG1pZGRsZXdhcmVfcmV0cnlfMS5OT0RFX01BWF9BVFRFTVBUX0NPTkZJR19PUFRJT05TLCBjb25maWcpLFxuICAgICAgICByZWdpb246IGNvbmZpZz8ucmVnaW9uID8/XG4gICAgICAgICAgICAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKShjb25maWdfcmVzb2x2ZXJfMS5OT0RFX1JFR0lPTl9DT05GSUdfT1BUSU9OUywgeyAuLi5jb25maWdfcmVzb2x2ZXJfMS5OT0RFX1JFR0lPTl9DT05GSUdfRklMRV9PUFRJT05TLCAuLi5sb2FkZXJDb25maWcgfSksXG4gICAgICAgIHJlcXVlc3RIYW5kbGVyOiBub2RlX2h0dHBfaGFuZGxlcl8xLk5vZGVIdHRwSGFuZGxlci5jcmVhdGUoY29uZmlnPy5yZXF1ZXN0SGFuZGxlciA/PyBkZWZhdWx0Q29uZmlnUHJvdmlkZXIpLFxuICAgICAgICByZXRyeU1vZGU6IGNvbmZpZz8ucmV0cnlNb2RlID8/XG4gICAgICAgICAgICAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKSh7XG4gICAgICAgICAgICAgICAgLi4ubWlkZGxld2FyZV9yZXRyeV8xLk5PREVfUkVUUllfTU9ERV9DT05GSUdfT1BUSU9OUyxcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiBhc3luYyAoKSA9PiAoYXdhaXQgZGVmYXVsdENvbmZpZ1Byb3ZpZGVyKCkpLnJldHJ5TW9kZSB8fCB1dGlsX3JldHJ5XzEuREVGQVVMVF9SRVRSWV9NT0RFLFxuICAgICAgICAgICAgfSwgY29uZmlnKSxcbiAgICAgICAgc2hhMjU2OiBjb25maWc/LnNoYTI1NiA/PyBoYXNoX25vZGVfMS5IYXNoLmJpbmQobnVsbCwgXCJzaGEyNTZcIiksXG4gICAgICAgIHN0cmVhbUNvbGxlY3RvcjogY29uZmlnPy5zdHJlYW1Db2xsZWN0b3IgPz8gbm9kZV9odHRwX2hhbmRsZXJfMS5zdHJlYW1Db2xsZWN0b3IsXG4gICAgICAgIHVzZUR1YWxzdGFja0VuZHBvaW50OiBjb25maWc/LnVzZUR1YWxzdGFja0VuZHBvaW50ID8/ICgwLCBub2RlX2NvbmZpZ19wcm92aWRlcl8xLmxvYWRDb25maWcpKGNvbmZpZ19yZXNvbHZlcl8xLk5PREVfVVNFX0RVQUxTVEFDS19FTkRQT0lOVF9DT05GSUdfT1BUSU9OUywgbG9hZGVyQ29uZmlnKSxcbiAgICAgICAgdXNlRmlwc0VuZHBvaW50OiBjb25maWc/LnVzZUZpcHNFbmRwb2ludCA/PyAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKShjb25maWdfcmVzb2x2ZXJfMS5OT0RFX1VTRV9GSVBTX0VORFBPSU5UX0NPTkZJR19PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgICAgICB1c2VyQWdlbnRBcHBJZDogY29uZmlnPy51c2VyQWdlbnRBcHBJZCA/PyAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKSh1dGlsX3VzZXJfYWdlbnRfbm9kZV8xLk5PREVfQVBQX0lEX0NPTkZJR19PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgIH07XG59O1xuZXhwb3J0cy5nZXRSdW50aW1lQ29uZmlnID0gZ2V0UnVudGltZUNvbmZpZztcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBtaWRkbGV3YXJlSG9zdEhlYWRlciA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL21pZGRsZXdhcmUtaG9zdC1oZWFkZXInKTtcbnZhciBtaWRkbGV3YXJlTG9nZ2VyID0gcmVxdWlyZSgnQGF3cy1zZGsvbWlkZGxld2FyZS1sb2dnZXInKTtcbnZhciBtaWRkbGV3YXJlUmVjdXJzaW9uRGV0ZWN0aW9uID0gcmVxdWlyZSgnQGF3cy1zZGsvbWlkZGxld2FyZS1yZWN1cnNpb24tZGV0ZWN0aW9uJyk7XG52YXIgbWlkZGxld2FyZVVzZXJBZ2VudCA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL21pZGRsZXdhcmUtdXNlci1hZ2VudCcpO1xudmFyIGNvbmZpZ1Jlc29sdmVyID0gcmVxdWlyZSgnQHNtaXRoeS9jb25maWctcmVzb2x2ZXInKTtcbnZhciBjb3JlID0gcmVxdWlyZSgnQHNtaXRoeS9jb3JlJyk7XG52YXIgc2NoZW1hID0gcmVxdWlyZSgnQHNtaXRoeS9jb3JlL3NjaGVtYScpO1xudmFyIGV2ZW50c3RyZWFtU2VyZGVDb25maWdSZXNvbHZlciA9IHJlcXVpcmUoJ0BzbWl0aHkvZXZlbnRzdHJlYW0tc2VyZGUtY29uZmlnLXJlc29sdmVyJyk7XG52YXIgbWlkZGxld2FyZUNvbnRlbnRMZW5ndGggPSByZXF1aXJlKCdAc21pdGh5L21pZGRsZXdhcmUtY29udGVudC1sZW5ndGgnKTtcbnZhciBtaWRkbGV3YXJlRW5kcG9pbnQgPSByZXF1aXJlKCdAc21pdGh5L21pZGRsZXdhcmUtZW5kcG9pbnQnKTtcbnZhciBtaWRkbGV3YXJlUmV0cnkgPSByZXF1aXJlKCdAc21pdGh5L21pZGRsZXdhcmUtcmV0cnknKTtcbnZhciBzbWl0aHlDbGllbnQgPSByZXF1aXJlKCdAc21pdGh5L3NtaXRoeS1jbGllbnQnKTtcbnZhciBodHRwQXV0aFNjaGVtZVByb3ZpZGVyID0gcmVxdWlyZSgnLi9hdXRoL2h0dHBBdXRoU2NoZW1lUHJvdmlkZXInKTtcbnZhciBydW50aW1lQ29uZmlnID0gcmVxdWlyZSgnLi9ydW50aW1lQ29uZmlnJyk7XG52YXIgcmVnaW9uQ29uZmlnUmVzb2x2ZXIgPSByZXF1aXJlKCdAYXdzLXNkay9yZWdpb24tY29uZmlnLXJlc29sdmVyJyk7XG52YXIgcHJvdG9jb2xIdHRwID0gcmVxdWlyZSgnQHNtaXRoeS9wcm90b2NvbC1odHRwJyk7XG52YXIgdXRpbFdhaXRlciA9IHJlcXVpcmUoJ0BzbWl0aHkvdXRpbC13YWl0ZXInKTtcblxuY29uc3QgcmVzb2x2ZUNsaWVudEVuZHBvaW50UGFyYW1ldGVycyA9IChvcHRpb25zKSA9PiB7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24ob3B0aW9ucywge1xuICAgICAgICB1c2VEdWFsc3RhY2tFbmRwb2ludDogb3B0aW9ucy51c2VEdWFsc3RhY2tFbmRwb2ludCA/PyBmYWxzZSxcbiAgICAgICAgdXNlRmlwc0VuZHBvaW50OiBvcHRpb25zLnVzZUZpcHNFbmRwb2ludCA/PyBmYWxzZSxcbiAgICAgICAgZGVmYXVsdFNpZ25pbmdOYW1lOiBcImxhbWJkYVwiLFxuICAgIH0pO1xufTtcbmNvbnN0IGNvbW1vblBhcmFtcyA9IHtcbiAgICBVc2VGSVBTOiB7IHR5cGU6IFwiYnVpbHRJblBhcmFtc1wiLCBuYW1lOiBcInVzZUZpcHNFbmRwb2ludFwiIH0sXG4gICAgRW5kcG9pbnQ6IHsgdHlwZTogXCJidWlsdEluUGFyYW1zXCIsIG5hbWU6IFwiZW5kcG9pbnRcIiB9LFxuICAgIFJlZ2lvbjogeyB0eXBlOiBcImJ1aWx0SW5QYXJhbXNcIiwgbmFtZTogXCJyZWdpb25cIiB9LFxuICAgIFVzZUR1YWxTdGFjazogeyB0eXBlOiBcImJ1aWx0SW5QYXJhbXNcIiwgbmFtZTogXCJ1c2VEdWFsc3RhY2tFbmRwb2ludFwiIH0sXG59O1xuXG5jb25zdCBnZXRIdHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24gPSAocnVudGltZUNvbmZpZykgPT4ge1xuICAgIGNvbnN0IF9odHRwQXV0aFNjaGVtZXMgPSBydW50aW1lQ29uZmlnLmh0dHBBdXRoU2NoZW1lcztcbiAgICBsZXQgX2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSBydW50aW1lQ29uZmlnLmh0dHBBdXRoU2NoZW1lUHJvdmlkZXI7XG4gICAgbGV0IF9jcmVkZW50aWFscyA9IHJ1bnRpbWVDb25maWcuY3JlZGVudGlhbHM7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc2V0SHR0cEF1dGhTY2hlbWUoaHR0cEF1dGhTY2hlbWUpIHtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gX2h0dHBBdXRoU2NoZW1lcy5maW5kSW5kZXgoKHNjaGVtZSkgPT4gc2NoZW1lLnNjaGVtZUlkID09PSBodHRwQXV0aFNjaGVtZS5zY2hlbWVJZCk7XG4gICAgICAgICAgICBpZiAoaW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgX2h0dHBBdXRoU2NoZW1lcy5wdXNoKGh0dHBBdXRoU2NoZW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIF9odHRwQXV0aFNjaGVtZXMuc3BsaWNlKGluZGV4LCAxLCBodHRwQXV0aFNjaGVtZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGh0dHBBdXRoU2NoZW1lcygpIHtcbiAgICAgICAgICAgIHJldHVybiBfaHR0cEF1dGhTY2hlbWVzO1xuICAgICAgICB9LFxuICAgICAgICBzZXRIdHRwQXV0aFNjaGVtZVByb3ZpZGVyKGh0dHBBdXRoU2NoZW1lUHJvdmlkZXIpIHtcbiAgICAgICAgICAgIF9odHRwQXV0aFNjaGVtZVByb3ZpZGVyID0gaHR0cEF1dGhTY2hlbWVQcm92aWRlcjtcbiAgICAgICAgfSxcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVQcm92aWRlcigpIHtcbiAgICAgICAgICAgIHJldHVybiBfaHR0cEF1dGhTY2hlbWVQcm92aWRlcjtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0Q3JlZGVudGlhbHMoY3JlZGVudGlhbHMpIHtcbiAgICAgICAgICAgIF9jcmVkZW50aWFscyA9IGNyZWRlbnRpYWxzO1xuICAgICAgICB9LFxuICAgICAgICBjcmVkZW50aWFscygpIHtcbiAgICAgICAgICAgIHJldHVybiBfY3JlZGVudGlhbHM7XG4gICAgICAgIH0sXG4gICAgfTtcbn07XG5jb25zdCByZXNvbHZlSHR0cEF1dGhSdW50aW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIGh0dHBBdXRoU2NoZW1lczogY29uZmlnLmh0dHBBdXRoU2NoZW1lcygpLFxuICAgICAgICBodHRwQXV0aFNjaGVtZVByb3ZpZGVyOiBjb25maWcuaHR0cEF1dGhTY2hlbWVQcm92aWRlcigpLFxuICAgICAgICBjcmVkZW50aWFsczogY29uZmlnLmNyZWRlbnRpYWxzKCksXG4gICAgfTtcbn07XG5cbmNvbnN0IHJlc29sdmVSdW50aW1lRXh0ZW5zaW9ucyA9IChydW50aW1lQ29uZmlnLCBleHRlbnNpb25zKSA9PiB7XG4gICAgY29uc3QgZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiA9IE9iamVjdC5hc3NpZ24ocmVnaW9uQ29uZmlnUmVzb2x2ZXIuZ2V0QXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbihydW50aW1lQ29uZmlnKSwgc21pdGh5Q2xpZW50LmdldERlZmF1bHRFeHRlbnNpb25Db25maWd1cmF0aW9uKHJ1bnRpbWVDb25maWcpLCBwcm90b2NvbEh0dHAuZ2V0SHR0cEhhbmRsZXJFeHRlbnNpb25Db25maWd1cmF0aW9uKHJ1bnRpbWVDb25maWcpLCBnZXRIdHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24ocnVudGltZUNvbmZpZykpO1xuICAgIGV4dGVuc2lvbnMuZm9yRWFjaCgoZXh0ZW5zaW9uKSA9PiBleHRlbnNpb24uY29uZmlndXJlKGV4dGVuc2lvbkNvbmZpZ3VyYXRpb24pKTtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihydW50aW1lQ29uZmlnLCByZWdpb25Db25maWdSZXNvbHZlci5yZXNvbHZlQXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbihleHRlbnNpb25Db25maWd1cmF0aW9uKSwgc21pdGh5Q2xpZW50LnJlc29sdmVEZWZhdWx0UnVudGltZUNvbmZpZyhleHRlbnNpb25Db25maWd1cmF0aW9uKSwgcHJvdG9jb2xIdHRwLnJlc29sdmVIdHRwSGFuZGxlclJ1bnRpbWVDb25maWcoZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiksIHJlc29sdmVIdHRwQXV0aFJ1bnRpbWVDb25maWcoZXh0ZW5zaW9uQ29uZmlndXJhdGlvbikpO1xufTtcblxuY2xhc3MgTGFtYmRhQ2xpZW50IGV4dGVuZHMgc21pdGh5Q2xpZW50LkNsaWVudCB7XG4gICAgY29uZmlnO1xuICAgIGNvbnN0cnVjdG9yKC4uLltjb25maWd1cmF0aW9uXSkge1xuICAgICAgICBjb25zdCBfY29uZmlnXzAgPSBydW50aW1lQ29uZmlnLmdldFJ1bnRpbWVDb25maWcoY29uZmlndXJhdGlvbiB8fCB7fSk7XG4gICAgICAgIHN1cGVyKF9jb25maWdfMCk7XG4gICAgICAgIHRoaXMuaW5pdENvbmZpZyA9IF9jb25maWdfMDtcbiAgICAgICAgY29uc3QgX2NvbmZpZ18xID0gcmVzb2x2ZUNsaWVudEVuZHBvaW50UGFyYW1ldGVycyhfY29uZmlnXzApO1xuICAgICAgICBjb25zdCBfY29uZmlnXzIgPSBtaWRkbGV3YXJlVXNlckFnZW50LnJlc29sdmVVc2VyQWdlbnRDb25maWcoX2NvbmZpZ18xKTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ18zID0gbWlkZGxld2FyZVJldHJ5LnJlc29sdmVSZXRyeUNvbmZpZyhfY29uZmlnXzIpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzQgPSBjb25maWdSZXNvbHZlci5yZXNvbHZlUmVnaW9uQ29uZmlnKF9jb25maWdfMyk7XG4gICAgICAgIGNvbnN0IF9jb25maWdfNSA9IG1pZGRsZXdhcmVIb3N0SGVhZGVyLnJlc29sdmVIb3N0SGVhZGVyQ29uZmlnKF9jb25maWdfNCk7XG4gICAgICAgIGNvbnN0IF9jb25maWdfNiA9IG1pZGRsZXdhcmVFbmRwb2ludC5yZXNvbHZlRW5kcG9pbnRDb25maWcoX2NvbmZpZ181KTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ183ID0gZXZlbnRzdHJlYW1TZXJkZUNvbmZpZ1Jlc29sdmVyLnJlc29sdmVFdmVudFN0cmVhbVNlcmRlQ29uZmlnKF9jb25maWdfNik7XG4gICAgICAgIGNvbnN0IF9jb25maWdfOCA9IGh0dHBBdXRoU2NoZW1lUHJvdmlkZXIucmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnKF9jb25maWdfNyk7XG4gICAgICAgIGNvbnN0IF9jb25maWdfOSA9IHJlc29sdmVSdW50aW1lRXh0ZW5zaW9ucyhfY29uZmlnXzgsIGNvbmZpZ3VyYXRpb24/LmV4dGVuc2lvbnMgfHwgW10pO1xuICAgICAgICB0aGlzLmNvbmZpZyA9IF9jb25maWdfOTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKHNjaGVtYS5nZXRTY2hlbWFTZXJkZVBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UobWlkZGxld2FyZVVzZXJBZ2VudC5nZXRVc2VyQWdlbnRQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKG1pZGRsZXdhcmVSZXRyeS5nZXRSZXRyeVBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UobWlkZGxld2FyZUNvbnRlbnRMZW5ndGguZ2V0Q29udGVudExlbmd0aFBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UobWlkZGxld2FyZUhvc3RIZWFkZXIuZ2V0SG9zdEhlYWRlclBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UobWlkZGxld2FyZUxvZ2dlci5nZXRMb2dnZXJQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKG1pZGRsZXdhcmVSZWN1cnNpb25EZXRlY3Rpb24uZ2V0UmVjdXJzaW9uRGV0ZWN0aW9uUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShjb3JlLmdldEh0dHBBdXRoU2NoZW1lRW5kcG9pbnRSdWxlU2V0UGx1Z2luKHRoaXMuY29uZmlnLCB7XG4gICAgICAgICAgICBodHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlcjogaHR0cEF1dGhTY2hlbWVQcm92aWRlci5kZWZhdWx0TGFtYmRhSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIsXG4gICAgICAgICAgICBpZGVudGl0eVByb3ZpZGVyQ29uZmlnUHJvdmlkZXI6IGFzeW5jIChjb25maWcpID0+IG5ldyBjb3JlLkRlZmF1bHRJZGVudGl0eVByb3ZpZGVyQ29uZmlnKHtcbiAgICAgICAgICAgICAgICBcImF3cy5hdXRoI3NpZ3Y0XCI6IGNvbmZpZy5jcmVkZW50aWFscyxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICB9KSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShjb3JlLmdldEh0dHBTaWduaW5nUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgfVxuICAgIGRlc3Ryb3koKSB7XG4gICAgICAgIHN1cGVyLmRlc3Ryb3koKTtcbiAgICB9XG59XG5cbmxldCBMYW1iZGFTZXJ2aWNlRXhjZXB0aW9uJDEgPSBjbGFzcyBMYW1iZGFTZXJ2aWNlRXhjZXB0aW9uIGV4dGVuZHMgc21pdGh5Q2xpZW50LlNlcnZpY2VFeGNlcHRpb24ge1xuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnMpIHtcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBMYW1iZGFTZXJ2aWNlRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgfVxufTtcblxubGV0IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUV4Y2VwdGlvbiQxID0gY2xhc3MgSW52YWxpZFBhcmFtZXRlclZhbHVlRXhjZXB0aW9uIGV4dGVuZHMgTGFtYmRhU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJJbnZhbGlkUGFyYW1ldGVyVmFsdWVFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIFR5cGU7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkludmFsaWRQYXJhbWV0ZXJWYWx1ZUV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5UeXBlID0gb3B0cy5UeXBlO1xuICAgIH1cbn07XG5sZXQgUG9saWN5TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24kMSA9IGNsYXNzIFBvbGljeUxlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uIGV4dGVuZHMgTGFtYmRhU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJQb2xpY3lMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgVHlwZTtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiUG9saWN5TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgUG9saWN5TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5UeXBlID0gb3B0cy5UeXBlO1xuICAgIH1cbn07XG5sZXQgUHJlY29uZGl0aW9uRmFpbGVkRXhjZXB0aW9uJDEgPSBjbGFzcyBQcmVjb25kaXRpb25GYWlsZWRFeGNlcHRpb24gZXh0ZW5kcyBMYW1iZGFTZXJ2aWNlRXhjZXB0aW9uJDEge1xuICAgIG5hbWUgPSBcIlByZWNvbmRpdGlvbkZhaWxlZEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgVHlwZTtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiUHJlY29uZGl0aW9uRmFpbGVkRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFByZWNvbmRpdGlvbkZhaWxlZEV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLlR5cGUgPSBvcHRzLlR5cGU7XG4gICAgfVxufTtcbmxldCBSZXNvdXJjZUNvbmZsaWN0RXhjZXB0aW9uJDEgPSBjbGFzcyBSZXNvdXJjZUNvbmZsaWN0RXhjZXB0aW9uIGV4dGVuZHMgTGFtYmRhU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJSZXNvdXJjZUNvbmZsaWN0RXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBUeXBlO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJSZXNvdXJjZUNvbmZsaWN0RXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFJlc291cmNlQ29uZmxpY3RFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5UeXBlID0gb3B0cy5UeXBlO1xuICAgIH1cbn07XG5sZXQgUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvbiQxID0gY2xhc3MgUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvbiBleHRlbmRzIExhbWJkYVNlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgVHlwZTtcbiAgICBNZXNzYWdlO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFJlc291cmNlTm90Rm91bmRFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5UeXBlID0gb3B0cy5UeXBlO1xuICAgICAgICB0aGlzLk1lc3NhZ2UgPSBvcHRzLk1lc3NhZ2U7XG4gICAgfVxufTtcbmxldCBTZXJ2aWNlRXhjZXB0aW9uJDEgPSBjbGFzcyBTZXJ2aWNlRXhjZXB0aW9uIGV4dGVuZHMgTGFtYmRhU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJTZXJ2aWNlRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJzZXJ2ZXJcIjtcbiAgICBUeXBlO1xuICAgIE1lc3NhZ2U7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIlNlcnZpY2VFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJzZXJ2ZXJcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgU2VydmljZUV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLlR5cGUgPSBvcHRzLlR5cGU7XG4gICAgICAgIHRoaXMuTWVzc2FnZSA9IG9wdHMuTWVzc2FnZTtcbiAgICB9XG59O1xubGV0IFRvb01hbnlSZXF1ZXN0c0V4Y2VwdGlvbiQxID0gY2xhc3MgVG9vTWFueVJlcXVlc3RzRXhjZXB0aW9uIGV4dGVuZHMgTGFtYmRhU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJUb29NYW55UmVxdWVzdHNFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIHJldHJ5QWZ0ZXJTZWNvbmRzO1xuICAgIFR5cGU7XG4gICAgUmVhc29uO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJUb29NYW55UmVxdWVzdHNFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgVG9vTWFueVJlcXVlc3RzRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMucmV0cnlBZnRlclNlY29uZHMgPSBvcHRzLnJldHJ5QWZ0ZXJTZWNvbmRzO1xuICAgICAgICB0aGlzLlR5cGUgPSBvcHRzLlR5cGU7XG4gICAgICAgIHRoaXMuUmVhc29uID0gb3B0cy5SZWFzb247XG4gICAgfVxufTtcbmxldCBDYXBhY2l0eVByb3ZpZGVyTGltaXRFeGNlZWRlZEV4Y2VwdGlvbiQxID0gY2xhc3MgQ2FwYWNpdHlQcm92aWRlckxpbWl0RXhjZWVkZWRFeGNlcHRpb24gZXh0ZW5kcyBMYW1iZGFTZXJ2aWNlRXhjZXB0aW9uJDEge1xuICAgIG5hbWUgPSBcIkNhcGFjaXR5UHJvdmlkZXJMaW1pdEV4Y2VlZGVkRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBUeXBlO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJDYXBhY2l0eVByb3ZpZGVyTGltaXRFeGNlZWRlZEV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBDYXBhY2l0eVByb3ZpZGVyTGltaXRFeGNlZWRlZEV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLlR5cGUgPSBvcHRzLlR5cGU7XG4gICAgfVxufTtcbmxldCBSZXNvdXJjZUluVXNlRXhjZXB0aW9uJDEgPSBjbGFzcyBSZXNvdXJjZUluVXNlRXhjZXB0aW9uIGV4dGVuZHMgTGFtYmRhU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJSZXNvdXJjZUluVXNlRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBUeXBlO1xuICAgIE1lc3NhZ2U7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIlJlc291cmNlSW5Vc2VFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgUmVzb3VyY2VJblVzZUV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLlR5cGUgPSBvcHRzLlR5cGU7XG4gICAgICAgIHRoaXMuTWVzc2FnZSA9IG9wdHMuTWVzc2FnZTtcbiAgICB9XG59O1xubGV0IENvZGVTaWduaW5nQ29uZmlnTm90Rm91bmRFeGNlcHRpb24kMSA9IGNsYXNzIENvZGVTaWduaW5nQ29uZmlnTm90Rm91bmRFeGNlcHRpb24gZXh0ZW5kcyBMYW1iZGFTZXJ2aWNlRXhjZXB0aW9uJDEge1xuICAgIG5hbWUgPSBcIkNvZGVTaWduaW5nQ29uZmlnTm90Rm91bmRFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIFR5cGU7XG4gICAgTWVzc2FnZTtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiQ29kZVNpZ25pbmdDb25maWdOb3RGb3VuZEV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBDb2RlU2lnbmluZ0NvbmZpZ05vdEZvdW5kRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuVHlwZSA9IG9wdHMuVHlwZTtcbiAgICAgICAgdGhpcy5NZXNzYWdlID0gb3B0cy5NZXNzYWdlO1xuICAgIH1cbn07XG5sZXQgQ29kZVN0b3JhZ2VFeGNlZWRlZEV4Y2VwdGlvbiQxID0gY2xhc3MgQ29kZVN0b3JhZ2VFeGNlZWRlZEV4Y2VwdGlvbiBleHRlbmRzIExhbWJkYVNlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiQ29kZVN0b3JhZ2VFeGNlZWRlZEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgVHlwZTtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiQ29kZVN0b3JhZ2VFeGNlZWRlZEV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBDb2RlU3RvcmFnZUV4Y2VlZGVkRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuVHlwZSA9IG9wdHMuVHlwZTtcbiAgICB9XG59O1xubGV0IENvZGVWZXJpZmljYXRpb25GYWlsZWRFeGNlcHRpb24kMSA9IGNsYXNzIENvZGVWZXJpZmljYXRpb25GYWlsZWRFeGNlcHRpb24gZXh0ZW5kcyBMYW1iZGFTZXJ2aWNlRXhjZXB0aW9uJDEge1xuICAgIG5hbWUgPSBcIkNvZGVWZXJpZmljYXRpb25GYWlsZWRFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIFR5cGU7XG4gICAgTWVzc2FnZTtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiQ29kZVZlcmlmaWNhdGlvbkZhaWxlZEV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBDb2RlVmVyaWZpY2F0aW9uRmFpbGVkRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuVHlwZSA9IG9wdHMuVHlwZTtcbiAgICAgICAgdGhpcy5NZXNzYWdlID0gb3B0cy5NZXNzYWdlO1xuICAgIH1cbn07XG5sZXQgRnVuY3Rpb25WZXJzaW9uc1BlckNhcGFjaXR5UHJvdmlkZXJMaW1pdEV4Y2VlZGVkRXhjZXB0aW9uJDEgPSBjbGFzcyBGdW5jdGlvblZlcnNpb25zUGVyQ2FwYWNpdHlQcm92aWRlckxpbWl0RXhjZWVkZWRFeGNlcHRpb24gZXh0ZW5kcyBMYW1iZGFTZXJ2aWNlRXhjZXB0aW9uJDEge1xuICAgIG5hbWUgPSBcIkZ1bmN0aW9uVmVyc2lvbnNQZXJDYXBhY2l0eVByb3ZpZGVyTGltaXRFeGNlZWRlZEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgVHlwZTtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiRnVuY3Rpb25WZXJzaW9uc1BlckNhcGFjaXR5UHJvdmlkZXJMaW1pdEV4Y2VlZGVkRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEZ1bmN0aW9uVmVyc2lvbnNQZXJDYXBhY2l0eVByb3ZpZGVyTGltaXRFeGNlZWRlZEV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLlR5cGUgPSBvcHRzLlR5cGU7XG4gICAgfVxufTtcbmxldCBJbnZhbGlkQ29kZVNpZ25hdHVyZUV4Y2VwdGlvbiQxID0gY2xhc3MgSW52YWxpZENvZGVTaWduYXR1cmVFeGNlcHRpb24gZXh0ZW5kcyBMYW1iZGFTZXJ2aWNlRXhjZXB0aW9uJDEge1xuICAgIG5hbWUgPSBcIkludmFsaWRDb2RlU2lnbmF0dXJlRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBUeXBlO1xuICAgIE1lc3NhZ2U7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkludmFsaWRDb2RlU2lnbmF0dXJlRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEludmFsaWRDb2RlU2lnbmF0dXJlRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuVHlwZSA9IG9wdHMuVHlwZTtcbiAgICAgICAgdGhpcy5NZXNzYWdlID0gb3B0cy5NZXNzYWdlO1xuICAgIH1cbn07XG5sZXQgRHVyYWJsZUV4ZWN1dGlvbkFscmVhZHlTdGFydGVkRXhjZXB0aW9uJDEgPSBjbGFzcyBEdXJhYmxlRXhlY3V0aW9uQWxyZWFkeVN0YXJ0ZWRFeGNlcHRpb24gZXh0ZW5kcyBMYW1iZGFTZXJ2aWNlRXhjZXB0aW9uJDEge1xuICAgIG5hbWUgPSBcIkR1cmFibGVFeGVjdXRpb25BbHJlYWR5U3RhcnRlZEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgVHlwZTtcbiAgICBNZXNzYWdlO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJEdXJhYmxlRXhlY3V0aW9uQWxyZWFkeVN0YXJ0ZWRFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgRHVyYWJsZUV4ZWN1dGlvbkFscmVhZHlTdGFydGVkRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuVHlwZSA9IG9wdHMuVHlwZTtcbiAgICAgICAgdGhpcy5NZXNzYWdlID0gb3B0cy5NZXNzYWdlO1xuICAgIH1cbn07XG5sZXQgRUMyQWNjZXNzRGVuaWVkRXhjZXB0aW9uJDEgPSBjbGFzcyBFQzJBY2Nlc3NEZW5pZWRFeGNlcHRpb24gZXh0ZW5kcyBMYW1iZGFTZXJ2aWNlRXhjZXB0aW9uJDEge1xuICAgIG5hbWUgPSBcIkVDMkFjY2Vzc0RlbmllZEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwic2VydmVyXCI7XG4gICAgVHlwZTtcbiAgICBNZXNzYWdlO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJFQzJBY2Nlc3NEZW5pZWRFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJzZXJ2ZXJcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgRUMyQWNjZXNzRGVuaWVkRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuVHlwZSA9IG9wdHMuVHlwZTtcbiAgICAgICAgdGhpcy5NZXNzYWdlID0gb3B0cy5NZXNzYWdlO1xuICAgIH1cbn07XG5sZXQgRUMyVGhyb3R0bGVkRXhjZXB0aW9uJDEgPSBjbGFzcyBFQzJUaHJvdHRsZWRFeGNlcHRpb24gZXh0ZW5kcyBMYW1iZGFTZXJ2aWNlRXhjZXB0aW9uJDEge1xuICAgIG5hbWUgPSBcIkVDMlRocm90dGxlZEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwic2VydmVyXCI7XG4gICAgVHlwZTtcbiAgICBNZXNzYWdlO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJFQzJUaHJvdHRsZWRFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJzZXJ2ZXJcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgRUMyVGhyb3R0bGVkRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuVHlwZSA9IG9wdHMuVHlwZTtcbiAgICAgICAgdGhpcy5NZXNzYWdlID0gb3B0cy5NZXNzYWdlO1xuICAgIH1cbn07XG5sZXQgRUMyVW5leHBlY3RlZEV4Y2VwdGlvbiQxID0gY2xhc3MgRUMyVW5leHBlY3RlZEV4Y2VwdGlvbiBleHRlbmRzIExhbWJkYVNlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiRUMyVW5leHBlY3RlZEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwic2VydmVyXCI7XG4gICAgVHlwZTtcbiAgICBNZXNzYWdlO1xuICAgIEVDMkVycm9yQ29kZTtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiRUMyVW5leHBlY3RlZEV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcInNlcnZlclwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBFQzJVbmV4cGVjdGVkRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuVHlwZSA9IG9wdHMuVHlwZTtcbiAgICAgICAgdGhpcy5NZXNzYWdlID0gb3B0cy5NZXNzYWdlO1xuICAgICAgICB0aGlzLkVDMkVycm9yQ29kZSA9IG9wdHMuRUMyRXJyb3JDb2RlO1xuICAgIH1cbn07XG5sZXQgRUZTSU9FeGNlcHRpb24kMSA9IGNsYXNzIEVGU0lPRXhjZXB0aW9uIGV4dGVuZHMgTGFtYmRhU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJFRlNJT0V4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgVHlwZTtcbiAgICBNZXNzYWdlO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJFRlNJT0V4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBFRlNJT0V4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLlR5cGUgPSBvcHRzLlR5cGU7XG4gICAgICAgIHRoaXMuTWVzc2FnZSA9IG9wdHMuTWVzc2FnZTtcbiAgICB9XG59O1xubGV0IEVGU01vdW50Q29ubmVjdGl2aXR5RXhjZXB0aW9uJDEgPSBjbGFzcyBFRlNNb3VudENvbm5lY3Rpdml0eUV4Y2VwdGlvbiBleHRlbmRzIExhbWJkYVNlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiRUZTTW91bnRDb25uZWN0aXZpdHlFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIFR5cGU7XG4gICAgTWVzc2FnZTtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiRUZTTW91bnRDb25uZWN0aXZpdHlFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgRUZTTW91bnRDb25uZWN0aXZpdHlFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5UeXBlID0gb3B0cy5UeXBlO1xuICAgICAgICB0aGlzLk1lc3NhZ2UgPSBvcHRzLk1lc3NhZ2U7XG4gICAgfVxufTtcbmxldCBFRlNNb3VudEZhaWx1cmVFeGNlcHRpb24kMSA9IGNsYXNzIEVGU01vdW50RmFpbHVyZUV4Y2VwdGlvbiBleHRlbmRzIExhbWJkYVNlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiRUZTTW91bnRGYWlsdXJlRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBUeXBlO1xuICAgIE1lc3NhZ2U7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkVGU01vdW50RmFpbHVyZUV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBFRlNNb3VudEZhaWx1cmVFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5UeXBlID0gb3B0cy5UeXBlO1xuICAgICAgICB0aGlzLk1lc3NhZ2UgPSBvcHRzLk1lc3NhZ2U7XG4gICAgfVxufTtcbmxldCBFRlNNb3VudFRpbWVvdXRFeGNlcHRpb24kMSA9IGNsYXNzIEVGU01vdW50VGltZW91dEV4Y2VwdGlvbiBleHRlbmRzIExhbWJkYVNlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiRUZTTW91bnRUaW1lb3V0RXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBUeXBlO1xuICAgIE1lc3NhZ2U7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkVGU01vdW50VGltZW91dEV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBFRlNNb3VudFRpbWVvdXRFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5UeXBlID0gb3B0cy5UeXBlO1xuICAgICAgICB0aGlzLk1lc3NhZ2UgPSBvcHRzLk1lc3NhZ2U7XG4gICAgfVxufTtcbmxldCBFTklMaW1pdFJlYWNoZWRFeGNlcHRpb24kMSA9IGNsYXNzIEVOSUxpbWl0UmVhY2hlZEV4Y2VwdGlvbiBleHRlbmRzIExhbWJkYVNlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiRU5JTGltaXRSZWFjaGVkRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJzZXJ2ZXJcIjtcbiAgICBUeXBlO1xuICAgIE1lc3NhZ2U7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkVOSUxpbWl0UmVhY2hlZEV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcInNlcnZlclwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBFTklMaW1pdFJlYWNoZWRFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5UeXBlID0gb3B0cy5UeXBlO1xuICAgICAgICB0aGlzLk1lc3NhZ2UgPSBvcHRzLk1lc3NhZ2U7XG4gICAgfVxufTtcbmxldCBJbnZhbGlkUmVxdWVzdENvbnRlbnRFeGNlcHRpb24kMSA9IGNsYXNzIEludmFsaWRSZXF1ZXN0Q29udGVudEV4Y2VwdGlvbiBleHRlbmRzIExhbWJkYVNlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiSW52YWxpZFJlcXVlc3RDb250ZW50RXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBUeXBlO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJJbnZhbGlkUmVxdWVzdENvbnRlbnRFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgSW52YWxpZFJlcXVlc3RDb250ZW50RXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuVHlwZSA9IG9wdHMuVHlwZTtcbiAgICB9XG59O1xubGV0IEludmFsaWRSdW50aW1lRXhjZXB0aW9uJDEgPSBjbGFzcyBJbnZhbGlkUnVudGltZUV4Y2VwdGlvbiBleHRlbmRzIExhbWJkYVNlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiSW52YWxpZFJ1bnRpbWVFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcInNlcnZlclwiO1xuICAgIFR5cGU7XG4gICAgTWVzc2FnZTtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiSW52YWxpZFJ1bnRpbWVFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJzZXJ2ZXJcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgSW52YWxpZFJ1bnRpbWVFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5UeXBlID0gb3B0cy5UeXBlO1xuICAgICAgICB0aGlzLk1lc3NhZ2UgPSBvcHRzLk1lc3NhZ2U7XG4gICAgfVxufTtcbmxldCBJbnZhbGlkU2VjdXJpdHlHcm91cElERXhjZXB0aW9uJDEgPSBjbGFzcyBJbnZhbGlkU2VjdXJpdHlHcm91cElERXhjZXB0aW9uIGV4dGVuZHMgTGFtYmRhU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJJbnZhbGlkU2VjdXJpdHlHcm91cElERXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJzZXJ2ZXJcIjtcbiAgICBUeXBlO1xuICAgIE1lc3NhZ2U7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkludmFsaWRTZWN1cml0eUdyb3VwSURFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJzZXJ2ZXJcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgSW52YWxpZFNlY3VyaXR5R3JvdXBJREV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLlR5cGUgPSBvcHRzLlR5cGU7XG4gICAgICAgIHRoaXMuTWVzc2FnZSA9IG9wdHMuTWVzc2FnZTtcbiAgICB9XG59O1xubGV0IEludmFsaWRTdWJuZXRJREV4Y2VwdGlvbiQxID0gY2xhc3MgSW52YWxpZFN1Ym5ldElERXhjZXB0aW9uIGV4dGVuZHMgTGFtYmRhU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJJbnZhbGlkU3VibmV0SURFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcInNlcnZlclwiO1xuICAgIFR5cGU7XG4gICAgTWVzc2FnZTtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiSW52YWxpZFN1Ym5ldElERXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwic2VydmVyXCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEludmFsaWRTdWJuZXRJREV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLlR5cGUgPSBvcHRzLlR5cGU7XG4gICAgICAgIHRoaXMuTWVzc2FnZSA9IG9wdHMuTWVzc2FnZTtcbiAgICB9XG59O1xubGV0IEludmFsaWRaaXBGaWxlRXhjZXB0aW9uJDEgPSBjbGFzcyBJbnZhbGlkWmlwRmlsZUV4Y2VwdGlvbiBleHRlbmRzIExhbWJkYVNlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiSW52YWxpZFppcEZpbGVFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcInNlcnZlclwiO1xuICAgIFR5cGU7XG4gICAgTWVzc2FnZTtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiSW52YWxpZFppcEZpbGVFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJzZXJ2ZXJcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgSW52YWxpZFppcEZpbGVFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5UeXBlID0gb3B0cy5UeXBlO1xuICAgICAgICB0aGlzLk1lc3NhZ2UgPSBvcHRzLk1lc3NhZ2U7XG4gICAgfVxufTtcbmxldCBLTVNBY2Nlc3NEZW5pZWRFeGNlcHRpb24kMSA9IGNsYXNzIEtNU0FjY2Vzc0RlbmllZEV4Y2VwdGlvbiBleHRlbmRzIExhbWJkYVNlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiS01TQWNjZXNzRGVuaWVkRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJzZXJ2ZXJcIjtcbiAgICBUeXBlO1xuICAgIE1lc3NhZ2U7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIktNU0FjY2Vzc0RlbmllZEV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcInNlcnZlclwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBLTVNBY2Nlc3NEZW5pZWRFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5UeXBlID0gb3B0cy5UeXBlO1xuICAgICAgICB0aGlzLk1lc3NhZ2UgPSBvcHRzLk1lc3NhZ2U7XG4gICAgfVxufTtcbmxldCBLTVNEaXNhYmxlZEV4Y2VwdGlvbiQxID0gY2xhc3MgS01TRGlzYWJsZWRFeGNlcHRpb24gZXh0ZW5kcyBMYW1iZGFTZXJ2aWNlRXhjZXB0aW9uJDEge1xuICAgIG5hbWUgPSBcIktNU0Rpc2FibGVkRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJzZXJ2ZXJcIjtcbiAgICBUeXBlO1xuICAgIE1lc3NhZ2U7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIktNU0Rpc2FibGVkRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwic2VydmVyXCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEtNU0Rpc2FibGVkRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuVHlwZSA9IG9wdHMuVHlwZTtcbiAgICAgICAgdGhpcy5NZXNzYWdlID0gb3B0cy5NZXNzYWdlO1xuICAgIH1cbn07XG5sZXQgS01TSW52YWxpZFN0YXRlRXhjZXB0aW9uJDEgPSBjbGFzcyBLTVNJbnZhbGlkU3RhdGVFeGNlcHRpb24gZXh0ZW5kcyBMYW1iZGFTZXJ2aWNlRXhjZXB0aW9uJDEge1xuICAgIG5hbWUgPSBcIktNU0ludmFsaWRTdGF0ZUV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwic2VydmVyXCI7XG4gICAgVHlwZTtcbiAgICBNZXNzYWdlO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJLTVNJbnZhbGlkU3RhdGVFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJzZXJ2ZXJcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgS01TSW52YWxpZFN0YXRlRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuVHlwZSA9IG9wdHMuVHlwZTtcbiAgICAgICAgdGhpcy5NZXNzYWdlID0gb3B0cy5NZXNzYWdlO1xuICAgIH1cbn07XG5sZXQgS01TTm90Rm91bmRFeGNlcHRpb24kMSA9IGNsYXNzIEtNU05vdEZvdW5kRXhjZXB0aW9uIGV4dGVuZHMgTGFtYmRhU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJLTVNOb3RGb3VuZEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwic2VydmVyXCI7XG4gICAgVHlwZTtcbiAgICBNZXNzYWdlO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJLTVNOb3RGb3VuZEV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcInNlcnZlclwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBLTVNOb3RGb3VuZEV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLlR5cGUgPSBvcHRzLlR5cGU7XG4gICAgICAgIHRoaXMuTWVzc2FnZSA9IG9wdHMuTWVzc2FnZTtcbiAgICB9XG59O1xubGV0IE5vUHVibGlzaGVkVmVyc2lvbkV4Y2VwdGlvbiQxID0gY2xhc3MgTm9QdWJsaXNoZWRWZXJzaW9uRXhjZXB0aW9uIGV4dGVuZHMgTGFtYmRhU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJOb1B1Ymxpc2hlZFZlcnNpb25FeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIFR5cGU7XG4gICAgTWVzc2FnZTtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiTm9QdWJsaXNoZWRWZXJzaW9uRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIE5vUHVibGlzaGVkVmVyc2lvbkV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLlR5cGUgPSBvcHRzLlR5cGU7XG4gICAgICAgIHRoaXMuTWVzc2FnZSA9IG9wdHMuTWVzc2FnZTtcbiAgICB9XG59O1xubGV0IFJlY3Vyc2l2ZUludm9jYXRpb25FeGNlcHRpb24kMSA9IGNsYXNzIFJlY3Vyc2l2ZUludm9jYXRpb25FeGNlcHRpb24gZXh0ZW5kcyBMYW1iZGFTZXJ2aWNlRXhjZXB0aW9uJDEge1xuICAgIG5hbWUgPSBcIlJlY3Vyc2l2ZUludm9jYXRpb25FeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIFR5cGU7XG4gICAgTWVzc2FnZTtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiUmVjdXJzaXZlSW52b2NhdGlvbkV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBSZWN1cnNpdmVJbnZvY2F0aW9uRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuVHlwZSA9IG9wdHMuVHlwZTtcbiAgICAgICAgdGhpcy5NZXNzYWdlID0gb3B0cy5NZXNzYWdlO1xuICAgIH1cbn07XG5sZXQgUmVxdWVzdFRvb0xhcmdlRXhjZXB0aW9uJDEgPSBjbGFzcyBSZXF1ZXN0VG9vTGFyZ2VFeGNlcHRpb24gZXh0ZW5kcyBMYW1iZGFTZXJ2aWNlRXhjZXB0aW9uJDEge1xuICAgIG5hbWUgPSBcIlJlcXVlc3RUb29MYXJnZUV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgVHlwZTtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiUmVxdWVzdFRvb0xhcmdlRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFJlcXVlc3RUb29MYXJnZUV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLlR5cGUgPSBvcHRzLlR5cGU7XG4gICAgfVxufTtcbmxldCBSZXNvdXJjZU5vdFJlYWR5RXhjZXB0aW9uJDEgPSBjbGFzcyBSZXNvdXJjZU5vdFJlYWR5RXhjZXB0aW9uIGV4dGVuZHMgTGFtYmRhU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJSZXNvdXJjZU5vdFJlYWR5RXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJzZXJ2ZXJcIjtcbiAgICBUeXBlO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJSZXNvdXJjZU5vdFJlYWR5RXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwic2VydmVyXCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFJlc291cmNlTm90UmVhZHlFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5UeXBlID0gb3B0cy5UeXBlO1xuICAgIH1cbn07XG5sZXQgU2VyaWFsaXplZFJlcXVlc3RFbnRpdHlUb29MYXJnZUV4Y2VwdGlvbiQxID0gY2xhc3MgU2VyaWFsaXplZFJlcXVlc3RFbnRpdHlUb29MYXJnZUV4Y2VwdGlvbiBleHRlbmRzIExhbWJkYVNlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiU2VyaWFsaXplZFJlcXVlc3RFbnRpdHlUb29MYXJnZUV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgVHlwZTtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiU2VyaWFsaXplZFJlcXVlc3RFbnRpdHlUb29MYXJnZUV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBTZXJpYWxpemVkUmVxdWVzdEVudGl0eVRvb0xhcmdlRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuVHlwZSA9IG9wdHMuVHlwZTtcbiAgICB9XG59O1xubGV0IFNuYXBTdGFydEV4Y2VwdGlvbiQxID0gY2xhc3MgU25hcFN0YXJ0RXhjZXB0aW9uIGV4dGVuZHMgTGFtYmRhU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJTbmFwU3RhcnRFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIFR5cGU7XG4gICAgTWVzc2FnZTtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiU25hcFN0YXJ0RXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFNuYXBTdGFydEV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLlR5cGUgPSBvcHRzLlR5cGU7XG4gICAgICAgIHRoaXMuTWVzc2FnZSA9IG9wdHMuTWVzc2FnZTtcbiAgICB9XG59O1xubGV0IFNuYXBTdGFydE5vdFJlYWR5RXhjZXB0aW9uJDEgPSBjbGFzcyBTbmFwU3RhcnROb3RSZWFkeUV4Y2VwdGlvbiBleHRlbmRzIExhbWJkYVNlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiU25hcFN0YXJ0Tm90UmVhZHlFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIFR5cGU7XG4gICAgTWVzc2FnZTtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiU25hcFN0YXJ0Tm90UmVhZHlFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgU25hcFN0YXJ0Tm90UmVhZHlFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5UeXBlID0gb3B0cy5UeXBlO1xuICAgICAgICB0aGlzLk1lc3NhZ2UgPSBvcHRzLk1lc3NhZ2U7XG4gICAgfVxufTtcbmxldCBTbmFwU3RhcnRUaW1lb3V0RXhjZXB0aW9uJDEgPSBjbGFzcyBTbmFwU3RhcnRUaW1lb3V0RXhjZXB0aW9uIGV4dGVuZHMgTGFtYmRhU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJTbmFwU3RhcnRUaW1lb3V0RXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBUeXBlO1xuICAgIE1lc3NhZ2U7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIlNuYXBTdGFydFRpbWVvdXRFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgU25hcFN0YXJ0VGltZW91dEV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLlR5cGUgPSBvcHRzLlR5cGU7XG4gICAgICAgIHRoaXMuTWVzc2FnZSA9IG9wdHMuTWVzc2FnZTtcbiAgICB9XG59O1xubGV0IFN1Ym5ldElQQWRkcmVzc0xpbWl0UmVhY2hlZEV4Y2VwdGlvbiQxID0gY2xhc3MgU3VibmV0SVBBZGRyZXNzTGltaXRSZWFjaGVkRXhjZXB0aW9uIGV4dGVuZHMgTGFtYmRhU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJTdWJuZXRJUEFkZHJlc3NMaW1pdFJlYWNoZWRFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcInNlcnZlclwiO1xuICAgIFR5cGU7XG4gICAgTWVzc2FnZTtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiU3VibmV0SVBBZGRyZXNzTGltaXRSZWFjaGVkRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwic2VydmVyXCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFN1Ym5ldElQQWRkcmVzc0xpbWl0UmVhY2hlZEV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLlR5cGUgPSBvcHRzLlR5cGU7XG4gICAgICAgIHRoaXMuTWVzc2FnZSA9IG9wdHMuTWVzc2FnZTtcbiAgICB9XG59O1xubGV0IFVuc3VwcG9ydGVkTWVkaWFUeXBlRXhjZXB0aW9uJDEgPSBjbGFzcyBVbnN1cHBvcnRlZE1lZGlhVHlwZUV4Y2VwdGlvbiBleHRlbmRzIExhbWJkYVNlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiVW5zdXBwb3J0ZWRNZWRpYVR5cGVFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIFR5cGU7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIlVuc3VwcG9ydGVkTWVkaWFUeXBlRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFVuc3VwcG9ydGVkTWVkaWFUeXBlRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuVHlwZSA9IG9wdHMuVHlwZTtcbiAgICB9XG59O1xubGV0IFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdOb3RGb3VuZEV4Y2VwdGlvbiQxID0gY2xhc3MgUHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ05vdEZvdW5kRXhjZXB0aW9uIGV4dGVuZHMgTGFtYmRhU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnTm90Rm91bmRFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIFR5cGU7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIlByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdOb3RGb3VuZEV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnTm90Rm91bmRFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5UeXBlID0gb3B0cy5UeXBlO1xuICAgIH1cbn07XG5sZXQgQ2FsbGJhY2tUaW1lb3V0RXhjZXB0aW9uJDEgPSBjbGFzcyBDYWxsYmFja1RpbWVvdXRFeGNlcHRpb24gZXh0ZW5kcyBMYW1iZGFTZXJ2aWNlRXhjZXB0aW9uJDEge1xuICAgIG5hbWUgPSBcIkNhbGxiYWNrVGltZW91dEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgVHlwZTtcbiAgICBNZXNzYWdlO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJDYWxsYmFja1RpbWVvdXRFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgQ2FsbGJhY2tUaW1lb3V0RXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuVHlwZSA9IG9wdHMuVHlwZTtcbiAgICAgICAgdGhpcy5NZXNzYWdlID0gb3B0cy5NZXNzYWdlO1xuICAgIH1cbn07XG5cbmNvbnN0IF9BID0gXCJBY3Rpb25cIjtcbmNvbnN0IF9BQSA9IFwiQWxpYXNBcm5cIjtcbmNvbnN0IF9BQyA9IFwiQWxpYXNDb25maWd1cmF0aW9uXCI7XG5jb25zdCBfQUNjID0gXCJBY2Nlc3NDb25maWdzXCI7XG5jb25zdCBfQUNsID0gXCJBbGxvd0NyZWRlbnRpYWxzXCI7XG5jb25zdCBfQUZTQyA9IFwiQXBwbGllZEZ1bmN0aW9uU2NhbGluZ0NvbmZpZ1wiO1xuY29uc3QgX0FIID0gXCJBbGxvd0hlYWRlcnNcIjtcbmNvbnN0IF9BSVQgPSBcIkFsbG93ZWRJbnN0YW5jZVR5cGVzXCI7XG5jb25zdCBfQUwgPSBcIkFjY291bnRMaW1pdFwiO1xuY29uc3QgX0FMTCA9IFwiQXBwbGljYXRpb25Mb2dMZXZlbFwiO1xuY29uc3QgX0FMVlAgPSBcIkFkZExheWVyVmVyc2lvblBlcm1pc3Npb25cIjtcbmNvbnN0IF9BTFZQUiA9IFwiQWRkTGF5ZXJWZXJzaW9uUGVybWlzc2lvblJlcXVlc3RcIjtcbmNvbnN0IF9BTFZQUmQgPSBcIkFkZExheWVyVmVyc2lvblBlcm1pc3Npb25SZXNwb25zZVwiO1xuY29uc3QgX0FMbCA9IFwiQWxpYXNMaXN0XCI7XG5jb25zdCBfQU0gPSBcIkFsbG93TWV0aG9kc1wiO1xuY29uc3QgX0FNS0VTQyA9IFwiQW1hem9uTWFuYWdlZEthZmthRXZlbnRTb3VyY2VDb25maWdcIjtcbmNvbnN0IF9BTyA9IFwiQWxsb3dPcmlnaW5zXCI7XG5jb25zdCBfQU9wID0gXCJBcHBseU9uXCI7XG5jb25zdCBfQVAgPSBcIkFsbG93ZWRQdWJsaXNoZXJzXCI7XG5jb25zdCBfQVBDRSA9IFwiQXZhaWxhYmxlUHJvdmlzaW9uZWRDb25jdXJyZW50RXhlY3V0aW9uc1wiO1xuY29uc3QgX0FQQ0VsID0gXCJBbGxvY2F0ZWRQcm92aXNpb25lZENvbmN1cnJlbnRFeGVjdXRpb25zXCI7XG5jb25zdCBfQVBSID0gXCJBZGRQZXJtaXNzaW9uUmVxdWVzdFwiO1xuY29uc3QgX0FQUmQgPSBcIkFkZFBlcm1pc3Npb25SZXNwb25zZVwiO1xuY29uc3QgX0FQZCA9IFwiQWRkUGVybWlzc2lvblwiO1xuY29uc3QgX0FSQyA9IFwiQWxpYXNSb3V0aW5nQ29uZmlndXJhdGlvblwiO1xuY29uc3QgX0FUID0gXCJBdXRoVHlwZVwiO1xuY29uc3QgX0FVID0gXCJBY2NvdW50VXNhZ2VcIjtcbmNvbnN0IF9BVlcgPSBcIkFkZGl0aW9uYWxWZXJzaW9uV2VpZ2h0c1wiO1xuY29uc3QgX0FsID0gXCJBbGlhc2VzXCI7XG5jb25zdCBfQXIgPSBcIkFyY2hpdGVjdHVyZXNcIjtcbmNvbnN0IF9Bcm4gPSBcIkFyblwiO1xuY29uc3QgX0F0ID0gXCJBdHRyaWJ1dGVcIjtcbmNvbnN0IF9BdHQgPSBcIkF0dGVtcHRcIjtcbmNvbnN0IF9CID0gXCJCbG9iXCI7XG5jb25zdCBfQkJPRkUgPSBcIkJpc2VjdEJhdGNoT25GdW5jdGlvbkVycm9yXCI7XG5jb25zdCBfQk9QID0gXCJCaW5hcnlPcGVyYXRpb25QYXlsb2FkXCI7XG5jb25zdCBfQlMgPSBcIkJsb2JTdHJlYW1cIjtcbmNvbnN0IF9CU2EgPSBcIkJhdGNoU2l6ZVwiO1xuY29uc3QgX0MgPSBcIkNvbmN1cnJlbmN5XCI7XG5jb25zdCBfQ0EgPSBcIkNvbXBhdGlibGVBcmNoaXRlY3R1cmVzXCI7XG5jb25zdCBfQ0FSID0gXCJDcmVhdGVBbGlhc1JlcXVlc3RcIjtcbmNvbnN0IF9DQW8gPSBcIkNvbXBhdGlibGVBcmNoaXRlY3R1cmVcIjtcbmNvbnN0IF9DQXIgPSBcIkNyZWF0ZUFsaWFzXCI7XG5jb25zdCBfQ0F1ID0gXCJDdXJyZW50QXR0ZW1wdFwiO1xuY29uc3QgX0NDID0gXCJDbGllbnRDb250ZXh0XCI7XG5jb25zdCBfQ0NQID0gXCJDcmVhdGVDYXBhY2l0eVByb3ZpZGVyXCI7XG5jb25zdCBfQ0NQUiA9IFwiQ3JlYXRlQ2FwYWNpdHlQcm92aWRlclJlcXVlc3RcIjtcbmNvbnN0IF9DQ1BSciA9IFwiQ3JlYXRlQ2FwYWNpdHlQcm92aWRlclJlc3BvbnNlXCI7XG5jb25zdCBfQ0NTQyA9IFwiQ3JlYXRlQ29kZVNpZ25pbmdDb25maWdcIjtcbmNvbnN0IF9DQ1NDUiA9IFwiQ3JlYXRlQ29kZVNpZ25pbmdDb25maWdSZXF1ZXN0XCI7XG5jb25zdCBfQ0NTQ1JyID0gXCJDcmVhdGVDb2RlU2lnbmluZ0NvbmZpZ1Jlc3BvbnNlXCI7XG5jb25zdCBfQ0QgPSBcIkNhbGxiYWNrRGV0YWlsc1wiO1xuY29uc3QgX0NERSA9IFwiQ2hlY2twb2ludER1cmFibGVFeGVjdXRpb25cIjtcbmNvbnN0IF9DREVSID0gXCJDaGVja3BvaW50RHVyYWJsZUV4ZWN1dGlvblJlcXVlc3RcIjtcbmNvbnN0IF9DREVSaCA9IFwiQ2hlY2twb2ludER1cmFibGVFeGVjdXRpb25SZXNwb25zZVwiO1xuY29uc3QgX0NEbyA9IFwiQ29udGV4dERldGFpbHNcIjtcbmNvbnN0IF9DRHIgPSBcIkNyZWF0ZWREYXRlXCI7XG5jb25zdCBfQ0UgPSBcIkNvbmN1cnJlbnRFeGVjdXRpb25zXCI7XG5jb25zdCBfQ0VTTSA9IFwiQ3JlYXRlRXZlbnRTb3VyY2VNYXBwaW5nXCI7XG5jb25zdCBfQ0VTTVIgPSBcIkNyZWF0ZUV2ZW50U291cmNlTWFwcGluZ1JlcXVlc3RcIjtcbmNvbnN0IF9DRiA9IFwiQ3JlYXRlRnVuY3Rpb25cIjtcbmNvbnN0IF9DRkQgPSBcIkNhbGxiYWNrRmFpbGVkRGV0YWlsc1wiO1xuY29uc3QgX0NGRG8gPSBcIkNvbnRleHRGYWlsZWREZXRhaWxzXCI7XG5jb25zdCBfQ0ZSID0gXCJDcmVhdGVGdW5jdGlvblJlcXVlc3RcIjtcbmNvbnN0IF9DRlVDID0gXCJDcmVhdGVGdW5jdGlvblVybENvbmZpZ1wiO1xuY29uc3QgX0NGVUNSID0gXCJDcmVhdGVGdW5jdGlvblVybENvbmZpZ1JlcXVlc3RcIjtcbmNvbnN0IF9DRlVDUnIgPSBcIkNyZWF0ZUZ1bmN0aW9uVXJsQ29uZmlnUmVzcG9uc2VcIjtcbmNvbnN0IF9DR0kgPSBcIkNvbnN1bWVyR3JvdXBJZFwiO1xuY29uc3QgX0NJID0gXCJDYWxsYmFja0lkXCI7XG5jb25zdCBfQ0lEID0gXCJDaGFpbmVkSW52b2tlRGV0YWlsc1wiO1xuY29uc3QgX0NJRkQgPSBcIkNoYWluZWRJbnZva2VGYWlsZWREZXRhaWxzXCI7XG5jb25zdCBfQ0lPID0gXCJDaGFpbmVkSW52b2tlT3B0aW9uc1wiO1xuY29uc3QgX0NJU0QgPSBcIkNoYWluZWRJbnZva2VTdGFydGVkRGV0YWlsc1wiO1xuY29uc3QgX0NJU0RoID0gXCJDaGFpbmVkSW52b2tlU3RvcHBlZERldGFpbHNcIjtcbmNvbnN0IF9DSVNEaGEgPSBcIkNoYWluZWRJbnZva2VTdWNjZWVkZWREZXRhaWxzXCI7XG5jb25zdCBfQ0lUT0QgPSBcIkNoYWluZWRJbnZva2VUaW1lZE91dERldGFpbHNcIjtcbmNvbnN0IF9DTiA9IFwiQ29sbGVjdGlvbk5hbWVcIjtcbmNvbnN0IF9DTyA9IFwiQ2FsbGJhY2tPcHRpb25zXCI7XG5jb25zdCBfQ09vID0gXCJDb250ZXh0T3B0aW9uc1wiO1xuY29uc3QgX0NQID0gXCJDYXBhY2l0eVByb3ZpZGVyXCI7XG5jb25zdCBfQ1BBID0gXCJDYXBhY2l0eVByb3ZpZGVyQXJuXCI7XG5jb25zdCBfQ1BDID0gXCJDYXBhY2l0eVByb3ZpZGVyQ29uZmlnXCI7XG5jb25zdCBfQ1BMID0gXCJDYXBhY2l0eVByb3ZpZGVyc0xpc3RcIjtcbmNvbnN0IF9DUExFRSA9IFwiQ2FwYWNpdHlQcm92aWRlckxpbWl0RXhjZWVkZWRFeGNlcHRpb25cIjtcbmNvbnN0IF9DUE4gPSBcIkNhcGFjaXR5UHJvdmlkZXJOYW1lXCI7XG5jb25zdCBfQ1BPUkEgPSBcIkNhcGFjaXR5UHJvdmlkZXJPcGVyYXRvclJvbGVBcm5cIjtcbmNvbnN0IF9DUFBDID0gXCJDYXBhY2l0eVByb3ZpZGVyUGVybWlzc2lvbnNDb25maWdcIjtcbmNvbnN0IF9DUFNDID0gXCJDYXBhY2l0eVByb3ZpZGVyU2NhbGluZ0NvbmZpZ1wiO1xuY29uc3QgX0NQU1BMID0gXCJDYXBhY2l0eVByb3ZpZGVyU2NhbGluZ1BvbGljaWVzTGlzdFwiO1xuY29uc3QgX0NQVkMgPSBcIkNhcGFjaXR5UHJvdmlkZXJWcGNDb25maWdcIjtcbmNvbnN0IF9DUGEgPSBcIkNhcGFjaXR5UHJvdmlkZXJzXCI7XG5jb25zdCBfQ1IgPSBcIkNvbXBhdGlibGVSdW50aW1lc1wiO1xuY29uc3QgX0NSbyA9IFwiQ29tcGF0aWJsZVJ1bnRpbWVcIjtcbmNvbnN0IF9DUyA9IFwiQ29kZVNpemVcIjtcbmNvbnN0IF9DU0MgPSBcIkNvZGVTaWduaW5nQ29uZmlnXCI7XG5jb25zdCBfQ1NDQSA9IFwiQ29kZVNpZ25pbmdDb25maWdBcm5cIjtcbmNvbnN0IF9DU0NJID0gXCJDb2RlU2lnbmluZ0NvbmZpZ0lkXCI7XG5jb25zdCBfQ1NDTCA9IFwiQ29kZVNpZ25pbmdDb25maWdMaXN0XCI7XG5jb25zdCBfQ1NDTkZFID0gXCJDb2RlU2lnbmluZ0NvbmZpZ05vdEZvdW5kRXhjZXB0aW9uXCI7XG5jb25zdCBfQ1NDbyA9IFwiQ29kZVNpZ25pbmdDb25maWdzXCI7XG5jb25zdCBfQ1NEID0gXCJDYWxsYmFja1N0YXJ0ZWREZXRhaWxzXCI7XG5jb25zdCBfQ1NEYSA9IFwiQ2FsbGJhY2tTdWNjZWVkZWREZXRhaWxzXCI7XG5jb25zdCBfQ1NEbyA9IFwiQ29udGV4dFN0YXJ0ZWREZXRhaWxzXCI7XG5jb25zdCBfQ1NEb24gPSBcIkNvbnRleHRTdWNjZWVkZWREZXRhaWxzXCI7XG5jb25zdCBfQ1NFRSA9IFwiQ29kZVN0b3JhZ2VFeGNlZWRlZEV4Y2VwdGlvblwiO1xuY29uc3QgX0NTUCA9IFwiQ29kZVNpZ25pbmdQb2xpY2llc1wiO1xuY29uc3QgX0NTVSA9IFwiQ29kZVNpemVVbnppcHBlZFwiO1xuY29uc3QgX0NTWiA9IFwiQ29kZVNpemVaaXBwZWRcIjtcbmNvbnN0IF9DU28gPSBcIkNvZGVTaGEyNTZcIjtcbmNvbnN0IF9DU29uID0gXCJDb25maWdTaGEyNTZcIjtcbmNvbnN0IF9DVCA9IFwiQ2hlY2twb2ludFRva2VuXCI7XG5jb25zdCBfQ1RFID0gXCJDYWxsYmFja1RpbWVvdXRFeGNlcHRpb25cIjtcbmNvbnN0IF9DVE9EID0gXCJDYWxsYmFja1RpbWVkT3V0RGV0YWlsc1wiO1xuY29uc3QgX0NUXyA9IFwiQ29udGVudC1UeXBlXCI7XG5jb25zdCBfQ1RsID0gXCJDbGllbnRUb2tlblwiO1xuY29uc3QgX0NUciA9IFwiQ3JlYXRpb25UaW1lXCI7XG5jb25zdCBfQ1VFUyA9IFwiQ2hlY2twb2ludFVwZGF0ZWRFeGVjdXRpb25TdGF0ZVwiO1xuY29uc3QgX0NWRkUgPSBcIkNvZGVWZXJpZmljYXRpb25GYWlsZWRFeGNlcHRpb25cIjtcbmNvbnN0IF9DbyA9IFwiQ29yc1wiO1xuY29uc3QgX0NvZCA9IFwiQ29kZVwiO1xuY29uc3QgX0NvbSA9IFwiQ29tbWFuZFwiO1xuY29uc3QgX0NvbiA9IFwiQ29uZmlndXJhdGlvblwiO1xuY29uc3QgX0NvbnQgPSBcIkNvbnRlbnRcIjtcbmNvbnN0IF9EID0gXCJEZXNjcmlwdGlvblwiO1xuY29uc3QgX0RBID0gXCJEZWxldGVBbGlhc1wiO1xuY29uc3QgX0RBUiA9IFwiRGVsZXRlQWxpYXNSZXF1ZXN0XCI7XG5jb25zdCBfREMgPSBcIkRlc3RpbmF0aW9uQ29uZmlnXCI7XG5jb25zdCBfRENQID0gXCJEZWxldGVDYXBhY2l0eVByb3ZpZGVyXCI7XG5jb25zdCBfRENQUiA9IFwiRGVsZXRlQ2FwYWNpdHlQcm92aWRlclJlcXVlc3RcIjtcbmNvbnN0IF9EQ1BSZSA9IFwiRGVsZXRlQ2FwYWNpdHlQcm92aWRlclJlc3BvbnNlXCI7XG5jb25zdCBfRENTQyA9IFwiRGVsZXRlQ29kZVNpZ25pbmdDb25maWdcIjtcbmNvbnN0IF9EQ1NDUiA9IFwiRGVsZXRlQ29kZVNpZ25pbmdDb25maWdSZXF1ZXN0XCI7XG5jb25zdCBfRENTQ1JlID0gXCJEZWxldGVDb2RlU2lnbmluZ0NvbmZpZ1Jlc3BvbnNlXCI7XG5jb25zdCBfREN1ID0gXCJEdXJhYmxlQ29uZmlnXCI7XG5jb25zdCBfRERCRVNDID0gXCJEb2N1bWVudERCRXZlbnRTb3VyY2VDb25maWdcIjtcbmNvbnN0IF9ERSA9IFwiRHVyYWJsZUV4ZWN1dGlvbnNcIjtcbmNvbnN0IF9ERUEgPSBcIkR1cmFibGVFeGVjdXRpb25Bcm5cIjtcbmNvbnN0IF9ERUFTRSA9IFwiRHVyYWJsZUV4ZWN1dGlvbkFscmVhZHlTdGFydGVkRXhjZXB0aW9uXCI7XG5jb25zdCBfREVOID0gXCJEdXJhYmxlRXhlY3V0aW9uTmFtZVwiO1xuY29uc3QgX0RFU00gPSBcIkRlbGV0ZUV2ZW50U291cmNlTWFwcGluZ1wiO1xuY29uc3QgX0RFU01SID0gXCJEZWxldGVFdmVudFNvdXJjZU1hcHBpbmdSZXF1ZXN0XCI7XG5jb25zdCBfREYgPSBcIkRlbGV0ZUZ1bmN0aW9uXCI7XG5jb25zdCBfREZDID0gXCJEZWxldGVGdW5jdGlvbkNvbmN1cnJlbmN5XCI7XG5jb25zdCBfREZDUiA9IFwiRGVsZXRlRnVuY3Rpb25Db25jdXJyZW5jeVJlcXVlc3RcIjtcbmNvbnN0IF9ERkNTQyA9IFwiRGVsZXRlRnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ1wiO1xuY29uc3QgX0RGQ1NDUiA9IFwiRGVsZXRlRnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ1JlcXVlc3RcIjtcbmNvbnN0IF9ERkVJQyA9IFwiRGVsZXRlRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ1wiO1xuY29uc3QgX0RGRUlDUiA9IFwiRGVsZXRlRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ1JlcXVlc3RcIjtcbmNvbnN0IF9ERlIgPSBcIkRlbGV0ZUZ1bmN0aW9uUmVxdWVzdFwiO1xuY29uc3QgX0RGUmUgPSBcIkRlbGV0ZUZ1bmN0aW9uUmVzcG9uc2VcIjtcbmNvbnN0IF9ERlVDID0gXCJEZWxldGVGdW5jdGlvblVybENvbmZpZ1wiO1xuY29uc3QgX0RGVUNSID0gXCJEZWxldGVGdW5jdGlvblVybENvbmZpZ1JlcXVlc3RcIjtcbmNvbnN0IF9ETEMgPSBcIkRlYWRMZXR0ZXJDb25maWdcIjtcbmNvbnN0IF9ETFYgPSBcIkRlbGV0ZUxheWVyVmVyc2lvblwiO1xuY29uc3QgX0RMVlIgPSBcIkRlbGV0ZUxheWVyVmVyc2lvblJlcXVlc3RcIjtcbmNvbnN0IF9ETiA9IFwiRGF0YWJhc2VOYW1lXCI7XG5jb25zdCBfRFBDQyA9IFwiRGVsZXRlUHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ1wiO1xuY29uc3QgX0RQQ0NSID0gXCJEZWxldGVQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnUmVxdWVzdFwiO1xuY29uc3QgX0RSID0gXCJEcnlSdW5cIjtcbmNvbnN0IF9EZSA9IFwiRGVzdGluYXRpb25cIjtcbmNvbnN0IF9EdSA9IFwiRHVyYXRpb25cIjtcbmNvbnN0IF9FID0gXCJFcnJvclwiO1xuY29uc3QgX0VDID0gXCJFcnJvckNvZGVcIjtcbmNvbnN0IF9FQ0FERSA9IFwiRUMyQWNjZXNzRGVuaWVkRXhjZXB0aW9uXCI7XG5jb25zdCBfRUNFQyA9IFwiRUMyRXJyb3JDb2RlXCI7XG5jb25zdCBfRUNURSA9IFwiRUMyVGhyb3R0bGVkRXhjZXB0aW9uXCI7XG5jb25zdCBfRUNVRSA9IFwiRUMyVW5leHBlY3RlZEV4Y2VwdGlvblwiO1xuY29uc3QgX0VEID0gXCJFcnJvckRhdGFcIjtcbmNvbnN0IF9FRHIgPSBcIkVycm9yRGV0YWlsc1wiO1xuY29uc3QgX0VEeCA9IFwiRXhlY3V0aW9uRGV0YWlsc1wiO1xuY29uc3QgX0VFID0gXCJFbnZpcm9ubWVudEVycm9yXCI7XG5jb25zdCBfRUVNR0JQVkMgPSBcIkV4ZWN1dGlvbkVudmlyb25tZW50TWVtb3J5R2lCUGVyVkNwdVwiO1xuY29uc3QgX0VFdiA9IFwiRXZlbnRFcnJvclwiO1xuY29uc3QgX0VGRCA9IFwiRXhlY3V0aW9uRmFpbGVkRGV0YWlsc1wiO1xuY29uc3QgX0VGU0lPRSA9IFwiRUZTSU9FeGNlcHRpb25cIjtcbmNvbnN0IF9FRlNNQ0UgPSBcIkVGU01vdW50Q29ubmVjdGl2aXR5RXhjZXB0aW9uXCI7XG5jb25zdCBfRUZTTUZFID0gXCJFRlNNb3VudEZhaWx1cmVFeGNlcHRpb25cIjtcbmNvbnN0IF9FRlNNVEUgPSBcIkVGU01vdW50VGltZW91dEV4Y2VwdGlvblwiO1xuY29uc3QgX0VIID0gXCJFeHBvc2VIZWFkZXJzXCI7XG5jb25zdCBfRUkgPSBcIkV2ZW50SWRcIjtcbmNvbnN0IF9FSVQgPSBcIkV4Y2x1ZGVkSW5zdGFuY2VUeXBlc1wiO1xuY29uc3QgX0VJdiA9IFwiRXZlbnRJbnB1dFwiO1xuY29uc3QgX0VNID0gXCJFcnJvck1lc3NhZ2VcIjtcbmNvbnN0IF9FTklMUkUgPSBcIkVOSUxpbWl0UmVhY2hlZEV4Y2VwdGlvblwiO1xuY29uc3QgX0VPID0gXCJFcnJvck9iamVjdFwiO1xuY29uc3QgX0VQID0gXCJFbnRyeVBvaW50XCI7XG5jb25zdCBfRVIgPSBcIkVudmlyb25tZW50UmVzcG9uc2VcIjtcbmNvbnN0IF9FUkYgPSBcIkV2ZW50UmVjb3JkRm9ybWF0XCI7XG5jb25zdCBfRVJ2ID0gXCJFdmVudFJlc3VsdFwiO1xuY29uc3QgX0VTID0gXCJFcGhlbWVyYWxTdG9yYWdlXCI7XG5jb25zdCBfRVNBID0gXCJFdmVudFNvdXJjZUFyblwiO1xuY29uc3QgX0VTRCA9IFwiRXhlY3V0aW9uU3RhcnRlZERldGFpbHNcIjtcbmNvbnN0IF9FU0R4ID0gXCJFeGVjdXRpb25TdWNjZWVkZWREZXRhaWxzXCI7XG5jb25zdCBfRVNEeGUgPSBcIkV4ZWN1dGlvblN0b3BwZWREZXRhaWxzXCI7XG5jb25zdCBfRVNNID0gXCJFdmVudFNvdXJjZU1hcHBpbmdzXCI7XG5jb25zdCBfRVNNQSA9IFwiRXZlbnRTb3VyY2VNYXBwaW5nQXJuXCI7XG5jb25zdCBfRVNNQyA9IFwiRXZlbnRTb3VyY2VNYXBwaW5nQ29uZmlndXJhdGlvblwiO1xuY29uc3QgX0VTTUwgPSBcIkV2ZW50U291cmNlTWFwcGluZ3NMaXN0XCI7XG5jb25zdCBfRVNNTUMgPSBcIkV2ZW50U291cmNlTWFwcGluZ01ldHJpY3NDb25maWdcIjtcbmNvbnN0IF9FU1QgPSBcIkV2ZW50U291cmNlVG9rZW5cIjtcbmNvbnN0IF9FU3YgPSBcIkV2ZW50U3RyZWFtXCI7XG5jb25zdCBfRVQgPSBcIkVycm9yVHlwZVwiO1xuY29uc3QgX0VUT0QgPSBcIkV4ZWN1dGlvblRpbWVkT3V0RGV0YWlsc1wiO1xuY29uc3QgX0VUbiA9IFwiRW5kVGltZXN0YW1wXCI7XG5jb25zdCBfRVR2ID0gXCJFdmVudFR5cGVcIjtcbmNvbnN0IF9FVHZlID0gXCJFdmVudFRpbWVzdGFtcFwiO1xuY29uc3QgX0VUeCA9IFwiRXhlY3V0aW9uVGltZW91dFwiO1xuY29uc3QgX0VWID0gXCJFeGVjdXRlZFZlcnNpb25cIjtcbmNvbnN0IF9FVk4gPSBcIkVudmlyb25tZW50VmFyaWFibGVOYW1lXCI7XG5jb25zdCBfRVZWID0gXCJFbnZpcm9ubWVudFZhcmlhYmxlVmFsdWVcIjtcbmNvbnN0IF9FVm4gPSBcIkVudmlyb25tZW50VmFyaWFibGVzXCI7XG5jb25zdCBfRW4gPSBcIkVuYWJsZWRcIjtcbmNvbnN0IF9FbmQgPSBcIkVuZHBvaW50c1wiO1xuY29uc3QgX0VudiA9IFwiRW52aXJvbm1lbnRcIjtcbmNvbnN0IF9FdiA9IFwiRXZlbnRcIjtcbmNvbnN0IF9FdmUgPSBcIkV2ZW50c1wiO1xuY29uc3QgX0V4ID0gXCJFeGVjdXRpb25cIjtcbmNvbnN0IF9GID0gXCJGaWx0ZXJcIjtcbmNvbnN0IF9GQSA9IFwiRnVuY3Rpb25Bcm5cIjtcbmNvbnN0IF9GQXUgPSBcIkZ1bmN0aW9uQXJuc1wiO1xuY29uc3QgX0ZDID0gXCJGdW5jdGlvbkNvdW50XCI7XG5jb25zdCBfRkNFID0gXCJGaWx0ZXJDcml0ZXJpYUVycm9yXCI7XG5jb25zdCBfRkNMID0gXCJGdW5jdGlvbkNvZGVMb2NhdGlvblwiO1xuY29uc3QgX0ZDaSA9IFwiRmlsdGVyQ3JpdGVyaWFcIjtcbmNvbnN0IF9GQ3UgPSBcIkZ1bmN0aW9uQ29kZVwiO1xuY29uc3QgX0ZDdW4gPSBcIkZ1bmN0aW9uQ29uZmlndXJhdGlvblwiO1xuY29uc3QgX0ZEID0gXCJGdWxsRG9jdW1lbnRcIjtcbmNvbnN0IF9GRSA9IFwiRnVuY3Rpb25FcnJvclwiO1xuY29uc3QgX0ZFSUMgPSBcIkZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdcIjtcbmNvbnN0IF9GRUlDTCA9IFwiRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0xpc3RcIjtcbmNvbnN0IF9GRUlDdSA9IFwiRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ3NcIjtcbmNvbnN0IF9GTCA9IFwiRmlsdGVyTGlzdFwiO1xuY29uc3QgX0ZMdSA9IFwiRnVuY3Rpb25MaXN0XCI7XG5jb25zdCBfRk4gPSBcIkZ1bmN0aW9uTmFtZVwiO1xuY29uc3QgX0ZSVCA9IFwiRnVuY3Rpb25SZXNwb25zZVR5cGVzXCI7XG5jb25zdCBfRlMgPSBcIkZ1bmN0aW9uU3RhdGVcIjtcbmNvbnN0IF9GU0MgPSBcIkZpbGVTeXN0ZW1Db25maWdzXCI7XG5jb25zdCBfRlNDTCA9IFwiRmlsZVN5c3RlbUNvbmZpZ0xpc3RcIjtcbmNvbnN0IF9GU0NpID0gXCJGaWxlU3lzdGVtQ29uZmlnXCI7XG5jb25zdCBfRlNDdSA9IFwiRnVuY3Rpb25TY2FsaW5nQ29uZmlnXCI7XG5jb25zdCBfRlUgPSBcIkZ1bmN0aW9uVXJsXCI7XG5jb25zdCBfRlVBVCA9IFwiRnVuY3Rpb25VcmxBdXRoVHlwZVwiO1xuY29uc3QgX0ZVQyA9IFwiRnVuY3Rpb25VcmxDb25maWdcIjtcbmNvbnN0IF9GVUNMID0gXCJGdW5jdGlvblVybENvbmZpZ0xpc3RcIjtcbmNvbnN0IF9GVUN1ID0gXCJGdW5jdGlvblVybENvbmZpZ3NcIjtcbmNvbnN0IF9GViA9IFwiRnVuY3Rpb25WZXJzaW9uXCI7XG5jb25zdCBfRlZCQ1BMID0gXCJGdW5jdGlvblZlcnNpb25zQnlDYXBhY2l0eVByb3ZpZGVyTGlzdFwiO1xuY29uc3QgX0ZWQkNQTEkgPSBcIkZ1bmN0aW9uVmVyc2lvbnNCeUNhcGFjaXR5UHJvdmlkZXJMaXN0SXRlbVwiO1xuY29uc3QgX0ZWUENQTEVFID0gXCJGdW5jdGlvblZlcnNpb25zUGVyQ2FwYWNpdHlQcm92aWRlckxpbWl0RXhjZWVkZWRFeGNlcHRpb25cIjtcbmNvbnN0IF9GVnUgPSBcIkZ1bmN0aW9uVmVyc2lvbnNcIjtcbmNvbnN0IF9GaSA9IFwiRmlsdGVyc1wiO1xuY29uc3QgX0Z1ID0gXCJGdW5jdGlvbnNcIjtcbmNvbnN0IF9HQSA9IFwiR2V0QWxpYXNcIjtcbmNvbnN0IF9HQVIgPSBcIkdldEFsaWFzUmVxdWVzdFwiO1xuY29uc3QgX0dBUyA9IFwiR2V0QWNjb3VudFNldHRpbmdzXCI7XG5jb25zdCBfR0FTUiA9IFwiR2V0QWNjb3VudFNldHRpbmdzUmVxdWVzdFwiO1xuY29uc3QgX0dBU1JlID0gXCJHZXRBY2NvdW50U2V0dGluZ3NSZXNwb25zZVwiO1xuY29uc3QgX0dDUCA9IFwiR2V0Q2FwYWNpdHlQcm92aWRlclwiO1xuY29uc3QgX0dDUFIgPSBcIkdldENhcGFjaXR5UHJvdmlkZXJSZXF1ZXN0XCI7XG5jb25zdCBfR0NQUmUgPSBcIkdldENhcGFjaXR5UHJvdmlkZXJSZXNwb25zZVwiO1xuY29uc3QgX0dDU0MgPSBcIkdldENvZGVTaWduaW5nQ29uZmlnXCI7XG5jb25zdCBfR0NTQ1IgPSBcIkdldENvZGVTaWduaW5nQ29uZmlnUmVxdWVzdFwiO1xuY29uc3QgX0dDU0NSZSA9IFwiR2V0Q29kZVNpZ25pbmdDb25maWdSZXNwb25zZVwiO1xuY29uc3QgX0dERSA9IFwiR2V0RHVyYWJsZUV4ZWN1dGlvblwiO1xuY29uc3QgX0dERUggPSBcIkdldER1cmFibGVFeGVjdXRpb25IaXN0b3J5XCI7XG5jb25zdCBfR0RFSFIgPSBcIkdldER1cmFibGVFeGVjdXRpb25IaXN0b3J5UmVxdWVzdFwiO1xuY29uc3QgX0dERUhSZSA9IFwiR2V0RHVyYWJsZUV4ZWN1dGlvbkhpc3RvcnlSZXNwb25zZVwiO1xuY29uc3QgX0dERVIgPSBcIkdldER1cmFibGVFeGVjdXRpb25SZXF1ZXN0XCI7XG5jb25zdCBfR0RFUmUgPSBcIkdldER1cmFibGVFeGVjdXRpb25SZXNwb25zZVwiO1xuY29uc3QgX0dERVMgPSBcIkdldER1cmFibGVFeGVjdXRpb25TdGF0ZVwiO1xuY29uc3QgX0dERVNSID0gXCJHZXREdXJhYmxlRXhlY3V0aW9uU3RhdGVSZXF1ZXN0XCI7XG5jb25zdCBfR0RFU1JlID0gXCJHZXREdXJhYmxlRXhlY3V0aW9uU3RhdGVSZXNwb25zZVwiO1xuY29uc3QgX0dFU00gPSBcIkdldEV2ZW50U291cmNlTWFwcGluZ1wiO1xuY29uc3QgX0dFU01SID0gXCJHZXRFdmVudFNvdXJjZU1hcHBpbmdSZXF1ZXN0XCI7XG5jb25zdCBfR0YgPSBcIkdldEZ1bmN0aW9uXCI7XG5jb25zdCBfR0ZDID0gXCJHZXRGdW5jdGlvbkNvbmN1cnJlbmN5XCI7XG5jb25zdCBfR0ZDUiA9IFwiR2V0RnVuY3Rpb25Db25jdXJyZW5jeVJlcXVlc3RcIjtcbmNvbnN0IF9HRkNSZSA9IFwiR2V0RnVuY3Rpb25Db25jdXJyZW5jeVJlc3BvbnNlXCI7XG5jb25zdCBfR0ZDUmV0ID0gXCJHZXRGdW5jdGlvbkNvbmZpZ3VyYXRpb25SZXF1ZXN0XCI7XG5jb25zdCBfR0ZDU0MgPSBcIkdldEZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdcIjtcbmNvbnN0IF9HRkNTQ1IgPSBcIkdldEZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdSZXF1ZXN0XCI7XG5jb25zdCBfR0ZDU0NSZSA9IFwiR2V0RnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ1Jlc3BvbnNlXCI7XG5jb25zdCBfR0ZDZSA9IFwiR2V0RnVuY3Rpb25Db25maWd1cmF0aW9uXCI7XG5jb25zdCBfR0ZFSUMgPSBcIkdldEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdcIjtcbmNvbnN0IF9HRkVJQ1IgPSBcIkdldEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdSZXF1ZXN0XCI7XG5jb25zdCBfR0ZSID0gXCJHZXRGdW5jdGlvblJlcXVlc3RcIjtcbmNvbnN0IF9HRlJDID0gXCJHZXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZ1wiO1xuY29uc3QgX0dGUkNSID0gXCJHZXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZ1JlcXVlc3RcIjtcbmNvbnN0IF9HRlJDUmUgPSBcIkdldEZ1bmN0aW9uUmVjdXJzaW9uQ29uZmlnUmVzcG9uc2VcIjtcbmNvbnN0IF9HRlJlID0gXCJHZXRGdW5jdGlvblJlc3BvbnNlXCI7XG5jb25zdCBfR0ZTQyA9IFwiR2V0RnVuY3Rpb25TY2FsaW5nQ29uZmlnXCI7XG5jb25zdCBfR0ZTQ1IgPSBcIkdldEZ1bmN0aW9uU2NhbGluZ0NvbmZpZ1JlcXVlc3RcIjtcbmNvbnN0IF9HRlNDUmUgPSBcIkdldEZ1bmN0aW9uU2NhbGluZ0NvbmZpZ1Jlc3BvbnNlXCI7XG5jb25zdCBfR0ZVQyA9IFwiR2V0RnVuY3Rpb25VcmxDb25maWdcIjtcbmNvbnN0IF9HRlVDUiA9IFwiR2V0RnVuY3Rpb25VcmxDb25maWdSZXF1ZXN0XCI7XG5jb25zdCBfR0ZVQ1JlID0gXCJHZXRGdW5jdGlvblVybENvbmZpZ1Jlc3BvbnNlXCI7XG5jb25zdCBfR0xWID0gXCJHZXRMYXllclZlcnNpb25cIjtcbmNvbnN0IF9HTFZCQSA9IFwiR2V0TGF5ZXJWZXJzaW9uQnlBcm5cIjtcbmNvbnN0IF9HTFZCQVIgPSBcIkdldExheWVyVmVyc2lvbkJ5QXJuUmVxdWVzdFwiO1xuY29uc3QgX0dMVlAgPSBcIkdldExheWVyVmVyc2lvblBvbGljeVwiO1xuY29uc3QgX0dMVlBSID0gXCJHZXRMYXllclZlcnNpb25Qb2xpY3lSZXF1ZXN0XCI7XG5jb25zdCBfR0xWUFJlID0gXCJHZXRMYXllclZlcnNpb25Qb2xpY3lSZXNwb25zZVwiO1xuY29uc3QgX0dMVlIgPSBcIkdldExheWVyVmVyc2lvblJlcXVlc3RcIjtcbmNvbnN0IF9HTFZSZSA9IFwiR2V0TGF5ZXJWZXJzaW9uUmVzcG9uc2VcIjtcbmNvbnN0IF9HUCA9IFwiR2V0UG9saWN5XCI7XG5jb25zdCBfR1BDQyA9IFwiR2V0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ1wiO1xuY29uc3QgX0dQQ0NSID0gXCJHZXRQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnUmVxdWVzdFwiO1xuY29uc3QgX0dQQ0NSZSA9IFwiR2V0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ1Jlc3BvbnNlXCI7XG5jb25zdCBfR1BSID0gXCJHZXRQb2xpY3lSZXF1ZXN0XCI7XG5jb25zdCBfR1BSZSA9IFwiR2V0UG9saWN5UmVzcG9uc2VcIjtcbmNvbnN0IF9HUk1DID0gXCJHZXRSdW50aW1lTWFuYWdlbWVudENvbmZpZ1wiO1xuY29uc3QgX0dSTUNSID0gXCJHZXRSdW50aW1lTWFuYWdlbWVudENvbmZpZ1JlcXVlc3RcIjtcbmNvbnN0IF9HUk1DUmUgPSBcIkdldFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnUmVzcG9uc2VcIjtcbmNvbnN0IF9IID0gXCJIYW5kbGVyXCI7XG5jb25zdCBfSFQgPSBcIkhlYXJ0YmVhdFRpbWVvdXRcIjtcbmNvbnN0IF9IVFMgPSBcIkhlYXJ0YmVhdFRpbWVvdXRTZWNvbmRzXCI7XG5jb25zdCBfSSA9IFwiSW5wdXRcIjtcbmNvbnN0IF9JQSA9IFwiSW52b2tlQXJnc1wiO1xuY29uc3QgX0lBRkRTID0gXCJJcHY2QWxsb3dlZEZvckR1YWxTdGFja1wiO1xuY29uc3QgX0lBUiA9IFwiSW52b2tlQXN5bmNSZXF1ZXN0XCI7XG5jb25zdCBfSUFSbiA9IFwiSW52b2tlQXN5bmNSZXNwb25zZVwiO1xuY29uc3QgX0lBbiA9IFwiSW52b2tlQXN5bmNcIjtcbmNvbnN0IF9JQyA9IFwiSW1hZ2VDb25maWdcIjtcbmNvbnN0IF9JQ0QgPSBcIkludm9jYXRpb25Db21wbGV0ZWREZXRhaWxzXCI7XG5jb25zdCBfSUNFID0gXCJJbWFnZUNvbmZpZ0Vycm9yXCI7XG5jb25zdCBfSUNSID0gXCJJbWFnZUNvbmZpZ1Jlc3BvbnNlXCI7XG5jb25zdCBfSUNTRSA9IFwiSW52YWxpZENvZGVTaWduYXR1cmVFeGNlcHRpb25cIjtcbmNvbnN0IF9JQ24gPSBcIkludm9rZUNvbXBsZXRlXCI7XG5jb25zdCBfSUVEID0gXCJJbmNsdWRlRXhlY3V0aW9uRGF0YVwiO1xuY29uc3QgX0lNID0gXCJJbnZva2VNb2RlXCI7XG5jb25zdCBfSVAgPSBcIklucHV0UGF5bG9hZFwiO1xuY29uc3QgX0lQVkUgPSBcIkludmFsaWRQYXJhbWV0ZXJWYWx1ZUV4Y2VwdGlvblwiO1xuY29uc3QgX0lSID0gXCJJbnN0YW5jZVJlcXVpcmVtZW50c1wiO1xuY29uc3QgX0lSQ0UgPSBcIkludmFsaWRSZXF1ZXN0Q29udGVudEV4Y2VwdGlvblwiO1xuY29uc3QgX0lSRSA9IFwiSW52YWxpZFJ1bnRpbWVFeGNlcHRpb25cIjtcbmNvbnN0IF9JUlNVID0gXCJJbnZva2VSZXNwb25zZVN0cmVhbVVwZGF0ZVwiO1xuY29uc3QgX0lSbiA9IFwiSW52b2NhdGlvblJlcXVlc3RcIjtcbmNvbnN0IF9JUm52ID0gXCJJbnZvY2F0aW9uUmVzcG9uc2VcIjtcbmNvbnN0IF9JU0dJREUgPSBcIkludmFsaWRTZWN1cml0eUdyb3VwSURFeGNlcHRpb25cIjtcbmNvbnN0IF9JU0lERSA9IFwiSW52YWxpZFN1Ym5ldElERXhjZXB0aW9uXCI7XG5jb25zdCBfSVQgPSBcIkludm9jYXRpb25UeXBlXCI7XG5jb25zdCBfSVUgPSBcIkltYWdlVXJpXCI7XG5jb25zdCBfSVZGVSA9IFwiSW52b2tlZFZpYUZ1bmN0aW9uVXJsXCI7XG5jb25zdCBfSVdSUyA9IFwiSW52b2tlV2l0aFJlc3BvbnNlU3RyZWFtXCI7XG5jb25zdCBfSVdSU0NFID0gXCJJbnZva2VXaXRoUmVzcG9uc2VTdHJlYW1Db21wbGV0ZUV2ZW50XCI7XG5jb25zdCBfSVdSU1IgPSBcIkludm9rZVdpdGhSZXNwb25zZVN0cmVhbVJlcXVlc3RcIjtcbmNvbnN0IF9JV1JTUkUgPSBcIkludm9rZVdpdGhSZXNwb25zZVN0cmVhbVJlc3BvbnNlRXZlbnRcIjtcbmNvbnN0IF9JV1JTUm4gPSBcIkludm9rZVdpdGhSZXNwb25zZVN0cmVhbVJlc3BvbnNlXCI7XG5jb25zdCBfSVpGRSA9IFwiSW52YWxpZFppcEZpbGVFeGNlcHRpb25cIjtcbmNvbnN0IF9JZCA9IFwiSWRcIjtcbmNvbnN0IF9JbiA9IFwiSW52b2tlXCI7XG5jb25zdCBfS0tBID0gXCJLbXNLZXlBcm5cIjtcbmNvbnN0IF9LTVNBREUgPSBcIktNU0FjY2Vzc0RlbmllZEV4Y2VwdGlvblwiO1xuY29uc3QgX0tNU0RFID0gXCJLTVNEaXNhYmxlZEV4Y2VwdGlvblwiO1xuY29uc3QgX0tNU0lTRSA9IFwiS01TSW52YWxpZFN0YXRlRXhjZXB0aW9uXCI7XG5jb25zdCBfS01TS0EgPSBcIktNU0tleUFyblwiO1xuY29uc3QgX0tNU05GRSA9IFwiS01TTm90Rm91bmRFeGNlcHRpb25cIjtcbmNvbnN0IF9LU1JBQyA9IFwiS2Fma2FTY2hlbWFSZWdpc3RyeUFjY2Vzc0NvbmZpZ1wiO1xuY29uc3QgX0tTUkFDTCA9IFwiS2Fma2FTY2hlbWFSZWdpc3RyeUFjY2Vzc0NvbmZpZ0xpc3RcIjtcbmNvbnN0IF9LU1JDID0gXCJLYWZrYVNjaGVtYVJlZ2lzdHJ5Q29uZmlnXCI7XG5jb25zdCBfS1NWQyA9IFwiS2Fma2FTY2hlbWFWYWxpZGF0aW9uQ29uZmlnXCI7XG5jb25zdCBfS1NWQ0wgPSBcIkthZmthU2NoZW1hVmFsaWRhdGlvbkNvbmZpZ0xpc3RcIjtcbmNvbnN0IF9MID0gXCJMYXllcnNcIjtcbmNvbnN0IF9MQSA9IFwiTGF5ZXJBcm5cIjtcbmNvbnN0IF9MQVIgPSBcIkxpc3RBbGlhc2VzUmVxdWVzdFwiO1xuY29uc3QgX0xBUmkgPSBcIkxpc3RBbGlhc2VzUmVzcG9uc2VcIjtcbmNvbnN0IF9MQWkgPSBcIkxpc3RBbGlhc2VzXCI7XG5jb25zdCBfTEMgPSBcIkxvZ2dpbmdDb25maWdcIjtcbmNvbnN0IF9MQ1AgPSBcIkxpc3RDYXBhY2l0eVByb3ZpZGVyc1wiO1xuY29uc3QgX0xDUFIgPSBcIkxpc3RDYXBhY2l0eVByb3ZpZGVyc1JlcXVlc3RcIjtcbmNvbnN0IF9MQ1BSaSA9IFwiTGlzdENhcGFjaXR5UHJvdmlkZXJzUmVzcG9uc2VcIjtcbmNvbnN0IF9MQ1NDID0gXCJMaXN0Q29kZVNpZ25pbmdDb25maWdzXCI7XG5jb25zdCBfTENTQ1IgPSBcIkxpc3RDb2RlU2lnbmluZ0NvbmZpZ3NSZXF1ZXN0XCI7XG5jb25zdCBfTENTQ1JpID0gXCJMaXN0Q29kZVNpZ25pbmdDb25maWdzUmVzcG9uc2VcIjtcbmNvbnN0IF9MREVCRiA9IFwiTGlzdER1cmFibGVFeGVjdXRpb25zQnlGdW5jdGlvblwiO1xuY29uc3QgX0xERUJGUiA9IFwiTGlzdER1cmFibGVFeGVjdXRpb25zQnlGdW5jdGlvblJlcXVlc3RcIjtcbmNvbnN0IF9MREVCRlJpID0gXCJMaXN0RHVyYWJsZUV4ZWN1dGlvbnNCeUZ1bmN0aW9uUmVzcG9uc2VcIjtcbmNvbnN0IF9MRVNNID0gXCJMaXN0RXZlbnRTb3VyY2VNYXBwaW5nc1wiO1xuY29uc3QgX0xFU01SID0gXCJMaXN0RXZlbnRTb3VyY2VNYXBwaW5nc1JlcXVlc3RcIjtcbmNvbnN0IF9MRVNNUmkgPSBcIkxpc3RFdmVudFNvdXJjZU1hcHBpbmdzUmVzcG9uc2VcIjtcbmNvbnN0IF9MRiA9IFwiTG9nRm9ybWF0XCI7XG5jb25zdCBfTEZCQ1NDID0gXCJMaXN0RnVuY3Rpb25zQnlDb2RlU2lnbmluZ0NvbmZpZ1wiO1xuY29uc3QgX0xGQkNTQ1IgPSBcIkxpc3RGdW5jdGlvbnNCeUNvZGVTaWduaW5nQ29uZmlnUmVxdWVzdFwiO1xuY29uc3QgX0xGQkNTQ1JpID0gXCJMaXN0RnVuY3Rpb25zQnlDb2RlU2lnbmluZ0NvbmZpZ1Jlc3BvbnNlXCI7XG5jb25zdCBfTEZFSUMgPSBcIkxpc3RGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnc1wiO1xuY29uc3QgX0xGRUlDUiA9IFwiTGlzdEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdzUmVxdWVzdFwiO1xuY29uc3QgX0xGRUlDUmkgPSBcIkxpc3RGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnc1Jlc3BvbnNlXCI7XG5jb25zdCBfTEZSID0gXCJMaXN0RnVuY3Rpb25zUmVxdWVzdFwiO1xuY29uc3QgX0xGUmkgPSBcIkxpc3RGdW5jdGlvbnNSZXNwb25zZVwiO1xuY29uc3QgX0xGVUMgPSBcIkxpc3RGdW5jdGlvblVybENvbmZpZ3NcIjtcbmNvbnN0IF9MRlVDUiA9IFwiTGlzdEZ1bmN0aW9uVXJsQ29uZmlnc1JlcXVlc3RcIjtcbmNvbnN0IF9MRlVDUmkgPSBcIkxpc3RGdW5jdGlvblVybENvbmZpZ3NSZXNwb25zZVwiO1xuY29uc3QgX0xGVkJDUCA9IFwiTGlzdEZ1bmN0aW9uVmVyc2lvbnNCeUNhcGFjaXR5UHJvdmlkZXJcIjtcbmNvbnN0IF9MRlZCQ1BSID0gXCJMaXN0RnVuY3Rpb25WZXJzaW9uc0J5Q2FwYWNpdHlQcm92aWRlclJlcXVlc3RcIjtcbmNvbnN0IF9MRlZCQ1BSaSA9IFwiTGlzdEZ1bmN0aW9uVmVyc2lvbnNCeUNhcGFjaXR5UHJvdmlkZXJSZXNwb25zZVwiO1xuY29uc3QgX0xGaSA9IFwiTGlzdEZ1bmN0aW9uc1wiO1xuY29uc3QgX0xHID0gXCJMb2dHcm91cFwiO1xuY29uc3QgX0xJID0gXCJMaWNlbnNlSW5mb1wiO1xuY29uc3QgX0xMID0gXCJMYXllcnNMaXN0XCI7XG5jb25zdCBfTExJID0gXCJMYXllcnNMaXN0SXRlbVwiO1xuY29uc3QgX0xMUiA9IFwiTGlzdExheWVyc1JlcXVlc3RcIjtcbmNvbnN0IF9MTFJpID0gXCJMaXN0TGF5ZXJzUmVzcG9uc2VcIjtcbmNvbnN0IF9MTFYgPSBcIkxpc3RMYXllclZlcnNpb25zXCI7XG5jb25zdCBfTExWUiA9IFwiTGlzdExheWVyVmVyc2lvbnNSZXF1ZXN0XCI7XG5jb25zdCBfTExWUmkgPSBcIkxpc3RMYXllclZlcnNpb25zUmVzcG9uc2VcIjtcbmNvbnN0IF9MTGkgPSBcIkxpc3RMYXllcnNcIjtcbmNvbnN0IF9MTSA9IFwiTGFzdE1vZGlmaWVkXCI7XG5jb25zdCBfTE1JQ1BDID0gXCJMYW1iZGFNYW5hZ2VkSW5zdGFuY2VzQ2FwYWNpdHlQcm92aWRlckNvbmZpZ1wiO1xuY29uc3QgX0xNUCA9IFwiTG9jYWxNb3VudFBhdGhcIjtcbmNvbnN0IF9MTVQgPSBcIkxhc3RNb2RpZmllZFRpbWVcIjtcbmNvbnN0IF9MTVYgPSBcIkxhdGVzdE1hdGNoaW5nVmVyc2lvblwiO1xuY29uc3QgX0xOID0gXCJMYXllck5hbWVcIjtcbmNvbnN0IF9MUENDID0gXCJMaXN0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ3NcIjtcbmNvbnN0IF9MUENDUiA9IFwiTGlzdFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdzUmVxdWVzdFwiO1xuY29uc3QgX0xQQ0NSaSA9IFwiTGlzdFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdzUmVzcG9uc2VcIjtcbmNvbnN0IF9MUFIgPSBcIkxhc3RQcm9jZXNzaW5nUmVzdWx0XCI7XG5jb25zdCBfTFIgPSBcIkxvZ1Jlc3VsdFwiO1xuY29uc3QgX0xSTCA9IFwiTGF5ZXJzUmVmZXJlbmNlTGlzdFwiO1xuY29uc3QgX0xUID0gXCJMb2dUeXBlXCI7XG5jb25zdCBfTFRSID0gXCJMaXN0VGFnc1JlcXVlc3RcIjtcbmNvbnN0IF9MVFJpID0gXCJMaXN0VGFnc1Jlc3BvbnNlXCI7XG5jb25zdCBfTFRpID0gXCJMaXN0VGFnc1wiO1xuY29uc3QgX0xVUyA9IFwiTGFzdFVwZGF0ZVN0YXR1c1wiO1xuY29uc3QgX0xVU1IgPSBcIkxhc3RVcGRhdGVTdGF0dXNSZWFzb25cIjtcbmNvbnN0IF9MVVNSQyA9IFwiTGFzdFVwZGF0ZVN0YXR1c1JlYXNvbkNvZGVcIjtcbmNvbnN0IF9MViA9IFwiTGF5ZXJWZXJzaW9uc1wiO1xuY29uc3QgX0xWQSA9IFwiTGF5ZXJWZXJzaW9uQXJuXCI7XG5jb25zdCBfTFZCRiA9IFwiTGlzdFZlcnNpb25zQnlGdW5jdGlvblwiO1xuY29uc3QgX0xWQkZSID0gXCJMaXN0VmVyc2lvbnNCeUZ1bmN0aW9uUmVxdWVzdFwiO1xuY29uc3QgX0xWQkZSaSA9IFwiTGlzdFZlcnNpb25zQnlGdW5jdGlvblJlc3BvbnNlXCI7XG5jb25zdCBfTFZDSSA9IFwiTGF5ZXJWZXJzaW9uQ29udGVudElucHV0XCI7XG5jb25zdCBfTFZDTyA9IFwiTGF5ZXJWZXJzaW9uQ29udGVudE91dHB1dFwiO1xuY29uc3QgX0xWTCA9IFwiTGF5ZXJWZXJzaW9uc0xpc3RcIjtcbmNvbnN0IF9MVkxJID0gXCJMYXllclZlcnNpb25zTGlzdEl0ZW1cIjtcbmNvbnN0IF9MYSA9IFwiTGF5ZXJcIjtcbmNvbnN0IF9MbyA9IFwiTG9jYXRpb25cIjtcbmNvbnN0IF9NID0gXCJNZXNzYWdlXCI7XG5jb25zdCBfTUEgPSBcIk1heEFnZVwiO1xuY29uc3QgX01BYSA9IFwiTWFzdGVyQXJuXCI7XG5jb25zdCBfTUJXSVMgPSBcIk1heGltdW1CYXRjaGluZ1dpbmRvd0luU2Vjb25kc1wiO1xuY29uc3QgX01DID0gXCJNZXRyaWNzQ29uZmlnXCI7XG5jb25zdCBfTUNhID0gXCJNYXhpbXVtQ29uY3VycmVuY3lcIjtcbmNvbnN0IF9NRUFJUyA9IFwiTWF4aW11bUV2ZW50QWdlSW5TZWNvbmRzXCI7XG5jb25zdCBfTUVFID0gXCJNaW5FeGVjdXRpb25FbnZpcm9ubWVudHNcIjtcbmNvbnN0IF9NRUVhID0gXCJNYXhFeGVjdXRpb25FbnZpcm9ubWVudHNcIjtcbmNvbnN0IF9NSSA9IFwiTWF4SXRlbXNcIjtcbmNvbnN0IF9NUCA9IFwiTWluaW11bVBvbGxlcnNcIjtcbmNvbnN0IF9NUGEgPSBcIk1heGltdW1Qb2xsZXJzXCI7XG5jb25zdCBfTVIgPSBcIk1hc3RlclJlZ2lvblwiO1xuY29uc3QgX01SQSA9IFwiTWF4aW11bVJldHJ5QXR0ZW1wdHNcIjtcbmNvbnN0IF9NUkFJUyA9IFwiTWF4aW11bVJlY29yZEFnZUluU2Vjb25kc1wiO1xuY29uc3QgX01TID0gXCJNZW1vcnlTaXplXCI7XG5jb25zdCBfTVZDQyA9IFwiTWF4VkNwdUNvdW50XCI7XG5jb25zdCBfTWEgPSBcIk1hcmtlclwiO1xuY29uc3QgX01lID0gXCJNZXRyaWNzXCI7XG5jb25zdCBfTW8gPSBcIk1vZGVcIjtcbmNvbnN0IF9OID0gXCJOYW1lXCI7XG5jb25zdCBfTkFEUyA9IFwiTmV4dEF0dGVtcHREZWxheVNlY29uZHNcIjtcbmNvbnN0IF9OQVQgPSBcIk5leHRBdHRlbXB0VGltZXN0YW1wXCI7XG5jb25zdCBfTkVTID0gXCJOZXdFeGVjdXRpb25TdGF0ZVwiO1xuY29uc3QgX05NID0gXCJOZXh0TWFya2VyXCI7XG5jb25zdCBfTlBWRSA9IFwiTm9QdWJsaXNoZWRWZXJzaW9uRXhjZXB0aW9uXCI7XG5jb25zdCBfTyA9IFwiT3BlcmF0aW9uc1wiO1xuY29uc3QgX09GID0gXCJPbkZhaWx1cmVcIjtcbmNvbnN0IF9PSSA9IFwiT3JnYW5pemF0aW9uSWRcIjtcbmNvbnN0IF9PUCA9IFwiT3BlcmF0aW9uUGF5bG9hZFwiO1xuY29uc3QgX09QdSA9IFwiT3V0cHV0UGF5bG9hZFwiO1xuY29uc3QgX09TID0gXCJPblN1Y2Nlc3NcIjtcbmNvbnN0IF9PU3AgPSBcIk9wdGltaXphdGlvblN0YXR1c1wiO1xuY29uc3QgX09VID0gXCJPcGVyYXRpb25VcGRhdGVcIjtcbmNvbnN0IF9PVXAgPSBcIk9wZXJhdGlvblVwZGF0ZXNcIjtcbmNvbnN0IF9PcCA9IFwiT3BlcmF0aW9uXCI7XG5jb25zdCBfUCA9IFwiUHJpbmNpcGFsXCI7XG5jb25zdCBfUEMgPSBcIlBlcm1pc3Npb25zQ29uZmlnXCI7XG5jb25zdCBfUENDID0gXCJQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnc1wiO1xuY29uc3QgX1BDQ0wgPSBcIlByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdMaXN0XCI7XG5jb25zdCBfUENDTEkgPSBcIlByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdMaXN0SXRlbVwiO1xuY29uc3QgX1BDQ05GRSA9IFwiUHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ05vdEZvdW5kRXhjZXB0aW9uXCI7XG5jb25zdCBfUENFID0gXCJQcm92aXNpb25lZENvbmN1cnJlbnRFeGVjdXRpb25zXCI7XG5jb25zdCBfUENhID0gXCJQYXlsb2FkQ2h1bmtcIjtcbmNvbnN0IF9QRUVNQyA9IFwiUGVyRXhlY3V0aW9uRW52aXJvbm1lbnRNYXhDb25jdXJyZW5jeVwiO1xuY29uc3QgX1BGID0gXCJQYXJhbGxlbGl6YXRpb25GYWN0b3JcIjtcbmNvbnN0IF9QRkMgPSBcIlB1dEZ1bmN0aW9uQ29uY3VycmVuY3lcIjtcbmNvbnN0IF9QRkNSID0gXCJQdXRGdW5jdGlvbkNvbmN1cnJlbmN5UmVxdWVzdFwiO1xuY29uc3QgX1BGQ1NDID0gXCJQdXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnXCI7XG5jb25zdCBfUEZDU0NSID0gXCJQdXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnUmVxdWVzdFwiO1xuY29uc3QgX1BGQ1NDUnUgPSBcIlB1dEZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdSZXNwb25zZVwiO1xuY29uc3QgX1BGRSA9IFwiUHJlY29uZGl0aW9uRmFpbGVkRXhjZXB0aW9uXCI7XG5jb25zdCBfUEZFSUMgPSBcIlB1dEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdcIjtcbmNvbnN0IF9QRkVJQ1IgPSBcIlB1dEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdSZXF1ZXN0XCI7XG5jb25zdCBfUEZSQyA9IFwiUHV0RnVuY3Rpb25SZWN1cnNpb25Db25maWdcIjtcbmNvbnN0IF9QRlJDUiA9IFwiUHV0RnVuY3Rpb25SZWN1cnNpb25Db25maWdSZXF1ZXN0XCI7XG5jb25zdCBfUEZSQ1J1ID0gXCJQdXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZ1Jlc3BvbnNlXCI7XG5jb25zdCBfUEZTQyA9IFwiUHV0RnVuY3Rpb25TY2FsaW5nQ29uZmlnXCI7XG5jb25zdCBfUEZTQ1IgPSBcIlB1dEZ1bmN0aW9uU2NhbGluZ0NvbmZpZ1JlcXVlc3RcIjtcbmNvbnN0IF9QRlNDUnUgPSBcIlB1dEZ1bmN0aW9uU2NhbGluZ0NvbmZpZ1Jlc3BvbnNlXCI7XG5jb25zdCBfUEdOID0gXCJQb2xsZXJHcm91cE5hbWVcIjtcbmNvbnN0IF9QSSA9IFwiUGFyZW50SWRcIjtcbmNvbnN0IF9QTEVFID0gXCJQb2xpY3lMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvblwiO1xuY29uc3QgX1BMViA9IFwiUHVibGlzaExheWVyVmVyc2lvblwiO1xuY29uc3QgX1BMVlIgPSBcIlB1Ymxpc2hMYXllclZlcnNpb25SZXF1ZXN0XCI7XG5jb25zdCBfUExWUnUgPSBcIlB1Ymxpc2hMYXllclZlcnNpb25SZXNwb25zZVwiO1xuY29uc3QgX1BNVCA9IFwiUHJlZGVmaW5lZE1ldHJpY1R5cGVcIjtcbmNvbnN0IF9QT0lEID0gXCJQcmluY2lwYWxPcmdJRFwiO1xuY29uc3QgX1BQQyA9IFwiUHJvdmlzaW9uZWRQb2xsZXJDb25maWdcIjtcbmNvbnN0IF9QUENDID0gXCJQdXRQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnXCI7XG5jb25zdCBfUFBDQ1IgPSBcIlB1dFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdSZXF1ZXN0XCI7XG5jb25zdCBfUFBDQ1J1ID0gXCJQdXRQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnUmVzcG9uc2VcIjtcbmNvbnN0IF9QUk1DID0gXCJQdXRSdW50aW1lTWFuYWdlbWVudENvbmZpZ1wiO1xuY29uc3QgX1BSTUNSID0gXCJQdXRSdW50aW1lTWFuYWdlbWVudENvbmZpZ1JlcXVlc3RcIjtcbmNvbnN0IF9QUk1DUnUgPSBcIlB1dFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnUmVzcG9uc2VcIjtcbmNvbnN0IF9QVCA9IFwiUGFja2FnZVR5cGVcIjtcbmNvbnN0IF9QVHUgPSBcIlB1Ymxpc2hUb1wiO1xuY29uc3QgX1BWID0gXCJQdWJsaXNoVmVyc2lvblwiO1xuY29uc3QgX1BWUiA9IFwiUHVibGlzaFZlcnNpb25SZXF1ZXN0XCI7XG5jb25zdCBfUGEgPSBcIlBheWxvYWRcIjtcbmNvbnN0IF9QYXQgPSBcIlBhdHRlcm5cIjtcbmNvbnN0IF9QbyA9IFwiUG9saWN5XCI7XG5jb25zdCBfUHUgPSBcIlB1Ymxpc2hcIjtcbmNvbnN0IF9RID0gXCJRdWFsaWZpZXJcIjtcbmNvbnN0IF9RdSA9IFwiUXVldWVzXCI7XG5jb25zdCBfUiA9IFwiUmVzdWx0XCI7XG5jb25zdCBfUkEgPSBcIlJldHJ5LUFmdGVyXCI7XG5jb25zdCBfUkMgPSBcIlJvdXRpbmdDb25maWdcIjtcbmNvbnN0IF9SQ0UgPSBcIlJlc2VydmVkQ29uY3VycmVudEV4ZWN1dGlvbnNcIjtcbmNvbnN0IF9SQ0VlID0gXCJSZXNvdXJjZUNvbmZsaWN0RXhjZXB0aW9uXCI7XG5jb25zdCBfUkNlID0gXCJSZXBsYXlDaGlsZHJlblwiO1xuY29uc3QgX1JEID0gXCJSZXRyeURldGFpbHNcIjtcbmNvbnN0IF9SRlNDID0gXCJSZXF1ZXN0ZWRGdW5jdGlvblNjYWxpbmdDb25maWdcIjtcbmNvbnN0IF9SSSA9IFwiUmV2aXNpb25JZFwiO1xuY29uc3QgX1JJRSA9IFwiUmVjdXJzaXZlSW52b2NhdGlvbkV4Y2VwdGlvblwiO1xuY29uc3QgX1JJVSA9IFwiUmVzb2x2ZWRJbWFnZVVyaVwiO1xuY29uc3QgX1JJVUUgPSBcIlJlc291cmNlSW5Vc2VFeGNlcHRpb25cIjtcbmNvbnN0IF9SSWUgPSBcIlJlcXVlc3RJZFwiO1xuY29uc3QgX1JMID0gXCJSZWN1cnNpdmVMb29wXCI7XG5jb25zdCBfUkxWUCA9IFwiUmVtb3ZlTGF5ZXJWZXJzaW9uUGVybWlzc2lvblwiO1xuY29uc3QgX1JMVlBSID0gXCJSZW1vdmVMYXllclZlcnNpb25QZXJtaXNzaW9uUmVxdWVzdFwiO1xuY29uc3QgX1JORkUgPSBcIlJlc291cmNlTm90Rm91bmRFeGNlcHRpb25cIjtcbmNvbnN0IF9STlJFID0gXCJSZXNvdXJjZU5vdFJlYWR5RXhjZXB0aW9uXCI7XG5jb25zdCBfUk8gPSBcIlJldmVyc2VPcmRlclwiO1xuY29uc3QgX1JQID0gXCJSZW1vdmVQZXJtaXNzaW9uXCI7XG5jb25zdCBfUlBDRSA9IFwiUmVxdWVzdGVkUHJvdmlzaW9uZWRDb25jdXJyZW50RXhlY3V0aW9uc1wiO1xuY29uc3QgX1JQSUQgPSBcIlJldGVudGlvblBlcmlvZEluRGF5c1wiO1xuY29uc3QgX1JQUiA9IFwiUmVtb3ZlUGVybWlzc2lvblJlcXVlc3RcIjtcbmNvbnN0IF9SU0NUID0gXCJSZXNwb25zZVN0cmVhbUNvbnRlbnRUeXBlXCI7XG5jb25zdCBfUlQgPSBcIlJlcG9zaXRvcnlUeXBlXCI7XG5jb25zdCBfUlRMRSA9IFwiUmVxdWVzdFRvb0xhcmdlRXhjZXB0aW9uXCI7XG5jb25zdCBfUlZBID0gXCJSdW50aW1lVmVyc2lvbkFyblwiO1xuY29uc3QgX1JWQyA9IFwiUnVudGltZVZlcnNpb25Db25maWdcIjtcbmNvbnN0IF9SVkUgPSBcIlJ1bnRpbWVWZXJzaW9uRXJyb3JcIjtcbmNvbnN0IF9SZSA9IFwiUmVzb3VyY2VcIjtcbmNvbnN0IF9SZWEgPSBcIlJlYXNvblwiO1xuY29uc3QgX1JvID0gXCJSb2xlXCI7XG5jb25zdCBfUnUgPSBcIlJ1bnRpbWVcIjtcbmNvbnN0IF9TID0gXCJTdGF0ZW1lbnRcIjtcbmNvbnN0IF9TQSA9IFwiU291cmNlQXJuXCI7XG5jb25zdCBfU0FDID0gXCJTb3VyY2VBY2Nlc3NDb25maWd1cmF0aW9uc1wiO1xuY29uc3QgX1NBQ28gPSBcIlNvdXJjZUFjY2Vzc0NvbmZpZ3VyYXRpb25cIjtcbmNvbnN0IF9TQW8gPSBcIlNvdXJjZUFjY291bnRcIjtcbmNvbnN0IF9TQXQgPSBcIlN0YXJ0ZWRBZnRlclwiO1xuY29uc3QgX1NCID0gXCJTM0J1Y2tldFwiO1xuY29uc3QgX1NCdCA9IFwiU3RhcnRlZEJlZm9yZVwiO1xuY29uc3QgX1NDID0gXCJTY2FsaW5nQ29uZmlnXCI7XG5jb25zdCBfU0N0ID0gXCJTdGF0dXNDb2RlXCI7XG5jb25zdCBfU0QgPSBcIlN0ZXBEZXRhaWxzXCI7XG5jb25zdCBfU0RFID0gXCJTdG9wRHVyYWJsZUV4ZWN1dGlvblwiO1xuY29uc3QgX1NERUNGID0gXCJTZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrRmFpbHVyZVwiO1xuY29uc3QgX1NERUNGUiA9IFwiU2VuZER1cmFibGVFeGVjdXRpb25DYWxsYmFja0ZhaWx1cmVSZXF1ZXN0XCI7XG5jb25zdCBfU0RFQ0ZSZSA9IFwiU2VuZER1cmFibGVFeGVjdXRpb25DYWxsYmFja0ZhaWx1cmVSZXNwb25zZVwiO1xuY29uc3QgX1NERUNIID0gXCJTZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrSGVhcnRiZWF0XCI7XG5jb25zdCBfU0RFQ0hSID0gXCJTZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrSGVhcnRiZWF0UmVxdWVzdFwiO1xuY29uc3QgX1NERUNIUmUgPSBcIlNlbmREdXJhYmxlRXhlY3V0aW9uQ2FsbGJhY2tIZWFydGJlYXRSZXNwb25zZVwiO1xuY29uc3QgX1NERUNTID0gXCJTZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrU3VjY2Vzc1wiO1xuY29uc3QgX1NERUNTUiA9IFwiU2VuZER1cmFibGVFeGVjdXRpb25DYWxsYmFja1N1Y2Nlc3NSZXF1ZXN0XCI7XG5jb25zdCBfU0RFQ1NSZSA9IFwiU2VuZER1cmFibGVFeGVjdXRpb25DYWxsYmFja1N1Y2Nlc3NSZXNwb25zZVwiO1xuY29uc3QgX1NERVIgPSBcIlN0b3BEdXJhYmxlRXhlY3V0aW9uUmVxdWVzdFwiO1xuY29uc3QgX1NERVJ0ID0gXCJTdG9wRHVyYWJsZUV4ZWN1dGlvblJlc3BvbnNlXCI7XG5jb25zdCBfU0UgPSBcIlNlcnZpY2VFeGNlcHRpb25cIjtcbmNvbnN0IF9TRVQgPSBcIlNjaGVkdWxlZEVuZFRpbWVzdGFtcFwiO1xuY29uc3QgX1NGRCA9IFwiU3RlcEZhaWxlZERldGFpbHNcIjtcbmNvbnN0IF9TR0kgPSBcIlNlY3VyaXR5R3JvdXBJZHNcIjtcbmNvbnN0IF9TSSA9IFwiU3RhdGVtZW50SWRcIjtcbmNvbnN0IF9TSVBBTFJFID0gXCJTdWJuZXRJUEFkZHJlc3NMaW1pdFJlYWNoZWRFeGNlcHRpb25cIjtcbmNvbnN0IF9TSXUgPSBcIlN1Ym5ldElkc1wiO1xuY29uc3QgX1NKQSA9IFwiU2lnbmluZ0pvYkFyblwiO1xuY29uc3QgX1NLID0gXCJTM0tleVwiO1xuY29uc3QgX1NLTVNLQSA9IFwiU291cmNlS01TS2V5QXJuXCI7XG5jb25zdCBfU0xMID0gXCJTeXN0ZW1Mb2dMZXZlbFwiO1xuY29uc3QgX1NNID0gXCJTY2FsaW5nTW9kZVwiO1xuY29uc3QgX1NNRVMgPSBcIlNlbGZNYW5hZ2VkRXZlbnRTb3VyY2VcIjtcbmNvbnN0IF9TTUtFU0MgPSBcIlNlbGZNYW5hZ2VkS2Fma2FFdmVudFNvdXJjZUNvbmZpZ1wiO1xuY29uc3QgX1NPID0gXCJTdGVwT3B0aW9uc1wiO1xuY29uc3QgX1NPViA9IFwiUzNPYmplY3RWZXJzaW9uXCI7XG5jb25zdCBfU1AgPSBcIlNjYWxpbmdQb2xpY2llc1wiO1xuY29uc3QgX1NQVCA9IFwiU3RhcnRpbmdQb3NpdGlvblRpbWVzdGFtcFwiO1xuY29uc3QgX1NQVkEgPSBcIlNpZ25pbmdQcm9maWxlVmVyc2lvbkFybnNcIjtcbmNvbnN0IF9TUFZBaSA9IFwiU2lnbmluZ1Byb2ZpbGVWZXJzaW9uQXJuXCI7XG5jb25zdCBfU1B0ID0gXCJTdGFydGluZ1Bvc2l0aW9uXCI7XG5jb25zdCBfU1IgPSBcIlN0YXRlUmVhc29uXCI7XG5jb25zdCBfU1JDID0gXCJTY2hlbWFSZWdpc3RyeUNvbmZpZ1wiO1xuY29uc3QgX1NSQ3QgPSBcIlN0YXRlUmVhc29uQ29kZVwiO1xuY29uc3QgX1NSRVRMRSA9IFwiU2VyaWFsaXplZFJlcXVlc3RFbnRpdHlUb29MYXJnZUV4Y2VwdGlvblwiO1xuY29uc3QgX1NSVVJJID0gXCJTY2hlbWFSZWdpc3RyeVVSSVwiO1xuY29uc3QgX1NSdCA9IFwiU3RhdHVzUmVhc29uXCI7XG5jb25zdCBfU1MgPSBcIlNlbnNpdGl2ZVN0cmluZ1wiO1xuY29uc3QgX1NTRCA9IFwiU3RlcFN0YXJ0ZWREZXRhaWxzXCI7XG5jb25zdCBfU1NEdCA9IFwiU3RlcFN1Y2NlZWRlZERldGFpbHNcIjtcbmNvbnN0IF9TU0UgPSBcIlNuYXBTdGFydEV4Y2VwdGlvblwiO1xuY29uc3QgX1NTTlJFID0gXCJTbmFwU3RhcnROb3RSZWFkeUV4Y2VwdGlvblwiO1xuY29uc3QgX1NTUiA9IFwiU25hcFN0YXJ0UmVzcG9uc2VcIjtcbmNvbnN0IF9TU1RFID0gXCJTbmFwU3RhcnRUaW1lb3V0RXhjZXB0aW9uXCI7XG5jb25zdCBfU1NuID0gXCJTbmFwU3RhcnRcIjtcbmNvbnN0IF9TVCA9IFwiU3RhY2tUcmFjZVwiO1xuY29uc3QgX1NURSA9IFwiU3RhY2tUcmFjZUVudHJ5XCI7XG5jb25zdCBfU1RFdCA9IFwiU3RhY2tUcmFjZUVudHJpZXNcIjtcbmNvbnN0IF9TVFIgPSBcIlN0YXRlVHJhbnNpdGlvblJlYXNvblwiO1xuY29uc3QgX1NUdCA9IFwiU3RhcnRUaW1lc3RhbXBcIjtcbmNvbnN0IF9TVHRvID0gXCJTdG9wVGltZXN0YW1wXCI7XG5jb25zdCBfU1R1ID0gXCJTdWJUeXBlXCI7XG5jb25zdCBfU1ZDID0gXCJTY2hlbWFWYWxpZGF0aW9uQ29uZmlnc1wiO1xuY29uc3QgX1NpID0gXCJTaXplXCI7XG5jb25zdCBfU3QgPSBcIlN0YXRlXCI7XG5jb25zdCBfU3RhID0gXCJTdGF0dXNcIjtcbmNvbnN0IF9TdGF0ID0gXCJTdGF0dXNlc1wiO1xuY29uc3QgX1QgPSBcIlRpbWVvdXRcIjtcbmNvbnN0IF9UQSA9IFwiVGFyZ2V0QXJuXCI7XG5jb25zdCBfVEMgPSBcIlRyYWNpbmdDb25maWdcIjtcbmNvbnN0IF9UQ1IgPSBcIlRyYWNpbmdDb25maWdSZXNwb25zZVwiO1xuY29uc3QgX1RDUyA9IFwiVG90YWxDb2RlU2l6ZVwiO1xuY29uc3QgX1RDZSA9IFwiVGVuYW5jeUNvbmZpZ1wiO1xuY29uc3QgX1RFID0gXCJUYWdzRXJyb3JcIjtcbmNvbnN0IF9USCA9IFwiVHJhY2VIZWFkZXJcIjtcbmNvbnN0IF9USSA9IFwiVGVuYW50SWRcIjtcbmNvbnN0IF9USU0gPSBcIlRlbmFudElzb2xhdGlvbk1vZGVcIjtcbmNvbnN0IF9USyA9IFwiVGFnS2V5c1wiO1xuY29uc3QgX1RNUkUgPSBcIlRvb01hbnlSZXF1ZXN0c0V4Y2VwdGlvblwiO1xuY29uc3QgX1RSID0gXCJUYWdSZXNvdXJjZVwiO1xuY29uc3QgX1RSUiA9IFwiVGFnUmVzb3VyY2VSZXF1ZXN0XCI7XG5jb25zdCBfVFMgPSBcIlRpbWVvdXRTZWNvbmRzXCI7XG5jb25zdCBfVFRTUCA9IFwiVGFyZ2V0VHJhY2tpbmdTY2FsaW5nUG9saWN5XCI7XG5jb25zdCBfVFYgPSBcIlRhcmdldFZhbHVlXCI7XG5jb25zdCBfVFdJUyA9IFwiVHVtYmxpbmdXaW5kb3dJblNlY29uZHNcIjtcbmNvbnN0IF9UYSA9IFwiVGFnc1wiO1xuY29uc3QgX1RvID0gXCJUb3BpY3NcIjtcbmNvbnN0IF9UciA9IFwiVHJ1bmNhdGVkXCI7XG5jb25zdCBfVHkgPSBcIlR5cGVcIjtcbmNvbnN0IF9VID0gXCJVcGRhdGVzXCI7XG5jb25zdCBfVUEgPSBcIlVwZGF0ZUFsaWFzXCI7XG5jb25zdCBfVUFPRCA9IFwiVW50cnVzdGVkQXJ0aWZhY3RPbkRlcGxveW1lbnRcIjtcbmNvbnN0IF9VQVIgPSBcIlVwZGF0ZUFsaWFzUmVxdWVzdFwiO1xuY29uc3QgX1VDRSA9IFwiVW5yZXNlcnZlZENvbmN1cnJlbnRFeGVjdXRpb25zXCI7XG5jb25zdCBfVUNQID0gXCJVcGRhdGVDYXBhY2l0eVByb3ZpZGVyXCI7XG5jb25zdCBfVUNQUiA9IFwiVXBkYXRlQ2FwYWNpdHlQcm92aWRlclJlcXVlc3RcIjtcbmNvbnN0IF9VQ1BScCA9IFwiVXBkYXRlQ2FwYWNpdHlQcm92aWRlclJlc3BvbnNlXCI7XG5jb25zdCBfVUNTQyA9IFwiVXBkYXRlQ29kZVNpZ25pbmdDb25maWdcIjtcbmNvbnN0IF9VQ1NDUiA9IFwiVXBkYXRlQ29kZVNpZ25pbmdDb25maWdSZXF1ZXN0XCI7XG5jb25zdCBfVUNTQ1JwID0gXCJVcGRhdGVDb2RlU2lnbmluZ0NvbmZpZ1Jlc3BvbnNlXCI7XG5jb25zdCBfVUVTTSA9IFwiVXBkYXRlRXZlbnRTb3VyY2VNYXBwaW5nXCI7XG5jb25zdCBfVUVTTVIgPSBcIlVwZGF0ZUV2ZW50U291cmNlTWFwcGluZ1JlcXVlc3RcIjtcbmNvbnN0IF9VRkMgPSBcIlVwZGF0ZUZ1bmN0aW9uQ29kZVwiO1xuY29uc3QgX1VGQ1IgPSBcIlVwZGF0ZUZ1bmN0aW9uQ29kZVJlcXVlc3RcIjtcbmNvbnN0IF9VRkNScCA9IFwiVXBkYXRlRnVuY3Rpb25Db25maWd1cmF0aW9uUmVxdWVzdFwiO1xuY29uc3QgX1VGQ3AgPSBcIlVwZGF0ZUZ1bmN0aW9uQ29uZmlndXJhdGlvblwiO1xuY29uc3QgX1VGRUlDID0gXCJVcGRhdGVGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnXCI7XG5jb25zdCBfVUZFSUNSID0gXCJVcGRhdGVGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnUmVxdWVzdFwiO1xuY29uc3QgX1VGVUMgPSBcIlVwZGF0ZUZ1bmN0aW9uVXJsQ29uZmlnXCI7XG5jb25zdCBfVUZVQ1IgPSBcIlVwZGF0ZUZ1bmN0aW9uVXJsQ29uZmlnUmVxdWVzdFwiO1xuY29uc3QgX1VGVUNScCA9IFwiVXBkYXRlRnVuY3Rpb25VcmxDb25maWdSZXNwb25zZVwiO1xuY29uc3QgX1VNVEUgPSBcIlVuc3VwcG9ydGVkTWVkaWFUeXBlRXhjZXB0aW9uXCI7XG5jb25zdCBfVVIgPSBcIlVudGFnUmVzb3VyY2VcIjtcbmNvbnN0IF9VUkkgPSBcIlVSSVwiO1xuY29uc3QgX1VSTyA9IFwiVXBkYXRlUnVudGltZU9uXCI7XG5jb25zdCBfVVJSID0gXCJVbnRhZ1Jlc291cmNlUmVxdWVzdFwiO1xuY29uc3QgX1VVSUQgPSBcIlVVSURcIjtcbmNvbnN0IF9WID0gXCJWYXJpYWJsZXNcIjtcbmNvbnN0IF9WQyA9IFwiVnBjQ29uZmlnXCI7XG5jb25zdCBfVkNSID0gXCJWcGNDb25maWdSZXNwb25zZVwiO1xuY29uc3QgX1ZJID0gXCJWcGNJZFwiO1xuY29uc3QgX1ZOID0gXCJWZXJzaW9uTnVtYmVyXCI7XG5jb25zdCBfVmUgPSBcIlZlcnNpb25cIjtcbmNvbnN0IF9WZXIgPSBcIlZlcnNpb25zXCI7XG5jb25zdCBfV0NEID0gXCJXYWl0Q2FuY2VsbGVkRGV0YWlsc1wiO1xuY29uc3QgX1dEID0gXCJXb3JraW5nRGlyZWN0b3J5XCI7XG5jb25zdCBfV0RhID0gXCJXYWl0RGV0YWlsc1wiO1xuY29uc3QgX1dPID0gXCJXYWl0T3B0aW9uc1wiO1xuY29uc3QgX1dTID0gXCJXYWl0U2Vjb25kc1wiO1xuY29uc3QgX1dTRCA9IFwiV2FpdFN0YXJ0ZWREZXRhaWxzXCI7XG5jb25zdCBfV1NEYSA9IFwiV2FpdFN1Y2NlZWRlZERldGFpbHNcIjtcbmNvbnN0IF9YQUNDID0gXCJYLUFtei1DbGllbnQtQ29udGV4dFwiO1xuY29uc3QgX1hBREVBID0gXCJYLUFtei1EdXJhYmxlLUV4ZWN1dGlvbi1Bcm5cIjtcbmNvbnN0IF9YQURFTiA9IFwiWC1BbXotRHVyYWJsZS1FeGVjdXRpb24tTmFtZVwiO1xuY29uc3QgX1hBRVYgPSBcIlgtQW16LUV4ZWN1dGVkLVZlcnNpb25cIjtcbmNvbnN0IF9YQUZFID0gXCJYLUFtei1GdW5jdGlvbi1FcnJvclwiO1xuY29uc3QgX1hBSVQgPSBcIlgtQW16LUludm9jYXRpb24tVHlwZVwiO1xuY29uc3QgX1hBTFIgPSBcIlgtQW16LUxvZy1SZXN1bHRcIjtcbmNvbnN0IF9YQUxUID0gXCJYLUFtei1Mb2ctVHlwZVwiO1xuY29uc3QgX1hBVEkgPSBcIlgtQW16LVRlbmFudC1JZFwiO1xuY29uc3QgX1hBVEltID0gXCJYQW16blRyYWNlSWRcIjtcbmNvbnN0IF9aRiA9IFwiWmlwRmlsZVwiO1xuY29uc3QgX2MgPSBcImNsaWVudFwiO1xuY29uc3QgX2UgPSBcImVycm9yXCI7XG5jb25zdCBfZVAgPSBcImV2ZW50UGF5bG9hZFwiO1xuY29uc3QgX2ggPSBcImh0dHBcIjtcbmNvbnN0IF9oRSA9IFwiaHR0cEVycm9yXCI7XG5jb25zdCBfaEggPSBcImh0dHBIZWFkZXJcIjtcbmNvbnN0IF9oUSA9IFwiaHR0cFF1ZXJ5XCI7XG5jb25zdCBfbSA9IFwibWVzc2FnZVwiO1xuY29uc3QgX3JBUyA9IFwicmV0cnlBZnRlclNlY29uZHNcIjtcbmNvbnN0IF9zID0gXCJzdHJlYW1pbmdcIjtcbmNvbnN0IF9zZSA9IFwic2VydmVyXCI7XG5jb25zdCBfc20gPSBcInNtaXRoeS50cy5zZGsuc3ludGhldGljLmNvbS5hbWF6b25hd3MubGFtYmRhXCI7XG5jb25zdCBfdEsgPSBcInRhZ0tleXNcIjtcbmNvbnN0IG4wID0gXCJjb20uYW1hem9uYXdzLmxhbWJkYVwiO1xudmFyIEJpbmFyeU9wZXJhdGlvblBheWxvYWQgPSBbMCwgbjAsIF9CT1AsIDgsIDIxXTtcbnZhciBfQmxvYiA9IFswLCBuMCwgX0IsIDgsIDIxXTtcbnZhciBCbG9iU3RyZWFtID0gWzAsIG4wLCBfQlMsIHsgW19zXTogMSB9LCA0Ml07XG52YXIgRW52aXJvbm1lbnRWYXJpYWJsZU5hbWUgPSBbMCwgbjAsIF9FVk4sIDgsIDBdO1xudmFyIEVudmlyb25tZW50VmFyaWFibGVWYWx1ZSA9IFswLCBuMCwgX0VWViwgOCwgMF07XG52YXIgRXJyb3JEYXRhID0gWzAsIG4wLCBfRUQsIDgsIDBdO1xudmFyIEVycm9yTWVzc2FnZSA9IFswLCBuMCwgX0VNLCA4LCAwXTtcbnZhciBFcnJvclR5cGUgPSBbMCwgbjAsIF9FVCwgOCwgMF07XG52YXIgSW5wdXRQYXlsb2FkID0gWzAsIG4wLCBfSVAsIDgsIDBdO1xudmFyIE9wZXJhdGlvblBheWxvYWQgPSBbMCwgbjAsIF9PUCwgOCwgMF07XG52YXIgT3V0cHV0UGF5bG9hZCA9IFswLCBuMCwgX09QdSwgOCwgMF07XG52YXIgU2Vuc2l0aXZlU3RyaW5nID0gWzAsIG4wLCBfU1MsIDgsIDBdO1xudmFyIFN0YWNrVHJhY2VFbnRyeSA9IFswLCBuMCwgX1NURSwgOCwgMF07XG52YXIgQWNjb3VudExpbWl0ID0gWzMsIG4wLCBfQUwsIDAsIFtfVENTLCBfQ1NVLCBfQ1NaLCBfQ0UsIF9VQ0VdLCBbMSwgMSwgMSwgMSwgMV1dO1xudmFyIEFjY291bnRVc2FnZSA9IFszLCBuMCwgX0FVLCAwLCBbX1RDUywgX0ZDXSwgWzEsIDFdXTtcbnZhciBBZGRMYXllclZlcnNpb25QZXJtaXNzaW9uUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9BTFZQUixcbiAgICAwLFxuICAgIFtfTE4sIF9WTiwgX1NJLCBfQSwgX1AsIF9PSSwgX1JJXSxcbiAgICBbWzAsIDFdLCBbMSwgMV0sIDAsIDAsIDAsIDAsIFswLCB7IFtfaFFdOiBfUkkgfV1dLFxuXTtcbnZhciBBZGRMYXllclZlcnNpb25QZXJtaXNzaW9uUmVzcG9uc2UgPSBbMywgbjAsIF9BTFZQUmQsIDAsIFtfUywgX1JJXSwgWzAsIDBdXTtcbnZhciBBZGRQZXJtaXNzaW9uUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9BUFIsXG4gICAgMCxcbiAgICBbX0ZOLCBfU0ksIF9BLCBfUCwgX1NBLCBfU0FvLCBfRVNULCBfUSwgX1JJLCBfUE9JRCwgX0ZVQVQsIF9JVkZVXSxcbiAgICBbWzAsIDFdLCAwLCAwLCAwLCAwLCAwLCAwLCBbMCwgeyBbX2hRXTogX1EgfV0sIDAsIDAsIDAsIDJdLFxuXTtcbnZhciBBZGRQZXJtaXNzaW9uUmVzcG9uc2UgPSBbMywgbjAsIF9BUFJkLCAwLCBbX1NdLCBbMF1dO1xudmFyIEFsaWFzQ29uZmlndXJhdGlvbiA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9BQyxcbiAgICAwLFxuICAgIFtfQUEsIF9OLCBfRlYsIF9ELCBfUkMsIF9SSV0sXG4gICAgWzAsIDAsIDAsIDAsICgpID0+IEFsaWFzUm91dGluZ0NvbmZpZ3VyYXRpb24sIDBdLFxuXTtcbnZhciBBbGlhc1JvdXRpbmdDb25maWd1cmF0aW9uID0gWzMsIG4wLCBfQVJDLCAwLCBbX0FWV10sIFsxMjggfCAxXV07XG52YXIgQWxsb3dlZFB1Ymxpc2hlcnMgPSBbMywgbjAsIF9BUCwgMCwgW19TUFZBXSwgWzY0IHwgMF1dO1xudmFyIEFtYXpvbk1hbmFnZWRLYWZrYUV2ZW50U291cmNlQ29uZmlnID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0FNS0VTQyxcbiAgICAwLFxuICAgIFtfQ0dJLCBfU1JDXSxcbiAgICBbMCwgKCkgPT4gS2Fma2FTY2hlbWFSZWdpc3RyeUNvbmZpZ10sXG5dO1xudmFyIENhbGxiYWNrRGV0YWlscyA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9DRCxcbiAgICAwLFxuICAgIFtfQ0ksIF9SLCBfRV0sXG4gICAgWzAsIFsoKSA9PiBPcGVyYXRpb25QYXlsb2FkLCAwXSwgWygpID0+IEVycm9yT2JqZWN0LCAwXV0sXG5dO1xudmFyIENhbGxiYWNrRmFpbGVkRGV0YWlscyA9IFszLCBuMCwgX0NGRCwgMCwgW19FXSwgW1soKSA9PiBFdmVudEVycm9yLCAwXV1dO1xudmFyIENhbGxiYWNrT3B0aW9ucyA9IFszLCBuMCwgX0NPLCAwLCBbX1RTLCBfSFRTXSwgWzEsIDFdXTtcbnZhciBDYWxsYmFja1N0YXJ0ZWREZXRhaWxzID0gWzMsIG4wLCBfQ1NELCAwLCBbX0NJLCBfSFQsIF9UXSwgWzAsIDEsIDFdXTtcbnZhciBDYWxsYmFja1N1Y2NlZWRlZERldGFpbHMgPSBbMywgbjAsIF9DU0RhLCAwLCBbX1JdLCBbWygpID0+IEV2ZW50UmVzdWx0LCAwXV1dO1xudmFyIENhbGxiYWNrVGltZWRPdXREZXRhaWxzID0gWzMsIG4wLCBfQ1RPRCwgMCwgW19FXSwgW1soKSA9PiBFdmVudEVycm9yLCAwXV1dO1xudmFyIENhbGxiYWNrVGltZW91dEV4Y2VwdGlvbiA9IFstMywgbjAsIF9DVEUsIHsgW19lXTogX2MsIFtfaEVdOiA0MDAgfSwgW19UeSwgX01dLCBbMCwgMF1dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoQ2FsbGJhY2tUaW1lb3V0RXhjZXB0aW9uLCBDYWxsYmFja1RpbWVvdXRFeGNlcHRpb24kMSk7XG52YXIgQ2FwYWNpdHlQcm92aWRlciA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9DUCxcbiAgICAwLFxuICAgIFtfQ1BBLCBfU3QsIF9WQywgX1BDLCBfSVIsIF9DUFNDLCBfS0tBLCBfTE1dLFxuICAgIFtcbiAgICAgICAgMCxcbiAgICAgICAgMCxcbiAgICAgICAgKCkgPT4gQ2FwYWNpdHlQcm92aWRlclZwY0NvbmZpZyxcbiAgICAgICAgKCkgPT4gQ2FwYWNpdHlQcm92aWRlclBlcm1pc3Npb25zQ29uZmlnLFxuICAgICAgICAoKSA9PiBJbnN0YW5jZVJlcXVpcmVtZW50cyxcbiAgICAgICAgKCkgPT4gQ2FwYWNpdHlQcm92aWRlclNjYWxpbmdDb25maWcsXG4gICAgICAgIDAsXG4gICAgICAgIDAsXG4gICAgXSxcbl07XG52YXIgQ2FwYWNpdHlQcm92aWRlckNvbmZpZyA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9DUEMsXG4gICAgMCxcbiAgICBbX0xNSUNQQ10sXG4gICAgWygpID0+IExhbWJkYU1hbmFnZWRJbnN0YW5jZXNDYXBhY2l0eVByb3ZpZGVyQ29uZmlnXSxcbl07XG52YXIgQ2FwYWNpdHlQcm92aWRlckxpbWl0RXhjZWVkZWRFeGNlcHRpb24gPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX0NQTEVFLFxuICAgIHsgW19lXTogX2MsIFtfaEVdOiA0MDAgfSxcbiAgICBbX1R5LCBfbV0sXG4gICAgWzAsIDBdLFxuXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKENhcGFjaXR5UHJvdmlkZXJMaW1pdEV4Y2VlZGVkRXhjZXB0aW9uLCBDYXBhY2l0eVByb3ZpZGVyTGltaXRFeGNlZWRlZEV4Y2VwdGlvbiQxKTtcbnZhciBDYXBhY2l0eVByb3ZpZGVyUGVybWlzc2lvbnNDb25maWcgPSBbMywgbjAsIF9DUFBDLCAwLCBbX0NQT1JBXSwgWzBdXTtcbnZhciBDYXBhY2l0eVByb3ZpZGVyU2NhbGluZ0NvbmZpZyA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9DUFNDLFxuICAgIDAsXG4gICAgW19NVkNDLCBfU00sIF9TUF0sXG4gICAgWzEsIDAsICgpID0+IENhcGFjaXR5UHJvdmlkZXJTY2FsaW5nUG9saWNpZXNMaXN0XSxcbl07XG52YXIgQ2FwYWNpdHlQcm92aWRlclZwY0NvbmZpZyA9IFszLCBuMCwgX0NQVkMsIDAsIFtfU0l1LCBfU0dJXSwgWzY0IHwgMCwgNjQgfCAwXV07XG52YXIgQ2hhaW5lZEludm9rZURldGFpbHMgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfQ0lELFxuICAgIDAsXG4gICAgW19SLCBfRV0sXG4gICAgW1xuICAgICAgICBbKCkgPT4gT3BlcmF0aW9uUGF5bG9hZCwgMF0sXG4gICAgICAgIFsoKSA9PiBFcnJvck9iamVjdCwgMF0sXG4gICAgXSxcbl07XG52YXIgQ2hhaW5lZEludm9rZUZhaWxlZERldGFpbHMgPSBbMywgbjAsIF9DSUZELCAwLCBbX0VdLCBbWygpID0+IEV2ZW50RXJyb3IsIDBdXV07XG52YXIgQ2hhaW5lZEludm9rZU9wdGlvbnMgPSBbMywgbjAsIF9DSU8sIDAsIFtfRk4sIF9USV0sIFswLCAwXV07XG52YXIgQ2hhaW5lZEludm9rZVN0YXJ0ZWREZXRhaWxzID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0NJU0QsXG4gICAgMCxcbiAgICBbX0ZOLCBfVEksIF9JLCBfRVYsIF9ERUFdLFxuICAgIFswLCAwLCBbKCkgPT4gRXZlbnRJbnB1dCwgMF0sIDAsIDBdLFxuXTtcbnZhciBDaGFpbmVkSW52b2tlU3RvcHBlZERldGFpbHMgPSBbMywgbjAsIF9DSVNEaCwgMCwgW19FXSwgW1soKSA9PiBFdmVudEVycm9yLCAwXV1dO1xudmFyIENoYWluZWRJbnZva2VTdWNjZWVkZWREZXRhaWxzID0gWzMsIG4wLCBfQ0lTRGhhLCAwLCBbX1JdLCBbWygpID0+IEV2ZW50UmVzdWx0LCAwXV1dO1xudmFyIENoYWluZWRJbnZva2VUaW1lZE91dERldGFpbHMgPSBbMywgbjAsIF9DSVRPRCwgMCwgW19FXSwgW1soKSA9PiBFdmVudEVycm9yLCAwXV1dO1xudmFyIENoZWNrcG9pbnREdXJhYmxlRXhlY3V0aW9uUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9DREVSLFxuICAgIDAsXG4gICAgW19ERUEsIF9DVCwgX1UsIF9DVGxdLFxuICAgIFtbMCwgMV0sIDAsIFsoKSA9PiBPcGVyYXRpb25VcGRhdGVzLCAwXSwgWzAsIDRdXSxcbl07XG52YXIgQ2hlY2twb2ludER1cmFibGVFeGVjdXRpb25SZXNwb25zZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9DREVSaCxcbiAgICAwLFxuICAgIFtfQ1QsIF9ORVNdLFxuICAgIFswLCBbKCkgPT4gQ2hlY2twb2ludFVwZGF0ZWRFeGVjdXRpb25TdGF0ZSwgMF1dLFxuXTtcbnZhciBDaGVja3BvaW50VXBkYXRlZEV4ZWN1dGlvblN0YXRlID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0NVRVMsXG4gICAgMCxcbiAgICBbX08sIF9OTV0sXG4gICAgW1soKSA9PiBPcGVyYXRpb25zLCAwXSwgMF0sXG5dO1xudmFyIENvZGVTaWduaW5nQ29uZmlnID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0NTQyxcbiAgICAwLFxuICAgIFtfQ1NDSSwgX0NTQ0EsIF9ELCBfQVAsIF9DU1AsIF9MTV0sXG4gICAgWzAsIDAsIDAsICgpID0+IEFsbG93ZWRQdWJsaXNoZXJzLCAoKSA9PiBDb2RlU2lnbmluZ1BvbGljaWVzLCAwXSxcbl07XG52YXIgQ29kZVNpZ25pbmdDb25maWdOb3RGb3VuZEV4Y2VwdGlvbiA9IFtcbiAgICAtMyxcbiAgICBuMCxcbiAgICBfQ1NDTkZFLFxuICAgIHsgW19lXTogX2MsIFtfaEVdOiA0MDQgfSxcbiAgICBbX1R5LCBfTV0sXG4gICAgWzAsIDBdLFxuXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKENvZGVTaWduaW5nQ29uZmlnTm90Rm91bmRFeGNlcHRpb24sIENvZGVTaWduaW5nQ29uZmlnTm90Rm91bmRFeGNlcHRpb24kMSk7XG52YXIgQ29kZVNpZ25pbmdQb2xpY2llcyA9IFszLCBuMCwgX0NTUCwgMCwgW19VQU9EXSwgWzBdXTtcbnZhciBDb2RlU3RvcmFnZUV4Y2VlZGVkRXhjZXB0aW9uID0gW1xuICAgIC0zLFxuICAgIG4wLFxuICAgIF9DU0VFLFxuICAgIHsgW19lXTogX2MsIFtfaEVdOiA0MDAgfSxcbiAgICBbX1R5LCBfbV0sXG4gICAgWzAsIDBdLFxuXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKENvZGVTdG9yYWdlRXhjZWVkZWRFeGNlcHRpb24sIENvZGVTdG9yYWdlRXhjZWVkZWRFeGNlcHRpb24kMSk7XG52YXIgQ29kZVZlcmlmaWNhdGlvbkZhaWxlZEV4Y2VwdGlvbiA9IFtcbiAgICAtMyxcbiAgICBuMCxcbiAgICBfQ1ZGRSxcbiAgICB7IFtfZV06IF9jLCBbX2hFXTogNDAwIH0sXG4gICAgW19UeSwgX01dLFxuICAgIFswLCAwXSxcbl07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihDb2RlVmVyaWZpY2F0aW9uRmFpbGVkRXhjZXB0aW9uLCBDb2RlVmVyaWZpY2F0aW9uRmFpbGVkRXhjZXB0aW9uJDEpO1xudmFyIENvbmN1cnJlbmN5ID0gWzMsIG4wLCBfQywgMCwgW19SQ0VdLCBbMV1dO1xudmFyIENvbnRleHREZXRhaWxzID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0NEbyxcbiAgICAwLFxuICAgIFtfUkNlLCBfUiwgX0VdLFxuICAgIFsyLCBbKCkgPT4gT3BlcmF0aW9uUGF5bG9hZCwgMF0sIFsoKSA9PiBFcnJvck9iamVjdCwgMF1dLFxuXTtcbnZhciBDb250ZXh0RmFpbGVkRGV0YWlscyA9IFszLCBuMCwgX0NGRG8sIDAsIFtfRV0sIFtbKCkgPT4gRXZlbnRFcnJvciwgMF1dXTtcbnZhciBDb250ZXh0T3B0aW9ucyA9IFszLCBuMCwgX0NPbywgMCwgW19SQ2VdLCBbMl1dO1xudmFyIENvbnRleHRTdGFydGVkRGV0YWlscyA9IFszLCBuMCwgX0NTRG8sIDAsIFtdLCBbXV07XG52YXIgQ29udGV4dFN1Y2NlZWRlZERldGFpbHMgPSBbMywgbjAsIF9DU0RvbiwgMCwgW19SXSwgW1soKSA9PiBFdmVudFJlc3VsdCwgMF1dXTtcbnZhciBDb3JzID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0NvLFxuICAgIDAsXG4gICAgW19BQ2wsIF9BSCwgX0FNLCBfQU8sIF9FSCwgX01BXSxcbiAgICBbMiwgNjQgfCAwLCA2NCB8IDAsIDY0IHwgMCwgNjQgfCAwLCAxXSxcbl07XG52YXIgQ3JlYXRlQWxpYXNSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0NBUixcbiAgICAwLFxuICAgIFtfRk4sIF9OLCBfRlYsIF9ELCBfUkNdLFxuICAgIFtbMCwgMV0sIDAsIDAsIDAsICgpID0+IEFsaWFzUm91dGluZ0NvbmZpZ3VyYXRpb25dLFxuXTtcbnZhciBDcmVhdGVDYXBhY2l0eVByb3ZpZGVyUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9DQ1BSLFxuICAgIDAsXG4gICAgW19DUE4sIF9WQywgX1BDLCBfSVIsIF9DUFNDLCBfS0tBLCBfVGFdLFxuICAgIFtcbiAgICAgICAgMCxcbiAgICAgICAgKCkgPT4gQ2FwYWNpdHlQcm92aWRlclZwY0NvbmZpZyxcbiAgICAgICAgKCkgPT4gQ2FwYWNpdHlQcm92aWRlclBlcm1pc3Npb25zQ29uZmlnLFxuICAgICAgICAoKSA9PiBJbnN0YW5jZVJlcXVpcmVtZW50cyxcbiAgICAgICAgKCkgPT4gQ2FwYWNpdHlQcm92aWRlclNjYWxpbmdDb25maWcsXG4gICAgICAgIDAsXG4gICAgICAgIDEyOCB8IDAsXG4gICAgXSxcbl07XG52YXIgQ3JlYXRlQ2FwYWNpdHlQcm92aWRlclJlc3BvbnNlID0gWzMsIG4wLCBfQ0NQUnIsIDAsIFtfQ1BdLCBbKCkgPT4gQ2FwYWNpdHlQcm92aWRlcl1dO1xudmFyIENyZWF0ZUNvZGVTaWduaW5nQ29uZmlnUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9DQ1NDUixcbiAgICAwLFxuICAgIFtfRCwgX0FQLCBfQ1NQLCBfVGFdLFxuICAgIFswLCAoKSA9PiBBbGxvd2VkUHVibGlzaGVycywgKCkgPT4gQ29kZVNpZ25pbmdQb2xpY2llcywgMTI4IHwgMF0sXG5dO1xudmFyIENyZWF0ZUNvZGVTaWduaW5nQ29uZmlnUmVzcG9uc2UgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfQ0NTQ1JyLFxuICAgIDAsXG4gICAgW19DU0NdLFxuICAgIFsoKSA9PiBDb2RlU2lnbmluZ0NvbmZpZ10sXG5dO1xudmFyIENyZWF0ZUV2ZW50U291cmNlTWFwcGluZ1JlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfQ0VTTVIsXG4gICAgMCxcbiAgICBbXG4gICAgICAgIF9FU0EsXG4gICAgICAgIF9GTixcbiAgICAgICAgX0VuLFxuICAgICAgICBfQlNhLFxuICAgICAgICBfRkNpLFxuICAgICAgICBfTUJXSVMsXG4gICAgICAgIF9QRixcbiAgICAgICAgX1NQdCxcbiAgICAgICAgX1NQVCxcbiAgICAgICAgX0RDLFxuICAgICAgICBfTVJBSVMsXG4gICAgICAgIF9CQk9GRSxcbiAgICAgICAgX01SQSxcbiAgICAgICAgX1RhLFxuICAgICAgICBfVFdJUyxcbiAgICAgICAgX1RvLFxuICAgICAgICBfUXUsXG4gICAgICAgIF9TQUMsXG4gICAgICAgIF9TTUVTLFxuICAgICAgICBfRlJULFxuICAgICAgICBfQU1LRVNDLFxuICAgICAgICBfU01LRVNDLFxuICAgICAgICBfU0MsXG4gICAgICAgIF9EREJFU0MsXG4gICAgICAgIF9LTVNLQSxcbiAgICAgICAgX01DLFxuICAgICAgICBfUFBDLFxuICAgIF0sXG4gICAgW1xuICAgICAgICAwLFxuICAgICAgICAwLFxuICAgICAgICAyLFxuICAgICAgICAxLFxuICAgICAgICAoKSA9PiBGaWx0ZXJDcml0ZXJpYSxcbiAgICAgICAgMSxcbiAgICAgICAgMSxcbiAgICAgICAgMCxcbiAgICAgICAgNCxcbiAgICAgICAgKCkgPT4gRGVzdGluYXRpb25Db25maWcsXG4gICAgICAgIDEsXG4gICAgICAgIDIsXG4gICAgICAgIDEsXG4gICAgICAgIDEyOCB8IDAsXG4gICAgICAgIDEsXG4gICAgICAgIDY0IHwgMCxcbiAgICAgICAgNjQgfCAwLFxuICAgICAgICAoKSA9PiBTb3VyY2VBY2Nlc3NDb25maWd1cmF0aW9ucyxcbiAgICAgICAgKCkgPT4gU2VsZk1hbmFnZWRFdmVudFNvdXJjZSxcbiAgICAgICAgNjQgfCAwLFxuICAgICAgICAoKSA9PiBBbWF6b25NYW5hZ2VkS2Fma2FFdmVudFNvdXJjZUNvbmZpZyxcbiAgICAgICAgKCkgPT4gU2VsZk1hbmFnZWRLYWZrYUV2ZW50U291cmNlQ29uZmlnLFxuICAgICAgICAoKSA9PiBTY2FsaW5nQ29uZmlnLFxuICAgICAgICAoKSA9PiBEb2N1bWVudERCRXZlbnRTb3VyY2VDb25maWcsXG4gICAgICAgIDAsXG4gICAgICAgICgpID0+IEV2ZW50U291cmNlTWFwcGluZ01ldHJpY3NDb25maWcsXG4gICAgICAgICgpID0+IFByb3Zpc2lvbmVkUG9sbGVyQ29uZmlnLFxuICAgIF0sXG5dO1xudmFyIENyZWF0ZUZ1bmN0aW9uUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9DRlIsXG4gICAgMCxcbiAgICBbXG4gICAgICAgIF9GTixcbiAgICAgICAgX1J1LFxuICAgICAgICBfUm8sXG4gICAgICAgIF9ILFxuICAgICAgICBfQ29kLFxuICAgICAgICBfRCxcbiAgICAgICAgX1QsXG4gICAgICAgIF9NUyxcbiAgICAgICAgX1B1LFxuICAgICAgICBfVkMsXG4gICAgICAgIF9QVCxcbiAgICAgICAgX0RMQyxcbiAgICAgICAgX0VudixcbiAgICAgICAgX0tNU0tBLFxuICAgICAgICBfVEMsXG4gICAgICAgIF9UYSxcbiAgICAgICAgX0wsXG4gICAgICAgIF9GU0MsXG4gICAgICAgIF9JQyxcbiAgICAgICAgX0NTQ0EsXG4gICAgICAgIF9BcixcbiAgICAgICAgX0VTLFxuICAgICAgICBfU1NuLFxuICAgICAgICBfTEMsXG4gICAgICAgIF9DUEMsXG4gICAgICAgIF9QVHUsXG4gICAgICAgIF9EQ3UsXG4gICAgICAgIF9UQ2UsXG4gICAgXSxcbiAgICBbXG4gICAgICAgIDAsXG4gICAgICAgIDAsXG4gICAgICAgIDAsXG4gICAgICAgIDAsXG4gICAgICAgIFsoKSA9PiBGdW5jdGlvbkNvZGUsIDBdLFxuICAgICAgICAwLFxuICAgICAgICAxLFxuICAgICAgICAxLFxuICAgICAgICAyLFxuICAgICAgICAoKSA9PiBWcGNDb25maWcsXG4gICAgICAgIDAsXG4gICAgICAgICgpID0+IERlYWRMZXR0ZXJDb25maWcsXG4gICAgICAgIFsoKSA9PiBFbnZpcm9ubWVudCwgMF0sXG4gICAgICAgIDAsXG4gICAgICAgICgpID0+IFRyYWNpbmdDb25maWcsXG4gICAgICAgIDEyOCB8IDAsXG4gICAgICAgIDY0IHwgMCxcbiAgICAgICAgKCkgPT4gRmlsZVN5c3RlbUNvbmZpZ0xpc3QsXG4gICAgICAgICgpID0+IEltYWdlQ29uZmlnLFxuICAgICAgICAwLFxuICAgICAgICA2NCB8IDAsXG4gICAgICAgICgpID0+IEVwaGVtZXJhbFN0b3JhZ2UsXG4gICAgICAgICgpID0+IFNuYXBTdGFydCxcbiAgICAgICAgKCkgPT4gTG9nZ2luZ0NvbmZpZyxcbiAgICAgICAgKCkgPT4gQ2FwYWNpdHlQcm92aWRlckNvbmZpZyxcbiAgICAgICAgMCxcbiAgICAgICAgKCkgPT4gRHVyYWJsZUNvbmZpZyxcbiAgICAgICAgKCkgPT4gVGVuYW5jeUNvbmZpZyxcbiAgICBdLFxuXTtcbnZhciBDcmVhdGVGdW5jdGlvblVybENvbmZpZ1JlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfQ0ZVQ1IsXG4gICAgMCxcbiAgICBbX0ZOLCBfUSwgX0FULCBfQ28sIF9JTV0sXG4gICAgW1swLCAxXSwgWzAsIHsgW19oUV06IF9RIH1dLCAwLCAoKSA9PiBDb3JzLCAwXSxcbl07XG52YXIgQ3JlYXRlRnVuY3Rpb25VcmxDb25maWdSZXNwb25zZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9DRlVDUnIsXG4gICAgMCxcbiAgICBbX0ZVLCBfRkEsIF9BVCwgX0NvLCBfQ1RyLCBfSU1dLFxuICAgIFswLCAwLCAwLCAoKSA9PiBDb3JzLCAwLCAwXSxcbl07XG52YXIgRGVhZExldHRlckNvbmZpZyA9IFszLCBuMCwgX0RMQywgMCwgW19UQV0sIFswXV07XG52YXIgRGVsZXRlQWxpYXNSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0RBUixcbiAgICAwLFxuICAgIFtfRk4sIF9OXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIDFdLFxuICAgIF0sXG5dO1xudmFyIERlbGV0ZUNhcGFjaXR5UHJvdmlkZXJSZXF1ZXN0ID0gWzMsIG4wLCBfRENQUiwgMCwgW19DUE5dLCBbWzAsIDFdXV07XG52YXIgRGVsZXRlQ2FwYWNpdHlQcm92aWRlclJlc3BvbnNlID0gWzMsIG4wLCBfRENQUmUsIDAsIFtfQ1BdLCBbKCkgPT4gQ2FwYWNpdHlQcm92aWRlcl1dO1xudmFyIERlbGV0ZUNvZGVTaWduaW5nQ29uZmlnUmVxdWVzdCA9IFszLCBuMCwgX0RDU0NSLCAwLCBbX0NTQ0FdLCBbWzAsIDFdXV07XG52YXIgRGVsZXRlQ29kZVNpZ25pbmdDb25maWdSZXNwb25zZSA9IFszLCBuMCwgX0RDU0NSZSwgMCwgW10sIFtdXTtcbnZhciBEZWxldGVFdmVudFNvdXJjZU1hcHBpbmdSZXF1ZXN0ID0gWzMsIG4wLCBfREVTTVIsIDAsIFtfVVVJRF0sIFtbMCwgMV1dXTtcbnZhciBEZWxldGVGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnUmVxdWVzdCA9IFszLCBuMCwgX0RGQ1NDUiwgMCwgW19GTl0sIFtbMCwgMV1dXTtcbnZhciBEZWxldGVGdW5jdGlvbkNvbmN1cnJlbmN5UmVxdWVzdCA9IFszLCBuMCwgX0RGQ1IsIDAsIFtfRk5dLCBbWzAsIDFdXV07XG52YXIgRGVsZXRlRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ1JlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfREZFSUNSLFxuICAgIDAsXG4gICAgW19GTiwgX1FdLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hRXTogX1EgfV0sXG4gICAgXSxcbl07XG52YXIgRGVsZXRlRnVuY3Rpb25SZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0RGUixcbiAgICAwLFxuICAgIFtfRk4sIF9RXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oUV06IF9RIH1dLFxuICAgIF0sXG5dO1xudmFyIERlbGV0ZUZ1bmN0aW9uUmVzcG9uc2UgPSBbMywgbjAsIF9ERlJlLCAwLCBbX1NDdF0sIFtbMSwgMzJdXV07XG52YXIgRGVsZXRlRnVuY3Rpb25VcmxDb25maWdSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0RGVUNSLFxuICAgIDAsXG4gICAgW19GTiwgX1FdLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hRXTogX1EgfV0sXG4gICAgXSxcbl07XG52YXIgRGVsZXRlTGF5ZXJWZXJzaW9uUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9ETFZSLFxuICAgIDAsXG4gICAgW19MTiwgX1ZOXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzEsIDFdLFxuICAgIF0sXG5dO1xudmFyIERlbGV0ZVByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0RQQ0NSLFxuICAgIDAsXG4gICAgW19GTiwgX1FdLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hRXTogX1EgfV0sXG4gICAgXSxcbl07XG52YXIgRGVzdGluYXRpb25Db25maWcgPSBbMywgbjAsIF9EQywgMCwgW19PUywgX09GXSwgWygpID0+IE9uU3VjY2VzcywgKCkgPT4gT25GYWlsdXJlXV07XG52YXIgRG9jdW1lbnREQkV2ZW50U291cmNlQ29uZmlnID0gWzMsIG4wLCBfRERCRVNDLCAwLCBbX0ROLCBfQ04sIF9GRF0sIFswLCAwLCAwXV07XG52YXIgRHVyYWJsZUNvbmZpZyA9IFszLCBuMCwgX0RDdSwgMCwgW19SUElELCBfRVR4XSwgWzEsIDFdXTtcbnZhciBEdXJhYmxlRXhlY3V0aW9uQWxyZWFkeVN0YXJ0ZWRFeGNlcHRpb24gPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX0RFQVNFLFxuICAgIHsgW19lXTogX2MsIFtfaEVdOiA0MDkgfSxcbiAgICBbX1R5LCBfTV0sXG4gICAgWzAsIDBdLFxuXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKER1cmFibGVFeGVjdXRpb25BbHJlYWR5U3RhcnRlZEV4Y2VwdGlvbiwgRHVyYWJsZUV4ZWN1dGlvbkFscmVhZHlTdGFydGVkRXhjZXB0aW9uJDEpO1xudmFyIEVDMkFjY2Vzc0RlbmllZEV4Y2VwdGlvbiA9IFstMywgbjAsIF9FQ0FERSwgeyBbX2VdOiBfc2UsIFtfaEVdOiA1MDIgfSwgW19UeSwgX01dLCBbMCwgMF1dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoRUMyQWNjZXNzRGVuaWVkRXhjZXB0aW9uLCBFQzJBY2Nlc3NEZW5pZWRFeGNlcHRpb24kMSk7XG52YXIgRUMyVGhyb3R0bGVkRXhjZXB0aW9uID0gWy0zLCBuMCwgX0VDVEUsIHsgW19lXTogX3NlLCBbX2hFXTogNTAyIH0sIFtfVHksIF9NXSwgWzAsIDBdXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKEVDMlRocm90dGxlZEV4Y2VwdGlvbiwgRUMyVGhyb3R0bGVkRXhjZXB0aW9uJDEpO1xudmFyIEVDMlVuZXhwZWN0ZWRFeGNlcHRpb24gPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX0VDVUUsXG4gICAgeyBbX2VdOiBfc2UsIFtfaEVdOiA1MDIgfSxcbiAgICBbX1R5LCBfTSwgX0VDRUNdLFxuICAgIFswLCAwLCAwXSxcbl07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihFQzJVbmV4cGVjdGVkRXhjZXB0aW9uLCBFQzJVbmV4cGVjdGVkRXhjZXB0aW9uJDEpO1xudmFyIEVGU0lPRXhjZXB0aW9uID0gWy0zLCBuMCwgX0VGU0lPRSwgeyBbX2VdOiBfYywgW19oRV06IDQxMCB9LCBbX1R5LCBfTV0sIFswLCAwXV07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihFRlNJT0V4Y2VwdGlvbiwgRUZTSU9FeGNlcHRpb24kMSk7XG52YXIgRUZTTW91bnRDb25uZWN0aXZpdHlFeGNlcHRpb24gPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX0VGU01DRSxcbiAgICB7IFtfZV06IF9jLCBbX2hFXTogNDA4IH0sXG4gICAgW19UeSwgX01dLFxuICAgIFswLCAwXSxcbl07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihFRlNNb3VudENvbm5lY3Rpdml0eUV4Y2VwdGlvbiwgRUZTTW91bnRDb25uZWN0aXZpdHlFeGNlcHRpb24kMSk7XG52YXIgRUZTTW91bnRGYWlsdXJlRXhjZXB0aW9uID0gWy0zLCBuMCwgX0VGU01GRSwgeyBbX2VdOiBfYywgW19oRV06IDQwMyB9LCBbX1R5LCBfTV0sIFswLCAwXV07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihFRlNNb3VudEZhaWx1cmVFeGNlcHRpb24sIEVGU01vdW50RmFpbHVyZUV4Y2VwdGlvbiQxKTtcbnZhciBFRlNNb3VudFRpbWVvdXRFeGNlcHRpb24gPSBbLTMsIG4wLCBfRUZTTVRFLCB7IFtfZV06IF9jLCBbX2hFXTogNDA4IH0sIFtfVHksIF9NXSwgWzAsIDBdXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKEVGU01vdW50VGltZW91dEV4Y2VwdGlvbiwgRUZTTW91bnRUaW1lb3V0RXhjZXB0aW9uJDEpO1xudmFyIEVOSUxpbWl0UmVhY2hlZEV4Y2VwdGlvbiA9IFtcbiAgICAtMyxcbiAgICBuMCxcbiAgICBfRU5JTFJFLFxuICAgIHsgW19lXTogX3NlLCBbX2hFXTogNTAyIH0sXG4gICAgW19UeSwgX01dLFxuICAgIFswLCAwXSxcbl07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihFTklMaW1pdFJlYWNoZWRFeGNlcHRpb24sIEVOSUxpbWl0UmVhY2hlZEV4Y2VwdGlvbiQxKTtcbnZhciBFbnZpcm9ubWVudCA9IFszLCBuMCwgX0VudiwgMCwgW19WXSwgW1soKSA9PiBFbnZpcm9ubWVudFZhcmlhYmxlcywgMF1dXTtcbnZhciBFbnZpcm9ubWVudEVycm9yID0gWzMsIG4wLCBfRUUsIDAsIFtfRUMsIF9NXSwgWzAsIFsoKSA9PiBTZW5zaXRpdmVTdHJpbmcsIDBdXV07XG52YXIgRW52aXJvbm1lbnRSZXNwb25zZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9FUixcbiAgICAwLFxuICAgIFtfViwgX0VdLFxuICAgIFtcbiAgICAgICAgWygpID0+IEVudmlyb25tZW50VmFyaWFibGVzLCAwXSxcbiAgICAgICAgWygpID0+IEVudmlyb25tZW50RXJyb3IsIDBdLFxuICAgIF0sXG5dO1xudmFyIEVwaGVtZXJhbFN0b3JhZ2UgPSBbMywgbjAsIF9FUywgMCwgW19TaV0sIFsxXV07XG52YXIgRXJyb3JPYmplY3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfRU8sXG4gICAgMCxcbiAgICBbX0VNLCBfRVQsIF9FRCwgX1NUXSxcbiAgICBbXG4gICAgICAgIFsoKSA9PiBFcnJvck1lc3NhZ2UsIDBdLFxuICAgICAgICBbKCkgPT4gRXJyb3JUeXBlLCAwXSxcbiAgICAgICAgWygpID0+IEVycm9yRGF0YSwgMF0sXG4gICAgICAgIFsoKSA9PiBTdGFja1RyYWNlRW50cmllcywgMF0sXG4gICAgXSxcbl07XG52YXIgRXZlbnQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfRXYsXG4gICAgMCxcbiAgICBbXG4gICAgICAgIF9FVHYsXG4gICAgICAgIF9TVHUsXG4gICAgICAgIF9FSSxcbiAgICAgICAgX0lkLFxuICAgICAgICBfTixcbiAgICAgICAgX0VUdmUsXG4gICAgICAgIF9QSSxcbiAgICAgICAgX0VTRCxcbiAgICAgICAgX0VTRHgsXG4gICAgICAgIF9FRkQsXG4gICAgICAgIF9FVE9ELFxuICAgICAgICBfRVNEeGUsXG4gICAgICAgIF9DU0RvLFxuICAgICAgICBfQ1NEb24sXG4gICAgICAgIF9DRkRvLFxuICAgICAgICBfV1NELFxuICAgICAgICBfV1NEYSxcbiAgICAgICAgX1dDRCxcbiAgICAgICAgX1NTRCxcbiAgICAgICAgX1NTRHQsXG4gICAgICAgIF9TRkQsXG4gICAgICAgIF9DSVNELFxuICAgICAgICBfQ0lTRGhhLFxuICAgICAgICBfQ0lGRCxcbiAgICAgICAgX0NJVE9ELFxuICAgICAgICBfQ0lTRGgsXG4gICAgICAgIF9DU0QsXG4gICAgICAgIF9DU0RhLFxuICAgICAgICBfQ0ZELFxuICAgICAgICBfQ1RPRCxcbiAgICAgICAgX0lDRCxcbiAgICBdLFxuICAgIFtcbiAgICAgICAgMCxcbiAgICAgICAgMCxcbiAgICAgICAgMSxcbiAgICAgICAgMCxcbiAgICAgICAgMCxcbiAgICAgICAgNCxcbiAgICAgICAgMCxcbiAgICAgICAgWygpID0+IEV4ZWN1dGlvblN0YXJ0ZWREZXRhaWxzLCAwXSxcbiAgICAgICAgWygpID0+IEV4ZWN1dGlvblN1Y2NlZWRlZERldGFpbHMsIDBdLFxuICAgICAgICBbKCkgPT4gRXhlY3V0aW9uRmFpbGVkRGV0YWlscywgMF0sXG4gICAgICAgIFsoKSA9PiBFeGVjdXRpb25UaW1lZE91dERldGFpbHMsIDBdLFxuICAgICAgICBbKCkgPT4gRXhlY3V0aW9uU3RvcHBlZERldGFpbHMsIDBdLFxuICAgICAgICAoKSA9PiBDb250ZXh0U3RhcnRlZERldGFpbHMsXG4gICAgICAgIFsoKSA9PiBDb250ZXh0U3VjY2VlZGVkRGV0YWlscywgMF0sXG4gICAgICAgIFsoKSA9PiBDb250ZXh0RmFpbGVkRGV0YWlscywgMF0sXG4gICAgICAgICgpID0+IFdhaXRTdGFydGVkRGV0YWlscyxcbiAgICAgICAgKCkgPT4gV2FpdFN1Y2NlZWRlZERldGFpbHMsXG4gICAgICAgIFsoKSA9PiBXYWl0Q2FuY2VsbGVkRGV0YWlscywgMF0sXG4gICAgICAgICgpID0+IFN0ZXBTdGFydGVkRGV0YWlscyxcbiAgICAgICAgWygpID0+IFN0ZXBTdWNjZWVkZWREZXRhaWxzLCAwXSxcbiAgICAgICAgWygpID0+IFN0ZXBGYWlsZWREZXRhaWxzLCAwXSxcbiAgICAgICAgWygpID0+IENoYWluZWRJbnZva2VTdGFydGVkRGV0YWlscywgMF0sXG4gICAgICAgIFsoKSA9PiBDaGFpbmVkSW52b2tlU3VjY2VlZGVkRGV0YWlscywgMF0sXG4gICAgICAgIFsoKSA9PiBDaGFpbmVkSW52b2tlRmFpbGVkRGV0YWlscywgMF0sXG4gICAgICAgIFsoKSA9PiBDaGFpbmVkSW52b2tlVGltZWRPdXREZXRhaWxzLCAwXSxcbiAgICAgICAgWygpID0+IENoYWluZWRJbnZva2VTdG9wcGVkRGV0YWlscywgMF0sXG4gICAgICAgICgpID0+IENhbGxiYWNrU3RhcnRlZERldGFpbHMsXG4gICAgICAgIFsoKSA9PiBDYWxsYmFja1N1Y2NlZWRlZERldGFpbHMsIDBdLFxuICAgICAgICBbKCkgPT4gQ2FsbGJhY2tGYWlsZWREZXRhaWxzLCAwXSxcbiAgICAgICAgWygpID0+IENhbGxiYWNrVGltZWRPdXREZXRhaWxzLCAwXSxcbiAgICAgICAgWygpID0+IEludm9jYXRpb25Db21wbGV0ZWREZXRhaWxzLCAwXSxcbiAgICBdLFxuXTtcbnZhciBFdmVudEVycm9yID0gWzMsIG4wLCBfRUV2LCAwLCBbX1BhLCBfVHJdLCBbWygpID0+IEVycm9yT2JqZWN0LCAwXSwgMl1dO1xudmFyIEV2ZW50SW5wdXQgPSBbMywgbjAsIF9FSXYsIDAsIFtfUGEsIF9Ucl0sIFtbKCkgPT4gSW5wdXRQYXlsb2FkLCAwXSwgMl1dO1xudmFyIEV2ZW50UmVzdWx0ID0gWzMsIG4wLCBfRVJ2LCAwLCBbX1BhLCBfVHJdLCBbWygpID0+IE9wZXJhdGlvblBheWxvYWQsIDBdLCAyXV07XG52YXIgRXZlbnRTb3VyY2VNYXBwaW5nQ29uZmlndXJhdGlvbiA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9FU01DLFxuICAgIDAsXG4gICAgW1xuICAgICAgICBfVVVJRCxcbiAgICAgICAgX1NQdCxcbiAgICAgICAgX1NQVCxcbiAgICAgICAgX0JTYSxcbiAgICAgICAgX01CV0lTLFxuICAgICAgICBfUEYsXG4gICAgICAgIF9FU0EsXG4gICAgICAgIF9GQ2ksXG4gICAgICAgIF9GQSxcbiAgICAgICAgX0xNLFxuICAgICAgICBfTFBSLFxuICAgICAgICBfU3QsXG4gICAgICAgIF9TVFIsXG4gICAgICAgIF9EQyxcbiAgICAgICAgX1RvLFxuICAgICAgICBfUXUsXG4gICAgICAgIF9TQUMsXG4gICAgICAgIF9TTUVTLFxuICAgICAgICBfTVJBSVMsXG4gICAgICAgIF9CQk9GRSxcbiAgICAgICAgX01SQSxcbiAgICAgICAgX1RXSVMsXG4gICAgICAgIF9GUlQsXG4gICAgICAgIF9BTUtFU0MsXG4gICAgICAgIF9TTUtFU0MsXG4gICAgICAgIF9TQyxcbiAgICAgICAgX0REQkVTQyxcbiAgICAgICAgX0tNU0tBLFxuICAgICAgICBfRkNFLFxuICAgICAgICBfRVNNQSxcbiAgICAgICAgX01DLFxuICAgICAgICBfUFBDLFxuICAgIF0sXG4gICAgW1xuICAgICAgICAwLFxuICAgICAgICAwLFxuICAgICAgICA0LFxuICAgICAgICAxLFxuICAgICAgICAxLFxuICAgICAgICAxLFxuICAgICAgICAwLFxuICAgICAgICAoKSA9PiBGaWx0ZXJDcml0ZXJpYSxcbiAgICAgICAgMCxcbiAgICAgICAgNCxcbiAgICAgICAgMCxcbiAgICAgICAgMCxcbiAgICAgICAgMCxcbiAgICAgICAgKCkgPT4gRGVzdGluYXRpb25Db25maWcsXG4gICAgICAgIDY0IHwgMCxcbiAgICAgICAgNjQgfCAwLFxuICAgICAgICAoKSA9PiBTb3VyY2VBY2Nlc3NDb25maWd1cmF0aW9ucyxcbiAgICAgICAgKCkgPT4gU2VsZk1hbmFnZWRFdmVudFNvdXJjZSxcbiAgICAgICAgMSxcbiAgICAgICAgMixcbiAgICAgICAgMSxcbiAgICAgICAgMSxcbiAgICAgICAgNjQgfCAwLFxuICAgICAgICAoKSA9PiBBbWF6b25NYW5hZ2VkS2Fma2FFdmVudFNvdXJjZUNvbmZpZyxcbiAgICAgICAgKCkgPT4gU2VsZk1hbmFnZWRLYWZrYUV2ZW50U291cmNlQ29uZmlnLFxuICAgICAgICAoKSA9PiBTY2FsaW5nQ29uZmlnLFxuICAgICAgICAoKSA9PiBEb2N1bWVudERCRXZlbnRTb3VyY2VDb25maWcsXG4gICAgICAgIDAsXG4gICAgICAgICgpID0+IEZpbHRlckNyaXRlcmlhRXJyb3IsXG4gICAgICAgIDAsXG4gICAgICAgICgpID0+IEV2ZW50U291cmNlTWFwcGluZ01ldHJpY3NDb25maWcsXG4gICAgICAgICgpID0+IFByb3Zpc2lvbmVkUG9sbGVyQ29uZmlnLFxuICAgIF0sXG5dO1xudmFyIEV2ZW50U291cmNlTWFwcGluZ01ldHJpY3NDb25maWcgPSBbMywgbjAsIF9FU01NQywgMCwgW19NZV0sIFs2NCB8IDBdXTtcbnZhciBFeGVjdXRpb24gPSBbMywgbjAsIF9FeCwgMCwgW19ERUEsIF9ERU4sIF9GQSwgX1N0YSwgX1NUdCwgX0VUbl0sIFswLCAwLCAwLCAwLCA0LCA0XV07XG52YXIgRXhlY3V0aW9uRGV0YWlscyA9IFszLCBuMCwgX0VEeCwgMCwgW19JUF0sIFtbKCkgPT4gSW5wdXRQYXlsb2FkLCAwXV1dO1xudmFyIEV4ZWN1dGlvbkZhaWxlZERldGFpbHMgPSBbMywgbjAsIF9FRkQsIDAsIFtfRV0sIFtbKCkgPT4gRXZlbnRFcnJvciwgMF1dXTtcbnZhciBFeGVjdXRpb25TdGFydGVkRGV0YWlscyA9IFszLCBuMCwgX0VTRCwgMCwgW19JLCBfRVR4XSwgW1soKSA9PiBFdmVudElucHV0LCAwXSwgMV1dO1xudmFyIEV4ZWN1dGlvblN0b3BwZWREZXRhaWxzID0gWzMsIG4wLCBfRVNEeGUsIDAsIFtfRV0sIFtbKCkgPT4gRXZlbnRFcnJvciwgMF1dXTtcbnZhciBFeGVjdXRpb25TdWNjZWVkZWREZXRhaWxzID0gWzMsIG4wLCBfRVNEeCwgMCwgW19SXSwgW1soKSA9PiBFdmVudFJlc3VsdCwgMF1dXTtcbnZhciBFeGVjdXRpb25UaW1lZE91dERldGFpbHMgPSBbMywgbjAsIF9FVE9ELCAwLCBbX0VdLCBbWygpID0+IEV2ZW50RXJyb3IsIDBdXV07XG52YXIgRmlsZVN5c3RlbUNvbmZpZyA9IFszLCBuMCwgX0ZTQ2ksIDAsIFtfQXJuLCBfTE1QXSwgWzAsIDBdXTtcbnZhciBGaWx0ZXIgPSBbMywgbjAsIF9GLCAwLCBbX1BhdF0sIFswXV07XG52YXIgRmlsdGVyQ3JpdGVyaWEgPSBbMywgbjAsIF9GQ2ksIDAsIFtfRmldLCBbKCkgPT4gRmlsdGVyTGlzdF1dO1xudmFyIEZpbHRlckNyaXRlcmlhRXJyb3IgPSBbMywgbjAsIF9GQ0UsIDAsIFtfRUMsIF9NXSwgWzAsIDBdXTtcbnZhciBGdW5jdGlvbkNvZGUgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfRkN1LFxuICAgIDAsXG4gICAgW19aRiwgX1NCLCBfU0ssIF9TT1YsIF9JVSwgX1NLTVNLQV0sXG4gICAgW1soKSA9PiBfQmxvYiwgMF0sIDAsIDAsIDAsIDAsIDBdLFxuXTtcbnZhciBGdW5jdGlvbkNvZGVMb2NhdGlvbiA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9GQ0wsXG4gICAgMCxcbiAgICBbX1JULCBfTG8sIF9JVSwgX1JJVSwgX1NLTVNLQV0sXG4gICAgWzAsIDAsIDAsIDAsIDBdLFxuXTtcbnZhciBGdW5jdGlvbkNvbmZpZ3VyYXRpb24gPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfRkN1bixcbiAgICAwLFxuICAgIFtcbiAgICAgICAgX0ZOLFxuICAgICAgICBfRkEsXG4gICAgICAgIF9SdSxcbiAgICAgICAgX1JvLFxuICAgICAgICBfSCxcbiAgICAgICAgX0NTLFxuICAgICAgICBfRCxcbiAgICAgICAgX1QsXG4gICAgICAgIF9NUyxcbiAgICAgICAgX0xNLFxuICAgICAgICBfQ1NvLFxuICAgICAgICBfVmUsXG4gICAgICAgIF9WQyxcbiAgICAgICAgX0RMQyxcbiAgICAgICAgX0VudixcbiAgICAgICAgX0tNU0tBLFxuICAgICAgICBfVEMsXG4gICAgICAgIF9NQWEsXG4gICAgICAgIF9SSSxcbiAgICAgICAgX0wsXG4gICAgICAgIF9TdCxcbiAgICAgICAgX1NSLFxuICAgICAgICBfU1JDdCxcbiAgICAgICAgX0xVUyxcbiAgICAgICAgX0xVU1IsXG4gICAgICAgIF9MVVNSQyxcbiAgICAgICAgX0ZTQyxcbiAgICAgICAgX1BULFxuICAgICAgICBfSUNSLFxuICAgICAgICBfU1BWQWksXG4gICAgICAgIF9TSkEsXG4gICAgICAgIF9BcixcbiAgICAgICAgX0VTLFxuICAgICAgICBfU1NuLFxuICAgICAgICBfUlZDLFxuICAgICAgICBfTEMsXG4gICAgICAgIF9DUEMsXG4gICAgICAgIF9DU29uLFxuICAgICAgICBfREN1LFxuICAgICAgICBfVENlLFxuICAgIF0sXG4gICAgW1xuICAgICAgICAwLFxuICAgICAgICAwLFxuICAgICAgICAwLFxuICAgICAgICAwLFxuICAgICAgICAwLFxuICAgICAgICAxLFxuICAgICAgICAwLFxuICAgICAgICAxLFxuICAgICAgICAxLFxuICAgICAgICAwLFxuICAgICAgICAwLFxuICAgICAgICAwLFxuICAgICAgICAoKSA9PiBWcGNDb25maWdSZXNwb25zZSxcbiAgICAgICAgKCkgPT4gRGVhZExldHRlckNvbmZpZyxcbiAgICAgICAgWygpID0+IEVudmlyb25tZW50UmVzcG9uc2UsIDBdLFxuICAgICAgICAwLFxuICAgICAgICAoKSA9PiBUcmFjaW5nQ29uZmlnUmVzcG9uc2UsXG4gICAgICAgIDAsXG4gICAgICAgIDAsXG4gICAgICAgICgpID0+IExheWVyc1JlZmVyZW5jZUxpc3QsXG4gICAgICAgIDAsXG4gICAgICAgIDAsXG4gICAgICAgIDAsXG4gICAgICAgIDAsXG4gICAgICAgIDAsXG4gICAgICAgIDAsXG4gICAgICAgICgpID0+IEZpbGVTeXN0ZW1Db25maWdMaXN0LFxuICAgICAgICAwLFxuICAgICAgICBbKCkgPT4gSW1hZ2VDb25maWdSZXNwb25zZSwgMF0sXG4gICAgICAgIDAsXG4gICAgICAgIDAsXG4gICAgICAgIDY0IHwgMCxcbiAgICAgICAgKCkgPT4gRXBoZW1lcmFsU3RvcmFnZSxcbiAgICAgICAgKCkgPT4gU25hcFN0YXJ0UmVzcG9uc2UsXG4gICAgICAgIFsoKSA9PiBSdW50aW1lVmVyc2lvbkNvbmZpZywgMF0sXG4gICAgICAgICgpID0+IExvZ2dpbmdDb25maWcsXG4gICAgICAgICgpID0+IENhcGFjaXR5UHJvdmlkZXJDb25maWcsXG4gICAgICAgIDAsXG4gICAgICAgICgpID0+IER1cmFibGVDb25maWcsXG4gICAgICAgICgpID0+IFRlbmFuY3lDb25maWcsXG4gICAgXSxcbl07XG52YXIgRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZyA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9GRUlDLFxuICAgIDAsXG4gICAgW19MTSwgX0ZBLCBfTVJBLCBfTUVBSVMsIF9EQ10sXG4gICAgWzQsIDAsIDEsIDEsICgpID0+IERlc3RpbmF0aW9uQ29uZmlnXSxcbl07XG52YXIgRnVuY3Rpb25TY2FsaW5nQ29uZmlnID0gWzMsIG4wLCBfRlNDdSwgMCwgW19NRUUsIF9NRUVhXSwgWzEsIDFdXTtcbnZhciBGdW5jdGlvblVybENvbmZpZyA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9GVUMsXG4gICAgMCxcbiAgICBbX0ZVLCBfRkEsIF9DVHIsIF9MTVQsIF9DbywgX0FULCBfSU1dLFxuICAgIFswLCAwLCAwLCAwLCAoKSA9PiBDb3JzLCAwLCAwXSxcbl07XG52YXIgRnVuY3Rpb25WZXJzaW9uc0J5Q2FwYWNpdHlQcm92aWRlckxpc3RJdGVtID0gWzMsIG4wLCBfRlZCQ1BMSSwgMCwgW19GQSwgX1N0XSwgWzAsIDBdXTtcbnZhciBGdW5jdGlvblZlcnNpb25zUGVyQ2FwYWNpdHlQcm92aWRlckxpbWl0RXhjZWVkZWRFeGNlcHRpb24gPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX0ZWUENQTEVFLFxuICAgIHsgW19lXTogX2MsIFtfaEVdOiA0MDAgfSxcbiAgICBbX1R5LCBfbV0sXG4gICAgWzAsIDBdLFxuXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKEZ1bmN0aW9uVmVyc2lvbnNQZXJDYXBhY2l0eVByb3ZpZGVyTGltaXRFeGNlZWRlZEV4Y2VwdGlvbiwgRnVuY3Rpb25WZXJzaW9uc1BlckNhcGFjaXR5UHJvdmlkZXJMaW1pdEV4Y2VlZGVkRXhjZXB0aW9uJDEpO1xudmFyIEdldEFjY291bnRTZXR0aW5nc1JlcXVlc3QgPSBbMywgbjAsIF9HQVNSLCAwLCBbXSwgW11dO1xudmFyIEdldEFjY291bnRTZXR0aW5nc1Jlc3BvbnNlID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dBU1JlLFxuICAgIDAsXG4gICAgW19BTCwgX0FVXSxcbiAgICBbKCkgPT4gQWNjb3VudExpbWl0LCAoKSA9PiBBY2NvdW50VXNhZ2VdLFxuXTtcbnZhciBHZXRBbGlhc1JlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfR0FSLFxuICAgIDAsXG4gICAgW19GTiwgX05dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgMV0sXG4gICAgXSxcbl07XG52YXIgR2V0Q2FwYWNpdHlQcm92aWRlclJlcXVlc3QgPSBbMywgbjAsIF9HQ1BSLCAwLCBbX0NQTl0sIFtbMCwgMV1dXTtcbnZhciBHZXRDYXBhY2l0eVByb3ZpZGVyUmVzcG9uc2UgPSBbMywgbjAsIF9HQ1BSZSwgMCwgW19DUF0sIFsoKSA9PiBDYXBhY2l0eVByb3ZpZGVyXV07XG52YXIgR2V0Q29kZVNpZ25pbmdDb25maWdSZXF1ZXN0ID0gWzMsIG4wLCBfR0NTQ1IsIDAsIFtfQ1NDQV0sIFtbMCwgMV1dXTtcbnZhciBHZXRDb2RlU2lnbmluZ0NvbmZpZ1Jlc3BvbnNlID0gWzMsIG4wLCBfR0NTQ1JlLCAwLCBbX0NTQ10sIFsoKSA9PiBDb2RlU2lnbmluZ0NvbmZpZ11dO1xudmFyIEdldER1cmFibGVFeGVjdXRpb25IaXN0b3J5UmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HREVIUixcbiAgICAwLFxuICAgIFtfREVBLCBfSUVELCBfTUksIF9NYSwgX1JPXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzIsIHsgW19oUV06IF9JRUQgfV0sXG4gICAgICAgIFsxLCB7IFtfaFFdOiBfTUkgfV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfTWEgfV0sXG4gICAgICAgIFsyLCB7IFtfaFFdOiBfUk8gfV0sXG4gICAgXSxcbl07XG52YXIgR2V0RHVyYWJsZUV4ZWN1dGlvbkhpc3RvcnlSZXNwb25zZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HREVIUmUsXG4gICAgMCxcbiAgICBbX0V2ZSwgX05NXSxcbiAgICBbWygpID0+IEV2ZW50cywgMF0sIDBdLFxuXTtcbnZhciBHZXREdXJhYmxlRXhlY3V0aW9uUmVxdWVzdCA9IFszLCBuMCwgX0dERVIsIDAsIFtfREVBXSwgW1swLCAxXV1dO1xudmFyIEdldER1cmFibGVFeGVjdXRpb25SZXNwb25zZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HREVSZSxcbiAgICAwLFxuICAgIFtfREVBLCBfREVOLCBfRkEsIF9JUCwgX1IsIF9FLCBfU1R0LCBfU3RhLCBfRVRuLCBfVmUsIF9USF0sXG4gICAgWzAsIDAsIDAsIFsoKSA9PiBJbnB1dFBheWxvYWQsIDBdLCBbKCkgPT4gT3V0cHV0UGF5bG9hZCwgMF0sIFsoKSA9PiBFcnJvck9iamVjdCwgMF0sIDQsIDAsIDQsIDAsICgpID0+IFRyYWNlSGVhZGVyXSxcbl07XG52YXIgR2V0RHVyYWJsZUV4ZWN1dGlvblN0YXRlUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HREVTUixcbiAgICAwLFxuICAgIFtfREVBLCBfQ1QsIF9NYSwgX01JXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oUV06IF9DVCB9XSxcbiAgICAgICAgWzAsIHsgW19oUV06IF9NYSB9XSxcbiAgICAgICAgWzEsIHsgW19oUV06IF9NSSB9XSxcbiAgICBdLFxuXTtcbnZhciBHZXREdXJhYmxlRXhlY3V0aW9uU3RhdGVSZXNwb25zZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HREVTUmUsXG4gICAgMCxcbiAgICBbX08sIF9OTV0sXG4gICAgW1soKSA9PiBPcGVyYXRpb25zLCAwXSwgMF0sXG5dO1xudmFyIEdldEV2ZW50U291cmNlTWFwcGluZ1JlcXVlc3QgPSBbMywgbjAsIF9HRVNNUiwgMCwgW19VVUlEXSwgW1swLCAxXV1dO1xudmFyIEdldEZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdSZXF1ZXN0ID0gWzMsIG4wLCBfR0ZDU0NSLCAwLCBbX0ZOXSwgW1swLCAxXV1dO1xudmFyIEdldEZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdSZXNwb25zZSA9IFszLCBuMCwgX0dGQ1NDUmUsIDAsIFtfQ1NDQSwgX0ZOXSwgWzAsIDBdXTtcbnZhciBHZXRGdW5jdGlvbkNvbmN1cnJlbmN5UmVxdWVzdCA9IFszLCBuMCwgX0dGQ1IsIDAsIFtfRk5dLCBbWzAsIDFdXV07XG52YXIgR2V0RnVuY3Rpb25Db25jdXJyZW5jeVJlc3BvbnNlID0gWzMsIG4wLCBfR0ZDUmUsIDAsIFtfUkNFXSwgWzFdXTtcbnZhciBHZXRGdW5jdGlvbkNvbmZpZ3VyYXRpb25SZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dGQ1JldCxcbiAgICAwLFxuICAgIFtfRk4sIF9RXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oUV06IF9RIH1dLFxuICAgIF0sXG5dO1xudmFyIEdldEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dGRUlDUixcbiAgICAwLFxuICAgIFtfRk4sIF9RXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oUV06IF9RIH1dLFxuICAgIF0sXG5dO1xudmFyIEdldEZ1bmN0aW9uUmVjdXJzaW9uQ29uZmlnUmVxdWVzdCA9IFszLCBuMCwgX0dGUkNSLCAwLCBbX0ZOXSwgW1swLCAxXV1dO1xudmFyIEdldEZ1bmN0aW9uUmVjdXJzaW9uQ29uZmlnUmVzcG9uc2UgPSBbMywgbjAsIF9HRlJDUmUsIDAsIFtfUkxdLCBbMF1dO1xudmFyIEdldEZ1bmN0aW9uUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HRlIsXG4gICAgMCxcbiAgICBbX0ZOLCBfUV0sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfUSB9XSxcbiAgICBdLFxuXTtcbnZhciBHZXRGdW5jdGlvblJlc3BvbnNlID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dGUmUsXG4gICAgMCxcbiAgICBbX0NvbiwgX0NvZCwgX1RhLCBfVEUsIF9DXSxcbiAgICBbWygpID0+IEZ1bmN0aW9uQ29uZmlndXJhdGlvbiwgMF0sICgpID0+IEZ1bmN0aW9uQ29kZUxvY2F0aW9uLCAxMjggfCAwLCAoKSA9PiBUYWdzRXJyb3IsICgpID0+IENvbmN1cnJlbmN5XSxcbl07XG52YXIgR2V0RnVuY3Rpb25TY2FsaW5nQ29uZmlnUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HRlNDUixcbiAgICAwLFxuICAgIFtfRk4sIF9RXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oUV06IF9RIH1dLFxuICAgIF0sXG5dO1xudmFyIEdldEZ1bmN0aW9uU2NhbGluZ0NvbmZpZ1Jlc3BvbnNlID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dGU0NSZSxcbiAgICAwLFxuICAgIFtfRkEsIF9BRlNDLCBfUkZTQ10sXG4gICAgWzAsICgpID0+IEZ1bmN0aW9uU2NhbGluZ0NvbmZpZywgKCkgPT4gRnVuY3Rpb25TY2FsaW5nQ29uZmlnXSxcbl07XG52YXIgR2V0RnVuY3Rpb25VcmxDb25maWdSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dGVUNSLFxuICAgIDAsXG4gICAgW19GTiwgX1FdLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hRXTogX1EgfV0sXG4gICAgXSxcbl07XG52YXIgR2V0RnVuY3Rpb25VcmxDb25maWdSZXNwb25zZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HRlVDUmUsXG4gICAgMCxcbiAgICBbX0ZVLCBfRkEsIF9BVCwgX0NvLCBfQ1RyLCBfTE1ULCBfSU1dLFxuICAgIFswLCAwLCAwLCAoKSA9PiBDb3JzLCAwLCAwLCAwXSxcbl07XG52YXIgR2V0TGF5ZXJWZXJzaW9uQnlBcm5SZXF1ZXN0ID0gWzMsIG4wLCBfR0xWQkFSLCAwLCBbX0Fybl0sIFtbMCwgeyBbX2hRXTogX0FybiB9XV1dO1xudmFyIEdldExheWVyVmVyc2lvblBvbGljeVJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfR0xWUFIsXG4gICAgMCxcbiAgICBbX0xOLCBfVk5dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMSwgMV0sXG4gICAgXSxcbl07XG52YXIgR2V0TGF5ZXJWZXJzaW9uUG9saWN5UmVzcG9uc2UgPSBbMywgbjAsIF9HTFZQUmUsIDAsIFtfUG8sIF9SSV0sIFswLCAwXV07XG52YXIgR2V0TGF5ZXJWZXJzaW9uUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HTFZSLFxuICAgIDAsXG4gICAgW19MTiwgX1ZOXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzEsIDFdLFxuICAgIF0sXG5dO1xudmFyIEdldExheWVyVmVyc2lvblJlc3BvbnNlID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dMVlJlLFxuICAgIDAsXG4gICAgW19Db250LCBfTEEsIF9MVkEsIF9ELCBfQ0RyLCBfVmUsIF9DUiwgX0xJLCBfQ0FdLFxuICAgIFsoKSA9PiBMYXllclZlcnNpb25Db250ZW50T3V0cHV0LCAwLCAwLCAwLCAwLCAxLCA2NCB8IDAsIDAsIDY0IHwgMF0sXG5dO1xudmFyIEdldFBvbGljeVJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfR1BSLFxuICAgIDAsXG4gICAgW19GTiwgX1FdLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hRXTogX1EgfV0sXG4gICAgXSxcbl07XG52YXIgR2V0UG9saWN5UmVzcG9uc2UgPSBbMywgbjAsIF9HUFJlLCAwLCBbX1BvLCBfUkldLCBbMCwgMF1dO1xudmFyIEdldFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dQQ0NSLFxuICAgIDAsXG4gICAgW19GTiwgX1FdLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hRXTogX1EgfV0sXG4gICAgXSxcbl07XG52YXIgR2V0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ1Jlc3BvbnNlID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dQQ0NSZSxcbiAgICAwLFxuICAgIFtfUlBDRSwgX0FQQ0UsIF9BUENFbCwgX1N0YSwgX1NSdCwgX0xNXSxcbiAgICBbMSwgMSwgMSwgMCwgMCwgMF0sXG5dO1xudmFyIEdldFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HUk1DUixcbiAgICAwLFxuICAgIFtfRk4sIF9RXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oUV06IF9RIH1dLFxuICAgIF0sXG5dO1xudmFyIEdldFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnUmVzcG9uc2UgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfR1JNQ1JlLFxuICAgIDAsXG4gICAgW19VUk8sIF9SVkEsIF9GQV0sXG4gICAgWzAsIDAsIDBdLFxuXTtcbnZhciBJbWFnZUNvbmZpZyA9IFszLCBuMCwgX0lDLCAwLCBbX0VQLCBfQ29tLCBfV0RdLCBbNjQgfCAwLCA2NCB8IDAsIDBdXTtcbnZhciBJbWFnZUNvbmZpZ0Vycm9yID0gWzMsIG4wLCBfSUNFLCAwLCBbX0VDLCBfTV0sIFswLCBbKCkgPT4gU2Vuc2l0aXZlU3RyaW5nLCAwXV1dO1xudmFyIEltYWdlQ29uZmlnUmVzcG9uc2UgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfSUNSLFxuICAgIDAsXG4gICAgW19JQywgX0VdLFxuICAgIFsoKSA9PiBJbWFnZUNvbmZpZywgWygpID0+IEltYWdlQ29uZmlnRXJyb3IsIDBdXSxcbl07XG52YXIgSW5zdGFuY2VSZXF1aXJlbWVudHMgPSBbMywgbjAsIF9JUiwgMCwgW19BciwgX0FJVCwgX0VJVF0sIFs2NCB8IDAsIDY0IHwgMCwgNjQgfCAwXV07XG52YXIgSW52YWxpZENvZGVTaWduYXR1cmVFeGNlcHRpb24gPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX0lDU0UsXG4gICAgeyBbX2VdOiBfYywgW19oRV06IDQwMCB9LFxuICAgIFtfVHksIF9NXSxcbiAgICBbMCwgMF0sXG5dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoSW52YWxpZENvZGVTaWduYXR1cmVFeGNlcHRpb24sIEludmFsaWRDb2RlU2lnbmF0dXJlRXhjZXB0aW9uJDEpO1xudmFyIEludmFsaWRQYXJhbWV0ZXJWYWx1ZUV4Y2VwdGlvbiA9IFtcbiAgICAtMyxcbiAgICBuMCxcbiAgICBfSVBWRSxcbiAgICB7IFtfZV06IF9jLCBbX2hFXTogNDAwIH0sXG4gICAgW19UeSwgX21dLFxuICAgIFswLCAwXSxcbl07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihJbnZhbGlkUGFyYW1ldGVyVmFsdWVFeGNlcHRpb24sIEludmFsaWRQYXJhbWV0ZXJWYWx1ZUV4Y2VwdGlvbiQxKTtcbnZhciBJbnZhbGlkUmVxdWVzdENvbnRlbnRFeGNlcHRpb24gPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX0lSQ0UsXG4gICAgeyBbX2VdOiBfYywgW19oRV06IDQwMCB9LFxuICAgIFtfVHksIF9tXSxcbiAgICBbMCwgMF0sXG5dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoSW52YWxpZFJlcXVlc3RDb250ZW50RXhjZXB0aW9uLCBJbnZhbGlkUmVxdWVzdENvbnRlbnRFeGNlcHRpb24kMSk7XG52YXIgSW52YWxpZFJ1bnRpbWVFeGNlcHRpb24gPSBbLTMsIG4wLCBfSVJFLCB7IFtfZV06IF9zZSwgW19oRV06IDUwMiB9LCBbX1R5LCBfTV0sIFswLCAwXV07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihJbnZhbGlkUnVudGltZUV4Y2VwdGlvbiwgSW52YWxpZFJ1bnRpbWVFeGNlcHRpb24kMSk7XG52YXIgSW52YWxpZFNlY3VyaXR5R3JvdXBJREV4Y2VwdGlvbiA9IFtcbiAgICAtMyxcbiAgICBuMCxcbiAgICBfSVNHSURFLFxuICAgIHsgW19lXTogX3NlLCBbX2hFXTogNTAyIH0sXG4gICAgW19UeSwgX01dLFxuICAgIFswLCAwXSxcbl07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihJbnZhbGlkU2VjdXJpdHlHcm91cElERXhjZXB0aW9uLCBJbnZhbGlkU2VjdXJpdHlHcm91cElERXhjZXB0aW9uJDEpO1xudmFyIEludmFsaWRTdWJuZXRJREV4Y2VwdGlvbiA9IFstMywgbjAsIF9JU0lERSwgeyBbX2VdOiBfc2UsIFtfaEVdOiA1MDIgfSwgW19UeSwgX01dLCBbMCwgMF1dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoSW52YWxpZFN1Ym5ldElERXhjZXB0aW9uLCBJbnZhbGlkU3VibmV0SURFeGNlcHRpb24kMSk7XG52YXIgSW52YWxpZFppcEZpbGVFeGNlcHRpb24gPSBbLTMsIG4wLCBfSVpGRSwgeyBbX2VdOiBfc2UsIFtfaEVdOiA1MDIgfSwgW19UeSwgX01dLCBbMCwgMF1dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoSW52YWxpZFppcEZpbGVFeGNlcHRpb24sIEludmFsaWRaaXBGaWxlRXhjZXB0aW9uJDEpO1xudmFyIEludm9jYXRpb25Db21wbGV0ZWREZXRhaWxzID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0lDRCxcbiAgICAwLFxuICAgIFtfU1R0LCBfRVRuLCBfUkllLCBfRV0sXG4gICAgWzQsIDQsIDAsIFsoKSA9PiBFdmVudEVycm9yLCAwXV0sXG5dO1xudmFyIEludm9jYXRpb25SZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0lSbixcbiAgICAwLFxuICAgIFtfRk4sIF9JVCwgX0xULCBfQ0MsIF9ERU4sIF9QYSwgX1EsIF9USV0sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfWEFJVCB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF9YQUxUIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX1hBQ0MgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfWEFERU4gfV0sXG4gICAgICAgIFsoKSA9PiBfQmxvYiwgMTZdLFxuICAgICAgICBbMCwgeyBbX2hRXTogX1EgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfWEFUSSB9XSxcbiAgICBdLFxuXTtcbnZhciBJbnZvY2F0aW9uUmVzcG9uc2UgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfSVJudixcbiAgICAwLFxuICAgIFtfU0N0LCBfRkUsIF9MUiwgX1BhLCBfRVYsIF9ERUFdLFxuICAgIFtcbiAgICAgICAgWzEsIDMyXSxcbiAgICAgICAgWzAsIHsgW19oSF06IF9YQUZFIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX1hBTFIgfV0sXG4gICAgICAgIFsoKSA9PiBfQmxvYiwgMTZdLFxuICAgICAgICBbMCwgeyBbX2hIXTogX1hBRVYgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfWEFERUEgfV0sXG4gICAgXSxcbl07XG52YXIgSW52b2tlQXN5bmNSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0lBUixcbiAgICAwLFxuICAgIFtfRk4sIF9JQV0sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFsoKSA9PiBCbG9iU3RyZWFtLCAxNl0sXG4gICAgXSxcbl07XG52YXIgSW52b2tlQXN5bmNSZXNwb25zZSA9IFszLCBuMCwgX0lBUm4sIDAsIFtfU3RhXSwgW1sxLCAzMl1dXTtcbnZhciBJbnZva2VSZXNwb25zZVN0cmVhbVVwZGF0ZSA9IFszLCBuMCwgX0lSU1UsIDAsIFtfUGFdLCBbWygpID0+IF9CbG9iLCB7IFtfZVBdOiAxIH1dXV07XG52YXIgSW52b2tlV2l0aFJlc3BvbnNlU3RyZWFtQ29tcGxldGVFdmVudCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9JV1JTQ0UsXG4gICAgMCxcbiAgICBbX0VDLCBfRURyLCBfTFJdLFxuICAgIFswLCAwLCAwXSxcbl07XG52YXIgSW52b2tlV2l0aFJlc3BvbnNlU3RyZWFtUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9JV1JTUixcbiAgICAwLFxuICAgIFtfRk4sIF9JVCwgX0xULCBfQ0MsIF9RLCBfUGEsIF9USV0sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfWEFJVCB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF9YQUxUIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX1hBQ0MgfV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfUSB9XSxcbiAgICAgICAgWygpID0+IF9CbG9iLCAxNl0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfWEFUSSB9XSxcbiAgICBdLFxuXTtcbnZhciBJbnZva2VXaXRoUmVzcG9uc2VTdHJlYW1SZXNwb25zZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9JV1JTUm4sXG4gICAgMCxcbiAgICBbX1NDdCwgX0VWLCBfRVN2LCBfUlNDVF0sXG4gICAgW1xuICAgICAgICBbMSwgMzJdLFxuICAgICAgICBbMCwgeyBbX2hIXTogX1hBRVYgfV0sXG4gICAgICAgIFsoKSA9PiBJbnZva2VXaXRoUmVzcG9uc2VTdHJlYW1SZXNwb25zZUV2ZW50LCAxNl0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfQ1RfIH1dLFxuICAgIF0sXG5dO1xudmFyIEthZmthU2NoZW1hUmVnaXN0cnlBY2Nlc3NDb25maWcgPSBbMywgbjAsIF9LU1JBQywgMCwgW19UeSwgX1VSSV0sIFswLCAwXV07XG52YXIgS2Fma2FTY2hlbWFSZWdpc3RyeUNvbmZpZyA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9LU1JDLFxuICAgIDAsXG4gICAgW19TUlVSSSwgX0VSRiwgX0FDYywgX1NWQ10sXG4gICAgWzAsIDAsICgpID0+IEthZmthU2NoZW1hUmVnaXN0cnlBY2Nlc3NDb25maWdMaXN0LCAoKSA9PiBLYWZrYVNjaGVtYVZhbGlkYXRpb25Db25maWdMaXN0XSxcbl07XG52YXIgS2Fma2FTY2hlbWFWYWxpZGF0aW9uQ29uZmlnID0gWzMsIG4wLCBfS1NWQywgMCwgW19BdF0sIFswXV07XG52YXIgS01TQWNjZXNzRGVuaWVkRXhjZXB0aW9uID0gW1xuICAgIC0zLFxuICAgIG4wLFxuICAgIF9LTVNBREUsXG4gICAgeyBbX2VdOiBfc2UsIFtfaEVdOiA1MDIgfSxcbiAgICBbX1R5LCBfTV0sXG4gICAgWzAsIDBdLFxuXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKEtNU0FjY2Vzc0RlbmllZEV4Y2VwdGlvbiwgS01TQWNjZXNzRGVuaWVkRXhjZXB0aW9uJDEpO1xudmFyIEtNU0Rpc2FibGVkRXhjZXB0aW9uID0gWy0zLCBuMCwgX0tNU0RFLCB7IFtfZV06IF9zZSwgW19oRV06IDUwMiB9LCBbX1R5LCBfTV0sIFswLCAwXV07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihLTVNEaXNhYmxlZEV4Y2VwdGlvbiwgS01TRGlzYWJsZWRFeGNlcHRpb24kMSk7XG52YXIgS01TSW52YWxpZFN0YXRlRXhjZXB0aW9uID0gW1xuICAgIC0zLFxuICAgIG4wLFxuICAgIF9LTVNJU0UsXG4gICAgeyBbX2VdOiBfc2UsIFtfaEVdOiA1MDIgfSxcbiAgICBbX1R5LCBfTV0sXG4gICAgWzAsIDBdLFxuXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKEtNU0ludmFsaWRTdGF0ZUV4Y2VwdGlvbiwgS01TSW52YWxpZFN0YXRlRXhjZXB0aW9uJDEpO1xudmFyIEtNU05vdEZvdW5kRXhjZXB0aW9uID0gWy0zLCBuMCwgX0tNU05GRSwgeyBbX2VdOiBfc2UsIFtfaEVdOiA1MDIgfSwgW19UeSwgX01dLCBbMCwgMF1dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoS01TTm90Rm91bmRFeGNlcHRpb24sIEtNU05vdEZvdW5kRXhjZXB0aW9uJDEpO1xudmFyIExhbWJkYU1hbmFnZWRJbnN0YW5jZXNDYXBhY2l0eVByb3ZpZGVyQ29uZmlnID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0xNSUNQQyxcbiAgICAwLFxuICAgIFtfQ1BBLCBfUEVFTUMsIF9FRU1HQlBWQ10sXG4gICAgWzAsIDEsIDFdLFxuXTtcbnZhciBMYXllciA9IFszLCBuMCwgX0xhLCAwLCBbX0FybiwgX0NTLCBfU1BWQWksIF9TSkFdLCBbMCwgMSwgMCwgMF1dO1xudmFyIExheWVyc0xpc3RJdGVtID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0xMSSxcbiAgICAwLFxuICAgIFtfTE4sIF9MQSwgX0xNVl0sXG4gICAgWzAsIDAsICgpID0+IExheWVyVmVyc2lvbnNMaXN0SXRlbV0sXG5dO1xudmFyIExheWVyVmVyc2lvbkNvbnRlbnRJbnB1dCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9MVkNJLFxuICAgIDAsXG4gICAgW19TQiwgX1NLLCBfU09WLCBfWkZdLFxuICAgIFswLCAwLCAwLCBbKCkgPT4gX0Jsb2IsIDBdXSxcbl07XG52YXIgTGF5ZXJWZXJzaW9uQ29udGVudE91dHB1dCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9MVkNPLFxuICAgIDAsXG4gICAgW19MbywgX0NTbywgX0NTLCBfU1BWQWksIF9TSkFdLFxuICAgIFswLCAwLCAxLCAwLCAwXSxcbl07XG52YXIgTGF5ZXJWZXJzaW9uc0xpc3RJdGVtID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0xWTEksXG4gICAgMCxcbiAgICBbX0xWQSwgX1ZlLCBfRCwgX0NEciwgX0NSLCBfTEksIF9DQV0sXG4gICAgWzAsIDEsIDAsIDAsIDY0IHwgMCwgMCwgNjQgfCAwXSxcbl07XG52YXIgTGlzdEFsaWFzZXNSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0xBUixcbiAgICAwLFxuICAgIFtfRk4sIF9GViwgX01hLCBfTUldLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hRXTogX0ZWIH1dLFxuICAgICAgICBbMCwgeyBbX2hRXTogX01hIH1dLFxuICAgICAgICBbMSwgeyBbX2hRXTogX01JIH1dLFxuICAgIF0sXG5dO1xudmFyIExpc3RBbGlhc2VzUmVzcG9uc2UgPSBbMywgbjAsIF9MQVJpLCAwLCBbX05NLCBfQWxdLCBbMCwgKCkgPT4gQWxpYXNMaXN0XV07XG52YXIgTGlzdENhcGFjaXR5UHJvdmlkZXJzUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9MQ1BSLFxuICAgIDAsXG4gICAgW19TdCwgX01hLCBfTUldLFxuICAgIFtcbiAgICAgICAgWzAsIHsgW19oUV06IF9TdCB9XSxcbiAgICAgICAgWzAsIHsgW19oUV06IF9NYSB9XSxcbiAgICAgICAgWzEsIHsgW19oUV06IF9NSSB9XSxcbiAgICBdLFxuXTtcbnZhciBMaXN0Q2FwYWNpdHlQcm92aWRlcnNSZXNwb25zZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9MQ1BSaSxcbiAgICAwLFxuICAgIFtfQ1BhLCBfTk1dLFxuICAgIFsoKSA9PiBDYXBhY2l0eVByb3ZpZGVyc0xpc3QsIDBdLFxuXTtcbnZhciBMaXN0Q29kZVNpZ25pbmdDb25maWdzUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9MQ1NDUixcbiAgICAwLFxuICAgIFtfTWEsIF9NSV0sXG4gICAgW1xuICAgICAgICBbMCwgeyBbX2hRXTogX01hIH1dLFxuICAgICAgICBbMSwgeyBbX2hRXTogX01JIH1dLFxuICAgIF0sXG5dO1xudmFyIExpc3RDb2RlU2lnbmluZ0NvbmZpZ3NSZXNwb25zZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9MQ1NDUmksXG4gICAgMCxcbiAgICBbX05NLCBfQ1NDb10sXG4gICAgWzAsICgpID0+IENvZGVTaWduaW5nQ29uZmlnTGlzdF0sXG5dO1xudmFyIExpc3REdXJhYmxlRXhlY3V0aW9uc0J5RnVuY3Rpb25SZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0xERUJGUixcbiAgICAwLFxuICAgIFtfRk4sIF9RLCBfREVOLCBfU3RhdCwgX1NBdCwgX1NCdCwgX1JPLCBfTWEsIF9NSV0sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfUSB9XSxcbiAgICAgICAgWzAsIHsgW19oUV06IF9ERU4gfV0sXG4gICAgICAgIFs2NCB8IDAsIHsgW19oUV06IF9TdGF0IH1dLFxuICAgICAgICBbNCwgeyBbX2hRXTogX1NBdCB9XSxcbiAgICAgICAgWzQsIHsgW19oUV06IF9TQnQgfV0sXG4gICAgICAgIFsyLCB7IFtfaFFdOiBfUk8gfV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfTWEgfV0sXG4gICAgICAgIFsxLCB7IFtfaFFdOiBfTUkgfV0sXG4gICAgXSxcbl07XG52YXIgTGlzdER1cmFibGVFeGVjdXRpb25zQnlGdW5jdGlvblJlc3BvbnNlID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0xERUJGUmksXG4gICAgMCxcbiAgICBbX0RFLCBfTk1dLFxuICAgIFsoKSA9PiBEdXJhYmxlRXhlY3V0aW9ucywgMF0sXG5dO1xudmFyIExpc3RFdmVudFNvdXJjZU1hcHBpbmdzUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9MRVNNUixcbiAgICAwLFxuICAgIFtfRVNBLCBfRk4sIF9NYSwgX01JXSxcbiAgICBbXG4gICAgICAgIFswLCB7IFtfaFFdOiBfRVNBIH1dLFxuICAgICAgICBbMCwgeyBbX2hRXTogX0ZOIH1dLFxuICAgICAgICBbMCwgeyBbX2hRXTogX01hIH1dLFxuICAgICAgICBbMSwgeyBbX2hRXTogX01JIH1dLFxuICAgIF0sXG5dO1xudmFyIExpc3RFdmVudFNvdXJjZU1hcHBpbmdzUmVzcG9uc2UgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfTEVTTVJpLFxuICAgIDAsXG4gICAgW19OTSwgX0VTTV0sXG4gICAgWzAsICgpID0+IEV2ZW50U291cmNlTWFwcGluZ3NMaXN0XSxcbl07XG52YXIgTGlzdEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdzUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9MRkVJQ1IsXG4gICAgMCxcbiAgICBbX0ZOLCBfTWEsIF9NSV0sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfTWEgfV0sXG4gICAgICAgIFsxLCB7IFtfaFFdOiBfTUkgfV0sXG4gICAgXSxcbl07XG52YXIgTGlzdEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdzUmVzcG9uc2UgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfTEZFSUNSaSxcbiAgICAwLFxuICAgIFtfRkVJQ3UsIF9OTV0sXG4gICAgWygpID0+IEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdMaXN0LCAwXSxcbl07XG52YXIgTGlzdEZ1bmN0aW9uc0J5Q29kZVNpZ25pbmdDb25maWdSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0xGQkNTQ1IsXG4gICAgMCxcbiAgICBbX0NTQ0EsIF9NYSwgX01JXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oUV06IF9NYSB9XSxcbiAgICAgICAgWzEsIHsgW19oUV06IF9NSSB9XSxcbiAgICBdLFxuXTtcbnZhciBMaXN0RnVuY3Rpb25zQnlDb2RlU2lnbmluZ0NvbmZpZ1Jlc3BvbnNlID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0xGQkNTQ1JpLFxuICAgIDAsXG4gICAgW19OTSwgX0ZBdV0sXG4gICAgWzAsIDY0IHwgMF0sXG5dO1xudmFyIExpc3RGdW5jdGlvbnNSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0xGUixcbiAgICAwLFxuICAgIFtfTVIsIF9GViwgX01hLCBfTUldLFxuICAgIFtcbiAgICAgICAgWzAsIHsgW19oUV06IF9NUiB9XSxcbiAgICAgICAgWzAsIHsgW19oUV06IF9GViB9XSxcbiAgICAgICAgWzAsIHsgW19oUV06IF9NYSB9XSxcbiAgICAgICAgWzEsIHsgW19oUV06IF9NSSB9XSxcbiAgICBdLFxuXTtcbnZhciBMaXN0RnVuY3Rpb25zUmVzcG9uc2UgPSBbMywgbjAsIF9MRlJpLCAwLCBbX05NLCBfRnVdLCBbMCwgWygpID0+IEZ1bmN0aW9uTGlzdCwgMF1dXTtcbnZhciBMaXN0RnVuY3Rpb25VcmxDb25maWdzUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9MRlVDUixcbiAgICAwLFxuICAgIFtfRk4sIF9NYSwgX01JXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oUV06IF9NYSB9XSxcbiAgICAgICAgWzEsIHsgW19oUV06IF9NSSB9XSxcbiAgICBdLFxuXTtcbnZhciBMaXN0RnVuY3Rpb25VcmxDb25maWdzUmVzcG9uc2UgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfTEZVQ1JpLFxuICAgIDAsXG4gICAgW19GVUN1LCBfTk1dLFxuICAgIFsoKSA9PiBGdW5jdGlvblVybENvbmZpZ0xpc3QsIDBdLFxuXTtcbnZhciBMaXN0RnVuY3Rpb25WZXJzaW9uc0J5Q2FwYWNpdHlQcm92aWRlclJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfTEZWQkNQUixcbiAgICAwLFxuICAgIFtfQ1BOLCBfTWEsIF9NSV0sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfTWEgfV0sXG4gICAgICAgIFsxLCB7IFtfaFFdOiBfTUkgfV0sXG4gICAgXSxcbl07XG52YXIgTGlzdEZ1bmN0aW9uVmVyc2lvbnNCeUNhcGFjaXR5UHJvdmlkZXJSZXNwb25zZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9MRlZCQ1BSaSxcbiAgICAwLFxuICAgIFtfQ1BBLCBfRlZ1LCBfTk1dLFxuICAgIFswLCAoKSA9PiBGdW5jdGlvblZlcnNpb25zQnlDYXBhY2l0eVByb3ZpZGVyTGlzdCwgMF0sXG5dO1xudmFyIExpc3RMYXllcnNSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0xMUixcbiAgICAwLFxuICAgIFtfQ1JvLCBfTWEsIF9NSSwgX0NBb10sXG4gICAgW1xuICAgICAgICBbMCwgeyBbX2hRXTogX0NSbyB9XSxcbiAgICAgICAgWzAsIHsgW19oUV06IF9NYSB9XSxcbiAgICAgICAgWzEsIHsgW19oUV06IF9NSSB9XSxcbiAgICAgICAgWzAsIHsgW19oUV06IF9DQW8gfV0sXG4gICAgXSxcbl07XG52YXIgTGlzdExheWVyc1Jlc3BvbnNlID0gWzMsIG4wLCBfTExSaSwgMCwgW19OTSwgX0xdLCBbMCwgKCkgPT4gTGF5ZXJzTGlzdF1dO1xudmFyIExpc3RMYXllclZlcnNpb25zUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9MTFZSLFxuICAgIDAsXG4gICAgW19DUm8sIF9MTiwgX01hLCBfTUksIF9DQW9dLFxuICAgIFtcbiAgICAgICAgWzAsIHsgW19oUV06IF9DUm8gfV0sXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oUV06IF9NYSB9XSxcbiAgICAgICAgWzEsIHsgW19oUV06IF9NSSB9XSxcbiAgICAgICAgWzAsIHsgW19oUV06IF9DQW8gfV0sXG4gICAgXSxcbl07XG52YXIgTGlzdExheWVyVmVyc2lvbnNSZXNwb25zZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9MTFZSaSxcbiAgICAwLFxuICAgIFtfTk0sIF9MVl0sXG4gICAgWzAsICgpID0+IExheWVyVmVyc2lvbnNMaXN0XSxcbl07XG52YXIgTGlzdFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdzUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9MUENDUixcbiAgICAwLFxuICAgIFtfRk4sIF9NYSwgX01JXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oUV06IF9NYSB9XSxcbiAgICAgICAgWzEsIHsgW19oUV06IF9NSSB9XSxcbiAgICBdLFxuXTtcbnZhciBMaXN0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ3NSZXNwb25zZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9MUENDUmksXG4gICAgMCxcbiAgICBbX1BDQywgX05NXSxcbiAgICBbKCkgPT4gUHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ0xpc3QsIDBdLFxuXTtcbnZhciBMaXN0VGFnc1JlcXVlc3QgPSBbMywgbjAsIF9MVFIsIDAsIFtfUmVdLCBbWzAsIDFdXV07XG52YXIgTGlzdFRhZ3NSZXNwb25zZSA9IFszLCBuMCwgX0xUUmksIDAsIFtfVGFdLCBbMTI4IHwgMF1dO1xudmFyIExpc3RWZXJzaW9uc0J5RnVuY3Rpb25SZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0xWQkZSLFxuICAgIDAsXG4gICAgW19GTiwgX01hLCBfTUldLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hRXTogX01hIH1dLFxuICAgICAgICBbMSwgeyBbX2hRXTogX01JIH1dLFxuICAgIF0sXG5dO1xudmFyIExpc3RWZXJzaW9uc0J5RnVuY3Rpb25SZXNwb25zZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9MVkJGUmksXG4gICAgMCxcbiAgICBbX05NLCBfVmVyXSxcbiAgICBbMCwgWygpID0+IEZ1bmN0aW9uTGlzdCwgMF1dLFxuXTtcbnZhciBMb2dnaW5nQ29uZmlnID0gWzMsIG4wLCBfTEMsIDAsIFtfTEYsIF9BTEwsIF9TTEwsIF9MR10sIFswLCAwLCAwLCAwXV07XG52YXIgTm9QdWJsaXNoZWRWZXJzaW9uRXhjZXB0aW9uID0gW1xuICAgIC0zLFxuICAgIG4wLFxuICAgIF9OUFZFLFxuICAgIHsgW19lXTogX2MsIFtfaEVdOiA0MDAgfSxcbiAgICBbX1R5LCBfTV0sXG4gICAgWzAsIDBdLFxuXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKE5vUHVibGlzaGVkVmVyc2lvbkV4Y2VwdGlvbiwgTm9QdWJsaXNoZWRWZXJzaW9uRXhjZXB0aW9uJDEpO1xudmFyIE9uRmFpbHVyZSA9IFszLCBuMCwgX09GLCAwLCBbX0RlXSwgWzBdXTtcbnZhciBPblN1Y2Nlc3MgPSBbMywgbjAsIF9PUywgMCwgW19EZV0sIFswXV07XG52YXIgT3BlcmF0aW9uID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX09wLFxuICAgIDAsXG4gICAgW19JZCwgX1BJLCBfTiwgX1R5LCBfU1R1LCBfU1R0LCBfRVRuLCBfU3RhLCBfRUR4LCBfQ0RvLCBfU0QsIF9XRGEsIF9DRCwgX0NJRF0sXG4gICAgW1xuICAgICAgICAwLFxuICAgICAgICAwLFxuICAgICAgICAwLFxuICAgICAgICAwLFxuICAgICAgICAwLFxuICAgICAgICA0LFxuICAgICAgICA0LFxuICAgICAgICAwLFxuICAgICAgICBbKCkgPT4gRXhlY3V0aW9uRGV0YWlscywgMF0sXG4gICAgICAgIFsoKSA9PiBDb250ZXh0RGV0YWlscywgMF0sXG4gICAgICAgIFsoKSA9PiBTdGVwRGV0YWlscywgMF0sXG4gICAgICAgICgpID0+IFdhaXREZXRhaWxzLFxuICAgICAgICBbKCkgPT4gQ2FsbGJhY2tEZXRhaWxzLCAwXSxcbiAgICAgICAgWygpID0+IENoYWluZWRJbnZva2VEZXRhaWxzLCAwXSxcbiAgICBdLFxuXTtcbnZhciBPcGVyYXRpb25VcGRhdGUgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfT1UsXG4gICAgMCxcbiAgICBbX0lkLCBfUEksIF9OLCBfVHksIF9TVHUsIF9BLCBfUGEsIF9FLCBfQ09vLCBfU08sIF9XTywgX0NPLCBfQ0lPXSxcbiAgICBbXG4gICAgICAgIDAsXG4gICAgICAgIDAsXG4gICAgICAgIDAsXG4gICAgICAgIDAsXG4gICAgICAgIDAsXG4gICAgICAgIDAsXG4gICAgICAgIFsoKSA9PiBPcGVyYXRpb25QYXlsb2FkLCAwXSxcbiAgICAgICAgWygpID0+IEVycm9yT2JqZWN0LCAwXSxcbiAgICAgICAgKCkgPT4gQ29udGV4dE9wdGlvbnMsXG4gICAgICAgICgpID0+IFN0ZXBPcHRpb25zLFxuICAgICAgICAoKSA9PiBXYWl0T3B0aW9ucyxcbiAgICAgICAgKCkgPT4gQ2FsbGJhY2tPcHRpb25zLFxuICAgICAgICAoKSA9PiBDaGFpbmVkSW52b2tlT3B0aW9ucyxcbiAgICBdLFxuXTtcbnZhciBQb2xpY3lMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbiA9IFtcbiAgICAtMyxcbiAgICBuMCxcbiAgICBfUExFRSxcbiAgICB7IFtfZV06IF9jLCBbX2hFXTogNDAwIH0sXG4gICAgW19UeSwgX21dLFxuICAgIFswLCAwXSxcbl07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihQb2xpY3lMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbiwgUG9saWN5TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24kMSk7XG52YXIgUHJlY29uZGl0aW9uRmFpbGVkRXhjZXB0aW9uID0gWy0zLCBuMCwgX1BGRSwgeyBbX2VdOiBfYywgW19oRV06IDQxMiB9LCBbX1R5LCBfbV0sIFswLCAwXV07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihQcmVjb25kaXRpb25GYWlsZWRFeGNlcHRpb24sIFByZWNvbmRpdGlvbkZhaWxlZEV4Y2VwdGlvbiQxKTtcbnZhciBQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnTGlzdEl0ZW0gPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfUENDTEksXG4gICAgMCxcbiAgICBbX0ZBLCBfUlBDRSwgX0FQQ0UsIF9BUENFbCwgX1N0YSwgX1NSdCwgX0xNXSxcbiAgICBbMCwgMSwgMSwgMSwgMCwgMCwgMF0sXG5dO1xudmFyIFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdOb3RGb3VuZEV4Y2VwdGlvbiA9IFtcbiAgICAtMyxcbiAgICBuMCxcbiAgICBfUENDTkZFLFxuICAgIHsgW19lXTogX2MsIFtfaEVdOiA0MDQgfSxcbiAgICBbX1R5LCBfbV0sXG4gICAgWzAsIDBdLFxuXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdOb3RGb3VuZEV4Y2VwdGlvbiwgUHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ05vdEZvdW5kRXhjZXB0aW9uJDEpO1xudmFyIFByb3Zpc2lvbmVkUG9sbGVyQ29uZmlnID0gWzMsIG4wLCBfUFBDLCAwLCBbX01QLCBfTVBhLCBfUEdOXSwgWzEsIDEsIDBdXTtcbnZhciBQdWJsaXNoTGF5ZXJWZXJzaW9uUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9QTFZSLFxuICAgIDAsXG4gICAgW19MTiwgX0QsIF9Db250LCBfQ1IsIF9MSSwgX0NBXSxcbiAgICBbWzAsIDFdLCAwLCBbKCkgPT4gTGF5ZXJWZXJzaW9uQ29udGVudElucHV0LCAwXSwgNjQgfCAwLCAwLCA2NCB8IDBdLFxuXTtcbnZhciBQdWJsaXNoTGF5ZXJWZXJzaW9uUmVzcG9uc2UgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfUExWUnUsXG4gICAgMCxcbiAgICBbX0NvbnQsIF9MQSwgX0xWQSwgX0QsIF9DRHIsIF9WZSwgX0NSLCBfTEksIF9DQV0sXG4gICAgWygpID0+IExheWVyVmVyc2lvbkNvbnRlbnRPdXRwdXQsIDAsIDAsIDAsIDAsIDEsIDY0IHwgMCwgMCwgNjQgfCAwXSxcbl07XG52YXIgUHVibGlzaFZlcnNpb25SZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1BWUixcbiAgICAwLFxuICAgIFtfRk4sIF9DU28sIF9ELCBfUkksIF9QVHVdLFxuICAgIFtbMCwgMV0sIDAsIDAsIDAsIDBdLFxuXTtcbnZhciBQdXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnUmVxdWVzdCA9IFszLCBuMCwgX1BGQ1NDUiwgMCwgW19DU0NBLCBfRk5dLCBbMCwgWzAsIDFdXV07XG52YXIgUHV0RnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ1Jlc3BvbnNlID0gWzMsIG4wLCBfUEZDU0NSdSwgMCwgW19DU0NBLCBfRk5dLCBbMCwgMF1dO1xudmFyIFB1dEZ1bmN0aW9uQ29uY3VycmVuY3lSZXF1ZXN0ID0gWzMsIG4wLCBfUEZDUiwgMCwgW19GTiwgX1JDRV0sIFtbMCwgMV0sIDFdXTtcbnZhciBQdXRGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9QRkVJQ1IsXG4gICAgMCxcbiAgICBbX0ZOLCBfUSwgX01SQSwgX01FQUlTLCBfRENdLFxuICAgIFtbMCwgMV0sIFswLCB7IFtfaFFdOiBfUSB9XSwgMSwgMSwgKCkgPT4gRGVzdGluYXRpb25Db25maWddLFxuXTtcbnZhciBQdXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZ1JlcXVlc3QgPSBbMywgbjAsIF9QRlJDUiwgMCwgW19GTiwgX1JMXSwgW1swLCAxXSwgMF1dO1xudmFyIFB1dEZ1bmN0aW9uUmVjdXJzaW9uQ29uZmlnUmVzcG9uc2UgPSBbMywgbjAsIF9QRlJDUnUsIDAsIFtfUkxdLCBbMF1dO1xudmFyIFB1dEZ1bmN0aW9uU2NhbGluZ0NvbmZpZ1JlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfUEZTQ1IsXG4gICAgMCxcbiAgICBbX0ZOLCBfUSwgX0ZTQ3VdLFxuICAgIFtbMCwgMV0sIFswLCB7IFtfaFFdOiBfUSB9XSwgKCkgPT4gRnVuY3Rpb25TY2FsaW5nQ29uZmlnXSxcbl07XG52YXIgUHV0RnVuY3Rpb25TY2FsaW5nQ29uZmlnUmVzcG9uc2UgPSBbMywgbjAsIF9QRlNDUnUsIDAsIFtfRlNdLCBbMF1dO1xudmFyIFB1dFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1BQQ0NSLFxuICAgIDAsXG4gICAgW19GTiwgX1EsIF9QQ0VdLFxuICAgIFtbMCwgMV0sIFswLCB7IFtfaFFdOiBfUSB9XSwgMV0sXG5dO1xudmFyIFB1dFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdSZXNwb25zZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9QUENDUnUsXG4gICAgMCxcbiAgICBbX1JQQ0UsIF9BUENFLCBfQVBDRWwsIF9TdGEsIF9TUnQsIF9MTV0sXG4gICAgWzEsIDEsIDEsIDAsIDAsIDBdLFxuXTtcbnZhciBQdXRSdW50aW1lTWFuYWdlbWVudENvbmZpZ1JlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfUFJNQ1IsXG4gICAgMCxcbiAgICBbX0ZOLCBfUSwgX1VSTywgX1JWQV0sXG4gICAgW1swLCAxXSwgWzAsIHsgW19oUV06IF9RIH1dLCAwLCAwXSxcbl07XG52YXIgUHV0UnVudGltZU1hbmFnZW1lbnRDb25maWdSZXNwb25zZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9QUk1DUnUsXG4gICAgMCxcbiAgICBbX1VSTywgX0ZBLCBfUlZBXSxcbiAgICBbMCwgMCwgMF0sXG5dO1xudmFyIFJlY3Vyc2l2ZUludm9jYXRpb25FeGNlcHRpb24gPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX1JJRSxcbiAgICB7IFtfZV06IF9jLCBbX2hFXTogNDAwIH0sXG4gICAgW19UeSwgX01dLFxuICAgIFswLCAwXSxcbl07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihSZWN1cnNpdmVJbnZvY2F0aW9uRXhjZXB0aW9uLCBSZWN1cnNpdmVJbnZvY2F0aW9uRXhjZXB0aW9uJDEpO1xudmFyIFJlbW92ZUxheWVyVmVyc2lvblBlcm1pc3Npb25SZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1JMVlBSLFxuICAgIDAsXG4gICAgW19MTiwgX1ZOLCBfU0ksIF9SSV0sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFsxLCAxXSxcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hRXTogX1JJIH1dLFxuICAgIF0sXG5dO1xudmFyIFJlbW92ZVBlcm1pc3Npb25SZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1JQUixcbiAgICAwLFxuICAgIFtfRk4sIF9TSSwgX1EsIF9SSV0sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oUV06IF9RIH1dLFxuICAgICAgICBbMCwgeyBbX2hRXTogX1JJIH1dLFxuICAgIF0sXG5dO1xudmFyIFJlcXVlc3RUb29MYXJnZUV4Y2VwdGlvbiA9IFstMywgbjAsIF9SVExFLCB7IFtfZV06IF9jLCBbX2hFXTogNDEzIH0sIFtfVHksIF9tXSwgWzAsIDBdXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKFJlcXVlc3RUb29MYXJnZUV4Y2VwdGlvbiwgUmVxdWVzdFRvb0xhcmdlRXhjZXB0aW9uJDEpO1xudmFyIFJlc291cmNlQ29uZmxpY3RFeGNlcHRpb24gPSBbLTMsIG4wLCBfUkNFZSwgeyBbX2VdOiBfYywgW19oRV06IDQwOSB9LCBbX1R5LCBfbV0sIFswLCAwXV07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihSZXNvdXJjZUNvbmZsaWN0RXhjZXB0aW9uLCBSZXNvdXJjZUNvbmZsaWN0RXhjZXB0aW9uJDEpO1xudmFyIFJlc291cmNlSW5Vc2VFeGNlcHRpb24gPSBbLTMsIG4wLCBfUklVRSwgeyBbX2VdOiBfYywgW19oRV06IDQwMCB9LCBbX1R5LCBfTV0sIFswLCAwXV07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihSZXNvdXJjZUluVXNlRXhjZXB0aW9uLCBSZXNvdXJjZUluVXNlRXhjZXB0aW9uJDEpO1xudmFyIFJlc291cmNlTm90Rm91bmRFeGNlcHRpb24gPSBbLTMsIG4wLCBfUk5GRSwgeyBbX2VdOiBfYywgW19oRV06IDQwNCB9LCBbX1R5LCBfTV0sIFswLCAwXV07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uLCBSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uJDEpO1xudmFyIFJlc291cmNlTm90UmVhZHlFeGNlcHRpb24gPSBbLTMsIG4wLCBfUk5SRSwgeyBbX2VdOiBfc2UsIFtfaEVdOiA1MDIgfSwgW19UeSwgX21dLCBbMCwgMF1dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoUmVzb3VyY2VOb3RSZWFkeUV4Y2VwdGlvbiwgUmVzb3VyY2VOb3RSZWFkeUV4Y2VwdGlvbiQxKTtcbnZhciBSZXRyeURldGFpbHMgPSBbMywgbjAsIF9SRCwgMCwgW19DQXUsIF9OQURTXSwgWzEsIDFdXTtcbnZhciBSdW50aW1lVmVyc2lvbkNvbmZpZyA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9SVkMsXG4gICAgMCxcbiAgICBbX1JWQSwgX0VdLFxuICAgIFswLCBbKCkgPT4gUnVudGltZVZlcnNpb25FcnJvciwgMF1dLFxuXTtcbnZhciBSdW50aW1lVmVyc2lvbkVycm9yID0gWzMsIG4wLCBfUlZFLCAwLCBbX0VDLCBfTV0sIFswLCBbKCkgPT4gU2Vuc2l0aXZlU3RyaW5nLCAwXV1dO1xudmFyIFNjYWxpbmdDb25maWcgPSBbMywgbjAsIF9TQywgMCwgW19NQ2FdLCBbMV1dO1xudmFyIFNlbGZNYW5hZ2VkRXZlbnRTb3VyY2UgPSBbMywgbjAsIF9TTUVTLCAwLCBbX0VuZF0sIFtbMiwgbjAsIF9FbmQsIDAsIDAsIDY0IHwgMF1dXTtcbnZhciBTZWxmTWFuYWdlZEthZmthRXZlbnRTb3VyY2VDb25maWcgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfU01LRVNDLFxuICAgIDAsXG4gICAgW19DR0ksIF9TUkNdLFxuICAgIFswLCAoKSA9PiBLYWZrYVNjaGVtYVJlZ2lzdHJ5Q29uZmlnXSxcbl07XG52YXIgU2VuZER1cmFibGVFeGVjdXRpb25DYWxsYmFja0ZhaWx1cmVSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1NERUNGUixcbiAgICAwLFxuICAgIFtfQ0ksIF9FXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWygpID0+IEVycm9yT2JqZWN0LCAxNl0sXG4gICAgXSxcbl07XG52YXIgU2VuZER1cmFibGVFeGVjdXRpb25DYWxsYmFja0ZhaWx1cmVSZXNwb25zZSA9IFszLCBuMCwgX1NERUNGUmUsIDAsIFtdLCBbXV07XG52YXIgU2VuZER1cmFibGVFeGVjdXRpb25DYWxsYmFja0hlYXJ0YmVhdFJlcXVlc3QgPSBbMywgbjAsIF9TREVDSFIsIDAsIFtfQ0ldLCBbWzAsIDFdXV07XG52YXIgU2VuZER1cmFibGVFeGVjdXRpb25DYWxsYmFja0hlYXJ0YmVhdFJlc3BvbnNlID0gWzMsIG4wLCBfU0RFQ0hSZSwgMCwgW10sIFtdXTtcbnZhciBTZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrU3VjY2Vzc1JlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfU0RFQ1NSLFxuICAgIDAsXG4gICAgW19DSSwgX1JdLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbKCkgPT4gQmluYXJ5T3BlcmF0aW9uUGF5bG9hZCwgMTZdLFxuICAgIF0sXG5dO1xudmFyIFNlbmREdXJhYmxlRXhlY3V0aW9uQ2FsbGJhY2tTdWNjZXNzUmVzcG9uc2UgPSBbMywgbjAsIF9TREVDU1JlLCAwLCBbXSwgW11dO1xudmFyIFNlcmlhbGl6ZWRSZXF1ZXN0RW50aXR5VG9vTGFyZ2VFeGNlcHRpb24gPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX1NSRVRMRSxcbiAgICB7IFtfZV06IF9jLCBbX2hFXTogNDEzIH0sXG4gICAgW19UeSwgX21dLFxuICAgIFswLCAwXSxcbl07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihTZXJpYWxpemVkUmVxdWVzdEVudGl0eVRvb0xhcmdlRXhjZXB0aW9uLCBTZXJpYWxpemVkUmVxdWVzdEVudGl0eVRvb0xhcmdlRXhjZXB0aW9uJDEpO1xudmFyIFNlcnZpY2VFeGNlcHRpb24gPSBbLTMsIG4wLCBfU0UsIHsgW19lXTogX3NlLCBbX2hFXTogNTAwIH0sIFtfVHksIF9NXSwgWzAsIDBdXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKFNlcnZpY2VFeGNlcHRpb24sIFNlcnZpY2VFeGNlcHRpb24kMSk7XG52YXIgU25hcFN0YXJ0ID0gWzMsIG4wLCBfU1NuLCAwLCBbX0FPcF0sIFswXV07XG52YXIgU25hcFN0YXJ0RXhjZXB0aW9uID0gWy0zLCBuMCwgX1NTRSwgeyBbX2VdOiBfYywgW19oRV06IDQwMCB9LCBbX1R5LCBfTV0sIFswLCAwXV07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihTbmFwU3RhcnRFeGNlcHRpb24sIFNuYXBTdGFydEV4Y2VwdGlvbiQxKTtcbnZhciBTbmFwU3RhcnROb3RSZWFkeUV4Y2VwdGlvbiA9IFtcbiAgICAtMyxcbiAgICBuMCxcbiAgICBfU1NOUkUsXG4gICAgeyBbX2VdOiBfYywgW19oRV06IDQwOSB9LFxuICAgIFtfVHksIF9NXSxcbiAgICBbMCwgMF0sXG5dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoU25hcFN0YXJ0Tm90UmVhZHlFeGNlcHRpb24sIFNuYXBTdGFydE5vdFJlYWR5RXhjZXB0aW9uJDEpO1xudmFyIFNuYXBTdGFydFJlc3BvbnNlID0gWzMsIG4wLCBfU1NSLCAwLCBbX0FPcCwgX09TcF0sIFswLCAwXV07XG52YXIgU25hcFN0YXJ0VGltZW91dEV4Y2VwdGlvbiA9IFstMywgbjAsIF9TU1RFLCB7IFtfZV06IF9jLCBbX2hFXTogNDA4IH0sIFtfVHksIF9NXSwgWzAsIDBdXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKFNuYXBTdGFydFRpbWVvdXRFeGNlcHRpb24sIFNuYXBTdGFydFRpbWVvdXRFeGNlcHRpb24kMSk7XG52YXIgU291cmNlQWNjZXNzQ29uZmlndXJhdGlvbiA9IFszLCBuMCwgX1NBQ28sIDAsIFtfVHksIF9VUkldLCBbMCwgMF1dO1xudmFyIFN0ZXBEZXRhaWxzID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1NELFxuICAgIDAsXG4gICAgW19BdHQsIF9OQVQsIF9SLCBfRV0sXG4gICAgWzEsIDQsIFsoKSA9PiBPcGVyYXRpb25QYXlsb2FkLCAwXSwgWygpID0+IEVycm9yT2JqZWN0LCAwXV0sXG5dO1xudmFyIFN0ZXBGYWlsZWREZXRhaWxzID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1NGRCxcbiAgICAwLFxuICAgIFtfRSwgX1JEXSxcbiAgICBbWygpID0+IEV2ZW50RXJyb3IsIDBdLCAoKSA9PiBSZXRyeURldGFpbHNdLFxuXTtcbnZhciBTdGVwT3B0aW9ucyA9IFszLCBuMCwgX1NPLCAwLCBbX05BRFNdLCBbMV1dO1xudmFyIFN0ZXBTdGFydGVkRGV0YWlscyA9IFszLCBuMCwgX1NTRCwgMCwgW10sIFtdXTtcbnZhciBTdGVwU3VjY2VlZGVkRGV0YWlscyA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9TU0R0LFxuICAgIDAsXG4gICAgW19SLCBfUkRdLFxuICAgIFtbKCkgPT4gRXZlbnRSZXN1bHQsIDBdLCAoKSA9PiBSZXRyeURldGFpbHNdLFxuXTtcbnZhciBTdG9wRHVyYWJsZUV4ZWN1dGlvblJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfU0RFUixcbiAgICAwLFxuICAgIFtfREVBLCBfRV0sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFsoKSA9PiBFcnJvck9iamVjdCwgMTZdLFxuICAgIF0sXG5dO1xudmFyIFN0b3BEdXJhYmxlRXhlY3V0aW9uUmVzcG9uc2UgPSBbMywgbjAsIF9TREVSdCwgMCwgW19TVHRvXSwgWzRdXTtcbnZhciBTdWJuZXRJUEFkZHJlc3NMaW1pdFJlYWNoZWRFeGNlcHRpb24gPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX1NJUEFMUkUsXG4gICAgeyBbX2VdOiBfc2UsIFtfaEVdOiA1MDIgfSxcbiAgICBbX1R5LCBfTV0sXG4gICAgWzAsIDBdLFxuXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKFN1Ym5ldElQQWRkcmVzc0xpbWl0UmVhY2hlZEV4Y2VwdGlvbiwgU3VibmV0SVBBZGRyZXNzTGltaXRSZWFjaGVkRXhjZXB0aW9uJDEpO1xudmFyIFRhZ1Jlc291cmNlUmVxdWVzdCA9IFszLCBuMCwgX1RSUiwgMCwgW19SZSwgX1RhXSwgW1swLCAxXSwgMTI4IHwgMF1dO1xudmFyIFRhZ3NFcnJvciA9IFszLCBuMCwgX1RFLCAwLCBbX0VDLCBfTV0sIFswLCAwXV07XG52YXIgVGFyZ2V0VHJhY2tpbmdTY2FsaW5nUG9saWN5ID0gWzMsIG4wLCBfVFRTUCwgMCwgW19QTVQsIF9UVl0sIFswLCAxXV07XG52YXIgVGVuYW5jeUNvbmZpZyA9IFszLCBuMCwgX1RDZSwgMCwgW19USU1dLCBbMF1dO1xudmFyIFRvb01hbnlSZXF1ZXN0c0V4Y2VwdGlvbiA9IFtcbiAgICAtMyxcbiAgICBuMCxcbiAgICBfVE1SRSxcbiAgICB7IFtfZV06IF9jLCBbX2hFXTogNDI5IH0sXG4gICAgW19yQVMsIF9UeSwgX20sIF9SZWFdLFxuICAgIFtbMCwgeyBbX2hIXTogX1JBIH1dLCAwLCAwLCAwXSxcbl07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihUb29NYW55UmVxdWVzdHNFeGNlcHRpb24sIFRvb01hbnlSZXF1ZXN0c0V4Y2VwdGlvbiQxKTtcbnZhciBUcmFjZUhlYWRlciA9IFszLCBuMCwgX1RILCAwLCBbX1hBVEltXSwgWzBdXTtcbnZhciBUcmFjaW5nQ29uZmlnID0gWzMsIG4wLCBfVEMsIDAsIFtfTW9dLCBbMF1dO1xudmFyIFRyYWNpbmdDb25maWdSZXNwb25zZSA9IFszLCBuMCwgX1RDUiwgMCwgW19Nb10sIFswXV07XG52YXIgVW5zdXBwb3J0ZWRNZWRpYVR5cGVFeGNlcHRpb24gPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX1VNVEUsXG4gICAgeyBbX2VdOiBfYywgW19oRV06IDQxNSB9LFxuICAgIFtfVHksIF9tXSxcbiAgICBbMCwgMF0sXG5dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoVW5zdXBwb3J0ZWRNZWRpYVR5cGVFeGNlcHRpb24sIFVuc3VwcG9ydGVkTWVkaWFUeXBlRXhjZXB0aW9uJDEpO1xudmFyIFVudGFnUmVzb3VyY2VSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1VSUixcbiAgICAwLFxuICAgIFtfUmUsIF9US10sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFs2NCB8IDAsIHsgW19oUV06IF90SyB9XSxcbiAgICBdLFxuXTtcbnZhciBVcGRhdGVBbGlhc1JlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfVUFSLFxuICAgIDAsXG4gICAgW19GTiwgX04sIF9GViwgX0QsIF9SQywgX1JJXSxcbiAgICBbWzAsIDFdLCBbMCwgMV0sIDAsIDAsICgpID0+IEFsaWFzUm91dGluZ0NvbmZpZ3VyYXRpb24sIDBdLFxuXTtcbnZhciBVcGRhdGVDYXBhY2l0eVByb3ZpZGVyUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9VQ1BSLFxuICAgIDAsXG4gICAgW19DUE4sIF9DUFNDXSxcbiAgICBbWzAsIDFdLCAoKSA9PiBDYXBhY2l0eVByb3ZpZGVyU2NhbGluZ0NvbmZpZ10sXG5dO1xudmFyIFVwZGF0ZUNhcGFjaXR5UHJvdmlkZXJSZXNwb25zZSA9IFszLCBuMCwgX1VDUFJwLCAwLCBbX0NQXSwgWygpID0+IENhcGFjaXR5UHJvdmlkZXJdXTtcbnZhciBVcGRhdGVDb2RlU2lnbmluZ0NvbmZpZ1JlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfVUNTQ1IsXG4gICAgMCxcbiAgICBbX0NTQ0EsIF9ELCBfQVAsIF9DU1BdLFxuICAgIFtbMCwgMV0sIDAsICgpID0+IEFsbG93ZWRQdWJsaXNoZXJzLCAoKSA9PiBDb2RlU2lnbmluZ1BvbGljaWVzXSxcbl07XG52YXIgVXBkYXRlQ29kZVNpZ25pbmdDb25maWdSZXNwb25zZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9VQ1NDUnAsXG4gICAgMCxcbiAgICBbX0NTQ10sXG4gICAgWygpID0+IENvZGVTaWduaW5nQ29uZmlnXSxcbl07XG52YXIgVXBkYXRlRXZlbnRTb3VyY2VNYXBwaW5nUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9VRVNNUixcbiAgICAwLFxuICAgIFtcbiAgICAgICAgX1VVSUQsXG4gICAgICAgIF9GTixcbiAgICAgICAgX0VuLFxuICAgICAgICBfQlNhLFxuICAgICAgICBfRkNpLFxuICAgICAgICBfTUJXSVMsXG4gICAgICAgIF9EQyxcbiAgICAgICAgX01SQUlTLFxuICAgICAgICBfQkJPRkUsXG4gICAgICAgIF9NUkEsXG4gICAgICAgIF9QRixcbiAgICAgICAgX1NBQyxcbiAgICAgICAgX1RXSVMsXG4gICAgICAgIF9GUlQsXG4gICAgICAgIF9TQyxcbiAgICAgICAgX0FNS0VTQyxcbiAgICAgICAgX1NNS0VTQyxcbiAgICAgICAgX0REQkVTQyxcbiAgICAgICAgX0tNU0tBLFxuICAgICAgICBfTUMsXG4gICAgICAgIF9QUEMsXG4gICAgXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgMCxcbiAgICAgICAgMixcbiAgICAgICAgMSxcbiAgICAgICAgKCkgPT4gRmlsdGVyQ3JpdGVyaWEsXG4gICAgICAgIDEsXG4gICAgICAgICgpID0+IERlc3RpbmF0aW9uQ29uZmlnLFxuICAgICAgICAxLFxuICAgICAgICAyLFxuICAgICAgICAxLFxuICAgICAgICAxLFxuICAgICAgICAoKSA9PiBTb3VyY2VBY2Nlc3NDb25maWd1cmF0aW9ucyxcbiAgICAgICAgMSxcbiAgICAgICAgNjQgfCAwLFxuICAgICAgICAoKSA9PiBTY2FsaW5nQ29uZmlnLFxuICAgICAgICAoKSA9PiBBbWF6b25NYW5hZ2VkS2Fma2FFdmVudFNvdXJjZUNvbmZpZyxcbiAgICAgICAgKCkgPT4gU2VsZk1hbmFnZWRLYWZrYUV2ZW50U291cmNlQ29uZmlnLFxuICAgICAgICAoKSA9PiBEb2N1bWVudERCRXZlbnRTb3VyY2VDb25maWcsXG4gICAgICAgIDAsXG4gICAgICAgICgpID0+IEV2ZW50U291cmNlTWFwcGluZ01ldHJpY3NDb25maWcsXG4gICAgICAgICgpID0+IFByb3Zpc2lvbmVkUG9sbGVyQ29uZmlnLFxuICAgIF0sXG5dO1xudmFyIFVwZGF0ZUZ1bmN0aW9uQ29kZVJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfVUZDUixcbiAgICAwLFxuICAgIFtfRk4sIF9aRiwgX1NCLCBfU0ssIF9TT1YsIF9JVSwgX1B1LCBfRFIsIF9SSSwgX0FyLCBfU0tNU0tBLCBfUFR1XSxcbiAgICBbWzAsIDFdLCBbKCkgPT4gX0Jsb2IsIDBdLCAwLCAwLCAwLCAwLCAyLCAyLCAwLCA2NCB8IDAsIDAsIDBdLFxuXTtcbnZhciBVcGRhdGVGdW5jdGlvbkNvbmZpZ3VyYXRpb25SZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1VGQ1JwLFxuICAgIDAsXG4gICAgW19GTiwgX1JvLCBfSCwgX0QsIF9ULCBfTVMsIF9WQywgX0VudiwgX1J1LCBfRExDLCBfS01TS0EsIF9UQywgX1JJLCBfTCwgX0ZTQywgX0lDLCBfRVMsIF9TU24sIF9MQywgX0NQQywgX0RDdV0sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIDAsXG4gICAgICAgIDAsXG4gICAgICAgIDAsXG4gICAgICAgIDEsXG4gICAgICAgIDEsXG4gICAgICAgICgpID0+IFZwY0NvbmZpZyxcbiAgICAgICAgWygpID0+IEVudmlyb25tZW50LCAwXSxcbiAgICAgICAgMCxcbiAgICAgICAgKCkgPT4gRGVhZExldHRlckNvbmZpZyxcbiAgICAgICAgMCxcbiAgICAgICAgKCkgPT4gVHJhY2luZ0NvbmZpZyxcbiAgICAgICAgMCxcbiAgICAgICAgNjQgfCAwLFxuICAgICAgICAoKSA9PiBGaWxlU3lzdGVtQ29uZmlnTGlzdCxcbiAgICAgICAgKCkgPT4gSW1hZ2VDb25maWcsXG4gICAgICAgICgpID0+IEVwaGVtZXJhbFN0b3JhZ2UsXG4gICAgICAgICgpID0+IFNuYXBTdGFydCxcbiAgICAgICAgKCkgPT4gTG9nZ2luZ0NvbmZpZyxcbiAgICAgICAgKCkgPT4gQ2FwYWNpdHlQcm92aWRlckNvbmZpZyxcbiAgICAgICAgKCkgPT4gRHVyYWJsZUNvbmZpZyxcbiAgICBdLFxuXTtcbnZhciBVcGRhdGVGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9VRkVJQ1IsXG4gICAgMCxcbiAgICBbX0ZOLCBfUSwgX01SQSwgX01FQUlTLCBfRENdLFxuICAgIFtbMCwgMV0sIFswLCB7IFtfaFFdOiBfUSB9XSwgMSwgMSwgKCkgPT4gRGVzdGluYXRpb25Db25maWddLFxuXTtcbnZhciBVcGRhdGVGdW5jdGlvblVybENvbmZpZ1JlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfVUZVQ1IsXG4gICAgMCxcbiAgICBbX0ZOLCBfUSwgX0FULCBfQ28sIF9JTV0sXG4gICAgW1swLCAxXSwgWzAsIHsgW19oUV06IF9RIH1dLCAwLCAoKSA9PiBDb3JzLCAwXSxcbl07XG52YXIgVXBkYXRlRnVuY3Rpb25VcmxDb25maWdSZXNwb25zZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9VRlVDUnAsXG4gICAgMCxcbiAgICBbX0ZVLCBfRkEsIF9BVCwgX0NvLCBfQ1RyLCBfTE1ULCBfSU1dLFxuICAgIFswLCAwLCAwLCAoKSA9PiBDb3JzLCAwLCAwLCAwXSxcbl07XG52YXIgVnBjQ29uZmlnID0gWzMsIG4wLCBfVkMsIDAsIFtfU0l1LCBfU0dJLCBfSUFGRFNdLCBbNjQgfCAwLCA2NCB8IDAsIDJdXTtcbnZhciBWcGNDb25maWdSZXNwb25zZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9WQ1IsXG4gICAgMCxcbiAgICBbX1NJdSwgX1NHSSwgX1ZJLCBfSUFGRFNdLFxuICAgIFs2NCB8IDAsIDY0IHwgMCwgMCwgMl0sXG5dO1xudmFyIFdhaXRDYW5jZWxsZWREZXRhaWxzID0gWzMsIG4wLCBfV0NELCAwLCBbX0VdLCBbWygpID0+IEV2ZW50RXJyb3IsIDBdXV07XG52YXIgV2FpdERldGFpbHMgPSBbMywgbjAsIF9XRGEsIDAsIFtfU0VUXSwgWzRdXTtcbnZhciBXYWl0T3B0aW9ucyA9IFszLCBuMCwgX1dPLCAwLCBbX1dTXSwgWzFdXTtcbnZhciBXYWl0U3RhcnRlZERldGFpbHMgPSBbMywgbjAsIF9XU0QsIDAsIFtfRHUsIF9TRVRdLCBbMSwgNF1dO1xudmFyIFdhaXRTdWNjZWVkZWREZXRhaWxzID0gWzMsIG4wLCBfV1NEYSwgMCwgW19EdV0sIFsxXV07XG52YXIgX19Vbml0ID0gXCJ1bml0XCI7XG52YXIgTGFtYmRhU2VydmljZUV4Y2VwdGlvbiA9IFstMywgX3NtLCBcIkxhbWJkYVNlcnZpY2VFeGNlcHRpb25cIiwgMCwgW10sIFtdXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKF9zbSkucmVnaXN0ZXJFcnJvcihMYW1iZGFTZXJ2aWNlRXhjZXB0aW9uLCBMYW1iZGFTZXJ2aWNlRXhjZXB0aW9uJDEpO1xudmFyIEFsaWFzTGlzdCA9IFsxLCBuMCwgX0FMbCwgMCwgKCkgPT4gQWxpYXNDb25maWd1cmF0aW9uXTtcbnZhciBDYXBhY2l0eVByb3ZpZGVyU2NhbGluZ1BvbGljaWVzTGlzdCA9IFtcbiAgICAxLFxuICAgIG4wLFxuICAgIF9DUFNQTCxcbiAgICAwLFxuICAgICgpID0+IFRhcmdldFRyYWNraW5nU2NhbGluZ1BvbGljeSxcbl07XG52YXIgQ2FwYWNpdHlQcm92aWRlcnNMaXN0ID0gWzEsIG4wLCBfQ1BMLCAwLCAoKSA9PiBDYXBhY2l0eVByb3ZpZGVyXTtcbnZhciBDb2RlU2lnbmluZ0NvbmZpZ0xpc3QgPSBbMSwgbjAsIF9DU0NMLCAwLCAoKSA9PiBDb2RlU2lnbmluZ0NvbmZpZ107XG52YXIgRHVyYWJsZUV4ZWN1dGlvbnMgPSBbMSwgbjAsIF9ERSwgMCwgKCkgPT4gRXhlY3V0aW9uXTtcbnZhciBFdmVudHMgPSBbMSwgbjAsIF9FdmUsIDAsIFsoKSA9PiBFdmVudCwgMF1dO1xudmFyIEV2ZW50U291cmNlTWFwcGluZ3NMaXN0ID0gWzEsIG4wLCBfRVNNTCwgMCwgKCkgPT4gRXZlbnRTb3VyY2VNYXBwaW5nQ29uZmlndXJhdGlvbl07XG52YXIgRmlsZVN5c3RlbUNvbmZpZ0xpc3QgPSBbMSwgbjAsIF9GU0NMLCAwLCAoKSA9PiBGaWxlU3lzdGVtQ29uZmlnXTtcbnZhciBGaWx0ZXJMaXN0ID0gWzEsIG4wLCBfRkwsIDAsICgpID0+IEZpbHRlcl07XG52YXIgRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0xpc3QgPSBbMSwgbjAsIF9GRUlDTCwgMCwgKCkgPT4gRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ107XG52YXIgRnVuY3Rpb25MaXN0ID0gWzEsIG4wLCBfRkx1LCAwLCBbKCkgPT4gRnVuY3Rpb25Db25maWd1cmF0aW9uLCAwXV07XG52YXIgRnVuY3Rpb25VcmxDb25maWdMaXN0ID0gWzEsIG4wLCBfRlVDTCwgMCwgKCkgPT4gRnVuY3Rpb25VcmxDb25maWddO1xudmFyIEZ1bmN0aW9uVmVyc2lvbnNCeUNhcGFjaXR5UHJvdmlkZXJMaXN0ID0gW1xuICAgIDEsXG4gICAgbjAsXG4gICAgX0ZWQkNQTCxcbiAgICAwLFxuICAgICgpID0+IEZ1bmN0aW9uVmVyc2lvbnNCeUNhcGFjaXR5UHJvdmlkZXJMaXN0SXRlbSxcbl07XG52YXIgS2Fma2FTY2hlbWFSZWdpc3RyeUFjY2Vzc0NvbmZpZ0xpc3QgPSBbXG4gICAgMSxcbiAgICBuMCxcbiAgICBfS1NSQUNMLFxuICAgIDAsXG4gICAgKCkgPT4gS2Fma2FTY2hlbWFSZWdpc3RyeUFjY2Vzc0NvbmZpZyxcbl07XG52YXIgS2Fma2FTY2hlbWFWYWxpZGF0aW9uQ29uZmlnTGlzdCA9IFsxLCBuMCwgX0tTVkNMLCAwLCAoKSA9PiBLYWZrYVNjaGVtYVZhbGlkYXRpb25Db25maWddO1xudmFyIExheWVyc0xpc3QgPSBbMSwgbjAsIF9MTCwgMCwgKCkgPT4gTGF5ZXJzTGlzdEl0ZW1dO1xudmFyIExheWVyc1JlZmVyZW5jZUxpc3QgPSBbMSwgbjAsIF9MUkwsIDAsICgpID0+IExheWVyXTtcbnZhciBMYXllclZlcnNpb25zTGlzdCA9IFsxLCBuMCwgX0xWTCwgMCwgKCkgPT4gTGF5ZXJWZXJzaW9uc0xpc3RJdGVtXTtcbnZhciBPcGVyYXRpb25zID0gWzEsIG4wLCBfTywgMCwgWygpID0+IE9wZXJhdGlvbiwgMF1dO1xudmFyIE9wZXJhdGlvblVwZGF0ZXMgPSBbMSwgbjAsIF9PVXAsIDAsIFsoKSA9PiBPcGVyYXRpb25VcGRhdGUsIDBdXTtcbnZhciBQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnTGlzdCA9IFtcbiAgICAxLFxuICAgIG4wLFxuICAgIF9QQ0NMLFxuICAgIDAsXG4gICAgKCkgPT4gUHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ0xpc3RJdGVtLFxuXTtcbnZhciBTb3VyY2VBY2Nlc3NDb25maWd1cmF0aW9ucyA9IFsxLCBuMCwgX1NBQywgMCwgKCkgPT4gU291cmNlQWNjZXNzQ29uZmlndXJhdGlvbl07XG52YXIgU3RhY2tUcmFjZUVudHJpZXMgPSBbMSwgbjAsIF9TVEV0LCAwLCBbKCkgPT4gU3RhY2tUcmFjZUVudHJ5LCAwXV07XG52YXIgRW52aXJvbm1lbnRWYXJpYWJsZXMgPSBbXG4gICAgMixcbiAgICBuMCxcbiAgICBfRVZuLFxuICAgIDgsXG4gICAgWygpID0+IEVudmlyb25tZW50VmFyaWFibGVOYW1lLCAwXSxcbiAgICBbKCkgPT4gRW52aXJvbm1lbnRWYXJpYWJsZVZhbHVlLCAwXSxcbl07XG52YXIgSW52b2tlV2l0aFJlc3BvbnNlU3RyZWFtUmVzcG9uc2VFdmVudCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9JV1JTUkUsXG4gICAgeyBbX3NdOiAxIH0sXG4gICAgW19QQ2EsIF9JQ25dLFxuICAgIFtbKCkgPT4gSW52b2tlUmVzcG9uc2VTdHJlYW1VcGRhdGUsIDBdLCAoKSA9PiBJbnZva2VXaXRoUmVzcG9uc2VTdHJlYW1Db21wbGV0ZUV2ZW50XSxcbl07XG52YXIgQWRkTGF5ZXJWZXJzaW9uUGVybWlzc2lvbiA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9BTFZQLFxuICAgIHsgW19oXTogW1wiUE9TVFwiLCBcIi8yMDE4LTEwLTMxL2xheWVycy97TGF5ZXJOYW1lfS92ZXJzaW9ucy97VmVyc2lvbk51bWJlcn0vcG9saWN5XCIsIDIwMV0gfSxcbiAgICAoKSA9PiBBZGRMYXllclZlcnNpb25QZXJtaXNzaW9uUmVxdWVzdCxcbiAgICAoKSA9PiBBZGRMYXllclZlcnNpb25QZXJtaXNzaW9uUmVzcG9uc2UsXG5dO1xudmFyIEFkZFBlcm1pc3Npb24gPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfQVBkLFxuICAgIHsgW19oXTogW1wiUE9TVFwiLCBcIi8yMDE1LTAzLTMxL2Z1bmN0aW9ucy97RnVuY3Rpb25OYW1lfS9wb2xpY3lcIiwgMjAxXSB9LFxuICAgICgpID0+IEFkZFBlcm1pc3Npb25SZXF1ZXN0LFxuICAgICgpID0+IEFkZFBlcm1pc3Npb25SZXNwb25zZSxcbl07XG52YXIgQ2hlY2twb2ludER1cmFibGVFeGVjdXRpb24gPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfQ0RFLFxuICAgIHsgW19oXTogW1wiUE9TVFwiLCBcIi8yMDI1LTEyLTAxL2R1cmFibGUtZXhlY3V0aW9ucy97RHVyYWJsZUV4ZWN1dGlvbkFybn0vY2hlY2twb2ludFwiLCAyMDBdIH0sXG4gICAgKCkgPT4gQ2hlY2twb2ludER1cmFibGVFeGVjdXRpb25SZXF1ZXN0LFxuICAgICgpID0+IENoZWNrcG9pbnREdXJhYmxlRXhlY3V0aW9uUmVzcG9uc2UsXG5dO1xudmFyIENyZWF0ZUFsaWFzID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0NBcixcbiAgICB7IFtfaF06IFtcIlBPU1RcIiwgXCIvMjAxNS0wMy0zMS9mdW5jdGlvbnMve0Z1bmN0aW9uTmFtZX0vYWxpYXNlc1wiLCAyMDFdIH0sXG4gICAgKCkgPT4gQ3JlYXRlQWxpYXNSZXF1ZXN0LFxuICAgICgpID0+IEFsaWFzQ29uZmlndXJhdGlvbixcbl07XG52YXIgQ3JlYXRlQ2FwYWNpdHlQcm92aWRlciA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9DQ1AsXG4gICAgeyBbX2hdOiBbXCJQT1NUXCIsIFwiLzIwMjUtMTEtMzAvY2FwYWNpdHktcHJvdmlkZXJzXCIsIDIwMl0gfSxcbiAgICAoKSA9PiBDcmVhdGVDYXBhY2l0eVByb3ZpZGVyUmVxdWVzdCxcbiAgICAoKSA9PiBDcmVhdGVDYXBhY2l0eVByb3ZpZGVyUmVzcG9uc2UsXG5dO1xudmFyIENyZWF0ZUNvZGVTaWduaW5nQ29uZmlnID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0NDU0MsXG4gICAgeyBbX2hdOiBbXCJQT1NUXCIsIFwiLzIwMjAtMDQtMjIvY29kZS1zaWduaW5nLWNvbmZpZ3NcIiwgMjAxXSB9LFxuICAgICgpID0+IENyZWF0ZUNvZGVTaWduaW5nQ29uZmlnUmVxdWVzdCxcbiAgICAoKSA9PiBDcmVhdGVDb2RlU2lnbmluZ0NvbmZpZ1Jlc3BvbnNlLFxuXTtcbnZhciBDcmVhdGVFdmVudFNvdXJjZU1hcHBpbmcgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfQ0VTTSxcbiAgICB7IFtfaF06IFtcIlBPU1RcIiwgXCIvMjAxNS0wMy0zMS9ldmVudC1zb3VyY2UtbWFwcGluZ3NcIiwgMjAyXSB9LFxuICAgICgpID0+IENyZWF0ZUV2ZW50U291cmNlTWFwcGluZ1JlcXVlc3QsXG4gICAgKCkgPT4gRXZlbnRTb3VyY2VNYXBwaW5nQ29uZmlndXJhdGlvbixcbl07XG52YXIgQ3JlYXRlRnVuY3Rpb24gPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfQ0YsXG4gICAgeyBbX2hdOiBbXCJQT1NUXCIsIFwiLzIwMTUtMDMtMzEvZnVuY3Rpb25zXCIsIDIwMV0gfSxcbiAgICAoKSA9PiBDcmVhdGVGdW5jdGlvblJlcXVlc3QsXG4gICAgKCkgPT4gRnVuY3Rpb25Db25maWd1cmF0aW9uLFxuXTtcbnZhciBDcmVhdGVGdW5jdGlvblVybENvbmZpZyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9DRlVDLFxuICAgIHsgW19oXTogW1wiUE9TVFwiLCBcIi8yMDIxLTEwLTMxL2Z1bmN0aW9ucy97RnVuY3Rpb25OYW1lfS91cmxcIiwgMjAxXSB9LFxuICAgICgpID0+IENyZWF0ZUZ1bmN0aW9uVXJsQ29uZmlnUmVxdWVzdCxcbiAgICAoKSA9PiBDcmVhdGVGdW5jdGlvblVybENvbmZpZ1Jlc3BvbnNlLFxuXTtcbnZhciBEZWxldGVBbGlhcyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9EQSxcbiAgICB7IFtfaF06IFtcIkRFTEVURVwiLCBcIi8yMDE1LTAzLTMxL2Z1bmN0aW9ucy97RnVuY3Rpb25OYW1lfS9hbGlhc2VzL3tOYW1lfVwiLCAyMDRdIH0sXG4gICAgKCkgPT4gRGVsZXRlQWxpYXNSZXF1ZXN0LFxuICAgICgpID0+IF9fVW5pdCxcbl07XG52YXIgRGVsZXRlQ2FwYWNpdHlQcm92aWRlciA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9EQ1AsXG4gICAgeyBbX2hdOiBbXCJERUxFVEVcIiwgXCIvMjAyNS0xMS0zMC9jYXBhY2l0eS1wcm92aWRlcnMve0NhcGFjaXR5UHJvdmlkZXJOYW1lfVwiLCAyMDJdIH0sXG4gICAgKCkgPT4gRGVsZXRlQ2FwYWNpdHlQcm92aWRlclJlcXVlc3QsXG4gICAgKCkgPT4gRGVsZXRlQ2FwYWNpdHlQcm92aWRlclJlc3BvbnNlLFxuXTtcbnZhciBEZWxldGVDb2RlU2lnbmluZ0NvbmZpZyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9EQ1NDLFxuICAgIHsgW19oXTogW1wiREVMRVRFXCIsIFwiLzIwMjAtMDQtMjIvY29kZS1zaWduaW5nLWNvbmZpZ3Mve0NvZGVTaWduaW5nQ29uZmlnQXJufVwiLCAyMDRdIH0sXG4gICAgKCkgPT4gRGVsZXRlQ29kZVNpZ25pbmdDb25maWdSZXF1ZXN0LFxuICAgICgpID0+IERlbGV0ZUNvZGVTaWduaW5nQ29uZmlnUmVzcG9uc2UsXG5dO1xudmFyIERlbGV0ZUV2ZW50U291cmNlTWFwcGluZyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9ERVNNLFxuICAgIHsgW19oXTogW1wiREVMRVRFXCIsIFwiLzIwMTUtMDMtMzEvZXZlbnQtc291cmNlLW1hcHBpbmdzL3tVVUlEfVwiLCAyMDJdIH0sXG4gICAgKCkgPT4gRGVsZXRlRXZlbnRTb3VyY2VNYXBwaW5nUmVxdWVzdCxcbiAgICAoKSA9PiBFdmVudFNvdXJjZU1hcHBpbmdDb25maWd1cmF0aW9uLFxuXTtcbnZhciBEZWxldGVGdW5jdGlvbiA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9ERixcbiAgICB7IFtfaF06IFtcIkRFTEVURVwiLCBcIi8yMDE1LTAzLTMxL2Z1bmN0aW9ucy97RnVuY3Rpb25OYW1lfVwiLCAyMDBdIH0sXG4gICAgKCkgPT4gRGVsZXRlRnVuY3Rpb25SZXF1ZXN0LFxuICAgICgpID0+IERlbGV0ZUZ1bmN0aW9uUmVzcG9uc2UsXG5dO1xudmFyIERlbGV0ZUZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWcgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfREZDU0MsXG4gICAgeyBbX2hdOiBbXCJERUxFVEVcIiwgXCIvMjAyMC0wNi0zMC9mdW5jdGlvbnMve0Z1bmN0aW9uTmFtZX0vY29kZS1zaWduaW5nLWNvbmZpZ1wiLCAyMDRdIH0sXG4gICAgKCkgPT4gRGVsZXRlRnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ1JlcXVlc3QsXG4gICAgKCkgPT4gX19Vbml0LFxuXTtcbnZhciBEZWxldGVGdW5jdGlvbkNvbmN1cnJlbmN5ID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0RGQyxcbiAgICB7IFtfaF06IFtcIkRFTEVURVwiLCBcIi8yMDE3LTEwLTMxL2Z1bmN0aW9ucy97RnVuY3Rpb25OYW1lfS9jb25jdXJyZW5jeVwiLCAyMDRdIH0sXG4gICAgKCkgPT4gRGVsZXRlRnVuY3Rpb25Db25jdXJyZW5jeVJlcXVlc3QsXG4gICAgKCkgPT4gX19Vbml0LFxuXTtcbnZhciBEZWxldGVGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0RGRUlDLFxuICAgIHsgW19oXTogW1wiREVMRVRFXCIsIFwiLzIwMTktMDktMjUvZnVuY3Rpb25zL3tGdW5jdGlvbk5hbWV9L2V2ZW50LWludm9rZS1jb25maWdcIiwgMjA0XSB9LFxuICAgICgpID0+IERlbGV0ZUZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdSZXF1ZXN0LFxuICAgICgpID0+IF9fVW5pdCxcbl07XG52YXIgRGVsZXRlRnVuY3Rpb25VcmxDb25maWcgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfREZVQyxcbiAgICB7IFtfaF06IFtcIkRFTEVURVwiLCBcIi8yMDIxLTEwLTMxL2Z1bmN0aW9ucy97RnVuY3Rpb25OYW1lfS91cmxcIiwgMjA0XSB9LFxuICAgICgpID0+IERlbGV0ZUZ1bmN0aW9uVXJsQ29uZmlnUmVxdWVzdCxcbiAgICAoKSA9PiBfX1VuaXQsXG5dO1xudmFyIERlbGV0ZUxheWVyVmVyc2lvbiA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9ETFYsXG4gICAgeyBbX2hdOiBbXCJERUxFVEVcIiwgXCIvMjAxOC0xMC0zMS9sYXllcnMve0xheWVyTmFtZX0vdmVyc2lvbnMve1ZlcnNpb25OdW1iZXJ9XCIsIDIwNF0gfSxcbiAgICAoKSA9PiBEZWxldGVMYXllclZlcnNpb25SZXF1ZXN0LFxuICAgICgpID0+IF9fVW5pdCxcbl07XG52YXIgRGVsZXRlUHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9EUENDLFxuICAgIHsgW19oXTogW1wiREVMRVRFXCIsIFwiLzIwMTktMDktMzAvZnVuY3Rpb25zL3tGdW5jdGlvbk5hbWV9L3Byb3Zpc2lvbmVkLWNvbmN1cnJlbmN5XCIsIDIwNF0gfSxcbiAgICAoKSA9PiBEZWxldGVQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnUmVxdWVzdCxcbiAgICAoKSA9PiBfX1VuaXQsXG5dO1xudmFyIEdldEFjY291bnRTZXR0aW5ncyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9HQVMsXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIvMjAxNi0wOC0xOS9hY2NvdW50LXNldHRpbmdzXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBHZXRBY2NvdW50U2V0dGluZ3NSZXF1ZXN0LFxuICAgICgpID0+IEdldEFjY291bnRTZXR0aW5nc1Jlc3BvbnNlLFxuXTtcbnZhciBHZXRBbGlhcyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9HQSxcbiAgICB7IFtfaF06IFtcIkdFVFwiLCBcIi8yMDE1LTAzLTMxL2Z1bmN0aW9ucy97RnVuY3Rpb25OYW1lfS9hbGlhc2VzL3tOYW1lfVwiLCAyMDBdIH0sXG4gICAgKCkgPT4gR2V0QWxpYXNSZXF1ZXN0LFxuICAgICgpID0+IEFsaWFzQ29uZmlndXJhdGlvbixcbl07XG52YXIgR2V0Q2FwYWNpdHlQcm92aWRlciA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9HQ1AsXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIvMjAyNS0xMS0zMC9jYXBhY2l0eS1wcm92aWRlcnMve0NhcGFjaXR5UHJvdmlkZXJOYW1lfVwiLCAyMDBdIH0sXG4gICAgKCkgPT4gR2V0Q2FwYWNpdHlQcm92aWRlclJlcXVlc3QsXG4gICAgKCkgPT4gR2V0Q2FwYWNpdHlQcm92aWRlclJlc3BvbnNlLFxuXTtcbnZhciBHZXRDb2RlU2lnbmluZ0NvbmZpZyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9HQ1NDLFxuICAgIHsgW19oXTogW1wiR0VUXCIsIFwiLzIwMjAtMDQtMjIvY29kZS1zaWduaW5nLWNvbmZpZ3Mve0NvZGVTaWduaW5nQ29uZmlnQXJufVwiLCAyMDBdIH0sXG4gICAgKCkgPT4gR2V0Q29kZVNpZ25pbmdDb25maWdSZXF1ZXN0LFxuICAgICgpID0+IEdldENvZGVTaWduaW5nQ29uZmlnUmVzcG9uc2UsXG5dO1xudmFyIEdldER1cmFibGVFeGVjdXRpb24gPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfR0RFLFxuICAgIHsgW19oXTogW1wiR0VUXCIsIFwiLzIwMjUtMTItMDEvZHVyYWJsZS1leGVjdXRpb25zL3tEdXJhYmxlRXhlY3V0aW9uQXJufVwiLCAyMDBdIH0sXG4gICAgKCkgPT4gR2V0RHVyYWJsZUV4ZWN1dGlvblJlcXVlc3QsXG4gICAgKCkgPT4gR2V0RHVyYWJsZUV4ZWN1dGlvblJlc3BvbnNlLFxuXTtcbnZhciBHZXREdXJhYmxlRXhlY3V0aW9uSGlzdG9yeSA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9HREVILFxuICAgIHsgW19oXTogW1wiR0VUXCIsIFwiLzIwMjUtMTItMDEvZHVyYWJsZS1leGVjdXRpb25zL3tEdXJhYmxlRXhlY3V0aW9uQXJufS9oaXN0b3J5XCIsIDIwMF0gfSxcbiAgICAoKSA9PiBHZXREdXJhYmxlRXhlY3V0aW9uSGlzdG9yeVJlcXVlc3QsXG4gICAgKCkgPT4gR2V0RHVyYWJsZUV4ZWN1dGlvbkhpc3RvcnlSZXNwb25zZSxcbl07XG52YXIgR2V0RHVyYWJsZUV4ZWN1dGlvblN0YXRlID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0dERVMsXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIvMjAyNS0xMi0wMS9kdXJhYmxlLWV4ZWN1dGlvbnMve0R1cmFibGVFeGVjdXRpb25Bcm59L3N0YXRlXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBHZXREdXJhYmxlRXhlY3V0aW9uU3RhdGVSZXF1ZXN0LFxuICAgICgpID0+IEdldER1cmFibGVFeGVjdXRpb25TdGF0ZVJlc3BvbnNlLFxuXTtcbnZhciBHZXRFdmVudFNvdXJjZU1hcHBpbmcgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfR0VTTSxcbiAgICB7IFtfaF06IFtcIkdFVFwiLCBcIi8yMDE1LTAzLTMxL2V2ZW50LXNvdXJjZS1tYXBwaW5ncy97VVVJRH1cIiwgMjAwXSB9LFxuICAgICgpID0+IEdldEV2ZW50U291cmNlTWFwcGluZ1JlcXVlc3QsXG4gICAgKCkgPT4gRXZlbnRTb3VyY2VNYXBwaW5nQ29uZmlndXJhdGlvbixcbl07XG52YXIgR2V0RnVuY3Rpb24gPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfR0YsXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIvMjAxNS0wMy0zMS9mdW5jdGlvbnMve0Z1bmN0aW9uTmFtZX1cIiwgMjAwXSB9LFxuICAgICgpID0+IEdldEZ1bmN0aW9uUmVxdWVzdCxcbiAgICAoKSA9PiBHZXRGdW5jdGlvblJlc3BvbnNlLFxuXTtcbnZhciBHZXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0dGQ1NDLFxuICAgIHsgW19oXTogW1wiR0VUXCIsIFwiLzIwMjAtMDYtMzAvZnVuY3Rpb25zL3tGdW5jdGlvbk5hbWV9L2NvZGUtc2lnbmluZy1jb25maWdcIiwgMjAwXSB9LFxuICAgICgpID0+IEdldEZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdSZXF1ZXN0LFxuICAgICgpID0+IEdldEZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdSZXNwb25zZSxcbl07XG52YXIgR2V0RnVuY3Rpb25Db25jdXJyZW5jeSA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9HRkMsXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIvMjAxOS0wOS0zMC9mdW5jdGlvbnMve0Z1bmN0aW9uTmFtZX0vY29uY3VycmVuY3lcIiwgMjAwXSB9LFxuICAgICgpID0+IEdldEZ1bmN0aW9uQ29uY3VycmVuY3lSZXF1ZXN0LFxuICAgICgpID0+IEdldEZ1bmN0aW9uQ29uY3VycmVuY3lSZXNwb25zZSxcbl07XG52YXIgR2V0RnVuY3Rpb25Db25maWd1cmF0aW9uID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0dGQ2UsXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIvMjAxNS0wMy0zMS9mdW5jdGlvbnMve0Z1bmN0aW9uTmFtZX0vY29uZmlndXJhdGlvblwiLCAyMDBdIH0sXG4gICAgKCkgPT4gR2V0RnVuY3Rpb25Db25maWd1cmF0aW9uUmVxdWVzdCxcbiAgICAoKSA9PiBGdW5jdGlvbkNvbmZpZ3VyYXRpb24sXG5dO1xudmFyIEdldEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWcgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfR0ZFSUMsXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIvMjAxOS0wOS0yNS9mdW5jdGlvbnMve0Z1bmN0aW9uTmFtZX0vZXZlbnQtaW52b2tlLWNvbmZpZ1wiLCAyMDBdIH0sXG4gICAgKCkgPT4gR2V0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ1JlcXVlc3QsXG4gICAgKCkgPT4gRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZyxcbl07XG52YXIgR2V0RnVuY3Rpb25SZWN1cnNpb25Db25maWcgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfR0ZSQyxcbiAgICB7IFtfaF06IFtcIkdFVFwiLCBcIi8yMDI0LTA4LTMxL2Z1bmN0aW9ucy97RnVuY3Rpb25OYW1lfS9yZWN1cnNpb24tY29uZmlnXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBHZXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZ1JlcXVlc3QsXG4gICAgKCkgPT4gR2V0RnVuY3Rpb25SZWN1cnNpb25Db25maWdSZXNwb25zZSxcbl07XG52YXIgR2V0RnVuY3Rpb25TY2FsaW5nQ29uZmlnID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0dGU0MsXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIvMjAyNS0xMS0zMC9mdW5jdGlvbnMve0Z1bmN0aW9uTmFtZX0vZnVuY3Rpb24tc2NhbGluZy1jb25maWdcIiwgMjAwXSB9LFxuICAgICgpID0+IEdldEZ1bmN0aW9uU2NhbGluZ0NvbmZpZ1JlcXVlc3QsXG4gICAgKCkgPT4gR2V0RnVuY3Rpb25TY2FsaW5nQ29uZmlnUmVzcG9uc2UsXG5dO1xudmFyIEdldEZ1bmN0aW9uVXJsQ29uZmlnID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0dGVUMsXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIvMjAyMS0xMC0zMS9mdW5jdGlvbnMve0Z1bmN0aW9uTmFtZX0vdXJsXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBHZXRGdW5jdGlvblVybENvbmZpZ1JlcXVlc3QsXG4gICAgKCkgPT4gR2V0RnVuY3Rpb25VcmxDb25maWdSZXNwb25zZSxcbl07XG52YXIgR2V0TGF5ZXJWZXJzaW9uID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0dMVixcbiAgICB7IFtfaF06IFtcIkdFVFwiLCBcIi8yMDE4LTEwLTMxL2xheWVycy97TGF5ZXJOYW1lfS92ZXJzaW9ucy97VmVyc2lvbk51bWJlcn1cIiwgMjAwXSB9LFxuICAgICgpID0+IEdldExheWVyVmVyc2lvblJlcXVlc3QsXG4gICAgKCkgPT4gR2V0TGF5ZXJWZXJzaW9uUmVzcG9uc2UsXG5dO1xudmFyIEdldExheWVyVmVyc2lvbkJ5QXJuID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0dMVkJBLFxuICAgIHsgW19oXTogW1wiR0VUXCIsIFwiLzIwMTgtMTAtMzEvbGF5ZXJzP2ZpbmQ9TGF5ZXJWZXJzaW9uXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBHZXRMYXllclZlcnNpb25CeUFyblJlcXVlc3QsXG4gICAgKCkgPT4gR2V0TGF5ZXJWZXJzaW9uUmVzcG9uc2UsXG5dO1xudmFyIEdldExheWVyVmVyc2lvblBvbGljeSA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9HTFZQLFxuICAgIHsgW19oXTogW1wiR0VUXCIsIFwiLzIwMTgtMTAtMzEvbGF5ZXJzL3tMYXllck5hbWV9L3ZlcnNpb25zL3tWZXJzaW9uTnVtYmVyfS9wb2xpY3lcIiwgMjAwXSB9LFxuICAgICgpID0+IEdldExheWVyVmVyc2lvblBvbGljeVJlcXVlc3QsXG4gICAgKCkgPT4gR2V0TGF5ZXJWZXJzaW9uUG9saWN5UmVzcG9uc2UsXG5dO1xudmFyIEdldFBvbGljeSA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9HUCxcbiAgICB7IFtfaF06IFtcIkdFVFwiLCBcIi8yMDE1LTAzLTMxL2Z1bmN0aW9ucy97RnVuY3Rpb25OYW1lfS9wb2xpY3lcIiwgMjAwXSB9LFxuICAgICgpID0+IEdldFBvbGljeVJlcXVlc3QsXG4gICAgKCkgPT4gR2V0UG9saWN5UmVzcG9uc2UsXG5dO1xudmFyIEdldFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWcgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfR1BDQyxcbiAgICB7IFtfaF06IFtcIkdFVFwiLCBcIi8yMDE5LTA5LTMwL2Z1bmN0aW9ucy97RnVuY3Rpb25OYW1lfS9wcm92aXNpb25lZC1jb25jdXJyZW5jeVwiLCAyMDBdIH0sXG4gICAgKCkgPT4gR2V0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ1JlcXVlc3QsXG4gICAgKCkgPT4gR2V0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ1Jlc3BvbnNlLFxuXTtcbnZhciBHZXRSdW50aW1lTWFuYWdlbWVudENvbmZpZyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9HUk1DLFxuICAgIHsgW19oXTogW1wiR0VUXCIsIFwiLzIwMjEtMDctMjAvZnVuY3Rpb25zL3tGdW5jdGlvbk5hbWV9L3J1bnRpbWUtbWFuYWdlbWVudC1jb25maWdcIiwgMjAwXSB9LFxuICAgICgpID0+IEdldFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnUmVxdWVzdCxcbiAgICAoKSA9PiBHZXRSdW50aW1lTWFuYWdlbWVudENvbmZpZ1Jlc3BvbnNlLFxuXTtcbnZhciBJbnZva2UgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfSW4sXG4gICAgeyBbX2hdOiBbXCJQT1NUXCIsIFwiLzIwMTUtMDMtMzEvZnVuY3Rpb25zL3tGdW5jdGlvbk5hbWV9L2ludm9jYXRpb25zXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBJbnZvY2F0aW9uUmVxdWVzdCxcbiAgICAoKSA9PiBJbnZvY2F0aW9uUmVzcG9uc2UsXG5dO1xudmFyIEludm9rZUFzeW5jID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0lBbixcbiAgICB7IFtfaF06IFtcIlBPU1RcIiwgXCIvMjAxNC0xMS0xMy9mdW5jdGlvbnMve0Z1bmN0aW9uTmFtZX0vaW52b2tlLWFzeW5jXCIsIDIwMl0gfSxcbiAgICAoKSA9PiBJbnZva2VBc3luY1JlcXVlc3QsXG4gICAgKCkgPT4gSW52b2tlQXN5bmNSZXNwb25zZSxcbl07XG52YXIgSW52b2tlV2l0aFJlc3BvbnNlU3RyZWFtID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0lXUlMsXG4gICAgeyBbX2hdOiBbXCJQT1NUXCIsIFwiLzIwMjEtMTEtMTUvZnVuY3Rpb25zL3tGdW5jdGlvbk5hbWV9L3Jlc3BvbnNlLXN0cmVhbWluZy1pbnZvY2F0aW9uc1wiLCAyMDBdIH0sXG4gICAgKCkgPT4gSW52b2tlV2l0aFJlc3BvbnNlU3RyZWFtUmVxdWVzdCxcbiAgICAoKSA9PiBJbnZva2VXaXRoUmVzcG9uc2VTdHJlYW1SZXNwb25zZSxcbl07XG52YXIgTGlzdEFsaWFzZXMgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfTEFpLFxuICAgIHsgW19oXTogW1wiR0VUXCIsIFwiLzIwMTUtMDMtMzEvZnVuY3Rpb25zL3tGdW5jdGlvbk5hbWV9L2FsaWFzZXNcIiwgMjAwXSB9LFxuICAgICgpID0+IExpc3RBbGlhc2VzUmVxdWVzdCxcbiAgICAoKSA9PiBMaXN0QWxpYXNlc1Jlc3BvbnNlLFxuXTtcbnZhciBMaXN0Q2FwYWNpdHlQcm92aWRlcnMgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfTENQLFxuICAgIHsgW19oXTogW1wiR0VUXCIsIFwiLzIwMjUtMTEtMzAvY2FwYWNpdHktcHJvdmlkZXJzXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBMaXN0Q2FwYWNpdHlQcm92aWRlcnNSZXF1ZXN0LFxuICAgICgpID0+IExpc3RDYXBhY2l0eVByb3ZpZGVyc1Jlc3BvbnNlLFxuXTtcbnZhciBMaXN0Q29kZVNpZ25pbmdDb25maWdzID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0xDU0MsXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIvMjAyMC0wNC0yMi9jb2RlLXNpZ25pbmctY29uZmlnc1wiLCAyMDBdIH0sXG4gICAgKCkgPT4gTGlzdENvZGVTaWduaW5nQ29uZmlnc1JlcXVlc3QsXG4gICAgKCkgPT4gTGlzdENvZGVTaWduaW5nQ29uZmlnc1Jlc3BvbnNlLFxuXTtcbnZhciBMaXN0RHVyYWJsZUV4ZWN1dGlvbnNCeUZ1bmN0aW9uID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0xERUJGLFxuICAgIHsgW19oXTogW1wiR0VUXCIsIFwiLzIwMjUtMTItMDEvZnVuY3Rpb25zL3tGdW5jdGlvbk5hbWV9L2R1cmFibGUtZXhlY3V0aW9uc1wiLCAyMDBdIH0sXG4gICAgKCkgPT4gTGlzdER1cmFibGVFeGVjdXRpb25zQnlGdW5jdGlvblJlcXVlc3QsXG4gICAgKCkgPT4gTGlzdER1cmFibGVFeGVjdXRpb25zQnlGdW5jdGlvblJlc3BvbnNlLFxuXTtcbnZhciBMaXN0RXZlbnRTb3VyY2VNYXBwaW5ncyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9MRVNNLFxuICAgIHsgW19oXTogW1wiR0VUXCIsIFwiLzIwMTUtMDMtMzEvZXZlbnQtc291cmNlLW1hcHBpbmdzXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBMaXN0RXZlbnRTb3VyY2VNYXBwaW5nc1JlcXVlc3QsXG4gICAgKCkgPT4gTGlzdEV2ZW50U291cmNlTWFwcGluZ3NSZXNwb25zZSxcbl07XG52YXIgTGlzdEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdzID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0xGRUlDLFxuICAgIHsgW19oXTogW1wiR0VUXCIsIFwiLzIwMTktMDktMjUvZnVuY3Rpb25zL3tGdW5jdGlvbk5hbWV9L2V2ZW50LWludm9rZS1jb25maWcvbGlzdFwiLCAyMDBdIH0sXG4gICAgKCkgPT4gTGlzdEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdzUmVxdWVzdCxcbiAgICAoKSA9PiBMaXN0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ3NSZXNwb25zZSxcbl07XG52YXIgTGlzdEZ1bmN0aW9ucyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9MRmksXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIvMjAxNS0wMy0zMS9mdW5jdGlvbnNcIiwgMjAwXSB9LFxuICAgICgpID0+IExpc3RGdW5jdGlvbnNSZXF1ZXN0LFxuICAgICgpID0+IExpc3RGdW5jdGlvbnNSZXNwb25zZSxcbl07XG52YXIgTGlzdEZ1bmN0aW9uc0J5Q29kZVNpZ25pbmdDb25maWcgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfTEZCQ1NDLFxuICAgIHsgW19oXTogW1wiR0VUXCIsIFwiLzIwMjAtMDQtMjIvY29kZS1zaWduaW5nLWNvbmZpZ3Mve0NvZGVTaWduaW5nQ29uZmlnQXJufS9mdW5jdGlvbnNcIiwgMjAwXSB9LFxuICAgICgpID0+IExpc3RGdW5jdGlvbnNCeUNvZGVTaWduaW5nQ29uZmlnUmVxdWVzdCxcbiAgICAoKSA9PiBMaXN0RnVuY3Rpb25zQnlDb2RlU2lnbmluZ0NvbmZpZ1Jlc3BvbnNlLFxuXTtcbnZhciBMaXN0RnVuY3Rpb25VcmxDb25maWdzID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0xGVUMsXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIvMjAyMS0xMC0zMS9mdW5jdGlvbnMve0Z1bmN0aW9uTmFtZX0vdXJsc1wiLCAyMDBdIH0sXG4gICAgKCkgPT4gTGlzdEZ1bmN0aW9uVXJsQ29uZmlnc1JlcXVlc3QsXG4gICAgKCkgPT4gTGlzdEZ1bmN0aW9uVXJsQ29uZmlnc1Jlc3BvbnNlLFxuXTtcbnZhciBMaXN0RnVuY3Rpb25WZXJzaW9uc0J5Q2FwYWNpdHlQcm92aWRlciA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9MRlZCQ1AsXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIvMjAyNS0xMS0zMC9jYXBhY2l0eS1wcm92aWRlcnMve0NhcGFjaXR5UHJvdmlkZXJOYW1lfS9mdW5jdGlvbi12ZXJzaW9uc1wiLCAyMDBdIH0sXG4gICAgKCkgPT4gTGlzdEZ1bmN0aW9uVmVyc2lvbnNCeUNhcGFjaXR5UHJvdmlkZXJSZXF1ZXN0LFxuICAgICgpID0+IExpc3RGdW5jdGlvblZlcnNpb25zQnlDYXBhY2l0eVByb3ZpZGVyUmVzcG9uc2UsXG5dO1xudmFyIExpc3RMYXllcnMgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfTExpLFxuICAgIHsgW19oXTogW1wiR0VUXCIsIFwiLzIwMTgtMTAtMzEvbGF5ZXJzXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBMaXN0TGF5ZXJzUmVxdWVzdCxcbiAgICAoKSA9PiBMaXN0TGF5ZXJzUmVzcG9uc2UsXG5dO1xudmFyIExpc3RMYXllclZlcnNpb25zID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0xMVixcbiAgICB7IFtfaF06IFtcIkdFVFwiLCBcIi8yMDE4LTEwLTMxL2xheWVycy97TGF5ZXJOYW1lfS92ZXJzaW9uc1wiLCAyMDBdIH0sXG4gICAgKCkgPT4gTGlzdExheWVyVmVyc2lvbnNSZXF1ZXN0LFxuICAgICgpID0+IExpc3RMYXllclZlcnNpb25zUmVzcG9uc2UsXG5dO1xudmFyIExpc3RQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlncyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9MUENDLFxuICAgIHsgW19oXTogW1wiR0VUXCIsIFwiLzIwMTktMDktMzAvZnVuY3Rpb25zL3tGdW5jdGlvbk5hbWV9L3Byb3Zpc2lvbmVkLWNvbmN1cnJlbmN5P0xpc3Q9QUxMXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBMaXN0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ3NSZXF1ZXN0LFxuICAgICgpID0+IExpc3RQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnc1Jlc3BvbnNlLFxuXTtcbnZhciBMaXN0VGFncyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9MVGksXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIvMjAxNy0wMy0zMS90YWdzL3tSZXNvdXJjZX1cIiwgMjAwXSB9LFxuICAgICgpID0+IExpc3RUYWdzUmVxdWVzdCxcbiAgICAoKSA9PiBMaXN0VGFnc1Jlc3BvbnNlLFxuXTtcbnZhciBMaXN0VmVyc2lvbnNCeUZ1bmN0aW9uID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0xWQkYsXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIvMjAxNS0wMy0zMS9mdW5jdGlvbnMve0Z1bmN0aW9uTmFtZX0vdmVyc2lvbnNcIiwgMjAwXSB9LFxuICAgICgpID0+IExpc3RWZXJzaW9uc0J5RnVuY3Rpb25SZXF1ZXN0LFxuICAgICgpID0+IExpc3RWZXJzaW9uc0J5RnVuY3Rpb25SZXNwb25zZSxcbl07XG52YXIgUHVibGlzaExheWVyVmVyc2lvbiA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9QTFYsXG4gICAgeyBbX2hdOiBbXCJQT1NUXCIsIFwiLzIwMTgtMTAtMzEvbGF5ZXJzL3tMYXllck5hbWV9L3ZlcnNpb25zXCIsIDIwMV0gfSxcbiAgICAoKSA9PiBQdWJsaXNoTGF5ZXJWZXJzaW9uUmVxdWVzdCxcbiAgICAoKSA9PiBQdWJsaXNoTGF5ZXJWZXJzaW9uUmVzcG9uc2UsXG5dO1xudmFyIFB1Ymxpc2hWZXJzaW9uID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX1BWLFxuICAgIHsgW19oXTogW1wiUE9TVFwiLCBcIi8yMDE1LTAzLTMxL2Z1bmN0aW9ucy97RnVuY3Rpb25OYW1lfS92ZXJzaW9uc1wiLCAyMDFdIH0sXG4gICAgKCkgPT4gUHVibGlzaFZlcnNpb25SZXF1ZXN0LFxuICAgICgpID0+IEZ1bmN0aW9uQ29uZmlndXJhdGlvbixcbl07XG52YXIgUHV0RnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9QRkNTQyxcbiAgICB7IFtfaF06IFtcIlBVVFwiLCBcIi8yMDIwLTA2LTMwL2Z1bmN0aW9ucy97RnVuY3Rpb25OYW1lfS9jb2RlLXNpZ25pbmctY29uZmlnXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBQdXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnUmVxdWVzdCxcbiAgICAoKSA9PiBQdXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnUmVzcG9uc2UsXG5dO1xudmFyIFB1dEZ1bmN0aW9uQ29uY3VycmVuY3kgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfUEZDLFxuICAgIHsgW19oXTogW1wiUFVUXCIsIFwiLzIwMTctMTAtMzEvZnVuY3Rpb25zL3tGdW5jdGlvbk5hbWV9L2NvbmN1cnJlbmN5XCIsIDIwMF0gfSxcbiAgICAoKSA9PiBQdXRGdW5jdGlvbkNvbmN1cnJlbmN5UmVxdWVzdCxcbiAgICAoKSA9PiBDb25jdXJyZW5jeSxcbl07XG52YXIgUHV0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9QRkVJQyxcbiAgICB7IFtfaF06IFtcIlBVVFwiLCBcIi8yMDE5LTA5LTI1L2Z1bmN0aW9ucy97RnVuY3Rpb25OYW1lfS9ldmVudC1pbnZva2UtY29uZmlnXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBQdXRGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnUmVxdWVzdCxcbiAgICAoKSA9PiBGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnLFxuXTtcbnZhciBQdXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9QRlJDLFxuICAgIHsgW19oXTogW1wiUFVUXCIsIFwiLzIwMjQtMDgtMzEvZnVuY3Rpb25zL3tGdW5jdGlvbk5hbWV9L3JlY3Vyc2lvbi1jb25maWdcIiwgMjAwXSB9LFxuICAgICgpID0+IFB1dEZ1bmN0aW9uUmVjdXJzaW9uQ29uZmlnUmVxdWVzdCxcbiAgICAoKSA9PiBQdXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZ1Jlc3BvbnNlLFxuXTtcbnZhciBQdXRGdW5jdGlvblNjYWxpbmdDb25maWcgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfUEZTQyxcbiAgICB7IFtfaF06IFtcIlBVVFwiLCBcIi8yMDI1LTExLTMwL2Z1bmN0aW9ucy97RnVuY3Rpb25OYW1lfS9mdW5jdGlvbi1zY2FsaW5nLWNvbmZpZ1wiLCAyMDJdIH0sXG4gICAgKCkgPT4gUHV0RnVuY3Rpb25TY2FsaW5nQ29uZmlnUmVxdWVzdCxcbiAgICAoKSA9PiBQdXRGdW5jdGlvblNjYWxpbmdDb25maWdSZXNwb25zZSxcbl07XG52YXIgUHV0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9QUENDLFxuICAgIHsgW19oXTogW1wiUFVUXCIsIFwiLzIwMTktMDktMzAvZnVuY3Rpb25zL3tGdW5jdGlvbk5hbWV9L3Byb3Zpc2lvbmVkLWNvbmN1cnJlbmN5XCIsIDIwMl0gfSxcbiAgICAoKSA9PiBQdXRQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnUmVxdWVzdCxcbiAgICAoKSA9PiBQdXRQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnUmVzcG9uc2UsXG5dO1xudmFyIFB1dFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX1BSTUMsXG4gICAgeyBbX2hdOiBbXCJQVVRcIiwgXCIvMjAyMS0wNy0yMC9mdW5jdGlvbnMve0Z1bmN0aW9uTmFtZX0vcnVudGltZS1tYW5hZ2VtZW50LWNvbmZpZ1wiLCAyMDBdIH0sXG4gICAgKCkgPT4gUHV0UnVudGltZU1hbmFnZW1lbnRDb25maWdSZXF1ZXN0LFxuICAgICgpID0+IFB1dFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnUmVzcG9uc2UsXG5dO1xudmFyIFJlbW92ZUxheWVyVmVyc2lvblBlcm1pc3Npb24gPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfUkxWUCxcbiAgICB7IFtfaF06IFtcIkRFTEVURVwiLCBcIi8yMDE4LTEwLTMxL2xheWVycy97TGF5ZXJOYW1lfS92ZXJzaW9ucy97VmVyc2lvbk51bWJlcn0vcG9saWN5L3tTdGF0ZW1lbnRJZH1cIiwgMjA0XSB9LFxuICAgICgpID0+IFJlbW92ZUxheWVyVmVyc2lvblBlcm1pc3Npb25SZXF1ZXN0LFxuICAgICgpID0+IF9fVW5pdCxcbl07XG52YXIgUmVtb3ZlUGVybWlzc2lvbiA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9SUCxcbiAgICB7IFtfaF06IFtcIkRFTEVURVwiLCBcIi8yMDE1LTAzLTMxL2Z1bmN0aW9ucy97RnVuY3Rpb25OYW1lfS9wb2xpY3kve1N0YXRlbWVudElkfVwiLCAyMDRdIH0sXG4gICAgKCkgPT4gUmVtb3ZlUGVybWlzc2lvblJlcXVlc3QsXG4gICAgKCkgPT4gX19Vbml0LFxuXTtcbnZhciBTZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrRmFpbHVyZSA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9TREVDRixcbiAgICB7IFtfaF06IFtcIlBPU1RcIiwgXCIvMjAyNS0xMi0wMS9kdXJhYmxlLWV4ZWN1dGlvbi1jYWxsYmFja3Mve0NhbGxiYWNrSWR9L2ZhaWxcIiwgMjAwXSB9LFxuICAgICgpID0+IFNlbmREdXJhYmxlRXhlY3V0aW9uQ2FsbGJhY2tGYWlsdXJlUmVxdWVzdCxcbiAgICAoKSA9PiBTZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrRmFpbHVyZVJlc3BvbnNlLFxuXTtcbnZhciBTZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrSGVhcnRiZWF0ID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX1NERUNILFxuICAgIHsgW19oXTogW1wiUE9TVFwiLCBcIi8yMDI1LTEyLTAxL2R1cmFibGUtZXhlY3V0aW9uLWNhbGxiYWNrcy97Q2FsbGJhY2tJZH0vaGVhcnRiZWF0XCIsIDIwMF0gfSxcbiAgICAoKSA9PiBTZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrSGVhcnRiZWF0UmVxdWVzdCxcbiAgICAoKSA9PiBTZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrSGVhcnRiZWF0UmVzcG9uc2UsXG5dO1xudmFyIFNlbmREdXJhYmxlRXhlY3V0aW9uQ2FsbGJhY2tTdWNjZXNzID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX1NERUNTLFxuICAgIHsgW19oXTogW1wiUE9TVFwiLCBcIi8yMDI1LTEyLTAxL2R1cmFibGUtZXhlY3V0aW9uLWNhbGxiYWNrcy97Q2FsbGJhY2tJZH0vc3VjY2VlZFwiLCAyMDBdIH0sXG4gICAgKCkgPT4gU2VuZER1cmFibGVFeGVjdXRpb25DYWxsYmFja1N1Y2Nlc3NSZXF1ZXN0LFxuICAgICgpID0+IFNlbmREdXJhYmxlRXhlY3V0aW9uQ2FsbGJhY2tTdWNjZXNzUmVzcG9uc2UsXG5dO1xudmFyIFN0b3BEdXJhYmxlRXhlY3V0aW9uID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX1NERSxcbiAgICB7IFtfaF06IFtcIlBPU1RcIiwgXCIvMjAyNS0xMi0wMS9kdXJhYmxlLWV4ZWN1dGlvbnMve0R1cmFibGVFeGVjdXRpb25Bcm59L3N0b3BcIiwgMjAwXSB9LFxuICAgICgpID0+IFN0b3BEdXJhYmxlRXhlY3V0aW9uUmVxdWVzdCxcbiAgICAoKSA9PiBTdG9wRHVyYWJsZUV4ZWN1dGlvblJlc3BvbnNlLFxuXTtcbnZhciBUYWdSZXNvdXJjZSA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9UUixcbiAgICB7IFtfaF06IFtcIlBPU1RcIiwgXCIvMjAxNy0wMy0zMS90YWdzL3tSZXNvdXJjZX1cIiwgMjA0XSB9LFxuICAgICgpID0+IFRhZ1Jlc291cmNlUmVxdWVzdCxcbiAgICAoKSA9PiBfX1VuaXQsXG5dO1xudmFyIFVudGFnUmVzb3VyY2UgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfVVIsXG4gICAgeyBbX2hdOiBbXCJERUxFVEVcIiwgXCIvMjAxNy0wMy0zMS90YWdzL3tSZXNvdXJjZX1cIiwgMjA0XSB9LFxuICAgICgpID0+IFVudGFnUmVzb3VyY2VSZXF1ZXN0LFxuICAgICgpID0+IF9fVW5pdCxcbl07XG52YXIgVXBkYXRlQWxpYXMgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfVUEsXG4gICAgeyBbX2hdOiBbXCJQVVRcIiwgXCIvMjAxNS0wMy0zMS9mdW5jdGlvbnMve0Z1bmN0aW9uTmFtZX0vYWxpYXNlcy97TmFtZX1cIiwgMjAwXSB9LFxuICAgICgpID0+IFVwZGF0ZUFsaWFzUmVxdWVzdCxcbiAgICAoKSA9PiBBbGlhc0NvbmZpZ3VyYXRpb24sXG5dO1xudmFyIFVwZGF0ZUNhcGFjaXR5UHJvdmlkZXIgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfVUNQLFxuICAgIHsgW19oXTogW1wiUFVUXCIsIFwiLzIwMjUtMTEtMzAvY2FwYWNpdHktcHJvdmlkZXJzL3tDYXBhY2l0eVByb3ZpZGVyTmFtZX1cIiwgMjAyXSB9LFxuICAgICgpID0+IFVwZGF0ZUNhcGFjaXR5UHJvdmlkZXJSZXF1ZXN0LFxuICAgICgpID0+IFVwZGF0ZUNhcGFjaXR5UHJvdmlkZXJSZXNwb25zZSxcbl07XG52YXIgVXBkYXRlQ29kZVNpZ25pbmdDb25maWcgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfVUNTQyxcbiAgICB7IFtfaF06IFtcIlBVVFwiLCBcIi8yMDIwLTA0LTIyL2NvZGUtc2lnbmluZy1jb25maWdzL3tDb2RlU2lnbmluZ0NvbmZpZ0Fybn1cIiwgMjAwXSB9LFxuICAgICgpID0+IFVwZGF0ZUNvZGVTaWduaW5nQ29uZmlnUmVxdWVzdCxcbiAgICAoKSA9PiBVcGRhdGVDb2RlU2lnbmluZ0NvbmZpZ1Jlc3BvbnNlLFxuXTtcbnZhciBVcGRhdGVFdmVudFNvdXJjZU1hcHBpbmcgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfVUVTTSxcbiAgICB7IFtfaF06IFtcIlBVVFwiLCBcIi8yMDE1LTAzLTMxL2V2ZW50LXNvdXJjZS1tYXBwaW5ncy97VVVJRH1cIiwgMjAyXSB9LFxuICAgICgpID0+IFVwZGF0ZUV2ZW50U291cmNlTWFwcGluZ1JlcXVlc3QsXG4gICAgKCkgPT4gRXZlbnRTb3VyY2VNYXBwaW5nQ29uZmlndXJhdGlvbixcbl07XG52YXIgVXBkYXRlRnVuY3Rpb25Db2RlID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX1VGQyxcbiAgICB7IFtfaF06IFtcIlBVVFwiLCBcIi8yMDE1LTAzLTMxL2Z1bmN0aW9ucy97RnVuY3Rpb25OYW1lfS9jb2RlXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBVcGRhdGVGdW5jdGlvbkNvZGVSZXF1ZXN0LFxuICAgICgpID0+IEZ1bmN0aW9uQ29uZmlndXJhdGlvbixcbl07XG52YXIgVXBkYXRlRnVuY3Rpb25Db25maWd1cmF0aW9uID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX1VGQ3AsXG4gICAgeyBbX2hdOiBbXCJQVVRcIiwgXCIvMjAxNS0wMy0zMS9mdW5jdGlvbnMve0Z1bmN0aW9uTmFtZX0vY29uZmlndXJhdGlvblwiLCAyMDBdIH0sXG4gICAgKCkgPT4gVXBkYXRlRnVuY3Rpb25Db25maWd1cmF0aW9uUmVxdWVzdCxcbiAgICAoKSA9PiBGdW5jdGlvbkNvbmZpZ3VyYXRpb24sXG5dO1xudmFyIFVwZGF0ZUZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWcgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfVUZFSUMsXG4gICAgeyBbX2hdOiBbXCJQT1NUXCIsIFwiLzIwMTktMDktMjUvZnVuY3Rpb25zL3tGdW5jdGlvbk5hbWV9L2V2ZW50LWludm9rZS1jb25maWdcIiwgMjAwXSB9LFxuICAgICgpID0+IFVwZGF0ZUZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdSZXF1ZXN0LFxuICAgICgpID0+IEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWcsXG5dO1xudmFyIFVwZGF0ZUZ1bmN0aW9uVXJsQ29uZmlnID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX1VGVUMsXG4gICAgeyBbX2hdOiBbXCJQVVRcIiwgXCIvMjAyMS0xMC0zMS9mdW5jdGlvbnMve0Z1bmN0aW9uTmFtZX0vdXJsXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBVcGRhdGVGdW5jdGlvblVybENvbmZpZ1JlcXVlc3QsXG4gICAgKCkgPT4gVXBkYXRlRnVuY3Rpb25VcmxDb25maWdSZXNwb25zZSxcbl07XG5cbmNsYXNzIEFkZExheWVyVmVyc2lvblBlcm1pc3Npb25Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NHaXJBcGlTZXJ2aWNlXCIsIFwiQWRkTGF5ZXJWZXJzaW9uUGVybWlzc2lvblwiLCB7fSlcbiAgICAubihcIkxhbWJkYUNsaWVudFwiLCBcIkFkZExheWVyVmVyc2lvblBlcm1pc3Npb25Db21tYW5kXCIpXG4gICAgLnNjKEFkZExheWVyVmVyc2lvblBlcm1pc3Npb24pXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBBZGRQZXJtaXNzaW9uQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTR2lyQXBpU2VydmljZVwiLCBcIkFkZFBlcm1pc3Npb25cIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJBZGRQZXJtaXNzaW9uQ29tbWFuZFwiKVxuICAgIC5zYyhBZGRQZXJtaXNzaW9uKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgQ2hlY2twb2ludER1cmFibGVFeGVjdXRpb25Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NHaXJBcGlTZXJ2aWNlXCIsIFwiQ2hlY2twb2ludER1cmFibGVFeGVjdXRpb25cIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJDaGVja3BvaW50RHVyYWJsZUV4ZWN1dGlvbkNvbW1hbmRcIilcbiAgICAuc2MoQ2hlY2twb2ludER1cmFibGVFeGVjdXRpb24pXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBDcmVhdGVBbGlhc0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFXU0dpckFwaVNlcnZpY2VcIiwgXCJDcmVhdGVBbGlhc1wiLCB7fSlcbiAgICAubihcIkxhbWJkYUNsaWVudFwiLCBcIkNyZWF0ZUFsaWFzQ29tbWFuZFwiKVxuICAgIC5zYyhDcmVhdGVBbGlhcylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIENyZWF0ZUNhcGFjaXR5UHJvdmlkZXJDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NHaXJBcGlTZXJ2aWNlXCIsIFwiQ3JlYXRlQ2FwYWNpdHlQcm92aWRlclwiLCB7fSlcbiAgICAubihcIkxhbWJkYUNsaWVudFwiLCBcIkNyZWF0ZUNhcGFjaXR5UHJvdmlkZXJDb21tYW5kXCIpXG4gICAgLnNjKENyZWF0ZUNhcGFjaXR5UHJvdmlkZXIpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBDcmVhdGVDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFXU0dpckFwaVNlcnZpY2VcIiwgXCJDcmVhdGVDb2RlU2lnbmluZ0NvbmZpZ1wiLCB7fSlcbiAgICAubihcIkxhbWJkYUNsaWVudFwiLCBcIkNyZWF0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZFwiKVxuICAgIC5zYyhDcmVhdGVDb2RlU2lnbmluZ0NvbmZpZylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIENyZWF0ZUV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFXU0dpckFwaVNlcnZpY2VcIiwgXCJDcmVhdGVFdmVudFNvdXJjZU1hcHBpbmdcIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJDcmVhdGVFdmVudFNvdXJjZU1hcHBpbmdDb21tYW5kXCIpXG4gICAgLnNjKENyZWF0ZUV2ZW50U291cmNlTWFwcGluZylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIENyZWF0ZUZ1bmN0aW9uQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTR2lyQXBpU2VydmljZVwiLCBcIkNyZWF0ZUZ1bmN0aW9uXCIsIHt9KVxuICAgIC5uKFwiTGFtYmRhQ2xpZW50XCIsIFwiQ3JlYXRlRnVuY3Rpb25Db21tYW5kXCIpXG4gICAgLnNjKENyZWF0ZUZ1bmN0aW9uKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgQ3JlYXRlRnVuY3Rpb25VcmxDb25maWdDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NHaXJBcGlTZXJ2aWNlXCIsIFwiQ3JlYXRlRnVuY3Rpb25VcmxDb25maWdcIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJDcmVhdGVGdW5jdGlvblVybENvbmZpZ0NvbW1hbmRcIilcbiAgICAuc2MoQ3JlYXRlRnVuY3Rpb25VcmxDb25maWcpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZWxldGVBbGlhc0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFXU0dpckFwaVNlcnZpY2VcIiwgXCJEZWxldGVBbGlhc1wiLCB7fSlcbiAgICAubihcIkxhbWJkYUNsaWVudFwiLCBcIkRlbGV0ZUFsaWFzQ29tbWFuZFwiKVxuICAgIC5zYyhEZWxldGVBbGlhcylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERlbGV0ZUNhcGFjaXR5UHJvdmlkZXJDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NHaXJBcGlTZXJ2aWNlXCIsIFwiRGVsZXRlQ2FwYWNpdHlQcm92aWRlclwiLCB7fSlcbiAgICAubihcIkxhbWJkYUNsaWVudFwiLCBcIkRlbGV0ZUNhcGFjaXR5UHJvdmlkZXJDb21tYW5kXCIpXG4gICAgLnNjKERlbGV0ZUNhcGFjaXR5UHJvdmlkZXIpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZWxldGVDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFXU0dpckFwaVNlcnZpY2VcIiwgXCJEZWxldGVDb2RlU2lnbmluZ0NvbmZpZ1wiLCB7fSlcbiAgICAubihcIkxhbWJkYUNsaWVudFwiLCBcIkRlbGV0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZFwiKVxuICAgIC5zYyhEZWxldGVDb2RlU2lnbmluZ0NvbmZpZylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERlbGV0ZUV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFXU0dpckFwaVNlcnZpY2VcIiwgXCJEZWxldGVFdmVudFNvdXJjZU1hcHBpbmdcIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJEZWxldGVFdmVudFNvdXJjZU1hcHBpbmdDb21tYW5kXCIpXG4gICAgLnNjKERlbGV0ZUV2ZW50U291cmNlTWFwcGluZylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERlbGV0ZUZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NHaXJBcGlTZXJ2aWNlXCIsIFwiRGVsZXRlRnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ1wiLCB7fSlcbiAgICAubihcIkxhbWJkYUNsaWVudFwiLCBcIkRlbGV0ZUZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdDb21tYW5kXCIpXG4gICAgLnNjKERlbGV0ZUZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWcpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZWxldGVGdW5jdGlvbkNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFXU0dpckFwaVNlcnZpY2VcIiwgXCJEZWxldGVGdW5jdGlvblwiLCB7fSlcbiAgICAubihcIkxhbWJkYUNsaWVudFwiLCBcIkRlbGV0ZUZ1bmN0aW9uQ29tbWFuZFwiKVxuICAgIC5zYyhEZWxldGVGdW5jdGlvbilcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERlbGV0ZUZ1bmN0aW9uQ29uY3VycmVuY3lDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NHaXJBcGlTZXJ2aWNlXCIsIFwiRGVsZXRlRnVuY3Rpb25Db25jdXJyZW5jeVwiLCB7fSlcbiAgICAubihcIkxhbWJkYUNsaWVudFwiLCBcIkRlbGV0ZUZ1bmN0aW9uQ29uY3VycmVuY3lDb21tYW5kXCIpXG4gICAgLnNjKERlbGV0ZUZ1bmN0aW9uQ29uY3VycmVuY3kpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZWxldGVGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTR2lyQXBpU2VydmljZVwiLCBcIkRlbGV0ZUZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdcIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJEZWxldGVGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZFwiKVxuICAgIC5zYyhEZWxldGVGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgRGVsZXRlRnVuY3Rpb25VcmxDb25maWdDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NHaXJBcGlTZXJ2aWNlXCIsIFwiRGVsZXRlRnVuY3Rpb25VcmxDb25maWdcIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJEZWxldGVGdW5jdGlvblVybENvbmZpZ0NvbW1hbmRcIilcbiAgICAuc2MoRGVsZXRlRnVuY3Rpb25VcmxDb25maWcpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZWxldGVMYXllclZlcnNpb25Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NHaXJBcGlTZXJ2aWNlXCIsIFwiRGVsZXRlTGF5ZXJWZXJzaW9uXCIsIHt9KVxuICAgIC5uKFwiTGFtYmRhQ2xpZW50XCIsIFwiRGVsZXRlTGF5ZXJWZXJzaW9uQ29tbWFuZFwiKVxuICAgIC5zYyhEZWxldGVMYXllclZlcnNpb24pXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZWxldGVQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTR2lyQXBpU2VydmljZVwiLCBcIkRlbGV0ZVByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdcIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJEZWxldGVQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnQ29tbWFuZFwiKVxuICAgIC5zYyhEZWxldGVQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgR2V0QWNjb3VudFNldHRpbmdzQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTR2lyQXBpU2VydmljZVwiLCBcIkdldEFjY291bnRTZXR0aW5nc1wiLCB7fSlcbiAgICAubihcIkxhbWJkYUNsaWVudFwiLCBcIkdldEFjY291bnRTZXR0aW5nc0NvbW1hbmRcIilcbiAgICAuc2MoR2V0QWNjb3VudFNldHRpbmdzKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgR2V0QWxpYXNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NHaXJBcGlTZXJ2aWNlXCIsIFwiR2V0QWxpYXNcIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJHZXRBbGlhc0NvbW1hbmRcIilcbiAgICAuc2MoR2V0QWxpYXMpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBHZXRDYXBhY2l0eVByb3ZpZGVyQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTR2lyQXBpU2VydmljZVwiLCBcIkdldENhcGFjaXR5UHJvdmlkZXJcIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJHZXRDYXBhY2l0eVByb3ZpZGVyQ29tbWFuZFwiKVxuICAgIC5zYyhHZXRDYXBhY2l0eVByb3ZpZGVyKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgR2V0Q29kZVNpZ25pbmdDb25maWdDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NHaXJBcGlTZXJ2aWNlXCIsIFwiR2V0Q29kZVNpZ25pbmdDb25maWdcIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJHZXRDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRcIilcbiAgICAuc2MoR2V0Q29kZVNpZ25pbmdDb25maWcpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBHZXREdXJhYmxlRXhlY3V0aW9uQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTR2lyQXBpU2VydmljZVwiLCBcIkdldER1cmFibGVFeGVjdXRpb25cIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJHZXREdXJhYmxlRXhlY3V0aW9uQ29tbWFuZFwiKVxuICAgIC5zYyhHZXREdXJhYmxlRXhlY3V0aW9uKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgR2V0RHVyYWJsZUV4ZWN1dGlvbkhpc3RvcnlDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NHaXJBcGlTZXJ2aWNlXCIsIFwiR2V0RHVyYWJsZUV4ZWN1dGlvbkhpc3RvcnlcIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJHZXREdXJhYmxlRXhlY3V0aW9uSGlzdG9yeUNvbW1hbmRcIilcbiAgICAuc2MoR2V0RHVyYWJsZUV4ZWN1dGlvbkhpc3RvcnkpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBHZXREdXJhYmxlRXhlY3V0aW9uU3RhdGVDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NHaXJBcGlTZXJ2aWNlXCIsIFwiR2V0RHVyYWJsZUV4ZWN1dGlvblN0YXRlXCIsIHt9KVxuICAgIC5uKFwiTGFtYmRhQ2xpZW50XCIsIFwiR2V0RHVyYWJsZUV4ZWN1dGlvblN0YXRlQ29tbWFuZFwiKVxuICAgIC5zYyhHZXREdXJhYmxlRXhlY3V0aW9uU3RhdGUpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBHZXRFdmVudFNvdXJjZU1hcHBpbmdDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NHaXJBcGlTZXJ2aWNlXCIsIFwiR2V0RXZlbnRTb3VyY2VNYXBwaW5nXCIsIHt9KVxuICAgIC5uKFwiTGFtYmRhQ2xpZW50XCIsIFwiR2V0RXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZFwiKVxuICAgIC5zYyhHZXRFdmVudFNvdXJjZU1hcHBpbmcpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBHZXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTR2lyQXBpU2VydmljZVwiLCBcIkdldEZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdcIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJHZXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZFwiKVxuICAgIC5zYyhHZXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgR2V0RnVuY3Rpb25Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NHaXJBcGlTZXJ2aWNlXCIsIFwiR2V0RnVuY3Rpb25cIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJHZXRGdW5jdGlvbkNvbW1hbmRcIilcbiAgICAuc2MoR2V0RnVuY3Rpb24pXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBHZXRGdW5jdGlvbkNvbmN1cnJlbmN5Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTR2lyQXBpU2VydmljZVwiLCBcIkdldEZ1bmN0aW9uQ29uY3VycmVuY3lcIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJHZXRGdW5jdGlvbkNvbmN1cnJlbmN5Q29tbWFuZFwiKVxuICAgIC5zYyhHZXRGdW5jdGlvbkNvbmN1cnJlbmN5KVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgR2V0RnVuY3Rpb25Db25maWd1cmF0aW9uQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTR2lyQXBpU2VydmljZVwiLCBcIkdldEZ1bmN0aW9uQ29uZmlndXJhdGlvblwiLCB7fSlcbiAgICAubihcIkxhbWJkYUNsaWVudFwiLCBcIkdldEZ1bmN0aW9uQ29uZmlndXJhdGlvbkNvbW1hbmRcIilcbiAgICAuc2MoR2V0RnVuY3Rpb25Db25maWd1cmF0aW9uKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgR2V0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFXU0dpckFwaVNlcnZpY2VcIiwgXCJHZXRGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnXCIsIHt9KVxuICAgIC5uKFwiTGFtYmRhQ2xpZW50XCIsIFwiR2V0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmRcIilcbiAgICAuc2MoR2V0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIEdldEZ1bmN0aW9uUmVjdXJzaW9uQ29uZmlnQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTR2lyQXBpU2VydmljZVwiLCBcIkdldEZ1bmN0aW9uUmVjdXJzaW9uQ29uZmlnXCIsIHt9KVxuICAgIC5uKFwiTGFtYmRhQ2xpZW50XCIsIFwiR2V0RnVuY3Rpb25SZWN1cnNpb25Db25maWdDb21tYW5kXCIpXG4gICAgLnNjKEdldEZ1bmN0aW9uUmVjdXJzaW9uQ29uZmlnKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgR2V0RnVuY3Rpb25TY2FsaW5nQ29uZmlnQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTR2lyQXBpU2VydmljZVwiLCBcIkdldEZ1bmN0aW9uU2NhbGluZ0NvbmZpZ1wiLCB7fSlcbiAgICAubihcIkxhbWJkYUNsaWVudFwiLCBcIkdldEZ1bmN0aW9uU2NhbGluZ0NvbmZpZ0NvbW1hbmRcIilcbiAgICAuc2MoR2V0RnVuY3Rpb25TY2FsaW5nQ29uZmlnKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgR2V0RnVuY3Rpb25VcmxDb25maWdDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NHaXJBcGlTZXJ2aWNlXCIsIFwiR2V0RnVuY3Rpb25VcmxDb25maWdcIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJHZXRGdW5jdGlvblVybENvbmZpZ0NvbW1hbmRcIilcbiAgICAuc2MoR2V0RnVuY3Rpb25VcmxDb25maWcpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBHZXRMYXllclZlcnNpb25CeUFybkNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFXU0dpckFwaVNlcnZpY2VcIiwgXCJHZXRMYXllclZlcnNpb25CeUFyblwiLCB7fSlcbiAgICAubihcIkxhbWJkYUNsaWVudFwiLCBcIkdldExheWVyVmVyc2lvbkJ5QXJuQ29tbWFuZFwiKVxuICAgIC5zYyhHZXRMYXllclZlcnNpb25CeUFybilcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIEdldExheWVyVmVyc2lvbkNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFXU0dpckFwaVNlcnZpY2VcIiwgXCJHZXRMYXllclZlcnNpb25cIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJHZXRMYXllclZlcnNpb25Db21tYW5kXCIpXG4gICAgLnNjKEdldExheWVyVmVyc2lvbilcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIEdldExheWVyVmVyc2lvblBvbGljeUNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFXU0dpckFwaVNlcnZpY2VcIiwgXCJHZXRMYXllclZlcnNpb25Qb2xpY3lcIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJHZXRMYXllclZlcnNpb25Qb2xpY3lDb21tYW5kXCIpXG4gICAgLnNjKEdldExheWVyVmVyc2lvblBvbGljeSlcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIEdldFBvbGljeUNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFXU0dpckFwaVNlcnZpY2VcIiwgXCJHZXRQb2xpY3lcIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJHZXRQb2xpY3lDb21tYW5kXCIpXG4gICAgLnNjKEdldFBvbGljeSlcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIEdldFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NHaXJBcGlTZXJ2aWNlXCIsIFwiR2V0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ1wiLCB7fSlcbiAgICAubihcIkxhbWJkYUNsaWVudFwiLCBcIkdldFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdDb21tYW5kXCIpXG4gICAgLnNjKEdldFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWcpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBHZXRSdW50aW1lTWFuYWdlbWVudENvbmZpZ0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFXU0dpckFwaVNlcnZpY2VcIiwgXCJHZXRSdW50aW1lTWFuYWdlbWVudENvbmZpZ1wiLCB7fSlcbiAgICAubihcIkxhbWJkYUNsaWVudFwiLCBcIkdldFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnQ29tbWFuZFwiKVxuICAgIC5zYyhHZXRSdW50aW1lTWFuYWdlbWVudENvbmZpZylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIEludm9rZUFzeW5jQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTR2lyQXBpU2VydmljZVwiLCBcIkludm9rZUFzeW5jXCIsIHt9KVxuICAgIC5uKFwiTGFtYmRhQ2xpZW50XCIsIFwiSW52b2tlQXN5bmNDb21tYW5kXCIpXG4gICAgLnNjKEludm9rZUFzeW5jKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgSW52b2tlQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTR2lyQXBpU2VydmljZVwiLCBcIkludm9rZVwiLCB7fSlcbiAgICAubihcIkxhbWJkYUNsaWVudFwiLCBcIkludm9rZUNvbW1hbmRcIilcbiAgICAuc2MoSW52b2tlKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgSW52b2tlV2l0aFJlc3BvbnNlU3RyZWFtQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTR2lyQXBpU2VydmljZVwiLCBcIkludm9rZVdpdGhSZXNwb25zZVN0cmVhbVwiLCB7XG4gICAgZXZlbnRTdHJlYW06IHtcbiAgICAgICAgb3V0cHV0OiB0cnVlLFxuICAgIH0sXG59KVxuICAgIC5uKFwiTGFtYmRhQ2xpZW50XCIsIFwiSW52b2tlV2l0aFJlc3BvbnNlU3RyZWFtQ29tbWFuZFwiKVxuICAgIC5zYyhJbnZva2VXaXRoUmVzcG9uc2VTdHJlYW0pXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBMaXN0QWxpYXNlc0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFXU0dpckFwaVNlcnZpY2VcIiwgXCJMaXN0QWxpYXNlc1wiLCB7fSlcbiAgICAubihcIkxhbWJkYUNsaWVudFwiLCBcIkxpc3RBbGlhc2VzQ29tbWFuZFwiKVxuICAgIC5zYyhMaXN0QWxpYXNlcylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIExpc3RDYXBhY2l0eVByb3ZpZGVyc0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFXU0dpckFwaVNlcnZpY2VcIiwgXCJMaXN0Q2FwYWNpdHlQcm92aWRlcnNcIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJMaXN0Q2FwYWNpdHlQcm92aWRlcnNDb21tYW5kXCIpXG4gICAgLnNjKExpc3RDYXBhY2l0eVByb3ZpZGVycylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIExpc3RDb2RlU2lnbmluZ0NvbmZpZ3NDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NHaXJBcGlTZXJ2aWNlXCIsIFwiTGlzdENvZGVTaWduaW5nQ29uZmlnc1wiLCB7fSlcbiAgICAubihcIkxhbWJkYUNsaWVudFwiLCBcIkxpc3RDb2RlU2lnbmluZ0NvbmZpZ3NDb21tYW5kXCIpXG4gICAgLnNjKExpc3RDb2RlU2lnbmluZ0NvbmZpZ3MpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBMaXN0RHVyYWJsZUV4ZWN1dGlvbnNCeUZ1bmN0aW9uQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTR2lyQXBpU2VydmljZVwiLCBcIkxpc3REdXJhYmxlRXhlY3V0aW9uc0J5RnVuY3Rpb25cIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJMaXN0RHVyYWJsZUV4ZWN1dGlvbnNCeUZ1bmN0aW9uQ29tbWFuZFwiKVxuICAgIC5zYyhMaXN0RHVyYWJsZUV4ZWN1dGlvbnNCeUZ1bmN0aW9uKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgTGlzdEV2ZW50U291cmNlTWFwcGluZ3NDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NHaXJBcGlTZXJ2aWNlXCIsIFwiTGlzdEV2ZW50U291cmNlTWFwcGluZ3NcIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJMaXN0RXZlbnRTb3VyY2VNYXBwaW5nc0NvbW1hbmRcIilcbiAgICAuc2MoTGlzdEV2ZW50U291cmNlTWFwcGluZ3MpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBMaXN0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ3NDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NHaXJBcGlTZXJ2aWNlXCIsIFwiTGlzdEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdzXCIsIHt9KVxuICAgIC5uKFwiTGFtYmRhQ2xpZW50XCIsIFwiTGlzdEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdzQ29tbWFuZFwiKVxuICAgIC5zYyhMaXN0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ3MpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBMaXN0RnVuY3Rpb25zQnlDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFXU0dpckFwaVNlcnZpY2VcIiwgXCJMaXN0RnVuY3Rpb25zQnlDb2RlU2lnbmluZ0NvbmZpZ1wiLCB7fSlcbiAgICAubihcIkxhbWJkYUNsaWVudFwiLCBcIkxpc3RGdW5jdGlvbnNCeUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZFwiKVxuICAgIC5zYyhMaXN0RnVuY3Rpb25zQnlDb2RlU2lnbmluZ0NvbmZpZylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIExpc3RGdW5jdGlvbnNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NHaXJBcGlTZXJ2aWNlXCIsIFwiTGlzdEZ1bmN0aW9uc1wiLCB7fSlcbiAgICAubihcIkxhbWJkYUNsaWVudFwiLCBcIkxpc3RGdW5jdGlvbnNDb21tYW5kXCIpXG4gICAgLnNjKExpc3RGdW5jdGlvbnMpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBMaXN0RnVuY3Rpb25VcmxDb25maWdzQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTR2lyQXBpU2VydmljZVwiLCBcIkxpc3RGdW5jdGlvblVybENvbmZpZ3NcIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJMaXN0RnVuY3Rpb25VcmxDb25maWdzQ29tbWFuZFwiKVxuICAgIC5zYyhMaXN0RnVuY3Rpb25VcmxDb25maWdzKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgTGlzdEZ1bmN0aW9uVmVyc2lvbnNCeUNhcGFjaXR5UHJvdmlkZXJDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NHaXJBcGlTZXJ2aWNlXCIsIFwiTGlzdEZ1bmN0aW9uVmVyc2lvbnNCeUNhcGFjaXR5UHJvdmlkZXJcIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJMaXN0RnVuY3Rpb25WZXJzaW9uc0J5Q2FwYWNpdHlQcm92aWRlckNvbW1hbmRcIilcbiAgICAuc2MoTGlzdEZ1bmN0aW9uVmVyc2lvbnNCeUNhcGFjaXR5UHJvdmlkZXIpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBMaXN0TGF5ZXJzQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTR2lyQXBpU2VydmljZVwiLCBcIkxpc3RMYXllcnNcIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJMaXN0TGF5ZXJzQ29tbWFuZFwiKVxuICAgIC5zYyhMaXN0TGF5ZXJzKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgTGlzdExheWVyVmVyc2lvbnNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NHaXJBcGlTZXJ2aWNlXCIsIFwiTGlzdExheWVyVmVyc2lvbnNcIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJMaXN0TGF5ZXJWZXJzaW9uc0NvbW1hbmRcIilcbiAgICAuc2MoTGlzdExheWVyVmVyc2lvbnMpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBMaXN0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ3NDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NHaXJBcGlTZXJ2aWNlXCIsIFwiTGlzdFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdzXCIsIHt9KVxuICAgIC5uKFwiTGFtYmRhQ2xpZW50XCIsIFwiTGlzdFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdzQ29tbWFuZFwiKVxuICAgIC5zYyhMaXN0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ3MpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBMaXN0VGFnc0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFXU0dpckFwaVNlcnZpY2VcIiwgXCJMaXN0VGFnc1wiLCB7fSlcbiAgICAubihcIkxhbWJkYUNsaWVudFwiLCBcIkxpc3RUYWdzQ29tbWFuZFwiKVxuICAgIC5zYyhMaXN0VGFncylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIExpc3RWZXJzaW9uc0J5RnVuY3Rpb25Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NHaXJBcGlTZXJ2aWNlXCIsIFwiTGlzdFZlcnNpb25zQnlGdW5jdGlvblwiLCB7fSlcbiAgICAubihcIkxhbWJkYUNsaWVudFwiLCBcIkxpc3RWZXJzaW9uc0J5RnVuY3Rpb25Db21tYW5kXCIpXG4gICAgLnNjKExpc3RWZXJzaW9uc0J5RnVuY3Rpb24pXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBQdWJsaXNoTGF5ZXJWZXJzaW9uQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTR2lyQXBpU2VydmljZVwiLCBcIlB1Ymxpc2hMYXllclZlcnNpb25cIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJQdWJsaXNoTGF5ZXJWZXJzaW9uQ29tbWFuZFwiKVxuICAgIC5zYyhQdWJsaXNoTGF5ZXJWZXJzaW9uKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgUHVibGlzaFZlcnNpb25Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NHaXJBcGlTZXJ2aWNlXCIsIFwiUHVibGlzaFZlcnNpb25cIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJQdWJsaXNoVmVyc2lvbkNvbW1hbmRcIilcbiAgICAuc2MoUHVibGlzaFZlcnNpb24pXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBQdXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTR2lyQXBpU2VydmljZVwiLCBcIlB1dEZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdcIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJQdXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZFwiKVxuICAgIC5zYyhQdXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgUHV0RnVuY3Rpb25Db25jdXJyZW5jeUNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFXU0dpckFwaVNlcnZpY2VcIiwgXCJQdXRGdW5jdGlvbkNvbmN1cnJlbmN5XCIsIHt9KVxuICAgIC5uKFwiTGFtYmRhQ2xpZW50XCIsIFwiUHV0RnVuY3Rpb25Db25jdXJyZW5jeUNvbW1hbmRcIilcbiAgICAuc2MoUHV0RnVuY3Rpb25Db25jdXJyZW5jeSlcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFB1dEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NHaXJBcGlTZXJ2aWNlXCIsIFwiUHV0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ1wiLCB7fSlcbiAgICAubihcIkxhbWJkYUNsaWVudFwiLCBcIlB1dEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdDb21tYW5kXCIpXG4gICAgLnNjKFB1dEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWcpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBQdXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZ0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFXU0dpckFwaVNlcnZpY2VcIiwgXCJQdXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZ1wiLCB7fSlcbiAgICAubihcIkxhbWJkYUNsaWVudFwiLCBcIlB1dEZ1bmN0aW9uUmVjdXJzaW9uQ29uZmlnQ29tbWFuZFwiKVxuICAgIC5zYyhQdXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFB1dEZ1bmN0aW9uU2NhbGluZ0NvbmZpZ0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFXU0dpckFwaVNlcnZpY2VcIiwgXCJQdXRGdW5jdGlvblNjYWxpbmdDb25maWdcIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJQdXRGdW5jdGlvblNjYWxpbmdDb25maWdDb21tYW5kXCIpXG4gICAgLnNjKFB1dEZ1bmN0aW9uU2NhbGluZ0NvbmZpZylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFB1dFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NHaXJBcGlTZXJ2aWNlXCIsIFwiUHV0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ1wiLCB7fSlcbiAgICAubihcIkxhbWJkYUNsaWVudFwiLCBcIlB1dFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdDb21tYW5kXCIpXG4gICAgLnNjKFB1dFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWcpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBQdXRSdW50aW1lTWFuYWdlbWVudENvbmZpZ0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFXU0dpckFwaVNlcnZpY2VcIiwgXCJQdXRSdW50aW1lTWFuYWdlbWVudENvbmZpZ1wiLCB7fSlcbiAgICAubihcIkxhbWJkYUNsaWVudFwiLCBcIlB1dFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnQ29tbWFuZFwiKVxuICAgIC5zYyhQdXRSdW50aW1lTWFuYWdlbWVudENvbmZpZylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFJlbW92ZUxheWVyVmVyc2lvblBlcm1pc3Npb25Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NHaXJBcGlTZXJ2aWNlXCIsIFwiUmVtb3ZlTGF5ZXJWZXJzaW9uUGVybWlzc2lvblwiLCB7fSlcbiAgICAubihcIkxhbWJkYUNsaWVudFwiLCBcIlJlbW92ZUxheWVyVmVyc2lvblBlcm1pc3Npb25Db21tYW5kXCIpXG4gICAgLnNjKFJlbW92ZUxheWVyVmVyc2lvblBlcm1pc3Npb24pXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBSZW1vdmVQZXJtaXNzaW9uQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTR2lyQXBpU2VydmljZVwiLCBcIlJlbW92ZVBlcm1pc3Npb25cIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJSZW1vdmVQZXJtaXNzaW9uQ29tbWFuZFwiKVxuICAgIC5zYyhSZW1vdmVQZXJtaXNzaW9uKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgU2VuZER1cmFibGVFeGVjdXRpb25DYWxsYmFja0ZhaWx1cmVDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NHaXJBcGlTZXJ2aWNlXCIsIFwiU2VuZER1cmFibGVFeGVjdXRpb25DYWxsYmFja0ZhaWx1cmVcIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJTZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrRmFpbHVyZUNvbW1hbmRcIilcbiAgICAuc2MoU2VuZER1cmFibGVFeGVjdXRpb25DYWxsYmFja0ZhaWx1cmUpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBTZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrSGVhcnRiZWF0Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTR2lyQXBpU2VydmljZVwiLCBcIlNlbmREdXJhYmxlRXhlY3V0aW9uQ2FsbGJhY2tIZWFydGJlYXRcIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJTZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrSGVhcnRiZWF0Q29tbWFuZFwiKVxuICAgIC5zYyhTZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrSGVhcnRiZWF0KVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgU2VuZER1cmFibGVFeGVjdXRpb25DYWxsYmFja1N1Y2Nlc3NDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBV1NHaXJBcGlTZXJ2aWNlXCIsIFwiU2VuZER1cmFibGVFeGVjdXRpb25DYWxsYmFja1N1Y2Nlc3NcIiwge30pXG4gICAgLm4oXCJMYW1iZGFDbGllbnRcIiwgXCJTZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrU3VjY2Vzc0NvbW1hbmRcIilcbiAgICAuc2MoU2VuZER1cmFibGVFeGVjdXRpb25DYWxsYmFja1N1Y2Nlc3MpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBTdG9wRHVyYWJsZUV4ZWN1dGlvbkNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFXU0dpckFwaVNlcnZpY2VcIiwgXCJTdG9wRHVyYWJsZUV4ZWN1dGlvblwiLCB7fSlcbiAgICAubihcIkxhbWJkYUNsaWVudFwiLCBcIlN0b3BEdXJhYmxlRXhlY3V0aW9uQ29tbWFuZFwiKVxuICAgIC5zYyhTdG9wRHVyYWJsZUV4ZWN1dGlvbilcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFRhZ1Jlc291cmNlQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTR2lyQXBpU2VydmljZVwiLCBcIlRhZ1Jlc291cmNlXCIsIHt9KVxuICAgIC5uKFwiTGFtYmRhQ2xpZW50XCIsIFwiVGFnUmVzb3VyY2VDb21tYW5kXCIpXG4gICAgLnNjKFRhZ1Jlc291cmNlKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgVW50YWdSZXNvdXJjZUNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFXU0dpckFwaVNlcnZpY2VcIiwgXCJVbnRhZ1Jlc291cmNlXCIsIHt9KVxuICAgIC5uKFwiTGFtYmRhQ2xpZW50XCIsIFwiVW50YWdSZXNvdXJjZUNvbW1hbmRcIilcbiAgICAuc2MoVW50YWdSZXNvdXJjZSlcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFVwZGF0ZUFsaWFzQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTR2lyQXBpU2VydmljZVwiLCBcIlVwZGF0ZUFsaWFzXCIsIHt9KVxuICAgIC5uKFwiTGFtYmRhQ2xpZW50XCIsIFwiVXBkYXRlQWxpYXNDb21tYW5kXCIpXG4gICAgLnNjKFVwZGF0ZUFsaWFzKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgVXBkYXRlQ2FwYWNpdHlQcm92aWRlckNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFXU0dpckFwaVNlcnZpY2VcIiwgXCJVcGRhdGVDYXBhY2l0eVByb3ZpZGVyXCIsIHt9KVxuICAgIC5uKFwiTGFtYmRhQ2xpZW50XCIsIFwiVXBkYXRlQ2FwYWNpdHlQcm92aWRlckNvbW1hbmRcIilcbiAgICAuc2MoVXBkYXRlQ2FwYWNpdHlQcm92aWRlcilcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFVwZGF0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTR2lyQXBpU2VydmljZVwiLCBcIlVwZGF0ZUNvZGVTaWduaW5nQ29uZmlnXCIsIHt9KVxuICAgIC5uKFwiTGFtYmRhQ2xpZW50XCIsIFwiVXBkYXRlQ29kZVNpZ25pbmdDb25maWdDb21tYW5kXCIpXG4gICAgLnNjKFVwZGF0ZUNvZGVTaWduaW5nQ29uZmlnKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgVXBkYXRlRXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTR2lyQXBpU2VydmljZVwiLCBcIlVwZGF0ZUV2ZW50U291cmNlTWFwcGluZ1wiLCB7fSlcbiAgICAubihcIkxhbWJkYUNsaWVudFwiLCBcIlVwZGF0ZUV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmRcIilcbiAgICAuc2MoVXBkYXRlRXZlbnRTb3VyY2VNYXBwaW5nKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgVXBkYXRlRnVuY3Rpb25Db2RlQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTR2lyQXBpU2VydmljZVwiLCBcIlVwZGF0ZUZ1bmN0aW9uQ29kZVwiLCB7fSlcbiAgICAubihcIkxhbWJkYUNsaWVudFwiLCBcIlVwZGF0ZUZ1bmN0aW9uQ29kZUNvbW1hbmRcIilcbiAgICAuc2MoVXBkYXRlRnVuY3Rpb25Db2RlKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgVXBkYXRlRnVuY3Rpb25Db25maWd1cmF0aW9uQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTR2lyQXBpU2VydmljZVwiLCBcIlVwZGF0ZUZ1bmN0aW9uQ29uZmlndXJhdGlvblwiLCB7fSlcbiAgICAubihcIkxhbWJkYUNsaWVudFwiLCBcIlVwZGF0ZUZ1bmN0aW9uQ29uZmlndXJhdGlvbkNvbW1hbmRcIilcbiAgICAuc2MoVXBkYXRlRnVuY3Rpb25Db25maWd1cmF0aW9uKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgVXBkYXRlRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFXU0dpckFwaVNlcnZpY2VcIiwgXCJVcGRhdGVGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnXCIsIHt9KVxuICAgIC5uKFwiTGFtYmRhQ2xpZW50XCIsIFwiVXBkYXRlRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmRcIilcbiAgICAuc2MoVXBkYXRlRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFVwZGF0ZUZ1bmN0aW9uVXJsQ29uZmlnQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTR2lyQXBpU2VydmljZVwiLCBcIlVwZGF0ZUZ1bmN0aW9uVXJsQ29uZmlnXCIsIHt9KVxuICAgIC5uKFwiTGFtYmRhQ2xpZW50XCIsIFwiVXBkYXRlRnVuY3Rpb25VcmxDb25maWdDb21tYW5kXCIpXG4gICAgLnNjKFVwZGF0ZUZ1bmN0aW9uVXJsQ29uZmlnKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY29uc3QgY29tbWFuZHMgPSB7XG4gICAgQWRkTGF5ZXJWZXJzaW9uUGVybWlzc2lvbkNvbW1hbmQsXG4gICAgQWRkUGVybWlzc2lvbkNvbW1hbmQsXG4gICAgQ2hlY2twb2ludER1cmFibGVFeGVjdXRpb25Db21tYW5kLFxuICAgIENyZWF0ZUFsaWFzQ29tbWFuZCxcbiAgICBDcmVhdGVDYXBhY2l0eVByb3ZpZGVyQ29tbWFuZCxcbiAgICBDcmVhdGVDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmQsXG4gICAgQ3JlYXRlRXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZCxcbiAgICBDcmVhdGVGdW5jdGlvbkNvbW1hbmQsXG4gICAgQ3JlYXRlRnVuY3Rpb25VcmxDb25maWdDb21tYW5kLFxuICAgIERlbGV0ZUFsaWFzQ29tbWFuZCxcbiAgICBEZWxldGVDYXBhY2l0eVByb3ZpZGVyQ29tbWFuZCxcbiAgICBEZWxldGVDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmQsXG4gICAgRGVsZXRlRXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZCxcbiAgICBEZWxldGVGdW5jdGlvbkNvbW1hbmQsXG4gICAgRGVsZXRlRnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmQsXG4gICAgRGVsZXRlRnVuY3Rpb25Db25jdXJyZW5jeUNvbW1hbmQsXG4gICAgRGVsZXRlRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmQsXG4gICAgRGVsZXRlRnVuY3Rpb25VcmxDb25maWdDb21tYW5kLFxuICAgIERlbGV0ZUxheWVyVmVyc2lvbkNvbW1hbmQsXG4gICAgRGVsZXRlUHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ0NvbW1hbmQsXG4gICAgR2V0QWNjb3VudFNldHRpbmdzQ29tbWFuZCxcbiAgICBHZXRBbGlhc0NvbW1hbmQsXG4gICAgR2V0Q2FwYWNpdHlQcm92aWRlckNvbW1hbmQsXG4gICAgR2V0Q29kZVNpZ25pbmdDb25maWdDb21tYW5kLFxuICAgIEdldER1cmFibGVFeGVjdXRpb25Db21tYW5kLFxuICAgIEdldER1cmFibGVFeGVjdXRpb25IaXN0b3J5Q29tbWFuZCxcbiAgICBHZXREdXJhYmxlRXhlY3V0aW9uU3RhdGVDb21tYW5kLFxuICAgIEdldEV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmQsXG4gICAgR2V0RnVuY3Rpb25Db21tYW5kLFxuICAgIEdldEZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdDb21tYW5kLFxuICAgIEdldEZ1bmN0aW9uQ29uY3VycmVuY3lDb21tYW5kLFxuICAgIEdldEZ1bmN0aW9uQ29uZmlndXJhdGlvbkNvbW1hbmQsXG4gICAgR2V0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmQsXG4gICAgR2V0RnVuY3Rpb25SZWN1cnNpb25Db25maWdDb21tYW5kLFxuICAgIEdldEZ1bmN0aW9uU2NhbGluZ0NvbmZpZ0NvbW1hbmQsXG4gICAgR2V0RnVuY3Rpb25VcmxDb25maWdDb21tYW5kLFxuICAgIEdldExheWVyVmVyc2lvbkNvbW1hbmQsXG4gICAgR2V0TGF5ZXJWZXJzaW9uQnlBcm5Db21tYW5kLFxuICAgIEdldExheWVyVmVyc2lvblBvbGljeUNvbW1hbmQsXG4gICAgR2V0UG9saWN5Q29tbWFuZCxcbiAgICBHZXRQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnQ29tbWFuZCxcbiAgICBHZXRSdW50aW1lTWFuYWdlbWVudENvbmZpZ0NvbW1hbmQsXG4gICAgSW52b2tlQ29tbWFuZCxcbiAgICBJbnZva2VBc3luY0NvbW1hbmQsXG4gICAgSW52b2tlV2l0aFJlc3BvbnNlU3RyZWFtQ29tbWFuZCxcbiAgICBMaXN0QWxpYXNlc0NvbW1hbmQsXG4gICAgTGlzdENhcGFjaXR5UHJvdmlkZXJzQ29tbWFuZCxcbiAgICBMaXN0Q29kZVNpZ25pbmdDb25maWdzQ29tbWFuZCxcbiAgICBMaXN0RHVyYWJsZUV4ZWN1dGlvbnNCeUZ1bmN0aW9uQ29tbWFuZCxcbiAgICBMaXN0RXZlbnRTb3VyY2VNYXBwaW5nc0NvbW1hbmQsXG4gICAgTGlzdEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdzQ29tbWFuZCxcbiAgICBMaXN0RnVuY3Rpb25zQ29tbWFuZCxcbiAgICBMaXN0RnVuY3Rpb25zQnlDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmQsXG4gICAgTGlzdEZ1bmN0aW9uVXJsQ29uZmlnc0NvbW1hbmQsXG4gICAgTGlzdEZ1bmN0aW9uVmVyc2lvbnNCeUNhcGFjaXR5UHJvdmlkZXJDb21tYW5kLFxuICAgIExpc3RMYXllcnNDb21tYW5kLFxuICAgIExpc3RMYXllclZlcnNpb25zQ29tbWFuZCxcbiAgICBMaXN0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ3NDb21tYW5kLFxuICAgIExpc3RUYWdzQ29tbWFuZCxcbiAgICBMaXN0VmVyc2lvbnNCeUZ1bmN0aW9uQ29tbWFuZCxcbiAgICBQdWJsaXNoTGF5ZXJWZXJzaW9uQ29tbWFuZCxcbiAgICBQdWJsaXNoVmVyc2lvbkNvbW1hbmQsXG4gICAgUHV0RnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmQsXG4gICAgUHV0RnVuY3Rpb25Db25jdXJyZW5jeUNvbW1hbmQsXG4gICAgUHV0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmQsXG4gICAgUHV0RnVuY3Rpb25SZWN1cnNpb25Db25maWdDb21tYW5kLFxuICAgIFB1dEZ1bmN0aW9uU2NhbGluZ0NvbmZpZ0NvbW1hbmQsXG4gICAgUHV0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ0NvbW1hbmQsXG4gICAgUHV0UnVudGltZU1hbmFnZW1lbnRDb25maWdDb21tYW5kLFxuICAgIFJlbW92ZUxheWVyVmVyc2lvblBlcm1pc3Npb25Db21tYW5kLFxuICAgIFJlbW92ZVBlcm1pc3Npb25Db21tYW5kLFxuICAgIFNlbmREdXJhYmxlRXhlY3V0aW9uQ2FsbGJhY2tGYWlsdXJlQ29tbWFuZCxcbiAgICBTZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrSGVhcnRiZWF0Q29tbWFuZCxcbiAgICBTZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrU3VjY2Vzc0NvbW1hbmQsXG4gICAgU3RvcER1cmFibGVFeGVjdXRpb25Db21tYW5kLFxuICAgIFRhZ1Jlc291cmNlQ29tbWFuZCxcbiAgICBVbnRhZ1Jlc291cmNlQ29tbWFuZCxcbiAgICBVcGRhdGVBbGlhc0NvbW1hbmQsXG4gICAgVXBkYXRlQ2FwYWNpdHlQcm92aWRlckNvbW1hbmQsXG4gICAgVXBkYXRlQ29kZVNpZ25pbmdDb25maWdDb21tYW5kLFxuICAgIFVwZGF0ZUV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmQsXG4gICAgVXBkYXRlRnVuY3Rpb25Db2RlQ29tbWFuZCxcbiAgICBVcGRhdGVGdW5jdGlvbkNvbmZpZ3VyYXRpb25Db21tYW5kLFxuICAgIFVwZGF0ZUZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdDb21tYW5kLFxuICAgIFVwZGF0ZUZ1bmN0aW9uVXJsQ29uZmlnQ29tbWFuZCxcbn07XG5jbGFzcyBMYW1iZGEgZXh0ZW5kcyBMYW1iZGFDbGllbnQge1xufVxuc21pdGh5Q2xpZW50LmNyZWF0ZUFnZ3JlZ2F0ZWRDbGllbnQoY29tbWFuZHMsIExhbWJkYSk7XG5cbmNvbnN0IHBhZ2luYXRlR2V0RHVyYWJsZUV4ZWN1dGlvbkhpc3RvcnkgPSBjb3JlLmNyZWF0ZVBhZ2luYXRvcihMYW1iZGFDbGllbnQsIEdldER1cmFibGVFeGVjdXRpb25IaXN0b3J5Q29tbWFuZCwgXCJNYXJrZXJcIiwgXCJOZXh0TWFya2VyXCIsIFwiTWF4SXRlbXNcIik7XG5cbmNvbnN0IHBhZ2luYXRlR2V0RHVyYWJsZUV4ZWN1dGlvblN0YXRlID0gY29yZS5jcmVhdGVQYWdpbmF0b3IoTGFtYmRhQ2xpZW50LCBHZXREdXJhYmxlRXhlY3V0aW9uU3RhdGVDb21tYW5kLCBcIk1hcmtlclwiLCBcIk5leHRNYXJrZXJcIiwgXCJNYXhJdGVtc1wiKTtcblxuY29uc3QgcGFnaW5hdGVMaXN0QWxpYXNlcyA9IGNvcmUuY3JlYXRlUGFnaW5hdG9yKExhbWJkYUNsaWVudCwgTGlzdEFsaWFzZXNDb21tYW5kLCBcIk1hcmtlclwiLCBcIk5leHRNYXJrZXJcIiwgXCJNYXhJdGVtc1wiKTtcblxuY29uc3QgcGFnaW5hdGVMaXN0Q2FwYWNpdHlQcm92aWRlcnMgPSBjb3JlLmNyZWF0ZVBhZ2luYXRvcihMYW1iZGFDbGllbnQsIExpc3RDYXBhY2l0eVByb3ZpZGVyc0NvbW1hbmQsIFwiTWFya2VyXCIsIFwiTmV4dE1hcmtlclwiLCBcIk1heEl0ZW1zXCIpO1xuXG5jb25zdCBwYWdpbmF0ZUxpc3RDb2RlU2lnbmluZ0NvbmZpZ3MgPSBjb3JlLmNyZWF0ZVBhZ2luYXRvcihMYW1iZGFDbGllbnQsIExpc3RDb2RlU2lnbmluZ0NvbmZpZ3NDb21tYW5kLCBcIk1hcmtlclwiLCBcIk5leHRNYXJrZXJcIiwgXCJNYXhJdGVtc1wiKTtcblxuY29uc3QgcGFnaW5hdGVMaXN0RHVyYWJsZUV4ZWN1dGlvbnNCeUZ1bmN0aW9uID0gY29yZS5jcmVhdGVQYWdpbmF0b3IoTGFtYmRhQ2xpZW50LCBMaXN0RHVyYWJsZUV4ZWN1dGlvbnNCeUZ1bmN0aW9uQ29tbWFuZCwgXCJNYXJrZXJcIiwgXCJOZXh0TWFya2VyXCIsIFwiTWF4SXRlbXNcIik7XG5cbmNvbnN0IHBhZ2luYXRlTGlzdEV2ZW50U291cmNlTWFwcGluZ3MgPSBjb3JlLmNyZWF0ZVBhZ2luYXRvcihMYW1iZGFDbGllbnQsIExpc3RFdmVudFNvdXJjZU1hcHBpbmdzQ29tbWFuZCwgXCJNYXJrZXJcIiwgXCJOZXh0TWFya2VyXCIsIFwiTWF4SXRlbXNcIik7XG5cbmNvbnN0IHBhZ2luYXRlTGlzdEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdzID0gY29yZS5jcmVhdGVQYWdpbmF0b3IoTGFtYmRhQ2xpZW50LCBMaXN0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ3NDb21tYW5kLCBcIk1hcmtlclwiLCBcIk5leHRNYXJrZXJcIiwgXCJNYXhJdGVtc1wiKTtcblxuY29uc3QgcGFnaW5hdGVMaXN0RnVuY3Rpb25VcmxDb25maWdzID0gY29yZS5jcmVhdGVQYWdpbmF0b3IoTGFtYmRhQ2xpZW50LCBMaXN0RnVuY3Rpb25VcmxDb25maWdzQ29tbWFuZCwgXCJNYXJrZXJcIiwgXCJOZXh0TWFya2VyXCIsIFwiTWF4SXRlbXNcIik7XG5cbmNvbnN0IHBhZ2luYXRlTGlzdEZ1bmN0aW9uVmVyc2lvbnNCeUNhcGFjaXR5UHJvdmlkZXIgPSBjb3JlLmNyZWF0ZVBhZ2luYXRvcihMYW1iZGFDbGllbnQsIExpc3RGdW5jdGlvblZlcnNpb25zQnlDYXBhY2l0eVByb3ZpZGVyQ29tbWFuZCwgXCJNYXJrZXJcIiwgXCJOZXh0TWFya2VyXCIsIFwiTWF4SXRlbXNcIik7XG5cbmNvbnN0IHBhZ2luYXRlTGlzdEZ1bmN0aW9uc0J5Q29kZVNpZ25pbmdDb25maWcgPSBjb3JlLmNyZWF0ZVBhZ2luYXRvcihMYW1iZGFDbGllbnQsIExpc3RGdW5jdGlvbnNCeUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZCwgXCJNYXJrZXJcIiwgXCJOZXh0TWFya2VyXCIsIFwiTWF4SXRlbXNcIik7XG5cbmNvbnN0IHBhZ2luYXRlTGlzdEZ1bmN0aW9ucyA9IGNvcmUuY3JlYXRlUGFnaW5hdG9yKExhbWJkYUNsaWVudCwgTGlzdEZ1bmN0aW9uc0NvbW1hbmQsIFwiTWFya2VyXCIsIFwiTmV4dE1hcmtlclwiLCBcIk1heEl0ZW1zXCIpO1xuXG5jb25zdCBwYWdpbmF0ZUxpc3RMYXllclZlcnNpb25zID0gY29yZS5jcmVhdGVQYWdpbmF0b3IoTGFtYmRhQ2xpZW50LCBMaXN0TGF5ZXJWZXJzaW9uc0NvbW1hbmQsIFwiTWFya2VyXCIsIFwiTmV4dE1hcmtlclwiLCBcIk1heEl0ZW1zXCIpO1xuXG5jb25zdCBwYWdpbmF0ZUxpc3RMYXllcnMgPSBjb3JlLmNyZWF0ZVBhZ2luYXRvcihMYW1iZGFDbGllbnQsIExpc3RMYXllcnNDb21tYW5kLCBcIk1hcmtlclwiLCBcIk5leHRNYXJrZXJcIiwgXCJNYXhJdGVtc1wiKTtcblxuY29uc3QgcGFnaW5hdGVMaXN0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ3MgPSBjb3JlLmNyZWF0ZVBhZ2luYXRvcihMYW1iZGFDbGllbnQsIExpc3RQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnc0NvbW1hbmQsIFwiTWFya2VyXCIsIFwiTmV4dE1hcmtlclwiLCBcIk1heEl0ZW1zXCIpO1xuXG5jb25zdCBwYWdpbmF0ZUxpc3RWZXJzaW9uc0J5RnVuY3Rpb24gPSBjb3JlLmNyZWF0ZVBhZ2luYXRvcihMYW1iZGFDbGllbnQsIExpc3RWZXJzaW9uc0J5RnVuY3Rpb25Db21tYW5kLCBcIk1hcmtlclwiLCBcIk5leHRNYXJrZXJcIiwgXCJNYXhJdGVtc1wiKTtcblxuY29uc3QgY2hlY2tTdGF0ZSQ1ID0gYXN5bmMgKGNsaWVudCwgaW5wdXQpID0+IHtcbiAgICBsZXQgcmVhc29uO1xuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGNsaWVudC5zZW5kKG5ldyBHZXRGdW5jdGlvbkNvbmZpZ3VyYXRpb25Db21tYW5kKGlucHV0KSk7XG4gICAgICAgIHJlYXNvbiA9IHJlc3VsdDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJldHVybkNvbXBhcmF0b3IgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5TdGF0ZTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAocmV0dXJuQ29tcGFyYXRvcigpID09PSBcIkFjdGl2ZVwiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgc3RhdGU6IHV0aWxXYWl0ZXIuV2FpdGVyU3RhdGUuU1VDQ0VTUywgcmVhc29uIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHsgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcmV0dXJuQ29tcGFyYXRvciA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LlN0YXRlO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmIChyZXR1cm5Db21wYXJhdG9yKCkgPT09IFwiRmFpbGVkXCIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBzdGF0ZTogdXRpbFdhaXRlci5XYWl0ZXJTdGF0ZS5GQUlMVVJFLCByZWFzb24gfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkgeyB9XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByZXR1cm5Db21wYXJhdG9yID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQuU3RhdGU7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKHJldHVybkNvbXBhcmF0b3IoKSA9PT0gXCJQZW5kaW5nXCIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBzdGF0ZTogdXRpbFdhaXRlci5XYWl0ZXJTdGF0ZS5SRVRSWSwgcmVhc29uIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHsgfVxuICAgIH1cbiAgICBjYXRjaCAoZXhjZXB0aW9uKSB7XG4gICAgICAgIHJlYXNvbiA9IGV4Y2VwdGlvbjtcbiAgICB9XG4gICAgcmV0dXJuIHsgc3RhdGU6IHV0aWxXYWl0ZXIuV2FpdGVyU3RhdGUuUkVUUlksIHJlYXNvbiB9O1xufTtcbmNvbnN0IHdhaXRGb3JGdW5jdGlvbkFjdGl2ZSA9IGFzeW5jIChwYXJhbXMsIGlucHV0KSA9PiB7XG4gICAgY29uc3Qgc2VydmljZURlZmF1bHRzID0geyBtaW5EZWxheTogNSwgbWF4RGVsYXk6IDMwMCB9O1xuICAgIHJldHVybiB1dGlsV2FpdGVyLmNyZWF0ZVdhaXRlcih7IC4uLnNlcnZpY2VEZWZhdWx0cywgLi4ucGFyYW1zIH0sIGlucHV0LCBjaGVja1N0YXRlJDUpO1xufTtcbmNvbnN0IHdhaXRVbnRpbEZ1bmN0aW9uQWN0aXZlID0gYXN5bmMgKHBhcmFtcywgaW5wdXQpID0+IHtcbiAgICBjb25zdCBzZXJ2aWNlRGVmYXVsdHMgPSB7IG1pbkRlbGF5OiA1LCBtYXhEZWxheTogMzAwIH07XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdXRpbFdhaXRlci5jcmVhdGVXYWl0ZXIoeyAuLi5zZXJ2aWNlRGVmYXVsdHMsIC4uLnBhcmFtcyB9LCBpbnB1dCwgY2hlY2tTdGF0ZSQ1KTtcbiAgICByZXR1cm4gdXRpbFdhaXRlci5jaGVja0V4Y2VwdGlvbnMocmVzdWx0KTtcbn07XG5cbmNvbnN0IGNoZWNrU3RhdGUkNCA9IGFzeW5jIChjbGllbnQsIGlucHV0KSA9PiB7XG4gICAgbGV0IHJlYXNvbjtcbiAgICB0cnkge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBjbGllbnQuc2VuZChuZXcgR2V0RnVuY3Rpb25Db21tYW5kKGlucHV0KSk7XG4gICAgICAgIHJlYXNvbiA9IHJlc3VsdDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJldHVybkNvbXBhcmF0b3IgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5Db25maWd1cmF0aW9uLlN0YXRlO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmIChyZXR1cm5Db21wYXJhdG9yKCkgPT09IFwiQWN0aXZlXCIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBzdGF0ZTogdXRpbFdhaXRlci5XYWl0ZXJTdGF0ZS5TVUNDRVNTLCByZWFzb24gfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkgeyB9XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByZXR1cm5Db21wYXJhdG9yID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQuQ29uZmlndXJhdGlvbi5TdGF0ZTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAocmV0dXJuQ29tcGFyYXRvcigpID09PSBcIkZhaWxlZFwiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgc3RhdGU6IHV0aWxXYWl0ZXIuV2FpdGVyU3RhdGUuRkFJTFVSRSwgcmVhc29uIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHsgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcmV0dXJuQ29tcGFyYXRvciA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LkNvbmZpZ3VyYXRpb24uU3RhdGU7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKHJldHVybkNvbXBhcmF0b3IoKSA9PT0gXCJQZW5kaW5nXCIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBzdGF0ZTogdXRpbFdhaXRlci5XYWl0ZXJTdGF0ZS5SRVRSWSwgcmVhc29uIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHsgfVxuICAgIH1cbiAgICBjYXRjaCAoZXhjZXB0aW9uKSB7XG4gICAgICAgIHJlYXNvbiA9IGV4Y2VwdGlvbjtcbiAgICB9XG4gICAgcmV0dXJuIHsgc3RhdGU6IHV0aWxXYWl0ZXIuV2FpdGVyU3RhdGUuUkVUUlksIHJlYXNvbiB9O1xufTtcbmNvbnN0IHdhaXRGb3JGdW5jdGlvbkFjdGl2ZVYyID0gYXN5bmMgKHBhcmFtcywgaW5wdXQpID0+IHtcbiAgICBjb25zdCBzZXJ2aWNlRGVmYXVsdHMgPSB7IG1pbkRlbGF5OiAxLCBtYXhEZWxheTogMzAwIH07XG4gICAgcmV0dXJuIHV0aWxXYWl0ZXIuY3JlYXRlV2FpdGVyKHsgLi4uc2VydmljZURlZmF1bHRzLCAuLi5wYXJhbXMgfSwgaW5wdXQsIGNoZWNrU3RhdGUkNCk7XG59O1xuY29uc3Qgd2FpdFVudGlsRnVuY3Rpb25BY3RpdmVWMiA9IGFzeW5jIChwYXJhbXMsIGlucHV0KSA9PiB7XG4gICAgY29uc3Qgc2VydmljZURlZmF1bHRzID0geyBtaW5EZWxheTogMSwgbWF4RGVsYXk6IDMwMCB9O1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHV0aWxXYWl0ZXIuY3JlYXRlV2FpdGVyKHsgLi4uc2VydmljZURlZmF1bHRzLCAuLi5wYXJhbXMgfSwgaW5wdXQsIGNoZWNrU3RhdGUkNCk7XG4gICAgcmV0dXJuIHV0aWxXYWl0ZXIuY2hlY2tFeGNlcHRpb25zKHJlc3VsdCk7XG59O1xuXG5jb25zdCBjaGVja1N0YXRlJDMgPSBhc3luYyAoY2xpZW50LCBpbnB1dCkgPT4ge1xuICAgIGxldCByZWFzb247XG4gICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgY2xpZW50LnNlbmQobmV3IEdldEZ1bmN0aW9uQ29tbWFuZChpbnB1dCkpO1xuICAgICAgICByZWFzb24gPSByZXN1bHQ7XG4gICAgICAgIHJldHVybiB7IHN0YXRlOiB1dGlsV2FpdGVyLldhaXRlclN0YXRlLlNVQ0NFU1MsIHJlYXNvbiB9O1xuICAgIH1cbiAgICBjYXRjaCAoZXhjZXB0aW9uKSB7XG4gICAgICAgIHJlYXNvbiA9IGV4Y2VwdGlvbjtcbiAgICAgICAgaWYgKGV4Y2VwdGlvbi5uYW1lICYmIGV4Y2VwdGlvbi5uYW1lID09IFwiUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvblwiKSB7XG4gICAgICAgICAgICByZXR1cm4geyBzdGF0ZTogdXRpbFdhaXRlci5XYWl0ZXJTdGF0ZS5SRVRSWSwgcmVhc29uIH07XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHsgc3RhdGU6IHV0aWxXYWl0ZXIuV2FpdGVyU3RhdGUuUkVUUlksIHJlYXNvbiB9O1xufTtcbmNvbnN0IHdhaXRGb3JGdW5jdGlvbkV4aXN0cyA9IGFzeW5jIChwYXJhbXMsIGlucHV0KSA9PiB7XG4gICAgY29uc3Qgc2VydmljZURlZmF1bHRzID0geyBtaW5EZWxheTogMSwgbWF4RGVsYXk6IDIwIH07XG4gICAgcmV0dXJuIHV0aWxXYWl0ZXIuY3JlYXRlV2FpdGVyKHsgLi4uc2VydmljZURlZmF1bHRzLCAuLi5wYXJhbXMgfSwgaW5wdXQsIGNoZWNrU3RhdGUkMyk7XG59O1xuY29uc3Qgd2FpdFVudGlsRnVuY3Rpb25FeGlzdHMgPSBhc3luYyAocGFyYW1zLCBpbnB1dCkgPT4ge1xuICAgIGNvbnN0IHNlcnZpY2VEZWZhdWx0cyA9IHsgbWluRGVsYXk6IDEsIG1heERlbGF5OiAyMCB9O1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHV0aWxXYWl0ZXIuY3JlYXRlV2FpdGVyKHsgLi4uc2VydmljZURlZmF1bHRzLCAuLi5wYXJhbXMgfSwgaW5wdXQsIGNoZWNrU3RhdGUkMyk7XG4gICAgcmV0dXJuIHV0aWxXYWl0ZXIuY2hlY2tFeGNlcHRpb25zKHJlc3VsdCk7XG59O1xuXG5jb25zdCBjaGVja1N0YXRlJDIgPSBhc3luYyAoY2xpZW50LCBpbnB1dCkgPT4ge1xuICAgIGxldCByZWFzb247XG4gICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgY2xpZW50LnNlbmQobmV3IEdldEZ1bmN0aW9uQ29uZmlndXJhdGlvbkNvbW1hbmQoaW5wdXQpKTtcbiAgICAgICAgcmVhc29uID0gcmVzdWx0O1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcmV0dXJuQ29tcGFyYXRvciA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0Lkxhc3RVcGRhdGVTdGF0dXM7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKHJldHVybkNvbXBhcmF0b3IoKSA9PT0gXCJTdWNjZXNzZnVsXCIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBzdGF0ZTogdXRpbFdhaXRlci5XYWl0ZXJTdGF0ZS5TVUNDRVNTLCByZWFzb24gfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkgeyB9XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByZXR1cm5Db21wYXJhdG9yID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQuTGFzdFVwZGF0ZVN0YXR1cztcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAocmV0dXJuQ29tcGFyYXRvcigpID09PSBcIkZhaWxlZFwiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgc3RhdGU6IHV0aWxXYWl0ZXIuV2FpdGVyU3RhdGUuRkFJTFVSRSwgcmVhc29uIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHsgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcmV0dXJuQ29tcGFyYXRvciA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0Lkxhc3RVcGRhdGVTdGF0dXM7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKHJldHVybkNvbXBhcmF0b3IoKSA9PT0gXCJJblByb2dyZXNzXCIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBzdGF0ZTogdXRpbFdhaXRlci5XYWl0ZXJTdGF0ZS5SRVRSWSwgcmVhc29uIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHsgfVxuICAgIH1cbiAgICBjYXRjaCAoZXhjZXB0aW9uKSB7XG4gICAgICAgIHJlYXNvbiA9IGV4Y2VwdGlvbjtcbiAgICB9XG4gICAgcmV0dXJuIHsgc3RhdGU6IHV0aWxXYWl0ZXIuV2FpdGVyU3RhdGUuUkVUUlksIHJlYXNvbiB9O1xufTtcbmNvbnN0IHdhaXRGb3JGdW5jdGlvblVwZGF0ZWQgPSBhc3luYyAocGFyYW1zLCBpbnB1dCkgPT4ge1xuICAgIGNvbnN0IHNlcnZpY2VEZWZhdWx0cyA9IHsgbWluRGVsYXk6IDUsIG1heERlbGF5OiAzMDAgfTtcbiAgICByZXR1cm4gdXRpbFdhaXRlci5jcmVhdGVXYWl0ZXIoeyAuLi5zZXJ2aWNlRGVmYXVsdHMsIC4uLnBhcmFtcyB9LCBpbnB1dCwgY2hlY2tTdGF0ZSQyKTtcbn07XG5jb25zdCB3YWl0VW50aWxGdW5jdGlvblVwZGF0ZWQgPSBhc3luYyAocGFyYW1zLCBpbnB1dCkgPT4ge1xuICAgIGNvbnN0IHNlcnZpY2VEZWZhdWx0cyA9IHsgbWluRGVsYXk6IDUsIG1heERlbGF5OiAzMDAgfTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB1dGlsV2FpdGVyLmNyZWF0ZVdhaXRlcih7IC4uLnNlcnZpY2VEZWZhdWx0cywgLi4ucGFyYW1zIH0sIGlucHV0LCBjaGVja1N0YXRlJDIpO1xuICAgIHJldHVybiB1dGlsV2FpdGVyLmNoZWNrRXhjZXB0aW9ucyhyZXN1bHQpO1xufTtcblxuY29uc3QgY2hlY2tTdGF0ZSQxID0gYXN5bmMgKGNsaWVudCwgaW5wdXQpID0+IHtcbiAgICBsZXQgcmVhc29uO1xuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGNsaWVudC5zZW5kKG5ldyBHZXRGdW5jdGlvbkNvbW1hbmQoaW5wdXQpKTtcbiAgICAgICAgcmVhc29uID0gcmVzdWx0O1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcmV0dXJuQ29tcGFyYXRvciA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LkNvbmZpZ3VyYXRpb24uTGFzdFVwZGF0ZVN0YXR1cztcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAocmV0dXJuQ29tcGFyYXRvcigpID09PSBcIlN1Y2Nlc3NmdWxcIikge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IHN0YXRlOiB1dGlsV2FpdGVyLldhaXRlclN0YXRlLlNVQ0NFU1MsIHJlYXNvbiB9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7IH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJldHVybkNvbXBhcmF0b3IgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5Db25maWd1cmF0aW9uLkxhc3RVcGRhdGVTdGF0dXM7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKHJldHVybkNvbXBhcmF0b3IoKSA9PT0gXCJGYWlsZWRcIikge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IHN0YXRlOiB1dGlsV2FpdGVyLldhaXRlclN0YXRlLkZBSUxVUkUsIHJlYXNvbiB9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7IH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJldHVybkNvbXBhcmF0b3IgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5Db25maWd1cmF0aW9uLkxhc3RVcGRhdGVTdGF0dXM7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKHJldHVybkNvbXBhcmF0b3IoKSA9PT0gXCJJblByb2dyZXNzXCIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBzdGF0ZTogdXRpbFdhaXRlci5XYWl0ZXJTdGF0ZS5SRVRSWSwgcmVhc29uIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHsgfVxuICAgIH1cbiAgICBjYXRjaCAoZXhjZXB0aW9uKSB7XG4gICAgICAgIHJlYXNvbiA9IGV4Y2VwdGlvbjtcbiAgICB9XG4gICAgcmV0dXJuIHsgc3RhdGU6IHV0aWxXYWl0ZXIuV2FpdGVyU3RhdGUuUkVUUlksIHJlYXNvbiB9O1xufTtcbmNvbnN0IHdhaXRGb3JGdW5jdGlvblVwZGF0ZWRWMiA9IGFzeW5jIChwYXJhbXMsIGlucHV0KSA9PiB7XG4gICAgY29uc3Qgc2VydmljZURlZmF1bHRzID0geyBtaW5EZWxheTogMSwgbWF4RGVsYXk6IDMwMCB9O1xuICAgIHJldHVybiB1dGlsV2FpdGVyLmNyZWF0ZVdhaXRlcih7IC4uLnNlcnZpY2VEZWZhdWx0cywgLi4ucGFyYW1zIH0sIGlucHV0LCBjaGVja1N0YXRlJDEpO1xufTtcbmNvbnN0IHdhaXRVbnRpbEZ1bmN0aW9uVXBkYXRlZFYyID0gYXN5bmMgKHBhcmFtcywgaW5wdXQpID0+IHtcbiAgICBjb25zdCBzZXJ2aWNlRGVmYXVsdHMgPSB7IG1pbkRlbGF5OiAxLCBtYXhEZWxheTogMzAwIH07XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdXRpbFdhaXRlci5jcmVhdGVXYWl0ZXIoeyAuLi5zZXJ2aWNlRGVmYXVsdHMsIC4uLnBhcmFtcyB9LCBpbnB1dCwgY2hlY2tTdGF0ZSQxKTtcbiAgICByZXR1cm4gdXRpbFdhaXRlci5jaGVja0V4Y2VwdGlvbnMocmVzdWx0KTtcbn07XG5cbmNvbnN0IGNoZWNrU3RhdGUgPSBhc3luYyAoY2xpZW50LCBpbnB1dCkgPT4ge1xuICAgIGxldCByZWFzb247XG4gICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgY2xpZW50LnNlbmQobmV3IEdldEZ1bmN0aW9uQ29uZmlndXJhdGlvbkNvbW1hbmQoaW5wdXQpKTtcbiAgICAgICAgcmVhc29uID0gcmVzdWx0O1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcmV0dXJuQ29tcGFyYXRvciA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LlN0YXRlO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmIChyZXR1cm5Db21wYXJhdG9yKCkgPT09IFwiQWN0aXZlXCIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBzdGF0ZTogdXRpbFdhaXRlci5XYWl0ZXJTdGF0ZS5TVUNDRVNTLCByZWFzb24gfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkgeyB9XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByZXR1cm5Db21wYXJhdG9yID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQuU3RhdGU7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKHJldHVybkNvbXBhcmF0b3IoKSA9PT0gXCJGYWlsZWRcIikge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IHN0YXRlOiB1dGlsV2FpdGVyLldhaXRlclN0YXRlLkZBSUxVUkUsIHJlYXNvbiB9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7IH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJldHVybkNvbXBhcmF0b3IgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5TdGF0ZTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAocmV0dXJuQ29tcGFyYXRvcigpID09PSBcIlBlbmRpbmdcIikge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IHN0YXRlOiB1dGlsV2FpdGVyLldhaXRlclN0YXRlLlJFVFJZLCByZWFzb24gfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkgeyB9XG4gICAgfVxuICAgIGNhdGNoIChleGNlcHRpb24pIHtcbiAgICAgICAgcmVhc29uID0gZXhjZXB0aW9uO1xuICAgIH1cbiAgICByZXR1cm4geyBzdGF0ZTogdXRpbFdhaXRlci5XYWl0ZXJTdGF0ZS5SRVRSWSwgcmVhc29uIH07XG59O1xuY29uc3Qgd2FpdEZvclB1Ymxpc2hlZFZlcnNpb25BY3RpdmUgPSBhc3luYyAocGFyYW1zLCBpbnB1dCkgPT4ge1xuICAgIGNvbnN0IHNlcnZpY2VEZWZhdWx0cyA9IHsgbWluRGVsYXk6IDUsIG1heERlbGF5OiAxNTYwIH07XG4gICAgcmV0dXJuIHV0aWxXYWl0ZXIuY3JlYXRlV2FpdGVyKHsgLi4uc2VydmljZURlZmF1bHRzLCAuLi5wYXJhbXMgfSwgaW5wdXQsIGNoZWNrU3RhdGUpO1xufTtcbmNvbnN0IHdhaXRVbnRpbFB1Ymxpc2hlZFZlcnNpb25BY3RpdmUgPSBhc3luYyAocGFyYW1zLCBpbnB1dCkgPT4ge1xuICAgIGNvbnN0IHNlcnZpY2VEZWZhdWx0cyA9IHsgbWluRGVsYXk6IDUsIG1heERlbGF5OiAxNTYwIH07XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdXRpbFdhaXRlci5jcmVhdGVXYWl0ZXIoeyAuLi5zZXJ2aWNlRGVmYXVsdHMsIC4uLnBhcmFtcyB9LCBpbnB1dCwgY2hlY2tTdGF0ZSk7XG4gICAgcmV0dXJuIHV0aWxXYWl0ZXIuY2hlY2tFeGNlcHRpb25zKHJlc3VsdCk7XG59O1xuXG5jb25zdCBUaHJvdHRsZVJlYXNvbiA9IHtcbiAgICBDYWxsZXJSYXRlTGltaXRFeGNlZWRlZDogXCJDYWxsZXJSYXRlTGltaXRFeGNlZWRlZFwiLFxuICAgIENvbmN1cnJlbnRJbnZvY2F0aW9uTGltaXRFeGNlZWRlZDogXCJDb25jdXJyZW50SW52b2NhdGlvbkxpbWl0RXhjZWVkZWRcIixcbiAgICBDb25jdXJyZW50U25hcHNob3RDcmVhdGVMaW1pdEV4Y2VlZGVkOiBcIkNvbmN1cnJlbnRTbmFwc2hvdENyZWF0ZUxpbWl0RXhjZWVkZWRcIixcbiAgICBGdW5jdGlvbkludm9jYXRpb25SYXRlTGltaXRFeGNlZWRlZDogXCJGdW5jdGlvbkludm9jYXRpb25SYXRlTGltaXRFeGNlZWRlZFwiLFxuICAgIFJlc2VydmVkRnVuY3Rpb25Db25jdXJyZW50SW52b2NhdGlvbkxpbWl0RXhjZWVkZWQ6IFwiUmVzZXJ2ZWRGdW5jdGlvbkNvbmN1cnJlbnRJbnZvY2F0aW9uTGltaXRFeGNlZWRlZFwiLFxuICAgIFJlc2VydmVkRnVuY3Rpb25JbnZvY2F0aW9uUmF0ZUxpbWl0RXhjZWVkZWQ6IFwiUmVzZXJ2ZWRGdW5jdGlvbkludm9jYXRpb25SYXRlTGltaXRFeGNlZWRlZFwiLFxufTtcbmNvbnN0IEZ1bmN0aW9uVXJsQXV0aFR5cGUgPSB7XG4gICAgQVdTX0lBTTogXCJBV1NfSUFNXCIsXG4gICAgTk9ORTogXCJOT05FXCIsXG59O1xuY29uc3QgS2Fma2FTY2hlbWFSZWdpc3RyeUF1dGhUeXBlID0ge1xuICAgIEJBU0lDX0FVVEg6IFwiQkFTSUNfQVVUSFwiLFxuICAgIENMSUVOVF9DRVJUSUZJQ0FURV9UTFNfQVVUSDogXCJDTElFTlRfQ0VSVElGSUNBVEVfVExTX0FVVEhcIixcbiAgICBTRVJWRVJfUk9PVF9DQV9DRVJUSUZJQ0FURTogXCJTRVJWRVJfUk9PVF9DQV9DRVJUSUZJQ0FURVwiLFxufTtcbmNvbnN0IFNjaGVtYVJlZ2lzdHJ5RXZlbnRSZWNvcmRGb3JtYXQgPSB7XG4gICAgSlNPTjogXCJKU09OXCIsXG4gICAgU09VUkNFOiBcIlNPVVJDRVwiLFxufTtcbmNvbnN0IEthZmthU2NoZW1hVmFsaWRhdGlvbkF0dHJpYnV0ZSA9IHtcbiAgICBLRVk6IFwiS0VZXCIsXG4gICAgVkFMVUU6IFwiVkFMVUVcIixcbn07XG5jb25zdCBBcHBsaWNhdGlvbkxvZ0xldmVsID0ge1xuICAgIERlYnVnOiBcIkRFQlVHXCIsXG4gICAgRXJyb3I6IFwiRVJST1JcIixcbiAgICBGYXRhbDogXCJGQVRBTFwiLFxuICAgIEluZm86IFwiSU5GT1wiLFxuICAgIFRyYWNlOiBcIlRSQUNFXCIsXG4gICAgV2FybjogXCJXQVJOXCIsXG59O1xuY29uc3QgQXJjaGl0ZWN0dXJlID0ge1xuICAgIGFybTY0OiBcImFybTY0XCIsXG4gICAgeDg2XzY0OiBcIng4Nl82NFwiLFxufTtcbmNvbnN0IENhcGFjaXR5UHJvdmlkZXJTY2FsaW5nTW9kZSA9IHtcbiAgICBBdXRvOiBcIkF1dG9cIixcbiAgICBNYW51YWw6IFwiTWFudWFsXCIsXG59O1xuY29uc3QgQ2FwYWNpdHlQcm92aWRlclByZWRlZmluZWRNZXRyaWNUeXBlID0ge1xuICAgIExhbWJkYUNhcGFjaXR5UHJvdmlkZXJBdmVyYWdlQ1BVVXRpbGl6YXRpb246IFwiTGFtYmRhQ2FwYWNpdHlQcm92aWRlckF2ZXJhZ2VDUFVVdGlsaXphdGlvblwiLFxufTtcbmNvbnN0IENhcGFjaXR5UHJvdmlkZXJTdGF0ZSA9IHtcbiAgICBBY3RpdmU6IFwiQWN0aXZlXCIsXG4gICAgRGVsZXRpbmc6IFwiRGVsZXRpbmdcIixcbiAgICBGYWlsZWQ6IFwiRmFpbGVkXCIsXG4gICAgUGVuZGluZzogXCJQZW5kaW5nXCIsXG59O1xuY29uc3QgU3RhdGUgPSB7XG4gICAgQWN0aXZlOiBcIkFjdGl2ZVwiLFxuICAgIEFjdGl2ZU5vbkludm9jYWJsZTogXCJBY3RpdmVOb25JbnZvY2FibGVcIixcbiAgICBEZWFjdGl2YXRlZDogXCJEZWFjdGl2YXRlZFwiLFxuICAgIERlYWN0aXZhdGluZzogXCJEZWFjdGl2YXRpbmdcIixcbiAgICBEZWxldGluZzogXCJEZWxldGluZ1wiLFxuICAgIEZhaWxlZDogXCJGYWlsZWRcIixcbiAgICBJbmFjdGl2ZTogXCJJbmFjdGl2ZVwiLFxuICAgIFBlbmRpbmc6IFwiUGVuZGluZ1wiLFxufTtcbmNvbnN0IE9wZXJhdGlvbkFjdGlvbiA9IHtcbiAgICBDQU5DRUw6IFwiQ0FOQ0VMXCIsXG4gICAgRkFJTDogXCJGQUlMXCIsXG4gICAgUkVUUlk6IFwiUkVUUllcIixcbiAgICBTVEFSVDogXCJTVEFSVFwiLFxuICAgIFNVQ0NFRUQ6IFwiU1VDQ0VFRFwiLFxufTtcbmNvbnN0IE9wZXJhdGlvblR5cGUgPSB7XG4gICAgQ0FMTEJBQ0s6IFwiQ0FMTEJBQ0tcIixcbiAgICBDSEFJTkVEX0lOVk9LRTogXCJDSEFJTkVEX0lOVk9LRVwiLFxuICAgIENPTlRFWFQ6IFwiQ09OVEVYVFwiLFxuICAgIEVYRUNVVElPTjogXCJFWEVDVVRJT05cIixcbiAgICBTVEVQOiBcIlNURVBcIixcbiAgICBXQUlUOiBcIldBSVRcIixcbn07XG5jb25zdCBPcGVyYXRpb25TdGF0dXMgPSB7XG4gICAgQ0FOQ0VMTEVEOiBcIkNBTkNFTExFRFwiLFxuICAgIEZBSUxFRDogXCJGQUlMRURcIixcbiAgICBQRU5ESU5HOiBcIlBFTkRJTkdcIixcbiAgICBSRUFEWTogXCJSRUFEWVwiLFxuICAgIFNUQVJURUQ6IFwiU1RBUlRFRFwiLFxuICAgIFNUT1BQRUQ6IFwiU1RPUFBFRFwiLFxuICAgIFNVQ0NFRURFRDogXCJTVUNDRUVERURcIixcbiAgICBUSU1FRF9PVVQ6IFwiVElNRURfT1VUXCIsXG59O1xuY29uc3QgQ29kZVNpZ25pbmdQb2xpY3kgPSB7XG4gICAgRW5mb3JjZTogXCJFbmZvcmNlXCIsXG4gICAgV2FybjogXCJXYXJuXCIsXG59O1xuY29uc3QgRnVsbERvY3VtZW50ID0ge1xuICAgIERlZmF1bHQ6IFwiRGVmYXVsdFwiLFxuICAgIFVwZGF0ZUxvb2t1cDogXCJVcGRhdGVMb29rdXBcIixcbn07XG5jb25zdCBGdW5jdGlvblJlc3BvbnNlVHlwZSA9IHtcbiAgICBSZXBvcnRCYXRjaEl0ZW1GYWlsdXJlczogXCJSZXBvcnRCYXRjaEl0ZW1GYWlsdXJlc1wiLFxufTtcbmNvbnN0IEV2ZW50U291cmNlTWFwcGluZ01ldHJpYyA9IHtcbiAgICBFdmVudENvdW50OiBcIkV2ZW50Q291bnRcIixcbn07XG5jb25zdCBFbmRQb2ludFR5cGUgPSB7XG4gICAgS0FGS0FfQk9PVFNUUkFQX1NFUlZFUlM6IFwiS0FGS0FfQk9PVFNUUkFQX1NFUlZFUlNcIixcbn07XG5jb25zdCBTb3VyY2VBY2Nlc3NUeXBlID0ge1xuICAgIEJBU0lDX0FVVEg6IFwiQkFTSUNfQVVUSFwiLFxuICAgIENMSUVOVF9DRVJUSUZJQ0FURV9UTFNfQVVUSDogXCJDTElFTlRfQ0VSVElGSUNBVEVfVExTX0FVVEhcIixcbiAgICBTQVNMX1NDUkFNXzI1Nl9BVVRIOiBcIlNBU0xfU0NSQU1fMjU2X0FVVEhcIixcbiAgICBTQVNMX1NDUkFNXzUxMl9BVVRIOiBcIlNBU0xfU0NSQU1fNTEyX0FVVEhcIixcbiAgICBTRVJWRVJfUk9PVF9DQV9DRVJUSUZJQ0FURTogXCJTRVJWRVJfUk9PVF9DQV9DRVJUSUZJQ0FURVwiLFxuICAgIFZJUlRVQUxfSE9TVDogXCJWSVJUVUFMX0hPU1RcIixcbiAgICBWUENfU0VDVVJJVFlfR1JPVVA6IFwiVlBDX1NFQ1VSSVRZX0dST1VQXCIsXG4gICAgVlBDX1NVQk5FVDogXCJWUENfU1VCTkVUXCIsXG59O1xuY29uc3QgRXZlbnRTb3VyY2VQb3NpdGlvbiA9IHtcbiAgICBBVF9USU1FU1RBTVA6IFwiQVRfVElNRVNUQU1QXCIsXG4gICAgTEFURVNUOiBcIkxBVEVTVFwiLFxuICAgIFRSSU1fSE9SSVpPTjogXCJUUklNX0hPUklaT05cIixcbn07XG5jb25zdCBMb2dGb3JtYXQgPSB7XG4gICAgSnNvbjogXCJKU09OXCIsXG4gICAgVGV4dDogXCJUZXh0XCIsXG59O1xuY29uc3QgU3lzdGVtTG9nTGV2ZWwgPSB7XG4gICAgRGVidWc6IFwiREVCVUdcIixcbiAgICBJbmZvOiBcIklORk9cIixcbiAgICBXYXJuOiBcIldBUk5cIixcbn07XG5jb25zdCBQYWNrYWdlVHlwZSA9IHtcbiAgICBJbWFnZTogXCJJbWFnZVwiLFxuICAgIFppcDogXCJaaXBcIixcbn07XG5jb25zdCBGdW5jdGlvblZlcnNpb25MYXRlc3RQdWJsaXNoZWQgPSB7XG4gICAgTEFURVNUX1BVQkxJU0hFRDogXCJMQVRFU1RfUFVCTElTSEVEXCIsXG59O1xuY29uc3QgUnVudGltZSA9IHtcbiAgICBkb3RuZXQxMDogXCJkb3RuZXQxMFwiLFxuICAgIGRvdG5ldDY6IFwiZG90bmV0NlwiLFxuICAgIGRvdG5ldDg6IFwiZG90bmV0OFwiLFxuICAgIGRvdG5ldGNvcmUxMDogXCJkb3RuZXRjb3JlMS4wXCIsXG4gICAgZG90bmV0Y29yZTIwOiBcImRvdG5ldGNvcmUyLjBcIixcbiAgICBkb3RuZXRjb3JlMjE6IFwiZG90bmV0Y29yZTIuMVwiLFxuICAgIGRvdG5ldGNvcmUzMTogXCJkb3RuZXRjb3JlMy4xXCIsXG4gICAgZ28xeDogXCJnbzEueFwiLFxuICAgIGphdmExMTogXCJqYXZhMTFcIixcbiAgICBqYXZhMTc6IFwiamF2YTE3XCIsXG4gICAgamF2YTIxOiBcImphdmEyMVwiLFxuICAgIGphdmEyNTogXCJqYXZhMjVcIixcbiAgICBqYXZhODogXCJqYXZhOFwiLFxuICAgIGphdmE4YWwyOiBcImphdmE4LmFsMlwiLFxuICAgIG5vZGVqczogXCJub2RlanNcIixcbiAgICBub2RlanMxMHg6IFwibm9kZWpzMTAueFwiLFxuICAgIG5vZGVqczEyeDogXCJub2RlanMxMi54XCIsXG4gICAgbm9kZWpzMTR4OiBcIm5vZGVqczE0LnhcIixcbiAgICBub2RlanMxNng6IFwibm9kZWpzMTYueFwiLFxuICAgIG5vZGVqczE4eDogXCJub2RlanMxOC54XCIsXG4gICAgbm9kZWpzMjB4OiBcIm5vZGVqczIwLnhcIixcbiAgICBub2RlanMyMng6IFwibm9kZWpzMjIueFwiLFxuICAgIG5vZGVqczI0eDogXCJub2RlanMyNC54XCIsXG4gICAgbm9kZWpzNDM6IFwibm9kZWpzNC4zXCIsXG4gICAgbm9kZWpzNDNlZGdlOiBcIm5vZGVqczQuMy1lZGdlXCIsXG4gICAgbm9kZWpzNjEwOiBcIm5vZGVqczYuMTBcIixcbiAgICBub2RlanM4MTA6IFwibm9kZWpzOC4xMFwiLFxuICAgIHByb3ZpZGVkOiBcInByb3ZpZGVkXCIsXG4gICAgcHJvdmlkZWRhbDI6IFwicHJvdmlkZWQuYWwyXCIsXG4gICAgcHJvdmlkZWRhbDIwMjM6IFwicHJvdmlkZWQuYWwyMDIzXCIsXG4gICAgcHl0aG9uMjc6IFwicHl0aG9uMi43XCIsXG4gICAgcHl0aG9uMzEwOiBcInB5dGhvbjMuMTBcIixcbiAgICBweXRob24zMTE6IFwicHl0aG9uMy4xMVwiLFxuICAgIHB5dGhvbjMxMjogXCJweXRob24zLjEyXCIsXG4gICAgcHl0aG9uMzEzOiBcInB5dGhvbjMuMTNcIixcbiAgICBweXRob24zMTQ6IFwicHl0aG9uMy4xNFwiLFxuICAgIHB5dGhvbjM2OiBcInB5dGhvbjMuNlwiLFxuICAgIHB5dGhvbjM3OiBcInB5dGhvbjMuN1wiLFxuICAgIHB5dGhvbjM4OiBcInB5dGhvbjMuOFwiLFxuICAgIHB5dGhvbjM5OiBcInB5dGhvbjMuOVwiLFxuICAgIHJ1YnkyNTogXCJydWJ5Mi41XCIsXG4gICAgcnVieTI3OiBcInJ1YnkyLjdcIixcbiAgICBydWJ5MzI6IFwicnVieTMuMlwiLFxuICAgIHJ1YnkzMzogXCJydWJ5My4zXCIsXG4gICAgcnVieTM0OiBcInJ1YnkzLjRcIixcbn07XG5jb25zdCBTbmFwU3RhcnRBcHBseU9uID0ge1xuICAgIE5vbmU6IFwiTm9uZVwiLFxuICAgIFB1Ymxpc2hlZFZlcnNpb25zOiBcIlB1Ymxpc2hlZFZlcnNpb25zXCIsXG59O1xuY29uc3QgVGVuYW50SXNvbGF0aW9uTW9kZSA9IHtcbiAgICBQRVJfVEVOQU5UOiBcIlBFUl9URU5BTlRcIixcbn07XG5jb25zdCBUcmFjaW5nTW9kZSA9IHtcbiAgICBBY3RpdmU6IFwiQWN0aXZlXCIsXG4gICAgUGFzc1Rocm91Z2g6IFwiUGFzc1Rocm91Z2hcIixcbn07XG5jb25zdCBMYXN0VXBkYXRlU3RhdHVzID0ge1xuICAgIEZhaWxlZDogXCJGYWlsZWRcIixcbiAgICBJblByb2dyZXNzOiBcIkluUHJvZ3Jlc3NcIixcbiAgICBTdWNjZXNzZnVsOiBcIlN1Y2Nlc3NmdWxcIixcbn07XG5jb25zdCBMYXN0VXBkYXRlU3RhdHVzUmVhc29uQ29kZSA9IHtcbiAgICBDYXBhY2l0eVByb3ZpZGVyU2NhbGluZ0xpbWl0RXhjZWVkZWQ6IFwiQ2FwYWNpdHlQcm92aWRlclNjYWxpbmdMaW1pdEV4Y2VlZGVkXCIsXG4gICAgRGlzYWJsZWRLTVNLZXk6IFwiRGlzYWJsZWRLTVNLZXlcIixcbiAgICBEaXNhbGxvd2VkQnlWcGNFbmNyeXB0aW9uQ29udHJvbDogXCJEaXNhbGxvd2VkQnlWcGNFbmNyeXB0aW9uQ29udHJvbFwiLFxuICAgIEVDMlJlcXVlc3RMaW1pdEV4Y2VlZGVkOiBcIkVDMlJlcXVlc3RMaW1pdEV4Y2VlZGVkXCIsXG4gICAgRUZTSU9FcnJvcjogXCJFRlNJT0Vycm9yXCIsXG4gICAgRUZTTW91bnRDb25uZWN0aXZpdHlFcnJvcjogXCJFRlNNb3VudENvbm5lY3Rpdml0eUVycm9yXCIsXG4gICAgRUZTTW91bnRGYWlsdXJlOiBcIkVGU01vdW50RmFpbHVyZVwiLFxuICAgIEVGU01vdW50VGltZW91dDogXCJFRlNNb3VudFRpbWVvdXRcIixcbiAgICBFbmlMaW1pdEV4Y2VlZGVkOiBcIkVuaUxpbWl0RXhjZWVkZWRcIixcbiAgICBGdW5jdGlvbkVycm9yOiBcIkZ1bmN0aW9uRXJyb3JcIixcbiAgICBGdW5jdGlvbkVycm9yRXh0ZW5zaW9uSW5pdEVycm9yOiBcIkZ1bmN0aW9uRXJyb3IuRXh0ZW5zaW9uSW5pdEVycm9yXCIsXG4gICAgRnVuY3Rpb25FcnJvckluaXRSZXNvdXJjZUV4aGF1c3RlZDogXCJGdW5jdGlvbkVycm9yLkluaXRSZXNvdXJjZUV4aGF1c3RlZFwiLFxuICAgIEZ1bmN0aW9uRXJyb3JJbml0VGltZW91dDogXCJGdW5jdGlvbkVycm9yLkluaXRUaW1lb3V0XCIsXG4gICAgRnVuY3Rpb25FcnJvckludmFsaWRFbnRyeVBvaW50OiBcIkZ1bmN0aW9uRXJyb3IuSW52YWxpZEVudHJ5UG9pbnRcIixcbiAgICBGdW5jdGlvbkVycm9ySW52YWxpZFdvcmtpbmdEaXJlY3Rvcnk6IFwiRnVuY3Rpb25FcnJvci5JbnZhbGlkV29ya2luZ0RpcmVjdG9yeVwiLFxuICAgIEZ1bmN0aW9uRXJyb3JQZXJtaXNzaW9uRGVuaWVkOiBcIkZ1bmN0aW9uRXJyb3IuUGVybWlzc2lvbkRlbmllZFwiLFxuICAgIEZ1bmN0aW9uRXJyb3JSdW50aW1lSW5pdEVycm9yOiBcIkZ1bmN0aW9uRXJyb3IuUnVudGltZUluaXRFcnJvclwiLFxuICAgIEZ1bmN0aW9uRXJyb3JUb29NYW55RXh0ZW5zaW9uczogXCJGdW5jdGlvbkVycm9yLlRvb01hbnlFeHRlbnNpb25zXCIsXG4gICAgSW1hZ2VBY2Nlc3NEZW5pZWQ6IFwiSW1hZ2VBY2Nlc3NEZW5pZWRcIixcbiAgICBJbWFnZURlbGV0ZWQ6IFwiSW1hZ2VEZWxldGVkXCIsXG4gICAgSW5zdWZmaWNpZW50Q2FwYWNpdHk6IFwiSW5zdWZmaWNpZW50Q2FwYWNpdHlcIixcbiAgICBJbnN1ZmZpY2llbnRSb2xlUGVybWlzc2lvbnM6IFwiSW5zdWZmaWNpZW50Um9sZVBlcm1pc3Npb25zXCIsXG4gICAgSW50ZXJuYWxFcnJvcjogXCJJbnRlcm5hbEVycm9yXCIsXG4gICAgSW52YWxpZENvbmZpZ3VyYXRpb246IFwiSW52YWxpZENvbmZpZ3VyYXRpb25cIixcbiAgICBJbnZhbGlkSW1hZ2U6IFwiSW52YWxpZEltYWdlXCIsXG4gICAgSW52YWxpZFJ1bnRpbWU6IFwiSW52YWxpZFJ1bnRpbWVcIixcbiAgICBJbnZhbGlkU2VjdXJpdHlHcm91cDogXCJJbnZhbGlkU2VjdXJpdHlHcm91cFwiLFxuICAgIEludmFsaWRTdGF0ZUtNU0tleTogXCJJbnZhbGlkU3RhdGVLTVNLZXlcIixcbiAgICBJbnZhbGlkU3VibmV0OiBcIkludmFsaWRTdWJuZXRcIixcbiAgICBJbnZhbGlkWmlwRmlsZUV4Y2VwdGlvbjogXCJJbnZhbGlkWmlwRmlsZUV4Y2VwdGlvblwiLFxuICAgIEtNU0tleUFjY2Vzc0RlbmllZDogXCJLTVNLZXlBY2Nlc3NEZW5pZWRcIixcbiAgICBLTVNLZXlOb3RGb3VuZDogXCJLTVNLZXlOb3RGb3VuZFwiLFxuICAgIFN1Ym5ldE91dE9mSVBBZGRyZXNzZXM6IFwiU3VibmV0T3V0T2ZJUEFkZHJlc3Nlc1wiLFxuICAgIFZjcHVMaW1pdEV4Y2VlZGVkOiBcIlZjcHVMaW1pdEV4Y2VlZGVkXCIsXG59O1xuY29uc3QgU25hcFN0YXJ0T3B0aW1pemF0aW9uU3RhdHVzID0ge1xuICAgIE9mZjogXCJPZmZcIixcbiAgICBPbjogXCJPblwiLFxufTtcbmNvbnN0IFN0YXRlUmVhc29uQ29kZSA9IHtcbiAgICBDYXBhY2l0eVByb3ZpZGVyU2NhbGluZ0xpbWl0RXhjZWVkZWQ6IFwiQ2FwYWNpdHlQcm92aWRlclNjYWxpbmdMaW1pdEV4Y2VlZGVkXCIsXG4gICAgQ3JlYXRpbmc6IFwiQ3JlYXRpbmdcIixcbiAgICBEaXNhYmxlZEtNU0tleTogXCJEaXNhYmxlZEtNU0tleVwiLFxuICAgIERpc2FsbG93ZWRCeVZwY0VuY3J5cHRpb25Db250cm9sOiBcIkRpc2FsbG93ZWRCeVZwY0VuY3J5cHRpb25Db250cm9sXCIsXG4gICAgRHJhaW5pbmdEdXJhYmxlRXhlY3V0aW9uczogXCJEcmFpbmluZ0R1cmFibGVFeGVjdXRpb25zXCIsXG4gICAgRUMyUmVxdWVzdExpbWl0RXhjZWVkZWQ6IFwiRUMyUmVxdWVzdExpbWl0RXhjZWVkZWRcIixcbiAgICBFRlNJT0Vycm9yOiBcIkVGU0lPRXJyb3JcIixcbiAgICBFRlNNb3VudENvbm5lY3Rpdml0eUVycm9yOiBcIkVGU01vdW50Q29ubmVjdGl2aXR5RXJyb3JcIixcbiAgICBFRlNNb3VudEZhaWx1cmU6IFwiRUZTTW91bnRGYWlsdXJlXCIsXG4gICAgRUZTTW91bnRUaW1lb3V0OiBcIkVGU01vdW50VGltZW91dFwiLFxuICAgIEVuaUxpbWl0RXhjZWVkZWQ6IFwiRW5pTGltaXRFeGNlZWRlZFwiLFxuICAgIEZ1bmN0aW9uRXJyb3I6IFwiRnVuY3Rpb25FcnJvclwiLFxuICAgIEZ1bmN0aW9uRXJyb3JFeHRlbnNpb25Jbml0RXJyb3I6IFwiRnVuY3Rpb25FcnJvci5FeHRlbnNpb25Jbml0RXJyb3JcIixcbiAgICBGdW5jdGlvbkVycm9ySW5pdFJlc291cmNlRXhoYXVzdGVkOiBcIkZ1bmN0aW9uRXJyb3IuSW5pdFJlc291cmNlRXhoYXVzdGVkXCIsXG4gICAgRnVuY3Rpb25FcnJvckluaXRUaW1lb3V0OiBcIkZ1bmN0aW9uRXJyb3IuSW5pdFRpbWVvdXRcIixcbiAgICBGdW5jdGlvbkVycm9ySW52YWxpZEVudHJ5UG9pbnQ6IFwiRnVuY3Rpb25FcnJvci5JbnZhbGlkRW50cnlQb2ludFwiLFxuICAgIEZ1bmN0aW9uRXJyb3JJbnZhbGlkV29ya2luZ0RpcmVjdG9yeTogXCJGdW5jdGlvbkVycm9yLkludmFsaWRXb3JraW5nRGlyZWN0b3J5XCIsXG4gICAgRnVuY3Rpb25FcnJvclBlcm1pc3Npb25EZW5pZWQ6IFwiRnVuY3Rpb25FcnJvci5QZXJtaXNzaW9uRGVuaWVkXCIsXG4gICAgRnVuY3Rpb25FcnJvclJ1bnRpbWVJbml0RXJyb3I6IFwiRnVuY3Rpb25FcnJvci5SdW50aW1lSW5pdEVycm9yXCIsXG4gICAgRnVuY3Rpb25FcnJvclRvb01hbnlFeHRlbnNpb25zOiBcIkZ1bmN0aW9uRXJyb3IuVG9vTWFueUV4dGVuc2lvbnNcIixcbiAgICBJZGxlOiBcIklkbGVcIixcbiAgICBJbWFnZUFjY2Vzc0RlbmllZDogXCJJbWFnZUFjY2Vzc0RlbmllZFwiLFxuICAgIEltYWdlRGVsZXRlZDogXCJJbWFnZURlbGV0ZWRcIixcbiAgICBJbnN1ZmZpY2llbnRDYXBhY2l0eTogXCJJbnN1ZmZpY2llbnRDYXBhY2l0eVwiLFxuICAgIEluc3VmZmljaWVudFJvbGVQZXJtaXNzaW9uczogXCJJbnN1ZmZpY2llbnRSb2xlUGVybWlzc2lvbnNcIixcbiAgICBJbnRlcm5hbEVycm9yOiBcIkludGVybmFsRXJyb3JcIixcbiAgICBJbnZhbGlkQ29uZmlndXJhdGlvbjogXCJJbnZhbGlkQ29uZmlndXJhdGlvblwiLFxuICAgIEludmFsaWRJbWFnZTogXCJJbnZhbGlkSW1hZ2VcIixcbiAgICBJbnZhbGlkUnVudGltZTogXCJJbnZhbGlkUnVudGltZVwiLFxuICAgIEludmFsaWRTZWN1cml0eUdyb3VwOiBcIkludmFsaWRTZWN1cml0eUdyb3VwXCIsXG4gICAgSW52YWxpZFN0YXRlS01TS2V5OiBcIkludmFsaWRTdGF0ZUtNU0tleVwiLFxuICAgIEludmFsaWRTdWJuZXQ6IFwiSW52YWxpZFN1Ym5ldFwiLFxuICAgIEludmFsaWRaaXBGaWxlRXhjZXB0aW9uOiBcIkludmFsaWRaaXBGaWxlRXhjZXB0aW9uXCIsXG4gICAgS01TS2V5QWNjZXNzRGVuaWVkOiBcIktNU0tleUFjY2Vzc0RlbmllZFwiLFxuICAgIEtNU0tleU5vdEZvdW5kOiBcIktNU0tleU5vdEZvdW5kXCIsXG4gICAgUmVzdG9yaW5nOiBcIlJlc3RvcmluZ1wiLFxuICAgIFN1Ym5ldE91dE9mSVBBZGRyZXNzZXM6IFwiU3VibmV0T3V0T2ZJUEFkZHJlc3Nlc1wiLFxuICAgIFZjcHVMaW1pdEV4Y2VlZGVkOiBcIlZjcHVMaW1pdEV4Y2VlZGVkXCIsXG59O1xuY29uc3QgSW52b2tlTW9kZSA9IHtcbiAgICBCVUZGRVJFRDogXCJCVUZGRVJFRFwiLFxuICAgIFJFU1BPTlNFX1NUUkVBTTogXCJSRVNQT05TRV9TVFJFQU1cIixcbn07XG5jb25zdCBSZWN1cnNpdmVMb29wID0ge1xuICAgIEFsbG93OiBcIkFsbG93XCIsXG4gICAgVGVybWluYXRlOiBcIlRlcm1pbmF0ZVwiLFxufTtcbmNvbnN0IFVwZGF0ZVJ1bnRpbWVPbiA9IHtcbiAgICBBdXRvOiBcIkF1dG9cIixcbiAgICBGdW5jdGlvblVwZGF0ZTogXCJGdW5jdGlvblVwZGF0ZVwiLFxuICAgIE1hbnVhbDogXCJNYW51YWxcIixcbn07XG5jb25zdCBJbnZvY2F0aW9uVHlwZSA9IHtcbiAgICBEcnlSdW46IFwiRHJ5UnVuXCIsXG4gICAgRXZlbnQ6IFwiRXZlbnRcIixcbiAgICBSZXF1ZXN0UmVzcG9uc2U6IFwiUmVxdWVzdFJlc3BvbnNlXCIsXG59O1xuY29uc3QgTG9nVHlwZSA9IHtcbiAgICBOb25lOiBcIk5vbmVcIixcbiAgICBUYWlsOiBcIlRhaWxcIixcbn07XG5jb25zdCBSZXNwb25zZVN0cmVhbWluZ0ludm9jYXRpb25UeXBlID0ge1xuICAgIERyeVJ1bjogXCJEcnlSdW5cIixcbiAgICBSZXF1ZXN0UmVzcG9uc2U6IFwiUmVxdWVzdFJlc3BvbnNlXCIsXG59O1xuY29uc3QgRnVuY3Rpb25WZXJzaW9uID0ge1xuICAgIEFMTDogXCJBTExcIixcbn07XG5jb25zdCBQcm92aXNpb25lZENvbmN1cnJlbmN5U3RhdHVzRW51bSA9IHtcbiAgICBGQUlMRUQ6IFwiRkFJTEVEXCIsXG4gICAgSU5fUFJPR1JFU1M6IFwiSU5fUFJPR1JFU1NcIixcbiAgICBSRUFEWTogXCJSRUFEWVwiLFxufTtcbmNvbnN0IEV4ZWN1dGlvblN0YXR1cyA9IHtcbiAgICBGQUlMRUQ6IFwiRkFJTEVEXCIsXG4gICAgUlVOTklORzogXCJSVU5OSU5HXCIsXG4gICAgU1RPUFBFRDogXCJTVE9QUEVEXCIsXG4gICAgU1VDQ0VFREVEOiBcIlNVQ0NFRURFRFwiLFxuICAgIFRJTUVEX09VVDogXCJUSU1FRF9PVVRcIixcbn07XG5jb25zdCBFdmVudFR5cGUgPSB7XG4gICAgQ2FsbGJhY2tGYWlsZWQ6IFwiQ2FsbGJhY2tGYWlsZWRcIixcbiAgICBDYWxsYmFja1N0YXJ0ZWQ6IFwiQ2FsbGJhY2tTdGFydGVkXCIsXG4gICAgQ2FsbGJhY2tTdWNjZWVkZWQ6IFwiQ2FsbGJhY2tTdWNjZWVkZWRcIixcbiAgICBDYWxsYmFja1RpbWVkT3V0OiBcIkNhbGxiYWNrVGltZWRPdXRcIixcbiAgICBDaGFpbmVkSW52b2tlRmFpbGVkOiBcIkNoYWluZWRJbnZva2VGYWlsZWRcIixcbiAgICBDaGFpbmVkSW52b2tlU3RhcnRlZDogXCJDaGFpbmVkSW52b2tlU3RhcnRlZFwiLFxuICAgIENoYWluZWRJbnZva2VTdG9wcGVkOiBcIkNoYWluZWRJbnZva2VTdG9wcGVkXCIsXG4gICAgQ2hhaW5lZEludm9rZVN1Y2NlZWRlZDogXCJDaGFpbmVkSW52b2tlU3VjY2VlZGVkXCIsXG4gICAgQ2hhaW5lZEludm9rZVRpbWVkT3V0OiBcIkNoYWluZWRJbnZva2VUaW1lZE91dFwiLFxuICAgIENvbnRleHRGYWlsZWQ6IFwiQ29udGV4dEZhaWxlZFwiLFxuICAgIENvbnRleHRTdGFydGVkOiBcIkNvbnRleHRTdGFydGVkXCIsXG4gICAgQ29udGV4dFN1Y2NlZWRlZDogXCJDb250ZXh0U3VjY2VlZGVkXCIsXG4gICAgRXhlY3V0aW9uRmFpbGVkOiBcIkV4ZWN1dGlvbkZhaWxlZFwiLFxuICAgIEV4ZWN1dGlvblN0YXJ0ZWQ6IFwiRXhlY3V0aW9uU3RhcnRlZFwiLFxuICAgIEV4ZWN1dGlvblN0b3BwZWQ6IFwiRXhlY3V0aW9uU3RvcHBlZFwiLFxuICAgIEV4ZWN1dGlvblN1Y2NlZWRlZDogXCJFeGVjdXRpb25TdWNjZWVkZWRcIixcbiAgICBFeGVjdXRpb25UaW1lZE91dDogXCJFeGVjdXRpb25UaW1lZE91dFwiLFxuICAgIEludm9jYXRpb25Db21wbGV0ZWQ6IFwiSW52b2NhdGlvbkNvbXBsZXRlZFwiLFxuICAgIFN0ZXBGYWlsZWQ6IFwiU3RlcEZhaWxlZFwiLFxuICAgIFN0ZXBTdGFydGVkOiBcIlN0ZXBTdGFydGVkXCIsXG4gICAgU3RlcFN1Y2NlZWRlZDogXCJTdGVwU3VjY2VlZGVkXCIsXG4gICAgV2FpdENhbmNlbGxlZDogXCJXYWl0Q2FuY2VsbGVkXCIsXG4gICAgV2FpdFN0YXJ0ZWQ6IFwiV2FpdFN0YXJ0ZWRcIixcbiAgICBXYWl0U3VjY2VlZGVkOiBcIldhaXRTdWNjZWVkZWRcIixcbn07XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIiRDb21tYW5kXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gc21pdGh5Q2xpZW50LkNvbW1hbmQ7IH1cbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19DbGllbnRcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBzbWl0aHlDbGllbnQuQ2xpZW50OyB9XG59KTtcbmV4cG9ydHMuQWRkTGF5ZXJWZXJzaW9uUGVybWlzc2lvbkNvbW1hbmQgPSBBZGRMYXllclZlcnNpb25QZXJtaXNzaW9uQ29tbWFuZDtcbmV4cG9ydHMuQWRkUGVybWlzc2lvbkNvbW1hbmQgPSBBZGRQZXJtaXNzaW9uQ29tbWFuZDtcbmV4cG9ydHMuQXBwbGljYXRpb25Mb2dMZXZlbCA9IEFwcGxpY2F0aW9uTG9nTGV2ZWw7XG5leHBvcnRzLkFyY2hpdGVjdHVyZSA9IEFyY2hpdGVjdHVyZTtcbmV4cG9ydHMuQ2FsbGJhY2tUaW1lb3V0RXhjZXB0aW9uID0gQ2FsbGJhY2tUaW1lb3V0RXhjZXB0aW9uJDE7XG5leHBvcnRzLkNhcGFjaXR5UHJvdmlkZXJMaW1pdEV4Y2VlZGVkRXhjZXB0aW9uID0gQ2FwYWNpdHlQcm92aWRlckxpbWl0RXhjZWVkZWRFeGNlcHRpb24kMTtcbmV4cG9ydHMuQ2FwYWNpdHlQcm92aWRlclByZWRlZmluZWRNZXRyaWNUeXBlID0gQ2FwYWNpdHlQcm92aWRlclByZWRlZmluZWRNZXRyaWNUeXBlO1xuZXhwb3J0cy5DYXBhY2l0eVByb3ZpZGVyU2NhbGluZ01vZGUgPSBDYXBhY2l0eVByb3ZpZGVyU2NhbGluZ01vZGU7XG5leHBvcnRzLkNhcGFjaXR5UHJvdmlkZXJTdGF0ZSA9IENhcGFjaXR5UHJvdmlkZXJTdGF0ZTtcbmV4cG9ydHMuQ2hlY2twb2ludER1cmFibGVFeGVjdXRpb25Db21tYW5kID0gQ2hlY2twb2ludER1cmFibGVFeGVjdXRpb25Db21tYW5kO1xuZXhwb3J0cy5Db2RlU2lnbmluZ0NvbmZpZ05vdEZvdW5kRXhjZXB0aW9uID0gQ29kZVNpZ25pbmdDb25maWdOb3RGb3VuZEV4Y2VwdGlvbiQxO1xuZXhwb3J0cy5Db2RlU2lnbmluZ1BvbGljeSA9IENvZGVTaWduaW5nUG9saWN5O1xuZXhwb3J0cy5Db2RlU3RvcmFnZUV4Y2VlZGVkRXhjZXB0aW9uID0gQ29kZVN0b3JhZ2VFeGNlZWRlZEV4Y2VwdGlvbiQxO1xuZXhwb3J0cy5Db2RlVmVyaWZpY2F0aW9uRmFpbGVkRXhjZXB0aW9uID0gQ29kZVZlcmlmaWNhdGlvbkZhaWxlZEV4Y2VwdGlvbiQxO1xuZXhwb3J0cy5DcmVhdGVBbGlhc0NvbW1hbmQgPSBDcmVhdGVBbGlhc0NvbW1hbmQ7XG5leHBvcnRzLkNyZWF0ZUNhcGFjaXR5UHJvdmlkZXJDb21tYW5kID0gQ3JlYXRlQ2FwYWNpdHlQcm92aWRlckNvbW1hbmQ7XG5leHBvcnRzLkNyZWF0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZCA9IENyZWF0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZDtcbmV4cG9ydHMuQ3JlYXRlRXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZCA9IENyZWF0ZUV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmQ7XG5leHBvcnRzLkNyZWF0ZUZ1bmN0aW9uQ29tbWFuZCA9IENyZWF0ZUZ1bmN0aW9uQ29tbWFuZDtcbmV4cG9ydHMuQ3JlYXRlRnVuY3Rpb25VcmxDb25maWdDb21tYW5kID0gQ3JlYXRlRnVuY3Rpb25VcmxDb25maWdDb21tYW5kO1xuZXhwb3J0cy5EZWxldGVBbGlhc0NvbW1hbmQgPSBEZWxldGVBbGlhc0NvbW1hbmQ7XG5leHBvcnRzLkRlbGV0ZUNhcGFjaXR5UHJvdmlkZXJDb21tYW5kID0gRGVsZXRlQ2FwYWNpdHlQcm92aWRlckNvbW1hbmQ7XG5leHBvcnRzLkRlbGV0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZCA9IERlbGV0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZDtcbmV4cG9ydHMuRGVsZXRlRXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZCA9IERlbGV0ZUV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmQ7XG5leHBvcnRzLkRlbGV0ZUZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdDb21tYW5kID0gRGVsZXRlRnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmQ7XG5leHBvcnRzLkRlbGV0ZUZ1bmN0aW9uQ29tbWFuZCA9IERlbGV0ZUZ1bmN0aW9uQ29tbWFuZDtcbmV4cG9ydHMuRGVsZXRlRnVuY3Rpb25Db25jdXJyZW5jeUNvbW1hbmQgPSBEZWxldGVGdW5jdGlvbkNvbmN1cnJlbmN5Q29tbWFuZDtcbmV4cG9ydHMuRGVsZXRlRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmQgPSBEZWxldGVGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZDtcbmV4cG9ydHMuRGVsZXRlRnVuY3Rpb25VcmxDb25maWdDb21tYW5kID0gRGVsZXRlRnVuY3Rpb25VcmxDb25maWdDb21tYW5kO1xuZXhwb3J0cy5EZWxldGVMYXllclZlcnNpb25Db21tYW5kID0gRGVsZXRlTGF5ZXJWZXJzaW9uQ29tbWFuZDtcbmV4cG9ydHMuRGVsZXRlUHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ0NvbW1hbmQgPSBEZWxldGVQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnQ29tbWFuZDtcbmV4cG9ydHMuRHVyYWJsZUV4ZWN1dGlvbkFscmVhZHlTdGFydGVkRXhjZXB0aW9uID0gRHVyYWJsZUV4ZWN1dGlvbkFscmVhZHlTdGFydGVkRXhjZXB0aW9uJDE7XG5leHBvcnRzLkVDMkFjY2Vzc0RlbmllZEV4Y2VwdGlvbiA9IEVDMkFjY2Vzc0RlbmllZEV4Y2VwdGlvbiQxO1xuZXhwb3J0cy5FQzJUaHJvdHRsZWRFeGNlcHRpb24gPSBFQzJUaHJvdHRsZWRFeGNlcHRpb24kMTtcbmV4cG9ydHMuRUMyVW5leHBlY3RlZEV4Y2VwdGlvbiA9IEVDMlVuZXhwZWN0ZWRFeGNlcHRpb24kMTtcbmV4cG9ydHMuRUZTSU9FeGNlcHRpb24gPSBFRlNJT0V4Y2VwdGlvbiQxO1xuZXhwb3J0cy5FRlNNb3VudENvbm5lY3Rpdml0eUV4Y2VwdGlvbiA9IEVGU01vdW50Q29ubmVjdGl2aXR5RXhjZXB0aW9uJDE7XG5leHBvcnRzLkVGU01vdW50RmFpbHVyZUV4Y2VwdGlvbiA9IEVGU01vdW50RmFpbHVyZUV4Y2VwdGlvbiQxO1xuZXhwb3J0cy5FRlNNb3VudFRpbWVvdXRFeGNlcHRpb24gPSBFRlNNb3VudFRpbWVvdXRFeGNlcHRpb24kMTtcbmV4cG9ydHMuRU5JTGltaXRSZWFjaGVkRXhjZXB0aW9uID0gRU5JTGltaXRSZWFjaGVkRXhjZXB0aW9uJDE7XG5leHBvcnRzLkVuZFBvaW50VHlwZSA9IEVuZFBvaW50VHlwZTtcbmV4cG9ydHMuRXZlbnRTb3VyY2VNYXBwaW5nTWV0cmljID0gRXZlbnRTb3VyY2VNYXBwaW5nTWV0cmljO1xuZXhwb3J0cy5FdmVudFNvdXJjZVBvc2l0aW9uID0gRXZlbnRTb3VyY2VQb3NpdGlvbjtcbmV4cG9ydHMuRXZlbnRUeXBlID0gRXZlbnRUeXBlO1xuZXhwb3J0cy5FeGVjdXRpb25TdGF0dXMgPSBFeGVjdXRpb25TdGF0dXM7XG5leHBvcnRzLkZ1bGxEb2N1bWVudCA9IEZ1bGxEb2N1bWVudDtcbmV4cG9ydHMuRnVuY3Rpb25SZXNwb25zZVR5cGUgPSBGdW5jdGlvblJlc3BvbnNlVHlwZTtcbmV4cG9ydHMuRnVuY3Rpb25VcmxBdXRoVHlwZSA9IEZ1bmN0aW9uVXJsQXV0aFR5cGU7XG5leHBvcnRzLkZ1bmN0aW9uVmVyc2lvbiA9IEZ1bmN0aW9uVmVyc2lvbjtcbmV4cG9ydHMuRnVuY3Rpb25WZXJzaW9uTGF0ZXN0UHVibGlzaGVkID0gRnVuY3Rpb25WZXJzaW9uTGF0ZXN0UHVibGlzaGVkO1xuZXhwb3J0cy5GdW5jdGlvblZlcnNpb25zUGVyQ2FwYWNpdHlQcm92aWRlckxpbWl0RXhjZWVkZWRFeGNlcHRpb24gPSBGdW5jdGlvblZlcnNpb25zUGVyQ2FwYWNpdHlQcm92aWRlckxpbWl0RXhjZWVkZWRFeGNlcHRpb24kMTtcbmV4cG9ydHMuR2V0QWNjb3VudFNldHRpbmdzQ29tbWFuZCA9IEdldEFjY291bnRTZXR0aW5nc0NvbW1hbmQ7XG5leHBvcnRzLkdldEFsaWFzQ29tbWFuZCA9IEdldEFsaWFzQ29tbWFuZDtcbmV4cG9ydHMuR2V0Q2FwYWNpdHlQcm92aWRlckNvbW1hbmQgPSBHZXRDYXBhY2l0eVByb3ZpZGVyQ29tbWFuZDtcbmV4cG9ydHMuR2V0Q29kZVNpZ25pbmdDb25maWdDb21tYW5kID0gR2V0Q29kZVNpZ25pbmdDb25maWdDb21tYW5kO1xuZXhwb3J0cy5HZXREdXJhYmxlRXhlY3V0aW9uQ29tbWFuZCA9IEdldER1cmFibGVFeGVjdXRpb25Db21tYW5kO1xuZXhwb3J0cy5HZXREdXJhYmxlRXhlY3V0aW9uSGlzdG9yeUNvbW1hbmQgPSBHZXREdXJhYmxlRXhlY3V0aW9uSGlzdG9yeUNvbW1hbmQ7XG5leHBvcnRzLkdldER1cmFibGVFeGVjdXRpb25TdGF0ZUNvbW1hbmQgPSBHZXREdXJhYmxlRXhlY3V0aW9uU3RhdGVDb21tYW5kO1xuZXhwb3J0cy5HZXRFdmVudFNvdXJjZU1hcHBpbmdDb21tYW5kID0gR2V0RXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZDtcbmV4cG9ydHMuR2V0RnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmQgPSBHZXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZDtcbmV4cG9ydHMuR2V0RnVuY3Rpb25Db21tYW5kID0gR2V0RnVuY3Rpb25Db21tYW5kO1xuZXhwb3J0cy5HZXRGdW5jdGlvbkNvbmN1cnJlbmN5Q29tbWFuZCA9IEdldEZ1bmN0aW9uQ29uY3VycmVuY3lDb21tYW5kO1xuZXhwb3J0cy5HZXRGdW5jdGlvbkNvbmZpZ3VyYXRpb25Db21tYW5kID0gR2V0RnVuY3Rpb25Db25maWd1cmF0aW9uQ29tbWFuZDtcbmV4cG9ydHMuR2V0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmQgPSBHZXRGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZDtcbmV4cG9ydHMuR2V0RnVuY3Rpb25SZWN1cnNpb25Db25maWdDb21tYW5kID0gR2V0RnVuY3Rpb25SZWN1cnNpb25Db25maWdDb21tYW5kO1xuZXhwb3J0cy5HZXRGdW5jdGlvblNjYWxpbmdDb25maWdDb21tYW5kID0gR2V0RnVuY3Rpb25TY2FsaW5nQ29uZmlnQ29tbWFuZDtcbmV4cG9ydHMuR2V0RnVuY3Rpb25VcmxDb25maWdDb21tYW5kID0gR2V0RnVuY3Rpb25VcmxDb25maWdDb21tYW5kO1xuZXhwb3J0cy5HZXRMYXllclZlcnNpb25CeUFybkNvbW1hbmQgPSBHZXRMYXllclZlcnNpb25CeUFybkNvbW1hbmQ7XG5leHBvcnRzLkdldExheWVyVmVyc2lvbkNvbW1hbmQgPSBHZXRMYXllclZlcnNpb25Db21tYW5kO1xuZXhwb3J0cy5HZXRMYXllclZlcnNpb25Qb2xpY3lDb21tYW5kID0gR2V0TGF5ZXJWZXJzaW9uUG9saWN5Q29tbWFuZDtcbmV4cG9ydHMuR2V0UG9saWN5Q29tbWFuZCA9IEdldFBvbGljeUNvbW1hbmQ7XG5leHBvcnRzLkdldFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdDb21tYW5kID0gR2V0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ0NvbW1hbmQ7XG5leHBvcnRzLkdldFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnQ29tbWFuZCA9IEdldFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnQ29tbWFuZDtcbmV4cG9ydHMuSW52YWxpZENvZGVTaWduYXR1cmVFeGNlcHRpb24gPSBJbnZhbGlkQ29kZVNpZ25hdHVyZUV4Y2VwdGlvbiQxO1xuZXhwb3J0cy5JbnZhbGlkUGFyYW1ldGVyVmFsdWVFeGNlcHRpb24gPSBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFeGNlcHRpb24kMTtcbmV4cG9ydHMuSW52YWxpZFJlcXVlc3RDb250ZW50RXhjZXB0aW9uID0gSW52YWxpZFJlcXVlc3RDb250ZW50RXhjZXB0aW9uJDE7XG5leHBvcnRzLkludmFsaWRSdW50aW1lRXhjZXB0aW9uID0gSW52YWxpZFJ1bnRpbWVFeGNlcHRpb24kMTtcbmV4cG9ydHMuSW52YWxpZFNlY3VyaXR5R3JvdXBJREV4Y2VwdGlvbiA9IEludmFsaWRTZWN1cml0eUdyb3VwSURFeGNlcHRpb24kMTtcbmV4cG9ydHMuSW52YWxpZFN1Ym5ldElERXhjZXB0aW9uID0gSW52YWxpZFN1Ym5ldElERXhjZXB0aW9uJDE7XG5leHBvcnRzLkludmFsaWRaaXBGaWxlRXhjZXB0aW9uID0gSW52YWxpZFppcEZpbGVFeGNlcHRpb24kMTtcbmV4cG9ydHMuSW52b2NhdGlvblR5cGUgPSBJbnZvY2F0aW9uVHlwZTtcbmV4cG9ydHMuSW52b2tlQXN5bmNDb21tYW5kID0gSW52b2tlQXN5bmNDb21tYW5kO1xuZXhwb3J0cy5JbnZva2VDb21tYW5kID0gSW52b2tlQ29tbWFuZDtcbmV4cG9ydHMuSW52b2tlTW9kZSA9IEludm9rZU1vZGU7XG5leHBvcnRzLkludm9rZVdpdGhSZXNwb25zZVN0cmVhbUNvbW1hbmQgPSBJbnZva2VXaXRoUmVzcG9uc2VTdHJlYW1Db21tYW5kO1xuZXhwb3J0cy5LTVNBY2Nlc3NEZW5pZWRFeGNlcHRpb24gPSBLTVNBY2Nlc3NEZW5pZWRFeGNlcHRpb24kMTtcbmV4cG9ydHMuS01TRGlzYWJsZWRFeGNlcHRpb24gPSBLTVNEaXNhYmxlZEV4Y2VwdGlvbiQxO1xuZXhwb3J0cy5LTVNJbnZhbGlkU3RhdGVFeGNlcHRpb24gPSBLTVNJbnZhbGlkU3RhdGVFeGNlcHRpb24kMTtcbmV4cG9ydHMuS01TTm90Rm91bmRFeGNlcHRpb24gPSBLTVNOb3RGb3VuZEV4Y2VwdGlvbiQxO1xuZXhwb3J0cy5LYWZrYVNjaGVtYVJlZ2lzdHJ5QXV0aFR5cGUgPSBLYWZrYVNjaGVtYVJlZ2lzdHJ5QXV0aFR5cGU7XG5leHBvcnRzLkthZmthU2NoZW1hVmFsaWRhdGlvbkF0dHJpYnV0ZSA9IEthZmthU2NoZW1hVmFsaWRhdGlvbkF0dHJpYnV0ZTtcbmV4cG9ydHMuTGFtYmRhID0gTGFtYmRhO1xuZXhwb3J0cy5MYW1iZGFDbGllbnQgPSBMYW1iZGFDbGllbnQ7XG5leHBvcnRzLkxhbWJkYVNlcnZpY2VFeGNlcHRpb24gPSBMYW1iZGFTZXJ2aWNlRXhjZXB0aW9uJDE7XG5leHBvcnRzLkxhc3RVcGRhdGVTdGF0dXMgPSBMYXN0VXBkYXRlU3RhdHVzO1xuZXhwb3J0cy5MYXN0VXBkYXRlU3RhdHVzUmVhc29uQ29kZSA9IExhc3RVcGRhdGVTdGF0dXNSZWFzb25Db2RlO1xuZXhwb3J0cy5MaXN0QWxpYXNlc0NvbW1hbmQgPSBMaXN0QWxpYXNlc0NvbW1hbmQ7XG5leHBvcnRzLkxpc3RDYXBhY2l0eVByb3ZpZGVyc0NvbW1hbmQgPSBMaXN0Q2FwYWNpdHlQcm92aWRlcnNDb21tYW5kO1xuZXhwb3J0cy5MaXN0Q29kZVNpZ25pbmdDb25maWdzQ29tbWFuZCA9IExpc3RDb2RlU2lnbmluZ0NvbmZpZ3NDb21tYW5kO1xuZXhwb3J0cy5MaXN0RHVyYWJsZUV4ZWN1dGlvbnNCeUZ1bmN0aW9uQ29tbWFuZCA9IExpc3REdXJhYmxlRXhlY3V0aW9uc0J5RnVuY3Rpb25Db21tYW5kO1xuZXhwb3J0cy5MaXN0RXZlbnRTb3VyY2VNYXBwaW5nc0NvbW1hbmQgPSBMaXN0RXZlbnRTb3VyY2VNYXBwaW5nc0NvbW1hbmQ7XG5leHBvcnRzLkxpc3RGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnc0NvbW1hbmQgPSBMaXN0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ3NDb21tYW5kO1xuZXhwb3J0cy5MaXN0RnVuY3Rpb25VcmxDb25maWdzQ29tbWFuZCA9IExpc3RGdW5jdGlvblVybENvbmZpZ3NDb21tYW5kO1xuZXhwb3J0cy5MaXN0RnVuY3Rpb25WZXJzaW9uc0J5Q2FwYWNpdHlQcm92aWRlckNvbW1hbmQgPSBMaXN0RnVuY3Rpb25WZXJzaW9uc0J5Q2FwYWNpdHlQcm92aWRlckNvbW1hbmQ7XG5leHBvcnRzLkxpc3RGdW5jdGlvbnNCeUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZCA9IExpc3RGdW5jdGlvbnNCeUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZDtcbmV4cG9ydHMuTGlzdEZ1bmN0aW9uc0NvbW1hbmQgPSBMaXN0RnVuY3Rpb25zQ29tbWFuZDtcbmV4cG9ydHMuTGlzdExheWVyVmVyc2lvbnNDb21tYW5kID0gTGlzdExheWVyVmVyc2lvbnNDb21tYW5kO1xuZXhwb3J0cy5MaXN0TGF5ZXJzQ29tbWFuZCA9IExpc3RMYXllcnNDb21tYW5kO1xuZXhwb3J0cy5MaXN0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ3NDb21tYW5kID0gTGlzdFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdzQ29tbWFuZDtcbmV4cG9ydHMuTGlzdFRhZ3NDb21tYW5kID0gTGlzdFRhZ3NDb21tYW5kO1xuZXhwb3J0cy5MaXN0VmVyc2lvbnNCeUZ1bmN0aW9uQ29tbWFuZCA9IExpc3RWZXJzaW9uc0J5RnVuY3Rpb25Db21tYW5kO1xuZXhwb3J0cy5Mb2dGb3JtYXQgPSBMb2dGb3JtYXQ7XG5leHBvcnRzLkxvZ1R5cGUgPSBMb2dUeXBlO1xuZXhwb3J0cy5Ob1B1Ymxpc2hlZFZlcnNpb25FeGNlcHRpb24gPSBOb1B1Ymxpc2hlZFZlcnNpb25FeGNlcHRpb24kMTtcbmV4cG9ydHMuT3BlcmF0aW9uQWN0aW9uID0gT3BlcmF0aW9uQWN0aW9uO1xuZXhwb3J0cy5PcGVyYXRpb25TdGF0dXMgPSBPcGVyYXRpb25TdGF0dXM7XG5leHBvcnRzLk9wZXJhdGlvblR5cGUgPSBPcGVyYXRpb25UeXBlO1xuZXhwb3J0cy5QYWNrYWdlVHlwZSA9IFBhY2thZ2VUeXBlO1xuZXhwb3J0cy5Qb2xpY3lMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbiA9IFBvbGljeUxlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uJDE7XG5leHBvcnRzLlByZWNvbmRpdGlvbkZhaWxlZEV4Y2VwdGlvbiA9IFByZWNvbmRpdGlvbkZhaWxlZEV4Y2VwdGlvbiQxO1xuZXhwb3J0cy5Qcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnTm90Rm91bmRFeGNlcHRpb24gPSBQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnTm90Rm91bmRFeGNlcHRpb24kMTtcbmV4cG9ydHMuUHJvdmlzaW9uZWRDb25jdXJyZW5jeVN0YXR1c0VudW0gPSBQcm92aXNpb25lZENvbmN1cnJlbmN5U3RhdHVzRW51bTtcbmV4cG9ydHMuUHVibGlzaExheWVyVmVyc2lvbkNvbW1hbmQgPSBQdWJsaXNoTGF5ZXJWZXJzaW9uQ29tbWFuZDtcbmV4cG9ydHMuUHVibGlzaFZlcnNpb25Db21tYW5kID0gUHVibGlzaFZlcnNpb25Db21tYW5kO1xuZXhwb3J0cy5QdXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZCA9IFB1dEZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdDb21tYW5kO1xuZXhwb3J0cy5QdXRGdW5jdGlvbkNvbmN1cnJlbmN5Q29tbWFuZCA9IFB1dEZ1bmN0aW9uQ29uY3VycmVuY3lDb21tYW5kO1xuZXhwb3J0cy5QdXRGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZCA9IFB1dEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdDb21tYW5kO1xuZXhwb3J0cy5QdXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZ0NvbW1hbmQgPSBQdXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZ0NvbW1hbmQ7XG5leHBvcnRzLlB1dEZ1bmN0aW9uU2NhbGluZ0NvbmZpZ0NvbW1hbmQgPSBQdXRGdW5jdGlvblNjYWxpbmdDb25maWdDb21tYW5kO1xuZXhwb3J0cy5QdXRQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnQ29tbWFuZCA9IFB1dFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdDb21tYW5kO1xuZXhwb3J0cy5QdXRSdW50aW1lTWFuYWdlbWVudENvbmZpZ0NvbW1hbmQgPSBQdXRSdW50aW1lTWFuYWdlbWVudENvbmZpZ0NvbW1hbmQ7XG5leHBvcnRzLlJlY3Vyc2l2ZUludm9jYXRpb25FeGNlcHRpb24gPSBSZWN1cnNpdmVJbnZvY2F0aW9uRXhjZXB0aW9uJDE7XG5leHBvcnRzLlJlY3Vyc2l2ZUxvb3AgPSBSZWN1cnNpdmVMb29wO1xuZXhwb3J0cy5SZW1vdmVMYXllclZlcnNpb25QZXJtaXNzaW9uQ29tbWFuZCA9IFJlbW92ZUxheWVyVmVyc2lvblBlcm1pc3Npb25Db21tYW5kO1xuZXhwb3J0cy5SZW1vdmVQZXJtaXNzaW9uQ29tbWFuZCA9IFJlbW92ZVBlcm1pc3Npb25Db21tYW5kO1xuZXhwb3J0cy5SZXF1ZXN0VG9vTGFyZ2VFeGNlcHRpb24gPSBSZXF1ZXN0VG9vTGFyZ2VFeGNlcHRpb24kMTtcbmV4cG9ydHMuUmVzb3VyY2VDb25mbGljdEV4Y2VwdGlvbiA9IFJlc291cmNlQ29uZmxpY3RFeGNlcHRpb24kMTtcbmV4cG9ydHMuUmVzb3VyY2VJblVzZUV4Y2VwdGlvbiA9IFJlc291cmNlSW5Vc2VFeGNlcHRpb24kMTtcbmV4cG9ydHMuUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvbiA9IFJlc291cmNlTm90Rm91bmRFeGNlcHRpb24kMTtcbmV4cG9ydHMuUmVzb3VyY2VOb3RSZWFkeUV4Y2VwdGlvbiA9IFJlc291cmNlTm90UmVhZHlFeGNlcHRpb24kMTtcbmV4cG9ydHMuUmVzcG9uc2VTdHJlYW1pbmdJbnZvY2F0aW9uVHlwZSA9IFJlc3BvbnNlU3RyZWFtaW5nSW52b2NhdGlvblR5cGU7XG5leHBvcnRzLlJ1bnRpbWUgPSBSdW50aW1lO1xuZXhwb3J0cy5TY2hlbWFSZWdpc3RyeUV2ZW50UmVjb3JkRm9ybWF0ID0gU2NoZW1hUmVnaXN0cnlFdmVudFJlY29yZEZvcm1hdDtcbmV4cG9ydHMuU2VuZER1cmFibGVFeGVjdXRpb25DYWxsYmFja0ZhaWx1cmVDb21tYW5kID0gU2VuZER1cmFibGVFeGVjdXRpb25DYWxsYmFja0ZhaWx1cmVDb21tYW5kO1xuZXhwb3J0cy5TZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrSGVhcnRiZWF0Q29tbWFuZCA9IFNlbmREdXJhYmxlRXhlY3V0aW9uQ2FsbGJhY2tIZWFydGJlYXRDb21tYW5kO1xuZXhwb3J0cy5TZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrU3VjY2Vzc0NvbW1hbmQgPSBTZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrU3VjY2Vzc0NvbW1hbmQ7XG5leHBvcnRzLlNlcmlhbGl6ZWRSZXF1ZXN0RW50aXR5VG9vTGFyZ2VFeGNlcHRpb24gPSBTZXJpYWxpemVkUmVxdWVzdEVudGl0eVRvb0xhcmdlRXhjZXB0aW9uJDE7XG5leHBvcnRzLlNlcnZpY2VFeGNlcHRpb24gPSBTZXJ2aWNlRXhjZXB0aW9uJDE7XG5leHBvcnRzLlNuYXBTdGFydEFwcGx5T24gPSBTbmFwU3RhcnRBcHBseU9uO1xuZXhwb3J0cy5TbmFwU3RhcnRFeGNlcHRpb24gPSBTbmFwU3RhcnRFeGNlcHRpb24kMTtcbmV4cG9ydHMuU25hcFN0YXJ0Tm90UmVhZHlFeGNlcHRpb24gPSBTbmFwU3RhcnROb3RSZWFkeUV4Y2VwdGlvbiQxO1xuZXhwb3J0cy5TbmFwU3RhcnRPcHRpbWl6YXRpb25TdGF0dXMgPSBTbmFwU3RhcnRPcHRpbWl6YXRpb25TdGF0dXM7XG5leHBvcnRzLlNuYXBTdGFydFRpbWVvdXRFeGNlcHRpb24gPSBTbmFwU3RhcnRUaW1lb3V0RXhjZXB0aW9uJDE7XG5leHBvcnRzLlNvdXJjZUFjY2Vzc1R5cGUgPSBTb3VyY2VBY2Nlc3NUeXBlO1xuZXhwb3J0cy5TdGF0ZSA9IFN0YXRlO1xuZXhwb3J0cy5TdGF0ZVJlYXNvbkNvZGUgPSBTdGF0ZVJlYXNvbkNvZGU7XG5leHBvcnRzLlN0b3BEdXJhYmxlRXhlY3V0aW9uQ29tbWFuZCA9IFN0b3BEdXJhYmxlRXhlY3V0aW9uQ29tbWFuZDtcbmV4cG9ydHMuU3VibmV0SVBBZGRyZXNzTGltaXRSZWFjaGVkRXhjZXB0aW9uID0gU3VibmV0SVBBZGRyZXNzTGltaXRSZWFjaGVkRXhjZXB0aW9uJDE7XG5leHBvcnRzLlN5c3RlbUxvZ0xldmVsID0gU3lzdGVtTG9nTGV2ZWw7XG5leHBvcnRzLlRhZ1Jlc291cmNlQ29tbWFuZCA9IFRhZ1Jlc291cmNlQ29tbWFuZDtcbmV4cG9ydHMuVGVuYW50SXNvbGF0aW9uTW9kZSA9IFRlbmFudElzb2xhdGlvbk1vZGU7XG5leHBvcnRzLlRocm90dGxlUmVhc29uID0gVGhyb3R0bGVSZWFzb247XG5leHBvcnRzLlRvb01hbnlSZXF1ZXN0c0V4Y2VwdGlvbiA9IFRvb01hbnlSZXF1ZXN0c0V4Y2VwdGlvbiQxO1xuZXhwb3J0cy5UcmFjaW5nTW9kZSA9IFRyYWNpbmdNb2RlO1xuZXhwb3J0cy5VbnN1cHBvcnRlZE1lZGlhVHlwZUV4Y2VwdGlvbiA9IFVuc3VwcG9ydGVkTWVkaWFUeXBlRXhjZXB0aW9uJDE7XG5leHBvcnRzLlVudGFnUmVzb3VyY2VDb21tYW5kID0gVW50YWdSZXNvdXJjZUNvbW1hbmQ7XG5leHBvcnRzLlVwZGF0ZUFsaWFzQ29tbWFuZCA9IFVwZGF0ZUFsaWFzQ29tbWFuZDtcbmV4cG9ydHMuVXBkYXRlQ2FwYWNpdHlQcm92aWRlckNvbW1hbmQgPSBVcGRhdGVDYXBhY2l0eVByb3ZpZGVyQ29tbWFuZDtcbmV4cG9ydHMuVXBkYXRlQ29kZVNpZ25pbmdDb25maWdDb21tYW5kID0gVXBkYXRlQ29kZVNpZ25pbmdDb25maWdDb21tYW5kO1xuZXhwb3J0cy5VcGRhdGVFdmVudFNvdXJjZU1hcHBpbmdDb21tYW5kID0gVXBkYXRlRXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZDtcbmV4cG9ydHMuVXBkYXRlRnVuY3Rpb25Db2RlQ29tbWFuZCA9IFVwZGF0ZUZ1bmN0aW9uQ29kZUNvbW1hbmQ7XG5leHBvcnRzLlVwZGF0ZUZ1bmN0aW9uQ29uZmlndXJhdGlvbkNvbW1hbmQgPSBVcGRhdGVGdW5jdGlvbkNvbmZpZ3VyYXRpb25Db21tYW5kO1xuZXhwb3J0cy5VcGRhdGVGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZCA9IFVwZGF0ZUZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdDb21tYW5kO1xuZXhwb3J0cy5VcGRhdGVGdW5jdGlvblVybENvbmZpZ0NvbW1hbmQgPSBVcGRhdGVGdW5jdGlvblVybENvbmZpZ0NvbW1hbmQ7XG5leHBvcnRzLlVwZGF0ZVJ1bnRpbWVPbiA9IFVwZGF0ZVJ1bnRpbWVPbjtcbmV4cG9ydHMucGFnaW5hdGVHZXREdXJhYmxlRXhlY3V0aW9uSGlzdG9yeSA9IHBhZ2luYXRlR2V0RHVyYWJsZUV4ZWN1dGlvbkhpc3Rvcnk7XG5leHBvcnRzLnBhZ2luYXRlR2V0RHVyYWJsZUV4ZWN1dGlvblN0YXRlID0gcGFnaW5hdGVHZXREdXJhYmxlRXhlY3V0aW9uU3RhdGU7XG5leHBvcnRzLnBhZ2luYXRlTGlzdEFsaWFzZXMgPSBwYWdpbmF0ZUxpc3RBbGlhc2VzO1xuZXhwb3J0cy5wYWdpbmF0ZUxpc3RDYXBhY2l0eVByb3ZpZGVycyA9IHBhZ2luYXRlTGlzdENhcGFjaXR5UHJvdmlkZXJzO1xuZXhwb3J0cy5wYWdpbmF0ZUxpc3RDb2RlU2lnbmluZ0NvbmZpZ3MgPSBwYWdpbmF0ZUxpc3RDb2RlU2lnbmluZ0NvbmZpZ3M7XG5leHBvcnRzLnBhZ2luYXRlTGlzdER1cmFibGVFeGVjdXRpb25zQnlGdW5jdGlvbiA9IHBhZ2luYXRlTGlzdER1cmFibGVFeGVjdXRpb25zQnlGdW5jdGlvbjtcbmV4cG9ydHMucGFnaW5hdGVMaXN0RXZlbnRTb3VyY2VNYXBwaW5ncyA9IHBhZ2luYXRlTGlzdEV2ZW50U291cmNlTWFwcGluZ3M7XG5leHBvcnRzLnBhZ2luYXRlTGlzdEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdzID0gcGFnaW5hdGVMaXN0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ3M7XG5leHBvcnRzLnBhZ2luYXRlTGlzdEZ1bmN0aW9uVXJsQ29uZmlncyA9IHBhZ2luYXRlTGlzdEZ1bmN0aW9uVXJsQ29uZmlncztcbmV4cG9ydHMucGFnaW5hdGVMaXN0RnVuY3Rpb25WZXJzaW9uc0J5Q2FwYWNpdHlQcm92aWRlciA9IHBhZ2luYXRlTGlzdEZ1bmN0aW9uVmVyc2lvbnNCeUNhcGFjaXR5UHJvdmlkZXI7XG5leHBvcnRzLnBhZ2luYXRlTGlzdEZ1bmN0aW9ucyA9IHBhZ2luYXRlTGlzdEZ1bmN0aW9ucztcbmV4cG9ydHMucGFnaW5hdGVMaXN0RnVuY3Rpb25zQnlDb2RlU2lnbmluZ0NvbmZpZyA9IHBhZ2luYXRlTGlzdEZ1bmN0aW9uc0J5Q29kZVNpZ25pbmdDb25maWc7XG5leHBvcnRzLnBhZ2luYXRlTGlzdExheWVyVmVyc2lvbnMgPSBwYWdpbmF0ZUxpc3RMYXllclZlcnNpb25zO1xuZXhwb3J0cy5wYWdpbmF0ZUxpc3RMYXllcnMgPSBwYWdpbmF0ZUxpc3RMYXllcnM7XG5leHBvcnRzLnBhZ2luYXRlTGlzdFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdzID0gcGFnaW5hdGVMaXN0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ3M7XG5leHBvcnRzLnBhZ2luYXRlTGlzdFZlcnNpb25zQnlGdW5jdGlvbiA9IHBhZ2luYXRlTGlzdFZlcnNpb25zQnlGdW5jdGlvbjtcbmV4cG9ydHMud2FpdEZvckZ1bmN0aW9uQWN0aXZlID0gd2FpdEZvckZ1bmN0aW9uQWN0aXZlO1xuZXhwb3J0cy53YWl0Rm9yRnVuY3Rpb25BY3RpdmVWMiA9IHdhaXRGb3JGdW5jdGlvbkFjdGl2ZVYyO1xuZXhwb3J0cy53YWl0Rm9yRnVuY3Rpb25FeGlzdHMgPSB3YWl0Rm9yRnVuY3Rpb25FeGlzdHM7XG5leHBvcnRzLndhaXRGb3JGdW5jdGlvblVwZGF0ZWQgPSB3YWl0Rm9yRnVuY3Rpb25VcGRhdGVkO1xuZXhwb3J0cy53YWl0Rm9yRnVuY3Rpb25VcGRhdGVkVjIgPSB3YWl0Rm9yRnVuY3Rpb25VcGRhdGVkVjI7XG5leHBvcnRzLndhaXRGb3JQdWJsaXNoZWRWZXJzaW9uQWN0aXZlID0gd2FpdEZvclB1Ymxpc2hlZFZlcnNpb25BY3RpdmU7XG5leHBvcnRzLndhaXRVbnRpbEZ1bmN0aW9uQWN0aXZlID0gd2FpdFVudGlsRnVuY3Rpb25BY3RpdmU7XG5leHBvcnRzLndhaXRVbnRpbEZ1bmN0aW9uQWN0aXZlVjIgPSB3YWl0VW50aWxGdW5jdGlvbkFjdGl2ZVYyO1xuZXhwb3J0cy53YWl0VW50aWxGdW5jdGlvbkV4aXN0cyA9IHdhaXRVbnRpbEZ1bmN0aW9uRXhpc3RzO1xuZXhwb3J0cy53YWl0VW50aWxGdW5jdGlvblVwZGF0ZWQgPSB3YWl0VW50aWxGdW5jdGlvblVwZGF0ZWQ7XG5leHBvcnRzLndhaXRVbnRpbEZ1bmN0aW9uVXBkYXRlZFYyID0gd2FpdFVudGlsRnVuY3Rpb25VcGRhdGVkVjI7XG5leHBvcnRzLndhaXRVbnRpbFB1Ymxpc2hlZFZlcnNpb25BY3RpdmUgPSB3YWl0VW50aWxQdWJsaXNoZWRWZXJzaW9uQWN0aXZlO1xuIiwgIid1c2Ugc3RyaWN0JztcblxudmFyIHByb3RvY29sSHR0cCA9IHJlcXVpcmUoJ0BzbWl0aHkvcHJvdG9jb2wtaHR0cCcpO1xuXG5mdW5jdGlvbiBhZGRFeHBlY3RDb250aW51ZU1pZGRsZXdhcmUob3B0aW9ucykge1xuICAgIHJldHVybiAobmV4dCkgPT4gYXN5bmMgKGFyZ3MpID0+IHtcbiAgICAgICAgY29uc3QgeyByZXF1ZXN0IH0gPSBhcmdzO1xuICAgICAgICBpZiAob3B0aW9ucy5leHBlY3RDb250aW51ZUhlYWRlciAhPT0gZmFsc2UgJiZcbiAgICAgICAgICAgIHByb3RvY29sSHR0cC5IdHRwUmVxdWVzdC5pc0luc3RhbmNlKHJlcXVlc3QpICYmXG4gICAgICAgICAgICByZXF1ZXN0LmJvZHkgJiZcbiAgICAgICAgICAgIG9wdGlvbnMucnVudGltZSA9PT0gXCJub2RlXCIgJiZcbiAgICAgICAgICAgIG9wdGlvbnMucmVxdWVzdEhhbmRsZXI/LmNvbnN0cnVjdG9yPy5uYW1lICE9PSBcIkZldGNoSHR0cEhhbmRsZXJcIikge1xuICAgICAgICAgICAgbGV0IHNlbmRIZWFkZXIgPSB0cnVlO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLmV4cGVjdENvbnRpbnVlSGVhZGVyID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYm9keUxlbmd0aCA9IE51bWJlcihyZXF1ZXN0LmhlYWRlcnM/LltcImNvbnRlbnQtbGVuZ3RoXCJdKSA/PyBvcHRpb25zLmJvZHlMZW5ndGhDaGVja2VyPy4ocmVxdWVzdC5ib2R5KSA/PyBJbmZpbml0eTtcbiAgICAgICAgICAgICAgICAgICAgc2VuZEhlYWRlciA9IGJvZHlMZW5ndGggPj0gb3B0aW9ucy5leHBlY3RDb250aW51ZUhlYWRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2F0Y2ggKGUpIHsgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgc2VuZEhlYWRlciA9ICEhb3B0aW9ucy5leHBlY3RDb250aW51ZUhlYWRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzZW5kSGVhZGVyKSB7XG4gICAgICAgICAgICAgICAgcmVxdWVzdC5oZWFkZXJzLkV4cGVjdCA9IFwiMTAwLWNvbnRpbnVlXCI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5leHQoe1xuICAgICAgICAgICAgLi4uYXJncyxcbiAgICAgICAgICAgIHJlcXVlc3QsXG4gICAgICAgIH0pO1xuICAgIH07XG59XG5jb25zdCBhZGRFeHBlY3RDb250aW51ZU1pZGRsZXdhcmVPcHRpb25zID0ge1xuICAgIHN0ZXA6IFwiYnVpbGRcIixcbiAgICB0YWdzOiBbXCJTRVRfRVhQRUNUX0hFQURFUlwiLCBcIkVYUEVDVF9IRUFERVJcIl0sXG4gICAgbmFtZTogXCJhZGRFeHBlY3RDb250aW51ZU1pZGRsZXdhcmVcIixcbiAgICBvdmVycmlkZTogdHJ1ZSxcbn07XG5jb25zdCBnZXRBZGRFeHBlY3RDb250aW51ZVBsdWdpbiA9IChvcHRpb25zKSA9PiAoe1xuICAgIGFwcGx5VG9TdGFjazogKGNsaWVudFN0YWNrKSA9PiB7XG4gICAgICAgIGNsaWVudFN0YWNrLmFkZChhZGRFeHBlY3RDb250aW51ZU1pZGRsZXdhcmUob3B0aW9ucyksIGFkZEV4cGVjdENvbnRpbnVlTWlkZGxld2FyZU9wdGlvbnMpO1xuICAgIH0sXG59KTtcblxuZXhwb3J0cy5hZGRFeHBlY3RDb250aW51ZU1pZGRsZXdhcmUgPSBhZGRFeHBlY3RDb250aW51ZU1pZGRsZXdhcmU7XG5leHBvcnRzLmFkZEV4cGVjdENvbnRpbnVlTWlkZGxld2FyZU9wdGlvbnMgPSBhZGRFeHBlY3RDb250aW51ZU1pZGRsZXdhcmVPcHRpb25zO1xuZXhwb3J0cy5nZXRBZGRFeHBlY3RDb250aW51ZVBsdWdpbiA9IGdldEFkZEV4cGVjdENvbnRpbnVlUGx1Z2luO1xuIiwgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5nZXRDcmMzMkNoZWNrc3VtQWxnb3JpdGhtRnVuY3Rpb24gPSB2b2lkIDA7XG5jb25zdCB0c2xpYl8xID0gcmVxdWlyZShcInRzbGliXCIpO1xuY29uc3QgY3JjMzJfMSA9IHJlcXVpcmUoXCJAYXdzLWNyeXB0by9jcmMzMlwiKTtcbmNvbnN0IHV0aWxfMSA9IHJlcXVpcmUoXCJAYXdzLWNyeXB0by91dGlsXCIpO1xuY29uc3QgemxpYiA9IHRzbGliXzEuX19pbXBvcnRTdGFyKHJlcXVpcmUoXCJ6bGliXCIpKTtcbmNsYXNzIE5vZGVDcmMzMiB7XG4gICAgY2hlY2tzdW0gPSAwO1xuICAgIHVwZGF0ZShkYXRhKSB7XG4gICAgICAgIHRoaXMuY2hlY2tzdW0gPSB6bGliLmNyYzMyKGRhdGEsIHRoaXMuY2hlY2tzdW0pO1xuICAgIH1cbiAgICBhc3luYyBkaWdlc3QoKSB7XG4gICAgICAgIHJldHVybiAoMCwgdXRpbF8xLm51bVRvVWludDgpKHRoaXMuY2hlY2tzdW0pO1xuICAgIH1cbiAgICByZXNldCgpIHtcbiAgICAgICAgdGhpcy5jaGVja3N1bSA9IDA7XG4gICAgfVxufVxuY29uc3QgZ2V0Q3JjMzJDaGVja3N1bUFsZ29yaXRobUZ1bmN0aW9uID0gKCkgPT4ge1xuICAgIGlmICh0eXBlb2YgemxpYi5jcmMzMiA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICByZXR1cm4gY3JjMzJfMS5Bd3NDcmMzMjtcbiAgICB9XG4gICAgcmV0dXJuIE5vZGVDcmMzMjtcbn07XG5leHBvcnRzLmdldENyYzMyQ2hlY2tzdW1BbGdvcml0aG1GdW5jdGlvbiA9IGdldENyYzMyQ2hlY2tzdW1BbGdvcml0aG1GdW5jdGlvbjtcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBjb3JlID0gcmVxdWlyZSgnQGF3cy1zZGsvY29yZScpO1xudmFyIHByb3RvY29sSHR0cCA9IHJlcXVpcmUoJ0BzbWl0aHkvcHJvdG9jb2wtaHR0cCcpO1xudmFyIHV0aWxTdHJlYW0gPSByZXF1aXJlKCdAc21pdGh5L3V0aWwtc3RyZWFtJyk7XG52YXIgaXNBcnJheUJ1ZmZlciA9IHJlcXVpcmUoJ0BzbWl0aHkvaXMtYXJyYXktYnVmZmVyJyk7XG52YXIgY3JjMzJjID0gcmVxdWlyZSgnQGF3cy1jcnlwdG8vY3JjMzJjJyk7XG52YXIgZ2V0Q3JjMzJDaGVja3N1bUFsZ29yaXRobUZ1bmN0aW9uID0gcmVxdWlyZSgnLi9nZXRDcmMzMkNoZWNrc3VtQWxnb3JpdGhtRnVuY3Rpb24nKTtcbnZhciB1dGlsVXRmOCA9IHJlcXVpcmUoJ0BzbWl0aHkvdXRpbC11dGY4Jyk7XG52YXIgdXRpbE1pZGRsZXdhcmUgPSByZXF1aXJlKCdAc21pdGh5L3V0aWwtbWlkZGxld2FyZScpO1xuXG5jb25zdCBSZXF1ZXN0Q2hlY2tzdW1DYWxjdWxhdGlvbiA9IHtcbiAgICBXSEVOX1NVUFBPUlRFRDogXCJXSEVOX1NVUFBPUlRFRFwiLFxuICAgIFdIRU5fUkVRVUlSRUQ6IFwiV0hFTl9SRVFVSVJFRFwiLFxufTtcbmNvbnN0IERFRkFVTFRfUkVRVUVTVF9DSEVDS1NVTV9DQUxDVUxBVElPTiA9IFJlcXVlc3RDaGVja3N1bUNhbGN1bGF0aW9uLldIRU5fU1VQUE9SVEVEO1xuY29uc3QgUmVzcG9uc2VDaGVja3N1bVZhbGlkYXRpb24gPSB7XG4gICAgV0hFTl9TVVBQT1JURUQ6IFwiV0hFTl9TVVBQT1JURURcIixcbiAgICBXSEVOX1JFUVVJUkVEOiBcIldIRU5fUkVRVUlSRURcIixcbn07XG5jb25zdCBERUZBVUxUX1JFU1BPTlNFX0NIRUNLU1VNX1ZBTElEQVRJT04gPSBSZXF1ZXN0Q2hlY2tzdW1DYWxjdWxhdGlvbi5XSEVOX1NVUFBPUlRFRDtcbmV4cG9ydHMuQ2hlY2tzdW1BbGdvcml0aG0gPSB2b2lkIDA7XG4oZnVuY3Rpb24gKENoZWNrc3VtQWxnb3JpdGhtKSB7XG4gICAgQ2hlY2tzdW1BbGdvcml0aG1bXCJNRDVcIl0gPSBcIk1ENVwiO1xuICAgIENoZWNrc3VtQWxnb3JpdGhtW1wiQ1JDMzJcIl0gPSBcIkNSQzMyXCI7XG4gICAgQ2hlY2tzdW1BbGdvcml0aG1bXCJDUkMzMkNcIl0gPSBcIkNSQzMyQ1wiO1xuICAgIENoZWNrc3VtQWxnb3JpdGhtW1wiQ1JDNjROVk1FXCJdID0gXCJDUkM2NE5WTUVcIjtcbiAgICBDaGVja3N1bUFsZ29yaXRobVtcIlNIQTFcIl0gPSBcIlNIQTFcIjtcbiAgICBDaGVja3N1bUFsZ29yaXRobVtcIlNIQTI1NlwiXSA9IFwiU0hBMjU2XCI7XG59KShleHBvcnRzLkNoZWNrc3VtQWxnb3JpdGhtIHx8IChleHBvcnRzLkNoZWNrc3VtQWxnb3JpdGhtID0ge30pKTtcbmV4cG9ydHMuQ2hlY2tzdW1Mb2NhdGlvbiA9IHZvaWQgMDtcbihmdW5jdGlvbiAoQ2hlY2tzdW1Mb2NhdGlvbikge1xuICAgIENoZWNrc3VtTG9jYXRpb25bXCJIRUFERVJcIl0gPSBcImhlYWRlclwiO1xuICAgIENoZWNrc3VtTG9jYXRpb25bXCJUUkFJTEVSXCJdID0gXCJ0cmFpbGVyXCI7XG59KShleHBvcnRzLkNoZWNrc3VtTG9jYXRpb24gfHwgKGV4cG9ydHMuQ2hlY2tzdW1Mb2NhdGlvbiA9IHt9KSk7XG5jb25zdCBERUZBVUxUX0NIRUNLU1VNX0FMR09SSVRITSA9IGV4cG9ydHMuQ2hlY2tzdW1BbGdvcml0aG0uQ1JDMzI7XG5cbnZhciBTZWxlY3RvclR5cGU7XG4oZnVuY3Rpb24gKFNlbGVjdG9yVHlwZSkge1xuICAgIFNlbGVjdG9yVHlwZVtcIkVOVlwiXSA9IFwiZW52XCI7XG4gICAgU2VsZWN0b3JUeXBlW1wiQ09ORklHXCJdID0gXCJzaGFyZWQgY29uZmlnIGVudHJ5XCI7XG59KShTZWxlY3RvclR5cGUgfHwgKFNlbGVjdG9yVHlwZSA9IHt9KSk7XG5jb25zdCBzdHJpbmdVbmlvblNlbGVjdG9yID0gKG9iaiwga2V5LCB1bmlvbiwgdHlwZSkgPT4ge1xuICAgIGlmICghKGtleSBpbiBvYmopKVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGNvbnN0IHZhbHVlID0gb2JqW2tleV0udG9VcHBlckNhc2UoKTtcbiAgICBpZiAoIU9iamVjdC52YWx1ZXModW5pb24pLmluY2x1ZGVzKHZhbHVlKSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBDYW5ub3QgbG9hZCAke3R5cGV9ICcke2tleX0nLiBFeHBlY3RlZCBvbmUgb2YgJHtPYmplY3QudmFsdWVzKHVuaW9uKX0sIGdvdCAnJHtvYmpba2V5XX0nLmApO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG59O1xuXG5jb25zdCBFTlZfUkVRVUVTVF9DSEVDS1NVTV9DQUxDVUxBVElPTiA9IFwiQVdTX1JFUVVFU1RfQ0hFQ0tTVU1fQ0FMQ1VMQVRJT05cIjtcbmNvbnN0IENPTkZJR19SRVFVRVNUX0NIRUNLU1VNX0NBTENVTEFUSU9OID0gXCJyZXF1ZXN0X2NoZWNrc3VtX2NhbGN1bGF0aW9uXCI7XG5jb25zdCBOT0RFX1JFUVVFU1RfQ0hFQ0tTVU1fQ0FMQ1VMQVRJT05fQ09ORklHX09QVElPTlMgPSB7XG4gICAgZW52aXJvbm1lbnRWYXJpYWJsZVNlbGVjdG9yOiAoZW52KSA9PiBzdHJpbmdVbmlvblNlbGVjdG9yKGVudiwgRU5WX1JFUVVFU1RfQ0hFQ0tTVU1fQ0FMQ1VMQVRJT04sIFJlcXVlc3RDaGVja3N1bUNhbGN1bGF0aW9uLCBTZWxlY3RvclR5cGUuRU5WKSxcbiAgICBjb25maWdGaWxlU2VsZWN0b3I6IChwcm9maWxlKSA9PiBzdHJpbmdVbmlvblNlbGVjdG9yKHByb2ZpbGUsIENPTkZJR19SRVFVRVNUX0NIRUNLU1VNX0NBTENVTEFUSU9OLCBSZXF1ZXN0Q2hlY2tzdW1DYWxjdWxhdGlvbiwgU2VsZWN0b3JUeXBlLkNPTkZJRyksXG4gICAgZGVmYXVsdDogREVGQVVMVF9SRVFVRVNUX0NIRUNLU1VNX0NBTENVTEFUSU9OLFxufTtcblxuY29uc3QgRU5WX1JFU1BPTlNFX0NIRUNLU1VNX1ZBTElEQVRJT04gPSBcIkFXU19SRVNQT05TRV9DSEVDS1NVTV9WQUxJREFUSU9OXCI7XG5jb25zdCBDT05GSUdfUkVTUE9OU0VfQ0hFQ0tTVU1fVkFMSURBVElPTiA9IFwicmVzcG9uc2VfY2hlY2tzdW1fdmFsaWRhdGlvblwiO1xuY29uc3QgTk9ERV9SRVNQT05TRV9DSEVDS1NVTV9WQUxJREFUSU9OX0NPTkZJR19PUFRJT05TID0ge1xuICAgIGVudmlyb25tZW50VmFyaWFibGVTZWxlY3RvcjogKGVudikgPT4gc3RyaW5nVW5pb25TZWxlY3RvcihlbnYsIEVOVl9SRVNQT05TRV9DSEVDS1NVTV9WQUxJREFUSU9OLCBSZXNwb25zZUNoZWNrc3VtVmFsaWRhdGlvbiwgU2VsZWN0b3JUeXBlLkVOViksXG4gICAgY29uZmlnRmlsZVNlbGVjdG9yOiAocHJvZmlsZSkgPT4gc3RyaW5nVW5pb25TZWxlY3Rvcihwcm9maWxlLCBDT05GSUdfUkVTUE9OU0VfQ0hFQ0tTVU1fVkFMSURBVElPTiwgUmVzcG9uc2VDaGVja3N1bVZhbGlkYXRpb24sIFNlbGVjdG9yVHlwZS5DT05GSUcpLFxuICAgIGRlZmF1bHQ6IERFRkFVTFRfUkVTUE9OU0VfQ0hFQ0tTVU1fVkFMSURBVElPTixcbn07XG5cbmNvbnN0IGNyYzY0TnZtZUNydENvbnRhaW5lciA9IHtcbiAgICBDcnRDcmM2NE52bWU6IG51bGwsXG59O1xuXG5jb25zdCBDTElFTlRfU1VQUE9SVEVEX0FMR09SSVRITVMgPSBbXG4gICAgZXhwb3J0cy5DaGVja3N1bUFsZ29yaXRobS5DUkMzMixcbiAgICBleHBvcnRzLkNoZWNrc3VtQWxnb3JpdGhtLkNSQzMyQyxcbiAgICBleHBvcnRzLkNoZWNrc3VtQWxnb3JpdGhtLkNSQzY0TlZNRSxcbiAgICBleHBvcnRzLkNoZWNrc3VtQWxnb3JpdGhtLlNIQTEsXG4gICAgZXhwb3J0cy5DaGVja3N1bUFsZ29yaXRobS5TSEEyNTYsXG5dO1xuY29uc3QgUFJJT1JJVFlfT1JERVJfQUxHT1JJVEhNUyA9IFtcbiAgICBleHBvcnRzLkNoZWNrc3VtQWxnb3JpdGhtLlNIQTI1NixcbiAgICBleHBvcnRzLkNoZWNrc3VtQWxnb3JpdGhtLlNIQTEsXG4gICAgZXhwb3J0cy5DaGVja3N1bUFsZ29yaXRobS5DUkMzMixcbiAgICBleHBvcnRzLkNoZWNrc3VtQWxnb3JpdGhtLkNSQzMyQyxcbiAgICBleHBvcnRzLkNoZWNrc3VtQWxnb3JpdGhtLkNSQzY0TlZNRSxcbl07XG5cbmNvbnN0IGdldENoZWNrc3VtQWxnb3JpdGhtRm9yUmVxdWVzdCA9IChpbnB1dCwgeyByZXF1ZXN0Q2hlY2tzdW1SZXF1aXJlZCwgcmVxdWVzdEFsZ29yaXRobU1lbWJlciwgcmVxdWVzdENoZWNrc3VtQ2FsY3VsYXRpb24gfSkgPT4ge1xuICAgIGlmICghcmVxdWVzdEFsZ29yaXRobU1lbWJlcikge1xuICAgICAgICByZXR1cm4gcmVxdWVzdENoZWNrc3VtQ2FsY3VsYXRpb24gPT09IFJlcXVlc3RDaGVja3N1bUNhbGN1bGF0aW9uLldIRU5fU1VQUE9SVEVEIHx8IHJlcXVlc3RDaGVja3N1bVJlcXVpcmVkXG4gICAgICAgICAgICA/IERFRkFVTFRfQ0hFQ0tTVU1fQUxHT1JJVEhNXG4gICAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgaWYgKCFpbnB1dFtyZXF1ZXN0QWxnb3JpdGhtTWVtYmVyXSkge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBjb25zdCBjaGVja3N1bUFsZ29yaXRobSA9IGlucHV0W3JlcXVlc3RBbGdvcml0aG1NZW1iZXJdO1xuICAgIGlmICghQ0xJRU5UX1NVUFBPUlRFRF9BTEdPUklUSE1TLmluY2x1ZGVzKGNoZWNrc3VtQWxnb3JpdGhtKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZSBjaGVja3N1bSBhbGdvcml0aG0gXCIke2NoZWNrc3VtQWxnb3JpdGhtfVwiIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIGNsaWVudC5gICtcbiAgICAgICAgICAgIGAgU2VsZWN0IG9uZSBvZiAke0NMSUVOVF9TVVBQT1JURURfQUxHT1JJVEhNU30uYCk7XG4gICAgfVxuICAgIHJldHVybiBjaGVja3N1bUFsZ29yaXRobTtcbn07XG5cbmNvbnN0IGdldENoZWNrc3VtTG9jYXRpb25OYW1lID0gKGFsZ29yaXRobSkgPT4gYWxnb3JpdGhtID09PSBleHBvcnRzLkNoZWNrc3VtQWxnb3JpdGhtLk1ENSA/IFwiY29udGVudC1tZDVcIiA6IGB4LWFtei1jaGVja3N1bS0ke2FsZ29yaXRobS50b0xvd2VyQ2FzZSgpfWA7XG5cbmNvbnN0IGhhc0hlYWRlciA9IChoZWFkZXIsIGhlYWRlcnMpID0+IHtcbiAgICBjb25zdCBzb3VnaHRIZWFkZXIgPSBoZWFkZXIudG9Mb3dlckNhc2UoKTtcbiAgICBmb3IgKGNvbnN0IGhlYWRlck5hbWUgb2YgT2JqZWN0LmtleXMoaGVhZGVycykpIHtcbiAgICAgICAgaWYgKHNvdWdodEhlYWRlciA9PT0gaGVhZGVyTmFtZS50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59O1xuXG5jb25zdCBoYXNIZWFkZXJXaXRoUHJlZml4ID0gKGhlYWRlclByZWZpeCwgaGVhZGVycykgPT4ge1xuICAgIGNvbnN0IHNvdWdodEhlYWRlclByZWZpeCA9IGhlYWRlclByZWZpeC50b0xvd2VyQ2FzZSgpO1xuICAgIGZvciAoY29uc3QgaGVhZGVyTmFtZSBvZiBPYmplY3Qua2V5cyhoZWFkZXJzKSkge1xuICAgICAgICBpZiAoaGVhZGVyTmFtZS50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoc291Z2h0SGVhZGVyUHJlZml4KSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufTtcblxuY29uc3QgaXNTdHJlYW1pbmcgPSAoYm9keSkgPT4gYm9keSAhPT0gdW5kZWZpbmVkICYmIHR5cGVvZiBib2R5ICE9PSBcInN0cmluZ1wiICYmICFBcnJheUJ1ZmZlci5pc1ZpZXcoYm9keSkgJiYgIWlzQXJyYXlCdWZmZXIuaXNBcnJheUJ1ZmZlcihib2R5KTtcblxuY29uc3Qgc2VsZWN0Q2hlY2tzdW1BbGdvcml0aG1GdW5jdGlvbiA9IChjaGVja3N1bUFsZ29yaXRobSwgY29uZmlnKSA9PiB7XG4gICAgc3dpdGNoIChjaGVja3N1bUFsZ29yaXRobSkge1xuICAgICAgICBjYXNlIGV4cG9ydHMuQ2hlY2tzdW1BbGdvcml0aG0uTUQ1OlxuICAgICAgICAgICAgcmV0dXJuIGNvbmZpZy5tZDU7XG4gICAgICAgIGNhc2UgZXhwb3J0cy5DaGVja3N1bUFsZ29yaXRobS5DUkMzMjpcbiAgICAgICAgICAgIHJldHVybiBnZXRDcmMzMkNoZWNrc3VtQWxnb3JpdGhtRnVuY3Rpb24uZ2V0Q3JjMzJDaGVja3N1bUFsZ29yaXRobUZ1bmN0aW9uKCk7XG4gICAgICAgIGNhc2UgZXhwb3J0cy5DaGVja3N1bUFsZ29yaXRobS5DUkMzMkM6XG4gICAgICAgICAgICByZXR1cm4gY3JjMzJjLkF3c0NyYzMyYztcbiAgICAgICAgY2FzZSBleHBvcnRzLkNoZWNrc3VtQWxnb3JpdGhtLkNSQzY0TlZNRTpcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY3JjNjROdm1lQ3J0Q29udGFpbmVyLkNydENyYzY0TnZtZSAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBQbGVhc2UgY2hlY2sgd2hldGhlciB5b3UgaGF2ZSBpbnN0YWxsZWQgdGhlIFwiQGF3cy1zZGsvY3JjNjQtbnZtZS1jcnRcIiBwYWNrYWdlIGV4cGxpY2l0bHkuIFxcbmAgK1xuICAgICAgICAgICAgICAgICAgICBgWW91IG11c3QgYWxzbyByZWdpc3RlciB0aGUgcGFja2FnZSBieSBjYWxsaW5nIFtyZXF1aXJlKFwiQGF3cy1zZGsvY3JjNjQtbnZtZS1jcnRcIik7XSBgICtcbiAgICAgICAgICAgICAgICAgICAgYG9yIGFuIEVTTSBlcXVpdmFsZW50IHN1Y2ggYXMgW2ltcG9ydCBcIkBhd3Mtc2RrL2NyYzY0LW52bWUtY3J0XCI7XS4gXFxuYCArXG4gICAgICAgICAgICAgICAgICAgIFwiRm9yIG1vcmUgaW5mb3JtYXRpb24gcGxlYXNlIGdvIHRvIFwiICtcbiAgICAgICAgICAgICAgICAgICAgXCJodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1zZGstanMtdjMjZnVuY3Rpb25hbGl0eS1yZXF1aXJpbmctYXdzLWNvbW1vbi1ydW50aW1lLWNydFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBjcmM2NE52bWVDcnRDb250YWluZXIuQ3J0Q3JjNjROdm1lO1xuICAgICAgICBjYXNlIGV4cG9ydHMuQ2hlY2tzdW1BbGdvcml0aG0uU0hBMTpcbiAgICAgICAgICAgIHJldHVybiBjb25maWcuc2hhMTtcbiAgICAgICAgY2FzZSBleHBvcnRzLkNoZWNrc3VtQWxnb3JpdGhtLlNIQTI1NjpcbiAgICAgICAgICAgIHJldHVybiBjb25maWcuc2hhMjU2O1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCBjaGVja3N1bSBhbGdvcml0aG06ICR7Y2hlY2tzdW1BbGdvcml0aG19YCk7XG4gICAgfVxufTtcblxuY29uc3Qgc3RyaW5nSGFzaGVyID0gKGNoZWNrc3VtQWxnb3JpdGhtRm4sIGJvZHkpID0+IHtcbiAgICBjb25zdCBoYXNoID0gbmV3IGNoZWNrc3VtQWxnb3JpdGhtRm4oKTtcbiAgICBoYXNoLnVwZGF0ZSh1dGlsVXRmOC50b1VpbnQ4QXJyYXkoYm9keSB8fCBcIlwiKSk7XG4gICAgcmV0dXJuIGhhc2guZGlnZXN0KCk7XG59O1xuXG5jb25zdCBmbGV4aWJsZUNoZWNrc3Vtc01pZGRsZXdhcmVPcHRpb25zID0ge1xuICAgIG5hbWU6IFwiZmxleGlibGVDaGVja3N1bXNNaWRkbGV3YXJlXCIsXG4gICAgc3RlcDogXCJidWlsZFwiLFxuICAgIHRhZ3M6IFtcIkJPRFlfQ0hFQ0tTVU1cIl0sXG4gICAgb3ZlcnJpZGU6IHRydWUsXG59O1xuY29uc3QgZmxleGlibGVDaGVja3N1bXNNaWRkbGV3YXJlID0gKGNvbmZpZywgbWlkZGxld2FyZUNvbmZpZykgPT4gKG5leHQsIGNvbnRleHQpID0+IGFzeW5jIChhcmdzKSA9PiB7XG4gICAgaWYgKCFwcm90b2NvbEh0dHAuSHR0cFJlcXVlc3QuaXNJbnN0YW5jZShhcmdzLnJlcXVlc3QpKSB7XG4gICAgICAgIHJldHVybiBuZXh0KGFyZ3MpO1xuICAgIH1cbiAgICBpZiAoaGFzSGVhZGVyV2l0aFByZWZpeChcIngtYW16LWNoZWNrc3VtLVwiLCBhcmdzLnJlcXVlc3QuaGVhZGVycykpIHtcbiAgICAgICAgcmV0dXJuIG5leHQoYXJncyk7XG4gICAgfVxuICAgIGNvbnN0IHsgcmVxdWVzdCwgaW5wdXQgfSA9IGFyZ3M7XG4gICAgY29uc3QgeyBib2R5OiByZXF1ZXN0Qm9keSwgaGVhZGVycyB9ID0gcmVxdWVzdDtcbiAgICBjb25zdCB7IGJhc2U2NEVuY29kZXIsIHN0cmVhbUhhc2hlciB9ID0gY29uZmlnO1xuICAgIGNvbnN0IHsgcmVxdWVzdENoZWNrc3VtUmVxdWlyZWQsIHJlcXVlc3RBbGdvcml0aG1NZW1iZXIgfSA9IG1pZGRsZXdhcmVDb25maWc7XG4gICAgY29uc3QgcmVxdWVzdENoZWNrc3VtQ2FsY3VsYXRpb24gPSBhd2FpdCBjb25maWcucmVxdWVzdENoZWNrc3VtQ2FsY3VsYXRpb24oKTtcbiAgICBjb25zdCByZXF1ZXN0QWxnb3JpdGhtTWVtYmVyTmFtZSA9IHJlcXVlc3RBbGdvcml0aG1NZW1iZXI/Lm5hbWU7XG4gICAgY29uc3QgcmVxdWVzdEFsZ29yaXRobU1lbWJlckh0dHBIZWFkZXIgPSByZXF1ZXN0QWxnb3JpdGhtTWVtYmVyPy5odHRwSGVhZGVyO1xuICAgIGlmIChyZXF1ZXN0QWxnb3JpdGhtTWVtYmVyTmFtZSAmJiAhaW5wdXRbcmVxdWVzdEFsZ29yaXRobU1lbWJlck5hbWVdKSB7XG4gICAgICAgIGlmIChyZXF1ZXN0Q2hlY2tzdW1DYWxjdWxhdGlvbiA9PT0gUmVxdWVzdENoZWNrc3VtQ2FsY3VsYXRpb24uV0hFTl9TVVBQT1JURUQgfHwgcmVxdWVzdENoZWNrc3VtUmVxdWlyZWQpIHtcbiAgICAgICAgICAgIGlucHV0W3JlcXVlc3RBbGdvcml0aG1NZW1iZXJOYW1lXSA9IERFRkFVTFRfQ0hFQ0tTVU1fQUxHT1JJVEhNO1xuICAgICAgICAgICAgaWYgKHJlcXVlc3RBbGdvcml0aG1NZW1iZXJIdHRwSGVhZGVyKSB7XG4gICAgICAgICAgICAgICAgaGVhZGVyc1tyZXF1ZXN0QWxnb3JpdGhtTWVtYmVySHR0cEhlYWRlcl0gPSBERUZBVUxUX0NIRUNLU1VNX0FMR09SSVRITTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBjaGVja3N1bUFsZ29yaXRobSA9IGdldENoZWNrc3VtQWxnb3JpdGhtRm9yUmVxdWVzdChpbnB1dCwge1xuICAgICAgICByZXF1ZXN0Q2hlY2tzdW1SZXF1aXJlZCxcbiAgICAgICAgcmVxdWVzdEFsZ29yaXRobU1lbWJlcjogcmVxdWVzdEFsZ29yaXRobU1lbWJlcj8ubmFtZSxcbiAgICAgICAgcmVxdWVzdENoZWNrc3VtQ2FsY3VsYXRpb24sXG4gICAgfSk7XG4gICAgbGV0IHVwZGF0ZWRCb2R5ID0gcmVxdWVzdEJvZHk7XG4gICAgbGV0IHVwZGF0ZWRIZWFkZXJzID0gaGVhZGVycztcbiAgICBpZiAoY2hlY2tzdW1BbGdvcml0aG0pIHtcbiAgICAgICAgc3dpdGNoIChjaGVja3N1bUFsZ29yaXRobSkge1xuICAgICAgICAgICAgY2FzZSBleHBvcnRzLkNoZWNrc3VtQWxnb3JpdGhtLkNSQzMyOlxuICAgICAgICAgICAgICAgIGNvcmUuc2V0RmVhdHVyZShjb250ZXh0LCBcIkZMRVhJQkxFX0NIRUNLU1VNU19SRVFfQ1JDMzJcIiwgXCJVXCIpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBleHBvcnRzLkNoZWNrc3VtQWxnb3JpdGhtLkNSQzMyQzpcbiAgICAgICAgICAgICAgICBjb3JlLnNldEZlYXR1cmUoY29udGV4dCwgXCJGTEVYSUJMRV9DSEVDS1NVTVNfUkVRX0NSQzMyQ1wiLCBcIlZcIik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIGV4cG9ydHMuQ2hlY2tzdW1BbGdvcml0aG0uQ1JDNjROVk1FOlxuICAgICAgICAgICAgICAgIGNvcmUuc2V0RmVhdHVyZShjb250ZXh0LCBcIkZMRVhJQkxFX0NIRUNLU1VNU19SRVFfQ1JDNjRcIiwgXCJXXCIpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBleHBvcnRzLkNoZWNrc3VtQWxnb3JpdGhtLlNIQTE6XG4gICAgICAgICAgICAgICAgY29yZS5zZXRGZWF0dXJlKGNvbnRleHQsIFwiRkxFWElCTEVfQ0hFQ0tTVU1TX1JFUV9TSEExXCIsIFwiWFwiKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgZXhwb3J0cy5DaGVja3N1bUFsZ29yaXRobS5TSEEyNTY6XG4gICAgICAgICAgICAgICAgY29yZS5zZXRGZWF0dXJlKGNvbnRleHQsIFwiRkxFWElCTEVfQ0hFQ0tTVU1TX1JFUV9TSEEyNTZcIiwgXCJZXCIpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNoZWNrc3VtTG9jYXRpb25OYW1lID0gZ2V0Q2hlY2tzdW1Mb2NhdGlvbk5hbWUoY2hlY2tzdW1BbGdvcml0aG0pO1xuICAgICAgICBjb25zdCBjaGVja3N1bUFsZ29yaXRobUZuID0gc2VsZWN0Q2hlY2tzdW1BbGdvcml0aG1GdW5jdGlvbihjaGVja3N1bUFsZ29yaXRobSwgY29uZmlnKTtcbiAgICAgICAgaWYgKGlzU3RyZWFtaW5nKHJlcXVlc3RCb2R5KSkge1xuICAgICAgICAgICAgY29uc3QgeyBnZXRBd3NDaHVua2VkRW5jb2RpbmdTdHJlYW0sIGJvZHlMZW5ndGhDaGVja2VyIH0gPSBjb25maWc7XG4gICAgICAgICAgICB1cGRhdGVkQm9keSA9IGdldEF3c0NodW5rZWRFbmNvZGluZ1N0cmVhbSh0eXBlb2YgY29uZmlnLnJlcXVlc3RTdHJlYW1CdWZmZXJTaXplID09PSBcIm51bWJlclwiICYmIGNvbmZpZy5yZXF1ZXN0U3RyZWFtQnVmZmVyU2l6ZSA+PSA4ICogMTAyNFxuICAgICAgICAgICAgICAgID8gdXRpbFN0cmVhbS5jcmVhdGVCdWZmZXJlZFJlYWRhYmxlKHJlcXVlc3RCb2R5LCBjb25maWcucmVxdWVzdFN0cmVhbUJ1ZmZlclNpemUsIGNvbnRleHQubG9nZ2VyKVxuICAgICAgICAgICAgICAgIDogcmVxdWVzdEJvZHksIHtcbiAgICAgICAgICAgICAgICBiYXNlNjRFbmNvZGVyLFxuICAgICAgICAgICAgICAgIGJvZHlMZW5ndGhDaGVja2VyLFxuICAgICAgICAgICAgICAgIGNoZWNrc3VtTG9jYXRpb25OYW1lLFxuICAgICAgICAgICAgICAgIGNoZWNrc3VtQWxnb3JpdGhtRm4sXG4gICAgICAgICAgICAgICAgc3RyZWFtSGFzaGVyLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB1cGRhdGVkSGVhZGVycyA9IHtcbiAgICAgICAgICAgICAgICAuLi5oZWFkZXJzLFxuICAgICAgICAgICAgICAgIFwiY29udGVudC1lbmNvZGluZ1wiOiBoZWFkZXJzW1wiY29udGVudC1lbmNvZGluZ1wiXVxuICAgICAgICAgICAgICAgICAgICA/IGAke2hlYWRlcnNbXCJjb250ZW50LWVuY29kaW5nXCJdfSxhd3MtY2h1bmtlZGBcbiAgICAgICAgICAgICAgICAgICAgOiBcImF3cy1jaHVua2VkXCIsXG4gICAgICAgICAgICAgICAgXCJ0cmFuc2Zlci1lbmNvZGluZ1wiOiBcImNodW5rZWRcIixcbiAgICAgICAgICAgICAgICBcIngtYW16LWRlY29kZWQtY29udGVudC1sZW5ndGhcIjogaGVhZGVyc1tcImNvbnRlbnQtbGVuZ3RoXCJdLFxuICAgICAgICAgICAgICAgIFwieC1hbXotY29udGVudC1zaGEyNTZcIjogXCJTVFJFQU1JTkctVU5TSUdORUQtUEFZTE9BRC1UUkFJTEVSXCIsXG4gICAgICAgICAgICAgICAgXCJ4LWFtei10cmFpbGVyXCI6IGNoZWNrc3VtTG9jYXRpb25OYW1lLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGRlbGV0ZSB1cGRhdGVkSGVhZGVyc1tcImNvbnRlbnQtbGVuZ3RoXCJdO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKCFoYXNIZWFkZXIoY2hlY2tzdW1Mb2NhdGlvbk5hbWUsIGhlYWRlcnMpKSB7XG4gICAgICAgICAgICBjb25zdCByYXdDaGVja3N1bSA9IGF3YWl0IHN0cmluZ0hhc2hlcihjaGVja3N1bUFsZ29yaXRobUZuLCByZXF1ZXN0Qm9keSk7XG4gICAgICAgICAgICB1cGRhdGVkSGVhZGVycyA9IHtcbiAgICAgICAgICAgICAgICAuLi5oZWFkZXJzLFxuICAgICAgICAgICAgICAgIFtjaGVja3N1bUxvY2F0aW9uTmFtZV06IGJhc2U2NEVuY29kZXIocmF3Q2hlY2tzdW0pLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBuZXh0KHtcbiAgICAgICAgLi4uYXJncyxcbiAgICAgICAgcmVxdWVzdDoge1xuICAgICAgICAgICAgLi4ucmVxdWVzdCxcbiAgICAgICAgICAgIGhlYWRlcnM6IHVwZGF0ZWRIZWFkZXJzLFxuICAgICAgICAgICAgYm9keTogdXBkYXRlZEJvZHksXG4gICAgICAgIH0sXG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbmNvbnN0IGZsZXhpYmxlQ2hlY2tzdW1zSW5wdXRNaWRkbGV3YXJlT3B0aW9ucyA9IHtcbiAgICBuYW1lOiBcImZsZXhpYmxlQ2hlY2tzdW1zSW5wdXRNaWRkbGV3YXJlXCIsXG4gICAgdG9NaWRkbGV3YXJlOiBcInNlcmlhbGl6ZXJNaWRkbGV3YXJlXCIsXG4gICAgcmVsYXRpb246IFwiYmVmb3JlXCIsXG4gICAgdGFnczogW1wiQk9EWV9DSEVDS1NVTVwiXSxcbiAgICBvdmVycmlkZTogdHJ1ZSxcbn07XG5jb25zdCBmbGV4aWJsZUNoZWNrc3Vtc0lucHV0TWlkZGxld2FyZSA9IChjb25maWcsIG1pZGRsZXdhcmVDb25maWcpID0+IChuZXh0LCBjb250ZXh0KSA9PiBhc3luYyAoYXJncykgPT4ge1xuICAgIGNvbnN0IGlucHV0ID0gYXJncy5pbnB1dDtcbiAgICBjb25zdCB7IHJlcXVlc3RWYWxpZGF0aW9uTW9kZU1lbWJlciB9ID0gbWlkZGxld2FyZUNvbmZpZztcbiAgICBjb25zdCByZXF1ZXN0Q2hlY2tzdW1DYWxjdWxhdGlvbiA9IGF3YWl0IGNvbmZpZy5yZXF1ZXN0Q2hlY2tzdW1DYWxjdWxhdGlvbigpO1xuICAgIGNvbnN0IHJlc3BvbnNlQ2hlY2tzdW1WYWxpZGF0aW9uID0gYXdhaXQgY29uZmlnLnJlc3BvbnNlQ2hlY2tzdW1WYWxpZGF0aW9uKCk7XG4gICAgc3dpdGNoIChyZXF1ZXN0Q2hlY2tzdW1DYWxjdWxhdGlvbikge1xuICAgICAgICBjYXNlIFJlcXVlc3RDaGVja3N1bUNhbGN1bGF0aW9uLldIRU5fUkVRVUlSRUQ6XG4gICAgICAgICAgICBjb3JlLnNldEZlYXR1cmUoY29udGV4dCwgXCJGTEVYSUJMRV9DSEVDS1NVTVNfUkVRX1dIRU5fUkVRVUlSRURcIiwgXCJhXCIpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgUmVxdWVzdENoZWNrc3VtQ2FsY3VsYXRpb24uV0hFTl9TVVBQT1JURUQ6XG4gICAgICAgICAgICBjb3JlLnNldEZlYXR1cmUoY29udGV4dCwgXCJGTEVYSUJMRV9DSEVDS1NVTVNfUkVRX1dIRU5fU1VQUE9SVEVEXCIsIFwiWlwiKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBzd2l0Y2ggKHJlc3BvbnNlQ2hlY2tzdW1WYWxpZGF0aW9uKSB7XG4gICAgICAgIGNhc2UgUmVzcG9uc2VDaGVja3N1bVZhbGlkYXRpb24uV0hFTl9SRVFVSVJFRDpcbiAgICAgICAgICAgIGNvcmUuc2V0RmVhdHVyZShjb250ZXh0LCBcIkZMRVhJQkxFX0NIRUNLU1VNU19SRVNfV0hFTl9SRVFVSVJFRFwiLCBcImNcIik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBSZXNwb25zZUNoZWNrc3VtVmFsaWRhdGlvbi5XSEVOX1NVUFBPUlRFRDpcbiAgICAgICAgICAgIGNvcmUuc2V0RmVhdHVyZShjb250ZXh0LCBcIkZMRVhJQkxFX0NIRUNLU1VNU19SRVNfV0hFTl9TVVBQT1JURURcIiwgXCJiXCIpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGlmIChyZXF1ZXN0VmFsaWRhdGlvbk1vZGVNZW1iZXIgJiYgIWlucHV0W3JlcXVlc3RWYWxpZGF0aW9uTW9kZU1lbWJlcl0pIHtcbiAgICAgICAgaWYgKHJlc3BvbnNlQ2hlY2tzdW1WYWxpZGF0aW9uID09PSBSZXNwb25zZUNoZWNrc3VtVmFsaWRhdGlvbi5XSEVOX1NVUFBPUlRFRCkge1xuICAgICAgICAgICAgaW5wdXRbcmVxdWVzdFZhbGlkYXRpb25Nb2RlTWVtYmVyXSA9IFwiRU5BQkxFRFwiO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBuZXh0KGFyZ3MpO1xufTtcblxuY29uc3QgZ2V0Q2hlY2tzdW1BbGdvcml0aG1MaXN0Rm9yUmVzcG9uc2UgPSAocmVzcG9uc2VBbGdvcml0aG1zID0gW10pID0+IHtcbiAgICBjb25zdCB2YWxpZENoZWNrc3VtQWxnb3JpdGhtcyA9IFtdO1xuICAgIGZvciAoY29uc3QgYWxnb3JpdGhtIG9mIFBSSU9SSVRZX09SREVSX0FMR09SSVRITVMpIHtcbiAgICAgICAgaWYgKCFyZXNwb25zZUFsZ29yaXRobXMuaW5jbHVkZXMoYWxnb3JpdGhtKSB8fCAhQ0xJRU5UX1NVUFBPUlRFRF9BTEdPUklUSE1TLmluY2x1ZGVzKGFsZ29yaXRobSkpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIHZhbGlkQ2hlY2tzdW1BbGdvcml0aG1zLnB1c2goYWxnb3JpdGhtKTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbGlkQ2hlY2tzdW1BbGdvcml0aG1zO1xufTtcblxuY29uc3QgaXNDaGVja3N1bVdpdGhQYXJ0TnVtYmVyID0gKGNoZWNrc3VtKSA9PiB7XG4gICAgY29uc3QgbGFzdEh5cGhlbkluZGV4ID0gY2hlY2tzdW0ubGFzdEluZGV4T2YoXCItXCIpO1xuICAgIGlmIChsYXN0SHlwaGVuSW5kZXggIT09IC0xKSB7XG4gICAgICAgIGNvbnN0IG51bWJlclBhcnQgPSBjaGVja3N1bS5zbGljZShsYXN0SHlwaGVuSW5kZXggKyAxKTtcbiAgICAgICAgaWYgKCFudW1iZXJQYXJ0LnN0YXJ0c1dpdGgoXCIwXCIpKSB7XG4gICAgICAgICAgICBjb25zdCBudW1iZXIgPSBwYXJzZUludChudW1iZXJQYXJ0LCAxMCk7XG4gICAgICAgICAgICBpZiAoIWlzTmFOKG51bWJlcikgJiYgbnVtYmVyID49IDEgJiYgbnVtYmVyIDw9IDEwMDAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufTtcblxuY29uc3QgZ2V0Q2hlY2tzdW0gPSBhc3luYyAoYm9keSwgeyBjaGVja3N1bUFsZ29yaXRobUZuLCBiYXNlNjRFbmNvZGVyIH0pID0+IGJhc2U2NEVuY29kZXIoYXdhaXQgc3RyaW5nSGFzaGVyKGNoZWNrc3VtQWxnb3JpdGhtRm4sIGJvZHkpKTtcblxuY29uc3QgdmFsaWRhdGVDaGVja3N1bUZyb21SZXNwb25zZSA9IGFzeW5jIChyZXNwb25zZSwgeyBjb25maWcsIHJlc3BvbnNlQWxnb3JpdGhtcywgbG9nZ2VyIH0pID0+IHtcbiAgICBjb25zdCBjaGVja3N1bUFsZ29yaXRobXMgPSBnZXRDaGVja3N1bUFsZ29yaXRobUxpc3RGb3JSZXNwb25zZShyZXNwb25zZUFsZ29yaXRobXMpO1xuICAgIGNvbnN0IHsgYm9keTogcmVzcG9uc2VCb2R5LCBoZWFkZXJzOiByZXNwb25zZUhlYWRlcnMgfSA9IHJlc3BvbnNlO1xuICAgIGZvciAoY29uc3QgYWxnb3JpdGhtIG9mIGNoZWNrc3VtQWxnb3JpdGhtcykge1xuICAgICAgICBjb25zdCByZXNwb25zZUhlYWRlciA9IGdldENoZWNrc3VtTG9jYXRpb25OYW1lKGFsZ29yaXRobSk7XG4gICAgICAgIGNvbnN0IGNoZWNrc3VtRnJvbVJlc3BvbnNlID0gcmVzcG9uc2VIZWFkZXJzW3Jlc3BvbnNlSGVhZGVyXTtcbiAgICAgICAgaWYgKGNoZWNrc3VtRnJvbVJlc3BvbnNlKSB7XG4gICAgICAgICAgICBsZXQgY2hlY2tzdW1BbGdvcml0aG1GbjtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY2hlY2tzdW1BbGdvcml0aG1GbiA9IHNlbGVjdENoZWNrc3VtQWxnb3JpdGhtRnVuY3Rpb24oYWxnb3JpdGhtLCBjb25maWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgaWYgKGFsZ29yaXRobSA9PT0gZXhwb3J0cy5DaGVja3N1bUFsZ29yaXRobS5DUkM2NE5WTUUpIHtcbiAgICAgICAgICAgICAgICAgICAgbG9nZ2VyPy53YXJuKGBTa2lwcGluZyAke2V4cG9ydHMuQ2hlY2tzdW1BbGdvcml0aG0uQ1JDNjROVk1FfSBjaGVja3N1bSB2YWxpZGF0aW9uOiAke2Vycm9yLm1lc3NhZ2V9YCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHsgYmFzZTY0RW5jb2RlciB9ID0gY29uZmlnO1xuICAgICAgICAgICAgaWYgKGlzU3RyZWFtaW5nKHJlc3BvbnNlQm9keSkpIHtcbiAgICAgICAgICAgICAgICByZXNwb25zZS5ib2R5ID0gdXRpbFN0cmVhbS5jcmVhdGVDaGVja3N1bVN0cmVhbSh7XG4gICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkQ2hlY2tzdW06IGNoZWNrc3VtRnJvbVJlc3BvbnNlLFxuICAgICAgICAgICAgICAgICAgICBjaGVja3N1bVNvdXJjZUxvY2F0aW9uOiByZXNwb25zZUhlYWRlcixcbiAgICAgICAgICAgICAgICAgICAgY2hlY2tzdW06IG5ldyBjaGVja3N1bUFsZ29yaXRobUZuKCksXG4gICAgICAgICAgICAgICAgICAgIHNvdXJjZTogcmVzcG9uc2VCb2R5LFxuICAgICAgICAgICAgICAgICAgICBiYXNlNjRFbmNvZGVyLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGNoZWNrc3VtID0gYXdhaXQgZ2V0Q2hlY2tzdW0ocmVzcG9uc2VCb2R5LCB7IGNoZWNrc3VtQWxnb3JpdGhtRm4sIGJhc2U2NEVuY29kZXIgfSk7XG4gICAgICAgICAgICBpZiAoY2hlY2tzdW0gPT09IGNoZWNrc3VtRnJvbVJlc3BvbnNlKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENoZWNrc3VtIG1pc21hdGNoOiBleHBlY3RlZCBcIiR7Y2hlY2tzdW19XCIgYnV0IHJlY2VpdmVkIFwiJHtjaGVja3N1bUZyb21SZXNwb25zZX1cImAgK1xuICAgICAgICAgICAgICAgIGAgaW4gcmVzcG9uc2UgaGVhZGVyIFwiJHtyZXNwb25zZUhlYWRlcn1cIi5gKTtcbiAgICAgICAgfVxuICAgIH1cbn07XG5cbmNvbnN0IGZsZXhpYmxlQ2hlY2tzdW1zUmVzcG9uc2VNaWRkbGV3YXJlT3B0aW9ucyA9IHtcbiAgICBuYW1lOiBcImZsZXhpYmxlQ2hlY2tzdW1zUmVzcG9uc2VNaWRkbGV3YXJlXCIsXG4gICAgdG9NaWRkbGV3YXJlOiBcImRlc2VyaWFsaXplck1pZGRsZXdhcmVcIixcbiAgICByZWxhdGlvbjogXCJhZnRlclwiLFxuICAgIHRhZ3M6IFtcIkJPRFlfQ0hFQ0tTVU1cIl0sXG4gICAgb3ZlcnJpZGU6IHRydWUsXG59O1xuY29uc3QgZmxleGlibGVDaGVja3N1bXNSZXNwb25zZU1pZGRsZXdhcmUgPSAoY29uZmlnLCBtaWRkbGV3YXJlQ29uZmlnKSA9PiAobmV4dCwgY29udGV4dCkgPT4gYXN5bmMgKGFyZ3MpID0+IHtcbiAgICBpZiAoIXByb3RvY29sSHR0cC5IdHRwUmVxdWVzdC5pc0luc3RhbmNlKGFyZ3MucmVxdWVzdCkpIHtcbiAgICAgICAgcmV0dXJuIG5leHQoYXJncyk7XG4gICAgfVxuICAgIGNvbnN0IGlucHV0ID0gYXJncy5pbnB1dDtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBuZXh0KGFyZ3MpO1xuICAgIGNvbnN0IHJlc3BvbnNlID0gcmVzdWx0LnJlc3BvbnNlO1xuICAgIGNvbnN0IHsgcmVxdWVzdFZhbGlkYXRpb25Nb2RlTWVtYmVyLCByZXNwb25zZUFsZ29yaXRobXMgfSA9IG1pZGRsZXdhcmVDb25maWc7XG4gICAgaWYgKHJlcXVlc3RWYWxpZGF0aW9uTW9kZU1lbWJlciAmJiBpbnB1dFtyZXF1ZXN0VmFsaWRhdGlvbk1vZGVNZW1iZXJdID09PSBcIkVOQUJMRURcIikge1xuICAgICAgICBjb25zdCB7IGNsaWVudE5hbWUsIGNvbW1hbmROYW1lIH0gPSBjb250ZXh0O1xuICAgICAgICBjb25zdCBpc1MzV2hvbGVPYmplY3RNdWx0aXBhcnRHZXRSZXNwb25zZUNoZWNrc3VtID0gY2xpZW50TmFtZSA9PT0gXCJTM0NsaWVudFwiICYmXG4gICAgICAgICAgICBjb21tYW5kTmFtZSA9PT0gXCJHZXRPYmplY3RDb21tYW5kXCIgJiZcbiAgICAgICAgICAgIGdldENoZWNrc3VtQWxnb3JpdGhtTGlzdEZvclJlc3BvbnNlKHJlc3BvbnNlQWxnb3JpdGhtcykuZXZlcnkoKGFsZ29yaXRobSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlSGVhZGVyID0gZ2V0Q2hlY2tzdW1Mb2NhdGlvbk5hbWUoYWxnb3JpdGhtKTtcbiAgICAgICAgICAgICAgICBjb25zdCBjaGVja3N1bUZyb21SZXNwb25zZSA9IHJlc3BvbnNlLmhlYWRlcnNbcmVzcG9uc2VIZWFkZXJdO1xuICAgICAgICAgICAgICAgIHJldHVybiAhY2hlY2tzdW1Gcm9tUmVzcG9uc2UgfHwgaXNDaGVja3N1bVdpdGhQYXJ0TnVtYmVyKGNoZWNrc3VtRnJvbVJlc3BvbnNlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICBpZiAoaXNTM1dob2xlT2JqZWN0TXVsdGlwYXJ0R2V0UmVzcG9uc2VDaGVja3N1bSkge1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfVxuICAgICAgICBhd2FpdCB2YWxpZGF0ZUNoZWNrc3VtRnJvbVJlc3BvbnNlKHJlc3BvbnNlLCB7XG4gICAgICAgICAgICBjb25maWcsXG4gICAgICAgICAgICByZXNwb25zZUFsZ29yaXRobXMsXG4gICAgICAgICAgICBsb2dnZXI6IGNvbnRleHQubG9nZ2VyLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbmNvbnN0IGdldEZsZXhpYmxlQ2hlY2tzdW1zUGx1Z2luID0gKGNvbmZpZywgbWlkZGxld2FyZUNvbmZpZykgPT4gKHtcbiAgICBhcHBseVRvU3RhY2s6IChjbGllbnRTdGFjaykgPT4ge1xuICAgICAgICBjbGllbnRTdGFjay5hZGQoZmxleGlibGVDaGVja3N1bXNNaWRkbGV3YXJlKGNvbmZpZywgbWlkZGxld2FyZUNvbmZpZyksIGZsZXhpYmxlQ2hlY2tzdW1zTWlkZGxld2FyZU9wdGlvbnMpO1xuICAgICAgICBjbGllbnRTdGFjay5hZGRSZWxhdGl2ZVRvKGZsZXhpYmxlQ2hlY2tzdW1zSW5wdXRNaWRkbGV3YXJlKGNvbmZpZywgbWlkZGxld2FyZUNvbmZpZyksIGZsZXhpYmxlQ2hlY2tzdW1zSW5wdXRNaWRkbGV3YXJlT3B0aW9ucyk7XG4gICAgICAgIGNsaWVudFN0YWNrLmFkZFJlbGF0aXZlVG8oZmxleGlibGVDaGVja3N1bXNSZXNwb25zZU1pZGRsZXdhcmUoY29uZmlnLCBtaWRkbGV3YXJlQ29uZmlnKSwgZmxleGlibGVDaGVja3N1bXNSZXNwb25zZU1pZGRsZXdhcmVPcHRpb25zKTtcbiAgICB9LFxufSk7XG5cbmNvbnN0IHJlc29sdmVGbGV4aWJsZUNoZWNrc3Vtc0NvbmZpZyA9IChpbnB1dCkgPT4ge1xuICAgIGNvbnN0IHsgcmVxdWVzdENoZWNrc3VtQ2FsY3VsYXRpb24sIHJlc3BvbnNlQ2hlY2tzdW1WYWxpZGF0aW9uLCByZXF1ZXN0U3RyZWFtQnVmZmVyU2l6ZSB9ID0gaW5wdXQ7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oaW5wdXQsIHtcbiAgICAgICAgcmVxdWVzdENoZWNrc3VtQ2FsY3VsYXRpb246IHV0aWxNaWRkbGV3YXJlLm5vcm1hbGl6ZVByb3ZpZGVyKHJlcXVlc3RDaGVja3N1bUNhbGN1bGF0aW9uID8/IERFRkFVTFRfUkVRVUVTVF9DSEVDS1NVTV9DQUxDVUxBVElPTiksXG4gICAgICAgIHJlc3BvbnNlQ2hlY2tzdW1WYWxpZGF0aW9uOiB1dGlsTWlkZGxld2FyZS5ub3JtYWxpemVQcm92aWRlcihyZXNwb25zZUNoZWNrc3VtVmFsaWRhdGlvbiA/PyBERUZBVUxUX1JFU1BPTlNFX0NIRUNLU1VNX1ZBTElEQVRJT04pLFxuICAgICAgICByZXF1ZXN0U3RyZWFtQnVmZmVyU2l6ZTogTnVtYmVyKHJlcXVlc3RTdHJlYW1CdWZmZXJTaXplID8/IDApLFxuICAgIH0pO1xufTtcblxuZXhwb3J0cy5DT05GSUdfUkVRVUVTVF9DSEVDS1NVTV9DQUxDVUxBVElPTiA9IENPTkZJR19SRVFVRVNUX0NIRUNLU1VNX0NBTENVTEFUSU9OO1xuZXhwb3J0cy5DT05GSUdfUkVTUE9OU0VfQ0hFQ0tTVU1fVkFMSURBVElPTiA9IENPTkZJR19SRVNQT05TRV9DSEVDS1NVTV9WQUxJREFUSU9OO1xuZXhwb3J0cy5ERUZBVUxUX0NIRUNLU1VNX0FMR09SSVRITSA9IERFRkFVTFRfQ0hFQ0tTVU1fQUxHT1JJVEhNO1xuZXhwb3J0cy5ERUZBVUxUX1JFUVVFU1RfQ0hFQ0tTVU1fQ0FMQ1VMQVRJT04gPSBERUZBVUxUX1JFUVVFU1RfQ0hFQ0tTVU1fQ0FMQ1VMQVRJT047XG5leHBvcnRzLkRFRkFVTFRfUkVTUE9OU0VfQ0hFQ0tTVU1fVkFMSURBVElPTiA9IERFRkFVTFRfUkVTUE9OU0VfQ0hFQ0tTVU1fVkFMSURBVElPTjtcbmV4cG9ydHMuRU5WX1JFUVVFU1RfQ0hFQ0tTVU1fQ0FMQ1VMQVRJT04gPSBFTlZfUkVRVUVTVF9DSEVDS1NVTV9DQUxDVUxBVElPTjtcbmV4cG9ydHMuRU5WX1JFU1BPTlNFX0NIRUNLU1VNX1ZBTElEQVRJT04gPSBFTlZfUkVTUE9OU0VfQ0hFQ0tTVU1fVkFMSURBVElPTjtcbmV4cG9ydHMuTk9ERV9SRVFVRVNUX0NIRUNLU1VNX0NBTENVTEFUSU9OX0NPTkZJR19PUFRJT05TID0gTk9ERV9SRVFVRVNUX0NIRUNLU1VNX0NBTENVTEFUSU9OX0NPTkZJR19PUFRJT05TO1xuZXhwb3J0cy5OT0RFX1JFU1BPTlNFX0NIRUNLU1VNX1ZBTElEQVRJT05fQ09ORklHX09QVElPTlMgPSBOT0RFX1JFU1BPTlNFX0NIRUNLU1VNX1ZBTElEQVRJT05fQ09ORklHX09QVElPTlM7XG5leHBvcnRzLlJlcXVlc3RDaGVja3N1bUNhbGN1bGF0aW9uID0gUmVxdWVzdENoZWNrc3VtQ2FsY3VsYXRpb247XG5leHBvcnRzLlJlc3BvbnNlQ2hlY2tzdW1WYWxpZGF0aW9uID0gUmVzcG9uc2VDaGVja3N1bVZhbGlkYXRpb247XG5leHBvcnRzLmNyYzY0TnZtZUNydENvbnRhaW5lciA9IGNyYzY0TnZtZUNydENvbnRhaW5lcjtcbmV4cG9ydHMuZmxleGlibGVDaGVja3N1bXNNaWRkbGV3YXJlID0gZmxleGlibGVDaGVja3N1bXNNaWRkbGV3YXJlO1xuZXhwb3J0cy5mbGV4aWJsZUNoZWNrc3Vtc01pZGRsZXdhcmVPcHRpb25zID0gZmxleGlibGVDaGVja3N1bXNNaWRkbGV3YXJlT3B0aW9ucztcbmV4cG9ydHMuZ2V0RmxleGlibGVDaGVja3N1bXNQbHVnaW4gPSBnZXRGbGV4aWJsZUNoZWNrc3Vtc1BsdWdpbjtcbmV4cG9ydHMucmVzb2x2ZUZsZXhpYmxlQ2hlY2tzdW1zQ29uZmlnID0gcmVzb2x2ZUZsZXhpYmxlQ2hlY2tzdW1zQ29uZmlnO1xuIiwgIlwidXNlIHN0cmljdFwiO1xudmFyIF9fZGVmUHJvcCA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eTtcbnZhciBfX2dldE93blByb3BEZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtcbnZhciBfX2dldE93blByb3BOYW1lcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzO1xudmFyIF9faGFzT3duUHJvcCA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG52YXIgX19uYW1lID0gKHRhcmdldCwgdmFsdWUpID0+IF9fZGVmUHJvcCh0YXJnZXQsIFwibmFtZVwiLCB7IHZhbHVlLCBjb25maWd1cmFibGU6IHRydWUgfSk7XG52YXIgX19leHBvcnQgPSAodGFyZ2V0LCBhbGwpID0+IHtcbiAgZm9yICh2YXIgbmFtZSBpbiBhbGwpXG4gICAgX19kZWZQcm9wKHRhcmdldCwgbmFtZSwgeyBnZXQ6IGFsbFtuYW1lXSwgZW51bWVyYWJsZTogdHJ1ZSB9KTtcbn07XG52YXIgX19jb3B5UHJvcHMgPSAodG8sIGZyb20sIGV4Y2VwdCwgZGVzYykgPT4ge1xuICBpZiAoZnJvbSAmJiB0eXBlb2YgZnJvbSA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgZnJvbSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgZm9yIChsZXQga2V5IG9mIF9fZ2V0T3duUHJvcE5hbWVzKGZyb20pKVxuICAgICAgaWYgKCFfX2hhc093blByb3AuY2FsbCh0bywga2V5KSAmJiBrZXkgIT09IGV4Y2VwdClcbiAgICAgICAgX19kZWZQcm9wKHRvLCBrZXksIHsgZ2V0OiAoKSA9PiBmcm9tW2tleV0sIGVudW1lcmFibGU6ICEoZGVzYyA9IF9fZ2V0T3duUHJvcERlc2MoZnJvbSwga2V5KSkgfHwgZGVzYy5lbnVtZXJhYmxlIH0pO1xuICB9XG4gIHJldHVybiB0bztcbn07XG52YXIgX190b0NvbW1vbkpTID0gKG1vZCkgPT4gX19jb3B5UHJvcHMoX19kZWZQcm9wKHt9LCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KSwgbW9kKTtcblxuLy8gc3JjL2luZGV4LnRzXG52YXIgaW5kZXhfZXhwb3J0cyA9IHt9O1xuX19leHBvcnQoaW5kZXhfZXhwb3J0cywge1xuICBidWlsZDogKCkgPT4gYnVpbGQsXG4gIHBhcnNlOiAoKSA9PiBwYXJzZSxcbiAgdmFsaWRhdGU6ICgpID0+IHZhbGlkYXRlXG59KTtcbm1vZHVsZS5leHBvcnRzID0gX190b0NvbW1vbkpTKGluZGV4X2V4cG9ydHMpO1xudmFyIHZhbGlkYXRlID0gLyogQF9fUFVSRV9fICovIF9fbmFtZSgoc3RyKSA9PiB0eXBlb2Ygc3RyID09PSBcInN0cmluZ1wiICYmIHN0ci5pbmRleE9mKFwiYXJuOlwiKSA9PT0gMCAmJiBzdHIuc3BsaXQoXCI6XCIpLmxlbmd0aCA+PSA2LCBcInZhbGlkYXRlXCIpO1xudmFyIHBhcnNlID0gLyogQF9fUFVSRV9fICovIF9fbmFtZSgoYXJuKSA9PiB7XG4gIGNvbnN0IHNlZ21lbnRzID0gYXJuLnNwbGl0KFwiOlwiKTtcbiAgaWYgKHNlZ21lbnRzLmxlbmd0aCA8IDYgfHwgc2VnbWVudHNbMF0gIT09IFwiYXJuXCIpIHRocm93IG5ldyBFcnJvcihcIk1hbGZvcm1lZCBBUk5cIik7XG4gIGNvbnN0IFtcbiAgICAsXG4gICAgLy9Ta2lwIFwiYXJuXCIgbGl0ZXJhbFxuICAgIHBhcnRpdGlvbixcbiAgICBzZXJ2aWNlLFxuICAgIHJlZ2lvbixcbiAgICBhY2NvdW50SWQsXG4gICAgLi4ucmVzb3VyY2VcbiAgXSA9IHNlZ21lbnRzO1xuICByZXR1cm4ge1xuICAgIHBhcnRpdGlvbixcbiAgICBzZXJ2aWNlLFxuICAgIHJlZ2lvbixcbiAgICBhY2NvdW50SWQsXG4gICAgcmVzb3VyY2U6IHJlc291cmNlLmpvaW4oXCI6XCIpXG4gIH07XG59LCBcInBhcnNlXCIpO1xudmFyIGJ1aWxkID0gLyogQF9fUFVSRV9fICovIF9fbmFtZSgoYXJuT2JqZWN0KSA9PiB7XG4gIGNvbnN0IHsgcGFydGl0aW9uID0gXCJhd3NcIiwgc2VydmljZSwgcmVnaW9uLCBhY2NvdW50SWQsIHJlc291cmNlIH0gPSBhcm5PYmplY3Q7XG4gIGlmIChbc2VydmljZSwgcmVnaW9uLCBhY2NvdW50SWQsIHJlc291cmNlXS5zb21lKChzZWdtZW50KSA9PiB0eXBlb2Ygc2VnbWVudCAhPT0gXCJzdHJpbmdcIikpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnB1dCBBUk4gb2JqZWN0IGlzIGludmFsaWRcIik7XG4gIH1cbiAgcmV0dXJuIGBhcm46JHtwYXJ0aXRpb259OiR7c2VydmljZX06JHtyZWdpb259OiR7YWNjb3VudElkfToke3Jlc291cmNlfWA7XG59LCBcImJ1aWxkXCIpO1xuLy8gQW5ub3RhdGUgdGhlIENvbW1vbkpTIGV4cG9ydCBuYW1lcyBmb3IgRVNNIGltcG9ydCBpbiBub2RlOlxuXG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgdmFsaWRhdGUsXG4gIHBhcnNlLFxuICBidWlsZFxufSk7XG5cbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBwcm90b2NvbEh0dHAgPSByZXF1aXJlKCdAc21pdGh5L3Byb3RvY29sLWh0dHAnKTtcbnZhciBzbWl0aHlDbGllbnQgPSByZXF1aXJlKCdAc21pdGh5L3NtaXRoeS1jbGllbnQnKTtcbnZhciBzaWduYXR1cmVWNCA9IHJlcXVpcmUoJ0BzbWl0aHkvc2lnbmF0dXJlLXY0Jyk7XG52YXIgdXRpbENvbmZpZ1Byb3ZpZGVyID0gcmVxdWlyZSgnQHNtaXRoeS91dGlsLWNvbmZpZy1wcm92aWRlcicpO1xudmFyIGNvcmUgPSByZXF1aXJlKCdAYXdzLXNkay9jb3JlJyk7XG52YXIgY29yZSQxID0gcmVxdWlyZSgnQHNtaXRoeS9jb3JlJyk7XG5yZXF1aXJlKCdAc21pdGh5L3R5cGVzJyk7XG52YXIgdXRpbE1pZGRsZXdhcmUgPSByZXF1aXJlKCdAc21pdGh5L3V0aWwtbWlkZGxld2FyZScpO1xudmFyIHV0aWxTdHJlYW0gPSByZXF1aXJlKCdAc21pdGh5L3V0aWwtc3RyZWFtJyk7XG52YXIgdXRpbEFyblBhcnNlciA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL3V0aWwtYXJuLXBhcnNlcicpO1xuXG5jb25zdCBDT05URU5UX0xFTkdUSF9IRUFERVIgPSBcImNvbnRlbnQtbGVuZ3RoXCI7XG5jb25zdCBERUNPREVEX0NPTlRFTlRfTEVOR1RIX0hFQURFUiA9IFwieC1hbXotZGVjb2RlZC1jb250ZW50LWxlbmd0aFwiO1xuZnVuY3Rpb24gY2hlY2tDb250ZW50TGVuZ3RoSGVhZGVyKCkge1xuICAgIHJldHVybiAobmV4dCwgY29udGV4dCkgPT4gYXN5bmMgKGFyZ3MpID0+IHtcbiAgICAgICAgY29uc3QgeyByZXF1ZXN0IH0gPSBhcmdzO1xuICAgICAgICBpZiAocHJvdG9jb2xIdHRwLkh0dHBSZXF1ZXN0LmlzSW5zdGFuY2UocmVxdWVzdCkpIHtcbiAgICAgICAgICAgIGlmICghKENPTlRFTlRfTEVOR1RIX0hFQURFUiBpbiByZXF1ZXN0LmhlYWRlcnMpICYmICEoREVDT0RFRF9DT05URU5UX0xFTkdUSF9IRUFERVIgaW4gcmVxdWVzdC5oZWFkZXJzKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgQXJlIHlvdSB1c2luZyBhIFN0cmVhbSBvZiB1bmtub3duIGxlbmd0aCBhcyB0aGUgQm9keSBvZiBhIFB1dE9iamVjdCByZXF1ZXN0PyBDb25zaWRlciB1c2luZyBVcGxvYWQgaW5zdGVhZCBmcm9tIEBhd3Mtc2RrL2xpYi1zdG9yYWdlLmA7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjb250ZXh0Py5sb2dnZXI/Lndhcm4gPT09IFwiZnVuY3Rpb25cIiAmJiAhKGNvbnRleHQubG9nZ2VyIGluc3RhbmNlb2Ygc21pdGh5Q2xpZW50Lk5vT3BMb2dnZXIpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQubG9nZ2VyLndhcm4obWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4obWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXh0KHsgLi4uYXJncyB9KTtcbiAgICB9O1xufVxuY29uc3QgY2hlY2tDb250ZW50TGVuZ3RoSGVhZGVyTWlkZGxld2FyZU9wdGlvbnMgPSB7XG4gICAgc3RlcDogXCJmaW5hbGl6ZVJlcXVlc3RcIixcbiAgICB0YWdzOiBbXCJDSEVDS19DT05URU5UX0xFTkdUSF9IRUFERVJcIl0sXG4gICAgbmFtZTogXCJnZXRDaGVja0NvbnRlbnRMZW5ndGhIZWFkZXJQbHVnaW5cIixcbiAgICBvdmVycmlkZTogdHJ1ZSxcbn07XG5jb25zdCBnZXRDaGVja0NvbnRlbnRMZW5ndGhIZWFkZXJQbHVnaW4gPSAodW51c2VkKSA9PiAoe1xuICAgIGFwcGx5VG9TdGFjazogKGNsaWVudFN0YWNrKSA9PiB7XG4gICAgICAgIGNsaWVudFN0YWNrLmFkZChjaGVja0NvbnRlbnRMZW5ndGhIZWFkZXIoKSwgY2hlY2tDb250ZW50TGVuZ3RoSGVhZGVyTWlkZGxld2FyZU9wdGlvbnMpO1xuICAgIH0sXG59KTtcblxuY29uc3QgcmVnaW9uUmVkaXJlY3RFbmRwb2ludE1pZGRsZXdhcmUgPSAoY29uZmlnKSA9PiB7XG4gICAgcmV0dXJuIChuZXh0LCBjb250ZXh0KSA9PiBhc3luYyAoYXJncykgPT4ge1xuICAgICAgICBjb25zdCBvcmlnaW5hbFJlZ2lvbiA9IGF3YWl0IGNvbmZpZy5yZWdpb24oKTtcbiAgICAgICAgY29uc3QgcmVnaW9uUHJvdmlkZXJSZWYgPSBjb25maWcucmVnaW9uO1xuICAgICAgICBsZXQgdW5sb2NrID0gKCkgPT4geyB9O1xuICAgICAgICBpZiAoY29udGV4dC5fX3MzUmVnaW9uUmVkaXJlY3QpIHtcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjb25maWcsIFwicmVnaW9uXCIsIHtcbiAgICAgICAgICAgICAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbnRleHQuX19zM1JlZ2lvblJlZGlyZWN0O1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHVubG9jayA9ICgpID0+IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjb25maWcsIFwicmVnaW9uXCIsIHtcbiAgICAgICAgICAgICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogcmVnaW9uUHJvdmlkZXJSZWYsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgbmV4dChhcmdzKTtcbiAgICAgICAgICAgIGlmIChjb250ZXh0Ll9fczNSZWdpb25SZWRpcmVjdCkge1xuICAgICAgICAgICAgICAgIHVubG9jaygpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlZ2lvbiA9IGF3YWl0IGNvbmZpZy5yZWdpb24oKTtcbiAgICAgICAgICAgICAgICBpZiAob3JpZ2luYWxSZWdpb24gIT09IHJlZ2lvbikge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJSZWdpb24gd2FzIG5vdCByZXN0b3JlZCBmb2xsb3dpbmcgUzMgcmVnaW9uIHJlZGlyZWN0LlwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICB1bmxvY2soKTtcbiAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgIH1cbiAgICB9O1xufTtcbmNvbnN0IHJlZ2lvblJlZGlyZWN0RW5kcG9pbnRNaWRkbGV3YXJlT3B0aW9ucyA9IHtcbiAgICB0YWdzOiBbXCJSRUdJT05fUkVESVJFQ1RcIiwgXCJTM1wiXSxcbiAgICBuYW1lOiBcInJlZ2lvblJlZGlyZWN0RW5kcG9pbnRNaWRkbGV3YXJlXCIsXG4gICAgb3ZlcnJpZGU6IHRydWUsXG4gICAgcmVsYXRpb246IFwiYmVmb3JlXCIsXG4gICAgdG9NaWRkbGV3YXJlOiBcImVuZHBvaW50VjJNaWRkbGV3YXJlXCIsXG59O1xuXG5mdW5jdGlvbiByZWdpb25SZWRpcmVjdE1pZGRsZXdhcmUoY2xpZW50Q29uZmlnKSB7XG4gICAgcmV0dXJuIChuZXh0LCBjb250ZXh0KSA9PiBhc3luYyAoYXJncykgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IG5leHQoYXJncyk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgaWYgKGNsaWVudENvbmZpZy5mb2xsb3dSZWdpb25SZWRpcmVjdHMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzdGF0dXNDb2RlID0gZXJyPy4kbWV0YWRhdGE/Lmh0dHBTdGF0dXNDb2RlO1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzSGVhZEJ1Y2tldCA9IGNvbnRleHQuY29tbWFuZE5hbWUgPT09IFwiSGVhZEJ1Y2tldENvbW1hbmRcIjtcbiAgICAgICAgICAgICAgICBjb25zdCBidWNrZXRSZWdpb25IZWFkZXIgPSBlcnI/LiRyZXNwb25zZT8uaGVhZGVycz8uW1wieC1hbXotYnVja2V0LXJlZ2lvblwiXTtcbiAgICAgICAgICAgICAgICBpZiAoYnVja2V0UmVnaW9uSGVhZGVyKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzdGF0dXNDb2RlID09PSAzMDEgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIChzdGF0dXNDb2RlID09PSA0MDAgJiYgKGVycj8ubmFtZSA9PT0gXCJJbGxlZ2FsTG9jYXRpb25Db25zdHJhaW50RXhjZXB0aW9uXCIgfHwgaXNIZWFkQnVja2V0KSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYWN0dWFsUmVnaW9uID0gYnVja2V0UmVnaW9uSGVhZGVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQubG9nZ2VyPy5kZWJ1ZyhgUmVkaXJlY3RpbmcgZnJvbSAke2F3YWl0IGNsaWVudENvbmZpZy5yZWdpb24oKX0gdG8gJHthY3R1YWxSZWdpb259YCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC5fX3MzUmVnaW9uUmVkaXJlY3QgPSBhY3R1YWxSZWdpb247XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlJlZ2lvbiByZWRpcmVjdCBmYWlsZWQ6IFwiICsgZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV4dChhcmdzKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgfVxuICAgIH07XG59XG5jb25zdCByZWdpb25SZWRpcmVjdE1pZGRsZXdhcmVPcHRpb25zID0ge1xuICAgIHN0ZXA6IFwiaW5pdGlhbGl6ZVwiLFxuICAgIHRhZ3M6IFtcIlJFR0lPTl9SRURJUkVDVFwiLCBcIlMzXCJdLFxuICAgIG5hbWU6IFwicmVnaW9uUmVkaXJlY3RNaWRkbGV3YXJlXCIsXG4gICAgb3ZlcnJpZGU6IHRydWUsXG59O1xuY29uc3QgZ2V0UmVnaW9uUmVkaXJlY3RNaWRkbGV3YXJlUGx1Z2luID0gKGNsaWVudENvbmZpZykgPT4gKHtcbiAgICBhcHBseVRvU3RhY2s6IChjbGllbnRTdGFjaykgPT4ge1xuICAgICAgICBjbGllbnRTdGFjay5hZGQocmVnaW9uUmVkaXJlY3RNaWRkbGV3YXJlKGNsaWVudENvbmZpZyksIHJlZ2lvblJlZGlyZWN0TWlkZGxld2FyZU9wdGlvbnMpO1xuICAgICAgICBjbGllbnRTdGFjay5hZGRSZWxhdGl2ZVRvKHJlZ2lvblJlZGlyZWN0RW5kcG9pbnRNaWRkbGV3YXJlKGNsaWVudENvbmZpZyksIHJlZ2lvblJlZGlyZWN0RW5kcG9pbnRNaWRkbGV3YXJlT3B0aW9ucyk7XG4gICAgfSxcbn0pO1xuXG5jb25zdCBzM0V4cGlyZXNNaWRkbGV3YXJlID0gKGNvbmZpZykgPT4ge1xuICAgIHJldHVybiAobmV4dCwgY29udGV4dCkgPT4gYXN5bmMgKGFyZ3MpID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgbmV4dChhcmdzKTtcbiAgICAgICAgY29uc3QgeyByZXNwb25zZSB9ID0gcmVzdWx0O1xuICAgICAgICBpZiAocHJvdG9jb2xIdHRwLkh0dHBSZXNwb25zZS5pc0luc3RhbmNlKHJlc3BvbnNlKSkge1xuICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhlYWRlcnMuZXhwaXJlcykge1xuICAgICAgICAgICAgICAgIHJlc3BvbnNlLmhlYWRlcnMuZXhwaXJlc3N0cmluZyA9IHJlc3BvbnNlLmhlYWRlcnMuZXhwaXJlcztcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBzbWl0aHlDbGllbnQucGFyc2VSZmM3MjMxRGF0ZVRpbWUocmVzcG9uc2UuaGVhZGVycy5leHBpcmVzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dC5sb2dnZXI/Lndhcm4oYEFXUyBTREsgV2FybmluZyBmb3IgJHtjb250ZXh0LmNsaWVudE5hbWV9Ojoke2NvbnRleHQuY29tbWFuZE5hbWV9IHJlc3BvbnNlIHBhcnNpbmcgKCR7cmVzcG9uc2UuaGVhZGVycy5leHBpcmVzfSk6ICR7ZX1gKTtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHJlc3BvbnNlLmhlYWRlcnMuZXhwaXJlcztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9O1xufTtcbmNvbnN0IHMzRXhwaXJlc01pZGRsZXdhcmVPcHRpb25zID0ge1xuICAgIHRhZ3M6IFtcIlMzXCJdLFxuICAgIG5hbWU6IFwiczNFeHBpcmVzTWlkZGxld2FyZVwiLFxuICAgIG92ZXJyaWRlOiB0cnVlLFxuICAgIHJlbGF0aW9uOiBcImFmdGVyXCIsXG4gICAgdG9NaWRkbGV3YXJlOiBcImRlc2VyaWFsaXplck1pZGRsZXdhcmVcIixcbn07XG5jb25zdCBnZXRTM0V4cGlyZXNNaWRkbGV3YXJlUGx1Z2luID0gKGNsaWVudENvbmZpZykgPT4gKHtcbiAgICBhcHBseVRvU3RhY2s6IChjbGllbnRTdGFjaykgPT4ge1xuICAgICAgICBjbGllbnRTdGFjay5hZGRSZWxhdGl2ZVRvKHMzRXhwaXJlc01pZGRsZXdhcmUoKSwgczNFeHBpcmVzTWlkZGxld2FyZU9wdGlvbnMpO1xuICAgIH0sXG59KTtcblxuY2xhc3MgUzNFeHByZXNzSWRlbnRpdHlDYWNoZSB7XG4gICAgZGF0YTtcbiAgICBsYXN0UHVyZ2VUaW1lID0gRGF0ZS5ub3coKTtcbiAgICBzdGF0aWMgRVhQSVJFRF9DUkVERU5USUFMX1BVUkdFX0lOVEVSVkFMX01TID0gMzBfMDAwO1xuICAgIGNvbnN0cnVjdG9yKGRhdGEgPSB7fSkge1xuICAgICAgICB0aGlzLmRhdGEgPSBkYXRhO1xuICAgIH1cbiAgICBnZXQoa2V5KSB7XG4gICAgICAgIGNvbnN0IGVudHJ5ID0gdGhpcy5kYXRhW2tleV07XG4gICAgICAgIGlmICghZW50cnkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZW50cnk7XG4gICAgfVxuICAgIHNldChrZXksIGVudHJ5KSB7XG4gICAgICAgIHRoaXMuZGF0YVtrZXldID0gZW50cnk7XG4gICAgICAgIHJldHVybiBlbnRyeTtcbiAgICB9XG4gICAgZGVsZXRlKGtleSkge1xuICAgICAgICBkZWxldGUgdGhpcy5kYXRhW2tleV07XG4gICAgfVxuICAgIGFzeW5jIHB1cmdlRXhwaXJlZCgpIHtcbiAgICAgICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgICAgICAgaWYgKHRoaXMubGFzdFB1cmdlVGltZSArIFMzRXhwcmVzc0lkZW50aXR5Q2FjaGUuRVhQSVJFRF9DUkVERU5USUFMX1BVUkdFX0lOVEVSVkFMX01TID4gbm93KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gdGhpcy5kYXRhKSB7XG4gICAgICAgICAgICBjb25zdCBlbnRyeSA9IHRoaXMuZGF0YVtrZXldO1xuICAgICAgICAgICAgaWYgKCFlbnRyeS5pc1JlZnJlc2hpbmcpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjcmVkZW50aWFsID0gYXdhaXQgZW50cnkuaWRlbnRpdHk7XG4gICAgICAgICAgICAgICAgaWYgKGNyZWRlbnRpYWwuZXhwaXJhdGlvbikge1xuICAgICAgICAgICAgICAgICAgICBpZiAoY3JlZGVudGlhbC5leHBpcmF0aW9uLmdldFRpbWUoKSA8IG5vdykge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMuZGF0YVtrZXldO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5jbGFzcyBTM0V4cHJlc3NJZGVudGl0eUNhY2hlRW50cnkge1xuICAgIF9pZGVudGl0eTtcbiAgICBpc1JlZnJlc2hpbmc7XG4gICAgYWNjZXNzZWQ7XG4gICAgY29uc3RydWN0b3IoX2lkZW50aXR5LCBpc1JlZnJlc2hpbmcgPSBmYWxzZSwgYWNjZXNzZWQgPSBEYXRlLm5vdygpKSB7XG4gICAgICAgIHRoaXMuX2lkZW50aXR5ID0gX2lkZW50aXR5O1xuICAgICAgICB0aGlzLmlzUmVmcmVzaGluZyA9IGlzUmVmcmVzaGluZztcbiAgICAgICAgdGhpcy5hY2Nlc3NlZCA9IGFjY2Vzc2VkO1xuICAgIH1cbiAgICBnZXQgaWRlbnRpdHkoKSB7XG4gICAgICAgIHRoaXMuYWNjZXNzZWQgPSBEYXRlLm5vdygpO1xuICAgICAgICByZXR1cm4gdGhpcy5faWRlbnRpdHk7XG4gICAgfVxufVxuXG5jbGFzcyBTM0V4cHJlc3NJZGVudGl0eVByb3ZpZGVySW1wbCB7XG4gICAgY3JlYXRlU2Vzc2lvbkZuO1xuICAgIGNhY2hlO1xuICAgIHN0YXRpYyBSRUZSRVNIX1dJTkRPV19NUyA9IDYwXzAwMDtcbiAgICBjb25zdHJ1Y3RvcihjcmVhdGVTZXNzaW9uRm4sIGNhY2hlID0gbmV3IFMzRXhwcmVzc0lkZW50aXR5Q2FjaGUoKSkge1xuICAgICAgICB0aGlzLmNyZWF0ZVNlc3Npb25GbiA9IGNyZWF0ZVNlc3Npb25GbjtcbiAgICAgICAgdGhpcy5jYWNoZSA9IGNhY2hlO1xuICAgIH1cbiAgICBhc3luYyBnZXRTM0V4cHJlc3NJZGVudGl0eShhd3NJZGVudGl0eSwgaWRlbnRpdHlQcm9wZXJ0aWVzKSB7XG4gICAgICAgIGNvbnN0IGtleSA9IGlkZW50aXR5UHJvcGVydGllcy5CdWNrZXQ7XG4gICAgICAgIGNvbnN0IHsgY2FjaGUgfSA9IHRoaXM7XG4gICAgICAgIGNvbnN0IGVudHJ5ID0gY2FjaGUuZ2V0KGtleSk7XG4gICAgICAgIGlmIChlbnRyeSkge1xuICAgICAgICAgICAgcmV0dXJuIGVudHJ5LmlkZW50aXR5LnRoZW4oKGlkZW50aXR5KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNFeHBpcmVkID0gKGlkZW50aXR5LmV4cGlyYXRpb24/LmdldFRpbWUoKSA/PyAwKSA8IERhdGUubm93KCk7XG4gICAgICAgICAgICAgICAgaWYgKGlzRXhwaXJlZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2FjaGUuc2V0KGtleSwgbmV3IFMzRXhwcmVzc0lkZW50aXR5Q2FjaGVFbnRyeSh0aGlzLmdldElkZW50aXR5KGtleSkpKS5pZGVudGl0eTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgaXNFeHBpcmluZ1Nvb24gPSAoaWRlbnRpdHkuZXhwaXJhdGlvbj8uZ2V0VGltZSgpID8/IDApIDwgRGF0ZS5ub3coKSArIFMzRXhwcmVzc0lkZW50aXR5UHJvdmlkZXJJbXBsLlJFRlJFU0hfV0lORE9XX01TO1xuICAgICAgICAgICAgICAgIGlmIChpc0V4cGlyaW5nU29vbiAmJiAhZW50cnkuaXNSZWZyZXNoaW5nKSB7XG4gICAgICAgICAgICAgICAgICAgIGVudHJ5LmlzUmVmcmVzaGluZyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0SWRlbnRpdHkoa2V5KS50aGVuKChpZCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGUuc2V0KGtleSwgbmV3IFMzRXhwcmVzc0lkZW50aXR5Q2FjaGVFbnRyeShQcm9taXNlLnJlc29sdmUoaWQpKSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gaWRlbnRpdHk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY2FjaGUuc2V0KGtleSwgbmV3IFMzRXhwcmVzc0lkZW50aXR5Q2FjaGVFbnRyeSh0aGlzLmdldElkZW50aXR5KGtleSkpKS5pZGVudGl0eTtcbiAgICB9XG4gICAgYXN5bmMgZ2V0SWRlbnRpdHkoa2V5KSB7XG4gICAgICAgIGF3YWl0IHRoaXMuY2FjaGUucHVyZ2VFeHBpcmVkKCkuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oXCJFcnJvciB3aGlsZSBjbGVhcmluZyBleHBpcmVkIGVudHJpZXMgaW4gUzNFeHByZXNzSWRlbnRpdHlDYWNoZTogXFxuXCIgKyBlcnJvcik7XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBzZXNzaW9uID0gYXdhaXQgdGhpcy5jcmVhdGVTZXNzaW9uRm4oa2V5KTtcbiAgICAgICAgaWYgKCFzZXNzaW9uLkNyZWRlbnRpYWxzPy5BY2Nlc3NLZXlJZCB8fCAhc2Vzc2lvbi5DcmVkZW50aWFscz8uU2VjcmV0QWNjZXNzS2V5KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJzMyNjcmVhdGVTZXNzaW9uIHJlc3BvbnNlIGNyZWRlbnRpYWwgbWlzc2luZyBBY2Nlc3NLZXlJZCBvciBTZWNyZXRBY2Nlc3NLZXkuXCIpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGlkZW50aXR5ID0ge1xuICAgICAgICAgICAgYWNjZXNzS2V5SWQ6IHNlc3Npb24uQ3JlZGVudGlhbHMuQWNjZXNzS2V5SWQsXG4gICAgICAgICAgICBzZWNyZXRBY2Nlc3NLZXk6IHNlc3Npb24uQ3JlZGVudGlhbHMuU2VjcmV0QWNjZXNzS2V5LFxuICAgICAgICAgICAgc2Vzc2lvblRva2VuOiBzZXNzaW9uLkNyZWRlbnRpYWxzLlNlc3Npb25Ub2tlbixcbiAgICAgICAgICAgIGV4cGlyYXRpb246IHNlc3Npb24uQ3JlZGVudGlhbHMuRXhwaXJhdGlvbiA/IG5ldyBEYXRlKHNlc3Npb24uQ3JlZGVudGlhbHMuRXhwaXJhdGlvbikgOiB1bmRlZmluZWQsXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBpZGVudGl0eTtcbiAgICB9XG59XG5cbmNvbnN0IFMzX0VYUFJFU1NfQlVDS0VUX1RZUEUgPSBcIkRpcmVjdG9yeVwiO1xuY29uc3QgUzNfRVhQUkVTU19CQUNLRU5EID0gXCJTM0V4cHJlc3NcIjtcbmNvbnN0IFMzX0VYUFJFU1NfQVVUSF9TQ0hFTUUgPSBcInNpZ3Y0LXMzZXhwcmVzc1wiO1xuY29uc3QgU0VTU0lPTl9UT0tFTl9RVUVSWV9QQVJBTSA9IFwiWC1BbXotUzNzZXNzaW9uLVRva2VuXCI7XG5jb25zdCBTRVNTSU9OX1RPS0VOX0hFQURFUiA9IFNFU1NJT05fVE9LRU5fUVVFUllfUEFSQU0udG9Mb3dlckNhc2UoKTtcbmNvbnN0IE5PREVfRElTQUJMRV9TM19FWFBSRVNTX1NFU1NJT05fQVVUSF9FTlZfTkFNRSA9IFwiQVdTX1MzX0RJU0FCTEVfRVhQUkVTU19TRVNTSU9OX0FVVEhcIjtcbmNvbnN0IE5PREVfRElTQUJMRV9TM19FWFBSRVNTX1NFU1NJT05fQVVUSF9JTklfTkFNRSA9IFwiczNfZGlzYWJsZV9leHByZXNzX3Nlc3Npb25fYXV0aFwiO1xuY29uc3QgTk9ERV9ESVNBQkxFX1MzX0VYUFJFU1NfU0VTU0lPTl9BVVRIX09QVElPTlMgPSB7XG4gICAgZW52aXJvbm1lbnRWYXJpYWJsZVNlbGVjdG9yOiAoZW52KSA9PiB1dGlsQ29uZmlnUHJvdmlkZXIuYm9vbGVhblNlbGVjdG9yKGVudiwgTk9ERV9ESVNBQkxFX1MzX0VYUFJFU1NfU0VTU0lPTl9BVVRIX0VOVl9OQU1FLCB1dGlsQ29uZmlnUHJvdmlkZXIuU2VsZWN0b3JUeXBlLkVOViksXG4gICAgY29uZmlnRmlsZVNlbGVjdG9yOiAocHJvZmlsZSkgPT4gdXRpbENvbmZpZ1Byb3ZpZGVyLmJvb2xlYW5TZWxlY3Rvcihwcm9maWxlLCBOT0RFX0RJU0FCTEVfUzNfRVhQUkVTU19TRVNTSU9OX0FVVEhfSU5JX05BTUUsIHV0aWxDb25maWdQcm92aWRlci5TZWxlY3RvclR5cGUuQ09ORklHKSxcbiAgICBkZWZhdWx0OiBmYWxzZSxcbn07XG5cbmNsYXNzIFNpZ25hdHVyZVY0UzNFeHByZXNzIGV4dGVuZHMgc2lnbmF0dXJlVjQuU2lnbmF0dXJlVjQge1xuICAgIGFzeW5jIHNpZ25XaXRoQ3JlZGVudGlhbHMocmVxdWVzdFRvU2lnbiwgY3JlZGVudGlhbHMsIG9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgY3JlZGVudGlhbHNXaXRob3V0U2Vzc2lvblRva2VuID0gZ2V0Q3JlZGVudGlhbHNXaXRob3V0U2Vzc2lvblRva2VuKGNyZWRlbnRpYWxzKTtcbiAgICAgICAgcmVxdWVzdFRvU2lnbi5oZWFkZXJzW1NFU1NJT05fVE9LRU5fSEVBREVSXSA9IGNyZWRlbnRpYWxzLnNlc3Npb25Ub2tlbjtcbiAgICAgICAgY29uc3QgcHJpdmF0ZUFjY2VzcyA9IHRoaXM7XG4gICAgICAgIHNldFNpbmdsZU92ZXJyaWRlKHByaXZhdGVBY2Nlc3MsIGNyZWRlbnRpYWxzV2l0aG91dFNlc3Npb25Ub2tlbik7XG4gICAgICAgIHJldHVybiBwcml2YXRlQWNjZXNzLnNpZ25SZXF1ZXN0KHJlcXVlc3RUb1NpZ24sIG9wdGlvbnMgPz8ge30pO1xuICAgIH1cbiAgICBhc3luYyBwcmVzaWduV2l0aENyZWRlbnRpYWxzKHJlcXVlc3RUb1NpZ24sIGNyZWRlbnRpYWxzLCBvcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IGNyZWRlbnRpYWxzV2l0aG91dFNlc3Npb25Ub2tlbiA9IGdldENyZWRlbnRpYWxzV2l0aG91dFNlc3Npb25Ub2tlbihjcmVkZW50aWFscyk7XG4gICAgICAgIGRlbGV0ZSByZXF1ZXN0VG9TaWduLmhlYWRlcnNbU0VTU0lPTl9UT0tFTl9IRUFERVJdO1xuICAgICAgICByZXF1ZXN0VG9TaWduLmhlYWRlcnNbU0VTU0lPTl9UT0tFTl9RVUVSWV9QQVJBTV0gPSBjcmVkZW50aWFscy5zZXNzaW9uVG9rZW47XG4gICAgICAgIHJlcXVlc3RUb1NpZ24ucXVlcnkgPSByZXF1ZXN0VG9TaWduLnF1ZXJ5ID8/IHt9O1xuICAgICAgICByZXF1ZXN0VG9TaWduLnF1ZXJ5W1NFU1NJT05fVE9LRU5fUVVFUllfUEFSQU1dID0gY3JlZGVudGlhbHMuc2Vzc2lvblRva2VuO1xuICAgICAgICBjb25zdCBwcml2YXRlQWNjZXNzID0gdGhpcztcbiAgICAgICAgc2V0U2luZ2xlT3ZlcnJpZGUocHJpdmF0ZUFjY2VzcywgY3JlZGVudGlhbHNXaXRob3V0U2Vzc2lvblRva2VuKTtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJlc2lnbihyZXF1ZXN0VG9TaWduLCBvcHRpb25zKTtcbiAgICB9XG59XG5mdW5jdGlvbiBnZXRDcmVkZW50aWFsc1dpdGhvdXRTZXNzaW9uVG9rZW4oY3JlZGVudGlhbHMpIHtcbiAgICBjb25zdCBjcmVkZW50aWFsc1dpdGhvdXRTZXNzaW9uVG9rZW4gPSB7XG4gICAgICAgIGFjY2Vzc0tleUlkOiBjcmVkZW50aWFscy5hY2Nlc3NLZXlJZCxcbiAgICAgICAgc2VjcmV0QWNjZXNzS2V5OiBjcmVkZW50aWFscy5zZWNyZXRBY2Nlc3NLZXksXG4gICAgICAgIGV4cGlyYXRpb246IGNyZWRlbnRpYWxzLmV4cGlyYXRpb24sXG4gICAgfTtcbiAgICByZXR1cm4gY3JlZGVudGlhbHNXaXRob3V0U2Vzc2lvblRva2VuO1xufVxuZnVuY3Rpb24gc2V0U2luZ2xlT3ZlcnJpZGUocHJpdmF0ZUFjY2VzcywgY3JlZGVudGlhbHNXaXRob3V0U2Vzc2lvblRva2VuKSB7XG4gICAgY29uc3QgaWQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiU2lnbmF0dXJlVjRTM0V4cHJlc3MgY3JlZGVudGlhbCBvdmVycmlkZSB3YXMgY3JlYXRlZCBidXQgbm90IGNhbGxlZC5cIik7XG4gICAgfSwgMTApO1xuICAgIGNvbnN0IGN1cnJlbnRDcmVkZW50aWFsUHJvdmlkZXIgPSBwcml2YXRlQWNjZXNzLmNyZWRlbnRpYWxQcm92aWRlcjtcbiAgICBjb25zdCBvdmVycmlkZUNyZWRlbnRpYWxzUHJvdmlkZXJPbmNlID0gKCkgPT4ge1xuICAgICAgICBjbGVhclRpbWVvdXQoaWQpO1xuICAgICAgICBwcml2YXRlQWNjZXNzLmNyZWRlbnRpYWxQcm92aWRlciA9IGN1cnJlbnRDcmVkZW50aWFsUHJvdmlkZXI7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoY3JlZGVudGlhbHNXaXRob3V0U2Vzc2lvblRva2VuKTtcbiAgICB9O1xuICAgIHByaXZhdGVBY2Nlc3MuY3JlZGVudGlhbFByb3ZpZGVyID0gb3ZlcnJpZGVDcmVkZW50aWFsc1Byb3ZpZGVyT25jZTtcbn1cblxuY29uc3QgczNFeHByZXNzTWlkZGxld2FyZSA9IChvcHRpb25zKSA9PiB7XG4gICAgcmV0dXJuIChuZXh0LCBjb250ZXh0KSA9PiBhc3luYyAoYXJncykgPT4ge1xuICAgICAgICBpZiAoY29udGV4dC5lbmRwb2ludFYyKSB7XG4gICAgICAgICAgICBjb25zdCBlbmRwb2ludCA9IGNvbnRleHQuZW5kcG9pbnRWMjtcbiAgICAgICAgICAgIGNvbnN0IGlzUzNFeHByZXNzQXV0aCA9IGVuZHBvaW50LnByb3BlcnRpZXM/LmF1dGhTY2hlbWVzPy5bMF0/Lm5hbWUgPT09IFMzX0VYUFJFU1NfQVVUSF9TQ0hFTUU7XG4gICAgICAgICAgICBjb25zdCBpc1MzRXhwcmVzc0J1Y2tldCA9IGVuZHBvaW50LnByb3BlcnRpZXM/LmJhY2tlbmQgPT09IFMzX0VYUFJFU1NfQkFDS0VORCB8fFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LnByb3BlcnRpZXM/LmJ1Y2tldFR5cGUgPT09IFMzX0VYUFJFU1NfQlVDS0VUX1RZUEU7XG4gICAgICAgICAgICBpZiAoaXNTM0V4cHJlc3NCdWNrZXQpIHtcbiAgICAgICAgICAgICAgICBjb3JlLnNldEZlYXR1cmUoY29udGV4dCwgXCJTM19FWFBSRVNTX0JVQ0tFVFwiLCBcIkpcIik7XG4gICAgICAgICAgICAgICAgY29udGV4dC5pc1MzRXhwcmVzc0J1Y2tldCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNTM0V4cHJlc3NBdXRoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdEJ1Y2tldCA9IGFyZ3MuaW5wdXQuQnVja2V0O1xuICAgICAgICAgICAgICAgIGlmIChyZXF1ZXN0QnVja2V0KSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHMzRXhwcmVzc0lkZW50aXR5ID0gYXdhaXQgb3B0aW9ucy5zM0V4cHJlc3NJZGVudGl0eVByb3ZpZGVyLmdldFMzRXhwcmVzc0lkZW50aXR5KGF3YWl0IG9wdGlvbnMuY3JlZGVudGlhbHMoKSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgQnVja2V0OiByZXF1ZXN0QnVja2V0LFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dC5zM0V4cHJlc3NJZGVudGl0eSA9IHMzRXhwcmVzc0lkZW50aXR5O1xuICAgICAgICAgICAgICAgICAgICBpZiAocHJvdG9jb2xIdHRwLkh0dHBSZXF1ZXN0LmlzSW5zdGFuY2UoYXJncy5yZXF1ZXN0KSAmJiBzM0V4cHJlc3NJZGVudGl0eS5zZXNzaW9uVG9rZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MucmVxdWVzdC5oZWFkZXJzW1NFU1NJT05fVE9LRU5fSEVBREVSXSA9IHMzRXhwcmVzc0lkZW50aXR5LnNlc3Npb25Ub2tlbjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV4dChhcmdzKTtcbiAgICB9O1xufTtcbmNvbnN0IHMzRXhwcmVzc01pZGRsZXdhcmVPcHRpb25zID0ge1xuICAgIG5hbWU6IFwiczNFeHByZXNzTWlkZGxld2FyZVwiLFxuICAgIHN0ZXA6IFwiYnVpbGRcIixcbiAgICB0YWdzOiBbXCJTM1wiLCBcIlMzX0VYUFJFU1NcIl0sXG4gICAgb3ZlcnJpZGU6IHRydWUsXG59O1xuY29uc3QgZ2V0UzNFeHByZXNzUGx1Z2luID0gKG9wdGlvbnMpID0+ICh7XG4gICAgYXBwbHlUb1N0YWNrOiAoY2xpZW50U3RhY2spID0+IHtcbiAgICAgICAgY2xpZW50U3RhY2suYWRkKHMzRXhwcmVzc01pZGRsZXdhcmUob3B0aW9ucyksIHMzRXhwcmVzc01pZGRsZXdhcmVPcHRpb25zKTtcbiAgICB9LFxufSk7XG5cbmNvbnN0IHNpZ25TM0V4cHJlc3MgPSBhc3luYyAoczNFeHByZXNzSWRlbnRpdHksIHNpZ25pbmdPcHRpb25zLCByZXF1ZXN0LCBzaWdWNE11bHRpUmVnaW9uU2lnbmVyKSA9PiB7XG4gICAgY29uc3Qgc2lnbmVkUmVxdWVzdCA9IGF3YWl0IHNpZ1Y0TXVsdGlSZWdpb25TaWduZXIuc2lnbldpdGhDcmVkZW50aWFscyhyZXF1ZXN0LCBzM0V4cHJlc3NJZGVudGl0eSwge30pO1xuICAgIGlmIChzaWduZWRSZXF1ZXN0LmhlYWRlcnNbXCJYLUFtei1TZWN1cml0eS1Ub2tlblwiXSB8fCBzaWduZWRSZXF1ZXN0LmhlYWRlcnNbXCJ4LWFtei1zZWN1cml0eS10b2tlblwiXSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJYLUFtei1TZWN1cml0eS1Ub2tlbiBtdXN0IG5vdCBiZSBzZXQgZm9yIHMzLWV4cHJlc3MgcmVxdWVzdHMuXCIpO1xuICAgIH1cbiAgICByZXR1cm4gc2lnbmVkUmVxdWVzdDtcbn07XG5cbmNvbnN0IGRlZmF1bHRFcnJvckhhbmRsZXIgPSAoc2lnbmluZ1Byb3BlcnRpZXMpID0+IChlcnJvcikgPT4ge1xuICAgIHRocm93IGVycm9yO1xufTtcbmNvbnN0IGRlZmF1bHRTdWNjZXNzSGFuZGxlciA9IChodHRwUmVzcG9uc2UsIHNpZ25pbmdQcm9wZXJ0aWVzKSA9PiB7IH07XG5jb25zdCBzM0V4cHJlc3NIdHRwU2lnbmluZ01pZGRsZXdhcmVPcHRpb25zID0gY29yZSQxLmh0dHBTaWduaW5nTWlkZGxld2FyZU9wdGlvbnM7XG5jb25zdCBzM0V4cHJlc3NIdHRwU2lnbmluZ01pZGRsZXdhcmUgPSAoY29uZmlnKSA9PiAobmV4dCwgY29udGV4dCkgPT4gYXN5bmMgKGFyZ3MpID0+IHtcbiAgICBpZiAoIXByb3RvY29sSHR0cC5IdHRwUmVxdWVzdC5pc0luc3RhbmNlKGFyZ3MucmVxdWVzdCkpIHtcbiAgICAgICAgcmV0dXJuIG5leHQoYXJncyk7XG4gICAgfVxuICAgIGNvbnN0IHNtaXRoeUNvbnRleHQgPSB1dGlsTWlkZGxld2FyZS5nZXRTbWl0aHlDb250ZXh0KGNvbnRleHQpO1xuICAgIGNvbnN0IHNjaGVtZSA9IHNtaXRoeUNvbnRleHQuc2VsZWN0ZWRIdHRwQXV0aFNjaGVtZTtcbiAgICBpZiAoIXNjaGVtZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIEh0dHBBdXRoU2NoZW1lIHdhcyBzZWxlY3RlZDogdW5hYmxlIHRvIHNpZ24gcmVxdWVzdGApO1xuICAgIH1cbiAgICBjb25zdCB7IGh0dHBBdXRoT3B0aW9uOiB7IHNpZ25pbmdQcm9wZXJ0aWVzID0ge30gfSwgaWRlbnRpdHksIHNpZ25lciwgfSA9IHNjaGVtZTtcbiAgICBsZXQgcmVxdWVzdDtcbiAgICBpZiAoY29udGV4dC5zM0V4cHJlc3NJZGVudGl0eSkge1xuICAgICAgICByZXF1ZXN0ID0gYXdhaXQgc2lnblMzRXhwcmVzcyhjb250ZXh0LnMzRXhwcmVzc0lkZW50aXR5LCBzaWduaW5nUHJvcGVydGllcywgYXJncy5yZXF1ZXN0LCBhd2FpdCBjb25maWcuc2lnbmVyKCkpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgcmVxdWVzdCA9IGF3YWl0IHNpZ25lci5zaWduKGFyZ3MucmVxdWVzdCwgaWRlbnRpdHksIHNpZ25pbmdQcm9wZXJ0aWVzKTtcbiAgICB9XG4gICAgY29uc3Qgb3V0cHV0ID0gYXdhaXQgbmV4dCh7XG4gICAgICAgIC4uLmFyZ3MsXG4gICAgICAgIHJlcXVlc3QsXG4gICAgfSkuY2F0Y2goKHNpZ25lci5lcnJvckhhbmRsZXIgfHwgZGVmYXVsdEVycm9ySGFuZGxlcikoc2lnbmluZ1Byb3BlcnRpZXMpKTtcbiAgICAoc2lnbmVyLnN1Y2Nlc3NIYW5kbGVyIHx8IGRlZmF1bHRTdWNjZXNzSGFuZGxlcikob3V0cHV0LnJlc3BvbnNlLCBzaWduaW5nUHJvcGVydGllcyk7XG4gICAgcmV0dXJuIG91dHB1dDtcbn07XG5jb25zdCBnZXRTM0V4cHJlc3NIdHRwU2lnbmluZ1BsdWdpbiA9IChjb25maWcpID0+ICh7XG4gICAgYXBwbHlUb1N0YWNrOiAoY2xpZW50U3RhY2spID0+IHtcbiAgICAgICAgY2xpZW50U3RhY2suYWRkUmVsYXRpdmVUbyhzM0V4cHJlc3NIdHRwU2lnbmluZ01pZGRsZXdhcmUoY29uZmlnKSwgY29yZSQxLmh0dHBTaWduaW5nTWlkZGxld2FyZU9wdGlvbnMpO1xuICAgIH0sXG59KTtcblxuY29uc3QgcmVzb2x2ZVMzQ29uZmlnID0gKGlucHV0LCB7IHNlc3Npb24sIH0pID0+IHtcbiAgICBjb25zdCBbczNDbGllbnRQcm92aWRlciwgQ3JlYXRlU2Vzc2lvbkNvbW1hbmRDdG9yXSA9IHNlc3Npb247XG4gICAgY29uc3QgeyBmb3JjZVBhdGhTdHlsZSwgdXNlQWNjZWxlcmF0ZUVuZHBvaW50LCBkaXNhYmxlTXVsdGlyZWdpb25BY2Nlc3NQb2ludHMsIGZvbGxvd1JlZ2lvblJlZGlyZWN0cywgczNFeHByZXNzSWRlbnRpdHlQcm92aWRlciwgYnVja2V0RW5kcG9pbnQsIGV4cGVjdENvbnRpbnVlSGVhZGVyLCB9ID0gaW5wdXQ7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oaW5wdXQsIHtcbiAgICAgICAgZm9yY2VQYXRoU3R5bGU6IGZvcmNlUGF0aFN0eWxlID8/IGZhbHNlLFxuICAgICAgICB1c2VBY2NlbGVyYXRlRW5kcG9pbnQ6IHVzZUFjY2VsZXJhdGVFbmRwb2ludCA/PyBmYWxzZSxcbiAgICAgICAgZGlzYWJsZU11bHRpcmVnaW9uQWNjZXNzUG9pbnRzOiBkaXNhYmxlTXVsdGlyZWdpb25BY2Nlc3NQb2ludHMgPz8gZmFsc2UsXG4gICAgICAgIGZvbGxvd1JlZ2lvblJlZGlyZWN0czogZm9sbG93UmVnaW9uUmVkaXJlY3RzID8/IGZhbHNlLFxuICAgICAgICBzM0V4cHJlc3NJZGVudGl0eVByb3ZpZGVyOiBzM0V4cHJlc3NJZGVudGl0eVByb3ZpZGVyID8/XG4gICAgICAgICAgICBuZXcgUzNFeHByZXNzSWRlbnRpdHlQcm92aWRlckltcGwoYXN5bmMgKGtleSkgPT4gczNDbGllbnRQcm92aWRlcigpLnNlbmQobmV3IENyZWF0ZVNlc3Npb25Db21tYW5kQ3Rvcih7XG4gICAgICAgICAgICAgICAgQnVja2V0OiBrZXksXG4gICAgICAgICAgICB9KSkpLFxuICAgICAgICBidWNrZXRFbmRwb2ludDogYnVja2V0RW5kcG9pbnQgPz8gZmFsc2UsXG4gICAgICAgIGV4cGVjdENvbnRpbnVlSGVhZGVyOiBleHBlY3RDb250aW51ZUhlYWRlciA/PyAyXzA5N18xNTIsXG4gICAgfSk7XG59O1xuXG5jb25zdCBUSFJPV19JRl9FTVBUWV9CT0RZID0ge1xuICAgIENvcHlPYmplY3RDb21tYW5kOiB0cnVlLFxuICAgIFVwbG9hZFBhcnRDb3B5Q29tbWFuZDogdHJ1ZSxcbiAgICBDb21wbGV0ZU11bHRpcGFydFVwbG9hZENvbW1hbmQ6IHRydWUsXG59O1xuY29uc3QgTUFYX0JZVEVTX1RPX0lOU1BFQ1QgPSAzMDAwO1xuY29uc3QgdGhyb3cyMDBFeGNlcHRpb25zTWlkZGxld2FyZSA9IChjb25maWcpID0+IChuZXh0LCBjb250ZXh0KSA9PiBhc3luYyAoYXJncykgPT4ge1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IG5leHQoYXJncyk7XG4gICAgY29uc3QgeyByZXNwb25zZSB9ID0gcmVzdWx0O1xuICAgIGlmICghcHJvdG9jb2xIdHRwLkh0dHBSZXNwb25zZS5pc0luc3RhbmNlKHJlc3BvbnNlKSkge1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICBjb25zdCB7IHN0YXR1c0NvZGUsIGJvZHk6IHNvdXJjZUJvZHkgfSA9IHJlc3BvbnNlO1xuICAgIGlmIChzdGF0dXNDb2RlIDwgMjAwIHx8IHN0YXR1c0NvZGUgPj0gMzAwKSB7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICAgIGNvbnN0IGlzU3BsaXR0YWJsZVN0cmVhbSA9IHR5cGVvZiBzb3VyY2VCb2R5Py5zdHJlYW0gPT09IFwiZnVuY3Rpb25cIiB8fFxuICAgICAgICB0eXBlb2Ygc291cmNlQm9keT8ucGlwZSA9PT0gXCJmdW5jdGlvblwiIHx8XG4gICAgICAgIHR5cGVvZiBzb3VyY2VCb2R5Py50ZWUgPT09IFwiZnVuY3Rpb25cIjtcbiAgICBpZiAoIWlzU3BsaXR0YWJsZVN0cmVhbSkge1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICBsZXQgYm9keUNvcHkgPSBzb3VyY2VCb2R5O1xuICAgIGxldCBib2R5ID0gc291cmNlQm9keTtcbiAgICBpZiAoc291cmNlQm9keSAmJiB0eXBlb2Ygc291cmNlQm9keSA9PT0gXCJvYmplY3RcIiAmJiAhKHNvdXJjZUJvZHkgaW5zdGFuY2VvZiBVaW50OEFycmF5KSkge1xuICAgICAgICBbYm9keUNvcHksIGJvZHldID0gYXdhaXQgdXRpbFN0cmVhbS5zcGxpdFN0cmVhbShzb3VyY2VCb2R5KTtcbiAgICB9XG4gICAgcmVzcG9uc2UuYm9keSA9IGJvZHk7XG4gICAgY29uc3QgYm9keUJ5dGVzID0gYXdhaXQgY29sbGVjdEJvZHkoYm9keUNvcHksIHtcbiAgICAgICAgc3RyZWFtQ29sbGVjdG9yOiBhc3luYyAoc3RyZWFtKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gdXRpbFN0cmVhbS5oZWFkU3RyZWFtKHN0cmVhbSwgTUFYX0JZVEVTX1RPX0lOU1BFQ1QpO1xuICAgICAgICB9LFxuICAgIH0pO1xuICAgIGlmICh0eXBlb2YgYm9keUNvcHk/LmRlc3Ryb3kgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICBib2R5Q29weS5kZXN0cm95KCk7XG4gICAgfVxuICAgIGNvbnN0IGJvZHlTdHJpbmdUYWlsID0gY29uZmlnLnV0ZjhFbmNvZGVyKGJvZHlCeXRlcy5zdWJhcnJheShib2R5Qnl0ZXMubGVuZ3RoIC0gMTYpKTtcbiAgICBpZiAoYm9keUJ5dGVzLmxlbmd0aCA9PT0gMCAmJiBUSFJPV19JRl9FTVBUWV9CT0RZW2NvbnRleHQuY29tbWFuZE5hbWVdKSB7XG4gICAgICAgIGNvbnN0IGVyciA9IG5ldyBFcnJvcihcIlMzIGFib3J0ZWQgcmVxdWVzdFwiKTtcbiAgICAgICAgZXJyLm5hbWUgPSBcIkludGVybmFsRXJyb3JcIjtcbiAgICAgICAgdGhyb3cgZXJyO1xuICAgIH1cbiAgICBpZiAoYm9keVN0cmluZ1RhaWwgJiYgYm9keVN0cmluZ1RhaWwuZW5kc1dpdGgoXCI8L0Vycm9yPlwiKSkge1xuICAgICAgICByZXNwb25zZS5zdGF0dXNDb2RlID0gNDAwO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xufTtcbmNvbnN0IGNvbGxlY3RCb2R5ID0gKHN0cmVhbUJvZHkgPSBuZXcgVWludDhBcnJheSgpLCBjb250ZXh0KSA9PiB7XG4gICAgaWYgKHN0cmVhbUJvZHkgaW5zdGFuY2VvZiBVaW50OEFycmF5KSB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoc3RyZWFtQm9keSk7XG4gICAgfVxuICAgIHJldHVybiBjb250ZXh0LnN0cmVhbUNvbGxlY3RvcihzdHJlYW1Cb2R5KSB8fCBQcm9taXNlLnJlc29sdmUobmV3IFVpbnQ4QXJyYXkoKSk7XG59O1xuY29uc3QgdGhyb3cyMDBFeGNlcHRpb25zTWlkZGxld2FyZU9wdGlvbnMgPSB7XG4gICAgcmVsYXRpb246IFwiYWZ0ZXJcIixcbiAgICB0b01pZGRsZXdhcmU6IFwiZGVzZXJpYWxpemVyTWlkZGxld2FyZVwiLFxuICAgIHRhZ3M6IFtcIlRIUk9XXzIwMF9FWENFUFRJT05TXCIsIFwiUzNcIl0sXG4gICAgbmFtZTogXCJ0aHJvdzIwMEV4Y2VwdGlvbnNNaWRkbGV3YXJlXCIsXG4gICAgb3ZlcnJpZGU6IHRydWUsXG59O1xuY29uc3QgZ2V0VGhyb3cyMDBFeGNlcHRpb25zUGx1Z2luID0gKGNvbmZpZykgPT4gKHtcbiAgICBhcHBseVRvU3RhY2s6IChjbGllbnRTdGFjaykgPT4ge1xuICAgICAgICBjbGllbnRTdGFjay5hZGRSZWxhdGl2ZVRvKHRocm93MjAwRXhjZXB0aW9uc01pZGRsZXdhcmUoY29uZmlnKSwgdGhyb3cyMDBFeGNlcHRpb25zTWlkZGxld2FyZU9wdGlvbnMpO1xuICAgIH0sXG59KTtcblxuZnVuY3Rpb24gYnVja2V0RW5kcG9pbnRNaWRkbGV3YXJlKG9wdGlvbnMpIHtcbiAgICByZXR1cm4gKG5leHQsIGNvbnRleHQpID0+IGFzeW5jIChhcmdzKSA9PiB7XG4gICAgICAgIGlmIChvcHRpb25zLmJ1Y2tldEVuZHBvaW50KSB7XG4gICAgICAgICAgICBjb25zdCBlbmRwb2ludCA9IGNvbnRleHQuZW5kcG9pbnRWMjtcbiAgICAgICAgICAgIGlmIChlbmRwb2ludCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGJ1Y2tldCA9IGFyZ3MuaW5wdXQuQnVja2V0O1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgYnVja2V0ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBidWNrZXRFbmRwb2ludFVybCA9IG5ldyBVUkwoYnVja2V0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQuZW5kcG9pbnRWMiA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5lbmRwb2ludCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGJ1Y2tldEVuZHBvaW50VXJsLFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgd2FybmluZyA9IGBAYXdzLXNkay9taWRkbGV3YXJlLXNkay1zMzogYnVja2V0RW5kcG9pbnQ9dHJ1ZSB3YXMgc2V0IGJ1dCBCdWNrZXQ9JHtidWNrZXR9IGNvdWxkIG5vdCBiZSBwYXJzZWQgYXMgVVJMLmA7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29udGV4dC5sb2dnZXI/LmNvbnN0cnVjdG9yPy5uYW1lID09PSBcIk5vT3BMb2dnZXJcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2Fybih3YXJuaW5nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQubG9nZ2VyPy53YXJuPy4od2FybmluZyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXh0KGFyZ3MpO1xuICAgIH07XG59XG5jb25zdCBidWNrZXRFbmRwb2ludE1pZGRsZXdhcmVPcHRpb25zID0ge1xuICAgIG5hbWU6IFwiYnVja2V0RW5kcG9pbnRNaWRkbGV3YXJlXCIsXG4gICAgb3ZlcnJpZGU6IHRydWUsXG4gICAgcmVsYXRpb246IFwiYWZ0ZXJcIixcbiAgICB0b01pZGRsZXdhcmU6IFwiZW5kcG9pbnRWMk1pZGRsZXdhcmVcIixcbn07XG5cbmZ1bmN0aW9uIHZhbGlkYXRlQnVja2V0TmFtZU1pZGRsZXdhcmUoeyBidWNrZXRFbmRwb2ludCB9KSB7XG4gICAgcmV0dXJuIChuZXh0KSA9PiBhc3luYyAoYXJncykgPT4ge1xuICAgICAgICBjb25zdCB7IGlucHV0OiB7IEJ1Y2tldCB9LCB9ID0gYXJncztcbiAgICAgICAgaWYgKCFidWNrZXRFbmRwb2ludCAmJiB0eXBlb2YgQnVja2V0ID09PSBcInN0cmluZ1wiICYmICF1dGlsQXJuUGFyc2VyLnZhbGlkYXRlKEJ1Y2tldCkgJiYgQnVja2V0LmluZGV4T2YoXCIvXCIpID49IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGVyciA9IG5ldyBFcnJvcihgQnVja2V0IG5hbWUgc2hvdWxkbid0IGNvbnRhaW4gJy8nLCByZWNlaXZlZCAnJHtCdWNrZXR9J2ApO1xuICAgICAgICAgICAgZXJyLm5hbWUgPSBcIkludmFsaWRCdWNrZXROYW1lXCI7XG4gICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5leHQoeyAuLi5hcmdzIH0pO1xuICAgIH07XG59XG5jb25zdCB2YWxpZGF0ZUJ1Y2tldE5hbWVNaWRkbGV3YXJlT3B0aW9ucyA9IHtcbiAgICBzdGVwOiBcImluaXRpYWxpemVcIixcbiAgICB0YWdzOiBbXCJWQUxJREFURV9CVUNLRVRfTkFNRVwiXSxcbiAgICBuYW1lOiBcInZhbGlkYXRlQnVja2V0TmFtZU1pZGRsZXdhcmVcIixcbiAgICBvdmVycmlkZTogdHJ1ZSxcbn07XG5jb25zdCBnZXRWYWxpZGF0ZUJ1Y2tldE5hbWVQbHVnaW4gPSAob3B0aW9ucykgPT4gKHtcbiAgICBhcHBseVRvU3RhY2s6IChjbGllbnRTdGFjaykgPT4ge1xuICAgICAgICBjbGllbnRTdGFjay5hZGQodmFsaWRhdGVCdWNrZXROYW1lTWlkZGxld2FyZShvcHRpb25zKSwgdmFsaWRhdGVCdWNrZXROYW1lTWlkZGxld2FyZU9wdGlvbnMpO1xuICAgICAgICBjbGllbnRTdGFjay5hZGRSZWxhdGl2ZVRvKGJ1Y2tldEVuZHBvaW50TWlkZGxld2FyZShvcHRpb25zKSwgYnVja2V0RW5kcG9pbnRNaWRkbGV3YXJlT3B0aW9ucyk7XG4gICAgfSxcbn0pO1xuXG5leHBvcnRzLk5PREVfRElTQUJMRV9TM19FWFBSRVNTX1NFU1NJT05fQVVUSF9PUFRJT05TID0gTk9ERV9ESVNBQkxFX1MzX0VYUFJFU1NfU0VTU0lPTl9BVVRIX09QVElPTlM7XG5leHBvcnRzLlMzRXhwcmVzc0lkZW50aXR5Q2FjaGUgPSBTM0V4cHJlc3NJZGVudGl0eUNhY2hlO1xuZXhwb3J0cy5TM0V4cHJlc3NJZGVudGl0eUNhY2hlRW50cnkgPSBTM0V4cHJlc3NJZGVudGl0eUNhY2hlRW50cnk7XG5leHBvcnRzLlMzRXhwcmVzc0lkZW50aXR5UHJvdmlkZXJJbXBsID0gUzNFeHByZXNzSWRlbnRpdHlQcm92aWRlckltcGw7XG5leHBvcnRzLlNpZ25hdHVyZVY0UzNFeHByZXNzID0gU2lnbmF0dXJlVjRTM0V4cHJlc3M7XG5leHBvcnRzLmNoZWNrQ29udGVudExlbmd0aEhlYWRlciA9IGNoZWNrQ29udGVudExlbmd0aEhlYWRlcjtcbmV4cG9ydHMuY2hlY2tDb250ZW50TGVuZ3RoSGVhZGVyTWlkZGxld2FyZU9wdGlvbnMgPSBjaGVja0NvbnRlbnRMZW5ndGhIZWFkZXJNaWRkbGV3YXJlT3B0aW9ucztcbmV4cG9ydHMuZ2V0Q2hlY2tDb250ZW50TGVuZ3RoSGVhZGVyUGx1Z2luID0gZ2V0Q2hlY2tDb250ZW50TGVuZ3RoSGVhZGVyUGx1Z2luO1xuZXhwb3J0cy5nZXRSZWdpb25SZWRpcmVjdE1pZGRsZXdhcmVQbHVnaW4gPSBnZXRSZWdpb25SZWRpcmVjdE1pZGRsZXdhcmVQbHVnaW47XG5leHBvcnRzLmdldFMzRXhwaXJlc01pZGRsZXdhcmVQbHVnaW4gPSBnZXRTM0V4cGlyZXNNaWRkbGV3YXJlUGx1Z2luO1xuZXhwb3J0cy5nZXRTM0V4cHJlc3NIdHRwU2lnbmluZ1BsdWdpbiA9IGdldFMzRXhwcmVzc0h0dHBTaWduaW5nUGx1Z2luO1xuZXhwb3J0cy5nZXRTM0V4cHJlc3NQbHVnaW4gPSBnZXRTM0V4cHJlc3NQbHVnaW47XG5leHBvcnRzLmdldFRocm93MjAwRXhjZXB0aW9uc1BsdWdpbiA9IGdldFRocm93MjAwRXhjZXB0aW9uc1BsdWdpbjtcbmV4cG9ydHMuZ2V0VmFsaWRhdGVCdWNrZXROYW1lUGx1Z2luID0gZ2V0VmFsaWRhdGVCdWNrZXROYW1lUGx1Z2luO1xuZXhwb3J0cy5yZWdpb25SZWRpcmVjdEVuZHBvaW50TWlkZGxld2FyZSA9IHJlZ2lvblJlZGlyZWN0RW5kcG9pbnRNaWRkbGV3YXJlO1xuZXhwb3J0cy5yZWdpb25SZWRpcmVjdEVuZHBvaW50TWlkZGxld2FyZU9wdGlvbnMgPSByZWdpb25SZWRpcmVjdEVuZHBvaW50TWlkZGxld2FyZU9wdGlvbnM7XG5leHBvcnRzLnJlZ2lvblJlZGlyZWN0TWlkZGxld2FyZSA9IHJlZ2lvblJlZGlyZWN0TWlkZGxld2FyZTtcbmV4cG9ydHMucmVnaW9uUmVkaXJlY3RNaWRkbGV3YXJlT3B0aW9ucyA9IHJlZ2lvblJlZGlyZWN0TWlkZGxld2FyZU9wdGlvbnM7XG5leHBvcnRzLnJlc29sdmVTM0NvbmZpZyA9IHJlc29sdmVTM0NvbmZpZztcbmV4cG9ydHMuczNFeHBpcmVzTWlkZGxld2FyZSA9IHMzRXhwaXJlc01pZGRsZXdhcmU7XG5leHBvcnRzLnMzRXhwaXJlc01pZGRsZXdhcmVPcHRpb25zID0gczNFeHBpcmVzTWlkZGxld2FyZU9wdGlvbnM7XG5leHBvcnRzLnMzRXhwcmVzc0h0dHBTaWduaW5nTWlkZGxld2FyZSA9IHMzRXhwcmVzc0h0dHBTaWduaW5nTWlkZGxld2FyZTtcbmV4cG9ydHMuczNFeHByZXNzSHR0cFNpZ25pbmdNaWRkbGV3YXJlT3B0aW9ucyA9IHMzRXhwcmVzc0h0dHBTaWduaW5nTWlkZGxld2FyZU9wdGlvbnM7XG5leHBvcnRzLnMzRXhwcmVzc01pZGRsZXdhcmUgPSBzM0V4cHJlc3NNaWRkbGV3YXJlO1xuZXhwb3J0cy5zM0V4cHJlc3NNaWRkbGV3YXJlT3B0aW9ucyA9IHMzRXhwcmVzc01pZGRsZXdhcmVPcHRpb25zO1xuZXhwb3J0cy50aHJvdzIwMEV4Y2VwdGlvbnNNaWRkbGV3YXJlID0gdGhyb3cyMDBFeGNlcHRpb25zTWlkZGxld2FyZTtcbmV4cG9ydHMudGhyb3cyMDBFeGNlcHRpb25zTWlkZGxld2FyZU9wdGlvbnMgPSB0aHJvdzIwMEV4Y2VwdGlvbnNNaWRkbGV3YXJlT3B0aW9ucztcbmV4cG9ydHMudmFsaWRhdGVCdWNrZXROYW1lTWlkZGxld2FyZSA9IHZhbGlkYXRlQnVja2V0TmFtZU1pZGRsZXdhcmU7XG5leHBvcnRzLnZhbGlkYXRlQnVja2V0TmFtZU1pZGRsZXdhcmVPcHRpb25zID0gdmFsaWRhdGVCdWNrZXROYW1lTWlkZGxld2FyZU9wdGlvbnM7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgbWlkZGxld2FyZVNka1MzID0gcmVxdWlyZSgnQGF3cy1zZGsvbWlkZGxld2FyZS1zZGstczMnKTtcbnZhciBzaWduYXR1cmVWNCA9IHJlcXVpcmUoJ0BzbWl0aHkvc2lnbmF0dXJlLXY0Jyk7XG5cbmNvbnN0IHNpZ25hdHVyZVY0Q3J0Q29udGFpbmVyID0ge1xuICAgIENydFNpZ25lclY0OiBudWxsLFxufTtcblxuY2xhc3MgU2lnbmF0dXJlVjRNdWx0aVJlZ2lvbiB7XG4gICAgc2lndjRhU2lnbmVyO1xuICAgIHNpZ3Y0U2lnbmVyO1xuICAgIHNpZ25lck9wdGlvbnM7XG4gICAgc3RhdGljIHNpZ3Y0YURlcGVuZGVuY3koKSB7XG4gICAgICAgIGlmICh0eXBlb2Ygc2lnbmF0dXJlVjRDcnRDb250YWluZXIuQ3J0U2lnbmVyVjQgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgcmV0dXJuIFwiY3J0XCI7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodHlwZW9mIHNpZ25hdHVyZVY0LnNpZ25hdHVyZVY0YUNvbnRhaW5lci5TaWduYXR1cmVWNGEgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgcmV0dXJuIFwianNcIjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gXCJub25lXCI7XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5zaWd2NFNpZ25lciA9IG5ldyBtaWRkbGV3YXJlU2RrUzMuU2lnbmF0dXJlVjRTM0V4cHJlc3Mob3B0aW9ucyk7XG4gICAgICAgIHRoaXMuc2lnbmVyT3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgfVxuICAgIGFzeW5jIHNpZ24ocmVxdWVzdFRvU2lnbiwgb3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIGlmIChvcHRpb25zLnNpZ25pbmdSZWdpb24gPT09IFwiKlwiKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRTaWd2NGFTaWduZXIoKS5zaWduKHJlcXVlc3RUb1NpZ24sIG9wdGlvbnMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnNpZ3Y0U2lnbmVyLnNpZ24ocmVxdWVzdFRvU2lnbiwgb3B0aW9ucyk7XG4gICAgfVxuICAgIGFzeW5jIHNpZ25XaXRoQ3JlZGVudGlhbHMocmVxdWVzdFRvU2lnbiwgY3JlZGVudGlhbHMsIG9wdGlvbnMgPSB7fSkge1xuICAgICAgICBpZiAob3B0aW9ucy5zaWduaW5nUmVnaW9uID09PSBcIipcIikge1xuICAgICAgICAgICAgY29uc3Qgc2lnbmVyID0gdGhpcy5nZXRTaWd2NGFTaWduZXIoKTtcbiAgICAgICAgICAgIGNvbnN0IENydFNpZ25lclY0ID0gc2lnbmF0dXJlVjRDcnRDb250YWluZXIuQ3J0U2lnbmVyVjQ7XG4gICAgICAgICAgICBpZiAoQ3J0U2lnbmVyVjQgJiYgc2lnbmVyIGluc3RhbmNlb2YgQ3J0U2lnbmVyVjQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc2lnbmVyLnNpZ25XaXRoQ3JlZGVudGlhbHMocmVxdWVzdFRvU2lnbiwgY3JlZGVudGlhbHMsIG9wdGlvbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBzaWduV2l0aENyZWRlbnRpYWxzIHdpdGggc2lnbmluZ1JlZ2lvbiAnKicgaXMgb25seSBzdXBwb3J0ZWQgd2hlbiB1c2luZyB0aGUgQ1JUIGRlcGVuZGVuY3kgQGF3cy1zZGsvc2lnbmF0dXJlLXY0LWNydC4gYCArXG4gICAgICAgICAgICAgICAgICAgIGBQbGVhc2UgY2hlY2sgd2hldGhlciB5b3UgaGF2ZSBpbnN0YWxsZWQgdGhlIFwiQGF3cy1zZGsvc2lnbmF0dXJlLXY0LWNydFwiIHBhY2thZ2UgZXhwbGljaXRseS4gYCArXG4gICAgICAgICAgICAgICAgICAgIGBZb3UgbXVzdCBhbHNvIHJlZ2lzdGVyIHRoZSBwYWNrYWdlIGJ5IGNhbGxpbmcgW3JlcXVpcmUoXCJAYXdzLXNkay9zaWduYXR1cmUtdjQtY3J0XCIpO10gYCArXG4gICAgICAgICAgICAgICAgICAgIGBvciBhbiBFU00gZXF1aXZhbGVudCBzdWNoIGFzIFtpbXBvcnQgXCJAYXdzLXNkay9zaWduYXR1cmUtdjQtY3J0XCI7XS4gYCArXG4gICAgICAgICAgICAgICAgICAgIGBGb3IgbW9yZSBpbmZvcm1hdGlvbiBwbGVhc2UgZ28gdG8gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3Mtc2RrLWpzLXYzI2Z1bmN0aW9uYWxpdHktcmVxdWlyaW5nLWF3cy1jb21tb24tcnVudGltZS1jcnRgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5zaWd2NFNpZ25lci5zaWduV2l0aENyZWRlbnRpYWxzKHJlcXVlc3RUb1NpZ24sIGNyZWRlbnRpYWxzLCBvcHRpb25zKTtcbiAgICB9XG4gICAgYXN5bmMgcHJlc2lnbihvcmlnaW5hbFJlcXVlc3QsIG9wdGlvbnMgPSB7fSkge1xuICAgICAgICBpZiAob3B0aW9ucy5zaWduaW5nUmVnaW9uID09PSBcIipcIikge1xuICAgICAgICAgICAgY29uc3Qgc2lnbmVyID0gdGhpcy5nZXRTaWd2NGFTaWduZXIoKTtcbiAgICAgICAgICAgIGNvbnN0IENydFNpZ25lclY0ID0gc2lnbmF0dXJlVjRDcnRDb250YWluZXIuQ3J0U2lnbmVyVjQ7XG4gICAgICAgICAgICBpZiAoQ3J0U2lnbmVyVjQgJiYgc2lnbmVyIGluc3RhbmNlb2YgQ3J0U2lnbmVyVjQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc2lnbmVyLnByZXNpZ24ob3JpZ2luYWxSZXF1ZXN0LCBvcHRpb25zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgcHJlc2lnbiB3aXRoIHNpZ25pbmdSZWdpb24gJyonIGlzIG9ubHkgc3VwcG9ydGVkIHdoZW4gdXNpbmcgdGhlIENSVCBkZXBlbmRlbmN5IEBhd3Mtc2RrL3NpZ25hdHVyZS12NC1jcnQuIGAgK1xuICAgICAgICAgICAgICAgICAgICBgUGxlYXNlIGNoZWNrIHdoZXRoZXIgeW91IGhhdmUgaW5zdGFsbGVkIHRoZSBcIkBhd3Mtc2RrL3NpZ25hdHVyZS12NC1jcnRcIiBwYWNrYWdlIGV4cGxpY2l0bHkuIGAgK1xuICAgICAgICAgICAgICAgICAgICBgWW91IG11c3QgYWxzbyByZWdpc3RlciB0aGUgcGFja2FnZSBieSBjYWxsaW5nIFtyZXF1aXJlKFwiQGF3cy1zZGsvc2lnbmF0dXJlLXY0LWNydFwiKTtdIGAgK1xuICAgICAgICAgICAgICAgICAgICBgb3IgYW4gRVNNIGVxdWl2YWxlbnQgc3VjaCBhcyBbaW1wb3J0IFwiQGF3cy1zZGsvc2lnbmF0dXJlLXY0LWNydFwiO10uIGAgK1xuICAgICAgICAgICAgICAgICAgICBgRm9yIG1vcmUgaW5mb3JtYXRpb24gcGxlYXNlIGdvIHRvIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLXNkay1qcy12MyNmdW5jdGlvbmFsaXR5LXJlcXVpcmluZy1hd3MtY29tbW9uLXJ1bnRpbWUtY3J0YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuc2lndjRTaWduZXIucHJlc2lnbihvcmlnaW5hbFJlcXVlc3QsIG9wdGlvbnMpO1xuICAgIH1cbiAgICBhc3luYyBwcmVzaWduV2l0aENyZWRlbnRpYWxzKG9yaWdpbmFsUmVxdWVzdCwgY3JlZGVudGlhbHMsIG9wdGlvbnMgPSB7fSkge1xuICAgICAgICBpZiAob3B0aW9ucy5zaWduaW5nUmVnaW9uID09PSBcIipcIikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWV0aG9kIHByZXNpZ25XaXRoQ3JlZGVudGlhbHMgaXMgbm90IHN1cHBvcnRlZCBmb3IgW3NpZ25pbmdSZWdpb249Kl0uXCIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnNpZ3Y0U2lnbmVyLnByZXNpZ25XaXRoQ3JlZGVudGlhbHMob3JpZ2luYWxSZXF1ZXN0LCBjcmVkZW50aWFscywgb3B0aW9ucyk7XG4gICAgfVxuICAgIGdldFNpZ3Y0YVNpZ25lcigpIHtcbiAgICAgICAgaWYgKCF0aGlzLnNpZ3Y0YVNpZ25lcikge1xuICAgICAgICAgICAgY29uc3QgQ3J0U2lnbmVyVjQgPSBzaWduYXR1cmVWNENydENvbnRhaW5lci5DcnRTaWduZXJWNDtcbiAgICAgICAgICAgIGNvbnN0IEpzU2lnVjRhU2lnbmVyID0gc2lnbmF0dXJlVjQuc2lnbmF0dXJlVjRhQ29udGFpbmVyLlNpZ25hdHVyZVY0YTtcbiAgICAgICAgICAgIGlmICh0aGlzLnNpZ25lck9wdGlvbnMucnVudGltZSA9PT0gXCJub2RlXCIpIHtcbiAgICAgICAgICAgICAgICBpZiAoIUNydFNpZ25lclY0ICYmICFKc1NpZ1Y0YVNpZ25lcikge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJOZWl0aGVyIENSVCBub3IgSlMgU2lnVjRhIGltcGxlbWVudGF0aW9uIGlzIGF2YWlsYWJsZS4gXCIgK1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJQbGVhc2UgbG9hZCBlaXRoZXIgQGF3cy1zZGsvc2lnbmF0dXJlLXY0LWNydCBvciBAYXdzLXNkay9zaWduYXR1cmUtdjRhLiBcIiArXG4gICAgICAgICAgICAgICAgICAgICAgICBcIkZvciBtb3JlIGluZm9ybWF0aW9uIHBsZWFzZSBnbyB0byBcIiArXG4gICAgICAgICAgICAgICAgICAgICAgICBcImh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLXNkay1qcy12MyNmdW5jdGlvbmFsaXR5LXJlcXVpcmluZy1hd3MtY29tbW9uLXJ1bnRpbWUtY3J0XCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoQ3J0U2lnbmVyVjQgJiYgdHlwZW9mIENydFNpZ25lclY0ID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zaWd2NGFTaWduZXIgPSBuZXcgQ3J0U2lnbmVyVjQoe1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5zaWduZXJPcHRpb25zLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmluZ0FsZ29yaXRobTogMSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKEpzU2lnVjRhU2lnbmVyICYmIHR5cGVvZiBKc1NpZ1Y0YVNpZ25lciA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2lndjRhU2lnbmVyID0gbmV3IEpzU2lnVjRhU2lnbmVyKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLnRoaXMuc2lnbmVyT3B0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJBdmFpbGFibGUgU2lnVjRhIGltcGxlbWVudGF0aW9uIGlzIG5vdCBhIHZhbGlkIGNvbnN0cnVjdG9yLiBcIiArXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlBsZWFzZSBlbnN1cmUgeW91J3ZlIHByb3Blcmx5IGltcG9ydGVkIEBhd3Mtc2RrL3NpZ25hdHVyZS12NC1jcnQgb3IgQGF3cy1zZGsvc2lnbmF0dXJlLXY0YS5cIiArXG4gICAgICAgICAgICAgICAgICAgICAgICBcIkZvciBtb3JlIGluZm9ybWF0aW9uIHBsZWFzZSBnbyB0byBcIiArXG4gICAgICAgICAgICAgICAgICAgICAgICBcImh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLXNkay1qcy12MyNmdW5jdGlvbmFsaXR5LXJlcXVpcmluZy1hd3MtY29tbW9uLXJ1bnRpbWUtY3J0XCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmICghSnNTaWdWNGFTaWduZXIgfHwgdHlwZW9mIEpzU2lnVjRhU2lnbmVyICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiSlMgU2lnVjRhIGltcGxlbWVudGF0aW9uIGlzIG5vdCBhdmFpbGFibGUgb3Igbm90IGEgdmFsaWQgY29uc3RydWN0b3IuIFwiICtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiUGxlYXNlIGNoZWNrIHdoZXRoZXIgeW91IGhhdmUgaW5zdGFsbGVkIHRoZSBAYXdzLXNkay9zaWduYXR1cmUtdjRhIHBhY2thZ2UgZXhwbGljaXRseS4gVGhlIENSVCBpbXBsZW1lbnRhdGlvbiBpcyBub3QgYXZhaWxhYmxlIGZvciBicm93c2Vycy4gXCIgK1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJZb3UgbXVzdCBhbHNvIHJlZ2lzdGVyIHRoZSBwYWNrYWdlIGJ5IGNhbGxpbmcgW3JlcXVpcmUoJ0Bhd3Mtc2RrL3NpZ25hdHVyZS12NGEnKTtdIFwiICtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwib3IgYW4gRVNNIGVxdWl2YWxlbnQgc3VjaCBhcyBbaW1wb3J0ICdAYXdzLXNkay9zaWduYXR1cmUtdjRhJztdLiBcIiArXG4gICAgICAgICAgICAgICAgICAgICAgICBcIkZvciBtb3JlIGluZm9ybWF0aW9uIHBsZWFzZSBnbyB0byBcIiArXG4gICAgICAgICAgICAgICAgICAgICAgICBcImh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLXNkay1qcy12MyN1c2luZy1qYXZhc2NyaXB0LW5vbi1jcnQtaW1wbGVtZW50YXRpb24tb2Ytc2lndjRhXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLnNpZ3Y0YVNpZ25lciA9IG5ldyBKc1NpZ1Y0YVNpZ25lcih7XG4gICAgICAgICAgICAgICAgICAgIC4uLnRoaXMuc2lnbmVyT3B0aW9ucyxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5zaWd2NGFTaWduZXI7XG4gICAgfVxufVxuXG5leHBvcnRzLlNpZ25hdHVyZVY0TXVsdGlSZWdpb24gPSBTaWduYXR1cmVWNE11bHRpUmVnaW9uO1xuZXhwb3J0cy5zaWduYXR1cmVWNENydENvbnRhaW5lciA9IHNpZ25hdHVyZVY0Q3J0Q29udGFpbmVyO1xuIiwgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5ydWxlU2V0ID0gdm9pZCAwO1xuY29uc3QgY3MgPSBcInJlcXVpcmVkXCIsIGN0ID0gXCJ0eXBlXCIsIGN1ID0gXCJydWxlc1wiLCBjdiA9IFwiY29uZGl0aW9uc1wiLCBjdyA9IFwiZm5cIiwgY3ggPSBcImFyZ3ZcIiwgY3kgPSBcInJlZlwiLCBjeiA9IFwiYXNzaWduXCIsIGNBID0gXCJ1cmxcIiwgY0IgPSBcInByb3BlcnRpZXNcIiwgY0MgPSBcImJhY2tlbmRcIiwgY0QgPSBcImF1dGhTY2hlbWVzXCIsIGNFID0gXCJkaXNhYmxlRG91YmxlRW5jb2RpbmdcIiwgY0YgPSBcInNpZ25pbmdOYW1lXCIsIGNHID0gXCJzaWduaW5nUmVnaW9uXCIsIGNIID0gXCJoZWFkZXJzXCIsIGNJID0gXCJzaWduaW5nUmVnaW9uU2V0XCI7XG5jb25zdCBhID0gNiwgYiA9IGZhbHNlLCBjID0gdHJ1ZSwgZCA9IFwiaXNTZXRcIiwgZSA9IFwiYm9vbGVhbkVxdWFsc1wiLCBmID0gXCJlcnJvclwiLCBnID0gXCJhd3MucGFydGl0aW9uXCIsIGggPSBcInN0cmluZ0VxdWFsc1wiLCBpID0gXCJnZXRBdHRyXCIsIGogPSBcIm5hbWVcIiwgayA9IFwic3Vic3RyaW5nXCIsIGwgPSBcImJ1Y2tldFN1ZmZpeFwiLCBtID0gXCJwYXJzZVVSTFwiLCBuID0gXCJlbmRwb2ludFwiLCBvID0gXCJ0cmVlXCIsIHAgPSBcImF3cy5pc1ZpcnR1YWxIb3N0YWJsZVMzQnVja2V0XCIsIHEgPSBcInt1cmwjc2NoZW1lfTovL3tCdWNrZXR9Lnt1cmwjYXV0aG9yaXR5fXt1cmwjcGF0aH1cIiwgciA9IFwibm90XCIsIHMgPSBcImFjY2Vzc1BvaW50U3VmZml4XCIsIHQgPSBcInt1cmwjc2NoZW1lfTovL3t1cmwjYXV0aG9yaXR5fXt1cmwjcGF0aH1cIiwgdSA9IFwiaGFyZHdhcmVUeXBlXCIsIHYgPSBcInJlZ2lvblByZWZpeFwiLCB3ID0gXCJidWNrZXRBbGlhc1N1ZmZpeFwiLCB4ID0gXCJvdXRwb3N0SWRcIiwgeSA9IFwiaXNWYWxpZEhvc3RMYWJlbFwiLCB6ID0gXCJzaWd2NGFcIiwgQSA9IFwiczMtb3V0cG9zdHNcIiwgQiA9IFwiczNcIiwgQyA9IFwie3VybCNzY2hlbWV9Oi8ve3VybCNhdXRob3JpdHl9e3VybCNub3JtYWxpemVkUGF0aH17QnVja2V0fVwiLCBEID0gXCJodHRwczovL3tCdWNrZXR9LnMzLWFjY2VsZXJhdGUue3BhcnRpdGlvblJlc3VsdCNkbnNTdWZmaXh9XCIsIEUgPSBcImh0dHBzOi8ve0J1Y2tldH0uczMue3BhcnRpdGlvblJlc3VsdCNkbnNTdWZmaXh9XCIsIEYgPSBcImF3cy5wYXJzZUFyblwiLCBHID0gXCJidWNrZXRBcm5cIiwgSCA9IFwiYXJuVHlwZVwiLCBJID0gXCJcIiwgSiA9IFwiczMtb2JqZWN0LWxhbWJkYVwiLCBLID0gXCJhY2Nlc3Nwb2ludFwiLCBMID0gXCJhY2Nlc3NQb2ludE5hbWVcIiwgTSA9IFwie3VybCNzY2hlbWV9Oi8ve2FjY2Vzc1BvaW50TmFtZX0te2J1Y2tldEFybiNhY2NvdW50SWR9Lnt1cmwjYXV0aG9yaXR5fXt1cmwjcGF0aH1cIiwgTiA9IFwibXJhcFBhcnRpdGlvblwiLCBPID0gXCJvdXRwb3N0VHlwZVwiLCBQID0gXCJhcm5QcmVmaXhcIiwgUSA9IFwie3VybCNzY2hlbWV9Oi8ve3VybCNhdXRob3JpdHl9e3VybCNub3JtYWxpemVkUGF0aH17dXJpX2VuY29kZWRfYnVja2V0fVwiLCBSID0gXCJodHRwczovL3MzLntwYXJ0aXRpb25SZXN1bHQjZG5zU3VmZml4fS97dXJpX2VuY29kZWRfYnVja2V0fVwiLCBTID0gXCJodHRwczovL3MzLntwYXJ0aXRpb25SZXN1bHQjZG5zU3VmZml4fVwiLCBUID0geyBbY3NdOiBmYWxzZSwgW2N0XTogXCJzdHJpbmdcIiB9LCBVID0geyBbY3NdOiB0cnVlLCBcImRlZmF1bHRcIjogZmFsc2UsIFtjdF06IFwiYm9vbGVhblwiIH0sIFYgPSB7IFtjc106IGZhbHNlLCBbY3RdOiBcImJvb2xlYW5cIiB9LCBXID0geyBbY3ddOiBlLCBbY3hdOiBbeyBbY3ldOiBcIkFjY2VsZXJhdGVcIiB9LCB0cnVlXSB9LCBYID0geyBbY3ddOiBlLCBbY3hdOiBbeyBbY3ldOiBcIlVzZUZJUFNcIiB9LCB0cnVlXSB9LCBZID0geyBbY3ddOiBlLCBbY3hdOiBbeyBbY3ldOiBcIlVzZUR1YWxTdGFja1wiIH0sIHRydWVdIH0sIFogPSB7IFtjd106IGQsIFtjeF06IFt7IFtjeV06IFwiRW5kcG9pbnRcIiB9XSB9LCBhYSA9IHsgW2N3XTogZywgW2N4XTogW3sgW2N5XTogXCJSZWdpb25cIiB9XSwgW2N6XTogXCJwYXJ0aXRpb25SZXN1bHRcIiB9LCBhYiA9IHsgW2N3XTogaCwgW2N4XTogW3sgW2N3XTogaSwgW2N4XTogW3sgW2N5XTogXCJwYXJ0aXRpb25SZXN1bHRcIiB9LCBqXSB9LCBcImF3cy1jblwiXSB9LCBhYyA9IHsgW2N3XTogZCwgW2N4XTogW3sgW2N5XTogXCJCdWNrZXRcIiB9XSB9LCBhZCA9IHsgW2N5XTogXCJCdWNrZXRcIiB9LCBhZSA9IHsgW2N2XTogW1ddLCBbZl06IFwiUzNFeHByZXNzIGRvZXMgbm90IHN1cHBvcnQgUzMgQWNjZWxlcmF0ZS5cIiwgW2N0XTogZiB9LCBhZiA9IHsgW2N2XTogW1osIHsgW2N3XTogbSwgW2N4XTogW3sgW2N5XTogXCJFbmRwb2ludFwiIH1dLCBbY3pdOiBcInVybFwiIH1dLCBbY3VdOiBbeyBbY3ZdOiBbeyBbY3ddOiBkLCBbY3hdOiBbeyBbY3ldOiBcIkRpc2FibGVTM0V4cHJlc3NTZXNzaW9uQXV0aFwiIH1dIH0sIHsgW2N3XTogZSwgW2N4XTogW3sgW2N5XTogXCJEaXNhYmxlUzNFeHByZXNzU2Vzc2lvbkF1dGhcIiB9LCB0cnVlXSB9XSwgW2N1XTogW3sgW2N2XTogW3sgW2N3XTogZSwgW2N4XTogW3sgW2N3XTogaSwgW2N4XTogW3sgW2N5XTogXCJ1cmxcIiB9LCBcImlzSXBcIl0gfSwgdHJ1ZV0gfV0sIFtjdV06IFt7IFtjdl06IFt7IFtjd106IFwidXJpRW5jb2RlXCIsIFtjeF06IFthZF0sIFtjel06IFwidXJpX2VuY29kZWRfYnVja2V0XCIgfV0sIFtjdV06IFt7IFtuXTogeyBbY0FdOiBcInt1cmwjc2NoZW1lfTovL3t1cmwjYXV0aG9yaXR5fS97dXJpX2VuY29kZWRfYnVja2V0fXt1cmwjcGF0aH1cIiwgW2NCXTogeyBbY0NdOiBcIlMzRXhwcmVzc1wiLCBbY0RdOiBbeyBbY0VdOiB0cnVlLCBbal06IFwic2lndjRcIiwgW2NGXTogXCJzM2V4cHJlc3NcIiwgW2NHXTogXCJ7UmVnaW9ufVwiIH1dIH0sIFtjSF06IHt9IH0sIFtjdF06IG4gfV0sIFtjdF06IG8gfV0sIFtjdF06IG8gfSwgeyBbY3ZdOiBbeyBbY3ddOiBwLCBbY3hdOiBbYWQsIGZhbHNlXSB9XSwgW2N1XTogW3sgW25dOiB7IFtjQV06IHEsIFtjQl06IHsgW2NDXTogXCJTM0V4cHJlc3NcIiwgW2NEXTogW3sgW2NFXTogdHJ1ZSwgW2pdOiBcInNpZ3Y0XCIsIFtjRl06IFwiczNleHByZXNzXCIsIFtjR106IFwie1JlZ2lvbn1cIiB9XSB9LCBbY0hdOiB7fSB9LCBbY3RdOiBuIH1dLCBbY3RdOiBvIH0sIHsgW2ZdOiBcIlMzRXhwcmVzcyBidWNrZXQgbmFtZSBpcyBub3QgYSB2YWxpZCB2aXJ0dWFsIGhvc3RhYmxlIG5hbWUuXCIsIFtjdF06IGYgfV0sIFtjdF06IG8gfSwgeyBbY3ZdOiBbeyBbY3ddOiBlLCBbY3hdOiBbeyBbY3ddOiBpLCBbY3hdOiBbeyBbY3ldOiBcInVybFwiIH0sIFwiaXNJcFwiXSB9LCB0cnVlXSB9XSwgW2N1XTogW3sgW2N2XTogW3sgW2N3XTogXCJ1cmlFbmNvZGVcIiwgW2N4XTogW2FkXSwgW2N6XTogXCJ1cmlfZW5jb2RlZF9idWNrZXRcIiB9XSwgW2N1XTogW3sgW25dOiB7IFtjQV06IFwie3VybCNzY2hlbWV9Oi8ve3VybCNhdXRob3JpdHl9L3t1cmlfZW5jb2RlZF9idWNrZXR9e3VybCNwYXRofVwiLCBbY0JdOiB7IFtjQ106IFwiUzNFeHByZXNzXCIsIFtjRF06IFt7IFtjRV06IHRydWUsIFtqXTogXCJzaWd2NC1zM2V4cHJlc3NcIiwgW2NGXTogXCJzM2V4cHJlc3NcIiwgW2NHXTogXCJ7UmVnaW9ufVwiIH1dIH0sIFtjSF06IHt9IH0sIFtjdF06IG4gfV0sIFtjdF06IG8gfV0sIFtjdF06IG8gfSwgeyBbY3ZdOiBbeyBbY3ddOiBwLCBbY3hdOiBbYWQsIGZhbHNlXSB9XSwgW2N1XTogW3sgW25dOiB7IFtjQV06IHEsIFtjQl06IHsgW2NDXTogXCJTM0V4cHJlc3NcIiwgW2NEXTogW3sgW2NFXTogdHJ1ZSwgW2pdOiBcInNpZ3Y0LXMzZXhwcmVzc1wiLCBbY0ZdOiBcInMzZXhwcmVzc1wiLCBbY0ddOiBcIntSZWdpb259XCIgfV0gfSwgW2NIXToge30gfSwgW2N0XTogbiB9XSwgW2N0XTogbyB9LCB7IFtmXTogXCJTM0V4cHJlc3MgYnVja2V0IG5hbWUgaXMgbm90IGEgdmFsaWQgdmlydHVhbCBob3N0YWJsZSBuYW1lLlwiLCBbY3RdOiBmIH1dLCBbY3RdOiBvIH0sIGFnID0geyBbY3ddOiBtLCBbY3hdOiBbeyBbY3ldOiBcIkVuZHBvaW50XCIgfV0sIFtjel06IFwidXJsXCIgfSwgYWggPSB7IFtjd106IGUsIFtjeF06IFt7IFtjd106IGksIFtjeF06IFt7IFtjeV06IFwidXJsXCIgfSwgXCJpc0lwXCJdIH0sIHRydWVdIH0sIGFpID0geyBbY3ldOiBcInVybFwiIH0sIGFqID0geyBbY3ddOiBcInVyaUVuY29kZVwiLCBbY3hdOiBbYWRdLCBbY3pdOiBcInVyaV9lbmNvZGVkX2J1Y2tldFwiIH0sIGFrID0geyBbY0NdOiBcIlMzRXhwcmVzc1wiLCBbY0RdOiBbeyBbY0VdOiB0cnVlLCBbal06IFwic2lndjRcIiwgW2NGXTogXCJzM2V4cHJlc3NcIiwgW2NHXTogXCJ7UmVnaW9ufVwiIH1dIH0sIGFsID0ge30sIGFtID0geyBbY3ddOiBwLCBbY3hdOiBbYWQsIGZhbHNlXSB9LCBhbiA9IHsgW2ZdOiBcIlMzRXhwcmVzcyBidWNrZXQgbmFtZSBpcyBub3QgYSB2YWxpZCB2aXJ0dWFsIGhvc3RhYmxlIG5hbWUuXCIsIFtjdF06IGYgfSwgYW8gPSB7IFtjd106IGQsIFtjeF06IFt7IFtjeV06IFwiVXNlUzNFeHByZXNzQ29udHJvbEVuZHBvaW50XCIgfV0gfSwgYXAgPSB7IFtjd106IGUsIFtjeF06IFt7IFtjeV06IFwiVXNlUzNFeHByZXNzQ29udHJvbEVuZHBvaW50XCIgfSwgdHJ1ZV0gfSwgYXEgPSB7IFtjd106IHIsIFtjeF06IFtaXSB9LCBhciA9IHsgW2N3XTogZSwgW2N4XTogW3sgW2N5XTogXCJVc2VEdWFsU3RhY2tcIiB9LCBmYWxzZV0gfSwgYXMgPSB7IFtjd106IGUsIFtjeF06IFt7IFtjeV06IFwiVXNlRklQU1wiIH0sIGZhbHNlXSB9LCBhdCA9IHsgW2ZdOiBcIlVucmVjb2duaXplZCBTM0V4cHJlc3MgYnVja2V0IG5hbWUgZm9ybWF0LlwiLCBbY3RdOiBmIH0sIGF1ID0geyBbY3ddOiByLCBbY3hdOiBbYWNdIH0sIGF2ID0geyBbY3ldOiB1IH0sIGF3ID0geyBbY3ZdOiBbYXFdLCBbZl06IFwiRXhwZWN0ZWQgYSBlbmRwb2ludCB0byBiZSBzcGVjaWZpZWQgYnV0IG5vIGVuZHBvaW50IHdhcyBmb3VuZFwiLCBbY3RdOiBmIH0sIGF4ID0geyBbY0RdOiBbeyBbY0VdOiB0cnVlLCBbal06IHosIFtjRl06IEEsIFtjSV06IFtcIipcIl0gfSwgeyBbY0VdOiB0cnVlLCBbal06IFwic2lndjRcIiwgW2NGXTogQSwgW2NHXTogXCJ7UmVnaW9ufVwiIH1dIH0sIGF5ID0geyBbY3ddOiBlLCBbY3hdOiBbeyBbY3ldOiBcIkZvcmNlUGF0aFN0eWxlXCIgfSwgZmFsc2VdIH0sIGF6ID0geyBbY3ldOiBcIkZvcmNlUGF0aFN0eWxlXCIgfSwgYUEgPSB7IFtjd106IGUsIFtjeF06IFt7IFtjeV06IFwiQWNjZWxlcmF0ZVwiIH0sIGZhbHNlXSB9LCBhQiA9IHsgW2N3XTogaCwgW2N4XTogW3sgW2N5XTogXCJSZWdpb25cIiB9LCBcImF3cy1nbG9iYWxcIl0gfSwgYUMgPSB7IFtjRF06IFt7IFtjRV06IHRydWUsIFtqXTogXCJzaWd2NFwiLCBbY0ZdOiBCLCBbY0ddOiBcInVzLWVhc3QtMVwiIH1dIH0sIGFEID0geyBbY3ddOiByLCBbY3hdOiBbYUJdIH0sIGFFID0geyBbY3ddOiBlLCBbY3hdOiBbeyBbY3ldOiBcIlVzZUdsb2JhbEVuZHBvaW50XCIgfSwgdHJ1ZV0gfSwgYUYgPSB7IFtjQV06IFwiaHR0cHM6Ly97QnVja2V0fS5zMy1maXBzLmR1YWxzdGFjay57UmVnaW9ufS57cGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH1cIiwgW2NCXTogeyBbY0RdOiBbeyBbY0VdOiB0cnVlLCBbal06IFwic2lndjRcIiwgW2NGXTogQiwgW2NHXTogXCJ7UmVnaW9ufVwiIH1dIH0sIFtjSF06IHt9IH0sIGFHID0geyBbY0RdOiBbeyBbY0VdOiB0cnVlLCBbal06IFwic2lndjRcIiwgW2NGXTogQiwgW2NHXTogXCJ7UmVnaW9ufVwiIH1dIH0sIGFIID0geyBbY3ddOiBlLCBbY3hdOiBbeyBbY3ldOiBcIlVzZUdsb2JhbEVuZHBvaW50XCIgfSwgZmFsc2VdIH0sIGFJID0geyBbY0FdOiBcImh0dHBzOi8ve0J1Y2tldH0uczMtZmlwcy57UmVnaW9ufS57cGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH1cIiwgW2NCXTogYUcsIFtjSF06IHt9IH0sIGFKID0geyBbY0FdOiBcImh0dHBzOi8ve0J1Y2tldH0uczMtYWNjZWxlcmF0ZS5kdWFsc3RhY2sue3BhcnRpdGlvblJlc3VsdCNkbnNTdWZmaXh9XCIsIFtjQl06IGFHLCBbY0hdOiB7fSB9LCBhSyA9IHsgW2NBXTogXCJodHRwczovL3tCdWNrZXR9LnMzLmR1YWxzdGFjay57UmVnaW9ufS57cGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH1cIiwgW2NCXTogYUcsIFtjSF06IHt9IH0sIGFMID0geyBbY3ddOiBlLCBbY3hdOiBbeyBbY3ddOiBpLCBbY3hdOiBbYWksIFwiaXNJcFwiXSB9LCBmYWxzZV0gfSwgYU0gPSB7IFtjQV06IEMsIFtjQl06IGFHLCBbY0hdOiB7fSB9LCBhTiA9IHsgW2NBXTogcSwgW2NCXTogYUcsIFtjSF06IHt9IH0sIGFPID0geyBbbl06IGFOLCBbY3RdOiBuIH0sIGFQID0geyBbY0FdOiBELCBbY0JdOiBhRywgW2NIXToge30gfSwgYVEgPSB7IFtjQV06IFwiaHR0cHM6Ly97QnVja2V0fS5zMy57UmVnaW9ufS57cGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH1cIiwgW2NCXTogYUcsIFtjSF06IHt9IH0sIGFSID0geyBbZl06IFwiSW52YWxpZCByZWdpb246IHJlZ2lvbiB3YXMgbm90IGEgdmFsaWQgRE5TIG5hbWUuXCIsIFtjdF06IGYgfSwgYVMgPSB7IFtjeV06IEcgfSwgYVQgPSB7IFtjeV06IEggfSwgYVUgPSB7IFtjd106IGksIFtjeF06IFthUywgXCJzZXJ2aWNlXCJdIH0sIGFWID0geyBbY3ldOiBMIH0sIGFXID0geyBbY3ZdOiBbWV0sIFtmXTogXCJTMyBPYmplY3QgTGFtYmRhIGRvZXMgbm90IHN1cHBvcnQgRHVhbC1zdGFja1wiLCBbY3RdOiBmIH0sIGFYID0geyBbY3ZdOiBbV10sIFtmXTogXCJTMyBPYmplY3QgTGFtYmRhIGRvZXMgbm90IHN1cHBvcnQgUzMgQWNjZWxlcmF0ZVwiLCBbY3RdOiBmIH0sIGFZID0geyBbY3ZdOiBbeyBbY3ddOiBkLCBbY3hdOiBbeyBbY3ldOiBcIkRpc2FibGVBY2Nlc3NQb2ludHNcIiB9XSB9LCB7IFtjd106IGUsIFtjeF06IFt7IFtjeV06IFwiRGlzYWJsZUFjY2Vzc1BvaW50c1wiIH0sIHRydWVdIH1dLCBbZl06IFwiQWNjZXNzIHBvaW50cyBhcmUgbm90IHN1cHBvcnRlZCBmb3IgdGhpcyBvcGVyYXRpb25cIiwgW2N0XTogZiB9LCBhWiA9IHsgW2N2XTogW3sgW2N3XTogZCwgW2N4XTogW3sgW2N5XTogXCJVc2VBcm5SZWdpb25cIiB9XSB9LCB7IFtjd106IGUsIFtjeF06IFt7IFtjeV06IFwiVXNlQXJuUmVnaW9uXCIgfSwgZmFsc2VdIH0sIHsgW2N3XTogciwgW2N4XTogW3sgW2N3XTogaCwgW2N4XTogW3sgW2N3XTogaSwgW2N4XTogW2FTLCBcInJlZ2lvblwiXSB9LCBcIntSZWdpb259XCJdIH1dIH1dLCBbZl06IFwiSW52YWxpZCBjb25maWd1cmF0aW9uOiByZWdpb24gZnJvbSBBUk4gYHtidWNrZXRBcm4jcmVnaW9ufWAgZG9lcyBub3QgbWF0Y2ggY2xpZW50IHJlZ2lvbiBge1JlZ2lvbn1gIGFuZCBVc2VBcm5SZWdpb24gaXMgYGZhbHNlYFwiLCBbY3RdOiBmIH0sIGJhID0geyBbY3ddOiBpLCBbY3hdOiBbeyBbY3ldOiBcImJ1Y2tldFBhcnRpdGlvblwiIH0sIGpdIH0sIGJiID0geyBbY3ddOiBpLCBbY3hdOiBbYVMsIFwiYWNjb3VudElkXCJdIH0sIGJjID0geyBbY0RdOiBbeyBbY0VdOiB0cnVlLCBbal06IFwic2lndjRcIiwgW2NGXTogSiwgW2NHXTogXCJ7YnVja2V0QXJuI3JlZ2lvbn1cIiB9XSB9LCBiZCA9IHsgW2ZdOiBcIkludmFsaWQgQVJOOiBUaGUgYWNjZXNzIHBvaW50IG5hbWUgbWF5IG9ubHkgY29udGFpbiBhLXosIEEtWiwgMC05IGFuZCBgLWAuIEZvdW5kOiBge2FjY2Vzc1BvaW50TmFtZX1gXCIsIFtjdF06IGYgfSwgYmUgPSB7IFtmXTogXCJJbnZhbGlkIEFSTjogVGhlIGFjY291bnQgaWQgbWF5IG9ubHkgY29udGFpbiBhLXosIEEtWiwgMC05IGFuZCBgLWAuIEZvdW5kOiBge2J1Y2tldEFybiNhY2NvdW50SWR9YFwiLCBbY3RdOiBmIH0sIGJmID0geyBbZl06IFwiSW52YWxpZCByZWdpb24gaW4gQVJOOiBge2J1Y2tldEFybiNyZWdpb259YCAoaW52YWxpZCBETlMgbmFtZSlcIiwgW2N0XTogZiB9LCBiZyA9IHsgW2ZdOiBcIkNsaWVudCB3YXMgY29uZmlndXJlZCBmb3IgcGFydGl0aW9uIGB7cGFydGl0aW9uUmVzdWx0I25hbWV9YCBidXQgQVJOIChge0J1Y2tldH1gKSBoYXMgYHtidWNrZXRQYXJ0aXRpb24jbmFtZX1gXCIsIFtjdF06IGYgfSwgYmggPSB7IFtmXTogXCJJbnZhbGlkIEFSTjogVGhlIEFSTiBtYXkgb25seSBjb250YWluIGEgc2luZ2xlIHJlc291cmNlIGNvbXBvbmVudCBhZnRlciBgYWNjZXNzcG9pbnRgLlwiLCBbY3RdOiBmIH0sIGJpID0geyBbZl06IFwiSW52YWxpZCBBUk46IEV4cGVjdGVkIGEgcmVzb3VyY2Ugb2YgdGhlIGZvcm1hdCBgYWNjZXNzcG9pbnQ6PGFjY2Vzc3BvaW50IG5hbWU+YCBidXQgbm8gbmFtZSB3YXMgcHJvdmlkZWRcIiwgW2N0XTogZiB9LCBiaiA9IHsgW2NEXTogW3sgW2NFXTogdHJ1ZSwgW2pdOiBcInNpZ3Y0XCIsIFtjRl06IEIsIFtjR106IFwie2J1Y2tldEFybiNyZWdpb259XCIgfV0gfSwgYmsgPSB7IFtjRF06IFt7IFtjRV06IHRydWUsIFtqXTogeiwgW2NGXTogQSwgW2NJXTogW1wiKlwiXSB9LCB7IFtjRV06IHRydWUsIFtqXTogXCJzaWd2NFwiLCBbY0ZdOiBBLCBbY0ddOiBcIntidWNrZXRBcm4jcmVnaW9ufVwiIH1dIH0sIGJsID0geyBbY3ddOiBGLCBbY3hdOiBbYWRdIH0sIGJtID0geyBbY0FdOiBcImh0dHBzOi8vczMtZmlwcy5kdWFsc3RhY2sue1JlZ2lvbn0ue3BhcnRpdGlvblJlc3VsdCNkbnNTdWZmaXh9L3t1cmlfZW5jb2RlZF9idWNrZXR9XCIsIFtjQl06IGFHLCBbY0hdOiB7fSB9LCBibiA9IHsgW2NBXTogXCJodHRwczovL3MzLWZpcHMue1JlZ2lvbn0ue3BhcnRpdGlvblJlc3VsdCNkbnNTdWZmaXh9L3t1cmlfZW5jb2RlZF9idWNrZXR9XCIsIFtjQl06IGFHLCBbY0hdOiB7fSB9LCBibyA9IHsgW2NBXTogXCJodHRwczovL3MzLmR1YWxzdGFjay57UmVnaW9ufS57cGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH0ve3VyaV9lbmNvZGVkX2J1Y2tldH1cIiwgW2NCXTogYUcsIFtjSF06IHt9IH0sIGJwID0geyBbY0FdOiBRLCBbY0JdOiBhRywgW2NIXToge30gfSwgYnEgPSB7IFtjQV06IFwiaHR0cHM6Ly9zMy57UmVnaW9ufS57cGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH0ve3VyaV9lbmNvZGVkX2J1Y2tldH1cIiwgW2NCXTogYUcsIFtjSF06IHt9IH0sIGJyID0geyBbY3ldOiBcIlVzZU9iamVjdExhbWJkYUVuZHBvaW50XCIgfSwgYnMgPSB7IFtjRF06IFt7IFtjRV06IHRydWUsIFtqXTogXCJzaWd2NFwiLCBbY0ZdOiBKLCBbY0ddOiBcIntSZWdpb259XCIgfV0gfSwgYnQgPSB7IFtjQV06IFwiaHR0cHM6Ly9zMy1maXBzLmR1YWxzdGFjay57UmVnaW9ufS57cGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH1cIiwgW2NCXTogYUcsIFtjSF06IHt9IH0sIGJ1ID0geyBbY0FdOiBcImh0dHBzOi8vczMtZmlwcy57UmVnaW9ufS57cGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH1cIiwgW2NCXTogYUcsIFtjSF06IHt9IH0sIGJ2ID0geyBbY0FdOiBcImh0dHBzOi8vczMuZHVhbHN0YWNrLntSZWdpb259LntwYXJ0aXRpb25SZXN1bHQjZG5zU3VmZml4fVwiLCBbY0JdOiBhRywgW2NIXToge30gfSwgYncgPSB7IFtjQV06IHQsIFtjQl06IGFHLCBbY0hdOiB7fSB9LCBieCA9IHsgW2NBXTogXCJodHRwczovL3MzLntSZWdpb259LntwYXJ0aXRpb25SZXN1bHQjZG5zU3VmZml4fVwiLCBbY0JdOiBhRywgW2NIXToge30gfSwgYnkgPSBbeyBbY3ldOiBcIlJlZ2lvblwiIH1dLCBieiA9IFt7IFtjeV06IFwiRW5kcG9pbnRcIiB9XSwgYkEgPSBbYWRdLCBiQiA9IFtXXSwgYkMgPSBbWiwgYWddLCBiRCA9IFt7IFtjd106IGQsIFtjeF06IFt7IFtjeV06IFwiRGlzYWJsZVMzRXhwcmVzc1Nlc3Npb25BdXRoXCIgfV0gfSwgeyBbY3ddOiBlLCBbY3hdOiBbeyBbY3ldOiBcIkRpc2FibGVTM0V4cHJlc3NTZXNzaW9uQXV0aFwiIH0sIHRydWVdIH1dLCBiRSA9IFthal0sIGJGID0gW2FtXSwgYkcgPSBbYWFdLCBiSCA9IFtYLCBZXSwgYkkgPSBbWCwgYXJdLCBiSiA9IFthcywgWV0sIGJLID0gW2FzLCBhcl0sIGJMID0gW3sgW2N3XTogaywgW2N4XTogW2FkLCA2LCAxNCwgdHJ1ZV0sIFtjel06IFwiczNleHByZXNzQXZhaWxhYmlsaXR5Wm9uZUlkXCIgfSwgeyBbY3ddOiBrLCBbY3hdOiBbYWQsIDE0LCAxNiwgdHJ1ZV0sIFtjel06IFwiczNleHByZXNzQXZhaWxhYmlsaXR5Wm9uZURlbGltXCIgfSwgeyBbY3ddOiBoLCBbY3hdOiBbeyBbY3ldOiBcInMzZXhwcmVzc0F2YWlsYWJpbGl0eVpvbmVEZWxpbVwiIH0sIFwiLS1cIl0gfV0sIGJNID0gW3sgW2N2XTogW1gsIFldLCBbbl06IHsgW2NBXTogXCJodHRwczovL3tCdWNrZXR9LnMzZXhwcmVzcy1maXBzLXtzM2V4cHJlc3NBdmFpbGFiaWxpdHlab25lSWR9LmR1YWxzdGFjay57UmVnaW9ufS57cGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH1cIiwgW2NCXTogYWssIFtjSF06IHt9IH0sIFtjdF06IG4gfSwgeyBbY3ZdOiBiSSwgW25dOiB7IFtjQV06IFwiaHR0cHM6Ly97QnVja2V0fS5zM2V4cHJlc3MtZmlwcy17czNleHByZXNzQXZhaWxhYmlsaXR5Wm9uZUlkfS57UmVnaW9ufS57cGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH1cIiwgW2NCXTogYWssIFtjSF06IHt9IH0sIFtjdF06IG4gfSwgeyBbY3ZdOiBiSiwgW25dOiB7IFtjQV06IFwiaHR0cHM6Ly97QnVja2V0fS5zM2V4cHJlc3Mte3MzZXhwcmVzc0F2YWlsYWJpbGl0eVpvbmVJZH0uZHVhbHN0YWNrLntSZWdpb259LntwYXJ0aXRpb25SZXN1bHQjZG5zU3VmZml4fVwiLCBbY0JdOiBhaywgW2NIXToge30gfSwgW2N0XTogbiB9LCB7IFtjdl06IGJLLCBbbl06IHsgW2NBXTogXCJodHRwczovL3tCdWNrZXR9LnMzZXhwcmVzcy17czNleHByZXNzQXZhaWxhYmlsaXR5Wm9uZUlkfS57UmVnaW9ufS57cGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH1cIiwgW2NCXTogYWssIFtjSF06IHt9IH0sIFtjdF06IG4gfV0sIGJOID0gW3sgW2N3XTogaywgW2N4XTogW2FkLCA2LCAxNSwgdHJ1ZV0sIFtjel06IFwiczNleHByZXNzQXZhaWxhYmlsaXR5Wm9uZUlkXCIgfSwgeyBbY3ddOiBrLCBbY3hdOiBbYWQsIDE1LCAxNywgdHJ1ZV0sIFtjel06IFwiczNleHByZXNzQXZhaWxhYmlsaXR5Wm9uZURlbGltXCIgfSwgeyBbY3ddOiBoLCBbY3hdOiBbeyBbY3ldOiBcInMzZXhwcmVzc0F2YWlsYWJpbGl0eVpvbmVEZWxpbVwiIH0sIFwiLS1cIl0gfV0sIGJPID0gW3sgW2N3XTogaywgW2N4XTogW2FkLCA2LCAxOSwgdHJ1ZV0sIFtjel06IFwiczNleHByZXNzQXZhaWxhYmlsaXR5Wm9uZUlkXCIgfSwgeyBbY3ddOiBrLCBbY3hdOiBbYWQsIDE5LCAyMSwgdHJ1ZV0sIFtjel06IFwiczNleHByZXNzQXZhaWxhYmlsaXR5Wm9uZURlbGltXCIgfSwgeyBbY3ddOiBoLCBbY3hdOiBbeyBbY3ldOiBcInMzZXhwcmVzc0F2YWlsYWJpbGl0eVpvbmVEZWxpbVwiIH0sIFwiLS1cIl0gfV0sIGJQID0gW3sgW2N3XTogaywgW2N4XTogW2FkLCA2LCAyMCwgdHJ1ZV0sIFtjel06IFwiczNleHByZXNzQXZhaWxhYmlsaXR5Wm9uZUlkXCIgfSwgeyBbY3ddOiBrLCBbY3hdOiBbYWQsIDIwLCAyMiwgdHJ1ZV0sIFtjel06IFwiczNleHByZXNzQXZhaWxhYmlsaXR5Wm9uZURlbGltXCIgfSwgeyBbY3ddOiBoLCBbY3hdOiBbeyBbY3ldOiBcInMzZXhwcmVzc0F2YWlsYWJpbGl0eVpvbmVEZWxpbVwiIH0sIFwiLS1cIl0gfV0sIGJRID0gW3sgW2N3XTogaywgW2N4XTogW2FkLCA2LCAyNiwgdHJ1ZV0sIFtjel06IFwiczNleHByZXNzQXZhaWxhYmlsaXR5Wm9uZUlkXCIgfSwgeyBbY3ddOiBrLCBbY3hdOiBbYWQsIDI2LCAyOCwgdHJ1ZV0sIFtjel06IFwiczNleHByZXNzQXZhaWxhYmlsaXR5Wm9uZURlbGltXCIgfSwgeyBbY3ddOiBoLCBbY3hdOiBbeyBbY3ldOiBcInMzZXhwcmVzc0F2YWlsYWJpbGl0eVpvbmVEZWxpbVwiIH0sIFwiLS1cIl0gfV0sIGJSID0gW3sgW2N2XTogW1gsIFldLCBbbl06IHsgW2NBXTogXCJodHRwczovL3tCdWNrZXR9LnMzZXhwcmVzcy1maXBzLXtzM2V4cHJlc3NBdmFpbGFiaWxpdHlab25lSWR9LmR1YWxzdGFjay57UmVnaW9ufS57cGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH1cIiwgW2NCXTogeyBbY0NdOiBcIlMzRXhwcmVzc1wiLCBbY0RdOiBbeyBbY0VdOiB0cnVlLCBbal06IFwic2lndjQtczNleHByZXNzXCIsIFtjRl06IFwiczNleHByZXNzXCIsIFtjR106IFwie1JlZ2lvbn1cIiB9XSB9LCBbY0hdOiB7fSB9LCBbY3RdOiBuIH0sIHsgW2N2XTogYkksIFtuXTogeyBbY0FdOiBcImh0dHBzOi8ve0J1Y2tldH0uczNleHByZXNzLWZpcHMte3MzZXhwcmVzc0F2YWlsYWJpbGl0eVpvbmVJZH0ue1JlZ2lvbn0ue3BhcnRpdGlvblJlc3VsdCNkbnNTdWZmaXh9XCIsIFtjQl06IHsgW2NDXTogXCJTM0V4cHJlc3NcIiwgW2NEXTogW3sgW2NFXTogdHJ1ZSwgW2pdOiBcInNpZ3Y0LXMzZXhwcmVzc1wiLCBbY0ZdOiBcInMzZXhwcmVzc1wiLCBbY0ddOiBcIntSZWdpb259XCIgfV0gfSwgW2NIXToge30gfSwgW2N0XTogbiB9LCB7IFtjdl06IGJKLCBbbl06IHsgW2NBXTogXCJodHRwczovL3tCdWNrZXR9LnMzZXhwcmVzcy17czNleHByZXNzQXZhaWxhYmlsaXR5Wm9uZUlkfS5kdWFsc3RhY2sue1JlZ2lvbn0ue3BhcnRpdGlvblJlc3VsdCNkbnNTdWZmaXh9XCIsIFtjQl06IHsgW2NDXTogXCJTM0V4cHJlc3NcIiwgW2NEXTogW3sgW2NFXTogdHJ1ZSwgW2pdOiBcInNpZ3Y0LXMzZXhwcmVzc1wiLCBbY0ZdOiBcInMzZXhwcmVzc1wiLCBbY0ddOiBcIntSZWdpb259XCIgfV0gfSwgW2NIXToge30gfSwgW2N0XTogbiB9LCB7IFtjdl06IGJLLCBbbl06IHsgW2NBXTogXCJodHRwczovL3tCdWNrZXR9LnMzZXhwcmVzcy17czNleHByZXNzQXZhaWxhYmlsaXR5Wm9uZUlkfS57UmVnaW9ufS57cGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH1cIiwgW2NCXTogeyBbY0NdOiBcIlMzRXhwcmVzc1wiLCBbY0RdOiBbeyBbY0VdOiB0cnVlLCBbal06IFwic2lndjQtczNleHByZXNzXCIsIFtjRl06IFwiczNleHByZXNzXCIsIFtjR106IFwie1JlZ2lvbn1cIiB9XSB9LCBbY0hdOiB7fSB9LCBbY3RdOiBuIH1dLCBiUyA9IFthZCwgMCwgNywgdHJ1ZV0sIGJUID0gW3sgW2N3XTogaywgW2N4XTogW2FkLCA3LCAxNSwgdHJ1ZV0sIFtjel06IFwiczNleHByZXNzQXZhaWxhYmlsaXR5Wm9uZUlkXCIgfSwgeyBbY3ddOiBrLCBbY3hdOiBbYWQsIDE1LCAxNywgdHJ1ZV0sIFtjel06IFwiczNleHByZXNzQXZhaWxhYmlsaXR5Wm9uZURlbGltXCIgfSwgeyBbY3ddOiBoLCBbY3hdOiBbeyBbY3ldOiBcInMzZXhwcmVzc0F2YWlsYWJpbGl0eVpvbmVEZWxpbVwiIH0sIFwiLS1cIl0gfV0sIGJVID0gW3sgW2N3XTogaywgW2N4XTogW2FkLCA3LCAxNiwgdHJ1ZV0sIFtjel06IFwiczNleHByZXNzQXZhaWxhYmlsaXR5Wm9uZUlkXCIgfSwgeyBbY3ddOiBrLCBbY3hdOiBbYWQsIDE2LCAxOCwgdHJ1ZV0sIFtjel06IFwiczNleHByZXNzQXZhaWxhYmlsaXR5Wm9uZURlbGltXCIgfSwgeyBbY3ddOiBoLCBbY3hdOiBbeyBbY3ldOiBcInMzZXhwcmVzc0F2YWlsYWJpbGl0eVpvbmVEZWxpbVwiIH0sIFwiLS1cIl0gfV0sIGJWID0gW3sgW2N3XTogaywgW2N4XTogW2FkLCA3LCAyMCwgdHJ1ZV0sIFtjel06IFwiczNleHByZXNzQXZhaWxhYmlsaXR5Wm9uZUlkXCIgfSwgeyBbY3ddOiBrLCBbY3hdOiBbYWQsIDIwLCAyMiwgdHJ1ZV0sIFtjel06IFwiczNleHByZXNzQXZhaWxhYmlsaXR5Wm9uZURlbGltXCIgfSwgeyBbY3ddOiBoLCBbY3hdOiBbeyBbY3ldOiBcInMzZXhwcmVzc0F2YWlsYWJpbGl0eVpvbmVEZWxpbVwiIH0sIFwiLS1cIl0gfV0sIGJXID0gW3sgW2N3XTogaywgW2N4XTogW2FkLCA3LCAyMSwgdHJ1ZV0sIFtjel06IFwiczNleHByZXNzQXZhaWxhYmlsaXR5Wm9uZUlkXCIgfSwgeyBbY3ddOiBrLCBbY3hdOiBbYWQsIDIxLCAyMywgdHJ1ZV0sIFtjel06IFwiczNleHByZXNzQXZhaWxhYmlsaXR5Wm9uZURlbGltXCIgfSwgeyBbY3ddOiBoLCBbY3hdOiBbeyBbY3ldOiBcInMzZXhwcmVzc0F2YWlsYWJpbGl0eVpvbmVEZWxpbVwiIH0sIFwiLS1cIl0gfV0sIGJYID0gW3sgW2N3XTogaywgW2N4XTogW2FkLCA3LCAyNywgdHJ1ZV0sIFtjel06IFwiczNleHByZXNzQXZhaWxhYmlsaXR5Wm9uZUlkXCIgfSwgeyBbY3ddOiBrLCBbY3hdOiBbYWQsIDI3LCAyOSwgdHJ1ZV0sIFtjel06IFwiczNleHByZXNzQXZhaWxhYmlsaXR5Wm9uZURlbGltXCIgfSwgeyBbY3ddOiBoLCBbY3hdOiBbeyBbY3ldOiBcInMzZXhwcmVzc0F2YWlsYWJpbGl0eVpvbmVEZWxpbVwiIH0sIFwiLS1cIl0gfV0sIGJZID0gW2FjXSwgYlogPSBbeyBbY3ddOiB5LCBbY3hdOiBbeyBbY3ldOiB4IH0sIGZhbHNlXSB9XSwgY2EgPSBbeyBbY3ddOiBoLCBbY3hdOiBbeyBbY3ldOiB2IH0sIFwiYmV0YVwiXSB9XSwgY2IgPSBbXCIqXCJdLCBjYyA9IFt7IFtjd106IHksIFtjeF06IFt7IFtjeV06IFwiUmVnaW9uXCIgfSwgZmFsc2VdIH1dLCBjZCA9IFt7IFtjd106IGgsIFtjeF06IFt7IFtjeV06IFwiUmVnaW9uXCIgfSwgXCJ1cy1lYXN0LTFcIl0gfV0sIGNlID0gW3sgW2N3XTogaCwgW2N4XTogW2FULCBLXSB9XSwgY2YgPSBbeyBbY3ddOiBpLCBbY3hdOiBbYVMsIFwicmVzb3VyY2VJZFsxXVwiXSwgW2N6XTogTCB9LCB7IFtjd106IHIsIFtjeF06IFt7IFtjd106IGgsIFtjeF06IFthViwgSV0gfV0gfV0sIGNnID0gW2FTLCBcInJlc291cmNlSWRbMV1cIl0sIGNoID0gW1ldLCBjaSA9IFt7IFtjd106IHIsIFtjeF06IFt7IFtjd106IGgsIFtjeF06IFt7IFtjd106IGksIFtjeF06IFthUywgXCJyZWdpb25cIl0gfSwgSV0gfV0gfV0sIGNqID0gW3sgW2N3XTogciwgW2N4XTogW3sgW2N3XTogZCwgW2N4XTogW3sgW2N3XTogaSwgW2N4XTogW2FTLCBcInJlc291cmNlSWRbMl1cIl0gfV0gfV0gfV0sIGNrID0gW2FTLCBcInJlc291cmNlSWRbMl1cIl0sIGNsID0gW3sgW2N3XTogZywgW2N4XTogW3sgW2N3XTogaSwgW2N4XTogW2FTLCBcInJlZ2lvblwiXSB9XSwgW2N6XTogXCJidWNrZXRQYXJ0aXRpb25cIiB9XSwgY20gPSBbeyBbY3ddOiBoLCBbY3hdOiBbYmEsIHsgW2N3XTogaSwgW2N4XTogW3sgW2N5XTogXCJwYXJ0aXRpb25SZXN1bHRcIiB9LCBqXSB9XSB9XSwgY24gPSBbeyBbY3ddOiB5LCBbY3hdOiBbeyBbY3ddOiBpLCBbY3hdOiBbYVMsIFwicmVnaW9uXCJdIH0sIHRydWVdIH1dLCBjbyA9IFt7IFtjd106IHksIFtjeF06IFtiYiwgZmFsc2VdIH1dLCBjcCA9IFt7IFtjd106IHksIFtjeF06IFthViwgZmFsc2VdIH1dLCBjcSA9IFtYXSwgY3IgPSBbeyBbY3ddOiB5LCBbY3hdOiBbeyBbY3ldOiBcIlJlZ2lvblwiIH0sIHRydWVdIH1dO1xuY29uc3QgX2RhdGEgPSB7IHZlcnNpb246IFwiMS4wXCIsIHBhcmFtZXRlcnM6IHsgQnVja2V0OiBULCBSZWdpb246IFQsIFVzZUZJUFM6IFUsIFVzZUR1YWxTdGFjazogVSwgRW5kcG9pbnQ6IFQsIEZvcmNlUGF0aFN0eWxlOiBVLCBBY2NlbGVyYXRlOiBVLCBVc2VHbG9iYWxFbmRwb2ludDogVSwgVXNlT2JqZWN0TGFtYmRhRW5kcG9pbnQ6IFYsIEtleTogVCwgUHJlZml4OiBULCBDb3B5U291cmNlOiBULCBEaXNhYmxlQWNjZXNzUG9pbnRzOiBWLCBEaXNhYmxlTXVsdGlSZWdpb25BY2Nlc3NQb2ludHM6IFUsIFVzZUFyblJlZ2lvbjogViwgVXNlUzNFeHByZXNzQ29udHJvbEVuZHBvaW50OiBWLCBEaXNhYmxlUzNFeHByZXNzU2Vzc2lvbkF1dGg6IFYgfSwgW2N1XTogW3sgW2N2XTogW3sgW2N3XTogZCwgW2N4XTogYnkgfV0sIFtjdV06IFt7IFtjdl06IFtXLCBYXSwgZXJyb3I6IFwiQWNjZWxlcmF0ZSBjYW5ub3QgYmUgdXNlZCB3aXRoIEZJUFNcIiwgW2N0XTogZiB9LCB7IFtjdl06IFtZLCBaXSwgZXJyb3I6IFwiQ2Fubm90IHNldCBkdWFsLXN0YWNrIGluIGNvbWJpbmF0aW9uIHdpdGggYSBjdXN0b20gZW5kcG9pbnQuXCIsIFtjdF06IGYgfSwgeyBbY3ZdOiBbWiwgWF0sIGVycm9yOiBcIkEgY3VzdG9tIGVuZHBvaW50IGNhbm5vdCBiZSBjb21iaW5lZCB3aXRoIEZJUFNcIiwgW2N0XTogZiB9LCB7IFtjdl06IFtaLCBXXSwgZXJyb3I6IFwiQSBjdXN0b20gZW5kcG9pbnQgY2Fubm90IGJlIGNvbWJpbmVkIHdpdGggUzMgQWNjZWxlcmF0ZVwiLCBbY3RdOiBmIH0sIHsgW2N2XTogW1gsIGFhLCBhYl0sIGVycm9yOiBcIlBhcnRpdGlvbiBkb2VzIG5vdCBzdXBwb3J0IEZJUFNcIiwgW2N0XTogZiB9LCB7IFtjdl06IFthYywgeyBbY3ddOiBrLCBbY3hdOiBbYWQsIDAsIGEsIGNdLCBbY3pdOiBsIH0sIHsgW2N3XTogaCwgW2N4XTogW3sgW2N5XTogbCB9LCBcIi0teC1zM1wiXSB9XSwgW2N1XTogW2FlLCBhZiwgeyBbY3ZdOiBbYW8sIGFwXSwgW2N1XTogW3sgW2N2XTogYkcsIFtjdV06IFt7IFtjdl06IFthaiwgYXFdLCBbY3VdOiBbeyBbY3ZdOiBiSCwgZW5kcG9pbnQ6IHsgW2NBXTogXCJodHRwczovL3MzZXhwcmVzcy1jb250cm9sLWZpcHMuZHVhbHN0YWNrLntSZWdpb259LntwYXJ0aXRpb25SZXN1bHQjZG5zU3VmZml4fS97dXJpX2VuY29kZWRfYnVja2V0fVwiLCBbY0JdOiBhaywgW2NIXTogYWwgfSwgW2N0XTogbiB9LCB7IFtjdl06IGJJLCBlbmRwb2ludDogeyBbY0FdOiBcImh0dHBzOi8vczNleHByZXNzLWNvbnRyb2wtZmlwcy57UmVnaW9ufS57cGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH0ve3VyaV9lbmNvZGVkX2J1Y2tldH1cIiwgW2NCXTogYWssIFtjSF06IGFsIH0sIFtjdF06IG4gfSwgeyBbY3ZdOiBiSiwgZW5kcG9pbnQ6IHsgW2NBXTogXCJodHRwczovL3MzZXhwcmVzcy1jb250cm9sLmR1YWxzdGFjay57UmVnaW9ufS57cGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH0ve3VyaV9lbmNvZGVkX2J1Y2tldH1cIiwgW2NCXTogYWssIFtjSF06IGFsIH0sIFtjdF06IG4gfSwgeyBbY3ZdOiBiSywgZW5kcG9pbnQ6IHsgW2NBXTogXCJodHRwczovL3MzZXhwcmVzcy1jb250cm9sLntSZWdpb259LntwYXJ0aXRpb25SZXN1bHQjZG5zU3VmZml4fS97dXJpX2VuY29kZWRfYnVja2V0fVwiLCBbY0JdOiBhaywgW2NIXTogYWwgfSwgW2N0XTogbiB9XSwgW2N0XTogbyB9XSwgW2N0XTogbyB9XSwgW2N0XTogbyB9LCB7IFtjdl06IGJGLCBbY3VdOiBbeyBbY3ZdOiBiRywgW2N1XTogW3sgW2N2XTogYkQsIFtjdV06IFt7IFtjdl06IGJMLCBbY3VdOiBiTSwgW2N0XTogbyB9LCB7IFtjdl06IGJOLCBbY3VdOiBiTSwgW2N0XTogbyB9LCB7IFtjdl06IGJPLCBbY3VdOiBiTSwgW2N0XTogbyB9LCB7IFtjdl06IGJQLCBbY3VdOiBiTSwgW2N0XTogbyB9LCB7IFtjdl06IGJRLCBbY3VdOiBiTSwgW2N0XTogbyB9LCBhdF0sIFtjdF06IG8gfSwgeyBbY3ZdOiBiTCwgW2N1XTogYlIsIFtjdF06IG8gfSwgeyBbY3ZdOiBiTiwgW2N1XTogYlIsIFtjdF06IG8gfSwgeyBbY3ZdOiBiTywgW2N1XTogYlIsIFtjdF06IG8gfSwgeyBbY3ZdOiBiUCwgW2N1XTogYlIsIFtjdF06IG8gfSwgeyBbY3ZdOiBiUSwgW2N1XTogYlIsIFtjdF06IG8gfSwgYXRdLCBbY3RdOiBvIH1dLCBbY3RdOiBvIH0sIGFuXSwgW2N0XTogbyB9LCB7IFtjdl06IFthYywgeyBbY3ddOiBrLCBbY3hdOiBiUywgW2N6XTogcyB9LCB7IFtjd106IGgsIFtjeF06IFt7IFtjeV06IHMgfSwgXCItLXhhLXMzXCJdIH1dLCBbY3VdOiBbYWUsIGFmLCB7IFtjdl06IGJGLCBbY3VdOiBbeyBbY3ZdOiBiRywgW2N1XTogW3sgW2N2XTogYkQsIFtjdV06IFt7IFtjdl06IGJULCBbY3VdOiBiTSwgW2N0XTogbyB9LCB7IFtjdl06IGJVLCBbY3VdOiBiTSwgW2N0XTogbyB9LCB7IFtjdl06IGJWLCBbY3VdOiBiTSwgW2N0XTogbyB9LCB7IFtjdl06IGJXLCBbY3VdOiBiTSwgW2N0XTogbyB9LCB7IFtjdl06IGJYLCBbY3VdOiBiTSwgW2N0XTogbyB9LCBhdF0sIFtjdF06IG8gfSwgeyBbY3ZdOiBiVCwgW2N1XTogYlIsIFtjdF06IG8gfSwgeyBbY3ZdOiBiVSwgW2N1XTogYlIsIFtjdF06IG8gfSwgeyBbY3ZdOiBiViwgW2N1XTogYlIsIFtjdF06IG8gfSwgeyBbY3ZdOiBiVywgW2N1XTogYlIsIFtjdF06IG8gfSwgeyBbY3ZdOiBiWCwgW2N1XTogYlIsIFtjdF06IG8gfSwgYXRdLCBbY3RdOiBvIH1dLCBbY3RdOiBvIH0sIGFuXSwgW2N0XTogbyB9LCB7IFtjdl06IFthdSwgYW8sIGFwXSwgW2N1XTogW3sgW2N2XTogYkcsIFtjdV06IFt7IFtjdl06IGJDLCBlbmRwb2ludDogeyBbY0FdOiB0LCBbY0JdOiBhaywgW2NIXTogYWwgfSwgW2N0XTogbiB9LCB7IFtjdl06IGJILCBlbmRwb2ludDogeyBbY0FdOiBcImh0dHBzOi8vczNleHByZXNzLWNvbnRyb2wtZmlwcy5kdWFsc3RhY2sue1JlZ2lvbn0ue3BhcnRpdGlvblJlc3VsdCNkbnNTdWZmaXh9XCIsIFtjQl06IGFrLCBbY0hdOiBhbCB9LCBbY3RdOiBuIH0sIHsgW2N2XTogYkksIGVuZHBvaW50OiB7IFtjQV06IFwiaHR0cHM6Ly9zM2V4cHJlc3MtY29udHJvbC1maXBzLntSZWdpb259LntwYXJ0aXRpb25SZXN1bHQjZG5zU3VmZml4fVwiLCBbY0JdOiBhaywgW2NIXTogYWwgfSwgW2N0XTogbiB9LCB7IFtjdl06IGJKLCBlbmRwb2ludDogeyBbY0FdOiBcImh0dHBzOi8vczNleHByZXNzLWNvbnRyb2wuZHVhbHN0YWNrLntSZWdpb259LntwYXJ0aXRpb25SZXN1bHQjZG5zU3VmZml4fVwiLCBbY0JdOiBhaywgW2NIXTogYWwgfSwgW2N0XTogbiB9LCB7IFtjdl06IGJLLCBlbmRwb2ludDogeyBbY0FdOiBcImh0dHBzOi8vczNleHByZXNzLWNvbnRyb2wue1JlZ2lvbn0ue3BhcnRpdGlvblJlc3VsdCNkbnNTdWZmaXh9XCIsIFtjQl06IGFrLCBbY0hdOiBhbCB9LCBbY3RdOiBuIH1dLCBbY3RdOiBvIH1dLCBbY3RdOiBvIH0sIHsgW2N2XTogW2FjLCB7IFtjd106IGssIFtjeF06IFthZCwgNDksIDUwLCBjXSwgW2N6XTogdSB9LCB7IFtjd106IGssIFtjeF06IFthZCwgOCwgMTIsIGNdLCBbY3pdOiB2IH0sIHsgW2N3XTogaywgW2N4XTogYlMsIFtjel06IHcgfSwgeyBbY3ddOiBrLCBbY3hdOiBbYWQsIDMyLCA0OSwgY10sIFtjel06IHggfSwgeyBbY3ddOiBnLCBbY3hdOiBieSwgW2N6XTogXCJyZWdpb25QYXJ0aXRpb25cIiB9LCB7IFtjd106IGgsIFtjeF06IFt7IFtjeV06IHcgfSwgXCItLW9wLXMzXCJdIH1dLCBbY3VdOiBbeyBbY3ZdOiBiWiwgW2N1XTogW3sgW2N2XTogW3sgW2N3XTogaCwgW2N4XTogW2F2LCBcImVcIl0gfV0sIFtjdV06IFt7IFtjdl06IGNhLCBbY3VdOiBbYXcsIHsgW2N2XTogYkMsIGVuZHBvaW50OiB7IFtjQV06IFwiaHR0cHM6Ly97QnVja2V0fS5lYzIue3VybCNhdXRob3JpdHl9XCIsIFtjQl06IGF4LCBbY0hdOiBhbCB9LCBbY3RdOiBuIH1dLCBbY3RdOiBvIH0sIHsgZW5kcG9pbnQ6IHsgW2NBXTogXCJodHRwczovL3tCdWNrZXR9LmVjMi5zMy1vdXRwb3N0cy57UmVnaW9ufS57cmVnaW9uUGFydGl0aW9uI2Ruc1N1ZmZpeH1cIiwgW2NCXTogYXgsIFtjSF06IGFsIH0sIFtjdF06IG4gfV0sIFtjdF06IG8gfSwgeyBbY3ZdOiBbeyBbY3ddOiBoLCBbY3hdOiBbYXYsIFwib1wiXSB9XSwgW2N1XTogW3sgW2N2XTogY2EsIFtjdV06IFthdywgeyBbY3ZdOiBiQywgZW5kcG9pbnQ6IHsgW2NBXTogXCJodHRwczovL3tCdWNrZXR9Lm9wLXtvdXRwb3N0SWR9Lnt1cmwjYXV0aG9yaXR5fVwiLCBbY0JdOiBheCwgW2NIXTogYWwgfSwgW2N0XTogbiB9XSwgW2N0XTogbyB9LCB7IGVuZHBvaW50OiB7IFtjQV06IFwiaHR0cHM6Ly97QnVja2V0fS5vcC17b3V0cG9zdElkfS5zMy1vdXRwb3N0cy57UmVnaW9ufS57cmVnaW9uUGFydGl0aW9uI2Ruc1N1ZmZpeH1cIiwgW2NCXTogYXgsIFtjSF06IGFsIH0sIFtjdF06IG4gfV0sIFtjdF06IG8gfSwgeyBlcnJvcjogXCJVbnJlY29nbml6ZWQgaGFyZHdhcmUgdHlwZTogXFxcIkV4cGVjdGVkIGhhcmR3YXJlIHR5cGUgbyBvciBlIGJ1dCBnb3Qge2hhcmR3YXJlVHlwZX1cXFwiXCIsIFtjdF06IGYgfV0sIFtjdF06IG8gfSwgeyBlcnJvcjogXCJJbnZhbGlkIEFSTjogVGhlIG91dHBvc3QgSWQgbXVzdCBvbmx5IGNvbnRhaW4gYS16LCBBLVosIDAtOSBhbmQgYC1gLlwiLCBbY3RdOiBmIH1dLCBbY3RdOiBvIH0sIHsgW2N2XTogYlksIFtjdV06IFt7IFtjdl06IFtaLCB7IFtjd106IHIsIFtjeF06IFt7IFtjd106IGQsIFtjeF06IFt7IFtjd106IG0sIFtjeF06IGJ6IH1dIH1dIH1dLCBlcnJvcjogXCJDdXN0b20gZW5kcG9pbnQgYHtFbmRwb2ludH1gIHdhcyBub3QgYSB2YWxpZCBVUklcIiwgW2N0XTogZiB9LCB7IFtjdl06IFtheSwgYW1dLCBbY3VdOiBbeyBbY3ZdOiBiRywgW2N1XTogW3sgW2N2XTogY2MsIFtjdV06IFt7IFtjdl06IFtXLCBhYl0sIGVycm9yOiBcIlMzIEFjY2VsZXJhdGUgY2Fubm90IGJlIHVzZWQgaW4gdGhpcyByZWdpb25cIiwgW2N0XTogZiB9LCB7IFtjdl06IFtZLCBYLCBhQSwgYXEsIGFCXSwgZW5kcG9pbnQ6IHsgW2NBXTogXCJodHRwczovL3tCdWNrZXR9LnMzLWZpcHMuZHVhbHN0YWNrLnVzLWVhc3QtMS57cGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH1cIiwgW2NCXTogYUMsIFtjSF06IGFsIH0sIFtjdF06IG4gfSwgeyBbY3ZdOiBbWSwgWCwgYUEsIGFxLCBhRCwgYUVdLCBbY3VdOiBbeyBlbmRwb2ludDogYUYsIFtjdF06IG4gfV0sIFtjdF06IG8gfSwgeyBbY3ZdOiBbWSwgWCwgYUEsIGFxLCBhRCwgYUhdLCBlbmRwb2ludDogYUYsIFtjdF06IG4gfSwgeyBbY3ZdOiBbYXIsIFgsIGFBLCBhcSwgYUJdLCBlbmRwb2ludDogeyBbY0FdOiBcImh0dHBzOi8ve0J1Y2tldH0uczMtZmlwcy51cy1lYXN0LTEue3BhcnRpdGlvblJlc3VsdCNkbnNTdWZmaXh9XCIsIFtjQl06IGFDLCBbY0hdOiBhbCB9LCBbY3RdOiBuIH0sIHsgW2N2XTogW2FyLCBYLCBhQSwgYXEsIGFELCBhRV0sIFtjdV06IFt7IGVuZHBvaW50OiBhSSwgW2N0XTogbiB9XSwgW2N0XTogbyB9LCB7IFtjdl06IFthciwgWCwgYUEsIGFxLCBhRCwgYUhdLCBlbmRwb2ludDogYUksIFtjdF06IG4gfSwgeyBbY3ZdOiBbWSwgYXMsIFcsIGFxLCBhQl0sIGVuZHBvaW50OiB7IFtjQV06IFwiaHR0cHM6Ly97QnVja2V0fS5zMy1hY2NlbGVyYXRlLmR1YWxzdGFjay51cy1lYXN0LTEue3BhcnRpdGlvblJlc3VsdCNkbnNTdWZmaXh9XCIsIFtjQl06IGFDLCBbY0hdOiBhbCB9LCBbY3RdOiBuIH0sIHsgW2N2XTogW1ksIGFzLCBXLCBhcSwgYUQsIGFFXSwgW2N1XTogW3sgZW5kcG9pbnQ6IGFKLCBbY3RdOiBuIH1dLCBbY3RdOiBvIH0sIHsgW2N2XTogW1ksIGFzLCBXLCBhcSwgYUQsIGFIXSwgZW5kcG9pbnQ6IGFKLCBbY3RdOiBuIH0sIHsgW2N2XTogW1ksIGFzLCBhQSwgYXEsIGFCXSwgZW5kcG9pbnQ6IHsgW2NBXTogXCJodHRwczovL3tCdWNrZXR9LnMzLmR1YWxzdGFjay51cy1lYXN0LTEue3BhcnRpdGlvblJlc3VsdCNkbnNTdWZmaXh9XCIsIFtjQl06IGFDLCBbY0hdOiBhbCB9LCBbY3RdOiBuIH0sIHsgW2N2XTogW1ksIGFzLCBhQSwgYXEsIGFELCBhRV0sIFtjdV06IFt7IGVuZHBvaW50OiBhSywgW2N0XTogbiB9XSwgW2N0XTogbyB9LCB7IFtjdl06IFtZLCBhcywgYUEsIGFxLCBhRCwgYUhdLCBlbmRwb2ludDogYUssIFtjdF06IG4gfSwgeyBbY3ZdOiBbYXIsIGFzLCBhQSwgWiwgYWcsIGFoLCBhQl0sIGVuZHBvaW50OiB7IFtjQV06IEMsIFtjQl06IGFDLCBbY0hdOiBhbCB9LCBbY3RdOiBuIH0sIHsgW2N2XTogW2FyLCBhcywgYUEsIFosIGFnLCBhTCwgYUJdLCBlbmRwb2ludDogeyBbY0FdOiBxLCBbY0JdOiBhQywgW2NIXTogYWwgfSwgW2N0XTogbiB9LCB7IFtjdl06IFthciwgYXMsIGFBLCBaLCBhZywgYWgsIGFELCBhRV0sIFtjdV06IFt7IFtjdl06IGNkLCBlbmRwb2ludDogYU0sIFtjdF06IG4gfSwgeyBlbmRwb2ludDogYU0sIFtjdF06IG4gfV0sIFtjdF06IG8gfSwgeyBbY3ZdOiBbYXIsIGFzLCBhQSwgWiwgYWcsIGFMLCBhRCwgYUVdLCBbY3VdOiBbeyBbY3ZdOiBjZCwgZW5kcG9pbnQ6IGFOLCBbY3RdOiBuIH0sIGFPXSwgW2N0XTogbyB9LCB7IFtjdl06IFthciwgYXMsIGFBLCBaLCBhZywgYWgsIGFELCBhSF0sIGVuZHBvaW50OiBhTSwgW2N0XTogbiB9LCB7IFtjdl06IFthciwgYXMsIGFBLCBaLCBhZywgYUwsIGFELCBhSF0sIGVuZHBvaW50OiBhTiwgW2N0XTogbiB9LCB7IFtjdl06IFthciwgYXMsIFcsIGFxLCBhQl0sIGVuZHBvaW50OiB7IFtjQV06IEQsIFtjQl06IGFDLCBbY0hdOiBhbCB9LCBbY3RdOiBuIH0sIHsgW2N2XTogW2FyLCBhcywgVywgYXEsIGFELCBhRV0sIFtjdV06IFt7IFtjdl06IGNkLCBlbmRwb2ludDogYVAsIFtjdF06IG4gfSwgeyBlbmRwb2ludDogYVAsIFtjdF06IG4gfV0sIFtjdF06IG8gfSwgeyBbY3ZdOiBbYXIsIGFzLCBXLCBhcSwgYUQsIGFIXSwgZW5kcG9pbnQ6IGFQLCBbY3RdOiBuIH0sIHsgW2N2XTogW2FyLCBhcywgYUEsIGFxLCBhQl0sIGVuZHBvaW50OiB7IFtjQV06IEUsIFtjQl06IGFDLCBbY0hdOiBhbCB9LCBbY3RdOiBuIH0sIHsgW2N2XTogW2FyLCBhcywgYUEsIGFxLCBhRCwgYUVdLCBbY3VdOiBbeyBbY3ZdOiBjZCwgZW5kcG9pbnQ6IHsgW2NBXTogRSwgW2NCXTogYUcsIFtjSF06IGFsIH0sIFtjdF06IG4gfSwgeyBlbmRwb2ludDogYVEsIFtjdF06IG4gfV0sIFtjdF06IG8gfSwgeyBbY3ZdOiBbYXIsIGFzLCBhQSwgYXEsIGFELCBhSF0sIGVuZHBvaW50OiBhUSwgW2N0XTogbiB9XSwgW2N0XTogbyB9LCBhUl0sIFtjdF06IG8gfV0sIFtjdF06IG8gfSwgeyBbY3ZdOiBbWiwgYWcsIHsgW2N3XTogaCwgW2N4XTogW3sgW2N3XTogaSwgW2N4XTogW2FpLCBcInNjaGVtZVwiXSB9LCBcImh0dHBcIl0gfSwgeyBbY3ddOiBwLCBbY3hdOiBbYWQsIGNdIH0sIGF5LCBhcywgYXIsIGFBXSwgW2N1XTogW3sgW2N2XTogYkcsIFtjdV06IFt7IFtjdl06IGNjLCBbY3VdOiBbYU9dLCBbY3RdOiBvIH0sIGFSXSwgW2N0XTogbyB9XSwgW2N0XTogbyB9LCB7IFtjdl06IFtheSwgeyBbY3ddOiBGLCBbY3hdOiBiQSwgW2N6XTogRyB9XSwgW2N1XTogW3sgW2N2XTogW3sgW2N3XTogaSwgW2N4XTogW2FTLCBcInJlc291cmNlSWRbMF1cIl0sIFtjel06IEggfSwgeyBbY3ddOiByLCBbY3hdOiBbeyBbY3ddOiBoLCBbY3hdOiBbYVQsIEldIH1dIH1dLCBbY3VdOiBbeyBbY3ZdOiBbeyBbY3ddOiBoLCBbY3hdOiBbYVUsIEpdIH1dLCBbY3VdOiBbeyBbY3ZdOiBjZSwgW2N1XTogW3sgW2N2XTogY2YsIFtjdV06IFthVywgYVgsIHsgW2N2XTogY2ksIFtjdV06IFthWSwgeyBbY3ZdOiBjaiwgW2N1XTogW2FaLCB7IFtjdl06IGNsLCBbY3VdOiBbeyBbY3ZdOiBiRywgW2N1XTogW3sgW2N2XTogY20sIFtjdV06IFt7IFtjdl06IGNuLCBbY3VdOiBbeyBbY3ZdOiBbeyBbY3ddOiBoLCBbY3hdOiBbYmIsIEldIH1dLCBlcnJvcjogXCJJbnZhbGlkIEFSTjogTWlzc2luZyBhY2NvdW50IGlkXCIsIFtjdF06IGYgfSwgeyBbY3ZdOiBjbywgW2N1XTogW3sgW2N2XTogY3AsIFtjdV06IFt7IFtjdl06IGJDLCBlbmRwb2ludDogeyBbY0FdOiBNLCBbY0JdOiBiYywgW2NIXTogYWwgfSwgW2N0XTogbiB9LCB7IFtjdl06IGNxLCBlbmRwb2ludDogeyBbY0FdOiBcImh0dHBzOi8ve2FjY2Vzc1BvaW50TmFtZX0te2J1Y2tldEFybiNhY2NvdW50SWR9LnMzLW9iamVjdC1sYW1iZGEtZmlwcy57YnVja2V0QXJuI3JlZ2lvbn0ue2J1Y2tldFBhcnRpdGlvbiNkbnNTdWZmaXh9XCIsIFtjQl06IGJjLCBbY0hdOiBhbCB9LCBbY3RdOiBuIH0sIHsgZW5kcG9pbnQ6IHsgW2NBXTogXCJodHRwczovL3thY2Nlc3NQb2ludE5hbWV9LXtidWNrZXRBcm4jYWNjb3VudElkfS5zMy1vYmplY3QtbGFtYmRhLntidWNrZXRBcm4jcmVnaW9ufS57YnVja2V0UGFydGl0aW9uI2Ruc1N1ZmZpeH1cIiwgW2NCXTogYmMsIFtjSF06IGFsIH0sIFtjdF06IG4gfV0sIFtjdF06IG8gfSwgYmRdLCBbY3RdOiBvIH0sIGJlXSwgW2N0XTogbyB9LCBiZl0sIFtjdF06IG8gfSwgYmddLCBbY3RdOiBvIH1dLCBbY3RdOiBvIH1dLCBbY3RdOiBvIH0sIGJoXSwgW2N0XTogbyB9LCB7IGVycm9yOiBcIkludmFsaWQgQVJOOiBidWNrZXQgQVJOIGlzIG1pc3NpbmcgYSByZWdpb25cIiwgW2N0XTogZiB9XSwgW2N0XTogbyB9LCBiaV0sIFtjdF06IG8gfSwgeyBlcnJvcjogXCJJbnZhbGlkIEFSTjogT2JqZWN0IExhbWJkYSBBUk5zIG9ubHkgc3VwcG9ydCBgYWNjZXNzcG9pbnRgIGFybiB0eXBlcywgYnV0IGZvdW5kOiBge2FyblR5cGV9YFwiLCBbY3RdOiBmIH1dLCBbY3RdOiBvIH0sIHsgW2N2XTogY2UsIFtjdV06IFt7IFtjdl06IGNmLCBbY3VdOiBbeyBbY3ZdOiBjaSwgW2N1XTogW3sgW2N2XTogY2UsIFtjdV06IFt7IFtjdl06IGNpLCBbY3VdOiBbYVksIHsgW2N2XTogY2osIFtjdV06IFthWiwgeyBbY3ZdOiBjbCwgW2N1XTogW3sgW2N2XTogYkcsIFtjdV06IFt7IFtjdl06IFt7IFtjd106IGgsIFtjeF06IFtiYSwgXCJ7cGFydGl0aW9uUmVzdWx0I25hbWV9XCJdIH1dLCBbY3VdOiBbeyBbY3ZdOiBjbiwgW2N1XTogW3sgW2N2XTogW3sgW2N3XTogaCwgW2N4XTogW2FVLCBCXSB9XSwgW2N1XTogW3sgW2N2XTogY28sIFtjdV06IFt7IFtjdl06IGNwLCBbY3VdOiBbeyBbY3ZdOiBiQiwgZXJyb3I6IFwiQWNjZXNzIFBvaW50cyBkbyBub3Qgc3VwcG9ydCBTMyBBY2NlbGVyYXRlXCIsIFtjdF06IGYgfSwgeyBbY3ZdOiBiSCwgZW5kcG9pbnQ6IHsgW2NBXTogXCJodHRwczovL3thY2Nlc3NQb2ludE5hbWV9LXtidWNrZXRBcm4jYWNjb3VudElkfS5zMy1hY2Nlc3Nwb2ludC1maXBzLmR1YWxzdGFjay57YnVja2V0QXJuI3JlZ2lvbn0ue2J1Y2tldFBhcnRpdGlvbiNkbnNTdWZmaXh9XCIsIFtjQl06IGJqLCBbY0hdOiBhbCB9LCBbY3RdOiBuIH0sIHsgW2N2XTogYkksIGVuZHBvaW50OiB7IFtjQV06IFwiaHR0cHM6Ly97YWNjZXNzUG9pbnROYW1lfS17YnVja2V0QXJuI2FjY291bnRJZH0uczMtYWNjZXNzcG9pbnQtZmlwcy57YnVja2V0QXJuI3JlZ2lvbn0ue2J1Y2tldFBhcnRpdGlvbiNkbnNTdWZmaXh9XCIsIFtjQl06IGJqLCBbY0hdOiBhbCB9LCBbY3RdOiBuIH0sIHsgW2N2XTogYkosIGVuZHBvaW50OiB7IFtjQV06IFwiaHR0cHM6Ly97YWNjZXNzUG9pbnROYW1lfS17YnVja2V0QXJuI2FjY291bnRJZH0uczMtYWNjZXNzcG9pbnQuZHVhbHN0YWNrLntidWNrZXRBcm4jcmVnaW9ufS57YnVja2V0UGFydGl0aW9uI2Ruc1N1ZmZpeH1cIiwgW2NCXTogYmosIFtjSF06IGFsIH0sIFtjdF06IG4gfSwgeyBbY3ZdOiBbYXMsIGFyLCBaLCBhZ10sIGVuZHBvaW50OiB7IFtjQV06IE0sIFtjQl06IGJqLCBbY0hdOiBhbCB9LCBbY3RdOiBuIH0sIHsgW2N2XTogYkssIGVuZHBvaW50OiB7IFtjQV06IFwiaHR0cHM6Ly97YWNjZXNzUG9pbnROYW1lfS17YnVja2V0QXJuI2FjY291bnRJZH0uczMtYWNjZXNzcG9pbnQue2J1Y2tldEFybiNyZWdpb259LntidWNrZXRQYXJ0aXRpb24jZG5zU3VmZml4fVwiLCBbY0JdOiBiaiwgW2NIXTogYWwgfSwgW2N0XTogbiB9XSwgW2N0XTogbyB9LCBiZF0sIFtjdF06IG8gfSwgYmVdLCBbY3RdOiBvIH0sIHsgZXJyb3I6IFwiSW52YWxpZCBBUk46IFRoZSBBUk4gd2FzIG5vdCBmb3IgdGhlIFMzIHNlcnZpY2UsIGZvdW5kOiB7YnVja2V0QXJuI3NlcnZpY2V9XCIsIFtjdF06IGYgfV0sIFtjdF06IG8gfSwgYmZdLCBbY3RdOiBvIH0sIGJnXSwgW2N0XTogbyB9XSwgW2N0XTogbyB9XSwgW2N0XTogbyB9LCBiaF0sIFtjdF06IG8gfV0sIFtjdF06IG8gfV0sIFtjdF06IG8gfSwgeyBbY3ZdOiBbeyBbY3ddOiB5LCBbY3hdOiBbYVYsIGNdIH1dLCBbY3VdOiBbeyBbY3ZdOiBjaCwgZXJyb3I6IFwiUzMgTVJBUCBkb2VzIG5vdCBzdXBwb3J0IGR1YWwtc3RhY2tcIiwgW2N0XTogZiB9LCB7IFtjdl06IGNxLCBlcnJvcjogXCJTMyBNUkFQIGRvZXMgbm90IHN1cHBvcnQgRklQU1wiLCBbY3RdOiBmIH0sIHsgW2N2XTogYkIsIGVycm9yOiBcIlMzIE1SQVAgZG9lcyBub3Qgc3VwcG9ydCBTMyBBY2NlbGVyYXRlXCIsIFtjdF06IGYgfSwgeyBbY3ZdOiBbeyBbY3ddOiBlLCBbY3hdOiBbeyBbY3ldOiBcIkRpc2FibGVNdWx0aVJlZ2lvbkFjY2Vzc1BvaW50c1wiIH0sIGNdIH1dLCBlcnJvcjogXCJJbnZhbGlkIGNvbmZpZ3VyYXRpb246IE11bHRpLVJlZ2lvbiBBY2Nlc3MgUG9pbnQgQVJOcyBhcmUgZGlzYWJsZWQuXCIsIFtjdF06IGYgfSwgeyBbY3ZdOiBbeyBbY3ddOiBnLCBbY3hdOiBieSwgW2N6XTogTiB9XSwgW2N1XTogW3sgW2N2XTogW3sgW2N3XTogaCwgW2N4XTogW3sgW2N3XTogaSwgW2N4XTogW3sgW2N5XTogTiB9LCBqXSB9LCB7IFtjd106IGksIFtjeF06IFthUywgXCJwYXJ0aXRpb25cIl0gfV0gfV0sIFtjdV06IFt7IGVuZHBvaW50OiB7IFtjQV06IFwiaHR0cHM6Ly97YWNjZXNzUG9pbnROYW1lfS5hY2Nlc3Nwb2ludC5zMy1nbG9iYWwue21yYXBQYXJ0aXRpb24jZG5zU3VmZml4fVwiLCBbY0JdOiB7IFtjRF06IFt7IFtjRV06IGMsIG5hbWU6IHosIFtjRl06IEIsIFtjSV06IGNiIH1dIH0sIFtjSF06IGFsIH0sIFtjdF06IG4gfV0sIFtjdF06IG8gfSwgeyBlcnJvcjogXCJDbGllbnQgd2FzIGNvbmZpZ3VyZWQgZm9yIHBhcnRpdGlvbiBge21yYXBQYXJ0aXRpb24jbmFtZX1gIGJ1dCBidWNrZXQgcmVmZXJyZWQgdG8gcGFydGl0aW9uIGB7YnVja2V0QXJuI3BhcnRpdGlvbn1gXCIsIFtjdF06IGYgfV0sIFtjdF06IG8gfV0sIFtjdF06IG8gfSwgeyBlcnJvcjogXCJJbnZhbGlkIEFjY2VzcyBQb2ludCBOYW1lXCIsIFtjdF06IGYgfV0sIFtjdF06IG8gfSwgYmldLCBbY3RdOiBvIH0sIHsgW2N2XTogW3sgW2N3XTogaCwgW2N4XTogW2FVLCBBXSB9XSwgW2N1XTogW3sgW2N2XTogY2gsIGVycm9yOiBcIlMzIE91dHBvc3RzIGRvZXMgbm90IHN1cHBvcnQgRHVhbC1zdGFja1wiLCBbY3RdOiBmIH0sIHsgW2N2XTogY3EsIGVycm9yOiBcIlMzIE91dHBvc3RzIGRvZXMgbm90IHN1cHBvcnQgRklQU1wiLCBbY3RdOiBmIH0sIHsgW2N2XTogYkIsIGVycm9yOiBcIlMzIE91dHBvc3RzIGRvZXMgbm90IHN1cHBvcnQgUzMgQWNjZWxlcmF0ZVwiLCBbY3RdOiBmIH0sIHsgW2N2XTogW3sgW2N3XTogZCwgW2N4XTogW3sgW2N3XTogaSwgW2N4XTogW2FTLCBcInJlc291cmNlSWRbNF1cIl0gfV0gfV0sIGVycm9yOiBcIkludmFsaWQgQXJuOiBPdXRwb3N0IEFjY2VzcyBQb2ludCBBUk4gY29udGFpbnMgc3ViIHJlc291cmNlc1wiLCBbY3RdOiBmIH0sIHsgW2N2XTogW3sgW2N3XTogaSwgW2N4XTogY2csIFtjel06IHggfV0sIFtjdV06IFt7IFtjdl06IGJaLCBbY3VdOiBbYVosIHsgW2N2XTogY2wsIFtjdV06IFt7IFtjdl06IGJHLCBbY3VdOiBbeyBbY3ZdOiBjbSwgW2N1XTogW3sgW2N2XTogY24sIFtjdV06IFt7IFtjdl06IGNvLCBbY3VdOiBbeyBbY3ZdOiBbeyBbY3ddOiBpLCBbY3hdOiBjaywgW2N6XTogTyB9XSwgW2N1XTogW3sgW2N2XTogW3sgW2N3XTogaSwgW2N4XTogW2FTLCBcInJlc291cmNlSWRbM11cIl0sIFtjel06IEwgfV0sIFtjdV06IFt7IFtjdl06IFt7IFtjd106IGgsIFtjeF06IFt7IFtjeV06IE8gfSwgS10gfV0sIFtjdV06IFt7IFtjdl06IGJDLCBlbmRwb2ludDogeyBbY0FdOiBcImh0dHBzOi8ve2FjY2Vzc1BvaW50TmFtZX0te2J1Y2tldEFybiNhY2NvdW50SWR9LntvdXRwb3N0SWR9Lnt1cmwjYXV0aG9yaXR5fVwiLCBbY0JdOiBiaywgW2NIXTogYWwgfSwgW2N0XTogbiB9LCB7IGVuZHBvaW50OiB7IFtjQV06IFwiaHR0cHM6Ly97YWNjZXNzUG9pbnROYW1lfS17YnVja2V0QXJuI2FjY291bnRJZH0ue291dHBvc3RJZH0uczMtb3V0cG9zdHMue2J1Y2tldEFybiNyZWdpb259LntidWNrZXRQYXJ0aXRpb24jZG5zU3VmZml4fVwiLCBbY0JdOiBiaywgW2NIXTogYWwgfSwgW2N0XTogbiB9XSwgW2N0XTogbyB9LCB7IGVycm9yOiBcIkV4cGVjdGVkIGFuIG91dHBvc3QgdHlwZSBgYWNjZXNzcG9pbnRgLCBmb3VuZCB7b3V0cG9zdFR5cGV9XCIsIFtjdF06IGYgfV0sIFtjdF06IG8gfSwgeyBlcnJvcjogXCJJbnZhbGlkIEFSTjogZXhwZWN0ZWQgYW4gYWNjZXNzIHBvaW50IG5hbWVcIiwgW2N0XTogZiB9XSwgW2N0XTogbyB9LCB7IGVycm9yOiBcIkludmFsaWQgQVJOOiBFeHBlY3RlZCBhIDQtY29tcG9uZW50IHJlc291cmNlXCIsIFtjdF06IGYgfV0sIFtjdF06IG8gfSwgYmVdLCBbY3RdOiBvIH0sIGJmXSwgW2N0XTogbyB9LCBiZ10sIFtjdF06IG8gfV0sIFtjdF06IG8gfV0sIFtjdF06IG8gfSwgeyBlcnJvcjogXCJJbnZhbGlkIEFSTjogVGhlIG91dHBvc3QgSWQgbWF5IG9ubHkgY29udGFpbiBhLXosIEEtWiwgMC05IGFuZCBgLWAuIEZvdW5kOiBge291dHBvc3RJZH1gXCIsIFtjdF06IGYgfV0sIFtjdF06IG8gfSwgeyBlcnJvcjogXCJJbnZhbGlkIEFSTjogVGhlIE91dHBvc3QgSWQgd2FzIG5vdCBzZXRcIiwgW2N0XTogZiB9XSwgW2N0XTogbyB9LCB7IGVycm9yOiBcIkludmFsaWQgQVJOOiBVbnJlY29nbml6ZWQgZm9ybWF0OiB7QnVja2V0fSAodHlwZToge2FyblR5cGV9KVwiLCBbY3RdOiBmIH1dLCBbY3RdOiBvIH0sIHsgZXJyb3I6IFwiSW52YWxpZCBBUk46IE5vIEFSTiB0eXBlIHNwZWNpZmllZFwiLCBbY3RdOiBmIH1dLCBbY3RdOiBvIH0sIHsgW2N2XTogW3sgW2N3XTogaywgW2N4XTogW2FkLCAwLCA0LCBiXSwgW2N6XTogUCB9LCB7IFtjd106IGgsIFtjeF06IFt7IFtjeV06IFAgfSwgXCJhcm46XCJdIH0sIHsgW2N3XTogciwgW2N4XTogW3sgW2N3XTogZCwgW2N4XTogW2JsXSB9XSB9XSwgZXJyb3I6IFwiSW52YWxpZCBBUk46IGB7QnVja2V0fWAgd2FzIG5vdCBhIHZhbGlkIEFSTlwiLCBbY3RdOiBmIH0sIHsgW2N2XTogW3sgW2N3XTogZSwgW2N4XTogW2F6LCBjXSB9LCBibF0sIGVycm9yOiBcIlBhdGgtc3R5bGUgYWRkcmVzc2luZyBjYW5ub3QgYmUgdXNlZCB3aXRoIEFSTiBidWNrZXRzXCIsIFtjdF06IGYgfSwgeyBbY3ZdOiBiRSwgW2N1XTogW3sgW2N2XTogYkcsIFtjdV06IFt7IFtjdl06IFthQV0sIFtjdV06IFt7IFtjdl06IFtZLCBhcSwgWCwgYUJdLCBlbmRwb2ludDogeyBbY0FdOiBcImh0dHBzOi8vczMtZmlwcy5kdWFsc3RhY2sudXMtZWFzdC0xLntwYXJ0aXRpb25SZXN1bHQjZG5zU3VmZml4fS97dXJpX2VuY29kZWRfYnVja2V0fVwiLCBbY0JdOiBhQywgW2NIXTogYWwgfSwgW2N0XTogbiB9LCB7IFtjdl06IFtZLCBhcSwgWCwgYUQsIGFFXSwgW2N1XTogW3sgZW5kcG9pbnQ6IGJtLCBbY3RdOiBuIH1dLCBbY3RdOiBvIH0sIHsgW2N2XTogW1ksIGFxLCBYLCBhRCwgYUhdLCBlbmRwb2ludDogYm0sIFtjdF06IG4gfSwgeyBbY3ZdOiBbYXIsIGFxLCBYLCBhQl0sIGVuZHBvaW50OiB7IFtjQV06IFwiaHR0cHM6Ly9zMy1maXBzLnVzLWVhc3QtMS57cGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH0ve3VyaV9lbmNvZGVkX2J1Y2tldH1cIiwgW2NCXTogYUMsIFtjSF06IGFsIH0sIFtjdF06IG4gfSwgeyBbY3ZdOiBbYXIsIGFxLCBYLCBhRCwgYUVdLCBbY3VdOiBbeyBlbmRwb2ludDogYm4sIFtjdF06IG4gfV0sIFtjdF06IG8gfSwgeyBbY3ZdOiBbYXIsIGFxLCBYLCBhRCwgYUhdLCBlbmRwb2ludDogYm4sIFtjdF06IG4gfSwgeyBbY3ZdOiBbWSwgYXEsIGFzLCBhQl0sIGVuZHBvaW50OiB7IFtjQV06IFwiaHR0cHM6Ly9zMy5kdWFsc3RhY2sudXMtZWFzdC0xLntwYXJ0aXRpb25SZXN1bHQjZG5zU3VmZml4fS97dXJpX2VuY29kZWRfYnVja2V0fVwiLCBbY0JdOiBhQywgW2NIXTogYWwgfSwgW2N0XTogbiB9LCB7IFtjdl06IFtZLCBhcSwgYXMsIGFELCBhRV0sIFtjdV06IFt7IGVuZHBvaW50OiBibywgW2N0XTogbiB9XSwgW2N0XTogbyB9LCB7IFtjdl06IFtZLCBhcSwgYXMsIGFELCBhSF0sIGVuZHBvaW50OiBibywgW2N0XTogbiB9LCB7IFtjdl06IFthciwgWiwgYWcsIGFzLCBhQl0sIGVuZHBvaW50OiB7IFtjQV06IFEsIFtjQl06IGFDLCBbY0hdOiBhbCB9LCBbY3RdOiBuIH0sIHsgW2N2XTogW2FyLCBaLCBhZywgYXMsIGFELCBhRV0sIFtjdV06IFt7IFtjdl06IGNkLCBlbmRwb2ludDogYnAsIFtjdF06IG4gfSwgeyBlbmRwb2ludDogYnAsIFtjdF06IG4gfV0sIFtjdF06IG8gfSwgeyBbY3ZdOiBbYXIsIFosIGFnLCBhcywgYUQsIGFIXSwgZW5kcG9pbnQ6IGJwLCBbY3RdOiBuIH0sIHsgW2N2XTogW2FyLCBhcSwgYXMsIGFCXSwgZW5kcG9pbnQ6IHsgW2NBXTogUiwgW2NCXTogYUMsIFtjSF06IGFsIH0sIFtjdF06IG4gfSwgeyBbY3ZdOiBbYXIsIGFxLCBhcywgYUQsIGFFXSwgW2N1XTogW3sgW2N2XTogY2QsIGVuZHBvaW50OiB7IFtjQV06IFIsIFtjQl06IGFHLCBbY0hdOiBhbCB9LCBbY3RdOiBuIH0sIHsgZW5kcG9pbnQ6IGJxLCBbY3RdOiBuIH1dLCBbY3RdOiBvIH0sIHsgW2N2XTogW2FyLCBhcSwgYXMsIGFELCBhSF0sIGVuZHBvaW50OiBicSwgW2N0XTogbiB9XSwgW2N0XTogbyB9LCB7IGVycm9yOiBcIlBhdGgtc3R5bGUgYWRkcmVzc2luZyBjYW5ub3QgYmUgdXNlZCB3aXRoIFMzIEFjY2VsZXJhdGVcIiwgW2N0XTogZiB9XSwgW2N0XTogbyB9XSwgW2N0XTogbyB9XSwgW2N0XTogbyB9LCB7IFtjdl06IFt7IFtjd106IGQsIFtjeF06IFticl0gfSwgeyBbY3ddOiBlLCBbY3hdOiBbYnIsIGNdIH1dLCBbY3VdOiBbeyBbY3ZdOiBiRywgW2N1XTogW3sgW2N2XTogY3IsIFtjdV06IFthVywgYVgsIHsgW2N2XTogYkMsIGVuZHBvaW50OiB7IFtjQV06IHQsIFtjQl06IGJzLCBbY0hdOiBhbCB9LCBbY3RdOiBuIH0sIHsgW2N2XTogY3EsIGVuZHBvaW50OiB7IFtjQV06IFwiaHR0cHM6Ly9zMy1vYmplY3QtbGFtYmRhLWZpcHMue1JlZ2lvbn0ue3BhcnRpdGlvblJlc3VsdCNkbnNTdWZmaXh9XCIsIFtjQl06IGJzLCBbY0hdOiBhbCB9LCBbY3RdOiBuIH0sIHsgZW5kcG9pbnQ6IHsgW2NBXTogXCJodHRwczovL3MzLW9iamVjdC1sYW1iZGEue1JlZ2lvbn0ue3BhcnRpdGlvblJlc3VsdCNkbnNTdWZmaXh9XCIsIFtjQl06IGJzLCBbY0hdOiBhbCB9LCBbY3RdOiBuIH1dLCBbY3RdOiBvIH0sIGFSXSwgW2N0XTogbyB9XSwgW2N0XTogbyB9LCB7IFtjdl06IFthdV0sIFtjdV06IFt7IFtjdl06IGJHLCBbY3VdOiBbeyBbY3ZdOiBjciwgW2N1XTogW3sgW2N2XTogW1gsIFksIGFxLCBhQl0sIGVuZHBvaW50OiB7IFtjQV06IFwiaHR0cHM6Ly9zMy1maXBzLmR1YWxzdGFjay51cy1lYXN0LTEue3BhcnRpdGlvblJlc3VsdCNkbnNTdWZmaXh9XCIsIFtjQl06IGFDLCBbY0hdOiBhbCB9LCBbY3RdOiBuIH0sIHsgW2N2XTogW1gsIFksIGFxLCBhRCwgYUVdLCBbY3VdOiBbeyBlbmRwb2ludDogYnQsIFtjdF06IG4gfV0sIFtjdF06IG8gfSwgeyBbY3ZdOiBbWCwgWSwgYXEsIGFELCBhSF0sIGVuZHBvaW50OiBidCwgW2N0XTogbiB9LCB7IFtjdl06IFtYLCBhciwgYXEsIGFCXSwgZW5kcG9pbnQ6IHsgW2NBXTogXCJodHRwczovL3MzLWZpcHMudXMtZWFzdC0xLntwYXJ0aXRpb25SZXN1bHQjZG5zU3VmZml4fVwiLCBbY0JdOiBhQywgW2NIXTogYWwgfSwgW2N0XTogbiB9LCB7IFtjdl06IFtYLCBhciwgYXEsIGFELCBhRV0sIFtjdV06IFt7IGVuZHBvaW50OiBidSwgW2N0XTogbiB9XSwgW2N0XTogbyB9LCB7IFtjdl06IFtYLCBhciwgYXEsIGFELCBhSF0sIGVuZHBvaW50OiBidSwgW2N0XTogbiB9LCB7IFtjdl06IFthcywgWSwgYXEsIGFCXSwgZW5kcG9pbnQ6IHsgW2NBXTogXCJodHRwczovL3MzLmR1YWxzdGFjay51cy1lYXN0LTEue3BhcnRpdGlvblJlc3VsdCNkbnNTdWZmaXh9XCIsIFtjQl06IGFDLCBbY0hdOiBhbCB9LCBbY3RdOiBuIH0sIHsgW2N2XTogW2FzLCBZLCBhcSwgYUQsIGFFXSwgW2N1XTogW3sgZW5kcG9pbnQ6IGJ2LCBbY3RdOiBuIH1dLCBbY3RdOiBvIH0sIHsgW2N2XTogW2FzLCBZLCBhcSwgYUQsIGFIXSwgZW5kcG9pbnQ6IGJ2LCBbY3RdOiBuIH0sIHsgW2N2XTogW2FzLCBhciwgWiwgYWcsIGFCXSwgZW5kcG9pbnQ6IHsgW2NBXTogdCwgW2NCXTogYUMsIFtjSF06IGFsIH0sIFtjdF06IG4gfSwgeyBbY3ZdOiBbYXMsIGFyLCBaLCBhZywgYUQsIGFFXSwgW2N1XTogW3sgW2N2XTogY2QsIGVuZHBvaW50OiBidywgW2N0XTogbiB9LCB7IGVuZHBvaW50OiBidywgW2N0XTogbiB9XSwgW2N0XTogbyB9LCB7IFtjdl06IFthcywgYXIsIFosIGFnLCBhRCwgYUhdLCBlbmRwb2ludDogYncsIFtjdF06IG4gfSwgeyBbY3ZdOiBbYXMsIGFyLCBhcSwgYUJdLCBlbmRwb2ludDogeyBbY0FdOiBTLCBbY0JdOiBhQywgW2NIXTogYWwgfSwgW2N0XTogbiB9LCB7IFtjdl06IFthcywgYXIsIGFxLCBhRCwgYUVdLCBbY3VdOiBbeyBbY3ZdOiBjZCwgZW5kcG9pbnQ6IHsgW2NBXTogUywgW2NCXTogYUcsIFtjSF06IGFsIH0sIFtjdF06IG4gfSwgeyBlbmRwb2ludDogYngsIFtjdF06IG4gfV0sIFtjdF06IG8gfSwgeyBbY3ZdOiBbYXMsIGFyLCBhcSwgYUQsIGFIXSwgZW5kcG9pbnQ6IGJ4LCBbY3RdOiBuIH1dLCBbY3RdOiBvIH0sIGFSXSwgW2N0XTogbyB9XSwgW2N0XTogbyB9XSwgW2N0XTogbyB9LCB7IGVycm9yOiBcIkEgcmVnaW9uIG11c3QgYmUgc2V0IHdoZW4gc2VuZGluZyByZXF1ZXN0cyB0byBTMy5cIiwgW2N0XTogZiB9XSB9O1xuZXhwb3J0cy5ydWxlU2V0ID0gX2RhdGE7XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmRlZmF1bHRFbmRwb2ludFJlc29sdmVyID0gdm9pZCAwO1xuY29uc3QgdXRpbF9lbmRwb2ludHNfMSA9IHJlcXVpcmUoXCJAYXdzLXNkay91dGlsLWVuZHBvaW50c1wiKTtcbmNvbnN0IHV0aWxfZW5kcG9pbnRzXzIgPSByZXF1aXJlKFwiQHNtaXRoeS91dGlsLWVuZHBvaW50c1wiKTtcbmNvbnN0IHJ1bGVzZXRfMSA9IHJlcXVpcmUoXCIuL3J1bGVzZXRcIik7XG5jb25zdCBjYWNoZSA9IG5ldyB1dGlsX2VuZHBvaW50c18yLkVuZHBvaW50Q2FjaGUoe1xuICAgIHNpemU6IDUwLFxuICAgIHBhcmFtczogW1xuICAgICAgICBcIkFjY2VsZXJhdGVcIixcbiAgICAgICAgXCJCdWNrZXRcIixcbiAgICAgICAgXCJEaXNhYmxlQWNjZXNzUG9pbnRzXCIsXG4gICAgICAgIFwiRGlzYWJsZU11bHRpUmVnaW9uQWNjZXNzUG9pbnRzXCIsXG4gICAgICAgIFwiRGlzYWJsZVMzRXhwcmVzc1Nlc3Npb25BdXRoXCIsXG4gICAgICAgIFwiRW5kcG9pbnRcIixcbiAgICAgICAgXCJGb3JjZVBhdGhTdHlsZVwiLFxuICAgICAgICBcIlJlZ2lvblwiLFxuICAgICAgICBcIlVzZUFyblJlZ2lvblwiLFxuICAgICAgICBcIlVzZUR1YWxTdGFja1wiLFxuICAgICAgICBcIlVzZUZJUFNcIixcbiAgICAgICAgXCJVc2VHbG9iYWxFbmRwb2ludFwiLFxuICAgICAgICBcIlVzZU9iamVjdExhbWJkYUVuZHBvaW50XCIsXG4gICAgICAgIFwiVXNlUzNFeHByZXNzQ29udHJvbEVuZHBvaW50XCIsXG4gICAgXSxcbn0pO1xuY29uc3QgZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIgPSAoZW5kcG9pbnRQYXJhbXMsIGNvbnRleHQgPSB7fSkgPT4ge1xuICAgIHJldHVybiBjYWNoZS5nZXQoZW5kcG9pbnRQYXJhbXMsICgpID0+ICgwLCB1dGlsX2VuZHBvaW50c18yLnJlc29sdmVFbmRwb2ludCkocnVsZXNldF8xLnJ1bGVTZXQsIHtcbiAgICAgICAgZW5kcG9pbnRQYXJhbXM6IGVuZHBvaW50UGFyYW1zLFxuICAgICAgICBsb2dnZXI6IGNvbnRleHQubG9nZ2VyLFxuICAgIH0pKTtcbn07XG5leHBvcnRzLmRlZmF1bHRFbmRwb2ludFJlc29sdmVyID0gZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXI7XG51dGlsX2VuZHBvaW50c18yLmN1c3RvbUVuZHBvaW50RnVuY3Rpb25zLmF3cyA9IHV0aWxfZW5kcG9pbnRzXzEuYXdzRW5kcG9pbnRGdW5jdGlvbnM7XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLnJlc29sdmVIdHRwQXV0aFNjaGVtZUNvbmZpZyA9IGV4cG9ydHMuZGVmYXVsdFMzSHR0cEF1dGhTY2hlbWVQcm92aWRlciA9IGV4cG9ydHMuZGVmYXVsdFMzSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIgPSB2b2lkIDA7XG5jb25zdCBjb3JlXzEgPSByZXF1aXJlKFwiQGF3cy1zZGsvY29yZVwiKTtcbmNvbnN0IHNpZ25hdHVyZV92NF9tdWx0aV9yZWdpb25fMSA9IHJlcXVpcmUoXCJAYXdzLXNkay9zaWduYXR1cmUtdjQtbXVsdGktcmVnaW9uXCIpO1xuY29uc3QgbWlkZGxld2FyZV9lbmRwb2ludF8xID0gcmVxdWlyZShcIkBzbWl0aHkvbWlkZGxld2FyZS1lbmRwb2ludFwiKTtcbmNvbnN0IHV0aWxfbWlkZGxld2FyZV8xID0gcmVxdWlyZShcIkBzbWl0aHkvdXRpbC1taWRkbGV3YXJlXCIpO1xuY29uc3QgZW5kcG9pbnRSZXNvbHZlcl8xID0gcmVxdWlyZShcIi4uL2VuZHBvaW50L2VuZHBvaW50UmVzb2x2ZXJcIik7XG5jb25zdCBjcmVhdGVFbmRwb2ludFJ1bGVTZXRIdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlciA9IChkZWZhdWx0SHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIpID0+IGFzeW5jIChjb25maWcsIGNvbnRleHQsIGlucHV0KSA9PiB7XG4gICAgaWYgKCFpbnB1dCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENvdWxkIG5vdCBmaW5kIFxcYGlucHV0XFxgIGZvciBcXGBkZWZhdWx0RW5kcG9pbnRSdWxlU2V0SHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXJcXGBgKTtcbiAgICB9XG4gICAgY29uc3QgZGVmYXVsdFBhcmFtZXRlcnMgPSBhd2FpdCBkZWZhdWx0SHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIoY29uZmlnLCBjb250ZXh0LCBpbnB1dCk7XG4gICAgY29uc3QgaW5zdHJ1Y3Rpb25zRm4gPSAoMCwgdXRpbF9taWRkbGV3YXJlXzEuZ2V0U21pdGh5Q29udGV4dCkoY29udGV4dCk/LmNvbW1hbmRJbnN0YW5jZT8uY29uc3RydWN0b3JcbiAgICAgICAgPy5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucztcbiAgICBpZiAoIWluc3RydWN0aW9uc0ZuKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSBpcyBub3QgZGVmaW5lZCBvbiBcXGAke2NvbnRleHQuY29tbWFuZE5hbWV9XFxgYCk7XG4gICAgfVxuICAgIGNvbnN0IGVuZHBvaW50UGFyYW1ldGVycyA9IGF3YWl0ICgwLCBtaWRkbGV3YXJlX2VuZHBvaW50XzEucmVzb2x2ZVBhcmFtcykoaW5wdXQsIHsgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnM6IGluc3RydWN0aW9uc0ZuIH0sIGNvbmZpZyk7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oZGVmYXVsdFBhcmFtZXRlcnMsIGVuZHBvaW50UGFyYW1ldGVycyk7XG59O1xuY29uc3QgX2RlZmF1bHRTM0h0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyID0gYXN5bmMgKGNvbmZpZywgY29udGV4dCwgaW5wdXQpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgICBvcGVyYXRpb246ICgwLCB1dGlsX21pZGRsZXdhcmVfMS5nZXRTbWl0aHlDb250ZXh0KShjb250ZXh0KS5vcGVyYXRpb24sXG4gICAgICAgIHJlZ2lvbjogKGF3YWl0ICgwLCB1dGlsX21pZGRsZXdhcmVfMS5ub3JtYWxpemVQcm92aWRlcikoY29uZmlnLnJlZ2lvbikoKSkgfHxcbiAgICAgICAgICAgICgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiZXhwZWN0ZWQgYHJlZ2lvbmAgdG8gYmUgY29uZmlndXJlZCBmb3IgYGF3cy5hdXRoI3NpZ3Y0YFwiKTtcbiAgICAgICAgICAgIH0pKCksXG4gICAgfTtcbn07XG5leHBvcnRzLmRlZmF1bHRTM0h0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyID0gY3JlYXRlRW5kcG9pbnRSdWxlU2V0SHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIoX2RlZmF1bHRTM0h0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyKTtcbmZ1bmN0aW9uIGNyZWF0ZUF3c0F1dGhTaWd2NEh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc2NoZW1lSWQ6IFwiYXdzLmF1dGgjc2lndjRcIixcbiAgICAgICAgc2lnbmluZ1Byb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIG5hbWU6IFwiczNcIixcbiAgICAgICAgICAgIHJlZ2lvbjogYXV0aFBhcmFtZXRlcnMucmVnaW9uLFxuICAgICAgICB9LFxuICAgICAgICBwcm9wZXJ0aWVzRXh0cmFjdG9yOiAoY29uZmlnLCBjb250ZXh0KSA9PiAoe1xuICAgICAgICAgICAgc2lnbmluZ1Byb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICBjb25maWcsXG4gICAgICAgICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pLFxuICAgIH07XG59XG5mdW5jdGlvbiBjcmVhdGVBd3NBdXRoU2lndjRhSHR0cEF1dGhPcHRpb24oYXV0aFBhcmFtZXRlcnMpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBzY2hlbWVJZDogXCJhd3MuYXV0aCNzaWd2NGFcIixcbiAgICAgICAgc2lnbmluZ1Byb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIG5hbWU6IFwiczNcIixcbiAgICAgICAgICAgIHJlZ2lvbjogYXV0aFBhcmFtZXRlcnMucmVnaW9uLFxuICAgICAgICB9LFxuICAgICAgICBwcm9wZXJ0aWVzRXh0cmFjdG9yOiAoY29uZmlnLCBjb250ZXh0KSA9PiAoe1xuICAgICAgICAgICAgc2lnbmluZ1Byb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICBjb25maWcsXG4gICAgICAgICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pLFxuICAgIH07XG59XG5jb25zdCBjcmVhdGVFbmRwb2ludFJ1bGVTZXRIdHRwQXV0aFNjaGVtZVByb3ZpZGVyID0gKGRlZmF1bHRFbmRwb2ludFJlc29sdmVyLCBkZWZhdWx0SHR0cEF1dGhTY2hlbWVSZXNvbHZlciwgY3JlYXRlSHR0cEF1dGhPcHRpb25GdW5jdGlvbnMpID0+IHtcbiAgICBjb25zdCBlbmRwb2ludFJ1bGVTZXRIdHRwQXV0aFNjaGVtZVByb3ZpZGVyID0gKGF1dGhQYXJhbWV0ZXJzKSA9PiB7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50ID0gZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIoYXV0aFBhcmFtZXRlcnMpO1xuICAgICAgICBjb25zdCBhdXRoU2NoZW1lcyA9IGVuZHBvaW50LnByb3BlcnRpZXM/LmF1dGhTY2hlbWVzO1xuICAgICAgICBpZiAoIWF1dGhTY2hlbWVzKSB7XG4gICAgICAgICAgICByZXR1cm4gZGVmYXVsdEh0dHBBdXRoU2NoZW1lUmVzb2x2ZXIoYXV0aFBhcmFtZXRlcnMpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBzY2hlbWUgb2YgYXV0aFNjaGVtZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgbmFtZTogcmVzb2x2ZWROYW1lLCBwcm9wZXJ0aWVzID0ge30sIC4uLnJlc3QgfSA9IHNjaGVtZTtcbiAgICAgICAgICAgIGNvbnN0IG5hbWUgPSByZXNvbHZlZE5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgIGlmIChyZXNvbHZlZE5hbWUgIT09IG5hbWUpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYEh0dHBBdXRoU2NoZW1lIGhhcyBiZWVuIG5vcm1hbGl6ZWQgd2l0aCBsb3dlcmNhc2luZzogXFxgJHtyZXNvbHZlZE5hbWV9XFxgIHRvIFxcYCR7bmFtZX1cXGBgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCBzY2hlbWVJZDtcbiAgICAgICAgICAgIGlmIChuYW1lID09PSBcInNpZ3Y0YVwiKSB7XG4gICAgICAgICAgICAgICAgc2NoZW1lSWQgPSBcImF3cy5hdXRoI3NpZ3Y0YVwiO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNpZ3Y0UHJlc2VudCA9IGF1dGhTY2hlbWVzLmZpbmQoKHMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbmFtZSA9IHMubmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmFtZSAhPT0gXCJzaWd2NGFcIiAmJiBuYW1lLnN0YXJ0c1dpdGgoXCJzaWd2NFwiKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAoc2lnbmF0dXJlX3Y0X211bHRpX3JlZ2lvbl8xLlNpZ25hdHVyZVY0TXVsdGlSZWdpb24uc2lndjRhRGVwZW5kZW5jeSgpID09PSBcIm5vbmVcIiAmJiBzaWd2NFByZXNlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAobmFtZS5zdGFydHNXaXRoKFwic2lndjRcIikpIHtcbiAgICAgICAgICAgICAgICBzY2hlbWVJZCA9IFwiYXdzLmF1dGgjc2lndjRcIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBIdHRwQXV0aFNjaGVtZSBmb3VuZCBpbiBcXGBAc21pdGh5LnJ1bGVzI2VuZHBvaW50UnVsZVNldFxcYDogXFxgJHtuYW1lfVxcYGApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgY3JlYXRlT3B0aW9uID0gY3JlYXRlSHR0cEF1dGhPcHRpb25GdW5jdGlvbnNbc2NoZW1lSWRdO1xuICAgICAgICAgICAgaWYgKCFjcmVhdGVPcHRpb24pIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENvdWxkIG5vdCBmaW5kIEh0dHBBdXRoT3B0aW9uIGNyZWF0ZSBmdW5jdGlvbiBmb3IgXFxgJHtzY2hlbWVJZH1cXGBgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IG9wdGlvbiA9IGNyZWF0ZU9wdGlvbihhdXRoUGFyYW1ldGVycyk7XG4gICAgICAgICAgICBvcHRpb24uc2NoZW1lSWQgPSBzY2hlbWVJZDtcbiAgICAgICAgICAgIG9wdGlvbi5zaWduaW5nUHJvcGVydGllcyA9IHsgLi4uKG9wdGlvbi5zaWduaW5nUHJvcGVydGllcyB8fCB7fSksIC4uLnJlc3QsIC4uLnByb3BlcnRpZXMgfTtcbiAgICAgICAgICAgIG9wdGlvbnMucHVzaChvcHRpb24pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvcHRpb25zO1xuICAgIH07XG4gICAgcmV0dXJuIGVuZHBvaW50UnVsZVNldEh0dHBBdXRoU2NoZW1lUHJvdmlkZXI7XG59O1xuY29uc3QgX2RlZmF1bHRTM0h0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSAoYXV0aFBhcmFtZXRlcnMpID0+IHtcbiAgICBjb25zdCBvcHRpb25zID0gW107XG4gICAgc3dpdGNoIChhdXRoUGFyYW1ldGVycy5vcGVyYXRpb24pIHtcbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgb3B0aW9ucy5wdXNoKGNyZWF0ZUF3c0F1dGhTaWd2NEh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSk7XG4gICAgICAgICAgICBvcHRpb25zLnB1c2goY3JlYXRlQXdzQXV0aFNpZ3Y0YUh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG9wdGlvbnM7XG59O1xuZXhwb3J0cy5kZWZhdWx0UzNIdHRwQXV0aFNjaGVtZVByb3ZpZGVyID0gY3JlYXRlRW5kcG9pbnRSdWxlU2V0SHR0cEF1dGhTY2hlbWVQcm92aWRlcihlbmRwb2ludFJlc29sdmVyXzEuZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIsIF9kZWZhdWx0UzNIdHRwQXV0aFNjaGVtZVByb3ZpZGVyLCB7XG4gICAgXCJhd3MuYXV0aCNzaWd2NFwiOiBjcmVhdGVBd3NBdXRoU2lndjRIdHRwQXV0aE9wdGlvbixcbiAgICBcImF3cy5hdXRoI3NpZ3Y0YVwiOiBjcmVhdGVBd3NBdXRoU2lndjRhSHR0cEF1dGhPcHRpb24sXG59KTtcbmNvbnN0IHJlc29sdmVIdHRwQXV0aFNjaGVtZUNvbmZpZyA9IChjb25maWcpID0+IHtcbiAgICBjb25zdCBjb25maWdfMCA9ICgwLCBjb3JlXzEucmVzb2x2ZUF3c1Nka1NpZ1Y0Q29uZmlnKShjb25maWcpO1xuICAgIGNvbnN0IGNvbmZpZ18xID0gKDAsIGNvcmVfMS5yZXNvbHZlQXdzU2RrU2lnVjRBQ29uZmlnKShjb25maWdfMCk7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oY29uZmlnXzEsIHtcbiAgICAgICAgYXV0aFNjaGVtZVByZWZlcmVuY2U6ICgwLCB1dGlsX21pZGRsZXdhcmVfMS5ub3JtYWxpemVQcm92aWRlcikoY29uZmlnLmF1dGhTY2hlbWVQcmVmZXJlbmNlID8/IFtdKSxcbiAgICB9KTtcbn07XG5leHBvcnRzLnJlc29sdmVIdHRwQXV0aFNjaGVtZUNvbmZpZyA9IHJlc29sdmVIdHRwQXV0aFNjaGVtZUNvbmZpZztcbiIsICJ7XG4gIFwibmFtZVwiOiBcIkBhd3Mtc2RrL2NsaWVudC1zM1wiLFxuICBcImRlc2NyaXB0aW9uXCI6IFwiQVdTIFNESyBmb3IgSmF2YVNjcmlwdCBTMyBDbGllbnQgZm9yIE5vZGUuanMsIEJyb3dzZXIgYW5kIFJlYWN0IE5hdGl2ZVwiLFxuICBcInZlcnNpb25cIjogXCIzLjk1Mi4wXCIsXG4gIFwic2NyaXB0c1wiOiB7XG4gICAgXCJidWlsZFwiOiBcImNvbmN1cnJlbnRseSAneWFybjpidWlsZDpjanMnICd5YXJuOmJ1aWxkOmVzJyAneWFybjpidWlsZDp0eXBlcydcIixcbiAgICBcImJ1aWxkOmNqc1wiOiBcIm5vZGUgLi4vLi4vc2NyaXB0cy9jb21waWxhdGlvbi9pbmxpbmUgY2xpZW50LXMzXCIsXG4gICAgXCJidWlsZDplc1wiOiBcInRzYyAtcCB0c2NvbmZpZy5lcy5qc29uXCIsXG4gICAgXCJidWlsZDppbmNsdWRlOmRlcHNcIjogXCJsZXJuYSBydW4gLS1zY29wZSAkbnBtX3BhY2thZ2VfbmFtZSAtLWluY2x1ZGUtZGVwZW5kZW5jaWVzIGJ1aWxkXCIsXG4gICAgXCJidWlsZDp0eXBlc1wiOiBcInRzYyAtcCB0c2NvbmZpZy50eXBlcy5qc29uXCIsXG4gICAgXCJidWlsZDp0eXBlczpkb3dubGV2ZWxcIjogXCJkb3dubGV2ZWwtZHRzIGRpc3QtdHlwZXMgZGlzdC10eXBlcy90czMuNFwiLFxuICAgIFwiY2xlYW5cIjogXCJyaW1yYWYgLi9kaXN0LSogJiYgcmltcmFmICoudHNidWlsZGluZm9cIixcbiAgICBcImV4dHJhY3Q6ZG9jc1wiOiBcImFwaS1leHRyYWN0b3IgcnVuIC0tbG9jYWxcIixcbiAgICBcImdlbmVyYXRlOmNsaWVudFwiOiBcIm5vZGUgLi4vLi4vc2NyaXB0cy9nZW5lcmF0ZS1jbGllbnRzL3NpbmdsZS1zZXJ2aWNlIC0tc29sbyBzM1wiLFxuICAgIFwidGVzdFwiOiBcInlhcm4gZzp2aXRlc3QgcnVuXCIsXG4gICAgXCJ0ZXN0OmJyb3dzZXJcIjogXCJub2RlIC4vdGVzdC9icm93c2VyLWJ1aWxkL2VzYnVpbGQgJiYgeWFybiBnOnZpdGVzdCBydW4gLWMgdml0ZXN0LmNvbmZpZy5icm93c2VyLm10c1wiLFxuICAgIFwidGVzdDpicm93c2VyOndhdGNoXCI6IFwibm9kZSAuL3Rlc3QvYnJvd3Nlci1idWlsZC9lc2J1aWxkICYmIHlhcm4gZzp2aXRlc3Qgd2F0Y2ggLWMgdml0ZXN0LmNvbmZpZy5icm93c2VyLm10c1wiLFxuICAgIFwidGVzdDplMmVcIjogXCJ5YXJuIGc6dml0ZXN0IHJ1biAtYyB2aXRlc3QuY29uZmlnLmUyZS5tdHMgJiYgeWFybiB0ZXN0OmJyb3dzZXJcIixcbiAgICBcInRlc3Q6ZTJlOndhdGNoXCI6IFwieWFybiBnOnZpdGVzdCB3YXRjaCAtYyB2aXRlc3QuY29uZmlnLmUyZS5tdHNcIixcbiAgICBcInRlc3Q6aW5kZXhcIjogXCJ0c2MgLS1ub0VtaXQgLi90ZXN0L2luZGV4LXR5cGVzLnRzICYmIG5vZGUgLi90ZXN0L2luZGV4LW9iamVjdHMuc3BlYy5tanNcIixcbiAgICBcInRlc3Q6aW50ZWdyYXRpb25cIjogXCJ5YXJuIGc6dml0ZXN0IHJ1biAtYyB2aXRlc3QuY29uZmlnLmludGVnLm10c1wiLFxuICAgIFwidGVzdDppbnRlZ3JhdGlvbjp3YXRjaFwiOiBcInlhcm4gZzp2aXRlc3Qgd2F0Y2ggLWMgdml0ZXN0LmNvbmZpZy5pbnRlZy5tdHNcIixcbiAgICBcInRlc3Q6d2F0Y2hcIjogXCJ5YXJuIGc6dml0ZXN0IHdhdGNoXCJcbiAgfSxcbiAgXCJtYWluXCI6IFwiLi9kaXN0LWNqcy9pbmRleC5qc1wiLFxuICBcInR5cGVzXCI6IFwiLi9kaXN0LXR5cGVzL2luZGV4LmQudHNcIixcbiAgXCJtb2R1bGVcIjogXCIuL2Rpc3QtZXMvaW5kZXguanNcIixcbiAgXCJzaWRlRWZmZWN0c1wiOiBmYWxzZSxcbiAgXCJkZXBlbmRlbmNpZXNcIjoge1xuICAgIFwiQGF3cy1jcnlwdG8vc2hhMS1icm93c2VyXCI6IFwiNS4yLjBcIixcbiAgICBcIkBhd3MtY3J5cHRvL3NoYTI1Ni1icm93c2VyXCI6IFwiNS4yLjBcIixcbiAgICBcIkBhd3MtY3J5cHRvL3NoYTI1Ni1qc1wiOiBcIjUuMi4wXCIsXG4gICAgXCJAYXdzLXNkay9jb3JlXCI6IFwiMy45NDcuMFwiLFxuICAgIFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlXCI6IFwiMy45NTIuMFwiLFxuICAgIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1idWNrZXQtZW5kcG9pbnRcIjogXCIzLjkzNi4wXCIsXG4gICAgXCJAYXdzLXNkay9taWRkbGV3YXJlLWV4cGVjdC1jb250aW51ZVwiOiBcIjMuOTM2LjBcIixcbiAgICBcIkBhd3Mtc2RrL21pZGRsZXdhcmUtZmxleGlibGUtY2hlY2tzdW1zXCI6IFwiMy45NDcuMFwiLFxuICAgIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1ob3N0LWhlYWRlclwiOiBcIjMuOTM2LjBcIixcbiAgICBcIkBhd3Mtc2RrL21pZGRsZXdhcmUtbG9jYXRpb24tY29uc3RyYWludFwiOiBcIjMuOTM2LjBcIixcbiAgICBcIkBhd3Mtc2RrL21pZGRsZXdhcmUtbG9nZ2VyXCI6IFwiMy45MzYuMFwiLFxuICAgIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1yZWN1cnNpb24tZGV0ZWN0aW9uXCI6IFwiMy45NDguMFwiLFxuICAgIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1zZGstczNcIjogXCIzLjk0Ny4wXCIsXG4gICAgXCJAYXdzLXNkay9taWRkbGV3YXJlLXNzZWNcIjogXCIzLjkzNi4wXCIsXG4gICAgXCJAYXdzLXNkay9taWRkbGV3YXJlLXVzZXItYWdlbnRcIjogXCIzLjk0Ny4wXCIsXG4gICAgXCJAYXdzLXNkay9yZWdpb24tY29uZmlnLXJlc29sdmVyXCI6IFwiMy45MzYuMFwiLFxuICAgIFwiQGF3cy1zZGsvc2lnbmF0dXJlLXY0LW11bHRpLXJlZ2lvblwiOiBcIjMuOTQ3LjBcIixcbiAgICBcIkBhd3Mtc2RrL3R5cGVzXCI6IFwiMy45MzYuMFwiLFxuICAgIFwiQGF3cy1zZGsvdXRpbC1lbmRwb2ludHNcIjogXCIzLjkzNi4wXCIsXG4gICAgXCJAYXdzLXNkay91dGlsLXVzZXItYWdlbnQtYnJvd3NlclwiOiBcIjMuOTM2LjBcIixcbiAgICBcIkBhd3Mtc2RrL3V0aWwtdXNlci1hZ2VudC1ub2RlXCI6IFwiMy45NDcuMFwiLFxuICAgIFwiQHNtaXRoeS9jb25maWctcmVzb2x2ZXJcIjogXCJeNC40LjNcIixcbiAgICBcIkBzbWl0aHkvY29yZVwiOiBcIl4zLjE4LjdcIixcbiAgICBcIkBzbWl0aHkvZXZlbnRzdHJlYW0tc2VyZGUtYnJvd3NlclwiOiBcIl40LjIuNVwiLFxuICAgIFwiQHNtaXRoeS9ldmVudHN0cmVhbS1zZXJkZS1jb25maWctcmVzb2x2ZXJcIjogXCJeNC4zLjVcIixcbiAgICBcIkBzbWl0aHkvZXZlbnRzdHJlYW0tc2VyZGUtbm9kZVwiOiBcIl40LjIuNVwiLFxuICAgIFwiQHNtaXRoeS9mZXRjaC1odHRwLWhhbmRsZXJcIjogXCJeNS4zLjZcIixcbiAgICBcIkBzbWl0aHkvaGFzaC1ibG9iLWJyb3dzZXJcIjogXCJeNC4yLjZcIixcbiAgICBcIkBzbWl0aHkvaGFzaC1ub2RlXCI6IFwiXjQuMi41XCIsXG4gICAgXCJAc21pdGh5L2hhc2gtc3RyZWFtLW5vZGVcIjogXCJeNC4yLjVcIixcbiAgICBcIkBzbWl0aHkvaW52YWxpZC1kZXBlbmRlbmN5XCI6IFwiXjQuMi41XCIsXG4gICAgXCJAc21pdGh5L21kNS1qc1wiOiBcIl40LjIuNVwiLFxuICAgIFwiQHNtaXRoeS9taWRkbGV3YXJlLWNvbnRlbnQtbGVuZ3RoXCI6IFwiXjQuMi41XCIsXG4gICAgXCJAc21pdGh5L21pZGRsZXdhcmUtZW5kcG9pbnRcIjogXCJeNC4zLjE0XCIsXG4gICAgXCJAc21pdGh5L21pZGRsZXdhcmUtcmV0cnlcIjogXCJeNC40LjE0XCIsXG4gICAgXCJAc21pdGh5L21pZGRsZXdhcmUtc2VyZGVcIjogXCJeNC4yLjZcIixcbiAgICBcIkBzbWl0aHkvbWlkZGxld2FyZS1zdGFja1wiOiBcIl40LjIuNVwiLFxuICAgIFwiQHNtaXRoeS9ub2RlLWNvbmZpZy1wcm92aWRlclwiOiBcIl40LjMuNVwiLFxuICAgIFwiQHNtaXRoeS9ub2RlLWh0dHAtaGFuZGxlclwiOiBcIl40LjQuNVwiLFxuICAgIFwiQHNtaXRoeS9wcm90b2NvbC1odHRwXCI6IFwiXjUuMy41XCIsXG4gICAgXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjogXCJeNC45LjEwXCIsXG4gICAgXCJAc21pdGh5L3R5cGVzXCI6IFwiXjQuOS4wXCIsXG4gICAgXCJAc21pdGh5L3VybC1wYXJzZXJcIjogXCJeNC4yLjVcIixcbiAgICBcIkBzbWl0aHkvdXRpbC1iYXNlNjRcIjogXCJeNC4zLjBcIixcbiAgICBcIkBzbWl0aHkvdXRpbC1ib2R5LWxlbmd0aC1icm93c2VyXCI6IFwiXjQuMi4wXCIsXG4gICAgXCJAc21pdGh5L3V0aWwtYm9keS1sZW5ndGgtbm9kZVwiOiBcIl40LjIuMVwiLFxuICAgIFwiQHNtaXRoeS91dGlsLWRlZmF1bHRzLW1vZGUtYnJvd3NlclwiOiBcIl40LjMuMTNcIixcbiAgICBcIkBzbWl0aHkvdXRpbC1kZWZhdWx0cy1tb2RlLW5vZGVcIjogXCJeNC4yLjE2XCIsXG4gICAgXCJAc21pdGh5L3V0aWwtZW5kcG9pbnRzXCI6IFwiXjMuMi41XCIsXG4gICAgXCJAc21pdGh5L3V0aWwtbWlkZGxld2FyZVwiOiBcIl40LjIuNVwiLFxuICAgIFwiQHNtaXRoeS91dGlsLXJldHJ5XCI6IFwiXjQuMi41XCIsXG4gICAgXCJAc21pdGh5L3V0aWwtc3RyZWFtXCI6IFwiXjQuNS42XCIsXG4gICAgXCJAc21pdGh5L3V0aWwtdXRmOFwiOiBcIl40LjIuMFwiLFxuICAgIFwiQHNtaXRoeS91dGlsLXdhaXRlclwiOiBcIl40LjIuNVwiLFxuICAgIFwidHNsaWJcIjogXCJeMi42LjJcIlxuICB9LFxuICBcImRldkRlcGVuZGVuY2llc1wiOiB7XG4gICAgXCJAYXdzLXNkay9zaWduYXR1cmUtdjQtY3J0XCI6IFwiMy45NDcuMFwiLFxuICAgIFwiQHRzY29uZmlnL25vZGUxOFwiOiBcIjE4LjIuNFwiLFxuICAgIFwiQHR5cGVzL25vZGVcIjogXCJeMTguMTkuNjlcIixcbiAgICBcImNvbmN1cnJlbnRseVwiOiBcIjcuMC4wXCIsXG4gICAgXCJkb3dubGV2ZWwtZHRzXCI6IFwiMC4xMC4xXCIsXG4gICAgXCJyaW1yYWZcIjogXCIzLjAuMlwiLFxuICAgIFwidHlwZXNjcmlwdFwiOiBcIn41LjguM1wiXG4gIH0sXG4gIFwiZW5naW5lc1wiOiB7XG4gICAgXCJub2RlXCI6IFwiPj0xOC4wLjBcIlxuICB9LFxuICBcInR5cGVzVmVyc2lvbnNcIjoge1xuICAgIFwiPDQuMFwiOiB7XG4gICAgICBcImRpc3QtdHlwZXMvKlwiOiBbXG4gICAgICAgIFwiZGlzdC10eXBlcy90czMuNC8qXCJcbiAgICAgIF1cbiAgICB9XG4gIH0sXG4gIFwiZmlsZXNcIjogW1xuICAgIFwiZGlzdC0qLyoqXCJcbiAgXSxcbiAgXCJhdXRob3JcIjoge1xuICAgIFwibmFtZVwiOiBcIkFXUyBTREsgZm9yIEphdmFTY3JpcHQgVGVhbVwiLFxuICAgIFwidXJsXCI6IFwiaHR0cHM6Ly9hd3MuYW1hem9uLmNvbS9qYXZhc2NyaXB0L1wiXG4gIH0sXG4gIFwibGljZW5zZVwiOiBcIkFwYWNoZS0yLjBcIixcbiAgXCJicm93c2VyXCI6IHtcbiAgICBcIi4vZGlzdC1lcy9ydW50aW1lQ29uZmlnXCI6IFwiLi9kaXN0LWVzL3J1bnRpbWVDb25maWcuYnJvd3NlclwiXG4gIH0sXG4gIFwicmVhY3QtbmF0aXZlXCI6IHtcbiAgICBcIi4vZGlzdC1lcy9ydW50aW1lQ29uZmlnXCI6IFwiLi9kaXN0LWVzL3J1bnRpbWVDb25maWcubmF0aXZlXCJcbiAgfSxcbiAgXCJob21lcGFnZVwiOiBcImh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLXNkay1qcy12My90cmVlL21haW4vY2xpZW50cy9jbGllbnQtczNcIixcbiAgXCJyZXBvc2l0b3J5XCI6IHtcbiAgICBcInR5cGVcIjogXCJnaXRcIixcbiAgICBcInVybFwiOiBcImh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLXNkay1qcy12My5naXRcIixcbiAgICBcImRpcmVjdG9yeVwiOiBcImNsaWVudHMvY2xpZW50LXMzXCJcbiAgfVxufVxuIiwgIid1c2Ugc3RyaWN0JztcblxudmFyIHV0aWxDb25maWdQcm92aWRlciA9IHJlcXVpcmUoJ0BzbWl0aHkvdXRpbC1jb25maWctcHJvdmlkZXInKTtcbnZhciB1dGlsQXJuUGFyc2VyID0gcmVxdWlyZSgnQGF3cy1zZGsvdXRpbC1hcm4tcGFyc2VyJyk7XG52YXIgcHJvdG9jb2xIdHRwID0gcmVxdWlyZSgnQHNtaXRoeS9wcm90b2NvbC1odHRwJyk7XG5cbmNvbnN0IE5PREVfRElTQUJMRV9NVUxUSVJFR0lPTl9BQ0NFU1NfUE9JTlRfRU5WX05BTUUgPSBcIkFXU19TM19ESVNBQkxFX01VTFRJUkVHSU9OX0FDQ0VTU19QT0lOVFNcIjtcbmNvbnN0IE5PREVfRElTQUJMRV9NVUxUSVJFR0lPTl9BQ0NFU1NfUE9JTlRfSU5JX05BTUUgPSBcInMzX2Rpc2FibGVfbXVsdGlyZWdpb25fYWNjZXNzX3BvaW50c1wiO1xuY29uc3QgTk9ERV9ESVNBQkxFX01VTFRJUkVHSU9OX0FDQ0VTU19QT0lOVF9DT05GSUdfT1BUSU9OUyA9IHtcbiAgICBlbnZpcm9ubWVudFZhcmlhYmxlU2VsZWN0b3I6IChlbnYpID0+IHV0aWxDb25maWdQcm92aWRlci5ib29sZWFuU2VsZWN0b3IoZW52LCBOT0RFX0RJU0FCTEVfTVVMVElSRUdJT05fQUNDRVNTX1BPSU5UX0VOVl9OQU1FLCB1dGlsQ29uZmlnUHJvdmlkZXIuU2VsZWN0b3JUeXBlLkVOViksXG4gICAgY29uZmlnRmlsZVNlbGVjdG9yOiAocHJvZmlsZSkgPT4gdXRpbENvbmZpZ1Byb3ZpZGVyLmJvb2xlYW5TZWxlY3Rvcihwcm9maWxlLCBOT0RFX0RJU0FCTEVfTVVMVElSRUdJT05fQUNDRVNTX1BPSU5UX0lOSV9OQU1FLCB1dGlsQ29uZmlnUHJvdmlkZXIuU2VsZWN0b3JUeXBlLkNPTkZJRyksXG4gICAgZGVmYXVsdDogZmFsc2UsXG59O1xuXG5jb25zdCBOT0RFX1VTRV9BUk5fUkVHSU9OX0VOVl9OQU1FID0gXCJBV1NfUzNfVVNFX0FSTl9SRUdJT05cIjtcbmNvbnN0IE5PREVfVVNFX0FSTl9SRUdJT05fSU5JX05BTUUgPSBcInMzX3VzZV9hcm5fcmVnaW9uXCI7XG5jb25zdCBOT0RFX1VTRV9BUk5fUkVHSU9OX0NPTkZJR19PUFRJT05TID0ge1xuICAgIGVudmlyb25tZW50VmFyaWFibGVTZWxlY3RvcjogKGVudikgPT4gdXRpbENvbmZpZ1Byb3ZpZGVyLmJvb2xlYW5TZWxlY3RvcihlbnYsIE5PREVfVVNFX0FSTl9SRUdJT05fRU5WX05BTUUsIHV0aWxDb25maWdQcm92aWRlci5TZWxlY3RvclR5cGUuRU5WKSxcbiAgICBjb25maWdGaWxlU2VsZWN0b3I6IChwcm9maWxlKSA9PiB1dGlsQ29uZmlnUHJvdmlkZXIuYm9vbGVhblNlbGVjdG9yKHByb2ZpbGUsIE5PREVfVVNFX0FSTl9SRUdJT05fSU5JX05BTUUsIHV0aWxDb25maWdQcm92aWRlci5TZWxlY3RvclR5cGUuQ09ORklHKSxcbiAgICBkZWZhdWx0OiB1bmRlZmluZWQsXG59O1xuXG5jb25zdCBET01BSU5fUEFUVEVSTiA9IC9eW2EtejAtOV1bYS16MC05XFwuXFwtXXsxLDYxfVthLXowLTldJC87XG5jb25zdCBJUF9BRERSRVNTX1BBVFRFUk4gPSAvKFxcZCtcXC4pezN9XFxkKy87XG5jb25zdCBET1RTX1BBVFRFUk4gPSAvXFwuXFwuLztcbmNvbnN0IERPVF9QQVRURVJOID0gL1xcLi87XG5jb25zdCBTM19IT1NUTkFNRV9QQVRURVJOID0gL14oLitcXC4pP3MzKC1maXBzKT8oXFwuZHVhbHN0YWNrKT9bLi1dKFthLXowLTktXSspXFwuLztcbmNvbnN0IFMzX1VTX0VBU1RfMV9BTFROQU1FX1BBVFRFUk4gPSAvXnMzKC1leHRlcm5hbC0xKT9cXC5hbWF6b25hd3NcXC5jb20kLztcbmNvbnN0IEFXU19QQVJUSVRJT05fU1VGRklYID0gXCJhbWF6b25hd3MuY29tXCI7XG5jb25zdCBpc0J1Y2tldE5hbWVPcHRpb25zID0gKG9wdGlvbnMpID0+IHR5cGVvZiBvcHRpb25zLmJ1Y2tldE5hbWUgPT09IFwic3RyaW5nXCI7XG5jb25zdCBpc0Ruc0NvbXBhdGlibGVCdWNrZXROYW1lID0gKGJ1Y2tldE5hbWUpID0+IERPTUFJTl9QQVRURVJOLnRlc3QoYnVja2V0TmFtZSkgJiYgIUlQX0FERFJFU1NfUEFUVEVSTi50ZXN0KGJ1Y2tldE5hbWUpICYmICFET1RTX1BBVFRFUk4udGVzdChidWNrZXROYW1lKTtcbmNvbnN0IGdldFJlZ2lvbmFsU3VmZml4ID0gKGhvc3RuYW1lKSA9PiB7XG4gICAgY29uc3QgcGFydHMgPSBob3N0bmFtZS5tYXRjaChTM19IT1NUTkFNRV9QQVRURVJOKTtcbiAgICByZXR1cm4gW3BhcnRzWzRdLCBob3N0bmFtZS5yZXBsYWNlKG5ldyBSZWdFeHAoYF4ke3BhcnRzWzBdfWApLCBcIlwiKV07XG59O1xuY29uc3QgZ2V0U3VmZml4ID0gKGhvc3RuYW1lKSA9PiBTM19VU19FQVNUXzFfQUxUTkFNRV9QQVRURVJOLnRlc3QoaG9zdG5hbWUpID8gW1widXMtZWFzdC0xXCIsIEFXU19QQVJUSVRJT05fU1VGRklYXSA6IGdldFJlZ2lvbmFsU3VmZml4KGhvc3RuYW1lKTtcbmNvbnN0IGdldFN1ZmZpeEZvckFybkVuZHBvaW50ID0gKGhvc3RuYW1lKSA9PiBTM19VU19FQVNUXzFfQUxUTkFNRV9QQVRURVJOLnRlc3QoaG9zdG5hbWUpXG4gICAgPyBbaG9zdG5hbWUucmVwbGFjZShgLiR7QVdTX1BBUlRJVElPTl9TVUZGSVh9YCwgXCJcIiksIEFXU19QQVJUSVRJT05fU1VGRklYXVxuICAgIDogZ2V0UmVnaW9uYWxTdWZmaXgoaG9zdG5hbWUpO1xuY29uc3QgdmFsaWRhdGVBcm5FbmRwb2ludE9wdGlvbnMgPSAob3B0aW9ucykgPT4ge1xuICAgIGlmIChvcHRpb25zLnBhdGhTdHlsZUVuZHBvaW50KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIlBhdGgtc3R5bGUgUzMgZW5kcG9pbnQgaXMgbm90IHN1cHBvcnRlZCB3aGVuIGJ1Y2tldCBpcyBhbiBBUk5cIik7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLmFjY2VsZXJhdGVFbmRwb2ludCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJBY2NlbGVyYXRlIGVuZHBvaW50IGlzIG5vdCBzdXBwb3J0ZWQgd2hlbiBidWNrZXQgaXMgYW4gQVJOXCIpO1xuICAgIH1cbiAgICBpZiAoIW9wdGlvbnMudGxzQ29tcGF0aWJsZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJIVFRQUyBpcyByZXF1aXJlZCB3aGVuIGJ1Y2tldCBpcyBhbiBBUk5cIik7XG4gICAgfVxufTtcbmNvbnN0IHZhbGlkYXRlU2VydmljZSA9IChzZXJ2aWNlKSA9PiB7XG4gICAgaWYgKHNlcnZpY2UgIT09IFwiczNcIiAmJiBzZXJ2aWNlICE9PSBcInMzLW91dHBvc3RzXCIgJiYgc2VydmljZSAhPT0gXCJzMy1vYmplY3QtbGFtYmRhXCIpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRXhwZWN0ICdzMycgb3IgJ3MzLW91dHBvc3RzJyBvciAnczMtb2JqZWN0LWxhbWJkYScgaW4gQVJOIHNlcnZpY2UgY29tcG9uZW50XCIpO1xuICAgIH1cbn07XG5jb25zdCB2YWxpZGF0ZVMzU2VydmljZSA9IChzZXJ2aWNlKSA9PiB7XG4gICAgaWYgKHNlcnZpY2UgIT09IFwiczNcIikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJFeHBlY3QgJ3MzJyBpbiBBY2Nlc3Nwb2ludCBBUk4gc2VydmljZSBjb21wb25lbnRcIik7XG4gICAgfVxufTtcbmNvbnN0IHZhbGlkYXRlT3V0cG9zdFNlcnZpY2UgPSAoc2VydmljZSkgPT4ge1xuICAgIGlmIChzZXJ2aWNlICE9PSBcInMzLW91dHBvc3RzXCIpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRXhwZWN0ICdzMy1wb3N0cycgaW4gT3V0cG9zdCBBUk4gc2VydmljZSBjb21wb25lbnRcIik7XG4gICAgfVxufTtcbmNvbnN0IHZhbGlkYXRlUGFydGl0aW9uID0gKHBhcnRpdGlvbiwgb3B0aW9ucykgPT4ge1xuICAgIGlmIChwYXJ0aXRpb24gIT09IG9wdGlvbnMuY2xpZW50UGFydGl0aW9uKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgUGFydGl0aW9uIGluIEFSTiBpcyBpbmNvbXBhdGlibGUsIGdvdCBcIiR7cGFydGl0aW9ufVwiIGJ1dCBleHBlY3RlZCBcIiR7b3B0aW9ucy5jbGllbnRQYXJ0aXRpb259XCJgKTtcbiAgICB9XG59O1xuY29uc3QgdmFsaWRhdGVSZWdpb24gPSAocmVnaW9uLCBvcHRpb25zKSA9PiB7IH07XG5jb25zdCB2YWxpZGF0ZVJlZ2lvbmFsQ2xpZW50ID0gKHJlZ2lvbikgPT4ge1xuICAgIGlmIChbXCJzMy1leHRlcm5hbC0xXCIsIFwiYXdzLWdsb2JhbFwiXS5pbmNsdWRlcyhyZWdpb24pKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgQ2xpZW50IHJlZ2lvbiAke3JlZ2lvbn0gaXMgbm90IHJlZ2lvbmFsYCk7XG4gICAgfVxufTtcbmNvbnN0IHZhbGlkYXRlQWNjb3VudElkID0gKGFjY291bnRJZCkgPT4ge1xuICAgIGlmICghL1swLTldezEyfS8uZXhlYyhhY2NvdW50SWQpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkFjY2VzcyBwb2ludCBBUk4gYWNjb3VudElEIGRvZXMgbm90IG1hdGNoIHJlZ2V4ICdbMC05XXsxMn0nXCIpO1xuICAgIH1cbn07XG5jb25zdCB2YWxpZGF0ZUROU0hvc3RMYWJlbCA9IChsYWJlbCwgb3B0aW9ucyA9IHsgdGxzQ29tcGF0aWJsZTogdHJ1ZSB9KSA9PiB7XG4gICAgaWYgKGxhYmVsLmxlbmd0aCA+PSA2NCB8fFxuICAgICAgICAhL15bYS16MC05XVthLXowLTkuLV0qW2EtejAtOV0kLy50ZXN0KGxhYmVsKSB8fFxuICAgICAgICAvKFxcZCtcXC4pezN9XFxkKy8udGVzdChsYWJlbCkgfHxcbiAgICAgICAgL1suLV17Mn0vLnRlc3QobGFiZWwpIHx8XG4gICAgICAgIChvcHRpb25zPy50bHNDb21wYXRpYmxlICYmIERPVF9QQVRURVJOLnRlc3QobGFiZWwpKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgRE5TIGxhYmVsICR7bGFiZWx9YCk7XG4gICAgfVxufTtcbmNvbnN0IHZhbGlkYXRlQ3VzdG9tRW5kcG9pbnQgPSAob3B0aW9ucykgPT4ge1xuICAgIGlmIChvcHRpb25zLmlzQ3VzdG9tRW5kcG9pbnQpIHtcbiAgICAgICAgaWYgKG9wdGlvbnMuZHVhbHN0YWNrRW5kcG9pbnQpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJEdWFsc3RhY2sgZW5kcG9pbnQgaXMgbm90IHN1cHBvcnRlZCB3aXRoIGN1c3RvbSBlbmRwb2ludFwiKTtcbiAgICAgICAgaWYgKG9wdGlvbnMuYWNjZWxlcmF0ZUVuZHBvaW50KVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQWNjZWxlcmF0ZSBlbmRwb2ludCBpcyBub3Qgc3VwcG9ydGVkIHdpdGggY3VzdG9tIGVuZHBvaW50XCIpO1xuICAgIH1cbn07XG5jb25zdCBnZXRBcm5SZXNvdXJjZXMgPSAocmVzb3VyY2UpID0+IHtcbiAgICBjb25zdCBkZWxpbWl0ZXIgPSByZXNvdXJjZS5pbmNsdWRlcyhcIjpcIikgPyBcIjpcIiA6IFwiL1wiO1xuICAgIGNvbnN0IFtyZXNvdXJjZVR5cGUsIC4uLnJlc3RdID0gcmVzb3VyY2Uuc3BsaXQoZGVsaW1pdGVyKTtcbiAgICBpZiAocmVzb3VyY2VUeXBlID09PSBcImFjY2Vzc3BvaW50XCIpIHtcbiAgICAgICAgaWYgKHJlc3QubGVuZ3RoICE9PSAxIHx8IHJlc3RbMF0gPT09IFwiXCIpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQWNjZXNzIFBvaW50IEFSTiBzaG91bGQgaGF2ZSBvbmUgcmVzb3VyY2UgYWNjZXNzcG9pbnQke2RlbGltaXRlcn17YWNjZXNzcG9pbnRuYW1lfWApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IGFjY2Vzc3BvaW50TmFtZTogcmVzdFswXSB9O1xuICAgIH1cbiAgICBlbHNlIGlmIChyZXNvdXJjZVR5cGUgPT09IFwib3V0cG9zdFwiKSB7XG4gICAgICAgIGlmICghcmVzdFswXSB8fCByZXN0WzFdICE9PSBcImFjY2Vzc3BvaW50XCIgfHwgIXJlc3RbMl0gfHwgcmVzdC5sZW5ndGggIT09IDMpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgT3V0cG9zdCBBUk4gc2hvdWxkIGhhdmUgcmVzb3VyY2Ugb3V0cG9zdCR7ZGVsaW1pdGVyfXtvdXRwb3N0SWR9JHtkZWxpbWl0ZXJ9YWNjZXNzcG9pbnQke2RlbGltaXRlcn17YWNjZXNzcG9pbnROYW1lfWApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IFtvdXRwb3N0SWQsIF8sIGFjY2Vzc3BvaW50TmFtZV0gPSByZXN0O1xuICAgICAgICByZXR1cm4geyBvdXRwb3N0SWQsIGFjY2Vzc3BvaW50TmFtZSB9O1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBBUk4gcmVzb3VyY2Ugc2hvdWxkIGJlZ2luIHdpdGggJ2FjY2Vzc3BvaW50JHtkZWxpbWl0ZXJ9JyBvciAnb3V0cG9zdCR7ZGVsaW1pdGVyfSdgKTtcbiAgICB9XG59O1xuY29uc3QgdmFsaWRhdGVOb0R1YWxzdGFjayA9IChkdWFsc3RhY2tFbmRwb2ludCkgPT4geyB9O1xuY29uc3QgdmFsaWRhdGVOb0ZJUFMgPSAodXNlRmlwc0VuZHBvaW50KSA9PiB7XG4gICAgaWYgKHVzZUZpcHNFbmRwb2ludClcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGSVBTIHJlZ2lvbiBpcyBub3Qgc3VwcG9ydGVkIHdpdGggT3V0cG9zdC5gKTtcbn07XG5jb25zdCB2YWxpZGF0ZU1yYXBBbGlhcyA9IChuYW1lKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgICAgbmFtZS5zcGxpdChcIi5cIikuZm9yRWFjaCgobGFiZWwpID0+IHtcbiAgICAgICAgICAgIHZhbGlkYXRlRE5TSG9zdExhYmVsKGxhYmVsKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNhdGNoIChlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgXCIke25hbWV9XCIgaXMgbm90IGEgRE5TIGNvbXBhdGlibGUgbmFtZS5gKTtcbiAgICB9XG59O1xuXG5jb25zdCBidWNrZXRIb3N0bmFtZSA9IChvcHRpb25zKSA9PiB7XG4gICAgdmFsaWRhdGVDdXN0b21FbmRwb2ludChvcHRpb25zKTtcbiAgICByZXR1cm4gaXNCdWNrZXROYW1lT3B0aW9ucyhvcHRpb25zKVxuICAgICAgICA/XG4gICAgICAgICAgICBnZXRFbmRwb2ludEZyb21CdWNrZXROYW1lKG9wdGlvbnMpXG4gICAgICAgIDpcbiAgICAgICAgICAgIGdldEVuZHBvaW50RnJvbUFybihvcHRpb25zKTtcbn07XG5jb25zdCBnZXRFbmRwb2ludEZyb21CdWNrZXROYW1lID0gKHsgYWNjZWxlcmF0ZUVuZHBvaW50ID0gZmFsc2UsIGNsaWVudFJlZ2lvbjogcmVnaW9uLCBiYXNlSG9zdG5hbWUsIGJ1Y2tldE5hbWUsIGR1YWxzdGFja0VuZHBvaW50ID0gZmFsc2UsIGZpcHNFbmRwb2ludCA9IGZhbHNlLCBwYXRoU3R5bGVFbmRwb2ludCA9IGZhbHNlLCB0bHNDb21wYXRpYmxlID0gdHJ1ZSwgaXNDdXN0b21FbmRwb2ludCA9IGZhbHNlLCB9KSA9PiB7XG4gICAgY29uc3QgW2NsaWVudFJlZ2lvbiwgaG9zdG5hbWVTdWZmaXhdID0gaXNDdXN0b21FbmRwb2ludCA/IFtyZWdpb24sIGJhc2VIb3N0bmFtZV0gOiBnZXRTdWZmaXgoYmFzZUhvc3RuYW1lKTtcbiAgICBpZiAocGF0aFN0eWxlRW5kcG9pbnQgfHwgIWlzRG5zQ29tcGF0aWJsZUJ1Y2tldE5hbWUoYnVja2V0TmFtZSkgfHwgKHRsc0NvbXBhdGlibGUgJiYgRE9UX1BBVFRFUk4udGVzdChidWNrZXROYW1lKSkpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGJ1Y2tldEVuZHBvaW50OiBmYWxzZSxcbiAgICAgICAgICAgIGhvc3RuYW1lOiBkdWFsc3RhY2tFbmRwb2ludCA/IGBzMy5kdWFsc3RhY2suJHtjbGllbnRSZWdpb259LiR7aG9zdG5hbWVTdWZmaXh9YCA6IGJhc2VIb3N0bmFtZSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgaWYgKGFjY2VsZXJhdGVFbmRwb2ludCkge1xuICAgICAgICBiYXNlSG9zdG5hbWUgPSBgczMtYWNjZWxlcmF0ZSR7ZHVhbHN0YWNrRW5kcG9pbnQgPyBcIi5kdWFsc3RhY2tcIiA6IFwiXCJ9LiR7aG9zdG5hbWVTdWZmaXh9YDtcbiAgICB9XG4gICAgZWxzZSBpZiAoZHVhbHN0YWNrRW5kcG9pbnQpIHtcbiAgICAgICAgYmFzZUhvc3RuYW1lID0gYHMzLmR1YWxzdGFjay4ke2NsaWVudFJlZ2lvbn0uJHtob3N0bmFtZVN1ZmZpeH1gO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICBidWNrZXRFbmRwb2ludDogdHJ1ZSxcbiAgICAgICAgaG9zdG5hbWU6IGAke2J1Y2tldE5hbWV9LiR7YmFzZUhvc3RuYW1lfWAsXG4gICAgfTtcbn07XG5jb25zdCBnZXRFbmRwb2ludEZyb21Bcm4gPSAob3B0aW9ucykgPT4ge1xuICAgIGNvbnN0IHsgaXNDdXN0b21FbmRwb2ludCwgYmFzZUhvc3RuYW1lLCBjbGllbnRSZWdpb24gfSA9IG9wdGlvbnM7XG4gICAgY29uc3QgaG9zdG5hbWVTdWZmaXggPSBpc0N1c3RvbUVuZHBvaW50ID8gYmFzZUhvc3RuYW1lIDogZ2V0U3VmZml4Rm9yQXJuRW5kcG9pbnQoYmFzZUhvc3RuYW1lKVsxXTtcbiAgICBjb25zdCB7IHBhdGhTdHlsZUVuZHBvaW50LCBhY2NlbGVyYXRlRW5kcG9pbnQgPSBmYWxzZSwgZmlwc0VuZHBvaW50ID0gZmFsc2UsIHRsc0NvbXBhdGlibGUgPSB0cnVlLCBidWNrZXROYW1lLCBjbGllbnRQYXJ0aXRpb24gPSBcImF3c1wiLCB9ID0gb3B0aW9ucztcbiAgICB2YWxpZGF0ZUFybkVuZHBvaW50T3B0aW9ucyh7IHBhdGhTdHlsZUVuZHBvaW50LCBhY2NlbGVyYXRlRW5kcG9pbnQsIHRsc0NvbXBhdGlibGUgfSk7XG4gICAgY29uc3QgeyBzZXJ2aWNlLCBwYXJ0aXRpb24sIGFjY291bnRJZCwgcmVnaW9uLCByZXNvdXJjZSB9ID0gYnVja2V0TmFtZTtcbiAgICB2YWxpZGF0ZVNlcnZpY2Uoc2VydmljZSk7XG4gICAgdmFsaWRhdGVQYXJ0aXRpb24ocGFydGl0aW9uLCB7IGNsaWVudFBhcnRpdGlvbiB9KTtcbiAgICB2YWxpZGF0ZUFjY291bnRJZChhY2NvdW50SWQpO1xuICAgIGNvbnN0IHsgYWNjZXNzcG9pbnROYW1lLCBvdXRwb3N0SWQgfSA9IGdldEFyblJlc291cmNlcyhyZXNvdXJjZSk7XG4gICAgaWYgKHNlcnZpY2UgPT09IFwiczMtb2JqZWN0LWxhbWJkYVwiKSB7XG4gICAgICAgIHJldHVybiBnZXRFbmRwb2ludEZyb21PYmplY3RMYW1iZGFBcm4oeyAuLi5vcHRpb25zLCB0bHNDb21wYXRpYmxlLCBidWNrZXROYW1lLCBhY2Nlc3Nwb2ludE5hbWUsIGhvc3RuYW1lU3VmZml4IH0pO1xuICAgIH1cbiAgICBpZiAocmVnaW9uID09PSBcIlwiKSB7XG4gICAgICAgIHJldHVybiBnZXRFbmRwb2ludEZyb21NUkFQQXJuKHsgLi4ub3B0aW9ucywgbXJhcEFsaWFzOiBhY2Nlc3Nwb2ludE5hbWUsIGhvc3RuYW1lU3VmZml4IH0pO1xuICAgIH1cbiAgICBpZiAob3V0cG9zdElkKSB7XG4gICAgICAgIHJldHVybiBnZXRFbmRwb2ludEZyb21PdXRwb3N0QXJuKHsgLi4ub3B0aW9ucywgY2xpZW50UmVnaW9uLCBvdXRwb3N0SWQsIGFjY2Vzc3BvaW50TmFtZSwgaG9zdG5hbWVTdWZmaXggfSk7XG4gICAgfVxuICAgIHJldHVybiBnZXRFbmRwb2ludEZyb21BY2Nlc3NQb2ludEFybih7IC4uLm9wdGlvbnMsIGNsaWVudFJlZ2lvbiwgYWNjZXNzcG9pbnROYW1lLCBob3N0bmFtZVN1ZmZpeCB9KTtcbn07XG5jb25zdCBnZXRFbmRwb2ludEZyb21PYmplY3RMYW1iZGFBcm4gPSAoeyBkdWFsc3RhY2tFbmRwb2ludCA9IGZhbHNlLCBmaXBzRW5kcG9pbnQgPSBmYWxzZSwgdGxzQ29tcGF0aWJsZSA9IHRydWUsIHVzZUFyblJlZ2lvbiwgY2xpZW50UmVnaW9uLCBjbGllbnRTaWduaW5nUmVnaW9uID0gY2xpZW50UmVnaW9uLCBhY2Nlc3Nwb2ludE5hbWUsIGJ1Y2tldE5hbWUsIGhvc3RuYW1lU3VmZml4LCB9KSA9PiB7XG4gICAgY29uc3QgeyBhY2NvdW50SWQsIHJlZ2lvbiwgc2VydmljZSB9ID0gYnVja2V0TmFtZTtcbiAgICB2YWxpZGF0ZVJlZ2lvbmFsQ2xpZW50KGNsaWVudFJlZ2lvbik7XG4gICAgY29uc3QgRE5TSG9zdExhYmVsID0gYCR7YWNjZXNzcG9pbnROYW1lfS0ke2FjY291bnRJZH1gO1xuICAgIHZhbGlkYXRlRE5TSG9zdExhYmVsKEROU0hvc3RMYWJlbCwgeyB0bHNDb21wYXRpYmxlIH0pO1xuICAgIGNvbnN0IGVuZHBvaW50UmVnaW9uID0gdXNlQXJuUmVnaW9uID8gcmVnaW9uIDogY2xpZW50UmVnaW9uO1xuICAgIGNvbnN0IHNpZ25pbmdSZWdpb24gPSB1c2VBcm5SZWdpb24gPyByZWdpb24gOiBjbGllbnRTaWduaW5nUmVnaW9uO1xuICAgIHJldHVybiB7XG4gICAgICAgIGJ1Y2tldEVuZHBvaW50OiB0cnVlLFxuICAgICAgICBob3N0bmFtZTogYCR7RE5TSG9zdExhYmVsfS4ke3NlcnZpY2V9JHtmaXBzRW5kcG9pbnQgPyBcIi1maXBzXCIgOiBcIlwifS4ke2VuZHBvaW50UmVnaW9ufS4ke2hvc3RuYW1lU3VmZml4fWAsXG4gICAgICAgIHNpZ25pbmdSZWdpb24sXG4gICAgICAgIHNpZ25pbmdTZXJ2aWNlOiBzZXJ2aWNlLFxuICAgIH07XG59O1xuY29uc3QgZ2V0RW5kcG9pbnRGcm9tTVJBUEFybiA9ICh7IGRpc2FibGVNdWx0aXJlZ2lvbkFjY2Vzc1BvaW50cywgZHVhbHN0YWNrRW5kcG9pbnQgPSBmYWxzZSwgaXNDdXN0b21FbmRwb2ludCwgbXJhcEFsaWFzLCBob3N0bmFtZVN1ZmZpeCwgfSkgPT4ge1xuICAgIGlmIChkaXNhYmxlTXVsdGlyZWdpb25BY2Nlc3NQb2ludHMgPT09IHRydWUpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiU0RLIGlzIGF0dGVtcHRpbmcgdG8gdXNlIGEgTVJBUCBBUk4uIFBsZWFzZSBlbmFibGUgdG8gZmVhdHVyZS5cIik7XG4gICAgfVxuICAgIHZhbGlkYXRlTXJhcEFsaWFzKG1yYXBBbGlhcyk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgYnVja2V0RW5kcG9pbnQ6IHRydWUsXG4gICAgICAgIGhvc3RuYW1lOiBgJHttcmFwQWxpYXN9JHtpc0N1c3RvbUVuZHBvaW50ID8gXCJcIiA6IGAuYWNjZXNzcG9pbnQuczMtZ2xvYmFsYH0uJHtob3N0bmFtZVN1ZmZpeH1gLFxuICAgICAgICBzaWduaW5nUmVnaW9uOiBcIipcIixcbiAgICB9O1xufTtcbmNvbnN0IGdldEVuZHBvaW50RnJvbU91dHBvc3RBcm4gPSAoeyB1c2VBcm5SZWdpb24sIGNsaWVudFJlZ2lvbiwgY2xpZW50U2lnbmluZ1JlZ2lvbiA9IGNsaWVudFJlZ2lvbiwgYnVja2V0TmFtZSwgb3V0cG9zdElkLCBkdWFsc3RhY2tFbmRwb2ludCA9IGZhbHNlLCBmaXBzRW5kcG9pbnQgPSBmYWxzZSwgdGxzQ29tcGF0aWJsZSA9IHRydWUsIGFjY2Vzc3BvaW50TmFtZSwgaXNDdXN0b21FbmRwb2ludCwgaG9zdG5hbWVTdWZmaXgsIH0pID0+IHtcbiAgICB2YWxpZGF0ZVJlZ2lvbmFsQ2xpZW50KGNsaWVudFJlZ2lvbik7XG4gICAgY29uc3QgRE5TSG9zdExhYmVsID0gYCR7YWNjZXNzcG9pbnROYW1lfS0ke2J1Y2tldE5hbWUuYWNjb3VudElkfWA7XG4gICAgdmFsaWRhdGVETlNIb3N0TGFiZWwoRE5TSG9zdExhYmVsLCB7IHRsc0NvbXBhdGlibGUgfSk7XG4gICAgY29uc3QgZW5kcG9pbnRSZWdpb24gPSB1c2VBcm5SZWdpb24gPyBidWNrZXROYW1lLnJlZ2lvbiA6IGNsaWVudFJlZ2lvbjtcbiAgICBjb25zdCBzaWduaW5nUmVnaW9uID0gdXNlQXJuUmVnaW9uID8gYnVja2V0TmFtZS5yZWdpb24gOiBjbGllbnRTaWduaW5nUmVnaW9uO1xuICAgIHZhbGlkYXRlT3V0cG9zdFNlcnZpY2UoYnVja2V0TmFtZS5zZXJ2aWNlKTtcbiAgICB2YWxpZGF0ZUROU0hvc3RMYWJlbChvdXRwb3N0SWQsIHsgdGxzQ29tcGF0aWJsZSB9KTtcbiAgICB2YWxpZGF0ZU5vRklQUyhmaXBzRW5kcG9pbnQpO1xuICAgIGNvbnN0IGhvc3RuYW1lUHJlZml4ID0gYCR7RE5TSG9zdExhYmVsfS4ke291dHBvc3RJZH1gO1xuICAgIHJldHVybiB7XG4gICAgICAgIGJ1Y2tldEVuZHBvaW50OiB0cnVlLFxuICAgICAgICBob3N0bmFtZTogYCR7aG9zdG5hbWVQcmVmaXh9JHtpc0N1c3RvbUVuZHBvaW50ID8gXCJcIiA6IGAuczMtb3V0cG9zdHMuJHtlbmRwb2ludFJlZ2lvbn1gfS4ke2hvc3RuYW1lU3VmZml4fWAsXG4gICAgICAgIHNpZ25pbmdSZWdpb24sXG4gICAgICAgIHNpZ25pbmdTZXJ2aWNlOiBcInMzLW91dHBvc3RzXCIsXG4gICAgfTtcbn07XG5jb25zdCBnZXRFbmRwb2ludEZyb21BY2Nlc3NQb2ludEFybiA9ICh7IHVzZUFyblJlZ2lvbiwgY2xpZW50UmVnaW9uLCBjbGllbnRTaWduaW5nUmVnaW9uID0gY2xpZW50UmVnaW9uLCBidWNrZXROYW1lLCBkdWFsc3RhY2tFbmRwb2ludCA9IGZhbHNlLCBmaXBzRW5kcG9pbnQgPSBmYWxzZSwgdGxzQ29tcGF0aWJsZSA9IHRydWUsIGFjY2Vzc3BvaW50TmFtZSwgaXNDdXN0b21FbmRwb2ludCwgaG9zdG5hbWVTdWZmaXgsIH0pID0+IHtcbiAgICB2YWxpZGF0ZVJlZ2lvbmFsQ2xpZW50KGNsaWVudFJlZ2lvbik7XG4gICAgY29uc3QgaG9zdG5hbWVQcmVmaXggPSBgJHthY2Nlc3Nwb2ludE5hbWV9LSR7YnVja2V0TmFtZS5hY2NvdW50SWR9YDtcbiAgICB2YWxpZGF0ZUROU0hvc3RMYWJlbChob3N0bmFtZVByZWZpeCwgeyB0bHNDb21wYXRpYmxlIH0pO1xuICAgIGNvbnN0IGVuZHBvaW50UmVnaW9uID0gdXNlQXJuUmVnaW9uID8gYnVja2V0TmFtZS5yZWdpb24gOiBjbGllbnRSZWdpb247XG4gICAgY29uc3Qgc2lnbmluZ1JlZ2lvbiA9IHVzZUFyblJlZ2lvbiA/IGJ1Y2tldE5hbWUucmVnaW9uIDogY2xpZW50U2lnbmluZ1JlZ2lvbjtcbiAgICB2YWxpZGF0ZVMzU2VydmljZShidWNrZXROYW1lLnNlcnZpY2UpO1xuICAgIHJldHVybiB7XG4gICAgICAgIGJ1Y2tldEVuZHBvaW50OiB0cnVlLFxuICAgICAgICBob3N0bmFtZTogYCR7aG9zdG5hbWVQcmVmaXh9JHtpc0N1c3RvbUVuZHBvaW50XG4gICAgICAgICAgICA/IFwiXCJcbiAgICAgICAgICAgIDogYC5zMy1hY2Nlc3Nwb2ludCR7Zmlwc0VuZHBvaW50ID8gXCItZmlwc1wiIDogXCJcIn0ke2R1YWxzdGFja0VuZHBvaW50ID8gXCIuZHVhbHN0YWNrXCIgOiBcIlwifS4ke2VuZHBvaW50UmVnaW9ufWB9LiR7aG9zdG5hbWVTdWZmaXh9YCxcbiAgICAgICAgc2lnbmluZ1JlZ2lvbixcbiAgICB9O1xufTtcblxuY29uc3QgYnVja2V0RW5kcG9pbnRNaWRkbGV3YXJlID0gKG9wdGlvbnMpID0+IChuZXh0LCBjb250ZXh0KSA9PiBhc3luYyAoYXJncykgPT4ge1xuICAgIGNvbnN0IHsgQnVja2V0OiBidWNrZXROYW1lIH0gPSBhcmdzLmlucHV0O1xuICAgIGxldCByZXBsYWNlQnVja2V0SW5QYXRoID0gb3B0aW9ucy5idWNrZXRFbmRwb2ludDtcbiAgICBjb25zdCByZXF1ZXN0ID0gYXJncy5yZXF1ZXN0O1xuICAgIGlmIChwcm90b2NvbEh0dHAuSHR0cFJlcXVlc3QuaXNJbnN0YW5jZShyZXF1ZXN0KSkge1xuICAgICAgICBpZiAob3B0aW9ucy5idWNrZXRFbmRwb2ludCkge1xuICAgICAgICAgICAgcmVxdWVzdC5ob3N0bmFtZSA9IGJ1Y2tldE5hbWU7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodXRpbEFyblBhcnNlci52YWxpZGF0ZShidWNrZXROYW1lKSkge1xuICAgICAgICAgICAgY29uc3QgYnVja2V0QXJuID0gdXRpbEFyblBhcnNlci5wYXJzZShidWNrZXROYW1lKTtcbiAgICAgICAgICAgIGNvbnN0IGNsaWVudFJlZ2lvbiA9IGF3YWl0IG9wdGlvbnMucmVnaW9uKCk7XG4gICAgICAgICAgICBjb25zdCB1c2VEdWFsc3RhY2tFbmRwb2ludCA9IGF3YWl0IG9wdGlvbnMudXNlRHVhbHN0YWNrRW5kcG9pbnQoKTtcbiAgICAgICAgICAgIGNvbnN0IHVzZUZpcHNFbmRwb2ludCA9IGF3YWl0IG9wdGlvbnMudXNlRmlwc0VuZHBvaW50KCk7XG4gICAgICAgICAgICBjb25zdCB7IHBhcnRpdGlvbiwgc2lnbmluZ1JlZ2lvbiA9IGNsaWVudFJlZ2lvbiB9ID0gKGF3YWl0IG9wdGlvbnMucmVnaW9uSW5mb1Byb3ZpZGVyKGNsaWVudFJlZ2lvbiwgeyB1c2VEdWFsc3RhY2tFbmRwb2ludCwgdXNlRmlwc0VuZHBvaW50IH0pKSB8fCB7fTtcbiAgICAgICAgICAgIGNvbnN0IHVzZUFyblJlZ2lvbiA9IGF3YWl0IG9wdGlvbnMudXNlQXJuUmVnaW9uKCk7XG4gICAgICAgICAgICBjb25zdCB7IGhvc3RuYW1lLCBidWNrZXRFbmRwb2ludCwgc2lnbmluZ1JlZ2lvbjogbW9kaWZpZWRTaWduaW5nUmVnaW9uLCBzaWduaW5nU2VydmljZSwgfSA9IGJ1Y2tldEhvc3RuYW1lKHtcbiAgICAgICAgICAgICAgICBidWNrZXROYW1lOiBidWNrZXRBcm4sXG4gICAgICAgICAgICAgICAgYmFzZUhvc3RuYW1lOiByZXF1ZXN0Lmhvc3RuYW1lLFxuICAgICAgICAgICAgICAgIGFjY2VsZXJhdGVFbmRwb2ludDogb3B0aW9ucy51c2VBY2NlbGVyYXRlRW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgZHVhbHN0YWNrRW5kcG9pbnQ6IHVzZUR1YWxzdGFja0VuZHBvaW50LFxuICAgICAgICAgICAgICAgIGZpcHNFbmRwb2ludDogdXNlRmlwc0VuZHBvaW50LFxuICAgICAgICAgICAgICAgIHBhdGhTdHlsZUVuZHBvaW50OiBvcHRpb25zLmZvcmNlUGF0aFN0eWxlLFxuICAgICAgICAgICAgICAgIHRsc0NvbXBhdGlibGU6IHJlcXVlc3QucHJvdG9jb2wgPT09IFwiaHR0cHM6XCIsXG4gICAgICAgICAgICAgICAgdXNlQXJuUmVnaW9uLFxuICAgICAgICAgICAgICAgIGNsaWVudFBhcnRpdGlvbjogcGFydGl0aW9uLFxuICAgICAgICAgICAgICAgIGNsaWVudFNpZ25pbmdSZWdpb246IHNpZ25pbmdSZWdpb24sXG4gICAgICAgICAgICAgICAgY2xpZW50UmVnaW9uOiBjbGllbnRSZWdpb24sXG4gICAgICAgICAgICAgICAgaXNDdXN0b21FbmRwb2ludDogb3B0aW9ucy5pc0N1c3RvbUVuZHBvaW50LFxuICAgICAgICAgICAgICAgIGRpc2FibGVNdWx0aXJlZ2lvbkFjY2Vzc1BvaW50czogYXdhaXQgb3B0aW9ucy5kaXNhYmxlTXVsdGlyZWdpb25BY2Nlc3NQb2ludHMoKSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWYgKG1vZGlmaWVkU2lnbmluZ1JlZ2lvbiAmJiBtb2RpZmllZFNpZ25pbmdSZWdpb24gIT09IHNpZ25pbmdSZWdpb24pIHtcbiAgICAgICAgICAgICAgICBjb250ZXh0W1wic2lnbmluZ19yZWdpb25cIl0gPSBtb2RpZmllZFNpZ25pbmdSZWdpb247XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoc2lnbmluZ1NlcnZpY2UgJiYgc2lnbmluZ1NlcnZpY2UgIT09IFwiczNcIikge1xuICAgICAgICAgICAgICAgIGNvbnRleHRbXCJzaWduaW5nX3NlcnZpY2VcIl0gPSBzaWduaW5nU2VydmljZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJlcXVlc3QuaG9zdG5hbWUgPSBob3N0bmFtZTtcbiAgICAgICAgICAgIHJlcGxhY2VCdWNrZXRJblBhdGggPSBidWNrZXRFbmRwb2ludDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGNsaWVudFJlZ2lvbiA9IGF3YWl0IG9wdGlvbnMucmVnaW9uKCk7XG4gICAgICAgICAgICBjb25zdCBkdWFsc3RhY2tFbmRwb2ludCA9IGF3YWl0IG9wdGlvbnMudXNlRHVhbHN0YWNrRW5kcG9pbnQoKTtcbiAgICAgICAgICAgIGNvbnN0IGZpcHNFbmRwb2ludCA9IGF3YWl0IG9wdGlvbnMudXNlRmlwc0VuZHBvaW50KCk7XG4gICAgICAgICAgICBjb25zdCB7IGhvc3RuYW1lLCBidWNrZXRFbmRwb2ludCB9ID0gYnVja2V0SG9zdG5hbWUoe1xuICAgICAgICAgICAgICAgIGJ1Y2tldE5hbWUsXG4gICAgICAgICAgICAgICAgY2xpZW50UmVnaW9uLFxuICAgICAgICAgICAgICAgIGJhc2VIb3N0bmFtZTogcmVxdWVzdC5ob3N0bmFtZSxcbiAgICAgICAgICAgICAgICBhY2NlbGVyYXRlRW5kcG9pbnQ6IG9wdGlvbnMudXNlQWNjZWxlcmF0ZUVuZHBvaW50LFxuICAgICAgICAgICAgICAgIGR1YWxzdGFja0VuZHBvaW50LFxuICAgICAgICAgICAgICAgIGZpcHNFbmRwb2ludCxcbiAgICAgICAgICAgICAgICBwYXRoU3R5bGVFbmRwb2ludDogb3B0aW9ucy5mb3JjZVBhdGhTdHlsZSxcbiAgICAgICAgICAgICAgICB0bHNDb21wYXRpYmxlOiByZXF1ZXN0LnByb3RvY29sID09PSBcImh0dHBzOlwiLFxuICAgICAgICAgICAgICAgIGlzQ3VzdG9tRW5kcG9pbnQ6IG9wdGlvbnMuaXNDdXN0b21FbmRwb2ludCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmVxdWVzdC5ob3N0bmFtZSA9IGhvc3RuYW1lO1xuICAgICAgICAgICAgcmVwbGFjZUJ1Y2tldEluUGF0aCA9IGJ1Y2tldEVuZHBvaW50O1xuICAgICAgICB9XG4gICAgICAgIGlmIChyZXBsYWNlQnVja2V0SW5QYXRoKSB7XG4gICAgICAgICAgICByZXF1ZXN0LnBhdGggPSByZXF1ZXN0LnBhdGgucmVwbGFjZSgvXihcXC8pP1teXFwvXSsvLCBcIlwiKTtcbiAgICAgICAgICAgIGlmIChyZXF1ZXN0LnBhdGggPT09IFwiXCIpIHtcbiAgICAgICAgICAgICAgICByZXF1ZXN0LnBhdGggPSBcIi9cIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbmV4dCh7IC4uLmFyZ3MsIHJlcXVlc3QgfSk7XG59O1xuY29uc3QgYnVja2V0RW5kcG9pbnRNaWRkbGV3YXJlT3B0aW9ucyA9IHtcbiAgICB0YWdzOiBbXCJCVUNLRVRfRU5EUE9JTlRcIl0sXG4gICAgbmFtZTogXCJidWNrZXRFbmRwb2ludE1pZGRsZXdhcmVcIixcbiAgICByZWxhdGlvbjogXCJiZWZvcmVcIixcbiAgICB0b01pZGRsZXdhcmU6IFwiaG9zdEhlYWRlck1pZGRsZXdhcmVcIixcbiAgICBvdmVycmlkZTogdHJ1ZSxcbn07XG5jb25zdCBnZXRCdWNrZXRFbmRwb2ludFBsdWdpbiA9IChvcHRpb25zKSA9PiAoe1xuICAgIGFwcGx5VG9TdGFjazogKGNsaWVudFN0YWNrKSA9PiB7XG4gICAgICAgIGNsaWVudFN0YWNrLmFkZFJlbGF0aXZlVG8oYnVja2V0RW5kcG9pbnRNaWRkbGV3YXJlKG9wdGlvbnMpLCBidWNrZXRFbmRwb2ludE1pZGRsZXdhcmVPcHRpb25zKTtcbiAgICB9LFxufSk7XG5cbmZ1bmN0aW9uIHJlc29sdmVCdWNrZXRFbmRwb2ludENvbmZpZyhpbnB1dCkge1xuICAgIGNvbnN0IHsgYnVja2V0RW5kcG9pbnQgPSBmYWxzZSwgZm9yY2VQYXRoU3R5bGUgPSBmYWxzZSwgdXNlQWNjZWxlcmF0ZUVuZHBvaW50ID0gZmFsc2UsIHVzZUFyblJlZ2lvbiwgZGlzYWJsZU11bHRpcmVnaW9uQWNjZXNzUG9pbnRzID0gZmFsc2UsIH0gPSBpbnB1dDtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihpbnB1dCwge1xuICAgICAgICBidWNrZXRFbmRwb2ludCxcbiAgICAgICAgZm9yY2VQYXRoU3R5bGUsXG4gICAgICAgIHVzZUFjY2VsZXJhdGVFbmRwb2ludCxcbiAgICAgICAgdXNlQXJuUmVnaW9uOiB0eXBlb2YgdXNlQXJuUmVnaW9uID09PSBcImZ1bmN0aW9uXCIgPyB1c2VBcm5SZWdpb24gOiAoKSA9PiBQcm9taXNlLnJlc29sdmUodXNlQXJuUmVnaW9uKSxcbiAgICAgICAgZGlzYWJsZU11bHRpcmVnaW9uQWNjZXNzUG9pbnRzOiB0eXBlb2YgZGlzYWJsZU11bHRpcmVnaW9uQWNjZXNzUG9pbnRzID09PSBcImZ1bmN0aW9uXCJcbiAgICAgICAgICAgID8gZGlzYWJsZU11bHRpcmVnaW9uQWNjZXNzUG9pbnRzXG4gICAgICAgICAgICA6ICgpID0+IFByb21pc2UucmVzb2x2ZShkaXNhYmxlTXVsdGlyZWdpb25BY2Nlc3NQb2ludHMpLFxuICAgIH0pO1xufVxuXG5leHBvcnRzLk5PREVfRElTQUJMRV9NVUxUSVJFR0lPTl9BQ0NFU1NfUE9JTlRfQ09ORklHX09QVElPTlMgPSBOT0RFX0RJU0FCTEVfTVVMVElSRUdJT05fQUNDRVNTX1BPSU5UX0NPTkZJR19PUFRJT05TO1xuZXhwb3J0cy5OT0RFX0RJU0FCTEVfTVVMVElSRUdJT05fQUNDRVNTX1BPSU5UX0VOVl9OQU1FID0gTk9ERV9ESVNBQkxFX01VTFRJUkVHSU9OX0FDQ0VTU19QT0lOVF9FTlZfTkFNRTtcbmV4cG9ydHMuTk9ERV9ESVNBQkxFX01VTFRJUkVHSU9OX0FDQ0VTU19QT0lOVF9JTklfTkFNRSA9IE5PREVfRElTQUJMRV9NVUxUSVJFR0lPTl9BQ0NFU1NfUE9JTlRfSU5JX05BTUU7XG5leHBvcnRzLk5PREVfVVNFX0FSTl9SRUdJT05fQ09ORklHX09QVElPTlMgPSBOT0RFX1VTRV9BUk5fUkVHSU9OX0NPTkZJR19PUFRJT05TO1xuZXhwb3J0cy5OT0RFX1VTRV9BUk5fUkVHSU9OX0VOVl9OQU1FID0gTk9ERV9VU0VfQVJOX1JFR0lPTl9FTlZfTkFNRTtcbmV4cG9ydHMuTk9ERV9VU0VfQVJOX1JFR0lPTl9JTklfTkFNRSA9IE5PREVfVVNFX0FSTl9SRUdJT05fSU5JX05BTUU7XG5leHBvcnRzLmJ1Y2tldEVuZHBvaW50TWlkZGxld2FyZSA9IGJ1Y2tldEVuZHBvaW50TWlkZGxld2FyZTtcbmV4cG9ydHMuYnVja2V0RW5kcG9pbnRNaWRkbGV3YXJlT3B0aW9ucyA9IGJ1Y2tldEVuZHBvaW50TWlkZGxld2FyZU9wdGlvbnM7XG5leHBvcnRzLmJ1Y2tldEhvc3RuYW1lID0gYnVja2V0SG9zdG5hbWU7XG5leHBvcnRzLmdldEFyblJlc291cmNlcyA9IGdldEFyblJlc291cmNlcztcbmV4cG9ydHMuZ2V0QnVja2V0RW5kcG9pbnRQbHVnaW4gPSBnZXRCdWNrZXRFbmRwb2ludFBsdWdpbjtcbmV4cG9ydHMuZ2V0U3VmZml4Rm9yQXJuRW5kcG9pbnQgPSBnZXRTdWZmaXhGb3JBcm5FbmRwb2ludDtcbmV4cG9ydHMucmVzb2x2ZUJ1Y2tldEVuZHBvaW50Q29uZmlnID0gcmVzb2x2ZUJ1Y2tldEVuZHBvaW50Q29uZmlnO1xuZXhwb3J0cy52YWxpZGF0ZUFjY291bnRJZCA9IHZhbGlkYXRlQWNjb3VudElkO1xuZXhwb3J0cy52YWxpZGF0ZUROU0hvc3RMYWJlbCA9IHZhbGlkYXRlRE5TSG9zdExhYmVsO1xuZXhwb3J0cy52YWxpZGF0ZU5vRHVhbHN0YWNrID0gdmFsaWRhdGVOb0R1YWxzdGFjaztcbmV4cG9ydHMudmFsaWRhdGVOb0ZJUFMgPSB2YWxpZGF0ZU5vRklQUztcbmV4cG9ydHMudmFsaWRhdGVPdXRwb3N0U2VydmljZSA9IHZhbGlkYXRlT3V0cG9zdFNlcnZpY2U7XG5leHBvcnRzLnZhbGlkYXRlUGFydGl0aW9uID0gdmFsaWRhdGVQYXJ0aXRpb247XG5leHBvcnRzLnZhbGlkYXRlUmVnaW9uID0gdmFsaWRhdGVSZWdpb247XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmdldFJ1bnRpbWVDb25maWcgPSB2b2lkIDA7XG5jb25zdCBjb3JlXzEgPSByZXF1aXJlKFwiQGF3cy1zZGsvY29yZVwiKTtcbmNvbnN0IHByb3RvY29sc18xID0gcmVxdWlyZShcIkBhd3Mtc2RrL2NvcmUvcHJvdG9jb2xzXCIpO1xuY29uc3Qgc2lnbmF0dXJlX3Y0X211bHRpX3JlZ2lvbl8xID0gcmVxdWlyZShcIkBhd3Mtc2RrL3NpZ25hdHVyZS12NC1tdWx0aS1yZWdpb25cIik7XG5jb25zdCBzbWl0aHlfY2xpZW50XzEgPSByZXF1aXJlKFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCIpO1xuY29uc3QgdXJsX3BhcnNlcl8xID0gcmVxdWlyZShcIkBzbWl0aHkvdXJsLXBhcnNlclwiKTtcbmNvbnN0IHV0aWxfYmFzZTY0XzEgPSByZXF1aXJlKFwiQHNtaXRoeS91dGlsLWJhc2U2NFwiKTtcbmNvbnN0IHV0aWxfc3RyZWFtXzEgPSByZXF1aXJlKFwiQHNtaXRoeS91dGlsLXN0cmVhbVwiKTtcbmNvbnN0IHV0aWxfdXRmOF8xID0gcmVxdWlyZShcIkBzbWl0aHkvdXRpbC11dGY4XCIpO1xuY29uc3QgaHR0cEF1dGhTY2hlbWVQcm92aWRlcl8xID0gcmVxdWlyZShcIi4vYXV0aC9odHRwQXV0aFNjaGVtZVByb3ZpZGVyXCIpO1xuY29uc3QgZW5kcG9pbnRSZXNvbHZlcl8xID0gcmVxdWlyZShcIi4vZW5kcG9pbnQvZW5kcG9pbnRSZXNvbHZlclwiKTtcbmNvbnN0IGdldFJ1bnRpbWVDb25maWcgPSAoY29uZmlnKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgYXBpVmVyc2lvbjogXCIyMDA2LTAzLTAxXCIsXG4gICAgICAgIGJhc2U2NERlY29kZXI6IGNvbmZpZz8uYmFzZTY0RGVjb2RlciA/PyB1dGlsX2Jhc2U2NF8xLmZyb21CYXNlNjQsXG4gICAgICAgIGJhc2U2NEVuY29kZXI6IGNvbmZpZz8uYmFzZTY0RW5jb2RlciA/PyB1dGlsX2Jhc2U2NF8xLnRvQmFzZTY0LFxuICAgICAgICBkaXNhYmxlSG9zdFByZWZpeDogY29uZmlnPy5kaXNhYmxlSG9zdFByZWZpeCA/PyBmYWxzZSxcbiAgICAgICAgZW5kcG9pbnRQcm92aWRlcjogY29uZmlnPy5lbmRwb2ludFByb3ZpZGVyID8/IGVuZHBvaW50UmVzb2x2ZXJfMS5kZWZhdWx0RW5kcG9pbnRSZXNvbHZlcixcbiAgICAgICAgZXh0ZW5zaW9uczogY29uZmlnPy5leHRlbnNpb25zID8/IFtdLFxuICAgICAgICBnZXRBd3NDaHVua2VkRW5jb2RpbmdTdHJlYW06IGNvbmZpZz8uZ2V0QXdzQ2h1bmtlZEVuY29kaW5nU3RyZWFtID8/IHV0aWxfc3RyZWFtXzEuZ2V0QXdzQ2h1bmtlZEVuY29kaW5nU3RyZWFtLFxuICAgICAgICBodHRwQXV0aFNjaGVtZVByb3ZpZGVyOiBjb25maWc/Lmh0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPz8gaHR0cEF1dGhTY2hlbWVQcm92aWRlcl8xLmRlZmF1bHRTM0h0dHBBdXRoU2NoZW1lUHJvdmlkZXIsXG4gICAgICAgIGh0dHBBdXRoU2NoZW1lczogY29uZmlnPy5odHRwQXV0aFNjaGVtZXMgPz8gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHNjaGVtZUlkOiBcImF3cy5hdXRoI3NpZ3Y0XCIsXG4gICAgICAgICAgICAgICAgaWRlbnRpdHlQcm92aWRlcjogKGlwYykgPT4gaXBjLmdldElkZW50aXR5UHJvdmlkZXIoXCJhd3MuYXV0aCNzaWd2NFwiKSxcbiAgICAgICAgICAgICAgICBzaWduZXI6IG5ldyBjb3JlXzEuQXdzU2RrU2lnVjRTaWduZXIoKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgc2NoZW1lSWQ6IFwiYXdzLmF1dGgjc2lndjRhXCIsXG4gICAgICAgICAgICAgICAgaWRlbnRpdHlQcm92aWRlcjogKGlwYykgPT4gaXBjLmdldElkZW50aXR5UHJvdmlkZXIoXCJhd3MuYXV0aCNzaWd2NGFcIiksXG4gICAgICAgICAgICAgICAgc2lnbmVyOiBuZXcgY29yZV8xLkF3c1Nka1NpZ1Y0QVNpZ25lcigpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgbG9nZ2VyOiBjb25maWc/LmxvZ2dlciA/PyBuZXcgc21pdGh5X2NsaWVudF8xLk5vT3BMb2dnZXIoKSxcbiAgICAgICAgcHJvdG9jb2w6IGNvbmZpZz8ucHJvdG9jb2wgPz9cbiAgICAgICAgICAgIG5ldyBwcm90b2NvbHNfMS5Bd3NSZXN0WG1sUHJvdG9jb2woe1xuICAgICAgICAgICAgICAgIGRlZmF1bHROYW1lc3BhY2U6IFwiY29tLmFtYXpvbmF3cy5zM1wiLFxuICAgICAgICAgICAgICAgIHhtbE5hbWVzcGFjZTogXCJodHRwOi8vczMuYW1hem9uYXdzLmNvbS9kb2MvMjAwNi0wMy0wMS9cIixcbiAgICAgICAgICAgIH0pLFxuICAgICAgICBzZGtTdHJlYW1NaXhpbjogY29uZmlnPy5zZGtTdHJlYW1NaXhpbiA/PyB1dGlsX3N0cmVhbV8xLnNka1N0cmVhbU1peGluLFxuICAgICAgICBzZXJ2aWNlSWQ6IGNvbmZpZz8uc2VydmljZUlkID8/IFwiUzNcIixcbiAgICAgICAgc2lnbmVyQ29uc3RydWN0b3I6IGNvbmZpZz8uc2lnbmVyQ29uc3RydWN0b3IgPz8gc2lnbmF0dXJlX3Y0X211bHRpX3JlZ2lvbl8xLlNpZ25hdHVyZVY0TXVsdGlSZWdpb24sXG4gICAgICAgIHNpZ25pbmdFc2NhcGVQYXRoOiBjb25maWc/LnNpZ25pbmdFc2NhcGVQYXRoID8/IGZhbHNlLFxuICAgICAgICB1cmxQYXJzZXI6IGNvbmZpZz8udXJsUGFyc2VyID8/IHVybF9wYXJzZXJfMS5wYXJzZVVybCxcbiAgICAgICAgdXNlQXJuUmVnaW9uOiBjb25maWc/LnVzZUFyblJlZ2lvbiA/PyB1bmRlZmluZWQsXG4gICAgICAgIHV0ZjhEZWNvZGVyOiBjb25maWc/LnV0ZjhEZWNvZGVyID8/IHV0aWxfdXRmOF8xLmZyb21VdGY4LFxuICAgICAgICB1dGY4RW5jb2RlcjogY29uZmlnPy51dGY4RW5jb2RlciA/PyB1dGlsX3V0ZjhfMS50b1V0ZjgsXG4gICAgfTtcbn07XG5leHBvcnRzLmdldFJ1bnRpbWVDb25maWcgPSBnZXRSdW50aW1lQ29uZmlnO1xuIiwgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5nZXRSdW50aW1lQ29uZmlnID0gdm9pZCAwO1xuY29uc3QgdHNsaWJfMSA9IHJlcXVpcmUoXCJ0c2xpYlwiKTtcbmNvbnN0IHBhY2thZ2VfanNvbl8xID0gdHNsaWJfMS5fX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4uL3BhY2thZ2UuanNvblwiKSk7XG5jb25zdCBjb3JlXzEgPSByZXF1aXJlKFwiQGF3cy1zZGsvY29yZVwiKTtcbmNvbnN0IGNyZWRlbnRpYWxfcHJvdmlkZXJfbm9kZV8xID0gcmVxdWlyZShcIkBhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbm9kZVwiKTtcbmNvbnN0IG1pZGRsZXdhcmVfYnVja2V0X2VuZHBvaW50XzEgPSByZXF1aXJlKFwiQGF3cy1zZGsvbWlkZGxld2FyZS1idWNrZXQtZW5kcG9pbnRcIik7XG5jb25zdCBtaWRkbGV3YXJlX2ZsZXhpYmxlX2NoZWNrc3Vtc18xID0gcmVxdWlyZShcIkBhd3Mtc2RrL21pZGRsZXdhcmUtZmxleGlibGUtY2hlY2tzdW1zXCIpO1xuY29uc3QgbWlkZGxld2FyZV9zZGtfczNfMSA9IHJlcXVpcmUoXCJAYXdzLXNkay9taWRkbGV3YXJlLXNkay1zM1wiKTtcbmNvbnN0IHV0aWxfdXNlcl9hZ2VudF9ub2RlXzEgPSByZXF1aXJlKFwiQGF3cy1zZGsvdXRpbC11c2VyLWFnZW50LW5vZGVcIik7XG5jb25zdCBjb25maWdfcmVzb2x2ZXJfMSA9IHJlcXVpcmUoXCJAc21pdGh5L2NvbmZpZy1yZXNvbHZlclwiKTtcbmNvbnN0IGV2ZW50c3RyZWFtX3NlcmRlX25vZGVfMSA9IHJlcXVpcmUoXCJAc21pdGh5L2V2ZW50c3RyZWFtLXNlcmRlLW5vZGVcIik7XG5jb25zdCBoYXNoX25vZGVfMSA9IHJlcXVpcmUoXCJAc21pdGh5L2hhc2gtbm9kZVwiKTtcbmNvbnN0IGhhc2hfc3RyZWFtX25vZGVfMSA9IHJlcXVpcmUoXCJAc21pdGh5L2hhc2gtc3RyZWFtLW5vZGVcIik7XG5jb25zdCBtaWRkbGV3YXJlX3JldHJ5XzEgPSByZXF1aXJlKFwiQHNtaXRoeS9taWRkbGV3YXJlLXJldHJ5XCIpO1xuY29uc3Qgbm9kZV9jb25maWdfcHJvdmlkZXJfMSA9IHJlcXVpcmUoXCJAc21pdGh5L25vZGUtY29uZmlnLXByb3ZpZGVyXCIpO1xuY29uc3Qgbm9kZV9odHRwX2hhbmRsZXJfMSA9IHJlcXVpcmUoXCJAc21pdGh5L25vZGUtaHR0cC1oYW5kbGVyXCIpO1xuY29uc3Qgc21pdGh5X2NsaWVudF8xID0gcmVxdWlyZShcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiKTtcbmNvbnN0IHV0aWxfYm9keV9sZW5ndGhfbm9kZV8xID0gcmVxdWlyZShcIkBzbWl0aHkvdXRpbC1ib2R5LWxlbmd0aC1ub2RlXCIpO1xuY29uc3QgdXRpbF9kZWZhdWx0c19tb2RlX25vZGVfMSA9IHJlcXVpcmUoXCJAc21pdGh5L3V0aWwtZGVmYXVsdHMtbW9kZS1ub2RlXCIpO1xuY29uc3QgdXRpbF9yZXRyeV8xID0gcmVxdWlyZShcIkBzbWl0aHkvdXRpbC1yZXRyeVwiKTtcbmNvbnN0IHJ1bnRpbWVDb25maWdfc2hhcmVkXzEgPSByZXF1aXJlKFwiLi9ydW50aW1lQ29uZmlnLnNoYXJlZFwiKTtcbmNvbnN0IGdldFJ1bnRpbWVDb25maWcgPSAoY29uZmlnKSA9PiB7XG4gICAgKDAsIHNtaXRoeV9jbGllbnRfMS5lbWl0V2FybmluZ0lmVW5zdXBwb3J0ZWRWZXJzaW9uKShwcm9jZXNzLnZlcnNpb24pO1xuICAgIGNvbnN0IGRlZmF1bHRzTW9kZSA9ICgwLCB1dGlsX2RlZmF1bHRzX21vZGVfbm9kZV8xLnJlc29sdmVEZWZhdWx0c01vZGVDb25maWcpKGNvbmZpZyk7XG4gICAgY29uc3QgZGVmYXVsdENvbmZpZ1Byb3ZpZGVyID0gKCkgPT4gZGVmYXVsdHNNb2RlKCkudGhlbihzbWl0aHlfY2xpZW50XzEubG9hZENvbmZpZ3NGb3JEZWZhdWx0TW9kZSk7XG4gICAgY29uc3QgY2xpZW50U2hhcmVkVmFsdWVzID0gKDAsIHJ1bnRpbWVDb25maWdfc2hhcmVkXzEuZ2V0UnVudGltZUNvbmZpZykoY29uZmlnKTtcbiAgICAoMCwgY29yZV8xLmVtaXRXYXJuaW5nSWZVbnN1cHBvcnRlZFZlcnNpb24pKHByb2Nlc3MudmVyc2lvbik7XG4gICAgY29uc3QgbG9hZGVyQ29uZmlnID0ge1xuICAgICAgICBwcm9maWxlOiBjb25maWc/LnByb2ZpbGUsXG4gICAgICAgIGxvZ2dlcjogY2xpZW50U2hhcmVkVmFsdWVzLmxvZ2dlcixcbiAgICB9O1xuICAgIHJldHVybiB7XG4gICAgICAgIC4uLmNsaWVudFNoYXJlZFZhbHVlcyxcbiAgICAgICAgLi4uY29uZmlnLFxuICAgICAgICBydW50aW1lOiBcIm5vZGVcIixcbiAgICAgICAgZGVmYXVsdHNNb2RlLFxuICAgICAgICBhdXRoU2NoZW1lUHJlZmVyZW5jZTogY29uZmlnPy5hdXRoU2NoZW1lUHJlZmVyZW5jZSA/PyAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKShjb3JlXzEuTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX09QVElPTlMsIGxvYWRlckNvbmZpZyksXG4gICAgICAgIGJvZHlMZW5ndGhDaGVja2VyOiBjb25maWc/LmJvZHlMZW5ndGhDaGVja2VyID8/IHV0aWxfYm9keV9sZW5ndGhfbm9kZV8xLmNhbGN1bGF0ZUJvZHlMZW5ndGgsXG4gICAgICAgIGNyZWRlbnRpYWxEZWZhdWx0UHJvdmlkZXI6IGNvbmZpZz8uY3JlZGVudGlhbERlZmF1bHRQcm92aWRlciA/PyBjcmVkZW50aWFsX3Byb3ZpZGVyX25vZGVfMS5kZWZhdWx0UHJvdmlkZXIsXG4gICAgICAgIGRlZmF1bHRVc2VyQWdlbnRQcm92aWRlcjogY29uZmlnPy5kZWZhdWx0VXNlckFnZW50UHJvdmlkZXIgPz9cbiAgICAgICAgICAgICgwLCB1dGlsX3VzZXJfYWdlbnRfbm9kZV8xLmNyZWF0ZURlZmF1bHRVc2VyQWdlbnRQcm92aWRlcikoeyBzZXJ2aWNlSWQ6IGNsaWVudFNoYXJlZFZhbHVlcy5zZXJ2aWNlSWQsIGNsaWVudFZlcnNpb246IHBhY2thZ2VfanNvbl8xLmRlZmF1bHQudmVyc2lvbiB9KSxcbiAgICAgICAgZGlzYWJsZVMzRXhwcmVzc1Nlc3Npb25BdXRoOiBjb25maWc/LmRpc2FibGVTM0V4cHJlc3NTZXNzaW9uQXV0aCA/PyAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKShtaWRkbGV3YXJlX3Nka19zM18xLk5PREVfRElTQUJMRV9TM19FWFBSRVNTX1NFU1NJT05fQVVUSF9PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgICAgICBldmVudFN0cmVhbVNlcmRlUHJvdmlkZXI6IGNvbmZpZz8uZXZlbnRTdHJlYW1TZXJkZVByb3ZpZGVyID8/IGV2ZW50c3RyZWFtX3NlcmRlX25vZGVfMS5ldmVudFN0cmVhbVNlcmRlUHJvdmlkZXIsXG4gICAgICAgIG1heEF0dGVtcHRzOiBjb25maWc/Lm1heEF0dGVtcHRzID8/ICgwLCBub2RlX2NvbmZpZ19wcm92aWRlcl8xLmxvYWRDb25maWcpKG1pZGRsZXdhcmVfcmV0cnlfMS5OT0RFX01BWF9BVFRFTVBUX0NPTkZJR19PUFRJT05TLCBjb25maWcpLFxuICAgICAgICBtZDU6IGNvbmZpZz8ubWQ1ID8/IGhhc2hfbm9kZV8xLkhhc2guYmluZChudWxsLCBcIm1kNVwiKSxcbiAgICAgICAgcmVnaW9uOiBjb25maWc/LnJlZ2lvbiA/P1xuICAgICAgICAgICAgKDAsIG5vZGVfY29uZmlnX3Byb3ZpZGVyXzEubG9hZENvbmZpZykoY29uZmlnX3Jlc29sdmVyXzEuTk9ERV9SRUdJT05fQ09ORklHX09QVElPTlMsIHsgLi4uY29uZmlnX3Jlc29sdmVyXzEuTk9ERV9SRUdJT05fQ09ORklHX0ZJTEVfT1BUSU9OUywgLi4ubG9hZGVyQ29uZmlnIH0pLFxuICAgICAgICByZXF1ZXN0Q2hlY2tzdW1DYWxjdWxhdGlvbjogY29uZmlnPy5yZXF1ZXN0Q2hlY2tzdW1DYWxjdWxhdGlvbiA/P1xuICAgICAgICAgICAgKDAsIG5vZGVfY29uZmlnX3Byb3ZpZGVyXzEubG9hZENvbmZpZykobWlkZGxld2FyZV9mbGV4aWJsZV9jaGVja3N1bXNfMS5OT0RFX1JFUVVFU1RfQ0hFQ0tTVU1fQ0FMQ1VMQVRJT05fQ09ORklHX09QVElPTlMsIGxvYWRlckNvbmZpZyksXG4gICAgICAgIHJlcXVlc3RIYW5kbGVyOiBub2RlX2h0dHBfaGFuZGxlcl8xLk5vZGVIdHRwSGFuZGxlci5jcmVhdGUoY29uZmlnPy5yZXF1ZXN0SGFuZGxlciA/PyBkZWZhdWx0Q29uZmlnUHJvdmlkZXIpLFxuICAgICAgICByZXNwb25zZUNoZWNrc3VtVmFsaWRhdGlvbjogY29uZmlnPy5yZXNwb25zZUNoZWNrc3VtVmFsaWRhdGlvbiA/P1xuICAgICAgICAgICAgKDAsIG5vZGVfY29uZmlnX3Byb3ZpZGVyXzEubG9hZENvbmZpZykobWlkZGxld2FyZV9mbGV4aWJsZV9jaGVja3N1bXNfMS5OT0RFX1JFU1BPTlNFX0NIRUNLU1VNX1ZBTElEQVRJT05fQ09ORklHX09QVElPTlMsIGxvYWRlckNvbmZpZyksXG4gICAgICAgIHJldHJ5TW9kZTogY29uZmlnPy5yZXRyeU1vZGUgPz9cbiAgICAgICAgICAgICgwLCBub2RlX2NvbmZpZ19wcm92aWRlcl8xLmxvYWRDb25maWcpKHtcbiAgICAgICAgICAgICAgICAuLi5taWRkbGV3YXJlX3JldHJ5XzEuTk9ERV9SRVRSWV9NT0RFX0NPTkZJR19PUFRJT05TLFxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IGFzeW5jICgpID0+IChhd2FpdCBkZWZhdWx0Q29uZmlnUHJvdmlkZXIoKSkucmV0cnlNb2RlIHx8IHV0aWxfcmV0cnlfMS5ERUZBVUxUX1JFVFJZX01PREUsXG4gICAgICAgICAgICB9LCBjb25maWcpLFxuICAgICAgICBzaGExOiBjb25maWc/LnNoYTEgPz8gaGFzaF9ub2RlXzEuSGFzaC5iaW5kKG51bGwsIFwic2hhMVwiKSxcbiAgICAgICAgc2hhMjU2OiBjb25maWc/LnNoYTI1NiA/PyBoYXNoX25vZGVfMS5IYXNoLmJpbmQobnVsbCwgXCJzaGEyNTZcIiksXG4gICAgICAgIHNpZ3Y0YVNpZ25pbmdSZWdpb25TZXQ6IGNvbmZpZz8uc2lndjRhU2lnbmluZ1JlZ2lvblNldCA/PyAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKShjb3JlXzEuTk9ERV9TSUdWNEFfQ09ORklHX09QVElPTlMsIGxvYWRlckNvbmZpZyksXG4gICAgICAgIHN0cmVhbUNvbGxlY3RvcjogY29uZmlnPy5zdHJlYW1Db2xsZWN0b3IgPz8gbm9kZV9odHRwX2hhbmRsZXJfMS5zdHJlYW1Db2xsZWN0b3IsXG4gICAgICAgIHN0cmVhbUhhc2hlcjogY29uZmlnPy5zdHJlYW1IYXNoZXIgPz8gaGFzaF9zdHJlYW1fbm9kZV8xLnJlYWRhYmxlU3RyZWFtSGFzaGVyLFxuICAgICAgICB1c2VBcm5SZWdpb246IGNvbmZpZz8udXNlQXJuUmVnaW9uID8/ICgwLCBub2RlX2NvbmZpZ19wcm92aWRlcl8xLmxvYWRDb25maWcpKG1pZGRsZXdhcmVfYnVja2V0X2VuZHBvaW50XzEuTk9ERV9VU0VfQVJOX1JFR0lPTl9DT05GSUdfT1BUSU9OUywgbG9hZGVyQ29uZmlnKSxcbiAgICAgICAgdXNlRHVhbHN0YWNrRW5kcG9pbnQ6IGNvbmZpZz8udXNlRHVhbHN0YWNrRW5kcG9pbnQgPz8gKDAsIG5vZGVfY29uZmlnX3Byb3ZpZGVyXzEubG9hZENvbmZpZykoY29uZmlnX3Jlc29sdmVyXzEuTk9ERV9VU0VfRFVBTFNUQUNLX0VORFBPSU5UX0NPTkZJR19PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgICAgICB1c2VGaXBzRW5kcG9pbnQ6IGNvbmZpZz8udXNlRmlwc0VuZHBvaW50ID8/ICgwLCBub2RlX2NvbmZpZ19wcm92aWRlcl8xLmxvYWRDb25maWcpKGNvbmZpZ19yZXNvbHZlcl8xLk5PREVfVVNFX0ZJUFNfRU5EUE9JTlRfQ09ORklHX09QVElPTlMsIGxvYWRlckNvbmZpZyksXG4gICAgICAgIHVzZXJBZ2VudEFwcElkOiBjb25maWc/LnVzZXJBZ2VudEFwcElkID8/ICgwLCBub2RlX2NvbmZpZ19wcm92aWRlcl8xLmxvYWRDb25maWcpKHV0aWxfdXNlcl9hZ2VudF9ub2RlXzEuTk9ERV9BUFBfSURfQ09ORklHX09QVElPTlMsIGxvYWRlckNvbmZpZyksXG4gICAgfTtcbn07XG5leHBvcnRzLmdldFJ1bnRpbWVDb25maWcgPSBnZXRSdW50aW1lQ29uZmlnO1xuIiwgIid1c2Ugc3RyaWN0JztcblxuZnVuY3Rpb24gc3NlY01pZGRsZXdhcmUob3B0aW9ucykge1xuICAgIHJldHVybiAobmV4dCkgPT4gYXN5bmMgKGFyZ3MpID0+IHtcbiAgICAgICAgY29uc3QgaW5wdXQgPSB7IC4uLmFyZ3MuaW5wdXQgfTtcbiAgICAgICAgY29uc3QgcHJvcGVydGllcyA9IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0YXJnZXQ6IFwiU1NFQ3VzdG9tZXJLZXlcIixcbiAgICAgICAgICAgICAgICBoYXNoOiBcIlNTRUN1c3RvbWVyS2V5TUQ1XCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRhcmdldDogXCJDb3B5U291cmNlU1NFQ3VzdG9tZXJLZXlcIixcbiAgICAgICAgICAgICAgICBoYXNoOiBcIkNvcHlTb3VyY2VTU0VDdXN0b21lcktleU1ENVwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXTtcbiAgICAgICAgZm9yIChjb25zdCBwcm9wIG9mIHByb3BlcnRpZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gaW5wdXRbcHJvcC50YXJnZXRdO1xuICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgbGV0IHZhbHVlRm9ySGFzaDtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc1ZhbGlkQmFzZTY0RW5jb2RlZFNTRUN1c3RvbWVyS2V5KHZhbHVlLCBvcHRpb25zKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVGb3JIYXNoID0gb3B0aW9ucy5iYXNlNjREZWNvZGVyKHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlRm9ySGFzaCA9IG9wdGlvbnMudXRmOERlY29kZXIodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbcHJvcC50YXJnZXRdID0gb3B0aW9ucy5iYXNlNjRFbmNvZGVyKHZhbHVlRm9ySGFzaCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlRm9ySGFzaCA9IEFycmF5QnVmZmVyLmlzVmlldyh2YWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgID8gbmV3IFVpbnQ4QXJyYXkodmFsdWUuYnVmZmVyLCB2YWx1ZS5ieXRlT2Zmc2V0LCB2YWx1ZS5ieXRlTGVuZ3RoKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBuZXcgVWludDhBcnJheSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIGlucHV0W3Byb3AudGFyZ2V0XSA9IG9wdGlvbnMuYmFzZTY0RW5jb2Rlcih2YWx1ZUZvckhhc2gpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBoYXNoID0gbmV3IG9wdGlvbnMubWQ1KCk7XG4gICAgICAgICAgICAgICAgaGFzaC51cGRhdGUodmFsdWVGb3JIYXNoKTtcbiAgICAgICAgICAgICAgICBpbnB1dFtwcm9wLmhhc2hdID0gb3B0aW9ucy5iYXNlNjRFbmNvZGVyKGF3YWl0IGhhc2guZGlnZXN0KCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXh0KHtcbiAgICAgICAgICAgIC4uLmFyZ3MsXG4gICAgICAgICAgICBpbnB1dCxcbiAgICAgICAgfSk7XG4gICAgfTtcbn1cbmNvbnN0IHNzZWNNaWRkbGV3YXJlT3B0aW9ucyA9IHtcbiAgICBuYW1lOiBcInNzZWNNaWRkbGV3YXJlXCIsXG4gICAgc3RlcDogXCJpbml0aWFsaXplXCIsXG4gICAgdGFnczogW1wiU1NFXCJdLFxuICAgIG92ZXJyaWRlOiB0cnVlLFxufTtcbmNvbnN0IGdldFNzZWNQbHVnaW4gPSAoY29uZmlnKSA9PiAoe1xuICAgIGFwcGx5VG9TdGFjazogKGNsaWVudFN0YWNrKSA9PiB7XG4gICAgICAgIGNsaWVudFN0YWNrLmFkZChzc2VjTWlkZGxld2FyZShjb25maWcpLCBzc2VjTWlkZGxld2FyZU9wdGlvbnMpO1xuICAgIH0sXG59KTtcbmZ1bmN0aW9uIGlzVmFsaWRCYXNlNjRFbmNvZGVkU1NFQ3VzdG9tZXJLZXkoc3RyLCBvcHRpb25zKSB7XG4gICAgY29uc3QgYmFzZTY0UmVnZXggPSAvXig/OltBLVphLXowLTkrL117NH0pKihbQS1aYS16MC05Ky9dezJ9PT18W0EtWmEtejAtOSsvXXszfT0pPyQvO1xuICAgIGlmICghYmFzZTY0UmVnZXgudGVzdChzdHIpKVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgdHJ5IHtcbiAgICAgICAgY29uc3QgZGVjb2RlZEJ5dGVzID0gb3B0aW9ucy5iYXNlNjREZWNvZGVyKHN0cik7XG4gICAgICAgIHJldHVybiBkZWNvZGVkQnl0ZXMubGVuZ3RoID09PSAzMjtcbiAgICB9XG4gICAgY2F0Y2gge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuXG5leHBvcnRzLmdldFNzZWNQbHVnaW4gPSBnZXRTc2VjUGx1Z2luO1xuZXhwb3J0cy5pc1ZhbGlkQmFzZTY0RW5jb2RlZFNTRUN1c3RvbWVyS2V5ID0gaXNWYWxpZEJhc2U2NEVuY29kZWRTU0VDdXN0b21lcktleTtcbmV4cG9ydHMuc3NlY01pZGRsZXdhcmUgPSBzc2VjTWlkZGxld2FyZTtcbmV4cG9ydHMuc3NlY01pZGRsZXdhcmVPcHRpb25zID0gc3NlY01pZGRsZXdhcmVPcHRpb25zO1xuIiwgIid1c2Ugc3RyaWN0JztcblxuZnVuY3Rpb24gbG9jYXRpb25Db25zdHJhaW50TWlkZGxld2FyZShvcHRpb25zKSB7XG4gICAgcmV0dXJuIChuZXh0KSA9PiBhc3luYyAoYXJncykgPT4ge1xuICAgICAgICBjb25zdCB7IENyZWF0ZUJ1Y2tldENvbmZpZ3VyYXRpb24gfSA9IGFyZ3MuaW5wdXQ7XG4gICAgICAgIGNvbnN0IHJlZ2lvbiA9IGF3YWl0IG9wdGlvbnMucmVnaW9uKCk7XG4gICAgICAgIGlmICghQ3JlYXRlQnVja2V0Q29uZmlndXJhdGlvbj8uTG9jYXRpb25Db25zdHJhaW50ICYmICFDcmVhdGVCdWNrZXRDb25maWd1cmF0aW9uPy5Mb2NhdGlvbikge1xuICAgICAgICAgICAgaWYgKHJlZ2lvbiAhPT0gXCJ1cy1lYXN0LTFcIikge1xuICAgICAgICAgICAgICAgIGFyZ3MuaW5wdXQuQ3JlYXRlQnVja2V0Q29uZmlndXJhdGlvbiA9IGFyZ3MuaW5wdXQuQ3JlYXRlQnVja2V0Q29uZmlndXJhdGlvbiA/PyB7fTtcbiAgICAgICAgICAgICAgICBhcmdzLmlucHV0LkNyZWF0ZUJ1Y2tldENvbmZpZ3VyYXRpb24uTG9jYXRpb25Db25zdHJhaW50ID0gcmVnaW9uO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXh0KGFyZ3MpO1xuICAgIH07XG59XG5jb25zdCBsb2NhdGlvbkNvbnN0cmFpbnRNaWRkbGV3YXJlT3B0aW9ucyA9IHtcbiAgICBzdGVwOiBcImluaXRpYWxpemVcIixcbiAgICB0YWdzOiBbXCJMT0NBVElPTl9DT05TVFJBSU5UXCIsIFwiQ1JFQVRFX0JVQ0tFVF9DT05GSUdVUkFUSU9OXCJdLFxuICAgIG5hbWU6IFwibG9jYXRpb25Db25zdHJhaW50TWlkZGxld2FyZVwiLFxuICAgIG92ZXJyaWRlOiB0cnVlLFxufTtcbmNvbnN0IGdldExvY2F0aW9uQ29uc3RyYWludFBsdWdpbiA9IChjb25maWcpID0+ICh7XG4gICAgYXBwbHlUb1N0YWNrOiAoY2xpZW50U3RhY2spID0+IHtcbiAgICAgICAgY2xpZW50U3RhY2suYWRkKGxvY2F0aW9uQ29uc3RyYWludE1pZGRsZXdhcmUoY29uZmlnKSwgbG9jYXRpb25Db25zdHJhaW50TWlkZGxld2FyZU9wdGlvbnMpO1xuICAgIH0sXG59KTtcblxuZXhwb3J0cy5nZXRMb2NhdGlvbkNvbnN0cmFpbnRQbHVnaW4gPSBnZXRMb2NhdGlvbkNvbnN0cmFpbnRQbHVnaW47XG5leHBvcnRzLmxvY2F0aW9uQ29uc3RyYWludE1pZGRsZXdhcmUgPSBsb2NhdGlvbkNvbnN0cmFpbnRNaWRkbGV3YXJlO1xuZXhwb3J0cy5sb2NhdGlvbkNvbnN0cmFpbnRNaWRkbGV3YXJlT3B0aW9ucyA9IGxvY2F0aW9uQ29uc3RyYWludE1pZGRsZXdhcmVPcHRpb25zO1xuIiwgIid1c2Ugc3RyaWN0JztcblxudmFyIG1pZGRsZXdhcmVFeHBlY3RDb250aW51ZSA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL21pZGRsZXdhcmUtZXhwZWN0LWNvbnRpbnVlJyk7XG52YXIgbWlkZGxld2FyZUZsZXhpYmxlQ2hlY2tzdW1zID0gcmVxdWlyZSgnQGF3cy1zZGsvbWlkZGxld2FyZS1mbGV4aWJsZS1jaGVja3N1bXMnKTtcbnZhciBtaWRkbGV3YXJlSG9zdEhlYWRlciA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL21pZGRsZXdhcmUtaG9zdC1oZWFkZXInKTtcbnZhciBtaWRkbGV3YXJlTG9nZ2VyID0gcmVxdWlyZSgnQGF3cy1zZGsvbWlkZGxld2FyZS1sb2dnZXInKTtcbnZhciBtaWRkbGV3YXJlUmVjdXJzaW9uRGV0ZWN0aW9uID0gcmVxdWlyZSgnQGF3cy1zZGsvbWlkZGxld2FyZS1yZWN1cnNpb24tZGV0ZWN0aW9uJyk7XG52YXIgbWlkZGxld2FyZVNka1MzID0gcmVxdWlyZSgnQGF3cy1zZGsvbWlkZGxld2FyZS1zZGstczMnKTtcbnZhciBtaWRkbGV3YXJlVXNlckFnZW50ID0gcmVxdWlyZSgnQGF3cy1zZGsvbWlkZGxld2FyZS11c2VyLWFnZW50Jyk7XG52YXIgY29uZmlnUmVzb2x2ZXIgPSByZXF1aXJlKCdAc21pdGh5L2NvbmZpZy1yZXNvbHZlcicpO1xudmFyIGNvcmUgPSByZXF1aXJlKCdAc21pdGh5L2NvcmUnKTtcbnZhciBzY2hlbWEgPSByZXF1aXJlKCdAc21pdGh5L2NvcmUvc2NoZW1hJyk7XG52YXIgZXZlbnRzdHJlYW1TZXJkZUNvbmZpZ1Jlc29sdmVyID0gcmVxdWlyZSgnQHNtaXRoeS9ldmVudHN0cmVhbS1zZXJkZS1jb25maWctcmVzb2x2ZXInKTtcbnZhciBtaWRkbGV3YXJlQ29udGVudExlbmd0aCA9IHJlcXVpcmUoJ0BzbWl0aHkvbWlkZGxld2FyZS1jb250ZW50LWxlbmd0aCcpO1xudmFyIG1pZGRsZXdhcmVFbmRwb2ludCA9IHJlcXVpcmUoJ0BzbWl0aHkvbWlkZGxld2FyZS1lbmRwb2ludCcpO1xudmFyIG1pZGRsZXdhcmVSZXRyeSA9IHJlcXVpcmUoJ0BzbWl0aHkvbWlkZGxld2FyZS1yZXRyeScpO1xudmFyIHNtaXRoeUNsaWVudCA9IHJlcXVpcmUoJ0BzbWl0aHkvc21pdGh5LWNsaWVudCcpO1xudmFyIGh0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSByZXF1aXJlKCcuL2F1dGgvaHR0cEF1dGhTY2hlbWVQcm92aWRlcicpO1xudmFyIHJ1bnRpbWVDb25maWcgPSByZXF1aXJlKCcuL3J1bnRpbWVDb25maWcnKTtcbnZhciByZWdpb25Db25maWdSZXNvbHZlciA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL3JlZ2lvbi1jb25maWctcmVzb2x2ZXInKTtcbnZhciBwcm90b2NvbEh0dHAgPSByZXF1aXJlKCdAc21pdGh5L3Byb3RvY29sLWh0dHAnKTtcbnZhciBtaWRkbGV3YXJlU3NlYyA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL21pZGRsZXdhcmUtc3NlYycpO1xudmFyIG1pZGRsZXdhcmVMb2NhdGlvbkNvbnN0cmFpbnQgPSByZXF1aXJlKCdAYXdzLXNkay9taWRkbGV3YXJlLWxvY2F0aW9uLWNvbnN0cmFpbnQnKTtcbnZhciB1dGlsV2FpdGVyID0gcmVxdWlyZSgnQHNtaXRoeS91dGlsLXdhaXRlcicpO1xuXG5jb25zdCByZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzID0gKG9wdGlvbnMpID0+IHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihvcHRpb25zLCB7XG4gICAgICAgIHVzZUZpcHNFbmRwb2ludDogb3B0aW9ucy51c2VGaXBzRW5kcG9pbnQgPz8gZmFsc2UsXG4gICAgICAgIHVzZUR1YWxzdGFja0VuZHBvaW50OiBvcHRpb25zLnVzZUR1YWxzdGFja0VuZHBvaW50ID8/IGZhbHNlLFxuICAgICAgICBmb3JjZVBhdGhTdHlsZTogb3B0aW9ucy5mb3JjZVBhdGhTdHlsZSA/PyBmYWxzZSxcbiAgICAgICAgdXNlQWNjZWxlcmF0ZUVuZHBvaW50OiBvcHRpb25zLnVzZUFjY2VsZXJhdGVFbmRwb2ludCA/PyBmYWxzZSxcbiAgICAgICAgdXNlR2xvYmFsRW5kcG9pbnQ6IG9wdGlvbnMudXNlR2xvYmFsRW5kcG9pbnQgPz8gZmFsc2UsXG4gICAgICAgIGRpc2FibGVNdWx0aXJlZ2lvbkFjY2Vzc1BvaW50czogb3B0aW9ucy5kaXNhYmxlTXVsdGlyZWdpb25BY2Nlc3NQb2ludHMgPz8gZmFsc2UsXG4gICAgICAgIGRlZmF1bHRTaWduaW5nTmFtZTogXCJzM1wiLFxuICAgIH0pO1xufTtcbmNvbnN0IGNvbW1vblBhcmFtcyA9IHtcbiAgICBGb3JjZVBhdGhTdHlsZTogeyB0eXBlOiBcImNsaWVudENvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJmb3JjZVBhdGhTdHlsZVwiIH0sXG4gICAgVXNlQXJuUmVnaW9uOiB7IHR5cGU6IFwiY2xpZW50Q29udGV4dFBhcmFtc1wiLCBuYW1lOiBcInVzZUFyblJlZ2lvblwiIH0sXG4gICAgRGlzYWJsZU11bHRpUmVnaW9uQWNjZXNzUG9pbnRzOiB7IHR5cGU6IFwiY2xpZW50Q29udGV4dFBhcmFtc1wiLCBuYW1lOiBcImRpc2FibGVNdWx0aXJlZ2lvbkFjY2Vzc1BvaW50c1wiIH0sXG4gICAgQWNjZWxlcmF0ZTogeyB0eXBlOiBcImNsaWVudENvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJ1c2VBY2NlbGVyYXRlRW5kcG9pbnRcIiB9LFxuICAgIERpc2FibGVTM0V4cHJlc3NTZXNzaW9uQXV0aDogeyB0eXBlOiBcImNsaWVudENvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJkaXNhYmxlUzNFeHByZXNzU2Vzc2lvbkF1dGhcIiB9LFxuICAgIFVzZUdsb2JhbEVuZHBvaW50OiB7IHR5cGU6IFwiYnVpbHRJblBhcmFtc1wiLCBuYW1lOiBcInVzZUdsb2JhbEVuZHBvaW50XCIgfSxcbiAgICBVc2VGSVBTOiB7IHR5cGU6IFwiYnVpbHRJblBhcmFtc1wiLCBuYW1lOiBcInVzZUZpcHNFbmRwb2ludFwiIH0sXG4gICAgRW5kcG9pbnQ6IHsgdHlwZTogXCJidWlsdEluUGFyYW1zXCIsIG5hbWU6IFwiZW5kcG9pbnRcIiB9LFxuICAgIFJlZ2lvbjogeyB0eXBlOiBcImJ1aWx0SW5QYXJhbXNcIiwgbmFtZTogXCJyZWdpb25cIiB9LFxuICAgIFVzZUR1YWxTdGFjazogeyB0eXBlOiBcImJ1aWx0SW5QYXJhbXNcIiwgbmFtZTogXCJ1c2VEdWFsc3RhY2tFbmRwb2ludFwiIH0sXG59O1xuXG5sZXQgUzNTZXJ2aWNlRXhjZXB0aW9uJDEgPSBjbGFzcyBTM1NlcnZpY2VFeGNlcHRpb24gZXh0ZW5kcyBzbWl0aHlDbGllbnQuU2VydmljZUV4Y2VwdGlvbiB7XG4gICAgY29uc3RydWN0b3Iob3B0aW9ucykge1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFMzU2VydmljZUV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn07XG5cbmxldCBOb1N1Y2hVcGxvYWQkMSA9IGNsYXNzIE5vU3VjaFVwbG9hZCBleHRlbmRzIFMzU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJOb1N1Y2hVcGxvYWRcIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJOb1N1Y2hVcGxvYWRcIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgTm9TdWNoVXBsb2FkLnByb3RvdHlwZSk7XG4gICAgfVxufTtcbmxldCBPYmplY3ROb3RJbkFjdGl2ZVRpZXJFcnJvciQxID0gY2xhc3MgT2JqZWN0Tm90SW5BY3RpdmVUaWVyRXJyb3IgZXh0ZW5kcyBTM1NlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiT2JqZWN0Tm90SW5BY3RpdmVUaWVyRXJyb3JcIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJPYmplY3ROb3RJbkFjdGl2ZVRpZXJFcnJvclwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBPYmplY3ROb3RJbkFjdGl2ZVRpZXJFcnJvci5wcm90b3R5cGUpO1xuICAgIH1cbn07XG5sZXQgQnVja2V0QWxyZWFkeUV4aXN0cyQxID0gY2xhc3MgQnVja2V0QWxyZWFkeUV4aXN0cyBleHRlbmRzIFMzU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJCdWNrZXRBbHJlYWR5RXhpc3RzXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiQnVja2V0QWxyZWFkeUV4aXN0c1wiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBCdWNrZXRBbHJlYWR5RXhpc3RzLnByb3RvdHlwZSk7XG4gICAgfVxufTtcbmxldCBCdWNrZXRBbHJlYWR5T3duZWRCeVlvdSQxID0gY2xhc3MgQnVja2V0QWxyZWFkeU93bmVkQnlZb3UgZXh0ZW5kcyBTM1NlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiQnVja2V0QWxyZWFkeU93bmVkQnlZb3VcIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJCdWNrZXRBbHJlYWR5T3duZWRCeVlvdVwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBCdWNrZXRBbHJlYWR5T3duZWRCeVlvdS5wcm90b3R5cGUpO1xuICAgIH1cbn07XG5sZXQgTm9TdWNoQnVja2V0JDEgPSBjbGFzcyBOb1N1Y2hCdWNrZXQgZXh0ZW5kcyBTM1NlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiTm9TdWNoQnVja2V0XCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiTm9TdWNoQnVja2V0XCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIE5vU3VjaEJ1Y2tldC5wcm90b3R5cGUpO1xuICAgIH1cbn07XG5sZXQgSW52YWxpZE9iamVjdFN0YXRlJDEgPSBjbGFzcyBJbnZhbGlkT2JqZWN0U3RhdGUgZXh0ZW5kcyBTM1NlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiSW52YWxpZE9iamVjdFN0YXRlXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBTdG9yYWdlQ2xhc3M7XG4gICAgQWNjZXNzVGllcjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiSW52YWxpZE9iamVjdFN0YXRlXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEludmFsaWRPYmplY3RTdGF0ZS5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLlN0b3JhZ2VDbGFzcyA9IG9wdHMuU3RvcmFnZUNsYXNzO1xuICAgICAgICB0aGlzLkFjY2Vzc1RpZXIgPSBvcHRzLkFjY2Vzc1RpZXI7XG4gICAgfVxufTtcbmxldCBOb1N1Y2hLZXkkMSA9IGNsYXNzIE5vU3VjaEtleSBleHRlbmRzIFMzU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJOb1N1Y2hLZXlcIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJOb1N1Y2hLZXlcIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgTm9TdWNoS2V5LnByb3RvdHlwZSk7XG4gICAgfVxufTtcbmxldCBOb3RGb3VuZCQxID0gY2xhc3MgTm90Rm91bmQgZXh0ZW5kcyBTM1NlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiTm90Rm91bmRcIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJOb3RGb3VuZFwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBOb3RGb3VuZC5wcm90b3R5cGUpO1xuICAgIH1cbn07XG5sZXQgRW5jcnlwdGlvblR5cGVNaXNtYXRjaCQxID0gY2xhc3MgRW5jcnlwdGlvblR5cGVNaXNtYXRjaCBleHRlbmRzIFMzU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJFbmNyeXB0aW9uVHlwZU1pc21hdGNoXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiRW5jcnlwdGlvblR5cGVNaXNtYXRjaFwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBFbmNyeXB0aW9uVHlwZU1pc21hdGNoLnByb3RvdHlwZSk7XG4gICAgfVxufTtcbmxldCBJbnZhbGlkUmVxdWVzdCQxID0gY2xhc3MgSW52YWxpZFJlcXVlc3QgZXh0ZW5kcyBTM1NlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiSW52YWxpZFJlcXVlc3RcIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJJbnZhbGlkUmVxdWVzdFwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBJbnZhbGlkUmVxdWVzdC5wcm90b3R5cGUpO1xuICAgIH1cbn07XG5sZXQgSW52YWxpZFdyaXRlT2Zmc2V0JDEgPSBjbGFzcyBJbnZhbGlkV3JpdGVPZmZzZXQgZXh0ZW5kcyBTM1NlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiSW52YWxpZFdyaXRlT2Zmc2V0XCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiSW52YWxpZFdyaXRlT2Zmc2V0XCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEludmFsaWRXcml0ZU9mZnNldC5wcm90b3R5cGUpO1xuICAgIH1cbn07XG5sZXQgVG9vTWFueVBhcnRzJDEgPSBjbGFzcyBUb29NYW55UGFydHMgZXh0ZW5kcyBTM1NlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiVG9vTWFueVBhcnRzXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiVG9vTWFueVBhcnRzXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFRvb01hbnlQYXJ0cy5wcm90b3R5cGUpO1xuICAgIH1cbn07XG5sZXQgSWRlbXBvdGVuY3lQYXJhbWV0ZXJNaXNtYXRjaCQxID0gY2xhc3MgSWRlbXBvdGVuY3lQYXJhbWV0ZXJNaXNtYXRjaCBleHRlbmRzIFMzU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJJZGVtcG90ZW5jeVBhcmFtZXRlck1pc21hdGNoXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiSWRlbXBvdGVuY3lQYXJhbWV0ZXJNaXNtYXRjaFwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBJZGVtcG90ZW5jeVBhcmFtZXRlck1pc21hdGNoLnByb3RvdHlwZSk7XG4gICAgfVxufTtcbmxldCBPYmplY3RBbHJlYWR5SW5BY3RpdmVUaWVyRXJyb3IkMSA9IGNsYXNzIE9iamVjdEFscmVhZHlJbkFjdGl2ZVRpZXJFcnJvciBleHRlbmRzIFMzU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJPYmplY3RBbHJlYWR5SW5BY3RpdmVUaWVyRXJyb3JcIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJPYmplY3RBbHJlYWR5SW5BY3RpdmVUaWVyRXJyb3JcIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgT2JqZWN0QWxyZWFkeUluQWN0aXZlVGllckVycm9yLnByb3RvdHlwZSk7XG4gICAgfVxufTtcblxuY29uc3QgX0EgPSBcIkFjY291bnRcIjtcbmNvbnN0IF9BQU8gPSBcIkFuYWx5dGljc0FuZE9wZXJhdG9yXCI7XG5jb25zdCBfQUMgPSBcIkFjY2VsZXJhdGVDb25maWd1cmF0aW9uXCI7XG5jb25zdCBfQUNMID0gXCJBY2Nlc3NDb250cm9sTGlzdFwiO1xuY29uc3QgX0FDTF8gPSBcIkFDTFwiO1xuY29uc3QgX0FDTG4gPSBcIkFuYWx5dGljc0NvbmZpZ3VyYXRpb25MaXN0XCI7XG5jb25zdCBfQUNQID0gXCJBY2Nlc3NDb250cm9sUG9saWN5XCI7XG5jb25zdCBfQUNUID0gXCJBY2Nlc3NDb250cm9sVHJhbnNsYXRpb25cIjtcbmNvbnN0IF9BQ24gPSBcIkFuYWx5dGljc0NvbmZpZ3VyYXRpb25cIjtcbmNvbnN0IF9BRCA9IFwiQWJvcnREYXRlXCI7XG5jb25zdCBfQUVEID0gXCJBbmFseXRpY3NFeHBvcnREZXN0aW5hdGlvblwiO1xuY29uc3QgX0FGID0gXCJBbmFseXRpY3NGaWx0ZXJcIjtcbmNvbnN0IF9BSCA9IFwiQWxsb3dlZEhlYWRlcnNcIjtcbmNvbnN0IF9BSGwgPSBcIkFsbG93ZWRIZWFkZXJcIjtcbmNvbnN0IF9BSSA9IFwiQWNjb3VudElkXCI7XG5jb25zdCBfQUlNVSA9IFwiQWJvcnRJbmNvbXBsZXRlTXVsdGlwYXJ0VXBsb2FkXCI7XG5jb25zdCBfQUtJID0gXCJBY2Nlc3NLZXlJZFwiO1xuY29uc3QgX0FNID0gXCJBbGxvd2VkTWV0aG9kc1wiO1xuY29uc3QgX0FNVSA9IFwiQWJvcnRNdWx0aXBhcnRVcGxvYWRcIjtcbmNvbnN0IF9BTVVPID0gXCJBYm9ydE11bHRpcGFydFVwbG9hZE91dHB1dFwiO1xuY29uc3QgX0FNVVIgPSBcIkFib3J0TXVsdGlwYXJ0VXBsb2FkUmVxdWVzdFwiO1xuY29uc3QgX0FNbCA9IFwiQWxsb3dlZE1ldGhvZFwiO1xuY29uc3QgX0FPID0gXCJBbGxvd2VkT3JpZ2luc1wiO1xuY29uc3QgX0FPbCA9IFwiQWxsb3dlZE9yaWdpblwiO1xuY29uc3QgX0FQQSA9IFwiQWNjZXNzUG9pbnRBbGlhc1wiO1xuY29uc3QgX0FQQWMgPSBcIkFjY2Vzc1BvaW50QXJuXCI7XG5jb25zdCBfQVFSRCA9IFwiQWxsb3dRdW90ZWRSZWNvcmREZWxpbWl0ZXJcIjtcbmNvbnN0IF9BUiA9IFwiQWNjZXB0UmFuZ2VzXCI7XG5jb25zdCBfQVJJID0gXCJBYm9ydFJ1bGVJZFwiO1xuY29uc3QgX0FTID0gXCJBYmFjU3RhdHVzXCI7XG5jb25zdCBfQVNCRCA9IFwiQW5hbHl0aWNzUzNCdWNrZXREZXN0aW5hdGlvblwiO1xuY29uc3QgX0FTU0VCRCA9IFwiQXBwbHlTZXJ2ZXJTaWRlRW5jcnlwdGlvbkJ5RGVmYXVsdFwiO1xuY29uc3QgX0FTciA9IFwiQXJjaGl2ZVN0YXR1c1wiO1xuY29uc3QgX0FUID0gXCJBY2Nlc3NUaWVyXCI7XG5jb25zdCBfQW4gPSBcIkFuZFwiO1xuY29uc3QgX0IgPSBcIkJ1Y2tldFwiO1xuY29uc3QgX0JBID0gXCJCdWNrZXRBcm5cIjtcbmNvbnN0IF9CQUUgPSBcIkJ1Y2tldEFscmVhZHlFeGlzdHNcIjtcbmNvbnN0IF9CQUkgPSBcIkJ1Y2tldEFjY291bnRJZFwiO1xuY29uc3QgX0JBT0JZID0gXCJCdWNrZXRBbHJlYWR5T3duZWRCeVlvdVwiO1xuY29uc3QgX0JFVCA9IFwiQmxvY2tlZEVuY3J5cHRpb25UeXBlc1wiO1xuY29uc3QgX0JHUiA9IFwiQnlwYXNzR292ZXJuYW5jZVJldGVudGlvblwiO1xuY29uc3QgX0JJID0gXCJCdWNrZXRJbmZvXCI7XG5jb25zdCBfQktFID0gXCJCdWNrZXRLZXlFbmFibGVkXCI7XG5jb25zdCBfQkxDID0gXCJCdWNrZXRMaWZlY3ljbGVDb25maWd1cmF0aW9uXCI7XG5jb25zdCBfQkxOID0gXCJCdWNrZXRMb2NhdGlvbk5hbWVcIjtcbmNvbnN0IF9CTFMgPSBcIkJ1Y2tldExvZ2dpbmdTdGF0dXNcIjtcbmNvbnN0IF9CTFQgPSBcIkJ1Y2tldExvY2F0aW9uVHlwZVwiO1xuY29uc3QgX0JOID0gXCJCdWNrZXROYW1lXCI7XG5jb25zdCBfQlAgPSBcIkJ5dGVzUHJvY2Vzc2VkXCI7XG5jb25zdCBfQlBBID0gXCJCbG9ja1B1YmxpY0FjbHNcIjtcbmNvbnN0IF9CUFAgPSBcIkJsb2NrUHVibGljUG9saWN5XCI7XG5jb25zdCBfQlIgPSBcIkJ1Y2tldFJlZ2lvblwiO1xuY29uc3QgX0JSeSA9IFwiQnl0ZXNSZXR1cm5lZFwiO1xuY29uc3QgX0JTID0gXCJCeXRlc1NjYW5uZWRcIjtcbmNvbnN0IF9CbyA9IFwiQm9keVwiO1xuY29uc3QgX0J1ID0gXCJCdWNrZXRzXCI7XG5jb25zdCBfQyA9IFwiQ2hlY2tzdW1cIjtcbmNvbnN0IF9DQSA9IFwiQ2hlY2tzdW1BbGdvcml0aG1cIjtcbmNvbnN0IF9DQUNMID0gXCJDYW5uZWRBQ0xcIjtcbmNvbnN0IF9DQiA9IFwiQ3JlYXRlQnVja2V0XCI7XG5jb25zdCBfQ0JDID0gXCJDcmVhdGVCdWNrZXRDb25maWd1cmF0aW9uXCI7XG5jb25zdCBfQ0JNQyA9IFwiQ3JlYXRlQnVja2V0TWV0YWRhdGFDb25maWd1cmF0aW9uXCI7XG5jb25zdCBfQ0JNQ1IgPSBcIkNyZWF0ZUJ1Y2tldE1ldGFkYXRhQ29uZmlndXJhdGlvblJlcXVlc3RcIjtcbmNvbnN0IF9DQk1UQyA9IFwiQ3JlYXRlQnVja2V0TWV0YWRhdGFUYWJsZUNvbmZpZ3VyYXRpb25cIjtcbmNvbnN0IF9DQk1UQ1IgPSBcIkNyZWF0ZUJ1Y2tldE1ldGFkYXRhVGFibGVDb25maWd1cmF0aW9uUmVxdWVzdFwiO1xuY29uc3QgX0NCTyA9IFwiQ3JlYXRlQnVja2V0T3V0cHV0XCI7XG5jb25zdCBfQ0JSID0gXCJDcmVhdGVCdWNrZXRSZXF1ZXN0XCI7XG5jb25zdCBfQ0MgPSBcIkNhY2hlQ29udHJvbFwiO1xuY29uc3QgX0NDUkMgPSBcIkNoZWNrc3VtQ1JDMzJcIjtcbmNvbnN0IF9DQ1JDQyA9IFwiQ2hlY2tzdW1DUkMzMkNcIjtcbmNvbnN0IF9DQ1JDTlZNRSA9IFwiQ2hlY2tzdW1DUkM2NE5WTUVcIjtcbmNvbnN0IF9DQ18gPSBcIkNhY2hlLUNvbnRyb2xcIjtcbmNvbnN0IF9DRCA9IFwiQ3JlYXRpb25EYXRlXCI7XG5jb25zdCBfQ0RfID0gXCJDb250ZW50LURpc3Bvc2l0aW9uXCI7XG5jb25zdCBfQ0RvID0gXCJDb250ZW50RGlzcG9zaXRpb25cIjtcbmNvbnN0IF9DRSA9IFwiQ29udGludWF0aW9uRXZlbnRcIjtcbmNvbnN0IF9DRV8gPSBcIkNvbnRlbnQtRW5jb2RpbmdcIjtcbmNvbnN0IF9DRW8gPSBcIkNvbnRlbnRFbmNvZGluZ1wiO1xuY29uc3QgX0NGID0gXCJDbG91ZEZ1bmN0aW9uXCI7XG5jb25zdCBfQ0ZDID0gXCJDbG91ZEZ1bmN0aW9uQ29uZmlndXJhdGlvblwiO1xuY29uc3QgX0NMID0gXCJDb250ZW50TGFuZ3VhZ2VcIjtcbmNvbnN0IF9DTF8gPSBcIkNvbnRlbnQtTGFuZ3VhZ2VcIjtcbmNvbnN0IF9DTF9fID0gXCJDb250ZW50LUxlbmd0aFwiO1xuY29uc3QgX0NMbyA9IFwiQ29udGVudExlbmd0aFwiO1xuY29uc3QgX0NNID0gXCJDb250ZW50LU1ENVwiO1xuY29uc3QgX0NNRCA9IFwiQ29udGVudE1ENVwiO1xuY29uc3QgX0NNVSA9IFwiQ29tcGxldGVkTXVsdGlwYXJ0VXBsb2FkXCI7XG5jb25zdCBfQ01VTyA9IFwiQ29tcGxldGVNdWx0aXBhcnRVcGxvYWRPdXRwdXRcIjtcbmNvbnN0IF9DTVVPciA9IFwiQ3JlYXRlTXVsdGlwYXJ0VXBsb2FkT3V0cHV0XCI7XG5jb25zdCBfQ01VUiA9IFwiQ29tcGxldGVNdWx0aXBhcnRVcGxvYWRSZXN1bHRcIjtcbmNvbnN0IF9DTVVSbyA9IFwiQ29tcGxldGVNdWx0aXBhcnRVcGxvYWRSZXF1ZXN0XCI7XG5jb25zdCBfQ01VUnIgPSBcIkNyZWF0ZU11bHRpcGFydFVwbG9hZFJlcXVlc3RcIjtcbmNvbnN0IF9DTVVvID0gXCJDb21wbGV0ZU11bHRpcGFydFVwbG9hZFwiO1xuY29uc3QgX0NNVXIgPSBcIkNyZWF0ZU11bHRpcGFydFVwbG9hZFwiO1xuY29uc3QgX0NNaCA9IFwiQ2hlY2tzdW1Nb2RlXCI7XG5jb25zdCBfQ08gPSBcIkNvcHlPYmplY3RcIjtcbmNvbnN0IF9DT08gPSBcIkNvcHlPYmplY3RPdXRwdXRcIjtcbmNvbnN0IF9DT1IgPSBcIkNvcHlPYmplY3RSZXN1bHRcIjtcbmNvbnN0IF9DT1JTQyA9IFwiQ09SU0NvbmZpZ3VyYXRpb25cIjtcbmNvbnN0IF9DT1JTUiA9IFwiQ09SU1J1bGVzXCI7XG5jb25zdCBfQ09SU1J1ID0gXCJDT1JTUnVsZVwiO1xuY29uc3QgX0NPUm8gPSBcIkNvcHlPYmplY3RSZXF1ZXN0XCI7XG5jb25zdCBfQ1AgPSBcIkNvbW1vblByZWZpeFwiO1xuY29uc3QgX0NQTCA9IFwiQ29tbW9uUHJlZml4TGlzdFwiO1xuY29uc3QgX0NQTG8gPSBcIkNvbXBsZXRlZFBhcnRMaXN0XCI7XG5jb25zdCBfQ1BSID0gXCJDb3B5UGFydFJlc3VsdFwiO1xuY29uc3QgX0NQbyA9IFwiQ29tcGxldGVkUGFydFwiO1xuY29uc3QgX0NQb20gPSBcIkNvbW1vblByZWZpeGVzXCI7XG5jb25zdCBfQ1IgPSBcIkNvbnRlbnRSYW5nZVwiO1xuY29uc3QgX0NSU0JBID0gXCJDb25maXJtUmVtb3ZlU2VsZkJ1Y2tldEFjY2Vzc1wiO1xuY29uc3QgX0NSXyA9IFwiQ29udGVudC1SYW5nZVwiO1xuY29uc3QgX0NTID0gXCJDb3B5U291cmNlXCI7XG5jb25zdCBfQ1NIQSA9IFwiQ2hlY2tzdW1TSEExXCI7XG5jb25zdCBfQ1NIQWggPSBcIkNoZWNrc3VtU0hBMjU2XCI7XG5jb25zdCBfQ1NJTSA9IFwiQ29weVNvdXJjZUlmTWF0Y2hcIjtcbmNvbnN0IF9DU0lNUyA9IFwiQ29weVNvdXJjZUlmTW9kaWZpZWRTaW5jZVwiO1xuY29uc3QgX0NTSU5NID0gXCJDb3B5U291cmNlSWZOb25lTWF0Y2hcIjtcbmNvbnN0IF9DU0lVUyA9IFwiQ29weVNvdXJjZUlmVW5tb2RpZmllZFNpbmNlXCI7XG5jb25zdCBfQ1NPID0gXCJDcmVhdGVTZXNzaW9uT3V0cHV0XCI7XG5jb25zdCBfQ1NSID0gXCJDcmVhdGVTZXNzaW9uUmVzdWx0XCI7XG5jb25zdCBfQ1NSbyA9IFwiQ29weVNvdXJjZVJhbmdlXCI7XG5jb25zdCBfQ1NSciA9IFwiQ3JlYXRlU2Vzc2lvblJlcXVlc3RcIjtcbmNvbnN0IF9DU1NTRUNBID0gXCJDb3B5U291cmNlU1NFQ3VzdG9tZXJBbGdvcml0aG1cIjtcbmNvbnN0IF9DU1NTRUNLID0gXCJDb3B5U291cmNlU1NFQ3VzdG9tZXJLZXlcIjtcbmNvbnN0IF9DU1NTRUNLTUQgPSBcIkNvcHlTb3VyY2VTU0VDdXN0b21lcktleU1ENVwiO1xuY29uc3QgX0NTViA9IFwiQ1NWXCI7XG5jb25zdCBfQ1NWSSA9IFwiQ29weVNvdXJjZVZlcnNpb25JZFwiO1xuY29uc3QgX0NTVkluID0gXCJDU1ZJbnB1dFwiO1xuY29uc3QgX0NTVk8gPSBcIkNTVk91dHB1dFwiO1xuY29uc3QgX0NTbyA9IFwiQ29uZmlndXJhdGlvblN0YXRlXCI7XG5jb25zdCBfQ1NyID0gXCJDcmVhdGVTZXNzaW9uXCI7XG5jb25zdCBfQ1QgPSBcIkNoZWNrc3VtVHlwZVwiO1xuY29uc3QgX0NUXyA9IFwiQ29udGVudC1UeXBlXCI7XG5jb25zdCBfQ1RsID0gXCJDbGllbnRUb2tlblwiO1xuY29uc3QgX0NUbyA9IFwiQ29udGVudFR5cGVcIjtcbmNvbnN0IF9DVG9tID0gXCJDb21wcmVzc2lvblR5cGVcIjtcbmNvbnN0IF9DVG9uID0gXCJDb250aW51YXRpb25Ub2tlblwiO1xuY29uc3QgX0NvID0gXCJDb25kaXRpb25cIjtcbmNvbnN0IF9Db2QgPSBcIkNvZGVcIjtcbmNvbnN0IF9Db20gPSBcIkNvbW1lbnRzXCI7XG5jb25zdCBfQ29uID0gXCJDb250ZW50c1wiO1xuY29uc3QgX0NvbnQgPSBcIkNvbnRcIjtcbmNvbnN0IF9DciA9IFwiQ3JlZGVudGlhbHNcIjtcbmNvbnN0IF9EID0gXCJEYXlzXCI7XG5jb25zdCBfREFJID0gXCJEYXlzQWZ0ZXJJbml0aWF0aW9uXCI7XG5jb25zdCBfREIgPSBcIkRlbGV0ZUJ1Y2tldFwiO1xuY29uc3QgX0RCQUMgPSBcIkRlbGV0ZUJ1Y2tldEFuYWx5dGljc0NvbmZpZ3VyYXRpb25cIjtcbmNvbnN0IF9EQkFDUiA9IFwiRGVsZXRlQnVja2V0QW5hbHl0aWNzQ29uZmlndXJhdGlvblJlcXVlc3RcIjtcbmNvbnN0IF9EQkMgPSBcIkRlbGV0ZUJ1Y2tldENvcnNcIjtcbmNvbnN0IF9EQkNSID0gXCJEZWxldGVCdWNrZXRDb3JzUmVxdWVzdFwiO1xuY29uc3QgX0RCRSA9IFwiRGVsZXRlQnVja2V0RW5jcnlwdGlvblwiO1xuY29uc3QgX0RCRVIgPSBcIkRlbGV0ZUJ1Y2tldEVuY3J5cHRpb25SZXF1ZXN0XCI7XG5jb25zdCBfREJJQyA9IFwiRGVsZXRlQnVja2V0SW52ZW50b3J5Q29uZmlndXJhdGlvblwiO1xuY29uc3QgX0RCSUNSID0gXCJEZWxldGVCdWNrZXRJbnZlbnRvcnlDb25maWd1cmF0aW9uUmVxdWVzdFwiO1xuY29uc3QgX0RCSVRDID0gXCJEZWxldGVCdWNrZXRJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9uXCI7XG5jb25zdCBfREJJVENSID0gXCJEZWxldGVCdWNrZXRJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9uUmVxdWVzdFwiO1xuY29uc3QgX0RCTCA9IFwiRGVsZXRlQnVja2V0TGlmZWN5Y2xlXCI7XG5jb25zdCBfREJMUiA9IFwiRGVsZXRlQnVja2V0TGlmZWN5Y2xlUmVxdWVzdFwiO1xuY29uc3QgX0RCTUMgPSBcIkRlbGV0ZUJ1Y2tldE1ldGFkYXRhQ29uZmlndXJhdGlvblwiO1xuY29uc3QgX0RCTUNSID0gXCJEZWxldGVCdWNrZXRNZXRhZGF0YUNvbmZpZ3VyYXRpb25SZXF1ZXN0XCI7XG5jb25zdCBfREJNQ1JlID0gXCJEZWxldGVCdWNrZXRNZXRyaWNzQ29uZmlndXJhdGlvblJlcXVlc3RcIjtcbmNvbnN0IF9EQk1DZSA9IFwiRGVsZXRlQnVja2V0TWV0cmljc0NvbmZpZ3VyYXRpb25cIjtcbmNvbnN0IF9EQk1UQyA9IFwiRGVsZXRlQnVja2V0TWV0YWRhdGFUYWJsZUNvbmZpZ3VyYXRpb25cIjtcbmNvbnN0IF9EQk1UQ1IgPSBcIkRlbGV0ZUJ1Y2tldE1ldGFkYXRhVGFibGVDb25maWd1cmF0aW9uUmVxdWVzdFwiO1xuY29uc3QgX0RCT0MgPSBcIkRlbGV0ZUJ1Y2tldE93bmVyc2hpcENvbnRyb2xzXCI7XG5jb25zdCBfREJPQ1IgPSBcIkRlbGV0ZUJ1Y2tldE93bmVyc2hpcENvbnRyb2xzUmVxdWVzdFwiO1xuY29uc3QgX0RCUCA9IFwiRGVsZXRlQnVja2V0UG9saWN5XCI7XG5jb25zdCBfREJQUiA9IFwiRGVsZXRlQnVja2V0UG9saWN5UmVxdWVzdFwiO1xuY29uc3QgX0RCUiA9IFwiRGVsZXRlQnVja2V0UmVxdWVzdFwiO1xuY29uc3QgX0RCUlIgPSBcIkRlbGV0ZUJ1Y2tldFJlcGxpY2F0aW9uUmVxdWVzdFwiO1xuY29uc3QgX0RCUmUgPSBcIkRlbGV0ZUJ1Y2tldFJlcGxpY2F0aW9uXCI7XG5jb25zdCBfREJUID0gXCJEZWxldGVCdWNrZXRUYWdnaW5nXCI7XG5jb25zdCBfREJUUiA9IFwiRGVsZXRlQnVja2V0VGFnZ2luZ1JlcXVlc3RcIjtcbmNvbnN0IF9EQlcgPSBcIkRlbGV0ZUJ1Y2tldFdlYnNpdGVcIjtcbmNvbnN0IF9EQldSID0gXCJEZWxldGVCdWNrZXRXZWJzaXRlUmVxdWVzdFwiO1xuY29uc3QgX0RFID0gXCJEYXRhRXhwb3J0XCI7XG5jb25zdCBfRElNID0gXCJEZXN0aW5hdGlvbklmTWF0Y2hcIjtcbmNvbnN0IF9ESU1TID0gXCJEZXN0aW5hdGlvbklmTW9kaWZpZWRTaW5jZVwiO1xuY29uc3QgX0RJTk0gPSBcIkRlc3RpbmF0aW9uSWZOb25lTWF0Y2hcIjtcbmNvbnN0IF9ESVVTID0gXCJEZXN0aW5hdGlvbklmVW5tb2RpZmllZFNpbmNlXCI7XG5jb25zdCBfRE0gPSBcIkRlbGV0ZU1hcmtlclwiO1xuY29uc3QgX0RNRSA9IFwiRGVsZXRlTWFya2VyRW50cnlcIjtcbmNvbnN0IF9ETVIgPSBcIkRlbGV0ZU1hcmtlclJlcGxpY2F0aW9uXCI7XG5jb25zdCBfRE1WSSA9IFwiRGVsZXRlTWFya2VyVmVyc2lvbklkXCI7XG5jb25zdCBfRE1lID0gXCJEZWxldGVNYXJrZXJzXCI7XG5jb25zdCBfRE4gPSBcIkRpc3BsYXlOYW1lXCI7XG5jb25zdCBfRE8gPSBcIkRlbGV0ZWRPYmplY3RcIjtcbmNvbnN0IF9ET08gPSBcIkRlbGV0ZU9iamVjdE91dHB1dFwiO1xuY29uc3QgX0RPT2UgPSBcIkRlbGV0ZU9iamVjdHNPdXRwdXRcIjtcbmNvbnN0IF9ET1IgPSBcIkRlbGV0ZU9iamVjdFJlcXVlc3RcIjtcbmNvbnN0IF9ET1JlID0gXCJEZWxldGVPYmplY3RzUmVxdWVzdFwiO1xuY29uc3QgX0RPVCA9IFwiRGVsZXRlT2JqZWN0VGFnZ2luZ1wiO1xuY29uc3QgX0RPVE8gPSBcIkRlbGV0ZU9iamVjdFRhZ2dpbmdPdXRwdXRcIjtcbmNvbnN0IF9ET1RSID0gXCJEZWxldGVPYmplY3RUYWdnaW5nUmVxdWVzdFwiO1xuY29uc3QgX0RPZSA9IFwiRGVsZXRlZE9iamVjdHNcIjtcbmNvbnN0IF9ET2VsID0gXCJEZWxldGVPYmplY3RcIjtcbmNvbnN0IF9ET2VsZSA9IFwiRGVsZXRlT2JqZWN0c1wiO1xuY29uc3QgX0RQQUIgPSBcIkRlbGV0ZVB1YmxpY0FjY2Vzc0Jsb2NrXCI7XG5jb25zdCBfRFBBQlIgPSBcIkRlbGV0ZVB1YmxpY0FjY2Vzc0Jsb2NrUmVxdWVzdFwiO1xuY29uc3QgX0RSID0gXCJEYXRhUmVkdW5kYW5jeVwiO1xuY29uc3QgX0RSZSA9IFwiRGVmYXVsdFJldGVudGlvblwiO1xuY29uc3QgX0RSZWwgPSBcIkRlbGV0ZVJlc3VsdFwiO1xuY29uc3QgX0RSZXMgPSBcIkRlc3RpbmF0aW9uUmVzdWx0XCI7XG5jb25zdCBfRGEgPSBcIkRhdGVcIjtcbmNvbnN0IF9EZSA9IFwiRGVsZXRlXCI7XG5jb25zdCBfRGVsID0gXCJEZWxldGVkXCI7XG5jb25zdCBfRGVsaSA9IFwiRGVsaW1pdGVyXCI7XG5jb25zdCBfRGVzID0gXCJEZXN0aW5hdGlvblwiO1xuY29uc3QgX0Rlc2MgPSBcIkRlc2NyaXB0aW9uXCI7XG5jb25zdCBfRGV0ID0gXCJEZXRhaWxzXCI7XG5jb25zdCBfRSA9IFwiRXhwaXJhdGlvblwiO1xuY29uc3QgX0VBID0gXCJFbWFpbEFkZHJlc3NcIjtcbmNvbnN0IF9FQkMgPSBcIkV2ZW50QnJpZGdlQ29uZmlndXJhdGlvblwiO1xuY29uc3QgX0VCTyA9IFwiRXhwZWN0ZWRCdWNrZXRPd25lclwiO1xuY29uc3QgX0VDID0gXCJFbmNyeXB0aW9uQ29uZmlndXJhdGlvblwiO1xuY29uc3QgX0VDciA9IFwiRXJyb3JDb2RlXCI7XG5jb25zdCBfRUQgPSBcIkVycm9yRGV0YWlsc1wiO1xuY29uc3QgX0VEciA9IFwiRXJyb3JEb2N1bWVudFwiO1xuY29uc3QgX0VFID0gXCJFbmRFdmVudFwiO1xuY29uc3QgX0VIID0gXCJFeHBvc2VIZWFkZXJzXCI7XG5jb25zdCBfRUh4ID0gXCJFeHBvc2VIZWFkZXJcIjtcbmNvbnN0IF9FTSA9IFwiRXJyb3JNZXNzYWdlXCI7XG5jb25zdCBfRU9ETSA9IFwiRXhwaXJlZE9iamVjdERlbGV0ZU1hcmtlclwiO1xuY29uc3QgX0VPUiA9IFwiRXhpc3RpbmdPYmplY3RSZXBsaWNhdGlvblwiO1xuY29uc3QgX0VTID0gXCJFeHBpcmVzU3RyaW5nXCI7XG5jb25zdCBfRVNCTyA9IFwiRXhwZWN0ZWRTb3VyY2VCdWNrZXRPd25lclwiO1xuY29uc3QgX0VUID0gXCJFbmNyeXB0aW9uVHlwZVwiO1xuY29uc3QgX0VUTCA9IFwiRW5jcnlwdGlvblR5cGVMaXN0XCI7XG5jb25zdCBfRVRNID0gXCJFbmNyeXB0aW9uVHlwZU1pc21hdGNoXCI7XG5jb25zdCBfRVRhID0gXCJFVGFnXCI7XG5jb25zdCBfRVRuID0gXCJFbmNvZGluZ1R5cGVcIjtcbmNvbnN0IF9FVHYgPSBcIkV2ZW50VGhyZXNob2xkXCI7XG5jb25zdCBfRVR4ID0gXCJFeHByZXNzaW9uVHlwZVwiO1xuY29uc3QgX0VuID0gXCJFbmNyeXB0aW9uXCI7XG5jb25zdCBfRW5hID0gXCJFbmFibGVkXCI7XG5jb25zdCBfRW5kID0gXCJFbmRcIjtcbmNvbnN0IF9FciA9IFwiRXJyb3JzXCI7XG5jb25zdCBfRXJyID0gXCJFcnJvclwiO1xuY29uc3QgX0V2ID0gXCJFdmVudHNcIjtcbmNvbnN0IF9FdmUgPSBcIkV2ZW50XCI7XG5jb25zdCBfRXggPSBcIkV4cGlyZXNcIjtcbmNvbnN0IF9FeHAgPSBcIkV4cHJlc3Npb25cIjtcbmNvbnN0IF9GID0gXCJGaWx0ZXJcIjtcbmNvbnN0IF9GRCA9IFwiRmllbGREZWxpbWl0ZXJcIjtcbmNvbnN0IF9GSEkgPSBcIkZpbGVIZWFkZXJJbmZvXCI7XG5jb25zdCBfRk8gPSBcIkZldGNoT3duZXJcIjtcbmNvbnN0IF9GUiA9IFwiRmlsdGVyUnVsZVwiO1xuY29uc3QgX0ZSTCA9IFwiRmlsdGVyUnVsZUxpc3RcIjtcbmNvbnN0IF9GUmkgPSBcIkZpbHRlclJ1bGVzXCI7XG5jb25zdCBfRmkgPSBcIkZpZWxkXCI7XG5jb25zdCBfRm8gPSBcIkZvcm1hdFwiO1xuY29uc3QgX0ZyID0gXCJGcmVxdWVuY3lcIjtcbmNvbnN0IF9HID0gXCJHcmFudHNcIjtcbmNvbnN0IF9HQkEgPSBcIkdldEJ1Y2tldEFiYWNcIjtcbmNvbnN0IF9HQkFDID0gXCJHZXRCdWNrZXRBY2NlbGVyYXRlQ29uZmlndXJhdGlvblwiO1xuY29uc3QgX0dCQUNPID0gXCJHZXRCdWNrZXRBY2NlbGVyYXRlQ29uZmlndXJhdGlvbk91dHB1dFwiO1xuY29uc3QgX0dCQUNPZSA9IFwiR2V0QnVja2V0QW5hbHl0aWNzQ29uZmlndXJhdGlvbk91dHB1dFwiO1xuY29uc3QgX0dCQUNSID0gXCJHZXRCdWNrZXRBY2NlbGVyYXRlQ29uZmlndXJhdGlvblJlcXVlc3RcIjtcbmNvbnN0IF9HQkFDUmUgPSBcIkdldEJ1Y2tldEFuYWx5dGljc0NvbmZpZ3VyYXRpb25SZXF1ZXN0XCI7XG5jb25zdCBfR0JBQ2UgPSBcIkdldEJ1Y2tldEFuYWx5dGljc0NvbmZpZ3VyYXRpb25cIjtcbmNvbnN0IF9HQkFPID0gXCJHZXRCdWNrZXRBYmFjT3V0cHV0XCI7XG5jb25zdCBfR0JBT2UgPSBcIkdldEJ1Y2tldEFjbE91dHB1dFwiO1xuY29uc3QgX0dCQVIgPSBcIkdldEJ1Y2tldEFiYWNSZXF1ZXN0XCI7XG5jb25zdCBfR0JBUmUgPSBcIkdldEJ1Y2tldEFjbFJlcXVlc3RcIjtcbmNvbnN0IF9HQkFlID0gXCJHZXRCdWNrZXRBY2xcIjtcbmNvbnN0IF9HQkMgPSBcIkdldEJ1Y2tldENvcnNcIjtcbmNvbnN0IF9HQkNPID0gXCJHZXRCdWNrZXRDb3JzT3V0cHV0XCI7XG5jb25zdCBfR0JDUiA9IFwiR2V0QnVja2V0Q29yc1JlcXVlc3RcIjtcbmNvbnN0IF9HQkUgPSBcIkdldEJ1Y2tldEVuY3J5cHRpb25cIjtcbmNvbnN0IF9HQkVPID0gXCJHZXRCdWNrZXRFbmNyeXB0aW9uT3V0cHV0XCI7XG5jb25zdCBfR0JFUiA9IFwiR2V0QnVja2V0RW5jcnlwdGlvblJlcXVlc3RcIjtcbmNvbnN0IF9HQklDID0gXCJHZXRCdWNrZXRJbnZlbnRvcnlDb25maWd1cmF0aW9uXCI7XG5jb25zdCBfR0JJQ08gPSBcIkdldEJ1Y2tldEludmVudG9yeUNvbmZpZ3VyYXRpb25PdXRwdXRcIjtcbmNvbnN0IF9HQklDUiA9IFwiR2V0QnVja2V0SW52ZW50b3J5Q29uZmlndXJhdGlvblJlcXVlc3RcIjtcbmNvbnN0IF9HQklUQyA9IFwiR2V0QnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvblwiO1xuY29uc3QgX0dCSVRDTyA9IFwiR2V0QnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvbk91dHB1dFwiO1xuY29uc3QgX0dCSVRDUiA9IFwiR2V0QnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvblJlcXVlc3RcIjtcbmNvbnN0IF9HQkwgPSBcIkdldEJ1Y2tldExvY2F0aW9uXCI7XG5jb25zdCBfR0JMQyA9IFwiR2V0QnVja2V0TGlmZWN5Y2xlQ29uZmlndXJhdGlvblwiO1xuY29uc3QgX0dCTENPID0gXCJHZXRCdWNrZXRMaWZlY3ljbGVDb25maWd1cmF0aW9uT3V0cHV0XCI7XG5jb25zdCBfR0JMQ1IgPSBcIkdldEJ1Y2tldExpZmVjeWNsZUNvbmZpZ3VyYXRpb25SZXF1ZXN0XCI7XG5jb25zdCBfR0JMTyA9IFwiR2V0QnVja2V0TG9jYXRpb25PdXRwdXRcIjtcbmNvbnN0IF9HQkxPZSA9IFwiR2V0QnVja2V0TG9nZ2luZ091dHB1dFwiO1xuY29uc3QgX0dCTFIgPSBcIkdldEJ1Y2tldExvY2F0aW9uUmVxdWVzdFwiO1xuY29uc3QgX0dCTFJlID0gXCJHZXRCdWNrZXRMb2dnaW5nUmVxdWVzdFwiO1xuY29uc3QgX0dCTGUgPSBcIkdldEJ1Y2tldExvZ2dpbmdcIjtcbmNvbnN0IF9HQk1DID0gXCJHZXRCdWNrZXRNZXRhZGF0YUNvbmZpZ3VyYXRpb25cIjtcbmNvbnN0IF9HQk1DTyA9IFwiR2V0QnVja2V0TWV0YWRhdGFDb25maWd1cmF0aW9uT3V0cHV0XCI7XG5jb25zdCBfR0JNQ09lID0gXCJHZXRCdWNrZXRNZXRyaWNzQ29uZmlndXJhdGlvbk91dHB1dFwiO1xuY29uc3QgX0dCTUNSID0gXCJHZXRCdWNrZXRNZXRhZGF0YUNvbmZpZ3VyYXRpb25SZXN1bHRcIjtcbmNvbnN0IF9HQk1DUmUgPSBcIkdldEJ1Y2tldE1ldGFkYXRhQ29uZmlndXJhdGlvblJlcXVlc3RcIjtcbmNvbnN0IF9HQk1DUmV0ID0gXCJHZXRCdWNrZXRNZXRyaWNzQ29uZmlndXJhdGlvblJlcXVlc3RcIjtcbmNvbnN0IF9HQk1DZSA9IFwiR2V0QnVja2V0TWV0cmljc0NvbmZpZ3VyYXRpb25cIjtcbmNvbnN0IF9HQk1UQyA9IFwiR2V0QnVja2V0TWV0YWRhdGFUYWJsZUNvbmZpZ3VyYXRpb25cIjtcbmNvbnN0IF9HQk1UQ08gPSBcIkdldEJ1Y2tldE1ldGFkYXRhVGFibGVDb25maWd1cmF0aW9uT3V0cHV0XCI7XG5jb25zdCBfR0JNVENSID0gXCJHZXRCdWNrZXRNZXRhZGF0YVRhYmxlQ29uZmlndXJhdGlvblJlc3VsdFwiO1xuY29uc3QgX0dCTVRDUmUgPSBcIkdldEJ1Y2tldE1ldGFkYXRhVGFibGVDb25maWd1cmF0aW9uUmVxdWVzdFwiO1xuY29uc3QgX0dCTkMgPSBcIkdldEJ1Y2tldE5vdGlmaWNhdGlvbkNvbmZpZ3VyYXRpb25cIjtcbmNvbnN0IF9HQk5DUiA9IFwiR2V0QnVja2V0Tm90aWZpY2F0aW9uQ29uZmlndXJhdGlvblJlcXVlc3RcIjtcbmNvbnN0IF9HQk9DID0gXCJHZXRCdWNrZXRPd25lcnNoaXBDb250cm9sc1wiO1xuY29uc3QgX0dCT0NPID0gXCJHZXRCdWNrZXRPd25lcnNoaXBDb250cm9sc091dHB1dFwiO1xuY29uc3QgX0dCT0NSID0gXCJHZXRCdWNrZXRPd25lcnNoaXBDb250cm9sc1JlcXVlc3RcIjtcbmNvbnN0IF9HQlAgPSBcIkdldEJ1Y2tldFBvbGljeVwiO1xuY29uc3QgX0dCUE8gPSBcIkdldEJ1Y2tldFBvbGljeU91dHB1dFwiO1xuY29uc3QgX0dCUFIgPSBcIkdldEJ1Y2tldFBvbGljeVJlcXVlc3RcIjtcbmNvbnN0IF9HQlBTID0gXCJHZXRCdWNrZXRQb2xpY3lTdGF0dXNcIjtcbmNvbnN0IF9HQlBTTyA9IFwiR2V0QnVja2V0UG9saWN5U3RhdHVzT3V0cHV0XCI7XG5jb25zdCBfR0JQU1IgPSBcIkdldEJ1Y2tldFBvbGljeVN0YXR1c1JlcXVlc3RcIjtcbmNvbnN0IF9HQlIgPSBcIkdldEJ1Y2tldFJlcGxpY2F0aW9uXCI7XG5jb25zdCBfR0JSTyA9IFwiR2V0QnVja2V0UmVwbGljYXRpb25PdXRwdXRcIjtcbmNvbnN0IF9HQlJQID0gXCJHZXRCdWNrZXRSZXF1ZXN0UGF5bWVudFwiO1xuY29uc3QgX0dCUlBPID0gXCJHZXRCdWNrZXRSZXF1ZXN0UGF5bWVudE91dHB1dFwiO1xuY29uc3QgX0dCUlBSID0gXCJHZXRCdWNrZXRSZXF1ZXN0UGF5bWVudFJlcXVlc3RcIjtcbmNvbnN0IF9HQlJSID0gXCJHZXRCdWNrZXRSZXBsaWNhdGlvblJlcXVlc3RcIjtcbmNvbnN0IF9HQlQgPSBcIkdldEJ1Y2tldFRhZ2dpbmdcIjtcbmNvbnN0IF9HQlRPID0gXCJHZXRCdWNrZXRUYWdnaW5nT3V0cHV0XCI7XG5jb25zdCBfR0JUUiA9IFwiR2V0QnVja2V0VGFnZ2luZ1JlcXVlc3RcIjtcbmNvbnN0IF9HQlYgPSBcIkdldEJ1Y2tldFZlcnNpb25pbmdcIjtcbmNvbnN0IF9HQlZPID0gXCJHZXRCdWNrZXRWZXJzaW9uaW5nT3V0cHV0XCI7XG5jb25zdCBfR0JWUiA9IFwiR2V0QnVja2V0VmVyc2lvbmluZ1JlcXVlc3RcIjtcbmNvbnN0IF9HQlcgPSBcIkdldEJ1Y2tldFdlYnNpdGVcIjtcbmNvbnN0IF9HQldPID0gXCJHZXRCdWNrZXRXZWJzaXRlT3V0cHV0XCI7XG5jb25zdCBfR0JXUiA9IFwiR2V0QnVja2V0V2Vic2l0ZVJlcXVlc3RcIjtcbmNvbnN0IF9HRkMgPSBcIkdyYW50RnVsbENvbnRyb2xcIjtcbmNvbnN0IF9HSlAgPSBcIkdsYWNpZXJKb2JQYXJhbWV0ZXJzXCI7XG5jb25zdCBfR08gPSBcIkdldE9iamVjdFwiO1xuY29uc3QgX0dPQSA9IFwiR2V0T2JqZWN0QWNsXCI7XG5jb25zdCBfR09BTyA9IFwiR2V0T2JqZWN0QWNsT3V0cHV0XCI7XG5jb25zdCBfR09BT2UgPSBcIkdldE9iamVjdEF0dHJpYnV0ZXNPdXRwdXRcIjtcbmNvbnN0IF9HT0FQID0gXCJHZXRPYmplY3RBdHRyaWJ1dGVzUGFydHNcIjtcbmNvbnN0IF9HT0FSID0gXCJHZXRPYmplY3RBY2xSZXF1ZXN0XCI7XG5jb25zdCBfR09BUmUgPSBcIkdldE9iamVjdEF0dHJpYnV0ZXNSZXNwb25zZVwiO1xuY29uc3QgX0dPQVJldCA9IFwiR2V0T2JqZWN0QXR0cmlidXRlc1JlcXVlc3RcIjtcbmNvbnN0IF9HT0FlID0gXCJHZXRPYmplY3RBdHRyaWJ1dGVzXCI7XG5jb25zdCBfR09MQyA9IFwiR2V0T2JqZWN0TG9ja0NvbmZpZ3VyYXRpb25cIjtcbmNvbnN0IF9HT0xDTyA9IFwiR2V0T2JqZWN0TG9ja0NvbmZpZ3VyYXRpb25PdXRwdXRcIjtcbmNvbnN0IF9HT0xDUiA9IFwiR2V0T2JqZWN0TG9ja0NvbmZpZ3VyYXRpb25SZXF1ZXN0XCI7XG5jb25zdCBfR09MSCA9IFwiR2V0T2JqZWN0TGVnYWxIb2xkXCI7XG5jb25zdCBfR09MSE8gPSBcIkdldE9iamVjdExlZ2FsSG9sZE91dHB1dFwiO1xuY29uc3QgX0dPTEhSID0gXCJHZXRPYmplY3RMZWdhbEhvbGRSZXF1ZXN0XCI7XG5jb25zdCBfR09PID0gXCJHZXRPYmplY3RPdXRwdXRcIjtcbmNvbnN0IF9HT1IgPSBcIkdldE9iamVjdFJlcXVlc3RcIjtcbmNvbnN0IF9HT1JPID0gXCJHZXRPYmplY3RSZXRlbnRpb25PdXRwdXRcIjtcbmNvbnN0IF9HT1JSID0gXCJHZXRPYmplY3RSZXRlbnRpb25SZXF1ZXN0XCI7XG5jb25zdCBfR09SZSA9IFwiR2V0T2JqZWN0UmV0ZW50aW9uXCI7XG5jb25zdCBfR09UID0gXCJHZXRPYmplY3RUYWdnaW5nXCI7XG5jb25zdCBfR09UTyA9IFwiR2V0T2JqZWN0VGFnZ2luZ091dHB1dFwiO1xuY29uc3QgX0dPVE9lID0gXCJHZXRPYmplY3RUb3JyZW50T3V0cHV0XCI7XG5jb25zdCBfR09UUiA9IFwiR2V0T2JqZWN0VGFnZ2luZ1JlcXVlc3RcIjtcbmNvbnN0IF9HT1RSZSA9IFwiR2V0T2JqZWN0VG9ycmVudFJlcXVlc3RcIjtcbmNvbnN0IF9HT1RlID0gXCJHZXRPYmplY3RUb3JyZW50XCI7XG5jb25zdCBfR1BBQiA9IFwiR2V0UHVibGljQWNjZXNzQmxvY2tcIjtcbmNvbnN0IF9HUEFCTyA9IFwiR2V0UHVibGljQWNjZXNzQmxvY2tPdXRwdXRcIjtcbmNvbnN0IF9HUEFCUiA9IFwiR2V0UHVibGljQWNjZXNzQmxvY2tSZXF1ZXN0XCI7XG5jb25zdCBfR1IgPSBcIkdyYW50UmVhZFwiO1xuY29uc3QgX0dSQUNQID0gXCJHcmFudFJlYWRBQ1BcIjtcbmNvbnN0IF9HVyA9IFwiR3JhbnRXcml0ZVwiO1xuY29uc3QgX0dXQUNQID0gXCJHcmFudFdyaXRlQUNQXCI7XG5jb25zdCBfR3IgPSBcIkdyYW50XCI7XG5jb25zdCBfR3JhID0gXCJHcmFudGVlXCI7XG5jb25zdCBfSEIgPSBcIkhlYWRCdWNrZXRcIjtcbmNvbnN0IF9IQk8gPSBcIkhlYWRCdWNrZXRPdXRwdXRcIjtcbmNvbnN0IF9IQlIgPSBcIkhlYWRCdWNrZXRSZXF1ZXN0XCI7XG5jb25zdCBfSEVDUkUgPSBcIkh0dHBFcnJvckNvZGVSZXR1cm5lZEVxdWFsc1wiO1xuY29uc3QgX0hOID0gXCJIb3N0TmFtZVwiO1xuY29uc3QgX0hPID0gXCJIZWFkT2JqZWN0XCI7XG5jb25zdCBfSE9PID0gXCJIZWFkT2JqZWN0T3V0cHV0XCI7XG5jb25zdCBfSE9SID0gXCJIZWFkT2JqZWN0UmVxdWVzdFwiO1xuY29uc3QgX0hSQyA9IFwiSHR0cFJlZGlyZWN0Q29kZVwiO1xuY29uc3QgX0kgPSBcIklkXCI7XG5jb25zdCBfSUMgPSBcIkludmVudG9yeUNvbmZpZ3VyYXRpb25cIjtcbmNvbnN0IF9JQ0wgPSBcIkludmVudG9yeUNvbmZpZ3VyYXRpb25MaXN0XCI7XG5jb25zdCBfSUQgPSBcIklEXCI7XG5jb25zdCBfSURuID0gXCJJbmRleERvY3VtZW50XCI7XG5jb25zdCBfSURudiA9IFwiSW52ZW50b3J5RGVzdGluYXRpb25cIjtcbmNvbnN0IF9JRSA9IFwiSXNFbmFibGVkXCI7XG5jb25zdCBfSUVuID0gXCJJbnZlbnRvcnlFbmNyeXB0aW9uXCI7XG5jb25zdCBfSUYgPSBcIkludmVudG9yeUZpbHRlclwiO1xuY29uc3QgX0lMID0gXCJJc0xhdGVzdFwiO1xuY29uc3QgX0lNID0gXCJJZk1hdGNoXCI7XG5jb25zdCBfSU1JVCA9IFwiSWZNYXRjaEluaXRpYXRlZFRpbWVcIjtcbmNvbnN0IF9JTUxNVCA9IFwiSWZNYXRjaExhc3RNb2RpZmllZFRpbWVcIjtcbmNvbnN0IF9JTVMgPSBcIklmTWF0Y2hTaXplXCI7XG5jb25zdCBfSU1TXyA9IFwiSWYtTW9kaWZpZWQtU2luY2VcIjtcbmNvbnN0IF9JTVNmID0gXCJJZk1vZGlmaWVkU2luY2VcIjtcbmNvbnN0IF9JTVVSID0gXCJJbml0aWF0ZU11bHRpcGFydFVwbG9hZFJlc3VsdFwiO1xuY29uc3QgX0lNXyA9IFwiSWYtTWF0Y2hcIjtcbmNvbnN0IF9JTk0gPSBcIklmTm9uZU1hdGNoXCI7XG5jb25zdCBfSU5NXyA9IFwiSWYtTm9uZS1NYXRjaFwiO1xuY29uc3QgX0lPRiA9IFwiSW52ZW50b3J5T3B0aW9uYWxGaWVsZHNcIjtcbmNvbnN0IF9JT1MgPSBcIkludmFsaWRPYmplY3RTdGF0ZVwiO1xuY29uc3QgX0lPViA9IFwiSW5jbHVkZWRPYmplY3RWZXJzaW9uc1wiO1xuY29uc3QgX0lQID0gXCJJc1B1YmxpY1wiO1xuY29uc3QgX0lQQSA9IFwiSWdub3JlUHVibGljQWNsc1wiO1xuY29uc3QgX0lQTSA9IFwiSWRlbXBvdGVuY3lQYXJhbWV0ZXJNaXNtYXRjaFwiO1xuY29uc3QgX0lSID0gXCJJbnZhbGlkUmVxdWVzdFwiO1xuY29uc3QgX0lSSVAgPSBcIklzUmVzdG9yZUluUHJvZ3Jlc3NcIjtcbmNvbnN0IF9JUyA9IFwiSW5wdXRTZXJpYWxpemF0aW9uXCI7XG5jb25zdCBfSVNCRCA9IFwiSW52ZW50b3J5UzNCdWNrZXREZXN0aW5hdGlvblwiO1xuY29uc3QgX0lTbiA9IFwiSW52ZW50b3J5U2NoZWR1bGVcIjtcbmNvbnN0IF9JVCA9IFwiSXNUcnVuY2F0ZWRcIjtcbmNvbnN0IF9JVEFPID0gXCJJbnRlbGxpZ2VudFRpZXJpbmdBbmRPcGVyYXRvclwiO1xuY29uc3QgX0lUQyA9IFwiSW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvblwiO1xuY29uc3QgX0lUQ0wgPSBcIkludGVsbGlnZW50VGllcmluZ0NvbmZpZ3VyYXRpb25MaXN0XCI7XG5jb25zdCBfSVRDUiA9IFwiSW52ZW50b3J5VGFibGVDb25maWd1cmF0aW9uUmVzdWx0XCI7XG5jb25zdCBfSVRDVSA9IFwiSW52ZW50b3J5VGFibGVDb25maWd1cmF0aW9uVXBkYXRlc1wiO1xuY29uc3QgX0lUQ24gPSBcIkludmVudG9yeVRhYmxlQ29uZmlndXJhdGlvblwiO1xuY29uc3QgX0lURiA9IFwiSW50ZWxsaWdlbnRUaWVyaW5nRmlsdGVyXCI7XG5jb25zdCBfSVVTID0gXCJJZlVubW9kaWZpZWRTaW5jZVwiO1xuY29uc3QgX0lVU18gPSBcIklmLVVubW9kaWZpZWQtU2luY2VcIjtcbmNvbnN0IF9JV08gPSBcIkludmFsaWRXcml0ZU9mZnNldFwiO1xuY29uc3QgX0luID0gXCJJbml0aWF0b3JcIjtcbmNvbnN0IF9JbmkgPSBcIkluaXRpYXRlZFwiO1xuY29uc3QgX0pTT04gPSBcIkpTT05cIjtcbmNvbnN0IF9KU09OSSA9IFwiSlNPTklucHV0XCI7XG5jb25zdCBfSlNPTk8gPSBcIkpTT05PdXRwdXRcIjtcbmNvbnN0IF9KVEMgPSBcIkpvdXJuYWxUYWJsZUNvbmZpZ3VyYXRpb25cIjtcbmNvbnN0IF9KVENSID0gXCJKb3VybmFsVGFibGVDb25maWd1cmF0aW9uUmVzdWx0XCI7XG5jb25zdCBfSlRDVSA9IFwiSm91cm5hbFRhYmxlQ29uZmlndXJhdGlvblVwZGF0ZXNcIjtcbmNvbnN0IF9LID0gXCJLZXlcIjtcbmNvbnN0IF9LQyA9IFwiS2V5Q291bnRcIjtcbmNvbnN0IF9LSSA9IFwiS2V5SWRcIjtcbmNvbnN0IF9LS0EgPSBcIkttc0tleUFyblwiO1xuY29uc3QgX0tNID0gXCJLZXlNYXJrZXJcIjtcbmNvbnN0IF9LTVNDID0gXCJLTVNDb250ZXh0XCI7XG5jb25zdCBfS01TS0kgPSBcIktNU0tleUlkXCI7XG5jb25zdCBfS01TTUtJRCA9IFwiS01TTWFzdGVyS2V5SURcIjtcbmNvbnN0IF9LUEUgPSBcIktleVByZWZpeEVxdWFsc1wiO1xuY29uc3QgX0wgPSBcIkxvY2F0aW9uXCI7XG5jb25zdCBfTEFNQlIgPSBcIkxpc3RBbGxNeUJ1Y2tldHNSZXN1bHRcIjtcbmNvbnN0IF9MQU1EQlIgPSBcIkxpc3RBbGxNeURpcmVjdG9yeUJ1Y2tldHNSZXN1bHRcIjtcbmNvbnN0IF9MQiA9IFwiTGlzdEJ1Y2tldHNcIjtcbmNvbnN0IF9MQkFDID0gXCJMaXN0QnVja2V0QW5hbHl0aWNzQ29uZmlndXJhdGlvbnNcIjtcbmNvbnN0IF9MQkFDTyA9IFwiTGlzdEJ1Y2tldEFuYWx5dGljc0NvbmZpZ3VyYXRpb25zT3V0cHV0XCI7XG5jb25zdCBfTEJBQ1IgPSBcIkxpc3RCdWNrZXRBbmFseXRpY3NDb25maWd1cmF0aW9uUmVzdWx0XCI7XG5jb25zdCBfTEJBQ1JpID0gXCJMaXN0QnVja2V0QW5hbHl0aWNzQ29uZmlndXJhdGlvbnNSZXF1ZXN0XCI7XG5jb25zdCBfTEJJQyA9IFwiTGlzdEJ1Y2tldEludmVudG9yeUNvbmZpZ3VyYXRpb25zXCI7XG5jb25zdCBfTEJJQ08gPSBcIkxpc3RCdWNrZXRJbnZlbnRvcnlDb25maWd1cmF0aW9uc091dHB1dFwiO1xuY29uc3QgX0xCSUNSID0gXCJMaXN0QnVja2V0SW52ZW50b3J5Q29uZmlndXJhdGlvbnNSZXF1ZXN0XCI7XG5jb25zdCBfTEJJVEMgPSBcIkxpc3RCdWNrZXRJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9uc1wiO1xuY29uc3QgX0xCSVRDTyA9IFwiTGlzdEJ1Y2tldEludGVsbGlnZW50VGllcmluZ0NvbmZpZ3VyYXRpb25zT3V0cHV0XCI7XG5jb25zdCBfTEJJVENSID0gXCJMaXN0QnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvbnNSZXF1ZXN0XCI7XG5jb25zdCBfTEJNQyA9IFwiTGlzdEJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9uc1wiO1xuY29uc3QgX0xCTUNPID0gXCJMaXN0QnVja2V0TWV0cmljc0NvbmZpZ3VyYXRpb25zT3V0cHV0XCI7XG5jb25zdCBfTEJNQ1IgPSBcIkxpc3RCdWNrZXRNZXRyaWNzQ29uZmlndXJhdGlvbnNSZXF1ZXN0XCI7XG5jb25zdCBfTEJPID0gXCJMaXN0QnVja2V0c091dHB1dFwiO1xuY29uc3QgX0xCUiA9IFwiTGlzdEJ1Y2tldHNSZXF1ZXN0XCI7XG5jb25zdCBfTEJSaSA9IFwiTGlzdEJ1Y2tldFJlc3VsdFwiO1xuY29uc3QgX0xDID0gXCJMb2NhdGlvbkNvbnN0cmFpbnRcIjtcbmNvbnN0IF9MQ2kgPSBcIkxpZmVjeWNsZUNvbmZpZ3VyYXRpb25cIjtcbmNvbnN0IF9MREIgPSBcIkxpc3REaXJlY3RvcnlCdWNrZXRzXCI7XG5jb25zdCBfTERCTyA9IFwiTGlzdERpcmVjdG9yeUJ1Y2tldHNPdXRwdXRcIjtcbmNvbnN0IF9MREJSID0gXCJMaXN0RGlyZWN0b3J5QnVja2V0c1JlcXVlc3RcIjtcbmNvbnN0IF9MRSA9IFwiTG9nZ2luZ0VuYWJsZWRcIjtcbmNvbnN0IF9MRWkgPSBcIkxpZmVjeWNsZUV4cGlyYXRpb25cIjtcbmNvbnN0IF9MRkEgPSBcIkxhbWJkYUZ1bmN0aW9uQXJuXCI7XG5jb25zdCBfTEZDID0gXCJMYW1iZGFGdW5jdGlvbkNvbmZpZ3VyYXRpb25cIjtcbmNvbnN0IF9MRkNMID0gXCJMYW1iZGFGdW5jdGlvbkNvbmZpZ3VyYXRpb25MaXN0XCI7XG5jb25zdCBfTEZDYSA9IFwiTGFtYmRhRnVuY3Rpb25Db25maWd1cmF0aW9uc1wiO1xuY29uc3QgX0xIID0gXCJMZWdhbEhvbGRcIjtcbmNvbnN0IF9MSSA9IFwiTG9jYXRpb25JbmZvXCI7XG5jb25zdCBfTElDUiA9IFwiTGlzdEludmVudG9yeUNvbmZpZ3VyYXRpb25zUmVzdWx0XCI7XG5jb25zdCBfTE0gPSBcIkxhc3RNb2RpZmllZFwiO1xuY29uc3QgX0xNQ1IgPSBcIkxpc3RNZXRyaWNzQ29uZmlndXJhdGlvbnNSZXN1bHRcIjtcbmNvbnN0IF9MTVQgPSBcIkxhc3RNb2RpZmllZFRpbWVcIjtcbmNvbnN0IF9MTVUgPSBcIkxpc3RNdWx0aXBhcnRVcGxvYWRzXCI7XG5jb25zdCBfTE1VTyA9IFwiTGlzdE11bHRpcGFydFVwbG9hZHNPdXRwdXRcIjtcbmNvbnN0IF9MTVVSID0gXCJMaXN0TXVsdGlwYXJ0VXBsb2Fkc1Jlc3VsdFwiO1xuY29uc3QgX0xNVVJpID0gXCJMaXN0TXVsdGlwYXJ0VXBsb2Fkc1JlcXVlc3RcIjtcbmNvbnN0IF9MTV8gPSBcIkxhc3QtTW9kaWZpZWRcIjtcbmNvbnN0IF9MTyA9IFwiTGlzdE9iamVjdHNcIjtcbmNvbnN0IF9MT08gPSBcIkxpc3RPYmplY3RzT3V0cHV0XCI7XG5jb25zdCBfTE9SID0gXCJMaXN0T2JqZWN0c1JlcXVlc3RcIjtcbmNvbnN0IF9MT1YgPSBcIkxpc3RPYmplY3RzVjJcIjtcbmNvbnN0IF9MT1ZPID0gXCJMaXN0T2JqZWN0c1YyT3V0cHV0XCI7XG5jb25zdCBfTE9WT2kgPSBcIkxpc3RPYmplY3RWZXJzaW9uc091dHB1dFwiO1xuY29uc3QgX0xPVlIgPSBcIkxpc3RPYmplY3RzVjJSZXF1ZXN0XCI7XG5jb25zdCBfTE9WUmkgPSBcIkxpc3RPYmplY3RWZXJzaW9uc1JlcXVlc3RcIjtcbmNvbnN0IF9MT1ZpID0gXCJMaXN0T2JqZWN0VmVyc2lvbnNcIjtcbmNvbnN0IF9MUCA9IFwiTGlzdFBhcnRzXCI7XG5jb25zdCBfTFBPID0gXCJMaXN0UGFydHNPdXRwdXRcIjtcbmNvbnN0IF9MUFIgPSBcIkxpc3RQYXJ0c1Jlc3VsdFwiO1xuY29uc3QgX0xQUmkgPSBcIkxpc3RQYXJ0c1JlcXVlc3RcIjtcbmNvbnN0IF9MUiA9IFwiTGlmZWN5Y2xlUnVsZVwiO1xuY29uc3QgX0xSQU8gPSBcIkxpZmVjeWNsZVJ1bGVBbmRPcGVyYXRvclwiO1xuY29uc3QgX0xSRiA9IFwiTGlmZWN5Y2xlUnVsZUZpbHRlclwiO1xuY29uc3QgX0xSaSA9IFwiTGlmZWN5Y2xlUnVsZXNcIjtcbmNvbnN0IF9MVlIgPSBcIkxpc3RWZXJzaW9uc1Jlc3VsdFwiO1xuY29uc3QgX00gPSBcIk1ldGFkYXRhXCI7XG5jb25zdCBfTUFPID0gXCJNZXRyaWNzQW5kT3BlcmF0b3JcIjtcbmNvbnN0IF9NQVMgPSBcIk1heEFnZVNlY29uZHNcIjtcbmNvbnN0IF9NQiA9IFwiTWF4QnVja2V0c1wiO1xuY29uc3QgX01DID0gXCJNZXRhZGF0YUNvbmZpZ3VyYXRpb25cIjtcbmNvbnN0IF9NQ0wgPSBcIk1ldHJpY3NDb25maWd1cmF0aW9uTGlzdFwiO1xuY29uc3QgX01DUiA9IFwiTWV0YWRhdGFDb25maWd1cmF0aW9uUmVzdWx0XCI7XG5jb25zdCBfTUNlID0gXCJNZXRyaWNzQ29uZmlndXJhdGlvblwiO1xuY29uc3QgX01EID0gXCJNZXRhZGF0YURpcmVjdGl2ZVwiO1xuY29uc3QgX01EQiA9IFwiTWF4RGlyZWN0b3J5QnVja2V0c1wiO1xuY29uc3QgX01EZiA9IFwiTWZhRGVsZXRlXCI7XG5jb25zdCBfTUUgPSBcIk1ldGFkYXRhRW50cnlcIjtcbmNvbnN0IF9NRiA9IFwiTWV0cmljc0ZpbHRlclwiO1xuY29uc3QgX01GQSA9IFwiTUZBXCI7XG5jb25zdCBfTUZBRCA9IFwiTUZBRGVsZXRlXCI7XG5jb25zdCBfTUsgPSBcIk1heEtleXNcIjtcbmNvbnN0IF9NTSA9IFwiTWlzc2luZ01ldGFcIjtcbmNvbnN0IF9NT1MgPSBcIk1wdU9iamVjdFNpemVcIjtcbmNvbnN0IF9NUCA9IFwiTWF4UGFydHNcIjtcbmNvbnN0IF9NVEMgPSBcIk1ldGFkYXRhVGFibGVDb25maWd1cmF0aW9uXCI7XG5jb25zdCBfTVRDUiA9IFwiTWV0YWRhdGFUYWJsZUNvbmZpZ3VyYXRpb25SZXN1bHRcIjtcbmNvbnN0IF9NVEVDID0gXCJNZXRhZGF0YVRhYmxlRW5jcnlwdGlvbkNvbmZpZ3VyYXRpb25cIjtcbmNvbnN0IF9NVSA9IFwiTXVsdGlwYXJ0VXBsb2FkXCI7XG5jb25zdCBfTVVMID0gXCJNdWx0aXBhcnRVcGxvYWRMaXN0XCI7XG5jb25zdCBfTVVhID0gXCJNYXhVcGxvYWRzXCI7XG5jb25zdCBfTWEgPSBcIk1hcmtlclwiO1xuY29uc3QgX01lID0gXCJNZXRyaWNzXCI7XG5jb25zdCBfTWVzID0gXCJNZXNzYWdlXCI7XG5jb25zdCBfTWkgPSBcIk1pbnV0ZXNcIjtcbmNvbnN0IF9NbyA9IFwiTW9kZVwiO1xuY29uc3QgX04gPSBcIk5hbWVcIjtcbmNvbnN0IF9OQyA9IFwiTm90aWZpY2F0aW9uQ29uZmlndXJhdGlvblwiO1xuY29uc3QgX05DRiA9IFwiTm90aWZpY2F0aW9uQ29uZmlndXJhdGlvbkZpbHRlclwiO1xuY29uc3QgX05DVCA9IFwiTmV4dENvbnRpbnVhdGlvblRva2VuXCI7XG5jb25zdCBfTkQgPSBcIk5vbmN1cnJlbnREYXlzXCI7XG5jb25zdCBfTkYgPSBcIk5vdEZvdW5kXCI7XG5jb25zdCBfTktNID0gXCJOZXh0S2V5TWFya2VyXCI7XG5jb25zdCBfTk0gPSBcIk5leHRNYXJrZXJcIjtcbmNvbnN0IF9OTlYgPSBcIk5ld2VyTm9uY3VycmVudFZlcnNpb25zXCI7XG5jb25zdCBfTlBOTSA9IFwiTmV4dFBhcnROdW1iZXJNYXJrZXJcIjtcbmNvbnN0IF9OU0IgPSBcIk5vU3VjaEJ1Y2tldFwiO1xuY29uc3QgX05TSyA9IFwiTm9TdWNoS2V5XCI7XG5jb25zdCBfTlNVID0gXCJOb1N1Y2hVcGxvYWRcIjtcbmNvbnN0IF9OVUlNID0gXCJOZXh0VXBsb2FkSWRNYXJrZXJcIjtcbmNvbnN0IF9OVkUgPSBcIk5vbmN1cnJlbnRWZXJzaW9uRXhwaXJhdGlvblwiO1xuY29uc3QgX05WSU0gPSBcIk5leHRWZXJzaW9uSWRNYXJrZXJcIjtcbmNvbnN0IF9OVlQgPSBcIk5vbmN1cnJlbnRWZXJzaW9uVHJhbnNpdGlvbnNcIjtcbmNvbnN0IF9OVlRMID0gXCJOb25jdXJyZW50VmVyc2lvblRyYW5zaXRpb25MaXN0XCI7XG5jb25zdCBfTlZUbyA9IFwiTm9uY3VycmVudFZlcnNpb25UcmFuc2l0aW9uXCI7XG5jb25zdCBfTyA9IFwiT3duZXJcIjtcbmNvbnN0IF9PQSA9IFwiT2JqZWN0QXR0cmlidXRlc1wiO1xuY29uc3QgX09BSUFURSA9IFwiT2JqZWN0QWxyZWFkeUluQWN0aXZlVGllckVycm9yXCI7XG5jb25zdCBfT0MgPSBcIk93bmVyc2hpcENvbnRyb2xzXCI7XG5jb25zdCBfT0NSID0gXCJPd25lcnNoaXBDb250cm9sc1J1bGVcIjtcbmNvbnN0IF9PQ1J3ID0gXCJPd25lcnNoaXBDb250cm9sc1J1bGVzXCI7XG5jb25zdCBfT0YgPSBcIk9wdGlvbmFsRmllbGRzXCI7XG5jb25zdCBfT0kgPSBcIk9iamVjdElkZW50aWZpZXJcIjtcbmNvbnN0IF9PSUwgPSBcIk9iamVjdElkZW50aWZpZXJMaXN0XCI7XG5jb25zdCBfT0wgPSBcIk91dHB1dExvY2F0aW9uXCI7XG5jb25zdCBfT0xDID0gXCJPYmplY3RMb2NrQ29uZmlndXJhdGlvblwiO1xuY29uc3QgX09MRSA9IFwiT2JqZWN0TG9ja0VuYWJsZWRcIjtcbmNvbnN0IF9PTEVGQiA9IFwiT2JqZWN0TG9ja0VuYWJsZWRGb3JCdWNrZXRcIjtcbmNvbnN0IF9PTExIID0gXCJPYmplY3RMb2NrTGVnYWxIb2xkXCI7XG5jb25zdCBfT0xMSFMgPSBcIk9iamVjdExvY2tMZWdhbEhvbGRTdGF0dXNcIjtcbmNvbnN0IF9PTE0gPSBcIk9iamVjdExvY2tNb2RlXCI7XG5jb25zdCBfT0xSID0gXCJPYmplY3RMb2NrUmV0ZW50aW9uXCI7XG5jb25zdCBfT0xSVUQgPSBcIk9iamVjdExvY2tSZXRhaW5VbnRpbERhdGVcIjtcbmNvbnN0IF9PTFJiID0gXCJPYmplY3RMb2NrUnVsZVwiO1xuY29uc3QgX09MYiA9IFwiT2JqZWN0TGlzdFwiO1xuY29uc3QgX09OSUFURSA9IFwiT2JqZWN0Tm90SW5BY3RpdmVUaWVyRXJyb3JcIjtcbmNvbnN0IF9PTyA9IFwiT2JqZWN0T3duZXJzaGlwXCI7XG5jb25zdCBfT09BID0gXCJPcHRpb25hbE9iamVjdEF0dHJpYnV0ZXNcIjtcbmNvbnN0IF9PUCA9IFwiT2JqZWN0UGFydHNcIjtcbmNvbnN0IF9PUGIgPSBcIk9iamVjdFBhcnRcIjtcbmNvbnN0IF9PUyA9IFwiT2JqZWN0U2l6ZVwiO1xuY29uc3QgX09TR1QgPSBcIk9iamVjdFNpemVHcmVhdGVyVGhhblwiO1xuY29uc3QgX09TTFQgPSBcIk9iamVjdFNpemVMZXNzVGhhblwiO1xuY29uc3QgX09TViA9IFwiT3V0cHV0U2NoZW1hVmVyc2lvblwiO1xuY29uc3QgX09TdSA9IFwiT3V0cHV0U2VyaWFsaXphdGlvblwiO1xuY29uc3QgX09WID0gXCJPYmplY3RWZXJzaW9uXCI7XG5jb25zdCBfT1ZMID0gXCJPYmplY3RWZXJzaW9uTGlzdFwiO1xuY29uc3QgX09iID0gXCJPYmplY3RzXCI7XG5jb25zdCBfT2JqID0gXCJPYmplY3RcIjtcbmNvbnN0IF9QID0gXCJQcmVmaXhcIjtcbmNvbnN0IF9QQUJDID0gXCJQdWJsaWNBY2Nlc3NCbG9ja0NvbmZpZ3VyYXRpb25cIjtcbmNvbnN0IF9QQkEgPSBcIlB1dEJ1Y2tldEFiYWNcIjtcbmNvbnN0IF9QQkFDID0gXCJQdXRCdWNrZXRBY2NlbGVyYXRlQ29uZmlndXJhdGlvblwiO1xuY29uc3QgX1BCQUNSID0gXCJQdXRCdWNrZXRBY2NlbGVyYXRlQ29uZmlndXJhdGlvblJlcXVlc3RcIjtcbmNvbnN0IF9QQkFDUnUgPSBcIlB1dEJ1Y2tldEFuYWx5dGljc0NvbmZpZ3VyYXRpb25SZXF1ZXN0XCI7XG5jb25zdCBfUEJBQ3UgPSBcIlB1dEJ1Y2tldEFuYWx5dGljc0NvbmZpZ3VyYXRpb25cIjtcbmNvbnN0IF9QQkFSID0gXCJQdXRCdWNrZXRBYmFjUmVxdWVzdFwiO1xuY29uc3QgX1BCQVJ1ID0gXCJQdXRCdWNrZXRBY2xSZXF1ZXN0XCI7XG5jb25zdCBfUEJBdSA9IFwiUHV0QnVja2V0QWNsXCI7XG5jb25zdCBfUEJDID0gXCJQdXRCdWNrZXRDb3JzXCI7XG5jb25zdCBfUEJDUiA9IFwiUHV0QnVja2V0Q29yc1JlcXVlc3RcIjtcbmNvbnN0IF9QQkUgPSBcIlB1dEJ1Y2tldEVuY3J5cHRpb25cIjtcbmNvbnN0IF9QQkVSID0gXCJQdXRCdWNrZXRFbmNyeXB0aW9uUmVxdWVzdFwiO1xuY29uc3QgX1BCSUMgPSBcIlB1dEJ1Y2tldEludmVudG9yeUNvbmZpZ3VyYXRpb25cIjtcbmNvbnN0IF9QQklDUiA9IFwiUHV0QnVja2V0SW52ZW50b3J5Q29uZmlndXJhdGlvblJlcXVlc3RcIjtcbmNvbnN0IF9QQklUQyA9IFwiUHV0QnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvblwiO1xuY29uc3QgX1BCSVRDUiA9IFwiUHV0QnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvblJlcXVlc3RcIjtcbmNvbnN0IF9QQkwgPSBcIlB1dEJ1Y2tldExvZ2dpbmdcIjtcbmNvbnN0IF9QQkxDID0gXCJQdXRCdWNrZXRMaWZlY3ljbGVDb25maWd1cmF0aW9uXCI7XG5jb25zdCBfUEJMQ08gPSBcIlB1dEJ1Y2tldExpZmVjeWNsZUNvbmZpZ3VyYXRpb25PdXRwdXRcIjtcbmNvbnN0IF9QQkxDUiA9IFwiUHV0QnVja2V0TGlmZWN5Y2xlQ29uZmlndXJhdGlvblJlcXVlc3RcIjtcbmNvbnN0IF9QQkxSID0gXCJQdXRCdWNrZXRMb2dnaW5nUmVxdWVzdFwiO1xuY29uc3QgX1BCTUMgPSBcIlB1dEJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9uXCI7XG5jb25zdCBfUEJNQ1IgPSBcIlB1dEJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9uUmVxdWVzdFwiO1xuY29uc3QgX1BCTkMgPSBcIlB1dEJ1Y2tldE5vdGlmaWNhdGlvbkNvbmZpZ3VyYXRpb25cIjtcbmNvbnN0IF9QQk5DUiA9IFwiUHV0QnVja2V0Tm90aWZpY2F0aW9uQ29uZmlndXJhdGlvblJlcXVlc3RcIjtcbmNvbnN0IF9QQk9DID0gXCJQdXRCdWNrZXRPd25lcnNoaXBDb250cm9sc1wiO1xuY29uc3QgX1BCT0NSID0gXCJQdXRCdWNrZXRPd25lcnNoaXBDb250cm9sc1JlcXVlc3RcIjtcbmNvbnN0IF9QQlAgPSBcIlB1dEJ1Y2tldFBvbGljeVwiO1xuY29uc3QgX1BCUFIgPSBcIlB1dEJ1Y2tldFBvbGljeVJlcXVlc3RcIjtcbmNvbnN0IF9QQlIgPSBcIlB1dEJ1Y2tldFJlcGxpY2F0aW9uXCI7XG5jb25zdCBfUEJSUCA9IFwiUHV0QnVja2V0UmVxdWVzdFBheW1lbnRcIjtcbmNvbnN0IF9QQlJQUiA9IFwiUHV0QnVja2V0UmVxdWVzdFBheW1lbnRSZXF1ZXN0XCI7XG5jb25zdCBfUEJSUiA9IFwiUHV0QnVja2V0UmVwbGljYXRpb25SZXF1ZXN0XCI7XG5jb25zdCBfUEJUID0gXCJQdXRCdWNrZXRUYWdnaW5nXCI7XG5jb25zdCBfUEJUUiA9IFwiUHV0QnVja2V0VGFnZ2luZ1JlcXVlc3RcIjtcbmNvbnN0IF9QQlYgPSBcIlB1dEJ1Y2tldFZlcnNpb25pbmdcIjtcbmNvbnN0IF9QQlZSID0gXCJQdXRCdWNrZXRWZXJzaW9uaW5nUmVxdWVzdFwiO1xuY29uc3QgX1BCVyA9IFwiUHV0QnVja2V0V2Vic2l0ZVwiO1xuY29uc3QgX1BCV1IgPSBcIlB1dEJ1Y2tldFdlYnNpdGVSZXF1ZXN0XCI7XG5jb25zdCBfUEMgPSBcIlBhcnRzQ291bnRcIjtcbmNvbnN0IF9QRFMgPSBcIlBhcnRpdGlvbkRhdGVTb3VyY2VcIjtcbmNvbnN0IF9QRSA9IFwiUHJvZ3Jlc3NFdmVudFwiO1xuY29uc3QgX1BJID0gXCJQYXJxdWV0SW5wdXRcIjtcbmNvbnN0IF9QTCA9IFwiUGFydHNMaXN0XCI7XG5jb25zdCBfUE4gPSBcIlBhcnROdW1iZXJcIjtcbmNvbnN0IF9QTk0gPSBcIlBhcnROdW1iZXJNYXJrZXJcIjtcbmNvbnN0IF9QTyA9IFwiUHV0T2JqZWN0XCI7XG5jb25zdCBfUE9BID0gXCJQdXRPYmplY3RBY2xcIjtcbmNvbnN0IF9QT0FPID0gXCJQdXRPYmplY3RBY2xPdXRwdXRcIjtcbmNvbnN0IF9QT0FSID0gXCJQdXRPYmplY3RBY2xSZXF1ZXN0XCI7XG5jb25zdCBfUE9MQyA9IFwiUHV0T2JqZWN0TG9ja0NvbmZpZ3VyYXRpb25cIjtcbmNvbnN0IF9QT0xDTyA9IFwiUHV0T2JqZWN0TG9ja0NvbmZpZ3VyYXRpb25PdXRwdXRcIjtcbmNvbnN0IF9QT0xDUiA9IFwiUHV0T2JqZWN0TG9ja0NvbmZpZ3VyYXRpb25SZXF1ZXN0XCI7XG5jb25zdCBfUE9MSCA9IFwiUHV0T2JqZWN0TGVnYWxIb2xkXCI7XG5jb25zdCBfUE9MSE8gPSBcIlB1dE9iamVjdExlZ2FsSG9sZE91dHB1dFwiO1xuY29uc3QgX1BPTEhSID0gXCJQdXRPYmplY3RMZWdhbEhvbGRSZXF1ZXN0XCI7XG5jb25zdCBfUE9PID0gXCJQdXRPYmplY3RPdXRwdXRcIjtcbmNvbnN0IF9QT1IgPSBcIlB1dE9iamVjdFJlcXVlc3RcIjtcbmNvbnN0IF9QT1JPID0gXCJQdXRPYmplY3RSZXRlbnRpb25PdXRwdXRcIjtcbmNvbnN0IF9QT1JSID0gXCJQdXRPYmplY3RSZXRlbnRpb25SZXF1ZXN0XCI7XG5jb25zdCBfUE9SdSA9IFwiUHV0T2JqZWN0UmV0ZW50aW9uXCI7XG5jb25zdCBfUE9UID0gXCJQdXRPYmplY3RUYWdnaW5nXCI7XG5jb25zdCBfUE9UTyA9IFwiUHV0T2JqZWN0VGFnZ2luZ091dHB1dFwiO1xuY29uc3QgX1BPVFIgPSBcIlB1dE9iamVjdFRhZ2dpbmdSZXF1ZXN0XCI7XG5jb25zdCBfUFAgPSBcIlBhcnRpdGlvbmVkUHJlZml4XCI7XG5jb25zdCBfUFBBQiA9IFwiUHV0UHVibGljQWNjZXNzQmxvY2tcIjtcbmNvbnN0IF9QUEFCUiA9IFwiUHV0UHVibGljQWNjZXNzQmxvY2tSZXF1ZXN0XCI7XG5jb25zdCBfUFMgPSBcIlBvbGljeVN0YXR1c1wiO1xuY29uc3QgX1BhID0gXCJQYXJ0c1wiO1xuY29uc3QgX1BhciA9IFwiUGFydFwiO1xuY29uc3QgX1BhcnEgPSBcIlBhcnF1ZXRcIjtcbmNvbnN0IF9QYXkgPSBcIlBheWVyXCI7XG5jb25zdCBfUGF5bCA9IFwiUGF5bG9hZFwiO1xuY29uc3QgX1BlID0gXCJQZXJtaXNzaW9uXCI7XG5jb25zdCBfUG8gPSBcIlBvbGljeVwiO1xuY29uc3QgX1ByID0gXCJQcm9ncmVzc1wiO1xuY29uc3QgX1ByaSA9IFwiUHJpb3JpdHlcIjtcbmNvbnN0IF9Qcm8gPSBcIlByb3RvY29sXCI7XG5jb25zdCBfUSA9IFwiUXVpZXRcIjtcbmNvbnN0IF9RQSA9IFwiUXVldWVBcm5cIjtcbmNvbnN0IF9RQyA9IFwiUXVvdGVDaGFyYWN0ZXJcIjtcbmNvbnN0IF9RQ0wgPSBcIlF1ZXVlQ29uZmlndXJhdGlvbkxpc3RcIjtcbmNvbnN0IF9RQ3UgPSBcIlF1ZXVlQ29uZmlndXJhdGlvbnNcIjtcbmNvbnN0IF9RQ3VlID0gXCJRdWV1ZUNvbmZpZ3VyYXRpb25cIjtcbmNvbnN0IF9RRUMgPSBcIlF1b3RlRXNjYXBlQ2hhcmFjdGVyXCI7XG5jb25zdCBfUUYgPSBcIlF1b3RlRmllbGRzXCI7XG5jb25zdCBfUXUgPSBcIlF1ZXVlXCI7XG5jb25zdCBfUiA9IFwiUnVsZXNcIjtcbmNvbnN0IF9SQVJUID0gXCJSZWRpcmVjdEFsbFJlcXVlc3RzVG9cIjtcbmNvbnN0IF9SQyA9IFwiUmVxdWVzdENoYXJnZWRcIjtcbmNvbnN0IF9SQ0MgPSBcIlJlc3BvbnNlQ2FjaGVDb250cm9sXCI7XG5jb25zdCBfUkNEID0gXCJSZXNwb25zZUNvbnRlbnREaXNwb3NpdGlvblwiO1xuY29uc3QgX1JDRSA9IFwiUmVzcG9uc2VDb250ZW50RW5jb2RpbmdcIjtcbmNvbnN0IF9SQ0wgPSBcIlJlc3BvbnNlQ29udGVudExhbmd1YWdlXCI7XG5jb25zdCBfUkNUID0gXCJSZXNwb25zZUNvbnRlbnRUeXBlXCI7XG5jb25zdCBfUkNlID0gXCJSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25cIjtcbmNvbnN0IF9SRCA9IFwiUmVjb3JkRGVsaW1pdGVyXCI7XG5jb25zdCBfUkUgPSBcIlJlc3BvbnNlRXhwaXJlc1wiO1xuY29uc3QgX1JFRCA9IFwiUmVzdG9yZUV4cGlyeURhdGVcIjtcbmNvbnN0IF9SRWUgPSBcIlJlY29yZEV4cGlyYXRpb25cIjtcbmNvbnN0IF9SRWVjID0gXCJSZWNvcmRzRXZlbnRcIjtcbmNvbnN0IF9SS0tJRCA9IFwiUmVwbGljYUttc0tleUlEXCI7XG5jb25zdCBfUktQVyA9IFwiUmVwbGFjZUtleVByZWZpeFdpdGhcIjtcbmNvbnN0IF9SS1cgPSBcIlJlcGxhY2VLZXlXaXRoXCI7XG5jb25zdCBfUk0gPSBcIlJlcGxpY2FNb2RpZmljYXRpb25zXCI7XG5jb25zdCBfUk8gPSBcIlJlbmFtZU9iamVjdFwiO1xuY29uc3QgX1JPTyA9IFwiUmVuYW1lT2JqZWN0T3V0cHV0XCI7XG5jb25zdCBfUk9PZSA9IFwiUmVzdG9yZU9iamVjdE91dHB1dFwiO1xuY29uc3QgX1JPUCA9IFwiUmVzdG9yZU91dHB1dFBhdGhcIjtcbmNvbnN0IF9ST1IgPSBcIlJlbmFtZU9iamVjdFJlcXVlc3RcIjtcbmNvbnN0IF9ST1JlID0gXCJSZXN0b3JlT2JqZWN0UmVxdWVzdFwiO1xuY29uc3QgX1JPZSA9IFwiUmVzdG9yZU9iamVjdFwiO1xuY29uc3QgX1JQID0gXCJSZXF1ZXN0UGF5ZXJcIjtcbmNvbnN0IF9SUEIgPSBcIlJlc3RyaWN0UHVibGljQnVja2V0c1wiO1xuY29uc3QgX1JQQyA9IFwiUmVxdWVzdFBheW1lbnRDb25maWd1cmF0aW9uXCI7XG5jb25zdCBfUlBlID0gXCJSZXF1ZXN0UHJvZ3Jlc3NcIjtcbmNvbnN0IF9SUiA9IFwiUm91dGluZ1J1bGVzXCI7XG5jb25zdCBfUlJBTyA9IFwiUmVwbGljYXRpb25SdWxlQW5kT3BlcmF0b3JcIjtcbmNvbnN0IF9SUkYgPSBcIlJlcGxpY2F0aW9uUnVsZUZpbHRlclwiO1xuY29uc3QgX1JSZSA9IFwiUmVwbGljYXRpb25SdWxlXCI7XG5jb25zdCBfUlJlcCA9IFwiUmVwbGljYXRpb25SdWxlc1wiO1xuY29uc3QgX1JSZXEgPSBcIlJlcXVlc3RSb3V0ZVwiO1xuY29uc3QgX1JSZXMgPSBcIlJlc3RvcmVSZXF1ZXN0XCI7XG5jb25zdCBfUlJvID0gXCJSb3V0aW5nUnVsZVwiO1xuY29uc3QgX1JTID0gXCJSZXBsaWNhdGlvblN0YXR1c1wiO1xuY29uc3QgX1JTZSA9IFwiUmVzdG9yZVN0YXR1c1wiO1xuY29uc3QgX1JTZW4gPSBcIlJlbmFtZVNvdXJjZVwiO1xuY29uc3QgX1JUID0gXCJSZXBsaWNhdGlvblRpbWVcIjtcbmNvbnN0IF9SVFYgPSBcIlJlcGxpY2F0aW9uVGltZVZhbHVlXCI7XG5jb25zdCBfUlRlID0gXCJSZXF1ZXN0VG9rZW5cIjtcbmNvbnN0IF9SVUQgPSBcIlJldGFpblVudGlsRGF0ZVwiO1xuY29uc3QgX1JhID0gXCJSYW5nZVwiO1xuY29uc3QgX1JlID0gXCJSZXN0b3JlXCI7XG5jb25zdCBfUmVjID0gXCJSZWNvcmRzXCI7XG5jb25zdCBfUmVkID0gXCJSZWRpcmVjdFwiO1xuY29uc3QgX1JldCA9IFwiUmV0ZW50aW9uXCI7XG5jb25zdCBfUm8gPSBcIlJvbGVcIjtcbmNvbnN0IF9SdSA9IFwiUnVsZVwiO1xuY29uc3QgX1MgPSBcIlN0YXR1c1wiO1xuY29uc3QgX1NBID0gXCJTdGFydEFmdGVyXCI7XG5jb25zdCBfU0FLID0gXCJTZWNyZXRBY2Nlc3NLZXlcIjtcbmNvbnN0IF9TQXMgPSBcIlNzZUFsZ29yaXRobVwiO1xuY29uc3QgX1NCID0gXCJTdHJlYW1pbmdCbG9iXCI7XG5jb25zdCBfU0JEID0gXCJTM0J1Y2tldERlc3RpbmF0aW9uXCI7XG5jb25zdCBfU0MgPSBcIlN0b3JhZ2VDbGFzc1wiO1xuY29uc3QgX1NDQSA9IFwiU3RvcmFnZUNsYXNzQW5hbHlzaXNcIjtcbmNvbnN0IF9TQ0FERSA9IFwiU3RvcmFnZUNsYXNzQW5hbHlzaXNEYXRhRXhwb3J0XCI7XG5jb25zdCBfU0NWID0gXCJTZXNzaW9uQ3JlZGVudGlhbFZhbHVlXCI7XG5jb25zdCBfU0NlID0gXCJTZXNzaW9uQ3JlZGVudGlhbHNcIjtcbmNvbnN0IF9TQ3QgPSBcIlN0YXR1c0NvZGVcIjtcbmNvbnN0IF9TRFYgPSBcIlNraXBEZXN0aW5hdGlvblZhbGlkYXRpb25cIjtcbmNvbnN0IF9TRSA9IFwiU3RhdHNFdmVudFwiO1xuY29uc3QgX1NJTSA9IFwiU291cmNlSWZNYXRjaFwiO1xuY29uc3QgX1NJTVMgPSBcIlNvdXJjZUlmTW9kaWZpZWRTaW5jZVwiO1xuY29uc3QgX1NJTk0gPSBcIlNvdXJjZUlmTm9uZU1hdGNoXCI7XG5jb25zdCBfU0lVUyA9IFwiU291cmNlSWZVbm1vZGlmaWVkU2luY2VcIjtcbmNvbnN0IF9TSyA9IFwiU1NFLUtNU1wiO1xuY29uc3QgX1NLRU8gPSBcIlNzZUttc0VuY3J5cHRlZE9iamVjdHNcIjtcbmNvbnN0IF9TS0YgPSBcIlMzS2V5RmlsdGVyXCI7XG5jb25zdCBfU0tlID0gXCJTM0tleVwiO1xuY29uc3QgX1NMID0gXCJTM0xvY2F0aW9uXCI7XG5jb25zdCBfU00gPSBcIlNlc3Npb25Nb2RlXCI7XG5jb25zdCBfU09DID0gXCJTZWxlY3RPYmplY3RDb250ZW50XCI7XG5jb25zdCBfU09DRVMgPSBcIlNlbGVjdE9iamVjdENvbnRlbnRFdmVudFN0cmVhbVwiO1xuY29uc3QgX1NPQ08gPSBcIlNlbGVjdE9iamVjdENvbnRlbnRPdXRwdXRcIjtcbmNvbnN0IF9TT0NSID0gXCJTZWxlY3RPYmplY3RDb250ZW50UmVxdWVzdFwiO1xuY29uc3QgX1NQID0gXCJTZWxlY3RQYXJhbWV0ZXJzXCI7XG5jb25zdCBfU1BpID0gXCJTaW1wbGVQcmVmaXhcIjtcbmNvbnN0IF9TUiA9IFwiU2NhblJhbmdlXCI7XG5jb25zdCBfU1MgPSBcIlNTRS1TM1wiO1xuY29uc3QgX1NTQyA9IFwiU291cmNlU2VsZWN0aW9uQ3JpdGVyaWFcIjtcbmNvbnN0IF9TU0UgPSBcIlNlcnZlclNpZGVFbmNyeXB0aW9uXCI7XG5jb25zdCBfU1NFQSA9IFwiU1NFQWxnb3JpdGhtXCI7XG5jb25zdCBfU1NFQkQgPSBcIlNlcnZlclNpZGVFbmNyeXB0aW9uQnlEZWZhdWx0XCI7XG5jb25zdCBfU1NFQyA9IFwiU2VydmVyU2lkZUVuY3J5cHRpb25Db25maWd1cmF0aW9uXCI7XG5jb25zdCBfU1NFQ0EgPSBcIlNTRUN1c3RvbWVyQWxnb3JpdGhtXCI7XG5jb25zdCBfU1NFQ0sgPSBcIlNTRUN1c3RvbWVyS2V5XCI7XG5jb25zdCBfU1NFQ0tNRCA9IFwiU1NFQ3VzdG9tZXJLZXlNRDVcIjtcbmNvbnN0IF9TU0VLTVMgPSBcIlNTRUtNU1wiO1xuY29uc3QgX1NTRUtNU0VDID0gXCJTU0VLTVNFbmNyeXB0aW9uQ29udGV4dFwiO1xuY29uc3QgX1NTRUtNU0tJID0gXCJTU0VLTVNLZXlJZFwiO1xuY29uc3QgX1NTRVIgPSBcIlNlcnZlclNpZGVFbmNyeXB0aW9uUnVsZVwiO1xuY29uc3QgX1NTRVJlID0gXCJTZXJ2ZXJTaWRlRW5jcnlwdGlvblJ1bGVzXCI7XG5jb25zdCBfU1NFUyA9IFwiU1NFUzNcIjtcbmNvbnN0IF9TVCA9IFwiU2Vzc2lvblRva2VuXCI7XG5jb25zdCBfU1REID0gXCJTM1RhYmxlc0Rlc3RpbmF0aW9uXCI7XG5jb25zdCBfU1REUiA9IFwiUzNUYWJsZXNEZXN0aW5hdGlvblJlc3VsdFwiO1xuY29uc3QgX1NfID0gXCJTM1wiO1xuY29uc3QgX1NjID0gXCJTY2hlZHVsZVwiO1xuY29uc3QgX1NpID0gXCJTaXplXCI7XG5jb25zdCBfU3QgPSBcIlN0YXJ0XCI7XG5jb25zdCBfU3RhID0gXCJTdGF0c1wiO1xuY29uc3QgX1N1ID0gXCJTdWZmaXhcIjtcbmNvbnN0IF9UID0gXCJUYWdzXCI7XG5jb25zdCBfVEEgPSBcIlRhYmxlQXJuXCI7XG5jb25zdCBfVEFvID0gXCJUb3BpY0FyblwiO1xuY29uc3QgX1RCID0gXCJUYXJnZXRCdWNrZXRcIjtcbmNvbnN0IF9UQkEgPSBcIlRhYmxlQnVja2V0QXJuXCI7XG5jb25zdCBfVEJUID0gXCJUYWJsZUJ1Y2tldFR5cGVcIjtcbmNvbnN0IF9UQyA9IFwiVGFnQ291bnRcIjtcbmNvbnN0IF9UQ0wgPSBcIlRvcGljQ29uZmlndXJhdGlvbkxpc3RcIjtcbmNvbnN0IF9UQ28gPSBcIlRvcGljQ29uZmlndXJhdGlvbnNcIjtcbmNvbnN0IF9UQ29wID0gXCJUb3BpY0NvbmZpZ3VyYXRpb25cIjtcbmNvbnN0IF9URCA9IFwiVGFnZ2luZ0RpcmVjdGl2ZVwiO1xuY29uc3QgX1RETU9TID0gXCJUcmFuc2l0aW9uRGVmYXVsdE1pbmltdW1PYmplY3RTaXplXCI7XG5jb25zdCBfVEcgPSBcIlRhcmdldEdyYW50c1wiO1xuY29uc3QgX1RHYSA9IFwiVGFyZ2V0R3JhbnRcIjtcbmNvbnN0IF9UTCA9IFwiVGllcmluZ0xpc3RcIjtcbmNvbnN0IF9UTHIgPSBcIlRyYW5zaXRpb25MaXN0XCI7XG5jb25zdCBfVE1QID0gXCJUb29NYW55UGFydHNcIjtcbmNvbnN0IF9UTiA9IFwiVGFibGVOYW1lc3BhY2VcIjtcbmNvbnN0IF9UTmEgPSBcIlRhYmxlTmFtZVwiO1xuY29uc3QgX1RPS0YgPSBcIlRhcmdldE9iamVjdEtleUZvcm1hdFwiO1xuY29uc3QgX1RQID0gXCJUYXJnZXRQcmVmaXhcIjtcbmNvbnN0IF9UUEMgPSBcIlRvdGFsUGFydHNDb3VudFwiO1xuY29uc3QgX1RTID0gXCJUYWdTZXRcIjtcbmNvbnN0IF9UU2EgPSBcIlRhYmxlU3RhdHVzXCI7XG5jb25zdCBfVGEgPSBcIlRhZ1wiO1xuY29uc3QgX1RhZyA9IFwiVGFnZ2luZ1wiO1xuY29uc3QgX1RpID0gXCJUaWVyXCI7XG5jb25zdCBfVGllID0gXCJUaWVyaW5nc1wiO1xuY29uc3QgX1RpZXIgPSBcIlRpZXJpbmdcIjtcbmNvbnN0IF9UaW0gPSBcIlRpbWVcIjtcbmNvbnN0IF9UbyA9IFwiVG9rZW5cIjtcbmNvbnN0IF9Ub3AgPSBcIlRvcGljXCI7XG5jb25zdCBfVHIgPSBcIlRyYW5zaXRpb25zXCI7XG5jb25zdCBfVHJhID0gXCJUcmFuc2l0aW9uXCI7XG5jb25zdCBfVHkgPSBcIlR5cGVcIjtcbmNvbnN0IF9VID0gXCJVcGxvYWRzXCI7XG5jb25zdCBfVUJNSVRDID0gXCJVcGRhdGVCdWNrZXRNZXRhZGF0YUludmVudG9yeVRhYmxlQ29uZmlndXJhdGlvblwiO1xuY29uc3QgX1VCTUlUQ1IgPSBcIlVwZGF0ZUJ1Y2tldE1ldGFkYXRhSW52ZW50b3J5VGFibGVDb25maWd1cmF0aW9uUmVxdWVzdFwiO1xuY29uc3QgX1VCTUpUQyA9IFwiVXBkYXRlQnVja2V0TWV0YWRhdGFKb3VybmFsVGFibGVDb25maWd1cmF0aW9uXCI7XG5jb25zdCBfVUJNSlRDUiA9IFwiVXBkYXRlQnVja2V0TWV0YWRhdGFKb3VybmFsVGFibGVDb25maWd1cmF0aW9uUmVxdWVzdFwiO1xuY29uc3QgX1VJID0gXCJVcGxvYWRJZFwiO1xuY29uc3QgX1VJTSA9IFwiVXBsb2FkSWRNYXJrZXJcIjtcbmNvbnN0IF9VTSA9IFwiVXNlck1ldGFkYXRhXCI7XG5jb25zdCBfVVAgPSBcIlVwbG9hZFBhcnRcIjtcbmNvbnN0IF9VUEMgPSBcIlVwbG9hZFBhcnRDb3B5XCI7XG5jb25zdCBfVVBDTyA9IFwiVXBsb2FkUGFydENvcHlPdXRwdXRcIjtcbmNvbnN0IF9VUENSID0gXCJVcGxvYWRQYXJ0Q29weVJlcXVlc3RcIjtcbmNvbnN0IF9VUE8gPSBcIlVwbG9hZFBhcnRPdXRwdXRcIjtcbmNvbnN0IF9VUFIgPSBcIlVwbG9hZFBhcnRSZXF1ZXN0XCI7XG5jb25zdCBfVVJJID0gXCJVUklcIjtcbmNvbnN0IF9VcCA9IFwiVXBsb2FkXCI7XG5jb25zdCBfViA9IFwiVmFsdWVcIjtcbmNvbnN0IF9WQyA9IFwiVmVyc2lvbmluZ0NvbmZpZ3VyYXRpb25cIjtcbmNvbnN0IF9WSSA9IFwiVmVyc2lvbklkXCI7XG5jb25zdCBfVklNID0gXCJWZXJzaW9uSWRNYXJrZXJcIjtcbmNvbnN0IF9WZSA9IFwiVmVyc2lvbnNcIjtcbmNvbnN0IF9WZXIgPSBcIlZlcnNpb25cIjtcbmNvbnN0IF9XQyA9IFwiV2Vic2l0ZUNvbmZpZ3VyYXRpb25cIjtcbmNvbnN0IF9XR09SID0gXCJXcml0ZUdldE9iamVjdFJlc3BvbnNlXCI7XG5jb25zdCBfV0dPUlIgPSBcIldyaXRlR2V0T2JqZWN0UmVzcG9uc2VSZXF1ZXN0XCI7XG5jb25zdCBfV09CID0gXCJXcml0ZU9mZnNldEJ5dGVzXCI7XG5jb25zdCBfV1JMID0gXCJXZWJzaXRlUmVkaXJlY3RMb2NhdGlvblwiO1xuY29uc3QgX1kgPSBcIlllYXJzXCI7XG5jb25zdCBfYXIgPSBcImFjY2VwdC1yYW5nZXNcIjtcbmNvbnN0IF9iciA9IFwiYnVja2V0LXJlZ2lvblwiO1xuY29uc3QgX2MgPSBcImNsaWVudFwiO1xuY29uc3QgX2N0ID0gXCJjb250aW51YXRpb24tdG9rZW5cIjtcbmNvbnN0IF9kID0gXCJkZWxpbWl0ZXJcIjtcbmNvbnN0IF9lID0gXCJlcnJvclwiO1xuY29uc3QgX2VQID0gXCJldmVudFBheWxvYWRcIjtcbmNvbnN0IF9lbiA9IFwiZW5kcG9pbnRcIjtcbmNvbnN0IF9ldCA9IFwiZW5jb2RpbmctdHlwZVwiO1xuY29uc3QgX2ZvID0gXCJmZXRjaC1vd25lclwiO1xuY29uc3QgX2ggPSBcImh0dHBcIjtcbmNvbnN0IF9oRSA9IFwiaHR0cEVycm9yXCI7XG5jb25zdCBfaEggPSBcImh0dHBIZWFkZXJcIjtcbmNvbnN0IF9oTCA9IFwiaG9zdExhYmVsXCI7XG5jb25zdCBfaFAgPSBcImh0dHBQYXlsb2FkXCI7XG5jb25zdCBfaFBIID0gXCJodHRwUHJlZml4SGVhZGVyc1wiO1xuY29uc3QgX2hRID0gXCJodHRwUXVlcnlcIjtcbmNvbnN0IF9oaSA9IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2VcIjtcbmNvbnN0IF9pID0gXCJpZFwiO1xuY29uc3QgX2lUID0gXCJpZGVtcG90ZW5jeVRva2VuXCI7XG5jb25zdCBfa20gPSBcImtleS1tYXJrZXJcIjtcbmNvbnN0IF9tID0gXCJtYXJrZXJcIjtcbmNvbnN0IF9tYiA9IFwibWF4LWJ1Y2tldHNcIjtcbmNvbnN0IF9tZGIgPSBcIm1heC1kaXJlY3RvcnktYnVja2V0c1wiO1xuY29uc3QgX21rID0gXCJtYXgta2V5c1wiO1xuY29uc3QgX21wID0gXCJtYXgtcGFydHNcIjtcbmNvbnN0IF9tdSA9IFwibWF4LXVwbG9hZHNcIjtcbmNvbnN0IF9wID0gXCJwcmVmaXhcIjtcbmNvbnN0IF9wTiA9IFwicGFydE51bWJlclwiO1xuY29uc3QgX3BubSA9IFwicGFydC1udW1iZXItbWFya2VyXCI7XG5jb25zdCBfcmNjID0gXCJyZXNwb25zZS1jYWNoZS1jb250cm9sXCI7XG5jb25zdCBfcmNkID0gXCJyZXNwb25zZS1jb250ZW50LWRpc3Bvc2l0aW9uXCI7XG5jb25zdCBfcmNlID0gXCJyZXNwb25zZS1jb250ZW50LWVuY29kaW5nXCI7XG5jb25zdCBfcmNsID0gXCJyZXNwb25zZS1jb250ZW50LWxhbmd1YWdlXCI7XG5jb25zdCBfcmN0ID0gXCJyZXNwb25zZS1jb250ZW50LXR5cGVcIjtcbmNvbnN0IF9yZSA9IFwicmVzcG9uc2UtZXhwaXJlc1wiO1xuY29uc3QgX3MgPSBcInN0cmVhbWluZ1wiO1xuY29uc3QgX3NhID0gXCJzdGFydC1hZnRlclwiO1xuY29uc3QgX3NtID0gXCJzbWl0aHkudHMuc2RrLnN5bnRoZXRpYy5jb20uYW1hem9uYXdzLnMzXCI7XG5jb25zdCBfdUkgPSBcInVwbG9hZElkXCI7XG5jb25zdCBfdWltID0gXCJ1cGxvYWQtaWQtbWFya2VyXCI7XG5jb25zdCBfdkkgPSBcInZlcnNpb25JZFwiO1xuY29uc3QgX3ZpbSA9IFwidmVyc2lvbi1pZC1tYXJrZXJcIjtcbmNvbnN0IF94ID0gXCJ4c2lcIjtcbmNvbnN0IF94QSA9IFwieG1sQXR0cmlidXRlXCI7XG5jb25zdCBfeEYgPSBcInhtbEZsYXR0ZW5lZFwiO1xuY29uc3QgX3hOID0gXCJ4bWxOYW1lXCI7XG5jb25zdCBfeE5tID0gXCJ4bWxOYW1lc3BhY2VcIjtcbmNvbnN0IF94YWEgPSBcIngtYW16LWFjbFwiO1xuY29uc3QgX3hhYWQgPSBcIngtYW16LWFib3J0LWRhdGVcIjtcbmNvbnN0IF94YWFwYSA9IFwieC1hbXotYWNjZXNzLXBvaW50LWFsaWFzXCI7XG5jb25zdCBfeGFhcmkgPSBcIngtYW16LWFib3J0LXJ1bGUtaWRcIjtcbmNvbnN0IF94YWFzID0gXCJ4LWFtei1hcmNoaXZlLXN0YXR1c1wiO1xuY29uc3QgX3hhYmEgPSBcIngtYW16LWJ1Y2tldC1hcm5cIjtcbmNvbnN0IF94YWJnciA9IFwieC1hbXotYnlwYXNzLWdvdmVybmFuY2UtcmV0ZW50aW9uXCI7XG5jb25zdCBfeGFibG4gPSBcIngtYW16LWJ1Y2tldC1sb2NhdGlvbi1uYW1lXCI7XG5jb25zdCBfeGFibHQgPSBcIngtYW16LWJ1Y2tldC1sb2NhdGlvbi10eXBlXCI7XG5jb25zdCBfeGFib2xlID0gXCJ4LWFtei1idWNrZXQtb2JqZWN0LWxvY2stZW5hYmxlZFwiO1xuY29uc3QgX3hhYm9sdCA9IFwieC1hbXotYnVja2V0LW9iamVjdC1sb2NrLXRva2VuXCI7XG5jb25zdCBfeGFiciA9IFwieC1hbXotYnVja2V0LXJlZ2lvblwiO1xuY29uc3QgX3hhY2EgPSBcIngtYW16LWNoZWNrc3VtLWFsZ29yaXRobVwiO1xuY29uc3QgX3hhY2MgPSBcIngtYW16LWNoZWNrc3VtLWNyYzMyXCI7XG5jb25zdCBfeGFjY18gPSBcIngtYW16LWNoZWNrc3VtLWNyYzMyY1wiO1xuY29uc3QgX3hhY2NfXyA9IFwieC1hbXotY2hlY2tzdW0tY3JjNjRudm1lXCI7XG5jb25zdCBfeGFjbSA9IFwieC1hbXotY2hlY2tzdW0tbW9kZVwiO1xuY29uc3QgX3hhY3JzYmEgPSBcIngtYW16LWNvbmZpcm0tcmVtb3ZlLXNlbGYtYnVja2V0LWFjY2Vzc1wiO1xuY29uc3QgX3hhY3MgPSBcIngtYW16LWNoZWNrc3VtLXNoYTFcIjtcbmNvbnN0IF94YWNzXyA9IFwieC1hbXotY2hlY2tzdW0tc2hhMjU2XCI7XG5jb25zdCBfeGFjc19fID0gXCJ4LWFtei1jb3B5LXNvdXJjZVwiO1xuY29uc3QgX3hhY3NpbSA9IFwieC1hbXotY29weS1zb3VyY2UtaWYtbWF0Y2hcIjtcbmNvbnN0IF94YWNzaW1zID0gXCJ4LWFtei1jb3B5LXNvdXJjZS1pZi1tb2RpZmllZC1zaW5jZVwiO1xuY29uc3QgX3hhY3Npbm0gPSBcIngtYW16LWNvcHktc291cmNlLWlmLW5vbmUtbWF0Y2hcIjtcbmNvbnN0IF94YWNzaXVzID0gXCJ4LWFtei1jb3B5LXNvdXJjZS1pZi11bm1vZGlmaWVkLXNpbmNlXCI7XG5jb25zdCBfeGFjc20gPSBcIngtYW16LWNyZWF0ZS1zZXNzaW9uLW1vZGVcIjtcbmNvbnN0IF94YWNzciA9IFwieC1hbXotY29weS1zb3VyY2UtcmFuZ2VcIjtcbmNvbnN0IF94YWNzc3NlY2EgPSBcIngtYW16LWNvcHktc291cmNlLXNlcnZlci1zaWRlLWVuY3J5cHRpb24tY3VzdG9tZXItYWxnb3JpdGhtXCI7XG5jb25zdCBfeGFjc3NzZWNrID0gXCJ4LWFtei1jb3B5LXNvdXJjZS1zZXJ2ZXItc2lkZS1lbmNyeXB0aW9uLWN1c3RvbWVyLWtleVwiO1xuY29uc3QgX3hhY3Nzc2Vja00gPSBcIngtYW16LWNvcHktc291cmNlLXNlcnZlci1zaWRlLWVuY3J5cHRpb24tY3VzdG9tZXIta2V5LU1ENVwiO1xuY29uc3QgX3hhY3N2aSA9IFwieC1hbXotY29weS1zb3VyY2UtdmVyc2lvbi1pZFwiO1xuY29uc3QgX3hhY3QgPSBcIngtYW16LWNoZWNrc3VtLXR5cGVcIjtcbmNvbnN0IF94YWN0XyA9IFwieC1hbXotY2xpZW50LXRva2VuXCI7XG5jb25zdCBfeGFkbSA9IFwieC1hbXotZGVsZXRlLW1hcmtlclwiO1xuY29uc3QgX3hhZSA9IFwieC1hbXotZXhwaXJhdGlvblwiO1xuY29uc3QgX3hhZWJvID0gXCJ4LWFtei1leHBlY3RlZC1idWNrZXQtb3duZXJcIjtcbmNvbnN0IF94YWZlYyA9IFwieC1hbXotZndkLWVycm9yLWNvZGVcIjtcbmNvbnN0IF94YWZlbSA9IFwieC1hbXotZndkLWVycm9yLW1lc3NhZ2VcIjtcbmNvbnN0IF94YWZoQ0MgPSBcIngtYW16LWZ3ZC1oZWFkZXItQ2FjaGUtQ29udHJvbFwiO1xuY29uc3QgX3hhZmhDRCA9IFwieC1hbXotZndkLWhlYWRlci1Db250ZW50LURpc3Bvc2l0aW9uXCI7XG5jb25zdCBfeGFmaENFID0gXCJ4LWFtei1md2QtaGVhZGVyLUNvbnRlbnQtRW5jb2RpbmdcIjtcbmNvbnN0IF94YWZoQ0wgPSBcIngtYW16LWZ3ZC1oZWFkZXItQ29udGVudC1MYW5ndWFnZVwiO1xuY29uc3QgX3hhZmhDUiA9IFwieC1hbXotZndkLWhlYWRlci1Db250ZW50LVJhbmdlXCI7XG5jb25zdCBfeGFmaENUID0gXCJ4LWFtei1md2QtaGVhZGVyLUNvbnRlbnQtVHlwZVwiO1xuY29uc3QgX3hhZmhFID0gXCJ4LWFtei1md2QtaGVhZGVyLUVUYWdcIjtcbmNvbnN0IF94YWZoRV8gPSBcIngtYW16LWZ3ZC1oZWFkZXItRXhwaXJlc1wiO1xuY29uc3QgX3hhZmhMTSA9IFwieC1hbXotZndkLWhlYWRlci1MYXN0LU1vZGlmaWVkXCI7XG5jb25zdCBfeGFmaGFyID0gXCJ4LWFtei1md2QtaGVhZGVyLWFjY2VwdC1yYW5nZXNcIjtcbmNvbnN0IF94YWZoeGFjYyA9IFwieC1hbXotZndkLWhlYWRlci14LWFtei1jaGVja3N1bS1jcmMzMlwiO1xuY29uc3QgX3hhZmh4YWNjXyA9IFwieC1hbXotZndkLWhlYWRlci14LWFtei1jaGVja3N1bS1jcmMzMmNcIjtcbmNvbnN0IF94YWZoeGFjY19fID0gXCJ4LWFtei1md2QtaGVhZGVyLXgtYW16LWNoZWNrc3VtLWNyYzY0bnZtZVwiO1xuY29uc3QgX3hhZmh4YWNzID0gXCJ4LWFtei1md2QtaGVhZGVyLXgtYW16LWNoZWNrc3VtLXNoYTFcIjtcbmNvbnN0IF94YWZoeGFjc18gPSBcIngtYW16LWZ3ZC1oZWFkZXIteC1hbXotY2hlY2tzdW0tc2hhMjU2XCI7XG5jb25zdCBfeGFmaHhhZG0gPSBcIngtYW16LWZ3ZC1oZWFkZXIteC1hbXotZGVsZXRlLW1hcmtlclwiO1xuY29uc3QgX3hhZmh4YWUgPSBcIngtYW16LWZ3ZC1oZWFkZXIteC1hbXotZXhwaXJhdGlvblwiO1xuY29uc3QgX3hhZmh4YW1tID0gXCJ4LWFtei1md2QtaGVhZGVyLXgtYW16LW1pc3NpbmctbWV0YVwiO1xuY29uc3QgX3hhZmh4YW1wYyA9IFwieC1hbXotZndkLWhlYWRlci14LWFtei1tcC1wYXJ0cy1jb3VudFwiO1xuY29uc3QgX3hhZmh4YW9sbGggPSBcIngtYW16LWZ3ZC1oZWFkZXIteC1hbXotb2JqZWN0LWxvY2stbGVnYWwtaG9sZFwiO1xuY29uc3QgX3hhZmh4YW9sbSA9IFwieC1hbXotZndkLWhlYWRlci14LWFtei1vYmplY3QtbG9jay1tb2RlXCI7XG5jb25zdCBfeGFmaHhhb2xydWQgPSBcIngtYW16LWZ3ZC1oZWFkZXIteC1hbXotb2JqZWN0LWxvY2stcmV0YWluLXVudGlsLWRhdGVcIjtcbmNvbnN0IF94YWZoeGFyID0gXCJ4LWFtei1md2QtaGVhZGVyLXgtYW16LXJlc3RvcmVcIjtcbmNvbnN0IF94YWZoeGFyYyA9IFwieC1hbXotZndkLWhlYWRlci14LWFtei1yZXF1ZXN0LWNoYXJnZWRcIjtcbmNvbnN0IF94YWZoeGFycyA9IFwieC1hbXotZndkLWhlYWRlci14LWFtei1yZXBsaWNhdGlvbi1zdGF0dXNcIjtcbmNvbnN0IF94YWZoeGFzYyA9IFwieC1hbXotZndkLWhlYWRlci14LWFtei1zdG9yYWdlLWNsYXNzXCI7XG5jb25zdCBfeGFmaHhhc3NlID0gXCJ4LWFtei1md2QtaGVhZGVyLXgtYW16LXNlcnZlci1zaWRlLWVuY3J5cHRpb25cIjtcbmNvbnN0IF94YWZoeGFzc2Vha2tpID0gXCJ4LWFtei1md2QtaGVhZGVyLXgtYW16LXNlcnZlci1zaWRlLWVuY3J5cHRpb24tYXdzLWttcy1rZXktaWRcIjtcbmNvbnN0IF94YWZoeGFzc2Via2UgPSBcIngtYW16LWZ3ZC1oZWFkZXIteC1hbXotc2VydmVyLXNpZGUtZW5jcnlwdGlvbi1idWNrZXQta2V5LWVuYWJsZWRcIjtcbmNvbnN0IF94YWZoeGFzc2VjYSA9IFwieC1hbXotZndkLWhlYWRlci14LWFtei1zZXJ2ZXItc2lkZS1lbmNyeXB0aW9uLWN1c3RvbWVyLWFsZ29yaXRobVwiO1xuY29uc3QgX3hhZmh4YXNzZWNrTSA9IFwieC1hbXotZndkLWhlYWRlci14LWFtei1zZXJ2ZXItc2lkZS1lbmNyeXB0aW9uLWN1c3RvbWVyLWtleS1NRDVcIjtcbmNvbnN0IF94YWZoeGF0YyA9IFwieC1hbXotZndkLWhlYWRlci14LWFtei10YWdnaW5nLWNvdW50XCI7XG5jb25zdCBfeGFmaHhhdmkgPSBcIngtYW16LWZ3ZC1oZWFkZXIteC1hbXotdmVyc2lvbi1pZFwiO1xuY29uc3QgX3hhZnMgPSBcIngtYW16LWZ3ZC1zdGF0dXNcIjtcbmNvbnN0IF94YWdmYyA9IFwieC1hbXotZ3JhbnQtZnVsbC1jb250cm9sXCI7XG5jb25zdCBfeGFnciA9IFwieC1hbXotZ3JhbnQtcmVhZFwiO1xuY29uc3QgX3hhZ3JhID0gXCJ4LWFtei1ncmFudC1yZWFkLWFjcFwiO1xuY29uc3QgX3hhZ3cgPSBcIngtYW16LWdyYW50LXdyaXRlXCI7XG5jb25zdCBfeGFnd2EgPSBcIngtYW16LWdyYW50LXdyaXRlLWFjcFwiO1xuY29uc3QgX3hhaW1pdCA9IFwieC1hbXotaWYtbWF0Y2gtaW5pdGlhdGVkLXRpbWVcIjtcbmNvbnN0IF94YWltbG10ID0gXCJ4LWFtei1pZi1tYXRjaC1sYXN0LW1vZGlmaWVkLXRpbWVcIjtcbmNvbnN0IF94YWltcyA9IFwieC1hbXotaWYtbWF0Y2gtc2l6ZVwiO1xuY29uc3QgX3hhbSA9IFwieC1hbXotbWV0YS1cIjtcbmNvbnN0IF94YW1fID0gXCJ4LWFtei1tZmFcIjtcbmNvbnN0IF94YW1kID0gXCJ4LWFtei1tZXRhZGF0YS1kaXJlY3RpdmVcIjtcbmNvbnN0IF94YW1tID0gXCJ4LWFtei1taXNzaW5nLW1ldGFcIjtcbmNvbnN0IF94YW1vcyA9IFwieC1hbXotbXAtb2JqZWN0LXNpemVcIjtcbmNvbnN0IF94YW1wID0gXCJ4LWFtei1tYXgtcGFydHNcIjtcbmNvbnN0IF94YW1wYyA9IFwieC1hbXotbXAtcGFydHMtY291bnRcIjtcbmNvbnN0IF94YW9hID0gXCJ4LWFtei1vYmplY3QtYXR0cmlidXRlc1wiO1xuY29uc3QgX3hhb2xsaCA9IFwieC1hbXotb2JqZWN0LWxvY2stbGVnYWwtaG9sZFwiO1xuY29uc3QgX3hhb2xtID0gXCJ4LWFtei1vYmplY3QtbG9jay1tb2RlXCI7XG5jb25zdCBfeGFvbHJ1ZCA9IFwieC1hbXotb2JqZWN0LWxvY2stcmV0YWluLXVudGlsLWRhdGVcIjtcbmNvbnN0IF94YW9vID0gXCJ4LWFtei1vYmplY3Qtb3duZXJzaGlwXCI7XG5jb25zdCBfeGFvb2EgPSBcIngtYW16LW9wdGlvbmFsLW9iamVjdC1hdHRyaWJ1dGVzXCI7XG5jb25zdCBfeGFvcyA9IFwieC1hbXotb2JqZWN0LXNpemVcIjtcbmNvbnN0IF94YXBubSA9IFwieC1hbXotcGFydC1udW1iZXItbWFya2VyXCI7XG5jb25zdCBfeGFyID0gXCJ4LWFtei1yZXN0b3JlXCI7XG5jb25zdCBfeGFyYyA9IFwieC1hbXotcmVxdWVzdC1jaGFyZ2VkXCI7XG5jb25zdCBfeGFyb3AgPSBcIngtYW16LXJlc3RvcmUtb3V0cHV0LXBhdGhcIjtcbmNvbnN0IF94YXJwID0gXCJ4LWFtei1yZXF1ZXN0LXBheWVyXCI7XG5jb25zdCBfeGFyciA9IFwieC1hbXotcmVxdWVzdC1yb3V0ZVwiO1xuY29uc3QgX3hhcnMgPSBcIngtYW16LXJlcGxpY2F0aW9uLXN0YXR1c1wiO1xuY29uc3QgX3hhcnNfID0gXCJ4LWFtei1yZW5hbWUtc291cmNlXCI7XG5jb25zdCBfeGFyc2ltID0gXCJ4LWFtei1yZW5hbWUtc291cmNlLWlmLW1hdGNoXCI7XG5jb25zdCBfeGFyc2ltcyA9IFwieC1hbXotcmVuYW1lLXNvdXJjZS1pZi1tb2RpZmllZC1zaW5jZVwiO1xuY29uc3QgX3hhcnNpbm0gPSBcIngtYW16LXJlbmFtZS1zb3VyY2UtaWYtbm9uZS1tYXRjaFwiO1xuY29uc3QgX3hhcnNpdXMgPSBcIngtYW16LXJlbmFtZS1zb3VyY2UtaWYtdW5tb2RpZmllZC1zaW5jZVwiO1xuY29uc3QgX3hhcnQgPSBcIngtYW16LXJlcXVlc3QtdG9rZW5cIjtcbmNvbnN0IF94YXNjID0gXCJ4LWFtei1zdG9yYWdlLWNsYXNzXCI7XG5jb25zdCBfeGFzY2EgPSBcIngtYW16LXNkay1jaGVja3N1bS1hbGdvcml0aG1cIjtcbmNvbnN0IF94YXNkdiA9IFwieC1hbXotc2tpcC1kZXN0aW5hdGlvbi12YWxpZGF0aW9uXCI7XG5jb25zdCBfeGFzZWJvID0gXCJ4LWFtei1zb3VyY2UtZXhwZWN0ZWQtYnVja2V0LW93bmVyXCI7XG5jb25zdCBfeGFzc2UgPSBcIngtYW16LXNlcnZlci1zaWRlLWVuY3J5cHRpb25cIjtcbmNvbnN0IF94YXNzZWFra2kgPSBcIngtYW16LXNlcnZlci1zaWRlLWVuY3J5cHRpb24tYXdzLWttcy1rZXktaWRcIjtcbmNvbnN0IF94YXNzZWJrZSA9IFwieC1hbXotc2VydmVyLXNpZGUtZW5jcnlwdGlvbi1idWNrZXQta2V5LWVuYWJsZWRcIjtcbmNvbnN0IF94YXNzZWMgPSBcIngtYW16LXNlcnZlci1zaWRlLWVuY3J5cHRpb24tY29udGV4dFwiO1xuY29uc3QgX3hhc3NlY2EgPSBcIngtYW16LXNlcnZlci1zaWRlLWVuY3J5cHRpb24tY3VzdG9tZXItYWxnb3JpdGhtXCI7XG5jb25zdCBfeGFzc2VjayA9IFwieC1hbXotc2VydmVyLXNpZGUtZW5jcnlwdGlvbi1jdXN0b21lci1rZXlcIjtcbmNvbnN0IF94YXNzZWNrTSA9IFwieC1hbXotc2VydmVyLXNpZGUtZW5jcnlwdGlvbi1jdXN0b21lci1rZXktTUQ1XCI7XG5jb25zdCBfeGF0ID0gXCJ4LWFtei10YWdnaW5nXCI7XG5jb25zdCBfeGF0YyA9IFwieC1hbXotdGFnZ2luZy1jb3VudFwiO1xuY29uc3QgX3hhdGQgPSBcIngtYW16LXRhZ2dpbmctZGlyZWN0aXZlXCI7XG5jb25zdCBfeGF0ZG1vcyA9IFwieC1hbXotdHJhbnNpdGlvbi1kZWZhdWx0LW1pbmltdW0tb2JqZWN0LXNpemVcIjtcbmNvbnN0IF94YXZpID0gXCJ4LWFtei12ZXJzaW9uLWlkXCI7XG5jb25zdCBfeGF3b2IgPSBcIngtYW16LXdyaXRlLW9mZnNldC1ieXRlc1wiO1xuY29uc3QgX3hhd3JsID0gXCJ4LWFtei13ZWJzaXRlLXJlZGlyZWN0LWxvY2F0aW9uXCI7XG5jb25zdCBfeHMgPSBcInhzaTp0eXBlXCI7XG5jb25zdCBuMCA9IFwiY29tLmFtYXpvbmF3cy5zM1wiO1xudmFyIENvcHlTb3VyY2VTU0VDdXN0b21lcktleSA9IFswLCBuMCwgX0NTU1NFQ0ssIDgsIDBdO1xudmFyIFNlc3Npb25DcmVkZW50aWFsVmFsdWUgPSBbMCwgbjAsIF9TQ1YsIDgsIDBdO1xudmFyIFNTRUN1c3RvbWVyS2V5ID0gWzAsIG4wLCBfU1NFQ0ssIDgsIDBdO1xudmFyIFNTRUtNU0VuY3J5cHRpb25Db250ZXh0ID0gWzAsIG4wLCBfU1NFS01TRUMsIDgsIDBdO1xudmFyIFNTRUtNU0tleUlkID0gWzAsIG4wLCBfU1NFS01TS0ksIDgsIDBdO1xudmFyIFN0cmVhbWluZ0Jsb2IgPSBbMCwgbjAsIF9TQiwgeyBbX3NdOiAxIH0sIDQyXTtcbnZhciBBYmFjU3RhdHVzID0gWzMsIG4wLCBfQVMsIDAsIFtfU10sIFswXV07XG52YXIgQWJvcnRJbmNvbXBsZXRlTXVsdGlwYXJ0VXBsb2FkID0gWzMsIG4wLCBfQUlNVSwgMCwgW19EQUldLCBbMV1dO1xudmFyIEFib3J0TXVsdGlwYXJ0VXBsb2FkT3V0cHV0ID0gWzMsIG4wLCBfQU1VTywgMCwgW19SQ10sIFtbMCwgeyBbX2hIXTogX3hhcmMgfV1dXTtcbnZhciBBYm9ydE11bHRpcGFydFVwbG9hZFJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfQU1VUixcbiAgICAwLFxuICAgIFtfQiwgX0ssIF9VSSwgX1JQLCBfRUJPLCBfSU1JVF0sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oUV06IF91SSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXJwIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZWJvIH1dLFxuICAgICAgICBbNiwgeyBbX2hIXTogX3hhaW1pdCB9XSxcbiAgICBdLFxuXTtcbnZhciBBY2NlbGVyYXRlQ29uZmlndXJhdGlvbiA9IFszLCBuMCwgX0FDLCAwLCBbX1NdLCBbMF1dO1xudmFyIEFjY2Vzc0NvbnRyb2xQb2xpY3kgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfQUNQLFxuICAgIDAsXG4gICAgW19HLCBfT10sXG4gICAgW1soKSA9PiBHcmFudHMsIHsgW194Tl06IF9BQ0wgfV0sICgpID0+IE93bmVyXSxcbl07XG52YXIgQWNjZXNzQ29udHJvbFRyYW5zbGF0aW9uID0gWzMsIG4wLCBfQUNULCAwLCBbX09dLCBbMF1dO1xudmFyIEFuYWx5dGljc0FuZE9wZXJhdG9yID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0FBTyxcbiAgICAwLFxuICAgIFtfUCwgX1RdLFxuICAgIFswLCBbKCkgPT4gVGFnU2V0LCB7IFtfeE5dOiBfVGEsIFtfeEZdOiAxIH1dXSxcbl07XG52YXIgQW5hbHl0aWNzQ29uZmlndXJhdGlvbiA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9BQ24sXG4gICAgMCxcbiAgICBbX0ksIF9GLCBfU0NBXSxcbiAgICBbMCwgWygpID0+IEFuYWx5dGljc0ZpbHRlciwgMF0sICgpID0+IFN0b3JhZ2VDbGFzc0FuYWx5c2lzXSxcbl07XG52YXIgQW5hbHl0aWNzRXhwb3J0RGVzdGluYXRpb24gPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfQUVELFxuICAgIDAsXG4gICAgW19TQkRdLFxuICAgIFsoKSA9PiBBbmFseXRpY3NTM0J1Y2tldERlc3RpbmF0aW9uXSxcbl07XG52YXIgQW5hbHl0aWNzUzNCdWNrZXREZXN0aW5hdGlvbiA9IFszLCBuMCwgX0FTQkQsIDAsIFtfRm8sIF9CQUksIF9CLCBfUF0sIFswLCAwLCAwLCAwXV07XG52YXIgQmxvY2tlZEVuY3J5cHRpb25UeXBlcyA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9CRVQsXG4gICAgMCxcbiAgICBbX0VUXSxcbiAgICBbWygpID0+IEVuY3J5cHRpb25UeXBlTGlzdCwgeyBbX3hGXTogMSB9XV0sXG5dO1xudmFyIEJ1Y2tldCA9IFszLCBuMCwgX0IsIDAsIFtfTiwgX0NELCBfQlIsIF9CQV0sIFswLCA0LCAwLCAwXV07XG52YXIgQnVja2V0QWxyZWFkeUV4aXN0cyA9IFstMywgbjAsIF9CQUUsIHsgW19lXTogX2MsIFtfaEVdOiA0MDkgfSwgW10sIFtdXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKEJ1Y2tldEFscmVhZHlFeGlzdHMsIEJ1Y2tldEFscmVhZHlFeGlzdHMkMSk7XG52YXIgQnVja2V0QWxyZWFkeU93bmVkQnlZb3UgPSBbLTMsIG4wLCBfQkFPQlksIHsgW19lXTogX2MsIFtfaEVdOiA0MDkgfSwgW10sIFtdXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKEJ1Y2tldEFscmVhZHlPd25lZEJ5WW91LCBCdWNrZXRBbHJlYWR5T3duZWRCeVlvdSQxKTtcbnZhciBCdWNrZXRJbmZvID0gWzMsIG4wLCBfQkksIDAsIFtfRFIsIF9UeV0sIFswLCAwXV07XG52YXIgQnVja2V0TGlmZWN5Y2xlQ29uZmlndXJhdGlvbiA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9CTEMsXG4gICAgMCxcbiAgICBbX1JdLFxuICAgIFtbKCkgPT4gTGlmZWN5Y2xlUnVsZXMsIHsgW194Tl06IF9SdSwgW194Rl06IDEgfV1dLFxuXTtcbnZhciBCdWNrZXRMb2dnaW5nU3RhdHVzID0gWzMsIG4wLCBfQkxTLCAwLCBbX0xFXSwgW1soKSA9PiBMb2dnaW5nRW5hYmxlZCwgMF1dXTtcbnZhciBDaGVja3N1bSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9DLFxuICAgIDAsXG4gICAgW19DQ1JDLCBfQ0NSQ0MsIF9DQ1JDTlZNRSwgX0NTSEEsIF9DU0hBaCwgX0NUXSxcbiAgICBbMCwgMCwgMCwgMCwgMCwgMF0sXG5dO1xudmFyIENvbW1vblByZWZpeCA9IFszLCBuMCwgX0NQLCAwLCBbX1BdLCBbMF1dO1xudmFyIENvbXBsZXRlZE11bHRpcGFydFVwbG9hZCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9DTVUsXG4gICAgMCxcbiAgICBbX1BhXSxcbiAgICBbWygpID0+IENvbXBsZXRlZFBhcnRMaXN0LCB7IFtfeE5dOiBfUGFyLCBbX3hGXTogMSB9XV0sXG5dO1xudmFyIENvbXBsZXRlZFBhcnQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfQ1BvLFxuICAgIDAsXG4gICAgW19FVGEsIF9DQ1JDLCBfQ0NSQ0MsIF9DQ1JDTlZNRSwgX0NTSEEsIF9DU0hBaCwgX1BOXSxcbiAgICBbMCwgMCwgMCwgMCwgMCwgMCwgMV0sXG5dO1xudmFyIENvbXBsZXRlTXVsdGlwYXJ0VXBsb2FkT3V0cHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0NNVU8sXG4gICAgeyBbX3hOXTogX0NNVVIgfSxcbiAgICBbX0wsIF9CLCBfSywgX0UsIF9FVGEsIF9DQ1JDLCBfQ0NSQ0MsIF9DQ1JDTlZNRSwgX0NTSEEsIF9DU0hBaCwgX0NULCBfU1NFLCBfVkksIF9TU0VLTVNLSSwgX0JLRSwgX1JDXSxcbiAgICBbXG4gICAgICAgIDAsXG4gICAgICAgIDAsXG4gICAgICAgIDAsXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFlIH1dLFxuICAgICAgICAwLFxuICAgICAgICAwLFxuICAgICAgICAwLFxuICAgICAgICAwLFxuICAgICAgICAwLFxuICAgICAgICAwLFxuICAgICAgICAwLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhc3NlIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhdmkgfV0sXG4gICAgICAgIFsoKSA9PiBTU0VLTVNLZXlJZCwgeyBbX2hIXTogX3hhc3NlYWtraSB9XSxcbiAgICAgICAgWzIsIHsgW19oSF06IF94YXNzZWJrZSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXJjIH1dLFxuICAgIF0sXG5dO1xudmFyIENvbXBsZXRlTXVsdGlwYXJ0VXBsb2FkUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9DTVVSbyxcbiAgICAwLFxuICAgIFtcbiAgICAgICAgX0IsXG4gICAgICAgIF9LLFxuICAgICAgICBfTVUsXG4gICAgICAgIF9VSSxcbiAgICAgICAgX0NDUkMsXG4gICAgICAgIF9DQ1JDQyxcbiAgICAgICAgX0NDUkNOVk1FLFxuICAgICAgICBfQ1NIQSxcbiAgICAgICAgX0NTSEFoLFxuICAgICAgICBfQ1QsXG4gICAgICAgIF9NT1MsXG4gICAgICAgIF9SUCxcbiAgICAgICAgX0VCTyxcbiAgICAgICAgX0lNLFxuICAgICAgICBfSU5NLFxuICAgICAgICBfU1NFQ0EsXG4gICAgICAgIF9TU0VDSyxcbiAgICAgICAgX1NTRUNLTUQsXG4gICAgXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbKCkgPT4gQ29tcGxldGVkTXVsdGlwYXJ0VXBsb2FkLCB7IFtfeE5dOiBfQ01VbywgW19oUF06IDEgfV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfdUkgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFjYyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWNjXyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWNjX18gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFjcyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWNzXyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWN0IH1dLFxuICAgICAgICBbMSwgeyBbX2hIXTogX3hhbW9zIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhcnAgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFlYm8gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfSU1fIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX0lOTV8gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFzc2VjYSB9XSxcbiAgICAgICAgWygpID0+IFNTRUN1c3RvbWVyS2V5LCB7IFtfaEhdOiBfeGFzc2VjayB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNzZWNrTSB9XSxcbiAgICBdLFxuXTtcbnZhciBDb25kaXRpb24gPSBbMywgbjAsIF9DbywgMCwgW19IRUNSRSwgX0tQRV0sIFswLCAwXV07XG52YXIgQ29udGludWF0aW9uRXZlbnQgPSBbMywgbjAsIF9DRSwgMCwgW10sIFtdXTtcbnZhciBDb3B5T2JqZWN0T3V0cHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0NPTyxcbiAgICAwLFxuICAgIFtfQ09SLCBfRSwgX0NTVkksIF9WSSwgX1NTRSwgX1NTRUNBLCBfU1NFQ0tNRCwgX1NTRUtNU0tJLCBfU1NFS01TRUMsIF9CS0UsIF9SQ10sXG4gICAgW1xuICAgICAgICBbKCkgPT4gQ29weU9iamVjdFJlc3VsdCwgMTZdLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWNzdmkgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGF2aSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNzZSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNzZWNhIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhc3NlY2tNIH1dLFxuICAgICAgICBbKCkgPT4gU1NFS01TS2V5SWQsIHsgW19oSF06IF94YXNzZWFra2kgfV0sXG4gICAgICAgIFsoKSA9PiBTU0VLTVNFbmNyeXB0aW9uQ29udGV4dCwgeyBbX2hIXTogX3hhc3NlYyB9XSxcbiAgICAgICAgWzIsIHsgW19oSF06IF94YXNzZWJrZSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXJjIH1dLFxuICAgIF0sXG5dO1xudmFyIENvcHlPYmplY3RSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0NPUm8sXG4gICAgMCxcbiAgICBbXG4gICAgICAgIF9BQ0xfLFxuICAgICAgICBfQixcbiAgICAgICAgX0NDLFxuICAgICAgICBfQ0EsXG4gICAgICAgIF9DRG8sXG4gICAgICAgIF9DRW8sXG4gICAgICAgIF9DTCxcbiAgICAgICAgX0NUbyxcbiAgICAgICAgX0NTLFxuICAgICAgICBfQ1NJTSxcbiAgICAgICAgX0NTSU1TLFxuICAgICAgICBfQ1NJTk0sXG4gICAgICAgIF9DU0lVUyxcbiAgICAgICAgX0V4LFxuICAgICAgICBfR0ZDLFxuICAgICAgICBfR1IsXG4gICAgICAgIF9HUkFDUCxcbiAgICAgICAgX0dXQUNQLFxuICAgICAgICBfSU0sXG4gICAgICAgIF9JTk0sXG4gICAgICAgIF9LLFxuICAgICAgICBfTSxcbiAgICAgICAgX01ELFxuICAgICAgICBfVEQsXG4gICAgICAgIF9TU0UsXG4gICAgICAgIF9TQyxcbiAgICAgICAgX1dSTCxcbiAgICAgICAgX1NTRUNBLFxuICAgICAgICBfU1NFQ0ssXG4gICAgICAgIF9TU0VDS01ELFxuICAgICAgICBfU1NFS01TS0ksXG4gICAgICAgIF9TU0VLTVNFQyxcbiAgICAgICAgX0JLRSxcbiAgICAgICAgX0NTU1NFQ0EsXG4gICAgICAgIF9DU1NTRUNLLFxuICAgICAgICBfQ1NTU0VDS01ELFxuICAgICAgICBfUlAsXG4gICAgICAgIF9UYWcsXG4gICAgICAgIF9PTE0sXG4gICAgICAgIF9PTFJVRCxcbiAgICAgICAgX09MTEhTLFxuICAgICAgICBfRUJPLFxuICAgICAgICBfRVNCTyxcbiAgICBdLFxuICAgIFtcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWEgfV0sXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oSF06IF9DQ18gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFjYSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF9DRF8gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfQ0VfIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX0NMXyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF9DVF8gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFjc19fIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhY3NpbSB9XSxcbiAgICAgICAgWzQsIHsgW19oSF06IF94YWNzaW1zIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhY3Npbm0gfV0sXG4gICAgICAgIFs0LCB7IFtfaEhdOiBfeGFjc2l1cyB9XSxcbiAgICAgICAgWzQsIHsgW19oSF06IF9FeCB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWdmYyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWdyIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZ3JhIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZ3dhIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX0lNXyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF9JTk1fIH1dLFxuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFsxMjggfCAwLCB7IFtfaFBIXTogX3hhbSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YW1kIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhdGQgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFzc2UgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFzYyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXdybCB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNzZWNhIH1dLFxuICAgICAgICBbKCkgPT4gU1NFQ3VzdG9tZXJLZXksIHsgW19oSF06IF94YXNzZWNrIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhc3NlY2tNIH1dLFxuICAgICAgICBbKCkgPT4gU1NFS01TS2V5SWQsIHsgW19oSF06IF94YXNzZWFra2kgfV0sXG4gICAgICAgIFsoKSA9PiBTU0VLTVNFbmNyeXB0aW9uQ29udGV4dCwgeyBbX2hIXTogX3hhc3NlYyB9XSxcbiAgICAgICAgWzIsIHsgW19oSF06IF94YXNzZWJrZSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWNzc3NlY2EgfV0sXG4gICAgICAgIFsoKSA9PiBDb3B5U291cmNlU1NFQ3VzdG9tZXJLZXksIHsgW19oSF06IF94YWNzc3NlY2sgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFjc3NzZWNrTSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXJwIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhdCB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YW9sbSB9XSxcbiAgICAgICAgWzUsIHsgW19oSF06IF94YW9scnVkIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhb2xsaCB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNlYm8gfV0sXG4gICAgXSxcbl07XG52YXIgQ29weU9iamVjdFJlc3VsdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9DT1IsXG4gICAgMCxcbiAgICBbX0VUYSwgX0xNLCBfQ1QsIF9DQ1JDLCBfQ0NSQ0MsIF9DQ1JDTlZNRSwgX0NTSEEsIF9DU0hBaF0sXG4gICAgWzAsIDQsIDAsIDAsIDAsIDAsIDAsIDBdLFxuXTtcbnZhciBDb3B5UGFydFJlc3VsdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9DUFIsXG4gICAgMCxcbiAgICBbX0VUYSwgX0xNLCBfQ0NSQywgX0NDUkNDLCBfQ0NSQ05WTUUsIF9DU0hBLCBfQ1NIQWhdLFxuICAgIFswLCA0LCAwLCAwLCAwLCAwLCAwXSxcbl07XG52YXIgQ09SU0NvbmZpZ3VyYXRpb24gPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfQ09SU0MsXG4gICAgMCxcbiAgICBbX0NPUlNSXSxcbiAgICBbWygpID0+IENPUlNSdWxlcywgeyBbX3hOXTogX0NPUlNSdSwgW194Rl06IDEgfV1dLFxuXTtcbnZhciBDT1JTUnVsZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9DT1JTUnUsXG4gICAgMCxcbiAgICBbX0lELCBfQUgsIF9BTSwgX0FPLCBfRUgsIF9NQVNdLFxuICAgIFtcbiAgICAgICAgMCxcbiAgICAgICAgWzY0IHwgMCwgeyBbX3hOXTogX0FIbCwgW194Rl06IDEgfV0sXG4gICAgICAgIFs2NCB8IDAsIHsgW194Tl06IF9BTWwsIFtfeEZdOiAxIH1dLFxuICAgICAgICBbNjQgfCAwLCB7IFtfeE5dOiBfQU9sLCBbX3hGXTogMSB9XSxcbiAgICAgICAgWzY0IHwgMCwgeyBbX3hOXTogX0VIeCwgW194Rl06IDEgfV0sXG4gICAgICAgIDEsXG4gICAgXSxcbl07XG52YXIgQ3JlYXRlQnVja2V0Q29uZmlndXJhdGlvbiA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9DQkMsXG4gICAgMCxcbiAgICBbX0xDLCBfTCwgX0IsIF9UXSxcbiAgICBbMCwgKCkgPT4gTG9jYXRpb25JbmZvLCAoKSA9PiBCdWNrZXRJbmZvLCBbKCkgPT4gVGFnU2V0LCAwXV0sXG5dO1xudmFyIENyZWF0ZUJ1Y2tldE1ldGFkYXRhQ29uZmlndXJhdGlvblJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfQ0JNQ1IsXG4gICAgMCxcbiAgICBbX0IsIF9DTUQsIF9DQSwgX01DLCBfRUJPXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oSF06IF9DTSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNjYSB9XSxcbiAgICAgICAgWygpID0+IE1ldGFkYXRhQ29uZmlndXJhdGlvbiwgeyBbX3hOXTogX01DLCBbX2hQXTogMSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICBdLFxuXTtcbnZhciBDcmVhdGVCdWNrZXRNZXRhZGF0YVRhYmxlQ29uZmlndXJhdGlvblJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfQ0JNVENSLFxuICAgIDAsXG4gICAgW19CLCBfQ01ELCBfQ0EsIF9NVEMsIF9FQk9dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hIXTogX0NNIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhc2NhIH1dLFxuICAgICAgICBbKCkgPT4gTWV0YWRhdGFUYWJsZUNvbmZpZ3VyYXRpb24sIHsgW194Tl06IF9NVEMsIFtfaFBdOiAxIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZWJvIH1dLFxuICAgIF0sXG5dO1xudmFyIENyZWF0ZUJ1Y2tldE91dHB1dCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9DQk8sXG4gICAgMCxcbiAgICBbX0wsIF9CQV0sXG4gICAgW1xuICAgICAgICBbMCwgeyBbX2hIXTogX0wgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFiYSB9XSxcbiAgICBdLFxuXTtcbnZhciBDcmVhdGVCdWNrZXRSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0NCUixcbiAgICAwLFxuICAgIFtfQUNMXywgX0IsIF9DQkMsIF9HRkMsIF9HUiwgX0dSQUNQLCBfR1csIF9HV0FDUCwgX09MRUZCLCBfT09dLFxuICAgIFtcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWEgfV0sXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWygpID0+IENyZWF0ZUJ1Y2tldENvbmZpZ3VyYXRpb24sIHsgW194Tl06IF9DQkMsIFtfaFBdOiAxIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZ2ZjIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZ3IgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFncmEgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFndyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWd3YSB9XSxcbiAgICAgICAgWzIsIHsgW19oSF06IF94YWJvbGUgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFvbyB9XSxcbiAgICBdLFxuXTtcbnZhciBDcmVhdGVNdWx0aXBhcnRVcGxvYWRPdXRwdXQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfQ01VT3IsXG4gICAgeyBbX3hOXTogX0lNVVIgfSxcbiAgICBbX0FELCBfQVJJLCBfQiwgX0ssIF9VSSwgX1NTRSwgX1NTRUNBLCBfU1NFQ0tNRCwgX1NTRUtNU0tJLCBfU1NFS01TRUMsIF9CS0UsIF9SQywgX0NBLCBfQ1RdLFxuICAgIFtcbiAgICAgICAgWzQsIHsgW19oSF06IF94YWFkIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhYXJpIH1dLFxuICAgICAgICBbMCwgeyBbX3hOXTogX0IgfV0sXG4gICAgICAgIDAsXG4gICAgICAgIDAsXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFzc2UgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFzc2VjYSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNzZWNrTSB9XSxcbiAgICAgICAgWygpID0+IFNTRUtNU0tleUlkLCB7IFtfaEhdOiBfeGFzc2Vha2tpIH1dLFxuICAgICAgICBbKCkgPT4gU1NFS01TRW5jcnlwdGlvbkNvbnRleHQsIHsgW19oSF06IF94YXNzZWMgfV0sXG4gICAgICAgIFsyLCB7IFtfaEhdOiBfeGFzc2Via2UgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFyYyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWNhIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhY3QgfV0sXG4gICAgXSxcbl07XG52YXIgQ3JlYXRlTXVsdGlwYXJ0VXBsb2FkUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9DTVVScixcbiAgICAwLFxuICAgIFtcbiAgICAgICAgX0FDTF8sXG4gICAgICAgIF9CLFxuICAgICAgICBfQ0MsXG4gICAgICAgIF9DRG8sXG4gICAgICAgIF9DRW8sXG4gICAgICAgIF9DTCxcbiAgICAgICAgX0NUbyxcbiAgICAgICAgX0V4LFxuICAgICAgICBfR0ZDLFxuICAgICAgICBfR1IsXG4gICAgICAgIF9HUkFDUCxcbiAgICAgICAgX0dXQUNQLFxuICAgICAgICBfSyxcbiAgICAgICAgX00sXG4gICAgICAgIF9TU0UsXG4gICAgICAgIF9TQyxcbiAgICAgICAgX1dSTCxcbiAgICAgICAgX1NTRUNBLFxuICAgICAgICBfU1NFQ0ssXG4gICAgICAgIF9TU0VDS01ELFxuICAgICAgICBfU1NFS01TS0ksXG4gICAgICAgIF9TU0VLTVNFQyxcbiAgICAgICAgX0JLRSxcbiAgICAgICAgX1JQLFxuICAgICAgICBfVGFnLFxuICAgICAgICBfT0xNLFxuICAgICAgICBfT0xSVUQsXG4gICAgICAgIF9PTExIUyxcbiAgICAgICAgX0VCTyxcbiAgICAgICAgX0NBLFxuICAgICAgICBfQ1QsXG4gICAgXSxcbiAgICBbXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFhIH1dLFxuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfQ0NfIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX0NEXyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF9DRV8gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfQ0xfIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX0NUXyB9XSxcbiAgICAgICAgWzQsIHsgW19oSF06IF9FeCB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWdmYyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWdyIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZ3JhIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZ3dhIH1dLFxuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFsxMjggfCAwLCB7IFtfaFBIXTogX3hhbSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNzZSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNjIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhd3JsIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhc3NlY2EgfV0sXG4gICAgICAgIFsoKSA9PiBTU0VDdXN0b21lcktleSwgeyBbX2hIXTogX3hhc3NlY2sgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFzc2Vja00gfV0sXG4gICAgICAgIFsoKSA9PiBTU0VLTVNLZXlJZCwgeyBbX2hIXTogX3hhc3NlYWtraSB9XSxcbiAgICAgICAgWygpID0+IFNTRUtNU0VuY3J5cHRpb25Db250ZXh0LCB7IFtfaEhdOiBfeGFzc2VjIH1dLFxuICAgICAgICBbMiwgeyBbX2hIXTogX3hhc3NlYmtlIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhcnAgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGF0IH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhb2xtIH1dLFxuICAgICAgICBbNSwgeyBbX2hIXTogX3hhb2xydWQgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFvbGxoIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZWJvIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhY2EgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFjdCB9XSxcbiAgICBdLFxuXTtcbnZhciBDcmVhdGVTZXNzaW9uT3V0cHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0NTTyxcbiAgICB7IFtfeE5dOiBfQ1NSIH0sXG4gICAgW19TU0UsIF9TU0VLTVNLSSwgX1NTRUtNU0VDLCBfQktFLCBfQ3JdLFxuICAgIFtcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNzZSB9XSxcbiAgICAgICAgWygpID0+IFNTRUtNU0tleUlkLCB7IFtfaEhdOiBfeGFzc2Vha2tpIH1dLFxuICAgICAgICBbKCkgPT4gU1NFS01TRW5jcnlwdGlvbkNvbnRleHQsIHsgW19oSF06IF94YXNzZWMgfV0sXG4gICAgICAgIFsyLCB7IFtfaEhdOiBfeGFzc2Via2UgfV0sXG4gICAgICAgIFsoKSA9PiBTZXNzaW9uQ3JlZGVudGlhbHMsIHsgW194Tl06IF9DciB9XSxcbiAgICBdLFxuXTtcbnZhciBDcmVhdGVTZXNzaW9uUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9DU1JyLFxuICAgIDAsXG4gICAgW19TTSwgX0IsIF9TU0UsIF9TU0VLTVNLSSwgX1NTRUtNU0VDLCBfQktFXSxcbiAgICBbXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFjc20gfV0sXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNzZSB9XSxcbiAgICAgICAgWygpID0+IFNTRUtNU0tleUlkLCB7IFtfaEhdOiBfeGFzc2Vha2tpIH1dLFxuICAgICAgICBbKCkgPT4gU1NFS01TRW5jcnlwdGlvbkNvbnRleHQsIHsgW19oSF06IF94YXNzZWMgfV0sXG4gICAgICAgIFsyLCB7IFtfaEhdOiBfeGFzc2Via2UgfV0sXG4gICAgXSxcbl07XG52YXIgQ1NWSW5wdXQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfQ1NWSW4sXG4gICAgMCxcbiAgICBbX0ZISSwgX0NvbSwgX1FFQywgX1JELCBfRkQsIF9RQywgX0FRUkRdLFxuICAgIFswLCAwLCAwLCAwLCAwLCAwLCAyXSxcbl07XG52YXIgQ1NWT3V0cHV0ID0gWzMsIG4wLCBfQ1NWTywgMCwgW19RRiwgX1FFQywgX1JELCBfRkQsIF9RQ10sIFswLCAwLCAwLCAwLCAwXV07XG52YXIgRGVmYXVsdFJldGVudGlvbiA9IFszLCBuMCwgX0RSZSwgMCwgW19NbywgX0QsIF9ZXSwgWzAsIDEsIDFdXTtcbnZhciBEZWxldGUgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfRGUsXG4gICAgMCxcbiAgICBbX09iLCBfUV0sXG4gICAgW1soKSA9PiBPYmplY3RJZGVudGlmaWVyTGlzdCwgeyBbX3hOXTogX09iaiwgW194Rl06IDEgfV0sIDJdLFxuXTtcbnZhciBEZWxldGVCdWNrZXRBbmFseXRpY3NDb25maWd1cmF0aW9uUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9EQkFDUixcbiAgICAwLFxuICAgIFtfQiwgX0ksIF9FQk9dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hRXTogX2kgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFlYm8gfV0sXG4gICAgXSxcbl07XG52YXIgRGVsZXRlQnVja2V0Q29yc1JlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfREJDUixcbiAgICAwLFxuICAgIFtfQiwgX0VCT10sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFlYm8gfV0sXG4gICAgXSxcbl07XG52YXIgRGVsZXRlQnVja2V0RW5jcnlwdGlvblJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfREJFUixcbiAgICAwLFxuICAgIFtfQiwgX0VCT10sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFlYm8gfV0sXG4gICAgXSxcbl07XG52YXIgRGVsZXRlQnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvblJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfREJJVENSLFxuICAgIDAsXG4gICAgW19CLCBfSSwgX0VCT10sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfaSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICBdLFxuXTtcbnZhciBEZWxldGVCdWNrZXRJbnZlbnRvcnlDb25maWd1cmF0aW9uUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9EQklDUixcbiAgICAwLFxuICAgIFtfQiwgX0ksIF9FQk9dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hRXTogX2kgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFlYm8gfV0sXG4gICAgXSxcbl07XG52YXIgRGVsZXRlQnVja2V0TGlmZWN5Y2xlUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9EQkxSLFxuICAgIDAsXG4gICAgW19CLCBfRUJPXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICBdLFxuXTtcbnZhciBEZWxldGVCdWNrZXRNZXRhZGF0YUNvbmZpZ3VyYXRpb25SZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0RCTUNSLFxuICAgIDAsXG4gICAgW19CLCBfRUJPXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICBdLFxuXTtcbnZhciBEZWxldGVCdWNrZXRNZXRhZGF0YVRhYmxlQ29uZmlndXJhdGlvblJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfREJNVENSLFxuICAgIDAsXG4gICAgW19CLCBfRUJPXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICBdLFxuXTtcbnZhciBEZWxldGVCdWNrZXRNZXRyaWNzQ29uZmlndXJhdGlvblJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfREJNQ1JlLFxuICAgIDAsXG4gICAgW19CLCBfSSwgX0VCT10sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfaSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICBdLFxuXTtcbnZhciBEZWxldGVCdWNrZXRPd25lcnNoaXBDb250cm9sc1JlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfREJPQ1IsXG4gICAgMCxcbiAgICBbX0IsIF9FQk9dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZWJvIH1dLFxuICAgIF0sXG5dO1xudmFyIERlbGV0ZUJ1Y2tldFBvbGljeVJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfREJQUixcbiAgICAwLFxuICAgIFtfQiwgX0VCT10sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFlYm8gfV0sXG4gICAgXSxcbl07XG52YXIgRGVsZXRlQnVja2V0UmVwbGljYXRpb25SZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0RCUlIsXG4gICAgMCxcbiAgICBbX0IsIF9FQk9dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZWJvIH1dLFxuICAgIF0sXG5dO1xudmFyIERlbGV0ZUJ1Y2tldFJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfREJSLFxuICAgIDAsXG4gICAgW19CLCBfRUJPXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICBdLFxuXTtcbnZhciBEZWxldGVCdWNrZXRUYWdnaW5nUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9EQlRSLFxuICAgIDAsXG4gICAgW19CLCBfRUJPXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICBdLFxuXTtcbnZhciBEZWxldGVCdWNrZXRXZWJzaXRlUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9EQldSLFxuICAgIDAsXG4gICAgW19CLCBfRUJPXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICBdLFxuXTtcbnZhciBEZWxldGVkT2JqZWN0ID0gWzMsIG4wLCBfRE8sIDAsIFtfSywgX1ZJLCBfRE0sIF9ETVZJXSwgWzAsIDAsIDIsIDBdXTtcbnZhciBEZWxldGVNYXJrZXJFbnRyeSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9ETUUsXG4gICAgMCxcbiAgICBbX08sIF9LLCBfVkksIF9JTCwgX0xNXSxcbiAgICBbKCkgPT4gT3duZXIsIDAsIDAsIDIsIDRdLFxuXTtcbnZhciBEZWxldGVNYXJrZXJSZXBsaWNhdGlvbiA9IFszLCBuMCwgX0RNUiwgMCwgW19TXSwgWzBdXTtcbnZhciBEZWxldGVPYmplY3RPdXRwdXQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfRE9PLFxuICAgIDAsXG4gICAgW19ETSwgX1ZJLCBfUkNdLFxuICAgIFtcbiAgICAgICAgWzIsIHsgW19oSF06IF94YWRtIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhdmkgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFyYyB9XSxcbiAgICBdLFxuXTtcbnZhciBEZWxldGVPYmplY3RSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0RPUixcbiAgICAwLFxuICAgIFtfQiwgX0ssIF9NRkEsIF9WSSwgX1JQLCBfQkdSLCBfRUJPLCBfSU0sIF9JTUxNVCwgX0lNU10sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YW1fIH1dLFxuICAgICAgICBbMCwgeyBbX2hRXTogX3ZJIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhcnAgfV0sXG4gICAgICAgIFsyLCB7IFtfaEhdOiBfeGFiZ3IgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFlYm8gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfSU1fIH1dLFxuICAgICAgICBbNiwgeyBbX2hIXTogX3hhaW1sbXQgfV0sXG4gICAgICAgIFsxLCB7IFtfaEhdOiBfeGFpbXMgfV0sXG4gICAgXSxcbl07XG52YXIgRGVsZXRlT2JqZWN0c091dHB1dCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9ET09lLFxuICAgIHsgW194Tl06IF9EUmVsIH0sXG4gICAgW19EZWwsIF9SQywgX0VyXSxcbiAgICBbXG4gICAgICAgIFsoKSA9PiBEZWxldGVkT2JqZWN0cywgeyBbX3hGXTogMSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXJjIH1dLFxuICAgICAgICBbKCkgPT4gRXJyb3JzLCB7IFtfeE5dOiBfRXJyLCBbX3hGXTogMSB9XSxcbiAgICBdLFxuXTtcbnZhciBEZWxldGVPYmplY3RzUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9ET1JlLFxuICAgIDAsXG4gICAgW19CLCBfRGUsIF9NRkEsIF9SUCwgX0JHUiwgX0VCTywgX0NBXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWygpID0+IERlbGV0ZSwgeyBbX3hOXTogX0RlLCBbX2hQXTogMSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YW1fIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhcnAgfV0sXG4gICAgICAgIFsyLCB7IFtfaEhdOiBfeGFiZ3IgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFlYm8gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFzY2EgfV0sXG4gICAgXSxcbl07XG52YXIgRGVsZXRlT2JqZWN0VGFnZ2luZ091dHB1dCA9IFszLCBuMCwgX0RPVE8sIDAsIFtfVkldLCBbWzAsIHsgW19oSF06IF94YXZpIH1dXV07XG52YXIgRGVsZXRlT2JqZWN0VGFnZ2luZ1JlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfRE9UUixcbiAgICAwLFxuICAgIFtfQiwgX0ssIF9WSSwgX0VCT10sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oUV06IF92SSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICBdLFxuXTtcbnZhciBEZWxldGVQdWJsaWNBY2Nlc3NCbG9ja1JlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfRFBBQlIsXG4gICAgMCxcbiAgICBbX0IsIF9FQk9dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZWJvIH1dLFxuICAgIF0sXG5dO1xudmFyIERlc3RpbmF0aW9uID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0RlcyxcbiAgICAwLFxuICAgIFtfQiwgX0EsIF9TQywgX0FDVCwgX0VDLCBfUlQsIF9NZV0sXG4gICAgWzAsIDAsIDAsICgpID0+IEFjY2Vzc0NvbnRyb2xUcmFuc2xhdGlvbiwgKCkgPT4gRW5jcnlwdGlvbkNvbmZpZ3VyYXRpb24sICgpID0+IFJlcGxpY2F0aW9uVGltZSwgKCkgPT4gTWV0cmljc10sXG5dO1xudmFyIERlc3RpbmF0aW9uUmVzdWx0ID0gWzMsIG4wLCBfRFJlcywgMCwgW19UQlQsIF9UQkEsIF9UTl0sIFswLCAwLCAwXV07XG52YXIgRW5jcnlwdGlvbiA9IFszLCBuMCwgX0VuLCAwLCBbX0VULCBfS01TS0ksIF9LTVNDXSwgWzAsIFsoKSA9PiBTU0VLTVNLZXlJZCwgMF0sIDBdXTtcbnZhciBFbmNyeXB0aW9uQ29uZmlndXJhdGlvbiA9IFszLCBuMCwgX0VDLCAwLCBbX1JLS0lEXSwgWzBdXTtcbnZhciBFbmNyeXB0aW9uVHlwZU1pc21hdGNoID0gWy0zLCBuMCwgX0VUTSwgeyBbX2VdOiBfYywgW19oRV06IDQwMCB9LCBbXSwgW11dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoRW5jcnlwdGlvblR5cGVNaXNtYXRjaCwgRW5jcnlwdGlvblR5cGVNaXNtYXRjaCQxKTtcbnZhciBFbmRFdmVudCA9IFszLCBuMCwgX0VFLCAwLCBbXSwgW11dO1xudmFyIF9FcnJvciA9IFszLCBuMCwgX0VyciwgMCwgW19LLCBfVkksIF9Db2QsIF9NZXNdLCBbMCwgMCwgMCwgMF1dO1xudmFyIEVycm9yRGV0YWlscyA9IFszLCBuMCwgX0VELCAwLCBbX0VDciwgX0VNXSwgWzAsIDBdXTtcbnZhciBFcnJvckRvY3VtZW50ID0gWzMsIG4wLCBfRURyLCAwLCBbX0tdLCBbMF1dO1xudmFyIEV2ZW50QnJpZGdlQ29uZmlndXJhdGlvbiA9IFszLCBuMCwgX0VCQywgMCwgW10sIFtdXTtcbnZhciBFeGlzdGluZ09iamVjdFJlcGxpY2F0aW9uID0gWzMsIG4wLCBfRU9SLCAwLCBbX1NdLCBbMF1dO1xudmFyIEZpbHRlclJ1bGUgPSBbMywgbjAsIF9GUiwgMCwgW19OLCBfVl0sIFswLCAwXV07XG52YXIgR2V0QnVja2V0QWJhY091dHB1dCA9IFszLCBuMCwgX0dCQU8sIDAsIFtfQVNdLCBbWygpID0+IEFiYWNTdGF0dXMsIDE2XV1dO1xudmFyIEdldEJ1Y2tldEFiYWNSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dCQVIsXG4gICAgMCxcbiAgICBbX0IsIF9FQk9dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZWJvIH1dLFxuICAgIF0sXG5dO1xudmFyIEdldEJ1Y2tldEFjY2VsZXJhdGVDb25maWd1cmF0aW9uT3V0cHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dCQUNPLFxuICAgIHsgW194Tl06IF9BQyB9LFxuICAgIFtfUywgX1JDXSxcbiAgICBbMCwgWzAsIHsgW19oSF06IF94YXJjIH1dXSxcbl07XG52YXIgR2V0QnVja2V0QWNjZWxlcmF0ZUNvbmZpZ3VyYXRpb25SZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dCQUNSLFxuICAgIDAsXG4gICAgW19CLCBfRUJPLCBfUlBdLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZWJvIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhcnAgfV0sXG4gICAgXSxcbl07XG52YXIgR2V0QnVja2V0QWNsT3V0cHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dCQU9lLFxuICAgIHsgW194Tl06IF9BQ1AgfSxcbiAgICBbX08sIF9HXSxcbiAgICBbKCkgPT4gT3duZXIsIFsoKSA9PiBHcmFudHMsIHsgW194Tl06IF9BQ0wgfV1dLFxuXTtcbnZhciBHZXRCdWNrZXRBY2xSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dCQVJlLFxuICAgIDAsXG4gICAgW19CLCBfRUJPXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICBdLFxuXTtcbnZhciBHZXRCdWNrZXRBbmFseXRpY3NDb25maWd1cmF0aW9uT3V0cHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dCQUNPZSxcbiAgICAwLFxuICAgIFtfQUNuXSxcbiAgICBbWygpID0+IEFuYWx5dGljc0NvbmZpZ3VyYXRpb24sIDE2XV0sXG5dO1xudmFyIEdldEJ1Y2tldEFuYWx5dGljc0NvbmZpZ3VyYXRpb25SZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dCQUNSZSxcbiAgICAwLFxuICAgIFtfQiwgX0ksIF9FQk9dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hRXTogX2kgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFlYm8gfV0sXG4gICAgXSxcbl07XG52YXIgR2V0QnVja2V0Q29yc091dHB1dCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HQkNPLFxuICAgIHsgW194Tl06IF9DT1JTQyB9LFxuICAgIFtfQ09SU1JdLFxuICAgIFtbKCkgPT4gQ09SU1J1bGVzLCB7IFtfeE5dOiBfQ09SU1J1LCBbX3hGXTogMSB9XV0sXG5dO1xudmFyIEdldEJ1Y2tldENvcnNSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dCQ1IsXG4gICAgMCxcbiAgICBbX0IsIF9FQk9dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZWJvIH1dLFxuICAgIF0sXG5dO1xudmFyIEdldEJ1Y2tldEVuY3J5cHRpb25PdXRwdXQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfR0JFTyxcbiAgICAwLFxuICAgIFtfU1NFQ10sXG4gICAgW1soKSA9PiBTZXJ2ZXJTaWRlRW5jcnlwdGlvbkNvbmZpZ3VyYXRpb24sIDE2XV0sXG5dO1xudmFyIEdldEJ1Y2tldEVuY3J5cHRpb25SZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dCRVIsXG4gICAgMCxcbiAgICBbX0IsIF9FQk9dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZWJvIH1dLFxuICAgIF0sXG5dO1xudmFyIEdldEJ1Y2tldEludGVsbGlnZW50VGllcmluZ0NvbmZpZ3VyYXRpb25PdXRwdXQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfR0JJVENPLFxuICAgIDAsXG4gICAgW19JVENdLFxuICAgIFtbKCkgPT4gSW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvbiwgMTZdXSxcbl07XG52YXIgR2V0QnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvblJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfR0JJVENSLFxuICAgIDAsXG4gICAgW19CLCBfSSwgX0VCT10sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfaSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICBdLFxuXTtcbnZhciBHZXRCdWNrZXRJbnZlbnRvcnlDb25maWd1cmF0aW9uT3V0cHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dCSUNPLFxuICAgIDAsXG4gICAgW19JQ10sXG4gICAgW1soKSA9PiBJbnZlbnRvcnlDb25maWd1cmF0aW9uLCAxNl1dLFxuXTtcbnZhciBHZXRCdWNrZXRJbnZlbnRvcnlDb25maWd1cmF0aW9uUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HQklDUixcbiAgICAwLFxuICAgIFtfQiwgX0ksIF9FQk9dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hRXTogX2kgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFlYm8gfV0sXG4gICAgXSxcbl07XG52YXIgR2V0QnVja2V0TGlmZWN5Y2xlQ29uZmlndXJhdGlvbk91dHB1dCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HQkxDTyxcbiAgICB7IFtfeE5dOiBfTENpIH0sXG4gICAgW19SLCBfVERNT1NdLFxuICAgIFtcbiAgICAgICAgWygpID0+IExpZmVjeWNsZVJ1bGVzLCB7IFtfeE5dOiBfUnUsIFtfeEZdOiAxIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhdGRtb3MgfV0sXG4gICAgXSxcbl07XG52YXIgR2V0QnVja2V0TGlmZWN5Y2xlQ29uZmlndXJhdGlvblJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfR0JMQ1IsXG4gICAgMCxcbiAgICBbX0IsIF9FQk9dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZWJvIH1dLFxuICAgIF0sXG5dO1xudmFyIEdldEJ1Y2tldExvY2F0aW9uT3V0cHV0ID0gWzMsIG4wLCBfR0JMTywgeyBbX3hOXTogX0xDIH0sIFtfTENdLCBbMF1dO1xudmFyIEdldEJ1Y2tldExvY2F0aW9uUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HQkxSLFxuICAgIDAsXG4gICAgW19CLCBfRUJPXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICBdLFxuXTtcbnZhciBHZXRCdWNrZXRMb2dnaW5nT3V0cHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dCTE9lLFxuICAgIHsgW194Tl06IF9CTFMgfSxcbiAgICBbX0xFXSxcbiAgICBbWygpID0+IExvZ2dpbmdFbmFibGVkLCAwXV0sXG5dO1xudmFyIEdldEJ1Y2tldExvZ2dpbmdSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dCTFJlLFxuICAgIDAsXG4gICAgW19CLCBfRUJPXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICBdLFxuXTtcbnZhciBHZXRCdWNrZXRNZXRhZGF0YUNvbmZpZ3VyYXRpb25PdXRwdXQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfR0JNQ08sXG4gICAgMCxcbiAgICBbX0dCTUNSXSxcbiAgICBbWygpID0+IEdldEJ1Y2tldE1ldGFkYXRhQ29uZmlndXJhdGlvblJlc3VsdCwgMTZdXSxcbl07XG52YXIgR2V0QnVja2V0TWV0YWRhdGFDb25maWd1cmF0aW9uUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HQk1DUmUsXG4gICAgMCxcbiAgICBbX0IsIF9FQk9dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZWJvIH1dLFxuICAgIF0sXG5dO1xudmFyIEdldEJ1Y2tldE1ldGFkYXRhQ29uZmlndXJhdGlvblJlc3VsdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HQk1DUixcbiAgICAwLFxuICAgIFtfTUNSXSxcbiAgICBbKCkgPT4gTWV0YWRhdGFDb25maWd1cmF0aW9uUmVzdWx0XSxcbl07XG52YXIgR2V0QnVja2V0TWV0YWRhdGFUYWJsZUNvbmZpZ3VyYXRpb25PdXRwdXQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfR0JNVENPLFxuICAgIDAsXG4gICAgW19HQk1UQ1JdLFxuICAgIFtbKCkgPT4gR2V0QnVja2V0TWV0YWRhdGFUYWJsZUNvbmZpZ3VyYXRpb25SZXN1bHQsIDE2XV0sXG5dO1xudmFyIEdldEJ1Y2tldE1ldGFkYXRhVGFibGVDb25maWd1cmF0aW9uUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HQk1UQ1JlLFxuICAgIDAsXG4gICAgW19CLCBfRUJPXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICBdLFxuXTtcbnZhciBHZXRCdWNrZXRNZXRhZGF0YVRhYmxlQ29uZmlndXJhdGlvblJlc3VsdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HQk1UQ1IsXG4gICAgMCxcbiAgICBbX01UQ1IsIF9TLCBfRXJyXSxcbiAgICBbKCkgPT4gTWV0YWRhdGFUYWJsZUNvbmZpZ3VyYXRpb25SZXN1bHQsIDAsICgpID0+IEVycm9yRGV0YWlsc10sXG5dO1xudmFyIEdldEJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9uT3V0cHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dCTUNPZSxcbiAgICAwLFxuICAgIFtfTUNlXSxcbiAgICBbWygpID0+IE1ldHJpY3NDb25maWd1cmF0aW9uLCAxNl1dLFxuXTtcbnZhciBHZXRCdWNrZXRNZXRyaWNzQ29uZmlndXJhdGlvblJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfR0JNQ1JldCxcbiAgICAwLFxuICAgIFtfQiwgX0ksIF9FQk9dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hRXTogX2kgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFlYm8gfV0sXG4gICAgXSxcbl07XG52YXIgR2V0QnVja2V0Tm90aWZpY2F0aW9uQ29uZmlndXJhdGlvblJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfR0JOQ1IsXG4gICAgMCxcbiAgICBbX0IsIF9FQk9dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZWJvIH1dLFxuICAgIF0sXG5dO1xudmFyIEdldEJ1Y2tldE93bmVyc2hpcENvbnRyb2xzT3V0cHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dCT0NPLFxuICAgIDAsXG4gICAgW19PQ10sXG4gICAgW1soKSA9PiBPd25lcnNoaXBDb250cm9scywgMTZdXSxcbl07XG52YXIgR2V0QnVja2V0T3duZXJzaGlwQ29udHJvbHNSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dCT0NSLFxuICAgIDAsXG4gICAgW19CLCBfRUJPXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICBdLFxuXTtcbnZhciBHZXRCdWNrZXRQb2xpY3lPdXRwdXQgPSBbMywgbjAsIF9HQlBPLCAwLCBbX1BvXSwgW1swLCAxNl1dXTtcbnZhciBHZXRCdWNrZXRQb2xpY3lSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dCUFIsXG4gICAgMCxcbiAgICBbX0IsIF9FQk9dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZWJvIH1dLFxuICAgIF0sXG5dO1xudmFyIEdldEJ1Y2tldFBvbGljeVN0YXR1c091dHB1dCA9IFszLCBuMCwgX0dCUFNPLCAwLCBbX1BTXSwgW1soKSA9PiBQb2xpY3lTdGF0dXMsIDE2XV1dO1xudmFyIEdldEJ1Y2tldFBvbGljeVN0YXR1c1JlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfR0JQU1IsXG4gICAgMCxcbiAgICBbX0IsIF9FQk9dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZWJvIH1dLFxuICAgIF0sXG5dO1xudmFyIEdldEJ1Y2tldFJlcGxpY2F0aW9uT3V0cHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dCUk8sXG4gICAgMCxcbiAgICBbX1JDZV0sXG4gICAgW1soKSA9PiBSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb24sIDE2XV0sXG5dO1xudmFyIEdldEJ1Y2tldFJlcGxpY2F0aW9uUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HQlJSLFxuICAgIDAsXG4gICAgW19CLCBfRUJPXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICBdLFxuXTtcbnZhciBHZXRCdWNrZXRSZXF1ZXN0UGF5bWVudE91dHB1dCA9IFszLCBuMCwgX0dCUlBPLCB7IFtfeE5dOiBfUlBDIH0sIFtfUGF5XSwgWzBdXTtcbnZhciBHZXRCdWNrZXRSZXF1ZXN0UGF5bWVudFJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfR0JSUFIsXG4gICAgMCxcbiAgICBbX0IsIF9FQk9dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZWJvIH1dLFxuICAgIF0sXG5dO1xudmFyIEdldEJ1Y2tldFRhZ2dpbmdPdXRwdXQgPSBbMywgbjAsIF9HQlRPLCB7IFtfeE5dOiBfVGFnIH0sIFtfVFNdLCBbWygpID0+IFRhZ1NldCwgMF1dXTtcbnZhciBHZXRCdWNrZXRUYWdnaW5nUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HQlRSLFxuICAgIDAsXG4gICAgW19CLCBfRUJPXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICBdLFxuXTtcbnZhciBHZXRCdWNrZXRWZXJzaW9uaW5nT3V0cHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dCVk8sXG4gICAgeyBbX3hOXTogX1ZDIH0sXG4gICAgW19TLCBfTUZBRF0sXG4gICAgWzAsIFswLCB7IFtfeE5dOiBfTURmIH1dXSxcbl07XG52YXIgR2V0QnVja2V0VmVyc2lvbmluZ1JlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfR0JWUixcbiAgICAwLFxuICAgIFtfQiwgX0VCT10sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFlYm8gfV0sXG4gICAgXSxcbl07XG52YXIgR2V0QnVja2V0V2Vic2l0ZU91dHB1dCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HQldPLFxuICAgIHsgW194Tl06IF9XQyB9LFxuICAgIFtfUkFSVCwgX0lEbiwgX0VEciwgX1JSXSxcbiAgICBbKCkgPT4gUmVkaXJlY3RBbGxSZXF1ZXN0c1RvLCAoKSA9PiBJbmRleERvY3VtZW50LCAoKSA9PiBFcnJvckRvY3VtZW50LCBbKCkgPT4gUm91dGluZ1J1bGVzLCAwXV0sXG5dO1xudmFyIEdldEJ1Y2tldFdlYnNpdGVSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dCV1IsXG4gICAgMCxcbiAgICBbX0IsIF9FQk9dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZWJvIH1dLFxuICAgIF0sXG5dO1xudmFyIEdldE9iamVjdEFjbE91dHB1dCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HT0FPLFxuICAgIHsgW194Tl06IF9BQ1AgfSxcbiAgICBbX08sIF9HLCBfUkNdLFxuICAgIFsoKSA9PiBPd25lciwgWygpID0+IEdyYW50cywgeyBbX3hOXTogX0FDTCB9XSwgWzAsIHsgW19oSF06IF94YXJjIH1dXSxcbl07XG52YXIgR2V0T2JqZWN0QWNsUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HT0FSLFxuICAgIDAsXG4gICAgW19CLCBfSywgX1ZJLCBfUlAsIF9FQk9dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfdkkgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFycCB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICBdLFxuXTtcbnZhciBHZXRPYmplY3RBdHRyaWJ1dGVzT3V0cHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dPQU9lLFxuICAgIHsgW194Tl06IF9HT0FSZSB9LFxuICAgIFtfRE0sIF9MTSwgX1ZJLCBfUkMsIF9FVGEsIF9DLCBfT1AsIF9TQywgX09TXSxcbiAgICBbXG4gICAgICAgIFsyLCB7IFtfaEhdOiBfeGFkbSB9XSxcbiAgICAgICAgWzQsIHsgW19oSF06IF9MTV8gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGF2aSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXJjIH1dLFxuICAgICAgICAwLFxuICAgICAgICAoKSA9PiBDaGVja3N1bSxcbiAgICAgICAgWygpID0+IEdldE9iamVjdEF0dHJpYnV0ZXNQYXJ0cywgMF0sXG4gICAgICAgIDAsXG4gICAgICAgIDEsXG4gICAgXSxcbl07XG52YXIgR2V0T2JqZWN0QXR0cmlidXRlc1BhcnRzID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dPQVAsXG4gICAgMCxcbiAgICBbX1RQQywgX1BOTSwgX05QTk0sIF9NUCwgX0lULCBfUGFdLFxuICAgIFtbMSwgeyBbX3hOXTogX1BDIH1dLCAwLCAwLCAxLCAyLCBbKCkgPT4gUGFydHNMaXN0LCB7IFtfeE5dOiBfUGFyLCBbX3hGXTogMSB9XV0sXG5dO1xudmFyIEdldE9iamVjdEF0dHJpYnV0ZXNSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dPQVJldCxcbiAgICAwLFxuICAgIFtfQiwgX0ssIF9WSSwgX01QLCBfUE5NLCBfU1NFQ0EsIF9TU0VDSywgX1NTRUNLTUQsIF9SUCwgX0VCTywgX09BXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hRXTogX3ZJIH1dLFxuICAgICAgICBbMSwgeyBbX2hIXTogX3hhbXAgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFwbm0gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFzc2VjYSB9XSxcbiAgICAgICAgWygpID0+IFNTRUN1c3RvbWVyS2V5LCB7IFtfaEhdOiBfeGFzc2VjayB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNzZWNrTSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXJwIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZWJvIH1dLFxuICAgICAgICBbNjQgfCAwLCB7IFtfaEhdOiBfeGFvYSB9XSxcbiAgICBdLFxuXTtcbnZhciBHZXRPYmplY3RMZWdhbEhvbGRPdXRwdXQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfR09MSE8sXG4gICAgMCxcbiAgICBbX0xIXSxcbiAgICBbWygpID0+IE9iamVjdExvY2tMZWdhbEhvbGQsIHsgW194Tl06IF9MSCwgW19oUF06IDEgfV1dLFxuXTtcbnZhciBHZXRPYmplY3RMZWdhbEhvbGRSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dPTEhSLFxuICAgIDAsXG4gICAgW19CLCBfSywgX1ZJLCBfUlAsIF9FQk9dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfdkkgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFycCB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICBdLFxuXTtcbnZhciBHZXRPYmplY3RMb2NrQ29uZmlndXJhdGlvbk91dHB1dCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HT0xDTyxcbiAgICAwLFxuICAgIFtfT0xDXSxcbiAgICBbWygpID0+IE9iamVjdExvY2tDb25maWd1cmF0aW9uLCAxNl1dLFxuXTtcbnZhciBHZXRPYmplY3RMb2NrQ29uZmlndXJhdGlvblJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfR09MQ1IsXG4gICAgMCxcbiAgICBbX0IsIF9FQk9dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZWJvIH1dLFxuICAgIF0sXG5dO1xudmFyIEdldE9iamVjdE91dHB1dCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HT08sXG4gICAgMCxcbiAgICBbXG4gICAgICAgIF9CbyxcbiAgICAgICAgX0RNLFxuICAgICAgICBfQVIsXG4gICAgICAgIF9FLFxuICAgICAgICBfUmUsXG4gICAgICAgIF9MTSxcbiAgICAgICAgX0NMbyxcbiAgICAgICAgX0VUYSxcbiAgICAgICAgX0NDUkMsXG4gICAgICAgIF9DQ1JDQyxcbiAgICAgICAgX0NDUkNOVk1FLFxuICAgICAgICBfQ1NIQSxcbiAgICAgICAgX0NTSEFoLFxuICAgICAgICBfQ1QsXG4gICAgICAgIF9NTSxcbiAgICAgICAgX1ZJLFxuICAgICAgICBfQ0MsXG4gICAgICAgIF9DRG8sXG4gICAgICAgIF9DRW8sXG4gICAgICAgIF9DTCxcbiAgICAgICAgX0NSLFxuICAgICAgICBfQ1RvLFxuICAgICAgICBfRXgsXG4gICAgICAgIF9FUyxcbiAgICAgICAgX1dSTCxcbiAgICAgICAgX1NTRSxcbiAgICAgICAgX00sXG4gICAgICAgIF9TU0VDQSxcbiAgICAgICAgX1NTRUNLTUQsXG4gICAgICAgIF9TU0VLTVNLSSxcbiAgICAgICAgX0JLRSxcbiAgICAgICAgX1NDLFxuICAgICAgICBfUkMsXG4gICAgICAgIF9SUyxcbiAgICAgICAgX1BDLFxuICAgICAgICBfVEMsXG4gICAgICAgIF9PTE0sXG4gICAgICAgIF9PTFJVRCxcbiAgICAgICAgX09MTEhTLFxuICAgIF0sXG4gICAgW1xuICAgICAgICBbKCkgPT4gU3RyZWFtaW5nQmxvYiwgMTZdLFxuICAgICAgICBbMiwgeyBbX2hIXTogX3hhZG0gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfYXIgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFlIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhciB9XSxcbiAgICAgICAgWzQsIHsgW19oSF06IF9MTV8gfV0sXG4gICAgICAgIFsxLCB7IFtfaEhdOiBfQ0xfXyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF9FVGEgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFjYyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWNjXyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWNjX18gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFjcyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWNzXyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWN0IH1dLFxuICAgICAgICBbMSwgeyBbX2hIXTogX3hhbW0gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGF2aSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF9DQ18gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfQ0RfIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX0NFXyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF9DTF8gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfQ1JfIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX0NUXyB9XSxcbiAgICAgICAgWzQsIHsgW19oSF06IF9FeCB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF9FUyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXdybCB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNzZSB9XSxcbiAgICAgICAgWzEyOCB8IDAsIHsgW19oUEhdOiBfeGFtIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhc3NlY2EgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFzc2Vja00gfV0sXG4gICAgICAgIFsoKSA9PiBTU0VLTVNLZXlJZCwgeyBbX2hIXTogX3hhc3NlYWtraSB9XSxcbiAgICAgICAgWzIsIHsgW19oSF06IF94YXNzZWJrZSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNjIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhcmMgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFycyB9XSxcbiAgICAgICAgWzEsIHsgW19oSF06IF94YW1wYyB9XSxcbiAgICAgICAgWzEsIHsgW19oSF06IF94YXRjIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhb2xtIH1dLFxuICAgICAgICBbNSwgeyBbX2hIXTogX3hhb2xydWQgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFvbGxoIH1dLFxuICAgIF0sXG5dO1xudmFyIEdldE9iamVjdFJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfR09SLFxuICAgIDAsXG4gICAgW1xuICAgICAgICBfQixcbiAgICAgICAgX0lNLFxuICAgICAgICBfSU1TZixcbiAgICAgICAgX0lOTSxcbiAgICAgICAgX0lVUyxcbiAgICAgICAgX0ssXG4gICAgICAgIF9SYSxcbiAgICAgICAgX1JDQyxcbiAgICAgICAgX1JDRCxcbiAgICAgICAgX1JDRSxcbiAgICAgICAgX1JDTCxcbiAgICAgICAgX1JDVCxcbiAgICAgICAgX1JFLFxuICAgICAgICBfVkksXG4gICAgICAgIF9TU0VDQSxcbiAgICAgICAgX1NTRUNLLFxuICAgICAgICBfU1NFQ0tNRCxcbiAgICAgICAgX1JQLFxuICAgICAgICBfUE4sXG4gICAgICAgIF9FQk8sXG4gICAgICAgIF9DTWgsXG4gICAgXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oSF06IF9JTV8gfV0sXG4gICAgICAgIFs0LCB7IFtfaEhdOiBfSU1TXyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF9JTk1fIH1dLFxuICAgICAgICBbNCwgeyBbX2hIXTogX0lVU18gfV0sXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oSF06IF9SYSB9XSxcbiAgICAgICAgWzAsIHsgW19oUV06IF9yY2MgfV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfcmNkIH1dLFxuICAgICAgICBbMCwgeyBbX2hRXTogX3JjZSB9XSxcbiAgICAgICAgWzAsIHsgW19oUV06IF9yY2wgfV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfcmN0IH1dLFxuICAgICAgICBbNiwgeyBbX2hRXTogX3JlIH1dLFxuICAgICAgICBbMCwgeyBbX2hRXTogX3ZJIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhc3NlY2EgfV0sXG4gICAgICAgIFsoKSA9PiBTU0VDdXN0b21lcktleSwgeyBbX2hIXTogX3hhc3NlY2sgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFzc2Vja00gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFycCB9XSxcbiAgICAgICAgWzEsIHsgW19oUV06IF9wTiB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWNtIH1dLFxuICAgIF0sXG5dO1xudmFyIEdldE9iamVjdFJldGVudGlvbk91dHB1dCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HT1JPLFxuICAgIDAsXG4gICAgW19SZXRdLFxuICAgIFtbKCkgPT4gT2JqZWN0TG9ja1JldGVudGlvbiwgeyBbX3hOXTogX1JldCwgW19oUF06IDEgfV1dLFxuXTtcbnZhciBHZXRPYmplY3RSZXRlbnRpb25SZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dPUlIsXG4gICAgMCxcbiAgICBbX0IsIF9LLCBfVkksIF9SUCwgX0VCT10sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oUV06IF92SSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXJwIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZWJvIH1dLFxuICAgIF0sXG5dO1xudmFyIEdldE9iamVjdFRhZ2dpbmdPdXRwdXQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfR09UTyxcbiAgICB7IFtfeE5dOiBfVGFnIH0sXG4gICAgW19WSSwgX1RTXSxcbiAgICBbXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGF2aSB9XSxcbiAgICAgICAgWygpID0+IFRhZ1NldCwgMF0sXG4gICAgXSxcbl07XG52YXIgR2V0T2JqZWN0VGFnZ2luZ1JlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfR09UUixcbiAgICAwLFxuICAgIFtfQiwgX0ssIF9WSSwgX0VCTywgX1JQXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hRXTogX3ZJIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZWJvIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhcnAgfV0sXG4gICAgXSxcbl07XG52YXIgR2V0T2JqZWN0VG9ycmVudE91dHB1dCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HT1RPZSxcbiAgICAwLFxuICAgIFtfQm8sIF9SQ10sXG4gICAgW1xuICAgICAgICBbKCkgPT4gU3RyZWFtaW5nQmxvYiwgMTZdLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhcmMgfV0sXG4gICAgXSxcbl07XG52YXIgR2V0T2JqZWN0VG9ycmVudFJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfR09UUmUsXG4gICAgMCxcbiAgICBbX0IsIF9LLCBfUlAsIF9FQk9dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFycCB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICBdLFxuXTtcbnZhciBHZXRQdWJsaWNBY2Nlc3NCbG9ja091dHB1dCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HUEFCTyxcbiAgICAwLFxuICAgIFtfUEFCQ10sXG4gICAgW1soKSA9PiBQdWJsaWNBY2Nlc3NCbG9ja0NvbmZpZ3VyYXRpb24sIDE2XV0sXG5dO1xudmFyIEdldFB1YmxpY0FjY2Vzc0Jsb2NrUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HUEFCUixcbiAgICAwLFxuICAgIFtfQiwgX0VCT10sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFlYm8gfV0sXG4gICAgXSxcbl07XG52YXIgR2xhY2llckpvYlBhcmFtZXRlcnMgPSBbMywgbjAsIF9HSlAsIDAsIFtfVGldLCBbMF1dO1xudmFyIEdyYW50ID0gWzMsIG4wLCBfR3IsIDAsIFtfR3JhLCBfUGVdLCBbWygpID0+IEdyYW50ZWUsIHsgW194Tm1dOiBbX3gsIF9oaV0gfV0sIDBdXTtcbnZhciBHcmFudGVlID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dyYSxcbiAgICAwLFxuICAgIFtfRE4sIF9FQSwgX0lELCBfVVJJLCBfVHldLFxuICAgIFswLCAwLCAwLCAwLCBbMCwgeyBbX3hOXTogX3hzLCBbX3hBXTogMSB9XV0sXG5dO1xudmFyIEhlYWRCdWNrZXRPdXRwdXQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfSEJPLFxuICAgIDAsXG4gICAgW19CQSwgX0JMVCwgX0JMTiwgX0JSLCBfQVBBXSxcbiAgICBbXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFiYSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWJsdCB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWJsbiB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWJyIH1dLFxuICAgICAgICBbMiwgeyBbX2hIXTogX3hhYXBhIH1dLFxuICAgIF0sXG5dO1xudmFyIEhlYWRCdWNrZXRSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0hCUixcbiAgICAwLFxuICAgIFtfQiwgX0VCT10sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFlYm8gfV0sXG4gICAgXSxcbl07XG52YXIgSGVhZE9iamVjdE91dHB1dCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9IT08sXG4gICAgMCxcbiAgICBbXG4gICAgICAgIF9ETSxcbiAgICAgICAgX0FSLFxuICAgICAgICBfRSxcbiAgICAgICAgX1JlLFxuICAgICAgICBfQVNyLFxuICAgICAgICBfTE0sXG4gICAgICAgIF9DTG8sXG4gICAgICAgIF9DQ1JDLFxuICAgICAgICBfQ0NSQ0MsXG4gICAgICAgIF9DQ1JDTlZNRSxcbiAgICAgICAgX0NTSEEsXG4gICAgICAgIF9DU0hBaCxcbiAgICAgICAgX0NULFxuICAgICAgICBfRVRhLFxuICAgICAgICBfTU0sXG4gICAgICAgIF9WSSxcbiAgICAgICAgX0NDLFxuICAgICAgICBfQ0RvLFxuICAgICAgICBfQ0VvLFxuICAgICAgICBfQ0wsXG4gICAgICAgIF9DVG8sXG4gICAgICAgIF9DUixcbiAgICAgICAgX0V4LFxuICAgICAgICBfRVMsXG4gICAgICAgIF9XUkwsXG4gICAgICAgIF9TU0UsXG4gICAgICAgIF9NLFxuICAgICAgICBfU1NFQ0EsXG4gICAgICAgIF9TU0VDS01ELFxuICAgICAgICBfU1NFS01TS0ksXG4gICAgICAgIF9CS0UsXG4gICAgICAgIF9TQyxcbiAgICAgICAgX1JDLFxuICAgICAgICBfUlMsXG4gICAgICAgIF9QQyxcbiAgICAgICAgX1RDLFxuICAgICAgICBfT0xNLFxuICAgICAgICBfT0xSVUQsXG4gICAgICAgIF9PTExIUyxcbiAgICBdLFxuICAgIFtcbiAgICAgICAgWzIsIHsgW19oSF06IF94YWRtIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX2FyIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXIgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFhcyB9XSxcbiAgICAgICAgWzQsIHsgW19oSF06IF9MTV8gfV0sXG4gICAgICAgIFsxLCB7IFtfaEhdOiBfQ0xfXyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWNjIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhY2NfIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhY2NfXyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWNzIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhY3NfIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhY3QgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfRVRhIH1dLFxuICAgICAgICBbMSwgeyBbX2hIXTogX3hhbW0gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGF2aSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF9DQ18gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfQ0RfIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX0NFXyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF9DTF8gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfQ1RfIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX0NSXyB9XSxcbiAgICAgICAgWzQsIHsgW19oSF06IF9FeCB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF9FUyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXdybCB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNzZSB9XSxcbiAgICAgICAgWzEyOCB8IDAsIHsgW19oUEhdOiBfeGFtIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhc3NlY2EgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFzc2Vja00gfV0sXG4gICAgICAgIFsoKSA9PiBTU0VLTVNLZXlJZCwgeyBbX2hIXTogX3hhc3NlYWtraSB9XSxcbiAgICAgICAgWzIsIHsgW19oSF06IF94YXNzZWJrZSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNjIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhcmMgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFycyB9XSxcbiAgICAgICAgWzEsIHsgW19oSF06IF94YW1wYyB9XSxcbiAgICAgICAgWzEsIHsgW19oSF06IF94YXRjIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhb2xtIH1dLFxuICAgICAgICBbNSwgeyBbX2hIXTogX3hhb2xydWQgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFvbGxoIH1dLFxuICAgIF0sXG5dO1xudmFyIEhlYWRPYmplY3RSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0hPUixcbiAgICAwLFxuICAgIFtcbiAgICAgICAgX0IsXG4gICAgICAgIF9JTSxcbiAgICAgICAgX0lNU2YsXG4gICAgICAgIF9JTk0sXG4gICAgICAgIF9JVVMsXG4gICAgICAgIF9LLFxuICAgICAgICBfUmEsXG4gICAgICAgIF9SQ0MsXG4gICAgICAgIF9SQ0QsXG4gICAgICAgIF9SQ0UsXG4gICAgICAgIF9SQ0wsXG4gICAgICAgIF9SQ1QsXG4gICAgICAgIF9SRSxcbiAgICAgICAgX1ZJLFxuICAgICAgICBfU1NFQ0EsXG4gICAgICAgIF9TU0VDSyxcbiAgICAgICAgX1NTRUNLTUQsXG4gICAgICAgIF9SUCxcbiAgICAgICAgX1BOLFxuICAgICAgICBfRUJPLFxuICAgICAgICBfQ01oLFxuICAgIF0sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfSU1fIH1dLFxuICAgICAgICBbNCwgeyBbX2hIXTogX0lNU18gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfSU5NXyB9XSxcbiAgICAgICAgWzQsIHsgW19oSF06IF9JVVNfIH1dLFxuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfUmEgfV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfcmNjIH1dLFxuICAgICAgICBbMCwgeyBbX2hRXTogX3JjZCB9XSxcbiAgICAgICAgWzAsIHsgW19oUV06IF9yY2UgfV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfcmNsIH1dLFxuICAgICAgICBbMCwgeyBbX2hRXTogX3JjdCB9XSxcbiAgICAgICAgWzYsIHsgW19oUV06IF9yZSB9XSxcbiAgICAgICAgWzAsIHsgW19oUV06IF92SSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNzZWNhIH1dLFxuICAgICAgICBbKCkgPT4gU1NFQ3VzdG9tZXJLZXksIHsgW19oSF06IF94YXNzZWNrIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhc3NlY2tNIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhcnAgfV0sXG4gICAgICAgIFsxLCB7IFtfaFFdOiBfcE4gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFlYm8gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFjbSB9XSxcbiAgICBdLFxuXTtcbnZhciBJZGVtcG90ZW5jeVBhcmFtZXRlck1pc21hdGNoID0gWy0zLCBuMCwgX0lQTSwgeyBbX2VdOiBfYywgW19oRV06IDQwMCB9LCBbXSwgW11dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoSWRlbXBvdGVuY3lQYXJhbWV0ZXJNaXNtYXRjaCwgSWRlbXBvdGVuY3lQYXJhbWV0ZXJNaXNtYXRjaCQxKTtcbnZhciBJbmRleERvY3VtZW50ID0gWzMsIG4wLCBfSURuLCAwLCBbX1N1XSwgWzBdXTtcbnZhciBJbml0aWF0b3IgPSBbMywgbjAsIF9JbiwgMCwgW19JRCwgX0ROXSwgWzAsIDBdXTtcbnZhciBJbnB1dFNlcmlhbGl6YXRpb24gPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfSVMsXG4gICAgMCxcbiAgICBbX0NTViwgX0NUb20sIF9KU09OLCBfUGFycV0sXG4gICAgWygpID0+IENTVklucHV0LCAwLCAoKSA9PiBKU09OSW5wdXQsICgpID0+IFBhcnF1ZXRJbnB1dF0sXG5dO1xudmFyIEludGVsbGlnZW50VGllcmluZ0FuZE9wZXJhdG9yID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0lUQU8sXG4gICAgMCxcbiAgICBbX1AsIF9UXSxcbiAgICBbMCwgWygpID0+IFRhZ1NldCwgeyBbX3hOXTogX1RhLCBbX3hGXTogMSB9XV0sXG5dO1xudmFyIEludGVsbGlnZW50VGllcmluZ0NvbmZpZ3VyYXRpb24gPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfSVRDLFxuICAgIDAsXG4gICAgW19JLCBfRiwgX1MsIF9UaWVdLFxuICAgIFswLCBbKCkgPT4gSW50ZWxsaWdlbnRUaWVyaW5nRmlsdGVyLCAwXSwgMCwgWygpID0+IFRpZXJpbmdMaXN0LCB7IFtfeE5dOiBfVGllciwgW194Rl06IDEgfV1dLFxuXTtcbnZhciBJbnRlbGxpZ2VudFRpZXJpbmdGaWx0ZXIgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfSVRGLFxuICAgIDAsXG4gICAgW19QLCBfVGEsIF9Bbl0sXG4gICAgWzAsICgpID0+IFRhZywgWygpID0+IEludGVsbGlnZW50VGllcmluZ0FuZE9wZXJhdG9yLCAwXV0sXG5dO1xudmFyIEludmFsaWRPYmplY3RTdGF0ZSA9IFstMywgbjAsIF9JT1MsIHsgW19lXTogX2MsIFtfaEVdOiA0MDMgfSwgW19TQywgX0FUXSwgWzAsIDBdXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKEludmFsaWRPYmplY3RTdGF0ZSwgSW52YWxpZE9iamVjdFN0YXRlJDEpO1xudmFyIEludmFsaWRSZXF1ZXN0ID0gWy0zLCBuMCwgX0lSLCB7IFtfZV06IF9jLCBbX2hFXTogNDAwIH0sIFtdLCBbXV07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihJbnZhbGlkUmVxdWVzdCwgSW52YWxpZFJlcXVlc3QkMSk7XG52YXIgSW52YWxpZFdyaXRlT2Zmc2V0ID0gWy0zLCBuMCwgX0lXTywgeyBbX2VdOiBfYywgW19oRV06IDQwMCB9LCBbXSwgW11dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoSW52YWxpZFdyaXRlT2Zmc2V0LCBJbnZhbGlkV3JpdGVPZmZzZXQkMSk7XG52YXIgSW52ZW50b3J5Q29uZmlndXJhdGlvbiA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9JQyxcbiAgICAwLFxuICAgIFtfRGVzLCBfSUUsIF9GLCBfSSwgX0lPViwgX09GLCBfU2NdLFxuICAgIFtcbiAgICAgICAgWygpID0+IEludmVudG9yeURlc3RpbmF0aW9uLCAwXSxcbiAgICAgICAgMixcbiAgICAgICAgKCkgPT4gSW52ZW50b3J5RmlsdGVyLFxuICAgICAgICAwLFxuICAgICAgICAwLFxuICAgICAgICBbKCkgPT4gSW52ZW50b3J5T3B0aW9uYWxGaWVsZHMsIDBdLFxuICAgICAgICAoKSA9PiBJbnZlbnRvcnlTY2hlZHVsZSxcbiAgICBdLFxuXTtcbnZhciBJbnZlbnRvcnlEZXN0aW5hdGlvbiA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9JRG52LFxuICAgIDAsXG4gICAgW19TQkRdLFxuICAgIFtbKCkgPT4gSW52ZW50b3J5UzNCdWNrZXREZXN0aW5hdGlvbiwgMF1dLFxuXTtcbnZhciBJbnZlbnRvcnlFbmNyeXB0aW9uID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0lFbixcbiAgICAwLFxuICAgIFtfU1NFUywgX1NTRUtNU10sXG4gICAgW1xuICAgICAgICBbKCkgPT4gU1NFUzMsIHsgW194Tl06IF9TUyB9XSxcbiAgICAgICAgWygpID0+IFNTRUtNUywgeyBbX3hOXTogX1NLIH1dLFxuICAgIF0sXG5dO1xudmFyIEludmVudG9yeUZpbHRlciA9IFszLCBuMCwgX0lGLCAwLCBbX1BdLCBbMF1dO1xudmFyIEludmVudG9yeVMzQnVja2V0RGVzdGluYXRpb24gPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfSVNCRCxcbiAgICAwLFxuICAgIFtfQUksIF9CLCBfRm8sIF9QLCBfRW5dLFxuICAgIFswLCAwLCAwLCAwLCBbKCkgPT4gSW52ZW50b3J5RW5jcnlwdGlvbiwgMF1dLFxuXTtcbnZhciBJbnZlbnRvcnlTY2hlZHVsZSA9IFszLCBuMCwgX0lTbiwgMCwgW19Gcl0sIFswXV07XG52YXIgSW52ZW50b3J5VGFibGVDb25maWd1cmF0aW9uID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0lUQ24sXG4gICAgMCxcbiAgICBbX0NTbywgX0VDXSxcbiAgICBbMCwgKCkgPT4gTWV0YWRhdGFUYWJsZUVuY3J5cHRpb25Db25maWd1cmF0aW9uXSxcbl07XG52YXIgSW52ZW50b3J5VGFibGVDb25maWd1cmF0aW9uUmVzdWx0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0lUQ1IsXG4gICAgMCxcbiAgICBbX0NTbywgX1RTYSwgX0VyciwgX1ROYSwgX1RBXSxcbiAgICBbMCwgMCwgKCkgPT4gRXJyb3JEZXRhaWxzLCAwLCAwXSxcbl07XG52YXIgSW52ZW50b3J5VGFibGVDb25maWd1cmF0aW9uVXBkYXRlcyA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9JVENVLFxuICAgIDAsXG4gICAgW19DU28sIF9FQ10sXG4gICAgWzAsICgpID0+IE1ldGFkYXRhVGFibGVFbmNyeXB0aW9uQ29uZmlndXJhdGlvbl0sXG5dO1xudmFyIEpvdXJuYWxUYWJsZUNvbmZpZ3VyYXRpb24gPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfSlRDLFxuICAgIDAsXG4gICAgW19SRWUsIF9FQ10sXG4gICAgWygpID0+IFJlY29yZEV4cGlyYXRpb24sICgpID0+IE1ldGFkYXRhVGFibGVFbmNyeXB0aW9uQ29uZmlndXJhdGlvbl0sXG5dO1xudmFyIEpvdXJuYWxUYWJsZUNvbmZpZ3VyYXRpb25SZXN1bHQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfSlRDUixcbiAgICAwLFxuICAgIFtfVFNhLCBfRXJyLCBfVE5hLCBfVEEsIF9SRWVdLFxuICAgIFswLCAoKSA9PiBFcnJvckRldGFpbHMsIDAsIDAsICgpID0+IFJlY29yZEV4cGlyYXRpb25dLFxuXTtcbnZhciBKb3VybmFsVGFibGVDb25maWd1cmF0aW9uVXBkYXRlcyA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9KVENVLFxuICAgIDAsXG4gICAgW19SRWVdLFxuICAgIFsoKSA9PiBSZWNvcmRFeHBpcmF0aW9uXSxcbl07XG52YXIgSlNPTklucHV0ID0gWzMsIG4wLCBfSlNPTkksIDAsIFtfVHldLCBbMF1dO1xudmFyIEpTT05PdXRwdXQgPSBbMywgbjAsIF9KU09OTywgMCwgW19SRF0sIFswXV07XG52YXIgTGFtYmRhRnVuY3Rpb25Db25maWd1cmF0aW9uID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0xGQyxcbiAgICAwLFxuICAgIFtfSSwgX0xGQSwgX0V2LCBfRl0sXG4gICAgWzAsIFswLCB7IFtfeE5dOiBfQ0YgfV0sIFs2NCB8IDAsIHsgW194Tl06IF9FdmUsIFtfeEZdOiAxIH1dLCBbKCkgPT4gTm90aWZpY2F0aW9uQ29uZmlndXJhdGlvbkZpbHRlciwgMF1dLFxuXTtcbnZhciBMaWZlY3ljbGVFeHBpcmF0aW9uID0gWzMsIG4wLCBfTEVpLCAwLCBbX0RhLCBfRCwgX0VPRE1dLCBbNSwgMSwgMl1dO1xudmFyIExpZmVjeWNsZVJ1bGUgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfTFIsXG4gICAgMCxcbiAgICBbX0UsIF9JRCwgX1AsIF9GLCBfUywgX1RyLCBfTlZULCBfTlZFLCBfQUlNVV0sXG4gICAgW1xuICAgICAgICAoKSA9PiBMaWZlY3ljbGVFeHBpcmF0aW9uLFxuICAgICAgICAwLFxuICAgICAgICAwLFxuICAgICAgICBbKCkgPT4gTGlmZWN5Y2xlUnVsZUZpbHRlciwgMF0sXG4gICAgICAgIDAsXG4gICAgICAgIFsoKSA9PiBUcmFuc2l0aW9uTGlzdCwgeyBbX3hOXTogX1RyYSwgW194Rl06IDEgfV0sXG4gICAgICAgIFsoKSA9PiBOb25jdXJyZW50VmVyc2lvblRyYW5zaXRpb25MaXN0LCB7IFtfeE5dOiBfTlZUbywgW194Rl06IDEgfV0sXG4gICAgICAgICgpID0+IE5vbmN1cnJlbnRWZXJzaW9uRXhwaXJhdGlvbixcbiAgICAgICAgKCkgPT4gQWJvcnRJbmNvbXBsZXRlTXVsdGlwYXJ0VXBsb2FkLFxuICAgIF0sXG5dO1xudmFyIExpZmVjeWNsZVJ1bGVBbmRPcGVyYXRvciA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9MUkFPLFxuICAgIDAsXG4gICAgW19QLCBfVCwgX09TR1QsIF9PU0xUXSxcbiAgICBbMCwgWygpID0+IFRhZ1NldCwgeyBbX3hOXTogX1RhLCBbX3hGXTogMSB9XSwgMSwgMV0sXG5dO1xudmFyIExpZmVjeWNsZVJ1bGVGaWx0ZXIgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfTFJGLFxuICAgIDAsXG4gICAgW19QLCBfVGEsIF9PU0dULCBfT1NMVCwgX0FuXSxcbiAgICBbMCwgKCkgPT4gVGFnLCAxLCAxLCBbKCkgPT4gTGlmZWN5Y2xlUnVsZUFuZE9wZXJhdG9yLCAwXV0sXG5dO1xudmFyIExpc3RCdWNrZXRBbmFseXRpY3NDb25maWd1cmF0aW9uc091dHB1dCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9MQkFDTyxcbiAgICB7IFtfeE5dOiBfTEJBQ1IgfSxcbiAgICBbX0lULCBfQ1RvbiwgX05DVCwgX0FDTG5dLFxuICAgIFsyLCAwLCAwLCBbKCkgPT4gQW5hbHl0aWNzQ29uZmlndXJhdGlvbkxpc3QsIHsgW194Tl06IF9BQ24sIFtfeEZdOiAxIH1dXSxcbl07XG52YXIgTGlzdEJ1Y2tldEFuYWx5dGljc0NvbmZpZ3VyYXRpb25zUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9MQkFDUmksXG4gICAgMCxcbiAgICBbX0IsIF9DVG9uLCBfRUJPXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oUV06IF9jdCB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICBdLFxuXTtcbnZhciBMaXN0QnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvbnNPdXRwdXQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfTEJJVENPLFxuICAgIDAsXG4gICAgW19JVCwgX0NUb24sIF9OQ1QsIF9JVENMXSxcbiAgICBbMiwgMCwgMCwgWygpID0+IEludGVsbGlnZW50VGllcmluZ0NvbmZpZ3VyYXRpb25MaXN0LCB7IFtfeE5dOiBfSVRDLCBbX3hGXTogMSB9XV0sXG5dO1xudmFyIExpc3RCdWNrZXRJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9uc1JlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfTEJJVENSLFxuICAgIDAsXG4gICAgW19CLCBfQ1RvbiwgX0VCT10sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfY3QgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFlYm8gfV0sXG4gICAgXSxcbl07XG52YXIgTGlzdEJ1Y2tldEludmVudG9yeUNvbmZpZ3VyYXRpb25zT3V0cHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0xCSUNPLFxuICAgIHsgW194Tl06IF9MSUNSIH0sXG4gICAgW19DVG9uLCBfSUNMLCBfSVQsIF9OQ1RdLFxuICAgIFswLCBbKCkgPT4gSW52ZW50b3J5Q29uZmlndXJhdGlvbkxpc3QsIHsgW194Tl06IF9JQywgW194Rl06IDEgfV0sIDIsIDBdLFxuXTtcbnZhciBMaXN0QnVja2V0SW52ZW50b3J5Q29uZmlndXJhdGlvbnNSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0xCSUNSLFxuICAgIDAsXG4gICAgW19CLCBfQ1RvbiwgX0VCT10sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfY3QgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFlYm8gfV0sXG4gICAgXSxcbl07XG52YXIgTGlzdEJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9uc091dHB1dCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9MQk1DTyxcbiAgICB7IFtfeE5dOiBfTE1DUiB9LFxuICAgIFtfSVQsIF9DVG9uLCBfTkNULCBfTUNMXSxcbiAgICBbMiwgMCwgMCwgWygpID0+IE1ldHJpY3NDb25maWd1cmF0aW9uTGlzdCwgeyBbX3hOXTogX01DZSwgW194Rl06IDEgfV1dLFxuXTtcbnZhciBMaXN0QnVja2V0TWV0cmljc0NvbmZpZ3VyYXRpb25zUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9MQk1DUixcbiAgICAwLFxuICAgIFtfQiwgX0NUb24sIF9FQk9dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hRXTogX2N0IH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZWJvIH1dLFxuICAgIF0sXG5dO1xudmFyIExpc3RCdWNrZXRzT3V0cHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0xCTyxcbiAgICB7IFtfeE5dOiBfTEFNQlIgfSxcbiAgICBbX0J1LCBfTywgX0NUb24sIF9QXSxcbiAgICBbWygpID0+IEJ1Y2tldHMsIDBdLCAoKSA9PiBPd25lciwgMCwgMF0sXG5dO1xudmFyIExpc3RCdWNrZXRzUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9MQlIsXG4gICAgMCxcbiAgICBbX01CLCBfQ1RvbiwgX1AsIF9CUl0sXG4gICAgW1xuICAgICAgICBbMSwgeyBbX2hRXTogX21iIH1dLFxuICAgICAgICBbMCwgeyBbX2hRXTogX2N0IH1dLFxuICAgICAgICBbMCwgeyBbX2hRXTogX3AgfV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfYnIgfV0sXG4gICAgXSxcbl07XG52YXIgTGlzdERpcmVjdG9yeUJ1Y2tldHNPdXRwdXQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfTERCTyxcbiAgICB7IFtfeE5dOiBfTEFNREJSIH0sXG4gICAgW19CdSwgX0NUb25dLFxuICAgIFtbKCkgPT4gQnVja2V0cywgMF0sIDBdLFxuXTtcbnZhciBMaXN0RGlyZWN0b3J5QnVja2V0c1JlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfTERCUixcbiAgICAwLFxuICAgIFtfQ1RvbiwgX01EQl0sXG4gICAgW1xuICAgICAgICBbMCwgeyBbX2hRXTogX2N0IH1dLFxuICAgICAgICBbMSwgeyBbX2hRXTogX21kYiB9XSxcbiAgICBdLFxuXTtcbnZhciBMaXN0TXVsdGlwYXJ0VXBsb2Fkc091dHB1dCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9MTVVPLFxuICAgIHsgW194Tl06IF9MTVVSIH0sXG4gICAgW19CLCBfS00sIF9VSU0sIF9OS00sIF9QLCBfRGVsaSwgX05VSU0sIF9NVWEsIF9JVCwgX1UsIF9DUG9tLCBfRVRuLCBfUkNdLFxuICAgIFtcbiAgICAgICAgMCxcbiAgICAgICAgMCxcbiAgICAgICAgMCxcbiAgICAgICAgMCxcbiAgICAgICAgMCxcbiAgICAgICAgMCxcbiAgICAgICAgMCxcbiAgICAgICAgMSxcbiAgICAgICAgMixcbiAgICAgICAgWygpID0+IE11bHRpcGFydFVwbG9hZExpc3QsIHsgW194Tl06IF9VcCwgW194Rl06IDEgfV0sXG4gICAgICAgIFsoKSA9PiBDb21tb25QcmVmaXhMaXN0LCB7IFtfeEZdOiAxIH1dLFxuICAgICAgICAwLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhcmMgfV0sXG4gICAgXSxcbl07XG52YXIgTGlzdE11bHRpcGFydFVwbG9hZHNSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0xNVVJpLFxuICAgIDAsXG4gICAgW19CLCBfRGVsaSwgX0VUbiwgX0tNLCBfTVVhLCBfUCwgX1VJTSwgX0VCTywgX1JQXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oUV06IF9kIH1dLFxuICAgICAgICBbMCwgeyBbX2hRXTogX2V0IH1dLFxuICAgICAgICBbMCwgeyBbX2hRXTogX2ttIH1dLFxuICAgICAgICBbMSwgeyBbX2hRXTogX211IH1dLFxuICAgICAgICBbMCwgeyBbX2hRXTogX3AgfV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfdWltIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZWJvIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhcnAgfV0sXG4gICAgXSxcbl07XG52YXIgTGlzdE9iamVjdHNPdXRwdXQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfTE9PLFxuICAgIHsgW194Tl06IF9MQlJpIH0sXG4gICAgW19JVCwgX01hLCBfTk0sIF9Db24sIF9OLCBfUCwgX0RlbGksIF9NSywgX0NQb20sIF9FVG4sIF9SQ10sXG4gICAgW1xuICAgICAgICAyLFxuICAgICAgICAwLFxuICAgICAgICAwLFxuICAgICAgICBbKCkgPT4gT2JqZWN0TGlzdCwgeyBbX3hGXTogMSB9XSxcbiAgICAgICAgMCxcbiAgICAgICAgMCxcbiAgICAgICAgMCxcbiAgICAgICAgMSxcbiAgICAgICAgWygpID0+IENvbW1vblByZWZpeExpc3QsIHsgW194Rl06IDEgfV0sXG4gICAgICAgIDAsXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFyYyB9XSxcbiAgICBdLFxuXTtcbnZhciBMaXN0T2JqZWN0c1JlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfTE9SLFxuICAgIDAsXG4gICAgW19CLCBfRGVsaSwgX0VUbiwgX01hLCBfTUssIF9QLCBfUlAsIF9FQk8sIF9PT0FdLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hRXTogX2QgfV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfZXQgfV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfbSB9XSxcbiAgICAgICAgWzEsIHsgW19oUV06IF9tayB9XSxcbiAgICAgICAgWzAsIHsgW19oUV06IF9wIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhcnAgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFlYm8gfV0sXG4gICAgICAgIFs2NCB8IDAsIHsgW19oSF06IF94YW9vYSB9XSxcbiAgICBdLFxuXTtcbnZhciBMaXN0T2JqZWN0c1YyT3V0cHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0xPVk8sXG4gICAgeyBbX3hOXTogX0xCUmkgfSxcbiAgICBbX0lULCBfQ29uLCBfTiwgX1AsIF9EZWxpLCBfTUssIF9DUG9tLCBfRVRuLCBfS0MsIF9DVG9uLCBfTkNULCBfU0EsIF9SQ10sXG4gICAgW1xuICAgICAgICAyLFxuICAgICAgICBbKCkgPT4gT2JqZWN0TGlzdCwgeyBbX3hGXTogMSB9XSxcbiAgICAgICAgMCxcbiAgICAgICAgMCxcbiAgICAgICAgMCxcbiAgICAgICAgMSxcbiAgICAgICAgWygpID0+IENvbW1vblByZWZpeExpc3QsIHsgW194Rl06IDEgfV0sXG4gICAgICAgIDAsXG4gICAgICAgIDEsXG4gICAgICAgIDAsXG4gICAgICAgIDAsXG4gICAgICAgIDAsXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFyYyB9XSxcbiAgICBdLFxuXTtcbnZhciBMaXN0T2JqZWN0c1YyUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9MT1ZSLFxuICAgIDAsXG4gICAgW19CLCBfRGVsaSwgX0VUbiwgX01LLCBfUCwgX0NUb24sIF9GTywgX1NBLCBfUlAsIF9FQk8sIF9PT0FdLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hRXTogX2QgfV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfZXQgfV0sXG4gICAgICAgIFsxLCB7IFtfaFFdOiBfbWsgfV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfcCB9XSxcbiAgICAgICAgWzAsIHsgW19oUV06IF9jdCB9XSxcbiAgICAgICAgWzIsIHsgW19oUV06IF9mbyB9XSxcbiAgICAgICAgWzAsIHsgW19oUV06IF9zYSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXJwIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZWJvIH1dLFxuICAgICAgICBbNjQgfCAwLCB7IFtfaEhdOiBfeGFvb2EgfV0sXG4gICAgXSxcbl07XG52YXIgTGlzdE9iamVjdFZlcnNpb25zT3V0cHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0xPVk9pLFxuICAgIHsgW194Tl06IF9MVlIgfSxcbiAgICBbX0lULCBfS00sIF9WSU0sIF9OS00sIF9OVklNLCBfVmUsIF9ETWUsIF9OLCBfUCwgX0RlbGksIF9NSywgX0NQb20sIF9FVG4sIF9SQ10sXG4gICAgW1xuICAgICAgICAyLFxuICAgICAgICAwLFxuICAgICAgICAwLFxuICAgICAgICAwLFxuICAgICAgICAwLFxuICAgICAgICBbKCkgPT4gT2JqZWN0VmVyc2lvbkxpc3QsIHsgW194Tl06IF9WZXIsIFtfeEZdOiAxIH1dLFxuICAgICAgICBbKCkgPT4gRGVsZXRlTWFya2VycywgeyBbX3hOXTogX0RNLCBbX3hGXTogMSB9XSxcbiAgICAgICAgMCxcbiAgICAgICAgMCxcbiAgICAgICAgMCxcbiAgICAgICAgMSxcbiAgICAgICAgWygpID0+IENvbW1vblByZWZpeExpc3QsIHsgW194Rl06IDEgfV0sXG4gICAgICAgIDAsXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFyYyB9XSxcbiAgICBdLFxuXTtcbnZhciBMaXN0T2JqZWN0VmVyc2lvbnNSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0xPVlJpLFxuICAgIDAsXG4gICAgW19CLCBfRGVsaSwgX0VUbiwgX0tNLCBfTUssIF9QLCBfVklNLCBfRUJPLCBfUlAsIF9PT0FdLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hRXTogX2QgfV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfZXQgfV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfa20gfV0sXG4gICAgICAgIFsxLCB7IFtfaFFdOiBfbWsgfV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfcCB9XSxcbiAgICAgICAgWzAsIHsgW19oUV06IF92aW0gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFlYm8gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFycCB9XSxcbiAgICAgICAgWzY0IHwgMCwgeyBbX2hIXTogX3hhb29hIH1dLFxuICAgIF0sXG5dO1xudmFyIExpc3RQYXJ0c091dHB1dCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9MUE8sXG4gICAgeyBbX3hOXTogX0xQUiB9LFxuICAgIFtfQUQsIF9BUkksIF9CLCBfSywgX1VJLCBfUE5NLCBfTlBOTSwgX01QLCBfSVQsIF9QYSwgX0luLCBfTywgX1NDLCBfUkMsIF9DQSwgX0NUXSxcbiAgICBbXG4gICAgICAgIFs0LCB7IFtfaEhdOiBfeGFhZCB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWFyaSB9XSxcbiAgICAgICAgMCxcbiAgICAgICAgMCxcbiAgICAgICAgMCxcbiAgICAgICAgMCxcbiAgICAgICAgMCxcbiAgICAgICAgMSxcbiAgICAgICAgMixcbiAgICAgICAgWygpID0+IFBhcnRzLCB7IFtfeE5dOiBfUGFyLCBbX3hGXTogMSB9XSxcbiAgICAgICAgKCkgPT4gSW5pdGlhdG9yLFxuICAgICAgICAoKSA9PiBPd25lcixcbiAgICAgICAgMCxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXJjIH1dLFxuICAgICAgICAwLFxuICAgICAgICAwLFxuICAgIF0sXG5dO1xudmFyIExpc3RQYXJ0c1JlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfTFBSaSxcbiAgICAwLFxuICAgIFtfQiwgX0ssIF9NUCwgX1BOTSwgX1VJLCBfUlAsIF9FQk8sIF9TU0VDQSwgX1NTRUNLLCBfU1NFQ0tNRF0sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzEsIHsgW19oUV06IF9tcCB9XSxcbiAgICAgICAgWzAsIHsgW19oUV06IF9wbm0gfV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfdUkgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFycCB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNzZWNhIH1dLFxuICAgICAgICBbKCkgPT4gU1NFQ3VzdG9tZXJLZXksIHsgW19oSF06IF94YXNzZWNrIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhc3NlY2tNIH1dLFxuICAgIF0sXG5dO1xudmFyIExvY2F0aW9uSW5mbyA9IFszLCBuMCwgX0xJLCAwLCBbX1R5LCBfTl0sIFswLCAwXV07XG52YXIgTG9nZ2luZ0VuYWJsZWQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfTEUsXG4gICAgMCxcbiAgICBbX1RCLCBfVEcsIF9UUCwgX1RPS0ZdLFxuICAgIFswLCBbKCkgPT4gVGFyZ2V0R3JhbnRzLCAwXSwgMCwgWygpID0+IFRhcmdldE9iamVjdEtleUZvcm1hdCwgMF1dLFxuXTtcbnZhciBNZXRhZGF0YUNvbmZpZ3VyYXRpb24gPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfTUMsXG4gICAgMCxcbiAgICBbX0pUQywgX0lUQ25dLFxuICAgIFsoKSA9PiBKb3VybmFsVGFibGVDb25maWd1cmF0aW9uLCAoKSA9PiBJbnZlbnRvcnlUYWJsZUNvbmZpZ3VyYXRpb25dLFxuXTtcbnZhciBNZXRhZGF0YUNvbmZpZ3VyYXRpb25SZXN1bHQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfTUNSLFxuICAgIDAsXG4gICAgW19EUmVzLCBfSlRDUiwgX0lUQ1JdLFxuICAgIFsoKSA9PiBEZXN0aW5hdGlvblJlc3VsdCwgKCkgPT4gSm91cm5hbFRhYmxlQ29uZmlndXJhdGlvblJlc3VsdCwgKCkgPT4gSW52ZW50b3J5VGFibGVDb25maWd1cmF0aW9uUmVzdWx0XSxcbl07XG52YXIgTWV0YWRhdGFFbnRyeSA9IFszLCBuMCwgX01FLCAwLCBbX04sIF9WXSwgWzAsIDBdXTtcbnZhciBNZXRhZGF0YVRhYmxlQ29uZmlndXJhdGlvbiA9IFszLCBuMCwgX01UQywgMCwgW19TVERdLCBbKCkgPT4gUzNUYWJsZXNEZXN0aW5hdGlvbl1dO1xudmFyIE1ldGFkYXRhVGFibGVDb25maWd1cmF0aW9uUmVzdWx0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX01UQ1IsXG4gICAgMCxcbiAgICBbX1NURFJdLFxuICAgIFsoKSA9PiBTM1RhYmxlc0Rlc3RpbmF0aW9uUmVzdWx0XSxcbl07XG52YXIgTWV0YWRhdGFUYWJsZUVuY3J5cHRpb25Db25maWd1cmF0aW9uID0gWzMsIG4wLCBfTVRFQywgMCwgW19TQXMsIF9LS0FdLCBbMCwgMF1dO1xudmFyIE1ldHJpY3MgPSBbMywgbjAsIF9NZSwgMCwgW19TLCBfRVR2XSwgWzAsICgpID0+IFJlcGxpY2F0aW9uVGltZVZhbHVlXV07XG52YXIgTWV0cmljc0FuZE9wZXJhdG9yID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX01BTyxcbiAgICAwLFxuICAgIFtfUCwgX1QsIF9BUEFjXSxcbiAgICBbMCwgWygpID0+IFRhZ1NldCwgeyBbX3hOXTogX1RhLCBbX3hGXTogMSB9XSwgMF0sXG5dO1xudmFyIE1ldHJpY3NDb25maWd1cmF0aW9uID0gWzMsIG4wLCBfTUNlLCAwLCBbX0ksIF9GXSwgWzAsIFsoKSA9PiBNZXRyaWNzRmlsdGVyLCAwXV1dO1xudmFyIE11bHRpcGFydFVwbG9hZCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9NVSxcbiAgICAwLFxuICAgIFtfVUksIF9LLCBfSW5pLCBfU0MsIF9PLCBfSW4sIF9DQSwgX0NUXSxcbiAgICBbMCwgMCwgNCwgMCwgKCkgPT4gT3duZXIsICgpID0+IEluaXRpYXRvciwgMCwgMF0sXG5dO1xudmFyIE5vbmN1cnJlbnRWZXJzaW9uRXhwaXJhdGlvbiA9IFszLCBuMCwgX05WRSwgMCwgW19ORCwgX05OVl0sIFsxLCAxXV07XG52YXIgTm9uY3VycmVudFZlcnNpb25UcmFuc2l0aW9uID0gWzMsIG4wLCBfTlZUbywgMCwgW19ORCwgX1NDLCBfTk5WXSwgWzEsIDAsIDFdXTtcbnZhciBOb1N1Y2hCdWNrZXQgPSBbLTMsIG4wLCBfTlNCLCB7IFtfZV06IF9jLCBbX2hFXTogNDA0IH0sIFtdLCBbXV07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihOb1N1Y2hCdWNrZXQsIE5vU3VjaEJ1Y2tldCQxKTtcbnZhciBOb1N1Y2hLZXkgPSBbLTMsIG4wLCBfTlNLLCB7IFtfZV06IF9jLCBbX2hFXTogNDA0IH0sIFtdLCBbXV07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihOb1N1Y2hLZXksIE5vU3VjaEtleSQxKTtcbnZhciBOb1N1Y2hVcGxvYWQgPSBbLTMsIG4wLCBfTlNVLCB7IFtfZV06IF9jLCBbX2hFXTogNDA0IH0sIFtdLCBbXV07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihOb1N1Y2hVcGxvYWQsIE5vU3VjaFVwbG9hZCQxKTtcbnZhciBOb3RGb3VuZCA9IFstMywgbjAsIF9ORiwgeyBbX2VdOiBfYyB9LCBbXSwgW11dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoTm90Rm91bmQsIE5vdEZvdW5kJDEpO1xudmFyIE5vdGlmaWNhdGlvbkNvbmZpZ3VyYXRpb24gPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfTkMsXG4gICAgMCxcbiAgICBbX1RDbywgX1FDdSwgX0xGQ2EsIF9FQkNdLFxuICAgIFtcbiAgICAgICAgWygpID0+IFRvcGljQ29uZmlndXJhdGlvbkxpc3QsIHsgW194Tl06IF9UQ29wLCBbX3hGXTogMSB9XSxcbiAgICAgICAgWygpID0+IFF1ZXVlQ29uZmlndXJhdGlvbkxpc3QsIHsgW194Tl06IF9RQ3VlLCBbX3hGXTogMSB9XSxcbiAgICAgICAgWygpID0+IExhbWJkYUZ1bmN0aW9uQ29uZmlndXJhdGlvbkxpc3QsIHsgW194Tl06IF9DRkMsIFtfeEZdOiAxIH1dLFxuICAgICAgICAoKSA9PiBFdmVudEJyaWRnZUNvbmZpZ3VyYXRpb24sXG4gICAgXSxcbl07XG52YXIgTm90aWZpY2F0aW9uQ29uZmlndXJhdGlvbkZpbHRlciA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9OQ0YsXG4gICAgMCxcbiAgICBbX0tdLFxuICAgIFtbKCkgPT4gUzNLZXlGaWx0ZXIsIHsgW194Tl06IF9TS2UgfV1dLFxuXTtcbnZhciBfT2JqZWN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX09iaixcbiAgICAwLFxuICAgIFtfSywgX0xNLCBfRVRhLCBfQ0EsIF9DVCwgX1NpLCBfU0MsIF9PLCBfUlNlXSxcbiAgICBbMCwgNCwgMCwgWzY0IHwgMCwgeyBbX3hGXTogMSB9XSwgMCwgMSwgMCwgKCkgPT4gT3duZXIsICgpID0+IFJlc3RvcmVTdGF0dXNdLFxuXTtcbnZhciBPYmplY3RBbHJlYWR5SW5BY3RpdmVUaWVyRXJyb3IgPSBbLTMsIG4wLCBfT0FJQVRFLCB7IFtfZV06IF9jLCBbX2hFXTogNDAzIH0sIFtdLCBbXV07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihPYmplY3RBbHJlYWR5SW5BY3RpdmVUaWVyRXJyb3IsIE9iamVjdEFscmVhZHlJbkFjdGl2ZVRpZXJFcnJvciQxKTtcbnZhciBPYmplY3RJZGVudGlmaWVyID0gWzMsIG4wLCBfT0ksIDAsIFtfSywgX1ZJLCBfRVRhLCBfTE1ULCBfU2ldLCBbMCwgMCwgMCwgNiwgMV1dO1xudmFyIE9iamVjdExvY2tDb25maWd1cmF0aW9uID0gWzMsIG4wLCBfT0xDLCAwLCBbX09MRSwgX1J1XSwgWzAsICgpID0+IE9iamVjdExvY2tSdWxlXV07XG52YXIgT2JqZWN0TG9ja0xlZ2FsSG9sZCA9IFszLCBuMCwgX09MTEgsIDAsIFtfU10sIFswXV07XG52YXIgT2JqZWN0TG9ja1JldGVudGlvbiA9IFszLCBuMCwgX09MUiwgMCwgW19NbywgX1JVRF0sIFswLCA1XV07XG52YXIgT2JqZWN0TG9ja1J1bGUgPSBbMywgbjAsIF9PTFJiLCAwLCBbX0RSZV0sIFsoKSA9PiBEZWZhdWx0UmV0ZW50aW9uXV07XG52YXIgT2JqZWN0Tm90SW5BY3RpdmVUaWVyRXJyb3IgPSBbLTMsIG4wLCBfT05JQVRFLCB7IFtfZV06IF9jLCBbX2hFXTogNDAzIH0sIFtdLCBbXV07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihPYmplY3ROb3RJbkFjdGl2ZVRpZXJFcnJvciwgT2JqZWN0Tm90SW5BY3RpdmVUaWVyRXJyb3IkMSk7XG52YXIgT2JqZWN0UGFydCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9PUGIsXG4gICAgMCxcbiAgICBbX1BOLCBfU2ksIF9DQ1JDLCBfQ0NSQ0MsIF9DQ1JDTlZNRSwgX0NTSEEsIF9DU0hBaF0sXG4gICAgWzEsIDEsIDAsIDAsIDAsIDAsIDBdLFxuXTtcbnZhciBPYmplY3RWZXJzaW9uID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX09WLFxuICAgIDAsXG4gICAgW19FVGEsIF9DQSwgX0NULCBfU2ksIF9TQywgX0ssIF9WSSwgX0lMLCBfTE0sIF9PLCBfUlNlXSxcbiAgICBbMCwgWzY0IHwgMCwgeyBbX3hGXTogMSB9XSwgMCwgMSwgMCwgMCwgMCwgMiwgNCwgKCkgPT4gT3duZXIsICgpID0+IFJlc3RvcmVTdGF0dXNdLFxuXTtcbnZhciBPdXRwdXRMb2NhdGlvbiA9IFszLCBuMCwgX09MLCAwLCBbX1NfXSwgW1soKSA9PiBTM0xvY2F0aW9uLCAwXV1dO1xudmFyIE91dHB1dFNlcmlhbGl6YXRpb24gPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfT1N1LFxuICAgIDAsXG4gICAgW19DU1YsIF9KU09OXSxcbiAgICBbKCkgPT4gQ1NWT3V0cHV0LCAoKSA9PiBKU09OT3V0cHV0XSxcbl07XG52YXIgT3duZXIgPSBbMywgbjAsIF9PLCAwLCBbX0ROLCBfSURdLCBbMCwgMF1dO1xudmFyIE93bmVyc2hpcENvbnRyb2xzID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX09DLFxuICAgIDAsXG4gICAgW19SXSxcbiAgICBbWygpID0+IE93bmVyc2hpcENvbnRyb2xzUnVsZXMsIHsgW194Tl06IF9SdSwgW194Rl06IDEgfV1dLFxuXTtcbnZhciBPd25lcnNoaXBDb250cm9sc1J1bGUgPSBbMywgbjAsIF9PQ1IsIDAsIFtfT09dLCBbMF1dO1xudmFyIFBhcnF1ZXRJbnB1dCA9IFszLCBuMCwgX1BJLCAwLCBbXSwgW11dO1xudmFyIFBhcnQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfUGFyLFxuICAgIDAsXG4gICAgW19QTiwgX0xNLCBfRVRhLCBfU2ksIF9DQ1JDLCBfQ0NSQ0MsIF9DQ1JDTlZNRSwgX0NTSEEsIF9DU0hBaF0sXG4gICAgWzEsIDQsIDAsIDEsIDAsIDAsIDAsIDAsIDBdLFxuXTtcbnZhciBQYXJ0aXRpb25lZFByZWZpeCA9IFszLCBuMCwgX1BQLCB7IFtfeE5dOiBfUFAgfSwgW19QRFNdLCBbMF1dO1xudmFyIFBvbGljeVN0YXR1cyA9IFszLCBuMCwgX1BTLCAwLCBbX0lQXSwgW1syLCB7IFtfeE5dOiBfSVAgfV1dXTtcbnZhciBQcm9ncmVzcyA9IFszLCBuMCwgX1ByLCAwLCBbX0JTLCBfQlAsIF9CUnldLCBbMSwgMSwgMV1dO1xudmFyIFByb2dyZXNzRXZlbnQgPSBbMywgbjAsIF9QRSwgMCwgW19EZXRdLCBbWygpID0+IFByb2dyZXNzLCB7IFtfZVBdOiAxIH1dXV07XG52YXIgUHVibGljQWNjZXNzQmxvY2tDb25maWd1cmF0aW9uID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1BBQkMsXG4gICAgMCxcbiAgICBbX0JQQSwgX0lQQSwgX0JQUCwgX1JQQl0sXG4gICAgW1xuICAgICAgICBbMiwgeyBbX3hOXTogX0JQQSB9XSxcbiAgICAgICAgWzIsIHsgW194Tl06IF9JUEEgfV0sXG4gICAgICAgIFsyLCB7IFtfeE5dOiBfQlBQIH1dLFxuICAgICAgICBbMiwgeyBbX3hOXTogX1JQQiB9XSxcbiAgICBdLFxuXTtcbnZhciBQdXRCdWNrZXRBYmFjUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9QQkFSLFxuICAgIDAsXG4gICAgW19CLCBfQ01ELCBfQ0EsIF9FQk8sIF9BU10sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfQ00gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFzY2EgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFlYm8gfV0sXG4gICAgICAgIFsoKSA9PiBBYmFjU3RhdHVzLCB7IFtfeE5dOiBfQVMsIFtfaFBdOiAxIH1dLFxuICAgIF0sXG5dO1xudmFyIFB1dEJ1Y2tldEFjY2VsZXJhdGVDb25maWd1cmF0aW9uUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9QQkFDUixcbiAgICAwLFxuICAgIFtfQiwgX0FDLCBfRUJPLCBfQ0FdLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbKCkgPT4gQWNjZWxlcmF0ZUNvbmZpZ3VyYXRpb24sIHsgW194Tl06IF9BQywgW19oUF06IDEgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFlYm8gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFzY2EgfV0sXG4gICAgXSxcbl07XG52YXIgUHV0QnVja2V0QWNsUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9QQkFSdSxcbiAgICAwLFxuICAgIFtfQUNMXywgX0FDUCwgX0IsIF9DTUQsIF9DQSwgX0dGQywgX0dSLCBfR1JBQ1AsIF9HVywgX0dXQUNQLCBfRUJPXSxcbiAgICBbXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFhIH1dLFxuICAgICAgICBbKCkgPT4gQWNjZXNzQ29udHJvbFBvbGljeSwgeyBbX3hOXTogX0FDUCwgW19oUF06IDEgfV0sXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oSF06IF9DTSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNjYSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWdmYyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWdyIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZ3JhIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZ3cgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFnd2EgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFlYm8gfV0sXG4gICAgXSxcbl07XG52YXIgUHV0QnVja2V0QW5hbHl0aWNzQ29uZmlndXJhdGlvblJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfUEJBQ1J1LFxuICAgIDAsXG4gICAgW19CLCBfSSwgX0FDbiwgX0VCT10sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfaSB9XSxcbiAgICAgICAgWygpID0+IEFuYWx5dGljc0NvbmZpZ3VyYXRpb24sIHsgW194Tl06IF9BQ24sIFtfaFBdOiAxIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZWJvIH1dLFxuICAgIF0sXG5dO1xudmFyIFB1dEJ1Y2tldENvcnNSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1BCQ1IsXG4gICAgMCxcbiAgICBbX0IsIF9DT1JTQywgX0NNRCwgX0NBLCBfRUJPXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWygpID0+IENPUlNDb25maWd1cmF0aW9uLCB7IFtfeE5dOiBfQ09SU0MsIFtfaFBdOiAxIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX0NNIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhc2NhIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZWJvIH1dLFxuICAgIF0sXG5dO1xudmFyIFB1dEJ1Y2tldEVuY3J5cHRpb25SZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1BCRVIsXG4gICAgMCxcbiAgICBbX0IsIF9DTUQsIF9DQSwgX1NTRUMsIF9FQk9dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hIXTogX0NNIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhc2NhIH1dLFxuICAgICAgICBbKCkgPT4gU2VydmVyU2lkZUVuY3J5cHRpb25Db25maWd1cmF0aW9uLCB7IFtfeE5dOiBfU1NFQywgW19oUF06IDEgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFlYm8gfV0sXG4gICAgXSxcbl07XG52YXIgUHV0QnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvblJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfUEJJVENSLFxuICAgIDAsXG4gICAgW19CLCBfSSwgX0VCTywgX0lUQ10sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfaSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICAgICAgWygpID0+IEludGVsbGlnZW50VGllcmluZ0NvbmZpZ3VyYXRpb24sIHsgW194Tl06IF9JVEMsIFtfaFBdOiAxIH1dLFxuICAgIF0sXG5dO1xudmFyIFB1dEJ1Y2tldEludmVudG9yeUNvbmZpZ3VyYXRpb25SZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1BCSUNSLFxuICAgIDAsXG4gICAgW19CLCBfSSwgX0lDLCBfRUJPXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oUV06IF9pIH1dLFxuICAgICAgICBbKCkgPT4gSW52ZW50b3J5Q29uZmlndXJhdGlvbiwgeyBbX3hOXTogX0lDLCBbX2hQXTogMSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICBdLFxuXTtcbnZhciBQdXRCdWNrZXRMaWZlY3ljbGVDb25maWd1cmF0aW9uT3V0cHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1BCTENPLFxuICAgIDAsXG4gICAgW19URE1PU10sXG4gICAgW1swLCB7IFtfaEhdOiBfeGF0ZG1vcyB9XV0sXG5dO1xudmFyIFB1dEJ1Y2tldExpZmVjeWNsZUNvbmZpZ3VyYXRpb25SZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1BCTENSLFxuICAgIDAsXG4gICAgW19CLCBfQ0EsIF9MQ2ksIF9FQk8sIF9URE1PU10sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFzY2EgfV0sXG4gICAgICAgIFsoKSA9PiBCdWNrZXRMaWZlY3ljbGVDb25maWd1cmF0aW9uLCB7IFtfeE5dOiBfTENpLCBbX2hQXTogMSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXRkbW9zIH1dLFxuICAgIF0sXG5dO1xudmFyIFB1dEJ1Y2tldExvZ2dpbmdSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1BCTFIsXG4gICAgMCxcbiAgICBbX0IsIF9CTFMsIF9DTUQsIF9DQSwgX0VCT10sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFsoKSA9PiBCdWNrZXRMb2dnaW5nU3RhdHVzLCB7IFtfeE5dOiBfQkxTLCBbX2hQXTogMSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF9DTSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNjYSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICBdLFxuXTtcbnZhciBQdXRCdWNrZXRNZXRyaWNzQ29uZmlndXJhdGlvblJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfUEJNQ1IsXG4gICAgMCxcbiAgICBbX0IsIF9JLCBfTUNlLCBfRUJPXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oUV06IF9pIH1dLFxuICAgICAgICBbKCkgPT4gTWV0cmljc0NvbmZpZ3VyYXRpb24sIHsgW194Tl06IF9NQ2UsIFtfaFBdOiAxIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZWJvIH1dLFxuICAgIF0sXG5dO1xudmFyIFB1dEJ1Y2tldE5vdGlmaWNhdGlvbkNvbmZpZ3VyYXRpb25SZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1BCTkNSLFxuICAgIDAsXG4gICAgW19CLCBfTkMsIF9FQk8sIF9TRFZdLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbKCkgPT4gTm90aWZpY2F0aW9uQ29uZmlndXJhdGlvbiwgeyBbX3hOXTogX05DLCBbX2hQXTogMSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICAgICAgWzIsIHsgW19oSF06IF94YXNkdiB9XSxcbiAgICBdLFxuXTtcbnZhciBQdXRCdWNrZXRPd25lcnNoaXBDb250cm9sc1JlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfUEJPQ1IsXG4gICAgMCxcbiAgICBbX0IsIF9DTUQsIF9FQk8sIF9PQywgX0NBXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oSF06IF9DTSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICAgICAgWygpID0+IE93bmVyc2hpcENvbnRyb2xzLCB7IFtfeE5dOiBfT0MsIFtfaFBdOiAxIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhc2NhIH1dLFxuICAgIF0sXG5dO1xudmFyIFB1dEJ1Y2tldFBvbGljeVJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfUEJQUixcbiAgICAwLFxuICAgIFtfQiwgX0NNRCwgX0NBLCBfQ1JTQkEsIF9QbywgX0VCT10sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfQ00gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFzY2EgfV0sXG4gICAgICAgIFsyLCB7IFtfaEhdOiBfeGFjcnNiYSB9XSxcbiAgICAgICAgWzAsIDE2XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICBdLFxuXTtcbnZhciBQdXRCdWNrZXRSZXBsaWNhdGlvblJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfUEJSUixcbiAgICAwLFxuICAgIFtfQiwgX0NNRCwgX0NBLCBfUkNlLCBfVG8sIF9FQk9dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hIXTogX0NNIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhc2NhIH1dLFxuICAgICAgICBbKCkgPT4gUmVwbGljYXRpb25Db25maWd1cmF0aW9uLCB7IFtfeE5dOiBfUkNlLCBbX2hQXTogMSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWJvbHQgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFlYm8gfV0sXG4gICAgXSxcbl07XG52YXIgUHV0QnVja2V0UmVxdWVzdFBheW1lbnRSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1BCUlBSLFxuICAgIDAsXG4gICAgW19CLCBfQ01ELCBfQ0EsIF9SUEMsIF9FQk9dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hIXTogX0NNIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhc2NhIH1dLFxuICAgICAgICBbKCkgPT4gUmVxdWVzdFBheW1lbnRDb25maWd1cmF0aW9uLCB7IFtfeE5dOiBfUlBDLCBbX2hQXTogMSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICBdLFxuXTtcbnZhciBQdXRCdWNrZXRUYWdnaW5nUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9QQlRSLFxuICAgIDAsXG4gICAgW19CLCBfQ01ELCBfQ0EsIF9UYWcsIF9FQk9dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hIXTogX0NNIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhc2NhIH1dLFxuICAgICAgICBbKCkgPT4gVGFnZ2luZywgeyBbX3hOXTogX1RhZywgW19oUF06IDEgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFlYm8gfV0sXG4gICAgXSxcbl07XG52YXIgUHV0QnVja2V0VmVyc2lvbmluZ1JlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfUEJWUixcbiAgICAwLFxuICAgIFtfQiwgX0NNRCwgX0NBLCBfTUZBLCBfVkMsIF9FQk9dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hIXTogX0NNIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhc2NhIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhbV8gfV0sXG4gICAgICAgIFsoKSA9PiBWZXJzaW9uaW5nQ29uZmlndXJhdGlvbiwgeyBbX3hOXTogX1ZDLCBbX2hQXTogMSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICBdLFxuXTtcbnZhciBQdXRCdWNrZXRXZWJzaXRlUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9QQldSLFxuICAgIDAsXG4gICAgW19CLCBfQ01ELCBfQ0EsIF9XQywgX0VCT10sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfQ00gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFzY2EgfV0sXG4gICAgICAgIFsoKSA9PiBXZWJzaXRlQ29uZmlndXJhdGlvbiwgeyBbX3hOXTogX1dDLCBbX2hQXTogMSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICBdLFxuXTtcbnZhciBQdXRPYmplY3RBY2xPdXRwdXQgPSBbMywgbjAsIF9QT0FPLCAwLCBbX1JDXSwgW1swLCB7IFtfaEhdOiBfeGFyYyB9XV1dO1xudmFyIFB1dE9iamVjdEFjbFJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfUE9BUixcbiAgICAwLFxuICAgIFtfQUNMXywgX0FDUCwgX0IsIF9DTUQsIF9DQSwgX0dGQywgX0dSLCBfR1JBQ1AsIF9HVywgX0dXQUNQLCBfSywgX1JQLCBfVkksIF9FQk9dLFxuICAgIFtcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWEgfV0sXG4gICAgICAgIFsoKSA9PiBBY2Nlc3NDb250cm9sUG9saWN5LCB7IFtfeE5dOiBfQUNQLCBbX2hQXTogMSB9XSxcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hIXTogX0NNIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhc2NhIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZ2ZjIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZ3IgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFncmEgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFndyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWd3YSB9XSxcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhcnAgfV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfdkkgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFlYm8gfV0sXG4gICAgXSxcbl07XG52YXIgUHV0T2JqZWN0TGVnYWxIb2xkT3V0cHV0ID0gWzMsIG4wLCBfUE9MSE8sIDAsIFtfUkNdLCBbWzAsIHsgW19oSF06IF94YXJjIH1dXV07XG52YXIgUHV0T2JqZWN0TGVnYWxIb2xkUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9QT0xIUixcbiAgICAwLFxuICAgIFtfQiwgX0ssIF9MSCwgX1JQLCBfVkksIF9DTUQsIF9DQSwgX0VCT10sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWygpID0+IE9iamVjdExvY2tMZWdhbEhvbGQsIHsgW194Tl06IF9MSCwgW19oUF06IDEgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFycCB9XSxcbiAgICAgICAgWzAsIHsgW19oUV06IF92SSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF9DTSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNjYSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICBdLFxuXTtcbnZhciBQdXRPYmplY3RMb2NrQ29uZmlndXJhdGlvbk91dHB1dCA9IFszLCBuMCwgX1BPTENPLCAwLCBbX1JDXSwgW1swLCB7IFtfaEhdOiBfeGFyYyB9XV1dO1xudmFyIFB1dE9iamVjdExvY2tDb25maWd1cmF0aW9uUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9QT0xDUixcbiAgICAwLFxuICAgIFtfQiwgX09MQywgX1JQLCBfVG8sIF9DTUQsIF9DQSwgX0VCT10sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFsoKSA9PiBPYmplY3RMb2NrQ29uZmlndXJhdGlvbiwgeyBbX3hOXTogX09MQywgW19oUF06IDEgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFycCB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWJvbHQgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfQ00gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFzY2EgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFlYm8gfV0sXG4gICAgXSxcbl07XG52YXIgUHV0T2JqZWN0T3V0cHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1BPTyxcbiAgICAwLFxuICAgIFtcbiAgICAgICAgX0UsXG4gICAgICAgIF9FVGEsXG4gICAgICAgIF9DQ1JDLFxuICAgICAgICBfQ0NSQ0MsXG4gICAgICAgIF9DQ1JDTlZNRSxcbiAgICAgICAgX0NTSEEsXG4gICAgICAgIF9DU0hBaCxcbiAgICAgICAgX0NULFxuICAgICAgICBfU1NFLFxuICAgICAgICBfVkksXG4gICAgICAgIF9TU0VDQSxcbiAgICAgICAgX1NTRUNLTUQsXG4gICAgICAgIF9TU0VLTVNLSSxcbiAgICAgICAgX1NTRUtNU0VDLFxuICAgICAgICBfQktFLFxuICAgICAgICBfU2ksXG4gICAgICAgIF9SQyxcbiAgICBdLFxuICAgIFtcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWUgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfRVRhIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhY2MgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFjY18gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFjY19fIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhY3MgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFjc18gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFjdCB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNzZSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXZpIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhc3NlY2EgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFzc2Vja00gfV0sXG4gICAgICAgIFsoKSA9PiBTU0VLTVNLZXlJZCwgeyBbX2hIXTogX3hhc3NlYWtraSB9XSxcbiAgICAgICAgWygpID0+IFNTRUtNU0VuY3J5cHRpb25Db250ZXh0LCB7IFtfaEhdOiBfeGFzc2VjIH1dLFxuICAgICAgICBbMiwgeyBbX2hIXTogX3hhc3NlYmtlIH1dLFxuICAgICAgICBbMSwgeyBbX2hIXTogX3hhb3MgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFyYyB9XSxcbiAgICBdLFxuXTtcbnZhciBQdXRPYmplY3RSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1BPUixcbiAgICAwLFxuICAgIFtcbiAgICAgICAgX0FDTF8sXG4gICAgICAgIF9CbyxcbiAgICAgICAgX0IsXG4gICAgICAgIF9DQyxcbiAgICAgICAgX0NEbyxcbiAgICAgICAgX0NFbyxcbiAgICAgICAgX0NMLFxuICAgICAgICBfQ0xvLFxuICAgICAgICBfQ01ELFxuICAgICAgICBfQ1RvLFxuICAgICAgICBfQ0EsXG4gICAgICAgIF9DQ1JDLFxuICAgICAgICBfQ0NSQ0MsXG4gICAgICAgIF9DQ1JDTlZNRSxcbiAgICAgICAgX0NTSEEsXG4gICAgICAgIF9DU0hBaCxcbiAgICAgICAgX0V4LFxuICAgICAgICBfSU0sXG4gICAgICAgIF9JTk0sXG4gICAgICAgIF9HRkMsXG4gICAgICAgIF9HUixcbiAgICAgICAgX0dSQUNQLFxuICAgICAgICBfR1dBQ1AsXG4gICAgICAgIF9LLFxuICAgICAgICBfV09CLFxuICAgICAgICBfTSxcbiAgICAgICAgX1NTRSxcbiAgICAgICAgX1NDLFxuICAgICAgICBfV1JMLFxuICAgICAgICBfU1NFQ0EsXG4gICAgICAgIF9TU0VDSyxcbiAgICAgICAgX1NTRUNLTUQsXG4gICAgICAgIF9TU0VLTVNLSSxcbiAgICAgICAgX1NTRUtNU0VDLFxuICAgICAgICBfQktFLFxuICAgICAgICBfUlAsXG4gICAgICAgIF9UYWcsXG4gICAgICAgIF9PTE0sXG4gICAgICAgIF9PTFJVRCxcbiAgICAgICAgX09MTEhTLFxuICAgICAgICBfRUJPLFxuICAgIF0sXG4gICAgW1xuICAgICAgICBbMCwgeyBbX2hIXTogX3hhYSB9XSxcbiAgICAgICAgWygpID0+IFN0cmVhbWluZ0Jsb2IsIDE2XSxcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hIXTogX0NDXyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF9DRF8gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfQ0VfIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX0NMXyB9XSxcbiAgICAgICAgWzEsIHsgW19oSF06IF9DTF9fIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX0NNIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX0NUXyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNjYSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWNjIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhY2NfIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhY2NfXyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWNzIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhY3NfIH1dLFxuICAgICAgICBbNCwgeyBbX2hIXTogX0V4IH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX0lNXyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF9JTk1fIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZ2ZjIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZ3IgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFncmEgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFnd2EgfV0sXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzEsIHsgW19oSF06IF94YXdvYiB9XSxcbiAgICAgICAgWzEyOCB8IDAsIHsgW19oUEhdOiBfeGFtIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhc3NlIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhc2MgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGF3cmwgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFzc2VjYSB9XSxcbiAgICAgICAgWygpID0+IFNTRUN1c3RvbWVyS2V5LCB7IFtfaEhdOiBfeGFzc2VjayB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNzZWNrTSB9XSxcbiAgICAgICAgWygpID0+IFNTRUtNU0tleUlkLCB7IFtfaEhdOiBfeGFzc2Vha2tpIH1dLFxuICAgICAgICBbKCkgPT4gU1NFS01TRW5jcnlwdGlvbkNvbnRleHQsIHsgW19oSF06IF94YXNzZWMgfV0sXG4gICAgICAgIFsyLCB7IFtfaEhdOiBfeGFzc2Via2UgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFycCB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXQgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFvbG0gfV0sXG4gICAgICAgIFs1LCB7IFtfaEhdOiBfeGFvbHJ1ZCB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YW9sbGggfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFlYm8gfV0sXG4gICAgXSxcbl07XG52YXIgUHV0T2JqZWN0UmV0ZW50aW9uT3V0cHV0ID0gWzMsIG4wLCBfUE9STywgMCwgW19SQ10sIFtbMCwgeyBbX2hIXTogX3hhcmMgfV1dXTtcbnZhciBQdXRPYmplY3RSZXRlbnRpb25SZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1BPUlIsXG4gICAgMCxcbiAgICBbX0IsIF9LLCBfUmV0LCBfUlAsIF9WSSwgX0JHUiwgX0NNRCwgX0NBLCBfRUJPXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbKCkgPT4gT2JqZWN0TG9ja1JldGVudGlvbiwgeyBbX3hOXTogX1JldCwgW19oUF06IDEgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFycCB9XSxcbiAgICAgICAgWzAsIHsgW19oUV06IF92SSB9XSxcbiAgICAgICAgWzIsIHsgW19oSF06IF94YWJnciB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF9DTSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNjYSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICBdLFxuXTtcbnZhciBQdXRPYmplY3RUYWdnaW5nT3V0cHV0ID0gWzMsIG4wLCBfUE9UTywgMCwgW19WSV0sIFtbMCwgeyBbX2hIXTogX3hhdmkgfV1dXTtcbnZhciBQdXRPYmplY3RUYWdnaW5nUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9QT1RSLFxuICAgIDAsXG4gICAgW19CLCBfSywgX1ZJLCBfQ01ELCBfQ0EsIF9UYWcsIF9FQk8sIF9SUF0sXG4gICAgW1xuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oUV06IF92SSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF9DTSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNjYSB9XSxcbiAgICAgICAgWygpID0+IFRhZ2dpbmcsIHsgW194Tl06IF9UYWcsIFtfaFBdOiAxIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZWJvIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhcnAgfV0sXG4gICAgXSxcbl07XG52YXIgUHV0UHVibGljQWNjZXNzQmxvY2tSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1BQQUJSLFxuICAgIDAsXG4gICAgW19CLCBfQ01ELCBfQ0EsIF9QQUJDLCBfRUJPXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oSF06IF9DTSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNjYSB9XSxcbiAgICAgICAgWygpID0+IFB1YmxpY0FjY2Vzc0Jsb2NrQ29uZmlndXJhdGlvbiwgeyBbX3hOXTogX1BBQkMsIFtfaFBdOiAxIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZWJvIH1dLFxuICAgIF0sXG5dO1xudmFyIFF1ZXVlQ29uZmlndXJhdGlvbiA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9RQ3VlLFxuICAgIDAsXG4gICAgW19JLCBfUUEsIF9FdiwgX0ZdLFxuICAgIFswLCBbMCwgeyBbX3hOXTogX1F1IH1dLCBbNjQgfCAwLCB7IFtfeE5dOiBfRXZlLCBbX3hGXTogMSB9XSwgWygpID0+IE5vdGlmaWNhdGlvbkNvbmZpZ3VyYXRpb25GaWx0ZXIsIDBdXSxcbl07XG52YXIgUmVjb3JkRXhwaXJhdGlvbiA9IFszLCBuMCwgX1JFZSwgMCwgW19FLCBfRF0sIFswLCAxXV07XG52YXIgUmVjb3Jkc0V2ZW50ID0gWzMsIG4wLCBfUkVlYywgMCwgW19QYXlsXSwgW1syMSwgeyBbX2VQXTogMSB9XV1dO1xudmFyIFJlZGlyZWN0ID0gWzMsIG4wLCBfUmVkLCAwLCBbX0hOLCBfSFJDLCBfUHJvLCBfUktQVywgX1JLV10sIFswLCAwLCAwLCAwLCAwXV07XG52YXIgUmVkaXJlY3RBbGxSZXF1ZXN0c1RvID0gWzMsIG4wLCBfUkFSVCwgMCwgW19ITiwgX1Byb10sIFswLCAwXV07XG52YXIgUmVuYW1lT2JqZWN0T3V0cHV0ID0gWzMsIG4wLCBfUk9PLCAwLCBbXSwgW11dO1xudmFyIFJlbmFtZU9iamVjdFJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfUk9SLFxuICAgIDAsXG4gICAgW19CLCBfSywgX1JTZW4sIF9ESU0sIF9ESU5NLCBfRElNUywgX0RJVVMsIF9TSU0sIF9TSU5NLCBfU0lNUywgX1NJVVMsIF9DVGxdLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFyc18gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfSU1fIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX0lOTV8gfV0sXG4gICAgICAgIFs0LCB7IFtfaEhdOiBfSU1TXyB9XSxcbiAgICAgICAgWzQsIHsgW19oSF06IF9JVVNfIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhcnNpbSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXJzaW5tIH1dLFxuICAgICAgICBbNiwgeyBbX2hIXTogX3hhcnNpbXMgfV0sXG4gICAgICAgIFs2LCB7IFtfaEhdOiBfeGFyc2l1cyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWN0XywgW19pVF06IDEgfV0sXG4gICAgXSxcbl07XG52YXIgUmVwbGljYU1vZGlmaWNhdGlvbnMgPSBbMywgbjAsIF9STSwgMCwgW19TXSwgWzBdXTtcbnZhciBSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb24gPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfUkNlLFxuICAgIDAsXG4gICAgW19SbywgX1JdLFxuICAgIFswLCBbKCkgPT4gUmVwbGljYXRpb25SdWxlcywgeyBbX3hOXTogX1J1LCBbX3hGXTogMSB9XV0sXG5dO1xudmFyIFJlcGxpY2F0aW9uUnVsZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9SUmUsXG4gICAgMCxcbiAgICBbX0lELCBfUHJpLCBfUCwgX0YsIF9TLCBfU1NDLCBfRU9SLCBfRGVzLCBfRE1SXSxcbiAgICBbXG4gICAgICAgIDAsXG4gICAgICAgIDEsXG4gICAgICAgIDAsXG4gICAgICAgIFsoKSA9PiBSZXBsaWNhdGlvblJ1bGVGaWx0ZXIsIDBdLFxuICAgICAgICAwLFxuICAgICAgICAoKSA9PiBTb3VyY2VTZWxlY3Rpb25Dcml0ZXJpYSxcbiAgICAgICAgKCkgPT4gRXhpc3RpbmdPYmplY3RSZXBsaWNhdGlvbixcbiAgICAgICAgKCkgPT4gRGVzdGluYXRpb24sXG4gICAgICAgICgpID0+IERlbGV0ZU1hcmtlclJlcGxpY2F0aW9uLFxuICAgIF0sXG5dO1xudmFyIFJlcGxpY2F0aW9uUnVsZUFuZE9wZXJhdG9yID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1JSQU8sXG4gICAgMCxcbiAgICBbX1AsIF9UXSxcbiAgICBbMCwgWygpID0+IFRhZ1NldCwgeyBbX3hOXTogX1RhLCBbX3hGXTogMSB9XV0sXG5dO1xudmFyIFJlcGxpY2F0aW9uUnVsZUZpbHRlciA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9SUkYsXG4gICAgMCxcbiAgICBbX1AsIF9UYSwgX0FuXSxcbiAgICBbMCwgKCkgPT4gVGFnLCBbKCkgPT4gUmVwbGljYXRpb25SdWxlQW5kT3BlcmF0b3IsIDBdXSxcbl07XG52YXIgUmVwbGljYXRpb25UaW1lID0gWzMsIG4wLCBfUlQsIDAsIFtfUywgX1RpbV0sIFswLCAoKSA9PiBSZXBsaWNhdGlvblRpbWVWYWx1ZV1dO1xudmFyIFJlcGxpY2F0aW9uVGltZVZhbHVlID0gWzMsIG4wLCBfUlRWLCAwLCBbX01pXSwgWzFdXTtcbnZhciBSZXF1ZXN0UGF5bWVudENvbmZpZ3VyYXRpb24gPSBbMywgbjAsIF9SUEMsIDAsIFtfUGF5XSwgWzBdXTtcbnZhciBSZXF1ZXN0UHJvZ3Jlc3MgPSBbMywgbjAsIF9SUGUsIDAsIFtfRW5hXSwgWzJdXTtcbnZhciBSZXN0b3JlT2JqZWN0T3V0cHV0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1JPT2UsXG4gICAgMCxcbiAgICBbX1JDLCBfUk9QXSxcbiAgICBbXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFyYyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXJvcCB9XSxcbiAgICBdLFxuXTtcbnZhciBSZXN0b3JlT2JqZWN0UmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9ST1JlLFxuICAgIDAsXG4gICAgW19CLCBfSywgX1ZJLCBfUlJlcywgX1JQLCBfQ0EsIF9FQk9dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfdkkgfV0sXG4gICAgICAgIFsoKSA9PiBSZXN0b3JlUmVxdWVzdCwgeyBbX2hQXTogMSwgW194Tl06IF9SUmVzIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhcnAgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFzY2EgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFlYm8gfV0sXG4gICAgXSxcbl07XG52YXIgUmVzdG9yZVJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfUlJlcyxcbiAgICAwLFxuICAgIFtfRCwgX0dKUCwgX1R5LCBfVGksIF9EZXNjLCBfU1AsIF9PTF0sXG4gICAgWzEsICgpID0+IEdsYWNpZXJKb2JQYXJhbWV0ZXJzLCAwLCAwLCAwLCAoKSA9PiBTZWxlY3RQYXJhbWV0ZXJzLCBbKCkgPT4gT3V0cHV0TG9jYXRpb24sIDBdXSxcbl07XG52YXIgUmVzdG9yZVN0YXR1cyA9IFszLCBuMCwgX1JTZSwgMCwgW19JUklQLCBfUkVEXSwgWzIsIDRdXTtcbnZhciBSb3V0aW5nUnVsZSA9IFszLCBuMCwgX1JSbywgMCwgW19DbywgX1JlZF0sIFsoKSA9PiBDb25kaXRpb24sICgpID0+IFJlZGlyZWN0XV07XG52YXIgUzNLZXlGaWx0ZXIgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfU0tGLFxuICAgIDAsXG4gICAgW19GUmldLFxuICAgIFtbKCkgPT4gRmlsdGVyUnVsZUxpc3QsIHsgW194Tl06IF9GUiwgW194Rl06IDEgfV1dLFxuXTtcbnZhciBTM0xvY2F0aW9uID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1NMLFxuICAgIDAsXG4gICAgW19CTiwgX1AsIF9FbiwgX0NBQ0wsIF9BQ0wsIF9UYWcsIF9VTSwgX1NDXSxcbiAgICBbMCwgMCwgWygpID0+IEVuY3J5cHRpb24sIDBdLCAwLCBbKCkgPT4gR3JhbnRzLCAwXSwgWygpID0+IFRhZ2dpbmcsIDBdLCBbKCkgPT4gVXNlck1ldGFkYXRhLCAwXSwgMF0sXG5dO1xudmFyIFMzVGFibGVzRGVzdGluYXRpb24gPSBbMywgbjAsIF9TVEQsIDAsIFtfVEJBLCBfVE5hXSwgWzAsIDBdXTtcbnZhciBTM1RhYmxlc0Rlc3RpbmF0aW9uUmVzdWx0ID0gWzMsIG4wLCBfU1REUiwgMCwgW19UQkEsIF9UTmEsIF9UQSwgX1ROXSwgWzAsIDAsIDAsIDBdXTtcbnZhciBTY2FuUmFuZ2UgPSBbMywgbjAsIF9TUiwgMCwgW19TdCwgX0VuZF0sIFsxLCAxXV07XG52YXIgU2VsZWN0T2JqZWN0Q29udGVudE91dHB1dCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9TT0NPLFxuICAgIDAsXG4gICAgW19QYXlsXSxcbiAgICBbWygpID0+IFNlbGVjdE9iamVjdENvbnRlbnRFdmVudFN0cmVhbSwgMTZdXSxcbl07XG52YXIgU2VsZWN0T2JqZWN0Q29udGVudFJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfU09DUixcbiAgICAwLFxuICAgIFtfQiwgX0ssIF9TU0VDQSwgX1NTRUNLLCBfU1NFQ0tNRCwgX0V4cCwgX0VUeCwgX1JQZSwgX0lTLCBfT1N1LCBfU1IsIF9FQk9dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFzc2VjYSB9XSxcbiAgICAgICAgWygpID0+IFNTRUN1c3RvbWVyS2V5LCB7IFtfaEhdOiBfeGFzc2VjayB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNzZWNrTSB9XSxcbiAgICAgICAgMCxcbiAgICAgICAgMCxcbiAgICAgICAgKCkgPT4gUmVxdWVzdFByb2dyZXNzLFxuICAgICAgICAoKSA9PiBJbnB1dFNlcmlhbGl6YXRpb24sXG4gICAgICAgICgpID0+IE91dHB1dFNlcmlhbGl6YXRpb24sXG4gICAgICAgICgpID0+IFNjYW5SYW5nZSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICBdLFxuXTtcbnZhciBTZWxlY3RQYXJhbWV0ZXJzID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1NQLFxuICAgIDAsXG4gICAgW19JUywgX0VUeCwgX0V4cCwgX09TdV0sXG4gICAgWygpID0+IElucHV0U2VyaWFsaXphdGlvbiwgMCwgMCwgKCkgPT4gT3V0cHV0U2VyaWFsaXphdGlvbl0sXG5dO1xudmFyIFNlcnZlclNpZGVFbmNyeXB0aW9uQnlEZWZhdWx0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1NTRUJELFxuICAgIDAsXG4gICAgW19TU0VBLCBfS01TTUtJRF0sXG4gICAgWzAsIFsoKSA9PiBTU0VLTVNLZXlJZCwgMF1dLFxuXTtcbnZhciBTZXJ2ZXJTaWRlRW5jcnlwdGlvbkNvbmZpZ3VyYXRpb24gPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfU1NFQyxcbiAgICAwLFxuICAgIFtfUl0sXG4gICAgW1soKSA9PiBTZXJ2ZXJTaWRlRW5jcnlwdGlvblJ1bGVzLCB7IFtfeE5dOiBfUnUsIFtfeEZdOiAxIH1dXSxcbl07XG52YXIgU2VydmVyU2lkZUVuY3J5cHRpb25SdWxlID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1NTRVIsXG4gICAgMCxcbiAgICBbX0FTU0VCRCwgX0JLRSwgX0JFVF0sXG4gICAgW1soKSA9PiBTZXJ2ZXJTaWRlRW5jcnlwdGlvbkJ5RGVmYXVsdCwgMF0sIDIsIFsoKSA9PiBCbG9ja2VkRW5jcnlwdGlvblR5cGVzLCAwXV0sXG5dO1xudmFyIFNlc3Npb25DcmVkZW50aWFscyA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9TQ2UsXG4gICAgMCxcbiAgICBbX0FLSSwgX1NBSywgX1NULCBfRV0sXG4gICAgW1xuICAgICAgICBbMCwgeyBbX3hOXTogX0FLSSB9XSxcbiAgICAgICAgWygpID0+IFNlc3Npb25DcmVkZW50aWFsVmFsdWUsIHsgW194Tl06IF9TQUsgfV0sXG4gICAgICAgIFsoKSA9PiBTZXNzaW9uQ3JlZGVudGlhbFZhbHVlLCB7IFtfeE5dOiBfU1QgfV0sXG4gICAgICAgIFs0LCB7IFtfeE5dOiBfRSB9XSxcbiAgICBdLFxuXTtcbnZhciBTaW1wbGVQcmVmaXggPSBbMywgbjAsIF9TUGksIHsgW194Tl06IF9TUGkgfSwgW10sIFtdXTtcbnZhciBTb3VyY2VTZWxlY3Rpb25Dcml0ZXJpYSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9TU0MsXG4gICAgMCxcbiAgICBbX1NLRU8sIF9STV0sXG4gICAgWygpID0+IFNzZUttc0VuY3J5cHRlZE9iamVjdHMsICgpID0+IFJlcGxpY2FNb2RpZmljYXRpb25zXSxcbl07XG52YXIgU1NFS01TID0gWzMsIG4wLCBfU1NFS01TLCB7IFtfeE5dOiBfU0sgfSwgW19LSV0sIFtbKCkgPT4gU1NFS01TS2V5SWQsIDBdXV07XG52YXIgU3NlS21zRW5jcnlwdGVkT2JqZWN0cyA9IFszLCBuMCwgX1NLRU8sIDAsIFtfU10sIFswXV07XG52YXIgU1NFUzMgPSBbMywgbjAsIF9TU0VTLCB7IFtfeE5dOiBfU1MgfSwgW10sIFtdXTtcbnZhciBTdGF0cyA9IFszLCBuMCwgX1N0YSwgMCwgW19CUywgX0JQLCBfQlJ5XSwgWzEsIDEsIDFdXTtcbnZhciBTdGF0c0V2ZW50ID0gWzMsIG4wLCBfU0UsIDAsIFtfRGV0XSwgW1soKSA9PiBTdGF0cywgeyBbX2VQXTogMSB9XV1dO1xudmFyIFN0b3JhZ2VDbGFzc0FuYWx5c2lzID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1NDQSxcbiAgICAwLFxuICAgIFtfREVdLFxuICAgIFsoKSA9PiBTdG9yYWdlQ2xhc3NBbmFseXNpc0RhdGFFeHBvcnRdLFxuXTtcbnZhciBTdG9yYWdlQ2xhc3NBbmFseXNpc0RhdGFFeHBvcnQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfU0NBREUsXG4gICAgMCxcbiAgICBbX09TViwgX0Rlc10sXG4gICAgWzAsICgpID0+IEFuYWx5dGljc0V4cG9ydERlc3RpbmF0aW9uXSxcbl07XG52YXIgVGFnID0gWzMsIG4wLCBfVGEsIDAsIFtfSywgX1ZdLCBbMCwgMF1dO1xudmFyIFRhZ2dpbmcgPSBbMywgbjAsIF9UYWcsIDAsIFtfVFNdLCBbWygpID0+IFRhZ1NldCwgMF1dXTtcbnZhciBUYXJnZXRHcmFudCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9UR2EsXG4gICAgMCxcbiAgICBbX0dyYSwgX1BlXSxcbiAgICBbWygpID0+IEdyYW50ZWUsIHsgW194Tm1dOiBbX3gsIF9oaV0gfV0sIDBdLFxuXTtcbnZhciBUYXJnZXRPYmplY3RLZXlGb3JtYXQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfVE9LRixcbiAgICAwLFxuICAgIFtfU1BpLCBfUFBdLFxuICAgIFtcbiAgICAgICAgWygpID0+IFNpbXBsZVByZWZpeCwgeyBbX3hOXTogX1NQaSB9XSxcbiAgICAgICAgWygpID0+IFBhcnRpdGlvbmVkUHJlZml4LCB7IFtfeE5dOiBfUFAgfV0sXG4gICAgXSxcbl07XG52YXIgVGllcmluZyA9IFszLCBuMCwgX1RpZXIsIDAsIFtfRCwgX0FUXSwgWzEsIDBdXTtcbnZhciBUb29NYW55UGFydHMgPSBbLTMsIG4wLCBfVE1QLCB7IFtfZV06IF9jLCBbX2hFXTogNDAwIH0sIFtdLCBbXV07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihUb29NYW55UGFydHMsIFRvb01hbnlQYXJ0cyQxKTtcbnZhciBUb3BpY0NvbmZpZ3VyYXRpb24gPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfVENvcCxcbiAgICAwLFxuICAgIFtfSSwgX1RBbywgX0V2LCBfRl0sXG4gICAgWzAsIFswLCB7IFtfeE5dOiBfVG9wIH1dLCBbNjQgfCAwLCB7IFtfeE5dOiBfRXZlLCBbX3hGXTogMSB9XSwgWygpID0+IE5vdGlmaWNhdGlvbkNvbmZpZ3VyYXRpb25GaWx0ZXIsIDBdXSxcbl07XG52YXIgVHJhbnNpdGlvbiA9IFszLCBuMCwgX1RyYSwgMCwgW19EYSwgX0QsIF9TQ10sIFs1LCAxLCAwXV07XG52YXIgVXBkYXRlQnVja2V0TWV0YWRhdGFJbnZlbnRvcnlUYWJsZUNvbmZpZ3VyYXRpb25SZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1VCTUlUQ1IsXG4gICAgMCxcbiAgICBbX0IsIF9DTUQsIF9DQSwgX0lUQ24sIF9FQk9dLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hIXTogX0NNIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhc2NhIH1dLFxuICAgICAgICBbKCkgPT4gSW52ZW50b3J5VGFibGVDb25maWd1cmF0aW9uVXBkYXRlcywgeyBbX3hOXTogX0lUQ24sIFtfaFBdOiAxIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZWJvIH1dLFxuICAgIF0sXG5dO1xudmFyIFVwZGF0ZUJ1Y2tldE1ldGFkYXRhSm91cm5hbFRhYmxlQ29uZmlndXJhdGlvblJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfVUJNSlRDUixcbiAgICAwLFxuICAgIFtfQiwgX0NNRCwgX0NBLCBfSlRDLCBfRUJPXSxcbiAgICBbXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzAsIHsgW19oSF06IF9DTSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNjYSB9XSxcbiAgICAgICAgWygpID0+IEpvdXJuYWxUYWJsZUNvbmZpZ3VyYXRpb25VcGRhdGVzLCB7IFtfeE5dOiBfSlRDLCBbX2hQXTogMSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWVibyB9XSxcbiAgICBdLFxuXTtcbnZhciBVcGxvYWRQYXJ0Q29weU91dHB1dCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9VUENPLFxuICAgIDAsXG4gICAgW19DU1ZJLCBfQ1BSLCBfU1NFLCBfU1NFQ0EsIF9TU0VDS01ELCBfU1NFS01TS0ksIF9CS0UsIF9SQ10sXG4gICAgW1xuICAgICAgICBbMCwgeyBbX2hIXTogX3hhY3N2aSB9XSxcbiAgICAgICAgWygpID0+IENvcHlQYXJ0UmVzdWx0LCAxNl0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFzc2UgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFzc2VjYSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNzZWNrTSB9XSxcbiAgICAgICAgWygpID0+IFNTRUtNU0tleUlkLCB7IFtfaEhdOiBfeGFzc2Vha2tpIH1dLFxuICAgICAgICBbMiwgeyBbX2hIXTogX3hhc3NlYmtlIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhcmMgfV0sXG4gICAgXSxcbl07XG52YXIgVXBsb2FkUGFydENvcHlSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1VQQ1IsXG4gICAgMCxcbiAgICBbXG4gICAgICAgIF9CLFxuICAgICAgICBfQ1MsXG4gICAgICAgIF9DU0lNLFxuICAgICAgICBfQ1NJTVMsXG4gICAgICAgIF9DU0lOTSxcbiAgICAgICAgX0NTSVVTLFxuICAgICAgICBfQ1NSbyxcbiAgICAgICAgX0ssXG4gICAgICAgIF9QTixcbiAgICAgICAgX1VJLFxuICAgICAgICBfU1NFQ0EsXG4gICAgICAgIF9TU0VDSyxcbiAgICAgICAgX1NTRUNLTUQsXG4gICAgICAgIF9DU1NTRUNBLFxuICAgICAgICBfQ1NTU0VDSyxcbiAgICAgICAgX0NTU1NFQ0tNRCxcbiAgICAgICAgX1JQLFxuICAgICAgICBfRUJPLFxuICAgICAgICBfRVNCTyxcbiAgICBdLFxuICAgIFtcbiAgICAgICAgWzAsIDFdLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhY3NfXyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWNzaW0gfV0sXG4gICAgICAgIFs0LCB7IFtfaEhdOiBfeGFjc2ltcyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWNzaW5tIH1dLFxuICAgICAgICBbNCwgeyBbX2hIXTogX3hhY3NpdXMgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFjc3IgfV0sXG4gICAgICAgIFswLCAxXSxcbiAgICAgICAgWzEsIHsgW19oUV06IF9wTiB9XSxcbiAgICAgICAgWzAsIHsgW19oUV06IF91SSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNzZWNhIH1dLFxuICAgICAgICBbKCkgPT4gU1NFQ3VzdG9tZXJLZXksIHsgW19oSF06IF94YXNzZWNrIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhc3NlY2tNIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhY3Nzc2VjYSB9XSxcbiAgICAgICAgWygpID0+IENvcHlTb3VyY2VTU0VDdXN0b21lcktleSwgeyBbX2hIXTogX3hhY3Nzc2VjayB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWNzc3NlY2tNIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhcnAgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFlYm8gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFzZWJvIH1dLFxuICAgIF0sXG5dO1xudmFyIFVwbG9hZFBhcnRPdXRwdXQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfVVBPLFxuICAgIDAsXG4gICAgW19TU0UsIF9FVGEsIF9DQ1JDLCBfQ0NSQ0MsIF9DQ1JDTlZNRSwgX0NTSEEsIF9DU0hBaCwgX1NTRUNBLCBfU1NFQ0tNRCwgX1NTRUtNU0tJLCBfQktFLCBfUkNdLFxuICAgIFtcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNzZSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF9FVGEgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFjYyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWNjXyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWNjX18gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFjcyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWNzXyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNzZWNhIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhc3NlY2tNIH1dLFxuICAgICAgICBbKCkgPT4gU1NFS01TS2V5SWQsIHsgW19oSF06IF94YXNzZWFra2kgfV0sXG4gICAgICAgIFsyLCB7IFtfaEhdOiBfeGFzc2Via2UgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFyYyB9XSxcbiAgICBdLFxuXTtcbnZhciBVcGxvYWRQYXJ0UmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9VUFIsXG4gICAgMCxcbiAgICBbXG4gICAgICAgIF9CbyxcbiAgICAgICAgX0IsXG4gICAgICAgIF9DTG8sXG4gICAgICAgIF9DTUQsXG4gICAgICAgIF9DQSxcbiAgICAgICAgX0NDUkMsXG4gICAgICAgIF9DQ1JDQyxcbiAgICAgICAgX0NDUkNOVk1FLFxuICAgICAgICBfQ1NIQSxcbiAgICAgICAgX0NTSEFoLFxuICAgICAgICBfSyxcbiAgICAgICAgX1BOLFxuICAgICAgICBfVUksXG4gICAgICAgIF9TU0VDQSxcbiAgICAgICAgX1NTRUNLLFxuICAgICAgICBfU1NFQ0tNRCxcbiAgICAgICAgX1JQLFxuICAgICAgICBfRUJPLFxuICAgIF0sXG4gICAgW1xuICAgICAgICBbKCkgPT4gU3RyZWFtaW5nQmxvYiwgMTZdLFxuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFsxLCB7IFtfaEhdOiBfQ0xfXyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF9DTSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNjYSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWNjIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhY2NfIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhY2NfXyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWNzIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhY3NfIH1dLFxuICAgICAgICBbMCwgMV0sXG4gICAgICAgIFsxLCB7IFtfaFFdOiBfcE4gfV0sXG4gICAgICAgIFswLCB7IFtfaFFdOiBfdUkgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFzc2VjYSB9XSxcbiAgICAgICAgWygpID0+IFNTRUN1c3RvbWVyS2V5LCB7IFtfaEhdOiBfeGFzc2VjayB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXNzZWNrTSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YXJwIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZWJvIH1dLFxuICAgIF0sXG5dO1xudmFyIFZlcnNpb25pbmdDb25maWd1cmF0aW9uID0gWzMsIG4wLCBfVkMsIDAsIFtfTUZBRCwgX1NdLCBbWzAsIHsgW194Tl06IF9NRGYgfV0sIDBdXTtcbnZhciBXZWJzaXRlQ29uZmlndXJhdGlvbiA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9XQyxcbiAgICAwLFxuICAgIFtfRURyLCBfSURuLCBfUkFSVCwgX1JSXSxcbiAgICBbKCkgPT4gRXJyb3JEb2N1bWVudCwgKCkgPT4gSW5kZXhEb2N1bWVudCwgKCkgPT4gUmVkaXJlY3RBbGxSZXF1ZXN0c1RvLCBbKCkgPT4gUm91dGluZ1J1bGVzLCAwXV0sXG5dO1xudmFyIFdyaXRlR2V0T2JqZWN0UmVzcG9uc2VSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1dHT1JSLFxuICAgIDAsXG4gICAgW1xuICAgICAgICBfUlJlcSxcbiAgICAgICAgX1JUZSxcbiAgICAgICAgX0JvLFxuICAgICAgICBfU0N0LFxuICAgICAgICBfRUNyLFxuICAgICAgICBfRU0sXG4gICAgICAgIF9BUixcbiAgICAgICAgX0NDLFxuICAgICAgICBfQ0RvLFxuICAgICAgICBfQ0VvLFxuICAgICAgICBfQ0wsXG4gICAgICAgIF9DTG8sXG4gICAgICAgIF9DUixcbiAgICAgICAgX0NUbyxcbiAgICAgICAgX0NDUkMsXG4gICAgICAgIF9DQ1JDQyxcbiAgICAgICAgX0NDUkNOVk1FLFxuICAgICAgICBfQ1NIQSxcbiAgICAgICAgX0NTSEFoLFxuICAgICAgICBfRE0sXG4gICAgICAgIF9FVGEsXG4gICAgICAgIF9FeCxcbiAgICAgICAgX0UsXG4gICAgICAgIF9MTSxcbiAgICAgICAgX01NLFxuICAgICAgICBfTSxcbiAgICAgICAgX09MTSxcbiAgICAgICAgX09MTEhTLFxuICAgICAgICBfT0xSVUQsXG4gICAgICAgIF9QQyxcbiAgICAgICAgX1JTLFxuICAgICAgICBfUkMsXG4gICAgICAgIF9SZSxcbiAgICAgICAgX1NTRSxcbiAgICAgICAgX1NTRUNBLFxuICAgICAgICBfU1NFS01TS0ksXG4gICAgICAgIF9TU0VDS01ELFxuICAgICAgICBfU0MsXG4gICAgICAgIF9UQyxcbiAgICAgICAgX1ZJLFxuICAgICAgICBfQktFLFxuICAgIF0sXG4gICAgW1xuICAgICAgICBbMCwgeyBbX2hMXTogMSwgW19oSF06IF94YXJyIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhcnQgfV0sXG4gICAgICAgIFsoKSA9PiBTdHJlYW1pbmdCbG9iLCAxNl0sXG4gICAgICAgIFsxLCB7IFtfaEhdOiBfeGFmcyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWZlYyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWZlbSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWZoYXIgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFmaENDIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZmhDRCB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWZoQ0UgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFmaENMIH1dLFxuICAgICAgICBbMSwgeyBbX2hIXTogX0NMX18gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFmaENSIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZmhDVCB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWZoeGFjYyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWZoeGFjY18gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFmaHhhY2NfXyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWZoeGFjcyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWZoeGFjc18gfV0sXG4gICAgICAgIFsyLCB7IFtfaEhdOiBfeGFmaHhhZG0gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFmaEUgfV0sXG4gICAgICAgIFs0LCB7IFtfaEhdOiBfeGFmaEVfIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZmh4YWUgfV0sXG4gICAgICAgIFs0LCB7IFtfaEhdOiBfeGFmaExNIH1dLFxuICAgICAgICBbMSwgeyBbX2hIXTogX3hhZmh4YW1tIH1dLFxuICAgICAgICBbMTI4IHwgMCwgeyBbX2hQSF06IF94YW0gfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFmaHhhb2xtIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZmh4YW9sbGggfV0sXG4gICAgICAgIFs1LCB7IFtfaEhdOiBfeGFmaHhhb2xydWQgfV0sXG4gICAgICAgIFsxLCB7IFtfaEhdOiBfeGFmaHhhbXBjIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZmh4YXJzIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZmh4YXJjIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZmh4YXIgfV0sXG4gICAgICAgIFswLCB7IFtfaEhdOiBfeGFmaHhhc3NlIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZmh4YXNzZWNhIH1dLFxuICAgICAgICBbKCkgPT4gU1NFS01TS2V5SWQsIHsgW19oSF06IF94YWZoeGFzc2Vha2tpIH1dLFxuICAgICAgICBbMCwgeyBbX2hIXTogX3hhZmh4YXNzZWNrTSB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWZoeGFzYyB9XSxcbiAgICAgICAgWzEsIHsgW19oSF06IF94YWZoeGF0YyB9XSxcbiAgICAgICAgWzAsIHsgW19oSF06IF94YWZoeGF2aSB9XSxcbiAgICAgICAgWzIsIHsgW19oSF06IF94YWZoeGFzc2Via2UgfV0sXG4gICAgXSxcbl07XG52YXIgX19Vbml0ID0gXCJ1bml0XCI7XG52YXIgUzNTZXJ2aWNlRXhjZXB0aW9uID0gWy0zLCBfc20sIFwiUzNTZXJ2aWNlRXhjZXB0aW9uXCIsIDAsIFtdLCBbXV07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihfc20pLnJlZ2lzdGVyRXJyb3IoUzNTZXJ2aWNlRXhjZXB0aW9uLCBTM1NlcnZpY2VFeGNlcHRpb24kMSk7XG52YXIgQW5hbHl0aWNzQ29uZmlndXJhdGlvbkxpc3QgPSBbMSwgbjAsIF9BQ0xuLCAwLCBbKCkgPT4gQW5hbHl0aWNzQ29uZmlndXJhdGlvbiwgMF1dO1xudmFyIEJ1Y2tldHMgPSBbMSwgbjAsIF9CdSwgMCwgWygpID0+IEJ1Y2tldCwgeyBbX3hOXTogX0IgfV1dO1xudmFyIENvbW1vblByZWZpeExpc3QgPSBbMSwgbjAsIF9DUEwsIDAsICgpID0+IENvbW1vblByZWZpeF07XG52YXIgQ29tcGxldGVkUGFydExpc3QgPSBbMSwgbjAsIF9DUExvLCAwLCAoKSA9PiBDb21wbGV0ZWRQYXJ0XTtcbnZhciBDT1JTUnVsZXMgPSBbMSwgbjAsIF9DT1JTUiwgMCwgWygpID0+IENPUlNSdWxlLCAwXV07XG52YXIgRGVsZXRlZE9iamVjdHMgPSBbMSwgbjAsIF9ET2UsIDAsICgpID0+IERlbGV0ZWRPYmplY3RdO1xudmFyIERlbGV0ZU1hcmtlcnMgPSBbMSwgbjAsIF9ETWUsIDAsICgpID0+IERlbGV0ZU1hcmtlckVudHJ5XTtcbnZhciBFbmNyeXB0aW9uVHlwZUxpc3QgPSBbMSwgbjAsIF9FVEwsIDAsIFswLCB7IFtfeE5dOiBfRVQgfV1dO1xudmFyIEVycm9ycyA9IFsxLCBuMCwgX0VyLCAwLCAoKSA9PiBfRXJyb3JdO1xudmFyIEZpbHRlclJ1bGVMaXN0ID0gWzEsIG4wLCBfRlJMLCAwLCAoKSA9PiBGaWx0ZXJSdWxlXTtcbnZhciBHcmFudHMgPSBbMSwgbjAsIF9HLCAwLCBbKCkgPT4gR3JhbnQsIHsgW194Tl06IF9HciB9XV07XG52YXIgSW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvbkxpc3QgPSBbXG4gICAgMSxcbiAgICBuMCxcbiAgICBfSVRDTCxcbiAgICAwLFxuICAgIFsoKSA9PiBJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9uLCAwXSxcbl07XG52YXIgSW52ZW50b3J5Q29uZmlndXJhdGlvbkxpc3QgPSBbMSwgbjAsIF9JQ0wsIDAsIFsoKSA9PiBJbnZlbnRvcnlDb25maWd1cmF0aW9uLCAwXV07XG52YXIgSW52ZW50b3J5T3B0aW9uYWxGaWVsZHMgPSBbMSwgbjAsIF9JT0YsIDAsIFswLCB7IFtfeE5dOiBfRmkgfV1dO1xudmFyIExhbWJkYUZ1bmN0aW9uQ29uZmlndXJhdGlvbkxpc3QgPSBbXG4gICAgMSxcbiAgICBuMCxcbiAgICBfTEZDTCxcbiAgICAwLFxuICAgIFsoKSA9PiBMYW1iZGFGdW5jdGlvbkNvbmZpZ3VyYXRpb24sIDBdLFxuXTtcbnZhciBMaWZlY3ljbGVSdWxlcyA9IFsxLCBuMCwgX0xSaSwgMCwgWygpID0+IExpZmVjeWNsZVJ1bGUsIDBdXTtcbnZhciBNZXRyaWNzQ29uZmlndXJhdGlvbkxpc3QgPSBbMSwgbjAsIF9NQ0wsIDAsIFsoKSA9PiBNZXRyaWNzQ29uZmlndXJhdGlvbiwgMF1dO1xudmFyIE11bHRpcGFydFVwbG9hZExpc3QgPSBbMSwgbjAsIF9NVUwsIDAsICgpID0+IE11bHRpcGFydFVwbG9hZF07XG52YXIgTm9uY3VycmVudFZlcnNpb25UcmFuc2l0aW9uTGlzdCA9IFsxLCBuMCwgX05WVEwsIDAsICgpID0+IE5vbmN1cnJlbnRWZXJzaW9uVHJhbnNpdGlvbl07XG52YXIgT2JqZWN0SWRlbnRpZmllckxpc3QgPSBbMSwgbjAsIF9PSUwsIDAsICgpID0+IE9iamVjdElkZW50aWZpZXJdO1xudmFyIE9iamVjdExpc3QgPSBbMSwgbjAsIF9PTGIsIDAsIFsoKSA9PiBfT2JqZWN0LCAwXV07XG52YXIgT2JqZWN0VmVyc2lvbkxpc3QgPSBbMSwgbjAsIF9PVkwsIDAsIFsoKSA9PiBPYmplY3RWZXJzaW9uLCAwXV07XG52YXIgT3duZXJzaGlwQ29udHJvbHNSdWxlcyA9IFsxLCBuMCwgX09DUncsIDAsICgpID0+IE93bmVyc2hpcENvbnRyb2xzUnVsZV07XG52YXIgUGFydHMgPSBbMSwgbjAsIF9QYSwgMCwgKCkgPT4gUGFydF07XG52YXIgUGFydHNMaXN0ID0gWzEsIG4wLCBfUEwsIDAsICgpID0+IE9iamVjdFBhcnRdO1xudmFyIFF1ZXVlQ29uZmlndXJhdGlvbkxpc3QgPSBbMSwgbjAsIF9RQ0wsIDAsIFsoKSA9PiBRdWV1ZUNvbmZpZ3VyYXRpb24sIDBdXTtcbnZhciBSZXBsaWNhdGlvblJ1bGVzID0gWzEsIG4wLCBfUlJlcCwgMCwgWygpID0+IFJlcGxpY2F0aW9uUnVsZSwgMF1dO1xudmFyIFJvdXRpbmdSdWxlcyA9IFsxLCBuMCwgX1JSLCAwLCBbKCkgPT4gUm91dGluZ1J1bGUsIHsgW194Tl06IF9SUm8gfV1dO1xudmFyIFNlcnZlclNpZGVFbmNyeXB0aW9uUnVsZXMgPSBbMSwgbjAsIF9TU0VSZSwgMCwgWygpID0+IFNlcnZlclNpZGVFbmNyeXB0aW9uUnVsZSwgMF1dO1xudmFyIFRhZ1NldCA9IFsxLCBuMCwgX1RTLCAwLCBbKCkgPT4gVGFnLCB7IFtfeE5dOiBfVGEgfV1dO1xudmFyIFRhcmdldEdyYW50cyA9IFsxLCBuMCwgX1RHLCAwLCBbKCkgPT4gVGFyZ2V0R3JhbnQsIHsgW194Tl06IF9HciB9XV07XG52YXIgVGllcmluZ0xpc3QgPSBbMSwgbjAsIF9UTCwgMCwgKCkgPT4gVGllcmluZ107XG52YXIgVG9waWNDb25maWd1cmF0aW9uTGlzdCA9IFsxLCBuMCwgX1RDTCwgMCwgWygpID0+IFRvcGljQ29uZmlndXJhdGlvbiwgMF1dO1xudmFyIFRyYW5zaXRpb25MaXN0ID0gWzEsIG4wLCBfVExyLCAwLCAoKSA9PiBUcmFuc2l0aW9uXTtcbnZhciBVc2VyTWV0YWRhdGEgPSBbMSwgbjAsIF9VTSwgMCwgWygpID0+IE1ldGFkYXRhRW50cnksIHsgW194Tl06IF9NRSB9XV07XG52YXIgQW5hbHl0aWNzRmlsdGVyID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0FGLFxuICAgIDAsXG4gICAgW19QLCBfVGEsIF9Bbl0sXG4gICAgWzAsICgpID0+IFRhZywgWygpID0+IEFuYWx5dGljc0FuZE9wZXJhdG9yLCAwXV0sXG5dO1xudmFyIE1ldHJpY3NGaWx0ZXIgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfTUYsXG4gICAgMCxcbiAgICBbX1AsIF9UYSwgX0FQQWMsIF9Bbl0sXG4gICAgWzAsICgpID0+IFRhZywgMCwgWygpID0+IE1ldHJpY3NBbmRPcGVyYXRvciwgMF1dLFxuXTtcbnZhciBTZWxlY3RPYmplY3RDb250ZW50RXZlbnRTdHJlYW0gPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfU09DRVMsXG4gICAgeyBbX3NdOiAxIH0sXG4gICAgW19SZWMsIF9TdGEsIF9QciwgX0NvbnQsIF9FbmRdLFxuICAgIFtbKCkgPT4gUmVjb3Jkc0V2ZW50LCAwXSwgWygpID0+IFN0YXRzRXZlbnQsIDBdLCBbKCkgPT4gUHJvZ3Jlc3NFdmVudCwgMF0sICgpID0+IENvbnRpbnVhdGlvbkV2ZW50LCAoKSA9PiBFbmRFdmVudF0sXG5dO1xudmFyIEFib3J0TXVsdGlwYXJ0VXBsb2FkID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0FNVSxcbiAgICB7IFtfaF06IFtcIkRFTEVURVwiLCBcIi97S2V5K30/eC1pZD1BYm9ydE11bHRpcGFydFVwbG9hZFwiLCAyMDRdIH0sXG4gICAgKCkgPT4gQWJvcnRNdWx0aXBhcnRVcGxvYWRSZXF1ZXN0LFxuICAgICgpID0+IEFib3J0TXVsdGlwYXJ0VXBsb2FkT3V0cHV0LFxuXTtcbnZhciBDb21wbGV0ZU11bHRpcGFydFVwbG9hZCA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9DTVVvLFxuICAgIHsgW19oXTogW1wiUE9TVFwiLCBcIi97S2V5K31cIiwgMjAwXSB9LFxuICAgICgpID0+IENvbXBsZXRlTXVsdGlwYXJ0VXBsb2FkUmVxdWVzdCxcbiAgICAoKSA9PiBDb21wbGV0ZU11bHRpcGFydFVwbG9hZE91dHB1dCxcbl07XG52YXIgQ29weU9iamVjdCA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9DTyxcbiAgICB7IFtfaF06IFtcIlBVVFwiLCBcIi97S2V5K30/eC1pZD1Db3B5T2JqZWN0XCIsIDIwMF0gfSxcbiAgICAoKSA9PiBDb3B5T2JqZWN0UmVxdWVzdCxcbiAgICAoKSA9PiBDb3B5T2JqZWN0T3V0cHV0LFxuXTtcbnZhciBDcmVhdGVCdWNrZXQgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfQ0IsXG4gICAgeyBbX2hdOiBbXCJQVVRcIiwgXCIvXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBDcmVhdGVCdWNrZXRSZXF1ZXN0LFxuICAgICgpID0+IENyZWF0ZUJ1Y2tldE91dHB1dCxcbl07XG52YXIgQ3JlYXRlQnVja2V0TWV0YWRhdGFDb25maWd1cmF0aW9uID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0NCTUMsXG4gICAgeyBbX2hdOiBbXCJQT1NUXCIsIFwiLz9tZXRhZGF0YUNvbmZpZ3VyYXRpb25cIiwgMjAwXSB9LFxuICAgICgpID0+IENyZWF0ZUJ1Y2tldE1ldGFkYXRhQ29uZmlndXJhdGlvblJlcXVlc3QsXG4gICAgKCkgPT4gX19Vbml0LFxuXTtcbnZhciBDcmVhdGVCdWNrZXRNZXRhZGF0YVRhYmxlQ29uZmlndXJhdGlvbiA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9DQk1UQyxcbiAgICB7IFtfaF06IFtcIlBPU1RcIiwgXCIvP21ldGFkYXRhVGFibGVcIiwgMjAwXSB9LFxuICAgICgpID0+IENyZWF0ZUJ1Y2tldE1ldGFkYXRhVGFibGVDb25maWd1cmF0aW9uUmVxdWVzdCxcbiAgICAoKSA9PiBfX1VuaXQsXG5dO1xudmFyIENyZWF0ZU11bHRpcGFydFVwbG9hZCA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9DTVVyLFxuICAgIHsgW19oXTogW1wiUE9TVFwiLCBcIi97S2V5K30/dXBsb2Fkc1wiLCAyMDBdIH0sXG4gICAgKCkgPT4gQ3JlYXRlTXVsdGlwYXJ0VXBsb2FkUmVxdWVzdCxcbiAgICAoKSA9PiBDcmVhdGVNdWx0aXBhcnRVcGxvYWRPdXRwdXQsXG5dO1xudmFyIENyZWF0ZVNlc3Npb24gPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfQ1NyLFxuICAgIHsgW19oXTogW1wiR0VUXCIsIFwiLz9zZXNzaW9uXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBDcmVhdGVTZXNzaW9uUmVxdWVzdCxcbiAgICAoKSA9PiBDcmVhdGVTZXNzaW9uT3V0cHV0LFxuXTtcbnZhciBEZWxldGVCdWNrZXQgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfREIsXG4gICAgeyBbX2hdOiBbXCJERUxFVEVcIiwgXCIvXCIsIDIwNF0gfSxcbiAgICAoKSA9PiBEZWxldGVCdWNrZXRSZXF1ZXN0LFxuICAgICgpID0+IF9fVW5pdCxcbl07XG52YXIgRGVsZXRlQnVja2V0QW5hbHl0aWNzQ29uZmlndXJhdGlvbiA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9EQkFDLFxuICAgIHsgW19oXTogW1wiREVMRVRFXCIsIFwiLz9hbmFseXRpY3NcIiwgMjA0XSB9LFxuICAgICgpID0+IERlbGV0ZUJ1Y2tldEFuYWx5dGljc0NvbmZpZ3VyYXRpb25SZXF1ZXN0LFxuICAgICgpID0+IF9fVW5pdCxcbl07XG52YXIgRGVsZXRlQnVja2V0Q29ycyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9EQkMsXG4gICAgeyBbX2hdOiBbXCJERUxFVEVcIiwgXCIvP2NvcnNcIiwgMjA0XSB9LFxuICAgICgpID0+IERlbGV0ZUJ1Y2tldENvcnNSZXF1ZXN0LFxuICAgICgpID0+IF9fVW5pdCxcbl07XG52YXIgRGVsZXRlQnVja2V0RW5jcnlwdGlvbiA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9EQkUsXG4gICAgeyBbX2hdOiBbXCJERUxFVEVcIiwgXCIvP2VuY3J5cHRpb25cIiwgMjA0XSB9LFxuICAgICgpID0+IERlbGV0ZUJ1Y2tldEVuY3J5cHRpb25SZXF1ZXN0LFxuICAgICgpID0+IF9fVW5pdCxcbl07XG52YXIgRGVsZXRlQnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvbiA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9EQklUQyxcbiAgICB7IFtfaF06IFtcIkRFTEVURVwiLCBcIi8/aW50ZWxsaWdlbnQtdGllcmluZ1wiLCAyMDRdIH0sXG4gICAgKCkgPT4gRGVsZXRlQnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvblJlcXVlc3QsXG4gICAgKCkgPT4gX19Vbml0LFxuXTtcbnZhciBEZWxldGVCdWNrZXRJbnZlbnRvcnlDb25maWd1cmF0aW9uID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0RCSUMsXG4gICAgeyBbX2hdOiBbXCJERUxFVEVcIiwgXCIvP2ludmVudG9yeVwiLCAyMDRdIH0sXG4gICAgKCkgPT4gRGVsZXRlQnVja2V0SW52ZW50b3J5Q29uZmlndXJhdGlvblJlcXVlc3QsXG4gICAgKCkgPT4gX19Vbml0LFxuXTtcbnZhciBEZWxldGVCdWNrZXRMaWZlY3ljbGUgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfREJMLFxuICAgIHsgW19oXTogW1wiREVMRVRFXCIsIFwiLz9saWZlY3ljbGVcIiwgMjA0XSB9LFxuICAgICgpID0+IERlbGV0ZUJ1Y2tldExpZmVjeWNsZVJlcXVlc3QsXG4gICAgKCkgPT4gX19Vbml0LFxuXTtcbnZhciBEZWxldGVCdWNrZXRNZXRhZGF0YUNvbmZpZ3VyYXRpb24gPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfREJNQyxcbiAgICB7IFtfaF06IFtcIkRFTEVURVwiLCBcIi8/bWV0YWRhdGFDb25maWd1cmF0aW9uXCIsIDIwNF0gfSxcbiAgICAoKSA9PiBEZWxldGVCdWNrZXRNZXRhZGF0YUNvbmZpZ3VyYXRpb25SZXF1ZXN0LFxuICAgICgpID0+IF9fVW5pdCxcbl07XG52YXIgRGVsZXRlQnVja2V0TWV0YWRhdGFUYWJsZUNvbmZpZ3VyYXRpb24gPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfREJNVEMsXG4gICAgeyBbX2hdOiBbXCJERUxFVEVcIiwgXCIvP21ldGFkYXRhVGFibGVcIiwgMjA0XSB9LFxuICAgICgpID0+IERlbGV0ZUJ1Y2tldE1ldGFkYXRhVGFibGVDb25maWd1cmF0aW9uUmVxdWVzdCxcbiAgICAoKSA9PiBfX1VuaXQsXG5dO1xudmFyIERlbGV0ZUJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9uID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0RCTUNlLFxuICAgIHsgW19oXTogW1wiREVMRVRFXCIsIFwiLz9tZXRyaWNzXCIsIDIwNF0gfSxcbiAgICAoKSA9PiBEZWxldGVCdWNrZXRNZXRyaWNzQ29uZmlndXJhdGlvblJlcXVlc3QsXG4gICAgKCkgPT4gX19Vbml0LFxuXTtcbnZhciBEZWxldGVCdWNrZXRPd25lcnNoaXBDb250cm9scyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9EQk9DLFxuICAgIHsgW19oXTogW1wiREVMRVRFXCIsIFwiLz9vd25lcnNoaXBDb250cm9sc1wiLCAyMDRdIH0sXG4gICAgKCkgPT4gRGVsZXRlQnVja2V0T3duZXJzaGlwQ29udHJvbHNSZXF1ZXN0LFxuICAgICgpID0+IF9fVW5pdCxcbl07XG52YXIgRGVsZXRlQnVja2V0UG9saWN5ID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0RCUCxcbiAgICB7IFtfaF06IFtcIkRFTEVURVwiLCBcIi8/cG9saWN5XCIsIDIwNF0gfSxcbiAgICAoKSA9PiBEZWxldGVCdWNrZXRQb2xpY3lSZXF1ZXN0LFxuICAgICgpID0+IF9fVW5pdCxcbl07XG52YXIgRGVsZXRlQnVja2V0UmVwbGljYXRpb24gPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfREJSZSxcbiAgICB7IFtfaF06IFtcIkRFTEVURVwiLCBcIi8/cmVwbGljYXRpb25cIiwgMjA0XSB9LFxuICAgICgpID0+IERlbGV0ZUJ1Y2tldFJlcGxpY2F0aW9uUmVxdWVzdCxcbiAgICAoKSA9PiBfX1VuaXQsXG5dO1xudmFyIERlbGV0ZUJ1Y2tldFRhZ2dpbmcgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfREJULFxuICAgIHsgW19oXTogW1wiREVMRVRFXCIsIFwiLz90YWdnaW5nXCIsIDIwNF0gfSxcbiAgICAoKSA9PiBEZWxldGVCdWNrZXRUYWdnaW5nUmVxdWVzdCxcbiAgICAoKSA9PiBfX1VuaXQsXG5dO1xudmFyIERlbGV0ZUJ1Y2tldFdlYnNpdGUgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfREJXLFxuICAgIHsgW19oXTogW1wiREVMRVRFXCIsIFwiLz93ZWJzaXRlXCIsIDIwNF0gfSxcbiAgICAoKSA9PiBEZWxldGVCdWNrZXRXZWJzaXRlUmVxdWVzdCxcbiAgICAoKSA9PiBfX1VuaXQsXG5dO1xudmFyIERlbGV0ZU9iamVjdCA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9ET2VsLFxuICAgIHsgW19oXTogW1wiREVMRVRFXCIsIFwiL3tLZXkrfT94LWlkPURlbGV0ZU9iamVjdFwiLCAyMDRdIH0sXG4gICAgKCkgPT4gRGVsZXRlT2JqZWN0UmVxdWVzdCxcbiAgICAoKSA9PiBEZWxldGVPYmplY3RPdXRwdXQsXG5dO1xudmFyIERlbGV0ZU9iamVjdHMgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfRE9lbGUsXG4gICAgeyBbX2hdOiBbXCJQT1NUXCIsIFwiLz9kZWxldGVcIiwgMjAwXSB9LFxuICAgICgpID0+IERlbGV0ZU9iamVjdHNSZXF1ZXN0LFxuICAgICgpID0+IERlbGV0ZU9iamVjdHNPdXRwdXQsXG5dO1xudmFyIERlbGV0ZU9iamVjdFRhZ2dpbmcgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfRE9ULFxuICAgIHsgW19oXTogW1wiREVMRVRFXCIsIFwiL3tLZXkrfT90YWdnaW5nXCIsIDIwNF0gfSxcbiAgICAoKSA9PiBEZWxldGVPYmplY3RUYWdnaW5nUmVxdWVzdCxcbiAgICAoKSA9PiBEZWxldGVPYmplY3RUYWdnaW5nT3V0cHV0LFxuXTtcbnZhciBEZWxldGVQdWJsaWNBY2Nlc3NCbG9jayA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9EUEFCLFxuICAgIHsgW19oXTogW1wiREVMRVRFXCIsIFwiLz9wdWJsaWNBY2Nlc3NCbG9ja1wiLCAyMDRdIH0sXG4gICAgKCkgPT4gRGVsZXRlUHVibGljQWNjZXNzQmxvY2tSZXF1ZXN0LFxuICAgICgpID0+IF9fVW5pdCxcbl07XG52YXIgR2V0QnVja2V0QWJhYyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9HQkEsXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIvP2FiYWNcIiwgMjAwXSB9LFxuICAgICgpID0+IEdldEJ1Y2tldEFiYWNSZXF1ZXN0LFxuICAgICgpID0+IEdldEJ1Y2tldEFiYWNPdXRwdXQsXG5dO1xudmFyIEdldEJ1Y2tldEFjY2VsZXJhdGVDb25maWd1cmF0aW9uID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0dCQUMsXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIvP2FjY2VsZXJhdGVcIiwgMjAwXSB9LFxuICAgICgpID0+IEdldEJ1Y2tldEFjY2VsZXJhdGVDb25maWd1cmF0aW9uUmVxdWVzdCxcbiAgICAoKSA9PiBHZXRCdWNrZXRBY2NlbGVyYXRlQ29uZmlndXJhdGlvbk91dHB1dCxcbl07XG52YXIgR2V0QnVja2V0QWNsID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0dCQWUsXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIvP2FjbFwiLCAyMDBdIH0sXG4gICAgKCkgPT4gR2V0QnVja2V0QWNsUmVxdWVzdCxcbiAgICAoKSA9PiBHZXRCdWNrZXRBY2xPdXRwdXQsXG5dO1xudmFyIEdldEJ1Y2tldEFuYWx5dGljc0NvbmZpZ3VyYXRpb24gPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfR0JBQ2UsXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIvP2FuYWx5dGljcyZ4LWlkPUdldEJ1Y2tldEFuYWx5dGljc0NvbmZpZ3VyYXRpb25cIiwgMjAwXSB9LFxuICAgICgpID0+IEdldEJ1Y2tldEFuYWx5dGljc0NvbmZpZ3VyYXRpb25SZXF1ZXN0LFxuICAgICgpID0+IEdldEJ1Y2tldEFuYWx5dGljc0NvbmZpZ3VyYXRpb25PdXRwdXQsXG5dO1xudmFyIEdldEJ1Y2tldENvcnMgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfR0JDLFxuICAgIHsgW19oXTogW1wiR0VUXCIsIFwiLz9jb3JzXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBHZXRCdWNrZXRDb3JzUmVxdWVzdCxcbiAgICAoKSA9PiBHZXRCdWNrZXRDb3JzT3V0cHV0LFxuXTtcbnZhciBHZXRCdWNrZXRFbmNyeXB0aW9uID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0dCRSxcbiAgICB7IFtfaF06IFtcIkdFVFwiLCBcIi8/ZW5jcnlwdGlvblwiLCAyMDBdIH0sXG4gICAgKCkgPT4gR2V0QnVja2V0RW5jcnlwdGlvblJlcXVlc3QsXG4gICAgKCkgPT4gR2V0QnVja2V0RW5jcnlwdGlvbk91dHB1dCxcbl07XG52YXIgR2V0QnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvbiA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9HQklUQyxcbiAgICB7IFtfaF06IFtcIkdFVFwiLCBcIi8/aW50ZWxsaWdlbnQtdGllcmluZyZ4LWlkPUdldEJ1Y2tldEludGVsbGlnZW50VGllcmluZ0NvbmZpZ3VyYXRpb25cIiwgMjAwXSB9LFxuICAgICgpID0+IEdldEJ1Y2tldEludGVsbGlnZW50VGllcmluZ0NvbmZpZ3VyYXRpb25SZXF1ZXN0LFxuICAgICgpID0+IEdldEJ1Y2tldEludGVsbGlnZW50VGllcmluZ0NvbmZpZ3VyYXRpb25PdXRwdXQsXG5dO1xudmFyIEdldEJ1Y2tldEludmVudG9yeUNvbmZpZ3VyYXRpb24gPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfR0JJQyxcbiAgICB7IFtfaF06IFtcIkdFVFwiLCBcIi8/aW52ZW50b3J5JngtaWQ9R2V0QnVja2V0SW52ZW50b3J5Q29uZmlndXJhdGlvblwiLCAyMDBdIH0sXG4gICAgKCkgPT4gR2V0QnVja2V0SW52ZW50b3J5Q29uZmlndXJhdGlvblJlcXVlc3QsXG4gICAgKCkgPT4gR2V0QnVja2V0SW52ZW50b3J5Q29uZmlndXJhdGlvbk91dHB1dCxcbl07XG52YXIgR2V0QnVja2V0TGlmZWN5Y2xlQ29uZmlndXJhdGlvbiA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9HQkxDLFxuICAgIHsgW19oXTogW1wiR0VUXCIsIFwiLz9saWZlY3ljbGVcIiwgMjAwXSB9LFxuICAgICgpID0+IEdldEJ1Y2tldExpZmVjeWNsZUNvbmZpZ3VyYXRpb25SZXF1ZXN0LFxuICAgICgpID0+IEdldEJ1Y2tldExpZmVjeWNsZUNvbmZpZ3VyYXRpb25PdXRwdXQsXG5dO1xudmFyIEdldEJ1Y2tldExvY2F0aW9uID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0dCTCxcbiAgICB7IFtfaF06IFtcIkdFVFwiLCBcIi8/bG9jYXRpb25cIiwgMjAwXSB9LFxuICAgICgpID0+IEdldEJ1Y2tldExvY2F0aW9uUmVxdWVzdCxcbiAgICAoKSA9PiBHZXRCdWNrZXRMb2NhdGlvbk91dHB1dCxcbl07XG52YXIgR2V0QnVja2V0TG9nZ2luZyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9HQkxlLFxuICAgIHsgW19oXTogW1wiR0VUXCIsIFwiLz9sb2dnaW5nXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBHZXRCdWNrZXRMb2dnaW5nUmVxdWVzdCxcbiAgICAoKSA9PiBHZXRCdWNrZXRMb2dnaW5nT3V0cHV0LFxuXTtcbnZhciBHZXRCdWNrZXRNZXRhZGF0YUNvbmZpZ3VyYXRpb24gPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfR0JNQyxcbiAgICB7IFtfaF06IFtcIkdFVFwiLCBcIi8/bWV0YWRhdGFDb25maWd1cmF0aW9uXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBHZXRCdWNrZXRNZXRhZGF0YUNvbmZpZ3VyYXRpb25SZXF1ZXN0LFxuICAgICgpID0+IEdldEJ1Y2tldE1ldGFkYXRhQ29uZmlndXJhdGlvbk91dHB1dCxcbl07XG52YXIgR2V0QnVja2V0TWV0YWRhdGFUYWJsZUNvbmZpZ3VyYXRpb24gPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfR0JNVEMsXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIvP21ldGFkYXRhVGFibGVcIiwgMjAwXSB9LFxuICAgICgpID0+IEdldEJ1Y2tldE1ldGFkYXRhVGFibGVDb25maWd1cmF0aW9uUmVxdWVzdCxcbiAgICAoKSA9PiBHZXRCdWNrZXRNZXRhZGF0YVRhYmxlQ29uZmlndXJhdGlvbk91dHB1dCxcbl07XG52YXIgR2V0QnVja2V0TWV0cmljc0NvbmZpZ3VyYXRpb24gPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfR0JNQ2UsXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIvP21ldHJpY3MmeC1pZD1HZXRCdWNrZXRNZXRyaWNzQ29uZmlndXJhdGlvblwiLCAyMDBdIH0sXG4gICAgKCkgPT4gR2V0QnVja2V0TWV0cmljc0NvbmZpZ3VyYXRpb25SZXF1ZXN0LFxuICAgICgpID0+IEdldEJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9uT3V0cHV0LFxuXTtcbnZhciBHZXRCdWNrZXROb3RpZmljYXRpb25Db25maWd1cmF0aW9uID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0dCTkMsXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIvP25vdGlmaWNhdGlvblwiLCAyMDBdIH0sXG4gICAgKCkgPT4gR2V0QnVja2V0Tm90aWZpY2F0aW9uQ29uZmlndXJhdGlvblJlcXVlc3QsXG4gICAgKCkgPT4gTm90aWZpY2F0aW9uQ29uZmlndXJhdGlvbixcbl07XG52YXIgR2V0QnVja2V0T3duZXJzaGlwQ29udHJvbHMgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfR0JPQyxcbiAgICB7IFtfaF06IFtcIkdFVFwiLCBcIi8/b3duZXJzaGlwQ29udHJvbHNcIiwgMjAwXSB9LFxuICAgICgpID0+IEdldEJ1Y2tldE93bmVyc2hpcENvbnRyb2xzUmVxdWVzdCxcbiAgICAoKSA9PiBHZXRCdWNrZXRPd25lcnNoaXBDb250cm9sc091dHB1dCxcbl07XG52YXIgR2V0QnVja2V0UG9saWN5ID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0dCUCxcbiAgICB7IFtfaF06IFtcIkdFVFwiLCBcIi8/cG9saWN5XCIsIDIwMF0gfSxcbiAgICAoKSA9PiBHZXRCdWNrZXRQb2xpY3lSZXF1ZXN0LFxuICAgICgpID0+IEdldEJ1Y2tldFBvbGljeU91dHB1dCxcbl07XG52YXIgR2V0QnVja2V0UG9saWN5U3RhdHVzID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0dCUFMsXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIvP3BvbGljeVN0YXR1c1wiLCAyMDBdIH0sXG4gICAgKCkgPT4gR2V0QnVja2V0UG9saWN5U3RhdHVzUmVxdWVzdCxcbiAgICAoKSA9PiBHZXRCdWNrZXRQb2xpY3lTdGF0dXNPdXRwdXQsXG5dO1xudmFyIEdldEJ1Y2tldFJlcGxpY2F0aW9uID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0dCUixcbiAgICB7IFtfaF06IFtcIkdFVFwiLCBcIi8/cmVwbGljYXRpb25cIiwgMjAwXSB9LFxuICAgICgpID0+IEdldEJ1Y2tldFJlcGxpY2F0aW9uUmVxdWVzdCxcbiAgICAoKSA9PiBHZXRCdWNrZXRSZXBsaWNhdGlvbk91dHB1dCxcbl07XG52YXIgR2V0QnVja2V0UmVxdWVzdFBheW1lbnQgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfR0JSUCxcbiAgICB7IFtfaF06IFtcIkdFVFwiLCBcIi8/cmVxdWVzdFBheW1lbnRcIiwgMjAwXSB9LFxuICAgICgpID0+IEdldEJ1Y2tldFJlcXVlc3RQYXltZW50UmVxdWVzdCxcbiAgICAoKSA9PiBHZXRCdWNrZXRSZXF1ZXN0UGF5bWVudE91dHB1dCxcbl07XG52YXIgR2V0QnVja2V0VGFnZ2luZyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9HQlQsXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIvP3RhZ2dpbmdcIiwgMjAwXSB9LFxuICAgICgpID0+IEdldEJ1Y2tldFRhZ2dpbmdSZXF1ZXN0LFxuICAgICgpID0+IEdldEJ1Y2tldFRhZ2dpbmdPdXRwdXQsXG5dO1xudmFyIEdldEJ1Y2tldFZlcnNpb25pbmcgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfR0JWLFxuICAgIHsgW19oXTogW1wiR0VUXCIsIFwiLz92ZXJzaW9uaW5nXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBHZXRCdWNrZXRWZXJzaW9uaW5nUmVxdWVzdCxcbiAgICAoKSA9PiBHZXRCdWNrZXRWZXJzaW9uaW5nT3V0cHV0LFxuXTtcbnZhciBHZXRCdWNrZXRXZWJzaXRlID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0dCVyxcbiAgICB7IFtfaF06IFtcIkdFVFwiLCBcIi8/d2Vic2l0ZVwiLCAyMDBdIH0sXG4gICAgKCkgPT4gR2V0QnVja2V0V2Vic2l0ZVJlcXVlc3QsXG4gICAgKCkgPT4gR2V0QnVja2V0V2Vic2l0ZU91dHB1dCxcbl07XG52YXIgR2V0T2JqZWN0ID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0dPLFxuICAgIHsgW19oXTogW1wiR0VUXCIsIFwiL3tLZXkrfT94LWlkPUdldE9iamVjdFwiLCAyMDBdIH0sXG4gICAgKCkgPT4gR2V0T2JqZWN0UmVxdWVzdCxcbiAgICAoKSA9PiBHZXRPYmplY3RPdXRwdXQsXG5dO1xudmFyIEdldE9iamVjdEFjbCA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9HT0EsXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIve0tleSt9P2FjbFwiLCAyMDBdIH0sXG4gICAgKCkgPT4gR2V0T2JqZWN0QWNsUmVxdWVzdCxcbiAgICAoKSA9PiBHZXRPYmplY3RBY2xPdXRwdXQsXG5dO1xudmFyIEdldE9iamVjdEF0dHJpYnV0ZXMgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfR09BZSxcbiAgICB7IFtfaF06IFtcIkdFVFwiLCBcIi97S2V5K30/YXR0cmlidXRlc1wiLCAyMDBdIH0sXG4gICAgKCkgPT4gR2V0T2JqZWN0QXR0cmlidXRlc1JlcXVlc3QsXG4gICAgKCkgPT4gR2V0T2JqZWN0QXR0cmlidXRlc091dHB1dCxcbl07XG52YXIgR2V0T2JqZWN0TGVnYWxIb2xkID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0dPTEgsXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIve0tleSt9P2xlZ2FsLWhvbGRcIiwgMjAwXSB9LFxuICAgICgpID0+IEdldE9iamVjdExlZ2FsSG9sZFJlcXVlc3QsXG4gICAgKCkgPT4gR2V0T2JqZWN0TGVnYWxIb2xkT3V0cHV0LFxuXTtcbnZhciBHZXRPYmplY3RMb2NrQ29uZmlndXJhdGlvbiA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9HT0xDLFxuICAgIHsgW19oXTogW1wiR0VUXCIsIFwiLz9vYmplY3QtbG9ja1wiLCAyMDBdIH0sXG4gICAgKCkgPT4gR2V0T2JqZWN0TG9ja0NvbmZpZ3VyYXRpb25SZXF1ZXN0LFxuICAgICgpID0+IEdldE9iamVjdExvY2tDb25maWd1cmF0aW9uT3V0cHV0LFxuXTtcbnZhciBHZXRPYmplY3RSZXRlbnRpb24gPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfR09SZSxcbiAgICB7IFtfaF06IFtcIkdFVFwiLCBcIi97S2V5K30/cmV0ZW50aW9uXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBHZXRPYmplY3RSZXRlbnRpb25SZXF1ZXN0LFxuICAgICgpID0+IEdldE9iamVjdFJldGVudGlvbk91dHB1dCxcbl07XG52YXIgR2V0T2JqZWN0VGFnZ2luZyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9HT1QsXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIve0tleSt9P3RhZ2dpbmdcIiwgMjAwXSB9LFxuICAgICgpID0+IEdldE9iamVjdFRhZ2dpbmdSZXF1ZXN0LFxuICAgICgpID0+IEdldE9iamVjdFRhZ2dpbmdPdXRwdXQsXG5dO1xudmFyIEdldE9iamVjdFRvcnJlbnQgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfR09UZSxcbiAgICB7IFtfaF06IFtcIkdFVFwiLCBcIi97S2V5K30/dG9ycmVudFwiLCAyMDBdIH0sXG4gICAgKCkgPT4gR2V0T2JqZWN0VG9ycmVudFJlcXVlc3QsXG4gICAgKCkgPT4gR2V0T2JqZWN0VG9ycmVudE91dHB1dCxcbl07XG52YXIgR2V0UHVibGljQWNjZXNzQmxvY2sgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfR1BBQixcbiAgICB7IFtfaF06IFtcIkdFVFwiLCBcIi8/cHVibGljQWNjZXNzQmxvY2tcIiwgMjAwXSB9LFxuICAgICgpID0+IEdldFB1YmxpY0FjY2Vzc0Jsb2NrUmVxdWVzdCxcbiAgICAoKSA9PiBHZXRQdWJsaWNBY2Nlc3NCbG9ja091dHB1dCxcbl07XG52YXIgSGVhZEJ1Y2tldCA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9IQixcbiAgICB7IFtfaF06IFtcIkhFQURcIiwgXCIvXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBIZWFkQnVja2V0UmVxdWVzdCxcbiAgICAoKSA9PiBIZWFkQnVja2V0T3V0cHV0LFxuXTtcbnZhciBIZWFkT2JqZWN0ID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0hPLFxuICAgIHsgW19oXTogW1wiSEVBRFwiLCBcIi97S2V5K31cIiwgMjAwXSB9LFxuICAgICgpID0+IEhlYWRPYmplY3RSZXF1ZXN0LFxuICAgICgpID0+IEhlYWRPYmplY3RPdXRwdXQsXG5dO1xudmFyIExpc3RCdWNrZXRBbmFseXRpY3NDb25maWd1cmF0aW9ucyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9MQkFDLFxuICAgIHsgW19oXTogW1wiR0VUXCIsIFwiLz9hbmFseXRpY3MmeC1pZD1MaXN0QnVja2V0QW5hbHl0aWNzQ29uZmlndXJhdGlvbnNcIiwgMjAwXSB9LFxuICAgICgpID0+IExpc3RCdWNrZXRBbmFseXRpY3NDb25maWd1cmF0aW9uc1JlcXVlc3QsXG4gICAgKCkgPT4gTGlzdEJ1Y2tldEFuYWx5dGljc0NvbmZpZ3VyYXRpb25zT3V0cHV0LFxuXTtcbnZhciBMaXN0QnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvbnMgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfTEJJVEMsXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIvP2ludGVsbGlnZW50LXRpZXJpbmcmeC1pZD1MaXN0QnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvbnNcIiwgMjAwXSB9LFxuICAgICgpID0+IExpc3RCdWNrZXRJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9uc1JlcXVlc3QsXG4gICAgKCkgPT4gTGlzdEJ1Y2tldEludGVsbGlnZW50VGllcmluZ0NvbmZpZ3VyYXRpb25zT3V0cHV0LFxuXTtcbnZhciBMaXN0QnVja2V0SW52ZW50b3J5Q29uZmlndXJhdGlvbnMgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfTEJJQyxcbiAgICB7IFtfaF06IFtcIkdFVFwiLCBcIi8/aW52ZW50b3J5JngtaWQ9TGlzdEJ1Y2tldEludmVudG9yeUNvbmZpZ3VyYXRpb25zXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBMaXN0QnVja2V0SW52ZW50b3J5Q29uZmlndXJhdGlvbnNSZXF1ZXN0LFxuICAgICgpID0+IExpc3RCdWNrZXRJbnZlbnRvcnlDb25maWd1cmF0aW9uc091dHB1dCxcbl07XG52YXIgTGlzdEJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9ucyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9MQk1DLFxuICAgIHsgW19oXTogW1wiR0VUXCIsIFwiLz9tZXRyaWNzJngtaWQ9TGlzdEJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9uc1wiLCAyMDBdIH0sXG4gICAgKCkgPT4gTGlzdEJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9uc1JlcXVlc3QsXG4gICAgKCkgPT4gTGlzdEJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9uc091dHB1dCxcbl07XG52YXIgTGlzdEJ1Y2tldHMgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfTEIsXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIvP3gtaWQ9TGlzdEJ1Y2tldHNcIiwgMjAwXSB9LFxuICAgICgpID0+IExpc3RCdWNrZXRzUmVxdWVzdCxcbiAgICAoKSA9PiBMaXN0QnVja2V0c091dHB1dCxcbl07XG52YXIgTGlzdERpcmVjdG9yeUJ1Y2tldHMgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfTERCLFxuICAgIHsgW19oXTogW1wiR0VUXCIsIFwiLz94LWlkPUxpc3REaXJlY3RvcnlCdWNrZXRzXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBMaXN0RGlyZWN0b3J5QnVja2V0c1JlcXVlc3QsXG4gICAgKCkgPT4gTGlzdERpcmVjdG9yeUJ1Y2tldHNPdXRwdXQsXG5dO1xudmFyIExpc3RNdWx0aXBhcnRVcGxvYWRzID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0xNVSxcbiAgICB7IFtfaF06IFtcIkdFVFwiLCBcIi8/dXBsb2Fkc1wiLCAyMDBdIH0sXG4gICAgKCkgPT4gTGlzdE11bHRpcGFydFVwbG9hZHNSZXF1ZXN0LFxuICAgICgpID0+IExpc3RNdWx0aXBhcnRVcGxvYWRzT3V0cHV0LFxuXTtcbnZhciBMaXN0T2JqZWN0cyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9MTyxcbiAgICB7IFtfaF06IFtcIkdFVFwiLCBcIi9cIiwgMjAwXSB9LFxuICAgICgpID0+IExpc3RPYmplY3RzUmVxdWVzdCxcbiAgICAoKSA9PiBMaXN0T2JqZWN0c091dHB1dCxcbl07XG52YXIgTGlzdE9iamVjdHNWMiA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9MT1YsXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIvP2xpc3QtdHlwZT0yXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBMaXN0T2JqZWN0c1YyUmVxdWVzdCxcbiAgICAoKSA9PiBMaXN0T2JqZWN0c1YyT3V0cHV0LFxuXTtcbnZhciBMaXN0T2JqZWN0VmVyc2lvbnMgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfTE9WaSxcbiAgICB7IFtfaF06IFtcIkdFVFwiLCBcIi8/dmVyc2lvbnNcIiwgMjAwXSB9LFxuICAgICgpID0+IExpc3RPYmplY3RWZXJzaW9uc1JlcXVlc3QsXG4gICAgKCkgPT4gTGlzdE9iamVjdFZlcnNpb25zT3V0cHV0LFxuXTtcbnZhciBMaXN0UGFydHMgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfTFAsXG4gICAgeyBbX2hdOiBbXCJHRVRcIiwgXCIve0tleSt9P3gtaWQ9TGlzdFBhcnRzXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBMaXN0UGFydHNSZXF1ZXN0LFxuICAgICgpID0+IExpc3RQYXJ0c091dHB1dCxcbl07XG52YXIgUHV0QnVja2V0QWJhYyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9QQkEsXG4gICAgeyBbX2hdOiBbXCJQVVRcIiwgXCIvP2FiYWNcIiwgMjAwXSB9LFxuICAgICgpID0+IFB1dEJ1Y2tldEFiYWNSZXF1ZXN0LFxuICAgICgpID0+IF9fVW5pdCxcbl07XG52YXIgUHV0QnVja2V0QWNjZWxlcmF0ZUNvbmZpZ3VyYXRpb24gPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfUEJBQyxcbiAgICB7IFtfaF06IFtcIlBVVFwiLCBcIi8/YWNjZWxlcmF0ZVwiLCAyMDBdIH0sXG4gICAgKCkgPT4gUHV0QnVja2V0QWNjZWxlcmF0ZUNvbmZpZ3VyYXRpb25SZXF1ZXN0LFxuICAgICgpID0+IF9fVW5pdCxcbl07XG52YXIgUHV0QnVja2V0QWNsID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX1BCQXUsXG4gICAgeyBbX2hdOiBbXCJQVVRcIiwgXCIvP2FjbFwiLCAyMDBdIH0sXG4gICAgKCkgPT4gUHV0QnVja2V0QWNsUmVxdWVzdCxcbiAgICAoKSA9PiBfX1VuaXQsXG5dO1xudmFyIFB1dEJ1Y2tldEFuYWx5dGljc0NvbmZpZ3VyYXRpb24gPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfUEJBQ3UsXG4gICAgeyBbX2hdOiBbXCJQVVRcIiwgXCIvP2FuYWx5dGljc1wiLCAyMDBdIH0sXG4gICAgKCkgPT4gUHV0QnVja2V0QW5hbHl0aWNzQ29uZmlndXJhdGlvblJlcXVlc3QsXG4gICAgKCkgPT4gX19Vbml0LFxuXTtcbnZhciBQdXRCdWNrZXRDb3JzID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX1BCQyxcbiAgICB7IFtfaF06IFtcIlBVVFwiLCBcIi8/Y29yc1wiLCAyMDBdIH0sXG4gICAgKCkgPT4gUHV0QnVja2V0Q29yc1JlcXVlc3QsXG4gICAgKCkgPT4gX19Vbml0LFxuXTtcbnZhciBQdXRCdWNrZXRFbmNyeXB0aW9uID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX1BCRSxcbiAgICB7IFtfaF06IFtcIlBVVFwiLCBcIi8/ZW5jcnlwdGlvblwiLCAyMDBdIH0sXG4gICAgKCkgPT4gUHV0QnVja2V0RW5jcnlwdGlvblJlcXVlc3QsXG4gICAgKCkgPT4gX19Vbml0LFxuXTtcbnZhciBQdXRCdWNrZXRJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9uID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX1BCSVRDLFxuICAgIHsgW19oXTogW1wiUFVUXCIsIFwiLz9pbnRlbGxpZ2VudC10aWVyaW5nXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBQdXRCdWNrZXRJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9uUmVxdWVzdCxcbiAgICAoKSA9PiBfX1VuaXQsXG5dO1xudmFyIFB1dEJ1Y2tldEludmVudG9yeUNvbmZpZ3VyYXRpb24gPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfUEJJQyxcbiAgICB7IFtfaF06IFtcIlBVVFwiLCBcIi8/aW52ZW50b3J5XCIsIDIwMF0gfSxcbiAgICAoKSA9PiBQdXRCdWNrZXRJbnZlbnRvcnlDb25maWd1cmF0aW9uUmVxdWVzdCxcbiAgICAoKSA9PiBfX1VuaXQsXG5dO1xudmFyIFB1dEJ1Y2tldExpZmVjeWNsZUNvbmZpZ3VyYXRpb24gPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfUEJMQyxcbiAgICB7IFtfaF06IFtcIlBVVFwiLCBcIi8/bGlmZWN5Y2xlXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBQdXRCdWNrZXRMaWZlY3ljbGVDb25maWd1cmF0aW9uUmVxdWVzdCxcbiAgICAoKSA9PiBQdXRCdWNrZXRMaWZlY3ljbGVDb25maWd1cmF0aW9uT3V0cHV0LFxuXTtcbnZhciBQdXRCdWNrZXRMb2dnaW5nID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX1BCTCxcbiAgICB7IFtfaF06IFtcIlBVVFwiLCBcIi8/bG9nZ2luZ1wiLCAyMDBdIH0sXG4gICAgKCkgPT4gUHV0QnVja2V0TG9nZ2luZ1JlcXVlc3QsXG4gICAgKCkgPT4gX19Vbml0LFxuXTtcbnZhciBQdXRCdWNrZXRNZXRyaWNzQ29uZmlndXJhdGlvbiA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9QQk1DLFxuICAgIHsgW19oXTogW1wiUFVUXCIsIFwiLz9tZXRyaWNzXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBQdXRCdWNrZXRNZXRyaWNzQ29uZmlndXJhdGlvblJlcXVlc3QsXG4gICAgKCkgPT4gX19Vbml0LFxuXTtcbnZhciBQdXRCdWNrZXROb3RpZmljYXRpb25Db25maWd1cmF0aW9uID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX1BCTkMsXG4gICAgeyBbX2hdOiBbXCJQVVRcIiwgXCIvP25vdGlmaWNhdGlvblwiLCAyMDBdIH0sXG4gICAgKCkgPT4gUHV0QnVja2V0Tm90aWZpY2F0aW9uQ29uZmlndXJhdGlvblJlcXVlc3QsXG4gICAgKCkgPT4gX19Vbml0LFxuXTtcbnZhciBQdXRCdWNrZXRPd25lcnNoaXBDb250cm9scyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9QQk9DLFxuICAgIHsgW19oXTogW1wiUFVUXCIsIFwiLz9vd25lcnNoaXBDb250cm9sc1wiLCAyMDBdIH0sXG4gICAgKCkgPT4gUHV0QnVja2V0T3duZXJzaGlwQ29udHJvbHNSZXF1ZXN0LFxuICAgICgpID0+IF9fVW5pdCxcbl07XG52YXIgUHV0QnVja2V0UG9saWN5ID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX1BCUCxcbiAgICB7IFtfaF06IFtcIlBVVFwiLCBcIi8/cG9saWN5XCIsIDIwMF0gfSxcbiAgICAoKSA9PiBQdXRCdWNrZXRQb2xpY3lSZXF1ZXN0LFxuICAgICgpID0+IF9fVW5pdCxcbl07XG52YXIgUHV0QnVja2V0UmVwbGljYXRpb24gPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfUEJSLFxuICAgIHsgW19oXTogW1wiUFVUXCIsIFwiLz9yZXBsaWNhdGlvblwiLCAyMDBdIH0sXG4gICAgKCkgPT4gUHV0QnVja2V0UmVwbGljYXRpb25SZXF1ZXN0LFxuICAgICgpID0+IF9fVW5pdCxcbl07XG52YXIgUHV0QnVja2V0UmVxdWVzdFBheW1lbnQgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfUEJSUCxcbiAgICB7IFtfaF06IFtcIlBVVFwiLCBcIi8/cmVxdWVzdFBheW1lbnRcIiwgMjAwXSB9LFxuICAgICgpID0+IFB1dEJ1Y2tldFJlcXVlc3RQYXltZW50UmVxdWVzdCxcbiAgICAoKSA9PiBfX1VuaXQsXG5dO1xudmFyIFB1dEJ1Y2tldFRhZ2dpbmcgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfUEJULFxuICAgIHsgW19oXTogW1wiUFVUXCIsIFwiLz90YWdnaW5nXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBQdXRCdWNrZXRUYWdnaW5nUmVxdWVzdCxcbiAgICAoKSA9PiBfX1VuaXQsXG5dO1xudmFyIFB1dEJ1Y2tldFZlcnNpb25pbmcgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfUEJWLFxuICAgIHsgW19oXTogW1wiUFVUXCIsIFwiLz92ZXJzaW9uaW5nXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBQdXRCdWNrZXRWZXJzaW9uaW5nUmVxdWVzdCxcbiAgICAoKSA9PiBfX1VuaXQsXG5dO1xudmFyIFB1dEJ1Y2tldFdlYnNpdGUgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfUEJXLFxuICAgIHsgW19oXTogW1wiUFVUXCIsIFwiLz93ZWJzaXRlXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBQdXRCdWNrZXRXZWJzaXRlUmVxdWVzdCxcbiAgICAoKSA9PiBfX1VuaXQsXG5dO1xudmFyIFB1dE9iamVjdCA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9QTyxcbiAgICB7IFtfaF06IFtcIlBVVFwiLCBcIi97S2V5K30/eC1pZD1QdXRPYmplY3RcIiwgMjAwXSB9LFxuICAgICgpID0+IFB1dE9iamVjdFJlcXVlc3QsXG4gICAgKCkgPT4gUHV0T2JqZWN0T3V0cHV0LFxuXTtcbnZhciBQdXRPYmplY3RBY2wgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfUE9BLFxuICAgIHsgW19oXTogW1wiUFVUXCIsIFwiL3tLZXkrfT9hY2xcIiwgMjAwXSB9LFxuICAgICgpID0+IFB1dE9iamVjdEFjbFJlcXVlc3QsXG4gICAgKCkgPT4gUHV0T2JqZWN0QWNsT3V0cHV0LFxuXTtcbnZhciBQdXRPYmplY3RMZWdhbEhvbGQgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfUE9MSCxcbiAgICB7IFtfaF06IFtcIlBVVFwiLCBcIi97S2V5K30/bGVnYWwtaG9sZFwiLCAyMDBdIH0sXG4gICAgKCkgPT4gUHV0T2JqZWN0TGVnYWxIb2xkUmVxdWVzdCxcbiAgICAoKSA9PiBQdXRPYmplY3RMZWdhbEhvbGRPdXRwdXQsXG5dO1xudmFyIFB1dE9iamVjdExvY2tDb25maWd1cmF0aW9uID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX1BPTEMsXG4gICAgeyBbX2hdOiBbXCJQVVRcIiwgXCIvP29iamVjdC1sb2NrXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBQdXRPYmplY3RMb2NrQ29uZmlndXJhdGlvblJlcXVlc3QsXG4gICAgKCkgPT4gUHV0T2JqZWN0TG9ja0NvbmZpZ3VyYXRpb25PdXRwdXQsXG5dO1xudmFyIFB1dE9iamVjdFJldGVudGlvbiA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9QT1J1LFxuICAgIHsgW19oXTogW1wiUFVUXCIsIFwiL3tLZXkrfT9yZXRlbnRpb25cIiwgMjAwXSB9LFxuICAgICgpID0+IFB1dE9iamVjdFJldGVudGlvblJlcXVlc3QsXG4gICAgKCkgPT4gUHV0T2JqZWN0UmV0ZW50aW9uT3V0cHV0LFxuXTtcbnZhciBQdXRPYmplY3RUYWdnaW5nID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX1BPVCxcbiAgICB7IFtfaF06IFtcIlBVVFwiLCBcIi97S2V5K30/dGFnZ2luZ1wiLCAyMDBdIH0sXG4gICAgKCkgPT4gUHV0T2JqZWN0VGFnZ2luZ1JlcXVlc3QsXG4gICAgKCkgPT4gUHV0T2JqZWN0VGFnZ2luZ091dHB1dCxcbl07XG52YXIgUHV0UHVibGljQWNjZXNzQmxvY2sgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfUFBBQixcbiAgICB7IFtfaF06IFtcIlBVVFwiLCBcIi8/cHVibGljQWNjZXNzQmxvY2tcIiwgMjAwXSB9LFxuICAgICgpID0+IFB1dFB1YmxpY0FjY2Vzc0Jsb2NrUmVxdWVzdCxcbiAgICAoKSA9PiBfX1VuaXQsXG5dO1xudmFyIFJlbmFtZU9iamVjdCA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9STyxcbiAgICB7IFtfaF06IFtcIlBVVFwiLCBcIi97S2V5K30/cmVuYW1lT2JqZWN0XCIsIDIwMF0gfSxcbiAgICAoKSA9PiBSZW5hbWVPYmplY3RSZXF1ZXN0LFxuICAgICgpID0+IFJlbmFtZU9iamVjdE91dHB1dCxcbl07XG52YXIgUmVzdG9yZU9iamVjdCA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9ST2UsXG4gICAgeyBbX2hdOiBbXCJQT1NUXCIsIFwiL3tLZXkrfT9yZXN0b3JlXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBSZXN0b3JlT2JqZWN0UmVxdWVzdCxcbiAgICAoKSA9PiBSZXN0b3JlT2JqZWN0T3V0cHV0LFxuXTtcbnZhciBTZWxlY3RPYmplY3RDb250ZW50ID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX1NPQyxcbiAgICB7IFtfaF06IFtcIlBPU1RcIiwgXCIve0tleSt9P3NlbGVjdCZzZWxlY3QtdHlwZT0yXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBTZWxlY3RPYmplY3RDb250ZW50UmVxdWVzdCxcbiAgICAoKSA9PiBTZWxlY3RPYmplY3RDb250ZW50T3V0cHV0LFxuXTtcbnZhciBVcGRhdGVCdWNrZXRNZXRhZGF0YUludmVudG9yeVRhYmxlQ29uZmlndXJhdGlvbiA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9VQk1JVEMsXG4gICAgeyBbX2hdOiBbXCJQVVRcIiwgXCIvP21ldGFkYXRhSW52ZW50b3J5VGFibGVcIiwgMjAwXSB9LFxuICAgICgpID0+IFVwZGF0ZUJ1Y2tldE1ldGFkYXRhSW52ZW50b3J5VGFibGVDb25maWd1cmF0aW9uUmVxdWVzdCxcbiAgICAoKSA9PiBfX1VuaXQsXG5dO1xudmFyIFVwZGF0ZUJ1Y2tldE1ldGFkYXRhSm91cm5hbFRhYmxlQ29uZmlndXJhdGlvbiA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9VQk1KVEMsXG4gICAgeyBbX2hdOiBbXCJQVVRcIiwgXCIvP21ldGFkYXRhSm91cm5hbFRhYmxlXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBVcGRhdGVCdWNrZXRNZXRhZGF0YUpvdXJuYWxUYWJsZUNvbmZpZ3VyYXRpb25SZXF1ZXN0LFxuICAgICgpID0+IF9fVW5pdCxcbl07XG52YXIgVXBsb2FkUGFydCA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9VUCxcbiAgICB7IFtfaF06IFtcIlBVVFwiLCBcIi97S2V5K30/eC1pZD1VcGxvYWRQYXJ0XCIsIDIwMF0gfSxcbiAgICAoKSA9PiBVcGxvYWRQYXJ0UmVxdWVzdCxcbiAgICAoKSA9PiBVcGxvYWRQYXJ0T3V0cHV0LFxuXTtcbnZhciBVcGxvYWRQYXJ0Q29weSA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9VUEMsXG4gICAgeyBbX2hdOiBbXCJQVVRcIiwgXCIve0tleSt9P3gtaWQ9VXBsb2FkUGFydENvcHlcIiwgMjAwXSB9LFxuICAgICgpID0+IFVwbG9hZFBhcnRDb3B5UmVxdWVzdCxcbiAgICAoKSA9PiBVcGxvYWRQYXJ0Q29weU91dHB1dCxcbl07XG52YXIgV3JpdGVHZXRPYmplY3RSZXNwb25zZSA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9XR09SLFxuICAgIHsgW19lbl06IFtcIntSZXF1ZXN0Um91dGV9LlwiXSwgW19oXTogW1wiUE9TVFwiLCBcIi9Xcml0ZUdldE9iamVjdFJlc3BvbnNlXCIsIDIwMF0gfSxcbiAgICAoKSA9PiBXcml0ZUdldE9iamVjdFJlc3BvbnNlUmVxdWVzdCxcbiAgICAoKSA9PiBfX1VuaXQsXG5dO1xuXG5jbGFzcyBDcmVhdGVTZXNzaW9uQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgRGlzYWJsZVMzRXhwcmVzc1Nlc3Npb25BdXRoOiB7IHR5cGU6IFwic3RhdGljQ29udGV4dFBhcmFtc1wiLCB2YWx1ZTogdHJ1ZSB9LFxuICAgIEJ1Y2tldDogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJCdWNrZXRcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKSwgbWlkZGxld2FyZVNka1MzLmdldFRocm93MjAwRXhjZXB0aW9uc1BsdWdpbihjb25maWcpXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIkNyZWF0ZVNlc3Npb25cIiwge30pXG4gICAgLm4oXCJTM0NsaWVudFwiLCBcIkNyZWF0ZVNlc3Npb25Db21tYW5kXCIpXG4gICAgLnNjKENyZWF0ZVNlc3Npb24pXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jb25zdCBnZXRIdHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24gPSAocnVudGltZUNvbmZpZykgPT4ge1xuICAgIGNvbnN0IF9odHRwQXV0aFNjaGVtZXMgPSBydW50aW1lQ29uZmlnLmh0dHBBdXRoU2NoZW1lcztcbiAgICBsZXQgX2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSBydW50aW1lQ29uZmlnLmh0dHBBdXRoU2NoZW1lUHJvdmlkZXI7XG4gICAgbGV0IF9jcmVkZW50aWFscyA9IHJ1bnRpbWVDb25maWcuY3JlZGVudGlhbHM7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc2V0SHR0cEF1dGhTY2hlbWUoaHR0cEF1dGhTY2hlbWUpIHtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gX2h0dHBBdXRoU2NoZW1lcy5maW5kSW5kZXgoKHNjaGVtZSkgPT4gc2NoZW1lLnNjaGVtZUlkID09PSBodHRwQXV0aFNjaGVtZS5zY2hlbWVJZCk7XG4gICAgICAgICAgICBpZiAoaW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgX2h0dHBBdXRoU2NoZW1lcy5wdXNoKGh0dHBBdXRoU2NoZW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIF9odHRwQXV0aFNjaGVtZXMuc3BsaWNlKGluZGV4LCAxLCBodHRwQXV0aFNjaGVtZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGh0dHBBdXRoU2NoZW1lcygpIHtcbiAgICAgICAgICAgIHJldHVybiBfaHR0cEF1dGhTY2hlbWVzO1xuICAgICAgICB9LFxuICAgICAgICBzZXRIdHRwQXV0aFNjaGVtZVByb3ZpZGVyKGh0dHBBdXRoU2NoZW1lUHJvdmlkZXIpIHtcbiAgICAgICAgICAgIF9odHRwQXV0aFNjaGVtZVByb3ZpZGVyID0gaHR0cEF1dGhTY2hlbWVQcm92aWRlcjtcbiAgICAgICAgfSxcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVQcm92aWRlcigpIHtcbiAgICAgICAgICAgIHJldHVybiBfaHR0cEF1dGhTY2hlbWVQcm92aWRlcjtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0Q3JlZGVudGlhbHMoY3JlZGVudGlhbHMpIHtcbiAgICAgICAgICAgIF9jcmVkZW50aWFscyA9IGNyZWRlbnRpYWxzO1xuICAgICAgICB9LFxuICAgICAgICBjcmVkZW50aWFscygpIHtcbiAgICAgICAgICAgIHJldHVybiBfY3JlZGVudGlhbHM7XG4gICAgICAgIH0sXG4gICAgfTtcbn07XG5jb25zdCByZXNvbHZlSHR0cEF1dGhSdW50aW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIGh0dHBBdXRoU2NoZW1lczogY29uZmlnLmh0dHBBdXRoU2NoZW1lcygpLFxuICAgICAgICBodHRwQXV0aFNjaGVtZVByb3ZpZGVyOiBjb25maWcuaHR0cEF1dGhTY2hlbWVQcm92aWRlcigpLFxuICAgICAgICBjcmVkZW50aWFsczogY29uZmlnLmNyZWRlbnRpYWxzKCksXG4gICAgfTtcbn07XG5cbmNvbnN0IHJlc29sdmVSdW50aW1lRXh0ZW5zaW9ucyA9IChydW50aW1lQ29uZmlnLCBleHRlbnNpb25zKSA9PiB7XG4gICAgY29uc3QgZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiA9IE9iamVjdC5hc3NpZ24ocmVnaW9uQ29uZmlnUmVzb2x2ZXIuZ2V0QXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbihydW50aW1lQ29uZmlnKSwgc21pdGh5Q2xpZW50LmdldERlZmF1bHRFeHRlbnNpb25Db25maWd1cmF0aW9uKHJ1bnRpbWVDb25maWcpLCBwcm90b2NvbEh0dHAuZ2V0SHR0cEhhbmRsZXJFeHRlbnNpb25Db25maWd1cmF0aW9uKHJ1bnRpbWVDb25maWcpLCBnZXRIdHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24ocnVudGltZUNvbmZpZykpO1xuICAgIGV4dGVuc2lvbnMuZm9yRWFjaCgoZXh0ZW5zaW9uKSA9PiBleHRlbnNpb24uY29uZmlndXJlKGV4dGVuc2lvbkNvbmZpZ3VyYXRpb24pKTtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihydW50aW1lQ29uZmlnLCByZWdpb25Db25maWdSZXNvbHZlci5yZXNvbHZlQXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbihleHRlbnNpb25Db25maWd1cmF0aW9uKSwgc21pdGh5Q2xpZW50LnJlc29sdmVEZWZhdWx0UnVudGltZUNvbmZpZyhleHRlbnNpb25Db25maWd1cmF0aW9uKSwgcHJvdG9jb2xIdHRwLnJlc29sdmVIdHRwSGFuZGxlclJ1bnRpbWVDb25maWcoZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiksIHJlc29sdmVIdHRwQXV0aFJ1bnRpbWVDb25maWcoZXh0ZW5zaW9uQ29uZmlndXJhdGlvbikpO1xufTtcblxuY2xhc3MgUzNDbGllbnQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ2xpZW50IHtcbiAgICBjb25maWc7XG4gICAgY29uc3RydWN0b3IoLi4uW2NvbmZpZ3VyYXRpb25dKSB7XG4gICAgICAgIGNvbnN0IF9jb25maWdfMCA9IHJ1bnRpbWVDb25maWcuZ2V0UnVudGltZUNvbmZpZyhjb25maWd1cmF0aW9uIHx8IHt9KTtcbiAgICAgICAgc3VwZXIoX2NvbmZpZ18wKTtcbiAgICAgICAgdGhpcy5pbml0Q29uZmlnID0gX2NvbmZpZ18wO1xuICAgICAgICBjb25zdCBfY29uZmlnXzEgPSByZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzKF9jb25maWdfMCk7XG4gICAgICAgIGNvbnN0IF9jb25maWdfMiA9IG1pZGRsZXdhcmVVc2VyQWdlbnQucmVzb2x2ZVVzZXJBZ2VudENvbmZpZyhfY29uZmlnXzEpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzMgPSBtaWRkbGV3YXJlRmxleGlibGVDaGVja3N1bXMucmVzb2x2ZUZsZXhpYmxlQ2hlY2tzdW1zQ29uZmlnKF9jb25maWdfMik7XG4gICAgICAgIGNvbnN0IF9jb25maWdfNCA9IG1pZGRsZXdhcmVSZXRyeS5yZXNvbHZlUmV0cnlDb25maWcoX2NvbmZpZ18zKTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ181ID0gY29uZmlnUmVzb2x2ZXIucmVzb2x2ZVJlZ2lvbkNvbmZpZyhfY29uZmlnXzQpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzYgPSBtaWRkbGV3YXJlSG9zdEhlYWRlci5yZXNvbHZlSG9zdEhlYWRlckNvbmZpZyhfY29uZmlnXzUpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzcgPSBtaWRkbGV3YXJlRW5kcG9pbnQucmVzb2x2ZUVuZHBvaW50Q29uZmlnKF9jb25maWdfNik7XG4gICAgICAgIGNvbnN0IF9jb25maWdfOCA9IGV2ZW50c3RyZWFtU2VyZGVDb25maWdSZXNvbHZlci5yZXNvbHZlRXZlbnRTdHJlYW1TZXJkZUNvbmZpZyhfY29uZmlnXzcpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzkgPSBodHRwQXV0aFNjaGVtZVByb3ZpZGVyLnJlc29sdmVIdHRwQXV0aFNjaGVtZUNvbmZpZyhfY29uZmlnXzgpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzEwID0gbWlkZGxld2FyZVNka1MzLnJlc29sdmVTM0NvbmZpZyhfY29uZmlnXzksIHsgc2Vzc2lvbjogWygpID0+IHRoaXMsIENyZWF0ZVNlc3Npb25Db21tYW5kXSB9KTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ18xMSA9IHJlc29sdmVSdW50aW1lRXh0ZW5zaW9ucyhfY29uZmlnXzEwLCBjb25maWd1cmF0aW9uPy5leHRlbnNpb25zIHx8IFtdKTtcbiAgICAgICAgdGhpcy5jb25maWcgPSBfY29uZmlnXzExO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2Uoc2NoZW1hLmdldFNjaGVtYVNlcmRlUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShtaWRkbGV3YXJlVXNlckFnZW50LmdldFVzZXJBZ2VudFBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UobWlkZGxld2FyZVJldHJ5LmdldFJldHJ5UGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShtaWRkbGV3YXJlQ29udGVudExlbmd0aC5nZXRDb250ZW50TGVuZ3RoUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShtaWRkbGV3YXJlSG9zdEhlYWRlci5nZXRIb3N0SGVhZGVyUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShtaWRkbGV3YXJlTG9nZ2VyLmdldExvZ2dlclBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UobWlkZGxld2FyZVJlY3Vyc2lvbkRldGVjdGlvbi5nZXRSZWN1cnNpb25EZXRlY3Rpb25QbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGNvcmUuZ2V0SHR0cEF1dGhTY2hlbWVFbmRwb2ludFJ1bGVTZXRQbHVnaW4odGhpcy5jb25maWcsIHtcbiAgICAgICAgICAgIGh0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyOiBodHRwQXV0aFNjaGVtZVByb3ZpZGVyLmRlZmF1bHRTM0h0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyLFxuICAgICAgICAgICAgaWRlbnRpdHlQcm92aWRlckNvbmZpZ1Byb3ZpZGVyOiBhc3luYyAoY29uZmlnKSA9PiBuZXcgY29yZS5EZWZhdWx0SWRlbnRpdHlQcm92aWRlckNvbmZpZyh7XG4gICAgICAgICAgICAgICAgXCJhd3MuYXV0aCNzaWd2NFwiOiBjb25maWcuY3JlZGVudGlhbHMsXG4gICAgICAgICAgICAgICAgXCJhd3MuYXV0aCNzaWd2NGFcIjogY29uZmlnLmNyZWRlbnRpYWxzLFxuICAgICAgICAgICAgfSksXG4gICAgICAgIH0pKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGNvcmUuZ2V0SHR0cFNpZ25pbmdQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKG1pZGRsZXdhcmVTZGtTMy5nZXRWYWxpZGF0ZUJ1Y2tldE5hbWVQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKG1pZGRsZXdhcmVFeHBlY3RDb250aW51ZS5nZXRBZGRFeHBlY3RDb250aW51ZVBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UobWlkZGxld2FyZVNka1MzLmdldFJlZ2lvblJlZGlyZWN0TWlkZGxld2FyZVBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UobWlkZGxld2FyZVNka1MzLmdldFMzRXhwcmVzc1BsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UobWlkZGxld2FyZVNka1MzLmdldFMzRXhwcmVzc0h0dHBTaWduaW5nUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgfVxuICAgIGRlc3Ryb3koKSB7XG4gICAgICAgIHN1cGVyLmRlc3Ryb3koKTtcbiAgICB9XG59XG5cbmNsYXNzIEFib3J0TXVsdGlwYXJ0VXBsb2FkQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG4gICAgS2V5OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIktleVwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpLCBtaWRkbGV3YXJlU2RrUzMuZ2V0VGhyb3cyMDBFeGNlcHRpb25zUGx1Z2luKGNvbmZpZyldO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiQWJvcnRNdWx0aXBhcnRVcGxvYWRcIiwge30pXG4gICAgLm4oXCJTM0NsaWVudFwiLCBcIkFib3J0TXVsdGlwYXJ0VXBsb2FkQ29tbWFuZFwiKVxuICAgIC5zYyhBYm9ydE11bHRpcGFydFVwbG9hZClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIENvbXBsZXRlTXVsdGlwYXJ0VXBsb2FkQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG4gICAgS2V5OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIktleVwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgICAgbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKSxcbiAgICAgICAgbWlkZGxld2FyZVNka1MzLmdldFRocm93MjAwRXhjZXB0aW9uc1BsdWdpbihjb25maWcpLFxuICAgICAgICBtaWRkbGV3YXJlU3NlYy5nZXRTc2VjUGx1Z2luKGNvbmZpZyksXG4gICAgXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIkNvbXBsZXRlTXVsdGlwYXJ0VXBsb2FkXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJDb21wbGV0ZU11bHRpcGFydFVwbG9hZENvbW1hbmRcIilcbiAgICAuc2MoQ29tcGxldGVNdWx0aXBhcnRVcGxvYWQpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBDb3B5T2JqZWN0Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgRGlzYWJsZVMzRXhwcmVzc1Nlc3Npb25BdXRoOiB7IHR5cGU6IFwic3RhdGljQ29udGV4dFBhcmFtc1wiLCB2YWx1ZTogdHJ1ZSB9LFxuICAgIEJ1Y2tldDogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJCdWNrZXRcIiB9LFxuICAgIEtleTogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJLZXlcIiB9LFxuICAgIENvcHlTb3VyY2U6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQ29weVNvdXJjZVwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgICAgbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKSxcbiAgICAgICAgbWlkZGxld2FyZVNka1MzLmdldFRocm93MjAwRXhjZXB0aW9uc1BsdWdpbihjb25maWcpLFxuICAgICAgICBtaWRkbGV3YXJlU3NlYy5nZXRTc2VjUGx1Z2luKGNvbmZpZyksXG4gICAgXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIkNvcHlPYmplY3RcIiwge30pXG4gICAgLm4oXCJTM0NsaWVudFwiLCBcIkNvcHlPYmplY3RDb21tYW5kXCIpXG4gICAgLnNjKENvcHlPYmplY3QpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBDcmVhdGVCdWNrZXRDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBVc2VTM0V4cHJlc3NDb250cm9sRW5kcG9pbnQ6IHsgdHlwZTogXCJzdGF0aWNDb250ZXh0UGFyYW1zXCIsIHZhbHVlOiB0cnVlIH0sXG4gICAgRGlzYWJsZUFjY2Vzc1BvaW50czogeyB0eXBlOiBcInN0YXRpY0NvbnRleHRQYXJhbXNcIiwgdmFsdWU6IHRydWUgfSxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW1xuICAgICAgICBtaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpLFxuICAgICAgICBtaWRkbGV3YXJlU2RrUzMuZ2V0VGhyb3cyMDBFeGNlcHRpb25zUGx1Z2luKGNvbmZpZyksXG4gICAgICAgIG1pZGRsZXdhcmVMb2NhdGlvbkNvbnN0cmFpbnQuZ2V0TG9jYXRpb25Db25zdHJhaW50UGx1Z2luKGNvbmZpZyksXG4gICAgXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIkNyZWF0ZUJ1Y2tldFwiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiQ3JlYXRlQnVja2V0Q29tbWFuZFwiKVxuICAgIC5zYyhDcmVhdGVCdWNrZXQpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBDcmVhdGVCdWNrZXRNZXRhZGF0YUNvbmZpZ3VyYXRpb25Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBVc2VTM0V4cHJlc3NDb250cm9sRW5kcG9pbnQ6IHsgdHlwZTogXCJzdGF0aWNDb250ZXh0UGFyYW1zXCIsIHZhbHVlOiB0cnVlIH0sXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgICAgbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKSxcbiAgICAgICAgbWlkZGxld2FyZUZsZXhpYmxlQ2hlY2tzdW1zLmdldEZsZXhpYmxlQ2hlY2tzdW1zUGx1Z2luKGNvbmZpZywge1xuICAgICAgICAgICAgcmVxdWVzdEFsZ29yaXRobU1lbWJlcjogeyBodHRwSGVhZGVyOiBcIngtYW16LXNkay1jaGVja3N1bS1hbGdvcml0aG1cIiwgbmFtZTogXCJDaGVja3N1bUFsZ29yaXRobVwiIH0sXG4gICAgICAgICAgICByZXF1ZXN0Q2hlY2tzdW1SZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSksXG4gICAgXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIkNyZWF0ZUJ1Y2tldE1ldGFkYXRhQ29uZmlndXJhdGlvblwiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiQ3JlYXRlQnVja2V0TWV0YWRhdGFDb25maWd1cmF0aW9uQ29tbWFuZFwiKVxuICAgIC5zYyhDcmVhdGVCdWNrZXRNZXRhZGF0YUNvbmZpZ3VyYXRpb24pXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBDcmVhdGVCdWNrZXRNZXRhZGF0YVRhYmxlQ29uZmlndXJhdGlvbkNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFVzZVMzRXhwcmVzc0NvbnRyb2xFbmRwb2ludDogeyB0eXBlOiBcInN0YXRpY0NvbnRleHRQYXJhbXNcIiwgdmFsdWU6IHRydWUgfSxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW1xuICAgICAgICBtaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpLFxuICAgICAgICBtaWRkbGV3YXJlRmxleGlibGVDaGVja3N1bXMuZ2V0RmxleGlibGVDaGVja3N1bXNQbHVnaW4oY29uZmlnLCB7XG4gICAgICAgICAgICByZXF1ZXN0QWxnb3JpdGhtTWVtYmVyOiB7IGh0dHBIZWFkZXI6IFwieC1hbXotc2RrLWNoZWNrc3VtLWFsZ29yaXRobVwiLCBuYW1lOiBcIkNoZWNrc3VtQWxnb3JpdGhtXCIgfSxcbiAgICAgICAgICAgIHJlcXVlc3RDaGVja3N1bVJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9KSxcbiAgICBdO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiQ3JlYXRlQnVja2V0TWV0YWRhdGFUYWJsZUNvbmZpZ3VyYXRpb25cIiwge30pXG4gICAgLm4oXCJTM0NsaWVudFwiLCBcIkNyZWF0ZUJ1Y2tldE1ldGFkYXRhVGFibGVDb25maWd1cmF0aW9uQ29tbWFuZFwiKVxuICAgIC5zYyhDcmVhdGVCdWNrZXRNZXRhZGF0YVRhYmxlQ29uZmlndXJhdGlvbilcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIENyZWF0ZU11bHRpcGFydFVwbG9hZENvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIEJ1Y2tldDogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJCdWNrZXRcIiB9LFxuICAgIEtleTogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJLZXlcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbXG4gICAgICAgIG1pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSksXG4gICAgICAgIG1pZGRsZXdhcmVTZGtTMy5nZXRUaHJvdzIwMEV4Y2VwdGlvbnNQbHVnaW4oY29uZmlnKSxcbiAgICAgICAgbWlkZGxld2FyZVNzZWMuZ2V0U3NlY1BsdWdpbihjb25maWcpLFxuICAgIF07XG59KVxuICAgIC5zKFwiQW1hem9uUzNcIiwgXCJDcmVhdGVNdWx0aXBhcnRVcGxvYWRcIiwge30pXG4gICAgLm4oXCJTM0NsaWVudFwiLCBcIkNyZWF0ZU11bHRpcGFydFVwbG9hZENvbW1hbmRcIilcbiAgICAuc2MoQ3JlYXRlTXVsdGlwYXJ0VXBsb2FkKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgRGVsZXRlQnVja2V0QW5hbHl0aWNzQ29uZmlndXJhdGlvbkNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFVzZVMzRXhwcmVzc0NvbnRyb2xFbmRwb2ludDogeyB0eXBlOiBcInN0YXRpY0NvbnRleHRQYXJhbXNcIiwgdmFsdWU6IHRydWUgfSxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiRGVsZXRlQnVja2V0QW5hbHl0aWNzQ29uZmlndXJhdGlvblwiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiRGVsZXRlQnVja2V0QW5hbHl0aWNzQ29uZmlndXJhdGlvbkNvbW1hbmRcIilcbiAgICAuc2MoRGVsZXRlQnVja2V0QW5hbHl0aWNzQ29uZmlndXJhdGlvbilcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERlbGV0ZUJ1Y2tldENvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFVzZVMzRXhwcmVzc0NvbnRyb2xFbmRwb2ludDogeyB0eXBlOiBcInN0YXRpY0NvbnRleHRQYXJhbXNcIiwgdmFsdWU6IHRydWUgfSxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiRGVsZXRlQnVja2V0XCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJEZWxldGVCdWNrZXRDb21tYW5kXCIpXG4gICAgLnNjKERlbGV0ZUJ1Y2tldClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERlbGV0ZUJ1Y2tldENvcnNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBVc2VTM0V4cHJlc3NDb250cm9sRW5kcG9pbnQ6IHsgdHlwZTogXCJzdGF0aWNDb250ZXh0UGFyYW1zXCIsIHZhbHVlOiB0cnVlIH0sXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIkRlbGV0ZUJ1Y2tldENvcnNcIiwge30pXG4gICAgLm4oXCJTM0NsaWVudFwiLCBcIkRlbGV0ZUJ1Y2tldENvcnNDb21tYW5kXCIpXG4gICAgLnNjKERlbGV0ZUJ1Y2tldENvcnMpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZWxldGVCdWNrZXRFbmNyeXB0aW9uQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgVXNlUzNFeHByZXNzQ29udHJvbEVuZHBvaW50OiB7IHR5cGU6IFwic3RhdGljQ29udGV4dFBhcmFtc1wiLCB2YWx1ZTogdHJ1ZSB9LFxuICAgIEJ1Y2tldDogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJCdWNrZXRcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQW1hem9uUzNcIiwgXCJEZWxldGVCdWNrZXRFbmNyeXB0aW9uXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJEZWxldGVCdWNrZXRFbmNyeXB0aW9uQ29tbWFuZFwiKVxuICAgIC5zYyhEZWxldGVCdWNrZXRFbmNyeXB0aW9uKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgRGVsZXRlQnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvbkNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFVzZVMzRXhwcmVzc0NvbnRyb2xFbmRwb2ludDogeyB0eXBlOiBcInN0YXRpY0NvbnRleHRQYXJhbXNcIiwgdmFsdWU6IHRydWUgfSxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiRGVsZXRlQnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvblwiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiRGVsZXRlQnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvbkNvbW1hbmRcIilcbiAgICAuc2MoRGVsZXRlQnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvbilcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERlbGV0ZUJ1Y2tldEludmVudG9yeUNvbmZpZ3VyYXRpb25Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBVc2VTM0V4cHJlc3NDb250cm9sRW5kcG9pbnQ6IHsgdHlwZTogXCJzdGF0aWNDb250ZXh0UGFyYW1zXCIsIHZhbHVlOiB0cnVlIH0sXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIkRlbGV0ZUJ1Y2tldEludmVudG9yeUNvbmZpZ3VyYXRpb25cIiwge30pXG4gICAgLm4oXCJTM0NsaWVudFwiLCBcIkRlbGV0ZUJ1Y2tldEludmVudG9yeUNvbmZpZ3VyYXRpb25Db21tYW5kXCIpXG4gICAgLnNjKERlbGV0ZUJ1Y2tldEludmVudG9yeUNvbmZpZ3VyYXRpb24pXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZWxldGVCdWNrZXRMaWZlY3ljbGVDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBVc2VTM0V4cHJlc3NDb250cm9sRW5kcG9pbnQ6IHsgdHlwZTogXCJzdGF0aWNDb250ZXh0UGFyYW1zXCIsIHZhbHVlOiB0cnVlIH0sXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIkRlbGV0ZUJ1Y2tldExpZmVjeWNsZVwiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiRGVsZXRlQnVja2V0TGlmZWN5Y2xlQ29tbWFuZFwiKVxuICAgIC5zYyhEZWxldGVCdWNrZXRMaWZlY3ljbGUpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZWxldGVCdWNrZXRNZXRhZGF0YUNvbmZpZ3VyYXRpb25Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBVc2VTM0V4cHJlc3NDb250cm9sRW5kcG9pbnQ6IHsgdHlwZTogXCJzdGF0aWNDb250ZXh0UGFyYW1zXCIsIHZhbHVlOiB0cnVlIH0sXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIkRlbGV0ZUJ1Y2tldE1ldGFkYXRhQ29uZmlndXJhdGlvblwiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiRGVsZXRlQnVja2V0TWV0YWRhdGFDb25maWd1cmF0aW9uQ29tbWFuZFwiKVxuICAgIC5zYyhEZWxldGVCdWNrZXRNZXRhZGF0YUNvbmZpZ3VyYXRpb24pXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZWxldGVCdWNrZXRNZXRhZGF0YVRhYmxlQ29uZmlndXJhdGlvbkNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFVzZVMzRXhwcmVzc0NvbnRyb2xFbmRwb2ludDogeyB0eXBlOiBcInN0YXRpY0NvbnRleHRQYXJhbXNcIiwgdmFsdWU6IHRydWUgfSxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiRGVsZXRlQnVja2V0TWV0YWRhdGFUYWJsZUNvbmZpZ3VyYXRpb25cIiwge30pXG4gICAgLm4oXCJTM0NsaWVudFwiLCBcIkRlbGV0ZUJ1Y2tldE1ldGFkYXRhVGFibGVDb25maWd1cmF0aW9uQ29tbWFuZFwiKVxuICAgIC5zYyhEZWxldGVCdWNrZXRNZXRhZGF0YVRhYmxlQ29uZmlndXJhdGlvbilcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERlbGV0ZUJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9uQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgVXNlUzNFeHByZXNzQ29udHJvbEVuZHBvaW50OiB7IHR5cGU6IFwic3RhdGljQ29udGV4dFBhcmFtc1wiLCB2YWx1ZTogdHJ1ZSB9LFxuICAgIEJ1Y2tldDogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJCdWNrZXRcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQW1hem9uUzNcIiwgXCJEZWxldGVCdWNrZXRNZXRyaWNzQ29uZmlndXJhdGlvblwiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiRGVsZXRlQnVja2V0TWV0cmljc0NvbmZpZ3VyYXRpb25Db21tYW5kXCIpXG4gICAgLnNjKERlbGV0ZUJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9uKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgRGVsZXRlQnVja2V0T3duZXJzaGlwQ29udHJvbHNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBVc2VTM0V4cHJlc3NDb250cm9sRW5kcG9pbnQ6IHsgdHlwZTogXCJzdGF0aWNDb250ZXh0UGFyYW1zXCIsIHZhbHVlOiB0cnVlIH0sXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIkRlbGV0ZUJ1Y2tldE93bmVyc2hpcENvbnRyb2xzXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJEZWxldGVCdWNrZXRPd25lcnNoaXBDb250cm9sc0NvbW1hbmRcIilcbiAgICAuc2MoRGVsZXRlQnVja2V0T3duZXJzaGlwQ29udHJvbHMpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZWxldGVCdWNrZXRQb2xpY3lDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBVc2VTM0V4cHJlc3NDb250cm9sRW5kcG9pbnQ6IHsgdHlwZTogXCJzdGF0aWNDb250ZXh0UGFyYW1zXCIsIHZhbHVlOiB0cnVlIH0sXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIkRlbGV0ZUJ1Y2tldFBvbGljeVwiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiRGVsZXRlQnVja2V0UG9saWN5Q29tbWFuZFwiKVxuICAgIC5zYyhEZWxldGVCdWNrZXRQb2xpY3kpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZWxldGVCdWNrZXRSZXBsaWNhdGlvbkNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFVzZVMzRXhwcmVzc0NvbnRyb2xFbmRwb2ludDogeyB0eXBlOiBcInN0YXRpY0NvbnRleHRQYXJhbXNcIiwgdmFsdWU6IHRydWUgfSxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiRGVsZXRlQnVja2V0UmVwbGljYXRpb25cIiwge30pXG4gICAgLm4oXCJTM0NsaWVudFwiLCBcIkRlbGV0ZUJ1Y2tldFJlcGxpY2F0aW9uQ29tbWFuZFwiKVxuICAgIC5zYyhEZWxldGVCdWNrZXRSZXBsaWNhdGlvbilcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERlbGV0ZUJ1Y2tldFRhZ2dpbmdDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBVc2VTM0V4cHJlc3NDb250cm9sRW5kcG9pbnQ6IHsgdHlwZTogXCJzdGF0aWNDb250ZXh0UGFyYW1zXCIsIHZhbHVlOiB0cnVlIH0sXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIkRlbGV0ZUJ1Y2tldFRhZ2dpbmdcIiwge30pXG4gICAgLm4oXCJTM0NsaWVudFwiLCBcIkRlbGV0ZUJ1Y2tldFRhZ2dpbmdDb21tYW5kXCIpXG4gICAgLnNjKERlbGV0ZUJ1Y2tldFRhZ2dpbmcpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZWxldGVCdWNrZXRXZWJzaXRlQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgVXNlUzNFeHByZXNzQ29udHJvbEVuZHBvaW50OiB7IHR5cGU6IFwic3RhdGljQ29udGV4dFBhcmFtc1wiLCB2YWx1ZTogdHJ1ZSB9LFxuICAgIEJ1Y2tldDogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJCdWNrZXRcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQW1hem9uUzNcIiwgXCJEZWxldGVCdWNrZXRXZWJzaXRlXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJEZWxldGVCdWNrZXRXZWJzaXRlQ29tbWFuZFwiKVxuICAgIC5zYyhEZWxldGVCdWNrZXRXZWJzaXRlKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgRGVsZXRlT2JqZWN0Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG4gICAgS2V5OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIktleVwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpLCBtaWRkbGV3YXJlU2RrUzMuZ2V0VGhyb3cyMDBFeGNlcHRpb25zUGx1Z2luKGNvbmZpZyldO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiRGVsZXRlT2JqZWN0XCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJEZWxldGVPYmplY3RDb21tYW5kXCIpXG4gICAgLnNjKERlbGV0ZU9iamVjdClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERlbGV0ZU9iamVjdHNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW1xuICAgICAgICBtaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpLFxuICAgICAgICBtaWRkbGV3YXJlRmxleGlibGVDaGVja3N1bXMuZ2V0RmxleGlibGVDaGVja3N1bXNQbHVnaW4oY29uZmlnLCB7XG4gICAgICAgICAgICByZXF1ZXN0QWxnb3JpdGhtTWVtYmVyOiB7IGh0dHBIZWFkZXI6IFwieC1hbXotc2RrLWNoZWNrc3VtLWFsZ29yaXRobVwiLCBuYW1lOiBcIkNoZWNrc3VtQWxnb3JpdGhtXCIgfSxcbiAgICAgICAgICAgIHJlcXVlc3RDaGVja3N1bVJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9KSxcbiAgICAgICAgbWlkZGxld2FyZVNka1MzLmdldFRocm93MjAwRXhjZXB0aW9uc1BsdWdpbihjb25maWcpLFxuICAgIF07XG59KVxuICAgIC5zKFwiQW1hem9uUzNcIiwgXCJEZWxldGVPYmplY3RzXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJEZWxldGVPYmplY3RzQ29tbWFuZFwiKVxuICAgIC5zYyhEZWxldGVPYmplY3RzKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgRGVsZXRlT2JqZWN0VGFnZ2luZ0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIEJ1Y2tldDogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJCdWNrZXRcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKSwgbWlkZGxld2FyZVNka1MzLmdldFRocm93MjAwRXhjZXB0aW9uc1BsdWdpbihjb25maWcpXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIkRlbGV0ZU9iamVjdFRhZ2dpbmdcIiwge30pXG4gICAgLm4oXCJTM0NsaWVudFwiLCBcIkRlbGV0ZU9iamVjdFRhZ2dpbmdDb21tYW5kXCIpXG4gICAgLnNjKERlbGV0ZU9iamVjdFRhZ2dpbmcpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZWxldGVQdWJsaWNBY2Nlc3NCbG9ja0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFVzZVMzRXhwcmVzc0NvbnRyb2xFbmRwb2ludDogeyB0eXBlOiBcInN0YXRpY0NvbnRleHRQYXJhbXNcIiwgdmFsdWU6IHRydWUgfSxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiRGVsZXRlUHVibGljQWNjZXNzQmxvY2tcIiwge30pXG4gICAgLm4oXCJTM0NsaWVudFwiLCBcIkRlbGV0ZVB1YmxpY0FjY2Vzc0Jsb2NrQ29tbWFuZFwiKVxuICAgIC5zYyhEZWxldGVQdWJsaWNBY2Nlc3NCbG9jaylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIEdldEJ1Y2tldEFiYWNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSksIG1pZGRsZXdhcmVTZGtTMy5nZXRUaHJvdzIwMEV4Y2VwdGlvbnNQbHVnaW4oY29uZmlnKV07XG59KVxuICAgIC5zKFwiQW1hem9uUzNcIiwgXCJHZXRCdWNrZXRBYmFjXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJHZXRCdWNrZXRBYmFjQ29tbWFuZFwiKVxuICAgIC5zYyhHZXRCdWNrZXRBYmFjKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgR2V0QnVja2V0QWNjZWxlcmF0ZUNvbmZpZ3VyYXRpb25Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBVc2VTM0V4cHJlc3NDb250cm9sRW5kcG9pbnQ6IHsgdHlwZTogXCJzdGF0aWNDb250ZXh0UGFyYW1zXCIsIHZhbHVlOiB0cnVlIH0sXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpLCBtaWRkbGV3YXJlU2RrUzMuZ2V0VGhyb3cyMDBFeGNlcHRpb25zUGx1Z2luKGNvbmZpZyldO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiR2V0QnVja2V0QWNjZWxlcmF0ZUNvbmZpZ3VyYXRpb25cIiwge30pXG4gICAgLm4oXCJTM0NsaWVudFwiLCBcIkdldEJ1Y2tldEFjY2VsZXJhdGVDb25maWd1cmF0aW9uQ29tbWFuZFwiKVxuICAgIC5zYyhHZXRCdWNrZXRBY2NlbGVyYXRlQ29uZmlndXJhdGlvbilcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIEdldEJ1Y2tldEFjbENvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFVzZVMzRXhwcmVzc0NvbnRyb2xFbmRwb2ludDogeyB0eXBlOiBcInN0YXRpY0NvbnRleHRQYXJhbXNcIiwgdmFsdWU6IHRydWUgfSxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSksIG1pZGRsZXdhcmVTZGtTMy5nZXRUaHJvdzIwMEV4Y2VwdGlvbnNQbHVnaW4oY29uZmlnKV07XG59KVxuICAgIC5zKFwiQW1hem9uUzNcIiwgXCJHZXRCdWNrZXRBY2xcIiwge30pXG4gICAgLm4oXCJTM0NsaWVudFwiLCBcIkdldEJ1Y2tldEFjbENvbW1hbmRcIilcbiAgICAuc2MoR2V0QnVja2V0QWNsKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgR2V0QnVja2V0QW5hbHl0aWNzQ29uZmlndXJhdGlvbkNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFVzZVMzRXhwcmVzc0NvbnRyb2xFbmRwb2ludDogeyB0eXBlOiBcInN0YXRpY0NvbnRleHRQYXJhbXNcIiwgdmFsdWU6IHRydWUgfSxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSksIG1pZGRsZXdhcmVTZGtTMy5nZXRUaHJvdzIwMEV4Y2VwdGlvbnNQbHVnaW4oY29uZmlnKV07XG59KVxuICAgIC5zKFwiQW1hem9uUzNcIiwgXCJHZXRCdWNrZXRBbmFseXRpY3NDb25maWd1cmF0aW9uXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJHZXRCdWNrZXRBbmFseXRpY3NDb25maWd1cmF0aW9uQ29tbWFuZFwiKVxuICAgIC5zYyhHZXRCdWNrZXRBbmFseXRpY3NDb25maWd1cmF0aW9uKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgR2V0QnVja2V0Q29yc0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFVzZVMzRXhwcmVzc0NvbnRyb2xFbmRwb2ludDogeyB0eXBlOiBcInN0YXRpY0NvbnRleHRQYXJhbXNcIiwgdmFsdWU6IHRydWUgfSxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSksIG1pZGRsZXdhcmVTZGtTMy5nZXRUaHJvdzIwMEV4Y2VwdGlvbnNQbHVnaW4oY29uZmlnKV07XG59KVxuICAgIC5zKFwiQW1hem9uUzNcIiwgXCJHZXRCdWNrZXRDb3JzXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJHZXRCdWNrZXRDb3JzQ29tbWFuZFwiKVxuICAgIC5zYyhHZXRCdWNrZXRDb3JzKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgR2V0QnVja2V0RW5jcnlwdGlvbkNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFVzZVMzRXhwcmVzc0NvbnRyb2xFbmRwb2ludDogeyB0eXBlOiBcInN0YXRpY0NvbnRleHRQYXJhbXNcIiwgdmFsdWU6IHRydWUgfSxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSksIG1pZGRsZXdhcmVTZGtTMy5nZXRUaHJvdzIwMEV4Y2VwdGlvbnNQbHVnaW4oY29uZmlnKV07XG59KVxuICAgIC5zKFwiQW1hem9uUzNcIiwgXCJHZXRCdWNrZXRFbmNyeXB0aW9uXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJHZXRCdWNrZXRFbmNyeXB0aW9uQ29tbWFuZFwiKVxuICAgIC5zYyhHZXRCdWNrZXRFbmNyeXB0aW9uKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgR2V0QnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvbkNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFVzZVMzRXhwcmVzc0NvbnRyb2xFbmRwb2ludDogeyB0eXBlOiBcInN0YXRpY0NvbnRleHRQYXJhbXNcIiwgdmFsdWU6IHRydWUgfSxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSksIG1pZGRsZXdhcmVTZGtTMy5nZXRUaHJvdzIwMEV4Y2VwdGlvbnNQbHVnaW4oY29uZmlnKV07XG59KVxuICAgIC5zKFwiQW1hem9uUzNcIiwgXCJHZXRCdWNrZXRJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9uXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJHZXRCdWNrZXRJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9uQ29tbWFuZFwiKVxuICAgIC5zYyhHZXRCdWNrZXRJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9uKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgR2V0QnVja2V0SW52ZW50b3J5Q29uZmlndXJhdGlvbkNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFVzZVMzRXhwcmVzc0NvbnRyb2xFbmRwb2ludDogeyB0eXBlOiBcInN0YXRpY0NvbnRleHRQYXJhbXNcIiwgdmFsdWU6IHRydWUgfSxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSksIG1pZGRsZXdhcmVTZGtTMy5nZXRUaHJvdzIwMEV4Y2VwdGlvbnNQbHVnaW4oY29uZmlnKV07XG59KVxuICAgIC5zKFwiQW1hem9uUzNcIiwgXCJHZXRCdWNrZXRJbnZlbnRvcnlDb25maWd1cmF0aW9uXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJHZXRCdWNrZXRJbnZlbnRvcnlDb25maWd1cmF0aW9uQ29tbWFuZFwiKVxuICAgIC5zYyhHZXRCdWNrZXRJbnZlbnRvcnlDb25maWd1cmF0aW9uKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgR2V0QnVja2V0TGlmZWN5Y2xlQ29uZmlndXJhdGlvbkNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFVzZVMzRXhwcmVzc0NvbnRyb2xFbmRwb2ludDogeyB0eXBlOiBcInN0YXRpY0NvbnRleHRQYXJhbXNcIiwgdmFsdWU6IHRydWUgfSxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSksIG1pZGRsZXdhcmVTZGtTMy5nZXRUaHJvdzIwMEV4Y2VwdGlvbnNQbHVnaW4oY29uZmlnKV07XG59KVxuICAgIC5zKFwiQW1hem9uUzNcIiwgXCJHZXRCdWNrZXRMaWZlY3ljbGVDb25maWd1cmF0aW9uXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJHZXRCdWNrZXRMaWZlY3ljbGVDb25maWd1cmF0aW9uQ29tbWFuZFwiKVxuICAgIC5zYyhHZXRCdWNrZXRMaWZlY3ljbGVDb25maWd1cmF0aW9uKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgR2V0QnVja2V0TG9jYXRpb25Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBVc2VTM0V4cHJlc3NDb250cm9sRW5kcG9pbnQ6IHsgdHlwZTogXCJzdGF0aWNDb250ZXh0UGFyYW1zXCIsIHZhbHVlOiB0cnVlIH0sXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpLCBtaWRkbGV3YXJlU2RrUzMuZ2V0VGhyb3cyMDBFeGNlcHRpb25zUGx1Z2luKGNvbmZpZyldO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiR2V0QnVja2V0TG9jYXRpb25cIiwge30pXG4gICAgLm4oXCJTM0NsaWVudFwiLCBcIkdldEJ1Y2tldExvY2F0aW9uQ29tbWFuZFwiKVxuICAgIC5zYyhHZXRCdWNrZXRMb2NhdGlvbilcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIEdldEJ1Y2tldExvZ2dpbmdDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBVc2VTM0V4cHJlc3NDb250cm9sRW5kcG9pbnQ6IHsgdHlwZTogXCJzdGF0aWNDb250ZXh0UGFyYW1zXCIsIHZhbHVlOiB0cnVlIH0sXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpLCBtaWRkbGV3YXJlU2RrUzMuZ2V0VGhyb3cyMDBFeGNlcHRpb25zUGx1Z2luKGNvbmZpZyldO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiR2V0QnVja2V0TG9nZ2luZ1wiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiR2V0QnVja2V0TG9nZ2luZ0NvbW1hbmRcIilcbiAgICAuc2MoR2V0QnVja2V0TG9nZ2luZylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIEdldEJ1Y2tldE1ldGFkYXRhQ29uZmlndXJhdGlvbkNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFVzZVMzRXhwcmVzc0NvbnRyb2xFbmRwb2ludDogeyB0eXBlOiBcInN0YXRpY0NvbnRleHRQYXJhbXNcIiwgdmFsdWU6IHRydWUgfSxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSksIG1pZGRsZXdhcmVTZGtTMy5nZXRUaHJvdzIwMEV4Y2VwdGlvbnNQbHVnaW4oY29uZmlnKV07XG59KVxuICAgIC5zKFwiQW1hem9uUzNcIiwgXCJHZXRCdWNrZXRNZXRhZGF0YUNvbmZpZ3VyYXRpb25cIiwge30pXG4gICAgLm4oXCJTM0NsaWVudFwiLCBcIkdldEJ1Y2tldE1ldGFkYXRhQ29uZmlndXJhdGlvbkNvbW1hbmRcIilcbiAgICAuc2MoR2V0QnVja2V0TWV0YWRhdGFDb25maWd1cmF0aW9uKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgR2V0QnVja2V0TWV0YWRhdGFUYWJsZUNvbmZpZ3VyYXRpb25Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBVc2VTM0V4cHJlc3NDb250cm9sRW5kcG9pbnQ6IHsgdHlwZTogXCJzdGF0aWNDb250ZXh0UGFyYW1zXCIsIHZhbHVlOiB0cnVlIH0sXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpLCBtaWRkbGV3YXJlU2RrUzMuZ2V0VGhyb3cyMDBFeGNlcHRpb25zUGx1Z2luKGNvbmZpZyldO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiR2V0QnVja2V0TWV0YWRhdGFUYWJsZUNvbmZpZ3VyYXRpb25cIiwge30pXG4gICAgLm4oXCJTM0NsaWVudFwiLCBcIkdldEJ1Y2tldE1ldGFkYXRhVGFibGVDb25maWd1cmF0aW9uQ29tbWFuZFwiKVxuICAgIC5zYyhHZXRCdWNrZXRNZXRhZGF0YVRhYmxlQ29uZmlndXJhdGlvbilcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIEdldEJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9uQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgVXNlUzNFeHByZXNzQ29udHJvbEVuZHBvaW50OiB7IHR5cGU6IFwic3RhdGljQ29udGV4dFBhcmFtc1wiLCB2YWx1ZTogdHJ1ZSB9LFxuICAgIEJ1Y2tldDogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJCdWNrZXRcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKSwgbWlkZGxld2FyZVNka1MzLmdldFRocm93MjAwRXhjZXB0aW9uc1BsdWdpbihjb25maWcpXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIkdldEJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9uXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJHZXRCdWNrZXRNZXRyaWNzQ29uZmlndXJhdGlvbkNvbW1hbmRcIilcbiAgICAuc2MoR2V0QnVja2V0TWV0cmljc0NvbmZpZ3VyYXRpb24pXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBHZXRCdWNrZXROb3RpZmljYXRpb25Db25maWd1cmF0aW9uQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgVXNlUzNFeHByZXNzQ29udHJvbEVuZHBvaW50OiB7IHR5cGU6IFwic3RhdGljQ29udGV4dFBhcmFtc1wiLCB2YWx1ZTogdHJ1ZSB9LFxuICAgIEJ1Y2tldDogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJCdWNrZXRcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKSwgbWlkZGxld2FyZVNka1MzLmdldFRocm93MjAwRXhjZXB0aW9uc1BsdWdpbihjb25maWcpXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIkdldEJ1Y2tldE5vdGlmaWNhdGlvbkNvbmZpZ3VyYXRpb25cIiwge30pXG4gICAgLm4oXCJTM0NsaWVudFwiLCBcIkdldEJ1Y2tldE5vdGlmaWNhdGlvbkNvbmZpZ3VyYXRpb25Db21tYW5kXCIpXG4gICAgLnNjKEdldEJ1Y2tldE5vdGlmaWNhdGlvbkNvbmZpZ3VyYXRpb24pXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBHZXRCdWNrZXRPd25lcnNoaXBDb250cm9sc0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFVzZVMzRXhwcmVzc0NvbnRyb2xFbmRwb2ludDogeyB0eXBlOiBcInN0YXRpY0NvbnRleHRQYXJhbXNcIiwgdmFsdWU6IHRydWUgfSxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSksIG1pZGRsZXdhcmVTZGtTMy5nZXRUaHJvdzIwMEV4Y2VwdGlvbnNQbHVnaW4oY29uZmlnKV07XG59KVxuICAgIC5zKFwiQW1hem9uUzNcIiwgXCJHZXRCdWNrZXRPd25lcnNoaXBDb250cm9sc1wiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiR2V0QnVja2V0T3duZXJzaGlwQ29udHJvbHNDb21tYW5kXCIpXG4gICAgLnNjKEdldEJ1Y2tldE93bmVyc2hpcENvbnRyb2xzKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgR2V0QnVja2V0UG9saWN5Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgVXNlUzNFeHByZXNzQ29udHJvbEVuZHBvaW50OiB7IHR5cGU6IFwic3RhdGljQ29udGV4dFBhcmFtc1wiLCB2YWx1ZTogdHJ1ZSB9LFxuICAgIEJ1Y2tldDogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJCdWNrZXRcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKSwgbWlkZGxld2FyZVNka1MzLmdldFRocm93MjAwRXhjZXB0aW9uc1BsdWdpbihjb25maWcpXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIkdldEJ1Y2tldFBvbGljeVwiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiR2V0QnVja2V0UG9saWN5Q29tbWFuZFwiKVxuICAgIC5zYyhHZXRCdWNrZXRQb2xpY3kpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBHZXRCdWNrZXRQb2xpY3lTdGF0dXNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBVc2VTM0V4cHJlc3NDb250cm9sRW5kcG9pbnQ6IHsgdHlwZTogXCJzdGF0aWNDb250ZXh0UGFyYW1zXCIsIHZhbHVlOiB0cnVlIH0sXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpLCBtaWRkbGV3YXJlU2RrUzMuZ2V0VGhyb3cyMDBFeGNlcHRpb25zUGx1Z2luKGNvbmZpZyldO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiR2V0QnVja2V0UG9saWN5U3RhdHVzXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJHZXRCdWNrZXRQb2xpY3lTdGF0dXNDb21tYW5kXCIpXG4gICAgLnNjKEdldEJ1Y2tldFBvbGljeVN0YXR1cylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIEdldEJ1Y2tldFJlcGxpY2F0aW9uQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgVXNlUzNFeHByZXNzQ29udHJvbEVuZHBvaW50OiB7IHR5cGU6IFwic3RhdGljQ29udGV4dFBhcmFtc1wiLCB2YWx1ZTogdHJ1ZSB9LFxuICAgIEJ1Y2tldDogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJCdWNrZXRcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKSwgbWlkZGxld2FyZVNka1MzLmdldFRocm93MjAwRXhjZXB0aW9uc1BsdWdpbihjb25maWcpXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIkdldEJ1Y2tldFJlcGxpY2F0aW9uXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJHZXRCdWNrZXRSZXBsaWNhdGlvbkNvbW1hbmRcIilcbiAgICAuc2MoR2V0QnVja2V0UmVwbGljYXRpb24pXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBHZXRCdWNrZXRSZXF1ZXN0UGF5bWVudENvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFVzZVMzRXhwcmVzc0NvbnRyb2xFbmRwb2ludDogeyB0eXBlOiBcInN0YXRpY0NvbnRleHRQYXJhbXNcIiwgdmFsdWU6IHRydWUgfSxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSksIG1pZGRsZXdhcmVTZGtTMy5nZXRUaHJvdzIwMEV4Y2VwdGlvbnNQbHVnaW4oY29uZmlnKV07XG59KVxuICAgIC5zKFwiQW1hem9uUzNcIiwgXCJHZXRCdWNrZXRSZXF1ZXN0UGF5bWVudFwiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiR2V0QnVja2V0UmVxdWVzdFBheW1lbnRDb21tYW5kXCIpXG4gICAgLnNjKEdldEJ1Y2tldFJlcXVlc3RQYXltZW50KVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgR2V0QnVja2V0VGFnZ2luZ0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFVzZVMzRXhwcmVzc0NvbnRyb2xFbmRwb2ludDogeyB0eXBlOiBcInN0YXRpY0NvbnRleHRQYXJhbXNcIiwgdmFsdWU6IHRydWUgfSxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSksIG1pZGRsZXdhcmVTZGtTMy5nZXRUaHJvdzIwMEV4Y2VwdGlvbnNQbHVnaW4oY29uZmlnKV07XG59KVxuICAgIC5zKFwiQW1hem9uUzNcIiwgXCJHZXRCdWNrZXRUYWdnaW5nXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJHZXRCdWNrZXRUYWdnaW5nQ29tbWFuZFwiKVxuICAgIC5zYyhHZXRCdWNrZXRUYWdnaW5nKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgR2V0QnVja2V0VmVyc2lvbmluZ0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFVzZVMzRXhwcmVzc0NvbnRyb2xFbmRwb2ludDogeyB0eXBlOiBcInN0YXRpY0NvbnRleHRQYXJhbXNcIiwgdmFsdWU6IHRydWUgfSxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSksIG1pZGRsZXdhcmVTZGtTMy5nZXRUaHJvdzIwMEV4Y2VwdGlvbnNQbHVnaW4oY29uZmlnKV07XG59KVxuICAgIC5zKFwiQW1hem9uUzNcIiwgXCJHZXRCdWNrZXRWZXJzaW9uaW5nXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJHZXRCdWNrZXRWZXJzaW9uaW5nQ29tbWFuZFwiKVxuICAgIC5zYyhHZXRCdWNrZXRWZXJzaW9uaW5nKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgR2V0QnVja2V0V2Vic2l0ZUNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFVzZVMzRXhwcmVzc0NvbnRyb2xFbmRwb2ludDogeyB0eXBlOiBcInN0YXRpY0NvbnRleHRQYXJhbXNcIiwgdmFsdWU6IHRydWUgfSxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSksIG1pZGRsZXdhcmVTZGtTMy5nZXRUaHJvdzIwMEV4Y2VwdGlvbnNQbHVnaW4oY29uZmlnKV07XG59KVxuICAgIC5zKFwiQW1hem9uUzNcIiwgXCJHZXRCdWNrZXRXZWJzaXRlXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJHZXRCdWNrZXRXZWJzaXRlQ29tbWFuZFwiKVxuICAgIC5zYyhHZXRCdWNrZXRXZWJzaXRlKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgR2V0T2JqZWN0QWNsQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG4gICAgS2V5OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIktleVwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpLCBtaWRkbGV3YXJlU2RrUzMuZ2V0VGhyb3cyMDBFeGNlcHRpb25zUGx1Z2luKGNvbmZpZyldO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiR2V0T2JqZWN0QWNsXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJHZXRPYmplY3RBY2xDb21tYW5kXCIpXG4gICAgLnNjKEdldE9iamVjdEFjbClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIEdldE9iamVjdEF0dHJpYnV0ZXNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW1xuICAgICAgICBtaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpLFxuICAgICAgICBtaWRkbGV3YXJlU2RrUzMuZ2V0VGhyb3cyMDBFeGNlcHRpb25zUGx1Z2luKGNvbmZpZyksXG4gICAgICAgIG1pZGRsZXdhcmVTc2VjLmdldFNzZWNQbHVnaW4oY29uZmlnKSxcbiAgICBdO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiR2V0T2JqZWN0QXR0cmlidXRlc1wiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiR2V0T2JqZWN0QXR0cmlidXRlc0NvbW1hbmRcIilcbiAgICAuc2MoR2V0T2JqZWN0QXR0cmlidXRlcylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIEdldE9iamVjdENvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIEJ1Y2tldDogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJCdWNrZXRcIiB9LFxuICAgIEtleTogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJLZXlcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbXG4gICAgICAgIG1pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSksXG4gICAgICAgIG1pZGRsZXdhcmVGbGV4aWJsZUNoZWNrc3Vtcy5nZXRGbGV4aWJsZUNoZWNrc3Vtc1BsdWdpbihjb25maWcsIHtcbiAgICAgICAgICAgIHJlcXVlc3RDaGVja3N1bVJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgICAgIHJlcXVlc3RWYWxpZGF0aW9uTW9kZU1lbWJlcjogXCJDaGVja3N1bU1vZGVcIixcbiAgICAgICAgICAgIHJlc3BvbnNlQWxnb3JpdGhtczogW1wiQ1JDNjROVk1FXCIsIFwiQ1JDMzJcIiwgXCJDUkMzMkNcIiwgXCJTSEEyNTZcIiwgXCJTSEExXCJdLFxuICAgICAgICB9KSxcbiAgICAgICAgbWlkZGxld2FyZVNzZWMuZ2V0U3NlY1BsdWdpbihjb25maWcpLFxuICAgICAgICBtaWRkbGV3YXJlU2RrUzMuZ2V0UzNFeHBpcmVzTWlkZGxld2FyZVBsdWdpbihjb25maWcpLFxuICAgIF07XG59KVxuICAgIC5zKFwiQW1hem9uUzNcIiwgXCJHZXRPYmplY3RcIiwge30pXG4gICAgLm4oXCJTM0NsaWVudFwiLCBcIkdldE9iamVjdENvbW1hbmRcIilcbiAgICAuc2MoR2V0T2JqZWN0KVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgR2V0T2JqZWN0TGVnYWxIb2xkQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpLCBtaWRkbGV3YXJlU2RrUzMuZ2V0VGhyb3cyMDBFeGNlcHRpb25zUGx1Z2luKGNvbmZpZyldO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiR2V0T2JqZWN0TGVnYWxIb2xkXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJHZXRPYmplY3RMZWdhbEhvbGRDb21tYW5kXCIpXG4gICAgLnNjKEdldE9iamVjdExlZ2FsSG9sZClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIEdldE9iamVjdExvY2tDb25maWd1cmF0aW9uQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpLCBtaWRkbGV3YXJlU2RrUzMuZ2V0VGhyb3cyMDBFeGNlcHRpb25zUGx1Z2luKGNvbmZpZyldO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiR2V0T2JqZWN0TG9ja0NvbmZpZ3VyYXRpb25cIiwge30pXG4gICAgLm4oXCJTM0NsaWVudFwiLCBcIkdldE9iamVjdExvY2tDb25maWd1cmF0aW9uQ29tbWFuZFwiKVxuICAgIC5zYyhHZXRPYmplY3RMb2NrQ29uZmlndXJhdGlvbilcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIEdldE9iamVjdFJldGVudGlvbkNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIEJ1Y2tldDogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJCdWNrZXRcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKSwgbWlkZGxld2FyZVNka1MzLmdldFRocm93MjAwRXhjZXB0aW9uc1BsdWdpbihjb25maWcpXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIkdldE9iamVjdFJldGVudGlvblwiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiR2V0T2JqZWN0UmV0ZW50aW9uQ29tbWFuZFwiKVxuICAgIC5zYyhHZXRPYmplY3RSZXRlbnRpb24pXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBHZXRPYmplY3RUYWdnaW5nQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpLCBtaWRkbGV3YXJlU2RrUzMuZ2V0VGhyb3cyMDBFeGNlcHRpb25zUGx1Z2luKGNvbmZpZyldO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiR2V0T2JqZWN0VGFnZ2luZ1wiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiR2V0T2JqZWN0VGFnZ2luZ0NvbW1hbmRcIilcbiAgICAuc2MoR2V0T2JqZWN0VGFnZ2luZylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIEdldE9iamVjdFRvcnJlbnRDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiR2V0T2JqZWN0VG9ycmVudFwiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiR2V0T2JqZWN0VG9ycmVudENvbW1hbmRcIilcbiAgICAuc2MoR2V0T2JqZWN0VG9ycmVudClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIEdldFB1YmxpY0FjY2Vzc0Jsb2NrQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgVXNlUzNFeHByZXNzQ29udHJvbEVuZHBvaW50OiB7IHR5cGU6IFwic3RhdGljQ29udGV4dFBhcmFtc1wiLCB2YWx1ZTogdHJ1ZSB9LFxuICAgIEJ1Y2tldDogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJCdWNrZXRcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKSwgbWlkZGxld2FyZVNka1MzLmdldFRocm93MjAwRXhjZXB0aW9uc1BsdWdpbihjb25maWcpXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIkdldFB1YmxpY0FjY2Vzc0Jsb2NrXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJHZXRQdWJsaWNBY2Nlc3NCbG9ja0NvbW1hbmRcIilcbiAgICAuc2MoR2V0UHVibGljQWNjZXNzQmxvY2spXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBIZWFkQnVja2V0Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpLCBtaWRkbGV3YXJlU2RrUzMuZ2V0VGhyb3cyMDBFeGNlcHRpb25zUGx1Z2luKGNvbmZpZyldO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiSGVhZEJ1Y2tldFwiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiSGVhZEJ1Y2tldENvbW1hbmRcIilcbiAgICAuc2MoSGVhZEJ1Y2tldClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIEhlYWRPYmplY3RDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbiAgICBLZXk6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiS2V5XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW1xuICAgICAgICBtaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpLFxuICAgICAgICBtaWRkbGV3YXJlU2RrUzMuZ2V0VGhyb3cyMDBFeGNlcHRpb25zUGx1Z2luKGNvbmZpZyksXG4gICAgICAgIG1pZGRsZXdhcmVTc2VjLmdldFNzZWNQbHVnaW4oY29uZmlnKSxcbiAgICAgICAgbWlkZGxld2FyZVNka1MzLmdldFMzRXhwaXJlc01pZGRsZXdhcmVQbHVnaW4oY29uZmlnKSxcbiAgICBdO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiSGVhZE9iamVjdFwiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiSGVhZE9iamVjdENvbW1hbmRcIilcbiAgICAuc2MoSGVhZE9iamVjdClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIExpc3RCdWNrZXRBbmFseXRpY3NDb25maWd1cmF0aW9uc0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFVzZVMzRXhwcmVzc0NvbnRyb2xFbmRwb2ludDogeyB0eXBlOiBcInN0YXRpY0NvbnRleHRQYXJhbXNcIiwgdmFsdWU6IHRydWUgfSxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSksIG1pZGRsZXdhcmVTZGtTMy5nZXRUaHJvdzIwMEV4Y2VwdGlvbnNQbHVnaW4oY29uZmlnKV07XG59KVxuICAgIC5zKFwiQW1hem9uUzNcIiwgXCJMaXN0QnVja2V0QW5hbHl0aWNzQ29uZmlndXJhdGlvbnNcIiwge30pXG4gICAgLm4oXCJTM0NsaWVudFwiLCBcIkxpc3RCdWNrZXRBbmFseXRpY3NDb25maWd1cmF0aW9uc0NvbW1hbmRcIilcbiAgICAuc2MoTGlzdEJ1Y2tldEFuYWx5dGljc0NvbmZpZ3VyYXRpb25zKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgTGlzdEJ1Y2tldEludGVsbGlnZW50VGllcmluZ0NvbmZpZ3VyYXRpb25zQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgVXNlUzNFeHByZXNzQ29udHJvbEVuZHBvaW50OiB7IHR5cGU6IFwic3RhdGljQ29udGV4dFBhcmFtc1wiLCB2YWx1ZTogdHJ1ZSB9LFxuICAgIEJ1Y2tldDogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJCdWNrZXRcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKSwgbWlkZGxld2FyZVNka1MzLmdldFRocm93MjAwRXhjZXB0aW9uc1BsdWdpbihjb25maWcpXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIkxpc3RCdWNrZXRJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9uc1wiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiTGlzdEJ1Y2tldEludGVsbGlnZW50VGllcmluZ0NvbmZpZ3VyYXRpb25zQ29tbWFuZFwiKVxuICAgIC5zYyhMaXN0QnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvbnMpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBMaXN0QnVja2V0SW52ZW50b3J5Q29uZmlndXJhdGlvbnNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBVc2VTM0V4cHJlc3NDb250cm9sRW5kcG9pbnQ6IHsgdHlwZTogXCJzdGF0aWNDb250ZXh0UGFyYW1zXCIsIHZhbHVlOiB0cnVlIH0sXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpLCBtaWRkbGV3YXJlU2RrUzMuZ2V0VGhyb3cyMDBFeGNlcHRpb25zUGx1Z2luKGNvbmZpZyldO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiTGlzdEJ1Y2tldEludmVudG9yeUNvbmZpZ3VyYXRpb25zXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJMaXN0QnVja2V0SW52ZW50b3J5Q29uZmlndXJhdGlvbnNDb21tYW5kXCIpXG4gICAgLnNjKExpc3RCdWNrZXRJbnZlbnRvcnlDb25maWd1cmF0aW9ucylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIExpc3RCdWNrZXRNZXRyaWNzQ29uZmlndXJhdGlvbnNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSksIG1pZGRsZXdhcmVTZGtTMy5nZXRUaHJvdzIwMEV4Y2VwdGlvbnNQbHVnaW4oY29uZmlnKV07XG59KVxuICAgIC5zKFwiQW1hem9uUzNcIiwgXCJMaXN0QnVja2V0TWV0cmljc0NvbmZpZ3VyYXRpb25zXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJMaXN0QnVja2V0TWV0cmljc0NvbmZpZ3VyYXRpb25zQ29tbWFuZFwiKVxuICAgIC5zYyhMaXN0QnVja2V0TWV0cmljc0NvbmZpZ3VyYXRpb25zKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgTGlzdEJ1Y2tldHNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpLCBtaWRkbGV3YXJlU2RrUzMuZ2V0VGhyb3cyMDBFeGNlcHRpb25zUGx1Z2luKGNvbmZpZyldO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiTGlzdEJ1Y2tldHNcIiwge30pXG4gICAgLm4oXCJTM0NsaWVudFwiLCBcIkxpc3RCdWNrZXRzQ29tbWFuZFwiKVxuICAgIC5zYyhMaXN0QnVja2V0cylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIExpc3REaXJlY3RvcnlCdWNrZXRzQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgVXNlUzNFeHByZXNzQ29udHJvbEVuZHBvaW50OiB7IHR5cGU6IFwic3RhdGljQ29udGV4dFBhcmFtc1wiLCB2YWx1ZTogdHJ1ZSB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKSwgbWlkZGxld2FyZVNka1MzLmdldFRocm93MjAwRXhjZXB0aW9uc1BsdWdpbihjb25maWcpXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIkxpc3REaXJlY3RvcnlCdWNrZXRzXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJMaXN0RGlyZWN0b3J5QnVja2V0c0NvbW1hbmRcIilcbiAgICAuc2MoTGlzdERpcmVjdG9yeUJ1Y2tldHMpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBMaXN0TXVsdGlwYXJ0VXBsb2Fkc0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIEJ1Y2tldDogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJCdWNrZXRcIiB9LFxuICAgIFByZWZpeDogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJQcmVmaXhcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKSwgbWlkZGxld2FyZVNka1MzLmdldFRocm93MjAwRXhjZXB0aW9uc1BsdWdpbihjb25maWcpXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIkxpc3RNdWx0aXBhcnRVcGxvYWRzXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJMaXN0TXVsdGlwYXJ0VXBsb2Fkc0NvbW1hbmRcIilcbiAgICAuc2MoTGlzdE11bHRpcGFydFVwbG9hZHMpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBMaXN0T2JqZWN0c0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIEJ1Y2tldDogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJCdWNrZXRcIiB9LFxuICAgIFByZWZpeDogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJQcmVmaXhcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKSwgbWlkZGxld2FyZVNka1MzLmdldFRocm93MjAwRXhjZXB0aW9uc1BsdWdpbihjb25maWcpXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIkxpc3RPYmplY3RzXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJMaXN0T2JqZWN0c0NvbW1hbmRcIilcbiAgICAuc2MoTGlzdE9iamVjdHMpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBMaXN0T2JqZWN0c1YyQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG4gICAgUHJlZml4OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIlByZWZpeFwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpLCBtaWRkbGV3YXJlU2RrUzMuZ2V0VGhyb3cyMDBFeGNlcHRpb25zUGx1Z2luKGNvbmZpZyldO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiTGlzdE9iamVjdHNWMlwiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiTGlzdE9iamVjdHNWMkNvbW1hbmRcIilcbiAgICAuc2MoTGlzdE9iamVjdHNWMilcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIExpc3RPYmplY3RWZXJzaW9uc0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIEJ1Y2tldDogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJCdWNrZXRcIiB9LFxuICAgIFByZWZpeDogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJQcmVmaXhcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKSwgbWlkZGxld2FyZVNka1MzLmdldFRocm93MjAwRXhjZXB0aW9uc1BsdWdpbihjb25maWcpXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIkxpc3RPYmplY3RWZXJzaW9uc1wiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiTGlzdE9iamVjdFZlcnNpb25zQ29tbWFuZFwiKVxuICAgIC5zYyhMaXN0T2JqZWN0VmVyc2lvbnMpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBMaXN0UGFydHNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbiAgICBLZXk6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiS2V5XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW1xuICAgICAgICBtaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpLFxuICAgICAgICBtaWRkbGV3YXJlU2RrUzMuZ2V0VGhyb3cyMDBFeGNlcHRpb25zUGx1Z2luKGNvbmZpZyksXG4gICAgICAgIG1pZGRsZXdhcmVTc2VjLmdldFNzZWNQbHVnaW4oY29uZmlnKSxcbiAgICBdO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiTGlzdFBhcnRzXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJMaXN0UGFydHNDb21tYW5kXCIpXG4gICAgLnNjKExpc3RQYXJ0cylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFB1dEJ1Y2tldEFiYWNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW1xuICAgICAgICBtaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpLFxuICAgICAgICBtaWRkbGV3YXJlRmxleGlibGVDaGVja3N1bXMuZ2V0RmxleGlibGVDaGVja3N1bXNQbHVnaW4oY29uZmlnLCB7XG4gICAgICAgICAgICByZXF1ZXN0QWxnb3JpdGhtTWVtYmVyOiB7IGh0dHBIZWFkZXI6IFwieC1hbXotc2RrLWNoZWNrc3VtLWFsZ29yaXRobVwiLCBuYW1lOiBcIkNoZWNrc3VtQWxnb3JpdGhtXCIgfSxcbiAgICAgICAgICAgIHJlcXVlc3RDaGVja3N1bVJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgfSksXG4gICAgXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIlB1dEJ1Y2tldEFiYWNcIiwge30pXG4gICAgLm4oXCJTM0NsaWVudFwiLCBcIlB1dEJ1Y2tldEFiYWNDb21tYW5kXCIpXG4gICAgLnNjKFB1dEJ1Y2tldEFiYWMpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBQdXRCdWNrZXRBY2NlbGVyYXRlQ29uZmlndXJhdGlvbkNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFVzZVMzRXhwcmVzc0NvbnRyb2xFbmRwb2ludDogeyB0eXBlOiBcInN0YXRpY0NvbnRleHRQYXJhbXNcIiwgdmFsdWU6IHRydWUgfSxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW1xuICAgICAgICBtaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpLFxuICAgICAgICBtaWRkbGV3YXJlRmxleGlibGVDaGVja3N1bXMuZ2V0RmxleGlibGVDaGVja3N1bXNQbHVnaW4oY29uZmlnLCB7XG4gICAgICAgICAgICByZXF1ZXN0QWxnb3JpdGhtTWVtYmVyOiB7IGh0dHBIZWFkZXI6IFwieC1hbXotc2RrLWNoZWNrc3VtLWFsZ29yaXRobVwiLCBuYW1lOiBcIkNoZWNrc3VtQWxnb3JpdGhtXCIgfSxcbiAgICAgICAgICAgIHJlcXVlc3RDaGVja3N1bVJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgfSksXG4gICAgXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIlB1dEJ1Y2tldEFjY2VsZXJhdGVDb25maWd1cmF0aW9uXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJQdXRCdWNrZXRBY2NlbGVyYXRlQ29uZmlndXJhdGlvbkNvbW1hbmRcIilcbiAgICAuc2MoUHV0QnVja2V0QWNjZWxlcmF0ZUNvbmZpZ3VyYXRpb24pXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBQdXRCdWNrZXRBY2xDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBVc2VTM0V4cHJlc3NDb250cm9sRW5kcG9pbnQ6IHsgdHlwZTogXCJzdGF0aWNDb250ZXh0UGFyYW1zXCIsIHZhbHVlOiB0cnVlIH0sXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgICAgbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKSxcbiAgICAgICAgbWlkZGxld2FyZUZsZXhpYmxlQ2hlY2tzdW1zLmdldEZsZXhpYmxlQ2hlY2tzdW1zUGx1Z2luKGNvbmZpZywge1xuICAgICAgICAgICAgcmVxdWVzdEFsZ29yaXRobU1lbWJlcjogeyBodHRwSGVhZGVyOiBcIngtYW16LXNkay1jaGVja3N1bS1hbGdvcml0aG1cIiwgbmFtZTogXCJDaGVja3N1bUFsZ29yaXRobVwiIH0sXG4gICAgICAgICAgICByZXF1ZXN0Q2hlY2tzdW1SZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSksXG4gICAgXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIlB1dEJ1Y2tldEFjbFwiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiUHV0QnVja2V0QWNsQ29tbWFuZFwiKVxuICAgIC5zYyhQdXRCdWNrZXRBY2wpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBQdXRCdWNrZXRBbmFseXRpY3NDb25maWd1cmF0aW9uQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgVXNlUzNFeHByZXNzQ29udHJvbEVuZHBvaW50OiB7IHR5cGU6IFwic3RhdGljQ29udGV4dFBhcmFtc1wiLCB2YWx1ZTogdHJ1ZSB9LFxuICAgIEJ1Y2tldDogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJCdWNrZXRcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQW1hem9uUzNcIiwgXCJQdXRCdWNrZXRBbmFseXRpY3NDb25maWd1cmF0aW9uXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJQdXRCdWNrZXRBbmFseXRpY3NDb25maWd1cmF0aW9uQ29tbWFuZFwiKVxuICAgIC5zYyhQdXRCdWNrZXRBbmFseXRpY3NDb25maWd1cmF0aW9uKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgUHV0QnVja2V0Q29yc0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFVzZVMzRXhwcmVzc0NvbnRyb2xFbmRwb2ludDogeyB0eXBlOiBcInN0YXRpY0NvbnRleHRQYXJhbXNcIiwgdmFsdWU6IHRydWUgfSxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW1xuICAgICAgICBtaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpLFxuICAgICAgICBtaWRkbGV3YXJlRmxleGlibGVDaGVja3N1bXMuZ2V0RmxleGlibGVDaGVja3N1bXNQbHVnaW4oY29uZmlnLCB7XG4gICAgICAgICAgICByZXF1ZXN0QWxnb3JpdGhtTWVtYmVyOiB7IGh0dHBIZWFkZXI6IFwieC1hbXotc2RrLWNoZWNrc3VtLWFsZ29yaXRobVwiLCBuYW1lOiBcIkNoZWNrc3VtQWxnb3JpdGhtXCIgfSxcbiAgICAgICAgICAgIHJlcXVlc3RDaGVja3N1bVJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9KSxcbiAgICBdO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiUHV0QnVja2V0Q29yc1wiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiUHV0QnVja2V0Q29yc0NvbW1hbmRcIilcbiAgICAuc2MoUHV0QnVja2V0Q29ycylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFB1dEJ1Y2tldEVuY3J5cHRpb25Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBVc2VTM0V4cHJlc3NDb250cm9sRW5kcG9pbnQ6IHsgdHlwZTogXCJzdGF0aWNDb250ZXh0UGFyYW1zXCIsIHZhbHVlOiB0cnVlIH0sXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgICAgbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKSxcbiAgICAgICAgbWlkZGxld2FyZUZsZXhpYmxlQ2hlY2tzdW1zLmdldEZsZXhpYmxlQ2hlY2tzdW1zUGx1Z2luKGNvbmZpZywge1xuICAgICAgICAgICAgcmVxdWVzdEFsZ29yaXRobU1lbWJlcjogeyBodHRwSGVhZGVyOiBcIngtYW16LXNkay1jaGVja3N1bS1hbGdvcml0aG1cIiwgbmFtZTogXCJDaGVja3N1bUFsZ29yaXRobVwiIH0sXG4gICAgICAgICAgICByZXF1ZXN0Q2hlY2tzdW1SZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSksXG4gICAgXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIlB1dEJ1Y2tldEVuY3J5cHRpb25cIiwge30pXG4gICAgLm4oXCJTM0NsaWVudFwiLCBcIlB1dEJ1Y2tldEVuY3J5cHRpb25Db21tYW5kXCIpXG4gICAgLnNjKFB1dEJ1Y2tldEVuY3J5cHRpb24pXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBQdXRCdWNrZXRJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9uQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgVXNlUzNFeHByZXNzQ29udHJvbEVuZHBvaW50OiB7IHR5cGU6IFwic3RhdGljQ29udGV4dFBhcmFtc1wiLCB2YWx1ZTogdHJ1ZSB9LFxuICAgIEJ1Y2tldDogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJCdWNrZXRcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQW1hem9uUzNcIiwgXCJQdXRCdWNrZXRJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9uXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJQdXRCdWNrZXRJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9uQ29tbWFuZFwiKVxuICAgIC5zYyhQdXRCdWNrZXRJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9uKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgUHV0QnVja2V0SW52ZW50b3J5Q29uZmlndXJhdGlvbkNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFVzZVMzRXhwcmVzc0NvbnRyb2xFbmRwb2ludDogeyB0eXBlOiBcInN0YXRpY0NvbnRleHRQYXJhbXNcIiwgdmFsdWU6IHRydWUgfSxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiUHV0QnVja2V0SW52ZW50b3J5Q29uZmlndXJhdGlvblwiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiUHV0QnVja2V0SW52ZW50b3J5Q29uZmlndXJhdGlvbkNvbW1hbmRcIilcbiAgICAuc2MoUHV0QnVja2V0SW52ZW50b3J5Q29uZmlndXJhdGlvbilcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFB1dEJ1Y2tldExpZmVjeWNsZUNvbmZpZ3VyYXRpb25Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBVc2VTM0V4cHJlc3NDb250cm9sRW5kcG9pbnQ6IHsgdHlwZTogXCJzdGF0aWNDb250ZXh0UGFyYW1zXCIsIHZhbHVlOiB0cnVlIH0sXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgICAgbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKSxcbiAgICAgICAgbWlkZGxld2FyZUZsZXhpYmxlQ2hlY2tzdW1zLmdldEZsZXhpYmxlQ2hlY2tzdW1zUGx1Z2luKGNvbmZpZywge1xuICAgICAgICAgICAgcmVxdWVzdEFsZ29yaXRobU1lbWJlcjogeyBodHRwSGVhZGVyOiBcIngtYW16LXNkay1jaGVja3N1bS1hbGdvcml0aG1cIiwgbmFtZTogXCJDaGVja3N1bUFsZ29yaXRobVwiIH0sXG4gICAgICAgICAgICByZXF1ZXN0Q2hlY2tzdW1SZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSksXG4gICAgICAgIG1pZGRsZXdhcmVTZGtTMy5nZXRUaHJvdzIwMEV4Y2VwdGlvbnNQbHVnaW4oY29uZmlnKSxcbiAgICBdO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiUHV0QnVja2V0TGlmZWN5Y2xlQ29uZmlndXJhdGlvblwiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiUHV0QnVja2V0TGlmZWN5Y2xlQ29uZmlndXJhdGlvbkNvbW1hbmRcIilcbiAgICAuc2MoUHV0QnVja2V0TGlmZWN5Y2xlQ29uZmlndXJhdGlvbilcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFB1dEJ1Y2tldExvZ2dpbmdDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBVc2VTM0V4cHJlc3NDb250cm9sRW5kcG9pbnQ6IHsgdHlwZTogXCJzdGF0aWNDb250ZXh0UGFyYW1zXCIsIHZhbHVlOiB0cnVlIH0sXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgICAgbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKSxcbiAgICAgICAgbWlkZGxld2FyZUZsZXhpYmxlQ2hlY2tzdW1zLmdldEZsZXhpYmxlQ2hlY2tzdW1zUGx1Z2luKGNvbmZpZywge1xuICAgICAgICAgICAgcmVxdWVzdEFsZ29yaXRobU1lbWJlcjogeyBodHRwSGVhZGVyOiBcIngtYW16LXNkay1jaGVja3N1bS1hbGdvcml0aG1cIiwgbmFtZTogXCJDaGVja3N1bUFsZ29yaXRobVwiIH0sXG4gICAgICAgICAgICByZXF1ZXN0Q2hlY2tzdW1SZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSksXG4gICAgXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIlB1dEJ1Y2tldExvZ2dpbmdcIiwge30pXG4gICAgLm4oXCJTM0NsaWVudFwiLCBcIlB1dEJ1Y2tldExvZ2dpbmdDb21tYW5kXCIpXG4gICAgLnNjKFB1dEJ1Y2tldExvZ2dpbmcpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBQdXRCdWNrZXRNZXRyaWNzQ29uZmlndXJhdGlvbkNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFVzZVMzRXhwcmVzc0NvbnRyb2xFbmRwb2ludDogeyB0eXBlOiBcInN0YXRpY0NvbnRleHRQYXJhbXNcIiwgdmFsdWU6IHRydWUgfSxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiUHV0QnVja2V0TWV0cmljc0NvbmZpZ3VyYXRpb25cIiwge30pXG4gICAgLm4oXCJTM0NsaWVudFwiLCBcIlB1dEJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9uQ29tbWFuZFwiKVxuICAgIC5zYyhQdXRCdWNrZXRNZXRyaWNzQ29uZmlndXJhdGlvbilcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFB1dEJ1Y2tldE5vdGlmaWNhdGlvbkNvbmZpZ3VyYXRpb25Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBVc2VTM0V4cHJlc3NDb250cm9sRW5kcG9pbnQ6IHsgdHlwZTogXCJzdGF0aWNDb250ZXh0UGFyYW1zXCIsIHZhbHVlOiB0cnVlIH0sXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIlB1dEJ1Y2tldE5vdGlmaWNhdGlvbkNvbmZpZ3VyYXRpb25cIiwge30pXG4gICAgLm4oXCJTM0NsaWVudFwiLCBcIlB1dEJ1Y2tldE5vdGlmaWNhdGlvbkNvbmZpZ3VyYXRpb25Db21tYW5kXCIpXG4gICAgLnNjKFB1dEJ1Y2tldE5vdGlmaWNhdGlvbkNvbmZpZ3VyYXRpb24pXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBQdXRCdWNrZXRPd25lcnNoaXBDb250cm9sc0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFVzZVMzRXhwcmVzc0NvbnRyb2xFbmRwb2ludDogeyB0eXBlOiBcInN0YXRpY0NvbnRleHRQYXJhbXNcIiwgdmFsdWU6IHRydWUgfSxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW1xuICAgICAgICBtaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpLFxuICAgICAgICBtaWRkbGV3YXJlRmxleGlibGVDaGVja3N1bXMuZ2V0RmxleGlibGVDaGVja3N1bXNQbHVnaW4oY29uZmlnLCB7XG4gICAgICAgICAgICByZXF1ZXN0QWxnb3JpdGhtTWVtYmVyOiB7IGh0dHBIZWFkZXI6IFwieC1hbXotc2RrLWNoZWNrc3VtLWFsZ29yaXRobVwiLCBuYW1lOiBcIkNoZWNrc3VtQWxnb3JpdGhtXCIgfSxcbiAgICAgICAgICAgIHJlcXVlc3RDaGVja3N1bVJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9KSxcbiAgICBdO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiUHV0QnVja2V0T3duZXJzaGlwQ29udHJvbHNcIiwge30pXG4gICAgLm4oXCJTM0NsaWVudFwiLCBcIlB1dEJ1Y2tldE93bmVyc2hpcENvbnRyb2xzQ29tbWFuZFwiKVxuICAgIC5zYyhQdXRCdWNrZXRPd25lcnNoaXBDb250cm9scylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFB1dEJ1Y2tldFBvbGljeUNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFVzZVMzRXhwcmVzc0NvbnRyb2xFbmRwb2ludDogeyB0eXBlOiBcInN0YXRpY0NvbnRleHRQYXJhbXNcIiwgdmFsdWU6IHRydWUgfSxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW1xuICAgICAgICBtaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpLFxuICAgICAgICBtaWRkbGV3YXJlRmxleGlibGVDaGVja3N1bXMuZ2V0RmxleGlibGVDaGVja3N1bXNQbHVnaW4oY29uZmlnLCB7XG4gICAgICAgICAgICByZXF1ZXN0QWxnb3JpdGhtTWVtYmVyOiB7IGh0dHBIZWFkZXI6IFwieC1hbXotc2RrLWNoZWNrc3VtLWFsZ29yaXRobVwiLCBuYW1lOiBcIkNoZWNrc3VtQWxnb3JpdGhtXCIgfSxcbiAgICAgICAgICAgIHJlcXVlc3RDaGVja3N1bVJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9KSxcbiAgICBdO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiUHV0QnVja2V0UG9saWN5XCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJQdXRCdWNrZXRQb2xpY3lDb21tYW5kXCIpXG4gICAgLnNjKFB1dEJ1Y2tldFBvbGljeSlcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFB1dEJ1Y2tldFJlcGxpY2F0aW9uQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgVXNlUzNFeHByZXNzQ29udHJvbEVuZHBvaW50OiB7IHR5cGU6IFwic3RhdGljQ29udGV4dFBhcmFtc1wiLCB2YWx1ZTogdHJ1ZSB9LFxuICAgIEJ1Y2tldDogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJCdWNrZXRcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbXG4gICAgICAgIG1pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSksXG4gICAgICAgIG1pZGRsZXdhcmVGbGV4aWJsZUNoZWNrc3Vtcy5nZXRGbGV4aWJsZUNoZWNrc3Vtc1BsdWdpbihjb25maWcsIHtcbiAgICAgICAgICAgIHJlcXVlc3RBbGdvcml0aG1NZW1iZXI6IHsgaHR0cEhlYWRlcjogXCJ4LWFtei1zZGstY2hlY2tzdW0tYWxnb3JpdGhtXCIsIG5hbWU6IFwiQ2hlY2tzdW1BbGdvcml0aG1cIiB9LFxuICAgICAgICAgICAgcmVxdWVzdENoZWNrc3VtUmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0pLFxuICAgIF07XG59KVxuICAgIC5zKFwiQW1hem9uUzNcIiwgXCJQdXRCdWNrZXRSZXBsaWNhdGlvblwiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiUHV0QnVja2V0UmVwbGljYXRpb25Db21tYW5kXCIpXG4gICAgLnNjKFB1dEJ1Y2tldFJlcGxpY2F0aW9uKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgUHV0QnVja2V0UmVxdWVzdFBheW1lbnRDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBVc2VTM0V4cHJlc3NDb250cm9sRW5kcG9pbnQ6IHsgdHlwZTogXCJzdGF0aWNDb250ZXh0UGFyYW1zXCIsIHZhbHVlOiB0cnVlIH0sXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgICAgbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKSxcbiAgICAgICAgbWlkZGxld2FyZUZsZXhpYmxlQ2hlY2tzdW1zLmdldEZsZXhpYmxlQ2hlY2tzdW1zUGx1Z2luKGNvbmZpZywge1xuICAgICAgICAgICAgcmVxdWVzdEFsZ29yaXRobU1lbWJlcjogeyBodHRwSGVhZGVyOiBcIngtYW16LXNkay1jaGVja3N1bS1hbGdvcml0aG1cIiwgbmFtZTogXCJDaGVja3N1bUFsZ29yaXRobVwiIH0sXG4gICAgICAgICAgICByZXF1ZXN0Q2hlY2tzdW1SZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSksXG4gICAgXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIlB1dEJ1Y2tldFJlcXVlc3RQYXltZW50XCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJQdXRCdWNrZXRSZXF1ZXN0UGF5bWVudENvbW1hbmRcIilcbiAgICAuc2MoUHV0QnVja2V0UmVxdWVzdFBheW1lbnQpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBQdXRCdWNrZXRUYWdnaW5nQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgVXNlUzNFeHByZXNzQ29udHJvbEVuZHBvaW50OiB7IHR5cGU6IFwic3RhdGljQ29udGV4dFBhcmFtc1wiLCB2YWx1ZTogdHJ1ZSB9LFxuICAgIEJ1Y2tldDogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJCdWNrZXRcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbXG4gICAgICAgIG1pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSksXG4gICAgICAgIG1pZGRsZXdhcmVGbGV4aWJsZUNoZWNrc3Vtcy5nZXRGbGV4aWJsZUNoZWNrc3Vtc1BsdWdpbihjb25maWcsIHtcbiAgICAgICAgICAgIHJlcXVlc3RBbGdvcml0aG1NZW1iZXI6IHsgaHR0cEhlYWRlcjogXCJ4LWFtei1zZGstY2hlY2tzdW0tYWxnb3JpdGhtXCIsIG5hbWU6IFwiQ2hlY2tzdW1BbGdvcml0aG1cIiB9LFxuICAgICAgICAgICAgcmVxdWVzdENoZWNrc3VtUmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0pLFxuICAgIF07XG59KVxuICAgIC5zKFwiQW1hem9uUzNcIiwgXCJQdXRCdWNrZXRUYWdnaW5nXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJQdXRCdWNrZXRUYWdnaW5nQ29tbWFuZFwiKVxuICAgIC5zYyhQdXRCdWNrZXRUYWdnaW5nKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgUHV0QnVja2V0VmVyc2lvbmluZ0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFVzZVMzRXhwcmVzc0NvbnRyb2xFbmRwb2ludDogeyB0eXBlOiBcInN0YXRpY0NvbnRleHRQYXJhbXNcIiwgdmFsdWU6IHRydWUgfSxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW1xuICAgICAgICBtaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpLFxuICAgICAgICBtaWRkbGV3YXJlRmxleGlibGVDaGVja3N1bXMuZ2V0RmxleGlibGVDaGVja3N1bXNQbHVnaW4oY29uZmlnLCB7XG4gICAgICAgICAgICByZXF1ZXN0QWxnb3JpdGhtTWVtYmVyOiB7IGh0dHBIZWFkZXI6IFwieC1hbXotc2RrLWNoZWNrc3VtLWFsZ29yaXRobVwiLCBuYW1lOiBcIkNoZWNrc3VtQWxnb3JpdGhtXCIgfSxcbiAgICAgICAgICAgIHJlcXVlc3RDaGVja3N1bVJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9KSxcbiAgICBdO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiUHV0QnVja2V0VmVyc2lvbmluZ1wiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiUHV0QnVja2V0VmVyc2lvbmluZ0NvbW1hbmRcIilcbiAgICAuc2MoUHV0QnVja2V0VmVyc2lvbmluZylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFB1dEJ1Y2tldFdlYnNpdGVDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBVc2VTM0V4cHJlc3NDb250cm9sRW5kcG9pbnQ6IHsgdHlwZTogXCJzdGF0aWNDb250ZXh0UGFyYW1zXCIsIHZhbHVlOiB0cnVlIH0sXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgICAgbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKSxcbiAgICAgICAgbWlkZGxld2FyZUZsZXhpYmxlQ2hlY2tzdW1zLmdldEZsZXhpYmxlQ2hlY2tzdW1zUGx1Z2luKGNvbmZpZywge1xuICAgICAgICAgICAgcmVxdWVzdEFsZ29yaXRobU1lbWJlcjogeyBodHRwSGVhZGVyOiBcIngtYW16LXNkay1jaGVja3N1bS1hbGdvcml0aG1cIiwgbmFtZTogXCJDaGVja3N1bUFsZ29yaXRobVwiIH0sXG4gICAgICAgICAgICByZXF1ZXN0Q2hlY2tzdW1SZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSksXG4gICAgXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIlB1dEJ1Y2tldFdlYnNpdGVcIiwge30pXG4gICAgLm4oXCJTM0NsaWVudFwiLCBcIlB1dEJ1Y2tldFdlYnNpdGVDb21tYW5kXCIpXG4gICAgLnNjKFB1dEJ1Y2tldFdlYnNpdGUpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBQdXRPYmplY3RBY2xDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbiAgICBLZXk6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiS2V5XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW1xuICAgICAgICBtaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpLFxuICAgICAgICBtaWRkbGV3YXJlRmxleGlibGVDaGVja3N1bXMuZ2V0RmxleGlibGVDaGVja3N1bXNQbHVnaW4oY29uZmlnLCB7XG4gICAgICAgICAgICByZXF1ZXN0QWxnb3JpdGhtTWVtYmVyOiB7IGh0dHBIZWFkZXI6IFwieC1hbXotc2RrLWNoZWNrc3VtLWFsZ29yaXRobVwiLCBuYW1lOiBcIkNoZWNrc3VtQWxnb3JpdGhtXCIgfSxcbiAgICAgICAgICAgIHJlcXVlc3RDaGVja3N1bVJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9KSxcbiAgICAgICAgbWlkZGxld2FyZVNka1MzLmdldFRocm93MjAwRXhjZXB0aW9uc1BsdWdpbihjb25maWcpLFxuICAgIF07XG59KVxuICAgIC5zKFwiQW1hem9uUzNcIiwgXCJQdXRPYmplY3RBY2xcIiwge30pXG4gICAgLm4oXCJTM0NsaWVudFwiLCBcIlB1dE9iamVjdEFjbENvbW1hbmRcIilcbiAgICAuc2MoUHV0T2JqZWN0QWNsKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgUHV0T2JqZWN0Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG4gICAgS2V5OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIktleVwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgICAgbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKSxcbiAgICAgICAgbWlkZGxld2FyZUZsZXhpYmxlQ2hlY2tzdW1zLmdldEZsZXhpYmxlQ2hlY2tzdW1zUGx1Z2luKGNvbmZpZywge1xuICAgICAgICAgICAgcmVxdWVzdEFsZ29yaXRobU1lbWJlcjogeyBodHRwSGVhZGVyOiBcIngtYW16LXNkay1jaGVja3N1bS1hbGdvcml0aG1cIiwgbmFtZTogXCJDaGVja3N1bUFsZ29yaXRobVwiIH0sXG4gICAgICAgICAgICByZXF1ZXN0Q2hlY2tzdW1SZXF1aXJlZDogZmFsc2UsXG4gICAgICAgIH0pLFxuICAgICAgICBtaWRkbGV3YXJlU2RrUzMuZ2V0Q2hlY2tDb250ZW50TGVuZ3RoSGVhZGVyUGx1Z2luKGNvbmZpZyksXG4gICAgICAgIG1pZGRsZXdhcmVTZGtTMy5nZXRUaHJvdzIwMEV4Y2VwdGlvbnNQbHVnaW4oY29uZmlnKSxcbiAgICAgICAgbWlkZGxld2FyZVNzZWMuZ2V0U3NlY1BsdWdpbihjb25maWcpLFxuICAgIF07XG59KVxuICAgIC5zKFwiQW1hem9uUzNcIiwgXCJQdXRPYmplY3RcIiwge30pXG4gICAgLm4oXCJTM0NsaWVudFwiLCBcIlB1dE9iamVjdENvbW1hbmRcIilcbiAgICAuc2MoUHV0T2JqZWN0KVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgUHV0T2JqZWN0TGVnYWxIb2xkQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgICAgbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKSxcbiAgICAgICAgbWlkZGxld2FyZUZsZXhpYmxlQ2hlY2tzdW1zLmdldEZsZXhpYmxlQ2hlY2tzdW1zUGx1Z2luKGNvbmZpZywge1xuICAgICAgICAgICAgcmVxdWVzdEFsZ29yaXRobU1lbWJlcjogeyBodHRwSGVhZGVyOiBcIngtYW16LXNkay1jaGVja3N1bS1hbGdvcml0aG1cIiwgbmFtZTogXCJDaGVja3N1bUFsZ29yaXRobVwiIH0sXG4gICAgICAgICAgICByZXF1ZXN0Q2hlY2tzdW1SZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSksXG4gICAgICAgIG1pZGRsZXdhcmVTZGtTMy5nZXRUaHJvdzIwMEV4Y2VwdGlvbnNQbHVnaW4oY29uZmlnKSxcbiAgICBdO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiUHV0T2JqZWN0TGVnYWxIb2xkXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJQdXRPYmplY3RMZWdhbEhvbGRDb21tYW5kXCIpXG4gICAgLnNjKFB1dE9iamVjdExlZ2FsSG9sZClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFB1dE9iamVjdExvY2tDb25maWd1cmF0aW9uQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgICAgbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKSxcbiAgICAgICAgbWlkZGxld2FyZUZsZXhpYmxlQ2hlY2tzdW1zLmdldEZsZXhpYmxlQ2hlY2tzdW1zUGx1Z2luKGNvbmZpZywge1xuICAgICAgICAgICAgcmVxdWVzdEFsZ29yaXRobU1lbWJlcjogeyBodHRwSGVhZGVyOiBcIngtYW16LXNkay1jaGVja3N1bS1hbGdvcml0aG1cIiwgbmFtZTogXCJDaGVja3N1bUFsZ29yaXRobVwiIH0sXG4gICAgICAgICAgICByZXF1ZXN0Q2hlY2tzdW1SZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSksXG4gICAgICAgIG1pZGRsZXdhcmVTZGtTMy5nZXRUaHJvdzIwMEV4Y2VwdGlvbnNQbHVnaW4oY29uZmlnKSxcbiAgICBdO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiUHV0T2JqZWN0TG9ja0NvbmZpZ3VyYXRpb25cIiwge30pXG4gICAgLm4oXCJTM0NsaWVudFwiLCBcIlB1dE9iamVjdExvY2tDb25maWd1cmF0aW9uQ29tbWFuZFwiKVxuICAgIC5zYyhQdXRPYmplY3RMb2NrQ29uZmlndXJhdGlvbilcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFB1dE9iamVjdFJldGVudGlvbkNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIEJ1Y2tldDogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJCdWNrZXRcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbXG4gICAgICAgIG1pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSksXG4gICAgICAgIG1pZGRsZXdhcmVGbGV4aWJsZUNoZWNrc3Vtcy5nZXRGbGV4aWJsZUNoZWNrc3Vtc1BsdWdpbihjb25maWcsIHtcbiAgICAgICAgICAgIHJlcXVlc3RBbGdvcml0aG1NZW1iZXI6IHsgaHR0cEhlYWRlcjogXCJ4LWFtei1zZGstY2hlY2tzdW0tYWxnb3JpdGhtXCIsIG5hbWU6IFwiQ2hlY2tzdW1BbGdvcml0aG1cIiB9LFxuICAgICAgICAgICAgcmVxdWVzdENoZWNrc3VtUmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0pLFxuICAgICAgICBtaWRkbGV3YXJlU2RrUzMuZ2V0VGhyb3cyMDBFeGNlcHRpb25zUGx1Z2luKGNvbmZpZyksXG4gICAgXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIlB1dE9iamVjdFJldGVudGlvblwiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiUHV0T2JqZWN0UmV0ZW50aW9uQ29tbWFuZFwiKVxuICAgIC5zYyhQdXRPYmplY3RSZXRlbnRpb24pXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBQdXRPYmplY3RUYWdnaW5nQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgICAgbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKSxcbiAgICAgICAgbWlkZGxld2FyZUZsZXhpYmxlQ2hlY2tzdW1zLmdldEZsZXhpYmxlQ2hlY2tzdW1zUGx1Z2luKGNvbmZpZywge1xuICAgICAgICAgICAgcmVxdWVzdEFsZ29yaXRobU1lbWJlcjogeyBodHRwSGVhZGVyOiBcIngtYW16LXNkay1jaGVja3N1bS1hbGdvcml0aG1cIiwgbmFtZTogXCJDaGVja3N1bUFsZ29yaXRobVwiIH0sXG4gICAgICAgICAgICByZXF1ZXN0Q2hlY2tzdW1SZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSksXG4gICAgICAgIG1pZGRsZXdhcmVTZGtTMy5nZXRUaHJvdzIwMEV4Y2VwdGlvbnNQbHVnaW4oY29uZmlnKSxcbiAgICBdO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiUHV0T2JqZWN0VGFnZ2luZ1wiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiUHV0T2JqZWN0VGFnZ2luZ0NvbW1hbmRcIilcbiAgICAuc2MoUHV0T2JqZWN0VGFnZ2luZylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFB1dFB1YmxpY0FjY2Vzc0Jsb2NrQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgVXNlUzNFeHByZXNzQ29udHJvbEVuZHBvaW50OiB7IHR5cGU6IFwic3RhdGljQ29udGV4dFBhcmFtc1wiLCB2YWx1ZTogdHJ1ZSB9LFxuICAgIEJ1Y2tldDogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJCdWNrZXRcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbXG4gICAgICAgIG1pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSksXG4gICAgICAgIG1pZGRsZXdhcmVGbGV4aWJsZUNoZWNrc3Vtcy5nZXRGbGV4aWJsZUNoZWNrc3Vtc1BsdWdpbihjb25maWcsIHtcbiAgICAgICAgICAgIHJlcXVlc3RBbGdvcml0aG1NZW1iZXI6IHsgaHR0cEhlYWRlcjogXCJ4LWFtei1zZGstY2hlY2tzdW0tYWxnb3JpdGhtXCIsIG5hbWU6IFwiQ2hlY2tzdW1BbGdvcml0aG1cIiB9LFxuICAgICAgICAgICAgcmVxdWVzdENoZWNrc3VtUmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0pLFxuICAgIF07XG59KVxuICAgIC5zKFwiQW1hem9uUzNcIiwgXCJQdXRQdWJsaWNBY2Nlc3NCbG9ja1wiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiUHV0UHVibGljQWNjZXNzQmxvY2tDb21tYW5kXCIpXG4gICAgLnNjKFB1dFB1YmxpY0FjY2Vzc0Jsb2NrKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgUmVuYW1lT2JqZWN0Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG4gICAgS2V5OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIktleVwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpLCBtaWRkbGV3YXJlU2RrUzMuZ2V0VGhyb3cyMDBFeGNlcHRpb25zUGx1Z2luKGNvbmZpZyldO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiUmVuYW1lT2JqZWN0XCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJSZW5hbWVPYmplY3RDb21tYW5kXCIpXG4gICAgLnNjKFJlbmFtZU9iamVjdClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFJlc3RvcmVPYmplY3RDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW1xuICAgICAgICBtaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpLFxuICAgICAgICBtaWRkbGV3YXJlRmxleGlibGVDaGVja3N1bXMuZ2V0RmxleGlibGVDaGVja3N1bXNQbHVnaW4oY29uZmlnLCB7XG4gICAgICAgICAgICByZXF1ZXN0QWxnb3JpdGhtTWVtYmVyOiB7IGh0dHBIZWFkZXI6IFwieC1hbXotc2RrLWNoZWNrc3VtLWFsZ29yaXRobVwiLCBuYW1lOiBcIkNoZWNrc3VtQWxnb3JpdGhtXCIgfSxcbiAgICAgICAgICAgIHJlcXVlc3RDaGVja3N1bVJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgfSksXG4gICAgICAgIG1pZGRsZXdhcmVTZGtTMy5nZXRUaHJvdzIwMEV4Y2VwdGlvbnNQbHVnaW4oY29uZmlnKSxcbiAgICBdO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiUmVzdG9yZU9iamVjdFwiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiUmVzdG9yZU9iamVjdENvbW1hbmRcIilcbiAgICAuc2MoUmVzdG9yZU9iamVjdClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFNlbGVjdE9iamVjdENvbnRlbnRDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBCdWNrZXQ6IHsgdHlwZTogXCJjb250ZXh0UGFyYW1zXCIsIG5hbWU6IFwiQnVja2V0XCIgfSxcbn0pXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW1xuICAgICAgICBtaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpLFxuICAgICAgICBtaWRkbGV3YXJlU2RrUzMuZ2V0VGhyb3cyMDBFeGNlcHRpb25zUGx1Z2luKGNvbmZpZyksXG4gICAgICAgIG1pZGRsZXdhcmVTc2VjLmdldFNzZWNQbHVnaW4oY29uZmlnKSxcbiAgICBdO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiU2VsZWN0T2JqZWN0Q29udGVudFwiLCB7XG4gICAgZXZlbnRTdHJlYW06IHtcbiAgICAgICAgb3V0cHV0OiB0cnVlLFxuICAgIH0sXG59KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJTZWxlY3RPYmplY3RDb250ZW50Q29tbWFuZFwiKVxuICAgIC5zYyhTZWxlY3RPYmplY3RDb250ZW50KVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgVXBkYXRlQnVja2V0TWV0YWRhdGFJbnZlbnRvcnlUYWJsZUNvbmZpZ3VyYXRpb25Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBVc2VTM0V4cHJlc3NDb250cm9sRW5kcG9pbnQ6IHsgdHlwZTogXCJzdGF0aWNDb250ZXh0UGFyYW1zXCIsIHZhbHVlOiB0cnVlIH0sXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgICAgbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKSxcbiAgICAgICAgbWlkZGxld2FyZUZsZXhpYmxlQ2hlY2tzdW1zLmdldEZsZXhpYmxlQ2hlY2tzdW1zUGx1Z2luKGNvbmZpZywge1xuICAgICAgICAgICAgcmVxdWVzdEFsZ29yaXRobU1lbWJlcjogeyBodHRwSGVhZGVyOiBcIngtYW16LXNkay1jaGVja3N1bS1hbGdvcml0aG1cIiwgbmFtZTogXCJDaGVja3N1bUFsZ29yaXRobVwiIH0sXG4gICAgICAgICAgICByZXF1ZXN0Q2hlY2tzdW1SZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSksXG4gICAgXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIlVwZGF0ZUJ1Y2tldE1ldGFkYXRhSW52ZW50b3J5VGFibGVDb25maWd1cmF0aW9uXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJVcGRhdGVCdWNrZXRNZXRhZGF0YUludmVudG9yeVRhYmxlQ29uZmlndXJhdGlvbkNvbW1hbmRcIilcbiAgICAuc2MoVXBkYXRlQnVja2V0TWV0YWRhdGFJbnZlbnRvcnlUYWJsZUNvbmZpZ3VyYXRpb24pXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBVcGRhdGVCdWNrZXRNZXRhZGF0YUpvdXJuYWxUYWJsZUNvbmZpZ3VyYXRpb25Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoe1xuICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICBVc2VTM0V4cHJlc3NDb250cm9sRW5kcG9pbnQ6IHsgdHlwZTogXCJzdGF0aWNDb250ZXh0UGFyYW1zXCIsIHZhbHVlOiB0cnVlIH0sXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgICAgbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKSxcbiAgICAgICAgbWlkZGxld2FyZUZsZXhpYmxlQ2hlY2tzdW1zLmdldEZsZXhpYmxlQ2hlY2tzdW1zUGx1Z2luKGNvbmZpZywge1xuICAgICAgICAgICAgcmVxdWVzdEFsZ29yaXRobU1lbWJlcjogeyBodHRwSGVhZGVyOiBcIngtYW16LXNkay1jaGVja3N1bS1hbGdvcml0aG1cIiwgbmFtZTogXCJDaGVja3N1bUFsZ29yaXRobVwiIH0sXG4gICAgICAgICAgICByZXF1ZXN0Q2hlY2tzdW1SZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSksXG4gICAgXTtcbn0pXG4gICAgLnMoXCJBbWF6b25TM1wiLCBcIlVwZGF0ZUJ1Y2tldE1ldGFkYXRhSm91cm5hbFRhYmxlQ29uZmlndXJhdGlvblwiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiVXBkYXRlQnVja2V0TWV0YWRhdGFKb3VybmFsVGFibGVDb25maWd1cmF0aW9uQ29tbWFuZFwiKVxuICAgIC5zYyhVcGRhdGVCdWNrZXRNZXRhZGF0YUpvdXJuYWxUYWJsZUNvbmZpZ3VyYXRpb24pXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBVcGxvYWRQYXJ0Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgQnVja2V0OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIkJ1Y2tldFwiIH0sXG4gICAgS2V5OiB7IHR5cGU6IFwiY29udGV4dFBhcmFtc1wiLCBuYW1lOiBcIktleVwiIH0sXG59KVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgICAgbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKSxcbiAgICAgICAgbWlkZGxld2FyZUZsZXhpYmxlQ2hlY2tzdW1zLmdldEZsZXhpYmxlQ2hlY2tzdW1zUGx1Z2luKGNvbmZpZywge1xuICAgICAgICAgICAgcmVxdWVzdEFsZ29yaXRobU1lbWJlcjogeyBodHRwSGVhZGVyOiBcIngtYW16LXNkay1jaGVja3N1bS1hbGdvcml0aG1cIiwgbmFtZTogXCJDaGVja3N1bUFsZ29yaXRobVwiIH0sXG4gICAgICAgICAgICByZXF1ZXN0Q2hlY2tzdW1SZXF1aXJlZDogZmFsc2UsXG4gICAgICAgIH0pLFxuICAgICAgICBtaWRkbGV3YXJlU2RrUzMuZ2V0VGhyb3cyMDBFeGNlcHRpb25zUGx1Z2luKGNvbmZpZyksXG4gICAgICAgIG1pZGRsZXdhcmVTc2VjLmdldFNzZWNQbHVnaW4oY29uZmlnKSxcbiAgICBdO1xufSlcbiAgICAucyhcIkFtYXpvblMzXCIsIFwiVXBsb2FkUGFydFwiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiVXBsb2FkUGFydENvbW1hbmRcIilcbiAgICAuc2MoVXBsb2FkUGFydClcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFVwbG9hZFBhcnRDb3B5Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKHtcbiAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgRGlzYWJsZVMzRXhwcmVzc1Nlc3Npb25BdXRoOiB7IHR5cGU6IFwic3RhdGljQ29udGV4dFBhcmFtc1wiLCB2YWx1ZTogdHJ1ZSB9LFxuICAgIEJ1Y2tldDogeyB0eXBlOiBcImNvbnRleHRQYXJhbXNcIiwgbmFtZTogXCJCdWNrZXRcIiB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbXG4gICAgICAgIG1pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSksXG4gICAgICAgIG1pZGRsZXdhcmVTZGtTMy5nZXRUaHJvdzIwMEV4Y2VwdGlvbnNQbHVnaW4oY29uZmlnKSxcbiAgICAgICAgbWlkZGxld2FyZVNzZWMuZ2V0U3NlY1BsdWdpbihjb25maWcpLFxuICAgIF07XG59KVxuICAgIC5zKFwiQW1hem9uUzNcIiwgXCJVcGxvYWRQYXJ0Q29weVwiLCB7fSlcbiAgICAubihcIlMzQ2xpZW50XCIsIFwiVXBsb2FkUGFydENvcHlDb21tYW5kXCIpXG4gICAgLnNjKFVwbG9hZFBhcnRDb3B5KVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgV3JpdGVHZXRPYmplY3RSZXNwb25zZUNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcCh7XG4gICAgLi4uY29tbW9uUGFyYW1zLFxuICAgIFVzZU9iamVjdExhbWJkYUVuZHBvaW50OiB7IHR5cGU6IFwic3RhdGljQ29udGV4dFBhcmFtc1wiLCB2YWx1ZTogdHJ1ZSB9LFxufSlcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQW1hem9uUzNcIiwgXCJXcml0ZUdldE9iamVjdFJlc3BvbnNlXCIsIHt9KVxuICAgIC5uKFwiUzNDbGllbnRcIiwgXCJXcml0ZUdldE9iamVjdFJlc3BvbnNlQ29tbWFuZFwiKVxuICAgIC5zYyhXcml0ZUdldE9iamVjdFJlc3BvbnNlKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY29uc3QgY29tbWFuZHMgPSB7XG4gICAgQWJvcnRNdWx0aXBhcnRVcGxvYWRDb21tYW5kLFxuICAgIENvbXBsZXRlTXVsdGlwYXJ0VXBsb2FkQ29tbWFuZCxcbiAgICBDb3B5T2JqZWN0Q29tbWFuZCxcbiAgICBDcmVhdGVCdWNrZXRDb21tYW5kLFxuICAgIENyZWF0ZUJ1Y2tldE1ldGFkYXRhQ29uZmlndXJhdGlvbkNvbW1hbmQsXG4gICAgQ3JlYXRlQnVja2V0TWV0YWRhdGFUYWJsZUNvbmZpZ3VyYXRpb25Db21tYW5kLFxuICAgIENyZWF0ZU11bHRpcGFydFVwbG9hZENvbW1hbmQsXG4gICAgQ3JlYXRlU2Vzc2lvbkNvbW1hbmQsXG4gICAgRGVsZXRlQnVja2V0Q29tbWFuZCxcbiAgICBEZWxldGVCdWNrZXRBbmFseXRpY3NDb25maWd1cmF0aW9uQ29tbWFuZCxcbiAgICBEZWxldGVCdWNrZXRDb3JzQ29tbWFuZCxcbiAgICBEZWxldGVCdWNrZXRFbmNyeXB0aW9uQ29tbWFuZCxcbiAgICBEZWxldGVCdWNrZXRJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9uQ29tbWFuZCxcbiAgICBEZWxldGVCdWNrZXRJbnZlbnRvcnlDb25maWd1cmF0aW9uQ29tbWFuZCxcbiAgICBEZWxldGVCdWNrZXRMaWZlY3ljbGVDb21tYW5kLFxuICAgIERlbGV0ZUJ1Y2tldE1ldGFkYXRhQ29uZmlndXJhdGlvbkNvbW1hbmQsXG4gICAgRGVsZXRlQnVja2V0TWV0YWRhdGFUYWJsZUNvbmZpZ3VyYXRpb25Db21tYW5kLFxuICAgIERlbGV0ZUJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9uQ29tbWFuZCxcbiAgICBEZWxldGVCdWNrZXRPd25lcnNoaXBDb250cm9sc0NvbW1hbmQsXG4gICAgRGVsZXRlQnVja2V0UG9saWN5Q29tbWFuZCxcbiAgICBEZWxldGVCdWNrZXRSZXBsaWNhdGlvbkNvbW1hbmQsXG4gICAgRGVsZXRlQnVja2V0VGFnZ2luZ0NvbW1hbmQsXG4gICAgRGVsZXRlQnVja2V0V2Vic2l0ZUNvbW1hbmQsXG4gICAgRGVsZXRlT2JqZWN0Q29tbWFuZCxcbiAgICBEZWxldGVPYmplY3RzQ29tbWFuZCxcbiAgICBEZWxldGVPYmplY3RUYWdnaW5nQ29tbWFuZCxcbiAgICBEZWxldGVQdWJsaWNBY2Nlc3NCbG9ja0NvbW1hbmQsXG4gICAgR2V0QnVja2V0QWJhY0NvbW1hbmQsXG4gICAgR2V0QnVja2V0QWNjZWxlcmF0ZUNvbmZpZ3VyYXRpb25Db21tYW5kLFxuICAgIEdldEJ1Y2tldEFjbENvbW1hbmQsXG4gICAgR2V0QnVja2V0QW5hbHl0aWNzQ29uZmlndXJhdGlvbkNvbW1hbmQsXG4gICAgR2V0QnVja2V0Q29yc0NvbW1hbmQsXG4gICAgR2V0QnVja2V0RW5jcnlwdGlvbkNvbW1hbmQsXG4gICAgR2V0QnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvbkNvbW1hbmQsXG4gICAgR2V0QnVja2V0SW52ZW50b3J5Q29uZmlndXJhdGlvbkNvbW1hbmQsXG4gICAgR2V0QnVja2V0TGlmZWN5Y2xlQ29uZmlndXJhdGlvbkNvbW1hbmQsXG4gICAgR2V0QnVja2V0TG9jYXRpb25Db21tYW5kLFxuICAgIEdldEJ1Y2tldExvZ2dpbmdDb21tYW5kLFxuICAgIEdldEJ1Y2tldE1ldGFkYXRhQ29uZmlndXJhdGlvbkNvbW1hbmQsXG4gICAgR2V0QnVja2V0TWV0YWRhdGFUYWJsZUNvbmZpZ3VyYXRpb25Db21tYW5kLFxuICAgIEdldEJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9uQ29tbWFuZCxcbiAgICBHZXRCdWNrZXROb3RpZmljYXRpb25Db25maWd1cmF0aW9uQ29tbWFuZCxcbiAgICBHZXRCdWNrZXRPd25lcnNoaXBDb250cm9sc0NvbW1hbmQsXG4gICAgR2V0QnVja2V0UG9saWN5Q29tbWFuZCxcbiAgICBHZXRCdWNrZXRQb2xpY3lTdGF0dXNDb21tYW5kLFxuICAgIEdldEJ1Y2tldFJlcGxpY2F0aW9uQ29tbWFuZCxcbiAgICBHZXRCdWNrZXRSZXF1ZXN0UGF5bWVudENvbW1hbmQsXG4gICAgR2V0QnVja2V0VGFnZ2luZ0NvbW1hbmQsXG4gICAgR2V0QnVja2V0VmVyc2lvbmluZ0NvbW1hbmQsXG4gICAgR2V0QnVja2V0V2Vic2l0ZUNvbW1hbmQsXG4gICAgR2V0T2JqZWN0Q29tbWFuZCxcbiAgICBHZXRPYmplY3RBY2xDb21tYW5kLFxuICAgIEdldE9iamVjdEF0dHJpYnV0ZXNDb21tYW5kLFxuICAgIEdldE9iamVjdExlZ2FsSG9sZENvbW1hbmQsXG4gICAgR2V0T2JqZWN0TG9ja0NvbmZpZ3VyYXRpb25Db21tYW5kLFxuICAgIEdldE9iamVjdFJldGVudGlvbkNvbW1hbmQsXG4gICAgR2V0T2JqZWN0VGFnZ2luZ0NvbW1hbmQsXG4gICAgR2V0T2JqZWN0VG9ycmVudENvbW1hbmQsXG4gICAgR2V0UHVibGljQWNjZXNzQmxvY2tDb21tYW5kLFxuICAgIEhlYWRCdWNrZXRDb21tYW5kLFxuICAgIEhlYWRPYmplY3RDb21tYW5kLFxuICAgIExpc3RCdWNrZXRBbmFseXRpY3NDb25maWd1cmF0aW9uc0NvbW1hbmQsXG4gICAgTGlzdEJ1Y2tldEludGVsbGlnZW50VGllcmluZ0NvbmZpZ3VyYXRpb25zQ29tbWFuZCxcbiAgICBMaXN0QnVja2V0SW52ZW50b3J5Q29uZmlndXJhdGlvbnNDb21tYW5kLFxuICAgIExpc3RCdWNrZXRNZXRyaWNzQ29uZmlndXJhdGlvbnNDb21tYW5kLFxuICAgIExpc3RCdWNrZXRzQ29tbWFuZCxcbiAgICBMaXN0RGlyZWN0b3J5QnVja2V0c0NvbW1hbmQsXG4gICAgTGlzdE11bHRpcGFydFVwbG9hZHNDb21tYW5kLFxuICAgIExpc3RPYmplY3RzQ29tbWFuZCxcbiAgICBMaXN0T2JqZWN0c1YyQ29tbWFuZCxcbiAgICBMaXN0T2JqZWN0VmVyc2lvbnNDb21tYW5kLFxuICAgIExpc3RQYXJ0c0NvbW1hbmQsXG4gICAgUHV0QnVja2V0QWJhY0NvbW1hbmQsXG4gICAgUHV0QnVja2V0QWNjZWxlcmF0ZUNvbmZpZ3VyYXRpb25Db21tYW5kLFxuICAgIFB1dEJ1Y2tldEFjbENvbW1hbmQsXG4gICAgUHV0QnVja2V0QW5hbHl0aWNzQ29uZmlndXJhdGlvbkNvbW1hbmQsXG4gICAgUHV0QnVja2V0Q29yc0NvbW1hbmQsXG4gICAgUHV0QnVja2V0RW5jcnlwdGlvbkNvbW1hbmQsXG4gICAgUHV0QnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvbkNvbW1hbmQsXG4gICAgUHV0QnVja2V0SW52ZW50b3J5Q29uZmlndXJhdGlvbkNvbW1hbmQsXG4gICAgUHV0QnVja2V0TGlmZWN5Y2xlQ29uZmlndXJhdGlvbkNvbW1hbmQsXG4gICAgUHV0QnVja2V0TG9nZ2luZ0NvbW1hbmQsXG4gICAgUHV0QnVja2V0TWV0cmljc0NvbmZpZ3VyYXRpb25Db21tYW5kLFxuICAgIFB1dEJ1Y2tldE5vdGlmaWNhdGlvbkNvbmZpZ3VyYXRpb25Db21tYW5kLFxuICAgIFB1dEJ1Y2tldE93bmVyc2hpcENvbnRyb2xzQ29tbWFuZCxcbiAgICBQdXRCdWNrZXRQb2xpY3lDb21tYW5kLFxuICAgIFB1dEJ1Y2tldFJlcGxpY2F0aW9uQ29tbWFuZCxcbiAgICBQdXRCdWNrZXRSZXF1ZXN0UGF5bWVudENvbW1hbmQsXG4gICAgUHV0QnVja2V0VGFnZ2luZ0NvbW1hbmQsXG4gICAgUHV0QnVja2V0VmVyc2lvbmluZ0NvbW1hbmQsXG4gICAgUHV0QnVja2V0V2Vic2l0ZUNvbW1hbmQsXG4gICAgUHV0T2JqZWN0Q29tbWFuZCxcbiAgICBQdXRPYmplY3RBY2xDb21tYW5kLFxuICAgIFB1dE9iamVjdExlZ2FsSG9sZENvbW1hbmQsXG4gICAgUHV0T2JqZWN0TG9ja0NvbmZpZ3VyYXRpb25Db21tYW5kLFxuICAgIFB1dE9iamVjdFJldGVudGlvbkNvbW1hbmQsXG4gICAgUHV0T2JqZWN0VGFnZ2luZ0NvbW1hbmQsXG4gICAgUHV0UHVibGljQWNjZXNzQmxvY2tDb21tYW5kLFxuICAgIFJlbmFtZU9iamVjdENvbW1hbmQsXG4gICAgUmVzdG9yZU9iamVjdENvbW1hbmQsXG4gICAgU2VsZWN0T2JqZWN0Q29udGVudENvbW1hbmQsXG4gICAgVXBkYXRlQnVja2V0TWV0YWRhdGFJbnZlbnRvcnlUYWJsZUNvbmZpZ3VyYXRpb25Db21tYW5kLFxuICAgIFVwZGF0ZUJ1Y2tldE1ldGFkYXRhSm91cm5hbFRhYmxlQ29uZmlndXJhdGlvbkNvbW1hbmQsXG4gICAgVXBsb2FkUGFydENvbW1hbmQsXG4gICAgVXBsb2FkUGFydENvcHlDb21tYW5kLFxuICAgIFdyaXRlR2V0T2JqZWN0UmVzcG9uc2VDb21tYW5kLFxufTtcbmNsYXNzIFMzIGV4dGVuZHMgUzNDbGllbnQge1xufVxuc21pdGh5Q2xpZW50LmNyZWF0ZUFnZ3JlZ2F0ZWRDbGllbnQoY29tbWFuZHMsIFMzKTtcblxuY29uc3QgcGFnaW5hdGVMaXN0QnVja2V0cyA9IGNvcmUuY3JlYXRlUGFnaW5hdG9yKFMzQ2xpZW50LCBMaXN0QnVja2V0c0NvbW1hbmQsIFwiQ29udGludWF0aW9uVG9rZW5cIiwgXCJDb250aW51YXRpb25Ub2tlblwiLCBcIk1heEJ1Y2tldHNcIik7XG5cbmNvbnN0IHBhZ2luYXRlTGlzdERpcmVjdG9yeUJ1Y2tldHMgPSBjb3JlLmNyZWF0ZVBhZ2luYXRvcihTM0NsaWVudCwgTGlzdERpcmVjdG9yeUJ1Y2tldHNDb21tYW5kLCBcIkNvbnRpbnVhdGlvblRva2VuXCIsIFwiQ29udGludWF0aW9uVG9rZW5cIiwgXCJNYXhEaXJlY3RvcnlCdWNrZXRzXCIpO1xuXG5jb25zdCBwYWdpbmF0ZUxpc3RPYmplY3RzVjIgPSBjb3JlLmNyZWF0ZVBhZ2luYXRvcihTM0NsaWVudCwgTGlzdE9iamVjdHNWMkNvbW1hbmQsIFwiQ29udGludWF0aW9uVG9rZW5cIiwgXCJOZXh0Q29udGludWF0aW9uVG9rZW5cIiwgXCJNYXhLZXlzXCIpO1xuXG5jb25zdCBwYWdpbmF0ZUxpc3RQYXJ0cyA9IGNvcmUuY3JlYXRlUGFnaW5hdG9yKFMzQ2xpZW50LCBMaXN0UGFydHNDb21tYW5kLCBcIlBhcnROdW1iZXJNYXJrZXJcIiwgXCJOZXh0UGFydE51bWJlck1hcmtlclwiLCBcIk1heFBhcnRzXCIpO1xuXG5jb25zdCBjaGVja1N0YXRlJDMgPSBhc3luYyAoY2xpZW50LCBpbnB1dCkgPT4ge1xuICAgIGxldCByZWFzb247XG4gICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgY2xpZW50LnNlbmQobmV3IEhlYWRCdWNrZXRDb21tYW5kKGlucHV0KSk7XG4gICAgICAgIHJlYXNvbiA9IHJlc3VsdDtcbiAgICAgICAgcmV0dXJuIHsgc3RhdGU6IHV0aWxXYWl0ZXIuV2FpdGVyU3RhdGUuU1VDQ0VTUywgcmVhc29uIH07XG4gICAgfVxuICAgIGNhdGNoIChleGNlcHRpb24pIHtcbiAgICAgICAgcmVhc29uID0gZXhjZXB0aW9uO1xuICAgICAgICBpZiAoZXhjZXB0aW9uLm5hbWUgJiYgZXhjZXB0aW9uLm5hbWUgPT0gXCJOb3RGb3VuZFwiKSB7XG4gICAgICAgICAgICByZXR1cm4geyBzdGF0ZTogdXRpbFdhaXRlci5XYWl0ZXJTdGF0ZS5SRVRSWSwgcmVhc29uIH07XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHsgc3RhdGU6IHV0aWxXYWl0ZXIuV2FpdGVyU3RhdGUuUkVUUlksIHJlYXNvbiB9O1xufTtcbmNvbnN0IHdhaXRGb3JCdWNrZXRFeGlzdHMgPSBhc3luYyAocGFyYW1zLCBpbnB1dCkgPT4ge1xuICAgIGNvbnN0IHNlcnZpY2VEZWZhdWx0cyA9IHsgbWluRGVsYXk6IDUsIG1heERlbGF5OiAxMjAgfTtcbiAgICByZXR1cm4gdXRpbFdhaXRlci5jcmVhdGVXYWl0ZXIoeyAuLi5zZXJ2aWNlRGVmYXVsdHMsIC4uLnBhcmFtcyB9LCBpbnB1dCwgY2hlY2tTdGF0ZSQzKTtcbn07XG5jb25zdCB3YWl0VW50aWxCdWNrZXRFeGlzdHMgPSBhc3luYyAocGFyYW1zLCBpbnB1dCkgPT4ge1xuICAgIGNvbnN0IHNlcnZpY2VEZWZhdWx0cyA9IHsgbWluRGVsYXk6IDUsIG1heERlbGF5OiAxMjAgfTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB1dGlsV2FpdGVyLmNyZWF0ZVdhaXRlcih7IC4uLnNlcnZpY2VEZWZhdWx0cywgLi4ucGFyYW1zIH0sIGlucHV0LCBjaGVja1N0YXRlJDMpO1xuICAgIHJldHVybiB1dGlsV2FpdGVyLmNoZWNrRXhjZXB0aW9ucyhyZXN1bHQpO1xufTtcblxuY29uc3QgY2hlY2tTdGF0ZSQyID0gYXN5bmMgKGNsaWVudCwgaW5wdXQpID0+IHtcbiAgICBsZXQgcmVhc29uO1xuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGNsaWVudC5zZW5kKG5ldyBIZWFkQnVja2V0Q29tbWFuZChpbnB1dCkpO1xuICAgICAgICByZWFzb24gPSByZXN1bHQ7XG4gICAgfVxuICAgIGNhdGNoIChleGNlcHRpb24pIHtcbiAgICAgICAgcmVhc29uID0gZXhjZXB0aW9uO1xuICAgICAgICBpZiAoZXhjZXB0aW9uLm5hbWUgJiYgZXhjZXB0aW9uLm5hbWUgPT0gXCJOb3RGb3VuZFwiKSB7XG4gICAgICAgICAgICByZXR1cm4geyBzdGF0ZTogdXRpbFdhaXRlci5XYWl0ZXJTdGF0ZS5TVUNDRVNTLCByZWFzb24gfTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4geyBzdGF0ZTogdXRpbFdhaXRlci5XYWl0ZXJTdGF0ZS5SRVRSWSwgcmVhc29uIH07XG59O1xuY29uc3Qgd2FpdEZvckJ1Y2tldE5vdEV4aXN0cyA9IGFzeW5jIChwYXJhbXMsIGlucHV0KSA9PiB7XG4gICAgY29uc3Qgc2VydmljZURlZmF1bHRzID0geyBtaW5EZWxheTogNSwgbWF4RGVsYXk6IDEyMCB9O1xuICAgIHJldHVybiB1dGlsV2FpdGVyLmNyZWF0ZVdhaXRlcih7IC4uLnNlcnZpY2VEZWZhdWx0cywgLi4ucGFyYW1zIH0sIGlucHV0LCBjaGVja1N0YXRlJDIpO1xufTtcbmNvbnN0IHdhaXRVbnRpbEJ1Y2tldE5vdEV4aXN0cyA9IGFzeW5jIChwYXJhbXMsIGlucHV0KSA9PiB7XG4gICAgY29uc3Qgc2VydmljZURlZmF1bHRzID0geyBtaW5EZWxheTogNSwgbWF4RGVsYXk6IDEyMCB9O1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHV0aWxXYWl0ZXIuY3JlYXRlV2FpdGVyKHsgLi4uc2VydmljZURlZmF1bHRzLCAuLi5wYXJhbXMgfSwgaW5wdXQsIGNoZWNrU3RhdGUkMik7XG4gICAgcmV0dXJuIHV0aWxXYWl0ZXIuY2hlY2tFeGNlcHRpb25zKHJlc3VsdCk7XG59O1xuXG5jb25zdCBjaGVja1N0YXRlJDEgPSBhc3luYyAoY2xpZW50LCBpbnB1dCkgPT4ge1xuICAgIGxldCByZWFzb247XG4gICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgY2xpZW50LnNlbmQobmV3IEhlYWRPYmplY3RDb21tYW5kKGlucHV0KSk7XG4gICAgICAgIHJlYXNvbiA9IHJlc3VsdDtcbiAgICAgICAgcmV0dXJuIHsgc3RhdGU6IHV0aWxXYWl0ZXIuV2FpdGVyU3RhdGUuU1VDQ0VTUywgcmVhc29uIH07XG4gICAgfVxuICAgIGNhdGNoIChleGNlcHRpb24pIHtcbiAgICAgICAgcmVhc29uID0gZXhjZXB0aW9uO1xuICAgICAgICBpZiAoZXhjZXB0aW9uLm5hbWUgJiYgZXhjZXB0aW9uLm5hbWUgPT0gXCJOb3RGb3VuZFwiKSB7XG4gICAgICAgICAgICByZXR1cm4geyBzdGF0ZTogdXRpbFdhaXRlci5XYWl0ZXJTdGF0ZS5SRVRSWSwgcmVhc29uIH07XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHsgc3RhdGU6IHV0aWxXYWl0ZXIuV2FpdGVyU3RhdGUuUkVUUlksIHJlYXNvbiB9O1xufTtcbmNvbnN0IHdhaXRGb3JPYmplY3RFeGlzdHMgPSBhc3luYyAocGFyYW1zLCBpbnB1dCkgPT4ge1xuICAgIGNvbnN0IHNlcnZpY2VEZWZhdWx0cyA9IHsgbWluRGVsYXk6IDUsIG1heERlbGF5OiAxMjAgfTtcbiAgICByZXR1cm4gdXRpbFdhaXRlci5jcmVhdGVXYWl0ZXIoeyAuLi5zZXJ2aWNlRGVmYXVsdHMsIC4uLnBhcmFtcyB9LCBpbnB1dCwgY2hlY2tTdGF0ZSQxKTtcbn07XG5jb25zdCB3YWl0VW50aWxPYmplY3RFeGlzdHMgPSBhc3luYyAocGFyYW1zLCBpbnB1dCkgPT4ge1xuICAgIGNvbnN0IHNlcnZpY2VEZWZhdWx0cyA9IHsgbWluRGVsYXk6IDUsIG1heERlbGF5OiAxMjAgfTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB1dGlsV2FpdGVyLmNyZWF0ZVdhaXRlcih7IC4uLnNlcnZpY2VEZWZhdWx0cywgLi4ucGFyYW1zIH0sIGlucHV0LCBjaGVja1N0YXRlJDEpO1xuICAgIHJldHVybiB1dGlsV2FpdGVyLmNoZWNrRXhjZXB0aW9ucyhyZXN1bHQpO1xufTtcblxuY29uc3QgY2hlY2tTdGF0ZSA9IGFzeW5jIChjbGllbnQsIGlucHV0KSA9PiB7XG4gICAgbGV0IHJlYXNvbjtcbiAgICB0cnkge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBjbGllbnQuc2VuZChuZXcgSGVhZE9iamVjdENvbW1hbmQoaW5wdXQpKTtcbiAgICAgICAgcmVhc29uID0gcmVzdWx0O1xuICAgIH1cbiAgICBjYXRjaCAoZXhjZXB0aW9uKSB7XG4gICAgICAgIHJlYXNvbiA9IGV4Y2VwdGlvbjtcbiAgICAgICAgaWYgKGV4Y2VwdGlvbi5uYW1lICYmIGV4Y2VwdGlvbi5uYW1lID09IFwiTm90Rm91bmRcIikge1xuICAgICAgICAgICAgcmV0dXJuIHsgc3RhdGU6IHV0aWxXYWl0ZXIuV2FpdGVyU3RhdGUuU1VDQ0VTUywgcmVhc29uIH07XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHsgc3RhdGU6IHV0aWxXYWl0ZXIuV2FpdGVyU3RhdGUuUkVUUlksIHJlYXNvbiB9O1xufTtcbmNvbnN0IHdhaXRGb3JPYmplY3ROb3RFeGlzdHMgPSBhc3luYyAocGFyYW1zLCBpbnB1dCkgPT4ge1xuICAgIGNvbnN0IHNlcnZpY2VEZWZhdWx0cyA9IHsgbWluRGVsYXk6IDUsIG1heERlbGF5OiAxMjAgfTtcbiAgICByZXR1cm4gdXRpbFdhaXRlci5jcmVhdGVXYWl0ZXIoeyAuLi5zZXJ2aWNlRGVmYXVsdHMsIC4uLnBhcmFtcyB9LCBpbnB1dCwgY2hlY2tTdGF0ZSk7XG59O1xuY29uc3Qgd2FpdFVudGlsT2JqZWN0Tm90RXhpc3RzID0gYXN5bmMgKHBhcmFtcywgaW5wdXQpID0+IHtcbiAgICBjb25zdCBzZXJ2aWNlRGVmYXVsdHMgPSB7IG1pbkRlbGF5OiA1LCBtYXhEZWxheTogMTIwIH07XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdXRpbFdhaXRlci5jcmVhdGVXYWl0ZXIoeyAuLi5zZXJ2aWNlRGVmYXVsdHMsIC4uLnBhcmFtcyB9LCBpbnB1dCwgY2hlY2tTdGF0ZSk7XG4gICAgcmV0dXJuIHV0aWxXYWl0ZXIuY2hlY2tFeGNlcHRpb25zKHJlc3VsdCk7XG59O1xuXG5jb25zdCBCdWNrZXRBYmFjU3RhdHVzID0ge1xuICAgIERpc2FibGVkOiBcIkRpc2FibGVkXCIsXG4gICAgRW5hYmxlZDogXCJFbmFibGVkXCIsXG59O1xuY29uc3QgUmVxdWVzdENoYXJnZWQgPSB7XG4gICAgcmVxdWVzdGVyOiBcInJlcXVlc3RlclwiLFxufTtcbmNvbnN0IFJlcXVlc3RQYXllciA9IHtcbiAgICByZXF1ZXN0ZXI6IFwicmVxdWVzdGVyXCIsXG59O1xuY29uc3QgQnVja2V0QWNjZWxlcmF0ZVN0YXR1cyA9IHtcbiAgICBFbmFibGVkOiBcIkVuYWJsZWRcIixcbiAgICBTdXNwZW5kZWQ6IFwiU3VzcGVuZGVkXCIsXG59O1xuY29uc3QgVHlwZSA9IHtcbiAgICBBbWF6b25DdXN0b21lckJ5RW1haWw6IFwiQW1hem9uQ3VzdG9tZXJCeUVtYWlsXCIsXG4gICAgQ2Fub25pY2FsVXNlcjogXCJDYW5vbmljYWxVc2VyXCIsXG4gICAgR3JvdXA6IFwiR3JvdXBcIixcbn07XG5jb25zdCBQZXJtaXNzaW9uID0ge1xuICAgIEZVTExfQ09OVFJPTDogXCJGVUxMX0NPTlRST0xcIixcbiAgICBSRUFEOiBcIlJFQURcIixcbiAgICBSRUFEX0FDUDogXCJSRUFEX0FDUFwiLFxuICAgIFdSSVRFOiBcIldSSVRFXCIsXG4gICAgV1JJVEVfQUNQOiBcIldSSVRFX0FDUFwiLFxufTtcbmNvbnN0IE93bmVyT3ZlcnJpZGUgPSB7XG4gICAgRGVzdGluYXRpb246IFwiRGVzdGluYXRpb25cIixcbn07XG5jb25zdCBDaGVja3N1bVR5cGUgPSB7XG4gICAgQ09NUE9TSVRFOiBcIkNPTVBPU0lURVwiLFxuICAgIEZVTExfT0JKRUNUOiBcIkZVTExfT0JKRUNUXCIsXG59O1xuY29uc3QgU2VydmVyU2lkZUVuY3J5cHRpb24gPSB7XG4gICAgQUVTMjU2OiBcIkFFUzI1NlwiLFxuICAgIGF3c19mc3g6IFwiYXdzOmZzeFwiLFxuICAgIGF3c19rbXM6IFwiYXdzOmttc1wiLFxuICAgIGF3c19rbXNfZHNzZTogXCJhd3M6a21zOmRzc2VcIixcbn07XG5jb25zdCBPYmplY3RDYW5uZWRBQ0wgPSB7XG4gICAgYXV0aGVudGljYXRlZF9yZWFkOiBcImF1dGhlbnRpY2F0ZWQtcmVhZFwiLFxuICAgIGF3c19leGVjX3JlYWQ6IFwiYXdzLWV4ZWMtcmVhZFwiLFxuICAgIGJ1Y2tldF9vd25lcl9mdWxsX2NvbnRyb2w6IFwiYnVja2V0LW93bmVyLWZ1bGwtY29udHJvbFwiLFxuICAgIGJ1Y2tldF9vd25lcl9yZWFkOiBcImJ1Y2tldC1vd25lci1yZWFkXCIsXG4gICAgcHJpdmF0ZTogXCJwcml2YXRlXCIsXG4gICAgcHVibGljX3JlYWQ6IFwicHVibGljLXJlYWRcIixcbiAgICBwdWJsaWNfcmVhZF93cml0ZTogXCJwdWJsaWMtcmVhZC13cml0ZVwiLFxufTtcbmNvbnN0IENoZWNrc3VtQWxnb3JpdGhtID0ge1xuICAgIENSQzMyOiBcIkNSQzMyXCIsXG4gICAgQ1JDMzJDOiBcIkNSQzMyQ1wiLFxuICAgIENSQzY0TlZNRTogXCJDUkM2NE5WTUVcIixcbiAgICBTSEExOiBcIlNIQTFcIixcbiAgICBTSEEyNTY6IFwiU0hBMjU2XCIsXG59O1xuY29uc3QgTWV0YWRhdGFEaXJlY3RpdmUgPSB7XG4gICAgQ09QWTogXCJDT1BZXCIsXG4gICAgUkVQTEFDRTogXCJSRVBMQUNFXCIsXG59O1xuY29uc3QgT2JqZWN0TG9ja0xlZ2FsSG9sZFN0YXR1cyA9IHtcbiAgICBPRkY6IFwiT0ZGXCIsXG4gICAgT046IFwiT05cIixcbn07XG5jb25zdCBPYmplY3RMb2NrTW9kZSA9IHtcbiAgICBDT01QTElBTkNFOiBcIkNPTVBMSUFOQ0VcIixcbiAgICBHT1ZFUk5BTkNFOiBcIkdPVkVSTkFOQ0VcIixcbn07XG5jb25zdCBTdG9yYWdlQ2xhc3MgPSB7XG4gICAgREVFUF9BUkNISVZFOiBcIkRFRVBfQVJDSElWRVwiLFxuICAgIEVYUFJFU1NfT05FWk9ORTogXCJFWFBSRVNTX09ORVpPTkVcIixcbiAgICBGU1hfT05UQVA6IFwiRlNYX09OVEFQXCIsXG4gICAgRlNYX09QRU5aRlM6IFwiRlNYX09QRU5aRlNcIixcbiAgICBHTEFDSUVSOiBcIkdMQUNJRVJcIixcbiAgICBHTEFDSUVSX0lSOiBcIkdMQUNJRVJfSVJcIixcbiAgICBJTlRFTExJR0VOVF9USUVSSU5HOiBcIklOVEVMTElHRU5UX1RJRVJJTkdcIixcbiAgICBPTkVaT05FX0lBOiBcIk9ORVpPTkVfSUFcIixcbiAgICBPVVRQT1NUUzogXCJPVVRQT1NUU1wiLFxuICAgIFJFRFVDRURfUkVEVU5EQU5DWTogXCJSRURVQ0VEX1JFRFVOREFOQ1lcIixcbiAgICBTTk9XOiBcIlNOT1dcIixcbiAgICBTVEFOREFSRDogXCJTVEFOREFSRFwiLFxuICAgIFNUQU5EQVJEX0lBOiBcIlNUQU5EQVJEX0lBXCIsXG59O1xuY29uc3QgVGFnZ2luZ0RpcmVjdGl2ZSA9IHtcbiAgICBDT1BZOiBcIkNPUFlcIixcbiAgICBSRVBMQUNFOiBcIlJFUExBQ0VcIixcbn07XG5jb25zdCBCdWNrZXRDYW5uZWRBQ0wgPSB7XG4gICAgYXV0aGVudGljYXRlZF9yZWFkOiBcImF1dGhlbnRpY2F0ZWQtcmVhZFwiLFxuICAgIHByaXZhdGU6IFwicHJpdmF0ZVwiLFxuICAgIHB1YmxpY19yZWFkOiBcInB1YmxpYy1yZWFkXCIsXG4gICAgcHVibGljX3JlYWRfd3JpdGU6IFwicHVibGljLXJlYWQtd3JpdGVcIixcbn07XG5jb25zdCBEYXRhUmVkdW5kYW5jeSA9IHtcbiAgICBTaW5nbGVBdmFpbGFiaWxpdHlab25lOiBcIlNpbmdsZUF2YWlsYWJpbGl0eVpvbmVcIixcbiAgICBTaW5nbGVMb2NhbFpvbmU6IFwiU2luZ2xlTG9jYWxab25lXCIsXG59O1xuY29uc3QgQnVja2V0VHlwZSA9IHtcbiAgICBEaXJlY3Rvcnk6IFwiRGlyZWN0b3J5XCIsXG59O1xuY29uc3QgTG9jYXRpb25UeXBlID0ge1xuICAgIEF2YWlsYWJpbGl0eVpvbmU6IFwiQXZhaWxhYmlsaXR5Wm9uZVwiLFxuICAgIExvY2FsWm9uZTogXCJMb2NhbFpvbmVcIixcbn07XG5jb25zdCBCdWNrZXRMb2NhdGlvbkNvbnN0cmFpbnQgPSB7XG4gICAgRVU6IFwiRVVcIixcbiAgICBhZl9zb3V0aF8xOiBcImFmLXNvdXRoLTFcIixcbiAgICBhcF9lYXN0XzE6IFwiYXAtZWFzdC0xXCIsXG4gICAgYXBfbm9ydGhlYXN0XzE6IFwiYXAtbm9ydGhlYXN0LTFcIixcbiAgICBhcF9ub3J0aGVhc3RfMjogXCJhcC1ub3J0aGVhc3QtMlwiLFxuICAgIGFwX25vcnRoZWFzdF8zOiBcImFwLW5vcnRoZWFzdC0zXCIsXG4gICAgYXBfc291dGhfMTogXCJhcC1zb3V0aC0xXCIsXG4gICAgYXBfc291dGhfMjogXCJhcC1zb3V0aC0yXCIsXG4gICAgYXBfc291dGhlYXN0XzE6IFwiYXAtc291dGhlYXN0LTFcIixcbiAgICBhcF9zb3V0aGVhc3RfMjogXCJhcC1zb3V0aGVhc3QtMlwiLFxuICAgIGFwX3NvdXRoZWFzdF8zOiBcImFwLXNvdXRoZWFzdC0zXCIsXG4gICAgYXBfc291dGhlYXN0XzQ6IFwiYXAtc291dGhlYXN0LTRcIixcbiAgICBhcF9zb3V0aGVhc3RfNTogXCJhcC1zb3V0aGVhc3QtNVwiLFxuICAgIGNhX2NlbnRyYWxfMTogXCJjYS1jZW50cmFsLTFcIixcbiAgICBjbl9ub3J0aF8xOiBcImNuLW5vcnRoLTFcIixcbiAgICBjbl9ub3J0aHdlc3RfMTogXCJjbi1ub3J0aHdlc3QtMVwiLFxuICAgIGV1X2NlbnRyYWxfMTogXCJldS1jZW50cmFsLTFcIixcbiAgICBldV9jZW50cmFsXzI6IFwiZXUtY2VudHJhbC0yXCIsXG4gICAgZXVfbm9ydGhfMTogXCJldS1ub3J0aC0xXCIsXG4gICAgZXVfc291dGhfMTogXCJldS1zb3V0aC0xXCIsXG4gICAgZXVfc291dGhfMjogXCJldS1zb3V0aC0yXCIsXG4gICAgZXVfd2VzdF8xOiBcImV1LXdlc3QtMVwiLFxuICAgIGV1X3dlc3RfMjogXCJldS13ZXN0LTJcIixcbiAgICBldV93ZXN0XzM6IFwiZXUtd2VzdC0zXCIsXG4gICAgaWxfY2VudHJhbF8xOiBcImlsLWNlbnRyYWwtMVwiLFxuICAgIG1lX2NlbnRyYWxfMTogXCJtZS1jZW50cmFsLTFcIixcbiAgICBtZV9zb3V0aF8xOiBcIm1lLXNvdXRoLTFcIixcbiAgICBzYV9lYXN0XzE6IFwic2EtZWFzdC0xXCIsXG4gICAgdXNfZWFzdF8yOiBcInVzLWVhc3QtMlwiLFxuICAgIHVzX2dvdl9lYXN0XzE6IFwidXMtZ292LWVhc3QtMVwiLFxuICAgIHVzX2dvdl93ZXN0XzE6IFwidXMtZ292LXdlc3QtMVwiLFxuICAgIHVzX3dlc3RfMTogXCJ1cy13ZXN0LTFcIixcbiAgICB1c193ZXN0XzI6IFwidXMtd2VzdC0yXCIsXG59O1xuY29uc3QgT2JqZWN0T3duZXJzaGlwID0ge1xuICAgIEJ1Y2tldE93bmVyRW5mb3JjZWQ6IFwiQnVja2V0T3duZXJFbmZvcmNlZFwiLFxuICAgIEJ1Y2tldE93bmVyUHJlZmVycmVkOiBcIkJ1Y2tldE93bmVyUHJlZmVycmVkXCIsXG4gICAgT2JqZWN0V3JpdGVyOiBcIk9iamVjdFdyaXRlclwiLFxufTtcbmNvbnN0IEludmVudG9yeUNvbmZpZ3VyYXRpb25TdGF0ZSA9IHtcbiAgICBESVNBQkxFRDogXCJESVNBQkxFRFwiLFxuICAgIEVOQUJMRUQ6IFwiRU5BQkxFRFwiLFxufTtcbmNvbnN0IFRhYmxlU3NlQWxnb3JpdGhtID0ge1xuICAgIEFFUzI1NjogXCJBRVMyNTZcIixcbiAgICBhd3Nfa21zOiBcImF3czprbXNcIixcbn07XG5jb25zdCBFeHBpcmF0aW9uU3RhdGUgPSB7XG4gICAgRElTQUJMRUQ6IFwiRElTQUJMRURcIixcbiAgICBFTkFCTEVEOiBcIkVOQUJMRURcIixcbn07XG5jb25zdCBTZXNzaW9uTW9kZSA9IHtcbiAgICBSZWFkT25seTogXCJSZWFkT25seVwiLFxuICAgIFJlYWRXcml0ZTogXCJSZWFkV3JpdGVcIixcbn07XG5jb25zdCBBbmFseXRpY3NTM0V4cG9ydEZpbGVGb3JtYXQgPSB7XG4gICAgQ1NWOiBcIkNTVlwiLFxufTtcbmNvbnN0IFN0b3JhZ2VDbGFzc0FuYWx5c2lzU2NoZW1hVmVyc2lvbiA9IHtcbiAgICBWXzE6IFwiVl8xXCIsXG59O1xuY29uc3QgRW5jcnlwdGlvblR5cGUgPSB7XG4gICAgTk9ORTogXCJOT05FXCIsXG4gICAgU1NFX0M6IFwiU1NFLUNcIixcbn07XG5jb25zdCBJbnRlbGxpZ2VudFRpZXJpbmdTdGF0dXMgPSB7XG4gICAgRGlzYWJsZWQ6IFwiRGlzYWJsZWRcIixcbiAgICBFbmFibGVkOiBcIkVuYWJsZWRcIixcbn07XG5jb25zdCBJbnRlbGxpZ2VudFRpZXJpbmdBY2Nlc3NUaWVyID0ge1xuICAgIEFSQ0hJVkVfQUNDRVNTOiBcIkFSQ0hJVkVfQUNDRVNTXCIsXG4gICAgREVFUF9BUkNISVZFX0FDQ0VTUzogXCJERUVQX0FSQ0hJVkVfQUNDRVNTXCIsXG59O1xuY29uc3QgSW52ZW50b3J5Rm9ybWF0ID0ge1xuICAgIENTVjogXCJDU1ZcIixcbiAgICBPUkM6IFwiT1JDXCIsXG4gICAgUGFycXVldDogXCJQYXJxdWV0XCIsXG59O1xuY29uc3QgSW52ZW50b3J5SW5jbHVkZWRPYmplY3RWZXJzaW9ucyA9IHtcbiAgICBBbGw6IFwiQWxsXCIsXG4gICAgQ3VycmVudDogXCJDdXJyZW50XCIsXG59O1xuY29uc3QgSW52ZW50b3J5T3B0aW9uYWxGaWVsZCA9IHtcbiAgICBCdWNrZXRLZXlTdGF0dXM6IFwiQnVja2V0S2V5U3RhdHVzXCIsXG4gICAgQ2hlY2tzdW1BbGdvcml0aG06IFwiQ2hlY2tzdW1BbGdvcml0aG1cIixcbiAgICBFVGFnOiBcIkVUYWdcIixcbiAgICBFbmNyeXB0aW9uU3RhdHVzOiBcIkVuY3J5cHRpb25TdGF0dXNcIixcbiAgICBJbnRlbGxpZ2VudFRpZXJpbmdBY2Nlc3NUaWVyOiBcIkludGVsbGlnZW50VGllcmluZ0FjY2Vzc1RpZXJcIixcbiAgICBJc011bHRpcGFydFVwbG9hZGVkOiBcIklzTXVsdGlwYXJ0VXBsb2FkZWRcIixcbiAgICBMYXN0TW9kaWZpZWREYXRlOiBcIkxhc3RNb2RpZmllZERhdGVcIixcbiAgICBMaWZlY3ljbGVFeHBpcmF0aW9uRGF0ZTogXCJMaWZlY3ljbGVFeHBpcmF0aW9uRGF0ZVwiLFxuICAgIE9iamVjdEFjY2Vzc0NvbnRyb2xMaXN0OiBcIk9iamVjdEFjY2Vzc0NvbnRyb2xMaXN0XCIsXG4gICAgT2JqZWN0TG9ja0xlZ2FsSG9sZFN0YXR1czogXCJPYmplY3RMb2NrTGVnYWxIb2xkU3RhdHVzXCIsXG4gICAgT2JqZWN0TG9ja01vZGU6IFwiT2JqZWN0TG9ja01vZGVcIixcbiAgICBPYmplY3RMb2NrUmV0YWluVW50aWxEYXRlOiBcIk9iamVjdExvY2tSZXRhaW5VbnRpbERhdGVcIixcbiAgICBPYmplY3RPd25lcjogXCJPYmplY3RPd25lclwiLFxuICAgIFJlcGxpY2F0aW9uU3RhdHVzOiBcIlJlcGxpY2F0aW9uU3RhdHVzXCIsXG4gICAgU2l6ZTogXCJTaXplXCIsXG4gICAgU3RvcmFnZUNsYXNzOiBcIlN0b3JhZ2VDbGFzc1wiLFxufTtcbmNvbnN0IEludmVudG9yeUZyZXF1ZW5jeSA9IHtcbiAgICBEYWlseTogXCJEYWlseVwiLFxuICAgIFdlZWtseTogXCJXZWVrbHlcIixcbn07XG5jb25zdCBUcmFuc2l0aW9uU3RvcmFnZUNsYXNzID0ge1xuICAgIERFRVBfQVJDSElWRTogXCJERUVQX0FSQ0hJVkVcIixcbiAgICBHTEFDSUVSOiBcIkdMQUNJRVJcIixcbiAgICBHTEFDSUVSX0lSOiBcIkdMQUNJRVJfSVJcIixcbiAgICBJTlRFTExJR0VOVF9USUVSSU5HOiBcIklOVEVMTElHRU5UX1RJRVJJTkdcIixcbiAgICBPTkVaT05FX0lBOiBcIk9ORVpPTkVfSUFcIixcbiAgICBTVEFOREFSRF9JQTogXCJTVEFOREFSRF9JQVwiLFxufTtcbmNvbnN0IEV4cGlyYXRpb25TdGF0dXMgPSB7XG4gICAgRGlzYWJsZWQ6IFwiRGlzYWJsZWRcIixcbiAgICBFbmFibGVkOiBcIkVuYWJsZWRcIixcbn07XG5jb25zdCBUcmFuc2l0aW9uRGVmYXVsdE1pbmltdW1PYmplY3RTaXplID0ge1xuICAgIGFsbF9zdG9yYWdlX2NsYXNzZXNfMTI4SzogXCJhbGxfc3RvcmFnZV9jbGFzc2VzXzEyOEtcIixcbiAgICB2YXJpZXNfYnlfc3RvcmFnZV9jbGFzczogXCJ2YXJpZXNfYnlfc3RvcmFnZV9jbGFzc1wiLFxufTtcbmNvbnN0IEJ1Y2tldExvZ3NQZXJtaXNzaW9uID0ge1xuICAgIEZVTExfQ09OVFJPTDogXCJGVUxMX0NPTlRST0xcIixcbiAgICBSRUFEOiBcIlJFQURcIixcbiAgICBXUklURTogXCJXUklURVwiLFxufTtcbmNvbnN0IFBhcnRpdGlvbkRhdGVTb3VyY2UgPSB7XG4gICAgRGVsaXZlcnlUaW1lOiBcIkRlbGl2ZXJ5VGltZVwiLFxuICAgIEV2ZW50VGltZTogXCJFdmVudFRpbWVcIixcbn07XG5jb25zdCBTM1RhYmxlc0J1Y2tldFR5cGUgPSB7XG4gICAgYXdzOiBcImF3c1wiLFxuICAgIGN1c3RvbWVyOiBcImN1c3RvbWVyXCIsXG59O1xuY29uc3QgRXZlbnQgPSB7XG4gICAgczNfSW50ZWxsaWdlbnRUaWVyaW5nOiBcInMzOkludGVsbGlnZW50VGllcmluZ1wiLFxuICAgIHMzX0xpZmVjeWNsZUV4cGlyYXRpb25fOiBcInMzOkxpZmVjeWNsZUV4cGlyYXRpb246KlwiLFxuICAgIHMzX0xpZmVjeWNsZUV4cGlyYXRpb25fRGVsZXRlOiBcInMzOkxpZmVjeWNsZUV4cGlyYXRpb246RGVsZXRlXCIsXG4gICAgczNfTGlmZWN5Y2xlRXhwaXJhdGlvbl9EZWxldGVNYXJrZXJDcmVhdGVkOiBcInMzOkxpZmVjeWNsZUV4cGlyYXRpb246RGVsZXRlTWFya2VyQ3JlYXRlZFwiLFxuICAgIHMzX0xpZmVjeWNsZVRyYW5zaXRpb246IFwiczM6TGlmZWN5Y2xlVHJhbnNpdGlvblwiLFxuICAgIHMzX09iamVjdEFjbF9QdXQ6IFwiczM6T2JqZWN0QWNsOlB1dFwiLFxuICAgIHMzX09iamVjdENyZWF0ZWRfOiBcInMzOk9iamVjdENyZWF0ZWQ6KlwiLFxuICAgIHMzX09iamVjdENyZWF0ZWRfQ29tcGxldGVNdWx0aXBhcnRVcGxvYWQ6IFwiczM6T2JqZWN0Q3JlYXRlZDpDb21wbGV0ZU11bHRpcGFydFVwbG9hZFwiLFxuICAgIHMzX09iamVjdENyZWF0ZWRfQ29weTogXCJzMzpPYmplY3RDcmVhdGVkOkNvcHlcIixcbiAgICBzM19PYmplY3RDcmVhdGVkX1Bvc3Q6IFwiczM6T2JqZWN0Q3JlYXRlZDpQb3N0XCIsXG4gICAgczNfT2JqZWN0Q3JlYXRlZF9QdXQ6IFwiczM6T2JqZWN0Q3JlYXRlZDpQdXRcIixcbiAgICBzM19PYmplY3RSZW1vdmVkXzogXCJzMzpPYmplY3RSZW1vdmVkOipcIixcbiAgICBzM19PYmplY3RSZW1vdmVkX0RlbGV0ZTogXCJzMzpPYmplY3RSZW1vdmVkOkRlbGV0ZVwiLFxuICAgIHMzX09iamVjdFJlbW92ZWRfRGVsZXRlTWFya2VyQ3JlYXRlZDogXCJzMzpPYmplY3RSZW1vdmVkOkRlbGV0ZU1hcmtlckNyZWF0ZWRcIixcbiAgICBzM19PYmplY3RSZXN0b3JlXzogXCJzMzpPYmplY3RSZXN0b3JlOipcIixcbiAgICBzM19PYmplY3RSZXN0b3JlX0NvbXBsZXRlZDogXCJzMzpPYmplY3RSZXN0b3JlOkNvbXBsZXRlZFwiLFxuICAgIHMzX09iamVjdFJlc3RvcmVfRGVsZXRlOiBcInMzOk9iamVjdFJlc3RvcmU6RGVsZXRlXCIsXG4gICAgczNfT2JqZWN0UmVzdG9yZV9Qb3N0OiBcInMzOk9iamVjdFJlc3RvcmU6UG9zdFwiLFxuICAgIHMzX09iamVjdFRhZ2dpbmdfOiBcInMzOk9iamVjdFRhZ2dpbmc6KlwiLFxuICAgIHMzX09iamVjdFRhZ2dpbmdfRGVsZXRlOiBcInMzOk9iamVjdFRhZ2dpbmc6RGVsZXRlXCIsXG4gICAgczNfT2JqZWN0VGFnZ2luZ19QdXQ6IFwiczM6T2JqZWN0VGFnZ2luZzpQdXRcIixcbiAgICBzM19SZWR1Y2VkUmVkdW5kYW5jeUxvc3RPYmplY3Q6IFwiczM6UmVkdWNlZFJlZHVuZGFuY3lMb3N0T2JqZWN0XCIsXG4gICAgczNfUmVwbGljYXRpb25fOiBcInMzOlJlcGxpY2F0aW9uOipcIixcbiAgICBzM19SZXBsaWNhdGlvbl9PcGVyYXRpb25GYWlsZWRSZXBsaWNhdGlvbjogXCJzMzpSZXBsaWNhdGlvbjpPcGVyYXRpb25GYWlsZWRSZXBsaWNhdGlvblwiLFxuICAgIHMzX1JlcGxpY2F0aW9uX09wZXJhdGlvbk1pc3NlZFRocmVzaG9sZDogXCJzMzpSZXBsaWNhdGlvbjpPcGVyYXRpb25NaXNzZWRUaHJlc2hvbGRcIixcbiAgICBzM19SZXBsaWNhdGlvbl9PcGVyYXRpb25Ob3RUcmFja2VkOiBcInMzOlJlcGxpY2F0aW9uOk9wZXJhdGlvbk5vdFRyYWNrZWRcIixcbiAgICBzM19SZXBsaWNhdGlvbl9PcGVyYXRpb25SZXBsaWNhdGVkQWZ0ZXJUaHJlc2hvbGQ6IFwiczM6UmVwbGljYXRpb246T3BlcmF0aW9uUmVwbGljYXRlZEFmdGVyVGhyZXNob2xkXCIsXG59O1xuY29uc3QgRmlsdGVyUnVsZU5hbWUgPSB7XG4gICAgcHJlZml4OiBcInByZWZpeFwiLFxuICAgIHN1ZmZpeDogXCJzdWZmaXhcIixcbn07XG5jb25zdCBEZWxldGVNYXJrZXJSZXBsaWNhdGlvblN0YXR1cyA9IHtcbiAgICBEaXNhYmxlZDogXCJEaXNhYmxlZFwiLFxuICAgIEVuYWJsZWQ6IFwiRW5hYmxlZFwiLFxufTtcbmNvbnN0IE1ldHJpY3NTdGF0dXMgPSB7XG4gICAgRGlzYWJsZWQ6IFwiRGlzYWJsZWRcIixcbiAgICBFbmFibGVkOiBcIkVuYWJsZWRcIixcbn07XG5jb25zdCBSZXBsaWNhdGlvblRpbWVTdGF0dXMgPSB7XG4gICAgRGlzYWJsZWQ6IFwiRGlzYWJsZWRcIixcbiAgICBFbmFibGVkOiBcIkVuYWJsZWRcIixcbn07XG5jb25zdCBFeGlzdGluZ09iamVjdFJlcGxpY2F0aW9uU3RhdHVzID0ge1xuICAgIERpc2FibGVkOiBcIkRpc2FibGVkXCIsXG4gICAgRW5hYmxlZDogXCJFbmFibGVkXCIsXG59O1xuY29uc3QgUmVwbGljYU1vZGlmaWNhdGlvbnNTdGF0dXMgPSB7XG4gICAgRGlzYWJsZWQ6IFwiRGlzYWJsZWRcIixcbiAgICBFbmFibGVkOiBcIkVuYWJsZWRcIixcbn07XG5jb25zdCBTc2VLbXNFbmNyeXB0ZWRPYmplY3RzU3RhdHVzID0ge1xuICAgIERpc2FibGVkOiBcIkRpc2FibGVkXCIsXG4gICAgRW5hYmxlZDogXCJFbmFibGVkXCIsXG59O1xuY29uc3QgUmVwbGljYXRpb25SdWxlU3RhdHVzID0ge1xuICAgIERpc2FibGVkOiBcIkRpc2FibGVkXCIsXG4gICAgRW5hYmxlZDogXCJFbmFibGVkXCIsXG59O1xuY29uc3QgUGF5ZXIgPSB7XG4gICAgQnVja2V0T3duZXI6IFwiQnVja2V0T3duZXJcIixcbiAgICBSZXF1ZXN0ZXI6IFwiUmVxdWVzdGVyXCIsXG59O1xuY29uc3QgTUZBRGVsZXRlU3RhdHVzID0ge1xuICAgIERpc2FibGVkOiBcIkRpc2FibGVkXCIsXG4gICAgRW5hYmxlZDogXCJFbmFibGVkXCIsXG59O1xuY29uc3QgQnVja2V0VmVyc2lvbmluZ1N0YXR1cyA9IHtcbiAgICBFbmFibGVkOiBcIkVuYWJsZWRcIixcbiAgICBTdXNwZW5kZWQ6IFwiU3VzcGVuZGVkXCIsXG59O1xuY29uc3QgUHJvdG9jb2wgPSB7XG4gICAgaHR0cDogXCJodHRwXCIsXG4gICAgaHR0cHM6IFwiaHR0cHNcIixcbn07XG5jb25zdCBSZXBsaWNhdGlvblN0YXR1cyA9IHtcbiAgICBDT01QTEVURTogXCJDT01QTEVURVwiLFxuICAgIENPTVBMRVRFRDogXCJDT01QTEVURURcIixcbiAgICBGQUlMRUQ6IFwiRkFJTEVEXCIsXG4gICAgUEVORElORzogXCJQRU5ESU5HXCIsXG4gICAgUkVQTElDQTogXCJSRVBMSUNBXCIsXG59O1xuY29uc3QgQ2hlY2tzdW1Nb2RlID0ge1xuICAgIEVOQUJMRUQ6IFwiRU5BQkxFRFwiLFxufTtcbmNvbnN0IE9iamVjdEF0dHJpYnV0ZXMgPSB7XG4gICAgQ0hFQ0tTVU06IFwiQ2hlY2tzdW1cIixcbiAgICBFVEFHOiBcIkVUYWdcIixcbiAgICBPQkpFQ1RfUEFSVFM6IFwiT2JqZWN0UGFydHNcIixcbiAgICBPQkpFQ1RfU0laRTogXCJPYmplY3RTaXplXCIsXG4gICAgU1RPUkFHRV9DTEFTUzogXCJTdG9yYWdlQ2xhc3NcIixcbn07XG5jb25zdCBPYmplY3RMb2NrRW5hYmxlZCA9IHtcbiAgICBFbmFibGVkOiBcIkVuYWJsZWRcIixcbn07XG5jb25zdCBPYmplY3RMb2NrUmV0ZW50aW9uTW9kZSA9IHtcbiAgICBDT01QTElBTkNFOiBcIkNPTVBMSUFOQ0VcIixcbiAgICBHT1ZFUk5BTkNFOiBcIkdPVkVSTkFOQ0VcIixcbn07XG5jb25zdCBBcmNoaXZlU3RhdHVzID0ge1xuICAgIEFSQ0hJVkVfQUNDRVNTOiBcIkFSQ0hJVkVfQUNDRVNTXCIsXG4gICAgREVFUF9BUkNISVZFX0FDQ0VTUzogXCJERUVQX0FSQ0hJVkVfQUNDRVNTXCIsXG59O1xuY29uc3QgRW5jb2RpbmdUeXBlID0ge1xuICAgIHVybDogXCJ1cmxcIixcbn07XG5jb25zdCBPYmplY3RTdG9yYWdlQ2xhc3MgPSB7XG4gICAgREVFUF9BUkNISVZFOiBcIkRFRVBfQVJDSElWRVwiLFxuICAgIEVYUFJFU1NfT05FWk9ORTogXCJFWFBSRVNTX09ORVpPTkVcIixcbiAgICBGU1hfT05UQVA6IFwiRlNYX09OVEFQXCIsXG4gICAgRlNYX09QRU5aRlM6IFwiRlNYX09QRU5aRlNcIixcbiAgICBHTEFDSUVSOiBcIkdMQUNJRVJcIixcbiAgICBHTEFDSUVSX0lSOiBcIkdMQUNJRVJfSVJcIixcbiAgICBJTlRFTExJR0VOVF9USUVSSU5HOiBcIklOVEVMTElHRU5UX1RJRVJJTkdcIixcbiAgICBPTkVaT05FX0lBOiBcIk9ORVpPTkVfSUFcIixcbiAgICBPVVRQT1NUUzogXCJPVVRQT1NUU1wiLFxuICAgIFJFRFVDRURfUkVEVU5EQU5DWTogXCJSRURVQ0VEX1JFRFVOREFOQ1lcIixcbiAgICBTTk9XOiBcIlNOT1dcIixcbiAgICBTVEFOREFSRDogXCJTVEFOREFSRFwiLFxuICAgIFNUQU5EQVJEX0lBOiBcIlNUQU5EQVJEX0lBXCIsXG59O1xuY29uc3QgT3B0aW9uYWxPYmplY3RBdHRyaWJ1dGVzID0ge1xuICAgIFJFU1RPUkVfU1RBVFVTOiBcIlJlc3RvcmVTdGF0dXNcIixcbn07XG5jb25zdCBPYmplY3RWZXJzaW9uU3RvcmFnZUNsYXNzID0ge1xuICAgIFNUQU5EQVJEOiBcIlNUQU5EQVJEXCIsXG59O1xuY29uc3QgTUZBRGVsZXRlID0ge1xuICAgIERpc2FibGVkOiBcIkRpc2FibGVkXCIsXG4gICAgRW5hYmxlZDogXCJFbmFibGVkXCIsXG59O1xuY29uc3QgVGllciA9IHtcbiAgICBCdWxrOiBcIkJ1bGtcIixcbiAgICBFeHBlZGl0ZWQ6IFwiRXhwZWRpdGVkXCIsXG4gICAgU3RhbmRhcmQ6IFwiU3RhbmRhcmRcIixcbn07XG5jb25zdCBFeHByZXNzaW9uVHlwZSA9IHtcbiAgICBTUUw6IFwiU1FMXCIsXG59O1xuY29uc3QgQ29tcHJlc3Npb25UeXBlID0ge1xuICAgIEJaSVAyOiBcIkJaSVAyXCIsXG4gICAgR1pJUDogXCJHWklQXCIsXG4gICAgTk9ORTogXCJOT05FXCIsXG59O1xuY29uc3QgRmlsZUhlYWRlckluZm8gPSB7XG4gICAgSUdOT1JFOiBcIklHTk9SRVwiLFxuICAgIE5PTkU6IFwiTk9ORVwiLFxuICAgIFVTRTogXCJVU0VcIixcbn07XG5jb25zdCBKU09OVHlwZSA9IHtcbiAgICBET0NVTUVOVDogXCJET0NVTUVOVFwiLFxuICAgIExJTkVTOiBcIkxJTkVTXCIsXG59O1xuY29uc3QgUXVvdGVGaWVsZHMgPSB7XG4gICAgQUxXQVlTOiBcIkFMV0FZU1wiLFxuICAgIEFTTkVFREVEOiBcIkFTTkVFREVEXCIsXG59O1xuY29uc3QgUmVzdG9yZVJlcXVlc3RUeXBlID0ge1xuICAgIFNFTEVDVDogXCJTRUxFQ1RcIixcbn07XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIiRDb21tYW5kXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gc21pdGh5Q2xpZW50LkNvbW1hbmQ7IH1cbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19DbGllbnRcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBzbWl0aHlDbGllbnQuQ2xpZW50OyB9XG59KTtcbmV4cG9ydHMuQWJvcnRNdWx0aXBhcnRVcGxvYWRDb21tYW5kID0gQWJvcnRNdWx0aXBhcnRVcGxvYWRDb21tYW5kO1xuZXhwb3J0cy5BbmFseXRpY3NTM0V4cG9ydEZpbGVGb3JtYXQgPSBBbmFseXRpY3NTM0V4cG9ydEZpbGVGb3JtYXQ7XG5leHBvcnRzLkFyY2hpdmVTdGF0dXMgPSBBcmNoaXZlU3RhdHVzO1xuZXhwb3J0cy5CdWNrZXRBYmFjU3RhdHVzID0gQnVja2V0QWJhY1N0YXR1cztcbmV4cG9ydHMuQnVja2V0QWNjZWxlcmF0ZVN0YXR1cyA9IEJ1Y2tldEFjY2VsZXJhdGVTdGF0dXM7XG5leHBvcnRzLkJ1Y2tldEFscmVhZHlFeGlzdHMgPSBCdWNrZXRBbHJlYWR5RXhpc3RzJDE7XG5leHBvcnRzLkJ1Y2tldEFscmVhZHlPd25lZEJ5WW91ID0gQnVja2V0QWxyZWFkeU93bmVkQnlZb3UkMTtcbmV4cG9ydHMuQnVja2V0Q2FubmVkQUNMID0gQnVja2V0Q2FubmVkQUNMO1xuZXhwb3J0cy5CdWNrZXRMb2NhdGlvbkNvbnN0cmFpbnQgPSBCdWNrZXRMb2NhdGlvbkNvbnN0cmFpbnQ7XG5leHBvcnRzLkJ1Y2tldExvZ3NQZXJtaXNzaW9uID0gQnVja2V0TG9nc1Blcm1pc3Npb247XG5leHBvcnRzLkJ1Y2tldFR5cGUgPSBCdWNrZXRUeXBlO1xuZXhwb3J0cy5CdWNrZXRWZXJzaW9uaW5nU3RhdHVzID0gQnVja2V0VmVyc2lvbmluZ1N0YXR1cztcbmV4cG9ydHMuQ2hlY2tzdW1BbGdvcml0aG0gPSBDaGVja3N1bUFsZ29yaXRobTtcbmV4cG9ydHMuQ2hlY2tzdW1Nb2RlID0gQ2hlY2tzdW1Nb2RlO1xuZXhwb3J0cy5DaGVja3N1bVR5cGUgPSBDaGVja3N1bVR5cGU7XG5leHBvcnRzLkNvbXBsZXRlTXVsdGlwYXJ0VXBsb2FkQ29tbWFuZCA9IENvbXBsZXRlTXVsdGlwYXJ0VXBsb2FkQ29tbWFuZDtcbmV4cG9ydHMuQ29tcHJlc3Npb25UeXBlID0gQ29tcHJlc3Npb25UeXBlO1xuZXhwb3J0cy5Db3B5T2JqZWN0Q29tbWFuZCA9IENvcHlPYmplY3RDb21tYW5kO1xuZXhwb3J0cy5DcmVhdGVCdWNrZXRDb21tYW5kID0gQ3JlYXRlQnVja2V0Q29tbWFuZDtcbmV4cG9ydHMuQ3JlYXRlQnVja2V0TWV0YWRhdGFDb25maWd1cmF0aW9uQ29tbWFuZCA9IENyZWF0ZUJ1Y2tldE1ldGFkYXRhQ29uZmlndXJhdGlvbkNvbW1hbmQ7XG5leHBvcnRzLkNyZWF0ZUJ1Y2tldE1ldGFkYXRhVGFibGVDb25maWd1cmF0aW9uQ29tbWFuZCA9IENyZWF0ZUJ1Y2tldE1ldGFkYXRhVGFibGVDb25maWd1cmF0aW9uQ29tbWFuZDtcbmV4cG9ydHMuQ3JlYXRlTXVsdGlwYXJ0VXBsb2FkQ29tbWFuZCA9IENyZWF0ZU11bHRpcGFydFVwbG9hZENvbW1hbmQ7XG5leHBvcnRzLkNyZWF0ZVNlc3Npb25Db21tYW5kID0gQ3JlYXRlU2Vzc2lvbkNvbW1hbmQ7XG5leHBvcnRzLkRhdGFSZWR1bmRhbmN5ID0gRGF0YVJlZHVuZGFuY3k7XG5leHBvcnRzLkRlbGV0ZUJ1Y2tldEFuYWx5dGljc0NvbmZpZ3VyYXRpb25Db21tYW5kID0gRGVsZXRlQnVja2V0QW5hbHl0aWNzQ29uZmlndXJhdGlvbkNvbW1hbmQ7XG5leHBvcnRzLkRlbGV0ZUJ1Y2tldENvbW1hbmQgPSBEZWxldGVCdWNrZXRDb21tYW5kO1xuZXhwb3J0cy5EZWxldGVCdWNrZXRDb3JzQ29tbWFuZCA9IERlbGV0ZUJ1Y2tldENvcnNDb21tYW5kO1xuZXhwb3J0cy5EZWxldGVCdWNrZXRFbmNyeXB0aW9uQ29tbWFuZCA9IERlbGV0ZUJ1Y2tldEVuY3J5cHRpb25Db21tYW5kO1xuZXhwb3J0cy5EZWxldGVCdWNrZXRJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9uQ29tbWFuZCA9IERlbGV0ZUJ1Y2tldEludGVsbGlnZW50VGllcmluZ0NvbmZpZ3VyYXRpb25Db21tYW5kO1xuZXhwb3J0cy5EZWxldGVCdWNrZXRJbnZlbnRvcnlDb25maWd1cmF0aW9uQ29tbWFuZCA9IERlbGV0ZUJ1Y2tldEludmVudG9yeUNvbmZpZ3VyYXRpb25Db21tYW5kO1xuZXhwb3J0cy5EZWxldGVCdWNrZXRMaWZlY3ljbGVDb21tYW5kID0gRGVsZXRlQnVja2V0TGlmZWN5Y2xlQ29tbWFuZDtcbmV4cG9ydHMuRGVsZXRlQnVja2V0TWV0YWRhdGFDb25maWd1cmF0aW9uQ29tbWFuZCA9IERlbGV0ZUJ1Y2tldE1ldGFkYXRhQ29uZmlndXJhdGlvbkNvbW1hbmQ7XG5leHBvcnRzLkRlbGV0ZUJ1Y2tldE1ldGFkYXRhVGFibGVDb25maWd1cmF0aW9uQ29tbWFuZCA9IERlbGV0ZUJ1Y2tldE1ldGFkYXRhVGFibGVDb25maWd1cmF0aW9uQ29tbWFuZDtcbmV4cG9ydHMuRGVsZXRlQnVja2V0TWV0cmljc0NvbmZpZ3VyYXRpb25Db21tYW5kID0gRGVsZXRlQnVja2V0TWV0cmljc0NvbmZpZ3VyYXRpb25Db21tYW5kO1xuZXhwb3J0cy5EZWxldGVCdWNrZXRPd25lcnNoaXBDb250cm9sc0NvbW1hbmQgPSBEZWxldGVCdWNrZXRPd25lcnNoaXBDb250cm9sc0NvbW1hbmQ7XG5leHBvcnRzLkRlbGV0ZUJ1Y2tldFBvbGljeUNvbW1hbmQgPSBEZWxldGVCdWNrZXRQb2xpY3lDb21tYW5kO1xuZXhwb3J0cy5EZWxldGVCdWNrZXRSZXBsaWNhdGlvbkNvbW1hbmQgPSBEZWxldGVCdWNrZXRSZXBsaWNhdGlvbkNvbW1hbmQ7XG5leHBvcnRzLkRlbGV0ZUJ1Y2tldFRhZ2dpbmdDb21tYW5kID0gRGVsZXRlQnVja2V0VGFnZ2luZ0NvbW1hbmQ7XG5leHBvcnRzLkRlbGV0ZUJ1Y2tldFdlYnNpdGVDb21tYW5kID0gRGVsZXRlQnVja2V0V2Vic2l0ZUNvbW1hbmQ7XG5leHBvcnRzLkRlbGV0ZU1hcmtlclJlcGxpY2F0aW9uU3RhdHVzID0gRGVsZXRlTWFya2VyUmVwbGljYXRpb25TdGF0dXM7XG5leHBvcnRzLkRlbGV0ZU9iamVjdENvbW1hbmQgPSBEZWxldGVPYmplY3RDb21tYW5kO1xuZXhwb3J0cy5EZWxldGVPYmplY3RUYWdnaW5nQ29tbWFuZCA9IERlbGV0ZU9iamVjdFRhZ2dpbmdDb21tYW5kO1xuZXhwb3J0cy5EZWxldGVPYmplY3RzQ29tbWFuZCA9IERlbGV0ZU9iamVjdHNDb21tYW5kO1xuZXhwb3J0cy5EZWxldGVQdWJsaWNBY2Nlc3NCbG9ja0NvbW1hbmQgPSBEZWxldGVQdWJsaWNBY2Nlc3NCbG9ja0NvbW1hbmQ7XG5leHBvcnRzLkVuY29kaW5nVHlwZSA9IEVuY29kaW5nVHlwZTtcbmV4cG9ydHMuRW5jcnlwdGlvblR5cGUgPSBFbmNyeXB0aW9uVHlwZTtcbmV4cG9ydHMuRW5jcnlwdGlvblR5cGVNaXNtYXRjaCA9IEVuY3J5cHRpb25UeXBlTWlzbWF0Y2gkMTtcbmV4cG9ydHMuRXZlbnQgPSBFdmVudDtcbmV4cG9ydHMuRXhpc3RpbmdPYmplY3RSZXBsaWNhdGlvblN0YXR1cyA9IEV4aXN0aW5nT2JqZWN0UmVwbGljYXRpb25TdGF0dXM7XG5leHBvcnRzLkV4cGlyYXRpb25TdGF0ZSA9IEV4cGlyYXRpb25TdGF0ZTtcbmV4cG9ydHMuRXhwaXJhdGlvblN0YXR1cyA9IEV4cGlyYXRpb25TdGF0dXM7XG5leHBvcnRzLkV4cHJlc3Npb25UeXBlID0gRXhwcmVzc2lvblR5cGU7XG5leHBvcnRzLkZpbGVIZWFkZXJJbmZvID0gRmlsZUhlYWRlckluZm87XG5leHBvcnRzLkZpbHRlclJ1bGVOYW1lID0gRmlsdGVyUnVsZU5hbWU7XG5leHBvcnRzLkdldEJ1Y2tldEFiYWNDb21tYW5kID0gR2V0QnVja2V0QWJhY0NvbW1hbmQ7XG5leHBvcnRzLkdldEJ1Y2tldEFjY2VsZXJhdGVDb25maWd1cmF0aW9uQ29tbWFuZCA9IEdldEJ1Y2tldEFjY2VsZXJhdGVDb25maWd1cmF0aW9uQ29tbWFuZDtcbmV4cG9ydHMuR2V0QnVja2V0QWNsQ29tbWFuZCA9IEdldEJ1Y2tldEFjbENvbW1hbmQ7XG5leHBvcnRzLkdldEJ1Y2tldEFuYWx5dGljc0NvbmZpZ3VyYXRpb25Db21tYW5kID0gR2V0QnVja2V0QW5hbHl0aWNzQ29uZmlndXJhdGlvbkNvbW1hbmQ7XG5leHBvcnRzLkdldEJ1Y2tldENvcnNDb21tYW5kID0gR2V0QnVja2V0Q29yc0NvbW1hbmQ7XG5leHBvcnRzLkdldEJ1Y2tldEVuY3J5cHRpb25Db21tYW5kID0gR2V0QnVja2V0RW5jcnlwdGlvbkNvbW1hbmQ7XG5leHBvcnRzLkdldEJ1Y2tldEludGVsbGlnZW50VGllcmluZ0NvbmZpZ3VyYXRpb25Db21tYW5kID0gR2V0QnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvbkNvbW1hbmQ7XG5leHBvcnRzLkdldEJ1Y2tldEludmVudG9yeUNvbmZpZ3VyYXRpb25Db21tYW5kID0gR2V0QnVja2V0SW52ZW50b3J5Q29uZmlndXJhdGlvbkNvbW1hbmQ7XG5leHBvcnRzLkdldEJ1Y2tldExpZmVjeWNsZUNvbmZpZ3VyYXRpb25Db21tYW5kID0gR2V0QnVja2V0TGlmZWN5Y2xlQ29uZmlndXJhdGlvbkNvbW1hbmQ7XG5leHBvcnRzLkdldEJ1Y2tldExvY2F0aW9uQ29tbWFuZCA9IEdldEJ1Y2tldExvY2F0aW9uQ29tbWFuZDtcbmV4cG9ydHMuR2V0QnVja2V0TG9nZ2luZ0NvbW1hbmQgPSBHZXRCdWNrZXRMb2dnaW5nQ29tbWFuZDtcbmV4cG9ydHMuR2V0QnVja2V0TWV0YWRhdGFDb25maWd1cmF0aW9uQ29tbWFuZCA9IEdldEJ1Y2tldE1ldGFkYXRhQ29uZmlndXJhdGlvbkNvbW1hbmQ7XG5leHBvcnRzLkdldEJ1Y2tldE1ldGFkYXRhVGFibGVDb25maWd1cmF0aW9uQ29tbWFuZCA9IEdldEJ1Y2tldE1ldGFkYXRhVGFibGVDb25maWd1cmF0aW9uQ29tbWFuZDtcbmV4cG9ydHMuR2V0QnVja2V0TWV0cmljc0NvbmZpZ3VyYXRpb25Db21tYW5kID0gR2V0QnVja2V0TWV0cmljc0NvbmZpZ3VyYXRpb25Db21tYW5kO1xuZXhwb3J0cy5HZXRCdWNrZXROb3RpZmljYXRpb25Db25maWd1cmF0aW9uQ29tbWFuZCA9IEdldEJ1Y2tldE5vdGlmaWNhdGlvbkNvbmZpZ3VyYXRpb25Db21tYW5kO1xuZXhwb3J0cy5HZXRCdWNrZXRPd25lcnNoaXBDb250cm9sc0NvbW1hbmQgPSBHZXRCdWNrZXRPd25lcnNoaXBDb250cm9sc0NvbW1hbmQ7XG5leHBvcnRzLkdldEJ1Y2tldFBvbGljeUNvbW1hbmQgPSBHZXRCdWNrZXRQb2xpY3lDb21tYW5kO1xuZXhwb3J0cy5HZXRCdWNrZXRQb2xpY3lTdGF0dXNDb21tYW5kID0gR2V0QnVja2V0UG9saWN5U3RhdHVzQ29tbWFuZDtcbmV4cG9ydHMuR2V0QnVja2V0UmVwbGljYXRpb25Db21tYW5kID0gR2V0QnVja2V0UmVwbGljYXRpb25Db21tYW5kO1xuZXhwb3J0cy5HZXRCdWNrZXRSZXF1ZXN0UGF5bWVudENvbW1hbmQgPSBHZXRCdWNrZXRSZXF1ZXN0UGF5bWVudENvbW1hbmQ7XG5leHBvcnRzLkdldEJ1Y2tldFRhZ2dpbmdDb21tYW5kID0gR2V0QnVja2V0VGFnZ2luZ0NvbW1hbmQ7XG5leHBvcnRzLkdldEJ1Y2tldFZlcnNpb25pbmdDb21tYW5kID0gR2V0QnVja2V0VmVyc2lvbmluZ0NvbW1hbmQ7XG5leHBvcnRzLkdldEJ1Y2tldFdlYnNpdGVDb21tYW5kID0gR2V0QnVja2V0V2Vic2l0ZUNvbW1hbmQ7XG5leHBvcnRzLkdldE9iamVjdEFjbENvbW1hbmQgPSBHZXRPYmplY3RBY2xDb21tYW5kO1xuZXhwb3J0cy5HZXRPYmplY3RBdHRyaWJ1dGVzQ29tbWFuZCA9IEdldE9iamVjdEF0dHJpYnV0ZXNDb21tYW5kO1xuZXhwb3J0cy5HZXRPYmplY3RDb21tYW5kID0gR2V0T2JqZWN0Q29tbWFuZDtcbmV4cG9ydHMuR2V0T2JqZWN0TGVnYWxIb2xkQ29tbWFuZCA9IEdldE9iamVjdExlZ2FsSG9sZENvbW1hbmQ7XG5leHBvcnRzLkdldE9iamVjdExvY2tDb25maWd1cmF0aW9uQ29tbWFuZCA9IEdldE9iamVjdExvY2tDb25maWd1cmF0aW9uQ29tbWFuZDtcbmV4cG9ydHMuR2V0T2JqZWN0UmV0ZW50aW9uQ29tbWFuZCA9IEdldE9iamVjdFJldGVudGlvbkNvbW1hbmQ7XG5leHBvcnRzLkdldE9iamVjdFRhZ2dpbmdDb21tYW5kID0gR2V0T2JqZWN0VGFnZ2luZ0NvbW1hbmQ7XG5leHBvcnRzLkdldE9iamVjdFRvcnJlbnRDb21tYW5kID0gR2V0T2JqZWN0VG9ycmVudENvbW1hbmQ7XG5leHBvcnRzLkdldFB1YmxpY0FjY2Vzc0Jsb2NrQ29tbWFuZCA9IEdldFB1YmxpY0FjY2Vzc0Jsb2NrQ29tbWFuZDtcbmV4cG9ydHMuSGVhZEJ1Y2tldENvbW1hbmQgPSBIZWFkQnVja2V0Q29tbWFuZDtcbmV4cG9ydHMuSGVhZE9iamVjdENvbW1hbmQgPSBIZWFkT2JqZWN0Q29tbWFuZDtcbmV4cG9ydHMuSWRlbXBvdGVuY3lQYXJhbWV0ZXJNaXNtYXRjaCA9IElkZW1wb3RlbmN5UGFyYW1ldGVyTWlzbWF0Y2gkMTtcbmV4cG9ydHMuSW50ZWxsaWdlbnRUaWVyaW5nQWNjZXNzVGllciA9IEludGVsbGlnZW50VGllcmluZ0FjY2Vzc1RpZXI7XG5leHBvcnRzLkludGVsbGlnZW50VGllcmluZ1N0YXR1cyA9IEludGVsbGlnZW50VGllcmluZ1N0YXR1cztcbmV4cG9ydHMuSW52YWxpZE9iamVjdFN0YXRlID0gSW52YWxpZE9iamVjdFN0YXRlJDE7XG5leHBvcnRzLkludmFsaWRSZXF1ZXN0ID0gSW52YWxpZFJlcXVlc3QkMTtcbmV4cG9ydHMuSW52YWxpZFdyaXRlT2Zmc2V0ID0gSW52YWxpZFdyaXRlT2Zmc2V0JDE7XG5leHBvcnRzLkludmVudG9yeUNvbmZpZ3VyYXRpb25TdGF0ZSA9IEludmVudG9yeUNvbmZpZ3VyYXRpb25TdGF0ZTtcbmV4cG9ydHMuSW52ZW50b3J5Rm9ybWF0ID0gSW52ZW50b3J5Rm9ybWF0O1xuZXhwb3J0cy5JbnZlbnRvcnlGcmVxdWVuY3kgPSBJbnZlbnRvcnlGcmVxdWVuY3k7XG5leHBvcnRzLkludmVudG9yeUluY2x1ZGVkT2JqZWN0VmVyc2lvbnMgPSBJbnZlbnRvcnlJbmNsdWRlZE9iamVjdFZlcnNpb25zO1xuZXhwb3J0cy5JbnZlbnRvcnlPcHRpb25hbEZpZWxkID0gSW52ZW50b3J5T3B0aW9uYWxGaWVsZDtcbmV4cG9ydHMuSlNPTlR5cGUgPSBKU09OVHlwZTtcbmV4cG9ydHMuTGlzdEJ1Y2tldEFuYWx5dGljc0NvbmZpZ3VyYXRpb25zQ29tbWFuZCA9IExpc3RCdWNrZXRBbmFseXRpY3NDb25maWd1cmF0aW9uc0NvbW1hbmQ7XG5leHBvcnRzLkxpc3RCdWNrZXRJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9uc0NvbW1hbmQgPSBMaXN0QnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvbnNDb21tYW5kO1xuZXhwb3J0cy5MaXN0QnVja2V0SW52ZW50b3J5Q29uZmlndXJhdGlvbnNDb21tYW5kID0gTGlzdEJ1Y2tldEludmVudG9yeUNvbmZpZ3VyYXRpb25zQ29tbWFuZDtcbmV4cG9ydHMuTGlzdEJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9uc0NvbW1hbmQgPSBMaXN0QnVja2V0TWV0cmljc0NvbmZpZ3VyYXRpb25zQ29tbWFuZDtcbmV4cG9ydHMuTGlzdEJ1Y2tldHNDb21tYW5kID0gTGlzdEJ1Y2tldHNDb21tYW5kO1xuZXhwb3J0cy5MaXN0RGlyZWN0b3J5QnVja2V0c0NvbW1hbmQgPSBMaXN0RGlyZWN0b3J5QnVja2V0c0NvbW1hbmQ7XG5leHBvcnRzLkxpc3RNdWx0aXBhcnRVcGxvYWRzQ29tbWFuZCA9IExpc3RNdWx0aXBhcnRVcGxvYWRzQ29tbWFuZDtcbmV4cG9ydHMuTGlzdE9iamVjdFZlcnNpb25zQ29tbWFuZCA9IExpc3RPYmplY3RWZXJzaW9uc0NvbW1hbmQ7XG5leHBvcnRzLkxpc3RPYmplY3RzQ29tbWFuZCA9IExpc3RPYmplY3RzQ29tbWFuZDtcbmV4cG9ydHMuTGlzdE9iamVjdHNWMkNvbW1hbmQgPSBMaXN0T2JqZWN0c1YyQ29tbWFuZDtcbmV4cG9ydHMuTGlzdFBhcnRzQ29tbWFuZCA9IExpc3RQYXJ0c0NvbW1hbmQ7XG5leHBvcnRzLkxvY2F0aW9uVHlwZSA9IExvY2F0aW9uVHlwZTtcbmV4cG9ydHMuTUZBRGVsZXRlID0gTUZBRGVsZXRlO1xuZXhwb3J0cy5NRkFEZWxldGVTdGF0dXMgPSBNRkFEZWxldGVTdGF0dXM7XG5leHBvcnRzLk1ldGFkYXRhRGlyZWN0aXZlID0gTWV0YWRhdGFEaXJlY3RpdmU7XG5leHBvcnRzLk1ldHJpY3NTdGF0dXMgPSBNZXRyaWNzU3RhdHVzO1xuZXhwb3J0cy5Ob1N1Y2hCdWNrZXQgPSBOb1N1Y2hCdWNrZXQkMTtcbmV4cG9ydHMuTm9TdWNoS2V5ID0gTm9TdWNoS2V5JDE7XG5leHBvcnRzLk5vU3VjaFVwbG9hZCA9IE5vU3VjaFVwbG9hZCQxO1xuZXhwb3J0cy5Ob3RGb3VuZCA9IE5vdEZvdW5kJDE7XG5leHBvcnRzLk9iamVjdEFscmVhZHlJbkFjdGl2ZVRpZXJFcnJvciA9IE9iamVjdEFscmVhZHlJbkFjdGl2ZVRpZXJFcnJvciQxO1xuZXhwb3J0cy5PYmplY3RBdHRyaWJ1dGVzID0gT2JqZWN0QXR0cmlidXRlcztcbmV4cG9ydHMuT2JqZWN0Q2FubmVkQUNMID0gT2JqZWN0Q2FubmVkQUNMO1xuZXhwb3J0cy5PYmplY3RMb2NrRW5hYmxlZCA9IE9iamVjdExvY2tFbmFibGVkO1xuZXhwb3J0cy5PYmplY3RMb2NrTGVnYWxIb2xkU3RhdHVzID0gT2JqZWN0TG9ja0xlZ2FsSG9sZFN0YXR1cztcbmV4cG9ydHMuT2JqZWN0TG9ja01vZGUgPSBPYmplY3RMb2NrTW9kZTtcbmV4cG9ydHMuT2JqZWN0TG9ja1JldGVudGlvbk1vZGUgPSBPYmplY3RMb2NrUmV0ZW50aW9uTW9kZTtcbmV4cG9ydHMuT2JqZWN0Tm90SW5BY3RpdmVUaWVyRXJyb3IgPSBPYmplY3ROb3RJbkFjdGl2ZVRpZXJFcnJvciQxO1xuZXhwb3J0cy5PYmplY3RPd25lcnNoaXAgPSBPYmplY3RPd25lcnNoaXA7XG5leHBvcnRzLk9iamVjdFN0b3JhZ2VDbGFzcyA9IE9iamVjdFN0b3JhZ2VDbGFzcztcbmV4cG9ydHMuT2JqZWN0VmVyc2lvblN0b3JhZ2VDbGFzcyA9IE9iamVjdFZlcnNpb25TdG9yYWdlQ2xhc3M7XG5leHBvcnRzLk9wdGlvbmFsT2JqZWN0QXR0cmlidXRlcyA9IE9wdGlvbmFsT2JqZWN0QXR0cmlidXRlcztcbmV4cG9ydHMuT3duZXJPdmVycmlkZSA9IE93bmVyT3ZlcnJpZGU7XG5leHBvcnRzLlBhcnRpdGlvbkRhdGVTb3VyY2UgPSBQYXJ0aXRpb25EYXRlU291cmNlO1xuZXhwb3J0cy5QYXllciA9IFBheWVyO1xuZXhwb3J0cy5QZXJtaXNzaW9uID0gUGVybWlzc2lvbjtcbmV4cG9ydHMuUHJvdG9jb2wgPSBQcm90b2NvbDtcbmV4cG9ydHMuUHV0QnVja2V0QWJhY0NvbW1hbmQgPSBQdXRCdWNrZXRBYmFjQ29tbWFuZDtcbmV4cG9ydHMuUHV0QnVja2V0QWNjZWxlcmF0ZUNvbmZpZ3VyYXRpb25Db21tYW5kID0gUHV0QnVja2V0QWNjZWxlcmF0ZUNvbmZpZ3VyYXRpb25Db21tYW5kO1xuZXhwb3J0cy5QdXRCdWNrZXRBY2xDb21tYW5kID0gUHV0QnVja2V0QWNsQ29tbWFuZDtcbmV4cG9ydHMuUHV0QnVja2V0QW5hbHl0aWNzQ29uZmlndXJhdGlvbkNvbW1hbmQgPSBQdXRCdWNrZXRBbmFseXRpY3NDb25maWd1cmF0aW9uQ29tbWFuZDtcbmV4cG9ydHMuUHV0QnVja2V0Q29yc0NvbW1hbmQgPSBQdXRCdWNrZXRDb3JzQ29tbWFuZDtcbmV4cG9ydHMuUHV0QnVja2V0RW5jcnlwdGlvbkNvbW1hbmQgPSBQdXRCdWNrZXRFbmNyeXB0aW9uQ29tbWFuZDtcbmV4cG9ydHMuUHV0QnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvbkNvbW1hbmQgPSBQdXRCdWNrZXRJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9uQ29tbWFuZDtcbmV4cG9ydHMuUHV0QnVja2V0SW52ZW50b3J5Q29uZmlndXJhdGlvbkNvbW1hbmQgPSBQdXRCdWNrZXRJbnZlbnRvcnlDb25maWd1cmF0aW9uQ29tbWFuZDtcbmV4cG9ydHMuUHV0QnVja2V0TGlmZWN5Y2xlQ29uZmlndXJhdGlvbkNvbW1hbmQgPSBQdXRCdWNrZXRMaWZlY3ljbGVDb25maWd1cmF0aW9uQ29tbWFuZDtcbmV4cG9ydHMuUHV0QnVja2V0TG9nZ2luZ0NvbW1hbmQgPSBQdXRCdWNrZXRMb2dnaW5nQ29tbWFuZDtcbmV4cG9ydHMuUHV0QnVja2V0TWV0cmljc0NvbmZpZ3VyYXRpb25Db21tYW5kID0gUHV0QnVja2V0TWV0cmljc0NvbmZpZ3VyYXRpb25Db21tYW5kO1xuZXhwb3J0cy5QdXRCdWNrZXROb3RpZmljYXRpb25Db25maWd1cmF0aW9uQ29tbWFuZCA9IFB1dEJ1Y2tldE5vdGlmaWNhdGlvbkNvbmZpZ3VyYXRpb25Db21tYW5kO1xuZXhwb3J0cy5QdXRCdWNrZXRPd25lcnNoaXBDb250cm9sc0NvbW1hbmQgPSBQdXRCdWNrZXRPd25lcnNoaXBDb250cm9sc0NvbW1hbmQ7XG5leHBvcnRzLlB1dEJ1Y2tldFBvbGljeUNvbW1hbmQgPSBQdXRCdWNrZXRQb2xpY3lDb21tYW5kO1xuZXhwb3J0cy5QdXRCdWNrZXRSZXBsaWNhdGlvbkNvbW1hbmQgPSBQdXRCdWNrZXRSZXBsaWNhdGlvbkNvbW1hbmQ7XG5leHBvcnRzLlB1dEJ1Y2tldFJlcXVlc3RQYXltZW50Q29tbWFuZCA9IFB1dEJ1Y2tldFJlcXVlc3RQYXltZW50Q29tbWFuZDtcbmV4cG9ydHMuUHV0QnVja2V0VGFnZ2luZ0NvbW1hbmQgPSBQdXRCdWNrZXRUYWdnaW5nQ29tbWFuZDtcbmV4cG9ydHMuUHV0QnVja2V0VmVyc2lvbmluZ0NvbW1hbmQgPSBQdXRCdWNrZXRWZXJzaW9uaW5nQ29tbWFuZDtcbmV4cG9ydHMuUHV0QnVja2V0V2Vic2l0ZUNvbW1hbmQgPSBQdXRCdWNrZXRXZWJzaXRlQ29tbWFuZDtcbmV4cG9ydHMuUHV0T2JqZWN0QWNsQ29tbWFuZCA9IFB1dE9iamVjdEFjbENvbW1hbmQ7XG5leHBvcnRzLlB1dE9iamVjdENvbW1hbmQgPSBQdXRPYmplY3RDb21tYW5kO1xuZXhwb3J0cy5QdXRPYmplY3RMZWdhbEhvbGRDb21tYW5kID0gUHV0T2JqZWN0TGVnYWxIb2xkQ29tbWFuZDtcbmV4cG9ydHMuUHV0T2JqZWN0TG9ja0NvbmZpZ3VyYXRpb25Db21tYW5kID0gUHV0T2JqZWN0TG9ja0NvbmZpZ3VyYXRpb25Db21tYW5kO1xuZXhwb3J0cy5QdXRPYmplY3RSZXRlbnRpb25Db21tYW5kID0gUHV0T2JqZWN0UmV0ZW50aW9uQ29tbWFuZDtcbmV4cG9ydHMuUHV0T2JqZWN0VGFnZ2luZ0NvbW1hbmQgPSBQdXRPYmplY3RUYWdnaW5nQ29tbWFuZDtcbmV4cG9ydHMuUHV0UHVibGljQWNjZXNzQmxvY2tDb21tYW5kID0gUHV0UHVibGljQWNjZXNzQmxvY2tDb21tYW5kO1xuZXhwb3J0cy5RdW90ZUZpZWxkcyA9IFF1b3RlRmllbGRzO1xuZXhwb3J0cy5SZW5hbWVPYmplY3RDb21tYW5kID0gUmVuYW1lT2JqZWN0Q29tbWFuZDtcbmV4cG9ydHMuUmVwbGljYU1vZGlmaWNhdGlvbnNTdGF0dXMgPSBSZXBsaWNhTW9kaWZpY2F0aW9uc1N0YXR1cztcbmV4cG9ydHMuUmVwbGljYXRpb25SdWxlU3RhdHVzID0gUmVwbGljYXRpb25SdWxlU3RhdHVzO1xuZXhwb3J0cy5SZXBsaWNhdGlvblN0YXR1cyA9IFJlcGxpY2F0aW9uU3RhdHVzO1xuZXhwb3J0cy5SZXBsaWNhdGlvblRpbWVTdGF0dXMgPSBSZXBsaWNhdGlvblRpbWVTdGF0dXM7XG5leHBvcnRzLlJlcXVlc3RDaGFyZ2VkID0gUmVxdWVzdENoYXJnZWQ7XG5leHBvcnRzLlJlcXVlc3RQYXllciA9IFJlcXVlc3RQYXllcjtcbmV4cG9ydHMuUmVzdG9yZU9iamVjdENvbW1hbmQgPSBSZXN0b3JlT2JqZWN0Q29tbWFuZDtcbmV4cG9ydHMuUmVzdG9yZVJlcXVlc3RUeXBlID0gUmVzdG9yZVJlcXVlc3RUeXBlO1xuZXhwb3J0cy5TMyA9IFMzO1xuZXhwb3J0cy5TM0NsaWVudCA9IFMzQ2xpZW50O1xuZXhwb3J0cy5TM1NlcnZpY2VFeGNlcHRpb24gPSBTM1NlcnZpY2VFeGNlcHRpb24kMTtcbmV4cG9ydHMuUzNUYWJsZXNCdWNrZXRUeXBlID0gUzNUYWJsZXNCdWNrZXRUeXBlO1xuZXhwb3J0cy5TZWxlY3RPYmplY3RDb250ZW50Q29tbWFuZCA9IFNlbGVjdE9iamVjdENvbnRlbnRDb21tYW5kO1xuZXhwb3J0cy5TZXJ2ZXJTaWRlRW5jcnlwdGlvbiA9IFNlcnZlclNpZGVFbmNyeXB0aW9uO1xuZXhwb3J0cy5TZXNzaW9uTW9kZSA9IFNlc3Npb25Nb2RlO1xuZXhwb3J0cy5Tc2VLbXNFbmNyeXB0ZWRPYmplY3RzU3RhdHVzID0gU3NlS21zRW5jcnlwdGVkT2JqZWN0c1N0YXR1cztcbmV4cG9ydHMuU3RvcmFnZUNsYXNzID0gU3RvcmFnZUNsYXNzO1xuZXhwb3J0cy5TdG9yYWdlQ2xhc3NBbmFseXNpc1NjaGVtYVZlcnNpb24gPSBTdG9yYWdlQ2xhc3NBbmFseXNpc1NjaGVtYVZlcnNpb247XG5leHBvcnRzLlRhYmxlU3NlQWxnb3JpdGhtID0gVGFibGVTc2VBbGdvcml0aG07XG5leHBvcnRzLlRhZ2dpbmdEaXJlY3RpdmUgPSBUYWdnaW5nRGlyZWN0aXZlO1xuZXhwb3J0cy5UaWVyID0gVGllcjtcbmV4cG9ydHMuVG9vTWFueVBhcnRzID0gVG9vTWFueVBhcnRzJDE7XG5leHBvcnRzLlRyYW5zaXRpb25EZWZhdWx0TWluaW11bU9iamVjdFNpemUgPSBUcmFuc2l0aW9uRGVmYXVsdE1pbmltdW1PYmplY3RTaXplO1xuZXhwb3J0cy5UcmFuc2l0aW9uU3RvcmFnZUNsYXNzID0gVHJhbnNpdGlvblN0b3JhZ2VDbGFzcztcbmV4cG9ydHMuVHlwZSA9IFR5cGU7XG5leHBvcnRzLlVwZGF0ZUJ1Y2tldE1ldGFkYXRhSW52ZW50b3J5VGFibGVDb25maWd1cmF0aW9uQ29tbWFuZCA9IFVwZGF0ZUJ1Y2tldE1ldGFkYXRhSW52ZW50b3J5VGFibGVDb25maWd1cmF0aW9uQ29tbWFuZDtcbmV4cG9ydHMuVXBkYXRlQnVja2V0TWV0YWRhdGFKb3VybmFsVGFibGVDb25maWd1cmF0aW9uQ29tbWFuZCA9IFVwZGF0ZUJ1Y2tldE1ldGFkYXRhSm91cm5hbFRhYmxlQ29uZmlndXJhdGlvbkNvbW1hbmQ7XG5leHBvcnRzLlVwbG9hZFBhcnRDb21tYW5kID0gVXBsb2FkUGFydENvbW1hbmQ7XG5leHBvcnRzLlVwbG9hZFBhcnRDb3B5Q29tbWFuZCA9IFVwbG9hZFBhcnRDb3B5Q29tbWFuZDtcbmV4cG9ydHMuV3JpdGVHZXRPYmplY3RSZXNwb25zZUNvbW1hbmQgPSBXcml0ZUdldE9iamVjdFJlc3BvbnNlQ29tbWFuZDtcbmV4cG9ydHMucGFnaW5hdGVMaXN0QnVja2V0cyA9IHBhZ2luYXRlTGlzdEJ1Y2tldHM7XG5leHBvcnRzLnBhZ2luYXRlTGlzdERpcmVjdG9yeUJ1Y2tldHMgPSBwYWdpbmF0ZUxpc3REaXJlY3RvcnlCdWNrZXRzO1xuZXhwb3J0cy5wYWdpbmF0ZUxpc3RPYmplY3RzVjIgPSBwYWdpbmF0ZUxpc3RPYmplY3RzVjI7XG5leHBvcnRzLnBhZ2luYXRlTGlzdFBhcnRzID0gcGFnaW5hdGVMaXN0UGFydHM7XG5leHBvcnRzLndhaXRGb3JCdWNrZXRFeGlzdHMgPSB3YWl0Rm9yQnVja2V0RXhpc3RzO1xuZXhwb3J0cy53YWl0Rm9yQnVja2V0Tm90RXhpc3RzID0gd2FpdEZvckJ1Y2tldE5vdEV4aXN0cztcbmV4cG9ydHMud2FpdEZvck9iamVjdEV4aXN0cyA9IHdhaXRGb3JPYmplY3RFeGlzdHM7XG5leHBvcnRzLndhaXRGb3JPYmplY3ROb3RFeGlzdHMgPSB3YWl0Rm9yT2JqZWN0Tm90RXhpc3RzO1xuZXhwb3J0cy53YWl0VW50aWxCdWNrZXRFeGlzdHMgPSB3YWl0VW50aWxCdWNrZXRFeGlzdHM7XG5leHBvcnRzLndhaXRVbnRpbEJ1Y2tldE5vdEV4aXN0cyA9IHdhaXRVbnRpbEJ1Y2tldE5vdEV4aXN0cztcbmV4cG9ydHMud2FpdFVudGlsT2JqZWN0RXhpc3RzID0gd2FpdFVudGlsT2JqZWN0RXhpc3RzO1xuZXhwb3J0cy53YWl0VW50aWxPYmplY3ROb3RFeGlzdHMgPSB3YWl0VW50aWxPYmplY3ROb3RFeGlzdHM7XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLnJlc29sdmVIdHRwQXV0aFNjaGVtZUNvbmZpZyA9IGV4cG9ydHMuZGVmYXVsdENsb3VkV2F0Y2hMb2dzSHR0cEF1dGhTY2hlbWVQcm92aWRlciA9IGV4cG9ydHMuZGVmYXVsdENsb3VkV2F0Y2hMb2dzSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIgPSB2b2lkIDA7XG5jb25zdCBjb3JlXzEgPSByZXF1aXJlKFwiQGF3cy1zZGsvY29yZVwiKTtcbmNvbnN0IHV0aWxfbWlkZGxld2FyZV8xID0gcmVxdWlyZShcIkBzbWl0aHkvdXRpbC1taWRkbGV3YXJlXCIpO1xuY29uc3QgZGVmYXVsdENsb3VkV2F0Y2hMb2dzSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIgPSBhc3luYyAoY29uZmlnLCBjb250ZXh0LCBpbnB1dCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIG9wZXJhdGlvbjogKDAsIHV0aWxfbWlkZGxld2FyZV8xLmdldFNtaXRoeUNvbnRleHQpKGNvbnRleHQpLm9wZXJhdGlvbixcbiAgICAgICAgcmVnaW9uOiAoYXdhaXQgKDAsIHV0aWxfbWlkZGxld2FyZV8xLm5vcm1hbGl6ZVByb3ZpZGVyKShjb25maWcucmVnaW9uKSgpKSB8fFxuICAgICAgICAgICAgKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJleHBlY3RlZCBgcmVnaW9uYCB0byBiZSBjb25maWd1cmVkIGZvciBgYXdzLmF1dGgjc2lndjRgXCIpO1xuICAgICAgICAgICAgfSkoKSxcbiAgICB9O1xufTtcbmV4cG9ydHMuZGVmYXVsdENsb3VkV2F0Y2hMb2dzSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIgPSBkZWZhdWx0Q2xvdWRXYXRjaExvZ3NIdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlcjtcbmZ1bmN0aW9uIGNyZWF0ZUF3c0F1dGhTaWd2NEh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc2NoZW1lSWQ6IFwiYXdzLmF1dGgjc2lndjRcIixcbiAgICAgICAgc2lnbmluZ1Byb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIG5hbWU6IFwibG9nc1wiLFxuICAgICAgICAgICAgcmVnaW9uOiBhdXRoUGFyYW1ldGVycy5yZWdpb24sXG4gICAgICAgIH0sXG4gICAgICAgIHByb3BlcnRpZXNFeHRyYWN0b3I6IChjb25maWcsIGNvbnRleHQpID0+ICh7XG4gICAgICAgICAgICBzaWduaW5nUHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgIGNvbmZpZyxcbiAgICAgICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgfTtcbn1cbmNvbnN0IGRlZmF1bHRDbG91ZFdhdGNoTG9nc0h0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSAoYXV0aFBhcmFtZXRlcnMpID0+IHtcbiAgICBjb25zdCBvcHRpb25zID0gW107XG4gICAgc3dpdGNoIChhdXRoUGFyYW1ldGVycy5vcGVyYXRpb24pIHtcbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgb3B0aW9ucy5wdXNoKGNyZWF0ZUF3c0F1dGhTaWd2NEh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG9wdGlvbnM7XG59O1xuZXhwb3J0cy5kZWZhdWx0Q2xvdWRXYXRjaExvZ3NIdHRwQXV0aFNjaGVtZVByb3ZpZGVyID0gZGVmYXVsdENsb3VkV2F0Y2hMb2dzSHR0cEF1dGhTY2hlbWVQcm92aWRlcjtcbmNvbnN0IHJlc29sdmVIdHRwQXV0aFNjaGVtZUNvbmZpZyA9IChjb25maWcpID0+IHtcbiAgICBjb25zdCBjb25maWdfMCA9ICgwLCBjb3JlXzEucmVzb2x2ZUF3c1Nka1NpZ1Y0Q29uZmlnKShjb25maWcpO1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKGNvbmZpZ18wLCB7XG4gICAgICAgIGF1dGhTY2hlbWVQcmVmZXJlbmNlOiAoMCwgdXRpbF9taWRkbGV3YXJlXzEubm9ybWFsaXplUHJvdmlkZXIpKGNvbmZpZy5hdXRoU2NoZW1lUHJlZmVyZW5jZSA/PyBbXSksXG4gICAgfSk7XG59O1xuZXhwb3J0cy5yZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWcgPSByZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWc7XG4iLCAie1xuICBcIm5hbWVcIjogXCJAYXdzLXNkay9jbGllbnQtY2xvdWR3YXRjaC1sb2dzXCIsXG4gIFwiZGVzY3JpcHRpb25cIjogXCJBV1MgU0RLIGZvciBKYXZhU2NyaXB0IENsb3Vkd2F0Y2ggTG9ncyBDbGllbnQgZm9yIE5vZGUuanMsIEJyb3dzZXIgYW5kIFJlYWN0IE5hdGl2ZVwiLFxuICBcInZlcnNpb25cIjogXCIzLjk1Mi4wXCIsXG4gIFwic2NyaXB0c1wiOiB7XG4gICAgXCJidWlsZFwiOiBcImNvbmN1cnJlbnRseSAneWFybjpidWlsZDpjanMnICd5YXJuOmJ1aWxkOmVzJyAneWFybjpidWlsZDp0eXBlcydcIixcbiAgICBcImJ1aWxkOmNqc1wiOiBcIm5vZGUgLi4vLi4vc2NyaXB0cy9jb21waWxhdGlvbi9pbmxpbmUgY2xpZW50LWNsb3Vkd2F0Y2gtbG9nc1wiLFxuICAgIFwiYnVpbGQ6ZXNcIjogXCJ0c2MgLXAgdHNjb25maWcuZXMuanNvblwiLFxuICAgIFwiYnVpbGQ6aW5jbHVkZTpkZXBzXCI6IFwibGVybmEgcnVuIC0tc2NvcGUgJG5wbV9wYWNrYWdlX25hbWUgLS1pbmNsdWRlLWRlcGVuZGVuY2llcyBidWlsZFwiLFxuICAgIFwiYnVpbGQ6dHlwZXNcIjogXCJ0c2MgLXAgdHNjb25maWcudHlwZXMuanNvblwiLFxuICAgIFwiYnVpbGQ6dHlwZXM6ZG93bmxldmVsXCI6IFwiZG93bmxldmVsLWR0cyBkaXN0LXR5cGVzIGRpc3QtdHlwZXMvdHMzLjRcIixcbiAgICBcImNsZWFuXCI6IFwicmltcmFmIC4vZGlzdC0qICYmIHJpbXJhZiAqLnRzYnVpbGRpbmZvXCIsXG4gICAgXCJleHRyYWN0OmRvY3NcIjogXCJhcGktZXh0cmFjdG9yIHJ1biAtLWxvY2FsXCIsXG4gICAgXCJnZW5lcmF0ZTpjbGllbnRcIjogXCJub2RlIC4uLy4uL3NjcmlwdHMvZ2VuZXJhdGUtY2xpZW50cy9zaW5nbGUtc2VydmljZSAtLXNvbG8gY2xvdWR3YXRjaC1sb2dzXCIsXG4gICAgXCJ0ZXN0OmUyZVwiOiBcInlhcm4gZzp2aXRlc3QgcnVuIC1jIHZpdGVzdC5jb25maWcuZTJlLm10c1wiLFxuICAgIFwidGVzdDplMmU6d2F0Y2hcIjogXCJ5YXJuIGc6dml0ZXN0IHdhdGNoIC1jIHZpdGVzdC5jb25maWcuZTJlLm10c1wiLFxuICAgIFwidGVzdDppbmRleFwiOiBcInRzYyAtLW5vRW1pdCAuL3Rlc3QvaW5kZXgtdHlwZXMudHMgJiYgbm9kZSAuL3Rlc3QvaW5kZXgtb2JqZWN0cy5zcGVjLm1qc1wiXG4gIH0sXG4gIFwibWFpblwiOiBcIi4vZGlzdC1janMvaW5kZXguanNcIixcbiAgXCJ0eXBlc1wiOiBcIi4vZGlzdC10eXBlcy9pbmRleC5kLnRzXCIsXG4gIFwibW9kdWxlXCI6IFwiLi9kaXN0LWVzL2luZGV4LmpzXCIsXG4gIFwic2lkZUVmZmVjdHNcIjogZmFsc2UsXG4gIFwiZGVwZW5kZW5jaWVzXCI6IHtcbiAgICBcIkBhd3MtY3J5cHRvL3NoYTI1Ni1icm93c2VyXCI6IFwiNS4yLjBcIixcbiAgICBcIkBhd3MtY3J5cHRvL3NoYTI1Ni1qc1wiOiBcIjUuMi4wXCIsXG4gICAgXCJAYXdzLXNkay9jb3JlXCI6IFwiMy45NDcuMFwiLFxuICAgIFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1ub2RlXCI6IFwiMy45NTIuMFwiLFxuICAgIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1ob3N0LWhlYWRlclwiOiBcIjMuOTM2LjBcIixcbiAgICBcIkBhd3Mtc2RrL21pZGRsZXdhcmUtbG9nZ2VyXCI6IFwiMy45MzYuMFwiLFxuICAgIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1yZWN1cnNpb24tZGV0ZWN0aW9uXCI6IFwiMy45NDguMFwiLFxuICAgIFwiQGF3cy1zZGsvbWlkZGxld2FyZS11c2VyLWFnZW50XCI6IFwiMy45NDcuMFwiLFxuICAgIFwiQGF3cy1zZGsvcmVnaW9uLWNvbmZpZy1yZXNvbHZlclwiOiBcIjMuOTM2LjBcIixcbiAgICBcIkBhd3Mtc2RrL3R5cGVzXCI6IFwiMy45MzYuMFwiLFxuICAgIFwiQGF3cy1zZGsvdXRpbC1lbmRwb2ludHNcIjogXCIzLjkzNi4wXCIsXG4gICAgXCJAYXdzLXNkay91dGlsLXVzZXItYWdlbnQtYnJvd3NlclwiOiBcIjMuOTM2LjBcIixcbiAgICBcIkBhd3Mtc2RrL3V0aWwtdXNlci1hZ2VudC1ub2RlXCI6IFwiMy45NDcuMFwiLFxuICAgIFwiQHNtaXRoeS9jb25maWctcmVzb2x2ZXJcIjogXCJeNC40LjNcIixcbiAgICBcIkBzbWl0aHkvY29yZVwiOiBcIl4zLjE4LjdcIixcbiAgICBcIkBzbWl0aHkvZXZlbnRzdHJlYW0tc2VyZGUtYnJvd3NlclwiOiBcIl40LjIuNVwiLFxuICAgIFwiQHNtaXRoeS9ldmVudHN0cmVhbS1zZXJkZS1jb25maWctcmVzb2x2ZXJcIjogXCJeNC4zLjVcIixcbiAgICBcIkBzbWl0aHkvZXZlbnRzdHJlYW0tc2VyZGUtbm9kZVwiOiBcIl40LjIuNVwiLFxuICAgIFwiQHNtaXRoeS9mZXRjaC1odHRwLWhhbmRsZXJcIjogXCJeNS4zLjZcIixcbiAgICBcIkBzbWl0aHkvaGFzaC1ub2RlXCI6IFwiXjQuMi41XCIsXG4gICAgXCJAc21pdGh5L2ludmFsaWQtZGVwZW5kZW5jeVwiOiBcIl40LjIuNVwiLFxuICAgIFwiQHNtaXRoeS9taWRkbGV3YXJlLWNvbnRlbnQtbGVuZ3RoXCI6IFwiXjQuMi41XCIsXG4gICAgXCJAc21pdGh5L21pZGRsZXdhcmUtZW5kcG9pbnRcIjogXCJeNC4zLjE0XCIsXG4gICAgXCJAc21pdGh5L21pZGRsZXdhcmUtcmV0cnlcIjogXCJeNC40LjE0XCIsXG4gICAgXCJAc21pdGh5L21pZGRsZXdhcmUtc2VyZGVcIjogXCJeNC4yLjZcIixcbiAgICBcIkBzbWl0aHkvbWlkZGxld2FyZS1zdGFja1wiOiBcIl40LjIuNVwiLFxuICAgIFwiQHNtaXRoeS9ub2RlLWNvbmZpZy1wcm92aWRlclwiOiBcIl40LjMuNVwiLFxuICAgIFwiQHNtaXRoeS9ub2RlLWh0dHAtaGFuZGxlclwiOiBcIl40LjQuNVwiLFxuICAgIFwiQHNtaXRoeS9wcm90b2NvbC1odHRwXCI6IFwiXjUuMy41XCIsXG4gICAgXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIjogXCJeNC45LjEwXCIsXG4gICAgXCJAc21pdGh5L3R5cGVzXCI6IFwiXjQuOS4wXCIsXG4gICAgXCJAc21pdGh5L3VybC1wYXJzZXJcIjogXCJeNC4yLjVcIixcbiAgICBcIkBzbWl0aHkvdXRpbC1iYXNlNjRcIjogXCJeNC4zLjBcIixcbiAgICBcIkBzbWl0aHkvdXRpbC1ib2R5LWxlbmd0aC1icm93c2VyXCI6IFwiXjQuMi4wXCIsXG4gICAgXCJAc21pdGh5L3V0aWwtYm9keS1sZW5ndGgtbm9kZVwiOiBcIl40LjIuMVwiLFxuICAgIFwiQHNtaXRoeS91dGlsLWRlZmF1bHRzLW1vZGUtYnJvd3NlclwiOiBcIl40LjMuMTNcIixcbiAgICBcIkBzbWl0aHkvdXRpbC1kZWZhdWx0cy1tb2RlLW5vZGVcIjogXCJeNC4yLjE2XCIsXG4gICAgXCJAc21pdGh5L3V0aWwtZW5kcG9pbnRzXCI6IFwiXjMuMi41XCIsXG4gICAgXCJAc21pdGh5L3V0aWwtbWlkZGxld2FyZVwiOiBcIl40LjIuNVwiLFxuICAgIFwiQHNtaXRoeS91dGlsLXJldHJ5XCI6IFwiXjQuMi41XCIsXG4gICAgXCJAc21pdGh5L3V0aWwtdXRmOFwiOiBcIl40LjIuMFwiLFxuICAgIFwidHNsaWJcIjogXCJeMi42LjJcIlxuICB9LFxuICBcImRldkRlcGVuZGVuY2llc1wiOiB7XG4gICAgXCJAdHNjb25maWcvbm9kZTE4XCI6IFwiMTguMi40XCIsXG4gICAgXCJAdHlwZXMvbm9kZVwiOiBcIl4xOC4xOS42OVwiLFxuICAgIFwiY29uY3VycmVudGx5XCI6IFwiNy4wLjBcIixcbiAgICBcImRvd25sZXZlbC1kdHNcIjogXCIwLjEwLjFcIixcbiAgICBcInJpbXJhZlwiOiBcIjMuMC4yXCIsXG4gICAgXCJ0eXBlc2NyaXB0XCI6IFwifjUuOC4zXCJcbiAgfSxcbiAgXCJlbmdpbmVzXCI6IHtcbiAgICBcIm5vZGVcIjogXCI+PTE4LjAuMFwiXG4gIH0sXG4gIFwidHlwZXNWZXJzaW9uc1wiOiB7XG4gICAgXCI8NC4wXCI6IHtcbiAgICAgIFwiZGlzdC10eXBlcy8qXCI6IFtcbiAgICAgICAgXCJkaXN0LXR5cGVzL3RzMy40LypcIlxuICAgICAgXVxuICAgIH1cbiAgfSxcbiAgXCJmaWxlc1wiOiBbXG4gICAgXCJkaXN0LSovKipcIlxuICBdLFxuICBcImF1dGhvclwiOiB7XG4gICAgXCJuYW1lXCI6IFwiQVdTIFNESyBmb3IgSmF2YVNjcmlwdCBUZWFtXCIsXG4gICAgXCJ1cmxcIjogXCJodHRwczovL2F3cy5hbWF6b24uY29tL2phdmFzY3JpcHQvXCJcbiAgfSxcbiAgXCJsaWNlbnNlXCI6IFwiQXBhY2hlLTIuMFwiLFxuICBcImJyb3dzZXJcIjoge1xuICAgIFwiLi9kaXN0LWVzL3J1bnRpbWVDb25maWdcIjogXCIuL2Rpc3QtZXMvcnVudGltZUNvbmZpZy5icm93c2VyXCJcbiAgfSxcbiAgXCJyZWFjdC1uYXRpdmVcIjoge1xuICAgIFwiLi9kaXN0LWVzL3J1bnRpbWVDb25maWdcIjogXCIuL2Rpc3QtZXMvcnVudGltZUNvbmZpZy5uYXRpdmVcIlxuICB9LFxuICBcImhvbWVwYWdlXCI6IFwiaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3Mtc2RrLWpzLXYzL3RyZWUvbWFpbi9jbGllbnRzL2NsaWVudC1jbG91ZHdhdGNoLWxvZ3NcIixcbiAgXCJyZXBvc2l0b3J5XCI6IHtcbiAgICBcInR5cGVcIjogXCJnaXRcIixcbiAgICBcInVybFwiOiBcImh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLXNkay1qcy12My5naXRcIixcbiAgICBcImRpcmVjdG9yeVwiOiBcImNsaWVudHMvY2xpZW50LWNsb3Vkd2F0Y2gtbG9nc1wiXG4gIH1cbn1cbiIsICJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMucnVsZVNldCA9IHZvaWQgMDtcbmNvbnN0IHUgPSBcInJlcXVpcmVkXCIsIHYgPSBcImZuXCIsIHcgPSBcImFyZ3ZcIiwgeCA9IFwicmVmXCI7XG5jb25zdCBhID0gdHJ1ZSwgYiA9IFwiaXNTZXRcIiwgYyA9IFwiYm9vbGVhbkVxdWFsc1wiLCBkID0gXCJlcnJvclwiLCBlID0gXCJlbmRwb2ludFwiLCBmID0gXCJ0cmVlXCIsIGcgPSBcIlBhcnRpdGlvblJlc3VsdFwiLCBoID0gXCJzdHJpbmdFcXVhbHNcIiwgaSA9IHsgW3VdOiBmYWxzZSwgXCJ0eXBlXCI6IFwic3RyaW5nXCIgfSwgaiA9IHsgW3VdOiB0cnVlLCBcImRlZmF1bHRcIjogZmFsc2UsIFwidHlwZVwiOiBcImJvb2xlYW5cIiB9LCBrID0geyBbeF06IFwiRW5kcG9pbnRcIiB9LCBsID0geyBbdl06IGMsIFt3XTogW3sgW3hdOiBcIlVzZUZJUFNcIiB9LCB0cnVlXSB9LCBtID0geyBbdl06IGMsIFt3XTogW3sgW3hdOiBcIlVzZUR1YWxTdGFja1wiIH0sIHRydWVdIH0sIG4gPSB7fSwgbyA9IHsgW3hdOiBcIlJlZ2lvblwiIH0sIHAgPSB7IFt2XTogXCJnZXRBdHRyXCIsIFt3XTogW3sgW3hdOiBnIH0sIFwic3VwcG9ydHNGSVBTXCJdIH0sIHEgPSB7IFt2XTogYywgW3ddOiBbdHJ1ZSwgeyBbdl06IFwiZ2V0QXR0clwiLCBbd106IFt7IFt4XTogZyB9LCBcInN1cHBvcnRzRHVhbFN0YWNrXCJdIH1dIH0sIHIgPSBbbF0sIHMgPSBbbV0sIHQgPSBbb107XG5jb25zdCBfZGF0YSA9IHsgdmVyc2lvbjogXCIxLjBcIiwgcGFyYW1ldGVyczogeyBSZWdpb246IGksIFVzZUR1YWxTdGFjazogaiwgVXNlRklQUzogaiwgRW5kcG9pbnQ6IGkgfSwgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IFt7IFt2XTogYiwgW3ddOiBba10gfV0sIHJ1bGVzOiBbeyBjb25kaXRpb25zOiByLCBlcnJvcjogXCJJbnZhbGlkIENvbmZpZ3VyYXRpb246IEZJUFMgYW5kIGN1c3RvbSBlbmRwb2ludCBhcmUgbm90IHN1cHBvcnRlZFwiLCB0eXBlOiBkIH0sIHsgY29uZGl0aW9uczogcywgZXJyb3I6IFwiSW52YWxpZCBDb25maWd1cmF0aW9uOiBEdWFsc3RhY2sgYW5kIGN1c3RvbSBlbmRwb2ludCBhcmUgbm90IHN1cHBvcnRlZFwiLCB0eXBlOiBkIH0sIHsgZW5kcG9pbnQ6IHsgdXJsOiBrLCBwcm9wZXJ0aWVzOiBuLCBoZWFkZXJzOiBuIH0sIHR5cGU6IGUgfV0sIHR5cGU6IGYgfSwgeyBjb25kaXRpb25zOiBbeyBbdl06IGIsIFt3XTogdCB9XSwgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IFt7IFt2XTogXCJhd3MucGFydGl0aW9uXCIsIFt3XTogdCwgYXNzaWduOiBnIH1dLCBydWxlczogW3sgY29uZGl0aW9uczogW2wsIG1dLCBydWxlczogW3sgY29uZGl0aW9uczogW3sgW3ZdOiBjLCBbd106IFthLCBwXSB9LCBxXSwgcnVsZXM6IFt7IGVuZHBvaW50OiB7IHVybDogXCJodHRwczovL2xvZ3MtZmlwcy57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2R1YWxTdGFja0Ruc1N1ZmZpeH1cIiwgcHJvcGVydGllczogbiwgaGVhZGVyczogbiB9LCB0eXBlOiBlIH1dLCB0eXBlOiBmIH0sIHsgZXJyb3I6IFwiRklQUyBhbmQgRHVhbFN0YWNrIGFyZSBlbmFibGVkLCBidXQgdGhpcyBwYXJ0aXRpb24gZG9lcyBub3Qgc3VwcG9ydCBvbmUgb3IgYm90aFwiLCB0eXBlOiBkIH1dLCB0eXBlOiBmIH0sIHsgY29uZGl0aW9uczogciwgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IFt7IFt2XTogYywgW3ddOiBbcCwgYV0gfV0sIHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbeyBbdl06IGgsIFt3XTogW28sIFwidXMtZ292LWVhc3QtMVwiXSB9XSwgZW5kcG9pbnQ6IHsgdXJsOiBcImh0dHBzOi8vbG9ncy51cy1nb3YtZWFzdC0xLmFtYXpvbmF3cy5jb21cIiwgcHJvcGVydGllczogbiwgaGVhZGVyczogbiB9LCB0eXBlOiBlIH0sIHsgY29uZGl0aW9uczogW3sgW3ZdOiBoLCBbd106IFtvLCBcInVzLWdvdi13ZXN0LTFcIl0gfV0sIGVuZHBvaW50OiB7IHVybDogXCJodHRwczovL2xvZ3MudXMtZ292LXdlc3QtMS5hbWF6b25hd3MuY29tXCIsIHByb3BlcnRpZXM6IG4sIGhlYWRlcnM6IG4gfSwgdHlwZTogZSB9LCB7IGVuZHBvaW50OiB7IHVybDogXCJodHRwczovL2xvZ3MtZmlwcy57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH1cIiwgcHJvcGVydGllczogbiwgaGVhZGVyczogbiB9LCB0eXBlOiBlIH1dLCB0eXBlOiBmIH0sIHsgZXJyb3I6IFwiRklQUyBpcyBlbmFibGVkIGJ1dCB0aGlzIHBhcnRpdGlvbiBkb2VzIG5vdCBzdXBwb3J0IEZJUFNcIiwgdHlwZTogZCB9XSwgdHlwZTogZiB9LCB7IGNvbmRpdGlvbnM6IHMsIHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbcV0sIHJ1bGVzOiBbeyBlbmRwb2ludDogeyB1cmw6IFwiaHR0cHM6Ly9sb2dzLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZHVhbFN0YWNrRG5zU3VmZml4fVwiLCBwcm9wZXJ0aWVzOiBuLCBoZWFkZXJzOiBuIH0sIHR5cGU6IGUgfV0sIHR5cGU6IGYgfSwgeyBlcnJvcjogXCJEdWFsU3RhY2sgaXMgZW5hYmxlZCBidXQgdGhpcyBwYXJ0aXRpb24gZG9lcyBub3Qgc3VwcG9ydCBEdWFsU3RhY2tcIiwgdHlwZTogZCB9XSwgdHlwZTogZiB9LCB7IGVuZHBvaW50OiB7IHVybDogXCJodHRwczovL2xvZ3Mue1JlZ2lvbn0ue1BhcnRpdGlvblJlc3VsdCNkbnNTdWZmaXh9XCIsIHByb3BlcnRpZXM6IG4sIGhlYWRlcnM6IG4gfSwgdHlwZTogZSB9XSwgdHlwZTogZiB9XSwgdHlwZTogZiB9LCB7IGVycm9yOiBcIkludmFsaWQgQ29uZmlndXJhdGlvbjogTWlzc2luZyBSZWdpb25cIiwgdHlwZTogZCB9XSB9O1xuZXhwb3J0cy5ydWxlU2V0ID0gX2RhdGE7XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmRlZmF1bHRFbmRwb2ludFJlc29sdmVyID0gdm9pZCAwO1xuY29uc3QgdXRpbF9lbmRwb2ludHNfMSA9IHJlcXVpcmUoXCJAYXdzLXNkay91dGlsLWVuZHBvaW50c1wiKTtcbmNvbnN0IHV0aWxfZW5kcG9pbnRzXzIgPSByZXF1aXJlKFwiQHNtaXRoeS91dGlsLWVuZHBvaW50c1wiKTtcbmNvbnN0IHJ1bGVzZXRfMSA9IHJlcXVpcmUoXCIuL3J1bGVzZXRcIik7XG5jb25zdCBjYWNoZSA9IG5ldyB1dGlsX2VuZHBvaW50c18yLkVuZHBvaW50Q2FjaGUoe1xuICAgIHNpemU6IDUwLFxuICAgIHBhcmFtczogW1wiRW5kcG9pbnRcIiwgXCJSZWdpb25cIiwgXCJVc2VEdWFsU3RhY2tcIiwgXCJVc2VGSVBTXCJdLFxufSk7XG5jb25zdCBkZWZhdWx0RW5kcG9pbnRSZXNvbHZlciA9IChlbmRwb2ludFBhcmFtcywgY29udGV4dCA9IHt9KSA9PiB7XG4gICAgcmV0dXJuIGNhY2hlLmdldChlbmRwb2ludFBhcmFtcywgKCkgPT4gKDAsIHV0aWxfZW5kcG9pbnRzXzIucmVzb2x2ZUVuZHBvaW50KShydWxlc2V0XzEucnVsZVNldCwge1xuICAgICAgICBlbmRwb2ludFBhcmFtczogZW5kcG9pbnRQYXJhbXMsXG4gICAgICAgIGxvZ2dlcjogY29udGV4dC5sb2dnZXIsXG4gICAgfSkpO1xufTtcbmV4cG9ydHMuZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIgPSBkZWZhdWx0RW5kcG9pbnRSZXNvbHZlcjtcbnV0aWxfZW5kcG9pbnRzXzIuY3VzdG9tRW5kcG9pbnRGdW5jdGlvbnMuYXdzID0gdXRpbF9lbmRwb2ludHNfMS5hd3NFbmRwb2ludEZ1bmN0aW9ucztcbiIsICJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuZ2V0UnVudGltZUNvbmZpZyA9IHZvaWQgMDtcbmNvbnN0IGNvcmVfMSA9IHJlcXVpcmUoXCJAYXdzLXNkay9jb3JlXCIpO1xuY29uc3QgcHJvdG9jb2xzXzEgPSByZXF1aXJlKFwiQGF3cy1zZGsvY29yZS9wcm90b2NvbHNcIik7XG5jb25zdCBzbWl0aHlfY2xpZW50XzEgPSByZXF1aXJlKFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCIpO1xuY29uc3QgdXJsX3BhcnNlcl8xID0gcmVxdWlyZShcIkBzbWl0aHkvdXJsLXBhcnNlclwiKTtcbmNvbnN0IHV0aWxfYmFzZTY0XzEgPSByZXF1aXJlKFwiQHNtaXRoeS91dGlsLWJhc2U2NFwiKTtcbmNvbnN0IHV0aWxfdXRmOF8xID0gcmVxdWlyZShcIkBzbWl0aHkvdXRpbC11dGY4XCIpO1xuY29uc3QgaHR0cEF1dGhTY2hlbWVQcm92aWRlcl8xID0gcmVxdWlyZShcIi4vYXV0aC9odHRwQXV0aFNjaGVtZVByb3ZpZGVyXCIpO1xuY29uc3QgZW5kcG9pbnRSZXNvbHZlcl8xID0gcmVxdWlyZShcIi4vZW5kcG9pbnQvZW5kcG9pbnRSZXNvbHZlclwiKTtcbmNvbnN0IGdldFJ1bnRpbWVDb25maWcgPSAoY29uZmlnKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgYXBpVmVyc2lvbjogXCIyMDE0LTAzLTI4XCIsXG4gICAgICAgIGJhc2U2NERlY29kZXI6IGNvbmZpZz8uYmFzZTY0RGVjb2RlciA/PyB1dGlsX2Jhc2U2NF8xLmZyb21CYXNlNjQsXG4gICAgICAgIGJhc2U2NEVuY29kZXI6IGNvbmZpZz8uYmFzZTY0RW5jb2RlciA/PyB1dGlsX2Jhc2U2NF8xLnRvQmFzZTY0LFxuICAgICAgICBkaXNhYmxlSG9zdFByZWZpeDogY29uZmlnPy5kaXNhYmxlSG9zdFByZWZpeCA/PyBmYWxzZSxcbiAgICAgICAgZW5kcG9pbnRQcm92aWRlcjogY29uZmlnPy5lbmRwb2ludFByb3ZpZGVyID8/IGVuZHBvaW50UmVzb2x2ZXJfMS5kZWZhdWx0RW5kcG9pbnRSZXNvbHZlcixcbiAgICAgICAgZXh0ZW5zaW9uczogY29uZmlnPy5leHRlbnNpb25zID8/IFtdLFxuICAgICAgICBodHRwQXV0aFNjaGVtZVByb3ZpZGVyOiBjb25maWc/Lmh0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPz8gaHR0cEF1dGhTY2hlbWVQcm92aWRlcl8xLmRlZmF1bHRDbG91ZFdhdGNoTG9nc0h0dHBBdXRoU2NoZW1lUHJvdmlkZXIsXG4gICAgICAgIGh0dHBBdXRoU2NoZW1lczogY29uZmlnPy5odHRwQXV0aFNjaGVtZXMgPz8gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHNjaGVtZUlkOiBcImF3cy5hdXRoI3NpZ3Y0XCIsXG4gICAgICAgICAgICAgICAgaWRlbnRpdHlQcm92aWRlcjogKGlwYykgPT4gaXBjLmdldElkZW50aXR5UHJvdmlkZXIoXCJhd3MuYXV0aCNzaWd2NFwiKSxcbiAgICAgICAgICAgICAgICBzaWduZXI6IG5ldyBjb3JlXzEuQXdzU2RrU2lnVjRTaWduZXIoKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIGxvZ2dlcjogY29uZmlnPy5sb2dnZXIgPz8gbmV3IHNtaXRoeV9jbGllbnRfMS5Ob09wTG9nZ2VyKCksXG4gICAgICAgIHByb3RvY29sOiBjb25maWc/LnByb3RvY29sID8/XG4gICAgICAgICAgICBuZXcgcHJvdG9jb2xzXzEuQXdzSnNvbjFfMVByb3RvY29sKHtcbiAgICAgICAgICAgICAgICBkZWZhdWx0TmFtZXNwYWNlOiBcImNvbS5hbWF6b25hd3MuY2xvdWR3YXRjaGxvZ3NcIixcbiAgICAgICAgICAgICAgICBzZXJ2aWNlVGFyZ2V0OiBcIkxvZ3NfMjAxNDAzMjhcIixcbiAgICAgICAgICAgICAgICBhd3NRdWVyeUNvbXBhdGlibGU6IGZhbHNlLFxuICAgICAgICAgICAgfSksXG4gICAgICAgIHNlcnZpY2VJZDogY29uZmlnPy5zZXJ2aWNlSWQgPz8gXCJDbG91ZFdhdGNoIExvZ3NcIixcbiAgICAgICAgdXJsUGFyc2VyOiBjb25maWc/LnVybFBhcnNlciA/PyB1cmxfcGFyc2VyXzEucGFyc2VVcmwsXG4gICAgICAgIHV0ZjhEZWNvZGVyOiBjb25maWc/LnV0ZjhEZWNvZGVyID8/IHV0aWxfdXRmOF8xLmZyb21VdGY4LFxuICAgICAgICB1dGY4RW5jb2RlcjogY29uZmlnPy51dGY4RW5jb2RlciA/PyB1dGlsX3V0ZjhfMS50b1V0ZjgsXG4gICAgfTtcbn07XG5leHBvcnRzLmdldFJ1bnRpbWVDb25maWcgPSBnZXRSdW50aW1lQ29uZmlnO1xuIiwgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5nZXRSdW50aW1lQ29uZmlnID0gdm9pZCAwO1xuY29uc3QgdHNsaWJfMSA9IHJlcXVpcmUoXCJ0c2xpYlwiKTtcbmNvbnN0IHBhY2thZ2VfanNvbl8xID0gdHNsaWJfMS5fX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4uL3BhY2thZ2UuanNvblwiKSk7XG5jb25zdCBjb3JlXzEgPSByZXF1aXJlKFwiQGF3cy1zZGsvY29yZVwiKTtcbmNvbnN0IGNyZWRlbnRpYWxfcHJvdmlkZXJfbm9kZV8xID0gcmVxdWlyZShcIkBhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItbm9kZVwiKTtcbmNvbnN0IHV0aWxfdXNlcl9hZ2VudF9ub2RlXzEgPSByZXF1aXJlKFwiQGF3cy1zZGsvdXRpbC11c2VyLWFnZW50LW5vZGVcIik7XG5jb25zdCBjb25maWdfcmVzb2x2ZXJfMSA9IHJlcXVpcmUoXCJAc21pdGh5L2NvbmZpZy1yZXNvbHZlclwiKTtcbmNvbnN0IGV2ZW50c3RyZWFtX3NlcmRlX25vZGVfMSA9IHJlcXVpcmUoXCJAc21pdGh5L2V2ZW50c3RyZWFtLXNlcmRlLW5vZGVcIik7XG5jb25zdCBoYXNoX25vZGVfMSA9IHJlcXVpcmUoXCJAc21pdGh5L2hhc2gtbm9kZVwiKTtcbmNvbnN0IG1pZGRsZXdhcmVfcmV0cnlfMSA9IHJlcXVpcmUoXCJAc21pdGh5L21pZGRsZXdhcmUtcmV0cnlcIik7XG5jb25zdCBub2RlX2NvbmZpZ19wcm92aWRlcl8xID0gcmVxdWlyZShcIkBzbWl0aHkvbm9kZS1jb25maWctcHJvdmlkZXJcIik7XG5jb25zdCBub2RlX2h0dHBfaGFuZGxlcl8xID0gcmVxdWlyZShcIkBzbWl0aHkvbm9kZS1odHRwLWhhbmRsZXJcIik7XG5jb25zdCBzbWl0aHlfY2xpZW50XzEgPSByZXF1aXJlKFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCIpO1xuY29uc3QgdXRpbF9ib2R5X2xlbmd0aF9ub2RlXzEgPSByZXF1aXJlKFwiQHNtaXRoeS91dGlsLWJvZHktbGVuZ3RoLW5vZGVcIik7XG5jb25zdCB1dGlsX2RlZmF1bHRzX21vZGVfbm9kZV8xID0gcmVxdWlyZShcIkBzbWl0aHkvdXRpbC1kZWZhdWx0cy1tb2RlLW5vZGVcIik7XG5jb25zdCB1dGlsX3JldHJ5XzEgPSByZXF1aXJlKFwiQHNtaXRoeS91dGlsLXJldHJ5XCIpO1xuY29uc3QgcnVudGltZUNvbmZpZ19zaGFyZWRfMSA9IHJlcXVpcmUoXCIuL3J1bnRpbWVDb25maWcuc2hhcmVkXCIpO1xuY29uc3QgZ2V0UnVudGltZUNvbmZpZyA9IChjb25maWcpID0+IHtcbiAgICAoMCwgc21pdGh5X2NsaWVudF8xLmVtaXRXYXJuaW5nSWZVbnN1cHBvcnRlZFZlcnNpb24pKHByb2Nlc3MudmVyc2lvbik7XG4gICAgY29uc3QgZGVmYXVsdHNNb2RlID0gKDAsIHV0aWxfZGVmYXVsdHNfbW9kZV9ub2RlXzEucmVzb2x2ZURlZmF1bHRzTW9kZUNvbmZpZykoY29uZmlnKTtcbiAgICBjb25zdCBkZWZhdWx0Q29uZmlnUHJvdmlkZXIgPSAoKSA9PiBkZWZhdWx0c01vZGUoKS50aGVuKHNtaXRoeV9jbGllbnRfMS5sb2FkQ29uZmlnc0ZvckRlZmF1bHRNb2RlKTtcbiAgICBjb25zdCBjbGllbnRTaGFyZWRWYWx1ZXMgPSAoMCwgcnVudGltZUNvbmZpZ19zaGFyZWRfMS5nZXRSdW50aW1lQ29uZmlnKShjb25maWcpO1xuICAgICgwLCBjb3JlXzEuZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbikocHJvY2Vzcy52ZXJzaW9uKTtcbiAgICBjb25zdCBsb2FkZXJDb25maWcgPSB7XG4gICAgICAgIHByb2ZpbGU6IGNvbmZpZz8ucHJvZmlsZSxcbiAgICAgICAgbG9nZ2VyOiBjbGllbnRTaGFyZWRWYWx1ZXMubG9nZ2VyLFxuICAgIH07XG4gICAgcmV0dXJuIHtcbiAgICAgICAgLi4uY2xpZW50U2hhcmVkVmFsdWVzLFxuICAgICAgICAuLi5jb25maWcsXG4gICAgICAgIHJ1bnRpbWU6IFwibm9kZVwiLFxuICAgICAgICBkZWZhdWx0c01vZGUsXG4gICAgICAgIGF1dGhTY2hlbWVQcmVmZXJlbmNlOiBjb25maWc/LmF1dGhTY2hlbWVQcmVmZXJlbmNlID8/ICgwLCBub2RlX2NvbmZpZ19wcm92aWRlcl8xLmxvYWRDb25maWcpKGNvcmVfMS5OT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfT1BUSU9OUywgbG9hZGVyQ29uZmlnKSxcbiAgICAgICAgYm9keUxlbmd0aENoZWNrZXI6IGNvbmZpZz8uYm9keUxlbmd0aENoZWNrZXIgPz8gdXRpbF9ib2R5X2xlbmd0aF9ub2RlXzEuY2FsY3VsYXRlQm9keUxlbmd0aCxcbiAgICAgICAgY3JlZGVudGlhbERlZmF1bHRQcm92aWRlcjogY29uZmlnPy5jcmVkZW50aWFsRGVmYXVsdFByb3ZpZGVyID8/IGNyZWRlbnRpYWxfcHJvdmlkZXJfbm9kZV8xLmRlZmF1bHRQcm92aWRlcixcbiAgICAgICAgZGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyOiBjb25maWc/LmRlZmF1bHRVc2VyQWdlbnRQcm92aWRlciA/P1xuICAgICAgICAgICAgKDAsIHV0aWxfdXNlcl9hZ2VudF9ub2RlXzEuY3JlYXRlRGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyKSh7IHNlcnZpY2VJZDogY2xpZW50U2hhcmVkVmFsdWVzLnNlcnZpY2VJZCwgY2xpZW50VmVyc2lvbjogcGFja2FnZV9qc29uXzEuZGVmYXVsdC52ZXJzaW9uIH0pLFxuICAgICAgICBldmVudFN0cmVhbVNlcmRlUHJvdmlkZXI6IGNvbmZpZz8uZXZlbnRTdHJlYW1TZXJkZVByb3ZpZGVyID8/IGV2ZW50c3RyZWFtX3NlcmRlX25vZGVfMS5ldmVudFN0cmVhbVNlcmRlUHJvdmlkZXIsXG4gICAgICAgIG1heEF0dGVtcHRzOiBjb25maWc/Lm1heEF0dGVtcHRzID8/ICgwLCBub2RlX2NvbmZpZ19wcm92aWRlcl8xLmxvYWRDb25maWcpKG1pZGRsZXdhcmVfcmV0cnlfMS5OT0RFX01BWF9BVFRFTVBUX0NPTkZJR19PUFRJT05TLCBjb25maWcpLFxuICAgICAgICByZWdpb246IGNvbmZpZz8ucmVnaW9uID8/XG4gICAgICAgICAgICAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKShjb25maWdfcmVzb2x2ZXJfMS5OT0RFX1JFR0lPTl9DT05GSUdfT1BUSU9OUywgeyAuLi5jb25maWdfcmVzb2x2ZXJfMS5OT0RFX1JFR0lPTl9DT05GSUdfRklMRV9PUFRJT05TLCAuLi5sb2FkZXJDb25maWcgfSksXG4gICAgICAgIHJlcXVlc3RIYW5kbGVyOiBub2RlX2h0dHBfaGFuZGxlcl8xLk5vZGVIdHRwSGFuZGxlci5jcmVhdGUoY29uZmlnPy5yZXF1ZXN0SGFuZGxlciA/PyBkZWZhdWx0Q29uZmlnUHJvdmlkZXIpLFxuICAgICAgICByZXRyeU1vZGU6IGNvbmZpZz8ucmV0cnlNb2RlID8/XG4gICAgICAgICAgICAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKSh7XG4gICAgICAgICAgICAgICAgLi4ubWlkZGxld2FyZV9yZXRyeV8xLk5PREVfUkVUUllfTU9ERV9DT05GSUdfT1BUSU9OUyxcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiBhc3luYyAoKSA9PiAoYXdhaXQgZGVmYXVsdENvbmZpZ1Byb3ZpZGVyKCkpLnJldHJ5TW9kZSB8fCB1dGlsX3JldHJ5XzEuREVGQVVMVF9SRVRSWV9NT0RFLFxuICAgICAgICAgICAgfSwgY29uZmlnKSxcbiAgICAgICAgc2hhMjU2OiBjb25maWc/LnNoYTI1NiA/PyBoYXNoX25vZGVfMS5IYXNoLmJpbmQobnVsbCwgXCJzaGEyNTZcIiksXG4gICAgICAgIHN0cmVhbUNvbGxlY3RvcjogY29uZmlnPy5zdHJlYW1Db2xsZWN0b3IgPz8gbm9kZV9odHRwX2hhbmRsZXJfMS5zdHJlYW1Db2xsZWN0b3IsXG4gICAgICAgIHVzZUR1YWxzdGFja0VuZHBvaW50OiBjb25maWc/LnVzZUR1YWxzdGFja0VuZHBvaW50ID8/ICgwLCBub2RlX2NvbmZpZ19wcm92aWRlcl8xLmxvYWRDb25maWcpKGNvbmZpZ19yZXNvbHZlcl8xLk5PREVfVVNFX0RVQUxTVEFDS19FTkRQT0lOVF9DT05GSUdfT1BUSU9OUywgbG9hZGVyQ29uZmlnKSxcbiAgICAgICAgdXNlRmlwc0VuZHBvaW50OiBjb25maWc/LnVzZUZpcHNFbmRwb2ludCA/PyAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKShjb25maWdfcmVzb2x2ZXJfMS5OT0RFX1VTRV9GSVBTX0VORFBPSU5UX0NPTkZJR19PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgICAgICB1c2VyQWdlbnRBcHBJZDogY29uZmlnPy51c2VyQWdlbnRBcHBJZCA/PyAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKSh1dGlsX3VzZXJfYWdlbnRfbm9kZV8xLk5PREVfQVBQX0lEX0NPTkZJR19PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgIH07XG59O1xuZXhwb3J0cy5nZXRSdW50aW1lQ29uZmlnID0gZ2V0UnVudGltZUNvbmZpZztcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBtaWRkbGV3YXJlSG9zdEhlYWRlciA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL21pZGRsZXdhcmUtaG9zdC1oZWFkZXInKTtcbnZhciBtaWRkbGV3YXJlTG9nZ2VyID0gcmVxdWlyZSgnQGF3cy1zZGsvbWlkZGxld2FyZS1sb2dnZXInKTtcbnZhciBtaWRkbGV3YXJlUmVjdXJzaW9uRGV0ZWN0aW9uID0gcmVxdWlyZSgnQGF3cy1zZGsvbWlkZGxld2FyZS1yZWN1cnNpb24tZGV0ZWN0aW9uJyk7XG52YXIgbWlkZGxld2FyZVVzZXJBZ2VudCA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL21pZGRsZXdhcmUtdXNlci1hZ2VudCcpO1xudmFyIGNvbmZpZ1Jlc29sdmVyID0gcmVxdWlyZSgnQHNtaXRoeS9jb25maWctcmVzb2x2ZXInKTtcbnZhciBjb3JlID0gcmVxdWlyZSgnQHNtaXRoeS9jb3JlJyk7XG52YXIgc2NoZW1hID0gcmVxdWlyZSgnQHNtaXRoeS9jb3JlL3NjaGVtYScpO1xudmFyIGV2ZW50c3RyZWFtU2VyZGVDb25maWdSZXNvbHZlciA9IHJlcXVpcmUoJ0BzbWl0aHkvZXZlbnRzdHJlYW0tc2VyZGUtY29uZmlnLXJlc29sdmVyJyk7XG52YXIgbWlkZGxld2FyZUNvbnRlbnRMZW5ndGggPSByZXF1aXJlKCdAc21pdGh5L21pZGRsZXdhcmUtY29udGVudC1sZW5ndGgnKTtcbnZhciBtaWRkbGV3YXJlRW5kcG9pbnQgPSByZXF1aXJlKCdAc21pdGh5L21pZGRsZXdhcmUtZW5kcG9pbnQnKTtcbnZhciBtaWRkbGV3YXJlUmV0cnkgPSByZXF1aXJlKCdAc21pdGh5L21pZGRsZXdhcmUtcmV0cnknKTtcbnZhciBzbWl0aHlDbGllbnQgPSByZXF1aXJlKCdAc21pdGh5L3NtaXRoeS1jbGllbnQnKTtcbnZhciBodHRwQXV0aFNjaGVtZVByb3ZpZGVyID0gcmVxdWlyZSgnLi9hdXRoL2h0dHBBdXRoU2NoZW1lUHJvdmlkZXInKTtcbnZhciBydW50aW1lQ29uZmlnID0gcmVxdWlyZSgnLi9ydW50aW1lQ29uZmlnJyk7XG52YXIgcmVnaW9uQ29uZmlnUmVzb2x2ZXIgPSByZXF1aXJlKCdAYXdzLXNkay9yZWdpb24tY29uZmlnLXJlc29sdmVyJyk7XG52YXIgcHJvdG9jb2xIdHRwID0gcmVxdWlyZSgnQHNtaXRoeS9wcm90b2NvbC1odHRwJyk7XG5cbmNvbnN0IHJlc29sdmVDbGllbnRFbmRwb2ludFBhcmFtZXRlcnMgPSAob3B0aW9ucykgPT4ge1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKG9wdGlvbnMsIHtcbiAgICAgICAgdXNlRHVhbHN0YWNrRW5kcG9pbnQ6IG9wdGlvbnMudXNlRHVhbHN0YWNrRW5kcG9pbnQgPz8gZmFsc2UsXG4gICAgICAgIHVzZUZpcHNFbmRwb2ludDogb3B0aW9ucy51c2VGaXBzRW5kcG9pbnQgPz8gZmFsc2UsXG4gICAgICAgIGRlZmF1bHRTaWduaW5nTmFtZTogXCJsb2dzXCIsXG4gICAgfSk7XG59O1xuY29uc3QgY29tbW9uUGFyYW1zID0ge1xuICAgIFVzZUZJUFM6IHsgdHlwZTogXCJidWlsdEluUGFyYW1zXCIsIG5hbWU6IFwidXNlRmlwc0VuZHBvaW50XCIgfSxcbiAgICBFbmRwb2ludDogeyB0eXBlOiBcImJ1aWx0SW5QYXJhbXNcIiwgbmFtZTogXCJlbmRwb2ludFwiIH0sXG4gICAgUmVnaW9uOiB7IHR5cGU6IFwiYnVpbHRJblBhcmFtc1wiLCBuYW1lOiBcInJlZ2lvblwiIH0sXG4gICAgVXNlRHVhbFN0YWNrOiB7IHR5cGU6IFwiYnVpbHRJblBhcmFtc1wiLCBuYW1lOiBcInVzZUR1YWxzdGFja0VuZHBvaW50XCIgfSxcbn07XG5cbmNvbnN0IGdldEh0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiA9IChydW50aW1lQ29uZmlnKSA9PiB7XG4gICAgY29uc3QgX2h0dHBBdXRoU2NoZW1lcyA9IHJ1bnRpbWVDb25maWcuaHR0cEF1dGhTY2hlbWVzO1xuICAgIGxldCBfaHR0cEF1dGhTY2hlbWVQcm92aWRlciA9IHJ1bnRpbWVDb25maWcuaHR0cEF1dGhTY2hlbWVQcm92aWRlcjtcbiAgICBsZXQgX2NyZWRlbnRpYWxzID0gcnVudGltZUNvbmZpZy5jcmVkZW50aWFscztcbiAgICByZXR1cm4ge1xuICAgICAgICBzZXRIdHRwQXV0aFNjaGVtZShodHRwQXV0aFNjaGVtZSkge1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSBfaHR0cEF1dGhTY2hlbWVzLmZpbmRJbmRleCgoc2NoZW1lKSA9PiBzY2hlbWUuc2NoZW1lSWQgPT09IGh0dHBBdXRoU2NoZW1lLnNjaGVtZUlkKTtcbiAgICAgICAgICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICBfaHR0cEF1dGhTY2hlbWVzLnB1c2goaHR0cEF1dGhTY2hlbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgX2h0dHBBdXRoU2NoZW1lcy5zcGxpY2UoaW5kZXgsIDEsIGh0dHBBdXRoU2NoZW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVzKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9odHRwQXV0aFNjaGVtZXM7XG4gICAgICAgIH0sXG4gICAgICAgIHNldEh0dHBBdXRoU2NoZW1lUHJvdmlkZXIoaHR0cEF1dGhTY2hlbWVQcm92aWRlcikge1xuICAgICAgICAgICAgX2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSBodHRwQXV0aFNjaGVtZVByb3ZpZGVyO1xuICAgICAgICB9LFxuICAgICAgICBodHRwQXV0aFNjaGVtZVByb3ZpZGVyKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9odHRwQXV0aFNjaGVtZVByb3ZpZGVyO1xuICAgICAgICB9LFxuICAgICAgICBzZXRDcmVkZW50aWFscyhjcmVkZW50aWFscykge1xuICAgICAgICAgICAgX2NyZWRlbnRpYWxzID0gY3JlZGVudGlhbHM7XG4gICAgICAgIH0sXG4gICAgICAgIGNyZWRlbnRpYWxzKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9jcmVkZW50aWFscztcbiAgICAgICAgfSxcbiAgICB9O1xufTtcbmNvbnN0IHJlc29sdmVIdHRwQXV0aFJ1bnRpbWVDb25maWcgPSAoY29uZmlnKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVzOiBjb25maWcuaHR0cEF1dGhTY2hlbWVzKCksXG4gICAgICAgIGh0dHBBdXRoU2NoZW1lUHJvdmlkZXI6IGNvbmZpZy5odHRwQXV0aFNjaGVtZVByb3ZpZGVyKCksXG4gICAgICAgIGNyZWRlbnRpYWxzOiBjb25maWcuY3JlZGVudGlhbHMoKSxcbiAgICB9O1xufTtcblxuY29uc3QgcmVzb2x2ZVJ1bnRpbWVFeHRlbnNpb25zID0gKHJ1bnRpbWVDb25maWcsIGV4dGVuc2lvbnMpID0+IHtcbiAgICBjb25zdCBleHRlbnNpb25Db25maWd1cmF0aW9uID0gT2JqZWN0LmFzc2lnbihyZWdpb25Db25maWdSZXNvbHZlci5nZXRBd3NSZWdpb25FeHRlbnNpb25Db25maWd1cmF0aW9uKHJ1bnRpbWVDb25maWcpLCBzbWl0aHlDbGllbnQuZ2V0RGVmYXVsdEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24ocnVudGltZUNvbmZpZyksIHByb3RvY29sSHR0cC5nZXRIdHRwSGFuZGxlckV4dGVuc2lvbkNvbmZpZ3VyYXRpb24ocnVudGltZUNvbmZpZyksIGdldEh0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbihydW50aW1lQ29uZmlnKSk7XG4gICAgZXh0ZW5zaW9ucy5mb3JFYWNoKChleHRlbnNpb24pID0+IGV4dGVuc2lvbi5jb25maWd1cmUoZXh0ZW5zaW9uQ29uZmlndXJhdGlvbikpO1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHJ1bnRpbWVDb25maWcsIHJlZ2lvbkNvbmZpZ1Jlc29sdmVyLnJlc29sdmVBd3NSZWdpb25FeHRlbnNpb25Db25maWd1cmF0aW9uKGV4dGVuc2lvbkNvbmZpZ3VyYXRpb24pLCBzbWl0aHlDbGllbnQucmVzb2x2ZURlZmF1bHRSdW50aW1lQ29uZmlnKGV4dGVuc2lvbkNvbmZpZ3VyYXRpb24pLCBwcm90b2NvbEh0dHAucmVzb2x2ZUh0dHBIYW5kbGVyUnVudGltZUNvbmZpZyhleHRlbnNpb25Db25maWd1cmF0aW9uKSwgcmVzb2x2ZUh0dHBBdXRoUnVudGltZUNvbmZpZyhleHRlbnNpb25Db25maWd1cmF0aW9uKSk7XG59O1xuXG5jbGFzcyBDbG91ZFdhdGNoTG9nc0NsaWVudCBleHRlbmRzIHNtaXRoeUNsaWVudC5DbGllbnQge1xuICAgIGNvbmZpZztcbiAgICBjb25zdHJ1Y3RvciguLi5bY29uZmlndXJhdGlvbl0pIHtcbiAgICAgICAgY29uc3QgX2NvbmZpZ18wID0gcnVudGltZUNvbmZpZy5nZXRSdW50aW1lQ29uZmlnKGNvbmZpZ3VyYXRpb24gfHwge30pO1xuICAgICAgICBzdXBlcihfY29uZmlnXzApO1xuICAgICAgICB0aGlzLmluaXRDb25maWcgPSBfY29uZmlnXzA7XG4gICAgICAgIGNvbnN0IF9jb25maWdfMSA9IHJlc29sdmVDbGllbnRFbmRwb2ludFBhcmFtZXRlcnMoX2NvbmZpZ18wKTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ18yID0gbWlkZGxld2FyZVVzZXJBZ2VudC5yZXNvbHZlVXNlckFnZW50Q29uZmlnKF9jb25maWdfMSk7XG4gICAgICAgIGNvbnN0IF9jb25maWdfMyA9IG1pZGRsZXdhcmVSZXRyeS5yZXNvbHZlUmV0cnlDb25maWcoX2NvbmZpZ18yKTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ180ID0gY29uZmlnUmVzb2x2ZXIucmVzb2x2ZVJlZ2lvbkNvbmZpZyhfY29uZmlnXzMpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzUgPSBtaWRkbGV3YXJlSG9zdEhlYWRlci5yZXNvbHZlSG9zdEhlYWRlckNvbmZpZyhfY29uZmlnXzQpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzYgPSBtaWRkbGV3YXJlRW5kcG9pbnQucmVzb2x2ZUVuZHBvaW50Q29uZmlnKF9jb25maWdfNSk7XG4gICAgICAgIGNvbnN0IF9jb25maWdfNyA9IGV2ZW50c3RyZWFtU2VyZGVDb25maWdSZXNvbHZlci5yZXNvbHZlRXZlbnRTdHJlYW1TZXJkZUNvbmZpZyhfY29uZmlnXzYpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzggPSBodHRwQXV0aFNjaGVtZVByb3ZpZGVyLnJlc29sdmVIdHRwQXV0aFNjaGVtZUNvbmZpZyhfY29uZmlnXzcpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzkgPSByZXNvbHZlUnVudGltZUV4dGVuc2lvbnMoX2NvbmZpZ184LCBjb25maWd1cmF0aW9uPy5leHRlbnNpb25zIHx8IFtdKTtcbiAgICAgICAgdGhpcy5jb25maWcgPSBfY29uZmlnXzk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShzY2hlbWEuZ2V0U2NoZW1hU2VyZGVQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKG1pZGRsZXdhcmVVc2VyQWdlbnQuZ2V0VXNlckFnZW50UGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShtaWRkbGV3YXJlUmV0cnkuZ2V0UmV0cnlQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKG1pZGRsZXdhcmVDb250ZW50TGVuZ3RoLmdldENvbnRlbnRMZW5ndGhQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKG1pZGRsZXdhcmVIb3N0SGVhZGVyLmdldEhvc3RIZWFkZXJQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKG1pZGRsZXdhcmVMb2dnZXIuZ2V0TG9nZ2VyUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShtaWRkbGV3YXJlUmVjdXJzaW9uRGV0ZWN0aW9uLmdldFJlY3Vyc2lvbkRldGVjdGlvblBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoY29yZS5nZXRIdHRwQXV0aFNjaGVtZUVuZHBvaW50UnVsZVNldFBsdWdpbih0aGlzLmNvbmZpZywge1xuICAgICAgICAgICAgaHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXI6IGh0dHBBdXRoU2NoZW1lUHJvdmlkZXIuZGVmYXVsdENsb3VkV2F0Y2hMb2dzSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIsXG4gICAgICAgICAgICBpZGVudGl0eVByb3ZpZGVyQ29uZmlnUHJvdmlkZXI6IGFzeW5jIChjb25maWcpID0+IG5ldyBjb3JlLkRlZmF1bHRJZGVudGl0eVByb3ZpZGVyQ29uZmlnKHtcbiAgICAgICAgICAgICAgICBcImF3cy5hdXRoI3NpZ3Y0XCI6IGNvbmZpZy5jcmVkZW50aWFscyxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICB9KSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShjb3JlLmdldEh0dHBTaWduaW5nUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgfVxuICAgIGRlc3Ryb3koKSB7XG4gICAgICAgIHN1cGVyLmRlc3Ryb3koKTtcbiAgICB9XG59XG5cbmxldCBDbG91ZFdhdGNoTG9nc1NlcnZpY2VFeGNlcHRpb24kMSA9IGNsYXNzIENsb3VkV2F0Y2hMb2dzU2VydmljZUV4Y2VwdGlvbiBleHRlbmRzIHNtaXRoeUNsaWVudC5TZXJ2aWNlRXhjZXB0aW9uIHtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgfVxufTtcblxubGV0IEFjY2Vzc0RlbmllZEV4Y2VwdGlvbiQxID0gY2xhc3MgQWNjZXNzRGVuaWVkRXhjZXB0aW9uIGV4dGVuZHMgQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlRXhjZXB0aW9uJDEge1xuICAgIG5hbWUgPSBcIkFjY2Vzc0RlbmllZEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkFjY2Vzc0RlbmllZEV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBBY2Nlc3NEZW5pZWRFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59O1xubGV0IEludmFsaWRQYXJhbWV0ZXJFeGNlcHRpb24kMSA9IGNsYXNzIEludmFsaWRQYXJhbWV0ZXJFeGNlcHRpb24gZXh0ZW5kcyBDbG91ZFdhdGNoTG9nc1NlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiSW52YWxpZFBhcmFtZXRlckV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkludmFsaWRQYXJhbWV0ZXJFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgSW52YWxpZFBhcmFtZXRlckV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn07XG5sZXQgT3BlcmF0aW9uQWJvcnRlZEV4Y2VwdGlvbiQxID0gY2xhc3MgT3BlcmF0aW9uQWJvcnRlZEV4Y2VwdGlvbiBleHRlbmRzIENsb3VkV2F0Y2hMb2dzU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJPcGVyYXRpb25BYm9ydGVkRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiT3BlcmF0aW9uQWJvcnRlZEV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBPcGVyYXRpb25BYm9ydGVkRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgfVxufTtcbmxldCBSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uJDEgPSBjbGFzcyBSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uIGV4dGVuZHMgQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlRXhjZXB0aW9uJDEge1xuICAgIG5hbWUgPSBcIlJlc291cmNlTm90Rm91bmRFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFJlc291cmNlTm90Rm91bmRFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59O1xubGV0IFNlcnZpY2VVbmF2YWlsYWJsZUV4Y2VwdGlvbiQxID0gY2xhc3MgU2VydmljZVVuYXZhaWxhYmxlRXhjZXB0aW9uIGV4dGVuZHMgQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlRXhjZXB0aW9uJDEge1xuICAgIG5hbWUgPSBcIlNlcnZpY2VVbmF2YWlsYWJsZUV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwic2VydmVyXCI7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIlNlcnZpY2VVbmF2YWlsYWJsZUV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcInNlcnZlclwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBTZXJ2aWNlVW5hdmFpbGFibGVFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59O1xubGV0IEludGVybmFsU2VydmVyRXhjZXB0aW9uJDEgPSBjbGFzcyBJbnRlcm5hbFNlcnZlckV4Y2VwdGlvbiBleHRlbmRzIENsb3VkV2F0Y2hMb2dzU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJJbnRlcm5hbFNlcnZlckV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwic2VydmVyXCI7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkludGVybmFsU2VydmVyRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwic2VydmVyXCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEludGVybmFsU2VydmVyRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgfVxufTtcbmxldCBUaHJvdHRsaW5nRXhjZXB0aW9uJDEgPSBjbGFzcyBUaHJvdHRsaW5nRXhjZXB0aW9uIGV4dGVuZHMgQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlRXhjZXB0aW9uJDEge1xuICAgIG5hbWUgPSBcIlRocm90dGxpbmdFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJUaHJvdHRsaW5nRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFRocm90dGxpbmdFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59O1xubGV0IFZhbGlkYXRpb25FeGNlcHRpb24kMSA9IGNsYXNzIFZhbGlkYXRpb25FeGNlcHRpb24gZXh0ZW5kcyBDbG91ZFdhdGNoTG9nc1NlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiVmFsaWRhdGlvbkV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIlZhbGlkYXRpb25FeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgVmFsaWRhdGlvbkV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn07XG5sZXQgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbiQxID0gY2xhc3MgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbiBleHRlbmRzIENsb3VkV2F0Y2hMb2dzU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgfVxufTtcbmxldCBDb25mbGljdEV4Y2VwdGlvbiQxID0gY2xhc3MgQ29uZmxpY3RFeGNlcHRpb24gZXh0ZW5kcyBDbG91ZFdhdGNoTG9nc1NlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiQ29uZmxpY3RFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJDb25mbGljdEV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBDb25mbGljdEV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn07XG5sZXQgU2VydmljZVF1b3RhRXhjZWVkZWRFeGNlcHRpb24kMSA9IGNsYXNzIFNlcnZpY2VRdW90YUV4Y2VlZGVkRXhjZXB0aW9uIGV4dGVuZHMgQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlRXhjZXB0aW9uJDEge1xuICAgIG5hbWUgPSBcIlNlcnZpY2VRdW90YUV4Y2VlZGVkRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiU2VydmljZVF1b3RhRXhjZWVkZWRFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgU2VydmljZVF1b3RhRXhjZWVkZWRFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59O1xubGV0IExpbWl0RXhjZWVkZWRFeGNlcHRpb24kMSA9IGNsYXNzIExpbWl0RXhjZWVkZWRFeGNlcHRpb24gZXh0ZW5kcyBDbG91ZFdhdGNoTG9nc1NlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiTGltaXRFeGNlZWRlZEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkxpbWl0RXhjZWVkZWRFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgTGltaXRFeGNlZWRlZEV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn07XG5sZXQgUmVzb3VyY2VBbHJlYWR5RXhpc3RzRXhjZXB0aW9uJDEgPSBjbGFzcyBSZXNvdXJjZUFscmVhZHlFeGlzdHNFeGNlcHRpb24gZXh0ZW5kcyBDbG91ZFdhdGNoTG9nc1NlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiUmVzb3VyY2VBbHJlYWR5RXhpc3RzRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiUmVzb3VyY2VBbHJlYWR5RXhpc3RzRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFJlc291cmNlQWxyZWFkeUV4aXN0c0V4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn07XG5sZXQgRGF0YUFscmVhZHlBY2NlcHRlZEV4Y2VwdGlvbiQxID0gY2xhc3MgRGF0YUFscmVhZHlBY2NlcHRlZEV4Y2VwdGlvbiBleHRlbmRzIENsb3VkV2F0Y2hMb2dzU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJEYXRhQWxyZWFkeUFjY2VwdGVkRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBleHBlY3RlZFNlcXVlbmNlVG9rZW47XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkRhdGFBbHJlYWR5QWNjZXB0ZWRFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgRGF0YUFscmVhZHlBY2NlcHRlZEV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLmV4cGVjdGVkU2VxdWVuY2VUb2tlbiA9IG9wdHMuZXhwZWN0ZWRTZXF1ZW5jZVRva2VuO1xuICAgIH1cbn07XG5sZXQgSW50ZXJuYWxTdHJlYW1pbmdFeGNlcHRpb24kMSA9IGNsYXNzIEludGVybmFsU3RyZWFtaW5nRXhjZXB0aW9uIGV4dGVuZHMgQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlRXhjZXB0aW9uJDEge1xuICAgIG5hbWUgPSBcIkludGVybmFsU3RyZWFtaW5nRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiSW50ZXJuYWxTdHJlYW1pbmdFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgSW50ZXJuYWxTdHJlYW1pbmdFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59O1xubGV0IEludmFsaWRTZXF1ZW5jZVRva2VuRXhjZXB0aW9uJDEgPSBjbGFzcyBJbnZhbGlkU2VxdWVuY2VUb2tlbkV4Y2VwdGlvbiBleHRlbmRzIENsb3VkV2F0Y2hMb2dzU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJJbnZhbGlkU2VxdWVuY2VUb2tlbkV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgZXhwZWN0ZWRTZXF1ZW5jZVRva2VuO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJJbnZhbGlkU2VxdWVuY2VUb2tlbkV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBJbnZhbGlkU2VxdWVuY2VUb2tlbkV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLmV4cGVjdGVkU2VxdWVuY2VUb2tlbiA9IG9wdHMuZXhwZWN0ZWRTZXF1ZW5jZVRva2VuO1xuICAgIH1cbn07XG5sZXQgVW5yZWNvZ25pemVkQ2xpZW50RXhjZXB0aW9uJDEgPSBjbGFzcyBVbnJlY29nbml6ZWRDbGllbnRFeGNlcHRpb24gZXh0ZW5kcyBDbG91ZFdhdGNoTG9nc1NlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiVW5yZWNvZ25pemVkQ2xpZW50RXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiVW5yZWNvZ25pemVkQ2xpZW50RXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFVucmVjb2duaXplZENsaWVudEV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn07XG5sZXQgU2Vzc2lvblN0cmVhbWluZ0V4Y2VwdGlvbiQxID0gY2xhc3MgU2Vzc2lvblN0cmVhbWluZ0V4Y2VwdGlvbiBleHRlbmRzIENsb3VkV2F0Y2hMb2dzU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJTZXNzaW9uU3RyZWFtaW5nRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiU2Vzc2lvblN0cmVhbWluZ0V4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBTZXNzaW9uU3RyZWFtaW5nRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgfVxufTtcbmxldCBTZXNzaW9uVGltZW91dEV4Y2VwdGlvbiQxID0gY2xhc3MgU2Vzc2lvblRpbWVvdXRFeGNlcHRpb24gZXh0ZW5kcyBDbG91ZFdhdGNoTG9nc1NlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiU2Vzc2lvblRpbWVvdXRFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJTZXNzaW9uVGltZW91dEV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBTZXNzaW9uVGltZW91dEV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn07XG5sZXQgTWFsZm9ybWVkUXVlcnlFeGNlcHRpb24kMSA9IGNsYXNzIE1hbGZvcm1lZFF1ZXJ5RXhjZXB0aW9uIGV4dGVuZHMgQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlRXhjZXB0aW9uJDEge1xuICAgIG5hbWUgPSBcIk1hbGZvcm1lZFF1ZXJ5RXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBxdWVyeUNvbXBpbGVFcnJvcjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiTWFsZm9ybWVkUXVlcnlFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgTWFsZm9ybWVkUXVlcnlFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5xdWVyeUNvbXBpbGVFcnJvciA9IG9wdHMucXVlcnlDb21waWxlRXJyb3I7XG4gICAgfVxufTtcbmxldCBUb29NYW55VGFnc0V4Y2VwdGlvbiQxID0gY2xhc3MgVG9vTWFueVRhZ3NFeGNlcHRpb24gZXh0ZW5kcyBDbG91ZFdhdGNoTG9nc1NlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiVG9vTWFueVRhZ3NFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIHJlc291cmNlTmFtZTtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiVG9vTWFueVRhZ3NFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgVG9vTWFueVRhZ3NFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5yZXNvdXJjZU5hbWUgPSBvcHRzLnJlc291cmNlTmFtZTtcbiAgICB9XG59O1xuXG5jb25zdCBfQSA9IFwiQW5vbWFseVwiO1xuY29uc3QgX0FEID0gXCJBbm9tYWx5RGV0ZWN0b3JcIjtcbmNvbnN0IF9BREUgPSBcIkFjY2Vzc0RlbmllZEV4Y2VwdGlvblwiO1xuY29uc3QgX0FEbiA9IFwiQW5vbWFseURldGVjdG9yc1wiO1xuY29uc3QgX0FGID0gXCJBbGxvd2VkRmllbGRzXCI7XG5jb25zdCBfQUsgPSBcIkFkZEtleXNcIjtcbmNvbnN0IF9BS0UgPSBcIkFkZEtleUVudHJ5XCI7XG5jb25zdCBfQUtFZCA9IFwiQWRkS2V5RW50cmllc1wiO1xuY29uc3QgX0FLSyA9IFwiQXNzb2NpYXRlS21zS2V5XCI7XG5jb25zdCBfQUtLUiA9IFwiQXNzb2NpYXRlS21zS2V5UmVxdWVzdFwiO1xuY29uc3QgX0FMR1MgPSBcIkFnZ3JlZ2F0ZUxvZ0dyb3VwU3VtbWFyeVwiO1xuY29uc3QgX0FMR1NnID0gXCJBZ2dyZWdhdGVMb2dHcm91cFN1bW1hcmllc1wiO1xuY29uc3QgX0FQID0gXCJBY2NvdW50UG9saWN5XCI7XG5jb25zdCBfQVBjID0gXCJBY2NvdW50UG9saWNpZXNcIjtcbmNvbnN0IF9BU1RTVEkgPSBcIkFzc29jaWF0ZVNvdXJjZVRvUzNUYWJsZUludGVncmF0aW9uXCI7XG5jb25zdCBfQVNUU1RJUiA9IFwiQXNzb2NpYXRlU291cmNlVG9TM1RhYmxlSW50ZWdyYXRpb25SZXF1ZXN0XCI7XG5jb25zdCBfQVNUU1RJUnMgPSBcIkFzc29jaWF0ZVNvdXJjZVRvUzNUYWJsZUludGVncmF0aW9uUmVzcG9uc2VcIjtcbmNvbnN0IF9BbiA9IFwiQW5vbWFsaWVzXCI7XG5jb25zdCBfQ0QgPSBcIkNyZWF0ZURlbGl2ZXJ5XCI7XG5jb25zdCBfQ0RSID0gXCJDcmVhdGVEZWxpdmVyeVJlcXVlc3RcIjtcbmNvbnN0IF9DRFJyID0gXCJDcmVhdGVEZWxpdmVyeVJlc3BvbnNlXCI7XG5jb25zdCBfQ0UgPSBcIkNvbmZsaWN0RXhjZXB0aW9uXCI7XG5jb25zdCBfQ0VUID0gXCJDYW5jZWxFeHBvcnRUYXNrXCI7XG5jb25zdCBfQ0VUUiA9IFwiQ2FuY2VsRXhwb3J0VGFza1JlcXVlc3RcIjtcbmNvbnN0IF9DRVRSciA9IFwiQ3JlYXRlRXhwb3J0VGFza1JlcXVlc3RcIjtcbmNvbnN0IF9DRVRScmUgPSBcIkNyZWF0ZUV4cG9ydFRhc2tSZXNwb25zZVwiO1xuY29uc3QgX0NFVHIgPSBcIkNyZWF0ZUV4cG9ydFRhc2tcIjtcbmNvbnN0IF9DSVQgPSBcIkNhbmNlbEltcG9ydFRhc2tcIjtcbmNvbnN0IF9DSVRSID0gXCJDYW5jZWxJbXBvcnRUYXNrUmVxdWVzdFwiO1xuY29uc3QgX0NJVFJhID0gXCJDYW5jZWxJbXBvcnRUYXNrUmVzcG9uc2VcIjtcbmNvbnN0IF9DSVRSciA9IFwiQ3JlYXRlSW1wb3J0VGFza1JlcXVlc3RcIjtcbmNvbnN0IF9DSVRScmUgPSBcIkNyZWF0ZUltcG9ydFRhc2tSZXNwb25zZVwiO1xuY29uc3QgX0NJVHIgPSBcIkNyZWF0ZUltcG9ydFRhc2tcIjtcbmNvbnN0IF9DTEFEID0gXCJDcmVhdGVMb2dBbm9tYWx5RGV0ZWN0b3JcIjtcbmNvbnN0IF9DTEFEUiA9IFwiQ3JlYXRlTG9nQW5vbWFseURldGVjdG9yUmVxdWVzdFwiO1xuY29uc3QgX0NMQURSciA9IFwiQ3JlYXRlTG9nQW5vbWFseURldGVjdG9yUmVzcG9uc2VcIjtcbmNvbnN0IF9DTEcgPSBcIkNyZWF0ZUxvZ0dyb3VwXCI7XG5jb25zdCBfQ0xHUiA9IFwiQ3JlYXRlTG9nR3JvdXBSZXF1ZXN0XCI7XG5jb25zdCBfQ0xTID0gXCJDcmVhdGVMb2dTdHJlYW1cIjtcbmNvbnN0IF9DTFNSID0gXCJDcmVhdGVMb2dTdHJlYW1SZXF1ZXN0XCI7XG5jb25zdCBfQ1NRID0gXCJDcmVhdGVTY2hlZHVsZWRRdWVyeVwiO1xuY29uc3QgX0NTUVIgPSBcIkNyZWF0ZVNjaGVkdWxlZFF1ZXJ5UmVxdWVzdFwiO1xuY29uc3QgX0NTUVJyID0gXCJDcmVhdGVTY2hlZHVsZWRRdWVyeVJlc3BvbnNlXCI7XG5jb25zdCBfQ1NWID0gXCJDU1ZcIjtcbmNvbnN0IF9DVCA9IFwiQ29uZmlndXJhdGlvblRlbXBsYXRlXCI7XG5jb25zdCBfQ1REQ1YgPSBcIkNvbmZpZ3VyYXRpb25UZW1wbGF0ZURlbGl2ZXJ5Q29uZmlnVmFsdWVzXCI7XG5jb25zdCBfQ1RvID0gXCJDb25maWd1cmF0aW9uVGVtcGxhdGVzXCI7XG5jb25zdCBfQ1YgPSBcIkNvcHlWYWx1ZVwiO1xuY29uc3QgX0NWRSA9IFwiQ29weVZhbHVlRW50cnlcIjtcbmNvbnN0IF9DVkVvID0gXCJDb3B5VmFsdWVFbnRyaWVzXCI7XG5jb25zdCBfRCA9IFwiRGVsaXZlcnlcIjtcbmNvbnN0IF9EQUFFID0gXCJEYXRhQWxyZWFkeUFjY2VwdGVkRXhjZXB0aW9uXCI7XG5jb25zdCBfREFQID0gXCJEZWxldGVBY2NvdW50UG9saWN5XCI7XG5jb25zdCBfREFQUiA9IFwiRGVsZXRlQWNjb3VudFBvbGljeVJlcXVlc3RcIjtcbmNvbnN0IF9EQVBSZSA9IFwiRGVzY3JpYmVBY2NvdW50UG9saWNpZXNSZXF1ZXN0XCI7XG5jb25zdCBfREFQUmVzID0gXCJEZXNjcmliZUFjY291bnRQb2xpY2llc1Jlc3BvbnNlXCI7XG5jb25zdCBfREFQZSA9IFwiRGVzY3JpYmVBY2NvdW50UG9saWNpZXNcIjtcbmNvbnN0IF9EQyA9IFwiRGVzdGluYXRpb25Db25maWd1cmF0aW9uXCI7XG5jb25zdCBfRENUID0gXCJEZXNjcmliZUNvbmZpZ3VyYXRpb25UZW1wbGF0ZXNcIjtcbmNvbnN0IF9EQ1RSID0gXCJEZXNjcmliZUNvbmZpZ3VyYXRpb25UZW1wbGF0ZXNSZXF1ZXN0XCI7XG5jb25zdCBfRENUUmUgPSBcIkRlc2NyaWJlQ29uZmlndXJhdGlvblRlbXBsYXRlc1Jlc3BvbnNlXCI7XG5jb25zdCBfREQgPSBcIkRlbGl2ZXJ5RGVzdGluYXRpb25cIjtcbmNvbnN0IF9EREMgPSBcIkRlbGl2ZXJ5RGVzdGluYXRpb25Db25maWd1cmF0aW9uXCI7XG5jb25zdCBfREREID0gXCJEZWxldGVEZWxpdmVyeURlc3RpbmF0aW9uXCI7XG5jb25zdCBfREREUCA9IFwiRGVsZXRlRGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeVwiO1xuY29uc3QgX0RERFBSID0gXCJEZWxldGVEZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5UmVxdWVzdFwiO1xuY29uc3QgX0RERFIgPSBcIkRlbGV0ZURlbGl2ZXJ5RGVzdGluYXRpb25SZXF1ZXN0XCI7XG5jb25zdCBfREREUmUgPSBcIkRlc2NyaWJlRGVsaXZlcnlEZXN0aW5hdGlvbnNSZXF1ZXN0XCI7XG5jb25zdCBfREREUmVzID0gXCJEZXNjcmliZURlbGl2ZXJ5RGVzdGluYXRpb25zUmVzcG9uc2VcIjtcbmNvbnN0IF9ERERlID0gXCJEZXNjcmliZURlbGl2ZXJ5RGVzdGluYXRpb25zXCI7XG5jb25zdCBfRERQUCA9IFwiRGVsZXRlRGF0YVByb3RlY3Rpb25Qb2xpY3lcIjtcbmNvbnN0IF9ERFBQUiA9IFwiRGVsZXRlRGF0YVByb3RlY3Rpb25Qb2xpY3lSZXF1ZXN0XCI7XG5jb25zdCBfRERSID0gXCJEZWxldGVEZWxpdmVyeVJlcXVlc3RcIjtcbmNvbnN0IF9ERFJlID0gXCJEZWxldGVEZXN0aW5hdGlvblJlcXVlc3RcIjtcbmNvbnN0IF9ERFJlcyA9IFwiRGVzY3JpYmVEZWxpdmVyaWVzUmVxdWVzdFwiO1xuY29uc3QgX0REUmVzYyA9IFwiRGVzY3JpYmVEZWxpdmVyaWVzUmVzcG9uc2VcIjtcbmNvbnN0IF9ERFJlc2NyID0gXCJEZXNjcmliZURlc3RpbmF0aW9uc1JlcXVlc3RcIjtcbmNvbnN0IF9ERFJlc2NyaSA9IFwiRGVzY3JpYmVEZXN0aW5hdGlvbnNSZXNwb25zZVwiO1xuY29uc3QgX0REUyA9IFwiRGVsZXRlRGVsaXZlcnlTb3VyY2VcIjtcbmNvbnN0IF9ERFNSID0gXCJEZWxldGVEZWxpdmVyeVNvdXJjZVJlcXVlc3RcIjtcbmNvbnN0IF9ERFNSZSA9IFwiRGVzY3JpYmVEZWxpdmVyeVNvdXJjZXNSZXF1ZXN0XCI7XG5jb25zdCBfRERTUmVzID0gXCJEZXNjcmliZURlbGl2ZXJ5U291cmNlc1Jlc3BvbnNlXCI7XG5jb25zdCBfRERTZSA9IFwiRGVzY3JpYmVEZWxpdmVyeVNvdXJjZXNcIjtcbmNvbnN0IF9ERGUgPSBcIkRlbGl2ZXJ5RGVzdGluYXRpb25zXCI7XG5jb25zdCBfRERlbCA9IFwiRGVsZXRlRGVsaXZlcnlcIjtcbmNvbnN0IF9ERGVsZSA9IFwiRGVsZXRlRGVzdGluYXRpb25cIjtcbmNvbnN0IF9ERGVzID0gXCJEZXNjcmliZURlbGl2ZXJpZXNcIjtcbmNvbnN0IF9ERGVzYyA9IFwiRGVzY3JpYmVEZXN0aW5hdGlvbnNcIjtcbmNvbnN0IF9ERVQgPSBcIkRlc2NyaWJlRXhwb3J0VGFza3NcIjtcbmNvbnN0IF9ERVRSID0gXCJEZXNjcmliZUV4cG9ydFRhc2tzUmVxdWVzdFwiO1xuY29uc3QgX0RFVFJlID0gXCJEZXNjcmliZUV4cG9ydFRhc2tzUmVzcG9uc2VcIjtcbmNvbnN0IF9ERkkgPSBcIkRlc2NyaWJlRmllbGRJbmRleGVzXCI7XG5jb25zdCBfREZJUiA9IFwiRGVzY3JpYmVGaWVsZEluZGV4ZXNSZXF1ZXN0XCI7XG5jb25zdCBfREZJUmUgPSBcIkRlc2NyaWJlRmllbGRJbmRleGVzUmVzcG9uc2VcIjtcbmNvbnN0IF9ESSA9IFwiRGVsZXRlSW50ZWdyYXRpb25cIjtcbmNvbnN0IF9ESVAgPSBcIkRlbGV0ZUluZGV4UG9saWN5XCI7XG5jb25zdCBfRElQUiA9IFwiRGVsZXRlSW5kZXhQb2xpY3lSZXF1ZXN0XCI7XG5jb25zdCBfRElQUmUgPSBcIkRlbGV0ZUluZGV4UG9saWN5UmVzcG9uc2VcIjtcbmNvbnN0IF9ESVBSZXMgPSBcIkRlc2NyaWJlSW5kZXhQb2xpY2llc1JlcXVlc3RcIjtcbmNvbnN0IF9ESVBSZXNjID0gXCJEZXNjcmliZUluZGV4UG9saWNpZXNSZXNwb25zZVwiO1xuY29uc3QgX0RJUGUgPSBcIkRlc2NyaWJlSW5kZXhQb2xpY2llc1wiO1xuY29uc3QgX0RJUiA9IFwiRGVsZXRlSW50ZWdyYXRpb25SZXF1ZXN0XCI7XG5jb25zdCBfRElSZSA9IFwiRGVsZXRlSW50ZWdyYXRpb25SZXNwb25zZVwiO1xuY29uc3QgX0RJVCA9IFwiRGVzY3JpYmVJbXBvcnRUYXNrc1wiO1xuY29uc3QgX0RJVEIgPSBcIkRlc2NyaWJlSW1wb3J0VGFza0JhdGNoZXNcIjtcbmNvbnN0IF9ESVRCUiA9IFwiRGVzY3JpYmVJbXBvcnRUYXNrQmF0Y2hlc1JlcXVlc3RcIjtcbmNvbnN0IF9ESVRCUmUgPSBcIkRlc2NyaWJlSW1wb3J0VGFza0JhdGNoZXNSZXNwb25zZVwiO1xuY29uc3QgX0RJVFIgPSBcIkRlc2NyaWJlSW1wb3J0VGFza3NSZXF1ZXN0XCI7XG5jb25zdCBfRElUUmUgPSBcIkRlc2NyaWJlSW1wb3J0VGFza3NSZXNwb25zZVwiO1xuY29uc3QgX0RLID0gXCJEZWxldGVLZXlzXCI7XG5jb25zdCBfREtLID0gXCJEaXNhc3NvY2lhdGVLbXNLZXlcIjtcbmNvbnN0IF9ES0tSID0gXCJEaXNhc3NvY2lhdGVLbXNLZXlSZXF1ZXN0XCI7XG5jb25zdCBfRExBRCA9IFwiRGVsZXRlTG9nQW5vbWFseURldGVjdG9yXCI7XG5jb25zdCBfRExBRFIgPSBcIkRlbGV0ZUxvZ0Fub21hbHlEZXRlY3RvclJlcXVlc3RcIjtcbmNvbnN0IF9ETEcgPSBcIkRlbGV0ZUxvZ0dyb3VwXCI7XG5jb25zdCBfRExHUiA9IFwiRGVsZXRlTG9nR3JvdXBSZXF1ZXN0XCI7XG5jb25zdCBfRExHUmUgPSBcIkRlc2NyaWJlTG9nR3JvdXBzUmVxdWVzdFwiO1xuY29uc3QgX0RMR1JlcyA9IFwiRGVzY3JpYmVMb2dHcm91cHNSZXNwb25zZVwiO1xuY29uc3QgX0RMR2UgPSBcIkRlc2NyaWJlTG9nR3JvdXBzXCI7XG5jb25zdCBfRExTID0gXCJEZWxldGVMb2dTdHJlYW1cIjtcbmNvbnN0IF9ETFNSID0gXCJEZWxldGVMb2dTdHJlYW1SZXF1ZXN0XCI7XG5jb25zdCBfRExTUmUgPSBcIkRlc2NyaWJlTG9nU3RyZWFtc1JlcXVlc3RcIjtcbmNvbnN0IF9ETFNSZXMgPSBcIkRlc2NyaWJlTG9nU3RyZWFtc1Jlc3BvbnNlXCI7XG5jb25zdCBfRExTZSA9IFwiRGVzY3JpYmVMb2dTdHJlYW1zXCI7XG5jb25zdCBfRE1GID0gXCJEZWxldGVNZXRyaWNGaWx0ZXJcIjtcbmNvbnN0IF9ETUZSID0gXCJEZWxldGVNZXRyaWNGaWx0ZXJSZXF1ZXN0XCI7XG5jb25zdCBfRE1GUmUgPSBcIkRlc2NyaWJlTWV0cmljRmlsdGVyc1JlcXVlc3RcIjtcbmNvbnN0IF9ETUZSZXMgPSBcIkRlc2NyaWJlTWV0cmljRmlsdGVyc1Jlc3BvbnNlXCI7XG5jb25zdCBfRE1GZSA9IFwiRGVzY3JpYmVNZXRyaWNGaWx0ZXJzXCI7XG5jb25zdCBfRE5QID0gXCJEZXN0aW5hdGlvbk5hbWVQcmVmaXhcIjtcbmNvbnN0IF9EUSA9IFwiRGVzY3JpYmVRdWVyaWVzXCI7XG5jb25zdCBfRFFEID0gXCJEZWxldGVRdWVyeURlZmluaXRpb25cIjtcbmNvbnN0IF9EUURSID0gXCJEZWxldGVRdWVyeURlZmluaXRpb25SZXF1ZXN0XCI7XG5jb25zdCBfRFFEUmUgPSBcIkRlbGV0ZVF1ZXJ5RGVmaW5pdGlvblJlc3BvbnNlXCI7XG5jb25zdCBfRFFEUmVzID0gXCJEZXNjcmliZVF1ZXJ5RGVmaW5pdGlvbnNSZXF1ZXN0XCI7XG5jb25zdCBfRFFEUmVzYyA9IFwiRGVzY3JpYmVRdWVyeURlZmluaXRpb25zUmVzcG9uc2VcIjtcbmNvbnN0IF9EUURlID0gXCJEZXNjcmliZVF1ZXJ5RGVmaW5pdGlvbnNcIjtcbmNvbnN0IF9EUVIgPSBcIkRlc2NyaWJlUXVlcmllc1JlcXVlc3RcIjtcbmNvbnN0IF9EUVJlID0gXCJEZXNjcmliZVF1ZXJpZXNSZXNwb25zZVwiO1xuY29uc3QgX0RSUCA9IFwiRGVsZXRlUmVzb3VyY2VQb2xpY3lcIjtcbmNvbnN0IF9EUlBSID0gXCJEZWxldGVSZXNvdXJjZVBvbGljeVJlcXVlc3RcIjtcbmNvbnN0IF9EUlBSZSA9IFwiRGVsZXRlUmV0ZW50aW9uUG9saWN5UmVxdWVzdFwiO1xuY29uc3QgX0RSUFJlcyA9IFwiRGVzY3JpYmVSZXNvdXJjZVBvbGljaWVzUmVxdWVzdFwiO1xuY29uc3QgX0RSUFJlc2MgPSBcIkRlc2NyaWJlUmVzb3VyY2VQb2xpY2llc1Jlc3BvbnNlXCI7XG5jb25zdCBfRFJQZSA9IFwiRGVsZXRlUmV0ZW50aW9uUG9saWN5XCI7XG5jb25zdCBfRFJQZXMgPSBcIkRlc2NyaWJlUmVzb3VyY2VQb2xpY2llc1wiO1xuY29uc3QgX0RTID0gXCJEYXRhU291cmNlXCI7XG5jb25zdCBfRFNGID0gXCJEYXRhU291cmNlRmlsdGVyXCI7XG5jb25zdCBfRFNGUiA9IFwiRGVsZXRlU3Vic2NyaXB0aW9uRmlsdGVyUmVxdWVzdFwiO1xuY29uc3QgX0RTRlJlID0gXCJEZXNjcmliZVN1YnNjcmlwdGlvbkZpbHRlcnNSZXF1ZXN0XCI7XG5jb25zdCBfRFNGUmVzID0gXCJEZXNjcmliZVN1YnNjcmlwdGlvbkZpbHRlcnNSZXNwb25zZVwiO1xuY29uc3QgX0RTRlNUSSA9IFwiRGlzYXNzb2NpYXRlU291cmNlRnJvbVMzVGFibGVJbnRlZ3JhdGlvblwiO1xuY29uc3QgX0RTRlNUSVIgPSBcIkRpc2Fzc29jaWF0ZVNvdXJjZUZyb21TM1RhYmxlSW50ZWdyYXRpb25SZXF1ZXN0XCI7XG5jb25zdCBfRFNGU1RJUmkgPSBcIkRpc2Fzc29jaWF0ZVNvdXJjZUZyb21TM1RhYmxlSW50ZWdyYXRpb25SZXNwb25zZVwiO1xuY29uc3QgX0RTRmEgPSBcIkRhdGFTb3VyY2VGaWx0ZXJzXCI7XG5jb25zdCBfRFNGZSA9IFwiRGVsZXRlU3Vic2NyaXB0aW9uRmlsdGVyXCI7XG5jb25zdCBfRFNGZXMgPSBcIkRlc2NyaWJlU3Vic2NyaXB0aW9uRmlsdGVyc1wiO1xuY29uc3QgX0RTUSA9IFwiRGVsZXRlU2NoZWR1bGVkUXVlcnlcIjtcbmNvbnN0IF9EU1FSID0gXCJEZWxldGVTY2hlZHVsZWRRdWVyeVJlcXVlc3RcIjtcbmNvbnN0IF9EU1FSZSA9IFwiRGVsZXRlU2NoZWR1bGVkUXVlcnlSZXNwb25zZVwiO1xuY29uc3QgX0RTZSA9IFwiRGVsaXZlcnlTb3VyY2VcIjtcbmNvbnN0IF9EU2VsID0gXCJEZWxpdmVyeVNvdXJjZXNcIjtcbmNvbnN0IF9EVCA9IFwiRGVsZXRlVHJhbnNmb3JtZXJcIjtcbmNvbnN0IF9EVEMgPSBcIkRhdGVUaW1lQ29udmVydGVyXCI7XG5jb25zdCBfRFRSID0gXCJEZWxldGVUcmFuc2Zvcm1lclJlcXVlc3RcIjtcbmNvbnN0IF9EZSA9IFwiRGVzdGluYXRpb25cIjtcbmNvbnN0IF9EZWwgPSBcIkRlbGl2ZXJpZXNcIjtcbmNvbnN0IF9EZXMgPSBcIkRlc3RpbmF0aW9uc1wiO1xuY29uc3QgX0UgPSBcIkVudGl0eVwiO1xuY29uc3QgX0VUID0gXCJFeHBvcnRUYXNrXCI7XG5jb25zdCBfRVRFSSA9IFwiRXhwb3J0VGFza0V4ZWN1dGlvbkluZm9cIjtcbmNvbnN0IF9FVFMgPSBcIkV4cG9ydFRhc2tTdGF0dXNcIjtcbmNvbnN0IF9FVHggPSBcIkV4cG9ydFRhc2tzXCI7XG5jb25zdCBfRkQgPSBcIkZpZWxkc0RhdGFcIjtcbmNvbnN0IF9GSSA9IFwiRmllbGRJbmRleFwiO1xuY29uc3QgX0ZJaSA9IFwiRmllbGRJbmRleGVzXCI7XG5jb25zdCBfRkxFID0gXCJGaWx0ZXJlZExvZ0V2ZW50XCI7XG5jb25zdCBfRkxFUiA9IFwiRmlsdGVyTG9nRXZlbnRzUmVxdWVzdFwiO1xuY29uc3QgX0ZMRVJpID0gXCJGaWx0ZXJMb2dFdmVudHNSZXNwb25zZVwiO1xuY29uc3QgX0ZMRWkgPSBcIkZpbHRlcmVkTG9nRXZlbnRzXCI7XG5jb25zdCBfRkxFaWwgPSBcIkZpbHRlckxvZ0V2ZW50c1wiO1xuY29uc3QgX0cgPSBcIkdyb2tcIjtcbmNvbnN0IF9HRCA9IFwiR2V0RGVsaXZlcnlcIjtcbmNvbnN0IF9HREQgPSBcIkdldERlbGl2ZXJ5RGVzdGluYXRpb25cIjtcbmNvbnN0IF9HRERQID0gXCJHZXREZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5XCI7XG5jb25zdCBfR0REUFIgPSBcIkdldERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lSZXF1ZXN0XCI7XG5jb25zdCBfR0REUFJlID0gXCJHZXREZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5UmVzcG9uc2VcIjtcbmNvbnN0IF9HRERSID0gXCJHZXREZWxpdmVyeURlc3RpbmF0aW9uUmVxdWVzdFwiO1xuY29uc3QgX0dERFJlID0gXCJHZXREZWxpdmVyeURlc3RpbmF0aW9uUmVzcG9uc2VcIjtcbmNvbnN0IF9HRFBQID0gXCJHZXREYXRhUHJvdGVjdGlvblBvbGljeVwiO1xuY29uc3QgX0dEUFBSID0gXCJHZXREYXRhUHJvdGVjdGlvblBvbGljeVJlcXVlc3RcIjtcbmNvbnN0IF9HRFBQUmUgPSBcIkdldERhdGFQcm90ZWN0aW9uUG9saWN5UmVzcG9uc2VcIjtcbmNvbnN0IF9HRFIgPSBcIkdldERlbGl2ZXJ5UmVxdWVzdFwiO1xuY29uc3QgX0dEUmUgPSBcIkdldERlbGl2ZXJ5UmVzcG9uc2VcIjtcbmNvbnN0IF9HRFMgPSBcIkdldERlbGl2ZXJ5U291cmNlXCI7XG5jb25zdCBfR0RTUiA9IFwiR2V0RGVsaXZlcnlTb3VyY2VSZXF1ZXN0XCI7XG5jb25zdCBfR0RTUmUgPSBcIkdldERlbGl2ZXJ5U291cmNlUmVzcG9uc2VcIjtcbmNvbnN0IF9HSSA9IFwiR3JvdXBpbmdJZGVudGlmaWVyXCI7XG5jb25zdCBfR0lSID0gXCJHZXRJbnRlZ3JhdGlvblJlcXVlc3RcIjtcbmNvbnN0IF9HSVJlID0gXCJHZXRJbnRlZ3JhdGlvblJlc3BvbnNlXCI7XG5jb25zdCBfR0llID0gXCJHZXRJbnRlZ3JhdGlvblwiO1xuY29uc3QgX0dJciA9IFwiR3JvdXBpbmdJZGVudGlmaWVyc1wiO1xuY29uc3QgX0dMQUQgPSBcIkdldExvZ0Fub21hbHlEZXRlY3RvclwiO1xuY29uc3QgX0dMQURSID0gXCJHZXRMb2dBbm9tYWx5RGV0ZWN0b3JSZXF1ZXN0XCI7XG5jb25zdCBfR0xBRFJlID0gXCJHZXRMb2dBbm9tYWx5RGV0ZWN0b3JSZXNwb25zZVwiO1xuY29uc3QgX0dMRSA9IFwiR2V0TG9nRXZlbnRzXCI7XG5jb25zdCBfR0xFUiA9IFwiR2V0TG9nRXZlbnRzUmVxdWVzdFwiO1xuY29uc3QgX0dMRVJlID0gXCJHZXRMb2dFdmVudHNSZXNwb25zZVwiO1xuY29uc3QgX0dMRiA9IFwiR2V0TG9nRmllbGRzXCI7XG5jb25zdCBfR0xGUiA9IFwiR2V0TG9nRmllbGRzUmVxdWVzdFwiO1xuY29uc3QgX0dMRlJlID0gXCJHZXRMb2dGaWVsZHNSZXNwb25zZVwiO1xuY29uc3QgX0dMR0YgPSBcIkdldExvZ0dyb3VwRmllbGRzXCI7XG5jb25zdCBfR0xHRlIgPSBcIkdldExvZ0dyb3VwRmllbGRzUmVxdWVzdFwiO1xuY29uc3QgX0dMR0ZSZSA9IFwiR2V0TG9nR3JvdXBGaWVsZHNSZXNwb25zZVwiO1xuY29uc3QgX0dMTyA9IFwiR2V0TG9nT2JqZWN0XCI7XG5jb25zdCBfR0xPUiA9IFwiR2V0TG9nT2JqZWN0UmVxdWVzdFwiO1xuY29uc3QgX0dMT1JTID0gXCJHZXRMb2dPYmplY3RSZXNwb25zZVN0cmVhbVwiO1xuY29uc3QgX0dMT1JlID0gXCJHZXRMb2dPYmplY3RSZXNwb25zZVwiO1xuY29uc3QgX0dMUiA9IFwiR2V0TG9nUmVjb3JkXCI7XG5jb25zdCBfR0xSUiA9IFwiR2V0TG9nUmVjb3JkUmVxdWVzdFwiO1xuY29uc3QgX0dMUlJlID0gXCJHZXRMb2dSZWNvcmRSZXNwb25zZVwiO1xuY29uc3QgX0dRUiA9IFwiR2V0UXVlcnlSZXN1bHRzXCI7XG5jb25zdCBfR1FSUiA9IFwiR2V0UXVlcnlSZXN1bHRzUmVxdWVzdFwiO1xuY29uc3QgX0dRUlJlID0gXCJHZXRRdWVyeVJlc3VsdHNSZXNwb25zZVwiO1xuY29uc3QgX0dTUSA9IFwiR2V0U2NoZWR1bGVkUXVlcnlcIjtcbmNvbnN0IF9HU1FIID0gXCJHZXRTY2hlZHVsZWRRdWVyeUhpc3RvcnlcIjtcbmNvbnN0IF9HU1FIUiA9IFwiR2V0U2NoZWR1bGVkUXVlcnlIaXN0b3J5UmVxdWVzdFwiO1xuY29uc3QgX0dTUUhSZSA9IFwiR2V0U2NoZWR1bGVkUXVlcnlIaXN0b3J5UmVzcG9uc2VcIjtcbmNvbnN0IF9HU1FSID0gXCJHZXRTY2hlZHVsZWRRdWVyeVJlcXVlc3RcIjtcbmNvbnN0IF9HU1FSZSA9IFwiR2V0U2NoZWR1bGVkUXVlcnlSZXNwb25zZVwiO1xuY29uc3QgX0dUID0gXCJHZXRUcmFuc2Zvcm1lclwiO1xuY29uc3QgX0dUUiA9IFwiR2V0VHJhbnNmb3JtZXJSZXF1ZXN0XCI7XG5jb25zdCBfR1RSZSA9IFwiR2V0VHJhbnNmb3JtZXJSZXNwb25zZVwiO1xuY29uc3QgX0kgPSBcIkltcG9ydFwiO1xuY29uc3QgX0lCID0gXCJJbXBvcnRCYXRjaFwiO1xuY29uc3QgX0lCTCA9IFwiSW1wb3J0QmF0Y2hMaXN0XCI7XG5jb25zdCBfSUQgPSBcIkludGVncmF0aW9uRGV0YWlsc1wiO1xuY29uc3QgX0lGID0gXCJJbXBvcnRGaWx0ZXJcIjtcbmNvbnN0IF9JTCA9IFwiSW1wb3J0TGlzdFwiO1xuY29uc3QgX0lMRSA9IFwiSW5wdXRMb2dFdmVudFwiO1xuY29uc3QgX0lMRW4gPSBcIklucHV0TG9nRXZlbnRzXCI7XG5jb25zdCBfSU9FID0gXCJJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uXCI7XG5jb25zdCBfSVAgPSBcIkluZGV4UG9saWN5XCI7XG5jb25zdCBfSVBFID0gXCJJbnZhbGlkUGFyYW1ldGVyRXhjZXB0aW9uXCI7XG5jb25zdCBfSVBuID0gXCJJbmRleFBvbGljaWVzXCI7XG5jb25zdCBfSVMgPSBcIkltcG9ydFN0YXRpc3RpY3NcIjtcbmNvbnN0IF9JU0UgPSBcIkludGVybmFsU2VydmVyRXhjZXB0aW9uXCI7XG5jb25zdCBfSVNFbiA9IFwiSW50ZXJuYWxTdHJlYW1pbmdFeGNlcHRpb25cIjtcbmNvbnN0IF9JU1RFID0gXCJJbnZhbGlkU2VxdWVuY2VUb2tlbkV4Y2VwdGlvblwiO1xuY29uc3QgX0lTbiA9IFwiSW50ZWdyYXRpb25TdW1tYXJ5XCI7XG5jb25zdCBfSVNudCA9IFwiSW50ZWdyYXRpb25TdW1tYXJpZXNcIjtcbmNvbnN0IF9MQSA9IFwiTGlzdEFub21hbGllc1wiO1xuY29uc3QgX0xBTEdTID0gXCJMaXN0QWdncmVnYXRlTG9nR3JvdXBTdW1tYXJpZXNcIjtcbmNvbnN0IF9MQUxHU1IgPSBcIkxpc3RBZ2dyZWdhdGVMb2dHcm91cFN1bW1hcmllc1JlcXVlc3RcIjtcbmNvbnN0IF9MQUxHU1JpID0gXCJMaXN0QWdncmVnYXRlTG9nR3JvdXBTdW1tYXJpZXNSZXNwb25zZVwiO1xuY29uc3QgX0xBUiA9IFwiTGlzdEFub21hbGllc1JlcXVlc3RcIjtcbmNvbnN0IF9MQVJpID0gXCJMaXN0QW5vbWFsaWVzUmVzcG9uc2VcIjtcbmNvbnN0IF9MQ1MgPSBcIkxvd2VyQ2FzZVN0cmluZ1wiO1xuY29uc3QgX0xFID0gXCJMb2dFdmVudFwiO1xuY29uc3QgX0xFRSA9IFwiTGltaXRFeGNlZWRlZEV4Y2VwdGlvblwiO1xuY29uc3QgX0xGTCA9IFwiTG9nRmllbGRzTGlzdFwiO1xuY29uc3QgX0xGTEkgPSBcIkxvZ0ZpZWxkc0xpc3RJdGVtXCI7XG5jb25zdCBfTEZUID0gXCJMb2dGaWVsZFR5cGVcIjtcbmNvbnN0IF9MRyA9IFwiTG9nR3JvdXBcIjtcbmNvbnN0IF9MR0YgPSBcIkxvZ0dyb3VwRmllbGRcIjtcbmNvbnN0IF9MR0ZMID0gXCJMb2dHcm91cEZpZWxkTGlzdFwiO1xuY29uc3QgX0xHUyA9IFwiTG9nR3JvdXBTdW1tYXJ5XCI7XG5jb25zdCBfTEdTbyA9IFwiTG9nR3JvdXBTdW1tYXJpZXNcIjtcbmNvbnN0IF9MR28gPSBcIkxvZ0dyb3Vwc1wiO1xuY29uc3QgX0xJID0gXCJMaXN0SW50ZWdyYXRpb25zXCI7XG5jb25zdCBfTElSID0gXCJMaXN0SW50ZWdyYXRpb25zUmVxdWVzdFwiO1xuY29uc3QgX0xJUmkgPSBcIkxpc3RJbnRlZ3JhdGlvbnNSZXNwb25zZVwiO1xuY29uc3QgX0xMQUQgPSBcIkxpc3RMb2dBbm9tYWx5RGV0ZWN0b3JzXCI7XG5jb25zdCBfTExBRFIgPSBcIkxpc3RMb2dBbm9tYWx5RGV0ZWN0b3JzUmVxdWVzdFwiO1xuY29uc3QgX0xMQURSaSA9IFwiTGlzdExvZ0Fub21hbHlEZXRlY3RvcnNSZXNwb25zZVwiO1xuY29uc3QgX0xMRyA9IFwiTGlzdExvZ0dyb3Vwc1wiO1xuY29uc3QgX0xMR0ZRID0gXCJMaXN0TG9nR3JvdXBzRm9yUXVlcnlcIjtcbmNvbnN0IF9MTEdGUVIgPSBcIkxpc3RMb2dHcm91cHNGb3JRdWVyeVJlcXVlc3RcIjtcbmNvbnN0IF9MTEdGUVJpID0gXCJMaXN0TG9nR3JvdXBzRm9yUXVlcnlSZXNwb25zZVwiO1xuY29uc3QgX0xMR1IgPSBcIkxpc3RMb2dHcm91cHNSZXF1ZXN0XCI7XG5jb25zdCBfTExHUmkgPSBcIkxpc3RMb2dHcm91cHNSZXNwb25zZVwiO1xuY29uc3QgX0xTID0gXCJMb2dTdHJlYW1cIjtcbmNvbnN0IF9MU0ZTVEkgPSBcIkxpc3RTb3VyY2VzRm9yUzNUYWJsZUludGVncmF0aW9uXCI7XG5jb25zdCBfTFNGU1RJUiA9IFwiTGlzdFNvdXJjZXNGb3JTM1RhYmxlSW50ZWdyYXRpb25SZXF1ZXN0XCI7XG5jb25zdCBfTFNGU1RJUmkgPSBcIkxpc3RTb3VyY2VzRm9yUzNUYWJsZUludGVncmF0aW9uUmVzcG9uc2VcIjtcbmNvbnN0IF9MU1EgPSBcIkxpc3RTY2hlZHVsZWRRdWVyaWVzXCI7XG5jb25zdCBfTFNRUiA9IFwiTGlzdFNjaGVkdWxlZFF1ZXJpZXNSZXF1ZXN0XCI7XG5jb25zdCBfTFNRUmkgPSBcIkxpc3RTY2hlZHVsZWRRdWVyaWVzUmVzcG9uc2VcIjtcbmNvbnN0IF9MU28gPSBcIkxvZ1NhbXBsZXNcIjtcbmNvbnN0IF9MU29nID0gXCJMb2dTdHJlYW1zXCI7XG5jb25zdCBfTFRGUiA9IFwiTGlzdFRhZ3NGb3JSZXNvdXJjZVwiO1xuY29uc3QgX0xURlJSID0gXCJMaXN0VGFnc0ZvclJlc291cmNlUmVxdWVzdFwiO1xuY29uc3QgX0xURlJSaSA9IFwiTGlzdFRhZ3NGb3JSZXNvdXJjZVJlc3BvbnNlXCI7XG5jb25zdCBfTFRMRyA9IFwiTGlzdFRhZ3NMb2dHcm91cFwiO1xuY29uc3QgX0xUTEdSID0gXCJMaXN0VGFnc0xvZ0dyb3VwUmVxdWVzdFwiO1xuY29uc3QgX0xUTEdSaSA9IFwiTGlzdFRhZ3NMb2dHcm91cFJlc3BvbnNlXCI7XG5jb25zdCBfTFRNID0gXCJMaXN0VG9NYXBcIjtcbmNvbnN0IF9MVFNMRSA9IFwiTGl2ZVRhaWxTZXNzaW9uTG9nRXZlbnRcIjtcbmNvbnN0IF9MVFNNID0gXCJMaXZlVGFpbFNlc3Npb25NZXRhZGF0YVwiO1xuY29uc3QgX0xUU1IgPSBcIkxpdmVUYWlsU2Vzc2lvblJlc3VsdHNcIjtcbmNvbnN0IF9MVFNTID0gXCJMaXZlVGFpbFNlc3Npb25TdGFydFwiO1xuY29uc3QgX0xUU1UgPSBcIkxpdmVUYWlsU2Vzc2lvblVwZGF0ZVwiO1xuY29uc3QgX01GID0gXCJNZXRyaWNGaWx0ZXJcIjtcbmNvbnN0IF9NRk0gPSBcIk1ldHJpY0ZpbHRlck1hdGNoZXNcIjtcbmNvbnN0IF9NRk1SID0gXCJNZXRyaWNGaWx0ZXJNYXRjaFJlY29yZFwiO1xuY29uc3QgX01GZSA9IFwiTWV0cmljRmlsdGVyc1wiO1xuY29uc3QgX01LID0gXCJNb3ZlS2V5c1wiO1xuY29uc3QgX01LRSA9IFwiTW92ZUtleUVudHJ5XCI7XG5jb25zdCBfTUtFbyA9IFwiTW92ZUtleUVudHJpZXNcIjtcbmNvbnN0IF9NUUUgPSBcIk1hbGZvcm1lZFF1ZXJ5RXhjZXB0aW9uXCI7XG5jb25zdCBfTVQgPSBcIk1ldHJpY1RyYW5zZm9ybWF0aW9uXCI7XG5jb25zdCBfTVRlID0gXCJNZXRyaWNUcmFuc2Zvcm1hdGlvbnNcIjtcbmNvbnN0IF9PQUUgPSBcIk9wZXJhdGlvbkFib3J0ZWRFeGNlcHRpb25cIjtcbmNvbnN0IF9PTEUgPSBcIk91dHB1dExvZ0V2ZW50XCI7XG5jb25zdCBfT0xFdSA9IFwiT3V0cHV0TG9nRXZlbnRzXCI7XG5jb25zdCBfT1NBID0gXCJPcGVuU2VhcmNoQXBwbGljYXRpb25cIjtcbmNvbnN0IF9PU0MgPSBcIk9wZW5TZWFyY2hDb2xsZWN0aW9uXCI7XG5jb25zdCBfT1NEQVAgPSBcIk9wZW5TZWFyY2hEYXRhQWNjZXNzUG9saWN5XCI7XG5jb25zdCBfT1NEUyA9IFwiT3BlblNlYXJjaERhdGFTb3VyY2VcIjtcbmNvbnN0IF9PU0VQID0gXCJPcGVuU2VhcmNoRW5jcnlwdGlvblBvbGljeVwiO1xuY29uc3QgX09TSUQgPSBcIk9wZW5TZWFyY2hJbnRlZ3JhdGlvbkRldGFpbHNcIjtcbmNvbnN0IF9PU0xQID0gXCJPcGVuU2VhcmNoTGlmZWN5Y2xlUG9saWN5XCI7XG5jb25zdCBfT1NOUCA9IFwiT3BlblNlYXJjaE5ldHdvcmtQb2xpY3lcIjtcbmNvbnN0IF9PU1JDID0gXCJPcGVuU2VhcmNoUmVzb3VyY2VDb25maWdcIjtcbmNvbnN0IF9PU1JTID0gXCJPcGVuU2VhcmNoUmVzb3VyY2VTdGF0dXNcIjtcbmNvbnN0IF9PU1cgPSBcIk9wZW5TZWFyY2hXb3Jrc3BhY2VcIjtcbmNvbnN0IF9QID0gXCJQb2xpY3lcIjtcbmNvbnN0IF9QQVAgPSBcIlB1dEFjY291bnRQb2xpY3lcIjtcbmNvbnN0IF9QQVBSID0gXCJQdXRBY2NvdW50UG9saWN5UmVxdWVzdFwiO1xuY29uc3QgX1BBUFJ1ID0gXCJQdXRBY2NvdW50UG9saWN5UmVzcG9uc2VcIjtcbmNvbnN0IF9QQyA9IFwiUGFyc2VDbG91ZGZyb250XCI7XG5jb25zdCBfUEQgPSBcIlB1dERlc3RpbmF0aW9uXCI7XG5jb25zdCBfUEREID0gXCJQdXREZWxpdmVyeURlc3RpbmF0aW9uXCI7XG5jb25zdCBfUEREUCA9IFwiUHV0RGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeVwiO1xuY29uc3QgX1BERFBSID0gXCJQdXREZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5UmVxdWVzdFwiO1xuY29uc3QgX1BERFBSdSA9IFwiUHV0RGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeVJlc3BvbnNlXCI7XG5jb25zdCBfUEREUiA9IFwiUHV0RGVsaXZlcnlEZXN0aW5hdGlvblJlcXVlc3RcIjtcbmNvbnN0IF9QRERSdSA9IFwiUHV0RGVsaXZlcnlEZXN0aW5hdGlvblJlc3BvbnNlXCI7XG5jb25zdCBfUERQID0gXCJQdXREZXN0aW5hdGlvblBvbGljeVwiO1xuY29uc3QgX1BEUFAgPSBcIlB1dERhdGFQcm90ZWN0aW9uUG9saWN5XCI7XG5jb25zdCBfUERQUFIgPSBcIlB1dERhdGFQcm90ZWN0aW9uUG9saWN5UmVxdWVzdFwiO1xuY29uc3QgX1BEUFBSdSA9IFwiUHV0RGF0YVByb3RlY3Rpb25Qb2xpY3lSZXNwb25zZVwiO1xuY29uc3QgX1BEUFIgPSBcIlB1dERlc3RpbmF0aW9uUG9saWN5UmVxdWVzdFwiO1xuY29uc3QgX1BEUiA9IFwiUHV0RGVzdGluYXRpb25SZXF1ZXN0XCI7XG5jb25zdCBfUERSdSA9IFwiUHV0RGVzdGluYXRpb25SZXNwb25zZVwiO1xuY29uc3QgX1BEUyA9IFwiUHV0RGVsaXZlcnlTb3VyY2VcIjtcbmNvbnN0IF9QRFNSID0gXCJQdXREZWxpdmVyeVNvdXJjZVJlcXVlc3RcIjtcbmNvbnN0IF9QRFNSdSA9IFwiUHV0RGVsaXZlcnlTb3VyY2VSZXNwb25zZVwiO1xuY29uc3QgX1BJID0gXCJQdXRJbnRlZ3JhdGlvblwiO1xuY29uc3QgX1BJUCA9IFwiUHV0SW5kZXhQb2xpY3lcIjtcbmNvbnN0IF9QSVBSID0gXCJQdXRJbmRleFBvbGljeVJlcXVlc3RcIjtcbmNvbnN0IF9QSVBSdSA9IFwiUHV0SW5kZXhQb2xpY3lSZXNwb25zZVwiO1xuY29uc3QgX1BJUiA9IFwiUHV0SW50ZWdyYXRpb25SZXF1ZXN0XCI7XG5jb25zdCBfUElSdSA9IFwiUHV0SW50ZWdyYXRpb25SZXNwb25zZVwiO1xuY29uc3QgX1BKU09OID0gXCJQYXJzZUpTT05cIjtcbmNvbnN0IF9QS1YgPSBcIlBhcnNlS2V5VmFsdWVcIjtcbmNvbnN0IF9QTEUgPSBcIlB1dExvZ0V2ZW50c1wiO1xuY29uc3QgX1BMRVIgPSBcIlB1dExvZ0V2ZW50c1JlcXVlc3RcIjtcbmNvbnN0IF9QTEVSdSA9IFwiUHV0TG9nRXZlbnRzUmVzcG9uc2VcIjtcbmNvbnN0IF9QTEdEUCA9IFwiUHV0TG9nR3JvdXBEZWxldGlvblByb3RlY3Rpb25cIjtcbmNvbnN0IF9QTEdEUFIgPSBcIlB1dExvZ0dyb3VwRGVsZXRpb25Qcm90ZWN0aW9uUmVxdWVzdFwiO1xuY29uc3QgX1BNRiA9IFwiUHV0TWV0cmljRmlsdGVyXCI7XG5jb25zdCBfUE1GUiA9IFwiUHV0TWV0cmljRmlsdGVyUmVxdWVzdFwiO1xuY29uc3QgX1BQID0gXCJQYXJzZVBvc3RncmVzXCI7XG5jb25zdCBfUFFEID0gXCJQdXRRdWVyeURlZmluaXRpb25cIjtcbmNvbnN0IF9QUURSID0gXCJQdXRRdWVyeURlZmluaXRpb25SZXF1ZXN0XCI7XG5jb25zdCBfUFFEUnUgPSBcIlB1dFF1ZXJ5RGVmaW5pdGlvblJlc3BvbnNlXCI7XG5jb25zdCBfUFIgPSBcIlBhcnNlUm91dGU1M1wiO1xuY29uc3QgX1BSUCA9IFwiUHV0UmVzb3VyY2VQb2xpY3lcIjtcbmNvbnN0IF9QUlBSID0gXCJQdXRSZXNvdXJjZVBvbGljeVJlcXVlc3RcIjtcbmNvbnN0IF9QUlBSdSA9IFwiUHV0UmVzb3VyY2VQb2xpY3lSZXNwb25zZVwiO1xuY29uc3QgX1BSUFJ1dCA9IFwiUHV0UmV0ZW50aW9uUG9saWN5UmVxdWVzdFwiO1xuY29uc3QgX1BSUHUgPSBcIlB1dFJldGVudGlvblBvbGljeVwiO1xuY29uc3QgX1BTRiA9IFwiUHV0U3Vic2NyaXB0aW9uRmlsdGVyXCI7XG5jb25zdCBfUFNGUiA9IFwiUHV0U3Vic2NyaXB0aW9uRmlsdGVyUmVxdWVzdFwiO1xuY29uc3QgX1BUID0gXCJQYXR0ZXJuVG9rZW5cIjtcbmNvbnN0IF9QVE9DU0YgPSBcIlBhcnNlVG9PQ1NGXCI7XG5jb25zdCBfUFRSID0gXCJQdXRUcmFuc2Zvcm1lclJlcXVlc3RcIjtcbmNvbnN0IF9QVGEgPSBcIlBhdHRlcm5Ub2tlbnNcIjtcbmNvbnN0IF9QVHUgPSBcIlB1dFRyYW5zZm9ybWVyXCI7XG5jb25zdCBfUFZQQyA9IFwiUGFyc2VWUENcIjtcbmNvbnN0IF9QV0FGID0gXCJQYXJzZVdBRlwiO1xuY29uc3QgX1ByID0gXCJQcm9jZXNzb3JcIjtcbmNvbnN0IF9Qcm8gPSBcIlByb2Nlc3NvcnNcIjtcbmNvbnN0IF9RQ0UgPSBcIlF1ZXJ5Q29tcGlsZUVycm9yXCI7XG5jb25zdCBfUUNFTCA9IFwiUXVlcnlDb21waWxlRXJyb3JMb2NhdGlvblwiO1xuY29uc3QgX1FEID0gXCJRdWVyeURlZmluaXRpb25cIjtcbmNvbnN0IF9RREwgPSBcIlF1ZXJ5RGVmaW5pdGlvbkxpc3RcIjtcbmNvbnN0IF9RSSA9IFwiUXVlcnlJbmZvXCI7XG5jb25zdCBfUUlMID0gXCJRdWVyeUluZm9MaXN0XCI7XG5jb25zdCBfUVIgPSBcIlF1ZXJ5UmVzdWx0c1wiO1xuY29uc3QgX1FTID0gXCJRdWVyeVN0YXRpc3RpY3NcIjtcbmNvbnN0IF9SQUVFID0gXCJSZXNvdXJjZUFscmVhZHlFeGlzdHNFeGNlcHRpb25cIjtcbmNvbnN0IF9SQyA9IFwiUmVzb3VyY2VDb25maWdcIjtcbmNvbnN0IF9SRUkgPSBcIlJlamVjdGVkRW50aXR5SW5mb1wiO1xuY29uc3QgX1JGID0gXCJSZWNvcmRGaWVsZFwiO1xuY29uc3QgX1JGZSA9IFwiUmVzdWx0RmllbGRcIjtcbmNvbnN0IF9SSyA9IFwiUmVuYW1lS2V5c1wiO1xuY29uc3QgX1JLRSA9IFwiUmVuYW1lS2V5RW50cnlcIjtcbmNvbnN0IF9SS0VlID0gXCJSZW5hbWVLZXlFbnRyaWVzXCI7XG5jb25zdCBfUkxFSSA9IFwiUmVqZWN0ZWRMb2dFdmVudHNJbmZvXCI7XG5jb25zdCBfUk5GRSA9IFwiUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvblwiO1xuY29uc3QgX1JQID0gXCJSZXNvdXJjZVBvbGljeVwiO1xuY29uc3QgX1JQZSA9IFwiUmVzb3VyY2VQb2xpY2llc1wiO1xuY29uc3QgX1JSID0gXCJSZXN1bHRSb3dzXCI7XG5jb25zdCBfU0MgPSBcIlMzQ29uZmlndXJhdGlvblwiO1xuY29uc3QgX1NEQyA9IFwiUzNEZWxpdmVyeUNvbmZpZ3VyYXRpb25cIjtcbmNvbnN0IF9TRiA9IFwiU3Vic2NyaXB0aW9uRmlsdGVyXCI7XG5jb25zdCBfU0Z1ID0gXCJTdWJzY3JpcHRpb25GaWx0ZXJzXCI7XG5jb25zdCBfU0xTID0gXCJTZWFyY2hlZExvZ1N0cmVhbVwiO1xuY29uc3QgX1NMU2UgPSBcIlNlYXJjaGVkTG9nU3RyZWFtc1wiO1xuY29uc3QgX1NMVCA9IFwiU3RhcnRMaXZlVGFpbFwiO1xuY29uc3QgX1NMVFIgPSBcIlN0YXJ0TGl2ZVRhaWxSZXF1ZXN0XCI7XG5jb25zdCBfU0xUUlMgPSBcIlN0YXJ0TGl2ZVRhaWxSZXNwb25zZVN0cmVhbVwiO1xuY29uc3QgX1NMVFJ0ID0gXCJTdGFydExpdmVUYWlsUmVzcG9uc2VcIjtcbmNvbnN0IF9TUCA9IFwiU3VwcHJlc3Npb25QZXJpb2RcIjtcbmNvbnN0IF9TUSA9IFwiU3RhcnRRdWVyeVwiO1xuY29uc3QgX1NRRCA9IFwiU2NoZWR1bGVkUXVlcnlEZXN0aW5hdGlvblwiO1xuY29uc3QgX1NRREwgPSBcIlNjaGVkdWxlZFF1ZXJ5RGVzdGluYXRpb25MaXN0XCI7XG5jb25zdCBfU1FFRSA9IFwiU2VydmljZVF1b3RhRXhjZWVkZWRFeGNlcHRpb25cIjtcbmNvbnN0IF9TUVIgPSBcIlN0YXJ0UXVlcnlSZXF1ZXN0XCI7XG5jb25zdCBfU1FSdCA9IFwiU3RhcnRRdWVyeVJlc3BvbnNlXCI7XG5jb25zdCBfU1FSdG8gPSBcIlN0b3BRdWVyeVJlcXVlc3RcIjtcbmNvbnN0IF9TUVJ0b3AgPSBcIlN0b3BRdWVyeVJlc3BvbnNlXCI7XG5jb25zdCBfU1FTID0gXCJTY2hlZHVsZWRRdWVyeVN1bW1hcnlcIjtcbmNvbnN0IF9TUVNMID0gXCJTY2hlZHVsZWRRdWVyeVN1bW1hcnlMaXN0XCI7XG5jb25zdCBfU1F0ID0gXCJTdG9wUXVlcnlcIjtcbmNvbnN0IF9TUyA9IFwiU3BsaXRTdHJpbmdcIjtcbmNvbnN0IF9TU0UgPSBcIlNlc3Npb25TdHJlYW1pbmdFeGNlcHRpb25cIjtcbmNvbnN0IF9TU0VwID0gXCJTcGxpdFN0cmluZ0VudHJ5XCI7XG5jb25zdCBfU1NFcGwgPSBcIlNwbGl0U3RyaW5nRW50cmllc1wiO1xuY29uc3QgX1NTRXUgPSBcIlN1YnN0aXR1dGVTdHJpbmdFbnRyeVwiO1xuY29uc3QgX1NTRXViID0gXCJTdWJzdGl0dXRlU3RyaW5nRW50cmllc1wiO1xuY29uc3QgX1NTdSA9IFwiU3Vic3RpdHV0ZVN0cmluZ1wiO1xuY29uc3QgX1NURSA9IFwiU2Vzc2lvblRpbWVvdXRFeGNlcHRpb25cIjtcbmNvbnN0IF9TVElTID0gXCJTM1RhYmxlSW50ZWdyYXRpb25Tb3VyY2VcIjtcbmNvbnN0IF9TVElTYSA9IFwiUzNUYWJsZUludGVncmF0aW9uU291cmNlc1wiO1xuY29uc3QgX1NVRSA9IFwiU2VydmljZVVuYXZhaWxhYmxlRXhjZXB0aW9uXCI7XG5jb25zdCBfVEMgPSBcIlR5cGVDb252ZXJ0ZXJcIjtcbmNvbnN0IF9UQ0UgPSBcIlR5cGVDb252ZXJ0ZXJFbnRyeVwiO1xuY29uc3QgX1RDRXkgPSBcIlR5cGVDb252ZXJ0ZXJFbnRyaWVzXCI7XG5jb25zdCBfVEUgPSBcIlRocm90dGxpbmdFeGNlcHRpb25cIjtcbmNvbnN0IF9USFIgPSBcIlRyaWdnZXJIaXN0b3J5UmVjb3JkXCI7XG5jb25zdCBfVEhSTCA9IFwiVHJpZ2dlckhpc3RvcnlSZWNvcmRMaXN0XCI7XG5jb25zdCBfVEwgPSBcIlRyYW5zZm9ybWVkTG9nc1wiO1xuY29uc3QgX1RMRyA9IFwiVGFnTG9nR3JvdXBcIjtcbmNvbnN0IF9UTEdSID0gXCJUYWdMb2dHcm91cFJlcXVlc3RcIjtcbmNvbnN0IF9UTFIgPSBcIlRyYW5zZm9ybWVkTG9nUmVjb3JkXCI7XG5jb25zdCBfVE1GID0gXCJUZXN0TWV0cmljRmlsdGVyXCI7XG5jb25zdCBfVE1GUiA9IFwiVGVzdE1ldHJpY0ZpbHRlclJlcXVlc3RcIjtcbmNvbnN0IF9UTUZSZSA9IFwiVGVzdE1ldHJpY0ZpbHRlclJlc3BvbnNlXCI7XG5jb25zdCBfVE1URSA9IFwiVG9vTWFueVRhZ3NFeGNlcHRpb25cIjtcbmNvbnN0IF9UUiA9IFwiVGFnUmVzb3VyY2VcIjtcbmNvbnN0IF9UUlIgPSBcIlRhZ1Jlc291cmNlUmVxdWVzdFwiO1xuY29uc3QgX1RTID0gXCJUcmltU3RyaW5nXCI7XG5jb25zdCBfVFQgPSBcIlRlc3RUcmFuc2Zvcm1lclwiO1xuY29uc3QgX1RUUiA9IFwiVGVzdFRyYW5zZm9ybWVyUmVxdWVzdFwiO1xuY29uc3QgX1RUUmUgPSBcIlRlc3RUcmFuc2Zvcm1lclJlc3BvbnNlXCI7XG5jb25zdCBfVUEgPSBcIlVwZGF0ZUFub21hbHlcIjtcbmNvbnN0IF9VQVIgPSBcIlVwZGF0ZUFub21hbHlSZXF1ZXN0XCI7XG5jb25zdCBfVUNFID0gXCJVbnJlY29nbml6ZWRDbGllbnRFeGNlcHRpb25cIjtcbmNvbnN0IF9VQ1MgPSBcIlVwcGVyQ2FzZVN0cmluZ1wiO1xuY29uc3QgX1VEQyA9IFwiVXBkYXRlRGVsaXZlcnlDb25maWd1cmF0aW9uXCI7XG5jb25zdCBfVURDUiA9IFwiVXBkYXRlRGVsaXZlcnlDb25maWd1cmF0aW9uUmVxdWVzdFwiO1xuY29uc3QgX1VEQ1JwID0gXCJVcGRhdGVEZWxpdmVyeUNvbmZpZ3VyYXRpb25SZXNwb25zZVwiO1xuY29uc3QgX1VMQUQgPSBcIlVwZGF0ZUxvZ0Fub21hbHlEZXRlY3RvclwiO1xuY29uc3QgX1VMQURSID0gXCJVcGRhdGVMb2dBbm9tYWx5RGV0ZWN0b3JSZXF1ZXN0XCI7XG5jb25zdCBfVUxHID0gXCJVbnRhZ0xvZ0dyb3VwXCI7XG5jb25zdCBfVUxHUiA9IFwiVW50YWdMb2dHcm91cFJlcXVlc3RcIjtcbmNvbnN0IF9VUiA9IFwiVW50YWdSZXNvdXJjZVwiO1xuY29uc3QgX1VSUiA9IFwiVW50YWdSZXNvdXJjZVJlcXVlc3RcIjtcbmNvbnN0IF9VU1EgPSBcIlVwZGF0ZVNjaGVkdWxlZFF1ZXJ5XCI7XG5jb25zdCBfVVNRUiA9IFwiVXBkYXRlU2NoZWR1bGVkUXVlcnlSZXF1ZXN0XCI7XG5jb25zdCBfVVNRUnAgPSBcIlVwZGF0ZVNjaGVkdWxlZFF1ZXJ5UmVzcG9uc2VcIjtcbmNvbnN0IF9WRSA9IFwiVmFsaWRhdGlvbkV4Y2VwdGlvblwiO1xuY29uc3QgX2EgPSBcImFjdGl2ZVwiO1xuY29uc3QgX2FBID0gXCJhcHBsaWNhdGlvbkFyblwiO1xuY29uc3QgX2FBRkFWTERGUiA9IFwiYWxsb3dlZEFjdGlvbkZvckFsbG93VmVuZGVkTG9nc0RlbGl2ZXJ5Rm9yUmVzb3VyY2VcIjtcbmNvbnN0IF9hRCA9IFwiYW5vbWFseURldGVjdG9yc1wiO1xuY29uc3QgX2FEQSA9IFwiYW5vbWFseURldGVjdG9yQXJuXCI7XG5jb25zdCBfYURTID0gXCJhbm9tYWx5RGV0ZWN0b3JTdGF0dXNcIjtcbmNvbnN0IF9hRSA9IFwiYXBwbGljYXRpb25FbmRwb2ludFwiO1xuY29uc3QgX2FGID0gXCJhbGxvd2VkRmllbGRzXCI7XG5jb25zdCBfYUZEID0gXCJhbGxvd2VkRmllbGREZWxpbWl0ZXJzXCI7XG5jb25zdCBfYUkgPSBcImFjY291bnRJZFwiO1xuY29uc3QgX2FJYyA9IFwiYWNjb3VudElkZW50aWZpZXJzXCI7XG5jb25zdCBfYUluID0gXCJhbm9tYWx5SWRcIjtcbmNvbnN0IF9hSXAgPSBcImFwcGxpY2F0aW9uSWRcIjtcbmNvbnN0IF9hSyA9IFwiYWRkS2V5c1wiO1xuY29uc3QgX2FMR1MgPSBcImFnZ3JlZ2F0ZUxvZ0dyb3VwU3VtbWFyaWVzXCI7XG5jb25zdCBfYU9GID0gXCJhbGxvd2VkT3V0cHV0Rm9ybWF0c1wiO1xuY29uc3QgX2FPVEwgPSBcImFwcGx5T25UcmFuc2Zvcm1lZExvZ3NcIjtcbmNvbnN0IF9hUCA9IFwiYWNjb3VudFBvbGljaWVzXCI7XG5jb25zdCBfYVBjID0gXCJhY2Nlc3NQb2xpY3lcIjtcbmNvbnN0IF9hUGNjID0gXCJhY2NvdW50UG9saWN5XCI7XG5jb25zdCBfYVNQRiA9IFwiYWxsb3dlZFN1ZmZpeFBhdGhGaWVsZHNcIjtcbmNvbnN0IF9hVlQgPSBcImFub21hbHlWaXNpYmlsaXR5VGltZVwiO1xuY29uc3QgX2FuID0gXCJhbm9tYWxpZXNcIjtcbmNvbnN0IF9hcCA9IFwiYXBwbGljYXRpb25cIjtcbmNvbnN0IF9hciA9IFwiYXJuXCI7XG5jb25zdCBfYXQgPSBcImF0dHJpYnV0ZXNcIjtcbmNvbnN0IF9iID0gXCJiYXNlbGluZVwiO1xuY29uc3QgX2JJID0gXCJiYXRjaElkXCI7XG5jb25zdCBfYklTID0gXCJiYXRjaEltcG9ydFN0YXR1c1wiO1xuY29uc3QgX2JJeSA9IFwiYnl0ZXNJbXBvcnRlZFwiO1xuY29uc3QgX2JTID0gXCJieXRlc1NjYW5uZWRcIjtcbmNvbnN0IF9jID0gXCJjbGllbnRcIjtcbmNvbnN0IF9jQSA9IFwiY29sbGVjdGlvbkFyblwiO1xuY29uc3QgX2NFID0gXCJjb2xsZWN0aW9uRW5kcG9pbnRcIjtcbmNvbnN0IF9jVCA9IFwiY3JlYXRpb25UaW1lXCI7XG5jb25zdCBfY1RTID0gXCJjcmVhdGlvblRpbWVTdGFtcFwiO1xuY29uc3QgX2NUU3IgPSBcImNyZWF0ZWRUaW1lU3RhbXBcIjtcbmNvbnN0IF9jVGwgPSBcImNsaWVudFRva2VuXCI7XG5jb25zdCBfY1RvID0gXCJjb25maWd1cmF0aW9uVGVtcGxhdGVzXCI7XG5jb25zdCBfY1RvbSA9IFwiY29tcGxldGlvblRpbWVcIjtcbmNvbnN0IF9jVHIgPSBcImNyZWF0ZVRpbWVcIjtcbmNvbnN0IF9jViA9IFwiY29weVZhbHVlXCI7XG5jb25zdCBfY28gPSBcImNvbHVtbnNcIjtcbmNvbnN0IF9jb2QgPSBcImNvZGVcIjtcbmNvbnN0IF9jb2wgPSBcImNvbGxlY3Rpb25cIjtcbmNvbnN0IF9jcyA9IFwiY3N2XCI7XG5jb25zdCBfZCA9IFwiZGVzY3JpcHRpb25cIjtcbmNvbnN0IF9kQSA9IFwiZGVzdGluYXRpb25Bcm5cIjtcbmNvbnN0IF9kQyA9IFwiZGVzdGluYXRpb25Db25maWd1cmF0aW9uXCI7XG5jb25zdCBfZEQgPSBcImRlbGl2ZXJ5RGVzdGluYXRpb25zXCI7XG5jb25zdCBfZERBID0gXCJkZWxpdmVyeURlc3RpbmF0aW9uQXJuXCI7XG5jb25zdCBfZERDID0gXCJkZWxpdmVyeURlc3RpbmF0aW9uQ29uZmlndXJhdGlvblwiO1xuY29uc3QgX2REQ1YgPSBcImRlZmF1bHREZWxpdmVyeUNvbmZpZ1ZhbHVlc1wiO1xuY29uc3QgX2RETiA9IFwiZGVsaXZlcnlEZXN0aW5hdGlvbk5hbWVcIjtcbmNvbnN0IF9kRFAgPSBcImRlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lcIjtcbmNvbnN0IF9kRFQgPSBcImRlbGl2ZXJ5RGVzdGluYXRpb25UeXBlXCI7XG5jb25zdCBfZERUZSA9IFwiZGVsaXZlcnlEZXN0aW5hdGlvblR5cGVzXCI7XG5jb25zdCBfZERlID0gXCJkZWxpdmVyeURlc3RpbmF0aW9uXCI7XG5jb25zdCBfZEkgPSBcImRlc3RpbmF0aW9uSWRlbnRpZmllclwiO1xuY29uc3QgX2RLID0gXCJkZWxldGVLZXlzXCI7XG5jb25zdCBfZE4gPSBcImRldGVjdG9yTmFtZVwiO1xuY29uc3QgX2ROZSA9IFwiZGVzdGluYXRpb25OYW1lXCI7XG5jb25zdCBfZFAgPSBcImRlc3RpbmF0aW9uUHJlZml4XCI7XG5jb25zdCBfZFBFID0gXCJkZWxldGlvblByb3RlY3Rpb25FbmFibGVkXCI7XG5jb25zdCBfZFBTID0gXCJkYXRhUHJvdGVjdGlvblN0YXR1c1wiO1xuY29uc3QgX2RSQSA9IFwiZGVzdGluYXRpb25SZXNvdXJjZUFyblwiO1xuY29uc3QgX2RTID0gXCJkYXRhU291cmNlXCI7XG5jb25zdCBfZFNOID0gXCJkZWxpdmVyeVNvdXJjZU5hbWVcIjtcbmNvbnN0IF9kU05hID0gXCJkYXRhU291cmNlTmFtZVwiO1xuY29uc3QgX2RTUkEgPSBcImRhdGFTb3VyY2VSb2xlQXJuXCI7XG5jb25zdCBfZFNUID0gXCJkYXRhU291cmNlVHlwZVwiO1xuY29uc3QgX2RTYSA9IFwiZGF0YVNvdXJjZXNcIjtcbmNvbnN0IF9kU2UgPSBcImRlbGl2ZXJ5U291cmNlc1wiO1xuY29uc3QgX2RTZWwgPSBcImRlbGl2ZXJ5U291cmNlXCI7XG5jb25zdCBfZFQgPSBcImRlc3RpbmF0aW9uVHlwZVwiO1xuY29uc3QgX2RUQyA9IFwiZGF0ZVRpbWVDb252ZXJ0ZXJcIjtcbmNvbnN0IF9kVFAgPSBcImR5bmFtaWNUb2tlblBvc2l0aW9uXCI7XG5jb25zdCBfZFYgPSBcImRlZmF1bHRWYWx1ZVwiO1xuY29uc3QgX2RWUCA9IFwiZGFzaGJvYXJkVmlld2VyUHJpbmNpcGFsc1wiO1xuY29uc3QgX2RhID0gXCJkYXRhXCI7XG5jb25zdCBfZGUgPSBcImRlbGl2ZXJ5XCI7XG5jb25zdCBfZGVsID0gXCJkZWxpbWl0ZXJcIjtcbmNvbnN0IF9kZWxpID0gXCJkZWxpdmVyaWVzXCI7XG5jb25zdCBfZGVzID0gXCJkZXN0aW5hdGlvblwiO1xuY29uc3QgX2Rlc2MgPSBcImRlc2NlbmRpbmdcIjtcbmNvbnN0IF9kZXN0ID0gXCJkZXN0aW5hdGlvbnNcIjtcbmNvbnN0IF9kaSA9IFwiZGltZW5zaW9uc1wiO1xuY29uc3QgX2RpcyA9IFwiZGlzdHJpYnV0aW9uXCI7XG5jb25zdCBfZSA9IFwiZXJyb3JcIjtcbmNvbnN0IF9lQlMgPSBcImVzdGltYXRlZEJ5dGVzU2tpcHBlZFwiO1xuY29uc3QgX2VDTyA9IFwiZW5kQ2hhck9mZnNldFwiO1xuY29uc3QgX2VFVCA9IFwiZW5kRXZlbnRUaW1lXCI7XG5jb25zdCBfZUYgPSBcImV2YWx1YXRpb25GcmVxdWVuY3lcIjtcbmNvbnN0IF9lSENQID0gXCJlbmFibGVIaXZlQ29tcGF0aWJsZVBhdGhcIjtcbmNvbnN0IF9lSSA9IFwiZXhlY3V0aW9uSW5mb1wiO1xuY29uc3QgX2VJdiA9IFwiZXZlbnRJZFwiO1xuY29uc3QgX2VLID0gXCJlbmNyeXB0aW9uS2V5XCI7XG5jb25zdCBfZUxFRUkgPSBcImV4cGlyZWRMb2dFdmVudEVuZEluZGV4XCI7XG5jb25zdCBfZU0gPSBcImVycm9yTWVzc2FnZVwiO1xuY29uc3QgX2VNdiA9IFwiZXZlbnRNZXNzYWdlXCI7XG5jb25zdCBfZU4gPSBcImV2ZW50TnVtYmVyXCI7XG5jb25zdCBfZVAgPSBcImVuY3J5cHRpb25Qb2xpY3lcIjtcbmNvbnN0IF9lUkEgPSBcImV4ZWN1dGlvblJvbGVBcm5cIjtcbmNvbnN0IF9lUkkgPSBcImV4cGVjdGVkUmV2aXNpb25JZFwiO1xuY29uc3QgX2VSUyA9IFwiZXN0aW1hdGVkUmVjb3Jkc1NraXBwZWRcIjtcbmNvbnN0IF9lUyA9IFwiZXhlY3V0aW9uU3RhdHVzZXNcIjtcbmNvbnN0IF9lU0YgPSBcImVtaXRTeXN0ZW1GaWVsZHNcIjtcbmNvbnN0IF9lU0ZEID0gXCJlbWl0U3lzdGVtRmllbGREaW1lbnNpb25zXCI7XG5jb25zdCBfZVNUID0gXCJleHBlY3RlZFNlcXVlbmNlVG9rZW5cIjtcbmNvbnN0IF9lU3YgPSBcImV2ZW50U291cmNlXCI7XG5jb25zdCBfZVN4ID0gXCJleGVjdXRpb25TdGF0dXNcIjtcbmNvbnN0IF9lVCA9IFwiZXhwb3J0VGFza3NcIjtcbmNvbnN0IF9lVG4gPSBcImVuZFRpbWVcIjtcbmNvbnN0IF9lVHIgPSBcImVycm9yVHlwZVwiO1xuY29uc3QgX2VWID0gXCJleHRyYWN0ZWRWYWx1ZXNcIjtcbmNvbnN0IF9lbCA9IFwiZWxlbWVudFwiO1xuY29uc3QgX2VuID0gXCJlbnRyaWVzXCI7XG5jb25zdCBfZW5hID0gXCJlbmFibGVkXCI7XG5jb25zdCBfZW5kID0gXCJlbmRwb2ludFwiO1xuY29uc3QgX2VudCA9IFwiZW50aXR5XCI7XG5jb25zdCBfZW51ID0gXCJlbnVtZXJhdGlvbnNcIjtcbmNvbnN0IF9ldiA9IFwiZXZlbnRzXCI7XG5jb25zdCBfZiA9IFwiZnJvbVwiO1xuY29uc3QgX2ZEID0gXCJmaWVsZERlbGltaXRlclwiO1xuY29uc3QgX2ZFID0gXCJmbGF0dGVuZWRFbGVtZW50XCI7XG5jb25zdCBfZkVUID0gXCJmaXJzdEV2ZW50VGltZVwiO1xuY29uc3QgX2ZFVGkgPSBcImZpcnN0RXZlbnRUaW1lc3RhbXBcIjtcbmNvbnN0IF9mSSA9IFwiZmllbGRJbmRleGVzXCI7XG5jb25zdCBfZklOID0gXCJmaWVsZEluZGV4TmFtZVwiO1xuY29uc3QgX2ZJTmkgPSBcImZpZWxkSW5kZXhOYW1lc1wiO1xuY29uc3QgX2ZMR0EgPSBcImZpbHRlckxvZ0dyb3VwQXJuXCI7XG5jb25zdCBfZk4gPSBcImZpbHRlck5hbWVcIjtcbmNvbnN0IF9mTlAgPSBcImZpbHRlck5hbWVQcmVmaXhcIjtcbmNvbnN0IF9mUCA9IFwiZmlsdGVyUGF0dGVyblwiO1xuY29uc3QgX2ZTID0gXCJmaXJzdFNlZW5cIjtcbmNvbnN0IF9mU0MgPSBcImZpZWxkU2VsZWN0aW9uQ3JpdGVyaWFcIjtcbmNvbnN0IF9mU2kgPSBcImZpZWxkU3RyZWFtXCI7XG5jb25zdCBfZlUgPSBcImZvcmNlVXBkYXRlXCI7XG5jb25zdCBfZmkgPSBcImZpZWxkc1wiO1xuY29uc3QgX2ZpZSA9IFwiZmllbGRcIjtcbmNvbnN0IF9mbCA9IFwiZmxhdHRlblwiO1xuY29uc3QgX2ZvID0gXCJmb3JjZVwiO1xuY29uc3QgX2cgPSBcImdyb2tcIjtcbmNvbnN0IF9nQiA9IFwiZ3JvdXBCeVwiO1xuY29uc3QgX2dJID0gXCJncm91cGluZ0lkZW50aWZpZXJzXCI7XG5jb25zdCBfaCA9IFwiaGlzdG9ncmFtXCI7XG5jb25zdCBfaEUgPSBcImh0dHBFcnJvclwiO1xuY29uc3QgX2kgPSBcImlkZW50aWZpZXJcIjtcbmNvbnN0IF9pQSA9IFwiaW50ZWdyYXRpb25Bcm5cIjtcbmNvbnN0IF9pQiA9IFwiaW1wb3J0QmF0Y2hlc1wiO1xuY29uc3QgX2lEID0gXCJpbnRlZ3JhdGlvbkRldGFpbHNcIjtcbmNvbnN0IF9pREEgPSBcImltcG9ydERlc3RpbmF0aW9uQXJuXCI7XG5jb25zdCBfaURzID0gXCJpc0R5bmFtaWNcIjtcbmNvbnN0IF9pRiA9IFwiaW1wb3J0RmlsdGVyXCI7XG5jb25zdCBfaUkgPSBcImltcG9ydElkXCI7XG5jb25zdCBfaUxBID0gXCJpbmNsdWRlTGlua2VkQWNjb3VudHNcIjtcbmNvbnN0IF9pTiA9IFwiaW50ZWdyYXRpb25OYW1lXCI7XG5jb25zdCBfaU5QID0gXCJpbnRlZ3JhdGlvbk5hbWVQcmVmaXhcIjtcbmNvbnN0IF9pUCA9IFwiaW5kZXhQb2xpY2llc1wiO1xuY29uc3QgX2lQTFMgPSBcImlzUGF0dGVybkxldmVsU3VwcHJlc3Npb25cIjtcbmNvbnN0IF9pUG4gPSBcImluaGVyaXRlZFByb3BlcnRpZXNcIjtcbmNvbnN0IF9pUG5kID0gXCJpbmRleFBvbGljeVwiO1xuY29uc3QgX2lSQSA9IFwiaW1wb3J0Um9sZUFyblwiO1xuY29uc3QgX2lTID0gXCJpbXBvcnRTdGF0aXN0aWNzXCI7XG5jb25zdCBfaVNBID0gXCJpbXBvcnRTb3VyY2VBcm5cIjtcbmNvbnN0IF9pU20gPSBcImltcG9ydFN0YXR1c1wiO1xuY29uc3QgX2lTbiA9IFwiaW50ZWdyYXRpb25TdGF0dXNcIjtcbmNvbnN0IF9pU250ID0gXCJpbnRlZ3JhdGlvblN1bW1hcmllc1wiO1xuY29uc3QgX2lUID0gXCJpbmdlc3Rpb25UaW1lXCI7XG5jb25zdCBfaVROID0gXCJpbmZlcnJlZFRva2VuTmFtZVwiO1xuY29uc3QgX2lUbiA9IFwiaW50ZWdyYXRpb25UeXBlXCI7XG5jb25zdCBfaWQgPSBcImlkXCI7XG5jb25zdCBfaW0gPSBcImltcG9ydHNcIjtcbmNvbnN0IF9pbiA9IFwiaW50ZXJsZWF2ZWRcIjtcbmNvbnN0IF9rID0gXCJrZXlcIjtcbmNvbnN0IF9rQSA9IFwia2V5QXR0cmlidXRlc1wiO1xuY29uc3QgX2tLQSA9IFwia21zS2V5QXJuXCI7XG5jb25zdCBfa0tJID0gXCJrbXNLZXlJZFwiO1xuY29uc3QgX2tQID0gXCJrZXlQcmVmaXhcIjtcbmNvbnN0IF9rVkQgPSBcImtleVZhbHVlRGVsaW1pdGVyXCI7XG5jb25zdCBfbCA9IFwibG9jYWxlXCI7XG5jb25zdCBfbENTID0gXCJsb3dlckNhc2VTdHJpbmdcIjtcbmNvbnN0IF9sRSA9IFwibG9nRXZlbnRzXCI7XG5jb25zdCBfbEVGUCA9IFwibG9nRXZlbnRGaWx0ZXJQYXR0ZXJuXCI7XG5jb25zdCBfbEVNID0gXCJsb2dFdmVudE1lc3NhZ2VzXCI7XG5jb25zdCBfbEVTID0gXCJsYXN0RXhlY3V0aW9uU3RhdHVzXCI7XG5jb25zdCBfbEVUID0gXCJsYXN0RXZlbnRUaW1lXCI7XG5jb25zdCBfbEVUYSA9IFwibGFzdEV2ZW50VGltZXN0YW1wXCI7XG5jb25zdCBfbEYgPSBcImxvZ0ZpZWxkc1wiO1xuY29uc3QgX2xGTiA9IFwibG9nRmllbGROYW1lXCI7XG5jb25zdCBfbEZUID0gXCJsb2dGaWVsZFR5cGVcIjtcbmNvbnN0IF9sRyA9IFwibG9nR3JvdXBzXCI7XG5jb25zdCBfbEdBID0gXCJsb2dHcm91cEFyblwiO1xuY29uc3QgX2xHQUwgPSBcImxvZ0dyb3VwQXJuTGlzdFwiO1xuY29uc3QgX2xHQyA9IFwibG9nR3JvdXBDb3VudFwiO1xuY29uc3QgX2xHQ28gPSBcImxvZ0dyb3VwQ2xhc3NcIjtcbmNvbnN0IF9sR0YgPSBcImxvZ0dyb3VwRmllbGRzXCI7XG5jb25zdCBfbEdJID0gXCJsb2dHcm91cElkZW50aWZpZXJzXCI7XG5jb25zdCBfbEdJbyA9IFwibG9nR3JvdXBJZGVudGlmaWVyXCI7XG5jb25zdCBfbEdOID0gXCJsb2dHcm91cE5hbWVcIjtcbmNvbnN0IF9sR05QID0gXCJsb2dHcm91cE5hbWVQcmVmaXhcIjtcbmNvbnN0IF9sR05QbyA9IFwibG9nR3JvdXBOYW1lUGF0dGVyblwiO1xuY29uc3QgX2xHTm8gPSBcImxvZ0dyb3VwTmFtZXNcIjtcbmNvbnN0IF9sR1MgPSBcImxvZ0dyb3Vwc1NjYW5uZWRcIjtcbmNvbnN0IF9sSVQgPSBcImxhc3RJbmdlc3Rpb25UaW1lXCI7XG5jb25zdCBfbE0gPSBcImxhc3RNb2RpZmllZFwiO1xuY29uc3QgX2xNVCA9IFwibGFzdE1vZGlmaWVkVGltZVwiO1xuY29uc3QgX2xNVFMgPSBcImxhc3RNb2RpZmllZFRpbWVTdGFtcFwiO1xuY29uc3QgX2xPUCA9IFwibG9nT2JqZWN0UG9pbnRlclwiO1xuY29uc3QgX2xQID0gXCJsaWZlY3ljbGVQb2xpY3lcIjtcbmNvbnN0IF9sUiA9IFwibG9nUmVjb3JkXCI7XG5jb25zdCBfbFJQID0gXCJsb2dSZWNvcmRQb2ludGVyXCI7XG5jb25zdCBfbFMgPSBcImxhc3RTZWVuXCI7XG5jb25zdCBfbFNOID0gXCJsb2dTdHJlYW1OYW1lXCI7XG5jb25zdCBfbFNOUCA9IFwibG9nU3RyZWFtTmFtZVByZWZpeFwiO1xuY29uc3QgX2xTTlBvID0gXCJsb2dTdHJlYW1OYW1lUHJlZml4ZXNcIjtcbmNvbnN0IF9sU05vID0gXCJsb2dTdHJlYW1OYW1lc1wiO1xuY29uc3QgX2xTVCA9IFwibGFzdFNjYW5UaW1lXCI7XG5jb25zdCBfbFNvID0gXCJsb2dTYW1wbGVzXCI7XG5jb25zdCBfbFNvZyA9IFwibG9nU3RyZWFtc1wiO1xuY29uc3QgX2xUID0gXCJsb2dUeXBlXCI7XG5jb25zdCBfbFRNID0gXCJsaXN0VG9NYXBcIjtcbmNvbnN0IF9sVFQgPSBcImxhc3RUcmlnZ2VyZWRUaW1lXCI7XG5jb25zdCBfbFRvID0gXCJsb2dUeXBlc1wiO1xuY29uc3QgX2xVVCA9IFwibGFzdFVwZGF0ZWRUaW1lXCI7XG5jb25zdCBfbFVUYSA9IFwibGFzdFVwZGF0ZVRpbWVcIjtcbmNvbnN0IF9saSA9IFwibGltaXRcIjtcbmNvbnN0IF9sbyA9IFwibG9jYXRpb25cIjtcbmNvbnN0IF9tID0gXCJtZXNzYWdlXCI7XG5jb25zdCBfbUYgPSBcIm1ldHJpY0ZpbHRlcnNcIjtcbmNvbnN0IF9tRkMgPSBcIm1ldHJpY0ZpbHRlckNvdW50XCI7XG5jb25zdCBfbUsgPSBcIm1vdmVLZXlzXCI7XG5jb25zdCBfbU4gPSBcIm1ldHJpY05hbWVcIjtcbmNvbnN0IF9tTmUgPSBcIm1ldHJpY05hbWVzcGFjZVwiO1xuY29uc3QgX21QID0gXCJtYXRjaFBhdHRlcm5zXCI7XG5jb25zdCBfbVIgPSBcIm1heFJlc3VsdHNcIjtcbmNvbnN0IF9tVCA9IFwibWV0cmljVHJhbnNmb3JtYXRpb25zXCI7XG5jb25zdCBfbVYgPSBcIm1ldHJpY1ZhbHVlXCI7XG5jb25zdCBfbVZhID0gXCJtYXBwaW5nVmVyc2lvblwiO1xuY29uc3QgX21hID0gXCJtYXRjaFwiO1xuY29uc3QgX21hbiA9IFwibWFuZGF0b3J5XCI7XG5jb25zdCBfbWF0ID0gXCJtYXRjaGVzXCI7XG5jb25zdCBfbiA9IFwibmFtZVwiO1xuY29uc3QgX25CVCA9IFwibmV4dEJhY2t3YXJkVG9rZW5cIjtcbmNvbnN0IF9uRlQgPSBcIm5leHRGb3J3YXJkVG9rZW5cIjtcbmNvbnN0IF9uTVYgPSBcIm5vbk1hdGNoVmFsdWVcIjtcbmNvbnN0IF9uUCA9IFwibmV0d29ya1BvbGljeVwiO1xuY29uc3QgX25TVCA9IFwibmV4dFNlcXVlbmNlVG9rZW5cIjtcbmNvbnN0IF9uVCA9IFwibmV4dFRva2VuXCI7XG5jb25zdCBfb0IgPSBcIm9yZGVyQnlcIjtcbmNvbnN0IF9vRiA9IFwib3V0cHV0Rm9ybWF0XCI7XG5jb25zdCBfb0lFID0gXCJvdmVyd3JpdGVJZkV4aXN0c1wiO1xuY29uc3QgX29TSUQgPSBcIm9wZW5TZWFyY2hJbnRlZ3JhdGlvbkRldGFpbHNcIjtcbmNvbnN0IF9vU1JDID0gXCJvcGVuU2VhcmNoUmVzb3VyY2VDb25maWdcIjtcbmNvbnN0IF9vViA9IFwib2NzZlZlcnNpb25cIjtcbmNvbnN0IF9wID0gXCJwcmlvcml0eVwiO1xuY29uc3QgX3BDID0gXCJwYXJzZUNsb3VkZnJvbnRcIjtcbmNvbnN0IF9wRCA9IFwicG9saWN5RG9jdW1lbnRcIjtcbmNvbnN0IF9wSSA9IFwicGF0dGVybklkXCI7XG5jb25zdCBfcElyID0gXCJwcm9jZXNzZWRJZGVudGlmaWVyXCI7XG5jb25zdCBfcEpTT04gPSBcInBhcnNlSlNPTlwiO1xuY29uc3QgX3BLViA9IFwicGFyc2VLZXlWYWx1ZVwiO1xuY29uc3QgX3BOID0gXCJwb2xpY3lOYW1lXCI7XG5jb25zdCBfcFAgPSBcInBhcnNlUG9zdGdyZXNcIjtcbmNvbnN0IF9wUiA9IFwicGF0dGVyblJlZ2V4XCI7XG5jb25zdCBfcFJhID0gXCJwYXJzZVJvdXRlNTNcIjtcbmNvbnN0IF9wUyA9IFwicGF0dGVyblN0cmluZ1wiO1xuY29uc3QgX3BTbyA9IFwicG9saWN5U2NvcGVcIjtcbmNvbnN0IF9wVCA9IFwicG9saWN5VHlwZVwiO1xuY29uc3QgX3BUT0NTRiA9IFwicGFyc2VUb09DU0ZcIjtcbmNvbnN0IF9wVGEgPSBcInBhdHRlcm5Ub2tlbnNcIjtcbmNvbnN0IF9wVlBDID0gXCJwYXJzZVZQQ1wiO1xuY29uc3QgX3BXQUYgPSBcInBhcnNlV0FGXCI7XG5jb25zdCBfcGUgPSBcInBlcmNlbnRcIjtcbmNvbnN0IF9wbyA9IFwicG9saWN5XCI7XG5jb25zdCBfcSA9IFwicXVlcmllc1wiO1xuY29uc3QgX3FDID0gXCJxdW90ZUNoYXJhY3RlclwiO1xuY29uc3QgX3FDRSA9IFwicXVlcnlDb21waWxlRXJyb3JcIjtcbmNvbnN0IF9xRCA9IFwicXVlcnlEZWZpbml0aW9uc1wiO1xuY29uc3QgX3FESSA9IFwicXVlcnlEZWZpbml0aW9uSWRcIjtcbmNvbnN0IF9xRE5QID0gXCJxdWVyeURlZmluaXRpb25OYW1lUHJlZml4XCI7XG5jb25zdCBfcUkgPSBcInF1ZXJ5SWRcIjtcbmNvbnN0IF9xTCA9IFwicXVlcnlMYW5ndWFnZVwiO1xuY29uc3QgX3FTID0gXCJxdWVyeVN0cmluZ1wiO1xuY29uc3QgX3IgPSBcInJlc3VsdHNcIjtcbmNvbnN0IF9yQSA9IFwicmVzb3VyY2VBcm5cIjtcbmNvbnN0IF9yQWUgPSBcInJlc291cmNlQXJuc1wiO1xuY29uc3QgX3JBbyA9IFwicm9sZUFyblwiO1xuY29uc3QgX3JDID0gXCJyZXNvdXJjZUNvbmZpZ1wiO1xuY29uc3QgX3JEID0gXCJyZXRlbnRpb25EYXlzXCI7XG5jb25zdCBfckVJID0gXCJyZWplY3RlZEVudGl0eUluZm9cIjtcbmNvbnN0IF9yRiA9IFwicmVjb3JkRmllbGRzXCI7XG5jb25zdCBfckkgPSBcInJlc291cmNlSWRlbnRpZmllclwiO1xuY29uc3QgX3JJRCA9IFwicmV0ZW50aW9uSW5EYXlzXCI7XG5jb25zdCBfckllID0gXCJyZXF1ZXN0SWRcIjtcbmNvbnN0IF9ySWV2ID0gXCJyZXZpc2lvbklkXCI7XG5jb25zdCBfcksgPSBcInJlbmFtZUtleXNcIjtcbmNvbnN0IF9yTEVJID0gXCJyZWplY3RlZExvZ0V2ZW50c0luZm9cIjtcbmNvbnN0IF9yTSA9IFwicmVjb3Jkc01hdGNoZWRcIjtcbmNvbnN0IF9yTiA9IFwicmVzb3VyY2VOYW1lXCI7XG5jb25zdCBfclAgPSBcInJlc291cmNlUG9saWNpZXNcIjtcbmNvbnN0IF9yUGUgPSBcInJlc291cmNlUG9saWN5XCI7XG5jb25zdCBfclMgPSBcInJlY29yZHNTY2FubmVkXCI7XG5jb25zdCBfclNlID0gXCJyZXNwb25zZVN0cmVhbVwiO1xuY29uc3QgX3JUID0gXCJyZXNvdXJjZVR5cGVcIjtcbmNvbnN0IF9yVGUgPSBcInJlc291cmNlVHlwZXNcIjtcbmNvbnN0IF9yVGVuID0gXCJyZW5hbWVUb1wiO1xuY29uc3QgX3MgPSBcInNjb3BlXCI7XG5jb25zdCBfc0IgPSBcInN0b3JlZEJ5dGVzXCI7XG5jb25zdCBfc0MgPSBcInNlbGVjdGlvbkNyaXRlcmlhXCI7XG5jb25zdCBfc0NPID0gXCJzdGFydENoYXJPZmZzZXRcIjtcbmNvbnN0IF9zQ2UgPSBcInNlYXJjaGVkQ29tcGxldGVseVwiO1xuY29uc3QgX3NDbyA9IFwiczNDb25maWd1cmF0aW9uXCI7XG5jb25zdCBfc0N0ID0gXCJzdGF0dXNDb2RlXCI7XG5jb25zdCBfc0QgPSBcInN1cHByZXNzZWREYXRlXCI7XG5jb25zdCBfc0RDID0gXCJzM0RlbGl2ZXJ5Q29uZmlndXJhdGlvblwiO1xuY29uc3QgX3NFID0gXCJzY2hlZHVsZUV4cHJlc3Npb25cIjtcbmNvbnN0IF9zRVQgPSBcInNjaGVkdWxlRW5kVGltZVwiO1xuY29uc3QgX3NFVHQgPSBcInN0YXJ0RXZlbnRUaW1lXCI7XG5jb25zdCBfc0YgPSBcInN1YnNjcmlwdGlvbkZpbHRlcnNcIjtcbmNvbnN0IF9zRkggPSBcInN0YXJ0RnJvbUhlYWRcIjtcbmNvbnN0IF9zSSA9IFwic2Vzc2lvbklkXCI7XG5jb25zdCBfc0xTID0gXCJzZWFyY2hlZExvZ1N0cmVhbXNcIjtcbmNvbnN0IF9zTSA9IFwic2Vzc2lvbk1ldGFkYXRhXCI7XG5jb25zdCBfc010ID0gXCJzdGF0dXNNZXNzYWdlXCI7XG5jb25zdCBfc1AgPSBcInN1ZmZpeFBhdGhcIjtcbmNvbnN0IF9zUHUgPSBcInN1cHByZXNzaW9uUGVyaW9kXCI7XG5jb25zdCBfc1EgPSBcInNjaGVkdWxlZFF1ZXJpZXNcIjtcbmNvbnN0IF9zUUEgPSBcInNjaGVkdWxlZFF1ZXJ5QXJuXCI7XG5jb25zdCBfc1IgPSBcInNlc3Npb25SZXN1bHRzXCI7XG5jb25zdCBfc1J0ID0gXCJzdGF0dXNSZWFzb25cIjtcbmNvbnN0IF9zUyA9IFwic3VwcHJlc3Npb25TdGF0ZVwiO1xuY29uc3QgX3NTVCA9IFwic2NoZWR1bGVTdGFydFRpbWVcIjtcbmNvbnN0IF9zU2UgPSBcInNlc3Npb25TdGFydFwiO1xuY29uc3QgX3NTcCA9IFwic3BsaXRTdHJpbmdcIjtcbmNvbnN0IF9zU3UgPSBcInN1YnN0aXR1dGVTdHJpbmdcIjtcbmNvbnN0IF9zVCA9IFwic291cmNlVGltZXpvbmVcIjtcbmNvbnN0IF9zVE8gPSBcInN0YXJ0VGltZU9mZnNldFwiO1xuY29uc3QgX3NUZSA9IFwic2VxdWVuY2VUb2tlblwiO1xuY29uc3QgX3NUdCA9IFwic3RhcnRUaW1lXCI7XG5jb25zdCBfc1R1ID0gXCJzdXBwcmVzc2lvblR5cGVcIjtcbmNvbnN0IF9zVSA9IFwic3VwcHJlc3NlZFVudGlsXCI7XG5jb25zdCBfc1VlID0gXCJzZXNzaW9uVXBkYXRlXCI7XG5jb25zdCBfc1V1ID0gXCJzdXBwcmVzc2lvblVuaXRcIjtcbmNvbnN0IF9zYSA9IFwic2FtcGxlZFwiO1xuY29uc3QgX3NlID0gXCJzZXJ2aWNlXCI7XG5jb25zdCBfc2VyID0gXCJzZXJ2ZXJcIjtcbmNvbnN0IF9zbSA9IFwic21pdGh5LnRzLnNkay5zeW50aGV0aWMuY29tLmFtYXpvbmF3cy5jbG91ZHdhdGNobG9nc1wiO1xuY29uc3QgX3NvID0gXCJzb3VyY2VcIjtcbmNvbnN0IF9zb3UgPSBcInNvdXJjZXNcIjtcbmNvbnN0IF9zdCA9IFwic3RhdGVcIjtcbmNvbnN0IF9zdGEgPSBcInN0YXR1c1wiO1xuY29uc3QgX3N0YXQgPSBcInN0YXRpc3RpY3NcIjtcbmNvbnN0IF9zdHIgPSBcInN0cmVhbWluZ1wiO1xuY29uc3QgX3N1ID0gXCJzdXBwcmVzc2VkXCI7XG5jb25zdCBfc3VjID0gXCJzdWNjZXNzXCI7XG5jb25zdCBfdCA9IFwidGFyZ2V0XCI7XG5jb25zdCBfdEEgPSBcInRhcmdldEFyblwiO1xuY29uc3QgX3RDID0gXCJ0cmFuc2Zvcm1lckNvbmZpZ1wiO1xuY29uc3QgX3RDeSA9IFwidHlwZUNvbnZlcnRlclwiO1xuY29uc3QgX3RFTSA9IFwidHJhbnNmb3JtZWRFdmVudE1lc3NhZ2VcIjtcbmNvbnN0IF90RiA9IFwidGFyZ2V0Rm9ybWF0XCI7XG5jb25zdCBfdEggPSBcInRyaWdnZXJIaXN0b3J5XCI7XG5jb25zdCBfdEkgPSBcInRhc2tJZFwiO1xuY29uc3QgX3RLID0gXCJ0YWdLZXlzXCI7XG5jb25zdCBfdEwgPSBcInRyYW5zZm9ybWVkTG9nc1wiO1xuY29uc3QgX3ROID0gXCJ0YXNrTmFtZVwiO1xuY29uc3QgX3ROTEVTSSA9IFwidG9vTmV3TG9nRXZlbnRTdGFydEluZGV4XCI7XG5jb25zdCBfdE9MRUVJID0gXCJ0b29PbGRMb2dFdmVudEVuZEluZGV4XCI7XG5jb25zdCBfdFMgPSBcInRva2VuU3RyaW5nXCI7XG5jb25zdCBfdFNyID0gXCJ0cmltU3RyaW5nXCI7XG5jb25zdCBfdFQgPSBcInRhcmdldFRpbWV6b25lXCI7XG5jb25zdCBfdFRyID0gXCJ0cmlnZ2VyZWRUaW1lc3RhbXBcIjtcbmNvbnN0IF90YSA9IFwidGFnc1wiO1xuY29uc3QgX3RpID0gXCJ0aW1lem9uZVwiO1xuY29uc3QgX3RpbSA9IFwidGltZXN0YW1wXCI7XG5jb25zdCBfdGltZSA9IFwidGltZVwiO1xuY29uc3QgX3RvID0gXCJ0b1wiO1xuY29uc3QgX3R5ID0gXCJ0eXBlXCI7XG5jb25zdCBfdSA9IFwidW5tYXNrXCI7XG5jb25zdCBfdUNTID0gXCJ1cHBlckNhc2VTdHJpbmdcIjtcbmNvbnN0IF91U1QgPSBcInVwbG9hZFNlcXVlbmNlVG9rZW5cIjtcbmNvbnN0IF91biA9IFwidW5pdFwiO1xuY29uc3QgX3YgPSBcInZhbHVlXCI7XG5jb25zdCBfdksgPSBcInZhbHVlS2V5XCI7XG5jb25zdCBfdyA9IFwid29ya3NwYWNlXCI7XG5jb25zdCBfd0kgPSBcIndvcmtzcGFjZUlkXCI7XG5jb25zdCBfd0sgPSBcIndpdGhLZXlzXCI7XG5jb25zdCBuMCA9IFwiY29tLmFtYXpvbmF3cy5jbG91ZHdhdGNobG9nc1wiO1xudmFyIEFjY2Vzc0RlbmllZEV4Y2VwdGlvbiA9IFstMywgbjAsIF9BREUsIHsgW19lXTogX2MgfSwgW19tXSwgWzBdXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKEFjY2Vzc0RlbmllZEV4Y2VwdGlvbiwgQWNjZXNzRGVuaWVkRXhjZXB0aW9uJDEpO1xudmFyIEFjY291bnRQb2xpY3kgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfQVAsXG4gICAgMCxcbiAgICBbX3BOLCBfcEQsIF9sVVQsIF9wVCwgX3MsIF9zQywgX2FJXSxcbiAgICBbMCwgMCwgMSwgMCwgMCwgMCwgMF0sXG5dO1xudmFyIEFkZEtleUVudHJ5ID0gWzMsIG4wLCBfQUtFLCAwLCBbX2ssIF92LCBfb0lFXSwgWzAsIDAsIDJdXTtcbnZhciBBZGRLZXlzID0gWzMsIG4wLCBfQUssIDAsIFtfZW5dLCBbKCkgPT4gQWRkS2V5RW50cmllc11dO1xudmFyIEFnZ3JlZ2F0ZUxvZ0dyb3VwU3VtbWFyeSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9BTEdTLFxuICAgIDAsXG4gICAgW19sR0MsIF9nSV0sXG4gICAgWzEsICgpID0+IEdyb3VwaW5nSWRlbnRpZmllcnNdLFxuXTtcbnZhciBBbm9tYWx5ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0EsXG4gICAgMCxcbiAgICBbX2FJbiwgX3BJLCBfYURBLCBfcFMsIF9wUiwgX3AsIF9mUywgX2xTLCBfZCwgX2EsIF9zdCwgX2gsIF9sU28sIF9wVGEsIF9sR0FMLCBfc3UsIF9zRCwgX3NVLCBfaVBMU10sXG4gICAgWzAsIDAsIDAsIDAsIDAsIDAsIDEsIDEsIDAsIDIsIDAsIDEyOCB8IDEsICgpID0+IExvZ1NhbXBsZXMsICgpID0+IFBhdHRlcm5Ub2tlbnMsIDY0IHwgMCwgMiwgMSwgMSwgMl0sXG5dO1xudmFyIEFub21hbHlEZXRlY3RvciA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9BRCxcbiAgICAwLFxuICAgIFtfYURBLCBfZE4sIF9sR0FMLCBfZUYsIF9mUCwgX2FEUywgX2tLSSwgX2NUUywgX2xNVFMsIF9hVlRdLFxuICAgIFswLCAwLCA2NCB8IDAsIDAsIDAsIDAsIDAsIDEsIDEsIDFdLFxuXTtcbnZhciBBc3NvY2lhdGVLbXNLZXlSZXF1ZXN0ID0gWzMsIG4wLCBfQUtLUiwgMCwgW19sR04sIF9rS0ksIF9ySV0sIFswLCAwLCAwXV07XG52YXIgQXNzb2NpYXRlU291cmNlVG9TM1RhYmxlSW50ZWdyYXRpb25SZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0FTVFNUSVIsXG4gICAgMCxcbiAgICBbX2lBLCBfZFNdLFxuICAgIFswLCAoKSA9PiBEYXRhU291cmNlXSxcbl07XG52YXIgQXNzb2NpYXRlU291cmNlVG9TM1RhYmxlSW50ZWdyYXRpb25SZXNwb25zZSA9IFszLCBuMCwgX0FTVFNUSVJzLCAwLCBbX2ldLCBbMF1dO1xudmFyIENhbmNlbEV4cG9ydFRhc2tSZXF1ZXN0ID0gWzMsIG4wLCBfQ0VUUiwgMCwgW190SV0sIFswXV07XG52YXIgQ2FuY2VsSW1wb3J0VGFza1JlcXVlc3QgPSBbMywgbjAsIF9DSVRSLCAwLCBbX2lJXSwgWzBdXTtcbnZhciBDYW5jZWxJbXBvcnRUYXNrUmVzcG9uc2UgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfQ0lUUmEsXG4gICAgMCxcbiAgICBbX2lJLCBfaVMsIF9pU20sIF9jVCwgX2xVVF0sXG4gICAgWzAsICgpID0+IEltcG9ydFN0YXRpc3RpY3MsIDAsIDEsIDFdLFxuXTtcbnZhciBDb25maWd1cmF0aW9uVGVtcGxhdGUgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfQ1QsXG4gICAgMCxcbiAgICBbX3NlLCBfbFQsIF9yVCwgX2REVCwgX2REQ1YsIF9hRiwgX2FPRiwgX2FBRkFWTERGUiwgX2FGRCwgX2FTUEZdLFxuICAgIFswLCAwLCAwLCAwLCAoKSA9PiBDb25maWd1cmF0aW9uVGVtcGxhdGVEZWxpdmVyeUNvbmZpZ1ZhbHVlcywgKCkgPT4gQWxsb3dlZEZpZWxkcywgNjQgfCAwLCAwLCA2NCB8IDAsIDY0IHwgMF0sXG5dO1xudmFyIENvbmZpZ3VyYXRpb25UZW1wbGF0ZURlbGl2ZXJ5Q29uZmlnVmFsdWVzID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0NURENWLFxuICAgIDAsXG4gICAgW19yRiwgX2ZELCBfc0RDXSxcbiAgICBbNjQgfCAwLCAwLCAoKSA9PiBTM0RlbGl2ZXJ5Q29uZmlndXJhdGlvbl0sXG5dO1xudmFyIENvbmZsaWN0RXhjZXB0aW9uID0gWy0zLCBuMCwgX0NFLCB7IFtfZV06IF9jIH0sIFtfbV0sIFswXV07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihDb25mbGljdEV4Y2VwdGlvbiwgQ29uZmxpY3RFeGNlcHRpb24kMSk7XG52YXIgQ29weVZhbHVlID0gWzMsIG4wLCBfQ1YsIDAsIFtfZW5dLCBbKCkgPT4gQ29weVZhbHVlRW50cmllc11dO1xudmFyIENvcHlWYWx1ZUVudHJ5ID0gWzMsIG4wLCBfQ1ZFLCAwLCBbX3NvLCBfdCwgX29JRV0sIFswLCAwLCAyXV07XG52YXIgQ3JlYXRlRGVsaXZlcnlSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0NEUixcbiAgICAwLFxuICAgIFtfZFNOLCBfZERBLCBfckYsIF9mRCwgX3NEQywgX3RhXSxcbiAgICBbMCwgMCwgNjQgfCAwLCAwLCAoKSA9PiBTM0RlbGl2ZXJ5Q29uZmlndXJhdGlvbiwgMTI4IHwgMF0sXG5dO1xudmFyIENyZWF0ZURlbGl2ZXJ5UmVzcG9uc2UgPSBbMywgbjAsIF9DRFJyLCAwLCBbX2RlXSwgWygpID0+IERlbGl2ZXJ5XV07XG52YXIgQ3JlYXRlRXhwb3J0VGFza1JlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfQ0VUUnIsXG4gICAgMCxcbiAgICBbX3ROLCBfbEdOLCBfbFNOUCwgX2YsIF90bywgX2RlcywgX2RQXSxcbiAgICBbMCwgMCwgMCwgMSwgMSwgMCwgMF0sXG5dO1xudmFyIENyZWF0ZUV4cG9ydFRhc2tSZXNwb25zZSA9IFszLCBuMCwgX0NFVFJyZSwgMCwgW190SV0sIFswXV07XG52YXIgQ3JlYXRlSW1wb3J0VGFza1JlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfQ0lUUnIsXG4gICAgMCxcbiAgICBbX2lTQSwgX2lSQSwgX2lGXSxcbiAgICBbMCwgMCwgKCkgPT4gSW1wb3J0RmlsdGVyXSxcbl07XG52YXIgQ3JlYXRlSW1wb3J0VGFza1Jlc3BvbnNlID0gWzMsIG4wLCBfQ0lUUnJlLCAwLCBbX2lJLCBfaURBLCBfY1RdLCBbMCwgMCwgMV1dO1xudmFyIENyZWF0ZUxvZ0Fub21hbHlEZXRlY3RvclJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfQ0xBRFIsXG4gICAgMCxcbiAgICBbX2xHQUwsIF9kTiwgX2VGLCBfZlAsIF9rS0ksIF9hVlQsIF90YV0sXG4gICAgWzY0IHwgMCwgMCwgMCwgMCwgMCwgMSwgMTI4IHwgMF0sXG5dO1xudmFyIENyZWF0ZUxvZ0Fub21hbHlEZXRlY3RvclJlc3BvbnNlID0gWzMsIG4wLCBfQ0xBRFJyLCAwLCBbX2FEQV0sIFswXV07XG52YXIgQ3JlYXRlTG9nR3JvdXBSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0NMR1IsXG4gICAgMCxcbiAgICBbX2xHTiwgX2tLSSwgX3RhLCBfbEdDbywgX2RQRV0sXG4gICAgWzAsIDAsIDEyOCB8IDAsIDAsIDJdLFxuXTtcbnZhciBDcmVhdGVMb2dTdHJlYW1SZXF1ZXN0ID0gWzMsIG4wLCBfQ0xTUiwgMCwgW19sR04sIF9sU05dLCBbMCwgMF1dO1xudmFyIENyZWF0ZVNjaGVkdWxlZFF1ZXJ5UmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9DU1FSLFxuICAgIDAsXG4gICAgW19uLCBfZCwgX3FMLCBfcVMsIF9sR0ksIF9zRSwgX3RpLCBfc1RPLCBfZEMsIF9zU1QsIF9zRVQsIF9lUkEsIF9zdCwgX3RhXSxcbiAgICBbMCwgMCwgMCwgMCwgNjQgfCAwLCAwLCAwLCAxLCAoKSA9PiBEZXN0aW5hdGlvbkNvbmZpZ3VyYXRpb24sIDEsIDEsIDAsIDAsIDEyOCB8IDBdLFxuXTtcbnZhciBDcmVhdGVTY2hlZHVsZWRRdWVyeVJlc3BvbnNlID0gWzMsIG4wLCBfQ1NRUnIsIDAsIFtfc1FBLCBfc3RdLCBbMCwgMF1dO1xudmFyIENTViA9IFszLCBuMCwgX0NTViwgMCwgW19xQywgX2RlbCwgX2NvLCBfc29dLCBbMCwgMCwgNjQgfCAwLCAwXV07XG52YXIgRGF0YUFscmVhZHlBY2NlcHRlZEV4Y2VwdGlvbiA9IFstMywgbjAsIF9EQUFFLCB7IFtfZV06IF9jIH0sIFtfZVNULCBfbV0sIFswLCAwXV07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihEYXRhQWxyZWFkeUFjY2VwdGVkRXhjZXB0aW9uLCBEYXRhQWxyZWFkeUFjY2VwdGVkRXhjZXB0aW9uJDEpO1xudmFyIERhdGFTb3VyY2UgPSBbMywgbjAsIF9EUywgMCwgW19uLCBfdHldLCBbMCwgMF1dO1xudmFyIERhdGFTb3VyY2VGaWx0ZXIgPSBbMywgbjAsIF9EU0YsIDAsIFtfbiwgX3R5XSwgWzAsIDBdXTtcbnZhciBEYXRlVGltZUNvbnZlcnRlciA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9EVEMsXG4gICAgMCxcbiAgICBbX3NvLCBfdCwgX3RGLCBfbVAsIF9zVCwgX3RULCBfbF0sXG4gICAgWzAsIDAsIDAsIDY0IHwgMCwgMCwgMCwgMF0sXG5dO1xudmFyIERlbGV0ZUFjY291bnRQb2xpY3lSZXF1ZXN0ID0gWzMsIG4wLCBfREFQUiwgMCwgW19wTiwgX3BUXSwgWzAsIDBdXTtcbnZhciBEZWxldGVEYXRhUHJvdGVjdGlvblBvbGljeVJlcXVlc3QgPSBbMywgbjAsIF9ERFBQUiwgMCwgW19sR0lvXSwgWzBdXTtcbnZhciBEZWxldGVEZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5UmVxdWVzdCA9IFszLCBuMCwgX0RERFBSLCAwLCBbX2RETl0sIFswXV07XG52YXIgRGVsZXRlRGVsaXZlcnlEZXN0aW5hdGlvblJlcXVlc3QgPSBbMywgbjAsIF9ERERSLCAwLCBbX25dLCBbMF1dO1xudmFyIERlbGV0ZURlbGl2ZXJ5UmVxdWVzdCA9IFszLCBuMCwgX0REUiwgMCwgW19pZF0sIFswXV07XG52YXIgRGVsZXRlRGVsaXZlcnlTb3VyY2VSZXF1ZXN0ID0gWzMsIG4wLCBfRERTUiwgMCwgW19uXSwgWzBdXTtcbnZhciBEZWxldGVEZXN0aW5hdGlvblJlcXVlc3QgPSBbMywgbjAsIF9ERFJlLCAwLCBbX2ROZV0sIFswXV07XG52YXIgRGVsZXRlSW5kZXhQb2xpY3lSZXF1ZXN0ID0gWzMsIG4wLCBfRElQUiwgMCwgW19sR0lvXSwgWzBdXTtcbnZhciBEZWxldGVJbmRleFBvbGljeVJlc3BvbnNlID0gWzMsIG4wLCBfRElQUmUsIDAsIFtdLCBbXV07XG52YXIgRGVsZXRlSW50ZWdyYXRpb25SZXF1ZXN0ID0gWzMsIG4wLCBfRElSLCAwLCBbX2lOLCBfZm9dLCBbMCwgMl1dO1xudmFyIERlbGV0ZUludGVncmF0aW9uUmVzcG9uc2UgPSBbMywgbjAsIF9ESVJlLCAwLCBbXSwgW11dO1xudmFyIERlbGV0ZUtleXMgPSBbMywgbjAsIF9ESywgMCwgW193S10sIFs2NCB8IDBdXTtcbnZhciBEZWxldGVMb2dBbm9tYWx5RGV0ZWN0b3JSZXF1ZXN0ID0gWzMsIG4wLCBfRExBRFIsIDAsIFtfYURBXSwgWzBdXTtcbnZhciBEZWxldGVMb2dHcm91cFJlcXVlc3QgPSBbMywgbjAsIF9ETEdSLCAwLCBbX2xHTl0sIFswXV07XG52YXIgRGVsZXRlTG9nU3RyZWFtUmVxdWVzdCA9IFszLCBuMCwgX0RMU1IsIDAsIFtfbEdOLCBfbFNOXSwgWzAsIDBdXTtcbnZhciBEZWxldGVNZXRyaWNGaWx0ZXJSZXF1ZXN0ID0gWzMsIG4wLCBfRE1GUiwgMCwgW19sR04sIF9mTl0sIFswLCAwXV07XG52YXIgRGVsZXRlUXVlcnlEZWZpbml0aW9uUmVxdWVzdCA9IFszLCBuMCwgX0RRRFIsIDAsIFtfcURJXSwgWzBdXTtcbnZhciBEZWxldGVRdWVyeURlZmluaXRpb25SZXNwb25zZSA9IFszLCBuMCwgX0RRRFJlLCAwLCBbX3N1Y10sIFsyXV07XG52YXIgRGVsZXRlUmVzb3VyY2VQb2xpY3lSZXF1ZXN0ID0gWzMsIG4wLCBfRFJQUiwgMCwgW19wTiwgX3JBLCBfZVJJXSwgWzAsIDAsIDBdXTtcbnZhciBEZWxldGVSZXRlbnRpb25Qb2xpY3lSZXF1ZXN0ID0gWzMsIG4wLCBfRFJQUmUsIDAsIFtfbEdOXSwgWzBdXTtcbnZhciBEZWxldGVTY2hlZHVsZWRRdWVyeVJlcXVlc3QgPSBbMywgbjAsIF9EU1FSLCAwLCBbX2ldLCBbMF1dO1xudmFyIERlbGV0ZVNjaGVkdWxlZFF1ZXJ5UmVzcG9uc2UgPSBbMywgbjAsIF9EU1FSZSwgMCwgW10sIFtdXTtcbnZhciBEZWxldGVTdWJzY3JpcHRpb25GaWx0ZXJSZXF1ZXN0ID0gWzMsIG4wLCBfRFNGUiwgMCwgW19sR04sIF9mTl0sIFswLCAwXV07XG52YXIgRGVsZXRlVHJhbnNmb3JtZXJSZXF1ZXN0ID0gWzMsIG4wLCBfRFRSLCAwLCBbX2xHSW9dLCBbMF1dO1xudmFyIERlbGl2ZXJ5ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0QsXG4gICAgMCxcbiAgICBbX2lkLCBfYXIsIF9kU04sIF9kREEsIF9kRFQsIF9yRiwgX2ZELCBfc0RDLCBfdGFdLFxuICAgIFswLCAwLCAwLCAwLCAwLCA2NCB8IDAsIDAsICgpID0+IFMzRGVsaXZlcnlDb25maWd1cmF0aW9uLCAxMjggfCAwXSxcbl07XG52YXIgRGVsaXZlcnlEZXN0aW5hdGlvbiA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9ERCxcbiAgICAwLFxuICAgIFtfbiwgX2FyLCBfZERULCBfb0YsIF9kREMsIF90YV0sXG4gICAgWzAsIDAsIDAsIDAsICgpID0+IERlbGl2ZXJ5RGVzdGluYXRpb25Db25maWd1cmF0aW9uLCAxMjggfCAwXSxcbl07XG52YXIgRGVsaXZlcnlEZXN0aW5hdGlvbkNvbmZpZ3VyYXRpb24gPSBbMywgbjAsIF9EREMsIDAsIFtfZFJBXSwgWzBdXTtcbnZhciBEZWxpdmVyeVNvdXJjZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9EU2UsXG4gICAgMCxcbiAgICBbX24sIF9hciwgX3JBZSwgX3NlLCBfbFQsIF90YV0sXG4gICAgWzAsIDAsIDY0IHwgMCwgMCwgMCwgMTI4IHwgMF0sXG5dO1xudmFyIERlc2NyaWJlQWNjb3VudFBvbGljaWVzUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9EQVBSZSxcbiAgICAwLFxuICAgIFtfcFQsIF9wTiwgX2FJYywgX25UXSxcbiAgICBbMCwgMCwgNjQgfCAwLCAwXSxcbl07XG52YXIgRGVzY3JpYmVBY2NvdW50UG9saWNpZXNSZXNwb25zZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9EQVBSZXMsXG4gICAgMCxcbiAgICBbX2FQLCBfblRdLFxuICAgIFsoKSA9PiBBY2NvdW50UG9saWNpZXMsIDBdLFxuXTtcbnZhciBEZXNjcmliZUNvbmZpZ3VyYXRpb25UZW1wbGF0ZXNSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0RDVFIsXG4gICAgMCxcbiAgICBbX3NlLCBfbFRvLCBfclRlLCBfZERUZSwgX25ULCBfbGldLFxuICAgIFswLCA2NCB8IDAsIDY0IHwgMCwgNjQgfCAwLCAwLCAxXSxcbl07XG52YXIgRGVzY3JpYmVDb25maWd1cmF0aW9uVGVtcGxhdGVzUmVzcG9uc2UgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfRENUUmUsXG4gICAgMCxcbiAgICBbX2NUbywgX25UXSxcbiAgICBbKCkgPT4gQ29uZmlndXJhdGlvblRlbXBsYXRlcywgMF0sXG5dO1xudmFyIERlc2NyaWJlRGVsaXZlcmllc1JlcXVlc3QgPSBbMywgbjAsIF9ERFJlcywgMCwgW19uVCwgX2xpXSwgWzAsIDFdXTtcbnZhciBEZXNjcmliZURlbGl2ZXJpZXNSZXNwb25zZSA9IFszLCBuMCwgX0REUmVzYywgMCwgW19kZWxpLCBfblRdLCBbKCkgPT4gRGVsaXZlcmllcywgMF1dO1xudmFyIERlc2NyaWJlRGVsaXZlcnlEZXN0aW5hdGlvbnNSZXF1ZXN0ID0gWzMsIG4wLCBfREREUmUsIDAsIFtfblQsIF9saV0sIFswLCAxXV07XG52YXIgRGVzY3JpYmVEZWxpdmVyeURlc3RpbmF0aW9uc1Jlc3BvbnNlID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0RERFJlcyxcbiAgICAwLFxuICAgIFtfZEQsIF9uVF0sXG4gICAgWygpID0+IERlbGl2ZXJ5RGVzdGluYXRpb25zLCAwXSxcbl07XG52YXIgRGVzY3JpYmVEZWxpdmVyeVNvdXJjZXNSZXF1ZXN0ID0gWzMsIG4wLCBfRERTUmUsIDAsIFtfblQsIF9saV0sIFswLCAxXV07XG52YXIgRGVzY3JpYmVEZWxpdmVyeVNvdXJjZXNSZXNwb25zZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9ERFNSZXMsXG4gICAgMCxcbiAgICBbX2RTZSwgX25UXSxcbiAgICBbKCkgPT4gRGVsaXZlcnlTb3VyY2VzLCAwXSxcbl07XG52YXIgRGVzY3JpYmVEZXN0aW5hdGlvbnNSZXF1ZXN0ID0gWzMsIG4wLCBfRERSZXNjciwgMCwgW19ETlAsIF9uVCwgX2xpXSwgWzAsIDAsIDFdXTtcbnZhciBEZXNjcmliZURlc3RpbmF0aW9uc1Jlc3BvbnNlID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0REUmVzY3JpLFxuICAgIDAsXG4gICAgW19kZXN0LCBfblRdLFxuICAgIFsoKSA9PiBEZXN0aW5hdGlvbnMsIDBdLFxuXTtcbnZhciBEZXNjcmliZUV4cG9ydFRhc2tzUmVxdWVzdCA9IFszLCBuMCwgX0RFVFIsIDAsIFtfdEksIF9zQ3QsIF9uVCwgX2xpXSwgWzAsIDAsIDAsIDFdXTtcbnZhciBEZXNjcmliZUV4cG9ydFRhc2tzUmVzcG9uc2UgPSBbMywgbjAsIF9ERVRSZSwgMCwgW19lVCwgX25UXSwgWygpID0+IEV4cG9ydFRhc2tzLCAwXV07XG52YXIgRGVzY3JpYmVGaWVsZEluZGV4ZXNSZXF1ZXN0ID0gWzMsIG4wLCBfREZJUiwgMCwgW19sR0ksIF9uVF0sIFs2NCB8IDAsIDBdXTtcbnZhciBEZXNjcmliZUZpZWxkSW5kZXhlc1Jlc3BvbnNlID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0RGSVJlLFxuICAgIDAsXG4gICAgW19mSSwgX25UXSxcbiAgICBbKCkgPT4gRmllbGRJbmRleGVzLCAwXSxcbl07XG52YXIgRGVzY3JpYmVJbXBvcnRUYXNrQmF0Y2hlc1JlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfRElUQlIsXG4gICAgMCxcbiAgICBbX2lJLCBfYklTLCBfbGksIF9uVF0sXG4gICAgWzAsIDY0IHwgMCwgMSwgMF0sXG5dO1xudmFyIERlc2NyaWJlSW1wb3J0VGFza0JhdGNoZXNSZXNwb25zZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9ESVRCUmUsXG4gICAgMCxcbiAgICBbX2lTQSwgX2lJLCBfaUIsIF9uVF0sXG4gICAgWzAsIDAsICgpID0+IEltcG9ydEJhdGNoTGlzdCwgMF0sXG5dO1xudmFyIERlc2NyaWJlSW1wb3J0VGFza3NSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0RJVFIsXG4gICAgMCxcbiAgICBbX2lJLCBfaVNtLCBfaVNBLCBfbGksIF9uVF0sXG4gICAgWzAsIDAsIDAsIDEsIDBdLFxuXTtcbnZhciBEZXNjcmliZUltcG9ydFRhc2tzUmVzcG9uc2UgPSBbMywgbjAsIF9ESVRSZSwgMCwgW19pbSwgX25UXSwgWygpID0+IEltcG9ydExpc3QsIDBdXTtcbnZhciBEZXNjcmliZUluZGV4UG9saWNpZXNSZXF1ZXN0ID0gWzMsIG4wLCBfRElQUmVzLCAwLCBbX2xHSSwgX25UXSwgWzY0IHwgMCwgMF1dO1xudmFyIERlc2NyaWJlSW5kZXhQb2xpY2llc1Jlc3BvbnNlID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0RJUFJlc2MsXG4gICAgMCxcbiAgICBbX2lQLCBfblRdLFxuICAgIFsoKSA9PiBJbmRleFBvbGljaWVzLCAwXSxcbl07XG52YXIgRGVzY3JpYmVMb2dHcm91cHNSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0RMR1JlLFxuICAgIDAsXG4gICAgW19hSWMsIF9sR05QLCBfbEdOUG8sIF9uVCwgX2xpLCBfaUxBLCBfbEdDbywgX2xHSV0sXG4gICAgWzY0IHwgMCwgMCwgMCwgMCwgMSwgMiwgMCwgNjQgfCAwXSxcbl07XG52YXIgRGVzY3JpYmVMb2dHcm91cHNSZXNwb25zZSA9IFszLCBuMCwgX0RMR1JlcywgMCwgW19sRywgX25UXSwgWygpID0+IExvZ0dyb3VwcywgMF1dO1xudmFyIERlc2NyaWJlTG9nU3RyZWFtc1JlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfRExTUmUsXG4gICAgMCxcbiAgICBbX2xHTiwgX2xHSW8sIF9sU05QLCBfb0IsIF9kZXNjLCBfblQsIF9saV0sXG4gICAgWzAsIDAsIDAsIDAsIDIsIDAsIDFdLFxuXTtcbnZhciBEZXNjcmliZUxvZ1N0cmVhbXNSZXNwb25zZSA9IFszLCBuMCwgX0RMU1JlcywgMCwgW19sU29nLCBfblRdLCBbKCkgPT4gTG9nU3RyZWFtcywgMF1dO1xudmFyIERlc2NyaWJlTWV0cmljRmlsdGVyc1JlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfRE1GUmUsXG4gICAgMCxcbiAgICBbX2xHTiwgX2ZOUCwgX25ULCBfbGksIF9tTiwgX21OZV0sXG4gICAgWzAsIDAsIDAsIDEsIDAsIDBdLFxuXTtcbnZhciBEZXNjcmliZU1ldHJpY0ZpbHRlcnNSZXNwb25zZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9ETUZSZXMsXG4gICAgMCxcbiAgICBbX21GLCBfblRdLFxuICAgIFsoKSA9PiBNZXRyaWNGaWx0ZXJzLCAwXSxcbl07XG52YXIgRGVzY3JpYmVRdWVyaWVzUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9EUVIsXG4gICAgMCxcbiAgICBbX2xHTiwgX3N0YSwgX21SLCBfblQsIF9xTF0sXG4gICAgWzAsIDAsIDEsIDAsIDBdLFxuXTtcbnZhciBEZXNjcmliZVF1ZXJpZXNSZXNwb25zZSA9IFszLCBuMCwgX0RRUmUsIDAsIFtfcSwgX25UXSwgWygpID0+IFF1ZXJ5SW5mb0xpc3QsIDBdXTtcbnZhciBEZXNjcmliZVF1ZXJ5RGVmaW5pdGlvbnNSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0RRRFJlcyxcbiAgICAwLFxuICAgIFtfcUwsIF9xRE5QLCBfbVIsIF9uVF0sXG4gICAgWzAsIDAsIDEsIDBdLFxuXTtcbnZhciBEZXNjcmliZVF1ZXJ5RGVmaW5pdGlvbnNSZXNwb25zZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9EUURSZXNjLFxuICAgIDAsXG4gICAgW19xRCwgX25UXSxcbiAgICBbKCkgPT4gUXVlcnlEZWZpbml0aW9uTGlzdCwgMF0sXG5dO1xudmFyIERlc2NyaWJlUmVzb3VyY2VQb2xpY2llc1JlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfRFJQUmVzLFxuICAgIDAsXG4gICAgW19uVCwgX2xpLCBfckEsIF9wU29dLFxuICAgIFswLCAxLCAwLCAwXSxcbl07XG52YXIgRGVzY3JpYmVSZXNvdXJjZVBvbGljaWVzUmVzcG9uc2UgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfRFJQUmVzYyxcbiAgICAwLFxuICAgIFtfclAsIF9uVF0sXG4gICAgWygpID0+IFJlc291cmNlUG9saWNpZXMsIDBdLFxuXTtcbnZhciBEZXNjcmliZVN1YnNjcmlwdGlvbkZpbHRlcnNSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0RTRlJlLFxuICAgIDAsXG4gICAgW19sR04sIF9mTlAsIF9uVCwgX2xpXSxcbiAgICBbMCwgMCwgMCwgMV0sXG5dO1xudmFyIERlc2NyaWJlU3Vic2NyaXB0aW9uRmlsdGVyc1Jlc3BvbnNlID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0RTRlJlcyxcbiAgICAwLFxuICAgIFtfc0YsIF9uVF0sXG4gICAgWygpID0+IFN1YnNjcmlwdGlvbkZpbHRlcnMsIDBdLFxuXTtcbnZhciBEZXN0aW5hdGlvbiA9IFszLCBuMCwgX0RlLCAwLCBbX2ROZSwgX3RBLCBfckFvLCBfYVBjLCBfYXIsIF9jVF0sIFswLCAwLCAwLCAwLCAwLCAxXV07XG52YXIgRGVzdGluYXRpb25Db25maWd1cmF0aW9uID0gWzMsIG4wLCBfREMsIDAsIFtfc0NvXSwgWygpID0+IFMzQ29uZmlndXJhdGlvbl1dO1xudmFyIERpc2Fzc29jaWF0ZUttc0tleVJlcXVlc3QgPSBbMywgbjAsIF9ES0tSLCAwLCBbX2xHTiwgX3JJXSwgWzAsIDBdXTtcbnZhciBEaXNhc3NvY2lhdGVTb3VyY2VGcm9tUzNUYWJsZUludGVncmF0aW9uUmVxdWVzdCA9IFszLCBuMCwgX0RTRlNUSVIsIDAsIFtfaV0sIFswXV07XG52YXIgRGlzYXNzb2NpYXRlU291cmNlRnJvbVMzVGFibGVJbnRlZ3JhdGlvblJlc3BvbnNlID0gWzMsIG4wLCBfRFNGU1RJUmksIDAsIFtfaV0sIFswXV07XG52YXIgRW50aXR5ID0gWzMsIG4wLCBfRSwgMCwgW19rQSwgX2F0XSwgWzEyOCB8IDAsIDEyOCB8IDBdXTtcbnZhciBFeHBvcnRUYXNrID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0VULFxuICAgIDAsXG4gICAgW190SSwgX3ROLCBfbEdOLCBfZiwgX3RvLCBfZGVzLCBfZFAsIF9zdGEsIF9lSV0sXG4gICAgWzAsIDAsIDAsIDEsIDEsIDAsIDAsICgpID0+IEV4cG9ydFRhc2tTdGF0dXMsICgpID0+IEV4cG9ydFRhc2tFeGVjdXRpb25JbmZvXSxcbl07XG52YXIgRXhwb3J0VGFza0V4ZWN1dGlvbkluZm8gPSBbMywgbjAsIF9FVEVJLCAwLCBbX2NULCBfY1RvbV0sIFsxLCAxXV07XG52YXIgRXhwb3J0VGFza1N0YXR1cyA9IFszLCBuMCwgX0VUUywgMCwgW19jb2QsIF9tXSwgWzAsIDBdXTtcbnZhciBGaWVsZEluZGV4ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0ZJLFxuICAgIDAsXG4gICAgW19sR0lvLCBfZklOLCBfbFNULCBfZkVULCBfbEVULCBfdHldLFxuICAgIFswLCAwLCAxLCAxLCAxLCAwXSxcbl07XG52YXIgRmllbGRzRGF0YSA9IFszLCBuMCwgX0ZELCAwLCBbX2RhXSwgWzIxXV07XG52YXIgRmlsdGVyZWRMb2dFdmVudCA9IFszLCBuMCwgX0ZMRSwgMCwgW19sU04sIF90aW0sIF9tLCBfaVQsIF9lSXZdLCBbMCwgMSwgMCwgMSwgMF1dO1xudmFyIEZpbHRlckxvZ0V2ZW50c1JlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfRkxFUixcbiAgICAwLFxuICAgIFtfbEdOLCBfbEdJbywgX2xTTm8sIF9sU05QLCBfc1R0LCBfZVRuLCBfZlAsIF9uVCwgX2xpLCBfaW4sIF91XSxcbiAgICBbMCwgMCwgNjQgfCAwLCAwLCAxLCAxLCAwLCAwLCAxLCAyLCAyXSxcbl07XG52YXIgRmlsdGVyTG9nRXZlbnRzUmVzcG9uc2UgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfRkxFUmksXG4gICAgMCxcbiAgICBbX2V2LCBfc0xTLCBfblRdLFxuICAgIFsoKSA9PiBGaWx0ZXJlZExvZ0V2ZW50cywgKCkgPT4gU2VhcmNoZWRMb2dTdHJlYW1zLCAwXSxcbl07XG52YXIgR2V0RGF0YVByb3RlY3Rpb25Qb2xpY3lSZXF1ZXN0ID0gWzMsIG4wLCBfR0RQUFIsIDAsIFtfbEdJb10sIFswXV07XG52YXIgR2V0RGF0YVByb3RlY3Rpb25Qb2xpY3lSZXNwb25zZSA9IFszLCBuMCwgX0dEUFBSZSwgMCwgW19sR0lvLCBfcEQsIF9sVVRdLCBbMCwgMCwgMV1dO1xudmFyIEdldERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lSZXF1ZXN0ID0gWzMsIG4wLCBfR0REUFIsIDAsIFtfZEROXSwgWzBdXTtcbnZhciBHZXREZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5UmVzcG9uc2UgPSBbMywgbjAsIF9HRERQUmUsIDAsIFtfcG9dLCBbKCkgPT4gUG9saWN5XV07XG52YXIgR2V0RGVsaXZlcnlEZXN0aW5hdGlvblJlcXVlc3QgPSBbMywgbjAsIF9HRERSLCAwLCBbX25dLCBbMF1dO1xudmFyIEdldERlbGl2ZXJ5RGVzdGluYXRpb25SZXNwb25zZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HRERSZSxcbiAgICAwLFxuICAgIFtfZERlXSxcbiAgICBbKCkgPT4gRGVsaXZlcnlEZXN0aW5hdGlvbl0sXG5dO1xudmFyIEdldERlbGl2ZXJ5UmVxdWVzdCA9IFszLCBuMCwgX0dEUiwgMCwgW19pZF0sIFswXV07XG52YXIgR2V0RGVsaXZlcnlSZXNwb25zZSA9IFszLCBuMCwgX0dEUmUsIDAsIFtfZGVdLCBbKCkgPT4gRGVsaXZlcnldXTtcbnZhciBHZXREZWxpdmVyeVNvdXJjZVJlcXVlc3QgPSBbMywgbjAsIF9HRFNSLCAwLCBbX25dLCBbMF1dO1xudmFyIEdldERlbGl2ZXJ5U291cmNlUmVzcG9uc2UgPSBbMywgbjAsIF9HRFNSZSwgMCwgW19kU2VsXSwgWygpID0+IERlbGl2ZXJ5U291cmNlXV07XG52YXIgR2V0SW50ZWdyYXRpb25SZXF1ZXN0ID0gWzMsIG4wLCBfR0lSLCAwLCBbX2lOXSwgWzBdXTtcbnZhciBHZXRJbnRlZ3JhdGlvblJlc3BvbnNlID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dJUmUsXG4gICAgMCxcbiAgICBbX2lOLCBfaVRuLCBfaVNuLCBfaURdLFxuICAgIFswLCAwLCAwLCAoKSA9PiBJbnRlZ3JhdGlvbkRldGFpbHNdLFxuXTtcbnZhciBHZXRMb2dBbm9tYWx5RGV0ZWN0b3JSZXF1ZXN0ID0gWzMsIG4wLCBfR0xBRFIsIDAsIFtfYURBXSwgWzBdXTtcbnZhciBHZXRMb2dBbm9tYWx5RGV0ZWN0b3JSZXNwb25zZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HTEFEUmUsXG4gICAgMCxcbiAgICBbX2ROLCBfbEdBTCwgX2VGLCBfZlAsIF9hRFMsIF9rS0ksIF9jVFMsIF9sTVRTLCBfYVZUXSxcbiAgICBbMCwgNjQgfCAwLCAwLCAwLCAwLCAwLCAxLCAxLCAxXSxcbl07XG52YXIgR2V0TG9nRXZlbnRzUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HTEVSLFxuICAgIDAsXG4gICAgW19sR04sIF9sR0lvLCBfbFNOLCBfc1R0LCBfZVRuLCBfblQsIF9saSwgX3NGSCwgX3VdLFxuICAgIFswLCAwLCAwLCAxLCAxLCAwLCAxLCAyLCAyXSxcbl07XG52YXIgR2V0TG9nRXZlbnRzUmVzcG9uc2UgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfR0xFUmUsXG4gICAgMCxcbiAgICBbX2V2LCBfbkZULCBfbkJUXSxcbiAgICBbKCkgPT4gT3V0cHV0TG9nRXZlbnRzLCAwLCAwXSxcbl07XG52YXIgR2V0TG9nRmllbGRzUmVxdWVzdCA9IFszLCBuMCwgX0dMRlIsIDAsIFtfZFNOYSwgX2RTVF0sIFswLCAwXV07XG52YXIgR2V0TG9nRmllbGRzUmVzcG9uc2UgPSBbMywgbjAsIF9HTEZSZSwgMCwgW19sRl0sIFsoKSA9PiBMb2dGaWVsZHNMaXN0XV07XG52YXIgR2V0TG9nR3JvdXBGaWVsZHNSZXF1ZXN0ID0gWzMsIG4wLCBfR0xHRlIsIDAsIFtfbEdOLCBfdGltZSwgX2xHSW9dLCBbMCwgMSwgMF1dO1xudmFyIEdldExvZ0dyb3VwRmllbGRzUmVzcG9uc2UgPSBbMywgbjAsIF9HTEdGUmUsIDAsIFtfbEdGXSwgWygpID0+IExvZ0dyb3VwRmllbGRMaXN0XV07XG52YXIgR2V0TG9nT2JqZWN0UmVxdWVzdCA9IFszLCBuMCwgX0dMT1IsIDAsIFtfdSwgX2xPUF0sIFsyLCAwXV07XG52YXIgR2V0TG9nT2JqZWN0UmVzcG9uc2UgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfR0xPUmUsXG4gICAgMCxcbiAgICBbX2ZTaV0sXG4gICAgW1soKSA9PiBHZXRMb2dPYmplY3RSZXNwb25zZVN0cmVhbSwgMF1dLFxuXTtcbnZhciBHZXRMb2dSZWNvcmRSZXF1ZXN0ID0gWzMsIG4wLCBfR0xSUiwgMCwgW19sUlAsIF91XSwgWzAsIDJdXTtcbnZhciBHZXRMb2dSZWNvcmRSZXNwb25zZSA9IFszLCBuMCwgX0dMUlJlLCAwLCBbX2xSXSwgWzEyOCB8IDBdXTtcbnZhciBHZXRRdWVyeVJlc3VsdHNSZXF1ZXN0ID0gWzMsIG4wLCBfR1FSUiwgMCwgW19xSV0sIFswXV07XG52YXIgR2V0UXVlcnlSZXN1bHRzUmVzcG9uc2UgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfR1FSUmUsXG4gICAgMCxcbiAgICBbX3FMLCBfciwgX3N0YXQsIF9zdGEsIF9lS10sXG4gICAgWzAsICgpID0+IFF1ZXJ5UmVzdWx0cywgKCkgPT4gUXVlcnlTdGF0aXN0aWNzLCAwLCAwXSxcbl07XG52YXIgR2V0U2NoZWR1bGVkUXVlcnlIaXN0b3J5UmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9HU1FIUixcbiAgICAwLFxuICAgIFtfaSwgX3NUdCwgX2VUbiwgX2VTLCBfbVIsIF9uVF0sXG4gICAgWzAsIDEsIDEsIDY0IHwgMCwgMSwgMF0sXG5dO1xudmFyIEdldFNjaGVkdWxlZFF1ZXJ5SGlzdG9yeVJlc3BvbnNlID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dTUUhSZSxcbiAgICAwLFxuICAgIFtfbiwgX3NRQSwgX3RILCBfblRdLFxuICAgIFswLCAwLCAoKSA9PiBUcmlnZ2VySGlzdG9yeVJlY29yZExpc3QsIDBdLFxuXTtcbnZhciBHZXRTY2hlZHVsZWRRdWVyeVJlcXVlc3QgPSBbMywgbjAsIF9HU1FSLCAwLCBbX2ldLCBbMF1dO1xudmFyIEdldFNjaGVkdWxlZFF1ZXJ5UmVzcG9uc2UgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfR1NRUmUsXG4gICAgMCxcbiAgICBbX3NRQSwgX24sIF9kLCBfcUwsIF9xUywgX2xHSSwgX3NFLCBfdGksIF9zVE8sIF9kQywgX3N0LCBfbFRULCBfbEVTLCBfc1NULCBfc0VULCBfZVJBLCBfY1QsIF9sVVRdLFxuICAgIFswLCAwLCAwLCAwLCAwLCA2NCB8IDAsIDAsIDAsIDEsICgpID0+IERlc3RpbmF0aW9uQ29uZmlndXJhdGlvbiwgMCwgMSwgMCwgMSwgMSwgMCwgMSwgMV0sXG5dO1xudmFyIEdldFRyYW5zZm9ybWVyUmVxdWVzdCA9IFszLCBuMCwgX0dUUiwgMCwgW19sR0lvXSwgWzBdXTtcbnZhciBHZXRUcmFuc2Zvcm1lclJlc3BvbnNlID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0dUUmUsXG4gICAgMCxcbiAgICBbX2xHSW8sIF9jVCwgX2xNVCwgX3RDXSxcbiAgICBbMCwgMSwgMSwgKCkgPT4gUHJvY2Vzc29yc10sXG5dO1xudmFyIEdyb2sgPSBbMywgbjAsIF9HLCAwLCBbX3NvLCBfbWFdLCBbMCwgMF1dO1xudmFyIEdyb3VwaW5nSWRlbnRpZmllciA9IFszLCBuMCwgX0dJLCAwLCBbX2ssIF92XSwgWzAsIDBdXTtcbnZhciBJbXBvcnQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfSSxcbiAgICAwLFxuICAgIFtfaUksIF9pU0EsIF9pU20sIF9pREEsIF9pUywgX2lGLCBfY1QsIF9sVVQsIF9lTV0sXG4gICAgWzAsIDAsIDAsIDAsICgpID0+IEltcG9ydFN0YXRpc3RpY3MsICgpID0+IEltcG9ydEZpbHRlciwgMSwgMSwgMF0sXG5dO1xudmFyIEltcG9ydEJhdGNoID0gWzMsIG4wLCBfSUIsIDAsIFtfYkksIF9zdGEsIF9lTV0sIFswLCAwLCAwXV07XG52YXIgSW1wb3J0RmlsdGVyID0gWzMsIG4wLCBfSUYsIDAsIFtfc0VUdCwgX2VFVF0sIFsxLCAxXV07XG52YXIgSW1wb3J0U3RhdGlzdGljcyA9IFszLCBuMCwgX0lTLCAwLCBbX2JJeV0sIFsxXV07XG52YXIgSW5kZXhQb2xpY3kgPSBbMywgbjAsIF9JUCwgMCwgW19sR0lvLCBfbFVUYSwgX3BELCBfcE4sIF9zb10sIFswLCAxLCAwLCAwLCAwXV07XG52YXIgSW5wdXRMb2dFdmVudCA9IFszLCBuMCwgX0lMRSwgMCwgW190aW0sIF9tXSwgWzEsIDBdXTtcbnZhciBJbnRlZ3JhdGlvblN1bW1hcnkgPSBbMywgbjAsIF9JU24sIDAsIFtfaU4sIF9pVG4sIF9pU25dLCBbMCwgMCwgMF1dO1xudmFyIEludGVybmFsU2VydmVyRXhjZXB0aW9uID0gWy0zLCBuMCwgX0lTRSwgeyBbX2VdOiBfc2VyLCBbX2hFXTogNTAwIH0sIFtfbV0sIFswXV07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihJbnRlcm5hbFNlcnZlckV4Y2VwdGlvbiwgSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb24kMSk7XG52YXIgSW50ZXJuYWxTdHJlYW1pbmdFeGNlcHRpb24gPSBbLTMsIG4wLCBfSVNFbiwgeyBbX2VdOiBfYyB9LCBbX21dLCBbMF1dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoSW50ZXJuYWxTdHJlYW1pbmdFeGNlcHRpb24sIEludGVybmFsU3RyZWFtaW5nRXhjZXB0aW9uJDEpO1xudmFyIEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24gPSBbLTMsIG4wLCBfSU9FLCB7IFtfZV06IF9jIH0sIFtfbV0sIFswXV07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uLCBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uJDEpO1xudmFyIEludmFsaWRQYXJhbWV0ZXJFeGNlcHRpb24gPSBbLTMsIG4wLCBfSVBFLCB7IFtfZV06IF9jIH0sIFtfbV0sIFswXV07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihJbnZhbGlkUGFyYW1ldGVyRXhjZXB0aW9uLCBJbnZhbGlkUGFyYW1ldGVyRXhjZXB0aW9uJDEpO1xudmFyIEludmFsaWRTZXF1ZW5jZVRva2VuRXhjZXB0aW9uID0gWy0zLCBuMCwgX0lTVEUsIHsgW19lXTogX2MgfSwgW19lU1QsIF9tXSwgWzAsIDBdXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKEludmFsaWRTZXF1ZW5jZVRva2VuRXhjZXB0aW9uLCBJbnZhbGlkU2VxdWVuY2VUb2tlbkV4Y2VwdGlvbiQxKTtcbnZhciBMaW1pdEV4Y2VlZGVkRXhjZXB0aW9uID0gWy0zLCBuMCwgX0xFRSwgeyBbX2VdOiBfYyB9LCBbX21dLCBbMF1dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoTGltaXRFeGNlZWRlZEV4Y2VwdGlvbiwgTGltaXRFeGNlZWRlZEV4Y2VwdGlvbiQxKTtcbnZhciBMaXN0QWdncmVnYXRlTG9nR3JvdXBTdW1tYXJpZXNSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0xBTEdTUixcbiAgICAwLFxuICAgIFtfYUljLCBfaUxBLCBfbEdDbywgX2xHTlBvLCBfZFNhLCBfZ0IsIF9uVCwgX2xpXSxcbiAgICBbNjQgfCAwLCAyLCAwLCAwLCAoKSA9PiBEYXRhU291cmNlRmlsdGVycywgMCwgMCwgMV0sXG5dO1xudmFyIExpc3RBZ2dyZWdhdGVMb2dHcm91cFN1bW1hcmllc1Jlc3BvbnNlID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0xBTEdTUmksXG4gICAgMCxcbiAgICBbX2FMR1MsIF9uVF0sXG4gICAgWygpID0+IEFnZ3JlZ2F0ZUxvZ0dyb3VwU3VtbWFyaWVzLCAwXSxcbl07XG52YXIgTGlzdEFub21hbGllc1JlcXVlc3QgPSBbMywgbjAsIF9MQVIsIDAsIFtfYURBLCBfc1MsIF9saSwgX25UXSwgWzAsIDAsIDEsIDBdXTtcbnZhciBMaXN0QW5vbWFsaWVzUmVzcG9uc2UgPSBbMywgbjAsIF9MQVJpLCAwLCBbX2FuLCBfblRdLCBbKCkgPT4gQW5vbWFsaWVzLCAwXV07XG52YXIgTGlzdEludGVncmF0aW9uc1JlcXVlc3QgPSBbMywgbjAsIF9MSVIsIDAsIFtfaU5QLCBfaVRuLCBfaVNuXSwgWzAsIDAsIDBdXTtcbnZhciBMaXN0SW50ZWdyYXRpb25zUmVzcG9uc2UgPSBbMywgbjAsIF9MSVJpLCAwLCBbX2lTbnRdLCBbKCkgPT4gSW50ZWdyYXRpb25TdW1tYXJpZXNdXTtcbnZhciBMaXN0TG9nQW5vbWFseURldGVjdG9yc1JlcXVlc3QgPSBbMywgbjAsIF9MTEFEUiwgMCwgW19mTEdBLCBfbGksIF9uVF0sIFswLCAxLCAwXV07XG52YXIgTGlzdExvZ0Fub21hbHlEZXRlY3RvcnNSZXNwb25zZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9MTEFEUmksXG4gICAgMCxcbiAgICBbX2FELCBfblRdLFxuICAgIFsoKSA9PiBBbm9tYWx5RGV0ZWN0b3JzLCAwXSxcbl07XG52YXIgTGlzdExvZ0dyb3Vwc0ZvclF1ZXJ5UmVxdWVzdCA9IFszLCBuMCwgX0xMR0ZRUiwgMCwgW19xSSwgX25ULCBfbVJdLCBbMCwgMCwgMV1dO1xudmFyIExpc3RMb2dHcm91cHNGb3JRdWVyeVJlc3BvbnNlID0gWzMsIG4wLCBfTExHRlFSaSwgMCwgW19sR0ksIF9uVF0sIFs2NCB8IDAsIDBdXTtcbnZhciBMaXN0TG9nR3JvdXBzUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9MTEdSLFxuICAgIDAsXG4gICAgW19sR05QbywgX2xHQ28sIF9pTEEsIF9hSWMsIF9uVCwgX2xpLCBfZFNhLCBfZklOaV0sXG4gICAgWzAsIDAsIDIsIDY0IHwgMCwgMCwgMSwgKCkgPT4gRGF0YVNvdXJjZUZpbHRlcnMsIDY0IHwgMF0sXG5dO1xudmFyIExpc3RMb2dHcm91cHNSZXNwb25zZSA9IFszLCBuMCwgX0xMR1JpLCAwLCBbX2xHLCBfblRdLCBbKCkgPT4gTG9nR3JvdXBTdW1tYXJpZXMsIDBdXTtcbnZhciBMaXN0U2NoZWR1bGVkUXVlcmllc1JlcXVlc3QgPSBbMywgbjAsIF9MU1FSLCAwLCBbX21SLCBfblQsIF9zdF0sIFsxLCAwLCAwXV07XG52YXIgTGlzdFNjaGVkdWxlZFF1ZXJpZXNSZXNwb25zZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9MU1FSaSxcbiAgICAwLFxuICAgIFtfblQsIF9zUV0sXG4gICAgWzAsICgpID0+IFNjaGVkdWxlZFF1ZXJ5U3VtbWFyeUxpc3RdLFxuXTtcbnZhciBMaXN0U291cmNlc0ZvclMzVGFibGVJbnRlZ3JhdGlvblJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfTFNGU1RJUixcbiAgICAwLFxuICAgIFtfaUEsIF9tUiwgX25UXSxcbiAgICBbMCwgMSwgMF0sXG5dO1xudmFyIExpc3RTb3VyY2VzRm9yUzNUYWJsZUludGVncmF0aW9uUmVzcG9uc2UgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfTFNGU1RJUmksXG4gICAgMCxcbiAgICBbX3NvdSwgX25UXSxcbiAgICBbKCkgPT4gUzNUYWJsZUludGVncmF0aW9uU291cmNlcywgMF0sXG5dO1xudmFyIExpc3RUYWdzRm9yUmVzb3VyY2VSZXF1ZXN0ID0gWzMsIG4wLCBfTFRGUlIsIDAsIFtfckFdLCBbMF1dO1xudmFyIExpc3RUYWdzRm9yUmVzb3VyY2VSZXNwb25zZSA9IFszLCBuMCwgX0xURlJSaSwgMCwgW190YV0sIFsxMjggfCAwXV07XG52YXIgTGlzdFRhZ3NMb2dHcm91cFJlcXVlc3QgPSBbMywgbjAsIF9MVExHUiwgMCwgW19sR05dLCBbMF1dO1xudmFyIExpc3RUYWdzTG9nR3JvdXBSZXNwb25zZSA9IFszLCBuMCwgX0xUTEdSaSwgMCwgW190YV0sIFsxMjggfCAwXV07XG52YXIgTGlzdFRvTWFwID0gWzMsIG4wLCBfTFRNLCAwLCBbX3NvLCBfaywgX3ZLLCBfdCwgX2ZsLCBfZkVdLCBbMCwgMCwgMCwgMCwgMiwgMF1dO1xudmFyIExpdmVUYWlsU2Vzc2lvbkxvZ0V2ZW50ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0xUU0xFLFxuICAgIDAsXG4gICAgW19sU04sIF9sR0lvLCBfbSwgX3RpbSwgX2lUXSxcbiAgICBbMCwgMCwgMCwgMSwgMV0sXG5dO1xudmFyIExpdmVUYWlsU2Vzc2lvbk1ldGFkYXRhID0gWzMsIG4wLCBfTFRTTSwgMCwgW19zYV0sIFsyXV07XG52YXIgTGl2ZVRhaWxTZXNzaW9uU3RhcnQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfTFRTUyxcbiAgICAwLFxuICAgIFtfckllLCBfc0ksIF9sR0ksIF9sU05vLCBfbFNOUG8sIF9sRUZQXSxcbiAgICBbMCwgMCwgNjQgfCAwLCA2NCB8IDAsIDY0IHwgMCwgMF0sXG5dO1xudmFyIExpdmVUYWlsU2Vzc2lvblVwZGF0ZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9MVFNVLFxuICAgIDAsXG4gICAgW19zTSwgX3NSXSxcbiAgICBbKCkgPT4gTGl2ZVRhaWxTZXNzaW9uTWV0YWRhdGEsICgpID0+IExpdmVUYWlsU2Vzc2lvblJlc3VsdHNdLFxuXTtcbnZhciBMb2dFdmVudCA9IFszLCBuMCwgX0xFLCAwLCBbX3RpbSwgX21dLCBbMSwgMF1dO1xudmFyIExvZ0ZpZWxkc0xpc3RJdGVtID0gWzMsIG4wLCBfTEZMSSwgMCwgW19sRk4sIF9sRlRdLCBbMCwgKCkgPT4gTG9nRmllbGRUeXBlXV07XG52YXIgTG9nRmllbGRUeXBlID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0xGVCxcbiAgICAwLFxuICAgIFtfdHksIF9lbCwgX2ZpXSxcbiAgICBbMCwgKCkgPT4gTG9nRmllbGRUeXBlLCAoKSA9PiBMb2dGaWVsZHNMaXN0XSxcbl07XG52YXIgTG9nR3JvdXAgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfTEcsXG4gICAgMCxcbiAgICBbX2xHTiwgX2NULCBfcklELCBfbUZDLCBfYXIsIF9zQiwgX2tLSSwgX2RQUywgX2lQbiwgX2xHQ28sIF9sR0EsIF9kUEVdLFxuICAgIFswLCAxLCAxLCAxLCAwLCAxLCAwLCAwLCA2NCB8IDAsIDAsIDAsIDJdLFxuXTtcbnZhciBMb2dHcm91cEZpZWxkID0gWzMsIG4wLCBfTEdGLCAwLCBbX24sIF9wZV0sIFswLCAxXV07XG52YXIgTG9nR3JvdXBTdW1tYXJ5ID0gWzMsIG4wLCBfTEdTLCAwLCBbX2xHTiwgX2xHQSwgX2xHQ29dLCBbMCwgMCwgMF1dO1xudmFyIExvZ1N0cmVhbSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9MUyxcbiAgICAwLFxuICAgIFtfbFNOLCBfY1QsIF9mRVRpLCBfbEVUYSwgX2xJVCwgX3VTVCwgX2FyLCBfc0JdLFxuICAgIFswLCAxLCAxLCAxLCAxLCAwLCAwLCAxXSxcbl07XG52YXIgTG93ZXJDYXNlU3RyaW5nID0gWzMsIG4wLCBfTENTLCAwLCBbX3dLXSwgWzY0IHwgMF1dO1xudmFyIE1hbGZvcm1lZFF1ZXJ5RXhjZXB0aW9uID0gW1xuICAgIC0zLFxuICAgIG4wLFxuICAgIF9NUUUsXG4gICAgeyBbX2VdOiBfYyB9LFxuICAgIFtfcUNFLCBfbV0sXG4gICAgWygpID0+IFF1ZXJ5Q29tcGlsZUVycm9yLCAwXSxcbl07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihNYWxmb3JtZWRRdWVyeUV4Y2VwdGlvbiwgTWFsZm9ybWVkUXVlcnlFeGNlcHRpb24kMSk7XG52YXIgTWV0cmljRmlsdGVyID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX01GLFxuICAgIDAsXG4gICAgW19mTiwgX2ZQLCBfbVQsIF9jVCwgX2xHTiwgX2FPVEwsIF9mU0MsIF9lU0ZEXSxcbiAgICBbMCwgMCwgKCkgPT4gTWV0cmljVHJhbnNmb3JtYXRpb25zLCAxLCAwLCAyLCAwLCA2NCB8IDBdLFxuXTtcbnZhciBNZXRyaWNGaWx0ZXJNYXRjaFJlY29yZCA9IFszLCBuMCwgX01GTVIsIDAsIFtfZU4sIF9lTXYsIF9lVl0sIFsxLCAwLCAxMjggfCAwXV07XG52YXIgTWV0cmljVHJhbnNmb3JtYXRpb24gPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfTVQsXG4gICAgMCxcbiAgICBbX21OLCBfbU5lLCBfbVYsIF9kViwgX2RpLCBfdW5dLFxuICAgIFswLCAwLCAwLCAxLCAxMjggfCAwLCAwXSxcbl07XG52YXIgTW92ZUtleUVudHJ5ID0gWzMsIG4wLCBfTUtFLCAwLCBbX3NvLCBfdCwgX29JRV0sIFswLCAwLCAyXV07XG52YXIgTW92ZUtleXMgPSBbMywgbjAsIF9NSywgMCwgW19lbl0sIFsoKSA9PiBNb3ZlS2V5RW50cmllc11dO1xudmFyIE9wZW5TZWFyY2hBcHBsaWNhdGlvbiA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9PU0EsXG4gICAgMCxcbiAgICBbX2FFLCBfYUEsIF9hSXAsIF9zdGFdLFxuICAgIFswLCAwLCAwLCAoKSA9PiBPcGVuU2VhcmNoUmVzb3VyY2VTdGF0dXNdLFxuXTtcbnZhciBPcGVuU2VhcmNoQ29sbGVjdGlvbiA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9PU0MsXG4gICAgMCxcbiAgICBbX2NFLCBfY0EsIF9zdGFdLFxuICAgIFswLCAwLCAoKSA9PiBPcGVuU2VhcmNoUmVzb3VyY2VTdGF0dXNdLFxuXTtcbnZhciBPcGVuU2VhcmNoRGF0YUFjY2Vzc1BvbGljeSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9PU0RBUCxcbiAgICAwLFxuICAgIFtfcE4sIF9zdGFdLFxuICAgIFswLCAoKSA9PiBPcGVuU2VhcmNoUmVzb3VyY2VTdGF0dXNdLFxuXTtcbnZhciBPcGVuU2VhcmNoRGF0YVNvdXJjZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9PU0RTLFxuICAgIDAsXG4gICAgW19kU05hLCBfc3RhXSxcbiAgICBbMCwgKCkgPT4gT3BlblNlYXJjaFJlc291cmNlU3RhdHVzXSxcbl07XG52YXIgT3BlblNlYXJjaEVuY3J5cHRpb25Qb2xpY3kgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfT1NFUCxcbiAgICAwLFxuICAgIFtfcE4sIF9zdGFdLFxuICAgIFswLCAoKSA9PiBPcGVuU2VhcmNoUmVzb3VyY2VTdGF0dXNdLFxuXTtcbnZhciBPcGVuU2VhcmNoSW50ZWdyYXRpb25EZXRhaWxzID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX09TSUQsXG4gICAgMCxcbiAgICBbX2RTLCBfYXAsIF9jb2wsIF93LCBfZVAsIF9uUCwgX2FQYywgX2xQXSxcbiAgICBbXG4gICAgICAgICgpID0+IE9wZW5TZWFyY2hEYXRhU291cmNlLFxuICAgICAgICAoKSA9PiBPcGVuU2VhcmNoQXBwbGljYXRpb24sXG4gICAgICAgICgpID0+IE9wZW5TZWFyY2hDb2xsZWN0aW9uLFxuICAgICAgICAoKSA9PiBPcGVuU2VhcmNoV29ya3NwYWNlLFxuICAgICAgICAoKSA9PiBPcGVuU2VhcmNoRW5jcnlwdGlvblBvbGljeSxcbiAgICAgICAgKCkgPT4gT3BlblNlYXJjaE5ldHdvcmtQb2xpY3ksXG4gICAgICAgICgpID0+IE9wZW5TZWFyY2hEYXRhQWNjZXNzUG9saWN5LFxuICAgICAgICAoKSA9PiBPcGVuU2VhcmNoTGlmZWN5Y2xlUG9saWN5LFxuICAgIF0sXG5dO1xudmFyIE9wZW5TZWFyY2hMaWZlY3ljbGVQb2xpY3kgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfT1NMUCxcbiAgICAwLFxuICAgIFtfcE4sIF9zdGFdLFxuICAgIFswLCAoKSA9PiBPcGVuU2VhcmNoUmVzb3VyY2VTdGF0dXNdLFxuXTtcbnZhciBPcGVuU2VhcmNoTmV0d29ya1BvbGljeSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9PU05QLFxuICAgIDAsXG4gICAgW19wTiwgX3N0YV0sXG4gICAgWzAsICgpID0+IE9wZW5TZWFyY2hSZXNvdXJjZVN0YXR1c10sXG5dO1xudmFyIE9wZW5TZWFyY2hSZXNvdXJjZUNvbmZpZyA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9PU1JDLFxuICAgIDAsXG4gICAgW19rS0EsIF9kU1JBLCBfZFZQLCBfYUEsIF9yRF0sXG4gICAgWzAsIDAsIDY0IHwgMCwgMCwgMV0sXG5dO1xudmFyIE9wZW5TZWFyY2hSZXNvdXJjZVN0YXR1cyA9IFszLCBuMCwgX09TUlMsIDAsIFtfc3RhLCBfc010XSwgWzAsIDBdXTtcbnZhciBPcGVuU2VhcmNoV29ya3NwYWNlID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX09TVyxcbiAgICAwLFxuICAgIFtfd0ksIF9zdGFdLFxuICAgIFswLCAoKSA9PiBPcGVuU2VhcmNoUmVzb3VyY2VTdGF0dXNdLFxuXTtcbnZhciBPcGVyYXRpb25BYm9ydGVkRXhjZXB0aW9uID0gWy0zLCBuMCwgX09BRSwgeyBbX2VdOiBfYyB9LCBbX21dLCBbMF1dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoT3BlcmF0aW9uQWJvcnRlZEV4Y2VwdGlvbiwgT3BlcmF0aW9uQWJvcnRlZEV4Y2VwdGlvbiQxKTtcbnZhciBPdXRwdXRMb2dFdmVudCA9IFszLCBuMCwgX09MRSwgMCwgW190aW0sIF9tLCBfaVRdLCBbMSwgMCwgMV1dO1xudmFyIFBhcnNlQ2xvdWRmcm9udCA9IFszLCBuMCwgX1BDLCAwLCBbX3NvXSwgWzBdXTtcbnZhciBQYXJzZUpTT04gPSBbMywgbjAsIF9QSlNPTiwgMCwgW19zbywgX2Rlc10sIFswLCAwXV07XG52YXIgUGFyc2VLZXlWYWx1ZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9QS1YsXG4gICAgMCxcbiAgICBbX3NvLCBfZGVzLCBfZkQsIF9rVkQsIF9rUCwgX25NViwgX29JRV0sXG4gICAgWzAsIDAsIDAsIDAsIDAsIDAsIDJdLFxuXTtcbnZhciBQYXJzZVBvc3RncmVzID0gWzMsIG4wLCBfUFAsIDAsIFtfc29dLCBbMF1dO1xudmFyIFBhcnNlUm91dGU1MyA9IFszLCBuMCwgX1BSLCAwLCBbX3NvXSwgWzBdXTtcbnZhciBQYXJzZVRvT0NTRiA9IFszLCBuMCwgX1BUT0NTRiwgMCwgW19zbywgX2VTdiwgX29WLCBfbVZhXSwgWzAsIDAsIDAsIDBdXTtcbnZhciBQYXJzZVZQQyA9IFszLCBuMCwgX1BWUEMsIDAsIFtfc29dLCBbMF1dO1xudmFyIFBhcnNlV0FGID0gWzMsIG4wLCBfUFdBRiwgMCwgW19zb10sIFswXV07XG52YXIgUGF0dGVyblRva2VuID0gWzMsIG4wLCBfUFQsIDAsIFtfZFRQLCBfaURzLCBfdFMsIF9lbnUsIF9pVE5dLCBbMSwgMiwgMCwgMTI4IHwgMSwgMF1dO1xudmFyIFBvbGljeSA9IFszLCBuMCwgX1AsIDAsIFtfZERQXSwgWzBdXTtcbnZhciBQcm9jZXNzb3IgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfUHIsXG4gICAgMCxcbiAgICBbXG4gICAgICAgIF9hSyxcbiAgICAgICAgX2NWLFxuICAgICAgICBfY3MsXG4gICAgICAgIF9kVEMsXG4gICAgICAgIF9kSyxcbiAgICAgICAgX2csXG4gICAgICAgIF9sVE0sXG4gICAgICAgIF9sQ1MsXG4gICAgICAgIF9tSyxcbiAgICAgICAgX3BDLFxuICAgICAgICBfcEpTT04sXG4gICAgICAgIF9wS1YsXG4gICAgICAgIF9wUmEsXG4gICAgICAgIF9wVE9DU0YsXG4gICAgICAgIF9wUCxcbiAgICAgICAgX3BWUEMsXG4gICAgICAgIF9wV0FGLFxuICAgICAgICBfckssXG4gICAgICAgIF9zU3AsXG4gICAgICAgIF9zU3UsXG4gICAgICAgIF90U3IsXG4gICAgICAgIF90Q3ksXG4gICAgICAgIF91Q1MsXG4gICAgXSxcbiAgICBbXG4gICAgICAgICgpID0+IEFkZEtleXMsXG4gICAgICAgICgpID0+IENvcHlWYWx1ZSxcbiAgICAgICAgKCkgPT4gQ1NWLFxuICAgICAgICAoKSA9PiBEYXRlVGltZUNvbnZlcnRlcixcbiAgICAgICAgKCkgPT4gRGVsZXRlS2V5cyxcbiAgICAgICAgKCkgPT4gR3JvayxcbiAgICAgICAgKCkgPT4gTGlzdFRvTWFwLFxuICAgICAgICAoKSA9PiBMb3dlckNhc2VTdHJpbmcsXG4gICAgICAgICgpID0+IE1vdmVLZXlzLFxuICAgICAgICAoKSA9PiBQYXJzZUNsb3VkZnJvbnQsXG4gICAgICAgICgpID0+IFBhcnNlSlNPTixcbiAgICAgICAgKCkgPT4gUGFyc2VLZXlWYWx1ZSxcbiAgICAgICAgKCkgPT4gUGFyc2VSb3V0ZTUzLFxuICAgICAgICAoKSA9PiBQYXJzZVRvT0NTRixcbiAgICAgICAgKCkgPT4gUGFyc2VQb3N0Z3JlcyxcbiAgICAgICAgKCkgPT4gUGFyc2VWUEMsXG4gICAgICAgICgpID0+IFBhcnNlV0FGLFxuICAgICAgICAoKSA9PiBSZW5hbWVLZXlzLFxuICAgICAgICAoKSA9PiBTcGxpdFN0cmluZyxcbiAgICAgICAgKCkgPT4gU3Vic3RpdHV0ZVN0cmluZyxcbiAgICAgICAgKCkgPT4gVHJpbVN0cmluZyxcbiAgICAgICAgKCkgPT4gVHlwZUNvbnZlcnRlcixcbiAgICAgICAgKCkgPT4gVXBwZXJDYXNlU3RyaW5nLFxuICAgIF0sXG5dO1xudmFyIFB1dEFjY291bnRQb2xpY3lSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1BBUFIsXG4gICAgMCxcbiAgICBbX3BOLCBfcEQsIF9wVCwgX3MsIF9zQ10sXG4gICAgWzAsIDAsIDAsIDAsIDBdLFxuXTtcbnZhciBQdXRBY2NvdW50UG9saWN5UmVzcG9uc2UgPSBbMywgbjAsIF9QQVBSdSwgMCwgW19hUGNjXSwgWygpID0+IEFjY291bnRQb2xpY3ldXTtcbnZhciBQdXREYXRhUHJvdGVjdGlvblBvbGljeVJlcXVlc3QgPSBbMywgbjAsIF9QRFBQUiwgMCwgW19sR0lvLCBfcERdLCBbMCwgMF1dO1xudmFyIFB1dERhdGFQcm90ZWN0aW9uUG9saWN5UmVzcG9uc2UgPSBbMywgbjAsIF9QRFBQUnUsIDAsIFtfbEdJbywgX3BELCBfbFVUXSwgWzAsIDAsIDFdXTtcbnZhciBQdXREZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5UmVxdWVzdCA9IFszLCBuMCwgX1BERFBSLCAwLCBbX2RETiwgX2REUF0sIFswLCAwXV07XG52YXIgUHV0RGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeVJlc3BvbnNlID0gWzMsIG4wLCBfUEREUFJ1LCAwLCBbX3BvXSwgWygpID0+IFBvbGljeV1dO1xudmFyIFB1dERlbGl2ZXJ5RGVzdGluYXRpb25SZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1BERFIsXG4gICAgMCxcbiAgICBbX24sIF9vRiwgX2REQywgX2REVCwgX3RhXSxcbiAgICBbMCwgMCwgKCkgPT4gRGVsaXZlcnlEZXN0aW5hdGlvbkNvbmZpZ3VyYXRpb24sIDAsIDEyOCB8IDBdLFxuXTtcbnZhciBQdXREZWxpdmVyeURlc3RpbmF0aW9uUmVzcG9uc2UgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfUEREUnUsXG4gICAgMCxcbiAgICBbX2REZV0sXG4gICAgWygpID0+IERlbGl2ZXJ5RGVzdGluYXRpb25dLFxuXTtcbnZhciBQdXREZWxpdmVyeVNvdXJjZVJlcXVlc3QgPSBbMywgbjAsIF9QRFNSLCAwLCBbX24sIF9yQSwgX2xULCBfdGFdLCBbMCwgMCwgMCwgMTI4IHwgMF1dO1xudmFyIFB1dERlbGl2ZXJ5U291cmNlUmVzcG9uc2UgPSBbMywgbjAsIF9QRFNSdSwgMCwgW19kU2VsXSwgWygpID0+IERlbGl2ZXJ5U291cmNlXV07XG52YXIgUHV0RGVzdGluYXRpb25Qb2xpY3lSZXF1ZXN0ID0gWzMsIG4wLCBfUERQUiwgMCwgW19kTmUsIF9hUGMsIF9mVV0sIFswLCAwLCAyXV07XG52YXIgUHV0RGVzdGluYXRpb25SZXF1ZXN0ID0gWzMsIG4wLCBfUERSLCAwLCBbX2ROZSwgX3RBLCBfckFvLCBfdGFdLCBbMCwgMCwgMCwgMTI4IHwgMF1dO1xudmFyIFB1dERlc3RpbmF0aW9uUmVzcG9uc2UgPSBbMywgbjAsIF9QRFJ1LCAwLCBbX2Rlc10sIFsoKSA9PiBEZXN0aW5hdGlvbl1dO1xudmFyIFB1dEluZGV4UG9saWN5UmVxdWVzdCA9IFszLCBuMCwgX1BJUFIsIDAsIFtfbEdJbywgX3BEXSwgWzAsIDBdXTtcbnZhciBQdXRJbmRleFBvbGljeVJlc3BvbnNlID0gWzMsIG4wLCBfUElQUnUsIDAsIFtfaVBuZF0sIFsoKSA9PiBJbmRleFBvbGljeV1dO1xudmFyIFB1dEludGVncmF0aW9uUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9QSVIsXG4gICAgMCxcbiAgICBbX2lOLCBfckMsIF9pVG5dLFxuICAgIFswLCAoKSA9PiBSZXNvdXJjZUNvbmZpZywgMF0sXG5dO1xudmFyIFB1dEludGVncmF0aW9uUmVzcG9uc2UgPSBbMywgbjAsIF9QSVJ1LCAwLCBbX2lOLCBfaVNuXSwgWzAsIDBdXTtcbnZhciBQdXRMb2dFdmVudHNSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1BMRVIsXG4gICAgMCxcbiAgICBbX2xHTiwgX2xTTiwgX2xFLCBfc1RlLCBfZW50XSxcbiAgICBbMCwgMCwgKCkgPT4gSW5wdXRMb2dFdmVudHMsIDAsICgpID0+IEVudGl0eV0sXG5dO1xudmFyIFB1dExvZ0V2ZW50c1Jlc3BvbnNlID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1BMRVJ1LFxuICAgIDAsXG4gICAgW19uU1QsIF9yTEVJLCBfckVJXSxcbiAgICBbMCwgKCkgPT4gUmVqZWN0ZWRMb2dFdmVudHNJbmZvLCAoKSA9PiBSZWplY3RlZEVudGl0eUluZm9dLFxuXTtcbnZhciBQdXRMb2dHcm91cERlbGV0aW9uUHJvdGVjdGlvblJlcXVlc3QgPSBbMywgbjAsIF9QTEdEUFIsIDAsIFtfbEdJbywgX2RQRV0sIFswLCAyXV07XG52YXIgUHV0TWV0cmljRmlsdGVyUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9QTUZSLFxuICAgIDAsXG4gICAgW19sR04sIF9mTiwgX2ZQLCBfbVQsIF9hT1RMLCBfZlNDLCBfZVNGRF0sXG4gICAgWzAsIDAsIDAsICgpID0+IE1ldHJpY1RyYW5zZm9ybWF0aW9ucywgMiwgMCwgNjQgfCAwXSxcbl07XG52YXIgUHV0UXVlcnlEZWZpbml0aW9uUmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9QUURSLFxuICAgIDAsXG4gICAgW19xTCwgX24sIF9xREksIF9sR05vLCBfcVMsIF9jVGxdLFxuICAgIFswLCAwLCAwLCA2NCB8IDAsIDAsIFswLCA0XV0sXG5dO1xudmFyIFB1dFF1ZXJ5RGVmaW5pdGlvblJlc3BvbnNlID0gWzMsIG4wLCBfUFFEUnUsIDAsIFtfcURJXSwgWzBdXTtcbnZhciBQdXRSZXNvdXJjZVBvbGljeVJlcXVlc3QgPSBbMywgbjAsIF9QUlBSLCAwLCBbX3BOLCBfcEQsIF9yQSwgX2VSSV0sIFswLCAwLCAwLCAwXV07XG52YXIgUHV0UmVzb3VyY2VQb2xpY3lSZXNwb25zZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9QUlBSdSxcbiAgICAwLFxuICAgIFtfclBlLCBfcklldl0sXG4gICAgWygpID0+IFJlc291cmNlUG9saWN5LCAwXSxcbl07XG52YXIgUHV0UmV0ZW50aW9uUG9saWN5UmVxdWVzdCA9IFszLCBuMCwgX1BSUFJ1dCwgMCwgW19sR04sIF9ySURdLCBbMCwgMV1dO1xudmFyIFB1dFN1YnNjcmlwdGlvbkZpbHRlclJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfUFNGUixcbiAgICAwLFxuICAgIFtfbEdOLCBfZk4sIF9mUCwgX2RBLCBfckFvLCBfZGlzLCBfYU9UTCwgX2ZTQywgX2VTRl0sXG4gICAgWzAsIDAsIDAsIDAsIDAsIDAsIDIsIDAsIDY0IHwgMF0sXG5dO1xudmFyIFB1dFRyYW5zZm9ybWVyUmVxdWVzdCA9IFszLCBuMCwgX1BUUiwgMCwgW19sR0lvLCBfdENdLCBbMCwgKCkgPT4gUHJvY2Vzc29yc11dO1xudmFyIFF1ZXJ5Q29tcGlsZUVycm9yID0gWzMsIG4wLCBfUUNFLCAwLCBbX2xvLCBfbV0sIFsoKSA9PiBRdWVyeUNvbXBpbGVFcnJvckxvY2F0aW9uLCAwXV07XG52YXIgUXVlcnlDb21waWxlRXJyb3JMb2NhdGlvbiA9IFszLCBuMCwgX1FDRUwsIDAsIFtfc0NPLCBfZUNPXSwgWzEsIDFdXTtcbnZhciBRdWVyeURlZmluaXRpb24gPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfUUQsXG4gICAgMCxcbiAgICBbX3FMLCBfcURJLCBfbiwgX3FTLCBfbE0sIF9sR05vXSxcbiAgICBbMCwgMCwgMCwgMCwgMSwgNjQgfCAwXSxcbl07XG52YXIgUXVlcnlJbmZvID0gWzMsIG4wLCBfUUksIDAsIFtfcUwsIF9xSSwgX3FTLCBfc3RhLCBfY1RyLCBfbEdOXSwgWzAsIDAsIDAsIDAsIDEsIDBdXTtcbnZhciBRdWVyeVN0YXRpc3RpY3MgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfUVMsXG4gICAgMCxcbiAgICBbX3JNLCBfclMsIF9lUlMsIF9iUywgX2VCUywgX2xHU10sXG4gICAgWzEsIDEsIDEsIDEsIDEsIDFdLFxuXTtcbnZhciBSZWNvcmRGaWVsZCA9IFszLCBuMCwgX1JGLCAwLCBbX24sIF9tYW5dLCBbMCwgMl1dO1xudmFyIFJlamVjdGVkRW50aXR5SW5mbyA9IFszLCBuMCwgX1JFSSwgMCwgW19lVHJdLCBbMF1dO1xudmFyIFJlamVjdGVkTG9nRXZlbnRzSW5mbyA9IFszLCBuMCwgX1JMRUksIDAsIFtfdE5MRVNJLCBfdE9MRUVJLCBfZUxFRUldLCBbMSwgMSwgMV1dO1xudmFyIFJlbmFtZUtleUVudHJ5ID0gWzMsIG4wLCBfUktFLCAwLCBbX2ssIF9yVGVuLCBfb0lFXSwgWzAsIDAsIDJdXTtcbnZhciBSZW5hbWVLZXlzID0gWzMsIG4wLCBfUkssIDAsIFtfZW5dLCBbKCkgPT4gUmVuYW1lS2V5RW50cmllc11dO1xudmFyIFJlc291cmNlQWxyZWFkeUV4aXN0c0V4Y2VwdGlvbiA9IFstMywgbjAsIF9SQUVFLCB7IFtfZV06IF9jIH0sIFtfbV0sIFswXV07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihSZXNvdXJjZUFscmVhZHlFeGlzdHNFeGNlcHRpb24sIFJlc291cmNlQWxyZWFkeUV4aXN0c0V4Y2VwdGlvbiQxKTtcbnZhciBSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uID0gWy0zLCBuMCwgX1JORkUsIHsgW19lXTogX2MgfSwgW19tXSwgWzBdXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKFJlc291cmNlTm90Rm91bmRFeGNlcHRpb24sIFJlc291cmNlTm90Rm91bmRFeGNlcHRpb24kMSk7XG52YXIgUmVzb3VyY2VQb2xpY3kgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfUlAsXG4gICAgMCxcbiAgICBbX3BOLCBfcEQsIF9sVVQsIF9wU28sIF9yQSwgX3JJZXZdLFxuICAgIFswLCAwLCAxLCAwLCAwLCAwXSxcbl07XG52YXIgUmVzdWx0RmllbGQgPSBbMywgbjAsIF9SRmUsIDAsIFtfZmllLCBfdl0sIFswLCAwXV07XG52YXIgUzNDb25maWd1cmF0aW9uID0gWzMsIG4wLCBfU0MsIDAsIFtfZEksIF9yQW9dLCBbMCwgMF1dO1xudmFyIFMzRGVsaXZlcnlDb25maWd1cmF0aW9uID0gWzMsIG4wLCBfU0RDLCAwLCBbX3NQLCBfZUhDUF0sIFswLCAyXV07XG52YXIgUzNUYWJsZUludGVncmF0aW9uU291cmNlID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1NUSVMsXG4gICAgMCxcbiAgICBbX2ksIF9kUywgX3N0YSwgX3NSdCwgX2NUU3JdLFxuICAgIFswLCAoKSA9PiBEYXRhU291cmNlLCAwLCAwLCAxXSxcbl07XG52YXIgU2NoZWR1bGVkUXVlcnlEZXN0aW5hdGlvbiA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9TUUQsXG4gICAgMCxcbiAgICBbX2RULCBfZEksIF9zdGEsIF9wSXIsIF9lTV0sXG4gICAgWzAsIDAsIDAsIDAsIDBdLFxuXTtcbnZhciBTY2hlZHVsZWRRdWVyeVN1bW1hcnkgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfU1FTLFxuICAgIDAsXG4gICAgW19zUUEsIF9uLCBfc3QsIF9sVFQsIF9sRVMsIF9zRSwgX3RpLCBfZEMsIF9jVCwgX2xVVF0sXG4gICAgWzAsIDAsIDAsIDEsIDAsIDAsIDAsICgpID0+IERlc3RpbmF0aW9uQ29uZmlndXJhdGlvbiwgMSwgMV0sXG5dO1xudmFyIFNlYXJjaGVkTG9nU3RyZWFtID0gWzMsIG4wLCBfU0xTLCAwLCBbX2xTTiwgX3NDZV0sIFswLCAyXV07XG52YXIgU2VydmljZVF1b3RhRXhjZWVkZWRFeGNlcHRpb24gPSBbLTMsIG4wLCBfU1FFRSwgeyBbX2VdOiBfYyB9LCBbX21dLCBbMF1dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoU2VydmljZVF1b3RhRXhjZWVkZWRFeGNlcHRpb24sIFNlcnZpY2VRdW90YUV4Y2VlZGVkRXhjZXB0aW9uJDEpO1xudmFyIFNlcnZpY2VVbmF2YWlsYWJsZUV4Y2VwdGlvbiA9IFstMywgbjAsIF9TVUUsIHsgW19lXTogX3NlciB9LCBbX21dLCBbMF1dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoU2VydmljZVVuYXZhaWxhYmxlRXhjZXB0aW9uLCBTZXJ2aWNlVW5hdmFpbGFibGVFeGNlcHRpb24kMSk7XG52YXIgU2Vzc2lvblN0cmVhbWluZ0V4Y2VwdGlvbiA9IFstMywgbjAsIF9TU0UsIHsgW19lXTogX2MgfSwgW19tXSwgWzBdXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKFNlc3Npb25TdHJlYW1pbmdFeGNlcHRpb24sIFNlc3Npb25TdHJlYW1pbmdFeGNlcHRpb24kMSk7XG52YXIgU2Vzc2lvblRpbWVvdXRFeGNlcHRpb24gPSBbLTMsIG4wLCBfU1RFLCB7IFtfZV06IF9jIH0sIFtfbV0sIFswXV07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihTZXNzaW9uVGltZW91dEV4Y2VwdGlvbiwgU2Vzc2lvblRpbWVvdXRFeGNlcHRpb24kMSk7XG52YXIgU3BsaXRTdHJpbmcgPSBbMywgbjAsIF9TUywgMCwgW19lbl0sIFsoKSA9PiBTcGxpdFN0cmluZ0VudHJpZXNdXTtcbnZhciBTcGxpdFN0cmluZ0VudHJ5ID0gWzMsIG4wLCBfU1NFcCwgMCwgW19zbywgX2RlbF0sIFswLCAwXV07XG52YXIgU3RhcnRMaXZlVGFpbFJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfU0xUUixcbiAgICAwLFxuICAgIFtfbEdJLCBfbFNObywgX2xTTlBvLCBfbEVGUF0sXG4gICAgWzY0IHwgMCwgNjQgfCAwLCA2NCB8IDAsIDBdLFxuXTtcbnZhciBTdGFydExpdmVUYWlsUmVzcG9uc2UgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfU0xUUnQsXG4gICAgMCxcbiAgICBbX3JTZV0sXG4gICAgW1soKSA9PiBTdGFydExpdmVUYWlsUmVzcG9uc2VTdHJlYW0sIDBdXSxcbl07XG52YXIgU3RhcnRRdWVyeVJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfU1FSLFxuICAgIDAsXG4gICAgW19xTCwgX2xHTiwgX2xHTm8sIF9sR0ksIF9zVHQsIF9lVG4sIF9xUywgX2xpXSxcbiAgICBbMCwgMCwgNjQgfCAwLCA2NCB8IDAsIDEsIDEsIDAsIDFdLFxuXTtcbnZhciBTdGFydFF1ZXJ5UmVzcG9uc2UgPSBbMywgbjAsIF9TUVJ0LCAwLCBbX3FJXSwgWzBdXTtcbnZhciBTdG9wUXVlcnlSZXF1ZXN0ID0gWzMsIG4wLCBfU1FSdG8sIDAsIFtfcUldLCBbMF1dO1xudmFyIFN0b3BRdWVyeVJlc3BvbnNlID0gWzMsIG4wLCBfU1FSdG9wLCAwLCBbX3N1Y10sIFsyXV07XG52YXIgU3Vic2NyaXB0aW9uRmlsdGVyID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1NGLFxuICAgIDAsXG4gICAgW19mTiwgX2xHTiwgX2ZQLCBfZEEsIF9yQW8sIF9kaXMsIF9hT1RMLCBfY1QsIF9mU0MsIF9lU0ZdLFxuICAgIFswLCAwLCAwLCAwLCAwLCAwLCAyLCAxLCAwLCA2NCB8IDBdLFxuXTtcbnZhciBTdWJzdGl0dXRlU3RyaW5nID0gWzMsIG4wLCBfU1N1LCAwLCBbX2VuXSwgWygpID0+IFN1YnN0aXR1dGVTdHJpbmdFbnRyaWVzXV07XG52YXIgU3Vic3RpdHV0ZVN0cmluZ0VudHJ5ID0gWzMsIG4wLCBfU1NFdSwgMCwgW19zbywgX2YsIF90b10sIFswLCAwLCAwXV07XG52YXIgU3VwcHJlc3Npb25QZXJpb2QgPSBbMywgbjAsIF9TUCwgMCwgW192LCBfc1V1XSwgWzEsIDBdXTtcbnZhciBUYWdMb2dHcm91cFJlcXVlc3QgPSBbMywgbjAsIF9UTEdSLCAwLCBbX2xHTiwgX3RhXSwgWzAsIDEyOCB8IDBdXTtcbnZhciBUYWdSZXNvdXJjZVJlcXVlc3QgPSBbMywgbjAsIF9UUlIsIDAsIFtfckEsIF90YV0sIFswLCAxMjggfCAwXV07XG52YXIgVGVzdE1ldHJpY0ZpbHRlclJlcXVlc3QgPSBbMywgbjAsIF9UTUZSLCAwLCBbX2ZQLCBfbEVNXSwgWzAsIDY0IHwgMF1dO1xudmFyIFRlc3RNZXRyaWNGaWx0ZXJSZXNwb25zZSA9IFszLCBuMCwgX1RNRlJlLCAwLCBbX21hdF0sIFsoKSA9PiBNZXRyaWNGaWx0ZXJNYXRjaGVzXV07XG52YXIgVGVzdFRyYW5zZm9ybWVyUmVxdWVzdCA9IFszLCBuMCwgX1RUUiwgMCwgW190QywgX2xFTV0sIFsoKSA9PiBQcm9jZXNzb3JzLCA2NCB8IDBdXTtcbnZhciBUZXN0VHJhbnNmb3JtZXJSZXNwb25zZSA9IFszLCBuMCwgX1RUUmUsIDAsIFtfdExdLCBbKCkgPT4gVHJhbnNmb3JtZWRMb2dzXV07XG52YXIgVGhyb3R0bGluZ0V4Y2VwdGlvbiA9IFstMywgbjAsIF9URSwgeyBbX2VdOiBfYyB9LCBbX21dLCBbMF1dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoVGhyb3R0bGluZ0V4Y2VwdGlvbiwgVGhyb3R0bGluZ0V4Y2VwdGlvbiQxKTtcbnZhciBUb29NYW55VGFnc0V4Y2VwdGlvbiA9IFstMywgbjAsIF9UTVRFLCB7IFtfZV06IF9jLCBbX2hFXTogNDAwIH0sIFtfbSwgX3JOXSwgWzAsIDBdXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKFRvb01hbnlUYWdzRXhjZXB0aW9uLCBUb29NYW55VGFnc0V4Y2VwdGlvbiQxKTtcbnZhciBUcmFuc2Zvcm1lZExvZ1JlY29yZCA9IFszLCBuMCwgX1RMUiwgMCwgW19lTiwgX2VNdiwgX3RFTV0sIFsxLCAwLCAwXV07XG52YXIgVHJpZ2dlckhpc3RvcnlSZWNvcmQgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfVEhSLFxuICAgIDAsXG4gICAgW19xSSwgX2VTeCwgX3RUciwgX2VNLCBfZGVzdF0sXG4gICAgWzAsIDAsIDEsIDAsICgpID0+IFNjaGVkdWxlZFF1ZXJ5RGVzdGluYXRpb25MaXN0XSxcbl07XG52YXIgVHJpbVN0cmluZyA9IFszLCBuMCwgX1RTLCAwLCBbX3dLXSwgWzY0IHwgMF1dO1xudmFyIFR5cGVDb252ZXJ0ZXIgPSBbMywgbjAsIF9UQywgMCwgW19lbl0sIFsoKSA9PiBUeXBlQ29udmVydGVyRW50cmllc11dO1xudmFyIFR5cGVDb252ZXJ0ZXJFbnRyeSA9IFszLCBuMCwgX1RDRSwgMCwgW19rLCBfdHldLCBbMCwgMF1dO1xudmFyIFVucmVjb2duaXplZENsaWVudEV4Y2VwdGlvbiA9IFstMywgbjAsIF9VQ0UsIHsgW19lXTogX2MgfSwgW19tXSwgWzBdXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKFVucmVjb2duaXplZENsaWVudEV4Y2VwdGlvbiwgVW5yZWNvZ25pemVkQ2xpZW50RXhjZXB0aW9uJDEpO1xudmFyIFVudGFnTG9nR3JvdXBSZXF1ZXN0ID0gWzMsIG4wLCBfVUxHUiwgMCwgW19sR04sIF90YV0sIFswLCA2NCB8IDBdXTtcbnZhciBVbnRhZ1Jlc291cmNlUmVxdWVzdCA9IFszLCBuMCwgX1VSUiwgMCwgW19yQSwgX3RLXSwgWzAsIDY0IHwgMF1dO1xudmFyIFVwZGF0ZUFub21hbHlSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1VBUixcbiAgICAwLFxuICAgIFtfYUluLCBfcEksIF9hREEsIF9zVHUsIF9zUHUsIF9iXSxcbiAgICBbMCwgMCwgMCwgMCwgKCkgPT4gU3VwcHJlc3Npb25QZXJpb2QsIDJdLFxuXTtcbnZhciBVcGRhdGVEZWxpdmVyeUNvbmZpZ3VyYXRpb25SZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1VEQ1IsXG4gICAgMCxcbiAgICBbX2lkLCBfckYsIF9mRCwgX3NEQ10sXG4gICAgWzAsIDY0IHwgMCwgMCwgKCkgPT4gUzNEZWxpdmVyeUNvbmZpZ3VyYXRpb25dLFxuXTtcbnZhciBVcGRhdGVEZWxpdmVyeUNvbmZpZ3VyYXRpb25SZXNwb25zZSA9IFszLCBuMCwgX1VEQ1JwLCAwLCBbXSwgW11dO1xudmFyIFVwZGF0ZUxvZ0Fub21hbHlEZXRlY3RvclJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfVUxBRFIsXG4gICAgMCxcbiAgICBbX2FEQSwgX2VGLCBfZlAsIF9hVlQsIF9lbmFdLFxuICAgIFswLCAwLCAwLCAxLCAyXSxcbl07XG52YXIgVXBkYXRlU2NoZWR1bGVkUXVlcnlSZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1VTUVIsXG4gICAgMCxcbiAgICBbX2ksIF9kLCBfcUwsIF9xUywgX2xHSSwgX3NFLCBfdGksIF9zVE8sIF9kQywgX3NTVCwgX3NFVCwgX2VSQSwgX3N0XSxcbiAgICBbMCwgMCwgMCwgMCwgNjQgfCAwLCAwLCAwLCAxLCAoKSA9PiBEZXN0aW5hdGlvbkNvbmZpZ3VyYXRpb24sIDEsIDEsIDAsIDBdLFxuXTtcbnZhciBVcGRhdGVTY2hlZHVsZWRRdWVyeVJlc3BvbnNlID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1VTUVJwLFxuICAgIDAsXG4gICAgW19zUUEsIF9uLCBfZCwgX3FMLCBfcVMsIF9sR0ksIF9zRSwgX3RpLCBfc1RPLCBfZEMsIF9zdCwgX2xUVCwgX2xFUywgX3NTVCwgX3NFVCwgX2VSQSwgX2NULCBfbFVUXSxcbiAgICBbMCwgMCwgMCwgMCwgMCwgNjQgfCAwLCAwLCAwLCAxLCAoKSA9PiBEZXN0aW5hdGlvbkNvbmZpZ3VyYXRpb24sIDAsIDEsIDAsIDEsIDEsIDAsIDEsIDFdLFxuXTtcbnZhciBVcHBlckNhc2VTdHJpbmcgPSBbMywgbjAsIF9VQ1MsIDAsIFtfd0tdLCBbNjQgfCAwXV07XG52YXIgVmFsaWRhdGlvbkV4Y2VwdGlvbiA9IFstMywgbjAsIF9WRSwgeyBbX2VdOiBfYyB9LCBbX21dLCBbMF1dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoVmFsaWRhdGlvbkV4Y2VwdGlvbiwgVmFsaWRhdGlvbkV4Y2VwdGlvbiQxKTtcbnZhciBfX1VuaXQgPSBcInVuaXRcIjtcbnZhciBDbG91ZFdhdGNoTG9nc1NlcnZpY2VFeGNlcHRpb24gPSBbLTMsIF9zbSwgXCJDbG91ZFdhdGNoTG9nc1NlcnZpY2VFeGNlcHRpb25cIiwgMCwgW10sIFtdXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKF9zbSkucmVnaXN0ZXJFcnJvcihDbG91ZFdhdGNoTG9nc1NlcnZpY2VFeGNlcHRpb24sIENsb3VkV2F0Y2hMb2dzU2VydmljZUV4Y2VwdGlvbiQxKTtcbnZhciBBY2NvdW50UG9saWNpZXMgPSBbMSwgbjAsIF9BUGMsIDAsICgpID0+IEFjY291bnRQb2xpY3ldO1xudmFyIEFkZEtleUVudHJpZXMgPSBbMSwgbjAsIF9BS0VkLCAwLCAoKSA9PiBBZGRLZXlFbnRyeV07XG52YXIgQWdncmVnYXRlTG9nR3JvdXBTdW1tYXJpZXMgPSBbMSwgbjAsIF9BTEdTZywgMCwgKCkgPT4gQWdncmVnYXRlTG9nR3JvdXBTdW1tYXJ5XTtcbnZhciBBbGxvd2VkRmllbGRzID0gWzEsIG4wLCBfQUYsIDAsICgpID0+IFJlY29yZEZpZWxkXTtcbnZhciBBbm9tYWxpZXMgPSBbMSwgbjAsIF9BbiwgMCwgKCkgPT4gQW5vbWFseV07XG52YXIgQW5vbWFseURldGVjdG9ycyA9IFsxLCBuMCwgX0FEbiwgMCwgKCkgPT4gQW5vbWFseURldGVjdG9yXTtcbnZhciBDb25maWd1cmF0aW9uVGVtcGxhdGVzID0gWzEsIG4wLCBfQ1RvLCAwLCAoKSA9PiBDb25maWd1cmF0aW9uVGVtcGxhdGVdO1xudmFyIENvcHlWYWx1ZUVudHJpZXMgPSBbMSwgbjAsIF9DVkVvLCAwLCAoKSA9PiBDb3B5VmFsdWVFbnRyeV07XG52YXIgRGF0YVNvdXJjZUZpbHRlcnMgPSBbMSwgbjAsIF9EU0ZhLCAwLCAoKSA9PiBEYXRhU291cmNlRmlsdGVyXTtcbnZhciBEZWxpdmVyaWVzID0gWzEsIG4wLCBfRGVsLCAwLCAoKSA9PiBEZWxpdmVyeV07XG52YXIgRGVsaXZlcnlEZXN0aW5hdGlvbnMgPSBbMSwgbjAsIF9ERGUsIDAsICgpID0+IERlbGl2ZXJ5RGVzdGluYXRpb25dO1xudmFyIERlbGl2ZXJ5U291cmNlcyA9IFsxLCBuMCwgX0RTZWwsIDAsICgpID0+IERlbGl2ZXJ5U291cmNlXTtcbnZhciBEZXN0aW5hdGlvbnMgPSBbMSwgbjAsIF9EZXMsIDAsICgpID0+IERlc3RpbmF0aW9uXTtcbnZhciBFeHBvcnRUYXNrcyA9IFsxLCBuMCwgX0VUeCwgMCwgKCkgPT4gRXhwb3J0VGFza107XG52YXIgRmllbGRJbmRleGVzID0gWzEsIG4wLCBfRklpLCAwLCAoKSA9PiBGaWVsZEluZGV4XTtcbnZhciBGaWx0ZXJlZExvZ0V2ZW50cyA9IFsxLCBuMCwgX0ZMRWksIDAsICgpID0+IEZpbHRlcmVkTG9nRXZlbnRdO1xudmFyIEdyb3VwaW5nSWRlbnRpZmllcnMgPSBbMSwgbjAsIF9HSXIsIDAsICgpID0+IEdyb3VwaW5nSWRlbnRpZmllcl07XG52YXIgSW1wb3J0QmF0Y2hMaXN0ID0gWzEsIG4wLCBfSUJMLCAwLCAoKSA9PiBJbXBvcnRCYXRjaF07XG52YXIgSW1wb3J0TGlzdCA9IFsxLCBuMCwgX0lMLCAwLCAoKSA9PiBJbXBvcnRdO1xudmFyIEluZGV4UG9saWNpZXMgPSBbMSwgbjAsIF9JUG4sIDAsICgpID0+IEluZGV4UG9saWN5XTtcbnZhciBJbnB1dExvZ0V2ZW50cyA9IFsxLCBuMCwgX0lMRW4sIDAsICgpID0+IElucHV0TG9nRXZlbnRdO1xudmFyIEludGVncmF0aW9uU3VtbWFyaWVzID0gWzEsIG4wLCBfSVNudCwgMCwgKCkgPT4gSW50ZWdyYXRpb25TdW1tYXJ5XTtcbnZhciBMaXZlVGFpbFNlc3Npb25SZXN1bHRzID0gWzEsIG4wLCBfTFRTUiwgMCwgKCkgPT4gTGl2ZVRhaWxTZXNzaW9uTG9nRXZlbnRdO1xudmFyIExvZ0ZpZWxkc0xpc3QgPSBbMSwgbjAsIF9MRkwsIDAsICgpID0+IExvZ0ZpZWxkc0xpc3RJdGVtXTtcbnZhciBMb2dHcm91cEZpZWxkTGlzdCA9IFsxLCBuMCwgX0xHRkwsIDAsICgpID0+IExvZ0dyb3VwRmllbGRdO1xudmFyIExvZ0dyb3VwcyA9IFsxLCBuMCwgX0xHbywgMCwgKCkgPT4gTG9nR3JvdXBdO1xudmFyIExvZ0dyb3VwU3VtbWFyaWVzID0gWzEsIG4wLCBfTEdTbywgMCwgKCkgPT4gTG9nR3JvdXBTdW1tYXJ5XTtcbnZhciBMb2dTYW1wbGVzID0gWzEsIG4wLCBfTFNvLCAwLCAoKSA9PiBMb2dFdmVudF07XG52YXIgTG9nU3RyZWFtcyA9IFsxLCBuMCwgX0xTb2csIDAsICgpID0+IExvZ1N0cmVhbV07XG52YXIgTWV0cmljRmlsdGVyTWF0Y2hlcyA9IFsxLCBuMCwgX01GTSwgMCwgKCkgPT4gTWV0cmljRmlsdGVyTWF0Y2hSZWNvcmRdO1xudmFyIE1ldHJpY0ZpbHRlcnMgPSBbMSwgbjAsIF9NRmUsIDAsICgpID0+IE1ldHJpY0ZpbHRlcl07XG52YXIgTWV0cmljVHJhbnNmb3JtYXRpb25zID0gWzEsIG4wLCBfTVRlLCAwLCAoKSA9PiBNZXRyaWNUcmFuc2Zvcm1hdGlvbl07XG52YXIgTW92ZUtleUVudHJpZXMgPSBbMSwgbjAsIF9NS0VvLCAwLCAoKSA9PiBNb3ZlS2V5RW50cnldO1xudmFyIE91dHB1dExvZ0V2ZW50cyA9IFsxLCBuMCwgX09MRXUsIDAsICgpID0+IE91dHB1dExvZ0V2ZW50XTtcbnZhciBQYXR0ZXJuVG9rZW5zID0gWzEsIG4wLCBfUFRhLCAwLCAoKSA9PiBQYXR0ZXJuVG9rZW5dO1xudmFyIFByb2Nlc3NvcnMgPSBbMSwgbjAsIF9Qcm8sIDAsICgpID0+IFByb2Nlc3Nvcl07XG52YXIgUXVlcnlEZWZpbml0aW9uTGlzdCA9IFsxLCBuMCwgX1FETCwgMCwgKCkgPT4gUXVlcnlEZWZpbml0aW9uXTtcbnZhciBRdWVyeUluZm9MaXN0ID0gWzEsIG4wLCBfUUlMLCAwLCAoKSA9PiBRdWVyeUluZm9dO1xudmFyIFF1ZXJ5UmVzdWx0cyA9IFsxLCBuMCwgX1FSLCAwLCAoKSA9PiBSZXN1bHRSb3dzXTtcbnZhciBSZW5hbWVLZXlFbnRyaWVzID0gWzEsIG4wLCBfUktFZSwgMCwgKCkgPT4gUmVuYW1lS2V5RW50cnldO1xudmFyIFJlc291cmNlUG9saWNpZXMgPSBbMSwgbjAsIF9SUGUsIDAsICgpID0+IFJlc291cmNlUG9saWN5XTtcbnZhciBSZXN1bHRSb3dzID0gWzEsIG4wLCBfUlIsIDAsICgpID0+IFJlc3VsdEZpZWxkXTtcbnZhciBTM1RhYmxlSW50ZWdyYXRpb25Tb3VyY2VzID0gWzEsIG4wLCBfU1RJU2EsIDAsICgpID0+IFMzVGFibGVJbnRlZ3JhdGlvblNvdXJjZV07XG52YXIgU2NoZWR1bGVkUXVlcnlEZXN0aW5hdGlvbkxpc3QgPSBbMSwgbjAsIF9TUURMLCAwLCAoKSA9PiBTY2hlZHVsZWRRdWVyeURlc3RpbmF0aW9uXTtcbnZhciBTY2hlZHVsZWRRdWVyeVN1bW1hcnlMaXN0ID0gWzEsIG4wLCBfU1FTTCwgMCwgKCkgPT4gU2NoZWR1bGVkUXVlcnlTdW1tYXJ5XTtcbnZhciBTZWFyY2hlZExvZ1N0cmVhbXMgPSBbMSwgbjAsIF9TTFNlLCAwLCAoKSA9PiBTZWFyY2hlZExvZ1N0cmVhbV07XG52YXIgU3BsaXRTdHJpbmdFbnRyaWVzID0gWzEsIG4wLCBfU1NFcGwsIDAsICgpID0+IFNwbGl0U3RyaW5nRW50cnldO1xudmFyIFN1YnNjcmlwdGlvbkZpbHRlcnMgPSBbMSwgbjAsIF9TRnUsIDAsICgpID0+IFN1YnNjcmlwdGlvbkZpbHRlcl07XG52YXIgU3Vic3RpdHV0ZVN0cmluZ0VudHJpZXMgPSBbMSwgbjAsIF9TU0V1YiwgMCwgKCkgPT4gU3Vic3RpdHV0ZVN0cmluZ0VudHJ5XTtcbnZhciBUcmFuc2Zvcm1lZExvZ3MgPSBbMSwgbjAsIF9UTCwgMCwgKCkgPT4gVHJhbnNmb3JtZWRMb2dSZWNvcmRdO1xudmFyIFRyaWdnZXJIaXN0b3J5UmVjb3JkTGlzdCA9IFsxLCBuMCwgX1RIUkwsIDAsICgpID0+IFRyaWdnZXJIaXN0b3J5UmVjb3JkXTtcbnZhciBUeXBlQ29udmVydGVyRW50cmllcyA9IFsxLCBuMCwgX1RDRXksIDAsICgpID0+IFR5cGVDb252ZXJ0ZXJFbnRyeV07XG52YXIgR2V0TG9nT2JqZWN0UmVzcG9uc2VTdHJlYW0gPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfR0xPUlMsXG4gICAgeyBbX3N0cl06IDEgfSxcbiAgICBbX2ZpLCBfSVNFbl0sXG4gICAgWygpID0+IEZpZWxkc0RhdGEsIFsoKSA9PiBJbnRlcm5hbFN0cmVhbWluZ0V4Y2VwdGlvbiwgMF1dLFxuXTtcbnZhciBJbnRlZ3JhdGlvbkRldGFpbHMgPSBbMywgbjAsIF9JRCwgMCwgW19vU0lEXSwgWygpID0+IE9wZW5TZWFyY2hJbnRlZ3JhdGlvbkRldGFpbHNdXTtcbnZhciBSZXNvdXJjZUNvbmZpZyA9IFszLCBuMCwgX1JDLCAwLCBbX29TUkNdLCBbKCkgPT4gT3BlblNlYXJjaFJlc291cmNlQ29uZmlnXV07XG52YXIgU3RhcnRMaXZlVGFpbFJlc3BvbnNlU3RyZWFtID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX1NMVFJTLFxuICAgIHsgW19zdHJdOiAxIH0sXG4gICAgW19zU2UsIF9zVWUsIF9TVEUsIF9TU0VdLFxuICAgIFtcbiAgICAgICAgKCkgPT4gTGl2ZVRhaWxTZXNzaW9uU3RhcnQsXG4gICAgICAgICgpID0+IExpdmVUYWlsU2Vzc2lvblVwZGF0ZSxcbiAgICAgICAgWygpID0+IFNlc3Npb25UaW1lb3V0RXhjZXB0aW9uLCAwXSxcbiAgICAgICAgWygpID0+IFNlc3Npb25TdHJlYW1pbmdFeGNlcHRpb24sIDBdLFxuICAgIF0sXG5dO1xudmFyIEFzc29jaWF0ZUttc0tleSA9IFs5LCBuMCwgX0FLSywgMCwgKCkgPT4gQXNzb2NpYXRlS21zS2V5UmVxdWVzdCwgKCkgPT4gX19Vbml0XTtcbnZhciBBc3NvY2lhdGVTb3VyY2VUb1MzVGFibGVJbnRlZ3JhdGlvbiA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9BU1RTVEksXG4gICAgMCxcbiAgICAoKSA9PiBBc3NvY2lhdGVTb3VyY2VUb1MzVGFibGVJbnRlZ3JhdGlvblJlcXVlc3QsXG4gICAgKCkgPT4gQXNzb2NpYXRlU291cmNlVG9TM1RhYmxlSW50ZWdyYXRpb25SZXNwb25zZSxcbl07XG52YXIgQ2FuY2VsRXhwb3J0VGFzayA9IFs5LCBuMCwgX0NFVCwgMCwgKCkgPT4gQ2FuY2VsRXhwb3J0VGFza1JlcXVlc3QsICgpID0+IF9fVW5pdF07XG52YXIgQ2FuY2VsSW1wb3J0VGFzayA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9DSVQsXG4gICAgMCxcbiAgICAoKSA9PiBDYW5jZWxJbXBvcnRUYXNrUmVxdWVzdCxcbiAgICAoKSA9PiBDYW5jZWxJbXBvcnRUYXNrUmVzcG9uc2UsXG5dO1xudmFyIENyZWF0ZURlbGl2ZXJ5ID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0NELFxuICAgIDAsXG4gICAgKCkgPT4gQ3JlYXRlRGVsaXZlcnlSZXF1ZXN0LFxuICAgICgpID0+IENyZWF0ZURlbGl2ZXJ5UmVzcG9uc2UsXG5dO1xudmFyIENyZWF0ZUV4cG9ydFRhc2sgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfQ0VUcixcbiAgICAwLFxuICAgICgpID0+IENyZWF0ZUV4cG9ydFRhc2tSZXF1ZXN0LFxuICAgICgpID0+IENyZWF0ZUV4cG9ydFRhc2tSZXNwb25zZSxcbl07XG52YXIgQ3JlYXRlSW1wb3J0VGFzayA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9DSVRyLFxuICAgIDAsXG4gICAgKCkgPT4gQ3JlYXRlSW1wb3J0VGFza1JlcXVlc3QsXG4gICAgKCkgPT4gQ3JlYXRlSW1wb3J0VGFza1Jlc3BvbnNlLFxuXTtcbnZhciBDcmVhdGVMb2dBbm9tYWx5RGV0ZWN0b3IgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfQ0xBRCxcbiAgICAwLFxuICAgICgpID0+IENyZWF0ZUxvZ0Fub21hbHlEZXRlY3RvclJlcXVlc3QsXG4gICAgKCkgPT4gQ3JlYXRlTG9nQW5vbWFseURldGVjdG9yUmVzcG9uc2UsXG5dO1xudmFyIENyZWF0ZUxvZ0dyb3VwID0gWzksIG4wLCBfQ0xHLCAwLCAoKSA9PiBDcmVhdGVMb2dHcm91cFJlcXVlc3QsICgpID0+IF9fVW5pdF07XG52YXIgQ3JlYXRlTG9nU3RyZWFtID0gWzksIG4wLCBfQ0xTLCAwLCAoKSA9PiBDcmVhdGVMb2dTdHJlYW1SZXF1ZXN0LCAoKSA9PiBfX1VuaXRdO1xudmFyIENyZWF0ZVNjaGVkdWxlZFF1ZXJ5ID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0NTUSxcbiAgICAwLFxuICAgICgpID0+IENyZWF0ZVNjaGVkdWxlZFF1ZXJ5UmVxdWVzdCxcbiAgICAoKSA9PiBDcmVhdGVTY2hlZHVsZWRRdWVyeVJlc3BvbnNlLFxuXTtcbnZhciBEZWxldGVBY2NvdW50UG9saWN5ID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0RBUCxcbiAgICAwLFxuICAgICgpID0+IERlbGV0ZUFjY291bnRQb2xpY3lSZXF1ZXN0LFxuICAgICgpID0+IF9fVW5pdCxcbl07XG52YXIgRGVsZXRlRGF0YVByb3RlY3Rpb25Qb2xpY3kgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfRERQUCxcbiAgICAwLFxuICAgICgpID0+IERlbGV0ZURhdGFQcm90ZWN0aW9uUG9saWN5UmVxdWVzdCxcbiAgICAoKSA9PiBfX1VuaXQsXG5dO1xudmFyIERlbGV0ZURlbGl2ZXJ5ID0gWzksIG4wLCBfRERlbCwgMCwgKCkgPT4gRGVsZXRlRGVsaXZlcnlSZXF1ZXN0LCAoKSA9PiBfX1VuaXRdO1xudmFyIERlbGV0ZURlbGl2ZXJ5RGVzdGluYXRpb24gPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfRERELFxuICAgIDAsXG4gICAgKCkgPT4gRGVsZXRlRGVsaXZlcnlEZXN0aW5hdGlvblJlcXVlc3QsXG4gICAgKCkgPT4gX19Vbml0LFxuXTtcbnZhciBEZWxldGVEZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5ID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0RERFAsXG4gICAgMCxcbiAgICAoKSA9PiBEZWxldGVEZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5UmVxdWVzdCxcbiAgICAoKSA9PiBfX1VuaXQsXG5dO1xudmFyIERlbGV0ZURlbGl2ZXJ5U291cmNlID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0REUyxcbiAgICAwLFxuICAgICgpID0+IERlbGV0ZURlbGl2ZXJ5U291cmNlUmVxdWVzdCxcbiAgICAoKSA9PiBfX1VuaXQsXG5dO1xudmFyIERlbGV0ZURlc3RpbmF0aW9uID0gWzksIG4wLCBfRERlbGUsIDAsICgpID0+IERlbGV0ZURlc3RpbmF0aW9uUmVxdWVzdCwgKCkgPT4gX19Vbml0XTtcbnZhciBEZWxldGVJbmRleFBvbGljeSA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9ESVAsXG4gICAgMCxcbiAgICAoKSA9PiBEZWxldGVJbmRleFBvbGljeVJlcXVlc3QsXG4gICAgKCkgPT4gRGVsZXRlSW5kZXhQb2xpY3lSZXNwb25zZSxcbl07XG52YXIgRGVsZXRlSW50ZWdyYXRpb24gPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfREksXG4gICAgMCxcbiAgICAoKSA9PiBEZWxldGVJbnRlZ3JhdGlvblJlcXVlc3QsXG4gICAgKCkgPT4gRGVsZXRlSW50ZWdyYXRpb25SZXNwb25zZSxcbl07XG52YXIgRGVsZXRlTG9nQW5vbWFseURldGVjdG9yID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0RMQUQsXG4gICAgMCxcbiAgICAoKSA9PiBEZWxldGVMb2dBbm9tYWx5RGV0ZWN0b3JSZXF1ZXN0LFxuICAgICgpID0+IF9fVW5pdCxcbl07XG52YXIgRGVsZXRlTG9nR3JvdXAgPSBbOSwgbjAsIF9ETEcsIDAsICgpID0+IERlbGV0ZUxvZ0dyb3VwUmVxdWVzdCwgKCkgPT4gX19Vbml0XTtcbnZhciBEZWxldGVMb2dTdHJlYW0gPSBbOSwgbjAsIF9ETFMsIDAsICgpID0+IERlbGV0ZUxvZ1N0cmVhbVJlcXVlc3QsICgpID0+IF9fVW5pdF07XG52YXIgRGVsZXRlTWV0cmljRmlsdGVyID0gWzksIG4wLCBfRE1GLCAwLCAoKSA9PiBEZWxldGVNZXRyaWNGaWx0ZXJSZXF1ZXN0LCAoKSA9PiBfX1VuaXRdO1xudmFyIERlbGV0ZVF1ZXJ5RGVmaW5pdGlvbiA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9EUUQsXG4gICAgMCxcbiAgICAoKSA9PiBEZWxldGVRdWVyeURlZmluaXRpb25SZXF1ZXN0LFxuICAgICgpID0+IERlbGV0ZVF1ZXJ5RGVmaW5pdGlvblJlc3BvbnNlLFxuXTtcbnZhciBEZWxldGVSZXNvdXJjZVBvbGljeSA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9EUlAsXG4gICAgMCxcbiAgICAoKSA9PiBEZWxldGVSZXNvdXJjZVBvbGljeVJlcXVlc3QsXG4gICAgKCkgPT4gX19Vbml0LFxuXTtcbnZhciBEZWxldGVSZXRlbnRpb25Qb2xpY3kgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfRFJQZSxcbiAgICAwLFxuICAgICgpID0+IERlbGV0ZVJldGVudGlvblBvbGljeVJlcXVlc3QsXG4gICAgKCkgPT4gX19Vbml0LFxuXTtcbnZhciBEZWxldGVTY2hlZHVsZWRRdWVyeSA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9EU1EsXG4gICAgMCxcbiAgICAoKSA9PiBEZWxldGVTY2hlZHVsZWRRdWVyeVJlcXVlc3QsXG4gICAgKCkgPT4gRGVsZXRlU2NoZWR1bGVkUXVlcnlSZXNwb25zZSxcbl07XG52YXIgRGVsZXRlU3Vic2NyaXB0aW9uRmlsdGVyID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0RTRmUsXG4gICAgMCxcbiAgICAoKSA9PiBEZWxldGVTdWJzY3JpcHRpb25GaWx0ZXJSZXF1ZXN0LFxuICAgICgpID0+IF9fVW5pdCxcbl07XG52YXIgRGVsZXRlVHJhbnNmb3JtZXIgPSBbOSwgbjAsIF9EVCwgMCwgKCkgPT4gRGVsZXRlVHJhbnNmb3JtZXJSZXF1ZXN0LCAoKSA9PiBfX1VuaXRdO1xudmFyIERlc2NyaWJlQWNjb3VudFBvbGljaWVzID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0RBUGUsXG4gICAgMCxcbiAgICAoKSA9PiBEZXNjcmliZUFjY291bnRQb2xpY2llc1JlcXVlc3QsXG4gICAgKCkgPT4gRGVzY3JpYmVBY2NvdW50UG9saWNpZXNSZXNwb25zZSxcbl07XG52YXIgRGVzY3JpYmVDb25maWd1cmF0aW9uVGVtcGxhdGVzID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0RDVCxcbiAgICAwLFxuICAgICgpID0+IERlc2NyaWJlQ29uZmlndXJhdGlvblRlbXBsYXRlc1JlcXVlc3QsXG4gICAgKCkgPT4gRGVzY3JpYmVDb25maWd1cmF0aW9uVGVtcGxhdGVzUmVzcG9uc2UsXG5dO1xudmFyIERlc2NyaWJlRGVsaXZlcmllcyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9ERGVzLFxuICAgIDAsXG4gICAgKCkgPT4gRGVzY3JpYmVEZWxpdmVyaWVzUmVxdWVzdCxcbiAgICAoKSA9PiBEZXNjcmliZURlbGl2ZXJpZXNSZXNwb25zZSxcbl07XG52YXIgRGVzY3JpYmVEZWxpdmVyeURlc3RpbmF0aW9ucyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9ERERlLFxuICAgIDAsXG4gICAgKCkgPT4gRGVzY3JpYmVEZWxpdmVyeURlc3RpbmF0aW9uc1JlcXVlc3QsXG4gICAgKCkgPT4gRGVzY3JpYmVEZWxpdmVyeURlc3RpbmF0aW9uc1Jlc3BvbnNlLFxuXTtcbnZhciBEZXNjcmliZURlbGl2ZXJ5U291cmNlcyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9ERFNlLFxuICAgIDAsXG4gICAgKCkgPT4gRGVzY3JpYmVEZWxpdmVyeVNvdXJjZXNSZXF1ZXN0LFxuICAgICgpID0+IERlc2NyaWJlRGVsaXZlcnlTb3VyY2VzUmVzcG9uc2UsXG5dO1xudmFyIERlc2NyaWJlRGVzdGluYXRpb25zID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0REZXNjLFxuICAgIDAsXG4gICAgKCkgPT4gRGVzY3JpYmVEZXN0aW5hdGlvbnNSZXF1ZXN0LFxuICAgICgpID0+IERlc2NyaWJlRGVzdGluYXRpb25zUmVzcG9uc2UsXG5dO1xudmFyIERlc2NyaWJlRXhwb3J0VGFza3MgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfREVULFxuICAgIDAsXG4gICAgKCkgPT4gRGVzY3JpYmVFeHBvcnRUYXNrc1JlcXVlc3QsXG4gICAgKCkgPT4gRGVzY3JpYmVFeHBvcnRUYXNrc1Jlc3BvbnNlLFxuXTtcbnZhciBEZXNjcmliZUZpZWxkSW5kZXhlcyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9ERkksXG4gICAgMCxcbiAgICAoKSA9PiBEZXNjcmliZUZpZWxkSW5kZXhlc1JlcXVlc3QsXG4gICAgKCkgPT4gRGVzY3JpYmVGaWVsZEluZGV4ZXNSZXNwb25zZSxcbl07XG52YXIgRGVzY3JpYmVJbXBvcnRUYXNrQmF0Y2hlcyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9ESVRCLFxuICAgIDAsXG4gICAgKCkgPT4gRGVzY3JpYmVJbXBvcnRUYXNrQmF0Y2hlc1JlcXVlc3QsXG4gICAgKCkgPT4gRGVzY3JpYmVJbXBvcnRUYXNrQmF0Y2hlc1Jlc3BvbnNlLFxuXTtcbnZhciBEZXNjcmliZUltcG9ydFRhc2tzID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0RJVCxcbiAgICAwLFxuICAgICgpID0+IERlc2NyaWJlSW1wb3J0VGFza3NSZXF1ZXN0LFxuICAgICgpID0+IERlc2NyaWJlSW1wb3J0VGFza3NSZXNwb25zZSxcbl07XG52YXIgRGVzY3JpYmVJbmRleFBvbGljaWVzID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0RJUGUsXG4gICAgMCxcbiAgICAoKSA9PiBEZXNjcmliZUluZGV4UG9saWNpZXNSZXF1ZXN0LFxuICAgICgpID0+IERlc2NyaWJlSW5kZXhQb2xpY2llc1Jlc3BvbnNlLFxuXTtcbnZhciBEZXNjcmliZUxvZ0dyb3VwcyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9ETEdlLFxuICAgIDAsXG4gICAgKCkgPT4gRGVzY3JpYmVMb2dHcm91cHNSZXF1ZXN0LFxuICAgICgpID0+IERlc2NyaWJlTG9nR3JvdXBzUmVzcG9uc2UsXG5dO1xudmFyIERlc2NyaWJlTG9nU3RyZWFtcyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9ETFNlLFxuICAgIDAsXG4gICAgKCkgPT4gRGVzY3JpYmVMb2dTdHJlYW1zUmVxdWVzdCxcbiAgICAoKSA9PiBEZXNjcmliZUxvZ1N0cmVhbXNSZXNwb25zZSxcbl07XG52YXIgRGVzY3JpYmVNZXRyaWNGaWx0ZXJzID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0RNRmUsXG4gICAgMCxcbiAgICAoKSA9PiBEZXNjcmliZU1ldHJpY0ZpbHRlcnNSZXF1ZXN0LFxuICAgICgpID0+IERlc2NyaWJlTWV0cmljRmlsdGVyc1Jlc3BvbnNlLFxuXTtcbnZhciBEZXNjcmliZVF1ZXJpZXMgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfRFEsXG4gICAgMCxcbiAgICAoKSA9PiBEZXNjcmliZVF1ZXJpZXNSZXF1ZXN0LFxuICAgICgpID0+IERlc2NyaWJlUXVlcmllc1Jlc3BvbnNlLFxuXTtcbnZhciBEZXNjcmliZVF1ZXJ5RGVmaW5pdGlvbnMgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfRFFEZSxcbiAgICAwLFxuICAgICgpID0+IERlc2NyaWJlUXVlcnlEZWZpbml0aW9uc1JlcXVlc3QsXG4gICAgKCkgPT4gRGVzY3JpYmVRdWVyeURlZmluaXRpb25zUmVzcG9uc2UsXG5dO1xudmFyIERlc2NyaWJlUmVzb3VyY2VQb2xpY2llcyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9EUlBlcyxcbiAgICAwLFxuICAgICgpID0+IERlc2NyaWJlUmVzb3VyY2VQb2xpY2llc1JlcXVlc3QsXG4gICAgKCkgPT4gRGVzY3JpYmVSZXNvdXJjZVBvbGljaWVzUmVzcG9uc2UsXG5dO1xudmFyIERlc2NyaWJlU3Vic2NyaXB0aW9uRmlsdGVycyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9EU0ZlcyxcbiAgICAwLFxuICAgICgpID0+IERlc2NyaWJlU3Vic2NyaXB0aW9uRmlsdGVyc1JlcXVlc3QsXG4gICAgKCkgPT4gRGVzY3JpYmVTdWJzY3JpcHRpb25GaWx0ZXJzUmVzcG9uc2UsXG5dO1xudmFyIERpc2Fzc29jaWF0ZUttc0tleSA9IFs5LCBuMCwgX0RLSywgMCwgKCkgPT4gRGlzYXNzb2NpYXRlS21zS2V5UmVxdWVzdCwgKCkgPT4gX19Vbml0XTtcbnZhciBEaXNhc3NvY2lhdGVTb3VyY2VGcm9tUzNUYWJsZUludGVncmF0aW9uID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0RTRlNUSSxcbiAgICAwLFxuICAgICgpID0+IERpc2Fzc29jaWF0ZVNvdXJjZUZyb21TM1RhYmxlSW50ZWdyYXRpb25SZXF1ZXN0LFxuICAgICgpID0+IERpc2Fzc29jaWF0ZVNvdXJjZUZyb21TM1RhYmxlSW50ZWdyYXRpb25SZXNwb25zZSxcbl07XG52YXIgRmlsdGVyTG9nRXZlbnRzID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0ZMRWlsLFxuICAgIDAsXG4gICAgKCkgPT4gRmlsdGVyTG9nRXZlbnRzUmVxdWVzdCxcbiAgICAoKSA9PiBGaWx0ZXJMb2dFdmVudHNSZXNwb25zZSxcbl07XG52YXIgR2V0RGF0YVByb3RlY3Rpb25Qb2xpY3kgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfR0RQUCxcbiAgICAwLFxuICAgICgpID0+IEdldERhdGFQcm90ZWN0aW9uUG9saWN5UmVxdWVzdCxcbiAgICAoKSA9PiBHZXREYXRhUHJvdGVjdGlvblBvbGljeVJlc3BvbnNlLFxuXTtcbnZhciBHZXREZWxpdmVyeSA9IFs5LCBuMCwgX0dELCAwLCAoKSA9PiBHZXREZWxpdmVyeVJlcXVlc3QsICgpID0+IEdldERlbGl2ZXJ5UmVzcG9uc2VdO1xudmFyIEdldERlbGl2ZXJ5RGVzdGluYXRpb24gPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfR0RELFxuICAgIDAsXG4gICAgKCkgPT4gR2V0RGVsaXZlcnlEZXN0aW5hdGlvblJlcXVlc3QsXG4gICAgKCkgPT4gR2V0RGVsaXZlcnlEZXN0aW5hdGlvblJlc3BvbnNlLFxuXTtcbnZhciBHZXREZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5ID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0dERFAsXG4gICAgMCxcbiAgICAoKSA9PiBHZXREZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5UmVxdWVzdCxcbiAgICAoKSA9PiBHZXREZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5UmVzcG9uc2UsXG5dO1xudmFyIEdldERlbGl2ZXJ5U291cmNlID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0dEUyxcbiAgICAwLFxuICAgICgpID0+IEdldERlbGl2ZXJ5U291cmNlUmVxdWVzdCxcbiAgICAoKSA9PiBHZXREZWxpdmVyeVNvdXJjZVJlc3BvbnNlLFxuXTtcbnZhciBHZXRJbnRlZ3JhdGlvbiA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9HSWUsXG4gICAgMCxcbiAgICAoKSA9PiBHZXRJbnRlZ3JhdGlvblJlcXVlc3QsXG4gICAgKCkgPT4gR2V0SW50ZWdyYXRpb25SZXNwb25zZSxcbl07XG52YXIgR2V0TG9nQW5vbWFseURldGVjdG9yID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0dMQUQsXG4gICAgMCxcbiAgICAoKSA9PiBHZXRMb2dBbm9tYWx5RGV0ZWN0b3JSZXF1ZXN0LFxuICAgICgpID0+IEdldExvZ0Fub21hbHlEZXRlY3RvclJlc3BvbnNlLFxuXTtcbnZhciBHZXRMb2dFdmVudHMgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfR0xFLFxuICAgIDAsXG4gICAgKCkgPT4gR2V0TG9nRXZlbnRzUmVxdWVzdCxcbiAgICAoKSA9PiBHZXRMb2dFdmVudHNSZXNwb25zZSxcbl07XG52YXIgR2V0TG9nRmllbGRzID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0dMRixcbiAgICAwLFxuICAgICgpID0+IEdldExvZ0ZpZWxkc1JlcXVlc3QsXG4gICAgKCkgPT4gR2V0TG9nRmllbGRzUmVzcG9uc2UsXG5dO1xudmFyIEdldExvZ0dyb3VwRmllbGRzID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0dMR0YsXG4gICAgMCxcbiAgICAoKSA9PiBHZXRMb2dHcm91cEZpZWxkc1JlcXVlc3QsXG4gICAgKCkgPT4gR2V0TG9nR3JvdXBGaWVsZHNSZXNwb25zZSxcbl07XG52YXIgR2V0TG9nT2JqZWN0ID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0dMTyxcbiAgICB7IFtfZW5kXTogW1wic3RyZWFtaW5nLVwiXSB9LFxuICAgICgpID0+IEdldExvZ09iamVjdFJlcXVlc3QsXG4gICAgKCkgPT4gR2V0TG9nT2JqZWN0UmVzcG9uc2UsXG5dO1xudmFyIEdldExvZ1JlY29yZCA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9HTFIsXG4gICAgMCxcbiAgICAoKSA9PiBHZXRMb2dSZWNvcmRSZXF1ZXN0LFxuICAgICgpID0+IEdldExvZ1JlY29yZFJlc3BvbnNlLFxuXTtcbnZhciBHZXRRdWVyeVJlc3VsdHMgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfR1FSLFxuICAgIDAsXG4gICAgKCkgPT4gR2V0UXVlcnlSZXN1bHRzUmVxdWVzdCxcbiAgICAoKSA9PiBHZXRRdWVyeVJlc3VsdHNSZXNwb25zZSxcbl07XG52YXIgR2V0U2NoZWR1bGVkUXVlcnkgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfR1NRLFxuICAgIDAsXG4gICAgKCkgPT4gR2V0U2NoZWR1bGVkUXVlcnlSZXF1ZXN0LFxuICAgICgpID0+IEdldFNjaGVkdWxlZFF1ZXJ5UmVzcG9uc2UsXG5dO1xudmFyIEdldFNjaGVkdWxlZFF1ZXJ5SGlzdG9yeSA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9HU1FILFxuICAgIDAsXG4gICAgKCkgPT4gR2V0U2NoZWR1bGVkUXVlcnlIaXN0b3J5UmVxdWVzdCxcbiAgICAoKSA9PiBHZXRTY2hlZHVsZWRRdWVyeUhpc3RvcnlSZXNwb25zZSxcbl07XG52YXIgR2V0VHJhbnNmb3JtZXIgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfR1QsXG4gICAgMCxcbiAgICAoKSA9PiBHZXRUcmFuc2Zvcm1lclJlcXVlc3QsXG4gICAgKCkgPT4gR2V0VHJhbnNmb3JtZXJSZXNwb25zZSxcbl07XG52YXIgTGlzdEFnZ3JlZ2F0ZUxvZ0dyb3VwU3VtbWFyaWVzID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0xBTEdTLFxuICAgIDAsXG4gICAgKCkgPT4gTGlzdEFnZ3JlZ2F0ZUxvZ0dyb3VwU3VtbWFyaWVzUmVxdWVzdCxcbiAgICAoKSA9PiBMaXN0QWdncmVnYXRlTG9nR3JvdXBTdW1tYXJpZXNSZXNwb25zZSxcbl07XG52YXIgTGlzdEFub21hbGllcyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9MQSxcbiAgICAwLFxuICAgICgpID0+IExpc3RBbm9tYWxpZXNSZXF1ZXN0LFxuICAgICgpID0+IExpc3RBbm9tYWxpZXNSZXNwb25zZSxcbl07XG52YXIgTGlzdEludGVncmF0aW9ucyA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9MSSxcbiAgICAwLFxuICAgICgpID0+IExpc3RJbnRlZ3JhdGlvbnNSZXF1ZXN0LFxuICAgICgpID0+IExpc3RJbnRlZ3JhdGlvbnNSZXNwb25zZSxcbl07XG52YXIgTGlzdExvZ0Fub21hbHlEZXRlY3RvcnMgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfTExBRCxcbiAgICAwLFxuICAgICgpID0+IExpc3RMb2dBbm9tYWx5RGV0ZWN0b3JzUmVxdWVzdCxcbiAgICAoKSA9PiBMaXN0TG9nQW5vbWFseURldGVjdG9yc1Jlc3BvbnNlLFxuXTtcbnZhciBMaXN0TG9nR3JvdXBzID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0xMRyxcbiAgICAwLFxuICAgICgpID0+IExpc3RMb2dHcm91cHNSZXF1ZXN0LFxuICAgICgpID0+IExpc3RMb2dHcm91cHNSZXNwb25zZSxcbl07XG52YXIgTGlzdExvZ0dyb3Vwc0ZvclF1ZXJ5ID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0xMR0ZRLFxuICAgIDAsXG4gICAgKCkgPT4gTGlzdExvZ0dyb3Vwc0ZvclF1ZXJ5UmVxdWVzdCxcbiAgICAoKSA9PiBMaXN0TG9nR3JvdXBzRm9yUXVlcnlSZXNwb25zZSxcbl07XG52YXIgTGlzdFNjaGVkdWxlZFF1ZXJpZXMgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfTFNRLFxuICAgIDAsXG4gICAgKCkgPT4gTGlzdFNjaGVkdWxlZFF1ZXJpZXNSZXF1ZXN0LFxuICAgICgpID0+IExpc3RTY2hlZHVsZWRRdWVyaWVzUmVzcG9uc2UsXG5dO1xudmFyIExpc3RTb3VyY2VzRm9yUzNUYWJsZUludGVncmF0aW9uID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0xTRlNUSSxcbiAgICAwLFxuICAgICgpID0+IExpc3RTb3VyY2VzRm9yUzNUYWJsZUludGVncmF0aW9uUmVxdWVzdCxcbiAgICAoKSA9PiBMaXN0U291cmNlc0ZvclMzVGFibGVJbnRlZ3JhdGlvblJlc3BvbnNlLFxuXTtcbnZhciBMaXN0VGFnc0ZvclJlc291cmNlID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX0xURlIsXG4gICAgMCxcbiAgICAoKSA9PiBMaXN0VGFnc0ZvclJlc291cmNlUmVxdWVzdCxcbiAgICAoKSA9PiBMaXN0VGFnc0ZvclJlc291cmNlUmVzcG9uc2UsXG5dO1xudmFyIExpc3RUYWdzTG9nR3JvdXAgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfTFRMRyxcbiAgICAwLFxuICAgICgpID0+IExpc3RUYWdzTG9nR3JvdXBSZXF1ZXN0LFxuICAgICgpID0+IExpc3RUYWdzTG9nR3JvdXBSZXNwb25zZSxcbl07XG52YXIgUHV0QWNjb3VudFBvbGljeSA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9QQVAsXG4gICAgMCxcbiAgICAoKSA9PiBQdXRBY2NvdW50UG9saWN5UmVxdWVzdCxcbiAgICAoKSA9PiBQdXRBY2NvdW50UG9saWN5UmVzcG9uc2UsXG5dO1xudmFyIFB1dERhdGFQcm90ZWN0aW9uUG9saWN5ID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX1BEUFAsXG4gICAgMCxcbiAgICAoKSA9PiBQdXREYXRhUHJvdGVjdGlvblBvbGljeVJlcXVlc3QsXG4gICAgKCkgPT4gUHV0RGF0YVByb3RlY3Rpb25Qb2xpY3lSZXNwb25zZSxcbl07XG52YXIgUHV0RGVsaXZlcnlEZXN0aW5hdGlvbiA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9QREQsXG4gICAgMCxcbiAgICAoKSA9PiBQdXREZWxpdmVyeURlc3RpbmF0aW9uUmVxdWVzdCxcbiAgICAoKSA9PiBQdXREZWxpdmVyeURlc3RpbmF0aW9uUmVzcG9uc2UsXG5dO1xudmFyIFB1dERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3kgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfUEREUCxcbiAgICAwLFxuICAgICgpID0+IFB1dERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lSZXF1ZXN0LFxuICAgICgpID0+IFB1dERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lSZXNwb25zZSxcbl07XG52YXIgUHV0RGVsaXZlcnlTb3VyY2UgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfUERTLFxuICAgIDAsXG4gICAgKCkgPT4gUHV0RGVsaXZlcnlTb3VyY2VSZXF1ZXN0LFxuICAgICgpID0+IFB1dERlbGl2ZXJ5U291cmNlUmVzcG9uc2UsXG5dO1xudmFyIFB1dERlc3RpbmF0aW9uID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX1BELFxuICAgIDAsXG4gICAgKCkgPT4gUHV0RGVzdGluYXRpb25SZXF1ZXN0LFxuICAgICgpID0+IFB1dERlc3RpbmF0aW9uUmVzcG9uc2UsXG5dO1xudmFyIFB1dERlc3RpbmF0aW9uUG9saWN5ID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX1BEUCxcbiAgICAwLFxuICAgICgpID0+IFB1dERlc3RpbmF0aW9uUG9saWN5UmVxdWVzdCxcbiAgICAoKSA9PiBfX1VuaXQsXG5dO1xudmFyIFB1dEluZGV4UG9saWN5ID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX1BJUCxcbiAgICAwLFxuICAgICgpID0+IFB1dEluZGV4UG9saWN5UmVxdWVzdCxcbiAgICAoKSA9PiBQdXRJbmRleFBvbGljeVJlc3BvbnNlLFxuXTtcbnZhciBQdXRJbnRlZ3JhdGlvbiA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9QSSxcbiAgICAwLFxuICAgICgpID0+IFB1dEludGVncmF0aW9uUmVxdWVzdCxcbiAgICAoKSA9PiBQdXRJbnRlZ3JhdGlvblJlc3BvbnNlLFxuXTtcbnZhciBQdXRMb2dFdmVudHMgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfUExFLFxuICAgIDAsXG4gICAgKCkgPT4gUHV0TG9nRXZlbnRzUmVxdWVzdCxcbiAgICAoKSA9PiBQdXRMb2dFdmVudHNSZXNwb25zZSxcbl07XG52YXIgUHV0TG9nR3JvdXBEZWxldGlvblByb3RlY3Rpb24gPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfUExHRFAsXG4gICAgMCxcbiAgICAoKSA9PiBQdXRMb2dHcm91cERlbGV0aW9uUHJvdGVjdGlvblJlcXVlc3QsXG4gICAgKCkgPT4gX19Vbml0LFxuXTtcbnZhciBQdXRNZXRyaWNGaWx0ZXIgPSBbOSwgbjAsIF9QTUYsIDAsICgpID0+IFB1dE1ldHJpY0ZpbHRlclJlcXVlc3QsICgpID0+IF9fVW5pdF07XG52YXIgUHV0UXVlcnlEZWZpbml0aW9uID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX1BRRCxcbiAgICAwLFxuICAgICgpID0+IFB1dFF1ZXJ5RGVmaW5pdGlvblJlcXVlc3QsXG4gICAgKCkgPT4gUHV0UXVlcnlEZWZpbml0aW9uUmVzcG9uc2UsXG5dO1xudmFyIFB1dFJlc291cmNlUG9saWN5ID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX1BSUCxcbiAgICAwLFxuICAgICgpID0+IFB1dFJlc291cmNlUG9saWN5UmVxdWVzdCxcbiAgICAoKSA9PiBQdXRSZXNvdXJjZVBvbGljeVJlc3BvbnNlLFxuXTtcbnZhciBQdXRSZXRlbnRpb25Qb2xpY3kgPSBbOSwgbjAsIF9QUlB1LCAwLCAoKSA9PiBQdXRSZXRlbnRpb25Qb2xpY3lSZXF1ZXN0LCAoKSA9PiBfX1VuaXRdO1xudmFyIFB1dFN1YnNjcmlwdGlvbkZpbHRlciA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9QU0YsXG4gICAgMCxcbiAgICAoKSA9PiBQdXRTdWJzY3JpcHRpb25GaWx0ZXJSZXF1ZXN0LFxuICAgICgpID0+IF9fVW5pdCxcbl07XG52YXIgUHV0VHJhbnNmb3JtZXIgPSBbOSwgbjAsIF9QVHUsIDAsICgpID0+IFB1dFRyYW5zZm9ybWVyUmVxdWVzdCwgKCkgPT4gX19Vbml0XTtcbnZhciBTdGFydExpdmVUYWlsID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX1NMVCxcbiAgICB7IFtfZW5kXTogW1wic3RyZWFtaW5nLVwiXSB9LFxuICAgICgpID0+IFN0YXJ0TGl2ZVRhaWxSZXF1ZXN0LFxuICAgICgpID0+IFN0YXJ0TGl2ZVRhaWxSZXNwb25zZSxcbl07XG52YXIgU3RhcnRRdWVyeSA9IFs5LCBuMCwgX1NRLCAwLCAoKSA9PiBTdGFydFF1ZXJ5UmVxdWVzdCwgKCkgPT4gU3RhcnRRdWVyeVJlc3BvbnNlXTtcbnZhciBTdG9wUXVlcnkgPSBbOSwgbjAsIF9TUXQsIDAsICgpID0+IFN0b3BRdWVyeVJlcXVlc3QsICgpID0+IFN0b3BRdWVyeVJlc3BvbnNlXTtcbnZhciBUYWdMb2dHcm91cCA9IFs5LCBuMCwgX1RMRywgMCwgKCkgPT4gVGFnTG9nR3JvdXBSZXF1ZXN0LCAoKSA9PiBfX1VuaXRdO1xudmFyIFRhZ1Jlc291cmNlID0gWzksIG4wLCBfVFIsIDAsICgpID0+IFRhZ1Jlc291cmNlUmVxdWVzdCwgKCkgPT4gX19Vbml0XTtcbnZhciBUZXN0TWV0cmljRmlsdGVyID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX1RNRixcbiAgICAwLFxuICAgICgpID0+IFRlc3RNZXRyaWNGaWx0ZXJSZXF1ZXN0LFxuICAgICgpID0+IFRlc3RNZXRyaWNGaWx0ZXJSZXNwb25zZSxcbl07XG52YXIgVGVzdFRyYW5zZm9ybWVyID0gW1xuICAgIDksXG4gICAgbjAsXG4gICAgX1RULFxuICAgIDAsXG4gICAgKCkgPT4gVGVzdFRyYW5zZm9ybWVyUmVxdWVzdCxcbiAgICAoKSA9PiBUZXN0VHJhbnNmb3JtZXJSZXNwb25zZSxcbl07XG52YXIgVW50YWdMb2dHcm91cCA9IFs5LCBuMCwgX1VMRywgMCwgKCkgPT4gVW50YWdMb2dHcm91cFJlcXVlc3QsICgpID0+IF9fVW5pdF07XG52YXIgVW50YWdSZXNvdXJjZSA9IFs5LCBuMCwgX1VSLCAwLCAoKSA9PiBVbnRhZ1Jlc291cmNlUmVxdWVzdCwgKCkgPT4gX19Vbml0XTtcbnZhciBVcGRhdGVBbm9tYWx5ID0gWzksIG4wLCBfVUEsIDAsICgpID0+IFVwZGF0ZUFub21hbHlSZXF1ZXN0LCAoKSA9PiBfX1VuaXRdO1xudmFyIFVwZGF0ZURlbGl2ZXJ5Q29uZmlndXJhdGlvbiA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9VREMsXG4gICAgMCxcbiAgICAoKSA9PiBVcGRhdGVEZWxpdmVyeUNvbmZpZ3VyYXRpb25SZXF1ZXN0LFxuICAgICgpID0+IFVwZGF0ZURlbGl2ZXJ5Q29uZmlndXJhdGlvblJlc3BvbnNlLFxuXTtcbnZhciBVcGRhdGVMb2dBbm9tYWx5RGV0ZWN0b3IgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfVUxBRCxcbiAgICAwLFxuICAgICgpID0+IFVwZGF0ZUxvZ0Fub21hbHlEZXRlY3RvclJlcXVlc3QsXG4gICAgKCkgPT4gX19Vbml0LFxuXTtcbnZhciBVcGRhdGVTY2hlZHVsZWRRdWVyeSA9IFtcbiAgICA5LFxuICAgIG4wLFxuICAgIF9VU1EsXG4gICAgMCxcbiAgICAoKSA9PiBVcGRhdGVTY2hlZHVsZWRRdWVyeVJlcXVlc3QsXG4gICAgKCkgPT4gVXBkYXRlU2NoZWR1bGVkUXVlcnlSZXNwb25zZSxcbl07XG5cbmNsYXNzIEFzc29jaWF0ZUttc0tleUNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkxvZ3NfMjAxNDAzMjhcIiwgXCJBc3NvY2lhdGVLbXNLZXlcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoTG9nc0NsaWVudFwiLCBcIkFzc29jaWF0ZUttc0tleUNvbW1hbmRcIilcbiAgICAuc2MoQXNzb2NpYXRlS21zS2V5KVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgQXNzb2NpYXRlU291cmNlVG9TM1RhYmxlSW50ZWdyYXRpb25Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiQXNzb2NpYXRlU291cmNlVG9TM1RhYmxlSW50ZWdyYXRpb25cIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoTG9nc0NsaWVudFwiLCBcIkFzc29jaWF0ZVNvdXJjZVRvUzNUYWJsZUludGVncmF0aW9uQ29tbWFuZFwiKVxuICAgIC5zYyhBc3NvY2lhdGVTb3VyY2VUb1MzVGFibGVJbnRlZ3JhdGlvbilcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIENhbmNlbEV4cG9ydFRhc2tDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiQ2FuY2VsRXhwb3J0VGFza1wiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiQ2FuY2VsRXhwb3J0VGFza0NvbW1hbmRcIilcbiAgICAuc2MoQ2FuY2VsRXhwb3J0VGFzaylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIENhbmNlbEltcG9ydFRhc2tDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiQ2FuY2VsSW1wb3J0VGFza1wiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiQ2FuY2VsSW1wb3J0VGFza0NvbW1hbmRcIilcbiAgICAuc2MoQ2FuY2VsSW1wb3J0VGFzaylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIENyZWF0ZURlbGl2ZXJ5Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIkNyZWF0ZURlbGl2ZXJ5XCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJDcmVhdGVEZWxpdmVyeUNvbW1hbmRcIilcbiAgICAuc2MoQ3JlYXRlRGVsaXZlcnkpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBDcmVhdGVFeHBvcnRUYXNrQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIkNyZWF0ZUV4cG9ydFRhc2tcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoTG9nc0NsaWVudFwiLCBcIkNyZWF0ZUV4cG9ydFRhc2tDb21tYW5kXCIpXG4gICAgLnNjKENyZWF0ZUV4cG9ydFRhc2spXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBDcmVhdGVJbXBvcnRUYXNrQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIkNyZWF0ZUltcG9ydFRhc2tcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoTG9nc0NsaWVudFwiLCBcIkNyZWF0ZUltcG9ydFRhc2tDb21tYW5kXCIpXG4gICAgLnNjKENyZWF0ZUltcG9ydFRhc2spXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBDcmVhdGVMb2dBbm9tYWx5RGV0ZWN0b3JDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiQ3JlYXRlTG9nQW5vbWFseURldGVjdG9yXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJDcmVhdGVMb2dBbm9tYWx5RGV0ZWN0b3JDb21tYW5kXCIpXG4gICAgLnNjKENyZWF0ZUxvZ0Fub21hbHlEZXRlY3RvcilcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIENyZWF0ZUxvZ0dyb3VwQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIkNyZWF0ZUxvZ0dyb3VwXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJDcmVhdGVMb2dHcm91cENvbW1hbmRcIilcbiAgICAuc2MoQ3JlYXRlTG9nR3JvdXApXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBDcmVhdGVMb2dTdHJlYW1Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiQ3JlYXRlTG9nU3RyZWFtXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJDcmVhdGVMb2dTdHJlYW1Db21tYW5kXCIpXG4gICAgLnNjKENyZWF0ZUxvZ1N0cmVhbSlcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIENyZWF0ZVNjaGVkdWxlZFF1ZXJ5Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIkNyZWF0ZVNjaGVkdWxlZFF1ZXJ5XCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJDcmVhdGVTY2hlZHVsZWRRdWVyeUNvbW1hbmRcIilcbiAgICAuc2MoQ3JlYXRlU2NoZWR1bGVkUXVlcnkpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZWxldGVBY2NvdW50UG9saWN5Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIkRlbGV0ZUFjY291bnRQb2xpY3lcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoTG9nc0NsaWVudFwiLCBcIkRlbGV0ZUFjY291bnRQb2xpY3lDb21tYW5kXCIpXG4gICAgLnNjKERlbGV0ZUFjY291bnRQb2xpY3kpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZWxldGVEYXRhUHJvdGVjdGlvblBvbGljeUNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkxvZ3NfMjAxNDAzMjhcIiwgXCJEZWxldGVEYXRhUHJvdGVjdGlvblBvbGljeVwiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiRGVsZXRlRGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kXCIpXG4gICAgLnNjKERlbGV0ZURhdGFQcm90ZWN0aW9uUG9saWN5KVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgRGVsZXRlRGVsaXZlcnlDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiRGVsZXRlRGVsaXZlcnlcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoTG9nc0NsaWVudFwiLCBcIkRlbGV0ZURlbGl2ZXJ5Q29tbWFuZFwiKVxuICAgIC5zYyhEZWxldGVEZWxpdmVyeSlcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERlbGV0ZURlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiRGVsZXRlRGVsaXZlcnlEZXN0aW5hdGlvblwiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiRGVsZXRlRGVsaXZlcnlEZXN0aW5hdGlvbkNvbW1hbmRcIilcbiAgICAuc2MoRGVsZXRlRGVsaXZlcnlEZXN0aW5hdGlvbilcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERlbGV0ZURlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiRGVsZXRlRGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeVwiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiRGVsZXRlRGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeUNvbW1hbmRcIilcbiAgICAuc2MoRGVsZXRlRGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeSlcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERlbGV0ZURlbGl2ZXJ5U291cmNlQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIkRlbGV0ZURlbGl2ZXJ5U291cmNlXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJEZWxldGVEZWxpdmVyeVNvdXJjZUNvbW1hbmRcIilcbiAgICAuc2MoRGVsZXRlRGVsaXZlcnlTb3VyY2UpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZWxldGVEZXN0aW5hdGlvbkNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkxvZ3NfMjAxNDAzMjhcIiwgXCJEZWxldGVEZXN0aW5hdGlvblwiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiRGVsZXRlRGVzdGluYXRpb25Db21tYW5kXCIpXG4gICAgLnNjKERlbGV0ZURlc3RpbmF0aW9uKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgRGVsZXRlSW5kZXhQb2xpY3lDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiRGVsZXRlSW5kZXhQb2xpY3lcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoTG9nc0NsaWVudFwiLCBcIkRlbGV0ZUluZGV4UG9saWN5Q29tbWFuZFwiKVxuICAgIC5zYyhEZWxldGVJbmRleFBvbGljeSlcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERlbGV0ZUludGVncmF0aW9uQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIkRlbGV0ZUludGVncmF0aW9uXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJEZWxldGVJbnRlZ3JhdGlvbkNvbW1hbmRcIilcbiAgICAuc2MoRGVsZXRlSW50ZWdyYXRpb24pXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZWxldGVMb2dBbm9tYWx5RGV0ZWN0b3JDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiRGVsZXRlTG9nQW5vbWFseURldGVjdG9yXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJEZWxldGVMb2dBbm9tYWx5RGV0ZWN0b3JDb21tYW5kXCIpXG4gICAgLnNjKERlbGV0ZUxvZ0Fub21hbHlEZXRlY3RvcilcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERlbGV0ZUxvZ0dyb3VwQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIkRlbGV0ZUxvZ0dyb3VwXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJEZWxldGVMb2dHcm91cENvbW1hbmRcIilcbiAgICAuc2MoRGVsZXRlTG9nR3JvdXApXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZWxldGVMb2dTdHJlYW1Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiRGVsZXRlTG9nU3RyZWFtXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJEZWxldGVMb2dTdHJlYW1Db21tYW5kXCIpXG4gICAgLnNjKERlbGV0ZUxvZ1N0cmVhbSlcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERlbGV0ZU1ldHJpY0ZpbHRlckNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkxvZ3NfMjAxNDAzMjhcIiwgXCJEZWxldGVNZXRyaWNGaWx0ZXJcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoTG9nc0NsaWVudFwiLCBcIkRlbGV0ZU1ldHJpY0ZpbHRlckNvbW1hbmRcIilcbiAgICAuc2MoRGVsZXRlTWV0cmljRmlsdGVyKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgRGVsZXRlUXVlcnlEZWZpbml0aW9uQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIkRlbGV0ZVF1ZXJ5RGVmaW5pdGlvblwiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiRGVsZXRlUXVlcnlEZWZpbml0aW9uQ29tbWFuZFwiKVxuICAgIC5zYyhEZWxldGVRdWVyeURlZmluaXRpb24pXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZWxldGVSZXNvdXJjZVBvbGljeUNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkxvZ3NfMjAxNDAzMjhcIiwgXCJEZWxldGVSZXNvdXJjZVBvbGljeVwiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiRGVsZXRlUmVzb3VyY2VQb2xpY3lDb21tYW5kXCIpXG4gICAgLnNjKERlbGV0ZVJlc291cmNlUG9saWN5KVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgRGVsZXRlUmV0ZW50aW9uUG9saWN5Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIkRlbGV0ZVJldGVudGlvblBvbGljeVwiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiRGVsZXRlUmV0ZW50aW9uUG9saWN5Q29tbWFuZFwiKVxuICAgIC5zYyhEZWxldGVSZXRlbnRpb25Qb2xpY3kpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZWxldGVTY2hlZHVsZWRRdWVyeUNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkxvZ3NfMjAxNDAzMjhcIiwgXCJEZWxldGVTY2hlZHVsZWRRdWVyeVwiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiRGVsZXRlU2NoZWR1bGVkUXVlcnlDb21tYW5kXCIpXG4gICAgLnNjKERlbGV0ZVNjaGVkdWxlZFF1ZXJ5KVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgRGVsZXRlU3Vic2NyaXB0aW9uRmlsdGVyQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIkRlbGV0ZVN1YnNjcmlwdGlvbkZpbHRlclwiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiRGVsZXRlU3Vic2NyaXB0aW9uRmlsdGVyQ29tbWFuZFwiKVxuICAgIC5zYyhEZWxldGVTdWJzY3JpcHRpb25GaWx0ZXIpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZWxldGVUcmFuc2Zvcm1lckNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkxvZ3NfMjAxNDAzMjhcIiwgXCJEZWxldGVUcmFuc2Zvcm1lclwiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiRGVsZXRlVHJhbnNmb3JtZXJDb21tYW5kXCIpXG4gICAgLnNjKERlbGV0ZVRyYW5zZm9ybWVyKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgRGVzY3JpYmVBY2NvdW50UG9saWNpZXNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiRGVzY3JpYmVBY2NvdW50UG9saWNpZXNcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoTG9nc0NsaWVudFwiLCBcIkRlc2NyaWJlQWNjb3VudFBvbGljaWVzQ29tbWFuZFwiKVxuICAgIC5zYyhEZXNjcmliZUFjY291bnRQb2xpY2llcylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERlc2NyaWJlQ29uZmlndXJhdGlvblRlbXBsYXRlc0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkxvZ3NfMjAxNDAzMjhcIiwgXCJEZXNjcmliZUNvbmZpZ3VyYXRpb25UZW1wbGF0ZXNcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoTG9nc0NsaWVudFwiLCBcIkRlc2NyaWJlQ29uZmlndXJhdGlvblRlbXBsYXRlc0NvbW1hbmRcIilcbiAgICAuc2MoRGVzY3JpYmVDb25maWd1cmF0aW9uVGVtcGxhdGVzKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgRGVzY3JpYmVEZWxpdmVyaWVzQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIkRlc2NyaWJlRGVsaXZlcmllc1wiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiRGVzY3JpYmVEZWxpdmVyaWVzQ29tbWFuZFwiKVxuICAgIC5zYyhEZXNjcmliZURlbGl2ZXJpZXMpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZXNjcmliZURlbGl2ZXJ5RGVzdGluYXRpb25zQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIkRlc2NyaWJlRGVsaXZlcnlEZXN0aW5hdGlvbnNcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoTG9nc0NsaWVudFwiLCBcIkRlc2NyaWJlRGVsaXZlcnlEZXN0aW5hdGlvbnNDb21tYW5kXCIpXG4gICAgLnNjKERlc2NyaWJlRGVsaXZlcnlEZXN0aW5hdGlvbnMpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZXNjcmliZURlbGl2ZXJ5U291cmNlc0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkxvZ3NfMjAxNDAzMjhcIiwgXCJEZXNjcmliZURlbGl2ZXJ5U291cmNlc1wiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiRGVzY3JpYmVEZWxpdmVyeVNvdXJjZXNDb21tYW5kXCIpXG4gICAgLnNjKERlc2NyaWJlRGVsaXZlcnlTb3VyY2VzKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgRGVzY3JpYmVEZXN0aW5hdGlvbnNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiRGVzY3JpYmVEZXN0aW5hdGlvbnNcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoTG9nc0NsaWVudFwiLCBcIkRlc2NyaWJlRGVzdGluYXRpb25zQ29tbWFuZFwiKVxuICAgIC5zYyhEZXNjcmliZURlc3RpbmF0aW9ucylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERlc2NyaWJlRXhwb3J0VGFza3NDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiRGVzY3JpYmVFeHBvcnRUYXNrc1wiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiRGVzY3JpYmVFeHBvcnRUYXNrc0NvbW1hbmRcIilcbiAgICAuc2MoRGVzY3JpYmVFeHBvcnRUYXNrcylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERlc2NyaWJlRmllbGRJbmRleGVzQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIkRlc2NyaWJlRmllbGRJbmRleGVzXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJEZXNjcmliZUZpZWxkSW5kZXhlc0NvbW1hbmRcIilcbiAgICAuc2MoRGVzY3JpYmVGaWVsZEluZGV4ZXMpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZXNjcmliZUltcG9ydFRhc2tCYXRjaGVzQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIkRlc2NyaWJlSW1wb3J0VGFza0JhdGNoZXNcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoTG9nc0NsaWVudFwiLCBcIkRlc2NyaWJlSW1wb3J0VGFza0JhdGNoZXNDb21tYW5kXCIpXG4gICAgLnNjKERlc2NyaWJlSW1wb3J0VGFza0JhdGNoZXMpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZXNjcmliZUltcG9ydFRhc2tzQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIkRlc2NyaWJlSW1wb3J0VGFza3NcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoTG9nc0NsaWVudFwiLCBcIkRlc2NyaWJlSW1wb3J0VGFza3NDb21tYW5kXCIpXG4gICAgLnNjKERlc2NyaWJlSW1wb3J0VGFza3MpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZXNjcmliZUluZGV4UG9saWNpZXNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiRGVzY3JpYmVJbmRleFBvbGljaWVzXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJEZXNjcmliZUluZGV4UG9saWNpZXNDb21tYW5kXCIpXG4gICAgLnNjKERlc2NyaWJlSW5kZXhQb2xpY2llcylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERlc2NyaWJlTG9nR3JvdXBzQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIkRlc2NyaWJlTG9nR3JvdXBzXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJEZXNjcmliZUxvZ0dyb3Vwc0NvbW1hbmRcIilcbiAgICAuc2MoRGVzY3JpYmVMb2dHcm91cHMpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZXNjcmliZUxvZ1N0cmVhbXNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiRGVzY3JpYmVMb2dTdHJlYW1zXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJEZXNjcmliZUxvZ1N0cmVhbXNDb21tYW5kXCIpXG4gICAgLnNjKERlc2NyaWJlTG9nU3RyZWFtcylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERlc2NyaWJlTWV0cmljRmlsdGVyc0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkxvZ3NfMjAxNDAzMjhcIiwgXCJEZXNjcmliZU1ldHJpY0ZpbHRlcnNcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoTG9nc0NsaWVudFwiLCBcIkRlc2NyaWJlTWV0cmljRmlsdGVyc0NvbW1hbmRcIilcbiAgICAuc2MoRGVzY3JpYmVNZXRyaWNGaWx0ZXJzKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgRGVzY3JpYmVRdWVyaWVzQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIkRlc2NyaWJlUXVlcmllc1wiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiRGVzY3JpYmVRdWVyaWVzQ29tbWFuZFwiKVxuICAgIC5zYyhEZXNjcmliZVF1ZXJpZXMpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEZXNjcmliZVF1ZXJ5RGVmaW5pdGlvbnNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiRGVzY3JpYmVRdWVyeURlZmluaXRpb25zXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJEZXNjcmliZVF1ZXJ5RGVmaW5pdGlvbnNDb21tYW5kXCIpXG4gICAgLnNjKERlc2NyaWJlUXVlcnlEZWZpbml0aW9ucylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERlc2NyaWJlUmVzb3VyY2VQb2xpY2llc0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkxvZ3NfMjAxNDAzMjhcIiwgXCJEZXNjcmliZVJlc291cmNlUG9saWNpZXNcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoTG9nc0NsaWVudFwiLCBcIkRlc2NyaWJlUmVzb3VyY2VQb2xpY2llc0NvbW1hbmRcIilcbiAgICAuc2MoRGVzY3JpYmVSZXNvdXJjZVBvbGljaWVzKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgRGVzY3JpYmVTdWJzY3JpcHRpb25GaWx0ZXJzQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIkRlc2NyaWJlU3Vic2NyaXB0aW9uRmlsdGVyc1wiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiRGVzY3JpYmVTdWJzY3JpcHRpb25GaWx0ZXJzQ29tbWFuZFwiKVxuICAgIC5zYyhEZXNjcmliZVN1YnNjcmlwdGlvbkZpbHRlcnMpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBEaXNhc3NvY2lhdGVLbXNLZXlDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiRGlzYXNzb2NpYXRlS21zS2V5XCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJEaXNhc3NvY2lhdGVLbXNLZXlDb21tYW5kXCIpXG4gICAgLnNjKERpc2Fzc29jaWF0ZUttc0tleSlcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIERpc2Fzc29jaWF0ZVNvdXJjZUZyb21TM1RhYmxlSW50ZWdyYXRpb25Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiRGlzYXNzb2NpYXRlU291cmNlRnJvbVMzVGFibGVJbnRlZ3JhdGlvblwiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiRGlzYXNzb2NpYXRlU291cmNlRnJvbVMzVGFibGVJbnRlZ3JhdGlvbkNvbW1hbmRcIilcbiAgICAuc2MoRGlzYXNzb2NpYXRlU291cmNlRnJvbVMzVGFibGVJbnRlZ3JhdGlvbilcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIEZpbHRlckxvZ0V2ZW50c0NvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkxvZ3NfMjAxNDAzMjhcIiwgXCJGaWx0ZXJMb2dFdmVudHNcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoTG9nc0NsaWVudFwiLCBcIkZpbHRlckxvZ0V2ZW50c0NvbW1hbmRcIilcbiAgICAuc2MoRmlsdGVyTG9nRXZlbnRzKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgR2V0RGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiR2V0RGF0YVByb3RlY3Rpb25Qb2xpY3lcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoTG9nc0NsaWVudFwiLCBcIkdldERhdGFQcm90ZWN0aW9uUG9saWN5Q29tbWFuZFwiKVxuICAgIC5zYyhHZXREYXRhUHJvdGVjdGlvblBvbGljeSlcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIEdldERlbGl2ZXJ5Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIkdldERlbGl2ZXJ5XCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJHZXREZWxpdmVyeUNvbW1hbmRcIilcbiAgICAuc2MoR2V0RGVsaXZlcnkpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBHZXREZWxpdmVyeURlc3RpbmF0aW9uQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIkdldERlbGl2ZXJ5RGVzdGluYXRpb25cIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoTG9nc0NsaWVudFwiLCBcIkdldERlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kXCIpXG4gICAgLnNjKEdldERlbGl2ZXJ5RGVzdGluYXRpb24pXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBHZXREZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIkdldERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoTG9nc0NsaWVudFwiLCBcIkdldERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kXCIpXG4gICAgLnNjKEdldERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3kpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBHZXREZWxpdmVyeVNvdXJjZUNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkxvZ3NfMjAxNDAzMjhcIiwgXCJHZXREZWxpdmVyeVNvdXJjZVwiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiR2V0RGVsaXZlcnlTb3VyY2VDb21tYW5kXCIpXG4gICAgLnNjKEdldERlbGl2ZXJ5U291cmNlKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgR2V0SW50ZWdyYXRpb25Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiR2V0SW50ZWdyYXRpb25cIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoTG9nc0NsaWVudFwiLCBcIkdldEludGVncmF0aW9uQ29tbWFuZFwiKVxuICAgIC5zYyhHZXRJbnRlZ3JhdGlvbilcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIEdldExvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkxvZ3NfMjAxNDAzMjhcIiwgXCJHZXRMb2dBbm9tYWx5RGV0ZWN0b3JcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoTG9nc0NsaWVudFwiLCBcIkdldExvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmRcIilcbiAgICAuc2MoR2V0TG9nQW5vbWFseURldGVjdG9yKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgR2V0TG9nRXZlbnRzQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIkdldExvZ0V2ZW50c1wiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiR2V0TG9nRXZlbnRzQ29tbWFuZFwiKVxuICAgIC5zYyhHZXRMb2dFdmVudHMpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBHZXRMb2dGaWVsZHNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiR2V0TG9nRmllbGRzXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJHZXRMb2dGaWVsZHNDb21tYW5kXCIpXG4gICAgLnNjKEdldExvZ0ZpZWxkcylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIEdldExvZ0dyb3VwRmllbGRzQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIkdldExvZ0dyb3VwRmllbGRzXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJHZXRMb2dHcm91cEZpZWxkc0NvbW1hbmRcIilcbiAgICAuc2MoR2V0TG9nR3JvdXBGaWVsZHMpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBHZXRMb2dPYmplY3RDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiR2V0TG9nT2JqZWN0XCIsIHtcbiAgICBldmVudFN0cmVhbToge1xuICAgICAgICBvdXRwdXQ6IHRydWUsXG4gICAgfSxcbn0pXG4gICAgLm4oXCJDbG91ZFdhdGNoTG9nc0NsaWVudFwiLCBcIkdldExvZ09iamVjdENvbW1hbmRcIilcbiAgICAuc2MoR2V0TG9nT2JqZWN0KVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgR2V0TG9nUmVjb3JkQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIkdldExvZ1JlY29yZFwiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiR2V0TG9nUmVjb3JkQ29tbWFuZFwiKVxuICAgIC5zYyhHZXRMb2dSZWNvcmQpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBHZXRRdWVyeVJlc3VsdHNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiR2V0UXVlcnlSZXN1bHRzXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJHZXRRdWVyeVJlc3VsdHNDb21tYW5kXCIpXG4gICAgLnNjKEdldFF1ZXJ5UmVzdWx0cylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIEdldFNjaGVkdWxlZFF1ZXJ5Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIkdldFNjaGVkdWxlZFF1ZXJ5XCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJHZXRTY2hlZHVsZWRRdWVyeUNvbW1hbmRcIilcbiAgICAuc2MoR2V0U2NoZWR1bGVkUXVlcnkpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBHZXRTY2hlZHVsZWRRdWVyeUhpc3RvcnlDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiR2V0U2NoZWR1bGVkUXVlcnlIaXN0b3J5XCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJHZXRTY2hlZHVsZWRRdWVyeUhpc3RvcnlDb21tYW5kXCIpXG4gICAgLnNjKEdldFNjaGVkdWxlZFF1ZXJ5SGlzdG9yeSlcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIEdldFRyYW5zZm9ybWVyQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIkdldFRyYW5zZm9ybWVyXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJHZXRUcmFuc2Zvcm1lckNvbW1hbmRcIilcbiAgICAuc2MoR2V0VHJhbnNmb3JtZXIpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBMaXN0QWdncmVnYXRlTG9nR3JvdXBTdW1tYXJpZXNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiTGlzdEFnZ3JlZ2F0ZUxvZ0dyb3VwU3VtbWFyaWVzXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJMaXN0QWdncmVnYXRlTG9nR3JvdXBTdW1tYXJpZXNDb21tYW5kXCIpXG4gICAgLnNjKExpc3RBZ2dyZWdhdGVMb2dHcm91cFN1bW1hcmllcylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIExpc3RBbm9tYWxpZXNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiTGlzdEFub21hbGllc1wiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiTGlzdEFub21hbGllc0NvbW1hbmRcIilcbiAgICAuc2MoTGlzdEFub21hbGllcylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIExpc3RJbnRlZ3JhdGlvbnNDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiTGlzdEludGVncmF0aW9uc1wiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiTGlzdEludGVncmF0aW9uc0NvbW1hbmRcIilcbiAgICAuc2MoTGlzdEludGVncmF0aW9ucylcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIExpc3RMb2dBbm9tYWx5RGV0ZWN0b3JzQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIkxpc3RMb2dBbm9tYWx5RGV0ZWN0b3JzXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJMaXN0TG9nQW5vbWFseURldGVjdG9yc0NvbW1hbmRcIilcbiAgICAuc2MoTGlzdExvZ0Fub21hbHlEZXRlY3RvcnMpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBMaXN0TG9nR3JvdXBzQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIkxpc3RMb2dHcm91cHNcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoTG9nc0NsaWVudFwiLCBcIkxpc3RMb2dHcm91cHNDb21tYW5kXCIpXG4gICAgLnNjKExpc3RMb2dHcm91cHMpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBMaXN0TG9nR3JvdXBzRm9yUXVlcnlDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiTGlzdExvZ0dyb3Vwc0ZvclF1ZXJ5XCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJMaXN0TG9nR3JvdXBzRm9yUXVlcnlDb21tYW5kXCIpXG4gICAgLnNjKExpc3RMb2dHcm91cHNGb3JRdWVyeSlcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIExpc3RTY2hlZHVsZWRRdWVyaWVzQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIkxpc3RTY2hlZHVsZWRRdWVyaWVzXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJMaXN0U2NoZWR1bGVkUXVlcmllc0NvbW1hbmRcIilcbiAgICAuc2MoTGlzdFNjaGVkdWxlZFF1ZXJpZXMpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBMaXN0U291cmNlc0ZvclMzVGFibGVJbnRlZ3JhdGlvbkNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkxvZ3NfMjAxNDAzMjhcIiwgXCJMaXN0U291cmNlc0ZvclMzVGFibGVJbnRlZ3JhdGlvblwiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiTGlzdFNvdXJjZXNGb3JTM1RhYmxlSW50ZWdyYXRpb25Db21tYW5kXCIpXG4gICAgLnNjKExpc3RTb3VyY2VzRm9yUzNUYWJsZUludGVncmF0aW9uKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkxvZ3NfMjAxNDAzMjhcIiwgXCJMaXN0VGFnc0ZvclJlc291cmNlXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZFwiKVxuICAgIC5zYyhMaXN0VGFnc0ZvclJlc291cmNlKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgTGlzdFRhZ3NMb2dHcm91cENvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkxvZ3NfMjAxNDAzMjhcIiwgXCJMaXN0VGFnc0xvZ0dyb3VwXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJMaXN0VGFnc0xvZ0dyb3VwQ29tbWFuZFwiKVxuICAgIC5zYyhMaXN0VGFnc0xvZ0dyb3VwKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgUHV0QWNjb3VudFBvbGljeUNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkxvZ3NfMjAxNDAzMjhcIiwgXCJQdXRBY2NvdW50UG9saWN5XCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJQdXRBY2NvdW50UG9saWN5Q29tbWFuZFwiKVxuICAgIC5zYyhQdXRBY2NvdW50UG9saWN5KVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgUHV0RGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiUHV0RGF0YVByb3RlY3Rpb25Qb2xpY3lcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoTG9nc0NsaWVudFwiLCBcIlB1dERhdGFQcm90ZWN0aW9uUG9saWN5Q29tbWFuZFwiKVxuICAgIC5zYyhQdXREYXRhUHJvdGVjdGlvblBvbGljeSlcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFB1dERlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiUHV0RGVsaXZlcnlEZXN0aW5hdGlvblwiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiUHV0RGVsaXZlcnlEZXN0aW5hdGlvbkNvbW1hbmRcIilcbiAgICAuc2MoUHV0RGVsaXZlcnlEZXN0aW5hdGlvbilcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFB1dERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiUHV0RGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeVwiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiUHV0RGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeUNvbW1hbmRcIilcbiAgICAuc2MoUHV0RGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeSlcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFB1dERlbGl2ZXJ5U291cmNlQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIlB1dERlbGl2ZXJ5U291cmNlXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJQdXREZWxpdmVyeVNvdXJjZUNvbW1hbmRcIilcbiAgICAuc2MoUHV0RGVsaXZlcnlTb3VyY2UpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBQdXREZXN0aW5hdGlvbkNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkxvZ3NfMjAxNDAzMjhcIiwgXCJQdXREZXN0aW5hdGlvblwiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiUHV0RGVzdGluYXRpb25Db21tYW5kXCIpXG4gICAgLnNjKFB1dERlc3RpbmF0aW9uKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgUHV0RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiUHV0RGVzdGluYXRpb25Qb2xpY3lcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoTG9nc0NsaWVudFwiLCBcIlB1dERlc3RpbmF0aW9uUG9saWN5Q29tbWFuZFwiKVxuICAgIC5zYyhQdXREZXN0aW5hdGlvblBvbGljeSlcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFB1dEluZGV4UG9saWN5Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIlB1dEluZGV4UG9saWN5XCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJQdXRJbmRleFBvbGljeUNvbW1hbmRcIilcbiAgICAuc2MoUHV0SW5kZXhQb2xpY3kpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBQdXRJbnRlZ3JhdGlvbkNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkxvZ3NfMjAxNDAzMjhcIiwgXCJQdXRJbnRlZ3JhdGlvblwiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiUHV0SW50ZWdyYXRpb25Db21tYW5kXCIpXG4gICAgLnNjKFB1dEludGVncmF0aW9uKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgUHV0TG9nRXZlbnRzQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIlB1dExvZ0V2ZW50c1wiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiUHV0TG9nRXZlbnRzQ29tbWFuZFwiKVxuICAgIC5zYyhQdXRMb2dFdmVudHMpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBQdXRMb2dHcm91cERlbGV0aW9uUHJvdGVjdGlvbkNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkxvZ3NfMjAxNDAzMjhcIiwgXCJQdXRMb2dHcm91cERlbGV0aW9uUHJvdGVjdGlvblwiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiUHV0TG9nR3JvdXBEZWxldGlvblByb3RlY3Rpb25Db21tYW5kXCIpXG4gICAgLnNjKFB1dExvZ0dyb3VwRGVsZXRpb25Qcm90ZWN0aW9uKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgUHV0TWV0cmljRmlsdGVyQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIlB1dE1ldHJpY0ZpbHRlclwiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiUHV0TWV0cmljRmlsdGVyQ29tbWFuZFwiKVxuICAgIC5zYyhQdXRNZXRyaWNGaWx0ZXIpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBQdXRRdWVyeURlZmluaXRpb25Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiUHV0UXVlcnlEZWZpbml0aW9uXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJQdXRRdWVyeURlZmluaXRpb25Db21tYW5kXCIpXG4gICAgLnNjKFB1dFF1ZXJ5RGVmaW5pdGlvbilcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFB1dFJlc291cmNlUG9saWN5Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIlB1dFJlc291cmNlUG9saWN5XCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJQdXRSZXNvdXJjZVBvbGljeUNvbW1hbmRcIilcbiAgICAuc2MoUHV0UmVzb3VyY2VQb2xpY3kpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBQdXRSZXRlbnRpb25Qb2xpY3lDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiUHV0UmV0ZW50aW9uUG9saWN5XCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJQdXRSZXRlbnRpb25Qb2xpY3lDb21tYW5kXCIpXG4gICAgLnNjKFB1dFJldGVudGlvblBvbGljeSlcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFB1dFN1YnNjcmlwdGlvbkZpbHRlckNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkxvZ3NfMjAxNDAzMjhcIiwgXCJQdXRTdWJzY3JpcHRpb25GaWx0ZXJcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoTG9nc0NsaWVudFwiLCBcIlB1dFN1YnNjcmlwdGlvbkZpbHRlckNvbW1hbmRcIilcbiAgICAuc2MoUHV0U3Vic2NyaXB0aW9uRmlsdGVyKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgUHV0VHJhbnNmb3JtZXJDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiUHV0VHJhbnNmb3JtZXJcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoTG9nc0NsaWVudFwiLCBcIlB1dFRyYW5zZm9ybWVyQ29tbWFuZFwiKVxuICAgIC5zYyhQdXRUcmFuc2Zvcm1lcilcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFN0YXJ0TGl2ZVRhaWxDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiU3RhcnRMaXZlVGFpbFwiLCB7XG4gICAgZXZlbnRTdHJlYW06IHtcbiAgICAgICAgb3V0cHV0OiB0cnVlLFxuICAgIH0sXG59KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJTdGFydExpdmVUYWlsQ29tbWFuZFwiKVxuICAgIC5zYyhTdGFydExpdmVUYWlsKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgU3RhcnRRdWVyeUNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkxvZ3NfMjAxNDAzMjhcIiwgXCJTdGFydFF1ZXJ5XCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJTdGFydFF1ZXJ5Q29tbWFuZFwiKVxuICAgIC5zYyhTdGFydFF1ZXJ5KVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgU3RvcFF1ZXJ5Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIlN0b3BRdWVyeVwiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiU3RvcFF1ZXJ5Q29tbWFuZFwiKVxuICAgIC5zYyhTdG9wUXVlcnkpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBUYWdMb2dHcm91cENvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkxvZ3NfMjAxNDAzMjhcIiwgXCJUYWdMb2dHcm91cFwiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiVGFnTG9nR3JvdXBDb21tYW5kXCIpXG4gICAgLnNjKFRhZ0xvZ0dyb3VwKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgVGFnUmVzb3VyY2VDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiVGFnUmVzb3VyY2VcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoTG9nc0NsaWVudFwiLCBcIlRhZ1Jlc291cmNlQ29tbWFuZFwiKVxuICAgIC5zYyhUYWdSZXNvdXJjZSlcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFRlc3RNZXRyaWNGaWx0ZXJDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiVGVzdE1ldHJpY0ZpbHRlclwiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiVGVzdE1ldHJpY0ZpbHRlckNvbW1hbmRcIilcbiAgICAuc2MoVGVzdE1ldHJpY0ZpbHRlcilcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFRlc3RUcmFuc2Zvcm1lckNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkxvZ3NfMjAxNDAzMjhcIiwgXCJUZXN0VHJhbnNmb3JtZXJcIiwge30pXG4gICAgLm4oXCJDbG91ZFdhdGNoTG9nc0NsaWVudFwiLCBcIlRlc3RUcmFuc2Zvcm1lckNvbW1hbmRcIilcbiAgICAuc2MoVGVzdFRyYW5zZm9ybWVyKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgVW50YWdMb2dHcm91cENvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkxvZ3NfMjAxNDAzMjhcIiwgXCJVbnRhZ0xvZ0dyb3VwXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJVbnRhZ0xvZ0dyb3VwQ29tbWFuZFwiKVxuICAgIC5zYyhVbnRhZ0xvZ0dyb3VwKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgVW50YWdSZXNvdXJjZUNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkxvZ3NfMjAxNDAzMjhcIiwgXCJVbnRhZ1Jlc291cmNlXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJVbnRhZ1Jlc291cmNlQ29tbWFuZFwiKVxuICAgIC5zYyhVbnRhZ1Jlc291cmNlKVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgVXBkYXRlQW5vbWFseUNvbW1hbmQgZXh0ZW5kcyBzbWl0aHlDbGllbnQuQ29tbWFuZFxuICAgIC5jbGFzc0J1aWxkZXIoKVxuICAgIC5lcChjb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkxvZ3NfMjAxNDAzMjhcIiwgXCJVcGRhdGVBbm9tYWx5XCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJVcGRhdGVBbm9tYWx5Q29tbWFuZFwiKVxuICAgIC5zYyhVcGRhdGVBbm9tYWx5KVxuICAgIC5idWlsZCgpIHtcbn1cblxuY2xhc3MgVXBkYXRlRGVsaXZlcnlDb25maWd1cmF0aW9uQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIlVwZGF0ZURlbGl2ZXJ5Q29uZmlndXJhdGlvblwiLCB7fSlcbiAgICAubihcIkNsb3VkV2F0Y2hMb2dzQ2xpZW50XCIsIFwiVXBkYXRlRGVsaXZlcnlDb25maWd1cmF0aW9uQ29tbWFuZFwiKVxuICAgIC5zYyhVcGRhdGVEZWxpdmVyeUNvbmZpZ3VyYXRpb24pXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBVcGRhdGVMb2dBbm9tYWx5RGV0ZWN0b3JDb21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJMb2dzXzIwMTQwMzI4XCIsIFwiVXBkYXRlTG9nQW5vbWFseURldGVjdG9yXCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJVcGRhdGVMb2dBbm9tYWx5RGV0ZWN0b3JDb21tYW5kXCIpXG4gICAgLnNjKFVwZGF0ZUxvZ0Fub21hbHlEZXRlY3RvcilcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNsYXNzIFVwZGF0ZVNjaGVkdWxlZFF1ZXJ5Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiTG9nc18yMDE0MDMyOFwiLCBcIlVwZGF0ZVNjaGVkdWxlZFF1ZXJ5XCIsIHt9KVxuICAgIC5uKFwiQ2xvdWRXYXRjaExvZ3NDbGllbnRcIiwgXCJVcGRhdGVTY2hlZHVsZWRRdWVyeUNvbW1hbmRcIilcbiAgICAuc2MoVXBkYXRlU2NoZWR1bGVkUXVlcnkpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jb25zdCBjb21tYW5kcyA9IHtcbiAgICBBc3NvY2lhdGVLbXNLZXlDb21tYW5kLFxuICAgIEFzc29jaWF0ZVNvdXJjZVRvUzNUYWJsZUludGVncmF0aW9uQ29tbWFuZCxcbiAgICBDYW5jZWxFeHBvcnRUYXNrQ29tbWFuZCxcbiAgICBDYW5jZWxJbXBvcnRUYXNrQ29tbWFuZCxcbiAgICBDcmVhdGVEZWxpdmVyeUNvbW1hbmQsXG4gICAgQ3JlYXRlRXhwb3J0VGFza0NvbW1hbmQsXG4gICAgQ3JlYXRlSW1wb3J0VGFza0NvbW1hbmQsXG4gICAgQ3JlYXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZCxcbiAgICBDcmVhdGVMb2dHcm91cENvbW1hbmQsXG4gICAgQ3JlYXRlTG9nU3RyZWFtQ29tbWFuZCxcbiAgICBDcmVhdGVTY2hlZHVsZWRRdWVyeUNvbW1hbmQsXG4gICAgRGVsZXRlQWNjb3VudFBvbGljeUNvbW1hbmQsXG4gICAgRGVsZXRlRGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kLFxuICAgIERlbGV0ZURlbGl2ZXJ5Q29tbWFuZCxcbiAgICBEZWxldGVEZWxpdmVyeURlc3RpbmF0aW9uQ29tbWFuZCxcbiAgICBEZWxldGVEZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5Q29tbWFuZCxcbiAgICBEZWxldGVEZWxpdmVyeVNvdXJjZUNvbW1hbmQsXG4gICAgRGVsZXRlRGVzdGluYXRpb25Db21tYW5kLFxuICAgIERlbGV0ZUluZGV4UG9saWN5Q29tbWFuZCxcbiAgICBEZWxldGVJbnRlZ3JhdGlvbkNvbW1hbmQsXG4gICAgRGVsZXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZCxcbiAgICBEZWxldGVMb2dHcm91cENvbW1hbmQsXG4gICAgRGVsZXRlTG9nU3RyZWFtQ29tbWFuZCxcbiAgICBEZWxldGVNZXRyaWNGaWx0ZXJDb21tYW5kLFxuICAgIERlbGV0ZVF1ZXJ5RGVmaW5pdGlvbkNvbW1hbmQsXG4gICAgRGVsZXRlUmVzb3VyY2VQb2xpY3lDb21tYW5kLFxuICAgIERlbGV0ZVJldGVudGlvblBvbGljeUNvbW1hbmQsXG4gICAgRGVsZXRlU2NoZWR1bGVkUXVlcnlDb21tYW5kLFxuICAgIERlbGV0ZVN1YnNjcmlwdGlvbkZpbHRlckNvbW1hbmQsXG4gICAgRGVsZXRlVHJhbnNmb3JtZXJDb21tYW5kLFxuICAgIERlc2NyaWJlQWNjb3VudFBvbGljaWVzQ29tbWFuZCxcbiAgICBEZXNjcmliZUNvbmZpZ3VyYXRpb25UZW1wbGF0ZXNDb21tYW5kLFxuICAgIERlc2NyaWJlRGVsaXZlcmllc0NvbW1hbmQsXG4gICAgRGVzY3JpYmVEZWxpdmVyeURlc3RpbmF0aW9uc0NvbW1hbmQsXG4gICAgRGVzY3JpYmVEZWxpdmVyeVNvdXJjZXNDb21tYW5kLFxuICAgIERlc2NyaWJlRGVzdGluYXRpb25zQ29tbWFuZCxcbiAgICBEZXNjcmliZUV4cG9ydFRhc2tzQ29tbWFuZCxcbiAgICBEZXNjcmliZUZpZWxkSW5kZXhlc0NvbW1hbmQsXG4gICAgRGVzY3JpYmVJbXBvcnRUYXNrQmF0Y2hlc0NvbW1hbmQsXG4gICAgRGVzY3JpYmVJbXBvcnRUYXNrc0NvbW1hbmQsXG4gICAgRGVzY3JpYmVJbmRleFBvbGljaWVzQ29tbWFuZCxcbiAgICBEZXNjcmliZUxvZ0dyb3Vwc0NvbW1hbmQsXG4gICAgRGVzY3JpYmVMb2dTdHJlYW1zQ29tbWFuZCxcbiAgICBEZXNjcmliZU1ldHJpY0ZpbHRlcnNDb21tYW5kLFxuICAgIERlc2NyaWJlUXVlcmllc0NvbW1hbmQsXG4gICAgRGVzY3JpYmVRdWVyeURlZmluaXRpb25zQ29tbWFuZCxcbiAgICBEZXNjcmliZVJlc291cmNlUG9saWNpZXNDb21tYW5kLFxuICAgIERlc2NyaWJlU3Vic2NyaXB0aW9uRmlsdGVyc0NvbW1hbmQsXG4gICAgRGlzYXNzb2NpYXRlS21zS2V5Q29tbWFuZCxcbiAgICBEaXNhc3NvY2lhdGVTb3VyY2VGcm9tUzNUYWJsZUludGVncmF0aW9uQ29tbWFuZCxcbiAgICBGaWx0ZXJMb2dFdmVudHNDb21tYW5kLFxuICAgIEdldERhdGFQcm90ZWN0aW9uUG9saWN5Q29tbWFuZCxcbiAgICBHZXREZWxpdmVyeUNvbW1hbmQsXG4gICAgR2V0RGVsaXZlcnlEZXN0aW5hdGlvbkNvbW1hbmQsXG4gICAgR2V0RGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeUNvbW1hbmQsXG4gICAgR2V0RGVsaXZlcnlTb3VyY2VDb21tYW5kLFxuICAgIEdldEludGVncmF0aW9uQ29tbWFuZCxcbiAgICBHZXRMb2dBbm9tYWx5RGV0ZWN0b3JDb21tYW5kLFxuICAgIEdldExvZ0V2ZW50c0NvbW1hbmQsXG4gICAgR2V0TG9nRmllbGRzQ29tbWFuZCxcbiAgICBHZXRMb2dHcm91cEZpZWxkc0NvbW1hbmQsXG4gICAgR2V0TG9nT2JqZWN0Q29tbWFuZCxcbiAgICBHZXRMb2dSZWNvcmRDb21tYW5kLFxuICAgIEdldFF1ZXJ5UmVzdWx0c0NvbW1hbmQsXG4gICAgR2V0U2NoZWR1bGVkUXVlcnlDb21tYW5kLFxuICAgIEdldFNjaGVkdWxlZFF1ZXJ5SGlzdG9yeUNvbW1hbmQsXG4gICAgR2V0VHJhbnNmb3JtZXJDb21tYW5kLFxuICAgIExpc3RBZ2dyZWdhdGVMb2dHcm91cFN1bW1hcmllc0NvbW1hbmQsXG4gICAgTGlzdEFub21hbGllc0NvbW1hbmQsXG4gICAgTGlzdEludGVncmF0aW9uc0NvbW1hbmQsXG4gICAgTGlzdExvZ0Fub21hbHlEZXRlY3RvcnNDb21tYW5kLFxuICAgIExpc3RMb2dHcm91cHNDb21tYW5kLFxuICAgIExpc3RMb2dHcm91cHNGb3JRdWVyeUNvbW1hbmQsXG4gICAgTGlzdFNjaGVkdWxlZFF1ZXJpZXNDb21tYW5kLFxuICAgIExpc3RTb3VyY2VzRm9yUzNUYWJsZUludGVncmF0aW9uQ29tbWFuZCxcbiAgICBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZCxcbiAgICBMaXN0VGFnc0xvZ0dyb3VwQ29tbWFuZCxcbiAgICBQdXRBY2NvdW50UG9saWN5Q29tbWFuZCxcbiAgICBQdXREYXRhUHJvdGVjdGlvblBvbGljeUNvbW1hbmQsXG4gICAgUHV0RGVsaXZlcnlEZXN0aW5hdGlvbkNvbW1hbmQsXG4gICAgUHV0RGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeUNvbW1hbmQsXG4gICAgUHV0RGVsaXZlcnlTb3VyY2VDb21tYW5kLFxuICAgIFB1dERlc3RpbmF0aW9uQ29tbWFuZCxcbiAgICBQdXREZXN0aW5hdGlvblBvbGljeUNvbW1hbmQsXG4gICAgUHV0SW5kZXhQb2xpY3lDb21tYW5kLFxuICAgIFB1dEludGVncmF0aW9uQ29tbWFuZCxcbiAgICBQdXRMb2dFdmVudHNDb21tYW5kLFxuICAgIFB1dExvZ0dyb3VwRGVsZXRpb25Qcm90ZWN0aW9uQ29tbWFuZCxcbiAgICBQdXRNZXRyaWNGaWx0ZXJDb21tYW5kLFxuICAgIFB1dFF1ZXJ5RGVmaW5pdGlvbkNvbW1hbmQsXG4gICAgUHV0UmVzb3VyY2VQb2xpY3lDb21tYW5kLFxuICAgIFB1dFJldGVudGlvblBvbGljeUNvbW1hbmQsXG4gICAgUHV0U3Vic2NyaXB0aW9uRmlsdGVyQ29tbWFuZCxcbiAgICBQdXRUcmFuc2Zvcm1lckNvbW1hbmQsXG4gICAgU3RhcnRMaXZlVGFpbENvbW1hbmQsXG4gICAgU3RhcnRRdWVyeUNvbW1hbmQsXG4gICAgU3RvcFF1ZXJ5Q29tbWFuZCxcbiAgICBUYWdMb2dHcm91cENvbW1hbmQsXG4gICAgVGFnUmVzb3VyY2VDb21tYW5kLFxuICAgIFRlc3RNZXRyaWNGaWx0ZXJDb21tYW5kLFxuICAgIFRlc3RUcmFuc2Zvcm1lckNvbW1hbmQsXG4gICAgVW50YWdMb2dHcm91cENvbW1hbmQsXG4gICAgVW50YWdSZXNvdXJjZUNvbW1hbmQsXG4gICAgVXBkYXRlQW5vbWFseUNvbW1hbmQsXG4gICAgVXBkYXRlRGVsaXZlcnlDb25maWd1cmF0aW9uQ29tbWFuZCxcbiAgICBVcGRhdGVMb2dBbm9tYWx5RGV0ZWN0b3JDb21tYW5kLFxuICAgIFVwZGF0ZVNjaGVkdWxlZFF1ZXJ5Q29tbWFuZCxcbn07XG5jbGFzcyBDbG91ZFdhdGNoTG9ncyBleHRlbmRzIENsb3VkV2F0Y2hMb2dzQ2xpZW50IHtcbn1cbnNtaXRoeUNsaWVudC5jcmVhdGVBZ2dyZWdhdGVkQ2xpZW50KGNvbW1hbmRzLCBDbG91ZFdhdGNoTG9ncyk7XG5cbmNvbnN0IHBhZ2luYXRlRGVzY3JpYmVDb25maWd1cmF0aW9uVGVtcGxhdGVzID0gY29yZS5jcmVhdGVQYWdpbmF0b3IoQ2xvdWRXYXRjaExvZ3NDbGllbnQsIERlc2NyaWJlQ29uZmlndXJhdGlvblRlbXBsYXRlc0NvbW1hbmQsIFwibmV4dFRva2VuXCIsIFwibmV4dFRva2VuXCIsIFwibGltaXRcIik7XG5cbmNvbnN0IHBhZ2luYXRlRGVzY3JpYmVEZWxpdmVyaWVzID0gY29yZS5jcmVhdGVQYWdpbmF0b3IoQ2xvdWRXYXRjaExvZ3NDbGllbnQsIERlc2NyaWJlRGVsaXZlcmllc0NvbW1hbmQsIFwibmV4dFRva2VuXCIsIFwibmV4dFRva2VuXCIsIFwibGltaXRcIik7XG5cbmNvbnN0IHBhZ2luYXRlRGVzY3JpYmVEZWxpdmVyeURlc3RpbmF0aW9ucyA9IGNvcmUuY3JlYXRlUGFnaW5hdG9yKENsb3VkV2F0Y2hMb2dzQ2xpZW50LCBEZXNjcmliZURlbGl2ZXJ5RGVzdGluYXRpb25zQ29tbWFuZCwgXCJuZXh0VG9rZW5cIiwgXCJuZXh0VG9rZW5cIiwgXCJsaW1pdFwiKTtcblxuY29uc3QgcGFnaW5hdGVEZXNjcmliZURlbGl2ZXJ5U291cmNlcyA9IGNvcmUuY3JlYXRlUGFnaW5hdG9yKENsb3VkV2F0Y2hMb2dzQ2xpZW50LCBEZXNjcmliZURlbGl2ZXJ5U291cmNlc0NvbW1hbmQsIFwibmV4dFRva2VuXCIsIFwibmV4dFRva2VuXCIsIFwibGltaXRcIik7XG5cbmNvbnN0IHBhZ2luYXRlRGVzY3JpYmVEZXN0aW5hdGlvbnMgPSBjb3JlLmNyZWF0ZVBhZ2luYXRvcihDbG91ZFdhdGNoTG9nc0NsaWVudCwgRGVzY3JpYmVEZXN0aW5hdGlvbnNDb21tYW5kLCBcIm5leHRUb2tlblwiLCBcIm5leHRUb2tlblwiLCBcImxpbWl0XCIpO1xuXG5jb25zdCBwYWdpbmF0ZURlc2NyaWJlTG9nR3JvdXBzID0gY29yZS5jcmVhdGVQYWdpbmF0b3IoQ2xvdWRXYXRjaExvZ3NDbGllbnQsIERlc2NyaWJlTG9nR3JvdXBzQ29tbWFuZCwgXCJuZXh0VG9rZW5cIiwgXCJuZXh0VG9rZW5cIiwgXCJsaW1pdFwiKTtcblxuY29uc3QgcGFnaW5hdGVEZXNjcmliZUxvZ1N0cmVhbXMgPSBjb3JlLmNyZWF0ZVBhZ2luYXRvcihDbG91ZFdhdGNoTG9nc0NsaWVudCwgRGVzY3JpYmVMb2dTdHJlYW1zQ29tbWFuZCwgXCJuZXh0VG9rZW5cIiwgXCJuZXh0VG9rZW5cIiwgXCJsaW1pdFwiKTtcblxuY29uc3QgcGFnaW5hdGVEZXNjcmliZU1ldHJpY0ZpbHRlcnMgPSBjb3JlLmNyZWF0ZVBhZ2luYXRvcihDbG91ZFdhdGNoTG9nc0NsaWVudCwgRGVzY3JpYmVNZXRyaWNGaWx0ZXJzQ29tbWFuZCwgXCJuZXh0VG9rZW5cIiwgXCJuZXh0VG9rZW5cIiwgXCJsaW1pdFwiKTtcblxuY29uc3QgcGFnaW5hdGVEZXNjcmliZVN1YnNjcmlwdGlvbkZpbHRlcnMgPSBjb3JlLmNyZWF0ZVBhZ2luYXRvcihDbG91ZFdhdGNoTG9nc0NsaWVudCwgRGVzY3JpYmVTdWJzY3JpcHRpb25GaWx0ZXJzQ29tbWFuZCwgXCJuZXh0VG9rZW5cIiwgXCJuZXh0VG9rZW5cIiwgXCJsaW1pdFwiKTtcblxuY29uc3QgcGFnaW5hdGVGaWx0ZXJMb2dFdmVudHMgPSBjb3JlLmNyZWF0ZVBhZ2luYXRvcihDbG91ZFdhdGNoTG9nc0NsaWVudCwgRmlsdGVyTG9nRXZlbnRzQ29tbWFuZCwgXCJuZXh0VG9rZW5cIiwgXCJuZXh0VG9rZW5cIiwgXCJsaW1pdFwiKTtcblxuY29uc3QgcGFnaW5hdGVHZXRMb2dFdmVudHMgPSBjb3JlLmNyZWF0ZVBhZ2luYXRvcihDbG91ZFdhdGNoTG9nc0NsaWVudCwgR2V0TG9nRXZlbnRzQ29tbWFuZCwgXCJuZXh0VG9rZW5cIiwgXCJuZXh0Rm9yd2FyZFRva2VuXCIsIFwibGltaXRcIik7XG5cbmNvbnN0IHBhZ2luYXRlR2V0U2NoZWR1bGVkUXVlcnlIaXN0b3J5ID0gY29yZS5jcmVhdGVQYWdpbmF0b3IoQ2xvdWRXYXRjaExvZ3NDbGllbnQsIEdldFNjaGVkdWxlZFF1ZXJ5SGlzdG9yeUNvbW1hbmQsIFwibmV4dFRva2VuXCIsIFwibmV4dFRva2VuXCIsIFwibWF4UmVzdWx0c1wiKTtcblxuY29uc3QgcGFnaW5hdGVMaXN0QWdncmVnYXRlTG9nR3JvdXBTdW1tYXJpZXMgPSBjb3JlLmNyZWF0ZVBhZ2luYXRvcihDbG91ZFdhdGNoTG9nc0NsaWVudCwgTGlzdEFnZ3JlZ2F0ZUxvZ0dyb3VwU3VtbWFyaWVzQ29tbWFuZCwgXCJuZXh0VG9rZW5cIiwgXCJuZXh0VG9rZW5cIiwgXCJsaW1pdFwiKTtcblxuY29uc3QgcGFnaW5hdGVMaXN0QW5vbWFsaWVzID0gY29yZS5jcmVhdGVQYWdpbmF0b3IoQ2xvdWRXYXRjaExvZ3NDbGllbnQsIExpc3RBbm9tYWxpZXNDb21tYW5kLCBcIm5leHRUb2tlblwiLCBcIm5leHRUb2tlblwiLCBcImxpbWl0XCIpO1xuXG5jb25zdCBwYWdpbmF0ZUxpc3RMb2dBbm9tYWx5RGV0ZWN0b3JzID0gY29yZS5jcmVhdGVQYWdpbmF0b3IoQ2xvdWRXYXRjaExvZ3NDbGllbnQsIExpc3RMb2dBbm9tYWx5RGV0ZWN0b3JzQ29tbWFuZCwgXCJuZXh0VG9rZW5cIiwgXCJuZXh0VG9rZW5cIiwgXCJsaW1pdFwiKTtcblxuY29uc3QgcGFnaW5hdGVMaXN0TG9nR3JvdXBzRm9yUXVlcnkgPSBjb3JlLmNyZWF0ZVBhZ2luYXRvcihDbG91ZFdhdGNoTG9nc0NsaWVudCwgTGlzdExvZ0dyb3Vwc0ZvclF1ZXJ5Q29tbWFuZCwgXCJuZXh0VG9rZW5cIiwgXCJuZXh0VG9rZW5cIiwgXCJtYXhSZXN1bHRzXCIpO1xuXG5jb25zdCBwYWdpbmF0ZUxpc3RTY2hlZHVsZWRRdWVyaWVzID0gY29yZS5jcmVhdGVQYWdpbmF0b3IoQ2xvdWRXYXRjaExvZ3NDbGllbnQsIExpc3RTY2hlZHVsZWRRdWVyaWVzQ29tbWFuZCwgXCJuZXh0VG9rZW5cIiwgXCJuZXh0VG9rZW5cIiwgXCJtYXhSZXN1bHRzXCIpO1xuXG5jb25zdCBwYWdpbmF0ZUxpc3RTb3VyY2VzRm9yUzNUYWJsZUludGVncmF0aW9uID0gY29yZS5jcmVhdGVQYWdpbmF0b3IoQ2xvdWRXYXRjaExvZ3NDbGllbnQsIExpc3RTb3VyY2VzRm9yUzNUYWJsZUludGVncmF0aW9uQ29tbWFuZCwgXCJuZXh0VG9rZW5cIiwgXCJuZXh0VG9rZW5cIiwgXCJtYXhSZXN1bHRzXCIpO1xuXG5jb25zdCBQb2xpY3lUeXBlID0ge1xuICAgIERBVEFfUFJPVEVDVElPTl9QT0xJQ1k6IFwiREFUQV9QUk9URUNUSU9OX1BPTElDWVwiLFxuICAgIEZJRUxEX0lOREVYX1BPTElDWTogXCJGSUVMRF9JTkRFWF9QT0xJQ1lcIixcbiAgICBNRVRSSUNfRVhUUkFDVElPTl9QT0xJQ1k6IFwiTUVUUklDX0VYVFJBQ1RJT05fUE9MSUNZXCIsXG4gICAgU1VCU0NSSVBUSU9OX0ZJTFRFUl9QT0xJQ1k6IFwiU1VCU0NSSVBUSU9OX0ZJTFRFUl9QT0xJQ1lcIixcbiAgICBUUkFOU0ZPUk1FUl9QT0xJQ1k6IFwiVFJBTlNGT1JNRVJfUE9MSUNZXCIsXG59O1xuY29uc3QgU2NvcGUgPSB7XG4gICAgQUxMOiBcIkFMTFwiLFxufTtcbmNvbnN0IEFjdGlvblN0YXR1cyA9IHtcbiAgICBDTElFTlRfRVJST1I6IFwiQ0xJRU5UX0VSUk9SXCIsXG4gICAgQ09NUExFVEU6IFwiQ09NUExFVEVcIixcbiAgICBGQUlMRUQ6IFwiRkFJTEVEXCIsXG4gICAgSU5fUFJPR1JFU1M6IFwiSU5fUFJPR1JFU1NcIixcbn07XG5jb25zdCBTdGF0ZSA9IHtcbiAgICBBY3RpdmU6IFwiQWN0aXZlXCIsXG4gICAgQmFzZWxpbmU6IFwiQmFzZWxpbmVcIixcbiAgICBTdXBwcmVzc2VkOiBcIlN1cHByZXNzZWRcIixcbn07XG5jb25zdCBBbm9tYWx5RGV0ZWN0b3JTdGF0dXMgPSB7XG4gICAgQU5BTFlaSU5HOiBcIkFOQUxZWklOR1wiLFxuICAgIERFTEVURUQ6IFwiREVMRVRFRFwiLFxuICAgIEZBSUxFRDogXCJGQUlMRURcIixcbiAgICBJTklUSUFMSVpJTkc6IFwiSU5JVElBTElaSU5HXCIsXG4gICAgUEFVU0VEOiBcIlBBVVNFRFwiLFxuICAgIFRSQUlOSU5HOiBcIlRSQUlOSU5HXCIsXG59O1xuY29uc3QgRXZhbHVhdGlvbkZyZXF1ZW5jeSA9IHtcbiAgICBGSUZURUVOX01JTjogXCJGSUZURUVOX01JTlwiLFxuICAgIEZJVkVfTUlOOiBcIkZJVkVfTUlOXCIsXG4gICAgT05FX0hPVVI6IFwiT05FX0hPVVJcIixcbiAgICBPTkVfTUlOOiBcIk9ORV9NSU5cIixcbiAgICBURU5fTUlOOiBcIlRFTl9NSU5cIixcbiAgICBUSElSVFlfTUlOOiBcIlRISVJUWV9NSU5cIixcbn07XG5jb25zdCBJbXBvcnRTdGF0dXMgPSB7XG4gICAgQ0FOQ0VMTEVEOiBcIkNBTkNFTExFRFwiLFxuICAgIENPTVBMRVRFRDogXCJDT01QTEVURURcIixcbiAgICBGQUlMRUQ6IFwiRkFJTEVEXCIsXG4gICAgSU5fUFJPR1JFU1M6IFwiSU5fUFJPR1JFU1NcIixcbn07XG5jb25zdCBPdXRwdXRGb3JtYXQgPSB7XG4gICAgSlNPTjogXCJqc29uXCIsXG4gICAgUEFSUVVFVDogXCJwYXJxdWV0XCIsXG4gICAgUExBSU46IFwicGxhaW5cIixcbiAgICBSQVc6IFwicmF3XCIsXG4gICAgVzNDOiBcInczY1wiLFxufTtcbmNvbnN0IERlbGl2ZXJ5RGVzdGluYXRpb25UeXBlID0ge1xuICAgIENXTDogXCJDV0xcIixcbiAgICBGSDogXCJGSFwiLFxuICAgIFMzOiBcIlMzXCIsXG4gICAgWFJBWTogXCJYUkFZXCIsXG59O1xuY29uc3QgTG9nR3JvdXBDbGFzcyA9IHtcbiAgICBERUxJVkVSWTogXCJERUxJVkVSWVwiLFxuICAgIElORlJFUVVFTlRfQUNDRVNTOiBcIklORlJFUVVFTlRfQUNDRVNTXCIsXG4gICAgU1RBTkRBUkQ6IFwiU1RBTkRBUkRcIixcbn07XG5jb25zdCBRdWVyeUxhbmd1YWdlID0ge1xuICAgIENXTEk6IFwiQ1dMSVwiLFxuICAgIFBQTDogXCJQUExcIixcbiAgICBTUUw6IFwiU1FMXCIsXG59O1xuY29uc3QgU2NoZWR1bGVkUXVlcnlTdGF0ZSA9IHtcbiAgICBESVNBQkxFRDogXCJESVNBQkxFRFwiLFxuICAgIEVOQUJMRUQ6IFwiRU5BQkxFRFwiLFxufTtcbmNvbnN0IERhdGFQcm90ZWN0aW9uU3RhdHVzID0ge1xuICAgIEFDVElWQVRFRDogXCJBQ1RJVkFURURcIixcbiAgICBBUkNISVZFRDogXCJBUkNISVZFRFwiLFxuICAgIERFTEVURUQ6IFwiREVMRVRFRFwiLFxuICAgIERJU0FCTEVEOiBcIkRJU0FCTEVEXCIsXG59O1xuY29uc3QgRXhwb3J0VGFza1N0YXR1c0NvZGUgPSB7XG4gICAgQ0FOQ0VMTEVEOiBcIkNBTkNFTExFRFwiLFxuICAgIENPTVBMRVRFRDogXCJDT01QTEVURURcIixcbiAgICBGQUlMRUQ6IFwiRkFJTEVEXCIsXG4gICAgUEVORElORzogXCJQRU5ESU5HXCIsXG4gICAgUEVORElOR19DQU5DRUw6IFwiUEVORElOR19DQU5DRUxcIixcbiAgICBSVU5OSU5HOiBcIlJVTk5JTkdcIixcbn07XG5jb25zdCBJbmRleFR5cGUgPSB7XG4gICAgRkFDRVQ6IFwiRkFDRVRcIixcbiAgICBGSUVMRF9JTkRFWDogXCJGSUVMRF9JTkRFWFwiLFxufTtcbmNvbnN0IEluZGV4U291cmNlID0ge1xuICAgIEFDQ09VTlQ6IFwiQUNDT1VOVFwiLFxuICAgIExPR19HUk9VUDogXCJMT0dfR1JPVVBcIixcbn07XG5jb25zdCBJbmhlcml0ZWRQcm9wZXJ0eSA9IHtcbiAgICBBQ0NPVU5UX0RBVEFfUFJPVEVDVElPTjogXCJBQ0NPVU5UX0RBVEFfUFJPVEVDVElPTlwiLFxufTtcbmNvbnN0IE9yZGVyQnkgPSB7XG4gICAgTGFzdEV2ZW50VGltZTogXCJMYXN0RXZlbnRUaW1lXCIsXG4gICAgTG9nU3RyZWFtTmFtZTogXCJMb2dTdHJlYW1OYW1lXCIsXG59O1xuY29uc3QgU3RhbmRhcmRVbml0ID0ge1xuICAgIEJpdHM6IFwiQml0c1wiLFxuICAgIEJpdHNTZWNvbmQ6IFwiQml0cy9TZWNvbmRcIixcbiAgICBCeXRlczogXCJCeXRlc1wiLFxuICAgIEJ5dGVzU2Vjb25kOiBcIkJ5dGVzL1NlY29uZFwiLFxuICAgIENvdW50OiBcIkNvdW50XCIsXG4gICAgQ291bnRTZWNvbmQ6IFwiQ291bnQvU2Vjb25kXCIsXG4gICAgR2lnYWJpdHM6IFwiR2lnYWJpdHNcIixcbiAgICBHaWdhYml0c1NlY29uZDogXCJHaWdhYml0cy9TZWNvbmRcIixcbiAgICBHaWdhYnl0ZXM6IFwiR2lnYWJ5dGVzXCIsXG4gICAgR2lnYWJ5dGVzU2Vjb25kOiBcIkdpZ2FieXRlcy9TZWNvbmRcIixcbiAgICBLaWxvYml0czogXCJLaWxvYml0c1wiLFxuICAgIEtpbG9iaXRzU2Vjb25kOiBcIktpbG9iaXRzL1NlY29uZFwiLFxuICAgIEtpbG9ieXRlczogXCJLaWxvYnl0ZXNcIixcbiAgICBLaWxvYnl0ZXNTZWNvbmQ6IFwiS2lsb2J5dGVzL1NlY29uZFwiLFxuICAgIE1lZ2FiaXRzOiBcIk1lZ2FiaXRzXCIsXG4gICAgTWVnYWJpdHNTZWNvbmQ6IFwiTWVnYWJpdHMvU2Vjb25kXCIsXG4gICAgTWVnYWJ5dGVzOiBcIk1lZ2FieXRlc1wiLFxuICAgIE1lZ2FieXRlc1NlY29uZDogXCJNZWdhYnl0ZXMvU2Vjb25kXCIsXG4gICAgTWljcm9zZWNvbmRzOiBcIk1pY3Jvc2Vjb25kc1wiLFxuICAgIE1pbGxpc2Vjb25kczogXCJNaWxsaXNlY29uZHNcIixcbiAgICBOb25lOiBcIk5vbmVcIixcbiAgICBQZXJjZW50OiBcIlBlcmNlbnRcIixcbiAgICBTZWNvbmRzOiBcIlNlY29uZHNcIixcbiAgICBUZXJhYml0czogXCJUZXJhYml0c1wiLFxuICAgIFRlcmFiaXRzU2Vjb25kOiBcIlRlcmFiaXRzL1NlY29uZFwiLFxuICAgIFRlcmFieXRlczogXCJUZXJhYnl0ZXNcIixcbiAgICBUZXJhYnl0ZXNTZWNvbmQ6IFwiVGVyYWJ5dGVzL1NlY29uZFwiLFxufTtcbmNvbnN0IFF1ZXJ5U3RhdHVzID0ge1xuICAgIENhbmNlbGxlZDogXCJDYW5jZWxsZWRcIixcbiAgICBDb21wbGV0ZTogXCJDb21wbGV0ZVwiLFxuICAgIEZhaWxlZDogXCJGYWlsZWRcIixcbiAgICBSdW5uaW5nOiBcIlJ1bm5pbmdcIixcbiAgICBTY2hlZHVsZWQ6IFwiU2NoZWR1bGVkXCIsXG4gICAgVGltZW91dDogXCJUaW1lb3V0XCIsXG4gICAgVW5rbm93bjogXCJVbmtub3duXCIsXG59O1xuY29uc3QgUG9saWN5U2NvcGUgPSB7XG4gICAgQUNDT1VOVDogXCJBQ0NPVU5UXCIsXG4gICAgUkVTT1VSQ0U6IFwiUkVTT1VSQ0VcIixcbn07XG5jb25zdCBEaXN0cmlidXRpb24gPSB7XG4gICAgQnlMb2dTdHJlYW06IFwiQnlMb2dTdHJlYW1cIixcbiAgICBSYW5kb206IFwiUmFuZG9tXCIsXG59O1xuY29uc3QgRW50aXR5UmVqZWN0aW9uRXJyb3JUeXBlID0ge1xuICAgIEVOVElUWV9TSVpFX1RPT19MQVJHRTogXCJFbnRpdHlTaXplVG9vTGFyZ2VcIixcbiAgICBJTlZBTElEX0FUVFJJQlVURVM6IFwiSW52YWxpZEF0dHJpYnV0ZXNcIixcbiAgICBJTlZBTElEX0VOVElUWTogXCJJbnZhbGlkRW50aXR5XCIsXG4gICAgSU5WQUxJRF9LRVlfQVRUUklCVVRFOiBcIkludmFsaWRLZXlBdHRyaWJ1dGVzXCIsXG4gICAgSU5WQUxJRF9UWVBFX1ZBTFVFOiBcIkludmFsaWRUeXBlVmFsdWVcIixcbiAgICBNSVNTSU5HX1JFUVVJUkVEX0ZJRUxEUzogXCJNaXNzaW5nUmVxdWlyZWRGaWVsZHNcIixcbiAgICBVTlNVUFBPUlRFRF9MT0dfR1JPVVBfVFlQRTogXCJVbnN1cHBvcnRlZExvZ0dyb3VwVHlwZVwiLFxufTtcbmNvbnN0IEV2ZW50U291cmNlID0ge1xuICAgIEFXU1dBRjogXCJBV1NXQUZcIixcbiAgICBDTE9VRF9UUkFJTDogXCJDbG91ZFRyYWlsXCIsXG4gICAgRUtTX0FVRElUOiBcIkVLU0F1ZGl0XCIsXG4gICAgUk9VVEU1M19SRVNPTFZFUjogXCJSb3V0ZTUzUmVzb2x2ZXJcIixcbiAgICBWUENfRkxPVzogXCJWUENGbG93XCIsXG59O1xuY29uc3QgRXhlY3V0aW9uU3RhdHVzID0ge1xuICAgIENvbXBsZXRlOiBcIkNvbXBsZXRlXCIsXG4gICAgRmFpbGVkOiBcIkZhaWxlZFwiLFxuICAgIEludmFsaWRRdWVyeTogXCJJbnZhbGlkUXVlcnlcIixcbiAgICBSdW5uaW5nOiBcIlJ1bm5pbmdcIixcbiAgICBUaW1lb3V0OiBcIlRpbWVvdXRcIixcbn07XG5jb25zdCBGbGF0dGVuZWRFbGVtZW50ID0ge1xuICAgIEZJUlNUOiBcImZpcnN0XCIsXG4gICAgTEFTVDogXCJsYXN0XCIsXG59O1xuY29uc3QgT3BlblNlYXJjaFJlc291cmNlU3RhdHVzVHlwZSA9IHtcbiAgICBBQ1RJVkU6IFwiQUNUSVZFXCIsXG4gICAgRVJST1I6IFwiRVJST1JcIixcbiAgICBOT1RfRk9VTkQ6IFwiTk9UX0ZPVU5EXCIsXG59O1xuY29uc3QgSW50ZWdyYXRpb25TdGF0dXMgPSB7XG4gICAgQUNUSVZFOiBcIkFDVElWRVwiLFxuICAgIEZBSUxFRDogXCJGQUlMRURcIixcbiAgICBQUk9WSVNJT05JTkc6IFwiUFJPVklTSU9OSU5HXCIsXG59O1xuY29uc3QgSW50ZWdyYXRpb25UeXBlID0ge1xuICAgIE9QRU5TRUFSQ0g6IFwiT1BFTlNFQVJDSFwiLFxufTtcbmNvbnN0IFNjaGVkdWxlZFF1ZXJ5RGVzdGluYXRpb25UeXBlID0ge1xuICAgIFMzOiBcIlMzXCIsXG59O1xuY29uc3QgT0NTRlZlcnNpb24gPSB7XG4gICAgVjFfMTogXCJWMS4xXCIsXG4gICAgVjFfNTogXCJWMS41XCIsXG59O1xuY29uc3QgVHlwZSA9IHtcbiAgICBCT09MRUFOOiBcImJvb2xlYW5cIixcbiAgICBET1VCTEU6IFwiZG91YmxlXCIsXG4gICAgSU5URUdFUjogXCJpbnRlZ2VyXCIsXG4gICAgU1RSSU5HOiBcInN0cmluZ1wiLFxufTtcbmNvbnN0IExpc3RBZ2dyZWdhdGVMb2dHcm91cFN1bW1hcmllc0dyb3VwQnkgPSB7XG4gICAgREFUQV9TT1VSQ0VfTkFNRV9BTkRfVFlQRTogXCJEQVRBX1NPVVJDRV9OQU1FX0FORF9UWVBFXCIsXG4gICAgREFUQV9TT1VSQ0VfTkFNRV9UWVBFX0FORF9GT1JNQVQ6IFwiREFUQV9TT1VSQ0VfTkFNRV9UWVBFX0FORF9GT1JNQVRcIixcbn07XG5jb25zdCBTdXBwcmVzc2lvblN0YXRlID0ge1xuICAgIFNVUFBSRVNTRUQ6IFwiU1VQUFJFU1NFRFwiLFxuICAgIFVOU1VQUFJFU1NFRDogXCJVTlNVUFBSRVNTRURcIixcbn07XG5jb25zdCBTM1RhYmxlSW50ZWdyYXRpb25Tb3VyY2VTdGF0dXMgPSB7XG4gICAgQUNUSVZFOiBcIkFDVElWRVwiLFxuICAgIERBVEFfU09VUkNFX0RFTEVURV9JTl9QUk9HUkVTUzogXCJEQVRBX1NPVVJDRV9ERUxFVEVfSU5fUFJPR1JFU1NcIixcbiAgICBGQUlMRUQ6IFwiRkFJTEVEXCIsXG4gICAgVU5IRUFMVEhZOiBcIlVOSEVBTFRIWVwiLFxufTtcbmNvbnN0IFN1cHByZXNzaW9uVW5pdCA9IHtcbiAgICBIT1VSUzogXCJIT1VSU1wiLFxuICAgIE1JTlVURVM6IFwiTUlOVVRFU1wiLFxuICAgIFNFQ09ORFM6IFwiU0VDT05EU1wiLFxufTtcbmNvbnN0IFN1cHByZXNzaW9uVHlwZSA9IHtcbiAgICBJTkZJTklURTogXCJJTkZJTklURVwiLFxuICAgIExJTUlURUQ6IFwiTElNSVRFRFwiLFxufTtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiJENvbW1hbmRcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBzbWl0aHlDbGllbnQuQ29tbWFuZDsgfVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX0NsaWVudFwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHNtaXRoeUNsaWVudC5DbGllbnQ7IH1cbn0pO1xuZXhwb3J0cy5BY2Nlc3NEZW5pZWRFeGNlcHRpb24gPSBBY2Nlc3NEZW5pZWRFeGNlcHRpb24kMTtcbmV4cG9ydHMuQWN0aW9uU3RhdHVzID0gQWN0aW9uU3RhdHVzO1xuZXhwb3J0cy5Bbm9tYWx5RGV0ZWN0b3JTdGF0dXMgPSBBbm9tYWx5RGV0ZWN0b3JTdGF0dXM7XG5leHBvcnRzLkFzc29jaWF0ZUttc0tleUNvbW1hbmQgPSBBc3NvY2lhdGVLbXNLZXlDb21tYW5kO1xuZXhwb3J0cy5Bc3NvY2lhdGVTb3VyY2VUb1MzVGFibGVJbnRlZ3JhdGlvbkNvbW1hbmQgPSBBc3NvY2lhdGVTb3VyY2VUb1MzVGFibGVJbnRlZ3JhdGlvbkNvbW1hbmQ7XG5leHBvcnRzLkNhbmNlbEV4cG9ydFRhc2tDb21tYW5kID0gQ2FuY2VsRXhwb3J0VGFza0NvbW1hbmQ7XG5leHBvcnRzLkNhbmNlbEltcG9ydFRhc2tDb21tYW5kID0gQ2FuY2VsSW1wb3J0VGFza0NvbW1hbmQ7XG5leHBvcnRzLkNsb3VkV2F0Y2hMb2dzID0gQ2xvdWRXYXRjaExvZ3M7XG5leHBvcnRzLkNsb3VkV2F0Y2hMb2dzQ2xpZW50ID0gQ2xvdWRXYXRjaExvZ3NDbGllbnQ7XG5leHBvcnRzLkNsb3VkV2F0Y2hMb2dzU2VydmljZUV4Y2VwdGlvbiA9IENsb3VkV2F0Y2hMb2dzU2VydmljZUV4Y2VwdGlvbiQxO1xuZXhwb3J0cy5Db25mbGljdEV4Y2VwdGlvbiA9IENvbmZsaWN0RXhjZXB0aW9uJDE7XG5leHBvcnRzLkNyZWF0ZURlbGl2ZXJ5Q29tbWFuZCA9IENyZWF0ZURlbGl2ZXJ5Q29tbWFuZDtcbmV4cG9ydHMuQ3JlYXRlRXhwb3J0VGFza0NvbW1hbmQgPSBDcmVhdGVFeHBvcnRUYXNrQ29tbWFuZDtcbmV4cG9ydHMuQ3JlYXRlSW1wb3J0VGFza0NvbW1hbmQgPSBDcmVhdGVJbXBvcnRUYXNrQ29tbWFuZDtcbmV4cG9ydHMuQ3JlYXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZCA9IENyZWF0ZUxvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmQ7XG5leHBvcnRzLkNyZWF0ZUxvZ0dyb3VwQ29tbWFuZCA9IENyZWF0ZUxvZ0dyb3VwQ29tbWFuZDtcbmV4cG9ydHMuQ3JlYXRlTG9nU3RyZWFtQ29tbWFuZCA9IENyZWF0ZUxvZ1N0cmVhbUNvbW1hbmQ7XG5leHBvcnRzLkNyZWF0ZVNjaGVkdWxlZFF1ZXJ5Q29tbWFuZCA9IENyZWF0ZVNjaGVkdWxlZFF1ZXJ5Q29tbWFuZDtcbmV4cG9ydHMuRGF0YUFscmVhZHlBY2NlcHRlZEV4Y2VwdGlvbiA9IERhdGFBbHJlYWR5QWNjZXB0ZWRFeGNlcHRpb24kMTtcbmV4cG9ydHMuRGF0YVByb3RlY3Rpb25TdGF0dXMgPSBEYXRhUHJvdGVjdGlvblN0YXR1cztcbmV4cG9ydHMuRGVsZXRlQWNjb3VudFBvbGljeUNvbW1hbmQgPSBEZWxldGVBY2NvdW50UG9saWN5Q29tbWFuZDtcbmV4cG9ydHMuRGVsZXRlRGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kID0gRGVsZXRlRGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kO1xuZXhwb3J0cy5EZWxldGVEZWxpdmVyeUNvbW1hbmQgPSBEZWxldGVEZWxpdmVyeUNvbW1hbmQ7XG5leHBvcnRzLkRlbGV0ZURlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kID0gRGVsZXRlRGVsaXZlcnlEZXN0aW5hdGlvbkNvbW1hbmQ7XG5leHBvcnRzLkRlbGV0ZURlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kID0gRGVsZXRlRGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeUNvbW1hbmQ7XG5leHBvcnRzLkRlbGV0ZURlbGl2ZXJ5U291cmNlQ29tbWFuZCA9IERlbGV0ZURlbGl2ZXJ5U291cmNlQ29tbWFuZDtcbmV4cG9ydHMuRGVsZXRlRGVzdGluYXRpb25Db21tYW5kID0gRGVsZXRlRGVzdGluYXRpb25Db21tYW5kO1xuZXhwb3J0cy5EZWxldGVJbmRleFBvbGljeUNvbW1hbmQgPSBEZWxldGVJbmRleFBvbGljeUNvbW1hbmQ7XG5leHBvcnRzLkRlbGV0ZUludGVncmF0aW9uQ29tbWFuZCA9IERlbGV0ZUludGVncmF0aW9uQ29tbWFuZDtcbmV4cG9ydHMuRGVsZXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZCA9IERlbGV0ZUxvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmQ7XG5leHBvcnRzLkRlbGV0ZUxvZ0dyb3VwQ29tbWFuZCA9IERlbGV0ZUxvZ0dyb3VwQ29tbWFuZDtcbmV4cG9ydHMuRGVsZXRlTG9nU3RyZWFtQ29tbWFuZCA9IERlbGV0ZUxvZ1N0cmVhbUNvbW1hbmQ7XG5leHBvcnRzLkRlbGV0ZU1ldHJpY0ZpbHRlckNvbW1hbmQgPSBEZWxldGVNZXRyaWNGaWx0ZXJDb21tYW5kO1xuZXhwb3J0cy5EZWxldGVRdWVyeURlZmluaXRpb25Db21tYW5kID0gRGVsZXRlUXVlcnlEZWZpbml0aW9uQ29tbWFuZDtcbmV4cG9ydHMuRGVsZXRlUmVzb3VyY2VQb2xpY3lDb21tYW5kID0gRGVsZXRlUmVzb3VyY2VQb2xpY3lDb21tYW5kO1xuZXhwb3J0cy5EZWxldGVSZXRlbnRpb25Qb2xpY3lDb21tYW5kID0gRGVsZXRlUmV0ZW50aW9uUG9saWN5Q29tbWFuZDtcbmV4cG9ydHMuRGVsZXRlU2NoZWR1bGVkUXVlcnlDb21tYW5kID0gRGVsZXRlU2NoZWR1bGVkUXVlcnlDb21tYW5kO1xuZXhwb3J0cy5EZWxldGVTdWJzY3JpcHRpb25GaWx0ZXJDb21tYW5kID0gRGVsZXRlU3Vic2NyaXB0aW9uRmlsdGVyQ29tbWFuZDtcbmV4cG9ydHMuRGVsZXRlVHJhbnNmb3JtZXJDb21tYW5kID0gRGVsZXRlVHJhbnNmb3JtZXJDb21tYW5kO1xuZXhwb3J0cy5EZWxpdmVyeURlc3RpbmF0aW9uVHlwZSA9IERlbGl2ZXJ5RGVzdGluYXRpb25UeXBlO1xuZXhwb3J0cy5EZXNjcmliZUFjY291bnRQb2xpY2llc0NvbW1hbmQgPSBEZXNjcmliZUFjY291bnRQb2xpY2llc0NvbW1hbmQ7XG5leHBvcnRzLkRlc2NyaWJlQ29uZmlndXJhdGlvblRlbXBsYXRlc0NvbW1hbmQgPSBEZXNjcmliZUNvbmZpZ3VyYXRpb25UZW1wbGF0ZXNDb21tYW5kO1xuZXhwb3J0cy5EZXNjcmliZURlbGl2ZXJpZXNDb21tYW5kID0gRGVzY3JpYmVEZWxpdmVyaWVzQ29tbWFuZDtcbmV4cG9ydHMuRGVzY3JpYmVEZWxpdmVyeURlc3RpbmF0aW9uc0NvbW1hbmQgPSBEZXNjcmliZURlbGl2ZXJ5RGVzdGluYXRpb25zQ29tbWFuZDtcbmV4cG9ydHMuRGVzY3JpYmVEZWxpdmVyeVNvdXJjZXNDb21tYW5kID0gRGVzY3JpYmVEZWxpdmVyeVNvdXJjZXNDb21tYW5kO1xuZXhwb3J0cy5EZXNjcmliZURlc3RpbmF0aW9uc0NvbW1hbmQgPSBEZXNjcmliZURlc3RpbmF0aW9uc0NvbW1hbmQ7XG5leHBvcnRzLkRlc2NyaWJlRXhwb3J0VGFza3NDb21tYW5kID0gRGVzY3JpYmVFeHBvcnRUYXNrc0NvbW1hbmQ7XG5leHBvcnRzLkRlc2NyaWJlRmllbGRJbmRleGVzQ29tbWFuZCA9IERlc2NyaWJlRmllbGRJbmRleGVzQ29tbWFuZDtcbmV4cG9ydHMuRGVzY3JpYmVJbXBvcnRUYXNrQmF0Y2hlc0NvbW1hbmQgPSBEZXNjcmliZUltcG9ydFRhc2tCYXRjaGVzQ29tbWFuZDtcbmV4cG9ydHMuRGVzY3JpYmVJbXBvcnRUYXNrc0NvbW1hbmQgPSBEZXNjcmliZUltcG9ydFRhc2tzQ29tbWFuZDtcbmV4cG9ydHMuRGVzY3JpYmVJbmRleFBvbGljaWVzQ29tbWFuZCA9IERlc2NyaWJlSW5kZXhQb2xpY2llc0NvbW1hbmQ7XG5leHBvcnRzLkRlc2NyaWJlTG9nR3JvdXBzQ29tbWFuZCA9IERlc2NyaWJlTG9nR3JvdXBzQ29tbWFuZDtcbmV4cG9ydHMuRGVzY3JpYmVMb2dTdHJlYW1zQ29tbWFuZCA9IERlc2NyaWJlTG9nU3RyZWFtc0NvbW1hbmQ7XG5leHBvcnRzLkRlc2NyaWJlTWV0cmljRmlsdGVyc0NvbW1hbmQgPSBEZXNjcmliZU1ldHJpY0ZpbHRlcnNDb21tYW5kO1xuZXhwb3J0cy5EZXNjcmliZVF1ZXJpZXNDb21tYW5kID0gRGVzY3JpYmVRdWVyaWVzQ29tbWFuZDtcbmV4cG9ydHMuRGVzY3JpYmVRdWVyeURlZmluaXRpb25zQ29tbWFuZCA9IERlc2NyaWJlUXVlcnlEZWZpbml0aW9uc0NvbW1hbmQ7XG5leHBvcnRzLkRlc2NyaWJlUmVzb3VyY2VQb2xpY2llc0NvbW1hbmQgPSBEZXNjcmliZVJlc291cmNlUG9saWNpZXNDb21tYW5kO1xuZXhwb3J0cy5EZXNjcmliZVN1YnNjcmlwdGlvbkZpbHRlcnNDb21tYW5kID0gRGVzY3JpYmVTdWJzY3JpcHRpb25GaWx0ZXJzQ29tbWFuZDtcbmV4cG9ydHMuRGlzYXNzb2NpYXRlS21zS2V5Q29tbWFuZCA9IERpc2Fzc29jaWF0ZUttc0tleUNvbW1hbmQ7XG5leHBvcnRzLkRpc2Fzc29jaWF0ZVNvdXJjZUZyb21TM1RhYmxlSW50ZWdyYXRpb25Db21tYW5kID0gRGlzYXNzb2NpYXRlU291cmNlRnJvbVMzVGFibGVJbnRlZ3JhdGlvbkNvbW1hbmQ7XG5leHBvcnRzLkRpc3RyaWJ1dGlvbiA9IERpc3RyaWJ1dGlvbjtcbmV4cG9ydHMuRW50aXR5UmVqZWN0aW9uRXJyb3JUeXBlID0gRW50aXR5UmVqZWN0aW9uRXJyb3JUeXBlO1xuZXhwb3J0cy5FdmFsdWF0aW9uRnJlcXVlbmN5ID0gRXZhbHVhdGlvbkZyZXF1ZW5jeTtcbmV4cG9ydHMuRXZlbnRTb3VyY2UgPSBFdmVudFNvdXJjZTtcbmV4cG9ydHMuRXhlY3V0aW9uU3RhdHVzID0gRXhlY3V0aW9uU3RhdHVzO1xuZXhwb3J0cy5FeHBvcnRUYXNrU3RhdHVzQ29kZSA9IEV4cG9ydFRhc2tTdGF0dXNDb2RlO1xuZXhwb3J0cy5GaWx0ZXJMb2dFdmVudHNDb21tYW5kID0gRmlsdGVyTG9nRXZlbnRzQ29tbWFuZDtcbmV4cG9ydHMuRmxhdHRlbmVkRWxlbWVudCA9IEZsYXR0ZW5lZEVsZW1lbnQ7XG5leHBvcnRzLkdldERhdGFQcm90ZWN0aW9uUG9saWN5Q29tbWFuZCA9IEdldERhdGFQcm90ZWN0aW9uUG9saWN5Q29tbWFuZDtcbmV4cG9ydHMuR2V0RGVsaXZlcnlDb21tYW5kID0gR2V0RGVsaXZlcnlDb21tYW5kO1xuZXhwb3J0cy5HZXREZWxpdmVyeURlc3RpbmF0aW9uQ29tbWFuZCA9IEdldERlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kO1xuZXhwb3J0cy5HZXREZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5Q29tbWFuZCA9IEdldERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kO1xuZXhwb3J0cy5HZXREZWxpdmVyeVNvdXJjZUNvbW1hbmQgPSBHZXREZWxpdmVyeVNvdXJjZUNvbW1hbmQ7XG5leHBvcnRzLkdldEludGVncmF0aW9uQ29tbWFuZCA9IEdldEludGVncmF0aW9uQ29tbWFuZDtcbmV4cG9ydHMuR2V0TG9nQW5vbWFseURldGVjdG9yQ29tbWFuZCA9IEdldExvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmQ7XG5leHBvcnRzLkdldExvZ0V2ZW50c0NvbW1hbmQgPSBHZXRMb2dFdmVudHNDb21tYW5kO1xuZXhwb3J0cy5HZXRMb2dGaWVsZHNDb21tYW5kID0gR2V0TG9nRmllbGRzQ29tbWFuZDtcbmV4cG9ydHMuR2V0TG9nR3JvdXBGaWVsZHNDb21tYW5kID0gR2V0TG9nR3JvdXBGaWVsZHNDb21tYW5kO1xuZXhwb3J0cy5HZXRMb2dPYmplY3RDb21tYW5kID0gR2V0TG9nT2JqZWN0Q29tbWFuZDtcbmV4cG9ydHMuR2V0TG9nUmVjb3JkQ29tbWFuZCA9IEdldExvZ1JlY29yZENvbW1hbmQ7XG5leHBvcnRzLkdldFF1ZXJ5UmVzdWx0c0NvbW1hbmQgPSBHZXRRdWVyeVJlc3VsdHNDb21tYW5kO1xuZXhwb3J0cy5HZXRTY2hlZHVsZWRRdWVyeUNvbW1hbmQgPSBHZXRTY2hlZHVsZWRRdWVyeUNvbW1hbmQ7XG5leHBvcnRzLkdldFNjaGVkdWxlZFF1ZXJ5SGlzdG9yeUNvbW1hbmQgPSBHZXRTY2hlZHVsZWRRdWVyeUhpc3RvcnlDb21tYW5kO1xuZXhwb3J0cy5HZXRUcmFuc2Zvcm1lckNvbW1hbmQgPSBHZXRUcmFuc2Zvcm1lckNvbW1hbmQ7XG5leHBvcnRzLkltcG9ydFN0YXR1cyA9IEltcG9ydFN0YXR1cztcbmV4cG9ydHMuSW5kZXhTb3VyY2UgPSBJbmRleFNvdXJjZTtcbmV4cG9ydHMuSW5kZXhUeXBlID0gSW5kZXhUeXBlO1xuZXhwb3J0cy5Jbmhlcml0ZWRQcm9wZXJ0eSA9IEluaGVyaXRlZFByb3BlcnR5O1xuZXhwb3J0cy5JbnRlZ3JhdGlvblN0YXR1cyA9IEludGVncmF0aW9uU3RhdHVzO1xuZXhwb3J0cy5JbnRlZ3JhdGlvblR5cGUgPSBJbnRlZ3JhdGlvblR5cGU7XG5leHBvcnRzLkludGVybmFsU2VydmVyRXhjZXB0aW9uID0gSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb24kMTtcbmV4cG9ydHMuSW50ZXJuYWxTdHJlYW1pbmdFeGNlcHRpb24gPSBJbnRlcm5hbFN0cmVhbWluZ0V4Y2VwdGlvbiQxO1xuZXhwb3J0cy5JbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uID0gSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbiQxO1xuZXhwb3J0cy5JbnZhbGlkUGFyYW1ldGVyRXhjZXB0aW9uID0gSW52YWxpZFBhcmFtZXRlckV4Y2VwdGlvbiQxO1xuZXhwb3J0cy5JbnZhbGlkU2VxdWVuY2VUb2tlbkV4Y2VwdGlvbiA9IEludmFsaWRTZXF1ZW5jZVRva2VuRXhjZXB0aW9uJDE7XG5leHBvcnRzLkxpbWl0RXhjZWVkZWRFeGNlcHRpb24gPSBMaW1pdEV4Y2VlZGVkRXhjZXB0aW9uJDE7XG5leHBvcnRzLkxpc3RBZ2dyZWdhdGVMb2dHcm91cFN1bW1hcmllc0NvbW1hbmQgPSBMaXN0QWdncmVnYXRlTG9nR3JvdXBTdW1tYXJpZXNDb21tYW5kO1xuZXhwb3J0cy5MaXN0QWdncmVnYXRlTG9nR3JvdXBTdW1tYXJpZXNHcm91cEJ5ID0gTGlzdEFnZ3JlZ2F0ZUxvZ0dyb3VwU3VtbWFyaWVzR3JvdXBCeTtcbmV4cG9ydHMuTGlzdEFub21hbGllc0NvbW1hbmQgPSBMaXN0QW5vbWFsaWVzQ29tbWFuZDtcbmV4cG9ydHMuTGlzdEludGVncmF0aW9uc0NvbW1hbmQgPSBMaXN0SW50ZWdyYXRpb25zQ29tbWFuZDtcbmV4cG9ydHMuTGlzdExvZ0Fub21hbHlEZXRlY3RvcnNDb21tYW5kID0gTGlzdExvZ0Fub21hbHlEZXRlY3RvcnNDb21tYW5kO1xuZXhwb3J0cy5MaXN0TG9nR3JvdXBzQ29tbWFuZCA9IExpc3RMb2dHcm91cHNDb21tYW5kO1xuZXhwb3J0cy5MaXN0TG9nR3JvdXBzRm9yUXVlcnlDb21tYW5kID0gTGlzdExvZ0dyb3Vwc0ZvclF1ZXJ5Q29tbWFuZDtcbmV4cG9ydHMuTGlzdFNjaGVkdWxlZFF1ZXJpZXNDb21tYW5kID0gTGlzdFNjaGVkdWxlZFF1ZXJpZXNDb21tYW5kO1xuZXhwb3J0cy5MaXN0U291cmNlc0ZvclMzVGFibGVJbnRlZ3JhdGlvbkNvbW1hbmQgPSBMaXN0U291cmNlc0ZvclMzVGFibGVJbnRlZ3JhdGlvbkNvbW1hbmQ7XG5leHBvcnRzLkxpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kID0gTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmQ7XG5leHBvcnRzLkxpc3RUYWdzTG9nR3JvdXBDb21tYW5kID0gTGlzdFRhZ3NMb2dHcm91cENvbW1hbmQ7XG5leHBvcnRzLkxvZ0dyb3VwQ2xhc3MgPSBMb2dHcm91cENsYXNzO1xuZXhwb3J0cy5NYWxmb3JtZWRRdWVyeUV4Y2VwdGlvbiA9IE1hbGZvcm1lZFF1ZXJ5RXhjZXB0aW9uJDE7XG5leHBvcnRzLk9DU0ZWZXJzaW9uID0gT0NTRlZlcnNpb247XG5leHBvcnRzLk9wZW5TZWFyY2hSZXNvdXJjZVN0YXR1c1R5cGUgPSBPcGVuU2VhcmNoUmVzb3VyY2VTdGF0dXNUeXBlO1xuZXhwb3J0cy5PcGVyYXRpb25BYm9ydGVkRXhjZXB0aW9uID0gT3BlcmF0aW9uQWJvcnRlZEV4Y2VwdGlvbiQxO1xuZXhwb3J0cy5PcmRlckJ5ID0gT3JkZXJCeTtcbmV4cG9ydHMuT3V0cHV0Rm9ybWF0ID0gT3V0cHV0Rm9ybWF0O1xuZXhwb3J0cy5Qb2xpY3lTY29wZSA9IFBvbGljeVNjb3BlO1xuZXhwb3J0cy5Qb2xpY3lUeXBlID0gUG9saWN5VHlwZTtcbmV4cG9ydHMuUHV0QWNjb3VudFBvbGljeUNvbW1hbmQgPSBQdXRBY2NvdW50UG9saWN5Q29tbWFuZDtcbmV4cG9ydHMuUHV0RGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kID0gUHV0RGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kO1xuZXhwb3J0cy5QdXREZWxpdmVyeURlc3RpbmF0aW9uQ29tbWFuZCA9IFB1dERlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kO1xuZXhwb3J0cy5QdXREZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5Q29tbWFuZCA9IFB1dERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kO1xuZXhwb3J0cy5QdXREZWxpdmVyeVNvdXJjZUNvbW1hbmQgPSBQdXREZWxpdmVyeVNvdXJjZUNvbW1hbmQ7XG5leHBvcnRzLlB1dERlc3RpbmF0aW9uQ29tbWFuZCA9IFB1dERlc3RpbmF0aW9uQ29tbWFuZDtcbmV4cG9ydHMuUHV0RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kID0gUHV0RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kO1xuZXhwb3J0cy5QdXRJbmRleFBvbGljeUNvbW1hbmQgPSBQdXRJbmRleFBvbGljeUNvbW1hbmQ7XG5leHBvcnRzLlB1dEludGVncmF0aW9uQ29tbWFuZCA9IFB1dEludGVncmF0aW9uQ29tbWFuZDtcbmV4cG9ydHMuUHV0TG9nRXZlbnRzQ29tbWFuZCA9IFB1dExvZ0V2ZW50c0NvbW1hbmQ7XG5leHBvcnRzLlB1dExvZ0dyb3VwRGVsZXRpb25Qcm90ZWN0aW9uQ29tbWFuZCA9IFB1dExvZ0dyb3VwRGVsZXRpb25Qcm90ZWN0aW9uQ29tbWFuZDtcbmV4cG9ydHMuUHV0TWV0cmljRmlsdGVyQ29tbWFuZCA9IFB1dE1ldHJpY0ZpbHRlckNvbW1hbmQ7XG5leHBvcnRzLlB1dFF1ZXJ5RGVmaW5pdGlvbkNvbW1hbmQgPSBQdXRRdWVyeURlZmluaXRpb25Db21tYW5kO1xuZXhwb3J0cy5QdXRSZXNvdXJjZVBvbGljeUNvbW1hbmQgPSBQdXRSZXNvdXJjZVBvbGljeUNvbW1hbmQ7XG5leHBvcnRzLlB1dFJldGVudGlvblBvbGljeUNvbW1hbmQgPSBQdXRSZXRlbnRpb25Qb2xpY3lDb21tYW5kO1xuZXhwb3J0cy5QdXRTdWJzY3JpcHRpb25GaWx0ZXJDb21tYW5kID0gUHV0U3Vic2NyaXB0aW9uRmlsdGVyQ29tbWFuZDtcbmV4cG9ydHMuUHV0VHJhbnNmb3JtZXJDb21tYW5kID0gUHV0VHJhbnNmb3JtZXJDb21tYW5kO1xuZXhwb3J0cy5RdWVyeUxhbmd1YWdlID0gUXVlcnlMYW5ndWFnZTtcbmV4cG9ydHMuUXVlcnlTdGF0dXMgPSBRdWVyeVN0YXR1cztcbmV4cG9ydHMuUmVzb3VyY2VBbHJlYWR5RXhpc3RzRXhjZXB0aW9uID0gUmVzb3VyY2VBbHJlYWR5RXhpc3RzRXhjZXB0aW9uJDE7XG5leHBvcnRzLlJlc291cmNlTm90Rm91bmRFeGNlcHRpb24gPSBSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uJDE7XG5leHBvcnRzLlMzVGFibGVJbnRlZ3JhdGlvblNvdXJjZVN0YXR1cyA9IFMzVGFibGVJbnRlZ3JhdGlvblNvdXJjZVN0YXR1cztcbmV4cG9ydHMuU2NoZWR1bGVkUXVlcnlEZXN0aW5hdGlvblR5cGUgPSBTY2hlZHVsZWRRdWVyeURlc3RpbmF0aW9uVHlwZTtcbmV4cG9ydHMuU2NoZWR1bGVkUXVlcnlTdGF0ZSA9IFNjaGVkdWxlZFF1ZXJ5U3RhdGU7XG5leHBvcnRzLlNjb3BlID0gU2NvcGU7XG5leHBvcnRzLlNlcnZpY2VRdW90YUV4Y2VlZGVkRXhjZXB0aW9uID0gU2VydmljZVF1b3RhRXhjZWVkZWRFeGNlcHRpb24kMTtcbmV4cG9ydHMuU2VydmljZVVuYXZhaWxhYmxlRXhjZXB0aW9uID0gU2VydmljZVVuYXZhaWxhYmxlRXhjZXB0aW9uJDE7XG5leHBvcnRzLlNlc3Npb25TdHJlYW1pbmdFeGNlcHRpb24gPSBTZXNzaW9uU3RyZWFtaW5nRXhjZXB0aW9uJDE7XG5leHBvcnRzLlNlc3Npb25UaW1lb3V0RXhjZXB0aW9uID0gU2Vzc2lvblRpbWVvdXRFeGNlcHRpb24kMTtcbmV4cG9ydHMuU3RhbmRhcmRVbml0ID0gU3RhbmRhcmRVbml0O1xuZXhwb3J0cy5TdGFydExpdmVUYWlsQ29tbWFuZCA9IFN0YXJ0TGl2ZVRhaWxDb21tYW5kO1xuZXhwb3J0cy5TdGFydFF1ZXJ5Q29tbWFuZCA9IFN0YXJ0UXVlcnlDb21tYW5kO1xuZXhwb3J0cy5TdGF0ZSA9IFN0YXRlO1xuZXhwb3J0cy5TdG9wUXVlcnlDb21tYW5kID0gU3RvcFF1ZXJ5Q29tbWFuZDtcbmV4cG9ydHMuU3VwcHJlc3Npb25TdGF0ZSA9IFN1cHByZXNzaW9uU3RhdGU7XG5leHBvcnRzLlN1cHByZXNzaW9uVHlwZSA9IFN1cHByZXNzaW9uVHlwZTtcbmV4cG9ydHMuU3VwcHJlc3Npb25Vbml0ID0gU3VwcHJlc3Npb25Vbml0O1xuZXhwb3J0cy5UYWdMb2dHcm91cENvbW1hbmQgPSBUYWdMb2dHcm91cENvbW1hbmQ7XG5leHBvcnRzLlRhZ1Jlc291cmNlQ29tbWFuZCA9IFRhZ1Jlc291cmNlQ29tbWFuZDtcbmV4cG9ydHMuVGVzdE1ldHJpY0ZpbHRlckNvbW1hbmQgPSBUZXN0TWV0cmljRmlsdGVyQ29tbWFuZDtcbmV4cG9ydHMuVGVzdFRyYW5zZm9ybWVyQ29tbWFuZCA9IFRlc3RUcmFuc2Zvcm1lckNvbW1hbmQ7XG5leHBvcnRzLlRocm90dGxpbmdFeGNlcHRpb24gPSBUaHJvdHRsaW5nRXhjZXB0aW9uJDE7XG5leHBvcnRzLlRvb01hbnlUYWdzRXhjZXB0aW9uID0gVG9vTWFueVRhZ3NFeGNlcHRpb24kMTtcbmV4cG9ydHMuVHlwZSA9IFR5cGU7XG5leHBvcnRzLlVucmVjb2duaXplZENsaWVudEV4Y2VwdGlvbiA9IFVucmVjb2duaXplZENsaWVudEV4Y2VwdGlvbiQxO1xuZXhwb3J0cy5VbnRhZ0xvZ0dyb3VwQ29tbWFuZCA9IFVudGFnTG9nR3JvdXBDb21tYW5kO1xuZXhwb3J0cy5VbnRhZ1Jlc291cmNlQ29tbWFuZCA9IFVudGFnUmVzb3VyY2VDb21tYW5kO1xuZXhwb3J0cy5VcGRhdGVBbm9tYWx5Q29tbWFuZCA9IFVwZGF0ZUFub21hbHlDb21tYW5kO1xuZXhwb3J0cy5VcGRhdGVEZWxpdmVyeUNvbmZpZ3VyYXRpb25Db21tYW5kID0gVXBkYXRlRGVsaXZlcnlDb25maWd1cmF0aW9uQ29tbWFuZDtcbmV4cG9ydHMuVXBkYXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZCA9IFVwZGF0ZUxvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmQ7XG5leHBvcnRzLlVwZGF0ZVNjaGVkdWxlZFF1ZXJ5Q29tbWFuZCA9IFVwZGF0ZVNjaGVkdWxlZFF1ZXJ5Q29tbWFuZDtcbmV4cG9ydHMuVmFsaWRhdGlvbkV4Y2VwdGlvbiA9IFZhbGlkYXRpb25FeGNlcHRpb24kMTtcbmV4cG9ydHMucGFnaW5hdGVEZXNjcmliZUNvbmZpZ3VyYXRpb25UZW1wbGF0ZXMgPSBwYWdpbmF0ZURlc2NyaWJlQ29uZmlndXJhdGlvblRlbXBsYXRlcztcbmV4cG9ydHMucGFnaW5hdGVEZXNjcmliZURlbGl2ZXJpZXMgPSBwYWdpbmF0ZURlc2NyaWJlRGVsaXZlcmllcztcbmV4cG9ydHMucGFnaW5hdGVEZXNjcmliZURlbGl2ZXJ5RGVzdGluYXRpb25zID0gcGFnaW5hdGVEZXNjcmliZURlbGl2ZXJ5RGVzdGluYXRpb25zO1xuZXhwb3J0cy5wYWdpbmF0ZURlc2NyaWJlRGVsaXZlcnlTb3VyY2VzID0gcGFnaW5hdGVEZXNjcmliZURlbGl2ZXJ5U291cmNlcztcbmV4cG9ydHMucGFnaW5hdGVEZXNjcmliZURlc3RpbmF0aW9ucyA9IHBhZ2luYXRlRGVzY3JpYmVEZXN0aW5hdGlvbnM7XG5leHBvcnRzLnBhZ2luYXRlRGVzY3JpYmVMb2dHcm91cHMgPSBwYWdpbmF0ZURlc2NyaWJlTG9nR3JvdXBzO1xuZXhwb3J0cy5wYWdpbmF0ZURlc2NyaWJlTG9nU3RyZWFtcyA9IHBhZ2luYXRlRGVzY3JpYmVMb2dTdHJlYW1zO1xuZXhwb3J0cy5wYWdpbmF0ZURlc2NyaWJlTWV0cmljRmlsdGVycyA9IHBhZ2luYXRlRGVzY3JpYmVNZXRyaWNGaWx0ZXJzO1xuZXhwb3J0cy5wYWdpbmF0ZURlc2NyaWJlU3Vic2NyaXB0aW9uRmlsdGVycyA9IHBhZ2luYXRlRGVzY3JpYmVTdWJzY3JpcHRpb25GaWx0ZXJzO1xuZXhwb3J0cy5wYWdpbmF0ZUZpbHRlckxvZ0V2ZW50cyA9IHBhZ2luYXRlRmlsdGVyTG9nRXZlbnRzO1xuZXhwb3J0cy5wYWdpbmF0ZUdldExvZ0V2ZW50cyA9IHBhZ2luYXRlR2V0TG9nRXZlbnRzO1xuZXhwb3J0cy5wYWdpbmF0ZUdldFNjaGVkdWxlZFF1ZXJ5SGlzdG9yeSA9IHBhZ2luYXRlR2V0U2NoZWR1bGVkUXVlcnlIaXN0b3J5O1xuZXhwb3J0cy5wYWdpbmF0ZUxpc3RBZ2dyZWdhdGVMb2dHcm91cFN1bW1hcmllcyA9IHBhZ2luYXRlTGlzdEFnZ3JlZ2F0ZUxvZ0dyb3VwU3VtbWFyaWVzO1xuZXhwb3J0cy5wYWdpbmF0ZUxpc3RBbm9tYWxpZXMgPSBwYWdpbmF0ZUxpc3RBbm9tYWxpZXM7XG5leHBvcnRzLnBhZ2luYXRlTGlzdExvZ0Fub21hbHlEZXRlY3RvcnMgPSBwYWdpbmF0ZUxpc3RMb2dBbm9tYWx5RGV0ZWN0b3JzO1xuZXhwb3J0cy5wYWdpbmF0ZUxpc3RMb2dHcm91cHNGb3JRdWVyeSA9IHBhZ2luYXRlTGlzdExvZ0dyb3Vwc0ZvclF1ZXJ5O1xuZXhwb3J0cy5wYWdpbmF0ZUxpc3RTY2hlZHVsZWRRdWVyaWVzID0gcGFnaW5hdGVMaXN0U2NoZWR1bGVkUXVlcmllcztcbmV4cG9ydHMucGFnaW5hdGVMaXN0U291cmNlc0ZvclMzVGFibGVJbnRlZ3JhdGlvbiA9IHBhZ2luYXRlTGlzdFNvdXJjZXNGb3JTM1RhYmxlSW50ZWdyYXRpb247XG4iLCAiLypcbiAqIENvcHlyaWdodCAoYykgMjAyNSwgU2FsZXNmb3JjZSwgSW5jLlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yXG4gKiBGb3IgZnVsbCBsaWNlbnNlIHRleHQsIHNlZSB0aGUgbGljZW5zZS50eHQgZmlsZSBpbiB0aGUgcmVwbyByb290IG9yIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICovXG5pbXBvcnQgdHlwZSB7RXhwcmVzc30gZnJvbSAnZXhwcmVzcyc7XG5pbXBvcnQge2NyZWF0ZUFwcH0gZnJvbSAnLi9hcHAvc2VydmVyLmpzJztcbmltcG9ydCB7U2VydmVybGVzc0FkYXB0ZXIsIGdldEZsYXR0ZW5lZEhlYWRlcnNNYXB9IGZyb20gJ0BoNGFkL3NlcnZlcmxlc3MtYWRhcHRlcic7XG5pbXBvcnQge0RlZmF1bHRIYW5kbGVyfSBmcm9tICdAaDRhZC9zZXJ2ZXJsZXNzLWFkYXB0ZXIvbGliL2hhbmRsZXJzL2RlZmF1bHQnO1xuaW1wb3J0IHtDYWxsYmFja1Jlc29sdmVyfSBmcm9tICdAaDRhZC9zZXJ2ZXJsZXNzLWFkYXB0ZXIvbGliL3Jlc29sdmVycy9jYWxsYmFjayc7XG5pbXBvcnQge0FwaUdhdGV3YXlWMUFkYXB0ZXJ9IGZyb20gJ0BoNGFkL3NlcnZlcmxlc3MtYWRhcHRlci9saWIvYWRhcHRlcnMvYXdzJztcbmltcG9ydCB7RXhwcmVzc0ZyYW1ld29ya30gZnJvbSAnQGg0YWQvc2VydmVybGVzcy1hZGFwdGVyL2xpYi9mcmFtZXdvcmtzL2V4cHJlc3MnO1xuaW1wb3J0IHR5cGUge0FQSUdhdGV3YXlQcm94eUV2ZW50LCBDb250ZXh0LCBBUElHYXRld2F5UHJveHlSZXN1bHQsIENhbGxiYWNrfSBmcm9tICdhd3MtbGFtYmRhJztcblxuZXhwb3J0IGNvbnN0IENPTlRFTlRfVFlQRSA9ICdjb250ZW50LXR5cGUnO1xuZXhwb3J0IGNvbnN0IFhfT1JJR0lOQUxfQ09OVEVOVF9UWVBFID0gJ3gtb3JpZ2luYWwtY29udGVudC10eXBlJztcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbnR5cGUgSGFuZGxlckZ1bmN0aW9uID0gKGV2ZW50OiBBUElHYXRld2F5UHJveHlFdmVudCwgY29udGV4dDogQ29udGV4dCwgY2FsbGJhY2s6IENhbGxiYWNrKSA9PiBhbnk7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG5leHBvcnQgY29uc3QgcHJvY2Vzc0xhbWJkYVJlc3BvbnNlID0gKHJlc3BvbnNlOiBBUElHYXRld2F5UHJveHlSZXN1bHQsIGV2ZW50OiBBUElHYXRld2F5UHJveHlFdmVudCk6IGFueSA9PiB7XG4gIGlmICghcmVzcG9uc2UpIHJldHVybiByZXNwb25zZTtcblxuICBjb25zdCBjb3JyZWxhdGlvbklkID0gZXZlbnQuaGVhZGVycz8uWyd4LWNvcnJlbGF0aW9uLWlkJ107XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgY29uc3Qgam9pbmVkSGVhZGVycyA9IGdldEZsYXR0ZW5lZEhlYWRlcnNNYXAocmVzcG9uc2UubXVsdGlWYWx1ZUhlYWRlcnMgfHwgKHt9IGFzIGFueSksICcsJywgdHJ1ZSk7XG4gIGpvaW5lZEhlYWRlcnMuZGF0ZSA9IG5ldyBEYXRlKCkudG9VVENTdHJpbmcoKTtcbiAgZGVsZXRlIHJlc3BvbnNlLm11bHRpVmFsdWVIZWFkZXJzO1xuXG4gIGlmIChjb3JyZWxhdGlvbklkKSB7XG4gICAgam9pbmVkSGVhZGVyc1sneC1jb3JyZWxhdGlvbi1pZCddID0gY29ycmVsYXRpb25JZDtcbiAgfVxuXG4gIGNvbnN0IG9yaWdpbmFsQ29udGVudFR5cGUgPSBqb2luZWRIZWFkZXJzW1hfT1JJR0lOQUxfQ09OVEVOVF9UWVBFXTtcbiAgaWYgKG9yaWdpbmFsQ29udGVudFR5cGUpIHtcbiAgICBqb2luZWRIZWFkZXJzW0NPTlRFTlRfVFlQRV0gPSBvcmlnaW5hbENvbnRlbnRUeXBlO1xuICAgIGRlbGV0ZSBqb2luZWRIZWFkZXJzW1hfT1JJR0lOQUxfQ09OVEVOVF9UWVBFXTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgLi4ucmVzcG9uc2UsXG4gICAgaGVhZGVyczogam9pbmVkSGVhZGVycyxcbiAgfTtcbn07XG5cbmNvbnN0IGNyZWF0ZUxhbWJkYUhhbmRsZXIgPSAoYXBwOiBFeHByZXNzKTogSGFuZGxlckZ1bmN0aW9uID0+IHtcbiAgcmV0dXJuIChldmVudDogQVBJR2F0ZXdheVByb3h5RXZlbnQsIGNvbnRleHQ6IENvbnRleHQsIGNhbGxiYWNrOiBDYWxsYmFjaykgPT4ge1xuICAgIGNvbnN0IHNlcnZlcmxlc3NBZGFwdGVySGFuZGxlciA9IFNlcnZlcmxlc3NBZGFwdGVyLm5ldyhhcHApXG4gICAgICAuc2V0RnJhbWV3b3JrKG5ldyBFeHByZXNzRnJhbWV3b3JrKCkpXG4gICAgICAuc2V0SGFuZGxlcihuZXcgRGVmYXVsdEhhbmRsZXIoKSlcbiAgICAgIC5zZXRSZXNvbHZlcihuZXcgQ2FsbGJhY2tSZXNvbHZlcigpKVxuICAgICAgLmFkZEFkYXB0ZXIobmV3IEFwaUdhdGV3YXlWMUFkYXB0ZXIoe2xvd2VyY2FzZVJlcXVlc3RIZWFkZXJzOiB0cnVlLCB0aHJvd09uQ2h1bmtlZFRyYW5zZmVyRW5jb2Rpbmc6IGZhbHNlfSkpXG4gICAgICAuYnVpbGQoKSBhcyBIYW5kbGVyRnVuY3Rpb247XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIChjb250ZXh0IGFzIGFueSkuY2FsbGJhY2tXYWl0c0ZvckVtcHR5RXZlbnRMb29wID0gZmFsc2U7XG5cbiAgICBjb25zdCBtYW5hZ2VkQ2FsbGJhY2sgPSAoZXJyOiBFcnJvciB8IG51bGwsIHJlc3BvbnNlOiBBUElHYXRld2F5UHJveHlSZXN1bHQpID0+IHtcbiAgICAgIHJldHVybiBjYWxsYmFjayhlcnIsIHByb2Nlc3NMYW1iZGFSZXNwb25zZShyZXNwb25zZSwgZXZlbnQpKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIHNlcnZlcmxlc3NBZGFwdGVySGFuZGxlcihldmVudCwgY29udGV4dCwgbWFuYWdlZENhbGxiYWNrIGFzIENhbGxiYWNrKTtcbiAgfTtcbn07XG5cbmNvbnN0IG1ydEFwcCA9IGNyZWF0ZUFwcCgpO1xuXG5leHBvcnQgY29uc3QgYXBwID0gbXJ0QXBwO1xuZXhwb3J0IGNvbnN0IGdldCA9IGNyZWF0ZUxhbWJkYUhhbmRsZXIobXJ0QXBwKTtcbiIsICIvKlxuICogQ29weXJpZ2h0IChjKSAyMDI1LCBTYWxlc2ZvcmNlLCBJbmMuXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTJcbiAqIEZvciBmdWxsIGxpY2Vuc2UgdGV4dCwgc2VlIHRoZSBsaWNlbnNlLnR4dCBmaWxlIGluIHRoZSByZXBvIHJvb3Qgb3IgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKi9cbmltcG9ydCBleHByZXNzLCB7dHlwZSBFeHByZXNzLCB0eXBlIFJlcXVlc3QsIHR5cGUgUmVzcG9uc2UsIHR5cGUgTmV4dEZ1bmN0aW9uLCB0eXBlIFJlcXVlc3RIYW5kbGVyfSBmcm9tICdleHByZXNzJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHtmaWxlVVJMVG9QYXRofSBmcm9tICd1cmwnO1xuaW1wb3J0IGJhc2ljQXV0aCBmcm9tICdleHByZXNzLWJhc2ljLWF1dGgnO1xuaW1wb3J0IHtcbiAgY3JlYXRlTVJUUHJveHlNaWRkbGV3YXJlcyxcbiAgY3JlYXRlTVJUUmVxdWVzdFByb2Nlc3Nvck1pZGRsZXdhcmUsXG4gIGNyZWF0ZU1SVFN0YXRpY0Fzc2V0U2VydmluZ01pZGRsZXdhcmUsXG4gIGlzTG9jYWwsXG4gIGNyZWF0ZU1SVENvbW1vbk1pZGRsZXdhcmUsXG4gIGNyZWF0ZU1SVENsZWFuVXBNaWRkbGV3YXJlLFxuICBNZXRyaWNzU2VuZGVyLFxuICBnZXREaW1lbnNpb25zLFxufSBmcm9tICdAc2FsZXNmb3JjZS9tcnQtdXRpbGl0aWVzJztcbmltcG9ydCB7XG4gIGVjaG8sXG4gIGV4Y2VwdGlvbixcbiAgdGxzVmVyc2lvblRlc3QsXG4gIGNhY2hlVGVzdCxcbiAgbWVtb3J5VGVzdCxcbiAgY29va2llVGVzdCxcbiAgaGVhZGVyVGVzdCxcbiAgcmVzcG9uc2VIZWFkZXJzVGVzdCxcbiAgbG9nZ2luZ01pZGRsZXdhcmUsXG4gIGVudkJhc2VQYXRoTWlkZGxld2FyZSxcbiAgc3RyZWFtaW5nVGVzdCxcbiAgc3NyQnVuZGxlRmlsZVRlc3QsXG4gIHN0cmVhbWluZ1Jlc3BvbnNlTGFyZ2UsXG4gIG11bHRpVmFsdWVIZWFkZXJzVGVzdCxcbiAgc2V0U3RhdHVzVGVzdCxcbiAgd2luc3RvbkxvZ2dpbmcsXG4gIG1hc3NMb2dnaW5nLFxuICBkZWxheWVkTG9nZ2luZyxcbiAgbGFyZ2VMb2dnaW5nLFxuICB0cmFjZUxvZ2dpbmcsXG4gIGRhdGFTdG9yZVRlc3QsXG4gIHNlY3JldHNNYW5hZ2VyVGVzdCxcbiAgcHJveHlUcmFuc2Zvcm1hdGlvblRlc3QsXG59IGZyb20gJy4uL3V0aWxzL3JlZmVyZW5jZS1yb3V0ZXMuanMnO1xuaW1wb3J0IHtpc29sYXRpb25UZXN0c30gZnJvbSAnLi4vdXRpbHMvaXNvbGF0aW9uLWFjdGlvbnMuanMnO1xuXG5jb25zdCBleHRyYVJlbWFwcGVkSGVhZGVyc01pZGRsZXdhcmUgPSAocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlLCBuZXh0OiBOZXh0RnVuY3Rpb24pID0+IHtcbiAgcmVzLnNldCgnc2VydmVyJywgJ21ydC1yZWZlcmVuY2UtYXBwJyk7XG4gIG5leHQoKTtcbn07XG5cbmNvbnN0IGNyZWF0ZVJlcXVlc3RUaW1pbmdNaWRkbGV3YXJlID0gKGFwcDogQXBwV2l0aE1ldHJpY3MpID0+IChyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UsIG5leHQ6IE5leHRGdW5jdGlvbikgPT4ge1xuICByZXMubG9jYWxzLnJlcXVlc3RTdGFydFRpbWUgPSBEYXRlLm5vdygpO1xuICBjb25zdCBhZnRlclJlc3BvbnNlID0gKCkgPT4ge1xuICAgIGNvbnN0IHJlc3BvbnNlVGltZSA9IERhdGUubm93KCkgLSByZXMubG9jYWxzLnJlcXVlc3RTdGFydFRpbWU7XG4gICAgaWYgKGFwcC5tZXRyaWNzKSB7XG4gICAgICBjb25zdCBtZXRyaWNzID0gW1xuICAgICAgICB7bmFtZTogJ1JlcXVlc3RUaW1lJywgdmFsdWU6IHJlc3BvbnNlVGltZSwgdW5pdDogJ01pbGxpc2Vjb25kcycsIGRpbWVuc2lvbnM6IGdldERpbWVuc2lvbnMoKX0sXG4gICAgICBdO1xuICAgICAgY29uc3QgcmVxdWVzdFJlc3VsdCA9IHtuYW1lOiAnUmVxdWVzdFN1Y2Nlc3MnLCB2YWx1ZTogMSwgdW5pdDogJ0NvdW50JywgZGltZW5zaW9uczogZ2V0RGltZW5zaW9ucygpfTtcbiAgICAgIGlmIChyZXMuc3RhdHVzQ29kZSA9PT0gNDA0KSB7XG4gICAgICAgIHJlcXVlc3RSZXN1bHQubmFtZSA9ICdSZXF1ZXN0RmFpbGVkNDA0JztcbiAgICAgIH0gZWxzZSBpZiAocmVzLnN0YXR1c0NvZGUgPj0gNDAwICYmIHJlcy5zdGF0dXNDb2RlIDw9IDQ5OSkge1xuICAgICAgICByZXF1ZXN0UmVzdWx0Lm5hbWUgPSAnUmVxdWVzdEZhaWxlZDQwMCc7XG4gICAgICB9IGVsc2UgaWYgKHJlcy5zdGF0dXNDb2RlID49IDUwMCAmJiByZXMuc3RhdHVzQ29kZSA8PSA1OTkpIHtcbiAgICAgICAgcmVxdWVzdFJlc3VsdC5uYW1lID0gJ1JlcXVlc3RGYWlsZWQ1MDAnO1xuICAgICAgfVxuICAgICAgbWV0cmljcy5wdXNoKHJlcXVlc3RSZXN1bHQpO1xuICAgICAgYXBwLm1ldHJpY3Muc2VuZChtZXRyaWNzLCB0cnVlKTtcbiAgICB9XG4gIH07XG4gIHJlcy5vbignZmluaXNoJywgYWZ0ZXJSZXNwb25zZSk7XG4gIHJlcy5vbignZXJyb3InLCBhZnRlclJlc3BvbnNlKTtcbiAgbmV4dCgpO1xufTtcblxudHlwZSBBcHBXaXRoTWV0cmljcyA9IEV4cHJlc3MgJiB7XG4gIG1ldHJpY3M6IE1ldHJpY3NTZW5kZXI7XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlQXBwID0gKCk6IEFwcFdpdGhNZXRyaWNzID0+IHtcbiAgY29uc3QgYXBwID0gZXhwcmVzcygpIGFzIEFwcFdpdGhNZXRyaWNzO1xuICBhcHAuZGlzYWJsZSgneC1wb3dlcmVkLWJ5Jyk7XG4gIGFwcC51c2UoZXh0cmFSZW1hcHBlZEhlYWRlcnNNaWRkbGV3YXJlKTtcbiAgYXBwLm1ldHJpY3MgPSBNZXRyaWNzU2VuZGVyLmdldFNlbmRlcigpO1xuICBhcHAudXNlKGNyZWF0ZVJlcXVlc3RUaW1pbmdNaWRkbGV3YXJlKGFwcCkpO1xuICBhcHAudXNlKGNyZWF0ZU1SVENvbW1vbk1pZGRsZXdhcmUoKSBhcyBSZXF1ZXN0SGFuZGxlcik7XG5cbiAgaWYgKGlzTG9jYWwoKSkge1xuICAgIGNvbnN0IF9fZGlybmFtZSA9IHBhdGguZGlybmFtZShmaWxlVVJMVG9QYXRoKGltcG9ydC5tZXRhLnVybCkpO1xuICAgIGNvbnN0IHJwRXh0ZW5zaW9uID0gcHJvY2Vzcy5lbnYuUlBfRVhURU5TSU9OID8gJy50cycgOiAnLmpzJztcbiAgICBjb25zdCByZXF1ZXN0UHJvY2Vzc29yUGF0aCA9IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsIGAuLi9yZXF1ZXN0LXByb2Nlc3NvciR7cnBFeHRlbnNpb259YCk7XG4gICAgY29uc29sZS5sb2coJ1VzaW5nIHJlcXVlc3QgcHJvY2Vzc29yOicsIHJlcXVlc3RQcm9jZXNzb3JQYXRoKTtcblxuICAgIGNvbnN0IHByb3h5Q29uZmlncyA9IFtcbiAgICAgIHtcbiAgICAgICAgaG9zdDogJ2h0dHBzOi8vcGxheWdyb3VuZC0yMngtdXMtd2VzdC0xLm1vYmlmeS1zdG9yZWZyb250LmNvbScsXG4gICAgICAgIHBhdGg6ICdhcGknLFxuICAgICAgfSxcbiAgICBdO1xuICAgIGFwcC51c2UoY3JlYXRlTVJUUmVxdWVzdFByb2Nlc3Nvck1pZGRsZXdhcmUocmVxdWVzdFByb2Nlc3NvclBhdGgsIHByb3h5Q29uZmlncykgYXMgUmVxdWVzdEhhbmRsZXIpO1xuICAgIGNvbnN0IG1ydFByb3hpZXMgPSBjcmVhdGVNUlRQcm94eU1pZGRsZXdhcmVzKHByb3h5Q29uZmlncyk7XG4gICAgbXJ0UHJveGllcy5mb3JFYWNoKChwcm94eSkgPT4ge1xuICAgICAgYXBwLnVzZShwcm94eS5wYXRoLCBwcm94eS5mbik7XG4gICAgfSk7XG4gICAgY29uc3Qgc3RhdGljQXNzZXREaXIgPSBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnLi4vc3RhdGljJyk7XG4gICAgY29uc29sZS5sb2coJ1VzaW5nIHN0YXRpYyBhc3NldCBkaXJlY3Rvcnk6Jywgc3RhdGljQXNzZXREaXIpO1xuICAgIGFwcC51c2UoXG4gICAgICBgL21vYmlmeS9idW5kbGUvJHtwcm9jZXNzLmVudi5CVU5ETEVfSUQgfHwgJzEnfS9zdGF0aWMvYCxcbiAgICAgIGNyZWF0ZU1SVFN0YXRpY0Fzc2V0U2VydmluZ01pZGRsZXdhcmUoc3RhdGljQXNzZXREaXIpIGFzIFJlcXVlc3RIYW5kbGVyLFxuICAgICk7XG4gIH1cbiAgYXBwLnVzZShjcmVhdGVNUlRDbGVhblVwTWlkZGxld2FyZSgpIGFzIFJlcXVlc3RIYW5kbGVyKTtcblxuICBhcHAuZ2V0KCcvZmF2aWNvbi5pY28nLCBleHByZXNzLnN0YXRpYygnc3RhdGljL2Zhdmljb24uaWNvJykpO1xuICBhcHAuZ2V0KCcvcm9ib3RzLnR4dCcsIGV4cHJlc3Muc3RhdGljKCdzdGF0aWMvcm9ib3RzLnR4dCcpKTtcblxuICBhcHAudXNlKChyZXEsIHJlcywgbmV4dCkgPT4ge1xuICAgIHJlcy5zZXQoJ0NhY2hlLUNvbnRyb2wnLCAnbm8tY2FjaGUnKTtcbiAgICByZXR1cm4gbmV4dCgpO1xuICB9KTtcblxuICBhcHAudXNlKGxvZ2dpbmdNaWRkbGV3YXJlKTtcbiAgYXBwLnVzZShlbnZCYXNlUGF0aE1pZGRsZXdhcmUpO1xuXG4gIGFwcC5hbGwoJy9leGNlcHRpb24nLCBleGNlcHRpb24pO1xuICBhcHAuZ2V0KCcvdGxzJywgdGxzVmVyc2lvblRlc3QpO1xuICBhcHAuZ2V0KCcvY2FjaGUnLCBjYWNoZVRlc3QpO1xuICBhcHAuZ2V0KCcvY2FjaGUvOmR1cmF0aW9uJywgY2FjaGVUZXN0KTtcbiAgYXBwLmdldCgnL21lbXRlc3QnLCBtZW1vcnlUZXN0KTtcbiAgYXBwLmdldCgnL2Nvb2tpZScsIGNvb2tpZVRlc3QpO1xuICBhcHAuZ2V0KCcvaGVhZGVycycsIGhlYWRlclRlc3QpO1xuICBhcHAuZ2V0KCcvaXNvbGF0aW9uJywgaXNvbGF0aW9uVGVzdHMpO1xuICBhcHAuZ2V0KCcvc2V0LXJlc3BvbnNlLWhlYWRlcnMnLCByZXNwb25zZUhlYWRlcnNUZXN0KTtcbiAgYXBwLmdldCgnL211bHRpLXZhbHVlLWhlYWRlcnMnLCBtdWx0aVZhbHVlSGVhZGVyc1Rlc3QpO1xuICBhcHAuZ2V0KCcvc3RyZWFtaW5nJywgc3RyZWFtaW5nVGVzdCk7XG4gIGFwcC5nZXQoJy9zc3Itc2hhcmVkJywgc3NyQnVuZGxlRmlsZVRlc3QpO1xuICBhcHAuZ2V0KCcvc3RyZWFtaW5nLWxhcmdlJywgc3RyZWFtaW5nUmVzcG9uc2VMYXJnZSk7XG4gIGFwcC5nZXQoJy9zZXQtc3RhdHVzJywgc2V0U3RhdHVzVGVzdCk7XG4gIGFwcC5nZXQoJy93aW5zdG9uLWxvZ2dpbmcnLCB3aW5zdG9uTG9nZ2luZyk7XG4gIGFwcC5nZXQoJy9kZWxheWVkLWxvZ2dpbmcnLCBkZWxheWVkTG9nZ2luZyk7XG4gIGFwcC5nZXQoJy9tYXNzLWxvZ2dpbmcnLCBtYXNzTG9nZ2luZyk7XG4gIGFwcC5nZXQoJy9sYXJnZS1sb2dnaW5nJywgbGFyZ2VMb2dnaW5nKTtcbiAgYXBwLmdldCgnL3RyYWNlLWxvZ2dpbmcnLCB0cmFjZUxvZ2dpbmcpO1xuICBhcHAuZ2V0KCcvZGF0YS1zdG9yZS86a2V5JywgZGF0YVN0b3JlVGVzdCk7XG4gIGFwcC5nZXQoJy9zZWNyZXRzLW1hbmFnZXInLCBzZWNyZXRzTWFuYWdlclRlc3QpO1xuICBhcHAuZ2V0KCcvcHJveHktdHJhbnNmb3JtYXRpb24nLCBwcm94eVRyYW5zZm9ybWF0aW9uVGVzdCk7XG5cbiAgYXBwLmFsbCgnL2F1dGgvbG9nb3V0JywgKHJlcSwgcmVzKSA9PiByZXMuc3RhdHVzKDQwMSkuc2VuZCgnTG9nZ2VkIG91dCcpKTtcbiAgYXBwLnVzZShcbiAgICAnL2F1dGh7KmFsaWFzfScsXG4gICAgYmFzaWNBdXRoKHtcbiAgICAgIHVzZXJzOiB7bW9iaWZ5OiAnc3VwZXJzZWNyZXQnfSxcbiAgICAgIGNoYWxsZW5nZTogdHJ1ZSxcbiAgICAgIHJlYWxtOiBwcm9jZXNzLmVudi5FWFRFUk5BTF9ET01BSU5fTkFNRSB8fCAnZWNoby10ZXN0JyxcbiAgICB9KSxcbiAgKTtcbiAgYXBwLmFsbCgnL2F1dGh7KmFsaWFzfScsIGVjaG8pO1xuICBhcHAuYWxsKCcveypzcGxhdH0nLCBlY2hvKTtcbiAgYXBwLnNldCgnanNvbiBzcGFjZXMnLCA0KTtcbiAgcmV0dXJuIGFwcDtcbn07XG4iLCAiLypcbiAqIENvcHlyaWdodCAoYykgMjAyNSwgU2FsZXNmb3JjZSwgSW5jLlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yXG4gKiBGb3IgZnVsbCBsaWNlbnNlIHRleHQsIHNlZSB0aGUgbGljZW5zZS50eHQgZmlsZSBpbiB0aGUgcmVwbyByb290IG9yIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICovXG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgSW1wb3J0IGRhdGEtc3RvcmUgc3ltYm9scyBmcm9tIGBAc2FsZXNmb3JjZS9tcnQtdXRpbGl0aWVzL2RhdGEtc3RvcmVgLlxuICogVGhpcyBjb21wYXRpYmlsaXR5IHBhdGggaXMga2VwdCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eS5cbiAqL1xuZXhwb3J0ICogZnJvbSAnLi4vZGF0YS1zdG9yZS9pbmRleC5qcyc7XG4iLCAiLypcbiAqIENvcHlyaWdodCAoYykgMjAyNSwgU2FsZXNmb3JjZSwgSW5jLlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yXG4gKiBGb3IgZnVsbCBsaWNlbnNlIHRleHQsIHNlZSB0aGUgbGljZW5zZS50eHQgZmlsZSBpbiB0aGUgcmVwbyByb290IG9yIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICovXG5cbi8qKlxuICogRGV0ZXJtaW5lcyBpZiB0aGUgYXBwbGljYXRpb24gaXMgcnVubmluZyBpbiBhIGxvY2FsIGRldmVsb3BtZW50IGVudmlyb25tZW50LlxuICpcbiAqIFRoaXMgZnVuY3Rpb24gY2hlY2tzIGZvciB0aGUgcHJlc2VuY2Ugb2YgdGhlIEFXU19MQU1CREFfRlVOQ1RJT05fTkFNRSBlbnZpcm9ubWVudFxuICogdmFyaWFibGUgdG8gZGV0ZXJtaW5lIGlmIHRoZSBjb2RlIGlzIHJ1bm5pbmcgaW4gQVdTIExhbWJkYSAocHJvZHVjdGlvbikgb3JcbiAqIGxvY2FsbHkgKGRldmVsb3BtZW50KS5cbiAqXG4gKiBAcmV0dXJucyBUcnVlIGlmIHJ1bm5pbmcgbG9jYWxseSwgZmFsc2UgaWYgcnVubmluZyBpbiBBV1MgTGFtYmRhXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGlmIChpc0xvY2FsKCkpIHtcbiAqICAgY29uc29sZS5sb2coJ1J1bm5pbmcgaW4gZGV2ZWxvcG1lbnQgbW9kZScpO1xuICogfSBlbHNlIHtcbiAqICAgY29uc29sZS5sb2coJ1J1bm5pbmcgaW4gcHJvZHVjdGlvbiAoQVdTIExhbWJkYSknKTtcbiAqIH1cbiAqIGBgYFxuICovXG5leHBvcnQgY29uc3QgaXNMb2NhbCA9ICgpOiBib29sZWFuID0+IHtcbiAgcmV0dXJuICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocHJvY2Vzcy5lbnYsICdBV1NfTEFNQkRBX0ZVTkNUSU9OX05BTUUnKTtcbn07XG5cbi8qKlxuICogTG9nIGFuIGludGVybmFsIE1SVCBlcnJvci5cbiAqXG4gKiBAcGFyYW0gbmFtZXNwYWNlIE5hbWVzcGFjZSBmb3IgdGhlIGVycm9yIChlLmcuIGRhdGFfc3RvcmUsIHJlZGlyZWN0KSB0byBmYWNpbGl0YXRlIHNlYXJjaGluZ1xuICogQHBhcmFtIGVyciBFcnJvciB0byBsb2dcbiAqIEBwYXJhbSBjb250ZXh0IE9wdGlvbmFsIGNvbnRleHQgdG8gaW5jbHVkZSBpbiB0aGUgbG9nXG4gKi9cbmV4cG9ydCBjb25zdCBsb2dNUlRFcnJvciA9IChuYW1lc3BhY2U6IHN0cmluZywgZXJyOiB1bmtub3duLCBjb250ZXh0PzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+IHtcbiAgY29uc3QgZXJyb3IgPSBlcnIgaW5zdGFuY2VvZiBFcnJvciA/IGVyciA6IG5ldyBFcnJvcihTdHJpbmcoZXJyKSk7XG4gIGNvbnNvbGUuZXJyb3IoXG4gICAgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgW2BfX01SVF9fJHtuYW1lc3BhY2V9YF06ICdlcnJvcicsXG4gICAgICB0eXBlOiAnTVJUX2ludGVybmFsJyxcbiAgICAgIGVycm9yOiBlcnJvci5tZXNzYWdlLFxuICAgICAgc3RhY2s6IGVycm9yLnN0YWNrLFxuICAgICAgLi4uY29udGV4dCxcbiAgICB9KSxcbiAgKTtcbn07XG4iLCAiLypcbiAqIENvcHlyaWdodCAoYykgMjAyNSwgU2FsZXNmb3JjZSwgSW5jLlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yXG4gKiBGb3IgZnVsbCBsaWNlbnNlIHRleHQsIHNlZSB0aGUgbGljZW5zZS50eHQgZmlsZSBpbiB0aGUgcmVwbyByb290IG9yIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICovXG5cbi8qKlxuICogQGZpbGVvdmVydmlldyBTU1IgKFNlcnZlci1TaWRlIFJlbmRlcmluZykgUHJveHlpbmcgdXRpbGl0aWVzIGZvciBNUlQgbWlkZGxld2FyZS5cbiAqXG4gKiBUaGlzIG1vZHVsZSBwcm92aWRlcyB1dGlsaXRpZXMgZm9yIGhhbmRsaW5nIEhUVFAgaGVhZGVycywgY29va2llcywgYW5kIHByb3h5aW5nXG4gKiBpbiBib3RoIEV4cHJlc3MuanMgYXBwbGljYXRpb25zIGFuZCBBV1MgTGFtYmRhQEVkZ2UgZnVuY3Rpb25zLiBJdCdzIGRlc2lnbmVkXG4gKiB0byB3b3JrIGluIG11bHRpcGxlIGNvbnRleHRzIHdoaWxlIG1haW50YWluaW5nIGNvbnNpc3RlbmN5LlxuICpcbiAqIFNwZWNpYWwgcmVxdWlyZW1lbnRzOlxuICogLSBEb24ndCBhZGQgYW55IGZ1bmN0aW9uYWxpdHkgaW4gaGVyZSB0aGF0IGlzIG5vdCByZXF1aXJlZCBieSB0aGUgcHJveHlpbmcgY29kZVxuICogLSBBdm9pZCBpbXBvcnRpbmcgYW55IG90aGVyIG1vZHVsZXMgbm90IGV4cGxpY2l0bHkgdXNlZCBieSB0aGlzIGNvZGVcbiAqIC0gTXVzdCB3b3JrIGluIGJvdGggRXhwcmVzcy5qcyBhbmQgTGFtYmRhQEVkZ2UgZW52aXJvbm1lbnRzXG4gKlxuICogQGF1dGhvciBTYWxlc2ZvcmNlIENvbW1lcmNlIENsb3VkXG4gKiBAdmVyc2lvbiAwLjAuMVxuICovXG5cbi8qXG5UaGVyZSBhcmUgc29tZSBzcGVjaWFsIHJlcXVpcmVtZW50cyBmb3IgdGhpcyBtb2R1bGUsIHdoaWNoIGlzIHVzZWQgaW4gdGhlXG5TREsgYW5kIGFsc28gaW4gTGFtYmRhQEVkZ2UgZnVuY3Rpb25zIHJ1biBieSBDbG91ZEZyb250LiBTcGVjaWZpY2FsbHk6XG4tIERvbid0IGFkZCBhbnkgZnVuY3Rpb25hbGl0eSBpbiBoZXJlIHRoYXQgaXMgbm90IHJlcXVpcmVkIGJ5IHRoZVxucHJveHlpbmcgY29kZS5cbi0gQXZvaWQgaW1wb3J0aW5nIGFueSBvdGhlciBtb2R1bGVzIG5vdCBleHBsaWNpdGx5IHVzZWQgYnkgdGhpcyBjb2RlXG4qL1xuXG5pbXBvcnQge3BhcnNlIGFzIHBhcnNlU2V0Q29va2llfSBmcm9tICdzZXQtY29va2llLXBhcnNlcic7XG5pbXBvcnQge3RyYWluQ2FzZX0gZnJvbSAnY2hhbmdlLWNhc2UnO1xuaW1wb3J0IHtVUkx9IGZyb20gJ3VybCc7XG5pbXBvcnQgdHlwZSB7SW5jb21pbmdIdHRwSGVhZGVyc30gZnJvbSAnaHR0cCc7XG5cbmNvbnN0IEFDX0FMTE9XX09SSUdJTiA9ICdhY2Nlc3MtY29udHJvbC1hbGxvdy1vcmlnaW4nO1xuY29uc3QgSE9TVCA9ICdob3N0JztcbmNvbnN0IExPQ0FUSU9OID0gJ2xvY2F0aW9uJztcbmNvbnN0IE9SSUdJTiA9ICdvcmlnaW4nO1xuY29uc3QgU0VUX0NPT0tJRSA9ICdzZXQtY29va2llJztcbmNvbnN0IFVTRVJfQUdFTlQgPSAndXNlci1hZ2VudCc7XG5cbmNvbnN0IEhFQURFUl9GT1JNQVRTID0gWydodHRwJywgJ2F3cyddIGFzIGNvbnN0O1xuZXhwb3J0IGNvbnN0IFhfUFJPWFlfUkVRVUVTVF9VUkwgPSAneC1wcm94eS1yZXF1ZXN0LXVybCc7XG5leHBvcnQgY29uc3QgWF9NT0JJRllfUkVRVUVTVF9DTEFTUyA9ICd4LW1vYmlmeS1yZXF1ZXN0LWNsYXNzJztcbmV4cG9ydCBjb25zdCBNQVhfVVJMX0xFTkdUSF9CWVRFUyA9IDgxOTI7XG5cbnR5cGUgSGVhZGVyRm9ybWF0ID0gKHR5cGVvZiBIRUFERVJfRk9STUFUUylbbnVtYmVyXTtcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgcGFyc2VkIGNvb2tpZSBvYmplY3QgZnJvbSBzZXQtY29va2llLXBhcnNlclxuICovXG5pbnRlcmZhY2UgUGFyc2VkQ29va2llIHtcbiAgbmFtZTogc3RyaW5nO1xuICB2YWx1ZTogc3RyaW5nO1xuICBwYXRoPzogc3RyaW5nO1xuICBleHBpcmVzPzogRGF0ZTtcbiAgZG9tYWluPzogc3RyaW5nO1xuICBtYXhBZ2U/OiBudW1iZXI7XG4gIHNlY3VyZT86IGJvb2xlYW47XG4gIGh0dHBPbmx5PzogYm9vbGVhbjtcbiAgc2FtZVNpdGU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIHBhcnNlZCBob3N0IHdpdGggaXRzIGNvbXBvbmVudHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQYXJzZWRIb3N0IHtcbiAgLyoqIFRoZSBob3N0ICgxMC4xMC4xMC4xMDpwb3J0KSwgd2hpY2ggaW5jbHVkZXMgdGhlIHBvcnQgKGlmIGFueSkgKi9cbiAgaG9zdDogc3RyaW5nO1xuICAvKiogVGhlIGhvc3RuYW1lICgxMC4xMC4xMC4xMCksIHdoaWNoIGV4Y2x1ZGVzIHRoZSBwb3J0ICovXG4gIGhvc3RuYW1lOiBzdHJpbmc7XG4gIC8qKiBUaGUgaG9zdCdzIHBvcnQgKi9cbiAgcG9ydD86IHN0cmluZztcbiAgLyoqIFdoZXRoZXIgdGhlIGhvc3RuYW1lIGlzIGFuIElQIG9yIGxvY2FsaG9zdCAqL1xuICBpc0lQT3JMb2NhbGhvc3Q6IGJvb2xlYW47XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIGhvc3QgYW5kIHBvcnQgdGVzdCBjb25maWd1cmF0aW9uXG4gKi9cbmludGVyZmFjZSBIb3N0QW5kUG9ydFRlc3Qge1xuICB0eXBlOiBzdHJpbmcgfCBudWxsO1xuICByZWdleHA6IFJlZ0V4cDtcbiAgaXNJUE9yTG9jYWxob3N0OiBib29sZWFuO1xuICBoYXNQb3J0OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgQVdTIExhbWJkYSBFdmVudCBoZWFkZXJzIGZvcm1hdFxuICovXG5pbnRlcmZhY2UgQVdTSGVhZGVyVmFsdWUge1xuICBrZXk6IHN0cmluZztcbiAgdmFsdWU6IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgQVdTSGVhZGVycyA9IFJlY29yZDxzdHJpbmcsIEFXU0hlYWRlclZhbHVlW10+O1xuXG4vKipcbiAqIFJlcHJlc2VudHMgSFRUUCBJbmNvbWluZ01lc3NhZ2UgaGVhZGVycyBmb3JtYXRcbiAqL1xuZXhwb3J0IHR5cGUgSFRUUEhlYWRlcnMgPSBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBzdHJpbmdbXT47XG5cbi8qKlxuICogVGhpcyBjbGFzcyBwcm92aWRlcyBhIHJlcHJlc2VudGF0aW9uIG9mIEhUVFAgcmVxdWVzdCBvciByZXNwb25zZVxuICogaGVhZGVycywgdGhhdCBvcGVyYXRlcyBpbiB0aGUgc2FtZSB3YXkgaW4gbXVsdGlwbGUgY29udGV4dHNcbiAqIChpLmUuIHdpdGhpbiB0aGUgRXhwcmVzcyBhcHAgYXMgd2VsbCBhcyB0aGUgcmVxdWVzdC1wcm9jZXNzb3IpLlxuICpcbiAqIFdpdGhpbiBhIEhlYWRlcnMgaW5zdGFuY2UsIGhlYWRlcnMgYXJlIHJlZmVyZW5jZWQgdXNpbmcgbG93ZXItY2FzZVxuICogbmFtZXMuIFVzZSBnZXRIZWFkZXIgdG8gYWNjZXNzIHRoZSB2YWx1ZSBmb3IgYSBoZWFkZXIuIElmIHRoZXJlXG4gKiBhcmUgbXVsdGlwbGUgdmFsdWVzLCB0aGlzIHdpbGwgcmV0dXJuIHRoZSBmaXJzdCB2YWx1ZS4gVGhpcyBjbGFzc1xuICogaW50ZXJuYWxseSBzdXBwb3J0cyByb3VuZC10cmlwIHByZXNlcnZhdGlvbiBvZiBtdWx0aS12YWx1ZSBoZWFkZXJzLFxuICogYnV0IGRvZXMgbm90IHlldCBwcm92aWRlIGEgd2F5IHRvIGFjY2VzcyB0aGVtLlxuICovXG5leHBvcnQgY2xhc3MgSGVhZGVycyB7XG4gIHByaXZhdGUgaHR0cEZvcm1hdDogYm9vbGVhbjtcbiAgcHJpdmF0ZSBoZWFkZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT47XG4gIHByaXZhdGUgX21vZGlmaWVkOiBib29sZWFuO1xuXG4gIC8qXG4gICAgQSBMYW1iZGFARWRnZSBldmVudCBjb250YWlucyBoZWFkZXJzIGluIHRoaXMgZm9ybTpcbiAgICBcImhlYWRlcnNcIjoge1xuICAgICAgICBcImhvc3RcIjogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIFwia2V5XCI6IFwiSG9zdFwiLFxuICAgICAgICAgICAgICAgIFwidmFsdWVcIjogXCJkMTExMTExYWJjZGVmOC5jbG91ZGZyb250Lm5ldFwiXG4gICAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgIFwidXNlci1hZ2VudFwiOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgXCJrZXlcIjogXCJVc2VyLUFnZW50XCIsXG4gICAgICAgICAgICAgICAgXCJ2YWx1ZVwiOiBcImN1cmwvNy4xOC4xXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgIH1cblxuICAgIFRoZSBodHRwLkluY29taW5nTWVzc2FnZSBmb3JtYXQgaXMgYSBzaW1wbGUgb2JqZWN0OlxuICAgIHtcbiAgICAgICAgJ3VzZXItYWdlbnQnOiAnY3VybC83LjIyLjAnLFxuICAgICAgICBob3N0OiAnMTI3LjAuMC4xOjgwMDAnXG4gICAgfVxuXG4gICAgSG93ZXZlciwgZm9yIEluY29taW5nTWVzc2FnZTpcbiAgICBEdXBsaWNhdGVzIG9mIGFnZSwgYXV0aG9yaXphdGlvbiwgY29udGVudC1sZW5ndGgsIGNvbnRlbnQtdHlwZSwgZXRhZyxcbiAgICBleHBpcmVzLCBmcm9tLCBob3N0LCBpZi1tb2RpZmllZC1zaW5jZSwgaWYtdW5tb2RpZmllZC1zaW5jZSxcbiAgICBsYXN0LW1vZGlmaWVkLCBsb2NhdGlvbiwgbWF4LWZvcndhcmRzLCBwcm94eS1hdXRob3JpemF0aW9uLCByZWZlcmVyLFxuICAgIHJldHJ5LWFmdGVyLCBvciB1c2VyLWFnZW50IGFyZSBkaXNjYXJkZWQuXG4gICAgVGhlIHZhbHVlIGZvciBzZXQtY29va2llIGlzIGFsd2F5cyBhbiBhcnJheS4gRHVwbGljYXRlcyBhcmUgYWRkZWQgdG8gdGhlIGFycmF5LlxuICAgIEZvciBhbGwgb3RoZXIgaGVhZGVycywgdGhlIHZhbHVlcyBhcmUgam9pbmVkIHRvZ2V0aGVyIHdpdGggJywnXG5cbiAgICAqL1xuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3QgYSBIZWFkZXJzIG9iamVjdCBmcm9tIGVpdGhlciBhbiBBV1MgTGFtYmRhIEV2ZW50IGhlYWRlcnNcbiAgICogb2JqZWN0LCBvciBhbiBodHRwLkluY29taW5nTWVzc2FnZSBoZWFkZXJzIG9iamVjdC5cbiAgICpcbiAgICogUHJvamVjdCBjb2RlIHNob3VsZCBuZXZlciBuZWVkIHRvIGNhbGwgdGhpcyBjb25zdHJ1Y3Rvci5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIGhlYWRlcnMgdGhlIGlucHV0IGhlYWRlcnNcbiAgICogQHBhcmFtIGZvcm1hdCBlaXRoZXIgJ2h0dHAnIG9yICdhd3MnXG4gICAqL1xuICBjb25zdHJ1Y3RvcihoZWFkZXJzOiBBV1NIZWFkZXJzIHwgSFRUUEhlYWRlcnMgfCBJbmNvbWluZ0h0dHBIZWFkZXJzLCBmb3JtYXQ6IEhlYWRlckZvcm1hdCkge1xuICAgIGlmICghSEVBREVSX0ZPUk1BVFMuaW5jbHVkZXMoZm9ybWF0KSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBIZWFkZXJzIGZvcm1hdCBtdXN0IGJlIG9uZSBvZiAke0hFQURFUl9GT1JNQVRTLmpvaW4oJywgJyl9YCk7XG4gICAgfVxuICAgIHRoaXMuaHR0cEZvcm1hdCA9IGZvcm1hdCA9PT0gJ2h0dHAnO1xuXG4gICAgLy8gV2l0aGluIHRoaXMgY2xhc3MsIGhlYWRlcnMgYXJlIHJlcHJlc2VudGVkIGJ5IGFuIG9iamVjdCB0aGF0IG1hcHNcbiAgICAvLyBoZWFkZXIgbmFtZXMgKGxvd2VyLWNhc2UpIHRvIGFycmF5cyBvZiB2YWx1ZXMuXG4gICAgdGhpcy5oZWFkZXJzID0ge307XG5cbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlc10gb2YgT2JqZWN0LmVudHJpZXMoaGVhZGVycykpIHtcbiAgICAgIC8vIEZvciBodHRwIGZvcm1hdCwgdGhlIHZhbHVlIHdpbGwgYmUgYSBjb21tYS1zZXBhcmF0ZWRcbiAgICAgIC8vIGxpc3Qgb2YgdmFsdWVzIChodHRwczovL3d3dy53My5vcmcvUHJvdG9jb2xzL3JmYzI2MTYvcmZjMjYxNi1zZWM0Lmh0bWwjc2VjNC4yKVxuICAgICAgLy8gRm9yIEFXUyBmb3JtYXQsIHRoZSB2YWx1ZSBpcyBhbiBhcnJheSBvZiBrZXkvdmFsdWUgb2JqZWN0cy5cbiAgICAgIGlmICh0aGlzLmh0dHBGb3JtYXQpIHtcbiAgICAgICAgLy8gVGhlIFNldC1Db29raWUgaGVhZGVyIGlzIGFsd2F5cyBwYXNzZWQgdG8gdXMgYXMgYW4gYXJyYXksXG4gICAgICAgIC8vIHNvIHdlIGRvIG5vdCBzcGxpdC5cbiAgICAgICAgaWYgKGtleSA9PT0gU0VUX0NPT0tJRSkge1xuICAgICAgICAgIHRoaXMuaGVhZGVyc1trZXldID0gKHZhbHVlcyBhcyBzdHJpbmdbXSkuc2xpY2UoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmhlYWRlcnNba2V5XSA9ICh2YWx1ZXMgYXMgc3RyaW5nKS5zcGxpdCgvLFxccyovKS5tYXAoKHZhbHVlKSA9PiB2YWx1ZS50cmltKCkpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmhlYWRlcnNba2V5XSA9ICh2YWx1ZXMgYXMgQVdTSGVhZGVyVmFsdWVbXSkubWFwKCh2YWx1ZSkgPT4gdmFsdWUudmFsdWUudHJpbSgpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLl9tb2RpZmllZCA9IGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0cnVlIGlmIGFuZCBvbmx5IGlmIGFueSBzZXQgb3IgZGVsZXRlIG1ldGhvZHMgd2VyZSBjYWxsZWQgb25cbiAgICogdGhpcyBpbnN0YW5jZSBhZnRlciBjb25zdHJ1Y3Rpb24uIFRoaXMgZG9lcyBub3QgYWN0dWFsbHkgdGVzdCBpZlxuICAgKiB0aGUgaGVhZGVycyB2YWx1ZXMgaGF2ZSBiZWVuIGNoYW5nZWQsIGp1c3Qgd2hldGhlciBhbnkgbXV0YXRpbmdcbiAgICogbWV0aG9kcyBoYXZlIGJlZW4gY2FsbGVkLlxuICAgKiBAcmV0dXJucyB7Qm9vbGVhbn1cbiAgICovXG4gIGdldCBtb2RpZmllZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fbW9kaWZpZWQ7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGFuIGFycmF5IG9mIHRoZSBoZWFkZXIga2V5cyAoYWxsIGxvd2VyLWNhc2UpXG4gICAqL1xuICBrZXlzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5oZWFkZXJzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHZhbHVlIG9mIHRoZSBzZXQtY29va2llIGhlYWRlcihzKSwgcmV0dXJuaW5nIGFuIGFycmF5XG4gICAqIG9mIHN0cmluZ3MuIEFsd2F5cyByZXR1cm5zIGFuIGFycmF5LCBldmVuIGlmIGl0J3MgZW1wdHkuXG4gICAqL1xuICBnZXRTZXRDb29raWUoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmhlYWRlcnNbU0VUX0NPT0tJRV0gfHwgW107XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSB2YWx1ZSBvZiB0aGUgc2V0LWNvb2tpZSBoZWFkZXIocylcbiAgICogQHBhcmFtIHZhbHVlcyBBcnJheSBvZiBzZXQtY29va2llIGhlYWRlciB2YWx1ZXNcbiAgICovXG4gIHNldFNldENvb2tpZSh2YWx1ZXM6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgdGhpcy5fbW9kaWZpZWQgPSB0cnVlO1xuXG4gICAgaWYgKCEodmFsdWVzICYmIHZhbHVlcy5sZW5ndGgpKSB7XG4gICAgICBkZWxldGUgdGhpcy5oZWFkZXJzW1NFVF9DT09LSUVdO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIENsb25lIHRoZSBhcnJheVxuICAgIHRoaXMuaGVhZGVyc1tTRVRfQ09PS0lFXSA9IHZhbHVlcy5zbGljZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgRklSU1QgdmFsdWUgb2YgdGhlIGhlYWRlciB3aXRoIHRoZSBnaXZlbiBrZXkuXG4gICAqIFRoaXMgaXMgZm9yIHNpbmdsZS12YWx1ZSBoZWFkZXJzIG9ubHk6IExvY2F0aW9uLCBBY2Nlc3MtQ29udHJvbC0qLCBldGNcbiAgICogSWYgdGhlIGhlYWRlciBpcyBub3QgcHJlc2VudCwgcmV0dXJucyB1bmRlZmluZWQuXG4gICAqIEBwYXJhbSBrZXkgaGVhZGVyIG5hbWVcbiAgICovXG4gIGdldEhlYWRlcihrZXk6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3Qga2V5TEMgPSBrZXkudG9Mb3dlckNhc2UoKTtcbiAgICBjb25zdCB2YWx1ZXMgPSB0aGlzLmhlYWRlcnNba2V5TENdO1xuICAgIGlmICghdmFsdWVzKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWVzWzBdO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgdmFsdWUgb2YgdGhlIGhlYWRlciB3aXRoIHRoZSBnaXZlbiBrZXkuIFRoaXMgaXMgZm9yIHNpbmdsZS1cbiAgICogdmFsdWUgaGVhZGVycyBvbmx5IChzZWUgZ2V0SGVhZGVyKS4gU2V0dGluZyB0aGUgdmFsdWUgcmVtb3ZlcyBBTEwgb3RoZXJcbiAgICogdmFsdWVzIGZvciB0aGUgZ2l2ZW4ga2V5LlxuICAgKiBAcGFyYW0ga2V5IGhlYWRlciBuYW1lXG4gICAqIEBwYXJhbSB2YWx1ZSBoZWFkZXIgdmFsdWVcbiAgICovXG4gIHNldEhlYWRlcihrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuX21vZGlmaWVkID0gdHJ1ZTtcbiAgICBjb25zdCBrZXlMQyA9IGtleS50b0xvd2VyQ2FzZSgpO1xuICAgIHRoaXMuaGVhZGVyc1trZXlMQ10gPSBbdmFsdWVdO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBhbnkgaGVhZGVyIHdpdGggdGhlIGdpdmVuIGtleVxuICAgKiBAcGFyYW0ga2V5IGhlYWRlciBuYW1lIHRvIHJlbW92ZVxuICAgKi9cbiAgZGVsZXRlSGVhZGVyKGtleTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5fbW9kaWZpZWQgPSB0cnVlO1xuICAgIGNvbnN0IGtleUxDID0ga2V5LnRvTG93ZXJDYXNlKCk7XG4gICAgZGVsZXRlIHRoaXMuaGVhZGVyc1trZXlMQ107XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBoZWFkZXJzIGluIEFXUyAoTGFtYmRhIGV2ZW50KSBmb3JtYXQuXG4gICAqXG4gICAqIFByb2plY3QgY29kZSBzaG91bGQgbmV2ZXIgbmVlZCB0byB1c2UgdGhpcyBtZXRob2QuXG4gICAqL1xuICB0b0FXU0Zvcm1hdCgpOiBBV1NIZWFkZXJzIHtcbiAgICBjb25zdCByZXN1bHQ6IEFXU0hlYWRlcnMgPSB7fTtcbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlc10gb2YgT2JqZWN0LmVudHJpZXModGhpcy5oZWFkZXJzKSkge1xuICAgICAgLy8gU29tZSBjdXN0b21lciBzZXJ2ZXJzIHJldHVybiBoZWFkZXJzIHdpdGggdW51c3VhbCBrZXlzOyBmb3JcbiAgICAgIC8vIGV4YW1wbGUsICdjYWNoZWRfcmVzcG9uc2UnLiBVbmRlcnNjb3JlcyBhcmUgdGVjaG5pY2FsbHkgbGVnYWxcbiAgICAgIC8vIGluIGhlYWRlciBrZXlzLCBidXQgYXJlIHVuZXhwZWN0ZWQuIFRoZSBwcm9ibGVtIGlzIHRoYXQgdGhlXG4gICAgICAvLyBoZWFkZXItY2FzZSBwYWNrYWdlIG1hcHMgdW5kZXJzY29yZSB0byAnLScgdG8gZ2V0IFwibGVnYWxcIlxuICAgICAgLy8gbmFtZXMsIHdoaWNoIGJyZWFrcyBMYW1iZGEgdmFsaWRhdGlvbi4gU28gaWYgdGhlIGtleVxuICAgICAgLy8gY29udGFpbnMgYW4gdW5kZXJzY29yZSwgd2UgdXNlIGl0IGFzLWlzLlxuICAgICAgY29uc3QgZmluYWxLZXkgPSBrZXkuaW5jbHVkZXMoJ18nKSA/IGtleSA6IHRyYWluQ2FzZShrZXkpO1xuICAgICAgcmVzdWx0W2tleV0gPSB2YWx1ZXMubWFwKCh2YWx1ZSkgPT4gKHtcbiAgICAgICAga2V5OiBmaW5hbEtleSxcbiAgICAgICAgdmFsdWUsXG4gICAgICB9KSk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBoZWFkZXJzIGluIEV4cHJlc3MgKGh0dHAuSW5jb21pbmdNZXNzYWdlKSBmb3JtYXQuXG4gICAqXG4gICAqIFJGQzI2MTYgYWxsb3dzIHNvbWUgZmxleGliaWxpdHkgaW4gaG93IG11bHRpcGxlIHZhbHVlcyBhcmVcbiAgICogY29tYmluZWQgaW50byBhIHNpbmdsZSBoZWFkZXIgdmFsdWUuIFdlIHNlcGFyYXRlIHdpdGggJywgJ1xuICAgKiByYXRoZXIgdGhhbiBqdXN0ICcsJyB0byBtYWludGFpbiBwcmV2aW91cyBiZWhhdmlvdXIuXG4gICAqXG4gICAqIFByb2plY3QgY29kZSBzaG91bGQgbmV2ZXIgbmVlZCB0byB1c2UgdGhpcyBtZXRob2QuXG4gICAqL1xuICB0b0hUVFBGb3JtYXQoKTogSFRUUEhlYWRlcnMge1xuICAgIGNvbnN0IHJlc3VsdDogSFRUUEhlYWRlcnMgPSB7fTtcbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlc10gb2YgT2JqZWN0LmVudHJpZXModGhpcy5oZWFkZXJzKSkge1xuICAgICAgLy8gVGhlIFNldC1Db29raWUgaGVhZGVyIGlzIGFsd2F5cyByZXR1cm5lZCBhcyBhbiBhcnJheVxuICAgICAgaWYgKGtleSA9PT0gU0VUX0NPT0tJRSkge1xuICAgICAgICByZXN1bHRba2V5XSA9IHZhbHVlcy5zbGljZSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzdWx0W2tleV0gPSB2YWx1ZXMuam9pbignLCAnKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIGhlYWRlcnMgaW4gdGhlIHNhbWUgZm9ybWF0IChhd3Mgb3IgaHR0cCkgdGhhdCB3YXNcbiAgICogdXNlZCB0byBjb25zdHJ1Y3QgdGhlbS5cbiAgICpcbiAgICogUHJvamVjdCBjb2RlIHNob3VsZCBuZXZlciBuZWVkIHRvIHVzZSB0aGlzIG1ldGhvZC5cbiAgICovXG4gIHRvT2JqZWN0KCk6IEFXU0hlYWRlcnMgfCBIVFRQSGVhZGVycyB8IEluY29taW5nSHR0cEhlYWRlcnMge1xuICAgIHJldHVybiB0aGlzLmh0dHBGb3JtYXQgPyB0aGlzLnRvSFRUUEZvcm1hdCgpIDogdGhpcy50b0FXU0Zvcm1hdCgpO1xuICB9XG59XG5cbmNvbnN0IGRheU5hbWVzID0gWydTdW4nLCAnTW9uJywgJ1R1ZScsICdXZWQnLCAnVGh1JywgJ0ZyaScsICdTYXQnXTtcbmNvbnN0IG1vbnRoQWJiciA9IFsnSmFuJywgJ0ZlYicsICdNYXInLCAnQXByJywgJ01heScsICdKdW4nLCAnSnVsJywgJ0F1ZycsICdTZXAnLCAnT2N0JywgJ05vdicsICdEZWMnXTtcblxuLy8gUmV0dXJuIHRoZSBnaXZlbiBudW1iZXIgYXMgYSAyLWRpZ2l0IHN0cmluZyB3aXRoIGEgbGVhZGluZyB6ZXJvXG5jb25zdCBsZWFkaW5nWmVybyA9IChuOiBudW1iZXIpOiBzdHJpbmcgPT4ge1xuICBjb25zdCBzID0gTnVtYmVyKG4pLnRvU3RyaW5nKCk7XG4gIHJldHVybiBzLmxlbmd0aCA+IDEgPyBzIDogYDAke3N9YDtcbn07XG5cbi8qKlxuICogUmV0dXJuIHRoZSBnaXZlbiBkYXRlIGFzIGFuIFJGQzExMjMtZm9ybWF0IHN0cmluZywgc3VpdGFibGUgZm9yXG4gKiB1c2UgaW4gYSBTZXQtQ29va2llIG9yIERhdGUgaGVhZGVyLiBUaGUgcmVzdWx0IGlzIGFsd2F5cyBpbiBVVEMuXG4gKiBAZnVuY3Rpb25cbiAqIEBwYXJhbSBkYXRlIERhdGUgb2JqZWN0XG4gKiBAcmV0dXJucyBSRkMxMTIzIGZvcm1hdHRlZCBkYXRlIHN0cmluZ1xuICovXG5leHBvcnQgY29uc3QgcmZjMTEyMyA9IChkYXRlOiBEYXRlKTogc3RyaW5nID0+IHtcbiAgY29uc3QgdGltZSA9IFtcbiAgICBsZWFkaW5nWmVybyhkYXRlLmdldFVUQ0hvdXJzKCkpLFxuICAgIGxlYWRpbmdaZXJvKGRhdGUuZ2V0VVRDTWludXRlcygpKSxcbiAgICBsZWFkaW5nWmVybyhkYXRlLmdldFVUQ1NlY29uZHMoKSksXG4gIF0uam9pbignOicpO1xuICByZXR1cm4gW1xuICAgIGAke2RheU5hbWVzW2RhdGUuZ2V0VVRDRGF5KCldfSxgLFxuICAgIGxlYWRpbmdaZXJvKGRhdGUuZ2V0VVRDRGF0ZSgpKSxcbiAgICBtb250aEFiYnJbZGF0ZS5nZXRVVENNb250aCgpXSxcbiAgICBkYXRlLmdldFVUQ0Z1bGxZZWFyKCksXG4gICAgdGltZSxcbiAgICAnR01UJyxcbiAgXS5qb2luKCcgJyk7XG59O1xuXG4vKipcbiAqIEdpdmVuIGEgY29va2llIG9iamVjdCBwYXJzZWQgYnkgc2V0LWNvb2tpZS1wYXJzZXIsXG4gKiByZXR1cm4gYSBzZXQtY29va2llIGhlYWRlciB2YWx1ZSBmb3IgaXQuXG4gKiBAcHJpdmF0ZVxuICovXG5leHBvcnQgY29uc3QgY29va2llQXNTdHJpbmcgPSAoY29va2llOiBQYXJzZWRDb29raWUpOiBzdHJpbmcgPT4ge1xuICBjb25zdCBlbGVtZW50cyA9IFtgJHtjb29raWUubmFtZX09JHtjb29raWUudmFsdWV9YF07XG4gIGlmIChjb29raWUucGF0aCkge1xuICAgIGVsZW1lbnRzLnB1c2goYFBhdGg9JHtjb29raWUucGF0aH1gKTtcbiAgfVxuICBpZiAoY29va2llLmV4cGlyZXMpIHtcbiAgICAvLyBUaGlzIGlzIGEgRGF0ZSBvYmplY3QgYW5kIG11c3QgYmUgcmVwcmVzZW50ZWQgYXNcbiAgICAvLyBhbiBIVFRQLWRhdGUgdGltZXN0YW1wIChSRkMxMTIzIGZvcm1hdCkuIEZvciBleGFtcGxlLFxuICAgIC8vIFdlZCwgMjQtT2N0LTIwMTggMDA6MTM6MjAgR01UXG4gICAgZWxlbWVudHMucHVzaChgRXhwaXJlcz0ke3JmYzExMjMoY29va2llLmV4cGlyZXMpfWApO1xuICB9XG4gIGlmIChjb29raWUuZG9tYWluKSB7XG4gICAgZWxlbWVudHMucHVzaChgRG9tYWluPSR7Y29va2llLmRvbWFpbn1gKTtcbiAgfVxuICBpZiAoY29va2llLm1heEFnZSkge1xuICAgIGVsZW1lbnRzLnB1c2goYE1heC1BZ2U9JHtjb29raWUubWF4QWdlfWApO1xuICB9XG4gIGlmIChjb29raWUuc2VjdXJlKSB7XG4gICAgZWxlbWVudHMucHVzaCgnU2VjdXJlJyk7XG4gIH1cbiAgaWYgKGNvb2tpZS5odHRwT25seSkge1xuICAgIGVsZW1lbnRzLnB1c2goJ0h0dHBPbmx5Jyk7XG4gIH1cbiAgaWYgKGNvb2tpZS5zYW1lU2l0ZSkge1xuICAgIGVsZW1lbnRzLnB1c2goYFNhbWVTaXRlPSR7Y29va2llLnNhbWVTaXRlfWApO1xuICB9XG4gIHJldHVybiBlbGVtZW50cy5qb2luKCc7ICcpO1xufTtcblxuY29uc3QgSVBWNiA9ICdJUFY2JztcbmNvbnN0IElQVjQgPSAnSVBWNCc7XG5jb25zdCBMT0NBTEhPU1QgPSAnbG9jYWxob3N0JztcblxuLyoqXG4gKiBBbiBhcnJheSBvZiB7dHlwZSwgcmVnZXhwLCBpc0lQT3JMb2NhbGhvc3R9IG9iamVjdHMsIHdoZXJlIHRoZSB0eXBlIGlzIHVzZWRcbiAqIHRvIGRldGVybWluZSBob3cgdG8gZ2V0IGEgcG9ydCwgcmVnZXhwIHdpbGwgc3BvdCBhbiBJUHY0LCBJUHY2IG9yIGhvc3RuYW1lLFxuICogYW5kIHRoZSBpc0lQT3JMb2NhbGhvc3QgZmxhZyBpcyB0cnVlIGZvciBJUCBhZGRyZXNzZXMgb3IgbG9jYWhvc3QsIGZhbHNlIGZvclxuICogaG9zdG5hbWVzLiBUaGUgbWFpbiByZWFzb24gZm9yIGRldGVjdGluZyBJUCBhZGRyZXNzL2xvY2FsaG9zdCBpcyB0byBkZXRlcm1pbmVcbiAqIHdoZXRoZXIgaXQgY2FuIGhhdmUgc3ViZG9tYWlucy5cbiAqIEBwcml2YXRlXG4gKi9cbmNvbnN0IEhPU1RfQU5EX1BPUlRfVEVTVFM6IEhvc3RBbmRQb3J0VGVzdFtdID0gW1xuICAvLyBJUFY2IGFkZHJlc3MgcGx1cyBwb3J0XG4gIHtcbiAgICB0eXBlOiBJUFY2LFxuICAgIHJlZ2V4cDogL15cXFsoW2EtZkEtRjAtOTpdKylcXF06KFxcZCspJC8sXG4gICAgaXNJUE9yTG9jYWxob3N0OiB0cnVlLFxuICAgIGhhc1BvcnQ6IHRydWUsXG4gIH0sXG4gIC8vIElQVjYgYWRkcmVzcyB3aXRob3V0IHBvcnRcbiAge1xuICAgIHR5cGU6IElQVjYsXG4gICAgcmVnZXhwOiAvXihbYS1mQS1GMC05Ol0rKSQvLFxuICAgIGlzSVBPckxvY2FsaG9zdDogdHJ1ZSxcbiAgICBoYXNQb3J0OiBmYWxzZSxcbiAgfSxcbiAgLy8gSVBWNCBhZGRyZXNzIHBsdXMgcG9ydFxuICB7XG4gICAgdHlwZTogSVBWNCxcbiAgICByZWdleHA6IC9eKFxcZCtcXC5cXGQrXFwuXFxkK1xcLlxcZCspOihcXGQrKSQvLFxuICAgIGlzSVBPckxvY2FsaG9zdDogdHJ1ZSxcbiAgICBoYXNQb3J0OiB0cnVlLFxuICB9LFxuICAvLyBJUFY0IGFkZHJlc3MgcGx1cyB3aXRob3V0IHBvcnRcbiAge1xuICAgIHR5cGU6IElQVjQsXG4gICAgcmVnZXhwOiAvXihcXGQrXFwuXFxkK1xcLlxcZCtcXC5cXGQrKSQvLFxuICAgIGlzSVBPckxvY2FsaG9zdDogdHJ1ZSxcbiAgICBoYXNQb3J0OiBmYWxzZSxcbiAgfSxcbiAgLy8gbG9jYWxob3N0IHBsdXMgcG9ydFxuICB7XG4gICAgdHlwZTogTE9DQUxIT1NULFxuICAgIHJlZ2V4cDogL14obG9jYWxob3N0KTooXFxkKykkLyxcbiAgICBpc0lQT3JMb2NhbGhvc3Q6IHRydWUsXG4gICAgaGFzUG9ydDogdHJ1ZSxcbiAgfSxcbiAgLy8gbG9jYWxob3N0IHdpdGhvdXQgcG9ydFxuICB7XG4gICAgdHlwZTogTE9DQUxIT1NULFxuICAgIHJlZ2V4cDogL14obG9jYWxob3N0KSQvLFxuICAgIGlzSVBPckxvY2FsaG9zdDogdHJ1ZSxcbiAgICBoYXNQb3J0OiBmYWxzZSxcbiAgfSxcbiAgLy8gaG9zdG5hbWUgcGx1cyBwb3J0XG4gIHtcbiAgICB0eXBlOiBudWxsLFxuICAgIHJlZ2V4cDogLyguKyk6XFxkKy8sXG4gICAgaXNJUE9yTG9jYWxob3N0OiBmYWxzZSwgLy8gRmFsc2UgbWVhbnMgdGhlIGhvc3RuYW1lIG1heSBoYXZlIGEgc3ViZG9tYWluXG4gICAgaGFzUG9ydDogdHJ1ZSxcbiAgfSxcbl07XG5cbi8qKlxuICogR2l2ZW4gYSBob3N0bmFtZSB0aGF0IG1heSBiZSBhIGhvc3RuYW1lIG9yIGlwIGFkZHJlc3Mgb3B0aW9uYWxseVxuICogZm9sbG93ZWQgYnkgYSBwb3J0LCByZXR1cm4gYW4gb2JqZWN0IHdpdGggJ2hvc3QnIGJlaW5nIHRoZSBpcCBhZGRyZXNzLFxuICogdGhlIGhvc3RuYW1lLCBhIHBvcnQgKGlmIHRoZXJlIGlzIG9uZSksIGFuZCAnaXNJUE9yTG9jYWxob3N0JyB0cnVlIGZvciBhbiBpcFxuICogYWRkcmVzcyBvciBsb2NhbGhvc3QsIGZhbHNlIGZvciBhIGhvc3RuYW1lXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIGhvc3QgQ2FuIGJlIGxvY2FsaG9zdCwgYW4gSVAgb3IgZG9tYWluIG5hbWVcbiAqIEByZXR1cm4gUGFyc2VkSG9zdCBvYmplY3RcbiAqL1xuZXhwb3J0IGNvbnN0IHBhcnNlSG9zdCA9IChob3N0OiBzdHJpbmcpOiBQYXJzZWRIb3N0ID0+IHtcbiAgZm9yIChjb25zdCB0ZXN0IG9mIEhPU1RfQU5EX1BPUlRfVEVTVFMpIHtcbiAgICBjb25zdCBtYXRjaCA9IHRlc3QucmVnZXhwLmV4ZWMoaG9zdCk7XG5cbiAgICBpZiAoIW1hdGNoKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQ6IFBhcnNlZEhvc3QgPSB7XG4gICAgICBob3N0LFxuICAgICAgaG9zdG5hbWU6IG1hdGNoWzFdLFxuICAgICAgaXNJUE9yTG9jYWxob3N0OiB0ZXN0LmlzSVBPckxvY2FsaG9zdCxcbiAgICB9O1xuXG4gICAgLy8gU3BsaXQgYXBhcnQgYW5kIGdldCB0aGUgaG9zdG5hbWUgYW5kIHBvcnQgZnJvbSB0aGUgaG9zdFxuICAgIGlmICh0ZXN0Lmhhc1BvcnQpIHtcbiAgICAgIGxldCBwYXJ0czogc3RyaW5nW107XG4gICAgICBzd2l0Y2ggKHRlc3QudHlwZSkge1xuICAgICAgICBjYXNlIElQVjY6XG4gICAgICAgICAgLy8gRmlsdGVyIG91dCBlbXB0eSBub2RlcyBmcm9tdCBoZSBhcnJheS4gV2Ugb25seSBjYXJlIGFib3V0XG4gICAgICAgICAgLy8gdGhlIG9uZXMgdGhhdCBoYXZlIHZhbHVlc1xuICAgICAgICAgIHBhcnRzID0gcmVzdWx0Lmhvc3Quc3BsaXQodGVzdC5yZWdleHApLmZpbHRlcigocGFydCkgPT4gcGFydC5sZW5ndGggPiAwKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBJUFY0OlxuICAgICAgICBjYXNlIExPQ0FMSE9TVDpcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBwYXJ0cyA9IHJlc3VsdC5ob3N0LnNwbGl0KCc6Jyk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBbcmVzdWx0Lmhvc3RuYW1lLCByZXN1bHQucG9ydF0gPSBwYXJ0cztcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBob3N0LFxuICAgIGhvc3RuYW1lOiBob3N0LFxuICAgIGlzSVBPckxvY2FsaG9zdDogZmFsc2UsXG4gIH07XG59O1xuXG4vLyBDb29raWUgZG9tYWluIHJld3JpdGUgbG9naWMgZm9yIHJld3JpdGVTZXRDb29raWVzIGJlbG93XG5leHBvcnQgY29uc3QgcmV3cml0ZURvbWFpbiA9IChkb21haW46IHN0cmluZywgYXBwSG9zdG5hbWU6IHN0cmluZywgdGFyZ2V0SG9zdDogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgLy8gU3RyaXAgYW55IGxlYWRpbmcgZG90cyBvZmYgdGhlIGRvbWFpbiBhbmQgc3BsaXQgaW50byBlbGVtZW50c1xuICBjb25zdCBkb21haW5FbGVtZW50cyA9IGRvbWFpbi5zcGxpdCgnLicpLmZpbHRlcigoeCkgPT4geCk7XG4gIGNvbnN0IGRvbWFpblN0cmluZyA9IGRvbWFpbkVsZW1lbnRzLmpvaW4oJy4nKTtcblxuICAvLyBEb2VzIHRoZSBhcHBIb3N0bmFtZSBpbmNsdWRlIGEgcG9ydCBudW1iZXI/IFdlIG5lZWQgYSB2ZXJzaW9uXG4gIC8vIG9mIGl0IHdpdGhvdXQgdGhlIHBvcnQgKGhvc3RuYW1lKSBiZWNhdXNlIHNldC1jb29raWUgZG9tYWlucyBjYW5ub3RcbiAgLy8gaW5jbHVkZSBwb3J0cy4gV2UgY2FuJ3QganVzdCB0ZXN0IGZvciAnOicgYmVjYXVzZSB0aGUgaG9zdCBtaWdodCBiZSBhblxuICAvLyBpcHY2IGFkZHJlc3MuIEFuIGlwdjYgYWRkcmVzcyBjb250YWluaW5nIGEgcG9ydCBjb250YWlucyB0aGVcbiAgLy8gYWN0dWFsIElQIHN1cnJvdW5kZWQgYnkgW10gKGUuZy4gWzIwMDE6ZGI4OjoxXTo4MDgwKVxuICAvLyBSRkMzOTg2XG4gIGNvbnN0IHBhcnNlZEhvc3QgPSBwYXJzZUhvc3QoYXBwSG9zdG5hbWUpO1xuXG4gIC8vIElmIHRoZSB0YXJnZXQgaG9zdCBlcXVhbHMgb3IgZW5kcyB3aXRoIHRoZSBkb21haW5TdHJpbmdcbiAgLy8gdmFsdWUsIHRoZW4gd2UgY2hhbmdlIHRoZSBkb21haW4gdG8gYmUgdGhlIGFwcEhvc3RuYW1lXG4gIC8vICh0aG91Z2ggZm9yIGxvY2FsaG9zdCwgd2Ugc3RyaXAgb2ZmIHRoZSBwb3J0IG51bWJlcilcbiAgaWYgKHRhcmdldEhvc3QgPT09IGRvbWFpblN0cmluZykge1xuICAgIC8vIFN0cmFpZ2h0IHJlcGxhY2VtZW50XG4gICAgcmV0dXJuIHBhcnNlZEhvc3QuaG9zdG5hbWU7XG4gIH1cblxuICBpZiAoIXRhcmdldEhvc3QuZW5kc1dpdGgoZG9tYWluU3RyaW5nKSkge1xuICAgIC8vIFRoaXJkLXBhcnR5IGNvb2tpZS4uLiBsZWF2ZSB1bmNoYW5nZWRcbiAgICByZXR1cm4gZG9tYWluO1xuICB9XG5cbiAgLy8gQ29va2llIGlzIHNldCBmb3IgYSBzdWJkb21haW4uXG4gIGlmIChwYXJzZWRIb3N0LmlzSVBPckxvY2FsaG9zdCkge1xuICAgIC8vIE5vIHN1YmRvbWFpbnMgZm9yIElQIGFkZHJlc3NlcyBvciBsb2NhbGhvc3QsIHNvIHJldHVybiBqdXN0IHRoYXQgZG9tYWluXG4gICAgcmV0dXJuIHBhcnNlZEhvc3QuaG9zdG5hbWU7XG4gIH1cblxuICAvLyBUaGlzIGlzIHRyaWNreS4uLiB0aGVyZSdzIG5vIHN0YW5kYXJkIHdheSB0byBnZXQgdGhlIGRvbWFpbiBmb3JcbiAgLy8gYSBob3N0bmFtZS4gV2UgdXNlIGEgc2hvcnRjdXQgLSB3ZSBidWlsZCB1cCBhIHN1YmRvbWFpbiBiYXNlZCBvbiB0aGVcbiAgLy8gYXBwSG9zdCB0aGF0IGhhcyB0aGUgc2FtZSBudW1iZXIgb2YgZWxlbWVudHMgYXMgdGhlIGNvb2tpZSBkb21haW4uXG4gIGNvbnN0IHRhcmdldEhvc3RFbGVtZW50cyA9IHRhcmdldEhvc3Quc3BsaXQoJy4nKTtcbiAgLy8gV29yayBvdXQgaG93IG1hbnkgZWxlbWVudHMgaGF2ZSBiZWVuIHJlbW92ZWQgdG8gZm9ybSB0aGUgc3ViZG9tYWluXG4gIGNvbnN0IHN0cmlwcGVkT2ZmID0gdGFyZ2V0SG9zdEVsZW1lbnRzLmxlbmd0aCAtIGRvbWFpbkVsZW1lbnRzLmxlbmd0aDtcbiAgLy8gU3RyaXAgdGhlIHNhbWUgbnVtYmVyIG9mIGVsZW1lbnRzIG9mZiB0aGUgYXBwSG9zdFxuICBjb25zdCBhcHBIb3N0bmFtZUVsZW1lbnRzID0gcGFyc2VkSG9zdC5ob3N0bmFtZS5zcGxpdCgnLicpO1xuICByZXR1cm4gYXBwSG9zdG5hbWVFbGVtZW50cy5zbGljZShzdHJpcHBlZE9mZikuam9pbignLicpO1xufTtcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciByZXdyaXRlU2V0Q29va2llcyBmdW5jdGlvblxuICovXG5pbnRlcmZhY2UgUmV3cml0ZVNldENvb2tpZXNQYXJhbXMge1xuICAvKiogdGhlIGhvc3RuYW1lIChob3N0K3BvcnQpIHVuZGVyIHdoaWNoIHRoZSBFeHByZXNzIGFwcCBpcyBydW5uaW5nIChlLmcuIGxvY2FsaG9zdDozNDQzIGZvciBhIGxvY2FsIGRldiBzZXJ2ZXIpICovXG4gIGFwcEhvc3RuYW1lOiBzdHJpbmc7XG4gIC8qKiBBcnJheSBvZiBzZXQtY29va2llIGhlYWRlciB2YWx1ZXMgKi9cbiAgc2V0Q29va2llczogc3RyaW5nW107XG4gIC8qKiB0aGUgdGFyZ2V0IGhvc3RuYW1lIChob3N0K3BvcnQpICovXG4gIHRhcmdldEhvc3Q6IHN0cmluZztcbiAgLyoqIHRydWUgdG8gbG9nIG9wZXJhdGlvbnMgKi9cbiAgbG9nZ2luZz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogR2l2ZW4gYSBoZWFkZXJzIG9iamVjdCwgcmV3cml0ZSBhbnkgc2V0LWNvb2tpZSBoZWFkZXJzIGluIGl0XG4gKiBzbyB0aGF0IHRoZXkgYXBwbHkgdG8gdGhlIGFwcCBob3N0bmFtZSByYXRoZXIgdGhhbiB0aGUgdGFyZ2V0XG4gKiBob3N0bmFtZS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHBhcmFtcyBDb25maWd1cmF0aW9uIG9iamVjdCBmb3IgcmV3cml0aW5nIHNldC1jb29raWVzXG4gKiBAcmV0dXJucyBzdHJpbmdbXSBvZiByZXdyaXR0ZW4gc2V0LWNvb2tpZSBoZWFkZXIgdmFsdWVzXG4gKi9cbmV4cG9ydCBjb25zdCByZXdyaXRlU2V0Q29va2llcyA9ICh7XG4gIGFwcEhvc3RuYW1lLFxuICBzZXRDb29raWVzLFxuICB0YXJnZXRIb3N0LFxuICBsb2dnaW5nID0gZmFsc2UsXG59OiBSZXdyaXRlU2V0Q29va2llc1BhcmFtcyk6IHN0cmluZ1tdID0+IHtcbiAgaWYgKCEoc2V0Q29va2llcyAmJiBzZXRDb29raWVzLmxlbmd0aCkpIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICAvLyBQYXJzZSB0aGUgc2V0LWNvb2tpZSBoZWFkZXJzIGludG8gYSBzZXQgb2Ygb2JqZWN0c1xuICBjb25zdCBvbGRDb29raWVzID0gcGFyc2VTZXRDb29raWUoc2V0Q29va2llcywge2RlY29kZVZhbHVlczogZmFsc2V9KTtcblxuICAvLyBNYXAgdGhlIG9sZENvb2tpZXMgYXJyYXkgaW50byBhbiBhcnJheSBvZiB1cGRhdGVkIG9iamVjdHNcbiAgY29uc3QgbmV3Q29va2llcyA9IG9sZENvb2tpZXMubWFwKChjb29raWUpID0+IHtcbiAgICBpZiAoY29va2llLmRvbWFpbikge1xuICAgICAgY29uc3QgbmV3RG9tYWluID0gcmV3cml0ZURvbWFpbihjb29raWUuZG9tYWluLCBhcHBIb3N0bmFtZSwgdGFyZ2V0SG9zdCk7XG5cbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICBpZiAobG9nZ2luZykge1xuICAgICAgICBjb25zb2xlLmxvZyhgUmV3cml0aW5nIHByb3h5IHJlc3BvbnNlIHNldC1jb29raWUgaGVhZGVyIGRvbWFpbiBmcm9tIFwiJHtjb29raWUuZG9tYWlufVwiIHRvIFwiJHtuZXdEb21haW59XCJgKTtcbiAgICAgIH1cblxuICAgICAgY29va2llLmRvbWFpbiA9IG5ld0RvbWFpbjtcbiAgICB9XG5cbiAgICByZXR1cm4gY29va2llO1xuICB9KTtcblxuICAvLyBDb252ZXJ0IHRoZSBjb29raWVzIGJhY2sgdG8gc3RyaW5nIHZhbHVlc1xuICByZXR1cm4gbmV3Q29va2llcy5tYXAoY29va2llQXNTdHJpbmcpO1xufTtcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciByZXdyaXRlUHJveHlSZXNwb25zZUhlYWRlcnMgZnVuY3Rpb25cbiAqL1xuaW50ZXJmYWNlIFJld3JpdGVQcm94eVJlc3BvbnNlSGVhZGVyc1BhcmFtcyB7XG4gIC8qKiB0aGUgaG9zdG5hbWUgKGhvc3QrcG9ydCkgdW5kZXIgd2hpY2ggdGhlIEV4cHJlc3MgYXBwIGlzIHJ1bm5pbmcgKGUuZy4gbG9jYWxob3N0OjM0NDMgZm9yIGEgbG9jYWwgZGV2IHNlcnZlcikgKi9cbiAgYXBwSG9zdG5hbWU6IHN0cmluZztcbiAgLyoqIHRydWUgZm9yIGEgY2FjaGluZyBwcm94eSwgZmFsc2UgZm9yIGEgc3RhbmRhcmQgcHJveHkgKi9cbiAgY2FjaGluZzogYm9vbGVhbjtcbiAgLyoqIHRoZSBoZWFkZXJzIHRvIGJlIHJld3JpdHRlbiAqL1xuICBoZWFkZXJzOiBBV1NIZWFkZXJzIHwgSFRUUEhlYWRlcnMgfCBJbmNvbWluZ0h0dHBIZWFkZXJzO1xuICAvKiogJ2F3cycgb3IgJ2h0dHAnIC0gdGhlIGZvcm1hdCBvZiB0aGUgJ2hlYWRlcnMnIHBhcmFtZXRlciAqL1xuICBoZWFkZXJGb3JtYXQ/OiBIZWFkZXJGb3JtYXQ7XG4gIC8qKiB0aGUgcGF0aCBiZWluZyBwcm94aWVkIChlLmcuIC9tb2JpZnkvcHJveHkvYmFzZS8pICovXG4gIHByb3h5UGF0aDogc3RyaW5nO1xuICAvKiogdGhlIFVSTCBmcm9tIHRoZSByZXF1ZXN0IHRoYXQgcHJvbXB0ZWQgdGhlIHJlc3BvbnNlLiBJZiBwcmVzZW50LCB1c2VkIHRvIHNldCB0aGUgWC1Qcm94eS1SZXF1ZXN0LVVybCBoZWFkZXIuIFRoaXMgc2hvdWxkIGJlIHRoZSByZXF1ZXN0IFVSTCBzZW50IHRvIHRoZSB0YXJnZXQgaG9zdCwgbm90IGNvbnRhaW5pbmcgYW55IC9tb2JpZnkvcHJveHkvLi4uIHBhcnQuICovXG4gIHJlcXVlc3RVcmw/OiBzdHJpbmc7XG4gIC8qKiB0aGUgcHJvdG9jb2wgdG8gdXNlIHRvIG1ha2UgcmVxdWVzdHMgdG8gdGhlIHRhcmdldCAoJ2h0dHAnIG9yICdodHRwcycpICovXG4gIHRhcmdldFByb3RvY29sOiBzdHJpbmc7XG4gIC8qKiB0aGUgdGFyZ2V0IGhvc3RuYW1lIChob3N0K3BvcnQpICovXG4gIHRhcmdldEhvc3Q6IHN0cmluZztcbiAgLyoqIHRoZSBwcm90b2NvbCB0byB1c2UgdG8gbWFrZSByZXF1ZXN0cyB0byB0aGUgb3JpZ2luICgnaHR0cCcgb3IgJ2h0dHBzJywgZGVmYXVsdHMgdG8gJ2h0dHBzJyksIHVzZSBvZiB1bmVuY3J5cHRlZCBwcm90b2NvbCBpcyBvbmx5IGFsbG93ZWQgaW4gbG9jYWwgZGV2ZWxvcG1lbnQgKi9cbiAgYXBwUHJvdG9jb2w/OiBzdHJpbmc7XG4gIC8qKiB0cnVlIHRvIGxvZyBvcGVyYXRpb25zICovXG4gIGxvZ2dpbmc/OiBib29sZWFuO1xuICAvKiogdGhlIHJlc3BvbnNlIHN0YXR1cyBjb2RlICovXG4gIHN0YXR1c0NvZGU/OiBudW1iZXI7XG59XG5cbi8qKlxuICogUmV3cml0ZSBoZWFkZXJzIGZvciBhIHByb3hpZWQgcmVzcG9uc2UuXG4gKlxuICogMS4gSWYgdGhlIG9yaWdpbmFsIGRvbWFpbiBhcHBlYXJzIGluIHRoZVxuICogQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luIGhlYWRlciwgaXQncyByZXBsYWNlZCB3aXRoIHRoZVxuICogYXBwT3JpZ2luLlxuICogMi4gSWYgdGhlIHJlc3BvbnNlIGlzIGEgMzB4IHJlZGlyZWN0aW9uIGFuZCBjb250YWlucyBhIExvY2F0aW9uXG4gKiBoZWFkZXIgb24gdGhlIHRhcmdldCBob3N0LCB0aGF0IGhlYWRlciBpcyByZXdyaXR0ZW4gdG8gdXNlIHRoZVxuICogYXBwIGhvc3QgYW5kIHByb3h5IHBhdGguXG4gKlxuICogRm9yIGEgY2FjaGluZyBwcm94eSwgd2UgYWxzbyByZW1vdmUgYW55IFNldC1Db29raWUgaGVhZGVycyAtIGNhY2hpbmdcbiAqIHByb3hpZXMgZG9uJ3QgcGFzcyBDb29raWUgaGVhZGVycyBmb3IgcmVxdWVzdHMgYW5kIGRvbid0IGFsbG93IFNldC1Db29raWVcbiAqIGluIHJlc3BvbnNlcywgc28gdGhhdCB0aGV5IG1heSBiZSBjYWNoZWQgaW5kZXBlbmRlbnRseSBvZiBhbnkgY29va2llXG4gKiB2YWx1ZXMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSBwYXJhbXMgQ29uZmlndXJhdGlvbiBvYmplY3QgZm9yIHJld3JpdGluZyBwcm94eSByZXNwb25zZSBoZWFkZXJzXG4gKiBAcmV0dXJucyB0aGUgbW9kaWZpZWQgcmVzcG9uc2UgaGVhZGVyc1xuICovXG5leHBvcnQgY29uc3QgcmV3cml0ZVByb3h5UmVzcG9uc2VIZWFkZXJzID0gKHtcbiAgYXBwSG9zdG5hbWUsXG4gIGNhY2hpbmcsXG4gIGhlYWRlcnMsXG4gIGhlYWRlckZvcm1hdCA9ICdodHRwJyxcbiAgcHJveHlQYXRoLFxuICByZXF1ZXN0VXJsLFxuICBzdGF0dXNDb2RlID0gMjAwLFxuICB0YXJnZXRQcm90b2NvbCxcbiAgdGFyZ2V0SG9zdCxcbiAgYXBwUHJvdG9jb2wgPSAnaHR0cHMnLFxuICBsb2dnaW5nID0gZmFsc2UsXG59OiBSZXdyaXRlUHJveHlSZXNwb25zZUhlYWRlcnNQYXJhbXMpOiBBV1NIZWFkZXJzIHwgSFRUUEhlYWRlcnMgfCBJbmNvbWluZ0h0dHBIZWFkZXJzID0+IHtcbiAgY29uc3Qgd29ya2luZ0hlYWRlcnMgPSBuZXcgSGVhZGVycyhcbiAgICBoZWFkZXJzID8gKHsuLi5oZWFkZXJzfSBhcyBBV1NIZWFkZXJzIHwgSFRUUEhlYWRlcnMgfCBJbmNvbWluZ0h0dHBIZWFkZXJzKSA6IHt9LFxuICAgIGhlYWRlckZvcm1hdCxcbiAgKTtcblxuICBjb25zdCBhcHBPcmlnaW4gPSBgJHthcHBQcm90b2NvbH06Ly8ke2FwcEhvc3RuYW1lfWA7XG4gIGNvbnN0IHRhcmdldE9yaWdpbiA9IGAke3RhcmdldFByb3RvY29sfTovLyR7dGFyZ2V0SG9zdH1gO1xuXG4gIC8vIFNldCB0aGUgWC1Qcm94eS1SZXF1ZXN0LVVybCBoZWFkZXIsIGlmIHdlIGhhdmUgdGhlIHJlcXVlc3QgVVJMXG4gIGlmIChyZXF1ZXN0VXJsKSB7XG4gICAgLy8gSWYgdGhlIHJlcXVlc3RVcmwgaXMganVzdCBhIHBhdGgsIHByZXBlbmQgdGhlIHRhcmdldE9yaWdpbi5cbiAgICAvLyBJbmNsdWRpbmcgdGhlIGZ1bGwgVVJMIGFzIGEgaGVhZGVyIHZhbHVlIHJpc2tzIGV4Y2VlZGluZyBsaW1pdHNcbiAgICAvLyBvbiBoZWFkZXIgdmFsdWUgc2l6ZXMuIENsb3VkRnJvbnQgbGltaXRzIFVSTHMgdG8gODE5MiBieXRlcy5cbiAgICAvLyBFdmVuIHRob3VnaCBBUEkgR2F0ZXdheSBoYXMgYSBoZWFkZXIgdmFsdWUgbGltaXQgb2ZcbiAgICAvLyAxMDI0MCBieXRlcywgd2UgY2hvb3NlIHRvIGxpbWl0IHRoZSBsZW5ndGggb2YgdGhlIGhlYWRlclxuICAgIC8vIHZhbHVlIHRvIDgxOTIgYnl0ZXMuXG4gICAgY29uc3QgZnVsbFJlcXVlc3RVcmwgPSAocmVxdWVzdFVybC5zdGFydHNXaXRoKCcvJykgPyBgJHt0YXJnZXRPcmlnaW59JHtyZXF1ZXN0VXJsfWAgOiByZXF1ZXN0VXJsKS5zbGljZShcbiAgICAgIDAsXG4gICAgICBNQVhfVVJMX0xFTkdUSF9CWVRFUyxcbiAgICApO1xuICAgIGlmIChsb2dnaW5nKSB7XG4gICAgICBjb25zb2xlLmxvZyhgU2V0dGluZyBwcm94eSByZXNwb25zZSAke1hfUFJPWFlfUkVRVUVTVF9VUkx9IGhlYWRlciB0byBcIiR7ZnVsbFJlcXVlc3RVcmx9XCJgKTtcbiAgICB9XG4gICAgd29ya2luZ0hlYWRlcnMuc2V0SGVhZGVyKFhfUFJPWFlfUkVRVUVTVF9VUkwsIGZ1bGxSZXF1ZXN0VXJsKTtcbiAgfVxuXG4gIC8vIEdldCBhIHZlcnNpb24gb2YgdGhlIHByb3h5UGF0aCB0aGF0IGRvZXMgbm90IGVuZCBpbiBhIHNsYXNoXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIGNvbnN0IHByb3h5UGF0aEJhc2UgPSBwcm94eVBhdGguZW5kc1dpdGgoJy8nKSA/IHByb3h5UGF0aC5zbGljZSgwLCAtMSkgOiBwcm94eVBhdGg7XG5cbiAgY29uc3QgYWxsb3dPcmlnaW4gPSB3b3JraW5nSGVhZGVycy5nZXRIZWFkZXIoQUNfQUxMT1dfT1JJR0lOKTtcbiAgaWYgKGxvZ2dpbmcgJiYgYWxsb3dPcmlnaW4pIHtcbiAgICBjb25zb2xlLmxvZyhgSGVhZGVyICR7QUNfQUxMT1dfT1JJR0lOfSBoYXMgdmFsdWUgXCIke2FsbG93T3JpZ2lufVwiYCk7XG4gIH1cbiAgaWYgKGFsbG93T3JpZ2luID09PSB0YXJnZXRPcmlnaW4pIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChsb2dnaW5nKSB7XG4gICAgICBjb25zb2xlLmxvZyhgUmV3cml0aW5nIHByb3h5IHJlc3BvbnNlICR7QUNfQUxMT1dfT1JJR0lOfSBoZWFkZXIgdG8gXCIke2FwcE9yaWdpbn1cImApO1xuICAgIH1cbiAgICB3b3JraW5nSGVhZGVycy5zZXRIZWFkZXIoQUNfQUxMT1dfT1JJR0lOLCBhcHBPcmlnaW4pO1xuICB9XG5cbiAgaWYgKGNhY2hpbmcpIHtcbiAgICAvLyBGb3IgYSBjYWNoaW5nIHByb3h5LCByZW1vdmUgYW55IFNldC1Db29raWUgaGVhZGVyc1xuICAgIHdvcmtpbmdIZWFkZXJzLmRlbGV0ZUhlYWRlcihTRVRfQ09PS0lFKTtcbiAgfSBlbHNlIHtcbiAgICAvLyBGb3IgYSBzdGFuZGFyZCBwcm94eSwgcmV3cml0ZSBkb21haW5zIGluIGFueSBzZXQtY29va2llIGhlYWRlcnMuXG4gICAgY29uc3QgdXBkYXRlZENvb2tpZXMgPSByZXdyaXRlU2V0Q29va2llcyh7XG4gICAgICBhcHBIb3N0bmFtZSxcbiAgICAgIHNldENvb2tpZXM6IHdvcmtpbmdIZWFkZXJzLmdldFNldENvb2tpZSgpLFxuICAgICAgdGFyZ2V0SG9zdCxcbiAgICAgIGxvZ2dpbmcsXG4gICAgfSk7XG4gICAgd29ya2luZ0hlYWRlcnMuc2V0U2V0Q29va2llKHVwZGF0ZWRDb29raWVzKTtcbiAgfVxuXG4gIC8vIEhhbmRsZSBhbnkgcmVkaXJlY3RcbiAgaWYgKHN0YXR1c0NvZGUgPj0gMzAxICYmIHN0YXR1c0NvZGUgPD0gMzA4KSB7XG4gICAgaWYgKGxvZ2dpbmcpIHtcbiAgICAgIGNvbnNvbGUubG9nKGBTdGF0dXMgY29kZSBpcyAke3N0YXR1c0NvZGV9LCBjaGVja2luZyBMb2NhdGlvbiBoZWFkZXJgKTtcbiAgICB9XG4gICAgY29uc3QgbG9jYXRpb24gPSB3b3JraW5nSGVhZGVycy5nZXRIZWFkZXIoTE9DQVRJT04pO1xuICAgIGlmIChsb2dnaW5nKSB7XG4gICAgICBjb25zb2xlLmxvZyhgTG9jYXRpb24gaGVhZGVyIGhhcyB2YWx1ZSBcIiR7bG9jYXRpb259XCJgKTtcbiAgICB9XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChsb2NhdGlvbikge1xuICAgICAgLy8gVGhlIExvY2F0aW9uIGhlYWRlciBpcyBkZWZpbmVkIGFzIGEgVVJMLCBtZWFuaW5nIHRoYXQgaXRcbiAgICAgIC8vIGNhbiBiZSBib3RoIHByb3RvY29sLSBhbmQgaG9zdC1yZWxhdGl2ZSwgc28gd2UgZXhwYW5kIGl0XG4gICAgICAvLyByZWxhdGl2ZSB0byB0aGUgdGFyZ2V0T3JpZ2luLlxuICAgICAgY29uc3QgbG9jVXJsID0gbmV3IFVSTChsb2NhdGlvbiwgdGFyZ2V0T3JpZ2luKTtcblxuICAgICAgLy8gSWYgdGhlIGxvY2F0aW9uIGhlYWRlciBVUkwgaXMgb24gdGhlIHRhcmdldE9yaWdpbiwgd2UgcmV3cml0ZSBpdC5cbiAgICAgIGlmIChsb2NVcmwucHJvdG9jb2wgPT09IGAke3RhcmdldFByb3RvY29sfTpgICYmIGxvY1VybC5ob3N0ID09PSB0YXJnZXRIb3N0KSB7XG4gICAgICAgIC8vIFJld3JpdGUgdGhlIExvY2F0aW9uIHZhbHVlIHRvIG1hcCB0byB0aGUgcHJveHkgcGF0aFxuICAgICAgICAvLyBvbiB0aGUgYXBwIGhvc3QuXG4gICAgICAgIGxvY1VybC5wcm90b2NvbCA9IGFwcFByb3RvY29sO1xuICAgICAgICBsb2NVcmwuaG9zdCA9IGFwcEhvc3RuYW1lO1xuICAgICAgICAvLyBTaW5jZSB0aGUgcHJveHlQYXRoIGVuZHMgd2l0aCBhIHNsYXNoIGFuZCBsb2NVcmwucGF0aG5hbWVcbiAgICAgICAgLy8gd2lsbCBzdGFydCB3aXRoIGEgc2xhc2gsIHdlIG5lZWQgdG9cbiAgICAgICAgbG9jVXJsLnBhdGhuYW1lID0gcHJveHlQYXRoQmFzZSArIGxvY1VybC5wYXRobmFtZTtcbiAgICAgICAgY29uc3QgbmV3TG9jYXRpb24gPSBsb2NVcmwudG9TdHJpbmcoKTtcbiAgICAgICAgd29ya2luZ0hlYWRlcnMuc2V0SGVhZGVyKExPQ0FUSU9OLCBuZXdMb2NhdGlvbik7XG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgIGlmIChsb2dnaW5nKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coYFJld3JpdGluZyBwcm94eSByZXNwb25zZSBMb2NhdGlvbiBoZWFkZXIgZnJvbSBcIiR7bG9jYXRpb259XCIgdG8gXCIke25ld0xvY2F0aW9ufVwiYCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gd29ya2luZ0hlYWRlcnMudG9PYmplY3QoKTtcbn07XG5cbi8qKlxuICogTGlzdCBvZiB4LSBoZWFkZXJzIHRoYXQgYXJlIHJlbW92ZWQgZnJvbSBwcm94aWVkIHJlcXVlc3RzLlxuICogQHByaXZhdGVcbiAqL1xuZXhwb3J0IGNvbnN0IFhfSEVBREVSU19UT19SRU1PVkVfUFJPWFk6IHN0cmluZ1tdID0gWyd4LW1vYmlmeS1hY2Nlc3Mta2V5JywgJ3gtc2ZkYy1hY2Nlc3MtY29udHJvbCddO1xuXG4vKipcbiAqIExpc3Qgb2YgeC0gaGVhZGVycyB0aGF0IGFyZSByZW1vdmVkIGZyb20gb3JpZ2luIHJlcXVlc3RzLlxuICogQHByaXZhdGVcbiAqL1xuZXhwb3J0IGNvbnN0IFhfSEVBREVSU19UT19SRU1PVkVfT1JJR0lOOiBzdHJpbmdbXSA9IFtcbiAgJ3gtYXBpLWtleScsXG4gICd4LWFwaWdhdGV3YXktZXZlbnQnLFxuICAneC1hcGlnYXRld2F5LWNvbnRleHQnLFxuICAneC1tb2JpZnktYWNjZXNzLWtleScsXG4gICd4LXNmZGMtYWNjZXNzLWNvbnRyb2wnLFxuXTtcblxuLyoqXG4gKiBYLWhlYWRlciBrZXkgYW5kIHZhbHVlcyB0byBhZGQgdG8gcHJveGllZCByZXF1ZXN0c1xuICogQHByaXZhdGVcbiAqL1xuZXhwb3J0IGNvbnN0IFhfSEVBREVSU19UT19BREQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICd4LW1vYmlmeSc6ICd0cnVlJyxcbn07XG5cbi8qKlxuICogTGlzdCBvZiBoZWFkZXJzIHRoYXQgYXJlIGFsbG93ZWQgZm9yIGEgY2FjaGluZyBwcm94eSByZXF1ZXN0LlxuICogVGhpcyBtdXN0IG1hdGNoIHRoZSBhbGxvd2xpc3QgdGhhdCBDbG91ZEZyb250IHVzZXMgZm9yIGFcbiAqIENhY2hlQmVoYXZpb3IgdGhhdCBkb2VzIG5vdCBwYXNzIGNvb2tpZXMgYW5kIGlzIG5vdCBjb25maWd1cmVkXG4gKiB0byBjYWNoZSBiYXNlZCBvbiBoZWFkZXJzLlxuICpcbiAqIFRoaXMgaXMgYSBtYXAgZnJvbSBsb3dlci1jYXNlIGhlYWRlciBuYW1lIHRvICd0cnVlJyAtIHdlIHVzZSBhbiBvYmplY3RcbiAqIHRvIG1ha2UgbG9va3VwcyBmYXN0LCBzaW5jZSB0aGlzIG1hcHBpbmcgbWlnaHQgYmUgdXNlZCBmb3IgbWFueSByZXF1ZXN0cy5cbiAqXG4gKiBBbHNvIHNlZSB3aGF0IGlzIGNvbmZpZ3VyZWQgaW4gdGhlIFNTUiBNYW5hZ2VyIChzc3ItaW5mcmFzdHJ1Y3R1cmUgcmVwbyksXG4gKiBpbiB0aGUgQ2xvdWRGcm9udCBjb25maWd1cmF0aW9uLiBUaGlzIGxpc3QgaXMgYSBzdXBlcnNldCBvZiB0aGF0IGxpc3QsXG4gKiBzaW5jZSB0aGUgcHJveHlpbmcgY29kZSBtdXN0IGFsc28gYWxsb3cgaGVhZGVycyB0aGF0IGl0IGFkZHMsIHN1Y2ggYXNcbiAqIEhvc3QsIE9yaWdpbiwgZXRjLlxuICpcbiAqIFNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRGcm9udC9sYXRlc3QvRGV2ZWxvcGVyR3VpZGUvaGVhZGVyLWNhY2hpbmcuaHRtbFxuICogU2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25DbG91ZEZyb250L2xhdGVzdC9EZXZlbG9wZXJHdWlkZS9Db29raWVzLmh0bWxcbiAqXG4gKiBAcHJpdmF0ZVxuICovXG5leHBvcnQgY29uc3QgQUxMT1dFRF9DQUNISU5HX1BST1hZX1JFUVVFU1RfSEVBREVSUzogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4gPSB7XG4gIC8vIFRoaXMgaXMgdGhlIHNldCBvZiBoZWFkZXJzIGFsbG93ZWQgZm9yIENsb3VkRnJvbnRcbiAgYWNjZXB0OiB0cnVlLFxuICAnYWNjZXB0LWNoYXJzZXQnOiB0cnVlLFxuICAnYWNjZXB0LWVuY29kaW5nJzogdHJ1ZSxcbiAgJ2FjY2VwdC1sYW5ndWFnZSc6IHRydWUsXG4gIGF1dGhvcml6YXRpb246IHRydWUsXG4gIHJhbmdlOiB0cnVlLFxuXG4gIC8vIFRoZXNlIGhlYWRlcnMgbXVzdCBiZSBwcmVzZXJ2ZWQgaW4gdGhlIHJlcXVlc3Qgc28gdGhhdFxuICAvLyBoZWFkZXIgcHJvY2Vzc2luZyB3b3JrcyBjb3JyZWN0bHkuXG4gIGhvc3Q6IHRydWUsXG4gIG9yaWdpbjogdHJ1ZSxcblxuICAvLyBXaGVyZSBDbG91ZEZyb250IGRvZXMgdGhlIHByb3h5aW5nLCB0aGVzZSBoZWFkZXJzIGFyZVxuICAvLyBnZW5lcmF0ZWQgYnkgQ2xvdWRGcm9udCBpdHNlbGYuIFdoZXJlIHRoZSBFeHByZXNzIGFwcFxuICAvLyBkb2VzIGl0LCB3ZSBmb3J3YXJkIHRoZW0uXG4gICdpZi1tYXRjaCc6IHRydWUsXG4gICdpZi1tb2RpZmllZC1zaW5jZSc6IHRydWUsXG4gICdpZi1ub25lLW1hdGNoJzogdHJ1ZSxcbiAgJ2lmLXJhbmdlJzogdHJ1ZSxcbiAgJ2lmLXVubW9kaWZpZWQtc2luY2UnOiB0cnVlLFxufTtcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciByZXdyaXRlUHJveHlSZXF1ZXN0SGVhZGVycyBmdW5jdGlvblxuICovXG5pbnRlcmZhY2UgUmV3cml0ZVByb3h5UmVxdWVzdEhlYWRlcnNQYXJhbXMge1xuICAvKiogdHJ1ZSBmb3IgYSBjYWNoaW5nIHByb3h5LCBmYWxzZSBmb3IgYSBzdGFuZGFyZCBwcm94eSAqL1xuICBjYWNoaW5nPzogYm9vbGVhbjtcbiAgLyoqIHRoZSBoZWFkZXJzIHRvIGJlIHJld3JpdHRlbiAqL1xuICBoZWFkZXJzPzogQVdTSGVhZGVycyB8IEhUVFBIZWFkZXJzIHwgSW5jb21pbmdIdHRwSGVhZGVycztcbiAgLyoqICdhd3MnIG9yICdodHRwJyAtIHRoZSBmb3JtYXQgb2YgdGhlICdoZWFkZXJzJyBwYXJhbWV0ZXIgKi9cbiAgaGVhZGVyRm9ybWF0PzogSGVhZGVyRm9ybWF0O1xuICAvKiogdGhlIHByb3RvY29sIHRvIHVzZSB0byBtYWtlIHJlcXVlc3RzIHRvIHRoZSB0YXJnZXQgKCdodHRwJyBvciAnaHR0cHMnKSAqL1xuICB0YXJnZXRQcm90b2NvbDogc3RyaW5nO1xuICAvKiogdGhlIHRhcmdldCBob3N0bmFtZSAoaG9zdCtwb3J0KSAqL1xuICB0YXJnZXRIb3N0OiBzdHJpbmc7XG4gIC8qKiB0cnVlIHRvIGxvZyBvcGVyYXRpb25zICovXG4gIGxvZ2dpbmc/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFJld3JpdGUgaGVhZGVycyBmb3IgYSByZXF1ZXN0IHRoYXQgaXMgYmVpbmcgcHJveGllZC5cbiAqXG4gKiAxLiBJZiB0aGUgcmVxdWVzdCBjb250YWlucyBhIEhvc3QgaGVhZGVyLCByZXdyaXRlIGl0IHNvIHRoYXQgdGhlXG4gKiB2YWx1ZSBpcyB0aGUgdGFyZ2V0IGhvc3QuXG4gKiAyLiBJZiB0aGUgcmVxdWVzdCBjb250YWlucyBhbiBPcmlnaW4gaGVhZGVyLCByZXdyaXRlIGl0IHNvIHRoYXQgdGhlXG4gKiB2YWx1ZSBpcyB0aGUgdGFyZ2V0IGhvc3QuXG4gKiAzLiBBTEwgb3RoZXIgaGVhZGVyIHZhbHVlcyBhcmUgbGVmdCB1bmNoYW5nZWQuIElmIHRoZXkgYXJlIG11bHRpLXZhbHVlXG4gKiBoZWFkZXJzIHdob3NlIHZhbHVlcyBhcmUgc3RvcmVkIGFzIGFycmF5cywgdGhlIHZhbHVlcyBhcmUgbGVmdCBhcyBhcnJheXMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSBwYXJhbXMgQ29uZmlndXJhdGlvbiBvYmplY3QgZm9yIHJld3JpdGluZyBwcm94eSByZXF1ZXN0IGhlYWRlcnNcbiAqIEByZXR1cm5zIHRoZSBtb2RpZmllZCByZXF1ZXN0IGhlYWRlcnNcbiAqL1xuZXhwb3J0IGNvbnN0IHJld3JpdGVQcm94eVJlcXVlc3RIZWFkZXJzID0gKHtcbiAgY2FjaGluZyA9IGZhbHNlLFxuICBoZWFkZXJzLFxuICBoZWFkZXJGb3JtYXQgPSAnaHR0cCcsXG4gIHRhcmdldFByb3RvY29sLFxuICB0YXJnZXRIb3N0LFxuICBsb2dnaW5nID0gZmFsc2UsXG59OiBSZXdyaXRlUHJveHlSZXF1ZXN0SGVhZGVyc1BhcmFtcyk6IEFXU0hlYWRlcnMgfCBIVFRQSGVhZGVycyB8IEluY29taW5nSHR0cEhlYWRlcnMgPT4ge1xuICBpZiAoIWhlYWRlcnMpIHtcbiAgICByZXR1cm4ge307XG4gIH1cbiAgY29uc3Qgd29ya2luZ0hlYWRlcnMgPSBuZXcgSGVhZGVycyh7Li4uaGVhZGVyc30sIGhlYWRlckZvcm1hdCk7XG5cbiAgLy8gU3RyaXAgb3V0IHNvbWUgc3BlY2lmaWMgWC1oZWFkZXJzXG4gIFhfSEVBREVSU19UT19SRU1PVkVfUFJPWFkuZm9yRWFjaCgoa2V5KSA9PiB3b3JraW5nSGVhZGVycy5kZWxldGVIZWFkZXIoa2V5KSk7XG5cbiAgLy8gRm9yIGEgY2FjaGluZyBwcm94eSwgYXBwbHkgc3BlY2lhbCBoZWFkZXIgcHJvY2Vzc2luZ1xuICBpZiAoY2FjaGluZykge1xuICAgIC8vIFJlbW92ZSBhbnkgaGVhZGVycyB0aGF0IGFyZSBub3Qgb24gdGhlIGFsbG93bGlzdFxuICAgIHdvcmtpbmdIZWFkZXJzLmtleXMoKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgIGlmICghQUxMT1dFRF9DQUNISU5HX1BST1hZX1JFUVVFU1RfSEVBREVSU1trZXldKSB7XG4gICAgICAgIHdvcmtpbmdIZWFkZXJzLmRlbGV0ZUhlYWRlcihrZXkpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gT3ZlcnJpZGUgdXNlci1hZ2VudCAtIG1pbWljIHRoZSBiZWhhdmlvdXIgb2YgQ2xvdWRGcm9udFxuICAgIHdvcmtpbmdIZWFkZXJzLnNldEhlYWRlcihVU0VSX0FHRU5ULCAnQW1hem9uIENsb3VkRnJvbnQnKTtcbiAgfVxuXG4gIC8vIEZpeCB1cCBhbnkgSG9zdCBoZWFkZXIuIFdlIGlnbm9yZSBhbnkgY3VycmVudCB2YWx1ZSBhbmRcbiAgLy8gYWx3YXlzIHJlcGxhY2UgaXQgd2l0aCB0aGUgdGFyZ2V0IGhvc3QuXG4gIC8vIEhvc3Q6IDxob3N0Pjo8cG9ydD5cbiAgY29uc3QgaG9zdEhlYWRlciA9IHdvcmtpbmdIZWFkZXJzLmdldEhlYWRlcihIT1NUKTtcbiAgaWYgKGhvc3RIZWFkZXIgIT09IHRhcmdldEhvc3QpIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChsb2dnaW5nKSB7XG4gICAgICBjb25zb2xlLmxvZyhgUmV3cml0aW5nIHByb3h5IHJlcXVlc3QgSG9zdCBoZWFkZXIgZnJvbSBcIiR7aG9zdEhlYWRlcn1cIiB0byBcIiR7dGFyZ2V0SG9zdH1cImApO1xuICAgIH1cbiAgICB3b3JraW5nSGVhZGVycy5zZXRIZWFkZXIoSE9TVCwgdGFyZ2V0SG9zdCk7XG4gIH1cblxuICAvLyBGaXggdXAgYW55IE9yaWdpbiBoZWFkZXIuIFdlIGlnbm9yZSBhbnkgY3VycmVudCB2YWx1ZSBhbmRcbiAgLy8gYWx3YXlzIHJlcGxhY2UgaXQgd2l0aCB0aGUgdGFyZ2V0T3JpZ2luXG4gIC8vIE9yaWdpbjogPHNjaGVtZT4gXCI6Ly9cIiA8aG9zdG5hbWU+IFsgXCI6XCIgPHBvcnQ+IF1cbiAgY29uc3Qgb3JpZ2luSGVhZGVyID0gd29ya2luZ0hlYWRlcnMuZ2V0SGVhZGVyKE9SSUdJTik7XG4gIGNvbnN0IHRhcmdldE9yaWdpbiA9IGAke3RhcmdldFByb3RvY29sfTovLyR7dGFyZ2V0SG9zdH1gO1xuICBpZiAob3JpZ2luSGVhZGVyICYmIG9yaWdpbkhlYWRlciAhPT0gdGFyZ2V0T3JpZ2luKSB7XG4gICAgd29ya2luZ0hlYWRlcnMuc2V0SGVhZGVyKE9SSUdJTiwgdGFyZ2V0T3JpZ2luKTtcbiAgfVxuXG4gIC8vIFJlcGxhY2Ugc29tZSBoZWFkZXJzIHdpdGggaGFyZHdpcmVkIHZhbHVlc1xuICBpZiAod29ya2luZ0hlYWRlcnMuZ2V0SGVhZGVyKFVTRVJfQUdFTlQpKSB7XG4gICAgLy8gTWltaWMgdGhlIGJlaGF2aW91ciBvZiBDbG91ZEZyb250XG4gICAgd29ya2luZ0hlYWRlcnMuc2V0SGVhZGVyKFVTRVJfQUdFTlQsICdBbWF6b24gQ2xvdWRGcm9udCcpO1xuICB9XG5cbiAgLy8gQWRkIHNvbWUgc3BlY2lmaWMgWC1oZWFkZXJzXG4gIE9iamVjdC5lbnRyaWVzKFhfSEVBREVSU19UT19BREQpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgIHdvcmtpbmdIZWFkZXJzLnNldEhlYWRlcihrZXksIHZhbHVlKTtcbiAgfSk7XG5cbiAgcmV0dXJuIHdvcmtpbmdIZWFkZXJzLnRvT2JqZWN0KCk7XG59O1xuIiwgIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjUsIFNhbGVzZm9yY2UsIEluYy5cbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMlxuICogRm9yIGZ1bGwgbGljZW5zZSB0ZXh0LCBzZWUgdGhlIGxpY2Vuc2UudHh0IGZpbGUgaW4gdGhlIHJlcG8gcm9vdCBvciBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqL1xuXG4vKipcbiAqIEBmaWxlb3ZlcnZpZXcgUHJveHkgY29uZmlndXJhdGlvbiB1dGlsaXRpZXMgZm9yIE1SVCBtaWRkbGV3YXJlLlxuICpcbiAqIFRoaXMgbW9kdWxlIHByb3ZpZGVzIGZ1bmN0aW9ucyBmb3IgY29uZmlndXJpbmcgSFRUUCBwcm94eSBtaWRkbGV3YXJlLFxuICogaW5jbHVkaW5nIHJlcXVlc3QvcmVzcG9uc2UgaGVhZGVyIHJld3JpdGluZyBhbmQgcHJveHkgc2V0dXAgZm9yIGV4dGVybmFsIHNlcnZpY2VzLlxuICogSXQncyBkZXNpZ25lZCB0byB3b3JrIHdpdGggaHR0cC1wcm94eS1taWRkbGV3YXJlIGFuZCBpbnRlZ3JhdGVzIHdpdGggdGhlIFNTUiBwcm94eWluZyB1dGlsaXRpZXMuXG4gKlxuICogQGF1dGhvciBTYWxlc2ZvcmNlIENvbW1lcmNlIENsb3VkXG4gKiBAdmVyc2lvbiAwLjAuMVxuICovXG5cbmltcG9ydCB0eXBlIHtJbmNvbWluZ01lc3NhZ2UsIFNlcnZlclJlc3BvbnNlLCBDbGllbnRSZXF1ZXN0LCBJbmNvbWluZ0h0dHBIZWFkZXJzfSBmcm9tICdodHRwJztcbmltcG9ydCB7cmV3cml0ZVByb3h5UmVxdWVzdEhlYWRlcnMsIHJld3JpdGVQcm94eVJlc3BvbnNlSGVhZGVycywgdHlwZSBIVFRQSGVhZGVyc30gZnJvbSAnLi9zc3ItcHJveHlpbmcuanMnO1xuaW1wb3J0IHtjcmVhdGVQcm94eU1pZGRsZXdhcmUsIHR5cGUgT3B0aW9ucywgdHlwZSBSZXF1ZXN0SGFuZGxlcn0gZnJvbSAnaHR0cC1wcm94eS1taWRkbGV3YXJlJztcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciBhcHBseVByb3h5UmVxdWVzdEhlYWRlcnMgZnVuY3Rpb25cbiAqL1xuaW50ZXJmYWNlIEFwcGx5UHJveHlSZXF1ZXN0SGVhZGVyc1BhcmFtcyB7XG4gIC8qKiBUaGUgcHJveHkgcmVxdWVzdCBvYmplY3QgZnJvbSBodHRwLXByb3h5LW1pZGRsZXdhcmUgKi9cbiAgcHJveHlSZXF1ZXN0OiBDbGllbnRSZXF1ZXN0O1xuICAvKiogVGhlIGluY29taW5nIHJlcXVlc3Qgb2JqZWN0ICovXG4gIGluY29taW5nUmVxdWVzdDogSW5jb21pbmdNZXNzYWdlO1xuICAvKiogV2hldGhlciB0aGlzIGlzIGEgY2FjaGluZyBwcm94eSAqL1xuICBjYWNoaW5nPzogYm9vbGVhbjtcbiAgLyoqIFRoZSBwcm94eSBwYXRoIGJlaW5nIHVzZWQgKi9cbiAgcHJveHlQYXRoOiBzdHJpbmc7XG4gIC8qKiBUaGUgdGFyZ2V0IGhvc3QgdG8gcHJveHkgdG8gKi9cbiAgdGFyZ2V0SG9zdDogc3RyaW5nO1xuICAvKiogVGhlIHByb3RvY29sIHRvIHVzZSBmb3IgdGhlIHRhcmdldCAqL1xuICB0YXJnZXRQcm90b2NvbDogc3RyaW5nO1xuICAvKiogQGludGVybmFsIFRlc3QgaG9vazogb3ZlcnJpZGUgcmV3cml0ZSBmdW5jdGlvbiAqL1xuICByZXdyaXRlUmVxdWVzdEhlYWRlcnM/OiAoXG4gICAgb3B0czogUGFyYW1ldGVyczx0eXBlb2YgcmV3cml0ZVByb3h5UmVxdWVzdEhlYWRlcnM+WzBdLFxuICApID0+IFJldHVyblR5cGU8dHlwZW9mIHJld3JpdGVQcm94eVJlcXVlc3RIZWFkZXJzPjtcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciBjb25maWd1cmVQcm94eSBmdW5jdGlvblxuICovXG5pbnRlcmZhY2UgQ29uZmlndXJlUHJveHlQYXJhbXMge1xuICAvKiogVGhlIGhvc3RuYW1lIHdoZXJlIHRoZSBFeHByZXNzIGFwcCBpcyBydW5uaW5nICovXG4gIGFwcEhvc3RuYW1lOiBzdHJpbmc7XG4gIC8qKiBUaGUgcHJveHkgcGF0aCBwYXR0ZXJuICovXG4gIHByb3h5UGF0aDogc3RyaW5nO1xuICAvKiogVGhlIHByb3RvY29sIHRvIHVzZSBmb3IgdGhlIHRhcmdldCAqL1xuICB0YXJnZXRQcm90b2NvbDogc3RyaW5nO1xuICAvKiogVGhlIHRhcmdldCBob3N0IHRvIHByb3h5IHRvICovXG4gIHRhcmdldEhvc3Q6IHN0cmluZztcbiAgLyoqIFRoZSBwcm90b2NvbCB0byB1c2UgZm9yIHRoZSBhcHAgKGRlZmF1bHRzIHRvIGh0dHBzKSAqL1xuICBhcHBQcm90b2NvbD86IHN0cmluZztcbiAgLyoqIFdoZXRoZXIgdGhpcyBpcyBhIGNhY2hpbmcgcHJveHkgKi9cbiAgY2FjaGluZz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogT3B0aW9uYWwgdGVzdCBob29rOiBwcm92aWRlIGEgY3VzdG9tIGNyZWF0ZVByb3h5TWlkZGxld2FyZSBpbXBsZW1lbnRhdGlvbi5cbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgdHlwZSBDcmVhdGVQcm94eU1pZGRsZXdhcmVGbiA9IChjb25maWc6IE9wdGlvbnM8SW5jb21pbmdNZXNzYWdlLCBTZXJ2ZXJSZXNwb25zZT4pID0+IFJlcXVlc3RIYW5kbGVyO1xuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gb2JqZWN0IGZvciBhIHByb3h5XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJveHlDb25maWcge1xuICAvKiogVGhlIHRhcmdldCBob3N0IFVSTCAqL1xuICBob3N0OiBzdHJpbmc7XG4gIC8qKiBUaGUgcHJveHkgcGF0aCBwYXR0ZXJuICovXG4gIHBhdGg6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXR1cm4gdHlwZSBmb3IgY29uZmlndXJlUHJveHkgZnVuY3Rpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm94eVJlc3VsdCB7XG4gIC8qKiBUaGUgcHJveHkgbWlkZGxld2FyZSBmdW5jdGlvbiAqL1xuICBmbjogUmVxdWVzdEhhbmRsZXI7XG4gIC8qKiBUaGUgcHJveHkgcGF0aCBwYXR0ZXJuICovXG4gIHBhdGg6IHN0cmluZztcbn1cblxuY29uc3Qgc3RyaXBQcm94eVBhdGhSRSA9IC9eXFwvbW9iaWZ5XFwvKHByb3h5fGNhY2hpbmcpXFwvKFteL10rKS87XG5cbi8qKlxuICogQXBwbGllcyBwcm94eSByZXF1ZXN0IGhlYWRlcnMgYnkgcmV3cml0aW5nIGFuZCBjb3B5aW5nIGhlYWRlcnMgZnJvbSB0aGUgaW5jb21pbmcgcmVxdWVzdFxuICogdG8gdGhlIHByb3h5IHJlcXVlc3QgdXNpbmcgdGhlIFNTUiBwcm94eWluZyB1dGlsaXRpZXMuXG4gKlxuICogVGhpcyBmdW5jdGlvbiBoYW5kbGVzIGhlYWRlciB0cmFuc2Zvcm1hdGlvbiwgYWRkaXRpb24sIGFuZCByZW1vdmFsIGZvciBwcm94eSByZXF1ZXN0cyxcbiAqIGVuc3VyaW5nIHRoYXQgdGhlIHByb3hpZWQgcmVxdWVzdCBoYXMgdGhlIGNvcnJlY3QgaGVhZGVycyBmb3IgdGhlIHRhcmdldCBzZXJ2aWNlLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBQYXJhbWV0ZXJzIGZvciBhcHBseWluZyBwcm94eSByZXF1ZXN0IGhlYWRlcnNcbiAqIEBwYXJhbSBwYXJhbXMucHJveHlSZXF1ZXN0IC0gVGhlIHByb3h5IHJlcXVlc3Qgb2JqZWN0IGZyb20gaHR0cC1wcm94eS1taWRkbGV3YXJlXG4gKiBAcGFyYW0gcGFyYW1zLmluY29taW5nUmVxdWVzdCAtIFRoZSBpbmNvbWluZyByZXF1ZXN0IG9iamVjdFxuICogQHBhcmFtIHBhcmFtcy5jYWNoaW5nIC0gV2hldGhlciB0aGlzIGlzIGEgY2FjaGluZyBwcm94eSAoZGVmYXVsdHMgdG8gZmFsc2UpXG4gKiBAcGFyYW0gcGFyYW1zLnByb3h5UGF0aCAtIFRoZSBwcm94eSBwYXRoIGJlaW5nIHVzZWRcbiAqIEBwYXJhbSBwYXJhbXMudGFyZ2V0SG9zdCAtIFRoZSB0YXJnZXQgaG9zdCB0byBwcm94eSB0b1xuICogQHBhcmFtIHBhcmFtcy50YXJnZXRQcm90b2NvbCAtIFRoZSBwcm90b2NvbCB0byB1c2UgZm9yIHRoZSB0YXJnZXRcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogYXBwbHlQcm94eVJlcXVlc3RIZWFkZXJzKHtcbiAqICAgcHJveHlSZXF1ZXN0OiBjbGllbnRSZXF1ZXN0LFxuICogICBpbmNvbWluZ1JlcXVlc3Q6IGluY29taW5nTWVzc2FnZSxcbiAqICAgY2FjaGluZzogZmFsc2UsXG4gKiAgIHByb3h5UGF0aDogJ2FwaScsXG4gKiAgIHRhcmdldEhvc3Q6ICdhcGkuZXhhbXBsZS5jb20nLFxuICogICB0YXJnZXRQcm90b2NvbDogJ2h0dHBzJ1xuICogfSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNvbnN0IGFwcGx5UHJveHlSZXF1ZXN0SGVhZGVycyA9ICh7XG4gIHByb3h5UmVxdWVzdCxcbiAgaW5jb21pbmdSZXF1ZXN0LFxuICBjYWNoaW5nID0gZmFsc2UsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgcHJveHlQYXRoLFxuICB0YXJnZXRIb3N0LFxuICB0YXJnZXRQcm90b2NvbCxcbiAgcmV3cml0ZVJlcXVlc3RIZWFkZXJzOiByZXdyaXRlRm4sXG59OiBBcHBseVByb3h5UmVxdWVzdEhlYWRlcnNQYXJhbXMpOiB2b2lkID0+IHtcbiAgY29uc3QgaGVhZGVycyA9IGluY29taW5nUmVxdWVzdC5oZWFkZXJzO1xuXG4gIGNvbnN0IHJld3JpdGUgPSByZXdyaXRlRm4gPz8gcmV3cml0ZVByb3h5UmVxdWVzdEhlYWRlcnM7XG4gIGNvbnN0IG5ld0hlYWRlcnMgPSByZXdyaXRlKHtcbiAgICBjYWNoaW5nLFxuICAgIGhlYWRlcnM6IGhlYWRlcnMgYXMgSFRUUEhlYWRlcnMsXG4gICAgaGVhZGVyRm9ybWF0OiAnaHR0cCcsXG4gICAgdGFyZ2V0SG9zdCxcbiAgICB0YXJnZXRQcm90b2NvbCxcbiAgfSk7XG5cbiAgLy8gQ29weSBhbnkgbmV3IGFuZCB1cGRhdGVkIGhlYWRlcnMgdG8gdGhlIHByb3h5UmVxdWVzdFxuICAvLyB1c2luZyBzZXRIZWFkZXIuXG4gIE9iamVjdC5lbnRyaWVzKG5ld0hlYWRlcnMpLmZvckVhY2goXG4gICAgLy8gc2V0SGVhZGVyIGFsd2F5cyByZXBsYWNlcyBhbnkgY3VycmVudCB2YWx1ZS5cbiAgICAoW2tleSwgdmFsdWVdKSA9PiBwcm94eVJlcXVlc3Quc2V0SGVhZGVyKGtleSwgdmFsdWUgYXMgc3RyaW5nIHwgbnVtYmVyIHwgcmVhZG9ubHkgc3RyaW5nW10pLFxuICApO1xuXG4gIC8vIEhhbmRsZSBkZWxldGlvbiBvZiBoZWFkZXJzLlxuICAvLyBJdGVyYXRlIG92ZXIgdGhlIGtleXMgb2YgaW5jb21pbmdSZXF1ZXN0LmhlYWRlcnMgLSBmb3IgZXZlcnlcbiAgLy8ga2V5LCBpZiB0aGUgdmFsdWUgaXMgbm90IHByZXNlbnQgaW4gbmV3SGVhZGVycywgd2UgcmVtb3ZlXG4gIC8vIHRoYXQgdmFsdWUgZnJvbSBwcm94eVJlcXVlc3QncyBoZWFkZXJzLlxuICBPYmplY3Qua2V5cyhoZWFkZXJzKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAvLyBXZSBkZWxldGUgdGhlIGhlYWRlciBvbiBhbnkgZmFsc3kgdmFsdWUsIHNpbmNlXG4gICAgLy8gdGhlcmUncyBubyB1c2UgY2FzZSB3aGVyZSB3ZSBzdXBwbHkgYW4gZW1wdHkgaGVhZGVyXG4gICAgLy8gdmFsdWUuXG4gICAgaWYgKCFuZXdIZWFkZXJzW2tleV0pIHtcbiAgICAgIHByb3h5UmVxdWVzdC5yZW1vdmVIZWFkZXIoa2V5KTtcbiAgICB9XG4gIH0pO1xufTtcblxuLyoqXG4gKiBDb25maWd1cmVzIGEgc2luZ2xlIHByb3h5IG1pZGRsZXdhcmUgd2l0aCB0aGUgc3BlY2lmaWVkIHBhcmFtZXRlcnMuXG4gKlxuICogVGhpcyBmdW5jdGlvbiBjcmVhdGVzIGEgY29tcGxldGUgcHJveHkgY29uZmlndXJhdGlvbiBpbmNsdWRpbmcgcmVxdWVzdC9yZXNwb25zZVxuICogaGVhZGVyIHJld3JpdGluZywgZXJyb3IgaGFuZGxpbmcsIGFuZCBjb29raWUgZG9tYWluIHJld3JpdGluZy4gVGhlIGNvbmZpZ3VyYXRpb25cbiAqIGlzIGRlc2lnbmVkIHRvIG1hdGNoIENsb3VkRnJvbnQgYmVoYXZpb3IgZm9yIGNvbnNpc3RlbmN5IGJldHdlZW4gbG9jYWwgZGV2ZWxvcG1lbnRcbiAqIGFuZCBwcm9kdWN0aW9uIGVudmlyb25tZW50cy5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gQ29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzIGZvciB0aGUgcHJveHlcbiAqIEBwYXJhbSBwYXJhbXMuYXBwSG9zdG5hbWUgLSBUaGUgaG9zdG5hbWUgd2hlcmUgdGhlIEV4cHJlc3MgYXBwIGlzIHJ1bm5pbmdcbiAqIEBwYXJhbSBwYXJhbXMucHJveHlQYXRoIC0gVGhlIHByb3h5IHBhdGggcGF0dGVyblxuICogQHBhcmFtIHBhcmFtcy50YXJnZXRQcm90b2NvbCAtIFRoZSBwcm90b2NvbCB0byB1c2UgZm9yIHRoZSB0YXJnZXRcbiAqIEBwYXJhbSBwYXJhbXMudGFyZ2V0SG9zdCAtIFRoZSB0YXJnZXQgaG9zdCB0byBwcm94eSB0b1xuICogQHBhcmFtIHBhcmFtcy5hcHBQcm90b2NvbCAtIFRoZSBwcm90b2NvbCB0byB1c2UgZm9yIHRoZSBhcHAgKGRlZmF1bHRzIHRvICdodHRwcycpXG4gKiBAcGFyYW0gcGFyYW1zLmNhY2hpbmcgLSBXaGV0aGVyIHRoaXMgaXMgYSBjYWNoaW5nIHByb3h5XG4gKiBAcmV0dXJucyBQcm94eSByZXN1bHQgY29udGFpbmluZyB0aGUgbWlkZGxld2FyZSBmdW5jdGlvbiBhbmQgcGF0aFxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBwcm94eSA9IGNvbmZpZ3VyZVByb3h5KHtcbiAqICAgYXBwSG9zdG5hbWU6ICdsb2NhbGhvc3Q6MzAwMCcsXG4gKiAgIHByb3h5UGF0aDogJ2FwaScsXG4gKiAgIHRhcmdldFByb3RvY29sOiAnaHR0cHMnLFxuICogICB0YXJnZXRIb3N0OiAnYXBpLmV4YW1wbGUuY29tJyxcbiAqICAgYXBwUHJvdG9jb2w6ICdodHRwcycsXG4gKiAgIGNhY2hpbmc6IGZhbHNlXG4gKiB9KTtcbiAqXG4gKiBhcHAudXNlKGAvbW9iaWZ5L3Byb3h5LyR7cHJveHkucGF0aH1gLCBwcm94eS5mbik7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNvbnN0IGNvbmZpZ3VyZVByb3h5ID0gKFxuICB7XG4gICAgYXBwSG9zdG5hbWUsXG4gICAgcHJveHlQYXRoLFxuICAgIHRhcmdldFByb3RvY29sLFxuICAgIHRhcmdldEhvc3QsXG4gICAgYXBwUHJvdG9jb2wgPSAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqLyAnaHR0cHMnLFxuICAgIGNhY2hpbmcsXG4gIH06IENvbmZpZ3VyZVByb3h5UGFyYW1zLFxuICBjcmVhdGVQcm94eUZuPzogQ3JlYXRlUHJveHlNaWRkbGV3YXJlRm4sXG4pOiBQcm94eVJlc3VsdCA9PiB7XG4gIGNvbnN0IGNyZWF0ZVByb3h5ID0gY3JlYXRlUHJveHlGbiA/PyBjcmVhdGVQcm94eU1pZGRsZXdhcmU7XG4gIC8vIFRoaXMgY29uZmlndXJhdGlvbiBtdXN0IG1hdGNoIHRoZSBiZWhhdmlvdXIgb2YgdGhlIHByb3h5aW5nXG4gIC8vIGluIENsb3VkRnJvbnQuXG4gIGNvbnN0IHRhcmdldE9yaWdpbiA9IGAke3RhcmdldFByb3RvY29sfTovLyR7dGFyZ2V0SG9zdH1gO1xuICBjb25zdCBjb25maWcgPSB7XG4gICAgLy8gVGhlIG5hbWUgb2YgdGhlIGNoYW5nZU9yaWdpbiBvcHRpb24gaXMgbWlzbGVhZGluZyAtIGl0IGNvbmZpZ3VyZXNcbiAgICAvLyB0aGUgcHJveHlpbmcgY29kZSBpbiBodHRwLXByb3h5IHRvIHJld3JpdGUgdGhlIEhvc3QgaGVhZGVyIChub3RcbiAgICAvLyBhbnkgT3JpZ2luIGhlYWRlcikgb2YgdGhlIG91dGdvaW5nIHJlcXVlc3QuIFRoZSBIb3N0IGhlYWRlciBpc1xuICAgIC8vIGFsc28gZml4ZWQgdXAgaW4gcmV3cml0ZVByb3h5UmVxdWVzdEhlYWRlcnMsIGJ1dCB0aGF0XG4gICAgLy8gZG9lc24ndCB3b3JrIGNvcnJlY3RseSB3aXRoIGh0dHAtcHJveHksIGJlY2F1c2UgdGhlIGh0dHBzXG4gICAgLy8gY29ubmVjdGlvbiB0byB0aGUgdGFyZ2V0IGlzIG1hZGUgKmJlZm9yZSogdGhlIHJlcXVlc3QgaGVhZGVyc1xuICAgIC8vIGFyZSBtb2RpZmllZCBieSB0aGUgb25Qcm94eVJlcSBldmVudCBoYW5kbGVyLiBTbyB3ZSBzZXQgdGhpc1xuICAgIC8vIGZsYWcgdHJ1ZSB0byBnZXQgY29ycmVjdCBiZWhhdmlvdXIuXG4gICAgY2hhbmdlT3JpZ2luOiB0cnVlLFxuXG4gICAgLy8gUmV3cml0ZSB0aGUgZG9tYWluIGluIHNldC1jb29raWUgaGVhZGVycyBpbiByZXNwb25zZXMsIGlmIGl0XG4gICAgLy8gbWF0Y2hlcyB0aGUgdGFyZ2V0SG9zdC5cbiAgICBjb29raWVEb21haW5SZXdyaXRlOiB7XG4gICAgICB0YXJnZXRIb3N0OiBhcHBIb3N0bmFtZSxcbiAgICB9LFxuXG4gICAgLy8gV2UgZG9uJ3QgZG8gY29va2llICpwYXRoKiByZXdyaXRpbmcgLSBpdCdzIGNvbXBsZXguXG4gICAgY29va2llUGF0aFJld3JpdGU6IGZhbHNlLFxuXG4gICAgLy8gTmVpdGhlciBDbG91ZEZyb250IG5vciB0aGUgbG9jYWwgRXhwcmVzcyBhcHAgd2lsbCBmb2xsb3cgcmVkaXJlY3RcbiAgICAvLyByZXNwb25zZXMgdG8gcHJveHkgcmVxdWVzdHMuIFRoZSByZXNwb25zZXMgYXJlIHJldHVybmVkIHRvIHRoZVxuICAgIC8vIGNsaWVudC5cbiAgICBmb2xsb3dSZWRpcmVjdHM6IGZhbHNlLFxuXG4gICAgb25FcnJvcjogKGVycjogRXJyb3IsIHJlcTogSW5jb21pbmdNZXNzYWdlLCByZXM6IFNlcnZlclJlc3BvbnNlKSA9PiB7XG4gICAgICByZXMud3JpdGVIZWFkKDUwMCwge1xuICAgICAgICAnQ29udGVudC1UeXBlJzogJ3RleHQvcGxhaW4nLFxuICAgICAgfSk7XG4gICAgICByZXMuZW5kKGBFcnJvciBpbiBwcm94eSByZXF1ZXN0IHRvICR7cmVxLnVybH06ICR7ZXJyfWApO1xuICAgIH0sXG5cbiAgICBvblByb3h5UmVxOiAocHJveHlSZXF1ZXN0OiBDbGllbnRSZXF1ZXN0LCBpbmNvbWluZ1JlcXVlc3Q6IEluY29taW5nTWVzc2FnZSkgPT4ge1xuICAgICAgYXBwbHlQcm94eVJlcXVlc3RIZWFkZXJzKHtcbiAgICAgICAgcHJveHlSZXF1ZXN0LFxuICAgICAgICBpbmNvbWluZ1JlcXVlc3QsXG4gICAgICAgIGNhY2hpbmcsXG4gICAgICAgIHByb3h5UGF0aCxcbiAgICAgICAgdGFyZ2V0SG9zdCxcbiAgICAgICAgdGFyZ2V0UHJvdG9jb2wsXG4gICAgICB9KTtcbiAgICB9LFxuXG4gICAgb25Qcm94eVJlczogKHByb3h5UmVzcG9uc2U6IEluY29taW5nTWVzc2FnZSwgcmVxOiBJbmNvbWluZ01lc3NhZ2UpID0+IHtcbiAgICAgIGNvbnN0IHJlcXVlc3RVcmwgPSByZXEudXJsPy5yZXBsYWNlKHN0cmlwUHJveHlQYXRoUkUsICcnKTtcblxuICAgICAgLy8gUmV3cml0ZSBrZXkgaGVhZGVyc1xuICAgICAgcHJveHlSZXNwb25zZS5oZWFkZXJzID0gcmV3cml0ZVByb3h5UmVzcG9uc2VIZWFkZXJzKHtcbiAgICAgICAgYXBwSG9zdG5hbWUsXG4gICAgICAgIGNhY2hpbmc6ICEhY2FjaGluZyxcbiAgICAgICAgdGFyZ2V0SG9zdCxcbiAgICAgICAgdGFyZ2V0UHJvdG9jb2wsXG4gICAgICAgIGFwcFByb3RvY29sLFxuICAgICAgICBwcm94eVBhdGgsXG4gICAgICAgIHN0YXR1c0NvZGU6IHByb3h5UmVzcG9uc2Uuc3RhdHVzQ29kZSxcbiAgICAgICAgaGVhZGVyczogcHJveHlSZXNwb25zZS5oZWFkZXJzLFxuICAgICAgICBoZWFkZXJGb3JtYXQ6ICdodHRwJyxcbiAgICAgICAgcmVxdWVzdFVybCxcbiAgICAgIH0pIGFzIEluY29taW5nSHR0cEhlYWRlcnM7XG4gICAgfSxcblxuICAgIC8vIFRoZSBvcmlnaW4gKHByb3RvY29sICsgaG9zdCkgdG8gd2hpY2ggd2UgcHJveHlcbiAgICB0YXJnZXQ6IHRhcmdldE9yaWdpbixcbiAgfTtcblxuICBjb25zdCBwcm94eUZ1bmMgPSBjcmVhdGVQcm94eShjb25maWcgYXMgT3B0aW9uczxJbmNvbWluZ01lc3NhZ2UsIFNlcnZlclJlc3BvbnNlPik7XG4gIHJldHVybiB7Zm46IHByb3h5RnVuYywgcGF0aDogcHJveHlQYXRofTtcbn07XG5cbi8qKlxuICogQ29uZmlndXJlcyBtdWx0aXBsZSBwcm94eSBtaWRkbGV3YXJlcyBmcm9tIGFuIGFycmF5IG9mIHByb3h5IGNvbmZpZ3VyYXRpb25zLlxuICpcbiAqIFRoaXMgZnVuY3Rpb24gcHJvY2Vzc2VzIGFuIGFycmF5IG9mIHByb3h5IGNvbmZpZ3VyYXRpb25zIGFuZCBjcmVhdGVzIGNvcnJlc3BvbmRpbmdcbiAqIHByb3h5IG1pZGRsZXdhcmUgZnVuY3Rpb25zIGZvciBlYWNoIG9uZS4gSXQgYXV0b21hdGljYWxseSBkZXRlcm1pbmVzIHRoZSB0YXJnZXRcbiAqIHByb3RvY29sIGZyb20gdGhlIGhvc3QgVVJMIGFuZCBjcmVhdGVzIG5vbi1jYWNoaW5nIHByb3hpZXMgYnkgZGVmYXVsdC5cbiAqXG4gKiBAcGFyYW0gcHJveHlDb25maWdzIC0gQXJyYXkgb2YgcHJveHkgY29uZmlndXJhdGlvbnNcbiAqIEBwYXJhbSBhcHBIb3N0bmFtZSAtIFRoZSBob3N0bmFtZSB3aGVyZSB0aGUgRXhwcmVzcyBhcHAgaXMgcnVubmluZ1xuICogQHBhcmFtIGFwcFByb3RvY29sIC0gVGhlIHByb3RvY29sIHRvIHVzZSBmb3IgdGhlIGFwcCAoZGVmYXVsdHMgdG8gJ2h0dHBzJylcbiAqIEByZXR1cm5zIEFycmF5IG9mIHByb3h5IHJlc3VsdHMgY29udGFpbmluZyBtaWRkbGV3YXJlIGZ1bmN0aW9ucyBhbmQgcGF0aHNcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgcHJveHlDb25maWdzID0gW1xuICogICB7IGhvc3Q6ICdodHRwczovL2FwaS5leGFtcGxlLmNvbScsIHBhdGg6ICdhcGknIH0sXG4gKiAgIHsgaG9zdDogJ2h0dHA6Ly9pbnRlcm5hbC5zZXJ2aWNlLmNvbScsIHBhdGg6ICdpbnRlcm5hbCcgfVxuICogXTtcbiAqXG4gKiBjb25zdCBwcm94aWVzID0gY29uZmlndXJlUHJveHlpbmcocHJveHlDb25maWdzLCAnbG9jYWxob3N0OjMwMDAnLCAnaHR0cHMnKTtcbiAqXG4gKiBwcm94aWVzLmZvckVhY2goKHsgZm4sIHBhdGggfSkgPT4ge1xuICogICBhcHAudXNlKGAvbW9iaWZ5L3Byb3h5LyR7cGF0aH1gLCBmbik7XG4gKiB9KTtcbiAqIGBgYFxuICovXG5leHBvcnQgY29uc3QgY29uZmlndXJlUHJveHlpbmcgPSAoXG4gIHByb3h5Q29uZmlnczogUHJveHlDb25maWdbXSxcbiAgYXBwSG9zdG5hbWU6IHN0cmluZyxcbiAgYXBwUHJvdG9jb2w6IHN0cmluZyA9ICdodHRwcycsXG4gIGNyZWF0ZVByb3h5Rm4/OiBDcmVhdGVQcm94eU1pZGRsZXdhcmVGbixcbik6IFByb3h5UmVzdWx0W10gPT4ge1xuICBjb25zdCBwcm94aWVzOiBQcm94eVJlc3VsdFtdID0gW107XG4gIHByb3h5Q29uZmlncy5mb3JFYWNoKChjb25maWcpID0+IHtcbiAgICBjb25zdCB0YXJnZXRQcm90b2NvbCA9IGNvbmZpZy5ob3N0LnN0YXJ0c1dpdGgoJ2h0dHBzOi8vJykgPyAnaHR0cHMnIDogJ2h0dHAnO1xuICAgIGNvbnN0IHRhcmdldEhvc3QgPSBjb25maWcuaG9zdC5yZXBsYWNlKGAke3RhcmdldFByb3RvY29sfTovL2AsICcnKTtcbiAgICBjb25zdCBwcm94eSA9IGNvbmZpZ3VyZVByb3h5KFxuICAgICAge1xuICAgICAgICBwcm94eVBhdGg6IGNvbmZpZy5wYXRoLFxuICAgICAgICB0YXJnZXRQcm90b2NvbCxcbiAgICAgICAgdGFyZ2V0SG9zdCxcbiAgICAgICAgYXBwUHJvdG9jb2wsXG4gICAgICAgIGFwcEhvc3RuYW1lLFxuICAgICAgICBjYWNoaW5nOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgICBjcmVhdGVQcm94eUZuLFxuICAgICk7XG4gICAgcHJveGllcy5wdXNoKHByb3h5KTtcbiAgfSk7XG4gIHJldHVybiBwcm94aWVzO1xufTtcbiIsICIvKlxuICogQ29weXJpZ2h0IChjKSAyMDI1LCBTYWxlc2ZvcmNlLCBJbmMuXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTJcbiAqIEZvciBmdWxsIGxpY2Vuc2UgdGV4dCwgc2VlIHRoZSBsaWNlbnNlLnR4dCBmaWxlIGluIHRoZSByZXBvIHJvb3Qgb3IgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKi9cblxuLyoqXG4gKiBAZmlsZW92ZXJ2aWV3IE1SVCAoTWFuYWdlZCBSdW50aW1lKSBNaWRkbGV3YXJlIGZvciBFeHByZXNzLmpzIGFwcGxpY2F0aW9ucy5cbiAqXG4gKiBUaGlzIG1vZHVsZSBwcm92aWRlcyBtaWRkbGV3YXJlIGZ1bmN0aW9ucyBmb3IgaGFuZGxpbmcgcmVxdWVzdHMgaW4gYSBtYW5hZ2VkIHJ1bnRpbWUgZW52aXJvbm1lbnQsXG4gKiBpbmNsdWRpbmcgcmVxdWVzdCBwcm9jZXNzaW5nLCBwcm94eSBjb25maWd1cmF0aW9uLCBzdGF0aWMgYXNzZXQgc2VydmluZywgYW5kIGxvY2FsIGRldmVsb3BtZW50XG4gKiB1dGlsaXRpZXMuIEl0J3MgZGVzaWduZWQgdG8gd29yayB3aXRoIFNhbGVzZm9yY2UgQ29tbWVyY2UgQ2xvdWQncyBtYW5hZ2VkIHJ1bnRpbWUgcGxhdGZvcm0uXG4gKlxuICogQGF1dGhvciBTYWxlc2ZvcmNlIENvbW1lcmNlIENsb3VkXG4gKiBAdmVyc2lvbiAwLjAuMVxuICovXG5cbmltcG9ydCB7SGVhZGVyc30gZnJvbSAnLi4vdXRpbHMvc3NyLXByb3h5aW5nLmpzJztcbmltcG9ydCB7XG4gIGNvbmZpZ3VyZVByb3h5aW5nLFxuICB0eXBlIFByb3h5UmVzdWx0LFxuICB0eXBlIFByb3h5Q29uZmlnLFxuICB0eXBlIENyZWF0ZVByb3h5TWlkZGxld2FyZUZuLFxufSBmcm9tICcuLi91dGlscy9jb25maWd1cmUtcHJveHlpbmcuanMnO1xuaW1wb3J0IGV4cHJlc3MsIHt0eXBlIFJlcXVlc3RIYW5kbGVyLCB0eXBlIFJlcXVlc3QsIHR5cGUgUmVzcG9uc2UsIHR5cGUgTmV4dEZ1bmN0aW9ufSBmcm9tICdleHByZXNzJztcbmltcG9ydCBmcyBmcm9tICdmcyc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCBtaW1lVHlwZXMgZnJvbSAnbWltZS10eXBlcyc7XG5pbXBvcnQgcXMgZnJvbSAncXMnO1xuXG5jb25zdCBNT0JJRllfUEFUSCA9ICcvbW9iaWZ5JztcbmNvbnN0IFBST1hZX1BBVEhfQkFTRSA9IGAke01PQklGWV9QQVRIfS9wcm94eWA7XG5jb25zdCBDQUNISU5HX1BBVEhfQkFTRSA9IGAke01PQklGWV9QQVRIfS9jYWNoaW5nYDtcbmNvbnN0IEJVTkRMRV9QQVRIX0JBU0UgPSBgJHtNT0JJRllfUEFUSH0vYnVuZGxlYDtcbmNvbnN0IHByb3h5QmFzZVBhdGggPSBQUk9YWV9QQVRIX0JBU0U7XG5jb25zdCBidW5kbGVCYXNlUGF0aCA9IEJVTkRMRV9QQVRIX0JBU0U7XG5jb25zdCBYX0hFQURFUlNfVE9fUkVNT1ZFX09SSUdJTiA9IFtcbiAgJ3gtYXBpLWtleScsXG4gICd4LWFwaWdhdGV3YXktZXZlbnQnLFxuICAneC1hcGlnYXRld2F5LWNvbnRleHQnLFxuICAneC1tb2JpZnktYWNjZXNzLWtleScsXG4gICd4LXNmZGMtYWNjZXNzLWNvbnRyb2wnLFxuXTtcbmV4cG9ydCBjb25zdCBYX01PQklGWV9SRVFVRVNUX0NMQVNTID0gJ3gtbW9iaWZ5LXJlcXVlc3QtY2xhc3MnO1xuZXhwb3J0IGNvbnN0IFhfTU9CSUZZX1FVRVJZU1RSSU5HID0gJ3gtbW9iaWZ5LXF1ZXJ5c3RyaW5nJztcbmV4cG9ydCBjb25zdCBYX01PQklGWV9SRVFVRVNUX1BST0NFU1NPUl9MT0NBTCA9ICd4LW1vYmlmeS1ycC1sb2NhbCc7XG5jb25zdCBDT05URU5UX1RZUEUgPSAnY29udGVudC10eXBlJztcbmNvbnN0IE5PX0NBQ0hFID0gJ21heC1hZ2U9MCwgbm9jYWNoZSwgbm9zdG9yZSwgbXVzdC1yZXZhbGlkYXRlJztcblxuLyoqXG4gKiBDaGVja3MgaWYgYSBVUkwgaXMgZm9yIGEgYnVuZGxlIG9yIHByb3h5IHBhdGggdGhhdCBzaG91bGQgYmUgc2tpcHBlZCBieSByZXF1ZXN0IHByb2Nlc3NpbmcuXG4gKlxuICogQHBhcmFtIHVybCAtIFRoZSBVUkwgdG8gY2hlY2tcbiAqIEByZXR1cm5zIFRydWUgaWYgdGhlIFVSTCBzdGFydHMgd2l0aCBhIHByb3h5IG9yIGJ1bmRsZSBiYXNlIHBhdGhcbiAqIEBwcml2YXRlXG4gKi9cbmNvbnN0IF9pc0J1bmRsZU9yUHJveHlQYXRoID0gKHVybDogc3RyaW5nKSA9PiB7XG4gIHJldHVybiB1cmwuc3RhcnRzV2l0aChwcm94eUJhc2VQYXRoKSB8fCB1cmwuc3RhcnRzV2l0aChidW5kbGVCYXNlUGF0aCk7XG59O1xuXG4vKipcbiAqIER5bmFtaWNhbGx5IGltcG9ydHMgYSByZXF1ZXN0IHByb2Nlc3NvciBtb2R1bGUgaWYgaXQgZXhpc3RzLlxuICpcbiAqIEBwYXJhbSByZXF1ZXN0UHJvY2Vzc29yUGF0aCAtIFRoZSBmaWxlIHBhdGggdG8gdGhlIHJlcXVlc3QgcHJvY2Vzc29yIG1vZHVsZVxuICogQHJldHVybnMgVGhlIGRlZmF1bHQgZXhwb3J0IG9mIHRoZSBtb2R1bGUsIG9yIG51bGwgaWYgdGhlIGZpbGUgZG9lc24ndCBleGlzdFxuICogQHByaXZhdGVcbiAqL1xuY29uc3QgX2dldFJlcXVlc3RQcm9jZXNzb3IgPSBhc3luYyAocmVxdWVzdFByb2Nlc3NvclBhdGg6IHN0cmluZyB8IHVuZGVmaW5lZCkgPT4ge1xuICBpZiAocmVxdWVzdFByb2Nlc3NvclBhdGggJiYgZnMuZXhpc3RzU3luYyhyZXF1ZXN0UHJvY2Vzc29yUGF0aCkpIHtcbiAgICBjb25zdCBtb2R1bGUgPSBhd2FpdCBpbXBvcnQocmVxdWVzdFByb2Nlc3NvclBhdGgpO1xuICAgIHJldHVybiBtb2R1bGU7XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59O1xuXG4vKipcbiAqIFJldHJpZXZlcyByZXF1ZXN0IHByb2Nlc3NvciBwYXJhbWV0ZXJzIGZyb20gZW52aXJvbm1lbnQgdmFyaWFibGVzIHdpdGggZGVmYXVsdHMuXG4gKlxuICogVGhpcyBmdW5jdGlvbiByZWFkcyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdG8gZGV0ZXJtaW5lIHRoZSBhcHBsaWNhdGlvbiBob3N0bmFtZSxcbiAqIGRlcGxveW1lbnQgdGFyZ2V0LCBhbmQgZW52aXJvbm1lbnQuIEl0IHByb3ZpZGVzIHNlbnNpYmxlIGRlZmF1bHRzIGZvciBsb2NhbCBkZXZlbG9wbWVudC5cbiAqXG4gKiBAcmV0dXJucyBPYmplY3QgY29udGFpbmluZyBhcHBIb3N0bmFtZSwgZGVwbG95VGFyZ2V0LCBhbmQgZW52aXJvbm1lbnRcbiAqIEBwcml2YXRlXG4gKi9cbmNvbnN0IGdldFJlcXVlc3RQcm9jZXNzb3JQYXJhbWV0ZXJzID0gKCk6IHthcHBIb3N0bmFtZTogc3RyaW5nOyBkZXBsb3lUYXJnZXQ6IHN0cmluZzsgZW52aXJvbm1lbnQ6IHN0cmluZ30gPT4ge1xuICByZXR1cm4ge1xuICAgIGFwcEhvc3RuYW1lOiBwcm9jZXNzLmVudi5FWFRFUk5BTF9ET01BSU5fTkFNRSB8fCAnbG9jYWxob3N0OjI0MDEnLFxuICAgIGRlcGxveVRhcmdldDogcHJvY2Vzcy5lbnYuREVQTE9ZX1RBUkdFVCB8fCAnbG9jYWwtdGFyZ2V0JyxcbiAgICBlbnZpcm9ubWVudDogcHJvY2Vzcy5lbnYuRU5WSVJPTk1FTlQgfHwgJ2RldmVsb3BtZW50JyxcbiAgfTtcbn07XG5cbi8qKlxuICogVXBkYXRlcyB0aGUgcmVxdWVzdCdzIHBhdGggYW5kIHF1ZXJ5c3RyaW5nLCBhbmQgcGFyc2VzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzLlxuICpcbiAqIFRoaXMgZnVuY3Rpb24gdXBkYXRlcyB0aGUgRXhwcmVzcyByZXF1ZXN0IG9iamVjdCdzIG9yaWdpbmFsVXJsIGFuZCBxdWVyeSBwcm9wZXJ0aWVzLlxuICogSXQgaGFuZGxlcyBib3RoIGNhc2VzIHdoZXJlIGEgcXVlcnlzdHJpbmcgaXMgcHJlc2VudCBhbmQgd2hlcmUgaXQncyBub3QuIEZvciBFeHByZXNzIDVcbiAqIGNvbXBhdGliaWxpdHksIGl0IHVzZXMgT2JqZWN0LmRlZmluZVByb3BlcnR5IHRvIHVwZGF0ZSB0aGUgcXVlcnkgb2JqZWN0IHNpbmNlIGRpcmVjdFxuICogbW9kaWZpY2F0aW9uIGlzIG5vIGxvbmdlciBhbGxvd2VkLlxuICpcbiAqIEBwYXJhbSByZXEgLSBFeHByZXNzIHJlcXVlc3Qgb2JqZWN0IHRvIHVwZGF0ZVxuICogQHBhcmFtIHVwZGF0ZWRQYXRoIC0gVGhlIG5ldyBwYXRoIHRvIHNldFxuICogQHBhcmFtIHVwZGF0ZWRRdWVyeXN0cmluZyAtIFRoZSBuZXcgcXVlcnlzdHJpbmcgKG9wdGlvbmFsLCBpZiB1bmRlZmluZWQgdGhlIHF1ZXJ5c3RyaW5nIGlzIHJlbW92ZWQpXG4gKiBAcHJpdmF0ZVxuICovXG5jb25zdCB1cGRhdGVQYXRoQW5kUXVlcnlTdHJpbmcgPSAocmVxOiBSZXF1ZXN0LCB1cGRhdGVkUGF0aDogc3RyaW5nLCB1cGRhdGVkUXVlcnlzdHJpbmc6IHN0cmluZyB8IHVuZGVmaW5lZCkgPT4ge1xuICBsZXQgbmV3UXVlcnkgPSB7fTtcbiAgaWYgKHVwZGF0ZWRRdWVyeXN0cmluZykge1xuICAgIG5ld1F1ZXJ5ID0gcXMucGFyc2UodXBkYXRlZFF1ZXJ5c3RyaW5nKTtcbiAgICByZXEub3JpZ2luYWxVcmwgPSBgJHt1cGRhdGVkUGF0aH0/JHt1cGRhdGVkUXVlcnlzdHJpbmd9YDtcbiAgfSBlbHNlIHtcbiAgICByZXEub3JpZ2luYWxVcmwgPSB1cGRhdGVkUGF0aDtcbiAgfVxuICAvLyBFeHByZXNzIDUgbm8gbG9uZ2VyIGFsbG93cyBkaXJlY3QgbW9kaWZpY2F0aW9uIG9mIHRoZSBxdWVyeSBwcm9wZXJ0eVxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkocmVxLCAncXVlcnknLCB7XG4gICAgdmFsdWU6IHsuLi5uZXdRdWVyeX0sXG4gICAgd3JpdGFibGU6IHRydWUsXG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBjb25maWd1cmFibGU6IHRydWUsXG4gIH0pO1xufTtcblxuLyoqXG4gKiBSZW1vdmVzIGludGVybmFsIE1SVCBoZWFkZXJzIGFuZCBBUEkgR2F0ZXdheSBoZWFkZXJzIGZyb20gdGhlIHJlcXVlc3QuXG4gKlxuICogVGhpcyBmdW5jdGlvbiBjbGVhbnMgdXAgaGVhZGVycyB0aGF0IHNob3VsZCBub3QgYmUgZm9yd2FyZGVkIHRvIGRvd25zdHJlYW0gc2VydmljZXMuXG4gKiBJdCByZW1vdmVzIEFQSSBHYXRld2F5LXNwZWNpZmljIGhlYWRlcnMgYW5kIGludGVybmFsIE1SVCBoZWFkZXJzLiBXaGVuIGNhbGxlZCBmcm9tXG4gKiB0aGUgY2xlYW51cCBtaWRkbGV3YXJlLCBpdCBhbHNvIHJlbW92ZXMgdGhlIFhfTU9CSUZZX1JFUVVFU1RfUFJPQ0VTU09SX0xPQ0FMIGhlYWRlclxuICogdG8gaW5kaWNhdGUgdGhhdCBjbGVhbnVwIGhhcyBiZWVuIHBlcmZvcm1lZC5cbiAqXG4gKiBAcGFyYW0gcmVxIC0gRXhwcmVzcyByZXF1ZXN0IG9iamVjdCB0byBjbGVhbiB1cFxuICogQHBhcmFtIGNsZWFudXBMb2NhbFJlcXVlc3RQcm9jZXNzb3JIZWFkZXIgLSBJZiB0cnVlLCByZW1vdmVzIFhfTU9CSUZZX1JFUVVFU1RfUFJPQ0VTU09SX0xPQ0FMIGhlYWRlclxuICogQHByaXZhdGVcbiAqL1xuY29uc3QgY2xlYW5VcEhlYWRlcnMgPSAocmVxOiBSZXF1ZXN0LCBjbGVhbnVwTG9jYWxSZXF1ZXN0UHJvY2Vzc29ySGVhZGVyOiBib29sZWFuID0gZmFsc2UpID0+IHtcbiAgLy8gSWYgdGhlIGNsZWFudXAgaXMgaGFwcGVuaW5nIGluIHRoZSBsb2NhbCByZXF1ZXN0IHByb2Nlc3NvclxuICAvLyB3ZSBkb24ndCB3YW50IHRvIHJlbW92ZSB0aGUgWF9NT0JJRllfUkVRVUVTVF9QUk9DRVNTT1JfTE9DQUwgaGVhZGVyXG4gIC8vIGJlY2F1c2Ugd2UgbmVlZCB0byBub3Qgb3ZlcndyaXRlIGl0IGluIHRoZSBjbGVhbnVwIG1pZGRsZXdhcmVcbiAgaWYgKGNsZWFudXBMb2NhbFJlcXVlc3RQcm9jZXNzb3JIZWFkZXIpIHtcbiAgICBkZWxldGUgcmVxLmhlYWRlcnNbWF9NT0JJRllfUkVRVUVTVF9QUk9DRVNTT1JfTE9DQUxdO1xuICB9XG4gIFhfSEVBREVSU19UT19SRU1PVkVfT1JJR0lOLmZvckVhY2goKGtleSkgPT4ge1xuICAgIGRlbGV0ZSByZXEuaGVhZGVyc1trZXldO1xuICB9KTtcbn07XG5cbi8qKlxuICogUmV0cmlldmVzIGFuZCBwcm9jZXNzZXMgdGhlIHF1ZXJ5c3RyaW5nIGZyb20gdGhlIHgtbW9iaWZ5LXF1ZXJ5c3RyaW5nIGhlYWRlci5cbiAqXG4gKiBUaGlzIGZ1bmN0aW9uIGNoZWNrcyBmb3IgdGhlIHgtbW9iaWZ5LXF1ZXJ5c3RyaW5nIGhlYWRlciBhbmQgdXNlcyBpdCBhcyB0aGVcbiAqIGRlZmluaXRpdmUgcXVlcnlzdHJpbmcgaWYgcHJlc2VudCBhbmQgbm9uLWVtcHR5LiBUaGlzIGhlYWRlciBpcyB1c2VkIGluIHByb2R1Y3Rpb25cbiAqIGVudmlyb25tZW50cyB0byBvdmVycmlkZSB0aGUgVVJMIHF1ZXJ5c3RyaW5nLCBidXQgaXMgYWxzbyBoYW5kbGVkIGluIGxvY2FsIGRldmVsb3BtZW50XG4gKiB0byBhbGxvdyBmb3IgdGVzdGluZy4gQWZ0ZXIgcHJvY2Vzc2luZywgdGhlIGhlYWRlciBpcyByZW1vdmVkIGZyb20gdGhlIHJlcXVlc3QuXG4gKlxuICogSWYgdGhlIGhlYWRlciBpcyBwcmVzZW50IGJ1dCBlbXB0eSwgb3IgaWYgaXQncyBub3QgcHJlc2VudCBhdCBhbGwsIHRoZSBvcmlnaW5hbFxuICogcXVlcnlzdHJpbmcgaXMgcmV0dXJuZWQgdW5jaGFuZ2VkLlxuICpcbiAqIEBwYXJhbSByZXEgLSBFeHByZXNzIHJlcXVlc3Qgb2JqZWN0IGNvbnRhaW5pbmcgdGhlIGhlYWRlcnNcbiAqIEBwYXJhbSBvcmlnaW5hbFF1ZXJ5c3RyaW5nIC0gVGhlIG9yaWdpbmFsIHF1ZXJ5c3RyaW5nIGZyb20gdGhlIFVSTCAobWF5IGJlIHVuZGVmaW5lZClcbiAqIEByZXR1cm5zIFRoZSBxdWVyeXN0cmluZyB0byB1c2UgKGZyb20gaGVhZGVyIGlmIHByZXNlbnQgYW5kIG5vbi1lbXB0eSwgb3RoZXJ3aXNlIG9yaWdpbmFsKVxuICogQHByaXZhdGVcbiAqL1xuY29uc3QgZ2V0TW9iaWZ5UXVlcnlTdHJpbmcgPSAocmVxOiBSZXF1ZXN0LCBvcmlnaW5hbFF1ZXJ5c3RyaW5nOiBzdHJpbmcgfCB1bmRlZmluZWQpID0+IHtcbiAgLy8gSWYgdGhlcmUncyBhbiB4LXF1ZXJ5c3RyaW5nIGhlYWRlciwgdXNlIHRoYXQgYXMgdGhlIGRlZmluaXRpdmVcbiAgLy8gcXVlcnlzdHJpbmcuIFRoaXMgaGVhZGVyIGlzIHVzZWQgaW4gcHJvZHVjdGlvbiwgbm90IGluIGxvY2FsIGRldixcbiAgLy8gYnV0IHdlIGFsd2F5cyBoYW5kbGUgaXQgaGVyZSB0byBhbGxvdyBmb3IgdGVzdGluZy5cbiAgbGV0IHVwZGF0ZWRRdWVyeXN0cmluZyA9IG9yaWdpbmFsUXVlcnlzdHJpbmc7XG4gIGNvbnN0IHhRdWVyeVN0cmluZyA9IHJlcS5oZWFkZXJzW1hfTU9CSUZZX1FVRVJZU1RSSU5HXTtcbiAgaWYgKHhRdWVyeVN0cmluZyAmJiB4UXVlcnlTdHJpbmcgIT09ICcnKSB7XG4gICAgdXBkYXRlZFF1ZXJ5c3RyaW5nID0geFF1ZXJ5U3RyaW5nIGFzIHN0cmluZztcbiAgfVxuICBkZWxldGUgcmVxLmhlYWRlcnNbWF9NT0JJRllfUVVFUllTVFJJTkddO1xuICByZXR1cm4gdXBkYXRlZFF1ZXJ5c3RyaW5nO1xufTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgbWlkZGxld2FyZSBmdW5jdGlvbiB0aGF0IHByb2Nlc3NlcyBpbmNvbWluZyByZXF1ZXN0cyB1c2luZyBhIGN1c3RvbSByZXF1ZXN0IHByb2Nlc3Nvci5cbiAqXG4gKiBUaGlzIG1pZGRsZXdhcmUgaGFuZGxlczpcbiAqIC0gU2tpcHBpbmcgcHJvY2Vzc2luZyBmb3IgcHJveHkgYW5kIGJ1bmRsZSBwYXRoc1xuICogLSBMb2FkaW5nIGFuZCBleGVjdXRpbmcgY3VzdG9tIHJlcXVlc3QgcHJvY2Vzc29yc1xuICogLSBQcm9jZXNzaW5nIGN1c3RvbSBxdWVyeSBzdHJpbmdzIGZyb20gaGVhZGVyc1xuICogLSBSZW1vdmluZyBBUEkgR2F0ZXdheSBoZWFkZXJzXG4gKiAtIEVuZm9yY2luZyBIVFRQIG1ldGhvZCByZXN0cmljdGlvbnMgZm9yIHJvb3QgcGF0aFxuICogLSBVcGRhdGluZyByZXF1ZXN0IHBhdGhzIGFuZCBxdWVyeSBzdHJpbmdzIHdoZW4gcGF0aHMgY2hhbmdlXG4gKlxuICogQHBhcmFtIHJlcXVlc3RQcm9jZXNzb3JQYXRoIC0gUGF0aCB0byB0aGUgcmVxdWVzdCBwcm9jZXNzb3IgbW9kdWxlIGZpbGVcbiAqIEBwYXJhbSBwcm94eUNvbmZpZ3MgLSBBcnJheSBvZiBwcm94eSBjb25maWd1cmF0aW9uc1xuICogQHJldHVybnMgRXhwcmVzcyBtaWRkbGV3YXJlIGZ1bmN0aW9uXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IG1pZGRsZXdhcmUgPSBjcmVhdGVNUlRSZXF1ZXN0UHJvY2Vzc29yTWlkZGxld2FyZShcbiAqICAgJy9wYXRoL3RvL3Byb2Nlc3Nvci5qcycsXG4gKiAgIFt7IGhvc3Q6ICdodHRwczovL2FwaS5leGFtcGxlLmNvbScsIHBhdGg6ICdhcGknIH1dXG4gKiApO1xuICogYXBwLnVzZShtaWRkbGV3YXJlKTtcbiAqIGBgYFxuICovXG5leHBvcnQgY29uc3QgY3JlYXRlTVJUUmVxdWVzdFByb2Nlc3Nvck1pZGRsZXdhcmUgPSAoXG4gIHJlcXVlc3RQcm9jZXNzb3JQYXRoOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gIHByb3h5Q29uZmlnczogUHJveHlDb25maWdbXSB8IHVuZGVmaW5lZCxcbik6IFJlcXVlc3RIYW5kbGVyID0+IHtcbiAgY29uc3QgcHJvY2Vzc0luY29taW5nUmVxdWVzdCA9IGFzeW5jIChyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpID0+IHtcbiAgICAvLyBJZiB0aGUgcmVxdWVzdCBpcyBmb3IgYSBwcm94eSBvciBidW5kbGUgcGF0aCwgZG8gbm90aGluZ1xuICAgIGlmIChfaXNCdW5kbGVPclByb3h5UGF0aChyZXEub3JpZ2luYWxVcmwpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcmVxdWVzdFByb2Nlc3NvciA9IGF3YWl0IF9nZXRSZXF1ZXN0UHJvY2Vzc29yKHJlcXVlc3RQcm9jZXNzb3JQYXRoKTtcbiAgICBjb25zdCBvcmlnaW5hbFF1ZXJ5c3RyaW5nID0gcmVxLm9yaWdpbmFsVXJsLnNwbGl0KCc/JylbMV07XG5cbiAgICAvLyBJZiB0aGVyZSdzIG5vIHF1ZXJ5c3RyaW5nIHRoZSB2YWx1ZSB3aWxsIGJlIHVuZGVmaW5lZFxuICAgIC8vIGJ1dCBUeXBlU2NyaXB0IHdpbGwgY29tcGxhaW4gaWYgd2UgZG9uJ3QgZXhwbGljaXRseSBzZXQgaXQgdG8gdW5kZWZpbmVkLlxuICAgIGxldCB1cGRhdGVkUXVlcnlzdHJpbmcgPSBvcmlnaW5hbFF1ZXJ5c3RyaW5nIHx8IHVuZGVmaW5lZDtcbiAgICBsZXQgdXBkYXRlZFBhdGggPSByZXEub3JpZ2luYWxVcmwuc3BsaXQoJz8nKVswXTtcblxuICAgIHVwZGF0ZWRRdWVyeXN0cmluZyA9IGdldE1vYmlmeVF1ZXJ5U3RyaW5nKHJlcSwgdXBkYXRlZFF1ZXJ5c3RyaW5nKTtcbiAgICBpZiAocmVxdWVzdFByb2Nlc3Nvcikge1xuICAgICAgLy8gQWxsb3cgdGhlIHByb2Nlc3NvciB0byBoYW5kbGUgdGhpcyByZXF1ZXN0LiBCZWNhdXNlIHRoaXMgY29kZVxuICAgICAgLy8gcnVucyBvbmx5IGluIHRoZSBsb2NhbCBkZXZlbG9wbWVudCBzZXJ2ZXIsIHdlIGludGVudGlvbmFsbHkgZG9cbiAgICAgIC8vIG5vdCBzd2FsbG93IGVycm9ycyAtIHdlIHdhbnQgdGhlbSB0byBoYXBwZW4gYW5kIHNob3cgdXAgb24gdGhlXG4gICAgICAvLyBjb25zb2xlIGJlY2F1c2UgdGhhdCdzIGhvdyBkZXZlbG9wZXJzIGNhbiB0ZXN0IHRoZSBwcm9jZXNzb3IuXG4gICAgICBjb25zdCBoZWFkZXJzID0gbmV3IEhlYWRlcnMocmVxLmhlYWRlcnMsICdodHRwJyk7XG5cbiAgICAgIGNvbnN0IHthcHBIb3N0bmFtZSwgZGVwbG95VGFyZ2V0LCBlbnZpcm9ubWVudH0gPSBnZXRSZXF1ZXN0UHJvY2Vzc29yUGFyYW1ldGVycygpO1xuXG4gICAgICBjb25zdCBwcm9jZXNzZWQgPSByZXF1ZXN0UHJvY2Vzc29yLnByb2Nlc3NSZXF1ZXN0KHtcbiAgICAgICAgaGVhZGVycyxcbiAgICAgICAgcGF0aDogcmVxLnBhdGgsXG4gICAgICAgIHF1ZXJ5c3RyaW5nOiB1cGRhdGVkUXVlcnlzdHJpbmcsXG5cbiAgICAgICAgZ2V0UmVxdWVzdENsYXNzOiAoKSA9PiBoZWFkZXJzLmdldEhlYWRlcihYX01PQklGWV9SRVFVRVNUX0NMQVNTKSxcbiAgICAgICAgc2V0UmVxdWVzdENsYXNzOiAodmFsdWU6IHN0cmluZykgPT4gaGVhZGVycy5zZXRIZWFkZXIoWF9NT0JJRllfUkVRVUVTVF9DTEFTUywgdmFsdWUpLFxuXG4gICAgICAgIC8vIFRoaXMgbWF0Y2hlcyB0aGUgc2V0IG9mIHBhcmFtZXRlcnMgcGFzc2VkIGluIHRoZVxuICAgICAgICAvLyBMYW1iZGFARWRnZSBjb250ZXh0LlxuICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgZGVwbG95VGFyZ2V0LFxuICAgICAgICAgIGFwcEhvc3RuYW1lLFxuICAgICAgICAgIHByb3h5Q29uZmlnczogcHJveHlDb25maWdzIHx8IFtdLFxuICAgICAgICAgIGVudmlyb25tZW50LFxuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICAgIC8vIEFpZCBkZWJ1Z2dpbmcgYnkgY2hlY2tpbmcgdGhlIHJldHVybiB2YWx1ZVxuICAgICAgY29uc29sZS5hc3NlcnQoXG4gICAgICAgIHByb2Nlc3NlZCAmJiAncGF0aCcgaW4gcHJvY2Vzc2VkICYmICdxdWVyeXN0cmluZycgaW4gcHJvY2Vzc2VkLFxuICAgICAgICAnRXhwZWN0ZWQgcHJvY2Vzc1JlcXVlc3QgdG8gcmV0dXJuIGFuIG9iamVjdCB3aXRoICcgK1xuICAgICAgICAgICdcInBhdGhcIiBhbmQgXCJxdWVyeXN0cmluZ1wiIHByb3BlcnRpZXMsICcgK1xuICAgICAgICAgIGBidXQgZ290ICR7SlNPTi5zdHJpbmdpZnkocHJvY2Vzc2VkLCBudWxsLCAyKX1gLFxuICAgICAgKTtcblxuICAgICAgLy8gVXBkYXRlIHRoZSByZXF1ZXN0LlxuICAgICAgdXBkYXRlZFF1ZXJ5c3RyaW5nID0gcHJvY2Vzc2VkLnF1ZXJ5c3RyaW5nO1xuICAgICAgdXBkYXRlZFBhdGggPSBwcm9jZXNzZWQucGF0aDtcblxuICAgICAgaWYgKGhlYWRlcnMubW9kaWZpZWQpIHtcbiAgICAgICAgcmVxLmhlYWRlcnMgPSBoZWFkZXJzLnRvT2JqZWN0KCkgYXMgUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgc3RyaW5nW10+O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFVwZGF0ZSB0aGUgcmVxdWVzdC5cbiAgICBpZiAodXBkYXRlZFF1ZXJ5c3RyaW5nICE9PSBvcmlnaW5hbFF1ZXJ5c3RyaW5nKSB7XG4gICAgICB1cGRhdGVQYXRoQW5kUXVlcnlTdHJpbmcocmVxLCB1cGRhdGVkUGF0aCwgdXBkYXRlZFF1ZXJ5c3RyaW5nKTtcbiAgICB9XG5cbiAgICAvLyBHZXQgdGhlIHJlcXVlc3QgY2xhc3MgYW5kIHN0b3JlIGl0IGZvciBnZW5lcmFsIHVzZS4gV2VcbiAgICAvLyBtdXN0IGRvIHRoaXMgQUZURVIgdGhlIHJlcXVlc3QtcHJvY2Vzc29yLCBiZWNhdXNlIHRoYXQnc1xuICAgIC8vIHdoYXQgbWF5IHNldCB0aGUgcmVxdWVzdCBjbGFzcy5cbiAgICByZXMubG9jYWxzLnJlcXVlc3RDbGFzcyA9IHJlcS5oZWFkZXJzW1hfTU9CSUZZX1JFUVVFU1RfQ0xBU1NdO1xuICAgIHJlcS5oZWFkZXJzW1hfTU9CSUZZX1JFUVVFU1RfUFJPQ0VTU09SX0xPQ0FMXSA9ICd0cnVlJzsgLy8gTWFyayB0aGUgcmVxdWVzdCBhcyBwcm9jZXNzZWQgYnkgdGhlIHJlcXVlc3QgcHJvY2Vzc29yXG4gIH07XG5cbiAgY29uc3Qgc3NyUmVxdWVzdFByb2Nlc3Nvck1pZGRsZXdhcmUgPSAocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlLCBuZXh0OiBOZXh0RnVuY3Rpb24pID0+IHtcbiAgICAvLyBJZiB0aGUgcGF0aCBpcyAvLCB3ZSBlbmZvcmNlIHRoYXQgdGhlIG9ubHkgbWV0aG9kc1xuICAgIC8vIGFsbG93ZWQgYXJlIEdFVCwgSEVBRCBvciBPUFRJT05TLiBUaGlzIGlzIGEgcmVzdHJpY3Rpb25cbiAgICAvLyBpbXBvc2VkIGJ5IEFQSSBHYXRld2F5OiB3ZSBlbmZvcmNlIGl0IGhlcmUgc28gdGhhdCB0aGVcbiAgICAvLyBsb2NhbCBkZXYgc2VydmVyIGhhcyB0aGUgc2FtZSBiZWhhdmlvdXIuXG4gICAgaWYgKHJlcS5wYXRoID09PSAnLycgJiYgIVsnR0VUJywgJ0hFQUQnLCAnT1BUSU9OUyddLmluY2x1ZGVzKHJlcS5tZXRob2QpKSB7XG4gICAgICByZXMuc2VuZFN0YXR1cyg0MDUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIEFwcGx5IGN1c3RvbSBxdWVyeSBwYXJhbWV0ZXIgcGFyc2luZyBhbmQgZm9yd2FyZCBlcnJvcnMgdmlhIG5leHQoKVxuICAgIHByb2Nlc3NJbmNvbWluZ1JlcXVlc3QocmVxLCByZXMpXG4gICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgIC8vIFN0cmlwIG91dCBBUEkgR2F0ZXdheSBoZWFkZXJzIGZyb20gdGhlIGluY29taW5nIHJlcXVlc3QuIFdlXG4gICAgICAgIC8vIGRvIHRoYXQgbm93IHNvIHRoYXQgdGhlIHJlc3Qgb2YgdGhlIGNvZGUgZG9uJ3QgaGF2ZSB0byBkZWFsXG4gICAgICAgIC8vIHdpdGggdGhlc2UgaGVhZGVycywgd2hpY2ggY2FuIGJlIGxhcmdlIGFuZCBtYXkgYmUgYWNjaWRlbnRhbGx5XG4gICAgICAgIC8vIGZvcndhcmRlZCB0byBvdGhlciBzZXJ2ZXJzLlxuICAgICAgICBjbGVhblVwSGVhZGVycyhyZXEsIGZhbHNlKTtcblxuICAgICAgICAvLyBIYW5kIG9mZiB0byB0aGUgbmV4dCBtaWRkbGV3YXJlXG4gICAgICAgIG5leHQoKTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICBuZXh0KGVycik7XG4gICAgICB9KTtcbiAgfTtcblxuICByZXR1cm4gc3NyUmVxdWVzdFByb2Nlc3Nvck1pZGRsZXdhcmU7XG59O1xuXG4vKipcbiAqIENyZWF0ZXMgcHJveHkgbWlkZGxld2FyZSBmdW5jdGlvbnMgZm9yIHRoZSBzcGVjaWZpZWQgcHJveHkgY29uZmlndXJhdGlvbnMuXG4gKlxuICogVGhpcyBmdW5jdGlvbiBjcmVhdGVzIEV4cHJlc3MgbWlkZGxld2FyZSBmdW5jdGlvbnMgdGhhdCBoYW5kbGUgcHJveHlpbmcgcmVxdWVzdHNcbiAqIHRvIGV4dGVybmFsIHNlcnZpY2VzLiBJdCBjYW4gb3B0aW9uYWxseSBjcmVhdGUgYm90aCByZWd1bGFyIHByb3h5IGFuZCBjYWNoaW5nXG4gKiBwcm94eSBtaWRkbGV3YXJlcyBmb3IgZWFjaCBjb25maWd1cmF0aW9uLiBUaGUgYXBwIGhvc3RuYW1lIGlzIGF1dG9tYXRpY2FsbHlcbiAqIHJldHJpZXZlZCBmcm9tIGVudmlyb25tZW50IHZhcmlhYmxlcyAoRVhURVJOQUxfRE9NQUlOX05BTUUgb3IgZGVmYXVsdHMgdG8gJ2xvY2FsaG9zdDoyNDAxJykuXG4gKlxuICogQHBhcmFtIHByb3h5Q29uZmlncyAtIEFycmF5IG9mIHByb3h5IGNvbmZpZ3VyYXRpb25zXG4gKiBAcGFyYW0gYXBwUHJvdG9jb2wgLSBUaGUgcHJvdG9jb2wgdG8gdXNlIGZvciB0aGUgYXBwIChkZWZhdWx0cyB0byAnaHR0cCcpXG4gKiBAcGFyYW0gaW5jbHVkZUNhY2hpbmcgLSBXaGV0aGVyIHRvIGluY2x1ZGUgY2FjaGluZyBwcm94eSBtaWRkbGV3YXJlcyAoZGVmYXVsdHMgdG8gZmFsc2UpXG4gKiBAcmV0dXJucyBBcnJheSBvZiBwcm94eSBtaWRkbGV3YXJlIHJlc3VsdHMgd2l0aCB0aGVpciBwYXRoc1xuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBwcm94eU1pZGRsZXdhcmVzID0gY3JlYXRlTVJUUHJveHlNaWRkbGV3YXJlcyhcbiAqICAgW3sgaG9zdDogJ2h0dHBzOi8vYXBpLmV4YW1wbGUuY29tJywgcGF0aDogJ2FwaScgfV0sXG4gKiAgICdodHRwcycsXG4gKiAgIHRydWUgLy8gSW5jbHVkZSBjYWNoaW5nIG1pZGRsZXdhcmVzXG4gKiApO1xuICpcbiAqIHByb3h5TWlkZGxld2FyZXMuZm9yRWFjaCgoeyBmbiwgcGF0aCB9KSA9PiB7XG4gKiAgIGFwcC51c2UocGF0aCwgZm4pO1xuICogfSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNvbnN0IGNyZWF0ZU1SVFByb3h5TWlkZGxld2FyZXMgPSAoXG4gIHByb3h5Q29uZmlnczogUHJveHlDb25maWdbXSxcbiAgYXBwUHJvdG9jb2w6IHN0cmluZyA9ICdodHRwJyxcbiAgaW5jbHVkZUNhY2hpbmc6IGJvb2xlYW4gPSBmYWxzZSxcbiAgY3JlYXRlUHJveHlGbj86IENyZWF0ZVByb3h5TWlkZGxld2FyZUZuLFxuKTogUHJveHlSZXN1bHRbXSA9PiB7XG4gIGlmICghcHJveHlDb25maWdzKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG4gIGNvbnN0IHthcHBIb3N0bmFtZX0gPSBnZXRSZXF1ZXN0UHJvY2Vzc29yUGFyYW1ldGVycygpO1xuICBjb25zdCBwcm94aWVzOiBQcm94eVJlc3VsdFtdID0gY29uZmlndXJlUHJveHlpbmcocHJveHlDb25maWdzLCBhcHBIb3N0bmFtZSwgYXBwUHJvdG9jb2wsIGNyZWF0ZVByb3h5Rm4pO1xuICBjb25zdCBtaWRkbGV3YXJlczogUHJveHlSZXN1bHRbXSA9IFtdO1xuICBwcm94aWVzLmZvckVhY2goKHByb3h5KSA9PiB7XG4gICAgY29uc3QgcHJveHlQYXRoID0gYCR7UFJPWFlfUEFUSF9CQVNFfS8ke3Byb3h5LnBhdGh9YDtcbiAgICBjb25zdCBjYWNoaW5nUHJveHlQYXRoID0gYCR7Q0FDSElOR19QQVRIX0JBU0V9LyR7cHJveHkucGF0aH1gO1xuICAgIG1pZGRsZXdhcmVzLnB1c2goe2ZuOiBwcm94eS5mbiwgcGF0aDogcHJveHlQYXRofSk7XG4gICAgaWYgKGluY2x1ZGVDYWNoaW5nKSB7XG4gICAgICBtaWRkbGV3YXJlcy5wdXNoKHtmbjogcHJveHkuZm4sIHBhdGg6IGNhY2hpbmdQcm94eVBhdGh9KTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gbWlkZGxld2FyZXM7XG59O1xuXG4vKipcbiAqIFNldHMgYXBwcm9wcmlhdGUgSFRUUCBoZWFkZXJzIGZvciBsb2NhbCBhc3NldCBmaWxlcy5cbiAqXG4gKiBUaGlzIGZ1bmN0aW9uIHNldHMgY29udGVudC10eXBlLCBjYWNoaW5nLCBhbmQgb3RoZXIgaGVhZGVycyBmb3Igc3RhdGljIGFzc2V0c1xuICogc2VydmVkIGZyb20gdGhlIGxvY2FsIGZpbGVzeXN0ZW0uIEl0IHVzZXMgdGhlIGZpbGUncyBtb2RpZmljYXRpb24gdGltZSBmb3JcbiAqIEVUYWcgYW5kIExhc3QtTW9kaWZpZWQgaGVhZGVycywgYW5kIHNldHMgbm8tY2FjaGUgZGlyZWN0aXZlcyBmb3IgbG9jYWwgYXNzZXRzLlxuICpcbiAqIEBwYXJhbSByZXMgLSBFeHByZXNzIHJlc3BvbnNlIG9iamVjdFxuICogQHBhcmFtIGFzc2V0UGF0aCAtIFBhdGggdG8gdGhlIGFzc2V0IGZpbGVcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogYXBwLnVzZSgnL3N0YXRpYycsIGV4cHJlc3Muc3RhdGljKCdwdWJsaWMnLCB7XG4gKiAgIHNldEhlYWRlcnM6IHNldExvY2FsQXNzZXRIZWFkZXJzXG4gKiB9KSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNvbnN0IHNldExvY2FsQXNzZXRIZWFkZXJzID0gKHJlczogUmVzcG9uc2UsIGFzc2V0UGF0aDogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IGJhc2UgPSBwYXRoLmJhc2VuYW1lKGFzc2V0UGF0aCk7XG4gIGNvbnN0IGNvbnRlbnRUeXBlID0gbWltZVR5cGVzLmxvb2t1cChiYXNlKSB8fCAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJztcblxuICByZXMuc2V0KENPTlRFTlRfVFlQRSwgY29udGVudFR5cGUpO1xuXG4gIC8vIFN0YXQgdGhlIGZpbGUgYW5kIHJldHVybiB0aGUgbGFzdC1tb2RpZmllZCBEYXRlXG4gIC8vIGluIFJGQzExMjMgZm9ybWF0LiBBbHNvIHVzZSB0aGF0IHZhbHVlIGFzIHRoZSBFVGFnXG4gIC8vIGFuZCBMYXN0LU1vZGlmaWVkXG4gIGNvbnN0IG10aW1lID0gZnMuc3RhdFN5bmMoYXNzZXRQYXRoKS5tdGltZTtcbiAgY29uc3QgbXRpbWVSRkMxMTIzID0gbXRpbWUudG9VVENTdHJpbmcoKTtcbiAgcmVzLnNldCgnZGF0ZScsIG10aW1lUkZDMTEyMyk7XG4gIHJlcy5zZXQoJ2xhc3QtbW9kaWZpZWQnLCBtdGltZVJGQzExMjMpO1xuICByZXMuc2V0KCdldGFnJywgbXRpbWUuZ2V0VGltZSgpLnRvU3RyaW5nKCkpO1xuXG4gIC8vIFdlIGRvbid0IGNhY2hlIGxvY2FsIGJ1bmRsZSBhc3NldHNcbiAgcmVzLnNldCgnY2FjaGUtY29udHJvbCcsIE5PX0NBQ0hFKTtcbn07XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBFeHByZXNzIHN0YXRpYyBtaWRkbGV3YXJlIGNvbmZpZ3VyZWQgZm9yIE1SVCBhc3NldCBzZXJ2aW5nLlxuICpcbiAqIFRoaXMgZnVuY3Rpb24gY3JlYXRlcyBhIHN0YXRpYyBmaWxlIHNlcnZpbmcgbWlkZGxld2FyZSB3aXRoIE1SVC1zcGVjaWZpY1xuICogY29uZmlndXJhdGlvbnMgaW5jbHVkaW5nIGN1c3RvbSBoZWFkZXIgc2V0dGluZyBhbmQgc2VjdXJpdHkgb3B0aW9ucy5cbiAqXG4gKiBAcGFyYW0gc3RhdGljQXNzZXREaXIgLSBEaXJlY3RvcnkgcGF0aCBjb250YWluaW5nIHN0YXRpYyBhc3NldHNcbiAqIEByZXR1cm5zIEV4cHJlc3Mgc3RhdGljIG1pZGRsZXdhcmUgZnVuY3Rpb25cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3Qgc3RhdGljTWlkZGxld2FyZSA9IGNyZWF0ZU1SVFN0YXRpY0Fzc2V0U2VydmluZ01pZGRsZXdhcmUoJy9wYXRoL3RvL2Fzc2V0cycpO1xuICogYXBwLnVzZSgnL3N0YXRpYycsIHN0YXRpY01pZGRsZXdhcmUpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBjb25zdCBjcmVhdGVNUlRTdGF0aWNBc3NldFNlcnZpbmdNaWRkbGV3YXJlID0gKHN0YXRpY0Fzc2V0RGlyOiBzdHJpbmcpOiBSZXF1ZXN0SGFuZGxlciA9PiB7XG4gIHJldHVybiBleHByZXNzLnN0YXRpYyhzdGF0aWNBc3NldERpciwge1xuICAgIGRvdGZpbGVzOiAnZGVueScsXG4gICAgc2V0SGVhZGVyczogc2V0TG9jYWxBc3NldEhlYWRlcnMsXG4gICAgZmFsbHRocm91Z2g6IGZhbHNlLFxuICB9KTtcbn07XG5cbi8qKlxuICogQ3JlYXRlcyBhIGNvbW1vbiBtaWRkbGV3YXJlIGZ1bmN0aW9uIHRoYXQgc2V0cyB0aGUgaG9zdCBoZWFkZXIgYmFzZWQgb24gZW52aXJvbm1lbnQgdmFyaWFibGVzLlxuICpcbiAqIFRoZSBob3N0IGhlYWRlciBpcyBzZXQgdG8gRVhURVJOQUxfRE9NQUlOX05BTUUgaWYgYXZhaWxhYmxlLCBvdGhlcndpc2UgZGVmYXVsdHMgdG8gJ2xvY2FsaG9zdDoyNDAxJy5cbiAqIFVzZSB0aGlzIG1pZGRsZXdhcmUgaW4gYWxsIGVudmlyb25tZW50cyAobG9jYWwgYW5kIGRlcGxveWVkKSwgYXQgdGhlIHRvcCBvZiB5b3VyIG1pZGRsZXdhcmUgc3RhY2suXG4gKlxuICogQHJldHVybnMgRXhwcmVzcyBtaWRkbGV3YXJlIGZ1bmN0aW9uXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IG1pZGRsZXdhcmUgPSBjcmVhdGVNUlRDb21tb25NaWRkbGV3YXJlKCk7XG4gKiBhcHAudXNlKG1pZGRsZXdhcmUpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBjb25zdCBjcmVhdGVNUlRDb21tb25NaWRkbGV3YXJlID0gKCk6IFJlcXVlc3RIYW5kbGVyID0+IHtcbiAgcmV0dXJuIChyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UsIG5leHQ6IE5leHRGdW5jdGlvbikgPT4ge1xuICAgIHJlcS5oZWFkZXJzLmhvc3QgPSBwcm9jZXNzLmVudi5FWFRFUk5BTF9ET01BSU5fTkFNRSB8fCAnbG9jYWxob3N0OjI0MDEnO1xuICAgIG5leHQoKTtcbiAgfTtcbn07XG5cbi8qKlxuICogQ3JlYXRlcyBhIGNsZWFudXAgbWlkZGxld2FyZSBmdW5jdGlvbiB0aGF0IHJlbW92ZXMgaW50ZXJuYWwgaGVhZGVycyBhbmQgY2xlYW5zIHVwIHJlcXVlc3Qgc3RhdGUuXG4gKlxuICogVGhpcyBtaWRkbGV3YXJlIHBlcmZvcm1zIGNsZWFudXAgb3BlcmF0aW9ucyBvbiByZXF1ZXN0czpcbiAqIC0gUmVtb3ZlcyBpbnRlcm5hbCBNUlQgaGVhZGVycyAoWF9NT0JJRllfUkVRVUVTVF9QUk9DRVNTT1JfTE9DQUwsIFhfTU9CSUZZX1FVRVJZU1RSSU5HKVxuICogLSBSZW1vdmVzIEFQSSBHYXRld2F5IGhlYWRlcnMgdGhhdCBzaG91bGRuJ3QgYmUgZm9yd2FyZGVkXG4gKiAtIE9wdGlvbmFsbHkgdXBkYXRlcyB0aGUgcGF0aCBhbmQgcXVlcnlzdHJpbmcgaWYgdGhlIHJlcXVlc3Qgd2Fzbid0IHByb2Nlc3NlZCBieSB0aGUgcmVxdWVzdCBwcm9jZXNzb3JcbiAqXG4gKiBVc2UgdGhpcyBtaWRkbGV3YXJlIGluIGFsbCBlbnZpcm9ubWVudHMgKGxvY2FsIGFuZCBkZXBsb3llZCksIGF0IHRoZSBlbmQgb2YgdGhlIG1pZGRsZXdhcmUgY2hhaW4sXG4gKiB0byBlbnN1cmUgYWxsIGludGVybmFsIGhlYWRlcnMgYXJlIHJlbW92ZWQgYmVmb3JlIHRoZSByZXF1ZXN0IGlzIGhhbmRsZWQgYnkgdGhlIGFwcGxpY2F0aW9uLlxuICpcbiAqIEByZXR1cm5zIEV4cHJlc3MgbWlkZGxld2FyZSBmdW5jdGlvblxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBjbGVhbnVwTWlkZGxld2FyZSA9IGNyZWF0ZU1SVENsZWFuVXBNaWRkbGV3YXJlKCk7XG4gKiBhcHAudXNlKGNsZWFudXBNaWRkbGV3YXJlKTtcbiAqIGBgYFxuICovXG5leHBvcnQgY29uc3QgY3JlYXRlTVJUQ2xlYW5VcE1pZGRsZXdhcmUgPSAoKTogUmVxdWVzdEhhbmRsZXIgPT4ge1xuICByZXR1cm4gKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSwgbmV4dDogTmV4dEZ1bmN0aW9uKSA9PiB7XG4gICAgaWYgKCFyZXEuaGVhZGVyc1tYX01PQklGWV9SRVFVRVNUX1BST0NFU1NPUl9MT0NBTF0pIHtcbiAgICAgIGNvbnN0IG9yaWdpbmFsUXVlcnlzdHJpbmcgPSByZXEub3JpZ2luYWxVcmwuc3BsaXQoJz8nKVsxXSB8fCB1bmRlZmluZWQ7XG4gICAgICBjb25zdCB1cGRhdGVkUXVlcnlzdHJpbmcgPSBnZXRNb2JpZnlRdWVyeVN0cmluZyhyZXEsIG9yaWdpbmFsUXVlcnlzdHJpbmcpO1xuICAgICAgY29uc3QgdXBkYXRlZFBhdGggPSByZXEub3JpZ2luYWxVcmwuc3BsaXQoJz8nKVswXTtcbiAgICAgIHVwZGF0ZVBhdGhBbmRRdWVyeVN0cmluZyhyZXEsIHVwZGF0ZWRQYXRoLCB1cGRhdGVkUXVlcnlzdHJpbmcpO1xuICAgIH1cbiAgICBjbGVhblVwSGVhZGVycyhyZXEsIHRydWUpO1xuICAgIG5leHQoKTtcbiAgfTtcbn07XG4iLCAiLypcbiAqIENvcHlyaWdodCAoYykgMjAyNSwgU2FsZXNmb3JjZSwgSW5jLlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yXG4gKiBGb3IgZnVsbCBsaWNlbnNlIHRleHQsIHNlZSB0aGUgbGljZW5zZS50eHQgZmlsZSBpbiB0aGUgcmVwbyByb290IG9yIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICovXG5cbmltcG9ydCB7Q2xvdWRXYXRjaENsaWVudCwgUHV0TWV0cmljRGF0YUNvbW1hbmQsIHR5cGUgU3RhbmRhcmRVbml0LCB0eXBlIE1ldHJpY0RhdHVtfSBmcm9tICdAYXdzLXNkay9jbGllbnQtY2xvdWR3YXRjaCc7XG5pbXBvcnQge2lzTG9jYWx9IGZyb20gJy4uL3V0aWxzL3V0aWxzLmpzJztcblxuY29uc3QgaXNSZW1vdGUgPSAoKTogYm9vbGVhbiA9PiAhaXNMb2NhbCgpO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9OQU1FU1BBQ0UgPSAnc3NyJztcblxuZXhwb3J0IGNvbnN0IGdldERpbWVuc2lvbnMgPSAoKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9PiB7XG4gIHJldHVybiB7XG4gICAgUHJvamVjdDogcHJvY2Vzcy5lbnYuTU9CSUZZX1BST1BFUlRZX0lEIHx8ICdVTktOT1dOJyxcbiAgICBUYXJnZXQ6IHByb2Nlc3MuZW52LkRFUExPWV9UQVJHRVQgfHwgJ1VOS05PV04nLFxuICB9O1xufTtcblxuLyoqXG4gKiBJbnB1dCBtZXRyaWMgZm9yIHNlbmRpbmcgdG8gQ2xvdWRXYXRjaC5cbiAqXG4gKiBAcHJvcGVydHkgbmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBtZXRyaWMgKHJlcXVpcmVkKVxuICogQHByb3BlcnR5IHZhbHVlIC0gVGhlIG51bWVyaWMgdmFsdWUgb2YgdGhlIG1ldHJpYyAob3B0aW9uYWwsIGRlZmF1bHRzIHRvIDApXG4gKiBAcHJvcGVydHkgdGltZXN0YW1wIC0gVGhlIHRpbWVzdGFtcCBmb3IgdGhlIG1ldHJpYyAob3B0aW9uYWwsIGRlZmF1bHRzIHRvIGN1cnJlbnQgdGltZSlcbiAqIEBwcm9wZXJ0eSB1bml0IC0gVGhlIHVuaXQgZm9yIHRoZSBtZXRyaWMgKG9wdGlvbmFsLCBkZWZhdWx0cyB0byAnQ291bnQnKVxuICogQHByb3BlcnR5IGRpbWVuc2lvbnMgLSBLZXktdmFsdWUgcGFpcnMgZm9yIG1ldHJpYyBkaW1lbnNpb25zIChvcHRpb25hbClcbiAqL1xuaW50ZXJmYWNlIElucHV0TWV0cmljIHtcbiAgbmFtZTogc3RyaW5nO1xuICB2YWx1ZT86IG51bWJlcjtcbiAgdGltZXN0YW1wPzogRGF0ZTtcbiAgdW5pdD86IHN0cmluZztcbiAgZGltZW5zaW9ucz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG59XG5cbi8qKlxuICogQSBjbGFzcyB0aGF0IGhhbmRsZXMgYXN5bmNocm9ub3VzIHNlbmRpbmcgb2YgQ2xvdWRXYXRjaCBtZXRyaWNzLlxuICpcbiAqIFRoaXMgY2xhc3MgdXNlcyBhIHNpbmdsZXRvbiBwYXR0ZXJuLiBVc2UgTWV0cmljc1NlbmRlci5nZXRTZW5kZXIoKVxuICogdG8gZ2V0IHRoZSBzaW5nbGV0b24gaW5zdGFuY2UuIE1ldHJpY3MgY2FuIGJlIHF1ZXVlZCBhbmQgc2VudCBpblxuICogYmF0Y2hlcywgb3Igc2VudCBpbW1lZGlhdGVseS4gVGhlIGNsYXNzIGF1dG9tYXRpY2FsbHkgYmF0Y2hlcyBtZXRyaWNzXG4gKiBpbnRvIGdyb3VwcyBvZiAyMCAoQ2xvdWRXYXRjaCdzIGxpbWl0IHBlciByZXF1ZXN0KS5cbiAqXG4gKiBJbiBsb2NhbCBkZXZlbG9wbWVudCBlbnZpcm9ubWVudHMsIG1ldHJpY3MgYXJlIHF1ZXVlZCBidXQgbm90IHNlbnRcbiAqIHVubGVzcyB0aGUgU0VORF9DV19NRVRSSUNTIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIHNldC5cbiAqL1xuZXhwb3J0IGNsYXNzIE1ldHJpY3NTZW5kZXIge1xuICBwcml2YXRlIF9DVzogQ2xvdWRXYXRjaENsaWVudCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9xdWV1ZTogTWV0cmljRGF0dW1bXSA9IFtdO1xuICBzdGF0aWMgX292ZXJyaWRlOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgc3RhdGljIF9pbnN0YW5jZTogTWV0cmljc1NlbmRlciB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBAaW50ZXJuYWwgVGVzdCBob29rOiBpbmplY3QgYSBDbG91ZFdhdGNoIGNsaWVudCBmb3IgdW5pdCB0ZXN0cyAqL1xuICBzdGF0aWMgX3Rlc3RDbGllbnQ6IENsb3VkV2F0Y2hDbGllbnQgfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKCkge1xuICAgIC8vIENsb3VkV2F0Y2ggY2xpZW50IHVzZWQgdG8gc2VuZCBtZXRyaWNzLiBGb3IgYSBsb2NhbCBkZXYgc2VydmVyLFxuICAgIC8vIHRoaXMgd2lsbCByZW1haW4gZmFsc3ksIHNpbmNlIGEgbG9jYWwgZGV2IHNlcnZlciBkb2Vzbid0IGFjdHVhbGx5XG4gICAgLy8gc2VuZCBtZXRyaWNzICh1bmxlc3MgU0VORF9DV19NRVRSSUNTIGlzIGRlZmluZWQgZm9yIHRlc3RpbmcpLlxuICAgIHRoaXMuX0NXID0gbnVsbDtcblxuICAgIC8vIEEgcXVldWUgb2YgbWV0cmljcyB3YWl0aW5nIHRvIGJlIHNlbnQuIEVhY2ggaXMgYSBzaW5nbGVcbiAgICAvLyBuYW1lL3ZhbHVlIG1ldHJpYywgYW5kIHRoZXkgYWNjdW11bGF0ZSBvbiB0aGlzIHF1ZXVlXG4gICAgLy8gdW50aWwgYmF0Y2hlZCB1cCBpbnRvIGEgcHV0TWV0cmljRGF0YSBjYWxsLlxuICAgIHRoaXMuX3F1ZXVlID0gW107XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBudW1iZXIgb2YgbWV0cmljcyB3YWl0aW5nIHRvIGJlIHNlbnRcbiAgICogQHJldHVybnMge251bWJlcn1cbiAgICovXG4gIGdldCBxdWV1ZUxlbmd0aCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9xdWV1ZS5sZW5ndGg7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgQ2xvdWRXYXRjaCBBV1MgU0RLIGNsaWVudCwgb3IgcmV0dXJuIGEgZmFsc3kgdmFsdWVcbiAgICogaWYgdGhpcyBNZXRyaWNzU2VuZGVyIGlzIG5vdCBhY3R1YWxseSBzZW5kaW5nIG1ldHJpY3MuXG4gICAqXG4gICAqIFRoZSBjbGllbnQgaXMgb25seSBjcmVhdGVkIHdoZW4gcnVubmluZyBpbiBhIHJlbW90ZSBlbnZpcm9ubWVudFxuICAgKiAoQVdTIExhbWJkYSkgb3Igd2hlbiBTRU5EX0NXX01FVFJJQ1MgZW52aXJvbm1lbnQgdmFyaWFibGUgaXMgc2V0LlxuICAgKiBUaGUgY2xpZW50IGlzIGNvbmZpZ3VyZWQgd2l0aCBtYXhBdHRlbXB0czogMSB0byBwcmV2ZW50IHJldHJpZXNcbiAgICogYW5kIHJlZHVjZSBsYXRlbmN5IHVuZGVyIGhpZ2ggbG9hZC5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHJldHVybnMge0Nsb3VkV2F0Y2hDbGllbnR8bnVsbH0gVGhlIENsb3VkV2F0Y2ggY2xpZW50LCBvciBudWxsIGlmIG5vdCBzZW5kaW5nIG1ldHJpY3NcbiAgICovXG4gIHByaXZhdGUgX3NldHVwKCk6IENsb3VkV2F0Y2hDbGllbnQgfCBudWxsIHtcbiAgICBpZiAoTWV0cmljc1NlbmRlci5fdGVzdENsaWVudCkge1xuICAgICAgdGhpcy5fQ1cgPSBNZXRyaWNzU2VuZGVyLl90ZXN0Q2xpZW50O1xuICAgICAgcmV0dXJuIHRoaXMuX0NXO1xuICAgIH1cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIGlmICghdGhpcy5fQ1cgJiYgKGlzUmVtb3RlKCkgfHwgTWV0cmljc1NlbmRlci5fb3ZlcnJpZGUpKSB7XG4gICAgICAvLyBUaGUgQVdTX1JFR0lPTiB2YXJpYWJsZSBpcyBkZWZpbmVkIGJ5IHRoZSBMYW1iZGFcbiAgICAgIC8vIGVudmlyb25tZW50LlxuICAgICAgLy8gU2V0dGluZyBtYXhBdHRlbXB0cyB0byAxIHdpbGwgcHJldmVudCB0aGUgU0RLIGZyb20gcmV0cnlpbmcuXG4gICAgICAvLyBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIHVuZGVyIGhpZ2ggbG9hZCwgdGhlcmUgd2lsbCBiZSBiYWNrcHJlc3N1cmVcbiAgICAgIC8vIG9uIHRoZSBMYW1iZGEgZnVuY3Rpb24sIGFuZCBjYXVzaW5nIHNldmVyZSBwZXJmb3JtYW5jZSBpc3N1ZXMgKDQwMC01MDBtcyBsYXRlbmN5KVxuICAgICAgdGhpcy5fQ1cgPSBuZXcgQ2xvdWRXYXRjaENsaWVudCh7XG4gICAgICAgIHJlZ2lvbjogcHJvY2Vzcy5lbnYuQVdTX1JFR0lPTiB8fCAndXMtZWFzdC0xJyxcbiAgICAgICAgbWF4QXR0ZW1wdHM6IDEsXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX0NXO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnQgSW5wdXRNZXRyaWMgdG8gTWV0cmljRGF0dW0gZm9ybWF0XG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSBtZXRyaWMgLSBJbnB1dCBtZXRyaWMgdG8gY29udmVydFxuICAgKiBAcGFyYW0gZGVmYXVsdFRpbWVzdGFtcCAtIERlZmF1bHQgdGltZXN0YW1wIHRvIHVzZSBpZiBub3QgcHJvdmlkZWRcbiAgICogQHJldHVybnMgQ29udmVydGVkIG1ldHJpYyBkYXR1bVxuICAgKi9cbiAgcHJpdmF0ZSBfY29udmVydFRvTWV0cmljRGF0dW0obWV0cmljOiBJbnB1dE1ldHJpYywgZGVmYXVsdFRpbWVzdGFtcDogRGF0ZSk6IE1ldHJpY0RhdHVtIHtcbiAgICBjb25zdCBtZXRyaWNEYXRhOiBNZXRyaWNEYXR1bSA9IHtcbiAgICAgIE1ldHJpY05hbWU6IG1ldHJpYy5uYW1lLFxuICAgICAgVmFsdWU6IG1ldHJpYy52YWx1ZSB8fCAwLFxuICAgICAgVGltZXN0YW1wOiBtZXRyaWMudGltZXN0YW1wIGluc3RhbmNlb2YgRGF0ZSA/IG1ldHJpYy50aW1lc3RhbXAgOiBkZWZhdWx0VGltZXN0YW1wLFxuICAgICAgVW5pdDogKG1ldHJpYy51bml0IHx8ICdDb3VudCcpIGFzIFN0YW5kYXJkVW5pdCxcbiAgICB9O1xuXG4gICAgaWYgKG1ldHJpYy5kaW1lbnNpb25zKSB7XG4gICAgICBjb25zdCBkaW1lbnNpb25zOiBBcnJheTx7TmFtZTogc3RyaW5nOyBWYWx1ZTogc3RyaW5nfT4gPSBbXTtcbiAgICAgIE9iamVjdC5lbnRyaWVzKG1ldHJpYy5kaW1lbnNpb25zKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgZGltZW5zaW9ucy5wdXNoKHtcbiAgICAgICAgICAgIE5hbWU6IGtleSxcbiAgICAgICAgICAgIFZhbHVlOiB2YWx1ZSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBpZiAoZGltZW5zaW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgIG1ldHJpY0RhdGEuRGltZW5zaW9ucyA9IGRpbWVuc2lvbnM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG1ldHJpY0RhdGE7XG4gIH1cblxuICAvKipcbiAgICogU2VuZCBtZXRyaWNzIHRvIENsb3VkV2F0Y2ggdXNpbmcgcHV0TWV0cmljRGF0YS5cbiAgICpcbiAgICogRXJyb3JzIGFyZSBjYXVnaHQgYW5kIGxvZ2dlZCBidXQgbm90IHJlLXRocm93bi4gSWYgdGhlIGNsaWVudFxuICAgKiBpcyBudWxsIChsb2NhbCBlbnZpcm9ubWVudCB3aXRob3V0IFNFTkRfQ1dfTUVUUklDUyksIHRoaXMgbWV0aG9kXG4gICAqIHJldHVybnMgaW1tZWRpYXRlbHkgd2l0aG91dCBzZW5kaW5nLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0gY3cgLSBDbG91ZFdhdGNoIGNsaWVudCAobWF5IGJlIG51bGwpXG4gICAqIEBwYXJhbSBtZXRyaWNzIC0gQXJyYXkgb2YgTWV0cmljRGF0dW0gdG8gc2VuZFxuICAgKiBAcmV0dXJucyBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgc2VuZCBvcGVyYXRpb24gY29tcGxldGVzIChvciBpbW1lZGlhdGVseSBpZiBjbGllbnQgaXMgbnVsbClcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgX3B1dE1ldHJpY0RhdGEoY3c6IENsb3VkV2F0Y2hDbGllbnQgfCBudWxsLCBtZXRyaWNzOiBNZXRyaWNEYXR1bVtdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICBpZiAoIWN3KSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNvbW1hbmQgPSBuZXcgUHV0TWV0cmljRGF0YUNvbW1hbmQoe1xuICAgICAgICBNZXRyaWNEYXRhOiBtZXRyaWNzLFxuICAgICAgICBOYW1lc3BhY2U6IERFRkFVTFRfTkFNRVNQQUNFLFxuICAgICAgfSk7XG4gICAgICBhd2FpdCBjdy5zZW5kKGNvbW1hbmQpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgY29uc29sZS53YXJuKGBNZXRyaWNzOiBlcnJvciBzZW5kaW5nIGRhdGE6ICR7ZXJyfWApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBCYXRjaCBhbmQgc2VuZCBtZXRyaWNzLiBIYW5kbGVzIGJhdGNoaW5nIGludG8gZ3JvdXBzIG9mIDIwIChDbG91ZFdhdGNoIGxpbWl0KVxuICAgKiBhbmQgc2VuZHMgdGhlbSBhc3luY2hyb25vdXNseSAoZmlyZSBhbmQgZm9yZ2V0KS4gRXJyb3JzIGFyZSBsb2dnZWQgYnV0IG5vdCByYWlzZWQuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSBtZXRyaWNzIC0gQXJyYXkgb2YgbWV0cmljcyB0byBzZW5kXG4gICAqL1xuICBwcml2YXRlIF9zZW5kQmF0Y2hlZE1ldHJpY3MobWV0cmljczogTWV0cmljRGF0dW1bXSk6IHZvaWQge1xuICAgIGlmIChtZXRyaWNzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGN3ID0gdGhpcy5fc2V0dXAoKTtcbiAgICBjb25zdCBwcm9taXNlczogUHJvbWlzZTx2b2lkPltdID0gW107XG4gICAgY29uc3QgYmF0Y2hTaXplID0gMjA7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1ldHJpY3MubGVuZ3RoOyBpICs9IGJhdGNoU2l6ZSkge1xuICAgICAgY29uc3QgYmF0Y2ggPSBtZXRyaWNzLnNsaWNlKGksIGkgKyBiYXRjaFNpemUpO1xuICAgICAgcHJvbWlzZXMucHVzaCh0aGlzLl9wdXRNZXRyaWNEYXRhKGN3LCBiYXRjaCkpO1xuICAgIH1cblxuICAgIC8vIFdhaXQgZm9yIGFsbCBwcm9taXNlcyB0byBjb21wbGV0ZSwgbG9nIGFueSBlcnJvcnMgYnV0IGRvbid0IHJhaXNlIHRoZW1cbiAgICBQcm9taXNlLmFsbChwcm9taXNlcykuY2F0Y2goXG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgKGVycikgPT4ge1xuICAgICAgICBjb25zb2xlLndhcm4oYE1ldHJpY3M6IGVycm9yIGR1cmluZyBiYXRjaCBzZW5kOiAke2Vycn1gKTtcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZW5kIGFueSBxdWV1ZWQgbWV0cmljcy4gUmV0dXJucyBhIFByb21pc2UgdGhhdCByZXNvbHZlcyBpbW1lZGlhdGVseVxuICAgKiBhZnRlciBzdGFydGluZyB0aGUgc2VuZCBvcGVyYXRpb25zIChmaXJlIGFuZCBmb3JnZXQpLiBFcnJvcnMgYXJlIGxvZ2dlZFxuICAgKiBidXQgbm90IHJhaXNlZC4gVGhlIHF1ZXVlIGlzIGNsZWFyZWQgYmVmb3JlIHNlbmRpbmcgYmVnaW5zLlxuICAgKlxuICAgKiBAcmV0dXJucyBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgaW1tZWRpYXRlbHkgYWZ0ZXIgc3RhcnRpbmcgc2VuZCBvcGVyYXRpb25zXG4gICAqL1xuICBmbHVzaCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBtZXRyaWNzVG9TZW5kID0gWy4uLnRoaXMuX3F1ZXVlXTtcbiAgICB0aGlzLl9xdWV1ZSA9IFtdO1xuICAgIHRoaXMuX3NlbmRCYXRjaGVkTWV0cmljcyhtZXRyaWNzVG9TZW5kKTtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIG9uZSBvciBtb3JlIGN1c3RvbSBtZXRyaWMgdmFsdWVzIHRvIHRoZSBxdWV1ZSBvZiB0aG9zZSB3YWl0aW5nXG4gICAqIHRvIGJlIHNlbnQsIG9yIHNlbmQgdGhlbSBpbW1lZGlhdGVseS4gVGhpcyBmdW5jdGlvbiBzdXBwb3J0cyBzaW1wbGVcbiAgICogbmFtZS1hbmQtdmFsdWUgbWV0cmljcy4gSXQgZG9lc24ndCBzdXBwb3J0IG1vcmUgY29tcGxleCBDbG91ZFdhdGNoIHR5cGVzLlxuICAgKlxuICAgKiBBIG1ldHJpYyBpcyBhbiBvYmplY3Qgd2l0aCBhdCBsZWFzdCAnbmFtZScgKHN0cmluZykgYW5kIG9wdGlvbmFsbHkgJ3ZhbHVlJ1xuICAgKiAobnVtYmVyLCBkZWZhdWx0cyB0byAwKS4gSXQgbWF5IGFsc28gb3B0aW9uYWxseSBpbmNsdWRlICd0aW1lc3RhbXAnXG4gICAqIChkZWZhdWx0cyB0byB0aGUgdGltZSBvZiB0aGUgY2FsbCB0byBzZW5kKCkpLCBhbmQgJ3VuaXQnLCB3aGljaFxuICAgKiBtdXN0IGJlIG9uZSBvZiBTZWNvbmRzLCBNaWNyb3NlY29uZHMsIE1pbGxpc2Vjb25kcywgQnl0ZXMsIEtpbG9ieXRlcyxcbiAgICogTWVnYWJ5dGVzLCBHaWdhYnl0ZXMsIFRlcmFieXRlcywgQml0cywgS2lsb2JpdHMsIE1lZ2FiaXRzLCBHaWdhYml0cyxcbiAgICogVGVyYWJpdHMsIFBlcmNlbnQsIENvdW50LCBCeXRlcy9TZWNvbmQsIEtpbG9ieXRlcy9TZWNvbmQsXG4gICAqIE1lZ2FieXRlcy9TZWNvbmQsIEdpZ2FieXRlcy9TZWNvbmQsIFRlcmFieXRlcy9TZWNvbmQsXG4gICAqIEJpdHMvU2Vjb25kLCBLaWxvYml0cy9TZWNvbmQsIE1lZ2FiaXRzL1NlY29uZCwgR2lnYWJpdHMvU2Vjb25kLFxuICAgKiBUZXJhYml0cy9TZWNvbmQsIENvdW50L1NlY29uZCBvciBOb25lIChkZWZhdWx0cyB0byAnQ291bnQnKS5cbiAgICogVGhlcmUgbWF5IGFsc28gYmUgYSAnZGltZW5zaW9ucydcbiAgICogb2JqZWN0LCB3aGljaCBoYXMgZGltZW5zaW9uIG5hbWVzIGFzIGtleXMgYW5kIGRpbWVuc2lvblxuICAgKiB2YWx1ZXMgYXMgdmFsdWVzLiBFbXB0eSBvciBmYWxzeSBkaW1lbnNpb24gdmFsdWVzIGFyZSBmaWx0ZXJlZCBvdXQuXG4gICAqXG4gICAqIEluIGEgbG9jYWwgZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnQsIG1ldHJpY3MgYXJlIHF1ZXVlZCBidXQgbm90IHNlbnRcbiAgICogdW5sZXNzIHRoZSBTRU5EX0NXX01FVFJJQ1MgZW52aXJvbm1lbnQgdmFyaWFibGUgaXMgc2V0LiBUaGlzIGFsbG93c1xuICAgKiBmb3IgdGVzdGluZyBtZXRyaWMgc2VuZGluZyBiZWhhdmlvciBsb2NhbGx5LlxuICAgKlxuICAgKiBUaGUgbWV0cmljcyBhcmUgYWRkZWQgdG8gYW4gaW50ZXJuYWwgcXVldWUgc28gdGhhdCB0aGV5IGNhbiBiZVxuICAgKiBiYXRjaGVkIHVwIHRvIHNlbmQgbW9yZSBlZmZpY2llbnRseS4gVGhleSBhcmUgb25seSBzZW50IHdoZW5cbiAgICogZmx1c2goKSBpcyBjYWxsZWQsIHVubGVzcyBpbW1lZGlhdGUgaXMgdHJ1ZS5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIG1ldHJpY3MgLSBBcnJheSBvZiBJbnB1dE1ldHJpYyBvYmplY3RzIHRvIHNlbmRcbiAgICogQHBhcmFtIGltbWVkaWF0ZSAtIElmIHRydWUsIHNlbmQgbWV0cmljcyBpbW1lZGlhdGVseSBpbnN0ZWFkIG9mIHF1ZXVpbmcgKGRlZmF1bHQ6IGZhbHNlKVxuICAgKi9cbiAgc2VuZChtZXRyaWNzOiBJbnB1dE1ldHJpY1tdLCBpbW1lZGlhdGU6IGJvb2xlYW4gPSBmYWxzZSk6IHZvaWQge1xuICAgIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XG4gICAgY29uc3QgbWV0cmljRGF0YUFycmF5OiBNZXRyaWNEYXR1bVtdID0gbWV0cmljcy5tYXAoKG1ldHJpYykgPT4gdGhpcy5fY29udmVydFRvTWV0cmljRGF0dW0obWV0cmljLCBub3cpKTtcblxuICAgIGlmIChpbW1lZGlhdGUpIHtcbiAgICAgIC8vIFNlbmQgaW1tZWRpYXRlbHkgd2l0aG91dCB3YWl0aW5nIChmaXJlIGFuZCBmb3JnZXQpXG4gICAgICB0aGlzLl9zZW5kQmF0Y2hlZE1ldHJpY3MobWV0cmljRGF0YUFycmF5KTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gQWRkIHRvIHF1ZXVlXG4gICAgICB0aGlzLl9xdWV1ZS5wdXNoKC4uLm1ldHJpY0RhdGFBcnJheSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgc2luZ2xldG9uIE1ldHJpY3NTZW5kZXIgaW5zdGFuY2UuXG4gICAqXG4gICAqIENyZWF0ZXMgYSBuZXcgaW5zdGFuY2UgaWYgb25lIGRvZXNuJ3QgZXhpc3QsIG90aGVyd2lzZSByZXR1cm5zXG4gICAqIHRoZSBleGlzdGluZyBpbnN0YW5jZS5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIHNpbmdsZXRvbiBNZXRyaWNzU2VuZGVyIGluc3RhbmNlXG4gICAqL1xuICBzdGF0aWMgZ2V0U2VuZGVyKCk6IE1ldHJpY3NTZW5kZXIge1xuICAgIGlmICghTWV0cmljc1NlbmRlci5faW5zdGFuY2UpIHtcbiAgICAgIE1ldHJpY3NTZW5kZXIuX2luc3RhbmNlID0gbmV3IE1ldHJpY3NTZW5kZXIoKTtcbiAgICB9XG4gICAgcmV0dXJuIE1ldHJpY3NTZW5kZXIuX2luc3RhbmNlO1xuICB9XG59XG5cbi8vIEFsbG93IHRoZSBwcmVzZW5jZSBvZiBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZSB0b1xuLy8gZW5hYmxlIHNlbmRpbmcgb2YgQ2xvdWRXYXRjaCBtZXRyaWNzIChmb3IgbG9jYWxcbi8vIGludGVncmF0aW9uIHRlc3RpbmcpXG5NZXRyaWNzU2VuZGVyLl9vdmVycmlkZSA9ICEhcHJvY2Vzcy5lbnYuU0VORF9DV19NRVRSSUNTO1xuIiwgIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjUsIFNhbGVzZm9yY2UsIEluYy5cbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMlxuICogRm9yIGZ1bGwgbGljZW5zZSB0ZXh0LCBzZWUgdGhlIGxpY2Vuc2UudHh0IGZpbGUgaW4gdGhlIHJlcG8gcm9vdCBvciBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqL1xuXG5pbXBvcnQge1NlcnZlclJlc3BvbnNlfSBmcm9tICdodHRwJztcbmltcG9ydCB7cGlwZWxpbmV9IGZyb20gJ25vZGU6c3RyZWFtL3Byb21pc2VzJztcbmltcG9ydCB6bGliLCB7XG4gIHR5cGUgQnJvdGxpQ29tcHJlc3MsXG4gIHR5cGUgR3ppcCxcbiAgdHlwZSBEZWZsYXRlLFxuICB0eXBlIFpzdGRDb21wcmVzcyxcbiAgdHlwZSBabGliT3B0aW9ucyxcbiAgdHlwZSBCcm90bGlPcHRpb25zLFxuICB0eXBlIFpzdGRPcHRpb25zLFxufSBmcm9tICdub2RlOnpsaWInO1xuaW1wb3J0IE5lZ290aWF0b3IgZnJvbSAnbmVnb3RpYXRvcic7XG5pbXBvcnQgY29tcHJlc3NpYmxlIGZyb20gJ2NvbXByZXNzaWJsZSc7XG5pbXBvcnQgdHlwZSB7QVBJR2F0ZXdheVByb3h5RXZlbnQsIENvbnRleHR9IGZyb20gJ2F3cy1sYW1iZGEnO1xuaW1wb3J0IHR5cGUge0V4cHJlc3MsIFJlcXVlc3QsIFJlc3BvbnNlfSBmcm9tICdleHByZXNzJztcbmltcG9ydCB0eXBlIHtXcml0YWJsZX0gZnJvbSAnc3RyZWFtJztcbmltcG9ydCB7U2VydmVybGVzc1JlcXVlc3R9IGZyb20gJ0BoNGFkL3NlcnZlcmxlc3MtYWRhcHRlcic7XG5cbi8qKlxuICogSGVhZGVyIGtleXMgdG8gY29weSBmcm9tIHRoZSByZXF1ZXN0IHRvIHRoZSByZXNwb25zZS5cbiAqIFRoZXNlIGhlYWRlcnMgYXJlIHR5cGljYWxseSB1c2VkIGZvciB0cmFjaW5nLCBjb3JyZWxhdGlvbiwgb3Igb3RoZXIgcmVxdWVzdC9yZXNwb25zZSBtYXRjaGluZyBwdXJwb3Nlcy5cbiAqL1xuY29uc3QgUkVRVUVTVF9IRUFERVJTX1RPX0NPUFkgPSBbJ3gtY29ycmVsYXRpb24taWQnXSBhcyBjb25zdDtcblxuLy8gQ2hlY2sgaWYgenN0ZCBjb21wcmVzc2lvbiBpcyBhdmFpbGFibGUgKE5vZGUuanMgdjIyLjE1LjArKVxubGV0IGNyZWF0ZVpzdGRDb21wcmVzczogKChvcHRpb25zPzogWnN0ZE9wdGlvbnMpID0+IFpzdGRDb21wcmVzcykgfCB1bmRlZmluZWQ7XG50cnkge1xuICAvLyBUcnkgdG8gaW1wb3J0IGNyZWF0ZVpzdGRDb21wcmVzcyAtIGl0IG1heSBub3QgZXhpc3QgaW4gb2xkZXIgTm9kZS5qcyB2ZXJzaW9uc1xuICBpZiAodHlwZW9mIHpsaWIuY3JlYXRlWnN0ZENvbXByZXNzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgY3JlYXRlWnN0ZENvbXByZXNzID0gemxpYi5jcmVhdGVac3RkQ29tcHJlc3M7XG4gIH1cbn0gY2F0Y2gge1xuICAvLyB6c3RkIG5vdCBhdmFpbGFibGVcbn1cblxuLy8gRGVjbGFyZSBnbG9iYWwgYXdzbGFtYmRhIHR5cGUgZm9yIEFXUyBMYW1iZGEgcnVudGltZVxuZGVjbGFyZSBjb25zdCBhd3NsYW1iZGE6IHtcbiAgSHR0cFJlc3BvbnNlU3RyZWFtOiB7XG4gICAgZnJvbShcbiAgICAgIHN0cmVhbTogV3JpdGFibGUsXG4gICAgICBtZXRhZGF0YToge1xuICAgICAgICBzdGF0dXNDb2RlOiBudW1iZXI7XG4gICAgICAgIGhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkPjtcbiAgICAgIH0sXG4gICAgKTogV3JpdGFibGU7XG4gIH07XG59O1xuXG5pbnRlcmZhY2UgRXhwcmVzc1JlcXVlc3QgZXh0ZW5kcyBSZXF1ZXN0IHtcbiAgYXBpR2F0ZXdheT86IHtcbiAgICBldmVudDogQVBJR2F0ZXdheVByb3h5RXZlbnQ7XG4gICAgY29udGV4dDogQ29udGV4dDtcbiAgfTtcbn1cblxuaW50ZXJmYWNlIEV4cHJlc3NSZXNwb25zZSBleHRlbmRzIFJlc3BvbnNlIHtcbiAgZmx1c2hhYmxlPzogYm9vbGVhbjtcbn1cblxuaW50ZXJmYWNlIFN0cmVhbU1ldGFkYXRhIHtcbiAgc3RhdHVzQ29kZTogbnVtYmVyO1xuICBoZWFkZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBzdHJpbmdbXSB8IHVuZGVmaW5lZD47XG4gIG11bHRpVmFsdWVIZWFkZXJzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nW10gfCB1bmRlZmluZWQ+O1xuICBjb29raWVzPzogc3RyaW5nW107XG59XG5cbnR5cGUgQ29tcHJlc3Npb25TdHJlYW0gPSBCcm90bGlDb21wcmVzcyB8IEd6aXAgfCBEZWZsYXRlIHwgWnN0ZENvbXByZXNzO1xuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgcmVzcG9uc2UgY29tcHJlc3Npb24uXG4gKlxuICogQHByb3BlcnR5IGVuYWJsZWQgLSBXaGV0aGVyIGNvbXByZXNzaW9uIGlzIGVuYWJsZWQuIFNldCB0byBmYWxzZSB0byBkaXNhYmxlIGNvbXByZXNzaW9uIGVudGlyZWx5LlxuICogICAgICAgICAgICAgICAgICAgICBEZWZhdWx0cyB0byB0cnVlIChjb21wcmVzc2lvbiBlbmFibGVkKS5cbiAqIEBwcm9wZXJ0eSBlbmNvZGluZyAtIFRoZSBjb21wcmVzc2lvbiBlbmNvZGluZyB0byB1c2UgKCdicicsICd6c3RkJywgJ2d6aXAnLCAnZGVmbGF0ZScpLlxuICogICAgICAgICAgICAgICAgICAgICAgSWYgbm90IHNwZWNpZmllZCwgdGhlIGJlc3QgZW5jb2Rpbmcgd2lsbCBiZSBuZWdvdGlhdGVkIGJhc2VkIG9uIEFjY2VwdC1FbmNvZGluZyBoZWFkZXIuXG4gKiBAcHJvcGVydHkgb3B0aW9ucyAgLSBDb21wcmVzc2lvbiBsaWJyYXJ5IG9wdGlvbnMuIFRoaXMgY2FuIGluY2x1ZGUgYW55IG9mIHRoZSBvcHRpb25zIGFjY2VwdGVkIGJ5XG4gKiAgICAgICAgICAgICAgICAgICAgICB6bGliLCBCcm90bGksIG9yIFpzdGQsIGFzIGRlZmluZWQgaW4gdGhlIHpsaWIgbGlicmFyeSwgYW5kIHdpbGwgYmUgcGFzc2VkXG4gKiAgICAgICAgICAgICAgICAgICAgICBkaXJlY3RseSB0byB0aGUgY29ycmVzcG9uZGluZyBjb21wcmVzc2lvbiBsaWJyYXJ5LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbXByZXNzaW9uQ29uZmlnIHtcbiAgZW5hYmxlZDogYm9vbGVhbjtcbiAgZW5jb2Rpbmc/OiAnYnInIHwgJ3pzdGQnIHwgJ2d6aXAnIHwgJ2RlZmxhdGUnO1xuICBvcHRpb25zPzogWmxpYk9wdGlvbnMgfCBCcm90bGlPcHRpb25zIHwgWnN0ZE9wdGlvbnM7XG59XG5cbnR5cGUgQXN5bmNIYW5kbGVyRnVuY3Rpb24gPSAoZXZlbnQ6IEFQSUdhdGV3YXlQcm94eUV2ZW50LCBjb250ZXh0OiBDb250ZXh0KSA9PiBQcm9taXNlPHZvaWQ+O1xuXG4vKipcbiAqIENyZWF0ZXMgYSBMYW1iZGEgQWRhcHRlciB0aGF0IHdyYXBzIGFuIEV4cHJlc3MgYXBwIGFuZCBzdXBwb3J0cyByZXNwb25zZSBzdHJlYW1pbmdcbiAqIGZvciBBUEkgR2F0ZXdheSB2MSBwcm94eSBpbnRlZ3JhdGlvbiB1c2luZyBBV1MgTGFtYmRhIHJlc3BvbnNlIHN0cmVhbWluZ1xuICpcbiAqIEBwYXJhbSBhcHAgLSBFeHByZXNzIGFwcGxpY2F0aW9uIGluc3RhbmNlXG4gKiBAcGFyYW0gcmVzcG9uc2VTdHJlYW0gLSBBV1MgTGFtYmRhIHJlc3BvbnNlIHN0cmVhbVxuICogQHBhcmFtIGNvbXByZXNzaW9uQ29uZmlnIC0gT3B0aW9uYWwgY29tcHJlc3Npb24gY29uZmlndXJhdGlvblxuICogQHJldHVybnMgTGFtYmRhIGhhbmRsZXIgZnVuY3Rpb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVN0cmVhbWluZ0xhbWJkYUFkYXB0ZXIoXG4gIGFwcDogRXhwcmVzcyxcbiAgcmVzcG9uc2VTdHJlYW06IFdyaXRhYmxlLFxuICBjb21wcmVzc2lvbkNvbmZpZzogQ29tcHJlc3Npb25Db25maWcgPSB7ZW5hYmxlZDogdHJ1ZX0sXG4pOiBBc3luY0hhbmRsZXJGdW5jdGlvbiB7XG4gIGNvbnN0IGhhbmRsZXIgPSBhc3luYyAoZXZlbnQ6IEFQSUdhdGV3YXlQcm94eUV2ZW50LCBjb250ZXh0OiBDb250ZXh0KTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHN0cmVhbVJlc3BvbnNlKGV2ZW50LCByZXNwb25zZVN0cmVhbSwgY29udGV4dCwgYXBwLCBjb21wcmVzc2lvbkNvbmZpZyk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGluIHN0cmVhbWluZyBoYW5kbGVyOicsIGVycm9yKTtcbiAgICAgIGNvbnN0IGlzU3RyZWFtT3BlbiA9XG4gICAgICAgIHJlc3BvbnNlU3RyZWFtICYmIHJlc3BvbnNlU3RyZWFtLndyaXRhYmxlICYmICFyZXNwb25zZVN0cmVhbS5kZXN0cm95ZWQgJiYgIXJlc3BvbnNlU3RyZWFtLndyaXRhYmxlRW5kZWQ7XG5cbiAgICAgIGlmIChpc1N0cmVhbU9wZW4gJiYgdHlwZW9mIHJlc3BvbnNlU3RyZWFtLndyaXRlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogU3RyaW5nKGVycm9yKTtcbiAgICAgICAgcmVzcG9uc2VTdHJlYW0ud3JpdGUoYEludGVybmFsIFNlcnZlciBFcnJvcjogJHtlcnJvck1lc3NhZ2V9YCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdbZXJyb3IgaGFuZGxlcl0gQ2Fubm90IHdyaXRlIGVycm9yIC0gc3RyZWFtIGlzIGNsb3NlZCcpO1xuICAgICAgfVxuICAgIH0gZmluYWxseSB7XG4gICAgICBjb25zdCBpc1N0cmVhbU9wZW4gPVxuICAgICAgICByZXNwb25zZVN0cmVhbSAmJiByZXNwb25zZVN0cmVhbS53cml0YWJsZSAmJiAhcmVzcG9uc2VTdHJlYW0uZGVzdHJveWVkICYmICFyZXNwb25zZVN0cmVhbS53cml0YWJsZUVuZGVkO1xuICAgICAgaWYgKGlzU3RyZWFtT3BlbiAmJiB0eXBlb2YgcmVzcG9uc2VTdHJlYW0uZW5kID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJlc3BvbnNlU3RyZWFtLmVuZCgpO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICByZXR1cm4gaGFuZGxlcjtcbn1cblxuLyoqXG4gKiBTdHJlYW1zIHRoZSByZXNwb25zZSBmcm9tIEV4cHJlc3MgYXBwIHVzaW5nIEFXUyBMYW1iZGEgSHR0cFJlc3BvbnNlU3RyZWFtXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHN0cmVhbVJlc3BvbnNlKFxuICBldmVudDogQVBJR2F0ZXdheVByb3h5RXZlbnQsXG4gIHJlc3BvbnNlU3RyZWFtOiBXcml0YWJsZSxcbiAgY29udGV4dDogQ29udGV4dCxcbiAgYXBwOiBFeHByZXNzLFxuICBjb21wcmVzc2lvbkNvbmZpZz86IENvbXByZXNzaW9uQ29uZmlnLFxuKTogUHJvbWlzZTx2b2lkPiB7XG4gIC8vIENvbnZlcnQgQVBJIEdhdGV3YXkgZXZlbnQgdG8gRXhwcmVzcy1jb21wYXRpYmxlIHJlcXVlc3RcbiAgY29uc3QgZXhwcmVzc1JlcXVlc3QgPSBjcmVhdGVFeHByZXNzUmVxdWVzdChldmVudCwgY29udGV4dCk7XG5cbiAgY29uc3QgZXhwcmVzc1Jlc3BvbnNlID0gY3JlYXRlRXhwcmVzc1Jlc3BvbnNlKHJlc3BvbnNlU3RyZWFtLCBldmVudCwgY29udGV4dCwgZXhwcmVzc1JlcXVlc3QsIGNvbXByZXNzaW9uQ29uZmlnKTtcblxuICAvLyBQcm9jZXNzIHRoZSByZXF1ZXN0IHRocm91Z2ggRXhwcmVzcyBhcHBcbiAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBsZXQgcmVzb2x2ZWQgPSBmYWxzZTtcbiAgICBjb25zdCByZXNvbHZlT25jZSA9ICgpID0+IHtcbiAgICAgIGlmICghcmVzb2x2ZWQpIHtcbiAgICAgICAgcmVzb2x2ZWQgPSB0cnVlO1xuICAgICAgICByZXNvbHZlKCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IHJlamVjdE9uY2UgPSAoZXJyOiBFcnJvcikgPT4ge1xuICAgICAgaWYgKCFyZXNvbHZlZCkge1xuICAgICAgICByZXNvbHZlZCA9IHRydWU7XG4gICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICAvLyBTZWUgZXZlbnRzIGRlZmluZWQgZm9yIGhodHAuc2VydmVyUmVzcG9uc2UgaW50ZXJmYWNlIGhlcmU6XG4gICAgLy8gaHR0cHM6Ly9ub2RlanMub3JnL2RvY3MvbGF0ZXN0LXYyNC54L2FwaS9odHRwLmh0bWwjY2xhc3MtaHR0cHNlcnZlcnJlc3BvbnNlXG5cbiAgICAvLyBIYW5kbGUgcmVzcG9uc2UgZmluaXNoXG4gICAgZXhwcmVzc1Jlc3BvbnNlLm9uY2UoJ2ZpbmlzaCcsIHJlc29sdmVPbmNlKTtcbiAgICAvLyBoYW5kbGUgcmVzcG9uc2UgY2xvc2UsIGVpdGhlciBhZnRlciBhICdmaW5pc2gnIG9yIGlmIHVuZGVybHlpbmdcbiAgICAvLyBjb25uZWN0aW9uIGlzIGNsb3NlZCBlYXJseVxuICAgIGV4cHJlc3NSZXNwb25zZS5vbmNlKCdjbG9zZScsIHJlc29sdmVPbmNlKTtcblxuICAgIC8vIEhhbmRsZSByZXNwb25zZSBlcnJvcnNcbiAgICBleHByZXNzUmVzcG9uc2Uub25jZSgnZXJyb3InLCByZWplY3RPbmNlKTtcblxuICAgIHRyeSB7XG4gICAgICBhcHAoZXhwcmVzc1JlcXVlc3QsIGV4cHJlc3NSZXNwb25zZSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGluIHN0cmVhbVJlc3BvbnNlOicsIGVycm9yKTtcbiAgICAgIHJlamVjdE9uY2UoZXJyb3IgYXMgRXJyb3IpO1xuICAgIH1cbiAgfSk7XG59XG5cbi8qKlxuICogQnVpbGRzIGEgZnVsbCBVUkwgcGF0aCB3aXRoIHF1ZXJ5IHN0cmluZyBmcm9tIEFQSSBHYXRld2F5IGV2ZW50XG4gKiBNZXJnZXMgbXVsdGlWYWx1ZVF1ZXJ5U3RyaW5nUGFyYW1ldGVycyBhbmQgcXVlcnlTdHJpbmdQYXJhbWV0ZXJzXG4gKi9cbmNvbnN0IGdldFBhdGhGcm9tRXZlbnQgPSAoZXZlbnQ6IEFQSUdhdGV3YXlQcm94eUV2ZW50KTogc3RyaW5nID0+IHtcbiAgY29uc3QgcGF0aCA9IGV2ZW50LnBhdGg7XG5cbiAgLy8gU3RhcnQgd2l0aCBtdWx0aS12YWx1ZSBxdWVyeSBwYXJhbWV0ZXJzIChhbHJlYWR5IGFycmF5cyksIGZpbHRlcmluZyBvdXQgdW5kZWZpbmVkIHZhbHVlc1xuICBjb25zdCBtZXJnZWRQYXJhbXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPiA9IHt9O1xuICBpZiAoZXZlbnQubXVsdGlWYWx1ZVF1ZXJ5U3RyaW5nUGFyYW1ldGVycykge1xuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVzXSBvZiBPYmplY3QuZW50cmllcyhldmVudC5tdWx0aVZhbHVlUXVlcnlTdHJpbmdQYXJhbWV0ZXJzKSkge1xuICAgICAgaWYgKHZhbHVlcykge1xuICAgICAgICBtZXJnZWRQYXJhbXNba2V5XSA9IFsuLi52YWx1ZXNdO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIE1lcmdlIGluIHNpbmdsZS12YWx1ZSBxdWVyeSBwYXJhbWV0ZXJzLCBjb252ZXJ0aW5nIHRvIGFycmF5c1xuICBpZiAoZXZlbnQucXVlcnlTdHJpbmdQYXJhbWV0ZXJzKSB7XG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoZXZlbnQucXVlcnlTdHJpbmdQYXJhbWV0ZXJzKSkge1xuICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIGNvbnRpbnVlO1xuXG4gICAgICAvLyBBZGQgdG8gZXhpc3RpbmcgYXJyYXkgb3IgY3JlYXRlIG5ldyBvbmVcbiAgICAgIGlmIChtZXJnZWRQYXJhbXNba2V5XSkge1xuICAgICAgICBpZiAoIW1lcmdlZFBhcmFtc1trZXldLmluY2x1ZGVzKHZhbHVlKSkge1xuICAgICAgICAgIG1lcmdlZFBhcmFtc1trZXldLnB1c2godmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBtZXJnZWRQYXJhbXNba2V5XSA9IFt2YWx1ZV07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gQnVpbGQgcXVlcnkgc3RyaW5nXG4gIGNvbnN0IHNlYXJjaFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKTtcbiAgZm9yIChjb25zdCBba2V5LCB2YWx1ZXNdIG9mIE9iamVjdC5lbnRyaWVzKG1lcmdlZFBhcmFtcykpIHtcbiAgICBmb3IgKGNvbnN0IHZhbHVlIG9mIHZhbHVlcykge1xuICAgICAgc2VhcmNoUGFyYW1zLmFwcGVuZChrZXksIHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBjb25zdCBxdWVyeVN0cmluZyA9IHNlYXJjaFBhcmFtcy50b1N0cmluZygpO1xuICByZXR1cm4gcXVlcnlTdHJpbmcgPyBgJHtwYXRofT8ke3F1ZXJ5U3RyaW5nfWAgOiBwYXRoO1xufTtcblxuLyoqXG4gKiBDb252ZXJ0cyBBUEkgR2F0ZXdheSBldmVudCB0byBFeHByZXNzLWNvbXBhdGlibGUgcmVxdWVzdCBvYmplY3RcbiAqIENyZWF0ZXMgYSBwcm9wZXIgSW5jb21pbmdNZXNzYWdlLWxpa2Ugb2JqZWN0IHdpdGggc3RyZWFtIHByb3BlcnRpZXNcbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUV4cHJlc3NSZXF1ZXN0KGV2ZW50OiBBUElHYXRld2F5UHJveHlFdmVudCwgY29udGV4dDogQ29udGV4dCk6IEV4cHJlc3NSZXF1ZXN0IHtcbiAgY29uc3Qge2h0dHBNZXRob2QsIGhlYWRlcnMsIG11bHRpVmFsdWVIZWFkZXJzLCBib2R5LCBpc0Jhc2U2NEVuY29kZWQsIHJlcXVlc3RDb250ZXh0fSA9IGV2ZW50O1xuXG4gIGNvbnN0IHJlbW90ZUFkZHJlc3MgPSByZXF1ZXN0Q29udGV4dD8uaWRlbnRpdHk/LnNvdXJjZUlwID8/IHVuZGVmaW5lZDtcblxuICBjb25zdCBib2R5RW5jb2RpbmcgPSBpc0Jhc2U2NEVuY29kZWQgPyAnYmFzZTY0JyA6ICd1dGYtOCc7XG4gIGNvbnN0IHJlcXVlc3RCb2R5OiBCdWZmZXIgfCB1bmRlZmluZWQgPSBib2R5ID8gQnVmZmVyLmZyb20oYm9keSwgYm9keUVuY29kaW5nKSA6IHVuZGVmaW5lZDtcblxuICAvLyBOb3JtYWxpemUgaGVhZGVycyB0byBsb3dlcmNhc2Uga2V5cyBmb3IgY2FzZS1pbnNlbnNpdGl2ZSBsb29rdXBcbiAgY29uc3Qgbm9ybWFsaXplZEhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcbiAgaWYgKGhlYWRlcnMpIHtcbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhoZWFkZXJzKSkge1xuICAgICAgY29uc3Qgbm9ybWFsaXplZEtleSA9IGtleS50b0xvd2VyQ2FzZSgpO1xuICAgICAgLy8gSWYgdmFsdWUgaXMgYW4gYXJyYXksIHRha2UgdGhlIGZpcnN0IG9uZTsgb3RoZXJ3aXNlIHVzZSB0aGUgdmFsdWVcbiAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSBjb250aW51ZTtcbiAgICAgIG5vcm1hbGl6ZWRIZWFkZXJzW25vcm1hbGl6ZWRLZXldID0gdmFsdWU7XG4gICAgfVxuICB9XG4gIGZvciAoY29uc3QgbXVsdGlWYWx1ZUhlYWRlcktleSBvZiBPYmplY3Qua2V5cyhtdWx0aVZhbHVlSGVhZGVycyB8fCB7fSkpIHtcbiAgICBjb25zdCB2YWx1ZSA9IG11bHRpVmFsdWVIZWFkZXJzW211bHRpVmFsdWVIZWFkZXJLZXldO1xuICAgIGlmICghdmFsdWUgfHwgdmFsdWUubGVuZ3RoIDw9IDEpIGNvbnRpbnVlO1xuICAgIG5vcm1hbGl6ZWRIZWFkZXJzW211bHRpVmFsdWVIZWFkZXJLZXldID0gdmFsdWUuam9pbignLCcpO1xuICB9XG5cbiAgY29uc3QgcmVxdWVzdCA9IG5ldyBTZXJ2ZXJsZXNzUmVxdWVzdCh7XG4gICAgbWV0aG9kOiBodHRwTWV0aG9kLFxuICAgIHVybDogZ2V0UGF0aEZyb21FdmVudChldmVudCksXG4gICAgaGVhZGVyczogbm9ybWFsaXplZEhlYWRlcnMsXG4gICAgYm9keTogcmVxdWVzdEJvZHksXG4gICAgcmVtb3RlQWRkcmVzcyxcbiAgfSk7XG5cbiAgLy8gQWRkIEV4cHJlc3Mtc3BlY2lmaWMgcHJvcGVydGllcyB0aGF0IGFyZW4ndCBwYXJ0IG9mIEluY29taW5nTWVzc2FnZVxuICAvLyBJbmNvbWluZ01lc3NhZ2UgZG9lc24ndCBoYXZlIHF1ZXJ5LCBwYXJhbXMsIGV0Yy4gLSB0aGVzZSBhcmUgYWRkZWQgYnkgRXhwcmVzc1xuICBjb25zdCByZXEgPSByZXF1ZXN0IGFzIHVua25vd24gYXMgRXhwcmVzc1JlcXVlc3Q7XG5cbiAgLy8gRXhwcmVzcy1saWtlIG1ldGhvZHNcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHJlcSwgJ2dldCcsIHtcbiAgICB2YWx1ZSh0aGlzOiBFeHByZXNzUmVxdWVzdCwgaGVhZGVyTmFtZTogc3RyaW5nKTogc3RyaW5nIHwgc3RyaW5nW10gfCB1bmRlZmluZWQge1xuICAgICAgcmV0dXJuIHRoaXMuaGVhZGVyc1toZWFkZXJOYW1lLnRvTG93ZXJDYXNlKCldO1xuICAgIH0sXG4gICAgd3JpdGFibGU6IHRydWUsXG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBjb25maWd1cmFibGU6IHRydWUsXG4gIH0pO1xuXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyZXEsICdoZWFkZXInLCB7XG4gICAgdmFsdWUodGhpczogRXhwcmVzc1JlcXVlc3QsIGhlYWRlck5hbWU6IHN0cmluZyk6IHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkIHtcbiAgICAgIHJldHVybiB0aGlzLmdldChoZWFkZXJOYW1lKTtcbiAgICB9LFxuICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICB9KTtcblxuICByZXR1cm4gcmVxO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiBhIGNvbnRlbnQgdHlwZSBpcyBjb21wcmVzc2libGUgdXNpbmcgdGhlIGNvbXByZXNzaWJsZSBwYWNrYWdlXG4gKlxuICogQHBhcmFtIGNvbnRlbnRUeXBlIC0gVGhlIGNvbnRlbnQgdHlwZSB0byBjaGVjayAoZS5nLiwgJ3RleHQvaHRtbCcsICdhcHBsaWNhdGlvbi9qc29uJylcbiAqIEByZXR1cm5zIHRydWUgaWYgdGhlIGNvbnRlbnQgdHlwZSBpcyBjb21wcmVzc2libGUsIGZhbHNlIG90aGVyd2lzZVxuICovXG5mdW5jdGlvbiBpc0NvbXByZXNzaWJsZShjb250ZW50VHlwZTogc3RyaW5nIHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XG4gIGlmICghY29udGVudFR5cGUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gISFjb21wcmVzc2libGUoY29udGVudFR5cGUpO1xufVxuXG5jb25zdCBpc051bGxPclVuZGVmaW5lZCA9ICh2YWx1ZTogdW5rbm93bik6IGJvb2xlYW4gPT4gdmFsdWUgPT0gbnVsbDtcblxuLyoqXG4gKiBEZXRlcm1pbmVzIHRoZSBiZXN0IGVuY29kaW5nIGJhc2VkIG9uIEFjY2VwdC1FbmNvZGluZyBoZWFkZXIgdXNpbmcgdGhlIG5lZ290aWF0b3IgcGFja2FnZVxuICogUHJlZmVycyBlbmNvZGluZ3MgaW4gb3JkZXI6IGJyIChicm90bGkpLCB6c3RkIChpZiBhdmFpbGFibGUpLCBnemlwLCBkZWZsYXRlXG4gKlxuICogQHBhcmFtIGFjY2VwdEVuY29kaW5nIC0gVGhlIEFjY2VwdC1FbmNvZGluZyBoZWFkZXIgdmFsdWUgZnJvbSB0aGUgcmVxdWVzdFxuICogQHBhcmFtIGNvbXByZXNzaW9uQ29uZmlnIC0gT3B0aW9uYWwgY29tcHJlc3Npb24gY29uZmlndXJhdGlvblxuICogQHJldHVybnMgVGhlIGJlc3QgYXZhaWxhYmxlIGVuY29kaW5nIG9yIG51bGwgaWYgbm9uZSBhcmUgc3VwcG9ydGVkXG4gKi9cbmZ1bmN0aW9uIGdldEJlc3RFbmNvZGluZyhcbiAgYWNjZXB0RW5jb2Rpbmc6IHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkLFxuICBjb21wcmVzc2lvbkNvbmZpZz86IENvbXByZXNzaW9uQ29uZmlnLFxuKTogc3RyaW5nIHwgbnVsbCB7XG4gIC8vIElmIGNvbXByZXNzaW9uIGlzIGV4cGxpY2l0bHkgZGlzYWJsZWQsIHJldHVybiBudWxsXG4gIGlmIChjb21wcmVzc2lvbkNvbmZpZz8uZW5hYmxlZCA9PT0gZmFsc2UpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8vIElmIG92ZXJyaWRlIGVuY29kaW5nIGlzIHByb3ZpZGVkLCB1c2UgaXQgcmVnYXJkbGVzcyBvZiBBY2NlcHQtRW5jb2RpbmcgaGVhZGVyXG4gIGlmIChjb21wcmVzc2lvbkNvbmZpZz8uZW5jb2RpbmcpIHtcbiAgICByZXR1cm4gY29tcHJlc3Npb25Db25maWcuZW5jb2Rpbmc7XG4gIH1cbiAgaWYgKCFhY2NlcHRFbmNvZGluZykge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIGNvbnN0IG5lZ290aWF0b3IgPSBuZXcgTmVnb3RpYXRvcih7aGVhZGVyczogeydhY2NlcHQtZW5jb2RpbmcnOiBhY2NlcHRFbmNvZGluZ319KTtcblxuICAvLyBCdWlsZCBhdmFpbGFibGUgZW5jb2RpbmdzIGxpc3QgYmFzZWQgb24gd2hhdCdzIHN1cHBvcnRlZFxuICAvLyBPcmRlciBvZiBwcmVmZXJlbmNlOiBiciAoYnJvdGxpKSwgenN0ZCAoaWYgYXZhaWxhYmxlKSwgZ3ppcCwgZGVmbGF0ZVxuICBjb25zdCBhdmFpbGFibGVFbmNvZGluZ3M6IHN0cmluZ1tdID0gWydicicsICdnemlwJywgJ2RlZmxhdGUnXTtcbiAgaWYgKGNyZWF0ZVpzdGRDb21wcmVzcykge1xuICAgIGF2YWlsYWJsZUVuY29kaW5ncy5wdXNoKCd6c3RkJyk7XG4gIH1cblxuICBjb25zdCBiZXN0RW5jb2RpbmcgPSBuZWdvdGlhdG9yLmVuY29kaW5nKGF2YWlsYWJsZUVuY29kaW5ncyk7XG5cbiAgcmV0dXJuIGJlc3RFbmNvZGluZyB8fCBudWxsO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBjb21wcmVzc2lvbiBzdHJlYW0gYmFzZWQgb24gdGhlIGVuY29kaW5nIHR5cGVcbiAqXG4gKiBAcGFyYW0gZW5jb2RpbmcgLSBUaGUgZW5jb2RpbmcgdHlwZSAoJ2JyJywgJ3pzdGQnLCAnZ3ppcCcsIG9yICdkZWZsYXRlJylcbiAqIEBwYXJhbSBjb21wcmVzc2lvbkNvbmZpZyAtIFRoZSBjb21wcmVzc2lvbiBjb25maWd1cmF0aW9uIG9wdGlvbnNcbiAqIEByZXR1cm5zIEEgY29tcHJlc3Npb24gc3RyZWFtIChCcm90bGlDb21wcmVzcywgWnN0ZENvbXByZXNzLCBHemlwLCBvciBEZWZsYXRlKVxuICogQHRocm93cyBFcnJvciBpZiB0aGUgZW5jb2RpbmcgaXMgbm90IHN1cHBvcnRlZFxuICovXG5mdW5jdGlvbiBjcmVhdGVDb21wcmVzc2lvblN0cmVhbShlbmNvZGluZzogc3RyaW5nLCBjb21wcmVzc2lvbkNvbmZpZz86IENvbXByZXNzaW9uQ29uZmlnKTogQ29tcHJlc3Npb25TdHJlYW0ge1xuICBjb25zdCBvcHRpb25zID0gY29tcHJlc3Npb25Db25maWc/Lm9wdGlvbnMgfHwgdW5kZWZpbmVkO1xuICBzd2l0Y2ggKGVuY29kaW5nKSB7XG4gICAgY2FzZSAnYnInOlxuICAgICAgcmV0dXJuIHpsaWIuY3JlYXRlQnJvdGxpQ29tcHJlc3Mob3B0aW9ucyBhcyBCcm90bGlPcHRpb25zKTtcbiAgICBjYXNlICd6c3RkJzpcbiAgICAgIGlmICghY3JlYXRlWnN0ZENvbXByZXNzKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignenN0ZCBjb21wcmVzc2lvbiBpcyBub3QgYXZhaWxhYmxlIGluIHRoaXMgTm9kZS5qcyB2ZXJzaW9uIChyZXF1aXJlcyB2MjIuMTUuMCspJyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gY3JlYXRlWnN0ZENvbXByZXNzKG9wdGlvbnMgYXMgWnN0ZE9wdGlvbnMpO1xuICAgIGNhc2UgJ2d6aXAnOlxuICAgICAgcmV0dXJuIHpsaWIuY3JlYXRlR3ppcChvcHRpb25zIGFzIFpsaWJPcHRpb25zKTtcbiAgICBjYXNlICdkZWZsYXRlJzpcbiAgICAgIHJldHVybiB6bGliLmNyZWF0ZURlZmxhdGUob3B0aW9ucyBhcyBabGliT3B0aW9ucyk7XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgZW5jb2Rpbmc6ICR7ZW5jb2Rpbmd9YCk7XG4gIH1cbn1cblxuLyoqXG4gKiBDcmVhdGVzIEV4cHJlc3MtY29tcGF0aWJsZSByZXNwb25zZSBvYmplY3QgdGhhdCBwcm9wZXJseSBleHRlbmRzIFNlcnZlclJlc3BvbnNlXG4gKlxuICogVGhpcyBmdW5jdGlvbiBjcmVhdGVzIGEgcmVzcG9uc2Ugb2JqZWN0IHRoYXQ6XG4gKiAtIFN1cHBvcnRzIEFXUyBMYW1iZGEgcmVzcG9uc2Ugc3RyZWFtaW5nIHZpYSBIdHRwUmVzcG9uc2VTdHJlYW1cbiAqIC0gQXV0b21hdGljYWxseSBjb21wcmVzc2VzIHJlc3BvbnNlcyBiYXNlZCBvbiBBY2NlcHQtRW5jb2RpbmcgaGVhZGVyXG4gKiAtIFVzZXMgbmVnb3RpYXRvciB0byBzZWxlY3QgdGhlIGJlc3QgYXZhaWxhYmxlIGVuY29kaW5nIChiciwgenN0ZCBpZiBhdmFpbGFibGUsIGd6aXAsIGRlZmxhdGUpXG4gKiAtIFVzZXMgY29tcHJlc3NpYmxlIHBhY2thZ2UgdG8gZGV0ZXJtaW5lIGlmIGNvbnRlbnQgc2hvdWxkIGJlIGNvbXByZXNzZWRcbiAqXG4gKiBDb21wcmVzc2lvbiBmbG93OlxuICogMS4gQ2hlY2sgQWNjZXB0LUVuY29kaW5nIGhlYWRlciBhbmQgc2VsZWN0IGJlc3QgZW5jb2RpbmdcbiAqIDIuIENyZWF0ZSBIdHRwUmVzcG9uc2VTdHJlYW0gd2l0aCBtZXRhZGF0YVxuICogMy4gSWYgY29tcHJlc3Npb24gaXMgYXBwbGljYWJsZSwgY3JlYXRlIGNvbXByZXNzaW9uIHN0cmVhbSBhbmQgcGlwZSB0byBodHRwUmVzcG9uc2VTdHJlYW1cbiAqIDQuIFdyaXRlIGRhdGEgdG8gY29tcHJlc3Npb24gc3RyZWFtIChvciBodHRwUmVzcG9uc2VTdHJlYW0gaWYgbm8gY29tcHJlc3Npb24pXG4gKiA1LiBFbmQgY29tcHJlc3Npb24gc3RyZWFtLCB3aGljaCBhdXRvbWF0aWNhbGx5IGVuZHMgaHR0cFJlc3BvbnNlU3RyZWFtXG4gKlxuICogQHBhcmFtIHJlc3BvbnNlU3RyZWFtIC0gVGhlIEFXUyBMYW1iZGEgcmVzcG9uc2Ugc3RyZWFtXG4gKiBAcGFyYW0gbWV0aG9kIC0gVGhlIEhUVFAgbWV0aG9kIChHRVQsIFBPU1QsIGV0Yy4pXG4gKiBAcGFyYW0gcmVxdWVzdCAtIE9wdGlvbmFsIEV4cHJlc3MgcmVxdWVzdCBvYmplY3QgKHVzZWQgdG8gY2hlY2sgQWNjZXB0LUVuY29kaW5nIGhlYWRlcilcbiAqIEByZXR1cm5zIEV4cHJlc3MtY29tcGF0aWJsZSByZXNwb25zZSBvYmplY3RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUV4cHJlc3NSZXNwb25zZShcbiAgcmVzcG9uc2VTdHJlYW06IFdyaXRhYmxlLFxuICBldmVudDogQVBJR2F0ZXdheVByb3h5RXZlbnQsXG4gIGNvbnRleHQ6IENvbnRleHQsXG4gIHJlcXVlc3Q/OiBFeHByZXNzUmVxdWVzdCxcbiAgY29tcHJlc3Npb25Db25maWc/OiBDb21wcmVzc2lvbkNvbmZpZyxcbik6IEV4cHJlc3NSZXNwb25zZSB7XG4gIGNvbnN0IG1ldGhvZCA9IGV2ZW50Lmh0dHBNZXRob2Q7XG4gIGxldCBzdGF0dXNDb2RlID0gMjAwO1xuICBsZXQgc3RhdHVzTWVzc2FnZTogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICBjb25zdCBoZWFkZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBzdHJpbmdbXSB8IHVuZGVmaW5lZD4gPSB7fTtcbiAgbGV0IHJlc3BvbnNlU3RhcnRlZCA9IGZhbHNlO1xuICBsZXQgaHR0cFJlc3BvbnNlU3RyZWFtOiBXcml0YWJsZSB8IG51bGwgPSBudWxsO1xuXG4gIC8vIERldGVybWluZSBpZiBjb21wcmVzc2lvbiBzaG91bGQgYmUgdXNlZCBiYXNlZCBvbiBBY2NlcHQtRW5jb2RpbmcgaGVhZGVyXG4gIGNvbnN0IGFjY2VwdEVuY29kaW5nID0gcmVxdWVzdD8uZ2V0KCdhY2NlcHQtZW5jb2RpbmcnKSB8fCAnaWRlbnRpdHknO1xuICBjb25zdCBzZWxlY3RlZEVuY29kaW5nID0gZ2V0QmVzdEVuY29kaW5nKGFjY2VwdEVuY29kaW5nLCBjb21wcmVzc2lvbkNvbmZpZykgfHwgJ2lkZW50aXR5JztcbiAgbGV0IGNvbXByZXNzaW9uU3RyZWFtOiBDb21wcmVzc2lvblN0cmVhbSB8IG51bGwgPSBudWxsO1xuICBsZXQgc2hvdWxkQ29tcHJlc3MgPSBmYWxzZTtcbiAgbGV0IGNvbXByZXNzaW9uSW5pdGlhbGl6ZWQgPSBmYWxzZTtcblxuICAvLyBIZWxwZXIgZnVuY3Rpb24gdG8gY2hlY2sgaWYgc3RyZWFtIGlzIHN0aWxsIHdyaXRhYmxlXG4gIGNvbnN0IGlzU3RyZWFtT3BlbiA9ICgpOiBib29sZWFuID0+IHtcbiAgICBjb25zdCBzdHJlYW1Ub0NoZWNrID0gY29tcHJlc3Npb25TdHJlYW0gfHwgaHR0cFJlc3BvbnNlU3RyZWFtIHx8IHJlc3BvbnNlU3RyZWFtO1xuICAgIHJldHVybiBzdHJlYW1Ub0NoZWNrICYmIHN0cmVhbVRvQ2hlY2sud3JpdGFibGUgJiYgIXN0cmVhbVRvQ2hlY2suZGVzdHJveWVkICYmICFzdHJlYW1Ub0NoZWNrLndyaXRhYmxlRW5kZWQ7XG4gIH07XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemVzIGNvbXByZXNzaW9uIHN0cmVhbSBhbmQgcGlwZXMgaXQgdG8gaHR0cFJlc3BvbnNlU3RyZWFtXG4gICAqIFRoaXMgbXVzdCBiZSBjYWxsZWQgYWZ0ZXIgaHR0cFJlc3BvbnNlU3RyZWFtIGlzIGNyZWF0ZWRcbiAgICpcbiAgICogQHBhcmFtIGh0dHBSZXNwb25zZVN0cmVhbSAtIFRoZSBIdHRwUmVzcG9uc2VTdHJlYW0gdG8gcGlwZSBjb21wcmVzc2VkIGRhdGEgdG9cbiAgICogQHBhcmFtIHNlbGVjdGVkRW5jb2RpbmcgLSBUaGUgZW5jb2RpbmcgdG8gdXNlIChiciwgZ3ppcCwgb3IgZGVmbGF0ZSlcbiAgICovXG4gIGNvbnN0IGluaXRpYWxpemVDb21wcmVzc2lvbiA9ICgpOiB2b2lkID0+IHtcbiAgICBpZiAoIWh0dHBSZXNwb25zZVN0cmVhbSB8fCBjb21wcmVzc2lvbkluaXRpYWxpemVkIHx8ICFzZWxlY3RlZEVuY29kaW5nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIC8vIENyZWF0ZSBjb21wcmVzc2lvbiBzdHJlYW0gYmFzZWQgb24gc2VsZWN0ZWQgZW5jb2RpbmdcbiAgICAgIGNvbXByZXNzaW9uU3RyZWFtID0gY3JlYXRlQ29tcHJlc3Npb25TdHJlYW0oc2VsZWN0ZWRFbmNvZGluZywgY29tcHJlc3Npb25Db25maWcpO1xuXG4gICAgICAvLyBTZXQgdXAgZXJyb3IgaGFuZGxpbmcgZm9yIGNvbXByZXNzaW9uIHN0cmVhbVxuICAgICAgY29tcHJlc3Npb25TdHJlYW0ub24oJ2Vycm9yJywgKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdDb21wcmVzc2lvbiBzdHJlYW0gZXJyb3I6JywgZXJyb3IpO1xuICAgICAgICBzaG91bGRDb21wcmVzcyA9IGZhbHNlO1xuICAgICAgfSk7XG5cbiAgICAgIC8vIFBpcGUgY29tcHJlc3Npb24gc3RyZWFtIHRvIGh0dHBSZXNwb25zZVN0cmVhbVxuICAgICAgLy8gVGhlIHsgZW5kOiB0cnVlIH0gb3B0aW9uIGVuc3VyZXMgaHR0cFJlc3BvbnNlU3RyZWFtIGlzIGVuZGVkIHdoZW4gY29tcHJlc3Npb25TdHJlYW0gZW5kc1xuICAgICAgY29tcHJlc3Npb25TdHJlYW0ucGlwZShodHRwUmVzcG9uc2VTdHJlYW0sIHtlbmQ6IHRydWV9KTtcblxuICAgICAgc2hvdWxkQ29tcHJlc3MgPSB0cnVlO1xuICAgICAgY29tcHJlc3Npb25Jbml0aWFsaXplZCA9IHRydWU7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHNldHRpbmcgdXAgY29tcHJlc3Npb246JywgZXJyb3IpO1xuICAgICAgc2hvdWxkQ29tcHJlc3MgPSBmYWxzZTtcbiAgICAgIGNvbXByZXNzaW9uU3RyZWFtID0gbnVsbDtcbiAgICB9XG4gIH07XG5cbiAgLyoqXG4gICAqIFdyaXRlcyBhIGNodW5rIHRvIHRoZSBhcHByb3ByaWF0ZSBzdHJlYW0gKGNvbXByZXNzaW9uIHN0cmVhbSBpZiBlbmFibGVkLCBvdGhlcndpc2UgaHR0cFJlc3BvbnNlU3RyZWFtKVxuICAgKlxuICAgKiBAcGFyYW0gY2h1bmsgLSBUaGUgZGF0YSBjaHVuayB0byB3cml0ZVxuICAgKiBAcmV0dXJucyB0cnVlIGlmIHRoZSBjaHVuayB3YXMgd3JpdHRlbiBzdWNjZXNzZnVsbHksIGZhbHNlIG90aGVyd2lzZVxuICAgKi9cbiAgY29uc3Qgd3JpdGVDaHVuayA9IChjaHVuaz86IHN0cmluZyB8IEJ1ZmZlciB8IFVpbnQ4QXJyYXkpOiBib29sZWFuID0+IHtcbiAgICAvLyBEb24ndCB3cml0ZSBudWxsLCB1bmRlZmluZWRcbiAgICBpZiAoaXNOdWxsT3JVbmRlZmluZWQoY2h1bmspIHx8ICFpc1N0cmVhbU9wZW4oKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBpZiAoc2hvdWxkQ29tcHJlc3MgJiYgY29tcHJlc3Npb25TdHJlYW0gJiYgY29tcHJlc3Npb25TdHJlYW0ud3JpdGFibGUpIHtcbiAgICAgICAgLy8gV3JpdGUgdG8gY29tcHJlc3Npb24gc3RyZWFtLCB3aGljaCB3aWxsIGNvbXByZXNzIGFuZCBwaXBlIHRvIGh0dHBSZXNwb25zZVN0cmVhbVxuICAgICAgICByZXR1cm4gY29tcHJlc3Npb25TdHJlYW0ud3JpdGUoY2h1bmspO1xuICAgICAgfSBlbHNlIGlmIChodHRwUmVzcG9uc2VTdHJlYW0gJiYgaHR0cFJlc3BvbnNlU3RyZWFtLndyaXRhYmxlKSB7XG4gICAgICAgIC8vIE5vIGNvbXByZXNzaW9uLCB3cml0ZSBkaXJlY3RseSB0byBodHRwUmVzcG9uc2VTdHJlYW1cbiAgICAgICAgcmV0dXJuIGh0dHBSZXNwb25zZVN0cmVhbS53cml0ZShjaHVuayk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHdyaXRpbmcgY2h1bms6JywgZXJyb3IpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBpc0NvbXByZXNzaW9uRW5hYmxlZCA9IChjb250ZW50VHlwZVN0cjogc3RyaW5nIHwgdW5kZWZpbmVkKTogYm9vbGVhbiA9PiB7XG4gICAgY29uc3QgZW5hYmxlZCA9IGNvbXByZXNzaW9uQ29uZmlnPy5lbmFibGVkID8/IHRydWU7XG4gICAgcmV0dXJuICEhKHNlbGVjdGVkRW5jb2RpbmcgJiYgc2VsZWN0ZWRFbmNvZGluZyAhPT0gJ2lkZW50aXR5JyAmJiBpc0NvbXByZXNzaWJsZShjb250ZW50VHlwZVN0cikgJiYgZW5hYmxlZCk7XG4gIH07XG5cbiAgY29uc3QgZ2V0Q29udGVudFR5cGUgPSAocmVzcG9uc2U6IEV4cHJlc3NSZXNwb25zZSk6IHN0cmluZyB8IHVuZGVmaW5lZCA9PiB7XG4gICAgY29uc3QgY29udGVudFR5cGUgPSByZXNwb25zZS5nZXRIZWFkZXIoJ2NvbnRlbnQtdHlwZScpO1xuICAgIGlmIChBcnJheS5pc0FycmF5KGNvbnRlbnRUeXBlKSkge1xuICAgICAgcmV0dXJuIGNvbnRlbnRUeXBlLmpvaW4oJywnKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBjb250ZW50VHlwZSA9PT0gJ251bWJlcicpIHtcbiAgICAgIHJldHVybiBTdHJpbmcoY29udGVudFR5cGUpO1xuICAgIH1cbiAgICByZXR1cm4gY29udGVudFR5cGU7XG4gIH07XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemVzIHRoZSByZXNwb25zZSBieTpcbiAgICogMS4gQ29sbGVjdGluZyBoZWFkZXJzXG4gICAqIDIuIERldGVybWluaW5nIGlmIGNvbXByZXNzaW9uIHNob3VsZCBiZSB1c2VkXG4gICAqIDMuIENyZWF0aW5nIEh0dHBSZXNwb25zZVN0cmVhbSB3aXRoIG1ldGFkYXRhXG4gICAqIDQuIFNldHRpbmcgdXAgY29tcHJlc3Npb24gc3RyZWFtIGlmIG5lZWRlZFxuICAgKlxuICAgKiBUaGlzIG11c3QgYmUgY2FsbGVkIGJlZm9yZSBhbnkgZGF0YSBpcyB3cml0dGVuIHRvIHRoZSByZXNwb25zZS5cbiAgICpcbiAgICogQHBhcmFtIHJlc3BvbnNlIC0gVGhlIEV4cHJlc3MgcmVzcG9uc2Ugb2JqZWN0XG4gICAqL1xuICBjb25zdCBpbml0aWFsaXplUmVzcG9uc2UgPSAocmVzcG9uc2U6IEV4cHJlc3NSZXNwb25zZSk6IHZvaWQgPT4ge1xuICAgIGlmIChyZXNwb25zZVN0YXJ0ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIWlzU3RyZWFtT3BlbigpKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdDYW5ub3QgaW5pdGlhbGl6ZSByZXNwb25zZSAtIHN0cmVhbSBpcyBjbG9zZWQnKTtcbiAgICAgIGVtaXRDbG9zZU9uY2UocmVzcG9uc2UpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIENvbGxlY3QgYWxsIGN1cnJlbnQgaGVhZGVycyBmcm9tIHRoZSByZXNwb25zZVxuICAgIGNvbnN0IGN1cnJlbnRIZWFkZXJzID0gcmVzcG9uc2UuZ2V0SGVhZGVycygpO1xuICAgIE9iamVjdC5hc3NpZ24oaGVhZGVycywgY3VycmVudEhlYWRlcnMpO1xuXG4gICAgZm9yIChjb25zdCBoZWFkZXIgb2YgUkVRVUVTVF9IRUFERVJTX1RPX0NPUFkpIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gcmVxdWVzdD8uZ2V0KGhlYWRlcik7XG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgaGVhZGVyc1toZWFkZXJdID0gdmFsdWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgY29udGVudFR5cGUgPSBnZXRDb250ZW50VHlwZShyZXNwb25zZSk7XG5cbiAgICBpZiAoaXNDb21wcmVzc2lvbkVuYWJsZWQoY29udGVudFR5cGUpKSB7XG4gICAgICBoZWFkZXJzWydjb250ZW50LWVuY29kaW5nJ10gPSBzZWxlY3RlZEVuY29kaW5nO1xuICAgICAgcmVzcG9uc2Uuc2V0SGVhZGVyKCdDb250ZW50LUVuY29kaW5nJywgc2VsZWN0ZWRFbmNvZGluZyk7XG4gICAgfVxuICAgIC8vIFJlbW92ZSBDb250ZW50LUxlbmd0aCBoZWFkZXIgd2hlbiBjb21wcmVzc2lvbiBpcyBlbmFibGVkIHNpbmNlIHRoZSBsZW5ndGggd2lsbCBjaGFuZ2VcbiAgICBkZWxldGUgaGVhZGVyc1snY29udGVudC1sZW5ndGgnXTtcbiAgICByZXNwb25zZS5yZW1vdmVIZWFkZXIoJ2NvbnRlbnQtbGVuZ3RoJyk7XG5cbiAgICAvLyBDcmVhdGUgSHR0cFJlc3BvbnNlU3RyZWFtIHdpdGggbWV0YWRhdGFcbiAgICAvLyBUaGlzIHdyaXRlcyB0aGUgSFRUUCBzdGF0dXMgYW5kIGhlYWRlcnMgdG8gdGhlIHN0cmVhbVxuICAgIGNvbnN0IG1ldGFkYXRhOiBTdHJlYW1NZXRhZGF0YSA9IHtcbiAgICAgIHN0YXR1c0NvZGU6IHJlc3BvbnNlLnN0YXR1c0NvZGUgfHwgc3RhdHVzQ29kZSxcbiAgICAgIGhlYWRlcnMsXG4gICAgfTtcblxuICAgIGNvbnN0IGNvb2tpZXMgPSBtZXRhZGF0YS5oZWFkZXJzWydzZXQtY29va2llJ107XG4gICAgaWYgKGNvb2tpZXMpIHtcbiAgICAgIG1ldGFkYXRhLmNvb2tpZXMgPSBBcnJheS5pc0FycmF5KGNvb2tpZXMpID8gY29va2llcyA6IFtjb29raWVzXTtcbiAgICAgIGRlbGV0ZSBtZXRhZGF0YS5oZWFkZXJzWydzZXQtY29va2llJ107XG4gICAgfVxuICAgIG1ldGFkYXRhLmhlYWRlcnMgPSBjb252ZXJ0SGVhZGVycyhtZXRhZGF0YS5oZWFkZXJzKTtcblxuICAgIGh0dHBSZXNwb25zZVN0cmVhbSA9IGF3c2xhbWJkYS5IdHRwUmVzcG9uc2VTdHJlYW0uZnJvbShyZXNwb25zZVN0cmVhbSwgbWV0YWRhdGEpO1xuXG4gICAgLy8gQmluZCAnZmluaXNoJyBhbmQgJ2Nsb3NlJyBoYW5kbGVycyB0byBlbWl0IHRoZSBzYW1lIGV2ZW50cyBvbiB0aGUgcmVzcG9uc2Ugb2JqZWN0XG4gICAgaHR0cFJlc3BvbnNlU3RyZWFtLm9uKCdmaW5pc2gnLCAoKSA9PiB7XG4gICAgICByZXNwb25zZS5maW5pc2hlZCA9IHRydWU7XG4gICAgICByZXNwb25zZS5lbWl0KCdmaW5pc2gnKTtcbiAgICB9KTtcbiAgICBodHRwUmVzcG9uc2VTdHJlYW0ub24oJ2Nsb3NlJywgKCkgPT4ge1xuICAgICAgcmVzcG9uc2UuZW1pdCgnY2xvc2UnKTtcbiAgICB9KTtcblxuICAgIC8vIFNldCB1cCBjb21wcmVzc2lvbiBzdHJlYW0gaWYgY29tcHJlc3Npb24gaXMgZW5hYmxlZFxuICAgIC8vIFRoZSBjb21wcmVzc2lvbiBzdHJlYW0gcGlwZXMgdG8gaHR0cFJlc3BvbnNlU3RyZWFtLCB3aGljaCBwaXBlcyB0byByZXNwb25zZVN0cmVhbVxuICAgIC8vICdpZGVudGl0eScgbWVhbnMgbm8gZW5jb2RpbmcsIHNvIHdlIHNob3VsZCBub3QgaW5pdGlhbGl6ZSBjb21wcmVzc2lvbiBmb3IgaXRcbiAgICBpZiAoaXNDb21wcmVzc2lvbkVuYWJsZWQoY29udGVudFR5cGUpKSB7XG4gICAgICBpbml0aWFsaXplQ29tcHJlc3Npb24oKTtcbiAgICB9XG5cbiAgICByZXNwb25zZVN0YXJ0ZWQgPSB0cnVlO1xuICB9O1xuXG4gIC8vIEhlbHBlciBmdW5jdGlvbiB0byBjb252ZXJ0IGhlYWRlcnMgdG8gdGhlIGV4cGVjdGVkIGZvcm1hdFxuICBjb25zdCBjb252ZXJ0SGVhZGVycyA9IChcbiAgICBoZWFkZXJzVG9Db252ZXJ0OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBzdHJpbmdbXSB8IG51bWJlciB8IHVuZGVmaW5lZD4sXG4gICk6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkPiA9PiB7XG4gICAgY29uc3QgY29udmVydGVkOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoaGVhZGVyc1RvQ29udmVydCkpIHtcbiAgICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgIGNvbnZlcnRlZFtrZXldID0gdmFsdWUuam9pbignLCcpO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICBjb252ZXJ0ZWRba2V5XSA9IFN0cmluZyh2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29udmVydGVkW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY29udmVydGVkO1xuICB9O1xuXG4gIC8qKlxuICAgKiBQaXBlcyBkYXRhIGZyb20gdGhlIGNvbXByZXNzaW9uIHN0cmVhbSAoaWYgZW5hYmxlZCkgb3IgaHR0cFJlc3BvbnNlU3RyZWFtIHRvIGEgZGVzdGluYXRpb25cbiAgICogTm90ZTogVGhpcyBpcyBhIHNpbXBsaWZpZWQgaW1wbGVtZW50YXRpb24gZm9yIEFQSSBjb21wYXRpYmlsaXR5XG4gICAqXG4gICAqIEBwYXJhbSBkZXN0aW5hdGlvbiAtIFRoZSBkZXN0aW5hdGlvbiBzdHJlYW0gdG8gcGlwZSB0b1xuICAgKiBAcmV0dXJucyB0cnVlIGlmIHRoZSBwaXBlIG9wZXJhdGlvbiB3YXMgc3VjY2Vzc2Z1bCwgZmFsc2Ugb3RoZXJ3aXNlXG4gICAqL1xuICBjb25zdCBwaXBlVG9EZXN0aW5hdGlvbiA9IGFzeW5jIChkZXN0aW5hdGlvbjogV3JpdGFibGUpOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgICBpZiAoIWlzU3RyZWFtT3BlbigpKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdbcGlwZVRvRGVzdGluYXRpb25dIENhbm5vdCBwaXBlIC0gc3RyZWFtIGlzIGNsb3NlZCcpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIE5vdGU6IHBpcGVUb0Rlc3RpbmF0aW9uIGlzIGNhbGxlZCBmcm9tIHJlcy5waXBlKCkgd2hpY2ggYWxyZWFkeSBjYWxscyBpbml0aWFsaXplUmVzcG9uc2VcbiAgICAvLyBTbyBjb21wcmVzc2lvbiBzaG91bGQgYWxyZWFkeSBiZSBpbml0aWFsaXplZCBpZiBuZWVkZWRcbiAgICB0cnkge1xuICAgICAgLy8gUGlwZSBmcm9tIGNvbXByZXNzaW9uIHN0cmVhbSBpZiBhdmFpbGFibGUsIG90aGVyd2lzZSBmcm9tIGh0dHBSZXNwb25zZVN0cmVhbVxuICAgICAgY29uc3Qgc291cmNlU3RyZWFtID0gY29tcHJlc3Npb25TdHJlYW0gfHwgaHR0cFJlc3BvbnNlU3RyZWFtO1xuICAgICAgaWYgKCFzb3VyY2VTdHJlYW0pIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignW3BpcGVUb0Rlc3RpbmF0aW9uXSBObyBzb3VyY2Ugc3RyZWFtIGF2YWlsYWJsZScpO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgLSBQaXBlbGluZSBleHBlY3RzIFJlYWRhYmxlLCBidXQgY29tcHJlc3Npb24gc3RyZWFtcyBhcmUgVHJhbnNmb3JtIHN0cmVhbXNcbiAgICAgIGF3YWl0IHBpcGVsaW5lKHNvdXJjZVN0cmVhbSwgZGVzdGluYXRpb24pO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1twaXBlVG9EZXN0aW5hdGlvbl0gUGlwZWxpbmUgZXJyb3I6JywgZXJyb3IpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfTtcblxuICAvLyBAdHMtZXhwZWN0LWVycm9yIC0gU2VydmVyUmVzcG9uc2UgY29uc3RydWN0b3IgZXhwZWN0cyBJbmNvbWluZ01lc3NhZ2UsIGJ1dCB3ZSdyZSBjcmVhdGluZyBhIG1pbmltYWwgbW9ja1xuICBjb25zdCByZXMgPSBuZXcgU2VydmVyUmVzcG9uc2Uoe1xuICAgIG1ldGhvZCxcbiAgfSkgYXMgRXhwcmVzc1Jlc3BvbnNlO1xuXG4gIC8vIE92ZXJyaWRlIHN0YXR1c01lc3NhZ2UgcHJvcGVydHkgdG8gdHJhY2sgY3VzdG9tIHN0YXR1cyBtZXNzYWdlc1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkocmVzLCAnc3RhdHVzTWVzc2FnZScsIHtcbiAgICBnZXQoKSB7XG4gICAgICByZXR1cm4gc3RhdHVzTWVzc2FnZTtcbiAgICB9LFxuICAgIHNldCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICBzdGF0dXNNZXNzYWdlID0gdmFsdWU7XG4gICAgfSxcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgfSk7XG5cbiAgLy8gT3ZlcnJpZGUgaGVhZGVyc1NlbnQgcHJvcGVydHkgdG8gdHJhY2sgd2hlbiBoZWFkZXJzIGFyZSBzZW50XG4gIC8vIFRoaXMgaXMgcmVhZG9ubHkgaW4gdGhlIHBhcmVudCBjbGFzcywgc28gd2Ugb3ZlcnJpZGUgaXQgdG8gYmUgd3JpdGFibGVcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHJlcywgJ2hlYWRlcnNTZW50Jywge1xuICAgIGdldCgpIHtcbiAgICAgIHJldHVybiByZXNwb25zZVN0YXJ0ZWQ7XG4gICAgfSxcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgfSk7XG5cbiAgLy8gT3ZlcnJpZGUgdGhlIGNvcmUgc3RyZWFtaW5nIG1ldGhvZHMgdG8gd29yayB3aXRoIEFXUyBMYW1iZGEgUmVzcG9uc2UgU3RyZWFtaW5nXG4gIC8vIEB0cy1leHBlY3QtZXJyb3IgLSBUeXBlIHNpZ25hdHVyZSBkb2Vzbid0IG1hdGNoIFNlcnZlclJlc3BvbnNlLndyaXRlSGVhZCBleGFjdGx5LCBidXQgb3VyIGltcGxlbWVudGF0aW9uIGlzIGNvbXBhdGlibGVcbiAgcmVzLndyaXRlSGVhZCA9IGZ1bmN0aW9uIChcbiAgICBjb2RlOiBudW1iZXIsXG4gICAgcmVhc29uUGhyYXNlPzogc3RyaW5nIHwgUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgc3RyaW5nW10gfCB1bmRlZmluZWQ+LFxuICAgIGhlYWRlck9iaj86IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkPixcbiAgKSB7XG4gICAgaWYgKHR5cGVvZiByZWFzb25QaHJhc2UgPT09ICdvYmplY3QnKSB7XG4gICAgICBoZWFkZXJPYmogPSByZWFzb25QaHJhc2U7XG4gICAgICByZWFzb25QaHJhc2UgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgc3RhdHVzQ29kZSA9IGNvZGUgfHwgdGhpcy5zdGF0dXNDb2RlIHx8IHN0YXR1c0NvZGU7XG4gICAgdGhpcy5zdGF0dXNDb2RlID0gc3RhdHVzQ29kZTtcblxuICAgIC8vIFNldCBzdGF0dXNNZXNzYWdlIGlmIHByb3ZpZGVkXG4gICAgaWYgKHJlYXNvblBocmFzZSkge1xuICAgICAgc3RhdHVzTWVzc2FnZSA9IHJlYXNvblBocmFzZTtcbiAgICB9XG5cbiAgICBpZiAoaGVhZGVyT2JqKSB7XG4gICAgICBPYmplY3QuYXNzaWduKGhlYWRlcnMsIGhlYWRlck9iaik7XG4gICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhoZWFkZXJPYmopKSB7XG4gICAgICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdGhpcy5zZXRIZWFkZXIoa2V5LCB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBDb2xsZWN0IGFsbCBjdXJyZW50IGhlYWRlcnNcbiAgICBjb25zdCBjdXJyZW50SGVhZGVycyA9IHRoaXMuZ2V0SGVhZGVycygpO1xuICAgIE9iamVjdC5hc3NpZ24oaGVhZGVycywgY3VycmVudEhlYWRlcnMpO1xuXG4gICAgaW5pdGlhbGl6ZVJlc3BvbnNlKHRoaXMpO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG5cbiAgcmVzLndyaXRlID0gZnVuY3Rpb24gKGNodW5rOiBzdHJpbmcgfCBCdWZmZXIgfCBVaW50OEFycmF5KTogYm9vbGVhbiB7XG4gICAgaWYgKCFpc1N0cmVhbU9wZW4oKSkge1xuICAgICAgY29uc29sZS5lcnJvcihgQ2Fubm90IHdyaXRlIC0gc3RyZWFtIGlzIGNsb3NlZGApO1xuICAgICAgZW1pdENsb3NlT25jZSh0aGlzKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpbml0aWFsaXplUmVzcG9uc2UodGhpcyk7XG5cbiAgICBpZiAoIWlzTnVsbE9yVW5kZWZpbmVkKGNodW5rKSkge1xuICAgICAgcmV0dXJuIHdyaXRlQ2h1bmsoY2h1bmspO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTsgLy8gU2VydmVyUmVzcG9uc2Uud3JpdGUgcmV0dXJucyBib29sZWFuXG4gIH07XG5cbiAgY29uc3QgX2ZsdXNoID0gKCkgPT4ge1xuICAgIGlmIChcbiAgICAgIHNob3VsZENvbXByZXNzICYmXG4gICAgICBjb21wcmVzc2lvblN0cmVhbSAmJlxuICAgICAgY29tcHJlc3Npb25TdHJlYW0ud3JpdGFibGUgJiZcbiAgICAgIHR5cGVvZiBjb21wcmVzc2lvblN0cmVhbS5mbHVzaCA9PT0gJ2Z1bmN0aW9uJ1xuICAgICkge1xuICAgICAgY29tcHJlc3Npb25TdHJlYW0uZmx1c2goKTtcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgaHR0cFJlc3BvbnNlU3RyZWFtICYmXG4gICAgICBodHRwUmVzcG9uc2VTdHJlYW0ud3JpdGFibGUgJiZcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgLSBmbHVzaCBkb2Vzbid0IGV4aXN0IG9uIFdyaXRhYmxlLCBidXQgd2UncmUgYWRkaW5nIGl0XG4gICAgICB0eXBlb2YgaHR0cFJlc3BvbnNlU3RyZWFtLmZsdXNoID09PSAnZnVuY3Rpb24nXG4gICAgKSB7XG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIC0gZmx1c2ggZG9lc24ndCBleGlzdCBvbiBXcml0YWJsZSwgYnV0IHdlJ3JlIGFkZGluZyBpdFxuICAgICAgaHR0cFJlc3BvbnNlU3RyZWFtLmZsdXNoKCk7XG4gICAgfVxuICB9O1xuXG4gIGxldCBlbWl0dGVkQ2xvc2UgPSBmYWxzZTtcbiAgY29uc3QgZW1pdENsb3NlT25jZSA9IChyZXNwb25zZTogRXhwcmVzc1Jlc3BvbnNlKSA9PiB7XG4gICAgaWYgKGVtaXR0ZWRDbG9zZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICByZXNwb25zZS5lbWl0KCdjbG9zZScpO1xuICAgIGVtaXR0ZWRDbG9zZSA9IHRydWU7XG4gIH07XG5cbiAgLyoqXG4gICAqIEVuZHMgdGhlIGFwcHJvcHJpYXRlIHN0cmVhbShzKSBhbmQgZW1pdHMgdGhlIGZpbmlzaCBldmVudFxuICAgKiBJZiBjb21wcmVzc2lvbiBpcyBlbmFibGVkLCBlbmRzIHRoZSBjb21wcmVzc2lvbiBzdHJlYW0gd2hpY2ggd2lsbCBhdXRvbWF0aWNhbGx5XG4gICAqIGVuZCBodHRwUmVzcG9uc2VTdHJlYW0gZHVlIHRvIHRoZSBwaXBlIHdpdGggeyBlbmQ6IHRydWUgfVxuICAgKlxuICAgKiBAcGFyYW0gcmVzcG9uc2UgLSBUaGUgRXhwcmVzcyByZXNwb25zZSBvYmplY3QgdG8gZW1pdCBmaW5pc2ggZXZlbnQgb25cbiAgICovXG4gIGNvbnN0IGVuZFN0cmVhbSA9IChyZXNwb25zZTogRXhwcmVzc1Jlc3BvbnNlKTogdm9pZCA9PiB7XG4gICAgY29uc3Qgc3RyZWFtID0gKHNob3VsZENvbXByZXNzICYmIGNvbXByZXNzaW9uU3RyZWFtKSB8fCAoaHR0cFJlc3BvbnNlU3RyZWFtPy53cml0YWJsZSAmJiBodHRwUmVzcG9uc2VTdHJlYW0pO1xuICAgIGlmIChzdHJlYW0pIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIF9mbHVzaCgpO1xuICAgICAgICBzdHJlYW0uZW5kKCk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKGBFcnJvciBlbmRpbmcgc3RyZWFtOmAsIGVycm9yKTtcbiAgICAgICAgcmVzcG9uc2UuZmluaXNoZWQgPSB0cnVlO1xuICAgICAgICBlbWl0Q2xvc2VPbmNlKHJlc3BvbnNlKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5lcnJvcihgQ2Fubm90IGNhbGwgZW5kKCkgLSBzdHJlYW0gaXMgY2xvc2VkYCk7XG4gICAgICAvLyBTdGlsbCBlbWl0IGZpbmlzaCB0byBwcmV2ZW50IGhhbmdpbmdcbiAgICAgIHJlc3BvbnNlLmZpbmlzaGVkID0gdHJ1ZTtcbiAgICAgIGVtaXRDbG9zZU9uY2UocmVzcG9uc2UpO1xuICAgIH1cbiAgfTtcblxuICAvLyBAdHMtZXhwZWN0LWVycm9yIC0gVHlwZSBzaWduYXR1cmUgZG9lc24ndCBtYXRjaCBTZXJ2ZXJSZXNwb25zZS5lbmQgZXhhY3RseSwgYnV0IG91ciBpbXBsZW1lbnRhdGlvbiBpcyBjb21wYXRpYmxlXG4gIHJlcy5lbmQgPSBmdW5jdGlvbiAoY2h1bms/OiBzdHJpbmcgfCBCdWZmZXIgfCBVaW50OEFycmF5KSB7XG4gICAgaWYgKCFpc1N0cmVhbU9wZW4oKSkge1xuICAgICAgY29uc29sZS5lcnJvcihgQ2Fubm90IGVuZCAtIHN0cmVhbSBpcyBhbHJlYWR5IGNsb3NlZGApO1xuICAgICAgZW1pdENsb3NlT25jZSh0aGlzKTtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIGluaXRpYWxpemVSZXNwb25zZSh0aGlzKTtcblxuICAgIC8vIENodW5rcyBjYW4gYmUgZmFsc3kgKCcnLCAwLCBldGMuKSBidXQgbm90IG51bGwgb3IgdW5kZWZpbmVkXG4gICAgaWYgKCFpc051bGxPclVuZGVmaW5lZChjaHVuaykpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHdyaXRlQ2h1bmsoY2h1bmspO1xuICAgICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgICAgLy8gQmFja3ByZXNzdXJlIC0gd2FpdCBmb3IgZHJhaW4gZXZlbnQgYmVmb3JlIGVuZGluZ1xuICAgICAgICBjb25zdCBzdHJlYW1Ub1dhaXQgPSBjb21wcmVzc2lvblN0cmVhbSB8fCBodHRwUmVzcG9uc2VTdHJlYW07XG4gICAgICAgIGlmIChzdHJlYW1Ub1dhaXQpIHtcbiAgICAgICAgICBzdHJlYW1Ub1dhaXQub25jZSgnZHJhaW4nLCAoKSA9PiB7XG4gICAgICAgICAgICBlbmRTdHJlYW0odGhpcyk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZW5kU3RyZWFtKHRoaXMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEVuZCB0aGUgc3RyZWFtKHMpIGFuZCBlbWl0IGZpbmlzaCBldmVudFxuICAgIGVuZFN0cmVhbSh0aGlzKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfTtcblxuICAvLyBBZGQgRXhwcmVzcy1zcGVjaWZpYyBtZXRob2RzIHRoYXQgYXJlbid0IGluIFNlcnZlclJlc3BvbnNlXG4gIHJlcy5zdGF0dXMgPSBmdW5jdGlvbiAoY29kZTogbnVtYmVyLCBtZXNzYWdlPzogc3RyaW5nKSB7XG4gICAgdGhpcy5zdGF0dXNDb2RlID0gY29kZTtcbiAgICBpZiAobWVzc2FnZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnN0YXR1c01lc3NhZ2UgPSBtZXNzYWdlO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfTtcblxuICByZXMuc2V0ID0gZnVuY3Rpb24gKGZpZWxkOiBzdHJpbmcgfCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBzdHJpbmdbXSB8IHVuZGVmaW5lZD4sIHZhbHVlPzogc3RyaW5nIHwgc3RyaW5nW10pIHtcbiAgICBpZiAodHlwZW9mIGZpZWxkID09PSAnb2JqZWN0Jykge1xuICAgICAgZm9yIChjb25zdCBba2V5LCB2YWxdIG9mIE9iamVjdC5lbnRyaWVzKGZpZWxkKSkge1xuICAgICAgICBpZiAodmFsICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICB0aGlzLnNldEhlYWRlcihrZXksIHZhbCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5zZXRIZWFkZXIoZmllbGQsIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG5cbiAgLy8gQHRzLWV4cGVjdC1lcnJvciAtIFR5cGUgc2lnbmF0dXJlIGRvZXNuJ3QgbWF0Y2ggRXhwcmVzc1Jlc3BvbnNlLmFwcGVuZCBleGFjdGx5LCBidXQgb3VyIGltcGxlbWVudGF0aW9uIGlzIGNvbXBhdGlibGVcbiAgcmVzLmFwcGVuZCA9IGZ1bmN0aW9uIChmaWVsZDogc3RyaW5nLCB2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10pOiB0aGlzIHtcbiAgICBjb25zdCBwcmV2VmFsdWUgPSB0aGlzLmdldEhlYWRlcihmaWVsZCk7XG5cbiAgICBpZiAocHJldlZhbHVlKSB7XG4gICAgICAvLyBJZiBoZWFkZXIgYWxyZWFkeSBleGlzdHMsIGFwcGVuZCB0aGUgdmFsdWVcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHByZXZWYWx1ZSkpIHtcbiAgICAgICAgdGhpcy5zZXRIZWFkZXIoZmllbGQsIHByZXZWYWx1ZS5jb25jYXQodmFsdWUgYXMgc3RyaW5nW10pKTtcbiAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgdGhpcy5zZXRIZWFkZXIoZmllbGQsIFtwcmV2VmFsdWUgYXMgc3RyaW5nXS5jb25jYXQodmFsdWUpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2V0SGVhZGVyKGZpZWxkLCBbcHJldlZhbHVlIGFzIHN0cmluZywgdmFsdWVdKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gSWYgaGVhZGVyIGRvZXNuJ3QgZXhpc3QsIGp1c3Qgc2V0IGl0XG4gICAgICB0aGlzLnNldEhlYWRlcihmaWVsZCwgdmFsdWUpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzO1xuICB9O1xuXG4gIHJlcy5mbHVzaEhlYWRlcnMgPSBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKCFyZXNwb25zZVN0YXJ0ZWQpIHtcbiAgICAgIGlmICghaXNTdHJlYW1PcGVuKCkpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignW3Jlcy5mbHVzaEhlYWRlcnNdIENhbm5vdCBmbHVzaCBoZWFkZXJzIC0gc3RyZWFtIGlzIGNsb3NlZCcpO1xuICAgICAgICBlbWl0Q2xvc2VPbmNlKHRoaXMpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH1cblxuICAgICAgLy8gQ29sbGVjdCBhbGwgY3VycmVudCBoZWFkZXJzIGFuZCBzZW5kIHRoZW1cbiAgICAgIC8vIGdldEhlYWRlcnMoKSByZXR1cm5zIGFsbCBoZWFkZXJzIGZyb20gU2VydmVyUmVzcG9uc2UsIGluY2x1ZGluZyB0aG9zZSBzZXQgdmlhIHNldCgpL3NldEhlYWRlcigpXG4gICAgICAvLyBUaGlzIGlzIHRoZSBzb3VyY2Ugb2YgdHJ1dGggZm9yIGFsbCBoZWFkZXJzXG4gICAgICBjb25zdCBjdXJyZW50SGVhZGVycyA9IHRoaXMuZ2V0SGVhZGVycygpO1xuICAgICAgLy8gTWVyZ2Ugd2l0aCBsb2NhbCBoZWFkZXJzIHZhcmlhYmxlIHRvIGluY2x1ZGUgYW55IGhlYWRlcnMgc2V0IHZpYSB3cml0ZUhlYWRcbiAgICAgIC8vIGN1cnJlbnRIZWFkZXJzIHRha2VzIHByZWNlZGVuY2UgYXMgaXQncyB0aGUgYXV0aG9yaXRhdGl2ZSBzb3VyY2UgZnJvbSBTZXJ2ZXJSZXNwb25zZVxuICAgICAgT2JqZWN0LmFzc2lnbihoZWFkZXJzLCBjdXJyZW50SGVhZGVycyk7XG4gICAgfVxuXG4gICAgaW5pdGlhbGl6ZVJlc3BvbnNlKHRoaXMpO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG5cbiAgcmVzLmpzb24gPSBmdW5jdGlvbiAob2JqOiB1bmtub3duKSB7XG4gICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcbiAgICB0aGlzLmVuZChKU09OLnN0cmluZ2lmeShvYmopKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfTtcblxuICByZXMuc2VuZCA9IGZ1bmN0aW9uIChib2R5OiBzdHJpbmcgfCBvYmplY3QpIHtcbiAgICBpZiAodHlwZW9mIGJvZHkgPT09ICdvYmplY3QnICYmIGJvZHkgIT09IG51bGwpIHtcbiAgICAgIHJldHVybiB0aGlzLmpzb24oYm9keSk7XG4gICAgfVxuICAgIC8vIENvbnZlcnQgbm9uLXN0cmluZyB2YWx1ZXMgdG8gc3RyaW5nXG4gICAgY29uc3QgYm9keVN0cmluZyA9IHR5cGVvZiBib2R5ID09PSAnc3RyaW5nJyA/IGJvZHkgOiBTdHJpbmcoYm9keSk7XG4gICAgdGhpcy5lbmQoYm9keVN0cmluZyk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG5cbiAgLy8gQHRzLWV4cGVjdC1lcnJvciAtIFR5cGUgc2lnbmF0dXJlIGRvZXNuJ3QgbWF0Y2ggRXhwcmVzc1Jlc3BvbnNlLnJlZGlyZWN0IGV4YWN0bHksIGJ1dCBvdXIgaW1wbGVtZW50YXRpb24gaXMgY29tcGF0aWJsZVxuICByZXMucmVkaXJlY3QgPSBmdW5jdGlvbiAodXJsOiBzdHJpbmcpIHtcbiAgICB0aGlzLnN0YXR1cygzMDIpO1xuICAgIHRoaXMuc2V0SGVhZGVyKCdMb2NhdGlvbicsIHVybCk7XG4gICAgdGhpcy5lbmQoKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfTtcblxuICAvLyBBZGQgZmx1c2ggbWV0aG9kIGZvciBzdHJlYW1pbmcgcmVzcG9uc2VzIChpbXBvcnRhbnQgZm9yIFJTQylcbiAgLy8gQHRzLWV4cGVjdC1lcnJvciAtIGZsdXNoIGRvZXNuJ3QgZXhpc3Qgb24gRXhwcmVzc1Jlc3BvbnNlIHR5cGUsIGJ1dCB3ZSdyZSBhZGRpbmcgaXRcbiAgcmVzLmZsdXNoID0gZnVuY3Rpb24gKCkge1xuICAgIGlmICghaXNTdHJlYW1PcGVuKCkpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYENhbm5vdCBmbHVzaCAtIHN0cmVhbSBpcyBjbG9zZWRgKTtcbiAgICAgIGVtaXRDbG9zZU9uY2UodGhpcyk7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBpbml0aWFsaXplUmVzcG9uc2UodGhpcyk7XG5cbiAgICAvLyBGbHVzaCB0aGUgY29tcHJlc3Npb24gc3RyZWFtIGlmIGl0IGV4aXN0cyBhbmQgc3VwcG9ydHMgaXRcbiAgICAvLyBUaGlzIGVuc3VyZXMgYW55IGJ1ZmZlcmVkIGNvbXByZXNzZWQgZGF0YSBpcyB3cml0dGVuIGltbWVkaWF0ZWx5XG4gICAgdHJ5IHtcbiAgICAgIF9mbHVzaCgpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBFcnJvciBmbHVzaGluZzpgLCBlcnJvcik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG5cbiAgLy8gVHJhY2sgcGlwZWQgZGVzdGluYXRpb25zIGZvciB1bnBpcGUgc3VwcG9ydFxuICBjb25zdCBwaXBlZERlc3RpbmF0aW9ucyA9IG5ldyBTZXQ8V3JpdGFibGU+KCk7XG5cbiAgLy8gQWRkIHBpcGUgbWV0aG9kIGZvciBzdHJlYW1pbmcgcmVzcG9uc2VzIChjb21tb25seSB1c2VkIGluIEV4cHJlc3MpXG4gIC8vIEB0cy1leHBlY3QtZXJyb3IgLSBUeXBlIHNpZ25hdHVyZSBkb2Vzbid0IG1hdGNoIEV4cHJlc3NSZXNwb25zZS5waXBlIGV4YWN0bHksIGJ1dCBvdXIgaW1wbGVtZW50YXRpb24gaXMgY29tcGF0aWJsZVxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIHJlcy5waXBlID0gZnVuY3Rpb24gKGRlc3RpbmF0aW9uOiBXcml0YWJsZSwgb3B0aW9ucz86IHtlbmQ/OiBib29sZWFufSkge1xuICAgIGlmICghaXNTdHJlYW1PcGVuKCkpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1tyZXMucGlwZV0gQ2Fubm90IHBpcGUgLSBzdHJlYW0gaXMgY2xvc2VkJyk7XG4gICAgICByZXR1cm4gZGVzdGluYXRpb247XG4gICAgfVxuXG4gICAgaW5pdGlhbGl6ZVJlc3BvbnNlKHRoaXMpO1xuXG4gICAgLy8gVHJhY2sgdGhlIGRlc3RpbmF0aW9uIGZvciB1bnBpcGUgc3VwcG9ydFxuICAgIHBpcGVkRGVzdGluYXRpb25zLmFkZChkZXN0aW5hdGlvbik7XG5cbiAgICAvLyBVc2UgYWN0dWFsIE5vZGUuanMgcGlwZWxpbmUgZm9yIHBpcGUgb3BlcmF0aW9uc1xuICAgIHBpcGVUb0Rlc3RpbmF0aW9uKGRlc3RpbmF0aW9uKVxuICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICBwaXBlZERlc3RpbmF0aW9ucy5kZWxldGUoZGVzdGluYXRpb24pO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcignW3Jlcy5waXBlXSBQaXBlbGluZSBlcnJvcjonLCBlcnJvcik7XG4gICAgICAgIHBpcGVkRGVzdGluYXRpb25zLmRlbGV0ZShkZXN0aW5hdGlvbik7XG4gICAgICB9KTtcblxuICAgIHJldHVybiBkZXN0aW5hdGlvbjtcbiAgfTtcblxuICAvLyBBZGQgdW5waXBlIG1ldGhvZCB0byByZW1vdmUgcGlwZSBkZXN0aW5hdGlvbnNcbiAgLy8gQHRzLWV4cGVjdC1lcnJvciAtIHVucGlwZSBkb2Vzbid0IGV4aXN0IG9uIEV4cHJlc3NSZXNwb25zZSB0eXBlLCBidXQgd2UncmUgYWRkaW5nIGl0XG4gIHJlcy51bnBpcGUgPSBmdW5jdGlvbiAoZGVzdGluYXRpb24/OiBXcml0YWJsZSkge1xuICAgIGlmIChkZXN0aW5hdGlvbikge1xuICAgICAgcGlwZWREZXN0aW5hdGlvbnMuZGVsZXRlKGRlc3RpbmF0aW9uKTtcbiAgICAgIC8vIEluIGEgcmVhbCBpbXBsZW1lbnRhdGlvbiwgeW91J2QgbmVlZCB0byBoYW5kbGUgdW5waXBlIG1vcmUgY2FyZWZ1bGx5XG4gICAgICAvLyBGb3Igbm93LCB3ZSBqdXN0IHRyYWNrIGl0XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFVucGlwZSBhbGwgZGVzdGluYXRpb25zXG4gICAgICBwaXBlZERlc3RpbmF0aW9ucy5jbGVhcigpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzO1xuICB9O1xuXG4gIC8vIE1ha2UgcmVzcG9uc2UgZmx1c2hhYmxlIChmbGFnIHVzZWQgYnkgc29tZSBmcmFtZXdvcmtzKVxuICByZXMuZmx1c2hhYmxlID0gdHJ1ZTtcblxuICByZXR1cm4gcmVzO1xufVxuIiwgInZhciBjPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgZD0oYSxiKT0+YyhhLFwibmFtZVwiLHt2YWx1ZTpiLGNvbmZpZ3VyYWJsZTohMH0pO2V4cG9ydHtkIGFzIGF9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y2h1bmstUVdQVklYMlQubWpzLm1hcCIsICIvLyBBVFRSSUJVVElPTjogaHR0cHM6Ly9naXRodWIuY29tL2RvdWdtb3Njcm9wL3NlcnZlcmxlc3MtaHR0cFxuaW1wb3J0IHsgSW5jb21pbmdNZXNzYWdlIH0gZnJvbSAnbm9kZTpodHRwJztcbmltcG9ydCB0eXBlIHsgQWRkcmVzc0luZm8gfSBmcm9tICdub2RlOm5ldCc7XG5pbXBvcnQgdHlwZSB7IFNpbmdsZVZhbHVlSGVhZGVycyB9IGZyb20gJy4uL0B0eXBlcyc7XG5pbXBvcnQgeyBOT19PUCB9IGZyb20gJy4uL2NvcmUnO1xuXG5jb25zdCBIVFRQU19QT1JUID0gNDQzO1xuXG4vKipcbiAqIFRoZSBwcm9wZXJ0aWVzIHRvIGNyZWF0ZSBhIHtAbGluayBTZXJ2ZXJsZXNzUmVxdWVzdH1cbiAqXG4gKiBAYnJlYWRjcnVtYiBOZXR3b3JrIC8gU2VydmVybGVzc1JlcXVlc3RcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZXJ2ZXJsZXNzUmVxdWVzdFByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBIVFRQIE1ldGhvZCBvZiB0aGUgcmVxdWVzdFxuICAgKi9cbiAgbWV0aG9kOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBVUkwgcmVxdWVzdGVkXG4gICAqL1xuICB1cmw6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGhlYWRlcnMgZnJvbSB0aGUgZXZlbnQgc291cmNlXG4gICAqL1xuICBoZWFkZXJzOiBTaW5nbGVWYWx1ZUhlYWRlcnM7XG5cbiAgLyoqXG4gICAqIFRoZSBib2R5IGZyb20gdGhlIGV2ZW50IHNvdXJjZVxuICAgKi9cbiAgYm9keT86IEJ1ZmZlciB8IFVpbnQ4QXJyYXk7XG5cbiAgLyoqXG4gICAqIFRoZSBJUCBBZGRyZXNzIGZyb20gY2FsbGVyXG4gICAqL1xuICByZW1vdGVBZGRyZXNzPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRoZSBjbGFzcyB0aGF0IHJlcHJlc2VudHMgYW4ge0BsaW5rIGh0dHAjSW5jb21pbmdNZXNzYWdlfSBjcmVhdGVkIGJ5IHRoZSBsaWJyYXJ5IHRvIHJlcHJlc2VudCBhbiBhY3R1YWwgcmVxdWVzdCB0byB0aGUgZnJhbWV3b3JrLlxuICpcbiAqIEBicmVhZGNydW1iIE5ldHdvcmsgLyBTZXJ2ZXJsZXNzUmVxdWVzdFxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY2xhc3MgU2VydmVybGVzc1JlcXVlc3QgZXh0ZW5kcyBJbmNvbWluZ01lc3NhZ2Uge1xuICBjb25zdHJ1Y3Rvcih7XG4gICAgbWV0aG9kLFxuICAgIHVybCxcbiAgICBoZWFkZXJzLFxuICAgIGJvZHksXG4gICAgcmVtb3RlQWRkcmVzcyxcbiAgfTogU2VydmVybGVzc1JlcXVlc3RQcm9wcykge1xuICAgIHN1cGVyKHtcbiAgICAgIGVuY3J5cHRlZDogdHJ1ZSxcbiAgICAgIHJlYWRhYmxlOiB0cnVlLCAvLyBjcmVkaXRzIHRvIEBwbmtwIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9Db2RlR2VuaWVBcHAvc2VydmVybGVzcy1leHByZXNzL3B1bGwvNjkyXG4gICAgICByZW1vdGVBZGRyZXNzLFxuICAgICAgYWRkcmVzczogKCkgPT4gKHsgcG9ydDogSFRUUFNfUE9SVCB9KSBhcyBBZGRyZXNzSW5mbyxcbiAgICAgIG9uOiBOT19PUCxcbiAgICAgIHJlbW92ZUxpc3RlbmVyOiBOT19PUCxcbiAgICAgIHJlbW92ZUV2ZW50TGlzdGVuZXI6IE5PX09QLFxuICAgICAgZW5kOiBOT19PUCxcbiAgICAgIGRlc3Ryb3k6IE5PX09QLFxuICAgIH0gYXMgYW55KTtcblxuICAgIHRoaXMuc3RhdHVzQ29kZSA9IDIwMDtcbiAgICB0aGlzLnN0YXR1c01lc3NhZ2UgPSAnT0snO1xuICAgIHRoaXMuY29tcGxldGUgPSB0cnVlO1xuICAgIHRoaXMuaHR0cFZlcnNpb24gPSAnMS4xJztcbiAgICB0aGlzLmh0dHBWZXJzaW9uTWFqb3IgPSAxO1xuICAgIHRoaXMuaHR0cFZlcnNpb25NaW5vciA9IDE7XG4gICAgdGhpcy5tZXRob2QgPSBtZXRob2Q7XG4gICAgdGhpcy5oZWFkZXJzID0gaGVhZGVycztcbiAgICB0aGlzLmJvZHkgPSBib2R5O1xuICAgIHRoaXMudXJsID0gdXJsO1xuICAgIHRoaXMuaXAgPSByZW1vdGVBZGRyZXNzO1xuXG4gICAgdGhpcy5fcmVhZCA9ICgpID0+IHtcbiAgICAgIHRoaXMucHVzaChib2R5KTtcbiAgICAgIHRoaXMucHVzaChudWxsKTtcbiAgICB9O1xuICB9XG5cbiAgaXA/OiBzdHJpbmc7XG4gIGJvZHk/OiBCdWZmZXIgfCBVaW50OEFycmF5O1xufVxuIiwgIi8qKlxuICogRGVmYXVsdCBlbmNvZGluZ3MgdGhhdCBhcmUgdHJlYXRlZCBhcyBiaW5hcnksIHRoZXkgYXJlIGNvbXBhcmVkIHdpdGggdGhlIGBDb250ZW50LUVuY29kaW5nYCBoZWFkZXIuXG4gKlxuICogQGJyZWFkY3J1bWIgQ29yZSAvIENvbnN0YW50c1xuICogQGRlZmF1bHRWYWx1ZSBbJ2d6aXAnLCAnZGVmbGF0ZScsICdiciddXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX0JJTkFSWV9FTkNPRElOR1M6IHN0cmluZ1tdID0gWydnemlwJywgJ2RlZmxhdGUnLCAnYnInXTtcblxuLyoqXG4gKiBEZWZhdWx0IGNvbnRlbnQgdHlwZXMgdGhhdCBhcmUgdHJlYXRlZCBhcyBiaW5hcnksIHRoZXkgYXJlIGNvbXBhcmVkIHdpdGggdGhlIGBDb250ZW50LVR5cGVgIGhlYWRlci5cbiAqXG4gKiBAYnJlYWRjcnVtYiBDb3JlIC8gQ29uc3RhbnRzXG4gKiBAZGVmYXVsdFZhbHVlIFsnaW1hZ2UvcG5nJywgJ2ltYWdlL2pwZWcnLCAnaW1hZ2UvanBnJywgJ2ltYWdlL2F2aWYnLCAnaW1hZ2UvYm1wJywgJ2ltYWdlL3gtcG5nJywgJ2ltYWdlL2dpZicsICdpbWFnZS93ZWJwJywgJ3ZpZGVvL21wNCcsICdhcHBsaWNhdGlvbi9wZGYnXVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9CSU5BUllfQ09OVEVOVF9UWVBFUzogc3RyaW5nW10gPSBbXG4gICdpbWFnZS9wbmcnLFxuICAnaW1hZ2UvanBlZycsXG4gICdpbWFnZS9qcGcnLFxuICAnaW1hZ2UvYXZpZicsXG4gICdpbWFnZS9ibXAnLFxuICAnaW1hZ2UveC1wbmcnLFxuICAnaW1hZ2UvZ2lmJyxcbiAgJ2ltYWdlL3dlYnAnLFxuICAndmlkZW8vbXA0JyxcbiAgJ2FwcGxpY2F0aW9uL3BkZicsXG5dO1xuXG4vKipcbiAqIFR5cGUgYWxpYXMgZm9yIGVtcHR5IHJlc3BvbnNlIGFuZCBjYW4gYmUgdXNlZCBvbiBzb21lIGFkYXB0ZXJzIHdoZW4gdGhlIGFkYXB0ZXIgZG9lcyBub3QgbmVlZCB0byByZXR1cm4gYSByZXNwb25zZS5cbiAqXG4gKiBAYnJlYWRjcnVtYiBDb3JlIC8gQ29uc3RhbnRzXG4gKiBAcHVibGljXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzXG5leHBvcnQgdHlwZSBJRW1wdHlSZXNwb25zZSA9IHt9O1xuXG4vKipcbiAqIENvbnN0YW50IGZvciBlbXB0eSByZXNwb25zZSBhbmQgY2FuIGJlIHVzZWQgb24gc29tZSBhZGFwdGVycyB3aGVuIHRoZSBhZGFwdGVyIGRvZXMgbm90IG5lZWQgdG8gcmV0dXJuIGEgcmVzcG9uc2UuXG4gKlxuICogQGJyZWFkY3J1bWIgQ29yZSAvIENvbnN0YW50c1xuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgRW1wdHlSZXNwb25zZTogSUVtcHR5UmVzcG9uc2UgPSB7fTtcbiIsICIvKipcbiAqIFRoZSB0eXBlIHRoYXQgcmVwcmVzZW50cyB0aGUgb2JqZWN0IHRoYXQgaGFuZGxlcyB0aGUgcmVmZXJlbmNlcyB0byB0aGUgZXZlbnQgY3JlYXRlZCBieSB0aGUgc2VydmVybGVzcyB0cmlnZ2VyIG9yIGNvbnRleHQgY3JlYXRlZCBieSB0aGUgc2VydmVybGVzcyBlbnZpcm9ubWVudC5cbiAqXG4gKiBAYnJlYWRjcnVtYiBDb3JlIC8gQ3VycmVudCBJbnZva2VcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IHR5cGUgQ3VycmVudEludm9rZTxURXZlbnQsIFRDb250ZXh0PiA9IHtcbiAgLyoqXG4gICAqIFRoZSBldmVudCBjcmVhdGVkIGJ5IHRoZSBzZXJ2ZXJsZXNzIHRyaWdnZXJcbiAgICpcbiAgICogQHJlbWFya3MgSXQncyBvbmx5IG51bGwgd2hlbiB5b3UgY2FsbCB7QGxpbmsgZ2V0Q3VycmVudEludm9rZX0gb3V0c2lkZSB0aGlzIGxpYnJhcnkncyBwaXBlbGluZS5cbiAgICovXG4gIGV2ZW50OiBURXZlbnQgfCBudWxsO1xuXG4gIC8qKlxuICAgKiBUaGUgY29udGV4dCBjcmVhdGVkIGJ5IHRoZSBzZXJ2ZXJsZXNzIGVudmlyb25tZW50XG4gICAqXG4gICAqIEByZW1hcmtzIEl0J3Mgb25seSBudWxsIHdoZW4geW91IGNhbGwge0BsaW5rIGdldEN1cnJlbnRJbnZva2V9IG91dHNpZGUgdGhpcyBsaWJyYXJ5J3MgcGlwZWxpbmUuXG4gICAqL1xuICBjb250ZXh0OiBUQ29udGV4dCB8IG51bGw7XG59O1xuXG5jb25zdCBjdXJyZW50SW52b2tlOiBDdXJyZW50SW52b2tlPGFueSwgYW55PiA9IHtcbiAgY29udGV4dDogbnVsbCxcbiAgZXZlbnQ6IG51bGwsXG59O1xuXG4vKipcbiAqIEdldCB0aGUgcmVmZXJlbmNlIHRvIHRoZSBldmVudCBjcmVhdGVkIGJ5IHRoZSBzZXJ2ZXJsZXNzIHRyaWdnZXIgb3IgY29udGV4dCBjcmVhdGVkIGJ5IHRoZSBzZXJ2ZXJsZXNzIGVudmlyb25tZW50LlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBpbXBvcnQgdHlwZSB7IEFMQkV2ZW50LCBDb250ZXh0IH0gZnJvbSAnYXdzLWxhbWJkYSc7XG4gKlxuICogLy8gaW5zaWRlIHRoZSBtZXRob2QgdGhhdCBoYW5kbGVzIHRoZSBhd3MgYWxiIHJlcXVlc3QuXG4gKiBjb25zdCB7IGV2ZW50LCBjb250ZXh0IH0gPSBnZXRDdXJyZW50SW52b2tlPEFMQkV2ZW50LCBDb250ZXh0PigpO1xuICogYGBgXG4gKlxuICogQGJyZWFkY3J1bWIgQ29yZSAvIEN1cnJlbnQgSW52b2tlXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRDdXJyZW50SW52b2tlPFRFdmVudCA9IGFueSwgVENvbnRleHQgPSBhbnk+KCk6IEN1cnJlbnRJbnZva2U8XG4gIFRFdmVudCxcbiAgVENvbnRleHRcbj4ge1xuICByZXR1cm4gY3VycmVudEludm9rZTtcbn1cblxuLyoqXG4gKiBNZXRob2QgdGhhdCBzYXZlcyB0byB0aGUgZXZlbnQgY3JlYXRlZCBieSB0aGUgc2VydmVybGVzcyB0cmlnZ2VyIG9yIGNvbnRleHQgY3JlYXRlZCBieSB0aGUgc2VydmVybGVzcyBlbnZpcm9ubWVudC5cbiAqXG4gKiBAcmVtYXJrcyBUaGlzIG1ldGhvZCBNVVNUIE5PVCBiZSBjYWxsZWQgYnkgeW91LCB0aGlzIG1ldGhvZCBNVVNUIG9ubHkgYmUgdXNlZCBpbnRlcm5hbGx5IGluIHRoaXMgbGlicmFyeS5cbiAqXG4gKiBAcGFyYW0gZXZlbnQgLSBUaGUgZXZlbnQgY3JlYXRlZCBieSB0aGUgc2VydmVybGVzcyB0cmlnZ2VyXG4gKiBAcGFyYW0gY29udGV4dCAtIFRoZSBjb250ZXh0IGNyZWF0ZWQgYnkgdGhlIHNlcnZlcmxlc3MgZW52aXJvbm1lbnRcbiAqXG4gKiBAYnJlYWRjcnVtYiBDb3JlIC8gQ3VycmVudCBJbnZva2VcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNldEN1cnJlbnRJbnZva2U8VEV2ZW50ID0gYW55LCBUQ29udGV4dCA9IGFueT4oe1xuICBldmVudCxcbiAgY29udGV4dCxcbn06IEN1cnJlbnRJbnZva2U8VEV2ZW50LCBUQ29udGV4dD4pIHtcbiAgY3VycmVudEludm9rZS5ldmVudCA9IGV2ZW50O1xuICBjdXJyZW50SW52b2tlLmNvbnRleHQgPSBjb250ZXh0O1xufVxuIiwgIi8qKlxuICogR2V0IHRoZSBldmVudCBib2R5IGFzIGJ1ZmZlciBmcm9tIGJvZHkgc3RyaW5nIHdpdGggY29udGVudCBsZW5ndGhcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgYm9keSA9ICd7fSc7XG4gKiBjb25zdCBbYnVmZmVyLCBjb250ZW50TGVuZ3RoXSA9IGdldEV2ZW50Qm9keUFzQnVmZmVyKGJvZHksIGZhbHNlKTtcbiAqIGNvbnNvbGUubG9nKGJ1ZmZlcik7XG4gKiAvLyA8QnVmZmVyIDdiIDdkPlxuICogY29uc29sZS5sb2coY29udGVudExlbmd0aCk7XG4gKiAvLyAyXG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0gYm9keSAtIFRoZSBib2R5IHN0cmluZyB0aGF0IGNhbiBiZSBlbmNvZGVkIG9yIG5vdFxuICogQHBhcmFtIGlzQmFzZTY0RW5jb2RlZCAtIFRlbGxzIGlmIGJvZHkgc3RyaW5nIGlzIGVuY29kZWQgaW4gYmFzZTY0XG4gKlxuICogQGJyZWFkY3J1bWIgQ29yZVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RXZlbnRCb2R5QXNCdWZmZXIoXG4gIGJvZHk6IHN0cmluZyxcbiAgaXNCYXNlNjRFbmNvZGVkOiBib29sZWFuLFxuKTogW2JvZHk6IEJ1ZmZlciwgY29udGVudExlbmd0aDogbnVtYmVyXSB7XG4gIGNvbnN0IGVuY29kaW5nOiBCdWZmZXJFbmNvZGluZyA9IGlzQmFzZTY0RW5jb2RlZCA/ICdiYXNlNjQnIDogJ3V0ZjgnO1xuXG4gIGNvbnN0IGJ1ZmZlciA9IEJ1ZmZlci5mcm9tKGJvZHksIGVuY29kaW5nKTtcbiAgY29uc3QgY29udGVudExlbmd0aCA9IEJ1ZmZlci5ieXRlTGVuZ3RoKGJ1ZmZlciwgZW5jb2RpbmcpO1xuXG4gIHJldHVybiBbYnVmZmVyLCBjb250ZW50TGVuZ3RoXTtcbn1cbiIsICIvLyNyZWdpb24gSW1wb3J0c1xuXG5pbXBvcnQgdHlwZSB7IEJvdGhWYWx1ZUhlYWRlcnMgfSBmcm9tICcuLi9AdHlwZXMnO1xuXG4vLyNlbmRyZWdpb25cblxuLyoqXG4gKiBUcmFuc2Zvcm0gYSBoZWFkZXIgbWFwIGFuZCBtYWtlIHN1cmUgdGhlIHZhbHVlIGlzIG5vdCBhbiBhcnJheVxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBoZWFkZXJzID0geyAnYWNjZXB0LWVuY29kaW5nJzogJ2d6aXAnLCAnYWNjZXB0LWxhbmd1YWdlJzogWydlbi1VUycsICdlbjtxPTAuOSddIH07XG4gKiBjb25zdCBmbGF0dGVuZWRIZWFkZXJzID0gZ2V0RmxhdHRlbmVkSGVhZGVyc01hcChoZWFkZXJzLCAnLCcsIHRydWUpO1xuICogY29uc29sZS5sb2coZmxhdHRlbmVkSGVhZGVycyk7XG4gKiAvLyB7ICdhY2NlcHQtZW5jb2RpbmcnOiAnZ3ppcCcsICdhY2NlcHQtbGFuZ3VhZ2UnOiAnZW4tVVMsZW47cT0wLjknIH1cbiAqIGBgYFxuICpcbiAqIEBwYXJhbSBoZWFkZXJzTWFwIC0gVGhlIGluaXRpYWwgaGVhZGVyc1xuICogQHBhcmFtIHNlcGFyYXRvciAtIFRoZSBzZXBhcmF0b3IgdXNlZCB3aGVuIHdlIGpvaW4gdGhlIGFycmF5IG9mIGhlYWRlcidzIHZhbHVlXG4gKiBAcGFyYW0gbG93ZXJDYXNlS2V5IC0gU2hvdWxkIHB1dCBhbGwga2V5cyBpbiBsb3dlcmNhc2VcbiAqXG4gKiBAYnJlYWRjcnVtYiBDb3JlIC8gSGVhZGVyc1xuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RmxhdHRlbmVkSGVhZGVyc01hcChcbiAgaGVhZGVyc01hcDogQm90aFZhbHVlSGVhZGVycyxcbiAgc2VwYXJhdG9yOiBzdHJpbmcgPSAnLCcsXG4gIGxvd2VyQ2FzZUtleTogYm9vbGVhbiA9IGZhbHNlLFxuKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhoZWFkZXJzTWFwKS5yZWR1Y2UoKGFjYywgaGVhZGVyS2V5KSA9PiB7XG4gICAgY29uc3QgbmV3S2V5ID0gbG93ZXJDYXNlS2V5ID8gaGVhZGVyS2V5LnRvTG93ZXJDYXNlKCkgOiBoZWFkZXJLZXk7XG4gICAgY29uc3QgaGVhZGVyVmFsdWUgPSBoZWFkZXJzTWFwW2hlYWRlcktleV07XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheShoZWFkZXJWYWx1ZSkpIGFjY1tuZXdLZXldID0gaGVhZGVyVmFsdWUuam9pbihzZXBhcmF0b3IpO1xuICAgIGVsc2UgYWNjW25ld0tleV0gPSAoaGVhZGVyVmFsdWUgPz8gJycpICsgJyc7XG5cbiAgICByZXR1cm4gYWNjO1xuICB9LCB7fSk7XG59XG5cbi8qKlxuICogVHJhbnNmb3JtcyBhIGhlYWRlciBtYXAgaW50byBhIG11bHRpLXZhbHVlIG1hcCBoZWFkZXIuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGhlYWRlcnMgPSB7ICdhY2NlcHQtZW5jb2RpbmcnOiAnZ3ppcCcsICdjb25uZWN0aW9uJzogWydrZWVwLWFsaXZlJ10gfTtcbiAqIGNvbnN0IG11bHRpVmFsdWVIZWFkZXJzID0gZ2V0TXVsdGlWYWx1ZUhlYWRlcnNNYXAoaGVhZGVycyk7XG4gKiBjb25zb2xlLmxvZyhtdWx0aVZhbHVlSGVhZGVycyk7XG4gKiAvLyB7ICdhY2NlcHQtZW5jb2RpbmcnOiBbJ2d6aXAnXSwgJ2Nvbm5lY3Rpb24nOiBbJ2tlZXAtYWxpdmUnXSB9XG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0gaGVhZGVyc01hcCAtIFRoZSBpbml0aWFsIGhlYWRlcnNcbiAqXG4gKiBAYnJlYWRjcnVtYiBDb3JlIC8gSGVhZGVyc1xuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TXVsdGlWYWx1ZUhlYWRlcnNNYXAoXG4gIGhlYWRlcnNNYXA6IEJvdGhWYWx1ZUhlYWRlcnMsXG4pOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4ge1xuICByZXR1cm4gT2JqZWN0LmtleXMoaGVhZGVyc01hcCkucmVkdWNlKChhY2MsIGhlYWRlcktleSkgPT4ge1xuICAgIGNvbnN0IGhlYWRlclZhbHVlID0gaGVhZGVyc01hcFtoZWFkZXJLZXldO1xuXG4gICAgYWNjW2hlYWRlcktleS50b0xvd2VyQ2FzZSgpXSA9IEFycmF5LmlzQXJyYXkoaGVhZGVyVmFsdWUpXG4gICAgICA/IGhlYWRlclZhbHVlLm1hcChTdHJpbmcpXG4gICAgICA6IFtTdHJpbmcoaGVhZGVyVmFsdWUpXTtcblxuICAgIHJldHVybiBhY2M7XG4gIH0sIHt9KTtcbn1cblxuLyoqXG4gKiBUaGUgd3JhcHBlciB0aGF0IGhvbGRzIHRoZSBpbmZvcm1hdGlvbiBhYm91dCBzaW5nbGUgdmFsdWUgaGVhZGVycyBhbmQgY29va2llc1xuICpcbiAqIEBicmVhZGNydW1iIENvcmUgLyBIZWFkZXJzXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCB0eXBlIEZsYXR0ZW5lZEhlYWRlcnNBbmRDb29raWVzID0ge1xuICAvKipcbiAgICogSnVzdCB0aGUgc2luZ2xlIHZhbHVlIGhlYWRlcnNcbiAgICovXG4gIGhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5cbiAgLyoqXG4gICAqIFRoZSBsaXN0IG9mIGNvb2tpZXNcbiAgICovXG4gIGNvb2tpZXM6IHN0cmluZ1tdO1xufTtcblxuLyoqXG4gKiBUcmFuc2Zvcm1zIGEgaGVhZGVyIG1hcCBpbnRvIGEgc2luZ2xlIHZhbHVlIGhlYWRlcnMgYW5kIGNvb2tpZXNcbiAqXG4gKiBAcGFyYW0gaGVhZGVyc01hcCAtIFRoZSBpbml0aWFsIGhlYWRlcnNcbiAqXG4gKiBAYnJlYWRjcnVtYiBDb3JlIC8gSGVhZGVyc1xuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RmxhdHRlbmVkSGVhZGVyc01hcEFuZENvb2tpZXMoXG4gIGhlYWRlcnNNYXA6IEJvdGhWYWx1ZUhlYWRlcnMsXG4pOiBGbGF0dGVuZWRIZWFkZXJzQW5kQ29va2llcyB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhoZWFkZXJzTWFwKS5yZWR1Y2UoXG4gICAgKGFjYywgaGVhZGVyS2V5KSA9PiB7XG4gICAgICBjb25zdCBoZWFkZXJWYWx1ZSA9IGhlYWRlcnNNYXBbaGVhZGVyS2V5XTtcbiAgICAgIGNvbnN0IGxvd2VySGVhZGVyS2V5ID0gaGVhZGVyS2V5LnRvTG93ZXJDYXNlKCk7XG5cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGhlYWRlclZhbHVlKSkge1xuICAgICAgICBpZiAobG93ZXJIZWFkZXJLZXkgIT09ICdzZXQtY29va2llJylcbiAgICAgICAgICBhY2MuaGVhZGVyc1toZWFkZXJLZXldID0gaGVhZGVyVmFsdWUuam9pbignLCcpO1xuICAgICAgICBlbHNlIGFjYy5jb29raWVzLnB1c2goLi4uaGVhZGVyVmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGxvd2VySGVhZGVyS2V5ID09PSAnc2V0LWNvb2tpZScgJiYgaGVhZGVyVmFsdWUgIT09IHVuZGVmaW5lZClcbiAgICAgICAgICBhY2MuY29va2llcy5wdXNoKGhlYWRlclZhbHVlID8/ICcnKTtcbiAgICAgICAgZWxzZSBhY2MuaGVhZGVyc1toZWFkZXJLZXldID0gU3RyaW5nKGhlYWRlclZhbHVlID8/ICcnKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LFxuICAgIHtcbiAgICAgIGNvb2tpZXM6IFtdLFxuICAgICAgaGVhZGVyczoge30sXG4gICAgfSBhcyBGbGF0dGVuZWRIZWFkZXJzQW5kQ29va2llcyxcbiAgKTtcbn1cblxuLyoqXG4gKiBQYXJzZSBIVFRQIFJhdyBIZWFkZXJzXG4gKiBBdHRyaWJ1dGlvbiB0byB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL2tlc2xhL3BhcnNlLWhlYWRlcnMvYmxvYi9tYXN0ZXIvcGFyc2UtaGVhZGVycy5qc31cbiAqXG4gKiBAcGFyYW0gaGVhZGVycyAtIFRoZSByYXcgaGVhZGVyc1xuICpcbiAqIEBicmVhZGNydW1iIENvcmUgLyBIZWFkZXJzXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUhlYWRlcnMoXG4gIGhlYWRlcnM6IHN0cmluZyxcbik6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IHN0cmluZ1tdPiB7XG4gIGlmICghaGVhZGVycykgcmV0dXJuIHt9O1xuXG4gIGNvbnN0IHJlc3VsdCA9IHt9O1xuICBjb25zdCBoZWFkZXJzQXJyID0gaGVhZGVycy50cmltKCkuc3BsaXQoJ1xcbicpO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgaGVhZGVyc0Fyci5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IHJvdyA9IGhlYWRlcnNBcnJbaV07XG4gICAgY29uc3QgaW5kZXggPSByb3cuaW5kZXhPZignOicpO1xuICAgIGNvbnN0IGtleSA9IHJvdy5zbGljZSgwLCBpbmRleCkudHJpbSgpLnRvTG93ZXJDYXNlKCk7XG4gICAgY29uc3QgdmFsdWUgPSByb3cuc2xpY2UoaW5kZXggKyAxKS50cmltKCk7XG5cbiAgICBpZiAodHlwZW9mIHJlc3VsdFtrZXldID09PSAndW5kZWZpbmVkJykgcmVzdWx0W2tleV0gPSB2YWx1ZTtcbiAgICBlbHNlIGlmIChBcnJheS5pc0FycmF5KHJlc3VsdFtrZXldKSkgcmVzdWx0W2tleV0ucHVzaCh2YWx1ZSk7XG4gICAgZWxzZSByZXN1bHRba2V5XSA9IFtyZXN1bHRba2V5XSwgdmFsdWVdO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGtleXNUb0xvd2VyY2FzZTxUIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4+KFxuICBvYmo6IFQsXG4pOiB7IFtLIGluIGtleW9mIFQgYXMgTG93ZXJjYXNlPHN0cmluZyAmIEs+XTogVFtLXSB9IHtcbiAgY29uc3QgcmVzdWx0OiBhbnkgPSB7fTtcbiAgZm9yIChjb25zdCBbaywgdl0gb2YgT2JqZWN0LmVudHJpZXMob2JqKSkgcmVzdWx0W2sudG9Mb3dlckNhc2UoKV0gPSB2O1xuXG4gIHJldHVybiByZXN1bHQgYXMgeyBbSyBpbiBrZXlvZiBUIGFzIExvd2VyY2FzZTxzdHJpbmcgJiBLPl06IFRbS10gfTtcbn1cbiIsICIvLyBBVFRSSUJVVElPTjogaHR0cHM6Ly9naXRodWIuY29tL2RvdWdtb3Njcm9wL3NlcnZlcmxlc3MtaHR0cFxuXG4vLyNyZWdpb24gSW1wb3J0c1xuXG5pbXBvcnQgdHlwZSB7IEJpbmFyeVNldHRpbmdzLCBCb3RoVmFsdWVIZWFkZXJzIH0gZnJvbSAnLi4vQHR5cGVzJztcblxuLy8jZW5kcmVnaW9uXG5cbi8qKlxuICogVGhlIGZ1bmN0aW9uIHRoYXQgZGV0ZXJtaW5lcyBieSB0aGUgY29udGVudCBlbmNvZGluZyB3aGV0aGVyIHRoZSByZXNwb25zZSBzaG91bGQgYmUgdHJlYXRlZCBhcyBiaW5hcnlcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgaGVhZGVycyA9IHsgJ2NvbnRlbnQtZW5jb2RpbmcnOiAnZ3ppcCcgfTtcbiAqIGNvbnN0IGlzQmluYXJ5ID0gaXNDb250ZW50RW5jb2RpbmdCaW5hcnkoaGVhZGVycywgWydnemlwJ10pO1xuICogY29uc29sZS5sb2coaXNCaW5hcnkpO1xuICogLy8gdHJ1ZVxuICogYGBgXG4gKlxuICogQHBhcmFtIGhlYWRlcnMgLSBUaGUgaGVhZGVycyBvZiB0aGUgcmVzcG9uc2VcbiAqIEBwYXJhbSBiaW5hcnlFbmNvZGluZ1R5cGVzIC0gVGhlIGxpc3Qgb2YgY29udGVudCBlbmNvZGluZ3MgdGhhdCB3aWxsIGJlIHRyZWF0ZWQgYXMgYmluYXJ5XG4gKlxuICogQGJyZWFkY3J1bWIgQ29yZSAvIGlzQmluYXJ5XG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0NvbnRlbnRFbmNvZGluZ0JpbmFyeShcbiAgaGVhZGVyczogQm90aFZhbHVlSGVhZGVycyxcbiAgYmluYXJ5RW5jb2RpbmdUeXBlczogc3RyaW5nW10sXG4pOiBib29sZWFuIHtcbiAgbGV0IGNvbnRlbnRFbmNvZGluZ3MgPSBoZWFkZXJzWydjb250ZW50LWVuY29kaW5nJ107XG5cbiAgaWYgKCFjb250ZW50RW5jb2RpbmdzKSByZXR1cm4gZmFsc2U7XG5cbiAgaWYgKCFBcnJheS5pc0FycmF5KGNvbnRlbnRFbmNvZGluZ3MpKVxuICAgIGNvbnRlbnRFbmNvZGluZ3MgPSBjb250ZW50RW5jb2RpbmdzLnNwbGl0KCcsJyk7XG5cbiAgcmV0dXJuIGNvbnRlbnRFbmNvZGluZ3Muc29tZSh2YWx1ZSA9PlxuICAgIGJpbmFyeUVuY29kaW5nVHlwZXMuaW5jbHVkZXModmFsdWUudHJpbSgpKSxcbiAgKTtcbn1cblxuLyoqXG4gKiBUaGUgZnVuY3Rpb24gdGhhdCByZXR1cm5zIHRoZSBjb250ZW50IHR5cGUgb2YgaGVhZGVyc1xuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBoZWFkZXJzID0geyAnY29udGVudC10eXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH07XG4gKiBjb25zdCBjb250ZW50VHlwZSA9IGdldENvbnRlbnRUeXBlKGhlYWRlcnMpO1xuICogY29uc29sZS5sb2coY29udGVudFR5cGUpO1xuICogLy8gYXBwbGljYXRpb24vanNvblxuICogYGBgXG4gKlxuICogQHBhcmFtIGhlYWRlcnMgLSBUaGUgaGVhZGVycyBvZiB0aGUgcmVzcG9uc2VcbiAqXG4gKiBAYnJlYWRjcnVtYiBDb3JlIC8gaXNCaW5hcnlcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldENvbnRlbnRUeXBlKGhlYWRlcnM6IEJvdGhWYWx1ZUhlYWRlcnMpOiBzdHJpbmcge1xuICBjb25zdCBjb250ZW50VHlwZUhlYWRlclJhdyA9IGhlYWRlcnNbJ2NvbnRlbnQtdHlwZSddO1xuICBjb25zdCBjb250ZW50VHlwZUhlYWRlciA9IEFycmF5LmlzQXJyYXkoY29udGVudFR5cGVIZWFkZXJSYXcpXG4gICAgPyBjb250ZW50VHlwZUhlYWRlclJhd1swXSB8fCAnJ1xuICAgIDogY29udGVudFR5cGVIZWFkZXJSYXcgfHwgJyc7XG5cbiAgaWYgKCFjb250ZW50VHlwZUhlYWRlclJhdykgcmV0dXJuICcnO1xuXG4gIC8vIG9ubHkgY29tcGFyZSBtaW1lIHR5cGU7IGlnbm9yZSBlbmNvZGluZyBwYXJ0XG4gIGNvbnN0IGNvbnRlbnRUeXBlU3RhcnQgPSBjb250ZW50VHlwZUhlYWRlci5pbmRleE9mKCc7Jyk7XG5cbiAgaWYgKGNvbnRlbnRUeXBlU3RhcnQgPT09IC0xKSByZXR1cm4gY29udGVudFR5cGVIZWFkZXI7XG5cbiAgcmV0dXJuIGNvbnRlbnRUeXBlSGVhZGVyLnNsaWNlKDAsIGNvbnRlbnRUeXBlU3RhcnQpO1xufVxuXG4vKipcbiAqIFRoZSBmdW5jdGlvbiB0aGF0IGRldGVybWluZXMgYnkgdGhlIGNvbnRlbnQgdHlwZSB3aGV0aGVyIHRoZSByZXNwb25zZSBzaG91bGQgYmUgdHJlYXRlZCBhcyBiaW5hcnlcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgaGVhZGVycyA9IHsgJ2NvbnRlbnQtdHlwZSc6ICdpbWFnZS9wbmcnIH07XG4gKiBjb25zdCBpc0JpbmFyeSA9IGlzQ29udGVudFR5cGVCaW5hcnkoaGVhZGVycywgbmV3IE1hcChbWydpbWFnZS9wbmcnLCB0cnVlXV0pKTtcbiAqIGNvbnNvbGUubG9nKGlzQmluYXJ5KTtcbiAqIC8vIHRydWVcbiAqIGBgYFxuICpcbiAqIEBwYXJhbSBoZWFkZXJzIC0gVGhlIGhlYWRlcnMgb2YgdGhlIHJlc3BvbnNlXG4gKiBAcGFyYW0gYmluYXJ5Q29udGVudFR5cGVzIC0gVGhlIGxpc3Qgb2YgY29udGVudCB0eXBlcyB0aGF0IHdpbGwgYmUgdHJlYXRlZCBhcyBiaW5hcnlcbiAqXG4gKiBAYnJlYWRjcnVtYiBDb3JlIC8gaXNCaW5hcnlcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQ29udGVudFR5cGVCaW5hcnkoXG4gIGhlYWRlcnM6IEJvdGhWYWx1ZUhlYWRlcnMsXG4gIGJpbmFyeUNvbnRlbnRUeXBlczogc3RyaW5nW10sXG4pIHtcbiAgY29uc3QgY29udGVudFR5cGUgPSBnZXRDb250ZW50VHlwZShoZWFkZXJzKTtcblxuICBpZiAoIWNvbnRlbnRUeXBlKSByZXR1cm4gZmFsc2U7XG5cbiAgcmV0dXJuIGJpbmFyeUNvbnRlbnRUeXBlcy5pbmNsdWRlcyhjb250ZW50VHlwZS50cmltKCkpO1xufVxuXG4vKipcbiAqIFRoZSBmdW5jdGlvbiB1c2VkIHRvIGRldGVybWluZSBmcm9tIHRoZSBoZWFkZXJzIGFuZCB0aGUgYmluYXJ5IHNldHRpbmdzIGlmIGEgcmVzcG9uc2Ugc2hvdWxkIGJlIGVuY29kZWQgb3Igbm90XG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGhlYWRlcnMgPSB7ICdjb250ZW50LXR5cGUnOiAnaW1hZ2UvcG5nJywgJ2NvbnRlbnQtZW5jb2RpbmcnOiAnZ3ppcCcgfTtcbiAqIGNvbnN0IGlzQ29udGVudEJpbmFyeSA9IGlzQmluYXJ5KGhlYWRlcnMsIHsgY29udGVudEVuY29kaW5nczogWydnemlwJ10sIGNvbnRlbnRUeXBlczogWydpbWFnZS9wbmcnXSB9KTtcbiAqIGNvbnNvbGUubG9nKGlzQ29udGVudEJpbmFyeSk7XG4gKiAvLyB0cnVlXG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0gaGVhZGVycyAtIFRoZSBoZWFkZXJzIG9mIHRoZSByZXNwb25zZVxuICogQHBhcmFtIGJpbmFyeVNldHRpbmdzIC0gVGhlIHNldHRpbmdzIGZvciB0aGUgdmFsaWRhdGlvblxuICpcbiAqIEBicmVhZGNydW1iIENvcmUgLyBpc0JpbmFyeVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gaXNCaW5hcnkoXG4gIGhlYWRlcnM6IEJvdGhWYWx1ZUhlYWRlcnMsXG4gIGJpbmFyeVNldHRpbmdzOiBCaW5hcnlTZXR0aW5ncyxcbik6IGJvb2xlYW4ge1xuICBpZiAoJ2lzQmluYXJ5JyBpbiBiaW5hcnlTZXR0aW5ncykge1xuICAgIGlmIChiaW5hcnlTZXR0aW5ncy5pc0JpbmFyeSA9PT0gZmFsc2UpIHJldHVybiBmYWxzZTtcblxuICAgIHJldHVybiBiaW5hcnlTZXR0aW5ncy5pc0JpbmFyeShoZWFkZXJzKTtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgaXNDb250ZW50RW5jb2RpbmdCaW5hcnkoaGVhZGVycywgYmluYXJ5U2V0dGluZ3MuY29udGVudEVuY29kaW5ncykgfHxcbiAgICBpc0NvbnRlbnRUeXBlQmluYXJ5KGhlYWRlcnMsIGJpbmFyeVNldHRpbmdzLmNvbnRlbnRUeXBlcylcbiAgKTtcbn1cbiIsICIvKipcbiAqIE5vIG9wZXJhdGlvbiBmdW5jdGlvbiBpcyB1c2VkIHdoZW4gd2UgbmVlZCB0byBwYXNzIGEgZnVuY3Rpb24sIGJ1dCB3ZSBkb24ndCB3YW50IHRvIHNwZWNpZnkgYW55IGJlaGF2aW9yLlxuICpcbiAqIEBicmVhZGNydW1iIENvcmVcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IE5PX09QOiAoLi4uYXJnczogYW55W10pID0+IGFueSA9ICgpID0+IHZvaWQgMDtcbiIsICJpbXBvcnQgeyBOT19PUCB9IGZyb20gJy4vbm8tb3AnO1xuXG4vKipcbiAqIFRoZSB0eXBlIHJlcHJlc2VudGluZyB0aGUgcG9zc2libGUgbG9nIGxldmVscyB0byBjaG9vc2UgZnJvbS5cbiAqXG4gKiBAYnJlYWRjcnVtYiBDb3JlIC8gTG9nZ2VyXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCB0eXBlIExvZ0xldmVscyA9XG4gIHwgJ2RlYnVnJ1xuICB8ICd2ZXJib3NlJ1xuICB8ICdpbmZvJ1xuICB8ICd3YXJuJ1xuICB8ICdlcnJvcidcbiAgfCAnbm9uZSc7XG5cbi8qKlxuICogVGhlIG9wdGlvbnMgdG8gY3VzdG9taXplIHtAbGluayBJTG9nZ2VyfVxuICpcbiAqIEBicmVhZGNydW1iIENvcmUgLyBMb2dnZXJcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IHR5cGUgTG9nZ2VyT3B0aW9ucyA9IHtcbiAgLyoqXG4gICAqIFNlbGVjdCB0aGUgbG9nIGxldmVsLCB7QGxpbmsgTG9nTGV2ZWxzIHwgc2VlIG1vcmV9LlxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIGVycm9yXG4gICAqL1xuICBsZXZlbDogTG9nTGV2ZWxzO1xufTtcblxuLyoqXG4gKiBUaGUgbG9nIGZ1bmN0aW9uIHVzZWQgaW4gYW55IGxldmVsLlxuICpcbiAqIEBicmVhZGNydW1iIENvcmUgLyBMb2dnZXJcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IHR5cGUgTG9nZ2VyRk4gPSAobWVzc2FnZTogYW55LCAuLi5hZGRpdGlvbmFsOiBhbnlbXSkgPT4gdm9pZDtcblxuLyoqXG4gKiBUaGUgaW50ZXJmYWNlIHJlcHJlc2VudGluZyB0aGUgbG9nZ2VyLCB5b3UgY2FuIHByb3ZpZGUgYSBjdXN0b20gbG9nZ2VyIGJ5IGltcGxlbWVudGluZyB0aGlzIGludGVyZmFjZS5cbiAqXG4gKiBAYnJlYWRjcnVtYiBDb3JlIC8gTG9nZ2VyXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCB0eXBlIElMb2dnZXIgPSBSZWNvcmQ8RXhjbHVkZTxMb2dMZXZlbHMsICdub25lJz4sIExvZ2dlckZOPjtcblxuLyoqXG4gKiBUaGUgc3ltYm9sIHVzZWQgdG8gY2hlY2sgYWdhaW5zdCBhbiBJTG9nZ2VyIGluc3RhY2UgdG8gdmVyaWZ5IGlmIHRoYXQgSUxvZ2dlciB3YXMgY3JlYXRlZCBieSB0aGlzIGxpYnJhcnlcbiAqXG4gKiBAYnJlYWRjcnVtYiBDb3JlIC8gTG9nZ2VyXG4gKiBAcHVibGljXG4gKi9cbmNvbnN0IEludGVybmFsTG9nZ2VyU3ltYm9sID0gU3ltYm9sKCdJbnRlcm5hbExvZ2dlcicpO1xuXG5jb25zdCBsb2dMZXZlbHM6IFJlY29yZDxcbiAgTG9nTGV2ZWxzLFxuICBbbGV2ZWw6IExvZ0xldmVscywgY29uc29sZU1ldGhvZDoga2V5b2YgQ29uc29sZV1bXVxuPiA9IHtcbiAgZGVidWc6IFtcbiAgICBbJ2RlYnVnJywgJ2RlYnVnJ10sXG4gICAgWyd2ZXJib3NlJywgJ2RlYnVnJ10sXG4gICAgWydpbmZvJywgJ2luZm8nXSxcbiAgICBbJ2Vycm9yJywgJ2Vycm9yJ10sXG4gICAgWyd3YXJuJywgJ3dhcm4nXSxcbiAgXSxcbiAgdmVyYm9zZTogW1xuICAgIFsndmVyYm9zZScsICdkZWJ1ZyddLFxuICAgIFsnaW5mbycsICdpbmZvJ10sXG4gICAgWydlcnJvcicsICdlcnJvciddLFxuICAgIFsnd2FybicsICd3YXJuJ10sXG4gIF0sXG4gIGluZm86IFtcbiAgICBbJ2luZm8nLCAnaW5mbyddLFxuICAgIFsnZXJyb3InLCAnZXJyb3InXSxcbiAgICBbJ3dhcm4nLCAnd2FybiddLFxuICBdLFxuICB3YXJuOiBbXG4gICAgWyd3YXJuJywgJ3dhcm4nXSxcbiAgICBbJ2Vycm9yJywgJ2Vycm9yJ10sXG4gIF0sXG4gIGVycm9yOiBbWydlcnJvcicsICdlcnJvciddXSxcbiAgbm9uZTogW10sXG59O1xuXG5jb25zdCBsYXp5UHJpbnQgPSAodmFsdWU6ICgpID0+IGFueSB8IHVua25vd24pID0+IHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJykgcmV0dXJuIHZhbHVlKCk7XG5cbiAgcmV0dXJuIHZhbHVlO1xufTtcblxuY29uc3QgcHJpbnQgPVxuICAoZm46IHN0cmluZykgPT5cbiAgKG1lc3NhZ2U6IGFueSwgLi4uYWRkaXRpb25hbDogKCgpID0+IGFueSlbXSkgPT5cbiAgICBjb25zb2xlW2ZuXShtZXNzYWdlLCAuLi5hZGRpdGlvbmFsLm1hcChsYXp5UHJpbnQpKTtcblxuLyoqXG4gKiBUaGUgbWV0aG9kIHVzZWQgdG8gY3JlYXRlIGEgc2ltcGxlIGxvZ2dlciBpbnN0YW5jZSB0byB1c2UgaW4gdGhpcyBsaWJyYXJ5LlxuICpcbiAqIEByZW1hcmtzIEJlaGluZCB0aGUgc2NlbmVzLCB0aGlzIHNpbXBsZSBsb2dnZXIgc2VuZHMgdGhlIG1lc3NhZ2UgdG8gdGhlIGBjb25zb2xlYCBtZXRob2RzLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBsb2dnZXIgPSBjcmVhdGVEZWZhdWx0TG9nZ2VyKCk7XG4gKlxuICogbG9nZ2VyLmVycm9yKCdBbiBlcnJvciBoYXBwZW5zLicpO1xuICogLy8gQW4gZXJyb3IgaGFwcGVucy5cbiAqIGBgYFxuICpcbiAqIEBwYXJhbSBsZXZlbCAtIFNlbGVjdCB0aGUgbGV2ZWwgb2YgdGhlIGxvZ1xuICpcbiAqIEBicmVhZGNydW1iIENvcmUgLyBMb2dnZXJcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZURlZmF1bHRMb2dnZXIoXG4gIHsgbGV2ZWwgfTogTG9nZ2VyT3B0aW9ucyA9IHsgbGV2ZWw6ICdlcnJvcicgfSxcbik6IElMb2dnZXIge1xuICBjb25zdCBsZXZlbHMgPSBsb2dMZXZlbHNbbGV2ZWxdO1xuXG4gIGlmICghbGV2ZWxzKSB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgbG9nIGxldmVsJyk7XG5cbiAgY29uc3QgbG9nZ2VyID0ge1xuICAgIFtJbnRlcm5hbExvZ2dlclN5bWJvbF06IHRydWUsXG4gICAgZXJyb3I6IE5PX09QLFxuICAgIGRlYnVnOiBOT19PUCxcbiAgICBpbmZvOiBOT19PUCxcbiAgICB2ZXJib3NlOiBOT19PUCxcbiAgICB3YXJuOiBOT19PUCxcbiAgfSBhcyBJTG9nZ2VyO1xuXG4gIGZvciAoY29uc3QgW2xldmVsLCBjb25zb2xlTWV0aG9kXSBvZiBsZXZlbHMpXG4gICAgbG9nZ2VyW2xldmVsXSA9IHByaW50KGNvbnNvbGVNZXRob2QpO1xuXG4gIHJldHVybiBsb2dnZXI7XG59XG5cbi8qKlxuICogVGhlIG1ldGhvZCB1c2VkIHRvIGNoY2sgaWYgbG9nZ2VyIHdhcyBjcmVhdGVkIGJ5IHRoaXMgbGlicmFyeSwgb3IgaXQgd2FzIGRlZmluZWQgYnkgdGhlIHVzZXIuXG4gKlxuICogQHBhcmFtIGxvZ2dlciAtIFRoZSBpbnN0YW5jZSBvZiB0aGUgbG9nZ2VyIHRvIGNoZWNrXG4gKlxuICogQGJyZWFkY3J1bWIgQ29yZSAvIExvZ2dlclxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gaXNJbnRlcm5hbExvZ2dlcihsb2dnZXI6IElMb2dnZXIpOiBib29sZWFuIHtcbiAgcmV0dXJuICEhbG9nZ2VyW0ludGVybmFsTG9nZ2VyU3ltYm9sXTtcbn1cbiIsICIvKipcbiAqIFJldHVybiB0aGUgZGVmYXVsdFZhbHVlIHdoZXRoZXIgdGhlIHZhbHVlIGlzIHVuZGVmaW5lZCwgb3RoZXJ3aXNlLCByZXR1cm4gdGhlIHZhbHVlLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCB2YWx1ZTEgPSBnZXREZWZhdWx0SWZVbmRlZmluZWQodW5kZWZpbmVkLCB0cnVlKTtcbiAqIGNvbnN0IHZhbHVlMiA9IGdldERlZmF1bHRJZlVuZGVmaW5lZChmYWxzZSwgdHJ1ZSk7XG4gKlxuICogY29uc29sZS5sb2codmFsdWUxKTtcbiAqIC8vIHRydWVcbiAqIGNvbnNvbGUubG9nKHZhbHVlMik7XG4gKiAvLyBmYWxzZVxuICogYGBgXG4gKlxuICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIHRvIGJlIGNoZWNrZWRcbiAqIEBwYXJhbSBkZWZhdWx0VmFsdWUgLSBUaGUgZGVmYXVsdCB2YWx1ZSB3aGVuIHZhbHVlIGlzIHVuZGVmaW5lZFxuICpcbiAqIEBicmVhZGNydW1iIENvcmVcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldERlZmF1bHRJZlVuZGVmaW5lZDxUPihcbiAgdmFsdWU6IFQgfCB1bmRlZmluZWQsXG4gIGRlZmF1bHRWYWx1ZTogVCxcbik6IFQge1xuICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcblxuICByZXR1cm4gdmFsdWU7XG59XG4iLCAiLyoqXG4gKiBUcmFuc2Zvcm0gdGhlIHBhdGggYW5kIGEgbWFwIG9mIHF1ZXJ5IHBhcmFtcyB0byBhIHN0cmluZyB3aXRoIGZvcm1hdHRlZCBxdWVyeSBwYXJhbXNcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgcGF0aCA9ICcvcGV0cy9zZWFyY2gnO1xuICogY29uc3QgcXVlcnlQYXJhbXMgPSB7IGJhdGF0YTogdW5kZWZpbmVkLCBwZXRUeXBlOiBbICdkb2cnLCAnZmlzaCcgXSB9O1xuICogY29uc3QgcmVzdWx0ID0gZ2V0UGF0aFdpdGhRdWVyeVN0cmluZ1BhcmFtcyhwYXRoLCBxdWVyeVBhcmFtcyk7XG4gKiBjb25zb2xlLmxvZyhyZXN1bHQpO1xuICogLy8gL3BldHMvc2VhcmNoP2JhdGF0YT0mcGV0VHlwZT1kb2cmcGV0VHlwZT1maXNoXG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0gcGF0aCAtIFRoZSBwYXRoXG4gKiBAcGFyYW0gcXVlcnlQYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1zXG4gKlxuICogQGJyZWFkY3J1bWIgQ29yZSAvIFBhdGhcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFBhdGhXaXRoUXVlcnlTdHJpbmdQYXJhbXMoXG4gIHBhdGg6IHN0cmluZyxcbiAgcXVlcnlQYXJhbXM6XG4gICAgfCBzdHJpbmdcbiAgICB8IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkPlxuICAgIHwgdW5kZWZpbmVkXG4gICAgfCBudWxsLFxuKTogc3RyaW5nIHtcbiAgaWYgKFN0cmluZyhxdWVyeVBhcmFtcyB8fCAnJykubGVuZ3RoID09PSAwKSByZXR1cm4gcGF0aDtcblxuICBpZiAodHlwZW9mIHF1ZXJ5UGFyYW1zID09PSAnc3RyaW5nJykgcmV0dXJuIGAke3BhdGh9PyR7cXVlcnlQYXJhbXN9YDtcblxuICBjb25zdCBxdWVyeVBhcmFtc1N0cmluZyA9IGdldFF1ZXJ5UGFyYW1zU3RyaW5nRnJvbVJlY29yZChxdWVyeVBhcmFtcyk7XG5cbiAgaWYgKCFxdWVyeVBhcmFtc1N0cmluZykgcmV0dXJuIHBhdGg7XG5cbiAgcmV0dXJuIGAke3BhdGh9PyR7cXVlcnlQYXJhbXNTdHJpbmd9YDtcbn1cblxuLyoqXG4gKiBNYXAgcXVlcnkgcGFyYW1zIHRvIGEgc3RyaW5nIHdpdGggZm9ybWF0dGVkIHF1ZXJ5IHBhcmFtc1xuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBxdWVyeVBhcmFtcyA9IHsgYmF0YXRhOiB1bmRlZmluZWQsIHBldFR5cGU6IFsgJ2RvZycsICdmaXNoJyBdIH07XG4gKiBjb25zdCByZXN1bHQgPSBnZXRRdWVyeVBhcmFtc1N0cmluZ0Zyb21SZWNvcmQocXVlcnlQYXJhbXMpO1xuICogY29uc29sZS5sb2cocmVzdWx0KTtcbiAqIC8vIGJhdGF0YT0mcGV0VHlwZT1kb2cmcGV0VHlwZT1maXNoXG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0gcXVlcnlQYXJhbXNSZWNvcmQgLSBUaGUgcXVlcnkgcGFyYW1zIHJlY29yZFxuICpcbiAqIEBicmVhZGNydW1iIENvcmUgLyBQYXRoXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRRdWVyeVBhcmFtc1N0cmluZ0Zyb21SZWNvcmQoXG4gIHF1ZXJ5UGFyYW1zUmVjb3JkOlxuICAgIHwgUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgc3RyaW5nW10gfCB1bmRlZmluZWQ+XG4gICAgfCB1bmRlZmluZWRcbiAgICB8IG51bGwsXG4pOiBzdHJpbmcge1xuICBjb25zdCBzZWFyY2hQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKCk7XG5cbiAgY29uc3QgbXVsdGlWYWx1ZUhlYWRlcnNFbnRyaWVzOiBbc3RyaW5nLCBzdHJpbmcgfCBzdHJpbmdbXSB8IHVuZGVmaW5lZF1bXSA9XG4gICAgT2JqZWN0LmVudHJpZXMocXVlcnlQYXJhbXNSZWNvcmQgfHwge30pO1xuXG4gIGlmIChtdWx0aVZhbHVlSGVhZGVyc0VudHJpZXMubGVuZ3RoID09PSAwKSByZXR1cm4gJyc7XG5cbiAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgbXVsdGlWYWx1ZUhlYWRlcnNFbnRyaWVzKSB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgc2VhcmNoUGFyYW1zLmFwcGVuZChrZXksIHZhbHVlIHx8ICcnKTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgYXJyYXlWYWx1ZSBvZiB2YWx1ZSkgc2VhcmNoUGFyYW1zLmFwcGVuZChrZXksIGFycmF5VmFsdWUpO1xuICB9XG5cbiAgcmV0dXJuIHNlYXJjaFBhcmFtcy50b1N0cmluZygpO1xufVxuXG4vKipcbiAqIFR5cGUgb2YgdGhlIGZ1bmN0aW9uIHRvIHN0cmlwIGJhc2UgcGF0aFxuICpcbiAqIEBicmVhZGNydW1iIENvcmUgLyBQYXRoXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCB0eXBlIFN0cmlwQmFzZVBhdGhGbiA9IChwYXRoOiBzdHJpbmcpID0+IHN0cmluZztcblxuY29uc3QgTk9PUEJhc2VQYXRoOiBTdHJpcEJhc2VQYXRoRm4gPSAocGF0aDogc3RyaW5nKSA9PiBwYXRoO1xuXG4vKipcbiAqIEdldCB0aGUgc3RyaXAgYmFzZSBwYXRoIGZ1bmN0aW9uXG4gKlxuICogQHBhcmFtIGJhc2VQYXRoIC0gVGhlIGJhc2UgcGF0aFxuICpcbiAqIEBicmVhZGNydW1iIENvcmUgLyBQYXRoXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFN0cmlwQmFzZVBhdGgoXG4gIGJhc2VQYXRoOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4pOiBTdHJpcEJhc2VQYXRoRm4ge1xuICBpZiAoIWJhc2VQYXRoKSByZXR1cm4gTk9PUEJhc2VQYXRoO1xuXG4gIGNvbnN0IGxlbmd0aCA9IGJhc2VQYXRoLmxlbmd0aDtcblxuICByZXR1cm4gKHBhdGg6IHN0cmluZykgPT4ge1xuICAgIGlmIChwYXRoLnN0YXJ0c1dpdGgoYmFzZVBhdGgpKVxuICAgICAgcmV0dXJuIHBhdGguc2xpY2UocGF0aC5pbmRleE9mKGJhc2VQYXRoKSArIGxlbmd0aCwgcGF0aC5sZW5ndGgpIHx8ICcvJztcblxuICAgIHJldHVybiBwYXRoO1xuICB9O1xufVxuIiwgIi8vI3JlZ2lvbiBJbXBvcnRzXG5cbmltcG9ydCB7IFJlYWRhYmxlLCBXcml0YWJsZSB9IGZyb20gJ25vZGU6c3RyZWFtJztcblxuLy8jZW5kcmVnaW9uXG5cbi8qKlxuICogQ2hlY2sgaWYgc3RyZWFtIGFscmVhZHkgZW5kZWRcbiAqXG4gKiBAcGFyYW0gc3RyZWFtIC0gVGhlIHN0cmVhbVxuICpcbiAqIEBicmVhZGNydW1iIENvcmUgLyBTdHJlYW1cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzU3RyZWFtRW5kZWQoc3RyZWFtOiBSZWFkYWJsZSB8IFdyaXRhYmxlKTogYm9vbGVhbiB7XG4gIGlmICgncmVhZGFibGVFbmRlZCcgaW4gc3RyZWFtICYmIHN0cmVhbS5yZWFkYWJsZUVuZGVkKSByZXR1cm4gdHJ1ZTtcblxuICBpZiAoJ3dyaXRhYmxlRW5kZWQnIGluIHN0cmVhbSAmJiBzdHJlYW0ud3JpdGFibGVFbmRlZCkgcmV0dXJuIHRydWU7XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG4vKipcbiAqIFdhaXQgYXN5bmNocm9ub3VzIHRoZSBzdHJlYW0gdG8gY29tcGxldGVcbiAqXG4gKiBAcGFyYW0gc3RyZWFtIC0gVGhlIHN0cmVhbVxuICpcbiAqIEBicmVhZGNydW1iIENvcmUgLyBTdHJlYW1cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdhaXRGb3JTdHJlYW1Db21wbGV0ZTxUU3RyZWFtIGV4dGVuZHMgUmVhZGFibGUgfCBXcml0YWJsZT4oXG4gIHN0cmVhbTogVFN0cmVhbSxcbik6IFByb21pc2U8VFN0cmVhbT4ge1xuICBpZiAoaXNTdHJlYW1FbmRlZChzdHJlYW0pKSByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHN0cmVhbSk7XG5cbiAgcmV0dXJuIG5ldyBQcm9taXNlPFRTdHJlYW0+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAvLyBSZWFkaW5nIHRoZSB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL25vZGVqcy9ub2RlL2Jsb2IvdjEyLjIyLjkvbGliL2V2ZW50cy5qcyNMMjYyIHwgZW1pdCBzb3VyY2UgY29kZX0sXG4gICAgLy8gaXQncyBhbG1vc3QgaW1wb3NzaWJsZSB0byBjb21wbGV0ZSBiZWluZyBjYWxsZWQgdHdpY2UgYmVjYXVzZSB0aGUgZW1pdCBmdW5jdGlvbiBydW5zIHN5bmNocm9ub3VzbHkgYW5kIHJlbW92ZXMgdGhlIG90aGVyIGxpc3RlbmVycyxcbiAgICAvLyBidXQgSSdsbCBsZWF2ZSBpdCBhdCB0aGF0IGJlY2F1c2UgSSBkaWRuJ3Qgd3JpdGUgdGhhdCBjb2RlLCBzbyBJIGNvdWxkbid0IGZpZ3VyZSBvdXQgd2hhdCB0aGUgYXV0aG9yIHRob3VnaHQgd2hlbiBoZSB3cm90ZSB0aGlzLlxuICAgIGxldCBpc0NvbXBsZXRlID0gZmFsc2U7XG5cbiAgICBmdW5jdGlvbiBjb21wbGV0ZShlcnI6IGFueSkge1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgIGlmIChpc0NvbXBsZXRlKSByZXR1cm47XG5cbiAgICAgIGlzQ29tcGxldGUgPSB0cnVlO1xuXG4gICAgICBzdHJlYW0ucmVtb3ZlTGlzdGVuZXIoJ2Vycm9yJywgY29tcGxldGUpO1xuICAgICAgc3RyZWFtLnJlbW92ZUxpc3RlbmVyKCdlbmQnLCBjb21wbGV0ZSk7XG4gICAgICBzdHJlYW0ucmVtb3ZlTGlzdGVuZXIoJ2ZpbmlzaCcsIGNvbXBsZXRlKTtcblxuICAgICAgaWYgKGVycikgcmVqZWN0KGVycik7XG4gICAgICBlbHNlIHJlc29sdmUoc3RyZWFtKTtcbiAgICB9XG5cbiAgICBzdHJlYW0ub25jZSgnZXJyb3InLCBjb21wbGV0ZSk7XG4gICAgc3RyZWFtLm9uY2UoJ2VuZCcsIGNvbXBsZXRlKTtcbiAgICBzdHJlYW0ub25jZSgnZmluaXNoJywgY29tcGxldGUpO1xuICB9KTtcbn1cbiIsICIvLyBBVFRSSUJVVElPTjogaHR0cHM6Ly9naXRodWIuY29tL2RvdWdtb3Njcm9wL3NlcnZlcmxlc3MtaHR0cFxuaW1wb3J0IHsgSW5jb21pbmdNZXNzYWdlLCBTZXJ2ZXJSZXNwb25zZSB9IGZyb20gJ25vZGU6aHR0cCc7XG5pbXBvcnQgdHlwZSB7IFNvY2tldCB9IGZyb20gJ25vZGU6bmV0JztcbmltcG9ydCB7IE5PX09QIH0gZnJvbSAnLi4vY29yZSc7XG5pbXBvcnQgeyBnZXRTdHJpbmcgfSBmcm9tICcuL3V0aWxzJztcblxuY29uc3QgaGVhZGVyRW5kID0gJ1xcclxcblxcclxcbic7XG5jb25zdCBlbmRDaHVua2VkID0gJzBcXHJcXG5cXHJcXG4nO1xuXG5jb25zdCBCT0RZID0gU3ltYm9sKCdSZXNwb25zZSBib2R5Jyk7XG5jb25zdCBIRUFERVJTID0gU3ltYm9sKCdSZXNwb25zZSBoZWFkZXJzJyk7XG5cbmZ1bmN0aW9uIGFkZERhdGEoc3RyZWFtOiBTZXJ2ZXJsZXNzUmVzcG9uc2UsIGRhdGE6IFVpbnQ4QXJyYXkgfCBzdHJpbmcpIHtcbiAgaWYgKFxuICAgIEJ1ZmZlci5pc0J1ZmZlcihkYXRhKSB8fFxuICAgIHR5cGVvZiBkYXRhID09PSAnc3RyaW5nJyB8fFxuICAgIGRhdGEgaW5zdGFuY2VvZiBVaW50OEFycmF5XG4gIClcbiAgICBzdHJlYW1bQk9EWV0ucHVzaChCdWZmZXIuZnJvbShkYXRhKSk7XG4gIGVsc2UgdGhyb3cgbmV3IEVycm9yKGByZXNwb25zZS53cml0ZSgpIG9mIHVuZXhwZWN0ZWQgdHlwZTogJHt0eXBlb2YgZGF0YX1gKTtcbn1cblxuLyoqXG4gKiBUaGUgcHJvcGVydGllcyB0byBjcmVhdGUgYSB7QGxpbmsgU2VydmVybGVzc1Jlc3BvbnNlfS5cbiAqXG4gKiBAYnJlYWRjcnVtYiBOZXR3b3JrIC8gU2VydmVybGVzc1Jlc3BvbnNlXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VydmVybGVzc1Jlc3BvbnNlUHJvcHMge1xuICAvKipcbiAgICogVGhlIEhUVFAgTWV0aG9kIGZyb20gcmVxdWVzdFxuICAgKi9cbiAgbWV0aG9kPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRoZSBjbGFzcyB0aGF0IHJlcHJlc2VudHMgYSByZXNwb25zZSBpbnN0YW5jZSB1c2VkIHRvIHNlbmQgdG8gdGhlIGZyYW1ld29yayBhbmQgd2FpdCB1bnRpbCB0aGUgZnJhbWV3b3JrIGZpbmlzaGVzIHByb2Nlc3NpbmcgdGhlIHJlcXVlc3QuXG4gKiBPbmNlIGl0J3MgaGFwcGVucywgd2UgdXNlIHRoZSBwcm9wZXJ0aWVzIGZyb20gdGhpcyByZXNwb25zZSB0byBidWlsdCB0aGUgcmVzcG9uc2UgdG8gdGhlIGNsb3VkLlxuICpcbiAqIEBicmVhZGNydW1iIE5ldHdvcmsgLyBTZXJ2ZXJsZXNzUmVzcG9uc2VcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNsYXNzIFNlcnZlcmxlc3NSZXNwb25zZSBleHRlbmRzIFNlcnZlclJlc3BvbnNlIHtcbiAgY29uc3RydWN0b3IoeyBtZXRob2QgfTogU2VydmVybGVzc1Jlc3BvbnNlUHJvcHMpIHtcbiAgICBzdXBlcih7IG1ldGhvZCB9IGFzIGFueSk7XG5cbiAgICB0aGlzW0JPRFldID0gW107XG4gICAgdGhpc1tIRUFERVJTXSA9IHt9O1xuXG4gICAgdGhpcy51c2VDaHVua2VkRW5jb2RpbmdCeURlZmF1bHQgPSBmYWxzZTtcbiAgICB0aGlzLmNodW5rZWRFbmNvZGluZyA9IGZhbHNlO1xuICAgIHRoaXMuX2hlYWRlciA9ICcnO1xuXG4gICAgLy8gdGhpcyBpZ25vcmUgaXMgdXNlZCBiZWNhdXNlIEkgbmVlZCB0byBpZ25vcmUgdGhlc2Ugd3JpdGUgY2FsbHM6XG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL25vZGVqcy9ub2RlL2Jsb2IvbWFpbi9saWIvX2h0dHBfb3V0Z29pbmcuanMjTDkzNC1MOTM1XG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL25vZGVqcy9ub2RlL2Jsb2IvbWFpbi9saWIvX2h0dHBfb3V0Z29pbmcuanMjTDkzN1xuICAgIGxldCB3cml0ZXNUb0lnbm9yZSA9IDE7XG5cbiAgICBjb25zdCBzb2NrZXQ6IFBhcnRpYWw8U29ja2V0PiAmIHsgX3dyaXRhYmxlU3RhdGU6IGFueSB9ID0ge1xuICAgICAgX3dyaXRhYmxlU3RhdGU6IHt9LFxuICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICBvbjogTk9fT1AsXG4gICAgICByZW1vdmVMaXN0ZW5lcjogTk9fT1AsXG4gICAgICBkZXN0cm95OiBOT19PUCxcbiAgICAgIGNvcms6IE5PX09QLFxuICAgICAgdW5jb3JrOiBOT19PUCxcbiAgICAgIHdyaXRlOiAoXG4gICAgICAgIGRhdGE6IFVpbnQ4QXJyYXkgfCBzdHJpbmcsXG4gICAgICAgIGVuY29kaW5nPzogc3RyaW5nIHwgbnVsbCB8ICgoKSA9PiB2b2lkKSxcbiAgICAgICAgY2I/OiAoKSA9PiB2b2lkLFxuICAgICAgKTogYW55ID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiBlbmNvZGluZyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIGNiID0gZW5jb2Rpbmc7XG4gICAgICAgICAgZW5jb2RpbmcgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuX2hlYWRlciA9PT0gJycgfHwgdGhpcy5fd3JvdGVIZWFkZXIpIHtcbiAgICAgICAgICBpZiAoIXRoaXMuY2h1bmtlZEVuY29kaW5nKSBhZGREYXRhKHRoaXMsIGRhdGEpO1xuICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaWYgKHdyaXRlc1RvSWdub3JlID4gMCkgd3JpdGVzVG9JZ25vcmUtLTtcbiAgICAgICAgICAgIGVsc2UgaWYgKGRhdGEgIT09IGVuZENodW5rZWQpIHtcbiAgICAgICAgICAgICAgYWRkRGF0YSh0aGlzLCBkYXRhKTtcbiAgICAgICAgICAgICAgd3JpdGVzVG9JZ25vcmUgPSAzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBzdHJpbmcgPSBnZXRTdHJpbmcoZGF0YSk7XG4gICAgICAgICAgY29uc3QgaW5kZXggPSBzdHJpbmcuaW5kZXhPZihoZWFkZXJFbmQpO1xuXG4gICAgICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICAgICAgY29uc3QgcmVtYWluZGVyID0gc3RyaW5nLnNsaWNlKGluZGV4ICsgaGVhZGVyRW5kLmxlbmd0aCk7XG5cbiAgICAgICAgICAgIGlmIChyZW1haW5kZXIgJiYgIXRoaXMuY2h1bmtlZEVuY29kaW5nKSBhZGREYXRhKHRoaXMsIHJlbWFpbmRlcik7XG5cbiAgICAgICAgICAgIHRoaXMuX3dyb3RlSGVhZGVyID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIGNiID09PSAnZnVuY3Rpb24nKSBjYigpO1xuICAgICAgfSxcbiAgICB9O1xuXG4gICAgdGhpcy5hc3NpZ25Tb2NrZXQoc29ja2V0IGFzIHVua25vd24gYXMgU29ja2V0KTtcbiAgfVxuXG4gIF9oZWFkZXI6IHN0cmluZztcbiAgX2hlYWRlcnM/OiBSZWNvcmQ8YW55LCBhbnk+O1xuICBfd3JvdGVIZWFkZXI/OiBib29sZWFuO1xuXG4gIFtCT0RZXTogYW55W107XG4gIFtIRUFERVJTXTogUmVjb3JkPGFueSwgYW55PjtcblxuICBnZXQgaGVhZGVycygpOiBSZWNvcmQ8YW55LCBhbnk+IHtcbiAgICByZXR1cm4gdGhpc1tIRUFERVJTXTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tKHJlczogSW5jb21pbmdNZXNzYWdlKSB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBuZXcgU2VydmVybGVzc1Jlc3BvbnNlKHsgbWV0aG9kOiByZXMubWV0aG9kIH0pO1xuXG4gICAgcmVzcG9uc2Uuc3RhdHVzQ29kZSA9IHJlcy5zdGF0dXNDb2RlIHx8IDA7XG4gICAgcmVzcG9uc2VbSEVBREVSU10gPSByZXMuaGVhZGVycztcbiAgICByZXNwb25zZVtCT0RZXSA9IChyZXMgYXMgYW55KS5ib2R5ID8gW0J1ZmZlci5mcm9tKChyZXMgYXMgYW55KS5ib2R5KV0gOiBbXTtcbiAgICByZXNwb25zZS5lbmQoKTtcblxuICAgIHJldHVybiByZXNwb25zZTtcbiAgfVxuXG4gIHN0YXRpYyBib2R5KHJlczogU2VydmVybGVzc1Jlc3BvbnNlKTogQnVmZmVyIHtcbiAgICByZXR1cm4gQnVmZmVyLmNvbmNhdChyZXNbQk9EWV0pO1xuICB9XG5cbiAgc3RhdGljIGhlYWRlcnMocmVzOiBTZXJ2ZXJsZXNzUmVzcG9uc2UpIHtcbiAgICBjb25zdCBoZWFkZXJzID0gcmVzLmdldEhlYWRlcnMoKTtcblxuICAgIHJldHVybiBPYmplY3QuYXNzaWduKGhlYWRlcnMsIHJlc1tIRUFERVJTXSk7XG4gIH1cblxuICBvdmVycmlkZSBzZXRIZWFkZXIoXG4gICAga2V5OiBzdHJpbmcsXG4gICAgdmFsdWU6IG51bWJlciB8IHN0cmluZyB8IHJlYWRvbmx5IHN0cmluZ1tdLFxuICApOiBhbnkge1xuICAgIGlmICh0aGlzLl93cm90ZUhlYWRlcikgdGhpc1tIRUFERVJTXVtrZXldID0gdmFsdWU7XG4gICAgZWxzZSBzdXBlci5zZXRIZWFkZXIoa2V5LCB2YWx1ZSk7XG4gIH1cblxuICBvdmVycmlkZSB3cml0ZUhlYWQoXG4gICAgc3RhdHVzQ29kZTogbnVtYmVyLFxuICAgIHN0YXR1c01lc3NhZ2U/OiBzdHJpbmcgfCBhbnkgfCBhbnlbXSxcbiAgICBvYmo/OiBhbnkgfCBhbnlbXSxcbiAgKTogYW55IHtcbiAgICBjb25zdCBoZWFkZXJzT2JqT3JBcnJheSA9XG4gICAgICB0eXBlb2Ygc3RhdHVzTWVzc2FnZSA9PT0gJ3N0cmluZycgPyBvYmogOiBzdGF0dXNNZXNzYWdlO1xuXG4gICAgY29uc3QgYXJyYXlIZWFkZXJzID0gQXJyYXkuaXNBcnJheShoZWFkZXJzT2JqT3JBcnJheSlcbiAgICAgID8gaGVhZGVyc09iak9yQXJyYXlcbiAgICAgIDogW2hlYWRlcnNPYmpPckFycmF5IHx8IHt9XTtcblxuICAgIGZvciAoY29uc3QgaGVhZGVycyBvZiBhcnJheUhlYWRlcnMpIHtcbiAgICAgIGZvciAoY29uc3QgbmFtZSBpbiBoZWFkZXJzKSB7XG4gICAgICAgIHRoaXMuc2V0SGVhZGVyKG5hbWUsIGhlYWRlcnNbbmFtZV0hKTtcblxuICAgICAgICBpZiAoIXRoaXMuX3dyb3RlSGVhZGVyKSB7XG4gICAgICAgICAgLy8gd2Ugb25seSBuZWVkIHRvIGluaXRpYXRlIHN1cGVyLmhlYWRlcnMgb25jZVxuICAgICAgICAgIC8vIHdyaXRlSGVhZCB3aWxsIGFkZCB0aGUgb3RoZXIgaGVhZGVycyBpdHNlbGZcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmNhbGxOYXRpdmVXcml0ZUhlYWQoc3RhdHVzQ29kZSwgc3RhdHVzTWVzc2FnZSwgb2JqKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJIHVzZSBpZ25vcmUgaGVyZSBiZWNhdXNlIGluIG5vZGVqcyAxMi54LCBzdGF0dXNNZXNzYWdlIGNhbiBiZSBzdHJpbmcgfCBPdXRnb2luZ0h0dHBIZWFkZXJzXG4gICAqIEJ1dCBpbiBub2RlanMgXFw+PTE0LngsIHN0YXR1c01lc3NhZ2UgY2FuIGFsc28gYmUgT3V0Z29pbmdIdHRwSGVhZGVyc1tdXG4gICAqIEkgdGFrZSBjYXJlIG9mIHRoZXNlIGNhc2VzIGFib3ZlLCBidXQgaGVyZSBJIGNhbid0IGhhbmRsZSBpdCB3ZWxsLCBzbyBJIGdpdmUgdXBcbiAgICogbm9kZWpzIDEyLnggcmVmOiBodHRwczovL2dpdGh1Yi5jb20vRGVmaW5pdGVseVR5cGVkL0RlZmluaXRlbHlUeXBlZC9ibG9iL21hc3Rlci90eXBlcy9ub2RlL3YxMi9odHRwLmQudHMjTDIyOVxuICAgKiBub2RlanMgMTQueCByZWY6IGh0dHBzOi8vZ2l0aHViLmNvbS9EZWZpbml0ZWx5VHlwZWQvRGVmaW5pdGVseVR5cGVkL2Jsb2IvbWFzdGVyL3R5cGVzL25vZGUvdjE0L2h0dHAuZC50cyNMMjYzXG4gICAqL1xuICBwcm90ZWN0ZWQgY2FsbE5hdGl2ZVdyaXRlSGVhZChcbiAgICBzdGF0dXNDb2RlOiBudW1iZXIsXG4gICAgc3RhdHVzTWVzc2FnZT86IHN0cmluZyB8IGFueSB8IGFueVtdLFxuICAgIG9iaj86IGFueSB8IGFueVtdLFxuICApOiB0aGlzIHtcbiAgICByZXR1cm4gc3VwZXIud3JpdGVIZWFkKHN0YXR1c0NvZGUsIHN0YXR1c01lc3NhZ2UsIG9iaik7XG4gIH1cbn1cbiIsICIvKipcbiAqIEdldCB0aGUgZGF0YSBmcm9tIGEgYnVmZmVyLCBzdHJpbmcsIG9yIFVpbnQ4QXJyYXlcbiAqXG4gKiBAYnJlYWRjcnVtYiBOZXR3b3JrXG4gKiBAcGFyYW0gZGF0YSAtIFRoZSBkYXRhIHRoYXQgd2FzIHdyaXR0ZW4gaW5zaWRlIHRoZSBzdHJlYW1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFN0cmluZyhkYXRhOiBCdWZmZXIgfCBzdHJpbmcgfCB1bmtub3duKSB7XG4gIGlmIChCdWZmZXIuaXNCdWZmZXIoZGF0YSkpIHJldHVybiBkYXRhLnRvU3RyaW5nKCd1dGY4Jyk7XG4gIGVsc2UgaWYgKHR5cGVvZiBkYXRhID09PSAnc3RyaW5nJykgcmV0dXJuIGRhdGE7XG4gIGVsc2UgaWYgKGRhdGEgaW5zdGFuY2VvZiBVaW50OEFycmF5KSByZXR1cm4gbmV3IFRleHREZWNvZGVyKCkuZGVjb2RlKGRhdGEpO1xuICBlbHNlIHRocm93IG5ldyBFcnJvcihgcmVzcG9uc2Uud3JpdGUoKSBvZiB1bmV4cGVjdGVkIHR5cGU6ICR7dHlwZW9mIGRhdGF9YCk7XG59XG4iLCAiaW1wb3J0IHsgU2VydmVyUmVzcG9uc2UgfSBmcm9tICdub2RlOmh0dHAnO1xuaW1wb3J0IHR5cGUgeyBTb2NrZXQgfSBmcm9tICdub2RlOm5ldCc7XG5pbXBvcnQgdHlwZSB7IFdyaXRhYmxlIH0gZnJvbSAnbm9kZTpzdHJlYW0nO1xuaW1wb3J0IHR5cGUgeyBCb3RoVmFsdWVIZWFkZXJzIH0gZnJvbSAnLi4vQHR5cGVzJztcbmltcG9ydCB7IHR5cGUgSUxvZ2dlciwgTk9fT1AsIHBhcnNlSGVhZGVycyB9IGZyb20gJy4uL2NvcmUnO1xuaW1wb3J0IHsgZ2V0U3RyaW5nIH0gZnJvbSAnLi91dGlscyc7XG5cbi8vIGhlYWRlciBvciBkYXRhIGNybGZcbmNvbnN0IGNybGZCdWZmZXIgPSBCdWZmZXIuZnJvbSgnXFxyXFxuJyk7XG5cbmNvbnN0IGVuZENodW5rZWQgPSAnMFxcclxcblxcclxcbic7XG5jb25zdCBoZWFkZXJFbmQgPSAnXFxyXFxuXFxyXFxuJztcbmNvbnN0IGVuZFN0YXR1c1NlcGFyYXRvciA9ICdcXHJcXG4nO1xuXG4vKipcbiAqIFRoZSBwcm9wZXJ0aWVzIHRvIGNyZWF0ZSBhIHtAbGluayBTZXJ2ZXJsZXNzU3RyZWFtUmVzcG9uc2V9LlxuICpcbiAqIEBicmVhZGNydW1iIE5ldHdvcmsgLyBTZXJ2ZXJsZXNzU3RyZWFtUmVzcG9uc2VcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZXJ2ZXJsZXNzU3RyZWFtUmVzcG9uc2VQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgSFRUUCBNZXRob2QgZnJvbSByZXF1ZXN0XG4gICAqL1xuICBtZXRob2Q/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBjYWxsYmFjayB0byByZWNlaXZlIHRoZSBoZWFkZXJzIHdoZW4gdGhleSBhcmUgd3JpdHRlbiB0byB0aGUgc3RyZWFtXG4gICAqIFlvdSBuZWVkIHRvIHJldHVybiBhIHdyaXRhYmxlIHN0cmVhbSBiZSBhYmxlIHRvIGNvbnRpbnVlIHdyaXRpbmcgdGhlIHJlc3BvbnNlXG4gICAqXG4gICAqIEBwYXJhbSBzdGF0dXNDb2RlIC0gVGhlIHN0YXR1cyBjb2RlIG9mIHRoZSByZXNwb25zZVxuICAgKiBAcGFyYW0gaGVhZGVycyAtIFRoZSBoZWFkZXJzIG9mIHRoZSByZXNwb25zZVxuICAgKi9cbiAgb25SZWNlaXZlSGVhZGVyczogKHN0YXR1c0NvZGU6IG51bWJlciwgaGVhZGVyczogQm90aFZhbHVlSGVhZGVycykgPT4gV3JpdGFibGU7XG5cbiAgLyoqXG4gICAqIEluc3RhbmNlIG9mIHRoZSBsb2dnZXJcbiAgICovXG4gIGxvZzogSUxvZ2dlcjtcbn1cblxuLyoqXG4gKiBUaGUgY2xhc3MgdGhhdCByZXByZXNlbnRzIGEgcmVzcG9uc2UgaW5zdGFuY2UgdXNlZCB0byBzZW5kIHRvIHRoZSBmcmFtZXdvcmsgYW5kIHdhaXQgdW50aWwgdGhlIGZyYW1ld29yayBmaW5pc2hlcyBwcm9jZXNzaW5nIHRoZSByZXF1ZXN0LlxuICogVGhpcyByZXNwb25zZSBpcyBzcGVjaWFsbHkgYnVpbHQgdG8gZGVhbCB3aXRoIHRyYW5zZmVyLWVuY29kaW5nOiBjaHVua2VkXG4gKlxuICogQGJyZWFkY3J1bWIgTmV0d29yayAvIFNlcnZlcmxlc3NTdHJlYW1SZXNwb25zZVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY2xhc3MgU2VydmVybGVzc1N0cmVhbVJlc3BvbnNlIGV4dGVuZHMgU2VydmVyUmVzcG9uc2Uge1xuICBjb25zdHJ1Y3Rvcih7XG4gICAgbWV0aG9kLFxuICAgIG9uUmVjZWl2ZUhlYWRlcnMsXG4gICAgbG9nLFxuICB9OiBTZXJ2ZXJsZXNzU3RyZWFtUmVzcG9uc2VQcm9wcykge1xuICAgIHN1cGVyKHsgbWV0aG9kIH0gYXMgYW55KTtcblxuICAgIHRoaXMudXNlQ2h1bmtlZEVuY29kaW5nQnlEZWZhdWx0ID0gdHJ1ZTtcbiAgICB0aGlzLmNodW5rZWRFbmNvZGluZyA9IHRydWU7XG5cbiAgICBsZXQgaW50ZXJuYWxXcml0YWJsZTogV3JpdGFibGUgfCBudWxsID0gbnVsbDtcbiAgICBsZXQgZmlyc3RDcmxmQnVmZmVyRW5jb3VudGVyZWQgPSBmYWxzZTtcbiAgICBsZXQgY2h1bmtFbmNvdW50ZXJlZCA9IGZhbHNlO1xuXG4gICAgY29uc3Qgc29ja2V0OiBQYXJ0aWFsPFNvY2tldD4gJiB7IF93cml0YWJsZVN0YXRlOiBhbnkgfSA9IHtcbiAgICAgIF93cml0YWJsZVN0YXRlOiB7fSxcbiAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgb246IE5PX09QLFxuICAgICAgcmVtb3ZlTGlzdGVuZXI6IE5PX09QLFxuICAgICAgZGVzdHJveTogTk9fT1AsXG4gICAgICBjb3JrOiBOT19PUCxcbiAgICAgIHVuY29yazogTk9fT1AsXG4gICAgICB3cml0ZTogKFxuICAgICAgICBkYXRhOiBVaW50OEFycmF5IHwgc3RyaW5nLFxuICAgICAgICBlbmNvZGluZz86IHN0cmluZyB8IG51bGwgfCAoKCkgPT4gdm9pZCksXG4gICAgICAgIGNiPzogKCkgPT4gdm9pZCxcbiAgICAgICk6IGFueSA9PiB7XG4gICAgICAgIC8vIHZlcnkgdW5saWtlbHksIEkgZG9uJ3QgZXZlbiBrbm93IGhvdyB0byByZXByb2R1Y2UgdGhpcywgYnV0IGV4aXN0IG9uIHR5cGVzXG4gICAgICAgIC8vIGlzdGFuYnVsIGlnbm9yZSBpZlxuICAgICAgICBpZiAodHlwZW9mIGVuY29kaW5nID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgY2IgPSBlbmNvZGluZztcbiAgICAgICAgICBlbmNvZGluZyA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBsb2cuZGVidWcoJ1NFUlZFUkxFU1NfQURBUFRFUjpSRVNQT05TRV9TVFJFQU06REFUQScsICgpID0+ICh7XG4gICAgICAgICAgZGF0YTogQnVmZmVyLmlzQnVmZmVyKGRhdGEpID8gZGF0YS50b1N0cmluZygndXRmOCcpIDogZGF0YSxcbiAgICAgICAgICBlbmNvZGluZyxcbiAgICAgICAgfSkpO1xuXG4gICAgICAgIGlmICghaW50ZXJuYWxXcml0YWJsZSkge1xuICAgICAgICAgIGNvbnN0IHN0cmluZ0RhdGEgPSBnZXRTdHJpbmcoZGF0YSk7XG4gICAgICAgICAgY29uc3QgZW5kU3RhdHVzSW5kZXggPSBzdHJpbmdEYXRhLmluZGV4T2YoZW5kU3RhdHVzU2VwYXJhdG9yKTtcbiAgICAgICAgICBjb25zdCBzdGF0dXMgPSArc3RyaW5nRGF0YS5zbGljZSgwLCBlbmRTdGF0dXNJbmRleCkuc3BsaXQoJyAnKVsxXTtcbiAgICAgICAgICBjb25zdCBlbmRIZWFkZXJJbmRleCA9IHN0cmluZ0RhdGEuaW5kZXhPZihoZWFkZXJFbmQpO1xuXG4gICAgICAgICAgY29uc3QgaGVhZGVyRGF0YSA9IHN0cmluZ0RhdGEuc2xpY2UoXG4gICAgICAgICAgICBlbmRTdGF0dXNJbmRleCArIDIsXG4gICAgICAgICAgICBlbmRIZWFkZXJJbmRleCxcbiAgICAgICAgICApO1xuICAgICAgICAgIGNvbnN0IGhlYWRlcnMgPSBwYXJzZUhlYWRlcnMoaGVhZGVyRGF0YSk7XG4gICAgICAgICAgbG9nLmRlYnVnKFxuICAgICAgICAgICAgJ1NFUlZFUkxFU1NfQURBUFRFUjpSRVNQT05TRV9TVFJFQU06RlJBTUVXT1JLX0hFQURFUlMnLFxuICAgICAgICAgICAgKCkgPT4gKHtcbiAgICAgICAgICAgICAgaGVhZGVycyxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBpbnRlcm5hbFdyaXRhYmxlID0gb25SZWNlaXZlSGVhZGVycyhzdGF0dXMsIGhlYWRlcnMpO1xuXG4gICAgICAgICAgLy8gSWYgd2UgZ2V0IGFuIGVuZENodW5rZWQgcmlnaHQgYWZ0ZXIgaGVhZGVyIHdoaWNoIG1lYW5zIHRoZSByZXNwb25zZSBib2R5IGlzIGVtcHR5LCB3ZSBuZWVkIHRvIGltbWVkaWF0ZWx5IGVuZCB0aGUgd3JpdGFibGVcbiAgICAgICAgICBpZiAoc3RyaW5nRGF0YS5zdWJzdHJpbmcoZW5kSGVhZGVySW5kZXggKyA0KSA9PT0gZW5kQ2h1bmtlZClcbiAgICAgICAgICAgIGludGVybmFsV3JpdGFibGUuZW5kKCk7XG5cbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIG5vZGUgc2VuZHMgdGhlIGxhc3QgY2h1bmsgY3JsZiBhcyBhIHN0cmluZzpcbiAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL25vZGVqcy9ub2RlL2Jsb2IvdjIyLjguMC9saWIvX2h0dHBfb3V0Z29pbmcuanMjTDExMzFcbiAgICAgICAgaWYgKGRhdGEgPT09IGVuZENodW5rZWQpIHtcbiAgICAgICAgICBpbnRlcm5hbFdyaXRhYmxlLmVuZChjYik7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBjaGVjayBmb3IgaGVhZGVyIG9yIGRhdGEgY3JsZlxuICAgICAgICAvLyBub2RlIHNlbmRzIHRoZSBoZWFkZXIgYW5kIGRhdGEgY3JsZiBhcyBhIGJ1ZmZlclxuICAgICAgICAvLyBiZWxvdyBjb2RlIGlzIGFsaWduZWQgdG8gZm9sbG93aW5nIG5vZGUgaW1wbGVtZW50YXRpb24gb2YgdGhlIEhUVFAvMS4xIGNodW5rZWQgdHJhbnNmZXIgY29kaW5nOlxuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vbm9kZWpzL25vZGUvYmxvYi92MjIuOC4wL2xpYi9faHR0cF9vdXRnb2luZy5qcyNMMTAxMi1MMTAxNVxuICAgICAgICAvLyBmb3IgcmVmZXJlbmNlOiBodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL3JmYzkxMTIjc2VjdGlvbi03XG4gICAgICAgIGlmIChCdWZmZXIuaXNCdWZmZXIoZGF0YSkgJiYgY3JsZkJ1ZmZlci5lcXVhbHMoZGF0YSkpIHtcbiAgICAgICAgICBjb25zdCBpc0hlYWRlckNybGYgPSAhZmlyc3RDcmxmQnVmZmVyRW5jb3VudGVyZWQ7XG4gICAgICAgICAgaWYgKGlzSGVhZGVyQ3JsZikge1xuICAgICAgICAgICAgZmlyc3RDcmxmQnVmZmVyRW5jb3VudGVyZWQgPSB0cnVlO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgaXNEYXRhQ3JsZiA9IGZpcnN0Q3JsZkJ1ZmZlckVuY291bnRlcmVkICYmIGNodW5rRW5jb3VudGVyZWQ7XG4gICAgICAgICAgaWYgKGlzRGF0YUNybGYpIHtcbiAgICAgICAgICAgIC8vIGRvbmUgd2l0aCBjaHVua1xuICAgICAgICAgICAgZmlyc3RDcmxmQnVmZmVyRW5jb3VudGVyZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIGNodW5rRW5jb3VudGVyZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIHRoZSBjcmxmICppcyogdGhlIGNodW5rXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpc0NvbnRlbnRMZW5ndGggPSAhZmlyc3RDcmxmQnVmZmVyRW5jb3VudGVyZWQ7XG4gICAgICAgIGlmIChpc0NvbnRlbnRMZW5ndGgpIHtcbiAgICAgICAgICAvLyBkaXNjYXJkIGNvbnRlbnQgbGVuZ3RoXG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB3cml0ZSBjaHVua1xuICAgICAgICBjaHVua0VuY291bnRlcmVkID0gdHJ1ZTtcbiAgICAgICAgaW50ZXJuYWxXcml0YWJsZS53cml0ZShkYXRhLCBjYik7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfSxcbiAgICB9O1xuXG4gICAgdGhpcy5hc3NpZ25Tb2NrZXQoc29ja2V0IGFzIHVua25vd24gYXMgU29ja2V0KTtcbiAgfVxufVxuIiwgIi8vI3JlZ2lvbiBJbXBvcnRzXG5cbmltcG9ydCB0eXBlIHsgQmluYXJ5U2V0dGluZ3MgfSBmcm9tICcuLi9AdHlwZXMnO1xuaW1wb3J0IHR5cGUge1xuICBBZGFwdGVyQ29udHJhY3QsXG4gIEFkYXB0ZXJSZXF1ZXN0LFxuICBGcmFtZXdvcmtDb250cmFjdCxcbiAgSGFuZGxlckNvbnRyYWN0LFxuICBSZXNvbHZlckNvbnRyYWN0LFxuICBTZXJ2ZXJsZXNzSGFuZGxlcixcbn0gZnJvbSAnLi4vY29udHJhY3RzJztcbmltcG9ydCB7IFNlcnZlcmxlc3NSZXF1ZXN0LCBTZXJ2ZXJsZXNzUmVzcG9uc2UgfSBmcm9tICcuLi9uZXR3b3JrJztcbmltcG9ydCB0eXBlIHsgSUxvZ2dlciB9IGZyb20gJy4vaW5kZXgnO1xuXG4vLyNlbmRyZWdpb25cblxuLyoqXG4gKiBUaGUgYWJzdHJhY3QgY2xhc3MgdGhhdCByZXByZXNlbnRzIHRoZSBiYXNlIGNsYXNzIGZvciBhIGhhbmRsZXJcbiAqXG4gKiBAYnJlYWRjcnVtYiBDb3JlXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlSGFuZGxlcjxcbiAgVEFwcCxcbiAgVEV2ZW50LFxuICBUQ29udGV4dCxcbiAgVENhbGxiYWNrLFxuICBUUmVzcG9uc2UsXG4gIFRSZXR1cm4sXG4+IGltcGxlbWVudHNcbiAgICBIYW5kbGVyQ29udHJhY3Q8VEFwcCwgVEV2ZW50LCBUQ29udGV4dCwgVENhbGxiYWNrLCBUUmVzcG9uc2UsIFRSZXR1cm4+XG57XG4gIC8vI3JlZ2lvbiBQdWJsaWMgTWV0aG9kc1xuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGhhbmRsZXIgdGhhdCB3aWxsIGhhbmRsZSBzZXJ2ZXJsZXNzIHJlcXVlc3RzXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0SGFuZGxlcihcbiAgICBhcHA6IFRBcHAsXG4gICAgZnJhbWV3b3JrOiBGcmFtZXdvcmtDb250cmFjdDxUQXBwPixcbiAgICBhZGFwdGVyczogQWRhcHRlckNvbnRyYWN0PFRFdmVudCwgVENvbnRleHQsIFRSZXNwb25zZT5bXSxcbiAgICByZXNvbHZlckZhY3Rvcnk6IFJlc29sdmVyQ29udHJhY3Q8XG4gICAgICBURXZlbnQsXG4gICAgICBUQ29udGV4dCxcbiAgICAgIFRDYWxsYmFjayxcbiAgICAgIFRSZXNwb25zZSxcbiAgICAgIFRSZXR1cm5cbiAgICA+LFxuICAgIGJpbmFyeVNldHRpbmdzOiBCaW5hcnlTZXR0aW5ncyxcbiAgICByZXNwb25kV2l0aEVycm9yczogYm9vbGVhbixcbiAgICBsb2c6IElMb2dnZXIsXG4gICk6IFNlcnZlcmxlc3NIYW5kbGVyPFRSZXR1cm4+O1xuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBQcm90ZWN0ZWQgTWV0aG9kc1xuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGFkYXB0ZXIgdG8gaGFuZGxlIGEgc3BlY2lmaWMgZXZlbnQgYW5kIGNvbnRleHRcbiAgICpcbiAgICogQHBhcmFtIGV2ZW50IC0gVGhlIGV2ZW50IHNlbnQgYnkgc2VydmVybGVzc1xuICAgKiBAcGFyYW0gY29udGV4dCAtIFRoZSBjb250ZXh0IHNlbnQgYnkgc2VydmVybGVzc1xuICAgKiBAcGFyYW0gYWRhcHRlcnMgLSBUaGUgbGlzdCBvZiBhZGFwdGVyc1xuICAgKiBAcGFyYW0gbG9nIC0gVGhlIGluc3RhbmNlIG9mIGxvZ2dlclxuICAgKi9cbiAgcHJvdGVjdGVkIGdldEFkYXB0ZXJCeUV2ZW50QW5kQ29udGV4dChcbiAgICBldmVudDogVEV2ZW50LFxuICAgIGNvbnRleHQ6IFRDb250ZXh0LFxuICAgIGFkYXB0ZXJzOiBBZGFwdGVyQ29udHJhY3Q8VEV2ZW50LCBUQ29udGV4dCwgVFJlc3BvbnNlPltdLFxuICAgIGxvZzogSUxvZ2dlcixcbiAgKTogQWRhcHRlckNvbnRyYWN0PFRFdmVudCwgVENvbnRleHQsIFRSZXNwb25zZT4ge1xuICAgIGNvbnN0IHJlc29sdmVkQWRhcHRlcnMgPSBhZGFwdGVycy5maWx0ZXIoYWRhcHRlciA9PlxuICAgICAgYWRhcHRlci5jYW5IYW5kbGUoZXZlbnQsIGNvbnRleHQsIGxvZyksXG4gICAgKTtcblxuICAgIGlmIChyZXNvbHZlZEFkYXB0ZXJzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcIlNFUlZFUkxFU1NfQURBUFRFUjogQ291bGRuJ3QgZmluZCBhZGFwdGVyIHRvIGhhbmRsZSB0aGlzIGV2ZW50LlwiLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAocmVzb2x2ZWRBZGFwdGVycy5sZW5ndGggPiAxKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBTRVJWRVJMRVNTX0FEQVBURVI6IFR3byBvciBtb3JlIGFkYXB0ZXJzIHdhcyByZXNvbHZlZCBieSB0aGUgZXZlbnQsIHRoZSBhZGFwdGVycyBhcmU6ICR7YWRhcHRlcnNcbiAgICAgICAgICAubWFwKGFkYXB0ZXIgPT4gYWRhcHRlci5nZXRBZGFwdGVyTmFtZSgpKVxuICAgICAgICAgIC5qb2luKCcsICcpfS5gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzb2x2ZWRBZGFwdGVyc1swXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgc2VydmVybGVzcyByZXF1ZXN0IGFuZCByZXNwb25zZSBmcm1vIHRoZSBhZGFwdGVyIHJlcXVlc3RcbiAgICpcbiAgICogQHBhcmFtIHJlcXVlc3RWYWx1ZXMgLSBUaGUgcmVxdWVzdCB2YWx1ZXMgZnJvbSBhZGFwdGVyXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0U2VydmVybGVzc1JlcXVlc3RSZXNwb25zZUZyb21BZGFwdGVyUmVxdWVzdChcbiAgICByZXF1ZXN0VmFsdWVzOiBBZGFwdGVyUmVxdWVzdCxcbiAgKTogW3JlcXVlc3Q6IFNlcnZlcmxlc3NSZXF1ZXN0LCByZXNwb25zZTogU2VydmVybGVzc1Jlc3BvbnNlXSB7XG4gICAgY29uc3QgcmVxdWVzdCA9IG5ldyBTZXJ2ZXJsZXNzUmVxdWVzdCh7XG4gICAgICBtZXRob2Q6IHJlcXVlc3RWYWx1ZXMubWV0aG9kLFxuICAgICAgaGVhZGVyczogcmVxdWVzdFZhbHVlcy5oZWFkZXJzLFxuICAgICAgYm9keTogcmVxdWVzdFZhbHVlcy5ib2R5LFxuICAgICAgcmVtb3RlQWRkcmVzczogcmVxdWVzdFZhbHVlcy5yZW1vdGVBZGRyZXNzLFxuICAgICAgdXJsOiByZXF1ZXN0VmFsdWVzLnBhdGgsXG4gICAgfSk7XG5cbiAgICBjb25zdCByZXNwb25zZSA9IG5ldyBTZXJ2ZXJsZXNzUmVzcG9uc2Uoe1xuICAgICAgbWV0aG9kOiByZXF1ZXN0VmFsdWVzLm1ldGhvZCxcbiAgICB9KTtcblxuICAgIHJldHVybiBbcmVxdWVzdCwgcmVzcG9uc2VdO1xuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG59XG4iLCAiLy8jcmVnaW9uIEltcG9ydHNcblxuaW1wb3J0IHR5cGUgeyBCaW5hcnlTZXR0aW5ncyB9IGZyb20gJy4vQHR5cGVzJztcbmltcG9ydCB0eXBlIHtcbiAgQWRhcHRlckNvbnRyYWN0LFxuICBGcmFtZXdvcmtDb250cmFjdCxcbiAgSGFuZGxlckNvbnRyYWN0LFxuICBSZXNvbHZlckNvbnRyYWN0LFxuICBTZXJ2ZXJsZXNzSGFuZGxlcixcbn0gZnJvbSAnLi9jb250cmFjdHMnO1xuaW1wb3J0IHtcbiAgREVGQVVMVF9CSU5BUllfQ09OVEVOVF9UWVBFUyxcbiAgREVGQVVMVF9CSU5BUllfRU5DT0RJTkdTLFxuICB0eXBlIElMb2dnZXIsXG4gIGNyZWF0ZURlZmF1bHRMb2dnZXIsXG59IGZyb20gJy4vY29yZSc7XG5cbi8vI2VuZHJlZ2lvblxuXG4vKipcbiAqIFRoZSBjbGFzcyB1c2VkIHRvIGJ1aWxkIHRoZSBzZXJ2ZXJsZXNzIGhhbmRsZXIuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGFwcCA9IGV4cHJlc3MoKTtcbiAqIGV4cG9ydCBjb25zdCBoYW5kbGVyID0gU2VydmVybGVzc0FkYXB0ZXIubmV3KGFwcClcbiAqICAgLnNldEZyYW1ld29yayhuZXcgRXhwcmVzc0ZyYW1ld29yaygpKVxuICogICAuc2V0SGFuZGxlcihuZXcgRGVmYXVsdEhhbmRsZXIoKSlcbiAqICAgLnNldFJlc29sdmVyKG5ldyBQcm9taXNlUmVzb2x2ZXIoKSlcbiAqICAgLnNldFJlc3BvbmRXaXRoRXJyb3JzKHRydWUpXG4gKiAgIC5hZGRBZGFwdGVyKG5ldyBBbGJBZGFwdGVyKCkpXG4gKiAgIC5hZGRBZGFwdGVyKG5ldyBTUVNBZGFwdGVyKCkpXG4gKiAgIC5hZGRBZGFwdGVyKG5ldyBTTlNBZGFwdGVyKCkpXG4gKiAgIC5idWlsZCgpO1xuICogYGBgXG4gKlxuICogQGJyZWFkY3J1bWIgU2VydmVybGVzc0FkYXB0ZXJcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNsYXNzIFNlcnZlcmxlc3NBZGFwdGVyPFxuICBUQXBwLFxuICBURXZlbnQsXG4gIFRDb250ZXh0LFxuICBUQ2FsbGJhY2ssXG4gIFRSZXNwb25zZSxcbiAgVFJldHVybixcbj4ge1xuICAvLyNyZWdpb24gQ29uc3RydWN0b3JcblxuICAvKipcbiAgICogRGVmYXVsdCBjb25zdHJ1Y3RvclxuICAgKi9cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihhcHA6IFRBcHApIHtcbiAgICB0aGlzLmFwcCA9IGFwcDtcbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBQcm90ZWN0ZWQgUHJvcGVydGllc1xuXG4gIC8qKlxuICAgKiBUaGUgaW5zdGFuY2Ugb2YgdGhlIGFwcCAoZXhwcmVzcywgaGFwaSwga29hLCBldGMuLi4pXG4gICAqL1xuICBwcm90ZWN0ZWQgYXBwOiBUQXBwO1xuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBQcm90ZWN0ZWQgUHJvcGVydGllc1xuXG4gIC8qKlxuICAgKiBTZXR0aW5ncyBmb3Igd2hldGhlciB0aGUgcmVzcG9uc2Ugc2hvdWxkIGJlIHRyZWF0ZWQgYXMgYmluYXJ5IG9yIG5vdFxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIGBjb250ZW50RW5jb2RpbmdzYCBhbmQgYGNvbnRlbnRUeXBlc2AgYXJlIHNldCB3aXRoIHtAbGluayBERUZBVUxUX0JJTkFSWV9FTkNPRElOR1N9IGFuZCB7QGxpbmsgREVGQVVMVF9CSU5BUllfQ09OVEVOVF9UWVBFU30sIHJlc3BlY3RpdmVseS5cbiAgICovXG4gIHByb3RlY3RlZCBiaW5hcnlTZXR0aW5nczogQmluYXJ5U2V0dGluZ3MgPSB7XG4gICAgY29udGVudEVuY29kaW5nczogREVGQVVMVF9CSU5BUllfRU5DT0RJTkdTLFxuICAgIGNvbnRlbnRUeXBlczogREVGQVVMVF9CSU5BUllfQ09OVEVOVF9UWVBFUyxcbiAgfTtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGVycm9yIHN0YWNrIHNob3VsZCBiZSBpbmNsdWRlZCBpbiB0aGUgcmVzcG9uc2Ugb3Igbm90XG4gICAqXG4gICAqIEByZW1hcmtzIFRoZXNlIGVycm9ycyB3aWxsIG9ubHkgYmUgaW5jbHVkZWQgd2hlbiBhbiBlcnJvciBvY2N1cnMgd2hpbGUgZm9yd2FyZGluZyB0aGUgZXZlbnQgdG8gdGhlIGZyYW1ld29ya1xuICAgKiBAZGVmYXVsdFZhbHVlIFRydWUgd2hlbiBOT0RFX0VOViBpcyBlcXVhbCB0byBgZGV2ZWxvcG1lbnRgXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVzcG9uZFdpdGhFcnJvcnM6IGJvb2xlYW4gPSBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50JztcblxuICAvKipcbiAgICogVGhlIGluc3RhbmNlIG9mIHRoZSBsb2dnZXIgc2VydmljZVxuICAgKi9cbiAgcHJvdGVjdGVkIGxvZzogSUxvZ2dlciA9IGNyZWF0ZURlZmF1bHRMb2dnZXIoKTtcblxuICAvKipcbiAgICogVGhlIGxpc3Qgb2YgYWRhcHRlcnMgdXNlZCB0byBoYW5kbGUgYW4gZXZlbnQncyByZXF1ZXN0IGFuZCByZXNwb25zZVxuICAgKi9cbiAgcHJvdGVjdGVkIGFkYXB0ZXJzOiBBZGFwdGVyQ29udHJhY3Q8VEV2ZW50LCBUQ29udGV4dCwgVFJlc3BvbnNlPltdID0gW107XG5cbiAgLyoqXG4gICAqIFRoZSBmcmFtZXdvcmsgdGhhdCB3aWxsIHByb2Nlc3MgcmVxdWVzdHNcbiAgICovXG4gIHByb3RlY3RlZCBmcmFtZXdvcms/OiBGcmFtZXdvcmtDb250cmFjdDxUQXBwPjtcblxuICAvKipcbiAgICogVGhlIHJlc29sdmVyIHRoYXQgYWltcyB0byByZXNvbHZlIHRoZSByZXNwb25zZSB0byBzZXJ2ZXJsZXNzIGFuZCBzdG9wIGl0cyBleGVjdXRpb24gd2hlbiB0aGUgcmVxdWVzdCBlbmRzXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVzb2x2ZXI/OiBSZXNvbHZlckNvbnRyYWN0PFxuICAgIFRFdmVudCxcbiAgICBUQ29udGV4dCxcbiAgICBUQ2FsbGJhY2ssXG4gICAgVFJlc3BvbnNlLFxuICAgIFRSZXR1cm5cbiAgPjtcblxuICAvKipcbiAgICogVGhlIGhhbmRsZXIgdGhhdCB3aWxsIGdldCB0aGUgZXZlbnQsIGNvbnRleHQgYW5kIGNhbGxiYWNrIGFuZCBwYXNzIGl0IHRvIHRoZSBhZGFwdGVyIGFuZCBmcmFtZXdvcmtcbiAgICovXG4gIHByb3RlY3RlZCBoYW5kbGVyPzogSGFuZGxlckNvbnRyYWN0PFxuICAgIFRBcHAsXG4gICAgVEV2ZW50LFxuICAgIFRDb250ZXh0LFxuICAgIFRDYWxsYmFjayxcbiAgICBUUmVzcG9uc2UsXG4gICAgVFJldHVyblxuICA+O1xuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBTdGF0aWMgTWV0aG9kc1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBidWlsZGVyIHdpdGggYXBwIChleHByZXNzLCBoYXBpLCBrb2EsIGV0Yy4uLilcbiAgICpcbiAgICogQHBhcmFtIGFwcCAtIFRoZSBpbnN0YW5jZSBvZiB0aGUgYXBwXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG5ldzxcbiAgICBUQXBwLFxuICAgIFRFdmVudCxcbiAgICBUQ29udGV4dCA9IGFueSxcbiAgICBUQ2FsbGJhY2sgPSBhbnksXG4gICAgVFJlc3BvbnNlID0gYW55LFxuICAgIFRSZXR1cm4gPSBhbnksXG4gID4oXG4gICAgYXBwOiBUQXBwLFxuICApOiBTZXJ2ZXJsZXNzQWRhcHRlcjxUQXBwLCBURXZlbnQsIFRDb250ZXh0LCBUQ2FsbGJhY2ssIFRSZXNwb25zZSwgVFJldHVybj4ge1xuICAgIHJldHVybiBuZXcgU2VydmVybGVzc0FkYXB0ZXIoYXBwKTtcbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBCdWlsZGVyIE1ldGhvZHNcblxuICAvKipcbiAgICogRGVmaW5lcyB0aGUgaGFuZGxlciB0aGF0IHdpbGwgZ2V0IHRoZSBldmVudCwgY29udGV4dCBhbmQgY2FsbGJhY2sgYW5kIHBhc3MgaXQgdG8gdGhlIGFkYXB0ZXIgYW5kIGZyYW1ld29ya1xuICAgKlxuICAgKiBAcGFyYW0gaGFuZGxlciAtIFRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgaGFuZGxlciBjb250cmFjdFxuICAgKi9cbiAgcHVibGljIHNldEhhbmRsZXIoXG4gICAgaGFuZGxlcjogSGFuZGxlckNvbnRyYWN0PFxuICAgICAgVEFwcCxcbiAgICAgIFRFdmVudCxcbiAgICAgIFRDb250ZXh0LFxuICAgICAgVENhbGxiYWNrLFxuICAgICAgVFJlc3BvbnNlLFxuICAgICAgVFJldHVyblxuICAgID4sXG4gICk6IE9taXQ8dGhpcywgJ3NldEhhbmRsZXInPiB7XG4gICAgaWYgKHRoaXMuaGFuZGxlcilcbiAgICAgIHRocm93IG5ldyBFcnJvcignU0VSVkVSTEVTU19BREFQVEVSOiBUaGUgaGFuZGxlciBzaG91bGQgbm90IHNldCB0d2ljZS4nKTtcblxuICAgIHRoaXMuaGFuZGxlciA9IGhhbmRsZXI7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZpbmVzIHRoZSByZXNvbHZlciB0aGF0IGFpbXMgdG8gcmVzb2x2ZSB0aGUgcmVzcG9uc2UgdG8gc2VydmVybGVzcyBhbmQgc3RvcCBpdHMgZXhlY3V0aW9uIHdoZW4gdGhlIHJlcXVlc3QgZW5kc1xuICAgKlxuICAgKiBAcGFyYW0gcmVzb2x2ZXIgLSBUaGUgaW1wbGVtZW50YXRpb24gb2YgdGhlIHJlc29sdmVyIGNvbnRyYWN0XG4gICAqL1xuICBwdWJsaWMgc2V0UmVzb2x2ZXIoXG4gICAgcmVzb2x2ZXI6IFJlc29sdmVyQ29udHJhY3Q8VEV2ZW50LCBUQ29udGV4dCwgVENhbGxiYWNrLCBUUmVzcG9uc2UsIFRSZXR1cm4+LFxuICApOiBPbWl0PHRoaXMsICdzZXRSZXNvbHZlcic+IHtcbiAgICBpZiAodGhpcy5yZXNvbHZlcilcbiAgICAgIHRocm93IG5ldyBFcnJvcignU0VSVkVSTEVTU19BREFQVEVSOiBUaGUgcmVzb2x2ZXIgc2hvdWxkIG5vdCBzZXQgdHdpY2UuJyk7XG5cbiAgICB0aGlzLnJlc29sdmVyID0gcmVzb2x2ZXI7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZpbmVzIHRoZSBmcmFtZXdvcmsgdGhhdCB3aWxsIHByb2Nlc3MgcmVxdWVzdHNcbiAgICpcbiAgICogQHBhcmFtIGZyYW1ld29yayAtIFRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgZnJhbWV3b3JrIGNvbnRyYWN0XG4gICAqL1xuICBwdWJsaWMgc2V0RnJhbWV3b3JrKFxuICAgIGZyYW1ld29yazogRnJhbWV3b3JrQ29udHJhY3Q8VEFwcD4sXG4gICk6IE9taXQ8dGhpcywgJ3NldEZyYW1ld29yayc+IHtcbiAgICBpZiAodGhpcy5mcmFtZXdvcmspIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ1NFUlZFUkxFU1NfQURBUFRFUjogVGhlIGZyYW1ld29yayBzaG91bGQgbm90IHNldCB0d2ljZS4nLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLmZyYW1ld29yayA9IGZyYW1ld29yaztcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIERlZmluZXMgdGhlIGxvZ2dlciBzZXJ2aWNlIHVzZWQgZHVyaW5nIHRoZSBleGVjdXRpb24gb2YgdGhlIGhhbmRsZXJcbiAgICpcbiAgICogQHBhcmFtIGxvZ2dlciAtIFRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgbG9nZ2VyXG4gICAqL1xuICBwdWJsaWMgc2V0TG9nZ2VyKGxvZ2dlcjogSUxvZ2dlcik6IE9taXQ8dGhpcywgJ3NldExvZ2dlcic+IHtcbiAgICB0aGlzLmxvZyA9IGxvZ2dlcjtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIERlZmluZXMgdGhlIGJpbmFyeSBzZXR0aW5ncyBmb3Igd2hldGhlciB0aGUgcmVzcG9uc2Ugc2hvdWxkIGJlIHRyZWF0ZWQgYXMgYmluYXJ5IG9yIG5vdFxuICAgKlxuICAgKiBAcGFyYW0gYmluYXJ5U2V0dGluZ3MgLSBUaGUgYmluYXJ5IHNldHRpbmdzXG4gICAqL1xuICBwdWJsaWMgc2V0QmluYXJ5U2V0dGluZ3MoXG4gICAgYmluYXJ5U2V0dGluZ3M6IEJpbmFyeVNldHRpbmdzLFxuICApOiBPbWl0PHRoaXMsICdzZXRCaW5hcnlTZXR0aW5ncyc+IHtcbiAgICB0aGlzLmJpbmFyeVNldHRpbmdzID0ge1xuICAgICAgLi4udGhpcy5iaW5hcnlTZXR0aW5ncyxcbiAgICAgIC4uLmJpbmFyeVNldHRpbmdzLFxuICAgIH07XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZpbmVzIHRoZSByZXNwb25zZVdpdGhFcnJvcnMsIGEgcHJvcGVydHkgdGhhdCBpbmRpY2F0ZXMgd2hldGhlciB0aGUgZXJyb3Igc3RhY2sgc2hvdWxkIGJlIGluY2x1ZGVkIGluIHRoZSByZXNwb25zZSBvciBub3RcbiAgICpcbiAgICogQHBhcmFtIHJlc3BvbmRXaXRoRXJyb3JzIC0gU2hvdWxkIGluY2x1ZGUgb3Igbm90IHRoZSBlcnJvcnMgaW4gcmVzcG9uc2VcbiAgICovXG4gIHB1YmxpYyBzZXRSZXNwb25kV2l0aEVycm9ycyhcbiAgICByZXNwb25kV2l0aEVycm9yczogYm9vbGVhbixcbiAgKTogT21pdDx0aGlzLCAnc2V0UmVzcG9uZFdpdGhFcnJvcnMnPiB7XG4gICAgdGhpcy5yZXNwb25kV2l0aEVycm9ycyA9IHJlc3BvbmRXaXRoRXJyb3JzO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGFuIGFkYXB0ZXIgdG8gdGhlIGFkYXB0ZXJzIGxpc3QgdG8gaGFuZGxlIHRoZSBldmVudCBjb21pbmcgZnJvbSBhbnkgc2VydmVybGVzcyBldmVudCBzb3VyY2VcbiAgICpcbiAgICogQHBhcmFtIGFkYXB0ZXIgLSBUaGUgaW1wbGVtZW50YXRpb24gb2YgdGhlIGFkYXB0ZXIgY29udHJhY3RcbiAgICovXG4gIHB1YmxpYyBhZGRBZGFwdGVyKFxuICAgIGFkYXB0ZXI6IEFkYXB0ZXJDb250cmFjdDxURXZlbnQsIFRDb250ZXh0LCBUUmVzcG9uc2U+LFxuICApOiBQaWNrPHRoaXMsICdhZGRBZGFwdGVyJyB8ICdidWlsZCc+IHtcbiAgICB0aGlzLmFkYXB0ZXJzLnB1c2goYWRhcHRlcik7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgYnVpbGRlciBtZXRob2QgdGhhdCByZXR1cm5zIHRoZSBoYW5kbGVyIGZ1bmN0aW9uIHRvIGJlIGV4cG9ydGVkIGZvciBzZXJ2ZXJsZXNzIGNvbnN1bXB0aW9uXG4gICAqL1xuICBwdWJsaWMgYnVpbGQoKTogU2VydmVybGVzc0hhbmRsZXI8VFJldHVybj4ge1xuICAgIGlmICghdGhpcy5yZXNvbHZlcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnU0VSVkVSTEVTU19BREFQVEVSOiBJcyByZXF1aXJlZCB0byBzZXQgYSByZXNvbHZlciBiZWZvcmUgYnVpbGQuJyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmZyYW1ld29yaykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnU0VSVkVSTEVTU19BREFQVEVSOiBJcyByZXF1aXJlZCB0byBzZXQgYSBmcmFtZXdvcmsgYmVmb3JlIGJ1aWxkLicsXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5oYW5kbGVyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdTRVJWRVJMRVNTX0FEQVBURVI6IElzIHJlcXVpcmVkIHRvIHNldCBhIGhhbmRsZXIgYmVmb3JlIGJ1aWxkLicsXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmFkYXB0ZXJzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnU0VSVkVSTEVTU19BREFQVEVSOiBJcyByZXF1aXJlZCB0byBzZXQgYXQgbGVhc3Qgb25lIGFkYXB0ZXIuJyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuaGFuZGxlci5nZXRIYW5kbGVyKFxuICAgICAgdGhpcy5hcHAsXG4gICAgICB0aGlzLmZyYW1ld29yayxcbiAgICAgIHRoaXMuYWRhcHRlcnMsXG4gICAgICB0aGlzLnJlc29sdmVyLFxuICAgICAgdGhpcy5iaW5hcnlTZXR0aW5ncyxcbiAgICAgIHRoaXMucmVzcG9uZFdpdGhFcnJvcnMsXG4gICAgICB0aGlzLmxvZyxcbiAgICApO1xuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG59XG4iLCAiLypcbiAqIENvcHlyaWdodCAoYykgMjAyNSwgU2FsZXNmb3JjZSwgSW5jLlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yXG4gKiBGb3IgZnVsbCBsaWNlbnNlIHRleHQsIHNlZSB0aGUgbGljZW5zZS50eHQgZmlsZSBpbiB0aGUgcmVwbyByb290IG9yIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICovXG5pbXBvcnQgdHlwZSB7UmVxdWVzdCwgUmVzcG9uc2UsIE5leHRGdW5jdGlvbn0gZnJvbSAnZXhwcmVzcyc7XG5pbXBvcnQgZnMgZnJvbSAnZnMvcHJvbWlzZXMnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQge2ZpbGVVUkxUb1BhdGh9IGZyb20gJ3VybCc7XG5pbXBvcnQgd2luc3RvbiBmcm9tICd3aW5zdG9uJztcbmltcG9ydCBjcnlwdG8gZnJvbSAnY3J5cHRvJztcbmltcG9ydCB7U2VjcmV0c01hbmFnZXJDbGllbnQsIEdldFNlY3JldFZhbHVlQ29tbWFuZH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlcic7XG5pbXBvcnQge0RhdGFTdG9yZSwgRGF0YVN0b3JlTm90Rm91bmRFcnJvciwgRGF0YVN0b3JlU2VydmljZUVycm9yLCBEYXRhU3RvcmVVbmF2YWlsYWJsZUVycm9yfSBmcm9tICdAc2FsZXNmb3JjZS9tcnQtdXRpbGl0aWVzJztcblxuY29uc3QgX19kaXJuYW1lID0gcGF0aC5kaXJuYW1lKGZpbGVVUkxUb1BhdGgoaW1wb3J0Lm1ldGEudXJsKSk7XG5cbmNsYXNzIEludGVudGlvbmFsRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIGNvbnN0cnVjdG9yKGRpYWdub3N0aWNzOiBhbnksIC4uLnBhcmFtczogYW55W10pIHtcbiAgICBzdXBlciguLi5wYXJhbXMpO1xuICAgIHRoaXMubWVzc2FnZSA9IEpTT04uc3RyaW5naWZ5KGRpYWdub3N0aWNzLCBudWxsLCAyKTtcbiAgICB0aGlzLm5hbWUgPSAnSW50ZW50aW9uYWxFcnJvcic7XG4gIH1cbn1cblxuY29uc3QgRU5WU19UT19FWFBPU0UgPSBbXG4gICdhd3NfZXhlY3V0aW9uX2VudicsXG4gICdhd3NfbGFtYmRhX2Z1bmN0aW9uX21lbW9yeV9zaXplJyxcbiAgJ2F3c19sYW1iZGFfZnVuY3Rpb25fbmFtZScsXG4gICdhd3NfbGFtYmRhX2Z1bmN0aW9uX3ZlcnNpb24nLFxuICAnYXdzX2xhbWJkYV9sb2dfZ3JvdXBfbmFtZScsXG4gICdhd3NfbGFtYmRhX2xvZ19zdHJlYW1fbmFtZScsXG4gICdhd3NfcmVnaW9uJyxcbiAgJ2J1bmRsZV9pZCcsXG4gICdjdXN0b21lcl8qJyxcbiAgJ2RlcGxveV9pZCcsXG4gICdkZXBsb3lfdGFyZ2V0JyxcbiAgJ2V4dGVybmFsX2RvbWFpbl9uYW1lJyxcbiAgJ21vYmlmeV9wcm9wZXJ0eV9pZCcsXG4gICdtcnRfYWxsb3dfY29va2llcycsXG4gICdtcnRfZW52X2Jhc2VfcGF0aCcsXG4gICdub2RlX2VudicsXG4gICdub2RlX29wdGlvbnMnLFxuICAndHonLFxuXTtcblxuY29uc3QgQkFEU1NMX1RMUzFfMV9VUkwgPSAnaHR0cHM6Ly90bHMtdjEtMS5iYWRzc2wuY29tOjEwMTEvJztcbmNvbnN0IEJBRFNTTF9UTFMxXzJfVVJMID0gJ2h0dHBzOi8vdGxzLXYxLTIuYmFkc3NsLmNvbToxMDEyLyc7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG5jb25zdCBzb3J0T2JqZWN0S2V5cyA9IChvOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogUmVjb3JkPHN0cmluZywgYW55PiA9PiB7XG4gIHJldHVybiBPYmplY3QuYXNzaWduKFxuICAgIHt9LFxuICAgIC4uLk9iamVjdC5rZXlzKG8pXG4gICAgICAuc29ydCgpXG4gICAgICAubWFwKChrKSA9PiAoe1trXTogb1trXX0pKSxcbiAgKTtcbn07XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG5jb25zdCBmaWx0ZXJBbmRTb3J0T2JqZWN0S2V5cyA9IChvOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LCB3aGl0ZWxpc3Q6IHN0cmluZ1tdKTogUmVjb3JkPHN0cmluZywgYW55PiA9PlxuICBvICYmXG4gIE9iamVjdC5rZXlzKG8pXG4gICAgLmZpbHRlcigoa2V5KSA9PiB7XG4gICAgICBjb25zdCBrZXlsYyA9IGtleS50b0xvd2VyQ2FzZSgpLnRyaW0oKTtcbiAgICAgIHJldHVybiB3aGl0ZWxpc3Quc29tZShcbiAgICAgICAgKHBhdHRlcm4pID0+IChwYXR0ZXJuLmVuZHNXaXRoKCcqJykgJiYga2V5bGMuc3RhcnRzV2l0aChwYXR0ZXJuLnNsaWNlKDAsIC0xKSkpIHx8IHBhdHRlcm4gPT09IGtleWxjLFxuICAgICAgKTtcbiAgICB9KVxuICAgIC5zb3J0KClcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIC5yZWR1Y2UoKGFjYzogUmVjb3JkPHN0cmluZywgYW55Piwga2V5KSA9PiB7XG4gICAgICBhY2Nba2V5XSA9IG9ba2V5XTtcbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwge30pO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuY29uc3QganNvbkZyb21SZXF1ZXN0ID0gKHJlcTogUmVxdWVzdCwgYWRkaXRpb25hbF9pbmZvPzogYW55KTogYW55ID0+IHtcbiAgcmV0dXJuIHtcbiAgICBhcmdzOiByZXEucXVlcnksXG4gICAgcHJvdG9jb2w6IHJlcS5wcm90b2NvbCxcbiAgICBtZXRob2Q6IHJlcS5tZXRob2QsXG4gICAgcGF0aDogcmVxLnBhdGgsXG4gICAgcXVlcnk6IHJlcS5xdWVyeSxcbiAgICByb3V0ZV9wYXRoOiByZXEucm91dGUucGF0aCxcbiAgICBib2R5OiByZXEuYm9keSxcbiAgICBoZWFkZXJzOiBzb3J0T2JqZWN0S2V5cyhyZXEuaGVhZGVycyksXG4gICAgaXA6IHJlcS5pcCxcbiAgICBlbnY6IGZpbHRlckFuZFNvcnRPYmplY3RLZXlzKHByb2Nlc3MuZW52LCBFTlZTX1RPX0VYUE9TRSksXG4gICAgdGltZXN0YW1wOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgLi4uKHR5cGVvZiBhZGRpdGlvbmFsX2luZm8gPT09ICdvYmplY3QnID8ge2FkZGl0aW9uYWxfaW5mb30gOiB7fSksXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZWNobyA9IChyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpID0+IHJlcy5qc29uKGpzb25Gcm9tUmVxdWVzdChyZXEpKTtcblxuZXhwb3J0IGNvbnN0IGV4Y2VwdGlvbiA9IChyZXE6IFJlcXVlc3QpID0+IHtcbiAgdGhyb3cgbmV3IEludGVudGlvbmFsRXJyb3IoanNvbkZyb21SZXF1ZXN0KHJlcSkpO1xufTtcblxuZXhwb3J0IGNvbnN0IHRsc1ZlcnNpb25UZXN0ID0gYXN5bmMgKF86IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpID0+IHtcbiAgY29uc3QgcmVzcG9uc2UxMSA9IGF3YWl0IGZldGNoKEJBRFNTTF9UTFMxXzFfVVJMKVxuICAgIC50aGVuKChyZXNwb25zZSkgPT4gcmVzcG9uc2Uub2spXG4gICAgLmNhdGNoKCgpID0+IGZhbHNlKTtcbiAgY29uc3QgcmVzcG9uc2UxMiA9IGF3YWl0IGZldGNoKEJBRFNTTF9UTFMxXzJfVVJMKVxuICAgIC50aGVuKChyZXNwb25zZSkgPT4gcmVzcG9uc2Uub2spXG4gICAgLmNhdGNoKCgpID0+IGZhbHNlKTtcbiAgcmVzLmhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcbiAgcmVzLnNlbmQoSlNPTi5zdHJpbmdpZnkoeyd0bHMxLjEnOiByZXNwb25zZTExLCAndGxzMS4yJzogcmVzcG9uc2UxMn0sIG51bGwsIDQpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBjYWNoZVRlc3QgPSBhc3luYyAocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSA9PiB7XG4gIGxldCBkdXJhdGlvbiA9IFN0cmluZyhyZXEucGFyYW1zLmR1cmF0aW9uIHx8ICc2MCcpO1xuICBpZiAoaXNOYU4ocGFyc2VJbnQoZHVyYXRpb24pKSkge1xuICAgIGR1cmF0aW9uID0gJzYwJztcbiAgfVxuICByZXMuc2V0KCdDYWNoZS1Db250cm9sJywgYHMtbWF4YWdlPSR7ZHVyYXRpb259YCk7XG4gIHJlcy5qc29uKGpzb25Gcm9tUmVxdWVzdChyZXEpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBjb29raWVUZXN0ID0gYXN5bmMgKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSkgPT4ge1xuICBpZiAoT2JqZWN0Lmhhc093bihyZXEucXVlcnksICduYW1lJykpIHtcbiAgICBjb25zdCBuYW1lID0gcmVxLnF1ZXJ5Lm5hbWUgYXMgc3RyaW5nO1xuICAgIGNvbnN0IHZhbHVlID0gcmVxLnF1ZXJ5LnZhbHVlIGFzIHN0cmluZztcbiAgICByZXMuY29va2llKG5hbWUsIHZhbHVlKTtcbiAgfVxuICByZXMuc2V0KCdDYWNoZS1Db250cm9sJywgJ3ByaXZhdGUsIG1heC1hZ2U9NjAnKTtcbiAgcmVzLmpzb24oanNvbkZyb21SZXF1ZXN0KHJlcSkpO1xufTtcblxuZXhwb3J0IGNvbnN0IHJlc3BvbnNlSGVhZGVyc1Rlc3QgPSBhc3luYyAocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSA9PiB7XG4gIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHJlcS5xdWVyeSkpIHtcbiAgICByZXMuc2V0KGtleSwgdmFsdWUgYXMgc3RyaW5nIHwgc3RyaW5nW10gfCB1bmRlZmluZWQpO1xuICB9XG4gIHJlcy5qc29uKGpzb25Gcm9tUmVxdWVzdChyZXEpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBtdWx0aVZhbHVlSGVhZGVyc1Rlc3QgPSBhc3luYyAocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSA9PiB7XG4gIHJlcy5zZXQoJ1gtTXVsdGktVmFsdWUtSGVhZGVyJywgWyd2YWx1ZTEnLCAndmFsdWUyJywgJ3ZhbHVlMyddKTtcbiAgcmVzLmpzb24oanNvbkZyb21SZXF1ZXN0KHJlcSkpO1xufTtcblxuZXhwb3J0IGNvbnN0IHNldFN0YXR1c1Rlc3QgPSBhc3luYyAocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSA9PiB7XG4gIGNvbnN0IHN0YXR1cyA9IHJlcS5xdWVyeS5zdGF0dXMgPyBwYXJzZUludChyZXEucXVlcnkuc3RhdHVzIGFzIHN0cmluZykgOiAyMDA7XG4gIHJlcy5zdGF0dXMoc3RhdHVzKTtcbiAgcmVzLnNldCgnWC1TdGF0dXMtQ29kZScsIHN0YXR1cy50b1N0cmluZygpKTtcbiAgcmVzLmpzb24oanNvbkZyb21SZXF1ZXN0KHJlcSkpO1xufTtcblxuZXhwb3J0IGNvbnN0IG1lbW9yeVRlc3QgPSBhc3luYyAocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSA9PiB7XG4gIGNvbnN0IG1lbW9yeV9iZWZvcmUgPSBwcm9jZXNzLm1lbW9yeVVzYWdlKCk7XG4gIGNvbnN0IHRlc3RfY291bnQgPSByZXE/LnF1ZXJ5Py5jb3VudCA/IHBhcnNlSW50KHJlcS5xdWVyeS5jb3VudCBhcyBzdHJpbmcpIDogMTtcbiAgY29uc3QgdGVzdF9zaXplID0gcmVxPy5xdWVyeT8uc2l6ZSA/IHBhcnNlSW50KHJlcS5xdWVyeS5zaXplIGFzIHN0cmluZykgOiAxMDI0O1xuICBjb25zdCBmb3JjZV9nYyA9XG4gICAgZ2xvYmFsPy5nYyAmJlxuICAgIHJlcT8ucXVlcnkgJiZcbiAgICAocGFyc2VCb29sZWFuKHJlcS5xdWVyeS5mb3JjZWdjIGFzIHN0cmluZykgfHwgcGFyc2VCb29sZWFuKHJlcS5xdWVyeS5nYyBhcyBzdHJpbmcpKTtcblxuICBjb25zdCBtYWxsb2NfdGltZV9zdGFydCA9IERhdGUubm93KCk7XG4gIGFsbG9jYXRlTWVtb3J5KHRlc3RfY291bnQsIHRlc3Rfc2l6ZSk7XG4gIGNvbnN0IG1hbGxvY190aW1lX21zID0gRGF0ZS5ub3coKSAtIG1hbGxvY190aW1lX3N0YXJ0O1xuXG4gIGNvbnN0IGdjX3RpbWVfc3RhcnQgPSBEYXRlLm5vdygpO1xuICBpZiAoZm9yY2VfZ2MgJiYgZ2xvYmFsLmdjKSB7XG4gICAgZ2xvYmFsLmdjKCk7XG4gIH1cbiAgY29uc3QgZ2NfdGltZV9tcyA9IERhdGUubm93KCkgLSBnY190aW1lX3N0YXJ0O1xuXG4gIGNvbnN0IG1lbW9yeV9hZnRlciA9IHByb2Nlc3MubWVtb3J5VXNhZ2UoKTtcbiAgY29uc3QgbWVtb3J5X2RlbHRhID0gY2FsY3VsYXRlTnVtZXJpY0RlbHRhcyhtZW1vcnlfYWZ0ZXIsIG1lbW9yeV9iZWZvcmUpO1xuICBjb25zdCBmYWN0b3IgPSAxMDtcbiAgY29uc3QgdGVzdF90b3RhbF9hbGxvY19tYiA9IE1hdGgucm91bmQoKCh0ZXN0X2NvdW50ICogdGVzdF9zaXplKSAvIDEwMjQgLyAxMDI0KSAqIGZhY3RvcikgLyBmYWN0b3I7XG4gIGNvbnN0IGFkZGl0aW9uYWxfaW5mbyA9IHtcbiAgICBtZW1vcnlfZW5kOiBtZW1vcnlfYWZ0ZXIsXG4gICAgbWVtb3J5X2RlbHRhLFxuICAgIG1hbGxvY190aW1lOiBtYWxsb2NfdGltZV9tcyxcbiAgICBnY190aW1lOiBnY190aW1lX21zLFxuICAgIGZvcmNlX2djLFxuICAgIHRlc3RfY291bnQsXG4gICAgdGVzdF9zaXplLFxuICAgIHRlc3RfdG90YWxfYWxsb2NfbWIsXG4gIH07XG4gIHJlcy5qc29uKGpzb25Gcm9tUmVxdWVzdChyZXEsIGFkZGl0aW9uYWxfaW5mbykpO1xufTtcblxuY29uc3QgYWxsb2NhdGVNZW1vcnkgPSAodGVzdF9jb3VudDogbnVtYmVyLCB0ZXN0X3NpemU6IG51bWJlcik6IG51bWJlciA9PiB7XG4gIGNvbnN0IGJ1ZmZlcjogQnVmZmVyW10gPSBbXTtcbiAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IHRlc3RfY291bnQ7IGluZGV4KyspIHtcbiAgICBidWZmZXIucHVzaChCdWZmZXIuYWxsb2ModGVzdF9zaXplLCAwLCAnYXNjaWknKSk7XG4gIH1cbiAgcmV0dXJuIGJ1ZmZlci5sZW5ndGg7XG59O1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuY29uc3QgY2FsY3VsYXRlTnVtZXJpY0RlbHRhcyA9IChvYmoxOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LCBvYmoyOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogUmVjb3JkPHN0cmluZywgbnVtYmVyPiA9PiB7XG4gIGNvbnN0IGRlbHRhOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+ID0ge307XG4gIGZvciAoY29uc3Qga2V5IGluIG9iajEpIHtcbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iajEsIGtleSkgJiYgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iajIsIGtleSkpIHtcbiAgICAgIGlmICh0eXBlb2Ygb2JqMVtrZXldID09PSAnbnVtYmVyJyAmJiB0eXBlb2Ygb2JqMltrZXldID09PSAnbnVtYmVyJykge1xuICAgICAgICBkZWx0YVtrZXldID0gb2JqMVtrZXldIC0gb2JqMltrZXldO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gZGVsdGE7XG59O1xuXG5jb25zdCBwYXJzZUJvb2xlYW4gPSAoc3RyaW5nX3ZhbHVlOiBzdHJpbmcpID0+IHtcbiAgaWYgKFxuICAgIHN0cmluZ192YWx1ZSA9PT0gbnVsbCB8fFxuICAgIHN0cmluZ192YWx1ZSA9PT0gdW5kZWZpbmVkIHx8XG4gICAgdHlwZW9mIHN0cmluZ192YWx1ZSAhPT0gJ3N0cmluZycgfHxcbiAgICBzdHJpbmdfdmFsdWUudHJpbSgpID09PSAnJ1xuICApIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgY29uc3QgbG93ZXJDYXNlVmFsdWUgPSBzdHJpbmdfdmFsdWUudG9Mb3dlckNhc2UoKTtcbiAgcmV0dXJuIChcbiAgICBsb3dlckNhc2VWYWx1ZSA9PT0gJ3RydWUnIHx8XG4gICAgbG93ZXJDYXNlVmFsdWUgPT09ICcxJyB8fFxuICAgIGxvd2VyQ2FzZVZhbHVlID09PSAnb24nIHx8XG4gICAgbG93ZXJDYXNlVmFsdWUgPT09ICdlbmFibGUnIHx8XG4gICAgbG93ZXJDYXNlVmFsdWUgPT09ICdlbmFibGVkJyB8fFxuICAgIGxvd2VyQ2FzZVZhbHVlID09PSAneWVzJ1xuICApO1xufTtcblxuZXhwb3J0IGNvbnN0IGhlYWRlclRlc3QgPSBhc3luYyAocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSA9PiB7XG4gIHJlcy5qc29uKHtoZWFkZXJzOiBzb3J0T2JqZWN0S2V5cyhyZXEuaGVhZGVycyl9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBsb2dnaW5nTWlkZGxld2FyZSA9IChyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UsIG5leHQ6IE5leHRGdW5jdGlvbikgPT4ge1xuICBjb25zb2xlLmxvZyhgUmVxdWVzdDogJHtyZXEubWV0aG9kfSAke3JlcS5vcmlnaW5hbFVybH1gKTtcbiAgY29uc29sZS5sb2coYFJlcXVlc3QgaGVhZGVyczogJHtKU09OLnN0cmluZ2lmeShyZXEuaGVhZGVycywgbnVsbCwgMil9YCk7XG4gIGNvbnN0IHZhbHVlcyA9IHtcbiAgICBzdHJpbmc6ICdzdHJpbmcgdmFsdWUnLFxuICAgIG51bWJlcjogMTIzNDU2Nzg5MCxcbiAgICBib29sZWFuOiB0cnVlLFxuICAgIG51bGw6IG51bGwsXG4gICAgdW5kZWZpbmVkLFxuICAgIE5hTixcbiAgICBvYmplY3Q6IHtmb286ICdiYXInfSxcbiAgICBhcnJheTogWzEsIDIsIDNdLFxuICAgIGRhdGU6IG5ldyBEYXRlKCksXG4gIH07XG4gIGZvciAoY29uc3QgdmFsdWUgb2YgT2JqZWN0LnZhbHVlcyh2YWx1ZXMpKSB7XG4gICAgY29uc29sZS5sb2codmFsdWUpO1xuICB9XG4gIHJlcy5vbignZmluaXNoJywgKCkgPT4ge1xuICAgIGNvbnN0IHN0YXR1c0NvZGUgPSByZXMuaGVhZGVyc1NlbnQgPyBTdHJpbmcocmVzLnN0YXR1c0NvZGUpIDogU3RyaW5nKC0xKTtcbiAgICBjb25zb2xlLmxvZyhgUmVzcG9uc2Ugc3RhdHVzOiAke3N0YXR1c0NvZGV9YCk7XG4gICAgaWYgKHJlcy5oZWFkZXJzU2VudCkge1xuICAgICAgY29uc3QgaGVhZGVycyA9IEpTT04uc3RyaW5naWZ5KHJlcy5nZXRIZWFkZXJzKCksIG51bGwsIDIpO1xuICAgICAgY29uc29sZS5sb2coYFJlc3BvbnNlIGhlYWRlcnM6ICR7aGVhZGVyc31gKTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gbmV4dCgpO1xufTtcblxuZXhwb3J0IGNvbnN0IGVudkJhc2VQYXRoTWlkZGxld2FyZSA9IChyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UsIG5leHQ6IE5leHRGdW5jdGlvbikgPT4ge1xuICBjb25zdCBiYXNlUGF0aCA9IHByb2Nlc3MuZW52Lk1SVF9FTlZfQkFTRV9QQVRIO1xuICBjb25zb2xlLmRlYnVnKGBCYXNlIHBhdGg6IEJhc2UgcGF0aDogJHtiYXNlUGF0aH1gKTtcbiAgY29uc29sZS5kZWJ1ZyhgUmVxdWVzdCBwYXRoOiBSZXF1ZXN0IHBhdGg6ICR7cmVxLnVybH1gKTtcbiAgaWYgKGJhc2VQYXRoICYmIChyZXEucGF0aC5zdGFydHNXaXRoKGAke2Jhc2VQYXRofS9gKSB8fCByZXEucGF0aCA9PT0gYmFzZVBhdGgpKSB7XG4gICAgcmVxLnVybCA9IHJlcS51cmwuc2xpY2UoYmFzZVBhdGgubGVuZ3RoKSB8fCAnLyc7XG4gICAgY29uc29sZS5kZWJ1ZyhgQmFzZSBwYXRoOiBSZXdyb3RlICR7YmFzZVBhdGh9IC0+IE9yaWdpbmFsIHVybDogJHtyZXEub3JpZ2luYWxVcmx9IC0+IE5ldyB1cmw6ICR7cmVxLnVybH1gKTtcbiAgfVxuICByZXR1cm4gbmV4dCgpO1xufTtcblxuZXhwb3J0IGNvbnN0IHN0cmVhbWluZ1Rlc3QgPSBhc3luYyAocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSA9PiB7XG4gIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICd0ZXh0L3BsYWluJyk7XG4gIGNvbnN0IGRlbGF5TXMgPSAyMDtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCAxMDA7IGkrKykge1xuICAgIHJlcy53cml0ZShgSGVyZSBpcyBhIHN0cmVhbWluZyBjaHVuayR7aX1cXG5gKTtcbiAgICBpZiAoaSA8IDk5KSB7XG4gICAgICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gc2V0VGltZW91dChyZXNvbHZlLCBkZWxheU1zKSk7XG4gICAgfVxuICB9XG4gIHJlcy5lbmQoKTtcbn07XG5cbmV4cG9ydCBjb25zdCBzc3JCdW5kbGVGaWxlVGVzdCA9IGFzeW5jIChyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCBmaWxlTmFtZSA9IGAke19fZGlybmFtZX0vc3RhdGljL2V4YW1wbGUuanNvbmA7XG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IGZzLnJlYWRGaWxlKGZpbGVOYW1lLCB7ZW5jb2Rpbmc6ICd1dGY4J30pO1xuICAgIGNvbnN0IGpzb25EYXRhID0gSlNPTi5wYXJzZShkYXRhKTtcbiAgICByZXMuanNvbihqc29uRGF0YSk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmVzLnN0YXR1cyg1MDApLmpzb24oe2Vycm9yfSk7XG4gIH1cbn07XG5cbmNvbnN0IGdlbmVyYXRlUmFuZG9tVGV4dCA9IChudW1DaGFyczogbnVtYmVyKTogc3RyaW5nID0+IHtcbiAgY29uc3QgYWxwaGFiZXQgPSAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eic7XG4gIGxldCByZXN1bHQgPSAnJztcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBudW1DaGFyczsgaSsrKSB7XG4gICAgcmVzdWx0ICs9IGFscGhhYmV0W01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGFscGhhYmV0Lmxlbmd0aCldO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59O1xuXG5leHBvcnQgY29uc3Qgc3RyZWFtaW5nUmVzcG9uc2VMYXJnZSA9IChyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpID0+IHtcbiAgaWYgKHByb2Nlc3MuZW52Lk1SVF9CVU5ETEVfVFlQRSAhPT0gJ3N0cmVhbScpIHtcbiAgICByZXMuc3RhdHVzKDIwMCk7XG4gICAgcmVzLmpzb24oe3N0cmVhbWluZzogZmFsc2V9KTtcbiAgICByZXR1cm47XG4gIH1cbiAgcmVzLnN0YXR1cygyMDApO1xuICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAndGV4dC9wbGFpbicpO1xuICByZXMud3JpdGUoJ1RoaXMgaXMgdGhlIGZpcnN0IHBpZWNlIG9mIHN0cmVhbWVkIGRhdGEuXFxuJyk7XG4gIGNvbnN0IHN0YXJ0VGltZSA9IERhdGUubm93KCk7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgMjA7IGkrKykge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY29uc3QgaXRlbSA9IGAke0RhdGUubm93KCkgLSBzdGFydFRpbWV9bXMgVGhpcyBpcyB0aGUgJHtpICsgMX0gcGllY2Ugb2Ygc3RyZWFtZWQgZGF0YSBhZnRlciBhIGRlbGF5ICR7Z2VuZXJhdGVSYW5kb21UZXh0KDEwMjQpfS5cXG5gO1xuICAgICAgcmVzLndyaXRlKGl0ZW0pO1xuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciAtIGZsdXNoIGFkZGVkIGJ5IHN0cmVhbWluZyBhZGFwdGVyXG4gICAgICByZXMuZmx1c2goKTtcbiAgICAgIGlmIChpID09PSAxOSkge1xuICAgICAgICByZXMuZW5kKCk7XG4gICAgICB9XG4gICAgfSwgaSAqIDUwMCk7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCB3aW5zdG9uTG9nZ2luZyA9IChyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpID0+IHtcbiAgY29uc3QgbG9nZ2VyID0gd2luc3Rvbi5jcmVhdGVMb2dnZXIoe1xuICAgIGxldmVsOiAnaW5mbycsXG4gICAgZm9ybWF0OiB3aW5zdG9uLmZvcm1hdC5qc29uKCksXG4gICAgZGVmYXVsdE1ldGE6IHtzZXJ2aWNlOiAndXNlci1zZXJ2aWNlJ30sXG4gIH0pO1xuICBsb2dnZXIuYWRkKG5ldyB3aW5zdG9uLnRyYW5zcG9ydHMuQ29uc29sZSh7Zm9ybWF0OiB3aW5zdG9uLmZvcm1hdC5qc29uKCl9KSk7XG4gIGxvZ2dlci5sb2coJ2luZm8nLCAnanNvbiBsb2cgdXNpbmcgd2luc3RvbiB0aGF0IHRyaWdnZXJzIEtleUVycm9yJyk7XG4gIGxvZ2dlci5sb2coe1xuICAgIG1ldGFkYXRhOiAnZGVmaW5lZCBieSBjdXN0JyxcbiAgICBsZXZlbDogJ2luZm8nLFxuICAgIGxvZzogJ2pzb24gbG9nIHVzaW5nIHdpbnN0b24nLFxuICAgIHRlbGVtZXRyeUV2ZW50OiAndGVsZW1ldHJ5RXZlbnQgZmllbGQgZGVmaW5lZCBieSBjdXN0b21lcicsXG4gIH0gYXMgdW5rbm93biBhcyB3aW5zdG9uLkxvZ0VudHJ5KTtcbiAgY29uc29sZS5sb2coeyd3aW5zdG9uLXRlc3QnOiAndGhpcyBpcyBhIGpzb24gbG9nIHVzaW5nIGNvbnNvbGUubG9nJ30pO1xuICBjb25zb2xlLndhcm4oeyd3aW5zdG9uLXRlc3QnOiAndGhpcyBpcyBhIGpzb24gbG9nIHVzaW5nIGNvbnNvbGUud2Fybid9KTtcbiAgY29uc29sZS5kZWJ1Zyh7J3dpbnN0b24tdGVzdCc6ICd0aGlzIGlzIGEganNvbiBsb2cgdXNpbmcgY29uc29sZS5kZWJ1Zyd9KTtcbiAgY29uc29sZS5pbmZvKHsnd2luc3Rvbi10ZXN0JzogJ3RoaXMgaXMgYSBqc29uIGxvZyB1c2luZyBjb25zb2xlLmluZm8nfSk7XG4gIGNvbnNvbGUuZXJyb3Ioeyd3aW5zdG9uLXRlc3QnOiAndGhpcyBpcyBhIGpzb24gbG9nIHVzaW5nIGNvbnNvbGUuZXJyb3InfSk7XG4gIHJlcy5qc29uKHttZXNzYWdlOiAnV2luc3RvbiBsb2dnaW5nIGNvbXBsZXRlZCd9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWxheWVkTG9nZ2luZyA9IGFzeW5jIChyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpID0+IHtcbiAgY29uc3QgZGVsYXkgPSByZXEucXVlcnkuZGVsYXkgPyBwYXJzZUludChyZXEucXVlcnkuZGVsYXkgYXMgc3RyaW5nKSA6IDEwMDAwO1xuICBjb25zdCBzdGFydFRpbWUgPSBEYXRlLm5vdygpO1xuICBjb25zb2xlLmxvZyh7ZHVyYXRpb246IERhdGUubm93KCkgLSBzdGFydFRpbWUsIG1lc3NhZ2U6IGBQcmUtZGVsYXllZCBsb2dnaW5nICR7ZGVsYXl9bXNgfSk7XG4gIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIGRlbGF5KSk7XG4gIGNvbnNvbGUubG9nKHtkdXJhdGlvbjogRGF0ZS5ub3coKSAtIHN0YXJ0VGltZSwgbWVzc2FnZTogYERlbGF5ZWQgbG9nZ2luZyAke2RlbGF5fW1zYH0pO1xuICByZXMuanNvbih7ZHVyYXRpb246IERhdGUubm93KCkgLSBzdGFydFRpbWUsIG1lc3NhZ2U6IGBEZWxheWVkIGxvZ2dpbmcgJHtkZWxheX1tc2B9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBtYXNzTG9nZ2luZyA9IChyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpID0+IHtcbiAgY29uc3QgY291bnQgPSByZXEucXVlcnkuY291bnQgPyBwYXJzZUludChyZXEucXVlcnkuY291bnQgYXMgc3RyaW5nKSA6IDEwMDAwO1xuICBjb25zdCB0ZXh0RW5jb2RlciA9IG5ldyBUZXh0RW5jb2RlcigpO1xuICBjb25zdCBzdGFydFRpbWUgPSBEYXRlLm5vdygpO1xuICBsZXQgc2l6ZSA9IDA7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgY291bnQ7IGkrKykge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBgTWFzcyBsb2dnaW5nICR7aX0gb2YgJHtjb3VudH1gO1xuICAgIHNpemUgKz0gdGV4dEVuY29kZXIuZW5jb2RlKG1lc3NhZ2UpLmxlbmd0aDtcbiAgICBjb25zb2xlLmxvZyhtZXNzYWdlKTtcbiAgfVxuICBjb25zdCBzaXplSW5LQiA9IChzaXplIC8gMTAyNCkudG9GaXhlZCgyKTtcbiAgcmVzLmpzb24oe2R1cmF0aW9uOiBEYXRlLm5vdygpIC0gc3RhcnRUaW1lLCBtZXNzYWdlOiBgTWFzcyBsb2dnaW5nICR7Y291bnR9IGxvZ3NgLCBzaXplOiBgJHtzaXplSW5LQn1LQmB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBsYXJnZUxvZ2dpbmcgPSAocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSA9PiB7XG4gIGNvbnN0IGNvdW50ID0gcmVxLnF1ZXJ5LmNvdW50ID8gcGFyc2VJbnQocmVxLnF1ZXJ5LmNvdW50IGFzIHN0cmluZykgOiAxMDAwMDtcbiAgY29uc3QgdGV4dEVuY29kZXIgPSBuZXcgVGV4dEVuY29kZXIoKTtcbiAgY29uc3Qgc3RhcnRUaW1lID0gRGF0ZS5ub3coKTtcbiAgbGV0IHNpemUgPSAwO1xuICBsZXQgbWVzc2FnZSA9ICcnO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHtcbiAgICBjb25zdCBtc2cgPSBgTWFzcyBsb2dnaW5nICR7aX0gb2YgJHtjb3VudH1gO1xuICAgIHNpemUgKz0gdGV4dEVuY29kZXIuZW5jb2RlKG1zZykubGVuZ3RoO1xuICAgIG1lc3NhZ2UgKz0gbXNnO1xuICB9XG4gIGNvbnNvbGUubG9nKG1lc3NhZ2UpO1xuICBjb25zdCBzaXplSW5LQiA9IChzaXplIC8gMTAyNCkudG9GaXhlZCgyKTtcbiAgcmVzLmpzb24oe2R1cmF0aW9uOiBEYXRlLm5vdygpIC0gc3RhcnRUaW1lLCBtZXNzYWdlOiAnTGFyZ2UgbG9nZ2luZycsIHNpemU6IGAke3NpemVJbktCfUtCYH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IHRyYWNlTG9nZ2luZyA9IChyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpID0+IHtcbiAgY29uc3Qgc3RhcnQgPSBbbmV3IERhdGUoKS5nZXRUaW1lKCksIE51bWJlcihwcm9jZXNzLmhydGltZS5iaWdpbnQoKSldO1xuICBjb25zdCB0cmFjZSA9IHtcbiAgICBuYW1lOiAnbXJ0LnJlZi50cmFjZScsXG4gICAgdHJhY2VJZDogY3J5cHRvLnJhbmRvbUJ5dGVzKDE2KS50b1N0cmluZygnaGV4JyksXG4gICAgaWQ6IGNyeXB0by5yYW5kb21CeXRlcyg4KS50b1N0cmluZygnaGV4JyksXG4gICAgZm9yd2FyZFRyYWNlOiB0cnVlLFxuICAgIHN0YXJ0X3RpbWU6IHN0YXJ0LFxuICAgIGVuZF90aW1lOiBbbmV3IERhdGUoKS5nZXRUaW1lKCksIE51bWJlcihwcm9jZXNzLmhydGltZS5iaWdpbnQoKSldLFxuICB9O1xuICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeSh0cmFjZSkpO1xuICByZXMuanNvbih0cmFjZSk7XG59O1xuXG5leHBvcnQgY29uc3QgZGF0YVN0b3JlVGVzdCA9IGFzeW5jIChyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpID0+IHtcbiAgY29uc3Qgc3RvcmUgPSBEYXRhU3RvcmUuZ2V0RGF0YVN0b3JlKCk7XG4gIGlmICghc3RvcmUuaXNEYXRhU3RvcmVBdmFpbGFibGUoKSkge1xuICAgIHJldHVybiByZXMuanNvbih7ZGF0YVN0b3JlOiBmYWxzZX0pO1xuICB9XG4gIGxldCByZXN1bHQ7XG4gIHRyeSB7XG4gICAgcmVzdWx0ID0gYXdhaXQgc3RvcmUuZ2V0RW50cnkoU3RyaW5nKHJlcS5wYXJhbXMua2V5KSk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGlmIChlcnIgaW5zdGFuY2VvZiBEYXRhU3RvcmVVbmF2YWlsYWJsZUVycm9yKSB7XG4gICAgICByZXR1cm4gcmVzLnN0YXR1cyg0MDApLmpzb24oe2Vycm9yOiBlcnIubWVzc2FnZX0pO1xuICAgIH0gZWxzZSBpZiAoZXJyIGluc3RhbmNlb2YgRGF0YVN0b3JlTm90Rm91bmRFcnJvcikge1xuICAgICAgcmV0dXJuIHJlcy5zdGF0dXMoNDA0KS5qc29uKHtlcnJvcjogZXJyLm1lc3NhZ2V9KTtcbiAgICB9IGVsc2UgaWYgKGVyciBpbnN0YW5jZW9mIERhdGFTdG9yZVNlcnZpY2VFcnJvcikge1xuICAgICAgcmV0dXJuIHJlcy5zdGF0dXMoNTAwKS5qc29uKHtlcnJvcjogZXJyLm1lc3NhZ2V9KTtcbiAgICB9XG4gICAgdGhyb3cgZXJyO1xuICB9XG4gIHJldHVybiByZXMuanNvbihyZXN1bHQpO1xufTtcblxuZXhwb3J0IGNvbnN0IHNlY3JldHNNYW5hZ2VyVGVzdCA9IGFzeW5jIChyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpID0+IHtcbiAgY29uc3Qgc2VjcmV0SWQgPSByZXEucXVlcnkuc2VjcmV0SWQgYXMgc3RyaW5nO1xuICBpZiAoIXNlY3JldElkKSB7XG4gICAgcmV0dXJuIHJlcy5zdGF0dXMoNDAwKS5qc29uKHtlcnJvcjogJ01pc3NpbmcgcmVxdWlyZWQgcXVlcnkgcGFyYW1ldGVyOiBzZWNyZXRJZCd9KTtcbiAgfVxuICBjb25zdCBjbGllbnQgPSBuZXcgU2VjcmV0c01hbmFnZXJDbGllbnQoe3JlZ2lvbjogcHJvY2Vzcy5lbnYuQVdTX1JFR0lPTn0pO1xuICBjb25zdCBjb21tYW5kID0gbmV3IEdldFNlY3JldFZhbHVlQ29tbWFuZCh7U2VjcmV0SWQ6IHNlY3JldElkfSk7XG4gIHRyeSB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuc2VuZChjb21tYW5kKTtcbiAgICByZXR1cm4gcmVzLnN0YXR1cygyMDApLmpzb24oe1xuICAgICAgc3VjY2VzczogdHJ1ZSxcbiAgICAgIHNlY3JldElkLFxuICAgICAgYXJuOiByZXNwb25zZS5BUk4sXG4gICAgICB2ZXJzaW9uSWQ6IHJlc3BvbnNlLlZlcnNpb25JZCxcbiAgICAgIGhhc1NlY3JldFN0cmluZzogISFyZXNwb25zZS5TZWNyZXRTdHJpbmcsXG4gICAgICBoYXNTZWNyZXRCaW5hcnk6ICEhcmVzcG9uc2UuU2VjcmV0QmluYXJ5LFxuICAgIH0pO1xuICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgIGNvbnN0IGVyciA9IGVycm9yIGFzIHtuYW1lPzogc3RyaW5nOyBjb2RlPzogc3RyaW5nOyBtZXNzYWdlPzogc3RyaW5nfTtcbiAgICBjb25zdCBlcnJvckNvZGUgPSBlcnIubmFtZSB8fCBlcnIuY29kZTtcbiAgICBsZXQgc3RhdHVzQ29kZSA9IDUwMDtcbiAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBlcnIubWVzc2FnZSB8fCAnVW5rbm93biBlcnJvcic7XG4gICAgc3dpdGNoIChlcnJvckNvZGUpIHtcbiAgICAgIGNhc2UgJ1Jlc291cmNlTm90Rm91bmRFeGNlcHRpb24nOlxuICAgICAgICBzdGF0dXNDb2RlID0gNDA0O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0ludmFsaWRSZXF1ZXN0RXhjZXB0aW9uJzpcbiAgICAgIGNhc2UgJ0ludmFsaWRQYXJhbWV0ZXJFeGNlcHRpb24nOlxuICAgICAgICBzdGF0dXNDb2RlID0gNDAwO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0RlY3J5cHRpb25GYWlsdXJlJzpcbiAgICAgIGNhc2UgJ0ludGVybmFsU2VydmljZUVycm9yJzpcbiAgICAgICAgc3RhdHVzQ29kZSA9IDUwMDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdBY2Nlc3NEZW5pZWRFeGNlcHRpb24nOlxuICAgICAgICBzdGF0dXNDb2RlID0gNDAzO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHN0YXR1c0NvZGUgPSA1MDA7XG4gICAgfVxuICAgIHJldHVybiByZXMuc3RhdHVzKHN0YXR1c0NvZGUpLmpzb24oe3N1Y2Nlc3M6IGZhbHNlLCBlcnJvcjogZXJyb3JNZXNzYWdlLCBlcnJvckNvZGUsIHNlY3JldElkfSk7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBwcm94eVRyYW5zZm9ybWF0aW9uVGVzdCA9IChyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpID0+IHtcbiAgY29uc3Qgc2l0ZUlkID0gcmVxLmhlYWRlcnNbJ3gtc2l0ZS1pZCddIGFzIHN0cmluZztcbiAgY29uc3QgYXV0aEhlYWRlciA9IHJlcS5oZWFkZXJzLmF1dGhvcml6YXRpb24gYXMgc3RyaW5nO1xuICBjb25zdCBjb29raWVzID0gcmVxLmhlYWRlcnMuY29va2llIGFzIHN0cmluZztcblxuICBjb25zdCBjb29raWVNYXA6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcbiAgaWYgKGNvb2tpZXMpIHtcbiAgICBjb29raWVzLnNwbGl0KCc7JykuZm9yRWFjaCgoY29va2llKSA9PiB7XG4gICAgICBjb25zdCBba2V5LCB2YWx1ZV0gPSBjb29raWUudHJpbSgpLnNwbGl0KCc9Jyk7XG4gICAgICBpZiAoa2V5ICYmIHZhbHVlKSB7XG4gICAgICAgIGNvb2tpZU1hcFtrZXldID0gdmFsdWU7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBjb25zdCBleHBlY3RlZENvb2tpZU5hbWUgPSBzaXRlSWQgPyBgY2MtYXRfJHtzaXRlSWR9YCA6IG51bGw7XG4gIGNvbnN0IGV4cGVjdGVkQ29va2llVmFsdWUgPSBleHBlY3RlZENvb2tpZU5hbWUgPyBjb29raWVNYXBbZXhwZWN0ZWRDb29raWVOYW1lXSA6IG51bGw7XG4gIGNvbnN0IHNmZGNEd3NpZEZyb21IZWFkZXIgPSByZXEuaGVhZGVycy5zZmRjX2R3c2lkIGFzIHN0cmluZztcblxuICBjb25zdCB2YWxpZGF0aW9ucyA9IHtcbiAgICBzaXRlSWRQcmVzZW50OiAhIXNpdGVJZCxcbiAgICBzaXRlSWQsXG4gICAgYXV0aEhlYWRlclByZXNlbnQ6ICEhYXV0aEhlYWRlcixcbiAgICBhdXRoSGVhZGVyLFxuICAgIGV4cGVjdGVkQ29va2llTmFtZSxcbiAgICBleHBlY3RlZENvb2tpZVZhbHVlLFxuICAgIGF1dGhIZWFkZXJNYXRjaGVzQ29va2llOiBmYWxzZSxcbiAgICBzZmRjX2R3c2lkUHJlc2VudDogISFzZmRjRHdzaWRGcm9tSGVhZGVyLFxuICAgIHNmZGNfZHdzaWRWYWx1ZTogc2ZkY0R3c2lkRnJvbUhlYWRlcixcbiAgICBkd3NpZFByZXNlbnQ6ICEhY29va2llTWFwLmR3c2lkLFxuICAgIGR3c2lkVmFsdWU6IGNvb2tpZU1hcC5kd3NpZCxcbiAgICBzZmRjX2R3c2lkTWF0Y2hlc0R3c2lkOiBzZmRjRHdzaWRGcm9tSGVhZGVyID09PSBjb29raWVNYXAuZHdzaWQsXG4gIH07XG5cbiAgaWYgKGF1dGhIZWFkZXIgJiYgZXhwZWN0ZWRDb29raWVWYWx1ZSkge1xuICAgIGNvbnN0IGV4cGVjdGVkQXV0aEhlYWRlciA9IGBCZWFyZXIgJHtleHBlY3RlZENvb2tpZVZhbHVlfWA7XG4gICAgdmFsaWRhdGlvbnMuYXV0aEhlYWRlck1hdGNoZXNDb29raWUgPSBhdXRoSGVhZGVyID09PSBleHBlY3RlZEF1dGhIZWFkZXI7XG4gIH1cblxuICBjb25zdCBhbGxWYWxpZGF0aW9uc1Bhc3NlZCA9XG4gICAgdmFsaWRhdGlvbnMuc2l0ZUlkUHJlc2VudCAmJlxuICAgIHZhbGlkYXRpb25zLmF1dGhIZWFkZXJQcmVzZW50ICYmXG4gICAgdmFsaWRhdGlvbnMuYXV0aEhlYWRlck1hdGNoZXNDb29raWUgJiZcbiAgICB2YWxpZGF0aW9ucy5zZmRjX2R3c2lkUHJlc2VudCAmJlxuICAgIHZhbGlkYXRpb25zLnNmZGNfZHdzaWRNYXRjaGVzRHdzaWQ7XG5cbiAgcmV0dXJuIHJlcy5qc29uKHtcbiAgICBzdWNjZXNzOiBhbGxWYWxpZGF0aW9uc1Bhc3NlZCxcbiAgICB2YWxpZGF0aW9ucyxcbiAgICBhbGxDb29raWVzOiBjb29raWVNYXAsXG4gICAgaGVhZGVyczoge1xuICAgICAgJ3gtc2l0ZS1pZCc6IHJlcS5oZWFkZXJzWyd4LXNpdGUtaWQnXSxcbiAgICAgIGF1dGhvcml6YXRpb246IHJlcS5oZWFkZXJzLmF1dGhvcml6YXRpb24sXG4gICAgICBjb29raWU6IHJlcS5oZWFkZXJzLmNvb2tpZSxcbiAgICAgIHNmZGNfZHdzaWQ6IHJlcS5oZWFkZXJzLnNmZGNfZHdzaWQsXG4gICAgfSxcbiAgfSk7XG59O1xuIiwgIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjUsIFNhbGVzZm9yY2UsIEluYy5cbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMlxuICogRm9yIGZ1bGwgbGljZW5zZSB0ZXh0LCBzZWUgdGhlIGxpY2Vuc2UudHh0IGZpbGUgaW4gdGhlIHJlcG8gcm9vdCBvciBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqL1xuaW1wb3J0IHtMYW1iZGFDbGllbnQsIEludm9rZUNvbW1hbmQsIHR5cGUgSW52b2tlQ29tbWFuZElucHV0fSBmcm9tICdAYXdzLXNkay9jbGllbnQtbGFtYmRhJztcbmltcG9ydCB7UzNDbGllbnQsIEdldE9iamVjdENvbW1hbmQsIHR5cGUgR2V0T2JqZWN0Q29tbWFuZElucHV0fSBmcm9tICdAYXdzLXNkay9jbGllbnQtczMnO1xuaW1wb3J0IHtDbG91ZFdhdGNoTG9nc0NsaWVudCwgQ3JlYXRlTG9nU3RyZWFtQ29tbWFuZCwgdHlwZSBDcmVhdGVMb2dTdHJlYW1Db21tYW5kSW5wdXR9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1jbG91ZHdhdGNoLWxvZ3MnO1xuaW1wb3J0IHtEeW5hbW9EQkNsaWVudH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiJztcbmltcG9ydCB7RHluYW1vREJEb2N1bWVudENsaWVudCwgR2V0Q29tbWFuZH0gZnJvbSAnQGF3cy1zZGsvbGliLWR5bmFtb2RiJztcbmltcG9ydCB0eXBlIHtSZXF1ZXN0LCBSZXNwb25zZX0gZnJvbSAnZXhwcmVzcyc7XG5cbmludGVyZmFjZSBJc29sYXRpb25UZXN0UGFyYW1zIHtcbiAgRnVuY3Rpb25OYW1lPzogc3RyaW5nO1xuICBCdWNrZXQ/OiBzdHJpbmc7XG4gIEtleT86IHN0cmluZztcbiAgUmVnaW9uPzogc3RyaW5nO1xuICBsb2dHcm91cE5hbWU/OiBzdHJpbmc7XG4gIGRhbEtleT86IHN0cmluZztcbiAgZGFsUHJvamVjdEVudmlyb25tZW50Pzogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgVGVzdFJlc3VsdCB7XG4gIFtrZXk6IHN0cmluZ106IGJvb2xlYW47XG59XG5cbmNvbnN0IGhhc0Vycm9yTmFtZSA9IChlcnJvcjogdW5rbm93biwgbmFtZTogc3RyaW5nKTogYm9vbGVhbiA9PiB7XG4gIGlmICh0eXBlb2YgZXJyb3IgIT09ICdvYmplY3QnIHx8IGVycm9yID09PSBudWxsKSByZXR1cm4gZmFsc2U7XG4gIGNvbnN0IGF3c0Vycm9yID0gZXJyb3IgYXMge25hbWU/OiBzdHJpbmc7IG1lc3NhZ2U/OiBzdHJpbmd9O1xuICByZXR1cm4gYXdzRXJyb3IubmFtZSA9PT0gbmFtZSB8fCBhd3NFcnJvci5tZXNzYWdlID09PSBuYW1lO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzb2xhdGlvbk9yaWdpbkxhbWJkYVRlc3QgPSBhc3luYyAoaW5wdXQ6IEludm9rZUNvbW1hbmRJbnB1dCk6IFByb21pc2U8Ym9vbGVhbj4gPT4ge1xuICBjb25zdCBjbGllbnQgPSBuZXcgTGFtYmRhQ2xpZW50KCk7XG4gIHRyeSB7XG4gICAgYXdhaXQgY2xpZW50LnNlbmQobmV3IEludm9rZUNvbW1hbmQoaW5wdXQpKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGlmIChoYXNFcnJvck5hbWUoZSwgJ0FjY2Vzc0RlbmllZEV4Y2VwdGlvbicpKSByZXR1cm4gdHJ1ZTtcbiAgICBjb25zb2xlLmVycm9yKGUpO1xuICB9XG4gIGNvbnNvbGUuZXJyb3IoJ0xhbWJkYSBpc29sYXRpb24gdGVzdCBmYWlsZWQhJyk7XG4gIHJldHVybiBmYWxzZTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc29sYXRpb25TM1Rlc3QgPSBhc3luYyAoaW5wdXQ6IEdldE9iamVjdENvbW1hbmRJbnB1dCAmIHtSZWdpb24/OiBzdHJpbmd9KTogUHJvbWlzZTxib29sZWFuPiA9PiB7XG4gIGNvbnN0IHJlZ2lvbiA9IGlucHV0LlJlZ2lvbiB8fCBwcm9jZXNzLmVudi5BV1NfUkVHSU9OIHx8ICd1cy1lYXN0LTEnO1xuICBjb25zdCBjbGllbnQgPSBuZXcgUzNDbGllbnQoe3JlZ2lvbn0pO1xuICBkZWxldGUgaW5wdXQuUmVnaW9uO1xuICB0cnkge1xuICAgIGF3YWl0IGNsaWVudC5zZW5kKG5ldyBHZXRPYmplY3RDb21tYW5kKGlucHV0KSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBpZiAoaGFzRXJyb3JOYW1lKGUsICdBY2Nlc3NEZW5pZWQnKSkgcmV0dXJuIHRydWU7XG4gICAgY29uc29sZS5lcnJvcihlKTtcbiAgfVxuICBjb25zb2xlLmVycm9yKCdTMyBpc29sYXRpb24gdGVzdCBmYWlsZWQhJyk7XG4gIHJldHVybiBmYWxzZTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc29sYXRpb25Mb2dzVGVzdCA9IGFzeW5jIChpbnB1dDogQ3JlYXRlTG9nU3RyZWFtQ29tbWFuZElucHV0KTogUHJvbWlzZTxib29sZWFuPiA9PiB7XG4gIGNvbnN0IGNsaWVudCA9IG5ldyBDbG91ZFdhdGNoTG9nc0NsaWVudCgpO1xuICB0cnkge1xuICAgIGNvbnN0IHJhbmRvbVN0cmluZyA9IE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnNsaWNlKDIsIDcpO1xuICAgIGF3YWl0IGNsaWVudC5zZW5kKG5ldyBDcmVhdGVMb2dTdHJlYW1Db21tYW5kKHsuLi5pbnB1dCwgbG9nU3RyZWFtTmFtZTogYG5ld19sb2dfc3RyZWFtXyR7cmFuZG9tU3RyaW5nfWB9KSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBpZiAoaGFzRXJyb3JOYW1lKGUsICdBY2Nlc3NEZW5pZWRFeGNlcHRpb24nKSkgcmV0dXJuIHRydWU7XG4gICAgY29uc29sZS5lcnJvcihlKTtcbiAgfVxuICBjb25zb2xlLmVycm9yKCdMb2cgZ3JvdXAgaXNvbGF0aW9uIHRlc3QgZmFpbGVkIScpO1xuICByZXR1cm4gZmFsc2U7XG59O1xuXG5leHBvcnQgY29uc3QgaXNvbGF0aW9uRGFsVGVzdCA9IGFzeW5jIChpbnB1dDoge2RhbEtleT86IHN0cmluZzsgZGFsUHJvamVjdEVudmlyb25tZW50Pzogc3RyaW5nfSk6IFByb21pc2U8Ym9vbGVhbj4gPT4ge1xuICBpZiAoIXByb2Nlc3MuZW52LkFXU19SRUdJT04gfHwgIWlucHV0LmRhbEtleSB8fCAhaW5wdXQuZGFsUHJvamVjdEVudmlyb25tZW50KSB7XG4gICAgY29uc29sZS5lcnJvcignREFMIGlzb2xhdGlvbiB0ZXN0IGZhaWxlZDogbWlzc2luZyByZXF1aXJlZCBwYXJhbWV0ZXJzJyk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGNvbnN0IHRhYmxlTmFtZSA9IGBEYXRhQWNjZXNzTGF5ZXItJHtwcm9jZXNzLmVudi5BV1NfUkVHSU9OfWA7XG4gIGNvbnN0IGRkYkNsaWVudCA9IER5bmFtb0RCRG9jdW1lbnRDbGllbnQuZnJvbShuZXcgRHluYW1vREJDbGllbnQoe3JlZ2lvbjogcHJvY2Vzcy5lbnYuQVdTX1JFR0lPTn0pKTtcbiAgdHJ5IHtcbiAgICBhd2FpdCBkZGJDbGllbnQuc2VuZChcbiAgICAgIG5ldyBHZXRDb21tYW5kKHtcbiAgICAgICAgVGFibGVOYW1lOiB0YWJsZU5hbWUsXG4gICAgICAgIEtleToge3Byb2plY3RFbnZpcm9ubWVudDogaW5wdXQuZGFsUHJvamVjdEVudmlyb25tZW50LCBrZXk6IGlucHV0LmRhbEtleX0sXG4gICAgICB9KSxcbiAgICApO1xuICB9IGNhdGNoIChlKSB7XG4gICAgaWYgKGhhc0Vycm9yTmFtZShlLCAnQWNjZXNzRGVuaWVkRXhjZXB0aW9uJykpIHJldHVybiB0cnVlO1xuICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gIH1cbiAgY29uc29sZS5lcnJvcihcIkRBTCBpc29sYXRpb24gdGVzdCBmYWlsZWQ6IFRhcmdldCBCIGFjY2Vzc2VkIFRhcmdldCBBJ3MgREFMIGVudHJ5XCIpO1xuICByZXR1cm4gZmFsc2U7XG59O1xuXG5leHBvcnQgY29uc3QgZXhlY3V0ZUlzb2xhdGlvblRlc3RzID0gYXN5bmMgKHBhcmFtczogSXNvbGF0aW9uVGVzdFBhcmFtcyk6IFByb21pc2U8VGVzdFJlc3VsdD4gPT4ge1xuICBjb25zdCB0ZXN0cyA9IFtcbiAgICB7bmFtZTogJ29yaWdpbicsIGtleXM6IFsnRnVuY3Rpb25OYW1lJ10sIGZuOiBpc29sYXRpb25PcmlnaW5MYW1iZGFUZXN0fSxcbiAgICB7bmFtZTogJ3N0b3JhZ2UnLCBrZXlzOiBbJ0J1Y2tldCcsICdLZXknLCAnUmVnaW9uJ10sIGZuOiBpc29sYXRpb25TM1Rlc3R9LFxuICAgIHtuYW1lOiAnbG9ncycsIGtleXM6IFsnbG9nR3JvdXBOYW1lJ10sIGZuOiBpc29sYXRpb25Mb2dzVGVzdH0sXG4gICAge25hbWU6ICdkYWwnLCBrZXlzOiBbJ2RhbEtleScsICdkYWxQcm9qZWN0RW52aXJvbm1lbnQnXSwgZm46IGlzb2xhdGlvbkRhbFRlc3R9LFxuICBdO1xuICBjb25zdCByZXN1bHRzOiBUZXN0UmVzdWx0ID0ge307XG4gIGZvciAoY29uc3QgdGVzdCBvZiB0ZXN0cykge1xuICAgIGNvbnN0IHtrZXlzLCBmbiwgbmFtZX0gPSB0ZXN0O1xuICAgIGNvbnN0IGlucHV0ID0gT2JqZWN0LmtleXMocGFyYW1zKVxuICAgICAgLmZpbHRlcigoa2V5KSA9PiBrZXlzLmluY2x1ZGVzKGtleSkpXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgLnJlZHVjZSgob2JqOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LCBrZXkpID0+IHtcbiAgICAgICAgb2JqW2tleV0gPSBwYXJhbXNba2V5IGFzIGtleW9mIElzb2xhdGlvblRlc3RQYXJhbXNdO1xuICAgICAgICByZXR1cm4gb2JqO1xuICAgICAgfSwge30pO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcmVzdWx0c1tuYW1lXSA9IGF3YWl0IGZuKGlucHV0IGFzIGFueSk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdHM7XG59O1xuXG5leHBvcnQgY29uc3QgaXNvbGF0aW9uVGVzdHMgPSBhc3luYyAocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCBleGVjdXRlSXNvbGF0aW9uVGVzdHMocmVxLnF1ZXJ5KTtcbiAgcmVzLmhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcbiAgcmVzLnNlbmQoSlNPTi5zdHJpbmdpZnkocmVzdWx0cywgbnVsbCwgNCkpO1xufTtcbiIsICIvLyNyZWdpb24gSW1wb3J0c1xuXG5pbXBvcnQgdXRpbCBmcm9tICdub2RlOnV0aWwnO1xuaW1wb3J0IHR5cGUgeyBCaW5hcnlTZXR0aW5ncywgU2luZ2xlVmFsdWVIZWFkZXJzIH0gZnJvbSAnLi4vLi4vQHR5cGVzJztcbmltcG9ydCB0eXBlIHtcbiAgQWRhcHRlckNvbnRyYWN0LFxuICBBZGFwdGVyUmVxdWVzdCxcbiAgRnJhbWV3b3JrQ29udHJhY3QsXG4gIFJlc29sdmVyQ29udHJhY3QsXG4gIFNlcnZlcmxlc3NIYW5kbGVyLFxufSBmcm9tICcuLi8uLi9jb250cmFjdHMnO1xuaW1wb3J0IHtcbiAgQmFzZUhhbmRsZXIsXG4gIHR5cGUgSUxvZ2dlcixcbiAgaXNCaW5hcnksXG4gIHNldEN1cnJlbnRJbnZva2UsXG4gIHdhaXRGb3JTdHJlYW1Db21wbGV0ZSxcbn0gZnJvbSAnLi4vLi4vY29yZSc7XG5pbXBvcnQgeyBTZXJ2ZXJsZXNzUmVzcG9uc2UgfSBmcm9tICcuLi8uLi9uZXR3b3JrJztcblxuLy8jZW5kcmVnaW9uXG5cbi8qKlxuICogVGhlIGNsYXNzIHRoYXQgaW1wbGVtZW50cyBhIGRlZmF1bHQgc2VydmVybGVzcyBoYW5kbGVyIGNvbnNpc3Rpbmcgb2YgYSBmdW5jdGlvbiB3aXRoIGV2ZW50LCBjb250ZXh0IGFuZCBjYWxsYmFjayBwYXJhbWV0ZXJzIHJlc3BlY3RpdmVseVxuICpcbiAqIEBicmVhZGNydW1iIEhhbmRsZXJzIC8gRGVmYXVsdEhhbmRsZXJcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNsYXNzIERlZmF1bHRIYW5kbGVyPFxuICBUQXBwLFxuICBURXZlbnQsXG4gIFRDb250ZXh0LFxuICBUQ2FsbGJhY2ssXG4gIFRSZXNwb25zZSxcbiAgVFJldHVybixcbj4gZXh0ZW5kcyBCYXNlSGFuZGxlcjxUQXBwLCBURXZlbnQsIFRDb250ZXh0LCBUQ2FsbGJhY2ssIFRSZXNwb25zZSwgVFJldHVybj4ge1xuICAvLyNyZWdpb24gUHVibGljIE1ldGhvZHNcblxuICAvKipcbiAgICoge0Bpbmhlcml0RG9jfVxuICAgKi9cbiAgcHVibGljIGdldEhhbmRsZXIoXG4gICAgYXBwOiBUQXBwLFxuICAgIGZyYW1ld29yazogRnJhbWV3b3JrQ29udHJhY3Q8VEFwcD4sXG4gICAgYWRhcHRlcnM6IEFkYXB0ZXJDb250cmFjdDxURXZlbnQsIFRDb250ZXh0LCBUUmVzcG9uc2U+W10sXG4gICAgcmVzb2x2ZXJGYWN0b3J5OiBSZXNvbHZlckNvbnRyYWN0PFxuICAgICAgVEV2ZW50LFxuICAgICAgVENvbnRleHQsXG4gICAgICBUQ2FsbGJhY2ssXG4gICAgICBUUmVzcG9uc2UsXG4gICAgICBUUmV0dXJuXG4gICAgPixcbiAgICBiaW5hcnlTZXR0aW5nczogQmluYXJ5U2V0dGluZ3MsXG4gICAgcmVzcG9uZFdpdGhFcnJvcnM6IGJvb2xlYW4sXG4gICAgbG9nOiBJTG9nZ2VyLFxuICApOiBTZXJ2ZXJsZXNzSGFuZGxlcjxUUmV0dXJuPiB7XG4gICAgcmV0dXJuIChldmVudDogVEV2ZW50LCBjb250ZXh0OiBUQ29udGV4dCwgY2FsbGJhY2s/OiBUQ2FsbGJhY2spID0+IHtcbiAgICAgIHRoaXMub25SZWNlaXZlUmVxdWVzdChcbiAgICAgICAgbG9nLFxuICAgICAgICBldmVudCxcbiAgICAgICAgY29udGV4dCxcbiAgICAgICAgYmluYXJ5U2V0dGluZ3MsXG4gICAgICAgIHJlc3BvbmRXaXRoRXJyb3JzLFxuICAgICAgKTtcblxuICAgICAgY29uc3QgYWRhcHRlciA9IHRoaXMuZ2V0QWRhcHRlckJ5RXZlbnRBbmRDb250ZXh0KFxuICAgICAgICBldmVudCxcbiAgICAgICAgY29udGV4dCxcbiAgICAgICAgYWRhcHRlcnMsXG4gICAgICAgIGxvZyxcbiAgICAgICk7XG5cbiAgICAgIHRoaXMub25SZXNvbHZlQWRhcHRlcihsb2csIGFkYXB0ZXIpO1xuXG4gICAgICBzZXRDdXJyZW50SW52b2tlKHsgZXZlbnQsIGNvbnRleHQgfSk7XG5cbiAgICAgIGNvbnN0IHJlc29sdmVyID0gcmVzb2x2ZXJGYWN0b3J5LmNyZWF0ZVJlc29sdmVyKHtcbiAgICAgICAgZXZlbnQsXG4gICAgICAgIGNvbnRleHQsXG4gICAgICAgIGNhbGxiYWNrLFxuICAgICAgICBsb2csXG4gICAgICAgIHJlc3BvbmRXaXRoRXJyb3JzLFxuICAgICAgICBhZGFwdGVyLFxuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiByZXNvbHZlci5ydW4oKCkgPT5cbiAgICAgICAgdGhpcy5mb3J3YXJkUmVxdWVzdFRvRnJhbWV3b3JrKFxuICAgICAgICAgIGFwcCxcbiAgICAgICAgICBmcmFtZXdvcmssXG4gICAgICAgICAgZXZlbnQsXG4gICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICBhZGFwdGVyLFxuICAgICAgICAgIGJpbmFyeVNldHRpbmdzLFxuICAgICAgICAgIGxvZyxcbiAgICAgICAgKSxcbiAgICAgICk7XG4gICAgfTtcbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBIb29rc1xuXG4gIC8qKlxuICAgKiBUaGUgaG9vayBleGVjdXRlZCBvbiByZWNlaXZlIGEgcmVxdWVzdCwgYmVmb3JlIHRoZSByZXF1ZXN0IGlzIGJlaW5nIHByb2Nlc3NlZFxuICAgKlxuICAgKiBAcGFyYW0gbG9nIC0gVGhlIGluc3RhbmNlIG9mIGxvZ2dlclxuICAgKiBAcGFyYW0gZXZlbnQgLSBUaGUgZXZlbnQgc2VudCBieSBzZXJ2ZXJsZXNzXG4gICAqIEBwYXJhbSBjb250ZXh0IC0gVGhlIGNvbnRleHQgc2VudCBieSBzZXJ2ZXJsZXNzXG4gICAqIEBwYXJhbSBiaW5hcnlTZXR0aW5ncyAtIFRoZSBiaW5hcnkgc2V0dGluZ3NcbiAgICogQHBhcmFtIHJlc3BvbmRXaXRoRXJyb3JzIC0gSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGVycm9yIHN0YWNrIHNob3VsZCBiZSBpbmNsdWRlZCBpbiB0aGUgcmVzcG9uc2Ugb3Igbm90XG4gICAqL1xuICBwcm90ZWN0ZWQgb25SZWNlaXZlUmVxdWVzdChcbiAgICBsb2c6IElMb2dnZXIsXG4gICAgZXZlbnQ6IFRFdmVudCxcbiAgICBjb250ZXh0OiBUQ29udGV4dCxcbiAgICBiaW5hcnlTZXR0aW5nczogQmluYXJ5U2V0dGluZ3MsXG4gICAgcmVzcG9uZFdpdGhFcnJvcnM6IGJvb2xlYW4sXG4gICk6IHZvaWQge1xuICAgIGxvZy5kZWJ1ZygnU0VSVkVSTEVTU19BREFQVEVSOlBST1hZJywgKCkgPT4gKHtcbiAgICAgIGV2ZW50OiB1dGlsLmluc3BlY3QoZXZlbnQsIHsgZGVwdGg6IG51bGwgfSksXG4gICAgICBjb250ZXh0OiB1dGlsLmluc3BlY3QoY29udGV4dCwgeyBkZXB0aDogbnVsbCB9KSxcbiAgICAgIGJpbmFyeVNldHRpbmdzLFxuICAgICAgcmVzcG9uZFdpdGhFcnJvcnMsXG4gICAgfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBob29rIGV4ZWN1dGVkIGFmdGVyIHJlc29sdmUgdGhlIGFkYXB0ZXIgdGhhdCB3aWxsIGJlIHVzZWQgdG8gaGFuZGxlIHRoZSByZXF1ZXN0IGFuZCByZXNwb25zZVxuICAgKlxuICAgKiBAcGFyYW0gbG9nIC0gVGhlIGluc3RhbmNlIG9mIGxvZ2dlclxuICAgKiBAcGFyYW0gYWRhcHRlciAtIFRoZSBhZGFwdGVyIHJlc29sdmVkXG4gICAqL1xuICBwcm90ZWN0ZWQgb25SZXNvbHZlQWRhcHRlcihcbiAgICBsb2c6IElMb2dnZXIsXG4gICAgYWRhcHRlcjogQWRhcHRlckNvbnRyYWN0PFRFdmVudCwgVENvbnRleHQsIFRSZXNwb25zZT4sXG4gICk6IHZvaWQge1xuICAgIGxvZy5kZWJ1ZyhcbiAgICAgICdTRVJWRVJMRVNTX0FEQVBURVI6UkVTT0xWRURfQURBUFRFUl9OQU1FOiAnLFxuICAgICAgYWRhcHRlci5nZXRBZGFwdGVyTmFtZSgpLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGhvb2sgZXhlY3V0ZWQgYWZ0ZXIgcmVzb2x2ZXMgdGhlIHJlcXVlc3QgdmFsdWVzIHRoYXQgd2lsbCBiZSBzZW50IHRvIHRoZSBmcmFtZXdvcmtcbiAgICpcbiAgICogQHBhcmFtIGxvZyAtIFRoZSBpbnN0YW5jZSBvZiBsb2dnZXJcbiAgICogQHBhcmFtIHJlcXVlc3RWYWx1ZXMgLSBUaGUgcmVxdWVzdCB2YWx1ZXMgcmV0dXJuZWQgYnkgdGhlIGFkYXB0ZXJcbiAgICovXG4gIHByb3RlY3RlZCBvblJlc29sdmVSZXF1ZXN0VmFsdWVzKFxuICAgIGxvZzogSUxvZ2dlcixcbiAgICByZXF1ZXN0VmFsdWVzOiBBZGFwdGVyUmVxdWVzdCxcbiAgKTogdm9pZCB7XG4gICAgbG9nLmRlYnVnKFxuICAgICAgJ1NFUlZFUkxFU1NfQURBUFRFUjpGT1JXQVJEX1JFUVVFU1RfVE9fRlJBTUVXT1JLOlJFUVVFU1RfVkFMVUVTJyxcbiAgICAgICgpID0+ICh7XG4gICAgICAgIHJlcXVlc3RWYWx1ZXM6IHtcbiAgICAgICAgICAuLi5yZXF1ZXN0VmFsdWVzLFxuICAgICAgICAgIGJvZHk6IHJlcXVlc3RWYWx1ZXMuYm9keT8udG9TdHJpbmcoKSxcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGhvb2sgZXhlY3V0ZWQgYWZ0ZXIgaGFuZGxpbmcgdGhlIHJlc3BvbnNlIHNlbnQgYnkgdGhlIGZyYW1ld29ya1xuICAgKlxuICAgKiBAcGFyYW0gbG9nIC0gVGhlIGluc3RhbmNlIG9mIGxvZ2dlclxuICAgKiBAcGFyYW0gcmVzcG9uc2UgLSBUaGUgcmVzcG9uc2Ugc2VudCBieSB0aGUgZnJhbWV3b3JrXG4gICAqL1xuICBwcm90ZWN0ZWQgb25SZXNvbHZlRm9yd2FyZGVkUmVzcG9uc2VUb0ZyYW1ld29yayhcbiAgICBsb2c6IElMb2dnZXIsXG4gICAgcmVzcG9uc2U6IFNlcnZlcmxlc3NSZXNwb25zZSxcbiAgKTogdm9pZCB7XG4gICAgbG9nLmRlYnVnKFxuICAgICAgJ1NFUlZFUkxFU1NfQURBUFRFUjpGT1JXQVJEX1JFUVVFU1RfVE9fRlJBTUVXT1JLOlJFU1BPTlNFJyxcbiAgICAgICgpID0+ICh7XG4gICAgICAgIHJlc3BvbnNlLFxuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgaG9vayBleGVjdXRlZCBiZWZvcmUgc2VuZGluZyByZXNwb25zZSB0byB0aGUgc2VydmVybGVzc1xuICAgKlxuICAgKiBAcGFyYW0gbG9nIC0gVGhlIGluc3RhbmNlIG9mIGxvZ2dlclxuICAgKiBAcGFyYW0gc3RhdHVzQ29kZSAtIFRoZSBzdGF0dXMgY29kZSBvZiB0aGUgcmVzcG9uc2VcbiAgICogQHBhcmFtIGJvZHkgLSBUaGUgYm9keSBvZiB0aGUgcmVzcG9uc2VcbiAgICogQHBhcmFtIGhlYWRlcnMgLSBUaGUgaGVhZGVycyBvZiB0aGUgcmVzcG9uc2VcbiAgICogQHBhcmFtIGlzQmFzZTY0RW5jb2RlZCAtIEluZGljYXRlcyB3aGV0aGVyIHRoZSByZXNwb25zZSB3YXMgZW5jb2RlZCBhcyBiaW5hcnkgb3Igbm90XG4gICAqL1xuICBwcm90ZWN0ZWQgb25Gb3J3YXJkUmVzcG9uc2UoXG4gICAgbG9nOiBJTG9nZ2VyLFxuICAgIHN0YXR1c0NvZGU6IG51bWJlcixcbiAgICBib2R5OiBzdHJpbmcsXG4gICAgaGVhZGVyczogU2luZ2xlVmFsdWVIZWFkZXJzLFxuICAgIGlzQmFzZTY0RW5jb2RlZDogYm9vbGVhbixcbiAgKSB7XG4gICAgbG9nLmRlYnVnKFxuICAgICAgJ1NFUlZFUkxFU1NfQURBUFRFUjpGT1JXQVJEX1JFU1BPTlNFOkVWRU5UX1NPVVJDRV9SRVNQT05TRV9QQVJBTVMnLFxuICAgICAgKCkgPT4gKHtcbiAgICAgICAgc3RhdHVzQ29kZSxcbiAgICAgICAgYm9keSxcbiAgICAgICAgaGVhZGVycyxcbiAgICAgICAgaXNCYXNlNjRFbmNvZGVkLFxuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgaG9vayBleGVjdXRlZCBiZWZvcmUgc2VuZGluZyByZXNwb25zZSB0byB0aGUgc2VydmVybGVzcyB3aXRoIHJlc3BvbnNlIGZyb20gYWRhcHRlclxuICAgKlxuICAgKiBAcGFyYW0gbG9nIC0gVGhlIGluc3RhbmNlIG9mIGxvZ2dlclxuICAgKiBAcGFyYW0gc3VjY2Vzc1Jlc3BvbnNlIC0gVGhlIHN1Y2Nlc3MgcmVzcG9uc2UgcmVzb2x2ZWQgYnkgdGhlIGFkYXB0ZXJcbiAgICogQHBhcmFtIGJvZHkgLSBUaGUgYm9keSBvZiB0aGUgcmVzcG9uc2Ugc2VudCBieSB0aGUgZnJhbWV3b3JrXG4gICAqL1xuICBwcm90ZWN0ZWQgb25Gb3J3YXJkUmVzcG9uc2VBZGFwdGVyUmVzcG9uc2UoXG4gICAgbG9nOiBJTG9nZ2VyLFxuICAgIHN1Y2Nlc3NSZXNwb25zZTogVFJlc3BvbnNlLFxuICAgIGJvZHk6IHN0cmluZyxcbiAgKSB7XG4gICAgbG9nLmRlYnVnKFxuICAgICAgJ1NFUlZFUkxFU1NfQURBUFRFUjpGT1JXQVJEX1JFU1BPTlNFOkVWRU5UX1NPVVJDRV9SRVNQT05TRScsXG4gICAgICAoKSA9PiAoe1xuICAgICAgICBzdWNjZXNzUmVzcG9uc2U6IHV0aWwuaW5zcGVjdChzdWNjZXNzUmVzcG9uc2UsIHsgZGVwdGg6IG51bGwgfSksXG4gICAgICAgIGJvZHksXG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIFByb3RlY3RlZCBNZXRob2RzXG5cbiAgLyoqXG4gICAqIFRoZSBmdW5jdGlvbiB0byBmb3J3YXJkIHRoZSBldmVudCB0byB0aGUgZnJhbWV3b3JrXG4gICAqXG4gICAqIEBwYXJhbSBhcHAgLSBUaGUgaW5zdGFuY2Ugb2YgdGhlIGFwcCAoZXhwcmVzcywgaGFwaSwgZXRjLi4uKVxuICAgKiBAcGFyYW0gZnJhbWV3b3JrIC0gVGhlIGZyYW1ld29yayB0aGF0IHdpbGwgcHJvY2VzcyByZXF1ZXN0c1xuICAgKiBAcGFyYW0gZXZlbnQgLSBUaGUgZXZlbnQgc2VudCBieSBzZXJ2ZXJsZXNzXG4gICAqIEBwYXJhbSBjb250ZXh0IC0gVGhlIGNvbnRleHQgc2VudCBieSBzZXJ2ZXJsZXNzXG4gICAqIEBwYXJhbSBhZGFwdGVyIC0gVGhlIGFkYXB0ZXIgcmVzb2x2ZWQgdG8gdGhpcyBldmVudFxuICAgKiBAcGFyYW0gbG9nIC0gVGhlIGluc3RhbmNlIG9mIGxvZ2dlclxuICAgKiBAcGFyYW0gYmluYXJ5U2V0dGluZ3MgLSBUaGUgYmluYXJ5IHNldHRpbmdzXG4gICAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgZm9yd2FyZFJlcXVlc3RUb0ZyYW1ld29yayhcbiAgICBhcHA6IFRBcHAsXG4gICAgZnJhbWV3b3JrOiBGcmFtZXdvcmtDb250cmFjdDxUQXBwPixcbiAgICBldmVudDogVEV2ZW50LFxuICAgIGNvbnRleHQ6IFRDb250ZXh0LFxuICAgIGFkYXB0ZXI6IEFkYXB0ZXJDb250cmFjdDxURXZlbnQsIFRDb250ZXh0LCBUUmVzcG9uc2U+LFxuICAgIGJpbmFyeVNldHRpbmdzOiBCaW5hcnlTZXR0aW5ncyxcbiAgICBsb2c6IElMb2dnZXIsXG4gICk6IFByb21pc2U8VFJlc3BvbnNlPiB7XG4gICAgY29uc3QgcmVxdWVzdFZhbHVlcyA9IGFkYXB0ZXIuZ2V0UmVxdWVzdChldmVudCwgY29udGV4dCwgbG9nKTtcblxuICAgIHRoaXMub25SZXNvbHZlUmVxdWVzdFZhbHVlcyhsb2csIHJlcXVlc3RWYWx1ZXMpO1xuXG4gICAgY29uc3QgW3JlcXVlc3QsIHJlc3BvbnNlXSA9XG4gICAgICB0aGlzLmdldFNlcnZlcmxlc3NSZXF1ZXN0UmVzcG9uc2VGcm9tQWRhcHRlclJlcXVlc3QocmVxdWVzdFZhbHVlcyk7XG5cbiAgICBmcmFtZXdvcmsuc2VuZFJlcXVlc3QoYXBwLCByZXF1ZXN0LCByZXNwb25zZSk7XG5cbiAgICBhd2FpdCB3YWl0Rm9yU3RyZWFtQ29tcGxldGUocmVzcG9uc2UpO1xuXG4gICAgdGhpcy5vblJlc29sdmVGb3J3YXJkZWRSZXNwb25zZVRvRnJhbWV3b3JrKGxvZywgcmVzcG9uc2UpO1xuXG4gICAgcmV0dXJuIHRoaXMuZm9yd2FyZFJlc3BvbnNlKGV2ZW50LCByZXNwb25zZSwgYWRhcHRlciwgYmluYXJ5U2V0dGluZ3MsIGxvZyk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGZ1bmN0aW9uIHRvIGZvcndhcmQgdGhlIHJlc3BvbnNlIGJhY2sgdG8gdGhlIHNlcnZlcmxlc3NcbiAgICpcbiAgICogQHBhcmFtIGV2ZW50IC0gVGhlIGV2ZW50IHNlbnQgYnkgc2VydmVybGVzc1xuICAgKiBAcGFyYW0gcmVzcG9uc2UgLSBUaGUgcmVzcG9uc2Ugb2YgdGhlIGZyYW1ld29ya1xuICAgKiBAcGFyYW0gYWRhcHRlciAtIFRoZSBhZGFwdGVyIHJlc29sdmVkIHRvIHRoaXMgZXZlbnRcbiAgICogQHBhcmFtIGJpbmFyeVNldHRpbmdzIC0gVGhlIGJpbmFyeSBzZXR0aW5nc1xuICAgKiBAcGFyYW0gbG9nIC0gVGhlIGluc3RhbmNlIG9mIGxvZ2dlclxuICAgKi9cbiAgcHJvdGVjdGVkIGZvcndhcmRSZXNwb25zZShcbiAgICBldmVudDogVEV2ZW50LFxuICAgIHJlc3BvbnNlOiBTZXJ2ZXJsZXNzUmVzcG9uc2UsXG4gICAgYWRhcHRlcjogQWRhcHRlckNvbnRyYWN0PFRFdmVudCwgVENvbnRleHQsIFRSZXNwb25zZT4sXG4gICAgYmluYXJ5U2V0dGluZ3M6IEJpbmFyeVNldHRpbmdzLFxuICAgIGxvZzogSUxvZ2dlcixcbiAgKTogVFJlc3BvbnNlIHtcbiAgICBjb25zdCBzdGF0dXNDb2RlID0gcmVzcG9uc2Uuc3RhdHVzQ29kZTtcbiAgICBjb25zdCBoZWFkZXJzID0gU2VydmVybGVzc1Jlc3BvbnNlLmhlYWRlcnMocmVzcG9uc2UpO1xuICAgIGNvbnN0IGlzQmFzZTY0RW5jb2RlZCA9IGlzQmluYXJ5KGhlYWRlcnMsIGJpbmFyeVNldHRpbmdzKTtcbiAgICBjb25zdCBlbmNvZGluZyA9IGlzQmFzZTY0RW5jb2RlZCA/ICdiYXNlNjQnIDogJ3V0ZjgnO1xuICAgIGNvbnN0IGJvZHkgPSBTZXJ2ZXJsZXNzUmVzcG9uc2UuYm9keShyZXNwb25zZSkudG9TdHJpbmcoZW5jb2RpbmcpO1xuICAgIGNvbnN0IGxvZ0JvZHkgPSBpc0Jhc2U2NEVuY29kZWQgPyAnW0JBU0U2NF9FTkNPREVEXScgOiBib2R5O1xuXG4gICAgdGhpcy5vbkZvcndhcmRSZXNwb25zZShsb2csIHN0YXR1c0NvZGUsIGxvZ0JvZHksIGhlYWRlcnMsIGlzQmFzZTY0RW5jb2RlZCk7XG5cbiAgICBjb25zdCBzdWNjZXNzUmVzcG9uc2UgPSBhZGFwdGVyLmdldFJlc3BvbnNlKHtcbiAgICAgIGV2ZW50LFxuICAgICAgc3RhdHVzQ29kZSxcbiAgICAgIGJvZHksXG4gICAgICBoZWFkZXJzLFxuICAgICAgaXNCYXNlNjRFbmNvZGVkLFxuICAgICAgcmVzcG9uc2UsXG4gICAgICBsb2csXG4gICAgfSk7XG5cbiAgICB0aGlzLm9uRm9yd2FyZFJlc3BvbnNlQWRhcHRlclJlc3BvbnNlKGxvZywgc3VjY2Vzc1Jlc3BvbnNlLCBsb2dCb2R5KTtcblxuICAgIHJldHVybiBzdWNjZXNzUmVzcG9uc2U7XG4gIH1cblxuICAvLyNlbmRyZWdpb25cbn1cbiIsICIvLyNyZWdpb24gSW1wb3J0c1xuXG5pbXBvcnQgdHlwZSB7XG4gIERlbGVnYXRlZFJlc29sdmVyLFxuICBSZXNvbHZlcixcbiAgUmVzb2x2ZXJDb250cmFjdCxcbiAgUmVzb2x2ZXJQcm9wcyxcbn0gZnJvbSAnLi4vLi4vY29udHJhY3RzJztcblxuLy8jZW5kcmVnaW9uXG5cbi8qKlxuICogVGhlIGRlZmF1bHQgc2lnbmF0dXJlIG9mIHRoZSBjYWxsYmFjayBzZW50IGJ5IHNlcnZlcmxlc3NcbiAqXG4gKiBAYnJlYWRjcnVtYiBSZXNvbHZlcnMgLyBDYWxsYmFja1Jlc29sdmVyXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCB0eXBlIFNlcnZlcmxlc3NDYWxsYmFjazxUUmVzcG9uc2U+ID0gKFxuICBlcnJvcjogRXJyb3IgfCBudWxsLFxuICBzdWNjZXNzOiBUUmVzcG9uc2UgfCBudWxsLFxuKSA9PiB2b2lkO1xuXG4vKipcbiAqIFRoZSBjbGFzcyB0aGF0IGltcGxlbWVudHMgdGhlIHJlc29sdmVyIHVzaW5nIHRoZSBjYWxsYmFjayBmdW5jdGlvbiBzZW50IGJ5IHNlcnZlcmxlc3NcbiAqXG4gKiBAcmVtYXJrcyBUbyB1c2UgdGhpcyByZXNvbHZlciBvbiBBV1MsIHlvdSBNVVNUIGxlYXZlIGB7QGxpbmsgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvbm9kZWpzLWNvbnRleHQuaHRtbCB8IGNhbGxiYWNrV2FpdHNGb3JFbXB0eUV2ZW50TG9vcH1gIGFzIHRydWUsIG90aGVyd2lzZSwgQVdTIHdpbGwgbm90IHdhaXQgZm9yIHRoaXMgcmVzb2x2ZXIgdG8gcmVzb2x2ZS5cbiAqXG4gKiBAYnJlYWRjcnVtYiBSZXNvbHZlcnMgLyBDYWxsYmFja1Jlc29sdmVyXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjbGFzcyBDYWxsYmFja1Jlc29sdmVyPFRFdmVudCwgVENvbnRleHQsIFRSZXNwb25zZT5cbiAgaW1wbGVtZW50c1xuICAgIFJlc29sdmVyQ29udHJhY3Q8VEV2ZW50LCBUQ29udGV4dCwgU2VydmVybGVzc0NhbGxiYWNrPGFueT4sIFRSZXNwb25zZSwgdm9pZD5cbntcbiAgLyoqXG4gICAqIHtAaW5oZXJpdERvY31cbiAgICovXG4gIHB1YmxpYyBjcmVhdGVSZXNvbHZlcih7XG4gICAgY2FsbGJhY2ssXG4gICAgZXZlbnQsXG4gICAgbG9nLFxuICAgIHJlc3BvbmRXaXRoRXJyb3JzLFxuICAgIGFkYXB0ZXIsXG4gIH06IFJlc29sdmVyUHJvcHM8XG4gICAgVEV2ZW50LFxuICAgIFRDb250ZXh0LFxuICAgIFNlcnZlcmxlc3NDYWxsYmFjazxhbnk+LFxuICAgIFRSZXNwb25zZVxuICA+KTogUmVzb2x2ZXI8YW55LCB2b2lkPiB7XG4gICAgaWYgKCFjYWxsYmFjaykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnQ291bGQgbm90IGZpZ3VyZSBvdXQgaG93IHRvIGNyZWF0ZSB0aGUgcmVzb2x2ZXIgYmVjYXVzZSB0aGUgXCJjYWxsYmFja1wiIGFyZ3VtZW50IHdhcyBub3Qgc2VudC4nLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBkZWxlZ2F0ZWRSZXNvbHZlcjogRGVsZWdhdGVkUmVzb2x2ZXI8YW55PiA9IHtcbiAgICAgIHN1Y2NlZWQ6IHJlc3BvbnNlID0+IGNhbGxiYWNrKG51bGwsIHJlc3BvbnNlKSxcbiAgICAgIGZhaWw6IGVycm9yID0+IGNhbGxiYWNrKGVycm9yLCBudWxsKSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHJ1bjogdGFzayA9PiB7XG4gICAgICAgIHRhc2soKVxuICAgICAgICAgIC50aGVuKHJlc3BvbnNlID0+IGRlbGVnYXRlZFJlc29sdmVyLnN1Y2NlZWQocmVzcG9uc2UpKVxuICAgICAgICAgIC5jYXRjaChlcnJvciA9PiB7XG4gICAgICAgICAgICBsb2cuZXJyb3IoXG4gICAgICAgICAgICAgICdTRVJWRVJMRVNTX0FEQVBURVI6UkVTUE9ORF9UT19FVkVOVF9TT1VSQ0VfV0lUSF9FUlJPUicsXG4gICAgICAgICAgICAgIGVycm9yLFxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgYWRhcHRlci5vbkVycm9yV2hpbGVGb3J3YXJkaW5nKHtcbiAgICAgICAgICAgICAgZGVsZWdhdGVkUmVzb2x2ZXIsXG4gICAgICAgICAgICAgIGVycm9yLFxuICAgICAgICAgICAgICBsb2csXG4gICAgICAgICAgICAgIGV2ZW50LFxuICAgICAgICAgICAgICByZXNwb25kV2l0aEVycm9ycyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgfSxcbiAgICB9O1xuICB9XG59XG4iLCAiLy8jcmVnaW9uIEltcG9ydHNcblxuaW1wb3J0IHR5cGUgeyBBTEJFdmVudCwgQUxCUmVzdWx0LCBDb250ZXh0IH0gZnJvbSAnYXdzLWxhbWJkYSc7XG5pbXBvcnQgdHlwZSB7XG4gIEFkYXB0ZXJDb250cmFjdCxcbiAgQWRhcHRlclJlcXVlc3QsXG4gIEdldFJlc3BvbnNlQWRhcHRlclByb3BzLFxuICBPbkVycm9yUHJvcHMsXG59IGZyb20gJy4uLy4uL2NvbnRyYWN0cyc7XG5pbXBvcnQge1xuICB0eXBlIFN0cmlwQmFzZVBhdGhGbixcbiAgYnVpbGRTdHJpcEJhc2VQYXRoLFxuICBnZXRFdmVudEJvZHlBc0J1ZmZlcixcbiAgZ2V0RmxhdHRlbmVkSGVhZGVyc01hcCxcbiAgZ2V0TXVsdGlWYWx1ZUhlYWRlcnNNYXAsXG4gIGdldFBhdGhXaXRoUXVlcnlTdHJpbmdQYXJhbXMsXG59IGZyb20gJy4uLy4uL2NvcmUnO1xuXG4vLyNlbmRyZWdpb25cblxuLyoqXG4gKiBUaGUgb3B0aW9ucyB0byBjdXN0b21pemUgdGhlIHtAbGluayBBbGJBZGFwdGVyfVxuICpcbiAqIEBicmVhZGNydW1iIEFkYXB0ZXJzIC8gQVdTIC8gQWxiQWRhcHRlclxuICogQHB1YmxpY1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEFsYkFkYXB0ZXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIFN0cmlwIGJhc2UgcGF0aCBmb3IgY3VzdG9tIGRvbWFpbnNcbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSAnJ1xuICAgKi9cbiAgc3RyaXBCYXNlUGF0aD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGUgYWRhcHRlciB0byBoYW5kbGUgcmVxdWVzdHMgZnJvbSBBV1MgQUxCXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHN0cmlwQmFzZVBhdGggPSAnL2FueS9jdXN0b20vYmFzZS9wYXRoJzsgLy8gZGVmYXVsdCAnJ1xuICogY29uc3QgYWRhcHRlciA9IG5ldyBBbGJBZGFwdGVyKHsgc3RyaXBCYXNlUGF0aCB9KTtcbiAqIGBgYFxuICpcbiAqIHtAbGluayBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9zZXJ2aWNlcy1hbGIuaHRtbCB8IEV2ZW50IFJlZmVyZW5jZX1cbiAqXG4gKiBAYnJlYWRjcnVtYiBBZGFwdGVycyAvIEFXUyAvIEFsYkFkYXB0ZXJcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNsYXNzIEFsYkFkYXB0ZXJcbiAgaW1wbGVtZW50cyBBZGFwdGVyQ29udHJhY3Q8QUxCRXZlbnQsIENvbnRleHQsIEFMQlJlc3VsdD5cbntcbiAgLy8jcmVnaW9uIENvbnN0cnVjdG9yXG5cbiAgLyoqXG4gICAqIERlZmF1bHQgY29uc3RydWN0b3JcbiAgICpcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyB0byBjdXN0b21pemUgdGhlIHtAbGluayBBbGJBZGFwdGVyfVxuICAgKi9cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHJlYWRvbmx5IG9wdGlvbnM/OiBBbGJBZGFwdGVyT3B0aW9ucykge1xuICAgIHRoaXMuc3RyaXBQYXRoRm4gPSBidWlsZFN0cmlwQmFzZVBhdGgodGhpcy5vcHRpb25zPy5zdHJpcEJhc2VQYXRoKTtcbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBQcm90ZWN0ZWQgUHJvcGVydGllc1xuXG4gIC8qKlxuICAgKiBTdHJpcCBiYXNlIHBhdGggZnVuY3Rpb25cbiAgICovXG4gIHByb3RlY3RlZCBzdHJpcFBhdGhGbjogU3RyaXBCYXNlUGF0aEZuO1xuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBQdWJsaWMgTWV0aG9kc1xuXG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2N9XG4gICAqL1xuICBwdWJsaWMgZ2V0QWRhcHRlck5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gQWxiQWRhcHRlci5uYW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIHtAaW5oZXJpdERvY31cbiAgICovXG4gIHB1YmxpYyBjYW5IYW5kbGUoZXZlbnQ6IHVua25vd24pOiBldmVudCBpcyBBTEJFdmVudCB7XG4gICAgY29uc3QgYWxiRXZlbnQgPSBldmVudCBhcyBQYXJ0aWFsPEFMQkV2ZW50PjtcblxuICAgIHJldHVybiAhIShhbGJFdmVudD8ucmVxdWVzdENvbnRleHQgJiYgYWxiRXZlbnQucmVxdWVzdENvbnRleHQuZWxiKTtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2N9XG4gICAqL1xuICBwdWJsaWMgZ2V0UmVxdWVzdChldmVudDogQUxCRXZlbnQpOiBBZGFwdGVyUmVxdWVzdCB7XG4gICAgY29uc3QgbWV0aG9kID0gZXZlbnQuaHR0cE1ldGhvZDtcbiAgICBjb25zdCBwYXRoID0gdGhpcy5nZXRQYXRoRnJvbUV2ZW50KGV2ZW50KTtcblxuICAgIGNvbnN0IGhlYWRlcnMgPSBldmVudC5tdWx0aVZhbHVlSGVhZGVyc1xuICAgICAgPyBnZXRGbGF0dGVuZWRIZWFkZXJzTWFwKGV2ZW50Lm11bHRpVmFsdWVIZWFkZXJzLCAnLCcsIHRydWUpXG4gICAgICA6IGV2ZW50LmhlYWRlcnMhO1xuXG4gICAgbGV0IGJvZHk6IEJ1ZmZlciB8IHVuZGVmaW5lZDtcblxuICAgIGlmIChldmVudC5ib2R5KSB7XG4gICAgICBjb25zdCBbYnVmZmVyQm9keSwgY29udGVudExlbmd0aF0gPSBnZXRFdmVudEJvZHlBc0J1ZmZlcihcbiAgICAgICAgZXZlbnQuYm9keSxcbiAgICAgICAgZXZlbnQuaXNCYXNlNjRFbmNvZGVkLFxuICAgICAgKTtcblxuICAgICAgYm9keSA9IGJ1ZmZlckJvZHk7XG4gICAgICBoZWFkZXJzWydjb250ZW50LWxlbmd0aCddID0gU3RyaW5nKGNvbnRlbnRMZW5ndGgpO1xuICAgIH1cblxuICAgIGxldCByZW1vdGVBZGRyZXNzID0gJyc7XG5cbiAgICAvLyByZWY6IGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9lbGFzdGljbG9hZGJhbGFuY2luZy9sYXRlc3QvYXBwbGljYXRpb24veC1mb3J3YXJkZWQtaGVhZGVycy5odG1sI3gtZm9yd2FyZGVkLWZvclxuICAgIGlmIChoZWFkZXJzWyd4LWZvcndhcmRlZC1mb3InXSkgcmVtb3RlQWRkcmVzcyA9IGhlYWRlcnNbJ3gtZm9yd2FyZGVkLWZvciddO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIG1ldGhvZCxcbiAgICAgIGhlYWRlcnMsXG4gICAgICBib2R5LFxuICAgICAgcmVtb3RlQWRkcmVzcyxcbiAgICAgIHBhdGgsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2N9XG4gICAqL1xuICBwdWJsaWMgZ2V0UmVzcG9uc2Uoe1xuICAgIGV2ZW50LFxuICAgIGhlYWRlcnM6IHJlc3BvbnNlSGVhZGVycyxcbiAgICBib2R5LFxuICAgIGlzQmFzZTY0RW5jb2RlZCxcbiAgICBzdGF0dXNDb2RlLFxuICB9OiBHZXRSZXNwb25zZUFkYXB0ZXJQcm9wczxBTEJFdmVudD4pOiBBTEJSZXN1bHQge1xuICAgIGNvbnN0IG11bHRpVmFsdWVIZWFkZXJzID0gIWV2ZW50LmhlYWRlcnNcbiAgICAgID8gZ2V0TXVsdGlWYWx1ZUhlYWRlcnNNYXAocmVzcG9uc2VIZWFkZXJzKVxuICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICBjb25zdCBoZWFkZXJzID0gZXZlbnQuaGVhZGVyc1xuICAgICAgPyBnZXRGbGF0dGVuZWRIZWFkZXJzTWFwKHJlc3BvbnNlSGVhZGVycylcbiAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgaWYgKGhlYWRlcnMgJiYgaGVhZGVyc1sndHJhbnNmZXItZW5jb2RpbmcnXSA9PT0gJ2NodW5rZWQnKVxuICAgICAgZGVsZXRlIGhlYWRlcnNbJ3RyYW5zZmVyLWVuY29kaW5nJ107XG5cbiAgICBpZiAoXG4gICAgICBtdWx0aVZhbHVlSGVhZGVycyAmJlxuICAgICAgbXVsdGlWYWx1ZUhlYWRlcnNbJ3RyYW5zZmVyLWVuY29kaW5nJ10/LmluY2x1ZGVzKCdjaHVua2VkJylcbiAgICApXG4gICAgICBkZWxldGUgbXVsdGlWYWx1ZUhlYWRlcnNbJ3RyYW5zZmVyLWVuY29kaW5nJ107XG5cbiAgICByZXR1cm4ge1xuICAgICAgc3RhdHVzQ29kZSxcbiAgICAgIGJvZHksXG4gICAgICBoZWFkZXJzLFxuICAgICAgbXVsdGlWYWx1ZUhlYWRlcnMsXG4gICAgICBpc0Jhc2U2NEVuY29kZWQsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2N9XG4gICAqL1xuICBwdWJsaWMgb25FcnJvcldoaWxlRm9yd2FyZGluZyh7XG4gICAgZXJyb3IsXG4gICAgZGVsZWdhdGVkUmVzb2x2ZXIsXG4gICAgcmVzcG9uZFdpdGhFcnJvcnMsXG4gICAgZXZlbnQsXG4gICAgbG9nLFxuICB9OiBPbkVycm9yUHJvcHM8QUxCRXZlbnQsIEFMQlJlc3VsdD4pOiB2b2lkIHtcbiAgICBjb25zdCBib2R5ID0gcmVzcG9uZFdpdGhFcnJvcnMgPyBlcnJvci5zdGFjayB8fCAnJyA6ICcnO1xuICAgIGNvbnN0IGVycm9yUmVzcG9uc2UgPSB0aGlzLmdldFJlc3BvbnNlKHtcbiAgICAgIGV2ZW50LFxuICAgICAgc3RhdHVzQ29kZTogNTAwLFxuICAgICAgYm9keSxcbiAgICAgIGhlYWRlcnM6IHt9LFxuICAgICAgaXNCYXNlNjRFbmNvZGVkOiBmYWxzZSxcbiAgICAgIGxvZyxcbiAgICB9KTtcblxuICAgIGRlbGVnYXRlZFJlc29sdmVyLnN1Y2NlZWQoZXJyb3JSZXNwb25zZSk7XG4gIH1cblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gUHJvdGVjdGVkIE1ldGhvZHNcblxuICAvKipcbiAgICogR2V0IHBhdGggZnJvbSBldmVudCB3aXRoIHF1ZXJ5IHN0cmluZ3NcbiAgICpcbiAgICogQHBhcmFtIGV2ZW50IC0gVGhlIGV2ZW50IHNlbnQgYnkgc2VydmVybGVzc1xuICAgKi9cbiAgcHJvdGVjdGVkIGdldFBhdGhGcm9tRXZlbnQoZXZlbnQ6IEFMQkV2ZW50KTogc3RyaW5nIHtcbiAgICBjb25zdCBwYXRoID0gdGhpcy5zdHJpcFBhdGhGbihldmVudC5wYXRoKTtcblxuICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0gZXZlbnQuaGVhZGVyc1xuICAgICAgPyBldmVudC5xdWVyeVN0cmluZ1BhcmFtZXRlcnNcbiAgICAgIDogZXZlbnQubXVsdGlWYWx1ZVF1ZXJ5U3RyaW5nUGFyYW1ldGVycztcblxuICAgIHJldHVybiBnZXRQYXRoV2l0aFF1ZXJ5U3RyaW5nUGFyYW1zKHBhdGgsIHF1ZXJ5UGFyYW1zIHx8IHt9KTtcbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxufVxuIiwgIi8vI3JlZ2lvbiBJbXBvcnRzXG5cbmltcG9ydCB0eXBlIHsgQVBJR2F0ZXdheVByb3h5UmVzdWx0LCBDb250ZXh0IH0gZnJvbSAnYXdzLWxhbWJkYSc7XG5pbXBvcnQgdHlwZSB7IEFQSUdhdGV3YXlQcm94eUV2ZW50IH0gZnJvbSAnYXdzLWxhbWJkYS90cmlnZ2VyL2FwaS1nYXRld2F5LXByb3h5JztcbmltcG9ydCB0eXBlIHtcbiAgQWRhcHRlckNvbnRyYWN0LFxuICBBZGFwdGVyUmVxdWVzdCxcbiAgR2V0UmVzcG9uc2VBZGFwdGVyUHJvcHMsXG4gIE9uRXJyb3JQcm9wcyxcbn0gZnJvbSAnLi4vLi4vY29udHJhY3RzJztcbmltcG9ydCB7IGtleXNUb0xvd2VyY2FzZSB9IGZyb20gJy4uLy4uL2NvcmUnO1xuaW1wb3J0IHtcbiAgdHlwZSBTdHJpcEJhc2VQYXRoRm4sXG4gIGJ1aWxkU3RyaXBCYXNlUGF0aCxcbiAgZ2V0RGVmYXVsdElmVW5kZWZpbmVkLFxuICBnZXRFdmVudEJvZHlBc0J1ZmZlcixcbiAgZ2V0TXVsdGlWYWx1ZUhlYWRlcnNNYXAsXG4gIGdldFBhdGhXaXRoUXVlcnlTdHJpbmdQYXJhbXMsXG59IGZyb20gJy4uLy4uL2NvcmUnO1xuXG4vLyNlbmRyZWdpb25cblxuLyoqXG4gKiBUaGUgb3B0aW9ucyB0byBjdXN0b21pemUgdGhlIHtAbGluayBBcGlHYXRld2F5VjFBZGFwdGVyfVxuICpcbiAqIEBicmVhZGNydW1iIEFkYXB0ZXJzIC8gQVdTIC8gQXBpR2F0ZXdheVYxQWRhcHRlclxuICogQHB1YmxpY1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEFwaUdhdGV3YXlWMU9wdGlvbnMge1xuICAvKipcbiAgICogU3RyaXAgYmFzZSBwYXRoIGZvciBjdXN0b20gZG9tYWluc1xuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlICcnXG4gICAqL1xuICBzdHJpcEJhc2VQYXRoPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaHJvdyBhbiBleGNlcHRpb24gd2hlbiB5b3Ugc2VuZCB0aGUgYHRyYW5zZmVyLWVuY29kaW5nPWNodW5rZWRgLCBjdXJyZW50bHksIEFQSSBHYXRld2F5IGRvZXNuJ3Qgc3VwcG9ydCBjaHVua2VkIHRyYW5zZmVyLlxuICAgKiBJZiB0aGlzIGlzIHNldCB0byBgZmFsc2VgLCB3ZSB3aWxsIHJlbW92ZSB0aGUgYHRyYW5zZmVyLWVuY29kaW5nYCBoZWFkZXIgZnJvbSB0aGUgcmVzcG9uc2UgYW5kIGJ1ZmZlciB0aGUgcmVzcG9uc2UgYm9keVxuICAgKiB3aGlsZSB3ZSByZW1vdmUgdGhlIHNwZWNpYWwgY2hhcmFjdGVycyBpbnNlcnRlZCBieSB0aGUgY2h1bmtlZCBlbmNvZGluZy5cbiAgICpcbiAgICogQHJlbWFya3MgVG8gbGVhcm4gbW9yZSBodHRwczovL2dpdGh1Yi5jb20vSDRhZC9zZXJ2ZXJsZXNzLWFkYXB0ZXIvaXNzdWVzLzE2NVxuICAgKiBAZGVmYXVsdFZhbHVlIHRydWVcbiAgICovXG4gIHRocm93T25DaHVua2VkVHJhbnNmZXJFbmNvZGluZz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEVtdWxhdGVzIHRoZSBiZWhhdmlvciBvZiBOb2RlLmpzIGBodHRwYCBtb2R1bGUgYnkgZW5zdXJpbmcgYWxsIHJlcXVlc3QgaGVhZGVycyBhcmUgbG93ZXJjYXNlLlxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIGZhbHNlXG4gICAqL1xuICBsb3dlcmNhc2VSZXF1ZXN0SGVhZGVycz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogVGhlIGFkYXB0ZXIgdG8gaGFuZGxlIHJlcXVlc3RzIGZyb20gQVdTIEFwaSBHYXRld2F5IFYxXG4gKlxuICogQXMgcGVyIHtAbGluayBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYXBpZ2F0ZXdheS9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvYXBpLWdhdGV3YXkta25vd24taXNzdWVzLmh0bWwgfCBrbm93IGlzc3Vlc30sIHdlIHRocm93IGFuIGV4Y2VwdGlvbiB3aGVuIHlvdSBzZW5kIHRoZSBgdHJhbnNmZXItZW5jb2Rpbmc9Y2h1bmtlZGAsIGN1cnJlbnRseSwgQVBJIEdhdGV3YXkgZG9lc24ndCBzdXBwb3J0IGNodW5rZWQgdHJhbnNmZXIuXG4gKlxuICogQHJlbWFya3MgVGhpcyBhZGFwdGVyIGlzIG5vdCBmdWxseSBjb21wYXRpYmxlIHdpdGggXFxAdmVuZGlhL3NlcnZlcmxlc3MtZXhwcmVzcywgb24gXFxAdmVuZGlhIHRoZXkgZmlsdGVyIGB0cmFuc2Zlci1lbmNvZGluZz1jaHVua2VkYCBidXQgd2UgdGhyb3cgYW4gZXhjZXB0aW9uLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBzdHJpcEJhc2VQYXRoID0gJy9hbnkvY3VzdG9tL2Jhc2UvcGF0aCc7IC8vIGRlZmF1bHQgJydcbiAqIGNvbnN0IGFkYXB0ZXIgPSBuZXcgQXBpR2F0ZXdheVYxQWRhcHRlcih7IHN0cmlwQmFzZVBhdGggfSk7XG4gKiBgYGBcbiAqXG4gKiB7QGxpbmsgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FwaWdhdGV3YXkvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL2h0dHAtYXBpLWRldmVsb3AtaW50ZWdyYXRpb25zLWxhbWJkYS5odG1sIHwgRXZlbnQgUmVmZXJlbmNlfVxuICpcbiAqIEBicmVhZGNydW1iIEFkYXB0ZXJzIC8gQVdTIC8gQXBpR2F0ZXdheVYxQWRhcHRlclxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY2xhc3MgQXBpR2F0ZXdheVYxQWRhcHRlclxuICBpbXBsZW1lbnRzXG4gICAgQWRhcHRlckNvbnRyYWN0PEFQSUdhdGV3YXlQcm94eUV2ZW50LCBDb250ZXh0LCBBUElHYXRld2F5UHJveHlSZXN1bHQ+XG57XG4gIC8vI3JlZ2lvbiBDb25zdHJ1Y3RvclxuXG4gIC8qKlxuICAgKiBEZWZhdWx0IGNvbnN0cnVjdG9yXG4gICAqXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgdG8gY3VzdG9taXplIHRoZSB7QGxpbmsgQXBpR2F0ZXdheVYxQWRhcHRlcn1cbiAgICovXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCByZWFkb25seSBvcHRpb25zPzogQXBpR2F0ZXdheVYxT3B0aW9ucykge1xuICAgIHRoaXMuc3RyaXBQYXRoRm4gPSBidWlsZFN0cmlwQmFzZVBhdGgodGhpcy5vcHRpb25zPy5zdHJpcEJhc2VQYXRoKTtcbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBQcm90ZWN0ZWQgUHJvcGVydGllc1xuXG4gIC8qKlxuICAgKiBTdHJpcCBiYXNlIHBhdGggZnVuY3Rpb25cbiAgICovXG4gIHByb3RlY3RlZCBzdHJpcFBhdGhGbjogU3RyaXBCYXNlUGF0aEZuO1xuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBQdWJsaWMgTWV0aG9kc1xuXG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2N9XG4gICAqL1xuICBwdWJsaWMgZ2V0QWRhcHRlck5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gQXBpR2F0ZXdheVYxQWRhcHRlci5uYW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIHtAaW5oZXJpdERvY31cbiAgICovXG4gIHB1YmxpYyBjYW5IYW5kbGUoZXZlbnQ6IHVua25vd24pOiBldmVudCBpcyBBUElHYXRld2F5UHJveHlFdmVudCB7XG4gICAgY29uc3QgcGFydGlhbEV2ZW50VjEgPSBldmVudCBhcyBQYXJ0aWFsPEFQSUdhdGV3YXlQcm94eUV2ZW50PiAmIHtcbiAgICAgIHZlcnNpb24/OiAnMi4wJztcbiAgICB9O1xuXG4gICAgcmV0dXJuICEhKFxuICAgICAgcGFydGlhbEV2ZW50VjE/LnJlcXVlc3RDb250ZXh0ICYmXG4gICAgICBwYXJ0aWFsRXZlbnRWMS52ZXJzaW9uICE9PSAnMi4wJyAmJlxuICAgICAgcGFydGlhbEV2ZW50VjEuaGVhZGVycyAmJlxuICAgICAgcGFydGlhbEV2ZW50VjEubXVsdGlWYWx1ZUhlYWRlcnMgJiZcbiAgICAgICgocGFydGlhbEV2ZW50VjEucXVlcnlTdHJpbmdQYXJhbWV0ZXJzID09PSBudWxsICYmXG4gICAgICAgIHBhcnRpYWxFdmVudFYxLm11bHRpVmFsdWVRdWVyeVN0cmluZ1BhcmFtZXRlcnMgPT09IG51bGwpIHx8XG4gICAgICAgIChwYXJ0aWFsRXZlbnRWMS5xdWVyeVN0cmluZ1BhcmFtZXRlcnMgJiZcbiAgICAgICAgICBwYXJ0aWFsRXZlbnRWMS5tdWx0aVZhbHVlUXVlcnlTdHJpbmdQYXJhbWV0ZXJzKSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIHtAaW5oZXJpdERvY31cbiAgICovXG4gIHB1YmxpYyBnZXRSZXF1ZXN0KGV2ZW50OiBBUElHYXRld2F5UHJveHlFdmVudCk6IEFkYXB0ZXJSZXF1ZXN0IHtcbiAgICBjb25zdCBtZXRob2QgPSBldmVudC5odHRwTWV0aG9kO1xuICAgIGNvbnN0IGhlYWRlcnMgPSB0aGlzLm9wdGlvbnM/Lmxvd2VyY2FzZVJlcXVlc3RIZWFkZXJzXG4gICAgICA/IGtleXNUb0xvd2VyY2FzZShldmVudC5oZWFkZXJzKVxuICAgICAgOiB7IC4uLmV2ZW50LmhlYWRlcnMgfTtcblxuICAgIGZvciAoY29uc3QgbXVsdGlWYWx1ZUhlYWRlcktleSBvZiBPYmplY3Qua2V5cyhcbiAgICAgIGV2ZW50Lm11bHRpVmFsdWVIZWFkZXJzIHx8IHt9LFxuICAgICkpIHtcbiAgICAgIGNvbnN0IGhlYWRlclZhbHVlID0gZXZlbnQubXVsdGlWYWx1ZUhlYWRlcnNbbXVsdGlWYWx1ZUhlYWRlcktleV07XG5cbiAgICAgIC8vIGV2ZW50LmhlYWRlcnMgYnkgZGVmYXVsdCBvbmx5IHN0aWNrIHdpdGggZmlyc3QgdmFsdWUgaWYgdGhleSBzZWUgbXVsdGlwbGUgaGVhZGVyc1xuICAgICAgLy8gdGhlIG90aGVyIHZhbHVlcyB3aWxsIG9ubHkgYXBwZWFyIG9uIG11bHRpVmFsdWVIZWFkZXJLZXksIGluIHRoaXMgY2FzZVxuICAgICAgLy8gd2UgbG9vayBmb3IgaGVhZGVycyB3aXRoIG1vcmUgdGhhbiAxIGxlbmd0aCB3aGljaCBpcyB0aGUgd3JvbmcgdmFsdWVzIG9uIGV2ZW50LmhlYWRlcnNcbiAgICAgIC8vIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hcGlnYXRld2F5L2xhdGVzdC9kZXZlbG9wZXJndWlkZS9odHRwLWFwaS1kZXZlbG9wLWludGVncmF0aW9ucy1sYW1iZGEuaHRtbFxuICAgICAgaWYgKCFoZWFkZXJWYWx1ZSB8fCBoZWFkZXJWYWx1ZT8ubGVuZ3RoIDw9IDEpIGNvbnRpbnVlO1xuXG4gICAgICBoZWFkZXJzW211bHRpVmFsdWVIZWFkZXJLZXldID0gaGVhZGVyVmFsdWUuam9pbignLCcpO1xuICAgIH1cblxuICAgIGNvbnN0IHBhdGggPSB0aGlzLmdldFBhdGhGcm9tRXZlbnQoZXZlbnQpO1xuXG4gICAgbGV0IGJvZHk6IEJ1ZmZlciB8IHVuZGVmaW5lZDtcblxuICAgIGlmIChldmVudC5ib2R5KSB7XG4gICAgICBjb25zdCBbYnVmZmVyQm9keSwgY29udGVudExlbmd0aF0gPSBnZXRFdmVudEJvZHlBc0J1ZmZlcihcbiAgICAgICAgZXZlbnQuYm9keSxcbiAgICAgICAgZXZlbnQuaXNCYXNlNjRFbmNvZGVkLFxuICAgICAgKTtcblxuICAgICAgYm9keSA9IGJ1ZmZlckJvZHk7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3Jlc3RyaWN0LXBsdXMtb3BlcmFuZHNcbiAgICAgIGhlYWRlcnNbJ2NvbnRlbnQtbGVuZ3RoJ10gPSBjb250ZW50TGVuZ3RoICsgJyc7XG4gICAgfVxuXG4gICAgY29uc3QgcmVtb3RlQWRkcmVzcyA9IGV2ZW50LnJlcXVlc3RDb250ZXh0LmlkZW50aXR5LnNvdXJjZUlwO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIG1ldGhvZCxcbiAgICAgIGhlYWRlcnMsXG4gICAgICBib2R5LFxuICAgICAgcmVtb3RlQWRkcmVzcyxcbiAgICAgIHBhdGgsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2N9XG4gICAqL1xuICBwdWJsaWMgZ2V0UmVzcG9uc2Uoe1xuICAgIGhlYWRlcnM6IHJlc3BvbnNlSGVhZGVycyxcbiAgICBib2R5LFxuICAgIGlzQmFzZTY0RW5jb2RlZCxcbiAgICBzdGF0dXNDb2RlLFxuICAgIHJlc3BvbnNlLFxuICB9OiBHZXRSZXNwb25zZUFkYXB0ZXJQcm9wczxBUElHYXRld2F5UHJveHlFdmVudD4pOiBBUElHYXRld2F5UHJveHlSZXN1bHQge1xuICAgIGNvbnN0IG11bHRpVmFsdWVIZWFkZXJzID0gZ2V0TXVsdGlWYWx1ZUhlYWRlcnNNYXAocmVzcG9uc2VIZWFkZXJzKTtcblxuICAgIGNvbnN0IHNob3VsZFRocm93T25DaHVua2VkVHJhbnNmZXJFbmNvZGluZyA9IGdldERlZmF1bHRJZlVuZGVmaW5lZChcbiAgICAgIHRoaXMub3B0aW9ucz8udGhyb3dPbkNodW5rZWRUcmFuc2ZlckVuY29kaW5nLFxuICAgICAgdHJ1ZSxcbiAgICApO1xuICAgIGNvbnN0IHRyYW5zZmVyRW5jb2RpbmdIZWFkZXIgPSBtdWx0aVZhbHVlSGVhZGVyc1sndHJhbnNmZXItZW5jb2RpbmcnXTtcbiAgICBjb25zdCBoYXNUcmFuc2ZlckVuY29kaW5nQ2h1bmtlZCA9IHRyYW5zZmVyRW5jb2RpbmdIZWFkZXI/LnNvbWUodmFsdWUgPT5cbiAgICAgIHZhbHVlLmluY2x1ZGVzKCdjaHVua2VkJyksXG4gICAgKTtcblxuICAgIGlmIChoYXNUcmFuc2ZlckVuY29kaW5nQ2h1bmtlZCB8fCByZXNwb25zZT8uY2h1bmtlZEVuY29kaW5nKSB7XG4gICAgICBpZiAoc2hvdWxkVGhyb3dPbkNodW5rZWRUcmFuc2ZlckVuY29kaW5nKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAnY2h1bmtlZCBlbmNvZGluZyBpbiBoZWFkZXJzIGlzIG5vdCBzdXBwb3J0ZWQgYnkgQVBJIEdhdGV3YXkgVjEnLFxuICAgICAgICApO1xuICAgICAgfSBlbHNlIGRlbGV0ZSBtdWx0aVZhbHVlSGVhZGVyc1sndHJhbnNmZXItZW5jb2RpbmcnXTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgc3RhdHVzQ29kZSxcbiAgICAgIGJvZHksXG4gICAgICBtdWx0aVZhbHVlSGVhZGVycyxcbiAgICAgIGlzQmFzZTY0RW5jb2RlZCxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIHtAaW5oZXJpdERvY31cbiAgICovXG4gIHB1YmxpYyBvbkVycm9yV2hpbGVGb3J3YXJkaW5nKHtcbiAgICBlcnJvcixcbiAgICBkZWxlZ2F0ZWRSZXNvbHZlcixcbiAgICByZXNwb25kV2l0aEVycm9ycyxcbiAgICBldmVudCxcbiAgICBsb2csXG4gIH06IE9uRXJyb3JQcm9wczxBUElHYXRld2F5UHJveHlFdmVudCwgQVBJR2F0ZXdheVByb3h5UmVzdWx0Pik6IHZvaWQge1xuICAgIGNvbnN0IGJvZHkgPSByZXNwb25kV2l0aEVycm9ycyA/IGVycm9yLnN0YWNrIDogJyc7XG4gICAgY29uc3QgZXJyb3JSZXNwb25zZSA9IHRoaXMuZ2V0UmVzcG9uc2Uoe1xuICAgICAgZXZlbnQsXG4gICAgICBzdGF0dXNDb2RlOiA1MDAsXG4gICAgICBib2R5OiBib2R5IHx8ICcnLFxuICAgICAgaGVhZGVyczoge30sXG4gICAgICBpc0Jhc2U2NEVuY29kZWQ6IGZhbHNlLFxuICAgICAgbG9nLFxuICAgIH0pO1xuXG4gICAgZGVsZWdhdGVkUmVzb2x2ZXIuc3VjY2VlZChlcnJvclJlc3BvbnNlKTtcbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBQcm90ZWN0ZWQgTWV0aG9kc1xuXG4gIC8qKlxuICAgKiBHZXQgcGF0aCBmcm9tIGV2ZW50IHdpdGggcXVlcnkgc3RyaW5nc1xuICAgKlxuICAgKiBAcGFyYW0gZXZlbnQgLSBUaGUgZXZlbnQgc2VudCBieSBzZXJ2ZXJsZXNzXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0UGF0aEZyb21FdmVudChldmVudDogQVBJR2F0ZXdheVByb3h5RXZlbnQpOiBzdHJpbmcge1xuICAgIGNvbnN0IHBhdGggPSB0aGlzLnN0cmlwUGF0aEZuKGV2ZW50LnBhdGgpO1xuICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0gZXZlbnQubXVsdGlWYWx1ZVF1ZXJ5U3RyaW5nUGFyYW1ldGVycyB8fCB7fTtcblxuICAgIGlmIChldmVudC5xdWVyeVN0cmluZ1BhcmFtZXRlcnMpIHtcbiAgICAgIGZvciAoY29uc3QgcXVlcnlTdHJpbmdLZXkgb2YgT2JqZWN0LmtleXMoZXZlbnQucXVlcnlTdHJpbmdQYXJhbWV0ZXJzKSkge1xuICAgICAgICBjb25zdCBxdWVyeVN0cmluZ1ZhbHVlID0gZXZlbnQucXVlcnlTdHJpbmdQYXJhbWV0ZXJzW3F1ZXJ5U3RyaW5nS2V5XTtcblxuICAgICAgICBpZiAocXVlcnlTdHJpbmdWYWx1ZSA9PT0gdW5kZWZpbmVkKSBjb250aW51ZTtcblxuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkocXVlcnlQYXJhbXNbcXVlcnlTdHJpbmdLZXldKSlcbiAgICAgICAgICBxdWVyeVBhcmFtc1txdWVyeVN0cmluZ0tleV0gPSBbXTtcblxuICAgICAgICBpZiAocXVlcnlQYXJhbXNbcXVlcnlTdHJpbmdLZXldIS5pbmNsdWRlcyhxdWVyeVN0cmluZ1ZhbHVlKSkgY29udGludWU7XG5cbiAgICAgICAgcXVlcnlQYXJhbXNbcXVlcnlTdHJpbmdLZXldIS5wdXNoKHF1ZXJ5U3RyaW5nVmFsdWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBnZXRQYXRoV2l0aFF1ZXJ5U3RyaW5nUGFyYW1zKHBhdGgsIHF1ZXJ5UGFyYW1zKTtcbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxufVxuIiwgIi8vI3JlZ2lvbiBJbXBvcnRzXG5cbmltcG9ydCB0eXBlIHsgQVBJR2F0ZXdheVByb3h5RXZlbnRWMiwgQ29udGV4dCB9IGZyb20gJ2F3cy1sYW1iZGEnO1xuaW1wb3J0IHR5cGUgeyBBUElHYXRld2F5UHJveHlTdHJ1Y3R1cmVkUmVzdWx0VjIgfSBmcm9tICdhd3MtbGFtYmRhL3RyaWdnZXIvYXBpLWdhdGV3YXktcHJveHknO1xuaW1wb3J0IHR5cGUge1xuICBBZGFwdGVyQ29udHJhY3QsXG4gIEFkYXB0ZXJSZXF1ZXN0LFxuICBHZXRSZXNwb25zZUFkYXB0ZXJQcm9wcyxcbiAgT25FcnJvclByb3BzLFxufSBmcm9tICcuLi8uLi9jb250cmFjdHMnO1xuaW1wb3J0IHtcbiAgdHlwZSBTdHJpcEJhc2VQYXRoRm4sXG4gIGJ1aWxkU3RyaXBCYXNlUGF0aCxcbiAgZ2V0RGVmYXVsdElmVW5kZWZpbmVkLFxuICBnZXRFdmVudEJvZHlBc0J1ZmZlcixcbiAgZ2V0RmxhdHRlbmVkSGVhZGVyc01hcEFuZENvb2tpZXMsXG4gIGdldFBhdGhXaXRoUXVlcnlTdHJpbmdQYXJhbXMsXG59IGZyb20gJy4uLy4uL2NvcmUnO1xuXG4vLyNlbmRyZWdpb25cblxuLyoqXG4gKiBUaGUgb3B0aW9ucyB0byBjdXN0b21pemUgdGhlIHtAbGluayBBcGlHYXRld2F5VjJBZGFwdGVyfVxuICpcbiAqIEBicmVhZGNydW1iIEFkYXB0ZXJzIC8gQVdTIC8gQXBpR2F0ZXdheVYyQWRhcHRlclxuICogQHB1YmxpY1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEFwaUdhdGV3YXlWMk9wdGlvbnMge1xuICAvKipcbiAgICogU3RyaXAgYmFzZSBwYXRoIGZvciBjdXN0b20gZG9tYWluc1xuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlICcnXG4gICAqL1xuICBzdHJpcEJhc2VQYXRoPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaHJvdyBhbiBleGNlcHRpb24gd2hlbiB5b3Ugc2VuZCB0aGUgYHRyYW5zZmVyLWVuY29kaW5nPWNodW5rZWRgLCBjdXJyZW50bHksIEFQSSBHYXRld2F5IGRvZXNuJ3Qgc3VwcG9ydCBjaHVua2VkIHRyYW5zZmVyLlxuICAgKiBJZiB0aGlzIGlzIHNldCB0byBgZmFsc2VgLCB3ZSB3aWxsIHJlbW92ZSB0aGUgYHRyYW5zZmVyLWVuY29kaW5nYCBoZWFkZXIgZnJvbSB0aGUgcmVzcG9uc2UgYW5kIGJ1ZmZlciB0aGUgcmVzcG9uc2UgYm9keVxuICAgKiB3aGlsZSB3ZSByZW1vdmUgdGhlIHNwZWNpYWwgY2hhcmFjdGVycyBpbnNlcnRlZCBieSB0aGUgY2h1bmtlZCBlbmNvZGluZy5cbiAgICpcbiAgICogQHJlbWFya3MgVG8gbGVhcm4gbW9yZSBodHRwczovL2dpdGh1Yi5jb20vSDRhZC9zZXJ2ZXJsZXNzLWFkYXB0ZXIvaXNzdWVzLzE2NVxuICAgKiBAZGVmYXVsdFZhbHVlIHRydWVcbiAgICovXG4gIHRocm93T25DaHVua2VkVHJhbnNmZXJFbmNvZGluZz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogVGhlIGFkYXB0ZXIgdG8gaGFuZGxlIHJlcXVlc3RzIGZyb20gQVdTIEFwaSBHYXRld2F5IFYyXG4gKlxuICogQXMgcGVyIHtAbGluayBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYXBpZ2F0ZXdheS9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvYXBpLWdhdGV3YXkta25vd24taXNzdWVzLmh0bWwgfCBrbm93IGlzc3Vlc30sIHdlIHRocm93IGFuIGV4Y2VwdGlvbiB3aGVuIHlvdSBzZW5kIHRoZSBgdHJhbnNmZXItZW5jb2Rpbmc9Y2h1bmtlZGAuXG4gKiBCdXQsIGlmIHlvdSB1c2UgdGhpcyBhZGFwdGVyIHRvIGFjY2VwdCByZXF1ZXN0cyBmcm9tIEZ1bmN0aW9uIFVSTCwgeW91IGNhbiBhY2NlcHQgdGhlIGB0cmFuc2Zlci1lbmNvZGluZz1jaHVua2VkYCBjaGFuZ2luZyB0aGUgbWV0aG9kIG9mIGludm9jYXRpb24gZnJvbSBgQlVGRkVSRURgIHRvIGBSRVNQT05TRV9TVFJFQU1gLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBzdHJpcEJhc2VQYXRoID0gJy9hbnkvY3VzdG9tL2Jhc2UvcGF0aCc7IC8vIGRlZmF1bHQgJydcbiAqIGNvbnN0IGFkYXB0ZXIgPSBuZXcgQXBpR2F0ZXdheVYyQWRhcHRlcih7IHN0cmlwQmFzZVBhdGggfSk7XG4gKiBgYGBcbiAqXG4gKiB7QGxpbmsgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FwaWdhdGV3YXkvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL2h0dHAtYXBpLWRldmVsb3AtaW50ZWdyYXRpb25zLWxhbWJkYS5odG1sIHwgRXZlbnQgUmVmZXJlbmNlfVxuICpcbiAqIEBicmVhZGNydW1iIEFkYXB0ZXJzIC8gQVdTIC8gQXBpR2F0ZXdheVYyQWRhcHRlclxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY2xhc3MgQXBpR2F0ZXdheVYyQWRhcHRlclxuICBpbXBsZW1lbnRzXG4gICAgQWRhcHRlckNvbnRyYWN0PFxuICAgICAgQVBJR2F0ZXdheVByb3h5RXZlbnRWMixcbiAgICAgIENvbnRleHQsXG4gICAgICBBUElHYXRld2F5UHJveHlTdHJ1Y3R1cmVkUmVzdWx0VjJcbiAgICA+XG57XG4gIC8vI3JlZ2lvbiBDb25zdHJ1Y3RvclxuXG4gIC8qKlxuICAgKiBEZWZhdWx0IGNvbnN0cnVjdG9yXG4gICAqXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgdG8gY3VzdG9taXplIHRoZSB7QGxpbmsgQXBpR2F0ZXdheVYyQWRhcHRlcn1cbiAgICovXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCByZWFkb25seSBvcHRpb25zPzogQXBpR2F0ZXdheVYyT3B0aW9ucykge1xuICAgIHRoaXMuc3RyaXBQYXRoRm4gPSBidWlsZFN0cmlwQmFzZVBhdGgodGhpcy5vcHRpb25zPy5zdHJpcEJhc2VQYXRoKTtcbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBQcm90ZWN0ZWQgUHJvcGVydGllc1xuXG4gIC8qKlxuICAgKiBTdHJpcCBiYXNlIHBhdGggZnVuY3Rpb25cbiAgICovXG4gIHByb3RlY3RlZCBzdHJpcFBhdGhGbjogU3RyaXBCYXNlUGF0aEZuO1xuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBQdWJsaWMgTWV0aG9kc1xuXG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2N9XG4gICAqL1xuICBwdWJsaWMgZ2V0QWRhcHRlck5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gQXBpR2F0ZXdheVYyQWRhcHRlci5uYW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIHtAaW5oZXJpdERvY31cbiAgICovXG4gIHB1YmxpYyBjYW5IYW5kbGUoZXZlbnQ6IHVua25vd24pOiBldmVudCBpcyBBUElHYXRld2F5UHJveHlFdmVudFYyIHtcbiAgICBjb25zdCBhcGlHYXRld2F5RXZlbnQgPSBldmVudCBhcyBQYXJ0aWFsPEFQSUdhdGV3YXlQcm94eUV2ZW50VjI+ICYge1xuICAgICAgdmVyc2lvbj86IHN0cmluZztcbiAgICB9O1xuXG4gICAgcmV0dXJuICEhKFxuICAgICAgYXBpR2F0ZXdheUV2ZW50Py5yZXF1ZXN0Q29udGV4dCAmJiBhcGlHYXRld2F5RXZlbnQudmVyc2lvbiA9PT0gJzIuMCdcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIHtAaW5oZXJpdERvY31cbiAgICovXG4gIHB1YmxpYyBnZXRSZXF1ZXN0KGV2ZW50OiBBUElHYXRld2F5UHJveHlFdmVudFYyKTogQWRhcHRlclJlcXVlc3Qge1xuICAgIGNvbnN0IG1ldGhvZCA9IGV2ZW50LnJlcXVlc3RDb250ZXh0Lmh0dHAubWV0aG9kO1xuICAgIGNvbnN0IHBhdGggPSB0aGlzLmdldFBhdGhGcm9tRXZlbnQoZXZlbnQpO1xuICAgIC8vIGFjY29yZHMgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FwaWdhdGV3YXkvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL2h0dHAtYXBpLWRldmVsb3AtaW50ZWdyYXRpb25zLWxhbWJkYS5odG1sXG4gICAgLy8gYWxsIGhlYWRlcnMgYXJlIGxvd2VyY2FzZWQgYW5kIGNhbm5vdCBiZSBhcnJheVxuICAgIC8vIHNvIG5vIG5lZWQgdG8gZm9ybWF0LCBqdXN0IGEgc2hhbGxvdyBjb3B5IHdpbGwgd29yayBoZXJlXG4gICAgY29uc3QgaGVhZGVycyA9IHsgLi4uZXZlbnQuaGVhZGVycyB9O1xuXG4gICAgaWYgKGV2ZW50LmNvb2tpZXMpIGhlYWRlcnMuY29va2llID0gZXZlbnQuY29va2llcy5qb2luKCc7ICcpO1xuXG4gICAgbGV0IGJvZHk6IEJ1ZmZlciB8IHVuZGVmaW5lZDtcblxuICAgIGlmIChldmVudC5ib2R5KSB7XG4gICAgICBjb25zdCBbYnVmZmVyQm9keSwgY29udGVudExlbmd0aF0gPSBnZXRFdmVudEJvZHlBc0J1ZmZlcihcbiAgICAgICAgZXZlbnQuYm9keSxcbiAgICAgICAgZXZlbnQuaXNCYXNlNjRFbmNvZGVkLFxuICAgICAgKTtcblxuICAgICAgYm9keSA9IGJ1ZmZlckJvZHk7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3Jlc3RyaWN0LXBsdXMtb3BlcmFuZHNcbiAgICAgIGhlYWRlcnNbJ2NvbnRlbnQtbGVuZ3RoJ10gPSBjb250ZW50TGVuZ3RoICsgJyc7XG4gICAgfVxuXG4gICAgY29uc3QgcmVtb3RlQWRkcmVzcyA9IGV2ZW50LnJlcXVlc3RDb250ZXh0Lmh0dHAuc291cmNlSXA7XG5cbiAgICByZXR1cm4ge1xuICAgICAgbWV0aG9kLFxuICAgICAgaGVhZGVycyxcbiAgICAgIGJvZHksXG4gICAgICByZW1vdGVBZGRyZXNzLFxuICAgICAgcGF0aCxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIHtAaW5oZXJpdERvY31cbiAgICovXG4gIHB1YmxpYyBnZXRSZXNwb25zZSh7XG4gICAgaGVhZGVyczogcmVzcG9uc2VIZWFkZXJzLFxuICAgIGJvZHksXG4gICAgaXNCYXNlNjRFbmNvZGVkLFxuICAgIHN0YXR1c0NvZGUsXG4gICAgcmVzcG9uc2UsXG4gIH06IEdldFJlc3BvbnNlQWRhcHRlclByb3BzPEFQSUdhdGV3YXlQcm94eUV2ZW50VjI+KTogQVBJR2F0ZXdheVByb3h5U3RydWN0dXJlZFJlc3VsdFYyIHtcbiAgICBjb25zdCB7IGNvb2tpZXMsIGhlYWRlcnMgfSA9XG4gICAgICBnZXRGbGF0dGVuZWRIZWFkZXJzTWFwQW5kQ29va2llcyhyZXNwb25zZUhlYWRlcnMpO1xuXG4gICAgY29uc3Qgc2hvdWxkVGhyb3dPbkNodW5rZWRUcmFuc2ZlckVuY29kaW5nID0gZ2V0RGVmYXVsdElmVW5kZWZpbmVkKFxuICAgICAgdGhpcy5vcHRpb25zPy50aHJvd09uQ2h1bmtlZFRyYW5zZmVyRW5jb2RpbmcsXG4gICAgICB0cnVlLFxuICAgICk7XG5cbiAgICBjb25zdCB0cmFuc2ZlckVuY29kaW5nSGVhZGVyOiBzdHJpbmcgfCB1bmRlZmluZWQgPVxuICAgICAgaGVhZGVyc1sndHJhbnNmZXItZW5jb2RpbmcnXTtcblxuICAgIGNvbnN0IGhhc1RyYW5zZmVyRW5jb2RpbmdDaHVua2VkID1cbiAgICAgIHRyYW5zZmVyRW5jb2RpbmdIZWFkZXIgJiYgdHJhbnNmZXJFbmNvZGluZ0hlYWRlci5pbmNsdWRlcygnY2h1bmtlZCcpO1xuXG4gICAgaWYgKGhhc1RyYW5zZmVyRW5jb2RpbmdDaHVua2VkIHx8IHJlc3BvbnNlPy5jaHVua2VkRW5jb2RpbmcpIHtcbiAgICAgIGlmIChzaG91bGRUaHJvd09uQ2h1bmtlZFRyYW5zZmVyRW5jb2RpbmcpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICdjaHVua2VkIGVuY29kaW5nIGluIGhlYWRlcnMgaXMgbm90IHN1cHBvcnRlZCBieSBBUEkgR2F0ZXdheSBWMicsXG4gICAgICAgICk7XG4gICAgICB9IGVsc2UgZGVsZXRlIGhlYWRlcnNbJ3RyYW5zZmVyLWVuY29kaW5nJ107XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIHN0YXR1c0NvZGUsXG4gICAgICBib2R5LFxuICAgICAgaGVhZGVycyxcbiAgICAgIGlzQmFzZTY0RW5jb2RlZCxcbiAgICAgIGNvb2tpZXMsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2N9XG4gICAqL1xuICBwdWJsaWMgb25FcnJvcldoaWxlRm9yd2FyZGluZyh7XG4gICAgZXJyb3IsXG4gICAgZGVsZWdhdGVkUmVzb2x2ZXIsXG4gICAgcmVzcG9uZFdpdGhFcnJvcnMsXG4gICAgZXZlbnQsXG4gICAgbG9nLFxuICB9OiBPbkVycm9yUHJvcHM8XG4gICAgQVBJR2F0ZXdheVByb3h5RXZlbnRWMixcbiAgICBBUElHYXRld2F5UHJveHlTdHJ1Y3R1cmVkUmVzdWx0VjJcbiAgPik6IHZvaWQge1xuICAgIGNvbnN0IGJvZHkgPSByZXNwb25kV2l0aEVycm9ycyA/IGVycm9yLnN0YWNrIDogJyc7XG4gICAgY29uc3QgZXJyb3JSZXNwb25zZSA9IHRoaXMuZ2V0UmVzcG9uc2Uoe1xuICAgICAgZXZlbnQsXG4gICAgICBzdGF0dXNDb2RlOiA1MDAsXG4gICAgICBib2R5OiBib2R5IHx8ICcnLFxuICAgICAgaGVhZGVyczoge30sXG4gICAgICBpc0Jhc2U2NEVuY29kZWQ6IGZhbHNlLFxuICAgICAgbG9nLFxuICAgIH0pO1xuXG4gICAgZGVsZWdhdGVkUmVzb2x2ZXIuc3VjY2VlZChlcnJvclJlc3BvbnNlKTtcbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBQcm90ZWN0ZWQgTWV0aG9kc1xuXG4gIC8qKlxuICAgKiBHZXQgcGF0aCBmcm9tIGV2ZW50IHdpdGggcXVlcnkgc3RyaW5nc1xuICAgKlxuICAgKiBAcGFyYW0gZXZlbnQgLSBUaGUgZXZlbnQgc2VudCBieSBzZXJ2ZXJsZXNzXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0UGF0aEZyb21FdmVudChldmVudDogQVBJR2F0ZXdheVByb3h5RXZlbnRWMik6IHN0cmluZyB7XG4gICAgY29uc3QgcGF0aCA9IHRoaXMuc3RyaXBQYXRoRm4oZXZlbnQucmF3UGF0aCk7XG4gICAgY29uc3QgcXVlcnlQYXJhbXMgPSBldmVudC5yYXdRdWVyeVN0cmluZztcblxuICAgIHJldHVybiBnZXRQYXRoV2l0aFF1ZXJ5U3RyaW5nUGFyYW1zKHBhdGgsIHF1ZXJ5UGFyYW1zIHx8IHt9KTtcbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxufVxuIiwgIi8vI3JlZ2lvbiBJbXBvcnRzXG5cbmltcG9ydCB0eXBlIHsgQ29udGV4dCwgU1FTQmF0Y2hJdGVtRmFpbHVyZSB9IGZyb20gJ2F3cy1sYW1iZGEnO1xuaW1wb3J0IHR5cGUge1xuICBBZGFwdGVyQ29udHJhY3QsXG4gIEFkYXB0ZXJSZXF1ZXN0LFxuICBHZXRSZXNwb25zZUFkYXB0ZXJQcm9wcyxcbiAgT25FcnJvclByb3BzLFxufSBmcm9tICcuLi8uLi8uLi9jb250cmFjdHMnO1xuaW1wb3J0IHtcbiAgRW1wdHlSZXNwb25zZSxcbiAgdHlwZSBJRW1wdHlSZXNwb25zZSxcbiAgZ2V0RXZlbnRCb2R5QXNCdWZmZXIsXG59IGZyb20gJy4uLy4uLy4uL2NvcmUnO1xuXG4vLyNlbmRyZWdpb25cblxuLyoqXG4gKiBUaGUgb3B0aW9ucyB0byBjdXN0b21pemUgdGhlIHtAbGluayBBd3NTaW1wbGVBZGFwdGVyfVxuICpcbiAqIEBicmVhZGNydW1iIEFkYXB0ZXJzIC8gQVdTIC8gQVdTIFNpbXBsZSBBZGFwdGVyXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQVdTU2ltcGxlQWRhcHRlck9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIHBhdGggdGhhdCB3aWxsIGJlIHVzZWQgdG8gY3JlYXRlIGEgcmVxdWVzdCB0byBiZSBmb3J3YXJkZWQgdG8gdGhlIGZyYW1ld29yay5cbiAgICovXG4gIGZvcndhcmRQYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBodHRwIG1ldGhvZCB0aGF0IHdpbGwgYmUgdXNlZCB0byBjcmVhdGUgYSByZXF1ZXN0IHRvIGJlIGZvcndhcmRlZCB0byB0aGUgZnJhbWV3b3JrLlxuICAgKi9cbiAgZm9yd2FyZE1ldGhvZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVdTIFNlcnZpY2UgaG9zdCB0aGF0IHdpbGwgYmUgaW5qZWN0ZWQgaW5zaWRlIGhlYWRlcnMgdG8gZGV2ZWxvcGVyIGJlaW5nIGFibGUgdG8gdmFsaWRhdGUgaWYgcmVxdWVzdCBvcmlnaW5hdGUgZnJvbSB0aGUgbGlicmFyeS5cbiAgICovXG4gIGhvc3Q6IHN0cmluZztcblxuICAvKipcbiAgICogVGVsbHMgaWYgdGhpcyBhZGFwdGVyIHNob3VsZCBzdXBwb3J0IGJhdGNoIGl0ZW0gZmFpbHVyZXMuXG4gICAqL1xuICBiYXRjaD86IHRydWUgfCBmYWxzZTtcbn1cblxuLyoqXG4gKiBUaGUgYmF0Y2ggaXRlbSBmYWlsdXJlIHJlc3BvbnNlIGV4cGVjdGVkIGZyb20gdGhlIEFQSSBzZXJ2ZXJcbiAqXG4gKiBAYnJlYWRjcnVtYiBBZGFwdGVycyAvIEFXUyAvIEFXUyBTaW1wbGUgQWRhcHRlclxuICogQHB1YmxpY1xuICovXG5leHBvcnQgdHlwZSBCYXRjaEl0ZW1GYWlsdXJlUmVzcG9uc2UgPSBTUVNCYXRjaEl0ZW1GYWlsdXJlO1xuXG4vKipcbiAqIFRoZSBwb3NzaWJsZSBvcHRpb25zIG9mIHJlc3BvbnNlIGZvciB7QGxpbmsgQXdzU2ltcGxlQWRhcHRlcn1cbiAqXG4gKiBAYnJlYWRjcnVtYiBBZGFwdGVycyAvIEFXUyAvIEFXUyBTaW1wbGUgQWRhcHRlclxuICogQHB1YmxpY1xuICovXG5leHBvcnQgdHlwZSBBV1NTaW1wbGVBZGFwdGVyUmVzcG9uc2VUeXBlID1cbiAgfCBCYXRjaEl0ZW1GYWlsdXJlUmVzcG9uc2VcbiAgfCBJRW1wdHlSZXNwb25zZTtcblxuLyoqXG4gKiBUaGUgYWJzdHJhY3QgYWRhcHRlciB0byB1c2UgdG8gaW1wbGVtZW50IG90aGVyIHNpbXBsZSBBV1MgYWRhcHRlcnNcbiAqXG4gKiBAYnJlYWRjcnVtYiBBZGFwdGVycyAvIEFXUyAvIEFXUyBTaW1wbGUgQWRhcHRlclxuICogQHB1YmxpY1xuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQXdzU2ltcGxlQWRhcHRlcjxURXZlbnQ+XG4gIGltcGxlbWVudHMgQWRhcHRlckNvbnRyYWN0PFRFdmVudCwgQ29udGV4dCwgQVdTU2ltcGxlQWRhcHRlclJlc3BvbnNlVHlwZT5cbntcbiAgLy8jcmVnaW9uIENvbnN0cnVjdG9yXG5cbiAgLyoqXG4gICAqIERlZmF1bHQgY29uc3RydWN0b3JcbiAgICpcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyB0byBjdXN0b21pemUgdGhlIHtAbGluayBBd3NTaW1wbGVBZGFwdGVyfVxuICAgKi9cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHJlYWRvbmx5IG9wdGlvbnM6IEFXU1NpbXBsZUFkYXB0ZXJPcHRpb25zKSB7fVxuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBQdWJsaWMgTWV0aG9kc1xuXG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2N9XG4gICAqL1xuICBwdWJsaWMgZ2V0QWRhcHRlck5hbWUoKTogc3RyaW5nIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ25vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2N9XG4gICAqL1xuICBwdWJsaWMgY2FuSGFuZGxlKF86IHVua25vd24pOiBfIGlzIFRFdmVudCB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICAvKipcbiAgICoge0Bpbmhlcml0RG9jfVxuICAgKi9cbiAgcHVibGljIGdldFJlcXVlc3QoZXZlbnQ6IFRFdmVudCk6IEFkYXB0ZXJSZXF1ZXN0IHtcbiAgICBjb25zdCBwYXRoID0gdGhpcy5vcHRpb25zLmZvcndhcmRQYXRoO1xuICAgIGNvbnN0IG1ldGhvZCA9IHRoaXMub3B0aW9ucy5mb3J3YXJkTWV0aG9kO1xuXG4gICAgY29uc3QgW2JvZHksIGNvbnRlbnRMZW5ndGhdID0gZ2V0RXZlbnRCb2R5QXNCdWZmZXIoXG4gICAgICBKU09OLnN0cmluZ2lmeShldmVudCksXG4gICAgICBmYWxzZSxcbiAgICApO1xuXG4gICAgY29uc3QgaGVhZGVycyA9IHtcbiAgICAgIGhvc3Q6IHRoaXMub3B0aW9ucy5ob3N0LFxuICAgICAgJ2NvbnRlbnQtdHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICdjb250ZW50LWxlbmd0aCc6IFN0cmluZyhjb250ZW50TGVuZ3RoKSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIG1ldGhvZCxcbiAgICAgIGhlYWRlcnMsXG4gICAgICBib2R5LFxuICAgICAgcGF0aCxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIHtAaW5oZXJpdERvY31cbiAgICovXG4gIHB1YmxpYyBnZXRSZXNwb25zZSh7XG4gICAgYm9keSxcbiAgICBoZWFkZXJzLFxuICAgIGlzQmFzZTY0RW5jb2RlZCxcbiAgICBldmVudCxcbiAgICBzdGF0dXNDb2RlLFxuICB9OiBHZXRSZXNwb25zZUFkYXB0ZXJQcm9wczxURXZlbnQ+KTogQVdTU2ltcGxlQWRhcHRlclJlc3BvbnNlVHlwZSB7XG4gICAgaWYgKHRoaXMuaGFzSW52YWxpZFN0YXR1c0NvZGUoc3RhdHVzQ29kZSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkoeyBib2R5LCBoZWFkZXJzLCBpc0Jhc2U2NEVuY29kZWQsIGV2ZW50LCBzdGF0dXNDb2RlIH0pLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMub3B0aW9ucy5iYXRjaCkgcmV0dXJuIEVtcHR5UmVzcG9uc2U7XG5cbiAgICBpZiAoaXNCYXNlNjRFbmNvZGVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdTRVJWRVJMRVNTX0FEQVBURVI6IFRoZSByZXNwb25zZSBjb3VsZCBub3QgYmUgYmFzZTY0IGVuY29kZWQgd2hlbiB5b3Ugc2V0IGJhdGNoOiB0cnVlLCB0aGUgcmVzcG9uc2Ugc2hvdWxkIGJlIGEgSlNPTi4nLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoIWJvZHkpIHJldHVybiBFbXB0eVJlc3BvbnNlO1xuXG4gICAgcmV0dXJuIEpTT04ucGFyc2UoYm9keSk7XG4gIH1cblxuICAvKipcbiAgICoge0Bpbmhlcml0RG9jfVxuICAgKi9cbiAgcHVibGljIG9uRXJyb3JXaGlsZUZvcndhcmRpbmcoe1xuICAgIGVycm9yLFxuICAgIGRlbGVnYXRlZFJlc29sdmVyLFxuICB9OiBPbkVycm9yUHJvcHM8VEV2ZW50LCBBV1NTaW1wbGVBZGFwdGVyUmVzcG9uc2VUeXBlPik6IHZvaWQge1xuICAgIGRlbGVnYXRlZFJlc29sdmVyLmZhaWwoZXJyb3IpO1xuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIFByb3RlY3RlZCBNZXRob2RzXG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIHRoZSBzdGF0dXMgY29kZSBpcyBpbnZhbGlkXG4gICAqXG4gICAqIEBwYXJhbSBzdGF0dXNDb2RlIC0gVGhlIHN0YXR1cyBjb2RlXG4gICAqL1xuICBwcm90ZWN0ZWQgaGFzSW52YWxpZFN0YXR1c0NvZGUoc3RhdHVzQ29kZTogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHN0YXR1c0NvZGUgPCAyMDAgfHwgc3RhdHVzQ29kZSA+PSA0MDA7XG4gIH1cblxuICAvLyNlbmRyZWdpb25cbn1cbiIsICIvLyNyZWdpb24gSW1wb3J0c1xuXG5pbXBvcnQgdHlwZSB7IER5bmFtb0RCU3RyZWFtRXZlbnQgfSBmcm9tICdhd3MtbGFtYmRhJztcbmltcG9ydCB7IGdldERlZmF1bHRJZlVuZGVmaW5lZCB9IGZyb20gJy4uLy4uL2NvcmUnO1xuaW1wb3J0IHsgdHlwZSBBV1NTaW1wbGVBZGFwdGVyT3B0aW9ucywgQXdzU2ltcGxlQWRhcHRlciB9IGZyb20gJy4vYmFzZS9pbmRleCc7XG5cbi8vI2VuZHJlZ2lvblxuXG4vKipcbiAqIFRoZSBvcHRpb25zIHRvIGN1c3RvbWl6ZSB0aGUge0BsaW5rIER5bmFtb0RCQWRhcHRlcn1cbiAqXG4gKiBAYnJlYWRjcnVtYiBBZGFwdGVycyAvIEFXUyAvIER5bmFtb0RCQWRhcHRlclxuICogQHB1YmxpY1xuICovXG5leHBvcnQgaW50ZXJmYWNlIER5bmFtb0RCQWRhcHRlck9wdGlvbnNcbiAgZXh0ZW5kcyBQaWNrPEFXU1NpbXBsZUFkYXB0ZXJPcHRpb25zLCAnYmF0Y2gnPiB7XG4gIC8qKlxuICAgKiBUaGUgcGF0aCB0aGF0IHdpbGwgYmUgdXNlZCB0byBjcmVhdGUgYSByZXF1ZXN0IHRvIGJlIGZvcndhcmRlZCB0byB0aGUgZnJhbWV3b3JrLlxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIC9keW5hbW9cbiAgICovXG4gIGR5bmFtb0RCRm9yd2FyZFBhdGg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBodHRwIG1ldGhvZCB0aGF0IHdpbGwgYmUgdXNlZCB0byBjcmVhdGUgYSByZXF1ZXN0IHRvIGJlIGZvcndhcmRlZCB0byB0aGUgZnJhbWV3b3JrLlxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIFBPU1RcbiAgICovXG4gIGR5bmFtb0RCRm9yd2FyZE1ldGhvZD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGUgYWRhcHRlciB0byBoYW5kbGUgcmVxdWVzdHMgZnJvbSBBV1MgRHluYW1vREIuXG4gKlxuICogVGhlIG9wdGlvbiBvZiBgcmVzcG9uc2VXaXRoRXJyb3JzYCBpcyBpZ25vcmVkIGJ5IHRoaXMgYWRhcHRlciBhbmQgd2UgYWx3YXlzIGNhbGwgYHJlc29sdmVyLmZhaWxgIHdpdGggdGhlIGVycm9yLlxuICpcbiAqIHtAbGluayBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy93aXRoLWRkYi5odG1sIHwgRXZlbnQgUmVmZXJlbmNlfVxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBkeW5hbW9EQkZvcndhcmRQYXRoID0gJy95b3VyL3JvdXRlL2R5bmFtbyc7IC8vIGRlZmF1bHQgL2R5bmFtb1xuICogY29uc3QgZHluYW1vREJGb3J3YXJkTWV0aG9kID0gJ1BPU1QnOyAvLyBkZWZhdWx0IFBPU1RcbiAqIGNvbnN0IGFkYXB0ZXIgPSBuZXcgRHluYW1vREJBZGFwdGVyKHsgZHluYW1vREJGb3J3YXJkUGF0aCwgZHluYW1vREJGb3J3YXJkTWV0aG9kIH0pO1xuICogYGBgXG4gKlxuICogQGJyZWFkY3J1bWIgQWRhcHRlcnMgLyBBV1MgLyBEeW5hbW9EQkFkYXB0ZXJcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNsYXNzIER5bmFtb0RCQWRhcHRlciBleHRlbmRzIEF3c1NpbXBsZUFkYXB0ZXI8RHluYW1vREJTdHJlYW1FdmVudD4ge1xuICAvLyNyZWdpb24gQ29uc3RydWN0b3JcblxuICAvKipcbiAgICogRGVmYXVsdCBjb25zdHJ1Y3RvclxuICAgKlxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIHRvIGN1c3RvbWl6ZSB0aGUge0BsaW5rIER5bmFtb0RCQWRhcHRlcn1cbiAgICovXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM/OiBEeW5hbW9EQkFkYXB0ZXJPcHRpb25zKSB7XG4gICAgc3VwZXIoe1xuICAgICAgZm9yd2FyZFBhdGg6IGdldERlZmF1bHRJZlVuZGVmaW5lZChcbiAgICAgICAgb3B0aW9ucz8uZHluYW1vREJGb3J3YXJkUGF0aCxcbiAgICAgICAgJy9keW5hbW8nLFxuICAgICAgKSxcbiAgICAgIGZvcndhcmRNZXRob2Q6IGdldERlZmF1bHRJZlVuZGVmaW5lZChcbiAgICAgICAgb3B0aW9ucz8uZHluYW1vREJGb3J3YXJkTWV0aG9kLFxuICAgICAgICAnUE9TVCcsXG4gICAgICApLFxuICAgICAgYmF0Y2g6IG9wdGlvbnM/LmJhdGNoLFxuICAgICAgaG9zdDogJ2R5bmFtb2RiLmFtYXpvbmF3cy5jb20nLFxuICAgIH0pO1xuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIFB1YmxpYyBNZXRob2RzXG5cbiAgLyoqXG4gICAqIHtAaW5oZXJpdERvY31cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBnZXRBZGFwdGVyTmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBEeW5hbW9EQkFkYXB0ZXIubmFtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2N9XG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgY2FuSGFuZGxlKGV2ZW50OiB1bmtub3duKTogZXZlbnQgaXMgRHluYW1vREJTdHJlYW1FdmVudCB7XG4gICAgY29uc3QgZHluYW1vREJldmVudCA9IGV2ZW50IGFzIFBhcnRpYWw8RHluYW1vREJTdHJlYW1FdmVudD47XG5cbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoZHluYW1vREJldmVudD8uUmVjb3JkcykpIHJldHVybiBmYWxzZTtcblxuICAgIGNvbnN0IGV2ZW50U291cmNlID0gZHluYW1vREJldmVudC5SZWNvcmRzWzBdPy5ldmVudFNvdXJjZTtcblxuICAgIHJldHVybiBldmVudFNvdXJjZSA9PT0gJ2F3czpkeW5hbW9kYic7XG4gIH1cblxuICAvLyNlbmRyZWdpb25cbn1cbiIsICIvLyNyZWdpb24gSW1wb3J0c1xuXG5pbXBvcnQgdHlwZSB7IEV2ZW50QnJpZGdlRXZlbnQgfSBmcm9tICdhd3MtbGFtYmRhJztcbmltcG9ydCB7IGdldERlZmF1bHRJZlVuZGVmaW5lZCB9IGZyb20gJy4uLy4uL2NvcmUnO1xuaW1wb3J0IHsgQXdzU2ltcGxlQWRhcHRlciB9IGZyb20gJy4vYmFzZSc7XG5cbi8vI2VuZHJlZ2lvblxuXG4vKipcbiAqIFRoZSBvcHRpb25zIHRvIGN1c3RvbWl6ZSB0aGUge0BsaW5rIEV2ZW50QnJpZGdlQWRhcHRlcn1cbiAqXG4gKiBAYnJlYWRjcnVtYiBBZGFwdGVycyAvIEFXUyAvIEV2ZW50QnJpZGdlQWRhcHRlclxuICogQHB1YmxpY1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50QnJpZGdlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgcGF0aCB0aGF0IHdpbGwgYmUgdXNlZCB0byBjcmVhdGUgYSByZXF1ZXN0IHRvIGJlIGZvcndhcmRlZCB0byB0aGUgZnJhbWV3b3JrLlxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIC9ldmVudGJyaWRnZVxuICAgKi9cbiAgZXZlbnRCcmlkZ2VGb3J3YXJkUGF0aD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGh0dHAgbWV0aG9kIHRoYXQgd2lsbCBiZSB1c2VkIHRvIGNyZWF0ZSBhIHJlcXVlc3QgdG8gYmUgZm9yd2FyZGVkIHRvIHRoZSBmcmFtZXdvcmsuXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgUE9TVFxuICAgKi9cbiAgZXZlbnRCcmlkZ2VGb3J3YXJkTWV0aG9kPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEp1c3QgYSB0eXBlIGFsaWFzIHRvIGlnbm9yZSBnZW5lcmljIHR5cGVzIGluIHRoZSBldmVudFxuICpcbiAqIEBicmVhZGNydW1iIEFkYXB0ZXJzIC8gQVdTIC8gRXZlbnRCcmlkZ2VBZGFwdGVyXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCB0eXBlIEV2ZW50QnJpZGdlRXZlbnRBbGwgPSBFdmVudEJyaWRnZUV2ZW50PGFueSwgYW55PjtcblxuLyoqXG4gKiBUaGUgYWRhcHRlciB0byBoYW5kbGUgcmVxdWVzdHMgZnJvbSBBV1MgRXZlbnRCcmlkZ2UgKENsb3Vkd2F0Y2ggRXZlbnRzKS5cbiAqXG4gKiBUaGUgb3B0aW9uIG9mIGByZXNwb25zZVdpdGhFcnJvcnNgIGlzIGlnbm9yZWQgYnkgdGhpcyBhZGFwdGVyIGFuZCB3ZSBhbHdheXMgY2FsbCBgcmVzb2x2ZXIuZmFpbGAgd2l0aCB0aGUgZXJyb3IuXG4gKlxuICoge0BsaW5rIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL3NlcnZpY2VzLWNsb3Vkd2F0Y2hldmVudHMuaHRtbCB8IEV2ZW50IFJlZmVyZW5jZX1cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgZXZlbnRCcmlkZ2VGb3J3YXJkUGF0aCA9ICcveW91ci9yb3V0ZS9ldmVudGJyaWRnZSc7IC8vIGRlZmF1bHQgL2V2ZW50YnJpZGdlXG4gKiBjb25zdCBldmVudEJyaWRnZUZvcndhcmRNZXRob2QgPSAnUE9TVCc7IC8vIGRlZmF1bHQgUE9TVFxuICogY29uc3QgYWRhcHRlciA9IG5ldyBFdmVudEJyaWRnZUFkYXB0ZXIoeyBldmVudEJyaWRnZUZvcndhcmRQYXRoLCBldmVudEJyaWRnZUZvcndhcmRNZXRob2QgfSk7XG4gKiBgYGBcbiAqXG4gKiBAYnJlYWRjcnVtYiBBZGFwdGVycyAvIEFXUyAvIEV2ZW50QnJpZGdlQWRhcHRlclxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY2xhc3MgRXZlbnRCcmlkZ2VBZGFwdGVyIGV4dGVuZHMgQXdzU2ltcGxlQWRhcHRlcjxFdmVudEJyaWRnZUV2ZW50QWxsPiB7XG4gIC8vI3JlZ2lvbiBDb25zdHJ1Y3RvclxuXG4gIC8qKlxuICAgKiBEZWZhdWx0IGNvbnN0cnVjdG9yXG4gICAqXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgdG8gY3VzdG9taXplIHRoZSB7QGxpbmsgRXZlbnRCcmlkZ2VBZGFwdGVyfVxuICAgKi9cbiAgY29uc3RydWN0b3Iob3B0aW9ucz86IEV2ZW50QnJpZGdlT3B0aW9ucykge1xuICAgIHN1cGVyKHtcbiAgICAgIGZvcndhcmRQYXRoOiBnZXREZWZhdWx0SWZVbmRlZmluZWQoXG4gICAgICAgIG9wdGlvbnM/LmV2ZW50QnJpZGdlRm9yd2FyZFBhdGgsXG4gICAgICAgICcvZXZlbnRicmlkZ2UnLFxuICAgICAgKSxcbiAgICAgIGZvcndhcmRNZXRob2Q6IGdldERlZmF1bHRJZlVuZGVmaW5lZChcbiAgICAgICAgb3B0aW9ucz8uZXZlbnRCcmlkZ2VGb3J3YXJkTWV0aG9kLFxuICAgICAgICAnUE9TVCcsXG4gICAgICApLFxuICAgICAgYmF0Y2g6IGZhbHNlLFxuICAgICAgaG9zdDogJ2V2ZW50cy5hbWF6b25hd3MuY29tJyxcbiAgICB9KTtcbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBQdWJsaWMgTWV0aG9kc1xuXG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2N9XG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0QWRhcHRlck5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gRXZlbnRCcmlkZ2VBZGFwdGVyLm5hbWU7XG4gIH1cblxuICAvKipcbiAgICoge0Bpbmhlcml0RG9jfVxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGNhbkhhbmRsZShldmVudDogdW5rbm93bik6IGV2ZW50IGlzIEV2ZW50QnJpZGdlRXZlbnRBbGwge1xuICAgIGNvbnN0IGV2ZW50QnJpZGdlRXZlbnQgPSBldmVudCBhcyBQYXJ0aWFsPEV2ZW50QnJpZGdlRXZlbnRBbGw+O1xuXG4gICAgLy8gdGhhbmtzIHRvIEBjbnVzcyBpbiBodHRwczovL2dpdGh1Yi5jb20vdmVuZGlhL3NlcnZlcmxlc3MtZXhwcmVzcy9ibG9iL2I1ZGE2MDcwYjhkZDJmYjY3NGMxZjcwMzVkZDdlZGZlZjFkYzgzYTIvc3JjL2V2ZW50LXNvdXJjZXMvdXRpbHMuanMjTDg3XG4gICAgcmV0dXJuICEhKFxuICAgICAgZXZlbnRCcmlkZ2VFdmVudCAmJlxuICAgICAgZXZlbnRCcmlkZ2VFdmVudC52ZXJzaW9uICYmXG4gICAgICBldmVudEJyaWRnZUV2ZW50LnZlcnNpb24gPT09ICcwJyAmJlxuICAgICAgZXZlbnRCcmlkZ2VFdmVudC5pZCAmJlxuICAgICAgZXZlbnRCcmlkZ2VFdmVudFsnZGV0YWlsLXR5cGUnXSAmJlxuICAgICAgZXZlbnRCcmlkZ2VFdmVudC5zb3VyY2UgJiZcbiAgICAgIGV2ZW50QnJpZGdlRXZlbnQuYWNjb3VudCAmJlxuICAgICAgZXZlbnRCcmlkZ2VFdmVudC50aW1lICYmXG4gICAgICBldmVudEJyaWRnZUV2ZW50LnJlZ2lvbiAmJlxuICAgICAgZXZlbnRCcmlkZ2VFdmVudC5yZXNvdXJjZXMgJiZcbiAgICAgIEFycmF5LmlzQXJyYXkoZXZlbnRCcmlkZ2VFdmVudC5yZXNvdXJjZXMpICYmXG4gICAgICBldmVudEJyaWRnZUV2ZW50LmRldGFpbCAmJlxuICAgICAgdHlwZW9mIGV2ZW50QnJpZGdlRXZlbnQuZGV0YWlsID09PSAnb2JqZWN0JyAmJlxuICAgICAgIUFycmF5LmlzQXJyYXkoZXZlbnRCcmlkZ2VFdmVudC5kZXRhaWwpXG4gICAgKTtcbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxufVxuIiwgIi8vI3JlZ2lvbiBJbXBvcnRzXG5cbmltcG9ydCB0eXBlIHsgQ2xvdWRGcm9udFJlcXVlc3QsIENvbnRleHQgfSBmcm9tICdhd3MtbGFtYmRhJztcbmltcG9ydCB0eXBlIHtcbiAgQ2xvdWRGcm9udEV2ZW50LFxuICBDbG91ZEZyb250SGVhZGVycyxcbiAgQ2xvdWRGcm9udFJlc3VsdFJlc3BvbnNlLFxufSBmcm9tICdhd3MtbGFtYmRhL2NvbW1vbi9jbG91ZGZyb250JztcbmltcG9ydCB0eXBlIHtcbiAgQ2xvdWRGcm9udFJlcXVlc3RFdmVudCxcbiAgQ2xvdWRGcm9udFJlcXVlc3RSZXN1bHQsXG59IGZyb20gJ2F3cy1sYW1iZGEvdHJpZ2dlci9jbG91ZGZyb250LXJlcXVlc3QnO1xuaW1wb3J0IHR5cGUge1xuICBCb3RoVmFsdWVIZWFkZXJzLFxuICBDb25jcmV0ZSxcbiAgU2luZ2xlVmFsdWVIZWFkZXJzLFxufSBmcm9tICcuLi8uLi9AdHlwZXMnO1xuaW1wb3J0IHR5cGUge1xuICBBZGFwdGVyQ29udHJhY3QsXG4gIEFkYXB0ZXJSZXF1ZXN0LFxuICBHZXRSZXNwb25zZUFkYXB0ZXJQcm9wcyxcbiAgT25FcnJvclByb3BzLFxufSBmcm9tICcuLi8uLi9jb250cmFjdHMnO1xuaW1wb3J0IHtcbiAgZ2V0RGVmYXVsdElmVW5kZWZpbmVkLFxuICBnZXRFdmVudEJvZHlBc0J1ZmZlcixcbiAgZ2V0UGF0aFdpdGhRdWVyeVN0cmluZ1BhcmFtcyxcbn0gZnJvbSAnLi4vLi4vY29yZSc7XG5cbi8vI2VuZHJlZ2lvblxuXG4vKipcbiAqIFRoZSB0eXBlIGFsaWFzIHRvIGluZGljYXRlIHdoZXJlIHdlIGdldCB0aGUgZGVmYXVsdCB2YWx1ZSBvZiBxdWVyeSBzdHJpbmcgdG8gY3JlYXRlIHRoZSByZXF1ZXN0LlxuICpcbiAqIEBicmVhZGNydW1iIEFkYXB0ZXJzIC8gQVdTIC8gTGFtYmRhRWRnZUFkYXB0ZXJcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IHR5cGUgRGVmYXVsdFF1ZXJ5U3RyaW5nID1cbiAgQ2xvdWRGcm9udFJlcXVlc3RFdmVudFsnUmVjb3JkcyddW251bWJlcl1bJ2NmJ11bJ3JlcXVlc3QnXVsncXVlcnlzdHJpbmcnXTtcblxuLyoqXG4gKiBUaGUgdHlwZSBhbGlhcyB0byBpbmRpY2F0ZSB3aGVyZSB3ZSBnZXQgdGhlIGRlZmF1bHQgdmFsdWUgb2YgcGF0aCB0byBjcmVhdGUgdGhlIHJlcXVlc3QuXG4gKlxuICogQGJyZWFkY3J1bWIgQWRhcHRlcnMgLyBBV1MgLyBMYW1iZGFFZGdlQWRhcHRlclxuICogQHB1YmxpY1xuICovXG5leHBvcnQgdHlwZSBEZWZhdWx0Rm9yd2FyZFBhdGggPVxuICBDbG91ZEZyb250UmVxdWVzdEV2ZW50WydSZWNvcmRzJ11bbnVtYmVyXVsnY2YnXVsncmVxdWVzdCddWyd1cmknXTtcblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBib2R5IG9mIHRoZSBuZXcgdmVyc2lvbiBvZiBMYW1iZGFcXEBlZGdlLCB3aGljaCB1c2VzIHRoZSBgYm9keWAgcHJvcGVydHkgaW5zaWRlIGByZXF1ZXN0YCBhcyB0aGUgYm9keSAobGlicmFyeSkgb2YgdGhlIHJlcXVlc3QuXG4gKlxuICogQGJyZWFkY3J1bWIgQWRhcHRlcnMgLyBBV1MgLyBMYW1iZGFFZGdlQWRhcHRlclxuICogQHB1YmxpY1xuICovXG5leHBvcnQgdHlwZSBOZXdMYW1iZGFFZGdlQm9keSA9XG4gIENsb3VkRnJvbnRSZXF1ZXN0RXZlbnRbJ1JlY29yZHMnXVtudW1iZXJdWydjZiddWydyZXF1ZXN0J11bJ2JvZHknXTtcblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBib2R5IG9mIHRoZSBvbGQgdmVyc2lvbiBvZiBMYW1iZGFcXEBlZGdlIHN1cHBvcnRlZCBieSBcXEB2ZW5kaWEvc2VydmVybGVzcy1leHByZXNzIHdoaWNoIHJldHVybnMgdGhlIGBkYXRhYCBwcm9wZXJ0eSB3aXRoaW4gYGJvZHlgIGZvciB0aGUgYm9keSAobGlicmFyeSkgb2YgdGhlIHJlcXVlc3QuXG4gKlxuICogQGJyZWFkY3J1bWIgQWRhcHRlcnMgLyBBV1MgLyBMYW1iZGFFZGdlQWRhcHRlclxuICogQHB1YmxpY1xuICovXG5leHBvcnQgdHlwZSBPbGRMYW1iZGFFZGdlQm9keSA9IENvbmNyZXRlPFxuICBDbG91ZEZyb250UmVxdWVzdEV2ZW50WydSZWNvcmRzJ11bbnVtYmVyXVsnY2YnXVsncmVxdWVzdCddXG4+Wydib2R5J11bJ2RhdGEnXTtcblxuLyoqXG4gKiBUaGUgbGlzdCB3YXMgY3JlYXRlZCBiYXNlZCBvbiB7QGxpbmsgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkNsb3VkRnJvbnQvbGF0ZXN0L0RldmVsb3Blckd1aWRlL2VkZ2UtZnVuY3Rpb25zLXJlc3RyaWN0aW9ucy5odG1sIHwgdGhlc2UgZG9jc30gaW4gdGhlIFwiRGlzYWxsb3dlZCBIZWFkZXJzXCIgc2VjdGlvbi5cbiAqXG4gKiBAYnJlYWRjcnVtYiBBZGFwdGVycyAvIEFXUyAvIExhbWJkYUVkZ2VBZGFwdGVyIC8gQ29uc3RhbnRzXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX0xBTUJEQV9FREdFX0RJU0FMTE9XRURfSEVBREVSUzogKHN0cmluZyB8IFJlZ0V4cClbXSA9IFtcbiAgJ0Nvbm5lY3Rpb24nLFxuICAnRXhwZWN0JyxcbiAgJ0tlZXAtQWxpdmUnLFxuICAnUHJveHktQXV0aGVudGljYXRlJyxcbiAgJ1Byb3h5LUF1dGhvcml6YXRpb24nLFxuICAnUHJveHktQ29ubmVjdGlvbicsXG4gICdUcmFpbGVyJyxcbiAgJ1VwZ3JhZGUnLFxuICAnWC1BY2NlbC1CdWZmZXJpbmcnLFxuICAnWC1BY2NlbC1DaGFyc2V0JyxcbiAgJ1gtQWNjZWwtTGltaXQtUmF0ZScsXG4gICdYLUFjY2VsLVJlZGlyZWN0JyxcbiAgLyhYLUFtei1DZi0pKC4qKS9naW0sXG4gICdYLUNhY2hlJyxcbiAgLyhYLUVkZ2UtKSguKikvZ2ltLFxuICAnWC1Gb3J3YXJkZWQtUHJvdG8nLFxuICAnWC1SZWFsLUlQJyxcbl07XG5cbi8qKlxuICogVGhlIGRlZmF1bHQgbWF4IHJlc3BvbnNlIHNpemUgaW4gYnl0ZXMgb2Ygdmlld2VyIHJlcXVlc3QgYW5kIHZpZXdlciByZXNwb25zZS5cbiAqXG4gKiBAZGVmYXVsdFZhbHVlIDEwMjQgKiA0MCA9IDQwOTYwID0gNDBLQlxuICpcbiAqIHtAbGluayBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRGcm9udC9sYXRlc3QvRGV2ZWxvcGVyR3VpZGUvY2xvdWRmcm9udC1saW1pdHMuaHRtbCB8IFJlZmVyZW5jZX1cbiAqXG4gKiBAYnJlYWRjcnVtYiBBZGFwdGVycyAvIEFXUyAvIExhbWJkYUVkZ2VBZGFwdGVyIC8gQ29uc3RhbnRzXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX1ZJRVdFUl9NQVhfUkVTUE9OU0VfU0laRV9JTl9CWVRFUyA9IDEwMjQgKiA0MDtcblxuLyoqXG4gKiBUaGUgZGVmYXVsdCBtYXggcmVzcG9uc2Ugc2l6ZSBpbiBieXRlcyBvZiBvcmlnaW4gcmVxdWVzdCBhbmQgb3JpZ2luIHJlc3BvbnNlLlxuICpcbiAqIEBkZWZhdWx0VmFsdWUgMTAyNCAqIDEwMjQgPSAxMDQ4NTc2ID0gMU1CXG4gKlxuICoge0BsaW5rIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25DbG91ZEZyb250L2xhdGVzdC9EZXZlbG9wZXJHdWlkZS9jbG91ZGZyb250LWxpbWl0cy5odG1sIHwgUmVmZXJlbmNlfVxuICpcbiAqIEBicmVhZGNydW1iIEFkYXB0ZXJzIC8gQVdTIC8gTGFtYmRhRWRnZUFkYXB0ZXIgLyBDb25zdGFudHNcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfT1JJR0lOX01BWF9SRVNQT05TRV9TSVpFX0lOX0JZVEVTID0gMTAyNCAqIDEwMjQ7XG5cbi8qKlxuICogVGhlIG9wdGlvbnMgdG8gY3VzdG9taXplIHRoZSB7QGxpbmsgTGFtYmRhRWRnZUFkYXB0ZXJ9LlxuICpcbiAqIEBicmVhZGNydW1iIEFkYXB0ZXJzIC8gQVdTIC8gTGFtYmRhRWRnZUFkYXB0ZXJcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMYW1iZGFFZGdlQWRhcHRlck9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIG1heCByZXNwb25zZSBzaXplIGluIGJ5dGVzIG9mIHZpZXdlciByZXF1ZXN0IGFuZCB2aWV3ZXIgcmVzcG9uc2UuXG4gICAqXG4gICAqIHtAbGluayBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRGcm9udC9sYXRlc3QvRGV2ZWxvcGVyR3VpZGUvY2xvdWRmcm9udC1saW1pdHMuaHRtbCB8IFJlZmVyZW5jZX1cbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSB7QGxpbmsgREVGQVVMVF9WSUVXRVJfTUFYX1JFU1BPTlNFX1NJWkVfSU5fQllURVN9XG4gICAqL1xuICB2aWV3ZXJNYXhSZXNwb25zZVNpemVJbkJ5dGVzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgbWF4IHJlc3BvbnNlIHNpemUgaW4gYnl0ZXMgb2Ygb3JpZ2luIHJlcXVlc3QgYW5kIG9yaWdpbiByZXNwb25zZS5cbiAgICpcbiAgICoge0BsaW5rIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25DbG91ZEZyb250L2xhdGVzdC9EZXZlbG9wZXJHdWlkZS9jbG91ZGZyb250LWxpbWl0cy5odG1sIHwgUmVmZXJlbmNlfVxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIHtAbGluayBERUZBVUxUX09SSUdJTl9NQVhfUkVTUE9OU0VfU0laRV9JTl9CWVRFU31cbiAgICovXG4gIG9yaWdpbk1heFJlc3BvbnNlU2l6ZUluQnl0ZXM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBmdW5jdGlvbiBjYWxsZWQgd2hlbiB0aGUgcmVzcG9uc2Ugc2l6ZSBleGNlZWQgdGhlIG1heCBsaW1pdHMgb2YgdGhlIExhbWJkYVxcQGVkZ2VcbiAgICpcbiAgICogQHBhcmFtIHJlc3BvbnNlIC0gVGhlIHJlc3BvbnNlIGZyb20gZnJhbWV3b3JrIHRoYXQgZXhjZWVkIHRoZSBsaW1pdCBvZiBMYW1iZGFcXEBlZGdlXG4gICAqIEBkZWZhdWx0VmFsdWUgdW5kZWZpbmVkXG4gICAqL1xuICBvblJlc3BvbnNlU2l6ZUV4Y2VlZExpbWl0PzogKFxuICAgIHJlc3BvbnNlOiBDbG91ZEZyb250UmVxdWVzdFJlc3VsdCxcbiAgKSA9PiBDbG91ZEZyb250UmVxdWVzdFJlc3VsdDtcblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBwYXRoIHRvIGJlIHVzZWQgdG8gY3JlYXRlIGEgcmVxdWVzdCB0byB0aGUgZnJhbWV3b3JrXG4gICAqXG4gICAqIEByZW1hcmtzIFlvdSBNVVNUIGFwcGVuZCB0aGUgcXVlcnkgcGFyYW1zIGZyb20ge0BsaW5rIERlZmF1bHRRdWVyeVN0cmluZ30sIHlvdSBjYW4gdXNlIHRoZSBoZWxwZXIge0BsaW5rIGdldFBhdGhXaXRoUXVlcnlTdHJpbmdQYXJhbXN9LlxuICAgKlxuICAgKiBAcGFyYW0gZXZlbnQgLSBUaGUgZXZlbnQgc2VudCBieSB0aGUgc2VydmVybGVzc1xuICAgKiBAZGVmYXVsdFZhbHVlIFRoZSB2YWx1ZSBmcm9tIHtAbGluayBEZWZhdWx0Rm9yd2FyZFBhdGh9XG4gICAqL1xuICBnZXRQYXRoRnJvbUV2ZW50PzogKFxuICAgIGV2ZW50OiBDbG91ZEZyb250UmVxdWVzdEV2ZW50WydSZWNvcmRzJ11bbnVtYmVyXSxcbiAgKSA9PiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBoZWFkZXJzIHRoYXQgd2lsbCBiZSBzdHJpcHBlZCBmcm9tIHRoZSBoZWFkZXJzIG9iamVjdCBiZWNhdXNlIExhbWJkYVxcQGVkZ2Ugd2lsbCBmYWlsIGlmIHRoZXNlIGhlYWRlcnMgYXJlIHBhc3NlZCBpbiB0aGUgcmVzcG9uc2UuXG4gICAqXG4gICAqIEByZW1hcmtzIEFsbCBoZWFkZXJzIHdpbGwgYmUgY29tcGFyZWQgd2l0aCBvdGhlciBoZWFkZXJzIHVzaW5nIHRvTG93ZXJDYXNlLCBidXQgZm9yIHRoZSBSZWdFeHAsIGlmIHlvdSBtb2RpZnkgdGhpcyBsaXN0LCB5b3UgbXVzdCBwdXQgdGhlIGZsYWcgYC9nbWlgIGF0IHRoZSBlbmQgb2YgdGhlIFJlZ0V4cCAoZXg6IGAvKFgtQW16LUNmLSkoLiopL2dpbWApXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgVG8gZ2V0IHRoZSBmdWxsIGxpc3QsIHNlZSB7QGxpbmsgREVGQVVMVF9MQU1CREFfRURHRV9ESVNBTExPV0VEX0hFQURFUlN9LlxuICAgKi9cbiAgZGlzYWxsb3dlZEhlYWRlcnM/OiAoc3RyaW5nIHwgUmVnRXhwKVtdO1xuXG4gIC8qKlxuICAgKiBJZiB5b3Ugd2FudCB0byBjaGFuZ2UgaG93IHdlIGNoZWNrIGFnYWluc3QgdGhlIGhlYWRlciBpZiBpdCBzaG91bGQgYmUgc3RyaXBwZWQsIHlvdSBjYW4gcGFzcyBhIGZ1bmN0aW9uIHRvIHRoaXMgcHJvcGVydHkuXG4gICAqXG4gICAqIEBwYXJhbSBoZWFkZXIgLSBUaGUgaGVhZGVyIG9mIHRoZSByZXNwb25zZVxuICAgKiBAZGVmYXVsdFZhbHVlIFRoZSBkZWZhdWx0IG1ldGhvZCBpcyBpbXBsZW1lbnRlZCB0byB0ZXN0IHRoZSBoZWFkZXIgYWdhaW5zdCB0aGUgbGlzdCB7QGxpbmsgTGFtYmRhRWRnZUFkYXB0ZXJPcHRpb25zLmRpc2FsbG93ZWRIZWFkZXJzfS5cbiAgICovXG4gIHNob3VsZFN0cmlwSGVhZGVyPzogKGhlYWRlcjogc3RyaW5nKSA9PiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBCeSBkZWZhdWx0LCB0aGUge0BsaW5rIGF3cy1sYW1iZGEjQ2xvdWRGcm9udFJlcXVlc3RSZXN1bHR9IGhhcyB0aGUgYGhlYWRlcnNgIHByb3BlcnR5LCBidXQgd2UgYWxzbyBoYXZlIHRoZSBoZWFkZXJzIHNlbnQgYnkgdGhlIGZyYW1ld29yayB0b28uXG4gICAqIFNvIHRoaXMgc2V0dGluZyB0ZWxscyB1cyBob3cgdG8gaGFuZGxlIHRoaXMgY2FzZSwgaWYgeW91IHBhc3MgYHRydWVgIHRvIHRoaXMgcHJvcGVydHksIHdlIHdpbGwgdXNlIHRoZSBmcmFtZXdvcmsgaGVhZGVycy5cbiAgICogT3RoZXJ3aXNlLCB3ZSB3aWxsIGZvcndhcmQgdGhlIGJvZHkgYmFjayB0byBjbG91ZGZyb250IHdpdGhvdXQgbW9kaWZ5aW5nIG9yIHRyeWluZyB0byBzZXQgdGhlIGBoZWFkZXJzYCBwcm9wZXJ0eSBpbnNpZGUge0BsaW5rIGF3cy1sYW1iZGEjQ2xvdWRGcm9udFJlcXVlc3RSZXN1bHR9LlxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIGZhbHNlXG4gICAqL1xuICBzaG91bGRVc2VIZWFkZXJzRnJvbUZyYW1ld29yaz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogVGhlIGFkYXB0ZXIgdG8gaGFuZGxlIHJlcXVlc3RzIGZyb20gQVdTIExhbWJkYVxcQEVkZ2UuXG4gKlxuICogVGhpcyBhZGFwdGVyIGlzIG5vdCBmdWxseSBjb21wYXRpYmxlIHdpdGggTGFtYmRhXFxAZWRnZSBzdXBwb3J0ZWQgYnkgXFxAdmVuZGlhL3NlcnZlcmxlc3MtZXhwcmVzcywgdGhlIHJlcXVlc3QgYm9keSB3YXMgbW9kaWZpZWQgdG8gcmV0dXJuIHtAbGluayBOZXdMYW1iZGFFZGdlQm9keX0gaW5zdGVhZCB7QGxpbmsgT2xkTGFtYmRhRWRnZUJvZHl9LlxuICogQWxzbywgdGhlIHJlc3BvbnNlIGhhcyBiZWVuIG1vZGlmaWVkIHRvIHJldHVybiBlbnRpcmUgYm9keSBzZW50IGJ5IHRoZSBmcmFtZXdvcmssIGluIHRoaXMgZm9ybSB5b3UgTVVTVCByZXR1cm4gdGhlIGJvZHkgZnJvbSB0aGUgZnJhbWV3b3JrIGluIHRoZSBmb3JtYXQgb2Yge0BsaW5rIGF3cy1sYW1iZGEjQ2xvdWRGcm9udFJlcXVlc3RSZXN1bHR9LlxuICogQW5kIHdoZW4gd2UgZ2V0IGFuIGVycm9yIGR1cmluZyB0aGUgZm9yd2FyZGluZyB0byB0aGUgZnJhbWV3b3JrLCB3ZSBjYWxsIGByZXNvbHZlci5mYWlsYCBpbnN0ZWFkIG9mIHRyeWluZyB0byByZXR1cm4gc3RhdHVzIDUwMCBsaWtlIHRoZSBvbGQgaW1wbGVtZW50YXRpb24gd2FzLlxuICpcbiAqIHtAbGluayBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9sYW1iZGEtZWRnZS5odG1sIHwgTGFtYmRhIGVkZ2UgZG9jc31cbiAqIHtAbGluayBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRGcm9udC9sYXRlc3QvRGV2ZWxvcGVyR3VpZGUvbGFtYmRhLWV2ZW50LXN0cnVjdHVyZS5odG1sIHwgRXZlbnQgUmVmZXJlbmNlfVxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBnZXRQYXRoRnJvbUV2ZW50ID0gKCkgPT4gJy9sYW1iZGEvZWRnZSc7IC8vIHdpbGwgZm9yd2FyZCBhbGwgcmVxdWVzdHMgdG8gdGhlIHNhbWUgZW5kcG9pbnRcbiAqIGNvbnN0IGFkYXB0ZXIgPSBuZXcgTGFtYmRhRWRnZUFkYXB0ZXIoeyBnZXRQYXRoRnJvbUV2ZW50IH0pO1xuICogYGBgXG4gKlxuICogQGJyZWFkY3J1bWIgQWRhcHRlcnMgLyBBV1MgLyBMYW1iZGFFZGdlQWRhcHRlclxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY2xhc3MgTGFtYmRhRWRnZUFkYXB0ZXJcbiAgaW1wbGVtZW50c1xuICAgIEFkYXB0ZXJDb250cmFjdDxDbG91ZEZyb250UmVxdWVzdEV2ZW50LCBDb250ZXh0LCBDbG91ZEZyb250UmVxdWVzdFJlc3VsdD5cbntcbiAgLy8jcmVnaW9uIENvbnN0cnVjdG9yXG5cbiAgLyoqXG4gICAqIERlZmF1bHQgY29uc3RydWN0b3JcbiAgICpcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyB0byBjdXN0b21pemUgdGhlIHtAbGluayBMYW1iZGFFZGdlQWRhcHRlcn1cbiAgICovXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCByZWFkb25seSBvcHRpb25zPzogTGFtYmRhRWRnZUFkYXB0ZXJPcHRpb25zKSB7XG4gICAgY29uc3QgZGlzYWxsb3dlZEhlYWRlcnMgPSBnZXREZWZhdWx0SWZVbmRlZmluZWQoXG4gICAgICB0aGlzLm9wdGlvbnM/LmRpc2FsbG93ZWRIZWFkZXJzLFxuICAgICAgREVGQVVMVF9MQU1CREFfRURHRV9ESVNBTExPV0VEX0hFQURFUlMsXG4gICAgKTtcblxuICAgIHRoaXMuY2FjaGVkRGlzYWxsb3dlZEhlYWRlcnMgPSBkaXNhbGxvd2VkSGVhZGVycy5tYXAoZGlzYWxsb3dlZEhlYWRlciA9PiB7XG4gICAgICBpZiAoZGlzYWxsb3dlZEhlYWRlciBpbnN0YW5jZW9mIFJlZ0V4cCkgcmV0dXJuIGRpc2FsbG93ZWRIZWFkZXI7XG5cbiAgICAgIHJldHVybiBuZXcgUmVnRXhwKGAoJHtkaXNhbGxvd2VkSGVhZGVyfSlgLCAnZ2ltJyk7XG4gICAgfSk7XG4gIH1cblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gUHJvdGVjdGVkIFByb3BlcnRpZXNcblxuICAvKipcbiAgICogVGhpcyBwcm9wZXJ0eSBpcyB1c2VkIHRvIGNhY2hlIHRoZSBkaXNhbGxvd2VkIGhlYWRlcnMgaW4gYFJlZ0V4cGAgdmVyc2lvbiwgZXZlbiBpZiB5b3UgcHJvdmlkZSBhIHN0cmluZyBpbiBgZGlzYWxsb3dlZEhlYWRlcmAsIHdlIHdpbGwgY2FjaGUgaXQgaW4gYW4gaW5zdGFuY2Ugb2YgYFJlZ0V4cGAuXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2FjaGVkRGlzYWxsb3dlZEhlYWRlcnM6IFJlZ0V4cFtdO1xuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBQdWJsaWMgTWV0aG9kc1xuXG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2N9XG4gICAqL1xuICBwdWJsaWMgZ2V0QWRhcHRlck5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gTGFtYmRhRWRnZUFkYXB0ZXIubmFtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2N9XG4gICAqL1xuICBwdWJsaWMgY2FuSGFuZGxlKGV2ZW50OiB1bmtub3duKTogZXZlbnQgaXMgQ2xvdWRGcm9udFJlcXVlc3RFdmVudCB7XG4gICAgY29uc3QgbGFtYmRhRWRnZUV2ZW50ID0gZXZlbnQgYXMgUGFydGlhbDxDbG91ZEZyb250UmVxdWVzdEV2ZW50PjtcblxuICAgIGlmICghQXJyYXkuaXNBcnJheShsYW1iZGFFZGdlRXZlbnQ/LlJlY29yZHMpKSByZXR1cm4gZmFsc2U7XG5cbiAgICBjb25zdCBldmVudFR5cGUgPSBsYW1iZGFFZGdlRXZlbnQuUmVjb3Jkc1swXT8uY2Y/LmNvbmZpZz8uZXZlbnRUeXBlO1xuICAgIGNvbnN0IHZhbGlkRXZlbnRUeXBlczogQ2xvdWRGcm9udEV2ZW50Wydjb25maWcnXVsnZXZlbnRUeXBlJ11bXSA9IFtcbiAgICAgICdvcmlnaW4tcmVzcG9uc2UnLFxuICAgICAgJ29yaWdpbi1yZXF1ZXN0JyxcbiAgICAgICd2aWV3ZXItcmVzcG9uc2UnLFxuICAgICAgJ3ZpZXdlci1yZXF1ZXN0JyxcbiAgICBdO1xuXG4gICAgcmV0dXJuIHZhbGlkRXZlbnRUeXBlcy5pbmNsdWRlcyhldmVudFR5cGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIHtAaW5oZXJpdERvY31cbiAgICovXG4gIHB1YmxpYyBnZXRSZXF1ZXN0KGV2ZW50OiBDbG91ZEZyb250UmVxdWVzdEV2ZW50KTogQWRhcHRlclJlcXVlc3Qge1xuICAgIGNvbnN0IHJlcXVlc3QgPSBldmVudC5SZWNvcmRzWzBdO1xuICAgIGNvbnN0IGNsb3VkRnJvbnRSZXF1ZXN0ID0gcmVxdWVzdC5jZi5yZXF1ZXN0O1xuXG4gICAgY29uc3QgbWV0aG9kID0gY2xvdWRGcm9udFJlcXVlc3QubWV0aG9kO1xuXG4gICAgY29uc3QgcGF0aEZyb21PcHRpb25zID0gdGhpcy5vcHRpb25zPy5nZXRQYXRoRnJvbUV2ZW50XG4gICAgICA/IHRoaXMub3B0aW9ucy5nZXRQYXRoRnJvbUV2ZW50KHJlcXVlc3QpXG4gICAgICA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBkZWZhdWx0UGF0aCA9IGdldFBhdGhXaXRoUXVlcnlTdHJpbmdQYXJhbXMoXG4gICAgICBjbG91ZEZyb250UmVxdWVzdC51cmksXG4gICAgICBjbG91ZEZyb250UmVxdWVzdC5xdWVyeXN0cmluZyxcbiAgICApO1xuICAgIGNvbnN0IHBhdGggPSBnZXREZWZhdWx0SWZVbmRlZmluZWQocGF0aEZyb21PcHRpb25zLCBkZWZhdWx0UGF0aCk7XG5cbiAgICBjb25zdCByZW1vdGVBZGRyZXNzID0gY2xvdWRGcm9udFJlcXVlc3QuY2xpZW50SXA7XG5cbiAgICBjb25zdCBoZWFkZXJzID1cbiAgICAgIHRoaXMuZ2V0RmxhdHRlbmVkSGVhZGVyc0Zyb21DbG91ZGZyb250UmVxdWVzdChjbG91ZEZyb250UmVxdWVzdCk7XG5cbiAgICBsZXQgYm9keTogQnVmZmVyIHwgdW5kZWZpbmVkO1xuXG4gICAgaWYgKGNsb3VkRnJvbnRSZXF1ZXN0LmJvZHkpIHtcbiAgICAgIGNvbnN0IFtidWZmZXIsIGNvbnRlbnRMZW5ndGhdID0gZ2V0RXZlbnRCb2R5QXNCdWZmZXIoXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KGNsb3VkRnJvbnRSZXF1ZXN0LmJvZHkpLFxuICAgICAgICBmYWxzZSxcbiAgICAgICk7XG5cbiAgICAgIGJvZHkgPSBidWZmZXI7XG4gICAgICBoZWFkZXJzWydjb250ZW50LWxlbmd0aCddID0gY29udGVudExlbmd0aC50b1N0cmluZygpO1xuICAgIH1cblxuICAgIGNvbnN0IHsgaG9zdCB9ID0gaGVhZGVycztcblxuICAgIHJldHVybiB7XG4gICAgICBtZXRob2QsXG4gICAgICBwYXRoLFxuICAgICAgaGVhZGVycyxcbiAgICAgIGJvZHksXG4gICAgICByZW1vdGVBZGRyZXNzLFxuICAgICAgaG9zdCxcbiAgICAgIGhvc3RuYW1lOiBob3N0LFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICoge0Bpbmhlcml0RG9jfVxuICAgKi9cbiAgcHVibGljIGdldFJlc3BvbnNlKFxuICAgIHByb3BzOiBHZXRSZXNwb25zZUFkYXB0ZXJQcm9wczxDbG91ZEZyb250UmVxdWVzdEV2ZW50PixcbiAgKTogQ2xvdWRGcm9udFJlcXVlc3RSZXN1bHQge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gdGhpcy5nZXRSZXNwb25zZVRvTGFtYmRhRWRnZShwcm9wcyk7XG4gICAgY29uc3QgcmVzcG9uc2VUb1NlcnZpY2VCeXRlcyA9IG5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShcbiAgICAgIEpTT04uc3RyaW5naWZ5KHJlc3BvbnNlKSxcbiAgICApLmxlbmd0aDtcblxuICAgIGNvbnN0IGlzT3JpZ2luUmVxdWVzdE9yUmVzcG9uc2UgPSB0aGlzLmlzRXZlbnRUeXBlT3JpZ2luKFxuICAgICAgcHJvcHMuZXZlbnQuUmVjb3Jkc1swXS5jZi5jb25maWcsXG4gICAgKTtcbiAgICBjb25zdCBtYXhTaXplSW5CeXRlcyA9IGlzT3JpZ2luUmVxdWVzdE9yUmVzcG9uc2VcbiAgICAgID8gZ2V0RGVmYXVsdElmVW5kZWZpbmVkKFxuICAgICAgICAgIHRoaXMub3B0aW9ucz8ub3JpZ2luTWF4UmVzcG9uc2VTaXplSW5CeXRlcyxcbiAgICAgICAgICBERUZBVUxUX09SSUdJTl9NQVhfUkVTUE9OU0VfU0laRV9JTl9CWVRFUyxcbiAgICAgICAgKVxuICAgICAgOiBnZXREZWZhdWx0SWZVbmRlZmluZWQoXG4gICAgICAgICAgdGhpcy5vcHRpb25zPy52aWV3ZXJNYXhSZXNwb25zZVNpemVJbkJ5dGVzLFxuICAgICAgICAgIERFRkFVTFRfVklFV0VSX01BWF9SRVNQT05TRV9TSVpFX0lOX0JZVEVTLFxuICAgICAgICApO1xuXG4gICAgaWYgKHJlc3BvbnNlVG9TZXJ2aWNlQnl0ZXMgPD0gbWF4U2l6ZUluQnl0ZXMpIHJldHVybiByZXNwb25zZTtcblxuICAgIGlmICh0aGlzLm9wdGlvbnM/Lm9uUmVzcG9uc2VTaXplRXhjZWVkTGltaXQpXG4gICAgICB0aGlzLm9wdGlvbnMub25SZXNwb25zZVNpemVFeGNlZWRMaW1pdChyZXNwb25zZSk7XG4gICAgZWxzZSB7XG4gICAgICBwcm9wcy5sb2cuZXJyb3IoXG4gICAgICAgIGBTRVJWRVJMRVNTX0FEQVBURVI6TEFNQkRBX0VER0VfQURBUFRFUjogTWF4IHJlc3BvbnNlIHNpemUgZXhjZWVkZWQ6ICR7cmVzcG9uc2VUb1NlcnZpY2VCeXRlc30gb2YgdGhlIG1heCBvZiAke21heFNpemVJbkJ5dGVzfS5gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzcG9uc2U7XG4gIH1cblxuICAvKipcbiAgICoge0Bpbmhlcml0RG9jfVxuICAgKi9cbiAgcHVibGljIG9uRXJyb3JXaGlsZUZvcndhcmRpbmcoe1xuICAgIGVycm9yLFxuICAgIGRlbGVnYXRlZFJlc29sdmVyLFxuICB9OiBPbkVycm9yUHJvcHM8Q2xvdWRGcm9udFJlcXVlc3RFdmVudCwgQ2xvdWRGcm9udFJlcXVlc3RSZXN1bHQ+KTogdm9pZCB7XG4gICAgZGVsZWdhdGVkUmVzb2x2ZXIuZmFpbChlcnJvcik7XG4gIH1cblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gUHJvdGVjdGVkIE1ldGhvZHNcblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgaGVhZGVycyB3aXRoIHRoZSBmbGF0dGVuZWQgKG5vbi1saXN0KSB2YWx1ZXMgb2YgdGhlIGNsb3VkZnJvbnQgcmVxdWVzdCBoZWFkZXJzXG4gICAqXG4gICAqIEBwYXJhbSBjbG91ZEZyb250UmVxdWVzdCAtIFRoZSBjbG91ZGZyb250IHJlcXVlc3RcbiAgICovXG4gIHByb3RlY3RlZCBnZXRGbGF0dGVuZWRIZWFkZXJzRnJvbUNsb3VkZnJvbnRSZXF1ZXN0KFxuICAgIGNsb3VkRnJvbnRSZXF1ZXN0OiBDbG91ZEZyb250UmVxdWVzdCxcbiAgKTogU2luZ2xlVmFsdWVIZWFkZXJzIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMoY2xvdWRGcm9udFJlcXVlc3QuaGVhZGVycykucmVkdWNlKChhY2MsIGhlYWRlcktleSkgPT4ge1xuICAgICAgY29uc3QgaGVhZGVyVmFsdWUgPSBjbG91ZEZyb250UmVxdWVzdC5oZWFkZXJzW2hlYWRlcktleV07XG5cbiAgICAgIGFjY1toZWFkZXJLZXldID0gaGVhZGVyVmFsdWUubWFwKGhlYWRlciA9PiBoZWFkZXIudmFsdWUpLmpvaW4oJywnKTtcblxuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCB7fSBhcyBTaW5nbGVWYWx1ZUhlYWRlcnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGZyYW1ld29yayByZXNwb25zZSBpbiB0aGUgZm9ybWF0IHJlcXVpcmVkIGJ5IHRoZSBMYW1iZGFcXEBlZGdlLlxuICAgKlxuICAgKiBAcGFyYW0gYm9keSAtIFRoZSBib2R5IG9mIHRoZSByZXNwb25zZVxuICAgKiBAcGFyYW0gZnJhbWV3b3JrSGVhZGVycyAtIFRoZSBoZWFkZXJzIGZyb20gdGhlIGZyYW1ld29ya1xuICAgKi9cbiAgcHJvdGVjdGVkIGdldFJlc3BvbnNlVG9MYW1iZGFFZGdlKHtcbiAgICBib2R5LFxuICAgIGhlYWRlcnM6IGZyYW1ld29ya0hlYWRlcnMsXG4gIH06IEdldFJlc3BvbnNlQWRhcHRlclByb3BzPENsb3VkRnJvbnRSZXF1ZXN0RXZlbnQ+KTogQ2xvdWRGcm9udFJlcXVlc3RSZXN1bHQge1xuICAgIGNvbnN0IHNob3VsZFVzZUhlYWRlcnNGcm9tRnJhbWV3b3JrID0gZ2V0RGVmYXVsdElmVW5kZWZpbmVkKFxuICAgICAgdGhpcy5vcHRpb25zPy5zaG91bGRVc2VIZWFkZXJzRnJvbUZyYW1ld29yayxcbiAgICAgIGZhbHNlLFxuICAgICk7XG5cbiAgICBjb25zdCBwYXJzZWRCb2R5OiBDbG91ZEZyb250UmVzdWx0UmVzcG9uc2UgfCBDbG91ZEZyb250UmVxdWVzdCA9XG4gICAgICBKU09OLnBhcnNlKGJvZHkpO1xuXG4gICAgaWYgKHBhcnNlZEJvZHkuaGVhZGVycykge1xuICAgICAgcGFyc2VkQm9keS5oZWFkZXJzID0gT2JqZWN0LmtleXMocGFyc2VkQm9keS5oZWFkZXJzKS5yZWR1Y2UoXG4gICAgICAgIChhY2MsIGhlYWRlcikgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLnNob3VsZFN0cmlwSGVhZGVyKGhlYWRlcikpIHJldHVybiBhY2M7XG5cbiAgICAgICAgICBhY2NbaGVhZGVyXSA9IHBhcnNlZEJvZHkuaGVhZGVycyFbaGVhZGVyXTtcblxuICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH0sXG4gICAgICAgIHt9IGFzIENsb3VkRnJvbnRIZWFkZXJzLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoIXNob3VsZFVzZUhlYWRlcnNGcm9tRnJhbWV3b3JrKSByZXR1cm4gcGFyc2VkQm9keTtcblxuICAgIHBhcnNlZEJvZHkuaGVhZGVycyA9IHRoaXMuZ2V0SGVhZGVyc0ZvckNsb3VkZnJvbnRSZXNwb25zZShmcmFtZXdvcmtIZWFkZXJzKTtcblxuICAgIHJldHVybiBwYXJzZWRCb2R5O1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgaGVhZGVycyBpbiBDbG91ZGZyb250IFJlc3BvbnNlIGZvcm1hdC5cbiAgICpcbiAgICogQHBhcmFtIG9yaWdpbmFsSGVhZGVycyAtIFRoZSBvcmlnaW5hbCB2ZXJzaW9uIG9mIHRoZSByZXF1ZXN0IHNlbnQgYnkgdGhlIGZyYW1ld29ya1xuICAgKi9cbiAgcHJvdGVjdGVkIGdldEhlYWRlcnNGb3JDbG91ZGZyb250UmVzcG9uc2UoXG4gICAgb3JpZ2luYWxIZWFkZXJzOiBCb3RoVmFsdWVIZWFkZXJzLFxuICApOiBDbG91ZEZyb250SGVhZGVycyB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKG9yaWdpbmFsSGVhZGVycykucmVkdWNlKChhY2MsIGhlYWRlcktleSkgPT4ge1xuICAgICAgaWYgKHRoaXMuc2hvdWxkU3RyaXBIZWFkZXIoaGVhZGVyS2V5KSkgcmV0dXJuIGFjYztcblxuICAgICAgaWYgKCFhY2NbaGVhZGVyS2V5XSkgYWNjW2hlYWRlcktleV0gPSBbXTtcblxuICAgICAgY29uc3QgaGVhZGVyVmFsdWUgPSBvcmlnaW5hbEhlYWRlcnNbaGVhZGVyS2V5XTtcblxuICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGhlYWRlclZhbHVlKSkge1xuICAgICAgICBhY2NbaGVhZGVyS2V5XS5wdXNoKHtcbiAgICAgICAgICBrZXk6IGhlYWRlcktleSxcbiAgICAgICAgICB2YWx1ZTogaGVhZGVyVmFsdWUgfHwgJycsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGhlYWRlcnNBcnJheSA9IGhlYWRlclZhbHVlLm1hcCh2YWx1ZSA9PiAoe1xuICAgICAgICBrZXk6IGhlYWRlcktleSxcbiAgICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgfSkpO1xuXG4gICAgICBhY2NbaGVhZGVyS2V5XS5wdXNoKC4uLmhlYWRlcnNBcnJheSk7XG5cbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwge30gYXMgQ2xvdWRGcm9udEhlYWRlcnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGluZm9ybWF0aW9uIGlmIHdlIHNob3VsZCByZW1vdmUgdGhlIHJlc3BvbnNlIGhlYWRlclxuICAgKlxuICAgKiBAcGFyYW0gaGVhZGVyS2V5IC0gVGhlIGhlYWRlciB0aGF0IHdpbGwgYmUgdGVzdGVkXG4gICAqL1xuICBwcm90ZWN0ZWQgc2hvdWxkU3RyaXBIZWFkZXIoaGVhZGVyS2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5vcHRpb25zPy5zaG91bGRTdHJpcEhlYWRlcilcbiAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMuc2hvdWxkU3RyaXBIZWFkZXIoaGVhZGVyS2V5KTtcblxuICAgIGNvbnN0IGhlYWRlcktleUxvd2VyQ2FzZSA9IGhlYWRlcktleS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgZm9yIChjb25zdCBzdHJpcEhlYWRlcklmIG9mIHRoaXMuY2FjaGVkRGlzYWxsb3dlZEhlYWRlcnMpIHtcbiAgICAgIGlmICghc3RyaXBIZWFkZXJJZi50ZXN0KGhlYWRlcktleUxvd2VyQ2FzZSkpIGNvbnRpbnVlO1xuXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBldmVudCBpcyBmcm9tIG9yaWdpbiBvciBpcyBmcm9tIHZpZXdlci5cbiAgICpcbiAgICogQHBhcmFtIGNvbnRlbnQgLSBUaGUgZXZlbnQgc2VudCBieSBBV1Mgb3IgdGhlIHJlc3BvbnNlIHNlbnQgYnkgdGhlIGZyYW1ld29ya1xuICAgKi9cbiAgcHJvdGVjdGVkIGlzRXZlbnRUeXBlT3JpZ2luKGNvbnRlbnQ6IENsb3VkRnJvbnRFdmVudFsnY29uZmlnJ10pOiBib29sZWFuIHtcbiAgICByZXR1cm4gY29udGVudC5ldmVudFR5cGUuaW5jbHVkZXMoJ29yaWdpbicpO1xuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG59XG4iLCAiLy8jcmVnaW9uIEltcG9ydHNcblxuaW1wb3J0IHR5cGUgeyBTM0V2ZW50IH0gZnJvbSAnYXdzLWxhbWJkYSc7XG5pbXBvcnQgeyBnZXREZWZhdWx0SWZVbmRlZmluZWQgfSBmcm9tICcuLi8uLi9jb3JlJztcbmltcG9ydCB7IEF3c1NpbXBsZUFkYXB0ZXIgfSBmcm9tICcuL2Jhc2UvaW5kZXgnO1xuXG4vLyNlbmRyZWdpb25cblxuLyoqXG4gKiBUaGUgb3B0aW9ucyB0byBjdXN0b21pemUgdGhlIHtAbGluayBTM0FkYXB0ZXJ9XG4gKlxuICogQGJyZWFkY3J1bWIgQWRhcHRlcnMgLyBBV1MgLyBTM0FkYXB0ZXJcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTM0FkYXB0ZXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBwYXRoIHRoYXQgd2lsbCBiZSB1c2VkIHRvIGNyZWF0ZSBhIHJlcXVlc3QgdG8gYmUgZm9yd2FyZGVkIHRvIHRoZSBmcmFtZXdvcmsuXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgL3MzXG4gICAqL1xuICBzM0ZvcndhcmRQYXRoPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgaHR0cCBtZXRob2QgdGhhdCB3aWxsIGJlIHVzZWQgdG8gY3JlYXRlIGEgcmVxdWVzdCB0byBiZSBmb3J3YXJkZWQgdG8gdGhlIGZyYW1ld29yay5cbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSBQT1NUXG4gICAqL1xuICBzM0ZvcndhcmRNZXRob2Q/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlIGFkYXB0ZXIgdG8gaGFuZGxlIHJlcXVlc3RzIGZyb20gQVdTIFMzLlxuICpcbiAqIFRoZSBvcHRpb24gb2YgYHJlc3BvbnNlV2l0aEVycm9yc2AgaXMgaWdub3JlZCBieSB0aGlzIGFkYXB0ZXIgYW5kIHdlIGFsd2F5cyBjYWxsIGByZXNvbHZlci5mYWlsYCB3aXRoIHRoZSBlcnJvci5cbiAqXG4gKiB7QGxpbmsgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvd2l0aC1zMy5odG1sIHwgRXZlbnQgUmVmZXJlbmNlfVxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBzM0ZvcndhcmRQYXRoID0gJy95b3VyL3JvdXRlL3MzJzsgLy8gZGVmYXVsdCAvczNcbiAqIGNvbnN0IHMzRm9yd2FyZE1ldGhvZCA9ICdQT1NUJzsgLy8gZGVmYXVsdCBQT1NUXG4gKiBjb25zdCBhZGFwdGVyID0gbmV3IFMzQWRhcHRlcih7IHMzRm9yd2FyZFBhdGgsIHMzRm9yd2FyZE1ldGhvZCB9KTtcbiAqIGBgYFxuICpcbiAqIEBicmVhZGNydW1iIEFkYXB0ZXJzIC8gQVdTIC8gUzNBZGFwdGVyXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjbGFzcyBTM0FkYXB0ZXIgZXh0ZW5kcyBBd3NTaW1wbGVBZGFwdGVyPFMzRXZlbnQ+IHtcbiAgLy8jcmVnaW9uIENvbnN0cnVjdG9yXG5cbiAgLyoqXG4gICAqIERlZmF1bHQgY29uc3RydWN0b3JcbiAgICpcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyB0byBjdXN0b21pemUgdGhlIHtAbGluayBTTlNBZGFwdGVyfVxuICAgKi9cbiAgY29uc3RydWN0b3Iob3B0aW9ucz86IFMzQWRhcHRlck9wdGlvbnMpIHtcbiAgICBzdXBlcih7XG4gICAgICBmb3J3YXJkUGF0aDogZ2V0RGVmYXVsdElmVW5kZWZpbmVkKG9wdGlvbnM/LnMzRm9yd2FyZFBhdGgsICcvczMnKSxcbiAgICAgIGZvcndhcmRNZXRob2Q6IGdldERlZmF1bHRJZlVuZGVmaW5lZChvcHRpb25zPy5zM0ZvcndhcmRNZXRob2QsICdQT1NUJyksXG4gICAgICBiYXRjaDogZmFsc2UsXG4gICAgICBob3N0OiAnczMuYW1hem9uYXdzLmNvbScsXG4gICAgfSk7XG4gIH1cblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gUHVibGljIE1ldGhvZHNcblxuICAvKipcbiAgICoge0Bpbmhlcml0RG9jfVxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGdldEFkYXB0ZXJOYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFMzQWRhcHRlci5uYW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIHtAaW5oZXJpdERvY31cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBjYW5IYW5kbGUoZXZlbnQ6IHVua25vd24pOiBldmVudCBpcyBTM0V2ZW50IHtcbiAgICBjb25zdCBzM0V2ZW50ID0gZXZlbnQgYXMgUGFydGlhbDxTM0V2ZW50PjtcblxuICAgIGlmICghQXJyYXkuaXNBcnJheShzM0V2ZW50Py5SZWNvcmRzKSkgcmV0dXJuIGZhbHNlO1xuXG4gICAgY29uc3QgZXZlbnRTb3VyY2UgPSBzM0V2ZW50LlJlY29yZHNbMF0/LmV2ZW50U291cmNlO1xuXG4gICAgcmV0dXJuIGV2ZW50U291cmNlID09PSAnYXdzOnMzJztcbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxufVxuIiwgIi8vI3JlZ2lvbiBJbXBvcnRzXG5cbmltcG9ydCB0eXBlIHsgU05TRXZlbnQgfSBmcm9tICdhd3MtbGFtYmRhJztcbmltcG9ydCB7IGdldERlZmF1bHRJZlVuZGVmaW5lZCB9IGZyb20gJy4uLy4uL2NvcmUnO1xuaW1wb3J0IHsgQXdzU2ltcGxlQWRhcHRlciB9IGZyb20gJy4vYmFzZSc7XG5cbi8vI2VuZHJlZ2lvblxuXG4vKipcbiAqIFRoZSBvcHRpb25zIHRvIGN1c3RvbWl6ZSB0aGUge0BsaW5rIFNOU0FkYXB0ZXJ9XG4gKlxuICogQGJyZWFkY3J1bWIgQWRhcHRlcnMgLyBBV1MgLyBTTlNBZGFwdGVyXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU05TQWRhcHRlck9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIHBhdGggdGhhdCB3aWxsIGJlIHVzZWQgdG8gY3JlYXRlIGEgcmVxdWVzdCB0byBiZSBmb3J3YXJkZWQgdG8gdGhlIGZyYW1ld29yay5cbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSAvc25zXG4gICAqL1xuICBzbnNGb3J3YXJkUGF0aD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGh0dHAgbWV0aG9kIHRoYXQgd2lsbCBiZSB1c2VkIHRvIGNyZWF0ZSBhIHJlcXVlc3QgdG8gYmUgZm9yd2FyZGVkIHRvIHRoZSBmcmFtZXdvcmsuXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgUE9TVFxuICAgKi9cbiAgc25zRm9yd2FyZE1ldGhvZD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGUgYWRhcHRlciB0byBoYW5kbGUgcmVxdWVzdHMgZnJvbSBBV1MgU05TLlxuICpcbiAqIFRoZSBvcHRpb24gb2YgYHJlc3BvbnNlV2l0aEVycm9yc2AgaXMgaWdub3JlZCBieSB0aGlzIGFkYXB0ZXIgYW5kIHdlIGFsd2F5cyBjYWxsIGByZXNvbHZlci5mYWlsYCB3aXRoIHRoZSBlcnJvci5cbiAqXG4gKiB7QGxpbmsgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvd2l0aC1zbnMuaHRtbCB8IEV2ZW50IFJlZmVyZW5jZX1cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3Qgc25zRm9yd2FyZFBhdGggPSAnL3lvdXIvcm91dGUvc25zJzsgLy8gZGVmYXVsdCAvc25zXG4gKiBjb25zdCBzbnNGb3J3YXJkTWV0aG9kID0gJ1BPU1QnOyAvLyBkZWZhdWx0IFBPU1RcbiAqIGNvbnN0IGFkYXB0ZXIgPSBuZXcgU05TQWRhcHRlcih7IHNuc0ZvcndhcmRQYXRoLCBzbnNGb3J3YXJkTWV0aG9kIH0pO1xuICogYGBgXG4gKlxuICogQGJyZWFkY3J1bWIgQWRhcHRlcnMgLyBBV1MgLyBTTlNBZGFwdGVyXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjbGFzcyBTTlNBZGFwdGVyIGV4dGVuZHMgQXdzU2ltcGxlQWRhcHRlcjxTTlNFdmVudD4ge1xuICAvLyNyZWdpb24gQ29uc3RydWN0b3JcblxuICAvKipcbiAgICogRGVmYXVsdCBjb25zdHJ1Y3RvclxuICAgKlxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIHRvIGN1c3RvbWl6ZSB0aGUge0BsaW5rIFNOU0FkYXB0ZXJ9XG4gICAqL1xuICBjb25zdHJ1Y3RvcihvcHRpb25zPzogU05TQWRhcHRlck9wdGlvbnMpIHtcbiAgICBzdXBlcih7XG4gICAgICBmb3J3YXJkUGF0aDogZ2V0RGVmYXVsdElmVW5kZWZpbmVkKG9wdGlvbnM/LnNuc0ZvcndhcmRQYXRoLCAnL3NucycpLFxuICAgICAgZm9yd2FyZE1ldGhvZDogZ2V0RGVmYXVsdElmVW5kZWZpbmVkKG9wdGlvbnM/LnNuc0ZvcndhcmRNZXRob2QsICdQT1NUJyksXG4gICAgICBiYXRjaDogZmFsc2UsXG4gICAgICBob3N0OiAnc25zLmFtYXpvbmF3cy5jb20nLFxuICAgIH0pO1xuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIFB1YmxpYyBNZXRob2RzXG5cbiAgLyoqXG4gICAqIHtAaW5oZXJpdERvY31cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBnZXRBZGFwdGVyTmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBTTlNBZGFwdGVyLm5hbWU7XG4gIH1cblxuICAvKipcbiAgICoge0Bpbmhlcml0RG9jfVxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGNhbkhhbmRsZShldmVudDogdW5rbm93bik6IGV2ZW50IGlzIFNOU0V2ZW50IHtcbiAgICBjb25zdCBzbnNFdmVudCA9IGV2ZW50IGFzIFBhcnRpYWw8U05TRXZlbnQ+O1xuXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHNuc0V2ZW50Py5SZWNvcmRzKSkgcmV0dXJuIGZhbHNlO1xuXG4gICAgY29uc3QgZXZlbnRTb3VyY2UgPSBzbnNFdmVudC5SZWNvcmRzWzBdPy5FdmVudFNvdXJjZTtcblxuICAgIHJldHVybiBldmVudFNvdXJjZSA9PT0gJ2F3czpzbnMnO1xuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG59XG4iLCAiLy8jcmVnaW9uIEltcG9ydHNcblxuaW1wb3J0IHR5cGUgeyBTUVNFdmVudCB9IGZyb20gJ2F3cy1sYW1iZGEnO1xuaW1wb3J0IHsgZ2V0RGVmYXVsdElmVW5kZWZpbmVkIH0gZnJvbSAnLi4vLi4vY29yZSc7XG5pbXBvcnQgeyB0eXBlIEFXU1NpbXBsZUFkYXB0ZXJPcHRpb25zLCBBd3NTaW1wbGVBZGFwdGVyIH0gZnJvbSAnLi9iYXNlL2luZGV4JztcblxuLy8jZW5kcmVnaW9uXG5cbi8qKlxuICogVGhlIG9wdGlvbnMgdG8gY3VzdG9taXplIHRoZSB7QGxpbmsgU1FTQWRhcHRlcn1cbiAqXG4gKiBAYnJlYWRjcnVtYiBBZGFwdGVycyAvIEFXUyAvIFNRU0FkYXB0ZXJcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTUVNBZGFwdGVyT3B0aW9uc1xuICBleHRlbmRzIFBpY2s8QVdTU2ltcGxlQWRhcHRlck9wdGlvbnMsICdiYXRjaCc+IHtcbiAgLyoqXG4gICAqIFRoZSBwYXRoIHRoYXQgd2lsbCBiZSB1c2VkIHRvIGNyZWF0ZSBhIHJlcXVlc3QgdG8gYmUgZm9yd2FyZGVkIHRvIHRoZSBmcmFtZXdvcmsuXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgL3Nxc1xuICAgKi9cbiAgc3FzRm9yd2FyZFBhdGg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBodHRwIG1ldGhvZCB0aGF0IHdpbGwgYmUgdXNlZCB0byBjcmVhdGUgYSByZXF1ZXN0IHRvIGJlIGZvcndhcmRlZCB0byB0aGUgZnJhbWV3b3JrLlxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIFBPU1RcbiAgICovXG4gIHNxc0ZvcndhcmRNZXRob2Q/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlIGFkYXB0ZXIgdG8gaGFuZGxlIHJlcXVlc3RzIGZyb20gQVdTIFNRUy5cbiAqXG4gKiBUaGUgb3B0aW9uIG9mIGByZXNwb25zZVdpdGhFcnJvcnNgIGlzIGlnbm9yZWQgYnkgdGhpcyBhZGFwdGVyIGFuZCB3ZSBhbHdheXMgY2FsbCBgcmVzb2x2ZXIuZmFpbGAgd2l0aCB0aGUgZXJyb3IuXG4gKlxuICoge0BsaW5rIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL3dpdGgtc3FzLmh0bWwgfCBFdmVudCBSZWZlcmVuY2V9XG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHNxc0ZvcndhcmRQYXRoID0gJy95b3VyL3JvdXRlL3Nxcyc7IC8vIGRlZmF1bHQgL3Nxc1xuICogY29uc3Qgc3FzRm9yd2FyZE1ldGhvZCA9ICdQT1NUJzsgLy8gZGVmYXVsdCBQT1NUXG4gKiBjb25zdCBhZGFwdGVyID0gbmV3IFNRU0FkYXB0ZXIoeyBzcXNGb3J3YXJkUGF0aCwgc3FzRm9yd2FyZE1ldGhvZCB9KTtcbiAqIGBgYFxuICpcbiAqIEBicmVhZGNydW1iIEFkYXB0ZXJzIC8gQVdTIC8gU1FTQWRhcHRlclxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY2xhc3MgU1FTQWRhcHRlciBleHRlbmRzIEF3c1NpbXBsZUFkYXB0ZXI8U1FTRXZlbnQ+IHtcbiAgLy8jcmVnaW9uIENvbnN0cnVjdG9yXG5cbiAgLyoqXG4gICAqIERlZmF1bHQgY29uc3RydWN0b3JcbiAgICpcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyB0byBjdXN0b21pemUgdGhlIHtAbGluayBTTlNBZGFwdGVyfVxuICAgKi9cbiAgY29uc3RydWN0b3Iob3B0aW9ucz86IFNRU0FkYXB0ZXJPcHRpb25zKSB7XG4gICAgc3VwZXIoe1xuICAgICAgZm9yd2FyZFBhdGg6IGdldERlZmF1bHRJZlVuZGVmaW5lZChvcHRpb25zPy5zcXNGb3J3YXJkUGF0aCwgJy9zcXMnKSxcbiAgICAgIGZvcndhcmRNZXRob2Q6IGdldERlZmF1bHRJZlVuZGVmaW5lZChvcHRpb25zPy5zcXNGb3J3YXJkTWV0aG9kLCAnUE9TVCcpLFxuICAgICAgYmF0Y2g6IG9wdGlvbnM/LmJhdGNoLFxuICAgICAgaG9zdDogJ3Nxcy5hbWF6b25hd3MuY29tJyxcbiAgICB9KTtcbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBQdWJsaWMgTWV0aG9kc1xuXG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2N9XG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0QWRhcHRlck5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gU1FTQWRhcHRlci5uYW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIHtAaW5oZXJpdERvY31cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBjYW5IYW5kbGUoZXZlbnQ6IHVua25vd24pOiBldmVudCBpcyBTUVNFdmVudCB7XG4gICAgY29uc3Qgc3FzRXZlbnQgPSBldmVudCBhcyBQYXJ0aWFsPFNRU0V2ZW50PjtcblxuICAgIGlmICghQXJyYXkuaXNBcnJheShzcXNFdmVudD8uUmVjb3JkcykpIHJldHVybiBmYWxzZTtcblxuICAgIGNvbnN0IGV2ZW50U291cmNlID0gc3FzRXZlbnQuUmVjb3Jkc1swXT8uZXZlbnRTb3VyY2U7XG5cbiAgICByZXR1cm4gZXZlbnRTb3VyY2UgPT09ICdhd3M6c3FzJztcbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxufVxuIiwgIi8vI3JlZ2lvbiBJbXBvcnRzXG5cbmltcG9ydCB0eXBlIHsgQ2xvdWRGcm9udFJlcXVlc3QsIENvbnRleHQgfSBmcm9tICdhd3MtbGFtYmRhJztcbmltcG9ydCB0eXBlIHtcbiAgQ2xvdWRGcm9udEhlYWRlcnMsXG4gIENsb3VkRnJvbnRSZXN1bHRSZXNwb25zZSxcbn0gZnJvbSAnYXdzLWxhbWJkYS9jb21tb24vY2xvdWRmcm9udCc7XG5pbXBvcnQgdHlwZSB7XG4gIENsb3VkRnJvbnRSZXF1ZXN0RXZlbnQsXG4gIENsb3VkRnJvbnRSZXF1ZXN0UmVzdWx0LFxufSBmcm9tICdhd3MtbGFtYmRhL3RyaWdnZXIvY2xvdWRmcm9udC1yZXF1ZXN0JztcbmltcG9ydCB0eXBlIHsgQm90aFZhbHVlSGVhZGVycywgU2luZ2xlVmFsdWVIZWFkZXJzIH0gZnJvbSAnLi4vLi4vQHR5cGVzJztcbmltcG9ydCB0eXBlIHtcbiAgQWRhcHRlckNvbnRyYWN0LFxuICBBZGFwdGVyUmVxdWVzdCxcbiAgR2V0UmVzcG9uc2VBZGFwdGVyUHJvcHMsXG4gIE9uRXJyb3JQcm9wcyxcbn0gZnJvbSAnLi4vLi4vY29udHJhY3RzJztcbmltcG9ydCB7XG4gIHR5cGUgU3RyaXBCYXNlUGF0aEZuLFxuICBidWlsZFN0cmlwQmFzZVBhdGgsXG4gIGdldERlZmF1bHRJZlVuZGVmaW5lZCxcbiAgZ2V0RXZlbnRCb2R5QXNCdWZmZXIsXG4gIGdldFBhdGhXaXRoUXVlcnlTdHJpbmdQYXJhbXMsXG59IGZyb20gJy4uLy4uL2NvcmUnO1xuaW1wb3J0IHtcbiAgREVGQVVMVF9MQU1CREFfRURHRV9ESVNBTExPV0VEX0hFQURFUlMsXG4gIERFRkFVTFRfT1JJR0lOX01BWF9SRVNQT05TRV9TSVpFX0lOX0JZVEVTLFxuICBERUZBVUxUX1ZJRVdFUl9NQVhfUkVTUE9OU0VfU0laRV9JTl9CWVRFUyxcbn0gZnJvbSAnLi9sYW1iZGEtZWRnZS5hZGFwdGVyJztcblxuLy8jZW5kcmVnaW9uXG5cbi8vI2VuZHJlZ2lvblxuXG4vKipcbiAqIFRoZSBvcHRpb25zIHRvIGN1c3RvbWl6ZSB0aGUge0BsaW5rIFJlcXVlc3RMYW1iZGFFZGdlQWRhcHRlcn0uXG4gKlxuICogQGJyZWFkY3J1bWIgQWRhcHRlcnMgLyBBV1MgLyBSZXF1ZXN0TGFtYmRhRWRnZUFkYXB0ZXJcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXF1ZXN0TGFtYmRhRWRnZUFkYXB0ZXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIFN0cmlwIGJhc2UgcGF0aCBmb3IgY3VzdG9tIHBhdGhzLCBsaWtlIGAvYXBpYC5cbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSAnJ1xuICAgKi9cbiAgc3RyaXBCYXNlUGF0aD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG1heCByZXNwb25zZSBzaXplIGluIGJ5dGVzIG9mIHZpZXdlciByZXF1ZXN0IGFuZCB2aWV3ZXIgcmVzcG9uc2UuXG4gICAqXG4gICAqIHtAbGluayBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRGcm9udC9sYXRlc3QvRGV2ZWxvcGVyR3VpZGUvY2xvdWRmcm9udC1saW1pdHMuaHRtbCB8IFJlZmVyZW5jZX1cbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSB7QGxpbmsgREVGQVVMVF9WSUVXRVJfTUFYX1JFU1BPTlNFX1NJWkVfSU5fQllURVN9XG4gICAqL1xuICB2aWV3ZXJNYXhSZXNwb25zZVNpemVJbkJ5dGVzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgbWF4IHJlc3BvbnNlIHNpemUgaW4gYnl0ZXMgb2Ygb3JpZ2luIHJlcXVlc3QgYW5kIG9yaWdpbiByZXNwb25zZS5cbiAgICpcbiAgICoge0BsaW5rIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25DbG91ZEZyb250L2xhdGVzdC9EZXZlbG9wZXJHdWlkZS9jbG91ZGZyb250LWxpbWl0cy5odG1sIHwgUmVmZXJlbmNlfVxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIHtAbGluayBERUZBVUxUX09SSUdJTl9NQVhfUkVTUE9OU0VfU0laRV9JTl9CWVRFU31cbiAgICovXG4gIG9yaWdpbk1heFJlc3BvbnNlU2l6ZUluQnl0ZXM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBmdW5jdGlvbiBjYWxsZWQgd2hlbiB0aGUgcmVzcG9uc2Ugc2l6ZSBleGNlZWQgdGhlIG1heCBsaW1pdHMgb2YgdGhlIExhbWJkYVxcQGVkZ2VcbiAgICpcbiAgICogQHBhcmFtIHJlc3BvbnNlIC0gVGhlIHJlc3BvbnNlIGZyb20gZnJhbWV3b3JrIHRoYXQgZXhjZWVkIHRoZSBsaW1pdCBvZiBMYW1iZGFcXEBlZGdlXG4gICAqIEBkZWZhdWx0VmFsdWUgdW5kZWZpbmVkXG4gICAqL1xuICBvblJlc3BvbnNlU2l6ZUV4Y2VlZExpbWl0PzogKFxuICAgIHJlc3BvbnNlOiBDbG91ZEZyb250UmVxdWVzdFJlc3VsdCxcbiAgKSA9PiBDbG91ZEZyb250UmVxdWVzdFJlc3VsdDtcblxuICAvKipcbiAgICogVGhlIGhlYWRlcnMgdGhhdCB3aWxsIGJlIHN0cmlwcGVkIGZyb20gdGhlIGhlYWRlcnMgb2JqZWN0IGJlY2F1c2UgTGFtYmRhXFxAZWRnZSB3aWxsIGZhaWwgaWYgdGhlc2UgaGVhZGVycyBhcmUgcGFzc2VkIGluIHRoZSByZXNwb25zZS5cbiAgICpcbiAgICogQHJlbWFya3MgQWxsIGhlYWRlcnMgd2lsbCBiZSBjb21wYXJlZCB3aXRoIG90aGVyIGhlYWRlcnMgdXNpbmcgdG9Mb3dlckNhc2UsIGJ1dCBmb3IgdGhlIFJlZ0V4cCwgaWYgeW91IG1vZGlmeSB0aGlzIGxpc3QsIHlvdSBtdXN0IHB1dCB0aGUgZmxhZyBgL2dtaWAgYXQgdGhlIGVuZCBvZiB0aGUgUmVnRXhwIChleDogYC8oWC1BbXotQ2YtKSguKikvZ2ltYClcbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSBUbyBnZXQgdGhlIGZ1bGwgbGlzdCwgc2VlIHtAbGluayBERUZBVUxUX0xBTUJEQV9FREdFX0RJU0FMTE9XRURfSEVBREVSU30uXG4gICAqL1xuICBkaXNhbGxvd2VkSGVhZGVycz86IChzdHJpbmcgfCBSZWdFeHApW107XG5cbiAgLyoqXG4gICAqIElmIHlvdSB3YW50IHRvIGNoYW5nZSBob3cgd2UgY2hlY2sgYWdhaW5zdCB0aGUgaGVhZGVyIGlmIGl0IHNob3VsZCBiZSBzdHJpcHBlZCwgeW91IGNhbiBwYXNzIGEgZnVuY3Rpb24gdG8gdGhpcyBwcm9wZXJ0eS5cbiAgICpcbiAgICogQHBhcmFtIGhlYWRlciAtIFRoZSBoZWFkZXIgb2YgdGhlIHJlc3BvbnNlXG4gICAqIEBkZWZhdWx0VmFsdWUgVGhlIGRlZmF1bHQgbWV0aG9kIGlzIGltcGxlbWVudGVkIHRvIHRlc3QgdGhlIGhlYWRlciBhZ2FpbnN0IHRoZSBsaXN0IHtAbGluayBSZXF1ZXN0TGFtYmRhRWRnZUFkYXB0ZXJPcHRpb25zLmRpc2FsbG93ZWRIZWFkZXJzfS5cbiAgICovXG4gIHNob3VsZFN0cmlwSGVhZGVyPzogKGhlYWRlcjogc3RyaW5nKSA9PiBib29sZWFuO1xufVxuXG4vKipcbiAqIFRoZSBhZGFwdGVyIHRvIGhhbmRsZSByZXF1ZXN0cyBmcm9tIEFXUyBMYW1iZGFcXEBFZGdlIG9mIHRoZSB0eXBlIFZpZXdlciBSZXF1ZXN0LlxuICpcbiAqIFRoZSBpZGVhIG9mIHRoaXMgQWRhcHRlciBpcyB0byB5b3UgYmUgYWJsZSB0byBleHBvc2UgeW91ciBmcmFtZXdvcmsgdG8gdGhlIEVkZ2UsIGxpa2Ugd2hlbiB5b3UgYnVpbGQgZm9yIENsb3VkZnJvbnQuXG4gKlxuICoge0BsaW5rIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL2xhbWJkYS1lZGdlLmh0bWwgfCBMYW1iZGEgZWRnZSBkb2NzfVxuICoge0BsaW5rIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25DbG91ZEZyb250L2xhdGVzdC9EZXZlbG9wZXJHdWlkZS9sYW1iZGEtZXZlbnQtc3RydWN0dXJlLmh0bWwgfCBFdmVudCBSZWZlcmVuY2V9XG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHN0cmlwQmFzZVBhdGggPSAnL2FwaSc7IC8vIGluIGNhc2UgeW91IGhhdmUgY29uZmlndXJlIHRoZSBjbG91ZGZyb250IHRvIGZvcndhcmQgdGhlIHBhdGggL2FwaSB0byB5b3VyIGxhbWJkYVxuICogY29uc3QgYWRhcHRlciA9IG5ldyBSZXF1ZXN0TGFtYmRhRWRnZUFkYXB0ZXIoeyBzdHJpcEJhc2VQYXRoIH0pO1xuICogYGBgXG4gKlxuICogQGJyZWFkY3J1bWIgQWRhcHRlcnMgLyBBV1MgLyBSZXF1ZXN0TGFtYmRhRWRnZUFkYXB0ZXJcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNsYXNzIFJlcXVlc3RMYW1iZGFFZGdlQWRhcHRlclxuICBpbXBsZW1lbnRzXG4gICAgQWRhcHRlckNvbnRyYWN0PENsb3VkRnJvbnRSZXF1ZXN0RXZlbnQsIENvbnRleHQsIENsb3VkRnJvbnRSZXN1bHRSZXNwb25zZT5cbntcbiAgLy8jcmVnaW9uIENvbnN0cnVjdG9yXG5cbiAgLyoqXG4gICAqIERlZmF1bHQgY29uc3RydWN0b3JcbiAgICpcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyB0byBjdXN0b21pemUgdGhlIHtAbGluayBSZXF1ZXN0TGFtYmRhRWRnZUFkYXB0ZXJ9XG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgcmVhZG9ubHkgb3B0aW9ucz86IFJlcXVlc3RMYW1iZGFFZGdlQWRhcHRlck9wdGlvbnMpIHtcbiAgICB0aGlzLnN0cmlwUGF0aEZuID0gYnVpbGRTdHJpcEJhc2VQYXRoKHRoaXMub3B0aW9ucz8uc3RyaXBCYXNlUGF0aCk7XG5cbiAgICBjb25zdCBkaXNhbGxvd2VkSGVhZGVycyA9IGdldERlZmF1bHRJZlVuZGVmaW5lZChcbiAgICAgIHRoaXMub3B0aW9ucz8uZGlzYWxsb3dlZEhlYWRlcnMsXG4gICAgICBERUZBVUxUX0xBTUJEQV9FREdFX0RJU0FMTE9XRURfSEVBREVSUyxcbiAgICApO1xuXG4gICAgdGhpcy5jYWNoZWREaXNhbGxvd2VkSGVhZGVycyA9IGRpc2FsbG93ZWRIZWFkZXJzLm1hcChkaXNhbGxvd2VkSGVhZGVyID0+IHtcbiAgICAgIGlmIChkaXNhbGxvd2VkSGVhZGVyIGluc3RhbmNlb2YgUmVnRXhwKSByZXR1cm4gZGlzYWxsb3dlZEhlYWRlcjtcblxuICAgICAgcmV0dXJuIG5ldyBSZWdFeHAoYCgke2Rpc2FsbG93ZWRIZWFkZXJ9KWAsICdnaW0nKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBQcm90ZWN0ZWQgUHJvcGVydGllc1xuXG4gIC8qKlxuICAgKiBTdHJpcCBiYXNlIHBhdGggZnVuY3Rpb25cbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSBzdHJpcFBhdGhGbjogU3RyaXBCYXNlUGF0aEZuO1xuXG4gIC8qKlxuICAgKiBUaGlzIHByb3BlcnR5IGlzIHVzZWQgdG8gY2FjaGUgdGhlIGRpc2FsbG93ZWQgaGVhZGVycyBpbiBgUmVnRXhwYCB2ZXJzaW9uLCBldmVuIGlmIHlvdSBwcm92aWRlIGEgc3RyaW5nIGluIGBkaXNhbGxvd2VkSGVhZGVyYCwgd2Ugd2lsbCBjYWNoZSBpdCBpbiBhbiBpbnN0YW5jZSBvZiBgUmVnRXhwYC5cbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSBjYWNoZWREaXNhbGxvd2VkSGVhZGVyczogUmVnRXhwW107XG5cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIFB1YmxpYyBNZXRob2RzXG5cbiAgLyoqXG4gICAqIHtAaW5oZXJpdERvY31cbiAgICovXG4gIHB1YmxpYyBnZXRBZGFwdGVyTmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBSZXF1ZXN0TGFtYmRhRWRnZUFkYXB0ZXIubmFtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2N9XG4gICAqL1xuICBwdWJsaWMgY2FuSGFuZGxlKGV2ZW50OiB1bmtub3duKTogZXZlbnQgaXMgQ2xvdWRGcm9udFJlcXVlc3RFdmVudCB7XG4gICAgY29uc3QgbGFtYmRhRWRnZUV2ZW50ID0gZXZlbnQgYXMgUGFydGlhbDxDbG91ZEZyb250UmVxdWVzdEV2ZW50PjtcblxuICAgIGlmICghQXJyYXkuaXNBcnJheShsYW1iZGFFZGdlRXZlbnQ/LlJlY29yZHMpKSByZXR1cm4gZmFsc2U7XG5cbiAgICBjb25zdCBldmVudFR5cGUgPSBsYW1iZGFFZGdlRXZlbnQuUmVjb3Jkc1swXT8uY2Y/LmNvbmZpZz8uZXZlbnRUeXBlO1xuXG4gICAgcmV0dXJuIGV2ZW50VHlwZSA9PT0gJ3ZpZXdlci1yZXF1ZXN0JyB8fCBldmVudFR5cGUgPT09ICdvcmlnaW4tcmVxdWVzdCc7XG4gIH1cblxuICAvKipcbiAgICoge0Bpbmhlcml0RG9jfVxuICAgKi9cbiAgcHVibGljIGdldFJlcXVlc3QoZXZlbnQ6IENsb3VkRnJvbnRSZXF1ZXN0RXZlbnQpOiBBZGFwdGVyUmVxdWVzdCB7XG4gICAgY29uc3QgcmVxdWVzdCA9IGV2ZW50LlJlY29yZHNbMF07XG4gICAgY29uc3QgY2xvdWRGcm9udFJlcXVlc3QgPSByZXF1ZXN0LmNmLnJlcXVlc3Q7XG5cbiAgICBjb25zdCBtZXRob2QgPSBjbG91ZEZyb250UmVxdWVzdC5tZXRob2Q7XG5cbiAgICBjb25zdCBwYXRoID0gdGhpcy5zdHJpcFBhdGhGbihcbiAgICAgIGdldFBhdGhXaXRoUXVlcnlTdHJpbmdQYXJhbXMoXG4gICAgICAgIGNsb3VkRnJvbnRSZXF1ZXN0LnVyaSxcbiAgICAgICAgY2xvdWRGcm9udFJlcXVlc3QucXVlcnlzdHJpbmcsXG4gICAgICApLFxuICAgICk7XG4gICAgY29uc3QgcmVtb3RlQWRkcmVzcyA9IGNsb3VkRnJvbnRSZXF1ZXN0LmNsaWVudElwO1xuXG4gICAgY29uc3QgaGVhZGVycyA9XG4gICAgICB0aGlzLmdldEZsYXR0ZW5lZEhlYWRlcnNGcm9tQ2xvdWRmcm9udFJlcXVlc3QoY2xvdWRGcm9udFJlcXVlc3QpO1xuXG4gICAgbGV0IGJvZHk6IEJ1ZmZlciB8IHVuZGVmaW5lZDtcblxuICAgIGlmIChjbG91ZEZyb250UmVxdWVzdC5ib2R5KSB7XG4gICAgICBjb25zdCBbYnVmZmVyLCBjb250ZW50TGVuZ3RoXSA9IGdldEV2ZW50Qm9keUFzQnVmZmVyKFxuICAgICAgICBjbG91ZEZyb250UmVxdWVzdC5ib2R5LmRhdGEsXG4gICAgICAgIGNsb3VkRnJvbnRSZXF1ZXN0LmJvZHkuZW5jb2RpbmcgPT09ICdiYXNlNjQnLFxuICAgICAgKTtcblxuICAgICAgYm9keSA9IGJ1ZmZlcjtcbiAgICAgIGhlYWRlcnNbJ2NvbnRlbnQtbGVuZ3RoJ10gPSBjb250ZW50TGVuZ3RoLnRvU3RyaW5nKCk7XG4gICAgfVxuXG4gICAgY29uc3QgeyBob3N0IH0gPSBoZWFkZXJzO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIG1ldGhvZCxcbiAgICAgIHBhdGgsXG4gICAgICBoZWFkZXJzLFxuICAgICAgYm9keSxcbiAgICAgIHJlbW90ZUFkZHJlc3MsXG4gICAgICBob3N0LFxuICAgICAgaG9zdG5hbWU6IGhvc3QsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2N9XG4gICAqL1xuICBwdWJsaWMgZ2V0UmVzcG9uc2Uoe1xuICAgIGJvZHksXG4gICAgaGVhZGVyczogZnJhbWV3b3JrSGVhZGVycyxcbiAgICBpc0Jhc2U2NEVuY29kZWQsXG4gICAgc3RhdHVzQ29kZSxcbiAgICBsb2csXG4gICAgZXZlbnQsXG4gIH06IEdldFJlc3BvbnNlQWRhcHRlclByb3BzPENsb3VkRnJvbnRSZXF1ZXN0RXZlbnQ+KTogQ2xvdWRGcm9udFJlc3VsdFJlc3BvbnNlIHtcbiAgICBjb25zdCBoZWFkZXJzID0gdGhpcy5nZXRIZWFkZXJzRm9yQ2xvdWRmcm9udFJlc3BvbnNlKGZyYW1ld29ya0hlYWRlcnMpO1xuXG4gICAgY29uc3QgbWF4U2l6ZUluQnl0ZXMgPVxuICAgICAgZXZlbnQuUmVjb3Jkc1swXS5jZi5jb25maWcuZXZlbnRUeXBlID09PSAnb3JpZ2luLXJlcXVlc3QnXG4gICAgICAgID8gZ2V0RGVmYXVsdElmVW5kZWZpbmVkKFxuICAgICAgICAgICAgdGhpcy5vcHRpb25zPy5vcmlnaW5NYXhSZXNwb25zZVNpemVJbkJ5dGVzLFxuICAgICAgICAgICAgREVGQVVMVF9PUklHSU5fTUFYX1JFU1BPTlNFX1NJWkVfSU5fQllURVMsXG4gICAgICAgICAgKVxuICAgICAgICA6IGdldERlZmF1bHRJZlVuZGVmaW5lZChcbiAgICAgICAgICAgIHRoaXMub3B0aW9ucz8udmlld2VyTWF4UmVzcG9uc2VTaXplSW5CeXRlcyxcbiAgICAgICAgICAgIERFRkFVTFRfVklFV0VSX01BWF9SRVNQT05TRV9TSVpFX0lOX0JZVEVTLFxuICAgICAgICAgICk7XG5cbiAgICBjb25zdCByZXNwb25zZTogQ2xvdWRGcm9udFJlc3VsdFJlc3BvbnNlID0ge1xuICAgICAgYm9keSxcbiAgICAgIHN0YXR1czogc3RhdHVzQ29kZS50b1N0cmluZygpLFxuICAgICAgYm9keUVuY29kaW5nOiBpc0Jhc2U2NEVuY29kZWQgPyAnYmFzZTY0JyA6ICd0ZXh0JyxcbiAgICAgIGhlYWRlcnMsXG4gICAgfTtcblxuICAgIC8vIHByb2JhYmx5IGlzIG5vdCBjb3JyZWN0bHkgYWNjdXJhdGUsIGJ1dCBpdCdzIGEgZ29vZCBhcHByb3hpbWF0aW9uXG4gICAgY29uc3QgYm9keUxlbmd0aCA9IGJvZHkubGVuZ3RoO1xuXG4gICAgaWYgKGJvZHlMZW5ndGggPD0gbWF4U2l6ZUluQnl0ZXMpIHJldHVybiByZXNwb25zZTtcblxuICAgIGlmICh0aGlzLm9wdGlvbnM/Lm9uUmVzcG9uc2VTaXplRXhjZWVkTGltaXQpXG4gICAgICB0aGlzLm9wdGlvbnMub25SZXNwb25zZVNpemVFeGNlZWRMaW1pdChyZXNwb25zZSk7XG4gICAgZWxzZSB7XG4gICAgICBsb2cuZXJyb3IoXG4gICAgICAgIGBTRVJWRVJMRVNTX0FEQVBURVI6TEFNQkRBX0VER0VfQURBUFRFUjogTWF4IHJlc3BvbnNlIHNpemUgZXhjZWVkZWQ6ICR7Ym9keUxlbmd0aH0gb2YgdGhlIG1heCBvZiAke21heFNpemVJbkJ5dGVzfS5gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzcG9uc2U7XG4gIH1cblxuICAvKipcbiAgICoge0Bpbmhlcml0RG9jfVxuICAgKi9cbiAgcHVibGljIG9uRXJyb3JXaGlsZUZvcndhcmRpbmcoe1xuICAgIGVycm9yLFxuICAgIGRlbGVnYXRlZFJlc29sdmVyLFxuICAgIHJlc3BvbmRXaXRoRXJyb3JzLFxuICAgIGxvZyxcbiAgICBldmVudCxcbiAgfTogT25FcnJvclByb3BzPENsb3VkRnJvbnRSZXF1ZXN0RXZlbnQsIENsb3VkRnJvbnRSZXF1ZXN0UmVzdWx0Pik6IHZvaWQge1xuICAgIGNvbnN0IGJvZHkgPSByZXNwb25kV2l0aEVycm9ycyA/IGVycm9yLnN0YWNrIDogJyc7XG4gICAgY29uc3QgZXJyb3JSZXNwb25zZSA9IHRoaXMuZ2V0UmVzcG9uc2Uoe1xuICAgICAgZXZlbnQsXG4gICAgICBzdGF0dXNDb2RlOiA1MDAsXG4gICAgICBib2R5OiBib2R5IHx8ICcnLFxuICAgICAgaGVhZGVyczoge30sXG4gICAgICBpc0Jhc2U2NEVuY29kZWQ6IGZhbHNlLFxuICAgICAgbG9nLFxuICAgIH0pO1xuXG4gICAgZGVsZWdhdGVkUmVzb2x2ZXIuc3VjY2VlZChlcnJvclJlc3BvbnNlKTtcbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBQcm90ZWN0ZWQgTWV0aG9kc1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBoZWFkZXJzIHdpdGggdGhlIGZsYXR0ZW5lZCAobm9uLWxpc3QpIHZhbHVlcyBvZiB0aGUgY2xvdWRmcm9udCByZXF1ZXN0IGhlYWRlcnNcbiAgICpcbiAgICogQHBhcmFtIGNsb3VkRnJvbnRSZXF1ZXN0IC0gVGhlIGNsb3VkZnJvbnQgcmVxdWVzdFxuICAgKi9cbiAgcHJvdGVjdGVkIGdldEZsYXR0ZW5lZEhlYWRlcnNGcm9tQ2xvdWRmcm9udFJlcXVlc3QoXG4gICAgY2xvdWRGcm9udFJlcXVlc3Q6IENsb3VkRnJvbnRSZXF1ZXN0LFxuICApOiBTaW5nbGVWYWx1ZUhlYWRlcnMge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyhjbG91ZEZyb250UmVxdWVzdC5oZWFkZXJzKS5yZWR1Y2UoKGFjYywgaGVhZGVyS2V5KSA9PiB7XG4gICAgICBjb25zdCBoZWFkZXJWYWx1ZSA9IGNsb3VkRnJvbnRSZXF1ZXN0LmhlYWRlcnNbaGVhZGVyS2V5XTtcblxuICAgICAgaWYgKGhlYWRlclZhbHVlLmxlbmd0aCA9PT0gMSkgYWNjW2hlYWRlcktleV0gPSBoZWFkZXJWYWx1ZVswXS52YWx1ZTtcbiAgICAgIGVsc2UgYWNjW2hlYWRlcktleV0gPSBoZWFkZXJWYWx1ZS5tYXAoaGVhZGVyID0+IGhlYWRlci52YWx1ZSkuam9pbignLCcpO1xuXG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIHt9IGFzIFNpbmdsZVZhbHVlSGVhZGVycyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBoZWFkZXJzIGluIENsb3VkZnJvbnQgUmVzcG9uc2UgZm9ybWF0LlxuICAgKlxuICAgKiBAcGFyYW0gb3JpZ2luYWxIZWFkZXJzIC0gVGhlIG9yaWdpbmFsIHZlcnNpb24gb2YgdGhlIHJlcXVlc3Qgc2VudCBieSB0aGUgZnJhbWV3b3JrXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0SGVhZGVyc0ZvckNsb3VkZnJvbnRSZXNwb25zZShcbiAgICBvcmlnaW5hbEhlYWRlcnM6IEJvdGhWYWx1ZUhlYWRlcnMsXG4gICk6IENsb3VkRnJvbnRIZWFkZXJzIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMob3JpZ2luYWxIZWFkZXJzKS5yZWR1Y2UoKGFjYywgaGVhZGVyS2V5KSA9PiB7XG4gICAgICBpZiAodGhpcy5zaG91bGRTdHJpcEhlYWRlcihoZWFkZXJLZXkpKSByZXR1cm4gYWNjO1xuXG4gICAgICBjb25zdCBsb3dlcmNhc2VIZWFkZXJLZXkgPSBoZWFkZXJLZXkudG9Mb3dlckNhc2UoKTtcblxuICAgICAgaWYgKCFhY2NbbG93ZXJjYXNlSGVhZGVyS2V5XSkgYWNjW2xvd2VyY2FzZUhlYWRlcktleV0gPSBbXTtcblxuICAgICAgY29uc3QgaGVhZGVyVmFsdWUgPSBvcmlnaW5hbEhlYWRlcnNbaGVhZGVyS2V5XTtcblxuICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGhlYWRlclZhbHVlKSkge1xuICAgICAgICBhY2NbbG93ZXJjYXNlSGVhZGVyS2V5XS5wdXNoKHtcbiAgICAgICAgICBrZXk6IGhlYWRlcktleSxcbiAgICAgICAgICB2YWx1ZTogaGVhZGVyVmFsdWUgfHwgJycsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGhlYWRlcnNBcnJheSA9IGhlYWRlclZhbHVlLm1hcCh2YWx1ZSA9PiAoe1xuICAgICAgICBrZXk6IGhlYWRlcktleSxcbiAgICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgfSkpO1xuXG4gICAgICBhY2NbbG93ZXJjYXNlSGVhZGVyS2V5XS5wdXNoKC4uLmhlYWRlcnNBcnJheSk7XG5cbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwge30gYXMgQ2xvdWRGcm9udEhlYWRlcnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGluZm9ybWF0aW9uIGlmIHdlIHNob3VsZCByZW1vdmUgdGhlIHJlc3BvbnNlIGhlYWRlclxuICAgKlxuICAgKiBAcGFyYW0gaGVhZGVyS2V5IC0gVGhlIGhlYWRlciB0aGF0IHdpbGwgYmUgdGVzdGVkXG4gICAqL1xuICBwcm90ZWN0ZWQgc2hvdWxkU3RyaXBIZWFkZXIoaGVhZGVyS2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5vcHRpb25zPy5zaG91bGRTdHJpcEhlYWRlcilcbiAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMuc2hvdWxkU3RyaXBIZWFkZXIoaGVhZGVyS2V5KTtcblxuICAgIGNvbnN0IGhlYWRlcktleUxvd2VyQ2FzZSA9IGhlYWRlcktleS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgZm9yIChjb25zdCBzdHJpcEhlYWRlcklmIG9mIHRoaXMuY2FjaGVkRGlzYWxsb3dlZEhlYWRlcnMpIHtcbiAgICAgIGlmICghc3RyaXBIZWFkZXJJZi50ZXN0KGhlYWRlcktleUxvd2VyQ2FzZSkpIGNvbnRpbnVlO1xuXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvLyNlbmRyZWdpb25cbn1cbiIsICIvLyNyZWdpb25cblxuaW1wb3J0IHR5cGUgeyBJbmNvbWluZ01lc3NhZ2UsIFNlcnZlclJlc3BvbnNlIH0gZnJvbSAnaHR0cCc7XG5pbXBvcnQgdHlwZSB7IEV4cHJlc3MgfSBmcm9tICdleHByZXNzJztcbmltcG9ydCB0eXBlIHsgRnJhbWV3b3JrQ29udHJhY3QgfSBmcm9tICcuLi8uLi9jb250cmFjdHMnO1xuXG4vLyNlbmRyZWdpb25cblxuLyoqXG4gKiBUaGUgZnJhbWV3b3JrIHRoYXQgZm9yd2FyZHMgcmVxdWVzdHMgdG8gZXhwcmVzcyBoYW5kbGVyXG4gKlxuICogQGJyZWFkY3J1bWIgRnJhbWV3b3JrcyAvIEV4cHJlc3NGcmFtZXdvcmtcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNsYXNzIEV4cHJlc3NGcmFtZXdvcmsgaW1wbGVtZW50cyBGcmFtZXdvcmtDb250cmFjdDxFeHByZXNzPiB7XG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2N9XG4gICAqL1xuICBwdWJsaWMgc2VuZFJlcXVlc3QoXG4gICAgYXBwOiBFeHByZXNzLFxuICAgIHJlcXVlc3Q6IEluY29taW5nTWVzc2FnZSxcbiAgICByZXNwb25zZTogU2VydmVyUmVzcG9uc2UsXG4gICk6IHZvaWQge1xuICAgIGFwcChyZXF1ZXN0LCByZXNwb25zZSk7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICJxckJBQUEsSUFBQUEsR0FBQUMsRUFBQSxDQUFBQyxJQUFBQyxLQUFBLGNBZUEsSUFBSUMsR0FBUSxRQUFRLE9BQU8sRUFBRSxjQUFjLEVBQ3ZDQyxHQUFPLFFBQVEsV0FBVyxFQUMxQkMsSUFBSyxRQUFRLFNBQVMsRUFPdEJDLElBQVVGLEdBQUssUUFDZkcsR0FBV0gsR0FBSyxTQUNoQkksSUFBVUosR0FBSyxRQUNmSyxHQUFPTCxHQUFLLEtBQ1pNLElBQVVOLEdBQUssUUFPbkJGLEdBQU8sUUFBVVMsR0FnQmpCLFNBQVNBLEdBQUtDLEVBQU1DLEVBQVMsQ0FDM0IsSUFBSUMsRUFBT0QsR0FBVyxDQUFDLEVBT3ZCLEdBTEEsS0FBSyxjQUFnQkMsRUFBSyxjQUMxQixLQUFLLElBQU1OLElBQVFJLENBQUksRUFDdkIsS0FBSyxLQUFPQSxFQUNaLEtBQUssS0FBT0UsRUFBSyxLQUViLENBQUMsS0FBSyxLQUFPLENBQUMsS0FBSyxjQUNyQixNQUFNLElBQUksTUFBTSxnRUFBZ0UsRUFHbEYsSUFBSUMsRUFBV0gsRUFXZixHQVRLLEtBQUssTUFFUixLQUFLLElBQU0sS0FBSyxjQUFjLENBQUMsSUFBTSxJQUNqQyxJQUFNLEtBQUssY0FDWCxLQUFLLGNBRVRHLEdBQVksS0FBSyxLQUdmLENBQUNELEVBQUssUUFB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QUcsZ0JBQWdCLENBQUUsQ0FBQyxFQUFHLFNBQVVJLEdBQUcsQ0FBQ3RCLEVBQUMsRUFBR1MsRUFBRSxFQUFHLENBQUUsV0FBWSxDQUFDLENBQUUsQ0FBQ1IsRUFBQyxFQUFHSSxHQUFHLENBQUNILEVBQUMsRUFBRyxDQUFDZ0IsR0FBRyxZQUFZLENBQUUsQ0FBQyxFQUFHLFNBQVVJLEdBQUcsQ0FBQ3RCLEVBQUMsRUFBR1MsRUFBRSxFQUFHLENBQUUsV0FBWSxDQUFDLENBQUUsQ0FBQ1IsRUFBQyxFQUFHSSxHQUFHLENBQUNILEVBQUMsRUFBRyxDQUFDZ0IsR0FBRyxnQkFBZ0IsQ0FBRSxDQUFDLEVBQUcsU0FBVUksR0FBRyxDQUFDdEIsRUFBQyxFQUFHUyxFQUFFLEVBQUcsQ0FBRSxXQUFZLENBQUMsQ0FBRSxDQUFDUixFQUFDLEVBQUdJLEdBQUcsQ0FBQ0gsRUFBQyxFQUFHLENBQUNnQixHQUFHLGdCQUFnQixDQUFFLENBQUMsRUFBRyxTQUFVSSxHQUFHLENBQUN0QixFQUFDLEVBQUdTLEVBQUUsRUFBR2UsSUFBRyxDQUFFLFdBQVksQ0FBQyxDQUFFLENBQUN2QixFQUFDLEVBQUdJLEdBQUcsQ0FBQ0gsRUFBQyxFQUFHLENBQUNnQixHQUFHLGNBQWMsQ0FBRSxDQUFDLEVBQUcsU0FBVUksR0FBRyxDQUFDdEIsRUFBQyxFQUFHUyxFQUFFLEVBQUcsQ0FBRSxXQUFZLENBQUMsQ0FBRSxDQUFDUixFQUFDLEVBQUdJLEdBQUcsQ0FBQ0gsRUFBQyxFQUFHLENBQUNnQixHQUFHLGNBQWMsQ0FBRSxDQUFDLEVBQUcsU0FBVUksR0FBRyxDQUFDdEIsRUFBQyxFQUFHUyxFQUFFLEVBQUcsQ0FBRSxXQUFZLENBQUMsQ0FBRSxDQUFDUixFQUFDLEVBQUdJLEdBQUcsQ0FBQ0gsRUFBQyxFQUFHLENBQUNnQixHQUFHLFlBQVksQ0FBRSxDQUFDLEVBQUcsU0FBVUksR0FBRyxDQUFDdEIsRUFBQyxFQUFHUyxFQUFFLEVBQUcsQ0FBRSxXQUFZLENBQUMsQ0FBRSxDQUFDUixFQUFDLEVBQUdJLEdBQUcsQ0FBQ0gsRUFBQyxFQUFHLENBQUNnQixHQUFHLFdBQVcsQ0FBRSxDQUFDLEVBQUcsU0FBVUksR0FBRyxDQUFDdEIsRUFBQyxFQUFHUyxFQUFFLEVBQUcsQ0FBRSxXQUFZLENBQUMsQ0FBRSxDQUFDUixFQUFDLEVBQUdJLEdBQUcsQ0FBQ0gsRUFBQyxFQUFHLENBQUNnQixHQUFHLFdBQVcsQ0FBRSxDQUFDLEVBQUcsU0FBVUksR0FBRyxDQUFDdEIsRUFBQyxFQUFHUyxFQUFFLEVBQUcsQ0FBRSxXQUFZLENBQUMsQ0FBRSxDQUFDUixFQUFDLEVBQUdJLEdBQUcsQ0FBQ0gsRUFBQyxFQUFHLENBQUNnQixHQUFHLFdBQVcsQ0FBRSxDQUFDLEVBQUcsU0FBVUksR0FBRyxDQUFDdEIsRUFBQyxFQUFHUyxFQUFFLEVBQUcsQ0FBRSxXQUFZLENBQUMsQ0FBRSxDQUFDUixFQUFDLEVBQUdJLEdBQUcsQ0FBQ0gsRUFBQyxFQUFHLENBQUNnQixHQUFHLFdBQVcsQ0FBRSxDQUFDLEVBQUcsU0FBVUksR0FBRyxDQUFDdEIsRUFBQyxFQUFHUyxFQUFFLEVBQUcsQ0FBRSxXQUFZLENBQUMsQ0FBRSxDQUFDUixFQUFDLEVBQUdJLEdBQUcsQ0FBQ0gsRUFBQyxFQUFHLENBQUNnQixHQUFHVixHQUFDLENBQUUsQ0FBQyxFQUFHLFNBQVVjLEdBQUcsQ0FBQ3RCLEVBQUMsRUFBR1MsRUFBRSxFQUFHLENBQUUsV0FBWSxDQUFDLENBQUUsQ0FBQ1IsRUFBQyxFQUFHSSxHQUFHLENBQUNILEVBQUMsRUFBRyxDQUFDZ0IsR0FBRyxXQUFXLENBQUUsQ0FBQyxFQUFHLFNBQVVJLEdBQUcsQ0FBQ3RCLEVBQUMsRUFBR1MsRUFBRSxFQUFHLENBQUUsV0FBWSxDQUFDLENBQUUsQ0FBQ1IsRUFBQyxFQUFHSSxHQUFHLENBQUNILEVBQUMsRUFBRyxDQUFDZ0IsR0FBRyxXQUFXLENBQUUsQ0FBQyxFQUFHLFNBQVVJLEdBQUcsQ0FBQ3RCLEVBQUMsRUFBR1MsRUFBRSxFQUFHLENBQUUsV0FBWSxDQUFDLENBQUUsQ0FBQ1IsRUFBQyxFQUFHSSxHQUFHLENBQUNILEVBQUMsRUFBRyxDQUFDZ0IsR0FBRyxXQUFXLENBQUUsQ0FBQyxFQUFHLFNBQVVJLEdBQUcsQ0FBQ3RCLEVBQUMsRUFBR1MsRUFBRSxFQUFHLENBQUUsU0FBVSxDQUFFLElBQUtDLElBQUcsV0FBWSxDQUFFLFlBQWEsQ0FBQyxDQUFFLEtBQU1KLElBQUcsWUFBYUMsSUFBRyxjQUFlLFVBQVcsQ0FBQyxDQUFFLEVBQUcsUUFBU2dCLEVBQUUsRUFBRyxDQUFDdkIsRUFBQyxFQUFHUyxFQUFFLENBQUMsRUFBRyxDQUFDVCxFQUFDLEVBQUdXLEVBQUUsRUFBRyxDQUFFLFdBQVltQixJQUFHLE1BQU8sQ0FBQyxDQUFFLFdBQVlDLElBQUcsTUFBTyxvRUFBcUUsQ0FBQy9CLEVBQUMsRUFBR1ksRUFBRSxFQUFHLENBQUUsV0FBWW9CLElBQUcsTUFBTyx5RUFBMEUsQ0FBQ2hDLEVBQUMsRUFBR1ksRUFBRSxFQUFHLENBQUUsU0FBVSxDQUFFLElBQUtJLElBQUcsV0FBWU8sR0FBRyxRQUFTQSxFQUFFLEVBQUcsQ0FBQ3ZCLEVBQUMsRUFBR1MsRUFBRSxDQUFDLEVBQUcsQ0FBQ1QsRUFBQyxFQUFHVyxFQUFFLEVBQUcsQ0FBRSxXQUFZLENBQUNNLEdBQUMsRUFBRyxNQUFPLENBQUMsQ0FBRSxXQUFZLENBQUNFLEdBQUMsRUFBRyxNQUFPLENBQUMsQ0FBRSxXQUFZLENBQUNNLElBQUdDLEdBQUMsRUFBRyxNQUFPLENBQUMsQ0FBRSxXQUFZLENBQUMsQ0FBRSxDQUFDekIsRUFBQyxFQUFHRyxHQUFHLENBQUNGLEVBQUMsRUFBRyxDQUFDLEdBQUd5QixHQUFDLENBQUUsRUFBR0UsR0FBQyxFQUFHLE1BQU8sQ0FBQyxDQUFFLFNBQVUsQ0FBRSxJQUFLLGlFQUFrRSxXQUFZTixHQUFHLFFBQVNBLEVBQUUsRUFBRyxDQUFDdkIsRUFBQyxFQUFHUyxFQUFFLENBQUMsRUFBRyxDQUFDVCxFQUFDLEVBQUdXLEVBQUUsRUFBRyxDQUFFLE1BQU8sa0ZBQW1GLENBQUNYLEVBQUMsRUFBR1ksRUFBRSxDQUFDLEVBQUcsQ0FBQ1osRUFBQyxFQUFHVyxFQUFFLEVBQUcsQ0FBRSxXQUFZb0IsSUFBRyxNQUFPLENBQUMsQ0FBRSxXQUFZLENBQUMsQ0FBRSxDQUFDOUIsRUFBQyxFQUFHRyxHQUFHLENBQUNGLEVBQUMsRUFBRyxDQUFDeUIsSUFBRyxFQUFDLENBQUUsQ0FBQyxFQUFHLE1BQU8sQ0FBQyxDQUFFLFdBQVksQ0FBQyxDQUFFLENBQUMxQixFQUFDLEVBQUdJLEdBQUcsQ0FBQ0gsRUFBQyxFQUFHLENBQUMsQ0FBRSxDQUFDRCxFQUFDLEVBQUdZLEdBQUcsQ0FBQ1gsRUFBQyxFQUFHLENBQUMwQixJQUFHLE1BQU0sQ0FBRSxFQUFHLFlBQVksQ0FBRSxDQUFDLEVBQUcsU0FBVSxDQUFFLElBQUsscUNBQXNDLFdBQVlMLEdBQUcsUUFBU0EsRUFBRSxFQUFHLENBQUN2QixFQUFDLEVBQUdTLEVBQUUsRUFBRyxDQUFFLFNBQVUsQ0FBRSxJQUFLLHdEQUF5RCxXQUFZYyxHQUFHLFFBQVNBLEVBQUUsRUFBRyxDQUFDdkIsRUFBQyxFQUFHUyxFQUFFLENBQUMsRUFBRyxDQUFDVCxFQUFDLEVBQUdXLEVBQUUsRUFBRyxDQUFFLE1BQU8sMkRBQTRELENBQUNYLEVBQUMsRUFBR1ksRUFBRSxDQUFDLEVBQUcsQ0FBQ1osRUFBQyxFQUFHVyxFQUFFLEVBQUcsQ0FBRSxXQUFZcUIsSUFBRyxNQUFPLENBQUMsQ0FBRSxXQUFZLENBQUNILEdBQUMsRUFBRyxNQUFPLENBQUMsQ0FBRSxTQUFVLENBQUUsSUFBSyw0REFBNkQsV0FBWU4sR0FBRyxRQUFTQSxFQUFFLEVBQUcsQ0FBQ3ZCLEVBQUMsRUFBR1MsRUFBRSxDQUFDLEVBQUcsQ0FBQ1QsRUFBQyxFQUFHVyxFQUFFLEVBQUcsQ0FBRSxNQUFPLHFFQUFzRSxDQUFDWCxFQUFDLEVBQUdZLEVBQUUsQ0FBQyxFQUFHLENBQUNaLEVBQUMsRUFBR1csRUFBRSxFQUFHYSxJQUFHLENBQUUsU0FBVSxDQUFFLElBQUtkLElBQUcsV0FBWWEsR0FBRyxRQUFTQSxFQUFFLEVBQUcsQ0FBQ3ZCLEVBQUMsRUFBR1MsRUFBRSxDQUFDLEVBQUcsQ0FBQ1QsRUFBQyxFQUFHVyxFQUFFLENBQUMsRUFBRyxDQUFDWCxFQUFDLEVBQUdXLEVBQUUsRUFBRyxDQUFFLE1BQU8sd0NBQXlDLENBQUNYLEVBQUMsRUFBR1ksRUFBRSxDQUFDLENBQUUsRUFDdmpHc0IsSUFBVUQsTUNIdkIsSUFBQUksSUFDQUEsR0FFTUMsSUFJT0MsSUFQYkMsSUFBQUMsRUFBQSxLQUFBSixJQUFxQyxRQUNyQ0EsR0FBd0Usa0NBQ3hFSyxNQUNNSixJQUFRLElBQUksaUJBQWMsQ0FDNUIsS0FBTSxHQUNOLE9BQVEsQ0FBQyxXQUFZLFNBQVUsZUFBZ0IsVUFBVyxtQkFBbUIsQ0FDakYsQ0FBQyxFQUNZQyxJQUEwQixDQUFDSSxFQUFnQkMsRUFBVSxDQUFDLElBQ3hETixJQUFNLElBQUlLLEVBQWdCLE9BQU0sb0JBQWdCRSxJQUFTLENBQzVELGVBQWdCRixFQUNoQixPQUFRQyxFQUFRLE1BQ3BCLENBQUMsQ0FBQyxFQUVOLDJCQUF3QixJQUFNLDJCQ2I5QixJQUFBRSxJQUVhQyxHQUZiQyxHQUFBQyxFQUFBLEtBQUFILElBQXdELGlDQUUzQ0MsR0FBTixNQUFNRyxVQUE0QixJQUFBQyxnQkFBbUIsQ0FDeEQsWUFBWUMsRUFBUyxDQUNqQixNQUFNQSxDQUFPLEVBQ2IsT0FBTyxlQUFlLEtBQU1GLEVBQW9CLFNBQVMsQ0FDN0QsQ0FDSixJQ1BBLElBQ2FHLEdBWUFDLEdBWUFDLEdBWUFDLEdBWUFDLEdBWUFDLEdBWUFDLEdBekViQyxHQUFBQyxFQUFBLEtBQUFDLEtBQ2FULEdBQU4sTUFBTVUsVUFBOEJDLEVBQWdCLENBQ3ZELEtBQU8sd0JBQ1AsT0FBUyxTQUNULFlBQVlDLEVBQU0sQ0FDZCxNQUFNLENBQ0YsS0FBTSx3QkFDTixPQUFRLFNBQ1IsR0FBR0EsQ0FDUCxDQUFDLEVBQ0QsT0FBTyxlQUFlLEtBQU1GLEVBQXNCLFNBQVMsQ0FDL0QsQ0FDSixFQUNhVCxHQUFOLE1BQU1ZLFVBQXlDRixFQUFnQixDQUNsRSxLQUFPLG1DQUNQLE9BQVMsU0FDVCxZQUFZQyxFQUFNLENBQ2QsTUFBTSxDQUNGLEtBQU0sbUNBQ04sT0FBUSxTQUNSLEdBQUdBLENBQ1AsQ0FBQyxFQUNELE9BQU8sZUFBZSxLQUFNQyxFQUFpQyxTQUFTLENBQzFFLENBQ0osRUFDYVgsR0FBTixNQUFNWSxVQUFzQ0gsRUFBZ0IsQ0FDL0QsS0FBTyxnQ0FDUCxPQUFTLFNBQ1QsWUFBWUMsRUFBTSxDQUNkLE1BQU0sQ0FDRixLQUFNLGdDQUNOLE9BQVEsU0FDUixHQUFHQSxDQUNQLENBQUMsRUFDRCxPQUFPLGVBQWUsS0FBTUUsRUFBOEIsU0FBUyxDQUN2RSxDQUNKLEVBQ2FYLEdBQU4sTUFBTVksVUFBZ0NKLEVBQWdCLENBQ3pELEtBQU8sMEJBQ1AsT0FBUyxTQUNULFlBQVlDLEVBQU0sQ0FDZCxNQUFNLENBQ0YsS0FBTSwwQkFDTixPQUFRLFNBQ1IsR0FBR0EsQ0FDUCxDQUFDLEVBQ0QsT0FBTyxlQUFlLEtBQU1HLEVBQXdCLFNBQVMsQ0FDakUsQ0FDSixFQUNhWCxHQUFOLE1BQU1ZLFVBQWtDTCxFQUFnQixDQUMzRCxLQUFPLDRCQUNQLE9BQVMsU0FDVCxZQUFZQyxFQUFNLENBQ2QsTUFBTSxDQUNGLEtBQU0sNEJBQ04sT0FBUSxTQUNSLEdBQUdBLENBQ1AsQ0FBQyxFQUNELE9BQU8sZUFBZSxLQUFNSSxFQUEwQixTQUFTLENBQ25FLENBQ0osRUFDYVgsR0FBTixNQUFNWSxVQUFzQ04sRUFBZ0IsQ0FDL0QsS0FBTyxnQ0FDUCxPQUFTLFNBQ1QsWUFBWUMsRUFBTSxDQUNkLE1BQU0sQ0FDRixLQUFNLGdDQUNOLE9BQVEsU0FDUixHQUFHQSxDQUNQLENBQUMsRUFDRCxPQUFPLGVBQWUsS0FBTUssRUFBOEIsU0FBUyxDQUN2RSxDQUNKLEVBQ2FYLEdBQU4sTUFBTVksVUFBdUNQLEVBQWdCLENBQ2hFLEtBQU8saUNBQ1AsT0FBUyxTQUNULFlBQVlDLEVBQU0sQ0FDZCxNQUFNLENBQ0YsS0FBTSxpQ0FDTixPQUFRLFNBQ1IsR0FBR0EsQ0FDUCxDQUFDLEVBQ0QsT0FBTyxlQUFlLEtBQU1NLEVBQStCLFNBQVMsQ0FDeEUsQ0FDSixJQ3BGQSxJQTJEQUMsR0EzRE1DLElBQ0FDLElBQ0FDLElBQ0FDLElBQ0FDLElBQ0FDLElBQ0FDLEdBQ0FDLElBQ0FDLElBQ0FDLElBQ0FDLElBQ0FDLEdBQ0FDLElBQ0FDLElBQ0FDLElBQ0FDLElBQ0FDLElBQ0FDLElBQ0FDLElBQ0FDLElBQ0FDLElBQ0FDLElBQ0FDLElBQ0FDLElBQ0FDLElBQ0FDLElBQ0FDLElBQ0FDLElBQ0FDLElBQ0FDLElBQ0FDLElBQ0FDLElBQ0FDLElBQ0FDLElBQ0FDLElBQ0FDLElBQ0FDLElBQ0FDLElBQ0FDLEdBQ0FDLElBQ0FDLElBQ0FDLElBQ0FDLElBQ0FDLElBQ0FDLElBQ0FDLElBQ0FDLElBQ0FDLElBQ0FDLElBQ0FDLEdBQ0FDLEdBQ0FDLElBQ0FDLEdBQ0FDLEdBQ0FDLEdBQ0FDLElBQ0FDLElBQ0FDLElBQ0FDLEdBSUFDLElBQ0tDLElBRUxDLEdBQ0tDLElBU0FDLElBU0FDLElBU0FDLElBU0FDLElBU0FDLElBU0FDLElBU0VDLEdBQ1RDLElBQ0FDLElBQ09DLEdBQ0FDLElBU0FDLElBUUFDLElBU0FDLElBUUFDLEdBU0FDLElBQ0FDLElBQ0FDLElBQ1BDLElBQ0FDLElBRUFDLElBQ09DLEdBQ0FDLEdBeExYQyxHQUFBQyxFQUFBLEtBMkRBeEYsR0FBNkIsK0JBQzdCeUYsS0FDQUMsS0E3RE16RixJQUFLLE1BQ0xDLElBQU8sY0FDUEMsSUFBTSxhQUNOQyxJQUFPLGdCQUNQQyxJQUFPLG9CQUNQQyxJQUFRLHFCQUNSQyxHQUFPLGtCQUNQQyxJQUFTLDRCQUNUQyxJQUFVLG1DQUNWQyxJQUFXLG9DQUNYQyxJQUFNLFdBQ05DLEdBQUssY0FDTEMsSUFBTSxtQkFDTkMsSUFBTSxrQkFDTkMsSUFBSyxhQUNMQyxJQUFNLGFBQ05DLElBQU8sd0JBQ1BDLElBQVUsaUNBQ1ZDLElBQVUsNEJBQ1ZDLElBQVEsZ0NBQ1JDLElBQUssTUFDTEMsSUFBUSxtQ0FDUkMsSUFBSyxTQUNMQyxJQUFNLGFBQ05DLElBQU8sY0FDUEMsSUFBTSxtQkFDTkMsSUFBUSwyQkFDUkMsSUFBTyxrQkFDUEMsSUFBTyx1QkFDUEMsSUFBTSxhQUNOQyxJQUFPLG1CQUNQQyxJQUFTLGdDQUNUQyxJQUFNLFdBQ05DLElBQU0sVUFDTkMsSUFBTywwQkFDUEMsSUFBTyxrQkFDUEMsSUFBTyxrQkFDUEMsSUFBUyw4QkFDVEMsR0FBTSxpQkFDTkMsSUFBTSxlQUNOQyxJQUFNLGVBQ05DLElBQUssT0FDTEMsSUFBTSxZQUNOQyxJQUFPLG9CQUNQQyxJQUFNLE1BQ05DLElBQUssUUFDTEMsSUFBTyxtQkFDUEMsSUFBSyxNQUNMQyxJQUFRLHNCQUNSQyxHQUFPLGdCQUNQQyxHQUFLLFNBQ0xDLElBQU8sa0JBQ1BDLEdBQUssUUFDTEMsR0FBTSxZQUNOQyxHQUFLLFVBQ0xDLElBQVEsMkJBQ1JDLElBQUssNENBQ0xDLElBQU8sY0FDUEMsR0FBSyxvQkFJTEMsSUFBYyxnQkFBYSxJQUFJSCxHQUFFLEVBQzVCSSxJQUF1QixDQUFDLEdBQUlKLElBQUksc0JBQXVCLEVBQUcsQ0FBQyxFQUFHLENBQUMsQ0FBQyxFQUMzRUcsSUFBWSxjQUFjQyxJQUFzQjhCLEVBQW1CLEVBQzdEN0IsR0FBYyxnQkFBYSxJQUFJSCxFQUFFLEVBQzVCSSxJQUF5QixDQUNoQyxHQUNBSixHQUNBMUMsSUFDQSxDQUFFLENBQUNpQyxFQUFJLEVBQUcsQ0FBQyx3QkFBeUIsR0FBRyxFQUFHLENBQUNHLEVBQUUsRUFBR0YsR0FBSSxDQUFDRyxFQUFHLEVBQUcsR0FBSSxFQUMvRCxDQUFDQyxFQUFFLEVBQ0gsQ0FBQyxDQUFDLENBQ04sRUFDQU8sR0FBWSxjQUFjQyxJQUF3QjZCLEVBQXFCLEVBQzVENUIsSUFBa0MsQ0FDekMsR0FDQUwsR0FDQXpDLElBQ0EsQ0FBRSxDQUFDZ0MsRUFBSSxFQUFHLENBQUMsd0JBQXlCLEdBQUcsRUFBRyxDQUFDRyxFQUFFLEVBQUdGLEdBQUksQ0FBQ0csRUFBRyxFQUFHLEdBQUksRUFDL0QsQ0FBQ0MsRUFBRSxFQUNILENBQUMsQ0FBQyxDQUNOLEVBQ0FPLEdBQVksY0FBY0UsSUFBaUM2QixFQUE4QixFQUM5RTVCLElBQTZCLENBQ3BDLEdBQ0FOLEdBQ0F4QyxJQUNBLENBQUUsQ0FBQytCLEVBQUksRUFBRyxDQUFDLG1CQUFvQixHQUFHLEVBQUcsQ0FBQ0csRUFBRSxFQUFHRixHQUFJLENBQUNHLEVBQUcsRUFBRyxHQUFJLEVBQzFELENBQUNDLEVBQUUsRUFDSCxDQUFDLENBQUMsQ0FDTixFQUNBTyxHQUFZLGNBQWNHLElBQTRCNkIsRUFBeUIsRUFDcEU1QixJQUFpQyxDQUN4QyxHQUNBUCxHQUNBdkMsSUFDQSxDQUFFLENBQUM4QixFQUFJLEVBQUcsQ0FBQyx1QkFBd0IsR0FBRyxFQUFHLENBQUNHLEVBQUUsRUFBR0YsR0FBSSxDQUFDRyxFQUFHLEVBQUcsR0FBSSxFQUM5RCxDQUFDQyxFQUFFLEVBQ0gsQ0FBQyxDQUFDLENBQ04sRUFDQU8sR0FBWSxjQUFjSSxJQUFnQzZCLEVBQTZCLEVBQzVFNUIsSUFBb0MsQ0FDM0MsR0FDQVIsR0FDQXJDLElBQ0EsQ0FBRSxDQUFDNEIsRUFBSSxFQUFHLENBQUMsMEJBQTJCLEdBQUcsRUFBRyxDQUFDRyxFQUFFLEVBQUdGLEdBQUksQ0FBQ0csRUFBRyxFQUFHLEdBQUksRUFDakUsQ0FBQ0MsRUFBRSxFQUNILENBQUMsQ0FBQyxDQUNOLEVBQ0FPLEdBQVksY0FBY0ssSUFBbUM2QixFQUFnQyxFQUNsRjVCLElBQWlDLENBQ3hDLEdBQ0FULEdBQ0EzQixJQUNBLENBQUUsQ0FBQ2tCLEVBQUksRUFBRyxDQUFDLHVCQUF3QixHQUFHLEVBQUcsQ0FBQ0csRUFBRSxFQUFHRixHQUFJLENBQUNHLEVBQUcsRUFBRyxHQUFJLEVBQzlELENBQUNDLEVBQUUsRUFDSCxDQUFDLENBQUMsQ0FDTixFQUNBTyxHQUFZLGNBQWNNLElBQWdDNkIsRUFBNkIsRUFDNUU1QixJQUEyQixDQUNsQyxHQUNBVixHQUNBeEIsSUFDQSxDQUFFLENBQUNlLEVBQUksRUFBRyxDQUFDLDBCQUEyQixHQUFHLEVBQUcsQ0FBQ0csRUFBRSxFQUFHRixHQUFJLENBQUNHLEVBQUcsRUFBRyxHQUFJLEVBQ2pFLENBQUNDLEVBQUUsRUFDSCxDQUFDLENBQUMsQ0FDTixFQUNBTyxHQUFZLGNBQWNPLElBQTBCNkIsRUFBdUIsRUFDOUQ1QixHQUFzQixDQUFDVixJQUFhRSxFQUFXLEVBQ3hEUyxJQUFzQixDQUFDLEVBQUdaLEdBQUlWLElBQU8sRUFBRyxDQUFDLEVBQ3pDdUIsSUFBa0IsQ0FBQyxFQUFHYixHQUFJUCxJQUFNLEVBQUcsQ0FBQyxFQUM3QnFCLEdBQW1CLENBQUMsRUFBR2QsR0FBSXBELEdBQU0sRUFBRyxDQUFDSCxJQUFNSCxHQUFFLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQ3pEeUUsSUFBcUIsQ0FDNUIsRUFDQWYsR0FDQXRELElBQ0EsRUFDQSxDQUFDNkIsSUFBS0UsSUFBTVosSUFBS0QsSUFBSVQsSUFBSzRCLElBQUlFLElBQU01QixJQUFLd0IsSUFBS0csSUFBS0osR0FBS2IsR0FBRyxFQUMzRCxDQUFDLEVBQUcsRUFBRyxJQUFNd0QsSUFBMEIsRUFBRyxFQUFHLElBQU1FLElBQWEsR0FBUSxFQUFHLEVBQUcsRUFBRyxFQUFHLElBQU1ELEdBQXdCLEVBQ2xILENBQ0osRUFDV1IsSUFBc0IsQ0FDN0IsRUFDQWhCLEdBQ0FyRCxJQUNBLEVBQ0EsQ0FBQ00sR0FBSUwsR0FBTXdCLElBQU1RLEVBQUcsRUFDcEIsQ0FBQyxDQUFDLElBQU11QyxHQUFjLENBQUMsRUFBRyxJQUFNTCxHQUFrQixFQUFHLENBQUMsQ0FDMUQsRUFDV0csSUFBb0MsQ0FDM0MsRUFDQWpCLEdBQ0FsRCxJQUNBLEVBQ0EsQ0FBQ3lCLElBQUtFLElBQU1XLElBQU1qQixJQUFLTixJQUFLRCxJQUFJVCxHQUFHLEVBQ25DLENBQUMsRUFBRyxFQUFHLENBQUMsSUFBTTBELElBQWlCLENBQUMsRUFBRyxFQUFHLElBQU1VLElBQTBCLEVBQUcsQ0FBQyxFQUMxRSxDQUNKLEVBQ1dMLElBQXFDLENBQzVDLEVBQ0FsQixHQUNBakQsSUFDQSxFQUNBLENBQUNFLEdBQUkwQixJQUFRL0IsR0FBTXdCLElBQU1FLElBQUt0QixJQUFLNEIsRUFBRyxFQUN0QyxDQUFDLENBQUMsSUFBTXVDLEdBQWMsQ0FBQyxFQUFHLEVBQUcsSUFBTUwsR0FBa0IsRUFBRyxFQUFHLEVBQUcsQ0FBQyxDQUNuRSxFQUNXSyxHQUFlLENBQ3RCLEVBQ0FuQixHQUNBL0MsR0FDQSxFQUNBLENBQUNWLElBQU1tQyxJQUFNSSxJQUFLMUIsR0FBRSxFQUNwQixDQUFDLEVBQUcsQ0FBQyxJQUFNd0QsSUFBcUIsQ0FBQyxFQUFHLEVBQUcsQ0FBQyxFQUN4QyxDQUNKLEVBQ1dRLElBQXdCLENBQUMsRUFBR3BCLEdBQUk5QixJQUFNLEVBQUcsQ0FBQ21CLEdBQUUsRUFBRyxDQUFDLENBQUMsQ0FBQyxFQUNsRGdDLElBQW1CLENBQUMsRUFBR3JCLEdBQUkvQixJQUFNLEVBQUcsQ0FBQ0gsSUFBTVosR0FBRyxFQUFHLENBQUMsRUFBRyxDQUFDLENBQUMsRUFDdkRvRSxJQUFPLENBQUMsRUFBR3RCLEdBQUlkLElBQUssRUFBRyxDQUFDeEIsSUFBSXlCLEdBQUUsRUFBRyxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFDakRvQyxJQUEyQixDQUFDLEVBQUd2QixHQUFJSCxJQUFPLEVBQUcsSUFBTXVCLEdBQXFCLEVBQ3hFSSxJQUEyQixDQUFDLEVBQUd4QixHQUFJaEMsSUFBTyxFQUFHLElBQU1xRCxHQUFnQixFQUVuRUksSUFBYyxDQUFDLEVBQUd6QixHQUFJRCxJQUFNLEVBQUcsSUFBTXVCLEdBQUksRUFDbENJLEdBQWMsQ0FBQyxFQUFHMUIsR0FBSXhELElBQUssRUFBRyxJQUFNdUUsSUFBb0IsSUFBTUMsR0FBbUIsRUFDakZXLEdBQTZCLENBQ3BDLEVBQ0EzQixHQUNBbkQsSUFDQSxFQUNBLElBQU1vRSxJQUNOLElBQU1DLEdBQ1YsSUMvTEEsSUFFQXNCLElBQ0FDLElBQ0FDLElBQ0FDLEdBQ0FDLEdBSWFDLElBVmJDLElBQUFDLEVBQUEsS0FBQUMsS0FDQUMsS0FDQVQsSUFBNkIsd0JBQzdCQyxJQUEyQixpQ0FDM0JDLElBQXlCLDhCQUN6QkMsR0FBcUMsK0JBQ3JDQyxHQUFpQyw2QkFDakNNLEtBQ0FDLE1BQ0FDLEtBQ2FQLElBQW9CUSxJQUN0QixDQUNILFdBQVksYUFDWixjQUFlQSxHQUFRLGVBQWlCLGNBQ3hDLGNBQWVBLEdBQVEsZUFBaUIsWUFDeEMsa0JBQW1CQSxHQUFRLG1CQUFxQixHQUNoRCxpQkFBa0JBLEdBQVEsa0JBQW9CQyxJQUM5QyxXQUFZRCxHQUFRLFlBQWMsQ0FBQyxFQUNuQyx1QkFBd0JBLEdBQVEsd0JBQTBCRSxJQUMxRCxnQkFBaUJGLEdBQVEsaUJBQW1CLENBQ3hDLENBQ0ksU0FBVSxpQkFDVixpQkFBbUJHLEdBQVFBLEVBQUksb0JBQW9CLGdCQUFnQixFQUNuRSxPQUFRLElBQUlDLEVBQ2hCLEVBQ0EsQ0FDSSxTQUFVLG9CQUNWLGlCQUFtQkQsR0FBUUEsRUFBSSxvQkFBb0IsbUJBQW1CLElBQU0sVUFBYSxDQUFDLElBQzFGLE9BQVEsSUFBSSxnQkFDaEIsQ0FDSixFQUNBLE9BQVFILEdBQVEsUUFBVSxJQUFJLGVBQzlCLFNBQVVBLEdBQVEsVUFBWUssR0FDOUIsaUJBQWtCTCxHQUFRLGtCQUFvQixDQUMxQyxpQkFBa0Isb0JBQ2xCLG9CQUFBTSxHQUNBLGFBQWMsNENBQ2QsUUFBUyxhQUNULGNBQWUsa0NBQ25CLEVBQ0EsVUFBV04sR0FBUSxXQUFhLE1BQ2hDLFVBQVdBLEdBQVEsV0FBYSxhQUNoQyxZQUFhQSxHQUFRLGFBQWUsWUFDcEMsWUFBYUEsR0FBUSxhQUFlLFNBQ3hDLEtDNUNKLElBRUFPLEdBQ0FDLEdBQ0FDLElBQ0FDLElBQ0FDLEdBQ0FDLEdBQ0FDLEdBQ0FDLEdBQ0FDLElBQ0FDLElBQ0FDLElBRWFDLElBZGJDLElBQUFDLEVBQUEsS0FBQUMsS0FDQUMsS0FDQWYsR0FBMkUsUUFDM0VDLEdBQWdLLG1DQUNoS0MsSUFBNkIsd0JBQzdCQyxJQUFxQiw2QkFDckJDLEdBQWdGLG9DQUNoRkMsR0FBNkMsd0NBQzdDQyxHQUFtRSxxQ0FDbkVDLEdBQTJFLGlDQUMzRUMsSUFBb0MseUNBQ3BDQyxJQUEwQywyQ0FDMUNDLElBQW1DLDhCQUNuQ00sTUFDYUwsSUFBb0JNLEdBQVcsSUFDeEMsb0NBQWdDLFFBQVEsT0FBTyxFQUMvQyxJQUFNQyxLQUFlLCtCQUEwQkQsQ0FBTSxFQUMvQ0UsRUFBd0IsSUFBTUQsRUFBYSxFQUFFLEtBQUssNEJBQXlCLEVBQzNFRSxFQUFxQlQsSUFBdUJNLENBQU0sRUFDeERJLEdBQWdCLFFBQVEsT0FBTyxFQUMvQixJQUFNQyxFQUFlLENBQ2pCLFFBQVNMLEdBQVEsUUFDakIsT0FBUUcsRUFBbUIsTUFDL0IsRUFDQSxNQUFPLENBQ0gsR0FBR0EsRUFDSCxHQUFHSCxFQUNILFFBQVMsT0FDVCxhQUFBQyxFQUNBLHFCQUFzQkQsR0FBUSx5QkFBd0IsR0FBQU0sWUFBZUMsR0FBcUNGLENBQVksRUFDdEgsa0JBQW1CTCxHQUFRLG1CQUFxQix3QkFDaEQseUJBQTBCQSxHQUFRLDZCQUM5QixtQ0FBK0IsQ0FBRSxVQUFXRyxFQUFtQixVQUFXLGNBQWVLLEdBQVksT0FBUSxDQUFDLEVBQ2xILGdCQUFpQlIsR0FBUSxpQkFBbUIsQ0FDeEMsQ0FDSSxTQUFVLGlCQUNWLGlCQUFtQlMsR0FBUUEsRUFBSSxvQkFBb0IsZ0JBQWdCLElBQzlELE1BQU9DLEdBQVksTUFBTVYsRUFBTywwQkFBMEJVLEdBQVMsVUFBWSxDQUFDLENBQUMsRUFBRSxHQUN4RixPQUFRLElBQUlDLEVBQ2hCLEVBQ0EsQ0FDSSxTQUFVLG9CQUNWLGlCQUFtQkYsR0FBUUEsRUFBSSxvQkFBb0IsbUJBQW1CLElBQU0sVUFBYSxDQUFDLElBQzFGLE9BQVEsSUFBSSxnQkFDaEIsQ0FDSixFQUNBLFlBQWFULEdBQVEsZ0JBQWUsR0FBQU0sWUFBZSxtQ0FBaUNOLENBQU0sRUFDMUYsT0FBUUEsR0FBUSxXQUNaLEdBQUFNLFlBQWUsOEJBQTRCLENBQUUsR0FBRyxtQ0FBaUMsR0FBR0QsQ0FBYSxDQUFDLEVBQ3RHLGVBQWdCLEdBQUFPLGdCQUFlLE9BQU9aLEdBQVEsZ0JBQWtCRSxDQUFxQixFQUNyRixVQUFXRixHQUFRLGNBQ2YsR0FBQU0sWUFBZSxDQUNYLEdBQUcsa0NBQ0gsUUFBUyxVQUFhLE1BQU1KLEVBQXNCLEdBQUcsV0FBYSxzQkFDdEUsRUFBR0YsQ0FBTSxFQUNiLE9BQVFBLEdBQVEsUUFBVSxTQUFLLEtBQUssS0FBTSxRQUFRLEVBQ2xELGdCQUFpQkEsR0FBUSxpQkFBbUIsbUJBQzVDLHFCQUFzQkEsR0FBUSx5QkFBd0IsR0FBQU0sWUFBZSw4Q0FBNENELENBQVksRUFDN0gsZ0JBQWlCTCxHQUFRLG9CQUFtQixHQUFBTSxZQUFlLHlDQUF1Q0QsQ0FBWSxFQUM5RyxlQUFnQkwsR0FBUSxtQkFBa0IsR0FBQU0sWUFBZSw4QkFBNEJELENBQVksQ0FDckcsQ0FDSixJQzdEQSxJQUFhUSxJQStCQUMsSUEvQmJDLElBQUFDLEVBQUEsS0FBYUgsSUFBcUNJLEdBQWtCLENBQ2hFLElBQU1DLEVBQW1CRCxFQUFjLGdCQUNuQ0UsRUFBMEJGLEVBQWMsdUJBQ3hDRyxFQUFlSCxFQUFjLFlBQ2pDLE1BQU8sQ0FDSCxrQkFBa0JJLEVBQWdCLENBQzlCLElBQU1DLEVBQVFKLEVBQWlCLFVBQVdLLEdBQVdBLEVBQU8sV0FBYUYsRUFBZSxRQUFRLEVBQzVGQyxJQUFVLEdBQ1ZKLEVBQWlCLEtBQUtHLENBQWMsRUFHcENILEVBQWlCLE9BQU9JLEVBQU8sRUFBR0QsQ0FBYyxDQUV4RCxFQUNBLGlCQUFrQixDQUNkLE9BQU9ILENBQ1gsRUFDQSwwQkFBMEJNLEVBQXdCLENBQzlDTCxFQUEwQkssQ0FDOUIsRUFDQSx3QkFBeUIsQ0FDckIsT0FBT0wsQ0FDWCxFQUNBLGVBQWVNLEVBQWEsQ0FDeEJMLEVBQWVLLENBQ25CLEVBQ0EsYUFBYyxDQUNWLE9BQU9MLENBQ1gsQ0FDSixDQUNKLEVBQ2FOLElBQWdDWSxJQUNsQyxDQUNILGdCQUFpQkEsRUFBTyxnQkFBZ0IsRUFDeEMsdUJBQXdCQSxFQUFPLHVCQUF1QixFQUN0RCxZQUFhQSxFQUFPLFlBQVksQ0FDcEMsS0NwQ0osSUFBQUMsR0FDQUMsR0FDQUMsR0FFYUMsSUFKYkMsSUFBQUMsRUFBQSxLQUFBTCxHQUE0RixRQUM1RkMsR0FBc0YsaUNBQ3RGQyxHQUE4RSxpQ0FDOUVJLE1BQ2FILElBQTJCLENBQUNJLEVBQWVDLElBQWUsQ0FDbkUsSUFBTUMsRUFBeUIsT0FBTyxVQUFPLHVDQUFtQ0YsQ0FBYSxLQUFHLHFDQUFpQ0EsQ0FBYSxLQUFHLHlDQUFxQ0EsQ0FBYSxFQUFHRyxJQUFrQ0gsQ0FBYSxDQUFDLEVBQ3RQLE9BQUFDLEVBQVcsUUFBU0csR0FBY0EsRUFBVSxVQUFVRixDQUFzQixDQUFDLEVBQ3RFLE9BQU8sT0FBT0YsS0FBZSwyQ0FBdUNFLENBQXNCLEtBQUcsZ0NBQTRCQSxDQUFzQixLQUFHLG9DQUFnQ0EsQ0FBc0IsRUFBR0csSUFBNkJILENBQXNCLENBQUMsQ0FDMVEsSUNSQSxJQUFBSSxHQUNBQyxJQUNBQyxJQUNBQyxHQUNBQyxJQUNBQyxHQUNBQyxJQUNBQyxJQUNBQyxJQUNBQyxHQUNBQyxHQU1hQyxHQWhCYkMsR0FBQUMsRUFBQSxLQUFBYixHQUE4RCxRQUM5REMsSUFBZ0MsUUFDaENDLElBQTRDLFFBQzVDQyxHQUE0RCxRQUM1REMsSUFBb0MsbUNBQ3BDQyxHQUE2Ryx3QkFDN0dDLElBQXFDLCtCQUNyQ0MsSUFBdUMsNkNBQ3ZDQyxJQUF1Qyx1Q0FDdkNDLEdBQW9ELG9DQUNwREMsR0FBb0MsaUNBQ3BDSSxLQUNBQyxLQUNBQyxNQUNBQyxNQUVhTixHQUFOLGNBQXdCLEdBQUFPLE1BQVMsQ0FDcEMsT0FDQSxlQUFlLENBQUNDLENBQWEsRUFBRyxDQUM1QixJQUFNQyxFQUFZQyxJQUFtQkYsR0FBaUIsQ0FBQyxDQUFDLEVBQ3hELE1BQU1DLENBQVMsRUFDZixLQUFLLFdBQWFBLEVBQ2xCLElBQU1FLEVBQVlDLElBQWdDSCxDQUFTLEVBQ3JESSxLQUFZLDJCQUF1QkYsQ0FBUyxFQUM1Q0csS0FBWSx1QkFBbUJELENBQVMsRUFDeENFLEtBQVkseUJBQW9CRCxDQUFTLEVBQ3pDRSxLQUFZLDRCQUF3QkQsQ0FBUyxFQUM3Q0UsS0FBWSwyQkFBc0JELENBQVMsRUFDM0NFLEVBQVlDLElBQTRCRixDQUFTLEVBQ2pERyxFQUFZQyxJQUF5QkgsRUFBV1YsR0FBZSxZQUFjLENBQUMsQ0FBQyxFQUNyRixLQUFLLE9BQVNZLEVBQ2QsS0FBSyxnQkFBZ0IsT0FBSSwwQkFBcUIsS0FBSyxNQUFNLENBQUMsRUFDMUQsS0FBSyxnQkFBZ0IsT0FBSSx1QkFBbUIsS0FBSyxNQUFNLENBQUMsRUFDeEQsS0FBSyxnQkFBZ0IsT0FBSSxtQkFBZSxLQUFLLE1BQU0sQ0FBQyxFQUNwRCxLQUFLLGdCQUFnQixPQUFJLDRCQUF1QixLQUFLLE1BQU0sQ0FBQyxFQUM1RCxLQUFLLGdCQUFnQixPQUFJLHdCQUFvQixLQUFLLE1BQU0sQ0FBQyxFQUN6RCxLQUFLLGdCQUFnQixPQUFJLHFCQUFnQixLQUFLLE1BQU0sQ0FBQyxFQUNyRCxLQUFLLGdCQUFnQixPQUFJLGlDQUE0QixLQUFLLE1BQU0sQ0FBQyxFQUNqRSxLQUFLLGdCQUFnQixPQUFJLDJDQUF1QyxLQUFLLE9BQVEsQ0FDekUsaUNBQWtDRSxJQUNsQywrQkFBZ0MsTUFBT0MsR0FBVyxJQUFJLGlDQUE4QixDQUNoRixpQkFBa0JBLEVBQU8sV0FDN0IsQ0FBQyxDQUNMLENBQUMsQ0FBQyxFQUNGLEtBQUssZ0JBQWdCLE9BQUkseUJBQXFCLEtBQUssTUFBTSxDQUFDLENBQzlELENBQ0EsU0FBVSxDQUNOLE1BQU0sUUFBUSxDQUNsQixDQUNKLElDakRBLElBQUFDLElBQ0FDLElBSWFDLEdBTGJDLEdBQUFDLEVBQUEsS0FBQUosSUFBa0MsdUNBQ2xDQyxJQUFvQyxpQ0FDcENJLEtBQ0FDLEtBRWFKLEdBQU4sY0FBZ0MsSUFBQUssUUFDbEMsYUFBYSxFQUNiLEdBQUdDLEVBQVksRUFDZixFQUFFLFNBQVVDLEVBQVNDLEVBQUlDLEVBQVFDLEVBQUcsQ0FDckMsTUFBTyxJQUFDLHVCQUFrQkQsRUFBUUYsRUFBUSxpQ0FBaUMsQ0FBQyxDQUFDLENBQ2pGLENBQUMsRUFDSSxFQUFFLG1DQUFvQyxhQUFjLENBQUMsQ0FBQyxFQUN0RCxFQUFFLFlBQWEsbUJBQW1CLEVBQ2xDLEdBQUdJLEVBQVcsRUFDZCxNQUFNLENBQUUsQ0FDYixJQ2ZBLElBQUFDLElBQ0FDLElBSWFDLEdBTGJDLEdBQUFDLEVBQUEsS0FBQUosSUFBa0MsdUNBQ2xDQyxJQUFvQyxpQ0FDcENJLEtBQ0FDLEtBRWFKLEdBQU4sY0FBK0MsSUFBQUssUUFDakQsYUFBYSxFQUNiLEdBQUdDLEVBQVksRUFDZixFQUFFLFNBQVVDLEVBQVNDLEVBQUlDLEVBQVFDLEVBQUcsQ0FDckMsTUFBTyxJQUFDLHVCQUFrQkQsRUFBUUYsRUFBUSxpQ0FBaUMsQ0FBQyxDQUFDLENBQ2pGLENBQUMsRUFDSSxFQUFFLG1DQUFvQyw0QkFBNkIsQ0FBQyxDQUFDLEVBQ3JFLEVBQUUsWUFBYSxrQ0FBa0MsRUFDakQsR0FBR0ksRUFBMEIsRUFDN0IsTUFBTSxDQUFFLENBQ2IsSUNmQSxJQUFBQyxJQUlNQyxJQUlPQyxHQVJiQyxJQUFBQyxFQUFBLEtBQUFKLElBQXVDLGlDQUN2Q0ssS0FDQUMsS0FDQUMsS0FDTU4sSUFBVyxDQUNiLGtCQUFBTyxHQUNBLGlDQUFBQyxFQUNKLEVBQ2FQLEdBQU4sY0FBa0JRLEVBQVUsQ0FDbkMsS0FDQSw0QkFBdUJULElBQVVDLEVBQUcsSUNWcEMsSUFBQVMsSUFBQUMsRUFBQSxLQUFBQyxLQUNBQyxPQ0RBLElBQUFDLElBQUFDLEVBQUEsUUNBQSxJQUNBQyxJQUdNQyxJQVNBQyxJQVFPQyxJQXVDQUMsSUE0Q1BDLElBeEdOQyxJQUFBQyxFQUFBLEtBQUFDLEtBQ0FSLElBQXlDLFFBQ3pDUyxLQUNBQyxLQUNNVCxJQUFtQ1UsR0FBb0IsQ0FDekQsR0FBSSxPQUFPQSxHQUFpQixLQUFRLFNBQVUsQ0FDMUMsSUFBTUMsRUFBZ0JELEVBQWdCLElBQUksTUFBTSxHQUFHLEVBQ25ELEdBQUlDLEVBQWMsT0FBUyxHQUFLQSxFQUFjLENBQUMsSUFBTSxHQUNqRCxPQUFPQSxFQUFjLENBQUMsQ0FFOUIsQ0FFSixFQUNNVixJQUFnQixNQUFPVyxFQUFTQyxFQUFlQyxFQUEwQkMsRUFBZSxDQUFDLElBQU0sQ0FDakcsSUFBTUMsRUFBUyxPQUFPSixHQUFZLFdBQWEsTUFBTUEsRUFBUSxFQUFJQSxFQUMzREssRUFBZSxPQUFPSixHQUFrQixXQUFhLE1BQU1BLEVBQWMsRUFBSUEsRUFDL0VLLEVBQW1CLEdBQ2pCQyxFQUFpQkgsR0FBVUMsSUFBaUJDLEVBQW1CLFFBQU0sOEJBQXlCSCxDQUFZLEVBQUUsR0FDbEgsT0FBQUQsR0FBMEIsUUFBUSxxQ0FBc0Msc0JBQXVCLEdBQUdFLENBQU0sc0NBQXVDLEdBQUdDLENBQVksdUJBQXdCLEdBQUdDLENBQWdCLDBEQUEwRCxFQUM1UEMsQ0FDWCxFQUNhakIsSUFBd0IsQ0FBQ2tCLEVBQVlDLElBQWMsQ0FDNUQsSUFBSUMsRUFDQUMsRUFDSixNQUFPLE9BQU9DLEVBQWFDLElBQVcsQ0FFbEMsR0FEQUYsRUFBcUJDLEVBQ2pCLENBQUNGLEVBQVcsQ0FDWixHQUFNLENBQUUsT0FBQUksRUFBU04sR0FBWSxvQkFBb0IsT0FBUSxRQUFBTyxFQUFVUCxHQUFZLG9CQUFvQixRQUFTLE9BQUFKLEVBQVEsZUFBQVksRUFBaUJSLEdBQVksb0JBQW9CLGVBQWdCLHlCQUFBTixFQUEwQixlQUFBZSxFQUFpQlQsR0FBWSxvQkFBb0IsY0FBZ0IsRUFBSUEsRUFDOVFELEVBQWlCLE1BQU1sQixJQUFjZSxFQUFRSSxHQUFZLG9CQUFvQixPQUFRTixFQUEwQixDQUNqSCxPQUFBWSxFQUNBLFFBQUFDLENBQ0osQ0FBQyxFQUNLRyxFQUE2QixDQUFDMUIsSUFBS3dCLENBQWMsRUFDdkROLEVBQVksSUFBSUQsRUFBVSxDQUN0QixHQUFHRCxFQUNILGVBQUFTLEVBQ0EsUUFBQUYsRUFDQSwwQkFBMkIsSUFBTSxTQUFZSixFQUM3QyxPQUFRSixFQUNSLGVBQWdCVyxFQUE2QkYsRUFBaUIsT0FDOUQsT0FBUUYsQ0FDWixDQUFDLENBQ0wsQ0FDQSxHQUFNLENBQUUsWUFBQUssRUFBYSxnQkFBQUMsQ0FBZ0IsRUFBSSxNQUFNVixFQUFVLEtBQUssSUFBSVcsR0FBa0JSLENBQU0sQ0FBQyxFQUMzRixHQUFJLENBQUNNLEdBQWUsQ0FBQ0EsRUFBWSxhQUFlLENBQUNBLEVBQVksZ0JBQ3pELE1BQU0sSUFBSSxNQUFNLHVEQUF1RE4sRUFBTyxPQUFPLEVBQUUsRUFFM0YsSUFBTVMsRUFBWWxDLElBQWdDZ0MsQ0FBZSxFQUMzREcsRUFBYyxDQUNoQixZQUFhSixFQUFZLFlBQ3pCLGdCQUFpQkEsRUFBWSxnQkFDN0IsYUFBY0EsRUFBWSxhQUMxQixXQUFZQSxFQUFZLFdBQ3hCLEdBQUlBLEVBQVksaUJBQW1CLENBQUUsZ0JBQWlCQSxFQUFZLGVBQWdCLEVBQ2xGLEdBQUlHLEdBQWEsQ0FBRSxVQUFBQSxDQUFVLENBQ2pDLEVBQ0EsT0FBQUUsR0FBcUJELEVBQWEsOEJBQStCLEdBQUcsRUFDN0RBLENBQ1gsQ0FDSixFQUNhaEMsSUFBdUMsQ0FBQ2lCLEVBQVlDLElBQWMsQ0FDM0UsSUFBSUMsRUFDSixNQUFPLE9BQU9HLEdBQVcsQ0FDckIsR0FBSSxDQUFDSCxFQUFXLENBQ1osR0FBTSxDQUFFLE9BQUFJLEVBQVNOLEdBQVksb0JBQW9CLE9BQVEsUUFBQU8sRUFBVVAsR0FBWSxvQkFBb0IsUUFBUyxPQUFBSixFQUFRLGVBQUFZLEVBQWlCUixHQUFZLG9CQUFvQixlQUFnQix5QkFBQU4sRUFBMEIsZUFBQWUsRUFBaUJULEdBQVksb0JBQW9CLGNBQWdCLEVBQUlBLEVBQzlRRCxFQUFpQixNQUFNbEIsSUFBY2UsRUFBUUksR0FBWSxvQkFBb0IsT0FBUU4sRUFBMEIsQ0FDakgsT0FBQVksRUFDQSxRQUFBQyxDQUNKLENBQUMsRUFDS0csRUFBNkIsQ0FBQzFCLElBQUt3QixDQUFjLEVBQ3ZETixFQUFZLElBQUlELEVBQVUsQ0FDdEIsR0FBR0QsRUFDSCxlQUFBUyxFQUNBLFFBQUFGLEVBQ0EsT0FBUVIsRUFDUixlQUFnQlcsRUFBNkJGLEVBQWlCLE9BQzlELE9BQVFGLENBQ1osQ0FBQyxDQUNMLENBQ0EsR0FBTSxDQUFFLFlBQUFLLEVBQWEsZ0JBQUFDLENBQWdCLEVBQUksTUFBTVYsRUFBVSxLQUFLLElBQUllLEdBQWlDWixDQUFNLENBQUMsRUFDMUcsR0FBSSxDQUFDTSxHQUFlLENBQUNBLEVBQVksYUFBZSxDQUFDQSxFQUFZLGdCQUN6RCxNQUFNLElBQUksTUFBTSxzRUFBc0VOLEVBQU8sT0FBTyxFQUFFLEVBRTFHLElBQU1TLEVBQVlsQyxJQUFnQ2dDLENBQWUsRUFDM0RHLEVBQWMsQ0FDaEIsWUFBYUosRUFBWSxZQUN6QixnQkFBaUJBLEVBQVksZ0JBQzdCLGFBQWNBLEVBQVksYUFDMUIsV0FBWUEsRUFBWSxXQUN4QixHQUFJQSxFQUFZLGlCQUFtQixDQUFFLGdCQUFpQkEsRUFBWSxlQUFnQixFQUNsRixHQUFJRyxHQUFhLENBQUUsVUFBQUEsQ0FBVSxDQUNqQyxFQUNBLE9BQUlBLEdBQ0FFLEdBQXFCRCxFQUFhLHNCQUF1QixHQUFHLEVBRWhFQyxHQUFxQkQsRUFBYSxxQ0FBc0MsR0FBRyxFQUNwRUEsQ0FDWCxDQUNKLEVBTU0vQixJQUFRd0IsR0FDSEEsR0FBZ0IsVUFBVSxrQkFBb0IsT0N6R3pELElBRU1VLElBYU9DLElBQ0FDLElBQ0FDLElBakJiQyxJQUFBQyxFQUFBLEtBQUFDLE1BQ0FDLEtBQ01QLElBQStCLENBQUNRLEVBQVVDLElBQ3ZDQSxFQUdNLGNBQW9DRCxDQUFTLENBQ2hELFlBQVlFLEVBQVEsQ0FDaEIsTUFBTUEsQ0FBTSxFQUNaLFFBQVdDLEtBQWlCRixFQUN4QixLQUFLLGdCQUFnQixJQUFJRSxDQUFhLENBRTlDLENBQ0osRUFUT0gsRUFXRlAsSUFBd0IsQ0FBQ1csRUFBYSxDQUFDLEVBQUdDLElBQWVaLElBQXlCVyxFQUFZWixJQUE2QmMsR0FBV0QsQ0FBVSxDQUFDLEVBQ2pKWCxJQUF1QyxDQUFDVSxFQUFhLENBQUMsRUFBR0MsSUFBZVgsSUFBd0NVLEVBQVlaLElBQTZCYyxHQUFXRCxDQUFVLENBQUMsRUFDL0tWLElBQXFDWSxHQUFjQyxHQUFVRCxFQUFTLENBQy9FLFlBQWFkLElBQXNCZSxDQUFLLEVBQ3hDLDJCQUE0QmQsSUFBcUNjLENBQUssRUFDdEUsR0FBR0EsQ0FDUCxDQUFDLElDckJELElBQUFDLEdBQUEsR0FBQUMsR0FBQUQsR0FBQSxpQkFBQUUsR0FBQSxzQkFBQUMsR0FBQSx1QkFBQUMsSUFBQSx3QkFBQUMsSUFBQSwrQkFBQUMsR0FBQSxxQ0FBQUMsR0FBQSxzQ0FBQUMsSUFBQSx1Q0FBQUMsSUFBQSxxQkFBQUMsR0FBQSxpQkFBQUMsR0FBQSwwQkFBQUMsR0FBQSwyQkFBQUMsSUFBQSxtQ0FBQUMsR0FBQSxvQ0FBQUMsSUFBQSw4QkFBQUMsR0FBQSwrQkFBQUMsSUFBQSxrQ0FBQUMsR0FBQSxtQ0FBQUMsSUFBQSxxQ0FBQUMsR0FBQSxzQ0FBQUMsSUFBQSxrQ0FBQUMsR0FBQSxtQ0FBQUMsSUFBQSwwQkFBQUMsSUFBQSxxQkFBQUMsSUFBQSw0QkFBQUMsR0FBQSw2QkFBQUMsSUFBQSxRQUFBQyxHQUFBLGNBQUFDLEdBQUEsd0JBQUFDLEdBQUEseUJBQUFDLElBQUEsU0FBQUMsSUFBQSxnQkFBQUMsT0FBQSxzQ0FBQUMsSUFBQSx3QkFBQUMsR0FBQSwwQkFBQUMsSUFBQSx5Q0FBQUMsTUFBQSxJQUFBQyxHQUFBQyxFQUFBLEtBQUFDLEtBQ0FDLE1BQ0FDLE1BQ0FDLEtBQ0FDLEtBQ0FDLE1BQ0FDLE1BQ0FDLE9DUEEsSUFBQUMsR0FBQUMsRUFBQUMsS0FBQSxjQUVBLElBQUlDLEdBQXNCLFFBQVEsZ0NBQWdDLEVBQzlEQyxHQUFtQixRQUFRLDJCQUEyQixFQUN0REMsSUFBZ0IsUUFBUSxlQUFlLEVBQ3ZDQyxJQUFPLFFBQVEsTUFBTSxFQUNyQkMsSUFBUyxjQUVQQyxJQUFpQyxDQUFDQyxFQUFhQyxFQUFNQyxJQUFhLENBQ3BFLEdBQUlELEVBQUssVUFBWSxFQUNqQixNQUFNLE1BQU0sV0FBV0QsQ0FBVywrQ0FBK0MsRUFFckYsR0FBSUMsRUFBSyxjQUFnQixRQUFhQSxFQUFLLGtCQUFvQixPQUMzRCxNQUFNLE1BQU0sV0FBV0QsQ0FBVyxtREFBbUQsRUFFekYsR0FBSUMsRUFBSyxXQUFZLENBQ2pCLElBQU1FLEVBQWMsSUFBSSxLQUV4QixHQURtQixJQUFJLEtBQUtGLEVBQUssVUFBVSxFQUMxQkUsRUFDYixNQUFNLE1BQU0sV0FBV0gsQ0FBVyxtREFBbUQsQ0FFN0YsQ0FDQSxJQUFJSSxFQUFZSCxFQUFLLFVBQ2pCLENBQUNHLEdBQWFGLElBQVdGLENBQVcsR0FBRyxpQkFDdkNJLEVBQVlGLEVBQVNGLENBQVcsRUFBRSxnQkFFdEMsSUFBTUssRUFBYyxDQUNoQixZQUFhSixFQUFLLFlBQ2xCLGdCQUFpQkEsRUFBSyxnQkFDdEIsR0FBSUEsRUFBSyxjQUFnQixDQUFFLGFBQWNBLEVBQUssWUFBYSxFQUMzRCxHQUFJQSxFQUFLLFlBQWMsQ0FBRSxXQUFZLElBQUksS0FBS0EsRUFBSyxVQUFVLENBQUUsRUFDL0QsR0FBSUEsRUFBSyxpQkFBbUIsQ0FBRSxnQkFBaUJBLEVBQUssZUFBZ0IsRUFDcEUsR0FBSUcsR0FBYSxDQUFFLFVBQUFBLENBQVUsQ0FDakMsRUFDQSxPQUFBTixJQUFPLHFCQUFxQk8sRUFBYSxzQkFBdUIsR0FBRyxFQUM1REEsQ0FDWCxFQUVNQyxJQUE0QixNQUFPTixFQUFhRSxFQUFVSyxJQUFXLENBQ3ZFLElBQU1DLEVBQVVOLEVBQVNGLENBQVcsRUFDcEMsR0FBSUUsRUFBU0YsQ0FBVyxFQUFHLENBQ3ZCLElBQU1TLEVBQW9CRCxFQUFRLG1CQUNsQyxHQUFJQyxJQUFzQixPQUFXLENBQ2pDLElBQU1DLEVBQWNiLElBQUssVUFBVUgsR0FBb0IseUJBQXlCLGlCQUFpQixFQUFFLE1BQVFFLElBQWMsSUFBSSxFQUM3SCxHQUFJLENBQ0EsR0FBTSxDQUFFLE9BQUFlLENBQU8sRUFBSSxNQUFNRCxFQUFZRCxDQUFpQixFQUNsRFIsRUFDSixHQUFJLENBQ0FBLEVBQU8sS0FBSyxNQUFNVSxFQUFPLEtBQUssQ0FBQyxDQUNuQyxNQUNNLENBQ0YsTUFBTSxNQUFNLFdBQVdYLENBQVcsNENBQTRDLENBQ2xGLENBQ0EsT0FBT0QsSUFBK0JDLEVBQWFDLEVBQU1DLENBQVEsQ0FDckUsT0FDT1UsRUFBTyxDQUNWLE1BQU0sSUFBSWpCLEdBQWlCLHlCQUF5QmlCLEVBQU0sUUFBUyxDQUFFLE9BQUFMLENBQU8sQ0FBQyxDQUNqRixDQUNKLEtBRUksT0FBTSxJQUFJWixHQUFpQix5QkFBeUIsV0FBV0ssQ0FBVyx1Q0FBd0MsQ0FBRSxPQUFBTyxDQUFPLENBQUMsQ0FFcEksS0FFSSxPQUFNLElBQUlaLEdBQWlCLHlCQUF5QixXQUFXSyxDQUFXLGtEQUFtRCxDQUN6SCxPQUFBTyxDQUNKLENBQUMsQ0FFVCxFQUVNTSxJQUFjLENBQUNDLEVBQU8sQ0FBQyxJQUFNLE1BQU8sQ0FBRSxtQkFBQUMsQ0FBbUIsRUFBSSxDQUFDLElBQU0sQ0FDdEVELEVBQUssUUFBUSxNQUFNLG9EQUFvRCxFQUN2RSxJQUFNWixFQUFXLE1BQU1SLEdBQW9CLGdCQUFnQm9CLENBQUksRUFDL0QsT0FBT1IsSUFBMEJaLEdBQW9CLGVBQWUsQ0FDaEUsUUFBU29CLEVBQUssU0FBV0MsR0FBb0IsT0FDakQsQ0FBQyxFQUFHYixFQUFVWSxFQUFLLE1BQU0sQ0FDN0IsRUFFQXJCLElBQVEsWUFBY29CLE1DOUV0QixJQUFBRyxHQUFBQyxFQUFBQyxJQUFBLGNBQ0EsSUFBSUMsSUFBbUJELElBQVFBLEdBQUssa0JBQXFCLE9BQU8sT0FBVSxTQUFTRSxFQUFHQyxFQUFHQyxFQUFHQyxFQUFJLENBQ3hGQSxJQUFPLFNBQVdBLEVBQUtELEdBQzNCLElBQUlFLEVBQU8sT0FBTyx5QkFBeUJILEVBQUdDLENBQUMsR0FDM0MsQ0FBQ0UsSUFBUyxRQUFTQSxFQUFPLENBQUNILEVBQUUsV0FBYUcsRUFBSyxVQUFZQSxFQUFLLGlCQUNsRUEsRUFBTyxDQUFFLFdBQVksR0FBTSxJQUFLLFVBQVcsQ0FBRSxPQUFPSCxFQUFFQyxDQUFDLENBQUcsQ0FBRSxHQUU5RCxPQUFPLGVBQWVGLEVBQUdHLEVBQUlDLENBQUksQ0FDckMsRUFBTSxTQUFTSixFQUFHQyxFQUFHQyxFQUFHQyxFQUFJLENBQ3BCQSxJQUFPLFNBQVdBLEVBQUtELEdBQzNCRixFQUFFRyxDQUFFLEVBQUlGLEVBQUVDLENBQUMsQ0FDZixHQUNJRyxJQUFzQlAsSUFBUUEsR0FBSyxxQkFBd0IsT0FBTyxPQUFVLFNBQVNFLEVBQUdNLEVBQUcsQ0FDM0YsT0FBTyxlQUFlTixFQUFHLFVBQVcsQ0FBRSxXQUFZLEdBQU0sTUFBT00sQ0FBRSxDQUFDLENBQ3RFLEVBQUssU0FBU04sRUFBR00sRUFBRyxDQUNoQk4sRUFBRSxRQUFhTSxDQUNuQixHQUNJQyxJQUFnQlQsSUFBUUEsR0FBSyxjQUFrQixVQUFZLENBQzNELElBQUlVLEVBQVUsU0FBU1IsRUFBRyxDQUN0QixPQUFBUSxFQUFVLE9BQU8scUJBQXVCLFNBQVVSLEVBQUcsQ0FDakQsSUFBSVMsRUFBSyxDQUFDLEVBQ1YsUUFBU1AsS0FBS0YsRUFBTyxPQUFPLFVBQVUsZUFBZSxLQUFLQSxFQUFHRSxDQUFDLElBQUdPLEVBQUdBLEVBQUcsTUFBTSxFQUFJUCxHQUNqRixPQUFPTyxDQUNYLEVBQ09ELEVBQVFSLENBQUMsQ0FDcEIsRUFDQSxPQUFPLFNBQVVVLEVBQUssQ0FDbEIsR0FBSUEsR0FBT0EsRUFBSSxXQUFZLE9BQU9BLEVBQ2xDLElBQUlDLEVBQVMsQ0FBQyxFQUNkLEdBQUlELEdBQU8sS0FBTSxRQUFTUixFQUFJTSxFQUFRRSxDQUFHLEVBQUdFLEVBQUksRUFBR0EsRUFBSVYsRUFBRSxPQUFRVSxJQUFTVixFQUFFVSxDQUFDLElBQU0sV0FBV2IsSUFBZ0JZLEVBQVFELEVBQUtSLEVBQUVVLENBQUMsQ0FBQyxFQUMvSCxPQUFBUCxJQUFtQk0sRUFBUUQsQ0FBRyxFQUN2QkMsQ0FDWCxDQUNKLEVBQUcsRUFDSCxPQUFPLGVBQWViLEdBQVMsYUFBYyxDQUFFLE1BQU8sRUFBSyxDQUFDLEVBQzVEQSxHQUFRLGFBQWUsT0FDdkIsSUFBTWUsSUFBZ0JDLEdBQVMsTUFBT0MsR0FBMEIsQ0FDNURELEVBQUssUUFBUSxNQUFNLDBEQUEwRCxFQUM3RSxHQUFNLENBQUUsUUFBQUUsRUFBUyxnQkFBQUMsRUFBaUIsaUJBQUFDLEVBQWtCLFdBQUFDLEVBQVksV0FBQUMsRUFBWSxPQUFBQyxFQUFRLGdCQUFBQyxDQUFnQixFQUFJUixFQUNwRyxDQUFFLDJCQUFBUyxDQUEyQixFQUFJVCxFQUNyQyxHQUFJLENBQUNTLEVBQTRCLENBQzdCLEdBQU0sQ0FBRSxxQ0FBQUMsQ0FBcUMsRUFBSSxNQUFNLFFBQVEsUUFBUSxFQUFFLEtBQUssSUFBTWpCLElBQWEsYUFBc0MsQ0FBQyxFQUN4SWdCLEVBQTZCQyxFQUFxQyxDQUM5RCxHQUFHVixFQUFLLGFBQ1IseUJBQTBCQSxFQUFLLE9BQy9CLG1CQUFvQixDQUNoQixHQUFHQyxHQUF1QixtQkFDMUIsR0FBR0QsRUFBSyxrQkFDWixDQUNKLEVBQUdBLEVBQUssYUFBYSxDQUN6QixDQUNBLE9BQU9TLEVBQTJCLENBQzlCLFFBQVNQLEVBQ1QsZ0JBQWlCQyxHQUFtQixzQkFBc0IsS0FBSyxJQUFJLENBQUMsR0FDcEUsaUJBQWtCQyxFQUNsQixXQUFZQyxFQUNaLFdBQVlDLEVBQ1osT0FBUUMsRUFDUixnQkFBaUJDLENBQ3JCLENBQUMsQ0FDTCxFQUNBeEIsR0FBUSxhQUFlZSxNQzdEdkIsSUFBQVksSUFBQUMsRUFBQUMsSUFBQSxjQUNBLE9BQU8sZUFBZUEsR0FBUyxhQUFjLENBQUUsTUFBTyxFQUFLLENBQUMsRUFDNURBLEdBQVEsY0FBZ0IsT0FDeEIsSUFBTUMsSUFBVyxjQUNYQyxJQUFzQixRQUFRLDJCQUEyQixFQUN6REMsSUFBMkIsUUFBUSxnQ0FBZ0MsRUFDbkVDLElBQU8sUUFBUSxJQUFJLEVBQ25CQyxJQUFpQixLQUNqQkMsSUFBaUIsOEJBQ2pCQyxJQUFlLGVBQ2ZDLElBQXdCLHdCQUN4QkMsSUFBZ0IsQ0FBQ0MsRUFBTyxDQUFDLElBQU0sTUFBT0MsR0FBMEIsQ0FDbEVELEVBQUssUUFBUSxNQUFNLDJEQUEyRCxFQUM5RSxJQUFNRSxFQUF1QkYsR0FBTSxzQkFBd0IsUUFBUSxJQUFJSixHQUFjLEVBQy9FTyxFQUFVSCxHQUFNLFNBQVcsUUFBUSxJQUFJSCxHQUFZLEVBQ25ETyxFQUFrQkosR0FBTSxpQkFBbUIsUUFBUSxJQUFJRixHQUFxQixFQUNsRixHQUFJLENBQUNJLEdBQXdCLENBQUNDLEVBQzFCLE1BQU0sSUFBSVgsSUFBb0IseUJBQXlCLDJDQUE0QyxDQUMvRixPQUFRUSxFQUFLLE1BQ2pCLENBQUMsRUFFTCxJQUFNSyxFQUFjLFFBQVVWLElBQWUsY0FBYyxDQUN2RCxHQUFHSyxFQUNILGlCQUFrQlAsSUFBeUIseUJBQXlCLGlCQUFpQixFQUFFUyxDQUFvQixNQUNuR1IsSUFBSyxjQUFjUSxFQUFzQixDQUFFLFNBQVUsT0FBUSxDQUFDLEVBQ3RFLFFBQUFDLEVBQ0EsZ0JBQUFDLENBQ0osQ0FBQyxFQUFFSCxDQUFxQixFQUN4QixPQUFJQyxJQUF5QixRQUFRLElBQUlOLEdBQWMsTUFDL0NMLElBQVMsc0JBQXNCYyxFQUFhLHdDQUF5QyxHQUFHLEVBRXpGQSxDQUNYLEVBQ0FmLEdBQVEsY0FBZ0JTLE1DakN4QixJQUFBTyxHQUFBQyxFQUFBQyxJQUFBLGNBRUEsSUFBSUMsR0FBZ0IsTUFDaEJDLEdBQWUsS0FJbkIsT0FBTyxVQUFVLGVBQWUsS0FBS0QsR0FBZSxXQUFXLEdBQzlELENBQUMsT0FBTyxVQUFVLGVBQWUsS0FBS0QsR0FBUyxXQUFXLEdBQzFELE9BQU8sZUFBZUEsR0FBUyxZQUFhLENBQzNDLFdBQVksR0FDWixNQUFPQyxHQUFjLFNBQ3RCLENBQUMsRUFFRixPQUFPLEtBQUtBLEVBQWEsRUFBRSxRQUFRLFNBQVVFLEVBQUcsQ0FDM0NBLElBQU0sV0FBYSxDQUFDLE9BQU8sVUFBVSxlQUFlLEtBQUtILEdBQVNHLENBQUMsSUFBR0gsR0FBUUcsQ0FBQyxFQUFJRixHQUFjRSxDQUFDLEVBQ3ZHLENBQUMsRUFDRCxPQUFPLFVBQVUsZUFBZSxLQUFLRCxHQUFjLFdBQVcsR0FDN0QsQ0FBQyxPQUFPLFVBQVUsZUFBZSxLQUFLRixHQUFTLFdBQVcsR0FDMUQsT0FBTyxlQUFlQSxHQUFTLFlBQWEsQ0FDM0MsV0FBWSxHQUNaLE1BQU9FLEdBQWEsU0FDckIsQ0FBQyxFQUVGLE9BQU8sS0FBS0EsRUFBWSxFQUFFLFFBQVEsU0FBVUMsRUFBRyxDQUMxQ0EsSUFBTSxXQUFhLENBQUMsT0FBTyxVQUFVLGVBQWUsS0FBS0gsR0FBU0csQ0FBQyxJQUFHSCxHQUFRRyxDQUFDLEVBQUlELEdBQWFDLENBQUMsRUFDdEcsQ0FBQyxJQzFCRCxJQUFBQyxJQUFBQyxFQUFBQyxLQUFBLGNBRUEsSUFBSUMsR0FBc0IsUUFBUSxnQ0FBZ0MsRUFDOURDLEdBQW1CLFFBQVEsMkJBQTJCLEVBQ3REQyxHQUFTLGNBQ1RDLElBQTBCLE1BRXhCQyxJQUEwQixDQUFDQyxFQUFrQkMsRUFBYUMsSUFBVyxDQUN2RSxJQUFNQyxFQUFxQixDQUN2QixhQUFjLE1BQU9DLEdBQVksQ0FDN0IsR0FBTSxDQUFFLFNBQUFDLENBQVMsRUFBSSxLQUFNLHFDQUNyQixDQUFFLHNCQUFBQyxDQUFzQixFQUFJLEtBQU0sUUFBTyxrQ0FBa0MsRUFDakYsT0FBQUosR0FBUSxNQUFNLHNFQUFzRSxFQUM3RSxTQUFZTixHQUFpQixNQUFNUyxFQUFTRCxHQUFXLENBQUMsQ0FBQyxFQUFHRSxFQUFzQkYsQ0FBTyxDQUFDLEVBQUUsRUFBRSxLQUFLRyxFQUFnQixDQUM5SCxFQUNBLG9CQUFxQixNQUFPSCxHQUFZLENBQ3BDRixHQUFRLE1BQU0sNkVBQTZFLEVBQzNGLEdBQU0sQ0FBRSxxQkFBQU0sQ0FBcUIsRUFBSSxLQUFNLFFBQU8sa0NBQWtDLEVBQ2hGLE1BQU8sVUFBWUEsRUFBcUJKLENBQU8sRUFBRSxFQUFFLEtBQUtHLEVBQWdCLENBQzVFLEVBQ0EsWUFBYSxNQUFPSCxHQUFZLENBQzVCRixHQUFRLE1BQU0scUVBQXFFLEVBQ25GLEdBQU0sQ0FBRSxRQUFBTyxDQUFRLEVBQUksS0FBTSxxQ0FDMUIsTUFBTyxVQUFZQSxFQUFRTCxDQUFPLEVBQUUsRUFBRSxLQUFLRyxFQUFnQixDQUMvRCxDQUNKLEVBQ0EsR0FBSVAsS0FBb0JHLEVBQ3BCLE9BQU9BLEVBQW1CSCxDQUFnQixFQUcxQyxNQUFNLElBQUlKLEdBQWlCLHlCQUF5Qiw0Q0FBNENLLENBQVcsU0FBU0QsQ0FBZ0IsaUVBQ2hFLENBQUUsT0FBQUUsQ0FBTyxDQUFDLENBRXRGLEVBQ01LLEdBQW9CRyxHQUFVYixHQUFPLHFCQUFxQmEsRUFBTyxxQ0FBc0MsR0FBRyxFQUUxR0MsSUFBc0IsQ0FBQ0MsRUFBSyxDQUFFLFFBQUFDLEVBQVUsVUFBVyxPQUFBWCxDQUFPLEVBQUksQ0FBQyxJQUN6RCxFQUFRVSxHQUNaLE9BQU9BLEdBQVEsVUFDZixPQUFPQSxFQUFJLFVBQWEsVUFDeEIsQ0FBQyxZQUFhLFFBQVEsRUFBRSxRQUFRLE9BQU9BLEVBQUksaUJBQWlCLEVBQUksSUFDaEUsQ0FBQyxZQUFhLFFBQVEsRUFBRSxRQUFRLE9BQU9BLEVBQUksV0FBVyxFQUFJLElBQzFELENBQUMsWUFBYSxRQUFRLEVBQUUsUUFBUSxPQUFPQSxFQUFJLFVBQVUsRUFBSSxLQUN4REUsSUFBOEJGLEVBQUssQ0FBRSxRQUFBQyxFQUFTLE9BQUFYLENBQU8sQ0FBQyxHQUFLYSxJQUEwQkgsRUFBSyxDQUFFLFFBQUFDLEVBQVMsT0FBQVgsQ0FBTyxDQUFDLEdBRWhIWSxJQUFnQyxDQUFDRixFQUFLLENBQUUsUUFBQUMsRUFBUyxPQUFBWCxDQUFPLElBQU0sQ0FDaEUsSUFBTWMsRUFBb0IsT0FBT0osRUFBSSxnQkFBbUIsVUFBWSxPQUFPQSxFQUFJLGtCQUFzQixJQUNyRyxPQUFJSSxHQUNBZCxHQUFRLFFBQVEsT0FBT1csQ0FBTyxpREFBaURELEVBQUksY0FBYyxFQUFFLEVBRWhHSSxDQUNYLEVBQ01ELElBQTRCLENBQUNILEVBQUssQ0FBRSxRQUFBQyxFQUFTLE9BQUFYLENBQU8sSUFBTSxDQUM1RCxJQUFNZSxFQUFzQixPQUFPTCxFQUFJLG1CQUFzQixVQUFZLE9BQU9BLEVBQUksZUFBbUIsSUFDdkcsT0FBSUssR0FDQWYsR0FBUSxRQUFRLE9BQU9XLENBQU8sZ0RBQWdERCxFQUFJLGlCQUFpQixFQUFFLEVBRWxHSyxDQUNYLEVBQ01DLElBQStCLE1BQU9qQixFQUFha0IsRUFBVWYsRUFBU2dCLEVBQW9CQyxFQUFrQixDQUFDLEVBQUdDLElBQXVCLENBQ3pJbEIsRUFBUSxRQUFRLE1BQU0sdUVBQXVFLEVBQzdGLElBQU1tQixFQUFjSixFQUFTbEIsQ0FBVyxFQUNsQyxDQUFFLGVBQUF1QixFQUFnQixPQUFBQyxDQUFPLEVBQUlGLEVBQ25DLEdBQUksQ0FBQ25CLEVBQVEsWUFBYSxDQUN0QixHQUFNLENBQUUsc0JBQUFzQixDQUFzQixFQUFJLEtBQU0sdUNBQ3hDdEIsRUFBUSxZQUFjc0IsRUFBc0IsQ0FDeEMsR0FBR3RCLEVBQVEsYUFDWCx5QkFBMEJBLEVBQVEsT0FDbEMsbUJBQW9CLENBQ2hCLEdBQUdnQixFQUNILEdBQUdoQixHQUFTLG1CQUNaLE9BQVFxQixHQUFVckIsR0FBUyxvQkFBb0IsUUFBVWdCLEdBQW9CLE1BQ2pGLENBQ0osRUFBR2hCLEVBQVEsYUFBYSxDQUM1QixDQUNBLEdBQUlvQixHQUFrQkEsS0FBa0JILEVBQ3BDLE1BQU0sSUFBSXpCLEdBQWlCLHlCQUF5QixrRUFDNUNELEdBQW9CLGVBQWVTLENBQU8sQ0FBQyx1QkFDL0MsT0FBTyxLQUFLaUIsQ0FBZSxFQUFFLEtBQUssSUFBSSxFQUFHLENBQUUsT0FBUWpCLEVBQVEsTUFBTyxDQUFDLEVBRTNFQSxFQUFRLFFBQVEsTUFBTSx3RUFBd0VvQixFQUFpQixtQkFBbUJBLENBQWMsSUFBTSxZQUFZdkIsQ0FBVyxHQUFHLEVBQUUsRUFDbEwsSUFBTTBCLEVBQXNCSCxFQUN0QkYsRUFBbUJFLEVBQWdCTCxFQUFVZixFQUFTZ0IsRUFBb0IsQ0FDeEUsR0FBR0MsRUFDSCxDQUFDRyxDQUFjLEVBQUcsRUFDdEIsRUFBR0ksSUFBaUNULEVBQVNLLENBQWMsR0FBSyxDQUFDLENBQUMsQ0FBQyxHQUNoRSxNQUFNekIsSUFBd0J3QixFQUFZLGtCQUFtQnRCLEVBQWFHLEVBQVEsTUFBTSxFQUFFQSxDQUFPLEdBQUcsRUFDM0csR0FBSXdCLElBQWlDTCxDQUFXLEVBQzVDLE9BQU9JLEVBQW9CLEtBQU1qQixHQUFVYixHQUFPLHFCQUFxQmEsRUFBTyxxQ0FBc0MsR0FBRyxDQUFDLEVBRXZILENBQ0QsSUFBTW1CLEVBQVMsQ0FDWCxRQUFTTixFQUFZLFNBQ3JCLGdCQUFpQkEsRUFBWSxtQkFBcUIsY0FBYyxLQUFLLElBQUksQ0FBQyxHQUMxRSxXQUFZQSxFQUFZLFlBQ3hCLGdCQUFpQixTQUFTQSxFQUFZLGtCQUFvQixPQUFRLEVBQUUsQ0FDeEUsRUFDTSxDQUFFLFdBQUFPLENBQVcsRUFBSVAsRUFDdkIsR0FBSU8sRUFBWSxDQUNaLEdBQUksQ0FBQzFCLEVBQVEsZ0JBQ1QsTUFBTSxJQUFJUixHQUFpQix5QkFBeUIsV0FBV0ssQ0FBVyxnRkFBaUYsQ0FBRSxPQUFRRyxFQUFRLE9BQVEsWUFBYSxFQUFNLENBQUMsRUFFN015QixFQUFPLGFBQWVDLEVBQ3RCRCxFQUFPLFVBQVksTUFBTXpCLEVBQVEsZ0JBQWdCMEIsQ0FBVSxDQUMvRCxDQUNBLElBQU1DLEVBQWMsTUFBTUosRUFDMUIsT0FBT3ZCLEVBQVEsWUFBWTJCLEVBQWFGLENBQU0sRUFBRSxLQUFNbkIsR0FBVWIsR0FBTyxxQkFBcUJhLEVBQU8scUNBQXNDLEdBQUcsQ0FBQyxDQUNqSixDQUNKLEVBQ01rQixJQUFvQ0ksR0FDL0IsQ0FBQ0EsRUFBUSxVQUFZLENBQUMsQ0FBQ0EsRUFBUSxrQkFHcENDLElBQWtCQyxHQUNiLEdBQVFBLEdBQVFBLEVBQUssZUFFMUJDLElBQTBCLE1BQU9sQyxFQUFhRyxFQUFTZ0IsSUFBdUIsQ0FDaEYsSUFBTWdCLEVBQWMsTUFBTXRDLElBQXdCLHFCQUFxQixDQUNuRSxHQUFHTSxFQUNILFFBQVNILENBQ2IsQ0FBQyxFQUFFLENBQUUsbUJBQUFtQixDQUFtQixDQUFDLEVBQ3pCLE9BQU92QixHQUFPLHFCQUFxQnVDLEVBQWEsNEJBQTZCLElBQUksQ0FDckYsRUFFTUMsSUFBb0J6QixHQUFRLEVBQVFBLEdBQVEsT0FBT0EsR0FBUSxVQUFZLE9BQU9BLEVBQUksb0JBQXVCLFNBQ3pHMEIsSUFBNEIsTUFBT2xDLEVBQVNTLElBQVksb0NBQStDLEtBQUssQ0FBQyxDQUFFLFlBQUEwQixDQUFZLElBQU1BLEVBQVksQ0FDL0ksR0FBR25DLEVBQ0gsUUFBQVMsQ0FDSixDQUFDLEVBQUUsRUFBRSxLQUFNSCxHQUFVYixHQUFPLHFCQUFxQmEsRUFBTyw4QkFBK0IsR0FBRyxDQUFDLENBQUMsRUFFdEY4QixJQUF3QixNQUFPM0IsRUFBU1UsRUFBYW5CLEVBQVUsQ0FBQyxFQUFHZ0IsSUFBdUIsQ0FDNUYsR0FBTSxDQUFFLFFBQUFxQixDQUFRLEVBQUksS0FBTSxxQ0FDMUIsT0FBT0EsRUFBUSxDQUNYLFFBQUE1QixFQUNBLE9BQVFULEVBQVEsT0FDaEIsbUJBQW9CQSxFQUFRLG1CQUM1QixhQUFjQSxFQUFRLFlBQzFCLENBQUMsRUFBRSxDQUNDLG1CQUFBZ0IsQ0FDSixDQUFDLEVBQUUsS0FBTVYsR0FDRGEsRUFBWSxZQUNMMUIsR0FBTyxxQkFBcUJhLEVBQU8sMEJBQTJCLEdBQUcsRUFHakViLEdBQU8scUJBQXFCYSxFQUFPLGlDQUFrQyxHQUFHLENBRXRGLENBQ0wsRUFDTWdDLElBQWdCOUIsR0FBUUEsSUFDekIsT0FBT0EsRUFBSSxlQUFrQixVQUMxQixPQUFPQSxFQUFJLGdCQUFtQixVQUM5QixPQUFPQSxFQUFJLGFBQWdCLFVBQzNCLE9BQU9BLEVBQUksWUFBZSxVQUMxQixPQUFPQSxFQUFJLGVBQWtCLFVBRS9CK0IsSUFBd0IvQixHQUFRLEVBQVFBLEdBQzFDLE9BQU9BLEdBQVEsVUFDZixPQUFPQSxFQUFJLG1CQUFzQixVQUNqQyxPQUFPQSxFQUFJLHVCQUEwQixVQUNyQyxDQUFDLFlBQWEsUUFBUSxFQUFFLFFBQVEsT0FBT0EsRUFBSSxpQkFBaUIsRUFBSSxJQUNoRSxDQUFDLFlBQWEsUUFBUSxFQUFFLFFBQVEsT0FBT0EsRUFBSSxjQUFjLEVBQUksR0FDM0RnQyxJQUEyQixNQUFPL0IsRUFBU1QsSUFBWSxDQUN6REEsR0FBUyxRQUFRLE1BQU0sNkRBQTZELEVBQ3BGLElBQU1nQyxFQUFjLENBQ2hCLFlBQWF2QixFQUFRLGtCQUNyQixnQkFBaUJBLEVBQVEsc0JBQ3pCLGFBQWNBLEVBQVEsa0JBQ3RCLEdBQUlBLEVBQVEsc0JBQXdCLENBQUUsZ0JBQWlCQSxFQUFRLG9CQUFxQixFQUNwRixHQUFJQSxFQUFRLGdCQUFrQixDQUFFLFVBQVdBLEVBQVEsY0FBZSxDQUN0RSxFQUNBLE9BQU9oQixHQUFPLHFCQUFxQnVDLEVBQWEsc0JBQXVCLEdBQUcsQ0FDOUUsRUFFTVMsSUFBd0JqQyxHQUFRLEVBQVFBLEdBQzFDLE9BQU9BLEdBQVEsVUFDZixPQUFPQSxFQUFJLHlCQUE0QixVQUN2QyxPQUFPQSxFQUFJLFVBQWEsVUFDeEIsQ0FBQyxZQUFhLFFBQVEsRUFBRSxRQUFRLE9BQU9BLEVBQUksaUJBQWlCLEVBQUksR0FDOURrQyxJQUFnQyxNQUFPakMsRUFBU1QsRUFBU2dCLElBQXVCLG9DQUFvRCxLQUFLLENBQUMsQ0FBRSxjQUFBMkIsQ0FBYyxJQUFNQSxFQUFjLENBQ2hMLHFCQUFzQmxDLEVBQVEsd0JBQzlCLFFBQVNBLEVBQVEsU0FDakIsZ0JBQWlCQSxFQUFRLGtCQUN6QiwyQkFBNEJULEVBQVEsMkJBQ3BDLE9BQVFBLEVBQVEsT0FDaEIsbUJBQW9CQSxFQUFRLGtCQUNoQyxDQUFDLEVBQUUsQ0FDQyxtQkFBQWdCLENBQ0osQ0FBQyxFQUFFLEtBQU1WLEdBQVViLEdBQU8scUJBQXFCYSxFQUFPLHVDQUF3QyxHQUFHLENBQUMsQ0FBQyxFQUU3RlksSUFBcUIsTUFBT3JCLEVBQWFrQixFQUFVZixFQUFTZ0IsRUFBb0JDLEVBQWtCLENBQUMsRUFBRzJCLEVBQTRCLEtBQVUsQ0FDOUksSUFBTWQsRUFBT2YsRUFBU2xCLENBQVcsRUFDakMsR0FBSSxPQUFPLEtBQUtvQixDQUFlLEVBQUUsT0FBUyxHQUFLc0IsSUFBcUJULENBQUksRUFDcEUsT0FBT1UsSUFBeUJWLEVBQU05QixDQUFPLEVBRWpELEdBQUk0QyxHQUE2QnJDLElBQW9CdUIsRUFBTSxDQUFFLFFBQVNqQyxFQUFhLE9BQVFHLEVBQVEsTUFBTyxDQUFDLEVBQ3ZHLE9BQU9jLElBQTZCakIsRUFBYWtCLEVBQVVmLEVBQVNnQixFQUFvQkMsRUFBaUJDLEdBQWtCLEVBRS9ILEdBQUlxQixJQUFxQlQsQ0FBSSxFQUN6QixPQUFPVSxJQUF5QlYsRUFBTTlCLENBQU8sRUFFakQsR0FBSXlDLElBQXFCWCxDQUFJLEVBQ3pCLE9BQU9ZLElBQThCWixFQUFNOUIsRUFBU2dCLENBQWtCLEVBRTFFLEdBQUlpQixJQUFpQkgsQ0FBSSxFQUNyQixPQUFPSSxJQUEwQmxDLEVBQVNILENBQVcsRUFFekQsR0FBSXlDLElBQWFSLENBQUksRUFDakIsT0FBTyxNQUFNTSxJQUFzQnZDLEVBQWFpQyxFQUFNOUIsRUFBU2dCLENBQWtCLEVBRXJGLEdBQUlhLElBQWVDLENBQUksRUFDbkIsT0FBT0MsSUFBd0JsQyxFQUFhRyxFQUFTZ0IsQ0FBa0IsRUFFM0UsTUFBTSxJQUFJeEIsR0FBaUIseUJBQXlCLGlEQUFpREssQ0FBVywwQ0FBMkMsQ0FBRSxPQUFRRyxFQUFRLE1BQU8sQ0FBQyxDQUN6TCxFQUVNNkMsSUFBVSxDQUFDQyxFQUFPLENBQUMsSUFBTSxNQUFPLENBQUUsbUJBQUE5QixDQUFtQixFQUFJLENBQUMsSUFBTSxDQUNsRThCLEVBQUssUUFBUSxNQUFNLDRDQUE0QyxFQUMvRCxJQUFNL0IsRUFBVyxNQUFNeEIsR0FBb0IsZ0JBQWdCdUQsQ0FBSSxFQUMvRCxPQUFPNUIsSUFBbUIzQixHQUFvQixlQUFlLENBQ3pELFFBQVN1RCxFQUFLLFNBQVc5QixHQUFvQixPQUNqRCxDQUFDLEVBQUdELEVBQVUrQixFQUFNOUIsQ0FBa0IsQ0FDMUMsRUFFQTFCLElBQVEsUUFBVXVELE1DL05sQixJQUFBRSxJQUFBQyxFQUFBQyxJQUFBLGNBRUEsSUFBSUMsR0FBd0IsS0FDeEJDLEdBQW1CLFFBQVEsMkJBQTJCLEVBQ3REQyxJQUFzQixRQUFRLGdDQUFnQyxFQUU1REMsSUFBb0IsNEJBQ3BCQyxJQUFpQixNQUFPQyxHQUFTLENBQ25DLEdBQU0sQ0FBRSxrQkFBQUMsRUFBbUIsc0JBQUFDLEVBQXVCLHNCQUFBQyxFQUF1QixxQkFBQUMsQ0FBcUIsRUFBSSxLQUFNLFFBQU8sa0NBQWtDLEVBQ2pKLEdBQUksUUFBUSxJQUFJRixDQUFxQixHQUFLLFFBQVEsSUFBSUQsQ0FBaUIsRUFBRyxDQUN0RUQsRUFBSyxRQUFRLE1BQU0sb0ZBQW9GLEVBQ3ZHLEdBQU0sQ0FBRSxTQUFBSyxDQUFTLEVBQUksS0FBTSxxQ0FDM0IsT0FBT1QsR0FBaUIsTUFBTVMsRUFBU0wsQ0FBSSxFQUFHRyxFQUFzQkgsQ0FBSSxDQUFDLENBQzdFLENBQ0EsT0FBSSxRQUFRLElBQUlGLEdBQWlCLEdBQUssUUFBUSxJQUFJQSxHQUFpQixJQUFNLFFBQzlELFNBQVksQ0FDZixNQUFNLElBQUlGLEdBQWlCLHlCQUF5QixnREFBaUQsQ0FBRSxPQUFRSSxFQUFLLE1BQU8sQ0FBQyxDQUNoSSxHQUVKQSxFQUFLLFFBQVEsTUFBTSwwRUFBMEUsRUFDdEZJLEVBQXFCSixDQUFJLEVBQ3BDLEVBRUEsU0FBU00sSUFBYUMsRUFBV0MsRUFBZ0IsQ0FDN0MsSUFBTUMsRUFBUUMsSUFBb0JILENBQVMsRUFDdkNJLEVBQ0FDLEVBQ0FDLEVBQ0VDLEVBQVcsTUFBT0MsR0FBWSxDQUNoQyxHQUFJQSxHQUFTLGFBQ1QsT0FBTyxNQUFNTixFQUFNTSxDQUFPLEVBTzlCLEdBTElGLEdBQWEsWUFDVEEsR0FBYSxZQUFZLFFBQVEsRUFBSSxLQUFLLElBQUksSUFDOUNBLEVBQWMsUUFHbEJGLEVBQ0EsTUFBTUEsVUFFRCxDQUFDRSxHQUFlTCxJQUFpQkssQ0FBVyxFQUNqRCxHQUFJQSxFQUNLRCxJQUNEQSxFQUFjSCxFQUFNTSxDQUFPLEVBQ3RCLEtBQU0sR0FBTSxDQUNiRixFQUFjLENBQ2xCLENBQUMsRUFDSSxRQUFRLElBQU0sQ0FDZkQsRUFBYyxNQUNsQixDQUFDLE9BSUwsUUFBQUQsRUFBYUYsRUFBTU0sQ0FBTyxFQUNyQixLQUFNLEdBQU0sQ0FDYkYsRUFBYyxDQUNsQixDQUFDLEVBQ0ksUUFBUSxJQUFNLENBQ2ZGLEVBQWEsTUFDakIsQ0FBQyxFQUNNRyxFQUFTQyxDQUFPLEVBRy9CLE9BQU9GLENBQ1gsRUFDQSxPQUFPQyxDQUNYLENBQ0EsSUFBTUosSUFBdUJILEdBQWMsTUFBT1MsR0FBMEIsQ0FDeEUsSUFBSUMsRUFDSixRQUFXSCxLQUFZUCxFQUNuQixHQUFJLENBQ0EsT0FBTyxNQUFNTyxFQUFTRSxDQUFxQixDQUMvQyxPQUNPRSxFQUFLLENBRVIsR0FEQUQsRUFBb0JDLEVBQ2hCQSxHQUFLLFlBQ0wsU0FFSixNQUFNQSxDQUNWLENBRUosTUFBTUQsQ0FDVixFQUVJRSxJQUF5QyxHQUN2Q0MsSUFBa0IsQ0FBQ3BCLEVBQU8sQ0FBQyxJQUFNTSxJQUFhLENBQ2hELFNBQVksQ0FFUixHQURnQk4sRUFBSyxTQUFXLFFBQVEsSUFBSUgsSUFBb0IsV0FBVyxFQUd2RSxNQURtQyxRQUFRLElBQUlGLEdBQXNCLE9BQU8sR0FBSyxRQUFRLElBQUlBLEdBQXNCLFVBQVUsSUFFcEh3QixPQUNjbkIsRUFBSyxRQUFRLE1BQVFBLEVBQUssUUFBUSxhQUFhLE9BQVMsYUFDakVBLEVBQUssT0FBTyxLQUFLLEtBQUtBLEVBQUssTUFBTSxFQUNqQyxRQUFRLE1BQ1A7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLENBUTFCLEVBQ21CbUIsSUFBeUMsS0FHM0MsSUFBSXZCLEdBQWlCLHlCQUF5QixpREFBa0QsQ0FDbEcsT0FBUUksRUFBSyxPQUNiLFlBQWEsRUFDakIsQ0FBQyxFQUVMLE9BQUFBLEVBQUssUUFBUSxNQUFNLDhEQUE4RCxFQUMxRUwsR0FBc0IsUUFBUUssQ0FBSSxFQUFFLENBQy9DLEVBQ0EsTUFBT2dCLEdBQTBCLENBQzdCaEIsRUFBSyxRQUFRLE1BQU0sOERBQThELEVBQ2pGLEdBQU0sQ0FBRSxZQUFBcUIsRUFBYSxhQUFBQyxFQUFjLFVBQUFDLEVBQVcsWUFBQUMsRUFBYSxXQUFBQyxDQUFXLEVBQUl6QixFQUMxRSxHQUFJLENBQUNxQixHQUFlLENBQUNDLEdBQWdCLENBQUNDLEdBQWEsQ0FBQ0MsR0FBZSxDQUFDQyxFQUNoRSxNQUFNLElBQUk3QixHQUFpQix5QkFBeUIsNkVBQThFLENBQUUsT0FBUUksRUFBSyxNQUFPLENBQUMsRUFFN0osR0FBTSxDQUFFLFFBQUEwQixDQUFRLEVBQUksS0FBTSxxQ0FDMUIsT0FBT0EsRUFBUTFCLENBQUksRUFBRWdCLENBQXFCLENBQzlDLEVBQ0EsTUFBT0EsR0FBMEIsQ0FDN0JoQixFQUFLLFFBQVEsTUFBTSw4REFBOEQsRUFDakYsR0FBTSxDQUFFLFFBQUEyQixDQUFRLEVBQUksS0FBTSxzQ0FDMUIsT0FBT0EsRUFBUTNCLENBQUksRUFBRWdCLENBQXFCLENBQzlDLEVBQ0EsTUFBT0EsR0FBMEIsQ0FDN0JoQixFQUFLLFFBQVEsTUFBTSxrRUFBa0UsRUFDckYsR0FBTSxDQUFFLFlBQUE0QixDQUFZLEVBQUksS0FBTSxxQ0FDOUIsT0FBT0EsRUFBWTVCLENBQUksRUFBRWdCLENBQXFCLENBQ2xELEVBQ0EsTUFBT0EsR0FBMEIsQ0FDN0JoQixFQUFLLFFBQVEsTUFBTSxvRUFBb0UsRUFDdkYsR0FBTSxDQUFFLGNBQUE2QixDQUFjLEVBQUksS0FBTSxxQ0FDaEMsT0FBT0EsRUFBYzdCLENBQUksRUFBRWdCLENBQXFCLENBQ3BELEVBQ0EsVUFDSWhCLEVBQUssUUFBUSxNQUFNLHFFQUFxRSxHQUNoRixNQUFNRCxJQUFlQyxDQUFJLEdBQUcsR0FFeEMsU0FBWSxDQUNSLE1BQU0sSUFBSUosR0FBaUIseUJBQXlCLGdEQUFpRCxDQUNqRyxZQUFhLEdBQ2IsT0FBUUksRUFBSyxNQUNqQixDQUFDLENBQ0wsQ0FDSixFQUFHOEIsR0FBMkIsRUFDeEJDLElBQThCbEIsR0FBZ0JBLEdBQWEsYUFBZSxPQUMxRWlCLElBQStCakIsR0FBZ0JBLEdBQWEsYUFBZSxRQUFhQSxFQUFZLFdBQVcsUUFBUSxFQUFJLEtBQUssSUFBSSxFQUFJLElBRTlJbkIsR0FBUSw0QkFBOEJvQyxJQUN0Q3BDLEdBQVEsMkJBQTZCcUMsSUFDckNyQyxHQUFRLGdCQUFrQjBCLE1DM0oxQixJQUFBWSxHQUNBQyxHQUNhQyxHQUZiQyxHQUFBQyxFQUFBLEtBQUFKLEdBQStDLCtCQUMvQ0MsR0FBeUMsaUNBQzVCQyxHQUFOLEtBQWtCLENBQ3JCLFlBQ0EsWUFBWUcsRUFBYyxHQUFPLENBQzdCLEtBQUssWUFBY0EsQ0FDdkIsQ0FDQSx1QkFBdUJDLEVBQW9CQyxFQUFhLENBQ3BELElBQU1DLEVBQVVELEVBQVksaUJBQWlCLEVBQ3ZDRSxFQUFvQixPQUFPLE9BQU9ELENBQU8sRUFBRSxLQUFNRSxHQUM1QyxDQUFDLENBQUNBLEVBQUUsZ0JBQWdCLEVBQUUsV0FDaEMsRUFDRCxHQUFJRCxFQUFtQixDQUNuQixJQUFNRSxFQUFZRixFQUFrQixnQkFBZ0IsRUFBRSxVQUN0RCxPQUFJRSxJQUdLRixFQUFrQixlQUFlLEVBQy9CLGFBRUZBLEVBQWtCLGFBQWEsRUFDN0IsMkJBR0FILEVBRWYsU0FDUyxDQUFDQyxFQUFZLGFBQWEsR0FDZixPQUFPLE9BQU9DLENBQU8sRUFBRSxLQUFNRSxHQUFNLENBQy9DLEdBQU0sQ0FBRSxVQUFBRSxFQUFXLGdCQUFBQyxFQUFpQixXQUFBQyxFQUFZLFVBQUFDLEVBQVcsa0JBQUFDLENBQWtCLEVBQUlOLEVBQUUsZ0JBQWdCLEVBRW5HLE1BQU8sQ0FBQ0UsR0FBYSxDQUFDQyxHQUFtQixDQUFDQyxHQUFjLENBQUNDLEdBRGpDQyxJQUFzQixNQUVsRCxDQUFDLEVBRUcsT0FBT1YsQ0FHbkIsQ0FDQSxNQUFNLG1DQUFtQ1csRUFBaUJDLEVBQWtCQyxFQUFVQyxFQUFZQyxFQUFVQyxFQUFnQixDQUN4SCxJQUFJQyxFQUFZTCxFQUNaTSxFQUFZUCxFQUNaQSxFQUFnQixTQUFTLEdBQUcsSUFDNUIsQ0FBQ00sRUFBV0MsQ0FBUyxFQUFJUCxFQUFnQixNQUFNLEdBQUcsR0FFdEQsSUFBTVEsRUFBZ0IsQ0FDbEIsVUFBV0osRUFDWCxPQUFRRixFQUFTLFdBQWEsSUFBTSxTQUFXLFFBQ25ELEVBQ01PLEVBQVcsZ0JBQWEsSUFBSUgsQ0FBUyxFQUMzQyxHQUFJLENBRUEsTUFBTyxDQUFFLFlBRFdELElBQWlCSSxFQUFVRixDQUFTLEdBQUtFLEVBQVMsVUFBVVQsQ0FBZSxFQUN6RSxjQUFBUSxDQUFjLENBQ3hDLE1BQ1UsQ0FDTkwsRUFBVyxRQUFVQSxFQUFXLFNBQVdBLEVBQVcsU0FBVyxlQUNqRSxJQUFNTyxFQUFZLGdCQUFhLElBQUksMkJBQTZCSixDQUFTLEVBQ25FSyxFQUFzQkQsRUFBVSxpQkFBaUIsRUFDdkQsR0FBSUMsRUFBcUIsQ0FDckIsSUFBTUMsRUFBWUYsRUFBVSxhQUFhQyxDQUFtQixHQUFLLE1BQ2pFLE1BQU0sS0FBSyx5QkFBeUIsT0FBTyxPQUFPLElBQUlDLEVBQVUsQ0FBRSxLQUFNTCxDQUFVLENBQUMsRUFBR0MsQ0FBYSxFQUFHTCxDQUFVLENBQ3BILENBQ0EsTUFBTSxLQUFLLHlCQUF5QixPQUFPLE9BQU8sSUFBSSxNQUFNSSxDQUFTLEVBQUdDLENBQWEsRUFBR0wsQ0FBVSxDQUN0RyxDQUNKLENBQ0EseUJBQXlCVSxFQUFXQyxFQUFZLENBQUMsRUFBRyxDQUNoRCxHQUFJLEtBQUssWUFBYSxDQUNsQixJQUFNQyxFQUFNRixFQUFVLFNBQVdDLEVBQVUsUUFDckNFLEtBQVEsNkJBQXlCSCxFQUFXQyxDQUFTLEVBQ3ZEQyxJQUNBQyxFQUFNLFFBQVVELEdBRXBCQyxFQUFNLE1BQVEsQ0FDVixHQUFHQSxFQUFNLE1BQ1QsS0FBTUEsRUFBTSxPQUFPLEtBQ25CLEtBQU1BLEVBQU0sT0FBTyxLQUNuQixRQUFTQSxFQUFNLE9BQU8sU0FBV0EsRUFBTSxPQUFPLFNBQVdELENBQzdELEVBQ0EsSUFBTUUsRUFBUUQsRUFBTSxVQUFVLFVBQzlCLE9BQUlDLElBQ0FELEVBQU0sVUFBWUMsR0FFZkQsQ0FDWCxDQUNBLFNBQU8sNkJBQXlCSCxFQUFXQyxDQUFTLENBQ3hELENBQ0Esb0JBQW9CSSxFQUFRaEIsRUFBVSxDQUNsQyxJQUFNaUIsRUFBbUJqQixFQUFTLFVBQVUsb0JBQW9CLEVBQ2hFLEdBQUlnQixJQUFXLFFBQWFDLEdBQW9CLEtBQU0sQ0FDbEQsR0FBTSxDQUFDQyxFQUFNQyxDQUFJLEVBQUlGLEVBQWlCLE1BQU0sR0FBRyxFQUN6Q0csRUFBVSxPQUFPLFFBQVFKLENBQU0sRUFDL0JLLEVBQVEsQ0FDVixLQUFBSCxFQUNBLEtBQUFDLENBQ0osRUFDQSxPQUFPLE9BQU9ILEVBQVFLLENBQUssRUFDM0IsT0FBVyxDQUFDQyxFQUFHQyxDQUFDLElBQUtILEVBQ2pCQyxFQUFNQyxJQUFNLFVBQVksVUFBWUEsQ0FBQyxFQUFJQyxFQUU3QyxPQUFPRixFQUFNLE9BQ2JMLEVBQU8sTUFBUUssQ0FDbkIsQ0FDSixDQUNBLGtCQUFrQkcsRUFBc0JDLEVBQVcsQ0FDM0NELEVBQXFCLFFBQ3JCQyxFQUFVLE1BQVFELEVBQXFCLE9BRXZDQSxFQUFxQixPQUNyQkMsRUFBVSxLQUFPRCxFQUFxQixNQUV0Q0EsRUFBcUIsT0FDckJDLEVBQVUsS0FBT0QsRUFBcUIsS0FFOUMsQ0FDQSx5QkFBeUJqQixFQUFVRixFQUFXLENBQzFDLEdBQUksQ0FDQSxPQUFPRSxFQUFTLFVBQVVGLENBQVMsQ0FDdkMsTUFDVSxDQUNOLE9BQU9FLEVBQVMsS0FBTW1CLEdBQVcsb0JBQWlCLEdBQUdBLENBQU0sRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsQ0FBQyxJQUFNckIsQ0FBUyxDQUNuSCxDQUNKLENBQ0osSUN6SEEsSUFBQXNCLEdBQ0FDLEdBRWFDLEdBSGJDLElBQUFDLEVBQUEsS0FBQUosR0FBc0UsNkJBQ3RFQyxHQUErQywrQkFDL0NJLEtBQ2FILEdBQU4sY0FBeUMsMEJBQXdCLENBQ3BFLG1CQUNBLE1BQ0EsWUFBWSxDQUFFLGlCQUFBSSxFQUFrQixtQkFBQUMsQ0FBb0IsRUFBRyxDQUNuRCxNQUFNLENBQUUsaUJBQUFELENBQWlCLENBQUMsRUFDMUIsS0FBSyxtQkFBcUIsQ0FBQyxDQUFDQyxFQUM1QixLQUFLLE1BQVEsSUFBSUMsR0FBWSxLQUFLLGtCQUFrQixDQUN4RCxDQUNBLE1BQU0saUJBQWlCQyxFQUFpQkMsRUFBT0MsRUFBUyxDQUNwRCxJQUFNQyxFQUFVLE1BQU0sTUFBTSxpQkFBaUJILEVBQWlCQyxFQUFPQyxDQUFPLEVBQzVFLE9BQUksS0FBSyxxQkFDTEMsRUFBUSxRQUFRLG1CQUFtQixFQUFJLFFBRXBDQSxDQUNYLENBQ0EsTUFBTSxZQUFZSCxFQUFpQkUsRUFBU0UsRUFBVUMsRUFBWUMsRUFBVSxDQUNwRSxLQUFLLG9CQUNMLEtBQUssTUFBTSxvQkFBb0JELEVBQVlELENBQVEsRUFFdkQsSUFBTUcsR0FBYSxJQUFNLENBQ3JCLElBQU1DLEVBQWVKLEVBQVMsUUFBUSxvQkFBb0IsRUFDMUQsT0FBSUksR0FBZ0IsS0FBSyxtQkFDZEEsRUFBYSxNQUFNLEdBQUcsRUFBRSxDQUFDLEtBRTdCLGlDQUE2QkosRUFBVUMsQ0FBVSxHQUFLLFNBQ2pFLEdBQUcsRUFDRyxDQUFFLFlBQUFJLEVBQWEsY0FBQUMsQ0FBYyxFQUFJLE1BQU0sS0FBSyxNQUFNLG1DQUFtQ0gsRUFBVyxLQUFLLFFBQVEsaUJBQWtCSCxFQUFVQyxFQUFZQyxFQUFVLEtBQUssbUJBQXFCLEtBQUssTUFBTSx5QkFBMkIsTUFBUyxFQUN4T0ssRUFBSyxvQkFBaUIsR0FBR0YsQ0FBVyxFQUNwQ0csRUFBVVAsRUFBVyxTQUFXQSxFQUFXLFNBQVcsVUFDdERRLEVBQVksZ0JBQWEsSUFBSUosRUFBWSxDQUFDLENBQUMsRUFBRSxhQUFhQSxDQUFXLEdBQUssTUFDMUVLLEVBQVksSUFBSUQsRUFBVUQsQ0FBTyxFQUNqQ0csRUFBUyxDQUFDLEVBQ2hCLE9BQVcsQ0FBQ0MsRUFBTUMsQ0FBTSxJQUFLTixFQUFHLGVBQWUsRUFDdkNOLEVBQVdXLENBQUksR0FBSyxPQUNwQkQsRUFBT0MsQ0FBSSxFQUFJLEtBQUssYUFBYSxVQUFVQyxFQUFRWixFQUFXVyxDQUFJLENBQUMsR0FHM0UsTUFBSSxLQUFLLG9CQUNMLEtBQUssTUFBTSxrQkFBa0JYLEVBQVlVLENBQU0sRUFFN0MsS0FBSyxNQUFNLHlCQUF5QixPQUFPLE9BQU9ELEVBQVdKLEVBQWUsQ0FDOUUsT0FBUUMsRUFBRyxnQkFBZ0IsRUFBRSxNQUM3QixRQUFBQyxDQUNKLEVBQUdHLENBQU0sRUFBR1YsQ0FBVSxDQUMxQixDQUNKLElDaERBLElBQWFhLElBa0JBQyxJQWlCQUMsSUFuQ2JDLElBQUFDLEVBQUEsS0FBYUosSUFBVUssR0FBUSxDQUMzQixHQUFJQSxHQUFPLEtBQ1AsT0FBT0EsRUFFWCxHQUFJLE9BQU9BLEdBQVEsVUFBWSxPQUFPQSxHQUFRLFNBQVUsQ0FDcEQsSUFBTUMsRUFBVSxJQUFJLE1BQU0sbUJBQW1CRCxDQUFHLCtCQUErQixFQUMvRSxPQUFBQyxFQUFRLEtBQU8sVUFDZixRQUFRLEtBQUtBLENBQU8sRUFDYixPQUFPRCxDQUFHLENBQ3JCLENBQ0EsR0FBSSxPQUFPQSxHQUFRLFVBQVcsQ0FDMUIsSUFBTUMsRUFBVSxJQUFJLE1BQU0sb0JBQW9CRCxDQUFHLCtCQUErQixFQUNoRixPQUFBQyxFQUFRLEtBQU8sVUFDZixRQUFRLEtBQUtBLENBQU8sRUFDYixPQUFPRCxDQUFHLENBQ3JCLENBQ0EsT0FBT0EsQ0FDWCxFQUNhSixJQUFXSSxHQUFRLENBQzVCLEdBQUlBLEdBQU8sS0FDUCxPQUFPQSxFQUlYLEdBQUksT0FBT0EsR0FBUSxTQUFVLENBQ3pCLElBQU1FLEVBQVlGLEVBQUksWUFBWSxFQUNsQyxHQUFJQSxJQUFRLElBQU1FLElBQWMsU0FBV0EsSUFBYyxPQUFRLENBQzdELElBQU1ELEVBQVUsSUFBSSxNQUFNLG9CQUFvQkQsQ0FBRyxpQ0FBaUMsRUFDbEZDLEVBQVEsS0FBTyxVQUNmLFFBQVEsS0FBS0EsQ0FBTyxDQUN4QixDQUNBLE9BQU9ELElBQVEsSUFBTUUsSUFBYyxPQUN2QyxDQUNBLE9BQU9GLENBQ1gsRUFDYUgsSUFBVUcsR0FBUSxDQUMzQixHQUFJQSxHQUFPLEtBQ1AsT0FBT0EsRUFJWCxHQUFJLE9BQU9BLEdBQVEsU0FBVSxDQUN6QixJQUFNRyxFQUFNLE9BQU9ILENBQUcsRUFDdEIsR0FBSUcsRUFBSSxTQUFTLElBQU1ILEVBQUssQ0FDeEIsSUFBTUMsRUFBVSxJQUFJLE1BQU0sb0JBQW9CRCxDQUFHLGdDQUFnQyxFQUNqRixPQUFBQyxFQUFRLEtBQU8sVUFDZixRQUFRLEtBQUtBLENBQU8sRUFDYkQsQ0FDWCxDQUNBLE9BQU9HLENBQ1gsQ0FDQSxPQUFPSCxDQUNYLElDcERBLElBQWFJLEdBQWJDLEdBQUFDLEVBQUEsS0FBYUYsR0FBTixLQUF5QixDQUM1QixhQUNBLGdCQUFnQkcsRUFBYyxDQUMxQixLQUFLLGFBQWVBLENBQ3hCLENBQ0osSUNMQSxJQUFhQyxHQUFiQyxHQUFBQyxFQUFBLEtBQWFGLEdBQU4sS0FBaUIsQ0FDcEIsS0FDQSxHQUNBLEtBQ0EsWUFBWUcsRUFBTUMsRUFBSSxDQUNsQixLQUFLLEtBQU9ELEVBQ1osS0FBSyxHQUFLQyxFQUNWLEtBQUssS0FBTyxJQUFJLElBQUksT0FBTyxLQUFLLEtBQUssSUFBSSxFQUFFLE9BQVFDLEdBQU1BLElBQU0sUUFBUSxDQUFDLENBQzVFLENBQ0EsS0FBS0MsRUFBSyxDQUNOLEtBQUssS0FBSyxPQUFPQSxDQUFHLENBQ3hCLENBQ0EsWUFBYSxDQUNULE9BQU8sS0FBSyxLQUFLLE9BQVMsR0FBSyxPQUFPLEtBQUssS0FBSyxFQUFFLEVBQUUsU0FBVyxDQUNuRSxDQUNBLGNBQWUsQ0FDWCxHQUFJLEtBQUssV0FBVyxFQUFHLENBQ25CLElBQU1ELEVBQUksS0FBSyxLQUFLLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFDOUJFLEVBQUksS0FBSyxLQUFLRixDQUFDLEVBQ3JCLEtBQUssR0FBRyxTQUFXLENBQUNBLEVBQUdFLENBQUMsQ0FDNUIsQ0FDSixDQUNKLElDckJPLFNBQVNDLElBQVlDLEVBQUtDLEVBQU9DLEVBQVMsQ0FDN0MsR0FBSUEsR0FBUyxPQUFRLENBQ2pCLElBQU1DLEVBQWdCRCxFQUFRLE9BQzlCLEdBQUksT0FBT0QsR0FBVSxXQUNiQSxFQUFRLE9BQU8sa0JBQW9CQSxFQUFRLE9BQU8sa0JBQW9CRSxJQUFrQixPQUFPRixDQUFLLEdBRXBHLE9BRHFCRSxFQUFjLFNBQVMsR0FBRyxFQUVwQyxJQUFJLGlCQUFhQSxFQUFlLFlBQVksRUFHNUMsT0FBT0EsQ0FBYSxDQUkzQyxDQUNBLE9BQU9GLENBQ1gsQ0FqQkEsSUFBQUcsSUFBQUMsSUFBQUMsRUFBQSxLQUFBRixJQUE2QixnQ0NBN0IsSUFBQUcsSUFDQUMsSUFDYUMsR0FGYkMsR0FBQUMsRUFBQSxLQUFBSixJQUE0QixpQ0FDNUJDLElBQXVCLDZCQUNWQyxHQUFvQixDQUFDRyxFQUFZQyxPQUFZLGlCQUFZRCxFQUFZQyxDQUFPLEVBQUUsS0FBTUMsSUFBVUQsR0FBUyxhQUFlLFlBQVFDLENBQUksQ0FBQyxJQ0ZoSixJQUNhQyxHQWdCQUMsSUFLQUMsR0F0QmJDLEdBQUFDLEVBQUEsS0FBQUMsS0FDYUwsR0FBZ0IsQ0FBQ00sRUFBWUMsSUFBWUMsR0FBa0JGLEVBQVlDLENBQU8sRUFBRSxLQUFNRSxHQUFZLENBQzNHLEdBQUlBLEVBQVEsT0FDUixHQUFJLENBQ0EsT0FBTyxLQUFLLE1BQU1BLENBQU8sQ0FDN0IsT0FDT0MsRUFBRyxDQUNOLE1BQUlBLEdBQUcsT0FBUyxlQUNaLE9BQU8sZUFBZUEsRUFBRyxvQkFBcUIsQ0FDMUMsTUFBT0QsQ0FDWCxDQUFDLEVBRUNDLENBQ1YsQ0FFSixNQUFPLENBQUMsQ0FDWixDQUFDLEVBQ1lULElBQXFCLE1BQU9VLEVBQVdKLElBQVksQ0FDNUQsSUFBTUssRUFBUSxNQUFNWixHQUFjVyxFQUFXSixDQUFPLEVBQ3BELE9BQUFLLEVBQU0sUUFBVUEsRUFBTSxTQUFXQSxFQUFNLFFBQ2hDQSxDQUNYLEVBQ2FWLEdBQXdCLENBQUNXLEVBQVFDLElBQVMsQ0FDbkQsSUFBTUMsRUFBVSxDQUFDQyxFQUFRQyxJQUFRLE9BQU8sS0FBS0QsQ0FBTSxFQUFFLEtBQU1FLEdBQU1BLEVBQUUsWUFBWSxJQUFNRCxFQUFJLFlBQVksQ0FBQyxFQUNoR0UsRUFBcUJDLEdBQWEsQ0FDcEMsSUFBSUMsRUFBYUQsRUFDakIsT0FBSSxPQUFPQyxHQUFlLFdBQ3RCQSxFQUFhQSxFQUFXLFNBQVMsR0FFakNBLEVBQVcsUUFBUSxHQUFHLEdBQUssSUFDM0JBLEVBQWFBLEVBQVcsTUFBTSxHQUFHLEVBQUUsQ0FBQyxHQUVwQ0EsRUFBVyxRQUFRLEdBQUcsR0FBSyxJQUMzQkEsRUFBYUEsRUFBVyxNQUFNLEdBQUcsRUFBRSxDQUFDLEdBRXBDQSxFQUFXLFFBQVEsR0FBRyxHQUFLLElBQzNCQSxFQUFhQSxFQUFXLE1BQU0sR0FBRyxFQUFFLENBQUMsR0FFakNBLENBQ1gsRUFDTUMsRUFBWVAsRUFBUUYsRUFBTyxRQUFTLGtCQUFrQixFQUM1RCxHQUFJUyxJQUFjLE9BQ2QsT0FBT0gsRUFBa0JOLEVBQU8sUUFBUVMsQ0FBUyxDQUFDLEVBRXRELEdBQUlSLEdBQVEsT0FBT0EsR0FBUyxTQUFVLENBQ2xDLElBQU1TLEVBQVVSLEVBQVFELEVBQU0sTUFBTSxFQUNwQyxHQUFJUyxHQUFXVCxFQUFLUyxDQUFPLElBQU0sT0FDN0IsT0FBT0osRUFBa0JMLEVBQUtTLENBQU8sQ0FBQyxFQUUxQyxHQUFJVCxFQUFLLFNBQWMsT0FDbkIsT0FBT0ssRUFBa0JMLEVBQUssTUFBUyxDQUUvQyxDQUNKLElDckRBLElBQUFVLElBQ0FDLElBQ0FDLEdBQ0FDLElBS2FDLEdBUmJDLEdBQUFDLEVBQUEsS0FBQU4sSUFBeUMsa0NBQ3pDQyxJQUFpQywrQkFDakNDLEdBQXlILDhCQUN6SEMsSUFBMkIsK0JBQzNCSSxLQUNBQyxLQUNBQyxNQUNBQyxLQUNhTixHQUFOLGNBQW9DTyxFQUFtQixDQUMxRCxTQUNBLFlBQVlDLEVBQVUsQ0FDbEIsTUFBTSxFQUNOLEtBQUssU0FBV0EsQ0FDcEIsQ0FDQSxNQUFNLEtBQUtDLEVBQVFDLEVBQU0sQ0FDckIsT0FBTyxLQUFLLE1BQU1ELEVBQVEsT0FBT0MsR0FBUyxTQUFXLEtBQUssTUFBTUEsRUFBTUMsR0FBVyxFQUFJLE1BQU1DLEdBQWNGLEVBQU0sS0FBSyxZQUFZLENBQUMsQ0FDckksQ0FDQSxXQUFXRCxFQUFRQyxFQUFNLENBQ3JCLE9BQU8sS0FBSyxNQUFNRCxFQUFRQyxDQUFJLENBQ2xDLENBQ0EsTUFBTUQsRUFBUUksRUFBTyxDQUNqQixJQUFNQyxFQUFXRCxJQUFVLE1BQVEsT0FBT0EsR0FBVSxTQUM5Q0UsRUFBSyxxQkFBaUIsR0FBR04sQ0FBTSxFQUNyQyxHQUFJSyxFQUFVLENBQ1YsR0FBSUMsRUFBRyxlQUFlLEVBQUcsQ0FDckIsSUFBTUMsRUFBU0gsRUFDVEksRUFBUUYsRUFBRyxjQUFjLEVBQ3pCRyxFQUFNLENBQUMsRUFDVEMsRUFDRSxDQUFFLFNBQUFDLENBQVMsRUFBSSxLQUFLLFNBQ3RCQSxJQUNBRCxFQUFVLENBQUMsR0FFZixJQUFJRSxFQUNBSixJQUNBSSxFQUFhLElBQUlDLEdBQVdOLEVBQVFFLENBQUcsR0FFM0MsT0FBVyxDQUFDSyxFQUFZQyxDQUFZLElBQUtULEVBQUcsZUFBZSxFQUFHLENBQzFELElBQUlVLEVBQVVGLEVBQ1ZILElBQ0FLLEVBQVVELEVBQWEsZ0JBQWdCLEVBQUUsVUFBWUMsRUFDckROLEVBQVFNLENBQU8sRUFBSUYsR0FFbkJOLEdBQ0FJLEVBQVcsS0FBS0ksQ0FBTyxFQUV2QlQsRUFBT1MsQ0FBTyxHQUFLLE9BQ25CUCxFQUFJSyxDQUFVLEVBQUksS0FBSyxNQUFNQyxFQUFjUixFQUFPUyxDQUFPLENBQUMsRUFFbEUsQ0FDQSxHQUFJUixFQUNBSSxFQUFXLGFBQWEsVUFFbkIsT0FBT0wsRUFBTyxRQUFXLFNBQzlCLE9BQVcsQ0FBQ1UsRUFBR0MsQ0FBQyxJQUFLLE9BQU8sUUFBUVgsQ0FBTSxFQUFHLENBQ3pDLElBQU1ZLEVBQUlSLEVBQVdELEVBQVFPLENBQUMsR0FBS0EsRUFBSUEsRUFDakNFLEtBQUtWLElBQ1BBLEVBQUlVLENBQUMsRUFBSUQsRUFFakIsQ0FFSixPQUFPVCxDQUNYLENBQ0EsR0FBSSxNQUFNLFFBQVFMLENBQUssR0FBS0UsRUFBRyxhQUFhLEVBQUcsQ0FDM0MsSUFBTWMsRUFBYWQsRUFBRyxlQUFlLEVBQy9CRyxFQUFNLENBQUMsRUFDUFksRUFBUyxDQUFDLENBQUNmLEVBQUcsZ0JBQWdCLEVBQUUsT0FDdEMsUUFBV2dCLEtBQVFsQixHQUNYaUIsR0FBVUMsR0FBUSxPQUNsQmIsRUFBSSxLQUFLLEtBQUssTUFBTVcsRUFBWUUsQ0FBSSxDQUFDLEVBRzdDLE9BQU9iLENBQ1gsQ0FDQSxHQUFJSCxFQUFHLFlBQVksRUFBRyxDQUNsQixJQUFNaUIsRUFBWWpCLEVBQUcsZUFBZSxFQUM5QkcsRUFBTSxDQUFDLEVBQ1BZLEVBQVMsQ0FBQyxDQUFDZixFQUFHLGdCQUFnQixFQUFFLE9BQ3RDLE9BQVcsQ0FBQ2tCLEVBQUlDLENBQUUsSUFBSyxPQUFPLFFBQVFyQixDQUFLLEdBQ25DaUIsR0FBVUksR0FBTSxRQUNoQmhCLEVBQUllLENBQUUsRUFBSSxLQUFLLE1BQU1ELEVBQVdFLENBQUUsR0FHMUMsT0FBT2hCLENBQ1gsQ0FDSixDQUNBLEdBQUlILEVBQUcsYUFBYSxHQUFLLE9BQU9GLEdBQVUsU0FDdEMsU0FBTyxnQkFBV0EsQ0FBSyxFQUUzQixJQUFNc0IsRUFBWXBCLEVBQUcsZ0JBQWdCLEVBQUUsVUFDdkMsR0FBSUEsRUFBRyxlQUFlLEdBQUssT0FBT0YsR0FBVSxVQUFZc0IsRUFFcEQsT0FEZUEsSUFBYyxvQkFBc0JBLEVBQVUsU0FBUyxPQUFPLEVBRWxFLGtCQUFlLEtBQUt0QixDQUFLLEVBRTdCQSxFQUVYLEdBQUlFLEVBQUcsa0JBQWtCLEdBQUtGLEdBQVMsS0FFbkMsVUFEZSw4QkFBeUJFLEVBQUksS0FBSyxRQUFRLEVBQ3pDLENBQ1osSUFBSyxHQUNELFNBQU8sbUNBQStCRixDQUFLLEVBQy9DLElBQUssR0FDRCxTQUFPLHlCQUFxQkEsQ0FBSyxFQUNyQyxJQUFLLEdBQ0QsU0FBTyx3QkFBb0JBLENBQUssRUFDcEMsUUFDSSxlQUFRLEtBQUssaUVBQWtFQSxDQUFLLEVBQzdFLElBQUksS0FBS0EsQ0FBSyxDQUM3QixDQUVKLEdBQUlFLEVBQUcsbUJBQW1CLElBQU0sT0FBT0YsR0FBVSxVQUFZLE9BQU9BLEdBQVUsVUFDMUUsT0FBTyxPQUFPQSxDQUFLLEVBRXZCLEdBQUlFLEVBQUcsbUJBQW1CLEdBQUtGLEdBQVMsS0FBVyxDQUMvQyxHQUFJQSxhQUFpQixnQkFDakIsT0FBT0EsRUFFWCxJQUFNdUIsRUFBVXZCLEVBQ2hCLE9BQUl1QixFQUFRLE9BQVMsY0FBZ0IsV0FBWUEsRUFDdEMsSUFBSSxnQkFBYUEsRUFBUSxPQUFRQSxFQUFRLElBQUksRUFFakQsSUFBSSxnQkFBYSxPQUFPdkIsQ0FBSyxFQUFHLFlBQVksQ0FDdkQsQ0FDQSxHQUFJRSxFQUFHLGdCQUFnQixHQUFLLE9BQU9GLEdBQVUsU0FBVSxDQUNuRCxPQUFRQSxFQUFPLENBQ1gsSUFBSyxXQUNELE1BQU8sS0FDWCxJQUFLLFlBQ0QsTUFBTyxLQUNYLElBQUssTUFDRCxNQUFPLElBQ2YsQ0FDQSxPQUFPQSxDQUNYLENBQ0EsR0FBSUUsRUFBRyxpQkFBaUIsRUFDcEIsR0FBSUQsRUFBVSxDQUNWLElBQU1JLEVBQU0sTUFBTSxRQUFRTCxDQUFLLEVBQUksQ0FBQyxFQUFJLENBQUMsRUFDekMsT0FBVyxDQUFDYSxFQUFHQyxDQUFDLElBQUssT0FBTyxRQUFRZCxDQUFLLEVBQ2pDYyxhQUFhLGdCQUNiVCxFQUFJUSxDQUFDLEVBQUlDLEVBR1RULEVBQUlRLENBQUMsRUFBSSxLQUFLLE1BQU1YLEVBQUlZLENBQUMsRUFHakMsT0FBT1QsQ0FDWCxLQUVJLFFBQU8sZ0JBQWdCTCxDQUFLLEVBR3BDLE9BQU9BLENBQ1gsQ0FDSixJQzFKQSxJQUFBd0IsSUFDTUMsSUFDT0MsR0FGYkMsSUFBQUMsRUFBQSxLQUFBSixJQUE2Qiw4QkFDdkJDLElBQXVCLFNBQ2hCQyxHQUFOLEtBQW1CLENBQ3RCLE9BQVMsSUFBSSxJQUNiLFFBQVUsRUFDVixNQUFRLEVBQ1IsZ0JBQWlCLENBQ2IsR0FBSSxLQUFLLFFBQVUsRUFDZixNQUFNLElBQUksTUFBTSx5REFBeUQsRUFFN0UsR0FBSSxLQUFLLFFBQVUsRUFDZixNQUFNLElBQUksTUFBTSxtREFBbUQsRUFFdkUsWUFBSyxNQUFRLEVBQ04sQ0FBQ0csRUFBS0MsSUFBVSxDQUNuQixHQUFJQSxhQUFpQixpQkFBYyxDQUMvQixJQUFNQyxFQUFJLEdBQUdOLElBQXVCLEtBQU8sS0FBSyxTQUFTLElBQU1LLEVBQU0sT0FDckUsWUFBSyxPQUFPLElBQUksSUFBSUMsQ0FBQyxJQUFLRCxFQUFNLE1BQU0sRUFDL0JDLENBQ1gsQ0FDQSxHQUFJLE9BQU9ELEdBQVUsU0FBVSxDQUMzQixJQUFNRSxFQUFJRixFQUFNLFNBQVMsRUFDbkJDLEVBQUksR0FBR04sSUFBdUIsSUFBTSxLQUFLLFNBQVMsSUFBTU8sRUFDOUQsWUFBSyxPQUFPLElBQUksSUFBSUQsQ0FBQyxJQUFLQyxDQUFDLEVBQ3BCRCxDQUNYLENBQ0EsT0FBT0QsQ0FDWCxDQUNKLENBQ0EsY0FBY0csRUFBTSxDQUNoQixHQUFJLEtBQUssUUFBVSxFQUNmLE1BQU0sSUFBSSxNQUFNLHlEQUF5RCxFQUU3RSxHQUFJLEtBQUssUUFBVSxFQUNmLE1BQU0sSUFBSSxNQUFNLG1EQUFtRCxFQUd2RSxHQURBLEtBQUssTUFBUSxFQUNULEtBQUssVUFBWSxFQUNqQixPQUFPQSxFQUVYLE9BQVcsQ0FBQ0osRUFBS0MsQ0FBSyxJQUFLLEtBQUssT0FDNUJHLEVBQU9BLEVBQUssUUFBUUosRUFBS0MsQ0FBSyxFQUVsQyxPQUFPRyxDQUNYLENBQ0osSUM3Q0EsSUFBQUMsSUFDQUMsR0FDQUMsR0FDQUMsR0FHYUMsR0FOYkMsR0FBQUMsRUFBQSxLQUFBTixJQUF5QyxrQ0FDekNDLEdBQWlDLCtCQUNqQ0MsR0FBd0YsOEJBQ3hGQyxHQUF5QiwrQkFDekJJLEtBQ0FDLE1BQ2FKLEdBQU4sY0FBa0NLLEVBQW1CLENBQ3hELFNBQ0EsT0FDQSxZQUFjLEdBQ2QsV0FDQSxZQUFZQyxFQUFVLENBQ2xCLE1BQU0sRUFDTixLQUFLLFNBQVdBLENBQ3BCLENBQ0EsTUFBTUMsRUFBUUMsRUFBTyxDQUNqQixLQUFLLFdBQWEsb0JBQWlCLEdBQUdELENBQU0sRUFDNUMsS0FBSyxPQUFTLEtBQUssT0FBTyxLQUFLLFdBQVlDLENBQUssQ0FDcEQsQ0FDQSwyQkFBMkJELEVBQVFDLEVBQU8sQ0FDdEMsS0FBSyxNQUFNRCxFQUFRQyxDQUFLLEVBQ3BCLE9BQU8sS0FBSyxRQUFXLFdBQ3ZCLEtBQUssT0FBTyxPQUFTLG9CQUFpQixHQUFHRCxDQUFNLEVBQUUsUUFBUSxFQUFJLEVBRXJFLENBQ0EsT0FBUSxDQUNKLEdBQU0sQ0FBRSxXQUFBRSxFQUFZLFlBQUFDLENBQVksRUFBSSxLQUdwQyxHQUZBLEtBQUssV0FBYSxPQUNsQixLQUFLLFlBQWMsR0FDZkQsR0FBWSxlQUFlLEdBQUtBLEdBQVksaUJBQWlCLEVBQUcsQ0FDaEUsR0FBSSxDQUFDQyxFQUNELE9BQU8sS0FBSyxVQUFVLEtBQUssTUFBTSxFQUVyQyxJQUFNQyxFQUFXLElBQUlDLEdBQ3JCLE9BQU9ELEVBQVMsY0FBYyxLQUFLLFVBQVUsS0FBSyxPQUFRQSxFQUFTLGVBQWUsRUFBRyxDQUFDLENBQUMsQ0FDM0YsQ0FDQSxPQUFPLEtBQUssTUFDaEIsQ0FDQSxPQUFPSixFQUFRQyxFQUFPSyxFQUFXLENBQzdCLElBQU1DLEVBQVdOLElBQVUsTUFBUSxPQUFPQSxHQUFVLFNBQzlDTyxFQUFLLG9CQUFpQixHQUFHUixDQUFNLEVBQ3JDLEdBQUlPLEVBQVUsQ0FDVixHQUFJQyxFQUFHLGVBQWUsRUFBRyxDQUNyQixJQUFNQyxFQUFTUixFQUNUUyxFQUFNLENBQUMsRUFDUCxDQUFFLFNBQUFDLENBQVMsRUFBSSxLQUFLLFNBQ3RCQyxFQUNBRCxJQUNBQyxFQUFVLENBQUMsR0FFZixPQUFXLENBQUNDLEVBQVlDLENBQVksSUFBS04sRUFBRyxlQUFlLEVBQUcsQ0FDMUQsSUFBTU8sRUFBb0IsS0FBSyxPQUFPRCxFQUFjTCxFQUFPSSxDQUFVLEVBQUdMLENBQUUsRUFDMUUsR0FBSU8sSUFBc0IsT0FBVyxDQUNqQyxJQUFJQyxFQUFZSCxFQUNaRixJQUNBSyxFQUFZRixFQUFhLGdCQUFnQixFQUFFLFVBQVlELEVBQ3ZERCxFQUFRQyxDQUFVLEVBQUlHLEdBRTFCTixFQUFJTSxDQUFTLEVBQUlELENBQ3JCLENBQ0osQ0FDQSxHQUFJUCxFQUFHLGNBQWMsR0FBSyxPQUFPLEtBQUtFLENBQUcsRUFBRSxTQUFXLEVBQUcsQ0FDckQsR0FBTSxDQUFFLFNBQUFPLENBQVMsRUFBSVIsRUFDckIsR0FBSSxNQUFNLFFBQVFRLENBQVEsRUFBRyxDQUN6QixHQUFNLENBQUNDLEVBQUdDLENBQUMsRUFBSUYsRUFDZlAsRUFBSVEsQ0FBQyxFQUFJLEtBQUssT0FBTyxHQUFJQyxDQUFDLENBQzlCLENBQ0osU0FDUyxPQUFPVixFQUFPLFFBQVcsU0FDOUIsT0FBVyxDQUFDUyxFQUFHQyxDQUFDLElBQUssT0FBTyxRQUFRVixDQUFNLEVBQUcsQ0FDekMsSUFBTU8sRUFBWUwsRUFBV0MsRUFBUU0sQ0FBQyxHQUFLQSxFQUFJQSxFQUN6Q0YsS0FBYU4sSUFDZkEsRUFBSU0sQ0FBUyxFQUFJLEtBQUssT0FBTyxHQUFJRyxDQUFDLEVBRTFDLENBRUosT0FBT1QsQ0FDWCxDQUNBLEdBQUksTUFBTSxRQUFRVCxDQUFLLEdBQUtPLEVBQUcsYUFBYSxFQUFHLENBQzNDLElBQU1ZLEVBQWFaLEVBQUcsZUFBZSxFQUMvQkUsRUFBTSxDQUFDLEVBQ1BXLEVBQVMsQ0FBQyxDQUFDYixFQUFHLGdCQUFnQixFQUFFLE9BQ3RDLFFBQVdjLEtBQVFyQixHQUNYb0IsR0FBVUMsR0FBUSxPQUNsQlosRUFBSSxLQUFLLEtBQUssT0FBT1UsRUFBWUUsQ0FBSSxDQUFDLEVBRzlDLE9BQU9aLENBQ1gsQ0FDQSxHQUFJRixFQUFHLFlBQVksRUFBRyxDQUNsQixJQUFNZSxFQUFZZixFQUFHLGVBQWUsRUFDOUJFLEVBQU0sQ0FBQyxFQUNQVyxFQUFTLENBQUMsQ0FBQ2IsRUFBRyxnQkFBZ0IsRUFBRSxPQUN0QyxPQUFXLENBQUNnQixFQUFJQyxDQUFFLElBQUssT0FBTyxRQUFReEIsQ0FBSyxHQUNuQ29CLEdBQVVJLEdBQU0sUUFDaEJmLEVBQUljLENBQUUsRUFBSSxLQUFLLE9BQU9ELEVBQVdFLENBQUUsR0FHM0MsT0FBT2YsQ0FDWCxDQUNBLEdBQUlULGFBQWlCLGFBQWVPLEVBQUcsYUFBYSxHQUFLQSxFQUFHLGlCQUFpQixHQUN6RSxPQUFJQSxJQUFPLEtBQUssV0FDTFAsR0FFSCxLQUFLLGNBQWMsZUFBaUIsYUFBVUEsQ0FBSyxFQUUvRCxHQUFJQSxhQUFpQixPQUFTTyxFQUFHLGtCQUFrQixHQUFLQSxFQUFHLGlCQUFpQixHQUV4RSxVQURlLDhCQUF5QkEsRUFBSSxLQUFLLFFBQVEsRUFDekMsQ0FDWixJQUFLLEdBQ0QsT0FBT1AsRUFBTSxZQUFZLEVBQUUsUUFBUSxRQUFTLEdBQUcsRUFDbkQsSUFBSyxHQUNELFNBQU8sb0JBQWdCQSxDQUFLLEVBQ2hDLElBQUssR0FDRCxPQUFPQSxFQUFNLFFBQVEsRUFBSSxJQUM3QixRQUNJLGVBQVEsS0FBSyxnREFBaURBLENBQUssRUFDNURBLEVBQU0sUUFBUSxFQUFJLEdBQ2pDLENBRUFBLGFBQWlCLGtCQUNqQixLQUFLLFlBQWMsR0FFM0IsQ0FDQSxHQUFJLEVBQUFBLElBQVUsTUFBUUssR0FBVyxlQUFlLEdBR2hELElBQUlFLEVBQUcsZUFBZSxFQUFHLENBQ3JCLEdBQUksT0FBT1AsRUFBVSxLQUFlTyxFQUFHLG1CQUFtQixFQUN0RCxTQUFPLDZCQUF5QixFQUVwQyxJQUFNa0IsRUFBWWxCLEVBQUcsZ0JBQWdCLEVBQUUsVUFDdkMsT0FBSVAsR0FBUyxNQUFReUIsSUFDRkEsSUFBYyxvQkFBc0JBLEVBQVUsU0FBUyxPQUFPLEdBRWxFLGtCQUFlLEtBQUt6QixDQUFLLEVBR2pDQSxDQUNYLENBQ0EsR0FBSSxPQUFPQSxHQUFVLFVBQVlPLEVBQUcsZ0JBQWdCLEVBQ2hELE9BQUksS0FBSyxJQUFJUCxDQUFLLElBQU0sS0FBWSxNQUFNQSxDQUFLLEVBQ3BDLE9BQU9BLENBQUssRUFFaEJBLEVBRVgsR0FBSSxPQUFPQSxHQUFVLFVBQVlPLEVBQUcsYUFBYSxFQUM3QyxPQUFJQSxJQUFPLEtBQUssV0FDTFAsR0FFSCxLQUFLLGNBQWMsZUFBaUIsYUFBVUEsQ0FBSyxFQUsvRCxHQUhJLE9BQU9BLEdBQVUsV0FDakIsS0FBSyxZQUFjLElBRW5CTyxFQUFHLGlCQUFpQixFQUNwQixHQUFJRCxFQUFVLENBQ1YsSUFBTUcsRUFBTSxNQUFNLFFBQVFULENBQUssRUFBSSxDQUFDLEVBQUksQ0FBQyxFQUN6QyxPQUFXLENBQUNpQixFQUFHQyxDQUFDLElBQUssT0FBTyxRQUFRbEIsQ0FBSyxFQUNqQ2tCLGFBQWEsaUJBQ2IsS0FBSyxZQUFjLEdBQ25CVCxFQUFJUSxDQUFDLEVBQUlDLEdBR1RULEVBQUlRLENBQUMsRUFBSSxLQUFLLE9BQU9WLEVBQUlXLENBQUMsRUFHbEMsT0FBT1QsQ0FDWCxLQUVJLFFBQU8sZ0JBQWdCVCxDQUFLLEVBR3BDLE9BQU9BLEVBQ1gsQ0FDSixJQy9LQSxJQUdhMEIsR0FIYkMsR0FBQUMsRUFBQSxLQUFBQyxLQUNBQyxLQUNBQyxLQUNhTCxHQUFOLGNBQXdCTSxFQUFtQixDQUM5QyxTQUNBLFlBQVlDLEVBQVUsQ0FDbEIsTUFBTSxFQUNOLEtBQUssU0FBV0EsQ0FDcEIsQ0FDQSxrQkFBbUIsQ0FDZixJQUFNQyxFQUFhLElBQUlDLEdBQW9CLEtBQUssUUFBUSxFQUN4RCxPQUFBRCxFQUFXLGdCQUFnQixLQUFLLFlBQVksRUFDckNBLENBQ1gsQ0FDQSxvQkFBcUIsQ0FDakIsSUFBTUUsRUFBZSxJQUFJQyxHQUFzQixLQUFLLFFBQVEsRUFDNUQsT0FBQUQsRUFBYSxnQkFBZ0IsS0FBSyxZQUFZLEVBQ3ZDQSxDQUNYLENBQ0osSUNuQkEsSUFBQUUsSUFDQUMsR0FJYUMsR0FMYkMsR0FBQUMsRUFBQSxLQUFBSixJQUE0QixrQ0FDNUJDLEdBQXNELCtCQUN0REksS0FDQUMsS0FDQUMsS0FDYUwsR0FBTixjQUFpQyxlQUFZLENBQ2hELFdBQ0EsYUFDQSxjQUNBLE1BQ0EsTUFDQSxtQkFDQSxZQUFZLENBQUUsaUJBQUFNLEVBQWtCLGNBQUFDLEVBQWUsbUJBQUFDLEVBQW9CLFVBQUFDLENBQVcsRUFBRyxDQUM3RSxNQUFNLENBQ0YsaUJBQUFILENBQ0osQ0FBQyxFQUNELEtBQUssY0FBZ0JDLEVBQ3JCLEtBQUssTUFDREUsR0FDSSxJQUFJQyxHQUFVLENBQ1YsZ0JBQWlCLENBQ2IsU0FBVSxHQUNWLFFBQVMsQ0FDYixFQUNBLFNBQVUsRUFDZCxDQUFDLEVBQ1QsS0FBSyxXQUFhLEtBQUssTUFBTSxpQkFBaUIsRUFDOUMsS0FBSyxhQUFlLEtBQUssTUFBTSxtQkFBbUIsRUFDbEQsS0FBSyxtQkFBcUIsQ0FBQyxDQUFDRixFQUM1QixLQUFLLE1BQVEsSUFBSUcsR0FBWSxLQUFLLGtCQUFrQixDQUN4RCxDQUNBLE1BQU0saUJBQWlCQyxFQUFpQkMsRUFBT0MsRUFBUyxDQUNwRCxJQUFNQyxFQUFVLE1BQU0sTUFBTSxpQkFBaUJILEVBQWlCQyxFQUFPQyxDQUFPLEVBQzVFLE9BQUtDLEVBQVEsS0FBSyxTQUFTLEdBQUcsSUFDMUJBLEVBQVEsTUFBUSxLQUVwQixPQUFPLE9BQU9BLEVBQVEsUUFBUyxDQUMzQixlQUFnQiwwQkFBMEIsS0FBSyxrQkFBa0IsQ0FBQyxHQUNsRSxlQUFnQixHQUFHLEtBQUssYUFBYSxJQUFJSCxFQUFnQixJQUFJLEVBQ2pFLENBQUMsRUFDRyxLQUFLLHFCQUNMRyxFQUFRLFFBQVEsbUJBQW1CLEVBQUksWUFFdkMsVUFBTUgsRUFBZ0IsS0FBSyxJQUFNLFFBQVUsQ0FBQ0csRUFBUSxRQUNwREEsRUFBUSxLQUFPLE1BRVpBLENBQ1gsQ0FDQSxpQkFBa0IsQ0FDZCxPQUFPLEtBQUssS0FDaEIsQ0FDQSxNQUFNLFlBQVlILEVBQWlCRSxFQUFTRSxFQUFVQyxFQUFZQyxFQUFVLENBQ3BFLEtBQUssb0JBQ0wsS0FBSyxNQUFNLG9CQUFvQkQsRUFBWUQsQ0FBUSxFQUV2RCxJQUFNRyxFQUFrQkMsR0FBc0JKLEVBQVVDLENBQVUsR0FBSyxVQUNqRSxDQUFFLFlBQUFJLEVBQWEsY0FBQUMsQ0FBYyxFQUFJLE1BQU0sS0FBSyxNQUFNLG1DQUFtQ0gsRUFBaUIsS0FBSyxRQUFRLGlCQUFrQkgsRUFBVUMsRUFBWUMsRUFBVSxLQUFLLG1CQUFxQixLQUFLLE1BQU0seUJBQTJCLE1BQVMsRUFDOU9LLEVBQUssb0JBQWlCLEdBQUdGLENBQVcsRUFDcENHLEVBQVVQLEVBQVcsU0FBV0EsRUFBVyxTQUFXLFVBQ3REUSxFQUFZLGdCQUFhLElBQUlKLEVBQVksQ0FBQyxDQUFDLEVBQUUsYUFBYUEsQ0FBVyxHQUFLLE1BQzFFSyxFQUFZLElBQUlELEVBQVVELENBQU8sRUFDakNHLEVBQVMsQ0FBQyxFQUNoQixPQUFXLENBQUNDLEVBQU1DLENBQU0sSUFBS04sRUFBRyxlQUFlLEVBQ3ZDTixFQUFXVyxDQUFJLEdBQUssT0FDcEJELEVBQU9DLENBQUksRUFBSSxLQUFLLE1BQU0sbUJBQW1CLEVBQUUsV0FBV0MsRUFBUVosRUFBV1csQ0FBSSxDQUFDLEdBRzFGLE1BQUksS0FBSyxvQkFDTCxLQUFLLE1BQU0sa0JBQWtCWCxFQUFZVSxDQUFNLEVBRTdDLEtBQUssTUFBTSx5QkFBeUIsT0FBTyxPQUFPRCxFQUFXSixFQUFlLENBQzlFLE9BQVFDLEVBQUcsZ0JBQWdCLEVBQUUsTUFDN0IsUUFBQUMsQ0FDSixFQUFHRyxDQUFNLEVBQUdWLENBQVUsQ0FDMUIsQ0FDSixJQzNFQSxJQUNhYSxHQURiQyxJQUFBQyxFQUFBLEtBQUFDLEtBQ2FILEdBQU4sY0FBaUNJLEVBQW1CLENBQ3ZELFlBQVksQ0FBRSxpQkFBQUMsRUFBa0IsY0FBQUMsRUFBZSxtQkFBQUMsRUFBb0IsVUFBQUMsQ0FBVyxFQUFHLENBQzdFLE1BQU0sQ0FDRixpQkFBQUgsRUFDQSxjQUFBQyxFQUNBLG1CQUFBQyxFQUNBLFVBQUFDLENBQ0osQ0FBQyxDQUNMLENBQ0EsWUFBYSxDQUNULE1BQU8sMEJBQ1gsQ0FDQSxtQkFBb0IsQ0FDaEIsTUFBTyxLQUNYLENBQ0EsdUJBQXdCLENBQ3BCLE1BQU8sNEJBQ1gsQ0FDSixJQ25CQSxJQUNhQyxHQURiQyxJQUFBQyxFQUFBLEtBQUFDLEtBQ2FILEdBQU4sY0FBaUNJLEVBQW1CLENBQ3ZELFlBQVksQ0FBRSxpQkFBQUMsRUFBa0IsY0FBQUMsRUFBZSxtQkFBQUMsRUFBb0IsVUFBQUMsQ0FBVyxFQUFHLENBQzdFLE1BQU0sQ0FDRixpQkFBQUgsRUFDQSxjQUFBQyxFQUNBLG1CQUFBQyxFQUNBLFVBQUFDLENBQ0osQ0FBQyxDQUNMLENBQ0EsWUFBYSxDQUNULE1BQU8sMEJBQ1gsQ0FDQSxtQkFBb0IsQ0FDaEIsTUFBTyxLQUNYLENBQ0EsdUJBQXdCLENBQ3BCLE1BQU8sNEJBQ1gsQ0FDSixJQ25CQSxJQUFBQyxHQUNBQyxHQUlhQyxHQUxiQyxJQUFBQyxFQUFBLEtBQUFKLEdBQXlHLGtDQUN6R0MsR0FBK0MsK0JBQy9DSSxLQUNBQyxLQUNBQyxLQUNhTCxHQUFOLGNBQWtDLHNCQUFvQixDQUN6RCxXQUNBLGFBQ0EsTUFDQSxNQUFRLElBQUlNLEdBQ1osWUFBWSxDQUFFLGlCQUFBQyxDQUFpQixFQUFHLENBQzlCLE1BQU0sQ0FDRixpQkFBQUEsQ0FDSixDQUFDLEVBQ0QsSUFBTUMsRUFBVyxDQUNiLGdCQUFpQixDQUNiLFNBQVUsR0FDVixRQUFTLENBQ2IsRUFDQSxhQUFjLEdBQ2QsU0FBVSxFQUNkLEVBQ0EsS0FBSyxNQUFRLElBQUlDLEdBQVVELENBQVEsRUFDbkMsS0FBSyxXQUFhLElBQUksbUNBQWdDLEtBQUssTUFBTSxpQkFBaUIsRUFBR0EsQ0FBUSxFQUM3RixLQUFLLGFBQWUsSUFBSSxxQ0FBa0MsS0FBSyxNQUFNLG1CQUFtQixFQUFHQSxDQUFRLENBQ3ZHLENBQ0EsWUFBYSxDQUNULE1BQU8seUJBQ1gsQ0FDQSxpQkFBa0IsQ0FDZCxPQUFPLEtBQUssS0FDaEIsQ0FDQSxnQkFBZ0JFLEVBQWMsQ0FDMUIsS0FBSyxNQUFNLGdCQUFnQkEsQ0FBWSxFQUN2QyxNQUFNLGdCQUFnQkEsQ0FBWSxDQUN0QyxDQUNBLE1BQU0saUJBQWlCQyxFQUFpQkMsRUFBT0MsRUFBUyxDQUNwRCxJQUFNQyxFQUFVLE1BQU0sTUFBTSxpQkFBaUJILEVBQWlCQyxFQUFPQyxDQUFPLEVBQ3RFRSxFQUFjLG9CQUFpQixHQUFHSixFQUFnQixLQUFLLEVBQzdELEdBQUksQ0FBQ0csRUFBUSxRQUFRLGNBQWMsRUFBRyxDQUNsQyxJQUFNRSxFQUFjLEtBQUssTUFBTSx1QkFBdUIsS0FBSyxzQkFBc0IsRUFBR0QsQ0FBVyxFQUMzRkMsSUFDQUYsRUFBUSxRQUFRLGNBQWMsRUFBSUUsRUFFMUMsQ0FDQSxPQUFJRixFQUFRLE1BQVEsTUFBUUEsRUFBUSxRQUFRLGNBQWMsSUFBTSxLQUFLLHNCQUFzQixJQUN2RkEsRUFBUSxLQUFPLE1BRVpBLENBQ1gsQ0FDQSxNQUFNLG9CQUFvQkgsRUFBaUJFLEVBQVNJLEVBQVUsQ0FDMUQsSUFBTUMsRUFBUyxNQUFNLE1BQU0sb0JBQW9CUCxFQUFpQkUsRUFBU0ksQ0FBUSxFQUMzRUUsRUFBZSxvQkFBaUIsR0FBR1IsRUFBZ0IsTUFBTSxFQUMvRCxPQUFXLENBQUNTLEVBQU1DLENBQU0sSUFBS0YsRUFBYSxlQUFlLEVBQ2pERSxFQUFPLGdCQUFnQixFQUFFLGFBQWUsRUFBRUQsS0FBUUYsS0FDbERBLEVBQU9FLENBQUksRUFBSSxNQUd2QixPQUFPRixDQUNYLENBQ0EsTUFBTSxZQUFZUCxFQUFpQkUsRUFBU0ksRUFBVUssRUFBWUMsRUFBVSxDQUN4RSxJQUFNQyxFQUFrQkMsR0FBc0JSLEVBQVVLLENBQVUsR0FBSyxVQUNqRSxDQUFFLFlBQUFJLEVBQWEsY0FBQUMsQ0FBYyxFQUFJLE1BQU0sS0FBSyxNQUFNLG1DQUFtQ0gsRUFBaUIsS0FBSyxRQUFRLGlCQUFrQlAsRUFBVUssRUFBWUMsQ0FBUSxFQUNuS0ssRUFBSyxvQkFBaUIsR0FBR0YsQ0FBVyxFQUNwQ0csRUFBVVAsRUFBVyxTQUFXQSxFQUFXLFNBQVcsVUFDdERRLEVBQVksZ0JBQWEsSUFBSUosRUFBWSxDQUFDLENBQUMsRUFBRSxhQUFhQSxDQUFXLEdBQUssTUFDMUVLLEVBQVksSUFBSUQsRUFBVUQsQ0FBTyxFQUN2QyxNQUFNLEtBQUssdUJBQXVCSCxFQUFhYixFQUFTSSxFQUFVSyxDQUFVLEVBQzVFLElBQU1KLEVBQVMsQ0FBQyxFQUNoQixPQUFXLENBQUNFLEVBQU1DLENBQU0sSUFBS08sRUFBRyxlQUFlLEVBQUcsQ0FDOUMsSUFBTUksRUFBU1gsRUFBTyxnQkFBZ0IsRUFBRSxVQUFZRCxFQUNwREYsRUFBT0UsQ0FBSSxFQUFJLEtBQUssTUFBTSxtQkFBbUIsRUFBRSxXQUFXQyxFQUFRQyxFQUFXVSxDQUFNLENBQUMsQ0FDeEYsQ0FDQSxNQUFNLEtBQUssTUFBTSx5QkFBeUIsT0FBTyxPQUFPRCxFQUFXSixFQUFlLENBQzlFLE9BQVFDLEVBQUcsZ0JBQWdCLEVBQUUsTUFDN0IsUUFBQUMsQ0FDSixFQUFHWCxDQUFNLEVBQUdJLENBQVUsQ0FDMUIsQ0FDQSx1QkFBd0IsQ0FDcEIsTUFBTyxrQkFDWCxDQUNKLElDakZBLElBQUFXLElBQ2FDLElBRGJDLElBQUFDLEVBQUEsS0FBQUgsSUFBNEIsaUNBQ2ZDLElBQWtCRyxHQUFVLENBQ3JDLEdBQUlBLEdBQVMsS0FHYixPQUFJLE9BQU9BLEdBQVUsVUFBWSxXQUFZQSxHQUN6QyxPQUFPQSxFQUFNLFVBRVYsaUJBQVlBLENBQUssQ0FDNUIsSUNUQSxJQUFBQyxJQUFBQyxFQUFBQyxJQUFBLGNBQ0EsT0FBTyxlQUFlQSxHQUFTLGFBQWMsQ0FBRSxNQUFPLEVBQUssQ0FBQyxFQUM1REEsR0FBUSxTQUFXQyxJQUNuQixJQUFNQyxJQUFvQixRQUFRLGlCQUFpQixFQUM3Q0MsR0FBUyxJQUFJRCxJQUFrQixVQUFVLENBQzNDLG9CQUFxQixHQUNyQixhQUFjLEdBQ2QsaUJBQWtCLEdBQ2xCLGtCQUFtQixHQUNuQixjQUFlLEdBQ2YsV0FBWSxHQUNaLGtCQUFtQixDQUFDRSxFQUFHQyxJQUFTQSxFQUFJLEtBQUssSUFBTSxJQUFNQSxFQUFJLFNBQVM7QUFBQSxDQUFJLEVBQUksR0FBSyxNQUNuRixDQUFDLEVBQ0RGLEdBQU8sVUFBVSxNQUFPLElBQUksRUFDNUJBLEdBQU8sVUFBVSxNQUFPO0FBQUEsQ0FBSSxFQUM1QixTQUFTRixJQUFTSyxFQUFXLENBQ3pCLE9BQU9ILEdBQU8sTUFBTUcsRUFBVyxFQUFJLENBQ3ZDLElDakJBLElBQUFDLEdBQUFDLEVBQUFDLElBQUEsY0FFQSxJQUFJQyxJQUFZLE1BRWhCLFNBQVNDLElBQWdCQyxFQUFPLENBQzVCLE9BQU9BLEVBQU0sUUFBUSxLQUFNLE9BQU8sRUFBRSxRQUFRLEtBQU0sTUFBTSxFQUFFLFFBQVEsS0FBTSxNQUFNLEVBQUUsUUFBUSxLQUFNLFFBQVEsQ0FDMUcsQ0FFQSxTQUFTQyxJQUFjRCxFQUFPLENBQzFCLE9BQU9BLEVBQ0YsUUFBUSxLQUFNLE9BQU8sRUFDckIsUUFBUSxLQUFNLFFBQVEsRUFDdEIsUUFBUSxLQUFNLFFBQVEsRUFDdEIsUUFBUSxLQUFNLE1BQU0sRUFDcEIsUUFBUSxLQUFNLE1BQU0sRUFDcEIsUUFBUSxNQUFPLFFBQVEsRUFDdkIsUUFBUSxNQUFPLFFBQVEsRUFDdkIsUUFBUSxVQUFXLFFBQVEsRUFDM0IsUUFBUSxTQUFVLFVBQVUsQ0FDckMsQ0FFQSxJQUFNRSxHQUFOLEtBQWMsQ0FDVixNQUNBLFlBQVlGLEVBQU8sQ0FDZixLQUFLLE1BQVFBLENBQ2pCLENBQ0EsVUFBVyxDQUNQLE9BQU9DLElBQWMsR0FBSyxLQUFLLEtBQUssQ0FDeEMsQ0FDSixFQUVNRSxHQUFOLE1BQU1DLENBQVEsQ0FDVixLQUNBLFNBQ0EsV0FBYSxDQUFDLEVBQ2QsT0FBTyxHQUFHQyxFQUFNQyxFQUFXQyxFQUFVLENBQ2pDLElBQU1DLEVBQU8sSUFBSUosRUFBUUMsQ0FBSSxFQUM3QixPQUFJQyxJQUFjLFFBQ2RFLEVBQUssYUFBYSxJQUFJTixHQUFRSSxDQUFTLENBQUMsRUFFeENDLElBQWEsUUFDYkMsRUFBSyxTQUFTRCxDQUFRLEVBRW5CQyxDQUNYLENBQ0EsWUFBWUgsRUFBTUksRUFBVyxDQUFDLEVBQUcsQ0FDN0IsS0FBSyxLQUFPSixFQUNaLEtBQUssU0FBV0ksQ0FDcEIsQ0FDQSxTQUFTSixFQUFNLENBQ1gsWUFBSyxLQUFPQSxFQUNMLElBQ1gsQ0FDQSxhQUFhQSxFQUFNTCxFQUFPLENBQ3RCLFlBQUssV0FBV0ssQ0FBSSxFQUFJTCxFQUNqQixJQUNYLENBQ0EsYUFBYVUsRUFBTyxDQUNoQixZQUFLLFNBQVMsS0FBS0EsQ0FBSyxFQUNqQixJQUNYLENBQ0EsZ0JBQWdCTCxFQUFNLENBQ2xCLGNBQU8sS0FBSyxXQUFXQSxDQUFJLEVBQ3BCLElBQ1gsQ0FDQSxFQUFFQSxFQUFNLENBQ0osWUFBSyxLQUFPQSxFQUNMLElBQ1gsQ0FDQSxFQUFFSyxFQUFPLENBQ0wsWUFBSyxTQUFTLEtBQUtBLENBQUssRUFDakIsSUFDWCxDQUNBLEVBQUVMLEVBQU1MLEVBQU8sQ0FDWCxPQUFJQSxHQUFTLE9BQ1QsS0FBSyxXQUFXSyxDQUFJLEVBQUlMLEdBRXJCLElBQ1gsQ0FDQSxHQUFHVyxFQUFPQyxFQUFPTCxFQUFXSyxFQUFPLENBQy9CLEdBQUlELEVBQU1DLENBQUssR0FBSyxLQUFNLENBQ3RCLElBQU1KLEVBQU9KLEVBQVEsR0FBR1EsRUFBT0QsRUFBTUMsQ0FBSyxDQUFDLEVBQUUsU0FBU0wsQ0FBUSxFQUM5RCxLQUFLLEVBQUVDLENBQUksQ0FDZixDQUNKLENBQ0EsRUFBRUcsRUFBT0UsRUFBVUMsRUFBWUMsRUFBZSxDQUN0Q0osRUFBTUUsQ0FBUSxHQUFLLE1BQ0xFLEVBQWMsRUFDdEIsSUFBS1AsR0FBUyxDQUNoQkEsRUFBSyxTQUFTTSxDQUFVLEVBQ3hCLEtBQUssRUFBRU4sQ0FBSSxDQUNmLENBQUMsQ0FFVCxDQUNBLEdBQUdHLEVBQU9FLEVBQVVDLEVBQVlDLEVBQWUsQ0FDM0MsR0FBSUosRUFBTUUsQ0FBUSxHQUFLLEtBQU0sQ0FDekIsSUFBTUcsRUFBUUQsRUFBYyxFQUN0QkUsRUFBZ0IsSUFBSWIsRUFBUVUsQ0FBVSxFQUM1Q0UsRUFBTSxJQUFLUixHQUFTLENBQ2hCUyxFQUFjLEVBQUVULENBQUksQ0FDeEIsQ0FBQyxFQUNELEtBQUssRUFBRVMsQ0FBYSxDQUN4QixDQUNKLENBQ0EsVUFBVyxDQUNQLElBQU1DLEVBQWMsRUFBUSxLQUFLLFNBQVMsT0FDdENDLEVBQVUsSUFBSSxLQUFLLElBQUksR0FDckJDLEVBQWEsS0FBSyxXQUN4QixRQUFXQyxLQUFpQixPQUFPLEtBQUtELENBQVUsRUFBRyxDQUNqRCxJQUFNRSxFQUFZRixFQUFXQyxDQUFhLEVBQ3RDQyxHQUFhLE9BQ2JILEdBQVcsSUFBSUUsQ0FBYSxLQUFLdEIsSUFBZ0IsR0FBS3VCLENBQVMsQ0FBQyxJQUV4RSxDQUNBLE9BQVFILEdBQVlELEVBQXFCLElBQUksS0FBSyxTQUFTLElBQUtLLEdBQU1BLEVBQUUsU0FBUyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsS0FBSyxLQUFLLElBQUksSUFBeEUsSUFDdEMsQ0FDSixFQUVBLE9BQU8sZUFBZTFCLEdBQVMsV0FBWSxDQUN2QyxXQUFZLEdBQ1osSUFBSyxVQUFZLENBQUUsT0FBT0MsSUFBVSxRQUFVLENBQ2xELENBQUMsRUFDREQsR0FBUSxRQUFVTSxHQUNsQk4sR0FBUSxRQUFVSyxLQzNIbEIsSUFBQXNCLElBQ0FDLElBQ0FDLEdBQ0FDLElBQ0FDLElBR2FDLEdBUGJDLEdBQUFDLEVBQUEsS0FBQVAsSUFBeUIsUUFDekJDLElBQTRDLGtDQUM1Q0MsR0FBaUMsK0JBQ2pDQyxJQUFxQyxpQ0FDckNDLElBQXVCLDZCQUN2QkksS0FDQUMsS0FDYUosR0FBTixjQUFtQ0ssRUFBbUIsQ0FDekQsU0FDQSxtQkFDQSxZQUFZQyxFQUFVLENBQ2xCLE1BQU0sRUFDTixLQUFLLFNBQVdBLEVBQ2hCLEtBQUssbUJBQXFCLElBQUksZ0NBQTRCQSxDQUFRLENBQ3RFLENBQ0EsZ0JBQWdCQyxFQUFjLENBQzFCLEtBQUssYUFBZUEsRUFDcEIsS0FBSyxtQkFBbUIsZ0JBQWdCQSxDQUFZLENBQ3hELENBQ0EsS0FBS0MsRUFBUUMsRUFBT0MsRUFBSyxDQUNyQixJQUFNQyxFQUFLLG9CQUFpQixHQUFHSCxDQUFNLEVBQy9CSSxFQUFnQkQsRUFBRyxpQkFBaUIsRUFNMUMsR0FMdUJBLEVBQUcsZUFBZSxHQUNyQ0EsRUFBRyxlQUFlLEdBQ2xCLENBQUMsQ0FBQyxPQUFPLE9BQU9DLENBQWEsRUFBRSxLQUFNQyxHQUMxQixDQUFDLENBQUNBLEVBQVMsZ0JBQWdCLEVBQUUsWUFDdkMsRUFDZSxDQUNoQixJQUFNQyxFQUFTLENBQUMsRUFDVkMsRUFBYSxPQUFPLEtBQUtILENBQWEsRUFBRSxDQUFDLEVBRS9DLE9BRDBCQSxFQUFjRyxDQUFVLEVBQzVCLGFBQWEsRUFDL0JELEVBQU9DLENBQVUsRUFBSU4sRUFHckJLLEVBQU9DLENBQVUsRUFBSSxLQUFLLEtBQUtILEVBQWNHLENBQVUsRUFBR04sQ0FBSyxFQUU1REssQ0FDWCxDQUNBLElBQU1FLEdBQWEsS0FBSyxjQUFjLGFBQWUsWUFBUVAsQ0FBSyxFQUM1RFEsRUFBZSxLQUFLLFNBQVNELENBQVMsRUFDNUMsT0FBTyxLQUFLLFdBQVdSLEVBQVFFLEVBQU1PLEVBQWFQLENBQUcsRUFBSU8sQ0FBWSxDQUN6RSxDQUNBLFdBQVdDLEVBQVNDLEVBQU8sQ0FDdkIsSUFBTVIsRUFBSyxvQkFBaUIsR0FBR08sQ0FBTyxFQUN0QyxHQUFJUCxFQUFHLGFBQWEsRUFDaEIsT0FFSixJQUFNUyxFQUFTVCxFQUFHLGdCQUFnQixFQUNsQyxHQUFJQSxFQUFHLGFBQWEsR0FBSyxDQUFDLE1BQU0sUUFBUVEsQ0FBSyxFQUN6QyxPQUFPLEtBQUssV0FBV1IsRUFBSSxDQUFDUSxDQUFLLENBQUMsRUFFdEMsR0FBSUEsR0FBUyxLQUNULE9BQU9BLEVBRVgsR0FBSSxPQUFPQSxHQUFVLFNBQVUsQ0FDM0IsSUFBTUUsRUFBUyxDQUFDLENBQUNELEVBQU8sT0FDbEJFLEVBQU8sQ0FBQyxDQUFDRixFQUFPLGFBQ3RCLEdBQUlULEVBQUcsYUFBYSxFQUFHLENBQ25CLElBQU1ZLEVBQVlaLEVBQUcsZUFBZSxFQUM5QmEsRUFBUyxDQUFDLEVBQ1ZDLEVBQVlGLEVBQVUsZ0JBQWdCLEVBQUUsU0FBVyxTQUNuREcsRUFBU0osRUFBT0gsR0FBU0EsRUFBTSxDQUFDLEdBQUtBLEdBQU9NLENBQVMsRUFDckRFLEVBQWMsTUFBTSxRQUFRRCxDQUFNLEVBQUlBLEVBQVMsQ0FBQ0EsQ0FBTSxFQUM1RCxRQUFXRSxLQUFLRCxHQUNSQyxHQUFLLE1BQVFQLElBQ2JHLEVBQU8sS0FBSyxLQUFLLFdBQVdELEVBQVdLLENBQUMsQ0FBQyxFQUdqRCxPQUFPSixDQUNYLENBQ0EsSUFBTUEsRUFBUyxDQUFDLEVBQ2hCLEdBQUliLEVBQUcsWUFBWSxFQUFHLENBQ2xCLElBQU1rQixFQUFRbEIsRUFBRyxhQUFhLEVBQ3hCRSxFQUFXRixFQUFHLGVBQWUsRUFDL0JtQixFQUNBUixFQUNBUSxFQUFVLE1BQU0sUUFBUVgsQ0FBSyxFQUFJQSxFQUFRLENBQUNBLENBQUssRUFHL0NXLEVBQVUsTUFBTSxRQUFRWCxFQUFNLEtBQUssRUFBSUEsRUFBTSxNQUFRLENBQUNBLEVBQU0sS0FBSyxFQUVyRSxJQUFNWSxFQUFjRixFQUFNLGdCQUFnQixFQUFFLFNBQVcsTUFDakRHLEVBQWdCbkIsRUFBUyxnQkFBZ0IsRUFBRSxTQUFXLFFBQzVELFFBQVdvQixLQUFTSCxFQUFTLENBQ3pCLElBQU1wQixFQUFNdUIsRUFBTUYsQ0FBVyxFQUN2QlosRUFBUWMsRUFBTUQsQ0FBYSxHQUM3QmIsR0FBUyxNQUFRRSxLQUNqQkcsRUFBT2QsQ0FBRyxFQUFJLEtBQUssV0FBV0csRUFBVU0sQ0FBSyxFQUVyRCxDQUNBLE9BQU9LLENBQ1gsQ0FDQSxHQUFJYixFQUFHLGVBQWUsRUFBRyxDQUNyQixJQUFNdUIsRUFBUXZCLEVBQUcsY0FBYyxFQUMzQndCLEVBQ0FELElBQ0FDLEVBQWEsSUFBSUMsR0FBV2pCLEVBQU9LLENBQU0sR0FFN0MsT0FBVyxDQUFDVCxFQUFZc0IsQ0FBWSxJQUFLMUIsRUFBRyxlQUFlLEVBQUcsQ0FDMUQsSUFBTTJCLEVBQWVELEVBQWEsZ0JBQWdCLEVBQzVDRSxFQUFnQkQsRUFBYSxZQUU3QkEsRUFBYSxTQUFXRCxFQUFhLFFBQVEsRUFEN0NBLEVBQWEsZ0JBQWdCLEVBQUUsU0FBV3RCLEVBRTVDbUIsR0FDQUMsRUFBVyxLQUFLSSxDQUFZLEVBRTVCcEIsRUFBTW9CLENBQVksR0FBSyxPQUN2QmYsRUFBT1QsQ0FBVSxFQUFJLEtBQUssV0FBV3NCLEVBQWNsQixFQUFNb0IsQ0FBWSxDQUFDLEVBRTlFLENBQ0EsT0FBSUwsR0FDQUMsRUFBVyxhQUFhLEVBRXJCWCxDQUNYLENBQ0EsR0FBSWIsRUFBRyxpQkFBaUIsRUFDcEIsT0FBT1EsRUFFWCxNQUFNLElBQUksTUFBTSx3RUFBd0VSLEVBQUcsUUFBUSxFQUFJLENBQUMsRUFBRSxDQUM5RyxDQUNBLE9BQUlBLEVBQUcsYUFBYSxFQUNULENBQUMsRUFFUkEsRUFBRyxZQUFZLEdBQUtBLEVBQUcsZUFBZSxFQUMvQixDQUFDLEVBRUwsS0FBSyxtQkFBbUIsS0FBS0EsRUFBSVEsQ0FBSyxDQUNqRCxDQUNBLFNBQVNxQixFQUFLLENBQ1YsR0FBSUEsRUFBSSxPQUFRLENBQ1osSUFBSUMsRUFDSixHQUFJLENBQ0FBLEtBQVksY0FBU0QsQ0FBRyxDQUM1QixPQUNPRSxFQUFHLENBQ04sTUFBSUEsR0FBSyxPQUFPQSxHQUFNLFVBQ2xCLE9BQU8sZUFBZUEsRUFBRyxvQkFBcUIsQ0FDMUMsTUFBT0YsQ0FDWCxDQUFDLEVBRUNFLENBQ1YsQ0FDQSxJQUFNQyxFQUFlLFFBQ2ZqQyxFQUFNLE9BQU8sS0FBSytCLENBQVMsRUFBRSxDQUFDLEVBQzlCRyxFQUFvQkgsRUFBVS9CLENBQUcsRUFDdkMsT0FBSWtDLEVBQWtCRCxDQUFZLElBQzlCQyxFQUFrQmxDLENBQUcsRUFBSWtDLEVBQWtCRCxDQUFZLEVBQ3ZELE9BQU9DLEVBQWtCRCxDQUFZLE1BRWxDLDBCQUFxQkMsQ0FBaUIsQ0FDakQsQ0FDQSxNQUFPLENBQUMsQ0FDWixDQUNKLElDMUpBLElBQUFDLEdBQ0FDLElBQ0FDLEdBQ0FDLElBQ0FDLElBRWFDLEdBTmJDLElBQUFDLEVBQUEsS0FBQVAsR0FBcUUsa0NBQ3JFQyxJQUFpQywrQkFDakNDLEdBQXVELDhCQUN2REMsSUFBZ0MsaUNBQ2hDQyxJQUF5QiwrQkFDekJJLEtBQ2FILEdBQU4sY0FBbUNJLEVBQW1CLENBQ3pELFNBQ0EsT0FDQSxZQUFZQyxFQUFVLENBQ2xCLE1BQU0sRUFDTixLQUFLLFNBQVdBLENBQ3BCLENBQ0EsTUFBTUMsRUFBUUMsRUFBT0MsRUFBUyxHQUFJLENBQzFCLEtBQUssU0FBVyxTQUNoQixLQUFLLE9BQVMsSUFFbEIsSUFBTUMsRUFBSyxxQkFBaUIsR0FBR0gsQ0FBTSxFQUlyQyxHQUhJRSxHQUFVLENBQUNBLEVBQU8sU0FBUyxHQUFHLElBQzlCQSxHQUFVLEtBRVZDLEVBQUcsYUFBYSxHQUNaLE9BQU9GLEdBQVUsVUFBWUEsYUFBaUIsY0FDOUMsS0FBSyxTQUFTQyxDQUFNLEVBQ3BCLEtBQUssWUFBWSxLQUFLLGNBQWMsZUFBaUIsY0FBVUQsQ0FBSyxDQUFDLFdBR3BFRSxFQUFHLGdCQUFnQixHQUFLQSxFQUFHLGdCQUFnQixHQUFLQSxFQUFHLGVBQWUsRUFDbkVGLEdBQVMsTUFDVCxLQUFLLFNBQVNDLENBQU0sRUFDcEIsS0FBSyxXQUFXLE9BQU9ELENBQUssQ0FBQyxHQUV4QkUsRUFBRyxtQkFBbUIsSUFDM0IsS0FBSyxTQUFTRCxDQUFNLEVBQ3BCLEtBQUssY0FBVyw2QkFBeUIsQ0FBQyxXQUd6Q0MsRUFBRyxtQkFBbUIsRUFDdkJGLEdBQVMsT0FDVCxLQUFLLFNBQVNDLENBQU0sRUFDcEIsS0FBSyxXQUFXLE9BQU9ELENBQUssQ0FBQyxXQUc1QkUsRUFBRyxtQkFBbUIsRUFDdkJGLEdBQVMsT0FDVCxLQUFLLFNBQVNDLENBQU0sRUFDcEIsS0FBSyxXQUFXRCxhQUFpQixnQkFBZUEsRUFBTSxPQUFTLE9BQU9BLENBQUssQ0FBQyxXQUczRUUsRUFBRyxrQkFBa0IsR0FDMUIsR0FBSUYsYUFBaUIsS0FHakIsT0FGQSxLQUFLLFNBQVNDLENBQU0sS0FDTCw2QkFBeUJDLEVBQUksS0FBSyxRQUFRLEVBQ3pDLENBQ1osSUFBSyxHQUNELEtBQUssV0FBV0YsRUFBTSxZQUFZLEVBQUUsUUFBUSxRQUFTLEdBQUcsQ0FBQyxFQUN6RCxNQUNKLElBQUssR0FDRCxLQUFLLGNBQVcscUJBQWdCQSxDQUFLLENBQUMsRUFDdEMsTUFDSixJQUFLLEdBQ0QsS0FBSyxXQUFXLE9BQU9BLEVBQU0sUUFBUSxFQUFJLEdBQUksQ0FBQyxFQUM5QyxLQUNSLFVBR0NFLEVBQUcsaUJBQWlCLEVBQ3JCLE1BQU0sUUFBUUYsQ0FBSyxFQUNuQixLQUFLLE1BQU0sR0FBU0EsRUFBT0MsQ0FBTSxFQUU1QkQsYUFBaUIsS0FDdEIsS0FBSyxNQUFNLEVBQUdBLEVBQU9DLENBQU0sRUFFdEJELGFBQWlCLFdBQ3RCLEtBQUssTUFBTSxHQUFJQSxFQUFPQyxDQUFNLEVBRXZCRCxHQUFTLE9BQU9BLEdBQVUsU0FDL0IsS0FBSyxNQUFNLElBQVVBLEVBQU9DLENBQU0sR0FHbEMsS0FBSyxTQUFTQSxDQUFNLEVBQ3BCLEtBQUssV0FBVyxPQUFPRCxDQUFLLENBQUMsV0FHNUJFLEVBQUcsYUFBYSxHQUNyQixHQUFJLE1BQU0sUUFBUUYsQ0FBSyxFQUNuQixHQUFJQSxFQUFNLFNBQVcsRUFDYixLQUFLLFNBQVMsc0JBQ2QsS0FBSyxTQUFTQyxDQUFNLEVBQ3BCLEtBQUssV0FBVyxFQUFFLE9BR3JCLENBQ0QsSUFBTUUsRUFBU0QsRUFBRyxlQUFlLEVBQzNCRSxFQUFPLEtBQUssU0FBUyxjQUFnQkYsRUFBRyxnQkFBZ0IsRUFBRSxhQUM1REcsRUFBSSxFQUNSLFFBQVdDLEtBQVFOLEVBQU8sQ0FDdEIsR0FBSU0sR0FBUSxLQUNSLFNBRUosSUFBTUMsRUFBU0osRUFBTyxnQkFBZ0IsRUFDaENLLEVBQVMsS0FBSyxPQUFPLFNBQVVELEVBQU8sUUFBU0EsRUFBTyxZQUFZLEVBQ2xFRSxFQUFNTCxFQUFPLEdBQUdILENBQU0sR0FBR0ksQ0FBQyxHQUFLLEdBQUdKLENBQU0sR0FBR08sQ0FBTSxJQUFJSCxDQUFDLEdBQzVELEtBQUssTUFBTUYsRUFBUUcsRUFBTUcsQ0FBRyxFQUM1QixFQUFFSixDQUNOLENBQ0osVUFHQ0gsRUFBRyxZQUFZLEdBQ3BCLEdBQUlGLEdBQVMsT0FBT0EsR0FBVSxTQUFVLENBQ3BDLElBQU1VLEVBQVlSLEVBQUcsYUFBYSxFQUM1QlMsRUFBZVQsRUFBRyxlQUFlLEVBQ2pDRSxFQUFPRixFQUFHLGdCQUFnQixFQUFFLGFBQzlCRyxFQUFJLEVBQ1IsT0FBVyxDQUFDTyxFQUFHQyxDQUFDLElBQUssT0FBTyxRQUFRYixDQUFLLEVBQUcsQ0FDeEMsR0FBSWEsR0FBSyxLQUNMLFNBRUosSUFBTUMsRUFBWUosRUFBVSxnQkFBZ0IsRUFDdENLLEVBQVksS0FBSyxPQUFPLE1BQU9ELEVBQVUsUUFBU0EsRUFBVSxZQUFZLEVBQ3hFTCxFQUFNTCxFQUFPLEdBQUdILENBQU0sR0FBR0ksQ0FBQyxJQUFJVSxDQUFTLEdBQUssR0FBR2QsQ0FBTSxTQUFTSSxDQUFDLElBQUlVLENBQVMsR0FDNUVDLEVBQVlMLEVBQWEsZ0JBQWdCLEVBQ3pDTSxFQUFjLEtBQUssT0FBTyxRQUFTRCxFQUFVLFFBQVNBLEVBQVUsWUFBWSxFQUM1RUUsRUFBV2QsRUFBTyxHQUFHSCxDQUFNLEdBQUdJLENBQUMsSUFBSVksQ0FBVyxHQUFLLEdBQUdoQixDQUFNLFNBQVNJLENBQUMsSUFBSVksQ0FBVyxHQUMzRixLQUFLLE1BQU1QLEVBQVdFLEVBQUdILENBQUcsRUFDNUIsS0FBSyxNQUFNRSxFQUFjRSxFQUFHSyxDQUFRLEVBQ3BDLEVBQUViLENBQ04sQ0FDSixVQUVLSCxFQUFHLGVBQWUsR0FDdkIsR0FBSUYsR0FBUyxPQUFPQSxHQUFVLFNBQVUsQ0FDcEMsSUFBSW1CLEVBQWlCLEdBQ3JCLE9BQVcsQ0FBQ0MsRUFBWWpCLENBQU0sSUFBS0QsRUFBRyxlQUFlLEVBQUcsQ0FDcEQsR0FBSUYsRUFBTW9CLENBQVUsR0FBSyxNQUFRLENBQUNqQixFQUFPLG1CQUFtQixFQUN4RCxTQUVKLElBQU1JLEVBQVNKLEVBQU8sZ0JBQWdCLEVBQ2hDSyxFQUFTLEtBQUssT0FBT1ksRUFBWWIsRUFBTyxRQUFTQSxFQUFPLGFBQWMsUUFBUSxFQUM5RUUsRUFBTSxHQUFHUixDQUFNLEdBQUdPLENBQU0sR0FDOUIsS0FBSyxNQUFNTCxFQUFRSCxFQUFNb0IsQ0FBVSxFQUFHWCxDQUFHLEVBQ3pDVSxFQUFpQixFQUNyQixDQUNBLEdBQUksQ0FBQ0EsR0FBa0JqQixFQUFHLGNBQWMsRUFBRyxDQUN2QyxHQUFNLENBQUUsU0FBQW1CLENBQVMsRUFBSXJCLEVBQ3JCLEdBQUksTUFBTSxRQUFRcUIsQ0FBUSxFQUFHLENBQ3pCLEdBQU0sQ0FBQ1QsRUFBR0MsQ0FBQyxFQUFJUSxFQUNUWixFQUFNLEdBQUdSLENBQU0sR0FBR1csQ0FBQyxHQUN6QixLQUFLLE1BQU0sR0FBSUMsRUFBR0osQ0FBRyxDQUN6QixDQUNKLENBQ0osVUFFSyxDQUFBUCxFQUFHLGFBQWEsRUFHckIsTUFBTSxJQUFJLE1BQU0sc0VBQXNFQSxFQUFHLFFBQVEsRUFBSSxDQUFDLEVBQUUsQ0FFaEgsQ0FDQSxPQUFRLENBQ0osR0FBSSxLQUFLLFNBQVcsT0FDaEIsTUFBTSxJQUFJLE1BQU0sd0ZBQXdGLEVBRTVHLElBQU1vQixFQUFNLEtBQUssT0FDakIsY0FBTyxLQUFLLE9BQ0xBLENBQ1gsQ0FDQSxPQUFPRixFQUFZRyxFQUFTQyxFQUFjQyxFQUFXLENBQ2pELEdBQU0sQ0FBRSxJQUFBQyxFQUFLLGVBQUFDLENBQWUsRUFBSSxLQUFLLFNBQ3JDLEdBQUlELEdBQU9GLEVBQ1AsT0FBT0EsRUFFWCxJQUFNZixFQUFNYyxHQUFXSCxFQUN2QixPQUFJTyxHQUFrQkYsSUFBYyxTQUN6QmhCLEVBQUksQ0FBQyxFQUFFLFlBQVksRUFBSUEsRUFBSSxNQUFNLENBQUMsRUFFdENBLENBQ1gsQ0FDQSxTQUFTQSxFQUFLLENBQ05BLEVBQUksU0FBUyxHQUFHLElBQ2hCQSxFQUFNQSxFQUFJLE1BQU0sRUFBR0EsRUFBSSxPQUFTLENBQUMsR0FFckMsS0FBSyxRQUFVLE9BQUksK0JBQTJCQSxDQUFHLENBQUMsR0FDdEQsQ0FDQSxXQUFXVCxFQUFPLENBQ2QsS0FBSyxXQUFVLCtCQUEyQkEsQ0FBSyxDQUNuRCxDQUNKLElDNUxBLElBQUE0QixHQUNBQyxHQUlhQyxHQUxiQyxHQUFBQyxFQUFBLEtBQUFKLEdBQXlDLGtDQUN6Q0MsR0FBc0QsK0JBQ3RESSxLQUNBQyxLQUNBQyxNQUNhTCxHQUFOLGNBQStCLGNBQVksQ0FDOUMsUUFDQSxXQUNBLGFBQ0EsTUFBUSxJQUFJTSxHQUNaLFlBQVlDLEVBQVMsQ0FDakIsTUFBTSxDQUNGLGlCQUFrQkEsRUFBUSxnQkFDOUIsQ0FBQyxFQUNELEtBQUssUUFBVUEsRUFDZixJQUFNQyxFQUFXLENBQ2IsZ0JBQWlCLENBQ2IsU0FBVSxHQUNWLFFBQVMsQ0FDYixFQUNBLGFBQWMsR0FDZCxhQUFjRCxFQUFRLGFBQ3RCLGlCQUFrQkEsRUFBUSxpQkFDMUIsb0JBQXFCLEVBQ3pCLEVBQ0EsS0FBSyxXQUFhLElBQUlFLEdBQXFCRCxDQUFRLEVBQ25ELEtBQUssYUFBZSxJQUFJRSxHQUFxQkYsQ0FBUSxDQUN6RCxDQUNBLFlBQWEsQ0FDVCxNQUFPLHdCQUNYLENBQ0EsZ0JBQWdCRyxFQUFjLENBQzFCLEtBQUssV0FBVyxnQkFBZ0JBLENBQVksRUFDNUMsS0FBSyxhQUFhLGdCQUFnQkEsQ0FBWSxDQUNsRCxDQUNBLGlCQUFrQixDQUNkLE1BQU0sSUFBSSxNQUFNLHlDQUF5QyxDQUM3RCxDQUNBLE1BQU0saUJBQWlCQyxFQUFpQkMsRUFBT0MsRUFBUyxDQUNwRCxJQUFNQyxFQUFVLE1BQU0sTUFBTSxpQkFBaUJILEVBQWlCQyxFQUFPQyxDQUFPLEVBQ3ZFQyxFQUFRLEtBQUssU0FBUyxHQUFHLElBQzFCQSxFQUFRLE1BQVEsS0FFcEIsT0FBTyxPQUFPQSxFQUFRLFFBQVMsQ0FDM0IsZUFBZ0IsbUNBQ3BCLENBQUMsTUFDRyxVQUFNSCxFQUFnQixLQUFLLElBQU0sUUFBVSxDQUFDRyxFQUFRLFFBQ3BEQSxFQUFRLEtBQU8sSUFFbkIsSUFBTUMsRUFBU0osRUFBZ0IsS0FBSyxNQUFNLEdBQUcsRUFBRSxDQUFDLEdBQUtBLEVBQWdCLEtBQ3JFLE9BQUFHLEVBQVEsS0FBTyxVQUFVQyxDQUFNLFlBQVksS0FBSyxRQUFRLE9BQU8sR0FBS0QsRUFBUSxLQUN4RUEsRUFBUSxLQUFLLFNBQVMsR0FBRyxJQUN6QkEsRUFBUSxLQUFPQSxFQUFRLEtBQUssTUFBTSxFQUFFLEdBRWpDQSxDQUNYLENBQ0EsTUFBTSxvQkFBb0JILEVBQWlCRSxFQUFTRyxFQUFVLENBQzFELElBQU1DLEVBQWUsS0FBSyxhQUNwQkMsRUFBSyxvQkFBaUIsR0FBR1AsRUFBZ0IsTUFBTSxFQUMvQ1EsRUFBYSxDQUFDLEVBQ3BCLEdBQUlILEVBQVMsWUFBYyxJQUFLLENBQzVCLElBQU1JLEVBQVEsUUFBTSxnQkFBWUosRUFBUyxLQUFNSCxDQUFPLEVBQ2xETyxFQUFNLFdBQWEsR0FDbkIsT0FBTyxPQUFPRCxFQUFZLE1BQU1GLEVBQWEsS0FBSyxHQUFJRyxDQUFLLENBQUMsRUFFaEUsTUFBTSxLQUFLLFlBQVlULEVBQWlCRSxFQUFTRyxFQUFVRyxFQUFZLEtBQUssb0JBQW9CSCxDQUFRLENBQUMsQ0FDN0csQ0FDQSxRQUFXSyxLQUFVTCxFQUFTLFFBQVMsQ0FDbkMsSUFBTU0sRUFBUU4sRUFBUyxRQUFRSyxDQUFNLEVBQ3JDLE9BQU9MLEVBQVMsUUFBUUssQ0FBTSxFQUM5QkwsRUFBUyxRQUFRSyxFQUFPLFlBQVksQ0FBQyxFQUFJQyxDQUM3QyxDQUNBLElBQU1DLEVBQVlaLEVBQWdCLEtBQUssTUFBTSxHQUFHLEVBQUUsQ0FBQyxHQUFLQSxFQUFnQixLQUNsRWEsRUFBb0JOLEVBQUcsZUFBZSxHQUFLLEtBQUssZ0JBQWdCLEVBQUlLLEVBQVksU0FBVyxPQUMzRkgsRUFBUSxRQUFNLGdCQUFZSixFQUFTLEtBQU1ILENBQU8sRUFDdEQsT0FBSU8sRUFBTSxXQUFhLEdBQ25CLE9BQU8sT0FBT0QsRUFBWSxNQUFNRixFQUFhLEtBQUtDLEVBQUlFLEVBQU9JLENBQWlCLENBQUMsRUFFcEUsQ0FDWCxVQUFXLEtBQUssb0JBQW9CUixDQUFRLEVBQzVDLEdBQUdHLENBQ1AsQ0FFSixDQUNBLGlCQUFrQixDQUNkLE1BQU8sRUFDWCxDQUNBLE1BQU0sWUFBWVIsRUFBaUJFLEVBQVNHLEVBQVVHLEVBQVlNLEVBQVUsQ0FDeEUsSUFBTUMsRUFBa0IsS0FBSyxtQkFBbUJWLEVBQVVHLENBQVUsR0FBSyxVQUNuRVEsRUFBWSxLQUFLLGVBQWVSLENBQVUsR0FBSyxDQUFDLEVBQ2hEUyxFQUFVLEtBQUssc0JBQXNCVCxDQUFVLEVBQ3JEUSxFQUFVLFFBQVVDLEVBQ3BCRCxFQUFVLE1BQVEsQ0FDZCxLQUFNQSxFQUFVLEtBQ2hCLEtBQU1BLEVBQVUsS0FDaEIsUUFBU0MsQ0FDYixFQUNBLEdBQU0sQ0FBRSxZQUFBQyxFQUFhLGNBQUFDLENBQWMsRUFBSSxNQUFNLEtBQUssTUFBTSxtQ0FBbUNKLEVBQWlCLEtBQUssUUFBUSxpQkFBa0JWLEVBQVVXLEVBQVdGLEVBQVUsS0FBSyxNQUFNLHdCQUF3QixFQUN2TVAsRUFBSyxvQkFBaUIsR0FBR1csQ0FBVyxFQUNwQ0UsRUFBWSxnQkFBYSxJQUFJRixFQUFZLENBQUMsQ0FBQyxFQUFFLGFBQWFBLENBQVcsR0FBSyxNQUMxRUcsRUFBWSxJQUFJRCxFQUFVSCxDQUFPLEVBQ2pDSyxFQUFTLENBQ1gsS0FBTU4sRUFBVSxNQUFNLEtBQ3RCLEtBQU1BLEVBQVUsTUFBTSxLQUN0QixNQUFPQSxFQUFVLEtBQ3JCLEVBQ0EsT0FBVyxDQUFDTyxFQUFNQyxDQUFNLElBQUtqQixFQUFHLGVBQWUsRUFBRyxDQUM5QyxJQUFNa0IsRUFBU0QsRUFBTyxnQkFBZ0IsRUFBRSxTQUFXRCxFQUM3Q1osRUFBUUssRUFBVVMsQ0FBTSxHQUFLakIsRUFBV2lCLENBQU0sRUFDcERILEVBQU9DLENBQUksRUFBSSxLQUFLLGFBQWEsV0FBV0MsRUFBUWIsQ0FBSyxDQUM3RCxDQUNBLE1BQU0sS0FBSyxNQUFNLHlCQUF5QixPQUFPLE9BQU9VLEVBQVdGLEVBQWUsQ0FDOUUsT0FBUVosRUFBRyxnQkFBZ0IsRUFBRSxNQUM3QixRQUFBVSxDQUNKLEVBQUdLLENBQU0sRUFBR2QsQ0FBVSxDQUMxQixDQUNBLG1CQUFtQmMsRUFBUUksRUFBTSxDQUM3QixJQUFNQyxHQUFRRCxFQUFLLFNBQVMsQ0FBQyxHQUFHLE9BQVNBLEVBQUssUUFBUSxPQUFTQSxFQUFLLFFBQVEsS0FDNUUsR0FBSUMsSUFBUyxPQUNULE9BQU9BLEVBRVgsR0FBSUwsRUFBTyxZQUFjLElBQ3JCLE1BQU8sVUFFZixDQUNBLGVBQWVJLEVBQU0sQ0FDakIsT0FBT0EsRUFBSyxTQUFTLENBQUMsR0FBRyxPQUFTQSxFQUFLLFFBQVEsT0FBU0EsRUFBSyxLQUNqRSxDQUNBLHNCQUFzQkEsRUFBTSxDQUN4QixJQUFNVixFQUFZLEtBQUssZUFBZVUsQ0FBSSxFQUMxQyxPQUFPVixHQUFXLFNBQVdBLEdBQVcsU0FBV1UsRUFBSyxTQUFXQSxFQUFLLFNBQVcsU0FDdkYsQ0FDQSx1QkFBd0IsQ0FDcEIsTUFBTyxtQ0FDWCxDQUNKLElDdklBLElBQ2FFLEdBRGJDLElBQUFDLEVBQUEsS0FBQUMsS0FDYUgsR0FBTixjQUFrQ0ksRUFBaUIsQ0FDdEQsUUFDQSxZQUFZQyxFQUFTLENBQ2pCLE1BQU1BLENBQU8sRUFDYixLQUFLLFFBQVVBLEVBQ2YsSUFBTUMsRUFBYyxDQUNoQixlQUFnQixHQUNoQixhQUFjLEdBQ2Qsb0JBQXFCLEdBQ3JCLElBQUssRUFDVCxFQUNBLE9BQU8sT0FBTyxLQUFLLFdBQVcsU0FBVUEsQ0FBVyxDQUN2RCxDQUNBLGlCQUFrQixDQUNkLE1BQU8sRUFDWCxDQUNKLElDakJBLElBQUFDLElBQ0FDLElBRWFDLElBeUJBQyxJQU9BQyxHQW5DYkMsR0FBQUMsRUFBQSxLQUFBTixJQUF5QixRQUN6QkMsSUFBcUMsaUNBQ3JDTSxLQUNhTCxJQUFlLENBQUNNLEVBQVlDLElBQVlDLEdBQWtCRixFQUFZQyxDQUFPLEVBQUUsS0FBTUUsR0FBWSxDQUMxRyxHQUFJQSxFQUFRLE9BQVEsQ0FDaEIsSUFBSUMsRUFDSixHQUFJLENBQ0FBLEtBQVksY0FBU0QsQ0FBTyxDQUNoQyxPQUNPRSxFQUFHLENBQ04sTUFBSUEsR0FBSyxPQUFPQSxHQUFNLFVBQ2xCLE9BQU8sZUFBZUEsRUFBRyxvQkFBcUIsQ0FDMUMsTUFBT0YsQ0FDWCxDQUFDLEVBRUNFLENBQ1YsQ0FDQSxJQUFNQyxFQUFlLFFBQ2ZDLEVBQU0sT0FBTyxLQUFLSCxDQUFTLEVBQUUsQ0FBQyxFQUM5QkksRUFBb0JKLEVBQVVHLENBQUcsRUFDdkMsT0FBSUMsRUFBa0JGLENBQVksSUFDOUJFLEVBQWtCRCxDQUFHLEVBQUlDLEVBQWtCRixDQUFZLEVBQ3ZELE9BQU9FLEVBQWtCRixDQUFZLE1BRWxDLDBCQUFxQkUsQ0FBaUIsQ0FDakQsQ0FDQSxNQUFPLENBQUMsQ0FDWixDQUFDLEVBQ1liLElBQW9CLE1BQU9jLEVBQVdSLElBQVksQ0FDM0QsSUFBTVMsRUFBUSxNQUFNaEIsSUFBYWUsRUFBV1IsQ0FBTyxFQUNuRCxPQUFJUyxFQUFNLFFBQ05BLEVBQU0sTUFBTSxRQUFVQSxFQUFNLE1BQU0sU0FBV0EsRUFBTSxNQUFNLFNBRXREQSxDQUNYLEVBQ2FkLEdBQXVCLENBQUNlLEVBQVFDLElBQVMsQ0FDbEQsR0FBSUEsR0FBTSxPQUFPLE9BQVMsT0FDdEIsT0FBT0EsRUFBSyxNQUFNLEtBRXRCLEdBQUlBLEdBQU0sT0FBUyxPQUNmLE9BQU9BLEVBQUssS0FFaEIsR0FBSUQsRUFBTyxZQUFjLElBQ3JCLE1BQU8sVUFFZixJQzdDQSxJQUFBRSxHQUNBQyxJQUNBQyxHQUNBQyxHQUNBQyxHQUNBQyxHQUVhQyxHQVBiQyxHQUFBQyxFQUFBLEtBQUFSLEdBQWlDLFFBQ2pDQyxJQUF5QyxrQ0FDekNDLEdBQWlDLCtCQUNqQ0MsR0FBdUQsOEJBQ3ZEQyxHQUFnQyxpQ0FDaENDLEdBQXFDLCtCQUNyQ0ksS0FDYUgsR0FBTixjQUFpQ0ksRUFBbUIsQ0FDdkQsU0FDQSxhQUNBLFdBQ0EsT0FDQSxZQUFZQyxFQUFVLENBQ2xCLE1BQU0sRUFDTixLQUFLLFNBQVdBLENBQ3BCLENBQ0EsTUFBTUMsRUFBUUMsRUFBTyxDQUNqQixJQUFNQyxFQUFLLG9CQUFpQixHQUFHRixDQUFNLEVBQ3JDLEdBQUlFLEVBQUcsZUFBZSxHQUFLLE9BQU9ELEdBQVUsU0FDeEMsS0FBSyxhQUFlQSxVQUVmQyxFQUFHLGFBQWEsRUFDckIsS0FBSyxXQUNELGVBQWdCRCxFQUNWQSxHQUNDLEtBQUssY0FBYyxlQUFpQixlQUFZQSxDQUFLLE1BRS9ELENBQ0QsS0FBSyxPQUFTLEtBQUssWUFBWUMsRUFBSUQsRUFBTyxNQUFTLEVBQ25ELElBQU1FLEVBQVNELEVBQUcsZ0JBQWdCLEVBQzlCQyxFQUFPLGFBQWUsQ0FBQ0EsRUFBTyxTQUM5QixLQUFLLE9BQU8sU0FBU0QsRUFBRyxRQUFRLENBQUMsQ0FFekMsQ0FDSixDQUNBLE9BQVEsQ0FDSixHQUFJLEtBQUssYUFBZSxPQUFXLENBQy9CLElBQU1FLEVBQVEsS0FBSyxXQUNuQixjQUFPLEtBQUssV0FDTEEsQ0FDWCxDQUNBLEdBQUksS0FBSyxlQUFpQixPQUFXLENBQ2pDLElBQU1DLEVBQU0sS0FBSyxhQUNqQixjQUFPLEtBQUssYUFDTEEsQ0FDWCxDQUNBLElBQU1DLEVBQVMsS0FBSyxPQUNwQixPQUFJLEtBQUssU0FBUyxlQUNUQSxHQUFRLFlBQWEsT0FDdEJBLEVBQU8sYUFBYSxRQUFTLEtBQUssU0FBUyxZQUFZLEdBRy9ELE9BQU8sS0FBSyxPQUNMQSxFQUFPLFNBQVMsQ0FDM0IsQ0FDQSxZQUFZSixFQUFJRCxFQUFPTSxFQUFhLENBQ2hDLElBQU1KLEVBQVNELEVBQUcsZ0JBQWdCLEVBQzVCTSxFQUFPTixFQUFHLGVBQWUsR0FBSyxDQUFDQyxFQUFPLFlBQ3RDRCxFQUFHLGdCQUFnQixFQUFFLFNBQVdBLEVBQUcsY0FBYyxFQUNqREMsRUFBTyxTQUFXRCxFQUFHLFFBQVEsRUFDbkMsR0FBSSxDQUFDTSxHQUFRLENBQUNOLEVBQUcsZUFBZSxFQUM1QixNQUFNLElBQUksTUFBTSx1R0FBdUdBLEVBQUcsUUFBUSxFQUFJLENBQUMsR0FBRyxFQUU5SSxJQUFNTyxFQUFnQixXQUFRLEdBQUdELENBQUksRUFDL0IsQ0FBQ0UsRUFBV0MsQ0FBSyxFQUFJLEtBQUssa0JBQWtCVCxFQUFJSyxDQUFXLEVBQ2pFLE9BQVcsQ0FBQ0ssRUFBWUMsQ0FBWSxJQUFLWCxFQUFHLGVBQWUsRUFBRyxDQUMxRCxJQUFNWSxFQUFNYixFQUFNVyxDQUFVLEVBQzVCLEdBQUlFLEdBQU8sTUFBUUQsRUFBYSxtQkFBbUIsRUFBRyxDQUNsRCxHQUFJQSxFQUFhLGdCQUFnQixFQUFFLGFBQWMsQ0FDN0NKLEVBQWMsYUFBYUksRUFBYSxnQkFBZ0IsRUFBRSxTQUFXRCxFQUFZLEtBQUssWUFBWUMsRUFBY0MsQ0FBRyxDQUFDLEVBQ3BILFFBQ0osQ0FDQSxHQUFJRCxFQUFhLGFBQWEsRUFDMUIsS0FBSyxVQUFVQSxFQUFjQyxFQUFLTCxFQUFlRSxDQUFLLFVBRWpERSxFQUFhLFlBQVksRUFDOUIsS0FBSyxTQUFTQSxFQUFjQyxFQUFLTCxFQUFlRSxDQUFLLFVBRWhERSxFQUFhLGVBQWUsRUFDakNKLEVBQWMsYUFBYSxLQUFLLFlBQVlJLEVBQWNDLEVBQUtILENBQUssQ0FBQyxNQUVwRSxDQUNELElBQU1JLEVBQWEsV0FBUSxHQUFHRixFQUFhLGdCQUFnQixFQUFFLFNBQVdBLEVBQWEsY0FBYyxDQUFDLEVBQ3BHLEtBQUssZ0JBQWdCQSxFQUFjQyxFQUFLQyxFQUFZSixDQUFLLEVBQ3pERixFQUFjLGFBQWFNLENBQVUsQ0FDekMsQ0FDSixDQUNKLENBQ0EsR0FBTSxDQUFFLFNBQUFDLENBQVMsRUFBSWYsRUFDckIsR0FBSWUsR0FBWWQsRUFBRyxjQUFjLEdBQUssTUFBTSxRQUFRYyxDQUFRLEdBQUssT0FBTyxLQUFLZixDQUFLLEVBQUUsU0FBVyxFQUFHLENBQzlGLEdBQU0sQ0FBQ2dCLEVBQUdDLENBQUMsRUFBSUYsRUFDVEcsRUFBTyxXQUFRLEdBQUdGLENBQUMsRUFDekIsR0FBSSxPQUFPQyxHQUFNLFNBQ2IsR0FBSWpCLGFBQWlCLFlBQVdBLGFBQWlCLFdBQzdDUSxFQUFjLGFBQWFSLENBQUssTUFHaEMsT0FBTSxJQUFJLE1BQU0sa0hBQ3FELEVBRzdFLEtBQUssZ0JBQWdCLEVBQUdpQixFQUFHQyxFQUFNUixDQUFLLEVBQ3RDRixFQUFjLGFBQWFVLENBQUksQ0FDbkMsQ0FDQSxPQUFJUixHQUNBRixFQUFjLGFBQWFDLEVBQVdDLENBQUssRUFFeENGLENBQ1gsQ0FDQSxVQUFVVyxFQUFZQyxFQUFPQyxFQUFXZixFQUFhLENBQ2pELEdBQUksQ0FBQ2EsRUFBVyxlQUFlLEVBQzNCLE1BQU0sSUFBSSxNQUFNLDJFQUEyRUEsRUFBVyxRQUFRLEVBQUksQ0FBQyxFQUFFLEVBRXpILElBQU1HLEVBQWFILEVBQVcsZ0JBQWdCLEVBQ3hDSSxFQUFrQkosRUFBVyxlQUFlLEVBQzVDSyxFQUFrQkQsRUFBZ0IsZ0JBQWdCLEVBQ2xERSxFQUFTLENBQUMsQ0FBQ0QsRUFBZ0IsT0FDM0JFLEVBQU8sQ0FBQyxDQUFDSixFQUFXLGFBQ3BCLENBQUNiLEVBQVdDLENBQUssRUFBSSxLQUFLLGtCQUFrQlMsRUFBWWIsQ0FBVyxFQUNuRXFCLEVBQVksQ0FBQ04sRUFBV3JCLElBQVUsQ0FDcEMsR0FBSXVCLEVBQWdCLGFBQWEsRUFDN0IsS0FBSyxVQUFVQSxFQUFpQixNQUFNLFFBQVF2QixDQUFLLEVBQUlBLEVBQVEsQ0FBQ0EsQ0FBSyxFQUFHcUIsRUFBV1gsQ0FBSyxVQUVuRmEsRUFBZ0IsWUFBWSxFQUNqQyxLQUFLLFNBQVNBLEVBQWlCdkIsRUFBT3FCLEVBQVdYLENBQUssVUFFakRhLEVBQWdCLGVBQWUsRUFBRyxDQUN2QyxJQUFNSyxFQUFTLEtBQUssWUFBWUwsRUFBaUJ2QixFQUFPVSxDQUFLLEVBQzdEVyxFQUFVLGFBQWFPLEVBQU8sU0FBU0YsRUFBT0osRUFBVyxTQUFXSCxFQUFXLGNBQWMsRUFBSUssRUFBZ0IsU0FBVyxRQUFRLENBQUMsQ0FDekksS0FDSyxDQUNELElBQU1LLEVBQWUsV0FBUSxHQUFHSCxFQUFPSixFQUFXLFNBQVdILEVBQVcsY0FBYyxFQUFJSyxFQUFnQixTQUFXLFFBQVEsRUFDN0gsS0FBSyxnQkFBZ0JELEVBQWlCdkIsRUFBTzZCLEVBQWNuQixDQUFLLEVBQ2hFVyxFQUFVLGFBQWFRLENBQVksQ0FDdkMsQ0FDSixFQUNBLEdBQUlILEVBQ0EsUUFBVzFCLEtBQVNvQixHQUNaSyxHQUFVekIsR0FBUyxPQUNuQjJCLEVBQVVOLEVBQVdyQixDQUFLLE1BSWpDLENBQ0QsSUFBTThCLEVBQVcsV0FBUSxHQUFHUixFQUFXLFNBQVdILEVBQVcsY0FBYyxDQUFDLEVBQ3hFVCxHQUNBb0IsRUFBUyxhQUFhckIsRUFBV0MsQ0FBSyxFQUUxQyxRQUFXVixLQUFTb0IsR0FDWkssR0FBVXpCLEdBQVMsT0FDbkIyQixFQUFVRyxFQUFVOUIsQ0FBSyxFQUdqQ3FCLEVBQVUsYUFBYVMsQ0FBUSxDQUNuQyxDQUNKLENBQ0EsU0FBU0MsRUFBV0MsRUFBS1gsRUFBV2YsRUFBYTJCLEVBQWlCLEdBQU8sQ0FDckUsR0FBSSxDQUFDRixFQUFVLGVBQWUsRUFDMUIsTUFBTSxJQUFJLE1BQU0sMEVBQTBFQSxFQUFVLFFBQVEsRUFBSSxDQUFDLEVBQUUsRUFFdkgsSUFBTUcsRUFBWUgsRUFBVSxnQkFBZ0IsRUFDdENJLEVBQWVKLEVBQVUsYUFBYSxFQUV0Q0ssRUFEZUQsRUFBYSxnQkFBZ0IsRUFDdEIsU0FBVyxNQUNqQ0UsRUFBaUJOLEVBQVUsZUFBZSxFQUMxQ08sRUFBaUJELEVBQWUsZ0JBQWdCLEVBQ2hERSxFQUFXRCxFQUFlLFNBQVcsUUFDckNiLEVBQVMsQ0FBQyxDQUFDYSxFQUFlLE9BQzFCWixFQUFPLENBQUMsQ0FBQ1EsRUFBVSxhQUNuQixDQUFDekIsRUFBV0MsQ0FBSyxFQUFJLEtBQUssa0JBQWtCcUIsRUFBV3pCLENBQVcsRUFDbEVrQyxFQUFjLENBQUNDLEVBQU9DLEdBQUs3QixJQUFRLENBQ3JDLElBQU04QixHQUFVLFdBQVEsR0FBR1AsRUFBUU0sRUFBRyxFQUNoQyxDQUFDRSxHQUFjQyxFQUFRLEVBQUksS0FBSyxrQkFBa0JWLEVBQWN6QixDQUFLLEVBQ3ZFbUMsSUFDQUYsR0FBUSxhQUFhQyxHQUFjQyxFQUFRLEVBRS9DSixFQUFNLGFBQWFFLEVBQU8sRUFDMUIsSUFBSUcsR0FBWSxXQUFRLEdBQUdQLENBQVEsRUFDL0JGLEVBQWUsYUFBYSxFQUM1QixLQUFLLFVBQVVBLEVBQWdCeEIsRUFBS2lDLEdBQVdwQyxDQUFLLEVBRS9DMkIsRUFBZSxZQUFZLEVBQ2hDLEtBQUssU0FBU0EsRUFBZ0J4QixFQUFLaUMsR0FBV3BDLEVBQU8sRUFBSSxFQUVwRDJCLEVBQWUsZUFBZSxFQUNuQ1MsR0FBWSxLQUFLLFlBQVlULEVBQWdCeEIsRUFBS0gsQ0FBSyxFQUd2RCxLQUFLLGdCQUFnQjJCLEVBQWdCeEIsRUFBS2lDLEdBQVdwQyxDQUFLLEVBRTlEK0IsRUFBTSxhQUFhSyxFQUFTLENBQ2hDLEVBQ0EsR0FBSXBCLEdBQ0EsT0FBVyxDQUFDZ0IsRUFBSzdCLEVBQUcsSUFBSyxPQUFPLFFBQVFtQixDQUFHLEVBQ3ZDLEdBQUlQLEdBQVVaLElBQU8sS0FBTSxDQUN2QixJQUFNNEIsRUFBUSxXQUFRLEdBQUdQLEVBQVUsU0FBV0gsRUFBVSxjQUFjLENBQUMsRUFDdkVTLEVBQVlDLEVBQU9DLEVBQUs3QixFQUFHLEVBQzNCUSxFQUFVLGFBQWFvQixDQUFLLENBQ2hDLE1BR0gsQ0FDRCxJQUFJTSxFQUNDZCxJQUNEYyxFQUFVLFdBQVEsR0FBR2IsRUFBVSxTQUFXSCxFQUFVLGNBQWMsQ0FBQyxFQUMvRHJCLEdBQ0FxQyxFQUFRLGFBQWF0QyxFQUFXQyxDQUFLLEVBRXpDVyxFQUFVLGFBQWEwQixDQUFPLEdBRWxDLE9BQVcsQ0FBQ0wsR0FBSzdCLENBQUcsSUFBSyxPQUFPLFFBQVFtQixDQUFHLEVBQ3ZDLEdBQUlQLEdBQVVaLEdBQU8sS0FBTSxDQUN2QixJQUFNNEIsR0FBUSxXQUFRLEdBQUcsT0FBTyxFQUNoQ0QsRUFBWUMsR0FBT0MsR0FBSzdCLENBQUcsR0FDMUJvQixFQUFpQlosRUFBWTBCLEdBQVMsYUFBYU4sRUFBSyxDQUM3RCxDQUVSLENBQ0osQ0FDQSxZQUFZTyxFQUFTaEQsRUFBTyxDQUN4QixHQUFhQSxJQUFULEtBQ0EsTUFBTSxJQUFJLE1BQU0scUVBQXFFLEVBRXpGLElBQU1DLEVBQUssb0JBQWlCLEdBQUcrQyxDQUFPLEVBQ2xDQyxFQUFlLEtBQ25CLEdBQUlqRCxHQUFTLE9BQU9BLEdBQVUsU0FDMUIsR0FBSUMsRUFBRyxhQUFhLEVBQ2hCZ0QsR0FBZ0IsS0FBSyxjQUFjLGVBQWlCLGFBQVVqRCxDQUFLLFVBRTlEQyxFQUFHLGtCQUFrQixHQUFLRCxhQUFpQixLQUVoRCxVQURlLDhCQUF5QkMsRUFBSSxLQUFLLFFBQVEsRUFDekMsQ0FDWixJQUFLLEdBQ0RnRCxFQUFlakQsRUFBTSxZQUFZLEVBQUUsUUFBUSxRQUFTLEdBQUcsRUFDdkQsTUFDSixJQUFLLEdBQ0RpRCxLQUFlLG9CQUFnQmpELENBQUssRUFDcEMsTUFDSixJQUFLLEdBQ0RpRCxFQUFlLE9BQU9qRCxFQUFNLFFBQVEsRUFBSSxHQUFJLEVBQzVDLE1BQ0osUUFDSSxRQUFRLEtBQUssNENBQTZDQSxDQUFLLEVBQy9EaUQsS0FBZSxvQkFBZ0JqRCxDQUFLLEVBQ3BDLEtBQ1IsS0FFQyxJQUFJQyxFQUFHLG1CQUFtQixHQUFLRCxFQUNoQyxPQUFJQSxhQUFpQixnQkFDVkEsRUFBTSxPQUVWLE9BQU9BLENBQUssRUFFbEIsTUFBSUMsRUFBRyxZQUFZLEdBQUtBLEVBQUcsYUFBYSxFQUNuQyxJQUFJLE1BQU0sMEhBQTBILEVBR3BJLElBQUksTUFBTSxnR0FBZ0dBLEVBQUcsUUFBUSxFQUFJLENBQUMsRUFBRSxFQWMxSSxJQVhJQSxFQUFHLGdCQUFnQixHQUFLQSxFQUFHLGdCQUFnQixHQUFLQSxFQUFHLG1CQUFtQixHQUFLQSxFQUFHLG1CQUFtQixLQUNqR2dELEVBQWUsT0FBT2pELENBQUssR0FFM0JDLEVBQUcsZUFBZSxJQUNkRCxJQUFVLFFBQWFDLEVBQUcsbUJBQW1CLEVBQzdDZ0QsS0FBZSw2QkFBeUIsRUFHeENBLEVBQWUsT0FBT2pELENBQUssR0FHL0JpRCxJQUFpQixLQUNqQixNQUFNLElBQUksTUFBTSwrQkFBK0JoRCxFQUFHLFFBQVEsRUFBSSxDQUFDLElBQUlELENBQUssRUFBRSxFQUU5RSxPQUFPaUQsQ0FDWCxDQUNBLGdCQUFnQkQsRUFBU2hELEVBQU9rRCxFQUFNNUMsRUFBYSxDQUMvQyxJQUFNMkMsRUFBZSxLQUFLLFlBQVlELEVBQVNoRCxDQUFLLEVBQzlDQyxFQUFLLG9CQUFpQixHQUFHK0MsQ0FBTyxFQUNoQ0csRUFBVSxJQUFJLFdBQVFGLENBQVksRUFDbEMsQ0FBQ3hDLEVBQVdDLENBQUssRUFBSSxLQUFLLGtCQUFrQlQsRUFBSUssQ0FBVyxFQUM3REksR0FDQXdDLEVBQUssYUFBYXpDLEVBQVdDLENBQUssRUFFdEN3QyxFQUFLLGFBQWFDLENBQU8sQ0FDN0IsQ0FDQSxrQkFBa0JsRCxFQUFJSyxFQUFhLENBQy9CLElBQU1KLEVBQVNELEVBQUcsZ0JBQWdCLEVBQzVCLENBQUNtRCxFQUFRMUMsQ0FBSyxFQUFJUixFQUFPLGNBQWdCLENBQUMsRUFDaEQsT0FBSVEsR0FBU0EsSUFBVUosRUFDWixDQUFDOEMsRUFBUyxTQUFTQSxDQUFNLEdBQUssUUFBUzFDLENBQUssRUFFaEQsQ0FBQyxPQUFRLE1BQU0sQ0FDMUIsQ0FDSixJQ3RTQSxJQUdhMkMsR0FIYkMsR0FBQUMsRUFBQSxLQUFBQyxLQUNBQyxLQUNBQyxLQUNhTCxHQUFOLGNBQXVCTSxFQUFtQixDQUM3QyxTQUNBLFlBQVlDLEVBQVUsQ0FDbEIsTUFBTSxFQUNOLEtBQUssU0FBV0EsQ0FDcEIsQ0FDQSxrQkFBbUIsQ0FDZixJQUFNQyxFQUFhLElBQUlDLEdBQW1CLEtBQUssUUFBUSxFQUN2RCxPQUFBRCxFQUFXLGdCQUFnQixLQUFLLFlBQVksRUFDckNBLENBQ1gsQ0FDQSxvQkFBcUIsQ0FDakIsSUFBTUUsRUFBZSxJQUFJQyxHQUFxQixLQUFLLFFBQVEsRUFDM0QsT0FBQUQsRUFBYSxnQkFBZ0IsS0FBSyxZQUFZLEVBQ3ZDQSxDQUNYLENBQ0osSUNuQkEsSUFBQUUsR0FDQUMsR0FJYUMsR0FMYkMsSUFBQUMsRUFBQSxLQUFBSixHQUF5RyxrQ0FDekdDLEdBQStDLCtCQUMvQ0ksS0FDQUMsS0FDQUMsS0FDYUwsR0FBTixjQUFpQyxzQkFBb0IsQ0FDeEQsTUFDQSxXQUNBLGFBQ0EsTUFBUSxJQUFJTSxHQUNaLFlBQVlDLEVBQVMsQ0FDakIsTUFBTUEsQ0FBTyxFQUNiLElBQU1DLEVBQVcsQ0FDYixnQkFBaUIsQ0FDYixTQUFVLEdBQ1YsUUFBUyxDQUNiLEVBQ0EsYUFBYyxHQUNkLGFBQWNELEVBQVEsYUFDdEIsaUJBQWtCQSxFQUFRLGdCQUM5QixFQUNBLEtBQUssTUFBUSxJQUFJRSxHQUFTRCxDQUFRLEVBQ2xDLEtBQUssV0FBYSxJQUFJLG1DQUFnQyxLQUFLLE1BQU0saUJBQWlCLEVBQUdBLENBQVEsRUFDN0YsS0FBSyxhQUFlLElBQUkscUNBQWtDLEtBQUssTUFBTSxtQkFBbUIsRUFBR0EsQ0FBUSxDQUN2RyxDQUNBLGlCQUFrQixDQUNkLE9BQU8sS0FBSyxLQUNoQixDQUNBLFlBQWEsQ0FDVCxNQUFPLHVCQUNYLENBQ0EsTUFBTSxpQkFBaUJFLEVBQWlCQyxFQUFPQyxFQUFTLENBQ3BELElBQU1DLEVBQVUsTUFBTSxNQUFNLGlCQUFpQkgsRUFBaUJDLEVBQU9DLENBQU8sRUFDdEVFLEVBQWMsb0JBQWlCLEdBQUdKLEVBQWdCLEtBQUssRUFDN0QsR0FBSSxDQUFDRyxFQUFRLFFBQVEsY0FBYyxFQUFHLENBQ2xDLElBQU1FLEVBQWMsS0FBSyxNQUFNLHVCQUF1QixLQUFLLHNCQUFzQixFQUFHRCxDQUFXLEVBQzNGQyxJQUNBRixFQUFRLFFBQVEsY0FBYyxFQUFJRSxFQUUxQyxDQUNBLE9BQUksT0FBT0YsRUFBUSxNQUFTLFVBQ3hCQSxFQUFRLFFBQVEsY0FBYyxJQUFNLEtBQUssc0JBQXNCLEdBQy9ELENBQUNBLEVBQVEsS0FBSyxXQUFXLFFBQVEsR0FDakMsQ0FBQyxLQUFLLDhCQUE4QkMsQ0FBVyxJQUMvQ0QsRUFBUSxLQUFPLHlDQUEyQ0EsRUFBUSxNQUUvREEsQ0FDWCxDQUNBLE1BQU0sb0JBQW9CSCxFQUFpQkUsRUFBU0ksRUFBVSxDQUMxRCxPQUFPLE1BQU0sb0JBQW9CTixFQUFpQkUsRUFBU0ksQ0FBUSxDQUN2RSxDQUNBLE1BQU0sWUFBWU4sRUFBaUJFLEVBQVNJLEVBQVVDLEVBQVlDLEVBQVUsQ0FDeEUsSUFBTUMsRUFBa0JDLEdBQXFCSixFQUFVQyxDQUFVLEdBQUssVUFDdEUsR0FBSUEsRUFBVyxPQUFTLE9BQU9BLEVBQVcsT0FBVSxTQUNoRCxRQUFXSSxLQUFPLE9BQU8sS0FBS0osRUFBVyxLQUFLLEVBQzFDQSxFQUFXSSxDQUFHLEVBQUlKLEVBQVcsTUFBTUksQ0FBRyxFQUNsQ0EsRUFBSSxZQUFZLElBQU0sWUFDdEJKLEVBQVcsUUFBVUEsRUFBVyxNQUFNSSxDQUFHLEdBSWpESixFQUFXLFdBQWEsQ0FBQ0MsRUFBUyxZQUNsQ0EsRUFBUyxVQUFZRCxFQUFXLFdBRXBDLEdBQU0sQ0FBRSxZQUFBSyxFQUFhLGNBQUFDLENBQWMsRUFBSSxNQUFNLEtBQUssTUFBTSxtQ0FBbUNKLEVBQWlCLEtBQUssUUFBUSxpQkFBa0JILEVBQVVDLEVBQVlDLENBQVEsRUFDbktNLEVBQUssb0JBQWlCLEdBQUdGLENBQVcsRUFDcENHLEVBQVVSLEVBQVcsT0FBTyxTQUFXQSxFQUFXLE9BQU8sU0FBV0EsRUFBVyxTQUFXQSxFQUFXLFNBQVcsVUFDaEhTLEVBQVksZ0JBQWEsSUFBSUosRUFBWSxDQUFDLENBQUMsRUFBRSxhQUFhQSxDQUFXLEdBQUssTUFDMUVLLEVBQVksSUFBSUQsRUFBVUQsQ0FBTyxFQUN2QyxNQUFNLEtBQUssdUJBQXVCSCxFQUFhVixFQUFTSSxFQUFVQyxDQUFVLEVBQzVFLElBQU1XLEVBQVMsQ0FBQyxFQUNoQixPQUFXLENBQUNDLEVBQU1DLENBQU0sSUFBS04sRUFBRyxlQUFlLEVBQUcsQ0FDOUMsSUFBTU8sRUFBU0QsRUFBTyxnQkFBZ0IsRUFBRSxTQUFXRCxFQUM3Q0csRUFBUWYsRUFBVyxRQUFRYyxDQUFNLEdBQUtkLEVBQVdjLENBQU0sRUFDN0RILEVBQU9DLENBQUksRUFBSSxLQUFLLE1BQU0sbUJBQW1CLEVBQUUsV0FBV0MsRUFBUUUsQ0FBSyxDQUMzRSxDQUNBLE1BQU0sS0FBSyxNQUFNLHlCQUF5QixPQUFPLE9BQU9MLEVBQVdKLEVBQWUsQ0FDOUUsT0FBUUMsRUFBRyxnQkFBZ0IsRUFBRSxNQUM3QixRQUFBQyxDQUNKLEVBQUdHLENBQU0sRUFBR1gsQ0FBVSxDQUMxQixDQUNBLHVCQUF3QixDQUNwQixNQUFPLGlCQUNYLENBQ0EsOEJBQThCTyxFQUFJLENBQzlCLE9BQVcsQ0FBQyxDQUFFTSxDQUFNLElBQUtOLEVBQUcsZUFBZSxFQUN2QyxHQUFJTSxFQUFPLGdCQUFnQixFQUFFLFlBQ3pCLE1BQU8sRUFBRUEsRUFBTyxlQUFlLEdBQUtBLEVBQU8sWUFBWSxHQUFLQSxFQUFPLGFBQWEsR0FHeEYsTUFBTyxFQUNYLENBQ0osSUM1RkEsSUFBQUcsSUFBQSxHQUFBQyxHQUFBRCxJQUFBLHlCQUFBRSxHQUFBLHVCQUFBQyxHQUFBLHVCQUFBQyxHQUFBLHVCQUFBQyxHQUFBLHFCQUFBQyxHQUFBLHdCQUFBQyxHQUFBLHVCQUFBQyxHQUFBLCtCQUFBQyxHQUFBLGNBQUFDLEdBQUEsMEJBQUFDLEdBQUEsd0JBQUFDLEdBQUEsYUFBQUMsR0FBQSx5QkFBQUMsR0FBQSx1QkFBQUMsR0FBQSxZQUFBQyxJQUFBLFdBQUFDLElBQUEsV0FBQUMsSUFBQSxtQkFBQUMsSUFBQSwwQkFBQUMsR0FBQSx5QkFBQUMsR0FBQSxrQkFBQUMsR0FBQSx1QkFBQUMsSUFBQSxpQkFBQUMsSUFBQSxzQkFBQUMsTUFBQSxJQUFBQyxJQUFBQyxFQUFBLEtBQUFDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLEtBQ0FDLE1BQ0FDLEtBQ0FDLEtBQ0FDLEtBQ0FDLE1BQ0FDLEtBQ0FDLE1BQ0FDLEtBQ0FDLE1BQ0FDLEtBQ0FDLEtBQ0FDLEtBQ0FDLE9DakJBLElBQUFDLElBQUFDLEVBQUFDLEtBQUEsY0FFQSxJQUFJQyxHQUFZLGdCQUNaQyxJQUFTLFFBQVEscUJBQXFCLEVBQ3RDQyxJQUFlLFFBQVEsdUJBQXVCLEVBQzlDQyxJQUFhLFFBQVEscUJBQXFCLEVBRXhDQyxHQUFOLGNBQWdDSixHQUFVLFNBQVUsQ0FDaEQsYUFBYyxDQUNWLE1BQU0sQ0FDRixnQkFBaUIsQ0FDYixTQUFVLEdBQ1YsUUFBUyxDQUNiLEVBQ0EsU0FBVSxFQUNkLENBQUMsQ0FDTCxDQUNBLGtCQUFtQixDQUNmLElBQU1LLEVBQWEsSUFBSUMsR0FBNEIsS0FBSyxRQUFRLEVBQ2hFLE9BQUFELEVBQVcsZ0JBQWdCLEtBQUssWUFBWSxFQUNyQ0EsQ0FDWCxDQUNBLG9CQUFxQixDQUNqQixJQUFNRSxFQUFlLElBQUlDLEdBQThCLEtBQUssUUFBUSxFQUNwRSxPQUFBRCxFQUFhLGdCQUFnQixLQUFLLFlBQVksRUFDdkNBLENBQ1gsQ0FDSixFQUNNRSxJQUFrQix3Q0FDbEJILEdBQU4sY0FBMENOLEdBQVUsbUJBQW9CLENBQ3BFLE9BQU9VLEVBQVVDLEVBQU9DLEVBQVcsQ0FDL0IsSUFBTUMsRUFBS1osSUFBTyxpQkFBaUIsR0FBR1MsQ0FBUSxFQUM5QyxHQUFJRyxFQUFHLGVBQWUsR0FBS0EsRUFBRyxRQUFRLEVBQUksSUFBTUosS0FDeENFLEdBQVMsT0FBT0EsR0FBVSxTQUFVLENBQ3BDLElBQU1HLEVBQUtILEVBQ0xJLEVBQU1iLElBQWEsTUFBTVksQ0FBRSxFQUMzQkUsRUFBZSxLQUFLLGNBQWMsZUFBaUJiLElBQVcsU0FVcEUsR0FUSVcsRUFBRyxhQUFhLGFBQ2hCQyxFQUFJLEVBQUlDLEVBQWFGLEVBQUcsQ0FBQyxHQUV6QixNQUFNLFFBQVFBLEVBQUcsRUFBRSxJQUNuQkMsRUFBSSxHQUFLRCxFQUFHLEdBQUcsSUFBSUUsQ0FBWSxHQUUvQixNQUFNLFFBQVFGLEVBQUcsQ0FBQyxJQUNsQkMsRUFBSSxFQUFJRCxFQUFHLEVBQUUsT0FBUUcsR0FBTUEsR0FBSyxJQUFJLEVBQUUsSUFBS0EsR0FBTSxLQUFLLE9BQU9KLEVBQUlJLEVBQUdMLENBQVMsQ0FBQyxHQUU5RUUsRUFBRyxHQUFLLE9BQU9BLEVBQUcsR0FBTSxTQUFVLENBQ2xDQyxFQUFJLEVBQUksQ0FBQyxFQUNULE9BQVcsQ0FBQ0csRUFBR0QsQ0FBQyxJQUFLLE9BQU8sUUFBUUgsRUFBRyxDQUFDLEVBQ2hDRyxHQUFLLE9BQ0xGLEVBQUksRUFBRUcsQ0FBQyxFQUFJLEtBQUssT0FBT0wsRUFBSUksRUFBR0wsQ0FBUyxFQUduRCxDQUNBLE9BQU9HLENBQ1gsQ0FFSixPQUFPLE1BQU0sT0FBT0YsRUFBSUYsRUFBT0MsQ0FBUyxDQUM1QyxDQUNKLEVBQ01KLEdBQU4sY0FBNENSLEdBQVUscUJBQXNCLENBQ3hFLE1BQU1VLEVBQVVDLEVBQU8sQ0FDbkIsSUFBTUUsRUFBS1osSUFBTyxpQkFBaUIsR0FBR1MsQ0FBUSxFQUM5QyxHQUFJRyxFQUFHLGVBQWUsR0FBS0EsRUFBRyxRQUFRLEVBQUksSUFBTUosS0FDeENFLEdBQVMsT0FBT0EsR0FBVSxTQUFVLENBQ3BDLElBQU1HLEVBQUtILEVBQ0xJLEVBQU1iLElBQWEsTUFBTVksQ0FBRSxFQUMzQkssRUFBZ0IsS0FBSyxjQUFjLGVBQWlCaEIsSUFBVyxXQVVyRSxHQVRJLE9BQU9XLEVBQUcsR0FBTSxXQUNoQkMsRUFBSSxFQUFJSSxFQUFjTCxFQUFHLENBQUMsR0FFMUIsTUFBTSxRQUFRQSxFQUFHLEVBQUUsSUFDbkJDLEVBQUksR0FBS0QsRUFBRyxHQUFHLElBQUlLLENBQWEsR0FFaEMsTUFBTSxRQUFRTCxFQUFHLENBQUMsSUFDbEJDLEVBQUksRUFBSUQsRUFBRyxFQUFFLElBQUtHLEdBQU0sS0FBSyxNQUFNSixFQUFJSSxDQUFDLENBQUMsR0FFekNILEVBQUcsR0FBSyxPQUFPQSxFQUFHLEdBQU0sU0FBVSxDQUNsQ0MsRUFBSSxFQUFJLENBQUMsRUFDVCxPQUFXLENBQUNHLEVBQUdELENBQUMsSUFBSyxPQUFPLFFBQVFILEVBQUcsQ0FBQyxFQUNwQ0MsRUFBSSxFQUFFRyxDQUFDLEVBQUksS0FBSyxNQUFNTCxFQUFJSSxDQUFDLENBRW5DLENBQ0EsT0FBT0YsQ0FDWCxDQUVKLE9BQU8sTUFBTSxNQUFNRixFQUFJRixDQUFLLENBQ2hDLENBQ0osRUFFQVosSUFBUSxrQkFBb0JLLEtDMUY1QixJQUFBZ0IsSUFBQUMsRUFBQUMsSUFBQSxjQUVBLElBQUlDLEdBQWdCLFFBQVEsd0JBQXdCLEVBQ2hEQyxJQUFZLFFBQVEsb0JBQW9CLEVBRXRDQyxJQUE0QixDQUFDQyxFQUFPQyxFQUFrQixLQUFVLENBQ2xFLEdBQUlBLEVBQWlCLENBQ2pCLFFBQVdDLEtBQVNGLEVBQU0sTUFBTSxHQUFHLEVBQy9CLEdBQUksQ0FBQ0QsSUFBMEJHLENBQUssRUFDaEMsTUFBTyxHQUdmLE1BQU8sRUFDWCxDQVVBLE1BVEksR0FBQ0wsR0FBYyxpQkFBaUJHLENBQUssR0FHckNBLEVBQU0sT0FBUyxHQUFLQSxFQUFNLE9BQVMsSUFHbkNBLElBQVVBLEVBQU0sWUFBWSxHQUc1QkgsR0FBYyxZQUFZRyxDQUFLLEVBSXZDLEVBRU1HLElBQWdCLElBQ2hCQyxJQUFxQixJQUNyQkMsSUFBWUwsR0FBVSxDQUN4QixJQUFNTSxFQUFXTixFQUFNLE1BQU1HLEdBQWEsRUFDMUMsR0FBSUcsRUFBUyxPQUFTLEVBQ2xCLE9BQU8sS0FDWCxHQUFNLENBQUNDLEVBQUtDLEVBQVdDLEVBQVNDLEVBQVFDLEVBQVcsR0FBR0MsQ0FBWSxFQUFJTixFQUN0RSxHQUFJQyxJQUFRLE9BQVNDLElBQWMsSUFBTUMsSUFBWSxJQUFNRyxFQUFhLEtBQUtULEdBQWEsSUFBTSxHQUM1RixPQUFPLEtBQ1gsSUFBTVUsRUFBYUQsRUFBYSxJQUFLRSxHQUFhQSxFQUFTLE1BQU1WLEdBQWtCLENBQUMsRUFBRSxLQUFLLEVBQzNGLE1BQU8sQ0FDSCxVQUFBSSxFQUNBLFFBQUFDLEVBQ0EsT0FBQUMsRUFDQSxVQUFBQyxFQUNBLFdBQUFFLENBQ0osQ0FDSixFQUVJRSxJQUFhLENBQ2hCLENBQ0MsR0FBSSxNQUNKLFFBQVMsQ0FDUixVQUFXLGdCQUNYLG1CQUFvQixVQUNwQixxQkFBc0IsWUFDdEIsS0FBTSxNQUNOLGtCQUFtQixHQUNuQixhQUFjLEVBQ2YsRUFDQSxZQUFhLCtDQUNiLFFBQVMsQ0FDUixhQUFjLENBQ2IsWUFBYSxvQkFDZCxFQUNBLFlBQWEsQ0FDWixZQUFhLDBCQUNkLEVBQ0EsWUFBYSxDQUNaLFlBQWEsdUJBQ2QsRUFDQSxpQkFBa0IsQ0FDakIsWUFBYSxzQkFDZCxFQUNBLGlCQUFrQixDQUNqQixZQUFhLHNCQUNkLEVBQ0EsaUJBQWtCLENBQ2pCLFlBQWEsc0JBQ2QsRUFDQSxhQUFjLENBQ2IsWUFBYSx1QkFDZCxFQUNBLGFBQWMsQ0FDYixZQUFhLDBCQUNkLEVBQ0EsaUJBQWtCLENBQ2pCLFlBQWEsMEJBQ2QsRUFDQSxpQkFBa0IsQ0FDakIsWUFBYSx1QkFDZCxFQUNBLGlCQUFrQixDQUNqQixZQUFhLHdCQUNkLEVBQ0EsaUJBQWtCLENBQ2pCLFlBQWEsMEJBQ2QsRUFDQSxpQkFBa0IsQ0FDakIsWUFBYSx5QkFDZCxFQUNBLGlCQUFrQixDQUNqQixZQUFhLDRCQUNkLEVBQ0EsaUJBQWtCLENBQ2pCLFlBQWEseUJBQ2QsRUFDQSxhQUFjLENBQ2IsWUFBYSxtQkFDZCxFQUNBLGVBQWdCLENBQ2YsWUFBYSxrQkFDZCxFQUNBLFlBQWEsQ0FDWixZQUFhLHVCQUNkLEVBQ0EsZUFBZ0IsQ0FDZixZQUFhLG9CQUNkLEVBQ0EsZUFBZ0IsQ0FDZixZQUFhLGlCQUNkLEVBQ0EsYUFBYyxDQUNiLFlBQWEsb0JBQ2QsRUFDQSxhQUFjLENBQ2IsWUFBYSxnQkFDZCxFQUNBLGFBQWMsQ0FDYixZQUFhLGdCQUNkLEVBQ0EsWUFBYSxDQUNaLFlBQWEsa0JBQ2QsRUFDQSxZQUFhLENBQ1osWUFBYSxpQkFDZCxFQUNBLFlBQWEsQ0FDWixZQUFhLGdCQUNkLEVBQ0EsZUFBZ0IsQ0FDZixZQUFhLG1CQUNkLEVBQ0EsZUFBZ0IsQ0FDZixZQUFhLG1CQUNkLEVBQ0EsYUFBYyxDQUNiLFlBQWEsdUJBQ2QsRUFDQSxlQUFnQixDQUNmLFlBQWEsa0JBQ2QsRUFDQSxZQUFhLENBQ1osWUFBYSwyQkFDZCxFQUNBLFlBQWEsQ0FDWixZQUFhLHVCQUNkLEVBQ0EsWUFBYSxDQUNaLFlBQWEsZ0JBQ2QsRUFDQSxZQUFhLENBQ1osWUFBYSx5QkFDZCxFQUNBLFlBQWEsQ0FDWixZQUFhLGtCQUNkLENBQ0QsQ0FDRCxFQUNBLENBQ0MsR0FBSSxTQUNKLFFBQVMsQ0FDUixVQUFXLG1CQUNYLG1CQUFvQiwrQkFDcEIscUJBQXNCLGlCQUN0QixLQUFNLFNBQ04sa0JBQW1CLEdBQ25CLGFBQWMsRUFDZixFQUNBLFlBQWEscUJBQ2IsUUFBUyxDQUNSLGdCQUFpQixDQUNoQixZQUFhLHNCQUNkLEVBQ0EsYUFBYyxDQUNiLFlBQWEsaUJBQ2QsRUFDQSxpQkFBa0IsQ0FDakIsWUFBYSxpQkFDZCxDQUNELENBQ0QsRUFDQSxDQUNDLEdBQUksV0FDSixRQUFTLENBQ1IsVUFBVyxlQUNYLG1CQUFvQiwyQkFDcEIscUJBQXNCLGlCQUN0QixLQUFNLFdBQ04sa0JBQW1CLEdBQ25CLGFBQWMsRUFDZixFQUNBLFlBQWEsOEJBQ2IsUUFBUyxDQUNSLGlCQUFrQixDQUNqQixZQUFhLHdDQUNkLENBQ0QsQ0FDRCxFQUNBLENBQ0MsR0FBSSxVQUNKLFFBQVMsQ0FDUixVQUFXLGFBQ1gsbUJBQW9CLGlCQUNwQixxQkFBc0IsZ0JBQ3RCLEtBQU0sVUFDTixrQkFBbUIsR0FDbkIsYUFBYyxFQUNmLEVBQ0EsWUFBYSwyQkFDYixRQUFTLENBQ1IsaUJBQWtCLENBQ2pCLFlBQWEsdUJBQ2QsRUFDQSxnQkFBaUIsQ0FDaEIsWUFBYSxhQUNkLEVBQ0EsZ0JBQWlCLENBQ2hCLFlBQWEsYUFDZCxDQUNELENBQ0QsRUFDQSxDQUNDLEdBQUksWUFDSixRQUFTLENBQ1IsVUFBVyxnQkFDWCxtQkFBb0IsaUJBQ3BCLHFCQUFzQixpQkFDdEIsS0FBTSxZQUNOLGtCQUFtQixHQUNuQixhQUFjLEVBQ2YsRUFDQSxZQUFhLDRCQUNiLFFBQVMsQ0FDUixtQkFBb0IsQ0FDbkIsWUFBYSx5QkFDZCxFQUNBLGlCQUFrQixDQUNqQixZQUFhLHFCQUNkLEVBQ0EsaUJBQWtCLENBQ2pCLFlBQWEsY0FDZCxDQUNELENBQ0QsRUFDQSxDQUNDLEdBQUksWUFDSixRQUFTLENBQ1IsVUFBVyxpQkFDWCxtQkFBb0IseUJBQ3BCLHFCQUFzQixpQkFDdEIsS0FBTSxZQUNOLGtCQUFtQixHQUNuQixhQUFjLEVBQ2YsRUFDQSxZQUFhLDRCQUNiLFFBQVMsQ0FDUixtQkFBb0IsQ0FDbkIsWUFBYSx5QkFDZCxFQUNBLGlCQUFrQixDQUNqQixZQUFhLGNBQ2QsQ0FDRCxDQUNELEVBQ0EsQ0FDQyxHQUFJLFlBQ0osUUFBUyxDQUNSLFVBQVcsaUJBQ1gsbUJBQW9CLHFCQUNwQixxQkFBc0Isa0JBQ3RCLEtBQU0sWUFDTixrQkFBbUIsR0FDbkIsYUFBYyxFQUNmLEVBQ0EsWUFBYSw0QkFDYixRQUFTLENBQ1IsbUJBQW9CLENBQ25CLFlBQWEseUJBQ2QsRUFDQSxpQkFBa0IsQ0FDakIsWUFBYSxjQUNkLEVBQ0Esa0JBQW1CLENBQ2xCLFlBQWEsZUFDZCxDQUNELENBQ0QsRUFDQSxDQUNDLEdBQUksYUFDSixRQUFTLENBQ1IsVUFBVyxnQkFDWCxtQkFBb0IsVUFDcEIscUJBQXNCLGdCQUN0QixLQUFNLGFBQ04sa0JBQW1CLEdBQ25CLGFBQWMsRUFDZixFQUNBLFlBQWEsMkJBQ2IsUUFBUyxDQUNSLG9CQUFxQixDQUNwQixZQUFhLDBCQUNkLEVBQ0EsZ0JBQWlCLENBQ2hCLFlBQWEsd0JBQ2QsRUFDQSxnQkFBaUIsQ0FDaEIsWUFBYSx3QkFDZCxDQUNELENBQ0QsQ0FDRCxFQUNJQyxJQUFVLE1BQ1ZDLElBQWlCLENBQ3BCLFdBQVlGLElBQ1osUUFBU0MsR0FDVixFQUVJRSxJQUF5QkQsSUFDekJFLElBQTBCLEdBQ3hCWCxJQUFhUixHQUFVLENBQ3pCLEdBQU0sQ0FBRSxXQUFBZSxDQUFXLEVBQUlHLElBQ3ZCLFFBQVdWLEtBQWFPLEVBQVksQ0FDaEMsR0FBTSxDQUFFLFFBQUFLLEVBQVMsUUFBQUMsQ0FBUSxFQUFJYixFQUM3QixPQUFXLENBQUNFLEVBQVFZLENBQVUsSUFBSyxPQUFPLFFBQVFGLENBQU8sRUFDckQsR0FBSVYsSUFBV1YsRUFDWCxNQUFPLENBQ0gsR0FBR3FCLEVBQ0gsR0FBR0MsQ0FDUCxDQUdaLENBQ0EsUUFBV2QsS0FBYU8sRUFBWSxDQUNoQyxHQUFNLENBQUUsWUFBQVEsRUFBYSxRQUFBRixDQUFRLEVBQUliLEVBQ2pDLEdBQUksSUFBSSxPQUFPZSxDQUFXLEVBQUUsS0FBS3ZCLENBQUssRUFDbEMsTUFBTyxDQUNILEdBQUdxQixDQUNQLENBRVIsQ0FDQSxJQUFNRyxFQUFvQlQsRUFBVyxLQUFNUCxHQUFjQSxFQUFVLEtBQU8sS0FBSyxFQUMvRSxHQUFJLENBQUNnQixFQUNELE1BQU0sSUFBSSxNQUFNLG1IQUN5QyxFQUU3RCxNQUFPLENBQ0gsR0FBR0EsRUFBa0IsT0FDekIsQ0FDSixFQUNNQyxJQUFtQixDQUFDUixFQUFnQlMsRUFBa0IsS0FBTyxDQUMvRFIsSUFBeUJELEVBQ3pCRSxJQUEwQk8sQ0FDOUIsRUFDTUMsSUFBMEIsSUFBTSxDQUNsQ0YsSUFBaUJSLElBQWdCLEVBQUUsQ0FDdkMsRUFDTVcsSUFBcUIsSUFBTVQsSUFFM0JVLElBQXVCLENBQ3pCLDBCQUEyQjlCLElBQzNCLFNBQVVNLElBQ1YsVUFBV0csR0FDZixFQUNBWCxHQUFjLHdCQUF3QixJQUFNZ0MsSUFFNUMsSUFBTUMsSUFBNENDLEdBQVUsQ0FDeEQsR0FBSSxPQUFPQSxFQUFNLGtCQUFxQixXQUNsQyxNQUFNLElBQUksTUFBTSwyRkFBMkYsRUFFL0csR0FBTSxDQUFFLFNBQUFDLENBQVMsRUFBSUQsRUFDckIsT0FBSUMsSUFBYSxTQUNiRCxFQUFNLFNBQVcsU0FDTkUsSUFBYUYsRUFBTSxpQkFBaUIsQ0FDdkMsT0FBUSxPQUFPQSxFQUFNLFFBQVcsV0FBYSxNQUFNQSxFQUFNLE9BQU8sRUFBSUEsRUFBTSxPQUMxRSxhQUFjLE9BQU9BLEVBQU0sc0JBQXlCLFdBQzlDLE1BQU1BLEVBQU0scUJBQXFCLEVBQ2pDQSxFQUFNLHFCQUNaLFFBQVMsT0FBT0EsRUFBTSxpQkFBb0IsV0FBYSxNQUFNQSxFQUFNLGdCQUFnQixFQUFJQSxFQUFNLGdCQUM3RixTQUFVLE1BQ2QsRUFBRyxDQUFFLE9BQVFBLEVBQU0sTUFBTyxDQUFDLENBQUMsR0FHN0JBLENBQ1gsRUFDTUUsSUFBZ0JELEdBQWFsQyxJQUFVLFNBQVNrQyxFQUFTLEdBQUcsRUFFbEUsT0FBTyxlQUFlcEMsR0FBUyxnQkFBaUIsQ0FDNUMsV0FBWSxHQUNaLElBQUssVUFBWSxDQUFFLE9BQU9DLEdBQWMsYUFBZSxDQUMzRCxDQUFDLEVBQ0QsT0FBTyxlQUFlRCxHQUFTLGNBQWUsQ0FDMUMsV0FBWSxHQUNaLElBQUssVUFBWSxDQUFFLE9BQU9DLEdBQWMsV0FBYSxDQUN6RCxDQUFDLEVBQ0QsT0FBTyxlQUFlRCxHQUFTLGtCQUFtQixDQUM5QyxXQUFZLEdBQ1osSUFBSyxVQUFZLENBQUUsT0FBT0MsR0FBYyxlQUFpQixDQUM3RCxDQUFDLEVBQ0RELEdBQVEscUJBQXVCaUMsSUFDL0JqQyxHQUFRLG1CQUFxQmdDLElBQzdCaEMsR0FBUSxVQUFZWSxJQUNwQlosR0FBUSx5Q0FBMkNrQyxJQUNuRGxDLEdBQVEsaUJBQW1CNkIsSUFDM0I3QixHQUFRLGFBQWVxQyxJQUN2QnJDLEdBQVEsd0JBQTBCK0IsTUM5WmxDLElBQUFPLElBQUFDLEVBQUFDLElBQUEsY0FDQSxPQUFPLGVBQWVBLEdBQVMsYUFBYyxDQUFFLE1BQU8sRUFBSyxDQUFDLEVBQzVEQSxHQUFRLFFBQVUsT0FDbEIsSUFBTUMsR0FBSSxXQUFZQyxHQUFJLE9BQVFDLEdBQUksUUFBU0MsR0FBSSxhQUFjQyxHQUFJLEtBQU1DLEdBQUksT0FBUUMsR0FBSSxNQUFPQyxHQUFJLFNBQVVDLEdBQUksTUFBT0MsR0FBSSxhQUFjQyxHQUFJLFVBQVdDLElBQUksZUFDMUpDLElBQUksR0FBT0MsR0FBSSxRQUFTQyxHQUFJLGVBQWdCQyxJQUFJLGlFQUFrRUMsR0FBSSxXQUFZQyxHQUFJLE9BQVFDLEdBQUksV0FBWUMsR0FBSSxDQUFFLENBQUNuQixFQUFDLEVBQUcsR0FBTyxDQUFDQyxFQUFDLEVBQUcsUUFBUyxFQUFHbUIsSUFBSSxDQUFFLENBQUNwQixFQUFDLEVBQUcsR0FBTSxRQUFXLEdBQU8sQ0FBQ0MsRUFBQyxFQUFHLFNBQVUsRUFBR29CLElBQUksQ0FBRSxDQUFDakIsRUFBQyxFQUFHLFFBQVMsQ0FBQ0MsRUFBQyxFQUFHLENBQUMsQ0FBRSxDQUFDQyxFQUFDLEVBQUcsVUFBVyxDQUFDLENBQUUsRUFBR2dCLElBQUksQ0FBRSxDQUFDaEIsRUFBQyxFQUFHLFVBQVcsRUFBR2lCLElBQUksQ0FBRSxDQUFDbkIsRUFBQyxFQUFHLFFBQVMsQ0FBQ0MsRUFBQyxFQUFHLENBQUMsQ0FBRSxDQUFDQyxFQUFDLEVBQUcsUUFBUyxDQUFDLENBQUUsRUFBR2tCLElBQUksQ0FBRSxDQUFDbEIsRUFBQyxFQUFHLFFBQVMsRUFBR21CLElBQUksQ0FBRSxDQUFDckIsRUFBQyxFQUFHLGdCQUFpQixDQUFDQyxFQUFDLEVBQUcsQ0FBQ21CLEdBQUMsRUFBRyxDQUFDakIsRUFBQyxFQUFHLGlCQUFrQixFQUFHbUIsSUFBSSxDQUFFLENBQUN2QixFQUFDLEVBQUcsQ0FBQyxDQUFFLENBQUNDLEVBQUMsRUFBRyxnQkFBaUIsQ0FBQ0MsRUFBQyxFQUFHLENBQUMsQ0FBRSxDQUFDQyxFQUFDLEVBQUcsU0FBVSxFQUFHLEVBQUksQ0FBRSxDQUFDLEVBQUcsQ0FBQ08sRUFBQyxFQUFHLG9FQUFxRSxDQUFDWixFQUFDLEVBQUdZLEVBQUUsRUFBR2MsR0FBSSxDQUFFLENBQUN2QixFQUFDLEVBQUcsZ0JBQWlCLENBQUNDLEVBQUMsRUFBRyxDQUFDLENBQUUsQ0FBQ0MsRUFBQyxFQUFHLFNBQVUsRUFBRyxFQUFJLENBQUUsRUFBR3NCLElBQUksQ0FBRSxDQUFDekIsRUFBQyxFQUFHLENBQUMsQ0FBRSxDQUFDQyxFQUFDLEVBQUcsZ0JBQWlCLENBQUNDLEVBQUMsRUFBRyxDQUFDLENBQUUsQ0FBQ0MsRUFBQyxFQUFHLGNBQWUsRUFBRyxFQUFJLENBQUUsQ0FBQyxFQUFHLENBQUNPLEVBQUMsRUFBRyx5RUFBMEUsQ0FBQ1osRUFBQyxFQUFHWSxFQUFFLEVBQUdnQixJQUFJLENBQUUsQ0FBQ3pCLEVBQUMsRUFBRyxnQkFBaUIsQ0FBQ0MsRUFBQyxFQUFHLENBQUMsQ0FBRSxDQUFDQyxFQUFDLEVBQUcsY0FBZSxFQUFHLEVBQUksQ0FBRSxFQUFHd0IsSUFBSSxDQUFFLENBQUNkLEVBQUMsRUFBRyxDQUFFLENBQUNSLEVBQUMsRUFBRyxhQUFjLENBQUNDLEVBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQ0MsRUFBQyxFQUFHLENBQUMsQ0FBRSxFQUFHLENBQUNULEVBQUMsRUFBR2UsRUFBRSxFQUFHZSxHQUFJLENBQUMsRUFBR0MsSUFBSSxDQUFFLENBQUM1QixFQUFDLEVBQUcsZ0JBQWlCLENBQUNDLEVBQUMsRUFBRyxDQUFDLENBQUUsQ0FBQ0QsRUFBQyxFQUFHLFVBQVcsQ0FBQ0MsRUFBQyxFQUFHLENBQUMsQ0FBRSxDQUFDQyxFQUFDLEVBQUcsaUJBQWtCLEVBQUcsY0FBYyxDQUFFLEVBQUcsRUFBSSxDQUFFLEVBQUcyQixJQUFJLENBQUUsQ0FBQzdCLEVBQUMsRUFBRyxnQkFBaUIsQ0FBQ0MsRUFBQyxFQUFHLENBQUMsQ0FBRSxDQUFDRCxFQUFDLEVBQUcsVUFBVyxDQUFDQyxFQUFDLEVBQUcsQ0FBQyxDQUFFLENBQUNDLEVBQUMsRUFBRyxpQkFBa0IsRUFBRyxtQkFBbUIsQ0FBRSxFQUFHLEVBQUksQ0FBRSxFQUFHNEIsR0FBSSxDQUFFLENBQUMvQixFQUFDLEVBQUcsQ0FBQyxDQUFFLENBQUNDLEVBQUMsRUFBRyxRQUFTLENBQUNDLEVBQUMsRUFBRyxDQUFDLENBQUUsQ0FBQ0MsRUFBQyxFQUFHLHVCQUF3QixDQUFDLENBQUUsRUFBRyxDQUFFLENBQUNGLEVBQUMsRUFBR1UsR0FBRyxDQUFDVCxFQUFDLEVBQUcsQ0FBQyxDQUFFLENBQUNDLEVBQUMsRUFBRyx1QkFBd0IsRUFBRyxVQUFVLENBQUUsQ0FBQyxFQUFHLENBQUNKLEVBQUMsRUFBRyxDQUFDLENBQUUsQ0FBQ1csRUFBQyxFQUFHLDZIQUE4SCxDQUFDWixFQUFDLEVBQUdZLEVBQUUsQ0FBQyxFQUFHLENBQUNaLEVBQUMsRUFBR2dCLEVBQUUsRUFBR2tCLEdBQUksQ0FBRSxDQUFDL0IsRUFBQyxFQUFHLFVBQVcsQ0FBQ0MsRUFBQyxFQUFHLENBQUMsQ0FBRSxDQUFDQyxFQUFDLEVBQUcsaUJBQWtCLEVBQUcsTUFBTSxDQUFFLEVBQUc4QixJQUFJLENBQUUsQ0FBQ3BCLEVBQUMsRUFBRyxDQUFFLENBQUNSLEVBQUMsRUFBRyx3REFBeUQsQ0FBQ0MsRUFBQyxFQUFHLENBQUMsRUFBRyxDQUFDQyxFQUFDLEVBQUcsQ0FBQyxDQUFFLEVBQUcsQ0FBQ1QsRUFBQyxFQUFHZSxFQUFFLEVBQUdxQixJQUFJLENBQUUsQ0FBQzdCLEVBQUMsRUFBRyxrRkFBbUYsQ0FBQ0MsRUFBQyxFQUFHLENBQUUsQ0FBQ0UsR0FBQyxFQUFHLENBQUMsR0FBRyxDQUFFLEVBQUcsQ0FBQ0QsRUFBQyxFQUFHLENBQUMsQ0FBRSxFQUFHNEIsR0FBSSxDQUFFLENBQUMzQixHQUFDLEVBQUcsQ0FBQyxHQUFHLENBQUUsRUFBRzRCLElBQUksQ0FBRSxDQUFDMUIsRUFBQyxFQUFHLHNEQUF1RCxDQUFDWixFQUFDLEVBQUdZLEVBQUUsRUFBRzJCLElBQUksQ0FBRSxDQUFDckMsRUFBQyxFQUFHLENBQUMsQ0FBRSxDQUFDQyxFQUFDLEVBQUcsUUFBUyxDQUFDQyxFQUFDLEVBQUcsQ0FBQyxDQUFFLENBQUNDLEVBQUMsRUFBRyx1QkFBd0IsQ0FBQyxDQUFFLEVBQUcsQ0FBRSxDQUFDRixFQUFDLEVBQUdVLEdBQUcsQ0FBQ1QsRUFBQyxFQUFHLENBQUMsQ0FBRSxDQUFDQyxFQUFDLEVBQUcsdUJBQXdCLEVBQUcsVUFBVSxDQUFFLENBQUMsRUFBRyxDQUFDSixFQUFDLEVBQUcsQ0FBQyxDQUFFLENBQUNDLEVBQUMsRUFBRyxDQUFDLENBQUUsQ0FBQ0MsRUFBQyxFQUFHLE1BQU8sQ0FBQ0MsRUFBQyxFQUFHLENBQUNzQixFQUFDLENBQUUsQ0FBQyxFQUFHLENBQUN6QixFQUFDLEVBQUcsQ0FBQyxDQUFFLENBQUNDLEVBQUMsRUFBRyxDQUFDLENBQUUsQ0FBQ0MsRUFBQyxFQUFHVSxHQUFHLENBQUNULEVBQUMsRUFBRyxDQUFDOEIsR0FBRyxLQUFLLENBQUUsQ0FBQyxFQUFHLENBQUNqQyxFQUFDLEVBQUcsQ0FBQyxDQUFFLENBQUNXLEVBQUMsRUFBRyx1RkFBd0YsQ0FBQ1osRUFBQyxFQUFHWSxFQUFFLENBQUMsRUFBRyxDQUFDWixFQUFDLEVBQUdnQixFQUFFLEVBQUcsQ0FBRSxDQUFDSixFQUFDLEVBQUcscUhBQXNILENBQUNaLEVBQUMsRUFBR1ksRUFBRSxDQUFDLEVBQUcsQ0FBQ1osRUFBQyxFQUFHZ0IsRUFBRSxFQUFHLENBQUUsQ0FBQ0osRUFBQyxFQUFHLDZIQUE4SCxDQUFDWixFQUFDLEVBQUdZLEVBQUUsQ0FBQyxFQUFHLENBQUNaLEVBQUMsRUFBR2dCLEVBQUUsRUFBR3dCLElBQUksQ0FBRSxDQUFDakMsRUFBQyxFQUFHLHlFQUEwRSxDQUFDQyxFQUFDLEVBQUc2QixHQUFHLENBQUM1QixFQUFDLEVBQUcsQ0FBQyxDQUFFLEVBQUdnQyxJQUFJLENBQUNmLEVBQUMsRUFBR2dCLElBQUksQ0FBQ2QsR0FBQyxFQUFHZSxJQUFJLENBQUMsQ0FBRSxDQUFDeEMsRUFBQyxFQUFHLFFBQVMsQ0FBQ0MsRUFBQyxFQUFHLENBQUMsQ0FBRSxDQUFDQyxFQUFDLEVBQUcsdUJBQXdCLENBQUMsQ0FBRSxFQUFHLENBQUUsQ0FBQ0YsRUFBQyxFQUFHLE1BQU8sQ0FBQ0MsRUFBQyxFQUFHLENBQUMsQ0FBRSxDQUFDRCxFQUFDLEVBQUdVLEdBQUcsQ0FBQ1QsRUFBQyxFQUFHLENBQUMsQ0FBRSxDQUFDQyxFQUFDLEVBQUcsdUJBQXdCLEVBQUcsVUFBVSxDQUFFLENBQUMsQ0FBRSxFQUFHLENBQUUsQ0FBQ0YsRUFBQyxFQUFHVSxHQUFHLENBQUNULEVBQUMsRUFBRyxDQUFDOEIsR0FBRyxLQUFLLENBQUUsRUFBRyxDQUFFLENBQUMvQixFQUFDLEVBQUcsTUFBTyxDQUFDQyxFQUFDLEVBQUcsQ0FBQ3NCLEVBQUMsQ0FBRSxFQUFHLENBQUUsQ0FBQ3ZCLEVBQUMsRUFBRyxRQUFTLENBQUNDLEVBQUMsRUFBRyxDQUFDLENBQUUsQ0FBQ0MsRUFBQyxFQUFHLGFBQWMsQ0FBQyxDQUFFLEVBQUcsQ0FBRSxDQUFDRixFQUFDLEVBQUcsZUFBZ0IsQ0FBQ0MsRUFBQyxFQUFHLENBQUMsQ0FBRSxDQUFDQyxFQUFDLEVBQUcsYUFBYyxDQUFDLEVBQUcsQ0FBQ0MsRUFBQyxFQUFHLFdBQVksRUFBRyxDQUFFLENBQUNILEVBQUMsRUFBR1UsR0FBRyxDQUFDVCxFQUFDLEVBQUcsQ0FBQyxDQUFFLENBQUNELEVBQUMsRUFBRyxVQUFXLENBQUNDLEVBQUMsRUFBRyxDQUFDLENBQUUsQ0FBQ0MsRUFBQyxFQUFHLFdBQVksRUFBRyxTQUFTLENBQUUsRUFBR1ksRUFBQyxDQUFFLEVBQUcsQ0FBRSxDQUFDZCxFQUFDLEVBQUcsbUJBQW9CLENBQUNDLEVBQUMsRUFBRyxDQUFDLENBQUUsQ0FBQ0QsRUFBQyxFQUFHLFVBQVcsQ0FBQ0MsRUFBQyxFQUFHLENBQUMsQ0FBRSxDQUFDQyxFQUFDLEVBQUcsV0FBWSxFQUFHLFFBQVEsQ0FBRSxFQUFHLEVBQUssQ0FBRSxFQUFHLENBQUUsQ0FBQ0YsRUFBQyxFQUFHVSxHQUFHLENBQUNULEVBQUMsRUFBRyxDQUFDLENBQUUsQ0FBQ0QsRUFBQyxFQUFHLFVBQVcsQ0FBQ0MsRUFBQyxFQUFHLENBQUMsQ0FBRSxDQUFDQyxFQUFDLEVBQUcsV0FBWSxFQUFHLFFBQVEsQ0FBRSxFQUFHLFVBQVUsQ0FBRSxFQUFHLENBQUUsQ0FBQ0YsRUFBQyxFQUFHLG1CQUFvQixDQUFDQyxFQUFDLEVBQUcsQ0FBQyxDQUFFLENBQUNELEVBQUMsRUFBRyxVQUFXLENBQUNDLEVBQUMsRUFBRyxDQUFDLENBQUUsQ0FBQ0MsRUFBQyxFQUFHLFdBQVksRUFBRyxXQUFXLENBQUUsRUFBRyxFQUFLLENBQUUsQ0FBQyxFQUFHdUMsSUFBSSxDQUFDLENBQUUsQ0FBQ3pDLEVBQUMsRUFBRyxRQUFTLENBQUNDLEVBQUMsRUFBRyxDQUFDLENBQUUsQ0FBQ0MsRUFBQyxFQUFHLHVCQUF3QixDQUFDLENBQUUsRUFBRyxDQUFFLENBQUNGLEVBQUMsRUFBRyxNQUFPLENBQUNDLEVBQUMsRUFBRyxDQUFDLENBQUUsQ0FBQ0QsRUFBQyxFQUFHVSxHQUFHLENBQUNULEVBQUMsRUFBRyxDQUFDLENBQUUsQ0FBQ0MsRUFBQyxFQUFHLHVCQUF3QixFQUFHLFVBQVUsQ0FBRSxDQUFDLENBQUUsRUFBRyxDQUFFLENBQUNGLEVBQUMsRUFBR1UsR0FBRyxDQUFDVCxFQUFDLEVBQUcsQ0FBQzhCLEdBQUcsS0FBSyxDQUFFLEVBQUcsQ0FBRSxDQUFDL0IsRUFBQyxFQUFHLE1BQU8sQ0FBQ0MsRUFBQyxFQUFHLENBQUNzQixFQUFDLENBQUUsRUFBRyxDQUFFLENBQUN2QixFQUFDLEVBQUcsUUFBUyxDQUFDQyxFQUFDLEVBQUcsQ0FBQyxDQUFFLENBQUNDLEVBQUMsRUFBRyxpQkFBa0IsQ0FBQyxDQUFFLEVBQUcsQ0FBRSxDQUFDRixFQUFDLEVBQUcsVUFBVyxDQUFDQyxFQUFDLEVBQUcsQ0FBQyxDQUFFLENBQUNDLEVBQUMsRUFBRyxpQkFBa0IsRUFBRyxLQUFLLEVBQUcsQ0FBQ0MsRUFBQyxFQUFHLFVBQVcsRUFBRyxDQUFFLENBQUNILEVBQUMsRUFBRyxlQUFnQixDQUFDQyxFQUFDLEVBQUcsQ0FBQyxDQUFFLENBQUNDLEVBQUMsRUFBRyxVQUFXLENBQUMsRUFBRyxDQUFDQyxFQUFDLEVBQUcsV0FBWSxFQUFHLENBQUUsQ0FBQ0gsRUFBQyxFQUFHVSxHQUFHLENBQUNULEVBQUMsRUFBRyxDQUFDLENBQUUsQ0FBQ0QsRUFBQyxFQUFHLFVBQVcsQ0FBQ0MsRUFBQyxFQUFHLENBQUMsQ0FBRSxDQUFDQyxFQUFDLEVBQUcsV0FBWSxFQUFHLFNBQVMsQ0FBRSxFQUFHWSxFQUFDLENBQUUsRUFBRyxDQUFFLENBQUNkLEVBQUMsRUFBRyxtQkFBb0IsQ0FBQ0MsRUFBQyxFQUFHLENBQUMsQ0FBRSxDQUFDRCxFQUFDLEVBQUcsVUFBVyxDQUFDQyxFQUFDLEVBQUcsQ0FBQyxDQUFFLENBQUNDLEVBQUMsRUFBRyxXQUFZLEVBQUcsUUFBUSxDQUFFLEVBQUcsRUFBSyxDQUFFLEVBQUcsQ0FBRSxDQUFDRixFQUFDLEVBQUdVLEdBQUcsQ0FBQ1QsRUFBQyxFQUFHLENBQUMsQ0FBRSxDQUFDRCxFQUFDLEVBQUcsVUFBVyxDQUFDQyxFQUFDLEVBQUcsQ0FBQyxDQUFFLENBQUNDLEVBQUMsRUFBRyxXQUFZLEVBQUcsUUFBUSxDQUFFLEVBQUcsVUFBVSxDQUFFLEVBQUcsQ0FBRSxDQUFDRixFQUFDLEVBQUcsbUJBQW9CLENBQUNDLEVBQUMsRUFBRyxDQUFDLENBQUUsQ0FBQ0QsRUFBQyxFQUFHLFVBQVcsQ0FBQ0MsRUFBQyxFQUFHLENBQUMsQ0FBRSxDQUFDQyxFQUFDLEVBQUcsV0FBWSxFQUFHLFdBQVcsQ0FBRSxFQUFHLEVBQUssQ0FBRSxDQUFDLEVBQUd3QyxJQUFJLENBQUMsQ0FBRSxDQUFDMUMsRUFBQyxFQUFHLFFBQVMsQ0FBQ0MsRUFBQyxFQUFHLENBQUMsQ0FBRSxDQUFDQyxFQUFDLEVBQUcsdUJBQXdCLENBQUMsQ0FBRSxFQUFHLENBQUUsQ0FBQ0YsRUFBQyxFQUFHLE1BQU8sQ0FBQ0MsRUFBQyxFQUFHLENBQUMsQ0FBRSxDQUFDRCxFQUFDLEVBQUdVLEdBQUcsQ0FBQ1QsRUFBQyxFQUFHLENBQUMsQ0FBRSxDQUFDQyxFQUFDLEVB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QyxFQUFHSSxHQUFHLENBQUNILEVBQUMsRUFBRyxDQUFDZ0IsR0FBRyxjQUFjLENBQUUsQ0FBQyxFQUFHLFNBQVVJLEdBQUcsQ0FBQ3RCLEVBQUMsRUFBR1MsRUFBRSxFQUFHLENBQUUsV0FBWSxDQUFDLENBQUUsQ0FBQ1IsRUFBQyxFQUFHSSxHQUFHLENBQUNILEVBQUMsRUFBRyxDQUFDZ0IsR0FBRyxZQUFZLENBQUUsQ0FBQyxFQUFHLFNBQVVJLEdBQUcsQ0FBQ3RCLEVBQUMsRUFBR1MsRUFBRSxFQUFHLENBQUUsV0FBWSxDQUFDLENBQUUsQ0FBQ1IsRUFBQyxFQUFHSSxHQUFHLENBQUNILEVBQUMsRUFBRyxDQUFDZ0IsR0FBRyxXQUFXLENBQUUsQ0FBQyxFQUFHLFNBQVVJLEdBQUcsQ0FBQ3RCLEVBQUMsRUFBR1MsRUFBRSxFQUFHLENBQUUsV0FBWSxDQUFDLENBQUUsQ0FBQ1IsRUFBQyxFQUFHSSxHQUFHLENBQUNILEVBQUMsRUFBRyxDQUFDZ0IsR0FBRyxXQUFXLENBQUUsQ0FBQyxFQUFHLFNBQVVJLEdBQUcsQ0FBQ3RCLEVBQUMsRUFBR1MsRUFBRSxFQUFHLENBQUUsV0FBWSxDQUFDLENBQUUsQ0FBQ1IsRUFBQyxFQUFHSSxHQUFHLENBQUNILEVBQUMsRUFBRyxDQUFDZ0IsR0FBRyxXQUFXLENBQUUsQ0FBQyxFQUFHLFNBQVVJLEdBQUcsQ0FBQ3RCLEVBQUMsRUFBR1MsRUFBRSxFQUFHLENBQUUsV0FBWSxDQUFDLENBQUUsQ0FBQ1IsRUFBQyxFQUFHSSxHQUFHLENBQUNILEVBQUMsRUFBRyxDQUFDZ0IsR0FBRyxXQUFXLENBQUUsQ0FBQyxFQUFHLFNBQVVJLEdBQUcsQ0FBQ3RCLEVBQUMsRUFBR1MsRUFBRSxFQUFHLENBQUUsV0FBWSxDQUFDLENBQUUsQ0FBQ1IsRUFBQyxFQUFHSSxHQUFHLENBQUNILEVBQUMsRUFBRyxDQUFDZ0IsR0FBR1YsR0FBQyxDQUFFLENBQUMsRUFBRyxTQUFVYyxHQUFHLENBQUN0QixFQUFDLEVBQUdTLEVBQUUsRUFBRyxDQUFFLFdBQVksQ0FBQyxDQUFFLENBQUNS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LEdBQ0EseUNBQUFDLEdBQ0EsOENBQUFDLEdBQ0EsNkJBQUFDLEdBQ0EscUJBQUF0QyxHQUNBLG9CQUFBd0MsR0FDQSwwQ0FBQUQsR0FDQSx3QkFBQUUsR0FDQSw4QkFBQUMsR0FDQSxtREFBQUMsR0FDQSwwQ0FBQUMsR0FDQSw2QkFBQUMsR0FDQSx5Q0FBQUMsR0FDQSw4Q0FBQUMsR0FDQSx3Q0FBQUMsR0FDQSxxQ0FBQUMsR0FDQSwwQkFBQUMsR0FDQSwrQkFBQUMsR0FDQSwyQkFBQUMsR0FDQSwyQkFBQUMsR0FDQSxvQkFBQUMsR0FDQSxxQkFBQUMsR0FDQSwyQkFBQUMsR0FDQSwrQkFBQUMsR0FDQSxxQkFBQUMsR0FDQSx3Q0FBQUMsR0FDQSxvQkFBQUMsR0FDQSx1Q0FBQUMsR0FDQSxxQkFBQUMsR0FDQSwyQkFBQUMsR0FDQSxnREFBQUMsR0FDQSx1Q0FBQUMsR0FDQSx1Q0FBQUMsR0FDQSx5QkFBQUMsR0FDQSx3QkFBQUMsR0FDQSxzQ0FBQUMsR0FDQSwyQ0FBQUMsR0FDQSxxQ0FBQUMsR0FDQSwwQ0FBQUMsR0FDQSxrQ0FBQUMsR0FDQSx1QkFBQUMsR0FDQSw2QkFBQUMsR0FDQSw0QkFBQUMsR0FDQSwrQkFBQUMsR0FDQSx3QkFBQUMsR0FDQSwyQkFBQUMsR0FDQSx3QkFBQUMsR0FDQSxpQkFBQUcsR0FDQSxvQkFBQUYsR0FDQSwyQkFBQUMsR0FDQSwwQkFBQUUsR0FDQSxrQ0FBQUMsR0FDQSwwQkFBQUMsR0FDQSx3QkFBQUMsR0FDQSx3QkFBQUMsR0FDQSw0QkFBQUMsR0FDQSxrQkFBQUMsR0FDQSxrQkFBQUMsR0FDQSx5Q0FBQUMsR0FDQSxrREFBQUMsR0FDQSx5Q0FBQUMsR0FDQSx1Q0FBQUMsR0FDQSxtQkFBQUMsR0FDQSw0QkFBQUMsR0FDQSw0QkFBQUMsR0FDQSxtQkFBQUMsR0FDQSxxQkFBQUMsR0FDQSwwQkFBQUMsR0FDQSxpQkFBQUMsR0FDQSxxQkFBQUMsR0FDQSx3Q0FBQUMsR0FDQSxvQkFBQUMsR0FDQSx1Q0FBQUMsR0FDQSxxQkFBQUMsR0FDQSwyQkFBQUMsR0FDQSxnREFB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WSxFQUM1QyxPQUFPSCxFQUFTLGtCQUVaRSxJQUNGQyxFQUFjLGtCQUFrQixFQUFJRCxHQUd0QyxJQUFNRyxFQUFzQkYsRUFBY0wsRUFBdUIsRUFDakUsT0FBSU8sSUFDRkYsRUFBY04sR0FBWSxFQUFJUSxFQUM5QixPQUFPRixFQUFjTCxFQUF1QixHQUd2QyxDQUNMLEdBQUdFLEVBQ0gsUUFBU0csQ0FDWCxDQUNGLEVBRU1HLElBQXVCQyxHQUNwQixDQUFDTixFQUE2Qk8sRUFBa0JDLElBQXVCLENBQzVFLElBQU1DLEVBQTJCQyxJQUFrQixJQUFJSixDQUFHLEVBQ3ZELGFBQWEsSUFBSUssR0FBa0IsRUFDbkMsV0FBVyxJQUFJQyxFQUFnQixFQUMvQixZQUFZLElBQUlDLEdBQWtCLEVBQ2xDLFdBQVcsSUFBSUMsSUFBb0IsQ0FBQyx3QkFBeUIsR0FBTSwrQkFBZ0MsRUFBSyxDQUFDLENBQUMsRUFDMUcsTUFBTSxFQUdULE9BQUNQLEVBQWdCLCtCQUFpQyxHQU0zQ0UsRUFBeUJULEVBQU9PLEVBSmYsQ0FBQ1EsRUFBbUJoQixJQUNuQ1MsRUFBU08sRUFBS2pCLElBQXNCQyxFQUFVQyxDQUFLLENBQUMsQ0FHYyxDQUM3RSxFQUdJZ0IsSUFBU0MsSUFBVSxFQUVaWCxJQUFNVSxJQUNORSxJQUFNYixJQUFvQlcsR0FBTSIsCiAgIm5hbWVzIjogWyJyZXF1aXJlX3ZpZXciLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJkZWJ1ZyIsICJwYXRoIiwgImZzIiwgImRpcm5hbWUiLCAiYmFzZW5hbWUiLCAiZXh0bmFtZSIsICJqb2luIiwgInJlc29sdmUiLCAiVmlldyIsICJuYW1lIiwgIm9wdGlvbnMiLCAib3B0cyIsICJmaWxlTmFtZSIsICJtb2QiLCAiZm4iLCAicm9vdHMiLCAiaSIsICJyb290IiwgImxvYyIsICJkaXIiLCAiZmlsZSIsICJjYWxsYmFjayIsICJzeW5jIiwgImFyZ3MiLCAiY250eCIsICJleHQiLCAic3RhdCIsICJ0cnlTdGF0IiwgInJlcXVpcmVfdXRpbHMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgIk1FVEhPRFMiLCAiY29udGVudFR5cGUiLCAiZXRhZyIsICJtaW1lIiwgInByb3h5YWRkciIsICJxcyIsICJxdWVyeXN0cmluZyIsICJtZXRob2QiLCAiY3JlYXRlRVRhZ0dlbmVyYXRvciIsICJ0eXBlIiwgImFjY2VwdFBhcmFtcyIsICJ0eXBlcyIsICJzdHIiLCAibGVuZ3RoIiwgImNvbG9uSW5kZXgiLCAiaW5kZXgiLCAicmV0IiwgInNwbGl0SW5kZXgiLCAiZW5kSW5kZXgiLCAia2V5IiwgInZhbHVlIiwgInZhbCIsICJmbiIsICJwYXJzZUV4dGVuZGVkUXVlcnlTdHJpbmciLCAiYSIsICJpIiwgInYiLCAiY2hhcnNldCIsICJwYXJzZWQiLCAib3B0aW9ucyIsICJib2R5IiwgImVuY29kaW5nIiwgImJ1ZiIsICJyZXF1aXJlX2FwcGxpY2F0aW9uIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiZmluYWxoYW5kbGVyIiwgImRlYnVnIiwgIlZpZXciLCAiaHR0cCIsICJtZXRob2RzIiwgImNvbXBpbGVFVGFnIiwgImNvbXBpbGVRdWVyeVBhcnNlciIsICJjb21waWxlVHJ1c3QiLCAicmVzb2x2ZSIsICJvbmNlIiwgIlJvdXRlciIsICJzbGljZSIsICJmbGF0dGVuIiwgImFwcCIsICJ0cnVzdFByb3h5RGVmYXVsdFN5bWJvbCIsICJyb3V0ZXIiLCAiZW52IiwgInBhcmVudCIsICJyZXEiLCAicmVzIiwgImNhbGxiYWNrIiwgImRvbmUiLCAibG9nZXJyb3IiLCAiZm4iLCAib2Zmc2V0IiwgInBhdGgiLCAiYXJnIiwgImZucyIsICJuZXh0IiwgIm9yaWciLCAiZXJyIiwgImV4dCIsICJleHRlbnNpb24iLCAibmFtZSIsICJpIiwgInNldHRpbmciLCAidmFsIiwgIm1ldGhvZCIsICJyb3V0ZSIsICJhcmdzIiwgIm9wdGlvbnMiLCAiY2FjaGUiLCAiZW5naW5lcyIsICJvcHRzIiwgInZpZXciLCAicmVuZGVyT3B0aW9ucyIsICJkaXJzIiwgInRyeVJlbmRlciIsICJzZXJ2ZXIiLCAicmVxdWlyZV9yZXF1ZXN0IiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiYWNjZXB0cyIsICJpc0lQIiwgInR5cGVpcyIsICJodHRwIiwgImZyZXNoIiwgInBhcnNlUmFuZ2UiLCAicGFyc2UiLCAicHJveHlhZGRyIiwgInJlcSIsICJuYW1lIiwgImxjIiwgImFjY2VwdCIsICJzaXplIiwgIm9wdGlvbnMiLCAicmFuZ2UiLCAiZGVmaW5lR2V0dGVyIiwgInF1ZXJ5cGFyc2UiLCAicXVlcnlzdHJpbmciLCAidHlwZXMiLCAiYXJyIiwgImkiLCAicHJvdG8iLCAidHJ1c3QiLCAiaGVhZGVyIiwgImluZGV4IiwgImFkZHJzIiwgImhvc3RuYW1lIiwgIm9mZnNldCIsICJzdWJkb21haW5zIiwgInZhbCIsICJob3N0IiwgIm1ldGhvZCIsICJyZXMiLCAic3RhdHVzIiwgIm9iaiIsICJnZXR0ZXIiLCAicmVxdWlyZV9yZXNwb25zZSIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImNvbnRlbnREaXNwb3NpdGlvbiIsICJjcmVhdGVFcnJvciIsICJlbmNvZGVVcmwiLCAiZXNjYXBlSHRtbCIsICJodHRwIiwgIm9uRmluaXNoZWQiLCAibWltZSIsICJwYXRoIiwgInBhdGhJc0Fic29sdXRlIiwgInN0YXR1c2VzIiwgInNpZ24iLCAibm9ybWFsaXplVHlwZSIsICJub3JtYWxpemVUeXBlcyIsICJzZXRDaGFyc2V0IiwgImNvb2tpZSIsICJzZW5kIiwgImV4dG5hbWUiLCAicmVzb2x2ZSIsICJ2YXJ5IiwgInJlcyIsICJjb2RlIiwgImxpbmtzIiwgImxpbmsiLCAicmVsIiwgInNpbmdsZUxpbmsiLCAiYm9keSIsICJjaHVuayIsICJlbmNvZGluZyIsICJyZXEiLCAidHlwZSIsICJhcHAiLCAiZXRhZ0ZuIiwgImdlbmVyYXRlRVRhZyIsICJsZW4iLCAiZXRhZyIsICJvYmoiLCAiZXNjYXBlIiwgInJlcGxhY2VyIiwgInNwYWNlcyIsICJzdHJpbmdpZnkiLCAiY2FsbGJhY2siLCAic3RhdHVzQ29kZSIsICJvcHRpb25zIiwgImRvbmUiLCAibmV4dCIsICJvcHRzIiwgInBhdGhuYW1lIiwgImZpbGUiLCAic2VuZGZpbGUiLCAiZXJyIiwgImZpbGVuYW1lIiwgIm5hbWUiLCAiaGVhZGVycyIsICJrZXlzIiwgImkiLCAia2V5IiwgImZ1bGxQYXRoIiwgImN0IiwgInYiLCAiZmllbGQiLCAidmFsIiwgInByZXYiLCAidmFsdWUiLCAic2VjcmV0IiwgInNpZ25lZCIsICJtYXhBZ2UiLCAidXJsIiwgImFkZHJlc3MiLCAic3RhdHVzIiwgInUiLCAidmlldyIsICJzZWxmIiwgInN0ciIsICJzdHJlYW1pbmciLCAib25hYm9ydGVkIiwgIm9uZGlyZWN0b3J5IiwgIm9uZXJyb3IiLCAib25lbmQiLCAib25maWxlIiwgIm9uZmluaXNoIiwgIm9uc3RyZWFtIiwgImsiLCAianNvbiIsICJjIiwgInJlcXVpcmVfZXhwcmVzcyIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImJvZHlQYXJzZXIiLCAiRXZlbnRFbWl0dGVyIiwgIm1peGluIiwgInByb3RvIiwgIlJvdXRlciIsICJyZXEiLCAicmVzIiwgImNyZWF0ZUFwcGxpY2F0aW9uIiwgImFwcCIsICJuZXh0IiwgInJlcXVpcmVfZXhwcmVzcyIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgInJlcXVpcmVfZXhwcmVzc19iYXNpY19hdXRoIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiYXV0aCIsICJhc3NlcnQiLCAidGltaW5nU2FmZUVxdWFsIiwgInNhZmVDb21wYXJlIiwgInVzZXJJbnB1dCIsICJzZWNyZXQiLCAidXNlcklucHV0TGVuZ3RoIiwgInNlY3JldExlbmd0aCIsICJ1c2VySW5wdXRCdWZmZXIiLCAic2VjcmV0QnVmZmVyIiwgImVuc3VyZUZ1bmN0aW9uIiwgIm9wdGlvbiIsICJkZWZhdWx0VmFsdWUiLCAiYnVpbGRNaWRkbGV3YXJlIiwgIm9wdGlvbnMiLCAiY2hhbGxlbmdlIiwgInVzZXJzIiwgImF1dGhvcml6ZXIiLCAic3RhdGljVXNlcnNBdXRob3JpemVyIiwgImlzQXN5bmMiLCAiZ2V0UmVzcG9uc2VCb2R5IiwgInJlYWxtIiwgInVzZXJuYW1lIiwgInBhc3N3b3JkIiwgImkiLCAicmVxIiwgInJlcyIsICJuZXh0IiwgImF1dGhlbnRpY2F0aW9uIiwgInVuYXV0aG9yaXplZCIsICJhdXRob3JpemVyQ2FsbGJhY2siLCAiY2hhbGxlbmdlU3RyaW5nIiwgInJlYWxtTmFtZSIsICJyZXNwb25zZSIsICJlcnIiLCAiYXBwcm92ZWQiLCAidmFsaWRhdGVBY2NvdW50SWRFbmRwb2ludE1vZGUiLCAidmFsdWUiLCAiQUNDT1VOVF9JRF9FTkRQT0lOVF9NT0RFX1ZBTFVFUyIsICJERUZBVUxUX0FDQ09VTlRfSURfRU5EUE9JTlRfTU9ERSIsICJpbml0X0FjY291bnRJZEVuZHBvaW50TW9kZUNvbnN0YW50cyIsICJfX2VzbU1pbiIsICJpbXBvcnRfdXRpbF9taWRkbGV3YXJlIiwgInJlc29sdmVBY2NvdW50SWRFbmRwb2ludE1vZGVDb25maWciLCAiaW5pdF9BY2NvdW50SWRFbmRwb2ludE1vZGVDb25maWdSZXNvbHZlciIsICJfX2VzbU1pbiIsICJpbml0X0FjY291bnRJZEVuZHBvaW50TW9kZUNvbnN0YW50cyIsICJpbnB1dCIsICJhY2NvdW50SWRFbmRwb2ludE1vZGUiLCAiYWNjb3VudElkRW5kcG9pbnRNb2RlUHJvdmlkZXIiLCAiREVGQVVMVF9BQ0NPVU5UX0lEX0VORFBPSU5UX01PREUiLCAiYWNjSWRNb2RlIiwgInZhbGlkYXRlQWNjb3VudElkRW5kcG9pbnRNb2RlIiwgImVyciIsICJfdGhyb3ciLCAiRU5WX0FDQ09VTlRfSURfRU5EUE9JTlRfTU9ERSIsICJDT05GSUdfQUNDT1VOVF9JRF9FTkRQT0lOVF9NT0RFIiwgIk5PREVfQUNDT1VOVF9JRF9FTkRQT0lOVF9NT0RFX0NPTkZJR19PUFRJT05TIiwgImluaXRfTm9kZUFjY291bnRJZEVuZHBvaW50TW9kZUNvbmZpZ09wdGlvbnMiLCAiX19lc21NaW4iLCAiaW5pdF9BY2NvdW50SWRFbmRwb2ludE1vZGVDb25zdGFudHMiLCAibWVzc2FnZSIsICJlbnYiLCAidmFsdWUiLCAidmFsaWRhdGVBY2NvdW50SWRFbmRwb2ludE1vZGUiLCAicHJvZmlsZSIsICJERUZBVUxUX0FDQ09VTlRfSURfRU5EUE9JTlRfTU9ERSIsICJhY2NvdW50X2lkX2VuZHBvaW50X2V4cG9ydHMiLCAiX19leHBvcnQiLCAiQUNDT1VOVF9JRF9FTkRQT0lOVF9NT0RFX1ZBTFVFUyIsICJDT05GSUdfQUNDT1VOVF9JRF9FTkRQT0lOVF9NT0RFIiwgIkRFRkFVTFRfQUNDT1VOVF9JRF9FTkRQT0lOVF9NT0RFIiwgIkVOVl9BQ0NPVU5UX0lEX0VORFBPSU5UX01PREUiLCAiTk9ERV9BQ0NPVU5UX0lEX0VORFBPSU5UX01PREVfQ09ORklHX09QVElPTlMiLCAicmVzb2x2ZUFjY291bnRJZEVuZHBvaW50TW9kZUNvbmZpZyIsICJ2YWxpZGF0ZUFjY291bnRJZEVuZHBvaW50TW9kZSIsICJpbml0X2FjY291bnRfaWRfZW5kcG9pbnQiLCAiX19lc21NaW4iLCAiaW5pdF9BY2NvdW50SWRFbmRwb2ludE1vZGVDb25maWdSZXNvbHZlciIsICJpbml0X0FjY291bnRJZEVuZHBvaW50TW9kZUNvbnN0YW50cyIsICJpbml0X05vZGVBY2NvdW50SWRFbmRwb2ludE1vZGVDb25maWdPcHRpb25zIiwgInJlcXVpcmVfZGlzdF9janMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgIkxSVUNhY2hlIiwgIkVuZHBvaW50Q2FjaGUiLCAiY2FwYWNpdHkiLCAia2V5IiwgImVuZHBvaW50c1dpdGhFeHBpcnkiLCAiZW5kcG9pbnRzIiwgImVuZHBvaW50IiwgInZhbHVlIiwgIm5vdyIsICJBZGRyZXNzIiwgIkNhY2hlUGVyaW9kSW5NaW51dGVzIiwgInJlcXVpcmVfZGlzdF9janMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgInByb3RvY29sSHR0cCIsICJlbmRwb2ludENhY2hlIiwgIkVOVl9FTkRQT0lOVF9ESVNDT1ZFUlkiLCAiQ09ORklHX0VORFBPSU5UX0RJU0NPVkVSWSIsICJpc0ZhbHN5IiwgInZhbHVlIiwgIk5PREVfRU5EUE9JTlRfRElTQ09WRVJZX0NPTkZJR19PUFRJT05TIiwgImVudiIsICJpIiwgImVudktleSIsICJwcm9maWxlIiwgImdldENhY2hlS2V5IiwgImNvbW1hbmROYW1lIiwgImNvbmZpZyIsICJvcHRpb25zIiwgImFjY2Vzc0tleUlkIiwgImlkZW50aWZpZXJzIiwgImFjYyIsICJrZXkiLCAicmVxdWVzdFF1ZXVlIiwgInVwZGF0ZURpc2NvdmVyZWRFbmRwb2ludEluQ2FjaGUiLCAicmVzb2x2ZSIsICJyZWplY3QiLCAiY2FjaGVLZXkiLCAiZW5kcG9pbnRzIiwgInBsYWNlaG9sZGVyRW5kcG9pbnRzIiwgImNvbW1hbmQiLCAicmVzdWx0IiwgImVycm9yIiwgImVycm9yVG9UaHJvdyIsICJlbmRwb2ludERpc2NvdmVyeU1pZGRsZXdhcmUiLCAibWlkZGxld2FyZUNvbmZpZyIsICJuZXh0IiwgImNvbnRleHQiLCAiYXJncyIsICJlbmRwb2ludERpc2NvdmVyeUNvbW1hbmRDdG9yIiwgImlzRGlzY292ZXJlZEVuZHBvaW50UmVxdWlyZWQiLCAiY2xpZW50TmFtZSIsICJpc0VuZHBvaW50RGlzY292ZXJ5RW5hYmxlZCIsICJyZXF1ZXN0IiwgImVuZHBvaW50IiwgImVuZHBvaW50RGlzY292ZXJ5TWlkZGxld2FyZU9wdGlvbnMiLCAiZ2V0RW5kcG9pbnREaXNjb3ZlcnlQbHVnaW4iLCAicGx1Z2luQ29uZmlnIiwgImNvbW1hbmRTdGFjayIsICJnZXRFbmRwb2ludERpc2NvdmVyeVJlcXVpcmVkUGx1Z2luIiwgImdldEVuZHBvaW50RGlzY292ZXJ5T3B0aW9uYWxQbHVnaW4iLCAicmVzb2x2ZUVuZHBvaW50RGlzY292ZXJ5Q29uZmlnIiwgImlucHV0IiwgImVuZHBvaW50Q2FjaGVTaXplIiwgImVuZHBvaW50RGlzY292ZXJ5RW5hYmxlZCIsICJlbmRwb2ludERpc2NvdmVyeUVuYWJsZWRQcm92aWRlciIsICJyZXF1aXJlX2Rpc3RfY2pzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJwcm90b2NvbEh0dHAiLCAicmVzb2x2ZUhvc3RIZWFkZXJDb25maWciLCAiaW5wdXQiLCAiaG9zdEhlYWRlck1pZGRsZXdhcmUiLCAib3B0aW9ucyIsICJuZXh0IiwgImFyZ3MiLCAicmVxdWVzdCIsICJoYW5kbGVyUHJvdG9jb2wiLCAiaG9zdCIsICJob3N0SGVhZGVyTWlkZGxld2FyZU9wdGlvbnMiLCAiZ2V0SG9zdEhlYWRlclBsdWdpbiIsICJjbGllbnRTdGFjayIsICJyZXF1aXJlX2Rpc3RfY2pzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJsb2dnZXJNaWRkbGV3YXJlIiwgIm5leHQiLCAiY29udGV4dCIsICJhcmdzIiwgInJlc3BvbnNlIiwgImNsaWVudE5hbWUiLCAiY29tbWFuZE5hbWUiLCAibG9nZ2VyIiwgImR5bmFtb0RiRG9jdW1lbnRDbGllbnRPcHRpb25zIiwgIm92ZXJyaWRlSW5wdXRGaWx0ZXJTZW5zaXRpdmVMb2ciLCAib3ZlcnJpZGVPdXRwdXRGaWx0ZXJTZW5zaXRpdmVMb2ciLCAiaW5wdXRGaWx0ZXJTZW5zaXRpdmVMb2ciLCAib3V0cHV0RmlsdGVyU2Vuc2l0aXZlTG9nIiwgIiRtZXRhZGF0YSIsICJvdXRwdXRXaXRob3V0TWV0YWRhdGEiLCAiZXJyb3IiLCAibG9nZ2VyTWlkZGxld2FyZU9wdGlvbnMiLCAiZ2V0TG9nZ2VyUGx1Z2luIiwgIm9wdGlvbnMiLCAiY2xpZW50U3RhY2siLCAicmVxdWlyZV9yZWN1cnNpb25EZXRlY3Rpb25NaWRkbGV3YXJlIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJsYW1iZGFfaW52b2tlX3N0b3JlXzEiLCAicHJvdG9jb2xfaHR0cF8xIiwgIlRSQUNFX0lEX0hFQURFUl9OQU1FIiwgIkVOVl9MQU1CREFfRlVOQ1RJT05fTkFNRSIsICJFTlZfVFJBQ0VfSUQiLCAicmVjdXJzaW9uRGV0ZWN0aW9uTWlkZGxld2FyZSIsICJuZXh0IiwgImFyZ3MiLCAicmVxdWVzdCIsICJ0cmFjZUlkSGVhZGVyIiwgImgiLCAiZnVuY3Rpb25OYW1lIiwgInRyYWNlSWRGcm9tRW52IiwgInRyYWNlSWQiLCAibm9uRW1wdHlTdHJpbmciLCAic3RyIiwgInJlcXVpcmVfZGlzdF9janMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgInJlY3Vyc2lvbkRldGVjdGlvbk1pZGRsZXdhcmUiLCAicmVjdXJzaW9uRGV0ZWN0aW9uTWlkZGxld2FyZU9wdGlvbnMiLCAiZ2V0UmVjdXJzaW9uRGV0ZWN0aW9uUGx1Z2luIiwgIm9wdGlvbnMiLCAiY2xpZW50U3RhY2siLCAiayIsICJyZXF1aXJlX2Rpc3RfY2pzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJ1dGlsRW5kcG9pbnRzIiwgInVybFBhcnNlciIsICJpc1ZpcnR1YWxIb3N0YWJsZVMzQnVja2V0IiwgInZhbHVlIiwgImFsbG93U3ViRG9tYWlucyIsICJsYWJlbCIsICJBUk5fREVMSU1JVEVSIiwgIlJFU09VUkNFX0RFTElNSVRFUiIsICJwYXJzZUFybiIsICJzZWdtZW50cyIsICJhcm4iLCAicGFydGl0aW9uIiwgInNlcnZpY2UiLCAicmVnaW9uIiwgImFjY291bnRJZCIsICJyZXNvdXJjZVBhdGgiLCAicmVzb3VyY2VJZCIsICJyZXNvdXJjZSIsICJwYXJ0aXRpb25zIiwgInZlcnNpb24iLCAicGFydGl0aW9uc0luZm8iLCAic2VsZWN0ZWRQYXJ0aXRpb25zSW5mbyIsICJzZWxlY3RlZFVzZXJBZ2VudFByZWZpeCIsICJyZWdpb25zIiwgIm91dHB1dHMiLCAicmVnaW9uRGF0YSIsICJyZWdpb25SZWdleCIsICJERUZBVUxUX1BBUlRJVElPTiIsICJzZXRQYXJ0aXRpb25JbmZvIiwgInVzZXJBZ2VudFByZWZpeCIsICJ1c2VEZWZhdWx0UGFydGl0aW9uSW5mbyIsICJnZXRVc2VyQWdlbnRQcmVmaXgiLCAiYXdzRW5kcG9pbnRGdW5jdGlvbnMiLCAicmVzb2x2ZURlZmF1bHRBd3NSZWdpb25hbEVuZHBvaW50c0NvbmZpZyIsICJpbnB1dCIsICJlbmRwb2ludCIsICJ0b0VuZHBvaW50VjEiLCAic3RhdGUiLCAiZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbiIsICJpbml0X2VtaXRXYXJuaW5nSWZVbnN1cHBvcnRlZFZlcnNpb24iLCAiX19lc21NaW4iLCAidmVyc2lvbiIsICJzZXRDcmVkZW50aWFsRmVhdHVyZSIsICJjcmVkZW50aWFscyIsICJmZWF0dXJlIiwgInZhbHVlIiwgImluaXRfc2V0Q3JlZGVudGlhbEZlYXR1cmUiLCAiX19lc21NaW4iLCAic2V0RmVhdHVyZSIsICJjb250ZXh0IiwgImZlYXR1cmUiLCAidmFsdWUiLCAiaW5pdF9zZXRGZWF0dXJlIiwgIl9fZXNtTWluIiwgInNldFRva2VuRmVhdHVyZSIsICJ0b2tlbiIsICJmZWF0dXJlIiwgInZhbHVlIiwgImluaXRfc2V0VG9rZW5GZWF0dXJlIiwgIl9fZXNtTWluIiwgImNsaWVudF9leHBvcnRzIiwgIl9fZXhwb3J0IiwgImVtaXRXYXJuaW5nSWZVbnN1cHBvcnRlZFZlcnNpb24iLCAic2V0Q3JlZGVudGlhbEZlYXR1cmUiLCAic2V0RmVhdHVyZSIsICJzZXRUb2tlbkZlYXR1cmUiLCAic3RhdGUiLCAiaW5pdF9jbGllbnQiLCAiX19lc21NaW4iLCAiaW5pdF9lbWl0V2FybmluZ0lmVW5zdXBwb3J0ZWRWZXJzaW9uIiwgImluaXRfc2V0Q3JlZGVudGlhbEZlYXR1cmUiLCAiaW5pdF9zZXRGZWF0dXJlIiwgImluaXRfc2V0VG9rZW5GZWF0dXJlIiwgImltcG9ydF9wcm90b2NvbF9odHRwIiwgImdldERhdGVIZWFkZXIiLCAiaW5pdF9nZXREYXRlSGVhZGVyIiwgIl9fZXNtTWluIiwgInJlc3BvbnNlIiwgImdldFNrZXdDb3JyZWN0ZWREYXRlIiwgImluaXRfZ2V0U2tld0NvcnJlY3RlZERhdGUiLCAiX19lc21NaW4iLCAic3lzdGVtQ2xvY2tPZmZzZXQiLCAiaXNDbG9ja1NrZXdlZCIsICJpbml0X2lzQ2xvY2tTa2V3ZWQiLCAiX19lc21NaW4iLCAiaW5pdF9nZXRTa2V3Q29ycmVjdGVkRGF0ZSIsICJjbG9ja1RpbWUiLCAic3lzdGVtQ2xvY2tPZmZzZXQiLCAiZ2V0U2tld0NvcnJlY3RlZERhdGUiLCAiZ2V0VXBkYXRlZFN5c3RlbUNsb2NrT2Zmc2V0IiwgImluaXRfZ2V0VXBkYXRlZFN5c3RlbUNsb2NrT2Zmc2V0IiwgIl9fZXNtTWluIiwgImluaXRfaXNDbG9ja1NrZXdlZCIsICJjbG9ja1RpbWUiLCAiY3VycmVudFN5c3RlbUNsb2NrT2Zmc2V0IiwgImNsb2NrVGltZUluTXMiLCAiaXNDbG9ja1NrZXdlZCIsICJpbml0X3V0aWxzIiwgIl9fZXNtTWluIiwgImluaXRfZ2V0RGF0ZUhlYWRlciIsICJpbml0X2dldFNrZXdDb3JyZWN0ZWREYXRlIiwgImluaXRfZ2V0VXBkYXRlZFN5c3RlbUNsb2NrT2Zmc2V0IiwgImltcG9ydF9wcm90b2NvbF9odHRwIiwgInRocm93U2lnbmluZ1Byb3BlcnR5RXJyb3IiLCAidmFsaWRhdGVTaWduaW5nUHJvcGVydGllcyIsICJBd3NTZGtTaWdWNFNpZ25lciIsICJBV1NTREtTaWdWNFNpZ25lciIsICJpbml0X0F3c1Nka1NpZ1Y0U2lnbmVyIiwgIl9fZXNtTWluIiwgImluaXRfdXRpbHMiLCAibmFtZSIsICJwcm9wZXJ0eSIsICJzaWduaW5nUHJvcGVydGllcyIsICJjb250ZXh0IiwgImNvbmZpZyIsICJhdXRoU2NoZW1lIiwgInNpZ25lciIsICJzaWduaW5nUmVnaW9uIiwgInNpZ25pbmdSZWdpb25TZXQiLCAic2lnbmluZ05hbWUiLCAiaHR0cFJlcXVlc3QiLCAiaWRlbnRpdHkiLCAidmFsaWRhdGVkUHJvcHMiLCAiaGFuZGxlckV4ZWN1dGlvbkNvbnRleHQiLCAiZmlyc3QiLCAic2Vjb25kIiwgImdldFNrZXdDb3JyZWN0ZWREYXRlIiwgImVycm9yIiwgInNlcnZlclRpbWUiLCAiZ2V0RGF0ZUhlYWRlciIsICJpbml0aWFsU3lzdGVtQ2xvY2tPZmZzZXQiLCAiZ2V0VXBkYXRlZFN5c3RlbUNsb2NrT2Zmc2V0IiwgImh0dHBSZXNwb25zZSIsICJkYXRlSGVhZGVyIiwgImltcG9ydF9wcm90b2NvbF9odHRwIiwgIkF3c1Nka1NpZ1Y0QVNpZ25lciIsICJpbml0X0F3c1Nka1NpZ1Y0QVNpZ25lciIsICJfX2VzbU1pbiIsICJpbml0X3V0aWxzIiwgImluaXRfQXdzU2RrU2lnVjRTaWduZXIiLCAiQXdzU2RrU2lnVjRTaWduZXIiLCAiaHR0cFJlcXVlc3QiLCAiaWRlbnRpdHkiLCAic2lnbmluZ1Byb3BlcnRpZXMiLCAiY29uZmlnIiwgInNpZ25lciIsICJzaWduaW5nUmVnaW9uIiwgInNpZ25pbmdSZWdpb25TZXQiLCAic2lnbmluZ05hbWUiLCAidmFsaWRhdGVTaWduaW5nUHJvcGVydGllcyIsICJtdWx0aVJlZ2lvbk92ZXJyaWRlIiwgImdldFNrZXdDb3JyZWN0ZWREYXRlIiwgImdldEFycmF5Rm9yQ29tbWFTZXBhcmF0ZWRTdHJpbmciLCAiaW5pdF9nZXRBcnJheUZvckNvbW1hU2VwYXJhdGVkU3RyaW5nIiwgIl9fZXNtTWluIiwgInN0ciIsICJpdGVtIiwgImdldEJlYXJlclRva2VuRW52S2V5IiwgImluaXRfZ2V0QmVhcmVyVG9rZW5FbnZLZXkiLCAiX19lc21NaW4iLCAic2lnbmluZ05hbWUiLCAiTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX0VOVl9LRVkiLCAiTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX0NPTkZJR19LRVkiLCAiTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX09QVElPTlMiLCAiaW5pdF9OT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfT1BUSU9OUyIsICJfX2VzbU1pbiIsICJpbml0X2dldEFycmF5Rm9yQ29tbWFTZXBhcmF0ZWRTdHJpbmciLCAiaW5pdF9nZXRCZWFyZXJUb2tlbkVudktleSIsICJlbnYiLCAib3B0aW9ucyIsICJnZXRCZWFyZXJUb2tlbkVudktleSIsICJnZXRBcnJheUZvckNvbW1hU2VwYXJhdGVkU3RyaW5nIiwgInByb2ZpbGUiLCAiaW1wb3J0X2NvcmUiLCAiaW1wb3J0X3Byb3BlcnR5X3Byb3ZpZGVyIiwgInJlc29sdmVBd3NTZGtTaWdWNEFDb25maWciLCAiTk9ERV9TSUdWNEFfQ09ORklHX09QVElPTlMiLCAiaW5pdF9yZXNvbHZlQXdzU2RrU2lnVjRBQ29uZmlnIiwgIl9fZXNtTWluIiwgImNvbmZpZyIsICJlbnYiLCAiXyIsICJwcm9maWxlIiwgIm5vcm1hbGl6ZUNyZWRlbnRpYWxQcm92aWRlciIsICJjb25maWciLCAiY3JlZGVudGlhbHMiLCAiY3JlZGVudGlhbERlZmF1bHRQcm92aWRlciIsICJjcmVkZW50aWFsc1Byb3ZpZGVyIiwgImJpbmRDYWxsZXJDb25maWciLCAiZm4iLCAib3B0aW9ucyIsICJpbXBvcnRfY29yZSIsICJpbXBvcnRfc2lnbmF0dXJlX3Y0IiwgInJlc29sdmVBd3NTZGtTaWdWNENvbmZpZyIsICJyZXNvbHZlQVdTU0RLU2lnVjRDb25maWciLCAiaW5pdF9yZXNvbHZlQXdzU2RrU2lnVjRDb25maWciLCAiX19lc21NaW4iLCAiaW5pdF9jbGllbnQiLCAiaW5wdXRDcmVkZW50aWFscyIsICJpc1VzZXJTdXBwbGllZCIsICJyZXNvbHZlZENyZWRlbnRpYWxzIiwgIm1lbW9pemVkUHJvdmlkZXIiLCAiYm91bmRQcm92aWRlciIsICJpc0NyZWRlbnRpYWxPYmplY3QiLCAiYXR0cmlidXRlZENyZWRzIiwgInNldENyZWRlbnRpYWxGZWF0dXJlIiwgInNpZ25pbmdFc2NhcGVQYXRoIiwgInN5c3RlbUNsb2NrT2Zmc2V0IiwgInNoYTI1NiIsICJzaWduZXIiLCAicmVnaW9uIiwgInJlZ2lvbkluZm8iLCAic2lnbmluZ1JlZ2lvbiIsICJzaWduaW5nU2VydmljZSIsICJwYXJhbXMiLCAiU2lnbmVyQ3RvciIsICJhdXRoU2NoZW1lIiwgImluaXRfYXdzX3NkayIsICJfX2VzbU1pbiIsICJpbml0X0F3c1Nka1NpZ1Y0U2lnbmVyIiwgImluaXRfQXdzU2RrU2lnVjRBU2lnbmVyIiwgImluaXRfTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX09QVElPTlMiLCAiaW5pdF9yZXNvbHZlQXdzU2RrU2lnVjRBQ29uZmlnIiwgImluaXRfcmVzb2x2ZUF3c1Nka1NpZ1Y0Q29uZmlnIiwgImh0dHBBdXRoU2NoZW1lc19leHBvcnRzIiwgIl9fZXhwb3J0IiwgIkFXU1NES1NpZ1Y0U2lnbmVyIiwgIkF3c1Nka1NpZ1Y0QVNpZ25lciIsICJBd3NTZGtTaWdWNFNpZ25lciIsICJOT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfT1BUSU9OUyIsICJOT0RFX1NJR1Y0QV9DT05GSUdfT1BUSU9OUyIsICJnZXRCZWFyZXJUb2tlbkVudktleSIsICJyZXNvbHZlQVdTU0RLU2lnVjRDb25maWciLCAicmVzb2x2ZUF3c1Nka1NpZ1Y0QUNvbmZpZyIsICJyZXNvbHZlQXdzU2RrU2lnVjRDb25maWciLCAidmFsaWRhdGVTaWduaW5nUHJvcGVydGllcyIsICJpbml0X2h0dHBBdXRoU2NoZW1lcyIsICJfX2VzbU1pbiIsICJpbml0X2F3c19zZGsiLCAiaW5pdF9nZXRCZWFyZXJUb2tlbkVudktleSIsICJpbXBvcnRfc2NoZW1hIiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgIlByb3RvY29sTGliIiwgImluaXRfUHJvdG9jb2xMaWIiLCAiX19lc21NaW4iLCAicXVlcnlDb21wYXQiLCAiZGVmYXVsdENvbnRlbnRUeXBlIiwgImlucHV0U2NoZW1hIiwgIm1lbWJlcnMiLCAiaHR0cFBheWxvYWRNZW1iZXIiLCAibSIsICJtZWRpYVR5cGUiLCAiaHR0cFF1ZXJ5IiwgImh0dHBRdWVyeVBhcmFtcyIsICJodHRwSGVhZGVyIiwgImh0dHBMYWJlbCIsICJodHRwUHJlZml4SGVhZGVycyIsICJlcnJvcklkZW50aWZpZXIiLCAiZGVmYXVsdE5hbWVzcGFjZSIsICJyZXNwb25zZSIsICJkYXRhT2JqZWN0IiwgIm1ldGFkYXRhIiwgImdldEVycm9yU2NoZW1hIiwgIm5hbWVzcGFjZSIsICJlcnJvck5hbWUiLCAiZXJyb3JNZXRhZGF0YSIsICJyZWdpc3RyeSIsICJzeW50aGV0aWMiLCAiYmFzZUV4Y2VwdGlvblNjaGVtYSIsICJFcnJvckN0b3IiLCAiZXhjZXB0aW9uIiwgImFkZGl0aW9ucyIsICJtc2ciLCAiZXJyb3IiLCAicmVxSWQiLCAib3V0cHV0IiwgInF1ZXJ5RXJyb3JIZWFkZXIiLCAiQ29kZSIsICJUeXBlIiwgImVudHJpZXMiLCAiRXJyb3IiLCAiayIsICJ2IiwgInF1ZXJ5Q29tcGF0RXJyb3JEYXRhIiwgImVycm9yRGF0YSIsICJzY2hlbWEiLCAiaW1wb3J0X2Nib3IiLCAiaW1wb3J0X3NjaGVtYSIsICJBd3NTbWl0aHlScGNWMkNib3JQcm90b2NvbCIsICJpbml0X0F3c1NtaXRoeVJwY1YyQ2JvclByb3RvY29sIiwgIl9fZXNtTWluIiwgImluaXRfUHJvdG9jb2xMaWIiLCAiZGVmYXVsdE5hbWVzcGFjZSIsICJhd3NRdWVyeUNvbXBhdGlibGUiLCAiUHJvdG9jb2xMaWIiLCAib3BlcmF0aW9uU2NoZW1hIiwgImlucHV0IiwgImNvbnRleHQiLCAicmVxdWVzdCIsICJyZXNwb25zZSIsICJkYXRhT2JqZWN0IiwgIm1ldGFkYXRhIiwgImVycm9yTmFtZSIsICJjb21wYXRIZWFkZXIiLCAiZXJyb3JTY2hlbWEiLCAiZXJyb3JNZXRhZGF0YSIsICJucyIsICJtZXNzYWdlIiwgIkVycm9yQ3RvciIsICJleGNlcHRpb24iLCAib3V0cHV0IiwgIm5hbWUiLCAibWVtYmVyIiwgIl90b1N0ciIsICJfdG9Cb29sIiwgIl90b051bSIsICJpbml0X2NvZXJjaW5nX3NlcmlhbGl6ZXJzIiwgIl9fZXNtTWluIiwgInZhbCIsICJ3YXJuaW5nIiwgImxvd2VyY2FzZSIsICJudW0iLCAiU2VyZGVDb250ZXh0Q29uZmlnIiwgImluaXRfQ29uZmlndXJhYmxlU2VyZGVDb250ZXh0IiwgIl9fZXNtTWluIiwgInNlcmRlQ29udGV4dCIsICJVbmlvblNlcmRlIiwgImluaXRfVW5pb25TZXJkZSIsICJfX2VzbU1pbiIsICJmcm9tIiwgInRvIiwgImsiLCAia2V5IiwgInYiLCAianNvblJldml2ZXIiLCAia2V5IiwgInZhbHVlIiwgImNvbnRleHQiLCAibnVtZXJpY1N0cmluZyIsICJpbXBvcnRfc2VyZGUiLCAiaW5pdF9qc29uUmV2aXZlciIsICJfX2VzbU1pbiIsICJpbXBvcnRfc21pdGh5X2NsaWVudCIsICJpbXBvcnRfdXRpbF91dGY4IiwgImNvbGxlY3RCb2R5U3RyaW5nIiwgImluaXRfY29tbW9uIiwgIl9fZXNtTWluIiwgInN0cmVhbUJvZHkiLCAiY29udGV4dCIsICJib2R5IiwgInBhcnNlSnNvbkJvZHkiLCAicGFyc2VKc29uRXJyb3JCb2R5IiwgImxvYWRSZXN0SnNvbkVycm9yQ29kZSIsICJpbml0X3BhcnNlSnNvbkJvZHkiLCAiX19lc21NaW4iLCAiaW5pdF9jb21tb24iLCAic3RyZWFtQm9keSIsICJjb250ZXh0IiwgImNvbGxlY3RCb2R5U3RyaW5nIiwgImVuY29kZWQiLCAiZSIsICJlcnJvckJvZHkiLCAidmFsdWUiLCAib3V0cHV0IiwgImRhdGEiLCAiZmluZEtleSIsICJvYmplY3QiLCAia2V5IiwgImsiLCAic2FuaXRpemVFcnJvckNvZGUiLCAicmF3VmFsdWUiLCAiY2xlYW5WYWx1ZSIsICJoZWFkZXJLZXkiLCAiY29kZUtleSIsICJpbXBvcnRfcHJvdG9jb2xzIiwgImltcG9ydF9zY2hlbWEiLCAiaW1wb3J0X3NlcmRlIiwgImltcG9ydF91dGlsX2Jhc2U2NCIsICJKc29uU2hhcGVEZXNlcmlhbGl6ZXIiLCAiaW5pdF9Kc29uU2hhcGVEZXNlcmlhbGl6ZXIiLCAiX19lc21NaW4iLCAiaW5pdF9Db25maWd1cmFibGVTZXJkZUNvbnRleHQiLCAiaW5pdF9VbmlvblNlcmRlIiwgImluaXRfanNvblJldml2ZXIiLCAiaW5pdF9wYXJzZUpzb25Cb2R5IiwgIlNlcmRlQ29udGV4dENvbmZpZyIsICJzZXR0aW5ncyIsICJzY2hlbWEiLCAiZGF0YSIsICJqc29uUmV2aXZlciIsICJwYXJzZUpzb25Cb2R5IiwgInZhbHVlIiwgImlzT2JqZWN0IiwgIm5zIiwgInJlY29yZCIsICJ1bmlvbiIsICJvdXQiLCAibmFtZU1hcCIsICJqc29uTmFtZSIsICJ1bmlvblNlcmRlIiwgIlVuaW9uU2VyZGUiLCAibWVtYmVyTmFtZSIsICJtZW1iZXJTY2hlbWEiLCAiZnJvbUtleSIsICJrIiwgInYiLCAidCIsICJsaXN0TWVtYmVyIiwgInNwYXJzZSIsICJpdGVtIiwgIm1hcE1lbWJlciIsICJfayIsICJfdiIsICJtZWRpYVR5cGUiLCAidW50eXBlZCIsICJpbXBvcnRfc2VyZGUiLCAiTlVNRVJJQ19DT05UUk9MX0NIQVIiLCAiSnNvblJlcGxhY2VyIiwgImluaXRfanNvblJlcGxhY2VyIiwgIl9fZXNtTWluIiwgImtleSIsICJ2YWx1ZSIsICJ2IiwgInMiLCAianNvbiIsICJpbXBvcnRfcHJvdG9jb2xzIiwgImltcG9ydF9zY2hlbWEiLCAiaW1wb3J0X3NlcmRlIiwgImltcG9ydF91dGlsX2Jhc2U2NCIsICJKc29uU2hhcGVTZXJpYWxpemVyIiwgImluaXRfSnNvblNoYXBlU2VyaWFsaXplciIsICJfX2VzbU1pbiIsICJpbml0X0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dCIsICJpbml0X2pzb25SZXBsYWNlciIsICJTZXJkZUNvbnRleHRDb25maWciLCAic2V0dGluZ3MiLCAic2NoZW1hIiwgInZhbHVlIiwgInJvb3RTY2hlbWEiLCAidXNlUmVwbGFjZXIiLCAicmVwbGFjZXIiLCAiSnNvblJlcGxhY2VyIiwgImNvbnRhaW5lciIsICJpc09iamVjdCIsICJucyIsICJyZWNvcmQiLCAib3V0IiwgImpzb25OYW1lIiwgIm5hbWVNYXAiLCAibWVtYmVyTmFtZSIsICJtZW1iZXJTY2hlbWEiLCAic2VyaWFsaXphYmxlVmFsdWUiLCAidGFyZ2V0S2V5IiwgIiR1bmtub3duIiwgImsiLCAidiIsICJsaXN0TWVtYmVyIiwgInNwYXJzZSIsICJpdGVtIiwgIm1hcE1lbWJlciIsICJfayIsICJfdiIsICJtZWRpYVR5cGUiLCAiSnNvbkNvZGVjIiwgImluaXRfSnNvbkNvZGVjIiwgIl9fZXNtTWluIiwgImluaXRfQ29uZmlndXJhYmxlU2VyZGVDb250ZXh0IiwgImluaXRfSnNvblNoYXBlRGVzZXJpYWxpemVyIiwgImluaXRfSnNvblNoYXBlU2VyaWFsaXplciIsICJTZXJkZUNvbnRleHRDb25maWciLCAic2V0dGluZ3MiLCAic2VyaWFsaXplciIsICJKc29uU2hhcGVTZXJpYWxpemVyIiwgImRlc2VyaWFsaXplciIsICJKc29uU2hhcGVEZXNlcmlhbGl6ZXIiLCAiaW1wb3J0X3Byb3RvY29scyIsICJpbXBvcnRfc2NoZW1hIiwgIkF3c0pzb25ScGNQcm90b2NvbCIsICJpbml0X0F3c0pzb25ScGNQcm90b2NvbCIsICJfX2VzbU1pbiIsICJpbml0X1Byb3RvY29sTGliIiwgImluaXRfSnNvbkNvZGVjIiwgImluaXRfcGFyc2VKc29uQm9keSIsICJkZWZhdWx0TmFtZXNwYWNlIiwgInNlcnZpY2VUYXJnZXQiLCAiYXdzUXVlcnlDb21wYXRpYmxlIiwgImpzb25Db2RlYyIsICJKc29uQ29kZWMiLCAiUHJvdG9jb2xMaWIiLCAib3BlcmF0aW9uU2NoZW1hIiwgImlucHV0IiwgImNvbnRleHQiLCAicmVxdWVzdCIsICJyZXNwb25zZSIsICJkYXRhT2JqZWN0IiwgIm1ldGFkYXRhIiwgImVycm9ySWRlbnRpZmllciIsICJsb2FkUmVzdEpzb25FcnJvckNvZGUiLCAiZXJyb3JTY2hlbWEiLCAiZXJyb3JNZXRhZGF0YSIsICJucyIsICJtZXNzYWdlIiwgIkVycm9yQ3RvciIsICJleGNlcHRpb24iLCAib3V0cHV0IiwgIm5hbWUiLCAibWVtYmVyIiwgIkF3c0pzb24xXzBQcm90b2NvbCIsICJpbml0X0F3c0pzb24xXzBQcm90b2NvbCIsICJfX2VzbU1pbiIsICJpbml0X0F3c0pzb25ScGNQcm90b2NvbCIsICJBd3NKc29uUnBjUHJvdG9jb2wiLCAiZGVmYXVsdE5hbWVzcGFjZSIsICJzZXJ2aWNlVGFyZ2V0IiwgImF3c1F1ZXJ5Q29tcGF0aWJsZSIsICJqc29uQ29kZWMiLCAiQXdzSnNvbjFfMVByb3RvY29sIiwgImluaXRfQXdzSnNvbjFfMVByb3RvY29sIiwgIl9fZXNtTWluIiwgImluaXRfQXdzSnNvblJwY1Byb3RvY29sIiwgIkF3c0pzb25ScGNQcm90b2NvbCIsICJkZWZhdWx0TmFtZXNwYWNlIiwgInNlcnZpY2VUYXJnZXQiLCAiYXdzUXVlcnlDb21wYXRpYmxlIiwgImpzb25Db2RlYyIsICJpbXBvcnRfcHJvdG9jb2xzIiwgImltcG9ydF9zY2hlbWEiLCAiQXdzUmVzdEpzb25Qcm90b2NvbCIsICJpbml0X0F3c1Jlc3RKc29uUHJvdG9jb2wiLCAiX19lc21NaW4iLCAiaW5pdF9Qcm90b2NvbExpYiIsICJpbml0X0pzb25Db2RlYyIsICJpbml0X3BhcnNlSnNvbkJvZHkiLCAiUHJvdG9jb2xMaWIiLCAiZGVmYXVsdE5hbWVzcGFjZSIsICJzZXR0aW5ncyIsICJKc29uQ29kZWMiLCAic2VyZGVDb250ZXh0IiwgIm9wZXJhdGlvblNjaGVtYSIsICJpbnB1dCIsICJjb250ZXh0IiwgInJlcXVlc3QiLCAiaW5wdXRTY2hlbWEiLCAiY29udGVudFR5cGUiLCAicmVzcG9uc2UiLCAib3V0cHV0IiwgIm91dHB1dFNjaGVtYSIsICJuYW1lIiwgIm1lbWJlciIsICJkYXRhT2JqZWN0IiwgIm1ldGFkYXRhIiwgImVycm9ySWRlbnRpZmllciIsICJsb2FkUmVzdEpzb25FcnJvckNvZGUiLCAiZXJyb3JTY2hlbWEiLCAiZXJyb3JNZXRhZGF0YSIsICJucyIsICJtZXNzYWdlIiwgIkVycm9yQ3RvciIsICJleGNlcHRpb24iLCAidGFyZ2V0IiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgImF3c0V4cGVjdFVuaW9uIiwgImluaXRfYXdzRXhwZWN0VW5pb24iLCAiX19lc21NaW4iLCAidmFsdWUiLCAicmVxdWlyZV94bWxfcGFyc2VyIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJwYXJzZVhNTCIsICJmYXN0X3htbF9wYXJzZXJfMSIsICJwYXJzZXIiLCAiXyIsICJ2YWwiLCAieG1sU3RyaW5nIiwgInJlcXVpcmVfZGlzdF9janMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgInhtbFBhcnNlciIsICJlc2NhcGVBdHRyaWJ1dGUiLCAidmFsdWUiLCAiZXNjYXBlRWxlbWVudCIsICJYbWxUZXh0IiwgIlhtbE5vZGUiLCAiX1htbE5vZGUiLCAibmFtZSIsICJjaGlsZFRleHQiLCAid2l0aE5hbWUiLCAibm9kZSIsICJjaGlsZHJlbiIsICJjaGlsZCIsICJpbnB1dCIsICJmaWVsZCIsICJsaXN0TmFtZSIsICJtZW1iZXJOYW1lIiwgInZhbHVlUHJvdmlkZXIiLCAibm9kZXMiLCAiY29udGFpbmVyTm9kZSIsICJoYXNDaGlsZHJlbiIsICJ4bWxUZXh0IiwgImF0dHJpYnV0ZXMiLCAiYXR0cmlidXRlTmFtZSIsICJhdHRyaWJ1dGUiLCAiYyIsICJpbXBvcnRfeG1sX2J1aWxkZXIiLCAiaW1wb3J0X3Byb3RvY29scyIsICJpbXBvcnRfc2NoZW1hIiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgImltcG9ydF91dGlsX3V0ZjgiLCAiWG1sU2hhcGVEZXNlcmlhbGl6ZXIiLCAiaW5pdF9YbWxTaGFwZURlc2VyaWFsaXplciIsICJfX2VzbU1pbiIsICJpbml0X0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dCIsICJpbml0X1VuaW9uU2VyZGUiLCAiU2VyZGVDb250ZXh0Q29uZmlnIiwgInNldHRpbmdzIiwgInNlcmRlQ29udGV4dCIsICJzY2hlbWEiLCAiYnl0ZXMiLCAia2V5IiwgIm5zIiwgIm1lbWJlclNjaGVtYXMiLCAibWVtYmVyTnMiLCAib3V0cHV0IiwgIm1lbWJlck5hbWUiLCAieG1sU3RyaW5nIiwgInBhcnNlZE9iamVjdCIsICJfc2NoZW1hIiwgInZhbHVlIiwgInRyYWl0cyIsICJzcGFyc2UiLCAiZmxhdCIsICJsaXN0VmFsdWUiLCAiYnVmZmVyIiwgInNvdXJjZUtleSIsICJzb3VyY2UiLCAic291cmNlQXJyYXkiLCAidiIsICJrZXlOcyIsICJlbnRyaWVzIiwgImtleVByb3BlcnR5IiwgInZhbHVlUHJvcGVydHkiLCAiZW50cnkiLCAidW5pb24iLCAidW5pb25TZXJkZSIsICJVbmlvblNlcmRlIiwgIm1lbWJlclNjaGVtYSIsICJtZW1iZXJUcmFpdHMiLCAieG1sT2JqZWN0S2V5IiwgInhtbCIsICJwYXJzZWRPYmoiLCAiZSIsICJ0ZXh0Tm9kZU5hbWUiLCAicGFyc2VkT2JqVG9SZXR1cm4iLCAiaW1wb3J0X3Byb3RvY29scyIsICJpbXBvcnRfc2NoZW1hIiwgImltcG9ydF9zZXJkZSIsICJpbXBvcnRfc21pdGh5X2NsaWVudCIsICJpbXBvcnRfdXRpbF9iYXNlNjQiLCAiUXVlcnlTaGFwZVNlcmlhbGl6ZXIiLCAiaW5pdF9RdWVyeVNoYXBlU2VyaWFsaXplciIsICJfX2VzbU1pbiIsICJpbml0X0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dCIsICJTZXJkZUNvbnRleHRDb25maWciLCAic2V0dGluZ3MiLCAic2NoZW1hIiwgInZhbHVlIiwgInByZWZpeCIsICJucyIsICJtZW1iZXIiLCAiZmxhdCIsICJpIiwgIml0ZW0iLCAidHJhaXRzIiwgInN1ZmZpeCIsICJrZXkiLCAia2V5U2NoZW1hIiwgIm1lbWJlclNjaGVtYSIsICJrIiwgInYiLCAia2V5VHJhaXRzIiwgImtleVN1ZmZpeCIsICJ2YWxUcmFpdHMiLCAidmFsdWVTdWZmaXgiLCAidmFsdWVLZXkiLCAiZGlkV3JpdGVNZW1iZXIiLCAibWVtYmVyTmFtZSIsICIkdW5rbm93biIsICJzdHIiLCAieG1sTmFtZSIsICJlYzJRdWVyeU5hbWUiLCAia2V5U291cmNlIiwgImVjMiIsICJjYXBpdGFsaXplS2V5cyIsICJpbXBvcnRfcHJvdG9jb2xzIiwgImltcG9ydF9zY2hlbWEiLCAiQXdzUXVlcnlQcm90b2NvbCIsICJpbml0X0F3c1F1ZXJ5UHJvdG9jb2wiLCAiX19lc21NaW4iLCAiaW5pdF9Qcm90b2NvbExpYiIsICJpbml0X1htbFNoYXBlRGVzZXJpYWxpemVyIiwgImluaXRfUXVlcnlTaGFwZVNlcmlhbGl6ZXIiLCAiUHJvdG9jb2xMaWIiLCAib3B0aW9ucyIsICJzZXR0aW5ncyIsICJRdWVyeVNoYXBlU2VyaWFsaXplciIsICJYbWxTaGFwZURlc2VyaWFsaXplciIsICJzZXJkZUNvbnRleHQiLCAib3BlcmF0aW9uU2NoZW1hIiwgImlucHV0IiwgImNvbnRleHQiLCAicmVxdWVzdCIsICJhY3Rpb24iLCAicmVzcG9uc2UiLCAiZGVzZXJpYWxpemVyIiwgIm5zIiwgImRhdGFPYmplY3QiLCAiYnl0ZXMiLCAiaGVhZGVyIiwgInZhbHVlIiwgInNob3J0TmFtZSIsICJhd3NRdWVyeVJlc3VsdEtleSIsICJtZXRhZGF0YSIsICJlcnJvcklkZW50aWZpZXIiLCAiZXJyb3JEYXRhIiwgIm1lc3NhZ2UiLCAiZXJyb3JTY2hlbWEiLCAiZXJyb3JNZXRhZGF0YSIsICJFcnJvckN0b3IiLCAiZXhjZXB0aW9uIiwgIm91dHB1dCIsICJuYW1lIiwgIm1lbWJlciIsICJ0YXJnZXQiLCAiZGF0YSIsICJjb2RlIiwgIkF3c0VjMlF1ZXJ5UHJvdG9jb2wiLCAiaW5pdF9Bd3NFYzJRdWVyeVByb3RvY29sIiwgIl9fZXNtTWluIiwgImluaXRfQXdzUXVlcnlQcm90b2NvbCIsICJBd3NRdWVyeVByb3RvY29sIiwgIm9wdGlvbnMiLCAiZWMyU2V0dGluZ3MiLCAiaW1wb3J0X3htbF9idWlsZGVyIiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgInBhcnNlWG1sQm9keSIsICJwYXJzZVhtbEVycm9yQm9keSIsICJsb2FkUmVzdFhtbEVycm9yQ29kZSIsICJpbml0X3BhcnNlWG1sQm9keSIsICJfX2VzbU1pbiIsICJpbml0X2NvbW1vbiIsICJzdHJlYW1Cb2R5IiwgImNvbnRleHQiLCAiY29sbGVjdEJvZHlTdHJpbmciLCAiZW5jb2RlZCIsICJwYXJzZWRPYmoiLCAiZSIsICJ0ZXh0Tm9kZU5hbWUiLCAia2V5IiwgInBhcnNlZE9ialRvUmV0dXJuIiwgImVycm9yQm9keSIsICJ2YWx1ZSIsICJvdXRwdXQiLCAiZGF0YSIsICJpbXBvcnRfeG1sX2J1aWxkZXIiLCAiaW1wb3J0X3Byb3RvY29scyIsICJpbXBvcnRfc2NoZW1hIiwgImltcG9ydF9zZXJkZSIsICJpbXBvcnRfc21pdGh5X2NsaWVudCIsICJpbXBvcnRfdXRpbF9iYXNlNjQiLCAiWG1sU2hhcGVTZXJpYWxpemVyIiwgImluaXRfWG1sU2hhcGVTZXJpYWxpemVyIiwgIl9fZXNtTWluIiwgImluaXRfQ29uZmlndXJhYmxlU2VyZGVDb250ZXh0IiwgIlNlcmRlQ29udGV4dENvbmZpZyIsICJzZXR0aW5ncyIsICJzY2hlbWEiLCAidmFsdWUiLCAibnMiLCAidHJhaXRzIiwgImJ5dGVzIiwgInN0ciIsICJidWZmZXIiLCAicGFyZW50WG1sbnMiLCAibmFtZSIsICJzdHJ1Y3RYbWxOb2RlIiwgInhtbG5zQXR0ciIsICJ4bWxucyIsICJtZW1iZXJOYW1lIiwgIm1lbWJlclNjaGVtYSIsICJ2YWwiLCAibWVtYmVyTm9kZSIsICIkdW5rbm93biIsICJrIiwgInYiLCAibm9kZSIsICJsaXN0TWVtYmVyIiwgImFycmF5IiwgImNvbnRhaW5lciIsICJsaXN0VHJhaXRzIiwgImxpc3RWYWx1ZVNjaGVtYSIsICJsaXN0VmFsdWVUcmFpdHMiLCAic3BhcnNlIiwgImZsYXQiLCAid3JpdGVJdGVtIiwgInN0cnVjdCIsICJsaXN0SXRlbU5vZGUiLCAibGlzdE5vZGUiLCAibWFwTWVtYmVyIiwgIm1hcCIsICJjb250YWluZXJJc01hcCIsICJtYXBUcmFpdHMiLCAibWFwS2V5U2NoZW1hIiwgImtleVRhZyIsICJtYXBWYWx1ZVNjaGVtYSIsICJtYXBWYWx1ZVRyYWl0cyIsICJ2YWx1ZVRhZyIsICJhZGRLZXlWYWx1ZSIsICJlbnRyeSIsICJrZXkiLCAia2V5Tm9kZSIsICJrZXlYbWxuc0F0dHIiLCAia2V5WG1sbnMiLCAidmFsdWVOb2RlIiwgIm1hcE5vZGUiLCAiX3NjaGVtYSIsICJub2RlQ29udGVudHMiLCAiaW50byIsICJjb250ZW50IiwgInByZWZpeCIsICJYbWxDb2RlYyIsICJpbml0X1htbENvZGVjIiwgIl9fZXNtTWluIiwgImluaXRfQ29uZmlndXJhYmxlU2VyZGVDb250ZXh0IiwgImluaXRfWG1sU2hhcGVEZXNlcmlhbGl6ZXIiLCAiaW5pdF9YbWxTaGFwZVNlcmlhbGl6ZXIiLCAiU2VyZGVDb250ZXh0Q29uZmlnIiwgInNldHRpbmdzIiwgInNlcmlhbGl6ZXIiLCAiWG1sU2hhcGVTZXJpYWxpemVyIiwgImRlc2VyaWFsaXplciIsICJYbWxTaGFwZURlc2VyaWFsaXplciIsICJpbXBvcnRfcHJvdG9jb2xzIiwgImltcG9ydF9zY2hlbWEiLCAiQXdzUmVzdFhtbFByb3RvY29sIiwgImluaXRfQXdzUmVzdFhtbFByb3RvY29sIiwgIl9fZXNtTWluIiwgImluaXRfUHJvdG9jb2xMaWIiLCAiaW5pdF9wYXJzZVhtbEJvZHkiLCAiaW5pdF9YbWxDb2RlYyIsICJQcm90b2NvbExpYiIsICJvcHRpb25zIiwgInNldHRpbmdzIiwgIlhtbENvZGVjIiwgIm9wZXJhdGlvblNjaGVtYSIsICJpbnB1dCIsICJjb250ZXh0IiwgInJlcXVlc3QiLCAiaW5wdXRTY2hlbWEiLCAiY29udGVudFR5cGUiLCAicmVzcG9uc2UiLCAiZGF0YU9iamVjdCIsICJtZXRhZGF0YSIsICJlcnJvcklkZW50aWZpZXIiLCAibG9hZFJlc3RYbWxFcnJvckNvZGUiLCAia2V5IiwgImVycm9yU2NoZW1hIiwgImVycm9yTWV0YWRhdGEiLCAibnMiLCAibWVzc2FnZSIsICJFcnJvckN0b3IiLCAiZXhjZXB0aW9uIiwgIm91dHB1dCIsICJuYW1lIiwgIm1lbWJlciIsICJ0YXJnZXQiLCAidmFsdWUiLCAicHJvdG9jb2xzX2V4cG9ydHMiLCAiX19leHBvcnQiLCAiQXdzRWMyUXVlcnlQcm90b2NvbCIsICJBd3NKc29uMV8wUHJvdG9jb2wiLCAiQXdzSnNvbjFfMVByb3RvY29sIiwgIkF3c0pzb25ScGNQcm90b2NvbCIsICJBd3NRdWVyeVByb3RvY29sIiwgIkF3c1Jlc3RKc29uUHJvdG9jb2wiLCAiQXdzUmVzdFhtbFByb3RvY29sIiwgIkF3c1NtaXRoeVJwY1YyQ2JvclByb3RvY29sIiwgIkpzb25Db2RlYyIsICJKc29uU2hhcGVEZXNlcmlhbGl6ZXIiLCAiSnNvblNoYXBlU2VyaWFsaXplciIsICJYbWxDb2RlYyIsICJYbWxTaGFwZURlc2VyaWFsaXplciIsICJYbWxTaGFwZVNlcmlhbGl6ZXIiLCAiX3RvQm9vbCIsICJfdG9OdW0iLCAiX3RvU3RyIiwgImF3c0V4cGVjdFVuaW9uIiwgImxvYWRSZXN0SnNvbkVycm9yQ29kZSIsICJsb2FkUmVzdFhtbEVycm9yQ29kZSIsICJwYXJzZUpzb25Cb2R5IiwgInBhcnNlSnNvbkVycm9yQm9keSIsICJwYXJzZVhtbEJvZHkiLCAicGFyc2VYbWxFcnJvckJvZHkiLCAiaW5pdF9wcm90b2NvbHMiLCAiX19lc21NaW4iLCAiaW5pdF9Bd3NTbWl0aHlScGNWMkNib3JQcm90b2NvbCIsICJpbml0X2NvZXJjaW5nX3NlcmlhbGl6ZXJzIiwgImluaXRfQXdzSnNvbjFfMFByb3RvY29sIiwgImluaXRfQXdzSnNvbjFfMVByb3RvY29sIiwgImluaXRfQXdzSnNvblJwY1Byb3RvY29sIiwgImluaXRfQXdzUmVzdEpzb25Qcm90b2NvbCIsICJpbml0X0pzb25Db2RlYyIsICJpbml0X0pzb25TaGFwZURlc2VyaWFsaXplciIsICJpbml0X0pzb25TaGFwZVNlcmlhbGl6ZXIiLCAiaW5pdF9hd3NFeHBlY3RVbmlvbiIsICJpbml0X3BhcnNlSnNvbkJvZHkiLCAiaW5pdF9Bd3NFYzJRdWVyeVByb3RvY29sIiwgImluaXRfQXdzUXVlcnlQcm90b2NvbCIsICJpbml0X0F3c1Jlc3RYbWxQcm90b2NvbCIsICJpbml0X1htbENvZGVjIiwgImluaXRfWG1sU2hhcGVEZXNlcmlhbGl6ZXIiLCAiaW5pdF9YbWxTaGFwZVNlcmlhbGl6ZXIiLCAiaW5pdF9wYXJzZVhtbEJvZHkiLCAiZGlzdF9lc19leHBvcnRzIiwgIl9fZXhwb3J0IiwgIkFXU1NES1NpZ1Y0U2lnbmVyIiwgIkF3c0VjMlF1ZXJ5UHJvdG9jb2wiLCAiQXdzSnNvbjFfMFByb3RvY29sIiwgIkF3c0pzb24xXzFQcm90b2NvbCIsICJBd3NKc29uUnBjUHJvdG9jb2wiLCAiQXdzUXVlcnlQcm90b2NvbCIsICJBd3NSZXN0SnNvblByb3RvY29sIiwgIkF3c1Jlc3RYbWxQcm90b2NvbCIsICJBd3NTZGtTaWdWNEFTaWduZXIiLCAiQXdzU2RrU2lnVjRTaWduZXIiLCAiQXdzU21pdGh5UnBjVjJDYm9yUHJvdG9jb2wiLCAiSnNvbkNvZGVjIiwgIkpzb25TaGFwZURlc2VyaWFsaXplciIsICJKc29uU2hhcGVTZXJpYWxpemVyIiwgIk5PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9PUFRJT05TIiwgIk5PREVfU0lHVjRBX0NPTkZJR19PUFRJT05TIiwgIlhtbENvZGVjIiwgIlhtbFNoYXBlRGVzZXJpYWxpemVyIiwgIlhtbFNoYXBlU2VyaWFsaXplciIsICJfdG9Cb29sIiwgIl90b051bSIsICJfdG9TdHIiLCAiYXdzRXhwZWN0VW5pb24iLCAiZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbiIsICJnZXRCZWFyZXJUb2tlbkVudktleSIsICJsb2FkUmVzdEpzb25FcnJvckNvZGUiLCAibG9hZFJlc3RYbWxFcnJvckNvZGUiLCAicGFyc2VKc29uQm9keSIsICJwYXJzZUpzb25FcnJvckJvZHkiLCAicGFyc2VYbWxCb2R5IiwgInBhcnNlWG1sRXJyb3JCb2R5IiwgInJlc29sdmVBV1NTREtTaWdWNENvbmZpZyIsICJyZXNvbHZlQXdzU2RrU2lnVjRBQ29uZmlnIiwgInJlc29sdmVBd3NTZGtTaWdWNENvbmZpZyIsICJzZXRDcmVkZW50aWFsRmVhdHVyZSIsICJzZXRGZWF0dXJlIiwgInNldFRva2VuRmVhdHVyZSIsICJzdGF0ZSIsICJ2YWxpZGF0ZVNpZ25pbmdQcm9wZXJ0aWVzIiwgImluaXRfZGlzdF9lcyIsICJfX2VzbU1pbiIsICJpbml0X2NsaWVudCIsICJpbml0X2h0dHBBdXRoU2NoZW1lcyIsICJpbml0X3Byb3RvY29scyIsICJyZXF1aXJlX2Rpc3RfY2pzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJjb3JlIiwgInV0aWxFbmRwb2ludHMiLCAicHJvdG9jb2xIdHRwIiwgImNvcmUkMSIsICJERUZBVUxUX1VBX0FQUF9JRCIsICJpc1ZhbGlkVXNlckFnZW50QXBwSWQiLCAiYXBwSWQiLCAicmVzb2x2ZVVzZXJBZ2VudENvbmZpZyIsICJpbnB1dCIsICJub3JtYWxpemVkQXBwSWRQcm92aWRlciIsICJjdXN0b21Vc2VyQWdlbnQiLCAibG9nZ2VyIiwgIkFDQ09VTlRfSURfRU5EUE9JTlRfUkVHRVgiLCAiY2hlY2tGZWF0dXJlcyIsICJjb250ZXh0IiwgImNvbmZpZyIsICJhcmdzIiwgInJldHJ5U3RyYXRlZ3kiLCAiZW5kcG9pbnRWMiIsICJpZGVudGl0eSIsICJjcmVkZW50aWFscyIsICJrZXkiLCAidmFsdWUiLCAiVVNFUl9BR0VOVCIsICJYX0FNWl9VU0VSX0FHRU5UIiwgIlNQQUNFIiwgIlVBX05BTUVfU0VQQVJBVE9SIiwgIlVBX05BTUVfRVNDQVBFX1JFR0VYIiwgIlVBX1ZBTFVFX0VTQ0FQRV9SRUdFWCIsICJVQV9FU0NBUEVfQ0hBUiIsICJCWVRFX0xJTUlUIiwgImVuY29kZUZlYXR1cmVzIiwgImZlYXR1cmVzIiwgImJ1ZmZlciIsICJ2YWwiLCAidXNlckFnZW50TWlkZGxld2FyZSIsICJvcHRpb25zIiwgIm5leHQiLCAicmVxdWVzdCIsICJoZWFkZXJzIiwgInVzZXJBZ2VudCIsICJlc2NhcGVVc2VyQWdlbnQiLCAiZGVmYXVsdFVzZXJBZ2VudCIsICJhd3NDb250ZXh0IiwgInByZWZpeCIsICJzZGtVc2VyQWdlbnRWYWx1ZSIsICJub3JtYWxVQVZhbHVlIiwgInNlY3Rpb24iLCAidXNlckFnZW50UGFpciIsICJuYW1lIiwgInBhcnQiLCAidmVyc2lvbiIsICJwcmVmaXhTZXBhcmF0b3JJbmRleCIsICJ1YU5hbWUiLCAiaXRlbSIsICJhY2MiLCAiaW5kZXgiLCAiZ2V0VXNlckFnZW50TWlkZGxld2FyZU9wdGlvbnMiLCAiZ2V0VXNlckFnZW50UGx1Z2luIiwgImNsaWVudFN0YWNrIiwgInJlcXVpcmVfaHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAiY29yZV8xIiwgInV0aWxfbWlkZGxld2FyZV8xIiwgImRlZmF1bHREeW5hbW9EQkh0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyIiwgImNvbmZpZyIsICJjb250ZXh0IiwgImlucHV0IiwgImNyZWF0ZUF3c0F1dGhTaWd2NEh0dHBBdXRoT3B0aW9uIiwgImF1dGhQYXJhbWV0ZXJzIiwgImRlZmF1bHREeW5hbW9EQkh0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAib3B0aW9ucyIsICJyZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWciLCAiY29uZmlnXzAiLCAicmVxdWlyZV9wYWNrYWdlIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAicmVxdWlyZV9kaXN0X2NqcyIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAiY2xpZW50IiwgInByb3BlcnR5UHJvdmlkZXIiLCAiRU5WX0tFWSIsICJFTlZfU0VDUkVUIiwgIkVOVl9TRVNTSU9OIiwgIkVOVl9FWFBJUkFUSU9OIiwgIkVOVl9DUkVERU5USUFMX1NDT1BFIiwgIkVOVl9BQ0NPVU5UX0lEIiwgImZyb21FbnYiLCAiaW5pdCIsICJhY2Nlc3NLZXlJZCIsICJzZWNyZXRBY2Nlc3NLZXkiLCAic2Vzc2lvblRva2VuIiwgImV4cGlyeSIsICJjcmVkZW50aWFsU2NvcGUiLCAiYWNjb3VudElkIiwgImNyZWRlbnRpYWxzIiwgInJlcXVpcmVfY2hlY2tVcmwiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgInByb3BlcnR5X3Byb3ZpZGVyXzEiLCAiRUNTX0NPTlRBSU5FUl9IT1NUIiwgIkVLU19DT05UQUlORVJfSE9TVF9JUHY0IiwgIkVLU19DT05UQUlORVJfSE9TVF9JUHY2IiwgImNoZWNrVXJsIiwgInVybCIsICJsb2dnZXIiLCAiaXBDb21wb25lbnRzIiwgImluUmFuZ2UiLCAiY29tcG9uZW50IiwgIm51bSIsICJyZXF1aXJlX3JlcXVlc3RIZWxwZXJzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJjcmVhdGVHZXRSZXF1ZXN0IiwgImdldENyZWRlbnRpYWxzIiwgInByb3BlcnR5X3Byb3ZpZGVyXzEiLCAicHJvdG9jb2xfaHR0cF8xIiwgInNtaXRoeV9jbGllbnRfMSIsICJ1dGlsX3N0cmVhbV8xIiwgInVybCIsICJhY2MiLCAiayIsICJ2IiwgInJlc3BvbnNlIiwgImxvZ2dlciIsICJzdHIiLCAicGFyc2VkIiwgInBhcnNlZEJvZHkiLCAicmVxdWlyZV9yZXRyeV93cmFwcGVyIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJyZXRyeVdyYXBwZXIiLCAidG9SZXRyeSIsICJtYXhSZXRyaWVzIiwgImRlbGF5TXMiLCAiaSIsICJyZXNvbHZlIiwgInJlcXVpcmVfZnJvbUh0dHAiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgInRzbGliXzEiLCAiY2xpZW50XzEiLCAibm9kZV9odHRwX2hhbmRsZXJfMSIsICJwcm9wZXJ0eV9wcm92aWRlcl8xIiwgInByb21pc2VzXzEiLCAiY2hlY2tVcmxfMSIsICJyZXF1ZXN0SGVscGVyc18xIiwgInJldHJ5X3dyYXBwZXJfMSIsICJBV1NfQ09OVEFJTkVSX0NSRURFTlRJQUxTX1JFTEFUSVZFX1VSSSIsICJERUZBVUxUX0xJTktfTE9DQUxfSE9TVCIsICJBV1NfQ09OVEFJTkVSX0NSRURFTlRJQUxTX0ZVTExfVVJJIiwgIkFXU19DT05UQUlORVJfQVVUSE9SSVpBVElPTl9UT0tFTl9GSUxFIiwgIkFXU19DT05UQUlORVJfQVVUSE9SSVpBVElPTl9UT0tFTiIsICJmcm9tSHR0cCIsICJvcHRpb25zIiwgImhvc3QiLCAicmVsYXRpdmUiLCAiZnVsbCIsICJ0b2tlbiIsICJ0b2tlbkZpbGUiLCAid2FybiIsICJ1cmwiLCAicmVxdWVzdEhhbmRsZXIiLCAicmVxdWVzdCIsICJyZXN1bHQiLCAiY3JlZHMiLCAiZSIsICJyZXF1aXJlX2Rpc3RfY2pzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJmcm9tSHR0cF8xIiwgImNyZWF0ZUF3c0F1dGhTaWd2NEh0dHBBdXRoT3B0aW9uIiwgImF1dGhQYXJhbWV0ZXJzIiwgImNvbmZpZyIsICJjb250ZXh0IiwgImNyZWF0ZVNtaXRoeUFwaU5vQXV0aEh0dHBBdXRoT3B0aW9uIiwgImltcG9ydF91dGlsX21pZGRsZXdhcmUiLCAiZGVmYXVsdFNTT09JRENIdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlciIsICJkZWZhdWx0U1NPT0lEQ0h0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAicmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnIiwgImluaXRfaHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJfX2VzbU1pbiIsICJpbml0X2Rpc3RfZXMiLCAiaW5wdXQiLCAib3B0aW9ucyIsICJjb25maWdfMCIsICJyZXNvbHZlQXdzU2RrU2lnVjRDb25maWciLCAicmVzb2x2ZUNsaWVudEVuZHBvaW50UGFyYW1ldGVycyIsICJjb21tb25QYXJhbXMiLCAiaW5pdF9FbmRwb2ludFBhcmFtZXRlcnMiLCAiX19lc21NaW4iLCAib3B0aW9ucyIsICJwYWNrYWdlX2RlZmF1bHQiLCAiaW5pdF9wYWNrYWdlIiwgIl9fZXNtTWluIiwgInJlcXVpcmVfZGlzdF9janMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgIm9zIiwgInByb2Nlc3MiLCAibWlkZGxld2FyZVVzZXJBZ2VudCIsICJnZXRSdW50aW1lVXNlckFnZW50UGFpciIsICJydW50aW1lc1RvQ2hlY2siLCAicnVudGltZSIsICJjcnRBdmFpbGFiaWxpdHkiLCAiaXNDcnRBdmFpbGFibGUiLCAiY3JlYXRlRGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyIiwgInNlcnZpY2VJZCIsICJjbGllbnRWZXJzaW9uIiwgInJ1bnRpbWVVc2VyQWdlbnRQYWlyIiwgImNvbmZpZyIsICJzZWN0aW9ucyIsICJjcnRBdmFpbGFibGUiLCAiYXBwSWQiLCAiZGVmYXVsdFVzZXJBZ2VudCIsICJVQV9BUFBfSURfRU5WX05BTUUiLCAiVUFfQVBQX0lEX0lOSV9OQU1FIiwgIlVBX0FQUF9JRF9JTklfTkFNRV9ERVBSRUNBVEVEIiwgIk5PREVfQVBQX0lEX0NPTkZJR19PUFRJT05TIiwgImVudiIsICJwcm9maWxlIiwgInJlcXVpcmVfZGlzdF9janMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgInV0aWxFbmRwb2ludHMiLCAidXJsUGFyc2VyIiwgImlzVmlydHVhbEhvc3RhYmxlUzNCdWNrZXQiLCAidmFsdWUiLCAiYWxsb3dTdWJEb21haW5zIiwgImxhYmVsIiwgIkFSTl9ERUxJTUlURVIiLCAiUkVTT1VSQ0VfREVMSU1JVEVSIiwgInBhcnNlQXJuIiwgInNlZ21lbnRzIiwgImFybiIsICJwYXJ0aXRpb24iLCAic2VydmljZSIsICJyZWdpb24iLCAiYWNjb3VudElkIiwgInJlc291cmNlUGF0aCIsICJyZXNvdXJjZUlkIiwgInJlc291cmNlIiwgInBhcnRpdGlvbnMiLCAidmVyc2lvbiIsICJwYXJ0aXRpb25zSW5mbyIsICJzZWxlY3RlZFBhcnRpdGlvbnNJbmZvIiwgInNlbGVjdGVkVXNlckFnZW50UHJlZml4IiwgInJlZ2lvbnMiLCAib3V0cHV0cyIsICJyZWdpb25EYXRhIiwgInJlZ2lvblJlZ2V4IiwgIkRFRkFVTFRfUEFSVElUSU9OIiwgInNldFBhcnRpdGlvbkluZm8iLCAidXNlckFnZW50UHJlZml4IiwgInVzZURlZmF1bHRQYXJ0aXRpb25JbmZvIiwgImdldFVzZXJBZ2VudFByZWZpeCIsICJhd3NFbmRwb2ludEZ1bmN0aW9ucyIsICJyZXNvbHZlRGVmYXVsdEF3c1JlZ2lvbmFsRW5kcG9pbnRzQ29uZmlnIiwgImlucHV0IiwgImVuZHBvaW50IiwgInRvRW5kcG9pbnRWMSIsICJ1IiwgInYiLCAidyIsICJ4IiwgImIiLCAiYyIsICJkIiwgImUiLCAiZiIsICJnIiwgImgiLCAiaSIsICJqIiwgImsiLCAibCIsICJtIiwgIm4iLCAibyIsICJwIiwgInEiLCAiciIsICJzIiwgInQiLCAiX2RhdGEiLCAicnVsZVNldCIsICJpbml0X3J1bGVzZXQiLCAiX19lc21NaW4iLCAiaW1wb3J0X3V0aWxfZW5kcG9pbnRzIiwgImNhY2hlIiwgImRlZmF1bHRFbmRwb2ludFJlc29sdmVyIiwgImluaXRfZW5kcG9pbnRSZXNvbHZlciIsICJfX2VzbU1pbiIsICJpbml0X3J1bGVzZXQiLCAiZW5kcG9pbnRQYXJhbXMiLCAiY29udGV4dCIsICJydWxlU2V0IiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgIlNTT09JRENTZXJ2aWNlRXhjZXB0aW9uIiwgImluaXRfU1NPT0lEQ1NlcnZpY2VFeGNlcHRpb24iLCAiX19lc21NaW4iLCAiX1NTT09JRENTZXJ2aWNlRXhjZXB0aW9uIiwgIl9fU2VydmljZUV4Y2VwdGlvbiIsICJvcHRpb25zIiwgIkFjY2Vzc0RlbmllZEV4Y2VwdGlvbiIsICJBdXRob3JpemF0aW9uUGVuZGluZ0V4Y2VwdGlvbiIsICJFeHBpcmVkVG9rZW5FeGNlcHRpb24iLCAiSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb24iLCAiSW52YWxpZENsaWVudEV4Y2VwdGlvbiIsICJJbnZhbGlkR3JhbnRFeGNlcHRpb24iLCAiSW52YWxpZFJlcXVlc3RFeGNlcHRpb24iLCAiSW52YWxpZFNjb3BlRXhjZXB0aW9uIiwgIlNsb3dEb3duRXhjZXB0aW9uIiwgIlVuYXV0aG9yaXplZENsaWVudEV4Y2VwdGlvbiIsICJVbnN1cHBvcnRlZEdyYW50VHlwZUV4Y2VwdGlvbiIsICJpbml0X2Vycm9ycyIsICJfX2VzbU1pbiIsICJpbml0X1NTT09JRENTZXJ2aWNlRXhjZXB0aW9uIiwgIl9BY2Nlc3NEZW5pZWRFeGNlcHRpb24iLCAiU1NPT0lEQ1NlcnZpY2VFeGNlcHRpb24iLCAib3B0cyIsICJfQXV0aG9yaXphdGlvblBlbmRpbmdFeGNlcHRpb24iLCAiX0V4cGlyZWRUb2tlbkV4Y2VwdGlvbiIsICJfSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb24iLCAiX0ludmFsaWRDbGllbnRFeGNlcHRpb24iLCAiX0ludmFsaWRHcmFudEV4Y2VwdGlvbiIsICJfSW52YWxpZFJlcXVlc3RFeGNlcHRpb24iLCAiX0ludmFsaWRTY29wZUV4Y2VwdGlvbiIsICJfU2xvd0Rvd25FeGNlcHRpb24iLCAiX1VuYXV0aG9yaXplZENsaWVudEV4Y2VwdGlvbiIsICJfVW5zdXBwb3J0ZWRHcmFudFR5cGVFeGNlcHRpb24iLCAiaW1wb3J0X3NjaGVtYSIsICJfQURFIiwgIl9BUEUiLCAiX0FUIiwgIl9DUyIsICJfQ1QiLCAiX0NUUiIsICJfQ1RSciIsICJfQ1YiLCAiX0VURSIsICJfSUNFIiwgIl9JR0UiLCAiX0lSRSIsICJfSVNFIiwgIl9JU0VuIiwgIl9JVCIsICJfUlQiLCAiX1NERSIsICJfVUNFIiwgIl9VR1RFIiwgIl9hVCIsICJfYyIsICJfY0kiLCAiX2NTIiwgIl9jViIsICJfY28iLCAiX2RDIiwgIl9lIiwgIl9lSSIsICJfZWQiLCAiX2dUIiwgIl9oIiwgIl9oRSIsICJfaVQiLCAiX3IiLCAiX3JUIiwgIl9yVSIsICJfcyIsICJfc2MiLCAiX3NlIiwgIl90VCIsICJuMCIsICJfc19yZWdpc3RyeSIsICJTU09PSURDU2VydmljZUV4Y2VwdGlvbiQiLCAibjBfcmVnaXN0cnkiLCAiQWNjZXNzRGVuaWVkRXhjZXB0aW9uJCIsICJBdXRob3JpemF0aW9uUGVuZGluZ0V4Y2VwdGlvbiQiLCAiRXhwaXJlZFRva2VuRXhjZXB0aW9uJCIsICJJbnRlcm5hbFNlcnZlckV4Y2VwdGlvbiQiLCAiSW52YWxpZENsaWVudEV4Y2VwdGlvbiQiLCAiSW52YWxpZEdyYW50RXhjZXB0aW9uJCIsICJJbnZhbGlkUmVxdWVzdEV4Y2VwdGlvbiQiLCAiSW52YWxpZFNjb3BlRXhjZXB0aW9uJCIsICJTbG93RG93bkV4Y2VwdGlvbiQiLCAiVW5hdXRob3JpemVkQ2xpZW50RXhjZXB0aW9uJCIsICJVbnN1cHBvcnRlZEdyYW50VHlwZUV4Y2VwdGlvbiQiLCAiZXJyb3JUeXBlUmVnaXN0cmllcyIsICJBY2Nlc3NUb2tlbiIsICJDbGllbnRTZWNyZXQiLCAiQ29kZVZlcmlmaWVyIiwgIklkVG9rZW4iLCAiUmVmcmVzaFRva2VuIiwgIkNyZWF0ZVRva2VuUmVxdWVzdCQiLCAiQ3JlYXRlVG9rZW5SZXNwb25zZSQiLCAiQ3JlYXRlVG9rZW4kIiwgImluaXRfc2NoZW1hc18wIiwgIl9fZXNtTWluIiwgImluaXRfZXJyb3JzIiwgImluaXRfU1NPT0lEQ1NlcnZpY2VFeGNlcHRpb24iLCAiU1NPT0lEQ1NlcnZpY2VFeGNlcHRpb24iLCAiQWNjZXNzRGVuaWVkRXhjZXB0aW9uIiwgIkF1dGhvcml6YXRpb25QZW5kaW5nRXhjZXB0aW9uIiwgIkV4cGlyZWRUb2tlbkV4Y2VwdGlvbiIsICJJbnRlcm5hbFNlcnZlckV4Y2VwdGlvbiIsICJJbnZhbGlkQ2xpZW50RXhjZXB0aW9uIiwgIkludmFsaWRHcmFudEV4Y2VwdGlvbiIsICJJbnZhbGlkUmVxdWVzdEV4Y2VwdGlvbiIsICJJbnZhbGlkU2NvcGVFeGNlcHRpb24iLCAiU2xvd0Rvd25FeGNlcHRpb24iLCAiVW5hdXRob3JpemVkQ2xpZW50RXhjZXB0aW9uIiwgIlVuc3VwcG9ydGVkR3JhbnRUeXBlRXhjZXB0aW9uIiwgImltcG9ydF9jb3JlIiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgImltcG9ydF91cmxfcGFyc2VyIiwgImltcG9ydF91dGlsX2Jhc2U2NCIsICJpbXBvcnRfdXRpbF91dGY4IiwgImdldFJ1bnRpbWVDb25maWciLCAiaW5pdF9ydW50aW1lQ29uZmlnX3NoYXJlZCIsICJfX2VzbU1pbiIsICJpbml0X2Rpc3RfZXMiLCAiaW5pdF9wcm90b2NvbHMiLCAiaW5pdF9odHRwQXV0aFNjaGVtZVByb3ZpZGVyIiwgImluaXRfZW5kcG9pbnRSZXNvbHZlciIsICJpbml0X3NjaGVtYXNfMCIsICJjb25maWciLCAiZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIiLCAiZGVmYXVsdFNTT09JRENIdHRwQXV0aFNjaGVtZVByb3ZpZGVyIiwgImlwYyIsICJBd3NTZGtTaWdWNFNpZ25lciIsICJBd3NSZXN0SnNvblByb3RvY29sIiwgImVycm9yVHlwZVJlZ2lzdHJpZXMiLCAiaW1wb3J0X3V0aWxfdXNlcl9hZ2VudF9ub2RlIiwgImltcG9ydF9jb25maWdfcmVzb2x2ZXIiLCAiaW1wb3J0X2hhc2hfbm9kZSIsICJpbXBvcnRfbWlkZGxld2FyZV9yZXRyeSIsICJpbXBvcnRfbm9kZV9jb25maWdfcHJvdmlkZXIiLCAiaW1wb3J0X25vZGVfaHR0cF9oYW5kbGVyIiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgImltcG9ydF91dGlsX2JvZHlfbGVuZ3RoX25vZGUiLCAiaW1wb3J0X3V0aWxfZGVmYXVsdHNfbW9kZV9ub2RlIiwgImltcG9ydF91dGlsX3JldHJ5IiwgImdldFJ1bnRpbWVDb25maWciLCAiaW5pdF9ydW50aW1lQ29uZmlnIiwgIl9fZXNtTWluIiwgImluaXRfcGFja2FnZSIsICJpbml0X2Rpc3RfZXMiLCAiaW5pdF9ydW50aW1lQ29uZmlnX3NoYXJlZCIsICJjb25maWciLCAiZGVmYXVsdHNNb2RlIiwgImRlZmF1bHRDb25maWdQcm92aWRlciIsICJjbGllbnRTaGFyZWRWYWx1ZXMiLCAiZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbiIsICJsb2FkZXJDb25maWciLCAibG9hZE5vZGVDb25maWciLCAiTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX09QVElPTlMiLCAicGFja2FnZV9kZWZhdWx0IiwgIlJlcXVlc3RIYW5kbGVyIiwgInJlcXVpcmVfc3RzUmVnaW9uRGVmYXVsdFJlc29sdmVyIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJzdHNSZWdpb25EZWZhdWx0UmVzb2x2ZXIiLCAiY29uZmlnX3Jlc29sdmVyXzEiLCAibm9kZV9jb25maWdfcHJvdmlkZXJfMSIsICJsb2FkZXJDb25maWciLCAicmVxdWlyZV9kaXN0X2NqcyIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAic3RzUmVnaW9uRGVmYXVsdFJlc29sdmVyIiwgImNvbmZpZ1Jlc29sdmVyIiwgImdldEF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24iLCAicnVudGltZUNvbmZpZyIsICJyZWdpb24iLCAicmVzb2x2ZUF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24iLCAiYXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiIsICJrIiwgImdldEh0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiIsICJyZXNvbHZlSHR0cEF1dGhSdW50aW1lQ29uZmlnIiwgImluaXRfaHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uIiwgIl9fZXNtTWluIiwgInJ1bnRpbWVDb25maWciLCAiX2h0dHBBdXRoU2NoZW1lcyIsICJfaHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJfY3JlZGVudGlhbHMiLCAiaHR0cEF1dGhTY2hlbWUiLCAiaW5kZXgiLCAic2NoZW1lIiwgImh0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAiY3JlZGVudGlhbHMiLCAiY29uZmlnIiwgImltcG9ydF9yZWdpb25fY29uZmlnX3Jlc29sdmVyIiwgImltcG9ydF9wcm90b2NvbF9odHRwIiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgInJlc29sdmVSdW50aW1lRXh0ZW5zaW9ucyIsICJpbml0X3J1bnRpbWVFeHRlbnNpb25zIiwgIl9fZXNtTWluIiwgImluaXRfaHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uIiwgInJ1bnRpbWVDb25maWciLCAiZXh0ZW5zaW9ucyIsICJleHRlbnNpb25Db25maWd1cmF0aW9uIiwgImdldEh0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiIsICJleHRlbnNpb24iLCAicmVzb2x2ZUh0dHBBdXRoUnVudGltZUNvbmZpZyIsICJpbXBvcnRfbWlkZGxld2FyZV9ob3N0X2hlYWRlciIsICJpbXBvcnRfbWlkZGxld2FyZV9sb2dnZXIiLCAiaW1wb3J0X21pZGRsZXdhcmVfcmVjdXJzaW9uX2RldGVjdGlvbiIsICJpbXBvcnRfbWlkZGxld2FyZV91c2VyX2FnZW50IiwgImltcG9ydF9jb25maWdfcmVzb2x2ZXIiLCAiaW1wb3J0X2NvcmUiLCAiaW1wb3J0X3NjaGVtYSIsICJpbXBvcnRfbWlkZGxld2FyZV9jb250ZW50X2xlbmd0aCIsICJpbXBvcnRfbWlkZGxld2FyZV9lbmRwb2ludCIsICJpbXBvcnRfbWlkZGxld2FyZV9yZXRyeSIsICJpbXBvcnRfc21pdGh5X2NsaWVudCIsICJTU09PSURDQ2xpZW50IiwgImluaXRfU1NPT0lEQ0NsaWVudCIsICJfX2VzbU1pbiIsICJpbml0X2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAiaW5pdF9FbmRwb2ludFBhcmFtZXRlcnMiLCAiaW5pdF9ydW50aW1lQ29uZmlnIiwgImluaXRfcnVudGltZUV4dGVuc2lvbnMiLCAiX19DbGllbnQiLCAiY29uZmlndXJhdGlvbiIsICJfY29uZmlnXzAiLCAiZ2V0UnVudGltZUNvbmZpZyIsICJfY29uZmlnXzEiLCAicmVzb2x2ZUNsaWVudEVuZHBvaW50UGFyYW1ldGVycyIsICJfY29uZmlnXzIiLCAiX2NvbmZpZ18zIiwgIl9jb25maWdfNCIsICJfY29uZmlnXzUiLCAiX2NvbmZpZ182IiwgIl9jb25maWdfNyIsICJyZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWciLCAiX2NvbmZpZ184IiwgInJlc29sdmVSdW50aW1lRXh0ZW5zaW9ucyIsICJkZWZhdWx0U1NPT0lEQ0h0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyIiwgImNvbmZpZyIsICJpbXBvcnRfbWlkZGxld2FyZV9lbmRwb2ludCIsICJpbXBvcnRfc21pdGh5X2NsaWVudCIsICJDcmVhdGVUb2tlbkNvbW1hbmQiLCAiaW5pdF9DcmVhdGVUb2tlbkNvbW1hbmQiLCAiX19lc21NaW4iLCAiaW5pdF9FbmRwb2ludFBhcmFtZXRlcnMiLCAiaW5pdF9zY2hlbWFzXzAiLCAiJENvbW1hbmQiLCAiY29tbW9uUGFyYW1zIiwgIkNvbW1hbmQiLCAiY3MiLCAiY29uZmlnIiwgIm8iLCAiQ3JlYXRlVG9rZW4kIiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgImNvbW1hbmRzIiwgIlNTT09JREMiLCAiaW5pdF9TU09PSURDIiwgIl9fZXNtTWluIiwgImluaXRfQ3JlYXRlVG9rZW5Db21tYW5kIiwgImluaXRfU1NPT0lEQ0NsaWVudCIsICJDcmVhdGVUb2tlbkNvbW1hbmQiLCAiU1NPT0lEQ0NsaWVudCIsICJpbml0X2NvbW1hbmRzIiwgIl9fZXNtTWluIiwgImluaXRfQ3JlYXRlVG9rZW5Db21tYW5kIiwgIkFjY2Vzc0RlbmllZEV4Y2VwdGlvblJlYXNvbiIsICJJbnZhbGlkUmVxdWVzdEV4Y2VwdGlvblJlYXNvbiIsICJpbml0X2VudW1zIiwgIl9fZXNtTWluIiwgImluaXRfbW9kZWxzXzAiLCAiX19lc21NaW4iLCAic3NvX29pZGNfZXhwb3J0cyIsICJfX2V4cG9ydCIsICIkQ29tbWFuZCIsICJBY2Nlc3NEZW5pZWRFeGNlcHRpb24iLCAiQWNjZXNzRGVuaWVkRXhjZXB0aW9uJCIsICJBY2Nlc3NEZW5pZWRFeGNlcHRpb25SZWFzb24iLCAiQXV0aG9yaXphdGlvblBlbmRpbmdFeGNlcHRpb24iLCAiQXV0aG9yaXphdGlvblBlbmRpbmdFeGNlcHRpb24kIiwgIkNyZWF0ZVRva2VuJCIsICJDcmVhdGVUb2tlbkNvbW1hbmQiLCAiQ3JlYXRlVG9rZW5SZXF1ZXN0JCIsICJDcmVhdGVUb2tlblJlc3BvbnNlJCIsICJFeHBpcmVkVG9rZW5FeGNlcHRpb24iLCAiRXhwaXJlZFRva2VuRXhjZXB0aW9uJCIsICJJbnRlcm5hbFNlcnZlckV4Y2VwdGlvbiIsICJJbnRlcm5hbFNlcnZlckV4Y2VwdGlvbiQiLCAiSW52YWxpZENsaWVudEV4Y2VwdGlvbiIsICJJbnZhbGlkQ2xpZW50RXhjZXB0aW9uJCIsICJJbnZhbGlkR3JhbnRFeGNlcHRpb24iLCAiSW52YWxpZEdyYW50RXhjZXB0aW9uJCIsICJJbnZhbGlkUmVxdWVzdEV4Y2VwdGlvbiIsICJJbnZhbGlkUmVxdWVzdEV4Y2VwdGlvbiQiLCAiSW52YWxpZFJlcXVlc3RFeGNlcHRpb25SZWFzb24iLCAiSW52YWxpZFNjb3BlRXhjZXB0aW9uIiwgIkludmFsaWRTY29wZUV4Y2VwdGlvbiQiLCAiU1NPT0lEQyIsICJTU09PSURDQ2xpZW50IiwgIlNTT09JRENTZXJ2aWNlRXhjZXB0aW9uIiwgIlNTT09JRENTZXJ2aWNlRXhjZXB0aW9uJCIsICJTbG93RG93bkV4Y2VwdGlvbiIsICJTbG93RG93bkV4Y2VwdGlvbiQiLCAiVW5hdXRob3JpemVkQ2xpZW50RXhjZXB0aW9uIiwgIlVuYXV0aG9yaXplZENsaWVudEV4Y2VwdGlvbiQiLCAiVW5zdXBwb3J0ZWRHcmFudFR5cGVFeGNlcHRpb24iLCAiVW5zdXBwb3J0ZWRHcmFudFR5cGVFeGNlcHRpb24kIiwgIl9fQ2xpZW50IiwgImVycm9yVHlwZVJlZ2lzdHJpZXMiLCAiaW5pdF9zc29fb2lkYyIsICJfX2VzbU1pbiIsICJpbml0X1NTT09JRENDbGllbnQiLCAiaW5pdF9TU09PSURDIiwgImluaXRfY29tbWFuZHMiLCAiaW5pdF9zY2hlbWFzXzAiLCAiaW5pdF9lbnVtcyIsICJpbml0X2Vycm9ycyIsICJpbml0X21vZGVsc18wIiwgImluaXRfU1NPT0lEQ1NlcnZpY2VFeGNlcHRpb24iLCAicmVxdWlyZV9kaXN0X2NqcyIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAiY2xpZW50IiwgImh0dHBBdXRoU2NoZW1lcyIsICJwcm9wZXJ0eVByb3ZpZGVyIiwgInNoYXJlZEluaUZpbGVMb2FkZXIiLCAiZnMiLCAiZnJvbUVudlNpZ25pbmdOYW1lIiwgImxvZ2dlciIsICJzaWduaW5nTmFtZSIsICJiZWFyZXJUb2tlbktleSIsICJ0b2tlbiIsICJFWFBJUkVfV0lORE9XX01TIiwgIlJFRlJFU0hfTUVTU0FHRSIsICJnZXRTc29PaWRjQ2xpZW50IiwgInNzb1JlZ2lvbiIsICJpbml0IiwgImNhbGxlckNsaWVudENvbmZpZyIsICJTU09PSURDQ2xpZW50IiwgImNvYWxlc2NlIiwgInByb3AiLCAiZ2V0TmV3U3NvT2lkY1Rva2VuIiwgInNzb1Rva2VuIiwgIkNyZWF0ZVRva2VuQ29tbWFuZCIsICJ2YWxpZGF0ZVRva2VuRXhwaXJ5IiwgInZhbGlkYXRlVG9rZW5LZXkiLCAia2V5IiwgInZhbHVlIiwgImZvclJlZnJlc2giLCAid3JpdGVGaWxlIiwgIndyaXRlU1NPVG9rZW5Ub0ZpbGUiLCAiaWQiLCAidG9rZW5GaWxlcGF0aCIsICJ0b2tlblN0cmluZyIsICJsYXN0UmVmcmVzaEF0dGVtcHRUaW1lIiwgImZyb21Tc28iLCAicHJvZmlsZXMiLCAicHJvZmlsZU5hbWUiLCAicHJvZmlsZSIsICJzc29TZXNzaW9uTmFtZSIsICJzc29TZXNzaW9uIiwgInNzb1Nlc3Npb25SZXF1aXJlZEtleSIsICJhY2Nlc3NUb2tlbiIsICJleHBpcmVzQXQiLCAiZXhpc3RpbmdUb2tlbiIsICJuZXdTc29PaWRjVG9rZW4iLCAibmV3VG9rZW5FeHBpcmF0aW9uIiwgImZyb21TdGF0aWMiLCAibm9kZVByb3ZpZGVyIiwgInJlcXVpcmVfaHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAiY29yZV8xIiwgInV0aWxfbWlkZGxld2FyZV8xIiwgImRlZmF1bHRTU09IdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlciIsICJjb25maWciLCAiY29udGV4dCIsICJpbnB1dCIsICJjcmVhdGVBd3NBdXRoU2lndjRIdHRwQXV0aE9wdGlvbiIsICJhdXRoUGFyYW1ldGVycyIsICJjcmVhdGVTbWl0aHlBcGlOb0F1dGhIdHRwQXV0aE9wdGlvbiIsICJkZWZhdWx0U1NPSHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJvcHRpb25zIiwgInJlc29sdmVIdHRwQXV0aFNjaGVtZUNvbmZpZyIsICJjb25maWdfMCIsICJyZXF1aXJlX3BhY2thZ2UiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJyZXF1aXJlX2Rpc3RfY2pzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJ1dGlsRW5kcG9pbnRzIiwgInVybFBhcnNlciIsICJpc1ZpcnR1YWxIb3N0YWJsZVMzQnVja2V0IiwgInZhbHVlIiwgImFsbG93U3ViRG9tYWlucyIsICJsYWJlbCIsICJBUk5fREVMSU1JVEVSIiwgIlJFU09VUkNFX0RFTElNSVRFUiIsICJwYXJzZUFybiIsICJzZWdtZW50cyIsICJhcm4iLCAicGFydGl0aW9uIiwgInNlcnZpY2UiLCAicmVnaW9uIiwgImFjY291bnRJZCIsICJyZXNvdXJjZVBhdGgiLCAicmVzb3VyY2VJZCIsICJyZXNvdXJjZSIsICJwYXJ0aXRpb25zIiwgInZlcnNpb24iLCAicGFydGl0aW9uc0luZm8iLCAic2VsZWN0ZWRQYXJ0aXRpb25zSW5mbyIsICJzZWxlY3RlZFVzZXJBZ2VudFByZWZpeCIsICJyZWdpb25zIiwgIm91dHB1dHMiLCAicmVnaW9uRGF0YSIsICJyZWdpb25SZWdleCIsICJERUZBVUxUX1BBUlRJVElPTiIsICJzZXRQYXJ0aXRpb25JbmZvIiwgInVzZXJBZ2VudFByZWZpeCIsICJ1c2VEZWZhdWx0UGFydGl0aW9uSW5mbyIsICJnZXRVc2VyQWdlbnRQcmVmaXgiLCAiYXdzRW5kcG9pbnRGdW5jdGlvbnMiLCAicmVzb2x2ZURlZmF1bHRBd3NSZWdpb25hbEVuZHBvaW50c0NvbmZpZyIsICJpbnB1dCIsICJlbmRwb2ludCIsICJ0b0VuZHBvaW50VjEiLCAicmVxdWlyZV9ydWxlc2V0IiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJ1IiwgInYiLCAidyIsICJ4IiwgImEiLCAiYiIsICJjIiwgImQiLCAiZSIsICJmIiwgImciLCAiaCIsICJpIiwgImoiLCAiayIsICJsIiwgIm0iLCAibiIsICJvIiwgInAiLCAicSIsICJyIiwgInMiLCAidCIsICJfZGF0YSIsICJyZXF1aXJlX2VuZHBvaW50UmVzb2x2ZXIiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgInV0aWxfZW5kcG9pbnRzXzEiLCAidXRpbF9lbmRwb2ludHNfMiIsICJydWxlc2V0XzEiLCAiY2FjaGUiLCAiZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIiLCAiZW5kcG9pbnRQYXJhbXMiLCAiY29udGV4dCIsICJyZXF1aXJlX1NTT1NlcnZpY2VFeGNlcHRpb24iLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgInNtaXRoeV9jbGllbnRfMSIsICJTU09TZXJ2aWNlRXhjZXB0aW9uIiwgIl9TU09TZXJ2aWNlRXhjZXB0aW9uIiwgIm9wdGlvbnMiLCAicmVxdWlyZV9lcnJvcnMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgIlNTT1NlcnZpY2VFeGNlcHRpb25fMSIsICJJbnZhbGlkUmVxdWVzdEV4Y2VwdGlvbiIsICJfSW52YWxpZFJlcXVlc3RFeGNlcHRpb24iLCAib3B0cyIsICJSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uIiwgIl9SZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uIiwgIlRvb01hbnlSZXF1ZXN0c0V4Y2VwdGlvbiIsICJfVG9vTWFueVJlcXVlc3RzRXhjZXB0aW9uIiwgIlVuYXV0aG9yaXplZEV4Y2VwdGlvbiIsICJfVW5hdXRob3JpemVkRXhjZXB0aW9uIiwgInJlcXVpcmVfc2NoZW1hc18wIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJfQUkiLCAiX0FMVCIsICJfQVRUIiwgIl9HUkMiLCAiX0dSQ1IiLCAiX0dSQ1JlIiwgIl9JUkUiLCAiX0wiLCAiX0xBIiwgIl9MQVIiLCAiX0xBUlIiLCAiX0xBUlJpIiwgIl9MQVJpIiwgIl9MQVJpcyIsICJfTFIiLCAiX1JDIiwgIl9SSSIsICJfUkxUIiwgIl9STkZFIiwgIl9TQUtUIiwgIl9TVFQiLCAiX1RNUkUiLCAiX1VFIiwgIl9hSSIsICJfYUtJIiwgIl9hTCIsICJfYU4iLCAiX2FUIiwgIl9haSIsICJfYyIsICJfZSIsICJfZUEiLCAiX2V4IiwgIl9oIiwgIl9oRSIsICJfaEgiLCAiX2hRIiwgIl9tIiwgIl9tUiIsICJfbXIiLCAiX25UIiwgIl9udCIsICJfckMiLCAiX3JMIiwgIl9yTiIsICJfcm4iLCAiX3MiLCAiX3NBSyIsICJfc1QiLCAiX3hhc2J0IiwgIm4wIiwgInNjaGVtYV8xIiwgImVycm9yc18xIiwgIlNTT1NlcnZpY2VFeGNlcHRpb25fMSIsICJfc19yZWdpc3RyeSIsICJuMF9yZWdpc3RyeSIsICJBY2Nlc3NUb2tlblR5cGUiLCAiU2VjcmV0QWNjZXNzS2V5VHlwZSIsICJTZXNzaW9uVG9rZW5UeXBlIiwgIlJvbGVMaXN0VHlwZSIsICJBY2NvdW50TGlzdFR5cGUiLCAiX19Vbml0IiwgInJlcXVpcmVfcnVudGltZUNvbmZpZ19zaGFyZWQiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgImNvcmVfMSIsICJwcm90b2NvbHNfMSIsICJjb3JlXzIiLCAic21pdGh5X2NsaWVudF8xIiwgInVybF9wYXJzZXJfMSIsICJ1dGlsX2Jhc2U2NF8xIiwgInV0aWxfdXRmOF8xIiwgImh0dHBBdXRoU2NoZW1lUHJvdmlkZXJfMSIsICJlbmRwb2ludFJlc29sdmVyXzEiLCAic2NoZW1hc18wXzEiLCAiZ2V0UnVudGltZUNvbmZpZyIsICJjb25maWciLCAiaXBjIiwgInJlcXVpcmVfcnVudGltZUNvbmZpZyIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAidHNsaWJfMSIsICJwYWNrYWdlX2pzb25fMSIsICJjb3JlXzEiLCAidXRpbF91c2VyX2FnZW50X25vZGVfMSIsICJjb25maWdfcmVzb2x2ZXJfMSIsICJoYXNoX25vZGVfMSIsICJtaWRkbGV3YXJlX3JldHJ5XzEiLCAibm9kZV9jb25maWdfcHJvdmlkZXJfMSIsICJub2RlX2h0dHBfaGFuZGxlcl8xIiwgInNtaXRoeV9jbGllbnRfMSIsICJ1dGlsX2JvZHlfbGVuZ3RoX25vZGVfMSIsICJ1dGlsX2RlZmF1bHRzX21vZGVfbm9kZV8xIiwgInV0aWxfcmV0cnlfMSIsICJydW50aW1lQ29uZmlnX3NoYXJlZF8xIiwgImdldFJ1bnRpbWVDb25maWciLCAiY29uZmlnIiwgImRlZmF1bHRzTW9kZSIsICJkZWZhdWx0Q29uZmlnUHJvdmlkZXIiLCAiY2xpZW50U2hhcmVkVmFsdWVzIiwgImxvYWRlckNvbmZpZyIsICJyZXF1aXJlX2Rpc3RfY2pzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJtaWRkbGV3YXJlSG9zdEhlYWRlciIsICJtaWRkbGV3YXJlTG9nZ2VyIiwgIm1pZGRsZXdhcmVSZWN1cnNpb25EZXRlY3Rpb24iLCAibWlkZGxld2FyZVVzZXJBZ2VudCIsICJjb25maWdSZXNvbHZlciIsICJjb3JlIiwgInNjaGVtYSIsICJtaWRkbGV3YXJlQ29udGVudExlbmd0aCIsICJtaWRkbGV3YXJlRW5kcG9pbnQiLCAibWlkZGxld2FyZVJldHJ5IiwgInNtaXRoeUNsaWVudCIsICJodHRwQXV0aFNjaGVtZVByb3ZpZGVyIiwgInJ1bnRpbWVDb25maWciLCAicmVnaW9uQ29uZmlnUmVzb2x2ZXIiLCAicHJvdG9jb2xIdHRwIiwgInNjaGVtYXNfMCIsICJlcnJvcnMiLCAiU1NPU2VydmljZUV4Y2VwdGlvbiIsICJyZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzIiwgIm9wdGlvbnMiLCAiY29tbW9uUGFyYW1zIiwgImdldEh0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiIsICJfaHR0cEF1dGhTY2hlbWVzIiwgIl9odHRwQXV0aFNjaGVtZVByb3ZpZGVyIiwgIl9jcmVkZW50aWFscyIsICJodHRwQXV0aFNjaGVtZSIsICJpbmRleCIsICJzY2hlbWUiLCAiY3JlZGVudGlhbHMiLCAicmVzb2x2ZUh0dHBBdXRoUnVudGltZUNvbmZpZyIsICJjb25maWciLCAicmVzb2x2ZVJ1bnRpbWVFeHRlbnNpb25zIiwgImV4dGVuc2lvbnMiLCAiZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiIsICJleHRlbnNpb24iLCAiU1NPQ2xpZW50IiwgImNvbmZpZ3VyYXRpb24iLCAiX2NvbmZpZ18wIiwgIl9jb25maWdfMSIsICJfY29uZmlnXzIiLCAiX2NvbmZpZ18zIiwgIl9jb25maWdfNCIsICJfY29uZmlnXzUiLCAiX2NvbmZpZ182IiwgIl9jb25maWdfNyIsICJfY29uZmlnXzgiLCAiR2V0Um9sZUNyZWRlbnRpYWxzQ29tbWFuZCIsICJDb21tYW5kIiwgImNzIiwgIm8iLCAiTGlzdEFjY291bnRSb2xlc0NvbW1hbmQiLCAiTGlzdEFjY291bnRzQ29tbWFuZCIsICJMb2dvdXRDb21tYW5kIiwgInBhZ2luYXRlTGlzdEFjY291bnRSb2xlcyIsICJwYWdpbmF0ZUxpc3RBY2NvdW50cyIsICJjb21tYW5kcyIsICJwYWdpbmF0b3JzIiwgIlNTTyIsICJrIiwgInJlcXVpcmVfbG9hZFNzb19CdzdWU3ZsTyIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAiY2xpZW50U3NvIiwgInJlcXVpcmVfZGlzdF9janMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgInByb3BlcnR5UHJvdmlkZXIiLCAic2hhcmVkSW5pRmlsZUxvYWRlciIsICJjbGllbnQiLCAidG9rZW5Qcm92aWRlcnMiLCAiaXNTc29Qcm9maWxlIiwgImFyZyIsICJTSE9VTERfRkFJTF9DUkVERU5USUFMX0NIQUlOIiwgInJlc29sdmVTU09DcmVkZW50aWFscyIsICJzc29TdGFydFVybCIsICJzc29TZXNzaW9uIiwgInNzb0FjY291bnRJZCIsICJzc29SZWdpb24iLCAic3NvUm9sZU5hbWUiLCAic3NvQ2xpZW50IiwgImNsaWVudENvbmZpZyIsICJwYXJlbnRDbGllbnRDb25maWciLCAiY2FsbGVyQ2xpZW50Q29uZmlnIiwgInByb2ZpbGUiLCAiZmlsZXBhdGgiLCAiY29uZmlnRmlsZXBhdGgiLCAiaWdub3JlQ2FjaGUiLCAibG9nZ2VyIiwgInRva2VuIiwgInJlZnJlc2hNZXNzYWdlIiwgIl90b2tlbiIsICJlIiwgImFjY2Vzc1Rva2VuIiwgIlNTT0NsaWVudCIsICJHZXRSb2xlQ3JlZGVudGlhbHNDb21tYW5kIiwgInNzbyIsICJzc29SZXNwIiwgImFjY2Vzc0tleUlkIiwgInNlY3JldEFjY2Vzc0tleSIsICJzZXNzaW9uVG9rZW4iLCAiZXhwaXJhdGlvbiIsICJjcmVkZW50aWFsU2NvcGUiLCAiYWNjb3VudElkIiwgImNyZWRlbnRpYWxzIiwgInZhbGlkYXRlU3NvUHJvZmlsZSIsICJzc29fc3RhcnRfdXJsIiwgInNzb19hY2NvdW50X2lkIiwgInNzb19yZWdpb24iLCAic3NvX3JvbGVfbmFtZSIsICJmcm9tU1NPIiwgImluaXQiLCAicHJvZmlsZU5hbWUiLCAic2Vzc2lvbiIsICJjb25mbGljdE1zZyIsICJzc29fc2Vzc2lvbiIsICJjcmVhdGVBd3NBdXRoU2lndjRIdHRwQXV0aE9wdGlvbiIsICJhdXRoUGFyYW1ldGVycyIsICJjb25maWciLCAiY29udGV4dCIsICJjcmVhdGVTbWl0aHlBcGlOb0F1dGhIdHRwQXV0aE9wdGlvbiIsICJpbXBvcnRfdXRpbF9taWRkbGV3YXJlIiwgImRlZmF1bHRTaWduaW5IdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlciIsICJkZWZhdWx0U2lnbmluSHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJyZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWciLCAiaW5pdF9odHRwQXV0aFNjaGVtZVByb3ZpZGVyIiwgIl9fZXNtTWluIiwgImluaXRfZGlzdF9lcyIsICJpbnB1dCIsICJvcHRpb25zIiwgImNvbmZpZ18wIiwgInJlc29sdmVBd3NTZGtTaWdWNENvbmZpZyIsICJyZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzIiwgImNvbW1vblBhcmFtcyIsICJpbml0X0VuZHBvaW50UGFyYW1ldGVycyIsICJfX2VzbU1pbiIsICJvcHRpb25zIiwgInUiLCAidiIsICJ3IiwgIngiLCAiYiIsICJjIiwgImQiLCAiZSIsICJmIiwgImciLCAiaCIsICJpIiwgImoiLCAiayIsICJsIiwgIm0iLCAibiIsICJvIiwgInAiLCAicSIsICJyIiwgInMiLCAidCIsICJfZGF0YSIsICJydWxlU2V0IiwgImluaXRfcnVsZXNldCIsICJfX2VzbU1pbiIsICJpbXBvcnRfdXRpbF9lbmRwb2ludHMiLCAiY2FjaGUiLCAiZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIiLCAiaW5pdF9lbmRwb2ludFJlc29sdmVyIiwgIl9fZXNtTWluIiwgImluaXRfcnVsZXNldCIsICJlbmRwb2ludFBhcmFtcyIsICJjb250ZXh0IiwgInJ1bGVTZXQiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAiU2lnbmluU2VydmljZUV4Y2VwdGlvbiIsICJpbml0X1NpZ25pblNlcnZpY2VFeGNlcHRpb24iLCAiX19lc21NaW4iLCAiX1NpZ25pblNlcnZpY2VFeGNlcHRpb24iLCAiX19TZXJ2aWNlRXhjZXB0aW9uIiwgIm9wdGlvbnMiLCAiQWNjZXNzRGVuaWVkRXhjZXB0aW9uIiwgIkludGVybmFsU2VydmVyRXhjZXB0aW9uIiwgIlRvb01hbnlSZXF1ZXN0c0Vycm9yIiwgIlZhbGlkYXRpb25FeGNlcHRpb24iLCAiaW5pdF9lcnJvcnMiLCAiX19lc21NaW4iLCAiaW5pdF9TaWduaW5TZXJ2aWNlRXhjZXB0aW9uIiwgIl9BY2Nlc3NEZW5pZWRFeGNlcHRpb24iLCAiU2lnbmluU2VydmljZUV4Y2VwdGlvbiIsICJvcHRzIiwgIl9JbnRlcm5hbFNlcnZlckV4Y2VwdGlvbiIsICJfVG9vTWFueVJlcXVlc3RzRXJyb3IiLCAiX1ZhbGlkYXRpb25FeGNlcHRpb24iLCAiaW1wb3J0X3NjaGVtYSIsICJfQURFIiwgIl9BVCIsICJfQ09BVCIsICJfQ09BVFIiLCAiX0NPQVRSQiIsICJfQ09BVFJCciIsICJfQ09BVFJyIiwgIl9JU0UiLCAiX1JUIiwgIl9UTVJFIiwgIl9WRSIsICJfYUtJIiwgIl9hVCIsICJfYyIsICJfY0kiLCAiX2NWIiwgIl9jbyIsICJfZSIsICJfZUkiLCAiX2dUIiwgIl9oIiwgIl9oRSIsICJfaVQiLCAiX2pOIiwgIl9tIiwgIl9yVCIsICJfclUiLCAiX3MiLCAiX3NBSyIsICJfc1QiLCAiX3NlIiwgIl90SSIsICJfdE8iLCAiX3RUIiwgIm4wIiwgIl9zX3JlZ2lzdHJ5IiwgIlNpZ25pblNlcnZpY2VFeGNlcHRpb24kIiwgIm4wX3JlZ2lzdHJ5IiwgIkFjY2Vzc0RlbmllZEV4Y2VwdGlvbiQiLCAiSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb24kIiwgIlRvb01hbnlSZXF1ZXN0c0Vycm9yJCIsICJWYWxpZGF0aW9uRXhjZXB0aW9uJCIsICJlcnJvclR5cGVSZWdpc3RyaWVzIiwgIlJlZnJlc2hUb2tlbiIsICJBY2Nlc3NUb2tlbiQiLCAiQ3JlYXRlT0F1dGgyVG9rZW5SZXF1ZXN0JCIsICJDcmVhdGVPQXV0aDJUb2tlblJlcXVlc3RCb2R5JCIsICJDcmVhdGVPQXV0aDJUb2tlblJlc3BvbnNlJCIsICJDcmVhdGVPQXV0aDJUb2tlblJlc3BvbnNlQm9keSQiLCAiQ3JlYXRlT0F1dGgyVG9rZW4kIiwgImluaXRfc2NoZW1hc18wIiwgIl9fZXNtTWluIiwgImluaXRfZXJyb3JzIiwgImluaXRfU2lnbmluU2VydmljZUV4Y2VwdGlvbiIsICJTaWduaW5TZXJ2aWNlRXhjZXB0aW9uIiwgIkFjY2Vzc0RlbmllZEV4Y2VwdGlvbiIsICJJbnRlcm5hbFNlcnZlckV4Y2VwdGlvbiIsICJUb29NYW55UmVxdWVzdHNFcnJvciIsICJWYWxpZGF0aW9uRXhjZXB0aW9uIiwgImltcG9ydF9jb3JlIiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgImltcG9ydF91cmxfcGFyc2VyIiwgImltcG9ydF91dGlsX2Jhc2U2NCIsICJpbXBvcnRfdXRpbF91dGY4IiwgImdldFJ1bnRpbWVDb25maWciLCAiaW5pdF9ydW50aW1lQ29uZmlnX3NoYXJlZCIsICJfX2VzbU1pbiIsICJpbml0X2Rpc3RfZXMiLCAiaW5pdF9wcm90b2NvbHMiLCAiaW5pdF9odHRwQXV0aFNjaGVtZVByb3ZpZGVyIiwgImluaXRfZW5kcG9pbnRSZXNvbHZlciIsICJpbml0X3NjaGVtYXNfMCIsICJjb25maWciLCAiZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIiLCAiZGVmYXVsdFNpZ25pbkh0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAiaXBjIiwgIkF3c1Nka1NpZ1Y0U2lnbmVyIiwgIkF3c1Jlc3RKc29uUHJvdG9jb2wiLCAiZXJyb3JUeXBlUmVnaXN0cmllcyIsICJpbXBvcnRfdXRpbF91c2VyX2FnZW50X25vZGUiLCAiaW1wb3J0X2NvbmZpZ19yZXNvbHZlciIsICJpbXBvcnRfaGFzaF9ub2RlIiwgImltcG9ydF9taWRkbGV3YXJlX3JldHJ5IiwgImltcG9ydF9ub2RlX2NvbmZpZ19wcm92aWRlciIsICJpbXBvcnRfbm9kZV9odHRwX2hhbmRsZXIiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAiaW1wb3J0X3V0aWxfYm9keV9sZW5ndGhfbm9kZSIsICJpbXBvcnRfdXRpbF9kZWZhdWx0c19tb2RlX25vZGUiLCAiaW1wb3J0X3V0aWxfcmV0cnkiLCAiZ2V0UnVudGltZUNvbmZpZyIsICJpbml0X3J1bnRpbWVDb25maWciLCAiX19lc21NaW4iLCAiaW5pdF9wYWNrYWdlIiwgImluaXRfZGlzdF9lcyIsICJpbml0X3J1bnRpbWVDb25maWdfc2hhcmVkIiwgImNvbmZpZyIsICJkZWZhdWx0c01vZGUiLCAiZGVmYXVsdENvbmZpZ1Byb3ZpZGVyIiwgImNsaWVudFNoYXJlZFZhbHVlcyIsICJlbWl0V2FybmluZ0lmVW5zdXBwb3J0ZWRWZXJzaW9uIiwgImxvYWRlckNvbmZpZyIsICJsb2FkTm9kZUNvbmZpZyIsICJOT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfT1BUSU9OUyIsICJwYWNrYWdlX2RlZmF1bHQiLCAiUmVxdWVzdEhhbmRsZXIiLCAiZ2V0SHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uIiwgInJlc29sdmVIdHRwQXV0aFJ1bnRpbWVDb25maWciLCAiaW5pdF9odHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24iLCAiX19lc21NaW4iLCAicnVudGltZUNvbmZpZyIsICJfaHR0cEF1dGhTY2hlbWVzIiwgIl9odHRwQXV0aFNjaGVtZVByb3ZpZGVyIiwgIl9jcmVkZW50aWFscyIsICJodHRwQXV0aFNjaGVtZSIsICJpbmRleCIsICJzY2hlbWUiLCAiaHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJjcmVkZW50aWFscyIsICJjb25maWciLCAiaW1wb3J0X3JlZ2lvbl9jb25maWdfcmVzb2x2ZXIiLCAiaW1wb3J0X3Byb3RvY29sX2h0dHAiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAicmVzb2x2ZVJ1bnRpbWVFeHRlbnNpb25zIiwgImluaXRfcnVudGltZUV4dGVuc2lvbnMiLCAiX19lc21NaW4iLCAiaW5pdF9odHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24iLCAicnVudGltZUNvbmZpZyIsICJleHRlbnNpb25zIiwgImV4dGVuc2lvbkNvbmZpZ3VyYXRpb24iLCAiZ2V0SHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uIiwgImV4dGVuc2lvbiIsICJyZXNvbHZlSHR0cEF1dGhSdW50aW1lQ29uZmlnIiwgImltcG9ydF9taWRkbGV3YXJlX2hvc3RfaGVhZGVyIiwgImltcG9ydF9taWRkbGV3YXJlX2xvZ2dlciIsICJpbXBvcnRfbWlkZGxld2FyZV9yZWN1cnNpb25fZGV0ZWN0aW9uIiwgImltcG9ydF9taWRkbGV3YXJlX3VzZXJfYWdlbnQiLCAiaW1wb3J0X2NvbmZpZ19yZXNvbHZlciIsICJpbXBvcnRfY29yZSIsICJpbXBvcnRfc2NoZW1hIiwgImltcG9ydF9taWRkbGV3YXJlX2NvbnRlbnRfbGVuZ3RoIiwgImltcG9ydF9taWRkbGV3YXJlX2VuZHBvaW50IiwgImltcG9ydF9taWRkbGV3YXJlX3JldHJ5IiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgIlNpZ25pbkNsaWVudCIsICJpbml0X1NpZ25pbkNsaWVudCIsICJfX2VzbU1pbiIsICJpbml0X2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAiaW5pdF9FbmRwb2ludFBhcmFtZXRlcnMiLCAiaW5pdF9ydW50aW1lQ29uZmlnIiwgImluaXRfcnVudGltZUV4dGVuc2lvbnMiLCAiX19DbGllbnQiLCAiY29uZmlndXJhdGlvbiIsICJfY29uZmlnXzAiLCAiZ2V0UnVudGltZUNvbmZpZyIsICJfY29uZmlnXzEiLCAicmVzb2x2ZUNsaWVudEVuZHBvaW50UGFyYW1ldGVycyIsICJfY29uZmlnXzIiLCAiX2NvbmZpZ18zIiwgIl9jb25maWdfNCIsICJfY29uZmlnXzUiLCAiX2NvbmZpZ182IiwgIl9jb25maWdfNyIsICJyZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWciLCAiX2NvbmZpZ184IiwgInJlc29sdmVSdW50aW1lRXh0ZW5zaW9ucyIsICJkZWZhdWx0U2lnbmluSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIiLCAiY29uZmlnIiwgImltcG9ydF9taWRkbGV3YXJlX2VuZHBvaW50IiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgIkNyZWF0ZU9BdXRoMlRva2VuQ29tbWFuZCIsICJpbml0X0NyZWF0ZU9BdXRoMlRva2VuQ29tbWFuZCIsICJfX2VzbU1pbiIsICJpbml0X0VuZHBvaW50UGFyYW1ldGVycyIsICJpbml0X3NjaGVtYXNfMCIsICIkQ29tbWFuZCIsICJjb21tb25QYXJhbXMiLCAiQ29tbWFuZCIsICJjcyIsICJjb25maWciLCAibyIsICJDcmVhdGVPQXV0aDJUb2tlbiQiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAiY29tbWFuZHMiLCAiU2lnbmluIiwgImluaXRfU2lnbmluIiwgIl9fZXNtTWluIiwgImluaXRfQ3JlYXRlT0F1dGgyVG9rZW5Db21tYW5kIiwgImluaXRfU2lnbmluQ2xpZW50IiwgIkNyZWF0ZU9BdXRoMlRva2VuQ29tbWFuZCIsICJTaWduaW5DbGllbnQiLCAiaW5pdF9jb21tYW5kcyIsICJfX2VzbU1pbiIsICJpbml0X0NyZWF0ZU9BdXRoMlRva2VuQ29tbWFuZCIsICJPQXV0aDJFcnJvckNvZGUiLCAiaW5pdF9lbnVtcyIsICJfX2VzbU1pbiIsICJpbml0X21vZGVsc18wIiwgIl9fZXNtTWluIiwgInNpZ25pbl9leHBvcnRzIiwgIl9fZXhwb3J0IiwgIiRDb21tYW5kIiwgIkFjY2Vzc0RlbmllZEV4Y2VwdGlvbiIsICJBY2Nlc3NEZW5pZWRFeGNlcHRpb24kIiwgIkFjY2Vzc1Rva2VuJCIsICJDcmVhdGVPQXV0aDJUb2tlbiQiLCAiQ3JlYXRlT0F1dGgyVG9rZW5Db21tYW5kIiwgIkNyZWF0ZU9BdXRoMlRva2VuUmVxdWVzdCQiLCAiQ3JlYXRlT0F1dGgyVG9rZW5SZXF1ZXN0Qm9keSQiLCAiQ3JlYXRlT0F1dGgyVG9rZW5SZXNwb25zZSQiLCAiQ3JlYXRlT0F1dGgyVG9rZW5SZXNwb25zZUJvZHkkIiwgIkludGVybmFsU2VydmVyRXhjZXB0aW9uIiwgIkludGVybmFsU2VydmVyRXhjZXB0aW9uJCIsICJPQXV0aDJFcnJvckNvZGUiLCAiU2lnbmluIiwgIlNpZ25pbkNsaWVudCIsICJTaWduaW5TZXJ2aWNlRXhjZXB0aW9uIiwgIlNpZ25pblNlcnZpY2VFeGNlcHRpb24kIiwgIlRvb01hbnlSZXF1ZXN0c0Vycm9yIiwgIlRvb01hbnlSZXF1ZXN0c0Vycm9yJCIsICJWYWxpZGF0aW9uRXhjZXB0aW9uIiwgIlZhbGlkYXRpb25FeGNlcHRpb24kIiwgIl9fQ2xpZW50IiwgImVycm9yVHlwZVJlZ2lzdHJpZXMiLCAiaW5pdF9zaWduaW4iLCAiX19lc21NaW4iLCAiaW5pdF9TaWduaW5DbGllbnQiLCAiaW5pdF9TaWduaW4iLCAiaW5pdF9jb21tYW5kcyIsICJpbml0X3NjaGVtYXNfMCIsICJpbml0X2VudW1zIiwgImluaXRfZXJyb3JzIiwgImluaXRfbW9kZWxzXzAiLCAiaW5pdF9TaWduaW5TZXJ2aWNlRXhjZXB0aW9uIiwgInJlcXVpcmVfZGlzdF9janMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgImNsaWVudCIsICJwcm9wZXJ0eVByb3ZpZGVyIiwgInNoYXJlZEluaUZpbGVMb2FkZXIiLCAicHJvdG9jb2xIdHRwIiwgIm5vZGVfY3J5cHRvIiwgIm5vZGVfZnMiLCAibm9kZV9vcyIsICJub2RlX3BhdGgiLCAiTG9naW5DcmVkZW50aWFsc0ZldGNoZXIiLCAiX0xvZ2luQ3JlZGVudGlhbHNGZXRjaGVyIiwgInByb2ZpbGVEYXRhIiwgImluaXQiLCAiY2FsbGVyQ2xpZW50Q29uZmlnIiwgInRva2VuIiwgImFjY2Vzc1Rva2VuIiwgIm5vdyIsICJTaWduaW5DbGllbnQiLCAiQ3JlYXRlT0F1dGgyVG9rZW5Db21tYW5kIiwgImxvZ2dlciIsICJ1c2VyQWdlbnRBcHBJZCIsICJyZXF1ZXN0SGFuZGxlciIsICJyZWdpb24iLCAiY29tbWFuZElucHV0IiwgInJlc3BvbnNlIiwgImFjY2Vzc0tleUlkIiwgInNlY3JldEFjY2Vzc0tleSIsICJzZXNzaW9uVG9rZW4iLCAicmVmcmVzaFRva2VuIiwgImV4cGlyZXNJbiIsICJleHBpcmVzSW5NcyIsICJleHBpcmF0aW9uIiwgInVwZGF0ZWRUb2tlbiIsICJuZXdBY2Nlc3NUb2tlbiIsICJlcnJvciIsICJlcnJvclR5cGUiLCAibWVzc2FnZSIsICJ0b2tlbkZpbGVQYXRoIiwgInRva2VuRGF0YSIsICJtaXNzaW5nRmllbGRzIiwgImsiLCAiZGlyZWN0b3J5IiwgImxvZ2luU2Vzc2lvbkJ5dGVzIiwgImxvZ2luU2Vzc2lvblNoYTI1NiIsICJkZXJTaWduYXR1cmUiLCAib2Zmc2V0IiwgInJMZW5ndGgiLCAiciIsICJzTGVuZ3RoIiwgInMiLCAiclBhZGRlZCIsICJzUGFkZGVkIiwgIm1pZGRsZXdhcmVTdGFjayIsICJuZXh0IiwgImFyZ3MiLCAicmVxdWVzdCIsICJhY3R1YWxFbmRwb2ludCIsICJkcG9wIiwgIm1ldGhvZCIsICJlbmRwb2ludCIsICJwcml2YXRlS2V5IiwgInB1YmxpY0RlciIsICJwb2ludFN0YXJ0IiwgImkiLCAieCIsICJ5IiwgImhlYWRlciIsICJwYXlsb2FkIiwgImhlYWRlckI2NCIsICJwYXlsb2FkQjY0IiwgImFzbjFTaWduYXR1cmUiLCAic2lnbmF0dXJlQjY0IiwgImZyb21Mb2dpbkNyZWRlbnRpYWxzIiwgInByb2ZpbGVzIiwgInByb2ZpbGVOYW1lIiwgInByb2ZpbGUiLCAiY3JlZGVudGlhbHMiLCAiY3JlYXRlQXdzQXV0aFNpZ3Y0SHR0cEF1dGhPcHRpb24iLCAiYXV0aFBhcmFtZXRlcnMiLCAiY29uZmlnIiwgImNvbnRleHQiLCAiY3JlYXRlU21pdGh5QXBpTm9BdXRoSHR0cEF1dGhPcHRpb24iLCAiaW1wb3J0X3V0aWxfbWlkZGxld2FyZSIsICJkZWZhdWx0U1RTSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIiLCAiZGVmYXVsdFNUU0h0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAicmVzb2x2ZVN0c0F1dGhDb25maWciLCAicmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnIiwgImluaXRfaHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJfX2VzbU1pbiIsICJpbml0X2Rpc3RfZXMiLCAiaW5pdF9TVFNDbGllbnQiLCAiaW5wdXQiLCAib3B0aW9ucyIsICJTVFNDbGllbnQiLCAiY29uZmlnXzAiLCAiY29uZmlnXzEiLCAicmVzb2x2ZUF3c1Nka1NpZ1Y0Q29uZmlnIiwgInJlc29sdmVDbGllbnRFbmRwb2ludFBhcmFtZXRlcnMiLCAiY29tbW9uUGFyYW1zIiwgImluaXRfRW5kcG9pbnRQYXJhbWV0ZXJzIiwgIl9fZXNtTWluIiwgIm9wdGlvbnMiLCAiRiIsICJHIiwgIkgiLCAiSSIsICJKIiwgImMiLCAiZCIsICJlIiwgImYiLCAiZyIsICJoIiwgImkiLCAiaiIsICJrIiwgImwiLCAibSIsICJuIiwgIm8iLCAicCIsICJxIiwgInIiLCAicyIsICJ0IiwgInUiLCAidiIsICJ3IiwgIngiLCAieSIsICJ6IiwgIkEiLCAiQiIsICJDIiwgIkQiLCAiRSIsICJfZGF0YSIsICJydWxlU2V0IiwgImluaXRfcnVsZXNldCIsICJfX2VzbU1pbiIsICJpbXBvcnRfdXRpbF9lbmRwb2ludHMiLCAiY2FjaGUiLCAiZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIiLCAiaW5pdF9lbmRwb2ludFJlc29sdmVyIiwgIl9fZXNtTWluIiwgImluaXRfcnVsZXNldCIsICJlbmRwb2ludFBhcmFtcyIsICJjb250ZXh0IiwgInJ1bGVTZXQiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAiU1RTU2VydmljZUV4Y2VwdGlvbiIsICJpbml0X1NUU1NlcnZpY2VFeGNlcHRpb24iLCAiX19lc21NaW4iLCAiX1NUU1NlcnZpY2VFeGNlcHRpb24iLCAiX19TZXJ2aWNlRXhjZXB0aW9uIiwgIm9wdGlvbnMiLCAiRXhwaXJlZFRva2VuRXhjZXB0aW9uIiwgIk1hbGZvcm1lZFBvbGljeURvY3VtZW50RXhjZXB0aW9uIiwgIlBhY2tlZFBvbGljeVRvb0xhcmdlRXhjZXB0aW9uIiwgIlJlZ2lvbkRpc2FibGVkRXhjZXB0aW9uIiwgIklEUFJlamVjdGVkQ2xhaW1FeGNlcHRpb24iLCAiSW52YWxpZElkZW50aXR5VG9rZW5FeGNlcHRpb24iLCAiSURQQ29tbXVuaWNhdGlvbkVycm9yRXhjZXB0aW9uIiwgImluaXRfZXJyb3JzIiwgIl9fZXNtTWluIiwgImluaXRfU1RTU2VydmljZUV4Y2VwdGlvbiIsICJfRXhwaXJlZFRva2VuRXhjZXB0aW9uIiwgIlNUU1NlcnZpY2VFeGNlcHRpb24iLCAib3B0cyIsICJfTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFeGNlcHRpb24iLCAiX1BhY2tlZFBvbGljeVRvb0xhcmdlRXhjZXB0aW9uIiwgIl9SZWdpb25EaXNhYmxlZEV4Y2VwdGlvbiIsICJfSURQUmVqZWN0ZWRDbGFpbUV4Y2VwdGlvbiIsICJfSW52YWxpZElkZW50aXR5VG9rZW5FeGNlcHRpb24iLCAiX0lEUENvbW11bmljYXRpb25FcnJvckV4Y2VwdGlvbiIsICJpbXBvcnRfc2NoZW1hIiwgIl9BIiwgIl9BS0kiLCAiX0FSIiwgIl9BUkkiLCAiX0FSUiIsICJfQVJScyIsICJfQVJVIiwgIl9BUldXSSIsICJfQVJXV0lSIiwgIl9BUldXSVJzIiwgIl9BdSIsICJfQyIsICJfQ0EiLCAiX0RTIiwgIl9FIiwgIl9FSSIsICJfRVRFIiwgIl9JRFBDRUUiLCAiX0lEUFJDRSIsICJfSUlURSIsICJfSyIsICJfTVBERSIsICJfUCIsICJfUEEiLCAiX1BBciIsICJfUEMiLCAiX1BDTFQiLCAiX1BDciIsICJfUERUIiwgIl9QSSIsICJfUFBTIiwgIl9QUFRMRSIsICJfUHIiLCAiX1JBIiwgIl9SREUiLCAiX1JTTiIsICJfU0FLIiwgIl9TRldJVCIsICJfU0kiLCAiX1NOIiwgIl9TVCIsICJfVCIsICJfVEMiLCAiX1RUSyIsICJfVGEiLCAiX1YiLCAiX1dJVCIsICJfYSIsICJfYUtTVCIsICJfYVFFIiwgIl9jIiwgIl9jVFQiLCAiX2UiLCAiX2hFIiwgIl9tIiwgIl9wRExUIiwgIl9zIiwgIl90TFQiLCAibjAiLCAiX3NfcmVnaXN0cnkiLCAiU1RTU2VydmljZUV4Y2VwdGlvbiQiLCAibjBfcmVnaXN0cnkiLCAiRXhwaXJlZFRva2VuRXhjZXB0aW9uJCIsICJJRFBDb21tdW5pY2F0aW9uRXJyb3JFeGNlcHRpb24kIiwgIklEUFJlamVjdGVkQ2xhaW1FeGNlcHRpb24kIiwgIkludmFsaWRJZGVudGl0eVRva2VuRXhjZXB0aW9uJCIsICJNYWxmb3JtZWRQb2xpY3lEb2N1bWVudEV4Y2VwdGlvbiQiLCAiUGFja2VkUG9saWN5VG9vTGFyZ2VFeGNlcHRpb24kIiwgIlJlZ2lvbkRpc2FibGVkRXhjZXB0aW9uJCIsICJlcnJvclR5cGVSZWdpc3RyaWVzIiwgImFjY2Vzc0tleVNlY3JldFR5cGUiLCAiY2xpZW50VG9rZW5UeXBlIiwgIkFzc3VtZWRSb2xlVXNlciQiLCAiQXNzdW1lUm9sZVJlcXVlc3QkIiwgIkFzc3VtZVJvbGVSZXNwb25zZSQiLCAiQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eVJlcXVlc3QkIiwgIkFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlSZXNwb25zZSQiLCAiQ3JlZGVudGlhbHMkIiwgIlBvbGljeURlc2NyaXB0b3JUeXBlJCIsICJQcm92aWRlZENvbnRleHQkIiwgIlRhZyQiLCAicG9saWN5RGVzY3JpcHRvckxpc3RUeXBlIiwgIlByb3ZpZGVkQ29udGV4dHNMaXN0VHlwZSIsICJ0YWdMaXN0VHlwZSIsICJBc3N1bWVSb2xlJCIsICJBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5JCIsICJpbml0X3NjaGVtYXNfMCIsICJfX2VzbU1pbiIsICJpbml0X2Vycm9ycyIsICJpbml0X1NUU1NlcnZpY2VFeGNlcHRpb24iLCAiU1RTU2VydmljZUV4Y2VwdGlvbiIsICJFeHBpcmVkVG9rZW5FeGNlcHRpb24iLCAiSURQQ29tbXVuaWNhdGlvbkVycm9yRXhjZXB0aW9uIiwgIklEUFJlamVjdGVkQ2xhaW1FeGNlcHRpb24iLCAiSW52YWxpZElkZW50aXR5VG9rZW5FeGNlcHRpb24iLCAiTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFeGNlcHRpb24iLCAiUGFja2VkUG9saWN5VG9vTGFyZ2VFeGNlcHRpb24iLCAiUmVnaW9uRGlzYWJsZWRFeGNlcHRpb24iLCAiaW1wb3J0X2NvcmUiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAiaW1wb3J0X3VybF9wYXJzZXIiLCAiaW1wb3J0X3V0aWxfYmFzZTY0IiwgImltcG9ydF91dGlsX3V0ZjgiLCAiZ2V0UnVudGltZUNvbmZpZyIsICJpbml0X3J1bnRpbWVDb25maWdfc2hhcmVkIiwgIl9fZXNtTWluIiwgImluaXRfZGlzdF9lcyIsICJpbml0X3Byb3RvY29scyIsICJpbml0X2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAiaW5pdF9lbmRwb2ludFJlc29sdmVyIiwgImluaXRfc2NoZW1hc18wIiwgImNvbmZpZyIsICJkZWZhdWx0RW5kcG9pbnRSZXNvbHZlciIsICJkZWZhdWx0U1RTSHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJpcGMiLCAiQXdzU2RrU2lnVjRTaWduZXIiLCAiQXdzUXVlcnlQcm90b2NvbCIsICJlcnJvclR5cGVSZWdpc3RyaWVzIiwgImltcG9ydF91dGlsX3VzZXJfYWdlbnRfbm9kZSIsICJpbXBvcnRfY29uZmlnX3Jlc29sdmVyIiwgImltcG9ydF9jb3JlIiwgImltcG9ydF9oYXNoX25vZGUiLCAiaW1wb3J0X21pZGRsZXdhcmVfcmV0cnkiLCAiaW1wb3J0X25vZGVfY29uZmlnX3Byb3ZpZGVyIiwgImltcG9ydF9ub2RlX2h0dHBfaGFuZGxlciIsICJpbXBvcnRfc21pdGh5X2NsaWVudCIsICJpbXBvcnRfdXRpbF9ib2R5X2xlbmd0aF9ub2RlIiwgImltcG9ydF91dGlsX2RlZmF1bHRzX21vZGVfbm9kZSIsICJpbXBvcnRfdXRpbF9yZXRyeSIsICJnZXRSdW50aW1lQ29uZmlnIiwgImluaXRfcnVudGltZUNvbmZpZyIsICJfX2VzbU1pbiIsICJpbml0X3BhY2thZ2UiLCAiaW5pdF9kaXN0X2VzIiwgImluaXRfcnVudGltZUNvbmZpZ19zaGFyZWQiLCAiY29uZmlnIiwgImRlZmF1bHRzTW9kZSIsICJkZWZhdWx0Q29uZmlnUHJvdmlkZXIiLCAiY2xpZW50U2hhcmVkVmFsdWVzIiwgImVtaXRXYXJuaW5nSWZVbnN1cHBvcnRlZFZlcnNpb24iLCAibG9hZGVyQ29uZmlnIiwgImxvYWROb2RlQ29uZmlnIiwgIk5PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9PUFRJT05TIiwgInBhY2thZ2VfZGVmYXVsdCIsICJpcGMiLCAiaWRQcm9wcyIsICJBd3NTZGtTaWdWNFNpZ25lciIsICJSZXF1ZXN0SGFuZGxlciIsICJnZXRIdHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24iLCAicmVzb2x2ZUh0dHBBdXRoUnVudGltZUNvbmZpZyIsICJpbml0X2h0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiIsICJfX2VzbU1pbiIsICJydW50aW1lQ29uZmlnIiwgIl9odHRwQXV0aFNjaGVtZXMiLCAiX2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAiX2NyZWRlbnRpYWxzIiwgImh0dHBBdXRoU2NoZW1lIiwgImluZGV4IiwgInNjaGVtZSIsICJodHRwQXV0aFNjaGVtZVByb3ZpZGVyIiwgImNyZWRlbnRpYWxzIiwgImNvbmZpZyIsICJpbXBvcnRfcmVnaW9uX2NvbmZpZ19yZXNvbHZlciIsICJpbXBvcnRfcHJvdG9jb2xfaHR0cCIsICJpbXBvcnRfc21pdGh5X2NsaWVudCIsICJyZXNvbHZlUnVudGltZUV4dGVuc2lvbnMiLCAiaW5pdF9ydW50aW1lRXh0ZW5zaW9ucyIsICJfX2VzbU1pbiIsICJpbml0X2h0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiIsICJydW50aW1lQ29uZmlnIiwgImV4dGVuc2lvbnMiLCAiZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiIsICJnZXRIdHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24iLCAiZXh0ZW5zaW9uIiwgInJlc29sdmVIdHRwQXV0aFJ1bnRpbWVDb25maWciLCAiaW1wb3J0X21pZGRsZXdhcmVfaG9zdF9oZWFkZXIiLCAiaW1wb3J0X21pZGRsZXdhcmVfbG9nZ2VyIiwgImltcG9ydF9taWRkbGV3YXJlX3JlY3Vyc2lvbl9kZXRlY3Rpb24iLCAiaW1wb3J0X21pZGRsZXdhcmVfdXNlcl9hZ2VudCIsICJpbXBvcnRfY29uZmlnX3Jlc29sdmVyIiwgImltcG9ydF9jb3JlIiwgImltcG9ydF9zY2hlbWEiLCAiaW1wb3J0X21pZGRsZXdhcmVfY29udGVudF9sZW5ndGgiLCAiaW1wb3J0X21pZGRsZXdhcmVfZW5kcG9pbnQiLCAiaW1wb3J0X21pZGRsZXdhcmVfcmV0cnkiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAiU1RTQ2xpZW50IiwgImluaXRfU1RTQ2xpZW50IiwgIl9fZXNtTWluIiwgImluaXRfaHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJpbml0X0VuZHBvaW50UGFyYW1ldGVycyIsICJpbml0X3J1bnRpbWVDb25maWciLCAiaW5pdF9ydW50aW1lRXh0ZW5zaW9ucyIsICJfX0NsaWVudCIsICJjb25maWd1cmF0aW9uIiwgIl9jb25maWdfMCIsICJnZXRSdW50aW1lQ29uZmlnIiwgIl9jb25maWdfMSIsICJyZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzIiwgIl9jb25maWdfMiIsICJfY29uZmlnXzMiLCAiX2NvbmZpZ180IiwgIl9jb25maWdfNSIsICJfY29uZmlnXzYiLCAiX2NvbmZpZ183IiwgInJlc29sdmVIdHRwQXV0aFNjaGVtZUNvbmZpZyIsICJfY29uZmlnXzgiLCAicmVzb2x2ZVJ1bnRpbWVFeHRlbnNpb25zIiwgImRlZmF1bHRTVFNIdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlciIsICJjb25maWciLCAiaW1wb3J0X21pZGRsZXdhcmVfZW5kcG9pbnQiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAiQXNzdW1lUm9sZUNvbW1hbmQiLCAiaW5pdF9Bc3N1bWVSb2xlQ29tbWFuZCIsICJfX2VzbU1pbiIsICJpbml0X0VuZHBvaW50UGFyYW1ldGVycyIsICJpbml0X3NjaGVtYXNfMCIsICIkQ29tbWFuZCIsICJjb21tb25QYXJhbXMiLCAiQ29tbWFuZCIsICJjcyIsICJjb25maWciLCAibyIsICJBc3N1bWVSb2xlJCIsICJpbXBvcnRfbWlkZGxld2FyZV9lbmRwb2ludCIsICJpbXBvcnRfc21pdGh5X2NsaWVudCIsICJBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5Q29tbWFuZCIsICJpbml0X0Fzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlDb21tYW5kIiwgIl9fZXNtTWluIiwgImluaXRfRW5kcG9pbnRQYXJhbWV0ZXJzIiwgImluaXRfc2NoZW1hc18wIiwgIiRDb21tYW5kIiwgImNvbW1vblBhcmFtcyIsICJDb21tYW5kIiwgImNzIiwgImNvbmZpZyIsICJvIiwgIkFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHkkIiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgImNvbW1hbmRzIiwgIlNUUyIsICJpbml0X1NUUyIsICJfX2VzbU1pbiIsICJpbml0X0Fzc3VtZVJvbGVDb21tYW5kIiwgImluaXRfQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eUNvbW1hbmQiLCAiaW5pdF9TVFNDbGllbnQiLCAiQXNzdW1lUm9sZUNvbW1hbmQiLCAiQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eUNvbW1hbmQiLCAiU1RTQ2xpZW50IiwgImluaXRfY29tbWFuZHMiLCAiX19lc21NaW4iLCAiaW5pdF9Bc3N1bWVSb2xlQ29tbWFuZCIsICJpbml0X0Fzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlDb21tYW5kIiwgImluaXRfbW9kZWxzXzAiLCAiX19lc21NaW4iLCAiaW1wb3J0X3JlZ2lvbl9jb25maWdfcmVzb2x2ZXIiLCAiZ2V0QWNjb3VudElkRnJvbUFzc3VtZWRSb2xlVXNlciIsICJyZXNvbHZlUmVnaW9uIiwgImdldERlZmF1bHRSb2xlQXNzdW1lciIsICJnZXREZWZhdWx0Um9sZUFzc3VtZXJXaXRoV2ViSWRlbnRpdHkiLCAiaXNIMiIsICJpbml0X2RlZmF1bHRTdHNSb2xlQXNzdW1lcnMiLCAiX19lc21NaW4iLCAiaW5pdF9jbGllbnQiLCAiaW5pdF9Bc3N1bWVSb2xlQ29tbWFuZCIsICJpbml0X0Fzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlDb21tYW5kIiwgImFzc3VtZWRSb2xlVXNlciIsICJhcm5Db21wb25lbnRzIiwgIl9yZWdpb24iLCAiX3BhcmVudFJlZ2lvbiIsICJjcmVkZW50aWFsUHJvdmlkZXJMb2dnZXIiLCAibG9hZGVyQ29uZmlnIiwgInJlZ2lvbiIsICJwYXJlbnRSZWdpb24iLCAic3RzRGVmYXVsdFJlZ2lvbiIsICJyZXNvbHZlZFJlZ2lvbiIsICJzdHNPcHRpb25zIiwgIlNUU0NsaWVudCIsICJzdHNDbGllbnQiLCAiY2xvc3VyZVNvdXJjZUNyZWRzIiwgInNvdXJjZUNyZWRzIiwgInBhcmFtcyIsICJsb2dnZXIiLCAicHJvZmlsZSIsICJyZXF1ZXN0SGFuZGxlciIsICJ1c2VyQWdlbnRBcHBJZCIsICJpc0NvbXBhdGlibGVSZXF1ZXN0SGFuZGxlciIsICJDcmVkZW50aWFscyIsICJBc3N1bWVkUm9sZVVzZXIiLCAiQXNzdW1lUm9sZUNvbW1hbmQiLCAiYWNjb3VudElkIiwgImNyZWRlbnRpYWxzIiwgInNldENyZWRlbnRpYWxGZWF0dXJlIiwgIkFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlDb21tYW5kIiwgImdldEN1c3RvbWl6YWJsZVN0c0NsaWVudEN0b3IiLCAiZ2V0RGVmYXVsdFJvbGVBc3N1bWVyIiwgImdldERlZmF1bHRSb2xlQXNzdW1lcldpdGhXZWJJZGVudGl0eSIsICJkZWNvcmF0ZURlZmF1bHRDcmVkZW50aWFsUHJvdmlkZXIiLCAiaW5pdF9kZWZhdWx0Um9sZUFzc3VtZXJzIiwgIl9fZXNtTWluIiwgImluaXRfZGVmYXVsdFN0c1JvbGVBc3N1bWVycyIsICJpbml0X1NUU0NsaWVudCIsICJiYXNlQ3RvciIsICJjdXN0b21pemF0aW9ucyIsICJjb25maWciLCAiY3VzdG9taXphdGlvbiIsICJzdHNPcHRpb25zIiwgInN0c1BsdWdpbnMiLCAiU1RTQ2xpZW50IiwgInByb3ZpZGVyIiwgImlucHV0IiwgInN0c19leHBvcnRzIiwgIl9fZXhwb3J0IiwgIkFzc3VtZVJvbGUkIiwgIkFzc3VtZVJvbGVDb21tYW5kIiwgIkFzc3VtZVJvbGVSZXF1ZXN0JCIsICJBc3N1bWVSb2xlUmVzcG9uc2UkIiwgIkFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHkkIiwgIkFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlDb21tYW5kIiwgIkFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlSZXF1ZXN0JCIsICJBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5UmVzcG9uc2UkIiwgIkFzc3VtZWRSb2xlVXNlciQiLCAiQ3JlZGVudGlhbHMkIiwgIkV4cGlyZWRUb2tlbkV4Y2VwdGlvbiIsICJFeHBpcmVkVG9rZW5FeGNlcHRpb24kIiwgIklEUENvbW11bmljYXRpb25FcnJvckV4Y2VwdGlvbiIsICJJRFBDb21tdW5pY2F0aW9uRXJyb3JFeGNlcHRpb24kIiwgIklEUFJlamVjdGVkQ2xhaW1FeGNlcHRpb24iLCAiSURQUmVqZWN0ZWRDbGFpbUV4Y2VwdGlvbiQiLCAiSW52YWxpZElkZW50aXR5VG9rZW5FeGNlcHRpb24iLCAiSW52YWxpZElkZW50aXR5VG9rZW5FeGNlcHRpb24kIiwgIk1hbGZvcm1lZFBvbGljeURvY3VtZW50RXhjZXB0aW9uIiwgIk1hbGZvcm1lZFBvbGljeURvY3VtZW50RXhjZXB0aW9uJCIsICJQYWNrZWRQb2xpY3lUb29MYXJnZUV4Y2VwdGlvbiIsICJQYWNrZWRQb2xpY3lUb29MYXJnZUV4Y2VwdGlvbiQiLCAiUG9saWN5RGVzY3JpcHRvclR5cGUkIiwgIlByb3ZpZGVkQ29udGV4dCQiLCAiUmVnaW9uRGlzYWJsZWRFeGNlcHRpb24iLCAiUmVnaW9uRGlzYWJsZWRFeGNlcHRpb24kIiwgIlNUUyIsICJTVFNDbGllbnQiLCAiU1RTU2VydmljZUV4Y2VwdGlvbiIsICJTVFNTZXJ2aWNlRXhjZXB0aW9uJCIsICJUYWckIiwgIl9fQ2xpZW50IiwgImRlY29yYXRlRGVmYXVsdENyZWRlbnRpYWxQcm92aWRlciIsICJlcnJvclR5cGVSZWdpc3RyaWVzIiwgImdldERlZmF1bHRSb2xlQXNzdW1lciIsICJnZXREZWZhdWx0Um9sZUFzc3VtZXJXaXRoV2ViSWRlbnRpdHkiLCAiaW5pdF9zdHMiLCAiX19lc21NaW4iLCAiaW5pdF9TVFNDbGllbnQiLCAiaW5pdF9TVFMiLCAiaW5pdF9jb21tYW5kcyIsICJpbml0X3NjaGVtYXNfMCIsICJpbml0X2Vycm9ycyIsICJpbml0X21vZGVsc18wIiwgImluaXRfZGVmYXVsdFJvbGVBc3N1bWVycyIsICJpbml0X1NUU1NlcnZpY2VFeGNlcHRpb24iLCAicmVxdWlyZV9kaXN0X2NqcyIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAic2hhcmVkSW5pRmlsZUxvYWRlciIsICJwcm9wZXJ0eVByb3ZpZGVyIiwgImNoaWxkX3Byb2Nlc3MiLCAidXRpbCIsICJjbGllbnQiLCAiZ2V0VmFsaWRhdGVkUHJvY2Vzc0NyZWRlbnRpYWxzIiwgInByb2ZpbGVOYW1lIiwgImRhdGEiLCAicHJvZmlsZXMiLCAiY3VycmVudFRpbWUiLCAiYWNjb3VudElkIiwgImNyZWRlbnRpYWxzIiwgInJlc29sdmVQcm9jZXNzQ3JlZGVudGlhbHMiLCAibG9nZ2VyIiwgInByb2ZpbGUiLCAiY3JlZGVudGlhbFByb2Nlc3MiLCAiZXhlY1Byb21pc2UiLCAic3Rkb3V0IiwgImVycm9yIiwgImZyb21Qcm9jZXNzIiwgImluaXQiLCAiY2FsbGVyQ2xpZW50Q29uZmlnIiwgInJlcXVpcmVfZnJvbVdlYlRva2VuIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJfX2NyZWF0ZUJpbmRpbmciLCAibyIsICJtIiwgImsiLCAiazIiLCAiZGVzYyIsICJfX3NldE1vZHVsZURlZmF1bHQiLCAidiIsICJfX2ltcG9ydFN0YXIiLCAib3duS2V5cyIsICJhciIsICJtb2QiLCAicmVzdWx0IiwgImkiLCAiZnJvbVdlYlRva2VuIiwgImluaXQiLCAiYXdzSWRlbnRpdHlQcm9wZXJ0aWVzIiwgInJvbGVBcm4iLCAicm9sZVNlc3Npb25OYW1lIiwgIndlYklkZW50aXR5VG9rZW4iLCAicHJvdmlkZXJJZCIsICJwb2xpY3lBcm5zIiwgInBvbGljeSIsICJkdXJhdGlvblNlY29uZHMiLCAicm9sZUFzc3VtZXJXaXRoV2ViSWRlbnRpdHkiLCAiZ2V0RGVmYXVsdFJvbGVBc3N1bWVyV2l0aFdlYklkZW50aXR5IiwgInJlcXVpcmVfZnJvbVRva2VuRmlsZSIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAiY2xpZW50XzEiLCAicHJvcGVydHlfcHJvdmlkZXJfMSIsICJzaGFyZWRfaW5pX2ZpbGVfbG9hZGVyXzEiLCAiZnNfMSIsICJmcm9tV2ViVG9rZW5fMSIsICJFTlZfVE9LRU5fRklMRSIsICJFTlZfUk9MRV9BUk4iLCAiRU5WX1JPTEVfU0VTU0lPTl9OQU1FIiwgImZyb21Ub2tlbkZpbGUiLCAiaW5pdCIsICJhd3NJZGVudGl0eVByb3BlcnRpZXMiLCAid2ViSWRlbnRpdHlUb2tlbkZpbGUiLCAicm9sZUFybiIsICJyb2xlU2Vzc2lvbk5hbWUiLCAiY3JlZGVudGlhbHMiLCAicmVxdWlyZV9kaXN0X2NqcyIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAiZnJvbVRva2VuRmlsZSIsICJmcm9tV2ViVG9rZW4iLCAiayIsICJyZXF1aXJlX2Rpc3RfY2pzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJzaGFyZWRJbmlGaWxlTG9hZGVyIiwgInByb3BlcnR5UHJvdmlkZXIiLCAiY2xpZW50IiwgImNyZWRlbnRpYWxQcm92aWRlckxvZ2luIiwgInJlc29sdmVDcmVkZW50aWFsU291cmNlIiwgImNyZWRlbnRpYWxTb3VyY2UiLCAicHJvZmlsZU5hbWUiLCAibG9nZ2VyIiwgInNvdXJjZVByb3ZpZGVyc01hcCIsICJvcHRpb25zIiwgImZyb21IdHRwIiwgImZyb21Db250YWluZXJNZXRhZGF0YSIsICJzZXROYW1lZFByb3ZpZGVyIiwgImZyb21JbnN0YW5jZU1ldGFkYXRhIiwgImZyb21FbnYiLCAiY3JlZHMiLCAiaXNBc3N1bWVSb2xlUHJvZmlsZSIsICJhcmciLCAicHJvZmlsZSIsICJpc0Fzc3VtZVJvbGVXaXRoU291cmNlUHJvZmlsZSIsICJpc0NyZWRlbnRpYWxTb3VyY2VQcm9maWxlIiwgIndpdGhTb3VyY2VQcm9maWxlIiwgIndpdGhQcm92aWRlclByb2ZpbGUiLCAicmVzb2x2ZUFzc3VtZVJvbGVDcmVkZW50aWFscyIsICJwcm9maWxlcyIsICJjYWxsZXJDbGllbnRDb25maWciLCAidmlzaXRlZFByb2ZpbGVzIiwgInJlc29sdmVQcm9maWxlRGF0YSIsICJwcm9maWxlRGF0YSIsICJzb3VyY2VfcHJvZmlsZSIsICJyZWdpb24iLCAiZ2V0RGVmYXVsdFJvbGVBc3N1bWVyIiwgInNvdXJjZUNyZWRzUHJvdmlkZXIiLCAiaXNDcmVkZW50aWFsU291cmNlV2l0aG91dFJvbGVBcm4iLCAicGFyYW1zIiwgIm1mYV9zZXJpYWwiLCAic291cmNlQ3JlZHMiLCAic2VjdGlvbiIsICJpc0xvZ2luUHJvZmlsZSIsICJkYXRhIiwgInJlc29sdmVMb2dpbkNyZWRlbnRpYWxzIiwgImNyZWRlbnRpYWxzIiwgImlzUHJvY2Vzc1Byb2ZpbGUiLCAicmVzb2x2ZVByb2Nlc3NDcmVkZW50aWFscyIsICJmcm9tUHJvY2VzcyIsICJyZXNvbHZlU3NvQ3JlZGVudGlhbHMiLCAiZnJvbVNTTyIsICJpc1Nzb1Byb2ZpbGUiLCAiaXNTdGF0aWNDcmVkc1Byb2ZpbGUiLCAicmVzb2x2ZVN0YXRpY0NyZWRlbnRpYWxzIiwgImlzV2ViSWRlbnRpdHlQcm9maWxlIiwgInJlc29sdmVXZWJJZGVudGl0eUNyZWRlbnRpYWxzIiwgImZyb21Ub2tlbkZpbGUiLCAiaXNBc3N1bWVSb2xlUmVjdXJzaXZlQ2FsbCIsICJmcm9tSW5pIiwgImluaXQiLCAicmVxdWlyZV9kaXN0X2NqcyIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAiY3JlZGVudGlhbFByb3ZpZGVyRW52IiwgInByb3BlcnR5UHJvdmlkZXIiLCAic2hhcmVkSW5pRmlsZUxvYWRlciIsICJFTlZfSU1EU19ESVNBQkxFRCIsICJyZW1vdGVQcm92aWRlciIsICJpbml0IiwgIkVOVl9DTURTX0ZVTExfVVJJIiwgIkVOVl9DTURTX1JFTEFUSVZFX1VSSSIsICJmcm9tQ29udGFpbmVyTWV0YWRhdGEiLCAiZnJvbUluc3RhbmNlTWV0YWRhdGEiLCAiZnJvbUh0dHAiLCAibWVtb2l6ZUNoYWluIiwgInByb3ZpZGVycyIsICJ0cmVhdEFzRXhwaXJlZCIsICJjaGFpbiIsICJpbnRlcm5hbENyZWF0ZUNoYWluIiwgImFjdGl2ZUxvY2siLCAicGFzc2l2ZUxvY2siLCAiY3JlZGVudGlhbHMiLCAicHJvdmlkZXIiLCAib3B0aW9ucyIsICJhd3NJZGVudGl0eVByb3BlcnRpZXMiLCAibGFzdFByb3ZpZGVyRXJyb3IiLCAiZXJyIiwgIm11bHRpcGxlQ3JlZGVudGlhbFNvdXJjZVdhcm5pbmdFbWl0dGVkIiwgImRlZmF1bHRQcm92aWRlciIsICJzc29TdGFydFVybCIsICJzc29BY2NvdW50SWQiLCAic3NvUmVnaW9uIiwgInNzb1JvbGVOYW1lIiwgInNzb1Nlc3Npb24iLCAiZnJvbVNTTyIsICJmcm9tSW5pIiwgImZyb21Qcm9jZXNzIiwgImZyb21Ub2tlbkZpbGUiLCAiY3JlZGVudGlhbHNUcmVhdGVkQXNFeHBpcmVkIiwgImNyZWRlbnRpYWxzV2lsbE5lZWRSZWZyZXNoIiwgImltcG9ydF9zY2hlbWEiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAiUHJvdG9jb2xMaWIiLCAiaW5pdF9Qcm90b2NvbExpYiIsICJfX2VzbU1pbiIsICJxdWVyeUNvbXBhdCIsICJkZWZhdWx0Q29udGVudFR5cGUiLCAiaW5wdXRTY2hlbWEiLCAibWVtYmVycyIsICJodHRwUGF5bG9hZE1lbWJlciIsICJtIiwgIm1lZGlhVHlwZSIsICJodHRwUXVlcnkiLCAiaHR0cFF1ZXJ5UGFyYW1zIiwgImh0dHBIZWFkZXIiLCAiaHR0cExhYmVsIiwgImh0dHBQcmVmaXhIZWFkZXJzIiwgImVycm9ySWRlbnRpZmllciIsICJkZWZhdWx0TmFtZXNwYWNlIiwgInJlc3BvbnNlIiwgImRhdGFPYmplY3QiLCAibWV0YWRhdGEiLCAiZ2V0RXJyb3JTY2hlbWEiLCAibmFtZXNwYWNlIiwgImVycm9yTmFtZSIsICJlcnJvck1ldGFkYXRhIiwgInJlZ2lzdHJ5IiwgInN5bnRoZXRpYyIsICJiYXNlRXhjZXB0aW9uU2NoZW1hIiwgIkVycm9yQ3RvciIsICJleGNlcHRpb24iLCAiYWRkaXRpb25zIiwgIm1zZyIsICJlcnJvciIsICJyZXFJZCIsICJvdXRwdXQiLCAicXVlcnlFcnJvckhlYWRlciIsICJDb2RlIiwgIlR5cGUiLCAiZW50cmllcyIsICJFcnJvciIsICJrIiwgInYiLCAicXVlcnlDb21wYXRFcnJvckRhdGEiLCAiZXJyb3JEYXRhIiwgInNjaGVtYSIsICJpbXBvcnRfY2JvciIsICJpbXBvcnRfc2NoZW1hIiwgIkF3c1NtaXRoeVJwY1YyQ2JvclByb3RvY29sIiwgImluaXRfQXdzU21pdGh5UnBjVjJDYm9yUHJvdG9jb2wiLCAiX19lc21NaW4iLCAiaW5pdF9Qcm90b2NvbExpYiIsICJkZWZhdWx0TmFtZXNwYWNlIiwgImF3c1F1ZXJ5Q29tcGF0aWJsZSIsICJQcm90b2NvbExpYiIsICJvcGVyYXRpb25TY2hlbWEiLCAiaW5wdXQiLCAiY29udGV4dCIsICJyZXF1ZXN0IiwgInJlc3BvbnNlIiwgImRhdGFPYmplY3QiLCAibWV0YWRhdGEiLCAiZXJyb3JOYW1lIiwgImNvbXBhdEhlYWRlciIsICJlcnJvclNjaGVtYSIsICJlcnJvck1ldGFkYXRhIiwgIm5zIiwgIm1lc3NhZ2UiLCAiRXJyb3JDdG9yIiwgImV4Y2VwdGlvbiIsICJvdXRwdXQiLCAibmFtZSIsICJtZW1iZXIiLCAiX3RvU3RyIiwgIl90b0Jvb2wiLCAiX3RvTnVtIiwgImluaXRfY29lcmNpbmdfc2VyaWFsaXplcnMiLCAiX19lc21NaW4iLCAidmFsIiwgIndhcm5pbmciLCAibG93ZXJjYXNlIiwgIm51bSIsICJTZXJkZUNvbnRleHRDb25maWciLCAiaW5pdF9Db25maWd1cmFibGVTZXJkZUNvbnRleHQiLCAiX19lc21NaW4iLCAic2VyZGVDb250ZXh0IiwgIlVuaW9uU2VyZGUiLCAiaW5pdF9VbmlvblNlcmRlIiwgIl9fZXNtTWluIiwgImZyb20iLCAidG8iLCAiayIsICJrZXkiLCAidiIsICJqc29uUmV2aXZlciIsICJrZXkiLCAidmFsdWUiLCAiY29udGV4dCIsICJudW1lcmljU3RyaW5nIiwgImltcG9ydF9zZXJkZSIsICJpbml0X2pzb25SZXZpdmVyIiwgIl9fZXNtTWluIiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgImltcG9ydF91dGlsX3V0ZjgiLCAiY29sbGVjdEJvZHlTdHJpbmciLCAiaW5pdF9jb21tb24iLCAiX19lc21NaW4iLCAic3RyZWFtQm9keSIsICJjb250ZXh0IiwgImJvZHkiLCAicGFyc2VKc29uQm9keSIsICJwYXJzZUpzb25FcnJvckJvZHkiLCAibG9hZFJlc3RKc29uRXJyb3JDb2RlIiwgImluaXRfcGFyc2VKc29uQm9keSIsICJfX2VzbU1pbiIsICJpbml0X2NvbW1vbiIsICJzdHJlYW1Cb2R5IiwgImNvbnRleHQiLCAiY29sbGVjdEJvZHlTdHJpbmciLCAiZW5jb2RlZCIsICJlIiwgImVycm9yQm9keSIsICJ2YWx1ZSIsICJvdXRwdXQiLCAiZGF0YSIsICJmaW5kS2V5IiwgIm9iamVjdCIsICJrZXkiLCAiayIsICJzYW5pdGl6ZUVycm9yQ29kZSIsICJyYXdWYWx1ZSIsICJjbGVhblZhbHVlIiwgImhlYWRlcktleSIsICJjb2RlS2V5IiwgImltcG9ydF9wcm90b2NvbHMiLCAiaW1wb3J0X3NjaGVtYSIsICJpbXBvcnRfc2VyZGUiLCAiaW1wb3J0X3V0aWxfYmFzZTY0IiwgIkpzb25TaGFwZURlc2VyaWFsaXplciIsICJpbml0X0pzb25TaGFwZURlc2VyaWFsaXplciIsICJfX2VzbU1pbiIsICJpbml0X0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dCIsICJpbml0X1VuaW9uU2VyZGUiLCAiaW5pdF9qc29uUmV2aXZlciIsICJpbml0X3BhcnNlSnNvbkJvZHkiLCAiU2VyZGVDb250ZXh0Q29uZmlnIiwgInNldHRpbmdzIiwgInNjaGVtYSIsICJkYXRhIiwgImpzb25SZXZpdmVyIiwgInBhcnNlSnNvbkJvZHkiLCAidmFsdWUiLCAiaXNPYmplY3QiLCAibnMiLCAicmVjb3JkIiwgInVuaW9uIiwgIm91dCIsICJuYW1lTWFwIiwgImpzb25OYW1lIiwgInVuaW9uU2VyZGUiLCAiVW5pb25TZXJkZSIsICJtZW1iZXJOYW1lIiwgIm1lbWJlclNjaGVtYSIsICJmcm9tS2V5IiwgImsiLCAidiIsICJ0IiwgImxpc3RNZW1iZXIiLCAic3BhcnNlIiwgIml0ZW0iLCAibWFwTWVtYmVyIiwgIl9rIiwgIl92IiwgIm1lZGlhVHlwZSIsICJ1bnR5cGVkIiwgImltcG9ydF9zZXJkZSIsICJOVU1FUklDX0NPTlRST0xfQ0hBUiIsICJKc29uUmVwbGFjZXIiLCAiaW5pdF9qc29uUmVwbGFjZXIiLCAiX19lc21NaW4iLCAia2V5IiwgInZhbHVlIiwgInYiLCAicyIsICJqc29uIiwgImltcG9ydF9wcm90b2NvbHMiLCAiaW1wb3J0X3NjaGVtYSIsICJpbXBvcnRfc2VyZGUiLCAiaW1wb3J0X3V0aWxfYmFzZTY0IiwgIkpzb25TaGFwZVNlcmlhbGl6ZXIiLCAiaW5pdF9Kc29uU2hhcGVTZXJpYWxpemVyIiwgIl9fZXNtTWluIiwgImluaXRfQ29uZmlndXJhYmxlU2VyZGVDb250ZXh0IiwgImluaXRfanNvblJlcGxhY2VyIiwgIlNlcmRlQ29udGV4dENvbmZpZyIsICJzZXR0aW5ncyIsICJzY2hlbWEiLCAidmFsdWUiLCAicm9vdFNjaGVtYSIsICJ1c2VSZXBsYWNlciIsICJyZXBsYWNlciIsICJKc29uUmVwbGFjZXIiLCAiY29udGFpbmVyIiwgImlzT2JqZWN0IiwgIm5zIiwgInJlY29yZCIsICJvdXQiLCAianNvbk5hbWUiLCAibmFtZU1hcCIsICJtZW1iZXJOYW1lIiwgIm1lbWJlclNjaGVtYSIsICJzZXJpYWxpemFibGVWYWx1ZSIsICJ0YXJnZXRLZXkiLCAiJHVua25vd24iLCAiayIsICJ2IiwgImxpc3RNZW1iZXIiLCAic3BhcnNlIiwgIml0ZW0iLCAibWFwTWVtYmVyIiwgIl9rIiwgIl92IiwgIm1lZGlhVHlwZSIsICJKc29uQ29kZWMiLCAiaW5pdF9Kc29uQ29kZWMiLCAiX19lc21NaW4iLCAiaW5pdF9Db25maWd1cmFibGVTZXJkZUNvbnRleHQiLCAiaW5pdF9Kc29uU2hhcGVEZXNlcmlhbGl6ZXIiLCAiaW5pdF9Kc29uU2hhcGVTZXJpYWxpemVyIiwgIlNlcmRlQ29udGV4dENvbmZpZyIsICJzZXR0aW5ncyIsICJzZXJpYWxpemVyIiwgIkpzb25TaGFwZVNlcmlhbGl6ZXIiLCAiZGVzZXJpYWxpemVyIiwgIkpzb25TaGFwZURlc2VyaWFsaXplciIsICJpbXBvcnRfcHJvdG9jb2xzIiwgImltcG9ydF9zY2hlbWEiLCAiQXdzSnNvblJwY1Byb3RvY29sIiwgImluaXRfQXdzSnNvblJwY1Byb3RvY29sIiwgIl9fZXNtTWluIiwgImluaXRfUHJvdG9jb2xMaWIiLCAiaW5pdF9Kc29uQ29kZWMiLCAiaW5pdF9wYXJzZUpzb25Cb2R5IiwgImRlZmF1bHROYW1lc3BhY2UiLCAic2VydmljZVRhcmdldCIsICJhd3NRdWVyeUNvbXBhdGlibGUiLCAianNvbkNvZGVjIiwgIkpzb25Db2RlYyIsICJQcm90b2NvbExpYiIsICJvcGVyYXRpb25TY2hlbWEiLCAiaW5wdXQiLCAiY29udGV4dCIsICJyZXF1ZXN0IiwgInJlc3BvbnNlIiwgImRhdGFPYmplY3QiLCAibWV0YWRhdGEiLCAiZXJyb3JJZGVudGlmaWVyIiwgImxvYWRSZXN0SnNvbkVycm9yQ29kZSIsICJlcnJvclNjaGVtYSIsICJlcnJvck1ldGFkYXRhIiwgIm5zIiwgIm1lc3NhZ2UiLCAiRXJyb3JDdG9yIiwgImV4Y2VwdGlvbiIsICJvdXRwdXQiLCAibmFtZSIsICJtZW1iZXIiLCAiQXdzSnNvbjFfMFByb3RvY29sIiwgImluaXRfQXdzSnNvbjFfMFByb3RvY29sIiwgIl9fZXNtTWluIiwgImluaXRfQXdzSnNvblJwY1Byb3RvY29sIiwgIkF3c0pzb25ScGNQcm90b2NvbCIsICJkZWZhdWx0TmFtZXNwYWNlIiwgInNlcnZpY2VUYXJnZXQiLCAiYXdzUXVlcnlDb21wYXRpYmxlIiwgImpzb25Db2RlYyIsICJBd3NKc29uMV8xUHJvdG9jb2wiLCAiaW5pdF9Bd3NKc29uMV8xUHJvdG9jb2wiLCAiX19lc21NaW4iLCAiaW5pdF9Bd3NKc29uUnBjUHJvdG9jb2wiLCAiQXdzSnNvblJwY1Byb3RvY29sIiwgImRlZmF1bHROYW1lc3BhY2UiLCAic2VydmljZVRhcmdldCIsICJhd3NRdWVyeUNvbXBhdGlibGUiLCAianNvbkNvZGVjIiwgImltcG9ydF9wcm90b2NvbHMiLCAiaW1wb3J0X3NjaGVtYSIsICJBd3NSZXN0SnNvblByb3RvY29sIiwgImluaXRfQXdzUmVzdEpzb25Qcm90b2NvbCIsICJfX2VzbU1pbiIsICJpbml0X1Byb3RvY29sTGliIiwgImluaXRfSnNvbkNvZGVjIiwgImluaXRfcGFyc2VKc29uQm9keSIsICJQcm90b2NvbExpYiIsICJkZWZhdWx0TmFtZXNwYWNlIiwgInNldHRpbmdzIiwgIkpzb25Db2RlYyIsICJzZXJkZUNvbnRleHQiLCAib3BlcmF0aW9uU2NoZW1hIiwgImlucHV0IiwgImNvbnRleHQiLCAicmVxdWVzdCIsICJpbnB1dFNjaGVtYSIsICJjb250ZW50VHlwZSIsICJyZXNwb25zZSIsICJvdXRwdXQiLCAib3V0cHV0U2NoZW1hIiwgIm5hbWUiLCAibWVtYmVyIiwgImRhdGFPYmplY3QiLCAibWV0YWRhdGEiLCAiZXJyb3JJZGVudGlmaWVyIiwgImxvYWRSZXN0SnNvbkVycm9yQ29kZSIsICJlcnJvclNjaGVtYSIsICJlcnJvck1ldGFkYXRhIiwgIm5zIiwgIm1lc3NhZ2UiLCAiRXJyb3JDdG9yIiwgImV4Y2VwdGlvbiIsICJ0YXJnZXQiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAiYXdzRXhwZWN0VW5pb24iLCAiaW5pdF9hd3NFeHBlY3RVbmlvbiIsICJfX2VzbU1pbiIsICJ2YWx1ZSIsICJyZXF1aXJlX3htbF9wYXJzZXIiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgInBhcnNlWE1MIiwgImZhc3RfeG1sX3BhcnNlcl8xIiwgInBhcnNlciIsICJfIiwgInZhbCIsICJ4bWxTdHJpbmciLCAicmVxdWlyZV9kaXN0X2NqcyIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAieG1sUGFyc2VyIiwgImVzY2FwZUF0dHJpYnV0ZSIsICJ2YWx1ZSIsICJlc2NhcGVFbGVtZW50IiwgIlhtbFRleHQiLCAiWG1sTm9kZSIsICJfWG1sTm9kZSIsICJuYW1lIiwgImNoaWxkVGV4dCIsICJ3aXRoTmFtZSIsICJub2RlIiwgImNoaWxkcmVuIiwgImNoaWxkIiwgImlucHV0IiwgImZpZWxkIiwgImxpc3ROYW1lIiwgIm1lbWJlck5hbWUiLCAidmFsdWVQcm92aWRlciIsICJub2RlcyIsICJjb250YWluZXJOb2RlIiwgImhhc0NoaWxkcmVuIiwgInhtbFRleHQiLCAiYXR0cmlidXRlcyIsICJhdHRyaWJ1dGVOYW1lIiwgImF0dHJpYnV0ZSIsICJjIiwgImltcG9ydF94bWxfYnVpbGRlciIsICJpbXBvcnRfcHJvdG9jb2xzIiwgImltcG9ydF9zY2hlbWEiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAiaW1wb3J0X3V0aWxfdXRmOCIsICJYbWxTaGFwZURlc2VyaWFsaXplciIsICJpbml0X1htbFNoYXBlRGVzZXJpYWxpemVyIiwgIl9fZXNtTWluIiwgImluaXRfQ29uZmlndXJhYmxlU2VyZGVDb250ZXh0IiwgImluaXRfVW5pb25TZXJkZSIsICJTZXJkZUNvbnRleHRDb25maWciLCAic2V0dGluZ3MiLCAic2VyZGVDb250ZXh0IiwgInNjaGVtYSIsICJieXRlcyIsICJrZXkiLCAibnMiLCAibWVtYmVyU2NoZW1hcyIsICJtZW1iZXJOcyIsICJvdXRwdXQiLCAibWVtYmVyTmFtZSIsICJ4bWxTdHJpbmciLCAicGFyc2VkT2JqZWN0IiwgIl9zY2hlbWEiLCAidmFsdWUiLCAidHJhaXRzIiwgInNwYXJzZSIsICJmbGF0IiwgImxpc3RWYWx1ZSIsICJidWZmZXIiLCAic291cmNlS2V5IiwgInNvdXJjZSIsICJzb3VyY2VBcnJheSIsICJ2IiwgImtleU5zIiwgImVudHJpZXMiLCAia2V5UHJvcGVydHkiLCAidmFsdWVQcm9wZXJ0eSIsICJlbnRyeSIsICJ1bmlvbiIsICJ1bmlvblNlcmRlIiwgIlVuaW9uU2VyZGUiLCAibWVtYmVyU2NoZW1hIiwgIm1lbWJlclRyYWl0cyIsICJ4bWxPYmplY3RLZXkiLCAieG1sIiwgInBhcnNlZE9iaiIsICJlIiwgInRleHROb2RlTmFtZSIsICJwYXJzZWRPYmpUb1JldHVybiIsICJpbXBvcnRfcHJvdG9jb2xzIiwgImltcG9ydF9zY2hlbWEiLCAiaW1wb3J0X3NlcmRlIiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgImltcG9ydF91dGlsX2Jhc2U2NCIsICJRdWVyeVNoYXBlU2VyaWFsaXplciIsICJpbml0X1F1ZXJ5U2hhcGVTZXJpYWxpemVyIiwgIl9fZXNtTWluIiwgImluaXRfQ29uZmlndXJhYmxlU2VyZGVDb250ZXh0IiwgIlNlcmRlQ29udGV4dENvbmZpZyIsICJzZXR0aW5ncyIsICJzY2hlbWEiLCAidmFsdWUiLCAicHJlZml4IiwgIm5zIiwgIm1lbWJlciIsICJmbGF0IiwgImkiLCAiaXRlbSIsICJ0cmFpdHMiLCAic3VmZml4IiwgImtleSIsICJrZXlTY2hlbWEiLCAibWVtYmVyU2NoZW1hIiwgImsiLCAidiIsICJrZXlUcmFpdHMiLCAia2V5U3VmZml4IiwgInZhbFRyYWl0cyIsICJ2YWx1ZVN1ZmZpeCIsICJ2YWx1ZUtleSIsICJkaWRXcml0ZU1lbWJlciIsICJtZW1iZXJOYW1lIiwgIiR1bmtub3duIiwgInN0ciIsICJ4bWxOYW1lIiwgImVjMlF1ZXJ5TmFtZSIsICJrZXlTb3VyY2UiLCAiZWMyIiwgImNhcGl0YWxpemVLZXlzIiwgImltcG9ydF9wcm90b2NvbHMiLCAiaW1wb3J0X3NjaGVtYSIsICJBd3NRdWVyeVByb3RvY29sIiwgImluaXRfQXdzUXVlcnlQcm90b2NvbCIsICJfX2VzbU1pbiIsICJpbml0X1Byb3RvY29sTGliIiwgImluaXRfWG1sU2hhcGVEZXNlcmlhbGl6ZXIiLCAiaW5pdF9RdWVyeVNoYXBlU2VyaWFsaXplciIsICJQcm90b2NvbExpYiIsICJvcHRpb25zIiwgInNldHRpbmdzIiwgIlF1ZXJ5U2hhcGVTZXJpYWxpemVyIiwgIlhtbFNoYXBlRGVzZXJpYWxpemVyIiwgInNlcmRlQ29udGV4dCIsICJvcGVyYXRpb25TY2hlbWEiLCAiaW5wdXQiLCAiY29udGV4dCIsICJyZXF1ZXN0IiwgImFjdGlvbiIsICJyZXNwb25zZSIsICJkZXNlcmlhbGl6ZXIiLCAibnMiLCAiZGF0YU9iamVjdCIsICJieXRlcyIsICJoZWFkZXIiLCAidmFsdWUiLCAic2hvcnROYW1lIiwgImF3c1F1ZXJ5UmVzdWx0S2V5IiwgIm1ldGFkYXRhIiwgImVycm9ySWRlbnRpZmllciIsICJlcnJvckRhdGEiLCAibWVzc2FnZSIsICJlcnJvclNjaGVtYSIsICJlcnJvck1ldGFkYXRhIiwgIkVycm9yQ3RvciIsICJleGNlcHRpb24iLCAib3V0cHV0IiwgIm5hbWUiLCAibWVtYmVyIiwgInRhcmdldCIsICJkYXRhIiwgImNvZGUiLCAiQXdzRWMyUXVlcnlQcm90b2NvbCIsICJpbml0X0F3c0VjMlF1ZXJ5UHJvdG9jb2wiLCAiX19lc21NaW4iLCAiaW5pdF9Bd3NRdWVyeVByb3RvY29sIiwgIkF3c1F1ZXJ5UHJvdG9jb2wiLCAib3B0aW9ucyIsICJlYzJTZXR0aW5ncyIsICJpbXBvcnRfeG1sX2J1aWxkZXIiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAicGFyc2VYbWxCb2R5IiwgInBhcnNlWG1sRXJyb3JCb2R5IiwgImxvYWRSZXN0WG1sRXJyb3JDb2RlIiwgImluaXRfcGFyc2VYbWxCb2R5IiwgIl9fZXNtTWluIiwgImluaXRfY29tbW9uIiwgInN0cmVhbUJvZHkiLCAiY29udGV4dCIsICJjb2xsZWN0Qm9keVN0cmluZyIsICJlbmNvZGVkIiwgInBhcnNlZE9iaiIsICJlIiwgInRleHROb2RlTmFtZSIsICJrZXkiLCAicGFyc2VkT2JqVG9SZXR1cm4iLCAiZXJyb3JCb2R5IiwgInZhbHVlIiwgIm91dHB1dCIsICJkYXRhIiwgImltcG9ydF94bWxfYnVpbGRlciIsICJpbXBvcnRfcHJvdG9jb2xzIiwgImltcG9ydF9zY2hlbWEiLCAiaW1wb3J0X3NlcmRlIiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgImltcG9ydF91dGlsX2Jhc2U2NCIsICJYbWxTaGFwZVNlcmlhbGl6ZXIiLCAiaW5pdF9YbWxTaGFwZVNlcmlhbGl6ZXIiLCAiX19lc21NaW4iLCAiaW5pdF9Db25maWd1cmFibGVTZXJkZUNvbnRleHQiLCAiU2VyZGVDb250ZXh0Q29uZmlnIiwgInNldHRpbmdzIiwgInNjaGVtYSIsICJ2YWx1ZSIsICJucyIsICJ0cmFpdHMiLCAiYnl0ZXMiLCAic3RyIiwgImJ1ZmZlciIsICJwYXJlbnRYbWxucyIsICJuYW1lIiwgInN0cnVjdFhtbE5vZGUiLCAieG1sbnNBdHRyIiwgInhtbG5zIiwgIm1lbWJlck5hbWUiLCAibWVtYmVyU2NoZW1hIiwgInZhbCIsICJtZW1iZXJOb2RlIiwgIiR1bmtub3duIiwgImsiLCAidiIsICJub2RlIiwgImxpc3RNZW1iZXIiLCAiYXJyYXkiLCAiY29udGFpbmVyIiwgImxpc3RUcmFpdHMiLCAibGlzdFZhbHVlU2NoZW1hIiwgImxpc3RWYWx1ZVRyYWl0cyIsICJzcGFyc2UiLCAiZmxhdCIsICJ3cml0ZUl0ZW0iLCAic3RydWN0IiwgImxpc3RJdGVtTm9kZSIsICJsaXN0Tm9kZSIsICJtYXBNZW1iZXIiLCAibWFwIiwgImNvbnRhaW5lcklzTWFwIiwgIm1hcFRyYWl0cyIsICJtYXBLZXlTY2hlbWEiLCAia2V5VGFnIiwgIm1hcFZhbHVlU2NoZW1hIiwgIm1hcFZhbHVlVHJhaXRzIiwgInZhbHVlVGFnIiwgImFkZEtleVZhbHVlIiwgImVudHJ5IiwgImtleSIsICJrZXlOb2RlIiwgImtleVhtbG5zQXR0ciIsICJrZXlYbWxucyIsICJ2YWx1ZU5vZGUiLCAibWFwTm9kZSIsICJfc2NoZW1hIiwgIm5vZGVDb250ZW50cyIsICJpbnRvIiwgImNvbnRlbnQiLCAicHJlZml4IiwgIlhtbENvZGVjIiwgImluaXRfWG1sQ29kZWMiLCAiX19lc21NaW4iLCAiaW5pdF9Db25maWd1cmFibGVTZXJkZUNvbnRleHQiLCAiaW5pdF9YbWxTaGFwZURlc2VyaWFsaXplciIsICJpbml0X1htbFNoYXBlU2VyaWFsaXplciIsICJTZXJkZUNvbnRleHRDb25maWciLCAic2V0dGluZ3MiLCAic2VyaWFsaXplciIsICJYbWxTaGFwZVNlcmlhbGl6ZXIiLCAiZGVzZXJpYWxpemVyIiwgIlhtbFNoYXBlRGVzZXJpYWxpemVyIiwgImltcG9ydF9wcm90b2NvbHMiLCAiaW1wb3J0X3NjaGVtYSIsICJBd3NSZXN0WG1sUHJvdG9jb2wiLCAiaW5pdF9Bd3NSZXN0WG1sUHJvdG9jb2wiLCAiX19lc21NaW4iLCAiaW5pdF9Qcm90b2NvbExpYiIsICJpbml0X3BhcnNlWG1sQm9keSIsICJpbml0X1htbENvZGVjIiwgIlByb3RvY29sTGliIiwgIm9wdGlvbnMiLCAic2V0dGluZ3MiLCAiWG1sQ29kZWMiLCAib3BlcmF0aW9uU2NoZW1hIiwgImlucHV0IiwgImNvbnRleHQiLCAicmVxdWVzdCIsICJpbnB1dFNjaGVtYSIsICJjb250ZW50VHlwZSIsICJyZXNwb25zZSIsICJkYXRhT2JqZWN0IiwgIm1ldGFkYXRhIiwgImVycm9ySWRlbnRpZmllciIsICJsb2FkUmVzdFhtbEVycm9yQ29kZSIsICJrZXkiLCAiZXJyb3JTY2hlbWEiLCAiZXJyb3JNZXRhZGF0YSIsICJucyIsICJtZXNzYWdlIiwgIkVycm9yQ3RvciIsICJleGNlcHRpb24iLCAib3V0cHV0IiwgIm5hbWUiLCAibWVtYmVyIiwgInRhcmdldCIsICJ2YWx1ZSIsICJwcm90b2NvbHNfZXhwb3J0cyIsICJfX2V4cG9ydCIsICJBd3NFYzJRdWVyeVByb3RvY29sIiwgIkF3c0pzb24xXzBQcm90b2NvbCIsICJBd3NKc29uMV8xUHJvdG9jb2wiLCAiQXdzSnNvblJwY1Byb3RvY29sIiwgIkF3c1F1ZXJ5UHJvdG9jb2wiLCAiQXdzUmVzdEpzb25Qcm90b2NvbCIsICJBd3NSZXN0WG1sUHJvdG9jb2wiLCAiQXdzU21pdGh5UnBjVjJDYm9yUHJvdG9jb2wiLCAiSnNvbkNvZGVjIiwgIkpzb25TaGFwZURlc2VyaWFsaXplciIsICJKc29uU2hhcGVTZXJpYWxpemVyIiwgIlhtbENvZGVjIiwgIlhtbFNoYXBlRGVzZXJpYWxpemVyIiwgIlhtbFNoYXBlU2VyaWFsaXplciIsICJfdG9Cb29sIiwgIl90b051bSIsICJfdG9TdHIiLCAiYXdzRXhwZWN0VW5pb24iLCAibG9hZFJlc3RKc29uRXJyb3JDb2RlIiwgImxvYWRSZXN0WG1sRXJyb3JDb2RlIiwgInBhcnNlSnNvbkJvZHkiLCAicGFyc2VKc29uRXJyb3JCb2R5IiwgInBhcnNlWG1sQm9keSIsICJwYXJzZVhtbEVycm9yQm9keSIsICJpbml0X3Byb3RvY29scyIsICJfX2VzbU1pbiIsICJpbml0X0F3c1NtaXRoeVJwY1YyQ2JvclByb3RvY29sIiwgImluaXRfY29lcmNpbmdfc2VyaWFsaXplcnMiLCAiaW5pdF9Bd3NKc29uMV8wUHJvdG9jb2wiLCAiaW5pdF9Bd3NKc29uMV8xUHJvdG9jb2wiLCAiaW5pdF9Bd3NKc29uUnBjUHJvdG9jb2wiLCAiaW5pdF9Bd3NSZXN0SnNvblByb3RvY29sIiwgImluaXRfSnNvbkNvZGVjIiwgImluaXRfSnNvblNoYXBlRGVzZXJpYWxpemVyIiwgImluaXRfSnNvblNoYXBlU2VyaWFsaXplciIsICJpbml0X2F3c0V4cGVjdFVuaW9uIiwgImluaXRfcGFyc2VKc29uQm9keSIsICJpbml0X0F3c0VjMlF1ZXJ5UHJvdG9jb2wiLCAiaW5pdF9Bd3NRdWVyeVByb3RvY29sIiwgImluaXRfQXdzUmVzdFhtbFByb3RvY29sIiwgImluaXRfWG1sQ29kZWMiLCAiaW5pdF9YbWxTaGFwZURlc2VyaWFsaXplciIsICJpbml0X1htbFNoYXBlU2VyaWFsaXplciIsICJpbml0X3BhcnNlWG1sQm9keSIsICJyZXF1aXJlX2Rpc3RfY2pzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJwcm90b2NvbHMiLCAic2NoZW1hIiwgInNtaXRoeUNsaWVudCIsICJ1dGlsQmFzZTY0IiwgIkR5bmFtb0RCSnNvbkNvZGVjIiwgInNlcmlhbGl6ZXIiLCAiRHluYW1vREJKc29uU2hhcGVTZXJpYWxpemVyIiwgImRlc2VyaWFsaXplciIsICJEeW5hbW9EQkpzb25TaGFwZURlc2VyaWFsaXplciIsICJBVFRSSUJVVEVfVkFMVUUiLCAic2NoZW1hJDEiLCAidmFsdWUiLCAiY29udGFpbmVyIiwgIm5zIiwgImF2IiwgIm91dCIsICJiYXNlNjRFbmNvZGUiLCAidiIsICJrIiwgImJhc2U2NERlY29kZXIiLCAicmVxdWlyZV9kaXN0X2NqcyIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAidXRpbEVuZHBvaW50cyIsICJ1cmxQYXJzZXIiLCAiaXNWaXJ0dWFsSG9zdGFibGVTM0J1Y2tldCIsICJ2YWx1ZSIsICJhbGxvd1N1YkRvbWFpbnMiLCAibGFiZWwiLCAiQVJOX0RFTElNSVRFUiIsICJSRVNPVVJDRV9ERUxJTUlURVIiLCAicGFyc2VBcm4iLCAic2VnbWVudHMiLCAiYXJuIiwgInBhcnRpdGlvbiIsICJzZXJ2aWNlIiwgInJlZ2lvbiIsICJhY2NvdW50SWQiLCAicmVzb3VyY2VQYXRoIiwgInJlc291cmNlSWQiLCAicmVzb3VyY2UiLCAicGFydGl0aW9ucyIsICJ2ZXJzaW9uIiwgInBhcnRpdGlvbnNJbmZvIiwgInNlbGVjdGVkUGFydGl0aW9uc0luZm8iLCAic2VsZWN0ZWRVc2VyQWdlbnRQcmVmaXgiLCAicmVnaW9ucyIsICJvdXRwdXRzIiwgInJlZ2lvbkRhdGEiLCAicmVnaW9uUmVnZXgiLCAiREVGQVVMVF9QQVJUSVRJT04iLCAic2V0UGFydGl0aW9uSW5mbyIsICJ1c2VyQWdlbnRQcmVmaXgiLCAidXNlRGVmYXVsdFBhcnRpdGlvbkluZm8iLCAiZ2V0VXNlckFnZW50UHJlZml4IiwgImF3c0VuZHBvaW50RnVuY3Rpb25zIiwgInJlc29sdmVEZWZhdWx0QXdzUmVnaW9uYWxFbmRwb2ludHNDb25maWciLCAiaW5wdXQiLCAiZW5kcG9pbnQiLCAidG9FbmRwb2ludFYxIiwgInJlcXVpcmVfcnVsZXNldCIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAiSyIsICJMIiwgIk0iLCAiTiIsICJPIiwgIlAiLCAiUSIsICJSIiwgIlMiLCAiVCIsICJVIiwgIlYiLCAiYSIsICJiIiwgImMiLCAiZCIsICJlIiwgImYiLCAiZyIsICJoIiwgImkiLCAiaiIsICJrIiwgImwiLCAibSIsICJuIiwgIm8iLCAicCIsICJxIiwgInIiLCAicyIsICJ0IiwgInUiLCAidiIsICJ3IiwgIngiLCAieSIsICJ6IiwgIkEiLCAiQiIsICJDIiwgIkQiLCAiRSIsICJGIiwgIkciLCAiSCIsICJJIiwgIkoiLCAiX2RhdGEiLCAicmVxdWlyZV9lbmRwb2ludFJlc29sdmVyIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJ1dGlsX2VuZHBvaW50c18xIiwgInV0aWxfZW5kcG9pbnRzXzIiLCAicnVsZXNldF8xIiwgImNhY2hlIiwgImRlZmF1bHRFbmRwb2ludFJlc29sdmVyIiwgImVuZHBvaW50UGFyYW1zIiwgImNvbnRleHQiLCAicmVxdWlyZV9ydW50aW1lQ29uZmlnX3NoYXJlZCIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAiY29yZV8xIiwgInByb3RvY29sc18xIiwgImR5bmFtb2RiX2NvZGVjXzEiLCAic21pdGh5X2NsaWVudF8xIiwgInVybF9wYXJzZXJfMSIsICJ1dGlsX2Jhc2U2NF8xIiwgInV0aWxfdXRmOF8xIiwgImh0dHBBdXRoU2NoZW1lUHJvdmlkZXJfMSIsICJlbmRwb2ludFJlc29sdmVyXzEiLCAiZ2V0UnVudGltZUNvbmZpZyIsICJjb25maWciLCAiaXBjIiwgInJlcXVpcmVfcnVudGltZUNvbmZpZyIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAidHNsaWJfMSIsICJwYWNrYWdlX2pzb25fMSIsICJjb3JlXzEiLCAiYWNjb3VudF9pZF9lbmRwb2ludF8xIiwgImNyZWRlbnRpYWxfcHJvdmlkZXJfbm9kZV8xIiwgIm1pZGRsZXdhcmVfZW5kcG9pbnRfZGlzY292ZXJ5XzEiLCAidXRpbF91c2VyX2FnZW50X25vZGVfMSIsICJjb25maWdfcmVzb2x2ZXJfMSIsICJoYXNoX25vZGVfMSIsICJtaWRkbGV3YXJlX3JldHJ5XzEiLCAibm9kZV9jb25maWdfcHJvdmlkZXJfMSIsICJub2RlX2h0dHBfaGFuZGxlcl8xIiwgInNtaXRoeV9jbGllbnRfMSIsICJ1dGlsX2JvZHlfbGVuZ3RoX25vZGVfMSIsICJ1dGlsX2RlZmF1bHRzX21vZGVfbm9kZV8xIiwgInV0aWxfcmV0cnlfMSIsICJydW50aW1lQ29uZmlnX3NoYXJlZF8xIiwgImdldFJ1bnRpbWVDb25maWciLCAiY29uZmlnIiwgImRlZmF1bHRzTW9kZSIsICJkZWZhdWx0Q29uZmlnUHJvdmlkZXIiLCAiY2xpZW50U2hhcmVkVmFsdWVzIiwgImxvYWRlckNvbmZpZyIsICJyZXF1aXJlX2Rpc3RfY2pzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJhY2NvdW50SWRFbmRwb2ludCIsICJtaWRkbGV3YXJlRW5kcG9pbnREaXNjb3ZlcnkiLCAibWlkZGxld2FyZUhvc3RIZWFkZXIiLCAibWlkZGxld2FyZUxvZ2dlciIsICJtaWRkbGV3YXJlUmVjdXJzaW9uRGV0ZWN0aW9uIiwgIm1pZGRsZXdhcmVVc2VyQWdlbnQiLCAiY29uZmlnUmVzb2x2ZXIiLCAiY29yZSIsICJzY2hlbWEiLCAibWlkZGxld2FyZUNvbnRlbnRMZW5ndGgiLCAibWlkZGxld2FyZUVuZHBvaW50IiwgIm1pZGRsZXdhcmVSZXRyeSIsICJzbWl0aHlDbGllbnQiLCAiaHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJydW50aW1lQ29uZmlnIiwgInJlZ2lvbkNvbmZpZ1Jlc29sdmVyIiwgInByb3RvY29sSHR0cCIsICJ1dGlsV2FpdGVyIiwgInJlc29sdmVDbGllbnRFbmRwb2ludFBhcmFtZXRlcnMiLCAib3B0aW9ucyIsICJjb21tb25QYXJhbXMiLCAiRHluYW1vREJTZXJ2aWNlRXhjZXB0aW9uIiwgIl9EeW5hbW9EQlNlcnZpY2VFeGNlcHRpb24iLCAiQmFja3VwSW5Vc2VFeGNlcHRpb24iLCAiX0JhY2t1cEluVXNlRXhjZXB0aW9uIiwgIm9wdHMiLCAiQmFja3VwTm90Rm91bmRFeGNlcHRpb24iLCAiX0JhY2t1cE5vdEZvdW5kRXhjZXB0aW9uIiwgIkludGVybmFsU2VydmVyRXJyb3IiLCAiX0ludGVybmFsU2VydmVyRXJyb3IiLCAiUmVxdWVzdExpbWl0RXhjZWVkZWQiLCAiX1JlcXVlc3RMaW1pdEV4Y2VlZGVkIiwgIlRocm90dGxpbmdFeGNlcHRpb24iLCAiX1Rocm90dGxpbmdFeGNlcHRpb24iLCAiSW52YWxpZEVuZHBvaW50RXhjZXB0aW9uIiwgIl9JbnZhbGlkRW5kcG9pbnRFeGNlcHRpb24iLCAiUHJvdmlzaW9uZWRUaHJvdWdocHV0RXhjZWVkZWRFeGNlcHRpb24iLCAiX1Byb3Zpc2lvbmVkVGhyb3VnaHB1dEV4Y2VlZGVkRXhjZXB0aW9uIiwgIlJlc291cmNlTm90Rm91bmRFeGNlcHRpb24iLCAiX1Jlc291cmNlTm90Rm91bmRFeGNlcHRpb24iLCAiSXRlbUNvbGxlY3Rpb25TaXplTGltaXRFeGNlZWRlZEV4Y2VwdGlvbiIsICJfSXRlbUNvbGxlY3Rpb25TaXplTGltaXRFeGNlZWRlZEV4Y2VwdGlvbiIsICJSZXBsaWNhdGVkV3JpdGVDb25mbGljdEV4Y2VwdGlvbiIsICJfUmVwbGljYXRlZFdyaXRlQ29uZmxpY3RFeGNlcHRpb24iLCAiQ29udGludW91c0JhY2t1cHNVbmF2YWlsYWJsZUV4Y2VwdGlvbiIsICJfQ29udGludW91c0JhY2t1cHNVbmF2YWlsYWJsZUV4Y2VwdGlvbiIsICJMaW1pdEV4Y2VlZGVkRXhjZXB0aW9uIiwgIl9MaW1pdEV4Y2VlZGVkRXhjZXB0aW9uIiwgIlRhYmxlSW5Vc2VFeGNlcHRpb24iLCAiX1RhYmxlSW5Vc2VFeGNlcHRpb24iLCAiVGFibGVOb3RGb3VuZEV4Y2VwdGlvbiIsICJfVGFibGVOb3RGb3VuZEV4Y2VwdGlvbiIsICJHbG9iYWxUYWJsZUFscmVhZHlFeGlzdHNFeGNlcHRpb24iLCAiX0dsb2JhbFRhYmxlQWxyZWFkeUV4aXN0c0V4Y2VwdGlvbiIsICJSZXNvdXJjZUluVXNlRXhjZXB0aW9uIiwgIl9SZXNvdXJjZUluVXNlRXhjZXB0aW9uIiwgIlRyYW5zYWN0aW9uQ29uZmxpY3RFeGNlcHRpb24iLCAiX1RyYW5zYWN0aW9uQ29uZmxpY3RFeGNlcHRpb24iLCAiUG9saWN5Tm90Rm91bmRFeGNlcHRpb24iLCAiX1BvbGljeU5vdEZvdW5kRXhjZXB0aW9uIiwgIkV4cG9ydE5vdEZvdW5kRXhjZXB0aW9uIiwgIl9FeHBvcnROb3RGb3VuZEV4Y2VwdGlvbiIsICJHbG9iYWxUYWJsZU5vdEZvdW5kRXhjZXB0aW9uIiwgIl9HbG9iYWxUYWJsZU5vdEZvdW5kRXhjZXB0aW9uIiwgIkltcG9ydE5vdEZvdW5kRXhjZXB0aW9uIiwgIl9JbXBvcnROb3RGb3VuZEV4Y2VwdGlvbiIsICJEdXBsaWNhdGVJdGVtRXhjZXB0aW9uIiwgIl9EdXBsaWNhdGVJdGVtRXhjZXB0aW9uIiwgIklkZW1wb3RlbnRQYXJhbWV0ZXJNaXNtYXRjaEV4Y2VwdGlvbiIsICJfSWRlbXBvdGVudFBhcmFtZXRlck1pc21hdGNoRXhjZXB0aW9uIiwgIlRyYW5zYWN0aW9uSW5Qcm9ncmVzc0V4Y2VwdGlvbiIsICJfVHJhbnNhY3Rpb25JblByb2dyZXNzRXhjZXB0aW9uIiwgIkV4cG9ydENvbmZsaWN0RXhjZXB0aW9uIiwgIl9FeHBvcnRDb25mbGljdEV4Y2VwdGlvbiIsICJJbnZhbGlkRXhwb3J0VGltZUV4Y2VwdGlvbiIsICJfSW52YWxpZEV4cG9ydFRpbWVFeGNlcHRpb24iLCAiUG9pbnRJblRpbWVSZWNvdmVyeVVuYXZhaWxhYmxlRXhjZXB0aW9uIiwgIl9Qb2ludEluVGltZVJlY292ZXJ5VW5hdmFpbGFibGVFeGNlcHRpb24iLCAiSW1wb3J0Q29uZmxpY3RFeGNlcHRpb24iLCAiX0ltcG9ydENvbmZsaWN0RXhjZXB0aW9uIiwgIlRhYmxlQWxyZWFkeUV4aXN0c0V4Y2VwdGlvbiIsICJfVGFibGVBbHJlYWR5RXhpc3RzRXhjZXB0aW9uIiwgIkludmFsaWRSZXN0b3JlVGltZUV4Y2VwdGlvbiIsICJfSW52YWxpZFJlc3RvcmVUaW1lRXhjZXB0aW9uIiwgIlJlcGxpY2FBbHJlYWR5RXhpc3RzRXhjZXB0aW9uIiwgIl9SZXBsaWNhQWxyZWFkeUV4aXN0c0V4Y2VwdGlvbiIsICJSZXBsaWNhTm90Rm91bmRFeGNlcHRpb24iLCAiX1JlcGxpY2FOb3RGb3VuZEV4Y2VwdGlvbiIsICJJbmRleE5vdEZvdW5kRXhjZXB0aW9uIiwgIl9JbmRleE5vdEZvdW5kRXhjZXB0aW9uIiwgIkNvbmRpdGlvbmFsQ2hlY2tGYWlsZWRFeGNlcHRpb24iLCAiX0NvbmRpdGlvbmFsQ2hlY2tGYWlsZWRFeGNlcHRpb24iLCAiVHJhbnNhY3Rpb25DYW5jZWxlZEV4Y2VwdGlvbiIsICJfVHJhbnNhY3Rpb25DYW5jZWxlZEV4Y2VwdGlvbiIsICJfQSIsICJfQUJBIiwgIl9BQ0RUUCIsICJfQUQiLCAiX0FEVCIsICJfQUR0IiwgIl9BTSIsICJfQU1SQ1UiLCAiX0FNV0NVIiwgIl9BTiIsICJfQVIiLCAiX0FTIiwgIl9BU0QiLCAiX0FTUEQiLCAiX0FTUERMIiwgIl9BU1BVIiwgIl9BU1JBIiwgIl9BU1NEIiwgIl9BU1NVIiwgIl9BU1RUU1BDRCIsICJfQVNUVFNQQ1UiLCAiX0FUIiwgIl9BVEciLCAiX0FVIiwgIl9BViIsICJfQVZMIiwgIl9BVlUiLCAiX0FkIiwgIl9BdCIsICJfQiIsICJfQkEiLCAiX0JDRFQiLCAiX0JEIiwgIl9CRGEiLCAiX0JFRFQiLCAiX0JFUyIsICJfQkVTSSIsICJfQkVTTyIsICJfQkdJIiwgIl9CR0lJIiwgIl9CR0lPIiwgIl9CR1JNIiwgIl9CR1JNYSIsICJfQklVRSIsICJfQk0iLCAiX0JNTyIsICJfQk1TIiwgIl9CTiIsICJfQk5GRSIsICJfQk9PTCIsICJfQlMiLCAiX0JTQiIsICJfQlNCaSIsICJfQlNFIiwgIl9CU1IiLCAiX0JTUmEiLCAiX0JTXyIsICJfQlNhIiwgIl9CU2FjIiwgIl9CVCIsICJfQldJIiwgIl9CV0lJIiwgIl9CV0lPIiwgIl9CV0lSTSIsICJfQl8iLCAiX0MiLCAiX0NCIiwgIl9DQkQiLCAiX0NCSSIsICJfQ0JPIiwgIl9DQlMiLCAiX0NCVUUiLCAiX0NDIiwgIl9DQ0ZFIiwgIl9DQ00iLCAiX0NDbyIsICJfQ0RUIiwgIl9DRSIsICJfQ0dTSUEiLCAiX0NHVCIsICJfQ0dUSSIsICJfQ0dUTyIsICJfQ0dUV0dNQSIsICJfQ0lBIiwgIl9DSU0iLCAiX0NJUkwiLCAiX0NJUyIsICJfQ0lTbyIsICJfQ0lTb24iLCAiX0NPIiwgIl9DT28iLCAiX0NPcyIsICJfQ1BJTSIsICJfQ1IiLCAiX0NSQSIsICJfQ1JHTUEiLCAiX0NSTCIsICJfQ1JTUkEiLCAiX0NSVCIsICJfQ1JhIiwgIl9DUmFuIiwgIl9DVCIsICJfQ1RJIiwgIl9DVE8iLCAiX0NUciIsICJfQ1UiLCAiX0NXTEdBIiwgIl9DYSIsICJfQ28iLCAiX0NvdSIsICJfQ3IiLCAiX0NzIiwgIl9EIiwgIl9EQiIsICJfREJJIiwgIl9EQkllIiwgIl9EQk8iLCAiX0RCT2UiLCAiX0RCZSIsICJfRENCIiwgIl9EQ0JJIiwgIl9EQ0JPIiwgIl9EQ0kiLCAiX0RDSUkiLCAiX0RDSU8iLCAiX0RFIiwgIl9ERUkiLCAiX0RFTyIsICJfREVSIiwgIl9ERVJlIiwgIl9ERWUiLCAiX0RHU0lBIiwgIl9ER1QiLCAiX0RHVEkiLCAiX0RHVE8iLCAiX0RHVFMiLCAiX0RHVFNJIiwgIl9ER1RTTyIsICJfREdUV0dNQSIsICJfREkiLCAiX0RJRSIsICJfRElJIiwgIl9ESUllIiwgIl9ESU8iLCAiX0RJT2UiLCAiX0RJZSIsICJfREtTRCIsICJfREtTREkiLCAiX0RLU0RPIiwgIl9ES1NEaSIsICJfREwiLCAiX0RMSSIsICJfRExPIiwgIl9EUEUiLCAiX0RSIiwgIl9EUkEiLCAiX0RSR01BIiwgIl9EUlAiLCAiX0RSUEkiLCAiX0RSUE8iLCAiX0RTIiwgIl9EU0QiLCAiX0RTSSIsICJfRFQiLCAiX0RUSSIsICJfRFRJZSIsICJfRFRPIiwgIl9EVE9lIiwgIl9EVFJBUyIsICJfRFRSQVNJIiwgIl9EVFJBU08iLCAiX0RUVEwiLCAiX0RUVExJIiwgIl9EVFRMTyIsICJfRFRlIiwgIl9EZSIsICJfRSIsICJfRUEiLCAiX0VBTSIsICJfRUFOIiwgIl9FQVYiLCAiX0VBVk0iLCAiX0VBVngiLCAiX0VDIiwgIl9FQ0UiLCAiX0VEIiwgIl9FRHgiLCAiX0VGIiwgIl9FRlQiLCAiX0VLU0MiLCAiX0VLU0QiLCAiX0VNIiwgIl9FTiIsICJfRU5GRSIsICJfRVJEVCIsICJfRVJJIiwgIl9FUyIsICJfRVNCQSIsICJfRVNHVE4iLCAiX0VTSSIsICJfRVNLIiwgIl9FU08iLCAiX0VTVE4iLCAiX0VTeCIsICJfRVN4ZSIsICJfRVN4cCIsICJfRVQiLCAiX0VUSSIsICJfRVRPIiwgIl9FVFQiLCAiX0VUVFBJVCIsICJfRVRUUElUSSIsICJfRVRUUElUTyIsICJfRVR4IiwgIl9FVHhlIiwgIl9FVHhwIiwgIl9FVlQiLCAiX0VuIiwgIl9FbmEiLCAiX0VuZCIsICJfRXgiLCAiX0V4aSIsICJfRkMiLCAiX0ZDTSIsICJfRkUiLCAiX0ZFaSIsICJfRk0iLCAiX0ciLCAiX0dJIiwgIl9HSUkiLCAiX0dJTyIsICJfR1JQIiwgIl9HUlBJIiwgIl9HUlBPIiwgIl9HU0kiLCAiX0dTSUFTVSIsICJfR1NJQVNVTCIsICJfR1NJRCIsICJfR1NJREwiLCAiX0dTSUkiLCAiX0dTSUwiLCAiX0dTSU8iLCAiX0dTSVUiLCAiX0dTSVVMIiwgIl9HU0lVbCIsICJfR1NJV1REIiwgIl9HU0lsIiwgIl9HVCIsICJfR1RBIiwgIl9HVEFFRSIsICJfR1RCTSIsICJfR1REIiwgIl9HVEdTSVNVIiwgIl9HVEdTSVNVTCIsICJfR1RMIiwgIl9HVE4iLCAiX0dUTkZFIiwgIl9HVFBXQ0FTU1UiLCAiX0dUUFdDVSIsICJfR1RTIiwgIl9HVFYiLCAiX0dUVyIsICJfR1RXRCIsICJfR1RXREwiLCAiX0dUV0dVIiwgIl9HVFdHVUwiLCAiX0dUV1UiLCAiX0dUbCIsICJfSEwiLCAiX0kiLCAiX0lBIiwgIl9JQW4iLCAiX0lDIiwgIl9JQ0UiLCAiX0lDSyIsICJfSUNLQU0iLCAiX0lDTSIsICJfSUNNTSIsICJfSUNNUFQiLCAiX0lDU0xFRSIsICJfSUNUIiwgIl9JRURUIiwgIl9JRUUiLCAiX0lFUyIsICJfSUVURSIsICJfSUYiLCAiX0lGTyIsICJfSUlDIiwgIl9JTCIsICJfSU4iLCAiX0lORkUiLCAiX0lORkVuIiwgIl9JUE1FIiwgIl9JUiIsICJfSVJMIiwgIl9JUlRFIiwgIl9JUyIsICJfSVNCIiwgIl9JU0UiLCAiX0lTTCIsICJfSVNtIiwgIl9JU21wIiwgIl9JVCIsICJfSVREIiwgIl9JVEkiLCAiX0lUTyIsICJfSXQiLCAiX0siLCAiX0tBQSIsICJfS0MiLCAiX0tDRSIsICJfS0RTRCIsICJfS0RTRGkiLCAiX0tMIiwgIl9LTVNNS0EiLCAiX0tNU01LSSIsICJfS1MiLCAiX0tTREkiLCAiX0tTRE8iLCAiX0tTRSIsICJfS1QiLCAiX0tlIiwgIl9MIiwgIl9MQVYiLCAiX0xCIiwgIl9MQkkiLCAiX0xCTyIsICJfTENJIiwgIl9MQ0lJIiwgIl9MQ0lPIiwgIl9MRERUIiwgIl9MRSIsICJfTEVCQSIsICJfTEVFIiwgIl9MRUdUTiIsICJfTEVJIiwgIl9MRUsiLCAiX0xFTyIsICJfTEVUTiIsICJfTEdUIiwgIl9MR1RJIiwgIl9MR1RPIiwgIl9MSSIsICJfTElEVCIsICJfTElJIiwgIl9MSU8iLCAiX0xSRFQiLCAiX0xTQSIsICJfTFNJIiwgIl9MU0lEIiwgIl9MU0lETCIsICJfTFNJSSIsICJfTFNJTCIsICJfTFNJTyIsICJfTFNJbyIsICJfTFNMIiwgIl9MVCIsICJfTFRJIiwgIl9MVE8iLCAiX0xUT1IiLCAiX0xUT1JJIiwgIl9MVE9STyIsICJfTFVEVCIsICJfTFVUUFBSRFQiLCAiX0xfIiwgIl9NIiwgIl9NQVYiLCAiX01SIiwgIl9NUkMiLCAiX01SUlUiLCAiX01VIiwgIl9NVWEiLCAiX01XUlUiLCAiX01fIiwgIl9OIiwgIl9OS0EiLCAiX05PRFQiLCAiX05TIiwgIl9OVCIsICJfTlVMTCIsICJfT0RUIiwgIl9PRFRPIiwgIl9QIiwgIl9QRSIsICJfUEkiLCAiX1BJQyIsICJfUElJIiwgIl9QSUlBTSIsICJfUElPIiwgIl9QSVRSRCIsICJfUElUUkUiLCAiX1BJVFJTIiwgIl9QSVRSU28iLCAiX1BJVFJVRSIsICJfUE4iLCAiX1BORkUiLCAiX1BRTEJSIiwgIl9QUUxCUmEiLCAiX1BSIiwgIl9QUkNBU1MiLCAiX1BSQ0FTU1UiLCAiX1BSQ0FTVSIsICJfUFJDVSIsICJfUFJQIiwgIl9QUlBJIiwgIl9QUlBPIiwgIl9QUyIsICJfUFNCIiwgIl9QU1AiLCAiX1BTYSIsICJfUFNhciIsICJfUFQiLCAiX1BURCIsICJfUFRFRSIsICJfUFRPIiwgIl9QVHIiLCAiX1BXQ0FTUyIsICJfUFdDQVNTVSIsICJfUFdDQVNVIiwgIl9QV0NVIiwgIl9QbyIsICJfUHIiLCAiX1B1IiwgIl9RIiwgIl9RRiIsICJfUUkiLCAiX1FPIiwgIl9SIiwgIl9SQSIsICJfUkFFRSIsICJfUkFTRCIsICJfUkFTREwiLCAiX1JBU1UiLCAiX1JBU1VMIiwgIl9SQk1TIiwgIl9SQ0MiLCAiX1JDVSIsICJfUkQiLCAiX1JETCIsICJfUkRUIiwgIl9SRyIsICJfUkdTSSIsICJfUkdTSUFTRCIsICJfUkdTSUFTREwiLCAiX1JHU0lBU1UiLCAiX1JHU0lBU1VMIiwgIl9SR1NJRCIsICJfUkdTSURMIiwgIl9SR1NJTCIsICJfUkdTSVMiLCAiX1JHU0lTRCIsICJfUkdTSVNETCIsICJfUkdTSVNVIiwgIl9SR1NJU1VMIiwgIl9SR1NJVSIsICJfUkdVIiwgIl9SR1VMIiwgIl9SSSIsICJfUklDTSIsICJfUklEVCIsICJfUklQIiwgIl9SSVVFIiwgIl9SSWUiLCAiX1JMIiwgIl9STEUiLCAiX1JOIiwgIl9STkZFIiwgIl9STkZFZSIsICJfUlAiLCAiX1JQSUQiLCAiX1JQUkNBU1MiLCAiX1JQUkNBU1NVIiwgIl9SUFJDQVNVIiwgIl9SUFJDVSIsICJfUlBXQ0FTUyIsICJfUlBXQ1UiLCAiX1JTIiwgIl9SU0QiLCAiX1JTREwiLCAiX1JTRGUiLCAiX1JTUFAiLCAiX1JTVSIsICJfUlNVTCIsICJfUlNlIiwgIl9SU2VzIiwgIl9SVEMiLCAiX1JUQ1MiLCAiX1JURkIiLCAiX1JURkJJIiwgIl9SVEZCTyIsICJfUlRUUElUIiwgIl9SVFRQSVRJIiwgIl9SVFRQSVRPIiwgIl9SVSIsICJfUlVMIiwgIl9SVVBTIiwgIl9SVWUiLCAiX1JWIiwgIl9SVk9DQ0YiLCAiX1JXQ0UiLCAiX1JlIiwgIl9SZXAiLCAiX1MiLCAiX1NBIiwgIl9TQiIsICJfU0JBIiwgIl9TQk8iLCAiX1NCUyIsICJfU0MiLCAiX1NEIiwgIl9TRSIsICJfU0VSR0IiLCAiX1NGIiwgIl9TSSIsICJfU0lDIiwgIl9TSUNNIiwgIl9TSUYiLCAiX1NLUCIsICJfU08iLCAiX1NPQyIsICJfU1AiLCAiX1NQVSIsICJfU1ByIiwgIl9TUyIsICJfU1NBIiwgIl9TU0VEIiwgIl9TU0VTIiwgIl9TU0VTTyIsICJfU1NFVCIsICJfU1NLS0kiLCAiX1NTXyIsICJfU1QiLCAiX1NUQSIsICJfU1REIiwgIl9TVEZEIiwgIl9TVE4iLCAiX1NWVCIsICJfU18iLCAiX1NjIiwgIl9TZSIsICJfU2VnIiwgIl9TdCIsICJfU3RhIiwgIl9UIiwgIl9UQSIsICJfVEFFRSIsICJfVEFTRCIsICJfVEMiLCAiX1RDRFQiLCAiX1RDRSIsICJfVENFciIsICJfVENPIiwgIl9UQ1AiLCAiX1RDUyIsICJfVEQiLCAiX1RFIiwgIl9UR0kiLCAiX1RHSUkiLCAiX1RHSUwiLCAiX1RHSU8iLCAiX1RHSXIiLCAiX1RJIiwgIl9USVBFIiwgIl9USVVFIiwgIl9USXIiLCAiX1RLIiwgIl9UTCIsICJfVE1SQ1UiLCAiX1RNV0NVIiwgIl9UTiIsICJfVE5GRSIsICJfVE5hIiwgIl9UUiIsICJfVFJJIiwgIl9UUkwiLCAiX1RSTEIiLCAiX1RSVUIiLCAiX1RSYSIsICJfVFJoIiwgIl9UUyIsICJfVFNCIiwgIl9UU2EiLCAiX1RTbyIsICJfVFRMRCIsICJfVFRMUyIsICJfVFRMU2kiLCAiX1RUTiIsICJfVFRTUEMiLCAiX1RWIiwgIl9UV0kiLCAiX1RXSUkiLCAiX1RXSUwiLCAiX1RXSU8iLCAiX1RXSXIiLCAiX1RXVEQiLCAiX1RhIiwgIl9UYWciLCAiX1UiLCAiX1VDQiIsICJfVUNCSSIsICJfVUNCTyIsICJfVUNJIiwgIl9VQ0lJIiwgIl9VQ0lPIiwgIl9VRSIsICJfVUdTSUEiLCAiX1VHVCIsICJfVUdUSSIsICJfVUdUTyIsICJfVUdUUyIsICJfVUdUU0kiLCAiX1VHVFNPIiwgIl9VSSIsICJfVUlJIiwgIl9VSU8iLCAiX1VJcCIsICJfVUsiLCAiX1VLU0MiLCAiX1VLU0QiLCAiX1VLU0RJIiwgIl9VS1NETyIsICJfVUxSVCIsICJfVVIiLCAiX1VSR01BIiwgIl9VUkkiLCAiX1VUIiwgIl9VVEkiLCAiX1VUTyIsICJfVVRSQVMiLCAiX1VUUkFTSSIsICJfVVRSQVNPIiwgIl9VVFRMIiwgIl9VVFRMSSIsICJfVVRUTE8iLCAiX1YiLCAiX1dDVSIsICJfV1IiLCAiX1dSciIsICJfV1MiLCAiX1dUIiwgIl9XVVBTIiwgIl9hUUUiLCAiX2MiLCAiX2UiLCAiX2hFIiwgIl9oSCIsICJfbSIsICJfciIsICJfcmUiLCAiX3MiLCAiX3NtIiwgIl90UiIsICJfeGFjcnNyYSIsICJuMCIsICJBcmNoaXZhbFN1bW1hcnkkIiwgIkF0dHJpYnV0ZURlZmluaXRpb24kIiwgIkF0dHJpYnV0ZVZhbHVlVXBkYXRlJCIsICJBdHRyaWJ1dGVWYWx1ZSQiLCAiQXV0b1NjYWxpbmdQb2xpY3lEZXNjcmlwdGlvbiQiLCAiQXV0b1NjYWxpbmdUYXJnZXRUcmFja2luZ1NjYWxpbmdQb2xpY3lDb25maWd1cmF0aW9uRGVzY3JpcHRpb24kIiwgIkF1dG9TY2FsaW5nUG9saWN5VXBkYXRlJCIsICJBdXRvU2NhbGluZ1RhcmdldFRyYWNraW5nU2NhbGluZ1BvbGljeUNvbmZpZ3VyYXRpb25VcGRhdGUkIiwgIkF1dG9TY2FsaW5nU2V0dGluZ3NEZXNjcmlwdGlvbiQiLCAiQXV0b1NjYWxpbmdQb2xpY3lEZXNjcmlwdGlvbkxpc3QiLCAiQXV0b1NjYWxpbmdTZXR0aW5nc1VwZGF0ZSQiLCAiQmFja3VwRGVzY3JpcHRpb24kIiwgIkJhY2t1cERldGFpbHMkIiwgIlNvdXJjZVRhYmxlRGV0YWlscyQiLCAiU291cmNlVGFibGVGZWF0dXJlRGV0YWlscyQiLCAiQmFja3VwSW5Vc2VFeGNlcHRpb24kIiwgIkJhY2t1cE5vdEZvdW5kRXhjZXB0aW9uJCIsICJCYWNrdXBTdW1tYXJ5JCIsICJCYXRjaEV4ZWN1dGVTdGF0ZW1lbnRJbnB1dCQiLCAiUGFydGlRTEJhdGNoUmVxdWVzdCIsICJCYXRjaEV4ZWN1dGVTdGF0ZW1lbnRPdXRwdXQkIiwgIlBhcnRpUUxCYXRjaFJlc3BvbnNlIiwgIkNvbnN1bWVkQ2FwYWNpdHlNdWx0aXBsZSIsICJCYXRjaEdldEl0ZW1JbnB1dCQiLCAiQmF0Y2hHZXRSZXF1ZXN0TWFwIiwgIkJhdGNoR2V0SXRlbU91dHB1dCQiLCAiQmF0Y2hHZXRSZXNwb25zZU1hcCIsICJCYXRjaFN0YXRlbWVudEVycm9yJCIsICJBdHRyaWJ1dGVNYXAiLCAiQmF0Y2hTdGF0ZW1lbnRSZXF1ZXN0JCIsICJQcmVwYXJlZFN0YXRlbWVudFBhcmFtZXRlcnMiLCAiQmF0Y2hTdGF0ZW1lbnRSZXNwb25zZSQiLCAiQmF0Y2hXcml0ZUl0ZW1JbnB1dCQiLCAiQmF0Y2hXcml0ZUl0ZW1SZXF1ZXN0TWFwIiwgIkJhdGNoV3JpdGVJdGVtT3V0cHV0JCIsICJJdGVtQ29sbGVjdGlvbk1ldHJpY3NQZXJUYWJsZSIsICJCaWxsaW5nTW9kZVN1bW1hcnkkIiwgIkNhbmNlbGxhdGlvblJlYXNvbiQiLCAiQ2FwYWNpdHkkIiwgIkNvbmRpdGlvbiQiLCAiQXR0cmlidXRlVmFsdWVMaXN0IiwgIkNvbmRpdGlvbmFsQ2hlY2tGYWlsZWRFeGNlcHRpb24kIiwgIkNvbmRpdGlvbkNoZWNrJCIsICJLZXkiLCAiRXhwcmVzc2lvbkF0dHJpYnV0ZVZhbHVlTWFwIiwgIkNvbnN1bWVkQ2FwYWNpdHkkIiwgIlNlY29uZGFyeUluZGV4ZXNDYXBhY2l0eU1hcCIsICJDb250aW51b3VzQmFja3Vwc0Rlc2NyaXB0aW9uJCIsICJQb2ludEluVGltZVJlY292ZXJ5RGVzY3JpcHRpb24kIiwgIkNvbnRpbnVvdXNCYWNrdXBzVW5hdmFpbGFibGVFeGNlcHRpb24kIiwgIkNvbnRyaWJ1dG9ySW5zaWdodHNTdW1tYXJ5JCIsICJDcmVhdGVCYWNrdXBJbnB1dCQiLCAiQ3JlYXRlQmFja3VwT3V0cHV0JCIsICJDcmVhdGVHbG9iYWxTZWNvbmRhcnlJbmRleEFjdGlvbiQiLCAiS2V5U2NoZW1hIiwgIlByb2plY3Rpb24kIiwgIlByb3Zpc2lvbmVkVGhyb3VnaHB1dCQiLCAiT25EZW1hbmRUaHJvdWdocHV0JCIsICJXYXJtVGhyb3VnaHB1dCQiLCAiQ3JlYXRlR2xvYmFsVGFibGVJbnB1dCQiLCAiUmVwbGljYUxpc3QiLCAiQ3JlYXRlR2xvYmFsVGFibGVPdXRwdXQkIiwgIkdsb2JhbFRhYmxlRGVzY3JpcHRpb24kIiwgIkNyZWF0ZUdsb2JhbFRhYmxlV2l0bmVzc0dyb3VwTWVtYmVyQWN0aW9uJCIsICJDcmVhdGVSZXBsaWNhQWN0aW9uJCIsICJDcmVhdGVSZXBsaWNhdGlvbkdyb3VwTWVtYmVyQWN0aW9uJCIsICJQcm92aXNpb25lZFRocm91Z2hwdXRPdmVycmlkZSQiLCAiT25EZW1hbmRUaHJvdWdocHV0T3ZlcnJpZGUkIiwgIlJlcGxpY2FHbG9iYWxTZWNvbmRhcnlJbmRleExpc3QiLCAiQ3JlYXRlVGFibGVJbnB1dCQiLCAiQXR0cmlidXRlRGVmaW5pdGlvbnMiLCAiTG9jYWxTZWNvbmRhcnlJbmRleExpc3QiLCAiR2xvYmFsU2Vjb25kYXJ5SW5kZXhMaXN0IiwgIlN0cmVhbVNwZWNpZmljYXRpb24kIiwgIlNTRVNwZWNpZmljYXRpb24kIiwgIlRhZ0xpc3QiLCAiQ3JlYXRlVGFibGVPdXRwdXQkIiwgIlRhYmxlRGVzY3JpcHRpb24kIiwgIkNzdk9wdGlvbnMkIiwgIkRlbGV0ZSQiLCAiRGVsZXRlQmFja3VwSW5wdXQkIiwgIkRlbGV0ZUJhY2t1cE91dHB1dCQiLCAiRGVsZXRlR2xvYmFsU2Vjb25kYXJ5SW5kZXhBY3Rpb24kIiwgIkRlbGV0ZUdsb2JhbFRhYmxlV2l0bmVzc0dyb3VwTWVtYmVyQWN0aW9uJCIsICJEZWxldGVJdGVtSW5wdXQkIiwgIkV4cGVjdGVkQXR0cmlidXRlTWFwIiwgIkRlbGV0ZUl0ZW1PdXRwdXQkIiwgIkl0ZW1Db2xsZWN0aW9uTWV0cmljcyQiLCAiRGVsZXRlUmVwbGljYUFjdGlvbiQiLCAiRGVsZXRlUmVwbGljYXRpb25Hcm91cE1lbWJlckFjdGlvbiQiLCAiRGVsZXRlUmVxdWVzdCQiLCAiRGVsZXRlUmVzb3VyY2VQb2xpY3lJbnB1dCQiLCAiRGVsZXRlUmVzb3VyY2VQb2xpY3lPdXRwdXQkIiwgIkRlbGV0ZVRhYmxlSW5wdXQkIiwgIkRlbGV0ZVRhYmxlT3V0cHV0JCIsICJEZXNjcmliZUJhY2t1cElucHV0JCIsICJEZXNjcmliZUJhY2t1cE91dHB1dCQiLCAiRGVzY3JpYmVDb250aW51b3VzQmFja3Vwc0lucHV0JCIsICJEZXNjcmliZUNvbnRpbnVvdXNCYWNrdXBzT3V0cHV0JCIsICJEZXNjcmliZUNvbnRyaWJ1dG9ySW5zaWdodHNJbnB1dCQiLCAiRGVzY3JpYmVDb250cmlidXRvckluc2lnaHRzT3V0cHV0JCIsICJGYWlsdXJlRXhjZXB0aW9uJCIsICJEZXNjcmliZUVuZHBvaW50c1JlcXVlc3QkIiwgIkRlc2NyaWJlRW5kcG9pbnRzUmVzcG9uc2UkIiwgIkVuZHBvaW50cyIsICJEZXNjcmliZUV4cG9ydElucHV0JCIsICJEZXNjcmliZUV4cG9ydE91dHB1dCQiLCAiRXhwb3J0RGVzY3JpcHRpb24kIiwgIkRlc2NyaWJlR2xvYmFsVGFibGVJbnB1dCQiLCAiRGVzY3JpYmVHbG9iYWxUYWJsZU91dHB1dCQiLCAiRGVzY3JpYmVHbG9iYWxUYWJsZVNldHRpbmdzSW5wdXQkIiwgIkRlc2NyaWJlR2xvYmFsVGFibGVTZXR0aW5nc091dHB1dCQiLCAiUmVwbGljYVNldHRpbmdzRGVzY3JpcHRpb25MaXN0IiwgIkRlc2NyaWJlSW1wb3J0SW5wdXQkIiwgIkRlc2NyaWJlSW1wb3J0T3V0cHV0JCIsICJJbXBvcnRUYWJsZURlc2NyaXB0aW9uJCIsICJEZXNjcmliZUtpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvbklucHV0JCIsICJEZXNjcmliZUtpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvbk91dHB1dCQiLCAiS2luZXNpc0RhdGFTdHJlYW1EZXN0aW5hdGlvbnMiLCAiRGVzY3JpYmVMaW1pdHNJbnB1dCQiLCAiRGVzY3JpYmVMaW1pdHNPdXRwdXQkIiwgIkRlc2NyaWJlVGFibGVJbnB1dCQiLCAiRGVzY3JpYmVUYWJsZU91dHB1dCQiLCAiRGVzY3JpYmVUYWJsZVJlcGxpY2FBdXRvU2NhbGluZ0lucHV0JCIsICJEZXNjcmliZVRhYmxlUmVwbGljYUF1dG9TY2FsaW5nT3V0cHV0JCIsICJUYWJsZUF1dG9TY2FsaW5nRGVzY3JpcHRpb24kIiwgIkRlc2NyaWJlVGltZVRvTGl2ZUlucHV0JCIsICJEZXNjcmliZVRpbWVUb0xpdmVPdXRwdXQkIiwgIlRpbWVUb0xpdmVEZXNjcmlwdGlvbiQiLCAiRHVwbGljYXRlSXRlbUV4Y2VwdGlvbiQiLCAiRW5hYmxlS2luZXNpc1N0cmVhbWluZ0NvbmZpZ3VyYXRpb24kIiwgIkVuZHBvaW50JCIsICJFeGVjdXRlU3RhdGVtZW50SW5wdXQkIiwgIkV4ZWN1dGVTdGF0ZW1lbnRPdXRwdXQkIiwgIkl0ZW1MaXN0IiwgIkV4ZWN1dGVUcmFuc2FjdGlvbklucHV0JCIsICJQYXJhbWV0ZXJpemVkU3RhdGVtZW50cyIsICJFeGVjdXRlVHJhbnNhY3Rpb25PdXRwdXQkIiwgIkl0ZW1SZXNwb25zZUxpc3QiLCAiRXhwZWN0ZWRBdHRyaWJ1dGVWYWx1ZSQiLCAiRXhwb3J0Q29uZmxpY3RFeGNlcHRpb24kIiwgIkluY3JlbWVudGFsRXhwb3J0U3BlY2lmaWNhdGlvbiQiLCAiRXhwb3J0Tm90Rm91bmRFeGNlcHRpb24kIiwgIkV4cG9ydFN1bW1hcnkkIiwgIkV4cG9ydFRhYmxlVG9Qb2ludEluVGltZUlucHV0JCIsICJFeHBvcnRUYWJsZVRvUG9pbnRJblRpbWVPdXRwdXQkIiwgIkdldCQiLCAiR2V0SXRlbUlucHV0JCIsICJHZXRJdGVtT3V0cHV0JCIsICJHZXRSZXNvdXJjZVBvbGljeUlucHV0JCIsICJHZXRSZXNvdXJjZVBvbGljeU91dHB1dCQiLCAiR2xvYmFsU2Vjb25kYXJ5SW5kZXgkIiwgIkdsb2JhbFNlY29uZGFyeUluZGV4QXV0b1NjYWxpbmdVcGRhdGUkIiwgIkdsb2JhbFNlY29uZGFyeUluZGV4RGVzY3JpcHRpb24kIiwgIlByb3Zpc2lvbmVkVGhyb3VnaHB1dERlc2NyaXB0aW9uJCIsICJHbG9iYWxTZWNvbmRhcnlJbmRleFdhcm1UaHJvdWdocHV0RGVzY3JpcHRpb24kIiwgIkdsb2JhbFNlY29uZGFyeUluZGV4SW5mbyQiLCAiR2xvYmFsU2Vjb25kYXJ5SW5kZXhVcGRhdGUkIiwgIlVwZGF0ZUdsb2JhbFNlY29uZGFyeUluZGV4QWN0aW9uJCIsICJHbG9iYWxUYWJsZSQiLCAiR2xvYmFsVGFibGVBbHJlYWR5RXhpc3RzRXhjZXB0aW9uJCIsICJSZXBsaWNhRGVzY3JpcHRpb25MaXN0IiwgIkdsb2JhbFRhYmxlR2xvYmFsU2Vjb25kYXJ5SW5kZXhTZXR0aW5nc1VwZGF0ZSQiLCAiR2xvYmFsVGFibGVOb3RGb3VuZEV4Y2VwdGlvbiQiLCAiR2xvYmFsVGFibGVXaXRuZXNzRGVzY3JpcHRpb24kIiwgIkdsb2JhbFRhYmxlV2l0bmVzc0dyb3VwVXBkYXRlJCIsICJJZGVtcG90ZW50UGFyYW1ldGVyTWlzbWF0Y2hFeGNlcHRpb24kIiwgIkltcG9ydENvbmZsaWN0RXhjZXB0aW9uJCIsICJJbXBvcnROb3RGb3VuZEV4Y2VwdGlvbiQiLCAiSW1wb3J0U3VtbWFyeSQiLCAiUzNCdWNrZXRTb3VyY2UkIiwgIklucHV0Rm9ybWF0T3B0aW9ucyQiLCAiVGFibGVDcmVhdGlvblBhcmFtZXRlcnMkIiwgIkltcG9ydFRhYmxlSW5wdXQkIiwgIkltcG9ydFRhYmxlT3V0cHV0JCIsICJJbmRleE5vdEZvdW5kRXhjZXB0aW9uJCIsICJJbnRlcm5hbFNlcnZlckVycm9yJCIsICJJbnZhbGlkRW5kcG9pbnRFeGNlcHRpb24kIiwgIkludmFsaWRFeHBvcnRUaW1lRXhjZXB0aW9uJCIsICJJbnZhbGlkUmVzdG9yZVRpbWVFeGNlcHRpb24kIiwgIkl0ZW1Db2xsZWN0aW9uS2V5QXR0cmlidXRlTWFwIiwgIkl0ZW1Db2xsZWN0aW9uU2l6ZUxpbWl0RXhjZWVkZWRFeGNlcHRpb24kIiwgIkl0ZW1SZXNwb25zZSQiLCAiS2V5c0FuZEF0dHJpYnV0ZXMkIiwgIktleUxpc3QiLCAiS2V5U2NoZW1hRWxlbWVudCQiLCAiS2luZXNpc0RhdGFTdHJlYW1EZXN0aW5hdGlvbiQiLCAiS2luZXNpc1N0cmVhbWluZ0Rlc3RpbmF0aW9uSW5wdXQkIiwgIktpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvbk91dHB1dCQiLCAiTGltaXRFeGNlZWRlZEV4Y2VwdGlvbiQiLCAiTGlzdEJhY2t1cHNJbnB1dCQiLCAiTGlzdEJhY2t1cHNPdXRwdXQkIiwgIkJhY2t1cFN1bW1hcmllcyIsICJMaXN0Q29udHJpYnV0b3JJbnNpZ2h0c0lucHV0JCIsICJMaXN0Q29udHJpYnV0b3JJbnNpZ2h0c091dHB1dCQiLCAiQ29udHJpYnV0b3JJbnNpZ2h0c1N1bW1hcmllcyIsICJMaXN0RXhwb3J0c0lucHV0JCIsICJMaXN0RXhwb3J0c091dHB1dCQiLCAiRXhwb3J0U3VtbWFyaWVzIiwgIkxpc3RHbG9iYWxUYWJsZXNJbnB1dCQiLCAiTGlzdEdsb2JhbFRhYmxlc091dHB1dCQiLCAiR2xvYmFsVGFibGVMaXN0IiwgIkxpc3RJbXBvcnRzSW5wdXQkIiwgIkxpc3RJbXBvcnRzT3V0cHV0JCIsICJJbXBvcnRTdW1tYXJ5TGlzdCIsICJMaXN0VGFibGVzSW5wdXQkIiwgIkxpc3RUYWJsZXNPdXRwdXQkIiwgIkxpc3RUYWdzT2ZSZXNvdXJjZUlucHV0JCIsICJMaXN0VGFnc09mUmVzb3VyY2VPdXRwdXQkIiwgIkxvY2FsU2Vjb25kYXJ5SW5kZXgkIiwgIkxvY2FsU2Vjb25kYXJ5SW5kZXhEZXNjcmlwdGlvbiQiLCAiTG9jYWxTZWNvbmRhcnlJbmRleEluZm8kIiwgIlBhcmFtZXRlcml6ZWRTdGF0ZW1lbnQkIiwgIlBvaW50SW5UaW1lUmVjb3ZlcnlTcGVjaWZpY2F0aW9uJCIsICJQb2ludEluVGltZVJlY292ZXJ5VW5hdmFpbGFibGVFeGNlcHRpb24kIiwgIlBvbGljeU5vdEZvdW5kRXhjZXB0aW9uJCIsICJQcm92aXNpb25lZFRocm91Z2hwdXRFeGNlZWRlZEV4Y2VwdGlvbiQiLCAiVGhyb3R0bGluZ1JlYXNvbkxpc3QiLCAiUHV0JCIsICJQdXRJdGVtSW5wdXRBdHRyaWJ1dGVNYXAiLCAiUHV0SXRlbUlucHV0JCIsICJQdXRJdGVtT3V0cHV0JCIsICJQdXRSZXF1ZXN0JCIsICJQdXRSZXNvdXJjZVBvbGljeUlucHV0JCIsICJQdXRSZXNvdXJjZVBvbGljeU91dHB1dCQiLCAiUXVlcnlJbnB1dCQiLCAiS2V5Q29uZGl0aW9ucyIsICJGaWx0ZXJDb25kaXRpb25NYXAiLCAiUXVlcnlPdXRwdXQkIiwgIlJlcGxpY2EkIiwgIlJlcGxpY2FBbHJlYWR5RXhpc3RzRXhjZXB0aW9uJCIsICJSZXBsaWNhQXV0b1NjYWxpbmdEZXNjcmlwdGlvbiQiLCAiUmVwbGljYUdsb2JhbFNlY29uZGFyeUluZGV4QXV0b1NjYWxpbmdEZXNjcmlwdGlvbkxpc3QiLCAiUmVwbGljYUF1dG9TY2FsaW5nVXBkYXRlJCIsICJSZXBsaWNhR2xvYmFsU2Vjb25kYXJ5SW5kZXhBdXRvU2NhbGluZ1VwZGF0ZUxpc3QiLCAiUmVwbGljYURlc2NyaXB0aW9uJCIsICJUYWJsZVdhcm1UaHJvdWdocHV0RGVzY3JpcHRpb24kIiwgIlJlcGxpY2FHbG9iYWxTZWNvbmRhcnlJbmRleERlc2NyaXB0aW9uTGlzdCIsICJUYWJsZUNsYXNzU3VtbWFyeSQiLCAiUmVwbGljYUdsb2JhbFNlY29uZGFyeUluZGV4JCIsICJSZXBsaWNhR2xvYmFsU2Vjb25kYXJ5SW5kZXhBdXRvU2NhbGluZ0Rlc2NyaXB0aW9uJCIsICJSZXBsaWNhR2xvYmFsU2Vjb25kYXJ5SW5kZXhBdXRvU2NhbGluZ1VwZGF0ZSQiLCAiUmVwbGljYUdsb2JhbFNlY29uZGFyeUluZGV4RGVzY3JpcHRpb24kIiwgIlJlcGxpY2FHbG9iYWxTZWNvbmRhcnlJbmRleFNldHRpbmdzRGVzY3JpcHRpb24kIiwgIlJlcGxpY2FHbG9iYWxTZWNvbmRhcnlJbmRleFNldHRpbmdzVXBkYXRlJCIsICJSZXBsaWNhTm90Rm91bmRFeGNlcHRpb24kIiwgIlJlcGxpY2FTZXR0aW5nc0Rlc2NyaXB0aW9uJCIsICJSZXBsaWNhR2xvYmFsU2Vjb25kYXJ5SW5kZXhTZXR0aW5nc0Rlc2NyaXB0aW9uTGlzdCIsICJSZXBsaWNhU2V0dGluZ3NVcGRhdGUkIiwgIlJlcGxpY2FHbG9iYWxTZWNvbmRhcnlJbmRleFNldHRpbmdzVXBkYXRlTGlzdCIsICJSZXBsaWNhdGVkV3JpdGVDb25mbGljdEV4Y2VwdGlvbiQiLCAiUmVwbGljYXRpb25Hcm91cFVwZGF0ZSQiLCAiVXBkYXRlUmVwbGljYXRpb25Hcm91cE1lbWJlckFjdGlvbiQiLCAiUmVwbGljYVVwZGF0ZSQiLCAiUmVxdWVzdExpbWl0RXhjZWVkZWQkIiwgIlJlc291cmNlSW5Vc2VFeGNlcHRpb24kIiwgIlJlc291cmNlTm90Rm91bmRFeGNlcHRpb24kIiwgIlJlc3RvcmVTdW1tYXJ5JCIsICJSZXN0b3JlVGFibGVGcm9tQmFja3VwSW5wdXQkIiwgIlJlc3RvcmVUYWJsZUZyb21CYWNrdXBPdXRwdXQkIiwgIlJlc3RvcmVUYWJsZVRvUG9pbnRJblRpbWVJbnB1dCQiLCAiUmVzdG9yZVRhYmxlVG9Qb2ludEluVGltZU91dHB1dCQiLCAiU2NhbklucHV0JCIsICJTY2FuT3V0cHV0JCIsICJMb2NhbFNlY29uZGFyeUluZGV4ZXMiLCAiR2xvYmFsU2Vjb25kYXJ5SW5kZXhlcyIsICJTU0VEZXNjcmlwdGlvbiQiLCAiVGFibGVBbHJlYWR5RXhpc3RzRXhjZXB0aW9uJCIsICJSZXBsaWNhQXV0b1NjYWxpbmdEZXNjcmlwdGlvbkxpc3QiLCAiTG9jYWxTZWNvbmRhcnlJbmRleERlc2NyaXB0aW9uTGlzdCIsICJHbG9iYWxTZWNvbmRhcnlJbmRleERlc2NyaXB0aW9uTGlzdCIsICJHbG9iYWxUYWJsZVdpdG5lc3NEZXNjcmlwdGlvbkxpc3QiLCAiVGFibGVJblVzZUV4Y2VwdGlvbiQiLCAiVGFibGVOb3RGb3VuZEV4Y2VwdGlvbiQiLCAiVGFnJCIsICJUYWdSZXNvdXJjZUlucHV0JCIsICJUaHJvdHRsaW5nRXhjZXB0aW9uJCIsICJUaHJvdHRsaW5nUmVhc29uJCIsICJUaW1lVG9MaXZlU3BlY2lmaWNhdGlvbiQiLCAiVHJhbnNhY3RHZXRJdGVtJCIsICJUcmFuc2FjdEdldEl0ZW1zSW5wdXQkIiwgIlRyYW5zYWN0R2V0SXRlbUxpc3QiLCAiVHJhbnNhY3RHZXRJdGVtc091dHB1dCQiLCAiVHJhbnNhY3Rpb25DYW5jZWxlZEV4Y2VwdGlvbiQiLCAiQ2FuY2VsbGF0aW9uUmVhc29uTGlzdCIsICJUcmFuc2FjdGlvbkNvbmZsaWN0RXhjZXB0aW9uJCIsICJUcmFuc2FjdGlvbkluUHJvZ3Jlc3NFeGNlcHRpb24kIiwgIlRyYW5zYWN0V3JpdGVJdGVtJCIsICJVcGRhdGUkIiwgIlRyYW5zYWN0V3JpdGVJdGVtc0lucHV0JCIsICJUcmFuc2FjdFdyaXRlSXRlbUxpc3QiLCAiVHJhbnNhY3RXcml0ZUl0ZW1zT3V0cHV0JCIsICJVbnRhZ1Jlc291cmNlSW5wdXQkIiwgIlVwZGF0ZUNvbnRpbnVvdXNCYWNrdXBzSW5wdXQkIiwgIlVwZGF0ZUNvbnRpbnVvdXNCYWNrdXBzT3V0cHV0JCIsICJVcGRhdGVDb250cmlidXRvckluc2lnaHRzSW5wdXQkIiwgIlVwZGF0ZUNvbnRyaWJ1dG9ySW5zaWdodHNPdXRwdXQkIiwgIlVwZGF0ZUdsb2JhbFRhYmxlSW5wdXQkIiwgIlJlcGxpY2FVcGRhdGVMaXN0IiwgIlVwZGF0ZUdsb2JhbFRhYmxlT3V0cHV0JCIsICJVcGRhdGVHbG9iYWxUYWJsZVNldHRpbmdzSW5wdXQkIiwgIkdsb2JhbFRhYmxlR2xvYmFsU2Vjb25kYXJ5SW5kZXhTZXR0aW5nc1VwZGF0ZUxpc3QiLCAiUmVwbGljYVNldHRpbmdzVXBkYXRlTGlzdCIsICJVcGRhdGVHbG9iYWxUYWJsZVNldHRpbmdzT3V0cHV0JCIsICJVcGRhdGVJdGVtSW5wdXQkIiwgIkF0dHJpYnV0ZVVwZGF0ZXMiLCAiVXBkYXRlSXRlbU91dHB1dCQiLCAiVXBkYXRlS2luZXNpc1N0cmVhbWluZ0NvbmZpZ3VyYXRpb24kIiwgIlVwZGF0ZUtpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvbklucHV0JCIsICJVcGRhdGVLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb25PdXRwdXQkIiwgIlVwZGF0ZVRhYmxlSW5wdXQkIiwgIkdsb2JhbFNlY29uZGFyeUluZGV4VXBkYXRlTGlzdCIsICJSZXBsaWNhdGlvbkdyb3VwVXBkYXRlTGlzdCIsICJHbG9iYWxUYWJsZVdpdG5lc3NHcm91cFVwZGF0ZUxpc3QiLCAiVXBkYXRlVGFibGVPdXRwdXQkIiwgIlVwZGF0ZVRhYmxlUmVwbGljYUF1dG9TY2FsaW5nSW5wdXQkIiwgIkdsb2JhbFNlY29uZGFyeUluZGV4QXV0b1NjYWxpbmdVcGRhdGVMaXN0IiwgIlJlcGxpY2FBdXRvU2NhbGluZ1VwZGF0ZUxpc3QiLCAiVXBkYXRlVGFibGVSZXBsaWNhQXV0b1NjYWxpbmdPdXRwdXQkIiwgIlVwZGF0ZVRpbWVUb0xpdmVJbnB1dCQiLCAiVXBkYXRlVGltZVRvTGl2ZU91dHB1dCQiLCAiV3JpdGVSZXF1ZXN0JCIsICJfX1VuaXQiLCAiRHluYW1vREJTZXJ2aWNlRXhjZXB0aW9uJCIsICJJdGVtQ29sbGVjdGlvbk1ldHJpY3NNdWx0aXBsZSIsICJMaXN0QXR0cmlidXRlVmFsdWUiLCAiV3JpdGVSZXF1ZXN0cyIsICJNYXBBdHRyaWJ1dGVWYWx1ZSIsICJCYXRjaEV4ZWN1dGVTdGF0ZW1lbnQkIiwgIkJhdGNoR2V0SXRlbSQiLCAiQmF0Y2hXcml0ZUl0ZW0kIiwgIkNyZWF0ZUJhY2t1cCQiLCAiQ3JlYXRlR2xvYmFsVGFibGUkIiwgIkNyZWF0ZVRhYmxlJCIsICJEZWxldGVCYWNrdXAkIiwgIkRlbGV0ZUl0ZW0kIiwgIkRlbGV0ZVJlc291cmNlUG9saWN5JCIsICJEZWxldGVUYWJsZSQiLCAiRGVzY3JpYmVCYWNrdXAkIiwgIkRlc2NyaWJlQ29udGludW91c0JhY2t1cHMkIiwgIkRlc2NyaWJlQ29udHJpYnV0b3JJbnNpZ2h0cyQiLCAiRGVzY3JpYmVFbmRwb2ludHMkIiwgIkRlc2NyaWJlRXhwb3J0JCIsICJEZXNjcmliZUdsb2JhbFRhYmxlJCIsICJEZXNjcmliZUdsb2JhbFRhYmxlU2V0dGluZ3MkIiwgIkRlc2NyaWJlSW1wb3J0JCIsICJEZXNjcmliZUtpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvbiQiLCAiRGVzY3JpYmVMaW1pdHMkIiwgIkRlc2NyaWJlVGFibGUkIiwgIkRlc2NyaWJlVGFibGVSZXBsaWNhQXV0b1NjYWxpbmckIiwgIkRlc2NyaWJlVGltZVRvTGl2ZSQiLCAiRGlzYWJsZUtpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvbiQiLCAiRW5hYmxlS2luZXNpc1N0cmVhbWluZ0Rlc3RpbmF0aW9uJCIsICJFeGVjdXRlU3RhdGVtZW50JCIsICJFeGVjdXRlVHJhbnNhY3Rpb24kIiwgIkV4cG9ydFRhYmxlVG9Qb2ludEluVGltZSQiLCAiR2V0SXRlbSQiLCAiR2V0UmVzb3VyY2VQb2xpY3kkIiwgIkltcG9ydFRhYmxlJCIsICJMaXN0QmFja3VwcyQiLCAiTGlzdENvbnRyaWJ1dG9ySW5zaWdodHMkIiwgIkxpc3RFeHBvcnRzJCIsICJMaXN0R2xvYmFsVGFibGVzJCIsICJMaXN0SW1wb3J0cyQiLCAiTGlzdFRhYmxlcyQiLCAiTGlzdFRhZ3NPZlJlc291cmNlJCIsICJQdXRJdGVtJCIsICJQdXRSZXNvdXJjZVBvbGljeSQiLCAiUXVlcnkkIiwgIlJlc3RvcmVUYWJsZUZyb21CYWNrdXAkIiwgIlJlc3RvcmVUYWJsZVRvUG9pbnRJblRpbWUkIiwgIlNjYW4kIiwgIlRhZ1Jlc291cmNlJCIsICJUcmFuc2FjdEdldEl0ZW1zJCIsICJUcmFuc2FjdFdyaXRlSXRlbXMkIiwgIlVudGFnUmVzb3VyY2UkIiwgIlVwZGF0ZUNvbnRpbnVvdXNCYWNrdXBzJCIsICJVcGRhdGVDb250cmlidXRvckluc2lnaHRzJCIsICJVcGRhdGVHbG9iYWxUYWJsZSQiLCAiVXBkYXRlR2xvYmFsVGFibGVTZXR0aW5ncyQiLCAiVXBkYXRlSXRlbSQiLCAiVXBkYXRlS2luZXNpc1N0cmVhbWluZ0Rlc3RpbmF0aW9uJCIsICJVcGRhdGVUYWJsZSQiLCAiVXBkYXRlVGFibGVSZXBsaWNhQXV0b1NjYWxpbmckIiwgIlVwZGF0ZVRpbWVUb0xpdmUkIiwgIkRlc2NyaWJlRW5kcG9pbnRzQ29tbWFuZCIsICJDb21tYW5kIiwgImNzIiwgImNvbmZpZyIsICJvIiwgImdldEh0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiIsICJfaHR0cEF1dGhTY2hlbWVzIiwgIl9odHRwQXV0aFNjaGVtZVByb3ZpZGVyIiwgIl9jcmVkZW50aWFscyIsICJodHRwQXV0aFNjaGVtZSIsICJpbmRleCIsICJzY2hlbWUiLCAiY3JlZGVudGlhbHMiLCAicmVzb2x2ZUh0dHBBdXRoUnVudGltZUNvbmZpZyIsICJyZXNvbHZlUnVudGltZUV4dGVuc2lvbnMiLCAiZXh0ZW5zaW9ucyIsICJleHRlbnNpb25Db25maWd1cmF0aW9uIiwgImV4dGVuc2lvbiIsICJEeW5hbW9EQkNsaWVudCIsICJjb25maWd1cmF0aW9uIiwgIl9jb25maWdfMCIsICJfY29uZmlnXzEiLCAiX2NvbmZpZ18yIiwgIl9jb25maWdfMyIsICJfY29uZmlnXzQiLCAiX2NvbmZpZ181IiwgIl9jb25maWdfNiIsICJfY29uZmlnXzciLCAiX2NvbmZpZ184IiwgIl9jb25maWdfOSIsICJfY29uZmlnXzEwIiwgIkJhdGNoRXhlY3V0ZVN0YXRlbWVudENvbW1hbmQiLCAiQmF0Y2hHZXRJdGVtQ29tbWFuZCIsICJpbnB1dCIsICJCYXRjaFdyaXRlSXRlbUNvbW1hbmQiLCAiQ3JlYXRlQmFja3VwQ29tbWFuZCIsICJDcmVhdGVHbG9iYWxUYWJsZUNvbW1hbmQiLCAiQ3JlYXRlVGFibGVDb21tYW5kIiwgIkRlbGV0ZUJhY2t1cENvbW1hbmQiLCAiRGVsZXRlSXRlbUNvbW1hbmQiLCAiRGVsZXRlUmVzb3VyY2VQb2xpY3lDb21tYW5kIiwgIkRlbGV0ZVRhYmxlQ29tbWFuZCIsICJEZXNjcmliZUJhY2t1cENvbW1hbmQiLCAiRGVzY3JpYmVDb250aW51b3VzQmFja3Vwc0NvbW1hbmQiLCAiRGVzY3JpYmVDb250cmlidXRvckluc2lnaHRzQ29tbWFuZCIsICJEZXNjcmliZUV4cG9ydENvbW1hbmQiLCAiRGVzY3JpYmVHbG9iYWxUYWJsZUNvbW1hbmQiLCAiRGVzY3JpYmVHbG9iYWxUYWJsZVNldHRpbmdzQ29tbWFuZCIsICJEZXNjcmliZUltcG9ydENvbW1hbmQiLCAiRGVzY3JpYmVLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb25Db21tYW5kIiwgIkRlc2NyaWJlTGltaXRzQ29tbWFuZCIsICJEZXNjcmliZVRhYmxlQ29tbWFuZCIsICJEZXNjcmliZVRhYmxlUmVwbGljYUF1dG9TY2FsaW5nQ29tbWFuZCIsICJEZXNjcmliZVRpbWVUb0xpdmVDb21tYW5kIiwgIkRpc2FibGVLaW5lc2lzU3RyZWFtaW5nRGVzdGluYXRpb25Db21tYW5kIiwgIkVuYWJsZUtpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvbkNvbW1hbmQiLCAiRXhlY3V0ZVN0YXRlbWVudENvbW1hbmQiLCAiRXhlY3V0ZVRyYW5zYWN0aW9uQ29tbWFuZCIsICJFeHBvcnRUYWJsZVRvUG9pbnRJblRpbWVDb21tYW5kIiwgIkdldEl0ZW1Db21tYW5kIiwgIkdldFJlc291cmNlUG9saWN5Q29tbWFuZCIsICJJbXBvcnRUYWJsZUNvbW1hbmQiLCAiTGlzdEJhY2t1cHNDb21tYW5kIiwgIkxpc3RDb250cmlidXRvckluc2lnaHRzQ29tbWFuZCIsICJMaXN0RXhwb3J0c0NvbW1hbmQiLCAiTGlzdEdsb2JhbFRhYmxlc0NvbW1hbmQiLCAiTGlzdEltcG9ydHNDb21tYW5kIiwgIkxpc3RUYWJsZXNDb21tYW5kIiwgIkxpc3RUYWdzT2ZSZXNvdXJjZUNvbW1hbmQiLCAiUHV0SXRlbUNvbW1hbmQiLCAiUHV0UmVzb3VyY2VQb2xpY3lDb21tYW5kIiwgIlF1ZXJ5Q29tbWFuZCIsICJSZXN0b3JlVGFibGVGcm9tQmFja3VwQ29tbWFuZCIsICJSZXN0b3JlVGFibGVUb1BvaW50SW5UaW1lQ29tbWFuZCIsICJTY2FuQ29tbWFuZCIsICJUYWdSZXNvdXJjZUNvbW1hbmQiLCAiVHJhbnNhY3RHZXRJdGVtc0NvbW1hbmQiLCAib2JqIiwgIlRyYW5zYWN0V3JpdGVJdGVtc0NvbW1hbmQiLCAiaSIsICJVbnRhZ1Jlc291cmNlQ29tbWFuZCIsICJVcGRhdGVDb250aW51b3VzQmFja3Vwc0NvbW1hbmQiLCAiVXBkYXRlQ29udHJpYnV0b3JJbnNpZ2h0c0NvbW1hbmQiLCAiVXBkYXRlR2xvYmFsVGFibGVDb21tYW5kIiwgIlVwZGF0ZUdsb2JhbFRhYmxlU2V0dGluZ3NDb21tYW5kIiwgIlVwZGF0ZUl0ZW1Db21tYW5kIiwgIlVwZGF0ZUtpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvbkNvbW1hbmQiLCAiVXBkYXRlVGFibGVDb21tYW5kIiwgIlVwZGF0ZVRhYmxlUmVwbGljYUF1dG9TY2FsaW5nQ29tbWFuZCIsICJVcGRhdGVUaW1lVG9MaXZlQ29tbWFuZCIsICJwYWdpbmF0ZUxpc3RDb250cmlidXRvckluc2lnaHRzIiwgInBhZ2luYXRlTGlzdEV4cG9ydHMiLCAicGFnaW5hdGVMaXN0SW1wb3J0cyIsICJwYWdpbmF0ZUxpc3RUYWJsZXMiLCAicGFnaW5hdGVRdWVyeSIsICJwYWdpbmF0ZVNjYW4iLCAiY2hlY2tTdGF0ZSQ1IiwgImNsaWVudCIsICJyZWFzb24iLCAicmVzdWx0IiwgImV4Y2VwdGlvbiIsICJ3YWl0Rm9yQ29udHJpYnV0b3JJbnNpZ2h0c0VuYWJsZWQiLCAicGFyYW1zIiwgInNlcnZpY2VEZWZhdWx0cyIsICJ3YWl0VW50aWxDb250cmlidXRvckluc2lnaHRzRW5hYmxlZCIsICJjaGVja1N0YXRlJDQiLCAid2FpdEZvckV4cG9ydENvbXBsZXRlZCIsICJ3YWl0VW50aWxFeHBvcnRDb21wbGV0ZWQiLCAiY2hlY2tTdGF0ZSQzIiwgIndhaXRGb3JJbXBvcnRDb21wbGV0ZWQiLCAid2FpdFVudGlsSW1wb3J0Q29tcGxldGVkIiwgImNoZWNrU3RhdGUkMiIsICJyZXR1cm5Db21wYXJhdG9yIiwgImVsZW1lbnRfMiIsICJhbnlTdHJpbmdFcV80IiwgImZpbHRlclJlc18yIiwgImVsZW1lbnRfMSIsICJ3YWl0Rm9yS2luZXNpc1N0cmVhbWluZ0Rlc3RpbmF0aW9uQWN0aXZlIiwgIndhaXRVbnRpbEtpbmVzaXNTdHJlYW1pbmdEZXN0aW5hdGlvbkFjdGl2ZSIsICJjaGVja1N0YXRlJDEiLCAid2FpdEZvclRhYmxlRXhpc3RzIiwgIndhaXRVbnRpbFRhYmxlRXhpc3RzIiwgImNoZWNrU3RhdGUiLCAid2FpdEZvclRhYmxlTm90RXhpc3RzIiwgIndhaXRVbnRpbFRhYmxlTm90RXhpc3RzIiwgImNvbW1hbmRzIiwgInBhZ2luYXRvcnMiLCAid2FpdGVycyIsICJEeW5hbW9EQiIsICJBcHByb3hpbWF0ZUNyZWF0aW9uRGF0ZVRpbWVQcmVjaXNpb24iLCAiQXR0cmlidXRlQWN0aW9uIiwgIlNjYWxhckF0dHJpYnV0ZVR5cGUiLCAiQmFja3VwU3RhdHVzIiwgIkJhY2t1cFR5cGUiLCAiQmlsbGluZ01vZGUiLCAiS2V5VHlwZSIsICJQcm9qZWN0aW9uVHlwZSIsICJTU0VUeXBlIiwgIlNTRVN0YXR1cyIsICJTdHJlYW1WaWV3VHlwZSIsICJUaW1lVG9MaXZlU3RhdHVzIiwgIkJhY2t1cFR5cGVGaWx0ZXIiLCAiUmV0dXJuQ29uc3VtZWRDYXBhY2l0eSIsICJSZXR1cm5WYWx1ZXNPbkNvbmRpdGlvbkNoZWNrRmFpbHVyZSIsICJCYXRjaFN0YXRlbWVudEVycm9yQ29kZUVudW0iLCAiUmV0dXJuSXRlbUNvbGxlY3Rpb25NZXRyaWNzIiwgIkNvbXBhcmlzb25PcGVyYXRvciIsICJDb25kaXRpb25hbE9wZXJhdG9yIiwgIkNvbnRpbnVvdXNCYWNrdXBzU3RhdHVzIiwgIlBvaW50SW5UaW1lUmVjb3ZlcnlTdGF0dXMiLCAiQ29udHJpYnV0b3JJbnNpZ2h0c0FjdGlvbiIsICJDb250cmlidXRvckluc2lnaHRzTW9kZSIsICJDb250cmlidXRvckluc2lnaHRzU3RhdHVzIiwgIkdsb2JhbFRhYmxlU3RhdHVzIiwgIkluZGV4U3RhdHVzIiwgIlJlcGxpY2FTdGF0dXMiLCAiVGFibGVDbGFzcyIsICJUYWJsZVN0YXR1cyIsICJXaXRuZXNzU3RhdHVzIiwgIk11bHRpUmVnaW9uQ29uc2lzdGVuY3kiLCAiUmV0dXJuVmFsdWUiLCAiRXhwb3J0Rm9ybWF0IiwgIkV4cG9ydFN0YXR1cyIsICJFeHBvcnRUeXBlIiwgIkV4cG9ydFZpZXdUeXBlIiwgIlMzU3NlQWxnb3JpdGhtIiwgIkltcG9ydFN0YXR1cyIsICJJbnB1dENvbXByZXNzaW9uVHlwZSIsICJJbnB1dEZvcm1hdCIsICJEZXN0aW5hdGlvblN0YXR1cyIsICJTZWxlY3QiLCAic3RhdGUiLCAiZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbiIsICJpbml0X2VtaXRXYXJuaW5nSWZVbnN1cHBvcnRlZFZlcnNpb24iLCAiX19lc21NaW4iLCAidmVyc2lvbiIsICJzZXRDcmVkZW50aWFsRmVhdHVyZSIsICJjcmVkZW50aWFscyIsICJmZWF0dXJlIiwgInZhbHVlIiwgImluaXRfc2V0Q3JlZGVudGlhbEZlYXR1cmUiLCAiX19lc21NaW4iLCAic2V0RmVhdHVyZSIsICJjb250ZXh0IiwgImZlYXR1cmUiLCAidmFsdWUiLCAiaW5pdF9zZXRGZWF0dXJlIiwgIl9fZXNtTWluIiwgInNldFRva2VuRmVhdHVyZSIsICJ0b2tlbiIsICJmZWF0dXJlIiwgInZhbHVlIiwgImluaXRfc2V0VG9rZW5GZWF0dXJlIiwgIl9fZXNtTWluIiwgImluaXRfY2xpZW50IiwgIl9fZXNtTWluIiwgImluaXRfZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbiIsICJpbml0X3NldENyZWRlbnRpYWxGZWF0dXJlIiwgImluaXRfc2V0RmVhdHVyZSIsICJpbml0X3NldFRva2VuRmVhdHVyZSIsICJpbXBvcnRfcHJvdG9jb2xfaHR0cCIsICJnZXREYXRlSGVhZGVyIiwgImluaXRfZ2V0RGF0ZUhlYWRlciIsICJfX2VzbU1pbiIsICJyZXNwb25zZSIsICJnZXRTa2V3Q29ycmVjdGVkRGF0ZSIsICJpbml0X2dldFNrZXdDb3JyZWN0ZWREYXRlIiwgIl9fZXNtTWluIiwgInN5c3RlbUNsb2NrT2Zmc2V0IiwgImlzQ2xvY2tTa2V3ZWQiLCAiaW5pdF9pc0Nsb2NrU2tld2VkIiwgIl9fZXNtTWluIiwgImluaXRfZ2V0U2tld0NvcnJlY3RlZERhdGUiLCAiY2xvY2tUaW1lIiwgInN5c3RlbUNsb2NrT2Zmc2V0IiwgImdldFNrZXdDb3JyZWN0ZWREYXRlIiwgImdldFVwZGF0ZWRTeXN0ZW1DbG9ja09mZnNldCIsICJpbml0X2dldFVwZGF0ZWRTeXN0ZW1DbG9ja09mZnNldCIsICJfX2VzbU1pbiIsICJpbml0X2lzQ2xvY2tTa2V3ZWQiLCAiY2xvY2tUaW1lIiwgImN1cnJlbnRTeXN0ZW1DbG9ja09mZnNldCIsICJjbG9ja1RpbWVJbk1zIiwgImlzQ2xvY2tTa2V3ZWQiLCAiaW5pdF91dGlscyIsICJfX2VzbU1pbiIsICJpbml0X2dldERhdGVIZWFkZXIiLCAiaW5pdF9nZXRTa2V3Q29ycmVjdGVkRGF0ZSIsICJpbml0X2dldFVwZGF0ZWRTeXN0ZW1DbG9ja09mZnNldCIsICJpbXBvcnRfcHJvdG9jb2xfaHR0cCIsICJ0aHJvd1NpZ25pbmdQcm9wZXJ0eUVycm9yIiwgInZhbGlkYXRlU2lnbmluZ1Byb3BlcnRpZXMiLCAiQXdzU2RrU2lnVjRTaWduZXIiLCAiQVdTU0RLU2lnVjRTaWduZXIiLCAiaW5pdF9Bd3NTZGtTaWdWNFNpZ25lciIsICJfX2VzbU1pbiIsICJpbml0X3V0aWxzIiwgIm5hbWUiLCAicHJvcGVydHkiLCAic2lnbmluZ1Byb3BlcnRpZXMiLCAiY29udGV4dCIsICJjb25maWciLCAiYXV0aFNjaGVtZSIsICJzaWduZXIiLCAic2lnbmluZ1JlZ2lvbiIsICJzaWduaW5nUmVnaW9uU2V0IiwgInNpZ25pbmdOYW1lIiwgImh0dHBSZXF1ZXN0IiwgImlkZW50aXR5IiwgInZhbGlkYXRlZFByb3BzIiwgImhhbmRsZXJFeGVjdXRpb25Db250ZXh0IiwgImZpcnN0IiwgInNlY29uZCIsICJnZXRTa2V3Q29ycmVjdGVkRGF0ZSIsICJlcnJvciIsICJzZXJ2ZXJUaW1lIiwgImdldERhdGVIZWFkZXIiLCAiaW5pdGlhbFN5c3RlbUNsb2NrT2Zmc2V0IiwgImdldFVwZGF0ZWRTeXN0ZW1DbG9ja09mZnNldCIsICJodHRwUmVzcG9uc2UiLCAiZGF0ZUhlYWRlciIsICJpbXBvcnRfcHJvdG9jb2xfaHR0cCIsICJBd3NTZGtTaWdWNEFTaWduZXIiLCAiaW5pdF9Bd3NTZGtTaWdWNEFTaWduZXIiLCAiX19lc21NaW4iLCAiaW5pdF91dGlscyIsICJpbml0X0F3c1Nka1NpZ1Y0U2lnbmVyIiwgIkF3c1Nka1NpZ1Y0U2lnbmVyIiwgImh0dHBSZXF1ZXN0IiwgImlkZW50aXR5IiwgInNpZ25pbmdQcm9wZXJ0aWVzIiwgImNvbmZpZyIsICJzaWduZXIiLCAic2lnbmluZ1JlZ2lvbiIsICJzaWduaW5nUmVnaW9uU2V0IiwgInNpZ25pbmdOYW1lIiwgInZhbGlkYXRlU2lnbmluZ1Byb3BlcnRpZXMiLCAibXVsdGlSZWdpb25PdmVycmlkZSIsICJnZXRTa2V3Q29ycmVjdGVkRGF0ZSIsICJnZXRBcnJheUZvckNvbW1hU2VwYXJhdGVkU3RyaW5nIiwgImluaXRfZ2V0QXJyYXlGb3JDb21tYVNlcGFyYXRlZFN0cmluZyIsICJfX2VzbU1pbiIsICJzdHIiLCAiaXRlbSIsICJnZXRCZWFyZXJUb2tlbkVudktleSIsICJpbml0X2dldEJlYXJlclRva2VuRW52S2V5IiwgIl9fZXNtTWluIiwgInNpZ25pbmdOYW1lIiwgIk5PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9FTlZfS0VZIiwgIk5PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9DT05GSUdfS0VZIiwgIk5PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9PUFRJT05TIiwgImluaXRfTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX09QVElPTlMiLCAiX19lc21NaW4iLCAiaW5pdF9nZXRBcnJheUZvckNvbW1hU2VwYXJhdGVkU3RyaW5nIiwgImluaXRfZ2V0QmVhcmVyVG9rZW5FbnZLZXkiLCAiZW52IiwgIm9wdGlvbnMiLCAiZ2V0QmVhcmVyVG9rZW5FbnZLZXkiLCAiZ2V0QXJyYXlGb3JDb21tYVNlcGFyYXRlZFN0cmluZyIsICJwcm9maWxlIiwgImltcG9ydF9jb3JlIiwgImltcG9ydF9wcm9wZXJ0eV9wcm92aWRlciIsICJyZXNvbHZlQXdzU2RrU2lnVjRBQ29uZmlnIiwgIk5PREVfU0lHVjRBX0NPTkZJR19PUFRJT05TIiwgImluaXRfcmVzb2x2ZUF3c1Nka1NpZ1Y0QUNvbmZpZyIsICJfX2VzbU1pbiIsICJjb25maWciLCAiZW52IiwgIl8iLCAicHJvZmlsZSIsICJub3JtYWxpemVDcmVkZW50aWFsUHJvdmlkZXIiLCAiY29uZmlnIiwgImNyZWRlbnRpYWxzIiwgImNyZWRlbnRpYWxEZWZhdWx0UHJvdmlkZXIiLCAiY3JlZGVudGlhbHNQcm92aWRlciIsICJiaW5kQ2FsbGVyQ29uZmlnIiwgImZuIiwgIm9wdGlvbnMiLCAiaW1wb3J0X2NvcmUiLCAiaW1wb3J0X3NpZ25hdHVyZV92NCIsICJyZXNvbHZlQXdzU2RrU2lnVjRDb25maWciLCAicmVzb2x2ZUFXU1NES1NpZ1Y0Q29uZmlnIiwgImluaXRfcmVzb2x2ZUF3c1Nka1NpZ1Y0Q29uZmlnIiwgIl9fZXNtTWluIiwgImluaXRfY2xpZW50IiwgImlucHV0Q3JlZGVudGlhbHMiLCAiaXNVc2VyU3VwcGxpZWQiLCAicmVzb2x2ZWRDcmVkZW50aWFscyIsICJtZW1vaXplZFByb3ZpZGVyIiwgImJvdW5kUHJvdmlkZXIiLCAiaXNDcmVkZW50aWFsT2JqZWN0IiwgImF0dHJpYnV0ZWRDcmVkcyIsICJzZXRDcmVkZW50aWFsRmVhdHVyZSIsICJzaWduaW5nRXNjYXBlUGF0aCIsICJzeXN0ZW1DbG9ja09mZnNldCIsICJzaGEyNTYiLCAic2lnbmVyIiwgInJlZ2lvbiIsICJyZWdpb25JbmZvIiwgInNpZ25pbmdSZWdpb24iLCAic2lnbmluZ1NlcnZpY2UiLCAicGFyYW1zIiwgIlNpZ25lckN0b3IiLCAiYXV0aFNjaGVtZSIsICJpbml0X2F3c19zZGsiLCAiX19lc21NaW4iLCAiaW5pdF9Bd3NTZGtTaWdWNFNpZ25lciIsICJpbml0X0F3c1Nka1NpZ1Y0QVNpZ25lciIsICJpbml0X05PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9PUFRJT05TIiwgImluaXRfcmVzb2x2ZUF3c1Nka1NpZ1Y0QUNvbmZpZyIsICJpbml0X3Jlc29sdmVBd3NTZGtTaWdWNENvbmZpZyIsICJpbml0X2h0dHBBdXRoU2NoZW1lcyIsICJfX2VzbU1pbiIsICJpbml0X2F3c19zZGsiLCAiaW5pdF9nZXRCZWFyZXJUb2tlbkVudktleSIsICJpbXBvcnRfc2NoZW1hIiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgIlByb3RvY29sTGliIiwgImluaXRfUHJvdG9jb2xMaWIiLCAiX19lc21NaW4iLCAicXVlcnlDb21wYXQiLCAiZGVmYXVsdENvbnRlbnRUeXBlIiwgImlucHV0U2NoZW1hIiwgIm1lbWJlcnMiLCAiaHR0cFBheWxvYWRNZW1iZXIiLCAibSIsICJtZWRpYVR5cGUiLCAiaHR0cFF1ZXJ5IiwgImh0dHBRdWVyeVBhcmFtcyIsICJodHRwSGVhZGVyIiwgImh0dHBMYWJlbCIsICJodHRwUHJlZml4SGVhZGVycyIsICJlcnJvcklkZW50aWZpZXIiLCAiZGVmYXVsdE5hbWVzcGFjZSIsICJyZXNwb25zZSIsICJkYXRhT2JqZWN0IiwgIm1ldGFkYXRhIiwgImdldEVycm9yU2NoZW1hIiwgIm5hbWVzcGFjZSIsICJlcnJvck5hbWUiLCAiZXJyb3JNZXRhZGF0YSIsICJyZWdpc3RyeSIsICJzeW50aGV0aWMiLCAiYmFzZUV4Y2VwdGlvblNjaGVtYSIsICJFcnJvckN0b3IiLCAiZXhjZXB0aW9uIiwgImFkZGl0aW9ucyIsICJtc2ciLCAiZXJyb3IiLCAicmVxSWQiLCAib3V0cHV0IiwgInF1ZXJ5RXJyb3JIZWFkZXIiLCAiQ29kZSIsICJUeXBlIiwgImVudHJpZXMiLCAiRXJyb3IiLCAiayIsICJ2IiwgInF1ZXJ5Q29tcGF0RXJyb3JEYXRhIiwgImVycm9yRGF0YSIsICJzY2hlbWEiLCAiaW1wb3J0X2Nib3IiLCAiaW1wb3J0X3NjaGVtYSIsICJBd3NTbWl0aHlScGNWMkNib3JQcm90b2NvbCIsICJpbml0X0F3c1NtaXRoeVJwY1YyQ2JvclByb3RvY29sIiwgIl9fZXNtTWluIiwgImluaXRfUHJvdG9jb2xMaWIiLCAiZGVmYXVsdE5hbWVzcGFjZSIsICJhd3NRdWVyeUNvbXBhdGlibGUiLCAiUHJvdG9jb2xMaWIiLCAib3BlcmF0aW9uU2NoZW1hIiwgImlucHV0IiwgImNvbnRleHQiLCAicmVxdWVzdCIsICJyZXNwb25zZSIsICJkYXRhT2JqZWN0IiwgIm1ldGFkYXRhIiwgImVycm9yTmFtZSIsICJjb21wYXRIZWFkZXIiLCAiZXJyb3JTY2hlbWEiLCAiZXJyb3JNZXRhZGF0YSIsICJucyIsICJtZXNzYWdlIiwgIkVycm9yQ3RvciIsICJleGNlcHRpb24iLCAib3V0cHV0IiwgIm5hbWUiLCAibWVtYmVyIiwgIl90b1N0ciIsICJfdG9Cb29sIiwgIl90b051bSIsICJpbml0X2NvZXJjaW5nX3NlcmlhbGl6ZXJzIiwgIl9fZXNtTWluIiwgInZhbCIsICJ3YXJuaW5nIiwgImxvd2VyY2FzZSIsICJudW0iLCAiU2VyZGVDb250ZXh0Q29uZmlnIiwgImluaXRfQ29uZmlndXJhYmxlU2VyZGVDb250ZXh0IiwgIl9fZXNtTWluIiwgInNlcmRlQ29udGV4dCIsICJVbmlvblNlcmRlIiwgImluaXRfVW5pb25TZXJkZSIsICJfX2VzbU1pbiIsICJmcm9tIiwgInRvIiwgImsiLCAia2V5IiwgInYiLCAianNvblJldml2ZXIiLCAia2V5IiwgInZhbHVlIiwgImNvbnRleHQiLCAibnVtZXJpY1N0cmluZyIsICJpbXBvcnRfc2VyZGUiLCAiaW5pdF9qc29uUmV2aXZlciIsICJfX2VzbU1pbiIsICJpbXBvcnRfc21pdGh5X2NsaWVudCIsICJpbXBvcnRfdXRpbF91dGY4IiwgImNvbGxlY3RCb2R5U3RyaW5nIiwgImluaXRfY29tbW9uIiwgIl9fZXNtTWluIiwgInN0cmVhbUJvZHkiLCAiY29udGV4dCIsICJib2R5IiwgInBhcnNlSnNvbkJvZHkiLCAicGFyc2VKc29uRXJyb3JCb2R5IiwgImxvYWRSZXN0SnNvbkVycm9yQ29kZSIsICJpbml0X3BhcnNlSnNvbkJvZHkiLCAiX19lc21NaW4iLCAiaW5pdF9jb21tb24iLCAic3RyZWFtQm9keSIsICJjb250ZXh0IiwgImNvbGxlY3RCb2R5U3RyaW5nIiwgImVuY29kZWQiLCAiZSIsICJlcnJvckJvZHkiLCAidmFsdWUiLCAib3V0cHV0IiwgImRhdGEiLCAiZmluZEtleSIsICJvYmplY3QiLCAia2V5IiwgImsiLCAic2FuaXRpemVFcnJvckNvZGUiLCAicmF3VmFsdWUiLCAiY2xlYW5WYWx1ZSIsICJoZWFkZXJLZXkiLCAiY29kZUtleSIsICJpbXBvcnRfcHJvdG9jb2xzIiwgImltcG9ydF9zY2hlbWEiLCAiaW1wb3J0X3NlcmRlIiwgImltcG9ydF91dGlsX2Jhc2U2NCIsICJKc29uU2hhcGVEZXNlcmlhbGl6ZXIiLCAiaW5pdF9Kc29uU2hhcGVEZXNlcmlhbGl6ZXIiLCAiX19lc21NaW4iLCAiaW5pdF9Db25maWd1cmFibGVTZXJkZUNvbnRleHQiLCAiaW5pdF9VbmlvblNlcmRlIiwgImluaXRfanNvblJldml2ZXIiLCAiaW5pdF9wYXJzZUpzb25Cb2R5IiwgIlNlcmRlQ29udGV4dENvbmZpZyIsICJzZXR0aW5ncyIsICJzY2hlbWEiLCAiZGF0YSIsICJqc29uUmV2aXZlciIsICJwYXJzZUpzb25Cb2R5IiwgInZhbHVlIiwgImlzT2JqZWN0IiwgIm5zIiwgInJlY29yZCIsICJ1bmlvbiIsICJvdXQiLCAibmFtZU1hcCIsICJqc29uTmFtZSIsICJ1bmlvblNlcmRlIiwgIlVuaW9uU2VyZGUiLCAibWVtYmVyTmFtZSIsICJtZW1iZXJTY2hlbWEiLCAiZnJvbUtleSIsICJrIiwgInYiLCAidCIsICJsaXN0TWVtYmVyIiwgInNwYXJzZSIsICJpdGVtIiwgIm1hcE1lbWJlciIsICJfayIsICJfdiIsICJtZWRpYVR5cGUiLCAidW50eXBlZCIsICJpbXBvcnRfc2VyZGUiLCAiTlVNRVJJQ19DT05UUk9MX0NIQVIiLCAiSnNvblJlcGxhY2VyIiwgImluaXRfanNvblJlcGxhY2VyIiwgIl9fZXNtTWluIiwgImtleSIsICJ2YWx1ZSIsICJ2IiwgInMiLCAianNvbiIsICJpbXBvcnRfcHJvdG9jb2xzIiwgImltcG9ydF9zY2hlbWEiLCAiaW1wb3J0X3NlcmRlIiwgImltcG9ydF91dGlsX2Jhc2U2NCIsICJKc29uU2hhcGVTZXJpYWxpemVyIiwgImluaXRfSnNvblNoYXBlU2VyaWFsaXplciIsICJfX2VzbU1pbiIsICJpbml0X0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dCIsICJpbml0X2pzb25SZXBsYWNlciIsICJTZXJkZUNvbnRleHRDb25maWciLCAic2V0dGluZ3MiLCAic2NoZW1hIiwgInZhbHVlIiwgInJvb3RTY2hlbWEiLCAidXNlUmVwbGFjZXIiLCAicmVwbGFjZXIiLCAiSnNvblJlcGxhY2VyIiwgImNvbnRhaW5lciIsICJpc09iamVjdCIsICJucyIsICJyZWNvcmQiLCAib3V0IiwgImpzb25OYW1lIiwgIm5hbWVNYXAiLCAibWVtYmVyTmFtZSIsICJtZW1iZXJTY2hlbWEiLCAic2VyaWFsaXphYmxlVmFsdWUiLCAidGFyZ2V0S2V5IiwgIiR1bmtub3duIiwgImsiLCAidiIsICJsaXN0TWVtYmVyIiwgInNwYXJzZSIsICJpdGVtIiwgIm1hcE1lbWJlciIsICJfayIsICJfdiIsICJtZWRpYVR5cGUiLCAiSnNvbkNvZGVjIiwgImluaXRfSnNvbkNvZGVjIiwgIl9fZXNtTWluIiwgImluaXRfQ29uZmlndXJhYmxlU2VyZGVDb250ZXh0IiwgImluaXRfSnNvblNoYXBlRGVzZXJpYWxpemVyIiwgImluaXRfSnNvblNoYXBlU2VyaWFsaXplciIsICJTZXJkZUNvbnRleHRDb25maWciLCAic2V0dGluZ3MiLCAic2VyaWFsaXplciIsICJKc29uU2hhcGVTZXJpYWxpemVyIiwgImRlc2VyaWFsaXplciIsICJKc29uU2hhcGVEZXNlcmlhbGl6ZXIiLCAiaW1wb3J0X3Byb3RvY29scyIsICJpbXBvcnRfc2NoZW1hIiwgIkF3c0pzb25ScGNQcm90b2NvbCIsICJpbml0X0F3c0pzb25ScGNQcm90b2NvbCIsICJfX2VzbU1pbiIsICJpbml0X1Byb3RvY29sTGliIiwgImluaXRfSnNvbkNvZGVjIiwgImluaXRfcGFyc2VKc29uQm9keSIsICJkZWZhdWx0TmFtZXNwYWNlIiwgInNlcnZpY2VUYXJnZXQiLCAiYXdzUXVlcnlDb21wYXRpYmxlIiwgImpzb25Db2RlYyIsICJKc29uQ29kZWMiLCAiUHJvdG9jb2xMaWIiLCAib3BlcmF0aW9uU2NoZW1hIiwgImlucHV0IiwgImNvbnRleHQiLCAicmVxdWVzdCIsICJyZXNwb25zZSIsICJkYXRhT2JqZWN0IiwgIm1ldGFkYXRhIiwgImVycm9ySWRlbnRpZmllciIsICJsb2FkUmVzdEpzb25FcnJvckNvZGUiLCAiZXJyb3JTY2hlbWEiLCAiZXJyb3JNZXRhZGF0YSIsICJucyIsICJtZXNzYWdlIiwgIkVycm9yQ3RvciIsICJleGNlcHRpb24iLCAib3V0cHV0IiwgIm5hbWUiLCAibWVtYmVyIiwgIkF3c0pzb24xXzBQcm90b2NvbCIsICJpbml0X0F3c0pzb24xXzBQcm90b2NvbCIsICJfX2VzbU1pbiIsICJpbml0X0F3c0pzb25ScGNQcm90b2NvbCIsICJBd3NKc29uUnBjUHJvdG9jb2wiLCAiZGVmYXVsdE5hbWVzcGFjZSIsICJzZXJ2aWNlVGFyZ2V0IiwgImF3c1F1ZXJ5Q29tcGF0aWJsZSIsICJqc29uQ29kZWMiLCAiQXdzSnNvbjFfMVByb3RvY29sIiwgImluaXRfQXdzSnNvbjFfMVByb3RvY29sIiwgIl9fZXNtTWluIiwgImluaXRfQXdzSnNvblJwY1Byb3RvY29sIiwgIkF3c0pzb25ScGNQcm90b2NvbCIsICJkZWZhdWx0TmFtZXNwYWNlIiwgInNlcnZpY2VUYXJnZXQiLCAiYXdzUXVlcnlDb21wYXRpYmxlIiwgImpzb25Db2RlYyIsICJpbXBvcnRfcHJvdG9jb2xzIiwgImltcG9ydF9zY2hlbWEiLCAiQXdzUmVzdEpzb25Qcm90b2NvbCIsICJpbml0X0F3c1Jlc3RKc29uUHJvdG9jb2wiLCAiX19lc21NaW4iLCAiaW5pdF9Qcm90b2NvbExpYiIsICJpbml0X0pzb25Db2RlYyIsICJpbml0X3BhcnNlSnNvbkJvZHkiLCAiUHJvdG9jb2xMaWIiLCAiZGVmYXVsdE5hbWVzcGFjZSIsICJzZXR0aW5ncyIsICJKc29uQ29kZWMiLCAic2VyZGVDb250ZXh0IiwgIm9wZXJhdGlvblNjaGVtYSIsICJpbnB1dCIsICJjb250ZXh0IiwgInJlcXVlc3QiLCAiaW5wdXRTY2hlbWEiLCAiY29udGVudFR5cGUiLCAicmVzcG9uc2UiLCAib3V0cHV0IiwgIm91dHB1dFNjaGVtYSIsICJuYW1lIiwgIm1lbWJlciIsICJkYXRhT2JqZWN0IiwgIm1ldGFkYXRhIiwgImVycm9ySWRlbnRpZmllciIsICJsb2FkUmVzdEpzb25FcnJvckNvZGUiLCAiZXJyb3JTY2hlbWEiLCAiZXJyb3JNZXRhZGF0YSIsICJucyIsICJtZXNzYWdlIiwgIkVycm9yQ3RvciIsICJleGNlcHRpb24iLCAidGFyZ2V0IiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgImF3c0V4cGVjdFVuaW9uIiwgImluaXRfYXdzRXhwZWN0VW5pb24iLCAiX19lc21NaW4iLCAidmFsdWUiLCAicmVxdWlyZV94bWxfcGFyc2VyIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJwYXJzZVhNTCIsICJmYXN0X3htbF9wYXJzZXJfMSIsICJwYXJzZXIiLCAiXyIsICJ2YWwiLCAieG1sU3RyaW5nIiwgInJlcXVpcmVfZGlzdF9janMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgInhtbFBhcnNlciIsICJlc2NhcGVBdHRyaWJ1dGUiLCAidmFsdWUiLCAiZXNjYXBlRWxlbWVudCIsICJYbWxUZXh0IiwgIlhtbE5vZGUiLCAiX1htbE5vZGUiLCAibmFtZSIsICJjaGlsZFRleHQiLCAid2l0aE5hbWUiLCAibm9kZSIsICJjaGlsZHJlbiIsICJjaGlsZCIsICJpbnB1dCIsICJmaWVsZCIsICJsaXN0TmFtZSIsICJtZW1iZXJOYW1lIiwgInZhbHVlUHJvdmlkZXIiLCAibm9kZXMiLCAiY29udGFpbmVyTm9kZSIsICJoYXNDaGlsZHJlbiIsICJ4bWxUZXh0IiwgImF0dHJpYnV0ZXMiLCAiYXR0cmlidXRlTmFtZSIsICJhdHRyaWJ1dGUiLCAiYyIsICJpbXBvcnRfeG1sX2J1aWxkZXIiLCAiaW1wb3J0X3Byb3RvY29scyIsICJpbXBvcnRfc2NoZW1hIiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgImltcG9ydF91dGlsX3V0ZjgiLCAiWG1sU2hhcGVEZXNlcmlhbGl6ZXIiLCAiaW5pdF9YbWxTaGFwZURlc2VyaWFsaXplciIsICJfX2VzbU1pbiIsICJpbml0X0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dCIsICJpbml0X1VuaW9uU2VyZGUiLCAiU2VyZGVDb250ZXh0Q29uZmlnIiwgInNldHRpbmdzIiwgInNlcmRlQ29udGV4dCIsICJzY2hlbWEiLCAiYnl0ZXMiLCAia2V5IiwgIm5zIiwgIm1lbWJlclNjaGVtYXMiLCAibWVtYmVyTnMiLCAib3V0cHV0IiwgIm1lbWJlck5hbWUiLCAieG1sU3RyaW5nIiwgInBhcnNlZE9iamVjdCIsICJfc2NoZW1hIiwgInZhbHVlIiwgInRyYWl0cyIsICJzcGFyc2UiLCAiZmxhdCIsICJsaXN0VmFsdWUiLCAiYnVmZmVyIiwgInNvdXJjZUtleSIsICJzb3VyY2UiLCAic291cmNlQXJyYXkiLCAidiIsICJrZXlOcyIsICJlbnRyaWVzIiwgImtleVByb3BlcnR5IiwgInZhbHVlUHJvcGVydHkiLCAiZW50cnkiLCAidW5pb24iLCAidW5pb25TZXJkZSIsICJVbmlvblNlcmRlIiwgIm1lbWJlclNjaGVtYSIsICJtZW1iZXJUcmFpdHMiLCAieG1sT2JqZWN0S2V5IiwgInhtbCIsICJwYXJzZWRPYmoiLCAiZSIsICJ0ZXh0Tm9kZU5hbWUiLCAicGFyc2VkT2JqVG9SZXR1cm4iLCAiaW1wb3J0X3Byb3RvY29scyIsICJpbXBvcnRfc2NoZW1hIiwgImltcG9ydF9zZXJkZSIsICJpbXBvcnRfc21pdGh5X2NsaWVudCIsICJpbXBvcnRfdXRpbF9iYXNlNjQiLCAiUXVlcnlTaGFwZVNlcmlhbGl6ZXIiLCAiaW5pdF9RdWVyeVNoYXBlU2VyaWFsaXplciIsICJfX2VzbU1pbiIsICJpbml0X0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dCIsICJTZXJkZUNvbnRleHRDb25maWciLCAic2V0dGluZ3MiLCAic2NoZW1hIiwgInZhbHVlIiwgInByZWZpeCIsICJucyIsICJtZW1iZXIiLCAiZmxhdCIsICJpIiwgIml0ZW0iLCAidHJhaXRzIiwgInN1ZmZpeCIsICJrZXkiLCAia2V5U2NoZW1hIiwgIm1lbWJlclNjaGVtYSIsICJrIiwgInYiLCAia2V5VHJhaXRzIiwgImtleVN1ZmZpeCIsICJ2YWxUcmFpdHMiLCAidmFsdWVTdWZmaXgiLCAidmFsdWVLZXkiLCAiZGlkV3JpdGVNZW1iZXIiLCAibWVtYmVyTmFtZSIsICIkdW5rbm93biIsICJzdHIiLCAieG1sTmFtZSIsICJlYzJRdWVyeU5hbWUiLCAia2V5U291cmNlIiwgImVjMiIsICJjYXBpdGFsaXplS2V5cyIsICJpbXBvcnRfcHJvdG9jb2xzIiwgImltcG9ydF9zY2hlbWEiLCAiQXdzUXVlcnlQcm90b2NvbCIsICJpbml0X0F3c1F1ZXJ5UHJvdG9jb2wiLCAiX19lc21NaW4iLCAiaW5pdF9Qcm90b2NvbExpYiIsICJpbml0X1htbFNoYXBlRGVzZXJpYWxpemVyIiwgImluaXRfUXVlcnlTaGFwZVNlcmlhbGl6ZXIiLCAiUHJvdG9jb2xMaWIiLCAib3B0aW9ucyIsICJzZXR0aW5ncyIsICJRdWVyeVNoYXBlU2VyaWFsaXplciIsICJYbWxTaGFwZURlc2VyaWFsaXplciIsICJzZXJkZUNvbnRleHQiLCAib3BlcmF0aW9uU2NoZW1hIiwgImlucHV0IiwgImNvbnRleHQiLCAicmVxdWVzdCIsICJhY3Rpb24iLCAicmVzcG9uc2UiLCAiZGVzZXJpYWxpemVyIiwgIm5zIiwgImRhdGFPYmplY3QiLCAiYnl0ZXMiLCAiaGVhZGVyIiwgInZhbHVlIiwgInNob3J0TmFtZSIsICJhd3NRdWVyeVJlc3VsdEtleSIsICJtZXRhZGF0YSIsICJlcnJvcklkZW50aWZpZXIiLCAiZXJyb3JEYXRhIiwgIm1lc3NhZ2UiLCAiZXJyb3JTY2hlbWEiLCAiZXJyb3JNZXRhZGF0YSIsICJFcnJvckN0b3IiLCAiZXhjZXB0aW9uIiwgIm91dHB1dCIsICJuYW1lIiwgIm1lbWJlciIsICJ0YXJnZXQiLCAiZGF0YSIsICJjb2RlIiwgIkF3c0VjMlF1ZXJ5UHJvdG9jb2wiLCAiaW5pdF9Bd3NFYzJRdWVyeVByb3RvY29sIiwgIl9fZXNtTWluIiwgImluaXRfQXdzUXVlcnlQcm90b2NvbCIsICJBd3NRdWVyeVByb3RvY29sIiwgIm9wdGlvbnMiLCAiZWMyU2V0dGluZ3MiLCAiaW1wb3J0X3htbF9idWlsZGVyIiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgInBhcnNlWG1sQm9keSIsICJwYXJzZVhtbEVycm9yQm9keSIsICJsb2FkUmVzdFhtbEVycm9yQ29kZSIsICJpbml0X3BhcnNlWG1sQm9keSIsICJfX2VzbU1pbiIsICJpbml0X2NvbW1vbiIsICJzdHJlYW1Cb2R5IiwgImNvbnRleHQiLCAiY29sbGVjdEJvZHlTdHJpbmciLCAiZW5jb2RlZCIsICJwYXJzZWRPYmoiLCAiZSIsICJ0ZXh0Tm9kZU5hbWUiLCAia2V5IiwgInBhcnNlZE9ialRvUmV0dXJuIiwgImVycm9yQm9keSIsICJ2YWx1ZSIsICJvdXRwdXQiLCAiZGF0YSIsICJpbXBvcnRfeG1sX2J1aWxkZXIiLCAiaW1wb3J0X3Byb3RvY29scyIsICJpbXBvcnRfc2NoZW1hIiwgImltcG9ydF9zZXJkZSIsICJpbXBvcnRfc21pdGh5X2NsaWVudCIsICJpbXBvcnRfdXRpbF9iYXNlNjQiLCAiWG1sU2hhcGVTZXJpYWxpemVyIiwgImluaXRfWG1sU2hhcGVTZXJpYWxpemVyIiwgIl9fZXNtTWluIiwgImluaXRfQ29uZmlndXJhYmxlU2VyZGVDb250ZXh0IiwgIlNlcmRlQ29udGV4dENvbmZpZyIsICJzZXR0aW5ncyIsICJzY2hlbWEiLCAidmFsdWUiLCAibnMiLCAidHJhaXRzIiwgImJ5dGVzIiwgInN0ciIsICJidWZmZXIiLCAicGFyZW50WG1sbnMiLCAibmFtZSIsICJzdHJ1Y3RYbWxOb2RlIiwgInhtbG5zQXR0ciIsICJ4bWxucyIsICJtZW1iZXJOYW1lIiwgIm1lbWJlclNjaGVtYSIsICJ2YWwiLCAibWVtYmVyTm9kZSIsICIkdW5rbm93biIsICJrIiwgInYiLCAibm9kZSIsICJsaXN0TWVtYmVyIiwgImFycmF5IiwgImNvbnRhaW5lciIsICJsaXN0VHJhaXRzIiwgImxpc3RWYWx1ZVNjaGVtYSIsICJsaXN0VmFsdWVUcmFpdHMiLCAic3BhcnNlIiwgImZsYXQiLCAid3JpdGVJdGVtIiwgInN0cnVjdCIsICJsaXN0SXRlbU5vZGUiLCAibGlzdE5vZGUiLCAibWFwTWVtYmVyIiwgIm1hcCIsICJjb250YWluZXJJc01hcCIsICJtYXBUcmFpdHMiLCAibWFwS2V5U2NoZW1hIiwgImtleVRhZyIsICJtYXBWYWx1ZVNjaGVtYSIsICJtYXBWYWx1ZVRyYWl0cyIsICJ2YWx1ZVRhZyIsICJhZGRLZXlWYWx1ZSIsICJlbnRyeSIsICJrZXkiLCAia2V5Tm9kZSIsICJrZXlYbWxuc0F0dHIiLCAia2V5WG1sbnMiLCAidmFsdWVOb2RlIiwgIm1hcE5vZGUiLCAiX3NjaGVtYSIsICJub2RlQ29udGVudHMiLCAiaW50byIsICJjb250ZW50IiwgInByZWZpeCIsICJYbWxDb2RlYyIsICJpbml0X1htbENvZGVjIiwgIl9fZXNtTWluIiwgImluaXRfQ29uZmlndXJhYmxlU2VyZGVDb250ZXh0IiwgImluaXRfWG1sU2hhcGVEZXNlcmlhbGl6ZXIiLCAiaW5pdF9YbWxTaGFwZVNlcmlhbGl6ZXIiLCAiU2VyZGVDb250ZXh0Q29uZmlnIiwgInNldHRpbmdzIiwgInNlcmlhbGl6ZXIiLCAiWG1sU2hhcGVTZXJpYWxpemVyIiwgImRlc2VyaWFsaXplciIsICJYbWxTaGFwZURlc2VyaWFsaXplciIsICJpbXBvcnRfcHJvdG9jb2xzIiwgImltcG9ydF9zY2hlbWEiLCAiQXdzUmVzdFhtbFByb3RvY29sIiwgImluaXRfQXdzUmVzdFhtbFByb3RvY29sIiwgIl9fZXNtTWluIiwgImluaXRfUHJvdG9jb2xMaWIiLCAiaW5pdF9wYXJzZVhtbEJvZHkiLCAiaW5pdF9YbWxDb2RlYyIsICJQcm90b2NvbExpYiIsICJvcHRpb25zIiwgInNldHRpbmdzIiwgIlhtbENvZGVjIiwgIm9wZXJhdGlvblNjaGVtYSIsICJpbnB1dCIsICJjb250ZXh0IiwgInJlcXVlc3QiLCAiaW5wdXRTY2hlbWEiLCAiY29udGVudFR5cGUiLCAicmVzcG9uc2UiLCAiZGF0YU9iamVjdCIsICJtZXRhZGF0YSIsICJlcnJvcklkZW50aWZpZXIiLCAibG9hZFJlc3RYbWxFcnJvckNvZGUiLCAia2V5IiwgImVycm9yU2NoZW1hIiwgImVycm9yTWV0YWRhdGEiLCAibnMiLCAibWVzc2FnZSIsICJFcnJvckN0b3IiLCAiZXhjZXB0aW9uIiwgIm91dHB1dCIsICJuYW1lIiwgIm1lbWJlciIsICJ0YXJnZXQiLCAidmFsdWUiLCAiaW5pdF9wcm90b2NvbHMiLCAiX19lc21NaW4iLCAiaW5pdF9Bd3NTbWl0aHlScGNWMkNib3JQcm90b2NvbCIsICJpbml0X2NvZXJjaW5nX3NlcmlhbGl6ZXJzIiwgImluaXRfQXdzSnNvbjFfMFByb3RvY29sIiwgImluaXRfQXdzSnNvbjFfMVByb3RvY29sIiwgImluaXRfQXdzSnNvblJwY1Byb3RvY29sIiwgImluaXRfQXdzUmVzdEpzb25Qcm90b2NvbCIsICJpbml0X0pzb25Db2RlYyIsICJpbml0X0pzb25TaGFwZURlc2VyaWFsaXplciIsICJpbml0X0pzb25TaGFwZVNlcmlhbGl6ZXIiLCAiaW5pdF9hd3NFeHBlY3RVbmlvbiIsICJpbml0X3BhcnNlSnNvbkJvZHkiLCAiaW5pdF9Bd3NFYzJRdWVyeVByb3RvY29sIiwgImluaXRfQXdzUXVlcnlQcm90b2NvbCIsICJpbml0X0F3c1Jlc3RYbWxQcm90b2NvbCIsICJpbml0X1htbENvZGVjIiwgImluaXRfWG1sU2hhcGVEZXNlcmlhbGl6ZXIiLCAiaW5pdF9YbWxTaGFwZVNlcmlhbGl6ZXIiLCAiaW5pdF9wYXJzZVhtbEJvZHkiLCAiZGlzdF9lc19leHBvcnRzIiwgIl9fZXhwb3J0IiwgIkFXU1NES1NpZ1Y0U2lnbmVyIiwgIkF3c0VjMlF1ZXJ5UHJvdG9jb2wiLCAiQXdzSnNvbjFfMFByb3RvY29sIiwgIkF3c0pzb24xXzFQcm90b2NvbCIsICJBd3NKc29uUnBjUHJvdG9jb2wiLCAiQXdzUXVlcnlQcm90b2NvbCIsICJBd3NSZXN0SnNvblByb3RvY29sIiwgIkF3c1Jlc3RYbWxQcm90b2NvbCIsICJBd3NTZGtTaWdWNEFTaWduZXIiLCAiQXdzU2RrU2lnVjRTaWduZXIiLCAiQXdzU21pdGh5UnBjVjJDYm9yUHJvdG9jb2wiLCAiSnNvbkNvZGVjIiwgIkpzb25TaGFwZURlc2VyaWFsaXplciIsICJKc29uU2hhcGVTZXJpYWxpemVyIiwgIk5PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9PUFRJT05TIiwgIk5PREVfU0lHVjRBX0NPTkZJR19PUFRJT05TIiwgIlhtbENvZGVjIiwgIlhtbFNoYXBlRGVzZXJpYWxpemVyIiwgIlhtbFNoYXBlU2VyaWFsaXplciIsICJfdG9Cb29sIiwgIl90b051bSIsICJfdG9TdHIiLCAiYXdzRXhwZWN0VW5pb24iLCAiZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbiIsICJnZXRCZWFyZXJUb2tlbkVudktleSIsICJsb2FkUmVzdEpzb25FcnJvckNvZGUiLCAibG9hZFJlc3RYbWxFcnJvckNvZGUiLCAicGFyc2VKc29uQm9keSIsICJwYXJzZUpzb25FcnJvckJvZHkiLCAicGFyc2VYbWxCb2R5IiwgInBhcnNlWG1sRXJyb3JCb2R5IiwgInJlc29sdmVBV1NTREtTaWdWNENvbmZpZyIsICJyZXNvbHZlQXdzU2RrU2lnVjRBQ29uZmlnIiwgInJlc29sdmVBd3NTZGtTaWdWNENvbmZpZyIsICJzZXRDcmVkZW50aWFsRmVhdHVyZSIsICJzZXRGZWF0dXJlIiwgInNldFRva2VuRmVhdHVyZSIsICJzdGF0ZSIsICJ2YWxpZGF0ZVNpZ25pbmdQcm9wZXJ0aWVzIiwgImluaXRfZGlzdF9lcyIsICJfX2VzbU1pbiIsICJpbml0X2NsaWVudCIsICJpbml0X2h0dHBBdXRoU2NoZW1lcyIsICJpbml0X3Byb3RvY29scyIsICJyZXF1aXJlX2Rpc3RfY2pzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJOdW1iZXJWYWx1ZSIsICJfTnVtYmVyVmFsdWUiLCAidmFsdWUiLCAidmFsdWVPZiIsICJzdHJpbmdWYWx1ZSIsICJjb252ZXJ0VG9BdHRyIiwgImRhdGEiLCAib3B0aW9ucyIsICJjb252ZXJ0VG9OdWxsQXR0ciIsICJjb252ZXJ0VG9MaXN0QXR0ciIsICJjb252ZXJ0VG9TZXRBdHRyIiwgImNvbnZlcnRUb01hcEF0dHJGcm9tSXRlcmFibGUiLCAiY29udmVydFRvTWFwQXR0ckZyb21FbnVtZXJhYmxlUHJvcHMiLCAiaXNCaW5hcnkiLCAiY29udmVydFRvQmluYXJ5QXR0ciIsICJjb252ZXJ0VG9OdW1iZXJBdHRyIiwgImNvbnZlcnRUb0JpZ0ludEF0dHIiLCAiY29udmVydFRvU3RyaW5nQXR0ciIsICJpdGVtIiwgInNldCIsICJzZXRUb09wZXJhdGUiLCAiXyIsICJudW0iLCAibWFwIiwgImtleSIsICJ2YWxpZGF0ZUJpZ0ludEFuZFRocm93IiwgImVycm9yUHJlZml4IiwgInZhbCIsICJiaW5hcnlUeXBlcyIsICJjb252ZXJ0VG9OYXRpdmUiLCAiY29udmVydE51bWJlciIsICJjb252ZXJ0QmluYXJ5IiwgImNvbnZlcnRTdHJpbmciLCAiY29udmVydExpc3QiLCAiY29udmVydE1hcCIsICJudW1TdHJpbmciLCAiaW5maW5pdHlWYWx1ZXMiLCAiYmluYXJ5VmFsdWUiLCAibGlzdCIsICJhY2MiLCAibWFyc2hhbGwiLCAiYXR0cmlidXRlVmFsdWUiLCAidW5tYXJzaGFsbCIsICJyZXF1aXJlX2Rpc3RfY2pzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJzbWl0aHlDbGllbnQiLCAiY29yZSIsICJ1dGlsRHluYW1vZGIiLCAiY2xpZW50RHluYW1vZGIiLCAiY29yZSQxIiwgIlNFTEYiLCAiQUxMX1ZBTFVFUyIsICJBTExfTUVNQkVSUyIsICJORVhUX0xFVkVMIiwgInByb2Nlc3NPYmoiLCAib2JqIiwgInByb2Nlc3NGdW5jIiwgImtleU5vZGVzIiwgImtleXMiLCAiZ29Ub05leHRMZXZlbCIsICJzb21lQ2hpbGRyZW4iLCAiYWxsQ2hpbGRyZW4iLCAicHJvY2Vzc0tleXNJbk9iaiIsICJwcm9jZXNzQWxsS2V5c0luT2JqIiwgImFjYyIsICJrIiwgInYiLCAiYWNjdW11bGF0b3IiLCAiaXRlbSIsICJub2RlS2V5IiwgIm5vZGVzIiwgInByb2Nlc3NlZFZhbHVlIiwgImtleSIsICJ2YWx1ZSIsICJtYXJzaGFsbElucHV0IiwgIm9wdGlvbnMiLCAidG9NYXJzaGFsbCIsICJ1bm1hcnNoYWxsT3V0cHV0IiwgIkR5bmFtb0RCRG9jdW1lbnRDbGllbnRDb21tYW5kIiwgImNvbmZpZ3VyYXRpb24iLCAibWFyc2hhbGxPcHRpb25zIiwgInVubWFyc2hhbGxPcHRpb25zIiwgIm5leHQiLCAiY29udGV4dCIsICJhcmdzIiwgImRlc2VyaWFsaXplZCIsICJCYXRjaEV4ZWN1dGVTdGF0ZW1lbnRDb21tYW5kIiwgImlucHV0IiwgImNsaWVudFN0YWNrIiwgInN0YWNrIiwgImhhbmRsZXIiLCAiQmF0Y2hHZXRDb21tYW5kIiwgIkJhdGNoV3JpdGVDb21tYW5kIiwgIkRlbGV0ZUNvbW1hbmQiLCAiRXhlY3V0ZVN0YXRlbWVudENvbW1hbmQiLCAiRXhlY3V0ZVRyYW5zYWN0aW9uQ29tbWFuZCIsICJHZXRDb21tYW5kIiwgIlB1dENvbW1hbmQiLCAiUXVlcnlDb21tYW5kIiwgIlNjYW5Db21tYW5kIiwgIlRyYW5zYWN0R2V0Q29tbWFuZCIsICJUcmFuc2FjdFdyaXRlQ29tbWFuZCIsICJVcGRhdGVDb21tYW5kIiwgIkR5bmFtb0RCRG9jdW1lbnRDbGllbnQiLCAiX0R5bmFtb0RCRG9jdW1lbnRDbGllbnQiLCAiY2xpZW50IiwgInRyYW5zbGF0ZUNvbmZpZyIsICJwYWdpbmF0ZVF1ZXJ5IiwgInBhZ2luYXRlU2NhbiIsICJEeW5hbW9EQkRvY3VtZW50IiwgIl9EeW5hbW9EQkRvY3VtZW50IiwgIm9wdGlvbnNPckNiIiwgImNiIiwgImNvbW1hbmQiLCAicmVxdWlyZV9kaXN0X2NqcyIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAicHJvdG9jb2xIdHRwIiwgInJlc29sdmVIb3N0SGVhZGVyQ29uZmlnIiwgImlucHV0IiwgImhvc3RIZWFkZXJNaWRkbGV3YXJlIiwgIm9wdGlvbnMiLCAibmV4dCIsICJhcmdzIiwgInJlcXVlc3QiLCAiaGFuZGxlclByb3RvY29sIiwgImhvc3QiLCAiaG9zdEhlYWRlck1pZGRsZXdhcmVPcHRpb25zIiwgImdldEhvc3RIZWFkZXJQbHVnaW4iLCAiY2xpZW50U3RhY2siLCAicmVxdWlyZV9kaXN0X2NqcyIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAibG9nZ2VyTWlkZGxld2FyZSIsICJuZXh0IiwgImNvbnRleHQiLCAiYXJncyIsICJyZXNwb25zZSIsICJjbGllbnROYW1lIiwgImNvbW1hbmROYW1lIiwgImxvZ2dlciIsICJkeW5hbW9EYkRvY3VtZW50Q2xpZW50T3B0aW9ucyIsICJvdmVycmlkZUlucHV0RmlsdGVyU2Vuc2l0aXZlTG9nIiwgIm92ZXJyaWRlT3V0cHV0RmlsdGVyU2Vuc2l0aXZlTG9nIiwgImlucHV0RmlsdGVyU2Vuc2l0aXZlTG9nIiwgIm91dHB1dEZpbHRlclNlbnNpdGl2ZUxvZyIsICIkbWV0YWRhdGEiLCAib3V0cHV0V2l0aG91dE1ldGFkYXRhIiwgImVycm9yIiwgImxvZ2dlck1pZGRsZXdhcmVPcHRpb25zIiwgImdldExvZ2dlclBsdWdpbiIsICJvcHRpb25zIiwgImNsaWVudFN0YWNrIiwgInJlcXVpcmVfcmVjdXJzaW9uRGV0ZWN0aW9uTWlkZGxld2FyZSIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAibGFtYmRhX2ludm9rZV9zdG9yZV8xIiwgInByb3RvY29sX2h0dHBfMSIsICJUUkFDRV9JRF9IRUFERVJfTkFNRSIsICJFTlZfTEFNQkRBX0ZVTkNUSU9OX05BTUUiLCAiRU5WX1RSQUNFX0lEIiwgInJlY3Vyc2lvbkRldGVjdGlvbk1pZGRsZXdhcmUiLCAibmV4dCIsICJhcmdzIiwgInJlcXVlc3QiLCAidHJhY2VJZEhlYWRlciIsICJoIiwgImZ1bmN0aW9uTmFtZSIsICJ0cmFjZUlkRnJvbUVudiIsICJ0cmFjZUlkIiwgIm5vbkVtcHR5U3RyaW5nIiwgInN0ciIsICJyZXF1aXJlX2Rpc3RfY2pzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJyZWN1cnNpb25EZXRlY3Rpb25NaWRkbGV3YXJlIiwgInJlY3Vyc2lvbkRldGVjdGlvbk1pZGRsZXdhcmVPcHRpb25zIiwgImdldFJlY3Vyc2lvbkRldGVjdGlvblBsdWdpbiIsICJvcHRpb25zIiwgImNsaWVudFN0YWNrIiwgImsiLCAicmVxdWlyZV9kaXN0X2NqcyIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAidXRpbEVuZHBvaW50cyIsICJ1cmxQYXJzZXIiLCAiaXNWaXJ0dWFsSG9zdGFibGVTM0J1Y2tldCIsICJ2YWx1ZSIsICJhbGxvd1N1YkRvbWFpbnMiLCAibGFiZWwiLCAiQVJOX0RFTElNSVRFUiIsICJSRVNPVVJDRV9ERUxJTUlURVIiLCAicGFyc2VBcm4iLCAic2VnbWVudHMiLCAiYXJuIiwgInBhcnRpdGlvbiIsICJzZXJ2aWNlIiwgInJlZ2lvbiIsICJhY2NvdW50SWQiLCAicmVzb3VyY2VQYXRoIiwgInJlc291cmNlSWQiLCAicmVzb3VyY2UiLCAicGFydGl0aW9ucyIsICJ2ZXJzaW9uIiwgInBhcnRpdGlvbnNJbmZvIiwgInNlbGVjdGVkUGFydGl0aW9uc0luZm8iLCAic2VsZWN0ZWRVc2VyQWdlbnRQcmVmaXgiLCAicmVnaW9ucyIsICJvdXRwdXRzIiwgInJlZ2lvbkRhdGEiLCAicmVnaW9uUmVnZXgiLCAiREVGQVVMVF9QQVJUSVRJT04iLCAic2V0UGFydGl0aW9uSW5mbyIsICJ1c2VyQWdlbnRQcmVmaXgiLCAidXNlRGVmYXVsdFBhcnRpdGlvbkluZm8iLCAiZ2V0VXNlckFnZW50UHJlZml4IiwgImF3c0VuZHBvaW50RnVuY3Rpb25zIiwgInJlc29sdmVEZWZhdWx0QXdzUmVnaW9uYWxFbmRwb2ludHNDb25maWciLCAiaW5wdXQiLCAiZW5kcG9pbnQiLCAidG9FbmRwb2ludFYxIiwgInN0YXRlIiwgImVtaXRXYXJuaW5nSWZVbnN1cHBvcnRlZFZlcnNpb24iLCAiaW5pdF9lbWl0V2FybmluZ0lmVW5zdXBwb3J0ZWRWZXJzaW9uIiwgIl9fZXNtTWluIiwgInZlcnNpb24iLCAic2V0Q3JlZGVudGlhbEZlYXR1cmUiLCAiY3JlZGVudGlhbHMiLCAiZmVhdHVyZSIsICJ2YWx1ZSIsICJpbml0X3NldENyZWRlbnRpYWxGZWF0dXJlIiwgIl9fZXNtTWluIiwgInNldEZlYXR1cmUiLCAiY29udGV4dCIsICJmZWF0dXJlIiwgInZhbHVlIiwgImluaXRfc2V0RmVhdHVyZSIsICJfX2VzbU1pbiIsICJzZXRUb2tlbkZlYXR1cmUiLCAidG9rZW4iLCAiZmVhdHVyZSIsICJ2YWx1ZSIsICJpbml0X3NldFRva2VuRmVhdHVyZSIsICJfX2VzbU1pbiIsICJjbGllbnRfZXhwb3J0cyIsICJfX2V4cG9ydCIsICJlbWl0V2FybmluZ0lmVW5zdXBwb3J0ZWRWZXJzaW9uIiwgInNldENyZWRlbnRpYWxGZWF0dXJlIiwgInNldEZlYXR1cmUiLCAic2V0VG9rZW5GZWF0dXJlIiwgInN0YXRlIiwgImluaXRfY2xpZW50IiwgIl9fZXNtTWluIiwgImluaXRfZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbiIsICJpbml0X3NldENyZWRlbnRpYWxGZWF0dXJlIiwgImluaXRfc2V0RmVhdHVyZSIsICJpbml0X3NldFRva2VuRmVhdHVyZSIsICJpbXBvcnRfcHJvdG9jb2xfaHR0cCIsICJnZXREYXRlSGVhZGVyIiwgImluaXRfZ2V0RGF0ZUhlYWRlciIsICJfX2VzbU1pbiIsICJyZXNwb25zZSIsICJnZXRTa2V3Q29ycmVjdGVkRGF0ZSIsICJpbml0X2dldFNrZXdDb3JyZWN0ZWREYXRlIiwgIl9fZXNtTWluIiwgInN5c3RlbUNsb2NrT2Zmc2V0IiwgImlzQ2xvY2tTa2V3ZWQiLCAiaW5pdF9pc0Nsb2NrU2tld2VkIiwgIl9fZXNtTWluIiwgImluaXRfZ2V0U2tld0NvcnJlY3RlZERhdGUiLCAiY2xvY2tUaW1lIiwgInN5c3RlbUNsb2NrT2Zmc2V0IiwgImdldFNrZXdDb3JyZWN0ZWREYXRlIiwgImdldFVwZGF0ZWRTeXN0ZW1DbG9ja09mZnNldCIsICJpbml0X2dldFVwZGF0ZWRTeXN0ZW1DbG9ja09mZnNldCIsICJfX2VzbU1pbiIsICJpbml0X2lzQ2xvY2tTa2V3ZWQiLCAiY2xvY2tUaW1lIiwgImN1cnJlbnRTeXN0ZW1DbG9ja09mZnNldCIsICJjbG9ja1RpbWVJbk1zIiwgImlzQ2xvY2tTa2V3ZWQiLCAiaW5pdF91dGlscyIsICJfX2VzbU1pbiIsICJpbml0X2dldERhdGVIZWFkZXIiLCAiaW5pdF9nZXRTa2V3Q29ycmVjdGVkRGF0ZSIsICJpbml0X2dldFVwZGF0ZWRTeXN0ZW1DbG9ja09mZnNldCIsICJpbXBvcnRfcHJvdG9jb2xfaHR0cCIsICJ0aHJvd1NpZ25pbmdQcm9wZXJ0eUVycm9yIiwgInZhbGlkYXRlU2lnbmluZ1Byb3BlcnRpZXMiLCAiQXdzU2RrU2lnVjRTaWduZXIiLCAiQVdTU0RLU2lnVjRTaWduZXIiLCAiaW5pdF9Bd3NTZGtTaWdWNFNpZ25lciIsICJfX2VzbU1pbiIsICJpbml0X3V0aWxzIiwgIm5hbWUiLCAicHJvcGVydHkiLCAic2lnbmluZ1Byb3BlcnRpZXMiLCAiY29udGV4dCIsICJjb25maWciLCAiYXV0aFNjaGVtZSIsICJzaWduZXIiLCAic2lnbmluZ1JlZ2lvbiIsICJzaWduaW5nUmVnaW9uU2V0IiwgInNpZ25pbmdOYW1lIiwgImh0dHBSZXF1ZXN0IiwgImlkZW50aXR5IiwgInZhbGlkYXRlZFByb3BzIiwgImhhbmRsZXJFeGVjdXRpb25Db250ZXh0IiwgImZpcnN0IiwgInNlY29uZCIsICJnZXRTa2V3Q29ycmVjdGVkRGF0ZSIsICJlcnJvciIsICJzZXJ2ZXJUaW1lIiwgImdldERhdGVIZWFkZXIiLCAiaW5pdGlhbFN5c3RlbUNsb2NrT2Zmc2V0IiwgImdldFVwZGF0ZWRTeXN0ZW1DbG9ja09mZnNldCIsICJodHRwUmVzcG9uc2UiLCAiZGF0ZUhlYWRlciIsICJpbXBvcnRfcHJvdG9jb2xfaHR0cCIsICJBd3NTZGtTaWdWNEFTaWduZXIiLCAiaW5pdF9Bd3NTZGtTaWdWNEFTaWduZXIiLCAiX19lc21NaW4iLCAiaW5pdF91dGlscyIsICJpbml0X0F3c1Nka1NpZ1Y0U2lnbmVyIiwgIkF3c1Nka1NpZ1Y0U2lnbmVyIiwgImh0dHBSZXF1ZXN0IiwgImlkZW50aXR5IiwgInNpZ25pbmdQcm9wZXJ0aWVzIiwgImNvbmZpZyIsICJzaWduZXIiLCAic2lnbmluZ1JlZ2lvbiIsICJzaWduaW5nUmVnaW9uU2V0IiwgInNpZ25pbmdOYW1lIiwgInZhbGlkYXRlU2lnbmluZ1Byb3BlcnRpZXMiLCAibXVsdGlSZWdpb25PdmVycmlkZSIsICJnZXRTa2V3Q29ycmVjdGVkRGF0ZSIsICJnZXRBcnJheUZvckNvbW1hU2VwYXJhdGVkU3RyaW5nIiwgImluaXRfZ2V0QXJyYXlGb3JDb21tYVNlcGFyYXRlZFN0cmluZyIsICJfX2VzbU1pbiIsICJzdHIiLCAiaXRlbSIsICJnZXRCZWFyZXJUb2tlbkVudktleSIsICJpbml0X2dldEJlYXJlclRva2VuRW52S2V5IiwgIl9fZXNtTWluIiwgInNpZ25pbmdOYW1lIiwgIk5PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9FTlZfS0VZIiwgIk5PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9DT05GSUdfS0VZIiwgIk5PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9PUFRJT05TIiwgImluaXRfTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX09QVElPTlMiLCAiX19lc21NaW4iLCAiaW5pdF9nZXRBcnJheUZvckNvbW1hU2VwYXJhdGVkU3RyaW5nIiwgImluaXRfZ2V0QmVhcmVyVG9rZW5FbnZLZXkiLCAiZW52IiwgIm9wdGlvbnMiLCAiZ2V0QmVhcmVyVG9rZW5FbnZLZXkiLCAiZ2V0QXJyYXlGb3JDb21tYVNlcGFyYXRlZFN0cmluZyIsICJwcm9maWxlIiwgImltcG9ydF9jb3JlIiwgImltcG9ydF9wcm9wZXJ0eV9wcm92aWRlciIsICJyZXNvbHZlQXdzU2RrU2lnVjRBQ29uZmlnIiwgIk5PREVfU0lHVjRBX0NPTkZJR19PUFRJT05TIiwgImluaXRfcmVzb2x2ZUF3c1Nka1NpZ1Y0QUNvbmZpZyIsICJfX2VzbU1pbiIsICJjb25maWciLCAiZW52IiwgIl8iLCAicHJvZmlsZSIsICJub3JtYWxpemVDcmVkZW50aWFsUHJvdmlkZXIiLCAiY29uZmlnIiwgImNyZWRlbnRpYWxzIiwgImNyZWRlbnRpYWxEZWZhdWx0UHJvdmlkZXIiLCAiY3JlZGVudGlhbHNQcm92aWRlciIsICJiaW5kQ2FsbGVyQ29uZmlnIiwgImZuIiwgIm9wdGlvbnMiLCAiaW1wb3J0X2NvcmUiLCAiaW1wb3J0X3NpZ25hdHVyZV92NCIsICJyZXNvbHZlQXdzU2RrU2lnVjRDb25maWciLCAicmVzb2x2ZUFXU1NES1NpZ1Y0Q29uZmlnIiwgImluaXRfcmVzb2x2ZUF3c1Nka1NpZ1Y0Q29uZmlnIiwgIl9fZXNtTWluIiwgImluaXRfY2xpZW50IiwgImlucHV0Q3JlZGVudGlhbHMiLCAiaXNVc2VyU3VwcGxpZWQiLCAicmVzb2x2ZWRDcmVkZW50aWFscyIsICJtZW1vaXplZFByb3ZpZGVyIiwgImJvdW5kUHJvdmlkZXIiLCAiY3JlZHMiLCAic2V0Q3JlZGVudGlhbEZlYXR1cmUiLCAic2lnbmluZ0VzY2FwZVBhdGgiLCAic3lzdGVtQ2xvY2tPZmZzZXQiLCAic2hhMjU2IiwgInNpZ25lciIsICJyZWdpb24iLCAicmVnaW9uSW5mbyIsICJzaWduaW5nUmVnaW9uIiwgInNpZ25pbmdTZXJ2aWNlIiwgInBhcmFtcyIsICJTaWduZXJDdG9yIiwgImF1dGhTY2hlbWUiLCAiaW5pdF9hd3Nfc2RrIiwgIl9fZXNtTWluIiwgImluaXRfQXdzU2RrU2lnVjRTaWduZXIiLCAiaW5pdF9Bd3NTZGtTaWdWNEFTaWduZXIiLCAiaW5pdF9OT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfT1BUSU9OUyIsICJpbml0X3Jlc29sdmVBd3NTZGtTaWdWNEFDb25maWciLCAiaW5pdF9yZXNvbHZlQXdzU2RrU2lnVjRDb25maWciLCAiaHR0cEF1dGhTY2hlbWVzX2V4cG9ydHMiLCAiX19leHBvcnQiLCAiQVdTU0RLU2lnVjRTaWduZXIiLCAiQXdzU2RrU2lnVjRBU2lnbmVyIiwgIkF3c1Nka1NpZ1Y0U2lnbmVyIiwgIk5PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9PUFRJT05TIiwgIk5PREVfU0lHVjRBX0NPTkZJR19PUFRJT05TIiwgImdldEJlYXJlclRva2VuRW52S2V5IiwgInJlc29sdmVBV1NTREtTaWdWNENvbmZpZyIsICJyZXNvbHZlQXdzU2RrU2lnVjRBQ29uZmlnIiwgInJlc29sdmVBd3NTZGtTaWdWNENvbmZpZyIsICJ2YWxpZGF0ZVNpZ25pbmdQcm9wZXJ0aWVzIiwgImluaXRfaHR0cEF1dGhTY2hlbWVzIiwgIl9fZXNtTWluIiwgImluaXRfYXdzX3NkayIsICJpbml0X2dldEJlYXJlclRva2VuRW52S2V5IiwgImltcG9ydF9zY2hlbWEiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAiUHJvdG9jb2xMaWIiLCAiaW5pdF9Qcm90b2NvbExpYiIsICJfX2VzbU1pbiIsICJxdWVyeUNvbXBhdCIsICJkZWZhdWx0Q29udGVudFR5cGUiLCAiaW5wdXRTY2hlbWEiLCAibWVtYmVycyIsICJodHRwUGF5bG9hZE1lbWJlciIsICJtIiwgIm1lZGlhVHlwZSIsICJodHRwUXVlcnkiLCAiaHR0cFF1ZXJ5UGFyYW1zIiwgImh0dHBIZWFkZXIiLCAiaHR0cExhYmVsIiwgImh0dHBQcmVmaXhIZWFkZXJzIiwgImVycm9ySWRlbnRpZmllciIsICJkZWZhdWx0TmFtZXNwYWNlIiwgInJlc3BvbnNlIiwgImRhdGFPYmplY3QiLCAibWV0YWRhdGEiLCAiZ2V0RXJyb3JTY2hlbWEiLCAibmFtZXNwYWNlIiwgImVycm9yTmFtZSIsICJlcnJvck1ldGFkYXRhIiwgInJlZ2lzdHJ5IiwgInN5bnRoZXRpYyIsICJiYXNlRXhjZXB0aW9uU2NoZW1hIiwgIkVycm9yQ3RvciIsICJleGNlcHRpb24iLCAiYWRkaXRpb25zIiwgIm1zZyIsICJlcnJvciIsICJyZXFJZCIsICJvdXRwdXQiLCAicXVlcnlFcnJvckhlYWRlciIsICJDb2RlIiwgIlR5cGUiLCAiZW50cmllcyIsICJFcnJvciIsICJrIiwgInYiLCAicXVlcnlDb21wYXRFcnJvckRhdGEiLCAiZXJyb3JEYXRhIiwgInNjaGVtYSIsICJpbXBvcnRfY2JvciIsICJpbXBvcnRfc2NoZW1hIiwgIkF3c1NtaXRoeVJwY1YyQ2JvclByb3RvY29sIiwgImluaXRfQXdzU21pdGh5UnBjVjJDYm9yUHJvdG9jb2wiLCAiX19lc21NaW4iLCAiaW5pdF9Qcm90b2NvbExpYiIsICJkZWZhdWx0TmFtZXNwYWNlIiwgImF3c1F1ZXJ5Q29tcGF0aWJsZSIsICJQcm90b2NvbExpYiIsICJvcGVyYXRpb25TY2hlbWEiLCAiaW5wdXQiLCAiY29udGV4dCIsICJyZXF1ZXN0IiwgInJlc3BvbnNlIiwgImRhdGFPYmplY3QiLCAibWV0YWRhdGEiLCAiZXJyb3JOYW1lIiwgImNvbXBhdEhlYWRlciIsICJlcnJvclNjaGVtYSIsICJlcnJvck1ldGFkYXRhIiwgIm5zIiwgIm1lc3NhZ2UiLCAiRXJyb3JDdG9yIiwgImV4Y2VwdGlvbiIsICJvdXRwdXQiLCAibmFtZSIsICJtZW1iZXIiLCAiX3RvU3RyIiwgIl90b0Jvb2wiLCAiX3RvTnVtIiwgImluaXRfY29lcmNpbmdfc2VyaWFsaXplcnMiLCAiX19lc21NaW4iLCAidmFsIiwgIndhcm5pbmciLCAibG93ZXJjYXNlIiwgIm51bSIsICJTZXJkZUNvbnRleHRDb25maWciLCAiaW5pdF9Db25maWd1cmFibGVTZXJkZUNvbnRleHQiLCAiX19lc21NaW4iLCAic2VyZGVDb250ZXh0IiwgInNlcmlhbGl6aW5nU3RydWN0SXRlcmF0b3IiLCAibnMiLCAic291cmNlT2JqZWN0IiwgInN0cnVjdCIsICJpIiwgImtleSIsICJtZW1iZXJTY2hlbWEiLCAibWVtYmVyTnMiLCAiZGVzZXJpYWxpemluZ1N0cnVjdEl0ZXJhdG9yIiwgIm5hbWVUcmFpdCIsICJrZXlzUmVtYWluaW5nIiwgImsiLCAic2VyaWFsaXphdGlvbktleSIsICJpbXBvcnRfc2NoZW1hIiwgImluaXRfc3RydWN0SXRlcmF0b3IiLCAiX19lc21NaW4iLCAianNvblJldml2ZXIiLCAia2V5IiwgInZhbHVlIiwgImNvbnRleHQiLCAibnVtZXJpY1N0cmluZyIsICJpbXBvcnRfc2VyZGUiLCAiaW5pdF9qc29uUmV2aXZlciIsICJfX2VzbU1pbiIsICJpbXBvcnRfc21pdGh5X2NsaWVudCIsICJpbXBvcnRfdXRpbF91dGY4IiwgImNvbGxlY3RCb2R5U3RyaW5nIiwgImluaXRfY29tbW9uIiwgIl9fZXNtTWluIiwgInN0cmVhbUJvZHkiLCAiY29udGV4dCIsICJib2R5IiwgInBhcnNlSnNvbkJvZHkiLCAicGFyc2VKc29uRXJyb3JCb2R5IiwgImxvYWRSZXN0SnNvbkVycm9yQ29kZSIsICJpbml0X3BhcnNlSnNvbkJvZHkiLCAiX19lc21NaW4iLCAiaW5pdF9jb21tb24iLCAic3RyZWFtQm9keSIsICJjb250ZXh0IiwgImNvbGxlY3RCb2R5U3RyaW5nIiwgImVuY29kZWQiLCAiZSIsICJlcnJvckJvZHkiLCAidmFsdWUiLCAib3V0cHV0IiwgImRhdGEiLCAiZmluZEtleSIsICJvYmplY3QiLCAia2V5IiwgImsiLCAic2FuaXRpemVFcnJvckNvZGUiLCAicmF3VmFsdWUiLCAiY2xlYW5WYWx1ZSIsICJoZWFkZXJLZXkiLCAiY29kZUtleSIsICJpbXBvcnRfcHJvdG9jb2xzIiwgImltcG9ydF9zY2hlbWEiLCAiaW1wb3J0X3NlcmRlIiwgImltcG9ydF91dGlsX2Jhc2U2NCIsICJKc29uU2hhcGVEZXNlcmlhbGl6ZXIiLCAiaW5pdF9Kc29uU2hhcGVEZXNlcmlhbGl6ZXIiLCAiX19lc21NaW4iLCAiaW5pdF9Db25maWd1cmFibGVTZXJkZUNvbnRleHQiLCAiaW5pdF9zdHJ1Y3RJdGVyYXRvciIsICJpbml0X2pzb25SZXZpdmVyIiwgImluaXRfcGFyc2VKc29uQm9keSIsICJTZXJkZUNvbnRleHRDb25maWciLCAic2V0dGluZ3MiLCAic2NoZW1hIiwgImRhdGEiLCAianNvblJldml2ZXIiLCAicGFyc2VKc29uQm9keSIsICJ2YWx1ZSIsICJpc09iamVjdCIsICJucyIsICJvdXQiLCAibWVtYmVyTmFtZSIsICJtZW1iZXJTY2hlbWEiLCAiZGVzZXJpYWxpemluZ1N0cnVjdEl0ZXJhdG9yIiwgImZyb21LZXkiLCAiZGVzZXJpYWxpemVkVmFsdWUiLCAibGlzdE1lbWJlciIsICJzcGFyc2UiLCAiaXRlbSIsICJtYXBNZW1iZXIiLCAiX2siLCAiX3YiLCAibWVkaWFUeXBlIiwgInVudHlwZWQiLCAiayIsICJ2IiwgImltcG9ydF9zZXJkZSIsICJOVU1FUklDX0NPTlRST0xfQ0hBUiIsICJKc29uUmVwbGFjZXIiLCAiaW5pdF9qc29uUmVwbGFjZXIiLCAiX19lc21NaW4iLCAia2V5IiwgInZhbHVlIiwgInYiLCAicyIsICJqc29uIiwgImltcG9ydF9wcm90b2NvbHMiLCAiaW1wb3J0X3NjaGVtYSIsICJpbXBvcnRfc2VyZGUiLCAiaW1wb3J0X3V0aWxfYmFzZTY0IiwgIkpzb25TaGFwZVNlcmlhbGl6ZXIiLCAiaW5pdF9Kc29uU2hhcGVTZXJpYWxpemVyIiwgIl9fZXNtTWluIiwgImluaXRfQ29uZmlndXJhYmxlU2VyZGVDb250ZXh0IiwgImluaXRfc3RydWN0SXRlcmF0b3IiLCAiaW5pdF9qc29uUmVwbGFjZXIiLCAiU2VyZGVDb250ZXh0Q29uZmlnIiwgInNldHRpbmdzIiwgInNjaGVtYSIsICJ2YWx1ZSIsICJyb290U2NoZW1hIiwgInVzZVJlcGxhY2VyIiwgInJlcGxhY2VyIiwgIkpzb25SZXBsYWNlciIsICJjb250YWluZXIiLCAiaXNPYmplY3QiLCAibnMiLCAib3V0IiwgIm1lbWJlck5hbWUiLCAibWVtYmVyU2NoZW1hIiwgInNlcmlhbGl6aW5nU3RydWN0SXRlcmF0b3IiLCAic2VyaWFsaXphYmxlVmFsdWUiLCAianNvbk5hbWUiLCAidGFyZ2V0S2V5IiwgImxpc3RNZW1iZXIiLCAic3BhcnNlIiwgIml0ZW0iLCAibWFwTWVtYmVyIiwgIl9rIiwgIl92IiwgIm1lZGlhVHlwZSIsICJrIiwgInYiLCAiSnNvbkNvZGVjIiwgImluaXRfSnNvbkNvZGVjIiwgIl9fZXNtTWluIiwgImluaXRfQ29uZmlndXJhYmxlU2VyZGVDb250ZXh0IiwgImluaXRfSnNvblNoYXBlRGVzZXJpYWxpemVyIiwgImluaXRfSnNvblNoYXBlU2VyaWFsaXplciIsICJTZXJkZUNvbnRleHRDb25maWciLCAic2V0dGluZ3MiLCAic2VyaWFsaXplciIsICJKc29uU2hhcGVTZXJpYWxpemVyIiwgImRlc2VyaWFsaXplciIsICJKc29uU2hhcGVEZXNlcmlhbGl6ZXIiLCAiaW1wb3J0X3Byb3RvY29scyIsICJpbXBvcnRfc2NoZW1hIiwgIkF3c0pzb25ScGNQcm90b2NvbCIsICJpbml0X0F3c0pzb25ScGNQcm90b2NvbCIsICJfX2VzbU1pbiIsICJpbml0X1Byb3RvY29sTGliIiwgImluaXRfSnNvbkNvZGVjIiwgImluaXRfcGFyc2VKc29uQm9keSIsICJkZWZhdWx0TmFtZXNwYWNlIiwgInNlcnZpY2VUYXJnZXQiLCAiYXdzUXVlcnlDb21wYXRpYmxlIiwgImpzb25Db2RlYyIsICJKc29uQ29kZWMiLCAiUHJvdG9jb2xMaWIiLCAib3BlcmF0aW9uU2NoZW1hIiwgImlucHV0IiwgImNvbnRleHQiLCAicmVxdWVzdCIsICJyZXNwb25zZSIsICJkYXRhT2JqZWN0IiwgIm1ldGFkYXRhIiwgImVycm9ySWRlbnRpZmllciIsICJsb2FkUmVzdEpzb25FcnJvckNvZGUiLCAiZXJyb3JTY2hlbWEiLCAiZXJyb3JNZXRhZGF0YSIsICJucyIsICJtZXNzYWdlIiwgIkVycm9yQ3RvciIsICJleGNlcHRpb24iLCAib3V0cHV0IiwgIm5hbWUiLCAibWVtYmVyIiwgIkF3c0pzb24xXzBQcm90b2NvbCIsICJpbml0X0F3c0pzb24xXzBQcm90b2NvbCIsICJfX2VzbU1pbiIsICJpbml0X0F3c0pzb25ScGNQcm90b2NvbCIsICJBd3NKc29uUnBjUHJvdG9jb2wiLCAiZGVmYXVsdE5hbWVzcGFjZSIsICJzZXJ2aWNlVGFyZ2V0IiwgImF3c1F1ZXJ5Q29tcGF0aWJsZSIsICJqc29uQ29kZWMiLCAiQXdzSnNvbjFfMVByb3RvY29sIiwgImluaXRfQXdzSnNvbjFfMVByb3RvY29sIiwgIl9fZXNtTWluIiwgImluaXRfQXdzSnNvblJwY1Byb3RvY29sIiwgIkF3c0pzb25ScGNQcm90b2NvbCIsICJkZWZhdWx0TmFtZXNwYWNlIiwgInNlcnZpY2VUYXJnZXQiLCAiYXdzUXVlcnlDb21wYXRpYmxlIiwgImpzb25Db2RlYyIsICJpbXBvcnRfcHJvdG9jb2xzIiwgImltcG9ydF9zY2hlbWEiLCAiQXdzUmVzdEpzb25Qcm90b2NvbCIsICJpbml0X0F3c1Jlc3RKc29uUHJvdG9jb2wiLCAiX19lc21NaW4iLCAiaW5pdF9Qcm90b2NvbExpYiIsICJpbml0X0pzb25Db2RlYyIsICJpbml0X3BhcnNlSnNvbkJvZHkiLCAiUHJvdG9jb2xMaWIiLCAiZGVmYXVsdE5hbWVzcGFjZSIsICJzZXR0aW5ncyIsICJKc29uQ29kZWMiLCAic2VyZGVDb250ZXh0IiwgIm9wZXJhdGlvblNjaGVtYSIsICJpbnB1dCIsICJjb250ZXh0IiwgInJlcXVlc3QiLCAiaW5wdXRTY2hlbWEiLCAiY29udGVudFR5cGUiLCAicmVzcG9uc2UiLCAib3V0cHV0IiwgIm91dHB1dFNjaGVtYSIsICJuYW1lIiwgIm1lbWJlciIsICJkYXRhT2JqZWN0IiwgIm1ldGFkYXRhIiwgImVycm9ySWRlbnRpZmllciIsICJsb2FkUmVzdEpzb25FcnJvckNvZGUiLCAiZXJyb3JTY2hlbWEiLCAiZXJyb3JNZXRhZGF0YSIsICJucyIsICJtZXNzYWdlIiwgIkVycm9yQ3RvciIsICJleGNlcHRpb24iLCAidGFyZ2V0IiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgImF3c0V4cGVjdFVuaW9uIiwgImluaXRfYXdzRXhwZWN0VW5pb24iLCAiX19lc21NaW4iLCAidmFsdWUiLCAicmVxdWlyZV94bWxfcGFyc2VyIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJwYXJzZVhNTCIsICJmYXN0X3htbF9wYXJzZXJfMSIsICJwYXJzZXIiLCAiXyIsICJ2YWwiLCAieG1sU3RyaW5nIiwgInJlcXVpcmVfZGlzdF9janMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgInhtbFBhcnNlciIsICJlc2NhcGVBdHRyaWJ1dGUiLCAidmFsdWUiLCAiZXNjYXBlRWxlbWVudCIsICJYbWxUZXh0IiwgIlhtbE5vZGUiLCAiX1htbE5vZGUiLCAibmFtZSIsICJjaGlsZFRleHQiLCAid2l0aE5hbWUiLCAibm9kZSIsICJjaGlsZHJlbiIsICJjaGlsZCIsICJpbnB1dCIsICJmaWVsZCIsICJsaXN0TmFtZSIsICJtZW1iZXJOYW1lIiwgInZhbHVlUHJvdmlkZXIiLCAibm9kZXMiLCAiY29udGFpbmVyTm9kZSIsICJoYXNDaGlsZHJlbiIsICJ4bWxUZXh0IiwgImF0dHJpYnV0ZXMiLCAiYXR0cmlidXRlTmFtZSIsICJhdHRyaWJ1dGUiLCAiYyIsICJpbXBvcnRfeG1sX2J1aWxkZXIiLCAiaW1wb3J0X3Byb3RvY29scyIsICJpbXBvcnRfc2NoZW1hIiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgImltcG9ydF91dGlsX3V0ZjgiLCAiWG1sU2hhcGVEZXNlcmlhbGl6ZXIiLCAiaW5pdF9YbWxTaGFwZURlc2VyaWFsaXplciIsICJfX2VzbU1pbiIsICJpbml0X0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dCIsICJTZXJkZUNvbnRleHRDb25maWciLCAic2V0dGluZ3MiLCAic2VyZGVDb250ZXh0IiwgInNjaGVtYSIsICJieXRlcyIsICJrZXkiLCAibnMiLCAibWVtYmVyU2NoZW1hcyIsICJtZW1iZXJOcyIsICJvdXRwdXQiLCAibWVtYmVyTmFtZSIsICJ4bWxTdHJpbmciLCAicGFyc2VkT2JqZWN0IiwgIl9zY2hlbWEiLCAidmFsdWUiLCAidHJhaXRzIiwgInNwYXJzZSIsICJmbGF0IiwgImxpc3RWYWx1ZSIsICJidWZmZXIiLCAic291cmNlS2V5IiwgInNvdXJjZSIsICJzb3VyY2VBcnJheSIsICJ2IiwgImtleU5zIiwgImVudHJpZXMiLCAia2V5UHJvcGVydHkiLCAidmFsdWVQcm9wZXJ0eSIsICJlbnRyeSIsICJtZW1iZXJTY2hlbWEiLCAibWVtYmVyVHJhaXRzIiwgInhtbE9iamVjdEtleSIsICJ4bWwiLCAicGFyc2VkT2JqIiwgImUiLCAidGV4dE5vZGVOYW1lIiwgInBhcnNlZE9ialRvUmV0dXJuIiwgImltcG9ydF9wcm90b2NvbHMiLCAiaW1wb3J0X3NjaGVtYSIsICJpbXBvcnRfc2VyZGUiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAiaW1wb3J0X3V0aWxfYmFzZTY0IiwgIlF1ZXJ5U2hhcGVTZXJpYWxpemVyIiwgImluaXRfUXVlcnlTaGFwZVNlcmlhbGl6ZXIiLCAiX19lc21NaW4iLCAiaW5pdF9Db25maWd1cmFibGVTZXJkZUNvbnRleHQiLCAiaW5pdF9zdHJ1Y3RJdGVyYXRvciIsICJTZXJkZUNvbnRleHRDb25maWciLCAic2V0dGluZ3MiLCAic2NoZW1hIiwgInZhbHVlIiwgInByZWZpeCIsICJucyIsICJtZW1iZXIiLCAiZmxhdCIsICJpIiwgIml0ZW0iLCAic3VmZml4IiwgImtleSIsICJrZXlTY2hlbWEiLCAibWVtYmVyU2NoZW1hIiwgImsiLCAidiIsICJrZXlTdWZmaXgiLCAidmFsdWVTdWZmaXgiLCAidmFsdWVLZXkiLCAibWVtYmVyTmFtZSIsICJzZXJpYWxpemluZ1N0cnVjdEl0ZXJhdG9yIiwgInN0ciIsICJ4bWxOYW1lIiwgImltcG9ydF9wcm90b2NvbHMiLCAiaW1wb3J0X3NjaGVtYSIsICJBd3NRdWVyeVByb3RvY29sIiwgImluaXRfQXdzUXVlcnlQcm90b2NvbCIsICJfX2VzbU1pbiIsICJpbml0X1Byb3RvY29sTGliIiwgImluaXRfWG1sU2hhcGVEZXNlcmlhbGl6ZXIiLCAiaW5pdF9RdWVyeVNoYXBlU2VyaWFsaXplciIsICJQcm90b2NvbExpYiIsICJvcHRpb25zIiwgInNldHRpbmdzIiwgIlF1ZXJ5U2hhcGVTZXJpYWxpemVyIiwgIlhtbFNoYXBlRGVzZXJpYWxpemVyIiwgInNlcmRlQ29udGV4dCIsICJvcGVyYXRpb25TY2hlbWEiLCAiaW5wdXQiLCAiY29udGV4dCIsICJyZXF1ZXN0IiwgImFjdGlvbiIsICJyZXNwb25zZSIsICJkZXNlcmlhbGl6ZXIiLCAibnMiLCAiZGF0YU9iamVjdCIsICJieXRlcyIsICJoZWFkZXIiLCAidmFsdWUiLCAic2hvcnROYW1lIiwgImF3c1F1ZXJ5UmVzdWx0S2V5IiwgIm1ldGFkYXRhIiwgImVycm9ySWRlbnRpZmllciIsICJlcnJvckRhdGEiLCAibWVzc2FnZSIsICJlcnJvclNjaGVtYSIsICJlcnJvck1ldGFkYXRhIiwgIkVycm9yQ3RvciIsICJleGNlcHRpb24iLCAib3V0cHV0IiwgIm5hbWUiLCAibWVtYmVyIiwgInRhcmdldCIsICJkYXRhIiwgImNvZGUiLCAiQXdzRWMyUXVlcnlQcm90b2NvbCIsICJpbml0X0F3c0VjMlF1ZXJ5UHJvdG9jb2wiLCAiX19lc21NaW4iLCAiaW5pdF9Bd3NRdWVyeVByb3RvY29sIiwgIkF3c1F1ZXJ5UHJvdG9jb2wiLCAib3B0aW9ucyIsICJlYzJTZXR0aW5ncyIsICJpbXBvcnRfeG1sX2J1aWxkZXIiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAicGFyc2VYbWxCb2R5IiwgInBhcnNlWG1sRXJyb3JCb2R5IiwgImxvYWRSZXN0WG1sRXJyb3JDb2RlIiwgImluaXRfcGFyc2VYbWxCb2R5IiwgIl9fZXNtTWluIiwgImluaXRfY29tbW9uIiwgInN0cmVhbUJvZHkiLCAiY29udGV4dCIsICJjb2xsZWN0Qm9keVN0cmluZyIsICJlbmNvZGVkIiwgInBhcnNlZE9iaiIsICJlIiwgInRleHROb2RlTmFtZSIsICJrZXkiLCAicGFyc2VkT2JqVG9SZXR1cm4iLCAiZXJyb3JCb2R5IiwgInZhbHVlIiwgIm91dHB1dCIsICJkYXRhIiwgImltcG9ydF94bWxfYnVpbGRlciIsICJpbXBvcnRfcHJvdG9jb2xzIiwgImltcG9ydF9zY2hlbWEiLCAiaW1wb3J0X3NlcmRlIiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgImltcG9ydF91dGlsX2Jhc2U2NCIsICJYbWxTaGFwZVNlcmlhbGl6ZXIiLCAiaW5pdF9YbWxTaGFwZVNlcmlhbGl6ZXIiLCAiX19lc21NaW4iLCAiaW5pdF9Db25maWd1cmFibGVTZXJkZUNvbnRleHQiLCAiaW5pdF9zdHJ1Y3RJdGVyYXRvciIsICJTZXJkZUNvbnRleHRDb25maWciLCAic2V0dGluZ3MiLCAic2NoZW1hIiwgInZhbHVlIiwgIm5zIiwgInRyYWl0cyIsICJieXRlcyIsICJzdHIiLCAiYnVmZmVyIiwgInBhcmVudFhtbG5zIiwgIm5hbWUiLCAic3RydWN0WG1sTm9kZSIsICJ4bWxuc0F0dHIiLCAieG1sbnMiLCAibWVtYmVyTmFtZSIsICJtZW1iZXJTY2hlbWEiLCAic2VyaWFsaXppbmdTdHJ1Y3RJdGVyYXRvciIsICJ2YWwiLCAibWVtYmVyTm9kZSIsICJsaXN0TWVtYmVyIiwgImFycmF5IiwgImNvbnRhaW5lciIsICJsaXN0VHJhaXRzIiwgImxpc3RWYWx1ZVNjaGVtYSIsICJsaXN0VmFsdWVUcmFpdHMiLCAic3BhcnNlIiwgImZsYXQiLCAid3JpdGVJdGVtIiwgInN0cnVjdCIsICJsaXN0SXRlbU5vZGUiLCAibGlzdE5vZGUiLCAibWFwTWVtYmVyIiwgIm1hcCIsICJjb250YWluZXJJc01hcCIsICJtYXBUcmFpdHMiLCAibWFwS2V5U2NoZW1hIiwgImtleVRhZyIsICJtYXBWYWx1ZVNjaGVtYSIsICJtYXBWYWx1ZVRyYWl0cyIsICJ2YWx1ZVRhZyIsICJhZGRLZXlWYWx1ZSIsICJlbnRyeSIsICJrZXkiLCAia2V5Tm9kZSIsICJrZXlYbWxuc0F0dHIiLCAia2V5WG1sbnMiLCAidmFsdWVOb2RlIiwgIm1hcE5vZGUiLCAiX3NjaGVtYSIsICJub2RlQ29udGVudHMiLCAiaW50byIsICJjb250ZW50IiwgInByZWZpeCIsICJYbWxDb2RlYyIsICJpbml0X1htbENvZGVjIiwgIl9fZXNtTWluIiwgImluaXRfQ29uZmlndXJhYmxlU2VyZGVDb250ZXh0IiwgImluaXRfWG1sU2hhcGVEZXNlcmlhbGl6ZXIiLCAiaW5pdF9YbWxTaGFwZVNlcmlhbGl6ZXIiLCAiU2VyZGVDb250ZXh0Q29uZmlnIiwgInNldHRpbmdzIiwgInNlcmlhbGl6ZXIiLCAiWG1sU2hhcGVTZXJpYWxpemVyIiwgImRlc2VyaWFsaXplciIsICJYbWxTaGFwZURlc2VyaWFsaXplciIsICJpbXBvcnRfcHJvdG9jb2xzIiwgImltcG9ydF9zY2hlbWEiLCAiQXdzUmVzdFhtbFByb3RvY29sIiwgImluaXRfQXdzUmVzdFhtbFByb3RvY29sIiwgIl9fZXNtTWluIiwgImluaXRfUHJvdG9jb2xMaWIiLCAiaW5pdF9wYXJzZVhtbEJvZHkiLCAiaW5pdF9YbWxDb2RlYyIsICJQcm90b2NvbExpYiIsICJvcHRpb25zIiwgInNldHRpbmdzIiwgIlhtbENvZGVjIiwgIm9wZXJhdGlvblNjaGVtYSIsICJpbnB1dCIsICJjb250ZXh0IiwgInJlcXVlc3QiLCAiaW5wdXRTY2hlbWEiLCAiY29udGVudFR5cGUiLCAicmVzcG9uc2UiLCAiZGF0YU9iamVjdCIsICJtZXRhZGF0YSIsICJlcnJvcklkZW50aWZpZXIiLCAibG9hZFJlc3RYbWxFcnJvckNvZGUiLCAiZXJyb3JTY2hlbWEiLCAiZXJyb3JNZXRhZGF0YSIsICJucyIsICJtZXNzYWdlIiwgIkVycm9yQ3RvciIsICJleGNlcHRpb24iLCAib3V0cHV0IiwgIm5hbWUiLCAibWVtYmVyIiwgInRhcmdldCIsICJ2YWx1ZSIsICJwcm90b2NvbHNfZXhwb3J0cyIsICJfX2V4cG9ydCIsICJBd3NFYzJRdWVyeVByb3RvY29sIiwgIkF3c0pzb24xXzBQcm90b2NvbCIsICJBd3NKc29uMV8xUHJvdG9jb2wiLCAiQXdzSnNvblJwY1Byb3RvY29sIiwgIkF3c1F1ZXJ5UHJvdG9jb2wiLCAiQXdzUmVzdEpzb25Qcm90b2NvbCIsICJBd3NSZXN0WG1sUHJvdG9jb2wiLCAiQXdzU21pdGh5UnBjVjJDYm9yUHJvdG9jb2wiLCAiSnNvbkNvZGVjIiwgIkpzb25TaGFwZURlc2VyaWFsaXplciIsICJKc29uU2hhcGVTZXJpYWxpemVyIiwgIlhtbENvZGVjIiwgIlhtbFNoYXBlRGVzZXJpYWxpemVyIiwgIlhtbFNoYXBlU2VyaWFsaXplciIsICJfdG9Cb29sIiwgIl90b051bSIsICJfdG9TdHIiLCAiYXdzRXhwZWN0VW5pb24iLCAibG9hZFJlc3RKc29uRXJyb3JDb2RlIiwgImxvYWRSZXN0WG1sRXJyb3JDb2RlIiwgInBhcnNlSnNvbkJvZHkiLCAicGFyc2VKc29uRXJyb3JCb2R5IiwgInBhcnNlWG1sQm9keSIsICJwYXJzZVhtbEVycm9yQm9keSIsICJpbml0X3Byb3RvY29scyIsICJfX2VzbU1pbiIsICJpbml0X0F3c1NtaXRoeVJwY1YyQ2JvclByb3RvY29sIiwgImluaXRfY29lcmNpbmdfc2VyaWFsaXplcnMiLCAiaW5pdF9Bd3NKc29uMV8wUHJvdG9jb2wiLCAiaW5pdF9Bd3NKc29uMV8xUHJvdG9jb2wiLCAiaW5pdF9Bd3NKc29uUnBjUHJvdG9jb2wiLCAiaW5pdF9Bd3NSZXN0SnNvblByb3RvY29sIiwgImluaXRfSnNvbkNvZGVjIiwgImluaXRfSnNvblNoYXBlRGVzZXJpYWxpemVyIiwgImluaXRfSnNvblNoYXBlU2VyaWFsaXplciIsICJpbml0X2F3c0V4cGVjdFVuaW9uIiwgImluaXRfcGFyc2VKc29uQm9keSIsICJpbml0X0F3c0VjMlF1ZXJ5UHJvdG9jb2wiLCAiaW5pdF9Bd3NRdWVyeVByb3RvY29sIiwgImluaXRfQXdzUmVzdFhtbFByb3RvY29sIiwgImluaXRfWG1sQ29kZWMiLCAiaW5pdF9YbWxTaGFwZURlc2VyaWFsaXplciIsICJpbml0X1htbFNoYXBlU2VyaWFsaXplciIsICJpbml0X3BhcnNlWG1sQm9keSIsICJkaXN0X2VzX2V4cG9ydHMiLCAiX19leHBvcnQiLCAiQVdTU0RLU2lnVjRTaWduZXIiLCAiQXdzRWMyUXVlcnlQcm90b2NvbCIsICJBd3NKc29uMV8wUHJvdG9jb2wiLCAiQXdzSnNvbjFfMVByb3RvY29sIiwgIkF3c0pzb25ScGNQcm90b2NvbCIsICJBd3NRdWVyeVByb3RvY29sIiwgIkF3c1Jlc3RKc29uUHJvdG9jb2wiLCAiQXdzUmVzdFhtbFByb3RvY29sIiwgIkF3c1Nka1NpZ1Y0QVNpZ25lciIsICJBd3NTZGtTaWdWNFNpZ25lciIsICJBd3NTbWl0aHlScGNWMkNib3JQcm90b2NvbCIsICJKc29uQ29kZWMiLCAiSnNvblNoYXBlRGVzZXJpYWxpemVyIiwgIkpzb25TaGFwZVNlcmlhbGl6ZXIiLCAiTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX09QVElPTlMiLCAiTk9ERV9TSUdWNEFfQ09ORklHX09QVElPTlMiLCAiWG1sQ29kZWMiLCAiWG1sU2hhcGVEZXNlcmlhbGl6ZXIiLCAiWG1sU2hhcGVTZXJpYWxpemVyIiwgIl90b0Jvb2wiLCAiX3RvTnVtIiwgIl90b1N0ciIsICJhd3NFeHBlY3RVbmlvbiIsICJlbWl0V2FybmluZ0lmVW5zdXBwb3J0ZWRWZXJzaW9uIiwgImdldEJlYXJlclRva2VuRW52S2V5IiwgImxvYWRSZXN0SnNvbkVycm9yQ29kZSIsICJsb2FkUmVzdFhtbEVycm9yQ29kZSIsICJwYXJzZUpzb25Cb2R5IiwgInBhcnNlSnNvbkVycm9yQm9keSIsICJwYXJzZVhtbEJvZHkiLCAicGFyc2VYbWxFcnJvckJvZHkiLCAicmVzb2x2ZUFXU1NES1NpZ1Y0Q29uZmlnIiwgInJlc29sdmVBd3NTZGtTaWdWNEFDb25maWciLCAicmVzb2x2ZUF3c1Nka1NpZ1Y0Q29uZmlnIiwgInNldENyZWRlbnRpYWxGZWF0dXJlIiwgInNldEZlYXR1cmUiLCAic2V0VG9rZW5GZWF0dXJlIiwgInN0YXRlIiwgInZhbGlkYXRlU2lnbmluZ1Byb3BlcnRpZXMiLCAiaW5pdF9kaXN0X2VzIiwgIl9fZXNtTWluIiwgImluaXRfY2xpZW50IiwgImluaXRfaHR0cEF1dGhTY2hlbWVzIiwgImluaXRfcHJvdG9jb2xzIiwgInJlcXVpcmVfZGlzdF9janMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgImNvcmUiLCAidXRpbEVuZHBvaW50cyIsICJwcm90b2NvbEh0dHAiLCAiY29yZSQxIiwgIkRFRkFVTFRfVUFfQVBQX0lEIiwgImlzVmFsaWRVc2VyQWdlbnRBcHBJZCIsICJhcHBJZCIsICJyZXNvbHZlVXNlckFnZW50Q29uZmlnIiwgImlucHV0IiwgIm5vcm1hbGl6ZWRBcHBJZFByb3ZpZGVyIiwgImN1c3RvbVVzZXJBZ2VudCIsICJsb2dnZXIiLCAiQUNDT1VOVF9JRF9FTkRQT0lOVF9SRUdFWCIsICJjaGVja0ZlYXR1cmVzIiwgImNvbnRleHQiLCAiY29uZmlnIiwgImFyZ3MiLCAicmV0cnlTdHJhdGVneSIsICJlbmRwb2ludFYyIiwgImlkZW50aXR5IiwgImNyZWRlbnRpYWxzIiwgImtleSIsICJ2YWx1ZSIsICJVU0VSX0FHRU5UIiwgIlhfQU1aX1VTRVJfQUdFTlQiLCAiU1BBQ0UiLCAiVUFfTkFNRV9TRVBBUkFUT1IiLCAiVUFfTkFNRV9FU0NBUEVfUkVHRVgiLCAiVUFfVkFMVUVfRVNDQVBFX1JFR0VYIiwgIlVBX0VTQ0FQRV9DSEFSIiwgIkJZVEVfTElNSVQiLCAiZW5jb2RlRmVhdHVyZXMiLCAiZmVhdHVyZXMiLCAiYnVmZmVyIiwgInZhbCIsICJ1c2VyQWdlbnRNaWRkbGV3YXJlIiwgIm9wdGlvbnMiLCAibmV4dCIsICJyZXF1ZXN0IiwgImhlYWRlcnMiLCAidXNlckFnZW50IiwgImVzY2FwZVVzZXJBZ2VudCIsICJkZWZhdWx0VXNlckFnZW50IiwgImF3c0NvbnRleHQiLCAicHJlZml4IiwgInNka1VzZXJBZ2VudFZhbHVlIiwgIm5vcm1hbFVBVmFsdWUiLCAic2VjdGlvbiIsICJ1c2VyQWdlbnRQYWlyIiwgIm5hbWUiLCAicGFydCIsICJ2ZXJzaW9uIiwgInByZWZpeFNlcGFyYXRvckluZGV4IiwgInVhTmFtZSIsICJpdGVtIiwgImFjYyIsICJpbmRleCIsICJnZXRVc2VyQWdlbnRNaWRkbGV3YXJlT3B0aW9ucyIsICJnZXRVc2VyQWdlbnRQbHVnaW4iLCAiY2xpZW50U3RhY2siLCAicmVxdWlyZV9odHRwQXV0aFNjaGVtZVByb3ZpZGVyIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJjb3JlXzEiLCAidXRpbF9taWRkbGV3YXJlXzEiLCAiZGVmYXVsdENsb3VkV2F0Y2hIdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlciIsICJjb25maWciLCAiY29udGV4dCIsICJpbnB1dCIsICJjcmVhdGVBd3NBdXRoU2lndjRIdHRwQXV0aE9wdGlvbiIsICJhdXRoUGFyYW1ldGVycyIsICJkZWZhdWx0Q2xvdWRXYXRjaEh0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAib3B0aW9ucyIsICJyZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWciLCAiY29uZmlnXzAiLCAicmVxdWlyZV9wYWNrYWdlIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAicmVxdWlyZV9kaXN0X2NqcyIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAiY2xpZW50IiwgInByb3BlcnR5UHJvdmlkZXIiLCAiRU5WX0tFWSIsICJFTlZfU0VDUkVUIiwgIkVOVl9TRVNTSU9OIiwgIkVOVl9FWFBJUkFUSU9OIiwgIkVOVl9DUkVERU5USUFMX1NDT1BFIiwgIkVOVl9BQ0NPVU5UX0lEIiwgImZyb21FbnYiLCAiaW5pdCIsICJhY2Nlc3NLZXlJZCIsICJzZWNyZXRBY2Nlc3NLZXkiLCAic2Vzc2lvblRva2VuIiwgImV4cGlyeSIsICJjcmVkZW50aWFsU2NvcGUiLCAiYWNjb3VudElkIiwgImNyZWRlbnRpYWxzIiwgInJlcXVpcmVfY2hlY2tVcmwiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgInByb3BlcnR5X3Byb3ZpZGVyXzEiLCAiRUNTX0NPTlRBSU5FUl9IT1NUIiwgIkVLU19DT05UQUlORVJfSE9TVF9JUHY0IiwgIkVLU19DT05UQUlORVJfSE9TVF9JUHY2IiwgImNoZWNrVXJsIiwgInVybCIsICJsb2dnZXIiLCAiaXBDb21wb25lbnRzIiwgImluUmFuZ2UiLCAiY29tcG9uZW50IiwgIm51bSIsICJyZXF1aXJlX3JlcXVlc3RIZWxwZXJzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJjcmVhdGVHZXRSZXF1ZXN0IiwgImdldENyZWRlbnRpYWxzIiwgInByb3BlcnR5X3Byb3ZpZGVyXzEiLCAicHJvdG9jb2xfaHR0cF8xIiwgInNtaXRoeV9jbGllbnRfMSIsICJ1dGlsX3N0cmVhbV8xIiwgInVybCIsICJhY2MiLCAiayIsICJ2IiwgInJlc3BvbnNlIiwgImxvZ2dlciIsICJzdHIiLCAicGFyc2VkIiwgInBhcnNlZEJvZHkiLCAicmVxdWlyZV9yZXRyeV93cmFwcGVyIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJyZXRyeVdyYXBwZXIiLCAidG9SZXRyeSIsICJtYXhSZXRyaWVzIiwgImRlbGF5TXMiLCAiaSIsICJyZXNvbHZlIiwgInJlcXVpcmVfZnJvbUh0dHAiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgInRzbGliXzEiLCAiY2xpZW50XzEiLCAibm9kZV9odHRwX2hhbmRsZXJfMSIsICJwcm9wZXJ0eV9wcm92aWRlcl8xIiwgInByb21pc2VzXzEiLCAiY2hlY2tVcmxfMSIsICJyZXF1ZXN0SGVscGVyc18xIiwgInJldHJ5X3dyYXBwZXJfMSIsICJBV1NfQ09OVEFJTkVSX0NSRURFTlRJQUxTX1JFTEFUSVZFX1VSSSIsICJERUZBVUxUX0xJTktfTE9DQUxfSE9TVCIsICJBV1NfQ09OVEFJTkVSX0NSRURFTlRJQUxTX0ZVTExfVVJJIiwgIkFXU19DT05UQUlORVJfQVVUSE9SSVpBVElPTl9UT0tFTl9GSUxFIiwgIkFXU19DT05UQUlORVJfQVVUSE9SSVpBVElPTl9UT0tFTiIsICJmcm9tSHR0cCIsICJvcHRpb25zIiwgImhvc3QiLCAicmVsYXRpdmUiLCAiZnVsbCIsICJ0b2tlbiIsICJ0b2tlbkZpbGUiLCAid2FybiIsICJ1cmwiLCAicmVxdWVzdEhhbmRsZXIiLCAicmVxdWVzdCIsICJyZXN1bHQiLCAiY3JlZHMiLCAiZSIsICJyZXF1aXJlX2Rpc3RfY2pzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJmcm9tSHR0cF8xIiwgImNyZWF0ZUF3c0F1dGhTaWd2NEh0dHBBdXRoT3B0aW9uIiwgImF1dGhQYXJhbWV0ZXJzIiwgImNvbmZpZyIsICJjb250ZXh0IiwgImNyZWF0ZVNtaXRoeUFwaU5vQXV0aEh0dHBBdXRoT3B0aW9uIiwgImltcG9ydF91dGlsX21pZGRsZXdhcmUiLCAiZGVmYXVsdFNTT09JRENIdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlciIsICJkZWZhdWx0U1NPT0lEQ0h0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAicmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnIiwgImluaXRfaHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJfX2VzbU1pbiIsICJpbml0X2Rpc3RfZXMiLCAiaW5wdXQiLCAib3B0aW9ucyIsICJjb25maWdfMCIsICJyZXNvbHZlQXdzU2RrU2lnVjRDb25maWciLCAicmVzb2x2ZUNsaWVudEVuZHBvaW50UGFyYW1ldGVycyIsICJjb21tb25QYXJhbXMiLCAiaW5pdF9FbmRwb2ludFBhcmFtZXRlcnMiLCAiX19lc21NaW4iLCAib3B0aW9ucyIsICJwYWNrYWdlX2RlZmF1bHQiLCAiaW5pdF9wYWNrYWdlIiwgIl9fZXNtTWluIiwgInJlcXVpcmVfZGlzdF9janMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgIm9zIiwgInByb2Nlc3MiLCAibWlkZGxld2FyZVVzZXJBZ2VudCIsICJjcnRBdmFpbGFiaWxpdHkiLCAiaXNDcnRBdmFpbGFibGUiLCAiY3JlYXRlRGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyIiwgInNlcnZpY2VJZCIsICJjbGllbnRWZXJzaW9uIiwgImNvbmZpZyIsICJzZWN0aW9ucyIsICJjcnRBdmFpbGFibGUiLCAiYXBwSWQiLCAiZGVmYXVsdFVzZXJBZ2VudCIsICJVQV9BUFBfSURfRU5WX05BTUUiLCAiVUFfQVBQX0lEX0lOSV9OQU1FIiwgIlVBX0FQUF9JRF9JTklfTkFNRV9ERVBSRUNBVEVEIiwgIk5PREVfQVBQX0lEX0NPTkZJR19PUFRJT05TIiwgImVudiIsICJwcm9maWxlIiwgInUiLCAidiIsICJ3IiwgIngiLCAiYiIsICJjIiwgImQiLCAiZSIsICJmIiwgImciLCAiaCIsICJpIiwgImoiLCAiayIsICJsIiwgIm0iLCAibiIsICJvIiwgInAiLCAicSIsICJyIiwgInMiLCAidCIsICJfZGF0YSIsICJydWxlU2V0IiwgImluaXRfcnVsZXNldCIsICJfX2VzbU1pbiIsICJpbXBvcnRfdXRpbF9lbmRwb2ludHMiLCAiY2FjaGUiLCAiZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIiLCAiaW5pdF9lbmRwb2ludFJlc29sdmVyIiwgIl9fZXNtTWluIiwgImluaXRfcnVsZXNldCIsICJlbmRwb2ludFBhcmFtcyIsICJjb250ZXh0IiwgInJ1bGVTZXQiLCAiaW1wb3J0X2NvcmUiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAiaW1wb3J0X3VybF9wYXJzZXIiLCAiaW1wb3J0X3V0aWxfYmFzZTY0IiwgImltcG9ydF91dGlsX3V0ZjgiLCAiZ2V0UnVudGltZUNvbmZpZyIsICJpbml0X3J1bnRpbWVDb25maWdfc2hhcmVkIiwgIl9fZXNtTWluIiwgImluaXRfZGlzdF9lcyIsICJpbml0X3Byb3RvY29scyIsICJpbml0X2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAiaW5pdF9lbmRwb2ludFJlc29sdmVyIiwgImNvbmZpZyIsICJkZWZhdWx0RW5kcG9pbnRSZXNvbHZlciIsICJkZWZhdWx0U1NPT0lEQ0h0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAiaXBjIiwgIkF3c1Nka1NpZ1Y0U2lnbmVyIiwgIkF3c1Jlc3RKc29uUHJvdG9jb2wiLCAiaW1wb3J0X3V0aWxfdXNlcl9hZ2VudF9ub2RlIiwgImltcG9ydF9jb25maWdfcmVzb2x2ZXIiLCAiaW1wb3J0X2hhc2hfbm9kZSIsICJpbXBvcnRfbWlkZGxld2FyZV9yZXRyeSIsICJpbXBvcnRfbm9kZV9jb25maWdfcHJvdmlkZXIiLCAiaW1wb3J0X25vZGVfaHR0cF9oYW5kbGVyIiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgImltcG9ydF91dGlsX2JvZHlfbGVuZ3RoX25vZGUiLCAiaW1wb3J0X3V0aWxfZGVmYXVsdHNfbW9kZV9ub2RlIiwgImltcG9ydF91dGlsX3JldHJ5IiwgImdldFJ1bnRpbWVDb25maWciLCAiaW5pdF9ydW50aW1lQ29uZmlnIiwgIl9fZXNtTWluIiwgImluaXRfcGFja2FnZSIsICJpbml0X2Rpc3RfZXMiLCAiaW5pdF9ydW50aW1lQ29uZmlnX3NoYXJlZCIsICJjb25maWciLCAiZGVmYXVsdHNNb2RlIiwgImRlZmF1bHRDb25maWdQcm92aWRlciIsICJjbGllbnRTaGFyZWRWYWx1ZXMiLCAiZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbiIsICJsb2FkZXJDb25maWciLCAibG9hZE5vZGVDb25maWciLCAiTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX09QVElPTlMiLCAicGFja2FnZV9kZWZhdWx0IiwgIlJlcXVlc3RIYW5kbGVyIiwgInJlcXVpcmVfc3RzUmVnaW9uRGVmYXVsdFJlc29sdmVyIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJzdHNSZWdpb25EZWZhdWx0UmVzb2x2ZXIiLCAiY29uZmlnX3Jlc29sdmVyXzEiLCAibm9kZV9jb25maWdfcHJvdmlkZXJfMSIsICJsb2FkZXJDb25maWciLCAicmVxdWlyZV9kaXN0X2NqcyIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAiY29uZmlnUmVzb2x2ZXIiLCAic3RzUmVnaW9uRGVmYXVsdFJlc29sdmVyIiwgImdldEF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24iLCAicnVudGltZUNvbmZpZyIsICJyZWdpb24iLCAicmVzb2x2ZUF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24iLCAiYXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiIsICJrIiwgImdldEh0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiIsICJyZXNvbHZlSHR0cEF1dGhSdW50aW1lQ29uZmlnIiwgImluaXRfaHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uIiwgIl9fZXNtTWluIiwgInJ1bnRpbWVDb25maWciLCAiX2h0dHBBdXRoU2NoZW1lcyIsICJfaHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJfY3JlZGVudGlhbHMiLCAiaHR0cEF1dGhTY2hlbWUiLCAiaW5kZXgiLCAic2NoZW1lIiwgImh0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAiY3JlZGVudGlhbHMiLCAiY29uZmlnIiwgImltcG9ydF9yZWdpb25fY29uZmlnX3Jlc29sdmVyIiwgImltcG9ydF9wcm90b2NvbF9odHRwIiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgInJlc29sdmVSdW50aW1lRXh0ZW5zaW9ucyIsICJpbml0X3J1bnRpbWVFeHRlbnNpb25zIiwgIl9fZXNtTWluIiwgImluaXRfaHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uIiwgInJ1bnRpbWVDb25maWciLCAiZXh0ZW5zaW9ucyIsICJleHRlbnNpb25Db25maWd1cmF0aW9uIiwgImdldEh0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiIsICJleHRlbnNpb24iLCAicmVzb2x2ZUh0dHBBdXRoUnVudGltZUNvbmZpZyIsICJpbXBvcnRfbWlkZGxld2FyZV9ob3N0X2hlYWRlciIsICJpbXBvcnRfbWlkZGxld2FyZV9sb2dnZXIiLCAiaW1wb3J0X21pZGRsZXdhcmVfcmVjdXJzaW9uX2RldGVjdGlvbiIsICJpbXBvcnRfbWlkZGxld2FyZV91c2VyX2FnZW50IiwgImltcG9ydF9jb25maWdfcmVzb2x2ZXIiLCAiaW1wb3J0X2NvcmUiLCAiaW1wb3J0X3NjaGVtYSIsICJpbXBvcnRfbWlkZGxld2FyZV9jb250ZW50X2xlbmd0aCIsICJpbXBvcnRfbWlkZGxld2FyZV9lbmRwb2ludCIsICJpbXBvcnRfbWlkZGxld2FyZV9yZXRyeSIsICJpbXBvcnRfc21pdGh5X2NsaWVudCIsICJTU09PSURDQ2xpZW50IiwgImluaXRfU1NPT0lEQ0NsaWVudCIsICJfX2VzbU1pbiIsICJpbml0X2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAiaW5pdF9FbmRwb2ludFBhcmFtZXRlcnMiLCAiaW5pdF9ydW50aW1lQ29uZmlnIiwgImluaXRfcnVudGltZUV4dGVuc2lvbnMiLCAiX19DbGllbnQiLCAiY29uZmlndXJhdGlvbiIsICJfY29uZmlnXzAiLCAiZ2V0UnVudGltZUNvbmZpZyIsICJfY29uZmlnXzEiLCAicmVzb2x2ZUNsaWVudEVuZHBvaW50UGFyYW1ldGVycyIsICJfY29uZmlnXzIiLCAiX2NvbmZpZ18zIiwgIl9jb25maWdfNCIsICJfY29uZmlnXzUiLCAiX2NvbmZpZ182IiwgIl9jb25maWdfNyIsICJyZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWciLCAiX2NvbmZpZ184IiwgInJlc29sdmVSdW50aW1lRXh0ZW5zaW9ucyIsICJkZWZhdWx0U1NPT0lEQ0h0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyIiwgImNvbmZpZyIsICJpbXBvcnRfc21pdGh5X2NsaWVudCIsICJTU09PSURDU2VydmljZUV4Y2VwdGlvbiIsICJpbml0X1NTT09JRENTZXJ2aWNlRXhjZXB0aW9uIiwgIl9fZXNtTWluIiwgIl9TU09PSURDU2VydmljZUV4Y2VwdGlvbiIsICJfX1NlcnZpY2VFeGNlcHRpb24iLCAib3B0aW9ucyIsICJBY2Nlc3NEZW5pZWRFeGNlcHRpb24iLCAiQXV0aG9yaXphdGlvblBlbmRpbmdFeGNlcHRpb24iLCAiRXhwaXJlZFRva2VuRXhjZXB0aW9uIiwgIkludGVybmFsU2VydmVyRXhjZXB0aW9uIiwgIkludmFsaWRDbGllbnRFeGNlcHRpb24iLCAiSW52YWxpZEdyYW50RXhjZXB0aW9uIiwgIkludmFsaWRSZXF1ZXN0RXhjZXB0aW9uIiwgIkludmFsaWRTY29wZUV4Y2VwdGlvbiIsICJTbG93RG93bkV4Y2VwdGlvbiIsICJVbmF1dGhvcml6ZWRDbGllbnRFeGNlcHRpb24iLCAiVW5zdXBwb3J0ZWRHcmFudFR5cGVFeGNlcHRpb24iLCAiaW5pdF9lcnJvcnMiLCAiX19lc21NaW4iLCAiaW5pdF9TU09PSURDU2VydmljZUV4Y2VwdGlvbiIsICJfQWNjZXNzRGVuaWVkRXhjZXB0aW9uIiwgIlNTT09JRENTZXJ2aWNlRXhjZXB0aW9uIiwgIm9wdHMiLCAiX0F1dGhvcml6YXRpb25QZW5kaW5nRXhjZXB0aW9uIiwgIl9FeHBpcmVkVG9rZW5FeGNlcHRpb24iLCAiX0ludGVybmFsU2VydmVyRXhjZXB0aW9uIiwgIl9JbnZhbGlkQ2xpZW50RXhjZXB0aW9uIiwgIl9JbnZhbGlkR3JhbnRFeGNlcHRpb24iLCAiX0ludmFsaWRSZXF1ZXN0RXhjZXB0aW9uIiwgIl9JbnZhbGlkU2NvcGVFeGNlcHRpb24iLCAiX1Nsb3dEb3duRXhjZXB0aW9uIiwgIl9VbmF1dGhvcml6ZWRDbGllbnRFeGNlcHRpb24iLCAiX1Vuc3VwcG9ydGVkR3JhbnRUeXBlRXhjZXB0aW9uIiwgImltcG9ydF9zY2hlbWEiLCAiX0FERSIsICJfQVBFIiwgIl9BVCIsICJfQ1MiLCAiX0NUIiwgIl9DVFIiLCAiX0NUUnIiLCAiX0NWIiwgIl9FVEUiLCAiX0lDRSIsICJfSUdFIiwgIl9JUkUiLCAiX0lTRSIsICJfSVNFbiIsICJfSVQiLCAiX1JUIiwgIl9TREUiLCAiX1VDRSIsICJfVUdURSIsICJfYVQiLCAiX2MiLCAiX2NJIiwgIl9jUyIsICJfY1YiLCAiX2NvIiwgIl9kQyIsICJfZSIsICJfZUkiLCAiX2VkIiwgIl9nVCIsICJfaCIsICJfaEUiLCAiX2lUIiwgIl9yIiwgIl9yVCIsICJfclUiLCAiX3MiLCAiX3NlIiwgIl9zbSIsICJfdFQiLCAibjAiLCAiQWNjZXNzVG9rZW4iLCAiQ2xpZW50U2VjcmV0IiwgIkNvZGVWZXJpZmllciIsICJJZFRva2VuIiwgIlJlZnJlc2hUb2tlbiIsICJBY2Nlc3NEZW5pZWRFeGNlcHRpb24iLCAiQXV0aG9yaXphdGlvblBlbmRpbmdFeGNlcHRpb24iLCAiQ3JlYXRlVG9rZW5SZXF1ZXN0IiwgIkNyZWF0ZVRva2VuUmVzcG9uc2UiLCAiRXhwaXJlZFRva2VuRXhjZXB0aW9uIiwgIkludGVybmFsU2VydmVyRXhjZXB0aW9uIiwgIkludmFsaWRDbGllbnRFeGNlcHRpb24iLCAiSW52YWxpZEdyYW50RXhjZXB0aW9uIiwgIkludmFsaWRSZXF1ZXN0RXhjZXB0aW9uIiwgIkludmFsaWRTY29wZUV4Y2VwdGlvbiIsICJTbG93RG93bkV4Y2VwdGlvbiIsICJVbmF1dGhvcml6ZWRDbGllbnRFeGNlcHRpb24iLCAiVW5zdXBwb3J0ZWRHcmFudFR5cGVFeGNlcHRpb24iLCAiU1NPT0lEQ1NlcnZpY2VFeGNlcHRpb24iLCAiQ3JlYXRlVG9rZW4iLCAiaW5pdF9zY2hlbWFzXzAiLCAiX19lc21NaW4iLCAiaW5pdF9lcnJvcnMiLCAiaW5pdF9TU09PSURDU2VydmljZUV4Y2VwdGlvbiIsICJpbXBvcnRfbWlkZGxld2FyZV9lbmRwb2ludCIsICJpbXBvcnRfc21pdGh5X2NsaWVudCIsICJDcmVhdGVUb2tlbkNvbW1hbmQiLCAiaW5pdF9DcmVhdGVUb2tlbkNvbW1hbmQiLCAiX19lc21NaW4iLCAiaW5pdF9FbmRwb2ludFBhcmFtZXRlcnMiLCAiaW5pdF9zY2hlbWFzXzAiLCAiJENvbW1hbmQiLCAiY29tbW9uUGFyYW1zIiwgIkNvbW1hbmQiLCAiY3MiLCAiY29uZmlnIiwgIm8iLCAiQ3JlYXRlVG9rZW4iLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAiY29tbWFuZHMiLCAiU1NPT0lEQyIsICJpbml0X1NTT09JREMiLCAiX19lc21NaW4iLCAiaW5pdF9DcmVhdGVUb2tlbkNvbW1hbmQiLCAiaW5pdF9TU09PSURDQ2xpZW50IiwgIkNyZWF0ZVRva2VuQ29tbWFuZCIsICJTU09PSURDQ2xpZW50IiwgImluaXRfY29tbWFuZHMiLCAiX19lc21NaW4iLCAiaW5pdF9DcmVhdGVUb2tlbkNvbW1hbmQiLCAiQWNjZXNzRGVuaWVkRXhjZXB0aW9uUmVhc29uIiwgIkludmFsaWRSZXF1ZXN0RXhjZXB0aW9uUmVhc29uIiwgImluaXRfZW51bXMiLCAiX19lc21NaW4iLCAic3NvX29pZGNfZXhwb3J0cyIsICJfX2V4cG9ydCIsICIkQ29tbWFuZCIsICJBY2Nlc3NEZW5pZWRFeGNlcHRpb24iLCAiQWNjZXNzRGVuaWVkRXhjZXB0aW9uUmVhc29uIiwgIkF1dGhvcml6YXRpb25QZW5kaW5nRXhjZXB0aW9uIiwgIkNyZWF0ZVRva2VuQ29tbWFuZCIsICJFeHBpcmVkVG9rZW5FeGNlcHRpb24iLCAiSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb24iLCAiSW52YWxpZENsaWVudEV4Y2VwdGlvbiIsICJJbnZhbGlkR3JhbnRFeGNlcHRpb24iLCAiSW52YWxpZFJlcXVlc3RFeGNlcHRpb24iLCAiSW52YWxpZFJlcXVlc3RFeGNlcHRpb25SZWFzb24iLCAiSW52YWxpZFNjb3BlRXhjZXB0aW9uIiwgIlNTT09JREMiLCAiU1NPT0lEQ0NsaWVudCIsICJTU09PSURDU2VydmljZUV4Y2VwdGlvbiIsICJTbG93RG93bkV4Y2VwdGlvbiIsICJVbmF1dGhvcml6ZWRDbGllbnRFeGNlcHRpb24iLCAiVW5zdXBwb3J0ZWRHcmFudFR5cGVFeGNlcHRpb24iLCAiX19DbGllbnQiLCAiaW5pdF9zc29fb2lkYyIsICJfX2VzbU1pbiIsICJpbml0X1NTT09JRENDbGllbnQiLCAiaW5pdF9TU09PSURDIiwgImluaXRfY29tbWFuZHMiLCAiaW5pdF9lbnVtcyIsICJpbml0X2Vycm9ycyIsICJpbml0X1NTT09JRENTZXJ2aWNlRXhjZXB0aW9uIiwgInJlcXVpcmVfZGlzdF9janMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgImNsaWVudCIsICJodHRwQXV0aFNjaGVtZXMiLCAicHJvcGVydHlQcm92aWRlciIsICJzaGFyZWRJbmlGaWxlTG9hZGVyIiwgImZzIiwgImZyb21FbnZTaWduaW5nTmFtZSIsICJsb2dnZXIiLCAic2lnbmluZ05hbWUiLCAiYmVhcmVyVG9rZW5LZXkiLCAidG9rZW4iLCAiRVhQSVJFX1dJTkRPV19NUyIsICJSRUZSRVNIX01FU1NBR0UiLCAiZ2V0U3NvT2lkY0NsaWVudCIsICJzc29SZWdpb24iLCAiaW5pdCIsICJjYWxsZXJDbGllbnRDb25maWciLCAiU1NPT0lEQ0NsaWVudCIsICJjb2FsZXNjZSIsICJwcm9wIiwgImdldE5ld1Nzb09pZGNUb2tlbiIsICJzc29Ub2tlbiIsICJDcmVhdGVUb2tlbkNvbW1hbmQiLCAidmFsaWRhdGVUb2tlbkV4cGlyeSIsICJ2YWxpZGF0ZVRva2VuS2V5IiwgImtleSIsICJ2YWx1ZSIsICJmb3JSZWZyZXNoIiwgIndyaXRlRmlsZSIsICJ3cml0ZVNTT1Rva2VuVG9GaWxlIiwgImlkIiwgInRva2VuRmlsZXBhdGgiLCAidG9rZW5TdHJpbmciLCAibGFzdFJlZnJlc2hBdHRlbXB0VGltZSIsICJmcm9tU3NvIiwgInByb2ZpbGVzIiwgInByb2ZpbGVOYW1lIiwgInByb2ZpbGUiLCAic3NvU2Vzc2lvbk5hbWUiLCAic3NvU2Vzc2lvbiIsICJzc29TZXNzaW9uUmVxdWlyZWRLZXkiLCAiYWNjZXNzVG9rZW4iLCAiZXhwaXJlc0F0IiwgImV4aXN0aW5nVG9rZW4iLCAibmV3U3NvT2lkY1Rva2VuIiwgIm5ld1Rva2VuRXhwaXJhdGlvbiIsICJmcm9tU3RhdGljIiwgIm5vZGVQcm92aWRlciIsICJyZXF1aXJlX2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgImNvcmVfMSIsICJ1dGlsX21pZGRsZXdhcmVfMSIsICJkZWZhdWx0U1NPSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIiLCAiY29uZmlnIiwgImNvbnRleHQiLCAiaW5wdXQiLCAiY3JlYXRlQXdzQXV0aFNpZ3Y0SHR0cEF1dGhPcHRpb24iLCAiYXV0aFBhcmFtZXRlcnMiLCAiY3JlYXRlU21pdGh5QXBpTm9BdXRoSHR0cEF1dGhPcHRpb24iLCAiZGVmYXVsdFNTT0h0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAib3B0aW9ucyIsICJyZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWciLCAiY29uZmlnXzAiLCAicmVxdWlyZV9wYWNrYWdlIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAicmVxdWlyZV9ydWxlc2V0IiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJ1IiwgInYiLCAidyIsICJ4IiwgImEiLCAiYiIsICJjIiwgImQiLCAiZSIsICJmIiwgImciLCAiaCIsICJpIiwgImoiLCAiayIsICJsIiwgIm0iLCAibiIsICJvIiwgInAiLCAicSIsICJyIiwgInMiLCAidCIsICJfZGF0YSIsICJyZXF1aXJlX2VuZHBvaW50UmVzb2x2ZXIiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgInV0aWxfZW5kcG9pbnRzXzEiLCAidXRpbF9lbmRwb2ludHNfMiIsICJydWxlc2V0XzEiLCAiY2FjaGUiLCAiZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIiLCAiZW5kcG9pbnRQYXJhbXMiLCAiY29udGV4dCIsICJyZXF1aXJlX3J1bnRpbWVDb25maWdfc2hhcmVkIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJjb3JlXzEiLCAicHJvdG9jb2xzXzEiLCAiY29yZV8yIiwgInNtaXRoeV9jbGllbnRfMSIsICJ1cmxfcGFyc2VyXzEiLCAidXRpbF9iYXNlNjRfMSIsICJ1dGlsX3V0ZjhfMSIsICJodHRwQXV0aFNjaGVtZVByb3ZpZGVyXzEiLCAiZW5kcG9pbnRSZXNvbHZlcl8xIiwgImdldFJ1bnRpbWVDb25maWciLCAiY29uZmlnIiwgImlwYyIsICJyZXF1aXJlX3J1bnRpbWVDb25maWciLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgInRzbGliXzEiLCAicGFja2FnZV9qc29uXzEiLCAiY29yZV8xIiwgInV0aWxfdXNlcl9hZ2VudF9ub2RlXzEiLCAiY29uZmlnX3Jlc29sdmVyXzEiLCAiaGFzaF9ub2RlXzEiLCAibWlkZGxld2FyZV9yZXRyeV8xIiwgIm5vZGVfY29uZmlnX3Byb3ZpZGVyXzEiLCAibm9kZV9odHRwX2hhbmRsZXJfMSIsICJzbWl0aHlfY2xpZW50XzEiLCAidXRpbF9ib2R5X2xlbmd0aF9ub2RlXzEiLCAidXRpbF9kZWZhdWx0c19tb2RlX25vZGVfMSIsICJ1dGlsX3JldHJ5XzEiLCAicnVudGltZUNvbmZpZ19zaGFyZWRfMSIsICJnZXRSdW50aW1lQ29uZmlnIiwgImNvbmZpZyIsICJkZWZhdWx0c01vZGUiLCAiZGVmYXVsdENvbmZpZ1Byb3ZpZGVyIiwgImNsaWVudFNoYXJlZFZhbHVlcyIsICJsb2FkZXJDb25maWciLCAicmVxdWlyZV9kaXN0X2NqcyIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAibWlkZGxld2FyZUhvc3RIZWFkZXIiLCAibWlkZGxld2FyZUxvZ2dlciIsICJtaWRkbGV3YXJlUmVjdXJzaW9uRGV0ZWN0aW9uIiwgIm1pZGRsZXdhcmVVc2VyQWdlbnQiLCAiY29uZmlnUmVzb2x2ZXIiLCAiY29yZSIsICJzY2hlbWEiLCAibWlkZGxld2FyZUNvbnRlbnRMZW5ndGgiLCAibWlkZGxld2FyZUVuZHBvaW50IiwgIm1pZGRsZXdhcmVSZXRyeSIsICJzbWl0aHlDbGllbnQiLCAiaHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJydW50aW1lQ29uZmlnIiwgInJlZ2lvbkNvbmZpZ1Jlc29sdmVyIiwgInByb3RvY29sSHR0cCIsICJyZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzIiwgIm9wdGlvbnMiLCAiY29tbW9uUGFyYW1zIiwgImdldEh0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiIsICJfaHR0cEF1dGhTY2hlbWVzIiwgIl9odHRwQXV0aFNjaGVtZVByb3ZpZGVyIiwgIl9jcmVkZW50aWFscyIsICJodHRwQXV0aFNjaGVtZSIsICJpbmRleCIsICJzY2hlbWUiLCAiY3JlZGVudGlhbHMiLCAicmVzb2x2ZUh0dHBBdXRoUnVudGltZUNvbmZpZyIsICJjb25maWciLCAicmVzb2x2ZVJ1bnRpbWVFeHRlbnNpb25zIiwgImV4dGVuc2lvbnMiLCAiZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiIsICJleHRlbnNpb24iLCAiU1NPQ2xpZW50IiwgImNvbmZpZ3VyYXRpb24iLCAiX2NvbmZpZ18wIiwgIl9jb25maWdfMSIsICJfY29uZmlnXzIiLCAiX2NvbmZpZ18zIiwgIl9jb25maWdfNCIsICJfY29uZmlnXzUiLCAiX2NvbmZpZ182IiwgIl9jb25maWdfNyIsICJfY29uZmlnXzgiLCAiU1NPU2VydmljZUV4Y2VwdGlvbiQxIiwgIlNTT1NlcnZpY2VFeGNlcHRpb24iLCAiSW52YWxpZFJlcXVlc3RFeGNlcHRpb24kMSIsICJJbnZhbGlkUmVxdWVzdEV4Y2VwdGlvbiIsICJvcHRzIiwgIlJlc291cmNlTm90Rm91bmRFeGNlcHRpb24kMSIsICJSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uIiwgIlRvb01hbnlSZXF1ZXN0c0V4Y2VwdGlvbiQxIiwgIlRvb01hbnlSZXF1ZXN0c0V4Y2VwdGlvbiIsICJVbmF1dGhvcml6ZWRFeGNlcHRpb24kMSIsICJVbmF1dGhvcml6ZWRFeGNlcHRpb24iLCAiX0FJIiwgIl9BTFQiLCAiX0FUVCIsICJfR1JDIiwgIl9HUkNSIiwgIl9HUkNSZSIsICJfSVJFIiwgIl9MIiwgIl9MQSIsICJfTEFSIiwgIl9MQVJSIiwgIl9MQVJSaSIsICJfTEFSaSIsICJfTEFSaXMiLCAiX0xSIiwgIl9SQyIsICJfUkkiLCAiX1JMVCIsICJfUk5GRSIsICJfU0FLVCIsICJfU1RUIiwgIl9UTVJFIiwgIl9VRSIsICJfYUkiLCAiX2FLSSIsICJfYUwiLCAiX2FOIiwgIl9hVCIsICJfYWkiLCAiX2MiLCAiX2UiLCAiX2VBIiwgIl9leCIsICJfaCIsICJfaEUiLCAiX2hIIiwgIl9oUSIsICJfbSIsICJfbVIiLCAiX21yIiwgIl9uVCIsICJfbnQiLCAiX3JDIiwgIl9yTCIsICJfck4iLCAiX3JuIiwgIl9zIiwgIl9zQUsiLCAiX3NUIiwgIl94YXNidCIsICJuMCIsICJBY2Nlc3NUb2tlblR5cGUiLCAiU2VjcmV0QWNjZXNzS2V5VHlwZSIsICJTZXNzaW9uVG9rZW5UeXBlIiwgIkFjY291bnRJbmZvIiwgIkdldFJvbGVDcmVkZW50aWFsc1JlcXVlc3QiLCAiR2V0Um9sZUNyZWRlbnRpYWxzUmVzcG9uc2UiLCAiUm9sZUNyZWRlbnRpYWxzIiwgIkxpc3RBY2NvdW50Um9sZXNSZXF1ZXN0IiwgIkxpc3RBY2NvdW50Um9sZXNSZXNwb25zZSIsICJSb2xlTGlzdFR5cGUiLCAiTGlzdEFjY291bnRzUmVxdWVzdCIsICJMaXN0QWNjb3VudHNSZXNwb25zZSIsICJBY2NvdW50TGlzdFR5cGUiLCAiTG9nb3V0UmVxdWVzdCIsICJSb2xlSW5mbyIsICJfX1VuaXQiLCAiR2V0Um9sZUNyZWRlbnRpYWxzIiwgIkxpc3RBY2NvdW50Um9sZXMiLCAiTGlzdEFjY291bnRzIiwgIkxvZ291dCIsICJHZXRSb2xlQ3JlZGVudGlhbHNDb21tYW5kIiwgIkNvbW1hbmQiLCAiY3MiLCAibyIsICJMaXN0QWNjb3VudFJvbGVzQ29tbWFuZCIsICJMaXN0QWNjb3VudHNDb21tYW5kIiwgIkxvZ291dENvbW1hbmQiLCAiY29tbWFuZHMiLCAiU1NPIiwgInBhZ2luYXRlTGlzdEFjY291bnRSb2xlcyIsICJwYWdpbmF0ZUxpc3RBY2NvdW50cyIsICJyZXF1aXJlX2xvYWRTc29fQ1Z5OGlxc1oiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgImNsaWVudFNzbyIsICJyZXF1aXJlX2Rpc3RfY2pzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJwcm9wZXJ0eVByb3ZpZGVyIiwgInNoYXJlZEluaUZpbGVMb2FkZXIiLCAiY2xpZW50IiwgInRva2VuUHJvdmlkZXJzIiwgImlzU3NvUHJvZmlsZSIsICJhcmciLCAiU0hPVUxEX0ZBSUxfQ1JFREVOVElBTF9DSEFJTiIsICJyZXNvbHZlU1NPQ3JlZGVudGlhbHMiLCAic3NvU3RhcnRVcmwiLCAic3NvU2Vzc2lvbiIsICJzc29BY2NvdW50SWQiLCAic3NvUmVnaW9uIiwgInNzb1JvbGVOYW1lIiwgInNzb0NsaWVudCIsICJjbGllbnRDb25maWciLCAicGFyZW50Q2xpZW50Q29uZmlnIiwgImNhbGxlckNsaWVudENvbmZpZyIsICJwcm9maWxlIiwgImZpbGVwYXRoIiwgImNvbmZpZ0ZpbGVwYXRoIiwgImlnbm9yZUNhY2hlIiwgImxvZ2dlciIsICJ0b2tlbiIsICJyZWZyZXNoTWVzc2FnZSIsICJfdG9rZW4iLCAiZSIsICJhY2Nlc3NUb2tlbiIsICJTU09DbGllbnQiLCAiR2V0Um9sZUNyZWRlbnRpYWxzQ29tbWFuZCIsICJzc28iLCAic3NvUmVzcCIsICJhY2Nlc3NLZXlJZCIsICJzZWNyZXRBY2Nlc3NLZXkiLCAic2Vzc2lvblRva2VuIiwgImV4cGlyYXRpb24iLCAiY3JlZGVudGlhbFNjb3BlIiwgImFjY291bnRJZCIsICJjcmVkZW50aWFscyIsICJ2YWxpZGF0ZVNzb1Byb2ZpbGUiLCAic3NvX3N0YXJ0X3VybCIsICJzc29fYWNjb3VudF9pZCIsICJzc29fcmVnaW9uIiwgInNzb19yb2xlX25hbWUiLCAiZnJvbVNTTyIsICJpbml0IiwgInByb2ZpbGVOYW1lIiwgInNlc3Npb24iLCAiY29uZmxpY3RNc2ciLCAic3NvX3Nlc3Npb24iLCAiY3JlYXRlQXdzQXV0aFNpZ3Y0SHR0cEF1dGhPcHRpb24iLCAiYXV0aFBhcmFtZXRlcnMiLCAiY29uZmlnIiwgImNvbnRleHQiLCAiY3JlYXRlU21pdGh5QXBpTm9BdXRoSHR0cEF1dGhPcHRpb24iLCAiaW1wb3J0X3V0aWxfbWlkZGxld2FyZSIsICJkZWZhdWx0U2lnbmluSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIiLCAiZGVmYXVsdFNpZ25pbkh0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAicmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnIiwgImluaXRfaHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJfX2VzbU1pbiIsICJpbml0X2Rpc3RfZXMiLCAiaW5wdXQiLCAib3B0aW9ucyIsICJjb25maWdfMCIsICJyZXNvbHZlQXdzU2RrU2lnVjRDb25maWciLCAicmVzb2x2ZUNsaWVudEVuZHBvaW50UGFyYW1ldGVycyIsICJjb21tb25QYXJhbXMiLCAiaW5pdF9FbmRwb2ludFBhcmFtZXRlcnMiLCAiX19lc21NaW4iLCAib3B0aW9ucyIsICJwYWNrYWdlX2RlZmF1bHQiLCAiaW5pdF9wYWNrYWdlIiwgIl9fZXNtTWluIiwgInUiLCAidiIsICJ3IiwgIngiLCAiYiIsICJjIiwgImQiLCAiZSIsICJmIiwgImciLCAiaCIsICJpIiwgImoiLCAiayIsICJsIiwgIm0iLCAibiIsICJvIiwgInAiLCAicSIsICJyIiwgInMiLCAidCIsICJfZGF0YSIsICJydWxlU2V0IiwgImluaXRfcnVsZXNldCIsICJfX2VzbU1pbiIsICJpbXBvcnRfdXRpbF9lbmRwb2ludHMiLCAiY2FjaGUiLCAiZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIiLCAiaW5pdF9lbmRwb2ludFJlc29sdmVyIiwgIl9fZXNtTWluIiwgImluaXRfcnVsZXNldCIsICJlbmRwb2ludFBhcmFtcyIsICJjb250ZXh0IiwgInJ1bGVTZXQiLCAiaW1wb3J0X2NvcmUiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAiaW1wb3J0X3VybF9wYXJzZXIiLCAiaW1wb3J0X3V0aWxfYmFzZTY0IiwgImltcG9ydF91dGlsX3V0ZjgiLCAiZ2V0UnVudGltZUNvbmZpZyIsICJpbml0X3J1bnRpbWVDb25maWdfc2hhcmVkIiwgIl9fZXNtTWluIiwgImluaXRfZGlzdF9lcyIsICJpbml0X3Byb3RvY29scyIsICJpbml0X2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAiaW5pdF9lbmRwb2ludFJlc29sdmVyIiwgImNvbmZpZyIsICJkZWZhdWx0RW5kcG9pbnRSZXNvbHZlciIsICJkZWZhdWx0U2lnbmluSHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJpcGMiLCAiQXdzU2RrU2lnVjRTaWduZXIiLCAiQXdzUmVzdEpzb25Qcm90b2NvbCIsICJpbXBvcnRfdXRpbF91c2VyX2FnZW50X25vZGUiLCAiaW1wb3J0X2NvbmZpZ19yZXNvbHZlciIsICJpbXBvcnRfaGFzaF9ub2RlIiwgImltcG9ydF9taWRkbGV3YXJlX3JldHJ5IiwgImltcG9ydF9ub2RlX2NvbmZpZ19wcm92aWRlciIsICJpbXBvcnRfbm9kZV9odHRwX2hhbmRsZXIiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAiaW1wb3J0X3V0aWxfYm9keV9sZW5ndGhfbm9kZSIsICJpbXBvcnRfdXRpbF9kZWZhdWx0c19tb2RlX25vZGUiLCAiaW1wb3J0X3V0aWxfcmV0cnkiLCAiZ2V0UnVudGltZUNvbmZpZyIsICJpbml0X3J1bnRpbWVDb25maWciLCAiX19lc21NaW4iLCAiaW5pdF9wYWNrYWdlIiwgImluaXRfZGlzdF9lcyIsICJpbml0X3J1bnRpbWVDb25maWdfc2hhcmVkIiwgImNvbmZpZyIsICJkZWZhdWx0c01vZGUiLCAiZGVmYXVsdENvbmZpZ1Byb3ZpZGVyIiwgImNsaWVudFNoYXJlZFZhbHVlcyIsICJlbWl0V2FybmluZ0lmVW5zdXBwb3J0ZWRWZXJzaW9uIiwgImxvYWRlckNvbmZpZyIsICJsb2FkTm9kZUNvbmZpZyIsICJOT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfT1BUSU9OUyIsICJwYWNrYWdlX2RlZmF1bHQiLCAiUmVxdWVzdEhhbmRsZXIiLCAiZ2V0SHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uIiwgInJlc29sdmVIdHRwQXV0aFJ1bnRpbWVDb25maWciLCAiaW5pdF9odHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24iLCAiX19lc21NaW4iLCAicnVudGltZUNvbmZpZyIsICJfaHR0cEF1dGhTY2hlbWVzIiwgIl9odHRwQXV0aFNjaGVtZVByb3ZpZGVyIiwgIl9jcmVkZW50aWFscyIsICJodHRwQXV0aFNjaGVtZSIsICJpbmRleCIsICJzY2hlbWUiLCAiaHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJjcmVkZW50aWFscyIsICJjb25maWciLCAiaW1wb3J0X3JlZ2lvbl9jb25maWdfcmVzb2x2ZXIiLCAiaW1wb3J0X3Byb3RvY29sX2h0dHAiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAicmVzb2x2ZVJ1bnRpbWVFeHRlbnNpb25zIiwgImluaXRfcnVudGltZUV4dGVuc2lvbnMiLCAiX19lc21NaW4iLCAiaW5pdF9odHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24iLCAicnVudGltZUNvbmZpZyIsICJleHRlbnNpb25zIiwgImV4dGVuc2lvbkNvbmZpZ3VyYXRpb24iLCAiZ2V0SHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uIiwgImV4dGVuc2lvbiIsICJyZXNvbHZlSHR0cEF1dGhSdW50aW1lQ29uZmlnIiwgImltcG9ydF9taWRkbGV3YXJlX2hvc3RfaGVhZGVyIiwgImltcG9ydF9taWRkbGV3YXJlX2xvZ2dlciIsICJpbXBvcnRfbWlkZGxld2FyZV9yZWN1cnNpb25fZGV0ZWN0aW9uIiwgImltcG9ydF9taWRkbGV3YXJlX3VzZXJfYWdlbnQiLCAiaW1wb3J0X2NvbmZpZ19yZXNvbHZlciIsICJpbXBvcnRfY29yZSIsICJpbXBvcnRfc2NoZW1hIiwgImltcG9ydF9taWRkbGV3YXJlX2NvbnRlbnRfbGVuZ3RoIiwgImltcG9ydF9taWRkbGV3YXJlX2VuZHBvaW50IiwgImltcG9ydF9taWRkbGV3YXJlX3JldHJ5IiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgIlNpZ25pbkNsaWVudCIsICJpbml0X1NpZ25pbkNsaWVudCIsICJfX2VzbU1pbiIsICJpbml0X2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAiaW5pdF9FbmRwb2ludFBhcmFtZXRlcnMiLCAiaW5pdF9ydW50aW1lQ29uZmlnIiwgImluaXRfcnVudGltZUV4dGVuc2lvbnMiLCAiX19DbGllbnQiLCAiY29uZmlndXJhdGlvbiIsICJfY29uZmlnXzAiLCAiZ2V0UnVudGltZUNvbmZpZyIsICJfY29uZmlnXzEiLCAicmVzb2x2ZUNsaWVudEVuZHBvaW50UGFyYW1ldGVycyIsICJfY29uZmlnXzIiLCAiX2NvbmZpZ18zIiwgIl9jb25maWdfNCIsICJfY29uZmlnXzUiLCAiX2NvbmZpZ182IiwgIl9jb25maWdfNyIsICJyZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWciLCAiX2NvbmZpZ184IiwgInJlc29sdmVSdW50aW1lRXh0ZW5zaW9ucyIsICJkZWZhdWx0U2lnbmluSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIiLCAiY29uZmlnIiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgIlNpZ25pblNlcnZpY2VFeGNlcHRpb24iLCAiaW5pdF9TaWduaW5TZXJ2aWNlRXhjZXB0aW9uIiwgIl9fZXNtTWluIiwgIl9TaWduaW5TZXJ2aWNlRXhjZXB0aW9uIiwgIl9fU2VydmljZUV4Y2VwdGlvbiIsICJvcHRpb25zIiwgIkFjY2Vzc0RlbmllZEV4Y2VwdGlvbiIsICJJbnRlcm5hbFNlcnZlckV4Y2VwdGlvbiIsICJUb29NYW55UmVxdWVzdHNFcnJvciIsICJWYWxpZGF0aW9uRXhjZXB0aW9uIiwgImluaXRfZXJyb3JzIiwgIl9fZXNtTWluIiwgImluaXRfU2lnbmluU2VydmljZUV4Y2VwdGlvbiIsICJfQWNjZXNzRGVuaWVkRXhjZXB0aW9uIiwgIlNpZ25pblNlcnZpY2VFeGNlcHRpb24iLCAib3B0cyIsICJfSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb24iLCAiX1Rvb01hbnlSZXF1ZXN0c0Vycm9yIiwgIl9WYWxpZGF0aW9uRXhjZXB0aW9uIiwgImltcG9ydF9zY2hlbWEiLCAiX0FERSIsICJfQVQiLCAiX0NPQVQiLCAiX0NPQVRSIiwgIl9DT0FUUkIiLCAiX0NPQVRSQnIiLCAiX0NPQVRSciIsICJfSVNFIiwgIl9SVCIsICJfVE1SRSIsICJfVkUiLCAiX2FLSSIsICJfYVQiLCAiX2MiLCAiX2NJIiwgIl9jViIsICJfY28iLCAiX2UiLCAiX2VJIiwgIl9nVCIsICJfaCIsICJfaEUiLCAiX2lUIiwgIl9qTiIsICJfbSIsICJfclQiLCAiX3JVIiwgIl9zIiwgIl9zQUsiLCAiX3NUIiwgIl9zbSIsICJfdEkiLCAiX3RPIiwgIl90VCIsICJuMCIsICJSZWZyZXNoVG9rZW4iLCAiQWNjZXNzRGVuaWVkRXhjZXB0aW9uIiwgIkFjY2Vzc1Rva2VuIiwgIkNyZWF0ZU9BdXRoMlRva2VuUmVxdWVzdCIsICJDcmVhdGVPQXV0aDJUb2tlblJlcXVlc3RCb2R5IiwgIkNyZWF0ZU9BdXRoMlRva2VuUmVzcG9uc2UiLCAiQ3JlYXRlT0F1dGgyVG9rZW5SZXNwb25zZUJvZHkiLCAiSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb24iLCAiVG9vTWFueVJlcXVlc3RzRXJyb3IiLCAiVmFsaWRhdGlvbkV4Y2VwdGlvbiIsICJTaWduaW5TZXJ2aWNlRXhjZXB0aW9uIiwgIkNyZWF0ZU9BdXRoMlRva2VuIiwgImluaXRfc2NoZW1hc18wIiwgIl9fZXNtTWluIiwgImluaXRfZXJyb3JzIiwgImluaXRfU2lnbmluU2VydmljZUV4Y2VwdGlvbiIsICJpbXBvcnRfbWlkZGxld2FyZV9lbmRwb2ludCIsICJpbXBvcnRfc21pdGh5X2NsaWVudCIsICJDcmVhdGVPQXV0aDJUb2tlbkNvbW1hbmQiLCAiaW5pdF9DcmVhdGVPQXV0aDJUb2tlbkNvbW1hbmQiLCAiX19lc21NaW4iLCAiaW5pdF9FbmRwb2ludFBhcmFtZXRlcnMiLCAiaW5pdF9zY2hlbWFzXzAiLCAiJENvbW1hbmQiLCAiY29tbW9uUGFyYW1zIiwgIkNvbW1hbmQiLCAiY3MiLCAiY29uZmlnIiwgIm8iLCAiQ3JlYXRlT0F1dGgyVG9rZW4iLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAiY29tbWFuZHMiLCAiU2lnbmluIiwgImluaXRfU2lnbmluIiwgIl9fZXNtTWluIiwgImluaXRfQ3JlYXRlT0F1dGgyVG9rZW5Db21tYW5kIiwgImluaXRfU2lnbmluQ2xpZW50IiwgIkNyZWF0ZU9BdXRoMlRva2VuQ29tbWFuZCIsICJTaWduaW5DbGllbnQiLCAiaW5pdF9jb21tYW5kcyIsICJfX2VzbU1pbiIsICJpbml0X0NyZWF0ZU9BdXRoMlRva2VuQ29tbWFuZCIsICJPQXV0aDJFcnJvckNvZGUiLCAiaW5pdF9lbnVtcyIsICJfX2VzbU1pbiIsICJzaWduaW5fZXhwb3J0cyIsICJfX2V4cG9ydCIsICIkQ29tbWFuZCIsICJBY2Nlc3NEZW5pZWRFeGNlcHRpb24iLCAiQ3JlYXRlT0F1dGgyVG9rZW5Db21tYW5kIiwgIkludGVybmFsU2VydmVyRXhjZXB0aW9uIiwgIk9BdXRoMkVycm9yQ29kZSIsICJTaWduaW4iLCAiU2lnbmluQ2xpZW50IiwgIlNpZ25pblNlcnZpY2VFeGNlcHRpb24iLCAiVG9vTWFueVJlcXVlc3RzRXJyb3IiLCAiVmFsaWRhdGlvbkV4Y2VwdGlvbiIsICJfX0NsaWVudCIsICJpbml0X3NpZ25pbiIsICJfX2VzbU1pbiIsICJpbml0X1NpZ25pbkNsaWVudCIsICJpbml0X1NpZ25pbiIsICJpbml0X2NvbW1hbmRzIiwgImluaXRfZW51bXMiLCAiaW5pdF9lcnJvcnMiLCAiaW5pdF9TaWduaW5TZXJ2aWNlRXhjZXB0aW9uIiwgInJlcXVpcmVfZGlzdF9janMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgImNsaWVudCIsICJwcm9wZXJ0eVByb3ZpZGVyIiwgInNoYXJlZEluaUZpbGVMb2FkZXIiLCAicHJvdG9jb2xIdHRwIiwgIm5vZGVfY3J5cHRvIiwgIm5vZGVfZnMiLCAibm9kZV9vcyIsICJub2RlX3BhdGgiLCAiTG9naW5DcmVkZW50aWFsc0ZldGNoZXIiLCAiX0xvZ2luQ3JlZGVudGlhbHNGZXRjaGVyIiwgInByb2ZpbGVEYXRhIiwgImluaXQiLCAiY2FsbGVyQ2xpZW50Q29uZmlnIiwgInRva2VuIiwgImFjY2Vzc1Rva2VuIiwgIm5vdyIsICJTaWduaW5DbGllbnQiLCAiQ3JlYXRlT0F1dGgyVG9rZW5Db21tYW5kIiwgImxvZ2dlciIsICJ1c2VyQWdlbnRBcHBJZCIsICJyZXF1ZXN0SGFuZGxlciIsICJyZWdpb24iLCAiY29tbWFuZElucHV0IiwgInJlc3BvbnNlIiwgImFjY2Vzc0tleUlkIiwgInNlY3JldEFjY2Vzc0tleSIsICJzZXNzaW9uVG9rZW4iLCAicmVmcmVzaFRva2VuIiwgImV4cGlyZXNJbiIsICJleHBpcmVzSW5NcyIsICJleHBpcmF0aW9uIiwgInVwZGF0ZWRUb2tlbiIsICJuZXdBY2Nlc3NUb2tlbiIsICJlcnJvciIsICJlcnJvclR5cGUiLCAibWVzc2FnZSIsICJ0b2tlbkZpbGVQYXRoIiwgInRva2VuRGF0YSIsICJtaXNzaW5nRmllbGRzIiwgImsiLCAiZGlyZWN0b3J5IiwgImxvZ2luU2Vzc2lvbkJ5dGVzIiwgImxvZ2luU2Vzc2lvblNoYTI1NiIsICJkZXJTaWduYXR1cmUiLCAib2Zmc2V0IiwgInJMZW5ndGgiLCAiciIsICJzTGVuZ3RoIiwgInMiLCAiclBhZGRlZCIsICJzUGFkZGVkIiwgIm1pZGRsZXdhcmVTdGFjayIsICJuZXh0IiwgImFyZ3MiLCAicmVxdWVzdCIsICJhY3R1YWxFbmRwb2ludCIsICJkcG9wIiwgIm1ldGhvZCIsICJlbmRwb2ludCIsICJwcml2YXRlS2V5IiwgInB1YmxpY0RlciIsICJwb2ludFN0YXJ0IiwgImkiLCAieCIsICJ5IiwgImhlYWRlciIsICJwYXlsb2FkIiwgImhlYWRlckI2NCIsICJwYXlsb2FkQjY0IiwgImFzbjFTaWduYXR1cmUiLCAic2lnbmF0dXJlQjY0IiwgImZyb21Mb2dpbkNyZWRlbnRpYWxzIiwgInByb2ZpbGVzIiwgInByb2ZpbGVOYW1lIiwgInByb2ZpbGUiLCAiY3JlZGVudGlhbHMiLCAiY3JlYXRlQXdzQXV0aFNpZ3Y0SHR0cEF1dGhPcHRpb24iLCAiYXV0aFBhcmFtZXRlcnMiLCAiY29uZmlnIiwgImNvbnRleHQiLCAiY3JlYXRlU21pdGh5QXBpTm9BdXRoSHR0cEF1dGhPcHRpb24iLCAiaW1wb3J0X3V0aWxfbWlkZGxld2FyZSIsICJkZWZhdWx0U1RTSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIiLCAiZGVmYXVsdFNUU0h0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAicmVzb2x2ZVN0c0F1dGhDb25maWciLCAicmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnIiwgImluaXRfaHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJfX2VzbU1pbiIsICJpbml0X2Rpc3RfZXMiLCAiaW5pdF9TVFNDbGllbnQiLCAiaW5wdXQiLCAib3B0aW9ucyIsICJTVFNDbGllbnQiLCAiY29uZmlnXzAiLCAiY29uZmlnXzEiLCAicmVzb2x2ZUF3c1Nka1NpZ1Y0Q29uZmlnIiwgInJlc29sdmVDbGllbnRFbmRwb2ludFBhcmFtZXRlcnMiLCAiY29tbW9uUGFyYW1zIiwgImluaXRfRW5kcG9pbnRQYXJhbWV0ZXJzIiwgIl9fZXNtTWluIiwgIm9wdGlvbnMiLCAiRiIsICJHIiwgIkgiLCAiSSIsICJKIiwgImMiLCAiZCIsICJlIiwgImYiLCAiZyIsICJoIiwgImkiLCAiaiIsICJrIiwgImwiLCAibSIsICJuIiwgIm8iLCAicCIsICJxIiwgInIiLCAicyIsICJ0IiwgInUiLCAidiIsICJ3IiwgIngiLCAieSIsICJ6IiwgIkEiLCAiQiIsICJDIiwgIkQiLCAiRSIsICJfZGF0YSIsICJydWxlU2V0IiwgImluaXRfcnVsZXNldCIsICJfX2VzbU1pbiIsICJpbXBvcnRfdXRpbF9lbmRwb2ludHMiLCAiY2FjaGUiLCAiZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIiLCAiaW5pdF9lbmRwb2ludFJlc29sdmVyIiwgIl9fZXNtTWluIiwgImluaXRfcnVsZXNldCIsICJlbmRwb2ludFBhcmFtcyIsICJjb250ZXh0IiwgInJ1bGVTZXQiLCAiaW1wb3J0X2NvcmUiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAiaW1wb3J0X3VybF9wYXJzZXIiLCAiaW1wb3J0X3V0aWxfYmFzZTY0IiwgImltcG9ydF91dGlsX3V0ZjgiLCAiZ2V0UnVudGltZUNvbmZpZyIsICJpbml0X3J1bnRpbWVDb25maWdfc2hhcmVkIiwgIl9fZXNtTWluIiwgImluaXRfZGlzdF9lcyIsICJpbml0X3Byb3RvY29scyIsICJpbml0X2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAiaW5pdF9lbmRwb2ludFJlc29sdmVyIiwgImNvbmZpZyIsICJkZWZhdWx0RW5kcG9pbnRSZXNvbHZlciIsICJkZWZhdWx0U1RTSHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJpcGMiLCAiQXdzU2RrU2lnVjRTaWduZXIiLCAiQXdzUXVlcnlQcm90b2NvbCIsICJpbXBvcnRfdXRpbF91c2VyX2FnZW50X25vZGUiLCAiaW1wb3J0X2NvbmZpZ19yZXNvbHZlciIsICJpbXBvcnRfY29yZSIsICJpbXBvcnRfaGFzaF9ub2RlIiwgImltcG9ydF9taWRkbGV3YXJlX3JldHJ5IiwgImltcG9ydF9ub2RlX2NvbmZpZ19wcm92aWRlciIsICJpbXBvcnRfbm9kZV9odHRwX2hhbmRsZXIiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAiaW1wb3J0X3V0aWxfYm9keV9sZW5ndGhfbm9kZSIsICJpbXBvcnRfdXRpbF9kZWZhdWx0c19tb2RlX25vZGUiLCAiaW1wb3J0X3V0aWxfcmV0cnkiLCAiZ2V0UnVudGltZUNvbmZpZyIsICJpbml0X3J1bnRpbWVDb25maWciLCAiX19lc21NaW4iLCAiaW5pdF9wYWNrYWdlIiwgImluaXRfZGlzdF9lcyIsICJpbml0X3J1bnRpbWVDb25maWdfc2hhcmVkIiwgImNvbmZpZyIsICJkZWZhdWx0c01vZGUiLCAiZGVmYXVsdENvbmZpZ1Byb3ZpZGVyIiwgImNsaWVudFNoYXJlZFZhbHVlcyIsICJlbWl0V2FybmluZ0lmVW5zdXBwb3J0ZWRWZXJzaW9uIiwgImxvYWRlckNvbmZpZyIsICJsb2FkTm9kZUNvbmZpZyIsICJOT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfT1BUSU9OUyIsICJwYWNrYWdlX2RlZmF1bHQiLCAiaXBjIiwgImlkUHJvcHMiLCAiQXdzU2RrU2lnVjRTaWduZXIiLCAiUmVxdWVzdEhhbmRsZXIiLCAiZ2V0SHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uIiwgInJlc29sdmVIdHRwQXV0aFJ1bnRpbWVDb25maWciLCAiaW5pdF9odHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24iLCAiX19lc21NaW4iLCAicnVudGltZUNvbmZpZyIsICJfaHR0cEF1dGhTY2hlbWVzIiwgIl9odHRwQXV0aFNjaGVtZVByb3ZpZGVyIiwgIl9jcmVkZW50aWFscyIsICJodHRwQXV0aFNjaGVtZSIsICJpbmRleCIsICJzY2hlbWUiLCAiaHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJjcmVkZW50aWFscyIsICJjb25maWciLCAiaW1wb3J0X3JlZ2lvbl9jb25maWdfcmVzb2x2ZXIiLCAiaW1wb3J0X3Byb3RvY29sX2h0dHAiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAicmVzb2x2ZVJ1bnRpbWVFeHRlbnNpb25zIiwgImluaXRfcnVudGltZUV4dGVuc2lvbnMiLCAiX19lc21NaW4iLCAiaW5pdF9odHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24iLCAicnVudGltZUNvbmZpZyIsICJleHRlbnNpb25zIiwgImV4dGVuc2lvbkNvbmZpZ3VyYXRpb24iLCAiZ2V0SHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uIiwgImV4dGVuc2lvbiIsICJyZXNvbHZlSHR0cEF1dGhSdW50aW1lQ29uZmlnIiwgImltcG9ydF9taWRkbGV3YXJlX2hvc3RfaGVhZGVyIiwgImltcG9ydF9taWRkbGV3YXJlX2xvZ2dlciIsICJpbXBvcnRfbWlkZGxld2FyZV9yZWN1cnNpb25fZGV0ZWN0aW9uIiwgImltcG9ydF9taWRkbGV3YXJlX3VzZXJfYWdlbnQiLCAiaW1wb3J0X2NvbmZpZ19yZXNvbHZlciIsICJpbXBvcnRfY29yZSIsICJpbXBvcnRfc2NoZW1hIiwgImltcG9ydF9taWRkbGV3YXJlX2NvbnRlbnRfbGVuZ3RoIiwgImltcG9ydF9taWRkbGV3YXJlX2VuZHBvaW50IiwgImltcG9ydF9taWRkbGV3YXJlX3JldHJ5IiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgIlNUU0NsaWVudCIsICJpbml0X1NUU0NsaWVudCIsICJfX2VzbU1pbiIsICJpbml0X2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAiaW5pdF9FbmRwb2ludFBhcmFtZXRlcnMiLCAiaW5pdF9ydW50aW1lQ29uZmlnIiwgImluaXRfcnVudGltZUV4dGVuc2lvbnMiLCAiX19DbGllbnQiLCAiY29uZmlndXJhdGlvbiIsICJfY29uZmlnXzAiLCAiZ2V0UnVudGltZUNvbmZpZyIsICJfY29uZmlnXzEiLCAicmVzb2x2ZUNsaWVudEVuZHBvaW50UGFyYW1ldGVycyIsICJfY29uZmlnXzIiLCAiX2NvbmZpZ18zIiwgIl9jb25maWdfNCIsICJfY29uZmlnXzUiLCAiX2NvbmZpZ182IiwgIl9jb25maWdfNyIsICJyZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWciLCAiX2NvbmZpZ184IiwgInJlc29sdmVSdW50aW1lRXh0ZW5zaW9ucyIsICJkZWZhdWx0U1RTSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIiLCAiY29uZmlnIiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgIlNUU1NlcnZpY2VFeGNlcHRpb24iLCAiaW5pdF9TVFNTZXJ2aWNlRXhjZXB0aW9uIiwgIl9fZXNtTWluIiwgIl9TVFNTZXJ2aWNlRXhjZXB0aW9uIiwgIl9fU2VydmljZUV4Y2VwdGlvbiIsICJvcHRpb25zIiwgIkV4cGlyZWRUb2tlbkV4Y2VwdGlvbiIsICJNYWxmb3JtZWRQb2xpY3lEb2N1bWVudEV4Y2VwdGlvbiIsICJQYWNrZWRQb2xpY3lUb29MYXJnZUV4Y2VwdGlvbiIsICJSZWdpb25EaXNhYmxlZEV4Y2VwdGlvbiIsICJJRFBSZWplY3RlZENsYWltRXhjZXB0aW9uIiwgIkludmFsaWRJZGVudGl0eVRva2VuRXhjZXB0aW9uIiwgIklEUENvbW11bmljYXRpb25FcnJvckV4Y2VwdGlvbiIsICJpbml0X2Vycm9ycyIsICJfX2VzbU1pbiIsICJpbml0X1NUU1NlcnZpY2VFeGNlcHRpb24iLCAiX0V4cGlyZWRUb2tlbkV4Y2VwdGlvbiIsICJTVFNTZXJ2aWNlRXhjZXB0aW9uIiwgIm9wdHMiLCAiX01hbGZvcm1lZFBvbGljeURvY3VtZW50RXhjZXB0aW9uIiwgIl9QYWNrZWRQb2xpY3lUb29MYXJnZUV4Y2VwdGlvbiIsICJfUmVnaW9uRGlzYWJsZWRFeGNlcHRpb24iLCAiX0lEUFJlamVjdGVkQ2xhaW1FeGNlcHRpb24iLCAiX0ludmFsaWRJZGVudGl0eVRva2VuRXhjZXB0aW9uIiwgIl9JRFBDb21tdW5pY2F0aW9uRXJyb3JFeGNlcHRpb24iLCAiaW1wb3J0X3NjaGVtYSIsICJfQSIsICJfQUtJIiwgIl9BUiIsICJfQVJJIiwgIl9BUlIiLCAiX0FSUnMiLCAiX0FSVSIsICJfQVJXV0kiLCAiX0FSV1dJUiIsICJfQVJXV0lScyIsICJfQXUiLCAiX0MiLCAiX0NBIiwgIl9EUyIsICJfRSIsICJfRUkiLCAiX0VURSIsICJfSURQQ0VFIiwgIl9JRFBSQ0UiLCAiX0lJVEUiLCAiX0siLCAiX01QREUiLCAiX1AiLCAiX1BBIiwgIl9QQXIiLCAiX1BDIiwgIl9QQ0xUIiwgIl9QQ3IiLCAiX1BEVCIsICJfUEkiLCAiX1BQUyIsICJfUFBUTEUiLCAiX1ByIiwgIl9SQSIsICJfUkRFIiwgIl9SU04iLCAiX1NBSyIsICJfU0ZXSVQiLCAiX1NJIiwgIl9TTiIsICJfU1QiLCAiX1QiLCAiX1RDIiwgIl9UVEsiLCAiX1RhIiwgIl9WIiwgIl9XSVQiLCAiX2EiLCAiX2FLU1QiLCAiX2FRRSIsICJfYyIsICJfY1RUIiwgIl9lIiwgIl9oRSIsICJfbSIsICJfcERMVCIsICJfcyIsICJfdExUIiwgIm4wIiwgImFjY2Vzc0tleVNlY3JldFR5cGUiLCAiY2xpZW50VG9rZW5UeXBlIiwgIkFzc3VtZWRSb2xlVXNlciIsICJBc3N1bWVSb2xlUmVxdWVzdCIsICJBc3N1bWVSb2xlUmVzcG9uc2UiLCAiQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eVJlcXVlc3QiLCAiQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eVJlc3BvbnNlIiwgIkNyZWRlbnRpYWxzIiwgIkV4cGlyZWRUb2tlbkV4Y2VwdGlvbiIsICJJRFBDb21tdW5pY2F0aW9uRXJyb3JFeGNlcHRpb24iLCAiSURQUmVqZWN0ZWRDbGFpbUV4Y2VwdGlvbiIsICJJbnZhbGlkSWRlbnRpdHlUb2tlbkV4Y2VwdGlvbiIsICJNYWxmb3JtZWRQb2xpY3lEb2N1bWVudEV4Y2VwdGlvbiIsICJQYWNrZWRQb2xpY3lUb29MYXJnZUV4Y2VwdGlvbiIsICJQb2xpY3lEZXNjcmlwdG9yVHlwZSIsICJQcm92aWRlZENvbnRleHQiLCAiUmVnaW9uRGlzYWJsZWRFeGNlcHRpb24iLCAiVGFnIiwgIlNUU1NlcnZpY2VFeGNlcHRpb24iLCAicG9saWN5RGVzY3JpcHRvckxpc3RUeXBlIiwgIlByb3ZpZGVkQ29udGV4dHNMaXN0VHlwZSIsICJ0YWdMaXN0VHlwZSIsICJBc3N1bWVSb2xlIiwgIkFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHkiLCAiaW5pdF9zY2hlbWFzXzAiLCAiX19lc21NaW4iLCAiaW5pdF9lcnJvcnMiLCAiaW5pdF9TVFNTZXJ2aWNlRXhjZXB0aW9uIiwgImltcG9ydF9taWRkbGV3YXJlX2VuZHBvaW50IiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgIkFzc3VtZVJvbGVDb21tYW5kIiwgImluaXRfQXNzdW1lUm9sZUNvbW1hbmQiLCAiX19lc21NaW4iLCAiaW5pdF9FbmRwb2ludFBhcmFtZXRlcnMiLCAiaW5pdF9zY2hlbWFzXzAiLCAiJENvbW1hbmQiLCAiY29tbW9uUGFyYW1zIiwgIkNvbW1hbmQiLCAiY3MiLCAiY29uZmlnIiwgIm8iLCAiQXNzdW1lUm9sZSIsICJpbXBvcnRfbWlkZGxld2FyZV9lbmRwb2ludCIsICJpbXBvcnRfc21pdGh5X2NsaWVudCIsICJBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5Q29tbWFuZCIsICJpbml0X0Fzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlDb21tYW5kIiwgIl9fZXNtTWluIiwgImluaXRfRW5kcG9pbnRQYXJhbWV0ZXJzIiwgImluaXRfc2NoZW1hc18wIiwgIiRDb21tYW5kIiwgImNvbW1vblBhcmFtcyIsICJDb21tYW5kIiwgImNzIiwgImNvbmZpZyIsICJvIiwgIkFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHkiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAiY29tbWFuZHMiLCAiU1RTIiwgImluaXRfU1RTIiwgIl9fZXNtTWluIiwgImluaXRfQXNzdW1lUm9sZUNvbW1hbmQiLCAiaW5pdF9Bc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5Q29tbWFuZCIsICJpbml0X1NUU0NsaWVudCIsICJBc3N1bWVSb2xlQ29tbWFuZCIsICJBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5Q29tbWFuZCIsICJTVFNDbGllbnQiLCAiaW5pdF9jb21tYW5kcyIsICJfX2VzbU1pbiIsICJpbml0X0Fzc3VtZVJvbGVDb21tYW5kIiwgImluaXRfQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eUNvbW1hbmQiLCAiaW1wb3J0X3JlZ2lvbl9jb25maWdfcmVzb2x2ZXIiLCAiZ2V0QWNjb3VudElkRnJvbUFzc3VtZWRSb2xlVXNlciIsICJyZXNvbHZlUmVnaW9uIiwgImdldERlZmF1bHRSb2xlQXNzdW1lciIsICJnZXREZWZhdWx0Um9sZUFzc3VtZXJXaXRoV2ViSWRlbnRpdHkiLCAiaXNIMiIsICJpbml0X2RlZmF1bHRTdHNSb2xlQXNzdW1lcnMiLCAiX19lc21NaW4iLCAiaW5pdF9jbGllbnQiLCAiaW5pdF9Bc3N1bWVSb2xlQ29tbWFuZCIsICJpbml0X0Fzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlDb21tYW5kIiwgImFzc3VtZWRSb2xlVXNlciIsICJhcm5Db21wb25lbnRzIiwgIl9yZWdpb24iLCAiX3BhcmVudFJlZ2lvbiIsICJjcmVkZW50aWFsUHJvdmlkZXJMb2dnZXIiLCAibG9hZGVyQ29uZmlnIiwgInJlZ2lvbiIsICJwYXJlbnRSZWdpb24iLCAic3RzRGVmYXVsdFJlZ2lvbiIsICJyZXNvbHZlZFJlZ2lvbiIsICJzdHNPcHRpb25zIiwgIlNUU0NsaWVudCIsICJzdHNDbGllbnQiLCAiY2xvc3VyZVNvdXJjZUNyZWRzIiwgInNvdXJjZUNyZWRzIiwgInBhcmFtcyIsICJsb2dnZXIiLCAicHJvZmlsZSIsICJyZXF1ZXN0SGFuZGxlciIsICJ1c2VyQWdlbnRBcHBJZCIsICJpc0NvbXBhdGlibGVSZXF1ZXN0SGFuZGxlciIsICJDcmVkZW50aWFscyIsICJBc3N1bWVkUm9sZVVzZXIiLCAiQXNzdW1lUm9sZUNvbW1hbmQiLCAiYWNjb3VudElkIiwgImNyZWRlbnRpYWxzIiwgInNldENyZWRlbnRpYWxGZWF0dXJlIiwgIkFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlDb21tYW5kIiwgImdldEN1c3RvbWl6YWJsZVN0c0NsaWVudEN0b3IiLCAiZ2V0RGVmYXVsdFJvbGVBc3N1bWVyIiwgImdldERlZmF1bHRSb2xlQXNzdW1lcldpdGhXZWJJZGVudGl0eSIsICJkZWNvcmF0ZURlZmF1bHRDcmVkZW50aWFsUHJvdmlkZXIiLCAiaW5pdF9kZWZhdWx0Um9sZUFzc3VtZXJzIiwgIl9fZXNtTWluIiwgImluaXRfZGVmYXVsdFN0c1JvbGVBc3N1bWVycyIsICJpbml0X1NUU0NsaWVudCIsICJiYXNlQ3RvciIsICJjdXN0b21pemF0aW9ucyIsICJjb25maWciLCAiY3VzdG9taXphdGlvbiIsICJzdHNPcHRpb25zIiwgInN0c1BsdWdpbnMiLCAiU1RTQ2xpZW50IiwgInByb3ZpZGVyIiwgImlucHV0IiwgInN0c19leHBvcnRzIiwgIl9fZXhwb3J0IiwgIkFzc3VtZVJvbGVDb21tYW5kIiwgIkFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlDb21tYW5kIiwgIkV4cGlyZWRUb2tlbkV4Y2VwdGlvbiIsICJJRFBDb21tdW5pY2F0aW9uRXJyb3JFeGNlcHRpb24iLCAiSURQUmVqZWN0ZWRDbGFpbUV4Y2VwdGlvbiIsICJJbnZhbGlkSWRlbnRpdHlUb2tlbkV4Y2VwdGlvbiIsICJNYWxmb3JtZWRQb2xpY3lEb2N1bWVudEV4Y2VwdGlvbiIsICJQYWNrZWRQb2xpY3lUb29MYXJnZUV4Y2VwdGlvbiIsICJSZWdpb25EaXNhYmxlZEV4Y2VwdGlvbiIsICJTVFMiLCAiU1RTQ2xpZW50IiwgIlNUU1NlcnZpY2VFeGNlcHRpb24iLCAiX19DbGllbnQiLCAiZGVjb3JhdGVEZWZhdWx0Q3JlZGVudGlhbFByb3ZpZGVyIiwgImdldERlZmF1bHRSb2xlQXNzdW1lciIsICJnZXREZWZhdWx0Um9sZUFzc3VtZXJXaXRoV2ViSWRlbnRpdHkiLCAiaW5pdF9zdHMiLCAiX19lc21NaW4iLCAiaW5pdF9TVFNDbGllbnQiLCAiaW5pdF9TVFMiLCAiaW5pdF9jb21tYW5kcyIsICJpbml0X2Vycm9ycyIsICJpbml0X2RlZmF1bHRSb2xlQXNzdW1lcnMiLCAiaW5pdF9TVFNTZXJ2aWNlRXhjZXB0aW9uIiwgInJlcXVpcmVfZGlzdF9janMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgInNoYXJlZEluaUZpbGVMb2FkZXIiLCAicHJvcGVydHlQcm92aWRlciIsICJjaGlsZF9wcm9jZXNzIiwgInV0aWwiLCAiY2xpZW50IiwgImdldFZhbGlkYXRlZFByb2Nlc3NDcmVkZW50aWFscyIsICJwcm9maWxlTmFtZSIsICJkYXRhIiwgInByb2ZpbGVzIiwgImN1cnJlbnRUaW1lIiwgImFjY291bnRJZCIsICJjcmVkZW50aWFscyIsICJyZXNvbHZlUHJvY2Vzc0NyZWRlbnRpYWxzIiwgImxvZ2dlciIsICJwcm9maWxlIiwgImNyZWRlbnRpYWxQcm9jZXNzIiwgImV4ZWNQcm9taXNlIiwgInN0ZG91dCIsICJlcnJvciIsICJmcm9tUHJvY2VzcyIsICJpbml0IiwgImNhbGxlckNsaWVudENvbmZpZyIsICJyZXF1aXJlX2Zyb21XZWJUb2tlbiIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAiX19jcmVhdGVCaW5kaW5nIiwgIm8iLCAibSIsICJrIiwgImsyIiwgImRlc2MiLCAiX19zZXRNb2R1bGVEZWZhdWx0IiwgInYiLCAiX19pbXBvcnRTdGFyIiwgIm93bktleXMiLCAiYXIiLCAibW9kIiwgInJlc3VsdCIsICJpIiwgImZyb21XZWJUb2tlbiIsICJpbml0IiwgImF3c0lkZW50aXR5UHJvcGVydGllcyIsICJyb2xlQXJuIiwgInJvbGVTZXNzaW9uTmFtZSIsICJ3ZWJJZGVudGl0eVRva2VuIiwgInByb3ZpZGVySWQiLCAicG9saWN5QXJucyIsICJwb2xpY3kiLCAiZHVyYXRpb25TZWNvbmRzIiwgInJvbGVBc3N1bWVyV2l0aFdlYklkZW50aXR5IiwgImdldERlZmF1bHRSb2xlQXNzdW1lcldpdGhXZWJJZGVudGl0eSIsICJyZXF1aXJlX2Zyb21Ub2tlbkZpbGUiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgImNsaWVudF8xIiwgInByb3BlcnR5X3Byb3ZpZGVyXzEiLCAic2hhcmVkX2luaV9maWxlX2xvYWRlcl8xIiwgImZzXzEiLCAiZnJvbVdlYlRva2VuXzEiLCAiRU5WX1RPS0VOX0ZJTEUiLCAiRU5WX1JPTEVfQVJOIiwgIkVOVl9ST0xFX1NFU1NJT05fTkFNRSIsICJmcm9tVG9rZW5GaWxlIiwgImluaXQiLCAiYXdzSWRlbnRpdHlQcm9wZXJ0aWVzIiwgIndlYklkZW50aXR5VG9rZW5GaWxlIiwgInJvbGVBcm4iLCAicm9sZVNlc3Npb25OYW1lIiwgImNyZWRlbnRpYWxzIiwgInJlcXVpcmVfZGlzdF9janMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgImZyb21Ub2tlbkZpbGUiLCAiZnJvbVdlYlRva2VuIiwgImsiLCAicmVxdWlyZV9kaXN0X2NqcyIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAic2hhcmVkSW5pRmlsZUxvYWRlciIsICJwcm9wZXJ0eVByb3ZpZGVyIiwgImNsaWVudCIsICJjcmVkZW50aWFsUHJvdmlkZXJMb2dpbiIsICJyZXNvbHZlQ3JlZGVudGlhbFNvdXJjZSIsICJjcmVkZW50aWFsU291cmNlIiwgInByb2ZpbGVOYW1lIiwgImxvZ2dlciIsICJzb3VyY2VQcm92aWRlcnNNYXAiLCAib3B0aW9ucyIsICJmcm9tSHR0cCIsICJmcm9tQ29udGFpbmVyTWV0YWRhdGEiLCAic2V0TmFtZWRQcm92aWRlciIsICJmcm9tSW5zdGFuY2VNZXRhZGF0YSIsICJmcm9tRW52IiwgImNyZWRzIiwgImlzQXNzdW1lUm9sZVByb2ZpbGUiLCAiYXJnIiwgInByb2ZpbGUiLCAiaXNBc3N1bWVSb2xlV2l0aFNvdXJjZVByb2ZpbGUiLCAiaXNDcmVkZW50aWFsU291cmNlUHJvZmlsZSIsICJ3aXRoU291cmNlUHJvZmlsZSIsICJ3aXRoUHJvdmlkZXJQcm9maWxlIiwgInJlc29sdmVBc3N1bWVSb2xlQ3JlZGVudGlhbHMiLCAicHJvZmlsZXMiLCAiY2FsbGVyQ2xpZW50Q29uZmlnIiwgInZpc2l0ZWRQcm9maWxlcyIsICJyZXNvbHZlUHJvZmlsZURhdGEiLCAicHJvZmlsZURhdGEiLCAic291cmNlX3Byb2ZpbGUiLCAicmVnaW9uIiwgImdldERlZmF1bHRSb2xlQXNzdW1lciIsICJzb3VyY2VDcmVkc1Byb3ZpZGVyIiwgImlzQ3JlZGVudGlhbFNvdXJjZVdpdGhvdXRSb2xlQXJuIiwgInBhcmFtcyIsICJtZmFfc2VyaWFsIiwgInNvdXJjZUNyZWRzIiwgInNlY3Rpb24iLCAiaXNMb2dpblByb2ZpbGUiLCAiZGF0YSIsICJyZXNvbHZlTG9naW5DcmVkZW50aWFscyIsICJjcmVkZW50aWFscyIsICJpc1Byb2Nlc3NQcm9maWxlIiwgInJlc29sdmVQcm9jZXNzQ3JlZGVudGlhbHMiLCAiZnJvbVByb2Nlc3MiLCAicmVzb2x2ZVNzb0NyZWRlbnRpYWxzIiwgImZyb21TU08iLCAiaXNTc29Qcm9maWxlIiwgImlzU3RhdGljQ3JlZHNQcm9maWxlIiwgInJlc29sdmVTdGF0aWNDcmVkZW50aWFscyIsICJpc1dlYklkZW50aXR5UHJvZmlsZSIsICJyZXNvbHZlV2ViSWRlbnRpdHlDcmVkZW50aWFscyIsICJmcm9tVG9rZW5GaWxlIiwgImlzQXNzdW1lUm9sZVJlY3Vyc2l2ZUNhbGwiLCAiZnJvbUluaSIsICJpbml0IiwgInJlcXVpcmVfZGlzdF9janMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgImNyZWRlbnRpYWxQcm92aWRlckVudiIsICJwcm9wZXJ0eVByb3ZpZGVyIiwgInNoYXJlZEluaUZpbGVMb2FkZXIiLCAiRU5WX0lNRFNfRElTQUJMRUQiLCAicmVtb3RlUHJvdmlkZXIiLCAiaW5pdCIsICJFTlZfQ01EU19GVUxMX1VSSSIsICJFTlZfQ01EU19SRUxBVElWRV9VUkkiLCAiZnJvbUNvbnRhaW5lck1ldGFkYXRhIiwgImZyb21JbnN0YW5jZU1ldGFkYXRhIiwgImZyb21IdHRwIiwgIm1lbW9pemVDaGFpbiIsICJwcm92aWRlcnMiLCAidHJlYXRBc0V4cGlyZWQiLCAiY2hhaW4iLCAiaW50ZXJuYWxDcmVhdGVDaGFpbiIsICJhY3RpdmVMb2NrIiwgInBhc3NpdmVMb2NrIiwgImNyZWRlbnRpYWxzIiwgInByb3ZpZGVyIiwgIm9wdGlvbnMiLCAiYXdzSWRlbnRpdHlQcm9wZXJ0aWVzIiwgImxhc3RQcm92aWRlckVycm9yIiwgImVyciIsICJtdWx0aXBsZUNyZWRlbnRpYWxTb3VyY2VXYXJuaW5nRW1pdHRlZCIsICJkZWZhdWx0UHJvdmlkZXIiLCAic3NvU3RhcnRVcmwiLCAic3NvQWNjb3VudElkIiwgInNzb1JlZ2lvbiIsICJzc29Sb2xlTmFtZSIsICJzc29TZXNzaW9uIiwgImZyb21TU08iLCAiZnJvbUluaSIsICJmcm9tUHJvY2VzcyIsICJmcm9tVG9rZW5GaWxlIiwgImNyZWRlbnRpYWxzVHJlYXRlZEFzRXhwaXJlZCIsICJjcmVkZW50aWFsc1dpbGxOZWVkUmVmcmVzaCIsICJyZXF1aXJlX3J1bGVzZXQiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgInciLCAieCIsICJ5IiwgInoiLCAiQSIsICJCIiwgImEiLCAiYiIsICJjIiwgImQiLCAiZSIsICJmIiwgImciLCAiaCIsICJpIiwgImoiLCAiayIsICJsIiwgIm0iLCAibiIsICJvIiwgInAiLCAicSIsICJyIiwgInMiLCAidCIsICJ1IiwgInYiLCAiX2RhdGEiLCAicmVxdWlyZV9lbmRwb2ludFJlc29sdmVyIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJ1dGlsX2VuZHBvaW50c18xIiwgInV0aWxfZW5kcG9pbnRzXzIiLCAicnVsZXNldF8xIiwgImNhY2hlIiwgImRlZmF1bHRFbmRwb2ludFJlc29sdmVyIiwgImVuZHBvaW50UGFyYW1zIiwgImNvbnRleHQiLCAicmVxdWlyZV9ydW50aW1lQ29uZmlnX3NoYXJlZCIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAiY29yZV8xIiwgInByb3RvY29sc18xIiwgInNtaXRoeV9jbGllbnRfMSIsICJ1cmxfcGFyc2VyXzEiLCAidXRpbF9iYXNlNjRfMSIsICJ1dGlsX3V0ZjhfMSIsICJodHRwQXV0aFNjaGVtZVByb3ZpZGVyXzEiLCAiZW5kcG9pbnRSZXNvbHZlcl8xIiwgImdldFJ1bnRpbWVDb25maWciLCAiY29uZmlnIiwgImlwYyIsICJyZXF1aXJlX3J1bnRpbWVDb25maWciLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgInRzbGliXzEiLCAicGFja2FnZV9qc29uXzEiLCAiY29yZV8xIiwgImNyZWRlbnRpYWxfcHJvdmlkZXJfbm9kZV8xIiwgInV0aWxfdXNlcl9hZ2VudF9ub2RlXzEiLCAiY29uZmlnX3Jlc29sdmVyXzEiLCAiaGFzaF9ub2RlXzEiLCAibWlkZGxld2FyZV9jb21wcmVzc2lvbl8xIiwgIm1pZGRsZXdhcmVfcmV0cnlfMSIsICJub2RlX2NvbmZpZ19wcm92aWRlcl8xIiwgIm5vZGVfaHR0cF9oYW5kbGVyXzEiLCAic21pdGh5X2NsaWVudF8xIiwgInV0aWxfYm9keV9sZW5ndGhfbm9kZV8xIiwgInV0aWxfZGVmYXVsdHNfbW9kZV9ub2RlXzEiLCAidXRpbF9yZXRyeV8xIiwgInJ1bnRpbWVDb25maWdfc2hhcmVkXzEiLCAiZ2V0UnVudGltZUNvbmZpZyIsICJjb25maWciLCAiZGVmYXVsdHNNb2RlIiwgImRlZmF1bHRDb25maWdQcm92aWRlciIsICJjbGllbnRTaGFyZWRWYWx1ZXMiLCAibG9hZGVyQ29uZmlnIiwgInJlcXVpcmVfZGlzdF9janMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgIm1pZGRsZXdhcmVIb3N0SGVhZGVyIiwgIm1pZGRsZXdhcmVMb2dnZXIiLCAibWlkZGxld2FyZVJlY3Vyc2lvbkRldGVjdGlvbiIsICJtaWRkbGV3YXJlVXNlckFnZW50IiwgImNvbmZpZ1Jlc29sdmVyIiwgImNvcmUiLCAic2NoZW1hIiwgIm1pZGRsZXdhcmVDb21wcmVzc2lvbiIsICJtaWRkbGV3YXJlQ29udGVudExlbmd0aCIsICJtaWRkbGV3YXJlRW5kcG9pbnQiLCAibWlkZGxld2FyZVJldHJ5IiwgInNtaXRoeUNsaWVudCIsICJodHRwQXV0aFNjaGVtZVByb3ZpZGVyIiwgInJ1bnRpbWVDb25maWciLCAicmVnaW9uQ29uZmlnUmVzb2x2ZXIiLCAicHJvdG9jb2xIdHRwIiwgInV0aWxXYWl0ZXIiLCAicmVzb2x2ZUNsaWVudEVuZHBvaW50UGFyYW1ldGVycyIsICJvcHRpb25zIiwgImNvbW1vblBhcmFtcyIsICJnZXRIdHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24iLCAiX2h0dHBBdXRoU2NoZW1lcyIsICJfaHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJfY3JlZGVudGlhbHMiLCAiaHR0cEF1dGhTY2hlbWUiLCAiaW5kZXgiLCAic2NoZW1lIiwgImNyZWRlbnRpYWxzIiwgInJlc29sdmVIdHRwQXV0aFJ1bnRpbWVDb25maWciLCAiY29uZmlnIiwgInJlc29sdmVSdW50aW1lRXh0ZW5zaW9ucyIsICJleHRlbnNpb25zIiwgImV4dGVuc2lvbkNvbmZpZ3VyYXRpb24iLCAiZXh0ZW5zaW9uIiwgIkNsb3VkV2F0Y2hDbGllbnQiLCAiY29uZmlndXJhdGlvbiIsICJfY29uZmlnXzAiLCAiX2NvbmZpZ18xIiwgIl9jb25maWdfMiIsICJfY29uZmlnXzMiLCAiX2NvbmZpZ180IiwgIl9jb25maWdfNSIsICJfY29uZmlnXzYiLCAiX2NvbmZpZ183IiwgIl9jb25maWdfOCIsICJfY29uZmlnXzkiLCAiQ2xvdWRXYXRjaFNlcnZpY2VFeGNlcHRpb24kMSIsICJDbG91ZFdhdGNoU2VydmljZUV4Y2VwdGlvbiIsICJDb25jdXJyZW50TW9kaWZpY2F0aW9uRXhjZXB0aW9uJDEiLCAiQ29uY3VycmVudE1vZGlmaWNhdGlvbkV4Y2VwdGlvbiIsICJvcHRzIiwgIkNvbmZsaWN0RXhjZXB0aW9uJDEiLCAiQ29uZmxpY3RFeGNlcHRpb24iLCAiRGFzaGJvYXJkSW52YWxpZElucHV0RXJyb3IkMSIsICJEYXNoYm9hcmRJbnZhbGlkSW5wdXRFcnJvciIsICJEYXNoYm9hcmROb3RGb3VuZEVycm9yJDEiLCAiRGFzaGJvYXJkTm90Rm91bmRFcnJvciIsICJSZXNvdXJjZU5vdEZvdW5kJDEiLCAiUmVzb3VyY2VOb3RGb3VuZCIsICJJbnRlcm5hbFNlcnZpY2VGYXVsdCQxIiwgIkludGVybmFsU2VydmljZUZhdWx0IiwgIkludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkV4Y2VwdGlvbiQxIiwgIkludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkV4Y2VwdGlvbiIsICJJbnZhbGlkUGFyYW1ldGVyVmFsdWVFeGNlcHRpb24kMSIsICJJbnZhbGlkUGFyYW1ldGVyVmFsdWVFeGNlcHRpb24iLCAiTWlzc2luZ1JlcXVpcmVkUGFyYW1ldGVyRXhjZXB0aW9uJDEiLCAiTWlzc2luZ1JlcXVpcmVkUGFyYW1ldGVyRXhjZXB0aW9uIiwgIlJlc291cmNlTm90Rm91bmRFeGNlcHRpb24kMSIsICJSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uIiwgIkludmFsaWROZXh0VG9rZW4kMSIsICJJbnZhbGlkTmV4dFRva2VuIiwgIkxpbWl0RXhjZWVkZWRFeGNlcHRpb24kMSIsICJMaW1pdEV4Y2VlZGVkRXhjZXB0aW9uIiwgIkxpbWl0RXhjZWVkZWRGYXVsdCQxIiwgIkxpbWl0RXhjZWVkZWRGYXVsdCIsICJJbnZhbGlkRm9ybWF0RmF1bHQkMSIsICJJbnZhbGlkRm9ybWF0RmF1bHQiLCAiX0EiLCAiX0FBIiwgIl9BQVYiLCAiX0FBbCIsICJfQUMiLCAiX0FDQSIsICJfQUNJIiwgIl9BQ1VUIiwgIl9BQ2wiLCAiX0FEIiwgIl9BREMiLCAiX0FERVRSIiwgIl9BRFQiLCAiX0FEbCIsICJfQURuIiwgIl9BRSIsICJfQUhJIiwgIl9BSElsIiwgIl9BSSIsICJfQU4iLCAiX0FOUCIsICJfQU5sIiwgIl9BT1RMIiwgIl9BUCIsICJfQVIiLCAiX0FTIiwgIl9BU0IiLCAiX0FTRVAiLCAiX0FTUiIsICJfQVNXUCIsICJfQVNkIiwgIl9BU2ciLCAiX0FUIiwgIl9BVGwiLCAiX0FVQyIsICJfQVYiLCAiX0FWcCIsICJfQXIiLCAiX0F0IiwgIl9CRiIsICJfQyIsICJfQ0EiLCAiX0NBbyIsICJfQ0FvbSIsICJfQ0QiLCAiX0NFIiwgIl9DSSIsICJfQ01FIiwgIl9DTyIsICJfQ09BTiIsICJfQ28iLCAiX0NvZCIsICJfQ291IiwgIl9EIiwgIl9EQSIsICJfREFBIiwgIl9EQUFJIiwgIl9EQUMiLCAiX0RBQ0kiLCAiX0RBQ08iLCAiX0RBRCIsICJfREFESSIsICJfREFESWUiLCAiX0RBRE8iLCAiX0RBRE9lIiwgIl9EQURlIiwgIl9EQUZNIiwgIl9EQUZNSSIsICJfREFGTU8iLCAiX0RBSCIsICJfREFISSIsICJfREFITyIsICJfREFJIiwgIl9EQUllIiwgIl9EQU8iLCAiX0RBZSIsICJfREFlcyIsICJfREIiLCAiX0REIiwgIl9EREkiLCAiX0RETyIsICJfREUiLCAiX0RFYSIsICJfREYiLCAiX0RGaSIsICJfRElJRSIsICJfRElSIiwgIl9ESVJJIiwgIl9ESVJJZSIsICJfRElSSWkiLCAiX0RJUk8iLCAiX0RJUk9lIiwgIl9ESVJPaSIsICJfRElSZSIsICJfRElSaSIsICJfRE1TIiwgIl9ETVNJIiwgIl9ETVNPIiwgIl9ETiIsICJfRE5GRSIsICJfRE5QIiwgIl9ETmEiLCAiX0RQIiwgIl9EVEEiLCAiX0RWTSIsICJfRFZNYSIsICJfRGEiLCAiX0RhdCIsICJfRGUiLCAiX0RpIiwgIl9FIiwgIl9FQUEiLCAiX0VBQUkiLCAiX0VEIiwgIl9FRiIsICJfRUlSIiwgIl9FSVJJIiwgIl9FSVJPIiwgIl9FTFNDUCIsICJfRU1EIiwgIl9FTURMIiwgIl9FUCIsICJfRVMiLCAiX0VTdiIsICJfRVN4IiwgIl9FVCIsICJfRVRSIiwgIl9FVHgiLCAiX0VuIiwgIl9FeCIsICJfRiIsICJfRkEiLCAiX0ZDIiwgIl9GRCIsICJfRlIiLCAiX0dEIiwgIl9HREkiLCAiX0dETyIsICJfR0lSUiIsICJfR0lSUkkiLCAiX0dJUlJPIiwgIl9HTUQiLCAiX0dNREkiLCAiX0dNRE8iLCAiX0dNUyIsICJfR01TSSIsICJfR01TSWUiLCAiX0dNU08iLCAiX0dNU09lIiwgIl9HTVNlIiwgIl9HTVdJIiwgIl9HTVdJSSIsICJfR01XSU8iLCAiX0hEIiwgIl9ISVQiLCAiX0hTIiwgIl9JIiwgIl9JREEiLCAiX0lGIiwgIl9JRkYiLCAiX0lMQSIsICJfSUxBTSIsICJfSU0iLCAiX0lOVCIsICJfSVBDRSIsICJfSVBWRSIsICJfSVIiLCAiX0lSQyIsICJfSVJDRCIsICJfSVJDRG4iLCAiX0lSQ24iLCAiX0lSTUQiLCAiX0lSTURuIiwgIl9JUm4iLCAiX0lTRiIsICJfSyIsICJfS0EiLCAiX0tMIiwgIl9LZSIsICJfTCIsICJfTEQiLCAiX0xESSIsICJfTERPIiwgIl9MRUUiLCAiX0xFRiIsICJfTE0iLCAiX0xNSSIsICJfTE1JUiIsICJfTE1JUkkiLCAiX0xNSVJPIiwgIl9MTU8iLCAiX0xNUyIsICJfTE1TSSIsICJfTE1TTyIsICJfTE1pIiwgIl9MTyIsICJfTFRGUiIsICJfTFRGUkkiLCAiX0xURlJPIiwgIl9MVUQiLCAiX00iLCAiX01BIiwgIl9NQWUiLCAiX01DIiwgIl9NQ0MiLCAiX01DViIsICJfTUQiLCAiX01EUSIsICJfTURRZSIsICJfTURSIiwgIl9NRFJNIiwgIl9NRFJlIiwgIl9NRGEiLCAiX01EZSIsICJfTURlcyIsICJfTURldCIsICJfTU1BRCIsICJfTU4iLCAiX01OZSIsICJfTVIiLCAiX01SRCIsICJfTVJEYSIsICJfTVJQRSIsICJfTVJTIiwgIl9NUmEiLCAiX01SYW4iLCAiX01SYW5hIiwgIl9NUyIsICJfTVNFIiwgIl9NU0VlIiwgIl9NU0YiLCAiX01TRmUiLCAiX01TU0MiLCAiX01TU0NlIiwgIl9NU1NJTSIsICJfTVNTTSIsICJfTVQiLCAiX01XIiwgIl9NV0kiLCAiX01hIiwgIl9NZSIsICJfTWVzIiwgIl9NZXQiLCAiX01pIiwgIl9OIiwgIl9OVCIsICJfTmEiLCAiX05hbSIsICJfT0EiLCAiX09BdyIsICJfT0IiLCAiX09GIiwgIl9PS0EiLCAiX1AiLCAiX1BBRCIsICJfUEFESSIsICJfUEFETyIsICJfUENBIiwgIl9QQ0FJIiwgIl9QRCIsICJfUERJIiwgIl9QRE8iLCAiX1BGIiwgIl9QSVIiLCAiX1BJUkkiLCAiX1BJUk8iLCAiX1BNQSIsICJfUE1BSSIsICJfUE1EIiwgIl9QTURJIiwgIl9QTUlSIiwgIl9QTUlSSSIsICJfUE1JUk8iLCAiX1BNUyIsICJfUE1TSSIsICJfUE1TTyIsICJfUE9BTiIsICJfUFMiLCAiX1IiLCAiX1JBIiwgIl9SQVJOIiwgIl9SQWUiLCAiX1JEIiwgIl9SRHUiLCAiX1JJIiwgIl9STiIsICJfUk5GIiwgIl9STkZFIiwgIl9STnUiLCAiX1JTIiwgIl9SVCIsICJfUyIsICJfU0FTIiwgIl9TQVNJIiwgIl9TQiIsICJfU0MiLCAiX1NDdCIsICJfU0N0YSIsICJfU0QiLCAiX1NFViIsICJfU01BRCIsICJfU01TIiwgIl9TTVNJIiwgIl9TTVNJdCIsICJfU01TTyIsICJfU01TT3QiLCAiX1NNU3QiLCAiX1NSIiwgIl9TUkQiLCAiX1NSdCIsICJfU1MiLCAiX1NUIiwgIl9TVFQiLCAiX1NVVCIsICJfU1YiLCAiX1NWdCIsICJfU2MiLCAiX1NpIiwgIl9TdCIsICJfU3RhIiwgIl9TdGF0IiwgIl9TdSIsICJfVCIsICJfVEsiLCAiX1RMIiwgIl9UTUQiLCAiX1RNSSIsICJfVE4iLCAiX1RSIiwgIl9UUkkiLCAiX1RSTyIsICJfVGEiLCAiX1RhZyIsICJfVGgiLCAiX1RpIiwgIl9UaW0iLCAiX1UiLCAiX1VDIiwgIl9VUiIsICJfVVJJIiwgIl9VUk8iLCAiX1YiLCAiX1ZhIiwgIl9hUUUiLCAiX2MiLCAiX2RWTSIsICJfZSIsICJfaEUiLCAiX20iLCAiX3MiLCAiX3NtIiwgIm4wIiwgIkFsYXJtQ29udHJpYnV0b3IiLCAiQWxhcm1IaXN0b3J5SXRlbSIsICJBbm9tYWx5RGV0ZWN0b3IiLCAiRGltZW5zaW9ucyIsICJBbm9tYWx5RGV0ZWN0b3JDb25maWd1cmF0aW9uIiwgIk1ldHJpY0NoYXJhY3RlcmlzdGljcyIsICJTaW5nbGVNZXRyaWNBbm9tYWx5RGV0ZWN0b3IiLCAiTWV0cmljTWF0aEFub21hbHlEZXRlY3RvciIsICJBbm9tYWx5RGV0ZWN0b3JFeGNsdWRlZFRpbWVSYW5nZXMiLCAiQ29tcG9zaXRlQWxhcm0iLCAiRGFzaGJvYXJkRW50cnkiLCAiRGFzaGJvYXJkVmFsaWRhdGlvbk1lc3NhZ2VzIiwgIkRhc2hib2FyZFZhbGlkYXRpb25NZXNzYWdlIiwgIkRhdGFwb2ludCIsICJEZWxldGVBbGFybXNJbnB1dCIsICJEZWxldGVBbm9tYWx5RGV0ZWN0b3JJbnB1dCIsICJEZWxldGVBbm9tYWx5RGV0ZWN0b3JPdXRwdXQiLCAiRGVsZXRlRGFzaGJvYXJkc0lucHV0IiwgIkRlbGV0ZURhc2hib2FyZHNPdXRwdXQiLCAiRGVsZXRlSW5zaWdodFJ1bGVzSW5wdXQiLCAiRGVsZXRlSW5zaWdodFJ1bGVzT3V0cHV0IiwgIkJhdGNoRmFpbHVyZXMiLCAiRGVsZXRlTWV0cmljU3RyZWFtSW5wdXQiLCAiRGVsZXRlTWV0cmljU3RyZWFtT3V0cHV0IiwgIkRlc2NyaWJlQWxhcm1Db250cmlidXRvcnNJbnB1dCIsICJEZXNjcmliZUFsYXJtQ29udHJpYnV0b3JzT3V0cHV0IiwgIkFsYXJtQ29udHJpYnV0b3JzIiwgIkRlc2NyaWJlQWxhcm1IaXN0b3J5SW5wdXQiLCAiRGVzY3JpYmVBbGFybUhpc3RvcnlPdXRwdXQiLCAiQWxhcm1IaXN0b3J5SXRlbXMiLCAiRGVzY3JpYmVBbGFybXNGb3JNZXRyaWNJbnB1dCIsICJEZXNjcmliZUFsYXJtc0Zvck1ldHJpY091dHB1dCIsICJNZXRyaWNBbGFybXMiLCAiRGVzY3JpYmVBbGFybXNJbnB1dCIsICJEZXNjcmliZUFsYXJtc091dHB1dCIsICJDb21wb3NpdGVBbGFybXMiLCAiRGVzY3JpYmVBbm9tYWx5RGV0ZWN0b3JzSW5wdXQiLCAiRGVzY3JpYmVBbm9tYWx5RGV0ZWN0b3JzT3V0cHV0IiwgIkFub21hbHlEZXRlY3RvcnMiLCAiRGVzY3JpYmVJbnNpZ2h0UnVsZXNJbnB1dCIsICJEZXNjcmliZUluc2lnaHRSdWxlc091dHB1dCIsICJJbnNpZ2h0UnVsZXMiLCAiRGltZW5zaW9uIiwgIkRpbWVuc2lvbkZpbHRlciIsICJEaXNhYmxlQWxhcm1BY3Rpb25zSW5wdXQiLCAiRGlzYWJsZUluc2lnaHRSdWxlc0lucHV0IiwgIkRpc2FibGVJbnNpZ2h0UnVsZXNPdXRwdXQiLCAiRW5hYmxlQWxhcm1BY3Rpb25zSW5wdXQiLCAiRW5hYmxlSW5zaWdodFJ1bGVzSW5wdXQiLCAiRW5hYmxlSW5zaWdodFJ1bGVzT3V0cHV0IiwgIkVudGl0eSIsICJFbnRpdHlNZXRyaWNEYXRhIiwgIk1ldHJpY0RhdGEiLCAiR2V0RGFzaGJvYXJkSW5wdXQiLCAiR2V0RGFzaGJvYXJkT3V0cHV0IiwgIkdldEluc2lnaHRSdWxlUmVwb3J0SW5wdXQiLCAiR2V0SW5zaWdodFJ1bGVSZXBvcnRPdXRwdXQiLCAiSW5zaWdodFJ1bGVDb250cmlidXRvcnMiLCAiSW5zaWdodFJ1bGVNZXRyaWNEYXRhcG9pbnRzIiwgIkdldE1ldHJpY0RhdGFJbnB1dCIsICJNZXRyaWNEYXRhUXVlcmllcyIsICJMYWJlbE9wdGlvbnMiLCAiR2V0TWV0cmljRGF0YU91dHB1dCIsICJNZXRyaWNEYXRhUmVzdWx0cyIsICJNZXRyaWNEYXRhUmVzdWx0TWVzc2FnZXMiLCAiR2V0TWV0cmljU3RhdGlzdGljc0lucHV0IiwgIkdldE1ldHJpY1N0YXRpc3RpY3NPdXRwdXQiLCAiRGF0YXBvaW50cyIsICJHZXRNZXRyaWNTdHJlYW1JbnB1dCIsICJHZXRNZXRyaWNTdHJlYW1PdXRwdXQiLCAiTWV0cmljU3RyZWFtRmlsdGVycyIsICJNZXRyaWNTdHJlYW1TdGF0aXN0aWNzQ29uZmlndXJhdGlvbnMiLCAiR2V0TWV0cmljV2lkZ2V0SW1hZ2VJbnB1dCIsICJHZXRNZXRyaWNXaWRnZXRJbWFnZU91dHB1dCIsICJJbnNpZ2h0UnVsZSIsICJJbnNpZ2h0UnVsZUNvbnRyaWJ1dG9yIiwgIkluc2lnaHRSdWxlQ29udHJpYnV0b3JEYXRhcG9pbnRzIiwgIkluc2lnaHRSdWxlQ29udHJpYnV0b3JEYXRhcG9pbnQiLCAiSW5zaWdodFJ1bGVNZXRyaWNEYXRhcG9pbnQiLCAiTGlzdERhc2hib2FyZHNJbnB1dCIsICJMaXN0RGFzaGJvYXJkc091dHB1dCIsICJEYXNoYm9hcmRFbnRyaWVzIiwgIkxpc3RNYW5hZ2VkSW5zaWdodFJ1bGVzSW5wdXQiLCAiTGlzdE1hbmFnZWRJbnNpZ2h0UnVsZXNPdXRwdXQiLCAiTWFuYWdlZFJ1bGVEZXNjcmlwdGlvbnMiLCAiTGlzdE1ldHJpY3NJbnB1dCIsICJEaW1lbnNpb25GaWx0ZXJzIiwgIkxpc3RNZXRyaWNzT3V0cHV0IiwgIk1ldHJpY3MiLCAiTGlzdE1ldHJpY1N0cmVhbXNJbnB1dCIsICJMaXN0TWV0cmljU3RyZWFtc091dHB1dCIsICJNZXRyaWNTdHJlYW1FbnRyaWVzIiwgIkxpc3RUYWdzRm9yUmVzb3VyY2VJbnB1dCIsICJMaXN0VGFnc0ZvclJlc291cmNlT3V0cHV0IiwgIlRhZ0xpc3QiLCAiTWFuYWdlZFJ1bGUiLCAiTWFuYWdlZFJ1bGVEZXNjcmlwdGlvbiIsICJNYW5hZ2VkUnVsZVN0YXRlIiwgIk1lc3NhZ2VEYXRhIiwgIk1ldHJpYyIsICJNZXRyaWNBbGFybSIsICJNZXRyaWNEYXRhUXVlcnkiLCAiTWV0cmljU3RhdCIsICJNZXRyaWNEYXRhUmVzdWx0IiwgIk1ldHJpY0RhdHVtIiwgIlN0YXRpc3RpY1NldCIsICJNZXRyaWNTdHJlYW1FbnRyeSIsICJNZXRyaWNTdHJlYW1GaWx0ZXIiLCAiTWV0cmljU3RyZWFtU3RhdGlzdGljc0NvbmZpZ3VyYXRpb24iLCAiTWV0cmljU3RyZWFtU3RhdGlzdGljc0luY2x1ZGVNZXRyaWNzIiwgIk1ldHJpY1N0cmVhbVN0YXRpc3RpY3NNZXRyaWMiLCAiUGFydGlhbEZhaWx1cmUiLCAiUHV0QW5vbWFseURldGVjdG9ySW5wdXQiLCAiUHV0QW5vbWFseURldGVjdG9yT3V0cHV0IiwgIlB1dENvbXBvc2l0ZUFsYXJtSW5wdXQiLCAiUHV0RGFzaGJvYXJkSW5wdXQiLCAiUHV0RGFzaGJvYXJkT3V0cHV0IiwgIlB1dEluc2lnaHRSdWxlSW5wdXQiLCAiUHV0SW5zaWdodFJ1bGVPdXRwdXQiLCAiUHV0TWFuYWdlZEluc2lnaHRSdWxlc0lucHV0IiwgIk1hbmFnZWRSdWxlcyIsICJQdXRNYW5hZ2VkSW5zaWdodFJ1bGVzT3V0cHV0IiwgIlB1dE1ldHJpY0FsYXJtSW5wdXQiLCAiUHV0TWV0cmljRGF0YUlucHV0IiwgIkVudGl0eU1ldHJpY0RhdGFMaXN0IiwgIlB1dE1ldHJpY1N0cmVhbUlucHV0IiwgIlB1dE1ldHJpY1N0cmVhbU91dHB1dCIsICJSYW5nZSIsICJTZXRBbGFybVN0YXRlSW5wdXQiLCAiU3RhcnRNZXRyaWNTdHJlYW1zSW5wdXQiLCAiU3RhcnRNZXRyaWNTdHJlYW1zT3V0cHV0IiwgIlN0b3BNZXRyaWNTdHJlYW1zSW5wdXQiLCAiU3RvcE1ldHJpY1N0cmVhbXNPdXRwdXQiLCAiVGFnIiwgIlRhZ1Jlc291cmNlSW5wdXQiLCAiVGFnUmVzb3VyY2VPdXRwdXQiLCAiVW50YWdSZXNvdXJjZUlucHV0IiwgIlVudGFnUmVzb3VyY2VPdXRwdXQiLCAiX19Vbml0IiwgIkRlbGV0ZUFsYXJtcyIsICJEZWxldGVBbm9tYWx5RGV0ZWN0b3IiLCAiRGVsZXRlRGFzaGJvYXJkcyIsICJEZWxldGVJbnNpZ2h0UnVsZXMiLCAiRGVsZXRlTWV0cmljU3RyZWFtIiwgIkRlc2NyaWJlQWxhcm1Db250cmlidXRvcnMiLCAiRGVzY3JpYmVBbGFybUhpc3RvcnkiLCAiRGVzY3JpYmVBbGFybXMiLCAiRGVzY3JpYmVBbGFybXNGb3JNZXRyaWMiLCAiRGVzY3JpYmVBbm9tYWx5RGV0ZWN0b3JzIiwgIkRlc2NyaWJlSW5zaWdodFJ1bGVzIiwgIkRpc2FibGVBbGFybUFjdGlvbnMiLCAiRGlzYWJsZUluc2lnaHRSdWxlcyIsICJFbmFibGVBbGFybUFjdGlvbnMiLCAiRW5hYmxlSW5zaWdodFJ1bGVzIiwgIkdldERhc2hib2FyZCIsICJHZXRJbnNpZ2h0UnVsZVJlcG9ydCIsICJHZXRNZXRyaWNEYXRhIiwgIkdldE1ldHJpY1N0YXRpc3RpY3MiLCAiR2V0TWV0cmljU3RyZWFtIiwgIkdldE1ldHJpY1dpZGdldEltYWdlIiwgIkxpc3REYXNoYm9hcmRzIiwgIkxpc3RNYW5hZ2VkSW5zaWdodFJ1bGVzIiwgIkxpc3RNZXRyaWNzIiwgIkxpc3RNZXRyaWNTdHJlYW1zIiwgIkxpc3RUYWdzRm9yUmVzb3VyY2UiLCAiUHV0QW5vbWFseURldGVjdG9yIiwgIlB1dENvbXBvc2l0ZUFsYXJtIiwgIlB1dERhc2hib2FyZCIsICJQdXRJbnNpZ2h0UnVsZSIsICJQdXRNYW5hZ2VkSW5zaWdodFJ1bGVzIiwgIlB1dE1ldHJpY0FsYXJtIiwgIlB1dE1ldHJpY0RhdGEiLCAiUHV0TWV0cmljU3RyZWFtIiwgIlNldEFsYXJtU3RhdGUiLCAiU3RhcnRNZXRyaWNTdHJlYW1zIiwgIlN0b3BNZXRyaWNTdHJlYW1zIiwgIlRhZ1Jlc291cmNlIiwgIlVudGFnUmVzb3VyY2UiLCAiRGVsZXRlQWxhcm1zQ29tbWFuZCIsICJDb21tYW5kIiwgImNzIiwgIm8iLCAiRGVsZXRlQW5vbWFseURldGVjdG9yQ29tbWFuZCIsICJEZWxldGVEYXNoYm9hcmRzQ29tbWFuZCIsICJEZWxldGVJbnNpZ2h0UnVsZXNDb21tYW5kIiwgIkRlbGV0ZU1ldHJpY1N0cmVhbUNvbW1hbmQiLCAiRGVzY3JpYmVBbGFybUNvbnRyaWJ1dG9yc0NvbW1hbmQiLCAiRGVzY3JpYmVBbGFybUhpc3RvcnlDb21tYW5kIiwgIkRlc2NyaWJlQWxhcm1zQ29tbWFuZCIsICJEZXNjcmliZUFsYXJtc0Zvck1ldHJpY0NvbW1hbmQiLCAiRGVzY3JpYmVBbm9tYWx5RGV0ZWN0b3JzQ29tbWFuZCIsICJEZXNjcmliZUluc2lnaHRSdWxlc0NvbW1hbmQiLCAiRGlzYWJsZUFsYXJtQWN0aW9uc0NvbW1hbmQiLCAiRGlzYWJsZUluc2lnaHRSdWxlc0NvbW1hbmQiLCAiRW5hYmxlQWxhcm1BY3Rpb25zQ29tbWFuZCIsICJFbmFibGVJbnNpZ2h0UnVsZXNDb21tYW5kIiwgIkdldERhc2hib2FyZENvbW1hbmQiLCAiR2V0SW5zaWdodFJ1bGVSZXBvcnRDb21tYW5kIiwgIkdldE1ldHJpY0RhdGFDb21tYW5kIiwgIkdldE1ldHJpY1N0YXRpc3RpY3NDb21tYW5kIiwgIkdldE1ldHJpY1N0cmVhbUNvbW1hbmQiLCAiR2V0TWV0cmljV2lkZ2V0SW1hZ2VDb21tYW5kIiwgIkxpc3REYXNoYm9hcmRzQ29tbWFuZCIsICJMaXN0TWFuYWdlZEluc2lnaHRSdWxlc0NvbW1hbmQiLCAiTGlzdE1ldHJpY3NDb21tYW5kIiwgIkxpc3RNZXRyaWNTdHJlYW1zQ29tbWFuZCIsICJMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZCIsICJQdXRBbm9tYWx5RGV0ZWN0b3JDb21tYW5kIiwgIlB1dENvbXBvc2l0ZUFsYXJtQ29tbWFuZCIsICJQdXREYXNoYm9hcmRDb21tYW5kIiwgIlB1dEluc2lnaHRSdWxlQ29tbWFuZCIsICJQdXRNYW5hZ2VkSW5zaWdodFJ1bGVzQ29tbWFuZCIsICJQdXRNZXRyaWNBbGFybUNvbW1hbmQiLCAiUHV0TWV0cmljRGF0YUNvbW1hbmQiLCAiUHV0TWV0cmljU3RyZWFtQ29tbWFuZCIsICJTZXRBbGFybVN0YXRlQ29tbWFuZCIsICJTdGFydE1ldHJpY1N0cmVhbXNDb21tYW5kIiwgIlN0b3BNZXRyaWNTdHJlYW1zQ29tbWFuZCIsICJUYWdSZXNvdXJjZUNvbW1hbmQiLCAiVW50YWdSZXNvdXJjZUNvbW1hbmQiLCAiY29tbWFuZHMiLCAiQ2xvdWRXYXRjaCIsICJwYWdpbmF0ZURlc2NyaWJlQWxhcm1IaXN0b3J5IiwgInBhZ2luYXRlRGVzY3JpYmVBbGFybXMiLCAicGFnaW5hdGVEZXNjcmliZUFub21hbHlEZXRlY3RvcnMiLCAicGFnaW5hdGVEZXNjcmliZUluc2lnaHRSdWxlcyIsICJwYWdpbmF0ZUdldE1ldHJpY0RhdGEiLCAicGFnaW5hdGVMaXN0RGFzaGJvYXJkcyIsICJwYWdpbmF0ZUxpc3RNYW5hZ2VkSW5zaWdodFJ1bGVzIiwgInBhZ2luYXRlTGlzdE1ldHJpY1N0cmVhbXMiLCAicGFnaW5hdGVMaXN0TWV0cmljcyIsICJjaGVja1N0YXRlJDEiLCAiY2xpZW50IiwgImlucHV0IiwgInJlYXNvbiIsICJyZXN1bHQiLCAiZXhjZXB0aW9uIiwgIndhaXRGb3JBbGFybUV4aXN0cyIsICJwYXJhbXMiLCAic2VydmljZURlZmF1bHRzIiwgIndhaXRVbnRpbEFsYXJtRXhpc3RzIiwgImNoZWNrU3RhdGUiLCAid2FpdEZvckNvbXBvc2l0ZUFsYXJtRXhpc3RzIiwgIndhaXRVbnRpbENvbXBvc2l0ZUFsYXJtRXhpc3RzIiwgIkFjdGlvbnNTdXBwcmVzc2VkQnkiLCAiQWxhcm1UeXBlIiwgIkhpc3RvcnlJdGVtVHlwZSIsICJTdGFuZGFyZFVuaXQiLCAiQW5vbWFseURldGVjdG9yU3RhdGVWYWx1ZSIsICJBbm9tYWx5RGV0ZWN0b3JUeXBlIiwgIkNvbXBhcmlzb25PcGVyYXRvciIsICJTdGF0ZVZhbHVlIiwgIlNjYW5CeSIsICJFdmFsdWF0aW9uU3RhdGUiLCAiU3RhdGlzdGljIiwgIlN0YXR1c0NvZGUiLCAiTWV0cmljU3RyZWFtT3V0cHV0Rm9ybWF0IiwgIlJlY2VudGx5QWN0aXZlIiwgInJlcXVpcmVfY2hhcnNldCIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgInByZWZlcnJlZENoYXJzZXRzIiwgInNpbXBsZUNoYXJzZXRSZWdFeHAiLCAicGFyc2VBY2NlcHRDaGFyc2V0IiwgImFjY2VwdCIsICJhY2NlcHRzIiwgImkiLCAiaiIsICJjaGFyc2V0IiwgInBhcnNlQ2hhcnNldCIsICJzdHIiLCAibWF0Y2giLCAicSIsICJwYXJhbXMiLCAicCIsICJnZXRDaGFyc2V0UHJpb3JpdHkiLCAiYWNjZXB0ZWQiLCAiaW5kZXgiLCAicHJpb3JpdHkiLCAic3BlYyIsICJzcGVjaWZ5IiwgInMiLCAicHJvdmlkZWQiLCAiaXNRdWFsaXR5IiwgImNvbXBhcmVTcGVjcyIsICJnZXRGdWxsQ2hhcnNldCIsICJwcmlvcml0aWVzIiwgInR5cGUiLCAiYSIsICJiIiwgInJlcXVpcmVfZW5jb2RpbmciLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJwcmVmZXJyZWRFbmNvZGluZ3MiLCAic2ltcGxlRW5jb2RpbmdSZWdFeHAiLCAicGFyc2VBY2NlcHRFbmNvZGluZyIsICJhY2NlcHQiLCAiYWNjZXB0cyIsICJoYXNJZGVudGl0eSIsICJtaW5RdWFsaXR5IiwgImkiLCAiaiIsICJlbmNvZGluZyIsICJwYXJzZUVuY29kaW5nIiwgInNwZWNpZnkiLCAic3RyIiwgIm1hdGNoIiwgInEiLCAicGFyYW1zIiwgInAiLCAiZ2V0RW5jb2RpbmdQcmlvcml0eSIsICJhY2NlcHRlZCIsICJpbmRleCIsICJwcmlvcml0eSIsICJzcGVjIiwgInMiLCAicHJvdmlkZWQiLCAicHJlZmVycmVkIiwgImNvbXBhcmF0b3IiLCAiYiIsICJhUHJlZmVycmVkIiwgImJQcmVmZXJyZWQiLCAiY29tcGFyZVNwZWNzIiwgImlzUXVhbGl0eSIsICJnZXRGdWxsRW5jb2RpbmciLCAicHJpb3JpdGllcyIsICJ0eXBlIiwgImEiLCAicmVxdWlyZV9sYW5ndWFnZSIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgInByZWZlcnJlZExhbmd1YWdlcyIsICJzaW1wbGVMYW5ndWFnZVJlZ0V4cCIsICJwYXJzZUFjY2VwdExhbmd1YWdlIiwgImFjY2VwdCIsICJhY2NlcHRzIiwgImkiLCAiaiIsICJsYW5ndWFnZSIsICJwYXJzZUxhbmd1YWdlIiwgInN0ciIsICJtYXRjaCIsICJwcmVmaXgiLCAic3VmZml4IiwgImZ1bGwiLCAicSIsICJwYXJhbXMiLCAicCIsICJnZXRMYW5ndWFnZVByaW9yaXR5IiwgImFjY2VwdGVkIiwgImluZGV4IiwgInByaW9yaXR5IiwgInNwZWMiLCAic3BlY2lmeSIsICJwcm92aWRlZCIsICJpc1F1YWxpdHkiLCAiY29tcGFyZVNwZWNzIiwgImdldEZ1bGxMYW5ndWFnZSIsICJwcmlvcml0aWVzIiwgInR5cGUiLCAiYSIsICJiIiwgInJlcXVpcmVfbWVkaWFUeXBlIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAicHJlZmVycmVkTWVkaWFUeXBlcyIsICJzaW1wbGVNZWRpYVR5cGVSZWdFeHAiLCAicGFyc2VBY2NlcHQiLCAiYWNjZXB0IiwgImFjY2VwdHMiLCAic3BsaXRNZWRpYVR5cGVzIiwgImkiLCAiaiIsICJtZWRpYVR5cGUiLCAicGFyc2VNZWRpYVR5cGUiLCAic3RyIiwgIm1hdGNoIiwgInBhcmFtcyIsICJxIiwgInN1YnR5cGUiLCAidHlwZSIsICJrdnBzIiwgInNwbGl0UGFyYW1ldGVycyIsICJzcGxpdEtleVZhbHVlUGFpciIsICJwYWlyIiwgImtleSIsICJ2YWwiLCAidmFsdWUiLCAiZ2V0TWVkaWFUeXBlUHJpb3JpdHkiLCAiYWNjZXB0ZWQiLCAiaW5kZXgiLCAicHJpb3JpdHkiLCAic3BlYyIsICJzcGVjaWZ5IiwgInAiLCAia2V5cyIsICJrIiwgInByb3ZpZGVkIiwgImlzUXVhbGl0eSIsICJjb21wYXJlU3BlY3MiLCAiZ2V0RnVsbFR5cGUiLCAicHJpb3JpdGllcyIsICJhIiwgImIiLCAicXVvdGVDb3VudCIsICJzdHJpbmciLCAiY291bnQiLCAicGFyYW1ldGVycyIsICJyZXF1aXJlX25lZ290aWF0b3IiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJwcmVmZXJyZWRDaGFyc2V0cyIsICJwcmVmZXJyZWRFbmNvZGluZ3MiLCAicHJlZmVycmVkTGFuZ3VhZ2VzIiwgInByZWZlcnJlZE1lZGlhVHlwZXMiLCAiTmVnb3RpYXRvciIsICJyZXF1ZXN0IiwgImF2YWlsYWJsZSIsICJzZXQiLCAib3B0cyIsICJvcHRpb25zIiwgInJlcXVpcmVfY29tcHJlc3NpYmxlIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiZGIiLCAiQ09NUFJFU1NJQkxFX1RZUEVfUkVHRVhQIiwgIkVYVFJBQ1RfVFlQRV9SRUdFWFAiLCAiY29tcHJlc3NpYmxlIiwgInR5cGUiLCAibWF0Y2giLCAibWltZSIsICJkYXRhIiwgInJlcXVpcmVfY29tbW9uIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJmb3JtYXQiLCAicHJvcCIsICJvYmoiLCAidHlwZSIsICJwcm9wcyIsICJub3RpY2UiLCAicmVxdWlyZV9wYWNrYWdlIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAicmVxdWlyZV9jb25zb2xlIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAib3MiLCAiTEVWRUwiLCAiTUVTU0FHRSIsICJUcmFuc3BvcnRTdHJlYW0iLCAib3B0aW9ucyIsICJpbmZvIiwgImNhbGxiYWNrIiwgInN0ckFycmF5IiwgImVyck1zZyIsICJzZXQiLCAiZWwiLCAicmVxdWlyZV90YWlsX2ZpbGUiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJmcyIsICJTdHJpbmdEZWNvZGVyIiwgIlN0cmVhbSIsICJub29wIiwgIm9wdGlvbnMiLCAiaXRlciIsICJidWZmZXIiLCAiZGVjb2RlIiwgInN0cmVhbSIsICJidWZmIiwgInBvcyIsICJyb3ciLCAiZXJyIiwgImZkIiwgInJlYWQiLCAiZXJyb3IiLCAiYnl0ZXMiLCAiZGF0YSIsICJsIiwgImkiLCAicmVxdWlyZV9maWxlIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiZnMiLCAicGF0aCIsICJhc3luY1NlcmllcyIsICJ6bGliIiwgIk1FU1NBR0UiLCAiU3RyZWFtIiwgIlBhc3NUaHJvdWdoIiwgIlRyYW5zcG9ydFN0cmVhbSIsICJkZWJ1ZyIsICJvcyIsICJ0YWlsRmlsZSIsICJvcHRpb25zIiwgInRocm93SWYiLCAidGFyZ2V0IiwgImFyZ3MiLCAibmFtZSIsICJjYWxsYmFjayIsICJpbmZvIiwgIm91dHB1dCIsICJieXRlcyIsICJsb2dnZWQiLCAid3JpdHRlbiIsICJub3JtYWxpemVRdWVyeSIsICJmaWxlIiwgImJ1ZmYiLCAicmVzdWx0cyIsICJyb3ciLCAic3RyZWFtIiwgImVyciIsICJkYXRhIiwgImwiLCAiaSIsICJhZGQiLCAiYXR0ZW1wdCIsICJsb2ciLCAiY2hlY2siLCAicHVzaCIsICJlIiwgIm9iaiIsICJrZXkiLCAidGltZSIsICJ0YWlsIiwgImxpbmUiLCAic2l6ZSIsICJmdWxscGF0aCIsICJzdGF0IiwgImNiIiwgInNvdXJjZSIsICJkZXN0IiwgImV4dCIsICJiYXNlbmFtZSIsICJ0YXNrcyIsICJudW0iLCAiaXNSb3RhdGlvbiIsICJvbGRlc3QiLCAiaXNPbGRlc3QiLCAiaXNaaXBwZWQiLCAiZmlsZVBhdGgiLCAieCIsICJmaWxlTmFtZSIsICJ0bXBwYXRoIiwgImV4aXN0cyIsICJzcmMiLCAiZ3ppcCIsICJpbnAiLCAib3V0IiwgImRpclBhdGgiLCAicmVxdWlyZV9odHRwIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiaHR0cCIsICJodHRwcyIsICJTdHJlYW0iLCAiVHJhbnNwb3J0U3RyZWFtIiwgImNvbmZpZ3VyZSIsICJvcHRpb25zIiwgImluZm8iLCAiY2FsbGJhY2siLCAiZXJyIiwgInJlcyIsICJhdXRoIiwgInBhdGgiLCAiYm9keSIsICJlIiwgInN0cmVhbSIsICJidWZmIiwgInJlcSIsICJkYXRhIiwgImwiLCAiaSIsICJtZSIsICJiYXRjaE9wdGlvbnNDb3B5IiwgImhlYWRlcnMiLCAianNvblN0cmluZ2lmeSIsICJyZXF1aXJlX3N0cmVhbSIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImlzU3RyZWFtIiwgIk1FU1NBR0UiLCAib3MiLCAiVHJhbnNwb3J0U3RyZWFtIiwgIm9wdGlvbnMiLCAiaW5mbyIsICJjYWxsYmFjayIsICJyZXF1aXJlX3RyYW5zcG9ydHMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgInJlcXVpcmVfY29uZmlnIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJsb2dmb3JtIiwgImNvbmZpZ3MiLCAicmVxdWlyZV9leGNlcHRpb25fc3RyZWFtIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiV3JpdGFibGUiLCAidHJhbnNwb3J0IiwgImluZm8iLCAiZW5jIiwgImNhbGxiYWNrIiwgInJlcXVpcmVfZXhjZXB0aW9uX2hhbmRsZXIiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJvcyIsICJhc3luY0ZvckVhY2giLCAiZGVidWciLCAib25jZSIsICJzdGFja1RyYWNlIiwgIkV4Y2VwdGlvblN0cmVhbSIsICJsb2dnZXIiLCAiYXJncyIsICJhcmciLCAiaGFuZGxlciIsICJ3cmFwcGVyIiwgImVyciIsICJtZXNzYWdlIiwgInNpdGUiLCAiaW5mbyIsICJoYW5kbGVycyIsICJkb0V4aXQiLCAidGltZW91dCIsICJncmFjZWZ1bEV4aXQiLCAibmV4dCIsICJkb25lIiwgInRyYW5zcG9ydCIsICJvbkRvbmUiLCAiZXZlbnQiLCAid3JhcCIsICJyZXF1aXJlX3JlamVjdGlvbl9zdHJlYW0iLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJXcml0YWJsZSIsICJ0cmFuc3BvcnQiLCAiaW5mbyIsICJlbmMiLCAiY2FsbGJhY2siLCAicmVxdWlyZV9yZWplY3Rpb25faGFuZGxlciIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgIm9zIiwgImFzeW5jRm9yRWFjaCIsICJkZWJ1ZyIsICJvbmNlIiwgInN0YWNrVHJhY2UiLCAiUmVqZWN0aW9uU3RyZWFtIiwgImxvZ2dlciIsICJhcmdzIiwgImFyZyIsICJoYW5kbGVyIiwgIndyYXBwZXIiLCAiZXJyIiwgIm1lc3NhZ2UiLCAic2l0ZSIsICJpbmZvIiwgImhhbmRsZXJzIiwgImRvRXhpdCIsICJ0aW1lb3V0IiwgImdyYWNlZnVsRXhpdCIsICJuZXh0IiwgImRvbmUiLCAidHJhbnNwb3J0IiwgIm9uRG9uZSIsICJldmVudCIsICJ3cmFwIiwgInJlcXVpcmVfcHJvZmlsZXIiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJQcm9maWxlciIsICJsb2dnZXIiLCAiTG9nZ2VyIiwgImFyZ3MiLCAiaW5mbyIsICJyZXF1aXJlX2xvZ2dlciIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgIlN0cmVhbSIsICJUcmFuc2Zvcm0iLCAiYXN5bmNGb3JFYWNoIiwgIkxFVkVMIiwgIlNQTEFUIiwgImlzU3RyZWFtIiwgIkV4Y2VwdGlvbkhhbmRsZXIiLCAiUmVqZWN0aW9uSGFuZGxlciIsICJMZWdhY3lUcmFuc3BvcnRTdHJlYW0iLCAiUHJvZmlsZXIiLCAid2FybiIsICJjb25maWciLCAiZm9ybWF0UmVnRXhwIiwgIkxvZ2dlciIsICJvcHRpb25zIiwgImRlZmF1bHRSZXF1ZXN0TWV0YWRhdGEiLCAibG9nZ2VyIiwgImluZm8iLCAiaW5mb0Nsb25lIiwgInNpbGVudCIsICJmb3JtYXQiLCAiZGVmYXVsdE1ldGEiLCAibGV2ZWxzIiwgImxldmVsIiwgImV4aXRPbkVycm9yIiwgInRyYW5zcG9ydHMiLCAiY29sb3JzIiwgImVtaXRFcnJzIiwgImZvcm1hdHRlcnMiLCAicGFkTGV2ZWxzIiwgInJld3JpdGVycyIsICJzdHJpcENvbG9ycyIsICJleGNlcHRpb25IYW5kbGVycyIsICJyZWplY3Rpb25IYW5kbGVycyIsICJ0cmFuc3BvcnQiLCAiY29uZmlndXJlZExldmVsVmFsdWUiLCAiZ2V0TGV2ZWxWYWx1ZSIsICJtYXgiLCAibGV2ZWxWYWx1ZSIsICJnaXZlbkxldmVsVmFsdWUiLCAidHJhbnNwb3J0TGV2ZWxWYWx1ZSIsICJtc2ciLCAic3BsYXQiLCAibWV0YSIsICJlbmMiLCAiY2FsbGJhY2siLCAibmV4dCIsICJ0YXJnZXQiLCAibWF0Y2giLCAicmVzdWx0cyIsICJxdWVyeU9iamVjdCIsICJxdWVyeVRyYW5zcG9ydCIsICJlcnIiLCAicmVzIiwgImFkZFJlc3VsdHMiLCAicmVzdWx0IiwgIm91dCIsICJzdHJlYW1zIiwgImkiLCAic3RyIiwgImxvZyIsICJpZCIsICJhcmdzIiwgInRpbWUiLCAidGltZUVuZCIsICJldmVudCIsICJ0cmFuc3BvcnRFdmVudCIsICJ2YWx1ZSIsICJwaXBlcyIsICJyZXF1aXJlX2NyZWF0ZV9sb2dnZXIiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJMRVZFTCIsICJjb25maWciLCAiTG9nZ2VyIiwgImRlYnVnIiwgImlzTGV2ZWxFbmFibGVkRnVuY3Rpb25OYW1lIiwgImxldmVsIiwgIm9wdHMiLCAiRGVyaXZlZExvZ2dlciIsICJvcHRpb25zIiwgImxvZ2dlciIsICJhcmdzIiwgInNlbGYiLCAibXNnIiwgImluZm8iLCAicmVxdWlyZV9jb250YWluZXIiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJjcmVhdGVMb2dnZXIiLCAib3B0aW9ucyIsICJpZCIsICJleGlzdGluZyIsICJsb2dnZXIiLCAidmFsIiwgImtleSIsICJyZXF1aXJlX3dpbnN0b24iLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgImxvZ2Zvcm0iLCAid2FybiIsICJkZWZhdWx0TG9nZ2VyIiwgIm1ldGhvZCIsICJhcmdzIiwgInZhbCIsICJwcm9wIiwgInJlcXVpcmVfZGlzdF9janMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgInByb3RvY29sSHR0cCIsICJyZXNvbHZlSG9zdEhlYWRlckNvbmZpZyIsICJpbnB1dCIsICJob3N0SGVhZGVyTWlkZGxld2FyZSIsICJvcHRpb25zIiwgIm5leHQiLCAiYXJncyIsICJyZXF1ZXN0IiwgImhhbmRsZXJQcm90b2NvbCIsICJob3N0IiwgImhvc3RIZWFkZXJNaWRkbGV3YXJlT3B0aW9ucyIsICJnZXRIb3N0SGVhZGVyUGx1Z2luIiwgImNsaWVudFN0YWNrIiwgInJlcXVpcmVfZGlzdF9janMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgImxvZ2dlck1pZGRsZXdhcmUiLCAibmV4dCIsICJjb250ZXh0IiwgImFyZ3MiLCAicmVzcG9uc2UiLCAiY2xpZW50TmFtZSIsICJjb21tYW5kTmFtZSIsICJsb2dnZXIiLCAiZHluYW1vRGJEb2N1bWVudENsaWVudE9wdGlvbnMiLCAib3ZlcnJpZGVJbnB1dEZpbHRlclNlbnNpdGl2ZUxvZyIsICJvdmVycmlkZU91dHB1dEZpbHRlclNlbnNpdGl2ZUxvZyIsICJpbnB1dEZpbHRlclNlbnNpdGl2ZUxvZyIsICJvdXRwdXRGaWx0ZXJTZW5zaXRpdmVMb2ciLCAiJG1ldGFkYXRhIiwgIm91dHB1dFdpdGhvdXRNZXRhZGF0YSIsICJlcnJvciIsICJsb2dnZXJNaWRkbGV3YXJlT3B0aW9ucyIsICJnZXRMb2dnZXJQbHVnaW4iLCAib3B0aW9ucyIsICJjbGllbnRTdGFjayIsICJyZXF1aXJlX3JlY3Vyc2lvbkRldGVjdGlvbk1pZGRsZXdhcmUiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgImxhbWJkYV9pbnZva2Vfc3RvcmVfMSIsICJwcm90b2NvbF9odHRwXzEiLCAiVFJBQ0VfSURfSEVBREVSX05BTUUiLCAiRU5WX0xBTUJEQV9GVU5DVElPTl9OQU1FIiwgIkVOVl9UUkFDRV9JRCIsICJyZWN1cnNpb25EZXRlY3Rpb25NaWRkbGV3YXJlIiwgIm5leHQiLCAiYXJncyIsICJyZXF1ZXN0IiwgInRyYWNlSWRIZWFkZXIiLCAiaCIsICJmdW5jdGlvbk5hbWUiLCAidHJhY2VJZEZyb21FbnYiLCAidHJhY2VJZCIsICJub25FbXB0eVN0cmluZyIsICJzdHIiLCAicmVxdWlyZV9kaXN0X2NqcyIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAicmVjdXJzaW9uRGV0ZWN0aW9uTWlkZGxld2FyZSIsICJyZWN1cnNpb25EZXRlY3Rpb25NaWRkbGV3YXJlT3B0aW9ucyIsICJnZXRSZWN1cnNpb25EZXRlY3Rpb25QbHVnaW4iLCAib3B0aW9ucyIsICJjbGllbnRTdGFjayIsICJrIiwgInJlcXVpcmVfZGlzdF9janMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgInV0aWxFbmRwb2ludHMiLCAidXJsUGFyc2VyIiwgImlzVmlydHVhbEhvc3RhYmxlUzNCdWNrZXQiLCAidmFsdWUiLCAiYWxsb3dTdWJEb21haW5zIiwgImxhYmVsIiwgIkFSTl9ERUxJTUlURVIiLCAiUkVTT1VSQ0VfREVMSU1JVEVSIiwgInBhcnNlQXJuIiwgInNlZ21lbnRzIiwgImFybiIsICJwYXJ0aXRpb24iLCAic2VydmljZSIsICJyZWdpb24iLCAiYWNjb3VudElkIiwgInJlc291cmNlUGF0aCIsICJyZXNvdXJjZUlkIiwgInJlc291cmNlIiwgInBhcnRpdGlvbnMiLCAidmVyc2lvbiIsICJwYXJ0aXRpb25zSW5mbyIsICJzZWxlY3RlZFBhcnRpdGlvbnNJbmZvIiwgInNlbGVjdGVkVXNlckFnZW50UHJlZml4IiwgInJlZ2lvbnMiLCAib3V0cHV0cyIsICJyZWdpb25EYXRhIiwgInJlZ2lvblJlZ2V4IiwgIkRFRkFVTFRfUEFSVElUSU9OIiwgInNldFBhcnRpdGlvbkluZm8iLCAidXNlckFnZW50UHJlZml4IiwgInVzZURlZmF1bHRQYXJ0aXRpb25JbmZvIiwgImdldFVzZXJBZ2VudFByZWZpeCIsICJhd3NFbmRwb2ludEZ1bmN0aW9ucyIsICJyZXNvbHZlRGVmYXVsdEF3c1JlZ2lvbmFsRW5kcG9pbnRzQ29uZmlnIiwgImlucHV0IiwgImVuZHBvaW50IiwgInRvRW5kcG9pbnRWMSIsICJzdGF0ZSIsICJlbWl0V2FybmluZ0lmVW5zdXBwb3J0ZWRWZXJzaW9uIiwgImluaXRfZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbiIsICJfX2VzbU1pbiIsICJ2ZXJzaW9uIiwgInVzZXJNYWpvclZlcnNpb24iLCAidnYiLCAibG9uZ1BvbGxNaWRkbGV3YXJlIiwgImxvbmdQb2xsTWlkZGxld2FyZU9wdGlvbnMiLCAiZ2V0TG9uZ1BvbGxQbHVnaW4iLCAiaW5pdF9sb25nUG9sbE1pZGRsZXdhcmUiLCAiX19lc21NaW4iLCAibmV4dCIsICJjb250ZXh0IiwgImFyZ3MiLCAib3B0aW9ucyIsICJjbGllbnRTdGFjayIsICJzZXRDcmVkZW50aWFsRmVhdHVyZSIsICJjcmVkZW50aWFscyIsICJmZWF0dXJlIiwgInZhbHVlIiwgImluaXRfc2V0Q3JlZGVudGlhbEZlYXR1cmUiLCAiX19lc21NaW4iLCAic2V0RmVhdHVyZSIsICJjb250ZXh0IiwgImZlYXR1cmUiLCAidmFsdWUiLCAiaW1wb3J0X3V0aWxfcmV0cnkiLCAiaW5pdF9zZXRGZWF0dXJlIiwgIl9fZXNtTWluIiwgInNldFRva2VuRmVhdHVyZSIsICJ0b2tlbiIsICJmZWF0dXJlIiwgInZhbHVlIiwgImluaXRfc2V0VG9rZW5GZWF0dXJlIiwgIl9fZXNtTWluIiwgImNsaWVudF9leHBvcnRzIiwgIl9fZXhwb3J0IiwgImVtaXRXYXJuaW5nSWZVbnN1cHBvcnRlZFZlcnNpb24iLCAiZ2V0TG9uZ1BvbGxQbHVnaW4iLCAic2V0Q3JlZGVudGlhbEZlYXR1cmUiLCAic2V0RmVhdHVyZSIsICJzZXRUb2tlbkZlYXR1cmUiLCAic3RhdGUiLCAiaW5pdF9jbGllbnQiLCAiX19lc21NaW4iLCAiaW5pdF9lbWl0V2FybmluZ0lmVW5zdXBwb3J0ZWRWZXJzaW9uIiwgImluaXRfbG9uZ1BvbGxNaWRkbGV3YXJlIiwgImluaXRfc2V0Q3JlZGVudGlhbEZlYXR1cmUiLCAiaW5pdF9zZXRGZWF0dXJlIiwgImluaXRfc2V0VG9rZW5GZWF0dXJlIiwgInJlcXVpcmVfZGlzdF9janMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgImNvcmUiLCAidXRpbEVuZHBvaW50cyIsICJwcm90b2NvbEh0dHAiLCAiY2xpZW50IiwgInV0aWxSZXRyeSIsICJERUZBVUxUX1VBX0FQUF9JRCIsICJpc1ZhbGlkVXNlckFnZW50QXBwSWQiLCAiYXBwSWQiLCAicmVzb2x2ZVVzZXJBZ2VudENvbmZpZyIsICJpbnB1dCIsICJub3JtYWxpemVkQXBwSWRQcm92aWRlciIsICJjdXN0b21Vc2VyQWdlbnQiLCAibG9nZ2VyIiwgIkFDQ09VTlRfSURfRU5EUE9JTlRfUkVHRVgiLCAiY2hlY2tGZWF0dXJlcyIsICJjb250ZXh0IiwgImNvbmZpZyIsICJhcmdzIiwgInJldHJ5U3RyYXRlZ3kiLCAiZW5kcG9pbnRWMiIsICJpZGVudGl0eSIsICJjcmVkZW50aWFscyIsICJrZXkiLCAidmFsdWUiLCAiVVNFUl9BR0VOVCIsICJYX0FNWl9VU0VSX0FHRU5UIiwgIlNQQUNFIiwgIlVBX05BTUVfU0VQQVJBVE9SIiwgIlVBX05BTUVfRVNDQVBFX1JFR0VYIiwgIlVBX1ZBTFVFX0VTQ0FQRV9SRUdFWCIsICJVQV9FU0NBUEVfQ0hBUiIsICJCWVRFX0xJTUlUIiwgImVuY29kZUZlYXR1cmVzIiwgImZlYXR1cmVzIiwgImJ1ZmZlciIsICJ2YWwiLCAidXNlckFnZW50TWlkZGxld2FyZSIsICJvcHRpb25zIiwgIm5leHQiLCAicmVxdWVzdCIsICJoZWFkZXJzIiwgInVzZXJBZ2VudCIsICJlc2NhcGVVc2VyQWdlbnQiLCAiZGVmYXVsdFVzZXJBZ2VudCIsICJhd3NDb250ZXh0IiwgInByZWZpeCIsICJzZGtVc2VyQWdlbnRWYWx1ZSIsICJub3JtYWxVQVZhbHVlIiwgInNlY3Rpb24iLCAidXNlckFnZW50UGFpciIsICJuYW1lIiwgInBhcnQiLCAidmVyc2lvbiIsICJwcmVmaXhTZXBhcmF0b3JJbmRleCIsICJ1YU5hbWUiLCAiaXRlbSIsICJhY2MiLCAiaW5kZXgiLCAiZ2V0VXNlckFnZW50TWlkZGxld2FyZU9wdGlvbnMiLCAiZ2V0VXNlckFnZW50UGx1Z2luIiwgImNsaWVudFN0YWNrIiwgImltcG9ydF9wcm90b2NvbF9odHRwIiwgImdldERhdGVIZWFkZXIiLCAiaW5pdF9nZXREYXRlSGVhZGVyIiwgIl9fZXNtTWluIiwgInJlc3BvbnNlIiwgImdldFNrZXdDb3JyZWN0ZWREYXRlIiwgImluaXRfZ2V0U2tld0NvcnJlY3RlZERhdGUiLCAiX19lc21NaW4iLCAic3lzdGVtQ2xvY2tPZmZzZXQiLCAiaXNDbG9ja1NrZXdlZCIsICJpbml0X2lzQ2xvY2tTa2V3ZWQiLCAiX19lc21NaW4iLCAiaW5pdF9nZXRTa2V3Q29ycmVjdGVkRGF0ZSIsICJjbG9ja1RpbWUiLCAic3lzdGVtQ2xvY2tPZmZzZXQiLCAiZ2V0U2tld0NvcnJlY3RlZERhdGUiLCAiZ2V0VXBkYXRlZFN5c3RlbUNsb2NrT2Zmc2V0IiwgImluaXRfZ2V0VXBkYXRlZFN5c3RlbUNsb2NrT2Zmc2V0IiwgIl9fZXNtTWluIiwgImluaXRfaXNDbG9ja1NrZXdlZCIsICJjbG9ja1RpbWUiLCAiY3VycmVudFN5c3RlbUNsb2NrT2Zmc2V0IiwgImNsb2NrVGltZUluTXMiLCAiaXNDbG9ja1NrZXdlZCIsICJpbml0X3V0aWxzIiwgIl9fZXNtTWluIiwgImluaXRfZ2V0RGF0ZUhlYWRlciIsICJpbml0X2dldFNrZXdDb3JyZWN0ZWREYXRlIiwgImluaXRfZ2V0VXBkYXRlZFN5c3RlbUNsb2NrT2Zmc2V0IiwgImltcG9ydF9wcm90b2NvbF9odHRwIiwgInRocm93U2lnbmluZ1Byb3BlcnR5RXJyb3IiLCAidmFsaWRhdGVTaWduaW5nUHJvcGVydGllcyIsICJBd3NTZGtTaWdWNFNpZ25lciIsICJBV1NTREtTaWdWNFNpZ25lciIsICJpbml0X0F3c1Nka1NpZ1Y0U2lnbmVyIiwgIl9fZXNtTWluIiwgImluaXRfdXRpbHMiLCAibmFtZSIsICJwcm9wZXJ0eSIsICJzaWduaW5nUHJvcGVydGllcyIsICJjb250ZXh0IiwgImNvbmZpZyIsICJhdXRoU2NoZW1lIiwgInNpZ25lciIsICJzaWduaW5nUmVnaW9uIiwgInNpZ25pbmdSZWdpb25TZXQiLCAic2lnbmluZ05hbWUiLCAiaHR0cFJlcXVlc3QiLCAiaWRlbnRpdHkiLCAidmFsaWRhdGVkUHJvcHMiLCAiaGFuZGxlckV4ZWN1dGlvbkNvbnRleHQiLCAiZmlyc3QiLCAic2Vjb25kIiwgImdldFNrZXdDb3JyZWN0ZWREYXRlIiwgImVycm9yIiwgInNlcnZlclRpbWUiLCAiZ2V0RGF0ZUhlYWRlciIsICJpbml0aWFsU3lzdGVtQ2xvY2tPZmZzZXQiLCAiZ2V0VXBkYXRlZFN5c3RlbUNsb2NrT2Zmc2V0IiwgImh0dHBSZXNwb25zZSIsICJkYXRlSGVhZGVyIiwgImltcG9ydF9wcm90b2NvbF9odHRwIiwgIkF3c1Nka1NpZ1Y0QVNpZ25lciIsICJpbml0X0F3c1Nka1NpZ1Y0QVNpZ25lciIsICJfX2VzbU1pbiIsICJpbml0X3V0aWxzIiwgImluaXRfQXdzU2RrU2lnVjRTaWduZXIiLCAiQXdzU2RrU2lnVjRTaWduZXIiLCAiaHR0cFJlcXVlc3QiLCAiaWRlbnRpdHkiLCAic2lnbmluZ1Byb3BlcnRpZXMiLCAiY29uZmlnIiwgInNpZ25lciIsICJzaWduaW5nUmVnaW9uIiwgInNpZ25pbmdSZWdpb25TZXQiLCAic2lnbmluZ05hbWUiLCAidmFsaWRhdGVTaWduaW5nUHJvcGVydGllcyIsICJtdWx0aVJlZ2lvbk92ZXJyaWRlIiwgImdldFNrZXdDb3JyZWN0ZWREYXRlIiwgImdldEFycmF5Rm9yQ29tbWFTZXBhcmF0ZWRTdHJpbmciLCAiaW5pdF9nZXRBcnJheUZvckNvbW1hU2VwYXJhdGVkU3RyaW5nIiwgIl9fZXNtTWluIiwgInN0ciIsICJpdGVtIiwgImdldEJlYXJlclRva2VuRW52S2V5IiwgImluaXRfZ2V0QmVhcmVyVG9rZW5FbnZLZXkiLCAiX19lc21NaW4iLCAic2lnbmluZ05hbWUiLCAiTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX0VOVl9LRVkiLCAiTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX0NPTkZJR19LRVkiLCAiTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX09QVElPTlMiLCAiaW5pdF9OT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfT1BUSU9OUyIsICJfX2VzbU1pbiIsICJpbml0X2dldEFycmF5Rm9yQ29tbWFTZXBhcmF0ZWRTdHJpbmciLCAiaW5pdF9nZXRCZWFyZXJUb2tlbkVudktleSIsICJlbnYiLCAib3B0aW9ucyIsICJnZXRCZWFyZXJUb2tlbkVudktleSIsICJnZXRBcnJheUZvckNvbW1hU2VwYXJhdGVkU3RyaW5nIiwgInByb2ZpbGUiLCAiaW1wb3J0X2NvcmUiLCAiaW1wb3J0X3Byb3BlcnR5X3Byb3ZpZGVyIiwgInJlc29sdmVBd3NTZGtTaWdWNEFDb25maWciLCAiTk9ERV9TSUdWNEFfQ09ORklHX09QVElPTlMiLCAiaW5pdF9yZXNvbHZlQXdzU2RrU2lnVjRBQ29uZmlnIiwgIl9fZXNtTWluIiwgImNvbmZpZyIsICJlbnYiLCAiXyIsICJwcm9maWxlIiwgIm5vcm1hbGl6ZUNyZWRlbnRpYWxQcm92aWRlciIsICJjb25maWciLCAiY3JlZGVudGlhbHMiLCAiY3JlZGVudGlhbERlZmF1bHRQcm92aWRlciIsICJjcmVkZW50aWFsc1Byb3ZpZGVyIiwgImJpbmRDYWxsZXJDb25maWciLCAiZm4iLCAib3B0aW9ucyIsICJpbXBvcnRfY29yZSIsICJpbXBvcnRfc2lnbmF0dXJlX3Y0IiwgInJlc29sdmVBd3NTZGtTaWdWNENvbmZpZyIsICJyZXNvbHZlQVdTU0RLU2lnVjRDb25maWciLCAiaW5pdF9yZXNvbHZlQXdzU2RrU2lnVjRDb25maWciLCAiX19lc21NaW4iLCAiaW5pdF9jbGllbnQiLCAiaW5wdXRDcmVkZW50aWFscyIsICJpc1VzZXJTdXBwbGllZCIsICJyZXNvbHZlZENyZWRlbnRpYWxzIiwgIm1lbW9pemVkUHJvdmlkZXIiLCAiYm91bmRQcm92aWRlciIsICJpc0NyZWRlbnRpYWxPYmplY3QiLCAiYXR0cmlidXRlZENyZWRzIiwgInNldENyZWRlbnRpYWxGZWF0dXJlIiwgInNpZ25pbmdFc2NhcGVQYXRoIiwgInN5c3RlbUNsb2NrT2Zmc2V0IiwgInNoYTI1NiIsICJzaWduZXIiLCAicmVnaW9uIiwgInJlZ2lvbkluZm8iLCAic2lnbmluZ1JlZ2lvbiIsICJzaWduaW5nU2VydmljZSIsICJwYXJhbXMiLCAiU2lnbmVyQ3RvciIsICJhdXRoU2NoZW1lIiwgImluaXRfYXdzX3NkayIsICJfX2VzbU1pbiIsICJpbml0X0F3c1Nka1NpZ1Y0U2lnbmVyIiwgImluaXRfQXdzU2RrU2lnVjRBU2lnbmVyIiwgImluaXRfTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX09QVElPTlMiLCAiaW5pdF9yZXNvbHZlQXdzU2RrU2lnVjRBQ29uZmlnIiwgImluaXRfcmVzb2x2ZUF3c1Nka1NpZ1Y0Q29uZmlnIiwgImh0dHBBdXRoU2NoZW1lc19leHBvcnRzIiwgIl9fZXhwb3J0IiwgIkFXU1NES1NpZ1Y0U2lnbmVyIiwgIkF3c1Nka1NpZ1Y0QVNpZ25lciIsICJBd3NTZGtTaWdWNFNpZ25lciIsICJOT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfT1BUSU9OUyIsICJOT0RFX1NJR1Y0QV9DT05GSUdfT1BUSU9OUyIsICJnZXRCZWFyZXJUb2tlbkVudktleSIsICJyZXNvbHZlQVdTU0RLU2lnVjRDb25maWciLCAicmVzb2x2ZUF3c1Nka1NpZ1Y0QUNvbmZpZyIsICJyZXNvbHZlQXdzU2RrU2lnVjRDb25maWciLCAidmFsaWRhdGVTaWduaW5nUHJvcGVydGllcyIsICJpbml0X2h0dHBBdXRoU2NoZW1lcyIsICJfX2VzbU1pbiIsICJpbml0X2F3c19zZGsiLCAiaW5pdF9nZXRCZWFyZXJUb2tlbkVudktleSIsICJpbXBvcnRfc2NoZW1hIiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgIlByb3RvY29sTGliIiwgImluaXRfUHJvdG9jb2xMaWIiLCAiX19lc21NaW4iLCAicXVlcnlDb21wYXQiLCAiZGVmYXVsdENvbnRlbnRUeXBlIiwgImlucHV0U2NoZW1hIiwgIm1lbWJlcnMiLCAiaHR0cFBheWxvYWRNZW1iZXIiLCAibSIsICJtZWRpYVR5cGUiLCAiaHR0cFF1ZXJ5IiwgImh0dHBRdWVyeVBhcmFtcyIsICJodHRwSGVhZGVyIiwgImh0dHBMYWJlbCIsICJodHRwUHJlZml4SGVhZGVycyIsICJlcnJvcklkZW50aWZpZXIiLCAiZGVmYXVsdE5hbWVzcGFjZSIsICJyZXNwb25zZSIsICJkYXRhT2JqZWN0IiwgIm1ldGFkYXRhIiwgImdldEVycm9yU2NoZW1hIiwgImVycm9yTmFtZSIsICJlcnJvck1ldGFkYXRhIiwgInN5bnRoZXRpYyIsICJiYXNlRXhjZXB0aW9uU2NoZW1hIiwgIkVycm9yQ3RvciIsICJkIiwgIm1lc3NhZ2UiLCAiY29tcG9zaXRlIiwgIm5hbWVzcGFjZSIsICJzdGF0aWNSZWdpc3RyeSIsICJkZWZhdWx0U3ludGhldGljUmVnaXN0cnkiLCAiZXhjZXB0aW9uIiwgImFkZGl0aW9ucyIsICJtc2ciLCAiZXJyb3IiLCAiZXJyb3JPYmoiLCAicmVxSWQiLCAib3V0cHV0IiwgInF1ZXJ5RXJyb3JIZWFkZXIiLCAiQ29kZSIsICJUeXBlIiwgImtleXMiLCAiRXJyb3IiLCAiaSIsICJrIiwgInF1ZXJ5Q29tcGF0RXJyb3JEYXRhIiwgImVycm9yRGF0YSIsICJyZWdpc3RyeSIsICJzY2hlbWEiLCAiaW1wb3J0X2Nib3IiLCAiaW1wb3J0X3NjaGVtYSIsICJBd3NTbWl0aHlScGNWMkNib3JQcm90b2NvbCIsICJpbml0X0F3c1NtaXRoeVJwY1YyQ2JvclByb3RvY29sIiwgIl9fZXNtTWluIiwgImluaXRfUHJvdG9jb2xMaWIiLCAiZGVmYXVsdE5hbWVzcGFjZSIsICJlcnJvclR5cGVSZWdpc3RyaWVzIiwgImF3c1F1ZXJ5Q29tcGF0aWJsZSIsICJQcm90b2NvbExpYiIsICJvcGVyYXRpb25TY2hlbWEiLCAiaW5wdXQiLCAiY29udGV4dCIsICJyZXF1ZXN0IiwgInJlc3BvbnNlIiwgImRhdGFPYmplY3QiLCAibWV0YWRhdGEiLCAiZXJyb3JOYW1lIiwgImNvbXBhdEhlYWRlciIsICJlcnJvclNjaGVtYSIsICJlcnJvck1ldGFkYXRhIiwgIm5zIiwgIm1lc3NhZ2UiLCAiRXJyb3JDdG9yIiwgImV4Y2VwdGlvbiIsICJvdXRwdXQiLCAibmFtZSIsICJtZW1iZXIiLCAiX3RvU3RyIiwgIl90b0Jvb2wiLCAiX3RvTnVtIiwgImluaXRfY29lcmNpbmdfc2VyaWFsaXplcnMiLCAiX19lc21NaW4iLCAidmFsIiwgIndhcm5pbmciLCAibG93ZXJjYXNlIiwgIm51bSIsICJTZXJkZUNvbnRleHRDb25maWciLCAiaW5pdF9Db25maWd1cmFibGVTZXJkZUNvbnRleHQiLCAiX19lc21NaW4iLCAic2VyZGVDb250ZXh0IiwgIlVuaW9uU2VyZGUiLCAiaW5pdF9VbmlvblNlcmRlIiwgIl9fZXNtTWluIiwgImZyb20iLCAidG8iLCAia2V5cyIsICJzZXQiLCAia2V5IiwgImsiLCAidiIsICJqc29uUmV2aXZlciIsICJrZXkiLCAidmFsdWUiLCAiY29udGV4dCIsICJudW1lcmljU3RyaW5nIiwgImltcG9ydF9zZXJkZSIsICJpbml0X2pzb25SZXZpdmVyIiwgIl9fZXNtTWluIiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgImltcG9ydF91dGlsX3V0ZjgiLCAiY29sbGVjdEJvZHlTdHJpbmciLCAiaW5pdF9jb21tb24iLCAiX19lc21NaW4iLCAic3RyZWFtQm9keSIsICJjb250ZXh0IiwgImJvZHkiLCAicGFyc2VKc29uQm9keSIsICJwYXJzZUpzb25FcnJvckJvZHkiLCAiZmluZEtleSIsICJzYW5pdGl6ZUVycm9yQ29kZSIsICJsb2FkUmVzdEpzb25FcnJvckNvZGUiLCAiaW5pdF9wYXJzZUpzb25Cb2R5IiwgIl9fZXNtTWluIiwgImluaXRfY29tbW9uIiwgInN0cmVhbUJvZHkiLCAiY29udGV4dCIsICJjb2xsZWN0Qm9keVN0cmluZyIsICJlbmNvZGVkIiwgImUiLCAiZXJyb3JCb2R5IiwgInZhbHVlIiwgIm9iamVjdCIsICJrZXkiLCAiayIsICJyYXdWYWx1ZSIsICJjbGVhblZhbHVlIiwgIm91dHB1dCIsICJkYXRhIiwgImhlYWRlcktleSIsICJjb2RlS2V5IiwgImltcG9ydF9wcm90b2NvbHMiLCAiaW1wb3J0X3NjaGVtYSIsICJpbXBvcnRfc2VyZGUiLCAiaW1wb3J0X3V0aWxfYmFzZTY0IiwgIkpzb25TaGFwZURlc2VyaWFsaXplciIsICJpbml0X0pzb25TaGFwZURlc2VyaWFsaXplciIsICJfX2VzbU1pbiIsICJpbml0X0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dCIsICJpbml0X1VuaW9uU2VyZGUiLCAiaW5pdF9qc29uUmV2aXZlciIsICJpbml0X3BhcnNlSnNvbkJvZHkiLCAiU2VyZGVDb250ZXh0Q29uZmlnIiwgInNldHRpbmdzIiwgInNjaGVtYSIsICJkYXRhIiwgImpzb25SZXZpdmVyIiwgInBhcnNlSnNvbkJvZHkiLCAidmFsdWUiLCAiaXNPYmplY3QiLCAibnMiLCAicmVjb3JkIiwgInVuaW9uIiwgIm91dCIsICJuYW1lTWFwIiwgImpzb25OYW1lIiwgInVuaW9uU2VyZGUiLCAiVW5pb25TZXJkZSIsICJtZW1iZXJOYW1lIiwgIm1lbWJlclNjaGVtYSIsICJmcm9tS2V5IiwgImsiLCAidiIsICJ0IiwgImxpc3RNZW1iZXIiLCAiaXRlbSIsICJtYXBNZW1iZXIiLCAiX2siLCAibWVkaWFUeXBlIiwgInVudHlwZWQiLCAiaW1wb3J0X3NlcmRlIiwgIk5VTUVSSUNfQ09OVFJPTF9DSEFSIiwgIkpzb25SZXBsYWNlciIsICJpbml0X2pzb25SZXBsYWNlciIsICJfX2VzbU1pbiIsICJrZXkiLCAidmFsdWUiLCAidiIsICJzIiwgImpzb24iLCAiaW1wb3J0X3Byb3RvY29scyIsICJpbXBvcnRfc2NoZW1hIiwgImltcG9ydF9zZXJkZSIsICJpbXBvcnRfdXRpbF9iYXNlNjQiLCAiSnNvblNoYXBlU2VyaWFsaXplciIsICJpbml0X0pzb25TaGFwZVNlcmlhbGl6ZXIiLCAiX19lc21NaW4iLCAiaW5pdF9Db25maWd1cmFibGVTZXJkZUNvbnRleHQiLCAiaW5pdF9qc29uUmVwbGFjZXIiLCAiU2VyZGVDb250ZXh0Q29uZmlnIiwgInNldHRpbmdzIiwgInNjaGVtYSIsICJ2YWx1ZSIsICJyb290U2NoZW1hIiwgInVzZVJlcGxhY2VyIiwgInJlcGxhY2VyIiwgIkpzb25SZXBsYWNlciIsICJjb250YWluZXIiLCAiaXNPYmplY3QiLCAibnMiLCAicmVjb3JkIiwgIm91dCIsICJqc29uTmFtZSIsICJuYW1lTWFwIiwgIm91dENvdW50IiwgIm1lbWJlck5hbWUiLCAibWVtYmVyU2NoZW1hIiwgInNlcmlhbGl6YWJsZVZhbHVlIiwgInRhcmdldEtleSIsICIkdW5rbm93biIsICJrIiwgInYiLCAibGlzdE1lbWJlciIsICJzcGFyc2UiLCAiaXRlbSIsICJtYXBNZW1iZXIiLCAiX2siLCAiX3YiLCAibWVkaWFUeXBlIiwgIkpzb25Db2RlYyIsICJpbml0X0pzb25Db2RlYyIsICJfX2VzbU1pbiIsICJpbml0X0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dCIsICJpbml0X0pzb25TaGFwZURlc2VyaWFsaXplciIsICJpbml0X0pzb25TaGFwZVNlcmlhbGl6ZXIiLCAiU2VyZGVDb250ZXh0Q29uZmlnIiwgInNldHRpbmdzIiwgInNlcmlhbGl6ZXIiLCAiSnNvblNoYXBlU2VyaWFsaXplciIsICJkZXNlcmlhbGl6ZXIiLCAiSnNvblNoYXBlRGVzZXJpYWxpemVyIiwgImltcG9ydF9wcm90b2NvbHMiLCAiaW1wb3J0X3NjaGVtYSIsICJBd3NKc29uUnBjUHJvdG9jb2wiLCAiaW5pdF9Bd3NKc29uUnBjUHJvdG9jb2wiLCAiX19lc21NaW4iLCAiaW5pdF9Qcm90b2NvbExpYiIsICJpbml0X0pzb25Db2RlYyIsICJpbml0X3BhcnNlSnNvbkJvZHkiLCAiZGVmYXVsdE5hbWVzcGFjZSIsICJlcnJvclR5cGVSZWdpc3RyaWVzIiwgInNlcnZpY2VUYXJnZXQiLCAiYXdzUXVlcnlDb21wYXRpYmxlIiwgImpzb25Db2RlYyIsICJKc29uQ29kZWMiLCAiUHJvdG9jb2xMaWIiLCAib3BlcmF0aW9uU2NoZW1hIiwgImlucHV0IiwgImNvbnRleHQiLCAicmVxdWVzdCIsICJyZXNwb25zZSIsICJkYXRhT2JqZWN0IiwgIm1ldGFkYXRhIiwgImVycm9ySWRlbnRpZmllciIsICJsb2FkUmVzdEpzb25FcnJvckNvZGUiLCAiZXJyb3JTY2hlbWEiLCAiZXJyb3JNZXRhZGF0YSIsICJucyIsICJtZXNzYWdlIiwgIkVycm9yQ3RvciIsICJleGNlcHRpb24iLCAib3V0cHV0IiwgImVycm9yRGVzZXJpYWxpemVyIiwgIm5hbWUiLCAibWVtYmVyIiwgIkF3c0pzb24xXzBQcm90b2NvbCIsICJpbml0X0F3c0pzb24xXzBQcm90b2NvbCIsICJfX2VzbU1pbiIsICJpbml0X0F3c0pzb25ScGNQcm90b2NvbCIsICJBd3NKc29uUnBjUHJvdG9jb2wiLCAiZGVmYXVsdE5hbWVzcGFjZSIsICJlcnJvclR5cGVSZWdpc3RyaWVzIiwgInNlcnZpY2VUYXJnZXQiLCAiYXdzUXVlcnlDb21wYXRpYmxlIiwgImpzb25Db2RlYyIsICJBd3NKc29uMV8xUHJvdG9jb2wiLCAiaW5pdF9Bd3NKc29uMV8xUHJvdG9jb2wiLCAiX19lc21NaW4iLCAiaW5pdF9Bd3NKc29uUnBjUHJvdG9jb2wiLCAiQXdzSnNvblJwY1Byb3RvY29sIiwgImRlZmF1bHROYW1lc3BhY2UiLCAiZXJyb3JUeXBlUmVnaXN0cmllcyIsICJzZXJ2aWNlVGFyZ2V0IiwgImF3c1F1ZXJ5Q29tcGF0aWJsZSIsICJqc29uQ29kZWMiLCAiaW1wb3J0X3Byb3RvY29scyIsICJpbXBvcnRfc2NoZW1hIiwgIkF3c1Jlc3RKc29uUHJvdG9jb2wiLCAiaW5pdF9Bd3NSZXN0SnNvblByb3RvY29sIiwgIl9fZXNtTWluIiwgImluaXRfUHJvdG9jb2xMaWIiLCAiaW5pdF9Kc29uQ29kZWMiLCAiaW5pdF9wYXJzZUpzb25Cb2R5IiwgIlByb3RvY29sTGliIiwgImRlZmF1bHROYW1lc3BhY2UiLCAiZXJyb3JUeXBlUmVnaXN0cmllcyIsICJzZXR0aW5ncyIsICJKc29uQ29kZWMiLCAic2VyZGVDb250ZXh0IiwgIm9wZXJhdGlvblNjaGVtYSIsICJpbnB1dCIsICJjb250ZXh0IiwgInJlcXVlc3QiLCAiaW5wdXRTY2hlbWEiLCAiY29udGVudFR5cGUiLCAicmVzcG9uc2UiLCAib3V0cHV0IiwgIm91dHB1dFNjaGVtYSIsICJuYW1lIiwgIm1lbWJlciIsICJkYXRhT2JqZWN0IiwgIm1ldGFkYXRhIiwgImVycm9ySWRlbnRpZmllciIsICJsb2FkUmVzdEpzb25FcnJvckNvZGUiLCAiZXJyb3JTY2hlbWEiLCAiZXJyb3JNZXRhZGF0YSIsICJucyIsICJtZXNzYWdlIiwgIkVycm9yQ3RvciIsICJleGNlcHRpb24iLCAiZXJyb3JEZXNlcmlhbGl6ZXIiLCAidGFyZ2V0IiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgImF3c0V4cGVjdFVuaW9uIiwgImluaXRfYXdzRXhwZWN0VW5pb24iLCAiX19lc21NaW4iLCAidmFsdWUiLCAicmVxdWlyZV9ub2RhYmxlX2VudGl0aWVzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJTUEVDSUFMX0NIQVJTIiwgInZhbGlkYXRlRW50aXR5TmFtZSIsICJuYW1lIiwgImNoIiwgIm1lcmdlRW50aXR5TWFwcyIsICJtYXBzIiwgIm91dCIsICJtYXAiLCAia2V5IiwgInJhdyIsICJ2YWwiLCAiTElNSVRfVElFUl9FWFRFUk5BTCIsICJMSU1JVF9USUVSX0JBU0UiLCAiTElNSVRfVElFUl9BTEwiLCAicGFyc2VMaW1pdFRpZXJzIiwgIk5DUl9MRVZFTCIsICJYTUwxMF9BTExPV0VEX0MwIiwgInBhcnNlTkNSQ29uZmlnIiwgIm5jciIsICJ4bWxWZXJzaW9uIiwgIm9uTGV2ZWwiLCAibnVsbExldmVsIiwgImNsYW1wZWROdWxsIiwgIkVudGl0eURlY29kZXJJbXBsIiwgIm9wdGlvbnMiLCAiciIsICJuY3JDZmciLCAidmFsdWUiLCAidmVyc2lvbiIsICJzdHIiLCAib3JpZ2luYWwiLCAiY2h1bmtzIiwgImxlbiIsICJsYXN0IiwgImxpbWl0RXhwYW5zaW9ucyIsICJsaW1pdExlbmd0aCIsICJjaGVja0xpbWl0cyIsICJqIiwgInRva2VuIiwgInJlcGxhY2VtZW50IiwgInRpZXIiLCAibmNyUmVzdWx0IiwgInJlc29sdmVkIiwgImRlbHRhIiwgInJlc3VsdCIsICJjcCIsICJhY3Rpb24iLCAic2Vjb25kIiwgIm1pbmltdW0iLCAiZWZmZWN0aXZlIiwgInJlcXVpcmVfeG1sX3BhcnNlciIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAicGFyc2VYTUwiLCAiZmFzdF94bWxfcGFyc2VyXzEiLCAibm9kYWJsZV9lbnRpdGllc18xIiwgImVudGl0eURlY29kZXIiLCAicGFyc2VyIiwgImVudGl0aWVzIiwgInRleHQiLCAidmVyc2lvbiIsICJfIiwgInZhbCIsICJ4bWxTdHJpbmciLCAicmVxdWlyZV9kaXN0X2NqcyIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAieG1sUGFyc2VyIiwgIkFUVFJfRVNDQVBFX1JFIiwgIkFUVFJfRVNDQVBFX01BUCIsICJlc2NhcGVBdHRyaWJ1dGUiLCAidmFsdWUiLCAiY2giLCAiRUxFTUVOVF9FU0NBUEVfUkUiLCAiRUxFTUVOVF9FU0NBUEVfTUFQIiwgImVzY2FwZUVsZW1lbnQiLCAiWG1sVGV4dCIsICJYbWxOb2RlIiwgIl9YbWxOb2RlIiwgIm5hbWUiLCAiY2hpbGRUZXh0IiwgIndpdGhOYW1lIiwgIm5vZGUiLCAiY2hpbGRyZW4iLCAiY2hpbGQiLCAiaW5wdXQiLCAiZmllbGQiLCAibGlzdE5hbWUiLCAibWVtYmVyTmFtZSIsICJ2YWx1ZVByb3ZpZGVyIiwgIm5vZGVzIiwgImNvbnRhaW5lck5vZGUiLCAiaGFzQ2hpbGRyZW4iLCAieG1sVGV4dCIsICJhdHRyaWJ1dGVzIiwgImF0dHJpYnV0ZU5hbWUiLCAiYXR0cmlidXRlIiwgImMiLCAiaW1wb3J0X3htbF9idWlsZGVyIiwgImltcG9ydF9wcm90b2NvbHMiLCAiaW1wb3J0X3NjaGVtYSIsICJpbXBvcnRfc21pdGh5X2NsaWVudCIsICJpbXBvcnRfdXRpbF91dGY4IiwgIlhtbFNoYXBlRGVzZXJpYWxpemVyIiwgImluaXRfWG1sU2hhcGVEZXNlcmlhbGl6ZXIiLCAiX19lc21NaW4iLCAiaW5pdF9Db25maWd1cmFibGVTZXJkZUNvbnRleHQiLCAiaW5pdF9VbmlvblNlcmRlIiwgIlNlcmRlQ29udGV4dENvbmZpZyIsICJzZXR0aW5ncyIsICJzZXJkZUNvbnRleHQiLCAic2NoZW1hIiwgImJ5dGVzIiwgImtleSIsICJucyIsICJtZW1iZXJTY2hlbWFzIiwgIm1lbWJlck5zIiwgIm91dHB1dCIsICJtZW1iZXJOYW1lIiwgInhtbFN0cmluZyIsICJwYXJzZWRPYmplY3QiLCAiX3NjaGVtYSIsICJ2YWx1ZSIsICJ0cmFpdHMiLCAiZmxhdCIsICJsaXN0VmFsdWUiLCAiYnVmZmVyIiwgInNvdXJjZUtleSIsICJzb3VyY2UiLCAic291cmNlQXJyYXkiLCAidiIsICJrZXlOcyIsICJlbnRyaWVzIiwgImtleVByb3BlcnR5IiwgInZhbHVlUHJvcGVydHkiLCAiZW50cnkiLCAidW5pb24iLCAidW5pb25TZXJkZSIsICJVbmlvblNlcmRlIiwgIm1lbWJlclNjaGVtYSIsICJtZW1iZXJUcmFpdHMiLCAieG1sT2JqZWN0S2V5IiwgInhtbCIsICJwYXJzZWRPYmoiLCAiZSIsICJ0ZXh0Tm9kZU5hbWUiLCAicGFyc2VkT2JqVG9SZXR1cm4iLCAiaW1wb3J0X3Byb3RvY29scyIsICJpbXBvcnRfc2NoZW1hIiwgImltcG9ydF9zZXJkZSIsICJpbXBvcnRfc21pdGh5X2NsaWVudCIsICJpbXBvcnRfdXRpbF9iYXNlNjQiLCAiUXVlcnlTaGFwZVNlcmlhbGl6ZXIiLCAiaW5pdF9RdWVyeVNoYXBlU2VyaWFsaXplciIsICJfX2VzbU1pbiIsICJpbml0X0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dCIsICJTZXJkZUNvbnRleHRDb25maWciLCAic2V0dGluZ3MiLCAic2NoZW1hIiwgInZhbHVlIiwgInByZWZpeCIsICJucyIsICJtZW1iZXIiLCAiZmxhdCIsICJpIiwgIml0ZW0iLCAidHJhaXRzIiwgInN1ZmZpeCIsICJrZXkiLCAia2V5U2NoZW1hIiwgIm1lbWJlclNjaGVtYSIsICJrIiwgInYiLCAia2V5VHJhaXRzIiwgImtleVN1ZmZpeCIsICJ2YWxUcmFpdHMiLCAidmFsdWVTdWZmaXgiLCAidmFsdWVLZXkiLCAiZGlkV3JpdGVNZW1iZXIiLCAibWVtYmVyTmFtZSIsICIkdW5rbm93biIsICJzdHIiLCAieG1sTmFtZSIsICJlYzJRdWVyeU5hbWUiLCAia2V5U291cmNlIiwgImVjMiIsICJjYXBpdGFsaXplS2V5cyIsICJpbXBvcnRfcHJvdG9jb2xzIiwgImltcG9ydF9zY2hlbWEiLCAiQXdzUXVlcnlQcm90b2NvbCIsICJpbml0X0F3c1F1ZXJ5UHJvdG9jb2wiLCAiX19lc21NaW4iLCAiaW5pdF9Qcm90b2NvbExpYiIsICJpbml0X1htbFNoYXBlRGVzZXJpYWxpemVyIiwgImluaXRfUXVlcnlTaGFwZVNlcmlhbGl6ZXIiLCAiUHJvdG9jb2xMaWIiLCAib3B0aW9ucyIsICJzZXR0aW5ncyIsICJRdWVyeVNoYXBlU2VyaWFsaXplciIsICJYbWxTaGFwZURlc2VyaWFsaXplciIsICJzZXJkZUNvbnRleHQiLCAib3BlcmF0aW9uU2NoZW1hIiwgImlucHV0IiwgImNvbnRleHQiLCAicmVxdWVzdCIsICJhY3Rpb24iLCAicmVzcG9uc2UiLCAiZGVzZXJpYWxpemVyIiwgIm5zIiwgImRhdGFPYmplY3QiLCAiYnl0ZXMiLCAiaGVhZGVyIiwgInZhbHVlIiwgInNob3J0TmFtZSIsICJhd3NRdWVyeVJlc3VsdEtleSIsICJtZXRhZGF0YSIsICJlcnJvcklkZW50aWZpZXIiLCAiZXJyb3JEYXRhIiwgIm1lc3NhZ2UiLCAiZXJyb3JTY2hlbWEiLCAiZXJyb3JNZXRhZGF0YSIsICJFcnJvckN0b3IiLCAiZXhjZXB0aW9uIiwgIm91dHB1dCIsICJuYW1lIiwgIm1lbWJlciIsICJ0YXJnZXQiLCAiZGF0YSIsICJjb2RlIiwgIkF3c0VjMlF1ZXJ5UHJvdG9jb2wiLCAiaW5pdF9Bd3NFYzJRdWVyeVByb3RvY29sIiwgIl9fZXNtTWluIiwgImluaXRfQXdzUXVlcnlQcm90b2NvbCIsICJBd3NRdWVyeVByb3RvY29sIiwgIm9wdGlvbnMiLCAiZWMyU2V0dGluZ3MiLCAiaW5pdF9RdWVyeVNlcmlhbGl6ZXJTZXR0aW5ncyIsICJfX2VzbU1pbiIsICJpbXBvcnRfeG1sX2J1aWxkZXIiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAicGFyc2VYbWxCb2R5IiwgInBhcnNlWG1sRXJyb3JCb2R5IiwgImxvYWRSZXN0WG1sRXJyb3JDb2RlIiwgImluaXRfcGFyc2VYbWxCb2R5IiwgIl9fZXNtTWluIiwgImluaXRfY29tbW9uIiwgInN0cmVhbUJvZHkiLCAiY29udGV4dCIsICJjb2xsZWN0Qm9keVN0cmluZyIsICJlbmNvZGVkIiwgInBhcnNlZE9iaiIsICJlIiwgInRleHROb2RlTmFtZSIsICJrZXkiLCAicGFyc2VkT2JqVG9SZXR1cm4iLCAiZXJyb3JCb2R5IiwgInZhbHVlIiwgIm91dHB1dCIsICJkYXRhIiwgImltcG9ydF94bWxfYnVpbGRlciIsICJpbXBvcnRfcHJvdG9jb2xzIiwgImltcG9ydF9zY2hlbWEiLCAiaW1wb3J0X3NlcmRlIiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgImltcG9ydF91dGlsX2Jhc2U2NCIsICJYbWxTaGFwZVNlcmlhbGl6ZXIiLCAiaW5pdF9YbWxTaGFwZVNlcmlhbGl6ZXIiLCAiX19lc21NaW4iLCAiaW5pdF9Db25maWd1cmFibGVTZXJkZUNvbnRleHQiLCAiU2VyZGVDb250ZXh0Q29uZmlnIiwgInNldHRpbmdzIiwgInNjaGVtYSIsICJ2YWx1ZSIsICJucyIsICJ0cmFpdHMiLCAiYnl0ZXMiLCAic3RyIiwgImJ1ZmZlciIsICJwYXJlbnRYbWxucyIsICJuYW1lIiwgInN0cnVjdFhtbE5vZGUiLCAieG1sbnNBdHRyIiwgInhtbG5zIiwgIm1lbWJlck5hbWUiLCAibWVtYmVyU2NoZW1hIiwgInZhbCIsICJtZW1iZXJOb2RlIiwgIiR1bmtub3duIiwgImsiLCAidiIsICJub2RlIiwgImxpc3RNZW1iZXIiLCAiYXJyYXkiLCAiY29udGFpbmVyIiwgImxpc3RUcmFpdHMiLCAibGlzdFZhbHVlU2NoZW1hIiwgImxpc3RWYWx1ZVRyYWl0cyIsICJzcGFyc2UiLCAiZmxhdCIsICJ3cml0ZUl0ZW0iLCAic3RydWN0IiwgImxpc3RJdGVtTm9kZSIsICJsaXN0Tm9kZSIsICJtYXBNZW1iZXIiLCAibWFwIiwgImNvbnRhaW5lcklzTWFwIiwgIm1hcFRyYWl0cyIsICJtYXBLZXlTY2hlbWEiLCAia2V5VGFnIiwgIm1hcFZhbHVlU2NoZW1hIiwgIm1hcFZhbHVlVHJhaXRzIiwgInZhbHVlVGFnIiwgImFkZEtleVZhbHVlIiwgImVudHJ5IiwgImtleSIsICJrZXlOb2RlIiwgImtleVhtbG5zQXR0ciIsICJrZXlYbWxucyIsICJ2YWx1ZU5vZGUiLCAibWFwTm9kZSIsICJfc2NoZW1hIiwgIm5vZGVDb250ZW50cyIsICJpbnRvIiwgImNvbnRlbnQiLCAicHJlZml4IiwgIlhtbENvZGVjIiwgImluaXRfWG1sQ29kZWMiLCAiX19lc21NaW4iLCAiaW5pdF9Db25maWd1cmFibGVTZXJkZUNvbnRleHQiLCAiaW5pdF9YbWxTaGFwZURlc2VyaWFsaXplciIsICJpbml0X1htbFNoYXBlU2VyaWFsaXplciIsICJTZXJkZUNvbnRleHRDb25maWciLCAic2V0dGluZ3MiLCAic2VyaWFsaXplciIsICJYbWxTaGFwZVNlcmlhbGl6ZXIiLCAiZGVzZXJpYWxpemVyIiwgIlhtbFNoYXBlRGVzZXJpYWxpemVyIiwgImltcG9ydF9wcm90b2NvbHMiLCAiaW1wb3J0X3NjaGVtYSIsICJBd3NSZXN0WG1sUHJvdG9jb2wiLCAiaW5pdF9Bd3NSZXN0WG1sUHJvdG9jb2wiLCAiX19lc21NaW4iLCAiaW5pdF9Qcm90b2NvbExpYiIsICJpbml0X3BhcnNlWG1sQm9keSIsICJpbml0X1htbENvZGVjIiwgIlByb3RvY29sTGliIiwgIm9wdGlvbnMiLCAic2V0dGluZ3MiLCAiWG1sQ29kZWMiLCAib3BlcmF0aW9uU2NoZW1hIiwgImlucHV0IiwgImNvbnRleHQiLCAicmVxdWVzdCIsICJpbnB1dFNjaGVtYSIsICJjb250ZW50VHlwZSIsICJyZXNwb25zZSIsICJkYXRhT2JqZWN0IiwgIm1ldGFkYXRhIiwgImVycm9ySWRlbnRpZmllciIsICJsb2FkUmVzdFhtbEVycm9yQ29kZSIsICJrZXkiLCAiZXJyb3JTY2hlbWEiLCAiZXJyb3JNZXRhZGF0YSIsICJucyIsICJtZXNzYWdlIiwgIkVycm9yQ3RvciIsICJleGNlcHRpb24iLCAib3V0cHV0IiwgImVycm9yRGVzZXJpYWxpemVyIiwgIm5hbWUiLCAibWVtYmVyIiwgInRhcmdldCIsICJ2YWx1ZSIsICJwcm90b2NvbHNfZXhwb3J0cyIsICJfX2V4cG9ydCIsICJBd3NFYzJRdWVyeVByb3RvY29sIiwgIkF3c0pzb24xXzBQcm90b2NvbCIsICJBd3NKc29uMV8xUHJvdG9jb2wiLCAiQXdzSnNvblJwY1Byb3RvY29sIiwgIkF3c1F1ZXJ5UHJvdG9jb2wiLCAiQXdzUmVzdEpzb25Qcm90b2NvbCIsICJBd3NSZXN0WG1sUHJvdG9jb2wiLCAiQXdzU21pdGh5UnBjVjJDYm9yUHJvdG9jb2wiLCAiSnNvbkNvZGVjIiwgIkpzb25TaGFwZURlc2VyaWFsaXplciIsICJKc29uU2hhcGVTZXJpYWxpemVyIiwgIlF1ZXJ5U2hhcGVTZXJpYWxpemVyIiwgIlhtbENvZGVjIiwgIlhtbFNoYXBlRGVzZXJpYWxpemVyIiwgIlhtbFNoYXBlU2VyaWFsaXplciIsICJfdG9Cb29sIiwgIl90b051bSIsICJfdG9TdHIiLCAiYXdzRXhwZWN0VW5pb24iLCAibG9hZFJlc3RKc29uRXJyb3JDb2RlIiwgImxvYWRSZXN0WG1sRXJyb3JDb2RlIiwgInBhcnNlSnNvbkJvZHkiLCAicGFyc2VKc29uRXJyb3JCb2R5IiwgInBhcnNlWG1sQm9keSIsICJwYXJzZVhtbEVycm9yQm9keSIsICJpbml0X3Byb3RvY29scyIsICJfX2VzbU1pbiIsICJpbml0X0F3c1NtaXRoeVJwY1YyQ2JvclByb3RvY29sIiwgImluaXRfY29lcmNpbmdfc2VyaWFsaXplcnMiLCAiaW5pdF9Bd3NKc29uMV8wUHJvdG9jb2wiLCAiaW5pdF9Bd3NKc29uMV8xUHJvdG9jb2wiLCAiaW5pdF9Bd3NKc29uUnBjUHJvdG9jb2wiLCAiaW5pdF9Bd3NSZXN0SnNvblByb3RvY29sIiwgImluaXRfSnNvbkNvZGVjIiwgImluaXRfSnNvblNoYXBlRGVzZXJpYWxpemVyIiwgImluaXRfSnNvblNoYXBlU2VyaWFsaXplciIsICJpbml0X2F3c0V4cGVjdFVuaW9uIiwgImluaXRfcGFyc2VKc29uQm9keSIsICJpbml0X0F3c0VjMlF1ZXJ5UHJvdG9jb2wiLCAiaW5pdF9Bd3NRdWVyeVByb3RvY29sIiwgImluaXRfUXVlcnlTZXJpYWxpemVyU2V0dGluZ3MiLCAiaW5pdF9RdWVyeVNoYXBlU2VyaWFsaXplciIsICJpbml0X0F3c1Jlc3RYbWxQcm90b2NvbCIsICJpbml0X1htbENvZGVjIiwgImluaXRfWG1sU2hhcGVEZXNlcmlhbGl6ZXIiLCAiaW5pdF9YbWxTaGFwZVNlcmlhbGl6ZXIiLCAiaW5pdF9wYXJzZVhtbEJvZHkiLCAiZGlzdF9lc19leHBvcnRzIiwgIl9fZXhwb3J0IiwgIkFXU1NES1NpZ1Y0U2lnbmVyIiwgIkF3c0VjMlF1ZXJ5UHJvdG9jb2wiLCAiQXdzSnNvbjFfMFByb3RvY29sIiwgIkF3c0pzb24xXzFQcm90b2NvbCIsICJBd3NKc29uUnBjUHJvdG9jb2wiLCAiQXdzUXVlcnlQcm90b2NvbCIsICJBd3NSZXN0SnNvblByb3RvY29sIiwgIkF3c1Jlc3RYbWxQcm90b2NvbCIsICJBd3NTZGtTaWdWNEFTaWduZXIiLCAiQXdzU2RrU2lnVjRTaWduZXIiLCAiQXdzU21pdGh5UnBjVjJDYm9yUHJvdG9jb2wiLCAiSnNvbkNvZGVjIiwgIkpzb25TaGFwZURlc2VyaWFsaXplciIsICJKc29uU2hhcGVTZXJpYWxpemVyIiwgIk5PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9PUFRJT05TIiwgIk5PREVfU0lHVjRBX0NPTkZJR19PUFRJT05TIiwgIlF1ZXJ5U2hhcGVTZXJpYWxpemVyIiwgIlhtbENvZGVjIiwgIlhtbFNoYXBlRGVzZXJpYWxpemVyIiwgIlhtbFNoYXBlU2VyaWFsaXplciIsICJfdG9Cb29sIiwgIl90b051bSIsICJfdG9TdHIiLCAiYXdzRXhwZWN0VW5pb24iLCAiZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbiIsICJnZXRCZWFyZXJUb2tlbkVudktleSIsICJnZXRMb25nUG9sbFBsdWdpbiIsICJsb2FkUmVzdEpzb25FcnJvckNvZGUiLCAibG9hZFJlc3RYbWxFcnJvckNvZGUiLCAicGFyc2VKc29uQm9keSIsICJwYXJzZUpzb25FcnJvckJvZHkiLCAicGFyc2VYbWxCb2R5IiwgInBhcnNlWG1sRXJyb3JCb2R5IiwgInJlc29sdmVBV1NTREtTaWdWNENvbmZpZyIsICJyZXNvbHZlQXdzU2RrU2lnVjRBQ29uZmlnIiwgInJlc29sdmVBd3NTZGtTaWdWNENvbmZpZyIsICJzZXRDcmVkZW50aWFsRmVhdHVyZSIsICJzZXRGZWF0dXJlIiwgInNldFRva2VuRmVhdHVyZSIsICJzdGF0ZSIsICJ2YWxpZGF0ZVNpZ25pbmdQcm9wZXJ0aWVzIiwgImluaXRfZGlzdF9lcyIsICJfX2VzbU1pbiIsICJpbml0X2NsaWVudCIsICJpbml0X2h0dHBBdXRoU2NoZW1lcyIsICJpbml0X3Byb3RvY29scyIsICJyZXF1aXJlX2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgImNvcmVfMSIsICJ1dGlsX21pZGRsZXdhcmVfMSIsICJkZWZhdWx0U2VjcmV0c01hbmFnZXJIdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlciIsICJjb25maWciLCAiY29udGV4dCIsICJpbnB1dCIsICJjcmVhdGVBd3NBdXRoU2lndjRIdHRwQXV0aE9wdGlvbiIsICJhdXRoUGFyYW1ldGVycyIsICJkZWZhdWx0U2VjcmV0c01hbmFnZXJIdHRwQXV0aFNjaGVtZVByb3ZpZGVyIiwgIm9wdGlvbnMiLCAicmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnIiwgImNvbmZpZ18wIiwgInJlcXVpcmVfcGFja2FnZSIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgInJlcXVpcmVfZGlzdF9janMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgImNsaWVudCIsICJwcm9wZXJ0eVByb3ZpZGVyIiwgIkVOVl9LRVkiLCAiRU5WX1NFQ1JFVCIsICJFTlZfU0VTU0lPTiIsICJFTlZfRVhQSVJBVElPTiIsICJFTlZfQ1JFREVOVElBTF9TQ09QRSIsICJFTlZfQUNDT1VOVF9JRCIsICJmcm9tRW52IiwgImluaXQiLCAiYWNjZXNzS2V5SWQiLCAic2VjcmV0QWNjZXNzS2V5IiwgInNlc3Npb25Ub2tlbiIsICJleHBpcnkiLCAiY3JlZGVudGlhbFNjb3BlIiwgImFjY291bnRJZCIsICJjcmVkZW50aWFscyIsICJyZXF1aXJlX2NoZWNrVXJsIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJwcm9wZXJ0eV9wcm92aWRlcl8xIiwgIkVDU19DT05UQUlORVJfSE9TVCIsICJFS1NfQ09OVEFJTkVSX0hPU1RfSVB2NCIsICJFS1NfQ09OVEFJTkVSX0hPU1RfSVB2NiIsICJjaGVja1VybCIsICJ1cmwiLCAibG9nZ2VyIiwgImlwQ29tcG9uZW50cyIsICJpblJhbmdlIiwgImNvbXBvbmVudCIsICJudW0iLCAicmVxdWlyZV9yZXF1ZXN0SGVscGVycyIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAiY3JlYXRlR2V0UmVxdWVzdCIsICJnZXRDcmVkZW50aWFscyIsICJwcm9wZXJ0eV9wcm92aWRlcl8xIiwgInByb3RvY29sX2h0dHBfMSIsICJzbWl0aHlfY2xpZW50XzEiLCAidXRpbF9zdHJlYW1fMSIsICJ1cmwiLCAiYWNjIiwgImsiLCAidiIsICJyZXNwb25zZSIsICJsb2dnZXIiLCAic3RyIiwgInBhcnNlZCIsICJwYXJzZWRCb2R5IiwgInJlcXVpcmVfcmV0cnlfd3JhcHBlciIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAicmV0cnlXcmFwcGVyIiwgInRvUmV0cnkiLCAibWF4UmV0cmllcyIsICJkZWxheU1zIiwgImkiLCAicmVzb2x2ZSIsICJyZXF1aXJlX2Zyb21IdHRwIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJ0c2xpYl8xIiwgImNsaWVudF8xIiwgIm5vZGVfaHR0cF9oYW5kbGVyXzEiLCAicHJvcGVydHlfcHJvdmlkZXJfMSIsICJwcm9taXNlc18xIiwgImNoZWNrVXJsXzEiLCAicmVxdWVzdEhlbHBlcnNfMSIsICJyZXRyeV93cmFwcGVyXzEiLCAiQVdTX0NPTlRBSU5FUl9DUkVERU5USUFMU19SRUxBVElWRV9VUkkiLCAiREVGQVVMVF9MSU5LX0xPQ0FMX0hPU1QiLCAiQVdTX0NPTlRBSU5FUl9DUkVERU5USUFMU19GVUxMX1VSSSIsICJBV1NfQ09OVEFJTkVSX0FVVEhPUklaQVRJT05fVE9LRU5fRklMRSIsICJBV1NfQ09OVEFJTkVSX0FVVEhPUklaQVRJT05fVE9LRU4iLCAiZnJvbUh0dHAiLCAib3B0aW9ucyIsICJob3N0IiwgInJlbGF0aXZlIiwgImZ1bGwiLCAidG9rZW4iLCAidG9rZW5GaWxlIiwgIndhcm4iLCAidXJsIiwgInJlcXVlc3RIYW5kbGVyIiwgInJlcXVlc3QiLCAicmVzdWx0IiwgImNyZWRzIiwgImUiLCAicmVxdWlyZV9kaXN0X2NqcyIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAiZnJvbUh0dHBfMSIsICJyZXF1aXJlX2Rpc3RfY2pzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJwcm90b2NvbEh0dHAiLCAicmVzb2x2ZUhvc3RIZWFkZXJDb25maWciLCAiaW5wdXQiLCAiaG9zdEhlYWRlck1pZGRsZXdhcmUiLCAib3B0aW9ucyIsICJuZXh0IiwgImFyZ3MiLCAicmVxdWVzdCIsICJoYW5kbGVyUHJvdG9jb2wiLCAiaG9zdCIsICJob3N0SGVhZGVyTWlkZGxld2FyZU9wdGlvbnMiLCAiZ2V0SG9zdEhlYWRlclBsdWdpbiIsICJjbGllbnRTdGFjayIsICJyZXF1aXJlX2Rpc3RfY2pzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJsb2dnZXJNaWRkbGV3YXJlIiwgIm5leHQiLCAiY29udGV4dCIsICJhcmdzIiwgInJlc3BvbnNlIiwgImNsaWVudE5hbWUiLCAiY29tbWFuZE5hbWUiLCAibG9nZ2VyIiwgImR5bmFtb0RiRG9jdW1lbnRDbGllbnRPcHRpb25zIiwgIm92ZXJyaWRlSW5wdXRGaWx0ZXJTZW5zaXRpdmVMb2ciLCAib3ZlcnJpZGVPdXRwdXRGaWx0ZXJTZW5zaXRpdmVMb2ciLCAiaW5wdXRGaWx0ZXJTZW5zaXRpdmVMb2ciLCAib3V0cHV0RmlsdGVyU2Vuc2l0aXZlTG9nIiwgIiRtZXRhZGF0YSIsICJvdXRwdXRXaXRob3V0TWV0YWRhdGEiLCAiZXJyb3IiLCAibG9nZ2VyTWlkZGxld2FyZU9wdGlvbnMiLCAiZ2V0TG9nZ2VyUGx1Z2luIiwgIm9wdGlvbnMiLCAiY2xpZW50U3RhY2siLCAicmVxdWlyZV9yZWN1cnNpb25EZXRlY3Rpb25NaWRkbGV3YXJlIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJsYW1iZGFfaW52b2tlX3N0b3JlXzEiLCAicHJvdG9jb2xfaHR0cF8xIiwgIlRSQUNFX0lEX0hFQURFUl9OQU1FIiwgIkVOVl9MQU1CREFfRlVOQ1RJT05fTkFNRSIsICJFTlZfVFJBQ0VfSUQiLCAicmVjdXJzaW9uRGV0ZWN0aW9uTWlkZGxld2FyZSIsICJuZXh0IiwgImFyZ3MiLCAicmVxdWVzdCIsICJ0cmFjZUlkSGVhZGVyIiwgImgiLCAiZnVuY3Rpb25OYW1lIiwgInRyYWNlSWRGcm9tRW52IiwgInRyYWNlSWQiLCAibm9uRW1wdHlTdHJpbmciLCAic3RyIiwgInJlcXVpcmVfZGlzdF9janMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgInJlY3Vyc2lvbkRldGVjdGlvbk1pZGRsZXdhcmUiLCAicmVjdXJzaW9uRGV0ZWN0aW9uTWlkZGxld2FyZU9wdGlvbnMiLCAiZ2V0UmVjdXJzaW9uRGV0ZWN0aW9uUGx1Z2luIiwgIm9wdGlvbnMiLCAiY2xpZW50U3RhY2siLCAiayIsICJyZXF1aXJlX2Rpc3RfY2pzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJ1dGlsRW5kcG9pbnRzIiwgInVybFBhcnNlciIsICJpc1ZpcnR1YWxIb3N0YWJsZVMzQnVja2V0IiwgInZhbHVlIiwgImFsbG93U3ViRG9tYWlucyIsICJsYWJlbCIsICJBUk5fREVMSU1JVEVSIiwgIlJFU09VUkNFX0RFTElNSVRFUiIsICJwYXJzZUFybiIsICJzZWdtZW50cyIsICJhcm4iLCAicGFydGl0aW9uIiwgInNlcnZpY2UiLCAicmVnaW9uIiwgImFjY291bnRJZCIsICJyZXNvdXJjZVBhdGgiLCAicmVzb3VyY2VJZCIsICJyZXNvdXJjZSIsICJwYXJ0aXRpb25zIiwgInZlcnNpb24iLCAicGFydGl0aW9uc0luZm8iLCAic2VsZWN0ZWRQYXJ0aXRpb25zSW5mbyIsICJzZWxlY3RlZFVzZXJBZ2VudFByZWZpeCIsICJyZWdpb25zIiwgIm91dHB1dHMiLCAicmVnaW9uRGF0YSIsICJyZWdpb25SZWdleCIsICJERUZBVUxUX1BBUlRJVElPTiIsICJzZXRQYXJ0aXRpb25JbmZvIiwgInVzZXJBZ2VudFByZWZpeCIsICJ1c2VEZWZhdWx0UGFydGl0aW9uSW5mbyIsICJnZXRVc2VyQWdlbnRQcmVmaXgiLCAiYXdzRW5kcG9pbnRGdW5jdGlvbnMiLCAicmVzb2x2ZURlZmF1bHRBd3NSZWdpb25hbEVuZHBvaW50c0NvbmZpZyIsICJpbnB1dCIsICJlbmRwb2ludCIsICJ0b0VuZHBvaW50VjEiLCAic3RhdGUiLCAiZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbiIsICJpbml0X2VtaXRXYXJuaW5nSWZVbnN1cHBvcnRlZFZlcnNpb24iLCAiX19lc21NaW4iLCAidmVyc2lvbiIsICJ1c2VyTWFqb3JWZXJzaW9uIiwgInZ2IiwgImxvbmdQb2xsTWlkZGxld2FyZSIsICJsb25nUG9sbE1pZGRsZXdhcmVPcHRpb25zIiwgImdldExvbmdQb2xsUGx1Z2luIiwgImluaXRfbG9uZ1BvbGxNaWRkbGV3YXJlIiwgIl9fZXNtTWluIiwgIm5leHQiLCAiY29udGV4dCIsICJhcmdzIiwgIm9wdGlvbnMiLCAiY2xpZW50U3RhY2siLCAic2V0Q3JlZGVudGlhbEZlYXR1cmUiLCAiY3JlZGVudGlhbHMiLCAiZmVhdHVyZSIsICJ2YWx1ZSIsICJpbml0X3NldENyZWRlbnRpYWxGZWF0dXJlIiwgIl9fZXNtTWluIiwgInNldEZlYXR1cmUiLCAiY29udGV4dCIsICJmZWF0dXJlIiwgInZhbHVlIiwgImltcG9ydF91dGlsX3JldHJ5IiwgImluaXRfc2V0RmVhdHVyZSIsICJfX2VzbU1pbiIsICJzZXRUb2tlbkZlYXR1cmUiLCAidG9rZW4iLCAiZmVhdHVyZSIsICJ2YWx1ZSIsICJpbml0X3NldFRva2VuRmVhdHVyZSIsICJfX2VzbU1pbiIsICJjbGllbnRfZXhwb3J0cyIsICJfX2V4cG9ydCIsICJlbWl0V2FybmluZ0lmVW5zdXBwb3J0ZWRWZXJzaW9uIiwgImdldExvbmdQb2xsUGx1Z2luIiwgInNldENyZWRlbnRpYWxGZWF0dXJlIiwgInNldEZlYXR1cmUiLCAic2V0VG9rZW5GZWF0dXJlIiwgInN0YXRlIiwgImluaXRfY2xpZW50IiwgIl9fZXNtTWluIiwgImluaXRfZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbiIsICJpbml0X2xvbmdQb2xsTWlkZGxld2FyZSIsICJpbml0X3NldENyZWRlbnRpYWxGZWF0dXJlIiwgImluaXRfc2V0RmVhdHVyZSIsICJpbml0X3NldFRva2VuRmVhdHVyZSIsICJyZXF1aXJlX2Rpc3RfY2pzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJjb3JlIiwgInV0aWxFbmRwb2ludHMiLCAicHJvdG9jb2xIdHRwIiwgImNsaWVudCIsICJ1dGlsUmV0cnkiLCAiREVGQVVMVF9VQV9BUFBfSUQiLCAiaXNWYWxpZFVzZXJBZ2VudEFwcElkIiwgImFwcElkIiwgInJlc29sdmVVc2VyQWdlbnRDb25maWciLCAiaW5wdXQiLCAibm9ybWFsaXplZEFwcElkUHJvdmlkZXIiLCAiY3VzdG9tVXNlckFnZW50IiwgImxvZ2dlciIsICJBQ0NPVU5UX0lEX0VORFBPSU5UX1JFR0VYIiwgImNoZWNrRmVhdHVyZXMiLCAiY29udGV4dCIsICJjb25maWciLCAiYXJncyIsICJyZXRyeVN0cmF0ZWd5IiwgImVuZHBvaW50VjIiLCAiaWRlbnRpdHkiLCAiY3JlZGVudGlhbHMiLCAia2V5IiwgInZhbHVlIiwgIlVTRVJfQUdFTlQiLCAiWF9BTVpfVVNFUl9BR0VOVCIsICJTUEFDRSIsICJVQV9OQU1FX1NFUEFSQVRPUiIsICJVQV9OQU1FX0VTQ0FQRV9SRUdFWCIsICJVQV9WQUxVRV9FU0NBUEVfUkVHRVgiLCAiVUFfRVNDQVBFX0NIQVIiLCAiQllURV9MSU1JVCIsICJlbmNvZGVGZWF0dXJlcyIsICJmZWF0dXJlcyIsICJidWZmZXIiLCAidmFsIiwgInVzZXJBZ2VudE1pZGRsZXdhcmUiLCAib3B0aW9ucyIsICJuZXh0IiwgInJlcXVlc3QiLCAiaGVhZGVycyIsICJ1c2VyQWdlbnQiLCAiZXNjYXBlVXNlckFnZW50IiwgImRlZmF1bHRVc2VyQWdlbnQiLCAiYXdzQ29udGV4dCIsICJwcmVmaXgiLCAic2RrVXNlckFnZW50VmFsdWUiLCAibm9ybWFsVUFWYWx1ZSIsICJzZWN0aW9uIiwgInVzZXJBZ2VudFBhaXIiLCAibmFtZSIsICJwYXJ0IiwgInZlcnNpb24iLCAicHJlZml4U2VwYXJhdG9ySW5kZXgiLCAidWFOYW1lIiwgIml0ZW0iLCAiYWNjIiwgImluZGV4IiwgImdldFVzZXJBZ2VudE1pZGRsZXdhcmVPcHRpb25zIiwgImdldFVzZXJBZ2VudFBsdWdpbiIsICJjbGllbnRTdGFjayIsICJpbXBvcnRfcHJvdG9jb2xfaHR0cCIsICJnZXREYXRlSGVhZGVyIiwgImluaXRfZ2V0RGF0ZUhlYWRlciIsICJfX2VzbU1pbiIsICJyZXNwb25zZSIsICJnZXRTa2V3Q29ycmVjdGVkRGF0ZSIsICJpbml0X2dldFNrZXdDb3JyZWN0ZWREYXRlIiwgIl9fZXNtTWluIiwgInN5c3RlbUNsb2NrT2Zmc2V0IiwgImlzQ2xvY2tTa2V3ZWQiLCAiaW5pdF9pc0Nsb2NrU2tld2VkIiwgIl9fZXNtTWluIiwgImluaXRfZ2V0U2tld0NvcnJlY3RlZERhdGUiLCAiY2xvY2tUaW1lIiwgInN5c3RlbUNsb2NrT2Zmc2V0IiwgImdldFNrZXdDb3JyZWN0ZWREYXRlIiwgImdldFVwZGF0ZWRTeXN0ZW1DbG9ja09mZnNldCIsICJpbml0X2dldFVwZGF0ZWRTeXN0ZW1DbG9ja09mZnNldCIsICJfX2VzbU1pbiIsICJpbml0X2lzQ2xvY2tTa2V3ZWQiLCAiY2xvY2tUaW1lIiwgImN1cnJlbnRTeXN0ZW1DbG9ja09mZnNldCIsICJjbG9ja1RpbWVJbk1zIiwgImlzQ2xvY2tTa2V3ZWQiLCAiaW5pdF91dGlscyIsICJfX2VzbU1pbiIsICJpbml0X2dldERhdGVIZWFkZXIiLCAiaW5pdF9nZXRTa2V3Q29ycmVjdGVkRGF0ZSIsICJpbml0X2dldFVwZGF0ZWRTeXN0ZW1DbG9ja09mZnNldCIsICJpbXBvcnRfcHJvdG9jb2xfaHR0cCIsICJ0aHJvd1NpZ25pbmdQcm9wZXJ0eUVycm9yIiwgInZhbGlkYXRlU2lnbmluZ1Byb3BlcnRpZXMiLCAiQXdzU2RrU2lnVjRTaWduZXIiLCAiaW5pdF9Bd3NTZGtTaWdWNFNpZ25lciIsICJfX2VzbU1pbiIsICJpbml0X3V0aWxzIiwgIm5hbWUiLCAicHJvcGVydHkiLCAic2lnbmluZ1Byb3BlcnRpZXMiLCAiY29udGV4dCIsICJjb25maWciLCAiYXV0aFNjaGVtZSIsICJzaWduZXIiLCAic2lnbmluZ1JlZ2lvbiIsICJzaWduaW5nUmVnaW9uU2V0IiwgInNpZ25pbmdOYW1lIiwgImh0dHBSZXF1ZXN0IiwgImlkZW50aXR5IiwgInZhbGlkYXRlZFByb3BzIiwgImhhbmRsZXJFeGVjdXRpb25Db250ZXh0IiwgImZpcnN0IiwgInNlY29uZCIsICJnZXRTa2V3Q29ycmVjdGVkRGF0ZSIsICJlcnJvciIsICJzZXJ2ZXJUaW1lIiwgImdldERhdGVIZWFkZXIiLCAiaW5pdGlhbFN5c3RlbUNsb2NrT2Zmc2V0IiwgImdldFVwZGF0ZWRTeXN0ZW1DbG9ja09mZnNldCIsICJodHRwUmVzcG9uc2UiLCAiZGF0ZUhlYWRlciIsICJpbXBvcnRfcHJvdG9jb2xfaHR0cCIsICJBd3NTZGtTaWdWNEFTaWduZXIiLCAiaW5pdF9Bd3NTZGtTaWdWNEFTaWduZXIiLCAiX19lc21NaW4iLCAiaW5pdF91dGlscyIsICJpbml0X0F3c1Nka1NpZ1Y0U2lnbmVyIiwgIkF3c1Nka1NpZ1Y0U2lnbmVyIiwgImh0dHBSZXF1ZXN0IiwgImlkZW50aXR5IiwgInNpZ25pbmdQcm9wZXJ0aWVzIiwgImNvbmZpZyIsICJzaWduZXIiLCAic2lnbmluZ1JlZ2lvbiIsICJzaWduaW5nUmVnaW9uU2V0IiwgInNpZ25pbmdOYW1lIiwgInZhbGlkYXRlU2lnbmluZ1Byb3BlcnRpZXMiLCAibXVsdGlSZWdpb25PdmVycmlkZSIsICJnZXRTa2V3Q29ycmVjdGVkRGF0ZSIsICJnZXRBcnJheUZvckNvbW1hU2VwYXJhdGVkU3RyaW5nIiwgImluaXRfZ2V0QXJyYXlGb3JDb21tYVNlcGFyYXRlZFN0cmluZyIsICJfX2VzbU1pbiIsICJzdHIiLCAiaXRlbSIsICJnZXRCZWFyZXJUb2tlbkVudktleSIsICJpbml0X2dldEJlYXJlclRva2VuRW52S2V5IiwgIl9fZXNtTWluIiwgInNpZ25pbmdOYW1lIiwgIk5PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9FTlZfS0VZIiwgIk5PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9DT05GSUdfS0VZIiwgIk5PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9PUFRJT05TIiwgImluaXRfTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX09QVElPTlMiLCAiX19lc21NaW4iLCAiaW5pdF9nZXRBcnJheUZvckNvbW1hU2VwYXJhdGVkU3RyaW5nIiwgImluaXRfZ2V0QmVhcmVyVG9rZW5FbnZLZXkiLCAiZW52IiwgIm9wdGlvbnMiLCAiZ2V0QmVhcmVyVG9rZW5FbnZLZXkiLCAiZ2V0QXJyYXlGb3JDb21tYVNlcGFyYXRlZFN0cmluZyIsICJwcm9maWxlIiwgImltcG9ydF9jb3JlIiwgImltcG9ydF9wcm9wZXJ0eV9wcm92aWRlciIsICJyZXNvbHZlQXdzU2RrU2lnVjRBQ29uZmlnIiwgIk5PREVfU0lHVjRBX0NPTkZJR19PUFRJT05TIiwgImluaXRfcmVzb2x2ZUF3c1Nka1NpZ1Y0QUNvbmZpZyIsICJfX2VzbU1pbiIsICJjb25maWciLCAiZW52IiwgIl8iLCAicHJvZmlsZSIsICJub3JtYWxpemVDcmVkZW50aWFsUHJvdmlkZXIiLCAiY29uZmlnIiwgImNyZWRlbnRpYWxzIiwgImNyZWRlbnRpYWxEZWZhdWx0UHJvdmlkZXIiLCAiY3JlZGVudGlhbHNQcm92aWRlciIsICJiaW5kQ2FsbGVyQ29uZmlnIiwgImZuIiwgIm9wdGlvbnMiLCAiaW1wb3J0X2NvcmUiLCAiaW1wb3J0X3NpZ25hdHVyZV92NCIsICJyZXNvbHZlQXdzU2RrU2lnVjRDb25maWciLCAiaW5pdF9yZXNvbHZlQXdzU2RrU2lnVjRDb25maWciLCAiX19lc21NaW4iLCAiaW5pdF9jbGllbnQiLCAiaW5wdXRDcmVkZW50aWFscyIsICJpc1VzZXJTdXBwbGllZCIsICJyZXNvbHZlZENyZWRlbnRpYWxzIiwgIm1lbW9pemVkUHJvdmlkZXIiLCAiYm91bmRQcm92aWRlciIsICJpc0NyZWRlbnRpYWxPYmplY3QiLCAiYXR0cmlidXRlZENyZWRzIiwgInNldENyZWRlbnRpYWxGZWF0dXJlIiwgInNpZ25pbmdFc2NhcGVQYXRoIiwgInN5c3RlbUNsb2NrT2Zmc2V0IiwgInNoYTI1NiIsICJzaWduZXIiLCAicmVnaW9uIiwgInJlZ2lvbkluZm8iLCAic2lnbmluZ1JlZ2lvbiIsICJzaWduaW5nU2VydmljZSIsICJwYXJhbXMiLCAiU2lnbmVyQ3RvciIsICJhdXRoU2NoZW1lIiwgImluaXRfYXdzX3NkayIsICJfX2VzbU1pbiIsICJpbml0X0F3c1Nka1NpZ1Y0U2lnbmVyIiwgImluaXRfQXdzU2RrU2lnVjRBU2lnbmVyIiwgImluaXRfTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX09QVElPTlMiLCAiaW5pdF9yZXNvbHZlQXdzU2RrU2lnVjRBQ29uZmlnIiwgImluaXRfcmVzb2x2ZUF3c1Nka1NpZ1Y0Q29uZmlnIiwgImluaXRfaHR0cEF1dGhTY2hlbWVzIiwgIl9fZXNtTWluIiwgImluaXRfYXdzX3NkayIsICJpbml0X2dldEJlYXJlclRva2VuRW52S2V5IiwgImNyZWF0ZUF3c0F1dGhTaWd2NEh0dHBBdXRoT3B0aW9uIiwgImF1dGhQYXJhbWV0ZXJzIiwgImNvbmZpZyIsICJjb250ZXh0IiwgImNyZWF0ZVNtaXRoeUFwaU5vQXV0aEh0dHBBdXRoT3B0aW9uIiwgImltcG9ydF91dGlsX21pZGRsZXdhcmUiLCAiZGVmYXVsdFNTT09JRENIdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlciIsICJkZWZhdWx0U1NPT0lEQ0h0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAicmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnIiwgImluaXRfaHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJfX2VzbU1pbiIsICJpbml0X2h0dHBBdXRoU2NoZW1lcyIsICJpbnB1dCIsICJvcHRpb25zIiwgImNvbmZpZ18wIiwgInJlc29sdmVBd3NTZGtTaWdWNENvbmZpZyIsICJyZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzIiwgImNvbW1vblBhcmFtcyIsICJpbml0X0VuZHBvaW50UGFyYW1ldGVycyIsICJfX2VzbU1pbiIsICJvcHRpb25zIiwgInBhY2thZ2VfZGVmYXVsdCIsICJpbml0X3BhY2thZ2UiLCAiX19lc21NaW4iLCAicmVxdWlyZV9kaXN0X2NqcyIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAibm9kZV9vcyIsICJub2RlX3Byb2Nlc3MiLCAidXRpbENvbmZpZ1Byb3ZpZGVyIiwgInByb21pc2VzIiwgIm5vZGVfcGF0aCIsICJtaWRkbGV3YXJlVXNlckFnZW50IiwgImdldFJ1bnRpbWVVc2VyQWdlbnRQYWlyIiwgInJ1bnRpbWVzVG9DaGVjayIsICJydW50aW1lIiwgImdldE5vZGVNb2R1bGVzUGFyZW50RGlycyIsICJkaXJuYW1lIiwgImN3ZCIsICJub3JtYWxpemVkUGF0aCIsICJwYXJ0cyIsICJub2RlTW9kdWxlc0luZGV4IiwgInBhcmVudERpciIsICJTRU1WRVJfUkVHRVgiLCAiZ2V0U2FuaXRpemVkVHlwZVNjcmlwdFZlcnNpb24iLCAidmVyc2lvbiIsICJtYXRjaCIsICJtYWpvciIsICJtaW5vciIsICJwYXRjaCIsICJwcmVyZWxlYXNlIiwgIkFMTE9XRURfUFJFRklYRVMiLCAiQUxMT1dFRF9ESVNUX1RBR1MiLCAiZ2V0U2FuaXRpemVkRGV2VHlwZVNjcmlwdFZlcnNpb24iLCAicHJlZml4IiwgInAiLCAic2FuaXRpemVkVHlwZVNjcmlwdFZlcnNpb24iLCAidHNjVmVyc2lvbiIsICJUU19QQUNLQUdFX0pTT04iLCAiZ2V0VHlwZVNjcmlwdFVzZXJBZ2VudFBhaXIiLCAiaXNUeXBlU2NyaXB0RGV0ZWN0aW9uRGlzYWJsZWQiLCAibm9kZU1vZHVsZXNQYXJlbnREaXJzIiwgInZlcnNpb25Gcm9tQXBwIiwgIm5vZGVNb2R1bGVzUGFyZW50RGlyIiwgImFwcFBhY2thZ2VKc29uUGF0aCIsICJwYWNrYWdlSnNvbiIsICJkZXBlbmRlbmNpZXMiLCAiZGV2RGVwZW5kZW5jaWVzIiwgInZlcnNpb25Gcm9tTm9kZU1vZHVsZXMiLCAidHNQYWNrYWdlSnNvblBhdGgiLCAic2FuaXRpemVkVmVyc2lvbiIsICJjcnRBdmFpbGFiaWxpdHkiLCAiaXNDcnRBdmFpbGFibGUiLCAiY3JlYXRlRGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyIiwgInNlcnZpY2VJZCIsICJjbGllbnRWZXJzaW9uIiwgInJ1bnRpbWVVc2VyQWdlbnRQYWlyIiwgImNvbmZpZyIsICJzZWN0aW9ucyIsICJ0eXBlc2NyaXB0VXNlckFnZW50UGFpciIsICJjcnRBdmFpbGFibGUiLCAiYXBwSWQiLCAiZGVmYXVsdFVzZXJBZ2VudCIsICJVQV9BUFBfSURfRU5WX05BTUUiLCAiVUFfQVBQX0lEX0lOSV9OQU1FIiwgIlVBX0FQUF9JRF9JTklfTkFNRV9ERVBSRUNBVEVEIiwgIk5PREVfQVBQX0lEX0NPTkZJR19PUFRJT05TIiwgImVudiIsICJwcm9maWxlIiwgImltcG9ydF9zY2hlbWEiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAiUHJvdG9jb2xMaWIiLCAiaW5pdF9Qcm90b2NvbExpYiIsICJfX2VzbU1pbiIsICJxdWVyeUNvbXBhdCIsICJkZWZhdWx0Q29udGVudFR5cGUiLCAiaW5wdXRTY2hlbWEiLCAibWVtYmVycyIsICJodHRwUGF5bG9hZE1lbWJlciIsICJtIiwgIm1lZGlhVHlwZSIsICJodHRwUXVlcnkiLCAiaHR0cFF1ZXJ5UGFyYW1zIiwgImh0dHBIZWFkZXIiLCAiaHR0cExhYmVsIiwgImh0dHBQcmVmaXhIZWFkZXJzIiwgImVycm9ySWRlbnRpZmllciIsICJkZWZhdWx0TmFtZXNwYWNlIiwgInJlc3BvbnNlIiwgImRhdGFPYmplY3QiLCAibWV0YWRhdGEiLCAiZ2V0RXJyb3JTY2hlbWEiLCAiZXJyb3JOYW1lIiwgImVycm9yTWV0YWRhdGEiLCAic3ludGhldGljIiwgImJhc2VFeGNlcHRpb25TY2hlbWEiLCAiRXJyb3JDdG9yIiwgImQiLCAibWVzc2FnZSIsICJjb21wb3NpdGUiLCAibmFtZXNwYWNlIiwgInN0YXRpY1JlZ2lzdHJ5IiwgImRlZmF1bHRTeW50aGV0aWNSZWdpc3RyeSIsICJleGNlcHRpb24iLCAiYWRkaXRpb25zIiwgIm1zZyIsICJlcnJvciIsICJlcnJvck9iaiIsICJyZXFJZCIsICJvdXRwdXQiLCAicXVlcnlFcnJvckhlYWRlciIsICJDb2RlIiwgIlR5cGUiLCAia2V5cyIsICJFcnJvciIsICJpIiwgImsiLCAicXVlcnlDb21wYXRFcnJvckRhdGEiLCAiZXJyb3JEYXRhIiwgInJlZ2lzdHJ5IiwgInNjaGVtYSIsICJpbXBvcnRfY2JvciIsICJpbXBvcnRfc2NoZW1hIiwgIkF3c1NtaXRoeVJwY1YyQ2JvclByb3RvY29sIiwgImluaXRfQXdzU21pdGh5UnBjVjJDYm9yUHJvdG9jb2wiLCAiX19lc21NaW4iLCAiaW5pdF9Qcm90b2NvbExpYiIsICJkZWZhdWx0TmFtZXNwYWNlIiwgImVycm9yVHlwZVJlZ2lzdHJpZXMiLCAiYXdzUXVlcnlDb21wYXRpYmxlIiwgIlByb3RvY29sTGliIiwgIm9wZXJhdGlvblNjaGVtYSIsICJpbnB1dCIsICJjb250ZXh0IiwgInJlcXVlc3QiLCAicmVzcG9uc2UiLCAiZGF0YU9iamVjdCIsICJtZXRhZGF0YSIsICJlcnJvck5hbWUiLCAiY29tcGF0SGVhZGVyIiwgImVycm9yU2NoZW1hIiwgImVycm9yTWV0YWRhdGEiLCAibnMiLCAibWVzc2FnZSIsICJFcnJvckN0b3IiLCAiZXhjZXB0aW9uIiwgIm91dHB1dCIsICJuYW1lIiwgIm1lbWJlciIsICJfdG9TdHIiLCAiX3RvQm9vbCIsICJfdG9OdW0iLCAiaW5pdF9jb2VyY2luZ19zZXJpYWxpemVycyIsICJfX2VzbU1pbiIsICJ2YWwiLCAid2FybmluZyIsICJsb3dlcmNhc2UiLCAibnVtIiwgIlNlcmRlQ29udGV4dENvbmZpZyIsICJpbml0X0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dCIsICJfX2VzbU1pbiIsICJzZXJkZUNvbnRleHQiLCAiVW5pb25TZXJkZSIsICJpbml0X1VuaW9uU2VyZGUiLCAiX19lc21NaW4iLCAiZnJvbSIsICJ0byIsICJrZXlzIiwgInNldCIsICJrZXkiLCAiayIsICJ2IiwgImpzb25SZXZpdmVyIiwgImtleSIsICJ2YWx1ZSIsICJjb250ZXh0IiwgIm51bWVyaWNTdHJpbmciLCAiaW1wb3J0X3NlcmRlIiwgImluaXRfanNvblJldml2ZXIiLCAiX19lc21NaW4iLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAiaW1wb3J0X3V0aWxfdXRmOCIsICJjb2xsZWN0Qm9keVN0cmluZyIsICJpbml0X2NvbW1vbiIsICJfX2VzbU1pbiIsICJzdHJlYW1Cb2R5IiwgImNvbnRleHQiLCAiYm9keSIsICJwYXJzZUpzb25Cb2R5IiwgInBhcnNlSnNvbkVycm9yQm9keSIsICJmaW5kS2V5IiwgInNhbml0aXplRXJyb3JDb2RlIiwgImxvYWRSZXN0SnNvbkVycm9yQ29kZSIsICJpbml0X3BhcnNlSnNvbkJvZHkiLCAiX19lc21NaW4iLCAiaW5pdF9jb21tb24iLCAic3RyZWFtQm9keSIsICJjb250ZXh0IiwgImNvbGxlY3RCb2R5U3RyaW5nIiwgImVuY29kZWQiLCAiZSIsICJlcnJvckJvZHkiLCAidmFsdWUiLCAib2JqZWN0IiwgImtleSIsICJrIiwgInJhd1ZhbHVlIiwgImNsZWFuVmFsdWUiLCAib3V0cHV0IiwgImRhdGEiLCAiaGVhZGVyS2V5IiwgImNvZGVLZXkiLCAiaW1wb3J0X3Byb3RvY29scyIsICJpbXBvcnRfc2NoZW1hIiwgImltcG9ydF9zZXJkZSIsICJpbXBvcnRfdXRpbF9iYXNlNjQiLCAiSnNvblNoYXBlRGVzZXJpYWxpemVyIiwgImluaXRfSnNvblNoYXBlRGVzZXJpYWxpemVyIiwgIl9fZXNtTWluIiwgImluaXRfQ29uZmlndXJhYmxlU2VyZGVDb250ZXh0IiwgImluaXRfVW5pb25TZXJkZSIsICJpbml0X2pzb25SZXZpdmVyIiwgImluaXRfcGFyc2VKc29uQm9keSIsICJTZXJkZUNvbnRleHRDb25maWciLCAic2V0dGluZ3MiLCAic2NoZW1hIiwgImRhdGEiLCAianNvblJldml2ZXIiLCAicGFyc2VKc29uQm9keSIsICJ2YWx1ZSIsICJpc09iamVjdCIsICJucyIsICJyZWNvcmQiLCAidW5pb24iLCAib3V0IiwgIm5hbWVNYXAiLCAianNvbk5hbWUiLCAidW5pb25TZXJkZSIsICJVbmlvblNlcmRlIiwgIm1lbWJlck5hbWUiLCAibWVtYmVyU2NoZW1hIiwgImZyb21LZXkiLCAiayIsICJ2IiwgInQiLCAibGlzdE1lbWJlciIsICJpdGVtIiwgIm1hcE1lbWJlciIsICJfayIsICJtZWRpYVR5cGUiLCAidW50eXBlZCIsICJpbXBvcnRfc2VyZGUiLCAiTlVNRVJJQ19DT05UUk9MX0NIQVIiLCAiSnNvblJlcGxhY2VyIiwgImluaXRfanNvblJlcGxhY2VyIiwgIl9fZXNtTWluIiwgImtleSIsICJ2YWx1ZSIsICJ2IiwgInMiLCAianNvbiIsICJpbXBvcnRfcHJvdG9jb2xzIiwgImltcG9ydF9zY2hlbWEiLCAiaW1wb3J0X3NlcmRlIiwgImltcG9ydF91dGlsX2Jhc2U2NCIsICJKc29uU2hhcGVTZXJpYWxpemVyIiwgImluaXRfSnNvblNoYXBlU2VyaWFsaXplciIsICJfX2VzbU1pbiIsICJpbml0X0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dCIsICJpbml0X2pzb25SZXBsYWNlciIsICJTZXJkZUNvbnRleHRDb25maWciLCAic2V0dGluZ3MiLCAic2NoZW1hIiwgInZhbHVlIiwgInJvb3RTY2hlbWEiLCAidXNlUmVwbGFjZXIiLCAicmVwbGFjZXIiLCAiSnNvblJlcGxhY2VyIiwgImNvbnRhaW5lciIsICJpc09iamVjdCIsICJucyIsICJyZWNvcmQiLCAib3V0IiwgImpzb25OYW1lIiwgIm5hbWVNYXAiLCAib3V0Q291bnQiLCAibWVtYmVyTmFtZSIsICJtZW1iZXJTY2hlbWEiLCAic2VyaWFsaXphYmxlVmFsdWUiLCAidGFyZ2V0S2V5IiwgIiR1bmtub3duIiwgImsiLCAidiIsICJsaXN0TWVtYmVyIiwgInNwYXJzZSIsICJpdGVtIiwgIm1hcE1lbWJlciIsICJfayIsICJfdiIsICJtZWRpYVR5cGUiLCAiSnNvbkNvZGVjIiwgImluaXRfSnNvbkNvZGVjIiwgIl9fZXNtTWluIiwgImluaXRfQ29uZmlndXJhYmxlU2VyZGVDb250ZXh0IiwgImluaXRfSnNvblNoYXBlRGVzZXJpYWxpemVyIiwgImluaXRfSnNvblNoYXBlU2VyaWFsaXplciIsICJTZXJkZUNvbnRleHRDb25maWciLCAic2V0dGluZ3MiLCAic2VyaWFsaXplciIsICJKc29uU2hhcGVTZXJpYWxpemVyIiwgImRlc2VyaWFsaXplciIsICJKc29uU2hhcGVEZXNlcmlhbGl6ZXIiLCAiaW1wb3J0X3Byb3RvY29scyIsICJpbXBvcnRfc2NoZW1hIiwgIkF3c0pzb25ScGNQcm90b2NvbCIsICJpbml0X0F3c0pzb25ScGNQcm90b2NvbCIsICJfX2VzbU1pbiIsICJpbml0X1Byb3RvY29sTGliIiwgImluaXRfSnNvbkNvZGVjIiwgImluaXRfcGFyc2VKc29uQm9keSIsICJkZWZhdWx0TmFtZXNwYWNlIiwgImVycm9yVHlwZVJlZ2lzdHJpZXMiLCAic2VydmljZVRhcmdldCIsICJhd3NRdWVyeUNvbXBhdGlibGUiLCAianNvbkNvZGVjIiwgIkpzb25Db2RlYyIsICJQcm90b2NvbExpYiIsICJvcGVyYXRpb25TY2hlbWEiLCAiaW5wdXQiLCAiY29udGV4dCIsICJyZXF1ZXN0IiwgInJlc3BvbnNlIiwgImRhdGFPYmplY3QiLCAibWV0YWRhdGEiLCAiZXJyb3JJZGVudGlmaWVyIiwgImxvYWRSZXN0SnNvbkVycm9yQ29kZSIsICJlcnJvclNjaGVtYSIsICJlcnJvck1ldGFkYXRhIiwgIm5zIiwgIm1lc3NhZ2UiLCAiRXJyb3JDdG9yIiwgImV4Y2VwdGlvbiIsICJvdXRwdXQiLCAiZXJyb3JEZXNlcmlhbGl6ZXIiLCAibmFtZSIsICJtZW1iZXIiLCAiQXdzSnNvbjFfMFByb3RvY29sIiwgImluaXRfQXdzSnNvbjFfMFByb3RvY29sIiwgIl9fZXNtTWluIiwgImluaXRfQXdzSnNvblJwY1Byb3RvY29sIiwgIkF3c0pzb25ScGNQcm90b2NvbCIsICJkZWZhdWx0TmFtZXNwYWNlIiwgImVycm9yVHlwZVJlZ2lzdHJpZXMiLCAic2VydmljZVRhcmdldCIsICJhd3NRdWVyeUNvbXBhdGlibGUiLCAianNvbkNvZGVjIiwgIkF3c0pzb24xXzFQcm90b2NvbCIsICJpbml0X0F3c0pzb24xXzFQcm90b2NvbCIsICJfX2VzbU1pbiIsICJpbml0X0F3c0pzb25ScGNQcm90b2NvbCIsICJBd3NKc29uUnBjUHJvdG9jb2wiLCAiZGVmYXVsdE5hbWVzcGFjZSIsICJlcnJvclR5cGVSZWdpc3RyaWVzIiwgInNlcnZpY2VUYXJnZXQiLCAiYXdzUXVlcnlDb21wYXRpYmxlIiwgImpzb25Db2RlYyIsICJpbXBvcnRfcHJvdG9jb2xzIiwgImltcG9ydF9zY2hlbWEiLCAiQXdzUmVzdEpzb25Qcm90b2NvbCIsICJpbml0X0F3c1Jlc3RKc29uUHJvdG9jb2wiLCAiX19lc21NaW4iLCAiaW5pdF9Qcm90b2NvbExpYiIsICJpbml0X0pzb25Db2RlYyIsICJpbml0X3BhcnNlSnNvbkJvZHkiLCAiUHJvdG9jb2xMaWIiLCAiZGVmYXVsdE5hbWVzcGFjZSIsICJlcnJvclR5cGVSZWdpc3RyaWVzIiwgInNldHRpbmdzIiwgIkpzb25Db2RlYyIsICJzZXJkZUNvbnRleHQiLCAib3BlcmF0aW9uU2NoZW1hIiwgImlucHV0IiwgImNvbnRleHQiLCAicmVxdWVzdCIsICJpbnB1dFNjaGVtYSIsICJjb250ZW50VHlwZSIsICJyZXNwb25zZSIsICJvdXRwdXQiLCAib3V0cHV0U2NoZW1hIiwgIm5hbWUiLCAibWVtYmVyIiwgImRhdGFPYmplY3QiLCAibWV0YWRhdGEiLCAiZXJyb3JJZGVudGlmaWVyIiwgImxvYWRSZXN0SnNvbkVycm9yQ29kZSIsICJlcnJvclNjaGVtYSIsICJlcnJvck1ldGFkYXRhIiwgIm5zIiwgIm1lc3NhZ2UiLCAiRXJyb3JDdG9yIiwgImV4Y2VwdGlvbiIsICJlcnJvckRlc2VyaWFsaXplciIsICJ0YXJnZXQiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAiYXdzRXhwZWN0VW5pb24iLCAiaW5pdF9hd3NFeHBlY3RVbmlvbiIsICJfX2VzbU1pbiIsICJ2YWx1ZSIsICJyZXF1aXJlX25vZGFibGVfZW50aXRpZXMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgIlNQRUNJQUxfQ0hBUlMiLCAidmFsaWRhdGVFbnRpdHlOYW1lIiwgIm5hbWUiLCAiY2giLCAibWVyZ2VFbnRpdHlNYXBzIiwgIm1hcHMiLCAib3V0IiwgIm1hcCIsICJrZXkiLCAicmF3IiwgInZhbCIsICJMSU1JVF9USUVSX0VYVEVSTkFMIiwgIkxJTUlUX1RJRVJfQkFTRSIsICJMSU1JVF9USUVSX0FMTCIsICJwYXJzZUxpbWl0VGllcnMiLCAiTkNSX0xFVkVMIiwgIlhNTDEwX0FMTE9XRURfQzAiLCAicGFyc2VOQ1JDb25maWciLCAibmNyIiwgInhtbFZlcnNpb24iLCAib25MZXZlbCIsICJudWxsTGV2ZWwiLCAiY2xhbXBlZE51bGwiLCAiRW50aXR5RGVjb2RlckltcGwiLCAib3B0aW9ucyIsICJyIiwgIm5jckNmZyIsICJ2YWx1ZSIsICJ2ZXJzaW9uIiwgInN0ciIsICJvcmlnaW5hbCIsICJjaHVua3MiLCAibGVuIiwgImxhc3QiLCAibGltaXRFeHBhbnNpb25zIiwgImxpbWl0TGVuZ3RoIiwgImNoZWNrTGltaXRzIiwgImoiLCAidG9rZW4iLCAicmVwbGFjZW1lbnQiLCAidGllciIsICJuY3JSZXN1bHQiLCAicmVzb2x2ZWQiLCAiZGVsdGEiLCAicmVzdWx0IiwgImNwIiwgImFjdGlvbiIsICJzZWNvbmQiLCAibWluaW11bSIsICJlZmZlY3RpdmUiLCAicmVxdWlyZV94bWxfcGFyc2VyIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJwYXJzZVhNTCIsICJmYXN0X3htbF9wYXJzZXJfMSIsICJub2RhYmxlX2VudGl0aWVzXzEiLCAiZW50aXR5RGVjb2RlciIsICJwYXJzZXIiLCAiZW50aXRpZXMiLCAidGV4dCIsICJ2ZXJzaW9uIiwgIl8iLCAidmFsIiwgInhtbFN0cmluZyIsICJyZXF1aXJlX2Rpc3RfY2pzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJ4bWxQYXJzZXIiLCAiQVRUUl9FU0NBUEVfUkUiLCAiQVRUUl9FU0NBUEVfTUFQIiwgImVzY2FwZUF0dHJpYnV0ZSIsICJ2YWx1ZSIsICJjaCIsICJFTEVNRU5UX0VTQ0FQRV9SRSIsICJFTEVNRU5UX0VTQ0FQRV9NQVAiLCAiZXNjYXBlRWxlbWVudCIsICJYbWxUZXh0IiwgIlhtbE5vZGUiLCAiX1htbE5vZGUiLCAibmFtZSIsICJjaGlsZFRleHQiLCAid2l0aE5hbWUiLCAibm9kZSIsICJjaGlsZHJlbiIsICJjaGlsZCIsICJpbnB1dCIsICJmaWVsZCIsICJsaXN0TmFtZSIsICJtZW1iZXJOYW1lIiwgInZhbHVlUHJvdmlkZXIiLCAibm9kZXMiLCAiY29udGFpbmVyTm9kZSIsICJoYXNDaGlsZHJlbiIsICJ4bWxUZXh0IiwgImF0dHJpYnV0ZXMiLCAiYXR0cmlidXRlTmFtZSIsICJhdHRyaWJ1dGUiLCAiYyIsICJpbXBvcnRfeG1sX2J1aWxkZXIiLCAiaW1wb3J0X3Byb3RvY29scyIsICJpbXBvcnRfc2NoZW1hIiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgImltcG9ydF91dGlsX3V0ZjgiLCAiWG1sU2hhcGVEZXNlcmlhbGl6ZXIiLCAiaW5pdF9YbWxTaGFwZURlc2VyaWFsaXplciIsICJfX2VzbU1pbiIsICJpbml0X0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dCIsICJpbml0X1VuaW9uU2VyZGUiLCAiU2VyZGVDb250ZXh0Q29uZmlnIiwgInNldHRpbmdzIiwgInNlcmRlQ29udGV4dCIsICJzY2hlbWEiLCAiYnl0ZXMiLCAia2V5IiwgIm5zIiwgIm1lbWJlclNjaGVtYXMiLCAibWVtYmVyTnMiLCAib3V0cHV0IiwgIm1lbWJlck5hbWUiLCAieG1sU3RyaW5nIiwgInBhcnNlZE9iamVjdCIsICJfc2NoZW1hIiwgInZhbHVlIiwgInRyYWl0cyIsICJmbGF0IiwgImxpc3RWYWx1ZSIsICJidWZmZXIiLCAic291cmNlS2V5IiwgInNvdXJjZSIsICJzb3VyY2VBcnJheSIsICJ2IiwgImtleU5zIiwgImVudHJpZXMiLCAia2V5UHJvcGVydHkiLCAidmFsdWVQcm9wZXJ0eSIsICJlbnRyeSIsICJ1bmlvbiIsICJ1bmlvblNlcmRlIiwgIlVuaW9uU2VyZGUiLCAibWVtYmVyU2NoZW1hIiwgIm1lbWJlclRyYWl0cyIsICJ4bWxPYmplY3RLZXkiLCAieG1sIiwgInBhcnNlZE9iaiIsICJlIiwgInRleHROb2RlTmFtZSIsICJwYXJzZWRPYmpUb1JldHVybiIsICJpbXBvcnRfcHJvdG9jb2xzIiwgImltcG9ydF9zY2hlbWEiLCAiaW1wb3J0X3NlcmRlIiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgImltcG9ydF91dGlsX2Jhc2U2NCIsICJRdWVyeVNoYXBlU2VyaWFsaXplciIsICJpbml0X1F1ZXJ5U2hhcGVTZXJpYWxpemVyIiwgIl9fZXNtTWluIiwgImluaXRfQ29uZmlndXJhYmxlU2VyZGVDb250ZXh0IiwgIlNlcmRlQ29udGV4dENvbmZpZyIsICJzZXR0aW5ncyIsICJzY2hlbWEiLCAidmFsdWUiLCAicHJlZml4IiwgIm5zIiwgIm1lbWJlciIsICJmbGF0IiwgImkiLCAiaXRlbSIsICJ0cmFpdHMiLCAic3VmZml4IiwgImtleSIsICJrZXlTY2hlbWEiLCAibWVtYmVyU2NoZW1hIiwgImsiLCAidiIsICJrZXlUcmFpdHMiLCAia2V5U3VmZml4IiwgInZhbFRyYWl0cyIsICJ2YWx1ZVN1ZmZpeCIsICJ2YWx1ZUtleSIsICJkaWRXcml0ZU1lbWJlciIsICJtZW1iZXJOYW1lIiwgIiR1bmtub3duIiwgInN0ciIsICJ4bWxOYW1lIiwgImVjMlF1ZXJ5TmFtZSIsICJrZXlTb3VyY2UiLCAiZWMyIiwgImNhcGl0YWxpemVLZXlzIiwgImltcG9ydF9wcm90b2NvbHMiLCAiaW1wb3J0X3NjaGVtYSIsICJBd3NRdWVyeVByb3RvY29sIiwgImluaXRfQXdzUXVlcnlQcm90b2NvbCIsICJfX2VzbU1pbiIsICJpbml0X1Byb3RvY29sTGliIiwgImluaXRfWG1sU2hhcGVEZXNlcmlhbGl6ZXIiLCAiaW5pdF9RdWVyeVNoYXBlU2VyaWFsaXplciIsICJQcm90b2NvbExpYiIsICJvcHRpb25zIiwgInNldHRpbmdzIiwgIlF1ZXJ5U2hhcGVTZXJpYWxpemVyIiwgIlhtbFNoYXBlRGVzZXJpYWxpemVyIiwgInNlcmRlQ29udGV4dCIsICJvcGVyYXRpb25TY2hlbWEiLCAiaW5wdXQiLCAiY29udGV4dCIsICJyZXF1ZXN0IiwgImFjdGlvbiIsICJyZXNwb25zZSIsICJkZXNlcmlhbGl6ZXIiLCAibnMiLCAiZGF0YU9iamVjdCIsICJieXRlcyIsICJoZWFkZXIiLCAidmFsdWUiLCAic2hvcnROYW1lIiwgImF3c1F1ZXJ5UmVzdWx0S2V5IiwgIm1ldGFkYXRhIiwgImVycm9ySWRlbnRpZmllciIsICJlcnJvckRhdGEiLCAibWVzc2FnZSIsICJlcnJvclNjaGVtYSIsICJlcnJvck1ldGFkYXRhIiwgIkVycm9yQ3RvciIsICJleGNlcHRpb24iLCAib3V0cHV0IiwgIm5hbWUiLCAibWVtYmVyIiwgInRhcmdldCIsICJkYXRhIiwgImNvZGUiLCAiQXdzRWMyUXVlcnlQcm90b2NvbCIsICJpbml0X0F3c0VjMlF1ZXJ5UHJvdG9jb2wiLCAiX19lc21NaW4iLCAiaW5pdF9Bd3NRdWVyeVByb3RvY29sIiwgIkF3c1F1ZXJ5UHJvdG9jb2wiLCAib3B0aW9ucyIsICJlYzJTZXR0aW5ncyIsICJpbml0X1F1ZXJ5U2VyaWFsaXplclNldHRpbmdzIiwgIl9fZXNtTWluIiwgImltcG9ydF94bWxfYnVpbGRlciIsICJpbXBvcnRfc21pdGh5X2NsaWVudCIsICJwYXJzZVhtbEJvZHkiLCAicGFyc2VYbWxFcnJvckJvZHkiLCAibG9hZFJlc3RYbWxFcnJvckNvZGUiLCAiaW5pdF9wYXJzZVhtbEJvZHkiLCAiX19lc21NaW4iLCAiaW5pdF9jb21tb24iLCAic3RyZWFtQm9keSIsICJjb250ZXh0IiwgImNvbGxlY3RCb2R5U3RyaW5nIiwgImVuY29kZWQiLCAicGFyc2VkT2JqIiwgImUiLCAidGV4dE5vZGVOYW1lIiwgImtleSIsICJwYXJzZWRPYmpUb1JldHVybiIsICJlcnJvckJvZHkiLCAidmFsdWUiLCAib3V0cHV0IiwgImRhdGEiLCAiaW1wb3J0X3htbF9idWlsZGVyIiwgImltcG9ydF9wcm90b2NvbHMiLCAiaW1wb3J0X3NjaGVtYSIsICJpbXBvcnRfc2VyZGUiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAiaW1wb3J0X3V0aWxfYmFzZTY0IiwgIlhtbFNoYXBlU2VyaWFsaXplciIsICJpbml0X1htbFNoYXBlU2VyaWFsaXplciIsICJfX2VzbU1pbiIsICJpbml0X0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dCIsICJTZXJkZUNvbnRleHRDb25maWciLCAic2V0dGluZ3MiLCAic2NoZW1hIiwgInZhbHVlIiwgIm5zIiwgInRyYWl0cyIsICJieXRlcyIsICJzdHIiLCAiYnVmZmVyIiwgInBhcmVudFhtbG5zIiwgIm5hbWUiLCAic3RydWN0WG1sTm9kZSIsICJ4bWxuc0F0dHIiLCAieG1sbnMiLCAibWVtYmVyTmFtZSIsICJtZW1iZXJTY2hlbWEiLCAidmFsIiwgIm1lbWJlck5vZGUiLCAiJHVua25vd24iLCAiayIsICJ2IiwgIm5vZGUiLCAibGlzdE1lbWJlciIsICJhcnJheSIsICJjb250YWluZXIiLCAibGlzdFRyYWl0cyIsICJsaXN0VmFsdWVTY2hlbWEiLCAibGlzdFZhbHVlVHJhaXRzIiwgInNwYXJzZSIsICJmbGF0IiwgIndyaXRlSXRlbSIsICJzdHJ1Y3QiLCAibGlzdEl0ZW1Ob2RlIiwgImxpc3ROb2RlIiwgIm1hcE1lbWJlciIsICJtYXAiLCAiY29udGFpbmVySXNNYXAiLCAibWFwVHJhaXRzIiwgIm1hcEtleVNjaGVtYSIsICJrZXlUYWciLCAibWFwVmFsdWVTY2hlbWEiLCAibWFwVmFsdWVUcmFpdHMiLCAidmFsdWVUYWciLCAiYWRkS2V5VmFsdWUiLCAiZW50cnkiLCAia2V5IiwgImtleU5vZGUiLCAia2V5WG1sbnNBdHRyIiwgImtleVhtbG5zIiwgInZhbHVlTm9kZSIsICJtYXBOb2RlIiwgIl9zY2hlbWEiLCAibm9kZUNvbnRlbnRzIiwgImludG8iLCAiY29udGVudCIsICJwcmVmaXgiLCAiWG1sQ29kZWMiLCAiaW5pdF9YbWxDb2RlYyIsICJfX2VzbU1pbiIsICJpbml0X0NvbmZpZ3VyYWJsZVNlcmRlQ29udGV4dCIsICJpbml0X1htbFNoYXBlRGVzZXJpYWxpemVyIiwgImluaXRfWG1sU2hhcGVTZXJpYWxpemVyIiwgIlNlcmRlQ29udGV4dENvbmZpZyIsICJzZXR0aW5ncyIsICJzZXJpYWxpemVyIiwgIlhtbFNoYXBlU2VyaWFsaXplciIsICJkZXNlcmlhbGl6ZXIiLCAiWG1sU2hhcGVEZXNlcmlhbGl6ZXIiLCAiaW1wb3J0X3Byb3RvY29scyIsICJpbXBvcnRfc2NoZW1hIiwgIkF3c1Jlc3RYbWxQcm90b2NvbCIsICJpbml0X0F3c1Jlc3RYbWxQcm90b2NvbCIsICJfX2VzbU1pbiIsICJpbml0X1Byb3RvY29sTGliIiwgImluaXRfcGFyc2VYbWxCb2R5IiwgImluaXRfWG1sQ29kZWMiLCAiUHJvdG9jb2xMaWIiLCAib3B0aW9ucyIsICJzZXR0aW5ncyIsICJYbWxDb2RlYyIsICJvcGVyYXRpb25TY2hlbWEiLCAiaW5wdXQiLCAiY29udGV4dCIsICJyZXF1ZXN0IiwgImlucHV0U2NoZW1hIiwgImNvbnRlbnRUeXBlIiwgInJlc3BvbnNlIiwgImRhdGFPYmplY3QiLCAibWV0YWRhdGEiLCAiZXJyb3JJZGVudGlmaWVyIiwgImxvYWRSZXN0WG1sRXJyb3JDb2RlIiwgImtleSIsICJlcnJvclNjaGVtYSIsICJlcnJvck1ldGFkYXRhIiwgIm5zIiwgIm1lc3NhZ2UiLCAiRXJyb3JDdG9yIiwgImV4Y2VwdGlvbiIsICJvdXRwdXQiLCAiZXJyb3JEZXNlcmlhbGl6ZXIiLCAibmFtZSIsICJtZW1iZXIiLCAidGFyZ2V0IiwgInZhbHVlIiwgInByb3RvY29sc19leHBvcnRzIiwgIl9fZXhwb3J0IiwgIkF3c0VjMlF1ZXJ5UHJvdG9jb2wiLCAiQXdzSnNvbjFfMFByb3RvY29sIiwgIkF3c0pzb24xXzFQcm90b2NvbCIsICJBd3NKc29uUnBjUHJvdG9jb2wiLCAiQXdzUXVlcnlQcm90b2NvbCIsICJBd3NSZXN0SnNvblByb3RvY29sIiwgIkF3c1Jlc3RYbWxQcm90b2NvbCIsICJBd3NTbWl0aHlScGNWMkNib3JQcm90b2NvbCIsICJKc29uQ29kZWMiLCAiSnNvblNoYXBlRGVzZXJpYWxpemVyIiwgIkpzb25TaGFwZVNlcmlhbGl6ZXIiLCAiUXVlcnlTaGFwZVNlcmlhbGl6ZXIiLCAiWG1sQ29kZWMiLCAiWG1sU2hhcGVEZXNlcmlhbGl6ZXIiLCAiWG1sU2hhcGVTZXJpYWxpemVyIiwgIl90b0Jvb2wiLCAiX3RvTnVtIiwgIl90b1N0ciIsICJhd3NFeHBlY3RVbmlvbiIsICJsb2FkUmVzdEpzb25FcnJvckNvZGUiLCAibG9hZFJlc3RYbWxFcnJvckNvZGUiLCAicGFyc2VKc29uQm9keSIsICJwYXJzZUpzb25FcnJvckJvZHkiLCAicGFyc2VYbWxCb2R5IiwgInBhcnNlWG1sRXJyb3JCb2R5IiwgImluaXRfcHJvdG9jb2xzIiwgIl9fZXNtTWluIiwgImluaXRfQXdzU21pdGh5UnBjVjJDYm9yUHJvdG9jb2wiLCAiaW5pdF9jb2VyY2luZ19zZXJpYWxpemVycyIsICJpbml0X0F3c0pzb24xXzBQcm90b2NvbCIsICJpbml0X0F3c0pzb24xXzFQcm90b2NvbCIsICJpbml0X0F3c0pzb25ScGNQcm90b2NvbCIsICJpbml0X0F3c1Jlc3RKc29uUHJvdG9jb2wiLCAiaW5pdF9Kc29uQ29kZWMiLCAiaW5pdF9Kc29uU2hhcGVEZXNlcmlhbGl6ZXIiLCAiaW5pdF9Kc29uU2hhcGVTZXJpYWxpemVyIiwgImluaXRfYXdzRXhwZWN0VW5pb24iLCAiaW5pdF9wYXJzZUpzb25Cb2R5IiwgImluaXRfQXdzRWMyUXVlcnlQcm90b2NvbCIsICJpbml0X0F3c1F1ZXJ5UHJvdG9jb2wiLCAiaW5pdF9RdWVyeVNlcmlhbGl6ZXJTZXR0aW5ncyIsICJpbml0X1F1ZXJ5U2hhcGVTZXJpYWxpemVyIiwgImluaXRfQXdzUmVzdFhtbFByb3RvY29sIiwgImluaXRfWG1sQ29kZWMiLCAiaW5pdF9YbWxTaGFwZURlc2VyaWFsaXplciIsICJpbml0X1htbFNoYXBlU2VyaWFsaXplciIsICJpbml0X3BhcnNlWG1sQm9keSIsICJpbXBvcnRfdXRpbF9lbmRwb2ludHMiLCAiayIsICJhIiwgImIiLCAiYyIsICJkIiwgImUiLCAiZiIsICJnIiwgImgiLCAiaSIsICJqIiwgIl9kYXRhIiwgInJvb3QiLCAiciIsICJub2RlcyIsICJiZGQiLCAiaW5pdF9iZGQiLCAiX19lc21NaW4iLCAiaW1wb3J0X3V0aWxfZW5kcG9pbnRzIiwgImNhY2hlIiwgImRlZmF1bHRFbmRwb2ludFJlc29sdmVyIiwgImluaXRfZW5kcG9pbnRSZXNvbHZlciIsICJfX2VzbU1pbiIsICJpbml0X2JkZCIsICJlbmRwb2ludFBhcmFtcyIsICJjb250ZXh0IiwgImJkZCIsICJpbXBvcnRfc21pdGh5X2NsaWVudCIsICJTU09PSURDU2VydmljZUV4Y2VwdGlvbiIsICJpbml0X1NTT09JRENTZXJ2aWNlRXhjZXB0aW9uIiwgIl9fZXNtTWluIiwgIl9TU09PSURDU2VydmljZUV4Y2VwdGlvbiIsICJfX1NlcnZpY2VFeGNlcHRpb24iLCAib3B0aW9ucyIsICJBY2Nlc3NEZW5pZWRFeGNlcHRpb24iLCAiQXV0aG9yaXphdGlvblBlbmRpbmdFeGNlcHRpb24iLCAiRXhwaXJlZFRva2VuRXhjZXB0aW9uIiwgIkludGVybmFsU2VydmVyRXhjZXB0aW9uIiwgIkludmFsaWRDbGllbnRFeGNlcHRpb24iLCAiSW52YWxpZEdyYW50RXhjZXB0aW9uIiwgIkludmFsaWRSZXF1ZXN0RXhjZXB0aW9uIiwgIkludmFsaWRTY29wZUV4Y2VwdGlvbiIsICJTbG93RG93bkV4Y2VwdGlvbiIsICJVbmF1dGhvcml6ZWRDbGllbnRFeGNlcHRpb24iLCAiVW5zdXBwb3J0ZWRHcmFudFR5cGVFeGNlcHRpb24iLCAiaW5pdF9lcnJvcnMiLCAiX19lc21NaW4iLCAiaW5pdF9TU09PSURDU2VydmljZUV4Y2VwdGlvbiIsICJfQWNjZXNzRGVuaWVkRXhjZXB0aW9uIiwgIlNTT09JRENTZXJ2aWNlRXhjZXB0aW9uIiwgIm9wdHMiLCAiX0F1dGhvcml6YXRpb25QZW5kaW5nRXhjZXB0aW9uIiwgIl9FeHBpcmVkVG9rZW5FeGNlcHRpb24iLCAiX0ludGVybmFsU2VydmVyRXhjZXB0aW9uIiwgIl9JbnZhbGlkQ2xpZW50RXhjZXB0aW9uIiwgIl9JbnZhbGlkR3JhbnRFeGNlcHRpb24iLCAiX0ludmFsaWRSZXF1ZXN0RXhjZXB0aW9uIiwgIl9JbnZhbGlkU2NvcGVFeGNlcHRpb24iLCAiX1Nsb3dEb3duRXhjZXB0aW9uIiwgIl9VbmF1dGhvcml6ZWRDbGllbnRFeGNlcHRpb24iLCAiX1Vuc3VwcG9ydGVkR3JhbnRUeXBlRXhjZXB0aW9uIiwgImltcG9ydF9zY2hlbWEiLCAiX0FERSIsICJfQVBFIiwgIl9BVCIsICJfQ1MiLCAiX0NUIiwgIl9DVFIiLCAiX0NUUnIiLCAiX0NWIiwgIl9FVEUiLCAiX0lDRSIsICJfSUdFIiwgIl9JUkUiLCAiX0lTRSIsICJfSVNFbiIsICJfSVQiLCAiX1JUIiwgIl9TREUiLCAiX1VDRSIsICJfVUdURSIsICJfYVQiLCAiX2MiLCAiX2NJIiwgIl9jUyIsICJfY1YiLCAiX2NvIiwgIl9kQyIsICJfZSIsICJfZUkiLCAiX2VkIiwgIl9nVCIsICJfaCIsICJfaEUiLCAiX2lUIiwgIl9yIiwgIl9yVCIsICJfclUiLCAiX3MiLCAiX3NjIiwgIl9zZSIsICJfdFQiLCAibjAiLCAiX3NfcmVnaXN0cnkiLCAiU1NPT0lEQ1NlcnZpY2VFeGNlcHRpb24kIiwgIm4wX3JlZ2lzdHJ5IiwgIkFjY2Vzc0RlbmllZEV4Y2VwdGlvbiQiLCAiQXV0aG9yaXphdGlvblBlbmRpbmdFeGNlcHRpb24kIiwgIkV4cGlyZWRUb2tlbkV4Y2VwdGlvbiQiLCAiSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb24kIiwgIkludmFsaWRDbGllbnRFeGNlcHRpb24kIiwgIkludmFsaWRHcmFudEV4Y2VwdGlvbiQiLCAiSW52YWxpZFJlcXVlc3RFeGNlcHRpb24kIiwgIkludmFsaWRTY29wZUV4Y2VwdGlvbiQiLCAiU2xvd0Rvd25FeGNlcHRpb24kIiwgIlVuYXV0aG9yaXplZENsaWVudEV4Y2VwdGlvbiQiLCAiVW5zdXBwb3J0ZWRHcmFudFR5cGVFeGNlcHRpb24kIiwgImVycm9yVHlwZVJlZ2lzdHJpZXMiLCAiQWNjZXNzVG9rZW4iLCAiQ2xpZW50U2VjcmV0IiwgIkNvZGVWZXJpZmllciIsICJJZFRva2VuIiwgIlJlZnJlc2hUb2tlbiIsICJDcmVhdGVUb2tlblJlcXVlc3QkIiwgIkNyZWF0ZVRva2VuUmVzcG9uc2UkIiwgIkNyZWF0ZVRva2VuJCIsICJpbml0X3NjaGVtYXNfMCIsICJfX2VzbU1pbiIsICJpbml0X2Vycm9ycyIsICJpbml0X1NTT09JRENTZXJ2aWNlRXhjZXB0aW9uIiwgIlNTT09JRENTZXJ2aWNlRXhjZXB0aW9uIiwgIkFjY2Vzc0RlbmllZEV4Y2VwdGlvbiIsICJBdXRob3JpemF0aW9uUGVuZGluZ0V4Y2VwdGlvbiIsICJFeHBpcmVkVG9rZW5FeGNlcHRpb24iLCAiSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb24iLCAiSW52YWxpZENsaWVudEV4Y2VwdGlvbiIsICJJbnZhbGlkR3JhbnRFeGNlcHRpb24iLCAiSW52YWxpZFJlcXVlc3RFeGNlcHRpb24iLCAiSW52YWxpZFNjb3BlRXhjZXB0aW9uIiwgIlNsb3dEb3duRXhjZXB0aW9uIiwgIlVuYXV0aG9yaXplZENsaWVudEV4Y2VwdGlvbiIsICJVbnN1cHBvcnRlZEdyYW50VHlwZUV4Y2VwdGlvbiIsICJpbXBvcnRfY29yZSIsICJpbXBvcnRfc21pdGh5X2NsaWVudCIsICJpbXBvcnRfdXJsX3BhcnNlciIsICJpbXBvcnRfdXRpbF9iYXNlNjQiLCAiaW1wb3J0X3V0aWxfdXRmOCIsICJnZXRSdW50aW1lQ29uZmlnIiwgImluaXRfcnVudGltZUNvbmZpZ19zaGFyZWQiLCAiX19lc21NaW4iLCAiaW5pdF9odHRwQXV0aFNjaGVtZXMiLCAiaW5pdF9wcm90b2NvbHMiLCAiaW5pdF9odHRwQXV0aFNjaGVtZVByb3ZpZGVyIiwgImluaXRfZW5kcG9pbnRSZXNvbHZlciIsICJpbml0X3NjaGVtYXNfMCIsICJjb25maWciLCAiZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIiLCAiZGVmYXVsdFNTT09JRENIdHRwQXV0aFNjaGVtZVByb3ZpZGVyIiwgImlwYyIsICJBd3NTZGtTaWdWNFNpZ25lciIsICJBd3NSZXN0SnNvblByb3RvY29sIiwgImVycm9yVHlwZVJlZ2lzdHJpZXMiLCAiaW1wb3J0X3V0aWxfdXNlcl9hZ2VudF9ub2RlIiwgImltcG9ydF9jb25maWdfcmVzb2x2ZXIiLCAiaW1wb3J0X2hhc2hfbm9kZSIsICJpbXBvcnRfbWlkZGxld2FyZV9yZXRyeSIsICJpbXBvcnRfbm9kZV9jb25maWdfcHJvdmlkZXIiLCAiaW1wb3J0X25vZGVfaHR0cF9oYW5kbGVyIiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgImltcG9ydF91dGlsX2JvZHlfbGVuZ3RoX25vZGUiLCAiaW1wb3J0X3V0aWxfZGVmYXVsdHNfbW9kZV9ub2RlIiwgImltcG9ydF91dGlsX3JldHJ5IiwgImdldFJ1bnRpbWVDb25maWciLCAiaW5pdF9ydW50aW1lQ29uZmlnIiwgIl9fZXNtTWluIiwgImluaXRfcGFja2FnZSIsICJpbml0X2NsaWVudCIsICJpbml0X2h0dHBBdXRoU2NoZW1lcyIsICJpbml0X3J1bnRpbWVDb25maWdfc2hhcmVkIiwgImNvbmZpZyIsICJkZWZhdWx0c01vZGUiLCAiZGVmYXVsdENvbmZpZ1Byb3ZpZGVyIiwgImNsaWVudFNoYXJlZFZhbHVlcyIsICJlbWl0V2FybmluZ0lmVW5zdXBwb3J0ZWRWZXJzaW9uIiwgImxvYWRlckNvbmZpZyIsICJsb2FkTm9kZUNvbmZpZyIsICJOT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfT1BUSU9OUyIsICJwYWNrYWdlX2RlZmF1bHQiLCAiUmVxdWVzdEhhbmRsZXIiLCAicmVxdWlyZV9zdHNSZWdpb25EZWZhdWx0UmVzb2x2ZXIiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgInN0c1JlZ2lvbkRlZmF1bHRSZXNvbHZlciIsICJjb25maWdfcmVzb2x2ZXJfMSIsICJub2RlX2NvbmZpZ19wcm92aWRlcl8xIiwgImxvYWRlckNvbmZpZyIsICJyZXF1aXJlX2Rpc3RfY2pzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJzdHNSZWdpb25EZWZhdWx0UmVzb2x2ZXIiLCAiY29uZmlnUmVzb2x2ZXIiLCAiZ2V0QXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiIsICJydW50aW1lQ29uZmlnIiwgInJlZ2lvbiIsICJyZXNvbHZlQXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiIsICJhd3NSZWdpb25FeHRlbnNpb25Db25maWd1cmF0aW9uIiwgImsiLCAiZ2V0SHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uIiwgInJlc29sdmVIdHRwQXV0aFJ1bnRpbWVDb25maWciLCAiaW5pdF9odHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24iLCAiX19lc21NaW4iLCAicnVudGltZUNvbmZpZyIsICJfaHR0cEF1dGhTY2hlbWVzIiwgIl9odHRwQXV0aFNjaGVtZVByb3ZpZGVyIiwgIl9jcmVkZW50aWFscyIsICJodHRwQXV0aFNjaGVtZSIsICJpbmRleCIsICJzY2hlbWUiLCAiaHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJjcmVkZW50aWFscyIsICJjb25maWciLCAiaW1wb3J0X3JlZ2lvbl9jb25maWdfcmVzb2x2ZXIiLCAiaW1wb3J0X3Byb3RvY29sX2h0dHAiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAicmVzb2x2ZVJ1bnRpbWVFeHRlbnNpb25zIiwgImluaXRfcnVudGltZUV4dGVuc2lvbnMiLCAiX19lc21NaW4iLCAiaW5pdF9odHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24iLCAicnVudGltZUNvbmZpZyIsICJleHRlbnNpb25zIiwgImV4dGVuc2lvbkNvbmZpZ3VyYXRpb24iLCAiZ2V0SHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uIiwgImV4dGVuc2lvbiIsICJyZXNvbHZlSHR0cEF1dGhSdW50aW1lQ29uZmlnIiwgImltcG9ydF9taWRkbGV3YXJlX2hvc3RfaGVhZGVyIiwgImltcG9ydF9taWRkbGV3YXJlX2xvZ2dlciIsICJpbXBvcnRfbWlkZGxld2FyZV9yZWN1cnNpb25fZGV0ZWN0aW9uIiwgImltcG9ydF9taWRkbGV3YXJlX3VzZXJfYWdlbnQiLCAiaW1wb3J0X2NvbmZpZ19yZXNvbHZlciIsICJpbXBvcnRfY29yZSIsICJpbXBvcnRfc2NoZW1hIiwgImltcG9ydF9taWRkbGV3YXJlX2NvbnRlbnRfbGVuZ3RoIiwgImltcG9ydF9taWRkbGV3YXJlX2VuZHBvaW50IiwgImltcG9ydF9taWRkbGV3YXJlX3JldHJ5IiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgIlNTT09JRENDbGllbnQiLCAiaW5pdF9TU09PSURDQ2xpZW50IiwgIl9fZXNtTWluIiwgImluaXRfaHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJpbml0X0VuZHBvaW50UGFyYW1ldGVycyIsICJpbml0X3J1bnRpbWVDb25maWciLCAiaW5pdF9ydW50aW1lRXh0ZW5zaW9ucyIsICJfX0NsaWVudCIsICJjb25maWd1cmF0aW9uIiwgIl9jb25maWdfMCIsICJnZXRSdW50aW1lQ29uZmlnIiwgIl9jb25maWdfMSIsICJyZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzIiwgIl9jb25maWdfMiIsICJfY29uZmlnXzMiLCAiX2NvbmZpZ180IiwgIl9jb25maWdfNSIsICJfY29uZmlnXzYiLCAiX2NvbmZpZ183IiwgInJlc29sdmVIdHRwQXV0aFNjaGVtZUNvbmZpZyIsICJfY29uZmlnXzgiLCAicmVzb2x2ZVJ1bnRpbWVFeHRlbnNpb25zIiwgImRlZmF1bHRTU09PSURDSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIiLCAiY29uZmlnIiwgImltcG9ydF9taWRkbGV3YXJlX2VuZHBvaW50IiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgIkNyZWF0ZVRva2VuQ29tbWFuZCIsICJpbml0X0NyZWF0ZVRva2VuQ29tbWFuZCIsICJfX2VzbU1pbiIsICJpbml0X0VuZHBvaW50UGFyYW1ldGVycyIsICJpbml0X3NjaGVtYXNfMCIsICIkQ29tbWFuZCIsICJjb21tb25QYXJhbXMiLCAiQ29tbWFuZCIsICJjcyIsICJjb25maWciLCAibyIsICJDcmVhdGVUb2tlbiQiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAiY29tbWFuZHMiLCAiU1NPT0lEQyIsICJpbml0X1NTT09JREMiLCAiX19lc21NaW4iLCAiaW5pdF9DcmVhdGVUb2tlbkNvbW1hbmQiLCAiaW5pdF9TU09PSURDQ2xpZW50IiwgIkNyZWF0ZVRva2VuQ29tbWFuZCIsICJTU09PSURDQ2xpZW50IiwgImluaXRfY29tbWFuZHMiLCAiX19lc21NaW4iLCAiaW5pdF9DcmVhdGVUb2tlbkNvbW1hbmQiLCAiQWNjZXNzRGVuaWVkRXhjZXB0aW9uUmVhc29uIiwgIkludmFsaWRSZXF1ZXN0RXhjZXB0aW9uUmVhc29uIiwgImluaXRfZW51bXMiLCAiX19lc21NaW4iLCAiaW5pdF9tb2RlbHNfMCIsICJfX2VzbU1pbiIsICJzc29fb2lkY19leHBvcnRzIiwgIl9fZXhwb3J0IiwgIiRDb21tYW5kIiwgIkFjY2Vzc0RlbmllZEV4Y2VwdGlvbiIsICJBY2Nlc3NEZW5pZWRFeGNlcHRpb24kIiwgIkFjY2Vzc0RlbmllZEV4Y2VwdGlvblJlYXNvbiIsICJBdXRob3JpemF0aW9uUGVuZGluZ0V4Y2VwdGlvbiIsICJBdXRob3JpemF0aW9uUGVuZGluZ0V4Y2VwdGlvbiQiLCAiQ3JlYXRlVG9rZW4kIiwgIkNyZWF0ZVRva2VuQ29tbWFuZCIsICJDcmVhdGVUb2tlblJlcXVlc3QkIiwgIkNyZWF0ZVRva2VuUmVzcG9uc2UkIiwgIkV4cGlyZWRUb2tlbkV4Y2VwdGlvbiIsICJFeHBpcmVkVG9rZW5FeGNlcHRpb24kIiwgIkludGVybmFsU2VydmVyRXhjZXB0aW9uIiwgIkludGVybmFsU2VydmVyRXhjZXB0aW9uJCIsICJJbnZhbGlkQ2xpZW50RXhjZXB0aW9uIiwgIkludmFsaWRDbGllbnRFeGNlcHRpb24kIiwgIkludmFsaWRHcmFudEV4Y2VwdGlvbiIsICJJbnZhbGlkR3JhbnRFeGNlcHRpb24kIiwgIkludmFsaWRSZXF1ZXN0RXhjZXB0aW9uIiwgIkludmFsaWRSZXF1ZXN0RXhjZXB0aW9uJCIsICJJbnZhbGlkUmVxdWVzdEV4Y2VwdGlvblJlYXNvbiIsICJJbnZhbGlkU2NvcGVFeGNlcHRpb24iLCAiSW52YWxpZFNjb3BlRXhjZXB0aW9uJCIsICJTU09PSURDIiwgIlNTT09JRENDbGllbnQiLCAiU1NPT0lEQ1NlcnZpY2VFeGNlcHRpb24iLCAiU1NPT0lEQ1NlcnZpY2VFeGNlcHRpb24kIiwgIlNsb3dEb3duRXhjZXB0aW9uIiwgIlNsb3dEb3duRXhjZXB0aW9uJCIsICJVbmF1dGhvcml6ZWRDbGllbnRFeGNlcHRpb24iLCAiVW5hdXRob3JpemVkQ2xpZW50RXhjZXB0aW9uJCIsICJVbnN1cHBvcnRlZEdyYW50VHlwZUV4Y2VwdGlvbiIsICJVbnN1cHBvcnRlZEdyYW50VHlwZUV4Y2VwdGlvbiQiLCAiX19DbGllbnQiLCAiZXJyb3JUeXBlUmVnaXN0cmllcyIsICJpbml0X3Nzb19vaWRjIiwgIl9fZXNtTWluIiwgImluaXRfU1NPT0lEQ0NsaWVudCIsICJpbml0X1NTT09JREMiLCAiaW5pdF9jb21tYW5kcyIsICJpbml0X3NjaGVtYXNfMCIsICJpbml0X2VudW1zIiwgImluaXRfZXJyb3JzIiwgImluaXRfbW9kZWxzXzAiLCAiaW5pdF9TU09PSURDU2VydmljZUV4Y2VwdGlvbiIsICJyZXF1aXJlX2Rpc3RfY2pzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJjbGllbnQiLCAiaHR0cEF1dGhTY2hlbWVzIiwgInByb3BlcnR5UHJvdmlkZXIiLCAic2hhcmVkSW5pRmlsZUxvYWRlciIsICJub2RlX2ZzIiwgImZyb21FbnZTaWduaW5nTmFtZSIsICJsb2dnZXIiLCAic2lnbmluZ05hbWUiLCAiYmVhcmVyVG9rZW5LZXkiLCAidG9rZW4iLCAiRVhQSVJFX1dJTkRPV19NUyIsICJSRUZSRVNIX01FU1NBR0UiLCAiZ2V0U3NvT2lkY0NsaWVudCIsICJzc29SZWdpb24iLCAiaW5pdCIsICJjYWxsZXJDbGllbnRDb25maWciLCAiU1NPT0lEQ0NsaWVudCIsICJjb2FsZXNjZSIsICJwcm9wIiwgImdldE5ld1Nzb09pZGNUb2tlbiIsICJzc29Ub2tlbiIsICJDcmVhdGVUb2tlbkNvbW1hbmQiLCAidmFsaWRhdGVUb2tlbkV4cGlyeSIsICJ2YWxpZGF0ZVRva2VuS2V5IiwgImtleSIsICJ2YWx1ZSIsICJmb3JSZWZyZXNoIiwgIndyaXRlRmlsZSIsICJ3cml0ZVNTT1Rva2VuVG9GaWxlIiwgImlkIiwgInRva2VuRmlsZXBhdGgiLCAidG9rZW5TdHJpbmciLCAibGFzdFJlZnJlc2hBdHRlbXB0VGltZSIsICJmcm9tU3NvIiwgInByb2ZpbGVzIiwgInByb2ZpbGVOYW1lIiwgInByb2ZpbGUiLCAic3NvU2Vzc2lvbk5hbWUiLCAic3NvU2Vzc2lvbiIsICJzc29TZXNzaW9uUmVxdWlyZWRLZXkiLCAiYWNjZXNzVG9rZW4iLCAiZXhwaXJlc0F0IiwgImV4aXN0aW5nVG9rZW4iLCAibmV3U3NvT2lkY1Rva2VuIiwgIm5ld1Rva2VuRXhwaXJhdGlvbiIsICJmcm9tU3RhdGljIiwgIm5vZGVQcm92aWRlciIsICJjcmVhdGVBd3NBdXRoU2lndjRIdHRwQXV0aE9wdGlvbiIsICJhdXRoUGFyYW1ldGVycyIsICJjb25maWciLCAiY29udGV4dCIsICJjcmVhdGVTbWl0aHlBcGlOb0F1dGhIdHRwQXV0aE9wdGlvbiIsICJpbXBvcnRfdXRpbF9taWRkbGV3YXJlIiwgImRlZmF1bHRTU09IdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlciIsICJkZWZhdWx0U1NPSHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJyZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWciLCAiaW5pdF9odHRwQXV0aFNjaGVtZVByb3ZpZGVyIiwgIl9fZXNtTWluIiwgImluaXRfaHR0cEF1dGhTY2hlbWVzIiwgImlucHV0IiwgIm9wdGlvbnMiLCAiY29uZmlnXzAiLCAicmVzb2x2ZUF3c1Nka1NpZ1Y0Q29uZmlnIiwgInJlc29sdmVDbGllbnRFbmRwb2ludFBhcmFtZXRlcnMiLCAiY29tbW9uUGFyYW1zIiwgImluaXRfRW5kcG9pbnRQYXJhbWV0ZXJzIiwgIl9fZXNtTWluIiwgIm9wdGlvbnMiLCAiaW1wb3J0X3V0aWxfZW5kcG9pbnRzIiwgImsiLCAiYSIsICJiIiwgImMiLCAiZCIsICJlIiwgImYiLCAiZyIsICJoIiwgImkiLCAiaiIsICJfZGF0YSIsICJyb290IiwgInIiLCAibm9kZXMiLCAiYmRkIiwgImluaXRfYmRkIiwgIl9fZXNtTWluIiwgImltcG9ydF91dGlsX2VuZHBvaW50cyIsICJjYWNoZSIsICJkZWZhdWx0RW5kcG9pbnRSZXNvbHZlciIsICJpbml0X2VuZHBvaW50UmVzb2x2ZXIiLCAiX19lc21NaW4iLCAiaW5pdF9iZGQiLCAiZW5kcG9pbnRQYXJhbXMiLCAiY29udGV4dCIsICJiZGQiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAiU1NPU2VydmljZUV4Y2VwdGlvbiIsICJpbml0X1NTT1NlcnZpY2VFeGNlcHRpb24iLCAiX19lc21NaW4iLCAiX1NTT1NlcnZpY2VFeGNlcHRpb24iLCAiX19TZXJ2aWNlRXhjZXB0aW9uIiwgIm9wdGlvbnMiLCAiSW52YWxpZFJlcXVlc3RFeGNlcHRpb24iLCAiUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvbiIsICJUb29NYW55UmVxdWVzdHNFeGNlcHRpb24iLCAiVW5hdXRob3JpemVkRXhjZXB0aW9uIiwgImluaXRfZXJyb3JzIiwgIl9fZXNtTWluIiwgImluaXRfU1NPU2VydmljZUV4Y2VwdGlvbiIsICJfSW52YWxpZFJlcXVlc3RFeGNlcHRpb24iLCAiU1NPU2VydmljZUV4Y2VwdGlvbiIsICJvcHRzIiwgIl9SZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uIiwgIl9Ub29NYW55UmVxdWVzdHNFeGNlcHRpb24iLCAiX1VuYXV0aG9yaXplZEV4Y2VwdGlvbiIsICJpbXBvcnRfc2NoZW1hIiwgIl9BVFQiLCAiX0dSQyIsICJfR1JDUiIsICJfR1JDUmUiLCAiX0lSRSIsICJfUkMiLCAiX1JORkUiLCAiX1NBS1QiLCAiX1NUVCIsICJfVE1SRSIsICJfVUUiLCAiX2FJIiwgIl9hS0kiLCAiX2FUIiwgIl9haSIsICJfYyIsICJfZSIsICJfZXgiLCAiX2giLCAiX2hFIiwgIl9oSCIsICJfaFEiLCAiX20iLCAiX3JDIiwgIl9yTiIsICJfcm4iLCAiX3MiLCAiX3NBSyIsICJfc1QiLCAiX3hhc2J0IiwgIm4wIiwgIl9zX3JlZ2lzdHJ5IiwgIlNTT1NlcnZpY2VFeGNlcHRpb24kIiwgIm4wX3JlZ2lzdHJ5IiwgIkludmFsaWRSZXF1ZXN0RXhjZXB0aW9uJCIsICJSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uJCIsICJUb29NYW55UmVxdWVzdHNFeGNlcHRpb24kIiwgIlVuYXV0aG9yaXplZEV4Y2VwdGlvbiQiLCAiZXJyb3JUeXBlUmVnaXN0cmllcyIsICJBY2Nlc3NUb2tlblR5cGUiLCAiU2VjcmV0QWNjZXNzS2V5VHlwZSIsICJTZXNzaW9uVG9rZW5UeXBlIiwgIkdldFJvbGVDcmVkZW50aWFsc1JlcXVlc3QkIiwgIkdldFJvbGVDcmVkZW50aWFsc1Jlc3BvbnNlJCIsICJSb2xlQ3JlZGVudGlhbHMkIiwgIkdldFJvbGVDcmVkZW50aWFscyQiLCAiaW5pdF9zY2hlbWFzXzAiLCAiX19lc21NaW4iLCAiaW5pdF9lcnJvcnMiLCAiaW5pdF9TU09TZXJ2aWNlRXhjZXB0aW9uIiwgIlNTT1NlcnZpY2VFeGNlcHRpb24iLCAiSW52YWxpZFJlcXVlc3RFeGNlcHRpb24iLCAiUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvbiIsICJUb29NYW55UmVxdWVzdHNFeGNlcHRpb24iLCAiVW5hdXRob3JpemVkRXhjZXB0aW9uIiwgImltcG9ydF9jb3JlIiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgImltcG9ydF91cmxfcGFyc2VyIiwgImltcG9ydF91dGlsX2Jhc2U2NCIsICJpbXBvcnRfdXRpbF91dGY4IiwgImdldFJ1bnRpbWVDb25maWciLCAiaW5pdF9ydW50aW1lQ29uZmlnX3NoYXJlZCIsICJfX2VzbU1pbiIsICJpbml0X2h0dHBBdXRoU2NoZW1lcyIsICJpbml0X3Byb3RvY29scyIsICJpbml0X2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAiaW5pdF9lbmRwb2ludFJlc29sdmVyIiwgImluaXRfc2NoZW1hc18wIiwgImNvbmZpZyIsICJkZWZhdWx0RW5kcG9pbnRSZXNvbHZlciIsICJkZWZhdWx0U1NPSHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJpcGMiLCAiQXdzU2RrU2lnVjRTaWduZXIiLCAiQXdzUmVzdEpzb25Qcm90b2NvbCIsICJlcnJvclR5cGVSZWdpc3RyaWVzIiwgImltcG9ydF91dGlsX3VzZXJfYWdlbnRfbm9kZSIsICJpbXBvcnRfY29uZmlnX3Jlc29sdmVyIiwgImltcG9ydF9oYXNoX25vZGUiLCAiaW1wb3J0X21pZGRsZXdhcmVfcmV0cnkiLCAiaW1wb3J0X25vZGVfY29uZmlnX3Byb3ZpZGVyIiwgImltcG9ydF9ub2RlX2h0dHBfaGFuZGxlciIsICJpbXBvcnRfc21pdGh5X2NsaWVudCIsICJpbXBvcnRfdXRpbF9ib2R5X2xlbmd0aF9ub2RlIiwgImltcG9ydF91dGlsX2RlZmF1bHRzX21vZGVfbm9kZSIsICJpbXBvcnRfdXRpbF9yZXRyeSIsICJnZXRSdW50aW1lQ29uZmlnIiwgImluaXRfcnVudGltZUNvbmZpZyIsICJfX2VzbU1pbiIsICJpbml0X3BhY2thZ2UiLCAiaW5pdF9jbGllbnQiLCAiaW5pdF9odHRwQXV0aFNjaGVtZXMiLCAiaW5pdF9ydW50aW1lQ29uZmlnX3NoYXJlZCIsICJjb25maWciLCAiZGVmYXVsdHNNb2RlIiwgImRlZmF1bHRDb25maWdQcm92aWRlciIsICJjbGllbnRTaGFyZWRWYWx1ZXMiLCAiZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbiIsICJsb2FkZXJDb25maWciLCAibG9hZE5vZGVDb25maWciLCAiTk9ERV9BVVRIX1NDSEVNRV9QUkVGRVJFTkNFX09QVElPTlMiLCAicGFja2FnZV9kZWZhdWx0IiwgIlJlcXVlc3RIYW5kbGVyIiwgImdldEh0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiIsICJyZXNvbHZlSHR0cEF1dGhSdW50aW1lQ29uZmlnIiwgImluaXRfaHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uIiwgIl9fZXNtTWluIiwgInJ1bnRpbWVDb25maWciLCAiX2h0dHBBdXRoU2NoZW1lcyIsICJfaHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJfY3JlZGVudGlhbHMiLCAiaHR0cEF1dGhTY2hlbWUiLCAiaW5kZXgiLCAic2NoZW1lIiwgImh0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAiY3JlZGVudGlhbHMiLCAiY29uZmlnIiwgImltcG9ydF9yZWdpb25fY29uZmlnX3Jlc29sdmVyIiwgImltcG9ydF9wcm90b2NvbF9odHRwIiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgInJlc29sdmVSdW50aW1lRXh0ZW5zaW9ucyIsICJpbml0X3J1bnRpbWVFeHRlbnNpb25zIiwgIl9fZXNtTWluIiwgImluaXRfaHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uIiwgInJ1bnRpbWVDb25maWciLCAiZXh0ZW5zaW9ucyIsICJleHRlbnNpb25Db25maWd1cmF0aW9uIiwgImdldEh0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiIsICJleHRlbnNpb24iLCAicmVzb2x2ZUh0dHBBdXRoUnVudGltZUNvbmZpZyIsICJpbXBvcnRfbWlkZGxld2FyZV9ob3N0X2hlYWRlciIsICJpbXBvcnRfbWlkZGxld2FyZV9sb2dnZXIiLCAiaW1wb3J0X21pZGRsZXdhcmVfcmVjdXJzaW9uX2RldGVjdGlvbiIsICJpbXBvcnRfbWlkZGxld2FyZV91c2VyX2FnZW50IiwgImltcG9ydF9jb25maWdfcmVzb2x2ZXIiLCAiaW1wb3J0X2NvcmUiLCAiaW1wb3J0X3NjaGVtYSIsICJpbXBvcnRfbWlkZGxld2FyZV9jb250ZW50X2xlbmd0aCIsICJpbXBvcnRfbWlkZGxld2FyZV9lbmRwb2ludCIsICJpbXBvcnRfbWlkZGxld2FyZV9yZXRyeSIsICJpbXBvcnRfc21pdGh5X2NsaWVudCIsICJTU09DbGllbnQiLCAiaW5pdF9TU09DbGllbnQiLCAiX19lc21NaW4iLCAiaW5pdF9odHRwQXV0aFNjaGVtZVByb3ZpZGVyIiwgImluaXRfRW5kcG9pbnRQYXJhbWV0ZXJzIiwgImluaXRfcnVudGltZUNvbmZpZyIsICJpbml0X3J1bnRpbWVFeHRlbnNpb25zIiwgIl9fQ2xpZW50IiwgImNvbmZpZ3VyYXRpb24iLCAiX2NvbmZpZ18wIiwgImdldFJ1bnRpbWVDb25maWciLCAiX2NvbmZpZ18xIiwgInJlc29sdmVDbGllbnRFbmRwb2ludFBhcmFtZXRlcnMiLCAiX2NvbmZpZ18yIiwgIl9jb25maWdfMyIsICJfY29uZmlnXzQiLCAiX2NvbmZpZ181IiwgIl9jb25maWdfNiIsICJfY29uZmlnXzciLCAicmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnIiwgIl9jb25maWdfOCIsICJyZXNvbHZlUnVudGltZUV4dGVuc2lvbnMiLCAiZGVmYXVsdFNTT0h0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyIiwgImNvbmZpZyIsICJpbXBvcnRfbWlkZGxld2FyZV9lbmRwb2ludCIsICJpbXBvcnRfc21pdGh5X2NsaWVudCIsICJHZXRSb2xlQ3JlZGVudGlhbHNDb21tYW5kIiwgImluaXRfR2V0Um9sZUNyZWRlbnRpYWxzQ29tbWFuZCIsICJfX2VzbU1pbiIsICJpbml0X0VuZHBvaW50UGFyYW1ldGVycyIsICJpbml0X3NjaGVtYXNfMCIsICIkQ29tbWFuZCIsICJjb21tb25QYXJhbXMiLCAiQ29tbWFuZCIsICJjcyIsICJjb25maWciLCAibyIsICJHZXRSb2xlQ3JlZGVudGlhbHMkIiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgImNvbW1hbmRzIiwgIlNTTyIsICJpbml0X1NTTyIsICJfX2VzbU1pbiIsICJpbml0X0dldFJvbGVDcmVkZW50aWFsc0NvbW1hbmQiLCAiaW5pdF9TU09DbGllbnQiLCAiR2V0Um9sZUNyZWRlbnRpYWxzQ29tbWFuZCIsICJTU09DbGllbnQiLCAiaW5pdF9jb21tYW5kcyIsICJfX2VzbU1pbiIsICJpbml0X0dldFJvbGVDcmVkZW50aWFsc0NvbW1hbmQiLCAiaW5pdF9tb2RlbHNfMCIsICJfX2VzbU1pbiIsICJzc29fZXhwb3J0cyIsICJfX2V4cG9ydCIsICIkQ29tbWFuZCIsICJHZXRSb2xlQ3JlZGVudGlhbHMkIiwgIkdldFJvbGVDcmVkZW50aWFsc0NvbW1hbmQiLCAiR2V0Um9sZUNyZWRlbnRpYWxzUmVxdWVzdCQiLCAiR2V0Um9sZUNyZWRlbnRpYWxzUmVzcG9uc2UkIiwgIkludmFsaWRSZXF1ZXN0RXhjZXB0aW9uIiwgIkludmFsaWRSZXF1ZXN0RXhjZXB0aW9uJCIsICJSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uIiwgIlJlc291cmNlTm90Rm91bmRFeGNlcHRpb24kIiwgIlJvbGVDcmVkZW50aWFscyQiLCAiU1NPIiwgIlNTT0NsaWVudCIsICJTU09TZXJ2aWNlRXhjZXB0aW9uIiwgIlNTT1NlcnZpY2VFeGNlcHRpb24kIiwgIlRvb01hbnlSZXF1ZXN0c0V4Y2VwdGlvbiIsICJUb29NYW55UmVxdWVzdHNFeGNlcHRpb24kIiwgIlVuYXV0aG9yaXplZEV4Y2VwdGlvbiIsICJVbmF1dGhvcml6ZWRFeGNlcHRpb24kIiwgIl9fQ2xpZW50IiwgImVycm9yVHlwZVJlZ2lzdHJpZXMiLCAiaW5pdF9zc28iLCAiX19lc21NaW4iLCAiaW5pdF9TU09DbGllbnQiLCAiaW5pdF9TU08iLCAiaW5pdF9jb21tYW5kcyIsICJpbml0X3NjaGVtYXNfMCIsICJpbml0X2Vycm9ycyIsICJpbml0X21vZGVsc18wIiwgImluaXRfU1NPU2VydmljZUV4Y2VwdGlvbiIsICJyZXF1aXJlX2xvYWRTc29fQktETnJzYWwiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgInNzbyIsICJyZXF1aXJlX2Rpc3RfY2pzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJwcm9wZXJ0eVByb3ZpZGVyIiwgInNoYXJlZEluaUZpbGVMb2FkZXIiLCAiY2xpZW50IiwgInRva2VuUHJvdmlkZXJzIiwgImlzU3NvUHJvZmlsZSIsICJhcmciLCAiU0hPVUxEX0ZBSUxfQ1JFREVOVElBTF9DSEFJTiIsICJyZXNvbHZlU1NPQ3JlZGVudGlhbHMiLCAic3NvU3RhcnRVcmwiLCAic3NvU2Vzc2lvbiIsICJzc29BY2NvdW50SWQiLCAic3NvUmVnaW9uIiwgInNzb1JvbGVOYW1lIiwgInNzb0NsaWVudCIsICJjbGllbnRDb25maWciLCAicGFyZW50Q2xpZW50Q29uZmlnIiwgImNhbGxlckNsaWVudENvbmZpZyIsICJwcm9maWxlIiwgImZpbGVwYXRoIiwgImNvbmZpZ0ZpbGVwYXRoIiwgImlnbm9yZUNhY2hlIiwgImxvZ2dlciIsICJ0b2tlbiIsICJyZWZyZXNoTWVzc2FnZSIsICJfdG9rZW4iLCAiZSIsICJhY2Nlc3NUb2tlbiIsICJTU09DbGllbnQiLCAiR2V0Um9sZUNyZWRlbnRpYWxzQ29tbWFuZCIsICJzc28iLCAic3NvUmVzcCIsICJhY2Nlc3NLZXlJZCIsICJzZWNyZXRBY2Nlc3NLZXkiLCAic2Vzc2lvblRva2VuIiwgImV4cGlyYXRpb24iLCAiY3JlZGVudGlhbFNjb3BlIiwgImFjY291bnRJZCIsICJjcmVkZW50aWFscyIsICJ2YWxpZGF0ZVNzb1Byb2ZpbGUiLCAic3NvX3N0YXJ0X3VybCIsICJzc29fYWNjb3VudF9pZCIsICJzc29fcmVnaW9uIiwgInNzb19yb2xlX25hbWUiLCAiZnJvbVNTTyIsICJpbml0IiwgInByb2ZpbGVOYW1lIiwgInNlc3Npb24iLCAiY29uZmxpY3RNc2ciLCAic3NvX3Nlc3Npb24iLCAiY3JlYXRlQXdzQXV0aFNpZ3Y0SHR0cEF1dGhPcHRpb24iLCAiYXV0aFBhcmFtZXRlcnMiLCAiY29uZmlnIiwgImNvbnRleHQiLCAiY3JlYXRlU21pdGh5QXBpTm9BdXRoSHR0cEF1dGhPcHRpb24iLCAiaW1wb3J0X3V0aWxfbWlkZGxld2FyZSIsICJkZWZhdWx0U2lnbmluSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIiLCAiZGVmYXVsdFNpZ25pbkh0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAicmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnIiwgImluaXRfaHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJfX2VzbU1pbiIsICJpbml0X2h0dHBBdXRoU2NoZW1lcyIsICJpbnB1dCIsICJvcHRpb25zIiwgImNvbmZpZ18wIiwgInJlc29sdmVBd3NTZGtTaWdWNENvbmZpZyIsICJyZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzIiwgImNvbW1vblBhcmFtcyIsICJpbml0X0VuZHBvaW50UGFyYW1ldGVycyIsICJfX2VzbU1pbiIsICJvcHRpb25zIiwgImltcG9ydF91dGlsX2VuZHBvaW50cyIsICJtIiwgImEiLCAiYiIsICJjIiwgImQiLCAiZSIsICJmIiwgImciLCAiaCIsICJpIiwgImoiLCAiayIsICJsIiwgIl9kYXRhIiwgInJvb3QiLCAiciIsICJub2RlcyIsICJiZGQiLCAiaW5pdF9iZGQiLCAiX19lc21NaW4iLCAiaW1wb3J0X3V0aWxfZW5kcG9pbnRzIiwgImNhY2hlIiwgImRlZmF1bHRFbmRwb2ludFJlc29sdmVyIiwgImluaXRfZW5kcG9pbnRSZXNvbHZlciIsICJfX2VzbU1pbiIsICJpbml0X2JkZCIsICJlbmRwb2ludFBhcmFtcyIsICJjb250ZXh0IiwgImJkZCIsICJpbXBvcnRfc21pdGh5X2NsaWVudCIsICJTaWduaW5TZXJ2aWNlRXhjZXB0aW9uIiwgImluaXRfU2lnbmluU2VydmljZUV4Y2VwdGlvbiIsICJfX2VzbU1pbiIsICJfU2lnbmluU2VydmljZUV4Y2VwdGlvbiIsICJfX1NlcnZpY2VFeGNlcHRpb24iLCAib3B0aW9ucyIsICJBY2Nlc3NEZW5pZWRFeGNlcHRpb24iLCAiSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb24iLCAiVG9vTWFueVJlcXVlc3RzRXJyb3IiLCAiVmFsaWRhdGlvbkV4Y2VwdGlvbiIsICJpbml0X2Vycm9ycyIsICJfX2VzbU1pbiIsICJpbml0X1NpZ25pblNlcnZpY2VFeGNlcHRpb24iLCAiX0FjY2Vzc0RlbmllZEV4Y2VwdGlvbiIsICJTaWduaW5TZXJ2aWNlRXhjZXB0aW9uIiwgIm9wdHMiLCAiX0ludGVybmFsU2VydmVyRXhjZXB0aW9uIiwgIl9Ub29NYW55UmVxdWVzdHNFcnJvciIsICJfVmFsaWRhdGlvbkV4Y2VwdGlvbiIsICJpbXBvcnRfc2NoZW1hIiwgIl9BREUiLCAiX0FUIiwgIl9DT0FUIiwgIl9DT0FUUiIsICJfQ09BVFJCIiwgIl9DT0FUUkJyIiwgIl9DT0FUUnIiLCAiX0lTRSIsICJfUlQiLCAiX1RNUkUiLCAiX1ZFIiwgIl9hS0kiLCAiX2FUIiwgIl9jIiwgIl9jSSIsICJfY1YiLCAiX2NvIiwgIl9lIiwgIl9lSSIsICJfZ1QiLCAiX2giLCAiX2hFIiwgIl9pVCIsICJfak4iLCAiX20iLCAiX3JUIiwgIl9yVSIsICJfcyIsICJfc0FLIiwgIl9zVCIsICJfc2UiLCAiX3RJIiwgIl90TyIsICJfdFQiLCAibjAiLCAiX3NfcmVnaXN0cnkiLCAiU2lnbmluU2VydmljZUV4Y2VwdGlvbiQiLCAibjBfcmVnaXN0cnkiLCAiQWNjZXNzRGVuaWVkRXhjZXB0aW9uJCIsICJJbnRlcm5hbFNlcnZlckV4Y2VwdGlvbiQiLCAiVG9vTWFueVJlcXVlc3RzRXJyb3IkIiwgIlZhbGlkYXRpb25FeGNlcHRpb24kIiwgImVycm9yVHlwZVJlZ2lzdHJpZXMiLCAiUmVmcmVzaFRva2VuIiwgIkFjY2Vzc1Rva2VuJCIsICJDcmVhdGVPQXV0aDJUb2tlblJlcXVlc3QkIiwgIkNyZWF0ZU9BdXRoMlRva2VuUmVxdWVzdEJvZHkkIiwgIkNyZWF0ZU9BdXRoMlRva2VuUmVzcG9uc2UkIiwgIkNyZWF0ZU9BdXRoMlRva2VuUmVzcG9uc2VCb2R5JCIsICJDcmVhdGVPQXV0aDJUb2tlbiQiLCAiaW5pdF9zY2hlbWFzXzAiLCAiX19lc21NaW4iLCAiaW5pdF9lcnJvcnMiLCAiaW5pdF9TaWduaW5TZXJ2aWNlRXhjZXB0aW9uIiwgIlNpZ25pblNlcnZpY2VFeGNlcHRpb24iLCAiQWNjZXNzRGVuaWVkRXhjZXB0aW9uIiwgIkludGVybmFsU2VydmVyRXhjZXB0aW9uIiwgIlRvb01hbnlSZXF1ZXN0c0Vycm9yIiwgIlZhbGlkYXRpb25FeGNlcHRpb24iLCAiaW1wb3J0X2NvcmUiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAiaW1wb3J0X3VybF9wYXJzZXIiLCAiaW1wb3J0X3V0aWxfYmFzZTY0IiwgImltcG9ydF91dGlsX3V0ZjgiLCAiZ2V0UnVudGltZUNvbmZpZyIsICJpbml0X3J1bnRpbWVDb25maWdfc2hhcmVkIiwgIl9fZXNtTWluIiwgImluaXRfaHR0cEF1dGhTY2hlbWVzIiwgImluaXRfcHJvdG9jb2xzIiwgImluaXRfaHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJpbml0X2VuZHBvaW50UmVzb2x2ZXIiLCAiaW5pdF9zY2hlbWFzXzAiLCAiY29uZmlnIiwgImRlZmF1bHRFbmRwb2ludFJlc29sdmVyIiwgImRlZmF1bHRTaWduaW5IdHRwQXV0aFNjaGVtZVByb3ZpZGVyIiwgImlwYyIsICJBd3NTZGtTaWdWNFNpZ25lciIsICJBd3NSZXN0SnNvblByb3RvY29sIiwgImVycm9yVHlwZVJlZ2lzdHJpZXMiLCAiaW1wb3J0X3V0aWxfdXNlcl9hZ2VudF9ub2RlIiwgImltcG9ydF9jb25maWdfcmVzb2x2ZXIiLCAiaW1wb3J0X2hhc2hfbm9kZSIsICJpbXBvcnRfbWlkZGxld2FyZV9yZXRyeSIsICJpbXBvcnRfbm9kZV9jb25maWdfcHJvdmlkZXIiLCAiaW1wb3J0X25vZGVfaHR0cF9oYW5kbGVyIiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgImltcG9ydF91dGlsX2JvZHlfbGVuZ3RoX25vZGUiLCAiaW1wb3J0X3V0aWxfZGVmYXVsdHNfbW9kZV9ub2RlIiwgImltcG9ydF91dGlsX3JldHJ5IiwgImdldFJ1bnRpbWVDb25maWciLCAiaW5pdF9ydW50aW1lQ29uZmlnIiwgIl9fZXNtTWluIiwgImluaXRfcGFja2FnZSIsICJpbml0X2NsaWVudCIsICJpbml0X2h0dHBBdXRoU2NoZW1lcyIsICJpbml0X3J1bnRpbWVDb25maWdfc2hhcmVkIiwgImNvbmZpZyIsICJkZWZhdWx0c01vZGUiLCAiZGVmYXVsdENvbmZpZ1Byb3ZpZGVyIiwgImNsaWVudFNoYXJlZFZhbHVlcyIsICJlbWl0V2FybmluZ0lmVW5zdXBwb3J0ZWRWZXJzaW9uIiwgImxvYWRlckNvbmZpZyIsICJsb2FkTm9kZUNvbmZpZyIsICJOT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfT1BUSU9OUyIsICJwYWNrYWdlX2RlZmF1bHQiLCAiUmVxdWVzdEhhbmRsZXIiLCAiZ2V0SHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uIiwgInJlc29sdmVIdHRwQXV0aFJ1bnRpbWVDb25maWciLCAiaW5pdF9odHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24iLCAiX19lc21NaW4iLCAicnVudGltZUNvbmZpZyIsICJfaHR0cEF1dGhTY2hlbWVzIiwgIl9odHRwQXV0aFNjaGVtZVByb3ZpZGVyIiwgIl9jcmVkZW50aWFscyIsICJodHRwQXV0aFNjaGVtZSIsICJpbmRleCIsICJzY2hlbWUiLCAiaHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJjcmVkZW50aWFscyIsICJjb25maWciLCAiaW1wb3J0X3JlZ2lvbl9jb25maWdfcmVzb2x2ZXIiLCAiaW1wb3J0X3Byb3RvY29sX2h0dHAiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAicmVzb2x2ZVJ1bnRpbWVFeHRlbnNpb25zIiwgImluaXRfcnVudGltZUV4dGVuc2lvbnMiLCAiX19lc21NaW4iLCAiaW5pdF9odHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24iLCAicnVudGltZUNvbmZpZyIsICJleHRlbnNpb25zIiwgImV4dGVuc2lvbkNvbmZpZ3VyYXRpb24iLCAiZ2V0SHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uIiwgImV4dGVuc2lvbiIsICJyZXNvbHZlSHR0cEF1dGhSdW50aW1lQ29uZmlnIiwgImltcG9ydF9taWRkbGV3YXJlX2hvc3RfaGVhZGVyIiwgImltcG9ydF9taWRkbGV3YXJlX2xvZ2dlciIsICJpbXBvcnRfbWlkZGxld2FyZV9yZWN1cnNpb25fZGV0ZWN0aW9uIiwgImltcG9ydF9taWRkbGV3YXJlX3VzZXJfYWdlbnQiLCAiaW1wb3J0X2NvbmZpZ19yZXNvbHZlciIsICJpbXBvcnRfY29yZSIsICJpbXBvcnRfc2NoZW1hIiwgImltcG9ydF9taWRkbGV3YXJlX2NvbnRlbnRfbGVuZ3RoIiwgImltcG9ydF9taWRkbGV3YXJlX2VuZHBvaW50IiwgImltcG9ydF9taWRkbGV3YXJlX3JldHJ5IiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgIlNpZ25pbkNsaWVudCIsICJpbml0X1NpZ25pbkNsaWVudCIsICJfX2VzbU1pbiIsICJpbml0X2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAiaW5pdF9FbmRwb2ludFBhcmFtZXRlcnMiLCAiaW5pdF9ydW50aW1lQ29uZmlnIiwgImluaXRfcnVudGltZUV4dGVuc2lvbnMiLCAiX19DbGllbnQiLCAiY29uZmlndXJhdGlvbiIsICJfY29uZmlnXzAiLCAiZ2V0UnVudGltZUNvbmZpZyIsICJfY29uZmlnXzEiLCAicmVzb2x2ZUNsaWVudEVuZHBvaW50UGFyYW1ldGVycyIsICJfY29uZmlnXzIiLCAiX2NvbmZpZ18zIiwgIl9jb25maWdfNCIsICJfY29uZmlnXzUiLCAiX2NvbmZpZ182IiwgIl9jb25maWdfNyIsICJyZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWciLCAiX2NvbmZpZ184IiwgInJlc29sdmVSdW50aW1lRXh0ZW5zaW9ucyIsICJkZWZhdWx0U2lnbmluSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIiLCAiY29uZmlnIiwgImltcG9ydF9taWRkbGV3YXJlX2VuZHBvaW50IiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgIkNyZWF0ZU9BdXRoMlRva2VuQ29tbWFuZCIsICJpbml0X0NyZWF0ZU9BdXRoMlRva2VuQ29tbWFuZCIsICJfX2VzbU1pbiIsICJpbml0X0VuZHBvaW50UGFyYW1ldGVycyIsICJpbml0X3NjaGVtYXNfMCIsICIkQ29tbWFuZCIsICJjb21tb25QYXJhbXMiLCAiQ29tbWFuZCIsICJjcyIsICJjb25maWciLCAibyIsICJDcmVhdGVPQXV0aDJUb2tlbiQiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAiY29tbWFuZHMiLCAiU2lnbmluIiwgImluaXRfU2lnbmluIiwgIl9fZXNtTWluIiwgImluaXRfQ3JlYXRlT0F1dGgyVG9rZW5Db21tYW5kIiwgImluaXRfU2lnbmluQ2xpZW50IiwgIkNyZWF0ZU9BdXRoMlRva2VuQ29tbWFuZCIsICJTaWduaW5DbGllbnQiLCAiaW5pdF9jb21tYW5kcyIsICJfX2VzbU1pbiIsICJpbml0X0NyZWF0ZU9BdXRoMlRva2VuQ29tbWFuZCIsICJPQXV0aDJFcnJvckNvZGUiLCAiaW5pdF9lbnVtcyIsICJfX2VzbU1pbiIsICJpbml0X21vZGVsc18wIiwgIl9fZXNtTWluIiwgInNpZ25pbl9leHBvcnRzIiwgIl9fZXhwb3J0IiwgIiRDb21tYW5kIiwgIkFjY2Vzc0RlbmllZEV4Y2VwdGlvbiIsICJBY2Nlc3NEZW5pZWRFeGNlcHRpb24kIiwgIkFjY2Vzc1Rva2VuJCIsICJDcmVhdGVPQXV0aDJUb2tlbiQiLCAiQ3JlYXRlT0F1dGgyVG9rZW5Db21tYW5kIiwgIkNyZWF0ZU9BdXRoMlRva2VuUmVxdWVzdCQiLCAiQ3JlYXRlT0F1dGgyVG9rZW5SZXF1ZXN0Qm9keSQiLCAiQ3JlYXRlT0F1dGgyVG9rZW5SZXNwb25zZSQiLCAiQ3JlYXRlT0F1dGgyVG9rZW5SZXNwb25zZUJvZHkkIiwgIkludGVybmFsU2VydmVyRXhjZXB0aW9uIiwgIkludGVybmFsU2VydmVyRXhjZXB0aW9uJCIsICJPQXV0aDJFcnJvckNvZGUiLCAiU2lnbmluIiwgIlNpZ25pbkNsaWVudCIsICJTaWduaW5TZXJ2aWNlRXhjZXB0aW9uIiwgIlNpZ25pblNlcnZpY2VFeGNlcHRpb24kIiwgIlRvb01hbnlSZXF1ZXN0c0Vycm9yIiwgIlRvb01hbnlSZXF1ZXN0c0Vycm9yJCIsICJWYWxpZGF0aW9uRXhjZXB0aW9uIiwgIlZhbGlkYXRpb25FeGNlcHRpb24kIiwgIl9fQ2xpZW50IiwgImVycm9yVHlwZVJlZ2lzdHJpZXMiLCAiaW5pdF9zaWduaW4iLCAiX19lc21NaW4iLCAiaW5pdF9TaWduaW5DbGllbnQiLCAiaW5pdF9TaWduaW4iLCAiaW5pdF9jb21tYW5kcyIsICJpbml0X3NjaGVtYXNfMCIsICJpbml0X2VudW1zIiwgImluaXRfZXJyb3JzIiwgImluaXRfbW9kZWxzXzAiLCAiaW5pdF9TaWduaW5TZXJ2aWNlRXhjZXB0aW9uIiwgInJlcXVpcmVfZGlzdF9janMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgImNsaWVudCIsICJwcm9wZXJ0eVByb3ZpZGVyIiwgInNoYXJlZEluaUZpbGVMb2FkZXIiLCAicHJvdG9jb2xIdHRwIiwgIm5vZGVfY3J5cHRvIiwgIm5vZGVfZnMiLCAibm9kZV9vcyIsICJub2RlX3BhdGgiLCAiTG9naW5DcmVkZW50aWFsc0ZldGNoZXIiLCAiX0xvZ2luQ3JlZGVudGlhbHNGZXRjaGVyIiwgInByb2ZpbGVEYXRhIiwgImluaXQiLCAiY2FsbGVyQ2xpZW50Q29uZmlnIiwgInRva2VuIiwgImFjY2Vzc1Rva2VuIiwgIm5vdyIsICJTaWduaW5DbGllbnQiLCAiQ3JlYXRlT0F1dGgyVG9rZW5Db21tYW5kIiwgImxvZ2dlciIsICJ1c2VyQWdlbnRBcHBJZCIsICJyZXF1ZXN0SGFuZGxlciIsICJyZWdpb24iLCAiY29tbWFuZElucHV0IiwgInJlc3BvbnNlIiwgImFjY2Vzc0tleUlkIiwgInNlY3JldEFjY2Vzc0tleSIsICJzZXNzaW9uVG9rZW4iLCAicmVmcmVzaFRva2VuIiwgImV4cGlyZXNJbiIsICJleHBpcmVzSW5NcyIsICJleHBpcmF0aW9uIiwgInVwZGF0ZWRUb2tlbiIsICJuZXdBY2Nlc3NUb2tlbiIsICJlcnJvciIsICJlcnJvclR5cGUiLCAibWVzc2FnZSIsICJ0b2tlbkZpbGVQYXRoIiwgInRva2VuRGF0YSIsICJtaXNzaW5nRmllbGRzIiwgImsiLCAiZGlyZWN0b3J5IiwgImxvZ2luU2Vzc2lvbkJ5dGVzIiwgImxvZ2luU2Vzc2lvblNoYTI1NiIsICJkZXJTaWduYXR1cmUiLCAib2Zmc2V0IiwgInJMZW5ndGgiLCAiciIsICJzTGVuZ3RoIiwgInMiLCAiclBhZGRlZCIsICJzUGFkZGVkIiwgIm1pZGRsZXdhcmVTdGFjayIsICJuZXh0IiwgImFyZ3MiLCAicmVxdWVzdCIsICJhY3R1YWxFbmRwb2ludCIsICJkcG9wIiwgIm1ldGhvZCIsICJlbmRwb2ludCIsICJwcml2YXRlS2V5IiwgInB1YmxpY0RlciIsICJwb2ludFN0YXJ0IiwgImkiLCAieCIsICJ5IiwgImhlYWRlciIsICJwYXlsb2FkIiwgImhlYWRlckI2NCIsICJwYXlsb2FkQjY0IiwgImFzbjFTaWduYXR1cmUiLCAic2lnbmF0dXJlQjY0IiwgImZyb21Mb2dpbkNyZWRlbnRpYWxzIiwgInByb2ZpbGVzIiwgInByb2ZpbGVOYW1lIiwgInByb2ZpbGUiLCAiY3JlZGVudGlhbHMiLCAicmVxdWlyZV90b1N0cmVhbSIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAidG9TdHJlYW0iLCAibm9kZV9zdHJlYW1fMSIsICJieXRlcyIsICJyZXF1aXJlX2Rpc3RfY2pzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJ2YWxpZGF0ZSIsICJzdHIiLCAicGFyc2UiLCAiYXJuIiwgInNlZ21lbnRzIiwgInBhcnRpdGlvbiIsICJzZXJ2aWNlIiwgInJlZ2lvbiIsICJhY2NvdW50SWQiLCAicmVzb3VyY2UiLCAiYnVpbGQiLCAiYXJuT2JqZWN0IiwgInNlZ21lbnQiLCAicmVxdWlyZV9kaXN0X2NqcyIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAicHJvdG9jb2xIdHRwIiwgInNtaXRoeUNsaWVudCIsICJ0b1N0cmVhbSIsICJ1dGlsQXJuUGFyc2VyIiwgInByb3RvY29scyIsICJzY2hlbWEiLCAic2lnbmF0dXJlVjQiLCAidXRpbENvbmZpZ1Byb3ZpZGVyIiwgImNsaWVudCIsICJjb3JlIiwgInV0aWxNaWRkbGV3YXJlIiwgIkNPTlRFTlRfTEVOR1RIX0hFQURFUiIsICJERUNPREVEX0NPTlRFTlRfTEVOR1RIX0hFQURFUiIsICJjaGVja0NvbnRlbnRMZW5ndGhIZWFkZXIiLCAibmV4dCIsICJjb250ZXh0IiwgImFyZ3MiLCAicmVxdWVzdCIsICJtZXNzYWdlIiwgImNoZWNrQ29udGVudExlbmd0aEhlYWRlck1pZGRsZXdhcmVPcHRpb25zIiwgImdldENoZWNrQ29udGVudExlbmd0aEhlYWRlclBsdWdpbiIsICJ1bnVzZWQiLCAiY2xpZW50U3RhY2siLCAicmVnaW9uUmVkaXJlY3RFbmRwb2ludE1pZGRsZXdhcmUiLCAiY29uZmlnIiwgIm9yaWdpbmFsUmVnaW9uIiwgInJlZ2lvblByb3ZpZGVyUmVmIiwgInVubG9jayIsICJyZXN1bHQiLCAicmVnaW9uIiwgImUiLCAicmVnaW9uUmVkaXJlY3RFbmRwb2ludE1pZGRsZXdhcmVPcHRpb25zIiwgInJlZ2lvblJlZGlyZWN0TWlkZGxld2FyZSIsICJjbGllbnRDb25maWciLCAiZXJyIiwgInN0YXR1c0NvZGUiLCAiaXNIZWFkQnVja2V0IiwgImJ1Y2tldFJlZ2lvbkhlYWRlciIsICJhY3R1YWxSZWdpb24iLCAicmVnaW9uUmVkaXJlY3RNaWRkbGV3YXJlT3B0aW9ucyIsICJnZXRSZWdpb25SZWRpcmVjdE1pZGRsZXdhcmVQbHVnaW4iLCAiczNFeHBpcmVzTWlkZGxld2FyZSIsICJyZXNwb25zZSIsICJzM0V4cGlyZXNNaWRkbGV3YXJlT3B0aW9ucyIsICJnZXRTM0V4cGlyZXNNaWRkbGV3YXJlUGx1Z2luIiwgIlMzRXhwcmVzc0lkZW50aXR5Q2FjaGUiLCAiX1MzRXhwcmVzc0lkZW50aXR5Q2FjaGUiLCAiZGF0YSIsICJrZXkiLCAiZW50cnkiLCAibm93IiwgImNyZWRlbnRpYWwiLCAiUzNFeHByZXNzSWRlbnRpdHlDYWNoZUVudHJ5IiwgIl9pZGVudGl0eSIsICJpc1JlZnJlc2hpbmciLCAiYWNjZXNzZWQiLCAiUzNFeHByZXNzSWRlbnRpdHlQcm92aWRlckltcGwiLCAiX1MzRXhwcmVzc0lkZW50aXR5UHJvdmlkZXJJbXBsIiwgImNyZWF0ZVNlc3Npb25GbiIsICJjYWNoZSIsICJhd3NJZGVudGl0eSIsICJpZGVudGl0eVByb3BlcnRpZXMiLCAiaWRlbnRpdHkiLCAiaWQiLCAiZXJyb3IiLCAic2Vzc2lvbiIsICJTM19FWFBSRVNTX0JVQ0tFVF9UWVBFIiwgIlMzX0VYUFJFU1NfQkFDS0VORCIsICJTM19FWFBSRVNTX0FVVEhfU0NIRU1FIiwgIlNFU1NJT05fVE9LRU5fUVVFUllfUEFSQU0iLCAiU0VTU0lPTl9UT0tFTl9IRUFERVIiLCAiTk9ERV9ESVNBQkxFX1MzX0VYUFJFU1NfU0VTU0lPTl9BVVRIX0VOVl9OQU1FIiwgIk5PREVfRElTQUJMRV9TM19FWFBSRVNTX1NFU1NJT05fQVVUSF9JTklfTkFNRSIsICJOT0RFX0RJU0FCTEVfUzNfRVhQUkVTU19TRVNTSU9OX0FVVEhfT1BUSU9OUyIsICJlbnYiLCAicHJvZmlsZSIsICJTaWduYXR1cmVWNFMzRXhwcmVzcyIsICJyZXF1ZXN0VG9TaWduIiwgImNyZWRlbnRpYWxzIiwgIm9wdGlvbnMiLCAiY3JlZGVudGlhbHNXaXRob3V0U2Vzc2lvblRva2VuIiwgImdldENyZWRlbnRpYWxzV2l0aG91dFNlc3Npb25Ub2tlbiIsICJwcml2YXRlQWNjZXNzIiwgInNldFNpbmdsZU92ZXJyaWRlIiwgImN1cnJlbnRDcmVkZW50aWFsUHJvdmlkZXIiLCAib3ZlcnJpZGVDcmVkZW50aWFsc1Byb3ZpZGVyT25jZSIsICJzM0V4cHJlc3NNaWRkbGV3YXJlIiwgImVuZHBvaW50IiwgImlzUzNFeHByZXNzQXV0aCIsICJyZXF1ZXN0QnVja2V0IiwgInMzRXhwcmVzc0lkZW50aXR5IiwgInMzRXhwcmVzc01pZGRsZXdhcmVPcHRpb25zIiwgImdldFMzRXhwcmVzc1BsdWdpbiIsICJzaWduUzNFeHByZXNzIiwgInNpZ25pbmdPcHRpb25zIiwgInNpZ1Y0TXVsdGlSZWdpb25TaWduZXIiLCAic2lnbmVkUmVxdWVzdCIsICJkZWZhdWx0RXJyb3JIYW5kbGVyIiwgInNpZ25pbmdQcm9wZXJ0aWVzIiwgImRlZmF1bHRTdWNjZXNzSGFuZGxlciIsICJodHRwUmVzcG9uc2UiLCAiczNFeHByZXNzSHR0cFNpZ25pbmdNaWRkbGV3YXJlT3B0aW9ucyIsICJzM0V4cHJlc3NIdHRwU2lnbmluZ01pZGRsZXdhcmUiLCAic2NoZW1lIiwgInNpZ25lciIsICJvdXRwdXQiLCAiZ2V0UzNFeHByZXNzSHR0cFNpZ25pbmdQbHVnaW4iLCAicmVzb2x2ZVMzQ29uZmlnIiwgImlucHV0IiwgInMzQ2xpZW50UHJvdmlkZXIiLCAiQ3JlYXRlU2Vzc2lvbkNvbW1hbmRDdG9yIiwgImZvcmNlUGF0aFN0eWxlIiwgInVzZUFjY2VsZXJhdGVFbmRwb2ludCIsICJkaXNhYmxlTXVsdGlyZWdpb25BY2Nlc3NQb2ludHMiLCAiZm9sbG93UmVnaW9uUmVkaXJlY3RzIiwgInMzRXhwcmVzc0lkZW50aXR5UHJvdmlkZXIiLCAiYnVja2V0RW5kcG9pbnQiLCAiZXhwZWN0Q29udGludWVIZWFkZXIiLCAiVEhST1dfSUZfRU1QVFlfQk9EWSIsICJ0aHJvdzIwMEV4Y2VwdGlvbnNNaWRkbGV3YXJlIiwgImJvZHkiLCAiYm9keUJ5dGVzIiwgImNvbGxlY3RCb2R5IiwgImJvZHlTdHJpbmdUYWlsIiwgInN0cmVhbUJvZHkiLCAidGhyb3cyMDBFeGNlcHRpb25zTWlkZGxld2FyZU9wdGlvbnMiLCAiZ2V0VGhyb3cyMDBFeGNlcHRpb25zUGx1Z2luIiwgImJ1Y2tldEVuZHBvaW50TWlkZGxld2FyZSIsICJidWNrZXQiLCAiYnVja2V0RW5kcG9pbnRVcmwiLCAid2FybmluZyIsICJidWNrZXRFbmRwb2ludE1pZGRsZXdhcmVPcHRpb25zIiwgInZhbGlkYXRlQnVja2V0TmFtZU1pZGRsZXdhcmUiLCAiQnVja2V0IiwgInZhbGlkYXRlQnVja2V0TmFtZU1pZGRsZXdhcmVPcHRpb25zIiwgImdldFZhbGlkYXRlQnVja2V0TmFtZVBsdWdpbiIsICJTM1Jlc3RYbWxQcm90b2NvbCIsICJvcGVyYXRpb25TY2hlbWEiLCAibnMiLCAic3RhdGljU3RydWN0dXJlU2NoZW1hIiwgImJ1Y2tldE1lbWJlckluZGV4IiwgInJlcXVpcmVkTWVtYmVyQ291bnQiLCAibWVtYmVyTmFtZSIsICJtZW1iZXJOcyIsICJyZXF1aXJlX2Rpc3RfY2pzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJtaWRkbGV3YXJlU2RrUzMiLCAic2lnbmF0dXJlVjQiLCAic2lnbmF0dXJlVjRDcnRDb250YWluZXIiLCAiU2lnbmF0dXJlVjRNdWx0aVJlZ2lvbiIsICJvcHRpb25zIiwgInJlcXVlc3RUb1NpZ24iLCAiY3JlZGVudGlhbHMiLCAic2lnbmVyIiwgIkNydFNpZ25lclY0IiwgIm9yaWdpbmFsUmVxdWVzdCIsICJKc1NpZ1Y0YVNpZ25lciIsICJpbXBvcnRfdXRpbF9lbmRwb2ludHMiLCAicSIsICJhIiwgImIiLCAiYyIsICJkIiwgImUiLCAiZiIsICJnIiwgImgiLCAiaSIsICJqIiwgImsiLCAibCIsICJtIiwgIm4iLCAibyIsICJwIiwgIl9kYXRhIiwgInJvb3QiLCAiciIsICJub2RlcyIsICJiZGQiLCAiaW5pdF9iZGQiLCAiX19lc21NaW4iLCAiaW1wb3J0X3V0aWxfZW5kcG9pbnRzIiwgImNhY2hlIiwgImRlZmF1bHRFbmRwb2ludFJlc29sdmVyIiwgImluaXRfZW5kcG9pbnRSZXNvbHZlciIsICJfX2VzbU1pbiIsICJpbml0X2JkZCIsICJlbmRwb2ludFBhcmFtcyIsICJjb250ZXh0IiwgImJkZCIsICJjcmVhdGVBd3NBdXRoU2lndjRIdHRwQXV0aE9wdGlvbiIsICJhdXRoUGFyYW1ldGVycyIsICJjb25maWciLCAiY29udGV4dCIsICJjcmVhdGVBd3NBdXRoU2lndjRhSHR0cEF1dGhPcHRpb24iLCAiY3JlYXRlU21pdGh5QXBpTm9BdXRoSHR0cEF1dGhPcHRpb24iLCAiaW1wb3J0X3NpZ25hdHVyZV92NF9tdWx0aV9yZWdpb24iLCAiaW1wb3J0X21pZGRsZXdhcmVfZW5kcG9pbnQiLCAiaW1wb3J0X3V0aWxfbWlkZGxld2FyZSIsICJjcmVhdGVFbmRwb2ludFJ1bGVTZXRIdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlciIsICJfZGVmYXVsdFNUU0h0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyIiwgImRlZmF1bHRTVFNIdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlciIsICJjcmVhdGVFbmRwb2ludFJ1bGVTZXRIdHRwQXV0aFNjaGVtZVByb3ZpZGVyIiwgIl9kZWZhdWx0U1RTSHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJkZWZhdWx0U1RTSHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJyZXNvbHZlU3RzQXV0aENvbmZpZyIsICJyZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWciLCAiaW5pdF9odHRwQXV0aFNjaGVtZVByb3ZpZGVyIiwgIl9fZXNtTWluIiwgImluaXRfaHR0cEF1dGhTY2hlbWVzIiwgImluaXRfZW5kcG9pbnRSZXNvbHZlciIsICJpbml0X1NUU0NsaWVudCIsICJkZWZhdWx0SHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIiLCAiaW5wdXQiLCAiZGVmYXVsdFBhcmFtZXRlcnMiLCAiaW5zdHJ1Y3Rpb25zRm4iLCAiZW5kcG9pbnRQYXJhbWV0ZXJzIiwgImRlZmF1bHRFbmRwb2ludFJlc29sdmVyIiwgImRlZmF1bHRIdHRwQXV0aFNjaGVtZVJlc29sdmVyIiwgImNyZWF0ZUh0dHBBdXRoT3B0aW9uRnVuY3Rpb25zIiwgImF1dGhTY2hlbWVzIiwgIm9wdGlvbnMiLCAic2NoZW1lIiwgInJlc29sdmVkTmFtZSIsICJwcm9wZXJ0aWVzIiwgInJlc3QiLCAibmFtZSIsICJzY2hlbWVJZCIsICJzaWd2NFByZXNlbnQiLCAicyIsICJjcmVhdGVPcHRpb24iLCAib3B0aW9uIiwgIlNUU0NsaWVudCIsICJjb25maWdfMCIsICJjb25maWdfMSIsICJyZXNvbHZlQXdzU2RrU2lnVjRDb25maWciLCAiY29uZmlnXzIiLCAicmVzb2x2ZUF3c1Nka1NpZ1Y0QUNvbmZpZyIsICJyZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzIiwgImNvbW1vblBhcmFtcyIsICJpbml0X0VuZHBvaW50UGFyYW1ldGVycyIsICJfX2VzbU1pbiIsICJvcHRpb25zIiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgIlNUU1NlcnZpY2VFeGNlcHRpb24iLCAiaW5pdF9TVFNTZXJ2aWNlRXhjZXB0aW9uIiwgIl9fZXNtTWluIiwgIl9TVFNTZXJ2aWNlRXhjZXB0aW9uIiwgIl9fU2VydmljZUV4Y2VwdGlvbiIsICJvcHRpb25zIiwgIkV4cGlyZWRUb2tlbkV4Y2VwdGlvbiIsICJNYWxmb3JtZWRQb2xpY3lEb2N1bWVudEV4Y2VwdGlvbiIsICJQYWNrZWRQb2xpY3lUb29MYXJnZUV4Y2VwdGlvbiIsICJSZWdpb25EaXNhYmxlZEV4Y2VwdGlvbiIsICJJRFBSZWplY3RlZENsYWltRXhjZXB0aW9uIiwgIkludmFsaWRJZGVudGl0eVRva2VuRXhjZXB0aW9uIiwgIklEUENvbW11bmljYXRpb25FcnJvckV4Y2VwdGlvbiIsICJpbml0X2Vycm9ycyIsICJfX2VzbU1pbiIsICJpbml0X1NUU1NlcnZpY2VFeGNlcHRpb24iLCAiX0V4cGlyZWRUb2tlbkV4Y2VwdGlvbiIsICJTVFNTZXJ2aWNlRXhjZXB0aW9uIiwgIm9wdHMiLCAiX01hbGZvcm1lZFBvbGljeURvY3VtZW50RXhjZXB0aW9uIiwgIl9QYWNrZWRQb2xpY3lUb29MYXJnZUV4Y2VwdGlvbiIsICJfUmVnaW9uRGlzYWJsZWRFeGNlcHRpb24iLCAiX0lEUFJlamVjdGVkQ2xhaW1FeGNlcHRpb24iLCAiX0ludmFsaWRJZGVudGl0eVRva2VuRXhjZXB0aW9uIiwgIl9JRFBDb21tdW5pY2F0aW9uRXJyb3JFeGNlcHRpb24iLCAiaW1wb3J0X3NjaGVtYSIsICJfQSIsICJfQUtJIiwgIl9BUiIsICJfQVJJIiwgIl9BUlIiLCAiX0FSUnMiLCAiX0FSVSIsICJfQVJXV0kiLCAiX0FSV1dJUiIsICJfQVJXV0lScyIsICJfQXUiLCAiX0MiLCAiX0NBIiwgIl9EUyIsICJfRSIsICJfRUkiLCAiX0VURSIsICJfSURQQ0VFIiwgIl9JRFBSQ0UiLCAiX0lJVEUiLCAiX0siLCAiX01QREUiLCAiX1AiLCAiX1BBIiwgIl9QQXIiLCAiX1BDIiwgIl9QQ0xUIiwgIl9QQ3IiLCAiX1BEVCIsICJfUEkiLCAiX1BQUyIsICJfUFBUTEUiLCAiX1ByIiwgIl9SQSIsICJfUkRFIiwgIl9SU04iLCAiX1NBSyIsICJfU0ZXSVQiLCAiX1NJIiwgIl9TTiIsICJfU1QiLCAiX1QiLCAiX1RDIiwgIl9UVEsiLCAiX1RhIiwgIl9WIiwgIl9XSVQiLCAiX2EiLCAiX2FLU1QiLCAiX2FRRSIsICJfYyIsICJfY1RUIiwgIl9lIiwgIl9oRSIsICJfbSIsICJfcERMVCIsICJfcyIsICJfdExUIiwgIm4wIiwgIl9zX3JlZ2lzdHJ5IiwgIlNUU1NlcnZpY2VFeGNlcHRpb24kIiwgIm4wX3JlZ2lzdHJ5IiwgIkV4cGlyZWRUb2tlbkV4Y2VwdGlvbiQiLCAiSURQQ29tbXVuaWNhdGlvbkVycm9yRXhjZXB0aW9uJCIsICJJRFBSZWplY3RlZENsYWltRXhjZXB0aW9uJCIsICJJbnZhbGlkSWRlbnRpdHlUb2tlbkV4Y2VwdGlvbiQiLCAiTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFeGNlcHRpb24kIiwgIlBhY2tlZFBvbGljeVRvb0xhcmdlRXhjZXB0aW9uJCIsICJSZWdpb25EaXNhYmxlZEV4Y2VwdGlvbiQiLCAiZXJyb3JUeXBlUmVnaXN0cmllcyIsICJhY2Nlc3NLZXlTZWNyZXRUeXBlIiwgImNsaWVudFRva2VuVHlwZSIsICJBc3N1bWVkUm9sZVVzZXIkIiwgIkFzc3VtZVJvbGVSZXF1ZXN0JCIsICJBc3N1bWVSb2xlUmVzcG9uc2UkIiwgIkFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlSZXF1ZXN0JCIsICJBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5UmVzcG9uc2UkIiwgIkNyZWRlbnRpYWxzJCIsICJQb2xpY3lEZXNjcmlwdG9yVHlwZSQiLCAiUHJvdmlkZWRDb250ZXh0JCIsICJUYWckIiwgInBvbGljeURlc2NyaXB0b3JMaXN0VHlwZSIsICJQcm92aWRlZENvbnRleHRzTGlzdFR5cGUiLCAidGFnTGlzdFR5cGUiLCAiQXNzdW1lUm9sZSQiLCAiQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eSQiLCAiaW5pdF9zY2hlbWFzXzAiLCAiX19lc21NaW4iLCAiaW5pdF9lcnJvcnMiLCAiaW5pdF9TVFNTZXJ2aWNlRXhjZXB0aW9uIiwgIlNUU1NlcnZpY2VFeGNlcHRpb24iLCAiRXhwaXJlZFRva2VuRXhjZXB0aW9uIiwgIklEUENvbW11bmljYXRpb25FcnJvckV4Y2VwdGlvbiIsICJJRFBSZWplY3RlZENsYWltRXhjZXB0aW9uIiwgIkludmFsaWRJZGVudGl0eVRva2VuRXhjZXB0aW9uIiwgIk1hbGZvcm1lZFBvbGljeURvY3VtZW50RXhjZXB0aW9uIiwgIlBhY2tlZFBvbGljeVRvb0xhcmdlRXhjZXB0aW9uIiwgIlJlZ2lvbkRpc2FibGVkRXhjZXB0aW9uIiwgImltcG9ydF9zaWduYXR1cmVfdjRfbXVsdGlfcmVnaW9uIiwgImltcG9ydF9jb3JlIiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgImltcG9ydF91cmxfcGFyc2VyIiwgImltcG9ydF91dGlsX2Jhc2U2NCIsICJpbXBvcnRfdXRpbF91dGY4IiwgImdldFJ1bnRpbWVDb25maWciLCAiaW5pdF9ydW50aW1lQ29uZmlnX3NoYXJlZCIsICJfX2VzbU1pbiIsICJpbml0X2h0dHBBdXRoU2NoZW1lcyIsICJpbml0X3Byb3RvY29scyIsICJpbml0X2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAiaW5pdF9lbmRwb2ludFJlc29sdmVyIiwgImluaXRfc2NoZW1hc18wIiwgImNvbmZpZyIsICJkZWZhdWx0RW5kcG9pbnRSZXNvbHZlciIsICJkZWZhdWx0U1RTSHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJpcGMiLCAiQXdzU2RrU2lnVjRTaWduZXIiLCAiQXdzU2RrU2lnVjRBU2lnbmVyIiwgIkF3c1F1ZXJ5UHJvdG9jb2wiLCAiZXJyb3JUeXBlUmVnaXN0cmllcyIsICJpbXBvcnRfdXRpbF91c2VyX2FnZW50X25vZGUiLCAiaW1wb3J0X2NvbmZpZ19yZXNvbHZlciIsICJpbXBvcnRfY29yZSIsICJpbXBvcnRfaGFzaF9ub2RlIiwgImltcG9ydF9taWRkbGV3YXJlX3JldHJ5IiwgImltcG9ydF9ub2RlX2NvbmZpZ19wcm92aWRlciIsICJpbXBvcnRfbm9kZV9odHRwX2hhbmRsZXIiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAiaW1wb3J0X3V0aWxfYm9keV9sZW5ndGhfbm9kZSIsICJpbXBvcnRfdXRpbF9kZWZhdWx0c19tb2RlX25vZGUiLCAiaW1wb3J0X3V0aWxfcmV0cnkiLCAiZ2V0UnVudGltZUNvbmZpZyIsICJpbml0X3J1bnRpbWVDb25maWciLCAiX19lc21NaW4iLCAiaW5pdF9wYWNrYWdlIiwgImluaXRfY2xpZW50IiwgImluaXRfaHR0cEF1dGhTY2hlbWVzIiwgImluaXRfcnVudGltZUNvbmZpZ19zaGFyZWQiLCAiY29uZmlnIiwgImRlZmF1bHRzTW9kZSIsICJkZWZhdWx0Q29uZmlnUHJvdmlkZXIiLCAiY2xpZW50U2hhcmVkVmFsdWVzIiwgImVtaXRXYXJuaW5nSWZVbnN1cHBvcnRlZFZlcnNpb24iLCAibG9hZGVyQ29uZmlnIiwgImxvYWROb2RlQ29uZmlnIiwgIk5PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9PUFRJT05TIiwgInBhY2thZ2VfZGVmYXVsdCIsICJpcGMiLCAiaWRQcm9wcyIsICJBd3NTZGtTaWdWNFNpZ25lciIsICJBd3NTZGtTaWdWNEFTaWduZXIiLCAiUmVxdWVzdEhhbmRsZXIiLCAiTk9ERV9TSUdWNEFfQ09ORklHX09QVElPTlMiLCAiZ2V0SHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uIiwgInJlc29sdmVIdHRwQXV0aFJ1bnRpbWVDb25maWciLCAiaW5pdF9odHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24iLCAiX19lc21NaW4iLCAicnVudGltZUNvbmZpZyIsICJfaHR0cEF1dGhTY2hlbWVzIiwgIl9odHRwQXV0aFNjaGVtZVByb3ZpZGVyIiwgIl9jcmVkZW50aWFscyIsICJodHRwQXV0aFNjaGVtZSIsICJpbmRleCIsICJzY2hlbWUiLCAiaHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJjcmVkZW50aWFscyIsICJjb25maWciLCAiaW1wb3J0X3JlZ2lvbl9jb25maWdfcmVzb2x2ZXIiLCAiaW1wb3J0X3Byb3RvY29sX2h0dHAiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAicmVzb2x2ZVJ1bnRpbWVFeHRlbnNpb25zIiwgImluaXRfcnVudGltZUV4dGVuc2lvbnMiLCAiX19lc21NaW4iLCAiaW5pdF9odHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24iLCAicnVudGltZUNvbmZpZyIsICJleHRlbnNpb25zIiwgImV4dGVuc2lvbkNvbmZpZ3VyYXRpb24iLCAiZ2V0SHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uIiwgImV4dGVuc2lvbiIsICJyZXNvbHZlSHR0cEF1dGhSdW50aW1lQ29uZmlnIiwgImltcG9ydF9taWRkbGV3YXJlX2hvc3RfaGVhZGVyIiwgImltcG9ydF9taWRkbGV3YXJlX2xvZ2dlciIsICJpbXBvcnRfbWlkZGxld2FyZV9yZWN1cnNpb25fZGV0ZWN0aW9uIiwgImltcG9ydF9taWRkbGV3YXJlX3VzZXJfYWdlbnQiLCAiaW1wb3J0X2NvbmZpZ19yZXNvbHZlciIsICJpbXBvcnRfY29yZSIsICJpbXBvcnRfc2NoZW1hIiwgImltcG9ydF9taWRkbGV3YXJlX2NvbnRlbnRfbGVuZ3RoIiwgImltcG9ydF9taWRkbGV3YXJlX2VuZHBvaW50IiwgImltcG9ydF9taWRkbGV3YXJlX3JldHJ5IiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgIlNUU0NsaWVudCIsICJpbml0X1NUU0NsaWVudCIsICJfX2VzbU1pbiIsICJpbml0X2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAiaW5pdF9FbmRwb2ludFBhcmFtZXRlcnMiLCAiaW5pdF9ydW50aW1lQ29uZmlnIiwgImluaXRfcnVudGltZUV4dGVuc2lvbnMiLCAiX19DbGllbnQiLCAiY29uZmlndXJhdGlvbiIsICJfY29uZmlnXzAiLCAiZ2V0UnVudGltZUNvbmZpZyIsICJfY29uZmlnXzEiLCAicmVzb2x2ZUNsaWVudEVuZHBvaW50UGFyYW1ldGVycyIsICJfY29uZmlnXzIiLCAiX2NvbmZpZ18zIiwgIl9jb25maWdfNCIsICJfY29uZmlnXzUiLCAiX2NvbmZpZ182IiwgIl9jb25maWdfNyIsICJyZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWciLCAiX2NvbmZpZ184IiwgInJlc29sdmVSdW50aW1lRXh0ZW5zaW9ucyIsICJkZWZhdWx0U1RTSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIiLCAiY29uZmlnIiwgImltcG9ydF9taWRkbGV3YXJlX2VuZHBvaW50IiwgImltcG9ydF9zbWl0aHlfY2xpZW50IiwgIkFzc3VtZVJvbGVDb21tYW5kIiwgImluaXRfQXNzdW1lUm9sZUNvbW1hbmQiLCAiX19lc21NaW4iLCAiaW5pdF9FbmRwb2ludFBhcmFtZXRlcnMiLCAiaW5pdF9zY2hlbWFzXzAiLCAiJENvbW1hbmQiLCAiY29tbW9uUGFyYW1zIiwgIkNvbW1hbmQiLCAiY3MiLCAiY29uZmlnIiwgIm8iLCAiQXNzdW1lUm9sZSQiLCAiaW1wb3J0X21pZGRsZXdhcmVfZW5kcG9pbnQiLCAiaW1wb3J0X3NtaXRoeV9jbGllbnQiLCAiQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eUNvbW1hbmQiLCAiaW5pdF9Bc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5Q29tbWFuZCIsICJfX2VzbU1pbiIsICJpbml0X0VuZHBvaW50UGFyYW1ldGVycyIsICJpbml0X3NjaGVtYXNfMCIsICIkQ29tbWFuZCIsICJjb21tb25QYXJhbXMiLCAiQ29tbWFuZCIsICJjcyIsICJjb25maWciLCAibyIsICJBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5JCIsICJpbXBvcnRfc21pdGh5X2NsaWVudCIsICJjb21tYW5kcyIsICJTVFMiLCAiaW5pdF9TVFMiLCAiX19lc21NaW4iLCAiaW5pdF9Bc3N1bWVSb2xlQ29tbWFuZCIsICJpbml0X0Fzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlDb21tYW5kIiwgImluaXRfU1RTQ2xpZW50IiwgIkFzc3VtZVJvbGVDb21tYW5kIiwgIkFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlDb21tYW5kIiwgIlNUU0NsaWVudCIsICJpbml0X2NvbW1hbmRzIiwgIl9fZXNtTWluIiwgImluaXRfQXNzdW1lUm9sZUNvbW1hbmQiLCAiaW5pdF9Bc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5Q29tbWFuZCIsICJpbml0X21vZGVsc18wIiwgIl9fZXNtTWluIiwgImltcG9ydF9yZWdpb25fY29uZmlnX3Jlc29sdmVyIiwgImdldEFjY291bnRJZEZyb21Bc3N1bWVkUm9sZVVzZXIiLCAicmVzb2x2ZVJlZ2lvbiIsICJnZXREZWZhdWx0Um9sZUFzc3VtZXIiLCAiZ2V0RGVmYXVsdFJvbGVBc3N1bWVyV2l0aFdlYklkZW50aXR5IiwgImlzSDIiLCAiaW5pdF9kZWZhdWx0U3RzUm9sZUFzc3VtZXJzIiwgIl9fZXNtTWluIiwgImluaXRfY2xpZW50IiwgImluaXRfQXNzdW1lUm9sZUNvbW1hbmQiLCAiaW5pdF9Bc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5Q29tbWFuZCIsICJhc3N1bWVkUm9sZVVzZXIiLCAiYXJuQ29tcG9uZW50cyIsICJfcmVnaW9uIiwgIl9wYXJlbnRSZWdpb24iLCAiY3JlZGVudGlhbFByb3ZpZGVyTG9nZ2VyIiwgImxvYWRlckNvbmZpZyIsICJyZWdpb24iLCAicGFyZW50UmVnaW9uIiwgInN0c0RlZmF1bHRSZWdpb24iLCAicmVzb2x2ZWRSZWdpb24iLCAic3RzT3B0aW9ucyIsICJTVFNDbGllbnQiLCAic3RzQ2xpZW50IiwgImNsb3N1cmVTb3VyY2VDcmVkcyIsICJzb3VyY2VDcmVkcyIsICJwYXJhbXMiLCAibG9nZ2VyIiwgInByb2ZpbGUiLCAicmVxdWVzdEhhbmRsZXIiLCAidXNlckFnZW50QXBwSWQiLCAiaXNDb21wYXRpYmxlUmVxdWVzdEhhbmRsZXIiLCAiQ3JlZGVudGlhbHMiLCAiQXNzdW1lZFJvbGVVc2VyIiwgIkFzc3VtZVJvbGVDb21tYW5kIiwgImFjY291bnRJZCIsICJjcmVkZW50aWFscyIsICJzZXRDcmVkZW50aWFsRmVhdHVyZSIsICJBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5Q29tbWFuZCIsICJnZXRDdXN0b21pemFibGVTdHNDbGllbnRDdG9yIiwgImdldERlZmF1bHRSb2xlQXNzdW1lciIsICJnZXREZWZhdWx0Um9sZUFzc3VtZXJXaXRoV2ViSWRlbnRpdHkiLCAiZGVjb3JhdGVEZWZhdWx0Q3JlZGVudGlhbFByb3ZpZGVyIiwgImluaXRfZGVmYXVsdFJvbGVBc3N1bWVycyIsICJfX2VzbU1pbiIsICJpbml0X2RlZmF1bHRTdHNSb2xlQXNzdW1lcnMiLCAiaW5pdF9TVFNDbGllbnQiLCAiYmFzZUN0b3IiLCAiY3VzdG9taXphdGlvbnMiLCAiY29uZmlnIiwgImN1c3RvbWl6YXRpb24iLCAic3RzT3B0aW9ucyIsICJzdHNQbHVnaW5zIiwgIlNUU0NsaWVudCIsICJwcm92aWRlciIsICJpbnB1dCIsICJzdHNfZXhwb3J0cyIsICJfX2V4cG9ydCIsICJBc3N1bWVSb2xlJCIsICJBc3N1bWVSb2xlQ29tbWFuZCIsICJBc3N1bWVSb2xlUmVxdWVzdCQiLCAiQXNzdW1lUm9sZVJlc3BvbnNlJCIsICJBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5JCIsICJBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5Q29tbWFuZCIsICJBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5UmVxdWVzdCQiLCAiQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eVJlc3BvbnNlJCIsICJBc3N1bWVkUm9sZVVzZXIkIiwgIkNyZWRlbnRpYWxzJCIsICJFeHBpcmVkVG9rZW5FeGNlcHRpb24iLCAiRXhwaXJlZFRva2VuRXhjZXB0aW9uJCIsICJJRFBDb21tdW5pY2F0aW9uRXJyb3JFeGNlcHRpb24iLCAiSURQQ29tbXVuaWNhdGlvbkVycm9yRXhjZXB0aW9uJCIsICJJRFBSZWplY3RlZENsYWltRXhjZXB0aW9uIiwgIklEUFJlamVjdGVkQ2xhaW1FeGNlcHRpb24kIiwgIkludmFsaWRJZGVudGl0eVRva2VuRXhjZXB0aW9uIiwgIkludmFsaWRJZGVudGl0eVRva2VuRXhjZXB0aW9uJCIsICJNYWxmb3JtZWRQb2xpY3lEb2N1bWVudEV4Y2VwdGlvbiIsICJNYWxmb3JtZWRQb2xpY3lEb2N1bWVudEV4Y2VwdGlvbiQiLCAiUGFja2VkUG9saWN5VG9vTGFyZ2VFeGNlcHRpb24iLCAiUGFja2VkUG9saWN5VG9vTGFyZ2VFeGNlcHRpb24kIiwgIlBvbGljeURlc2NyaXB0b3JUeXBlJCIsICJQcm92aWRlZENvbnRleHQkIiwgIlJlZ2lvbkRpc2FibGVkRXhjZXB0aW9uIiwgIlJlZ2lvbkRpc2FibGVkRXhjZXB0aW9uJCIsICJTVFMiLCAiU1RTQ2xpZW50IiwgIlNUU1NlcnZpY2VFeGNlcHRpb24iLCAiU1RTU2VydmljZUV4Y2VwdGlvbiQiLCAiVGFnJCIsICJfX0NsaWVudCIsICJkZWNvcmF0ZURlZmF1bHRDcmVkZW50aWFsUHJvdmlkZXIiLCAiZXJyb3JUeXBlUmVnaXN0cmllcyIsICJnZXREZWZhdWx0Um9sZUFzc3VtZXIiLCAiZ2V0RGVmYXVsdFJvbGVBc3N1bWVyV2l0aFdlYklkZW50aXR5IiwgImluaXRfc3RzIiwgIl9fZXNtTWluIiwgImluaXRfU1RTQ2xpZW50IiwgImluaXRfU1RTIiwgImluaXRfY29tbWFuZHMiLCAiaW5pdF9zY2hlbWFzXzAiLCAiaW5pdF9lcnJvcnMiLCAiaW5pdF9tb2RlbHNfMCIsICJpbml0X2RlZmF1bHRSb2xlQXNzdW1lcnMiLCAiaW5pdF9TVFNTZXJ2aWNlRXhjZXB0aW9uIiwgInJlcXVpcmVfZGlzdF9janMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgInNoYXJlZEluaUZpbGVMb2FkZXIiLCAicHJvcGVydHlQcm92aWRlciIsICJub2RlX2NoaWxkX3Byb2Nlc3MiLCAibm9kZV91dGlsIiwgImNsaWVudCIsICJnZXRWYWxpZGF0ZWRQcm9jZXNzQ3JlZGVudGlhbHMiLCAicHJvZmlsZU5hbWUiLCAiZGF0YSIsICJwcm9maWxlcyIsICJjdXJyZW50VGltZSIsICJhY2NvdW50SWQiLCAiY3JlZGVudGlhbHMiLCAicmVzb2x2ZVByb2Nlc3NDcmVkZW50aWFscyIsICJsb2dnZXIiLCAicHJvZmlsZSIsICJjcmVkZW50aWFsUHJvY2VzcyIsICJleGVjUHJvbWlzZSIsICJzdGRvdXQiLCAiZXJyb3IiLCAiZnJvbVByb2Nlc3MiLCAiaW5pdCIsICJjYWxsZXJDbGllbnRDb25maWciLCAicmVxdWlyZV9mcm9tV2ViVG9rZW4iLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgIl9fY3JlYXRlQmluZGluZyIsICJvIiwgIm0iLCAiayIsICJrMiIsICJkZXNjIiwgIl9fc2V0TW9kdWxlRGVmYXVsdCIsICJ2IiwgIl9faW1wb3J0U3RhciIsICJvd25LZXlzIiwgImFyIiwgIm1vZCIsICJyZXN1bHQiLCAiaSIsICJmcm9tV2ViVG9rZW4iLCAiaW5pdCIsICJhd3NJZGVudGl0eVByb3BlcnRpZXMiLCAicm9sZUFybiIsICJyb2xlU2Vzc2lvbk5hbWUiLCAid2ViSWRlbnRpdHlUb2tlbiIsICJwcm92aWRlcklkIiwgInBvbGljeUFybnMiLCAicG9saWN5IiwgImR1cmF0aW9uU2Vjb25kcyIsICJyb2xlQXNzdW1lcldpdGhXZWJJZGVudGl0eSIsICJnZXREZWZhdWx0Um9sZUFzc3VtZXJXaXRoV2ViSWRlbnRpdHkiLCAicmVxdWlyZV9mcm9tVG9rZW5GaWxlIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJjbGllbnRfMSIsICJwcm9wZXJ0eV9wcm92aWRlcl8xIiwgInNoYXJlZF9pbmlfZmlsZV9sb2FkZXJfMSIsICJub2RlX2ZzXzEiLCAiZnJvbVdlYlRva2VuXzEiLCAiRU5WX1RPS0VOX0ZJTEUiLCAiRU5WX1JPTEVfQVJOIiwgIkVOVl9ST0xFX1NFU1NJT05fTkFNRSIsICJmcm9tVG9rZW5GaWxlIiwgImluaXQiLCAiYXdzSWRlbnRpdHlQcm9wZXJ0aWVzIiwgIndlYklkZW50aXR5VG9rZW5GaWxlIiwgInJvbGVBcm4iLCAicm9sZVNlc3Npb25OYW1lIiwgImNyZWRlbnRpYWxzIiwgInJlcXVpcmVfZGlzdF9janMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgImZyb21Ub2tlbkZpbGUiLCAiZnJvbVdlYlRva2VuIiwgImsiLCAicmVxdWlyZV9kaXN0X2NqcyIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAic2hhcmVkSW5pRmlsZUxvYWRlciIsICJwcm9wZXJ0eVByb3ZpZGVyIiwgImNsaWVudCIsICJjcmVkZW50aWFsUHJvdmlkZXJMb2dpbiIsICJyZXNvbHZlQ3JlZGVudGlhbFNvdXJjZSIsICJjcmVkZW50aWFsU291cmNlIiwgInByb2ZpbGVOYW1lIiwgImxvZ2dlciIsICJzb3VyY2VQcm92aWRlcnNNYXAiLCAib3B0aW9ucyIsICJmcm9tSHR0cCIsICJmcm9tQ29udGFpbmVyTWV0YWRhdGEiLCAic2V0TmFtZWRQcm92aWRlciIsICJmcm9tSW5zdGFuY2VNZXRhZGF0YSIsICJmcm9tRW52IiwgImNyZWRzIiwgImlzQXNzdW1lUm9sZVByb2ZpbGUiLCAiYXJnIiwgInByb2ZpbGUiLCAiaXNBc3N1bWVSb2xlV2l0aFNvdXJjZVByb2ZpbGUiLCAiaXNDcmVkZW50aWFsU291cmNlUHJvZmlsZSIsICJ3aXRoU291cmNlUHJvZmlsZSIsICJ3aXRoUHJvdmlkZXJQcm9maWxlIiwgInJlc29sdmVBc3N1bWVSb2xlQ3JlZGVudGlhbHMiLCAicHJvZmlsZXMiLCAiY2FsbGVyQ2xpZW50Q29uZmlnIiwgInZpc2l0ZWRQcm9maWxlcyIsICJyZXNvbHZlUHJvZmlsZURhdGEiLCAicHJvZmlsZURhdGEiLCAic291cmNlX3Byb2ZpbGUiLCAicmVnaW9uIiwgImdldERlZmF1bHRSb2xlQXNzdW1lciIsICJzb3VyY2VDcmVkc1Byb3ZpZGVyIiwgImlzQ3JlZGVudGlhbFNvdXJjZVdpdGhvdXRSb2xlQXJuIiwgInBhcmFtcyIsICJtZmFfc2VyaWFsIiwgInNvdXJjZUNyZWRzIiwgInNlY3Rpb24iLCAiaXNMb2dpblByb2ZpbGUiLCAiZGF0YSIsICJyZXNvbHZlTG9naW5DcmVkZW50aWFscyIsICJjcmVkZW50aWFscyIsICJpc1Byb2Nlc3NQcm9maWxlIiwgInJlc29sdmVQcm9jZXNzQ3JlZGVudGlhbHMiLCAiZnJvbVByb2Nlc3MiLCAicmVzb2x2ZVNzb0NyZWRlbnRpYWxzIiwgImZyb21TU08iLCAiaXNTc29Qcm9maWxlIiwgImlzU3RhdGljQ3JlZHNQcm9maWxlIiwgInJlc29sdmVTdGF0aWNDcmVkZW50aWFscyIsICJpc1dlYklkZW50aXR5UHJvZmlsZSIsICJyZXNvbHZlV2ViSWRlbnRpdHlDcmVkZW50aWFscyIsICJmcm9tVG9rZW5GaWxlIiwgImlzQXNzdW1lUm9sZVJlY3Vyc2l2ZUNhbGwiLCAiZnJvbUluaSIsICJpbml0IiwgInJlcXVpcmVfZGlzdF9janMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgImNyZWRlbnRpYWxQcm92aWRlckVudiIsICJwcm9wZXJ0eVByb3ZpZGVyIiwgInNoYXJlZEluaUZpbGVMb2FkZXIiLCAiRU5WX0lNRFNfRElTQUJMRUQiLCAicmVtb3RlUHJvdmlkZXIiLCAiaW5pdCIsICJFTlZfQ01EU19GVUxMX1VSSSIsICJFTlZfQ01EU19SRUxBVElWRV9VUkkiLCAiZnJvbUNvbnRhaW5lck1ldGFkYXRhIiwgImZyb21JbnN0YW5jZU1ldGFkYXRhIiwgImZyb21IdHRwIiwgIm1lbW9pemVDaGFpbiIsICJwcm92aWRlcnMiLCAidHJlYXRBc0V4cGlyZWQiLCAiY2hhaW4iLCAiaW50ZXJuYWxDcmVhdGVDaGFpbiIsICJhY3RpdmVMb2NrIiwgInBhc3NpdmVMb2NrIiwgImNyZWRlbnRpYWxzIiwgInByb3ZpZGVyIiwgIm9wdGlvbnMiLCAiYXdzSWRlbnRpdHlQcm9wZXJ0aWVzIiwgImxhc3RQcm92aWRlckVycm9yIiwgImVyciIsICJtdWx0aXBsZUNyZWRlbnRpYWxTb3VyY2VXYXJuaW5nRW1pdHRlZCIsICJkZWZhdWx0UHJvdmlkZXIiLCAic3NvU3RhcnRVcmwiLCAic3NvQWNjb3VudElkIiwgInNzb1JlZ2lvbiIsICJzc29Sb2xlTmFtZSIsICJzc29TZXNzaW9uIiwgImZyb21TU08iLCAiZnJvbUluaSIsICJmcm9tUHJvY2VzcyIsICJmcm9tVG9rZW5GaWxlIiwgImNyZWRlbnRpYWxzVHJlYXRlZEFzRXhwaXJlZCIsICJjcmVkZW50aWFsc1dpbGxOZWVkUmVmcmVzaCIsICJyZXF1aXJlX2Rpc3RfY2pzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJub2RlX29zIiwgIm5vZGVfcHJvY2VzcyIsICJ1dGlsQ29uZmlnUHJvdmlkZXIiLCAicHJvbWlzZXMiLCAibm9kZV9wYXRoIiwgIm1pZGRsZXdhcmVVc2VyQWdlbnQiLCAiZ2V0UnVudGltZVVzZXJBZ2VudFBhaXIiLCAicnVudGltZXNUb0NoZWNrIiwgInJ1bnRpbWUiLCAiZ2V0Tm9kZU1vZHVsZXNQYXJlbnREaXJzIiwgImRpcm5hbWUiLCAiY3dkIiwgIm5vcm1hbGl6ZWRQYXRoIiwgInBhcnRzIiwgIm5vZGVNb2R1bGVzSW5kZXgiLCAicGFyZW50RGlyIiwgIlNFTVZFUl9SRUdFWCIsICJnZXRTYW5pdGl6ZWRUeXBlU2NyaXB0VmVyc2lvbiIsICJ2ZXJzaW9uIiwgIm1hdGNoIiwgIm1ham9yIiwgIm1pbm9yIiwgInBhdGNoIiwgInByZXJlbGVhc2UiLCAiQUxMT1dFRF9QUkVGSVhFUyIsICJBTExPV0VEX0RJU1RfVEFHUyIsICJnZXRTYW5pdGl6ZWREZXZUeXBlU2NyaXB0VmVyc2lvbiIsICJwcmVmaXgiLCAicCIsICJzYW5pdGl6ZWRUeXBlU2NyaXB0VmVyc2lvbiIsICJ0c2NWZXJzaW9uIiwgIlRTX1BBQ0tBR0VfSlNPTiIsICJnZXRUeXBlU2NyaXB0VXNlckFnZW50UGFpciIsICJpc1R5cGVTY3JpcHREZXRlY3Rpb25EaXNhYmxlZCIsICJub2RlTW9kdWxlc1BhcmVudERpcnMiLCAidmVyc2lvbkZyb21BcHAiLCAibm9kZU1vZHVsZXNQYXJlbnREaXIiLCAiYXBwUGFja2FnZUpzb25QYXRoIiwgInBhY2thZ2VKc29uIiwgImRlcGVuZGVuY2llcyIsICJkZXZEZXBlbmRlbmNpZXMiLCAidmVyc2lvbkZyb21Ob2RlTW9kdWxlcyIsICJ0c1BhY2thZ2VKc29uUGF0aCIsICJzYW5pdGl6ZWRWZXJzaW9uIiwgImNydEF2YWlsYWJpbGl0eSIsICJpc0NydEF2YWlsYWJsZSIsICJjcmVhdGVEZWZhdWx0VXNlckFnZW50UHJvdmlkZXIiLCAic2VydmljZUlkIiwgImNsaWVudFZlcnNpb24iLCAicnVudGltZVVzZXJBZ2VudFBhaXIiLCAiY29uZmlnIiwgInNlY3Rpb25zIiwgInR5cGVzY3JpcHRVc2VyQWdlbnRQYWlyIiwgImNydEF2YWlsYWJsZSIsICJhcHBJZCIsICJkZWZhdWx0VXNlckFnZW50IiwgIlVBX0FQUF9JRF9FTlZfTkFNRSIsICJVQV9BUFBfSURfSU5JX05BTUUiLCAiVUFfQVBQX0lEX0lOSV9OQU1FX0RFUFJFQ0FURUQiLCAiTk9ERV9BUFBfSURfQ09ORklHX09QVElPTlMiLCAiZW52IiwgInByb2ZpbGUiLCAicmVxdWlyZV9ydWxlc2V0IiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJ5IiwgInoiLCAiQSIsICJCIiwgIkMiLCAiRCIsICJhIiwgImIiLCAiYyIsICJkIiwgImUiLCAiZiIsICJnIiwgImgiLCAiaSIsICJqIiwgImsiLCAibCIsICJtIiwgIm4iLCAibyIsICJwIiwgInEiLCAiciIsICJzIiwgInQiLCAidSIsICJ2IiwgInciLCAieCIsICJfZGF0YSIsICJyZXF1aXJlX2VuZHBvaW50UmVzb2x2ZXIiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgInV0aWxfZW5kcG9pbnRzXzEiLCAidXRpbF9lbmRwb2ludHNfMiIsICJydWxlc2V0XzEiLCAiY2FjaGUiLCAiZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIiLCAiZW5kcG9pbnRQYXJhbXMiLCAiY29udGV4dCIsICJyZXF1aXJlX1NlY3JldHNNYW5hZ2VyU2VydmljZUV4Y2VwdGlvbiIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAic21pdGh5X2NsaWVudF8xIiwgIlNlY3JldHNNYW5hZ2VyU2VydmljZUV4Y2VwdGlvbiIsICJfU2VjcmV0c01hbmFnZXJTZXJ2aWNlRXhjZXB0aW9uIiwgIm9wdGlvbnMiLCAicmVxdWlyZV9lcnJvcnMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgIlNlY3JldHNNYW5hZ2VyU2VydmljZUV4Y2VwdGlvbl8xIiwgIkRlY3J5cHRpb25GYWlsdXJlIiwgIl9EZWNyeXB0aW9uRmFpbHVyZSIsICJvcHRzIiwgIkludGVybmFsU2VydmljZUVycm9yIiwgIl9JbnRlcm5hbFNlcnZpY2VFcnJvciIsICJJbnZhbGlkTmV4dFRva2VuRXhjZXB0aW9uIiwgIl9JbnZhbGlkTmV4dFRva2VuRXhjZXB0aW9uIiwgIkludmFsaWRQYXJhbWV0ZXJFeGNlcHRpb24iLCAiX0ludmFsaWRQYXJhbWV0ZXJFeGNlcHRpb24iLCAiSW52YWxpZFJlcXVlc3RFeGNlcHRpb24iLCAiX0ludmFsaWRSZXF1ZXN0RXhjZXB0aW9uIiwgIlJlc291cmNlTm90Rm91bmRFeGNlcHRpb24iLCAiX1Jlc291cmNlTm90Rm91bmRFeGNlcHRpb24iLCAiRW5jcnlwdGlvbkZhaWx1cmUiLCAiX0VuY3J5cHRpb25GYWlsdXJlIiwgIkxpbWl0RXhjZWVkZWRFeGNlcHRpb24iLCAiX0xpbWl0RXhjZWVkZWRFeGNlcHRpb24iLCAiTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFeGNlcHRpb24iLCAiX01hbGZvcm1lZFBvbGljeURvY3VtZW50RXhjZXB0aW9uIiwgIlByZWNvbmRpdGlvbk5vdE1ldEV4Y2VwdGlvbiIsICJfUHJlY29uZGl0aW9uTm90TWV0RXhjZXB0aW9uIiwgIlJlc291cmNlRXhpc3RzRXhjZXB0aW9uIiwgIl9SZXNvdXJjZUV4aXN0c0V4Y2VwdGlvbiIsICJQdWJsaWNQb2xpY3lFeGNlcHRpb24iLCAiX1B1YmxpY1BvbGljeUV4Y2VwdGlvbiIsICJyZXF1aXJlX3NjaGVtYXNfMCIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAiX0FBRCIsICJfQVBJRUxUIiwgIl9BUElFVCIsICJfQVJOIiwgIl9BUlIiLCAiX0FSUkxUIiwgIl9CR1NWIiwgIl9CR1NWUiIsICJfQkdTVlJhIiwgIl9CUFAiLCAiX0NEIiwgIl9DTiIsICJfQ1JTIiwgIl9DUlNSIiwgIl9DUlNSYSIsICJfQ1JUIiwgIl9DUyIsICJfQ1NSIiwgIl9DU1JyIiwgIl9EIiwgIl9ERCIsICJfRERlIiwgIl9ERiIsICJfRFJQIiwgIl9EUlBSIiwgIl9EUlBSZSIsICJfRFMiLCAiX0RTUiIsICJfRFNSZSIsICJfRFNSZXMiLCAiX0RTUmVzYyIsICJfRFNlIiwgIl9EdSIsICJfRSIsICJfRUMiLCAiX0VDeCIsICJfRUYiLCAiX0VMIiwgIl9FTSIsICJfRU4iLCAiX0VQIiwgIl9FU1JNIiwgIl9FU1JNSSIsICJfRVNSTVQiLCAiX0VTUlJBIiwgIl9FVSIsICJfRiIsICJfRkRXUiIsICJfRkxUIiwgIl9GT1JTIiwgIl9GaSIsICJfR1JQIiwgIl9HUlBSIiwgIl9HUlBSZSIsICJfR1JQUmV0IiwgIl9HUlBSZXRlIiwgIl9HUlBlIiwgIl9HU1YiLCAiX0dTVlIiLCAiX0dTVlJlIiwgIl9JRCIsICJfSU5URSIsICJfSVBEIiwgIl9JUEUiLCAiX0lSRSIsICJfSVMiLCAiX0lTRSIsICJfSyIsICJfS0tJIiwgIl9LS0ltIiwgIl9MQUQiLCAiX0xDRCIsICJfTEVFIiwgIl9MUkQiLCAiX0xTIiwgIl9MU1IiLCAiX0xTUmkiLCAiX0xTVkkiLCAiX0xTVklSIiwgIl9MU1ZJUmkiLCAiX00iLCAiX01QREUiLCAiX01SIiwgIl9NVFZJIiwgIl9OIiwgIl9OUkQiLCAiX05UIiwgIl9PUyIsICJfUEwiLCAiX1BOTUUiLCAiX1BQRSIsICJfUFIiLCAiX1BSUCIsICJfUFJQUiIsICJfUFJQUnUiLCAiX1BTViIsICJfUFNWUiIsICJfUFNWUnUiLCAiX1BWUCIsICJfUiIsICJfUkUiLCAiX1JFRSIsICJfUkVJVCIsICJfUkZWSSIsICJfUkkiLCAiX1JMQVJOIiwgIl9STkZFIiwgIl9SUCIsICJfUlBUIiwgIl9SUGUiLCAiX1JSIiwgIl9SUkZSIiwgIl9SUkZSUiIsICJfUlJGUlJlIiwgIl9SUlIiLCAiX1JSVCIsICJfUlJUbyIsICJfUlMiLCAiX1JTTFQiLCAiX1JTUiIsICJfUlNSZSIsICJfUlNSbyIsICJfUlNSb3QiLCAiX1JTVCIsICJfUlNUUiIsICJfUlNUUlIiLCAiX1JTVFJSZSIsICJfUlNlIiwgIl9SU28iLCAiX1JUIiwgIl9SVFQiLCAiX1JXSUQiLCAiX1MiLCAiX1NCIiwgIl9TQlQiLCAiX1NCbyIsICJfU0UiLCAiX1NJIiwgIl9TSUwiLCAiX1NMIiwgIl9TTEUiLCAiX1NMVCIsICJfU00iLCAiX1NPIiwgIl9TUlRSIiwgIl9TUlRSUiIsICJfU1JUUlJ0IiwgIl9TUyIsICJfU1NUIiwgIl9TViIsICJfU1ZFIiwgIl9TVkxFIiwgIl9TVkxUIiwgIl9TVlQiLCAiX1NWVFMiLCAiX1NWVFNNVCIsICJfVCIsICJfVEsiLCAiX1RMVCIsICJfVFIiLCAiX1RSUiIsICJfVGEiLCAiX1R5IiwgIl9VUiIsICJfVVJSIiwgIl9VUyIsICJfVVNSIiwgIl9VU1JwIiwgIl9VU1ZTIiwgIl9VU1ZTUiIsICJfVVNWU1JwIiwgIl9WIiwgIl9WRSIsICJfVkVFIiwgIl9WRVQiLCAiX1ZJIiwgIl9WSVRTIiwgIl9WUlAiLCAiX1ZSUFIiLCAiX1ZSUFJhIiwgIl9WUyIsICJfVlNlIiwgIl9WYSIsICJfVmUiLCAiX2MiLCAiX2UiLCAiX3MiLCAiX3NlIiwgIm4wIiwgInNjaGVtYV8xIiwgImVycm9yc18xIiwgIlNlY3JldHNNYW5hZ2VyU2VydmljZUV4Y2VwdGlvbl8xIiwgIl9zX3JlZ2lzdHJ5IiwgIm4wX3JlZ2lzdHJ5IiwgIlJhbmRvbVBhc3N3b3JkVHlwZSIsICJSb3RhdGlvblRva2VuVHlwZSIsICJTZWNyZXRCaW5hcnlUeXBlIiwgIlNlY3JldFN0cmluZ1R5cGUiLCAiRmlsdGVyc0xpc3RUeXBlIiwgIlNlY3JldFZhbHVlc1R5cGUiLCAiQVBJRXJyb3JMaXN0VHlwZSIsICJUYWdMaXN0VHlwZSIsICJBZGRSZXBsaWNhUmVnaW9uTGlzdFR5cGUiLCAiUmVwbGljYXRpb25TdGF0dXNMaXN0VHlwZSIsICJFeHRlcm5hbFNlY3JldFJvdGF0aW9uTWV0YWRhdGFUeXBlIiwgIlNlY3JldExpc3RUeXBlIiwgIlNlY3JldFZlcnNpb25zTGlzdFR5cGUiLCAiVmFsaWRhdGlvbkVycm9yc1R5cGUiLCAiX19Vbml0IiwgInJlcXVpcmVfcnVudGltZUNvbmZpZ19zaGFyZWQiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgImNvcmVfMSIsICJwcm90b2NvbHNfMSIsICJzbWl0aHlfY2xpZW50XzEiLCAidXJsX3BhcnNlcl8xIiwgInV0aWxfYmFzZTY0XzEiLCAidXRpbF91dGY4XzEiLCAiaHR0cEF1dGhTY2hlbWVQcm92aWRlcl8xIiwgImVuZHBvaW50UmVzb2x2ZXJfMSIsICJzY2hlbWFzXzBfMSIsICJnZXRSdW50aW1lQ29uZmlnIiwgImNvbmZpZyIsICJpcGMiLCAicmVxdWlyZV9ydW50aW1lQ29uZmlnIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJ0c2xpYl8xIiwgInBhY2thZ2VfanNvbl8xIiwgImNvcmVfMSIsICJjcmVkZW50aWFsX3Byb3ZpZGVyX25vZGVfMSIsICJ1dGlsX3VzZXJfYWdlbnRfbm9kZV8xIiwgImNvbmZpZ19yZXNvbHZlcl8xIiwgImhhc2hfbm9kZV8xIiwgIm1pZGRsZXdhcmVfcmV0cnlfMSIsICJub2RlX2NvbmZpZ19wcm92aWRlcl8xIiwgIm5vZGVfaHR0cF9oYW5kbGVyXzEiLCAic21pdGh5X2NsaWVudF8xIiwgInV0aWxfYm9keV9sZW5ndGhfbm9kZV8xIiwgInV0aWxfZGVmYXVsdHNfbW9kZV9ub2RlXzEiLCAidXRpbF9yZXRyeV8xIiwgInJ1bnRpbWVDb25maWdfc2hhcmVkXzEiLCAiZ2V0UnVudGltZUNvbmZpZyIsICJjb25maWciLCAiZGVmYXVsdHNNb2RlIiwgImRlZmF1bHRDb25maWdQcm92aWRlciIsICJjbGllbnRTaGFyZWRWYWx1ZXMiLCAibG9hZGVyQ29uZmlnIiwgInJlcXVpcmVfc3RzUmVnaW9uRGVmYXVsdFJlc29sdmVyIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJzdHNSZWdpb25EZWZhdWx0UmVzb2x2ZXIiLCAiY29uZmlnX3Jlc29sdmVyXzEiLCAibm9kZV9jb25maWdfcHJvdmlkZXJfMSIsICJsb2FkZXJDb25maWciLCAicmVxdWlyZV9kaXN0X2NqcyIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAic3RzUmVnaW9uRGVmYXVsdFJlc29sdmVyIiwgImNvbmZpZ1Jlc29sdmVyIiwgImdldEF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24iLCAicnVudGltZUNvbmZpZyIsICJyZWdpb24iLCAicmVzb2x2ZUF3c1JlZ2lvbkV4dGVuc2lvbkNvbmZpZ3VyYXRpb24iLCAiYXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiIsICJrIiwgInJlcXVpcmVfZGlzdF9janMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgIm1pZGRsZXdhcmVIb3N0SGVhZGVyIiwgIm1pZGRsZXdhcmVMb2dnZXIiLCAibWlkZGxld2FyZVJlY3Vyc2lvbkRldGVjdGlvbiIsICJtaWRkbGV3YXJlVXNlckFnZW50IiwgImNvbmZpZ1Jlc29sdmVyIiwgImNvcmUiLCAic2NoZW1hIiwgIm1pZGRsZXdhcmVDb250ZW50TGVuZ3RoIiwgIm1pZGRsZXdhcmVFbmRwb2ludCIsICJtaWRkbGV3YXJlUmV0cnkiLCAic21pdGh5Q2xpZW50IiwgImh0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAicnVudGltZUNvbmZpZyIsICJyZWdpb25Db25maWdSZXNvbHZlciIsICJwcm90b2NvbEh0dHAiLCAic2NoZW1hc18wIiwgImVycm9ycyIsICJTZWNyZXRzTWFuYWdlclNlcnZpY2VFeGNlcHRpb24iLCAicmVzb2x2ZUNsaWVudEVuZHBvaW50UGFyYW1ldGVycyIsICJvcHRpb25zIiwgImNvbW1vblBhcmFtcyIsICJnZXRIdHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24iLCAiX2h0dHBBdXRoU2NoZW1lcyIsICJfaHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJfY3JlZGVudGlhbHMiLCAiaHR0cEF1dGhTY2hlbWUiLCAiaW5kZXgiLCAic2NoZW1lIiwgImNyZWRlbnRpYWxzIiwgInJlc29sdmVIdHRwQXV0aFJ1bnRpbWVDb25maWciLCAiY29uZmlnIiwgInJlc29sdmVSdW50aW1lRXh0ZW5zaW9ucyIsICJleHRlbnNpb25zIiwgImV4dGVuc2lvbkNvbmZpZ3VyYXRpb24iLCAiZXh0ZW5zaW9uIiwgIlNlY3JldHNNYW5hZ2VyQ2xpZW50IiwgImNvbmZpZ3VyYXRpb24iLCAiX2NvbmZpZ18wIiwgIl9jb25maWdfMSIsICJfY29uZmlnXzIiLCAiX2NvbmZpZ18zIiwgIl9jb25maWdfNCIsICJfY29uZmlnXzUiLCAiX2NvbmZpZ182IiwgIl9jb25maWdfNyIsICJfY29uZmlnXzgiLCAiQmF0Y2hHZXRTZWNyZXRWYWx1ZUNvbW1hbmQiLCAiQ29tbWFuZCIsICJjcyIsICJvIiwgIkNhbmNlbFJvdGF0ZVNlY3JldENvbW1hbmQiLCAiQ3JlYXRlU2VjcmV0Q29tbWFuZCIsICJEZWxldGVSZXNvdXJjZVBvbGljeUNvbW1hbmQiLCAiRGVsZXRlU2VjcmV0Q29tbWFuZCIsICJEZXNjcmliZVNlY3JldENvbW1hbmQiLCAiR2V0UmFuZG9tUGFzc3dvcmRDb21tYW5kIiwgIkdldFJlc291cmNlUG9saWN5Q29tbWFuZCIsICJHZXRTZWNyZXRWYWx1ZUNvbW1hbmQiLCAiTGlzdFNlY3JldHNDb21tYW5kIiwgIkxpc3RTZWNyZXRWZXJzaW9uSWRzQ29tbWFuZCIsICJQdXRSZXNvdXJjZVBvbGljeUNvbW1hbmQiLCAiUHV0U2VjcmV0VmFsdWVDb21tYW5kIiwgIlJlbW92ZVJlZ2lvbnNGcm9tUmVwbGljYXRpb25Db21tYW5kIiwgIlJlcGxpY2F0ZVNlY3JldFRvUmVnaW9uc0NvbW1hbmQiLCAiUmVzdG9yZVNlY3JldENvbW1hbmQiLCAiUm90YXRlU2VjcmV0Q29tbWFuZCIsICJTdG9wUmVwbGljYXRpb25Ub1JlcGxpY2FDb21tYW5kIiwgIlRhZ1Jlc291cmNlQ29tbWFuZCIsICJVbnRhZ1Jlc291cmNlQ29tbWFuZCIsICJVcGRhdGVTZWNyZXRDb21tYW5kIiwgIlVwZGF0ZVNlY3JldFZlcnNpb25TdGFnZUNvbW1hbmQiLCAiVmFsaWRhdGVSZXNvdXJjZVBvbGljeUNvbW1hbmQiLCAicGFnaW5hdGVCYXRjaEdldFNlY3JldFZhbHVlIiwgInBhZ2luYXRlTGlzdFNlY3JldHMiLCAicGFnaW5hdGVMaXN0U2VjcmV0VmVyc2lvbklkcyIsICJjb21tYW5kcyIsICJwYWdpbmF0b3JzIiwgIlNlY3JldHNNYW5hZ2VyIiwgIkZpbHRlck5hbWVTdHJpbmdUeXBlIiwgIlN0YXR1c1R5cGUiLCAiU29ydEJ5VHlwZSIsICJTb3J0T3JkZXJUeXBlIiwgImsiLCAicmVxdWlyZV9odHRwQXV0aFNjaGVtZVByb3ZpZGVyIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJjb3JlXzEiLCAidXRpbF9taWRkbGV3YXJlXzEiLCAiZGVmYXVsdExhbWJkYUh0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyIiwgImNvbmZpZyIsICJjb250ZXh0IiwgImlucHV0IiwgImNyZWF0ZUF3c0F1dGhTaWd2NEh0dHBBdXRoT3B0aW9uIiwgImF1dGhQYXJhbWV0ZXJzIiwgImRlZmF1bHRMYW1iZGFIdHRwQXV0aFNjaGVtZVByb3ZpZGVyIiwgIm9wdGlvbnMiLCAicmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnIiwgImNvbmZpZ18wIiwgInJlcXVpcmVfcGFja2FnZSIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgInJlcXVpcmVfcnVsZXNldCIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAicyIsICJ0IiwgInUiLCAidiIsICJhIiwgImIiLCAiYyIsICJkIiwgImUiLCAiZiIsICJnIiwgImgiLCAiaSIsICJqIiwgImsiLCAibCIsICJtIiwgIm4iLCAibyIsICJwIiwgInEiLCAiciIsICJfZGF0YSIsICJyZXF1aXJlX2VuZHBvaW50UmVzb2x2ZXIiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgInV0aWxfZW5kcG9pbnRzXzEiLCAidXRpbF9lbmRwb2ludHNfMiIsICJydWxlc2V0XzEiLCAiY2FjaGUiLCAiZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIiLCAiZW5kcG9pbnRQYXJhbXMiLCAiY29udGV4dCIsICJyZXF1aXJlX3J1bnRpbWVDb25maWdfc2hhcmVkIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJjb3JlXzEiLCAicHJvdG9jb2xzXzEiLCAic21pdGh5X2NsaWVudF8xIiwgInVybF9wYXJzZXJfMSIsICJ1dGlsX2Jhc2U2NF8xIiwgInV0aWxfdXRmOF8xIiwgImh0dHBBdXRoU2NoZW1lUHJvdmlkZXJfMSIsICJlbmRwb2ludFJlc29sdmVyXzEiLCAiZ2V0UnVudGltZUNvbmZpZyIsICJjb25maWciLCAiaXBjIiwgInJlcXVpcmVfcnVudGltZUNvbmZpZyIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAidHNsaWJfMSIsICJwYWNrYWdlX2pzb25fMSIsICJjb3JlXzEiLCAiY3JlZGVudGlhbF9wcm92aWRlcl9ub2RlXzEiLCAidXRpbF91c2VyX2FnZW50X25vZGVfMSIsICJjb25maWdfcmVzb2x2ZXJfMSIsICJldmVudHN0cmVhbV9zZXJkZV9ub2RlXzEiLCAiaGFzaF9ub2RlXzEiLCAibWlkZGxld2FyZV9yZXRyeV8xIiwgIm5vZGVfY29uZmlnX3Byb3ZpZGVyXzEiLCAibm9kZV9odHRwX2hhbmRsZXJfMSIsICJzbWl0aHlfY2xpZW50XzEiLCAidXRpbF9ib2R5X2xlbmd0aF9ub2RlXzEiLCAidXRpbF9kZWZhdWx0c19tb2RlX25vZGVfMSIsICJ1dGlsX3JldHJ5XzEiLCAicnVudGltZUNvbmZpZ19zaGFyZWRfMSIsICJnZXRSdW50aW1lQ29uZmlnIiwgImNvbmZpZyIsICJkZWZhdWx0c01vZGUiLCAiZGVmYXVsdENvbmZpZ1Byb3ZpZGVyIiwgImNsaWVudFNoYXJlZFZhbHVlcyIsICJsb2FkZXJDb25maWciLCAicmVxdWlyZV9kaXN0X2NqcyIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAibWlkZGxld2FyZUhvc3RIZWFkZXIiLCAibWlkZGxld2FyZUxvZ2dlciIsICJtaWRkbGV3YXJlUmVjdXJzaW9uRGV0ZWN0aW9uIiwgIm1pZGRsZXdhcmVVc2VyQWdlbnQiLCAiY29uZmlnUmVzb2x2ZXIiLCAiY29yZSIsICJzY2hlbWEiLCAiZXZlbnRzdHJlYW1TZXJkZUNvbmZpZ1Jlc29sdmVyIiwgIm1pZGRsZXdhcmVDb250ZW50TGVuZ3RoIiwgIm1pZGRsZXdhcmVFbmRwb2ludCIsICJtaWRkbGV3YXJlUmV0cnkiLCAic21pdGh5Q2xpZW50IiwgImh0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAicnVudGltZUNvbmZpZyIsICJyZWdpb25Db25maWdSZXNvbHZlciIsICJwcm90b2NvbEh0dHAiLCAidXRpbFdhaXRlciIsICJyZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzIiwgIm9wdGlvbnMiLCAiY29tbW9uUGFyYW1zIiwgImdldEh0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiIsICJfaHR0cEF1dGhTY2hlbWVzIiwgIl9odHRwQXV0aFNjaGVtZVByb3ZpZGVyIiwgIl9jcmVkZW50aWFscyIsICJodHRwQXV0aFNjaGVtZSIsICJpbmRleCIsICJzY2hlbWUiLCAiY3JlZGVudGlhbHMiLCAicmVzb2x2ZUh0dHBBdXRoUnVudGltZUNvbmZpZyIsICJjb25maWciLCAicmVzb2x2ZVJ1bnRpbWVFeHRlbnNpb25zIiwgImV4dGVuc2lvbnMiLCAiZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiIsICJleHRlbnNpb24iLCAiTGFtYmRhQ2xpZW50IiwgImNvbmZpZ3VyYXRpb24iLCAiX2NvbmZpZ18wIiwgIl9jb25maWdfMSIsICJfY29uZmlnXzIiLCAiX2NvbmZpZ18zIiwgIl9jb25maWdfNCIsICJfY29uZmlnXzUiLCAiX2NvbmZpZ182IiwgIl9jb25maWdfNyIsICJfY29uZmlnXzgiLCAiX2NvbmZpZ185IiwgIkxhbWJkYVNlcnZpY2VFeGNlcHRpb24kMSIsICJMYW1iZGFTZXJ2aWNlRXhjZXB0aW9uIiwgIkludmFsaWRQYXJhbWV0ZXJWYWx1ZUV4Y2VwdGlvbiQxIiwgIkludmFsaWRQYXJhbWV0ZXJWYWx1ZUV4Y2VwdGlvbiIsICJvcHRzIiwgIlBvbGljeUxlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uJDEiLCAiUG9saWN5TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24iLCAiUHJlY29uZGl0aW9uRmFpbGVkRXhjZXB0aW9uJDEiLCAiUHJlY29uZGl0aW9uRmFpbGVkRXhjZXB0aW9uIiwgIlJlc291cmNlQ29uZmxpY3RFeGNlcHRpb24kMSIsICJSZXNvdXJjZUNvbmZsaWN0RXhjZXB0aW9uIiwgIlJlc291cmNlTm90Rm91bmRFeGNlcHRpb24kMSIsICJSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uIiwgIlNlcnZpY2VFeGNlcHRpb24kMSIsICJTZXJ2aWNlRXhjZXB0aW9uIiwgIlRvb01hbnlSZXF1ZXN0c0V4Y2VwdGlvbiQxIiwgIlRvb01hbnlSZXF1ZXN0c0V4Y2VwdGlvbiIsICJDYXBhY2l0eVByb3ZpZGVyTGltaXRFeGNlZWRlZEV4Y2VwdGlvbiQxIiwgIkNhcGFjaXR5UHJvdmlkZXJMaW1pdEV4Y2VlZGVkRXhjZXB0aW9uIiwgIlJlc291cmNlSW5Vc2VFeGNlcHRpb24kMSIsICJSZXNvdXJjZUluVXNlRXhjZXB0aW9uIiwgIkNvZGVTaWduaW5nQ29uZmlnTm90Rm91bmRFeGNlcHRpb24kMSIsICJDb2RlU2lnbmluZ0NvbmZpZ05vdEZvdW5kRXhjZXB0aW9uIiwgIkNvZGVTdG9yYWdlRXhjZWVkZWRFeGNlcHRpb24kMSIsICJDb2RlU3RvcmFnZUV4Y2VlZGVkRXhjZXB0aW9uIiwgIkNvZGVWZXJpZmljYXRpb25GYWlsZWRFeGNlcHRpb24kMSIsICJDb2RlVmVyaWZpY2F0aW9uRmFpbGVkRXhjZXB0aW9uIiwgIkZ1bmN0aW9uVmVyc2lvbnNQZXJDYXBhY2l0eVByb3ZpZGVyTGltaXRFeGNlZWRlZEV4Y2VwdGlvbiQxIiwgIkZ1bmN0aW9uVmVyc2lvbnNQZXJDYXBhY2l0eVByb3ZpZGVyTGltaXRFeGNlZWRlZEV4Y2VwdGlvbiIsICJJbnZhbGlkQ29kZVNpZ25hdHVyZUV4Y2VwdGlvbiQxIiwgIkludmFsaWRDb2RlU2lnbmF0dXJlRXhjZXB0aW9uIiwgIkR1cmFibGVFeGVjdXRpb25BbHJlYWR5U3RhcnRlZEV4Y2VwdGlvbiQxIiwgIkR1cmFibGVFeGVjdXRpb25BbHJlYWR5U3RhcnRlZEV4Y2VwdGlvbiIsICJFQzJBY2Nlc3NEZW5pZWRFeGNlcHRpb24kMSIsICJFQzJBY2Nlc3NEZW5pZWRFeGNlcHRpb24iLCAiRUMyVGhyb3R0bGVkRXhjZXB0aW9uJDEiLCAiRUMyVGhyb3R0bGVkRXhjZXB0aW9uIiwgIkVDMlVuZXhwZWN0ZWRFeGNlcHRpb24kMSIsICJFQzJVbmV4cGVjdGVkRXhjZXB0aW9uIiwgIkVGU0lPRXhjZXB0aW9uJDEiLCAiRUZTSU9FeGNlcHRpb24iLCAiRUZTTW91bnRDb25uZWN0aXZpdHlFeGNlcHRpb24kMSIsICJFRlNNb3VudENvbm5lY3Rpdml0eUV4Y2VwdGlvbiIsICJFRlNNb3VudEZhaWx1cmVFeGNlcHRpb24kMSIsICJFRlNNb3VudEZhaWx1cmVFeGNlcHRpb24iLCAiRUZTTW91bnRUaW1lb3V0RXhjZXB0aW9uJDEiLCAiRUZTTW91bnRUaW1lb3V0RXhjZXB0aW9uIiwgIkVOSUxpbWl0UmVhY2hlZEV4Y2VwdGlvbiQxIiwgIkVOSUxpbWl0UmVhY2hlZEV4Y2VwdGlvbiIsICJJbnZhbGlkUmVxdWVzdENvbnRlbnRFeGNlcHRpb24kMSIsICJJbnZhbGlkUmVxdWVzdENvbnRlbnRFeGNlcHRpb24iLCAiSW52YWxpZFJ1bnRpbWVFeGNlcHRpb24kMSIsICJJbnZhbGlkUnVudGltZUV4Y2VwdGlvbiIsICJJbnZhbGlkU2VjdXJpdHlHcm91cElERXhjZXB0aW9uJDEiLCAiSW52YWxpZFNlY3VyaXR5R3JvdXBJREV4Y2VwdGlvbiIsICJJbnZhbGlkU3VibmV0SURFeGNlcHRpb24kMSIsICJJbnZhbGlkU3VibmV0SURFeGNlcHRpb24iLCAiSW52YWxpZFppcEZpbGVFeGNlcHRpb24kMSIsICJJbnZhbGlkWmlwRmlsZUV4Y2VwdGlvbiIsICJLTVNBY2Nlc3NEZW5pZWRFeGNlcHRpb24kMSIsICJLTVNBY2Nlc3NEZW5pZWRFeGNlcHRpb24iLCAiS01TRGlzYWJsZWRFeGNlcHRpb24kMSIsICJLTVNEaXNhYmxlZEV4Y2VwdGlvbiIsICJLTVNJbnZhbGlkU3RhdGVFeGNlcHRpb24kMSIsICJLTVNJbnZhbGlkU3RhdGVFeGNlcHRpb24iLCAiS01TTm90Rm91bmRFeGNlcHRpb24kMSIsICJLTVNOb3RGb3VuZEV4Y2VwdGlvbiIsICJOb1B1Ymxpc2hlZFZlcnNpb25FeGNlcHRpb24kMSIsICJOb1B1Ymxpc2hlZFZlcnNpb25FeGNlcHRpb24iLCAiUmVjdXJzaXZlSW52b2NhdGlvbkV4Y2VwdGlvbiQxIiwgIlJlY3Vyc2l2ZUludm9jYXRpb25FeGNlcHRpb24iLCAiUmVxdWVzdFRvb0xhcmdlRXhjZXB0aW9uJDEiLCAiUmVxdWVzdFRvb0xhcmdlRXhjZXB0aW9uIiwgIlJlc291cmNlTm90UmVhZHlFeGNlcHRpb24kMSIsICJSZXNvdXJjZU5vdFJlYWR5RXhjZXB0aW9uIiwgIlNlcmlhbGl6ZWRSZXF1ZXN0RW50aXR5VG9vTGFyZ2VFeGNlcHRpb24kMSIsICJTZXJpYWxpemVkUmVxdWVzdEVudGl0eVRvb0xhcmdlRXhjZXB0aW9uIiwgIlNuYXBTdGFydEV4Y2VwdGlvbiQxIiwgIlNuYXBTdGFydEV4Y2VwdGlvbiIsICJTbmFwU3RhcnROb3RSZWFkeUV4Y2VwdGlvbiQxIiwgIlNuYXBTdGFydE5vdFJlYWR5RXhjZXB0aW9uIiwgIlNuYXBTdGFydFRpbWVvdXRFeGNlcHRpb24kMSIsICJTbmFwU3RhcnRUaW1lb3V0RXhjZXB0aW9uIiwgIlN1Ym5ldElQQWRkcmVzc0xpbWl0UmVhY2hlZEV4Y2VwdGlvbiQxIiwgIlN1Ym5ldElQQWRkcmVzc0xpbWl0UmVhY2hlZEV4Y2VwdGlvbiIsICJVbnN1cHBvcnRlZE1lZGlhVHlwZUV4Y2VwdGlvbiQxIiwgIlVuc3VwcG9ydGVkTWVkaWFUeXBlRXhjZXB0aW9uIiwgIlByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdOb3RGb3VuZEV4Y2VwdGlvbiQxIiwgIlByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdOb3RGb3VuZEV4Y2VwdGlvbiIsICJDYWxsYmFja1RpbWVvdXRFeGNlcHRpb24kMSIsICJDYWxsYmFja1RpbWVvdXRFeGNlcHRpb24iLCAiX0EiLCAiX0FBIiwgIl9BQyIsICJfQUNjIiwgIl9BQ2wiLCAiX0FGU0MiLCAiX0FIIiwgIl9BSVQiLCAiX0FMIiwgIl9BTEwiLCAiX0FMVlAiLCAiX0FMVlBSIiwgIl9BTFZQUmQiLCAiX0FMbCIsICJfQU0iLCAiX0FNS0VTQyIsICJfQU8iLCAiX0FPcCIsICJfQVAiLCAiX0FQQ0UiLCAiX0FQQ0VsIiwgIl9BUFIiLCAiX0FQUmQiLCAiX0FQZCIsICJfQVJDIiwgIl9BVCIsICJfQVUiLCAiX0FWVyIsICJfQWwiLCAiX0FyIiwgIl9Bcm4iLCAiX0F0IiwgIl9BdHQiLCAiX0IiLCAiX0JCT0ZFIiwgIl9CT1AiLCAiX0JTIiwgIl9CU2EiLCAiX0MiLCAiX0NBIiwgIl9DQVIiLCAiX0NBbyIsICJfQ0FyIiwgIl9DQXUiLCAiX0NDIiwgIl9DQ1AiLCAiX0NDUFIiLCAiX0NDUFJyIiwgIl9DQ1NDIiwgIl9DQ1NDUiIsICJfQ0NTQ1JyIiwgIl9DRCIsICJfQ0RFIiwgIl9DREVSIiwgIl9DREVSaCIsICJfQ0RvIiwgIl9DRHIiLCAiX0NFIiwgIl9DRVNNIiwgIl9DRVNNUiIsICJfQ0YiLCAiX0NGRCIsICJfQ0ZEbyIsICJfQ0ZSIiwgIl9DRlVDIiwgIl9DRlVDUiIsICJfQ0ZVQ1JyIiwgIl9DR0kiLCAiX0NJIiwgIl9DSUQiLCAiX0NJRkQiLCAiX0NJTyIsICJfQ0lTRCIsICJfQ0lTRGgiLCAiX0NJU0RoYSIsICJfQ0lUT0QiLCAiX0NOIiwgIl9DTyIsICJfQ09vIiwgIl9DUCIsICJfQ1BBIiwgIl9DUEMiLCAiX0NQTCIsICJfQ1BMRUUiLCAiX0NQTiIsICJfQ1BPUkEiLCAiX0NQUEMiLCAiX0NQU0MiLCAiX0NQU1BMIiwgIl9DUFZDIiwgIl9DUGEiLCAiX0NSIiwgIl9DUm8iLCAiX0NTIiwgIl9DU0MiLCAiX0NTQ0EiLCAiX0NTQ0kiLCAiX0NTQ0wiLCAiX0NTQ05GRSIsICJfQ1NDbyIsICJfQ1NEIiwgIl9DU0RhIiwgIl9DU0RvIiwgIl9DU0RvbiIsICJfQ1NFRSIsICJfQ1NQIiwgIl9DU1UiLCAiX0NTWiIsICJfQ1NvIiwgIl9DU29uIiwgIl9DVCIsICJfQ1RFIiwgIl9DVE9EIiwgIl9DVF8iLCAiX0NUbCIsICJfQ1RyIiwgIl9DVUVTIiwgIl9DVkZFIiwgIl9DbyIsICJfQ29kIiwgIl9Db20iLCAiX0NvbiIsICJfQ29udCIsICJfRCIsICJfREEiLCAiX0RBUiIsICJfREMiLCAiX0RDUCIsICJfRENQUiIsICJfRENQUmUiLCAiX0RDU0MiLCAiX0RDU0NSIiwgIl9EQ1NDUmUiLCAiX0RDdSIsICJfRERCRVNDIiwgIl9ERSIsICJfREVBIiwgIl9ERUFTRSIsICJfREVOIiwgIl9ERVNNIiwgIl9ERVNNUiIsICJfREYiLCAiX0RGQyIsICJfREZDUiIsICJfREZDU0MiLCAiX0RGQ1NDUiIsICJfREZFSUMiLCAiX0RGRUlDUiIsICJfREZSIiwgIl9ERlJlIiwgIl9ERlVDIiwgIl9ERlVDUiIsICJfRExDIiwgIl9ETFYiLCAiX0RMVlIiLCAiX0ROIiwgIl9EUENDIiwgIl9EUENDUiIsICJfRFIiLCAiX0RlIiwgIl9EdSIsICJfRSIsICJfRUMiLCAiX0VDQURFIiwgIl9FQ0VDIiwgIl9FQ1RFIiwgIl9FQ1VFIiwgIl9FRCIsICJfRURyIiwgIl9FRHgiLCAiX0VFIiwgIl9FRU1HQlBWQyIsICJfRUV2IiwgIl9FRkQiLCAiX0VGU0lPRSIsICJfRUZTTUNFIiwgIl9FRlNNRkUiLCAiX0VGU01URSIsICJfRUgiLCAiX0VJIiwgIl9FSVQiLCAiX0VJdiIsICJfRU0iLCAiX0VOSUxSRSIsICJfRU8iLCAiX0VQIiwgIl9FUiIsICJfRVJGIiwgIl9FUnYiLCAiX0VTIiwgIl9FU0EiLCAiX0VTRCIsICJfRVNEeCIsICJfRVNEeGUiLCAiX0VTTSIsICJfRVNNQSIsICJfRVNNQyIsICJfRVNNTCIsICJfRVNNTUMiLCAiX0VTVCIsICJfRVN2IiwgIl9FVCIsICJfRVRPRCIsICJfRVRuIiwgIl9FVHYiLCAiX0VUdmUiLCAiX0VUeCIsICJfRVYiLCAiX0VWTiIsICJfRVZWIiwgIl9FVm4iLCAiX0VuIiwgIl9FbmQiLCAiX0VudiIsICJfRXYiLCAiX0V2ZSIsICJfRXgiLCAiX0YiLCAiX0ZBIiwgIl9GQXUiLCAiX0ZDIiwgIl9GQ0UiLCAiX0ZDTCIsICJfRkNpIiwgIl9GQ3UiLCAiX0ZDdW4iLCAiX0ZEIiwgIl9GRSIsICJfRkVJQyIsICJfRkVJQ0wiLCAiX0ZFSUN1IiwgIl9GTCIsICJfRkx1IiwgIl9GTiIsICJfRlJUIiwgIl9GUyIsICJfRlNDIiwgIl9GU0NMIiwgIl9GU0NpIiwgIl9GU0N1IiwgIl9GVSIsICJfRlVBVCIsICJfRlVDIiwgIl9GVUNMIiwgIl9GVUN1IiwgIl9GViIsICJfRlZCQ1BMIiwgIl9GVkJDUExJIiwgIl9GVlBDUExFRSIsICJfRlZ1IiwgIl9GaSIsICJfRnUiLCAiX0dBIiwgIl9HQVIiLCAiX0dBUyIsICJfR0FTUiIsICJfR0FTUmUiLCAiX0dDUCIsICJfR0NQUiIsICJfR0NQUmUiLCAiX0dDU0MiLCAiX0dDU0NSIiwgIl9HQ1NDUmUiLCAiX0dERSIsICJfR0RFSCIsICJfR0RFSFIiLCAiX0dERUhSZSIsICJfR0RFUiIsICJfR0RFUmUiLCAiX0dERVMiLCAiX0dERVNSIiwgIl9HREVTUmUiLCAiX0dFU00iLCAiX0dFU01SIiwgIl9HRiIsICJfR0ZDIiwgIl9HRkNSIiwgIl9HRkNSZSIsICJfR0ZDUmV0IiwgIl9HRkNTQyIsICJfR0ZDU0NSIiwgIl9HRkNTQ1JlIiwgIl9HRkNlIiwgIl9HRkVJQyIsICJfR0ZFSUNSIiwgIl9HRlIiLCAiX0dGUkMiLCAiX0dGUkNSIiwgIl9HRlJDUmUiLCAiX0dGUmUiLCAiX0dGU0MiLCAiX0dGU0NSIiwgIl9HRlNDUmUiLCAiX0dGVUMiLCAiX0dGVUNSIiwgIl9HRlVDUmUiLCAiX0dMViIsICJfR0xWQkEiLCAiX0dMVkJBUiIsICJfR0xWUCIsICJfR0xWUFIiLCAiX0dMVlBSZSIsICJfR0xWUiIsICJfR0xWUmUiLCAiX0dQIiwgIl9HUENDIiwgIl9HUENDUiIsICJfR1BDQ1JlIiwgIl9HUFIiLCAiX0dQUmUiLCAiX0dSTUMiLCAiX0dSTUNSIiwgIl9HUk1DUmUiLCAiX0giLCAiX0hUIiwgIl9IVFMiLCAiX0kiLCAiX0lBIiwgIl9JQUZEUyIsICJfSUFSIiwgIl9JQVJuIiwgIl9JQW4iLCAiX0lDIiwgIl9JQ0QiLCAiX0lDRSIsICJfSUNSIiwgIl9JQ1NFIiwgIl9JQ24iLCAiX0lFRCIsICJfSU0iLCAiX0lQIiwgIl9JUFZFIiwgIl9JUiIsICJfSVJDRSIsICJfSVJFIiwgIl9JUlNVIiwgIl9JUm4iLCAiX0lSbnYiLCAiX0lTR0lERSIsICJfSVNJREUiLCAiX0lUIiwgIl9JVSIsICJfSVZGVSIsICJfSVdSUyIsICJfSVdSU0NFIiwgIl9JV1JTUiIsICJfSVdSU1JFIiwgIl9JV1JTUm4iLCAiX0laRkUiLCAiX0lkIiwgIl9JbiIsICJfS0tBIiwgIl9LTVNBREUiLCAiX0tNU0RFIiwgIl9LTVNJU0UiLCAiX0tNU0tBIiwgIl9LTVNORkUiLCAiX0tTUkFDIiwgIl9LU1JBQ0wiLCAiX0tTUkMiLCAiX0tTVkMiLCAiX0tTVkNMIiwgIl9MIiwgIl9MQSIsICJfTEFSIiwgIl9MQVJpIiwgIl9MQWkiLCAiX0xDIiwgIl9MQ1AiLCAiX0xDUFIiLCAiX0xDUFJpIiwgIl9MQ1NDIiwgIl9MQ1NDUiIsICJfTENTQ1JpIiwgIl9MREVCRiIsICJfTERFQkZSIiwgIl9MREVCRlJpIiwgIl9MRVNNIiwgIl9MRVNNUiIsICJfTEVTTVJpIiwgIl9MRiIsICJfTEZCQ1NDIiwgIl9MRkJDU0NSIiwgIl9MRkJDU0NSaSIsICJfTEZFSUMiLCAiX0xGRUlDUiIsICJfTEZFSUNSaSIsICJfTEZSIiwgIl9MRlJpIiwgIl9MRlVDIiwgIl9MRlVDUiIsICJfTEZVQ1JpIiwgIl9MRlZCQ1AiLCAiX0xGVkJDUFIiLCAiX0xGVkJDUFJpIiwgIl9MRmkiLCAiX0xHIiwgIl9MSSIsICJfTEwiLCAiX0xMSSIsICJfTExSIiwgIl9MTFJpIiwgIl9MTFYiLCAiX0xMVlIiLCAiX0xMVlJpIiwgIl9MTGkiLCAiX0xNIiwgIl9MTUlDUEMiLCAiX0xNUCIsICJfTE1UIiwgIl9MTVYiLCAiX0xOIiwgIl9MUENDIiwgIl9MUENDUiIsICJfTFBDQ1JpIiwgIl9MUFIiLCAiX0xSIiwgIl9MUkwiLCAiX0xUIiwgIl9MVFIiLCAiX0xUUmkiLCAiX0xUaSIsICJfTFVTIiwgIl9MVVNSIiwgIl9MVVNSQyIsICJfTFYiLCAiX0xWQSIsICJfTFZCRiIsICJfTFZCRlIiLCAiX0xWQkZSaSIsICJfTFZDSSIsICJfTFZDTyIsICJfTFZMIiwgIl9MVkxJIiwgIl9MYSIsICJfTG8iLCAiX00iLCAiX01BIiwgIl9NQWEiLCAiX01CV0lTIiwgIl9NQyIsICJfTUNhIiwgIl9NRUFJUyIsICJfTUVFIiwgIl9NRUVhIiwgIl9NSSIsICJfTVAiLCAiX01QYSIsICJfTVIiLCAiX01SQSIsICJfTVJBSVMiLCAiX01TIiwgIl9NVkNDIiwgIl9NYSIsICJfTWUiLCAiX01vIiwgIl9OIiwgIl9OQURTIiwgIl9OQVQiLCAiX05FUyIsICJfTk0iLCAiX05QVkUiLCAiX08iLCAiX09GIiwgIl9PSSIsICJfT1AiLCAiX09QdSIsICJfT1MiLCAiX09TcCIsICJfT1UiLCAiX09VcCIsICJfT3AiLCAiX1AiLCAiX1BDIiwgIl9QQ0MiLCAiX1BDQ0wiLCAiX1BDQ0xJIiwgIl9QQ0NORkUiLCAiX1BDRSIsICJfUENhIiwgIl9QRUVNQyIsICJfUEYiLCAiX1BGQyIsICJfUEZDUiIsICJfUEZDU0MiLCAiX1BGQ1NDUiIsICJfUEZDU0NSdSIsICJfUEZFIiwgIl9QRkVJQyIsICJfUEZFSUNSIiwgIl9QRlJDIiwgIl9QRlJDUiIsICJfUEZSQ1J1IiwgIl9QRlNDIiwgIl9QRlNDUiIsICJfUEZTQ1J1IiwgIl9QR04iLCAiX1BJIiwgIl9QTEVFIiwgIl9QTFYiLCAiX1BMVlIiLCAiX1BMVlJ1IiwgIl9QTVQiLCAiX1BPSUQiLCAiX1BQQyIsICJfUFBDQyIsICJfUFBDQ1IiLCAiX1BQQ0NSdSIsICJfUFJNQyIsICJfUFJNQ1IiLCAiX1BSTUNSdSIsICJfUFQiLCAiX1BUdSIsICJfUFYiLCAiX1BWUiIsICJfUGEiLCAiX1BhdCIsICJfUG8iLCAiX1B1IiwgIl9RIiwgIl9RdSIsICJfUiIsICJfUkEiLCAiX1JDIiwgIl9SQ0UiLCAiX1JDRWUiLCAiX1JDZSIsICJfUkQiLCAiX1JGU0MiLCAiX1JJIiwgIl9SSUUiLCAiX1JJVSIsICJfUklVRSIsICJfUkllIiwgIl9STCIsICJfUkxWUCIsICJfUkxWUFIiLCAiX1JORkUiLCAiX1JOUkUiLCAiX1JPIiwgIl9SUCIsICJfUlBDRSIsICJfUlBJRCIsICJfUlBSIiwgIl9SU0NUIiwgIl9SVCIsICJfUlRMRSIsICJfUlZBIiwgIl9SVkMiLCAiX1JWRSIsICJfUmUiLCAiX1JlYSIsICJfUm8iLCAiX1J1IiwgIl9TIiwgIl9TQSIsICJfU0FDIiwgIl9TQUNvIiwgIl9TQW8iLCAiX1NBdCIsICJfU0IiLCAiX1NCdCIsICJfU0MiLCAiX1NDdCIsICJfU0QiLCAiX1NERSIsICJfU0RFQ0YiLCAiX1NERUNGUiIsICJfU0RFQ0ZSZSIsICJfU0RFQ0giLCAiX1NERUNIUiIsICJfU0RFQ0hSZSIsICJfU0RFQ1MiLCAiX1NERUNTUiIsICJfU0RFQ1NSZSIsICJfU0RFUiIsICJfU0RFUnQiLCAiX1NFIiwgIl9TRVQiLCAiX1NGRCIsICJfU0dJIiwgIl9TSSIsICJfU0lQQUxSRSIsICJfU0l1IiwgIl9TSkEiLCAiX1NLIiwgIl9TS01TS0EiLCAiX1NMTCIsICJfU00iLCAiX1NNRVMiLCAiX1NNS0VTQyIsICJfU08iLCAiX1NPViIsICJfU1AiLCAiX1NQVCIsICJfU1BWQSIsICJfU1BWQWkiLCAiX1NQdCIsICJfU1IiLCAiX1NSQyIsICJfU1JDdCIsICJfU1JFVExFIiwgIl9TUlVSSSIsICJfU1J0IiwgIl9TUyIsICJfU1NEIiwgIl9TU0R0IiwgIl9TU0UiLCAiX1NTTlJFIiwgIl9TU1IiLCAiX1NTVEUiLCAiX1NTbiIsICJfU1QiLCAiX1NURSIsICJfU1RFdCIsICJfU1RSIiwgIl9TVHQiLCAiX1NUdG8iLCAiX1NUdSIsICJfU1ZDIiwgIl9TaSIsICJfU3QiLCAiX1N0YSIsICJfU3RhdCIsICJfVCIsICJfVEEiLCAiX1RDIiwgIl9UQ1IiLCAiX1RDUyIsICJfVENlIiwgIl9URSIsICJfVEgiLCAiX1RJIiwgIl9USU0iLCAiX1RLIiwgIl9UTVJFIiwgIl9UUiIsICJfVFJSIiwgIl9UUyIsICJfVFRTUCIsICJfVFYiLCAiX1RXSVMiLCAiX1RhIiwgIl9UbyIsICJfVHIiLCAiX1R5IiwgIl9VIiwgIl9VQSIsICJfVUFPRCIsICJfVUFSIiwgIl9VQ0UiLCAiX1VDUCIsICJfVUNQUiIsICJfVUNQUnAiLCAiX1VDU0MiLCAiX1VDU0NSIiwgIl9VQ1NDUnAiLCAiX1VFU00iLCAiX1VFU01SIiwgIl9VRkMiLCAiX1VGQ1IiLCAiX1VGQ1JwIiwgIl9VRkNwIiwgIl9VRkVJQyIsICJfVUZFSUNSIiwgIl9VRlVDIiwgIl9VRlVDUiIsICJfVUZVQ1JwIiwgIl9VTVRFIiwgIl9VUiIsICJfVVJJIiwgIl9VUk8iLCAiX1VSUiIsICJfVVVJRCIsICJfViIsICJfVkMiLCAiX1ZDUiIsICJfVkkiLCAiX1ZOIiwgIl9WZSIsICJfVmVyIiwgIl9XQ0QiLCAiX1dEIiwgIl9XRGEiLCAiX1dPIiwgIl9XUyIsICJfV1NEIiwgIl9XU0RhIiwgIl9YQUNDIiwgIl9YQURFQSIsICJfWEFERU4iLCAiX1hBRVYiLCAiX1hBRkUiLCAiX1hBSVQiLCAiX1hBTFIiLCAiX1hBTFQiLCAiX1hBVEkiLCAiX1hBVEltIiwgIl9aRiIsICJfYyIsICJfZSIsICJfZVAiLCAiX2giLCAiX2hFIiwgIl9oSCIsICJfaFEiLCAiX20iLCAiX3JBUyIsICJfcyIsICJfc2UiLCAiX3NtIiwgIl90SyIsICJuMCIsICJCaW5hcnlPcGVyYXRpb25QYXlsb2FkIiwgIl9CbG9iIiwgIkJsb2JTdHJlYW0iLCAiRW52aXJvbm1lbnRWYXJpYWJsZU5hbWUiLCAiRW52aXJvbm1lbnRWYXJpYWJsZVZhbHVlIiwgIkVycm9yRGF0YSIsICJFcnJvck1lc3NhZ2UiLCAiRXJyb3JUeXBlIiwgIklucHV0UGF5bG9hZCIsICJPcGVyYXRpb25QYXlsb2FkIiwgIk91dHB1dFBheWxvYWQiLCAiU2Vuc2l0aXZlU3RyaW5nIiwgIlN0YWNrVHJhY2VFbnRyeSIsICJBY2NvdW50TGltaXQiLCAiQWNjb3VudFVzYWdlIiwgIkFkZExheWVyVmVyc2lvblBlcm1pc3Npb25SZXF1ZXN0IiwgIkFkZExheWVyVmVyc2lvblBlcm1pc3Npb25SZXNwb25zZSIsICJBZGRQZXJtaXNzaW9uUmVxdWVzdCIsICJBZGRQZXJtaXNzaW9uUmVzcG9uc2UiLCAiQWxpYXNDb25maWd1cmF0aW9uIiwgIkFsaWFzUm91dGluZ0NvbmZpZ3VyYXRpb24iLCAiQWxsb3dlZFB1Ymxpc2hlcnMiLCAiQW1hem9uTWFuYWdlZEthZmthRXZlbnRTb3VyY2VDb25maWciLCAiS2Fma2FTY2hlbWFSZWdpc3RyeUNvbmZpZyIsICJDYWxsYmFja0RldGFpbHMiLCAiRXJyb3JPYmplY3QiLCAiQ2FsbGJhY2tGYWlsZWREZXRhaWxzIiwgIkV2ZW50RXJyb3IiLCAiQ2FsbGJhY2tPcHRpb25zIiwgIkNhbGxiYWNrU3RhcnRlZERldGFpbHMiLCAiQ2FsbGJhY2tTdWNjZWVkZWREZXRhaWxzIiwgIkV2ZW50UmVzdWx0IiwgIkNhbGxiYWNrVGltZWRPdXREZXRhaWxzIiwgIkNhcGFjaXR5UHJvdmlkZXIiLCAiQ2FwYWNpdHlQcm92aWRlclZwY0NvbmZpZyIsICJDYXBhY2l0eVByb3ZpZGVyUGVybWlzc2lvbnNDb25maWciLCAiSW5zdGFuY2VSZXF1aXJlbWVudHMiLCAiQ2FwYWNpdHlQcm92aWRlclNjYWxpbmdDb25maWciLCAiQ2FwYWNpdHlQcm92aWRlckNvbmZpZyIsICJMYW1iZGFNYW5hZ2VkSW5zdGFuY2VzQ2FwYWNpdHlQcm92aWRlckNvbmZpZyIsICJDYXBhY2l0eVByb3ZpZGVyU2NhbGluZ1BvbGljaWVzTGlzdCIsICJDaGFpbmVkSW52b2tlRGV0YWlscyIsICJDaGFpbmVkSW52b2tlRmFpbGVkRGV0YWlscyIsICJDaGFpbmVkSW52b2tlT3B0aW9ucyIsICJDaGFpbmVkSW52b2tlU3RhcnRlZERldGFpbHMiLCAiRXZlbnRJbnB1dCIsICJDaGFpbmVkSW52b2tlU3RvcHBlZERldGFpbHMiLCAiQ2hhaW5lZEludm9rZVN1Y2NlZWRlZERldGFpbHMiLCAiQ2hhaW5lZEludm9rZVRpbWVkT3V0RGV0YWlscyIsICJDaGVja3BvaW50RHVyYWJsZUV4ZWN1dGlvblJlcXVlc3QiLCAiT3BlcmF0aW9uVXBkYXRlcyIsICJDaGVja3BvaW50RHVyYWJsZUV4ZWN1dGlvblJlc3BvbnNlIiwgIkNoZWNrcG9pbnRVcGRhdGVkRXhlY3V0aW9uU3RhdGUiLCAiT3BlcmF0aW9ucyIsICJDb2RlU2lnbmluZ0NvbmZpZyIsICJDb2RlU2lnbmluZ1BvbGljaWVzIiwgIkNvbmN1cnJlbmN5IiwgIkNvbnRleHREZXRhaWxzIiwgIkNvbnRleHRGYWlsZWREZXRhaWxzIiwgIkNvbnRleHRPcHRpb25zIiwgIkNvbnRleHRTdGFydGVkRGV0YWlscyIsICJDb250ZXh0U3VjY2VlZGVkRGV0YWlscyIsICJDb3JzIiwgIkNyZWF0ZUFsaWFzUmVxdWVzdCIsICJDcmVhdGVDYXBhY2l0eVByb3ZpZGVyUmVxdWVzdCIsICJDcmVhdGVDYXBhY2l0eVByb3ZpZGVyUmVzcG9uc2UiLCAiQ3JlYXRlQ29kZVNpZ25pbmdDb25maWdSZXF1ZXN0IiwgIkNyZWF0ZUNvZGVTaWduaW5nQ29uZmlnUmVzcG9uc2UiLCAiQ3JlYXRlRXZlbnRTb3VyY2VNYXBwaW5nUmVxdWVzdCIsICJGaWx0ZXJDcml0ZXJpYSIsICJEZXN0aW5hdGlvbkNvbmZpZyIsICJTb3VyY2VBY2Nlc3NDb25maWd1cmF0aW9ucyIsICJTZWxmTWFuYWdlZEV2ZW50U291cmNlIiwgIlNlbGZNYW5hZ2VkS2Fma2FFdmVudFNvdXJjZUNvbmZpZyIsICJTY2FsaW5nQ29uZmlnIiwgIkRvY3VtZW50REJFdmVudFNvdXJjZUNvbmZpZyIsICJFdmVudFNvdXJjZU1hcHBpbmdNZXRyaWNzQ29uZmlnIiwgIlByb3Zpc2lvbmVkUG9sbGVyQ29uZmlnIiwgIkNyZWF0ZUZ1bmN0aW9uUmVxdWVzdCIsICJGdW5jdGlvbkNvZGUiLCAiVnBjQ29uZmlnIiwgIkRlYWRMZXR0ZXJDb25maWciLCAiRW52aXJvbm1lbnQiLCAiVHJhY2luZ0NvbmZpZyIsICJGaWxlU3lzdGVtQ29uZmlnTGlzdCIsICJJbWFnZUNvbmZpZyIsICJFcGhlbWVyYWxTdG9yYWdlIiwgIlNuYXBTdGFydCIsICJMb2dnaW5nQ29uZmlnIiwgIkR1cmFibGVDb25maWciLCAiVGVuYW5jeUNvbmZpZyIsICJDcmVhdGVGdW5jdGlvblVybENvbmZpZ1JlcXVlc3QiLCAiQ3JlYXRlRnVuY3Rpb25VcmxDb25maWdSZXNwb25zZSIsICJEZWxldGVBbGlhc1JlcXVlc3QiLCAiRGVsZXRlQ2FwYWNpdHlQcm92aWRlclJlcXVlc3QiLCAiRGVsZXRlQ2FwYWNpdHlQcm92aWRlclJlc3BvbnNlIiwgIkRlbGV0ZUNvZGVTaWduaW5nQ29uZmlnUmVxdWVzdCIsICJEZWxldGVDb2RlU2lnbmluZ0NvbmZpZ1Jlc3BvbnNlIiwgIkRlbGV0ZUV2ZW50U291cmNlTWFwcGluZ1JlcXVlc3QiLCAiRGVsZXRlRnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ1JlcXVlc3QiLCAiRGVsZXRlRnVuY3Rpb25Db25jdXJyZW5jeVJlcXVlc3QiLCAiRGVsZXRlRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ1JlcXVlc3QiLCAiRGVsZXRlRnVuY3Rpb25SZXF1ZXN0IiwgIkRlbGV0ZUZ1bmN0aW9uUmVzcG9uc2UiLCAiRGVsZXRlRnVuY3Rpb25VcmxDb25maWdSZXF1ZXN0IiwgIkRlbGV0ZUxheWVyVmVyc2lvblJlcXVlc3QiLCAiRGVsZXRlUHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ1JlcXVlc3QiLCAiT25TdWNjZXNzIiwgIk9uRmFpbHVyZSIsICJFbnZpcm9ubWVudFZhcmlhYmxlcyIsICJFbnZpcm9ubWVudEVycm9yIiwgIkVudmlyb25tZW50UmVzcG9uc2UiLCAiU3RhY2tUcmFjZUVudHJpZXMiLCAiRXZlbnQiLCAiRXhlY3V0aW9uU3RhcnRlZERldGFpbHMiLCAiRXhlY3V0aW9uU3VjY2VlZGVkRGV0YWlscyIsICJFeGVjdXRpb25GYWlsZWREZXRhaWxzIiwgIkV4ZWN1dGlvblRpbWVkT3V0RGV0YWlscyIsICJFeGVjdXRpb25TdG9wcGVkRGV0YWlscyIsICJXYWl0U3RhcnRlZERldGFpbHMiLCAiV2FpdFN1Y2NlZWRlZERldGFpbHMiLCAiV2FpdENhbmNlbGxlZERldGFpbHMiLCAiU3RlcFN0YXJ0ZWREZXRhaWxzIiwgIlN0ZXBTdWNjZWVkZWREZXRhaWxzIiwgIlN0ZXBGYWlsZWREZXRhaWxzIiwgIkludm9jYXRpb25Db21wbGV0ZWREZXRhaWxzIiwgIkV2ZW50U291cmNlTWFwcGluZ0NvbmZpZ3VyYXRpb24iLCAiRmlsdGVyQ3JpdGVyaWFFcnJvciIsICJFeGVjdXRpb24iLCAiRXhlY3V0aW9uRGV0YWlscyIsICJGaWxlU3lzdGVtQ29uZmlnIiwgIkZpbHRlciIsICJGaWx0ZXJMaXN0IiwgIkZ1bmN0aW9uQ29kZUxvY2F0aW9uIiwgIkZ1bmN0aW9uQ29uZmlndXJhdGlvbiIsICJWcGNDb25maWdSZXNwb25zZSIsICJUcmFjaW5nQ29uZmlnUmVzcG9uc2UiLCAiTGF5ZXJzUmVmZXJlbmNlTGlzdCIsICJJbWFnZUNvbmZpZ1Jlc3BvbnNlIiwgIlNuYXBTdGFydFJlc3BvbnNlIiwgIlJ1bnRpbWVWZXJzaW9uQ29uZmlnIiwgIkZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWciLCAiRnVuY3Rpb25TY2FsaW5nQ29uZmlnIiwgIkZ1bmN0aW9uVXJsQ29uZmlnIiwgIkZ1bmN0aW9uVmVyc2lvbnNCeUNhcGFjaXR5UHJvdmlkZXJMaXN0SXRlbSIsICJHZXRBY2NvdW50U2V0dGluZ3NSZXF1ZXN0IiwgIkdldEFjY291bnRTZXR0aW5nc1Jlc3BvbnNlIiwgIkdldEFsaWFzUmVxdWVzdCIsICJHZXRDYXBhY2l0eVByb3ZpZGVyUmVxdWVzdCIsICJHZXRDYXBhY2l0eVByb3ZpZGVyUmVzcG9uc2UiLCAiR2V0Q29kZVNpZ25pbmdDb25maWdSZXF1ZXN0IiwgIkdldENvZGVTaWduaW5nQ29uZmlnUmVzcG9uc2UiLCAiR2V0RHVyYWJsZUV4ZWN1dGlvbkhpc3RvcnlSZXF1ZXN0IiwgIkdldER1cmFibGVFeGVjdXRpb25IaXN0b3J5UmVzcG9uc2UiLCAiRXZlbnRzIiwgIkdldER1cmFibGVFeGVjdXRpb25SZXF1ZXN0IiwgIkdldER1cmFibGVFeGVjdXRpb25SZXNwb25zZSIsICJUcmFjZUhlYWRlciIsICJHZXREdXJhYmxlRXhlY3V0aW9uU3RhdGVSZXF1ZXN0IiwgIkdldER1cmFibGVFeGVjdXRpb25TdGF0ZVJlc3BvbnNlIiwgIkdldEV2ZW50U291cmNlTWFwcGluZ1JlcXVlc3QiLCAiR2V0RnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ1JlcXVlc3QiLCAiR2V0RnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ1Jlc3BvbnNlIiwgIkdldEZ1bmN0aW9uQ29uY3VycmVuY3lSZXF1ZXN0IiwgIkdldEZ1bmN0aW9uQ29uY3VycmVuY3lSZXNwb25zZSIsICJHZXRGdW5jdGlvbkNvbmZpZ3VyYXRpb25SZXF1ZXN0IiwgIkdldEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdSZXF1ZXN0IiwgIkdldEZ1bmN0aW9uUmVjdXJzaW9uQ29uZmlnUmVxdWVzdCIsICJHZXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZ1Jlc3BvbnNlIiwgIkdldEZ1bmN0aW9uUmVxdWVzdCIsICJHZXRGdW5jdGlvblJlc3BvbnNlIiwgIlRhZ3NFcnJvciIsICJHZXRGdW5jdGlvblNjYWxpbmdDb25maWdSZXF1ZXN0IiwgIkdldEZ1bmN0aW9uU2NhbGluZ0NvbmZpZ1Jlc3BvbnNlIiwgIkdldEZ1bmN0aW9uVXJsQ29uZmlnUmVxdWVzdCIsICJHZXRGdW5jdGlvblVybENvbmZpZ1Jlc3BvbnNlIiwgIkdldExheWVyVmVyc2lvbkJ5QXJuUmVxdWVzdCIsICJHZXRMYXllclZlcnNpb25Qb2xpY3lSZXF1ZXN0IiwgIkdldExheWVyVmVyc2lvblBvbGljeVJlc3BvbnNlIiwgIkdldExheWVyVmVyc2lvblJlcXVlc3QiLCAiR2V0TGF5ZXJWZXJzaW9uUmVzcG9uc2UiLCAiTGF5ZXJWZXJzaW9uQ29udGVudE91dHB1dCIsICJHZXRQb2xpY3lSZXF1ZXN0IiwgIkdldFBvbGljeVJlc3BvbnNlIiwgIkdldFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdSZXF1ZXN0IiwgIkdldFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdSZXNwb25zZSIsICJHZXRSdW50aW1lTWFuYWdlbWVudENvbmZpZ1JlcXVlc3QiLCAiR2V0UnVudGltZU1hbmFnZW1lbnRDb25maWdSZXNwb25zZSIsICJJbWFnZUNvbmZpZ0Vycm9yIiwgIkludm9jYXRpb25SZXF1ZXN0IiwgIkludm9jYXRpb25SZXNwb25zZSIsICJJbnZva2VBc3luY1JlcXVlc3QiLCAiSW52b2tlQXN5bmNSZXNwb25zZSIsICJJbnZva2VSZXNwb25zZVN0cmVhbVVwZGF0ZSIsICJJbnZva2VXaXRoUmVzcG9uc2VTdHJlYW1Db21wbGV0ZUV2ZW50IiwgIkludm9rZVdpdGhSZXNwb25zZVN0cmVhbVJlcXVlc3QiLCAiSW52b2tlV2l0aFJlc3BvbnNlU3RyZWFtUmVzcG9uc2UiLCAiSW52b2tlV2l0aFJlc3BvbnNlU3RyZWFtUmVzcG9uc2VFdmVudCIsICJLYWZrYVNjaGVtYVJlZ2lzdHJ5QWNjZXNzQ29uZmlnIiwgIkthZmthU2NoZW1hUmVnaXN0cnlBY2Nlc3NDb25maWdMaXN0IiwgIkthZmthU2NoZW1hVmFsaWRhdGlvbkNvbmZpZ0xpc3QiLCAiS2Fma2FTY2hlbWFWYWxpZGF0aW9uQ29uZmlnIiwgIkxheWVyIiwgIkxheWVyc0xpc3RJdGVtIiwgIkxheWVyVmVyc2lvbnNMaXN0SXRlbSIsICJMYXllclZlcnNpb25Db250ZW50SW5wdXQiLCAiTGlzdEFsaWFzZXNSZXF1ZXN0IiwgIkxpc3RBbGlhc2VzUmVzcG9uc2UiLCAiQWxpYXNMaXN0IiwgIkxpc3RDYXBhY2l0eVByb3ZpZGVyc1JlcXVlc3QiLCAiTGlzdENhcGFjaXR5UHJvdmlkZXJzUmVzcG9uc2UiLCAiQ2FwYWNpdHlQcm92aWRlcnNMaXN0IiwgIkxpc3RDb2RlU2lnbmluZ0NvbmZpZ3NSZXF1ZXN0IiwgIkxpc3RDb2RlU2lnbmluZ0NvbmZpZ3NSZXNwb25zZSIsICJDb2RlU2lnbmluZ0NvbmZpZ0xpc3QiLCAiTGlzdER1cmFibGVFeGVjdXRpb25zQnlGdW5jdGlvblJlcXVlc3QiLCAiTGlzdER1cmFibGVFeGVjdXRpb25zQnlGdW5jdGlvblJlc3BvbnNlIiwgIkR1cmFibGVFeGVjdXRpb25zIiwgIkxpc3RFdmVudFNvdXJjZU1hcHBpbmdzUmVxdWVzdCIsICJMaXN0RXZlbnRTb3VyY2VNYXBwaW5nc1Jlc3BvbnNlIiwgIkV2ZW50U291cmNlTWFwcGluZ3NMaXN0IiwgIkxpc3RGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnc1JlcXVlc3QiLCAiTGlzdEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdzUmVzcG9uc2UiLCAiRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0xpc3QiLCAiTGlzdEZ1bmN0aW9uc0J5Q29kZVNpZ25pbmdDb25maWdSZXF1ZXN0IiwgIkxpc3RGdW5jdGlvbnNCeUNvZGVTaWduaW5nQ29uZmlnUmVzcG9uc2UiLCAiTGlzdEZ1bmN0aW9uc1JlcXVlc3QiLCAiTGlzdEZ1bmN0aW9uc1Jlc3BvbnNlIiwgIkZ1bmN0aW9uTGlzdCIsICJMaXN0RnVuY3Rpb25VcmxDb25maWdzUmVxdWVzdCIsICJMaXN0RnVuY3Rpb25VcmxDb25maWdzUmVzcG9uc2UiLCAiRnVuY3Rpb25VcmxDb25maWdMaXN0IiwgIkxpc3RGdW5jdGlvblZlcnNpb25zQnlDYXBhY2l0eVByb3ZpZGVyUmVxdWVzdCIsICJMaXN0RnVuY3Rpb25WZXJzaW9uc0J5Q2FwYWNpdHlQcm92aWRlclJlc3BvbnNlIiwgIkZ1bmN0aW9uVmVyc2lvbnNCeUNhcGFjaXR5UHJvdmlkZXJMaXN0IiwgIkxpc3RMYXllcnNSZXF1ZXN0IiwgIkxpc3RMYXllcnNSZXNwb25zZSIsICJMYXllcnNMaXN0IiwgIkxpc3RMYXllclZlcnNpb25zUmVxdWVzdCIsICJMaXN0TGF5ZXJWZXJzaW9uc1Jlc3BvbnNlIiwgIkxheWVyVmVyc2lvbnNMaXN0IiwgIkxpc3RQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnc1JlcXVlc3QiLCAiTGlzdFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdzUmVzcG9uc2UiLCAiUHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ0xpc3QiLCAiTGlzdFRhZ3NSZXF1ZXN0IiwgIkxpc3RUYWdzUmVzcG9uc2UiLCAiTGlzdFZlcnNpb25zQnlGdW5jdGlvblJlcXVlc3QiLCAiTGlzdFZlcnNpb25zQnlGdW5jdGlvblJlc3BvbnNlIiwgIk9wZXJhdGlvbiIsICJTdGVwRGV0YWlscyIsICJXYWl0RGV0YWlscyIsICJPcGVyYXRpb25VcGRhdGUiLCAiU3RlcE9wdGlvbnMiLCAiV2FpdE9wdGlvbnMiLCAiUHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ0xpc3RJdGVtIiwgIlB1Ymxpc2hMYXllclZlcnNpb25SZXF1ZXN0IiwgIlB1Ymxpc2hMYXllclZlcnNpb25SZXNwb25zZSIsICJQdWJsaXNoVmVyc2lvblJlcXVlc3QiLCAiUHV0RnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ1JlcXVlc3QiLCAiUHV0RnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ1Jlc3BvbnNlIiwgIlB1dEZ1bmN0aW9uQ29uY3VycmVuY3lSZXF1ZXN0IiwgIlB1dEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdSZXF1ZXN0IiwgIlB1dEZ1bmN0aW9uUmVjdXJzaW9uQ29uZmlnUmVxdWVzdCIsICJQdXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZ1Jlc3BvbnNlIiwgIlB1dEZ1bmN0aW9uU2NhbGluZ0NvbmZpZ1JlcXVlc3QiLCAiUHV0RnVuY3Rpb25TY2FsaW5nQ29uZmlnUmVzcG9uc2UiLCAiUHV0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ1JlcXVlc3QiLCAiUHV0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ1Jlc3BvbnNlIiwgIlB1dFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnUmVxdWVzdCIsICJQdXRSdW50aW1lTWFuYWdlbWVudENvbmZpZ1Jlc3BvbnNlIiwgIlJlbW92ZUxheWVyVmVyc2lvblBlcm1pc3Npb25SZXF1ZXN0IiwgIlJlbW92ZVBlcm1pc3Npb25SZXF1ZXN0IiwgIlJldHJ5RGV0YWlscyIsICJSdW50aW1lVmVyc2lvbkVycm9yIiwgIlNlbmREdXJhYmxlRXhlY3V0aW9uQ2FsbGJhY2tGYWlsdXJlUmVxdWVzdCIsICJTZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrRmFpbHVyZVJlc3BvbnNlIiwgIlNlbmREdXJhYmxlRXhlY3V0aW9uQ2FsbGJhY2tIZWFydGJlYXRSZXF1ZXN0IiwgIlNlbmREdXJhYmxlRXhlY3V0aW9uQ2FsbGJhY2tIZWFydGJlYXRSZXNwb25zZSIsICJTZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrU3VjY2Vzc1JlcXVlc3QiLCAiU2VuZER1cmFibGVFeGVjdXRpb25DYWxsYmFja1N1Y2Nlc3NSZXNwb25zZSIsICJTb3VyY2VBY2Nlc3NDb25maWd1cmF0aW9uIiwgIlN0b3BEdXJhYmxlRXhlY3V0aW9uUmVxdWVzdCIsICJTdG9wRHVyYWJsZUV4ZWN1dGlvblJlc3BvbnNlIiwgIlRhZ1Jlc291cmNlUmVxdWVzdCIsICJUYXJnZXRUcmFja2luZ1NjYWxpbmdQb2xpY3kiLCAiVW50YWdSZXNvdXJjZVJlcXVlc3QiLCAiVXBkYXRlQWxpYXNSZXF1ZXN0IiwgIlVwZGF0ZUNhcGFjaXR5UHJvdmlkZXJSZXF1ZXN0IiwgIlVwZGF0ZUNhcGFjaXR5UHJvdmlkZXJSZXNwb25zZSIsICJVcGRhdGVDb2RlU2lnbmluZ0NvbmZpZ1JlcXVlc3QiLCAiVXBkYXRlQ29kZVNpZ25pbmdDb25maWdSZXNwb25zZSIsICJVcGRhdGVFdmVudFNvdXJjZU1hcHBpbmdSZXF1ZXN0IiwgIlVwZGF0ZUZ1bmN0aW9uQ29kZVJlcXVlc3QiLCAiVXBkYXRlRnVuY3Rpb25Db25maWd1cmF0aW9uUmVxdWVzdCIsICJVcGRhdGVGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnUmVxdWVzdCIsICJVcGRhdGVGdW5jdGlvblVybENvbmZpZ1JlcXVlc3QiLCAiVXBkYXRlRnVuY3Rpb25VcmxDb25maWdSZXNwb25zZSIsICJfX1VuaXQiLCAiQWRkTGF5ZXJWZXJzaW9uUGVybWlzc2lvbiIsICJBZGRQZXJtaXNzaW9uIiwgIkNoZWNrcG9pbnREdXJhYmxlRXhlY3V0aW9uIiwgIkNyZWF0ZUFsaWFzIiwgIkNyZWF0ZUNhcGFjaXR5UHJvdmlkZXIiLCAiQ3JlYXRlQ29kZVNpZ25pbmdDb25maWciLCAiQ3JlYXRlRXZlbnRTb3VyY2VNYXBwaW5nIiwgIkNyZWF0ZUZ1bmN0aW9uIiwgIkNyZWF0ZUZ1bmN0aW9uVXJsQ29uZmlnIiwgIkRlbGV0ZUFsaWFzIiwgIkRlbGV0ZUNhcGFjaXR5UHJvdmlkZXIiLCAiRGVsZXRlQ29kZVNpZ25pbmdDb25maWciLCAiRGVsZXRlRXZlbnRTb3VyY2VNYXBwaW5nIiwgIkRlbGV0ZUZ1bmN0aW9uIiwgIkRlbGV0ZUZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWciLCAiRGVsZXRlRnVuY3Rpb25Db25jdXJyZW5jeSIsICJEZWxldGVGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnIiwgIkRlbGV0ZUZ1bmN0aW9uVXJsQ29uZmlnIiwgIkRlbGV0ZUxheWVyVmVyc2lvbiIsICJEZWxldGVQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnIiwgIkdldEFjY291bnRTZXR0aW5ncyIsICJHZXRBbGlhcyIsICJHZXRDYXBhY2l0eVByb3ZpZGVyIiwgIkdldENvZGVTaWduaW5nQ29uZmlnIiwgIkdldER1cmFibGVFeGVjdXRpb24iLCAiR2V0RHVyYWJsZUV4ZWN1dGlvbkhpc3RvcnkiLCAiR2V0RHVyYWJsZUV4ZWN1dGlvblN0YXRlIiwgIkdldEV2ZW50U291cmNlTWFwcGluZyIsICJHZXRGdW5jdGlvbiIsICJHZXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnIiwgIkdldEZ1bmN0aW9uQ29uY3VycmVuY3kiLCAiR2V0RnVuY3Rpb25Db25maWd1cmF0aW9uIiwgIkdldEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWciLCAiR2V0RnVuY3Rpb25SZWN1cnNpb25Db25maWciLCAiR2V0RnVuY3Rpb25TY2FsaW5nQ29uZmlnIiwgIkdldEZ1bmN0aW9uVXJsQ29uZmlnIiwgIkdldExheWVyVmVyc2lvbiIsICJHZXRMYXllclZlcnNpb25CeUFybiIsICJHZXRMYXllclZlcnNpb25Qb2xpY3kiLCAiR2V0UG9saWN5IiwgIkdldFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWciLCAiR2V0UnVudGltZU1hbmFnZW1lbnRDb25maWciLCAiSW52b2tlIiwgIkludm9rZUFzeW5jIiwgIkludm9rZVdpdGhSZXNwb25zZVN0cmVhbSIsICJMaXN0QWxpYXNlcyIsICJMaXN0Q2FwYWNpdHlQcm92aWRlcnMiLCAiTGlzdENvZGVTaWduaW5nQ29uZmlncyIsICJMaXN0RHVyYWJsZUV4ZWN1dGlvbnNCeUZ1bmN0aW9uIiwgIkxpc3RFdmVudFNvdXJjZU1hcHBpbmdzIiwgIkxpc3RGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlncyIsICJMaXN0RnVuY3Rpb25zIiwgIkxpc3RGdW5jdGlvbnNCeUNvZGVTaWduaW5nQ29uZmlnIiwgIkxpc3RGdW5jdGlvblVybENvbmZpZ3MiLCAiTGlzdEZ1bmN0aW9uVmVyc2lvbnNCeUNhcGFjaXR5UHJvdmlkZXIiLCAiTGlzdExheWVycyIsICJMaXN0TGF5ZXJWZXJzaW9ucyIsICJMaXN0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ3MiLCAiTGlzdFRhZ3MiLCAiTGlzdFZlcnNpb25zQnlGdW5jdGlvbiIsICJQdWJsaXNoTGF5ZXJWZXJzaW9uIiwgIlB1Ymxpc2hWZXJzaW9uIiwgIlB1dEZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWciLCAiUHV0RnVuY3Rpb25Db25jdXJyZW5jeSIsICJQdXRGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnIiwgIlB1dEZ1bmN0aW9uUmVjdXJzaW9uQ29uZmlnIiwgIlB1dEZ1bmN0aW9uU2NhbGluZ0NvbmZpZyIsICJQdXRQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnIiwgIlB1dFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnIiwgIlJlbW92ZUxheWVyVmVyc2lvblBlcm1pc3Npb24iLCAiUmVtb3ZlUGVybWlzc2lvbiIsICJTZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrRmFpbHVyZSIsICJTZW5kRHVyYWJsZUV4ZWN1dGlvbkNhbGxiYWNrSGVhcnRiZWF0IiwgIlNlbmREdXJhYmxlRXhlY3V0aW9uQ2FsbGJhY2tTdWNjZXNzIiwgIlN0b3BEdXJhYmxlRXhlY3V0aW9uIiwgIlRhZ1Jlc291cmNlIiwgIlVudGFnUmVzb3VyY2UiLCAiVXBkYXRlQWxpYXMiLCAiVXBkYXRlQ2FwYWNpdHlQcm92aWRlciIsICJVcGRhdGVDb2RlU2lnbmluZ0NvbmZpZyIsICJVcGRhdGVFdmVudFNvdXJjZU1hcHBpbmciLCAiVXBkYXRlRnVuY3Rpb25Db2RlIiwgIlVwZGF0ZUZ1bmN0aW9uQ29uZmlndXJhdGlvbiIsICJVcGRhdGVGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnIiwgIlVwZGF0ZUZ1bmN0aW9uVXJsQ29uZmlnIiwgIkFkZExheWVyVmVyc2lvblBlcm1pc3Npb25Db21tYW5kIiwgIkNvbW1hbmQiLCAiY3MiLCAibyIsICJBZGRQZXJtaXNzaW9uQ29tbWFuZCIsICJDaGVja3BvaW50RHVyYWJsZUV4ZWN1dGlvbkNvbW1hbmQiLCAiQ3JlYXRlQWxpYXNDb21tYW5kIiwgIkNyZWF0ZUNhcGFjaXR5UHJvdmlkZXJDb21tYW5kIiwgIkNyZWF0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZCIsICJDcmVhdGVFdmVudFNvdXJjZU1hcHBpbmdDb21tYW5kIiwgIkNyZWF0ZUZ1bmN0aW9uQ29tbWFuZCIsICJDcmVhdGVGdW5jdGlvblVybENvbmZpZ0NvbW1hbmQiLCAiRGVsZXRlQWxpYXNDb21tYW5kIiwgIkRlbGV0ZUNhcGFjaXR5UHJvdmlkZXJDb21tYW5kIiwgIkRlbGV0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZCIsICJEZWxldGVFdmVudFNvdXJjZU1hcHBpbmdDb21tYW5kIiwgIkRlbGV0ZUZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdDb21tYW5kIiwgIkRlbGV0ZUZ1bmN0aW9uQ29tbWFuZCIsICJEZWxldGVGdW5jdGlvbkNvbmN1cnJlbmN5Q29tbWFuZCIsICJEZWxldGVGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZCIsICJEZWxldGVGdW5jdGlvblVybENvbmZpZ0NvbW1hbmQiLCAiRGVsZXRlTGF5ZXJWZXJzaW9uQ29tbWFuZCIsICJEZWxldGVQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnQ29tbWFuZCIsICJHZXRBY2NvdW50U2V0dGluZ3NDb21tYW5kIiwgIkdldEFsaWFzQ29tbWFuZCIsICJHZXRDYXBhY2l0eVByb3ZpZGVyQ29tbWFuZCIsICJHZXRDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmQiLCAiR2V0RHVyYWJsZUV4ZWN1dGlvbkNvbW1hbmQiLCAiR2V0RHVyYWJsZUV4ZWN1dGlvbkhpc3RvcnlDb21tYW5kIiwgIkdldER1cmFibGVFeGVjdXRpb25TdGF0ZUNvbW1hbmQiLCAiR2V0RXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZCIsICJHZXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZCIsICJHZXRGdW5jdGlvbkNvbW1hbmQiLCAiR2V0RnVuY3Rpb25Db25jdXJyZW5jeUNvbW1hbmQiLCAiR2V0RnVuY3Rpb25Db25maWd1cmF0aW9uQ29tbWFuZCIsICJHZXRGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZCIsICJHZXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZ0NvbW1hbmQiLCAiR2V0RnVuY3Rpb25TY2FsaW5nQ29uZmlnQ29tbWFuZCIsICJHZXRGdW5jdGlvblVybENvbmZpZ0NvbW1hbmQiLCAiR2V0TGF5ZXJWZXJzaW9uQnlBcm5Db21tYW5kIiwgIkdldExheWVyVmVyc2lvbkNvbW1hbmQiLCAiR2V0TGF5ZXJWZXJzaW9uUG9saWN5Q29tbWFuZCIsICJHZXRQb2xpY3lDb21tYW5kIiwgIkdldFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdDb21tYW5kIiwgIkdldFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnQ29tbWFuZCIsICJJbnZva2VBc3luY0NvbW1hbmQiLCAiSW52b2tlQ29tbWFuZCIsICJJbnZva2VXaXRoUmVzcG9uc2VTdHJlYW1Db21tYW5kIiwgIkxpc3RBbGlhc2VzQ29tbWFuZCIsICJMaXN0Q2FwYWNpdHlQcm92aWRlcnNDb21tYW5kIiwgIkxpc3RDb2RlU2lnbmluZ0NvbmZpZ3NDb21tYW5kIiwgIkxpc3REdXJhYmxlRXhlY3V0aW9uc0J5RnVuY3Rpb25Db21tYW5kIiwgIkxpc3RFdmVudFNvdXJjZU1hcHBpbmdzQ29tbWFuZCIsICJMaXN0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ3NDb21tYW5kIiwgIkxpc3RGdW5jdGlvbnNCeUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZCIsICJMaXN0RnVuY3Rpb25zQ29tbWFuZCIsICJMaXN0RnVuY3Rpb25VcmxDb25maWdzQ29tbWFuZCIsICJMaXN0RnVuY3Rpb25WZXJzaW9uc0J5Q2FwYWNpdHlQcm92aWRlckNvbW1hbmQiLCAiTGlzdExheWVyc0NvbW1hbmQiLCAiTGlzdExheWVyVmVyc2lvbnNDb21tYW5kIiwgIkxpc3RQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnc0NvbW1hbmQiLCAiTGlzdFRhZ3NDb21tYW5kIiwgIkxpc3RWZXJzaW9uc0J5RnVuY3Rpb25Db21tYW5kIiwgIlB1Ymxpc2hMYXllclZlcnNpb25Db21tYW5kIiwgIlB1Ymxpc2hWZXJzaW9uQ29tbWFuZCIsICJQdXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZCIsICJQdXRGdW5jdGlvbkNvbmN1cnJlbmN5Q29tbWFuZCIsICJQdXRGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZCIsICJQdXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZ0NvbW1hbmQiLCAiUHV0RnVuY3Rpb25TY2FsaW5nQ29uZmlnQ29tbWFuZCIsICJQdXRQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnQ29tbWFuZCIsICJQdXRSdW50aW1lTWFuYWdlbWVudENvbmZpZ0NvbW1hbmQiLCAiUmVtb3ZlTGF5ZXJWZXJzaW9uUGVybWlzc2lvbkNvbW1hbmQiLCAiUmVtb3ZlUGVybWlzc2lvbkNvbW1hbmQiLCAiU2VuZER1cmFibGVFeGVjdXRpb25DYWxsYmFja0ZhaWx1cmVDb21tYW5kIiwgIlNlbmREdXJhYmxlRXhlY3V0aW9uQ2FsbGJhY2tIZWFydGJlYXRDb21tYW5kIiwgIlNlbmREdXJhYmxlRXhlY3V0aW9uQ2FsbGJhY2tTdWNjZXNzQ29tbWFuZCIsICJTdG9wRHVyYWJsZUV4ZWN1dGlvbkNvbW1hbmQiLCAiVGFnUmVzb3VyY2VDb21tYW5kIiwgIlVudGFnUmVzb3VyY2VDb21tYW5kIiwgIlVwZGF0ZUFsaWFzQ29tbWFuZCIsICJVcGRhdGVDYXBhY2l0eVByb3ZpZGVyQ29tbWFuZCIsICJVcGRhdGVDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmQiLCAiVXBkYXRlRXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZCIsICJVcGRhdGVGdW5jdGlvbkNvZGVDb21tYW5kIiwgIlVwZGF0ZUZ1bmN0aW9uQ29uZmlndXJhdGlvbkNvbW1hbmQiLCAiVXBkYXRlRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmQiLCAiVXBkYXRlRnVuY3Rpb25VcmxDb25maWdDb21tYW5kIiwgImNvbW1hbmRzIiwgIkxhbWJkYSIsICJwYWdpbmF0ZUdldER1cmFibGVFeGVjdXRpb25IaXN0b3J5IiwgInBhZ2luYXRlR2V0RHVyYWJsZUV4ZWN1dGlvblN0YXRlIiwgInBhZ2luYXRlTGlzdEFsaWFzZXMiLCAicGFnaW5hdGVMaXN0Q2FwYWNpdHlQcm92aWRlcnMiLCAicGFnaW5hdGVMaXN0Q29kZVNpZ25pbmdDb25maWdzIiwgInBhZ2luYXRlTGlzdER1cmFibGVFeGVjdXRpb25zQnlGdW5jdGlvbiIsICJwYWdpbmF0ZUxpc3RFdmVudFNvdXJjZU1hcHBpbmdzIiwgInBhZ2luYXRlTGlzdEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdzIiwgInBhZ2luYXRlTGlzdEZ1bmN0aW9uVXJsQ29uZmlncyIsICJwYWdpbmF0ZUxpc3RGdW5jdGlvblZlcnNpb25zQnlDYXBhY2l0eVByb3ZpZGVyIiwgInBhZ2luYXRlTGlzdEZ1bmN0aW9uc0J5Q29kZVNpZ25pbmdDb25maWciLCAicGFnaW5hdGVMaXN0RnVuY3Rpb25zIiwgInBhZ2luYXRlTGlzdExheWVyVmVyc2lvbnMiLCAicGFnaW5hdGVMaXN0TGF5ZXJzIiwgInBhZ2luYXRlTGlzdFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdzIiwgInBhZ2luYXRlTGlzdFZlcnNpb25zQnlGdW5jdGlvbiIsICJjaGVja1N0YXRlJDUiLCAiY2xpZW50IiwgImlucHV0IiwgInJlYXNvbiIsICJyZXN1bHQiLCAiZXhjZXB0aW9uIiwgIndhaXRGb3JGdW5jdGlvbkFjdGl2ZSIsICJwYXJhbXMiLCAic2VydmljZURlZmF1bHRzIiwgIndhaXRVbnRpbEZ1bmN0aW9uQWN0aXZlIiwgImNoZWNrU3RhdGUkNCIsICJ3YWl0Rm9yRnVuY3Rpb25BY3RpdmVWMiIsICJ3YWl0VW50aWxGdW5jdGlvbkFjdGl2ZVYyIiwgImNoZWNrU3RhdGUkMyIsICJ3YWl0Rm9yRnVuY3Rpb25FeGlzdHMiLCAid2FpdFVudGlsRnVuY3Rpb25FeGlzdHMiLCAiY2hlY2tTdGF0ZSQyIiwgIndhaXRGb3JGdW5jdGlvblVwZGF0ZWQiLCAid2FpdFVudGlsRnVuY3Rpb25VcGRhdGVkIiwgImNoZWNrU3RhdGUkMSIsICJ3YWl0Rm9yRnVuY3Rpb25VcGRhdGVkVjIiLCAid2FpdFVudGlsRnVuY3Rpb25VcGRhdGVkVjIiLCAiY2hlY2tTdGF0ZSIsICJ3YWl0Rm9yUHVibGlzaGVkVmVyc2lvbkFjdGl2ZSIsICJ3YWl0VW50aWxQdWJsaXNoZWRWZXJzaW9uQWN0aXZlIiwgIlRocm90dGxlUmVhc29uIiwgIkZ1bmN0aW9uVXJsQXV0aFR5cGUiLCAiS2Fma2FTY2hlbWFSZWdpc3RyeUF1dGhUeXBlIiwgIlNjaGVtYVJlZ2lzdHJ5RXZlbnRSZWNvcmRGb3JtYXQiLCAiS2Fma2FTY2hlbWFWYWxpZGF0aW9uQXR0cmlidXRlIiwgIkFwcGxpY2F0aW9uTG9nTGV2ZWwiLCAiQXJjaGl0ZWN0dXJlIiwgIkNhcGFjaXR5UHJvdmlkZXJTY2FsaW5nTW9kZSIsICJDYXBhY2l0eVByb3ZpZGVyUHJlZGVmaW5lZE1ldHJpY1R5cGUiLCAiQ2FwYWNpdHlQcm92aWRlclN0YXRlIiwgIlN0YXRlIiwgIk9wZXJhdGlvbkFjdGlvbiIsICJPcGVyYXRpb25UeXBlIiwgIk9wZXJhdGlvblN0YXR1cyIsICJDb2RlU2lnbmluZ1BvbGljeSIsICJGdWxsRG9jdW1lbnQiLCAiRnVuY3Rpb25SZXNwb25zZVR5cGUiLCAiRXZlbnRTb3VyY2VNYXBwaW5nTWV0cmljIiwgIkVuZFBvaW50VHlwZSIsICJTb3VyY2VBY2Nlc3NUeXBlIiwgIkV2ZW50U291cmNlUG9zaXRpb24iLCAiTG9nRm9ybWF0IiwgIlN5c3RlbUxvZ0xldmVsIiwgIlBhY2thZ2VUeXBlIiwgIkZ1bmN0aW9uVmVyc2lvbkxhdGVzdFB1Ymxpc2hlZCIsICJSdW50aW1lIiwgIlNuYXBTdGFydEFwcGx5T24iLCAiVGVuYW50SXNvbGF0aW9uTW9kZSIsICJUcmFjaW5nTW9kZSIsICJMYXN0VXBkYXRlU3RhdHVzIiwgIkxhc3RVcGRhdGVTdGF0dXNSZWFzb25Db2RlIiwgIlNuYXBTdGFydE9wdGltaXphdGlvblN0YXR1cyIsICJTdGF0ZVJlYXNvbkNvZGUiLCAiSW52b2tlTW9kZSIsICJSZWN1cnNpdmVMb29wIiwgIlVwZGF0ZVJ1bnRpbWVPbiIsICJJbnZvY2F0aW9uVHlwZSIsICJMb2dUeXBlIiwgIlJlc3BvbnNlU3RyZWFtaW5nSW52b2NhdGlvblR5cGUiLCAiRnVuY3Rpb25WZXJzaW9uIiwgIlByb3Zpc2lvbmVkQ29uY3VycmVuY3lTdGF0dXNFbnVtIiwgIkV4ZWN1dGlvblN0YXR1cyIsICJFdmVudFR5cGUiLCAicmVxdWlyZV9kaXN0X2NqcyIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAicHJvdG9jb2xIdHRwIiwgImFkZEV4cGVjdENvbnRpbnVlTWlkZGxld2FyZSIsICJvcHRpb25zIiwgIm5leHQiLCAiYXJncyIsICJyZXF1ZXN0IiwgInNlbmRIZWFkZXIiLCAiYWRkRXhwZWN0Q29udGludWVNaWRkbGV3YXJlT3B0aW9ucyIsICJnZXRBZGRFeHBlY3RDb250aW51ZVBsdWdpbiIsICJjbGllbnRTdGFjayIsICJyZXF1aXJlX2dldENyYzMyQ2hlY2tzdW1BbGdvcml0aG1GdW5jdGlvbiIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAidHNsaWJfMSIsICJjcmMzMl8xIiwgInV0aWxfMSIsICJ6bGliIiwgIk5vZGVDcmMzMiIsICJkYXRhIiwgImdldENyYzMyQ2hlY2tzdW1BbGdvcml0aG1GdW5jdGlvbiIsICJyZXF1aXJlX2Rpc3RfY2pzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJjb3JlIiwgInByb3RvY29sSHR0cCIsICJ1dGlsU3RyZWFtIiwgImlzQXJyYXlCdWZmZXIiLCAiY3JjMzJjIiwgImdldENyYzMyQ2hlY2tzdW1BbGdvcml0aG1GdW5jdGlvbiIsICJ1dGlsVXRmOCIsICJ1dGlsTWlkZGxld2FyZSIsICJSZXF1ZXN0Q2hlY2tzdW1DYWxjdWxhdGlvbiIsICJERUZBVUxUX1JFUVVFU1RfQ0hFQ0tTVU1fQ0FMQ1VMQVRJT04iLCAiUmVzcG9uc2VDaGVja3N1bVZhbGlkYXRpb24iLCAiREVGQVVMVF9SRVNQT05TRV9DSEVDS1NVTV9WQUxJREFUSU9OIiwgIkNoZWNrc3VtQWxnb3JpdGhtIiwgIkNoZWNrc3VtTG9jYXRpb24iLCAiREVGQVVMVF9DSEVDS1NVTV9BTEdPUklUSE0iLCAiU2VsZWN0b3JUeXBlIiwgInN0cmluZ1VuaW9uU2VsZWN0b3IiLCAib2JqIiwgImtleSIsICJ1bmlvbiIsICJ0eXBlIiwgInZhbHVlIiwgIkVOVl9SRVFVRVNUX0NIRUNLU1VNX0NBTENVTEFUSU9OIiwgIkNPTkZJR19SRVFVRVNUX0NIRUNLU1VNX0NBTENVTEFUSU9OIiwgIk5PREVfUkVRVUVTVF9DSEVDS1NVTV9DQUxDVUxBVElPTl9DT05GSUdfT1BUSU9OUyIsICJlbnYiLCAicHJvZmlsZSIsICJFTlZfUkVTUE9OU0VfQ0hFQ0tTVU1fVkFMSURBVElPTiIsICJDT05GSUdfUkVTUE9OU0VfQ0hFQ0tTVU1fVkFMSURBVElPTiIsICJOT0RFX1JFU1BPTlNFX0NIRUNLU1VNX1ZBTElEQVRJT05fQ09ORklHX09QVElPTlMiLCAiY3JjNjROdm1lQ3J0Q29udGFpbmVyIiwgIkNMSUVOVF9TVVBQT1JURURfQUxHT1JJVEhNUyIsICJQUklPUklUWV9PUkRFUl9BTEdPUklUSE1TIiwgImdldENoZWNrc3VtQWxnb3JpdGhtRm9yUmVxdWVzdCIsICJpbnB1dCIsICJyZXF1ZXN0Q2hlY2tzdW1SZXF1aXJlZCIsICJyZXF1ZXN0QWxnb3JpdGhtTWVtYmVyIiwgInJlcXVlc3RDaGVja3N1bUNhbGN1bGF0aW9uIiwgImNoZWNrc3VtQWxnb3JpdGhtIiwgImdldENoZWNrc3VtTG9jYXRpb25OYW1lIiwgImFsZ29yaXRobSIsICJoYXNIZWFkZXIiLCAiaGVhZGVyIiwgImhlYWRlcnMiLCAic291Z2h0SGVhZGVyIiwgImhlYWRlck5hbWUiLCAiaGFzSGVhZGVyV2l0aFByZWZpeCIsICJoZWFkZXJQcmVmaXgiLCAic291Z2h0SGVhZGVyUHJlZml4IiwgImlzU3RyZWFtaW5nIiwgImJvZHkiLCAic2VsZWN0Q2hlY2tzdW1BbGdvcml0aG1GdW5jdGlvbiIsICJjb25maWciLCAic3RyaW5nSGFzaGVyIiwgImNoZWNrc3VtQWxnb3JpdGhtRm4iLCAiaGFzaCIsICJmbGV4aWJsZUNoZWNrc3Vtc01pZGRsZXdhcmVPcHRpb25zIiwgImZsZXhpYmxlQ2hlY2tzdW1zTWlkZGxld2FyZSIsICJtaWRkbGV3YXJlQ29uZmlnIiwgIm5leHQiLCAiY29udGV4dCIsICJhcmdzIiwgInJlcXVlc3QiLCAicmVxdWVzdEJvZHkiLCAiYmFzZTY0RW5jb2RlciIsICJzdHJlYW1IYXNoZXIiLCAicmVxdWVzdEFsZ29yaXRobU1lbWJlck5hbWUiLCAicmVxdWVzdEFsZ29yaXRobU1lbWJlckh0dHBIZWFkZXIiLCAidXBkYXRlZEJvZHkiLCAidXBkYXRlZEhlYWRlcnMiLCAiY2hlY2tzdW1Mb2NhdGlvbk5hbWUiLCAiZ2V0QXdzQ2h1bmtlZEVuY29kaW5nU3RyZWFtIiwgImJvZHlMZW5ndGhDaGVja2VyIiwgInJhd0NoZWNrc3VtIiwgImZsZXhpYmxlQ2hlY2tzdW1zSW5wdXRNaWRkbGV3YXJlT3B0aW9ucyIsICJmbGV4aWJsZUNoZWNrc3Vtc0lucHV0TWlkZGxld2FyZSIsICJyZXF1ZXN0VmFsaWRhdGlvbk1vZGVNZW1iZXIiLCAicmVzcG9uc2VDaGVja3N1bVZhbGlkYXRpb24iLCAiZ2V0Q2hlY2tzdW1BbGdvcml0aG1MaXN0Rm9yUmVzcG9uc2UiLCAicmVzcG9uc2VBbGdvcml0aG1zIiwgInZhbGlkQ2hlY2tzdW1BbGdvcml0aG1zIiwgImlzQ2hlY2tzdW1XaXRoUGFydE51bWJlciIsICJjaGVja3N1bSIsICJsYXN0SHlwaGVuSW5kZXgiLCAibnVtYmVyUGFydCIsICJudW1iZXIiLCAiZ2V0Q2hlY2tzdW0iLCAidmFsaWRhdGVDaGVja3N1bUZyb21SZXNwb25zZSIsICJyZXNwb25zZSIsICJsb2dnZXIiLCAiY2hlY2tzdW1BbGdvcml0aG1zIiwgInJlc3BvbnNlQm9keSIsICJyZXNwb25zZUhlYWRlcnMiLCAicmVzcG9uc2VIZWFkZXIiLCAiY2hlY2tzdW1Gcm9tUmVzcG9uc2UiLCAiZXJyb3IiLCAiZmxleGlibGVDaGVja3N1bXNSZXNwb25zZU1pZGRsZXdhcmVPcHRpb25zIiwgImZsZXhpYmxlQ2hlY2tzdW1zUmVzcG9uc2VNaWRkbGV3YXJlIiwgInJlc3VsdCIsICJjbGllbnROYW1lIiwgImNvbW1hbmROYW1lIiwgImdldEZsZXhpYmxlQ2hlY2tzdW1zUGx1Z2luIiwgImNsaWVudFN0YWNrIiwgInJlc29sdmVGbGV4aWJsZUNoZWNrc3Vtc0NvbmZpZyIsICJyZXF1ZXN0U3RyZWFtQnVmZmVyU2l6ZSIsICJyZXF1aXJlX2Rpc3RfY2pzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiX19kZWZQcm9wIiwgIl9fZ2V0T3duUHJvcERlc2MiLCAiX19nZXRPd25Qcm9wTmFtZXMiLCAiX19oYXNPd25Qcm9wIiwgIl9fbmFtZSIsICJ0YXJnZXQiLCAidmFsdWUiLCAiX19leHBvcnQiLCAiYWxsIiwgIm5hbWUiLCAiX19jb3B5UHJvcHMiLCAidG8iLCAiZnJvbSIsICJleGNlcHQiLCAiZGVzYyIsICJrZXkiLCAiX190b0NvbW1vbkpTIiwgIm1vZCIsICJpbmRleF9leHBvcnRzIiwgImJ1aWxkIiwgInBhcnNlIiwgInZhbGlkYXRlIiwgInN0ciIsICJhcm4iLCAic2VnbWVudHMiLCAicGFydGl0aW9uIiwgInNlcnZpY2UiLCAicmVnaW9uIiwgImFjY291bnRJZCIsICJyZXNvdXJjZSIsICJhcm5PYmplY3QiLCAic2VnbWVudCIsICJyZXF1aXJlX2Rpc3RfY2pzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJwcm90b2NvbEh0dHAiLCAic21pdGh5Q2xpZW50IiwgInNpZ25hdHVyZVY0IiwgInV0aWxDb25maWdQcm92aWRlciIsICJjb3JlIiwgImNvcmUkMSIsICJ1dGlsTWlkZGxld2FyZSIsICJ1dGlsU3RyZWFtIiwgInV0aWxBcm5QYXJzZXIiLCAiQ09OVEVOVF9MRU5HVEhfSEVBREVSIiwgIkRFQ09ERURfQ09OVEVOVF9MRU5HVEhfSEVBREVSIiwgImNoZWNrQ29udGVudExlbmd0aEhlYWRlciIsICJuZXh0IiwgImNvbnRleHQiLCAiYXJncyIsICJyZXF1ZXN0IiwgIm1lc3NhZ2UiLCAiY2hlY2tDb250ZW50TGVuZ3RoSGVhZGVyTWlkZGxld2FyZU9wdGlvbnMiLCAiZ2V0Q2hlY2tDb250ZW50TGVuZ3RoSGVhZGVyUGx1Z2luIiwgInVudXNlZCIsICJjbGllbnRTdGFjayIsICJyZWdpb25SZWRpcmVjdEVuZHBvaW50TWlkZGxld2FyZSIsICJjb25maWciLCAib3JpZ2luYWxSZWdpb24iLCAicmVnaW9uUHJvdmlkZXJSZWYiLCAidW5sb2NrIiwgInJlc3VsdCIsICJyZWdpb24iLCAiZSIsICJyZWdpb25SZWRpcmVjdEVuZHBvaW50TWlkZGxld2FyZU9wdGlvbnMiLCAicmVnaW9uUmVkaXJlY3RNaWRkbGV3YXJlIiwgImNsaWVudENvbmZpZyIsICJlcnIiLCAic3RhdHVzQ29kZSIsICJpc0hlYWRCdWNrZXQiLCAiYnVja2V0UmVnaW9uSGVhZGVyIiwgImFjdHVhbFJlZ2lvbiIsICJyZWdpb25SZWRpcmVjdE1pZGRsZXdhcmVPcHRpb25zIiwgImdldFJlZ2lvblJlZGlyZWN0TWlkZGxld2FyZVBsdWdpbiIsICJzM0V4cGlyZXNNaWRkbGV3YXJlIiwgInJlc3BvbnNlIiwgInMzRXhwaXJlc01pZGRsZXdhcmVPcHRpb25zIiwgImdldFMzRXhwaXJlc01pZGRsZXdhcmVQbHVnaW4iLCAiUzNFeHByZXNzSWRlbnRpdHlDYWNoZSIsICJfUzNFeHByZXNzSWRlbnRpdHlDYWNoZSIsICJkYXRhIiwgImtleSIsICJlbnRyeSIsICJub3ciLCAiY3JlZGVudGlhbCIsICJTM0V4cHJlc3NJZGVudGl0eUNhY2hlRW50cnkiLCAiX2lkZW50aXR5IiwgImlzUmVmcmVzaGluZyIsICJhY2Nlc3NlZCIsICJTM0V4cHJlc3NJZGVudGl0eVByb3ZpZGVySW1wbCIsICJfUzNFeHByZXNzSWRlbnRpdHlQcm92aWRlckltcGwiLCAiY3JlYXRlU2Vzc2lvbkZuIiwgImNhY2hlIiwgImF3c0lkZW50aXR5IiwgImlkZW50aXR5UHJvcGVydGllcyIsICJpZGVudGl0eSIsICJpZCIsICJlcnJvciIsICJzZXNzaW9uIiwgIlMzX0VYUFJFU1NfQlVDS0VUX1RZUEUiLCAiUzNfRVhQUkVTU19CQUNLRU5EIiwgIlMzX0VYUFJFU1NfQVVUSF9TQ0hFTUUiLCAiU0VTU0lPTl9UT0tFTl9RVUVSWV9QQVJBTSIsICJTRVNTSU9OX1RPS0VOX0hFQURFUiIsICJOT0RFX0RJU0FCTEVfUzNfRVhQUkVTU19TRVNTSU9OX0FVVEhfRU5WX05BTUUiLCAiTk9ERV9ESVNBQkxFX1MzX0VYUFJFU1NfU0VTU0lPTl9BVVRIX0lOSV9OQU1FIiwgIk5PREVfRElTQUJMRV9TM19FWFBSRVNTX1NFU1NJT05fQVVUSF9PUFRJT05TIiwgImVudiIsICJwcm9maWxlIiwgIlNpZ25hdHVyZVY0UzNFeHByZXNzIiwgInJlcXVlc3RUb1NpZ24iLCAiY3JlZGVudGlhbHMiLCAib3B0aW9ucyIsICJjcmVkZW50aWFsc1dpdGhvdXRTZXNzaW9uVG9rZW4iLCAiZ2V0Q3JlZGVudGlhbHNXaXRob3V0U2Vzc2lvblRva2VuIiwgInByaXZhdGVBY2Nlc3MiLCAic2V0U2luZ2xlT3ZlcnJpZGUiLCAiY3VycmVudENyZWRlbnRpYWxQcm92aWRlciIsICJvdmVycmlkZUNyZWRlbnRpYWxzUHJvdmlkZXJPbmNlIiwgInMzRXhwcmVzc01pZGRsZXdhcmUiLCAiZW5kcG9pbnQiLCAiaXNTM0V4cHJlc3NBdXRoIiwgInJlcXVlc3RCdWNrZXQiLCAiczNFeHByZXNzSWRlbnRpdHkiLCAiczNFeHByZXNzTWlkZGxld2FyZU9wdGlvbnMiLCAiZ2V0UzNFeHByZXNzUGx1Z2luIiwgInNpZ25TM0V4cHJlc3MiLCAic2lnbmluZ09wdGlvbnMiLCAic2lnVjRNdWx0aVJlZ2lvblNpZ25lciIsICJzaWduZWRSZXF1ZXN0IiwgImRlZmF1bHRFcnJvckhhbmRsZXIiLCAic2lnbmluZ1Byb3BlcnRpZXMiLCAiZGVmYXVsdFN1Y2Nlc3NIYW5kbGVyIiwgImh0dHBSZXNwb25zZSIsICJzM0V4cHJlc3NIdHRwU2lnbmluZ01pZGRsZXdhcmVPcHRpb25zIiwgInMzRXhwcmVzc0h0dHBTaWduaW5nTWlkZGxld2FyZSIsICJzY2hlbWUiLCAic2lnbmVyIiwgIm91dHB1dCIsICJnZXRTM0V4cHJlc3NIdHRwU2lnbmluZ1BsdWdpbiIsICJyZXNvbHZlUzNDb25maWciLCAiaW5wdXQiLCAiczNDbGllbnRQcm92aWRlciIsICJDcmVhdGVTZXNzaW9uQ29tbWFuZEN0b3IiLCAiZm9yY2VQYXRoU3R5bGUiLCAidXNlQWNjZWxlcmF0ZUVuZHBvaW50IiwgImRpc2FibGVNdWx0aXJlZ2lvbkFjY2Vzc1BvaW50cyIsICJmb2xsb3dSZWdpb25SZWRpcmVjdHMiLCAiczNFeHByZXNzSWRlbnRpdHlQcm92aWRlciIsICJidWNrZXRFbmRwb2ludCIsICJleHBlY3RDb250aW51ZUhlYWRlciIsICJUSFJPV19JRl9FTVBUWV9CT0RZIiwgIk1BWF9CWVRFU19UT19JTlNQRUNUIiwgInRocm93MjAwRXhjZXB0aW9uc01pZGRsZXdhcmUiLCAic291cmNlQm9keSIsICJib2R5Q29weSIsICJib2R5IiwgImJvZHlCeXRlcyIsICJjb2xsZWN0Qm9keSIsICJzdHJlYW0iLCAiYm9keVN0cmluZ1RhaWwiLCAic3RyZWFtQm9keSIsICJ0aHJvdzIwMEV4Y2VwdGlvbnNNaWRkbGV3YXJlT3B0aW9ucyIsICJnZXRUaHJvdzIwMEV4Y2VwdGlvbnNQbHVnaW4iLCAiYnVja2V0RW5kcG9pbnRNaWRkbGV3YXJlIiwgImJ1Y2tldCIsICJidWNrZXRFbmRwb2ludFVybCIsICJ3YXJuaW5nIiwgImJ1Y2tldEVuZHBvaW50TWlkZGxld2FyZU9wdGlvbnMiLCAidmFsaWRhdGVCdWNrZXROYW1lTWlkZGxld2FyZSIsICJCdWNrZXQiLCAidmFsaWRhdGVCdWNrZXROYW1lTWlkZGxld2FyZU9wdGlvbnMiLCAiZ2V0VmFsaWRhdGVCdWNrZXROYW1lUGx1Z2luIiwgInJlcXVpcmVfZGlzdF9janMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgIm1pZGRsZXdhcmVTZGtTMyIsICJzaWduYXR1cmVWNCIsICJzaWduYXR1cmVWNENydENvbnRhaW5lciIsICJTaWduYXR1cmVWNE11bHRpUmVnaW9uIiwgIm9wdGlvbnMiLCAicmVxdWVzdFRvU2lnbiIsICJjcmVkZW50aWFscyIsICJzaWduZXIiLCAiQ3J0U2lnbmVyVjQiLCAib3JpZ2luYWxSZXF1ZXN0IiwgIkpzU2lnVjRhU2lnbmVyIiwgInJlcXVpcmVfcnVsZXNldCIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAiY3MiLCAiY3QiLCAiY3UiLCAiY3YiLCAiY3ciLCAiY3giLCAiY3kiLCAiY3oiLCAiY0EiLCAiY0IiLCAiY0MiLCAiY0QiLCAiY0UiLCAiY0YiLCAiY0ciLCAiY0giLCAiY0kiLCAiYSIsICJiIiwgImMiLCAiZCIsICJlIiwgImYiLCAiZyIsICJoIiwgImkiLCAiaiIsICJrIiwgImwiLCAibSIsICJuIiwgIm8iLCAicCIsICJxIiwgInIiLCAicyIsICJ0IiwgInUiLCAidiIsICJ3IiwgIngiLCAieSIsICJ6IiwgIkEiLCAiQiIsICJDIiwgIkQiLCAiRSIsICJGIiwgIkciLCAiSCIsICJJIiwgIkoiLCAiSyIsICJMIiwgIk0iLCAiTiIsICJPIiwgIlAiLCAiUSIsICJSIiwgIlMiLCAiVCIsICJVIiwgIlYiLCAiVyIsICJYIiwgIlkiLCAiWiIsICJhYSIsICJhYiIsICJhYyIsICJhZCIsICJhZSIsICJhZiIsICJhZyIsICJhaCIsICJhaSIsICJhaiIsICJhayIsICJhbCIsICJhbSIsICJhbiIsICJhbyIsICJhcCIsICJhcSIsICJhciIsICJhcyIsICJhdCIsICJhdSIsICJhdiIsICJhdyIsICJheCIsICJheSIsICJheiIsICJhQSIsICJhQiIsICJhQyIsICJhRCIsICJhRSIsICJhRiIsICJhRyIsICJhSCIsICJhSSIsICJhSiIsICJhSyIsICJhTCIsICJhTSIsICJhTiIsICJhTyIsICJhUCIsICJhUSIsICJhUiIsICJhUyIsICJhVCIsICJhVSIsICJhViIsICJhVyIsICJhWCIsICJhWSIsICJhWiIsICJiYSIsICJiYiIsICJiYyIsICJiZCIsICJiZSIsICJiZiIsICJiZyIsICJiaCIsICJiaSIsICJiaiIsICJiayIsICJibCIsICJibSIsICJibiIsICJibyIsICJicCIsICJicSIsICJiciIsICJicyIsICJidCIsICJidSIsICJidiIsICJidyIsICJieCIsICJieSIsICJieiIsICJiQSIsICJiQiIsICJiQyIsICJiRCIsICJiRSIsICJiRiIsICJiRyIsICJiSCIsICJiSSIsICJiSiIsICJiSyIsICJiTCIsICJiTSIsICJiTiIsICJiTyIsICJiUCIsICJiUSIsICJiUiIsICJiUyIsICJiVCIsICJiVSIsICJiViIsICJiVyIsICJiWCIsICJiWSIsICJiWiIsICJjYSIsICJjYiIsICJjYyIsICJjZCIsICJjZSIsICJjZiIsICJjZyIsICJjaCIsICJjaSIsICJjaiIsICJjayIsICJjbCIsICJjbSIsICJjbiIsICJjbyIsICJjcCIsICJjcSIsICJjciIsICJfZGF0YSIsICJyZXF1aXJlX2VuZHBvaW50UmVzb2x2ZXIiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgInV0aWxfZW5kcG9pbnRzXzEiLCAidXRpbF9lbmRwb2ludHNfMiIsICJydWxlc2V0XzEiLCAiY2FjaGUiLCAiZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIiLCAiZW5kcG9pbnRQYXJhbXMiLCAiY29udGV4dCIsICJyZXF1aXJlX2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgImNvcmVfMSIsICJzaWduYXR1cmVfdjRfbXVsdGlfcmVnaW9uXzEiLCAibWlkZGxld2FyZV9lbmRwb2ludF8xIiwgInV0aWxfbWlkZGxld2FyZV8xIiwgImVuZHBvaW50UmVzb2x2ZXJfMSIsICJjcmVhdGVFbmRwb2ludFJ1bGVTZXRIdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlciIsICJkZWZhdWx0SHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIiLCAiY29uZmlnIiwgImNvbnRleHQiLCAiaW5wdXQiLCAiZGVmYXVsdFBhcmFtZXRlcnMiLCAiaW5zdHJ1Y3Rpb25zRm4iLCAiZW5kcG9pbnRQYXJhbWV0ZXJzIiwgIl9kZWZhdWx0UzNIdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlciIsICJjcmVhdGVBd3NBdXRoU2lndjRIdHRwQXV0aE9wdGlvbiIsICJhdXRoUGFyYW1ldGVycyIsICJjcmVhdGVBd3NBdXRoU2lndjRhSHR0cEF1dGhPcHRpb24iLCAiY3JlYXRlRW5kcG9pbnRSdWxlU2V0SHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJkZWZhdWx0RW5kcG9pbnRSZXNvbHZlciIsICJkZWZhdWx0SHR0cEF1dGhTY2hlbWVSZXNvbHZlciIsICJjcmVhdGVIdHRwQXV0aE9wdGlvbkZ1bmN0aW9ucyIsICJhdXRoU2NoZW1lcyIsICJvcHRpb25zIiwgInNjaGVtZSIsICJyZXNvbHZlZE5hbWUiLCAicHJvcGVydGllcyIsICJyZXN0IiwgIm5hbWUiLCAic2NoZW1lSWQiLCAic2lndjRQcmVzZW50IiwgInMiLCAiY3JlYXRlT3B0aW9uIiwgIm9wdGlvbiIsICJfZGVmYXVsdFMzSHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJyZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWciLCAiY29uZmlnXzAiLCAiY29uZmlnXzEiLCAicmVxdWlyZV9wYWNrYWdlIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAicmVxdWlyZV9kaXN0X2NqcyIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAidXRpbENvbmZpZ1Byb3ZpZGVyIiwgInV0aWxBcm5QYXJzZXIiLCAicHJvdG9jb2xIdHRwIiwgIk5PREVfRElTQUJMRV9NVUxUSVJFR0lPTl9BQ0NFU1NfUE9JTlRfRU5WX05BTUUiLCAiTk9ERV9ESVNBQkxFX01VTFRJUkVHSU9OX0FDQ0VTU19QT0lOVF9JTklfTkFNRSIsICJOT0RFX0RJU0FCTEVfTVVMVElSRUdJT05fQUNDRVNTX1BPSU5UX0NPTkZJR19PUFRJT05TIiwgImVudiIsICJwcm9maWxlIiwgIk5PREVfVVNFX0FSTl9SRUdJT05fRU5WX05BTUUiLCAiTk9ERV9VU0VfQVJOX1JFR0lPTl9JTklfTkFNRSIsICJOT0RFX1VTRV9BUk5fUkVHSU9OX0NPTkZJR19PUFRJT05TIiwgIkRPTUFJTl9QQVRURVJOIiwgIklQX0FERFJFU1NfUEFUVEVSTiIsICJET1RTX1BBVFRFUk4iLCAiRE9UX1BBVFRFUk4iLCAiUzNfSE9TVE5BTUVfUEFUVEVSTiIsICJTM19VU19FQVNUXzFfQUxUTkFNRV9QQVRURVJOIiwgIkFXU19QQVJUSVRJT05fU1VGRklYIiwgImlzQnVja2V0TmFtZU9wdGlvbnMiLCAib3B0aW9ucyIsICJpc0Ruc0NvbXBhdGlibGVCdWNrZXROYW1lIiwgImJ1Y2tldE5hbWUiLCAiZ2V0UmVnaW9uYWxTdWZmaXgiLCAiaG9zdG5hbWUiLCAicGFydHMiLCAiZ2V0U3VmZml4IiwgImdldFN1ZmZpeEZvckFybkVuZHBvaW50IiwgInZhbGlkYXRlQXJuRW5kcG9pbnRPcHRpb25zIiwgInZhbGlkYXRlU2VydmljZSIsICJzZXJ2aWNlIiwgInZhbGlkYXRlUzNTZXJ2aWNlIiwgInZhbGlkYXRlT3V0cG9zdFNlcnZpY2UiLCAidmFsaWRhdGVQYXJ0aXRpb24iLCAicGFydGl0aW9uIiwgInZhbGlkYXRlUmVnaW9uIiwgInJlZ2lvbiIsICJ2YWxpZGF0ZVJlZ2lvbmFsQ2xpZW50IiwgInZhbGlkYXRlQWNjb3VudElkIiwgImFjY291bnRJZCIsICJ2YWxpZGF0ZUROU0hvc3RMYWJlbCIsICJsYWJlbCIsICJ2YWxpZGF0ZUN1c3RvbUVuZHBvaW50IiwgImdldEFyblJlc291cmNlcyIsICJyZXNvdXJjZSIsICJkZWxpbWl0ZXIiLCAicmVzb3VyY2VUeXBlIiwgInJlc3QiLCAib3V0cG9zdElkIiwgIl8iLCAiYWNjZXNzcG9pbnROYW1lIiwgInZhbGlkYXRlTm9EdWFsc3RhY2siLCAiZHVhbHN0YWNrRW5kcG9pbnQiLCAidmFsaWRhdGVOb0ZJUFMiLCAidXNlRmlwc0VuZHBvaW50IiwgInZhbGlkYXRlTXJhcEFsaWFzIiwgIm5hbWUiLCAiYnVja2V0SG9zdG5hbWUiLCAiZ2V0RW5kcG9pbnRGcm9tQnVja2V0TmFtZSIsICJnZXRFbmRwb2ludEZyb21Bcm4iLCAiYWNjZWxlcmF0ZUVuZHBvaW50IiwgImJhc2VIb3N0bmFtZSIsICJmaXBzRW5kcG9pbnQiLCAicGF0aFN0eWxlRW5kcG9pbnQiLCAidGxzQ29tcGF0aWJsZSIsICJpc0N1c3RvbUVuZHBvaW50IiwgImNsaWVudFJlZ2lvbiIsICJob3N0bmFtZVN1ZmZpeCIsICJjbGllbnRQYXJ0aXRpb24iLCAiZ2V0RW5kcG9pbnRGcm9tT2JqZWN0TGFtYmRhQXJuIiwgImdldEVuZHBvaW50RnJvbU1SQVBBcm4iLCAiZ2V0RW5kcG9pbnRGcm9tT3V0cG9zdEFybiIsICJnZXRFbmRwb2ludEZyb21BY2Nlc3NQb2ludEFybiIsICJ1c2VBcm5SZWdpb24iLCAiY2xpZW50U2lnbmluZ1JlZ2lvbiIsICJETlNIb3N0TGFiZWwiLCAiZW5kcG9pbnRSZWdpb24iLCAic2lnbmluZ1JlZ2lvbiIsICJkaXNhYmxlTXVsdGlyZWdpb25BY2Nlc3NQb2ludHMiLCAibXJhcEFsaWFzIiwgImhvc3RuYW1lUHJlZml4IiwgImJ1Y2tldEVuZHBvaW50TWlkZGxld2FyZSIsICJuZXh0IiwgImNvbnRleHQiLCAiYXJncyIsICJyZXBsYWNlQnVja2V0SW5QYXRoIiwgInJlcXVlc3QiLCAiYnVja2V0QXJuIiwgInVzZUR1YWxzdGFja0VuZHBvaW50IiwgImJ1Y2tldEVuZHBvaW50IiwgIm1vZGlmaWVkU2lnbmluZ1JlZ2lvbiIsICJzaWduaW5nU2VydmljZSIsICJidWNrZXRFbmRwb2ludE1pZGRsZXdhcmVPcHRpb25zIiwgImdldEJ1Y2tldEVuZHBvaW50UGx1Z2luIiwgImNsaWVudFN0YWNrIiwgInJlc29sdmVCdWNrZXRFbmRwb2ludENvbmZpZyIsICJpbnB1dCIsICJmb3JjZVBhdGhTdHlsZSIsICJ1c2VBY2NlbGVyYXRlRW5kcG9pbnQiLCAicmVxdWlyZV9ydW50aW1lQ29uZmlnX3NoYXJlZCIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAiY29yZV8xIiwgInByb3RvY29sc18xIiwgInNpZ25hdHVyZV92NF9tdWx0aV9yZWdpb25fMSIsICJzbWl0aHlfY2xpZW50XzEiLCAidXJsX3BhcnNlcl8xIiwgInV0aWxfYmFzZTY0XzEiLCAidXRpbF9zdHJlYW1fMSIsICJ1dGlsX3V0ZjhfMSIsICJodHRwQXV0aFNjaGVtZVByb3ZpZGVyXzEiLCAiZW5kcG9pbnRSZXNvbHZlcl8xIiwgImdldFJ1bnRpbWVDb25maWciLCAiY29uZmlnIiwgImlwYyIsICJyZXF1aXJlX3J1bnRpbWVDb25maWciLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgInRzbGliXzEiLCAicGFja2FnZV9qc29uXzEiLCAiY29yZV8xIiwgImNyZWRlbnRpYWxfcHJvdmlkZXJfbm9kZV8xIiwgIm1pZGRsZXdhcmVfYnVja2V0X2VuZHBvaW50XzEiLCAibWlkZGxld2FyZV9mbGV4aWJsZV9jaGVja3N1bXNfMSIsICJtaWRkbGV3YXJlX3Nka19zM18xIiwgInV0aWxfdXNlcl9hZ2VudF9ub2RlXzEiLCAiY29uZmlnX3Jlc29sdmVyXzEiLCAiZXZlbnRzdHJlYW1fc2VyZGVfbm9kZV8xIiwgImhhc2hfbm9kZV8xIiwgImhhc2hfc3RyZWFtX25vZGVfMSIsICJtaWRkbGV3YXJlX3JldHJ5XzEiLCAibm9kZV9jb25maWdfcHJvdmlkZXJfMSIsICJub2RlX2h0dHBfaGFuZGxlcl8xIiwgInNtaXRoeV9jbGllbnRfMSIsICJ1dGlsX2JvZHlfbGVuZ3RoX25vZGVfMSIsICJ1dGlsX2RlZmF1bHRzX21vZGVfbm9kZV8xIiwgInV0aWxfcmV0cnlfMSIsICJydW50aW1lQ29uZmlnX3NoYXJlZF8xIiwgImdldFJ1bnRpbWVDb25maWciLCAiY29uZmlnIiwgImRlZmF1bHRzTW9kZSIsICJkZWZhdWx0Q29uZmlnUHJvdmlkZXIiLCAiY2xpZW50U2hhcmVkVmFsdWVzIiwgImxvYWRlckNvbmZpZyIsICJyZXF1aXJlX2Rpc3RfY2pzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJzc2VjTWlkZGxld2FyZSIsICJvcHRpb25zIiwgIm5leHQiLCAiYXJncyIsICJpbnB1dCIsICJwcm9wZXJ0aWVzIiwgInByb3AiLCAidmFsdWUiLCAidmFsdWVGb3JIYXNoIiwgImlzVmFsaWRCYXNlNjRFbmNvZGVkU1NFQ3VzdG9tZXJLZXkiLCAiaGFzaCIsICJzc2VjTWlkZGxld2FyZU9wdGlvbnMiLCAiZ2V0U3NlY1BsdWdpbiIsICJjb25maWciLCAiY2xpZW50U3RhY2siLCAic3RyIiwgInJlcXVpcmVfZGlzdF9janMiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgImxvY2F0aW9uQ29uc3RyYWludE1pZGRsZXdhcmUiLCAib3B0aW9ucyIsICJuZXh0IiwgImFyZ3MiLCAiQ3JlYXRlQnVja2V0Q29uZmlndXJhdGlvbiIsICJyZWdpb24iLCAibG9jYXRpb25Db25zdHJhaW50TWlkZGxld2FyZU9wdGlvbnMiLCAiZ2V0TG9jYXRpb25Db25zdHJhaW50UGx1Z2luIiwgImNvbmZpZyIsICJjbGllbnRTdGFjayIsICJyZXF1aXJlX2Rpc3RfY2pzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJtaWRkbGV3YXJlRXhwZWN0Q29udGludWUiLCAibWlkZGxld2FyZUZsZXhpYmxlQ2hlY2tzdW1zIiwgIm1pZGRsZXdhcmVIb3N0SGVhZGVyIiwgIm1pZGRsZXdhcmVMb2dnZXIiLCAibWlkZGxld2FyZVJlY3Vyc2lvbkRldGVjdGlvbiIsICJtaWRkbGV3YXJlU2RrUzMiLCAibWlkZGxld2FyZVVzZXJBZ2VudCIsICJjb25maWdSZXNvbHZlciIsICJjb3JlIiwgInNjaGVtYSIsICJldmVudHN0cmVhbVNlcmRlQ29uZmlnUmVzb2x2ZXIiLCAibWlkZGxld2FyZUNvbnRlbnRMZW5ndGgiLCAibWlkZGxld2FyZUVuZHBvaW50IiwgIm1pZGRsZXdhcmVSZXRyeSIsICJzbWl0aHlDbGllbnQiLCAiaHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJydW50aW1lQ29uZmlnIiwgInJlZ2lvbkNvbmZpZ1Jlc29sdmVyIiwgInByb3RvY29sSHR0cCIsICJtaWRkbGV3YXJlU3NlYyIsICJtaWRkbGV3YXJlTG9jYXRpb25Db25zdHJhaW50IiwgInV0aWxXYWl0ZXIiLCAicmVzb2x2ZUNsaWVudEVuZHBvaW50UGFyYW1ldGVycyIsICJvcHRpb25zIiwgImNvbW1vblBhcmFtcyIsICJTM1NlcnZpY2VFeGNlcHRpb24kMSIsICJTM1NlcnZpY2VFeGNlcHRpb24iLCAiTm9TdWNoVXBsb2FkJDEiLCAiTm9TdWNoVXBsb2FkIiwgIm9wdHMiLCAiT2JqZWN0Tm90SW5BY3RpdmVUaWVyRXJyb3IkMSIsICJPYmplY3ROb3RJbkFjdGl2ZVRpZXJFcnJvciIsICJCdWNrZXRBbHJlYWR5RXhpc3RzJDEiLCAiQnVja2V0QWxyZWFkeUV4aXN0cyIsICJCdWNrZXRBbHJlYWR5T3duZWRCeVlvdSQxIiwgIkJ1Y2tldEFscmVhZHlPd25lZEJ5WW91IiwgIk5vU3VjaEJ1Y2tldCQxIiwgIk5vU3VjaEJ1Y2tldCIsICJJbnZhbGlkT2JqZWN0U3RhdGUkMSIsICJJbnZhbGlkT2JqZWN0U3RhdGUiLCAiTm9TdWNoS2V5JDEiLCAiTm9TdWNoS2V5IiwgIk5vdEZvdW5kJDEiLCAiTm90Rm91bmQiLCAiRW5jcnlwdGlvblR5cGVNaXNtYXRjaCQxIiwgIkVuY3J5cHRpb25UeXBlTWlzbWF0Y2giLCAiSW52YWxpZFJlcXVlc3QkMSIsICJJbnZhbGlkUmVxdWVzdCIsICJJbnZhbGlkV3JpdGVPZmZzZXQkMSIsICJJbnZhbGlkV3JpdGVPZmZzZXQiLCAiVG9vTWFueVBhcnRzJDEiLCAiVG9vTWFueVBhcnRzIiwgIklkZW1wb3RlbmN5UGFyYW1ldGVyTWlzbWF0Y2gkMSIsICJJZGVtcG90ZW5jeVBhcmFtZXRlck1pc21hdGNoIiwgIk9iamVjdEFscmVhZHlJbkFjdGl2ZVRpZXJFcnJvciQxIiwgIk9iamVjdEFscmVhZHlJbkFjdGl2ZVRpZXJFcnJvciIsICJfQSIsICJfQUFPIiwgIl9BQyIsICJfQUNMIiwgIl9BQ0xfIiwgIl9BQ0xuIiwgIl9BQ1AiLCAiX0FDVCIsICJfQUNuIiwgIl9BRCIsICJfQUVEIiwgIl9BRiIsICJfQUgiLCAiX0FIbCIsICJfQUkiLCAiX0FJTVUiLCAiX0FLSSIsICJfQU0iLCAiX0FNVSIsICJfQU1VTyIsICJfQU1VUiIsICJfQU1sIiwgIl9BTyIsICJfQU9sIiwgIl9BUEEiLCAiX0FQQWMiLCAiX0FRUkQiLCAiX0FSIiwgIl9BUkkiLCAiX0FTIiwgIl9BU0JEIiwgIl9BU1NFQkQiLCAiX0FTciIsICJfQVQiLCAiX0FuIiwgIl9CIiwgIl9CQSIsICJfQkFFIiwgIl9CQUkiLCAiX0JBT0JZIiwgIl9CRVQiLCAiX0JHUiIsICJfQkkiLCAiX0JLRSIsICJfQkxDIiwgIl9CTE4iLCAiX0JMUyIsICJfQkxUIiwgIl9CTiIsICJfQlAiLCAiX0JQQSIsICJfQlBQIiwgIl9CUiIsICJfQlJ5IiwgIl9CUyIsICJfQm8iLCAiX0J1IiwgIl9DIiwgIl9DQSIsICJfQ0FDTCIsICJfQ0IiLCAiX0NCQyIsICJfQ0JNQyIsICJfQ0JNQ1IiLCAiX0NCTVRDIiwgIl9DQk1UQ1IiLCAiX0NCTyIsICJfQ0JSIiwgIl9DQyIsICJfQ0NSQyIsICJfQ0NSQ0MiLCAiX0NDUkNOVk1FIiwgIl9DQ18iLCAiX0NEIiwgIl9DRF8iLCAiX0NEbyIsICJfQ0UiLCAiX0NFXyIsICJfQ0VvIiwgIl9DRiIsICJfQ0ZDIiwgIl9DTCIsICJfQ0xfIiwgIl9DTF9fIiwgIl9DTG8iLCAiX0NNIiwgIl9DTUQiLCAiX0NNVSIsICJfQ01VTyIsICJfQ01VT3IiLCAiX0NNVVIiLCAiX0NNVVJvIiwgIl9DTVVSciIsICJfQ01VbyIsICJfQ01VciIsICJfQ01oIiwgIl9DTyIsICJfQ09PIiwgIl9DT1IiLCAiX0NPUlNDIiwgIl9DT1JTUiIsICJfQ09SU1J1IiwgIl9DT1JvIiwgIl9DUCIsICJfQ1BMIiwgIl9DUExvIiwgIl9DUFIiLCAiX0NQbyIsICJfQ1BvbSIsICJfQ1IiLCAiX0NSU0JBIiwgIl9DUl8iLCAiX0NTIiwgIl9DU0hBIiwgIl9DU0hBaCIsICJfQ1NJTSIsICJfQ1NJTVMiLCAiX0NTSU5NIiwgIl9DU0lVUyIsICJfQ1NPIiwgIl9DU1IiLCAiX0NTUm8iLCAiX0NTUnIiLCAiX0NTU1NFQ0EiLCAiX0NTU1NFQ0siLCAiX0NTU1NFQ0tNRCIsICJfQ1NWIiwgIl9DU1ZJIiwgIl9DU1ZJbiIsICJfQ1NWTyIsICJfQ1NvIiwgIl9DU3IiLCAiX0NUIiwgIl9DVF8iLCAiX0NUbCIsICJfQ1RvIiwgIl9DVG9tIiwgIl9DVG9uIiwgIl9DbyIsICJfQ29kIiwgIl9Db20iLCAiX0NvbiIsICJfQ29udCIsICJfQ3IiLCAiX0QiLCAiX0RBSSIsICJfREIiLCAiX0RCQUMiLCAiX0RCQUNSIiwgIl9EQkMiLCAiX0RCQ1IiLCAiX0RCRSIsICJfREJFUiIsICJfREJJQyIsICJfREJJQ1IiLCAiX0RCSVRDIiwgIl9EQklUQ1IiLCAiX0RCTCIsICJfREJMUiIsICJfREJNQyIsICJfREJNQ1IiLCAiX0RCTUNSZSIsICJfREJNQ2UiLCAiX0RCTVRDIiwgIl9EQk1UQ1IiLCAiX0RCT0MiLCAiX0RCT0NSIiwgIl9EQlAiLCAiX0RCUFIiLCAiX0RCUiIsICJfREJSUiIsICJfREJSZSIsICJfREJUIiwgIl9EQlRSIiwgIl9EQlciLCAiX0RCV1IiLCAiX0RFIiwgIl9ESU0iLCAiX0RJTVMiLCAiX0RJTk0iLCAiX0RJVVMiLCAiX0RNIiwgIl9ETUUiLCAiX0RNUiIsICJfRE1WSSIsICJfRE1lIiwgIl9ETiIsICJfRE8iLCAiX0RPTyIsICJfRE9PZSIsICJfRE9SIiwgIl9ET1JlIiwgIl9ET1QiLCAiX0RPVE8iLCAiX0RPVFIiLCAiX0RPZSIsICJfRE9lbCIsICJfRE9lbGUiLCAiX0RQQUIiLCAiX0RQQUJSIiwgIl9EUiIsICJfRFJlIiwgIl9EUmVsIiwgIl9EUmVzIiwgIl9EYSIsICJfRGUiLCAiX0RlbCIsICJfRGVsaSIsICJfRGVzIiwgIl9EZXNjIiwgIl9EZXQiLCAiX0UiLCAiX0VBIiwgIl9FQkMiLCAiX0VCTyIsICJfRUMiLCAiX0VDciIsICJfRUQiLCAiX0VEciIsICJfRUUiLCAiX0VIIiwgIl9FSHgiLCAiX0VNIiwgIl9FT0RNIiwgIl9FT1IiLCAiX0VTIiwgIl9FU0JPIiwgIl9FVCIsICJfRVRMIiwgIl9FVE0iLCAiX0VUYSIsICJfRVRuIiwgIl9FVHYiLCAiX0VUeCIsICJfRW4iLCAiX0VuYSIsICJfRW5kIiwgIl9FciIsICJfRXJyIiwgIl9FdiIsICJfRXZlIiwgIl9FeCIsICJfRXhwIiwgIl9GIiwgIl9GRCIsICJfRkhJIiwgIl9GTyIsICJfRlIiLCAiX0ZSTCIsICJfRlJpIiwgIl9GaSIsICJfRm8iLCAiX0ZyIiwgIl9HIiwgIl9HQkEiLCAiX0dCQUMiLCAiX0dCQUNPIiwgIl9HQkFDT2UiLCAiX0dCQUNSIiwgIl9HQkFDUmUiLCAiX0dCQUNlIiwgIl9HQkFPIiwgIl9HQkFPZSIsICJfR0JBUiIsICJfR0JBUmUiLCAiX0dCQWUiLCAiX0dCQyIsICJfR0JDTyIsICJfR0JDUiIsICJfR0JFIiwgIl9HQkVPIiwgIl9HQkVSIiwgIl9HQklDIiwgIl9HQklDTyIsICJfR0JJQ1IiLCAiX0dCSVRDIiwgIl9HQklUQ08iLCAiX0dCSVRDUiIsICJfR0JMIiwgIl9HQkxDIiwgIl9HQkxDTyIsICJfR0JMQ1IiLCAiX0dCTE8iLCAiX0dCTE9lIiwgIl9HQkxSIiwgIl9HQkxSZSIsICJfR0JMZSIsICJfR0JNQyIsICJfR0JNQ08iLCAiX0dCTUNPZSIsICJfR0JNQ1IiLCAiX0dCTUNSZSIsICJfR0JNQ1JldCIsICJfR0JNQ2UiLCAiX0dCTVRDIiwgIl9HQk1UQ08iLCAiX0dCTVRDUiIsICJfR0JNVENSZSIsICJfR0JOQyIsICJfR0JOQ1IiLCAiX0dCT0MiLCAiX0dCT0NPIiwgIl9HQk9DUiIsICJfR0JQIiwgIl9HQlBPIiwgIl9HQlBSIiwgIl9HQlBTIiwgIl9HQlBTTyIsICJfR0JQU1IiLCAiX0dCUiIsICJfR0JSTyIsICJfR0JSUCIsICJfR0JSUE8iLCAiX0dCUlBSIiwgIl9HQlJSIiwgIl9HQlQiLCAiX0dCVE8iLCAiX0dCVFIiLCAiX0dCViIsICJfR0JWTyIsICJfR0JWUiIsICJfR0JXIiwgIl9HQldPIiwgIl9HQldSIiwgIl9HRkMiLCAiX0dKUCIsICJfR08iLCAiX0dPQSIsICJfR09BTyIsICJfR09BT2UiLCAiX0dPQVAiLCAiX0dPQVIiLCAiX0dPQVJlIiwgIl9HT0FSZXQiLCAiX0dPQWUiLCAiX0dPTEMiLCAiX0dPTENPIiwgIl9HT0xDUiIsICJfR09MSCIsICJfR09MSE8iLCAiX0dPTEhSIiwgIl9HT08iLCAiX0dPUiIsICJfR09STyIsICJfR09SUiIsICJfR09SZSIsICJfR09UIiwgIl9HT1RPIiwgIl9HT1RPZSIsICJfR09UUiIsICJfR09UUmUiLCAiX0dPVGUiLCAiX0dQQUIiLCAiX0dQQUJPIiwgIl9HUEFCUiIsICJfR1IiLCAiX0dSQUNQIiwgIl9HVyIsICJfR1dBQ1AiLCAiX0dyIiwgIl9HcmEiLCAiX0hCIiwgIl9IQk8iLCAiX0hCUiIsICJfSEVDUkUiLCAiX0hOIiwgIl9ITyIsICJfSE9PIiwgIl9IT1IiLCAiX0hSQyIsICJfSSIsICJfSUMiLCAiX0lDTCIsICJfSUQiLCAiX0lEbiIsICJfSURudiIsICJfSUUiLCAiX0lFbiIsICJfSUYiLCAiX0lMIiwgIl9JTSIsICJfSU1JVCIsICJfSU1MTVQiLCAiX0lNUyIsICJfSU1TXyIsICJfSU1TZiIsICJfSU1VUiIsICJfSU1fIiwgIl9JTk0iLCAiX0lOTV8iLCAiX0lPRiIsICJfSU9TIiwgIl9JT1YiLCAiX0lQIiwgIl9JUEEiLCAiX0lQTSIsICJfSVIiLCAiX0lSSVAiLCAiX0lTIiwgIl9JU0JEIiwgIl9JU24iLCAiX0lUIiwgIl9JVEFPIiwgIl9JVEMiLCAiX0lUQ0wiLCAiX0lUQ1IiLCAiX0lUQ1UiLCAiX0lUQ24iLCAiX0lURiIsICJfSVVTIiwgIl9JVVNfIiwgIl9JV08iLCAiX0luIiwgIl9JbmkiLCAiX0pTT04iLCAiX0pTT05JIiwgIl9KU09OTyIsICJfSlRDIiwgIl9KVENSIiwgIl9KVENVIiwgIl9LIiwgIl9LQyIsICJfS0kiLCAiX0tLQSIsICJfS00iLCAiX0tNU0MiLCAiX0tNU0tJIiwgIl9LTVNNS0lEIiwgIl9LUEUiLCAiX0wiLCAiX0xBTUJSIiwgIl9MQU1EQlIiLCAiX0xCIiwgIl9MQkFDIiwgIl9MQkFDTyIsICJfTEJBQ1IiLCAiX0xCQUNSaSIsICJfTEJJQyIsICJfTEJJQ08iLCAiX0xCSUNSIiwgIl9MQklUQyIsICJfTEJJVENPIiwgIl9MQklUQ1IiLCAiX0xCTUMiLCAiX0xCTUNPIiwgIl9MQk1DUiIsICJfTEJPIiwgIl9MQlIiLCAiX0xCUmkiLCAiX0xDIiwgIl9MQ2kiLCAiX0xEQiIsICJfTERCTyIsICJfTERCUiIsICJfTEUiLCAiX0xFaSIsICJfTEZBIiwgIl9MRkMiLCAiX0xGQ0wiLCAiX0xGQ2EiLCAiX0xIIiwgIl9MSSIsICJfTElDUiIsICJfTE0iLCAiX0xNQ1IiLCAiX0xNVCIsICJfTE1VIiwgIl9MTVVPIiwgIl9MTVVSIiwgIl9MTVVSaSIsICJfTE1fIiwgIl9MTyIsICJfTE9PIiwgIl9MT1IiLCAiX0xPViIsICJfTE9WTyIsICJfTE9WT2kiLCAiX0xPVlIiLCAiX0xPVlJpIiwgIl9MT1ZpIiwgIl9MUCIsICJfTFBPIiwgIl9MUFIiLCAiX0xQUmkiLCAiX0xSIiwgIl9MUkFPIiwgIl9MUkYiLCAiX0xSaSIsICJfTFZSIiwgIl9NIiwgIl9NQU8iLCAiX01BUyIsICJfTUIiLCAiX01DIiwgIl9NQ0wiLCAiX01DUiIsICJfTUNlIiwgIl9NRCIsICJfTURCIiwgIl9NRGYiLCAiX01FIiwgIl9NRiIsICJfTUZBIiwgIl9NRkFEIiwgIl9NSyIsICJfTU0iLCAiX01PUyIsICJfTVAiLCAiX01UQyIsICJfTVRDUiIsICJfTVRFQyIsICJfTVUiLCAiX01VTCIsICJfTVVhIiwgIl9NYSIsICJfTWUiLCAiX01lcyIsICJfTWkiLCAiX01vIiwgIl9OIiwgIl9OQyIsICJfTkNGIiwgIl9OQ1QiLCAiX05EIiwgIl9ORiIsICJfTktNIiwgIl9OTSIsICJfTk5WIiwgIl9OUE5NIiwgIl9OU0IiLCAiX05TSyIsICJfTlNVIiwgIl9OVUlNIiwgIl9OVkUiLCAiX05WSU0iLCAiX05WVCIsICJfTlZUTCIsICJfTlZUbyIsICJfTyIsICJfT0EiLCAiX09BSUFURSIsICJfT0MiLCAiX09DUiIsICJfT0NSdyIsICJfT0YiLCAiX09JIiwgIl9PSUwiLCAiX09MIiwgIl9PTEMiLCAiX09MRSIsICJfT0xFRkIiLCAiX09MTEgiLCAiX09MTEhTIiwgIl9PTE0iLCAiX09MUiIsICJfT0xSVUQiLCAiX09MUmIiLCAiX09MYiIsICJfT05JQVRFIiwgIl9PTyIsICJfT09BIiwgIl9PUCIsICJfT1BiIiwgIl9PUyIsICJfT1NHVCIsICJfT1NMVCIsICJfT1NWIiwgIl9PU3UiLCAiX09WIiwgIl9PVkwiLCAiX09iIiwgIl9PYmoiLCAiX1AiLCAiX1BBQkMiLCAiX1BCQSIsICJfUEJBQyIsICJfUEJBQ1IiLCAiX1BCQUNSdSIsICJfUEJBQ3UiLCAiX1BCQVIiLCAiX1BCQVJ1IiwgIl9QQkF1IiwgIl9QQkMiLCAiX1BCQ1IiLCAiX1BCRSIsICJfUEJFUiIsICJfUEJJQyIsICJfUEJJQ1IiLCAiX1BCSVRDIiwgIl9QQklUQ1IiLCAiX1BCTCIsICJfUEJMQyIsICJfUEJMQ08iLCAiX1BCTENSIiwgIl9QQkxSIiwgIl9QQk1DIiwgIl9QQk1DUiIsICJfUEJOQyIsICJfUEJOQ1IiLCAiX1BCT0MiLCAiX1BCT0NSIiwgIl9QQlAiLCAiX1BCUFIiLCAiX1BCUiIsICJfUEJSUCIsICJfUEJSUFIiLCAiX1BCUlIiLCAiX1BCVCIsICJfUEJUUiIsICJfUEJWIiwgIl9QQlZSIiwgIl9QQlciLCAiX1BCV1IiLCAiX1BDIiwgIl9QRFMiLCAiX1BFIiwgIl9QSSIsICJfUEwiLCAiX1BOIiwgIl9QTk0iLCAiX1BPIiwgIl9QT0EiLCAiX1BPQU8iLCAiX1BPQVIiLCAiX1BPTEMiLCAiX1BPTENPIiwgIl9QT0xDUiIsICJfUE9MSCIsICJfUE9MSE8iLCAiX1BPTEhSIiwgIl9QT08iLCAiX1BPUiIsICJfUE9STyIsICJfUE9SUiIsICJfUE9SdSIsICJfUE9UIiwgIl9QT1RPIiwgIl9QT1RSIiwgIl9QUCIsICJfUFBBQiIsICJfUFBBQlIiLCAiX1BTIiwgIl9QYSIsICJfUGFyIiwgIl9QYXJxIiwgIl9QYXkiLCAiX1BheWwiLCAiX1BlIiwgIl9QbyIsICJfUHIiLCAiX1ByaSIsICJfUHJvIiwgIl9RIiwgIl9RQSIsICJfUUMiLCAiX1FDTCIsICJfUUN1IiwgIl9RQ3VlIiwgIl9RRUMiLCAiX1FGIiwgIl9RdSIsICJfUiIsICJfUkFSVCIsICJfUkMiLCAiX1JDQyIsICJfUkNEIiwgIl9SQ0UiLCAiX1JDTCIsICJfUkNUIiwgIl9SQ2UiLCAiX1JEIiwgIl9SRSIsICJfUkVEIiwgIl9SRWUiLCAiX1JFZWMiLCAiX1JLS0lEIiwgIl9SS1BXIiwgIl9SS1ciLCAiX1JNIiwgIl9STyIsICJfUk9PIiwgIl9ST09lIiwgIl9ST1AiLCAiX1JPUiIsICJfUk9SZSIsICJfUk9lIiwgIl9SUCIsICJfUlBCIiwgIl9SUEMiLCAiX1JQZSIsICJfUlIiLCAiX1JSQU8iLCAiX1JSRiIsICJfUlJlIiwgIl9SUmVwIiwgIl9SUmVxIiwgIl9SUmVzIiwgIl9SUm8iLCAiX1JTIiwgIl9SU2UiLCAiX1JTZW4iLCAiX1JUIiwgIl9SVFYiLCAiX1JUZSIsICJfUlVEIiwgIl9SYSIsICJfUmUiLCAiX1JlYyIsICJfUmVkIiwgIl9SZXQiLCAiX1JvIiwgIl9SdSIsICJfUyIsICJfU0EiLCAiX1NBSyIsICJfU0FzIiwgIl9TQiIsICJfU0JEIiwgIl9TQyIsICJfU0NBIiwgIl9TQ0FERSIsICJfU0NWIiwgIl9TQ2UiLCAiX1NDdCIsICJfU0RWIiwgIl9TRSIsICJfU0lNIiwgIl9TSU1TIiwgIl9TSU5NIiwgIl9TSVVTIiwgIl9TSyIsICJfU0tFTyIsICJfU0tGIiwgIl9TS2UiLCAiX1NMIiwgIl9TTSIsICJfU09DIiwgIl9TT0NFUyIsICJfU09DTyIsICJfU09DUiIsICJfU1AiLCAiX1NQaSIsICJfU1IiLCAiX1NTIiwgIl9TU0MiLCAiX1NTRSIsICJfU1NFQSIsICJfU1NFQkQiLCAiX1NTRUMiLCAiX1NTRUNBIiwgIl9TU0VDSyIsICJfU1NFQ0tNRCIsICJfU1NFS01TIiwgIl9TU0VLTVNFQyIsICJfU1NFS01TS0kiLCAiX1NTRVIiLCAiX1NTRVJlIiwgIl9TU0VTIiwgIl9TVCIsICJfU1REIiwgIl9TVERSIiwgIl9TXyIsICJfU2MiLCAiX1NpIiwgIl9TdCIsICJfU3RhIiwgIl9TdSIsICJfVCIsICJfVEEiLCAiX1RBbyIsICJfVEIiLCAiX1RCQSIsICJfVEJUIiwgIl9UQyIsICJfVENMIiwgIl9UQ28iLCAiX1RDb3AiLCAiX1REIiwgIl9URE1PUyIsICJfVEciLCAiX1RHYSIsICJfVEwiLCAiX1RMciIsICJfVE1QIiwgIl9UTiIsICJfVE5hIiwgIl9UT0tGIiwgIl9UUCIsICJfVFBDIiwgIl9UUyIsICJfVFNhIiwgIl9UYSIsICJfVGFnIiwgIl9UaSIsICJfVGllIiwgIl9UaWVyIiwgIl9UaW0iLCAiX1RvIiwgIl9Ub3AiLCAiX1RyIiwgIl9UcmEiLCAiX1R5IiwgIl9VIiwgIl9VQk1JVEMiLCAiX1VCTUlUQ1IiLCAiX1VCTUpUQyIsICJfVUJNSlRDUiIsICJfVUkiLCAiX1VJTSIsICJfVU0iLCAiX1VQIiwgIl9VUEMiLCAiX1VQQ08iLCAiX1VQQ1IiLCAiX1VQTyIsICJfVVBSIiwgIl9VUkkiLCAiX1VwIiwgIl9WIiwgIl9WQyIsICJfVkkiLCAiX1ZJTSIsICJfVmUiLCAiX1ZlciIsICJfV0MiLCAiX1dHT1IiLCAiX1dHT1JSIiwgIl9XT0IiLCAiX1dSTCIsICJfWSIsICJfYXIiLCAiX2JyIiwgIl9jIiwgIl9jdCIsICJfZCIsICJfZSIsICJfZVAiLCAiX2VuIiwgIl9ldCIsICJfZm8iLCAiX2giLCAiX2hFIiwgIl9oSCIsICJfaEwiLCAiX2hQIiwgIl9oUEgiLCAiX2hRIiwgIl9oaSIsICJfaSIsICJfaVQiLCAiX2ttIiwgIl9tIiwgIl9tYiIsICJfbWRiIiwgIl9tayIsICJfbXAiLCAiX211IiwgIl9wIiwgIl9wTiIsICJfcG5tIiwgIl9yY2MiLCAiX3JjZCIsICJfcmNlIiwgIl9yY2wiLCAiX3JjdCIsICJfcmUiLCAiX3MiLCAiX3NhIiwgIl9zbSIsICJfdUkiLCAiX3VpbSIsICJfdkkiLCAiX3ZpbSIsICJfeCIsICJfeEEiLCAiX3hGIiwgIl94TiIsICJfeE5tIiwgIl94YWEiLCAiX3hhYWQiLCAiX3hhYXBhIiwgIl94YWFyaSIsICJfeGFhcyIsICJfeGFiYSIsICJfeGFiZ3IiLCAiX3hhYmxuIiwgIl94YWJsdCIsICJfeGFib2xlIiwgIl94YWJvbHQiLCAiX3hhYnIiLCAiX3hhY2EiLCAiX3hhY2MiLCAiX3hhY2NfIiwgIl94YWNjX18iLCAiX3hhY20iLCAiX3hhY3JzYmEiLCAiX3hhY3MiLCAiX3hhY3NfIiwgIl94YWNzX18iLCAiX3hhY3NpbSIsICJfeGFjc2ltcyIsICJfeGFjc2lubSIsICJfeGFjc2l1cyIsICJfeGFjc20iLCAiX3hhY3NyIiwgIl94YWNzc3NlY2EiLCAiX3hhY3Nzc2VjayIsICJfeGFjc3NzZWNrTSIsICJfeGFjc3ZpIiwgIl94YWN0IiwgIl94YWN0XyIsICJfeGFkbSIsICJfeGFlIiwgIl94YWVibyIsICJfeGFmZWMiLCAiX3hhZmVtIiwgIl94YWZoQ0MiLCAiX3hhZmhDRCIsICJfeGFmaENFIiwgIl94YWZoQ0wiLCAiX3hhZmhDUiIsICJfeGFmaENUIiwgIl94YWZoRSIsICJfeGFmaEVfIiwgIl94YWZoTE0iLCAiX3hhZmhhciIsICJfeGFmaHhhY2MiLCAiX3hhZmh4YWNjXyIsICJfeGFmaHhhY2NfXyIsICJfeGFmaHhhY3MiLCAiX3hhZmh4YWNzXyIsICJfeGFmaHhhZG0iLCAiX3hhZmh4YWUiLCAiX3hhZmh4YW1tIiwgIl94YWZoeGFtcGMiLCAiX3hhZmh4YW9sbGgiLCAiX3hhZmh4YW9sbSIsICJfeGFmaHhhb2xydWQiLCAiX3hhZmh4YXIiLCAiX3hhZmh4YXJjIiwgIl94YWZoeGFycyIsICJfeGFmaHhhc2MiLCAiX3hhZmh4YXNzZSIsICJfeGFmaHhhc3NlYWtraSIsICJfeGFmaHhhc3NlYmtlIiwgIl94YWZoeGFzc2VjYSIsICJfeGFmaHhhc3NlY2tNIiwgIl94YWZoeGF0YyIsICJfeGFmaHhhdmkiLCAiX3hhZnMiLCAiX3hhZ2ZjIiwgIl94YWdyIiwgIl94YWdyYSIsICJfeGFndyIsICJfeGFnd2EiLCAiX3hhaW1pdCIsICJfeGFpbWxtdCIsICJfeGFpbXMiLCAiX3hhbSIsICJfeGFtXyIsICJfeGFtZCIsICJfeGFtbSIsICJfeGFtb3MiLCAiX3hhbXAiLCAiX3hhbXBjIiwgIl94YW9hIiwgIl94YW9sbGgiLCAiX3hhb2xtIiwgIl94YW9scnVkIiwgIl94YW9vIiwgIl94YW9vYSIsICJfeGFvcyIsICJfeGFwbm0iLCAiX3hhciIsICJfeGFyYyIsICJfeGFyb3AiLCAiX3hhcnAiLCAiX3hhcnIiLCAiX3hhcnMiLCAiX3hhcnNfIiwgIl94YXJzaW0iLCAiX3hhcnNpbXMiLCAiX3hhcnNpbm0iLCAiX3hhcnNpdXMiLCAiX3hhcnQiLCAiX3hhc2MiLCAiX3hhc2NhIiwgIl94YXNkdiIsICJfeGFzZWJvIiwgIl94YXNzZSIsICJfeGFzc2Vha2tpIiwgIl94YXNzZWJrZSIsICJfeGFzc2VjIiwgIl94YXNzZWNhIiwgIl94YXNzZWNrIiwgIl94YXNzZWNrTSIsICJfeGF0IiwgIl94YXRjIiwgIl94YXRkIiwgIl94YXRkbW9zIiwgIl94YXZpIiwgIl94YXdvYiIsICJfeGF3cmwiLCAiX3hzIiwgIm4wIiwgIkNvcHlTb3VyY2VTU0VDdXN0b21lcktleSIsICJTZXNzaW9uQ3JlZGVudGlhbFZhbHVlIiwgIlNTRUN1c3RvbWVyS2V5IiwgIlNTRUtNU0VuY3J5cHRpb25Db250ZXh0IiwgIlNTRUtNU0tleUlkIiwgIlN0cmVhbWluZ0Jsb2IiLCAiQWJhY1N0YXR1cyIsICJBYm9ydEluY29tcGxldGVNdWx0aXBhcnRVcGxvYWQiLCAiQWJvcnRNdWx0aXBhcnRVcGxvYWRPdXRwdXQiLCAiQWJvcnRNdWx0aXBhcnRVcGxvYWRSZXF1ZXN0IiwgIkFjY2VsZXJhdGVDb25maWd1cmF0aW9uIiwgIkFjY2Vzc0NvbnRyb2xQb2xpY3kiLCAiR3JhbnRzIiwgIk93bmVyIiwgIkFjY2Vzc0NvbnRyb2xUcmFuc2xhdGlvbiIsICJBbmFseXRpY3NBbmRPcGVyYXRvciIsICJUYWdTZXQiLCAiQW5hbHl0aWNzQ29uZmlndXJhdGlvbiIsICJBbmFseXRpY3NGaWx0ZXIiLCAiU3RvcmFnZUNsYXNzQW5hbHlzaXMiLCAiQW5hbHl0aWNzRXhwb3J0RGVzdGluYXRpb24iLCAiQW5hbHl0aWNzUzNCdWNrZXREZXN0aW5hdGlvbiIsICJCbG9ja2VkRW5jcnlwdGlvblR5cGVzIiwgIkVuY3J5cHRpb25UeXBlTGlzdCIsICJCdWNrZXQiLCAiQnVja2V0SW5mbyIsICJCdWNrZXRMaWZlY3ljbGVDb25maWd1cmF0aW9uIiwgIkxpZmVjeWNsZVJ1bGVzIiwgIkJ1Y2tldExvZ2dpbmdTdGF0dXMiLCAiTG9nZ2luZ0VuYWJsZWQiLCAiQ2hlY2tzdW0iLCAiQ29tbW9uUHJlZml4IiwgIkNvbXBsZXRlZE11bHRpcGFydFVwbG9hZCIsICJDb21wbGV0ZWRQYXJ0TGlzdCIsICJDb21wbGV0ZWRQYXJ0IiwgIkNvbXBsZXRlTXVsdGlwYXJ0VXBsb2FkT3V0cHV0IiwgIkNvbXBsZXRlTXVsdGlwYXJ0VXBsb2FkUmVxdWVzdCIsICJDb25kaXRpb24iLCAiQ29udGludWF0aW9uRXZlbnQiLCAiQ29weU9iamVjdE91dHB1dCIsICJDb3B5T2JqZWN0UmVzdWx0IiwgIkNvcHlPYmplY3RSZXF1ZXN0IiwgIkNvcHlQYXJ0UmVzdWx0IiwgIkNPUlNDb25maWd1cmF0aW9uIiwgIkNPUlNSdWxlcyIsICJDT1JTUnVsZSIsICJDcmVhdGVCdWNrZXRDb25maWd1cmF0aW9uIiwgIkxvY2F0aW9uSW5mbyIsICJDcmVhdGVCdWNrZXRNZXRhZGF0YUNvbmZpZ3VyYXRpb25SZXF1ZXN0IiwgIk1ldGFkYXRhQ29uZmlndXJhdGlvbiIsICJDcmVhdGVCdWNrZXRNZXRhZGF0YVRhYmxlQ29uZmlndXJhdGlvblJlcXVlc3QiLCAiTWV0YWRhdGFUYWJsZUNvbmZpZ3VyYXRpb24iLCAiQ3JlYXRlQnVja2V0T3V0cHV0IiwgIkNyZWF0ZUJ1Y2tldFJlcXVlc3QiLCAiQ3JlYXRlTXVsdGlwYXJ0VXBsb2FkT3V0cHV0IiwgIkNyZWF0ZU11bHRpcGFydFVwbG9hZFJlcXVlc3QiLCAiQ3JlYXRlU2Vzc2lvbk91dHB1dCIsICJTZXNzaW9uQ3JlZGVudGlhbHMiLCAiQ3JlYXRlU2Vzc2lvblJlcXVlc3QiLCAiQ1NWSW5wdXQiLCAiQ1NWT3V0cHV0IiwgIkRlZmF1bHRSZXRlbnRpb24iLCAiRGVsZXRlIiwgIk9iamVjdElkZW50aWZpZXJMaXN0IiwgIkRlbGV0ZUJ1Y2tldEFuYWx5dGljc0NvbmZpZ3VyYXRpb25SZXF1ZXN0IiwgIkRlbGV0ZUJ1Y2tldENvcnNSZXF1ZXN0IiwgIkRlbGV0ZUJ1Y2tldEVuY3J5cHRpb25SZXF1ZXN0IiwgIkRlbGV0ZUJ1Y2tldEludGVsbGlnZW50VGllcmluZ0NvbmZpZ3VyYXRpb25SZXF1ZXN0IiwgIkRlbGV0ZUJ1Y2tldEludmVudG9yeUNvbmZpZ3VyYXRpb25SZXF1ZXN0IiwgIkRlbGV0ZUJ1Y2tldExpZmVjeWNsZVJlcXVlc3QiLCAiRGVsZXRlQnVja2V0TWV0YWRhdGFDb25maWd1cmF0aW9uUmVxdWVzdCIsICJEZWxldGVCdWNrZXRNZXRhZGF0YVRhYmxlQ29uZmlndXJhdGlvblJlcXVlc3QiLCAiRGVsZXRlQnVja2V0TWV0cmljc0NvbmZpZ3VyYXRpb25SZXF1ZXN0IiwgIkRlbGV0ZUJ1Y2tldE93bmVyc2hpcENvbnRyb2xzUmVxdWVzdCIsICJEZWxldGVCdWNrZXRQb2xpY3lSZXF1ZXN0IiwgIkRlbGV0ZUJ1Y2tldFJlcGxpY2F0aW9uUmVxdWVzdCIsICJEZWxldGVCdWNrZXRSZXF1ZXN0IiwgIkRlbGV0ZUJ1Y2tldFRhZ2dpbmdSZXF1ZXN0IiwgIkRlbGV0ZUJ1Y2tldFdlYnNpdGVSZXF1ZXN0IiwgIkRlbGV0ZWRPYmplY3QiLCAiRGVsZXRlTWFya2VyRW50cnkiLCAiRGVsZXRlTWFya2VyUmVwbGljYXRpb24iLCAiRGVsZXRlT2JqZWN0T3V0cHV0IiwgIkRlbGV0ZU9iamVjdFJlcXVlc3QiLCAiRGVsZXRlT2JqZWN0c091dHB1dCIsICJEZWxldGVkT2JqZWN0cyIsICJFcnJvcnMiLCAiRGVsZXRlT2JqZWN0c1JlcXVlc3QiLCAiRGVsZXRlT2JqZWN0VGFnZ2luZ091dHB1dCIsICJEZWxldGVPYmplY3RUYWdnaW5nUmVxdWVzdCIsICJEZWxldGVQdWJsaWNBY2Nlc3NCbG9ja1JlcXVlc3QiLCAiRGVzdGluYXRpb24iLCAiRW5jcnlwdGlvbkNvbmZpZ3VyYXRpb24iLCAiUmVwbGljYXRpb25UaW1lIiwgIk1ldHJpY3MiLCAiRGVzdGluYXRpb25SZXN1bHQiLCAiRW5jcnlwdGlvbiIsICJFbmRFdmVudCIsICJfRXJyb3IiLCAiRXJyb3JEZXRhaWxzIiwgIkVycm9yRG9jdW1lbnQiLCAiRXZlbnRCcmlkZ2VDb25maWd1cmF0aW9uIiwgIkV4aXN0aW5nT2JqZWN0UmVwbGljYXRpb24iLCAiRmlsdGVyUnVsZSIsICJHZXRCdWNrZXRBYmFjT3V0cHV0IiwgIkdldEJ1Y2tldEFiYWNSZXF1ZXN0IiwgIkdldEJ1Y2tldEFjY2VsZXJhdGVDb25maWd1cmF0aW9uT3V0cHV0IiwgIkdldEJ1Y2tldEFjY2VsZXJhdGVDb25maWd1cmF0aW9uUmVxdWVzdCIsICJHZXRCdWNrZXRBY2xPdXRwdXQiLCAiR2V0QnVja2V0QWNsUmVxdWVzdCIsICJHZXRCdWNrZXRBbmFseXRpY3NDb25maWd1cmF0aW9uT3V0cHV0IiwgIkdldEJ1Y2tldEFuYWx5dGljc0NvbmZpZ3VyYXRpb25SZXF1ZXN0IiwgIkdldEJ1Y2tldENvcnNPdXRwdXQiLCAiR2V0QnVja2V0Q29yc1JlcXVlc3QiLCAiR2V0QnVja2V0RW5jcnlwdGlvbk91dHB1dCIsICJTZXJ2ZXJTaWRlRW5jcnlwdGlvbkNvbmZpZ3VyYXRpb24iLCAiR2V0QnVja2V0RW5jcnlwdGlvblJlcXVlc3QiLCAiR2V0QnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvbk91dHB1dCIsICJJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9uIiwgIkdldEJ1Y2tldEludGVsbGlnZW50VGllcmluZ0NvbmZpZ3VyYXRpb25SZXF1ZXN0IiwgIkdldEJ1Y2tldEludmVudG9yeUNvbmZpZ3VyYXRpb25PdXRwdXQiLCAiSW52ZW50b3J5Q29uZmlndXJhdGlvbiIsICJHZXRCdWNrZXRJbnZlbnRvcnlDb25maWd1cmF0aW9uUmVxdWVzdCIsICJHZXRCdWNrZXRMaWZlY3ljbGVDb25maWd1cmF0aW9uT3V0cHV0IiwgIkdldEJ1Y2tldExpZmVjeWNsZUNvbmZpZ3VyYXRpb25SZXF1ZXN0IiwgIkdldEJ1Y2tldExvY2F0aW9uT3V0cHV0IiwgIkdldEJ1Y2tldExvY2F0aW9uUmVxdWVzdCIsICJHZXRCdWNrZXRMb2dnaW5nT3V0cHV0IiwgIkdldEJ1Y2tldExvZ2dpbmdSZXF1ZXN0IiwgIkdldEJ1Y2tldE1ldGFkYXRhQ29uZmlndXJhdGlvbk91dHB1dCIsICJHZXRCdWNrZXRNZXRhZGF0YUNvbmZpZ3VyYXRpb25SZXN1bHQiLCAiR2V0QnVja2V0TWV0YWRhdGFDb25maWd1cmF0aW9uUmVxdWVzdCIsICJNZXRhZGF0YUNvbmZpZ3VyYXRpb25SZXN1bHQiLCAiR2V0QnVja2V0TWV0YWRhdGFUYWJsZUNvbmZpZ3VyYXRpb25PdXRwdXQiLCAiR2V0QnVja2V0TWV0YWRhdGFUYWJsZUNvbmZpZ3VyYXRpb25SZXN1bHQiLCAiR2V0QnVja2V0TWV0YWRhdGFUYWJsZUNvbmZpZ3VyYXRpb25SZXF1ZXN0IiwgIk1ldGFkYXRhVGFibGVDb25maWd1cmF0aW9uUmVzdWx0IiwgIkdldEJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9uT3V0cHV0IiwgIk1ldHJpY3NDb25maWd1cmF0aW9uIiwgIkdldEJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9uUmVxdWVzdCIsICJHZXRCdWNrZXROb3RpZmljYXRpb25Db25maWd1cmF0aW9uUmVxdWVzdCIsICJHZXRCdWNrZXRPd25lcnNoaXBDb250cm9sc091dHB1dCIsICJPd25lcnNoaXBDb250cm9scyIsICJHZXRCdWNrZXRPd25lcnNoaXBDb250cm9sc1JlcXVlc3QiLCAiR2V0QnVja2V0UG9saWN5T3V0cHV0IiwgIkdldEJ1Y2tldFBvbGljeVJlcXVlc3QiLCAiR2V0QnVja2V0UG9saWN5U3RhdHVzT3V0cHV0IiwgIlBvbGljeVN0YXR1cyIsICJHZXRCdWNrZXRQb2xpY3lTdGF0dXNSZXF1ZXN0IiwgIkdldEJ1Y2tldFJlcGxpY2F0aW9uT3V0cHV0IiwgIlJlcGxpY2F0aW9uQ29uZmlndXJhdGlvbiIsICJHZXRCdWNrZXRSZXBsaWNhdGlvblJlcXVlc3QiLCAiR2V0QnVja2V0UmVxdWVzdFBheW1lbnRPdXRwdXQiLCAiR2V0QnVja2V0UmVxdWVzdFBheW1lbnRSZXF1ZXN0IiwgIkdldEJ1Y2tldFRhZ2dpbmdPdXRwdXQiLCAiR2V0QnVja2V0VGFnZ2luZ1JlcXVlc3QiLCAiR2V0QnVja2V0VmVyc2lvbmluZ091dHB1dCIsICJHZXRCdWNrZXRWZXJzaW9uaW5nUmVxdWVzdCIsICJHZXRCdWNrZXRXZWJzaXRlT3V0cHV0IiwgIlJlZGlyZWN0QWxsUmVxdWVzdHNUbyIsICJJbmRleERvY3VtZW50IiwgIlJvdXRpbmdSdWxlcyIsICJHZXRCdWNrZXRXZWJzaXRlUmVxdWVzdCIsICJHZXRPYmplY3RBY2xPdXRwdXQiLCAiR2V0T2JqZWN0QWNsUmVxdWVzdCIsICJHZXRPYmplY3RBdHRyaWJ1dGVzT3V0cHV0IiwgIkdldE9iamVjdEF0dHJpYnV0ZXNQYXJ0cyIsICJQYXJ0c0xpc3QiLCAiR2V0T2JqZWN0QXR0cmlidXRlc1JlcXVlc3QiLCAiR2V0T2JqZWN0TGVnYWxIb2xkT3V0cHV0IiwgIk9iamVjdExvY2tMZWdhbEhvbGQiLCAiR2V0T2JqZWN0TGVnYWxIb2xkUmVxdWVzdCIsICJHZXRPYmplY3RMb2NrQ29uZmlndXJhdGlvbk91dHB1dCIsICJPYmplY3RMb2NrQ29uZmlndXJhdGlvbiIsICJHZXRPYmplY3RMb2NrQ29uZmlndXJhdGlvblJlcXVlc3QiLCAiR2V0T2JqZWN0T3V0cHV0IiwgIkdldE9iamVjdFJlcXVlc3QiLCAiR2V0T2JqZWN0UmV0ZW50aW9uT3V0cHV0IiwgIk9iamVjdExvY2tSZXRlbnRpb24iLCAiR2V0T2JqZWN0UmV0ZW50aW9uUmVxdWVzdCIsICJHZXRPYmplY3RUYWdnaW5nT3V0cHV0IiwgIkdldE9iamVjdFRhZ2dpbmdSZXF1ZXN0IiwgIkdldE9iamVjdFRvcnJlbnRPdXRwdXQiLCAiR2V0T2JqZWN0VG9ycmVudFJlcXVlc3QiLCAiR2V0UHVibGljQWNjZXNzQmxvY2tPdXRwdXQiLCAiUHVibGljQWNjZXNzQmxvY2tDb25maWd1cmF0aW9uIiwgIkdldFB1YmxpY0FjY2Vzc0Jsb2NrUmVxdWVzdCIsICJHbGFjaWVySm9iUGFyYW1ldGVycyIsICJHcmFudCIsICJHcmFudGVlIiwgIkhlYWRCdWNrZXRPdXRwdXQiLCAiSGVhZEJ1Y2tldFJlcXVlc3QiLCAiSGVhZE9iamVjdE91dHB1dCIsICJIZWFkT2JqZWN0UmVxdWVzdCIsICJJbml0aWF0b3IiLCAiSW5wdXRTZXJpYWxpemF0aW9uIiwgIkpTT05JbnB1dCIsICJQYXJxdWV0SW5wdXQiLCAiSW50ZWxsaWdlbnRUaWVyaW5nQW5kT3BlcmF0b3IiLCAiSW50ZWxsaWdlbnRUaWVyaW5nRmlsdGVyIiwgIlRpZXJpbmdMaXN0IiwgIlRhZyIsICJJbnZlbnRvcnlEZXN0aW5hdGlvbiIsICJJbnZlbnRvcnlGaWx0ZXIiLCAiSW52ZW50b3J5T3B0aW9uYWxGaWVsZHMiLCAiSW52ZW50b3J5U2NoZWR1bGUiLCAiSW52ZW50b3J5UzNCdWNrZXREZXN0aW5hdGlvbiIsICJJbnZlbnRvcnlFbmNyeXB0aW9uIiwgIlNTRVMzIiwgIlNTRUtNUyIsICJJbnZlbnRvcnlUYWJsZUNvbmZpZ3VyYXRpb24iLCAiTWV0YWRhdGFUYWJsZUVuY3J5cHRpb25Db25maWd1cmF0aW9uIiwgIkludmVudG9yeVRhYmxlQ29uZmlndXJhdGlvblJlc3VsdCIsICJJbnZlbnRvcnlUYWJsZUNvbmZpZ3VyYXRpb25VcGRhdGVzIiwgIkpvdXJuYWxUYWJsZUNvbmZpZ3VyYXRpb24iLCAiUmVjb3JkRXhwaXJhdGlvbiIsICJKb3VybmFsVGFibGVDb25maWd1cmF0aW9uUmVzdWx0IiwgIkpvdXJuYWxUYWJsZUNvbmZpZ3VyYXRpb25VcGRhdGVzIiwgIkpTT05PdXRwdXQiLCAiTGFtYmRhRnVuY3Rpb25Db25maWd1cmF0aW9uIiwgIk5vdGlmaWNhdGlvbkNvbmZpZ3VyYXRpb25GaWx0ZXIiLCAiTGlmZWN5Y2xlRXhwaXJhdGlvbiIsICJMaWZlY3ljbGVSdWxlIiwgIkxpZmVjeWNsZVJ1bGVGaWx0ZXIiLCAiVHJhbnNpdGlvbkxpc3QiLCAiTm9uY3VycmVudFZlcnNpb25UcmFuc2l0aW9uTGlzdCIsICJOb25jdXJyZW50VmVyc2lvbkV4cGlyYXRpb24iLCAiTGlmZWN5Y2xlUnVsZUFuZE9wZXJhdG9yIiwgIkxpc3RCdWNrZXRBbmFseXRpY3NDb25maWd1cmF0aW9uc091dHB1dCIsICJBbmFseXRpY3NDb25maWd1cmF0aW9uTGlzdCIsICJMaXN0QnVja2V0QW5hbHl0aWNzQ29uZmlndXJhdGlvbnNSZXF1ZXN0IiwgIkxpc3RCdWNrZXRJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9uc091dHB1dCIsICJJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9uTGlzdCIsICJMaXN0QnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvbnNSZXF1ZXN0IiwgIkxpc3RCdWNrZXRJbnZlbnRvcnlDb25maWd1cmF0aW9uc091dHB1dCIsICJJbnZlbnRvcnlDb25maWd1cmF0aW9uTGlzdCIsICJMaXN0QnVja2V0SW52ZW50b3J5Q29uZmlndXJhdGlvbnNSZXF1ZXN0IiwgIkxpc3RCdWNrZXRNZXRyaWNzQ29uZmlndXJhdGlvbnNPdXRwdXQiLCAiTWV0cmljc0NvbmZpZ3VyYXRpb25MaXN0IiwgIkxpc3RCdWNrZXRNZXRyaWNzQ29uZmlndXJhdGlvbnNSZXF1ZXN0IiwgIkxpc3RCdWNrZXRzT3V0cHV0IiwgIkJ1Y2tldHMiLCAiTGlzdEJ1Y2tldHNSZXF1ZXN0IiwgIkxpc3REaXJlY3RvcnlCdWNrZXRzT3V0cHV0IiwgIkxpc3REaXJlY3RvcnlCdWNrZXRzUmVxdWVzdCIsICJMaXN0TXVsdGlwYXJ0VXBsb2Fkc091dHB1dCIsICJNdWx0aXBhcnRVcGxvYWRMaXN0IiwgIkNvbW1vblByZWZpeExpc3QiLCAiTGlzdE11bHRpcGFydFVwbG9hZHNSZXF1ZXN0IiwgIkxpc3RPYmplY3RzT3V0cHV0IiwgIk9iamVjdExpc3QiLCAiTGlzdE9iamVjdHNSZXF1ZXN0IiwgIkxpc3RPYmplY3RzVjJPdXRwdXQiLCAiTGlzdE9iamVjdHNWMlJlcXVlc3QiLCAiTGlzdE9iamVjdFZlcnNpb25zT3V0cHV0IiwgIk9iamVjdFZlcnNpb25MaXN0IiwgIkRlbGV0ZU1hcmtlcnMiLCAiTGlzdE9iamVjdFZlcnNpb25zUmVxdWVzdCIsICJMaXN0UGFydHNPdXRwdXQiLCAiUGFydHMiLCAiTGlzdFBhcnRzUmVxdWVzdCIsICJUYXJnZXRHcmFudHMiLCAiVGFyZ2V0T2JqZWN0S2V5Rm9ybWF0IiwgIk1ldGFkYXRhRW50cnkiLCAiUzNUYWJsZXNEZXN0aW5hdGlvbiIsICJTM1RhYmxlc0Rlc3RpbmF0aW9uUmVzdWx0IiwgIlJlcGxpY2F0aW9uVGltZVZhbHVlIiwgIk1ldHJpY3NBbmRPcGVyYXRvciIsICJNZXRyaWNzRmlsdGVyIiwgIk11bHRpcGFydFVwbG9hZCIsICJOb25jdXJyZW50VmVyc2lvblRyYW5zaXRpb24iLCAiTm90aWZpY2F0aW9uQ29uZmlndXJhdGlvbiIsICJUb3BpY0NvbmZpZ3VyYXRpb25MaXN0IiwgIlF1ZXVlQ29uZmlndXJhdGlvbkxpc3QiLCAiTGFtYmRhRnVuY3Rpb25Db25maWd1cmF0aW9uTGlzdCIsICJTM0tleUZpbHRlciIsICJfT2JqZWN0IiwgIlJlc3RvcmVTdGF0dXMiLCAiT2JqZWN0SWRlbnRpZmllciIsICJPYmplY3RMb2NrUnVsZSIsICJPYmplY3RQYXJ0IiwgIk9iamVjdFZlcnNpb24iLCAiT3V0cHV0TG9jYXRpb24iLCAiUzNMb2NhdGlvbiIsICJPdXRwdXRTZXJpYWxpemF0aW9uIiwgIk93bmVyc2hpcENvbnRyb2xzUnVsZXMiLCAiT3duZXJzaGlwQ29udHJvbHNSdWxlIiwgIlBhcnQiLCAiUGFydGl0aW9uZWRQcmVmaXgiLCAiUHJvZ3Jlc3MiLCAiUHJvZ3Jlc3NFdmVudCIsICJQdXRCdWNrZXRBYmFjUmVxdWVzdCIsICJQdXRCdWNrZXRBY2NlbGVyYXRlQ29uZmlndXJhdGlvblJlcXVlc3QiLCAiUHV0QnVja2V0QWNsUmVxdWVzdCIsICJQdXRCdWNrZXRBbmFseXRpY3NDb25maWd1cmF0aW9uUmVxdWVzdCIsICJQdXRCdWNrZXRDb3JzUmVxdWVzdCIsICJQdXRCdWNrZXRFbmNyeXB0aW9uUmVxdWVzdCIsICJQdXRCdWNrZXRJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9uUmVxdWVzdCIsICJQdXRCdWNrZXRJbnZlbnRvcnlDb25maWd1cmF0aW9uUmVxdWVzdCIsICJQdXRCdWNrZXRMaWZlY3ljbGVDb25maWd1cmF0aW9uT3V0cHV0IiwgIlB1dEJ1Y2tldExpZmVjeWNsZUNvbmZpZ3VyYXRpb25SZXF1ZXN0IiwgIlB1dEJ1Y2tldExvZ2dpbmdSZXF1ZXN0IiwgIlB1dEJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9uUmVxdWVzdCIsICJQdXRCdWNrZXROb3RpZmljYXRpb25Db25maWd1cmF0aW9uUmVxdWVzdCIsICJQdXRCdWNrZXRPd25lcnNoaXBDb250cm9sc1JlcXVlc3QiLCAiUHV0QnVja2V0UG9saWN5UmVxdWVzdCIsICJQdXRCdWNrZXRSZXBsaWNhdGlvblJlcXVlc3QiLCAiUHV0QnVja2V0UmVxdWVzdFBheW1lbnRSZXF1ZXN0IiwgIlJlcXVlc3RQYXltZW50Q29uZmlndXJhdGlvbiIsICJQdXRCdWNrZXRUYWdnaW5nUmVxdWVzdCIsICJUYWdnaW5nIiwgIlB1dEJ1Y2tldFZlcnNpb25pbmdSZXF1ZXN0IiwgIlZlcnNpb25pbmdDb25maWd1cmF0aW9uIiwgIlB1dEJ1Y2tldFdlYnNpdGVSZXF1ZXN0IiwgIldlYnNpdGVDb25maWd1cmF0aW9uIiwgIlB1dE9iamVjdEFjbE91dHB1dCIsICJQdXRPYmplY3RBY2xSZXF1ZXN0IiwgIlB1dE9iamVjdExlZ2FsSG9sZE91dHB1dCIsICJQdXRPYmplY3RMZWdhbEhvbGRSZXF1ZXN0IiwgIlB1dE9iamVjdExvY2tDb25maWd1cmF0aW9uT3V0cHV0IiwgIlB1dE9iamVjdExvY2tDb25maWd1cmF0aW9uUmVxdWVzdCIsICJQdXRPYmplY3RPdXRwdXQiLCAiUHV0T2JqZWN0UmVxdWVzdCIsICJQdXRPYmplY3RSZXRlbnRpb25PdXRwdXQiLCAiUHV0T2JqZWN0UmV0ZW50aW9uUmVxdWVzdCIsICJQdXRPYmplY3RUYWdnaW5nT3V0cHV0IiwgIlB1dE9iamVjdFRhZ2dpbmdSZXF1ZXN0IiwgIlB1dFB1YmxpY0FjY2Vzc0Jsb2NrUmVxdWVzdCIsICJRdWV1ZUNvbmZpZ3VyYXRpb24iLCAiUmVjb3Jkc0V2ZW50IiwgIlJlZGlyZWN0IiwgIlJlbmFtZU9iamVjdE91dHB1dCIsICJSZW5hbWVPYmplY3RSZXF1ZXN0IiwgIlJlcGxpY2FNb2RpZmljYXRpb25zIiwgIlJlcGxpY2F0aW9uUnVsZXMiLCAiUmVwbGljYXRpb25SdWxlIiwgIlJlcGxpY2F0aW9uUnVsZUZpbHRlciIsICJTb3VyY2VTZWxlY3Rpb25Dcml0ZXJpYSIsICJSZXBsaWNhdGlvblJ1bGVBbmRPcGVyYXRvciIsICJSZXF1ZXN0UHJvZ3Jlc3MiLCAiUmVzdG9yZU9iamVjdE91dHB1dCIsICJSZXN0b3JlT2JqZWN0UmVxdWVzdCIsICJSZXN0b3JlUmVxdWVzdCIsICJTZWxlY3RQYXJhbWV0ZXJzIiwgIlJvdXRpbmdSdWxlIiwgIkZpbHRlclJ1bGVMaXN0IiwgIlVzZXJNZXRhZGF0YSIsICJTY2FuUmFuZ2UiLCAiU2VsZWN0T2JqZWN0Q29udGVudE91dHB1dCIsICJTZWxlY3RPYmplY3RDb250ZW50RXZlbnRTdHJlYW0iLCAiU2VsZWN0T2JqZWN0Q29udGVudFJlcXVlc3QiLCAiU2VydmVyU2lkZUVuY3J5cHRpb25CeURlZmF1bHQiLCAiU2VydmVyU2lkZUVuY3J5cHRpb25SdWxlcyIsICJTZXJ2ZXJTaWRlRW5jcnlwdGlvblJ1bGUiLCAiU2ltcGxlUHJlZml4IiwgIlNzZUttc0VuY3J5cHRlZE9iamVjdHMiLCAiU3RhdHMiLCAiU3RhdHNFdmVudCIsICJTdG9yYWdlQ2xhc3NBbmFseXNpc0RhdGFFeHBvcnQiLCAiVGFyZ2V0R3JhbnQiLCAiVGllcmluZyIsICJUb3BpY0NvbmZpZ3VyYXRpb24iLCAiVHJhbnNpdGlvbiIsICJVcGRhdGVCdWNrZXRNZXRhZGF0YUludmVudG9yeVRhYmxlQ29uZmlndXJhdGlvblJlcXVlc3QiLCAiVXBkYXRlQnVja2V0TWV0YWRhdGFKb3VybmFsVGFibGVDb25maWd1cmF0aW9uUmVxdWVzdCIsICJVcGxvYWRQYXJ0Q29weU91dHB1dCIsICJVcGxvYWRQYXJ0Q29weVJlcXVlc3QiLCAiVXBsb2FkUGFydE91dHB1dCIsICJVcGxvYWRQYXJ0UmVxdWVzdCIsICJXcml0ZUdldE9iamVjdFJlc3BvbnNlUmVxdWVzdCIsICJfX1VuaXQiLCAiQWJvcnRNdWx0aXBhcnRVcGxvYWQiLCAiQ29tcGxldGVNdWx0aXBhcnRVcGxvYWQiLCAiQ29weU9iamVjdCIsICJDcmVhdGVCdWNrZXQiLCAiQ3JlYXRlQnVja2V0TWV0YWRhdGFDb25maWd1cmF0aW9uIiwgIkNyZWF0ZUJ1Y2tldE1ldGFkYXRhVGFibGVDb25maWd1cmF0aW9uIiwgIkNyZWF0ZU11bHRpcGFydFVwbG9hZCIsICJDcmVhdGVTZXNzaW9uIiwgIkRlbGV0ZUJ1Y2tldCIsICJEZWxldGVCdWNrZXRBbmFseXRpY3NDb25maWd1cmF0aW9uIiwgIkRlbGV0ZUJ1Y2tldENvcnMiLCAiRGVsZXRlQnVja2V0RW5jcnlwdGlvbiIsICJEZWxldGVCdWNrZXRJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9uIiwgIkRlbGV0ZUJ1Y2tldEludmVudG9yeUNvbmZpZ3VyYXRpb24iLCAiRGVsZXRlQnVja2V0TGlmZWN5Y2xlIiwgIkRlbGV0ZUJ1Y2tldE1ldGFkYXRhQ29uZmlndXJhdGlvbiIsICJEZWxldGVCdWNrZXRNZXRhZGF0YVRhYmxlQ29uZmlndXJhdGlvbiIsICJEZWxldGVCdWNrZXRNZXRyaWNzQ29uZmlndXJhdGlvbiIsICJEZWxldGVCdWNrZXRPd25lcnNoaXBDb250cm9scyIsICJEZWxldGVCdWNrZXRQb2xpY3kiLCAiRGVsZXRlQnVja2V0UmVwbGljYXRpb24iLCAiRGVsZXRlQnVja2V0VGFnZ2luZyIsICJEZWxldGVCdWNrZXRXZWJzaXRlIiwgIkRlbGV0ZU9iamVjdCIsICJEZWxldGVPYmplY3RzIiwgIkRlbGV0ZU9iamVjdFRhZ2dpbmciLCAiRGVsZXRlUHVibGljQWNjZXNzQmxvY2siLCAiR2V0QnVja2V0QWJhYyIsICJHZXRCdWNrZXRBY2NlbGVyYXRlQ29uZmlndXJhdGlvbiIsICJHZXRCdWNrZXRBY2wiLCAiR2V0QnVja2V0QW5hbHl0aWNzQ29uZmlndXJhdGlvbiIsICJHZXRCdWNrZXRDb3JzIiwgIkdldEJ1Y2tldEVuY3J5cHRpb24iLCAiR2V0QnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvbiIsICJHZXRCdWNrZXRJbnZlbnRvcnlDb25maWd1cmF0aW9uIiwgIkdldEJ1Y2tldExpZmVjeWNsZUNvbmZpZ3VyYXRpb24iLCAiR2V0QnVja2V0TG9jYXRpb24iLCAiR2V0QnVja2V0TG9nZ2luZyIsICJHZXRCdWNrZXRNZXRhZGF0YUNvbmZpZ3VyYXRpb24iLCAiR2V0QnVja2V0TWV0YWRhdGFUYWJsZUNvbmZpZ3VyYXRpb24iLCAiR2V0QnVja2V0TWV0cmljc0NvbmZpZ3VyYXRpb24iLCAiR2V0QnVja2V0Tm90aWZpY2F0aW9uQ29uZmlndXJhdGlvbiIsICJHZXRCdWNrZXRPd25lcnNoaXBDb250cm9scyIsICJHZXRCdWNrZXRQb2xpY3kiLCAiR2V0QnVja2V0UG9saWN5U3RhdHVzIiwgIkdldEJ1Y2tldFJlcGxpY2F0aW9uIiwgIkdldEJ1Y2tldFJlcXVlc3RQYXltZW50IiwgIkdldEJ1Y2tldFRhZ2dpbmciLCAiR2V0QnVja2V0VmVyc2lvbmluZyIsICJHZXRCdWNrZXRXZWJzaXRlIiwgIkdldE9iamVjdCIsICJHZXRPYmplY3RBY2wiLCAiR2V0T2JqZWN0QXR0cmlidXRlcyIsICJHZXRPYmplY3RMZWdhbEhvbGQiLCAiR2V0T2JqZWN0TG9ja0NvbmZpZ3VyYXRpb24iLCAiR2V0T2JqZWN0UmV0ZW50aW9uIiwgIkdldE9iamVjdFRhZ2dpbmciLCAiR2V0T2JqZWN0VG9ycmVudCIsICJHZXRQdWJsaWNBY2Nlc3NCbG9jayIsICJIZWFkQnVja2V0IiwgIkhlYWRPYmplY3QiLCAiTGlzdEJ1Y2tldEFuYWx5dGljc0NvbmZpZ3VyYXRpb25zIiwgIkxpc3RCdWNrZXRJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9ucyIsICJMaXN0QnVja2V0SW52ZW50b3J5Q29uZmlndXJhdGlvbnMiLCAiTGlzdEJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9ucyIsICJMaXN0QnVja2V0cyIsICJMaXN0RGlyZWN0b3J5QnVja2V0cyIsICJMaXN0TXVsdGlwYXJ0VXBsb2FkcyIsICJMaXN0T2JqZWN0cyIsICJMaXN0T2JqZWN0c1YyIiwgIkxpc3RPYmplY3RWZXJzaW9ucyIsICJMaXN0UGFydHMiLCAiUHV0QnVja2V0QWJhYyIsICJQdXRCdWNrZXRBY2NlbGVyYXRlQ29uZmlndXJhdGlvbiIsICJQdXRCdWNrZXRBY2wiLCAiUHV0QnVja2V0QW5hbHl0aWNzQ29uZmlndXJhdGlvbiIsICJQdXRCdWNrZXRDb3JzIiwgIlB1dEJ1Y2tldEVuY3J5cHRpb24iLCAiUHV0QnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvbiIsICJQdXRCdWNrZXRJbnZlbnRvcnlDb25maWd1cmF0aW9uIiwgIlB1dEJ1Y2tldExpZmVjeWNsZUNvbmZpZ3VyYXRpb24iLCAiUHV0QnVja2V0TG9nZ2luZyIsICJQdXRCdWNrZXRNZXRyaWNzQ29uZmlndXJhdGlvbiIsICJQdXRCdWNrZXROb3RpZmljYXRpb25Db25maWd1cmF0aW9uIiwgIlB1dEJ1Y2tldE93bmVyc2hpcENvbnRyb2xzIiwgIlB1dEJ1Y2tldFBvbGljeSIsICJQdXRCdWNrZXRSZXBsaWNhdGlvbiIsICJQdXRCdWNrZXRSZXF1ZXN0UGF5bWVudCIsICJQdXRCdWNrZXRUYWdnaW5nIiwgIlB1dEJ1Y2tldFZlcnNpb25pbmciLCAiUHV0QnVja2V0V2Vic2l0ZSIsICJQdXRPYmplY3QiLCAiUHV0T2JqZWN0QWNsIiwgIlB1dE9iamVjdExlZ2FsSG9sZCIsICJQdXRPYmplY3RMb2NrQ29uZmlndXJhdGlvbiIsICJQdXRPYmplY3RSZXRlbnRpb24iLCAiUHV0T2JqZWN0VGFnZ2luZyIsICJQdXRQdWJsaWNBY2Nlc3NCbG9jayIsICJSZW5hbWVPYmplY3QiLCAiUmVzdG9yZU9iamVjdCIsICJTZWxlY3RPYmplY3RDb250ZW50IiwgIlVwZGF0ZUJ1Y2tldE1ldGFkYXRhSW52ZW50b3J5VGFibGVDb25maWd1cmF0aW9uIiwgIlVwZGF0ZUJ1Y2tldE1ldGFkYXRhSm91cm5hbFRhYmxlQ29uZmlndXJhdGlvbiIsICJVcGxvYWRQYXJ0IiwgIlVwbG9hZFBhcnRDb3B5IiwgIldyaXRlR2V0T2JqZWN0UmVzcG9uc2UiLCAiQ3JlYXRlU2Vzc2lvbkNvbW1hbmQiLCAiQ29tbWFuZCIsICJjcyIsICJjb25maWciLCAibyIsICJnZXRIdHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24iLCAiX2h0dHBBdXRoU2NoZW1lcyIsICJfaHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJfY3JlZGVudGlhbHMiLCAiaHR0cEF1dGhTY2hlbWUiLCAiaW5kZXgiLCAic2NoZW1lIiwgImNyZWRlbnRpYWxzIiwgInJlc29sdmVIdHRwQXV0aFJ1bnRpbWVDb25maWciLCAicmVzb2x2ZVJ1bnRpbWVFeHRlbnNpb25zIiwgImV4dGVuc2lvbnMiLCAiZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiIsICJleHRlbnNpb24iLCAiUzNDbGllbnQiLCAiY29uZmlndXJhdGlvbiIsICJfY29uZmlnXzAiLCAiX2NvbmZpZ18xIiwgIl9jb25maWdfMiIsICJfY29uZmlnXzMiLCAiX2NvbmZpZ180IiwgIl9jb25maWdfNSIsICJfY29uZmlnXzYiLCAiX2NvbmZpZ183IiwgIl9jb25maWdfOCIsICJfY29uZmlnXzkiLCAiX2NvbmZpZ18xMCIsICJfY29uZmlnXzExIiwgIkFib3J0TXVsdGlwYXJ0VXBsb2FkQ29tbWFuZCIsICJDb21wbGV0ZU11bHRpcGFydFVwbG9hZENvbW1hbmQiLCAiQ29weU9iamVjdENvbW1hbmQiLCAiQ3JlYXRlQnVja2V0Q29tbWFuZCIsICJDcmVhdGVCdWNrZXRNZXRhZGF0YUNvbmZpZ3VyYXRpb25Db21tYW5kIiwgIkNyZWF0ZUJ1Y2tldE1ldGFkYXRhVGFibGVDb25maWd1cmF0aW9uQ29tbWFuZCIsICJDcmVhdGVNdWx0aXBhcnRVcGxvYWRDb21tYW5kIiwgIkRlbGV0ZUJ1Y2tldEFuYWx5dGljc0NvbmZpZ3VyYXRpb25Db21tYW5kIiwgIkRlbGV0ZUJ1Y2tldENvbW1hbmQiLCAiRGVsZXRlQnVja2V0Q29yc0NvbW1hbmQiLCAiRGVsZXRlQnVja2V0RW5jcnlwdGlvbkNvbW1hbmQiLCAiRGVsZXRlQnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvbkNvbW1hbmQiLCAiRGVsZXRlQnVja2V0SW52ZW50b3J5Q29uZmlndXJhdGlvbkNvbW1hbmQiLCAiRGVsZXRlQnVja2V0TGlmZWN5Y2xlQ29tbWFuZCIsICJEZWxldGVCdWNrZXRNZXRhZGF0YUNvbmZpZ3VyYXRpb25Db21tYW5kIiwgIkRlbGV0ZUJ1Y2tldE1ldGFkYXRhVGFibGVDb25maWd1cmF0aW9uQ29tbWFuZCIsICJEZWxldGVCdWNrZXRNZXRyaWNzQ29uZmlndXJhdGlvbkNvbW1hbmQiLCAiRGVsZXRlQnVja2V0T3duZXJzaGlwQ29udHJvbHNDb21tYW5kIiwgIkRlbGV0ZUJ1Y2tldFBvbGljeUNvbW1hbmQiLCAiRGVsZXRlQnVja2V0UmVwbGljYXRpb25Db21tYW5kIiwgIkRlbGV0ZUJ1Y2tldFRhZ2dpbmdDb21tYW5kIiwgIkRlbGV0ZUJ1Y2tldFdlYnNpdGVDb21tYW5kIiwgIkRlbGV0ZU9iamVjdENvbW1hbmQiLCAiRGVsZXRlT2JqZWN0c0NvbW1hbmQiLCAiRGVsZXRlT2JqZWN0VGFnZ2luZ0NvbW1hbmQiLCAiRGVsZXRlUHVibGljQWNjZXNzQmxvY2tDb21tYW5kIiwgIkdldEJ1Y2tldEFiYWNDb21tYW5kIiwgIkdldEJ1Y2tldEFjY2VsZXJhdGVDb25maWd1cmF0aW9uQ29tbWFuZCIsICJHZXRCdWNrZXRBY2xDb21tYW5kIiwgIkdldEJ1Y2tldEFuYWx5dGljc0NvbmZpZ3VyYXRpb25Db21tYW5kIiwgIkdldEJ1Y2tldENvcnNDb21tYW5kIiwgIkdldEJ1Y2tldEVuY3J5cHRpb25Db21tYW5kIiwgIkdldEJ1Y2tldEludGVsbGlnZW50VGllcmluZ0NvbmZpZ3VyYXRpb25Db21tYW5kIiwgIkdldEJ1Y2tldEludmVudG9yeUNvbmZpZ3VyYXRpb25Db21tYW5kIiwgIkdldEJ1Y2tldExpZmVjeWNsZUNvbmZpZ3VyYXRpb25Db21tYW5kIiwgIkdldEJ1Y2tldExvY2F0aW9uQ29tbWFuZCIsICJHZXRCdWNrZXRMb2dnaW5nQ29tbWFuZCIsICJHZXRCdWNrZXRNZXRhZGF0YUNvbmZpZ3VyYXRpb25Db21tYW5kIiwgIkdldEJ1Y2tldE1ldGFkYXRhVGFibGVDb25maWd1cmF0aW9uQ29tbWFuZCIsICJHZXRCdWNrZXRNZXRyaWNzQ29uZmlndXJhdGlvbkNvbW1hbmQiLCAiR2V0QnVja2V0Tm90aWZpY2F0aW9uQ29uZmlndXJhdGlvbkNvbW1hbmQiLCAiR2V0QnVja2V0T3duZXJzaGlwQ29udHJvbHNDb21tYW5kIiwgIkdldEJ1Y2tldFBvbGljeUNvbW1hbmQiLCAiR2V0QnVja2V0UG9saWN5U3RhdHVzQ29tbWFuZCIsICJHZXRCdWNrZXRSZXBsaWNhdGlvbkNvbW1hbmQiLCAiR2V0QnVja2V0UmVxdWVzdFBheW1lbnRDb21tYW5kIiwgIkdldEJ1Y2tldFRhZ2dpbmdDb21tYW5kIiwgIkdldEJ1Y2tldFZlcnNpb25pbmdDb21tYW5kIiwgIkdldEJ1Y2tldFdlYnNpdGVDb21tYW5kIiwgIkdldE9iamVjdEFjbENvbW1hbmQiLCAiR2V0T2JqZWN0QXR0cmlidXRlc0NvbW1hbmQiLCAiR2V0T2JqZWN0Q29tbWFuZCIsICJHZXRPYmplY3RMZWdhbEhvbGRDb21tYW5kIiwgIkdldE9iamVjdExvY2tDb25maWd1cmF0aW9uQ29tbWFuZCIsICJHZXRPYmplY3RSZXRlbnRpb25Db21tYW5kIiwgIkdldE9iamVjdFRhZ2dpbmdDb21tYW5kIiwgIkdldE9iamVjdFRvcnJlbnRDb21tYW5kIiwgIkdldFB1YmxpY0FjY2Vzc0Jsb2NrQ29tbWFuZCIsICJIZWFkQnVja2V0Q29tbWFuZCIsICJIZWFkT2JqZWN0Q29tbWFuZCIsICJMaXN0QnVja2V0QW5hbHl0aWNzQ29uZmlndXJhdGlvbnNDb21tYW5kIiwgIkxpc3RCdWNrZXRJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9uc0NvbW1hbmQiLCAiTGlzdEJ1Y2tldEludmVudG9yeUNvbmZpZ3VyYXRpb25zQ29tbWFuZCIsICJMaXN0QnVja2V0TWV0cmljc0NvbmZpZ3VyYXRpb25zQ29tbWFuZCIsICJMaXN0QnVja2V0c0NvbW1hbmQiLCAiTGlzdERpcmVjdG9yeUJ1Y2tldHNDb21tYW5kIiwgIkxpc3RNdWx0aXBhcnRVcGxvYWRzQ29tbWFuZCIsICJMaXN0T2JqZWN0c0NvbW1hbmQiLCAiTGlzdE9iamVjdHNWMkNvbW1hbmQiLCAiTGlzdE9iamVjdFZlcnNpb25zQ29tbWFuZCIsICJMaXN0UGFydHNDb21tYW5kIiwgIlB1dEJ1Y2tldEFiYWNDb21tYW5kIiwgIlB1dEJ1Y2tldEFjY2VsZXJhdGVDb25maWd1cmF0aW9uQ29tbWFuZCIsICJQdXRCdWNrZXRBY2xDb21tYW5kIiwgIlB1dEJ1Y2tldEFuYWx5dGljc0NvbmZpZ3VyYXRpb25Db21tYW5kIiwgIlB1dEJ1Y2tldENvcnNDb21tYW5kIiwgIlB1dEJ1Y2tldEVuY3J5cHRpb25Db21tYW5kIiwgIlB1dEJ1Y2tldEludGVsbGlnZW50VGllcmluZ0NvbmZpZ3VyYXRpb25Db21tYW5kIiwgIlB1dEJ1Y2tldEludmVudG9yeUNvbmZpZ3VyYXRpb25Db21tYW5kIiwgIlB1dEJ1Y2tldExpZmVjeWNsZUNvbmZpZ3VyYXRpb25Db21tYW5kIiwgIlB1dEJ1Y2tldExvZ2dpbmdDb21tYW5kIiwgIlB1dEJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9uQ29tbWFuZCIsICJQdXRCdWNrZXROb3RpZmljYXRpb25Db25maWd1cmF0aW9uQ29tbWFuZCIsICJQdXRCdWNrZXRPd25lcnNoaXBDb250cm9sc0NvbW1hbmQiLCAiUHV0QnVja2V0UG9saWN5Q29tbWFuZCIsICJQdXRCdWNrZXRSZXBsaWNhdGlvbkNvbW1hbmQiLCAiUHV0QnVja2V0UmVxdWVzdFBheW1lbnRDb21tYW5kIiwgIlB1dEJ1Y2tldFRhZ2dpbmdDb21tYW5kIiwgIlB1dEJ1Y2tldFZlcnNpb25pbmdDb21tYW5kIiwgIlB1dEJ1Y2tldFdlYnNpdGVDb21tYW5kIiwgIlB1dE9iamVjdEFjbENvbW1hbmQiLCAiUHV0T2JqZWN0Q29tbWFuZCIsICJQdXRPYmplY3RMZWdhbEhvbGRDb21tYW5kIiwgIlB1dE9iamVjdExvY2tDb25maWd1cmF0aW9uQ29tbWFuZCIsICJQdXRPYmplY3RSZXRlbnRpb25Db21tYW5kIiwgIlB1dE9iamVjdFRhZ2dpbmdDb21tYW5kIiwgIlB1dFB1YmxpY0FjY2Vzc0Jsb2NrQ29tbWFuZCIsICJSZW5hbWVPYmplY3RDb21tYW5kIiwgIlJlc3RvcmVPYmplY3RDb21tYW5kIiwgIlNlbGVjdE9iamVjdENvbnRlbnRDb21tYW5kIiwgIlVwZGF0ZUJ1Y2tldE1ldGFkYXRhSW52ZW50b3J5VGFibGVDb25maWd1cmF0aW9uQ29tbWFuZCIsICJVcGRhdGVCdWNrZXRNZXRhZGF0YUpvdXJuYWxUYWJsZUNvbmZpZ3VyYXRpb25Db21tYW5kIiwgIlVwbG9hZFBhcnRDb21tYW5kIiwgIlVwbG9hZFBhcnRDb3B5Q29tbWFuZCIsICJXcml0ZUdldE9iamVjdFJlc3BvbnNlQ29tbWFuZCIsICJjb21tYW5kcyIsICJTMyIsICJwYWdpbmF0ZUxpc3RCdWNrZXRzIiwgInBhZ2luYXRlTGlzdERpcmVjdG9yeUJ1Y2tldHMiLCAicGFnaW5hdGVMaXN0T2JqZWN0c1YyIiwgInBhZ2luYXRlTGlzdFBhcnRzIiwgImNoZWNrU3RhdGUkMyIsICJjbGllbnQiLCAiaW5wdXQiLCAicmVhc29uIiwgImV4Y2VwdGlvbiIsICJ3YWl0Rm9yQnVja2V0RXhpc3RzIiwgInBhcmFtcyIsICJzZXJ2aWNlRGVmYXVsdHMiLCAid2FpdFVudGlsQnVja2V0RXhpc3RzIiwgInJlc3VsdCIsICJjaGVja1N0YXRlJDIiLCAid2FpdEZvckJ1Y2tldE5vdEV4aXN0cyIsICJ3YWl0VW50aWxCdWNrZXROb3RFeGlzdHMiLCAiY2hlY2tTdGF0ZSQxIiwgIndhaXRGb3JPYmplY3RFeGlzdHMiLCAid2FpdFVudGlsT2JqZWN0RXhpc3RzIiwgImNoZWNrU3RhdGUiLCAid2FpdEZvck9iamVjdE5vdEV4aXN0cyIsICJ3YWl0VW50aWxPYmplY3ROb3RFeGlzdHMiLCAiQnVja2V0QWJhY1N0YXR1cyIsICJSZXF1ZXN0Q2hhcmdlZCIsICJSZXF1ZXN0UGF5ZXIiLCAiQnVja2V0QWNjZWxlcmF0ZVN0YXR1cyIsICJUeXBlIiwgIlBlcm1pc3Npb24iLCAiT3duZXJPdmVycmlkZSIsICJDaGVja3N1bVR5cGUiLCAiU2VydmVyU2lkZUVuY3J5cHRpb24iLCAiT2JqZWN0Q2FubmVkQUNMIiwgIkNoZWNrc3VtQWxnb3JpdGhtIiwgIk1ldGFkYXRhRGlyZWN0aXZlIiwgIk9iamVjdExvY2tMZWdhbEhvbGRTdGF0dXMiLCAiT2JqZWN0TG9ja01vZGUiLCAiU3RvcmFnZUNsYXNzIiwgIlRhZ2dpbmdEaXJlY3RpdmUiLCAiQnVja2V0Q2FubmVkQUNMIiwgIkRhdGFSZWR1bmRhbmN5IiwgIkJ1Y2tldFR5cGUiLCAiTG9jYXRpb25UeXBlIiwgIkJ1Y2tldExvY2F0aW9uQ29uc3RyYWludCIsICJPYmplY3RPd25lcnNoaXAiLCAiSW52ZW50b3J5Q29uZmlndXJhdGlvblN0YXRlIiwgIlRhYmxlU3NlQWxnb3JpdGhtIiwgIkV4cGlyYXRpb25TdGF0ZSIsICJTZXNzaW9uTW9kZSIsICJBbmFseXRpY3NTM0V4cG9ydEZpbGVGb3JtYXQiLCAiU3RvcmFnZUNsYXNzQW5hbHlzaXNTY2hlbWFWZXJzaW9uIiwgIkVuY3J5cHRpb25UeXBlIiwgIkludGVsbGlnZW50VGllcmluZ1N0YXR1cyIsICJJbnRlbGxpZ2VudFRpZXJpbmdBY2Nlc3NUaWVyIiwgIkludmVudG9yeUZvcm1hdCIsICJJbnZlbnRvcnlJbmNsdWRlZE9iamVjdFZlcnNpb25zIiwgIkludmVudG9yeU9wdGlvbmFsRmllbGQiLCAiSW52ZW50b3J5RnJlcXVlbmN5IiwgIlRyYW5zaXRpb25TdG9yYWdlQ2xhc3MiLCAiRXhwaXJhdGlvblN0YXR1cyIsICJUcmFuc2l0aW9uRGVmYXVsdE1pbmltdW1PYmplY3RTaXplIiwgIkJ1Y2tldExvZ3NQZXJtaXNzaW9uIiwgIlBhcnRpdGlvbkRhdGVTb3VyY2UiLCAiUzNUYWJsZXNCdWNrZXRUeXBlIiwgIkV2ZW50IiwgIkZpbHRlclJ1bGVOYW1lIiwgIkRlbGV0ZU1hcmtlclJlcGxpY2F0aW9uU3RhdHVzIiwgIk1ldHJpY3NTdGF0dXMiLCAiUmVwbGljYXRpb25UaW1lU3RhdHVzIiwgIkV4aXN0aW5nT2JqZWN0UmVwbGljYXRpb25TdGF0dXMiLCAiUmVwbGljYU1vZGlmaWNhdGlvbnNTdGF0dXMiLCAiU3NlS21zRW5jcnlwdGVkT2JqZWN0c1N0YXR1cyIsICJSZXBsaWNhdGlvblJ1bGVTdGF0dXMiLCAiUGF5ZXIiLCAiTUZBRGVsZXRlU3RhdHVzIiwgIkJ1Y2tldFZlcnNpb25pbmdTdGF0dXMiLCAiUHJvdG9jb2wiLCAiUmVwbGljYXRpb25TdGF0dXMiLCAiQ2hlY2tzdW1Nb2RlIiwgIk9iamVjdEF0dHJpYnV0ZXMiLCAiT2JqZWN0TG9ja0VuYWJsZWQiLCAiT2JqZWN0TG9ja1JldGVudGlvbk1vZGUiLCAiQXJjaGl2ZVN0YXR1cyIsICJFbmNvZGluZ1R5cGUiLCAiT2JqZWN0U3RvcmFnZUNsYXNzIiwgIk9wdGlvbmFsT2JqZWN0QXR0cmlidXRlcyIsICJPYmplY3RWZXJzaW9uU3RvcmFnZUNsYXNzIiwgIk1GQURlbGV0ZSIsICJUaWVyIiwgIkV4cHJlc3Npb25UeXBlIiwgIkNvbXByZXNzaW9uVHlwZSIsICJGaWxlSGVhZGVySW5mbyIsICJKU09OVHlwZSIsICJRdW90ZUZpZWxkcyIsICJSZXN0b3JlUmVxdWVzdFR5cGUiLCAicmVxdWlyZV9odHRwQXV0aFNjaGVtZVByb3ZpZGVyIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJjb3JlXzEiLCAidXRpbF9taWRkbGV3YXJlXzEiLCAiZGVmYXVsdENsb3VkV2F0Y2hMb2dzSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIiLCAiY29uZmlnIiwgImNvbnRleHQiLCAiaW5wdXQiLCAiY3JlYXRlQXdzQXV0aFNpZ3Y0SHR0cEF1dGhPcHRpb24iLCAiYXV0aFBhcmFtZXRlcnMiLCAiZGVmYXVsdENsb3VkV2F0Y2hMb2dzSHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJvcHRpb25zIiwgInJlc29sdmVIdHRwQXV0aFNjaGVtZUNvbmZpZyIsICJjb25maWdfMCIsICJyZXF1aXJlX3BhY2thZ2UiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJyZXF1aXJlX3J1bGVzZXQiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgInUiLCAidiIsICJ3IiwgIngiLCAiYSIsICJiIiwgImMiLCAiZCIsICJlIiwgImYiLCAiZyIsICJoIiwgImkiLCAiaiIsICJrIiwgImwiLCAibSIsICJuIiwgIm8iLCAicCIsICJxIiwgInIiLCAicyIsICJ0IiwgIl9kYXRhIiwgInJlcXVpcmVfZW5kcG9pbnRSZXNvbHZlciIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAidXRpbF9lbmRwb2ludHNfMSIsICJ1dGlsX2VuZHBvaW50c18yIiwgInJ1bGVzZXRfMSIsICJjYWNoZSIsICJkZWZhdWx0RW5kcG9pbnRSZXNvbHZlciIsICJlbmRwb2ludFBhcmFtcyIsICJjb250ZXh0IiwgInJlcXVpcmVfcnVudGltZUNvbmZpZ19zaGFyZWQiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgImNvcmVfMSIsICJwcm90b2NvbHNfMSIsICJzbWl0aHlfY2xpZW50XzEiLCAidXJsX3BhcnNlcl8xIiwgInV0aWxfYmFzZTY0XzEiLCAidXRpbF91dGY4XzEiLCAiaHR0cEF1dGhTY2hlbWVQcm92aWRlcl8xIiwgImVuZHBvaW50UmVzb2x2ZXJfMSIsICJnZXRSdW50aW1lQ29uZmlnIiwgImNvbmZpZyIsICJpcGMiLCAicmVxdWlyZV9ydW50aW1lQ29uZmlnIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJ0c2xpYl8xIiwgInBhY2thZ2VfanNvbl8xIiwgImNvcmVfMSIsICJjcmVkZW50aWFsX3Byb3ZpZGVyX25vZGVfMSIsICJ1dGlsX3VzZXJfYWdlbnRfbm9kZV8xIiwgImNvbmZpZ19yZXNvbHZlcl8xIiwgImV2ZW50c3RyZWFtX3NlcmRlX25vZGVfMSIsICJoYXNoX25vZGVfMSIsICJtaWRkbGV3YXJlX3JldHJ5XzEiLCAibm9kZV9jb25maWdfcHJvdmlkZXJfMSIsICJub2RlX2h0dHBfaGFuZGxlcl8xIiwgInNtaXRoeV9jbGllbnRfMSIsICJ1dGlsX2JvZHlfbGVuZ3RoX25vZGVfMSIsICJ1dGlsX2RlZmF1bHRzX21vZGVfbm9kZV8xIiwgInV0aWxfcmV0cnlfMSIsICJydW50aW1lQ29uZmlnX3NoYXJlZF8xIiwgImdldFJ1bnRpbWVDb25maWciLCAiY29uZmlnIiwgImRlZmF1bHRzTW9kZSIsICJkZWZhdWx0Q29uZmlnUHJvdmlkZXIiLCAiY2xpZW50U2hhcmVkVmFsdWVzIiwgImxvYWRlckNvbmZpZyIsICJyZXF1aXJlX2Rpc3RfY2pzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJtaWRkbGV3YXJlSG9zdEhlYWRlciIsICJtaWRkbGV3YXJlTG9nZ2VyIiwgIm1pZGRsZXdhcmVSZWN1cnNpb25EZXRlY3Rpb24iLCAibWlkZGxld2FyZVVzZXJBZ2VudCIsICJjb25maWdSZXNvbHZlciIsICJjb3JlIiwgInNjaGVtYSIsICJldmVudHN0cmVhbVNlcmRlQ29uZmlnUmVzb2x2ZXIiLCAibWlkZGxld2FyZUNvbnRlbnRMZW5ndGgiLCAibWlkZGxld2FyZUVuZHBvaW50IiwgIm1pZGRsZXdhcmVSZXRyeSIsICJzbWl0aHlDbGllbnQiLCAiaHR0cEF1dGhTY2hlbWVQcm92aWRlciIsICJydW50aW1lQ29uZmlnIiwgInJlZ2lvbkNvbmZpZ1Jlc29sdmVyIiwgInByb3RvY29sSHR0cCIsICJyZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzIiwgIm9wdGlvbnMiLCAiY29tbW9uUGFyYW1zIiwgImdldEh0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiIsICJfaHR0cEF1dGhTY2hlbWVzIiwgIl9odHRwQXV0aFNjaGVtZVByb3ZpZGVyIiwgIl9jcmVkZW50aWFscyIsICJodHRwQXV0aFNjaGVtZSIsICJpbmRleCIsICJzY2hlbWUiLCAiY3JlZGVudGlhbHMiLCAicmVzb2x2ZUh0dHBBdXRoUnVudGltZUNvbmZpZyIsICJjb25maWciLCAicmVzb2x2ZVJ1bnRpbWVFeHRlbnNpb25zIiwgImV4dGVuc2lvbnMiLCAiZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiIsICJleHRlbnNpb24iLCAiQ2xvdWRXYXRjaExvZ3NDbGllbnQiLCAiY29uZmlndXJhdGlvbiIsICJfY29uZmlnXzAiLCAiX2NvbmZpZ18xIiwgIl9jb25maWdfMiIsICJfY29uZmlnXzMiLCAiX2NvbmZpZ180IiwgIl9jb25maWdfNSIsICJfY29uZmlnXzYiLCAiX2NvbmZpZ183IiwgIl9jb25maWdfOCIsICJfY29uZmlnXzkiLCAiQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlRXhjZXB0aW9uJDEiLCAiQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlRXhjZXB0aW9uIiwgIkFjY2Vzc0RlbmllZEV4Y2VwdGlvbiQxIiwgIkFjY2Vzc0RlbmllZEV4Y2VwdGlvbiIsICJvcHRzIiwgIkludmFsaWRQYXJhbWV0ZXJFeGNlcHRpb24kMSIsICJJbnZhbGlkUGFyYW1ldGVyRXhjZXB0aW9uIiwgIk9wZXJhdGlvbkFib3J0ZWRFeGNlcHRpb24kMSIsICJPcGVyYXRpb25BYm9ydGVkRXhjZXB0aW9uIiwgIlJlc291cmNlTm90Rm91bmRFeGNlcHRpb24kMSIsICJSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uIiwgIlNlcnZpY2VVbmF2YWlsYWJsZUV4Y2VwdGlvbiQxIiwgIlNlcnZpY2VVbmF2YWlsYWJsZUV4Y2VwdGlvbiIsICJJbnRlcm5hbFNlcnZlckV4Y2VwdGlvbiQxIiwgIkludGVybmFsU2VydmVyRXhjZXB0aW9uIiwgIlRocm90dGxpbmdFeGNlcHRpb24kMSIsICJUaHJvdHRsaW5nRXhjZXB0aW9uIiwgIlZhbGlkYXRpb25FeGNlcHRpb24kMSIsICJWYWxpZGF0aW9uRXhjZXB0aW9uIiwgIkludmFsaWRPcGVyYXRpb25FeGNlcHRpb24kMSIsICJJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uIiwgIkNvbmZsaWN0RXhjZXB0aW9uJDEiLCAiQ29uZmxpY3RFeGNlcHRpb24iLCAiU2VydmljZVF1b3RhRXhjZWVkZWRFeGNlcHRpb24kMSIsICJTZXJ2aWNlUXVvdGFFeGNlZWRlZEV4Y2VwdGlvbiIsICJMaW1pdEV4Y2VlZGVkRXhjZXB0aW9uJDEiLCAiTGltaXRFeGNlZWRlZEV4Y2VwdGlvbiIsICJSZXNvdXJjZUFscmVhZHlFeGlzdHNFeGNlcHRpb24kMSIsICJSZXNvdXJjZUFscmVhZHlFeGlzdHNFeGNlcHRpb24iLCAiRGF0YUFscmVhZHlBY2NlcHRlZEV4Y2VwdGlvbiQxIiwgIkRhdGFBbHJlYWR5QWNjZXB0ZWRFeGNlcHRpb24iLCAiSW50ZXJuYWxTdHJlYW1pbmdFeGNlcHRpb24kMSIsICJJbnRlcm5hbFN0cmVhbWluZ0V4Y2VwdGlvbiIsICJJbnZhbGlkU2VxdWVuY2VUb2tlbkV4Y2VwdGlvbiQxIiwgIkludmFsaWRTZXF1ZW5jZVRva2VuRXhjZXB0aW9uIiwgIlVucmVjb2duaXplZENsaWVudEV4Y2VwdGlvbiQxIiwgIlVucmVjb2duaXplZENsaWVudEV4Y2VwdGlvbiIsICJTZXNzaW9uU3RyZWFtaW5nRXhjZXB0aW9uJDEiLCAiU2Vzc2lvblN0cmVhbWluZ0V4Y2VwdGlvbiIsICJTZXNzaW9uVGltZW91dEV4Y2VwdGlvbiQxIiwgIlNlc3Npb25UaW1lb3V0RXhjZXB0aW9uIiwgIk1hbGZvcm1lZFF1ZXJ5RXhjZXB0aW9uJDEiLCAiTWFsZm9ybWVkUXVlcnlFeGNlcHRpb24iLCAiVG9vTWFueVRhZ3NFeGNlcHRpb24kMSIsICJUb29NYW55VGFnc0V4Y2VwdGlvbiIsICJfQSIsICJfQUQiLCAiX0FERSIsICJfQURuIiwgIl9BRiIsICJfQUsiLCAiX0FLRSIsICJfQUtFZCIsICJfQUtLIiwgIl9BS0tSIiwgIl9BTEdTIiwgIl9BTEdTZyIsICJfQVAiLCAiX0FQYyIsICJfQVNUU1RJIiwgIl9BU1RTVElSIiwgIl9BU1RTVElScyIsICJfQW4iLCAiX0NEIiwgIl9DRFIiLCAiX0NEUnIiLCAiX0NFIiwgIl9DRVQiLCAiX0NFVFIiLCAiX0NFVFJyIiwgIl9DRVRScmUiLCAiX0NFVHIiLCAiX0NJVCIsICJfQ0lUUiIsICJfQ0lUUmEiLCAiX0NJVFJyIiwgIl9DSVRScmUiLCAiX0NJVHIiLCAiX0NMQUQiLCAiX0NMQURSIiwgIl9DTEFEUnIiLCAiX0NMRyIsICJfQ0xHUiIsICJfQ0xTIiwgIl9DTFNSIiwgIl9DU1EiLCAiX0NTUVIiLCAiX0NTUVJyIiwgIl9DU1YiLCAiX0NUIiwgIl9DVERDViIsICJfQ1RvIiwgIl9DViIsICJfQ1ZFIiwgIl9DVkVvIiwgIl9EIiwgIl9EQUFFIiwgIl9EQVAiLCAiX0RBUFIiLCAiX0RBUFJlIiwgIl9EQVBSZXMiLCAiX0RBUGUiLCAiX0RDIiwgIl9EQ1QiLCAiX0RDVFIiLCAiX0RDVFJlIiwgIl9ERCIsICJfRERDIiwgIl9EREQiLCAiX0RERFAiLCAiX0RERFBSIiwgIl9ERERSIiwgIl9ERERSZSIsICJfREREUmVzIiwgIl9ERERlIiwgIl9ERFBQIiwgIl9ERFBQUiIsICJfRERSIiwgIl9ERFJlIiwgIl9ERFJlcyIsICJfRERSZXNjIiwgIl9ERFJlc2NyIiwgIl9ERFJlc2NyaSIsICJfRERTIiwgIl9ERFNSIiwgIl9ERFNSZSIsICJfRERTUmVzIiwgIl9ERFNlIiwgIl9ERGUiLCAiX0REZWwiLCAiX0REZWxlIiwgIl9ERGVzIiwgIl9ERGVzYyIsICJfREVUIiwgIl9ERVRSIiwgIl9ERVRSZSIsICJfREZJIiwgIl9ERklSIiwgIl9ERklSZSIsICJfREkiLCAiX0RJUCIsICJfRElQUiIsICJfRElQUmUiLCAiX0RJUFJlcyIsICJfRElQUmVzYyIsICJfRElQZSIsICJfRElSIiwgIl9ESVJlIiwgIl9ESVQiLCAiX0RJVEIiLCAiX0RJVEJSIiwgIl9ESVRCUmUiLCAiX0RJVFIiLCAiX0RJVFJlIiwgIl9ESyIsICJfREtLIiwgIl9ES0tSIiwgIl9ETEFEIiwgIl9ETEFEUiIsICJfRExHIiwgIl9ETEdSIiwgIl9ETEdSZSIsICJfRExHUmVzIiwgIl9ETEdlIiwgIl9ETFMiLCAiX0RMU1IiLCAiX0RMU1JlIiwgIl9ETFNSZXMiLCAiX0RMU2UiLCAiX0RNRiIsICJfRE1GUiIsICJfRE1GUmUiLCAiX0RNRlJlcyIsICJfRE1GZSIsICJfRE5QIiwgIl9EUSIsICJfRFFEIiwgIl9EUURSIiwgIl9EUURSZSIsICJfRFFEUmVzIiwgIl9EUURSZXNjIiwgIl9EUURlIiwgIl9EUVIiLCAiX0RRUmUiLCAiX0RSUCIsICJfRFJQUiIsICJfRFJQUmUiLCAiX0RSUFJlcyIsICJfRFJQUmVzYyIsICJfRFJQZSIsICJfRFJQZXMiLCAiX0RTIiwgIl9EU0YiLCAiX0RTRlIiLCAiX0RTRlJlIiwgIl9EU0ZSZXMiLCAiX0RTRlNUSSIsICJfRFNGU1RJUiIsICJfRFNGU1RJUmkiLCAiX0RTRmEiLCAiX0RTRmUiLCAiX0RTRmVzIiwgIl9EU1EiLCAiX0RTUVIiLCAiX0RTUVJlIiwgIl9EU2UiLCAiX0RTZWwiLCAiX0RUIiwgIl9EVEMiLCAiX0RUUiIsICJfRGUiLCAiX0RlbCIsICJfRGVzIiwgIl9FIiwgIl9FVCIsICJfRVRFSSIsICJfRVRTIiwgIl9FVHgiLCAiX0ZEIiwgIl9GSSIsICJfRklpIiwgIl9GTEUiLCAiX0ZMRVIiLCAiX0ZMRVJpIiwgIl9GTEVpIiwgIl9GTEVpbCIsICJfRyIsICJfR0QiLCAiX0dERCIsICJfR0REUCIsICJfR0REUFIiLCAiX0dERFBSZSIsICJfR0REUiIsICJfR0REUmUiLCAiX0dEUFAiLCAiX0dEUFBSIiwgIl9HRFBQUmUiLCAiX0dEUiIsICJfR0RSZSIsICJfR0RTIiwgIl9HRFNSIiwgIl9HRFNSZSIsICJfR0kiLCAiX0dJUiIsICJfR0lSZSIsICJfR0llIiwgIl9HSXIiLCAiX0dMQUQiLCAiX0dMQURSIiwgIl9HTEFEUmUiLCAiX0dMRSIsICJfR0xFUiIsICJfR0xFUmUiLCAiX0dMRiIsICJfR0xGUiIsICJfR0xGUmUiLCAiX0dMR0YiLCAiX0dMR0ZSIiwgIl9HTEdGUmUiLCAiX0dMTyIsICJfR0xPUiIsICJfR0xPUlMiLCAiX0dMT1JlIiwgIl9HTFIiLCAiX0dMUlIiLCAiX0dMUlJlIiwgIl9HUVIiLCAiX0dRUlIiLCAiX0dRUlJlIiwgIl9HU1EiLCAiX0dTUUgiLCAiX0dTUUhSIiwgIl9HU1FIUmUiLCAiX0dTUVIiLCAiX0dTUVJlIiwgIl9HVCIsICJfR1RSIiwgIl9HVFJlIiwgIl9JIiwgIl9JQiIsICJfSUJMIiwgIl9JRCIsICJfSUYiLCAiX0lMIiwgIl9JTEUiLCAiX0lMRW4iLCAiX0lPRSIsICJfSVAiLCAiX0lQRSIsICJfSVBuIiwgIl9JUyIsICJfSVNFIiwgIl9JU0VuIiwgIl9JU1RFIiwgIl9JU24iLCAiX0lTbnQiLCAiX0xBIiwgIl9MQUxHUyIsICJfTEFMR1NSIiwgIl9MQUxHU1JpIiwgIl9MQVIiLCAiX0xBUmkiLCAiX0xDUyIsICJfTEUiLCAiX0xFRSIsICJfTEZMIiwgIl9MRkxJIiwgIl9MRlQiLCAiX0xHIiwgIl9MR0YiLCAiX0xHRkwiLCAiX0xHUyIsICJfTEdTbyIsICJfTEdvIiwgIl9MSSIsICJfTElSIiwgIl9MSVJpIiwgIl9MTEFEIiwgIl9MTEFEUiIsICJfTExBRFJpIiwgIl9MTEciLCAiX0xMR0ZRIiwgIl9MTEdGUVIiLCAiX0xMR0ZRUmkiLCAiX0xMR1IiLCAiX0xMR1JpIiwgIl9MUyIsICJfTFNGU1RJIiwgIl9MU0ZTVElSIiwgIl9MU0ZTVElSaSIsICJfTFNRIiwgIl9MU1FSIiwgIl9MU1FSaSIsICJfTFNvIiwgIl9MU29nIiwgIl9MVEZSIiwgIl9MVEZSUiIsICJfTFRGUlJpIiwgIl9MVExHIiwgIl9MVExHUiIsICJfTFRMR1JpIiwgIl9MVE0iLCAiX0xUU0xFIiwgIl9MVFNNIiwgIl9MVFNSIiwgIl9MVFNTIiwgIl9MVFNVIiwgIl9NRiIsICJfTUZNIiwgIl9NRk1SIiwgIl9NRmUiLCAiX01LIiwgIl9NS0UiLCAiX01LRW8iLCAiX01RRSIsICJfTVQiLCAiX01UZSIsICJfT0FFIiwgIl9PTEUiLCAiX09MRXUiLCAiX09TQSIsICJfT1NDIiwgIl9PU0RBUCIsICJfT1NEUyIsICJfT1NFUCIsICJfT1NJRCIsICJfT1NMUCIsICJfT1NOUCIsICJfT1NSQyIsICJfT1NSUyIsICJfT1NXIiwgIl9QIiwgIl9QQVAiLCAiX1BBUFIiLCAiX1BBUFJ1IiwgIl9QQyIsICJfUEQiLCAiX1BERCIsICJfUEREUCIsICJfUEREUFIiLCAiX1BERFBSdSIsICJfUEREUiIsICJfUEREUnUiLCAiX1BEUCIsICJfUERQUCIsICJfUERQUFIiLCAiX1BEUFBSdSIsICJfUERQUiIsICJfUERSIiwgIl9QRFJ1IiwgIl9QRFMiLCAiX1BEU1IiLCAiX1BEU1J1IiwgIl9QSSIsICJfUElQIiwgIl9QSVBSIiwgIl9QSVBSdSIsICJfUElSIiwgIl9QSVJ1IiwgIl9QSlNPTiIsICJfUEtWIiwgIl9QTEUiLCAiX1BMRVIiLCAiX1BMRVJ1IiwgIl9QTEdEUCIsICJfUExHRFBSIiwgIl9QTUYiLCAiX1BNRlIiLCAiX1BQIiwgIl9QUUQiLCAiX1BRRFIiLCAiX1BRRFJ1IiwgIl9QUiIsICJfUFJQIiwgIl9QUlBSIiwgIl9QUlBSdSIsICJfUFJQUnV0IiwgIl9QUlB1IiwgIl9QU0YiLCAiX1BTRlIiLCAiX1BUIiwgIl9QVE9DU0YiLCAiX1BUUiIsICJfUFRhIiwgIl9QVHUiLCAiX1BWUEMiLCAiX1BXQUYiLCAiX1ByIiwgIl9Qcm8iLCAiX1FDRSIsICJfUUNFTCIsICJfUUQiLCAiX1FETCIsICJfUUkiLCAiX1FJTCIsICJfUVIiLCAiX1FTIiwgIl9SQUVFIiwgIl9SQyIsICJfUkVJIiwgIl9SRiIsICJfUkZlIiwgIl9SSyIsICJfUktFIiwgIl9SS0VlIiwgIl9STEVJIiwgIl9STkZFIiwgIl9SUCIsICJfUlBlIiwgIl9SUiIsICJfU0MiLCAiX1NEQyIsICJfU0YiLCAiX1NGdSIsICJfU0xTIiwgIl9TTFNlIiwgIl9TTFQiLCAiX1NMVFIiLCAiX1NMVFJTIiwgIl9TTFRSdCIsICJfU1AiLCAiX1NRIiwgIl9TUUQiLCAiX1NRREwiLCAiX1NRRUUiLCAiX1NRUiIsICJfU1FSdCIsICJfU1FSdG8iLCAiX1NRUnRvcCIsICJfU1FTIiwgIl9TUVNMIiwgIl9TUXQiLCAiX1NTIiwgIl9TU0UiLCAiX1NTRXAiLCAiX1NTRXBsIiwgIl9TU0V1IiwgIl9TU0V1YiIsICJfU1N1IiwgIl9TVEUiLCAiX1NUSVMiLCAiX1NUSVNhIiwgIl9TVUUiLCAiX1RDIiwgIl9UQ0UiLCAiX1RDRXkiLCAiX1RFIiwgIl9USFIiLCAiX1RIUkwiLCAiX1RMIiwgIl9UTEciLCAiX1RMR1IiLCAiX1RMUiIsICJfVE1GIiwgIl9UTUZSIiwgIl9UTUZSZSIsICJfVE1URSIsICJfVFIiLCAiX1RSUiIsICJfVFMiLCAiX1RUIiwgIl9UVFIiLCAiX1RUUmUiLCAiX1VBIiwgIl9VQVIiLCAiX1VDRSIsICJfVUNTIiwgIl9VREMiLCAiX1VEQ1IiLCAiX1VEQ1JwIiwgIl9VTEFEIiwgIl9VTEFEUiIsICJfVUxHIiwgIl9VTEdSIiwgIl9VUiIsICJfVVJSIiwgIl9VU1EiLCAiX1VTUVIiLCAiX1VTUVJwIiwgIl9WRSIsICJfYSIsICJfYUEiLCAiX2FBRkFWTERGUiIsICJfYUQiLCAiX2FEQSIsICJfYURTIiwgIl9hRSIsICJfYUYiLCAiX2FGRCIsICJfYUkiLCAiX2FJYyIsICJfYUluIiwgIl9hSXAiLCAiX2FLIiwgIl9hTEdTIiwgIl9hT0YiLCAiX2FPVEwiLCAiX2FQIiwgIl9hUGMiLCAiX2FQY2MiLCAiX2FTUEYiLCAiX2FWVCIsICJfYW4iLCAiX2FwIiwgIl9hciIsICJfYXQiLCAiX2IiLCAiX2JJIiwgIl9iSVMiLCAiX2JJeSIsICJfYlMiLCAiX2MiLCAiX2NBIiwgIl9jRSIsICJfY1QiLCAiX2NUUyIsICJfY1RTciIsICJfY1RsIiwgIl9jVG8iLCAiX2NUb20iLCAiX2NUciIsICJfY1YiLCAiX2NvIiwgIl9jb2QiLCAiX2NvbCIsICJfY3MiLCAiX2QiLCAiX2RBIiwgIl9kQyIsICJfZEQiLCAiX2REQSIsICJfZERDIiwgIl9kRENWIiwgIl9kRE4iLCAiX2REUCIsICJfZERUIiwgIl9kRFRlIiwgIl9kRGUiLCAiX2RJIiwgIl9kSyIsICJfZE4iLCAiX2ROZSIsICJfZFAiLCAiX2RQRSIsICJfZFBTIiwgIl9kUkEiLCAiX2RTIiwgIl9kU04iLCAiX2RTTmEiLCAiX2RTUkEiLCAiX2RTVCIsICJfZFNhIiwgIl9kU2UiLCAiX2RTZWwiLCAiX2RUIiwgIl9kVEMiLCAiX2RUUCIsICJfZFYiLCAiX2RWUCIsICJfZGEiLCAiX2RlIiwgIl9kZWwiLCAiX2RlbGkiLCAiX2RlcyIsICJfZGVzYyIsICJfZGVzdCIsICJfZGkiLCAiX2RpcyIsICJfZSIsICJfZUJTIiwgIl9lQ08iLCAiX2VFVCIsICJfZUYiLCAiX2VIQ1AiLCAiX2VJIiwgIl9lSXYiLCAiX2VLIiwgIl9lTEVFSSIsICJfZU0iLCAiX2VNdiIsICJfZU4iLCAiX2VQIiwgIl9lUkEiLCAiX2VSSSIsICJfZVJTIiwgIl9lUyIsICJfZVNGIiwgIl9lU0ZEIiwgIl9lU1QiLCAiX2VTdiIsICJfZVN4IiwgIl9lVCIsICJfZVRuIiwgIl9lVHIiLCAiX2VWIiwgIl9lbCIsICJfZW4iLCAiX2VuYSIsICJfZW5kIiwgIl9lbnQiLCAiX2VudSIsICJfZXYiLCAiX2YiLCAiX2ZEIiwgIl9mRSIsICJfZkVUIiwgIl9mRVRpIiwgIl9mSSIsICJfZklOIiwgIl9mSU5pIiwgIl9mTEdBIiwgIl9mTiIsICJfZk5QIiwgIl9mUCIsICJfZlMiLCAiX2ZTQyIsICJfZlNpIiwgIl9mVSIsICJfZmkiLCAiX2ZpZSIsICJfZmwiLCAiX2ZvIiwgIl9nIiwgIl9nQiIsICJfZ0kiLCAiX2giLCAiX2hFIiwgIl9pIiwgIl9pQSIsICJfaUIiLCAiX2lEIiwgIl9pREEiLCAiX2lEcyIsICJfaUYiLCAiX2lJIiwgIl9pTEEiLCAiX2lOIiwgIl9pTlAiLCAiX2lQIiwgIl9pUExTIiwgIl9pUG4iLCAiX2lQbmQiLCAiX2lSQSIsICJfaVMiLCAiX2lTQSIsICJfaVNtIiwgIl9pU24iLCAiX2lTbnQiLCAiX2lUIiwgIl9pVE4iLCAiX2lUbiIsICJfaWQiLCAiX2ltIiwgIl9pbiIsICJfayIsICJfa0EiLCAiX2tLQSIsICJfa0tJIiwgIl9rUCIsICJfa1ZEIiwgIl9sIiwgIl9sQ1MiLCAiX2xFIiwgIl9sRUZQIiwgIl9sRU0iLCAiX2xFUyIsICJfbEVUIiwgIl9sRVRhIiwgIl9sRiIsICJfbEZOIiwgIl9sRlQiLCAiX2xHIiwgIl9sR0EiLCAiX2xHQUwiLCAiX2xHQyIsICJfbEdDbyIsICJfbEdGIiwgIl9sR0kiLCAiX2xHSW8iLCAiX2xHTiIsICJfbEdOUCIsICJfbEdOUG8iLCAiX2xHTm8iLCAiX2xHUyIsICJfbElUIiwgIl9sTSIsICJfbE1UIiwgIl9sTVRTIiwgIl9sT1AiLCAiX2xQIiwgIl9sUiIsICJfbFJQIiwgIl9sUyIsICJfbFNOIiwgIl9sU05QIiwgIl9sU05QbyIsICJfbFNObyIsICJfbFNUIiwgIl9sU28iLCAiX2xTb2ciLCAiX2xUIiwgIl9sVE0iLCAiX2xUVCIsICJfbFRvIiwgIl9sVVQiLCAiX2xVVGEiLCAiX2xpIiwgIl9sbyIsICJfbSIsICJfbUYiLCAiX21GQyIsICJfbUsiLCAiX21OIiwgIl9tTmUiLCAiX21QIiwgIl9tUiIsICJfbVQiLCAiX21WIiwgIl9tVmEiLCAiX21hIiwgIl9tYW4iLCAiX21hdCIsICJfbiIsICJfbkJUIiwgIl9uRlQiLCAiX25NViIsICJfblAiLCAiX25TVCIsICJfblQiLCAiX29CIiwgIl9vRiIsICJfb0lFIiwgIl9vU0lEIiwgIl9vU1JDIiwgIl9vViIsICJfcCIsICJfcEMiLCAiX3BEIiwgIl9wSSIsICJfcElyIiwgIl9wSlNPTiIsICJfcEtWIiwgIl9wTiIsICJfcFAiLCAiX3BSIiwgIl9wUmEiLCAiX3BTIiwgIl9wU28iLCAiX3BUIiwgIl9wVE9DU0YiLCAiX3BUYSIsICJfcFZQQyIsICJfcFdBRiIsICJfcGUiLCAiX3BvIiwgIl9xIiwgIl9xQyIsICJfcUNFIiwgIl9xRCIsICJfcURJIiwgIl9xRE5QIiwgIl9xSSIsICJfcUwiLCAiX3FTIiwgIl9yIiwgIl9yQSIsICJfckFlIiwgIl9yQW8iLCAiX3JDIiwgIl9yRCIsICJfckVJIiwgIl9yRiIsICJfckkiLCAiX3JJRCIsICJfckllIiwgIl9ySWV2IiwgIl9ySyIsICJfckxFSSIsICJfck0iLCAiX3JOIiwgIl9yUCIsICJfclBlIiwgIl9yUyIsICJfclNlIiwgIl9yVCIsICJfclRlIiwgIl9yVGVuIiwgIl9zIiwgIl9zQiIsICJfc0MiLCAiX3NDTyIsICJfc0NlIiwgIl9zQ28iLCAiX3NDdCIsICJfc0QiLCAiX3NEQyIsICJfc0UiLCAiX3NFVCIsICJfc0VUdCIsICJfc0YiLCAiX3NGSCIsICJfc0kiLCAiX3NMUyIsICJfc00iLCAiX3NNdCIsICJfc1AiLCAiX3NQdSIsICJfc1EiLCAiX3NRQSIsICJfc1IiLCAiX3NSdCIsICJfc1MiLCAiX3NTVCIsICJfc1NlIiwgIl9zU3AiLCAiX3NTdSIsICJfc1QiLCAiX3NUTyIsICJfc1RlIiwgIl9zVHQiLCAiX3NUdSIsICJfc1UiLCAiX3NVZSIsICJfc1V1IiwgIl9zYSIsICJfc2UiLCAiX3NlciIsICJfc20iLCAiX3NvIiwgIl9zb3UiLCAiX3N0IiwgIl9zdGEiLCAiX3N0YXQiLCAiX3N0ciIsICJfc3UiLCAiX3N1YyIsICJfdCIsICJfdEEiLCAiX3RDIiwgIl90Q3kiLCAiX3RFTSIsICJfdEYiLCAiX3RIIiwgIl90SSIsICJfdEsiLCAiX3RMIiwgIl90TiIsICJfdE5MRVNJIiwgIl90T0xFRUkiLCAiX3RTIiwgIl90U3IiLCAiX3RUIiwgIl90VHIiLCAiX3RhIiwgIl90aSIsICJfdGltIiwgIl90aW1lIiwgIl90byIsICJfdHkiLCAiX3UiLCAiX3VDUyIsICJfdVNUIiwgIl91biIsICJfdiIsICJfdksiLCAiX3ciLCAiX3dJIiwgIl93SyIsICJuMCIsICJBY2NvdW50UG9saWN5IiwgIkFkZEtleUVudHJ5IiwgIkFkZEtleXMiLCAiQWRkS2V5RW50cmllcyIsICJBZ2dyZWdhdGVMb2dHcm91cFN1bW1hcnkiLCAiR3JvdXBpbmdJZGVudGlmaWVycyIsICJBbm9tYWx5IiwgIkxvZ1NhbXBsZXMiLCAiUGF0dGVyblRva2VucyIsICJBbm9tYWx5RGV0ZWN0b3IiLCAiQXNzb2NpYXRlS21zS2V5UmVxdWVzdCIsICJBc3NvY2lhdGVTb3VyY2VUb1MzVGFibGVJbnRlZ3JhdGlvblJlcXVlc3QiLCAiRGF0YVNvdXJjZSIsICJBc3NvY2lhdGVTb3VyY2VUb1MzVGFibGVJbnRlZ3JhdGlvblJlc3BvbnNlIiwgIkNhbmNlbEV4cG9ydFRhc2tSZXF1ZXN0IiwgIkNhbmNlbEltcG9ydFRhc2tSZXF1ZXN0IiwgIkNhbmNlbEltcG9ydFRhc2tSZXNwb25zZSIsICJJbXBvcnRTdGF0aXN0aWNzIiwgIkNvbmZpZ3VyYXRpb25UZW1wbGF0ZSIsICJDb25maWd1cmF0aW9uVGVtcGxhdGVEZWxpdmVyeUNvbmZpZ1ZhbHVlcyIsICJBbGxvd2VkRmllbGRzIiwgIlMzRGVsaXZlcnlDb25maWd1cmF0aW9uIiwgIkNvcHlWYWx1ZSIsICJDb3B5VmFsdWVFbnRyaWVzIiwgIkNvcHlWYWx1ZUVudHJ5IiwgIkNyZWF0ZURlbGl2ZXJ5UmVxdWVzdCIsICJDcmVhdGVEZWxpdmVyeVJlc3BvbnNlIiwgIkRlbGl2ZXJ5IiwgIkNyZWF0ZUV4cG9ydFRhc2tSZXF1ZXN0IiwgIkNyZWF0ZUV4cG9ydFRhc2tSZXNwb25zZSIsICJDcmVhdGVJbXBvcnRUYXNrUmVxdWVzdCIsICJJbXBvcnRGaWx0ZXIiLCAiQ3JlYXRlSW1wb3J0VGFza1Jlc3BvbnNlIiwgIkNyZWF0ZUxvZ0Fub21hbHlEZXRlY3RvclJlcXVlc3QiLCAiQ3JlYXRlTG9nQW5vbWFseURldGVjdG9yUmVzcG9uc2UiLCAiQ3JlYXRlTG9nR3JvdXBSZXF1ZXN0IiwgIkNyZWF0ZUxvZ1N0cmVhbVJlcXVlc3QiLCAiQ3JlYXRlU2NoZWR1bGVkUXVlcnlSZXF1ZXN0IiwgIkRlc3RpbmF0aW9uQ29uZmlndXJhdGlvbiIsICJDcmVhdGVTY2hlZHVsZWRRdWVyeVJlc3BvbnNlIiwgIkNTViIsICJEYXRhU291cmNlRmlsdGVyIiwgIkRhdGVUaW1lQ29udmVydGVyIiwgIkRlbGV0ZUFjY291bnRQb2xpY3lSZXF1ZXN0IiwgIkRlbGV0ZURhdGFQcm90ZWN0aW9uUG9saWN5UmVxdWVzdCIsICJEZWxldGVEZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5UmVxdWVzdCIsICJEZWxldGVEZWxpdmVyeURlc3RpbmF0aW9uUmVxdWVzdCIsICJEZWxldGVEZWxpdmVyeVJlcXVlc3QiLCAiRGVsZXRlRGVsaXZlcnlTb3VyY2VSZXF1ZXN0IiwgIkRlbGV0ZURlc3RpbmF0aW9uUmVxdWVzdCIsICJEZWxldGVJbmRleFBvbGljeVJlcXVlc3QiLCAiRGVsZXRlSW5kZXhQb2xpY3lSZXNwb25zZSIsICJEZWxldGVJbnRlZ3JhdGlvblJlcXVlc3QiLCAiRGVsZXRlSW50ZWdyYXRpb25SZXNwb25zZSIsICJEZWxldGVLZXlzIiwgIkRlbGV0ZUxvZ0Fub21hbHlEZXRlY3RvclJlcXVlc3QiLCAiRGVsZXRlTG9nR3JvdXBSZXF1ZXN0IiwgIkRlbGV0ZUxvZ1N0cmVhbVJlcXVlc3QiLCAiRGVsZXRlTWV0cmljRmlsdGVyUmVxdWVzdCIsICJEZWxldGVRdWVyeURlZmluaXRpb25SZXF1ZXN0IiwgIkRlbGV0ZVF1ZXJ5RGVmaW5pdGlvblJlc3BvbnNlIiwgIkRlbGV0ZVJlc291cmNlUG9saWN5UmVxdWVzdCIsICJEZWxldGVSZXRlbnRpb25Qb2xpY3lSZXF1ZXN0IiwgIkRlbGV0ZVNjaGVkdWxlZFF1ZXJ5UmVxdWVzdCIsICJEZWxldGVTY2hlZHVsZWRRdWVyeVJlc3BvbnNlIiwgIkRlbGV0ZVN1YnNjcmlwdGlvbkZpbHRlclJlcXVlc3QiLCAiRGVsZXRlVHJhbnNmb3JtZXJSZXF1ZXN0IiwgIkRlbGl2ZXJ5RGVzdGluYXRpb24iLCAiRGVsaXZlcnlEZXN0aW5hdGlvbkNvbmZpZ3VyYXRpb24iLCAiRGVsaXZlcnlTb3VyY2UiLCAiRGVzY3JpYmVBY2NvdW50UG9saWNpZXNSZXF1ZXN0IiwgIkRlc2NyaWJlQWNjb3VudFBvbGljaWVzUmVzcG9uc2UiLCAiQWNjb3VudFBvbGljaWVzIiwgIkRlc2NyaWJlQ29uZmlndXJhdGlvblRlbXBsYXRlc1JlcXVlc3QiLCAiRGVzY3JpYmVDb25maWd1cmF0aW9uVGVtcGxhdGVzUmVzcG9uc2UiLCAiQ29uZmlndXJhdGlvblRlbXBsYXRlcyIsICJEZXNjcmliZURlbGl2ZXJpZXNSZXF1ZXN0IiwgIkRlc2NyaWJlRGVsaXZlcmllc1Jlc3BvbnNlIiwgIkRlbGl2ZXJpZXMiLCAiRGVzY3JpYmVEZWxpdmVyeURlc3RpbmF0aW9uc1JlcXVlc3QiLCAiRGVzY3JpYmVEZWxpdmVyeURlc3RpbmF0aW9uc1Jlc3BvbnNlIiwgIkRlbGl2ZXJ5RGVzdGluYXRpb25zIiwgIkRlc2NyaWJlRGVsaXZlcnlTb3VyY2VzUmVxdWVzdCIsICJEZXNjcmliZURlbGl2ZXJ5U291cmNlc1Jlc3BvbnNlIiwgIkRlbGl2ZXJ5U291cmNlcyIsICJEZXNjcmliZURlc3RpbmF0aW9uc1JlcXVlc3QiLCAiRGVzY3JpYmVEZXN0aW5hdGlvbnNSZXNwb25zZSIsICJEZXN0aW5hdGlvbnMiLCAiRGVzY3JpYmVFeHBvcnRUYXNrc1JlcXVlc3QiLCAiRGVzY3JpYmVFeHBvcnRUYXNrc1Jlc3BvbnNlIiwgIkV4cG9ydFRhc2tzIiwgIkRlc2NyaWJlRmllbGRJbmRleGVzUmVxdWVzdCIsICJEZXNjcmliZUZpZWxkSW5kZXhlc1Jlc3BvbnNlIiwgIkZpZWxkSW5kZXhlcyIsICJEZXNjcmliZUltcG9ydFRhc2tCYXRjaGVzUmVxdWVzdCIsICJEZXNjcmliZUltcG9ydFRhc2tCYXRjaGVzUmVzcG9uc2UiLCAiSW1wb3J0QmF0Y2hMaXN0IiwgIkRlc2NyaWJlSW1wb3J0VGFza3NSZXF1ZXN0IiwgIkRlc2NyaWJlSW1wb3J0VGFza3NSZXNwb25zZSIsICJJbXBvcnRMaXN0IiwgIkRlc2NyaWJlSW5kZXhQb2xpY2llc1JlcXVlc3QiLCAiRGVzY3JpYmVJbmRleFBvbGljaWVzUmVzcG9uc2UiLCAiSW5kZXhQb2xpY2llcyIsICJEZXNjcmliZUxvZ0dyb3Vwc1JlcXVlc3QiLCAiRGVzY3JpYmVMb2dHcm91cHNSZXNwb25zZSIsICJMb2dHcm91cHMiLCAiRGVzY3JpYmVMb2dTdHJlYW1zUmVxdWVzdCIsICJEZXNjcmliZUxvZ1N0cmVhbXNSZXNwb25zZSIsICJMb2dTdHJlYW1zIiwgIkRlc2NyaWJlTWV0cmljRmlsdGVyc1JlcXVlc3QiLCAiRGVzY3JpYmVNZXRyaWNGaWx0ZXJzUmVzcG9uc2UiLCAiTWV0cmljRmlsdGVycyIsICJEZXNjcmliZVF1ZXJpZXNSZXF1ZXN0IiwgIkRlc2NyaWJlUXVlcmllc1Jlc3BvbnNlIiwgIlF1ZXJ5SW5mb0xpc3QiLCAiRGVzY3JpYmVRdWVyeURlZmluaXRpb25zUmVxdWVzdCIsICJEZXNjcmliZVF1ZXJ5RGVmaW5pdGlvbnNSZXNwb25zZSIsICJRdWVyeURlZmluaXRpb25MaXN0IiwgIkRlc2NyaWJlUmVzb3VyY2VQb2xpY2llc1JlcXVlc3QiLCAiRGVzY3JpYmVSZXNvdXJjZVBvbGljaWVzUmVzcG9uc2UiLCAiUmVzb3VyY2VQb2xpY2llcyIsICJEZXNjcmliZVN1YnNjcmlwdGlvbkZpbHRlcnNSZXF1ZXN0IiwgIkRlc2NyaWJlU3Vic2NyaXB0aW9uRmlsdGVyc1Jlc3BvbnNlIiwgIlN1YnNjcmlwdGlvbkZpbHRlcnMiLCAiRGVzdGluYXRpb24iLCAiUzNDb25maWd1cmF0aW9uIiwgIkRpc2Fzc29jaWF0ZUttc0tleVJlcXVlc3QiLCAiRGlzYXNzb2NpYXRlU291cmNlRnJvbVMzVGFibGVJbnRlZ3JhdGlvblJlcXVlc3QiLCAiRGlzYXNzb2NpYXRlU291cmNlRnJvbVMzVGFibGVJbnRlZ3JhdGlvblJlc3BvbnNlIiwgIkVudGl0eSIsICJFeHBvcnRUYXNrIiwgIkV4cG9ydFRhc2tTdGF0dXMiLCAiRXhwb3J0VGFza0V4ZWN1dGlvbkluZm8iLCAiRmllbGRJbmRleCIsICJGaWVsZHNEYXRhIiwgIkZpbHRlcmVkTG9nRXZlbnQiLCAiRmlsdGVyTG9nRXZlbnRzUmVxdWVzdCIsICJGaWx0ZXJMb2dFdmVudHNSZXNwb25zZSIsICJGaWx0ZXJlZExvZ0V2ZW50cyIsICJTZWFyY2hlZExvZ1N0cmVhbXMiLCAiR2V0RGF0YVByb3RlY3Rpb25Qb2xpY3lSZXF1ZXN0IiwgIkdldERhdGFQcm90ZWN0aW9uUG9saWN5UmVzcG9uc2UiLCAiR2V0RGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeVJlcXVlc3QiLCAiR2V0RGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeVJlc3BvbnNlIiwgIlBvbGljeSIsICJHZXREZWxpdmVyeURlc3RpbmF0aW9uUmVxdWVzdCIsICJHZXREZWxpdmVyeURlc3RpbmF0aW9uUmVzcG9uc2UiLCAiR2V0RGVsaXZlcnlSZXF1ZXN0IiwgIkdldERlbGl2ZXJ5UmVzcG9uc2UiLCAiR2V0RGVsaXZlcnlTb3VyY2VSZXF1ZXN0IiwgIkdldERlbGl2ZXJ5U291cmNlUmVzcG9uc2UiLCAiR2V0SW50ZWdyYXRpb25SZXF1ZXN0IiwgIkdldEludGVncmF0aW9uUmVzcG9uc2UiLCAiSW50ZWdyYXRpb25EZXRhaWxzIiwgIkdldExvZ0Fub21hbHlEZXRlY3RvclJlcXVlc3QiLCAiR2V0TG9nQW5vbWFseURldGVjdG9yUmVzcG9uc2UiLCAiR2V0TG9nRXZlbnRzUmVxdWVzdCIsICJHZXRMb2dFdmVudHNSZXNwb25zZSIsICJPdXRwdXRMb2dFdmVudHMiLCAiR2V0TG9nRmllbGRzUmVxdWVzdCIsICJHZXRMb2dGaWVsZHNSZXNwb25zZSIsICJMb2dGaWVsZHNMaXN0IiwgIkdldExvZ0dyb3VwRmllbGRzUmVxdWVzdCIsICJHZXRMb2dHcm91cEZpZWxkc1Jlc3BvbnNlIiwgIkxvZ0dyb3VwRmllbGRMaXN0IiwgIkdldExvZ09iamVjdFJlcXVlc3QiLCAiR2V0TG9nT2JqZWN0UmVzcG9uc2UiLCAiR2V0TG9nT2JqZWN0UmVzcG9uc2VTdHJlYW0iLCAiR2V0TG9nUmVjb3JkUmVxdWVzdCIsICJHZXRMb2dSZWNvcmRSZXNwb25zZSIsICJHZXRRdWVyeVJlc3VsdHNSZXF1ZXN0IiwgIkdldFF1ZXJ5UmVzdWx0c1Jlc3BvbnNlIiwgIlF1ZXJ5UmVzdWx0cyIsICJRdWVyeVN0YXRpc3RpY3MiLCAiR2V0U2NoZWR1bGVkUXVlcnlIaXN0b3J5UmVxdWVzdCIsICJHZXRTY2hlZHVsZWRRdWVyeUhpc3RvcnlSZXNwb25zZSIsICJUcmlnZ2VySGlzdG9yeVJlY29yZExpc3QiLCAiR2V0U2NoZWR1bGVkUXVlcnlSZXF1ZXN0IiwgIkdldFNjaGVkdWxlZFF1ZXJ5UmVzcG9uc2UiLCAiR2V0VHJhbnNmb3JtZXJSZXF1ZXN0IiwgIkdldFRyYW5zZm9ybWVyUmVzcG9uc2UiLCAiUHJvY2Vzc29ycyIsICJHcm9rIiwgIkdyb3VwaW5nSWRlbnRpZmllciIsICJJbXBvcnQiLCAiSW1wb3J0QmF0Y2giLCAiSW5kZXhQb2xpY3kiLCAiSW5wdXRMb2dFdmVudCIsICJJbnRlZ3JhdGlvblN1bW1hcnkiLCAiTGlzdEFnZ3JlZ2F0ZUxvZ0dyb3VwU3VtbWFyaWVzUmVxdWVzdCIsICJEYXRhU291cmNlRmlsdGVycyIsICJMaXN0QWdncmVnYXRlTG9nR3JvdXBTdW1tYXJpZXNSZXNwb25zZSIsICJBZ2dyZWdhdGVMb2dHcm91cFN1bW1hcmllcyIsICJMaXN0QW5vbWFsaWVzUmVxdWVzdCIsICJMaXN0QW5vbWFsaWVzUmVzcG9uc2UiLCAiQW5vbWFsaWVzIiwgIkxpc3RJbnRlZ3JhdGlvbnNSZXF1ZXN0IiwgIkxpc3RJbnRlZ3JhdGlvbnNSZXNwb25zZSIsICJJbnRlZ3JhdGlvblN1bW1hcmllcyIsICJMaXN0TG9nQW5vbWFseURldGVjdG9yc1JlcXVlc3QiLCAiTGlzdExvZ0Fub21hbHlEZXRlY3RvcnNSZXNwb25zZSIsICJBbm9tYWx5RGV0ZWN0b3JzIiwgIkxpc3RMb2dHcm91cHNGb3JRdWVyeVJlcXVlc3QiLCAiTGlzdExvZ0dyb3Vwc0ZvclF1ZXJ5UmVzcG9uc2UiLCAiTGlzdExvZ0dyb3Vwc1JlcXVlc3QiLCAiTGlzdExvZ0dyb3Vwc1Jlc3BvbnNlIiwgIkxvZ0dyb3VwU3VtbWFyaWVzIiwgIkxpc3RTY2hlZHVsZWRRdWVyaWVzUmVxdWVzdCIsICJMaXN0U2NoZWR1bGVkUXVlcmllc1Jlc3BvbnNlIiwgIlNjaGVkdWxlZFF1ZXJ5U3VtbWFyeUxpc3QiLCAiTGlzdFNvdXJjZXNGb3JTM1RhYmxlSW50ZWdyYXRpb25SZXF1ZXN0IiwgIkxpc3RTb3VyY2VzRm9yUzNUYWJsZUludGVncmF0aW9uUmVzcG9uc2UiLCAiUzNUYWJsZUludGVncmF0aW9uU291cmNlcyIsICJMaXN0VGFnc0ZvclJlc291cmNlUmVxdWVzdCIsICJMaXN0VGFnc0ZvclJlc291cmNlUmVzcG9uc2UiLCAiTGlzdFRhZ3NMb2dHcm91cFJlcXVlc3QiLCAiTGlzdFRhZ3NMb2dHcm91cFJlc3BvbnNlIiwgIkxpc3RUb01hcCIsICJMaXZlVGFpbFNlc3Npb25Mb2dFdmVudCIsICJMaXZlVGFpbFNlc3Npb25NZXRhZGF0YSIsICJMaXZlVGFpbFNlc3Npb25TdGFydCIsICJMaXZlVGFpbFNlc3Npb25VcGRhdGUiLCAiTGl2ZVRhaWxTZXNzaW9uUmVzdWx0cyIsICJMb2dFdmVudCIsICJMb2dGaWVsZHNMaXN0SXRlbSIsICJMb2dGaWVsZFR5cGUiLCAiTG9nR3JvdXAiLCAiTG9nR3JvdXBGaWVsZCIsICJMb2dHcm91cFN1bW1hcnkiLCAiTG9nU3RyZWFtIiwgIkxvd2VyQ2FzZVN0cmluZyIsICJRdWVyeUNvbXBpbGVFcnJvciIsICJNZXRyaWNGaWx0ZXIiLCAiTWV0cmljVHJhbnNmb3JtYXRpb25zIiwgIk1ldHJpY0ZpbHRlck1hdGNoUmVjb3JkIiwgIk1ldHJpY1RyYW5zZm9ybWF0aW9uIiwgIk1vdmVLZXlFbnRyeSIsICJNb3ZlS2V5cyIsICJNb3ZlS2V5RW50cmllcyIsICJPcGVuU2VhcmNoQXBwbGljYXRpb24iLCAiT3BlblNlYXJjaFJlc291cmNlU3RhdHVzIiwgIk9wZW5TZWFyY2hDb2xsZWN0aW9uIiwgIk9wZW5TZWFyY2hEYXRhQWNjZXNzUG9saWN5IiwgIk9wZW5TZWFyY2hEYXRhU291cmNlIiwgIk9wZW5TZWFyY2hFbmNyeXB0aW9uUG9saWN5IiwgIk9wZW5TZWFyY2hJbnRlZ3JhdGlvbkRldGFpbHMiLCAiT3BlblNlYXJjaFdvcmtzcGFjZSIsICJPcGVuU2VhcmNoTmV0d29ya1BvbGljeSIsICJPcGVuU2VhcmNoTGlmZWN5Y2xlUG9saWN5IiwgIk9wZW5TZWFyY2hSZXNvdXJjZUNvbmZpZyIsICJPdXRwdXRMb2dFdmVudCIsICJQYXJzZUNsb3VkZnJvbnQiLCAiUGFyc2VKU09OIiwgIlBhcnNlS2V5VmFsdWUiLCAiUGFyc2VQb3N0Z3JlcyIsICJQYXJzZVJvdXRlNTMiLCAiUGFyc2VUb09DU0YiLCAiUGFyc2VWUEMiLCAiUGFyc2VXQUYiLCAiUGF0dGVyblRva2VuIiwgIlByb2Nlc3NvciIsICJSZW5hbWVLZXlzIiwgIlNwbGl0U3RyaW5nIiwgIlN1YnN0aXR1dGVTdHJpbmciLCAiVHJpbVN0cmluZyIsICJUeXBlQ29udmVydGVyIiwgIlVwcGVyQ2FzZVN0cmluZyIsICJQdXRBY2NvdW50UG9saWN5UmVxdWVzdCIsICJQdXRBY2NvdW50UG9saWN5UmVzcG9uc2UiLCAiUHV0RGF0YVByb3RlY3Rpb25Qb2xpY3lSZXF1ZXN0IiwgIlB1dERhdGFQcm90ZWN0aW9uUG9saWN5UmVzcG9uc2UiLCAiUHV0RGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeVJlcXVlc3QiLCAiUHV0RGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeVJlc3BvbnNlIiwgIlB1dERlbGl2ZXJ5RGVzdGluYXRpb25SZXF1ZXN0IiwgIlB1dERlbGl2ZXJ5RGVzdGluYXRpb25SZXNwb25zZSIsICJQdXREZWxpdmVyeVNvdXJjZVJlcXVlc3QiLCAiUHV0RGVsaXZlcnlTb3VyY2VSZXNwb25zZSIsICJQdXREZXN0aW5hdGlvblBvbGljeVJlcXVlc3QiLCAiUHV0RGVzdGluYXRpb25SZXF1ZXN0IiwgIlB1dERlc3RpbmF0aW9uUmVzcG9uc2UiLCAiUHV0SW5kZXhQb2xpY3lSZXF1ZXN0IiwgIlB1dEluZGV4UG9saWN5UmVzcG9uc2UiLCAiUHV0SW50ZWdyYXRpb25SZXF1ZXN0IiwgIlJlc291cmNlQ29uZmlnIiwgIlB1dEludGVncmF0aW9uUmVzcG9uc2UiLCAiUHV0TG9nRXZlbnRzUmVxdWVzdCIsICJJbnB1dExvZ0V2ZW50cyIsICJQdXRMb2dFdmVudHNSZXNwb25zZSIsICJSZWplY3RlZExvZ0V2ZW50c0luZm8iLCAiUmVqZWN0ZWRFbnRpdHlJbmZvIiwgIlB1dExvZ0dyb3VwRGVsZXRpb25Qcm90ZWN0aW9uUmVxdWVzdCIsICJQdXRNZXRyaWNGaWx0ZXJSZXF1ZXN0IiwgIlB1dFF1ZXJ5RGVmaW5pdGlvblJlcXVlc3QiLCAiUHV0UXVlcnlEZWZpbml0aW9uUmVzcG9uc2UiLCAiUHV0UmVzb3VyY2VQb2xpY3lSZXF1ZXN0IiwgIlB1dFJlc291cmNlUG9saWN5UmVzcG9uc2UiLCAiUmVzb3VyY2VQb2xpY3kiLCAiUHV0UmV0ZW50aW9uUG9saWN5UmVxdWVzdCIsICJQdXRTdWJzY3JpcHRpb25GaWx0ZXJSZXF1ZXN0IiwgIlB1dFRyYW5zZm9ybWVyUmVxdWVzdCIsICJRdWVyeUNvbXBpbGVFcnJvckxvY2F0aW9uIiwgIlF1ZXJ5RGVmaW5pdGlvbiIsICJRdWVyeUluZm8iLCAiUmVjb3JkRmllbGQiLCAiUmVuYW1lS2V5RW50cnkiLCAiUmVuYW1lS2V5RW50cmllcyIsICJSZXN1bHRGaWVsZCIsICJTM1RhYmxlSW50ZWdyYXRpb25Tb3VyY2UiLCAiU2NoZWR1bGVkUXVlcnlEZXN0aW5hdGlvbiIsICJTY2hlZHVsZWRRdWVyeVN1bW1hcnkiLCAiU2VhcmNoZWRMb2dTdHJlYW0iLCAiU3BsaXRTdHJpbmdFbnRyaWVzIiwgIlNwbGl0U3RyaW5nRW50cnkiLCAiU3RhcnRMaXZlVGFpbFJlcXVlc3QiLCAiU3RhcnRMaXZlVGFpbFJlc3BvbnNlIiwgIlN0YXJ0TGl2ZVRhaWxSZXNwb25zZVN0cmVhbSIsICJTdGFydFF1ZXJ5UmVxdWVzdCIsICJTdGFydFF1ZXJ5UmVzcG9uc2UiLCAiU3RvcFF1ZXJ5UmVxdWVzdCIsICJTdG9wUXVlcnlSZXNwb25zZSIsICJTdWJzY3JpcHRpb25GaWx0ZXIiLCAiU3Vic3RpdHV0ZVN0cmluZ0VudHJpZXMiLCAiU3Vic3RpdHV0ZVN0cmluZ0VudHJ5IiwgIlN1cHByZXNzaW9uUGVyaW9kIiwgIlRhZ0xvZ0dyb3VwUmVxdWVzdCIsICJUYWdSZXNvdXJjZVJlcXVlc3QiLCAiVGVzdE1ldHJpY0ZpbHRlclJlcXVlc3QiLCAiVGVzdE1ldHJpY0ZpbHRlclJlc3BvbnNlIiwgIk1ldHJpY0ZpbHRlck1hdGNoZXMiLCAiVGVzdFRyYW5zZm9ybWVyUmVxdWVzdCIsICJUZXN0VHJhbnNmb3JtZXJSZXNwb25zZSIsICJUcmFuc2Zvcm1lZExvZ3MiLCAiVHJhbnNmb3JtZWRMb2dSZWNvcmQiLCAiVHJpZ2dlckhpc3RvcnlSZWNvcmQiLCAiU2NoZWR1bGVkUXVlcnlEZXN0aW5hdGlvbkxpc3QiLCAiVHlwZUNvbnZlcnRlckVudHJpZXMiLCAiVHlwZUNvbnZlcnRlckVudHJ5IiwgIlVudGFnTG9nR3JvdXBSZXF1ZXN0IiwgIlVudGFnUmVzb3VyY2VSZXF1ZXN0IiwgIlVwZGF0ZUFub21hbHlSZXF1ZXN0IiwgIlVwZGF0ZURlbGl2ZXJ5Q29uZmlndXJhdGlvblJlcXVlc3QiLCAiVXBkYXRlRGVsaXZlcnlDb25maWd1cmF0aW9uUmVzcG9uc2UiLCAiVXBkYXRlTG9nQW5vbWFseURldGVjdG9yUmVxdWVzdCIsICJVcGRhdGVTY2hlZHVsZWRRdWVyeVJlcXVlc3QiLCAiVXBkYXRlU2NoZWR1bGVkUXVlcnlSZXNwb25zZSIsICJfX1VuaXQiLCAiUmVzdWx0Um93cyIsICJBc3NvY2lhdGVLbXNLZXkiLCAiQXNzb2NpYXRlU291cmNlVG9TM1RhYmxlSW50ZWdyYXRpb24iLCAiQ2FuY2VsRXhwb3J0VGFzayIsICJDYW5jZWxJbXBvcnRUYXNrIiwgIkNyZWF0ZURlbGl2ZXJ5IiwgIkNyZWF0ZUV4cG9ydFRhc2siLCAiQ3JlYXRlSW1wb3J0VGFzayIsICJDcmVhdGVMb2dBbm9tYWx5RGV0ZWN0b3IiLCAiQ3JlYXRlTG9nR3JvdXAiLCAiQ3JlYXRlTG9nU3RyZWFtIiwgIkNyZWF0ZVNjaGVkdWxlZFF1ZXJ5IiwgIkRlbGV0ZUFjY291bnRQb2xpY3kiLCAiRGVsZXRlRGF0YVByb3RlY3Rpb25Qb2xpY3kiLCAiRGVsZXRlRGVsaXZlcnkiLCAiRGVsZXRlRGVsaXZlcnlEZXN0aW5hdGlvbiIsICJEZWxldGVEZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5IiwgIkRlbGV0ZURlbGl2ZXJ5U291cmNlIiwgIkRlbGV0ZURlc3RpbmF0aW9uIiwgIkRlbGV0ZUluZGV4UG9saWN5IiwgIkRlbGV0ZUludGVncmF0aW9uIiwgIkRlbGV0ZUxvZ0Fub21hbHlEZXRlY3RvciIsICJEZWxldGVMb2dHcm91cCIsICJEZWxldGVMb2dTdHJlYW0iLCAiRGVsZXRlTWV0cmljRmlsdGVyIiwgIkRlbGV0ZVF1ZXJ5RGVmaW5pdGlvbiIsICJEZWxldGVSZXNvdXJjZVBvbGljeSIsICJEZWxldGVSZXRlbnRpb25Qb2xpY3kiLCAiRGVsZXRlU2NoZWR1bGVkUXVlcnkiLCAiRGVsZXRlU3Vic2NyaXB0aW9uRmlsdGVyIiwgIkRlbGV0ZVRyYW5zZm9ybWVyIiwgIkRlc2NyaWJlQWNjb3VudFBvbGljaWVzIiwgIkRlc2NyaWJlQ29uZmlndXJhdGlvblRlbXBsYXRlcyIsICJEZXNjcmliZURlbGl2ZXJpZXMiLCAiRGVzY3JpYmVEZWxpdmVyeURlc3RpbmF0aW9ucyIsICJEZXNjcmliZURlbGl2ZXJ5U291cmNlcyIsICJEZXNjcmliZURlc3RpbmF0aW9ucyIsICJEZXNjcmliZUV4cG9ydFRhc2tzIiwgIkRlc2NyaWJlRmllbGRJbmRleGVzIiwgIkRlc2NyaWJlSW1wb3J0VGFza0JhdGNoZXMiLCAiRGVzY3JpYmVJbXBvcnRUYXNrcyIsICJEZXNjcmliZUluZGV4UG9saWNpZXMiLCAiRGVzY3JpYmVMb2dHcm91cHMiLCAiRGVzY3JpYmVMb2dTdHJlYW1zIiwgIkRlc2NyaWJlTWV0cmljRmlsdGVycyIsICJEZXNjcmliZVF1ZXJpZXMiLCAiRGVzY3JpYmVRdWVyeURlZmluaXRpb25zIiwgIkRlc2NyaWJlUmVzb3VyY2VQb2xpY2llcyIsICJEZXNjcmliZVN1YnNjcmlwdGlvbkZpbHRlcnMiLCAiRGlzYXNzb2NpYXRlS21zS2V5IiwgIkRpc2Fzc29jaWF0ZVNvdXJjZUZyb21TM1RhYmxlSW50ZWdyYXRpb24iLCAiRmlsdGVyTG9nRXZlbnRzIiwgIkdldERhdGFQcm90ZWN0aW9uUG9saWN5IiwgIkdldERlbGl2ZXJ5IiwgIkdldERlbGl2ZXJ5RGVzdGluYXRpb24iLCAiR2V0RGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeSIsICJHZXREZWxpdmVyeVNvdXJjZSIsICJHZXRJbnRlZ3JhdGlvbiIsICJHZXRMb2dBbm9tYWx5RGV0ZWN0b3IiLCAiR2V0TG9nRXZlbnRzIiwgIkdldExvZ0ZpZWxkcyIsICJHZXRMb2dHcm91cEZpZWxkcyIsICJHZXRMb2dPYmplY3QiLCAiR2V0TG9nUmVjb3JkIiwgIkdldFF1ZXJ5UmVzdWx0cyIsICJHZXRTY2hlZHVsZWRRdWVyeSIsICJHZXRTY2hlZHVsZWRRdWVyeUhpc3RvcnkiLCAiR2V0VHJhbnNmb3JtZXIiLCAiTGlzdEFnZ3JlZ2F0ZUxvZ0dyb3VwU3VtbWFyaWVzIiwgIkxpc3RBbm9tYWxpZXMiLCAiTGlzdEludGVncmF0aW9ucyIsICJMaXN0TG9nQW5vbWFseURldGVjdG9ycyIsICJMaXN0TG9nR3JvdXBzIiwgIkxpc3RMb2dHcm91cHNGb3JRdWVyeSIsICJMaXN0U2NoZWR1bGVkUXVlcmllcyIsICJMaXN0U291cmNlc0ZvclMzVGFibGVJbnRlZ3JhdGlvbiIsICJMaXN0VGFnc0ZvclJlc291cmNlIiwgIkxpc3RUYWdzTG9nR3JvdXAiLCAiUHV0QWNjb3VudFBvbGljeSIsICJQdXREYXRhUHJvdGVjdGlvblBvbGljeSIsICJQdXREZWxpdmVyeURlc3RpbmF0aW9uIiwgIlB1dERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3kiLCAiUHV0RGVsaXZlcnlTb3VyY2UiLCAiUHV0RGVzdGluYXRpb24iLCAiUHV0RGVzdGluYXRpb25Qb2xpY3kiLCAiUHV0SW5kZXhQb2xpY3kiLCAiUHV0SW50ZWdyYXRpb24iLCAiUHV0TG9nRXZlbnRzIiwgIlB1dExvZ0dyb3VwRGVsZXRpb25Qcm90ZWN0aW9uIiwgIlB1dE1ldHJpY0ZpbHRlciIsICJQdXRRdWVyeURlZmluaXRpb24iLCAiUHV0UmVzb3VyY2VQb2xpY3kiLCAiUHV0UmV0ZW50aW9uUG9saWN5IiwgIlB1dFN1YnNjcmlwdGlvbkZpbHRlciIsICJQdXRUcmFuc2Zvcm1lciIsICJTdGFydExpdmVUYWlsIiwgIlN0YXJ0UXVlcnkiLCAiU3RvcFF1ZXJ5IiwgIlRhZ0xvZ0dyb3VwIiwgIlRhZ1Jlc291cmNlIiwgIlRlc3RNZXRyaWNGaWx0ZXIiLCAiVGVzdFRyYW5zZm9ybWVyIiwgIlVudGFnTG9nR3JvdXAiLCAiVW50YWdSZXNvdXJjZSIsICJVcGRhdGVBbm9tYWx5IiwgIlVwZGF0ZURlbGl2ZXJ5Q29uZmlndXJhdGlvbiIsICJVcGRhdGVMb2dBbm9tYWx5RGV0ZWN0b3IiLCAiVXBkYXRlU2NoZWR1bGVkUXVlcnkiLCAiQXNzb2NpYXRlS21zS2V5Q29tbWFuZCIsICJDb21tYW5kIiwgImNzIiwgIm8iLCAiQXNzb2NpYXRlU291cmNlVG9TM1RhYmxlSW50ZWdyYXRpb25Db21tYW5kIiwgIkNhbmNlbEV4cG9ydFRhc2tDb21tYW5kIiwgIkNhbmNlbEltcG9ydFRhc2tDb21tYW5kIiwgIkNyZWF0ZURlbGl2ZXJ5Q29tbWFuZCIsICJDcmVhdGVFeHBvcnRUYXNrQ29tbWFuZCIsICJDcmVhdGVJbXBvcnRUYXNrQ29tbWFuZCIsICJDcmVhdGVMb2dBbm9tYWx5RGV0ZWN0b3JDb21tYW5kIiwgIkNyZWF0ZUxvZ0dyb3VwQ29tbWFuZCIsICJDcmVhdGVMb2dTdHJlYW1Db21tYW5kIiwgIkNyZWF0ZVNjaGVkdWxlZFF1ZXJ5Q29tbWFuZCIsICJEZWxldGVBY2NvdW50UG9saWN5Q29tbWFuZCIsICJEZWxldGVEYXRhUHJvdGVjdGlvblBvbGljeUNvbW1hbmQiLCAiRGVsZXRlRGVsaXZlcnlDb21tYW5kIiwgIkRlbGV0ZURlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kIiwgIkRlbGV0ZURlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kIiwgIkRlbGV0ZURlbGl2ZXJ5U291cmNlQ29tbWFuZCIsICJEZWxldGVEZXN0aW5hdGlvbkNvbW1hbmQiLCAiRGVsZXRlSW5kZXhQb2xpY3lDb21tYW5kIiwgIkRlbGV0ZUludGVncmF0aW9uQ29tbWFuZCIsICJEZWxldGVMb2dBbm9tYWx5RGV0ZWN0b3JDb21tYW5kIiwgIkRlbGV0ZUxvZ0dyb3VwQ29tbWFuZCIsICJEZWxldGVMb2dTdHJlYW1Db21tYW5kIiwgIkRlbGV0ZU1ldHJpY0ZpbHRlckNvbW1hbmQiLCAiRGVsZXRlUXVlcnlEZWZpbml0aW9uQ29tbWFuZCIsICJEZWxldGVSZXNvdXJjZVBvbGljeUNvbW1hbmQiLCAiRGVsZXRlUmV0ZW50aW9uUG9saWN5Q29tbWFuZCIsICJEZWxldGVTY2hlZHVsZWRRdWVyeUNvbW1hbmQiLCAiRGVsZXRlU3Vic2NyaXB0aW9uRmlsdGVyQ29tbWFuZCIsICJEZWxldGVUcmFuc2Zvcm1lckNvbW1hbmQiLCAiRGVzY3JpYmVBY2NvdW50UG9saWNpZXNDb21tYW5kIiwgIkRlc2NyaWJlQ29uZmlndXJhdGlvblRlbXBsYXRlc0NvbW1hbmQiLCAiRGVzY3JpYmVEZWxpdmVyaWVzQ29tbWFuZCIsICJEZXNjcmliZURlbGl2ZXJ5RGVzdGluYXRpb25zQ29tbWFuZCIsICJEZXNjcmliZURlbGl2ZXJ5U291cmNlc0NvbW1hbmQiLCAiRGVzY3JpYmVEZXN0aW5hdGlvbnNDb21tYW5kIiwgIkRlc2NyaWJlRXhwb3J0VGFza3NDb21tYW5kIiwgIkRlc2NyaWJlRmllbGRJbmRleGVzQ29tbWFuZCIsICJEZXNjcmliZUltcG9ydFRhc2tCYXRjaGVzQ29tbWFuZCIsICJEZXNjcmliZUltcG9ydFRhc2tzQ29tbWFuZCIsICJEZXNjcmliZUluZGV4UG9saWNpZXNDb21tYW5kIiwgIkRlc2NyaWJlTG9nR3JvdXBzQ29tbWFuZCIsICJEZXNjcmliZUxvZ1N0cmVhbXNDb21tYW5kIiwgIkRlc2NyaWJlTWV0cmljRmlsdGVyc0NvbW1hbmQiLCAiRGVzY3JpYmVRdWVyaWVzQ29tbWFuZCIsICJEZXNjcmliZVF1ZXJ5RGVmaW5pdGlvbnNDb21tYW5kIiwgIkRlc2NyaWJlUmVzb3VyY2VQb2xpY2llc0NvbW1hbmQiLCAiRGVzY3JpYmVTdWJzY3JpcHRpb25GaWx0ZXJzQ29tbWFuZCIsICJEaXNhc3NvY2lhdGVLbXNLZXlDb21tYW5kIiwgIkRpc2Fzc29jaWF0ZVNvdXJjZUZyb21TM1RhYmxlSW50ZWdyYXRpb25Db21tYW5kIiwgIkZpbHRlckxvZ0V2ZW50c0NvbW1hbmQiLCAiR2V0RGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kIiwgIkdldERlbGl2ZXJ5Q29tbWFuZCIsICJHZXREZWxpdmVyeURlc3RpbmF0aW9uQ29tbWFuZCIsICJHZXREZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5Q29tbWFuZCIsICJHZXREZWxpdmVyeVNvdXJjZUNvbW1hbmQiLCAiR2V0SW50ZWdyYXRpb25Db21tYW5kIiwgIkdldExvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmQiLCAiR2V0TG9nRXZlbnRzQ29tbWFuZCIsICJHZXRMb2dGaWVsZHNDb21tYW5kIiwgIkdldExvZ0dyb3VwRmllbGRzQ29tbWFuZCIsICJHZXRMb2dPYmplY3RDb21tYW5kIiwgIkdldExvZ1JlY29yZENvbW1hbmQiLCAiR2V0UXVlcnlSZXN1bHRzQ29tbWFuZCIsICJHZXRTY2hlZHVsZWRRdWVyeUNvbW1hbmQiLCAiR2V0U2NoZWR1bGVkUXVlcnlIaXN0b3J5Q29tbWFuZCIsICJHZXRUcmFuc2Zvcm1lckNvbW1hbmQiLCAiTGlzdEFnZ3JlZ2F0ZUxvZ0dyb3VwU3VtbWFyaWVzQ29tbWFuZCIsICJMaXN0QW5vbWFsaWVzQ29tbWFuZCIsICJMaXN0SW50ZWdyYXRpb25zQ29tbWFuZCIsICJMaXN0TG9nQW5vbWFseURldGVjdG9yc0NvbW1hbmQiLCAiTGlzdExvZ0dyb3Vwc0NvbW1hbmQiLCAiTGlzdExvZ0dyb3Vwc0ZvclF1ZXJ5Q29tbWFuZCIsICJMaXN0U2NoZWR1bGVkUXVlcmllc0NvbW1hbmQiLCAiTGlzdFNvdXJjZXNGb3JTM1RhYmxlSW50ZWdyYXRpb25Db21tYW5kIiwgIkxpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kIiwgIkxpc3RUYWdzTG9nR3JvdXBDb21tYW5kIiwgIlB1dEFjY291bnRQb2xpY3lDb21tYW5kIiwgIlB1dERhdGFQcm90ZWN0aW9uUG9saWN5Q29tbWFuZCIsICJQdXREZWxpdmVyeURlc3RpbmF0aW9uQ29tbWFuZCIsICJQdXREZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5Q29tbWFuZCIsICJQdXREZWxpdmVyeVNvdXJjZUNvbW1hbmQiLCAiUHV0RGVzdGluYXRpb25Db21tYW5kIiwgIlB1dERlc3RpbmF0aW9uUG9saWN5Q29tbWFuZCIsICJQdXRJbmRleFBvbGljeUNvbW1hbmQiLCAiUHV0SW50ZWdyYXRpb25Db21tYW5kIiwgIlB1dExvZ0V2ZW50c0NvbW1hbmQiLCAiUHV0TG9nR3JvdXBEZWxldGlvblByb3RlY3Rpb25Db21tYW5kIiwgIlB1dE1ldHJpY0ZpbHRlckNvbW1hbmQiLCAiUHV0UXVlcnlEZWZpbml0aW9uQ29tbWFuZCIsICJQdXRSZXNvdXJjZVBvbGljeUNvbW1hbmQiLCAiUHV0UmV0ZW50aW9uUG9saWN5Q29tbWFuZCIsICJQdXRTdWJzY3JpcHRpb25GaWx0ZXJDb21tYW5kIiwgIlB1dFRyYW5zZm9ybWVyQ29tbWFuZCIsICJTdGFydExpdmVUYWlsQ29tbWFuZCIsICJTdGFydFF1ZXJ5Q29tbWFuZCIsICJTdG9wUXVlcnlDb21tYW5kIiwgIlRhZ0xvZ0dyb3VwQ29tbWFuZCIsICJUYWdSZXNvdXJjZUNvbW1hbmQiLCAiVGVzdE1ldHJpY0ZpbHRlckNvbW1hbmQiLCAiVGVzdFRyYW5zZm9ybWVyQ29tbWFuZCIsICJVbnRhZ0xvZ0dyb3VwQ29tbWFuZCIsICJVbnRhZ1Jlc291cmNlQ29tbWFuZCIsICJVcGRhdGVBbm9tYWx5Q29tbWFuZCIsICJVcGRhdGVEZWxpdmVyeUNvbmZpZ3VyYXRpb25Db21tYW5kIiwgIlVwZGF0ZUxvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmQiLCAiVXBkYXRlU2NoZWR1bGVkUXVlcnlDb21tYW5kIiwgImNvbW1hbmRzIiwgIkNsb3VkV2F0Y2hMb2dzIiwgInBhZ2luYXRlRGVzY3JpYmVDb25maWd1cmF0aW9uVGVtcGxhdGVzIiwgInBhZ2luYXRlRGVzY3JpYmVEZWxpdmVyaWVzIiwgInBhZ2luYXRlRGVzY3JpYmVEZWxpdmVyeURlc3RpbmF0aW9ucyIsICJwYWdpbmF0ZURlc2NyaWJlRGVsaXZlcnlTb3VyY2VzIiwgInBhZ2luYXRlRGVzY3JpYmVEZXN0aW5hdGlvbnMiLCAicGFnaW5hdGVEZXNjcmliZUxvZ0dyb3VwcyIsICJwYWdpbmF0ZURlc2NyaWJlTG9nU3RyZWFtcyIsICJwYWdpbmF0ZURlc2NyaWJlTWV0cmljRmlsdGVycyIsICJwYWdpbmF0ZURlc2NyaWJlU3Vic2NyaXB0aW9uRmlsdGVycyIsICJwYWdpbmF0ZUZpbHRlckxvZ0V2ZW50cyIsICJwYWdpbmF0ZUdldExvZ0V2ZW50cyIsICJwYWdpbmF0ZUdldFNjaGVkdWxlZFF1ZXJ5SGlzdG9yeSIsICJwYWdpbmF0ZUxpc3RBZ2dyZWdhdGVMb2dHcm91cFN1bW1hcmllcyIsICJwYWdpbmF0ZUxpc3RBbm9tYWxpZXMiLCAicGFnaW5hdGVMaXN0TG9nQW5vbWFseURldGVjdG9ycyIsICJwYWdpbmF0ZUxpc3RMb2dHcm91cHNGb3JRdWVyeSIsICJwYWdpbmF0ZUxpc3RTY2hlZHVsZWRRdWVyaWVzIiwgInBhZ2luYXRlTGlzdFNvdXJjZXNGb3JTM1RhYmxlSW50ZWdyYXRpb24iLCAiUG9saWN5VHlwZSIsICJTY29wZSIsICJBY3Rpb25TdGF0dXMiLCAiU3RhdGUiLCAiQW5vbWFseURldGVjdG9yU3RhdHVzIiwgIkV2YWx1YXRpb25GcmVxdWVuY3kiLCAiSW1wb3J0U3RhdHVzIiwgIk91dHB1dEZvcm1hdCIsICJEZWxpdmVyeURlc3RpbmF0aW9uVHlwZSIsICJMb2dHcm91cENsYXNzIiwgIlF1ZXJ5TGFuZ3VhZ2UiLCAiU2NoZWR1bGVkUXVlcnlTdGF0ZSIsICJEYXRhUHJvdGVjdGlvblN0YXR1cyIsICJFeHBvcnRUYXNrU3RhdHVzQ29kZSIsICJJbmRleFR5cGUiLCAiSW5kZXhTb3VyY2UiLCAiSW5oZXJpdGVkUHJvcGVydHkiLCAiT3JkZXJCeSIsICJTdGFuZGFyZFVuaXQiLCAiUXVlcnlTdGF0dXMiLCAiUG9saWN5U2NvcGUiLCAiRGlzdHJpYnV0aW9uIiwgIkVudGl0eVJlamVjdGlvbkVycm9yVHlwZSIsICJFdmVudFNvdXJjZSIsICJFeGVjdXRpb25TdGF0dXMiLCAiRmxhdHRlbmVkRWxlbWVudCIsICJPcGVuU2VhcmNoUmVzb3VyY2VTdGF0dXNUeXBlIiwgIkludGVncmF0aW9uU3RhdHVzIiwgIkludGVncmF0aW9uVHlwZSIsICJTY2hlZHVsZWRRdWVyeURlc3RpbmF0aW9uVHlwZSIsICJPQ1NGVmVyc2lvbiIsICJUeXBlIiwgIkxpc3RBZ2dyZWdhdGVMb2dHcm91cFN1bW1hcmllc0dyb3VwQnkiLCAiU3VwcHJlc3Npb25TdGF0ZSIsICJTM1RhYmxlSW50ZWdyYXRpb25Tb3VyY2VTdGF0dXMiLCAiU3VwcHJlc3Npb25Vbml0IiwgIlN1cHByZXNzaW9uVHlwZSIsICJzc3JfZXhwb3J0cyIsICJfX2V4cG9ydCIsICJDT05URU5UX1RZUEUiLCAiWF9PUklHSU5BTF9DT05URU5UX1RZUEUiLCAiYXBwIiwgImdldCIsICJwcm9jZXNzTGFtYmRhUmVzcG9uc2UiLCAiX190b0NvbW1vbkpTIiwgImltcG9ydF9leHByZXNzIiwgImltcG9ydF9wYXRoIiwgImltcG9ydF91cmwiLCAiaW1wb3J0X2V4cHJlc3NfYmFzaWNfYXV0aCIsICJpbXBvcnRfY2xpZW50X2R5bmFtb2RiIiwgImltcG9ydF9saWJfZHluYW1vZGIiLCAiaXNMb2NhbCIsICJsb2dNUlRFcnJvciIsICJuYW1lc3BhY2UiLCAiZXJyIiwgImNvbnRleHQiLCAiZXJyb3IiLCAiRGF0YVN0b3JlTm90Rm91bmRFcnJvciIsICJfRGF0YVN0b3JlTm90Rm91bmRFcnJvciIsICJtZXNzYWdlIiwgIkRhdGFTdG9yZVNlcnZpY2VFcnJvciIsICJfRGF0YVN0b3JlU2VydmljZUVycm9yIiwgIkRhdGFTdG9yZVVuYXZhaWxhYmxlRXJyb3IiLCAiX0RhdGFTdG9yZVVuYXZhaWxhYmxlRXJyb3IiLCAiRGF0YVN0b3JlIiwgIl9EYXRhU3RvcmUiLCAia2V5IiwgImRkYiIsICJyZXNwb25zZSIsICJlcnJvciIsICJsb2dNUlRFcnJvciIsICJpbXBvcnRfc2V0X2Nvb2tpZV9wYXJzZXIiLCAiaW1wb3J0X2NoYW5nZV9jYXNlIiwgImltcG9ydF91cmwiLCAiQUNfQUxMT1dfT1JJR0lOIiwgIkhPU1QiLCAiTE9DQVRJT04iLCAiT1JJR0lOIiwgIlNFVF9DT09LSUUiLCAiVVNFUl9BR0VOVCIsICJIRUFERVJfRk9STUFUUyIsICJYX1BST1hZX1JFUVVFU1RfVVJMIiwgIk1BWF9VUkxfTEVOR1RIX0JZVEVTIiwgIkhlYWRlcnMiLCAiaGVhZGVycyIsICJmb3JtYXQiLCAiSEVBREVSX0ZPUk1BVFMiLCAia2V5IiwgInZhbHVlcyIsICJTRVRfQ09PS0lFIiwgInZhbHVlIiwgImtleUxDIiwgInJlc3VsdCIsICJmaW5hbEtleSIsICJkYXlOYW1lcyIsICJtb250aEFiYnIiLCAibGVhZGluZ1plcm8iLCAibiIsICJzIiwgInJmYzExMjMiLCAiZGF0ZSIsICJ0aW1lIiwgImNvb2tpZUFzU3RyaW5nIiwgImNvb2tpZSIsICJlbGVtZW50cyIsICJJUFY2IiwgIklQVjQiLCAiTE9DQUxIT1NUIiwgIkhPU1RfQU5EX1BPUlRfVEVTVFMiLCAicGFyc2VIb3N0IiwgImhvc3QiLCAidGVzdCIsICJtYXRjaCIsICJwYXJ0cyIsICJwYXJ0IiwgInJld3JpdGVEb21haW4iLCAiZG9tYWluIiwgImFwcEhvc3RuYW1lIiwgInRhcmdldEhvc3QiLCAiZG9tYWluRWxlbWVudHMiLCAieCIsICJkb21haW5TdHJpbmciLCAicGFyc2VkSG9zdCIsICJzdHJpcHBlZE9mZiIsICJyZXdyaXRlU2V0Q29va2llcyIsICJzZXRDb29raWVzIiwgImxvZ2dpbmciLCAicGFyc2VTZXRDb29raWUiLCAibmV3RG9tYWluIiwgInJld3JpdGVQcm94eVJlc3BvbnNlSGVhZGVycyIsICJjYWNoaW5nIiwgImhlYWRlckZvcm1hdCIsICJwcm94eVBhdGgiLCAicmVxdWVzdFVybCIsICJzdGF0dXNDb2RlIiwgInRhcmdldFByb3RvY29sIiwgImFwcFByb3RvY29sIiwgIndvcmtpbmdIZWFkZXJzIiwgImFwcE9yaWdpbiIsICJ0YXJnZXRPcmlnaW4iLCAiZnVsbFJlcXVlc3RVcmwiLCAiWF9QUk9YWV9SRVFVRVNUX1VSTCIsICJwcm94eVBhdGhCYXNlIiwgImFsbG93T3JpZ2luIiwgIkFDX0FMTE9XX09SSUdJTiIsICJ1cGRhdGVkQ29va2llcyIsICJsb2NhdGlvbiIsICJMT0NBVElPTiIsICJsb2NVcmwiLCAibmV3TG9jYXRpb24iLCAiWF9IRUFERVJTX1RPX1JFTU9WRV9QUk9YWSIsICJYX0hFQURFUlNfVE9fQUREIiwgIkFMTE9XRURfQ0FDSElOR19QUk9YWV9SRVFVRVNUX0hFQURFUlMiLCAicmV3cml0ZVByb3h5UmVxdWVzdEhlYWRlcnMiLCAiY2FjaGluZyIsICJoZWFkZXJzIiwgImhlYWRlckZvcm1hdCIsICJ0YXJnZXRQcm90b2NvbCIsICJ0YXJnZXRIb3N0IiwgImxvZ2dpbmciLCAid29ya2luZ0hlYWRlcnMiLCAiSGVhZGVycyIsICJYX0hFQURFUlNfVE9fUkVNT1ZFX1BST1hZIiwgImtleSIsICJVU0VSX0FHRU5UIiwgImhvc3RIZWFkZXIiLCAiSE9TVCIsICJvcmlnaW5IZWFkZXIiLCAiT1JJR0lOIiwgInRhcmdldE9yaWdpbiIsICJ2YWx1ZSIsICJpbXBvcnRfaHR0cF9wcm94eV9taWRkbGV3YXJlIiwgInN0cmlwUHJveHlQYXRoUkUiLCAiYXBwbHlQcm94eVJlcXVlc3RIZWFkZXJzIiwgInByb3h5UmVxdWVzdCIsICJpbmNvbWluZ1JlcXVlc3QiLCAiY2FjaGluZyIsICJwcm94eVBhdGgiLCAidGFyZ2V0SG9zdCIsICJ0YXJnZXRQcm90b2NvbCIsICJyZXdyaXRlRm4iLCAiaGVhZGVycyIsICJuZXdIZWFkZXJzIiwgInJld3JpdGVQcm94eVJlcXVlc3RIZWFkZXJzIiwgImtleSIsICJ2YWx1ZSIsICJjb25maWd1cmVQcm94eSIsICJhcHBIb3N0bmFtZSIsICJhcHBQcm90b2NvbCIsICJjcmVhdGVQcm94eUZuIiwgImNyZWF0ZVByb3h5IiwgInRhcmdldE9yaWdpbiIsICJlcnIiLCAicmVxIiwgInJlcyIsICJwcm94eVJlc3BvbnNlIiwgInJlcXVlc3RVcmwiLCAicmV3cml0ZVByb3h5UmVzcG9uc2VIZWFkZXJzIiwgImNvbmZpZ3VyZVByb3h5aW5nIiwgInByb3h5Q29uZmlncyIsICJwcm94aWVzIiwgImNvbmZpZyIsICJwcm94eSIsICJpbXBvcnRfZXhwcmVzcyIsICJpbXBvcnRfZnMiLCAiaW1wb3J0X3BhdGgiLCAiaW1wb3J0X21pbWVfdHlwZXMiLCAiaW1wb3J0X3FzIiwgIk1PQklGWV9QQVRIIiwgIlBST1hZX1BBVEhfQkFTRSIsICJDQUNISU5HX1BBVEhfQkFTRSIsICJCVU5ETEVfUEFUSF9CQVNFIiwgInByb3h5QmFzZVBhdGgiLCAiYnVuZGxlQmFzZVBhdGgiLCAiWF9IRUFERVJTX1RPX1JFTU9WRV9PUklHSU4iLCAiWF9NT0JJRllfUkVRVUVTVF9DTEFTUyIsICJYX01PQklGWV9RVUVSWVNUUklORyIsICJYX01PQklGWV9SRVFVRVNUX1BST0NFU1NPUl9MT0NBTCIsICJDT05URU5UX1RZUEUiLCAiTk9fQ0FDSEUiLCAiX2lzQnVuZGxlT3JQcm94eVBhdGgiLCAidXJsIiwgIl9nZXRSZXF1ZXN0UHJvY2Vzc29yIiwgInJlcXVlc3RQcm9jZXNzb3JQYXRoIiwgImZzIiwgImdldFJlcXVlc3RQcm9jZXNzb3JQYXJhbWV0ZXJzIiwgInVwZGF0ZVBhdGhBbmRRdWVyeVN0cmluZyIsICJyZXEiLCAidXBkYXRlZFBhdGgiLCAidXBkYXRlZFF1ZXJ5c3RyaW5nIiwgIm5ld1F1ZXJ5IiwgInFzIiwgImNsZWFuVXBIZWFkZXJzIiwgImNsZWFudXBMb2NhbFJlcXVlc3RQcm9jZXNzb3JIZWFkZXIiLCAia2V5IiwgImdldE1vYmlmeVF1ZXJ5U3RyaW5nIiwgIm9yaWdpbmFsUXVlcnlzdHJpbmciLCAieFF1ZXJ5U3RyaW5nIiwgImNyZWF0ZU1SVFJlcXVlc3RQcm9jZXNzb3JNaWRkbGV3YXJlIiwgInByb3h5Q29uZmlncyIsICJwcm9jZXNzSW5jb21pbmdSZXF1ZXN0IiwgInJlcyIsICJyZXF1ZXN0UHJvY2Vzc29yIiwgImhlYWRlcnMiLCAiSGVhZGVycyIsICJhcHBIb3N0bmFtZSIsICJkZXBsb3lUYXJnZXQiLCAiZW52aXJvbm1lbnQiLCAicHJvY2Vzc2VkIiwgInZhbHVlIiwgIm5leHQiLCAiZXJyIiwgImNyZWF0ZU1SVFByb3h5TWlkZGxld2FyZXMiLCAiYXBwUHJvdG9jb2wiLCAiaW5jbHVkZUNhY2hpbmciLCAiY3JlYXRlUHJveHlGbiIsICJwcm94aWVzIiwgImNvbmZpZ3VyZVByb3h5aW5nIiwgIm1pZGRsZXdhcmVzIiwgInByb3h5IiwgInByb3h5UGF0aCIsICJjYWNoaW5nUHJveHlQYXRoIiwgInNldExvY2FsQXNzZXRIZWFkZXJzIiwgImFzc2V0UGF0aCIsICJiYXNlIiwgInBhdGgiLCAiY29udGVudFR5cGUiLCAibWltZVR5cGVzIiwgIm10aW1lIiwgIm10aW1lUkZDMTEyMyIsICJjcmVhdGVNUlRTdGF0aWNBc3NldFNlcnZpbmdNaWRkbGV3YXJlIiwgInN0YXRpY0Fzc2V0RGlyIiwgImV4cHJlc3MiLCAiY3JlYXRlTVJUQ29tbW9uTWlkZGxld2FyZSIsICJjcmVhdGVNUlRDbGVhblVwTWlkZGxld2FyZSIsICJpbXBvcnRfY2xpZW50X2Nsb3Vkd2F0Y2giLCAiaXNSZW1vdGUiLCAiaXNMb2NhbCIsICJERUZBVUxUX05BTUVTUEFDRSIsICJnZXREaW1lbnNpb25zIiwgIk1ldHJpY3NTZW5kZXIiLCAiX01ldHJpY3NTZW5kZXIiLCAibWV0cmljIiwgImRlZmF1bHRUaW1lc3RhbXAiLCAibWV0cmljRGF0YSIsICJkaW1lbnNpb25zIiwgImtleSIsICJ2YWx1ZSIsICJjdyIsICJtZXRyaWNzIiwgImNvbW1hbmQiLCAiZXJyIiwgInByb21pc2VzIiwgImJhdGNoU2l6ZSIsICJpIiwgImJhdGNoIiwgIm1ldHJpY3NUb1NlbmQiLCAiaW1tZWRpYXRlIiwgIm5vdyIsICJtZXRyaWNEYXRhQXJyYXkiLCAiaW1wb3J0X2h0dHAiLCAiaW1wb3J0X3Byb21pc2VzIiwgImltcG9ydF9ub2RlX3psaWIiLCAiaW1wb3J0X25lZ290aWF0b3IiLCAiaW1wb3J0X2NvbXByZXNzaWJsZSIsICJjIiwgImQiLCAiYSIsICJiIiwgImltcG9ydF9ub2RlX2h0dHAiLCAiaW1wb3J0X25vZGVfc3RyZWFtIiwgIkRFRkFVTFRfQklOQVJZX0VOQ09ESU5HUyIsICJERUZBVUxUX0JJTkFSWV9DT05URU5UX1RZUEVTIiwgIkVtcHR5UmVzcG9uc2UiLCAiY3VycmVudEludm9rZSIsICJnZXRDdXJyZW50SW52b2tlIiwgIl9fbmFtZSIsICJzZXRDdXJyZW50SW52b2tlIiwgImV2ZW50IiwgImNvbnRleHQiLCAiZ2V0RXZlbnRCb2R5QXNCdWZmZXIiLCAiYm9keSIsICJpc0Jhc2U2NEVuY29kZWQiLCAiZW5jb2RpbmciLCAiYnVmZmVyIiwgImNvbnRlbnRMZW5ndGgiLCAiZ2V0RmxhdHRlbmVkSGVhZGVyc01hcCIsICJoZWFkZXJzTWFwIiwgInNlcGFyYXRvciIsICJsb3dlckNhc2VLZXkiLCAiYWNjIiwgImhlYWRlcktleSIsICJuZXdLZXkiLCAiaGVhZGVyVmFsdWUiLCAiZ2V0TXVsdGlWYWx1ZUhlYWRlcnNNYXAiLCAiZ2V0RmxhdHRlbmVkSGVhZGVyc01hcEFuZENvb2tpZXMiLCAibG93ZXJIZWFkZXJLZXkiLCAicGFyc2VIZWFkZXJzIiwgImhlYWRlcnMiLCAicmVzdWx0IiwgImhlYWRlcnNBcnIiLCAiaSIsICJyb3ciLCAiaW5kZXgiLCAia2V5IiwgInZhbHVlIiwgImtleXNUb0xvd2VyY2FzZSIsICJvYmoiLCAiayIsICJ2IiwgImlzQ29udGVudEVuY29kaW5nQmluYXJ5IiwgImJpbmFyeUVuY29kaW5nVHlwZXMiLCAiY29udGVudEVuY29kaW5ncyIsICJnZXRDb250ZW50VHlwZSIsICJjb250ZW50VHlwZUhlYWRlclJhdyIsICJjb250ZW50VHlwZUhlYWRlciIsICJjb250ZW50VHlwZVN0YXJ0IiwgImlzQ29udGVudFR5cGVCaW5hcnkiLCAiYmluYXJ5Q29udGVudFR5cGVzIiwgImNvbnRlbnRUeXBlIiwgImlzQmluYXJ5IiwgImJpbmFyeVNldHRpbmdzIiwgIk5PX09QIiwgIkludGVybmFsTG9nZ2VyU3ltYm9sIiwgImxvZ0xldmVscyIsICJsYXp5UHJpbnQiLCAicHJpbnQiLCAiZm4iLCAibWVzc2FnZSIsICJhZGRpdGlvbmFsIiwgImNyZWF0ZURlZmF1bHRMb2dnZXIiLCAibGV2ZWwiLCAibGV2ZWxzIiwgImxvZ2dlciIsICJjb25zb2xlTWV0aG9kIiwgImlzSW50ZXJuYWxMb2dnZXIiLCAiZ2V0RGVmYXVsdElmVW5kZWZpbmVkIiwgImRlZmF1bHRWYWx1ZSIsICJnZXRQYXRoV2l0aFF1ZXJ5U3RyaW5nUGFyYW1zIiwgInBhdGgiLCAicXVlcnlQYXJhbXMiLCAicXVlcnlQYXJhbXNTdHJpbmciLCAiZ2V0UXVlcnlQYXJhbXNTdHJpbmdGcm9tUmVjb3JkIiwgInF1ZXJ5UGFyYW1zUmVjb3JkIiwgInNlYXJjaFBhcmFtcyIsICJtdWx0aVZhbHVlSGVhZGVyc0VudHJpZXMiLCAiYXJyYXlWYWx1ZSIsICJOT09QQmFzZVBhdGgiLCAiYnVpbGRTdHJpcEJhc2VQYXRoIiwgImJhc2VQYXRoIiwgImxlbmd0aCIsICJpc1N0cmVhbUVuZGVkIiwgInN0cmVhbSIsICJ3YWl0Rm9yU3RyZWFtQ29tcGxldGUiLCAicmVzb2x2ZSIsICJyZWplY3QiLCAiaXNDb21wbGV0ZSIsICJjb21wbGV0ZSIsICJlcnIiLCAiSFRUUFNfUE9SVCIsICJTZXJ2ZXJsZXNzUmVxdWVzdCIsICJJbmNvbWluZ01lc3NhZ2UiLCAibWV0aG9kIiwgInVybCIsICJyZW1vdGVBZGRyZXNzIiwgImdldFN0cmluZyIsICJkYXRhIiwgImhlYWRlckVuZCIsICJlbmRDaHVua2VkIiwgIkJPRFkiLCAiSEVBREVSUyIsICJhZGREYXRhIiwgIlNlcnZlcmxlc3NSZXNwb25zZSIsICJfU2VydmVybGVzc1Jlc3BvbnNlIiwgIlNlcnZlclJlc3BvbnNlIiwgIndyaXRlc1RvSWdub3JlIiwgInNvY2tldCIsICJjYiIsICJzdHJpbmciLCAicmVtYWluZGVyIiwgInJlcyIsICJyZXNwb25zZSIsICJzdGF0dXNDb2RlIiwgInN0YXR1c01lc3NhZ2UiLCAiaGVhZGVyc09iak9yQXJyYXkiLCAiYXJyYXlIZWFkZXJzIiwgIm5hbWUiLCAiY3JsZkJ1ZmZlciIsICJlbmRTdGF0dXNTZXBhcmF0b3IiLCAiU2VydmVybGVzc1N0cmVhbVJlc3BvbnNlIiwgIm9uUmVjZWl2ZUhlYWRlcnMiLCAibG9nIiwgImludGVybmFsV3JpdGFibGUiLCAiZmlyc3RDcmxmQnVmZmVyRW5jb3VudGVyZWQiLCAiY2h1bmtFbmNvdW50ZXJlZCIsICJzdHJpbmdEYXRhIiwgImVuZFN0YXR1c0luZGV4IiwgInN0YXR1cyIsICJlbmRIZWFkZXJJbmRleCIsICJoZWFkZXJEYXRhIiwgIkJhc2VIYW5kbGVyIiwgImFkYXB0ZXJzIiwgInJlc29sdmVkQWRhcHRlcnMiLCAiYWRhcHRlciIsICJyZXF1ZXN0VmFsdWVzIiwgInJlcXVlc3QiLCAiU2VydmVybGVzc0FkYXB0ZXIiLCAiX1NlcnZlcmxlc3NBZGFwdGVyIiwgIl9fbmFtZSIsICJhcHAiLCAiREVGQVVMVF9CSU5BUllfRU5DT0RJTkdTIiwgIkRFRkFVTFRfQklOQVJZX0NPTlRFTlRfVFlQRVMiLCAiY3JlYXRlRGVmYXVsdExvZ2dlciIsICJoYW5kbGVyIiwgInJlc29sdmVyIiwgImZyYW1ld29yayIsICJsb2dnZXIiLCAiYmluYXJ5U2V0dGluZ3MiLCAicmVzcG9uZFdpdGhFcnJvcnMiLCAiYWRhcHRlciIsICJjcmVhdGVac3RkQ29tcHJlc3MiLCAiemxpYiIsICJpbXBvcnRfcHJvbWlzZXMiLCAiaW1wb3J0X3BhdGgiLCAiaW1wb3J0X3VybCIsICJpbXBvcnRfd2luc3RvbiIsICJpbXBvcnRfY3J5cHRvIiwgImltcG9ydF9jbGllbnRfc2VjcmV0c19tYW5hZ2VyIiwgImltcG9ydF9tZXRhIiwgIl9fZGlybmFtZSIsICJwYXRoIiwgIkludGVudGlvbmFsRXJyb3IiLCAiZGlhZ25vc3RpY3MiLCAicGFyYW1zIiwgIkVOVlNfVE9fRVhQT1NFIiwgIkJBRFNTTF9UTFMxXzFfVVJMIiwgIkJBRFNTTF9UTFMxXzJfVVJMIiwgInNvcnRPYmplY3RLZXlzIiwgIm8iLCAiayIsICJmaWx0ZXJBbmRTb3J0T2JqZWN0S2V5cyIsICJ3aGl0ZWxpc3QiLCAia2V5IiwgImtleWxjIiwgInBhdHRlcm4iLCAiYWNjIiwgImpzb25Gcm9tUmVxdWVzdCIsICJyZXEiLCAiYWRkaXRpb25hbF9pbmZvIiwgImVjaG8iLCAicmVzIiwgImV4Y2VwdGlvbiIsICJ0bHNWZXJzaW9uVGVzdCIsICJfIiwgInJlc3BvbnNlMTEiLCAicmVzcG9uc2UiLCAicmVzcG9uc2UxMiIsICJjYWNoZVRlc3QiLCAiZHVyYXRpb24iLCAiY29va2llVGVzdCIsICJuYW1lIiwgInZhbHVlIiwgInJlc3BvbnNlSGVhZGVyc1Rlc3QiLCAibXVsdGlWYWx1ZUhlYWRlcnNUZXN0IiwgInNldFN0YXR1c1Rlc3QiLCAic3RhdHVzIiwgIm1lbW9yeVRlc3QiLCAibWVtb3J5X2JlZm9yZSIsICJ0ZXN0X2NvdW50IiwgInRlc3Rfc2l6ZSIsICJmb3JjZV9nYyIsICJwYXJzZUJvb2xlYW4iLCAibWFsbG9jX3RpbWVfc3RhcnQiLCAiYWxsb2NhdGVNZW1vcnkiLCAibWFsbG9jX3RpbWVfbXMiLCAiZ2NfdGltZV9zdGFydCIsICJnY190aW1lX21zIiwgIm1lbW9yeV9hZnRlciIsICJtZW1vcnlfZGVsdGEiLCAiY2FsY3VsYXRlTnVtZXJpY0RlbHRhcyIsICJmYWN0b3IiLCAidGVzdF90b3RhbF9hbGxvY19tYiIsICJidWZmZXIiLCAiaW5kZXgiLCAib2JqMSIsICJvYmoyIiwgImRlbHRhIiwgInN0cmluZ192YWx1ZSIsICJsb3dlckNhc2VWYWx1ZSIsICJoZWFkZXJUZXN0IiwgImxvZ2dpbmdNaWRkbGV3YXJlIiwgIm5leHQiLCAidmFsdWVzIiwgInN0YXR1c0NvZGUiLCAiaGVhZGVycyIsICJlbnZCYXNlUGF0aE1pZGRsZXdhcmUiLCAiYmFzZVBhdGgiLCAic3RyZWFtaW5nVGVzdCIsICJkZWxheU1zIiwgImkiLCAicmVzb2x2ZSIsICJzc3JCdW5kbGVGaWxlVGVzdCIsICJmaWxlTmFtZSIsICJkYXRhIiwgImZzIiwgImpzb25EYXRhIiwgImVycm9yIiwgImdlbmVyYXRlUmFuZG9tVGV4dCIsICJudW1DaGFycyIsICJhbHBoYWJldCIsICJyZXN1bHQiLCAic3RyZWFtaW5nUmVzcG9uc2VMYXJnZSIsICJzdGFydFRpbWUiLCAiaXRlbSIsICJ3aW5zdG9uTG9nZ2luZyIsICJsb2dnZXIiLCAid2luc3RvbiIsICJkZWxheWVkTG9nZ2luZyIsICJkZWxheSIsICJtYXNzTG9nZ2luZyIsICJjb3VudCIsICJ0ZXh0RW5jb2RlciIsICJzaXplIiwgIm1lc3NhZ2UiLCAic2l6ZUluS0IiLCAibGFyZ2VMb2dnaW5nIiwgIm1zZyIsICJ0cmFjZUxvZ2dpbmciLCAic3RhcnQiLCAidHJhY2UiLCAiY3J5cHRvIiwgImRhdGFTdG9yZVRlc3QiLCAic3RvcmUiLCAiRGF0YVN0b3JlIiwgImVyciIsICJEYXRhU3RvcmVVbmF2YWlsYWJsZUVycm9yIiwgIkRhdGFTdG9yZU5vdEZvdW5kRXJyb3IiLCAiRGF0YVN0b3JlU2VydmljZUVycm9yIiwgInNlY3JldHNNYW5hZ2VyVGVzdCIsICJzZWNyZXRJZCIsICJjbGllbnQiLCAiY29tbWFuZCIsICJlcnJvckNvZGUiLCAiZXJyb3JNZXNzYWdlIiwgInByb3h5VHJhbnNmb3JtYXRpb25UZXN0IiwgInNpdGVJZCIsICJhdXRoSGVhZGVyIiwgImNvb2tpZXMiLCAiY29va2llTWFwIiwgImNvb2tpZSIsICJleHBlY3RlZENvb2tpZU5hbWUiLCAiZXhwZWN0ZWRDb29raWVWYWx1ZSIsICJzZmRjRHdzaWRGcm9tSGVhZGVyIiwgInZhbGlkYXRpb25zIiwgImV4cGVjdGVkQXV0aEhlYWRlciIsICJhbGxWYWxpZGF0aW9uc1Bhc3NlZCIsICJpbXBvcnRfY2xpZW50X2xhbWJkYSIsICJpbXBvcnRfY2xpZW50X3MzIiwgImltcG9ydF9jbGllbnRfY2xvdWR3YXRjaF9sb2dzIiwgImltcG9ydF9jbGllbnRfZHluYW1vZGIiLCAiaW1wb3J0X2xpYl9keW5hbW9kYiIsICJoYXNFcnJvck5hbWUiLCAiZXJyb3IiLCAibmFtZSIsICJhd3NFcnJvciIsICJpc29sYXRpb25PcmlnaW5MYW1iZGFUZXN0IiwgImlucHV0IiwgImNsaWVudCIsICJlIiwgImlzb2xhdGlvblMzVGVzdCIsICJyZWdpb24iLCAiaXNvbGF0aW9uTG9nc1Rlc3QiLCAicmFuZG9tU3RyaW5nIiwgImlzb2xhdGlvbkRhbFRlc3QiLCAidGFibGVOYW1lIiwgImRkYkNsaWVudCIsICJleGVjdXRlSXNvbGF0aW9uVGVzdHMiLCAicGFyYW1zIiwgInRlc3RzIiwgInJlc3VsdHMiLCAidGVzdCIsICJrZXlzIiwgImZuIiwgImtleSIsICJvYmoiLCAiaXNvbGF0aW9uVGVzdHMiLCAicmVxIiwgInJlcyIsICJpbXBvcnRfbWV0YSIsICJleHRyYVJlbWFwcGVkSGVhZGVyc01pZGRsZXdhcmUiLCAicmVxIiwgInJlcyIsICJuZXh0IiwgImNyZWF0ZVJlcXVlc3RUaW1pbmdNaWRkbGV3YXJlIiwgImFwcCIsICJhZnRlclJlc3BvbnNlIiwgInJlc3BvbnNlVGltZSIsICJtZXRyaWNzIiwgImdldERpbWVuc2lvbnMiLCAicmVxdWVzdFJlc3VsdCIsICJjcmVhdGVBcHAiLCAiZXhwcmVzcyIsICJNZXRyaWNzU2VuZGVyIiwgImNyZWF0ZU1SVENvbW1vbk1pZGRsZXdhcmUiLCAiaXNMb2NhbCIsICJfX2Rpcm5hbWUiLCAicGF0aCIsICJycEV4dGVuc2lvbiIsICJyZXF1ZXN0UHJvY2Vzc29yUGF0aCIsICJwcm94eUNvbmZpZ3MiLCAiY3JlYXRlTVJUUmVxdWVzdFByb2Nlc3Nvck1pZGRsZXdhcmUiLCAiY3JlYXRlTVJUUHJveHlNaWRkbGV3YXJlcyIsICJwcm94eSIsICJzdGF0aWNBc3NldERpciIsICJjcmVhdGVNUlRTdGF0aWNBc3NldFNlcnZpbmdNaWRkbGV3YXJlIiwgImNyZWF0ZU1SVENsZWFuVXBNaWRkbGV3YXJlIiwgImxvZ2dpbmdNaWRkbGV3YXJlIiwgImVudkJhc2VQYXRoTWlkZGxld2FyZSIsICJleGNlcHRpb24iLCAidGxzVmVyc2lvblRlc3QiLCAiY2FjaGVUZXN0IiwgIm1lbW9yeVRlc3QiLCAiY29va2llVGVzdCIsICJoZWFkZXJUZXN0IiwgImlzb2xhdGlvblRlc3RzIiwgInJlc3BvbnNlSGVhZGVyc1Rlc3QiLCAibXVsdGlWYWx1ZUhlYWRlcnNUZXN0IiwgInN0cmVhbWluZ1Rlc3QiLCAic3NyQnVuZGxlRmlsZVRlc3QiLCAic3RyZWFtaW5nUmVzcG9uc2VMYXJnZSIsICJzZXRTdGF0dXNUZXN0IiwgIndpbnN0b25Mb2dnaW5nIiwgImRlbGF5ZWRMb2dnaW5nIiwgIm1hc3NMb2dnaW5nIiwgImxhcmdlTG9nZ2luZyIsICJ0cmFjZUxvZ2dpbmciLCAiZGF0YVN0b3JlVGVzdCIsICJzZWNyZXRzTWFuYWdlclRlc3QiLCAicHJveHlUcmFuc2Zvcm1hdGlvblRlc3QiLCAiYmFzaWNBdXRoIiwgImVjaG8iLCAiaW1wb3J0X25vZGVfdXRpbCIsICJEZWZhdWx0SGFuZGxlciIsICJCYXNlSGFuZGxlciIsICJfX25hbWUiLCAiYXBwIiwgImZyYW1ld29yayIsICJhZGFwdGVycyIsICJyZXNvbHZlckZhY3RvcnkiLCAiYmluYXJ5U2V0dGluZ3MiLCAicmVzcG9uZFdpdGhFcnJvcnMiLCAibG9nIiwgImV2ZW50IiwgImNvbnRleHQiLCAiY2FsbGJhY2siLCAiYWRhcHRlciIsICJzZXRDdXJyZW50SW52b2tlIiwgInV0aWwiLCAicmVxdWVzdFZhbHVlcyIsICJyZXNwb25zZSIsICJzdGF0dXNDb2RlIiwgImJvZHkiLCAiaGVhZGVycyIsICJpc0Jhc2U2NEVuY29kZWQiLCAic3VjY2Vzc1Jlc3BvbnNlIiwgInJlcXVlc3QiLCAid2FpdEZvclN0cmVhbUNvbXBsZXRlIiwgIlNlcnZlcmxlc3NSZXNwb25zZSIsICJpc0JpbmFyeSIsICJlbmNvZGluZyIsICJsb2dCb2R5IiwgIkNhbGxiYWNrUmVzb2x2ZXIiLCAiX19uYW1lIiwgImNhbGxiYWNrIiwgImV2ZW50IiwgImxvZyIsICJyZXNwb25kV2l0aEVycm9ycyIsICJhZGFwdGVyIiwgImRlbGVnYXRlZFJlc29sdmVyIiwgInJlc3BvbnNlIiwgImVycm9yIiwgInRhc2siLCAiQWxiQWRhcHRlciIsICJfQWxiQWRhcHRlciIsICJvcHRpb25zIiwgImJ1aWxkU3RyaXBCYXNlUGF0aCIsICJfX25hbWUiLCAiZXZlbnQiLCAiYWxiRXZlbnQiLCAibWV0aG9kIiwgInBhdGgiLCAiaGVhZGVycyIsICJnZXRGbGF0dGVuZWRIZWFkZXJzTWFwIiwgImJvZHkiLCAiYnVmZmVyQm9keSIsICJjb250ZW50TGVuZ3RoIiwgImdldEV2ZW50Qm9keUFzQnVmZmVyIiwgInJlbW90ZUFkZHJlc3MiLCAicmVzcG9uc2VIZWFkZXJzIiwgImlzQmFzZTY0RW5jb2RlZCIsICJzdGF0dXNDb2RlIiwgIm11bHRpVmFsdWVIZWFkZXJzIiwgImdldE11bHRpVmFsdWVIZWFkZXJzTWFwIiwgImVycm9yIiwgImRlbGVnYXRlZFJlc29sdmVyIiwgInJlc3BvbmRXaXRoRXJyb3JzIiwgImxvZyIsICJlcnJvclJlc3BvbnNlIiwgInF1ZXJ5UGFyYW1zIiwgImdldFBhdGhXaXRoUXVlcnlTdHJpbmdQYXJhbXMiLCAiQXBpR2F0ZXdheVYxQWRhcHRlciIsICJfQXBpR2F0ZXdheVYxQWRhcHRlciIsICJwYXJ0aWFsRXZlbnRWMSIsICJrZXlzVG9Mb3dlcmNhc2UiLCAibXVsdGlWYWx1ZUhlYWRlcktleSIsICJoZWFkZXJWYWx1ZSIsICJyZXNwb25zZSIsICJzaG91bGRUaHJvd09uQ2h1bmtlZFRyYW5zZmVyRW5jb2RpbmciLCAiZ2V0RGVmYXVsdElmVW5kZWZpbmVkIiwgInZhbHVlIiwgInF1ZXJ5U3RyaW5nS2V5IiwgInF1ZXJ5U3RyaW5nVmFsdWUiLCAiQXBpR2F0ZXdheVYyQWRhcHRlciIsICJfQXBpR2F0ZXdheVYyQWRhcHRlciIsICJhcGlHYXRld2F5RXZlbnQiLCAiY29va2llcyIsICJnZXRGbGF0dGVuZWRIZWFkZXJzTWFwQW5kQ29va2llcyIsICJ0cmFuc2ZlckVuY29kaW5nSGVhZGVyIiwgIkF3c1NpbXBsZUFkYXB0ZXIiLCAiXyIsICJFbXB0eVJlc3BvbnNlIiwgIkR5bmFtb0RCQWRhcHRlciIsICJfRHluYW1vREJBZGFwdGVyIiwgImR5bmFtb0RCZXZlbnQiLCAiRXZlbnRCcmlkZ2VBZGFwdGVyIiwgIl9FdmVudEJyaWRnZUFkYXB0ZXIiLCAiZXZlbnRCcmlkZ2VFdmVudCIsICJERUZBVUxUX0xBTUJEQV9FREdFX0RJU0FMTE9XRURfSEVBREVSUyIsICJERUZBVUxUX1ZJRVdFUl9NQVhfUkVTUE9OU0VfU0laRV9JTl9CWVRFUyIsICJERUZBVUxUX09SSUdJTl9NQVhfUkVTUE9OU0VfU0laRV9JTl9CWVRFUyIsICJMYW1iZGFFZGdlQWRhcHRlciIsICJfTGFtYmRhRWRnZUFkYXB0ZXIiLCAiZGlzYWxsb3dlZEhlYWRlcnMiLCAiZGlzYWxsb3dlZEhlYWRlciIsICJsYW1iZGFFZGdlRXZlbnQiLCAiZXZlbnRUeXBlIiwgInJlcXVlc3QiLCAiY2xvdWRGcm9udFJlcXVlc3QiLCAicGF0aEZyb21PcHRpb25zIiwgImRlZmF1bHRQYXRoIiwgImJ1ZmZlciIsICJob3N0IiwgInByb3BzIiwgInJlc3BvbnNlVG9TZXJ2aWNlQnl0ZXMiLCAibWF4U2l6ZUluQnl0ZXMiLCAiYWNjIiwgImhlYWRlcktleSIsICJoZWFkZXIiLCAiZnJhbWV3b3JrSGVhZGVycyIsICJzaG91bGRVc2VIZWFkZXJzRnJvbUZyYW1ld29yayIsICJwYXJzZWRCb2R5IiwgIm9yaWdpbmFsSGVhZGVycyIsICJoZWFkZXJzQXJyYXkiLCAiaGVhZGVyS2V5TG93ZXJDYXNlIiwgInN0cmlwSGVhZGVySWYiLCAiY29udGVudCIsICJTM0FkYXB0ZXIiLCAiX1MzQWRhcHRlciIsICJzM0V2ZW50IiwgIlNOU0FkYXB0ZXIiLCAiX1NOU0FkYXB0ZXIiLCAic25zRXZlbnQiLCAiU1FTQWRhcHRlciIsICJfU1FTQWRhcHRlciIsICJzcXNFdmVudCIsICJSZXF1ZXN0TGFtYmRhRWRnZUFkYXB0ZXIiLCAiX1JlcXVlc3RMYW1iZGFFZGdlQWRhcHRlciIsICJib2R5TGVuZ3RoIiwgImxvd2VyY2FzZUhlYWRlcktleSIsICJFeHByZXNzRnJhbWV3b3JrIiwgIl9fbmFtZSIsICJhcHAiLCAicmVxdWVzdCIsICJyZXNwb25zZSIsICJDT05URU5UX1RZUEUiLCAiWF9PUklHSU5BTF9DT05URU5UX1RZUEUiLCAicHJvY2Vzc0xhbWJkYVJlc3BvbnNlIiwgInJlc3BvbnNlIiwgImV2ZW50IiwgImNvcnJlbGF0aW9uSWQiLCAiam9pbmVkSGVhZGVycyIsICJhZSIsICJvcmlnaW5hbENvbnRlbnRUeXBlIiwgImNyZWF0ZUxhbWJkYUhhbmRsZXIiLCAiYXBwIiwgImNvbnRleHQiLCAiY2FsbGJhY2siLCAic2VydmVybGVzc0FkYXB0ZXJIYW5kbGVyIiwgIm4iLCAiciIsICJ2IiwgImwiLCAieCIsICJlcnIiLCAibXJ0QXBwIiwgImNyZWF0ZUFwcCIsICJnZXQiXQp9Cg== diff --git a/packages/mrt-reference-app/config.server.ts b/packages/mrt-reference-app/config.server.ts new file mode 100644 index 000000000..5349d2818 --- /dev/null +++ b/packages/mrt-reference-app/config.server.ts @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2025, Salesforce, Inc. + * SPDX-License-Identifier: Apache-2 + * For full license text, see the license.txt file in the repo root or http://www.apache.org/licenses/LICENSE-2.0 + */ +import type {MrtServerConfig} from '@salesforce/b2c-tooling-sdk/operations/mrt'; + +const bundleType = process.env.MRT_BUNDLE_TYPE; +const ssrEntryPoint = ['stream', 'streaming', 'streamingHandler'].includes(bundleType ?? '') ? 'streamingHandler' : 'ssr'; + +export const config: MrtServerConfig = { + ssrOnly: [ + `${ssrEntryPoint}.{js,mjs,cjs}`, + `${ssrEntryPoint}.{js,mjs,cjs}.map`, + 'request-processor.js', + 'loader.js', + 'package.json', + '!static/**/*', + ], + ssrShared: [ + 'static/**/*', + '**/*.css', + '**/*.png', + '**/*.jpg', + '**/*.jpeg', + '**/*.gif', + '**/*.svg', + '**/*.ico', + '**/*.woff', + '**/*.woff2', + '**/*.ttf', + '**/*.eot', + ], + ssrParameters: { + ssrFunctionNodeVersion: '24.x', + }, +}; diff --git a/packages/mrt-reference-app/package.json b/packages/mrt-reference-app/package.json index f2417635b..4ee24fdfc 100644 --- a/packages/mrt-reference-app/package.json +++ b/packages/mrt-reference-app/package.json @@ -46,6 +46,7 @@ }, "devDependencies": { "@salesforce/b2c-cli": "workspace:*", + "@salesforce/b2c-tooling-sdk": "workspace:*", "@salesforce/dev-config": "catalog:", "@serverless/event-mocks": "1.1.1", "@smithy/smithy-client": "4.9.1", diff --git a/packages/mrt-reference-app/scripts/build.mjs b/packages/mrt-reference-app/scripts/build.mjs index dcb19eef4..45d70881a 100644 --- a/packages/mrt-reference-app/scripts/build.mjs +++ b/packages/mrt-reference-app/scripts/build.mjs @@ -19,6 +19,21 @@ const ssrEntry = isStreaming ? 'streamingHandler' : 'ssr'; const enableSourceMaps = !process.env.DISABLE_SOURCE_MAPS; const format = process.env.MRT_EXPORT_TYPE === 'esm' ? 'esm' : 'cjs'; +/** esbuild plugin that replaces import.meta.url with a CJS-compatible expression */ +const importMetaUrlCjsPlugin = { + name: 'import-meta-url-cjs', + setup(build) { + build.onLoad({filter: /\.[jt]s$/}, async (args) => { + const contents = await fs.readFile(args.path, 'utf8'); + if (!contents.includes('import.meta.url')) return null; + return { + contents: contents.replaceAll('import.meta.url', 'require("url").pathToFileURL(__filename).href'), + loader: args.path.endsWith('.ts') ? 'ts' : 'js', + }; + }); + }, +}; + const noExternal = [ /^@aws-sdk\/.*/, /^@h4ad\/.*/, @@ -65,6 +80,18 @@ async function copyDir(src, dest) { } } +function formatSize(bytes) { + if (bytes >= 1024 * 1024) return `${(bytes / 1024 / 1024).toFixed(2)} MB`; + if (bytes >= 1024) return `${(bytes / 1024).toFixed(2)} kB`; + return `${bytes} B`; +} + +async function logOutputFile(filePath) { + const stat = await fs.stat(filePath); + const rel = path.relative(pkgRoot, filePath); + console.log(` build/${path.basename(rel)} ${formatSize(stat.size)}`); +} + async function build() { await fs.rm(buildDir, {recursive: true, force: true}); await fs.mkdir(buildDir, {recursive: true}); @@ -89,21 +116,35 @@ async function build() { // Build SSR / streaming handler entry await esbuild.build({ ...commonOptions, + plugins: [...commonOptions.plugins, ...(format === 'cjs' ? [importMetaUrlCjsPlugin] : [])], entryPoints: {[ssrEntry]: path.join(pkgRoot, 'src', `${ssrEntry}.ts`)}, }); + await logOutputFile(path.join(buildDir, `${ssrEntry}.js`)); // Build request-processor (always CJS regardless of MRT_EXPORT_TYPE) await esbuild.build({ ...commonOptions, format: 'cjs', + plugins: [...commonOptions.plugins, importMetaUrlCjsPlugin], entryPoints: {'request-processor': path.join(pkgRoot, 'src', 'request-processor.ts')}, }); + await logOutputFile(path.join(buildDir, 'request-processor.js')); // Copy static assets const staticSrc = path.join(pkgRoot, 'src', 'static'); const staticDest = path.join(buildDir, 'static'); await copyDir(staticSrc, staticDest); + // Build config.server.ts so the CLI can load ssrOnly/ssrShared/ssrParameters + await esbuild.build({ + bundle: false, + platform: 'node', + target: 'node22', + format: 'cjs', + outdir: buildDir, + entryPoints: {'config.server': path.join(pkgRoot, 'config.server.ts')}, + }); + // Create empty loader.js required by MRT await fs.writeFile(path.join(buildDir, 'loader.js'), '// This file is intentionally empty\n'); @@ -112,7 +153,7 @@ async function build() { delete pkg.type; await fs.writeFile(path.join(buildDir, 'package.json'), JSON.stringify(pkg, null, 2) + '\n'); - console.log(`Build complete → build/ (${ssrEntry}.js + request-processor.js)`); + console.log('Build complete'); } build().catch((err) => { diff --git a/packages/mrt-welcome-app/.gitignore b/packages/mrt-welcome-app/.gitignore index c19bb02d7..6cea704cc 100644 --- a/packages/mrt-welcome-app/.gitignore +++ b/packages/mrt-welcome-app/.gitignore @@ -2,3 +2,4 @@ node_modules/ dist/ coverage/ *.tsbuildinfo +build/ \ No newline at end of file diff --git a/packages/mrt-welcome-app/config.server.ts b/packages/mrt-welcome-app/config.server.ts new file mode 100644 index 000000000..cae3717a7 --- /dev/null +++ b/packages/mrt-welcome-app/config.server.ts @@ -0,0 +1,19 @@ +/* + * Copyright (c) 2025, Salesforce, Inc. + * SPDX-License-Identifier: Apache-2 + * For full license text, see the license.txt file in the repo root or http://www.apache.org/licenses/LICENSE-2.0 + */ +import type {MrtServerConfig} from '@salesforce/b2c-tooling-sdk/operations/mrt'; + +export const config: MrtServerConfig = { + ssrOnly: [ + 'ssr.js', + 'loader.js', + 'package.json', + 'views/layout.html', + ], + ssrShared: [], + ssrParameters: { + ssrFunctionNodeVersion: '24.x', + }, +}; diff --git a/packages/mrt-welcome-app/package.json b/packages/mrt-welcome-app/package.json index 2dff37f0a..6ca9fd1f2 100644 --- a/packages/mrt-welcome-app/package.json +++ b/packages/mrt-welcome-app/package.json @@ -37,6 +37,7 @@ }, "devDependencies": { "@salesforce/b2c-cli": "workspace:*", + "@salesforce/b2c-tooling-sdk": "workspace:*", "@salesforce/dev-config": "catalog:", "@serverless/event-mocks": "1.1.1", "@types/aws-lambda": "8.10.160", diff --git a/packages/mrt-welcome-app/scripts/build.mjs b/packages/mrt-welcome-app/scripts/build.mjs index 36fb87eac..e0ad8c11f 100644 --- a/packages/mrt-welcome-app/scripts/build.mjs +++ b/packages/mrt-welcome-app/scripts/build.mjs @@ -51,6 +51,12 @@ async function copyDir(src, dest) { } } +function formatSize(bytes) { + if (bytes >= 1024 * 1024) return `${(bytes / 1024 / 1024).toFixed(2)} MB`; + if (bytes >= 1024) return `${(bytes / 1024).toFixed(2)} kB`; + return `${bytes} B`; +} + async function build() { await fs.rm(buildDir, {recursive: true, force: true}); await fs.mkdir(buildDir, {recursive: true}); @@ -71,11 +77,24 @@ async function build() { entryPoints: {ssr: path.join(pkgRoot, 'src', 'ssr.ts')}, }); + const ssrStat = await fs.stat(path.join(buildDir, 'ssr.js')); + console.log(` build/ssr.js ${formatSize(ssrStat.size)}`); + // Copy views const viewsSrc = path.join(pkgRoot, 'src', 'views'); const viewsDest = path.join(buildDir, 'views'); await copyDir(viewsSrc, viewsDest); + // Build config.server.ts so the CLI can load ssrOnly/ssrShared/ssrParameters + await esbuild.build({ + bundle: false, + platform: 'node', + target: 'node22', + format: 'cjs', + outdir: buildDir, + entryPoints: {'config.server': path.join(pkgRoot, 'config.server.ts')}, + }); + // Create empty loader.js required by MRT await fs.writeFile(path.join(buildDir, 'loader.js'), '// This file is intentionally empty\n'); @@ -84,7 +103,7 @@ async function build() { delete pkg.type; await fs.writeFile(path.join(buildDir, 'package.json'), JSON.stringify(pkg, null, 2) + '\n'); - console.log('Build complete → build/ssr.js'); + console.log('Build complete'); } build().catch((err) => { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0197a6555..7c8dc4f62 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -55,7 +55,7 @@ catalogs: specifier: ^3.1.1 version: 3.1.1 eslint-plugin-prettier: - specifier: ^5.5.4 + specifier: ^5.5.5 version: 5.5.4 glob: specifier: 13.0.0 @@ -76,7 +76,7 @@ catalogs: specifier: 11.0.0 version: 11.0.0 prettier: - specifier: ^3.6.2 + specifier: ^3.8.3 version: 3.6.2 shx: specifier: ^0.3.3 @@ -117,8 +117,8 @@ importers: specifier: ^0.5.2 version: 0.5.2 '@changesets/cli': - specifier: ^2.29.8 - version: 2.29.8(@types/node@22.19.0) + specifier: ^2.31.0 + version: 2.31.0(@types/node@25.6.0) eslint-plugin-prettier: specifier: 'catalog:' version: 5.5.4(eslint-config-prettier@10.1.8(eslint@9.39.1))(eslint@9.39.1)(prettier@3.6.2) @@ -145,10 +145,10 @@ importers: version: 1.1.2(typedoc-plugin-markdown@4.9.0(typedoc@0.28.14(typescript@5.9.3))) vitepress: specifier: 2.0.0-alpha.17 - version: 2.0.0-alpha.17(@types/node@22.19.0)(change-case@5.4.4)(fuse.js@7.1.0)(postcss@8.5.10)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1) + version: 2.0.0-alpha.17(@types/node@25.6.0)(change-case@5.4.4)(fuse.js@7.1.0)(postcss@8.5.10)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1) vitepress-plugin-group-icons: specifier: ^1.7.5 - version: 1.7.5(vite@7.3.2(@types/node@22.19.0)(tsx@4.20.6)(yaml@2.8.1)) + version: 1.7.5(vite@7.3.2(@types/node@25.6.0)(tsx@4.20.6)(yaml@2.8.1)) packages/b2c-cli: dependencies: @@ -653,6 +653,9 @@ importers: '@salesforce/b2c-cli': specifier: workspace:* version: link:../b2c-cli + '@salesforce/b2c-tooling-sdk': + specifier: workspace:* + version: link:../b2c-tooling-sdk '@salesforce/dev-config': specifier: 'catalog:' version: 4.3.2 @@ -877,6 +880,9 @@ importers: '@salesforce/b2c-cli': specifier: workspace:* version: link:../b2c-cli + '@salesforce/b2c-tooling-sdk': + specifier: workspace:* + version: link:../b2c-tooling-sdk '@salesforce/dev-config': specifier: 'catalog:' version: 4.3.2 @@ -1570,6 +1576,10 @@ packages: resolution: {integrity: sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==} engines: {node: '>=6.9.0'} + '@babel/runtime@7.29.2': + resolution: {integrity: sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==} + engines: {node: '>=6.9.0'} + '@babel/types@7.29.0': resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} engines: {node: '>=6.9.0'} @@ -1578,11 +1588,11 @@ packages: resolution: {integrity: sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==} engines: {node: '>=18'} - '@changesets/apply-release-plan@7.0.14': - resolution: {integrity: sha512-ddBvf9PHdy2YY0OUiEl3TV78mH9sckndJR14QAt87KLEbIov81XO0q0QAmvooBxXlqRRP8I9B7XOzZwQG7JkWA==} + '@changesets/apply-release-plan@7.1.1': + resolution: {integrity: sha512-9qPCm/rLx/xoOFXIHGB229+4GOL76S4MC+7tyOuTsR6+1jYlfFDQORdvwR5hDA6y4FL2BPt3qpbcQIS+dW85LA==} - '@changesets/assemble-release-plan@6.0.9': - resolution: {integrity: sha512-tPgeeqCHIwNo8sypKlS3gOPmsS3wP0zHt67JDuL20P4QcXiw/O4Hl7oXiuLnP9yg+rXLQ2sScdV1Kkzde61iSQ==} + '@changesets/assemble-release-plan@6.0.10': + resolution: {integrity: sha512-rSDcqdJ9KbVyjpBIuCidhvZNIiVt1XaIYp73ycVQRIA5n/j6wQaEk0ChRLMUQ1vkxZe51PTQ9OIhbg6HQMW45A==} '@changesets/changelog-git@0.2.1': resolution: {integrity: sha512-x/xEleCFLH28c3bQeQIyeZf8lFXyDFVn1SgcBiR2Tw/r4IAWlk1fzxCEZ6NxQAjF2Nwtczoen3OA2qR+UawQ8Q==} @@ -1590,24 +1600,24 @@ packages: '@changesets/changelog-github@0.5.2': resolution: {integrity: sha512-HeGeDl8HaIGj9fQHo/tv5XKQ2SNEi9+9yl1Bss1jttPqeiASRXhfi0A2wv8yFKCp07kR1gpOI5ge6+CWNm1jPw==} - '@changesets/cli@2.29.8': - resolution: {integrity: sha512-1weuGZpP63YWUYjay/E84qqwcnt5yJMM0tep10Up7Q5cS/DGe2IZ0Uj3HNMxGhCINZuR7aO9WBMdKnPit5ZDPA==} + '@changesets/cli@2.31.0': + resolution: {integrity: sha512-AhI4enNTgHu2IZr6K4WZyf0EPch4XVMn1yOMFmCD9gsfBGqMYaHXls5HyDv6/CL5axVQABz68eG30eCtbr2wFg==} hasBin: true - '@changesets/config@3.1.2': - resolution: {integrity: sha512-CYiRhA4bWKemdYi/uwImjPxqWNpqGPNbEBdX1BdONALFIDK7MCUj6FPkzD+z9gJcvDFUQJn9aDVf4UG7OT6Kog==} + '@changesets/config@3.1.4': + resolution: {integrity: sha512-pf0bvD/v6WI2cRlZ6hzpjtZdSlXDXMAJ+Iz7xfFzV4ZxJ8OGGAON+1qYc99ZPrijnt4xp3VGG7eNvAOGS24V1Q==} '@changesets/errors@0.2.0': resolution: {integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==} - '@changesets/get-dependents-graph@2.1.3': - resolution: {integrity: sha512-gphr+v0mv2I3Oxt19VdWRRUxq3sseyUpX9DaHpTUmLj92Y10AGy+XOtV+kbM6L/fDcpx7/ISDFK6T8A/P3lOdQ==} + '@changesets/get-dependents-graph@2.1.4': + resolution: {integrity: sha512-ZsS00x6WvmHq3sQv8oCMwL0f/z3wbXCVuSVTJwCnnmbC/iBdNJGFx1EcbMG4PC6sXRyH69liM4A2WKXzn/kRPg==} '@changesets/get-github-info@0.7.0': resolution: {integrity: sha512-+i67Bmhfj9V4KfDeS1+Tz3iF32btKZB2AAx+cYMqDSRFP7r3/ZdGbjCo+c6qkyViN9ygDuBjzageuPGJtKGe5A==} - '@changesets/get-release-plan@4.0.14': - resolution: {integrity: sha512-yjZMHpUHgl4Xl5gRlolVuxDkm4HgSJqT93Ri1Uz8kGrQb+5iJ8dkXJ20M2j/Y4iV5QzS2c5SeTxVSKX+2eMI0g==} + '@changesets/get-release-plan@4.0.16': + resolution: {integrity: sha512-2K5Om6CrMPm45rtvckfzWo7e9jOVCKLCnXia5eUPaURH7/LWzri7pK1TycdzAuAtehLkW7VPbWLCSExTHmiI6g==} '@changesets/get-version-range-type@0.4.0': resolution: {integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==} @@ -1618,14 +1628,14 @@ packages: '@changesets/logger@0.1.1': resolution: {integrity: sha512-OQtR36ZlnuTxKqoW4Sv6x5YIhOmClRd5pWsjZsddYxpWs517R0HkyiefQPIytCVh4ZcC5x9XaG8KTdd5iRQUfg==} - '@changesets/parse@0.4.2': - resolution: {integrity: sha512-Uo5MC5mfg4OM0jU3up66fmSn6/NE9INK+8/Vn/7sMVcdWg46zfbvvUSjD9EMonVqPi9fbrJH9SXHn48Tr1f2yA==} + '@changesets/parse@0.4.3': + resolution: {integrity: sha512-ZDmNc53+dXdWEv7fqIUSgRQOLYoUom5Z40gmLgmATmYR9NbL6FJJHwakcCpzaeCy+1D0m0n7mT4jj2B/MQPl7A==} '@changesets/pre@2.0.2': resolution: {integrity: sha512-HaL/gEyFVvkf9KFg6484wR9s0qjAXlZ8qWPDkTyKF6+zqjBe/I2mygg3MbpZ++hdi0ToqNUF8cjj7fBy0dg8Ug==} - '@changesets/read@0.6.6': - resolution: {integrity: sha512-P5QaN9hJSQQKJShzzpBT13FzOSPyHbqdoIBUd2DJdgvnECCyO6LmAOWSV+O8se2TaZJVwSXjL+v9yhb+a9JeJg==} + '@changesets/read@0.6.7': + resolution: {integrity: sha512-D1G4AUYGrBEk8vj8MGwf75k9GpN6XL3wg8i42P2jZZwFLXnlr2Pn7r9yuQNbaMCarP7ZQWNJbV6XLeysAIMhTA==} '@changesets/should-skip-package@0.1.2': resolution: {integrity: sha512-qAK/WrqWLNCP22UDdBTMPH5f41elVDlsNyat180A33dWxuUDyNpg6fPi/FyTZwRriVjg0L8gnjJn2F9XAoF0qw==} @@ -4245,6 +4255,9 @@ packages: '@types/node@22.19.0': resolution: {integrity: sha512-xpr/lmLPQEj+TUnHmR+Ab91/glhJvsqcjB+yY0Ix9GO70H6Lb4FHH5GeqdOE5btAx7eIMwuHkp4H2MSkLcqWbA==} + '@types/node@25.6.0': + resolution: {integrity: sha512-+qIYRKdNYJwY3vRCZMdJbPLJAtGjQBudzZzdzwQYkEPQd+PJGixUL5QfvCLDaULoLv+RhT3LDkwEfKaAkgSmNQ==} + '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -5969,8 +5982,8 @@ packages: resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} engines: {node: '>= 4.9.1'} - fastq@1.19.1: - resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} + fastq@1.20.1: + resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} fd-slicer@1.1.0: resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} @@ -6093,8 +6106,8 @@ packages: fs-constants@1.0.0: resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} - fs-extra@11.3.3: - resolution: {integrity: sha512-VWSRii4t0AFm6ixFFmLLx1t7wS1gh+ckoa84aOeapGum0h+EZd1EhEumSB+ZdDLnEPuucsVB9oB7cxJHap6Afg==} + fs-extra@11.3.4: + resolution: {integrity: sha512-CTXd6rk/M3/ULNQj8FBqBWHYBVYybQ3VPBw0xGKFe3tuH7ytT6ACnvzpIQ3UZtB8yvUKC2cXn1a+x+5EVQLovA==} engines: {node: '>=14.14'} fs-extra@7.0.1: @@ -6406,10 +6419,6 @@ packages: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} - iconv-lite@0.7.0: - resolution: {integrity: sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ==} - engines: {node: '>=0.10.0'} - iconv-lite@0.7.2: resolution: {integrity: sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==} engines: {node: '>=0.10.0'} @@ -7685,8 +7694,8 @@ packages: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - prettier-linter-helpers@1.0.0: - resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} + prettier-linter-helpers@1.0.1: + resolution: {integrity: sha512-SxToR7P8Y2lWmv/kTzVLC1t/GDI2WGjMwNhLLE9qtH8Q13C+aEmuRlzDst4Up4s0Wc8sF2M+J57iB3cMLqftfg==} engines: {node: '>=6.0.0'} prettier@2.8.8: @@ -8037,6 +8046,11 @@ packages: engines: {node: '>=10'} hasBin: true + semver@7.7.4: + resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==} + engines: {node: '>=10'} + hasBin: true + send@0.19.0: resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} engines: {node: '>= 0.8.0'} @@ -8343,8 +8357,8 @@ packages: swagger-ui-dist@5.32.0: resolution: {integrity: sha512-nKZB0OuDvacB0s/lC2gbge+RigYvGRGpLLMWMFxaTUwfM+CfndVk9Th2IaTinqXiz6Mn26GK2zriCpv6/+5m3Q==} - synckit@0.11.11: - resolution: {integrity: sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==} + synckit@0.11.12: + resolution: {integrity: sha512-Bh7QjT8/SuKUIfObSXNHNSK6WHo6J1tHCqJsuaFDP7gP0fkzSfTxI8y85JrppZ0h8l0maIgc2tfuZQ6/t3GtnQ==} engines: {node: ^14.18.0 || >=16.0.0} tabbable@6.4.0: @@ -8628,6 +8642,9 @@ packages: undici-types@6.21.0: resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + undici-types@7.19.2: + resolution: {integrity: sha512-qYVnV5OEm2AW8cJMCpdV20CDyaN3g0AjDlOGf1OW4iaDEx8MwdtChUp4zu4H0VP3nDRF/8RKWH+IPp9uW0YGZg==} + undici@7.19.2: resolution: {integrity: sha512-4VQSpGEGsWzk0VYxyB/wVX/Q7qf9t5znLRgs0dzszr9w9Fej/8RVNQ+S20vdXSAyra/bJ7ZQfGv6ZMj7UEbzSg==} engines: {node: '>=20.18.1'} @@ -10955,6 +10972,8 @@ snapshots: '@babel/runtime@7.28.4': {} + '@babel/runtime@7.29.2': {} + '@babel/types@7.29.0': dependencies: '@babel/helper-string-parser': 7.27.1 @@ -10962,9 +10981,9 @@ snapshots: '@bcoe/v8-coverage@1.0.2': {} - '@changesets/apply-release-plan@7.0.14': + '@changesets/apply-release-plan@7.1.1': dependencies: - '@changesets/config': 3.1.2 + '@changesets/config': 3.1.4 '@changesets/get-version-range-type': 0.4.0 '@changesets/git': 3.0.4 '@changesets/should-skip-package': 0.1.2 @@ -10976,16 +10995,16 @@ snapshots: outdent: 0.5.0 prettier: 2.8.8 resolve-from: 5.0.0 - semver: 7.7.3 + semver: 7.7.4 - '@changesets/assemble-release-plan@6.0.9': + '@changesets/assemble-release-plan@6.0.10': dependencies: '@changesets/errors': 0.2.0 - '@changesets/get-dependents-graph': 2.1.3 + '@changesets/get-dependents-graph': 2.1.4 '@changesets/should-skip-package': 0.1.2 '@changesets/types': 6.1.0 '@manypkg/get-packages': 1.1.3 - semver: 7.7.3 + semver: 7.7.4 '@changesets/changelog-git@0.2.1': dependencies: @@ -10999,44 +11018,43 @@ snapshots: transitivePeerDependencies: - encoding - '@changesets/cli@2.29.8(@types/node@22.19.0)': + '@changesets/cli@2.31.0(@types/node@25.6.0)': dependencies: - '@changesets/apply-release-plan': 7.0.14 - '@changesets/assemble-release-plan': 6.0.9 + '@changesets/apply-release-plan': 7.1.1 + '@changesets/assemble-release-plan': 6.0.10 '@changesets/changelog-git': 0.2.1 - '@changesets/config': 3.1.2 + '@changesets/config': 3.1.4 '@changesets/errors': 0.2.0 - '@changesets/get-dependents-graph': 2.1.3 - '@changesets/get-release-plan': 4.0.14 + '@changesets/get-dependents-graph': 2.1.4 + '@changesets/get-release-plan': 4.0.16 '@changesets/git': 3.0.4 '@changesets/logger': 0.1.1 '@changesets/pre': 2.0.2 - '@changesets/read': 0.6.6 + '@changesets/read': 0.6.7 '@changesets/should-skip-package': 0.1.2 '@changesets/types': 6.1.0 '@changesets/write': 0.4.0 - '@inquirer/external-editor': 1.0.3(@types/node@22.19.0) + '@inquirer/external-editor': 1.0.3(@types/node@25.6.0) '@manypkg/get-packages': 1.1.3 ansi-colors: 4.1.3 - ci-info: 3.9.0 enquirer: 2.4.1 fs-extra: 7.0.1 mri: 1.2.0 - p-limit: 2.3.0 package-manager-detector: 0.2.11 picocolors: 1.1.1 resolve-from: 5.0.0 - semver: 7.7.3 + semver: 7.7.4 spawndamnit: 3.0.1 term-size: 2.2.1 transitivePeerDependencies: - '@types/node' - '@changesets/config@3.1.2': + '@changesets/config@3.1.4': dependencies: '@changesets/errors': 0.2.0 - '@changesets/get-dependents-graph': 2.1.3 + '@changesets/get-dependents-graph': 2.1.4 '@changesets/logger': 0.1.1 + '@changesets/should-skip-package': 0.1.2 '@changesets/types': 6.1.0 '@manypkg/get-packages': 1.1.3 fs-extra: 7.0.1 @@ -11046,12 +11064,12 @@ snapshots: dependencies: extendable-error: 0.1.7 - '@changesets/get-dependents-graph@2.1.3': + '@changesets/get-dependents-graph@2.1.4': dependencies: '@changesets/types': 6.1.0 '@manypkg/get-packages': 1.1.3 picocolors: 1.1.1 - semver: 7.7.3 + semver: 7.7.4 '@changesets/get-github-info@0.7.0': dependencies: @@ -11060,12 +11078,12 @@ snapshots: transitivePeerDependencies: - encoding - '@changesets/get-release-plan@4.0.14': + '@changesets/get-release-plan@4.0.16': dependencies: - '@changesets/assemble-release-plan': 6.0.9 - '@changesets/config': 3.1.2 + '@changesets/assemble-release-plan': 6.0.10 + '@changesets/config': 3.1.4 '@changesets/pre': 2.0.2 - '@changesets/read': 0.6.6 + '@changesets/read': 0.6.7 '@changesets/types': 6.1.0 '@manypkg/get-packages': 1.1.3 @@ -11083,7 +11101,7 @@ snapshots: dependencies: picocolors: 1.1.1 - '@changesets/parse@0.4.2': + '@changesets/parse@0.4.3': dependencies: '@changesets/types': 6.1.0 js-yaml: 4.1.1 @@ -11095,11 +11113,11 @@ snapshots: '@manypkg/get-packages': 1.1.3 fs-extra: 7.0.1 - '@changesets/read@0.6.6': + '@changesets/read@0.6.7': dependencies: '@changesets/git': 3.0.4 '@changesets/logger': 0.1.1 - '@changesets/parse': 0.4.2 + '@changesets/parse': 0.4.3 '@changesets/types': 6.1.0 fs-extra: 7.0.1 p-filter: 2.1.0 @@ -11682,10 +11700,17 @@ snapshots: '@inquirer/external-editor@1.0.3(@types/node@22.19.0)': dependencies: chardet: 2.1.1 - iconv-lite: 0.7.0 + iconv-lite: 0.7.2 optionalDependencies: '@types/node': 22.19.0 + '@inquirer/external-editor@1.0.3(@types/node@25.6.0)': + dependencies: + chardet: 2.1.1 + iconv-lite: 0.7.2 + optionalDependencies: + '@types/node': 25.6.0 + '@inquirer/external-editor@2.0.3(@types/node@22.19.0)': dependencies: chardet: 2.1.1 @@ -11886,14 +11911,14 @@ snapshots: '@manypkg/find-root@1.1.0': dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.29.2 '@types/node': 12.20.55 find-up: 4.1.0 fs-extra: 8.1.0 '@manypkg/get-packages@1.1.3': dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.29.2 '@changesets/types': 4.1.0 '@manypkg/find-root': 1.1.0 fs-extra: 8.1.0 @@ -12037,7 +12062,7 @@ snapshots: '@nodelib/fs.walk@1.2.8': dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.19.1 + fastq: 1.20.1 '@nolyfill/is-core-module@1.0.39': {} @@ -13790,7 +13815,7 @@ snapshots: '@types/cors@2.8.19': dependencies: - '@types/node': 22.19.0 + '@types/node': 25.6.0 '@types/ejs@3.1.5': {} @@ -13868,6 +13893,10 @@ snapshots: dependencies: undici-types: 6.21.0 + '@types/node@25.6.0': + dependencies: + undici-types: 7.19.2 + '@types/normalize-package-data@2.4.4': {} '@types/qs@6.14.0': {} @@ -14098,10 +14127,10 @@ snapshots: '@unrs/resolver-binding-win32-x64-msvc@1.11.1': optional: true - '@vitejs/plugin-vue@6.0.6(vite@7.3.2(@types/node@22.19.0)(tsx@4.20.6)(yaml@2.8.1))(vue@3.5.32(typescript@5.9.3))': + '@vitejs/plugin-vue@6.0.6(vite@7.3.2(@types/node@25.6.0)(tsx@4.20.6)(yaml@2.8.1))(vue@3.5.32(typescript@5.9.3))': dependencies: '@rolldown/pluginutils': 1.0.0-rc.13 - vite: 7.3.2(@types/node@22.19.0)(tsx@4.20.6)(yaml@2.8.1) + vite: 7.3.2(@types/node@25.6.0)(tsx@4.20.6)(yaml@2.8.1) vue: 3.5.32(typescript@5.9.3) '@vscode/debugadapter@1.68.0': @@ -14651,7 +14680,7 @@ snapshots: builtins@5.1.0: dependencies: - semver: 7.7.3 + semver: 7.7.4 bundle-name@4.1.0: dependencies: @@ -15448,7 +15477,7 @@ snapshots: eslint-compat-utils@0.5.1(eslint@9.39.1): dependencies: eslint: 9.39.1 - semver: 7.7.3 + semver: 7.7.4 eslint-config-oclif@5.2.2(eslint@9.39.1): dependencies: @@ -15599,7 +15628,7 @@ snapshots: espree: 10.4.0 esquery: 1.6.0 parse-imports-exports: 0.2.4 - semver: 7.7.3 + semver: 7.7.4 spdx-expression-parse: 4.0.0 transitivePeerDependencies: - supports-color @@ -15621,7 +15650,7 @@ snapshots: is-core-module: 2.16.1 minimatch: 3.1.2 resolve: 1.22.11 - semver: 7.7.3 + semver: 7.7.4 eslint-plugin-n@17.23.1(eslint@9.39.1)(typescript@5.9.3): dependencies: @@ -15633,7 +15662,7 @@ snapshots: globals: 15.15.0 globrex: 0.1.2 ignore: 5.3.2 - semver: 7.7.3 + semver: 7.7.4 ts-declaration-location: 1.0.7(typescript@5.9.3) transitivePeerDependencies: - typescript @@ -15652,8 +15681,8 @@ snapshots: dependencies: eslint: 9.39.1 prettier: 3.6.2 - prettier-linter-helpers: 1.0.0 - synckit: 0.11.11 + prettier-linter-helpers: 1.0.1 + synckit: 0.11.12 optionalDependencies: eslint-config-prettier: 10.1.8(eslint@9.39.1) @@ -15673,7 +15702,7 @@ snapshots: read-pkg-up: 7.0.1 regexp-tree: 0.1.27 regjsparser: 0.10.0 - semver: 7.7.3 + semver: 7.7.4 strip-indent: 3.0.0 eslint-plugin-unicorn@56.0.1(eslint@9.39.1): @@ -15693,7 +15722,7 @@ snapshots: read-pkg-up: 7.0.1 regexp-tree: 0.1.27 regjsparser: 0.10.0 - semver: 7.7.3 + semver: 7.7.4 strip-indent: 3.0.0 eslint-scope@8.4.0: @@ -15974,7 +16003,7 @@ snapshots: fastest-levenshtein@1.0.16: {} - fastq@1.19.1: + fastq@1.20.1: dependencies: reusify: 1.1.0 @@ -16105,7 +16134,7 @@ snapshots: fs-constants@1.0.0: optional: true - fs-extra@11.3.3: + fs-extra@11.3.4: dependencies: graceful-fs: 4.2.11 jsonfile: 6.2.0 @@ -16474,10 +16503,6 @@ snapshots: dependencies: safer-buffer: 2.1.2 - iconv-lite@0.7.0: - dependencies: - safer-buffer: 2.1.2 - iconv-lite@0.7.2: dependencies: safer-buffer: 2.1.2 @@ -16565,7 +16590,7 @@ snapshots: is-bun-module@2.0.0: dependencies: - semver: 7.7.3 + semver: 7.7.4 is-callable@1.2.7: {} @@ -16953,7 +16978,7 @@ snapshots: make-dir@4.0.0: dependencies: - semver: 7.7.3 + semver: 7.7.4 make-error@1.3.6: {} @@ -17260,7 +17285,7 @@ snapshots: node-sarif-builder@3.4.0: dependencies: '@types/sarif': 2.1.7 - fs-extra: 11.3.3 + fs-extra: 11.3.4 normalize-package-data@2.5.0: dependencies: @@ -17713,7 +17738,7 @@ snapshots: prelude-ls@1.2.1: {} - prettier-linter-helpers@1.0.0: + prettier-linter-helpers@1.0.1: dependencies: fast-diff: 1.3.0 @@ -18103,6 +18128,8 @@ snapshots: semver@7.7.3: {} + semver@7.7.4: {} + send@0.19.0: dependencies: debug: 2.6.9 @@ -18522,7 +18549,7 @@ snapshots: dependencies: '@scarf/scarf': 1.4.0 - synckit@0.11.11: + synckit@0.11.12: dependencies: '@pkgr/core': 0.2.9 @@ -18844,6 +18871,8 @@ snapshots: undici-types@6.21.0: {} + undici-types@7.19.2: {} + undici@7.19.2: {} unicode-emoji-modifier-base@1.0.0: {} @@ -18973,7 +19002,7 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.3 - vite@7.3.2(@types/node@22.19.0)(tsx@4.20.6)(yaml@2.8.1): + vite@7.3.2(@types/node@25.6.0)(tsx@4.20.6)(yaml@2.8.1): dependencies: esbuild: 0.27.7 fdir: 6.5.0(picomatch@4.0.3) @@ -18982,20 +19011,20 @@ snapshots: rollup: 4.53.3 tinyglobby: 0.2.15 optionalDependencies: - '@types/node': 22.19.0 + '@types/node': 25.6.0 fsevents: 2.3.3 tsx: 4.20.6 yaml: 2.8.1 - vitepress-plugin-group-icons@1.7.5(vite@7.3.2(@types/node@22.19.0)(tsx@4.20.6)(yaml@2.8.1)): + vitepress-plugin-group-icons@1.7.5(vite@7.3.2(@types/node@25.6.0)(tsx@4.20.6)(yaml@2.8.1)): dependencies: '@iconify-json/logos': 1.2.11 '@iconify-json/vscode-icons': 1.2.45 '@iconify/utils': 3.1.0 optionalDependencies: - vite: 7.3.2(@types/node@22.19.0)(tsx@4.20.6)(yaml@2.8.1) + vite: 7.3.2(@types/node@25.6.0)(tsx@4.20.6)(yaml@2.8.1) - vitepress@2.0.0-alpha.17(@types/node@22.19.0)(change-case@5.4.4)(fuse.js@7.1.0)(postcss@8.5.10)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1): + vitepress@2.0.0-alpha.17(@types/node@25.6.0)(change-case@5.4.4)(fuse.js@7.1.0)(postcss@8.5.10)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1): dependencies: '@docsearch/css': 4.6.2 '@docsearch/js': 4.6.2 @@ -19005,7 +19034,7 @@ snapshots: '@shikijs/transformers': 3.23.0 '@shikijs/types': 3.23.0 '@types/markdown-it': 14.1.2 - '@vitejs/plugin-vue': 6.0.6(vite@7.3.2(@types/node@22.19.0)(tsx@4.20.6)(yaml@2.8.1))(vue@3.5.32(typescript@5.9.3)) + '@vitejs/plugin-vue': 6.0.6(vite@7.3.2(@types/node@25.6.0)(tsx@4.20.6)(yaml@2.8.1))(vue@3.5.32(typescript@5.9.3)) '@vue/devtools-api': 8.1.1 '@vue/shared': 3.5.32 '@vueuse/core': 14.2.1(vue@3.5.32(typescript@5.9.3)) @@ -19014,7 +19043,7 @@ snapshots: mark.js: 8.11.1 minisearch: 7.2.0 shiki: 3.23.0 - vite: 7.3.2(@types/node@22.19.0)(tsx@4.20.6)(yaml@2.8.1) + vite: 7.3.2(@types/node@25.6.0)(tsx@4.20.6)(yaml@2.8.1) vue: 3.5.32(typescript@5.9.3) optionalDependencies: postcss: 8.5.10 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index b620c676c..325892e6b 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -4,15 +4,8 @@ packages: - skills catalog: - # Production dependencies (exact versions for published packages) - '@oclif/core': 4.8.0 - cliui: 9.0.1 - glob: 13.0.0 - jsonschema: 1.5.0 - open: 11.0.0 - - # Dev dependencies (shared across packages) '@eslint/compat': ^1 + '@oclif/core': 4.8.0 '@oclif/prettier-config': ^0.2.1 '@oclif/test': ^4 '@salesforce/dev-config': ^4.3.2 @@ -22,15 +15,19 @@ catalog: '@types/sinon': ^21.0.0 c8: ^11.0.0 chai: ^4 + cliui: 9.0.1 eslint: ^9 eslint-config-oclif: ^6 eslint-config-prettier: ^10 eslint-plugin-header: ^3.1.1 - eslint-plugin-prettier: ^5.5.4 + eslint-plugin-prettier: ^5.5.5 + glob: 13.0.0 + jsonschema: 1.5.0 mocha: ^10 msw: ^2.12.4 oclif: ^4 - prettier: ^3.6.2 + open: 11.0.0 + prettier: ^3.8.3 shx: ^0.3.3 sinon: ^21.0.1 tsx: ^4 @@ -43,16 +40,13 @@ minimumReleaseAgeExclude: [] nodeLinker: hoisted -# Pin exact versions by default when adding dependencies (no ^ or ~ prefix) -savePrefix: '' - onlyBuiltDependencies: - unrs-resolver - yarn overrides: - baseline-browser-mapping: '>=2.9.19' '@isaacs/brace-expansion@<=5.0.0': '>=5.0.1' + baseline-browser-mapping: '>=2.9.19' diff@>=4.0.0 <4.0.4: '>=4.0.4' diff@>=5.0.0 <5.2.2: '>=5.2.2' esbuild@<=0.24.2: '>=0.25.0' @@ -65,6 +59,8 @@ overrides: preact@>=10.27.0 <10.27.3: '>=10.27.3' qs@<6.14.1: '>=6.14.1' +savePrefix: '' + trustPolicy: no-downgrade trustPolicyExclude: [] From 93fdd127d47a3d25692ecc757778b43bf013dc4a Mon Sep 17 00:00:00 2001 From: Kieran Haberstock Date: Wed, 20 May 2026 16:04:14 -0400 Subject: [PATCH 3/3] fix: resolve prettier lint error and Windows build failure Format long export line in mrt/index.ts to satisfy prettier. Skip Windows absolute paths in esbuild bundlePlugin's onResolve filter to prevent entry points from being marked as external on Windows CI. --- packages/b2c-tooling-sdk/src/operations/mrt/index.ts | 9 ++++++++- packages/mrt-reference-app/scripts/build.mjs | 2 ++ packages/mrt-welcome-app/scripts/build.mjs | 2 ++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/packages/b2c-tooling-sdk/src/operations/mrt/index.ts b/packages/b2c-tooling-sdk/src/operations/mrt/index.ts index 5d6f656b0..24bf1bbab 100644 --- a/packages/b2c-tooling-sdk/src/operations/mrt/index.ts +++ b/packages/b2c-tooling-sdk/src/operations/mrt/index.ts @@ -46,7 +46,14 @@ */ // Bundle creation -export {createBundle, createGlobFilter, getDefaultMessage, DEFAULT_SSR_PARAMETERS, DEFAULT_SSR_ONLY, DEFAULT_SSR_SHARED} from './bundle.js'; +export { + createBundle, + createGlobFilter, + getDefaultMessage, + DEFAULT_SSR_PARAMETERS, + DEFAULT_SSR_ONLY, + DEFAULT_SSR_SHARED, +} from './bundle.js'; export type {CreateBundleOptions, Bundle, MrtServerConfig} from './bundle.js'; // Push and bundle operations diff --git a/packages/mrt-reference-app/scripts/build.mjs b/packages/mrt-reference-app/scripts/build.mjs index 45d70881a..3ac65b7ae 100644 --- a/packages/mrt-reference-app/scripts/build.mjs +++ b/packages/mrt-reference-app/scripts/build.mjs @@ -58,6 +58,8 @@ const bundlePlugin = { name: 'bundle-deps', setup(build) { build.onResolve({filter: /^[^./]/}, (args) => { + // Skip Windows absolute paths (e.g. D:\...) which match the filter + if (/^[A-Za-z]:/.test(args.path)) return null; if (externalFilter(args.path)) { return {external: true}; } diff --git a/packages/mrt-welcome-app/scripts/build.mjs b/packages/mrt-welcome-app/scripts/build.mjs index e0ad8c11f..a20454909 100644 --- a/packages/mrt-welcome-app/scripts/build.mjs +++ b/packages/mrt-welcome-app/scripts/build.mjs @@ -29,6 +29,8 @@ const bundlePlugin = { name: 'bundle-deps', setup(build) { build.onResolve({filter: /^[^./]/}, (args) => { + // Skip Windows absolute paths (e.g. D:\...) which match the filter + if (/^[A-Za-z]:/.test(args.path)) return null; if (externalFilter(args.path)) { return {external: true}; }
+

👋 Welcome to your Environment

+
+
+

Update your environment's settings

+

Use Runtime Admin to update your environment's settings

+ Read our API docs +
+

HTTP request info

+
<%- JSON.stringify(json_content, null, 2) %>
+

jE3pu?PXZG*v)Nx&$*Y)1qJ$B0#nFi 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 Kw; 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.j|mi3+U#-j3D7uOds-#_C+ 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 OH2nV^4Oe^|`hNfedNjTO literal 0 HcmV?d00001 diff --git a/packages/mrt-reference-app/src/streamingHandler.test.ts b/packages/mrt-reference-app/src/streamingHandler.test.ts new file mode 100644 index 000000000..7f9002f4f --- /dev/null +++ b/packages/mrt-reference-app/src/streamingHandler.test.ts @@ -0,0 +1,243 @@ +/* + * Copyright (c) 2025, Salesforce, Inc. + * SPDX-License-Identifier: Apache-2 + * For full license text, see the license.txt file in the repo root or http://www.apache.org/licenses/LICENSE-2.0 + */ +import {expect} from 'chai'; +import sinon from 'sinon'; +import type {APIGatewayProxyEvent, Context} from 'aws-lambda'; +import type {Writable} from 'stream'; +import {EventEmitter} from 'events'; +import {buildHandler} from './streamingHandler.js'; + +const mockHttpResponseStream = { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + from: sinon.stub().callsFake((stream: Writable) => stream), +}; + +// eslint-disable-next-line @typescript-eslint/no-explicit-any +(globalThis as any).awslambda = { + HttpResponseStream: mockHttpResponseStream, +}; + +function createMockWritable(): Writable & EventEmitter { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const stream = new EventEmitter() as any; + let ended = false; + let destroyed = false; + + stream.writable = true; + stream.writableEnded = false; + stream.writableFinished = false; + stream.destroyed = false; + + stream.write = sinon.stub().callsFake((chunk: unknown) => { + if (destroyed || ended) return false; + void chunk; + return true; + }); + + stream.end = sinon.stub().callsFake((chunk?: unknown) => { + if (destroyed) return stream; + if (chunk) void chunk; + ended = true; + stream.writableEnded = true; + stream.writableFinished = true; + stream.emit('finish'); + return stream; + }); + + stream.destroy = sinon.stub().callsFake(() => { + destroyed = true; + stream.destroyed = true; + stream.writable = false; + stream.emit('close'); + return stream; + }); + + stream.flush = sinon.stub(); + + return stream as Writable & EventEmitter; +} + +function createMockEvent(overrides?: Partial): APIGatewayProxyEvent { + return { + httpMethod: 'GET', + path: '/test', + pathParameters: null, + queryStringParameters: null, + headers: {'Content-Type': 'application/json', Host: 'example.com'}, + multiValueHeaders: {}, + body: null, + isBase64Encoded: false, + requestContext: { + requestId: 'test-request-id', + accountId: '123456789012', + apiId: 'test-api-id', + protocol: 'HTTP/1.1', + httpMethod: 'GET', + path: '/test', + stage: 'test', + requestTime: '09/Apr/2015:12:34:56 +0000', + requestTimeEpoch: 1428582896000, + identity: { + sourceIp: '127.0.0.1', + userAgent: 'test-agent', + accessKey: null, + accountId: null, + apiKey: null, + apiKeyId: null, + caller: null, + cognitoAuthenticationProvider: null, + cognitoAuthenticationType: null, + cognitoIdentityId: null, + cognitoIdentityPoolId: null, + principalOrgId: null, + user: null, + userArn: null, + clientCert: null, + }, + resourceId: 'test-resource-id', + resourcePath: '/test', + }, + ...overrides, + } as APIGatewayProxyEvent; +} + +function createMockContext(overrides?: Partial): Context { + return { + callbackWaitsForEmptyEventLoop: false, + functionName: 'test-function', + functionVersion: '$LATEST', + invokedFunctionArn: 'arn:aws:lambda:us-east-1:123456789012:function:test-function', + memoryLimitInMB: '128', + awsRequestId: 'test-request-id', + logGroupName: '/aws/lambda/test-function', + logStreamName: '2024/01/01/[$LATEST]test', + getRemainingTimeInMillis: () => 30000, + done: sinon.stub() as never, + fail: sinon.stub() as never, + succeed: sinon.stub() as never, + ...overrides, + } as Context; +} + +describe('streamingHandler', () => { + let mockResponseStream: Writable & EventEmitter; + + beforeEach(() => { + mockResponseStream = createMockWritable(); + mockHttpResponseStream.from.resetHistory(); + mockHttpResponseStream.from.callsFake((stream: Writable) => stream); + }); + + afterEach(() => { + sinon.restore(); + }); + + describe('buildHandler', () => { + it('should be a function', () => { + expect(typeof buildHandler).to.equal('function'); + }); + + it('should return a handler function when called with responseStream', () => { + const handler = buildHandler(mockResponseStream); + expect(typeof handler).to.equal('function'); + }); + + it('should return a handler that accepts event and context', async () => { + const handler = buildHandler(mockResponseStream); + const event = createMockEvent(); + const context = createMockContext(); + + const result = handler(event, context); + expect(result).to.be.instanceOf(Promise); + + await result; + + expect((mockResponseStream.write as sinon.SinonStub).called).to.equal(true); + expect((mockResponseStream.end as sinon.SinonStub).called).to.equal(true); + }); + + it('should handle requests to existing routes', async () => { + const handler = buildHandler(mockResponseStream); + await handler(createMockEvent({path: '/test'}), createMockContext()); + expect((mockResponseStream.write as sinon.SinonStub).called).to.equal(true); + expect((mockResponseStream.end as sinon.SinonStub).called).to.equal(true); + }); + + it('should handle requests to echo route', async () => { + const handler = buildHandler(mockResponseStream); + await handler(createMockEvent({path: '/echo'}), createMockContext()); + expect((mockResponseStream.write as sinon.SinonStub).called).to.equal(true); + expect((mockResponseStream.end as sinon.SinonStub).called).to.equal(true); + }); + + it('should handle requests to streaming route', async () => { + const handler = buildHandler(mockResponseStream); + await handler(createMockEvent({path: '/streaming'}), createMockContext()); + expect((mockResponseStream.write as sinon.SinonStub).called).to.equal(true); + expect((mockResponseStream.end as sinon.SinonStub).called).to.equal(true); + }); + + it('should handle different HTTP methods', async () => { + const handler = buildHandler(mockResponseStream); + await handler(createMockEvent({httpMethod: 'POST', path: '/test'}), createMockContext()); + expect((mockResponseStream.write as sinon.SinonStub).called).to.equal(true); + expect((mockResponseStream.end as sinon.SinonStub).called).to.equal(true); + }); + + it('should handle requests with query parameters', async () => { + const handler = buildHandler(mockResponseStream); + await handler( + createMockEvent({path: '/test', queryStringParameters: {foo: 'bar', baz: 'qux'}}), + createMockContext(), + ); + expect((mockResponseStream.write as sinon.SinonStub).called).to.equal(true); + expect((mockResponseStream.end as sinon.SinonStub).called).to.equal(true); + }); + + it('should handle requests with path parameters', async () => { + const handler = buildHandler(mockResponseStream); + await handler(createMockEvent({path: '/test', pathParameters: {id: '123'}}), createMockContext()); + expect((mockResponseStream.write as sinon.SinonStub).called).to.equal(true); + expect((mockResponseStream.end as sinon.SinonStub).called).to.equal(true); + }); + + it('should handle errors gracefully', async () => { + const handler = buildHandler(mockResponseStream); + await handler(createMockEvent({path: '/exception'}), createMockContext()); + expect((mockResponseStream.end as sinon.SinonStub).called).to.equal(true); + }); + + it('should create a new handler for each responseStream', () => { + const stream1 = createMockWritable(); + const stream2 = createMockWritable(); + const handler1 = buildHandler(stream1); + const handler2 = buildHandler(stream2); + expect(handler1).to.not.equal(handler2); + }); + + it('should use the provided responseStream for each handler', async () => { + const stream1 = createMockWritable(); + const stream2 = createMockWritable(); + + const handler1 = buildHandler(stream1); + const handler2 = buildHandler(stream2); + + const event = createMockEvent(); + const context = createMockContext(); + + await handler1(event, context); + expect((stream1.write as sinon.SinonStub).called).to.equal(true); + expect((stream2.write as sinon.SinonStub).called).to.equal(false); + + (stream1.write as sinon.SinonStub).resetHistory(); + (stream2.write as sinon.SinonStub).resetHistory(); + + await handler2(event, context); + expect((stream2.write as sinon.SinonStub).called).to.equal(true); + expect((stream1.write as sinon.SinonStub).called).to.equal(false); + }); + }); +}); diff --git a/packages/mrt-reference-app/src/streamingHandler.ts b/packages/mrt-reference-app/src/streamingHandler.ts new file mode 100644 index 000000000..1a40b678b --- /dev/null +++ b/packages/mrt-reference-app/src/streamingHandler.ts @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2025, Salesforce, Inc. + * SPDX-License-Identifier: Apache-2 + * For full license text, see the license.txt file in the repo root or http://www.apache.org/licenses/LICENSE-2.0 + */ +import type {APIGatewayProxyEvent, Context} from 'aws-lambda'; +import type {Writable} from 'stream'; +import type {Express} from 'express'; +import {createApp} from './app/server.js'; +import {createStreamingLambdaAdapter} from '@salesforce/mrt-utilities'; + +type AsyncHandlerFunction = (event: APIGatewayProxyEvent, context: Context) => Promise; + +type BuildHandler = (responseStream: Writable) => AsyncHandlerFunction; + +const createBuildHandler = (app: Express): BuildHandler => { + return (responseStream: Writable) => { + return async (event: APIGatewayProxyEvent, context: Context) => { + const streamingLambdaAdapter = createStreamingLambdaAdapter(app, responseStream); + return streamingLambdaAdapter(event, context); + }; + }; +}; + +const mrtApp = createApp(); + +export const buildHandler = createBuildHandler(mrtApp); diff --git a/packages/mrt-reference-app/src/utils/isolation-actions.test.ts b/packages/mrt-reference-app/src/utils/isolation-actions.test.ts new file mode 100644 index 000000000..aed5b105a --- /dev/null +++ b/packages/mrt-reference-app/src/utils/isolation-actions.test.ts @@ -0,0 +1,356 @@ +/* + * Copyright (c) 2025, Salesforce, Inc. + * SPDX-License-Identifier: Apache-2 + * For full license text, see the license.txt file in the repo root or http://www.apache.org/licenses/LICENSE-2.0 + */ +import {expect} from 'chai'; +import sinon from 'sinon'; +import { + isolationOriginLambdaTest, + isolationS3Test, + isolationLogsTest, + executeIsolationTests, +} from './isolation-actions.js'; +import {LambdaClient, InvokeCommand} from '@aws-sdk/client-lambda'; +import {S3Client, GetObjectCommand} from '@aws-sdk/client-s3'; +import {CloudWatchLogsClient, CreateLogStreamCommand} from '@aws-sdk/client-cloudwatch-logs'; +import {mockClient} from 'aws-sdk-client-mock'; +import {ServiceException} from '@smithy/smithy-client'; + +const lambdaMock = mockClient(LambdaClient); +const s3Mock = mockClient(S3Client); +const logsMock = mockClient(CloudWatchLogsClient); + +class AccessDenied extends ServiceException { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + constructor(options?: any) { + super({...options, name: 'AccessDenied'}); + } +} + +describe('isolation-actions', () => { + beforeEach(() => { + lambdaMock.reset(); + s3Mock.reset(); + logsMock.reset(); + }); + + afterEach(() => { + lambdaMock.reset(); + s3Mock.reset(); + logsMock.reset(); + sinon.restore(); + }); + + describe('isolationOriginLambdaTest', () => { + it('should return true when AccessDeniedException is thrown', async () => { + const consoleSpy = sinon.stub(console, 'error'); + const error = new ServiceException({$fault: 'client', $metadata: {}} as never); + error.name = 'AccessDeniedException'; + lambdaMock.on(InvokeCommand).rejects(error); + + const result = await isolationOriginLambdaTest({FunctionName: 'test-function'}); + expect(result).to.equal(true); + expect(consoleSpy.called).to.equal(false); + consoleSpy.restore(); + }); + + it('should return false when access is granted', async () => { + const consoleSpy = sinon.stub(console, 'error'); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + lambdaMock.on(InvokeCommand).resolves({} as any); + const result = await isolationOriginLambdaTest({FunctionName: 'test-function'}); + expect(result).to.equal(false); + expect(consoleSpy.called).to.equal(true); + consoleSpy.restore(); + }); + + it('should return false for other errors', async () => { + const consoleSpy = sinon.stub(console, 'error'); + lambdaMock.on(InvokeCommand).rejects(new Error('Network error')); + const result = await isolationOriginLambdaTest({FunctionName: 'test-function'}); + expect(result).to.equal(false); + expect(consoleSpy.called).to.equal(true); + consoleSpy.restore(); + }); + }); + + describe('isolationS3Test', () => { + it('should return true when AccessDenied is thrown', async () => { + const consoleSpy = sinon.stub(console, 'error'); + s3Mock.on(GetObjectCommand).rejects(new AccessDenied()); + const result = await isolationS3Test({Bucket: 'test-bucket', Key: 'test-key', Region: 'us-east-1'}); + expect(result).to.equal(true); + expect(consoleSpy.called).to.equal(false); + consoleSpy.restore(); + }); + + it('should use specified region', async () => { + const consoleSpy = sinon.stub(console, 'error'); + s3Mock.on(GetObjectCommand).rejects(new AccessDenied()); + const result = await isolationS3Test({Bucket: 'test-bucket', Key: 'test-key', Region: 'us-west-2'}); + expect(result).to.equal(true); + expect(s3Mock.call(0).args[0].input).to.not.have.property('Region'); + consoleSpy.restore(); + }); + + it('should return false when access is granted', async () => { + const consoleSpy = sinon.stub(console, 'error'); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + s3Mock.on(GetObjectCommand).resolves({} as any); + const result = await isolationS3Test({Bucket: 'test-bucket', Key: 'test-key'}); + expect(result).to.equal(false); + expect(consoleSpy.called).to.equal(true); + consoleSpy.restore(); + }); + + it('should use default region when Region is not specified', async () => { + const consoleSpy = sinon.stub(console, 'error'); + const originalEnv = process.env.AWS_REGION; + process.env.AWS_REGION = 'us-east-1'; + s3Mock.on(GetObjectCommand).rejects(new AccessDenied()); + const result = await isolationS3Test({Bucket: 'test-bucket', Key: 'test-key'}); + expect(result).to.equal(true); + consoleSpy.restore(); + process.env.AWS_REGION = originalEnv; + }); + }); + + describe('isolationLogsTest', () => { + it('should return true when AccessDeniedException is thrown', async () => { + const consoleSpy = sinon.stub(console, 'error'); + const error = new ServiceException({$fault: 'client', $metadata: {}} as never); + error.name = 'AccessDeniedException'; + logsMock.on(CreateLogStreamCommand).rejects(error); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const result = await isolationLogsTest({logGroupName: 'test-log-group', logStreamName: 'test-stream'} as any); + expect(result).to.equal(true); + expect(consoleSpy.called).to.equal(false); + consoleSpy.restore(); + }); + + it('should generate unique log stream names', async () => { + const consoleSpy = sinon.stub(console, 'error'); + const error = new ServiceException({$fault: 'client', $metadata: {}} as never); + error.name = 'AccessDeniedException'; + logsMock.on(CreateLogStreamCommand).rejects(error); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const result1 = await isolationLogsTest({logGroupName: 'test-log-group', logStreamName: 'test-stream-1'} as any); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const result2 = await isolationLogsTest({logGroupName: 'test-log-group', logStreamName: 'test-stream-2'} as any); + expect(result1).to.equal(true); + expect(result2).to.equal(true); + expect(logsMock.calls().length).to.equal(2); + consoleSpy.restore(); + }); + + it('should return false when access is granted', async () => { + const consoleSpy = sinon.stub(console, 'error'); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + logsMock.on(CreateLogStreamCommand).resolves({} as any); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const result = await isolationLogsTest({logGroupName: 'test-log-group', logStreamName: 'test-stream'} as any); + expect(result).to.equal(false); + expect(consoleSpy.called).to.equal(true); + consoleSpy.restore(); + }); + }); + + describe('executeIsolationTests', () => { + it('should execute all tests with valid parameters', async () => { + const consoleSpy = sinon.stub(console, 'error'); + const lambdaError = new ServiceException({$fault: 'client', $metadata: {}} as never); + lambdaError.name = 'AccessDeniedException'; + lambdaMock.on(InvokeCommand).rejects(lambdaError); + s3Mock.on(GetObjectCommand).rejects(new AccessDenied()); + const logsError = new ServiceException({$fault: 'client', $metadata: {}} as never); + logsError.name = 'AccessDeniedException'; + logsMock.on(CreateLogStreamCommand).rejects(logsError); + + const results = await executeIsolationTests({ + FunctionName: 'test-function', + Bucket: 'test-bucket', + Key: 'test-key', + logGroupName: 'test-log-group', + }); + expect(results.origin).to.equal(true); + expect(results.storage).to.equal(true); + expect(results.logs).to.equal(true); + consoleSpy.restore(); + }); + + it('should execute tests with region parameter', async () => { + const consoleSpy = sinon.stub(console, 'error'); + const lambdaError = new ServiceException({$fault: 'client', $metadata: {}} as never); + lambdaError.name = 'AccessDeniedException'; + lambdaMock.on(InvokeCommand).rejects(lambdaError); + s3Mock.on(GetObjectCommand).rejects(new AccessDenied()); + const logsError = new ServiceException({$fault: 'client', $metadata: {}} as never); + logsError.name = 'AccessDeniedException'; + logsMock.on(CreateLogStreamCommand).rejects(logsError); + + const results = await executeIsolationTests({ + FunctionName: 'test-function', + Bucket: 'test-bucket', + Key: 'test-key', + Region: 'us-west-2', + logGroupName: 'test-log-group', + }); + expect(results.origin).to.equal(true); + expect(results.storage).to.equal(true); + expect(results.logs).to.equal(true); + consoleSpy.restore(); + }); + + it('should return false for all tests when access is granted', async () => { + const consoleSpy = sinon.stub(console, 'error'); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + lambdaMock.on(InvokeCommand).resolves({} as any); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + s3Mock.on(GetObjectCommand).resolves({} as any); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + logsMock.on(CreateLogStreamCommand).resolves({} as any); + + const results = await executeIsolationTests({ + FunctionName: 'test-function', + Bucket: 'test-bucket', + Key: 'test-key', + logGroupName: 'test-log-group', + }); + expect(results.origin).to.equal(false); + expect(results.storage).to.equal(false); + expect(results.logs).to.equal(false); + consoleSpy.restore(); + }); + + it('should execute tests with partial parameters', async () => { + const consoleSpy = sinon.stub(console, 'error'); + const lambdaError = new ServiceException({$fault: 'client', $metadata: {}} as never); + lambdaError.name = 'AccessDeniedException'; + lambdaMock.on(InvokeCommand).rejects(lambdaError); + s3Mock.on(GetObjectCommand).rejects(new AccessDenied()); + const logsError = new ServiceException({$fault: 'client', $metadata: {}} as never); + logsError.name = 'AccessDeniedException'; + logsMock.on(CreateLogStreamCommand).rejects(logsError); + + const results = await executeIsolationTests({FunctionName: 'test-function'}); + expect(results.origin).to.equal(true); + expect(results.storage).to.equal(true); + expect(results.logs).to.equal(true); + consoleSpy.restore(); + }); + + it('should handle mixed results', async () => { + const consoleSpy = sinon.stub(console, 'error'); + const lambdaError = new ServiceException({$fault: 'client', $metadata: {}} as never); + lambdaError.name = 'AccessDeniedException'; + lambdaMock.on(InvokeCommand).rejects(lambdaError); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + s3Mock.on(GetObjectCommand).resolves({} as any); + const logsError = new ServiceException({$fault: 'client', $metadata: {}} as never); + logsError.name = 'AccessDeniedException'; + logsMock.on(CreateLogStreamCommand).rejects(logsError); + + const results = await executeIsolationTests({ + FunctionName: 'test-function', + Bucket: 'test-bucket', + Key: 'test-key', + logGroupName: 'test-log-group', + }); + expect(results.origin).to.equal(true); + expect(results.storage).to.equal(false); + expect(results.logs).to.equal(true); + consoleSpy.restore(); + }); + + it('should handle empty parameters object', async () => { + const consoleSpy = sinon.stub(console, 'error'); + lambdaMock.on(InvokeCommand).rejects(new Error('Missing function name')); + lambdaMock.on(InvokeCommand).rejects(new Error('Missing parameters')); + logsMock.on(CreateLogStreamCommand).rejects(new Error('Missing log group name')); + + const results = await executeIsolationTests({}); + expect(results.origin).to.equal(false); + expect(results.storage).to.equal(false); + expect(results.logs).to.equal(false); + consoleSpy.restore(); + }); + }); + + describe('isolationOriginLambdaTest edge cases', () => { + it('should handle different error types correctly', async () => { + const consoleSpy = sinon.stub(console, 'error'); + lambdaMock.on(InvokeCommand).rejects(new Error('Network timeout')); + const result = await isolationOriginLambdaTest({FunctionName: 'test-function'}); + expect(result).to.equal(false); + expect(consoleSpy.called).to.equal(true); + consoleSpy.restore(); + }); + + it('should handle missing FunctionName', async () => { + const consoleSpy = sinon.stub(console, 'error'); + lambdaMock.on(InvokeCommand).rejects(new Error('Missing parameter')); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const result = await isolationOriginLambdaTest({FunctionName: ''} as any); + expect(result).to.equal(false); + expect(consoleSpy.called).to.equal(true); + consoleSpy.restore(); + }); + }); + + describe('isolationS3Test edge cases', () => { + it('should handle missing bucket parameter', async () => { + const consoleSpy = sinon.stub(console, 'error'); + s3Mock.on(GetObjectCommand).rejects(new AccessDenied()); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const result = await isolationS3Test({Key: 'test-key'} as any); + expect(result).to.equal(true); + expect(consoleSpy.called).to.equal(false); + consoleSpy.restore(); + }); + + it('should handle missing key parameter', async () => { + const consoleSpy = sinon.stub(console, 'error'); + s3Mock.on(GetObjectCommand).rejects(new AccessDenied()); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const result = await isolationS3Test({Bucket: 'test-bucket'} as any); + expect(result).to.equal(true); + expect(consoleSpy.called).to.equal(false); + consoleSpy.restore(); + }); + + it('should handle different AWS regions', async () => { + const consoleSpy = sinon.stub(console, 'error'); + s3Mock.on(GetObjectCommand).rejects(new AccessDenied()); + const result = await isolationS3Test({Bucket: 'test-bucket', Key: 'test-key', Region: 'eu-west-1'}); + expect(result).to.equal(true); + expect(consoleSpy.called).to.equal(false); + consoleSpy.restore(); + }); + }); + + describe('isolationLogsTest edge cases', () => { + it('should handle missing logGroupName', async () => { + const consoleSpy = sinon.stub(console, 'error'); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + logsMock.on(CreateLogStreamCommand).resolves({} as any); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const result = await isolationLogsTest({} as any); + expect(result).to.equal(false); + expect(consoleSpy.called).to.equal(true); + consoleSpy.restore(); + }); + + it('should handle different error names', async () => { + const consoleSpy = sinon.stub(console, 'error'); + const error = new ServiceException({$fault: 'server', $metadata: {}} as never); + error.name = 'ServiceException'; + logsMock.on(CreateLogStreamCommand).rejects(error); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const result = await isolationLogsTest({logGroupName: 'test-log-group', logStreamName: 'test-stream'} as any); + expect(result).to.equal(false); + expect(consoleSpy.called).to.equal(true); + consoleSpy.restore(); + }); + }); +}); diff --git a/packages/mrt-reference-app/src/utils/isolation-actions.ts b/packages/mrt-reference-app/src/utils/isolation-actions.ts new file mode 100644 index 000000000..e341871fd --- /dev/null +++ b/packages/mrt-reference-app/src/utils/isolation-actions.ts @@ -0,0 +1,121 @@ +/* + * Copyright (c) 2025, Salesforce, Inc. + * SPDX-License-Identifier: Apache-2 + * For full license text, see the license.txt file in the repo root or http://www.apache.org/licenses/LICENSE-2.0 + */ +import {LambdaClient, InvokeCommand, type InvokeCommandInput} from '@aws-sdk/client-lambda'; +import {S3Client, GetObjectCommand, type GetObjectCommandInput} from '@aws-sdk/client-s3'; +import {CloudWatchLogsClient, CreateLogStreamCommand, type CreateLogStreamCommandInput} from '@aws-sdk/client-cloudwatch-logs'; +import {DynamoDBClient} from '@aws-sdk/client-dynamodb'; +import {DynamoDBDocumentClient, GetCommand} from '@aws-sdk/lib-dynamodb'; +import type {Request, Response} from 'express'; + +interface IsolationTestParams { + FunctionName?: string; + Bucket?: string; + Key?: string; + Region?: string; + logGroupName?: string; + dalKey?: string; + dalProjectEnvironment?: string; +} + +interface TestResult { + [key: string]: boolean; +} + +const hasErrorName = (error: unknown, name: string): boolean => { + if (typeof error !== 'object' || error === null) return false; + const awsError = error as {name?: string; message?: string}; + return awsError.name === name || awsError.message === name; +}; + +export const isolationOriginLambdaTest = async (input: InvokeCommandInput): Promise => { + const client = new LambdaClient(); + try { + await client.send(new InvokeCommand(input)); + } catch (e) { + if (hasErrorName(e, 'AccessDeniedException')) return true; + console.error(e); + } + console.error('Lambda isolation test failed!'); + return false; +}; + +export const isolationS3Test = async (input: GetObjectCommandInput & {Region?: string}): Promise => { + const region = input.Region || process.env.AWS_REGION || 'us-east-1'; + const client = new S3Client({region}); + delete input.Region; + try { + await client.send(new GetObjectCommand(input)); + } catch (e) { + if (hasErrorName(e, 'AccessDenied')) return true; + console.error(e); + } + console.error('S3 isolation test failed!'); + return false; +}; + +export const isolationLogsTest = async (input: CreateLogStreamCommandInput): Promise => { + const client = new CloudWatchLogsClient(); + try { + const randomString = Math.random().toString(36).slice(2, 7); + await client.send(new CreateLogStreamCommand({...input, logStreamName: `new_log_stream_${randomString}`})); + } catch (e) { + if (hasErrorName(e, 'AccessDeniedException')) return true; + console.error(e); + } + console.error('Log group isolation test failed!'); + return false; +}; + +export const isolationDalTest = async (input: {dalKey?: string; dalProjectEnvironment?: string}): Promise => { + if (!process.env.AWS_REGION || !input.dalKey || !input.dalProjectEnvironment) { + console.error('DAL isolation test failed: missing required parameters'); + return false; + } + const tableName = `DataAccessLayer-${process.env.AWS_REGION}`; + const ddbClient = DynamoDBDocumentClient.from(new DynamoDBClient({region: process.env.AWS_REGION})); + try { + await ddbClient.send( + new GetCommand({ + TableName: tableName, + Key: {projectEnvironment: input.dalProjectEnvironment, key: input.dalKey}, + }), + ); + } catch (e) { + if (hasErrorName(e, 'AccessDeniedException')) return true; + console.error(e); + } + console.error("DAL isolation test failed: Target B accessed Target A's DAL entry"); + return false; +}; + +export const executeIsolationTests = async (params: IsolationTestParams): Promise => { + const tests = [ + {name: 'origin', keys: ['FunctionName'], fn: isolationOriginLambdaTest}, + {name: 'storage', keys: ['Bucket', 'Key', 'Region'], fn: isolationS3Test}, + {name: 'logs', keys: ['logGroupName'], fn: isolationLogsTest}, + {name: 'dal', keys: ['dalKey', 'dalProjectEnvironment'], fn: isolationDalTest}, + ]; + const results: TestResult = {}; + for (const test of tests) { + const {keys, fn, name} = test; + const input = Object.keys(params) + .filter((key) => keys.includes(key)) + // eslint-disable-next-line @typescript-eslint/no-explicit-any + .reduce((obj: Record, key) => { + obj[key] = params[key as keyof IsolationTestParams]; + return obj; + }, {}); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + results[name] = await fn(input as any); + } + return results; +}; + +export const isolationTests = async (req: Request, res: Response): Promise => { + const results = await executeIsolationTests(req.query); + res.header('Content-Type', 'application/json'); + res.send(JSON.stringify(results, null, 4)); +}; diff --git a/packages/mrt-reference-app/src/utils/reference-routes.test.ts b/packages/mrt-reference-app/src/utils/reference-routes.test.ts new file mode 100644 index 000000000..603b26c92 --- /dev/null +++ b/packages/mrt-reference-app/src/utils/reference-routes.test.ts @@ -0,0 +1,907 @@ +/* + * Copyright (c) 2025, Salesforce, Inc. + * SPDX-License-Identifier: Apache-2 + * For full license text, see the license.txt file in the repo root or http://www.apache.org/licenses/LICENSE-2.0 + */ +import {expect} from 'chai'; +import sinon from 'sinon'; +import request from 'supertest'; +import express, {type Express} from 'express'; +import fs from 'fs/promises'; +import {mockClient} from 'aws-sdk-client-mock'; +import {SecretsManagerClient, GetSecretValueCommand} from '@aws-sdk/client-secrets-manager'; +import {DataStore, DataStoreNotFoundError, DataStoreServiceError, DataStoreUnavailableError} from '@salesforce/mrt-utilities'; +import { + echo, + exception, + tlsVersionTest, + cacheTest, + cookieTest, + responseHeadersTest, + memoryTest, + headerTest, + loggingMiddleware, + streamingTest, + multiValueHeadersTest, + setStatusTest, + ssrBundleFileTest, + streamingResponseLarge, + winstonLogging, + delayedLogging, + massLogging, + largeLogging, + dataStoreTest, + secretsManagerTest, + proxyTransformationTest, +} from './reference-routes.js'; + +describe('reference-routes', () => { + let app: Express; + + beforeEach(() => { + app = express(); + sinon.stub(fs, 'readFile'); + }); + + afterEach(() => { + sinon.restore(); + }); + + describe('echo', () => { + it('should return JSON with diagnostic values', async () => { + app.get('/test', echo); + const response = await request(app).get('/test').expect(200).expect('Content-Type', /json/); + expect(response.body).to.have.property('args'); + expect(response.body).to.have.property('protocol'); + expect(response.body).to.have.property('method'); + expect(response.body).to.have.property('path'); + expect(response.body).to.have.property('query'); + expect(response.body).to.have.property('headers'); + expect(response.body).to.have.property('ip'); + expect(response.body).to.have.property('env'); + expect(response.body).to.have.property('timestamp'); + expect(response.body).to.have.property('route_path'); + }); + + it('should include query parameters in response', async () => { + app.get('/test', echo); + const response = await request(app).get('/test?foo=bar&baz=qux'); + expect(response.body.query).to.deep.equal({foo: 'bar', baz: 'qux'}); + }); + + it('should include request headers in response', async () => { + app.get('/test', echo); + const response = await request(app).get('/test').set('Custom-Header', 'custom-value'); + expect(response.body.headers).to.have.property('custom-header'); + expect(response.body.headers['custom-header']).to.equal('custom-value'); + }); + }); + + describe('exception', () => { + it('should throw an IntentionalError', () => { + app.get('/test', exception); + return request(app).get('/test').expect(500); + }); + }); + + describe('tlsVersionTest', () => { + it('should make requests to TLS test domains', async () => { + app.get('/test', tlsVersionTest); + const response = await request(app).get('/test').expect(200).expect('Content-Type', /application\/json/); + expect(response.text).to.include('tls1.1'); + expect(response.text).to.include('tls1.2'); + }); + }); + + describe('cacheTest', () => { + it('should set default cache control', async () => { + app.get('/test', cacheTest); + const response = await request(app).get('/test').expect(200); + expect(response.headers['cache-control']).to.equal('s-maxage=60'); + }); + + it('should set custom cache control duration', async () => { + app.get('/cache/:duration', cacheTest); + const response = await request(app).get('/cache/120').expect(200); + expect(response.headers['cache-control']).to.equal('s-maxage=120'); + }); + + it('should fallback to default for invalid duration', async () => { + app.get('/cache/:duration', cacheTest); + const response = await request(app).get('/cache/invalid').expect(200); + expect(response.headers['cache-control']).to.equal('s-maxage=60'); + }); + }); + + describe('cookieTest', () => { + it('should set a cookie when name and value are provided', async () => { + app.get('/test', cookieTest); + const response = await request(app).get('/test?name=test-cookie&value=test-value').expect(200); + expect(response.headers['set-cookie']).to.include('test-cookie=test-value; Path=/'); + expect(response.headers['cache-control']).to.equal('private, max-age=60'); + }); + + it('should not set cookie when name is not provided', async () => { + app.get('/test', cookieTest); + const response = await request(app).get('/test?value=test-value').expect(200); + expect(response.headers['set-cookie']).to.be.undefined; + }); + + it('should return JSON with diagnostic values', async () => { + app.get('/test', cookieTest); + const response = await request(app).get('/test'); + expect(response.body).to.have.property('timestamp'); + expect(response.body).to.have.property('headers'); + }); + }); + + describe('responseHeadersTest', () => { + it('should set response headers from query parameters', async () => { + app.get('/test', responseHeadersTest); + const response = await request(app).get('/test?header1=value1&header2=value2').expect(200); + expect(response.headers.header1).to.equal('value1'); + expect(response.headers.header2).to.equal('value2'); + }); + + it('should handle multi-value headers', async () => { + app.get('/test', responseHeadersTest); + const response = await request(app).get('/test?header3=value3&header3=value4').expect(200); + expect(response.headers.header3).to.not.be.undefined; + }); + }); + + describe('memoryTest', () => { + it('should allocate memory and return diagnostic info', async () => { + app.get('/test', memoryTest); + const response = await request(app).get('/test').expect(200); + expect(response.body.additional_info).to.have.property('memory_end'); + expect(response.body.additional_info).to.have.property('memory_delta'); + expect(response.body.additional_info).to.have.property('malloc_time'); + expect(response.body.additional_info).to.have.property('gc_time'); + }); + + it('should handle custom test parameters', async () => { + app.get('/test', memoryTest); + const response = await request(app).get('/test?count=5&size=2048').expect(200); + expect(response.body.additional_info.test_count).to.equal(5); + expect(response.body.additional_info.test_size).to.equal(2048); + }); + + it('should perform garbage collection when requested', async () => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + (global as any).gc = sinon.stub(); + app.get('/test', memoryTest); + const response = await request(app).get('/test?forcegc=true').expect(200); + expect(response.body.additional_info.force_gc).to.equal(true); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + expect(((global as any).gc as sinon.SinonStub).called).to.equal(true); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + delete (global as any).gc; + }); + }); + + describe('headerTest', () => { + it('should return sorted headers', async () => { + app.get('/test', headerTest); + const response = await request(app) + .get('/test') + .set('Random-Header', 'random') + .set('Another-Header', 'another') + .expect(200); + expect(response.body).to.have.property('headers'); + expect(response.body.headers).to.be.instanceOf(Object); + }); + + it('should convert headers to lowercase', async () => { + app.get('/test', headerTest); + const response = await request(app) + .get('/test') + .set('Mixed-Case-Header', 'value') + .set('UPPERCASE', 'value') + .expect(200); + const headerKeys = Object.keys(response.body.headers); + headerKeys.forEach((key) => { + expect(key).to.equal(key.toLowerCase()); + }); + }); + }); + + describe('loggingMiddleware', () => { + it('should log request information', async () => { + const consoleSpy = sinon.stub(console, 'log'); + app.use(loggingMiddleware); + app.get('/test', echo); + await request(app).get('/test?foo=bar').expect(200); + expect(consoleSpy.args.some((args) => String(args[0]).includes('Request:'))).to.equal(true); + expect(consoleSpy.args.some((args) => String(args[0]).includes('Request headers:'))).to.equal(true); + consoleSpy.restore(); + }); + + it('should log response information', async () => { + const consoleSpy = sinon.stub(console, 'log'); + app.use(loggingMiddleware); + app.get('/test', echo); + await request(app).get('/test').expect(200); + expect(consoleSpy.args.some((args) => String(args[0]).includes('Response status:'))).to.equal(true); + expect(consoleSpy.args.some((args) => String(args[0]).includes('Response headers:'))).to.equal(true); + consoleSpy.restore(); + }); + + it('should call next function', () => { + const nextFn = sinon.stub(); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const mockReq = {method: 'GET', originalUrl: '/test'} as any; + const mockRes = { + headersSent: true, + statusCode: 200, + on: sinon.stub().callsFake((event: string, cb: () => void) => { + if (event === 'finish') cb(); + }), + getHeaders: sinon.stub().returns({}), + // eslint-disable-next-line @typescript-eslint/no-explicit-any + } as any; + loggingMiddleware(mockReq, mockRes, nextFn); + expect(nextFn.called).to.equal(true); + }); + + it('should handle responses without headers sent', () => { + const consoleSpy = sinon.stub(console, 'log'); + const nextFn = sinon.stub(); + const mockReq = {method: 'GET', originalUrl: '/test', headers: {}} as never; + const mockRes = { + headersSent: false, + statusCode: 200, + on: sinon.stub().callsFake((event: string, cb: () => void) => { + if (event === 'finish') cb(); + }), + getHeaders: sinon.stub().returns({}), + } as never; + loggingMiddleware(mockReq, mockRes, nextFn); + expect(nextFn.called).to.equal(true); + consoleSpy.restore(); + }); + }); + + describe('echo edge cases', () => { + it('should handle POST requests with body', async () => { + app.use(express.json()); + app.post('/test', echo); + const response = await request(app).post('/test').send({foo: 'bar'}).expect(200); + expect(response.body.body).to.deep.equal({foo: 'bar'}); + }); + + it('should handle requests with complex headers', async () => { + app.get('/test', echo); + const response = await request(app) + .get('/test') + .set('X-Forwarded-For', '192.168.1.1') + .set('User-Agent', 'Test-Agent') + .set('Accept-Language', 'en-US,en;q=0.9'); + expect(response.body.headers).to.have.property('x-forwarded-for'); + expect(response.body.headers).to.have.property('user-agent'); + expect(response.body.headers).to.have.property('accept-language'); + }); + + it('should handle IPv6 addresses', async () => { + app.get('/test', echo); + const response = await request(app).get('/test'); + expect(response.body.ip).to.not.be.undefined; + }); + }); + + describe('cacheTest edge cases', () => { + it('should handle very large cache durations', async () => { + app.get('/cache/:duration', cacheTest); + const response = await request(app).get('/cache/999999').expect(200); + expect(response.headers['cache-control']).to.equal('s-maxage=999999'); + }); + + it('should handle zero duration', async () => { + app.get('/cache/:duration', cacheTest); + const response = await request(app).get('/cache/0').expect(200); + expect(response.headers['cache-control']).to.equal('s-maxage=0'); + }); + + it('should handle negative duration', async () => { + app.get('/cache/:duration', cacheTest); + const response = await request(app).get('/cache/-1').expect(200); + expect(response.headers['cache-control']).to.equal('s-maxage=-1'); + }); + + it('should handle float duration', async () => { + app.get('/cache/:duration', cacheTest); + const response = await request(app).get('/cache/60.5').expect(200); + expect(response.headers['cache-control']).to.equal('s-maxage=60.5'); + }); + }); + + describe('cookieTest edge cases', () => { + it('should handle cookie without value', async () => { + app.get('/test', cookieTest); + const response = await request(app).get('/test?name=test-cookie').expect(200); + expect(response.headers['set-cookie']).to.include('test-cookie=undefined; Path=/'); + }); + + it('should handle empty cookie value', async () => { + app.get('/test', cookieTest); + const response = await request(app).get('/test?name=test-cookie&value=').expect(200); + expect(response.headers['set-cookie']).to.satisfy( + (v: string | string[]) => (Array.isArray(v) ? v.join(',') : v).includes('test-cookie=; Path=/'), + ); + }); + + it('should handle special characters in cookie values', async () => { + app.get('/test', cookieTest); + const response = await request(app).get('/test?name=test-cookie&value=test%20value!').expect(200); + expect(response.headers['set-cookie']).to.not.be.undefined; + const cookieVal = Array.isArray(response.headers['set-cookie']) + ? response.headers['set-cookie'][0] + : response.headers['set-cookie']; + expect(cookieVal).to.include('test-cookie='); + }); + }); + + describe('responseHeadersTest edge cases', () => { + it('should handle single header value', async () => { + app.get('/test', responseHeadersTest); + const response = await request(app).get('/test?header1=value1').expect(200); + expect(response.headers.header1).to.equal('value1'); + }); + + it('should handle multiple values for the same header', async () => { + app.get('/test', responseHeadersTest); + const response = await request(app).get('/test?header1=value1&header1=value2').expect(200); + expect(response.headers.header1).to.not.be.undefined; + }); + }); + + describe('multiValueHeadersTest', () => { + it('should set multi-value header with array of values', async () => { + app.get('/test', multiValueHeadersTest); + const response = await request(app).get('/test').expect(200); + expect(response.headers['x-multi-value-header']).to.not.be.undefined; + const headerValue = response.headers['x-multi-value-header']; + expect(headerValue).to.include('value1'); + expect(headerValue).to.include('value2'); + expect(headerValue).to.include('value3'); + }); + + it('should return JSON response with request info', async () => { + app.get('/test', multiValueHeadersTest); + const response = await request(app).get('/test?param1=value1').expect(200); + expect(response.body).to.not.be.undefined; + expect(typeof response.body).to.equal('object'); + }); + }); + + describe('memoryTest edge cases', () => { + it('should handle zero test count', async () => { + app.get('/test', memoryTest); + const response = await request(app).get('/test?count=0').expect(200); + expect(response.body.additional_info.test_count).to.equal(0); + }); + + it('should handle very small test size', async () => { + app.get('/test', memoryTest); + const response = await request(app).get('/test?size=1').expect(200); + expect(response.body.additional_info.test_size).to.equal(1); + }); + + it('should handle very large test size', async () => { + app.get('/test', memoryTest); + const response = await request(app).get('/test?size=1048576').expect(200); + expect(response.body.additional_info.test_size).to.equal(1048576); + }); + + it('should handle fractional test count', async () => { + app.get('/test', memoryTest); + const response = await request(app).get('/test?count=5.5').expect(200); + expect(response.body.additional_info.test_count).to.equal(5); + }); + + it('should handle multiple gc-related parameters', async () => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + (global as any).gc = sinon.stub(); + app.get('/test', memoryTest); + const response = await request(app).get('/test?gc=true&forcegc=true').expect(200); + expect(response.body.additional_info.force_gc).to.equal(true); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + delete (global as any).gc; + }); + }); + + describe('streamingTest', () => { + it('should set Content-Type header to text/plain', async () => { + app.get('/test', streamingTest); + const response = await request(app).get('/test').expect(200); + expect(response.headers['content-type']).to.equal('text/plain'); + }); + + it('should write multiple chunks to the response', async () => { + app.get('/test', streamingTest); + const response = await request(app).get('/test').expect(200); + expect(response.text).to.include('Here is a streaming chunk0'); + expect(response.text).to.include('Here is a streaming chunk50'); + expect(response.text).to.include('Here is a streaming chunk99'); + }); + + it('should write exactly 100 chunks', async () => { + app.get('/test', streamingTest); + const response = await request(app).get('/test').expect(200); + const chunkMatches = response.text.match(/Here is a streaming chunk\d+/g); + expect(chunkMatches).to.have.lengthOf(100); + }); + + it('should write chunks in sequential order', async () => { + app.get('/test', streamingTest); + const response = await request(app).get('/test').expect(200); + for (let i = 0; i < 100; i++) { + expect(response.text).to.include(`Here is a streaming chunk${i}`); + } + }); + + it('should end the response after all chunks', async () => { + app.get('/test', streamingTest); + const response = await request(app).get('/test').expect(200); + expect(response.text).to.be.ok; + }); + }); + + describe('setStatusTest', () => { + it('should return 200 by default', async () => { + app.get('/test', setStatusTest); + const response = await request(app).get('/test').expect(200); + expect(response.body).to.have.property('method'); + expect(response.headers['x-status-code']).to.equal('200'); + }); + + it('should return custom status from query parameter', async () => { + app.get('/test', setStatusTest); + const response = await request(app).get('/test?status=201').expect(201); + expect(response.headers['x-status-code']).to.equal('201'); + }); + + it('should return 404 when status=404', async () => { + app.get('/test', setStatusTest); + await request(app).get('/test?status=404').expect(404); + }); + + it('should return 500 when status=500', async () => { + app.get('/test', setStatusTest); + await request(app).get('/test?status=500').expect(500); + }); + }); + + describe('ssrBundleFileTest', () => { + it('should return JSON from file when read succeeds', async () => { + (fs.readFile as sinon.SinonStub).resolves('{"message":"test content"}'); + app.get('/test', ssrBundleFileTest); + const response = await request(app).get('/test').expect(200); + expect(response.body).to.deep.equal({message: 'test content'}); + }); + + it('should return 500 when file read fails', async () => { + (fs.readFile as sinon.SinonStub).rejects(new Error('ENOENT')); + app.get('/test', ssrBundleFileTest); + const response = await request(app).get('/test').expect(500); + expect(response.body).to.have.property('error'); + }); + }); + + describe('streamingResponseLarge', () => { + it('should return streaming: false when MRT_BUNDLE_TYPE is not stream', async () => { + const originalEnv = process.env.MRT_BUNDLE_TYPE; + delete process.env.MRT_BUNDLE_TYPE; + app.get('/test', streamingResponseLarge); + const response = await request(app).get('/test').expect(200); + expect(response.body).to.deep.equal({streaming: false}); + if (originalEnv !== undefined) process.env.MRT_BUNDLE_TYPE = originalEnv; + }); + + it('should set status and content-type and write first chunk when MRT_BUNDLE_TYPE is stream', () => { + const originalEnv = process.env.MRT_BUNDLE_TYPE; + process.env.MRT_BUNDLE_TYPE = 'stream'; + const write = sinon.stub(); + const end = sinon.stub(); + const mockRes = { + status: sinon.stub().returnsThis(), + setHeader: sinon.stub(), + write, + end, + flush: sinon.stub(), + // eslint-disable-next-line @typescript-eslint/no-explicit-any + } as any; + streamingResponseLarge({} as never, mockRes); + expect((mockRes.status as sinon.SinonStub).calledWith(200)).to.equal(true); + expect((mockRes.setHeader as sinon.SinonStub).calledWith('Content-Type', 'text/plain')).to.equal(true); + expect(write.calledWith('This is the first piece of streamed data.\n')).to.equal(true); + if (originalEnv !== undefined) process.env.MRT_BUNDLE_TYPE = originalEnv; + else delete process.env.MRT_BUNDLE_TYPE; + }); + }); + + describe('winstonLogging', () => { + it('should run without throwing', () => { + const mockReq = {} as never; + const mockRes = {json: sinon.stub()} as never; + expect(() => winstonLogging(mockReq, mockRes)).to.not.throw(); + }); + + it('should log via console and return JSON response', () => { + const consoleSpy = sinon.stub(console, 'log'); + const mockReq = {} as never; + const mockRes = {json: sinon.stub()} as never; + winstonLogging(mockReq, mockRes); + expect(consoleSpy.called).to.equal(true); + expect((mockRes as {json: sinon.SinonStub}).json.calledWith({message: 'Winston logging completed'})).to.equal( + true, + ); + consoleSpy.restore(); + }); + }); + + describe('delayedLogging', () => { + it('should return JSON with duration after delay', async () => { + const clock = sinon.useFakeTimers(); + const mockReq = {query: {}} as never; + const mockRes = {json: sinon.stub()} as never; + const promise = delayedLogging(mockReq, mockRes); + await clock.tickAsync(10000); + await promise; + expect( + (mockRes as {json: sinon.SinonStub}).json.calledWith( + sinon.match({message: 'Delayed logging 10000ms'}), + ), + ).to.equal(true); + expect((mockRes as {json: sinon.SinonStub}).json.args[0][0]).to.have.property('duration'); + clock.restore(); + }); + }); + + describe('massLogging', () => { + it('should return 200 with duration and message using default count', async () => { + app.get('/test', massLogging); + const response = await request(app).get('/test').expect(200); + expect(response.body).to.have.property('duration'); + expect(response.body).to.have.property('message', 'Mass logging 10000 logs'); + }); + + it('should use custom count from query parameter', async () => { + app.get('/test', massLogging); + const response = await request(app).get('/test?count=100').expect(200); + expect(response.body).to.have.property('duration'); + expect(response.body).to.have.property('message', 'Mass logging 100 logs'); + }); + + it('should include size in response', async () => { + app.get('/test', massLogging); + const response = await request(app).get('/test?count=10').expect(200); + expect(response.body).to.have.property('size'); + expect(response.body.size).to.match(/^\d+(\.\d+)?KB$/); + }); + }); + + describe('largeLogging', () => { + it('should return 200 with duration, message and size', async () => { + app.get('/test', largeLogging); + const response = await request(app).get('/test?count=10').expect(200); + expect(response.body).to.have.property('duration'); + expect(response.body).to.have.property('message', 'Large logging'); + expect(response.body).to.have.property('size'); + expect(response.body.size).to.match(/^\d+(\.\d+)?KB$/); + }); + + it('should use custom count from query parameter', async () => { + app.get('/test', largeLogging); + const response = await request(app).get('/test?count=50').expect(200); + expect(response.body).to.have.property('duration'); + expect(response.body).to.have.property('message', 'Large logging'); + expect(response.body).to.have.property('size'); + }); + }); + + describe('dataStoreTest', () => { + let mockGetEntry: sinon.SinonStub; + let mockIsDataStoreAvailable: sinon.SinonStub; + let originalInstance: DataStore | null; + + beforeEach(() => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + originalInstance = (DataStore as any)._instance; + mockGetEntry = sinon.stub(); + mockIsDataStoreAvailable = sinon.stub().returns(true); + const mockDataStore = {getEntry: mockGetEntry, isDataStoreAvailable: mockIsDataStoreAvailable} as never; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + (DataStore as any)._instance = mockDataStore; + }); + + afterEach(() => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + (DataStore as any)._instance = originalInstance; + }); + + it('should return 200 with { dataStore: false } when the data store is unavailable', async () => { + mockIsDataStoreAvailable.returns(false); + app.get('/data-store/:key', dataStoreTest); + const response = await request(app).get('/data-store/my-key').expect(200); + expect(response.body).to.deep.equal({dataStore: false}); + }); + + it('should return 200 with the entry when getEntry returns data', async () => { + const entry = {key: 'my-key', value: {foo: 'bar'}}; + mockGetEntry.resolves(entry); + app.get('/data-store/:key', dataStoreTest); + const response = await request(app).get('/data-store/my-key').expect(200); + expect(response.body).to.deep.equal(entry); + }); + + it('should return 400 when getEntry throws DataStoreUnavailableError', async () => { + mockGetEntry.rejects(new DataStoreUnavailableError('The data store is unavailable.')); + app.get('/data-store/:key', dataStoreTest); + const response = await request(app).get('/data-store/my-key').expect(400); + expect(response.body).to.have.property('error', 'The data store is unavailable.'); + }); + + it('should return 404 when getEntry throws DataStoreNotFoundError', async () => { + mockGetEntry.rejects(new DataStoreNotFoundError("Data store entry 'my-key' not found.")); + app.get('/data-store/:key', dataStoreTest); + const response = await request(app).get('/data-store/my-key').expect(404); + expect(response.body).to.have.property('error', "Data store entry 'my-key' not found."); + }); + + it('should return 500 when getEntry throws DataStoreServiceError', async () => { + mockGetEntry.rejects(new DataStoreServiceError('Data store request failed.')); + app.get('/data-store/:key', dataStoreTest); + const response = await request(app).get('/data-store/my-key').expect(500); + expect(response.body).to.have.property('error', 'Data store request failed.'); + }); + }); + + describe('secretsManagerTest', () => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const secretsManagerMock: any = mockClient(SecretsManagerClient as any); + + beforeEach(() => { + secretsManagerMock.reset(); + }); + + it('should return 400 when secretId is missing', async () => { + app.get('/test', secretsManagerTest); + const response = await request(app).get('/test').expect(400); + expect(response.body).to.deep.equal({error: 'Missing required query parameter: secretId'}); + }); + + it('should return 200 with secret metadata on success', async () => { + secretsManagerMock.on(GetSecretValueCommand).resolves({ + ARN: 'arn:aws:secretsmanager:us-west-2:123456789:secret:test-secret', + VersionId: 'version-123', + SecretString: 'secret-value', + }); + app.get('/test', secretsManagerTest); + const response = await request(app).get('/test?secretId=test-secret').expect(200); + expect(response.body).to.deep.equal({ + success: true, + secretId: 'test-secret', + arn: 'arn:aws:secretsmanager:us-west-2:123456789:secret:test-secret', + versionId: 'version-123', + hasSecretString: true, + hasSecretBinary: false, + }); + }); + + it('should return 200 with binary secret metadata', async () => { + secretsManagerMock.on(GetSecretValueCommand).resolves({ + ARN: 'arn:aws:secretsmanager:us-west-2:123456789:secret:binary-secret', + VersionId: 'version-456', + SecretBinary: Buffer.from('binary-data'), + }); + app.get('/test', secretsManagerTest); + const response = await request(app).get('/test?secretId=binary-secret').expect(200); + expect(response.body).to.deep.equal({ + success: true, + secretId: 'binary-secret', + arn: 'arn:aws:secretsmanager:us-west-2:123456789:secret:binary-secret', + versionId: 'version-456', + hasSecretString: false, + hasSecretBinary: true, + }); + }); + + it('should return 404 when secret is not found', async () => { + secretsManagerMock.on(GetSecretValueCommand).rejects({name: 'ResourceNotFoundException', message: 'Secret not found'}); + app.get('/test', secretsManagerTest); + const response = await request(app).get('/test?secretId=nonexistent').expect(404); + expect(response.body).to.deep.equal({ + success: false, + error: 'Secret not found', + errorCode: 'ResourceNotFoundException', + secretId: 'nonexistent', + }); + }); + + it('should return 403 when access is denied', async () => { + secretsManagerMock.on(GetSecretValueCommand).rejects({name: 'AccessDeniedException', message: 'User is not authorized to perform action'}); + app.get('/test', secretsManagerTest); + const response = await request(app).get('/test?secretId=forbidden-secret').expect(403); + expect(response.body).to.deep.equal({ + success: false, + error: 'User is not authorized to perform action', + errorCode: 'AccessDeniedException', + secretId: 'forbidden-secret', + }); + }); + + it('should return 400 for invalid request', async () => { + secretsManagerMock.on(GetSecretValueCommand).rejects({name: 'InvalidRequestException', message: 'Invalid request'}); + app.get('/test', secretsManagerTest); + const response = await request(app).get('/test?secretId=invalid').expect(400); + expect(response.body).to.deep.equal({ + success: false, + error: 'Invalid request', + errorCode: 'InvalidRequestException', + secretId: 'invalid', + }); + }); + + it('should return 500 for decryption failure', async () => { + secretsManagerMock.on(GetSecretValueCommand).rejects({name: 'DecryptionFailure', message: 'Failed to decrypt secret'}); + app.get('/test', secretsManagerTest); + const response = await request(app).get('/test?secretId=encrypted-secret').expect(500); + expect(response.body).to.deep.equal({ + success: false, + error: 'Failed to decrypt secret', + errorCode: 'DecryptionFailure', + secretId: 'encrypted-secret', + }); + }); + + it('should return 500 for unknown errors', async () => { + secretsManagerMock.on(GetSecretValueCommand).rejects({name: 'UnknownError', message: 'Something went wrong'}); + app.get('/test', secretsManagerTest); + const response = await request(app).get('/test?secretId=test-secret').expect(500); + expect(response.body).to.deep.equal({ + success: false, + error: 'Something went wrong', + errorCode: 'UnknownError', + secretId: 'test-secret', + }); + }); + }); + + describe('proxyTransformationTest', () => { + it('should return success when all validations pass', async () => { + app.get('/test', proxyTransformationTest); + const response = await request(app) + .get('/test') + .set('x-site-id', 'test-site') + .set('authorization', 'Bearer token123') + .set('sfdc_dwsid', 'session456') + .set('cookie', 'cc-at_test-site=token123; dwsid=session456') + .expect(200); + expect(response.body).to.deep.equal({ + success: true, + validations: { + siteIdPresent: true, + siteId: 'test-site', + authHeaderPresent: true, + authHeader: 'Bearer token123', + expectedCookieName: 'cc-at_test-site', + expectedCookieValue: 'token123', + authHeaderMatchesCookie: true, + sfdc_dwsidPresent: true, + sfdc_dwsidValue: 'session456', + dwsidPresent: true, + dwsidValue: 'session456', + sfdc_dwsidMatchesDwsid: true, + }, + allCookies: {'cc-at_test-site': 'token123', dwsid: 'session456'}, + headers: { + 'x-site-id': 'test-site', + authorization: 'Bearer token123', + cookie: 'cc-at_test-site=token123; dwsid=session456', + sfdc_dwsid: 'session456', + }, + }); + }); + + it('should return failure when site ID is missing', async () => { + app.get('/test', proxyTransformationTest); + const response = await request(app) + .get('/test') + .set('authorization', 'Bearer token123') + .set('sfdc_dwsid', 'session456') + .set('cookie', 'dwsid=session456') + .expect(200); + expect(response.body.success).to.equal(false); + expect(response.body.validations.siteIdPresent).to.equal(false); + }); + + it('should return failure when authorization header is missing', async () => { + app.get('/test', proxyTransformationTest); + const response = await request(app) + .get('/test') + .set('x-site-id', 'test-site') + .set('sfdc_dwsid', 'session456') + .set('cookie', 'cc-at_test-site=token123; dwsid=session456') + .expect(200); + expect(response.body.success).to.equal(false); + expect(response.body.validations.authHeaderPresent).to.equal(false); + }); + + it('should return failure when authorization header does not match cookie', async () => { + app.get('/test', proxyTransformationTest); + const response = await request(app) + .get('/test') + .set('x-site-id', 'test-site') + .set('authorization', 'Bearer wrong-token') + .set('sfdc_dwsid', 'session456') + .set('cookie', 'cc-at_test-site=token123; dwsid=session456') + .expect(200); + expect(response.body.success).to.equal(false); + expect(response.body.validations.authHeaderMatchesCookie).to.equal(false); + }); + + it('should return failure when sfdc_dwsid header is missing', async () => { + app.get('/test', proxyTransformationTest); + const response = await request(app) + .get('/test') + .set('x-site-id', 'test-site') + .set('authorization', 'Bearer token123') + .set('cookie', 'cc-at_test-site=token123; dwsid=session456') + .expect(200); + expect(response.body.success).to.equal(false); + expect(response.body.validations.sfdc_dwsidPresent).to.equal(false); + }); + + it('should return failure when dwsid cookie is missing', async () => { + app.get('/test', proxyTransformationTest); + const response = await request(app) + .get('/test') + .set('x-site-id', 'test-site') + .set('authorization', 'Bearer token123') + .set('sfdc_dwsid', 'session456') + .set('cookie', 'cc-at_test-site=token123') + .expect(200); + expect(response.body.success).to.equal(false); + expect(response.body.validations.dwsidPresent).to.equal(false); + }); + + it('should return failure when sfdc_dwsid and dwsid do not match', async () => { + app.get('/test', proxyTransformationTest); + const response = await request(app) + .get('/test') + .set('x-site-id', 'test-site') + .set('authorization', 'Bearer token123') + .set('sfdc_dwsid', 'different-session') + .set('cookie', 'cc-at_test-site=token123; dwsid=session456') + .expect(200); + expect(response.body.success).to.equal(false); + expect(response.body.validations.sfdc_dwsidMatchesDwsid).to.equal(false); + }); + + it('should handle requests with no cookies', async () => { + app.get('/test', proxyTransformationTest); + const response = await request(app) + .get('/test') + .set('x-site-id', 'test-site') + .set('authorization', 'Bearer token123') + .set('sfdc_dwsid', 'session456') + .expect(200); + expect(response.body.success).to.equal(false); + expect(response.body.allCookies).to.deep.equal({}); + }); + + it('should parse cookies with spaces correctly', async () => { + app.get('/test', proxyTransformationTest); + const response = await request(app) + .get('/test') + .set('x-site-id', 'test-site') + .set('authorization', 'Bearer token123') + .set('sfdc_dwsid', 'session456') + .set('cookie', 'cc-at_test-site=token123; dwsid=session456') + .expect(200); + expect(response.body.success).to.equal(true); + expect(response.body.allCookies).to.deep.equal({'cc-at_test-site': 'token123', dwsid: 'session456'}); + }); + }); +}); diff --git a/packages/mrt-reference-app/src/utils/reference-routes.ts b/packages/mrt-reference-app/src/utils/reference-routes.ts new file mode 100644 index 000000000..43ccdc659 --- /dev/null +++ b/packages/mrt-reference-app/src/utils/reference-routes.ts @@ -0,0 +1,522 @@ +/* + * Copyright (c) 2025, Salesforce, Inc. + * SPDX-License-Identifier: Apache-2 + * For full license text, see the license.txt file in the repo root or http://www.apache.org/licenses/LICENSE-2.0 + */ +import type {Request, Response, NextFunction} from 'express'; +import fs from 'fs/promises'; +import path from 'path'; +import {fileURLToPath} from 'url'; +import winston from 'winston'; +import crypto from 'crypto'; +import {SecretsManagerClient, GetSecretValueCommand} from '@aws-sdk/client-secrets-manager'; +import {DataStore, DataStoreNotFoundError, DataStoreServiceError, DataStoreUnavailableError} from '@salesforce/mrt-utilities'; + +const __dirname = path.dirname(fileURLToPath(import.meta.url)); + +class IntentionalError extends Error { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + constructor(diagnostics: any, ...params: any[]) { + super(...params); + this.message = JSON.stringify(diagnostics, null, 2); + this.name = 'IntentionalError'; + } +} + +const ENVS_TO_EXPOSE = [ + 'aws_execution_env', + 'aws_lambda_function_memory_size', + 'aws_lambda_function_name', + 'aws_lambda_function_version', + 'aws_lambda_log_group_name', + 'aws_lambda_log_stream_name', + 'aws_region', + 'bundle_id', + 'customer_*', + 'deploy_id', + 'deploy_target', + 'external_domain_name', + 'mobify_property_id', + 'mrt_allow_cookies', + 'mrt_env_base_path', + 'node_env', + 'node_options', + 'tz', +]; + +const BADSSL_TLS1_1_URL = 'https://tls-v1-1.badssl.com:1011/'; +const BADSSL_TLS1_2_URL = 'https://tls-v1-2.badssl.com:1012/'; + +// eslint-disable-next-line @typescript-eslint/no-explicit-any +const sortObjectKeys = (o: Record): Record => { + return Object.assign( + {}, + ...Object.keys(o) + .sort() + .map((k) => ({[k]: o[k]})), + ); +}; + +// eslint-disable-next-line @typescript-eslint/no-explicit-any +const filterAndSortObjectKeys = (o: Record, whitelist: string[]): Record => + o && + Object.keys(o) + .filter((key) => { + const keylc = key.toLowerCase().trim(); + return whitelist.some( + (pattern) => (pattern.endsWith('*') && keylc.startsWith(pattern.slice(0, -1))) || pattern === keylc, + ); + }) + .sort() + // eslint-disable-next-line @typescript-eslint/no-explicit-any + .reduce((acc: Record, key) => { + acc[key] = o[key]; + return acc; + }, {}); + +// eslint-disable-next-line @typescript-eslint/no-explicit-any +const jsonFromRequest = (req: Request, additional_info?: any): any => { + return { + args: req.query, + protocol: req.protocol, + method: req.method, + path: req.path, + query: req.query, + route_path: req.route.path, + body: req.body, + headers: sortObjectKeys(req.headers), + ip: req.ip, + env: filterAndSortObjectKeys(process.env, ENVS_TO_EXPOSE), + timestamp: new Date().toISOString(), + ...(typeof additional_info === 'object' ? {additional_info} : {}), + }; +}; + +export const echo = (req: Request, res: Response) => res.json(jsonFromRequest(req)); + +export const exception = (req: Request) => { + throw new IntentionalError(jsonFromRequest(req)); +}; + +export const tlsVersionTest = async (_: Request, res: Response) => { + const response11 = await fetch(BADSSL_TLS1_1_URL) + .then((response) => response.ok) + .catch(() => false); + const response12 = await fetch(BADSSL_TLS1_2_URL) + .then((response) => response.ok) + .catch(() => false); + res.header('Content-Type', 'application/json'); + res.send(JSON.stringify({'tls1.1': response11, 'tls1.2': response12}, null, 4)); +}; + +export const cacheTest = async (req: Request, res: Response) => { + let duration = String(req.params.duration || '60'); + if (isNaN(parseInt(duration))) { + duration = '60'; + } + res.set('Cache-Control', `s-maxage=${duration}`); + res.json(jsonFromRequest(req)); +}; + +export const cookieTest = async (req: Request, res: Response) => { + if (Object.hasOwn(req.query, 'name')) { + const name = req.query.name as string; + const value = req.query.value as string; + res.cookie(name, value); + } + res.set('Cache-Control', 'private, max-age=60'); + res.json(jsonFromRequest(req)); +}; + +export const responseHeadersTest = async (req: Request, res: Response) => { + for (const [key, value] of Object.entries(req.query)) { + res.set(key, value as string | string[] | undefined); + } + res.json(jsonFromRequest(req)); +}; + +export const multiValueHeadersTest = async (req: Request, res: Response) => { + res.set('X-Multi-Value-Header', ['value1', 'value2', 'value3']); + res.json(jsonFromRequest(req)); +}; + +export const setStatusTest = async (req: Request, res: Response) => { + const status = req.query.status ? parseInt(req.query.status as string) : 200; + res.status(status); + res.set('X-Status-Code', status.toString()); + res.json(jsonFromRequest(req)); +}; + +export const memoryTest = async (req: Request, res: Response) => { + const memory_before = process.memoryUsage(); + const test_count = req?.query?.count ? parseInt(req.query.count as string) : 1; + const test_size = req?.query?.size ? parseInt(req.query.size as string) : 1024; + const force_gc = + global?.gc && + req?.query && + (parseBoolean(req.query.forcegc as string) || parseBoolean(req.query.gc as string)); + + const malloc_time_start = Date.now(); + allocateMemory(test_count, test_size); + const malloc_time_ms = Date.now() - malloc_time_start; + + const gc_time_start = Date.now(); + if (force_gc && global.gc) { + global.gc(); + } + const gc_time_ms = Date.now() - gc_time_start; + + const memory_after = process.memoryUsage(); + const memory_delta = calculateNumericDeltas(memory_after, memory_before); + const factor = 10; + const test_total_alloc_mb = Math.round(((test_count * test_size) / 1024 / 1024) * factor) / factor; + const additional_info = { + memory_end: memory_after, + memory_delta, + malloc_time: malloc_time_ms, + gc_time: gc_time_ms, + force_gc, + test_count, + test_size, + test_total_alloc_mb, + }; + res.json(jsonFromRequest(req, additional_info)); +}; + +const allocateMemory = (test_count: number, test_size: number): number => { + const buffer: Buffer[] = []; + for (let index = 0; index < test_count; index++) { + buffer.push(Buffer.alloc(test_size, 0, 'ascii')); + } + return buffer.length; +}; + +// eslint-disable-next-line @typescript-eslint/no-explicit-any +const calculateNumericDeltas = (obj1: Record, obj2: Record): Record => { + const delta: Record = {}; + for (const key in obj1) { + if (Object.prototype.hasOwnProperty.call(obj1, key) && Object.prototype.hasOwnProperty.call(obj2, key)) { + if (typeof obj1[key] === 'number' && typeof obj2[key] === 'number') { + delta[key] = obj1[key] - obj2[key]; + } + } + } + return delta; +}; + +const parseBoolean = (string_value: string) => { + if ( + string_value === null || + string_value === undefined || + typeof string_value !== 'string' || + string_value.trim() === '' + ) { + return false; + } + const lowerCaseValue = string_value.toLowerCase(); + return ( + lowerCaseValue === 'true' || + lowerCaseValue === '1' || + lowerCaseValue === 'on' || + lowerCaseValue === 'enable' || + lowerCaseValue === 'enabled' || + lowerCaseValue === 'yes' + ); +}; + +export const headerTest = async (req: Request, res: Response) => { + res.json({headers: sortObjectKeys(req.headers)}); +}; + +export const loggingMiddleware = (req: Request, res: Response, next: NextFunction) => { + console.log(`Request: ${req.method} ${req.originalUrl}`); + console.log(`Request headers: ${JSON.stringify(req.headers, null, 2)}`); + const values = { + string: 'string value', + number: 1234567890, + boolean: true, + null: null, + undefined, + NaN, + object: {foo: 'bar'}, + array: [1, 2, 3], + date: new Date(), + }; + for (const value of Object.values(values)) { + console.log(value); + } + res.on('finish', () => { + const statusCode = res.headersSent ? String(res.statusCode) : String(-1); + console.log(`Response status: ${statusCode}`); + if (res.headersSent) { + const headers = JSON.stringify(res.getHeaders(), null, 2); + console.log(`Response headers: ${headers}`); + } + }); + return next(); +}; + +export const envBasePathMiddleware = (req: Request, res: Response, next: NextFunction) => { + const basePath = process.env.MRT_ENV_BASE_PATH; + console.debug(`Base path: Base path: ${basePath}`); + console.debug(`Request path: Request path: ${req.url}`); + if (basePath && (req.path.startsWith(`${basePath}/`) || req.path === basePath)) { + req.url = req.url.slice(basePath.length) || '/'; + console.debug(`Base path: Rewrote ${basePath} -> Original url: ${req.originalUrl} -> New url: ${req.url}`); + } + return next(); +}; + +export const streamingTest = async (req: Request, res: Response) => { + res.setHeader('Content-Type', 'text/plain'); + const delayMs = 20; + for (let i = 0; i < 100; i++) { + res.write(`Here is a streaming chunk${i}\n`); + if (i < 99) { + await new Promise((resolve) => setTimeout(resolve, delayMs)); + } + } + res.end(); +}; + +export const ssrBundleFileTest = async (req: Request, res: Response) => { + try { + const fileName = `${__dirname}/static/example.json`; + const data = await fs.readFile(fileName, {encoding: 'utf8'}); + const jsonData = JSON.parse(data); + res.json(jsonData); + } catch (error) { + res.status(500).json({error}); + } +}; + +const generateRandomText = (numChars: number): string => { + const alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'; + let result = ''; + for (let i = 0; i < numChars; i++) { + result += alphabet[Math.floor(Math.random() * alphabet.length)]; + } + return result; +}; + +export const streamingResponseLarge = (req: Request, res: Response) => { + if (process.env.MRT_BUNDLE_TYPE !== 'stream') { + res.status(200); + res.json({streaming: false}); + return; + } + res.status(200); + res.setHeader('Content-Type', 'text/plain'); + res.write('This is the first piece of streamed data.\n'); + const startTime = Date.now(); + for (let i = 0; i < 20; i++) { + setTimeout(() => { + const item = `${Date.now() - startTime}ms This is the ${i + 1} piece of streamed data after a delay ${generateRandomText(1024)}.\n`; + res.write(item); + // @ts-expect-error - flush added by streaming adapter + res.flush(); + if (i === 19) { + res.end(); + } + }, i * 500); + } +}; + +export const winstonLogging = (req: Request, res: Response) => { + const logger = winston.createLogger({ + level: 'info', + format: winston.format.json(), + defaultMeta: {service: 'user-service'}, + }); + logger.add(new winston.transports.Console({format: winston.format.json()})); + logger.log('info', 'json log using winston that triggers KeyError'); + logger.log({ + metadata: 'defined by cust', + level: 'info', + log: 'json log using winston', + telemetryEvent: 'telemetryEvent field defined by customer', + } as unknown as winston.LogEntry); + console.log({'winston-test': 'this is a json log using console.log'}); + console.warn({'winston-test': 'this is a json log using console.warn'}); + console.debug({'winston-test': 'this is a json log using console.debug'}); + console.info({'winston-test': 'this is a json log using console.info'}); + console.error({'winston-test': 'this is a json log using console.error'}); + res.json({message: 'Winston logging completed'}); +}; + +export const delayedLogging = async (req: Request, res: Response) => { + const delay = req.query.delay ? parseInt(req.query.delay as string) : 10000; + const startTime = Date.now(); + console.log({duration: Date.now() - startTime, message: `Pre-delayed logging ${delay}ms`}); + await new Promise((resolve) => setTimeout(resolve, delay)); + console.log({duration: Date.now() - startTime, message: `Delayed logging ${delay}ms`}); + res.json({duration: Date.now() - startTime, message: `Delayed logging ${delay}ms`}); +}; + +export const massLogging = (req: Request, res: Response) => { + const count = req.query.count ? parseInt(req.query.count as string) : 10000; + const textEncoder = new TextEncoder(); + const startTime = Date.now(); + let size = 0; + for (let i = 0; i < count; i++) { + const message = `Mass logging ${i} of ${count}`; + size += textEncoder.encode(message).length; + console.log(message); + } + const sizeInKB = (size / 1024).toFixed(2); + res.json({duration: Date.now() - startTime, message: `Mass logging ${count} logs`, size: `${sizeInKB}KB`}); +}; + +export const largeLogging = (req: Request, res: Response) => { + const count = req.query.count ? parseInt(req.query.count as string) : 10000; + const textEncoder = new TextEncoder(); + const startTime = Date.now(); + let size = 0; + let message = ''; + for (let i = 0; i < count; i++) { + const msg = `Mass logging ${i} of ${count}`; + size += textEncoder.encode(msg).length; + message += msg; + } + console.log(message); + const sizeInKB = (size / 1024).toFixed(2); + res.json({duration: Date.now() - startTime, message: 'Large logging', size: `${sizeInKB}KB`}); +}; + +export const traceLogging = (req: Request, res: Response) => { + const start = [new Date().getTime(), Number(process.hrtime.bigint())]; + const trace = { + name: 'mrt.ref.trace', + traceId: crypto.randomBytes(16).toString('hex'), + id: crypto.randomBytes(8).toString('hex'), + forwardTrace: true, + start_time: start, + end_time: [new Date().getTime(), Number(process.hrtime.bigint())], + }; + console.log(JSON.stringify(trace)); + res.json(trace); +}; + +export const dataStoreTest = async (req: Request, res: Response) => { + const store = DataStore.getDataStore(); + if (!store.isDataStoreAvailable()) { + return res.json({dataStore: false}); + } + let result; + try { + result = await store.getEntry(String(req.params.key)); + } catch (err) { + if (err instanceof DataStoreUnavailableError) { + return res.status(400).json({error: err.message}); + } else if (err instanceof DataStoreNotFoundError) { + return res.status(404).json({error: err.message}); + } else if (err instanceof DataStoreServiceError) { + return res.status(500).json({error: err.message}); + } + throw err; + } + return res.json(result); +}; + +export const secretsManagerTest = async (req: Request, res: Response) => { + const secretId = req.query.secretId as string; + if (!secretId) { + return res.status(400).json({error: 'Missing required query parameter: secretId'}); + } + const client = new SecretsManagerClient({region: process.env.AWS_REGION}); + const command = new GetSecretValueCommand({SecretId: secretId}); + try { + const response = await client.send(command); + return res.status(200).json({ + success: true, + secretId, + arn: response.ARN, + versionId: response.VersionId, + hasSecretString: !!response.SecretString, + hasSecretBinary: !!response.SecretBinary, + }); + } catch (error: unknown) { + const err = error as {name?: string; code?: string; message?: string}; + const errorCode = err.name || err.code; + let statusCode = 500; + const errorMessage = err.message || 'Unknown error'; + switch (errorCode) { + case 'ResourceNotFoundException': + statusCode = 404; + break; + case 'InvalidRequestException': + case 'InvalidParameterException': + statusCode = 400; + break; + case 'DecryptionFailure': + case 'InternalServiceError': + statusCode = 500; + break; + case 'AccessDeniedException': + statusCode = 403; + break; + default: + statusCode = 500; + } + return res.status(statusCode).json({success: false, error: errorMessage, errorCode, secretId}); + } +}; + +export const proxyTransformationTest = (req: Request, res: Response) => { + const siteId = req.headers['x-site-id'] as string; + const authHeader = req.headers.authorization as string; + const cookies = req.headers.cookie as string; + + const cookieMap: Record = {}; + if (cookies) { + cookies.split(';').forEach((cookie) => { + const [key, value] = cookie.trim().split('='); + if (key && value) { + cookieMap[key] = value; + } + }); + } + + const expectedCookieName = siteId ? `cc-at_${siteId}` : null; + const expectedCookieValue = expectedCookieName ? cookieMap[expectedCookieName] : null; + const sfdcDwsidFromHeader = req.headers.sfdc_dwsid as string; + + const validations = { + siteIdPresent: !!siteId, + siteId, + authHeaderPresent: !!authHeader, + authHeader, + expectedCookieName, + expectedCookieValue, + authHeaderMatchesCookie: false, + sfdc_dwsidPresent: !!sfdcDwsidFromHeader, + sfdc_dwsidValue: sfdcDwsidFromHeader, + dwsidPresent: !!cookieMap.dwsid, + dwsidValue: cookieMap.dwsid, + sfdc_dwsidMatchesDwsid: sfdcDwsidFromHeader === cookieMap.dwsid, + }; + + if (authHeader && expectedCookieValue) { + const expectedAuthHeader = `Bearer ${expectedCookieValue}`; + validations.authHeaderMatchesCookie = authHeader === expectedAuthHeader; + } + + const allValidationsPassed = + validations.siteIdPresent && + validations.authHeaderPresent && + validations.authHeaderMatchesCookie && + validations.sfdc_dwsidPresent && + validations.sfdc_dwsidMatchesDwsid; + + return res.json({ + success: allValidationsPassed, + validations, + allCookies: cookieMap, + headers: { + 'x-site-id': req.headers['x-site-id'], + authorization: req.headers.authorization, + cookie: req.headers.cookie, + sfdc_dwsid: req.headers.sfdc_dwsid, + }, + }); +}; diff --git a/packages/mrt-reference-app/test/tsconfig.json b/packages/mrt-reference-app/test/tsconfig.json new file mode 100644 index 000000000..f548933f4 --- /dev/null +++ b/packages/mrt-reference-app/test/tsconfig.json @@ -0,0 +1,13 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "noEmit": true, + "types": ["node", "mocha", "chai"], + "paths": { + "@salesforce/mrt-utilities": ["../../mrt-utilities/src/index.ts"], + "@salesforce/mrt-utilities/streaming": ["../../mrt-utilities/src/streaming/index.ts"], + "@salesforce/mrt-utilities/data-store": ["../../mrt-utilities/src/data-store/index.ts"] + } + }, + "include": ["./**/*", "../src/**/*"] +} diff --git a/packages/mrt-reference-app/tsconfig.json b/packages/mrt-reference-app/tsconfig.json new file mode 100644 index 000000000..7240ee46f --- /dev/null +++ b/packages/mrt-reference-app/tsconfig.json @@ -0,0 +1,16 @@ +{ + "extends": "@salesforce/dev-config/tsconfig-strict-esm", + "compilerOptions": { + "skipLibCheck": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "module": "ESNext", + "verbatimModuleSyntax": false, + "moduleResolution": "bundler", + "allowImportingTsExtensions": false, + "resolveJsonModule": true, + "allowJs": true, + "noEmit": true + }, + "include": ["src/**/*"] +} diff --git a/packages/mrt-welcome-app/.c8rc.json b/packages/mrt-welcome-app/.c8rc.json new file mode 100644 index 000000000..a6caf3554 --- /dev/null +++ b/packages/mrt-welcome-app/.c8rc.json @@ -0,0 +1,11 @@ +{ + "all": true, + "src": ["src"], + "exclude": [ + "src/**/*.test.ts", + "src/dev/**", + "**/*.d.ts" + ], + "reporter": ["text", "text-summary", "html", "lcov"], + "report-dir": "coverage" +} diff --git a/packages/mrt-welcome-app/.gitignore b/packages/mrt-welcome-app/.gitignore new file mode 100644 index 000000000..c19bb02d7 --- /dev/null +++ b/packages/mrt-welcome-app/.gitignore @@ -0,0 +1,4 @@ +node_modules/ +dist/ +coverage/ +*.tsbuildinfo diff --git a/packages/mrt-welcome-app/.mocharc.json b/packages/mrt-welcome-app/.mocharc.json new file mode 100644 index 000000000..39a989444 --- /dev/null +++ b/packages/mrt-welcome-app/.mocharc.json @@ -0,0 +1,6 @@ +{ + "node-option": ["import=tsx", "conditions=development"], + "timeout": 30000, + "recursive": true, + "extension": ["ts"] +} diff --git a/packages/mrt-welcome-app/eslint.config.mjs b/packages/mrt-welcome-app/eslint.config.mjs new file mode 100644 index 000000000..29152f7c7 --- /dev/null +++ b/packages/mrt-welcome-app/eslint.config.mjs @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2025, Salesforce, Inc. + * SPDX-License-Identifier: Apache-2 + * For full license text, see the license.txt file in the repo root or http://www.apache.org/licenses/LICENSE-2.0 + */ +import {includeIgnoreFile} from '@eslint/compat'; +import headerPlugin from 'eslint-plugin-header'; +import tseslint from 'typescript-eslint'; +import path from 'node:path'; +import {fileURLToPath} from 'node:url'; + +import {copyrightHeader, sharedRules, chaiTestRules, prettierPlugin} from '../../eslint.config.mjs'; + +const gitignorePath = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '.gitignore'); +headerPlugin.rules.header.meta.schema = false; + +export default [ + {ignores: ['**/node_modules/**', 'build/**', 'coverage/**']}, + includeIgnoreFile(gitignorePath), + ...tseslint.configs.recommended, + prettierPlugin, + { + files: ['**/*.ts'], + plugins: { + header: headerPlugin, + }, + languageOptions: { + parserOptions: { + project: true, + tsconfigRootDir: import.meta.dirname, + }, + }, + rules: { + 'header/header': ['error', 'block', copyrightHeader], + ...sharedRules, + }, + }, + { + files: ['src/**/*.test.ts'], + rules: { + ...chaiTestRules, + '@typescript-eslint/no-explicit-any': 'off', + }, + }, +]; diff --git a/packages/mrt-welcome-app/package.json b/packages/mrt-welcome-app/package.json new file mode 100644 index 000000000..2dff37f0a --- /dev/null +++ b/packages/mrt-welcome-app/package.json @@ -0,0 +1,69 @@ +{ + "name": "@salesforce/mrt-welcome-app", + "version": "0.0.1", + "description": "Welcome application deployed to new MRT environments", + "type": "module", + "author": "Salesforce", + "license": "Apache-2.0", + "repository": "SalesforceCommerceCloud/b2c-developer-tooling", + "private": true, + "scripts": { + "dev:tsx": "tsx ./src/dev/tsx-local.ts", + "dev:node": "pnpm build && node ./src/dev/node-local.js", + "build": "node scripts/build.mjs", + "clean": "shx rm -rf build", + "lint": "eslint", + "lint:agent": "eslint --quiet", + "typecheck:agent": "tsc --noEmit --pretty false", + "format": "prettier --write .", + "format:check": "prettier --check .", + "pretest": "tsc --noEmit -p test", + "test": "c8 mocha --forbid-only \"src/**/*.test.ts\"", + "test:ci": "c8 mocha --forbid-only --reporter json --reporter-option output=test-results.json \"src/**/*.test.ts\"", + "test:agent": "mocha --forbid-only --reporter min \"src/**/*.test.ts\"", + "test:watch": "mocha --watch \"src/**/*.test.ts\"", + "coverage": "c8 report", + "push": "pnpm build && b2c mrt bundle deploy", + "deploy": "pnpm build && b2c mrt bundle deploy", + "tail-logs": "b2c mrt tail-logs", + "save-bundle": "pnpm build && b2c mrt bundle save", + "save-credentials": "b2c mrt save-credentials" + }, + "dependencies": { + "@h4ad/serverless-adapter": "4.4.0", + "@salesforce/mrt-utilities": "workspace:*", + "ejs": "3.1.10", + "express": "5.1.0" + }, + "devDependencies": { + "@salesforce/b2c-cli": "workspace:*", + "@salesforce/dev-config": "catalog:", + "@serverless/event-mocks": "1.1.1", + "@types/aws-lambda": "8.10.160", + "@types/chai": "catalog:", + "@types/ejs": "3.1.5", + "@types/express": "5.0.4", + "@types/mocha": "catalog:", + "@types/node": "catalog:", + "@types/sinon": "catalog:", + "@types/supertest": "6.0.3", + "c8": "catalog:", + "chai": "catalog:", + "esbuild": "0.25.0", + "eslint": "catalog:", + "eslint-config-prettier": "catalog:", + "eslint-plugin-header": "catalog:", + "eslint-plugin-prettier": "catalog:", + "mocha": "catalog:", + "prettier": "catalog:", + "shx": "catalog:", + "sinon": "catalog:", + "supertest": "7.1.4", + "tsx": "catalog:", + "typescript": "catalog:", + "typescript-eslint": "catalog:" + }, + "engines": { + "node": ">=22.16.0" + } +} diff --git a/packages/mrt-welcome-app/scripts/build.mjs b/packages/mrt-welcome-app/scripts/build.mjs new file mode 100644 index 000000000..36fb87eac --- /dev/null +++ b/packages/mrt-welcome-app/scripts/build.mjs @@ -0,0 +1,93 @@ +/* + * Copyright (c) 2025, Salesforce, Inc. + * SPDX-License-Identifier: Apache-2 + * For full license text, see the license.txt file in the repo root or http://www.apache.org/licenses/LICENSE-2.0 + */ +import esbuild from 'esbuild'; +import fs from 'node:fs/promises'; +import path from 'node:path'; +import {fileURLToPath} from 'node:url'; + +const __dirname = path.dirname(fileURLToPath(import.meta.url)); +const pkgRoot = path.resolve(__dirname, '..'); +const buildDir = path.resolve(pkgRoot, 'build'); + +const enableSourceMaps = !process.env.DISABLE_SOURCE_MAPS; +const format = process.env.MRT_EXPORT_TYPE === 'esm' ? 'esm' : 'cjs'; + +const noExternal = [/^@h4ad\/.*/, 'express', '@salesforce/mrt-utilities', 'ejs']; + +const externalFilter = (id) => { + for (const pattern of noExternal) { + if (typeof pattern === 'string' && id === pattern) return false; + if (pattern instanceof RegExp && pattern.test(id)) return false; + } + return true; +}; + +const bundlePlugin = { + name: 'bundle-deps', + setup(build) { + build.onResolve({filter: /^[^./]/}, (args) => { + if (externalFilter(args.path)) { + return {external: true}; + } + return null; + }); + }, +}; + +async function copyDir(src, dest) { + await fs.mkdir(dest, {recursive: true}); + const entries = await fs.readdir(src, {withFileTypes: true}); + for (const entry of entries) { + const srcPath = path.join(src, entry.name); + const destPath = path.join(dest, entry.name); + if (entry.isDirectory()) { + await copyDir(srcPath, destPath); + } else { + await fs.copyFile(srcPath, destPath); + } + } +} + +async function build() { + await fs.rm(buildDir, {recursive: true, force: true}); + await fs.mkdir(buildDir, {recursive: true}); + + await esbuild.build({ + bundle: true, + platform: 'node', + target: 'node22', + format, + minify: true, + sourcemap: enableSourceMaps ? 'inline' : false, + outdir: buildDir, + define: { + 'process.env.NODE_ENV': '"production"', + }, + plugins: [bundlePlugin], + splitting: false, + entryPoints: {ssr: path.join(pkgRoot, 'src', 'ssr.ts')}, + }); + + // Copy views + const viewsSrc = path.join(pkgRoot, 'src', 'views'); + const viewsDest = path.join(buildDir, 'views'); + await copyDir(viewsSrc, viewsDest); + + // Create empty loader.js required by MRT + await fs.writeFile(path.join(buildDir, 'loader.js'), '// This file is intentionally empty\n'); + + // Write package.json without "type" field + const pkg = JSON.parse(await fs.readFile(path.join(pkgRoot, 'package.json'), 'utf8')); + delete pkg.type; + await fs.writeFile(path.join(buildDir, 'package.json'), JSON.stringify(pkg, null, 2) + '\n'); + + console.log('Build complete → build/ssr.js'); +} + +build().catch((err) => { + console.error(err); + process.exit(1); +}); diff --git a/packages/mrt-welcome-app/src/app/server.test.ts b/packages/mrt-welcome-app/src/app/server.test.ts new file mode 100644 index 000000000..0998fbb6b --- /dev/null +++ b/packages/mrt-welcome-app/src/app/server.test.ts @@ -0,0 +1,81 @@ +/* + * Copyright (c) 2025, Salesforce, Inc. + * SPDX-License-Identifier: Apache-2 + * For full license text, see the license.txt file in the repo root or http://www.apache.org/licenses/LICENSE-2.0 + */ +import {expect} from 'chai'; +import request from 'supertest'; +import {createApp} from './server.js'; + +describe('server', () => { + describe('createApp', () => { + it('should create an Express app', () => { + const app = createApp(); + expect(app).to.not.be.undefined; + expect(typeof app.get).to.equal('function'); + expect(typeof app.use).to.equal('function'); + expect(typeof app.all).to.equal('function'); + }); + + it('should create app without MRT middleware by default', () => { + const app = createApp(); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const routes = (app as any)._router?.stack || []; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const hasMRTMiddleware = routes.some( + // eslint-disable-next-line @typescript-eslint/no-explicit-any + (route: any) => route?.handle?.name?.includes('mrt') || route?.handle?.name?.includes('MRT'), + ); + expect(hasMRTMiddleware).to.equal(false); + }); + + it('should disable x-powered-by header', async () => { + const app = createApp(); + const response = await request(app).get('/test'); + expect(response.headers['x-powered-by']).to.be.undefined; + }); + + it('should set server header to "mrt welcome app"', async () => { + const app = createApp(); + const response = await request(app).get('/'); + expect(response.headers.server).to.equal('mrt welcome app'); + }); + + it('should set Cache-Control to no-cache for all responses', async () => { + const app = createApp(); + const response = await request(app).get('/test'); + expect(response.headers['cache-control']).to.equal('no-cache'); + }); + + it('should handle wildcard routes with /{*splat}', async () => { + const app = createApp(); + const response = await request(app).get('/any/random/path'); + expect(response.status).to.equal(200); + expect(response.headers['content-type']).to.include('text/html'); + expect(response.text).to.include('Welcome to your Environment'); + }); + + it('should disable x-powered-by header in response', async () => { + const app = createApp(); + const response = await request(app).get('/test'); + expect(response.headers).to.not.have.property('x-powered-by'); + }); + + it('should use build views path when not in local environment', () => { + const originalEnv = process.env.AWS_LAMBDA_FUNCTION_NAME; + process.env.AWS_LAMBDA_FUNCTION_NAME = 'test-function'; + + const app = createApp(); + const viewsPath = app.get('views'); + + expect(viewsPath).to.include('build'); + expect(viewsPath).to.include('views'); + + if (originalEnv !== undefined) { + process.env.AWS_LAMBDA_FUNCTION_NAME = originalEnv; + } else { + delete process.env.AWS_LAMBDA_FUNCTION_NAME; + } + }); + }); +}); diff --git a/packages/mrt-welcome-app/src/app/server.ts b/packages/mrt-welcome-app/src/app/server.ts new file mode 100644 index 000000000..b7495ce85 --- /dev/null +++ b/packages/mrt-welcome-app/src/app/server.ts @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2025, Salesforce, Inc. + * SPDX-License-Identifier: Apache-2 + * For full license text, see the license.txt file in the repo root or http://www.apache.org/licenses/LICENSE-2.0 + */ +import express, {type Express, type Request, type Response, type NextFunction, type RequestHandler} from 'express'; +import path from 'path'; +import {fileURLToPath} from 'url'; +import ejs from 'ejs'; +import {isLocal, createMRTCommonMiddleware, createMRTCleanUpMiddleware} from '@salesforce/mrt-utilities'; +import {echo} from '../utils/welcome-routes.js'; + +const extraRemappedHeadersMiddleware = (req: Request, res: Response, next: NextFunction) => { + res.set('server', 'mrt welcome app'); + next(); +}; + +export const createApp = (): Express => { + const app = express(); + const __dirname = path.dirname(fileURLToPath(import.meta.url)); + app.disable('x-powered-by'); + app.use(extraRemappedHeadersMiddleware); + app.use(createMRTCommonMiddleware() as RequestHandler); + app.use(createMRTCleanUpMiddleware() as RequestHandler); + + app.engine('html', ejs.renderFile); + const viewsPath = isLocal() + ? path.resolve(__dirname, __dirname.includes(`${path.sep}src${path.sep}`) ? '../views' : 'views') + : path.resolve(process.cwd(), 'build', 'views'); + app.set('views', viewsPath); + app.set('view engine', 'html'); + + app.use((req, res, next) => { + res.set('Cache-Control', 'no-cache'); + return next(); + }); + + app.all('/{*splat}', echo); + return app; +}; diff --git a/packages/mrt-welcome-app/src/dev/tsx-local.ts b/packages/mrt-welcome-app/src/dev/tsx-local.ts new file mode 100644 index 000000000..b9200623f --- /dev/null +++ b/packages/mrt-welcome-app/src/dev/tsx-local.ts @@ -0,0 +1,16 @@ +/* + * Copyright (c) 2025, Salesforce, Inc. + * SPDX-License-Identifier: Apache-2 + * For full license text, see the license.txt file in the repo root or http://www.apache.org/licenses/LICENSE-2.0 + */ +import {createApp} from '../app/server.js'; + +const app = createApp(); + +const server = app.listen(2401, 'localhost', () => { + console.log('Server is running on port localhost:2401'); +}); + +['SIGTERM', 'SIGINT'].forEach((signal) => { + process.once(signal, () => server?.close(console.error)); +}); diff --git a/packages/mrt-welcome-app/src/ssr.test.ts b/packages/mrt-welcome-app/src/ssr.test.ts new file mode 100644 index 000000000..0606a2b33 --- /dev/null +++ b/packages/mrt-welcome-app/src/ssr.test.ts @@ -0,0 +1,188 @@ +/* + * Copyright (c) 2025, Salesforce, Inc. + * SPDX-License-Identifier: Apache-2 + * For full license text, see the license.txt file in the repo root or http://www.apache.org/licenses/LICENSE-2.0 + */ +import request from 'supertest'; +import {expect} from 'chai'; +import sinon from 'sinon'; +import type {Express} from 'express'; +import {processLambdaResponse, get} from './ssr.js'; +import type {APIGatewayProxyResult, APIGatewayProxyEvent, Context} from 'aws-lambda'; +import createEventModule from '@serverless/event-mocks'; +// eslint-disable-next-line @typescript-eslint/no-explicit-any +const createEvent = ((createEventModule as any).default ?? createEventModule) as typeof createEventModule; + +describe('server', () => { + let originalEnv: NodeJS.ProcessEnv; + let app: Express; + + beforeEach(async () => { + originalEnv = process.env; + process.env = Object.assign({}, process.env, { + MRT_ALLOW_COOKIES: 'true', + LISTEN_ADDRESS: '', + BUNDLE_ID: '1', + DEPLOY_TARGET: 'test', + EXTERNAL_DOMAIN_NAME: 'test.com', + MOBIFY_PROPERTY_ID: 'test', + AWS_LAMBDA_FUNCTION_NAME: 'pretend-to-be-remote', + AWS_REGION: 'us-east-2', + }); + app = (await import('./ssr.js')).app; + }); + + afterEach(() => { + process.env = originalEnv; + sinon.restore(); + }); + + it('Path / should render correctly', async () => { + const response = await request(app).get('/').expect(200).expect('Content-Type', /text\/html/); + expect(response.text).to.include('Welcome to your Environment'); + }); + + it('Check incoming headers are lowercase', async () => { + const response = await request(app) + .get('/headers') + .set('Random-Header', 'random') + .set('Another-Mixed-Case-Header', 'value') + .set('UPPERCASE-HEADER', 'test'); + for (const header in response.body.headers) { + expect(header).to.equal(header.toLowerCase()); + } + }); +}); + +const base64Body = 'SGVsbG8gV29ybGQ='; + +describe('processLambdaResponse', () => { + it('should add date header to response', () => { + const response = {statusCode: 200, headers: {}, body: ''}; + const event = {multiValueHeaders: {}}; + const result = processLambdaResponse(response as APIGatewayProxyResult, event as APIGatewayProxyEvent); + expect(result.headers.date).to.not.be.undefined; + expect(result.headers.date).to.match(/^\w+, \d+ \w+ \d+ \d+:\d+:\d+ GMT$/); + }); + + it('should preserve original headers', () => { + const response = { + statusCode: 200, + multiValueHeaders: {'content-type': ['application/json'], 'x-custom': ['value']}, + body: base64Body, + }; + const event = {headers: {}}; + const result = processLambdaResponse(response as APIGatewayProxyResult, event as APIGatewayProxyEvent); + expect(result.headers['content-type']).to.equal('application/json'); + expect(result.headers['x-custom']).to.equal('value'); + }); + + it('should remove multiValueHeaders from response', () => { + const response = { + statusCode: 200, + multiValueHeaders: {'set-cookie': ['cookie1=value1', 'cookie2=value2']}, + body: base64Body, + }; + const event = {headers: {}}; + const result = processLambdaResponse(response as APIGatewayProxyResult, event as APIGatewayProxyEvent); + expect(result.multiValueHeaders).to.be.undefined; + }); + + it('should not add correlation ID when not present in event', () => { + const response = {statusCode: 200, headers: {}, body: base64Body}; + const event = {headers: {}}; + const result = processLambdaResponse(response as APIGatewayProxyResult, event as APIGatewayProxyEvent); + expect(result.headers['x-correlation-id']).to.be.undefined; + }); + + it('should handle event with no headers', () => { + const response = {statusCode: 200, headers: {}, body: base64Body}; + const event = {}; + const result = processLambdaResponse(response as APIGatewayProxyResult, event as APIGatewayProxyEvent); + expect(result.statusCode).to.equal(200); + expect(result.headers.date).to.not.be.undefined; + }); + + it('should flatten multi-value headers', () => { + const response = { + statusCode: 200, + body: base64Body, + multiValueHeaders: { + 'set-cookie': ['cookie1=value1', 'cookie2=value2'], + 'x-custom': ['header1', 'header2'], + }, + }; + const event = {headers: {}}; + const result = processLambdaResponse(response as APIGatewayProxyResult, event as APIGatewayProxyEvent); + expect(result.headers['set-cookie']).to.equal('cookie1=value1,cookie2=value2'); + expect(result.headers['x-custom']).to.equal('header1,header2'); + }); + + it('should handle status code correctly', () => { + const response = {statusCode: 404, headers: {}, body: base64Body}; + const event = {headers: {}}; + const result = processLambdaResponse(response as APIGatewayProxyResult, event as APIGatewayProxyEvent); + expect(result.statusCode).to.equal(404); + }); + + it('should preserve response body when present', () => { + const response = {statusCode: 200, multiValueHeaders: {}, body: base64Body}; + const event = {headers: {}}; + const result = processLambdaResponse(response as APIGatewayProxyResult, event as APIGatewayProxyEvent); + expect(result.body).to.equal(base64Body); + }); + + it('should add date header with correct format', () => { + const response = {statusCode: 200, multiValueHeaders: {}, body: base64Body}; + const event = {headers: {}}; + const result = processLambdaResponse(response as APIGatewayProxyResult, event as APIGatewayProxyEvent); + expect(result.headers.date).to.not.be.undefined; + expect(result.headers.date).to.match(/^\w+, \d+ \w+ \d+ \d+:\d+:\d+ GMT$/); + }); +}); + +describe('createLambdaHandler', () => { + it('should handle Lambda event and return processed response', async () => { + const event = createEvent('aws:apiGateway', { + path: '/', + httpMethod: 'GET', + headers: {}, + body: null, + isBase64Encoded: false, + multiValueHeaders: {}, + pathParameters: null, + queryStringParameters: null, + multiValueQueryStringParameters: null, + stageVariables: null, + // @ts-expect-error - requestContext is not required + requestContext: {}, + }); + + const context = { + callbackWaitsForEmptyEventLoop: true, + functionName: 'test-function', + functionVersion: '$LATEST', + invokedFunctionArn: 'arn:aws:lambda:us-east-1:123456789012:function:test-function', + memoryLimitInMB: '128', + awsRequestId: 'test-request-id', + logGroupName: '/aws/lambda/test-function', + logStreamName: '2024/01/01/[$LATEST]test', + getRemainingTimeInMillis: () => 30000, + done: () => {}, + fail: () => {}, + succeed: () => {}, + } as Context; + + const response = await new Promise((resolve, reject) => { + get(event, context, (err, res) => { + if (err) reject(err); + else resolve(res as APIGatewayProxyResult); + }); + }); + + expect(response).to.not.be.undefined; + expect(response?.statusCode).to.equal(200); + expect(response?.headers).to.not.be.undefined; + expect(response?.headers?.date).to.not.be.undefined; + }); +}); diff --git a/packages/mrt-welcome-app/src/ssr.ts b/packages/mrt-welcome-app/src/ssr.ts new file mode 100644 index 000000000..4ddf5c100 --- /dev/null +++ b/packages/mrt-welcome-app/src/ssr.ts @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2025, Salesforce, Inc. + * SPDX-License-Identifier: Apache-2 + * For full license text, see the license.txt file in the repo root or http://www.apache.org/licenses/LICENSE-2.0 + */ +import type {Express} from 'express'; +import {createApp} from './app/server.js'; +import {ServerlessAdapter, getFlattenedHeadersMap} from '@h4ad/serverless-adapter'; +import {DefaultHandler} from '@h4ad/serverless-adapter/lib/handlers/default'; +import {CallbackResolver} from '@h4ad/serverless-adapter/lib/resolvers/callback'; +import {ApiGatewayV1Adapter} from '@h4ad/serverless-adapter/lib/adapters/aws'; +import {ExpressFramework} from '@h4ad/serverless-adapter/lib/frameworks/express'; +import type {APIGatewayProxyEvent, Context, APIGatewayProxyResult, Callback} from 'aws-lambda'; + +// eslint-disable-next-line @typescript-eslint/no-explicit-any +type HandlerFunction = (event: APIGatewayProxyEvent, context: Context, callback: Callback) => any; + +// eslint-disable-next-line @typescript-eslint/no-explicit-any +export const processLambdaResponse = (response: APIGatewayProxyResult, _event: APIGatewayProxyEvent): any => { + if (!response) return response; + + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const joinedHeaders = getFlattenedHeadersMap(response.multiValueHeaders || ({} as any), ',', true); + joinedHeaders.date = new Date().toUTCString(); + delete response.multiValueHeaders; + + const result = { + ...response, + headers: joinedHeaders, + }; + return result; +}; + +const createLambdaHandler = (app: Express): HandlerFunction => { + const handler = (event: APIGatewayProxyEvent, context: Context, callback: Callback) => { + const serverlessAdapterHandler = ServerlessAdapter.new(app) + .setFramework(new ExpressFramework()) + .setHandler(new DefaultHandler()) + .setResolver(new CallbackResolver()) + .addAdapter( + new ApiGatewayV1Adapter({lowercaseRequestHeaders: true, throwOnChunkedTransferEncoding: false}), + ) + .build() as HandlerFunction; + + // eslint-disable-next-line @typescript-eslint/no-explicit-any + (context as any).callbackWaitsForEmptyEventLoop = false; + + const managedCallback = (err: Error | null, response: APIGatewayProxyResult) => { + return callback(err, processLambdaResponse(response, event)); + }; + + return serverlessAdapterHandler(event, context, managedCallback as Callback); + }; + return handler; +}; + +const mrtApp = createApp(); + +export const app = mrtApp; +export const get = createLambdaHandler(mrtApp); diff --git a/packages/mrt-welcome-app/src/utils/welcome-routes.test.ts b/packages/mrt-welcome-app/src/utils/welcome-routes.test.ts new file mode 100644 index 000000000..92545c47f --- /dev/null +++ b/packages/mrt-welcome-app/src/utils/welcome-routes.test.ts @@ -0,0 +1,91 @@ +/* + * Copyright (c) 2025, Salesforce, Inc. + * SPDX-License-Identifier: Apache-2 + * For full license text, see the license.txt file in the repo root or http://www.apache.org/licenses/LICENSE-2.0 + */ +import {expect} from 'chai'; +import sinon from 'sinon'; +import request from 'supertest'; +import express, {type Express} from 'express'; +import path from 'path'; +import {fileURLToPath} from 'url'; +import ejs from 'ejs'; +import {echo} from './welcome-routes.js'; + +const __dirname = path.dirname(fileURLToPath(import.meta.url)); + +// eslint-disable-next-line @typescript-eslint/no-explicit-any +const parseJsonFromHtml = (html: string): any => { + const match = html.match(/

hI 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

jE3pu?PXZG*v)Nx&$*Y)1qJ$B0#nFi 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 Kw; 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.j|mi3+U#-j3D7uOds-#_C+ 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 OH2nV^4Oe^|`hNfedNjTO literal 0 HcmV?d00001 diff --git a/packages/mrt-reference-app/eslint.config.mjs b/packages/mrt-reference-app/eslint.config.mjs new file mode 100644 index 000000000..29152f7c7 --- /dev/null +++ b/packages/mrt-reference-app/eslint.config.mjs @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2025, Salesforce, Inc. + * SPDX-License-Identifier: Apache-2 + * For full license text, see the license.txt file in the repo root or http://www.apache.org/licenses/LICENSE-2.0 + */ +import {includeIgnoreFile} from '@eslint/compat'; +import headerPlugin from 'eslint-plugin-header'; +import tseslint from 'typescript-eslint'; +import path from 'node:path'; +import {fileURLToPath} from 'node:url'; + +import {copyrightHeader, sharedRules, chaiTestRules, prettierPlugin} from '../../eslint.config.mjs'; + +const gitignorePath = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '.gitignore'); +headerPlugin.rules.header.meta.schema = false; + +export default [ + {ignores: ['**/node_modules/**', 'build/**', 'coverage/**']}, + includeIgnoreFile(gitignorePath), + ...tseslint.configs.recommended, + prettierPlugin, + { + files: ['**/*.ts'], + plugins: { + header: headerPlugin, + }, + languageOptions: { + parserOptions: { + project: true, + tsconfigRootDir: import.meta.dirname, + }, + }, + rules: { + 'header/header': ['error', 'block', copyrightHeader], + ...sharedRules, + }, + }, + { + files: ['src/**/*.test.ts'], + rules: { + ...chaiTestRules, + '@typescript-eslint/no-explicit-any': 'off', + }, + }, +]; diff --git a/packages/mrt-reference-app/package.json b/packages/mrt-reference-app/package.json new file mode 100644 index 000000000..f2417635b --- /dev/null +++ b/packages/mrt-reference-app/package.json @@ -0,0 +1,81 @@ +{ + "name": "@salesforce/mrt-reference-app", + "version": "0.0.1", + "description": "Reference application demonstrating MRT features", + "type": "module", + "author": "Salesforce", + "license": "Apache-2.0", + "repository": "SalesforceCommerceCloud/b2c-developer-tooling", + "private": true, + "scripts": { + "dev:tsx": "RP_EXTENSION=1 tsx ./src/dev/tsx-local.ts", + "dev:node": "pnpm build && node ./src/dev/node-local.js", + "build": "node scripts/build.mjs", + "clean": "shx rm -rf build", + "lint": "eslint", + "lint:agent": "eslint --quiet", + "typecheck:agent": "tsc --noEmit --pretty false", + "format": "prettier --write .", + "format:check": "prettier --check .", + "pretest": "tsc --noEmit -p test", + "test": "c8 mocha --forbid-only \"src/**/*.test.ts\"", + "test:ci": "c8 mocha --forbid-only --reporter json --reporter-option output=test-results.json \"src/**/*.test.ts\"", + "test:agent": "mocha --forbid-only --reporter min \"src/**/*.test.ts\"", + "test:watch": "mocha --watch \"src/**/*.test.ts\"", + "coverage": "c8 report", + "push": "pnpm build && b2c mrt bundle deploy", + "deploy": "pnpm build && b2c mrt bundle deploy", + "tail-logs": "b2c mrt tail-logs", + "save-bundle": "pnpm build && b2c mrt bundle save", + "save-credentials": "b2c mrt save-credentials" + }, + "dependencies": { + "@aws-sdk/client-cloudwatch-logs": "3.952.0", + "@aws-sdk/client-dynamodb": "3.980.0", + "@aws-sdk/client-lambda": "3.952.0", + "@aws-sdk/client-s3": "3.952.0", + "@aws-sdk/client-secrets-manager": "3.1004.0", + "@aws-sdk/lib-dynamodb": "3.980.0", + "@h4ad/serverless-adapter": "4.4.0", + "@salesforce/mrt-utilities": "workspace:*", + "compressible": "2.0.18", + "express": "5.1.0", + "express-basic-auth": "1.2.1", + "negotiator": "1.0.0", + "winston": "3.19.0" + }, + "devDependencies": { + "@salesforce/b2c-cli": "workspace:*", + "@salesforce/dev-config": "catalog:", + "@serverless/event-mocks": "1.1.1", + "@smithy/smithy-client": "4.9.1", + "@types/aws-lambda": "8.10.160", + "@types/chai": "catalog:", + "@types/compressible": "2.0.3", + "@types/express": "5.0.4", + "@types/mocha": "catalog:", + "@types/negotiator": "0.6.4", + "@types/node": "catalog:", + "@types/sinon": "catalog:", + "@types/supertest": "6.0.3", + "aws-sdk-client-mock": "4.1.0", + "c8": "catalog:", + "chai": "catalog:", + "esbuild": "0.25.0", + "eslint": "catalog:", + "eslint-config-prettier": "catalog:", + "eslint-plugin-header": "catalog:", + "eslint-plugin-prettier": "catalog:", + "mocha": "catalog:", + "prettier": "catalog:", + "shx": "catalog:", + "sinon": "catalog:", + "supertest": "7.1.4", + "tsx": "catalog:", + "typescript": "catalog:", + "typescript-eslint": "catalog:" + }, + "engines": { + "node": ">=22.16.0" + } +} diff --git a/packages/mrt-reference-app/scripts/build.mjs b/packages/mrt-reference-app/scripts/build.mjs new file mode 100644 index 000000000..dcb19eef4 --- /dev/null +++ b/packages/mrt-reference-app/scripts/build.mjs @@ -0,0 +1,121 @@ +/* + * Copyright (c) 2025, Salesforce, Inc. + * SPDX-License-Identifier: Apache-2 + * For full license text, see the license.txt file in the repo root or http://www.apache.org/licenses/LICENSE-2.0 + */ +import esbuild from 'esbuild'; +import fs from 'node:fs/promises'; +import path from 'node:path'; +import {fileURLToPath} from 'node:url'; + +const __dirname = path.dirname(fileURLToPath(import.meta.url)); +const pkgRoot = path.resolve(__dirname, '..'); +const buildDir = path.resolve(pkgRoot, 'build'); + +const bundleType = process.env.MRT_BUNDLE_TYPE; +const MRT_STREAMING_BUNDLES = ['stream', 'streaming', 'streamingHandler']; +const isStreaming = MRT_STREAMING_BUNDLES.includes(bundleType ?? ''); +const ssrEntry = isStreaming ? 'streamingHandler' : 'ssr'; +const enableSourceMaps = !process.env.DISABLE_SOURCE_MAPS; +const format = process.env.MRT_EXPORT_TYPE === 'esm' ? 'esm' : 'cjs'; + +const noExternal = [ + /^@aws-sdk\/.*/, + /^@h4ad\/.*/, + 'express', + 'express-basic-auth', + '@salesforce/mrt-utilities', + 'negotiator', + 'compressible', + 'winston', +]; + +const externalFilter = (id) => { + for (const pattern of noExternal) { + if (typeof pattern === 'string' && id === pattern) return false; + if (pattern instanceof RegExp && pattern.test(id)) return false; + } + return true; +}; + +/** esbuild plugin that marks all packages external except noExternal list */ +const bundlePlugin = { + name: 'bundle-deps', + setup(build) { + build.onResolve({filter: /^[^./]/}, (args) => { + if (externalFilter(args.path)) { + return {external: true}; + } + return null; + }); + }, +}; + +async function copyDir(src, dest) { + await fs.mkdir(dest, {recursive: true}); + const entries = await fs.readdir(src, {withFileTypes: true}); + for (const entry of entries) { + const srcPath = path.join(src, entry.name); + const destPath = path.join(dest, entry.name); + if (entry.isDirectory()) { + await copyDir(srcPath, destPath); + } else { + await fs.copyFile(srcPath, destPath); + } + } +} + +async function build() { + await fs.rm(buildDir, {recursive: true, force: true}); + await fs.mkdir(buildDir, {recursive: true}); + + const commonOptions = { + bundle: true, + platform: 'node', + target: 'node22', + format, + minify: true, + sourcemap: enableSourceMaps ? 'inline' : false, + outdir: buildDir, + define: { + 'process.env.NODE_ENV': '"production"', + ...(bundleType ? {'process.env.MRT_BUNDLE_TYPE': `"${bundleType}"`} : {}), + }, + plugins: [bundlePlugin], + // Inline dynamic imports to avoid chunk resolution issues in Lambda + splitting: false, + }; + + // Build SSR / streaming handler entry + await esbuild.build({ + ...commonOptions, + entryPoints: {[ssrEntry]: path.join(pkgRoot, 'src', `${ssrEntry}.ts`)}, + }); + + // Build request-processor (always CJS regardless of MRT_EXPORT_TYPE) + await esbuild.build({ + ...commonOptions, + format: 'cjs', + entryPoints: {'request-processor': path.join(pkgRoot, 'src', 'request-processor.ts')}, + }); + + // Copy static assets + const staticSrc = path.join(pkgRoot, 'src', 'static'); + const staticDest = path.join(buildDir, 'static'); + await copyDir(staticSrc, staticDest); + + // Create empty loader.js required by MRT + await fs.writeFile(path.join(buildDir, 'loader.js'), '// This file is intentionally empty\n'); + + // Write package.json without "type" field (MRT requires CJS bundles without it) + const pkg = JSON.parse(await fs.readFile(path.join(pkgRoot, 'package.json'), 'utf8')); + delete pkg.type; + await fs.writeFile(path.join(buildDir, 'package.json'), JSON.stringify(pkg, null, 2) + '\n'); + + console.log(`Build complete → build/ (${ssrEntry}.js + request-processor.js)`); +} + +build().catch((err) => { + console.error(err); + process.exit(1); +}); diff --git a/packages/mrt-reference-app/src/app/server.test.ts b/packages/mrt-reference-app/src/app/server.test.ts new file mode 100644 index 000000000..e0e885c22 --- /dev/null +++ b/packages/mrt-reference-app/src/app/server.test.ts @@ -0,0 +1,310 @@ +/* + * Copyright (c) 2025, Salesforce, Inc. + * SPDX-License-Identifier: Apache-2 + * For full license text, see the license.txt file in the repo root or http://www.apache.org/licenses/LICENSE-2.0 + */ +import request from 'supertest'; +import {expect} from 'chai'; +import sinon from 'sinon'; +import {mockClient} from 'aws-sdk-client-mock'; +import {LambdaClient} from '@aws-sdk/client-lambda'; +import {S3Client} from '@aws-sdk/client-s3'; +import {CloudWatchLogsClient} from '@aws-sdk/client-cloudwatch-logs'; +import {MetricsSender} from '@salesforce/mrt-utilities'; +import {createApp} from './server.js'; + +describe('server', () => { + const lambdaMock = mockClient(LambdaClient); + const s3Mock = mockClient(S3Client); + const logsMock = mockClient(CloudWatchLogsClient); + + beforeEach(() => { + lambdaMock.reset(); + s3Mock.reset(); + logsMock.reset(); + }); + + afterEach(() => { + sinon.restore(); + }); + + describe('createApp', () => { + it('should create an Express app', () => { + const app = createApp(); + expect(app).to.not.be.undefined; + expect(typeof app.get).to.equal('function'); + expect(typeof app.use).to.equal('function'); + expect(typeof app.all).to.equal('function'); + }); + + it('should create app without MRT middleware by default', () => { + const app = createApp(); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const routes = (app as any)._router?.stack || []; + const hasMRTMiddleware = routes.some( + // eslint-disable-next-line @typescript-eslint/no-explicit-any + (route: any) => route?.handle?.name?.includes('mrt') || route?.handle?.name?.includes('MRT'), + ); + expect(hasMRTMiddleware).to.equal(false); + }); + + it('should disable x-powered-by header', async () => { + const app = createApp(); + const response = await request(app).get('/test'); + expect(response.headers['x-powered-by']).to.be.undefined; + }); + + it('should set server header to "mrt-reference-app"', async () => { + const app = createApp(); + const response = await request(app).get('/test'); + expect(response.headers.server).to.equal('mrt-reference-app'); + }); + + it('should set server header on all routes', async () => { + const app = createApp(); + for (const route of ['/test', '/headers', '/cache', '/tls']) { + const response = await request(app).get(route); + expect(response.headers.server).to.equal('mrt-reference-app'); + } + }); + + it('should set Cache-Control to no-cache for all responses', async () => { + const app = createApp(); + const response = await request(app).get('/test'); + expect(response.headers['cache-control']).to.equal('no-cache'); + }); + + it('should handle /exception route', async () => { + const app = createApp(); + const response = await request(app).get('/exception'); + expect(response.status).to.equal(500); + }); + + it('should handle /tls route', async () => { + const app = createApp(); + const response = await request(app).get('/tls'); + expect(response.status).to.equal(200); + expect(response.headers['content-type']).to.include('application/json'); + }); + + it('should handle /cache route without duration', async () => { + const app = createApp(); + const response = await request(app).get('/cache'); + expect(response.status).to.equal(200); + expect(response.headers['cache-control']).to.equal('s-maxage=60'); + }); + + it('should handle /cache/:duration route', async () => { + const app = createApp(); + const response = await request(app).get('/cache/120'); + expect(response.status).to.equal(200); + expect(response.headers['cache-control']).to.equal('s-maxage=120'); + }); + + it('should handle /memtest route', async () => { + const app = createApp(); + const response = await request(app).get('/memtest'); + expect(response.status).to.equal(200); + expect(response.body).to.have.property('additional_info'); + }); + + it('should handle /cookie route', async () => { + const app = createApp(); + const response = await request(app).get('/cookie'); + expect(response.status).to.equal(200); + expect(response.headers['cache-control']).to.equal('private, max-age=60'); + }); + + it('should handle /headers route', async () => { + const app = createApp(); + const response = await request(app).get('/headers').set('Custom-Header', 'custom-value'); + expect(response.status).to.equal(200); + expect(response.body.headers).to.have.property('custom-header'); + }); + + it('should handle /isolation route', async () => { + const app = createApp(); + const response = await request(app).get('/isolation'); + expect(response.status).to.equal(200); + expect(response.headers['content-type']).to.include('application/json'); + }); + + it('should handle /set-response-headers route', async () => { + const app = createApp(); + const response = await request(app).get('/set-response-headers?header1=value1'); + expect(response.status).to.equal(200); + expect(response.headers.header1).to.equal('value1'); + }); + + it('should handle /streaming route', async () => { + const app = createApp(); + const response = await request(app).get('/streaming').expect(200); + expect(response.headers['content-type']).to.equal('text/plain'); + expect(response.text).to.include('Here is a streaming chunk0'); + expect(response.text).to.include('Here is a streaming chunk99'); + }); + + it('should handle /large-logging route', async () => { + const app = createApp(); + const response = await request(app).get('/large-logging?count=10').expect(200); + expect(response.body).to.have.property('duration'); + expect(response.body).to.have.property('message', 'Large logging'); + expect(response.body).to.have.property('size'); + }); + + it('should stream 100 chunks from /streaming route', async () => { + const app = createApp(); + const response = await request(app).get('/streaming').expect(200); + const chunkMatches = response.text.match(/Here is a streaming chunk\d+/g); + expect(chunkMatches).to.have.lengthOf(100); + }); + + it('should handle /auth/logout route', async () => { + const app = createApp(); + const response = await request(app).get('/auth/logout'); + expect(response.status).to.equal(401); + expect(response.text).to.equal('Logged out'); + }); + + it('should set json spaces to 4', async () => { + const app = createApp(); + const response = await request(app).get('/test'); + expect(response.text).to.include(' '); + }); + + it('should handle wildcard routes with /{*splat}', async () => { + const app = createApp(); + const response = await request(app).get('/any/random/path'); + expect(response.status).to.equal(200); + expect(response.body).to.have.property('path'); + }); + + it('should disable x-powered-by header in response', async () => { + const app = createApp(); + const response = await request(app).get('/test'); + expect(response.headers).to.not.have.property('x-powered-by'); + }); + + it('should handle POST requests to echo route', async () => { + const app = createApp(); + const response = await request(app).post('/test/endpoint'); + expect(response.status).to.equal(200); + expect(response.body.method).to.equal('POST'); + }); + + it('should handle PUT requests to echo route', async () => { + const app = createApp(); + const response = await request(app).put('/test/endpoint'); + expect(response.status).to.equal(200); + expect(response.body.method).to.equal('PUT'); + }); + + it('should handle DELETE requests to echo route', async () => { + const app = createApp(); + const response = await request(app).delete('/test/endpoint'); + expect(response.status).to.equal(200); + expect(response.body.method).to.equal('DELETE'); + }); + }); + + describe('Authentication routes', () => { + it('should return 401 for unauthorized access to /auth/* routes', async () => { + const app = createApp(); + const response = await request(app).get('/auth/protected'); + expect([401, 500]).to.include(response.status); + }); + + it('should handle /auth/logout with POST method', async () => { + const app = createApp(); + const response = await request(app).post('/auth/logout'); + expect(response.status).to.equal(401); + expect(response.text).to.equal('Logged out'); + }); + }); + + describe('Request timing middleware', () => { + let mockSend: sinon.SinonStub; + let originalInstance: MetricsSender | null; + + beforeEach(() => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + originalInstance = (MetricsSender as any)._instance; + mockSend = sinon.stub(); + const mockMetricsSender = {send: mockSend} as unknown as MetricsSender; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + (MetricsSender as any)._instance = mockMetricsSender; + }); + + afterEach(() => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + (MetricsSender as any)._instance = originalInstance; + }); + + it('should send RequestTime metric when response finishes', async () => { + const app = createApp(); + await request(app).get('/test'); + expect(mockSend.callCount).to.equal(1); + const callArgs = mockSend.args[0]; + expect(callArgs[0]).to.have.lengthOf(2); + expect(callArgs[0][0]).to.include({name: 'RequestTime', unit: 'Milliseconds'}); + expect(callArgs[0][0].value).to.be.at.least(0); + expect(callArgs[0][0].dimensions).to.not.be.undefined; + expect(callArgs[0][1]).to.include({name: 'RequestSuccess', unit: 'Count', value: 1}); + expect(callArgs[1]).to.equal(true); + }); + + it('should calculate response time correctly', async () => { + const app = createApp(); + const startTime = Date.now(); + await request(app).get('/test'); + const actualDuration = Date.now() - startTime; + expect(mockSend.callCount).to.equal(1); + const metrics = mockSend.args[0][0]; + const requestTimeMetric = metrics.find((m: {name: string}) => m.name === 'RequestTime'); + expect(requestTimeMetric).to.not.be.undefined; + expect(requestTimeMetric.value).to.be.at.least(0); + expect(requestTimeMetric.value).to.be.at.most(actualDuration + 100); + }); + + it('should send RequestTime metric for different routes', async () => { + const app = createApp(); + await request(app).get('/headers'); + await request(app).get('/cache'); + await request(app).post('/test'); + expect(mockSend.callCount).to.equal(3); + mockSend.args.forEach((call) => { + expect(call[0]).to.have.lengthOf(2); + const requestTimeMetric = call[0].find((m: {name: string}) => m.name === 'RequestTime'); + expect(requestTimeMetric).to.not.be.undefined; + expect(requestTimeMetric.unit).to.equal('Milliseconds'); + }); + }); + + it('should send RequestTime metric even when response has error', async () => { + const app = createApp(); + await request(app).get('/exception'); + expect(mockSend.callCount).to.equal(1); + const metrics = mockSend.args[0][0]; + expect(metrics).to.have.lengthOf(2); + const requestTimeMetric = metrics.find((m: {name: string}) => m.name === 'RequestTime'); + expect(requestTimeMetric).to.not.be.undefined; + const requestFailedMetric = metrics.find((m: {name: string}) => m.name === 'RequestFailed500'); + expect(requestFailedMetric).to.not.be.undefined; + }); + + it('should include dimensions in the metric', async () => { + const app = createApp(); + await request(app).get('/test'); + expect(mockSend.callCount).to.equal(1); + const dimensions = mockSend.args[0][0][0].dimensions; + expect(dimensions).to.not.be.undefined; + expect(typeof dimensions).to.equal('object'); + }); + + it('should handle multiple concurrent requests', async () => { + const app = createApp(); + await Promise.all([request(app).get('/test'), request(app).get('/headers'), request(app).get('/cache')]); + expect(mockSend.callCount).to.equal(3); + }); + }); +}); diff --git a/packages/mrt-reference-app/src/app/server.ts b/packages/mrt-reference-app/src/app/server.ts new file mode 100644 index 000000000..071123cdc --- /dev/null +++ b/packages/mrt-reference-app/src/app/server.ts @@ -0,0 +1,162 @@ +/* + * Copyright (c) 2025, Salesforce, Inc. + * SPDX-License-Identifier: Apache-2 + * For full license text, see the license.txt file in the repo root or http://www.apache.org/licenses/LICENSE-2.0 + */ +import express, {type Express, type Request, type Response, type NextFunction, type RequestHandler} from 'express'; +import path from 'path'; +import {fileURLToPath} from 'url'; +import basicAuth from 'express-basic-auth'; +import { + createMRTProxyMiddlewares, + createMRTRequestProcessorMiddleware, + createMRTStaticAssetServingMiddleware, + isLocal, + createMRTCommonMiddleware, + createMRTCleanUpMiddleware, + MetricsSender, + getDimensions, +} from '@salesforce/mrt-utilities'; +import { + echo, + exception, + tlsVersionTest, + cacheTest, + memoryTest, + cookieTest, + headerTest, + responseHeadersTest, + loggingMiddleware, + envBasePathMiddleware, + streamingTest, + ssrBundleFileTest, + streamingResponseLarge, + multiValueHeadersTest, + setStatusTest, + winstonLogging, + massLogging, + delayedLogging, + largeLogging, + traceLogging, + dataStoreTest, + secretsManagerTest, + proxyTransformationTest, +} from '../utils/reference-routes.js'; +import {isolationTests} from '../utils/isolation-actions.js'; + +const extraRemappedHeadersMiddleware = (req: Request, res: Response, next: NextFunction) => { + res.set('server', 'mrt-reference-app'); + next(); +}; + +const createRequestTimingMiddleware = (app: AppWithMetrics) => (req: Request, res: Response, next: NextFunction) => { + res.locals.requestStartTime = Date.now(); + const afterResponse = () => { + const responseTime = Date.now() - res.locals.requestStartTime; + if (app.metrics) { + const metrics = [ + {name: 'RequestTime', value: responseTime, unit: 'Milliseconds', dimensions: getDimensions()}, + ]; + const requestResult = {name: 'RequestSuccess', value: 1, unit: 'Count', dimensions: getDimensions()}; + if (res.statusCode === 404) { + requestResult.name = 'RequestFailed404'; + } else if (res.statusCode >= 400 && res.statusCode <= 499) { + requestResult.name = 'RequestFailed400'; + } else if (res.statusCode >= 500 && res.statusCode <= 599) { + requestResult.name = 'RequestFailed500'; + } + metrics.push(requestResult); + app.metrics.send(metrics, true); + } + }; + res.on('finish', afterResponse); + res.on('error', afterResponse); + next(); +}; + +type AppWithMetrics = Express & { + metrics: MetricsSender; +}; + +export const createApp = (): AppWithMetrics => { + const app = express() as AppWithMetrics; + app.disable('x-powered-by'); + app.use(extraRemappedHeadersMiddleware); + app.metrics = MetricsSender.getSender(); + app.use(createRequestTimingMiddleware(app)); + app.use(createMRTCommonMiddleware() as RequestHandler); + + if (isLocal()) { + const __dirname = path.dirname(fileURLToPath(import.meta.url)); + const rpExtension = process.env.RP_EXTENSION ? '.ts' : '.js'; + const requestProcessorPath = path.resolve(__dirname, `../request-processor${rpExtension}`); + console.log('Using request processor:', requestProcessorPath); + + const proxyConfigs = [ + { + host: 'https://playground-22x-us-west-1.mobify-storefront.com', + path: 'api', + }, + ]; + app.use(createMRTRequestProcessorMiddleware(requestProcessorPath, proxyConfigs) as RequestHandler); + const mrtProxies = createMRTProxyMiddlewares(proxyConfigs); + mrtProxies.forEach((proxy) => { + app.use(proxy.path, proxy.fn); + }); + const staticAssetDir = path.resolve(__dirname, '../static'); + console.log('Using static asset directory:', staticAssetDir); + app.use( + `/mobify/bundle/${process.env.BUNDLE_ID || '1'}/static/`, + createMRTStaticAssetServingMiddleware(staticAssetDir) as RequestHandler, + ); + } + app.use(createMRTCleanUpMiddleware() as RequestHandler); + + app.get('/favicon.ico', express.static('static/favicon.ico')); + app.get('/robots.txt', express.static('static/robots.txt')); + + app.use((req, res, next) => { + res.set('Cache-Control', 'no-cache'); + return next(); + }); + + app.use(loggingMiddleware); + app.use(envBasePathMiddleware); + + app.all('/exception', exception); + app.get('/tls', tlsVersionTest); + app.get('/cache', cacheTest); + app.get('/cache/:duration', cacheTest); + app.get('/memtest', memoryTest); + app.get('/cookie', cookieTest); + app.get('/headers', headerTest); + app.get('/isolation', isolationTests); + app.get('/set-response-headers', responseHeadersTest); + app.get('/multi-value-headers', multiValueHeadersTest); + app.get('/streaming', streamingTest); + app.get('/ssr-shared', ssrBundleFileTest); + app.get('/streaming-large', streamingResponseLarge); + app.get('/set-status', setStatusTest); + app.get('/winston-logging', winstonLogging); + app.get('/delayed-logging', delayedLogging); + app.get('/mass-logging', massLogging); + app.get('/large-logging', largeLogging); + app.get('/trace-logging', traceLogging); + app.get('/data-store/:key', dataStoreTest); + app.get('/secrets-manager', secretsManagerTest); + app.get('/proxy-transformation', proxyTransformationTest); + + app.all('/auth/logout', (req, res) => res.status(401).send('Logged out')); + app.use( + '/auth{*alias}', + basicAuth({ + users: {mobify: 'supersecret'}, + challenge: true, + realm: process.env.EXTERNAL_DOMAIN_NAME || 'echo-test', + }), + ); + app.all('/auth{*alias}', echo); + app.all('/{*splat}', echo); + app.set('json spaces', 4); + return app; +}; diff --git a/packages/mrt-reference-app/src/dev/node-local.js b/packages/mrt-reference-app/src/dev/node-local.js new file mode 100644 index 000000000..8393ead09 --- /dev/null +++ b/packages/mrt-reference-app/src/dev/node-local.js @@ -0,0 +1,21 @@ +/* + * Copyright (c) 2025, Salesforce, Inc. + * SPDX-License-Identifier: Apache-2 + * For full license text, see the license.txt file in the repo root or http://www.apache.org/licenses/LICENSE-2.0 + */ +import path from 'path'; +import {fileURLToPath} from 'url'; + +const __dirname = path.dirname(fileURLToPath(import.meta.url)); +const buildDirectory = path.resolve(__dirname, '../..', 'build'); + +const module = await import(path.resolve(buildDirectory, 'ssr.js')); +const app = module.default.app; + +const server = app.listen(2401, 'localhost', () => { + console.log('Server is running on port localhost:2401'); +}); + +['SIGTERM', 'SIGINT'].forEach((signal) => { + process.once(signal, () => server?.close(console.error)); +}); diff --git a/packages/mrt-reference-app/src/dev/tsx-local.ts b/packages/mrt-reference-app/src/dev/tsx-local.ts new file mode 100644 index 000000000..b9200623f --- /dev/null +++ b/packages/mrt-reference-app/src/dev/tsx-local.ts @@ -0,0 +1,16 @@ +/* + * Copyright (c) 2025, Salesforce, Inc. + * SPDX-License-Identifier: Apache-2 + * For full license text, see the license.txt file in the repo root or http://www.apache.org/licenses/LICENSE-2.0 + */ +import {createApp} from '../app/server.js'; + +const app = createApp(); + +const server = app.listen(2401, 'localhost', () => { + console.log('Server is running on port localhost:2401'); +}); + +['SIGTERM', 'SIGINT'].forEach((signal) => { + process.once(signal, () => server?.close(console.error)); +}); diff --git a/packages/mrt-reference-app/src/request-processor.test.ts b/packages/mrt-reference-app/src/request-processor.test.ts new file mode 100644 index 000000000..f31796490 --- /dev/null +++ b/packages/mrt-reference-app/src/request-processor.test.ts @@ -0,0 +1,153 @@ +/* + * Copyright (c) 2025, Salesforce, Inc. + * SPDX-License-Identifier: Apache-2 + * For full license text, see the license.txt file in the repo root or http://www.apache.org/licenses/LICENSE-2.0 + */ +import {expect} from 'chai'; +import sinon from 'sinon'; +import {processRequest, type ProcessRequestParameters} from './request-processor.js'; + +describe('request-processor', () => { + afterEach(() => { + sinon.restore(); + }); + + describe('processRequest', () => { + const defaultParameters: ProcessRequestParameters = { + appHostname: 'localhost:2401', + proxyConfigs: [], + environment: 'development', + deployTarget: 'local-target', + }; + + it('should return path and querystring unchanged when no exclusions', () => { + const result = processRequest({path: '/test', querystring: 'foo=bar&baz=qux', parameters: defaultParameters}); + expect(result.path).to.equal('/test'); + expect(result.querystring).to.equal('foo=bar&baz=qux'); + }); + + it('should remove excluded query parameters', () => { + const result = processRequest({ + path: '/test', + querystring: 'removeme=value&keep=this', + parameters: defaultParameters, + }); + expect(result.path).to.equal('/test'); + expect(result.querystring).to.equal('keep=this'); + }); + + it('should remove multiple excluded parameters', () => { + const result = processRequest({ + path: '/test', + querystring: 'removeme=value1&keep=this&removeme=value2', + parameters: defaultParameters, + }); + expect(result.path).to.equal('/test'); + expect(result.querystring).to.equal('keep=this'); + }); + + it('should handle empty querystring', () => { + const result = processRequest({path: '/test', querystring: '', parameters: defaultParameters}); + expect(result.path).to.equal('/test'); + expect(result.querystring).to.equal(''); + }); + + it('should handle querystring with only excluded parameters', () => { + const result = processRequest({path: '/test', querystring: 'removeme=value', parameters: defaultParameters}); + expect(result.path).to.equal('/test'); + expect(result.querystring).to.equal(''); + }); + + it('should handle special characters in querystring', () => { + const result = processRequest({ + path: '/test', + querystring: 'param=value%20with%20spaces&removeme=delete', + parameters: defaultParameters, + }); + expect(result.path).to.equal('/test'); + expect(result.querystring).to.equal('param=value+with+spaces'); + }); + + it('should handle URL encoded excluded parameter', () => { + const result = processRequest({ + path: '/test', + querystring: 'keep=this&removeme=encoded%20value', + parameters: defaultParameters, + }); + expect(result.path).to.equal('/test'); + expect(result.querystring).to.equal('keep=this'); + }); + + it('should preserve path when querystring changes', () => { + const result = processRequest({ + path: '/api/users/123', + querystring: 'removeme=value&page=1', + parameters: defaultParameters, + }); + expect(result.path).to.equal('/api/users/123'); + expect(result.querystring).to.equal('page=1'); + }); + + it('should handle complex querystring with excluded parameter', () => { + const result = processRequest({ + path: '/search', + querystring: 'q=test&removeme=value&sort=name&order=asc', + parameters: defaultParameters, + }); + expect(result.path).to.equal('/search'); + expect(result.querystring).to.equal('q=test&sort=name&order=asc'); + }); + + it('should handle multiple values for same parameter', () => { + const result = processRequest({ + path: '/test', + querystring: 'removeme=value1&keep=this&removeme=value2&keep=that', + parameters: defaultParameters, + }); + expect(result.path).to.equal('/test'); + expect(result.querystring).to.equal('keep=this&keep=that'); + }); + + it('should handle edge case with just key and no value for exclusion', () => { + const result = processRequest({ + path: '/test', + querystring: 'removeme=&keep=value', + parameters: defaultParameters, + }); + expect(result.path).to.equal('/test'); + expect(result.querystring).to.equal('keep=value'); + }); + + it('should handle various parameter types', () => { + const result = processRequest({ + path: '/test', + querystring: 'string=value&number=123&removeme=remove&boolean=true', + parameters: defaultParameters, + }); + expect(result.path).to.equal('/test'); + expect(result.querystring).to.equal('string=value&number=123&boolean=true'); + }); + + it('should accept parameters with different values', () => { + const parameters: ProcessRequestParameters = { + appHostname: 'example.com', + proxyConfigs: [{host: 'https://api.example.com', path: 'api'}], + environment: 'production', + deployTarget: 'production-target', + }; + const result = processRequest({path: '/test', querystring: 'foo=bar', parameters}); + expect(result.path).to.equal('/test'); + expect(result.querystring).to.equal('foo=bar'); + }); + + it('should preserve parameter order after filtering', () => { + const result = processRequest({ + path: '/test', + querystring: 'a=1&removeme=del&b=2&c=3', + parameters: defaultParameters, + }); + expect(result.path).to.equal('/test'); + expect(result.querystring).to.equal('a=1&b=2&c=3'); + }); + }); +}); diff --git a/packages/mrt-reference-app/src/request-processor.ts b/packages/mrt-reference-app/src/request-processor.ts new file mode 100644 index 000000000..db5f73f07 --- /dev/null +++ b/packages/mrt-reference-app/src/request-processor.ts @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2025, Salesforce, Inc. + * SPDX-License-Identifier: Apache-2 + * For full license text, see the license.txt file in the repo root or http://www.apache.org/licenses/LICENSE-2.0 + */ +import type {ProxyConfig} from '@salesforce/mrt-utilities'; + +const exclusions = ['removeme']; + +export interface ProcessRequestParameters { + appHostname: string; + proxyConfigs: ProxyConfig[]; + environment: string; + deployTarget: string; +} + +export const processRequest = ({ + path, + querystring, + parameters, +}: { + path: string; + querystring: string; + parameters: ProcessRequestParameters; +}) => { + console.assert(parameters, 'Missing parameters'); + + const queryParameters = new URLSearchParams(querystring); + + for (const exclusion of exclusions) { + queryParameters.delete(exclusion); + } + + querystring = queryParameters.toString(); + + return { + path, + querystring, + }; +}; diff --git a/packages/mrt-reference-app/src/ssr.test.ts b/packages/mrt-reference-app/src/ssr.test.ts new file mode 100644 index 000000000..51b9c4241 --- /dev/null +++ b/packages/mrt-reference-app/src/ssr.test.ts @@ -0,0 +1,325 @@ +/* + * Copyright (c) 2025, Salesforce, Inc. + * SPDX-License-Identifier: Apache-2 + * For full license text, see the license.txt file in the repo root or http://www.apache.org/licenses/LICENSE-2.0 + */ +import request from 'supertest'; +import {LambdaClient, InvokeCommand} from '@aws-sdk/client-lambda'; +import {S3Client, GetObjectCommand} from '@aws-sdk/client-s3'; +import {CloudWatchLogsClient, CreateLogStreamCommand} from '@aws-sdk/client-cloudwatch-logs'; +import {mockClient} from 'aws-sdk-client-mock'; +import {ServiceException} from '@smithy/smithy-client'; +import {expect} from 'chai'; +import sinon from 'sinon'; +import type {Express} from 'express'; +import {processLambdaResponse, CONTENT_TYPE, X_ORIGINAL_CONTENT_TYPE} from './ssr.js'; +import type {APIGatewayProxyResult, APIGatewayProxyEvent} from 'aws-lambda'; +import createEventModule from '@serverless/event-mocks'; +// eslint-disable-next-line @typescript-eslint/no-explicit-any +const createEvent = ((createEventModule as any).default ?? createEventModule) as typeof createEventModule; + +class AccessDenied extends ServiceException { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + constructor(options?: any) { + super({...options, name: 'AccessDenied'}); + } +} + +type PathStatusCodeContentType = [string, number, string]; + +const pathsToCheck: PathStatusCodeContentType[] = [ + ['/', 200, 'application/json; charset=utf-8'], + ['/tls', 200, 'application/json; charset=utf-8'], + ['/exception', 500, 'text/html; charset=utf-8'], + ['/cache', 200, 'application/json; charset=utf-8'], + ['/cookie', 200, 'application/json; charset=utf-8'], + ['/set-response-headers', 200, 'application/json; charset=utf-8'], + ['/isolation', 200, 'application/json; charset=utf-8'], + ['/memtest', 200, 'application/json; charset=utf-8'], + ['/streaming-large', 200, 'application/json; charset=utf-8'], +]; + +const pathsToCheckWithBasePath = (basePath: string): PathStatusCodeContentType[] => + pathsToCheck.map(([p, s, c]) => [`${basePath}${p}`, s, c]); + +describe('server', () => { + let originalEnv: NodeJS.ProcessEnv; + let app: Express; + const lambdaMock = mockClient(LambdaClient); + const s3Mock = mockClient(S3Client); + const logsMock = mockClient(CloudWatchLogsClient); + + beforeEach(async () => { + originalEnv = process.env; + process.env = Object.assign({}, process.env, { + MRT_ALLOW_COOKIES: 'true', + LISTEN_ADDRESS: '', + BUNDLE_ID: '1', + DEPLOY_TARGET: 'test', + EXTERNAL_DOMAIN_NAME: 'test.com', + MOBIFY_PROPERTY_ID: 'test', + AWS_LAMBDA_FUNCTION_NAME: 'pretend-to-be-remote', + AWS_REGION: 'us-east-2', + }); + lambdaMock.reset(); + s3Mock.reset(); + logsMock.reset(); + app = (await import('./ssr.js')).app; + }); + + afterEach(() => { + process.env = originalEnv; + sinon.restore(); + }); + + const checkPath = async (path: string, expectedStatus: number, expectedContentType: string) => { + await request(app).get(path).expect(expectedStatus).expect('Content-Type', expectedContentType); + }; + + pathsToCheck.forEach(([path, status, ct]) => { + it(`Path ${path} should render correctly`, () => checkPath(path, status, ct)); + }); + + pathsToCheckWithBasePath('/test-base-path').forEach(([path, status, ct]) => { + it(`Path ${path} should render correctly with base path set`, async () => { + process.env.MRT_ENV_BASE_PATH = '/test-base-path'; + return checkPath(path, status, ct); + }); + }); + + it('Path /echo should work with base path', async () => { + const basePath = '/test-base-path'; + process.env.MRT_ENV_BASE_PATH = basePath; + const response = await request(app).get(`${basePath}/echo?x=foo&y=bar`); + expect(response.status).to.equal(200); + expect(response.body.query.x).to.equal('foo'); + expect(response.body.query.y).to.equal('bar'); + expect(response.body.path).to.equal('/echo'); + expect(response.body.env.MRT_ENV_BASE_PATH).to.equal(basePath); + }); + + it('Path "/cache" has Cache-Control set', () => { + return request(app).get('/cache').expect('Cache-Control', 's-maxage=60'); + }); + + it('Path "/cache/:duration" has Cache-Control set correctly', () => { + return request(app).get('/cache/123').expect('Cache-Control', 's-maxage=123'); + }); + + it('Path "/headers" echoes request headers', async () => { + const response = await request(app).get('/headers').set('Random-Header', 'random'); + expect(response.body.headers['random-header']).to.equal('random'); + }); + + it('Path "/cookie" sets cookie', async () => { + return request(app) + .get('/cookie?name=test-cookie&value=test-value') + .expect('set-cookie', 'test-cookie=test-value; Path=/'); + }); + + it('Path "/set-response-headers" sets response header', () => { + return request(app) + .get('/set-response-headers?header1=value1&header2=test-value') + .expect('header1', 'value1') + .expect('header2', 'test-value'); + }); + + it('Path "/isolation" succeeds', async () => { + const consoleSpy = sinon.stub(console, 'error'); + const lambdaError = new ServiceException({$fault: 'client', $metadata: {}} as never); + lambdaError.name = 'AccessDeniedException'; + const logsError = new ServiceException({$fault: 'client', $metadata: {}} as never); + logsError.name = 'AccessDeniedException'; + lambdaMock.on(InvokeCommand).rejects(lambdaError); + s3Mock.on(GetObjectCommand).rejects(new AccessDenied()); + logsMock.on(CreateLogStreamCommand).rejects(logsError); + const params = `FunctionName=name&Bucket=bucket&Key=key&logGroupName=lgName`; + const response = await request(app).get(`/isolation?${params}`); + expect(response.body.origin).to.equal(true); + expect(response.body.storage).to.equal(true); + expect(response.body.logs).to.equal(true); + consoleSpy.restore(); + }); + + it('Path "/isolation" succeeds with Region', async () => { + const consoleSpy = sinon.stub(console, 'error'); + const lambdaError = new ServiceException({$fault: 'client', $metadata: {}} as never); + lambdaError.name = 'AccessDeniedException'; + const logsError = new ServiceException({$fault: 'client', $metadata: {}} as never); + logsError.name = 'AccessDeniedException'; + lambdaMock.on(InvokeCommand).rejects(lambdaError); + s3Mock.on(GetObjectCommand).rejects(new AccessDenied()); + logsMock.on(CreateLogStreamCommand).rejects(logsError); + const params = `FunctionName=name&Bucket=bucket&Key=key&logGroupName=lgName&Region=us-west-1`; + const response = await request(app).get(`/isolation?${params}`); + expect(response.body.origin).to.equal(true); + expect(response.body.storage).to.equal(true); + expect(response.body.logs).to.equal(true); + consoleSpy.restore(); + }); + + it('Path "/isolation" fails', async () => { + const consoleSpy = sinon.stub(console, 'error'); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + lambdaMock.on(InvokeCommand).resolves({} as any); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + s3Mock.on(GetObjectCommand).resolves({} as any); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + logsMock.on(CreateLogStreamCommand).resolves({} as any); + const params = `FunctionName=name&Bucket=bucket&Key=key&logGroupName=lgName`; + const response = await request(app).get(`/isolation?${params}`); + expect(response.body.origin).to.equal(false); + expect(response.body.storage).to.equal(false); + expect(response.body.logs).to.equal(false); + const errors = ['Lambda isolation test failed!', 'S3 isolation test failed!', 'Log group isolation test failed!']; + const calls = consoleSpy.args.map((call) => call[0]); + expect(errors.some((error) => calls.includes(error))).to.equal(true); + consoleSpy.restore(); + }); + + it('Check incoming headers are lowercase', async () => { + const response = await request(app) + .get('/headers') + .set('Random-Header', 'random') + .set('Another-Mixed-Case-Header', 'value') + .set('UPPERCASE-HEADER', 'test'); + for (const header in response.body.headers) { + expect(header).to.equal(header.toLowerCase()); + } + }); +}); + +const base64Body = 'SGVsbG8gV29ybGQ='; + +describe('processLambdaResponse', () => { + it('should add date header to response', () => { + const response = {statusCode: 200, headers: {}, body: ''}; + const event = {multiValueHeaders: {}}; + const result = processLambdaResponse(response as APIGatewayProxyResult, event as APIGatewayProxyEvent); + expect(result.headers.date).to.not.be.undefined; + expect(result.headers.date).to.match(/^\w+, \d+ \w+ \d+ \d+:\d+:\d+ GMT$/); + }); + + it('should preserve original headers', () => { + const response = { + statusCode: 200, + multiValueHeaders: {'content-type': ['application/json'], 'x-custom': ['value']}, + body: base64Body, + }; + const event = {headers: {}}; + const result = processLambdaResponse(response as APIGatewayProxyResult, event as APIGatewayProxyEvent); + expect(result.headers['content-type']).to.equal('application/json'); + expect(result.headers['x-custom']).to.equal('value'); + }); + + it('should remove multiValueHeaders from response', () => { + const response = { + statusCode: 200, + multiValueHeaders: {'set-cookie': ['cookie1=value1', 'cookie2=value2']}, + body: base64Body, + }; + const event = {headers: {}}; + const result = processLambdaResponse(response as APIGatewayProxyResult, event as APIGatewayProxyEvent); + expect(result.multiValueHeaders).to.be.undefined; + }); + + it('should add correlation ID from event headers', () => { + const response = { + statusCode: 200, + multiValueHeaders: {'content-type': ['application/json'], 'x-custom': ['value']}, + body: base64Body, + }; + const event = createEvent('aws:apiGateway', { + path: '/', + httpMethod: 'GET', + headers: {'x-correlation-id': 'test-correlation-123'}, + body: null, + multiValueHeaders: {'x-correlation-id': ['test-correlation-123']}, + isBase64Encoded: false, + pathParameters: null, + queryStringParameters: null, + multiValueQueryStringParameters: null, + stageVariables: null, + // @ts-expect-error - requestContext is not required + requestContext: {}, + }); + const result = processLambdaResponse(response as APIGatewayProxyResult, event); + expect(result.headers['x-correlation-id']).to.equal('test-correlation-123'); + }); + + it('should not add correlation ID when not present in event', () => { + const response = {statusCode: 200, headers: {}, body: base64Body}; + const event = {headers: {}}; + const result = processLambdaResponse(response as APIGatewayProxyResult, event as APIGatewayProxyEvent); + expect(result.headers['x-correlation-id']).to.be.undefined; + }); + + it('should replace content-type with x-original-content-type', () => { + const response = { + statusCode: 200, + multiValueHeaders: {[X_ORIGINAL_CONTENT_TYPE]: ['application/pdf'], [CONTENT_TYPE]: ['text/plain']}, + body: base64Body, + }; + const event = {headers: {}}; + const result = processLambdaResponse(response as APIGatewayProxyResult, event as APIGatewayProxyEvent); + expect(result.headers[CONTENT_TYPE]).to.equal('application/pdf'); + expect(result.headers[X_ORIGINAL_CONTENT_TYPE]).to.be.undefined; + }); + + it('should preserve content-type when x-original-content-type is not present', () => { + const response = { + statusCode: 200, + body: base64Body, + multiValueHeaders: {[CONTENT_TYPE]: ['application/json']}, + }; + const event = {headers: {}}; + const result = processLambdaResponse(response as APIGatewayProxyResult, event as APIGatewayProxyEvent); + expect(result.headers[CONTENT_TYPE]).to.equal('application/json'); + expect(result.headers[X_ORIGINAL_CONTENT_TYPE]).to.be.undefined; + }); + + it('should handle event with no headers', () => { + const response = {statusCode: 200, headers: {}, body: base64Body}; + const event = {}; + const result = processLambdaResponse(response as APIGatewayProxyResult, event as APIGatewayProxyEvent); + expect(result.statusCode).to.equal(200); + expect(result.headers.date).to.not.be.undefined; + }); + + it('should flatten multi-value headers', () => { + const response = { + statusCode: 200, + body: base64Body, + multiValueHeaders: { + 'set-cookie': ['cookie1=value1', 'cookie2=value2'], + 'x-custom': ['header1', 'header2'], + }, + }; + const event = {headers: {}}; + const result = processLambdaResponse(response as APIGatewayProxyResult, event as APIGatewayProxyEvent); + expect(result.headers['set-cookie']).to.equal('cookie1=value1,cookie2=value2'); + expect(result.headers['x-custom']).to.equal('header1,header2'); + }); + + it('should handle status code correctly', () => { + const response = {statusCode: 404, headers: {}, body: base64Body}; + const event = {headers: {}}; + const result = processLambdaResponse(response as APIGatewayProxyResult, event as APIGatewayProxyEvent); + expect(result.statusCode).to.equal(404); + }); + + it('should preserve response body when present', () => { + const response = {statusCode: 200, multiValueHeaders: {}, body: base64Body}; + const event = {headers: {}}; + const result = processLambdaResponse(response as APIGatewayProxyResult, event as APIGatewayProxyEvent); + expect(result.body).to.equal(base64Body); + }); + + it('should add date header with correct format', () => { + const response = {statusCode: 200, multiValueHeaders: {}, body: base64Body}; + const event = {headers: {}}; + const result = processLambdaResponse(response as APIGatewayProxyResult, event as APIGatewayProxyEvent); + expect(result.headers.date).to.not.be.undefined; + expect(result.headers.date).to.match(/^\w+, \d+ \w+ \d+ \d+:\d+:\d+ GMT$/); + }); +}); diff --git a/packages/mrt-reference-app/src/ssr.ts b/packages/mrt-reference-app/src/ssr.ts new file mode 100644 index 000000000..697902fdb --- /dev/null +++ b/packages/mrt-reference-app/src/ssr.ts @@ -0,0 +1,71 @@ +/* + * Copyright (c) 2025, Salesforce, Inc. + * SPDX-License-Identifier: Apache-2 + * For full license text, see the license.txt file in the repo root or http://www.apache.org/licenses/LICENSE-2.0 + */ +import type {Express} from 'express'; +import {createApp} from './app/server.js'; +import {ServerlessAdapter, getFlattenedHeadersMap} from '@h4ad/serverless-adapter'; +import {DefaultHandler} from '@h4ad/serverless-adapter/lib/handlers/default'; +import {CallbackResolver} from '@h4ad/serverless-adapter/lib/resolvers/callback'; +import {ApiGatewayV1Adapter} from '@h4ad/serverless-adapter/lib/adapters/aws'; +import {ExpressFramework} from '@h4ad/serverless-adapter/lib/frameworks/express'; +import type {APIGatewayProxyEvent, Context, APIGatewayProxyResult, Callback} from 'aws-lambda'; + +export const CONTENT_TYPE = 'content-type'; +export const X_ORIGINAL_CONTENT_TYPE = 'x-original-content-type'; + +// eslint-disable-next-line @typescript-eslint/no-explicit-any +type HandlerFunction = (event: APIGatewayProxyEvent, context: Context, callback: Callback) => any; + +// eslint-disable-next-line @typescript-eslint/no-explicit-any +export const processLambdaResponse = (response: APIGatewayProxyResult, event: APIGatewayProxyEvent): any => { + if (!response) return response; + + const correlationId = event.headers?.['x-correlation-id']; + + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const joinedHeaders = getFlattenedHeadersMap(response.multiValueHeaders || ({} as any), ',', true); + joinedHeaders.date = new Date().toUTCString(); + delete response.multiValueHeaders; + + if (correlationId) { + joinedHeaders['x-correlation-id'] = correlationId; + } + + const originalContentType = joinedHeaders[X_ORIGINAL_CONTENT_TYPE]; + if (originalContentType) { + joinedHeaders[CONTENT_TYPE] = originalContentType; + delete joinedHeaders[X_ORIGINAL_CONTENT_TYPE]; + } + + return { + ...response, + headers: joinedHeaders, + }; +}; + +const createLambdaHandler = (app: Express): HandlerFunction => { + return (event: APIGatewayProxyEvent, context: Context, callback: Callback) => { + const serverlessAdapterHandler = ServerlessAdapter.new(app) + .setFramework(new ExpressFramework()) + .setHandler(new DefaultHandler()) + .setResolver(new CallbackResolver()) + .addAdapter(new ApiGatewayV1Adapter({lowercaseRequestHeaders: true, throwOnChunkedTransferEncoding: false})) + .build() as HandlerFunction; + + // eslint-disable-next-line @typescript-eslint/no-explicit-any + (context as any).callbackWaitsForEmptyEventLoop = false; + + const managedCallback = (err: Error | null, response: APIGatewayProxyResult) => { + return callback(err, processLambdaResponse(response, event)); + }; + + return serverlessAdapterHandler(event, context, managedCallback as Callback); + }; +}; + +const mrtApp = createApp(); + +export const app = mrtApp; +export const get = createLambdaHandler(mrtApp); diff --git a/packages/mrt-reference-app/src/static/example.css b/packages/mrt-reference-app/src/static/example.css new file mode 100644 index 000000000..3e3e04259 --- /dev/null +++ b/packages/mrt-reference-app/src/static/example.css @@ -0,0 +1 @@ +This file is used in the E2E tests to verify that correct header values are set. \ No newline at end of file diff --git a/packages/mrt-reference-app/src/static/example.eot b/packages/mrt-reference-app/src/static/example.eot new file mode 100644 index 000000000..e8001a412 --- /dev/null +++ b/packages/mrt-reference-app/src/static/example.eot @@ -0,0 +1 @@ +This file is used in the E2E tests to verify that correct header values are set. diff --git a/packages/mrt-reference-app/src/static/example.gif b/packages/mrt-reference-app/src/static/example.gif new file mode 100644 index 000000000..3e3e04259 --- /dev/null +++ b/packages/mrt-reference-app/src/static/example.gif @@ -0,0 +1 @@ +This file is used in the E2E tests to verify that correct header values are set. \ No newline at end of file diff --git a/packages/mrt-reference-app/src/static/example.jpe b/packages/mrt-reference-app/src/static/example.jpe new file mode 100644 index 000000000..3e3e04259 --- /dev/null +++ b/packages/mrt-reference-app/src/static/example.jpe @@ -0,0 +1 @@ +This file is used in the E2E tests to verify that correct header values are set. \ No newline at end of file diff --git a/packages/mrt-reference-app/src/static/example.jpeg b/packages/mrt-reference-app/src/static/example.jpeg new file mode 100644 index 000000000..3e3e04259 --- /dev/null +++ b/packages/mrt-reference-app/src/static/example.jpeg @@ -0,0 +1 @@ +This file is used in the E2E tests to verify that correct header values are set. \ No newline at end of file diff --git a/packages/mrt-reference-app/src/static/example.jpg b/packages/mrt-reference-app/src/static/example.jpg new file mode 100644 index 000000000..3e3e04259 --- /dev/null +++ b/packages/mrt-reference-app/src/static/example.jpg @@ -0,0 +1 @@ +This file is used in the E2E tests to verify that correct header values are set. \ No newline at end of file diff --git a/packages/mrt-reference-app/src/static/example.js b/packages/mrt-reference-app/src/static/example.js new file mode 100644 index 000000000..b2a8d963b --- /dev/null +++ b/packages/mrt-reference-app/src/static/example.js @@ -0,0 +1 @@ +/* This file is used in the E2E tests to verify that correct header values are set. */ diff --git a/packages/mrt-reference-app/src/static/example.json b/packages/mrt-reference-app/src/static/example.json new file mode 100644 index 000000000..17edacea1 --- /dev/null +++ b/packages/mrt-reference-app/src/static/example.json @@ -0,0 +1,3 @@ +{ + "message": "This file is used in the E2E tests to verify that correct header values are set." +} \ No newline at end of file diff --git a/packages/mrt-reference-app/src/static/example.mjs b/packages/mrt-reference-app/src/static/example.mjs new file mode 100644 index 000000000..b2a8d963b --- /dev/null +++ b/packages/mrt-reference-app/src/static/example.mjs @@ -0,0 +1 @@ +/* This file is used in the E2E tests to verify that correct header values are set. */ diff --git a/packages/mrt-reference-app/src/static/example.otf b/packages/mrt-reference-app/src/static/example.otf new file mode 100644 index 000000000..e8001a412 --- /dev/null +++ b/packages/mrt-reference-app/src/static/example.otf @@ -0,0 +1 @@ +This file is used in the E2E tests to verify that correct header values are set. diff --git a/packages/mrt-reference-app/src/static/example.png b/packages/mrt-reference-app/src/static/example.png new file mode 100644 index 000000000..3e3e04259 --- /dev/null +++ b/packages/mrt-reference-app/src/static/example.png @@ -0,0 +1 @@ +This file is used in the E2E tests to verify that correct header values are set. \ No newline at end of file diff --git a/packages/mrt-reference-app/src/static/example.svg b/packages/mrt-reference-app/src/static/example.svg new file mode 100644 index 000000000..3e3e04259 --- /dev/null +++ b/packages/mrt-reference-app/src/static/example.svg @@ -0,0 +1 @@ +This file is used in the E2E tests to verify that correct header values are set. \ No newline at end of file diff --git a/packages/mrt-reference-app/src/static/example.ttf b/packages/mrt-reference-app/src/static/example.ttf new file mode 100644 index 000000000..e8001a412 --- /dev/null +++ b/packages/mrt-reference-app/src/static/example.ttf @@ -0,0 +1 @@ +This file is used in the E2E tests to verify that correct header values are set. diff --git a/packages/mrt-reference-app/src/static/example.txt b/packages/mrt-reference-app/src/static/example.txt new file mode 100644 index 000000000..248bc5536 --- /dev/null +++ b/packages/mrt-reference-app/src/static/example.txt @@ -0,0 +1,7 @@ +This file is used in the E2E tests to verify that Cloudfront is compressing content properly. + +Cloudfront only compresses files that are 1,000 bytes - 10,000,000 bytes in size +For more details check: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/ServingCompressedFiles.html + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque id dolor vitae neque feugiat convallis. Nullam eleifend est at justo commodo facilisis. Vestibulum consectetur ultricies facilisis. In non ligula a ipsum pretium aliquet. Cras vel ligula id lectus tristique viverra sed eu neque. Vivamus sit amet nulla id tortor efficitur finibus. Curabitur ultrices auctor sem, ut consequat nulla interdum ut. +Etiam auctor massa nec mauris ullamcorper, vitae bibendum nisl tempus. Nulla vel facilisis ante, in ultricies mi. Praesent laoreet faucibus mauris. Donec cursus erat ac malesuada mattis. Sed vehicula, erat id consequat fringilla, felis justo fringilla nulla, ac feugiat dui velit in est. Nullam ut lectus et purus lacinia congue a vitae lectus. Fusce rutrum elit at hendrerit malesuada. \ No newline at end of file diff --git a/packages/mrt-reference-app/src/static/example.woff b/packages/mrt-reference-app/src/static/example.woff new file mode 100644 index 000000000..e8001a412 --- /dev/null +++ b/packages/mrt-reference-app/src/static/example.woff @@ -0,0 +1 @@ +This file is used in the E2E tests to verify that correct header values are set. diff --git a/packages/mrt-reference-app/src/static/example.woff2 b/packages/mrt-reference-app/src/static/example.woff2 new file mode 100644 index 000000000..e8001a412 --- /dev/null +++ b/packages/mrt-reference-app/src/static/example.woff2 @@ -0,0 +1 @@ +This file is used in the E2E tests to verify that correct header values are set. diff --git a/packages/mrt-reference-app/src/static/favicon.ico b/packages/mrt-reference-app/src/static/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..a15a8f348b8b472b716e4cc5efb3baa760cc4135 GIT binary patch literal 5430 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

hI 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